From 3858440e14629262d21e0a2d756ae2ab7285efba Mon Sep 17 00:00:00 2001 From: KholdFuzion Date: Fri, 20 Nov 2020 14:35:54 -0600 Subject: [PATCH] whoops --- readme.md | 69 + rename_sym.sh | 11 + rsp/rspboot.s | 69 + src/_start.s | 40 + src/aspboot.s | 20 + src/audi.c | 1370 + src/audi.h | 7 + src/bondaicommands.h | 3907 +++ src/bondconstants.h | 1434 + src/bondgame.h | 41 + src/bondtypes.h | 352 + src/boot.c | 108 + src/boot.h | 12 + src/bootcode.s | 899 + src/boss.c | 1315 + src/boss.h | 15 + src/c_data_filler.c | 6 + src/c_data_filler.h | 7 + src/cfb.c | 5 + src/deb.c | 278 + src/deb.h | 9 + src/deb_print.c | 698 + src/deb_print.h | 23 + src/deb_video.c | 852 + src/deb_video.h | 8 + src/debug_getlastRA.c | 56 + src/debugmenu.c | 1102 + src/debugmenu.h | 7 + src/decompressbuffer.c | 3 + src/game/bg.c | 12195 ++++++++ src/game/bg.h | 45 + src/game/blood_animation.c | 933 + src/game/blood_decrypt.c | 653 + src/game/bond.c | 35351 +++++++++++++++++++++ src/game/bond.h | 2876 ++ src/game/bondinv.c | 3254 ++ src/game/bondinv.h | 8 + src/game/bondwalk.c | 24961 +++++++++++++++ src/game/bondwalk.h | 76 + src/game/bondwalk2.c | 611 + src/game/cheat_buttons.c | 3245 ++ src/game/cheat_buttons.h | 15 + src/game/chr.c | 7567 +++++ src/game/chr.h | 190 + src/game/chr2.c | 23191 ++++++++++++++ src/game/chrai.c | 21577 +++++++++++++ src/game/chrai.h | 113 + src/game/chrobjdata.c | 3086 ++ src/game/chrobjdata.h | 679 + src/game/chrobjhandler.c | 37078 +++++++++++++++++++++++ src/game/cleanupSFXRelated.c | 21 + src/game/cleanup_alarms.c | 11 + src/game/cleanup_alarms.h | 6 + src/game/cleanup_objectives.c | 113 + src/game/cleanup_objects.c | 107 + src/game/compiletime.c | 15 + src/game/compiletime.h | 10 + src/game/convertangleusinginverse.c | 43 + src/game/deb_loadallmodels.c | 393 + src/game/debugmenu_08FE00.c | 613 + src/game/debugmenu_090490.c | 1348 + src/game/debugmenu_090490.h | 42 + src/game/decompress.c | 92 + src/game/decompress.h | 8 + src/game/dyn.c | 578 + src/game/dyn.h | 7 + src/game/ejectedcartridges.c | 58 + src/game/fog.c | 1284 + src/game/fog.h | 60 + src/game/game_debug.c | 29 + src/game/game_debug.h | 7 + src/game/gamefile.c | 484 + src/game/gamefile.h | 39 + src/game/gamefile2.c | 2733 ++ src/game/gamefile2.h | 7 + src/game/image.c | 9557 ++++++ src/game/image.h | 19 + src/game/image_bank.c | 559 + src/game/indy_commands.c | 1806 ++ src/game/indy_commands.h | 34 + src/game/indy_comms.c | 276 + src/game/indy_comms.h | 9 + src/game/initBondDATA.c | 265 + src/game/initBondDATA.h | 243 + src/game/initBondDATAdefaults.c | 663 + src/game/initactorpropstuff.c | 718 + src/game/initactorpropstuff.h | 8 + src/game/initanitable.c | 164 + src/game/initcameraandthrown.c | 1632 + src/game/initexplosioncasing.c | 281 + src/game/initgamedata.c | 36 + src/game/initgamedata.h | 7 + src/game/initguards.c | 138 + src/game/initimages.c | 55 + src/game/initintromatrices.c | 15 + src/game/inititemslots.c | 87 + src/game/initmenus.c | 86 + src/game/initmttex.c | 57 + src/game/initnull_0009D0.c | 6 + src/game/initnull_000BC0.c | 5 + src/game/initobjects.c | 554 + src/game/initobjects.h | 48 + src/game/initpathtablelinks.c | 385 + src/game/initpathtablesomething.c | 71 + src/game/initpathtablesomething.h | 7 + src/game/initunk_0009E0.c | 10 + src/game/initunk_000B60.c | 8 + src/game/initunk_005450.c | 68 + src/game/initunk_005520.c | 168 + src/game/initunk_007180.c | 86 + src/game/initunk_007290.c | 15 + src/game/initunk_0072B0.c | 41 + src/game/initunk_0072B0.h | 7 + src/game/initunk_0073B0.c | 99 + src/game/initunk_007460.c | 70 + src/game/initweaponanigroups.c | 10 + src/game/intro_logos.c | 2219 ++ src/game/intro_logos.h | 25 + src/game/lightfixture.c | 1362 + src/game/lightfixture.h | 13 + src/game/loadobjectmodel.c | 798 + src/game/lvl.c | 4569 +++ src/game/lvl.h | 25 + src/game/lvl_text.c | 895 + src/game/lvl_text.h | 11 + src/game/mainmenu.c | 29739 ++++++++++++++++++ src/game/mainmenu.h | 797 + src/game/matrixmath.c | 2392 ++ src/game/mp_music.c | 1390 + src/game/mp_watch.c | 7276 +++++ src/game/mp_weapon.c | 249 + src/game/mp_weapon.h | 42 + src/game/music_0D2720.c | 279 + src/game/null_007970.c | 8 + src/game/ob.c | 940 + src/game/ob.h | 28 + src/game/objecthandler.c | 2354 ++ src/game/objecthandler.h | 10 + src/game/objecthandler_2.c | 13457 ++++++++ src/game/objective.c | 287 + src/game/objective_status.c | 1081 + src/game/objective_status2.c | 397 + src/game/othermodemicrocode.c | 1726 ++ src/game/playerstats_007770.c | 51 + src/game/prop.c | 5295 ++++ src/game/prop.h | 7 + src/game/radar.c | 380 + src/game/ramromreplay.c | 1356 + src/game/room_model_buffer.c | 8 + src/game/room_model_buffer.h | 7 + src/game/rsp.c | 179 + src/game/rsp.h | 7 + src/game/setguscale.c | 7 + src/game/sin.c | 139 + src/game/spectrum.c | 18561 ++++++++++++ src/game/spectrum.h | 9 + src/game/stan.c | 7061 +++++ src/game/stan.h | 7 + src/game/textrelated.c | 3187 ++ src/game/textrelated.h | 11 + src/game/truncf.c | 98 + src/game/unk_007800.c | 161 + src/game/unk_007920.c | 58 + src/game/unk_007980.c | 118 + src/game/unk_01B0E0.c | 134 + src/game/unk_01B240.c | 626 + src/game/unk_01BAE0.c | 440 + src/game/unk_05A9E0.c | 9 + src/game/unk_05AB70.c | 166 + src/game/unk_05ACB0.c | 28 + src/game/unk_05AE00.c | 321 + src/game/unk_05B1E0.c | 314 + src/game/unk_05C440.c | 36 + src/game/unk_05C440.h | 9 + src/game/unk_08DBB0.c | 2784 ++ src/game/unk_091080.c | 647 + src/game/unk_092890.c | 391 + src/game/unk_092E50.c | 808 + src/game/unk_092E50.h | 12 + src/game/unk_093880.c | 10432 +++++++ src/game/unk_093880.h | 47 + src/game/unk_09B600.c | 101 + src/game/unk_09B740.c | 60 + src/game/unk_09B7A0.c | 871 + src/game/unk_09C250.c | 7222 +++++ src/game/unk_09C250.h | 7 + src/game/unk_0A1DA0.c | 3281 ++ src/game/unk_0A1DA0.h | 16 + src/game/unk_0B3200.c | 476 + src/game/unk_0BC530.c | 540 + src/game/unk_0C0A70.c | 214 + src/game/unk_0C0A70.h | 16 + src/game/unk_0CC4C0.c | 3176 ++ src/game/unk_0CC4C0.h | 12 + src/game/unk_0D1AC0.c | 734 + src/game/viewport.c | 299 + src/game/watch.c | 11487 +++++++ src/game/watch.h | 13 + src/game/zlib.c | 1854 ++ src/game/zlib.h | 5 + src/gspboot.s | 21 + src/inflate/inflate.c | 1178 + src/inflate/inflate.h | 14 + src/init.c | 407 + src/init.h | 27 + src/joy.c | 2766 ++ src/joy.h | 9 + src/libultra/ai.s | 28 + src/libultra/aigetlen.s | 15 + src/libultra/aisetfreq.s | 106 + src/libultra/aisetnextbuf.s | 63 + src/libultra/align.s | 159 + src/libultra/auxbus.s | 86 + src/libultra/bcmp.s | 97 + src/libultra/bcopy.s | 229 + src/libultra/bnkf.s | 177 + src/libultra/bzero.s | 63 + src/libultra/cents2ratio.s | 42 + src/libultra/conteeplongread.s | 100 + src/libultra/conteeplongwrite.s | 100 + src/libultra/conteepprobe.s | 45 + src/libultra/conteepread.s | 289 + src/libultra/conteepwrite.s | 348 + src/libultra/contpfs.s | 950 + src/libultra/contquery.s | 63 + src/libultra/contramread.s | 268 + src/libultra/contramwrite.s | 267 + src/libultra/contreaddata.s | 180 + src/libultra/controller.s | 420 + src/libultra/copy.s | 46 + src/libultra/coss.s | 26 + src/libultra/crc.s | 125 + src/libultra/createmesgqueue.s | 24 + src/libultra/createthread.s | 92 + src/libultra/cseq.s | 774 + src/libultra/cspgetstate.s | 12 + src/libultra/csplayer.s | 1359 + src/libultra/cspplay.s | 22 + src/libultra/cspsetseq.s | 23 + src/libultra/cspsetvol.s | 26 + src/libultra/cspstop.s | 23 + src/libultra/destroythread.s | 84 + src/libultra/devmgr.s | 275 + src/libultra/dp.s | 29 + src/libultra/dpctr.s | 29 + src/libultra/dpsetnextbuf.s | 55 + src/libultra/dpsetstat.s | 14 + src/libultra/drvrNew.s | 571 + src/libultra/env.s | 911 + src/libultra/epirawdma.s | 77 + src/libultra/epirawwrite.s | 36 + src/libultra/event.s | 244 + src/libultra/exception.s | 666 + src/libultra/filter.s | 23 + src/libultra/getcount.s | 13 + src/libultra/getcurrfaultthread.s | 14 + src/libultra/getfpccsr.s | 14 + src/libultra/getsr.s | 19 + src/libultra/getthreadpri.s | 24 + src/libultra/gettime.s | 43 + src/libultra/gettlbhi.s | 21 + src/libultra/heapalloc.s | 32 + src/libultra/heapinit.s | 25 + src/libultra/initialize.s | 207 + src/libultra/interrupt.s | 32 + src/libultra/invaldcache.s | 59 + src/libultra/invalicache.s | 44 + src/libultra/jammesg.s | 106 + src/libultra/kdebugserver.s | 448 + src/libultra/ldiv.s | 121 + src/libultra/leodiskinit.s | 198 + src/libultra/leointerrupt.s | 4722 +++ src/libultra/libm_vals.s | 16 + src/libultra/ll.s | 218 + src/libultra/llcvt.s | 172 + src/libultra/load.s | 800 + src/libultra/lookat.s | 220 + src/libultra/lookatref.s | 331 + src/libultra/mainbus.s | 103 + src/libultra/mtxutil.s | 183 + src/libultra/normalize.s | 47 + src/libultra/ortho.s | 130 + src/libultra/parameters.s | 27 + src/libultra/perspective.s | 186 + src/libultra/pfsinit.s | 136 + src/libultra/pfsisplug.s | 273 + src/libultra/piacs.s | 84 + src/libultra/pidma.s | 83 + src/libultra/pigetcmdq.s | 27 + src/libultra/pigetstat.s | 14 + src/libultra/pimgr.s | 528 + src/libultra/pirawdma.s | 75 + src/libultra/pirawread.s | 41 + src/libultra/piread.s | 26 + src/libultra/probetlb.s | 67 + src/libultra/recvmesg.s | 96 + src/libultra/resample.s | 239 + src/libultra/resetglobalintmask.s | 36 + src/libultra/reverb.s | 855 + src/libultra/rotate.s | 148 + src/libultra/save.s | 68 + src/libultra/scale.s | 56 + src/libultra/sendmesg.s | 101 + src/libultra/seq.s | 458 + src/libultra/seqplayer.s | 1864 ++ src/libultra/seqpsetbank.s | 23 + src/libultra/setcompare.s | 18 + src/libultra/seteventmesg.s | 162 + src/libultra/setfpccsr.s | 14 + src/libultra/sethwinterrupt.s | 34 + src/libultra/setintmask.s | 62 + src/libultra/setsr.s | 18 + src/libultra/setthreadpri.s | 70 + src/libultra/settimer.s | 67 + src/libultra/si.s | 28 + src/libultra/siacs.s | 85 + src/libultra/sins.s | 305 + src/libultra/sirawdma.s | 65 + src/libultra/sirawread.s | 36 + src/libultra/sirawwrite.s | 37 + src/libultra/sl.s | 78 + src/libultra/sp.s | 28 + src/libultra/spgetstat.s | 19 + src/libultra/sprawdma.s | 54 + src/libultra/spsetpc.s | 30 + src/libultra/spsetstat.s | 18 + src/libultra/sptask.s | 248 + src/libultra/sptaskyield.s | 18 + src/libultra/sptaskyielded.s | 46 + src/libultra/sqrtf.s | 17 + src/libultra/startthread.s | 100 + src/libultra/stopthread.s | 63 + src/libultra/string.s | 59 + src/libultra/synaddplayer.s | 30 + src/libultra/synallocfx.s | 53 + src/libultra/synallocvoice.s | 160 + src/libultra/syndelete.s | 17 + src/libultra/synfreevoice.s | 58 + src/libultra/synsetfxmix.s | 51 + src/libultra/synsetpan.s | 45 + src/libultra/synsetpitch.s | 45 + src/libultra/synsetpriority.s | 18 + src/libultra/synsetvol.s | 51 + src/libultra/synstartvoice.s | 47 + src/libultra/synstartvoiceparam.s | 75 + src/libultra/synstopvoice.s | 42 + src/libultra/synthesizer.s | 493 + src/libultra/thread.s | 41 + src/libultra/timerintr.s | 334 + src/libultra/translate.s | 56 + src/libultra/ultra7001B830.s | 139 + src/libultra/ultra7001B9A0.s | 161 + src/libultra/ultra80069080.s | 117 + src/libultra/unmaptlb.s | 26 + src/libultra/vi.s | 122 + src/libultra/viblack.s | 40 + src/libultra/vigetcurrcontext.s | 18 + src/libultra/vigetcurrframebuf.s | 27 + src/libultra/vigetnextframebuf.s | 27 + src/libultra/vimgr.s | 1625 + src/libultra/vimodentsclan1.s | 19 + src/libultra/vimodepallan1.s | 21 + src/libultra/virepeatline.s | 40 + src/libultra/virtualtophysical.s | 44 + src/libultra/visetevent.s | 40 + src/libultra/visetmode.s | 36 + src/libultra/visetspecial.s | 128 + src/libultra/visetxscale.s | 88 + src/libultra/visetyscale.s | 32 + src/libultra/viswapbuf.s | 31 + src/libultra/viswapcontext.s | 243 + src/libultra/vitbl.s | 224 + src/libultra/writebackdcache.s | 44 + src/libultra/writebackdcacheall.s | 21 + src/libultra/xldtob.s | 817 + src/libultra/xlitob.s | 208 + src/libultra/xprintf.s | 966 + src/libultra/yieldthread.s | 29 + src/mema.c | 1288 + src/mema.h | 39 + src/memp.c | 770 + src/memp.h | 46 + src/motor.c | 489 + src/music.c | 2138 ++ src/music.h | 48 + src/osMapTLB.c | 47 + src/pi.c | 9 + src/pi.h | 10 + src/ramrom.c | 95 + src/ramrom.h | 10 + src/random.c | 96 + src/rmon.c | 131 + src/rmon.h | 8 + src/rom_header.s | 24 + src/rspboot.s | 25 + src/sched.c | 1394 + src/sched.h | 85 + src/snd.c | 2607 ++ src/snd.h | 7 + src/speed_graph.c | 1119 + src/sprintf.c | 74 + src/stacks.c | 9 + src/str.c | 655 + src/tlb_buffer.c | 3 + src/tlb_buffer.h | 7 + src/tlb_hardwire.c | 31 + src/tlb_hardwire.h | 10 + src/tlb_manage.c | 364 + src/tlb_manage.h | 18 + src/tlb_random.c | 47 + src/tlb_random.h | 10 + src/tlb_resolve.c | 53 + src/tlb_resolve.h | 10 + src/token.c | 361 + src/vi.c | 36 + src/vi.h | 13 + src/video.c | 3172 ++ src/video.h | 27 + tools/1172compress.sh | 7 + tools/RareZip.sh | 37 + tools/SGIImageViewer.exe | Bin 0 -> 34816 bytes tools/SGIImgView.png | Bin 0 -> 394635 bytes tools/armips | Bin 0 -> 1475560 bytes tools/asmpreproc/asm-processor.py | 806 + tools/asmpreproc/compile.sh | 15 + tools/asmpreproc/include-stdin.c | 2 + tools/asmpreproc/macros.inc | 7 + tools/asmpreproc/prelude.s | 5 + tools/data_compress.sh | 38 + tools/gzip | Bin 0 -> 75584 bytes tools/irix/qemu-irix | Bin 0 -> 5748256 bytes tools/irix/root/lib/libmalloc.so | Bin 0 -> 28216 bytes tools/irix/root/lib/libmalloc_old.so | Bin 0 -> 28216 bytes tools/irix/root/lib/rld | Bin 0 -> 585876 bytes tools/irix/root/usr/bin/cc | Bin 0 -> 275168 bytes tools/irix/root/usr/lib/as0 | Bin 0 -> 175296 bytes tools/irix/root/usr/lib/as1 | Bin 0 -> 816064 bytes tools/irix/root/usr/lib/cfe | Bin 0 -> 902800 bytes tools/irix/root/usr/lib/crt1.o | Bin 0 -> 3612 bytes tools/irix/root/usr/lib/err.english.cc | 1260 + tools/irix/root/usr/lib/libc.so.1 | Bin 0 -> 1483100 bytes tools/irix/root/usr/lib/libexc.so | Bin 0 -> 29352 bytes tools/irix/root/usr/lib/libgen.so | Bin 0 -> 69944 bytes tools/irix/root/usr/lib/libm.so | Bin 0 -> 111272 bytes tools/irix/root/usr/lib/ugen | Bin 0 -> 547616 bytes tools/irix/root/usr/lib/ujoin | Bin 0 -> 101832 bytes tools/irix/root/usr/lib/uld | Bin 0 -> 799088 bytes tools/irix/root/usr/lib/umerge | Bin 0 -> 167408 bytes tools/irix/root/usr/lib/uopt | Bin 0 -> 756800 bytes tools/irix/root/usr/lib/usplit | Bin 0 -> 71408 bytes tools/makebg.sh | 4 + tools/n64cksum | Bin 0 -> 10424 bytes tools/rasm2armips.py | 76 + undefined_syms.txt | 97 + 454 files changed, 427995 insertions(+) create mode 100644 readme.md create mode 100644 rename_sym.sh create mode 100644 rsp/rspboot.s create mode 100644 src/_start.s create mode 100644 src/aspboot.s create mode 100644 src/audi.c create mode 100644 src/audi.h create mode 100644 src/bondaicommands.h create mode 100644 src/bondconstants.h create mode 100644 src/bondgame.h create mode 100644 src/bondtypes.h create mode 100644 src/boot.c create mode 100644 src/boot.h create mode 100644 src/bootcode.s create mode 100644 src/boss.c create mode 100644 src/boss.h create mode 100644 src/c_data_filler.c create mode 100644 src/c_data_filler.h create mode 100644 src/cfb.c create mode 100644 src/deb.c create mode 100644 src/deb.h create mode 100644 src/deb_print.c create mode 100644 src/deb_print.h create mode 100644 src/deb_video.c create mode 100644 src/deb_video.h create mode 100644 src/debug_getlastRA.c create mode 100644 src/debugmenu.c create mode 100644 src/debugmenu.h create mode 100644 src/decompressbuffer.c create mode 100644 src/game/bg.c create mode 100644 src/game/bg.h create mode 100644 src/game/blood_animation.c create mode 100644 src/game/blood_decrypt.c create mode 100644 src/game/bond.c create mode 100644 src/game/bond.h create mode 100644 src/game/bondinv.c create mode 100644 src/game/bondinv.h create mode 100644 src/game/bondwalk.c create mode 100644 src/game/bondwalk.h create mode 100644 src/game/bondwalk2.c create mode 100644 src/game/cheat_buttons.c create mode 100644 src/game/cheat_buttons.h create mode 100644 src/game/chr.c create mode 100644 src/game/chr.h create mode 100644 src/game/chr2.c create mode 100644 src/game/chrai.c create mode 100644 src/game/chrai.h create mode 100644 src/game/chrobjdata.c create mode 100644 src/game/chrobjdata.h create mode 100644 src/game/chrobjhandler.c create mode 100644 src/game/cleanupSFXRelated.c create mode 100644 src/game/cleanup_alarms.c create mode 100644 src/game/cleanup_alarms.h create mode 100644 src/game/cleanup_objectives.c create mode 100644 src/game/cleanup_objects.c create mode 100644 src/game/compiletime.c create mode 100644 src/game/compiletime.h create mode 100644 src/game/convertangleusinginverse.c create mode 100644 src/game/deb_loadallmodels.c create mode 100644 src/game/debugmenu_08FE00.c create mode 100644 src/game/debugmenu_090490.c create mode 100644 src/game/debugmenu_090490.h create mode 100644 src/game/decompress.c create mode 100644 src/game/decompress.h create mode 100644 src/game/dyn.c create mode 100644 src/game/dyn.h create mode 100644 src/game/ejectedcartridges.c create mode 100644 src/game/fog.c create mode 100644 src/game/fog.h create mode 100644 src/game/game_debug.c create mode 100644 src/game/game_debug.h create mode 100644 src/game/gamefile.c create mode 100644 src/game/gamefile.h create mode 100644 src/game/gamefile2.c create mode 100644 src/game/gamefile2.h create mode 100644 src/game/image.c create mode 100644 src/game/image.h create mode 100644 src/game/image_bank.c create mode 100644 src/game/indy_commands.c create mode 100644 src/game/indy_commands.h create mode 100644 src/game/indy_comms.c create mode 100644 src/game/indy_comms.h create mode 100644 src/game/initBondDATA.c create mode 100644 src/game/initBondDATA.h create mode 100644 src/game/initBondDATAdefaults.c create mode 100644 src/game/initactorpropstuff.c create mode 100644 src/game/initactorpropstuff.h create mode 100644 src/game/initanitable.c create mode 100644 src/game/initcameraandthrown.c create mode 100644 src/game/initexplosioncasing.c create mode 100644 src/game/initgamedata.c create mode 100644 src/game/initgamedata.h create mode 100644 src/game/initguards.c create mode 100644 src/game/initimages.c create mode 100644 src/game/initintromatrices.c create mode 100644 src/game/inititemslots.c create mode 100644 src/game/initmenus.c create mode 100644 src/game/initmttex.c create mode 100644 src/game/initnull_0009D0.c create mode 100644 src/game/initnull_000BC0.c create mode 100644 src/game/initobjects.c create mode 100644 src/game/initobjects.h create mode 100644 src/game/initpathtablelinks.c create mode 100644 src/game/initpathtablesomething.c create mode 100644 src/game/initpathtablesomething.h create mode 100644 src/game/initunk_0009E0.c create mode 100644 src/game/initunk_000B60.c create mode 100644 src/game/initunk_005450.c create mode 100644 src/game/initunk_005520.c create mode 100644 src/game/initunk_007180.c create mode 100644 src/game/initunk_007290.c create mode 100644 src/game/initunk_0072B0.c create mode 100644 src/game/initunk_0072B0.h create mode 100644 src/game/initunk_0073B0.c create mode 100644 src/game/initunk_007460.c create mode 100644 src/game/initweaponanigroups.c create mode 100644 src/game/intro_logos.c create mode 100644 src/game/intro_logos.h create mode 100644 src/game/lightfixture.c create mode 100644 src/game/lightfixture.h create mode 100644 src/game/loadobjectmodel.c create mode 100644 src/game/lvl.c create mode 100644 src/game/lvl.h create mode 100644 src/game/lvl_text.c create mode 100644 src/game/lvl_text.h create mode 100644 src/game/mainmenu.c create mode 100644 src/game/mainmenu.h create mode 100644 src/game/matrixmath.c create mode 100644 src/game/mp_music.c create mode 100644 src/game/mp_watch.c create mode 100644 src/game/mp_weapon.c create mode 100644 src/game/mp_weapon.h create mode 100644 src/game/music_0D2720.c create mode 100644 src/game/null_007970.c create mode 100644 src/game/ob.c create mode 100644 src/game/ob.h create mode 100644 src/game/objecthandler.c create mode 100644 src/game/objecthandler.h create mode 100644 src/game/objecthandler_2.c create mode 100644 src/game/objective.c create mode 100644 src/game/objective_status.c create mode 100644 src/game/objective_status2.c create mode 100644 src/game/othermodemicrocode.c create mode 100644 src/game/playerstats_007770.c create mode 100644 src/game/prop.c create mode 100644 src/game/prop.h create mode 100644 src/game/radar.c create mode 100644 src/game/ramromreplay.c create mode 100644 src/game/room_model_buffer.c create mode 100644 src/game/room_model_buffer.h create mode 100644 src/game/rsp.c create mode 100644 src/game/rsp.h create mode 100644 src/game/setguscale.c create mode 100644 src/game/sin.c create mode 100644 src/game/spectrum.c create mode 100644 src/game/spectrum.h create mode 100644 src/game/stan.c create mode 100644 src/game/stan.h create mode 100644 src/game/textrelated.c create mode 100644 src/game/textrelated.h create mode 100644 src/game/truncf.c create mode 100644 src/game/unk_007800.c create mode 100644 src/game/unk_007920.c create mode 100644 src/game/unk_007980.c create mode 100644 src/game/unk_01B0E0.c create mode 100644 src/game/unk_01B240.c create mode 100644 src/game/unk_01BAE0.c create mode 100644 src/game/unk_05A9E0.c create mode 100644 src/game/unk_05AB70.c create mode 100644 src/game/unk_05ACB0.c create mode 100644 src/game/unk_05AE00.c create mode 100644 src/game/unk_05B1E0.c create mode 100644 src/game/unk_05C440.c create mode 100644 src/game/unk_05C440.h create mode 100644 src/game/unk_08DBB0.c create mode 100644 src/game/unk_091080.c create mode 100644 src/game/unk_092890.c create mode 100644 src/game/unk_092E50.c create mode 100644 src/game/unk_092E50.h create mode 100644 src/game/unk_093880.c create mode 100644 src/game/unk_093880.h create mode 100644 src/game/unk_09B600.c create mode 100644 src/game/unk_09B740.c create mode 100644 src/game/unk_09B7A0.c create mode 100644 src/game/unk_09C250.c create mode 100644 src/game/unk_09C250.h create mode 100644 src/game/unk_0A1DA0.c create mode 100644 src/game/unk_0A1DA0.h create mode 100644 src/game/unk_0B3200.c create mode 100644 src/game/unk_0BC530.c create mode 100644 src/game/unk_0C0A70.c create mode 100644 src/game/unk_0C0A70.h create mode 100644 src/game/unk_0CC4C0.c create mode 100644 src/game/unk_0CC4C0.h create mode 100644 src/game/unk_0D1AC0.c create mode 100644 src/game/viewport.c create mode 100644 src/game/watch.c create mode 100644 src/game/watch.h create mode 100644 src/game/zlib.c create mode 100644 src/game/zlib.h create mode 100644 src/gspboot.s create mode 100644 src/inflate/inflate.c create mode 100644 src/inflate/inflate.h create mode 100644 src/init.c create mode 100644 src/init.h create mode 100644 src/joy.c create mode 100644 src/joy.h create mode 100644 src/libultra/ai.s create mode 100644 src/libultra/aigetlen.s create mode 100644 src/libultra/aisetfreq.s create mode 100644 src/libultra/aisetnextbuf.s create mode 100644 src/libultra/align.s create mode 100644 src/libultra/auxbus.s create mode 100644 src/libultra/bcmp.s create mode 100644 src/libultra/bcopy.s create mode 100644 src/libultra/bnkf.s create mode 100644 src/libultra/bzero.s create mode 100644 src/libultra/cents2ratio.s create mode 100644 src/libultra/conteeplongread.s create mode 100644 src/libultra/conteeplongwrite.s create mode 100644 src/libultra/conteepprobe.s create mode 100644 src/libultra/conteepread.s create mode 100644 src/libultra/conteepwrite.s create mode 100644 src/libultra/contpfs.s create mode 100644 src/libultra/contquery.s create mode 100644 src/libultra/contramread.s create mode 100644 src/libultra/contramwrite.s create mode 100644 src/libultra/contreaddata.s create mode 100644 src/libultra/controller.s create mode 100644 src/libultra/copy.s create mode 100644 src/libultra/coss.s create mode 100644 src/libultra/crc.s create mode 100644 src/libultra/createmesgqueue.s create mode 100644 src/libultra/createthread.s create mode 100644 src/libultra/cseq.s create mode 100644 src/libultra/cspgetstate.s create mode 100644 src/libultra/csplayer.s create mode 100644 src/libultra/cspplay.s create mode 100644 src/libultra/cspsetseq.s create mode 100644 src/libultra/cspsetvol.s create mode 100644 src/libultra/cspstop.s create mode 100644 src/libultra/destroythread.s create mode 100644 src/libultra/devmgr.s create mode 100644 src/libultra/dp.s create mode 100644 src/libultra/dpctr.s create mode 100644 src/libultra/dpsetnextbuf.s create mode 100644 src/libultra/dpsetstat.s create mode 100644 src/libultra/drvrNew.s create mode 100644 src/libultra/env.s create mode 100644 src/libultra/epirawdma.s create mode 100644 src/libultra/epirawwrite.s create mode 100644 src/libultra/event.s create mode 100644 src/libultra/exception.s create mode 100644 src/libultra/filter.s create mode 100644 src/libultra/getcount.s create mode 100644 src/libultra/getcurrfaultthread.s create mode 100644 src/libultra/getfpccsr.s create mode 100644 src/libultra/getsr.s create mode 100644 src/libultra/getthreadpri.s create mode 100644 src/libultra/gettime.s create mode 100644 src/libultra/gettlbhi.s create mode 100644 src/libultra/heapalloc.s create mode 100644 src/libultra/heapinit.s create mode 100644 src/libultra/initialize.s create mode 100644 src/libultra/interrupt.s create mode 100644 src/libultra/invaldcache.s create mode 100644 src/libultra/invalicache.s create mode 100644 src/libultra/jammesg.s create mode 100644 src/libultra/kdebugserver.s create mode 100644 src/libultra/ldiv.s create mode 100644 src/libultra/leodiskinit.s create mode 100644 src/libultra/leointerrupt.s create mode 100644 src/libultra/libm_vals.s create mode 100644 src/libultra/ll.s create mode 100644 src/libultra/llcvt.s create mode 100644 src/libultra/load.s create mode 100644 src/libultra/lookat.s create mode 100644 src/libultra/lookatref.s create mode 100644 src/libultra/mainbus.s create mode 100644 src/libultra/mtxutil.s create mode 100644 src/libultra/normalize.s create mode 100644 src/libultra/ortho.s create mode 100644 src/libultra/parameters.s create mode 100644 src/libultra/perspective.s create mode 100644 src/libultra/pfsinit.s create mode 100644 src/libultra/pfsisplug.s create mode 100644 src/libultra/piacs.s create mode 100644 src/libultra/pidma.s create mode 100644 src/libultra/pigetcmdq.s create mode 100644 src/libultra/pigetstat.s create mode 100644 src/libultra/pimgr.s create mode 100644 src/libultra/pirawdma.s create mode 100644 src/libultra/pirawread.s create mode 100644 src/libultra/piread.s create mode 100644 src/libultra/probetlb.s create mode 100644 src/libultra/recvmesg.s create mode 100644 src/libultra/resample.s create mode 100644 src/libultra/resetglobalintmask.s create mode 100644 src/libultra/reverb.s create mode 100644 src/libultra/rotate.s create mode 100644 src/libultra/save.s create mode 100644 src/libultra/scale.s create mode 100644 src/libultra/sendmesg.s create mode 100644 src/libultra/seq.s create mode 100644 src/libultra/seqplayer.s create mode 100644 src/libultra/seqpsetbank.s create mode 100644 src/libultra/setcompare.s create mode 100644 src/libultra/seteventmesg.s create mode 100644 src/libultra/setfpccsr.s create mode 100644 src/libultra/sethwinterrupt.s create mode 100644 src/libultra/setintmask.s create mode 100644 src/libultra/setsr.s create mode 100644 src/libultra/setthreadpri.s create mode 100644 src/libultra/settimer.s create mode 100644 src/libultra/si.s create mode 100644 src/libultra/siacs.s create mode 100644 src/libultra/sins.s create mode 100644 src/libultra/sirawdma.s create mode 100644 src/libultra/sirawread.s create mode 100644 src/libultra/sirawwrite.s create mode 100644 src/libultra/sl.s create mode 100644 src/libultra/sp.s create mode 100644 src/libultra/spgetstat.s create mode 100644 src/libultra/sprawdma.s create mode 100644 src/libultra/spsetpc.s create mode 100644 src/libultra/spsetstat.s create mode 100644 src/libultra/sptask.s create mode 100644 src/libultra/sptaskyield.s create mode 100644 src/libultra/sptaskyielded.s create mode 100644 src/libultra/sqrtf.s create mode 100644 src/libultra/startthread.s create mode 100644 src/libultra/stopthread.s create mode 100644 src/libultra/string.s create mode 100644 src/libultra/synaddplayer.s create mode 100644 src/libultra/synallocfx.s create mode 100644 src/libultra/synallocvoice.s create mode 100644 src/libultra/syndelete.s create mode 100644 src/libultra/synfreevoice.s create mode 100644 src/libultra/synsetfxmix.s create mode 100644 src/libultra/synsetpan.s create mode 100644 src/libultra/synsetpitch.s create mode 100644 src/libultra/synsetpriority.s create mode 100644 src/libultra/synsetvol.s create mode 100644 src/libultra/synstartvoice.s create mode 100644 src/libultra/synstartvoiceparam.s create mode 100644 src/libultra/synstopvoice.s create mode 100644 src/libultra/synthesizer.s create mode 100644 src/libultra/thread.s create mode 100644 src/libultra/timerintr.s create mode 100644 src/libultra/translate.s create mode 100644 src/libultra/ultra7001B830.s create mode 100644 src/libultra/ultra7001B9A0.s create mode 100644 src/libultra/ultra80069080.s create mode 100644 src/libultra/unmaptlb.s create mode 100644 src/libultra/vi.s create mode 100644 src/libultra/viblack.s create mode 100644 src/libultra/vigetcurrcontext.s create mode 100644 src/libultra/vigetcurrframebuf.s create mode 100644 src/libultra/vigetnextframebuf.s create mode 100644 src/libultra/vimgr.s create mode 100644 src/libultra/vimodentsclan1.s create mode 100644 src/libultra/vimodepallan1.s create mode 100644 src/libultra/virepeatline.s create mode 100644 src/libultra/virtualtophysical.s create mode 100644 src/libultra/visetevent.s create mode 100644 src/libultra/visetmode.s create mode 100644 src/libultra/visetspecial.s create mode 100644 src/libultra/visetxscale.s create mode 100644 src/libultra/visetyscale.s create mode 100644 src/libultra/viswapbuf.s create mode 100644 src/libultra/viswapcontext.s create mode 100644 src/libultra/vitbl.s create mode 100644 src/libultra/writebackdcache.s create mode 100644 src/libultra/writebackdcacheall.s create mode 100644 src/libultra/xldtob.s create mode 100644 src/libultra/xlitob.s create mode 100644 src/libultra/xprintf.s create mode 100644 src/libultra/yieldthread.s create mode 100644 src/mema.c create mode 100644 src/mema.h create mode 100644 src/memp.c create mode 100644 src/memp.h create mode 100644 src/motor.c create mode 100644 src/music.c create mode 100644 src/music.h create mode 100644 src/osMapTLB.c create mode 100644 src/pi.c create mode 100644 src/pi.h create mode 100644 src/ramrom.c create mode 100644 src/ramrom.h create mode 100644 src/random.c create mode 100644 src/rmon.c create mode 100644 src/rmon.h create mode 100644 src/rom_header.s create mode 100644 src/rspboot.s create mode 100644 src/sched.c create mode 100644 src/sched.h create mode 100644 src/snd.c create mode 100644 src/snd.h create mode 100644 src/speed_graph.c create mode 100644 src/sprintf.c create mode 100644 src/stacks.c create mode 100644 src/str.c create mode 100644 src/tlb_buffer.c create mode 100644 src/tlb_buffer.h create mode 100644 src/tlb_hardwire.c create mode 100644 src/tlb_hardwire.h create mode 100644 src/tlb_manage.c create mode 100644 src/tlb_manage.h create mode 100644 src/tlb_random.c create mode 100644 src/tlb_random.h create mode 100644 src/tlb_resolve.c create mode 100644 src/tlb_resolve.h create mode 100644 src/token.c create mode 100644 src/vi.c create mode 100644 src/vi.h create mode 100644 src/video.c create mode 100644 src/video.h create mode 100644 tools/1172compress.sh create mode 100644 tools/RareZip.sh create mode 100644 tools/SGIImageViewer.exe create mode 100644 tools/SGIImgView.png create mode 100644 tools/armips create mode 100644 tools/asmpreproc/asm-processor.py create mode 100644 tools/asmpreproc/compile.sh create mode 100644 tools/asmpreproc/include-stdin.c create mode 100644 tools/asmpreproc/macros.inc create mode 100644 tools/asmpreproc/prelude.s create mode 100644 tools/data_compress.sh create mode 100644 tools/gzip create mode 100644 tools/irix/qemu-irix create mode 100644 tools/irix/root/lib/libmalloc.so create mode 100644 tools/irix/root/lib/libmalloc_old.so create mode 100644 tools/irix/root/lib/rld create mode 100644 tools/irix/root/usr/bin/cc create mode 100644 tools/irix/root/usr/lib/as0 create mode 100644 tools/irix/root/usr/lib/as1 create mode 100644 tools/irix/root/usr/lib/cfe create mode 100644 tools/irix/root/usr/lib/crt1.o create mode 100644 tools/irix/root/usr/lib/err.english.cc create mode 100644 tools/irix/root/usr/lib/libc.so.1 create mode 100644 tools/irix/root/usr/lib/libexc.so create mode 100644 tools/irix/root/usr/lib/libgen.so create mode 100644 tools/irix/root/usr/lib/libm.so create mode 100644 tools/irix/root/usr/lib/ugen create mode 100644 tools/irix/root/usr/lib/ujoin create mode 100644 tools/irix/root/usr/lib/uld create mode 100644 tools/irix/root/usr/lib/umerge create mode 100644 tools/irix/root/usr/lib/uopt create mode 100644 tools/irix/root/usr/lib/usplit create mode 100644 tools/makebg.sh create mode 100644 tools/n64cksum create mode 100644 tools/rasm2armips.py create mode 100644 undefined_syms.txt diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8f8c513 --- /dev/null +++ b/readme.md @@ -0,0 +1,69 @@ +This is a working Goldeneye 007 decompilation! + +## Setup +The only requirements for Ubuntu 16.04 and 18.04 should be +``` +sudo apt install binutils-mips-linux-gnu make +``` +Make sure you cloned the repo with git otherwise it won't build!! + +Place a USA rom in project root named +``` +baserom.u.z64 +``` +followed by +``` +./extract_baserom.u.sh && make +``` +For J support also place a baserom.j.z64 in root and run: +``` +./extract_baserom.u.sh && ./extract_diff.j.sh && make VERSION=JP +``` + +If you are upgrading from an old repo, run: +``` +./clean_baserom.sh && ./extract_baserom.u.sh && make clean && make +``` + +The extract and clean scripts support switches: +``` +name_baserom.sh files +name_baserom.sh images +``` +to do just one or the other, default is both + +## Project Structure + +``` +goldeneye_src +├── assets: game assets +│   ├── font: font data +│   ├── images: image data +│   │   └── split: split image data +│   ├── music: music data +│   ├── obseg: animation data +│   │   ├── bg: bg data +│   │   ├── brief: briefing data +│   │   ├── chr: c model data +│   │   ├── gun: g model data +│   │   ├── prop: p model data +│   │   ├── setup: setup data +│   │   ├── stan: stan data +│   │   └── text: text data +│   └── ramrom: demo data +├── bin: files that haven't been touched +├── build: output directory +├── ge007_libultra: to be merged with libreultra +├── include: header files +├── lib: SDK library code +├── notes: documentation +├── src: C source code for game +│   ├── game: core ge specific code 0x7f000000 range +│   ├── libultra: currently used libultra.s +│   └── inflate: statically linked initial decompression code +└── tools: build tools +``` + +This decompilation was only made possible thanks to many awesome 00 Agents who will be revealed only if they wish. + +GE and PD documentation made by Zoinkity diff --git a/rename_sym.sh b/rename_sym.sh new file mode 100644 index 0000000..20ed834 --- /dev/null +++ b/rename_sym.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ "$#" -ne "2" ]; +then + echo "usage: $0 old_name new_name" + exit 1 +fi + +echo "Replace $1 with $2?" +read +grep -rl "$1" asm/*.s asm/code/*.s asm/libultra/*.s asm/game/*.s asm/rarezip/*.s src/*.c src/*.h include/*.h undefined_syms.txt sym_bss.txt notes/ge007.u.yaml include/globals.inc | xargs sed -i "s/\b$1\b/$2/g" diff --git a/rsp/rspboot.s b/rsp/rspboot.s new file mode 100644 index 0000000..2b65de6 --- /dev/null +++ b/rsp/rspboot.s @@ -0,0 +1,69 @@ +.rsp + +.create CODE_FILE, 0x04001000 + +// rspboot microcode by SGI +// this initalizes the RSP and gets it ready to load the next microcode. + + j rdpcheck + addi at, zero, 0x0fc0 +ucodeload: + lw v0, 0x0010(at) + addi v1, zero, 0x0f7f + addi a3, zero, 0x1080 + mtc0 a3, SP_MEM_ADDR + mtc0 v0, SP_DRAM_ADDR + mtc0 v1, SP_RD_LEN +ucodeloadloop: + mfc0 a0, SP_DMA_BUSY + bne a0, zero, ucodeloadloop + nop + jal checkyield + nop + jr a3 + mtc0 zero, SP_SEMAPHORE +checkyield: + mfc0 t0, SP_STATUS + andi t0, t0, 0x0080 + bne t0, zero, Yield + nop + jr ra +Yield: + mtc0 zero, SP_SEMAPHORE + ori t0, zero, 0x5200 + mtc0 t0, SP_STATUS + break + nop +rdpcheck: + lw v0, 0x0004(at) + andi v0, v0, 0x0002 + beq v0, zero, rdpwait + nop + jal checkyield + nop + mfc0 v0, DPC_STATUS + andi v0, v0, 0x0100 + bgtz v0, checkyield + nop +rdpwait: + lw v0, 0x0018(at) + lw v1, 0x001c(at) + addi v1, v1, -0x0001 +DMEMLoad: + mfc0 s8, SP_DMA_FULL + bne s8, zero, DMEMLoad + nop + mtc0 zero, SP_MEM_ADDR + mtc0 v0, SP_DRAM_ADDR + mtc0 v1, SP_RD_LEN +dmaloop: + mfc0 a0, SP_DMA_BUSY + bne a0, zero, dmaloop + nop + jal checkyield + nop + j ucodeload + nop + nop + +.close // CODE_FILE diff --git a/src/_start.s b/src/_start.s new file mode 100644 index 0000000..b0149f3 --- /dev/null +++ b/src/_start.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.section .text, "ax" +.include "macros.inc" + +# zoinkity note: +# 1000 80000400 memset (blanks) 8005D2E0 - 8008E360, sets SP->803AB410, JR to 80000450 +# technically, this is used in bootcode and used prior to TLB registration + +glabel _start +/* 001000 80000400 3C088006 */ lui $t0, %hi(_bssSegmentStart) +/* 001004 80000404 3C090003 */ lui $t1, %hi(_bssSegmentSize) # lui $t1, 3 +/* 001008 80000408 2508D2E0 */ addiu $t0, %lo(_bssSegmentStart) # addiu $t0, $t0, -0x2d20 +/* 00100C 8000040C 35291080 */ ori $t1, %lo(_bssSegmentSize) # ori $t1, $t1, 0x1080 +.L80000410: +/* 001010 80000410 2129FFF8 */ addi $t1, $t1, -8 +/* 001014 80000414 AD000000 */ sw $zero, ($t0) +/* 001018 80000418 AD000004 */ sw $zero, 4($t0) +/* 00101C 8000041C 1520FFFC */ bnez $t1, .L80000410 +/* 001020 80000420 21080008 */ addi $t0, $t0, 8 +/* 001024 80000424 3C0A8000 */ lui $t2, %hi(_boot_function) +/* 001028 80000428 3C1D803B */ lui $sp, %hi(sp_rmon) # $sp, 0x803b +/* 00102C 8000042C 254A0450 */ addiu $t2, %lo(_boot_function) # addiu $t2, $t2, 0x450 +/* 001030 80000430 01400008 */ jr $t2 +/* 001034 80000434 27BDB410 */ addiu $sp, %lo(sp_rmon) # addiu $sp, $sp, -0x4bf0 +/* 001038 80000438 00000000 */ nop +/* 00103C 8000043C 00000000 */ nop +/* 001040 80000440 00000000 */ nop +/* 001044 80000444 00000000 */ nop +/* 001048 80000448 00000000 */ nop +/* 00104C 8000044C 00000000 */ nop + +#hack to get us to first function of file boot0 using vaddr of 0x80000450 + _boot_function: + +.section .data +.section .rodata +.section .bss diff --git a/src/aspboot.s b/src/aspboot.s new file mode 100644 index 0000000..1b859ef --- /dev/null +++ b/src/aspboot.s @@ -0,0 +1,20 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel aspMainTextStart +.incbin "/bin/aspboot.text.bin" +glabel aspMainTextEnd + +.section .data +glabel aspMainDataStart +.incbin "/bin/aspboot.data.bin" +glabel aspMainDataEnd + diff --git a/src/audi.c b/src/audi.c new file mode 100644 index 0000000..ddc9459 --- /dev/null +++ b/src/audi.c @@ -0,0 +1,1370 @@ +//FIXME i still need data/bss love. +#include "ultra64.h" +#include "sched.h" +#include "audi.h" + +/** + * @file audi.c + * This file contains audio code. + */ + +u32 D_800230F0 = 0; +u32 audFrameCt = 0; +u32 nextDMA = 0; +u32 curAcmdList = 0; +u64 D_80023100[]= { + {0x000600001900}, + {0x0000000000A0}, + {0x2666FFFFD99A}, + {0x000000000000}, + {0x000000000000}, + {0x00A000000140}, + {0x2666FFFFD99A}, + {0x2B8400000000}, + {0x000000002500}, + {0x032000000A00}, + {0x4000FFFFC000}, + {0x11EB00000000}, + {0x000000003000}, + {0x0C80000015E0}, + {0x4000FFFFC000}, + {0x11EB00000000}, + {0x000000003500}, + {0x0D20000012C0}, + {0x2000FFFFE000}, + {0x000000000000}, + {0x000000004000}, + {0x000000001720}, + {0x32C8FFFFCD38}, + {0x00000000017C}, + {0x000A00004500}, +}; + +s32 firstTime = 1; + + +/*bss needs fixing */ +s32 dword_CODE_bss_8005E4B0[2]; +s32 dword_CODE_bss_8005E4B8[2]; +s32 dword_CODE_bss_8005E4C0; +s32 dword_CODE_bss_8005E4C4; +s32 dword_CODE_bss_8005E4C8; +s32 dword_CODE_bss_8005E4CC; +s32 dword_CODE_bss_8005E4D0[2]; +s32 dword_CODE_bss_8005E4D8[2]; +char dword_CODE_bss_8005E4E0[0x38]; +//8005e518 +char _am[0x284]; + + + + + + +//8005e7a0 +OSScClient audi_client[2]; +//8005e7b0 +s32 dmaState_initialized; +s32 dmaState_firstUsed; +s32 dmaState_firstFree[2]; +char dmaBuffs[0x500]; +s32 minFrameSize; +s32 frameSize; +s32 maxFrameSize; +s32 cmdLen; + +OSIoMesg audDMAIOMesgBuf[0x40]; +OSMesgQueue audDMAMessageQ; +char audDMAMessageBuf[0x108]; + + +/** + * 29D0 70001BD0 + */ +#ifdef NONMATCHING +void amCreateAudioMgr(void *arg0) +{ + ? sp48; + f32 temp_f0; + s32 temp_ret; + s32 temp_s2; + u32 temp_s0; + u32 temp_t0; + u32 temp_t9; + u32 temp_v1; + void *temp_s0_2; + void *temp_s1; + void *temp_t0_2; + void *temp_t7; + u32 phi_v1; + u32 phi_v1_2; + void *phi_t7; + void *phi_t0; + void *phi_s0; + s32 phi_s0_2; + void *phi_s1; + s32 phi_s2; + void *phi_s0_3; + + arg0->unk10 = &__amDmaNew; + temp_ret = osAiSetFrequency(0x5622); + arg0->unk18 = temp_ret; + temp_f0 = (f32) (temp_ret * 2) / 60.0f; + temp_t9 = (u32) temp_f0; + frameSize = temp_t9; + temp_t0 = temp_t9 + 1; + phi_v1 = temp_t9; + if ((f32) temp_t9 < temp_f0) + { + frameSize = temp_t0; + phi_v1 = temp_t0; + } + phi_v1_2 = phi_v1; + if ((phi_v1 & 0xf) != 0) + { + temp_v1 = (phi_v1 & -0x10) + 0x10; + frameSize = temp_v1; + phi_v1_2 = temp_v1; + } + minFrameSize = (s32) (phi_v1_2 + -0x10); + maxFrameSize = (s32) (phi_v1_2 + 0x35); + if (arg0->unk1C == 6) + { + phi_t7 = &D_80023100; + phi_t0 = &sp48; +loop_6: + temp_t7 = phi_t7 + 0xc; + temp_t0_2 = phi_t0 + 0xc; + temp_t0_2->unk-C = (?32) *phi_t7; + temp_t0_2->unk-8 = (?32) temp_t7->unk-8; + temp_t0_2->unk-4 = (?32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t0 = temp_t0_2; + if (temp_t7 != (&D_80023100 + 0xc0)) + { + goto loop_6; + } + temp_t0_2->unk0 = (?32) temp_t7->unk0; + temp_t0_2->unk4 = (?32) temp_t7->unk4; + arg0->unk20 = &sp48; + alInit(&_am+0x238, arg0); + } + else + { + alInit(&_am+0x238, arg0); + } + phi_s0 = &_am; +loop_10: + phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x60); + temp_s0 = phi_s0 + 4; + *phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, (s32) (maxFrameSize * 4)); + phi_s0 = temp_s0; + if (temp_s0 < &_am+0xC) + { + goto loop_10; + } + osCreateMesgQueue(&_am+0x200, &_am+0x218, 8); + osCreateMesgQueue(&_am+0x1C8, &_am+0x1E0, 8); + osCreateMesgQueue(&audDMAMessageQ, &audDMAMessageBuf, 0x40); + dmaBuffs.unk4 = 0; + dmaBuffs.unk0 = 0; + phi_s0_2 = dmaBuffs + 0xe; + phi_s1 = &dmaBuffs; + phi_s2 = 0; +loop_12: + alLink(phi_s0_2, phi_s1); + temp_s2 = phi_s2 + 1; + temp_s1 = phi_s1 + 0x14; + temp_s1->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); + phi_s0_2 = phi_s0_2 + 0x14; + phi_s1 = temp_s1; + phi_s2 = temp_s2; + if (temp_s2 < 0x3f) + { + goto loop_12; + } + temp_s1->unk10 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); + phi_s0_3 = &_am; +loop_14: + temp_s0_2 = phi_s0_3 + 4; + temp_s0_2->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x5dc0); + phi_s0_3 = temp_s0_2; + if (temp_s0_2 != &_am+0x8) + { + goto loop_14; + } + osCreateThread(&_am+0x18, 4, &_amMain, 0, set_stack_entry(&sp_audi, 0x1000), 0x14); +} +#else +GLOBAL_ASM( +.text +glabel amCreateAudioMgr +/* 0027D0 70001BD0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0027D4 70001BD4 AFB3002C */ sw $s3, 0x2c($sp) +/* 0027D8 70001BD8 3C0E7000 */ lui $t6, %hi(__amDmaNew) # $t6, 0x7000 +/* 0027DC 70001BDC AFBF0034 */ sw $ra, 0x34($sp) +/* 0027E0 70001BE0 AFB40030 */ sw $s4, 0x30($sp) +/* 0027E4 70001BE4 AFB20028 */ sw $s2, 0x28($sp) +/* 0027E8 70001BE8 AFB10024 */ sw $s1, 0x24($sp) +/* 0027EC 70001BEC AFB00020 */ sw $s0, 0x20($sp) +/* 0027F0 70001BF0 25CE25D8 */ addiu $t6, %lo(__amDmaNew) # addiu $t6, $t6, 0x25d8 +/* 0027F4 70001BF4 00809825 */ move $s3, $a0 +/* 0027F8 70001BF8 AC8E0010 */ sw $t6, 0x10($a0) +/* 0027FC 70001BFC 0C003A4C */ jal osAiSetFrequency +/* 002800 70001C00 24045622 */ li $a0, 22050 +/* 002804 70001C04 00027840 */ sll $t7, $v0, 1 +/* 002808 70001C08 448F2000 */ mtc1 $t7, $f4 +/* 00280C 70001C0C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 002810 70001C10 44814000 */ mtc1 $at, $f8 +/* 002814 70001C14 468021A0 */ cvt.s.w $f6, $f4 +/* 002818 70001C18 24190001 */ li $t9, 1 +/* 00281C 70001C1C 3C048006 */ lui $a0, %hi(frameSize) +/* 002820 70001C20 3C148006 */ lui $s4, %hi(maxFrameSize) +/* 002824 70001C24 2484ECC4 */ addiu $a0, %lo(frameSize) # addiu $a0, $a0, -0x133c +/* 002828 70001C28 AE620018 */ sw $v0, 0x18($s3) +/* 00282C 70001C2C 46083003 */ div.s $f0, $f6, $f8 +/* 002830 70001C30 2694ECC8 */ addiu $s4, %lo(maxFrameSize) # addiu $s4, $s4, -0x1338 +/* 002834 70001C34 4458F800 */ cfc1 $t8, $31 +/* 002838 70001C38 44D9F800 */ ctc1 $t9, $31 +/* 00283C 70001C3C 00000000 */ nop +/* 002840 70001C40 460002A4 */ cvt.w.s $f10, $f0 +/* 002844 70001C44 4459F800 */ cfc1 $t9, $31 +/* 002848 70001C48 00000000 */ nop +/* 00284C 70001C4C 33390078 */ andi $t9, $t9, 0x78 +/* 002850 70001C50 13200012 */ beqz $t9, .L70001C9C +/* 002854 70001C54 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 002858 70001C58 44815000 */ mtc1 $at, $f10 +/* 00285C 70001C5C 24190001 */ li $t9, 1 +/* 002860 70001C60 460A0281 */ sub.s $f10, $f0, $f10 +/* 002864 70001C64 44D9F800 */ ctc1 $t9, $31 +/* 002868 70001C68 00000000 */ nop +/* 00286C 70001C6C 460052A4 */ cvt.w.s $f10, $f10 +/* 002870 70001C70 4459F800 */ cfc1 $t9, $31 +/* 002874 70001C74 00000000 */ nop +/* 002878 70001C78 33390078 */ andi $t9, $t9, 0x78 +/* 00287C 70001C7C 17200005 */ bnez $t9, .L70001C94 +/* 002880 70001C80 00000000 */ nop +/* 002884 70001C84 44195000 */ mfc1 $t9, $f10 +/* 002888 70001C88 3C018000 */ lui $at, 0x8000 +/* 00288C 70001C8C 10000007 */ b .L70001CAC +/* 002890 70001C90 0321C825 */ or $t9, $t9, $at +.L70001C94: +/* 002894 70001C94 10000005 */ b .L70001CAC +/* 002898 70001C98 2419FFFF */ li $t9, -1 +.L70001C9C: +/* 00289C 70001C9C 44195000 */ mfc1 $t9, $f10 +/* 0028A0 70001CA0 00000000 */ nop +/* 0028A4 70001CA4 0720FFFB */ bltz $t9, .L70001C94 +/* 0028A8 70001CA8 00000000 */ nop +.L70001CAC: +/* 0028AC 70001CAC 03201825 */ move $v1, $t9 +/* 0028B0 70001CB0 44D8F800 */ ctc1 $t8, $31 +/* 0028B4 70001CB4 44838000 */ mtc1 $v1, $f16 +/* 0028B8 70001CB8 AC990000 */ sw $t9, ($a0) +/* 0028BC 70001CBC 07210005 */ bgez $t9, .L70001CD4 +/* 0028C0 70001CC0 468084A0 */ cvt.s.w $f18, $f16 +/* 0028C4 70001CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0028C8 70001CC8 44812000 */ mtc1 $at, $f4 +/* 0028CC 70001CCC 00000000 */ nop +/* 0028D0 70001CD0 46049480 */ add.s $f18, $f18, $f4 +.L70001CD4: +/* 0028D4 70001CD4 4600903C */ c.lt.s $f18, $f0 +/* 0028D8 70001CD8 00000000 */ nop +/* 0028DC 70001CDC 45000003 */ bc1f .L70001CEC +/* 0028E0 70001CE0 24680001 */ addiu $t0, $v1, 1 +/* 0028E4 70001CE4 AC880000 */ sw $t0, ($a0) +/* 0028E8 70001CE8 01001825 */ move $v1, $t0 +.L70001CEC: +/* 0028EC 70001CEC 3069000F */ andi $t1, $v1, 0xf +/* 0028F0 70001CF0 11200004 */ beqz $t1, .L70001D04 +/* 0028F4 70001CF4 2401FFF0 */ li $at, -16 +/* 0028F8 70001CF8 00615024 */ and $t2, $v1, $at +/* 0028FC 70001CFC 25430010 */ addiu $v1, $t2, 0x10 +/* 002900 70001D00 AC830000 */ sw $v1, ($a0) +.L70001D04: +/* 002904 70001D04 246CFFF0 */ addiu $t4, $v1, -0x10 +/* 002908 70001D08 3C018006 */ lui $at, %hi(minFrameSize) +/* 00290C 70001D0C AC2CECC0 */ sw $t4, %lo(minFrameSize)($at) +/* 002910 70001D10 246D0035 */ addiu $t5, $v1, 0x35 +/* 002914 70001D14 AE8D0000 */ sw $t5, ($s4) +/* 002918 70001D18 926E001C */ lbu $t6, 0x1c($s3) +/* 00291C 70001D1C 24010006 */ li $at, 6 +/* 002920 70001D20 3C048006 */ lui $a0, %hi(_am+0x238) +/* 002924 70001D24 15C1001A */ bne $t6, $at, .L70001D90 +/* 002928 70001D28 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 00292C 70001D2C 3C0F8002 */ lui $t7, %hi(D_80023100) +/* 002930 70001D30 27A20048 */ addiu $v0, $sp, 0x48 +/* 002934 70001D34 25EF3100 */ addiu $t7, %lo(D_80023100) # addiu $t7, $t7, 0x3100 +/* 002938 70001D38 25F900C0 */ addiu $t9, $t7, 0xc0 +/* 00293C 70001D3C 00404025 */ move $t0, $v0 +.L70001D40: +/* 002940 70001D40 8DE10000 */ lw $at, ($t7) +/* 002944 70001D44 25EF000C */ addiu $t7, $t7, 0xc +/* 002948 70001D48 2508000C */ addiu $t0, $t0, 0xc +/* 00294C 70001D4C AD01FFF4 */ sw $at, -0xc($t0) +/* 002950 70001D50 8DE1FFF8 */ lw $at, -8($t7) +/* 002954 70001D54 AD01FFF8 */ sw $at, -8($t0) +/* 002958 70001D58 8DE1FFFC */ lw $at, -4($t7) +/* 00295C 70001D5C 15F9FFF8 */ bne $t7, $t9, .L70001D40 +/* 002960 70001D60 AD01FFFC */ sw $at, -4($t0) +/* 002964 70001D64 8DE10000 */ lw $at, ($t7) +/* 002968 70001D68 3C048006 */ lui $a0, %hi(_am+0x238) +/* 00296C 70001D6C 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 002970 70001D70 AD010000 */ sw $at, ($t0) +/* 002974 70001D74 8DF90004 */ lw $t9, 4($t7) +/* 002978 70001D78 02602825 */ move $a1, $s3 +/* 00297C 70001D7C AD190004 */ sw $t9, 4($t0) +/* 002980 70001D80 0C003AC7 */ jal alInit +/* 002984 70001D84 AE620020 */ sw $v0, 0x20($s3) +/* 002988 70001D88 10000003 */ b .L70001D98 +/* 00298C 70001D8C 00000000 */ nop +.L70001D90: +/* 002990 70001D90 0C003AC7 */ jal alInit +/* 002994 70001D94 02602825 */ move $a1, $s3 +.L70001D98: +/* 002998 70001D98 3C108006 */ lui $s0, %hi(_am) +/* 00299C 70001D9C 3C118006 */ lui $s1, %hi(_am+0xC) +/* 0029A0 70001DA0 2631E524 */ addiu $s1, %lo(_am+0xC) # addiu $s1, $s1, -0x1adc +/* 0029A4 70001DA4 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 +.L70001DA8: +/* 0029A8 70001DA8 8E660014 */ lw $a2, 0x14($s3) +/* 0029AC 70001DAC 24090060 */ li $t1, 96 +/* 0029B0 70001DB0 AFA90010 */ sw $t1, 0x10($sp) +/* 0029B4 70001DB4 00002025 */ move $a0, $zero +/* 0029B8 70001DB8 00002825 */ move $a1, $zero +/* 0029BC 70001DBC 0C003AD4 */ jal alHeapDBAlloc +/* 0029C0 70001DC0 24070001 */ li $a3, 1 +/* 0029C4 70001DC4 8E8A0000 */ lw $t2, ($s4) +/* 0029C8 70001DC8 AE020008 */ sw $v0, 8($s0) +/* 0029CC 70001DCC 8E660014 */ lw $a2, 0x14($s3) +/* 0029D0 70001DD0 000A5880 */ sll $t3, $t2, 2 +/* 0029D4 70001DD4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0029D8 70001DD8 00002025 */ move $a0, $zero +/* 0029DC 70001DDC 00002825 */ move $a1, $zero +/* 0029E0 70001DE0 0C003AD4 */ jal alHeapDBAlloc +/* 0029E4 70001DE4 24070001 */ li $a3, 1 +/* 0029E8 70001DE8 8E0C0008 */ lw $t4, 8($s0) +/* 0029EC 70001DEC 26100004 */ addiu $s0, $s0, 4 +/* 0029F0 70001DF0 0211082B */ sltu $at, $s0, $s1 +/* 0029F4 70001DF4 1420FFEC */ bnez $at, .L70001DA8 +/* 0029F8 70001DF8 AD820000 */ sw $v0, ($t4) +/* 0029FC 70001DFC 3C048006 */ lui $a0, %hi(_am+0x200) +/* 002A00 70001E00 3C058006 */ lui $a1, %hi(_am+0x218) +/* 002A04 70001E04 24A5E730 */ addiu $a1, %lo(_am+0x218) # addiu $a1, $a1, -0x18d0 +/* 002A08 70001E08 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 +/* 002A0C 70001E0C 0C0035B4 */ jal osCreateMesgQueue +/* 002A10 70001E10 24060008 */ li $a2, 8 +/* 002A14 70001E14 3C048006 */ lui $a0, %hi(_am+0x1C8) +/* 002A18 70001E18 3C058006 */ lui $a1, %hi(_am+0x1E0) +/* 002A1C 70001E1C 24A5E6F8 */ addiu $a1, %lo(_am+0x1E0) # addiu $a1, $a1, -0x1908 +/* 002A20 70001E20 2484E6E0 */ addiu $a0, %lo(_am+0x1C8) # addiu $a0, $a0, -0x1920 +/* 002A24 70001E24 0C0035B4 */ jal osCreateMesgQueue +/* 002A28 70001E28 24060008 */ li $a2, 8 +/* 002A2C 70001E2C 3C048006 */ lui $a0, %hi(audDMAMessageQ) +/* 002A30 70001E30 3C058006 */ lui $a1, %hi(audDMAMessageBuf) +/* 002A34 70001E34 24A5F2E8 */ addiu $a1, %lo(audDMAMessageBuf) # addiu $a1, $a1, -0xd18 +/* 002A38 70001E38 2484F2D0 */ addiu $a0, %lo(audDMAMessageQ) # addiu $a0, $a0, -0xd30 +/* 002A3C 70001E3C 0C0035B4 */ jal osCreateMesgQueue +/* 002A40 70001E40 24060040 */ li $a2, 64 +/* 002A44 70001E44 3C028006 */ lui $v0, %hi(dmaBuffs) +/* 002A48 70001E48 2442E7C0 */ addiu $v0, %lo(dmaBuffs) # addiu $v0, $v0, -0x1840 +/* 002A4C 70001E4C 3C118006 */ lui $s1, %hi(dmaBuffs) +/* 002A50 70001E50 3C108006 */ lui $s0, %hi(dmaBuffs+20) +/* 002A54 70001E54 AC400004 */ sw $zero, 4($v0) +/* 002A58 70001E58 AC400000 */ sw $zero, ($v0) +/* 002A5C 70001E5C 2610E7D4 */ addiu $s0, $s0, %lo(dmaBuffs+20) +/* 002A60 70001E60 2631E7C0 */ addiu $s1, %lo(dmaBuffs) # addiu $s1, $s1, -0x1840 +/* 002A64 70001E64 00009025 */ move $s2, $zero +.L70001E68: +/* 002A68 70001E68 02002025 */ move $a0, $s0 +/* 002A6C 70001E6C 0C003AB0 */ jal alLink +/* 002A70 70001E70 02202825 */ move $a1, $s1 +/* 002A74 70001E74 8E660014 */ lw $a2, 0x14($s3) +/* 002A78 70001E78 240D0200 */ li $t5, 512 +/* 002A7C 70001E7C AFAD0010 */ sw $t5, 0x10($sp) +/* 002A80 70001E80 00002025 */ move $a0, $zero +/* 002A84 70001E84 00002825 */ move $a1, $zero +/* 002A88 70001E88 0C003AD4 */ jal alHeapDBAlloc +/* 002A8C 70001E8C 24070001 */ li $a3, 1 +/* 002A90 70001E90 26520001 */ addiu $s2, $s2, 1 +/* 002A94 70001E94 2A41003F */ slti $at, $s2, 0x3f +/* 002A98 70001E98 26310014 */ addiu $s1, $s1, 0x14 +/* 002A9C 70001E9C 26100014 */ addiu $s0, $s0, 0x14 +/* 002AA0 70001EA0 1420FFF1 */ bnez $at, .L70001E68 +/* 002AA4 70001EA4 AE22FFFC */ sw $v0, -4($s1) +/* 002AA8 70001EA8 8E660014 */ lw $a2, 0x14($s3) +/* 002AAC 70001EAC 240E0200 */ li $t6, 512 +/* 002AB0 70001EB0 AFAE0010 */ sw $t6, 0x10($sp) +/* 002AB4 70001EB4 00002025 */ move $a0, $zero +/* 002AB8 70001EB8 00002825 */ move $a1, $zero +/* 002ABC 70001EBC 0C003AD4 */ jal alHeapDBAlloc +/* 002AC0 70001EC0 24070001 */ li $a3, 1 +/* 002AC4 70001EC4 AE220010 */ sw $v0, 0x10($s1) +/* 002AC8 70001EC8 3C118006 */ lui $s1, %hi(_am+0x8) +/* 002ACC 70001ECC 3C108006 */ lui $s0, %hi(_am) +/* 002AD0 70001ED0 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 +/* 002AD4 70001ED4 2631E520 */ addiu $s1, %lo(_am+0x8) # addiu $s1, $s1, -0x1ae0 +.L70001ED8: +/* 002AD8 70001ED8 8E660014 */ lw $a2, 0x14($s3) +/* 002ADC 70001EDC 24185DC0 */ li $t8, 24000 +/* 002AE0 70001EE0 AFB80010 */ sw $t8, 0x10($sp) +/* 002AE4 70001EE4 00002025 */ move $a0, $zero +/* 002AE8 70001EE8 00002825 */ move $a1, $zero +/* 002AEC 70001EEC 0C003AD4 */ jal alHeapDBAlloc +/* 002AF0 70001EF0 24070001 */ li $a3, 1 +/* 002AF4 70001EF4 26100004 */ addiu $s0, $s0, 4 +/* 002AF8 70001EF8 1611FFF7 */ bne $s0, $s1, .L70001ED8 +/* 002AFC 70001EFC AE02FFFC */ sw $v0, -4($s0) +/* 002B00 70001F00 3C04803B */ lui $a0, %hi(sp_audi) # $a0, 0x803b +/* 002B04 70001F04 24843950 */ addiu $a0, %lo(sp_audi) # addiu $a0, $a0, 0x3950 +/* 002B08 70001F08 0C0001BC */ jal set_stack_entry +/* 002B0C 70001F0C 24051000 */ li $a1, 4096 +/* 002B10 70001F10 3C048006 */ lui $a0, %hi(_am+0x18) +/* 002B14 70001F14 3C067000 */ lui $a2, %hi(_amMain) # $a2, 0x7000 +/* 002B18 70001F18 24190014 */ li $t9, 20 +/* 002B1C 70001F1C AFB90014 */ sw $t9, 0x14($sp) +/* 002B20 70001F20 24C61F7C */ addiu $a2, %lo(_amMain) # addiu $a2, $a2, 0x1f7c +/* 002B24 70001F24 2484E530 */ addiu $a0, %lo(_am+0x18) # addiu $a0, $a0, -0x1ad0 +/* 002B28 70001F28 24050004 */ li $a1, 4 +/* 002B2C 70001F2C 00003825 */ move $a3, $zero +/* 002B30 70001F30 0C00350C */ jal osCreateThread +/* 002B34 70001F34 AFA20010 */ sw $v0, 0x10($sp) +/* 002B38 70001F38 8FBF0034 */ lw $ra, 0x34($sp) +/* 002B3C 70001F3C 8FB00020 */ lw $s0, 0x20($sp) +/* 002B40 70001F40 8FB10024 */ lw $s1, 0x24($sp) +/* 002B44 70001F44 8FB20028 */ lw $s2, 0x28($sp) +/* 002B48 70001F48 8FB3002C */ lw $s3, 0x2c($sp) +/* 002B4C 70001F4C 8FB40030 */ lw $s4, 0x30($sp) +/* 002B50 70001F50 03E00008 */ jr $ra +/* 002B54 70001F54 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + +/** + * 2B58 70001F58 + * insert sound manager thread + * redirect to 7000D580: A0=8005E530 + */ +#ifdef NONMATCHING +void startaudiThread(void) { + osStartThread(&_am+0x18); +} +#else +GLOBAL_ASM( +glabel startaudiThread +/* 002B58 70001F58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 002B5C 70001F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 002B60 70001F60 3C048006 */ lui $a0, %hi(_am+0x18) +/* 002B64 70001F64 0C003560 */ jal osStartThread +/* 002B68 70001F68 2484E530 */ addiu $a0, $a0, %lo(_am+0x18) +/* 002B6C 70001F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 002B70 70001F70 27BD0018 */ addiu $sp, $sp, 0x18 +/* 002B74 70001F74 03E00008 */ jr $ra +/* 002B78 70001F78 00000000 */ nop +) +#endif + +/** + * 2B7C 70001F7C + */ +#ifdef NONMATCHING +void _amMain(s32 arg0) +{ + void *sp64; + ?32 sp60; + u32 sp54; + s32 sp50; + u32 sp4C; + s32 sp48; + u32 sp44; + u32 sp40; + ? temp_ret; + s32 temp_s1; + ? temp_ret_2; + u32 temp_t8; + u32 temp_t9; + ? temp_ret_3; + u32 temp_t7; + s32 phi_s1; + s32 phi_s2; + s32 phi_s2_2; + + sp64 = NULL; + sp60 = 0; + osScAddClient(&sc, &audi_client, &_am+0x1C8, 1); + phi_s1 = 0; + phi_s2_2 = 0; +loop_1: + osRecvMesg(&_am+0x1C8, &sp64, 1); + if (*sp64 != 1) + { + if (*sp64 != 5) + { + if (*sp64 != 0xa) + { + phi_s2 = phi_s2_2; + phi_s1 = phi_s1; + } + else + { + phi_s2 = 1; + phi_s1 = phi_s1; + } + } + else + { + phi_s2 = 1; + phi_s1 = phi_s1; + } + } + else + { + temp_ret = osGetTime(*sp64); + dword_CODE_bss_8005E4D8 = temp_ret; + dword_CODE_bss_8005E4D8.unk4 = temp_ret; + video_related_3(0x30000); + _amHandleFrameMsg((0x80060000 + (((u32) audFrameCt % 3U) * 4))->unk-1AE0, sp60); + temp_s1 = (phi_s1 + 1); + video_related_3(0x60000); + temp_ret_2 = osGetTime(); + dword_CODE_bss_8005E4E0 = temp_ret_2; + temp_t8 = ((temp_ret_2 - dword_CODE_bss_8005E4D8) - (temp_ret_2 < (u32) dword_CODE_bss_8005E4D8.unk4)); + dword_CODE_bss_8005E4E0.unk4 = temp_ret_2; + temp_t9 = (temp_ret_2 - dword_CODE_bss_8005E4D8.unk4); + dword_CODE_bss_8005E4C0 = temp_t9; + dword_CODE_bss_8005E4C0 = temp_t8; + sp44 = temp_t9; + sp40 = temp_t8; + sp50 = temp_ret_2; + sp54 = temp_ret_2; + sp48 = (s32) dword_CODE_bss_8005E4D8; + sp4C = (u32) dword_CODE_bss_8005E4D8.unk4; + if ((temp_s1 % 0xf0) == 0) + { + temp_ret_3 = __ull_div(dword_CODE_bss_8005E4D0, dword_CODE_bss_8005E4D0.unk4, 0, 0xf0); + dword_CODE_bss_8005E4CC = temp_ret_3; + dword_CODE_bss_8005E4CC = temp_ret_3; + sp44 = (u32) (dword_CODE_bss_8005E4E0.unk4 - dword_CODE_bss_8005E4D8.unk4); + dword_CODE_bss_8005E4B8.unk4 = 0U; + dword_CODE_bss_8005E4B8 = 0U; + dword_CODE_bss_8005E4D0.unk4 = 0; + sp40 = (u32) ((dword_CODE_bss_8005E4E0 - dword_CODE_bss_8005E4D8) - ((u32) dword_CODE_bss_8005E4E0.unk4 < (u32) dword_CODE_bss_8005E4D8.unk4)); + dword_CODE_bss_8005E4D0 = 0; + } + else + { + temp_t7 = (dword_CODE_bss_8005E4D0.unk4 + sp54); + dword_CODE_bss_8005E4D0.unk4 = (s32) (temp_t7 - sp4C); + dword_CODE_bss_8005E4D0 = (s32) (((((temp_t7 < sp54) + dword_CODE_bss_8005E4D0) + sp50) - sp48) - (temp_t7 < sp4C)); + } + if (sp40 >= (u32) dword_CODE_bss_8005E4B8) + { + if (((u32) dword_CODE_bss_8005E4B8 < sp40) || ((u32) dword_CODE_bss_8005E4B8.unk4 < sp44)) + { + dword_CODE_bss_8005E4B8 = sp40; + dword_CODE_bss_8005E4B8.unk4 = sp44; + } + else + { + + } + } + osRecvMesg(&_am+0x200, &sp60, 1); + __amHandleDoneMsg(sp60); + phi_s2 = phi_s2_2; + phi_s1 = temp_s1; + } + phi_s2_2 = phi_s2; + if (phi_s2 == 0) + { + goto loop_1; + } + alClose(&_am+0x238); +} +#else +GLOBAL_ASM( +.text +glabel _amMain +/* 002B7C 70001F7C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 002B80 70001F80 AFB60030 */ sw $s6, 0x30($sp) +/* 002B84 70001F84 3C168006 */ lui $s6, %hi(_am+0x1C8) +/* 002B88 70001F88 AFA40070 */ sw $a0, 0x70($sp) +/* 002B8C 70001F8C 26D6E6E0 */ addiu $s6, %lo(_am+0x1C8) # addiu $s6, $s6, -0x1920 +/* 002B90 70001F90 AFBF003C */ sw $ra, 0x3c($sp) +/* 002B94 70001F94 AFB20020 */ sw $s2, 0x20($sp) +/* 002B98 70001F98 AFB1001C */ sw $s1, 0x1c($sp) +/* 002B9C 70001F9C 3C048006 */ lui $a0, %hi(sc) +/* 002BA0 70001FA0 3C058006 */ lui $a1, %hi(audi_client) +/* 002BA4 70001FA4 AFBE0038 */ sw $fp, 0x38($sp) +/* 002BA8 70001FA8 AFB70034 */ sw $s7, 0x34($sp) +/* 002BAC 70001FAC AFB5002C */ sw $s5, 0x2c($sp) +/* 002BB0 70001FB0 AFB40028 */ sw $s4, 0x28($sp) +/* 002BB4 70001FB4 AFB30024 */ sw $s3, 0x24($sp) +/* 002BB8 70001FB8 AFB00018 */ sw $s0, 0x18($sp) +/* 002BBC 70001FBC 00008825 */ move $s1, $zero +/* 002BC0 70001FC0 00009025 */ move $s2, $zero +/* 002BC4 70001FC4 AFA00064 */ sw $zero, 0x64($sp) +/* 002BC8 70001FC8 AFA00060 */ sw $zero, 0x60($sp) +/* 002BCC 70001FCC 24A5E7A0 */ addiu $a1, %lo(audi_client) # addiu $a1, $a1, -0x1860 +/* 002BD0 70001FD0 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 +/* 002BD4 70001FD4 02C03025 */ move $a2, $s6 +/* 002BD8 70001FD8 0C000305 */ jal osScAddClient +/* 002BDC 70001FDC 24070001 */ li $a3, 1 +/* 002BE0 70001FE0 3C158006 */ lui $s5, %hi(dword_CODE_bss_8005E4E0) +/* 002BE4 70001FE4 3C148006 */ lui $s4, %hi(dword_CODE_bss_8005E4D8) +/* 002BE8 70001FE8 3C138006 */ lui $s3, %hi(dword_CODE_bss_8005E4B8) +/* 002BEC 70001FEC 3C108006 */ lui $s0, %hi(dword_CODE_bss_8005E4D0) +/* 002BF0 70001FF0 2610E4D0 */ addiu $s0, %lo(dword_CODE_bss_8005E4D0) # addiu $s0, $s0, -0x1b30 +/* 002BF4 70001FF4 2673E4B8 */ addiu $s3, %lo(dword_CODE_bss_8005E4B8) # addiu $s3, $s3, -0x1b48 +/* 002BF8 70001FF8 2694E4D8 */ addiu $s4, %lo(dword_CODE_bss_8005E4D8) # addiu $s4, $s4, -0x1b28 +/* 002BFC 70001FFC 26B5E4E0 */ addiu $s5, %lo(dword_CODE_bss_8005E4E0) # addiu $s5, $s5, -0x1b20 +/* 002C00 70002000 241E0001 */ li $fp, 1 +/* 002C04 70002004 27B70064 */ addiu $s7, $sp, 0x64 +/* 002C08 70002008 02C02025 */ move $a0, $s6 +.L7000200C: +/* 002C0C 7000200C 02E02825 */ move $a1, $s7 +/* 002C10 70002010 0C003774 */ jal osRecvMesg +/* 002C14 70002014 03C03025 */ move $a2, $fp +/* 002C18 70002018 8FAE0064 */ lw $t6, 0x64($sp) +/* 002C1C 7000201C 24010005 */ li $at, 5 +/* 002C20 70002020 85C40000 */ lh $a0, ($t6) +/* 002C24 70002024 109E0007 */ beq $a0, $fp, .L70002044 +/* 002C28 70002028 00000000 */ nop +/* 002C2C 7000202C 10810071 */ beq $a0, $at, .L700021F4 +/* 002C30 70002030 2401000A */ li $at, 10 +/* 002C34 70002034 50810072 */ beql $a0, $at, .L70002200 +/* 002C38 70002038 03C09025 */ move $s2, $fp +/* 002C3C 7000203C 10000070 */ b .L70002200 +/* 002C40 70002040 00000000 */ nop +.L70002044: +/* 002C44 70002044 0C003AEC */ jal osGetTime +/* 002C48 70002048 00000000 */ nop +/* 002C4C 7000204C AE820000 */ sw $v0, ($s4) +/* 002C50 70002050 AE830004 */ sw $v1, 4($s4) +/* 002C54 70002054 0C000A15 */ jal video_related_3 +/* 002C58 70002058 3C040003 */ lui $a0, 3 +/* 002C5C 7000205C 3C0F8002 */ lui $t7, %hi(audFrameCt) +/* 002C60 70002060 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) +/* 002C64 70002064 24010003 */ li $at, 3 +/* 002C68 70002068 3C048006 */ lui $a0, %hi(_am+8) +/* 002C6C 7000206C 01E1001B */ divu $zero, $t7, $at +/* 002C70 70002070 0000C010 */ mfhi $t8 +/* 002C74 70002074 0018C880 */ sll $t9, $t8, 2 +/* 002C78 70002078 00992021 */ addu $a0, $a0, $t9 +/* 002C7C 7000207C 8C84E520 */ lw $a0, %lo(_am+8)($a0) +/* 002C80 70002080 0C000891 */ jal _amHandleFrameMsg +/* 002C84 70002084 8FA50060 */ lw $a1, 0x60($sp) +/* 002C88 70002088 26310001 */ addiu $s1, $s1, 1 +/* 002C8C 7000208C 0C000A15 */ jal video_related_3 +/* 002C90 70002090 3C040006 */ lui $a0, 6 +/* 002C94 70002094 0C003AEC */ jal osGetTime +/* 002C98 70002098 00000000 */ nop +/* 002C9C 7000209C 8E8A0000 */ lw $t2, ($s4) +/* 002CA0 700020A0 8E8B0004 */ lw $t3, 4($s4) +/* 002CA4 700020A4 AEA20000 */ sw $v0, ($s5) +/* 002CA8 700020A8 004AC023 */ subu $t8, $v0, $t2 +/* 002CAC 700020AC 006B082B */ sltu $at, $v1, $t3 +/* 002CB0 700020B0 0301C023 */ subu $t8, $t8, $at +/* 002CB4 700020B4 AEA30004 */ sw $v1, 4($s5) +/* 002CB8 700020B8 3C018006 */ lui $at, %hi(dword_CODE_bss_8005E4C0) +/* 002CBC 700020BC 006BC823 */ subu $t9, $v1, $t3 +/* 002CC0 700020C0 AC39E4C4 */ sw $t9, %lo(dword_CODE_bss_8005E4C4)($at) +/* 002CC4 700020C4 AC38E4C0 */ sw $t8, %lo(dword_CODE_bss_8005E4C0)($at) +/* 002CC8 700020C8 240100F0 */ li $at, 240 +/* 002CCC 700020CC 0221001A */ div $zero, $s1, $at +/* 002CD0 700020D0 00004010 */ mfhi $t0 +/* 002CD4 700020D4 AFB90044 */ sw $t9, 0x44($sp) +/* 002CD8 700020D8 AFB80040 */ sw $t8, 0x40($sp) +/* 002CDC 700020DC AFA20050 */ sw $v0, 0x50($sp) +/* 002CE0 700020E0 AFA30054 */ sw $v1, 0x54($sp) +/* 002CE4 700020E4 AFAA0048 */ sw $t2, 0x48($sp) +/* 002CE8 700020E8 1500001C */ bnez $t0, .L7000215C +/* 002CEC 700020EC AFAB004C */ sw $t3, 0x4c($sp) +/* 002CF0 700020F0 8E040000 */ lw $a0, ($s0) +/* 002CF4 700020F4 8E050004 */ lw $a1, 4($s0) +/* 002CF8 700020F8 24060000 */ li $a2, 0 +/* 002CFC 700020FC 0C003B2A */ jal __ull_div +/* 002D00 70002100 240700F0 */ li $a3, 240 +/* 002D04 70002104 3C018006 */ lui $at, %hi(dword_CODE_bss_8005E4CC) +/* 002D08 70002108 AC22E4C8 */ sw $v0, %lo(dword_CODE_bss_8005E4C8)($at) +/* 002D0C 7000210C AC23E4CC */ sw $v1, %lo(dword_CODE_bss_8005E4CC)($at) +/* 002D10 70002110 8E990004 */ lw $t9, 4($s4) +/* 002D14 70002114 8E980000 */ lw $t8, ($s4) +/* 002D18 70002118 8EAF0004 */ lw $t7, 4($s5) +/* 002D1C 7000211C 8EAE0000 */ lw $t6, ($s5) +/* 002D20 70002120 240A0000 */ li $t2, 0 +/* 002D24 70002124 01F9082B */ sltu $at, $t7, $t9 +/* 002D28 70002128 01D84023 */ subu $t0, $t6, $t8 +/* 002D2C 7000212C 01014023 */ subu $t0, $t0, $at +/* 002D30 70002130 240B0000 */ li $t3, 0 +/* 002D34 70002134 240C0000 */ li $t4, 0 +/* 002D38 70002138 240D0000 */ li $t5, 0 +/* 002D3C 7000213C 01F94823 */ subu $t1, $t7, $t9 +/* 002D40 70002140 AFA90044 */ sw $t1, 0x44($sp) +/* 002D44 70002144 AE6D0004 */ sw $t5, 4($s3) +/* 002D48 70002148 AE6C0000 */ sw $t4, ($s3) +/* 002D4C 7000214C AE0B0004 */ sw $t3, 4($s0) +/* 002D50 70002150 AFA80040 */ sw $t0, 0x40($sp) +/* 002D54 70002154 10000011 */ b .L7000219C +/* 002D58 70002158 AE0A0000 */ sw $t2, ($s0) +.L7000215C: +/* 002D5C 7000215C 8E0B0004 */ lw $t3, 4($s0) +/* 002D60 70002160 8FAD0054 */ lw $t5, 0x54($sp) +/* 002D64 70002164 8E0A0000 */ lw $t2, ($s0) +/* 002D68 70002168 8FAC0050 */ lw $t4, 0x50($sp) +/* 002D6C 7000216C 016D7821 */ addu $t7, $t3, $t5 +/* 002D70 70002170 8FB80048 */ lw $t8, 0x48($sp) +/* 002D74 70002174 8FB9004C */ lw $t9, 0x4c($sp) +/* 002D78 70002178 01ED082B */ sltu $at, $t7, $t5 +/* 002D7C 7000217C 002A7021 */ addu $t6, $at, $t2 +/* 002D80 70002180 01CC7021 */ addu $t6, $t6, $t4 +/* 002D84 70002184 01D84023 */ subu $t0, $t6, $t8 +/* 002D88 70002188 01F9082B */ sltu $at, $t7, $t9 +/* 002D8C 7000218C 01014023 */ subu $t0, $t0, $at +/* 002D90 70002190 01F94823 */ subu $t1, $t7, $t9 +/* 002D94 70002194 AE090004 */ sw $t1, 4($s0) +/* 002D98 70002198 AE080000 */ sw $t0, ($s0) +.L7000219C: +/* 002D9C 7000219C 8E6A0000 */ lw $t2, ($s3) +/* 002DA0 700021A0 8FAC0040 */ lw $t4, 0x40($sp) +/* 002DA4 700021A4 8E6B0004 */ lw $t3, 4($s3) +/* 002DA8 700021A8 8FAD0044 */ lw $t5, 0x44($sp) +/* 002DAC 700021AC 018A082B */ sltu $at, $t4, $t2 +/* 002DB0 700021B0 14200008 */ bnez $at, .L700021D4 +/* 002DB4 700021B4 3C048006 */ lui $a0, %hi(_am+0x200) +/* 002DB8 700021B8 014C082B */ sltu $at, $t2, $t4 +/* 002DBC 700021BC 14200003 */ bnez $at, .L700021CC +/* 002DC0 700021C0 016D082B */ sltu $at, $t3, $t5 +/* 002DC4 700021C4 10200003 */ beqz $at, .L700021D4 +/* 002DC8 700021C8 00000000 */ nop +.L700021CC: +/* 002DCC 700021CC AE6C0000 */ sw $t4, ($s3) +/* 002DD0 700021D0 AE6D0004 */ sw $t5, 4($s3) +.L700021D4: +/* 002DD4 700021D4 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 +/* 002DD8 700021D8 27A50060 */ addiu $a1, $sp, 0x60 +/* 002DDC 700021DC 0C003774 */ jal osRecvMesg +/* 002DE0 700021E0 03C03025 */ move $a2, $fp +/* 002DE4 700021E4 0C0008F9 */ jal __amHandleDoneMsg +/* 002DE8 700021E8 8FA40060 */ lw $a0, 0x60($sp) +/* 002DEC 700021EC 10000004 */ b .L70002200 +/* 002DF0 700021F0 00000000 */ nop +.L700021F4: +/* 002DF4 700021F4 10000002 */ b .L70002200 +/* 002DF8 700021F8 03C09025 */ move $s2, $fp +/* 002DFC 700021FC 03C09025 */ move $s2, $fp +.L70002200: +/* 002E00 70002200 5240FF82 */ beql $s2, $zero, .L7000200C +/* 002E04 70002204 02C02025 */ move $a0, $s6 +/* 002E08 70002208 3C048006 */ lui $a0, %hi(_am+0x238) +/* 002E0C 7000220C 0C003AB9 */ jal alClose +/* 002E10 70002210 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 002E14 70002214 8FBF003C */ lw $ra, 0x3c($sp) +/* 002E18 70002218 8FB00018 */ lw $s0, 0x18($sp) +/* 002E1C 7000221C 8FB1001C */ lw $s1, 0x1c($sp) +/* 002E20 70002220 8FB20020 */ lw $s2, 0x20($sp) +/* 002E24 70002224 8FB30024 */ lw $s3, 0x24($sp) +/* 002E28 70002228 8FB40028 */ lw $s4, 0x28($sp) +/* 002E2C 7000222C 8FB5002C */ lw $s5, 0x2c($sp) +/* 002E30 70002230 8FB60030 */ lw $s6, 0x30($sp) +/* 002E34 70002234 8FB70034 */ lw $s7, 0x34($sp) +/* 002E38 70002238 8FBE0038 */ lw $fp, 0x38($sp) +/* 002E3C 7000223C 03E00008 */ jr $ra +/* 002E40 70002240 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + +/** + * 2E44 70002244 + * accepts: A0=, A1=p->audio packet + */ +#ifdef NONMATCHING +void _amHandleFrameMsg(void *arg0, s32 arg1, void *argB) { + s32 sp24; + + // Node 0 + __clearAudioDMA(); + sp24 = osVirtualToPhysical(*arg0); + if (argB != 0) + { + // Node 1 + osAiSetNextBuffer(*argB, (argB->unk4 * 4)); + } + // Node 2 + arg0->unk4 = (s16) (((frameSize - (osAiGetLength() >> 2)) + 0x35) & 0xfff0); + if (arg0->unk4 < ((s32) (minFrameSize << 0x10) >> 0x10)) + { + // Node 3 + arg0->unk4 = (s16) minFrameSize; + } + // Node 4 + arg0->unk8 = 0; + arg0->unk58 = &_am+0x200; + arg0->unk5C = arg0; + arg0->unk10 = 2; + arg0->unk48 = (?32) *(&_am + (curAcmdList * 4)); + arg0->unk4C = (s32) (((s32) (alAudioFrame((0x80060000 + (curAcmdList * 4))->unk-1AE8, &cmdLen, sp24, arg0->unk4) - *(&_am + (curAcmdList * 4))) >> 3) * 8); + arg0->unk18 = 2; + arg0->unk20 = &rspbootTextStart; + arg0->unk24 = (s32) (&gsp3DTextStart - &rspbootTextStart); + arg0->unk1C = 0; + arg0->unk28 = &aspMainTextStart; + arg0->unk30 = &aspMainDataStart; + arg0->unk34 = 0x800; + arg0->unk50 = 0; + arg0->unk54 = 0; + osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0); + curAcmdList = (s32) (curAcmdList ^ 1); + return; + // (possible return value: osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0)) +} +#else +GLOBAL_ASM( +.text +glabel _amHandleFrameMsg +/* 002E44 70002244 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 002E48 70002248 AFBF001C */ sw $ra, 0x1c($sp) +/* 002E4C 7000224C AFB00018 */ sw $s0, 0x18($sp) +/* 002E50 70002250 00808025 */ move $s0, $a0 +/* 002E54 70002254 0C000984 */ jal __clearAudioDMA +/* 002E58 70002258 AFA5002C */ sw $a1, 0x2c($sp) +/* 002E5C 7000225C 0C003A2C */ jal osVirtualToPhysical +/* 002E60 70002260 8E040000 */ lw $a0, ($s0) +/* 002E64 70002264 8FA3002C */ lw $v1, 0x2c($sp) +/* 002E68 70002268 AFA20024 */ sw $v0, 0x24($sp) +/* 002E6C 7000226C 10600006 */ beqz $v1, .L70002288 +/* 002E70 70002270 00000000 */ nop +/* 002E74 70002274 84650004 */ lh $a1, 4($v1) +/* 002E78 70002278 8C640000 */ lw $a0, ($v1) +/* 002E7C 7000227C 00057080 */ sll $t6, $a1, 2 +/* 002E80 70002280 0C003BC0 */ jal osAiSetNextBuffer +/* 002E84 70002284 01C02825 */ move $a1, $t6 +.L70002288: +/* 002E88 70002288 0C003BEC */ jal osAiGetLength +/* 002E8C 7000228C 00000000 */ nop +/* 002E90 70002290 3C0F8006 */ lui $t7, %hi(frameSize) +/* 002E94 70002294 8DEFECC4 */ lw $t7, %lo(frameSize)($t7) +/* 002E98 70002298 0002C082 */ srl $t8, $v0, 2 +/* 002E9C 7000229C 3C038006 */ lui $v1, %hi(minFrameSize) +/* 002EA0 700022A0 01F8C823 */ subu $t9, $t7, $t8 +/* 002EA4 700022A4 27280035 */ addiu $t0, $t9, 0x35 +/* 002EA8 700022A8 3109FFF0 */ andi $t1, $t0, 0xfff0 +/* 002EAC 700022AC A6090004 */ sh $t1, 4($s0) +/* 002EB0 700022B0 8C63ECC0 */ lw $v1, %lo(minFrameSize)($v1) +/* 002EB4 700022B4 86070004 */ lh $a3, 4($s0) +/* 002EB8 700022B8 3C0C8002 */ lui $t4, %hi(curAcmdList) +/* 002EBC 700022BC 00035400 */ sll $t2, $v1, 0x10 +/* 002EC0 700022C0 000A5C03 */ sra $t3, $t2, 0x10 +/* 002EC4 700022C4 00EB082A */ slt $at, $a3, $t3 +/* 002EC8 700022C8 10200003 */ beqz $at, .L700022D8 +/* 002ECC 700022CC 3C048006 */ lui $a0, %hi(_am) +/* 002ED0 700022D0 A6030004 */ sh $v1, 4($s0) +/* 002ED4 700022D4 86070004 */ lh $a3, 4($s0) +.L700022D8: +/* 002ED8 700022D8 8D8C30FC */ lw $t4, %lo(curAcmdList)($t4) +/* 002EDC 700022DC 3C058006 */ lui $a1, %hi(cmdLen) +/* 002EE0 700022E0 24A5ECCC */ addiu $a1, %lo(cmdLen) # addiu $a1, $a1, -0x1334 +/* 002EE4 700022E4 000C6880 */ sll $t5, $t4, 2 +/* 002EE8 700022E8 008D2021 */ addu $a0, $a0, $t5 +/* 002EEC 700022EC 8C84E518 */ lw $a0, %lo(_am)($a0) +/* 002EF0 700022F0 0C003C42 */ jal alAudioFrame +/* 002EF4 700022F4 8FA60024 */ lw $a2, 0x24($sp) +/* 002EF8 700022F8 3C0E8006 */ lui $t6, %hi(_am+0x200) +/* 002EFC 700022FC 24030002 */ li $v1, 2 +/* 002F00 70002300 3C068002 */ lui $a2, %hi(curAcmdList) +/* 002F04 70002304 25CEE718 */ addiu $t6, %lo(_am+0x200) # addiu $t6, $t6, -0x18e8 +/* 002F08 70002308 24C630FC */ addiu $a2, %lo(curAcmdList) # addiu $a2, $a2, 0x30fc +/* 002F0C 7000230C AE000008 */ sw $zero, 8($s0) +/* 002F10 70002310 AE0E0058 */ sw $t6, 0x58($s0) +/* 002F14 70002314 AE10005C */ sw $s0, 0x5c($s0) +/* 002F18 70002318 AE030010 */ sw $v1, 0x10($s0) +/* 002F1C 7000231C 8CCF0000 */ lw $t7, ($a2) +/* 002F20 70002320 3C078006 */ lui $a3, %hi(_am) +/* 002F24 70002324 24E7E518 */ addiu $a3, %lo(_am) # addiu $a3, $a3, -0x1ae8 +/* 002F28 70002328 000FC080 */ sll $t8, $t7, 2 +/* 002F2C 7000232C 00F8C821 */ addu $t9, $a3, $t8 +/* 002F30 70002330 8F280000 */ lw $t0, ($t9) +/* 002F34 70002334 3C058002 */ lui $a1, %hi(rspbootTextStart) +/* 002F38 70002338 3C188002 */ lui $t8, %hi(gsp3DTextStart) +/* 002F3C 7000233C AE080048 */ sw $t0, 0x48($s0) +/* 002F40 70002340 8CC90000 */ lw $t1, ($a2) +/* 002F44 70002344 24A50D90 */ addiu $a1, %lo(rspbootTextStart) # addiu $a1, $a1, 0xd90 +/* 002F48 70002348 27180E60 */ addiu $t8, %lo(gsp3DTextStart) # addiu $t8, $t8, 0xe60 +/* 002F4C 7000234C 00095080 */ sll $t2, $t1, 2 +/* 002F50 70002350 00EA5821 */ addu $t3, $a3, $t2 +/* 002F54 70002354 8D6C0000 */ lw $t4, ($t3) +/* 002F58 70002358 3C088002 */ lui $t0, %hi(aspMainTextStart) +/* 002F5C 7000235C 3C098006 */ lui $t1, %hi(aspMainDataStart) +/* 002F60 70002360 004C6823 */ subu $t5, $v0, $t4 +/* 002F64 70002364 000D70C3 */ sra $t6, $t5, 3 +/* 002F68 70002368 000E78C0 */ sll $t7, $t6, 3 +/* 002F6C 7000236C 0305C823 */ subu $t9, $t8, $a1 +/* 002F70 70002370 25082280 */ addiu $t0, %lo(aspMainTextStart) # addiu $t0, $t0, 0x2280 +/* 002F74 70002374 2529D020 */ addiu $t1, %lo(aspMainDataStart) # addiu $t1, $t1, -0x2fe0 +/* 002F78 70002378 240A0800 */ li $t2, 2048 +/* 002F7C 7000237C 3C048006 */ lui $a0, %hi(sc) +/* 002F80 70002380 AE0F004C */ sw $t7, 0x4c($s0) +/* 002F84 70002384 AE030018 */ sw $v1, 0x18($s0) +/* 002F88 70002388 AE050020 */ sw $a1, 0x20($s0) +/* 002F8C 7000238C AE190024 */ sw $t9, 0x24($s0) +/* 002F90 70002390 AE00001C */ sw $zero, 0x1c($s0) +/* 002F94 70002394 AE080028 */ sw $t0, 0x28($s0) +/* 002F98 70002398 AE090030 */ sw $t1, 0x30($s0) +/* 002F9C 7000239C AE0A0034 */ sw $t2, 0x34($s0) +/* 002FA0 700023A0 AE000050 */ sw $zero, 0x50($s0) +/* 002FA4 700023A4 AE000054 */ sw $zero, 0x54($s0) +/* 002FA8 700023A8 0C00033E */ jal osScGetCmdQ +/* 002FAC 700023AC 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 +/* 002FB0 700023B0 00402025 */ move $a0, $v0 +/* 002FB4 700023B4 26050008 */ addiu $a1, $s0, 8 +/* 002FB8 700023B8 0C0037C4 */ jal osSendMesg +/* 002FBC 700023BC 00003025 */ move $a2, $zero +/* 002FC0 700023C0 3C038002 */ lui $v1, %hi(curAcmdList) +/* 002FC4 700023C4 246330FC */ addiu $v1, %lo(curAcmdList) # addiu $v1, $v1, 0x30fc +/* 002FC8 700023C8 8C6B0000 */ lw $t3, ($v1) +/* 002FCC 700023CC 8FBF001C */ lw $ra, 0x1c($sp) +/* 002FD0 700023D0 8FB00018 */ lw $s0, 0x18($sp) +/* 002FD4 700023D4 396C0001 */ xori $t4, $t3, 1 +/* 002FD8 700023D8 AC6C0000 */ sw $t4, ($v1) +/* 002FDC 700023DC 03E00008 */ jr $ra +/* 002FE0 700023E0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 2FE4 700023E4 + */ +#ifdef NONMATCHING +void __amHandleDoneMsg(AudioInfo *info) { + int samplesLeft; + + samplesLeft = osAiGetLength(); + if ((samplesLeft >> 2 == 0) && (firstTime == 0)) { + firstTime = 0; + } +} +#else +GLOBAL_ASM( +.text +glabel __amHandleDoneMsg +/* 002FE4 700023E4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 002FE8 700023E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 002FEC 700023EC 0C003BEC */ jal osAiGetLength +/* 002FF0 700023F0 AFA40018 */ sw $a0, 0x18($sp) +/* 002FF4 700023F4 00027083 */ sra $t6, $v0, 2 +/* 002FF8 700023F8 15C00006 */ bnez $t6, .L70002414 +/* 002FFC 700023FC 3C0F8002 */ lui $t7, %hi(firstTime) +/* 003000 70002400 8DEF31C8 */ lw $t7, %lo(firstTime)($t7) +/* 003004 70002404 3C018002 */ lui $at, %hi(firstTime) +/* 003008 70002408 55E00003 */ bnezl $t7, .L70002418 +/* 00300C 7000240C 8FBF0014 */ lw $ra, 0x14($sp) +/* 003010 70002410 AC2031C8 */ sw $zero, %lo(firstTime)($at) +.L70002414: +/* 003014 70002414 8FBF0014 */ lw $ra, 0x14($sp) +.L70002418: +/* 003018 70002418 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00301C 7000241C 03E00008 */ jr $ra +/* 003020 70002420 00000000 */ nop +) +#endif + +/** + * 3024 70002424 + */ +#ifdef NONMATCHING +s32 __amDMA(u32 arg0, s32 arg1, ? arg2, s32 arg14) { + s32 sp30; + s32 sp48; + ?32 sp4C; + s32 temp_t2; + s32 temp_a3; + + // Node 0 + temp_t2 = (arg0 & 1); + sp48 = temp_t2; + if (dmaState_initialized.unk4 != 0) + { + loop_1: + // Node 1 + if (arg0 >= (u32) dmaState_initialized.unk4->unk8) + { + // Node 2 + if ((dmaState_initialized.unk4->unk8 + 0x200) >= (arg0 + arg1)) + { + // Node 3 + dmaState_initialized.unk4->unkC = (?32) audFrameCt; + osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0); + return; + // (possible return value: osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0)) + } + // Node 4 + if (*dmaState_initialized.unk4 != 0) + { + goto loop_1; + } + } + } + // Node 5 + if (dmaState_initialized.unk8 == 0) + { + // Node 6 + if (NULL == 0) + { + // Node 7 + } + // Node 8 + sp30 = temp_t2; + osVirtualToPhysical(NULL->unk10, NULL, arg0); + } + else + { + // Node 9 + dmaState_initialized.unk8 = (void *) *dmaState_initialized.unk8; + alUnlink(dmaState_initialized.unk8, NULL, arg0); + if (sp38 != 0) + { + // Node 10 + alLink(dmaState_initialized.unk8, sp38, sp38, arg14); + } + else + { + // Node 11 + if (dmaState_initialized.unk4 != 0) + { + // Node 12 + dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; + *dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; + dmaState_initialized.unk8->unk4 = 0; + dmaState_initialized.unk4->unk4 = (void *) dmaState_initialized.unk8; + } + else + { + // Node 13 + dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; + *dmaState_initialized.unk8 = NULL; + dmaState_initialized.unk8->unk4 = 0; + } + } + // Node 14 + temp_a3 = (arg14 - sp48); + dmaState_initialized.unk8->unk8 = temp_a3; + dmaState_initialized.unk8->unkC = (?32) audFrameCt; + nextDMA = (s32) (nextDMA + 1); + sp4C = (?32) dmaState_initialized.unk8->unk10; + osPiStartDma(((nextDMA * 0x18) + &audDMAIOMesgBuf), 1, 0, temp_a3, (?32) dmaState_initialized.unk8->unk10, 0x200, &audDMAMessageQ); + osVirtualToPhysical(sp4C); + } + // Node 15 + return; + // (possible return value: (osVirtualToPhysical(sp4C) + sp48)) +} +#else +GLOBAL_ASM( +.text +glabel __amDMA +/* 003024 70002424 3C098006 */ lui $t1, %hi(dmaState_initialized) +/* 003028 70002428 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 +/* 00302C 7000242C 8D280004 */ lw $t0, 4($t1) +/* 003030 70002430 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 003034 70002434 AFB00028 */ sw $s0, 0x28($sp) +/* 003038 70002438 AFA60058 */ sw $a2, 0x58($sp) +/* 00303C 7000243C 308A0001 */ andi $t2, $a0, 1 +/* 003040 70002440 AFBF002C */ sw $ra, 0x2c($sp) +/* 003044 70002444 00803825 */ move $a3, $a0 +/* 003048 70002448 00003025 */ move $a2, $zero +/* 00304C 7000244C AFAA0048 */ sw $t2, 0x48($sp) +/* 003050 70002450 11000015 */ beqz $t0, .L700024A8 +/* 003054 70002454 01008025 */ move $s0, $t0 +/* 003058 70002458 8E020008 */ lw $v0, 8($s0) +.L7000245C: +/* 00305C 7000245C 00E57021 */ addu $t6, $a3, $a1 +/* 003060 70002460 00E2082B */ sltu $at, $a3, $v0 +/* 003064 70002464 14200010 */ bnez $at, .L700024A8 +/* 003068 70002468 24430200 */ addiu $v1, $v0, 0x200 +/* 00306C 7000246C 006E082A */ slt $at, $v1, $t6 +/* 003070 70002470 1420000A */ bnez $at, .L7000249C +/* 003074 70002474 02003025 */ move $a2, $s0 +/* 003078 70002478 8E180010 */ lw $t8, 0x10($s0) +/* 00307C 7000247C 3C0F8002 */ lui $t7, %hi(audFrameCt) +/* 003080 70002480 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) +/* 003084 70002484 0307C821 */ addu $t9, $t8, $a3 +/* 003088 70002488 03222023 */ subu $a0, $t9, $v0 +/* 00308C 7000248C 0C003A2C */ jal osVirtualToPhysical +/* 003090 70002490 AE0F000C */ sw $t7, 0xc($s0) +/* 003094 70002494 1000004C */ b .L700025C8 +/* 003098 70002498 8FBF002C */ lw $ra, 0x2c($sp) +.L7000249C: +/* 00309C 7000249C 8E100000 */ lw $s0, ($s0) +/* 0030A0 700024A0 5600FFEE */ bnezl $s0, .L7000245C +/* 0030A4 700024A4 8E020008 */ lw $v0, 8($s0) +.L700024A8: +/* 0030A8 700024A8 8D300008 */ lw $s0, 8($t1) +/* 0030AC 700024AC 1600000A */ bnez $s0, .L700024D8 +/* 0030B0 700024B0 02002025 */ move $a0, $s0 +/* 0030B4 700024B4 54C00003 */ bnezl $a2, .L700024C4 +/* 0030B8 700024B8 8CC40010 */ lw $a0, 0x10($a2) +/* 0030BC 700024BC 01003025 */ move $a2, $t0 +/* 0030C0 700024C0 8CC40010 */ lw $a0, 0x10($a2) +.L700024C4: +/* 0030C4 700024C4 0C003A2C */ jal osVirtualToPhysical +/* 0030C8 700024C8 AFAA0030 */ sw $t2, 0x30($sp) +/* 0030CC 700024CC 8FAA0030 */ lw $t2, 0x30($sp) +/* 0030D0 700024D0 1000003C */ b .L700025C4 +/* 0030D4 700024D4 004A1021 */ addu $v0, $v0, $t2 +.L700024D8: +/* 0030D8 700024D8 8E0B0000 */ lw $t3, ($s0) +/* 0030DC 700024DC AFA70050 */ sw $a3, 0x50($sp) +/* 0030E0 700024E0 AFA60038 */ sw $a2, 0x38($sp) +/* 0030E4 700024E4 0C003AA4 */ jal alUnlink +/* 0030E8 700024E8 AD2B0008 */ sw $t3, 8($t1) +/* 0030EC 700024EC 8FA60038 */ lw $a2, 0x38($sp) +/* 0030F0 700024F0 3C098006 */ lui $t1, %hi(dmaState_initialized) +/* 0030F4 700024F4 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 +/* 0030F8 700024F8 10C00007 */ beqz $a2, .L70002518 +/* 0030FC 700024FC 8FA70050 */ lw $a3, 0x50($sp) +/* 003100 70002500 02002025 */ move $a0, $s0 +/* 003104 70002504 00C02825 */ move $a1, $a2 +/* 003108 70002508 0C003AB0 */ jal alLink +/* 00310C 7000250C AFA70050 */ sw $a3, 0x50($sp) +/* 003110 70002510 1000000C */ b .L70002544 +/* 003114 70002514 8FA70050 */ lw $a3, 0x50($sp) +.L70002518: +/* 003118 70002518 8D280004 */ lw $t0, 4($t1) +/* 00311C 7000251C 51000007 */ beql $t0, $zero, .L7000253C +/* 003120 70002520 AD300004 */ sw $s0, 4($t1) +/* 003124 70002524 AD300004 */ sw $s0, 4($t1) +/* 003128 70002528 AE080000 */ sw $t0, ($s0) +/* 00312C 7000252C AE000004 */ sw $zero, 4($s0) +/* 003130 70002530 10000004 */ b .L70002544 +/* 003134 70002534 AD100004 */ sw $s0, 4($t0) +/* 003138 70002538 AD300004 */ sw $s0, 4($t1) +.L7000253C: +/* 00313C 7000253C AE000000 */ sw $zero, ($s0) +/* 003140 70002540 AE000004 */ sw $zero, 4($s0) +.L70002544: +/* 003144 70002544 8FAC0048 */ lw $t4, 0x48($sp) +/* 003148 70002548 3C0D8002 */ lui $t5, %hi(audFrameCt) +/* 00314C 7000254C 3C088002 */ lui $t0, %hi(nextDMA) +/* 003150 70002550 00EC3823 */ subu $a3, $a3, $t4 +/* 003154 70002554 AE070008 */ sw $a3, 8($s0) +/* 003158 70002558 8DAD30F4 */ lw $t5, %lo(audFrameCt)($t5) +/* 00315C 7000255C 250830F8 */ addiu $t0, %lo(nextDMA) # addiu $t0, $t0, 0x30f8 +/* 003160 70002560 8E030010 */ lw $v1, 0x10($s0) +/* 003164 70002564 AE0D000C */ sw $t5, 0xc($s0) +/* 003168 70002568 8D020000 */ lw $v0, ($t0) +/* 00316C 7000256C 3C0F8006 */ lui $t7, %hi(audDMAIOMesgBuf) +/* 003170 70002570 3C198006 */ lui $t9, %hi(audDMAMessageQ) +/* 003174 70002574 00027080 */ sll $t6, $v0, 2 +/* 003178 70002578 01C27023 */ subu $t6, $t6, $v0 +/* 00317C 7000257C 000E70C0 */ sll $t6, $t6, 3 +/* 003180 70002580 2739F2D0 */ addiu $t9, %lo(audDMAMessageQ) # addiu $t9, $t9, -0xd30 +/* 003184 70002584 25EFECD0 */ addiu $t7, %lo(audDMAIOMesgBuf) # addiu $t7, $t7, -0x1330 +/* 003188 70002588 24180200 */ li $t8, 512 +/* 00318C 7000258C 244B0001 */ addiu $t3, $v0, 1 +/* 003190 70002590 AD0B0000 */ sw $t3, ($t0) +/* 003194 70002594 AFB80014 */ sw $t8, 0x14($sp) +/* 003198 70002598 01CF2021 */ addu $a0, $t6, $t7 +/* 00319C 7000259C AFB90018 */ sw $t9, 0x18($sp) +/* 0031A0 700025A0 24050001 */ li $a1, 1 +/* 0031A4 700025A4 00003025 */ move $a2, $zero +/* 0031A8 700025A8 AFA3004C */ sw $v1, 0x4c($sp) +/* 0031AC 700025AC 0C003DA8 */ jal osPiStartDma +/* 0031B0 700025B0 AFA30010 */ sw $v1, 0x10($sp) +/* 0031B4 700025B4 0C003A2C */ jal osVirtualToPhysical +/* 0031B8 700025B8 8FA4004C */ lw $a0, 0x4c($sp) +/* 0031BC 700025BC 8FAC0048 */ lw $t4, 0x48($sp) +/* 0031C0 700025C0 004C1021 */ addu $v0, $v0, $t4 +.L700025C4: +/* 0031C4 700025C4 8FBF002C */ lw $ra, 0x2c($sp) +.L700025C8: +/* 0031C8 700025C8 8FB00028 */ lw $s0, 0x28($sp) +/* 0031CC 700025CC 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0031D0 700025D0 03E00008 */ jr $ra +/* 0031D4 700025D4 00000000 */ nop +) +#endif + +/** + * 31D8 700025D8 + */ +#ifdef NONMATCHING +void *__amDmaNew(void *arg0) { + // Node 0 + if (dmaState_initialized == 0) + { + // Node 1 + dmaState_initialized.unk4 = 0; + dmaState_initialized.unk8 = &dmaBuffs; + dmaState_initialized = (u8)1; + } + // Node 2 + *arg0 = &dmaState_initialized; + return; + // (possible return value: &__amDMA) +} +#else +GLOBAL_ASM( +.text +glabel __amDmaNew +/* 0031D8 700025D8 3C038006 */ lui $v1, %hi(dmaState_initialized) +/* 0031DC 700025DC 2463E7B0 */ addiu $v1, %lo(dmaState_initialized) # addiu $v1, $v1, -0x1850 +/* 0031E0 700025E0 906E0000 */ lbu $t6, ($v1) +/* 0031E4 700025E4 3C027000 */ lui $v0, %hi(__amDMA) # $v0, 0x7000 +/* 0031E8 700025E8 3C0F8006 */ lui $t7, %hi(dmaBuffs) +/* 0031EC 700025EC 15C00006 */ bnez $t6, .L70002608 +/* 0031F0 700025F0 24422424 */ addiu $v0, %lo(__amDMA) # addiu $v0, $v0, 0x2424 +/* 0031F4 700025F4 25EFE7C0 */ addiu $t7, %lo(dmaBuffs) # addiu $t7, $t7, -0x1840 +/* 0031F8 700025F8 24180001 */ li $t8, 1 +/* 0031FC 700025FC AC600004 */ sw $zero, 4($v1) +/* 003200 70002600 AC6F0008 */ sw $t7, 8($v1) +/* 003204 70002604 A0780000 */ sb $t8, ($v1) +.L70002608: +/* 003208 70002608 03E00008 */ jr $ra +/* 00320C 7000260C AC830000 */ sw $v1, ($a0) +) +#endif + +/** + * 3210 70002610 + */ +#ifdef NONMATCHING +void __clearAudioDMA(void) { + ?32 sp40; + + // Node 0 + sp40 = 0; + if (nextDMA != 0) + { + // Node 1 + // Node 2 + osRecvMesg(&audDMAMessageQ, &sp40, 0); + if ((u32) (0 + 1) < (u32) nextDMA) + { + goto loop_2; + } + } + // Node 3 + if (dmaState_initialized.unk4 != 0) + { + loop_4: + // Node 4 + if ((u32) (dmaState_initialized.unk4->unkC + 1) < (u32) audFrameCt) + { + // Node 5 + if (dmaState_initialized.unk4 == dmaState_initialized.unk4) + { + // Node 6 + dmaState_initialized.unk4 = (void *) *dmaState_initialized.unk4; + } + // Node 7 + alUnlink(dmaState_initialized.unk4); + if (dmaState_initialized.unk8 != 0) + { + // Node 8 + alLink(dmaState_initialized.unk4, dmaState_initialized.unk8); + } + else + { + // Node 9 + dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; + *dmaState_initialized.unk4 = NULL; + dmaState_initialized.unk4->unk4 = 0; + } + } + // Node 10 + if (*dmaState_initialized.unk4 != 0) + { + goto loop_4; + } + } + // Node 11 + nextDMA = 0U; + audFrameCt = (u32) (audFrameCt + 1); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel __clearAudioDMA +/* 003210 70002610 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 003214 70002614 AFB40028 */ sw $s4, 0x28($sp) +/* 003218 70002618 3C148002 */ lui $s4, %hi(nextDMA) +/* 00321C 7000261C 269430F8 */ addiu $s4, %lo(nextDMA) # addiu $s4, $s4, 0x30f8 +/* 003220 70002620 8E8E0000 */ lw $t6, ($s4) +/* 003224 70002624 AFB00018 */ sw $s0, 0x18($sp) +/* 003228 70002628 AFBF002C */ sw $ra, 0x2c($sp) +/* 00322C 7000262C AFB30024 */ sw $s3, 0x24($sp) +/* 003230 70002630 AFB20020 */ sw $s2, 0x20($sp) +/* 003234 70002634 AFB1001C */ sw $s1, 0x1c($sp) +/* 003238 70002638 AFA00040 */ sw $zero, 0x40($sp) +/* 00323C 7000263C 11C0000D */ beqz $t6, .L70002674 +/* 003240 70002640 00008025 */ move $s0, $zero +/* 003244 70002644 3C118006 */ lui $s1, %hi(audDMAMessageQ) +/* 003248 70002648 2631F2D0 */ addiu $s1, %lo(audDMAMessageQ) # addiu $s1, $s1, -0xd30 +/* 00324C 7000264C 27B20040 */ addiu $s2, $sp, 0x40 +/* 003250 70002650 02202025 */ move $a0, $s1 +.L70002654: +/* 003254 70002654 02402825 */ move $a1, $s2 +/* 003258 70002658 0C003774 */ jal osRecvMesg +/* 00325C 7000265C 00003025 */ move $a2, $zero +/* 003260 70002660 8E8F0000 */ lw $t7, ($s4) +/* 003264 70002664 26100001 */ addiu $s0, $s0, 1 +/* 003268 70002668 020F082B */ sltu $at, $s0, $t7 +/* 00326C 7000266C 5420FFF9 */ bnezl $at, .L70002654 +/* 003270 70002670 02202025 */ move $a0, $s1 +.L70002674: +/* 003274 70002674 3C128006 */ lui $s2, %hi(dmaState_initialized) +/* 003278 70002678 2652E7B0 */ addiu $s2, %lo(dmaState_initialized) # addiu $s2, $s2, -0x1850 +/* 00327C 7000267C 8E500004 */ lw $s0, 4($s2) +/* 003280 70002680 3C138002 */ lui $s3, %hi(audFrameCt) +/* 003284 70002684 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 +/* 003288 70002688 1200001A */ beqz $s0, .L700026F4 +/* 00328C 7000268C 00000000 */ nop +.L70002690: +/* 003290 70002690 8E19000C */ lw $t9, 0xc($s0) +/* 003294 70002694 8E780000 */ lw $t8, ($s3) +/* 003298 70002698 8E020000 */ lw $v0, ($s0) +/* 00329C 7000269C 27280001 */ addiu $t0, $t9, 1 +/* 0032A0 700026A0 0118082B */ sltu $at, $t0, $t8 +/* 0032A4 700026A4 10200011 */ beqz $at, .L700026EC +/* 0032A8 700026A8 00408825 */ move $s1, $v0 +/* 0032AC 700026AC 8E490004 */ lw $t1, 4($s2) +/* 0032B0 700026B0 16090002 */ bne $s0, $t1, .L700026BC +/* 0032B4 700026B4 00000000 */ nop +/* 0032B8 700026B8 AE420004 */ sw $v0, 4($s2) +.L700026BC: +/* 0032BC 700026BC 0C003AA4 */ jal alUnlink +/* 0032C0 700026C0 02002025 */ move $a0, $s0 +/* 0032C4 700026C4 8E450008 */ lw $a1, 8($s2) +/* 0032C8 700026C8 50A00006 */ beql $a1, $zero, .L700026E4 +/* 0032CC 700026CC AE500008 */ sw $s0, 8($s2) +/* 0032D0 700026D0 0C003AB0 */ jal alLink +/* 0032D4 700026D4 02002025 */ move $a0, $s0 +/* 0032D8 700026D8 10000004 */ b .L700026EC +/* 0032DC 700026DC 00000000 */ nop +/* 0032E0 700026E0 AE500008 */ sw $s0, 8($s2) +.L700026E4: +/* 0032E4 700026E4 AE000000 */ sw $zero, ($s0) +/* 0032E8 700026E8 AE000004 */ sw $zero, 4($s0) +.L700026EC: +/* 0032EC 700026EC 1620FFE8 */ bnez $s1, .L70002690 +/* 0032F0 700026F0 02208025 */ move $s0, $s1 +.L700026F4: +/* 0032F4 700026F4 3C138002 */ lui $s3, %hi(audFrameCt) +/* 0032F8 700026F8 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 +/* 0032FC 700026FC 8E6A0000 */ lw $t2, ($s3) +/* 003300 70002700 8FBF002C */ lw $ra, 0x2c($sp) +/* 003304 70002704 AE800000 */ sw $zero, ($s4) +/* 003308 70002708 254B0001 */ addiu $t3, $t2, 1 +/* 00330C 7000270C AE6B0000 */ sw $t3, ($s3) +/* 003310 70002710 8FB30024 */ lw $s3, 0x24($sp) +/* 003314 70002714 8FB40028 */ lw $s4, 0x28($sp) +/* 003318 70002718 8FB00018 */ lw $s0, 0x18($sp) +/* 00331C 7000271C 8FB1001C */ lw $s1, 0x1c($sp) +/* 003320 70002720 8FB20020 */ lw $s2, 0x20($sp) +/* 003324 70002724 03E00008 */ jr $ra +/* 003328 70002728 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + diff --git a/src/audi.h b/src/audi.h new file mode 100644 index 0000000..6e1102d --- /dev/null +++ b/src/audi.h @@ -0,0 +1,7 @@ +#ifndef _AUDI_H_ +#define _AUDI_H_ + +void amCreateAudioMgr(void); +void startaudiThread(void); + +#endif diff --git a/src/bondaicommands.h b/src/bondaicommands.h new file mode 100644 index 0000000..d23287d --- /dev/null +++ b/src/bondaicommands.h @@ -0,0 +1,3907 @@ +#ifndef _BONDAICOMMANDS_H_ +#define _BONDAICOMMANDS_H_ +#include "ultra64.h" + +#define chararray16(input) (input & 0xFF00) >> 8, input & 0x00FF +#define chararray24(input) (input & 0xFF0000) >> 16, (input & 0x00FF00) >> 8, input & 0x0000FF +#define chararray32(input) (input & 0xFF000000) >> 24, (input & 0x00FF0000) >> 16, (input & 0x0000FF00) >> 8, input & 0x000000FF + +/*============================================================================= +// chr ai commands reference +// programmed by mark edmonds +//============================================================================= +// terminology: +// chr character +// obj objective +// list list of ai commands - list must end with 04 command +// glist global list +// chr ai lists 0401-04FF range +// obj ai lists 1000-10FF range +// global ai lists 0000-0011 range +//============================================================================= +// ai list intro +//============================================================================= +// ai list are a list of ai commands that are executed from top to bottom. +// they are used to control guard ai (fire, chase, go to position, etc) and +// objective ai (objective logic, mission fail state, spawning guards, etc) +//============================================================================= +// character ai list info +//============================================================================= +// chr ai lists drive the gameplay, such as attacking/chasing player. a chr ai +// list will not execute until a guard is assigned that list (unlike obj lists). +// multiple guards can use the same ai list - each guard is treated as a independent +// thread with their own instance of unique data +//============================================================================= +// objective ai list info +//============================================================================= +// each obj ai list (10XX) will have with a obj ai assigned at at level start. +// obj ai lists run continuously in the background without a guard attached. +// they still have a chr struct but lack a model/position in the level, they are +// commonly used for level scripting (objectives) or monitoring guard spawns. +// obj ai lists cannot run guard commands due to the lack of level presence +//============================================================================= +// global ai list info +//============================================================================= +// global ai lists are 0x11 useful lists accessible with every level. the above +// lists (chr/obj) are unique to each level setup file, compared to global lists +// which are accessible throughout the entire game. they contain generic ai lists +// used for most levels +//============================================================================= +// ai command note +//============================================================================= +// commands with guard/vehicle/aircraft prefix are exclusive to chr ai lists, +// they can't be executed by obj ai lists (10XX) or it will crash! commands with +// chr prefix can be used by obj/chr ai lists - exceptions to this rule are detailed +// within the command description +//============================================================================= +// ai commands with chr number argument +//============================================================================= +// most commands with a chr prefix use a chr number argument. for the most part, +// this can be used with any loaded chr num and it will work fine. there is however +// one exception to this and that is special chr num ID CHR_BOND_CINEMA. this ID +// only works when bond has a third person model assigned (intro/exit cutscene). +// only use CHR_BOND_CINEMA for intro/exit cutscene specific logic +//============================================================================= +// vehicle/aircraft ai command +//============================================================================= +// commands with a vehicle/aircraft prefix can only be executed by vehicle/aircraft +// objects. these types of objects do not use a chr struct. most non-vehicle +// commands will crash if they try to access caller's chr struct +//============================================================================= +// ai commands with label argument +//============================================================================= +// most commands will have a label argument in their function description. this +// is used when a command has a false/true state. for example, the run to bond +// command (28) has goto label argument. when the command is executed, it will +// check if the guard is able to run to bond. if for some reason the command fails +// (bond is unreachable/guard is dying/etc) then the command will not goto label +// and the next command will be executed. the most common use of commands with +// goto labels are jumping out of an infinite loop - for an example check global +// ai list GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE +//===========================================================================*/ + +#define AI_LIST_GLOBAL_START 0x0000 +#define AI_LIST_CHR_START 0x0401 +#define AI_LIST_OBJ_START 0x1000 + +#define AI_CMDS_TOTAL (object_rocket_launch_ID + 1) + +/*============================================================================= +// global ai lists - glists +//===========================================================================*/ +#define GLIST_AIM_AT_BOND 0x0000 // continuously aim at bond with weapon +#define GLIST_END_ROUTINE 0x0001 // end routine (loop forever) +#define GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE 0x0002 // wait for bond detection (spawn clone when heard bond) +#define GLIST_IDLE_RAND_ANIM_SUBROUTINE 0x0003 // play idle animation (subroutine) +#define GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE 0x0004 // play use keyboard animation (subroutine) +#define GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM 0x0005 // wait for bond detection (deaf/no clones/no idling) +#define GLIST_FIRE_RAND_ANIM_SUBROUTINE 0x0006 // fire at bond with random animation (subroutine) +#define GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM 0x0007 // wait for bond detection (no clones/no idling) +#define GLIST_RUN_TO_BOND_SUBROUTINE 0x0008 // run to bond and fire (subroutine) +#define GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM 0x0009 // run to chr->padpreset1 and activate alarm +#define GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE 0x000A // startle character (subroutine) +#define GLIST_SPAWN_CLONE_OR_RUN_TO_BOND 0x000B // if chr has been seen, run to bond - else spawn clone +#define GLIST_RUN_TO_BOND_AND_FIRE 0x000C // run to bond and fire +#define GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY 0x000D // forever chase bond and fire (halt randomly) +#define GLIST_WAIT_ONE_SECOND_SUBROUTINE 0x000E // wait for one second (subroutine) +#define GLIST_EXIT_LEVEL 0x000F // exit level +#define GLIST_DRAW_DD44_AND_FIRE 0x0010 // draw dd44 and fire +#define GLIST_REMOVE_CHR 0x0011 // remove chr +/*===========================================================================*/ + +/*============================================================================= +// command bitfield flags and common settings +//===========================================================================*/ +// command 0A - animation flags +#define ANIM_MIRROR 0x01 // mirror animation +#define ANIM_UNKNOWN 0x02 // ?? (cancels no translation flag) +#define ANIM_LOOP_HOLD_LAST_FRAME 0x04 // loop/hold last frame (required for reverse flag) +#define ANIM_PLAY_SFX 0x08 // play sneeze sfx with animation 9F (triggers 50% of the time) +#define ANIM_IDLE_POSE_WHEN_COMPLETE 0x10 // idle pose after animation has completed (does not work with looping animations) +#define ANIM_TRANSLATION_SCALE_4X 0x20 // translation scale multiplier x4 (used for dam and cradle cinema) +#define ANIM_NO_TRANSLATION 0x40 // no translation +#define ANIM_REVERSE_LOOPING_ANIMATION 0x80 // reverse animation (only for looped animations) + +#define ANIM_DEFAULT_INTERPOLATION 0x10 // use this if interpolation value isn't important + +// command 14/15/16/17 - target flags +#define TARGET_BOND 0x0001 // set target to bond (ignores target argument) +#define TARGET_FRONT_OF_CHR 0x0002 // set target to front of chr +#define TARGET_CHR 0x0004 // set target type to chr_num +#define TARGET_PAD 0x0008 // set target type to pad +#define TARGET_COMPASS 0x0010 // set target to compass direction (hex) N: 0000 E: C000 S: 8000: W: 4000 +#define TARGET_AIM_ONLY 0x0020 // aim at target instead of firing +#define TARGET_180_RANGE 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag) + +// command 18/19 - target body part values +#define HIT_NULL_PART 0x00 // null part, no reaction - 1x damage +#define HIT_LEFT_FOOT 0x01 // left foot - 1x damage +#define HIT_LEFT_LEG 0x02 // left leg - 1x damage +#define HIT_LEFT_THIGH 0x03 // left thigh - 1x damage +#define HIT_RIGHT_FOOT 0x04 // right foot - 1x damage +#define HIT_RIGHT_LEG 0x05 // right leg - 1x damage +#define HIT_RIGHT_THIGH 0x06 // right thigh - 1x damage +#define HIT_PELVIS 0x07 // pelvis - 1x damage +#define HIT_HEAD 0x08 // head - 4x damage +#define HIT_LEFT_HAND 0x09 // left hand - 1x damage +#define HIT_LEFT_ARM 0x0A // left arm - 1x damage +#define HIT_LEFT_SHOULDER 0x0B // left shoulder - 1x damage +#define HIT_RIGHT_HAND 0x0C // right hand - 1x damage +#define HIT_RIGHT_ARM 0x0D // right arm - 1x damage +#define HIT_RIGHT_SHOULDER 0x0E // right shoulder - 1x damage +#define HIT_CHEST 0x0F // chest - 2x damage + +// command 68 - door states +#define DOOR_STATE_CLOSED 0x01 // closed +#define DOOR_STATE_OPEN 0x02 // opened +#define DOOR_STATE_CLOSING 0x04 // closing +#define DOOR_STATE_OPENING 0x08 // opening + +// command BD/BE - spawn flags +#define SPAWN_SUNGLASSES 0x00000001 // sunglasses +#define SPAWN_SUNGLASSES_RANDOM 0x00000002 // sunglasses (random, 50% of the time) +#define SPAWN_00000004 0x00000004 // unknown +#define SPAWN_00000008 0x00000008 // unknown +#define SPAWN_IGNORE_PAD_SIGHT_CHECK 0x00000010 // ignore check for pad within view (force spawn) +#define SPAWN_00000020 0x00000020 // unknown +#define SPAWN_00000040 0x00000040 // unknown +#define SPAWN_00000080 0x00000080 // unknown +#define SPAWN_00000100 0x00000100 // unknown +#define SPAWN_00000200 0x00000200 // unknown +#define SPAWN_00000400 0x00000400 // unknown +#define SPAWN_00000800 0x00000800 // unknown +#define SPAWN_00001000 0x00001000 // unknown +#define SPAWN_00002000 0x00002000 // unknown +#define SPAWN_00004000 0x00004000 // unknown +#define SPAWN_00008000 0x00008000 // unknown +#define SPAWN_00010000 0x00010000 // unknown +#define SPAWN_00020000 0x00020000 // unknown +#define SPAWN_00040000 0x00040000 // unknown +#define SPAWN_00080000 0x00080000 // unknown +#define SPAWN_00100000 0x00100000 // unknown +#define SPAWN_00200000 0x00200000 // unknown +#define SPAWN_00400000 0x00400000 // unknown +#define SPAWN_00800000 0x00800000 // unknown +#define SPAWN_01000000 0x01000000 // unknown +#define SPAWN_02000000 0x02000000 // unknown +#define SPAWN_04000000 0x04000000 // unknown +#define SPAWN_08000000 0x08000000 // unknown +#define SPAWN_10000000 0x10000000 // unknown +#define SPAWN_20000000 0x20000000 // unknown +#define SPAWN_40000000 0x40000000 // unknown +#define SPAWN_80000000 0x80000000 // unknown + +// command D7 - hud flags +#define HUD_HIDE_ALL 0x00 // hide all +#define HUD_SHOW_TEXT_TOP 0x01 // don't hide top text +#define HUD_SHOW_TEXT_BOTTOM 0x02 // don't hide bottom text +#define HUD_SHOW_HUD_COUNTDOWN 0x04 // don't hide hud countdown + +// command 94/95/96/97/98/99 chr->BITFIELD - used for ai list GLIST_FIRE_RAND_ANIM_SUBROUTINE +#define BITFIELD_DONT_POINT_AT_BOND 0x01 // if set, don't point at bond +/*===========================================================================*/ + +/*============================================================================= +// ai command shortcuts +//===========================================================================*/ +#define goto_loop_start(label_id) \ + label(label_id) \ + ai_sleep + +#define goto_loop_repeat(label) \ + goto_first(label) + +#define goto_loop_infinite(label_id) \ + label(label_id) \ + ai_sleep \ + goto_first(label_id) + +#define random_generate_greater_than(byte, label) \ + random_generate_seed \ + if_random_seed_greater_than(byte, label) + +#define random_generate_less_than(byte, label) \ + random_generate_seed \ + if_random_seed_less_than(byte, label) + +#define if_guard_meters_to_bond_less_than(distance, label) \ + if_guard_distance_to_bond_less_than((distance * 10U), label) + +#define if_guard_meters_to_bond_greater_than(distance, label) \ + if_guard_distance_to_bond_greater_than((distance * 10U), label) + +#define if_chr_meters_to_pad_less_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_less_than(chr_num, (distance * 10U), pad, label) + +#define if_chr_meters_to_pad_greater_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_greater_than(chr_num, (distance * 10U), pad, label) + +#define if_guard_meters_to_chr_less_than(distance, chr_num, label) \ + if_guard_distance_to_chr_less_than((distance * 10U), chr_num, label) + +#define if_guard_meters_to_chr_greater_than(distance, chr_num, label) \ + if_guard_distance_to_chr_greater_than((distance * 10U), chr_num, label) + +#define guard_try_setting_chr_preset_to_guard_within_meters(distance, label) \ + guard_try_setting_chr_preset_to_guard_within_distance((distance * 10U), label) + +#define if_bond_meters_to_pad_less_than(distance, pad, label) \ + if_bond_distance_to_pad_less_than((distance * 10U), pad, label) + +#define if_bond_meters_to_pad_greater_than(distance, pad, label) \ + if_bond_distance_to_pad_greater_than((distance * 10U), pad, label) + +#define debug_log_end \ + '\0', + +#define if_local_timer_seconds_less_than(seconds, label) \ + if_local_timer_less_than((SECS_TO_TIMER60(seconds)), label) + +#define if_local_timer_seconds_greater_than(seconds, label) \ + if_local_timer_greater_than((SECS_TO_TIMER60(seconds)), label) + +#define camera_transition_from_bond \ + bond_hide_weapons \ + ai_sleep \ + ai_sleep \ + ai_sleep + +#define camera_transition_to_bond \ + ai_sleep \ + ai_sleep \ + ai_sleep +/*===========================================================================*/ + +/*============================================================================= +// ai commands macros and information +//============================================================================= +// name and description per command, please read carefully when creating new +// ai lists. ensure that you don't cause loops without a ai_sleep command or else +// command parser will never release and game will softlock +//===========================================================================*/ + +/*============================================================================= +// name: goto_next +// command id: 00 +// info: goto the next label (command 02) - skips all commands between command +// and goto label - continues executing after found label +//===========================================================================*/ +#define goto_next_ID 0x00 +#define goto_next_LENGTH 0x02 +#define goto_next(label) \ + goto_next_ID, \ + label, + +/*============================================================================= +// name: goto_first +// command id: 01 +// info: like goto_next, but it starts scanning label from start of list +//===========================================================================*/ +#define goto_first_ID 0x01 +#define goto_first_LENGTH 0x02 +#define goto_first(label) \ + goto_first_ID, \ + label, + +/*============================================================================= +// name: label +// command id: 02 +// info: label marker for ai list - used for all commands that return true +//===========================================================================*/ +#define label_ID 0x02 +#define label_LENGTH 0x02 +#define label(id) \ + label_ID, \ + id, + +/*============================================================================= +// name: ai_sleep +// command id: 03 +// info: halt the ai list - frees engine to start executing next ai list until +// all lists have been executed for game tick. +//============================================================================= +// note: offscreen/idle guards will take 14 game ticks instead of 1 tick on ai_sleep +//===========================================================================*/ +#define ai_sleep_ID 0x03 +#define ai_sleep_LENGTH 0x01 +#define ai_sleep \ + ai_sleep_ID, + +/*============================================================================= +// name: ai_list_end +// command id: 04 +// info: used for ai list parser to check when list ends +//============================================================================= +// note: not recommended to execute this command - to finish a list create an +// infinite loop (goto_loop_infinite) or jump to GLIST_END_ROUTINE when list has +// finished tasks +//===========================================================================*/ +#define ai_list_end_ID 0x04 +#define ai_list_end_LENGTH 0x01 +#define ai_list_end \ + ai_list_end_ID + +/*============================================================================= +// name: jump_to_ai_list +// command id: 05 +// info: set chr num's current ai list program counter to beginning of a list +//============================================================================= +// note: not recommended to goto an obj list (10XX) +//===========================================================================*/ +#define jump_to_ai_list_ID 0x05 +#define jump_to_ai_list_LENGTH 0x04 +#define jump_to_ai_list(chr_num, ai_list) \ + jump_to_ai_list_ID, \ + chr_num, \ + chararray16(ai_list), + +/*============================================================================= +// name: set_return_ai_list +// command id: 06 +// info: store a list ptr in current chr struct - used for command 07 return +//============================================================================= +// note: not recommended to set stored list to an obj list (10XX) +//===========================================================================*/ +#define set_return_ai_list_ID 0x06 +#define set_return_ai_list_LENGTH 0x03 +#define set_return_ai_list(ai_list) \ + set_return_ai_list_ID, \ + chararray16(ai_list), + +/*============================================================================= +// name: jump_to_return_ai_list +// command id: 07 +// info: jump the return ai list set in chr struct - pointer set by command 06. +// used for subroutine lists. if list pointer isn't set, game will crash +//============================================================================= +// note: after return, set chr->aioffset to top of ai list +//===========================================================================*/ +#define jump_to_return_ai_list_ID 0x07 +#define jump_to_return_ai_list_LENGTH 0x01 +#define jump_to_return_ai_list \ + jump_to_return_ai_list_ID, + +/*============================================================================= +// name: guard_animation_stop +// command id: 08 +// info: reset guard back to idle pose - can be used to stop guards in place +//===========================================================================*/ +#define guard_animation_stop_ID 0x08 +#define guard_animation_stop_LENGTH 0x01 +#define guard_animation_stop \ + guard_animation_stop_ID, + +/*============================================================================= +// name: guard_kneel +// command id: 09 +// info: make guard kneel on one knee +//===========================================================================*/ +#define guard_kneel_ID 0x09 +#define guard_kneel_LENGTH 0x01 +#define guard_kneel \ + guard_kneel_ID, + +/*============================================================================= +// name: guard_play_animation +// command id: 0A +// info: set guard to playback animation +//============================================================================= +// arguments: +// start/end set to -1/-1 will playback the entire animation length. +// interpolation time will set how long it will take to transition from the previous state. +// if interpolation time is too low it may crash! - use 0x10 if unsure. +// start/end keyframe uses animation 30 tick units - interpolation use 60 tick units. +// use ANIM_# flags for bitfield argument +//===========================================================================*/ +#define guard_play_animation_ID 0x0A +#define guard_play_animation_LENGTH 0x09 +#define guard_play_animation(animation_id, start_time30, end_time30, bitfield, interpol_time60) \ + guard_play_animation_ID, \ + chararray16(animation_id), \ + chararray16(start_time30), \ + chararray16(end_time30), \ + bitfield, \ + interpol_time60, + +/*============================================================================= +// name: if_guard_playing_animation +// command id: 0B +// info: if guard is in animation playback state (ACT_ANIM), goto label +//===========================================================================*/ +#define if_guard_playing_animation_ID 0x0B +#define if_guard_playing_animation_LENGTH 0x02 +#define if_guard_playing_animation(label) \ + if_guard_playing_animation_ID, \ + label, + +/*============================================================================= +// name: guard_points_at_bond +// command id: 0C +// info: guard points if bond is directly in front of guard, else command is ignored +//============================================================================= +// note: global ai list GLIST_FIRE_RAND_ANIM_SUBROUTINE skips this command if +// bitfield flag BITFIELD_DONT_POINT_AT_BOND is on +//===========================================================================*/ +#define guard_points_at_bond_ID 0x0C +#define guard_points_at_bond_LENGTH 0x01 +#define guard_points_at_bond \ + guard_points_at_bond_ID, + +/*============================================================================= +// name: guard_looks_around_self +// command id: 0D +// info: set guard to playback animation - used when shots land near guard +//===========================================================================*/ +#define guard_looks_around_self_ID 0x0D +#define guard_looks_around_self_LENGTH 0x01 +#define guard_looks_around_self \ + guard_looks_around_self_ID, + +/*============================================================================= +// name: guard_try_sidestepping +// command id: 0E +// info: trigger guard to sidestep, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_sidestepping_ID 0x0E +#define guard_try_sidestepping_LENGTH 0x02 +#define guard_try_sidestepping(label) \ + guard_try_sidestepping_ID, \ + label, + +/*============================================================================= +// name: guard_try_hopping_sideways +// command id: 0F +// info: trigger guard to hop sideways, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_hopping_sideways_ID 0x0F +#define guard_try_hopping_sideways_LENGTH 0x02 +#define guard_try_hopping_sideways(label) \ + guard_try_hopping_sideways_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_side +// command id: 10 +// info: trigger guard to run sideways of bond, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_running_to_side_ID 0x10 +#define guard_try_running_to_side_LENGTH 0x02 +#define guard_try_running_to_side(label) \ + guard_try_running_to_side_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_walk +// command id: 11 +// info: trigger guard to walk and fire at bond, goto label if successful +//============================================================================= +// note: bond needs to be at long distance away from guard to work +//===========================================================================*/ +#define guard_try_firing_walk_ID 0x11 +#define guard_try_firing_walk_LENGTH 0x02 +#define guard_try_firing_walk(label) \ + guard_try_firing_walk_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_run +// command id: 12 +// info: trigger guard to run and fire at bond, goto label if successful +//============================================================================= +// note: bond needs to be at long distance away from guard to work +//===========================================================================*/ +#define guard_try_firing_run_ID 0x12 +#define guard_try_firing_run_LENGTH 0x02 +#define guard_try_firing_run(label) \ + guard_try_firing_run_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_roll +// command id: 13 +// info: trigger guard to roll on ground then fire at bond, goto label if successful +//============================================================================= +// note: bond cannot be too close to guard or it won't work +//===========================================================================*/ +#define guard_try_firing_roll_ID 0x13 +#define guard_try_firing_roll_LENGTH 0x02 +#define guard_try_firing_roll(label) \ + guard_try_firing_roll_ID, \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target +// command id: 14 +// info: make guard aim/fire their weapon at target, goto label if successful +//============================================================================= +// note: bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_ID 0x14 +#define guard_try_fire_or_aim_at_target_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target_kneel +// command id: 15 +// info: make guard kneel and aim/fire their weapon at target, goto label if successful +//============================================================================= +// note: bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_kneel_ID 0x15 +#define guard_try_fire_or_aim_at_target_kneel_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target_kneel(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_kneel_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target_update +// command id: 16 +// info: update guard's aim/fire target, goto label if successful +//============================================================================= +// note: this command only works if guard is currently aiming at a target. +// bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_update_ID 0x16 +#define guard_try_fire_or_aim_at_target_update_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target_update(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_update_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_facing_target +// command id: 17 +// info: make guard continuously face target, goto label if successful +//============================================================================= +// note: if guard was shot while facing target, guard will snap out of facing state. +// bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument. command can't use TARGET_AIM_ONLY flag +//===========================================================================*/ +#define guard_try_facing_target_ID 0x17 +#define guard_try_facing_target_LENGTH 0x06 +#define guard_try_facing_target(bitfield, target, label) \ + guard_try_facing_target_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: chr_hit_body_part_with_item_damage +// command id: 18 +// info: hit chr's body part with item's damage, play reaction to hit location +//============================================================================= +// note: command does not trigger item's fire sfx. item's damage uses body part +// damage modifier. use HIT_# define for hit part number +//===========================================================================*/ +#define chr_hit_body_part_with_item_damage_ID 0x18 +#define chr_hit_body_part_with_item_damage_LENGTH 0x04 +#define chr_hit_body_part_with_item_damage(chr_num, part_num, item_num) \ + chr_hit_body_part_with_item_damage_ID, \ + chr_num, \ + part_num, \ + item_num, + +/*============================================================================= +// name: chr_hit_chr_body_part_with_held_item +// command id: 19 +// info: chr hits chr's body part with held item, play reaction to hit location +//============================================================================= +// note: command does not trigger item's fire sfx or chr firing animation. +// item's damage uses body part damage modifier. use HIT_# define for hit part number +//===========================================================================*/ +#define chr_hit_chr_body_part_with_held_item_ID 0x19 +#define chr_hit_chr_body_part_with_held_item_LENGTH 0x04 +#define chr_hit_chr_body_part_with_held_item(chr_num, chr_num_target, part_num) \ + chr_hit_chr_body_part_with_held_item_ID, \ + chr_num, \ + chr_num_target, \ + part_num, + +/*============================================================================= +// name: guard_try_throwing_grenade +// command id: 1A +// info: trigger guard to throw a grenade at bond, goto label if successful +//============================================================================= +// note: a rng byte is generated and compared again chr->grenadeprob, if rng byte +// is less than grenadeprob throw grenade and goto label, else do nothing. +// chr->grenadeprob default is 0 - to change use setup object 12 or command 8D +//===========================================================================*/ +#define guard_try_throwing_grenade_ID 0x1A +#define guard_try_throwing_grenade_LENGTH 0x02 +#define guard_try_throwing_grenade(label) \ + guard_try_throwing_grenade_ID, \ + label, + +/*============================================================================= +// name: guard_try_dropping_item +// command id: 1B +// info: spawn and drop item with prop model from guard, goto label if successful +//============================================================================= +// note: dropped item uses item type (08) with model number - they can be picked up. +// grenade/mines will be dropped live - this is used for cradle (list #0411) +//===========================================================================*/ +#define guard_try_dropping_item_ID 0x1B +#define guard_try_dropping_item_LENGTH 0x05 +#define guard_try_dropping_item(prop_num, item_num, label) \ + guard_try_dropping_item_ID, \ + chararray16(prop_num), \ + item_num, \ + label, + +/*============================================================================= +// name: guard_runs_to_pad +// command id: 1C +// info: makes the guard run to pad +//===========================================================================*/ +#define guard_runs_to_pad_ID 0x1C +#define guard_runs_to_pad_LENGTH 0x03 +#define guard_runs_to_pad(pad) \ + guard_runs_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_runs_to_pad_preset +// command id: 1D +// info: makes the guard run to guard->padpreset1 (PAD_PRESET - 9000) +//===========================================================================*/ +#define guard_runs_to_pad_preset_ID 0x1D +#define guard_runs_to_pad_preset_LENGTH 0x01 +#define guard_runs_to_pad_preset \ + guard_runs_to_pad_preset_ID, + +/*============================================================================= +// name: guard_walks_to_pad +// command id: 1E +// info: makes the guard walk to pad +//===========================================================================*/ +#define guard_walks_to_pad_ID 0x1E +#define guard_walks_to_pad_LENGTH 0x03 +#define guard_walks_to_pad(pad) \ + guard_walks_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_sprints_to_pad +// command id: 1F +// info: makes the guard sprint to pad +//===========================================================================*/ +#define guard_sprints_to_pad_ID 0x1F +#define guard_sprints_to_pad_LENGTH 0x03 +#define guard_sprints_to_pad(pad) \ + guard_sprints_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_start_patrol +// command id: 20 +// info: makes guard walk a predefined path within setup +//============================================================================= +// note: usually paired with goto GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM +// or GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM +//===========================================================================*/ +#define guard_start_patrol_ID 0x20 +#define guard_start_patrol_LENGTH 0x02 +#define guard_start_patrol(path_num) \ + guard_start_patrol_ID, \ + path_num, + +/*============================================================================= +// name: guard_surrenders +// command id: 21 +// info: makes a guard surrender and drop all attached and held items +//============================================================================= +// note: will not drop items embedded within guard +//===========================================================================*/ +#define guard_surrenders_ID 0x21 +#define guard_surrenders_LENGTH 0x01 +#define guard_surrenders \ + guard_surrenders_ID, + +/*============================================================================= +// name: guard_remove_fade +// command id: 22 +// info: sets guard to fade away - fade time is 90 ticks (1.5 seconds). when +// the fade finishes, automatically remove guard +//============================================================================= +// note: guard collision is ignored during fade - will not drop items +//===========================================================================*/ +#define guard_remove_fade_ID 0x22 +#define guard_remove_fade_LENGTH 0x01 +#define guard_remove_fade \ + guard_remove_fade_ID, + +/*============================================================================= +// name: chr_remove_instant +// command id: 23 +// info: instantly remove chr unlike above command +//============================================================================= +// note: will not drop items +//===========================================================================*/ +#define chr_remove_instant_ID 0x23 +#define chr_remove_instant_LENGTH 0x02 +#define chr_remove_instant(chr_num) \ + chr_remove_instant_ID, \ + chr_num, + +/*============================================================================= +// name: guard_try_triggering_alarm_at_pad +// command id: 24 +// info: guard activates alarm assigned to pad, goto label if successful +//============================================================================= +// note: command doesn't care what object type is at pad, as long as the object +// isn't destroyed. command also checks if guard is alive before activating alarm. +// when triggering alarm, guard will be set to state ACT_STARTALARM and play animation +//===========================================================================*/ +#define guard_try_triggering_alarm_at_pad_ID 0x24 +#define guard_try_triggering_alarm_at_pad_LENGTH 0x04 +#define guard_try_triggering_alarm_at_pad(pad, label) \ + guard_try_triggering_alarm_at_pad_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: alarm_on +// command id: 25 +// info: activates alarm +//===========================================================================*/ +#define alarm_on_ID 0x25 +#define alarm_on_LENGTH 0x01 +#define alarm_on \ + alarm_on_ID, + +/*============================================================================= +// name: alarm_off +// command id: 26 +// info: deactivates alarm +//===========================================================================*/ +#define alarm_off_ID 0x26 +#define alarm_off_LENGTH 0x01 +#define alarm_off \ + alarm_off_ID, + +/*============================================================================= +// name: removed_command27 +// command id: 27 +// info: command no longer exists, never goto label +//===========================================================================*/ +#define removed_command27_ID 0x27 +#define removed_command27_LENGTH 0x02 +#define removed_command27(label) \ + removed_command27_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_bond_position +// command id: 28 +// info: if guard is able to run to bond, goto label +//============================================================================= +// note: don't goto label if guard can't run to bond (guard has died) or bond is +// at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_running_to_bond_position_ID 0x28 +#define guard_try_running_to_bond_position_LENGTH 0x02 +#define guard_try_running_to_bond_position(label) \ + guard_try_running_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: guard_try_walking_to_bond_position +// command id: 29 +// info: if guard is able to walk to bond, goto label +//============================================================================= +// note: don't goto label if guard can't walk to bond (guard has died) or bond is +// at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_walking_to_bond_position_ID 0x29 +#define guard_try_walking_to_bond_position_LENGTH 0x02 +#define guard_try_walking_to_bond_position(label) \ + guard_try_walking_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: guard_try_sprinting_to_bond_position +// command id: 2A +// info: if guard is able to sprint to bond, goto label +//============================================================================= +// note: don't goto label if guard can't sprint to bond (guard has died) or bond +// is at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_sprinting_to_bond_position_ID 0x2A +#define guard_try_sprinting_to_bond_position_LENGTH 0x02 +#define guard_try_sprinting_to_bond_position(label) \ + guard_try_sprinting_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: removed_command2B +// command id: 2B +// info: command no longer exists, never goto label +//===========================================================================*/ +#define removed_command2B_ID 0x2B +#define removed_command2B_LENGTH 0x02 +#define removed_command2B(label) \ + removed_command2B_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_chr_position +// command id: 2C +// info: if guard is able to run to chr, goto label +//============================================================================= +// note: don't goto label if guard can't run to chr (guard has died) or chr is +// at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_running_to_chr_position_ID 0x2C +#define guard_try_running_to_chr_position_LENGTH 0x03 +#define guard_try_running_to_chr_position(chr_num, label) \ + guard_try_running_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_walking_to_chr_position +// command id: 2D +// info: if guard is able to walk to chr, goto label +//============================================================================= +// note: don't goto label if guard can't walk to chr (guard has died) or chr is +// at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_walking_to_chr_position_ID 0x2D +#define guard_try_walking_to_chr_position_LENGTH 0x03 +#define guard_try_walking_to_chr_position(chr_num, label) \ + guard_try_walking_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_sprinting_to_chr_position +// command id: 2E +// info: if guard is able to sprint to chr, goto label +//============================================================================= +// note: don't goto label if guard can't sprint to chr (guard has died) or chr +// is at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_sprinting_to_chr_position_ID 0x2E +#define guard_try_sprinting_to_chr_position_LENGTH 0x03 +#define guard_try_sprinting_to_chr_position(chr_num, label) \ + guard_try_sprinting_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_has_stopped_moving +// command id: 2F +// info: if guard has stopped moving, goto label +//============================================================================= +// note: check if guard isn't looking for bond or if guard has finished moving +// to destination +//===========================================================================*/ +#define if_guard_has_stopped_moving_ID 0x2F +#define if_guard_has_stopped_moving_LENGTH 0x02 +#define if_guard_has_stopped_moving(label) \ + if_guard_has_stopped_moving_ID, \ + label, + +/*============================================================================= +// name: if_chr_dying_or_dead +// command id: 30 +// info: if chr has died (or in dying state), goto label +//===========================================================================*/ +#define if_chr_dying_or_dead_ID 0x30 +#define if_chr_dying_or_dead_LENGTH 0x03 +#define if_chr_dying_or_dead(chr_num, label) \ + if_chr_dying_or_dead_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_chr_does_not_exist +// command id: 31 +// info: if chr doesn't exist (died and faded/not spawned), goto label +//============================================================================= +// note: this command is used to check if chr has finished dying animation and +// faded away, or chr num is free +//===========================================================================*/ +#define if_chr_does_not_exist_ID 0x31 +#define if_chr_does_not_exist_LENGTH 0x03 +#define if_chr_does_not_exist(chr_num, label) \ + if_chr_does_not_exist_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_sees_bond +// command id: 32 +// info: check vision for bond, goto label if spotted bond +//============================================================================= +// note: uses chr->visionrange while checking for bond. once bond has been spotted, +// check if bond and guard are within line of sight (ignores facing direction). +// if bond breaks line of sight, do not goto label. if bond has broken line of +// sight for more than 10 seconds, reset spotted bond state +//===========================================================================*/ +#define if_guard_sees_bond_ID 0x32 +#define if_guard_sees_bond_LENGTH 0x02 +#define if_guard_sees_bond(label) \ + if_guard_sees_bond_ID, \ + label, + +/*============================================================================= +// name: random_generate_seed +// command id: 33 +// info: generate a random byte and store to chr->random +//============================================================================= +// note: random byte range is 00-FF (unsigned) +//===========================================================================*/ +#define random_generate_seed_ID 0x33 +#define random_generate_seed_LENGTH 0x01 +#define random_generate_seed \ + random_generate_seed_ID, + +/*============================================================================= +// name: if_random_seed_less_than +// command id: 34 +// info: if chr->random < byte, goto label +//============================================================================= +// note: compare is unsigned +//===========================================================================*/ +#define if_random_seed_less_than_ID 0x34 +#define if_random_seed_less_than_LENGTH 0x03 +#define if_random_seed_less_than(byte, label) \ + if_random_seed_less_than_ID, \ + byte, \ + label, + +/*============================================================================= +// name: if_random_seed_greater_than +// command id: 35 +// info: if chr->random > byte, goto label +//============================================================================= +// note: compare is unsigned +//===========================================================================*/ +#define if_random_seed_greater_than_ID 0x35 +#define if_random_seed_greater_than_LENGTH 0x03 +#define if_random_seed_greater_than(byte, label) \ + if_random_seed_greater_than_ID, \ + byte, \ + label, + +/*============================================================================= +// name: if_alarm_is_on_unused +// command id: 36 +// info: if alarm is activated, goto label +//============================================================================= +// note: this command works but is unused in retail game, use command 37 instead +//===========================================================================*/ +#define if_alarm_is_on_unused_ID 0x36 +#define if_alarm_is_on_unused_LENGTH 0x02 +#define if_alarm_is_on_unused(label) \ + if_alarm_is_on_unused_ID, \ + label, + +/*============================================================================= +// name: if_alarm_is_on +// command id: 37 +// info: if alarm is activated, goto label +//===========================================================================*/ +#define if_alarm_is_on_ID 0x37 +#define if_alarm_is_on_LENGTH 0x02 +#define if_alarm_is_on(label) \ + if_alarm_is_on_ID, \ + label, + +/*============================================================================= +// name: if_gas_is_leaking +// command id: 38 +// info: if gas leak event triggered, goto label +//============================================================================= +// note: once gas leak event has started, always goto label +//===========================================================================*/ +#define if_gas_is_leaking_ID 0x38 +#define if_gas_is_leaking_LENGTH 0x02 +#define if_gas_is_leaking(label) \ + if_gas_is_leaking_ID, \ + label, + +/*============================================================================= +// name: if_guard_heard_bond +// command id: 39 +// info: if guard heard bond fire weapon, goto label +//============================================================================= +// note: uses chr->hearingscale while listening for bond. to check if bond has +// shot within the last 10 seconds, use command 3F +//===========================================================================*/ +#define if_guard_heard_bond_ID 0x39 +#define if_guard_heard_bond_LENGTH 0x02 +#define if_guard_heard_bond(label) \ + if_guard_heard_bond_ID, \ + label, + +/*============================================================================= +// name: if_guard_see_another_guard_shot +// command id: 3A +// info: if guard sees another guard shot (from anyone), goto label +//============================================================================= +// note: guard friendly fire (if flagged) will trigger this command to goto label. +// command checks if chr->chrseeshot is set to valid chrnum (not -1). does not +// work with shot invincible/armoured guards +//===========================================================================*/ +#define if_guard_see_another_guard_shot_ID 0x3A +#define if_guard_see_another_guard_shot_LENGTH 0x02 +#define if_guard_see_another_guard_shot(label) \ + if_guard_see_another_guard_shot_ID, \ + label, + +/*============================================================================= +// name: if_guard_see_another_guard_die +// command id: 3B +// info: if guard sees another guard die (from anyone), goto label +//============================================================================= +// note: when a guard in sight switches to ACT_DIE/ACT_DEAD, goto label. +// command checks if chr->chrseedie is set to valid chrnum (not -1) +//===========================================================================*/ +#define if_guard_see_another_guard_die_ID 0x3B +#define if_guard_see_another_guard_die_LENGTH 0x02 +#define if_guard_see_another_guard_die(label) \ + if_guard_see_another_guard_die_ID, \ + label, + +/*============================================================================= +// name: if_guard_and_bond_within_line_of_sight +// command id: 3C +// info: if guard and bond are within line of sight, goto label +//============================================================================= +// note: line of sight uses clipping - ignores facing direction of bond/guard. +// if prop/guard is in the way do not goto label. does not use chr->visionrange +// for line of sight check. use command 32 to check using chr->visionrange and +// command 42 to account for bond's view +//===========================================================================*/ +#define if_guard_and_bond_within_line_of_sight_ID 0x3C +#define if_guard_and_bond_within_line_of_sight_LENGTH 0x02 +#define if_guard_and_bond_within_line_of_sight(label) \ + if_guard_and_bond_within_line_of_sight_ID, \ + label, + +/*============================================================================= +// name: if_guard_and_bond_within_partial_line_of_sight +// command id: 3D +// info: if guard and bond are within partial line of sight, goto label +//============================================================================= +// note: unused command, functions like above but only goto label if bond is +// half occluded by clipping (not blocked or within full view) +//===========================================================================*/ +#define if_guard_and_bond_within_partial_line_of_sight_ID 0x3D +#define if_guard_and_bond_within_partial_line_of_sight_LENGTH 0x02 +#define if_guard_and_bond_within_partial_line_of_sight(label) \ + if_guard_and_bond_within_partial_line_of_sight_ID, \ + label, + +/*============================================================================= +// name: if_guard_was_shot_within_last_10_secs +// command id: 3E +// info: if guard was shot (from anyone) within the last 10 seconds, goto label +//============================================================================= +// note: command will not count guard as shot if they are invincible/have armour +//===========================================================================*/ +#define if_guard_was_shot_within_last_10_secs_ID 0x3E +#define if_guard_was_shot_within_last_10_secs_LENGTH 0x02 +#define if_guard_was_shot_within_last_10_secs(label) \ + if_guard_was_shot_within_last_10_secs_ID, \ + label, + +/*============================================================================= +// name: if_guard_heard_bond_within_last_10_secs +// command id: 3F +// info: if guard heard bond fire weapon within the last 10 seconds, goto label +//============================================================================= +// note: uses chr->hearingscale while listening for bond. to check if bond has +// now fired weapon instead of within the last 10 seconds, use command 39 +//===========================================================================*/ +#define if_guard_heard_bond_within_last_10_secs_ID 0x3F +#define if_guard_heard_bond_within_last_10_secs_LENGTH 0x02 +#define if_guard_heard_bond_within_last_10_secs(label) \ + if_guard_heard_bond_within_last_10_secs_ID, \ + label, + +/*============================================================================= +// name: if_guard_in_room_with_chr +// command id: 40 +// info: if guard is in same room with chr, goto label +//===========================================================================*/ +#define if_guard_in_room_with_chr_ID 0x40 +#define if_guard_in_room_with_chr_LENGTH 0x03 +#define if_guard_in_room_with_chr(chr_num, label) \ + if_guard_in_room_with_chr_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_has_not_been_seen +// command id: 41 +// info: if guard has not been seen before on screen, goto label +//============================================================================= +// note: when bond has seen guard, it will add a flag to chr->chrflags. +// the seen flag will be kept true for duration of level +//===========================================================================*/ +#define if_guard_has_not_been_seen_ID 0x41 +#define if_guard_has_not_been_seen_LENGTH 0x02 +#define if_guard_has_not_been_seen(label) \ + if_guard_has_not_been_seen_ID, \ + label, + +/*============================================================================= +// name: if_guard_is_on_screen +// command id: 42 +// info: if guard is currently being rendered on screen, goto label +//============================================================================= +// note: portals will affect this command's output. if guard is being culled +// off screen, command will not goto label +//===========================================================================*/ +#define if_guard_is_on_screen_ID 0x42 +#define if_guard_is_on_screen_LENGTH 0x02 +#define if_guard_is_on_screen(label) \ + if_guard_is_on_screen_ID, \ + label, + +/*============================================================================= +// name: if_guard_room_containing_self_is_on_screen +// command id: 43 +// info: if the room containing guard is being rendered on screen, goto label +//============================================================================= +// note: only checks if room is being rendered, not if bond can see guard. +// to check if guard is being rendered use command 42 instead. +//===========================================================================*/ +#define if_guard_room_containing_self_is_on_screen_ID 0x43 +#define if_guard_room_containing_self_is_on_screen_LENGTH 0x02 +#define if_guard_room_containing_self_is_on_screen(label) \ + if_guard_room_containing_self_is_on_screen_ID, \ + label, + +/*============================================================================= +// name: if_room_containing_pad_is_on_screen +// command id: 44 +// info: if room containing pad is being rendered on screen, goto label +//============================================================================= +// note: only checks if room is being rendered, not if bond can see inside room +//===========================================================================*/ +#define if_room_containing_pad_is_on_screen_ID 0x44 +#define if_room_containing_pad_is_on_screen_LENGTH 0x04 +#define if_room_containing_pad_is_on_screen(pad, label) \ + if_room_containing_pad_is_on_screen_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_is_targeted_by_bond +// command id: 45 +// info: if bond is looking/aiming at guard, goto label +//============================================================================= +// note: also checks if crosshair is aiming at guard +//===========================================================================*/ +#define if_guard_is_targeted_by_bond_ID 0x45 +#define if_guard_is_targeted_by_bond_LENGTH 0x02 +#define if_guard_is_targeted_by_bond(label) \ + if_guard_is_targeted_by_bond_ID, \ + label, + +/*============================================================================= +// name: if_guard_shot_from_bond_missed +// command id: 46 +// info: if bond's shot missed/landed near guard, goto label +//============================================================================= +// note: command will sometimes goto label if guard was shot - use command +// 3E instead to check if guard was shot recently (more consistent) +//===========================================================================*/ +#define if_guard_shot_from_bond_missed_ID 0x46 +#define if_guard_shot_from_bond_missed_LENGTH 0x02 +#define if_guard_shot_from_bond_missed(label) \ + if_guard_shot_from_bond_missed_ID, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_to_bond_less_than +// command id: 47 +// info: if guard's counter-clockwise direction to bond < direction argument, goto label +//============================================================================= +// note: direction input (hex): +// 00: no rotation, never goto label because degrees are always above 0 +// 40: bond and guard within 9-to-12 o'clock (90 degrees) +// 80: bond is on guard's left-side (180 degrees) +// C0: bond and guard within 3-to-12 o'clock (270 degrees) +// FF: full rotation, always goto label except for a tiny degree (0-359 degrees) +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_to_bond_less_than_ID 0x47 +#define if_guard_counter_clockwise_direction_to_bond_less_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_to_bond_less_than(direction, label) \ + if_guard_counter_clockwise_direction_to_bond_less_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_to_bond_greater_than +// command id: 48 +// info: if guard's counter-clockwise direction to bond > direction argument, goto label +//============================================================================= +// note: direction input (hex): +// FF: no rotation, never goto label except for a tiny degree (0-1 degrees) +// C0: bond and guard within 12-to-3 o'clock (90 degrees) +// 80: bond on guard's right-side (180 degrees) +// 40: bond and guard within 12-to-9 o'clock (270 degrees) +// 00: full rotation, always goto label +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_to_bond_greater_than_ID 0x48 +#define if_guard_counter_clockwise_direction_to_bond_greater_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_to_bond_greater_than(direction, label) \ + if_guard_counter_clockwise_direction_to_bond_greater_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_from_bond_less_than +// command id: 49 +// info: if bond's counter-clockwise direction to guard < direction argument, goto label +//============================================================================= +// note: direction input (hex): +// 00: no rotation, never goto label because degrees are always above 0 +// 40: guard and bond within 9-to-12 o'clock (90 degrees) +// 80: guard is on bond's left-side (180 degrees) +// C0: guard and bond within 3-to-12 o'clock (270 degrees) +// FF: full rotation, always goto label except for a tiny degree (0-359 degrees) +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_from_bond_less_than_ID 0x49 +#define if_guard_counter_clockwise_direction_from_bond_less_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_from_bond_less_than(direction, label) \ + if_guard_counter_clockwise_direction_from_bond_less_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_from_bond_greater_than +// command id: 4A +// info: if bond's counter-clockwise direction to guard > direction argument, goto label +//============================================================================= +// note: direction input (hex): +// FF: no rotation, never goto label except for a tiny degree (0-1 degrees) +// C0: guard and bond within 12-to-3 o'clock (90 degrees) +// 80: guard on bond's right-side (180 degrees) +// 40: guard and bond within 12-to-9 o'clock (270 degrees) +// 00: full rotation, always goto label +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_from_bond_greater_than_ID 0x4A +#define if_guard_counter_clockwise_direction_from_bond_greater_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_from_bond_greater_than(direction, label) \ + if_guard_counter_clockwise_direction_from_bond_greater_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_distance_to_bond_less_than +// command id: 4B +// info: if guard's distance to bond < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_bond_less_than_ID 0x4B +#define if_guard_distance_to_bond_less_than_LENGTH 0x04 +#define if_guard_distance_to_bond_less_than(distance, label) \ + if_guard_distance_to_bond_less_than_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_guard_distance_to_bond_greater_than +// command id: 4C +// info: if guard's distance to bond > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_bond_greater_than_ID 0x4C +#define if_guard_distance_to_bond_greater_than_LENGTH 0x04 +#define if_guard_distance_to_bond_greater_than(distance, label) \ + if_guard_distance_to_bond_greater_than_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_chr_distance_to_pad_less_than +// command id: 4D +// info: if chr's distance to pad < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_chr_distance_to_pad_less_than_ID 0x4D +#define if_chr_distance_to_pad_less_than_LENGTH 0x07 +#define if_chr_distance_to_pad_less_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_less_than_ID, \ + chr_num, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_chr_distance_to_pad_greater_than +// command id: 4E +// info: if chr's distance to pad > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_chr_distance_to_pad_greater_than_ID 0x4E +#define if_chr_distance_to_pad_greater_than_LENGTH 0x07 +#define if_chr_distance_to_pad_greater_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_greater_than_ID, \ + chr_num, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_distance_to_chr_less_than +// command id: 4F +// info: if guard's distance to chr < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_chr_less_than_ID 0x4F +#define if_guard_distance_to_chr_less_than_LENGTH 0x05 +#define if_guard_distance_to_chr_less_than(distance, chr_num, label) \ + if_guard_distance_to_chr_less_than_ID, \ + chararray16(distance), \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_distance_to_chr_greater_than +// command id: 50 +// info: if guard's distance to chr > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_chr_greater_than_ID 0x50 +#define if_guard_distance_to_chr_greater_than_LENGTH 0x05 +#define if_guard_distance_to_chr_greater_than(distance, chr_num, label) \ + if_guard_distance_to_chr_greater_than_ID, \ + chararray16(distance), \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_setting_chr_preset_to_guard_within_distance +// command id: 51 +// info: if guard's distance to any chr < distance argument, set chr->padpreset1 +// to found guard's chrnum and goto label +//============================================================================= +// note: argument scale is 10 units per meter. command does not pick the closest +// found chr, but whoever was first found within the distance argument. if no +// guards were found within distance range, do not goto label +//===========================================================================*/ +#define guard_try_setting_chr_preset_to_guard_within_distance_ID 0x51 +#define guard_try_setting_chr_preset_to_guard_within_distance_LENGTH 0x04 +#define guard_try_setting_chr_preset_to_guard_within_distance(distance, label) \ + guard_try_setting_chr_preset_to_guard_within_distance_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_bond_distance_to_pad_less_than +// command id: 52 +// info: if bond's distance to pad < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_bond_distance_to_pad_less_than_ID 0x52 +#define if_bond_distance_to_pad_less_than_LENGTH 0x06 +#define if_bond_distance_to_pad_less_than(distance, pad, label) \ + if_bond_distance_to_pad_less_than_ID, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_distance_to_pad_greater_than +// command id: 53 +// info: if bond's distance to pad > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_bond_distance_to_pad_greater_than_ID 0x53 +#define if_bond_distance_to_pad_greater_than_LENGTH 0x06 +#define if_bond_distance_to_pad_greater_than(distance, pad, label) \ + if_bond_distance_to_pad_greater_than_ID, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_chr_in_room_with_pad +// command id: 54 +// info: if chr id in same room with pad, goto label +//===========================================================================*/ +#define if_chr_in_room_with_pad_ID 0x54 +#define if_chr_in_room_with_pad_LENGTH 0x05 +#define if_chr_in_room_with_pad(chr_num, pad, label) \ + if_chr_in_room_with_pad_ID, \ + chr_num, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_in_room_with_pad +// command id: 55 +// info: if bond in same room with pad, goto label +//===========================================================================*/ +#define if_bond_in_room_with_pad_ID 0x55 +#define if_bond_in_room_with_pad_LENGTH 0x04 +#define if_bond_in_room_with_pad(pad, label) \ + if_bond_in_room_with_pad_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_collected_object +// command id: 56 +// info: if bond collected tagged object, goto label +//===========================================================================*/ +#define if_bond_collected_object_ID 0x56 +#define if_bond_collected_object_LENGTH 0x03 +#define if_bond_collected_object(object_tag, label) \ + if_bond_collected_object_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_item_is_stationary_within_level +// command id: 57 +// info: if item exists in level and is stationary (not moving/in mid-air), goto label +//============================================================================= +// note: used to check if bond threw an item in level. also checks if item was +// attached to an object (item is stationary within level). so make sure command +// 58 takes priority over command 57 when using both commands +//===========================================================================*/ +#define if_item_is_stationary_within_level_ID 0x57 +#define if_item_is_stationary_within_level_LENGTH 0x03 +#define if_item_is_stationary_within_level(item_num, label) \ + if_item_is_stationary_within_level_ID, \ + item_num, \ + label, + +/*============================================================================= +// name: if_item_is_attached_to_object +// command id: 58 +// info: if item was thrown onto tagged object, goto label +//============================================================================= +// note: used to check if bond threw an item onto a tagged object. if used with +// command 57, make sure command 58 take priority over command 57 +//===========================================================================*/ +#define if_item_is_attached_to_object_ID 0x58 +#define if_item_is_attached_to_object_LENGTH 0x04 +#define if_item_is_attached_to_object(item_num, object_tag, label) \ + if_item_is_attached_to_object_ID, \ + item_num, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_bond_has_item_equipped +// command id: 59 +// info: if bond has an item equipped (currently held), goto label +//===========================================================================*/ +#define if_bond_has_item_equipped_ID 0x59 +#define if_bond_has_item_equipped_LENGTH 0x03 +#define if_bond_has_item_equipped(item_num, label) \ + if_bond_has_item_equipped_ID, \ + item_num, \ + label, + +/*============================================================================= +// name: if_object_exists +// command id: 5A +// info: if tagged object exists in level, goto label +//===========================================================================*/ +#define if_object_exists_ID 0x5A +#define if_object_exists_LENGTH 0x03 +#define if_object_exists(object_tag, label) \ + if_object_exists_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_object_not_destroyed +// command id: 5B +// info: if tagged object is not destroyed, goto label +//===========================================================================*/ +#define if_object_not_destroyed_ID 0x5B +#define if_object_not_destroyed_LENGTH 0x03 +#define if_object_not_destroyed(object_tag, label) \ + if_object_not_destroyed_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_object_was_activated +// command id: 5C +// info: if tagged object was activated since last check, goto label +//============================================================================= +// note: when executed, it will clear tagged object's activated flag. only bond +// and command 5E can activate tagged objects. bond cannot activate destroyed +// objects +//===========================================================================*/ +#define if_object_was_activated_ID 0x5C +#define if_object_was_activated_LENGTH 0x03 +#define if_object_was_activated(object_tag, label) \ + if_object_was_activated_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_bond_used_gadget_on_object +// command id: 5D +// info: if bond used a gadget item on a tagged object since last check, goto label +//============================================================================= +// note: gadgets are a pre-defined list of items set to gadget flag: +// ITEM_BOMBDEFUSER +// ITEM_DATATHIEF +// ITEM_DOORDECODER +// ITEM_EXPLOSIVEFLOPPY +// ITEM_DATTAPE +//===========================================================================*/ +#define if_bond_used_gadget_on_object_ID 0x5D +#define if_bond_used_gadget_on_object_LENGTH 0x03 +#define if_bond_used_gadget_on_object(object_tag, label) \ + if_bond_used_gadget_on_object_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: object_activate +// command id: 5E +// info: activate a tagged object +//============================================================================= +// note: command does not check if object has been destroyed +//===========================================================================*/ +#define object_activate_ID 0x5E +#define object_activate_LENGTH 0x02 +#define object_activate(object_tag) \ + object_activate_ID, \ + object_tag, + +/*============================================================================= +// name: object_destroy +// command id: 5F +// info: destroy/explode a tagged object +//============================================================================= +// note: only works if object is not destroyed. cannot destroy invincible objects +//===========================================================================*/ +#define object_destroy_ID 0x5F +#define object_destroy_LENGTH 0x02 +#define object_destroy(object_tag) \ + object_destroy_ID, \ + object_tag, + +/*============================================================================= +// name: object_drop_from_chr +// command id: 60 +// info: drop tagged object held/attached to chr +//============================================================================= +// note: item must be held/attached to a chr. embedded objects will not drop, +// only works with attached objects. props can be damaged on drop +//===========================================================================*/ +#define object_drop_from_chr_ID 0x60 +#define object_drop_from_chr_LENGTH 0x02 +#define object_drop_from_chr(object_tag) \ + object_drop_from_chr_ID, \ + object_tag, + +/*============================================================================= +// name: chr_drop_all_concealed_items +// command id: 61 +// info: make chr drop all concealed attachments +//============================================================================= +// note: item must be attached to chr, to drop held items use command 62. embedded +// objects will not drop, only works with attached objects. props can be damaged +// on drop +//===========================================================================*/ +#define chr_drop_all_concealed_items_ID 0x61 +#define chr_drop_all_concealed_items_LENGTH 0x02 +#define chr_drop_all_concealed_items(chr_num) \ + chr_drop_all_concealed_items_ID, \ + chr_num, + +/*============================================================================= +// name: chr_drop_all_held_items +// command id: 62 +// info: make chr drop all held items +//============================================================================= +// note: items must be held by chr, to drop concealed attachments use command 61. +// embedded objects will not drop, only works with attached objects +//===========================================================================*/ +#define chr_drop_all_held_items_ID 0x62 +#define chr_drop_all_held_items_LENGTH 0x02 +#define chr_drop_all_held_items(chr_num) \ + chr_drop_all_held_items_ID, \ + chr_num, + +/*============================================================================= +// name: bond_collect_object +// command id: 63 +// info: force bond to instantly collect a tagged object +//============================================================================= +// note: does not trigger bottom text telling player they collected an item +//===========================================================================*/ +#define bond_collect_object_ID 0x63 +#define bond_collect_object_LENGTH 0x02 +#define bond_collect_object(object_tag) \ + bond_collect_object_ID, \ + object_tag, + +/*============================================================================= +// name: chr_equip_object +// command id: 64 +// info: makes chr hold tagged object +//============================================================================= +// note: if chr's hands are occupied, object will be equipped as an concealed +// attachment. but if tagged object's handedness flag is free on guard then +// guard will equip weapon. tagged object's prop must have a holding position +// command within the model file +//===========================================================================*/ +#define chr_equip_object_ID 0x64 +#define chr_equip_object_LENGTH 0x03 +#define chr_equip_object(object_tag, chr_num) \ + chr_equip_object_ID, \ + object_tag, \ + chr_num, + +/*============================================================================= +// name: object_move_to_pad +// command id: 65 +// info: move object to pad +//============================================================================= +// note: if object is assigned to padextra type, then object scale will be lost +// after moving to target pad. object will inherit rotation from target pad +//===========================================================================*/ +#define object_move_to_pad_ID 0x65 +#define object_move_to_pad_LENGTH 0x04 +#define object_move_to_pad(object_tag, pad) \ + object_move_to_pad_ID, \ + object_tag, \ + chrarray16(pad), + +/*============================================================================= +// name: door_open +// command id: 66 +// info: open tagged door +//============================================================================= +// note: open tagged door even if locked +//===========================================================================*/ +#define door_open_ID 0x66 +#define door_open_LENGTH 0x02 +#define door_open(object_tag) \ + door_open_ID, \ + object_tag, + +/*============================================================================= +// name: door_close +// command id: 67 +// info: close tagged door +//===========================================================================*/ +#define door_close_ID 0x67 +#define door_close_LENGTH 0x02 +#define door_close(object_tag) \ + door_close_ID, \ + object_tag, + +/*============================================================================= +// name: if_door_state_equal +// command id: 68 +// info: if tagged door state matches any of bitfield argument, goto label +//============================================================================= +// note: use DOOR_STATE_# flags for door state argument. flags can be combined +//===========================================================================*/ +#define if_door_state_equal_ID 0x68 +#define if_door_state_equal_LENGTH 0x04 +#define if_door_state_equal(object_tag, door_state, label) \ + if_door_state_equal_ID, \ + object_tag, \ + door_state, \ + label, + +/*============================================================================= +// name: if_door_has_been_opened_before +// command id: 69 +// info: if tagged door has been opened before, goto label +//============================================================================= +// note: if tagged door is open by default in setup, then it must be closed before +// it will check if opened again +//===========================================================================*/ +#define if_door_has_been_opened_before_ID 0x69 +#define if_door_has_been_opened_before_LENGTH 0x03 +#define if_door_has_been_opened_before(object_tag, label) \ + if_door_has_been_opened_before_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: door_set_lock +// command id: 6A +// info: set tagged door's lock with flags +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define door_set_lock_ID 0x6A +#define door_set_lock_LENGTH 0x03 +#define door_set_lock(object_tag, lock_flag) \ + door_set_lock_ID, \ + object_tag, \ + lock_flag, + +/*============================================================================= +// name: door_unset_lock +// command id: 6B +// info: unset tagged door's lock with flags +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define door_unset_lock_ID 0x6B +#define door_unset_lock_LENGTH 0x03 +#define door_unset_lock(object_tag, lock_flag) \ + door_unset_lock_ID, \ + object_tag, \ + lock_flag, + +/*============================================================================= +// name: if_door_lock_equal +// command id: 6C +// info: if tagged door's lock flags matches any lock flag argument, goto label +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define if_door_lock_equal_ID 0x6C +#define if_door_lock_equal_LENGTH 0x04 +#define if_door_lock_equal(object_tag, lock_flag, label) \ + if_door_lock_equal_ID, \ + object_tag, \ + lock_flag, \ + label, + +/*============================================================================= +// name: if_objective_num_complete +// command id: 6D +// info: if objective # completed, goto label +//============================================================================= +// note: ignores difficulty settings. for example - if game on agent and player +// completes an unlisted 00 agent objective, checking that objective num will +// goto label +//===========================================================================*/ +#define if_objective_num_complete_ID 0x6D +#define if_objective_num_complete_LENGTH 0x03 +#define if_objective_num_complete(obj_num, label) \ + if_objective_num_complete_ID, \ + obj_num, \ + label, + +/*============================================================================= +// name: guard_try_unknown6E +// command id: 6E +// info: unknown command, goto label +//============================================================================= +// note: sets chr->padpreset1 +// bitfield (hex): +// 0001: sets to nearest pad to path to bond +// 0004: ??? +// 0008: ??? +// 0010: ??? +// 0020: ??? +//===========================================================================*/ +#define guard_try_unknown6E_ID 0x6E +#define guard_try_unknown6E_LENGTH 0x03 +#define guard_try_unknown6E(unknown_flag, label) \ + guard_try_unknown6E_ID, \ + unknown_flag, \ + label, + +/*============================================================================= +// name: guard_try_unknown6F +// command id: 6F +// info: unknown command, goto label +//============================================================================= +// note: sets chr->padpreset1 +// bitfield (hex): +// 0001: set to nearest pad in direction of bond +// 0004: ??? +// 0008: ??? +// 0010: ??? +// 0020: ??? +//===========================================================================*/ +#define guard_try_unknown6F_ID 0x6F +#define guard_try_unknown6F_LENGTH 0x03 +#define guard_try_unknown6F(unknown_flag, label) \ + guard_try_unknown6F_ID, \ + unknown_flag, \ + label, + +/*============================================================================= +// name: if_game_difficulty_less_than +// command id: 70 +// info: if current difficulty < difficulty argument, goto label +//============================================================================= +// note: provided argument will compare the following difficult settings +// 01: agent only +// 02: agent/secret agent +// 03: agent/secret agent/00 agent +//===========================================================================*/ +#define if_game_difficulty_less_than_ID 0x70 +#define if_game_difficulty_less_than_LENGTH 0x03 +#define if_game_difficulty_less_than(argument, label) \ + if_game_difficulty_less_than_ID, \ + argument, \ + label, + +/*============================================================================= +// name: if_game_difficulty_greater_than +// command id: 71 +// info: if current difficulty > difficulty argument, goto label +//============================================================================= +// note: provided argument will compare the following difficult settings +// 00: secret agent/00 agent/007 +// 01: 00 agent/007 +// 02: 007 only +//===========================================================================*/ +#define if_game_difficulty_greater_than_ID 0x71 +#define if_game_difficulty_greater_than_LENGTH 0x03 +#define if_game_difficulty_greater_than(argument, label) \ + if_game_difficulty_greater_than_ID, \ + argument, \ + label, + +/*============================================================================= +// name: if_mission_time_less_than +// command id: 72 +// info: if current mission time (in seconds) < seconds argument, goto label +//============================================================================= +// note: converts (unsigned) seconds to float and compares against mission timer +//===========================================================================*/ +#define if_mission_time_less_than_ID 0x72 +#define if_mission_time_less_than_LENGTH 0x04 +#define if_mission_time_less_than(seconds, label) \ + if_mission_time_less_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_mission_time_greater_than +// command id: 73 +// info: if current mission time (in seconds) > seconds argument, goto label +//============================================================================= +// note: converts (unsigned) seconds to float and compares against mission timer +//===========================================================================*/ +#define if_mission_time_greater_than_ID 0x73 +#define if_mission_time_greater_than_LENGTH 0x04 +#define if_mission_time_greater_than(seconds, label) \ + if_mission_time_greater_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_system_power_time_less_than +// command id: 74 +// info: if system powered on time (in minutes) < minutes argument, goto label +//============================================================================= +// note: converts (unsigned) minutes to float and compares against system time +//===========================================================================*/ +#define if_system_power_time_less_than_ID 0x74 +#define if_system_power_time_less_than_LENGTH 0x04 +#define if_system_power_time_less_than(minutes, label) \ + if_system_power_time_less_than_ID, \ + chararray16(minutes), \ + label, + +/*============================================================================= +// name: if_system_power_time_greater_than +// command id: 75 +// info: if system powered on time (in minutes) > minutes argument, goto label +//============================================================================= +// note: converts (unsigned) minutes to float and compares against system time +//===========================================================================*/ +#define if_system_power_time_greater_than_ID 0x75 +#define if_system_power_time_greater_than_LENGTH 0x04 +#define if_system_power_time_greater_than(minutes, label) \ + if_system_power_time_greater_than_ID, \ + chararray16(minutes), \ + label, + +/*============================================================================= +// name: if_level_id_less_than +// command id: 76 +// info: if current level id < level id argument, goto label +//============================================================================= +// note: level id uses LEVELID enum values, not briefing menu stage number +//===========================================================================*/ +#define if_level_id_less_than_ID 0x76 +#define if_level_id_less_than_LENGTH 0x03 +#define if_level_id_less_than(level_id, label) \ + if_level_id_less_than_ID, \ + level_id, \ + label, + +/*============================================================================= +// name: if_level_id_greater_than +// command id: 77 +// info: if current level id > level id argument, goto label +//============================================================================= +// note: level id uses LEVELID enum values, not briefing menu stage number +//===========================================================================*/ +#define if_level_id_greater_than_ID 0x77 +#define if_level_id_greater_than_LENGTH 0x03 +#define if_level_id_greater_than(level_id, label) \ + if_level_id_greater_than_ID, \ + level_id, \ + label, + +/*============================================================================= +// name: if_guard_hits_less_than +// command id: 78 +// info: if guard's hits taken < hit_num, goto label +//============================================================================= +// note: compares signed byte against chr->numarghs. hits count even if guard +// is invincible +//===========================================================================*/ +#define if_guard_hits_less_than_ID 0x78 +#define if_guard_hits_less_than_LENGTH 0x03 +#define if_guard_hits_less_than(hit_num, label) \ + if_guard_hits_less_than_ID, \ + hit_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_greater_than +// command id: 79 +// info: if guard's hits taken > hit_num, goto label +//============================================================================= +// note: compares signed byte against chr->numarghs. hits count even if guard +// is invincible +//===========================================================================*/ +#define if_guard_hits_greater_than_ID 0x79 +#define if_guard_hits_greater_than_LENGTH 0x03 +#define if_guard_hits_greater_than(hit_num, label) \ + if_guard_hits_greater_than_ID, \ + hit_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_missed_less_than +// command id: 7A +// info: if bond's shot missed/landed near guard total < missed_num, goto label +//============================================================================= +// note: compares signed byte against chr->numclosearghs +//===========================================================================*/ +#define if_guard_hits_missed_less_than_ID 0x7A +#define if_guard_hits_missed_less_than_LENGTH 0x03 +#define if_guard_hits_missed_less_than(missed_num, label) \ + if_guard_hits_missed_less_than_ID, \ + missed_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_missed_greater_than +// command id: 7B +// info: if bond's shot missed/landed near guard total > missed_num, goto label +//============================================================================= +// note: compares signed byte argument against chr->numclosearghs +//===========================================================================*/ +#define if_guard_hits_missed_greater_than_ID 0x7B +#define if_guard_hits_missed_greater_than_LENGTH 0x03 +#define if_guard_hits_missed_greater_than(missed_num, label) \ + if_guard_hits_missed_greater_than_ID, \ + missed_num, \ + label, + +/*============================================================================= +// name: if_chr_health_less_than +// command id: 7C +// info: if chr's health < health argument, goto label +//============================================================================= +// note: argument is unsigned. converted to float and compares different between +// chr->maxdamage - chr->damage. default guard health is 40 (0x28), or after +// float conversion 4.0f. armour is tested +//===========================================================================*/ +#define if_chr_health_less_than_ID 0x7C +#define if_chr_health_less_than_LENGTH 0x04 +#define if_chr_health_less_than(chr_num, health, label) \ + if_chr_health_less_than_ID, \ + chr_num, \ + health, \ + label, + +/*============================================================================= +// name: if_chr_health_greater_than +// command id: 7D +// info: if chr's health > health argument, goto label +//============================================================================= +// note: argument is unsigned. converted to float and compares different between +// chr->maxdamage - chr->damage. default guard health is 40 (0x28), or after +// float conversion 4.0f. armour is tested +//===========================================================================*/ +#define if_chr_health_greater_than_ID 0x7D +#define if_chr_health_greater_than_LENGTH 0x04 +#define if_chr_health_greater_than(chr_num, health, label) \ + if_chr_health_greater_than_ID, \ + chr_num, \ + health, \ + label, + +/*============================================================================= +// name: if_chr_was_damaged_since_last_check +// command id: 7E +// info: if chr has taken damage since last check, goto label +//============================================================================= +// note: checks chr->chrflags if CHRFLAG_WAS_DAMAGED is set. if true, unset flag +// and goto label. CHRFLAG_WAS_DAMAGED is set if guard took damage (not invincible) +//===========================================================================*/ +#define if_chr_was_damaged_since_last_check_ID 0x7E +#define if_chr_was_damaged_since_last_check_LENGTH 0x03 +#define if_chr_was_damaged_since_last_check(chr_num, label) \ + if_chr_was_damaged_since_last_check_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_bond_health_less_than +// command id: 7F +// info: if bond's health < health argument, goto label +//============================================================================= +// note: does not check armour. health argument is unsigned, argument range is +// between 00 and FF, with FF equal to 100% health +//===========================================================================*/ +#define if_bond_health_less_than_ID 0x7F +#define if_bond_health_less_than_LENGTH 0x03 +#define if_bond_health_less_than(health, label) \ + if_bond_health_less_than_ID, \ + health, \ + label, + +/*============================================================================= +// name: if_bond_health_greater_than +// command id: 80 +// info: if bond's health > health argument, goto label +//============================================================================= +// note: does not check armour. health argument is unsigned, argument range is +// between 00 and FF, with FF equal to 100% health +//===========================================================================*/ +#define if_bond_health_greater_than_ID 0x80 +#define if_bond_health_greater_than_LENGTH 0x03 +#define if_bond_health_greater_than(health, label) \ + if_bond_health_greater_than_ID, \ + health, \ + label, + +/*============================================================================= +// name: local_byte_1_set +// command id: 81 +// info: set chr->flags byte value to byte argument +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_1_set_ID 0x81 +#define local_byte_1_set_LENGTH 0x02 +#define local_byte_1_set(set_byte) \ + local_byte_1_set_ID, \ + set_byte, + +/*============================================================================= +// name: local_byte_1_add +// command id: 82 +// info: add byte argument to chr->flags byte value +//============================================================================= +// note: argument is unsigned, add value is clamped at 0xFF (255 dec). this is +// a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define local_byte_1_add_ID 0x82 +#define local_byte_1_add_LENGTH 0x02 +#define local_byte_1_add(add_byte) \ + local_byte_1_add_ID, \ + add_byte, + +/*============================================================================= +// name: local_byte_1_subtract +// command id: 83 +// info: subtract byte argument from chr->flags byte value +//============================================================================= +// note: argument is unsigned, subtract value is clamped at 0. this is a private +// byte that is stored in chr struct. it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_1_subtract_ID 0x83 +#define local_byte_1_subtract_LENGTH 0x02 +#define local_byte_1_subtract(subtract_byte) \ + local_byte_1_subtract_ID, \ + subtract_byte, + +/*============================================================================= +// name: if_local_byte_1_less_than +// command id: 84 +// info: if chr->flags byte value < byte argument, goto label +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define if_local_byte_1_less_than_ID 0x84 +#define if_local_byte_1_less_than_LENGTH 0x03 +#define if_local_byte_1_less_than(compare_byte, label) \ + if_local_byte_1_less_than_ID, \ + compare_byte, \ + label, + +/*============================================================================= +// name: if_local_byte_1_less_than_random_seed +// command id: 85 +// info: if chr->flags byte value < chr->random, goto label +//============================================================================= +// note: chr->random must be pre-generated by command 33 before comparing. this +// is a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define if_local_byte_1_less_than_random_seed_ID 0x85 +#define if_local_byte_1_less_than_random_seed_LENGTH 0x02 +#define if_local_byte_1_less_than_random_seed(label) \ + if_local_byte_1_less_than_random_seed_ID, \ + label, + +/*============================================================================= +// name: local_byte_2_set +// command id: 86 +// info: set chr->flags2 byte value to byte argument +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_2_set_ID 0x86 +#define local_byte_2_set_LENGTH 0x02 +#define local_byte_2_set(set_byte) \ + local_byte_2_set_ID, \ + set_byte, + +/*============================================================================= +// name: local_byte_2_add +// command id: 87 +// info: add byte argument to chr->flags2 byte value +//============================================================================= +// note: argument is unsigned, add value is clamped at 0xFF (255 dec). this is +// a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define local_byte_2_add_ID 0x87 +#define local_byte_2_add_LENGTH 0x02 +#define local_byte_2_add(add_byte) \ + local_byte_2_add_ID, \ + add_byte, + +/*============================================================================= +// name: local_byte_2_subtract +// command id: 88 +// info: subtract byte argument from chr->flags2 byte value +//============================================================================= +// note: argument is unsigned, subtract value is clamped at 0. this is a private +// byte that is stored in chr struct. it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_2_subtract_ID 0x88 +#define local_byte_2_subtract_LENGTH 0x02 +#define local_byte_2_subtract(subtract_byte) \ + local_byte_2_subtract_ID, \ + subtract_byte, + +/*============================================================================= +// name: if_local_byte_2_less_than +// command id: 89 +// info: if chr->flags2 byte value < byte argument, goto label +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define if_local_byte_2_less_than_ID 0x89 +#define if_local_byte_2_less_than_LENGTH 0x03 +#define if_local_byte_2_less_than(compare_byte, label) \ + if_local_byte_2_less_than_ID, \ + compare_byte, \ + label, + +/*============================================================================= +// name: if_local_byte_2_less_than_random_seed +// command id: 8A +// info: if chr->flags2 byte value < chr->random, goto label +//============================================================================= +// note: chr->random must be pre-generated by command 33 before comparing. this +// is a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define if_local_byte_2_less_than_random_seed_ID 0x8A +#define if_local_byte_2_less_than_random_seed_LENGTH 0x02 +#define if_local_byte_2_less_than_random_seed(label) \ + if_local_byte_2_less_than_random_seed_ID, \ + label, + +/*============================================================================= +// name: guard_set_hearing_scale +// command id: 8B +// info: set guard's hearing scale - the higher the value, the further away guard +// can hear bond's gunfire +//============================================================================= +// note: sets to chr->hearingscale. default value is 0x03E8 (1000 dec). argument +// is converted to float and divided by 1000 before setting to hearingscale +//===========================================================================*/ +#define guard_set_hearing_scale_ID 0x8B +#define guard_set_hearing_scale_LENGTH 0x03 +#define guard_set_hearing_scale(hearing_scale) \ + guard_set_hearing_scale_ID, \ + chararray16(hearing_scale), + +/*============================================================================= +// name: guard_set_vision_range +// command id: 8C +// info: set guard's vision range - the smaller the value, the longer the guard +// takes to detect bond with command 32. does not affect firing distance +//============================================================================= +// note: sets to chr->visionrange. default value is 0x0064 (100 dec). argument +// is unsigned and converted to float before setting to hearingscale +//===========================================================================*/ +#define guard_set_vision_range_ID 0x8C +#define guard_set_vision_range_LENGTH 0x02 +#define guard_set_vision_range(vision_range) \ + guard_set_vision_range_ID, \ + vision_range, + +/*============================================================================= +// name: guard_set_grenade_probability +// command id: 8D +// info: set guard's grenade probability - used for rng comparison by command 1A. +// the higher the value, the likelyhood of guard throwing a grenade +//============================================================================= +// note: sets to chr->grenadeprob - 0 by default. argument is unsigned. the only +// way to make guards throw grenades is by using this command or assigning setup +// object 0x12 to chr +//===========================================================================*/ +#define guard_set_grenade_probability_ID 0x8D +#define guard_set_grenade_probability_LENGTH 0x02 +#define guard_set_grenade_probability(grenade_prob) \ + guard_set_grenade_probability_ID, \ + grenade_prob, + +/*============================================================================= +// name: guard_set_chr_num +// command id: 8E +// info: set guard's chr num +//============================================================================= +// note: sets to chr->chrnum - commonly used for respawning guards +//===========================================================================*/ +#define guard_set_chr_num_ID 0x8E +#define guard_set_chr_num_LENGTH 0x02 +#define guard_set_chr_num(chr_num) \ + guard_set_chr_num_ID, \ + chr_num, + +/*============================================================================= +// name: guard_set_health_total +// command id: 8F +// info: set guard's total health - the higher the value, the more shots needed +// to kill guard. +//============================================================================= +// note: sets to chr->maxdamage. default health is 4.0f (0x0028/40 dec for argument). +// argument is converted to float and divided by 10 before setting to maxdamage. +// if difficulty mode 007 is active, command will use 007 health modifier +//===========================================================================*/ +#define guard_set_health_total_ID 0x8F +#define guard_set_health_total_LENGTH 0x03 +#define guard_set_health_total(total_health) \ + guard_set_health_total_ID, \ + chararray16(total_health), + +/*============================================================================= +// name: guard_set_armour +// command id: 90 +// info: set guard's armour value - the higher the value, the higher the armour. +// armoured guards will not show hit reactions. they also don't instantly die +// from explosions, instead taking damaged based on how close they are to explosions +// like bond. to any setup designers reading this, please use armour sparingly! +//============================================================================= +// note: subtracts from chr->damage - negative damage means guard has armour. +// instead of storing armour as a separate chr variable, we reuse the current +// damage and read negative damage as armour. technically this command should +// be titled 'guard_remove_damage' but its used mostly for adding armour to guards. +// argument is converted to float and divided by 10 before subtracting chr->damage. +// if difficulty mode 007 is active, command will use 007 health modifier. +// argument is unsigned - 0xFFFF will be set to 6553.5f armour, or -6553.5f damage +//===========================================================================*/ +#define guard_set_armour_ID 0x90 +#define guard_set_armour_LENGTH 0x03 +#define guard_set_armour(armour_value) \ + guard_set_armour_ID, \ + chararray16(armour_value), + +/*============================================================================= +// name: guard_set_speed_rating +// command id: 91 +// info: set guard's speed rating - controls how quickly the guard animates. +//============================================================================= +// note: sets to chr->speedrating. default speed is 0 - argument is signed. +// negative values will make guard animate slower - this affects firing animations. +// command does not use 007 reaction speed modifier. do not use values above/below +// 100 or it may crash +//===========================================================================*/ +#define guard_set_speed_rating_ID 0x91 +#define guard_set_speed_rating_LENGTH 0x02 +#define guard_set_speed_rating(speed_rating) \ + guard_set_speed_rating_ID, \ + speed_rating, + +/*============================================================================= +// name: guard_set_argh_rating +// command id: 92 +// info: set guard's argh rating - controls how quickly the guard recovers from +// being shot. range is -100 to 100 (100 show almost no hit reaction) +//============================================================================= +// note: sets to chr->arghrating. default value is 0 - argument is signed. +// negative values will make guard animate slower - this affects firing animations. +// command does not use 007 reaction speed modifier +//===========================================================================*/ +#define guard_set_argh_rating_ID 0x92 +#define guard_set_argh_rating_LENGTH 0x02 +#define guard_set_argh_rating(speed_rating) \ + guard_set_argh_rating_ID, \ + speed_rating, + +/*============================================================================= +// name: guard_set_accuracy_rating +// command id: 93 +// info: set guard's accuracy rating - controls how accurately the guard fires +// their weapon +//============================================================================= +// note: sets to chr->accuracyrating. default value is 0 and ranges from -100 +// to 100, argument is signed byte. command does not use 007 accuracy modifier +//===========================================================================*/ +#define guard_set_accuracy_rating_ID 0x93 +#define guard_set_accuracy_rating_LENGTH 0x02 +#define guard_set_accuracy_rating(accuracy_rating) \ + guard_set_accuracy_rating_ID, \ + accuracy_rating, + +/*============================================================================= +// name: guard_bitfield_set_on +// command id: 94 +// info: set chr->BITFIELD on +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists. can be used by obj ai lists, obj lists +// are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_bitfield_set_on_ID 0x94 +#define guard_bitfield_set_on_LENGTH 0x02 +#define guard_bitfield_set_on(bitfield) \ + guard_bitfield_set_on_ID, \ + bitfield, + +/*============================================================================= +// name: guard_bitfield_set_off +// command id: 95 +// info: set chr->BITFIELD off +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists. can be used by obj ai lists, obj lists +// are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_bitfield_set_off_ID 0x95 +#define guard_bitfield_set_off_LENGTH 0x02 +#define guard_bitfield_set_off(bitfield) \ + guard_bitfield_set_off_ID, \ + bitfield, + +/*============================================================================= +// name: if_guard_bitfield_is_set_on +// command id: 96 +// info: if bits is set on in chr->BITFIELD, goto label +//============================================================================= +// note: can be used by obj ai lists, obj lists are free to utilize the entire +// spectrum of flags +//===========================================================================*/ +#define if_guard_bitfield_is_set_on_ID 0x96 +#define if_guard_bitfield_is_set_on_LENGTH 0x03 +#define if_guard_bitfield_is_set_on(bitfield, label) \ + if_guard_bitfield_is_set_on_ID, \ + bitfield, \ + label, + +/*============================================================================= +// name: chr_bitfield_set_on +// command id: 97 +// info: set chr->BITFIELD on +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists +//===========================================================================*/ +#define chr_bitfield_set_on_ID 0x97 +#define chr_bitfield_set_on_LENGTH 0x03 +#define chr_bitfield_set_on(chr_num, bitfield) \ + chr_bitfield_set_on_ID, \ + chr_num, \ + bitfield, + +/*============================================================================= +// name: chr_bitfield_set_off +// command id: 98 +// info: set chr->BITFIELD off +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists +//===========================================================================*/ +#define chr_bitfield_set_off_ID 0x98 +#define chr_bitfield_set_off_LENGTH 0x03 +#define chr_bitfield_set_off(chr_num, bitfield) \ + chr_bitfield_set_off_ID, \ + chr_num, \ + bitfield, + +/*============================================================================= +// name: if_chr_bitfield_is_set_on +// command id: 99 +// info: if bits is set on in chr->BITFIELD, goto label +//===========================================================================*/ +#define if_chr_bitfield_is_set_on_ID 0x99 +#define if_chr_bitfield_is_set_on_LENGTH 0x04 +#define if_chr_bitfield_is_set_on(chr_num, bitfield, label) \ + if_chr_bitfield_is_set_on_ID, \ + chr_num, \ + bitfield, \ + label, + +/*============================================================================= +// name: objective_bitfield_set_on +// command id: 9A +// info: set bits in objective bitfield on +//============================================================================= +// note: can be used to store a mission unique objective flag, which can be linked +// to mission objectives. it can also be used to store miscellaneous flags used +// by other ai lists. if a mission objective is changed while in third person, +// it will not be updated on the briefing page - all mission objectives status +// are locked while in third person +//===========================================================================*/ +#define objective_bitfield_set_on_ID 0x9A +#define objective_bitfield_set_on_LENGTH 0x05 +#define objective_bitfield_set_on(bitfield) \ + objective_bitfield_set_on_ID, \ + chararray32(bitfield) + +/*============================================================================= +// name: objective_bitfield_set_off +// command id: 9B +// info: set bits in objective bitfield off +//============================================================================= +// note: can be used to store a mission unique objective flag, which can be linked +// to mission objectives. it can also be used to store miscellaneous flags used +// by other ai lists. if a mission objective is changed while in third person, +// it will not be updated on the briefing page - all mission objectives status +// are locked while in third person +//===========================================================================*/ +#define objective_bitfield_set_off_ID 0x9B +#define objective_bitfield_set_off_LENGTH 0x05 +#define objective_bitfield_set_off(bitfield) \ + objective_bitfield_set_off_ID, \ + chararray32(bitfield) + +/*============================================================================= +// name: if_objective_bitfield_is_set_on +// command id: 9C +// info: if bits in objective bitfield are set on, goto label +//============================================================================= +// note: can check multiple flags at once +//===========================================================================*/ +#define if_objective_bitfield_is_set_on_ID 0x9C +#define if_objective_bitfield_is_set_on_LENGTH 0x06 +#define if_objective_bitfield_is_set_on(bitfield, label) \ + if_objective_bitfield_is_set_on_ID, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_flags_set_on +// command id: 9D +// info: set chr->chrflags on +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. command can be +// used by obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_flags_set_on_ID 0x9D +#define guard_flags_set_on_LENGTH 0x05 +#define guard_flags_set_on(bitfield) \ + guard_flags_set_on_ID, \ + chararray32(bitfield), + +/*============================================================================= +// name: guard_flags_set_off +// command id: 9E +// info: set chr->chrflags off +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. can be used by +// obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_flags_set_off_ID 0x9E +#define guard_flags_set_off_LENGTH 0x05 +#define guard_flags_set_off(bitfield) \ + guard_flags_set_off_ID, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_guard_flags_is_set_on +// command id: 9F +// info: if bits is set on in chr->chrflags, goto label +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. can be used by +// obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define if_guard_flags_is_set_on_ID 0x9F +#define if_guard_flags_is_set_on_LENGTH 0x06 +#define if_guard_flags_is_set_on(bitfield, label) \ + if_guard_flags_is_set_on_ID, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: chr_flags_set_on +// command id: A0 +// info: set chr->chrflags on +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define chr_flags_set_on_ID 0xA0 +#define chr_flags_set_on_LENGTH 0x06 +#define chr_flags_set_on(chr_num, bitfield) \ + chr_flags_set_on_ID, \ + chr_num, \ + chararray32(bitfield), + +/*============================================================================= +// name: chr_flags_set_off +// command id: A1 +// info: set chr->chrflags off +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define chr_flags_set_off_ID 0xA1 +#define chr_flags_set_off_LENGTH 0x06 +#define chr_flags_set_off(chr_num, bitfield) \ + chr_flags_set_off_ID, \ + chr_num, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_chr_flags_is_set_on +// command id: A2 +// info: if bits is set on in chr->chrflags, goto label +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define if_chr_flags_is_set_on_ID 0xA2 +#define if_chr_flags_is_set_on_LENGTH 0x07 +#define if_chr_flags_is_set_on(chr_num, bitfield, label) \ + if_chr_flags_is_set_on_ID, \ + chr_num, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: object_flags_1_set_on +// command id: A3 +// info: set object->propflags on +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define object_flags_1_set_on_ID 0xA3 +#define object_flags_1_set_on_LENGTH 0x06 +#define object_flags_1_set_on(object_tag, bitfield) \ + object_flags_1_set_on_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: object_flags_1_set_off +// command id: A4 +// info: set object->propflags off +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define object_flags_1_set_off_ID 0xA4 +#define object_flags_1_set_off_LENGTH 0x06 +#define object_flags_1_set_off(object_tag, bitfield) \ + object_flags_1_set_off_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_object_flags_1_is_set_on +// command id: A5 +// info: if bits is set on in object->propflags, goto label +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define if_object_flags_1_is_set_on_ID 0xA5 +#define if_object_flags_1_is_set_on_LENGTH 0x07 +#define if_object_flags_1_is_set_on(object_tag, bitfield, label) \ + if_object_flags_1_is_set_on_ID, \ + object_tag, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: object_flags_2_set_on +// command id: A6 +// info: set object->propflags2 on +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define object_flags_2_set_on_ID 0xA6 +#define object_flags_2_set_on_LENGTH 0x06 +#define object_flags_2_set_on(object_tag, bitfield) \ + object_flags_2_set_on_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: object_flags_2_set_off +// command id: A7 +// info: set object->propflags2 off +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define object_flags_2_set_off_ID 0xA7 +#define object_flags_2_set_off_LENGTH 0x06 +#define object_flags_2_set_off(object_tag, bitfield) \ + object_flags_2_set_off_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_object_flags_2_is_set_on +// command id: A8 +// info: if bits is set on in object->propflags2, goto label +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define if_object_flags_2_is_set_on_ID 0xA8 +#define if_object_flags_2_is_set_on_LENGTH 0x07 +#define if_object_flags_2_is_set_on(object_tag, bitfield, label) \ + if_object_flags_2_is_set_on_ID, \ + object_tag, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_set_chr_preset +// command id: A9 +// info: set guard->chrpreset1 to chr_preset +//============================================================================= +// note: can be used by obj ai lists +//===========================================================================*/ +#define guard_set_chr_preset_ID 0xA9 +#define guard_set_chr_preset_LENGTH 0x02 +#define guard_set_chr_preset(chr_preset) \ + guard_set_chr_preset_ID, \ + chr_preset, + +/*============================================================================= +// name: chr_set_chr_preset +// command id: AA +// info: set chr->chrpreset1 to chr_preset +//===========================================================================*/ +#define chr_set_chr_preset_ID 0xAA +#define chr_set_chr_preset_LENGTH 0x03 +#define chr_set_chr_preset(chr_num, chr_preset) \ + chr_set_chr_preset_ID, \ + chr_num, \ + chr_preset, + +/*============================================================================= +// name: guard_set_pad_preset +// command id: AB +// info: set guard->padpreset1 to pad_preset +//============================================================================= +// note: can be used by obj ai lists +//===========================================================================*/ +#define guard_set_pad_preset_ID 0xAB +#define guard_set_pad_preset_LENGTH 0x03 +#define guard_set_pad_preset(chr_preset) \ + guard_set_pad_preset_ID, \ + chrarray16(pad_preset), + +/*============================================================================= +// name: chr_set_pad_preset +// command id: AC +// info: set chr->padpreset1 to pad_preset +//===========================================================================*/ +#define chr_set_pad_preset_ID 0xAC +#define chr_set_pad_preset_LENGTH 0x04 +#define chr_set_pad_preset(chr_num, chr_preset) \ + chr_set_pad_preset_ID, \ + chr_num, \ + chrarray16(pad_preset), + +/*============================================================================= +// name: debug_log +// command id: AD +// info: debug comment +//============================================================================= +// note: may have originally printed to stderr on host sgi devkit. command is +// variable length must end with null terminator character '\0' (debug_log_end) +//===========================================================================*/ +#define debug_log_ID 0xAD +#define debug_log_LENGTH 0x32 // max length +#define debug_log \ + debug_log_ID, + +/*============================================================================= +// name: local_timer_reset_start +// command id: AE +// info: reset and start chr->timer60 +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_reset_start_ID 0xAE +#define local_timer_reset_start_LENGTH 0x01 +#define local_timer_reset_start \ + local_timer_reset_start_ID, + +/*============================================================================= +// name: local_timer_reset +// command id: AF +// info: reset chr->timer60 +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_reset_ID 0xAF +#define local_timer_reset_LENGTH 0x01 +#define local_timer_reset \ + local_timer_reset_ID, + +/*============================================================================= +// name: local_timer_stop +// command id: B0 +// info: pauses chr->timer60 (does not reset value) +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_stop_ID 0xB0 +#define local_timer_stop_LENGTH 0x01 +#define local_timer_stop \ + local_timer_stop_ID, + +/*============================================================================= +// name: local_timer_start +// command id: B1 +// info: start chr->timer60 (does not reset value) +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_start_ID 0xB1 +#define local_timer_start_LENGTH 0x01 +#define local_timer_start \ + local_timer_start_ID, + +/*============================================================================= +// name: if_local_timer_has_stopped +// command id: B2 +// info: if chr->timer60 is not active (paused), goto label +//============================================================================= +// note: by default, chr->timer60 is inactive +//===========================================================================*/ +#define if_local_timer_has_stopped_ID 0xB2 +#define if_local_timer_has_stopped_LENGTH 0x02 +#define if_local_timer_has_stopped(label) \ + if_local_timer_has_stopped_ID, \ + label, + +/*============================================================================= +// name: if_local_timer_less_than +// command id: B3 +// info: if chr->timer60 < time60, goto label +//============================================================================= +// note: time60 argument is converted to float from unsigned int and compared. +// chr->timer60 only counts up +//===========================================================================*/ +#define if_local_timer_less_than_ID 0xB3 +#define if_local_timer_less_than_LENGTH 0x05 +#define if_local_timer_less_than(time60, label) \ + if_local_timer_less_than_ID, \ + chararray24(time60), \ + label, + +/*============================================================================= +// name: if_local_timer_greater_than +// command id: B4 +// info: if chr->timer60 > time60, goto label +//============================================================================= +// note: time60 argument is converted to float from unsigned int and compared. +// chr->timer60 only counts up +//===========================================================================*/ +#define if_local_timer_greater_than_ID 0xB4 +#define if_local_timer_greater_than_LENGTH 0x05 +#define if_local_timer_greater_than(time60, label) \ + if_local_timer_greater_than_ID, \ + chararray24(time60), \ + label, + +/*============================================================================= +// name: hud_countdown_show +// command id: B5 +//============================================================================= +// info: shows the hud countdown +//===========================================================================*/ +#define hud_countdown_show_ID 0xB5 +#define hud_countdown_show_LENGTH 0x01 +#define hud_countdown_show \ + hud_countdown_show_ID, + +/*============================================================================= +// name: hud_countdown_hide +// command id: B6 +// info: hides the hud countdown +//============================================================================= +// note: can be used as a hidden global timer for objective logic +//===========================================================================*/ +#define hud_countdown_hide_ID 0xB6 +#define hud_countdown_hide_LENGTH 0x01 +#define hud_countdown_hide \ + hud_countdown_hide_ID, + +/*============================================================================= +// name: hud_countdown_set +// command id: B7 +// info: set the hud countdown +//============================================================================= +// note: to make the timer count up, set to 0 and start timer +//===========================================================================*/ +#define hud_countdown_set_ID 0xB7 +#define hud_countdown_set_LENGTH 0x03 +#define hud_countdown_set(seconds) \ + hud_countdown_set_ID, \ + chararray16(seconds), + +/*============================================================================= +// name: hud_countdown_stop +// command id: B8 +// info: stops the hud countdown +//===========================================================================*/ +#define hud_countdown_stop_ID 0xB8 +#define hud_countdown_stop_LENGTH 0x01 +#define hud_countdown_stop \ + hud_countdown_stop_ID, + +/*============================================================================= +// name: hud_countdown_start +// command id: B9 +// info: start the hud countdown +//===========================================================================*/ +#define hud_countdown_start_ID 0xB9 +#define hud_countdown_start_LENGTH 0x01 +#define hud_countdown_start \ + hud_countdown_start_ID, + +/*============================================================================= +// name: if_hud_countdown_has_stopped +// command id: BA +// info: if hud countdown isn't active (paused), goto label +//============================================================================= +// note: by default, hud countdown is inactive +//===========================================================================*/ +#define if_hud_countdown_has_stopped_ID 0xBA +#define if_hud_countdown_has_stopped_LENGTH 0x02 +#define if_hud_countdown_has_stopped(label) \ + if_hud_countdown_has_stopped_ID, \ + label, + +/*============================================================================= +// name: if_hud_countdown_less_than +// command id: BB +// info: if hud countdown < seconds, goto label +//============================================================================= +// note: if seconds argument is 0, it will only goto label if timer is less than +// zero (counting up). seconds value is unsigned and can't test negative values +//===========================================================================*/ +#define if_hud_countdown_less_than_ID 0xBB +#define if_hud_countdown_less_than_LENGTH 0x04 +#define if_hud_countdown_less_than(seconds, label) \ + if_hud_countdown_less_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_hud_countdown_greater_than +// command id: BC +// info: if hud countdown > seconds, goto label +//============================================================================= +// note: if seconds argument is 0, it will only goto label if timer is greater than +// zero (counting down). seconds value is unsigned and can't test negative values +//===========================================================================*/ +#define if_hud_countdown_greater_than_ID 0xBC +#define if_hud_countdown_greater_than_LENGTH 0x04 +#define if_hud_countdown_greater_than(seconds, label) \ + if_hud_countdown_greater_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: chr_try_spawning_at_pad +// command id: BD +// info: spawn chr at pad, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn chr, do not goto label. if pad is blocked, +// attempt to spawn chr around pad. bitfield uses SPAWN_# defines +//===========================================================================*/ +#define chr_try_spawning_at_pad_ID 0xBD +#define chr_try_spawning_at_pad_LENGTH 0x0C +#define chr_try_spawning_at_pad(body_num, head_num, pad, ai_list, bitfield, label) \ + chr_try_spawning_at_pad_ID, \ + body_num, \ + head_num, \ + chararray16(pad), \ + chararray16(ai_list), \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: chr_try_spawning_next_to_unseen_chr +// command id: BE +// info: spawn a chr next to another chr, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn chr, do not goto label. bitfield uses SPAWN_# defines. +// target chr must still exist in level or else command will crash. command will +// not spawn chr if target chr has been seen before (CHRFLAG_HAS_BEEN_ON_SCREEN) +//===========================================================================*/ +#define chr_try_spawning_next_to_unseen_chr_ID 0xBE +#define chr_try_spawning_next_to_unseen_chr_LENGTH 0x0B +#define chr_try_spawning_next_to_unseen_chr(body_num, head_num, chr_num_target, ai_list, bitfield, label) \ + chr_try_spawning_next_to_unseen_chr_ID, \ + body_num, \ + head_num, \ + chr_num_target, \ + chararray16(ai_list), \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_try_spawning_item +// command id: BF +// info: spawn weapon for guard, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn item/hands occupied, do not goto label. +// spawned prop must have a holding position command within the model file, +// else use conceal flag so guard does not attempt to hold prop +//===========================================================================*/ +#define guard_try_spawning_item_ID 0xBF +#define guard_try_spawning_item_LENGTH 0x09 +#define guard_try_spawning_item(prop_num, item_num, prop_bitfield, label) \ + guard_try_spawning_item_ID, \ + chararray16(prop_num), \ + item_num, \ + chararray32(prop_bitfield), \ + label, + +/*============================================================================= +// name: guard_try_spawning_hat +// command id: C0 +// info: spawn hat for guard, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn item/already have hat, do not goto label. +// spawned hat must have a holding position command within the model file +//===========================================================================*/ +#define guard_try_spawning_hat_ID 0xC0 +#define guard_try_spawning_hat_LENGTH 0x08 +#define guard_try_spawning_hat(prop_num, prop_bitfield, label) \ + guard_try_spawning_hat_ID, \ + chararray16(prop_num), \ + chararray32(prop_bitfield), \ + label, + +/*============================================================================= +// name: chr_try_spawning_clone +// command id: C1 +// info: if guard has clone flag on, spawn a new guard - goto label if successful +//============================================================================= +// note: clone flag is stored in chr->chrflags which is assigned at setup init. +// newly spawned guard is placed in front of original guard +//===========================================================================*/ +#define chr_try_spawning_clone_ID 0xC1 +#define chr_try_spawning_clone_LENGTH 0x05 +#define chr_try_spawning_clone(chr_num, ai_list, label) \ + chr_try_spawning_clone_ID, \ + chr_num, \ + chararray16(ai_list), \ + label, + +/*============================================================================= +// name: text_print_bottom +// command id: C2 +// info: print text slot to bottom left part of screen (where pickup text is located) +//============================================================================= +// note: if text slot is not currently allocated in memory, game will softlock. +// expects string to end with \n character +//===========================================================================*/ +#define text_print_bottom_ID 0xC2 +#define text_print_bottom_LENGTH 0x03 +#define text_print_bottom(text_slot) \ + text_print_bottom_ID, \ + chrarray16(text_slot), + +/*============================================================================= +// name: text_print_top +// command id: C3 +// info: print text slot to top part of screen +//============================================================================= +// note: if text slot is not currently allocated in memory, game will softlock. +// ensure that end of text has a \n character or text background will be misaligned +//===========================================================================*/ +#define text_print_top_ID 0xC3 +#define text_print_top_LENGTH 0x03 +#define text_print_top(text_slot) \ + text_print_top_ID, \ + chrarray16(text_slot), + +/*============================================================================= +// name: sfx_play +// command id: C4 +// info: play a sound effect +//============================================================================= +// note: channel argument range is 0-7. use a channel if you plan on modifying +// sfx volume with commands C5-CA. if you don't plan on doing this, use a invalid +// channel such as -1. this will play the sfx but not bother initializing channel +// data for commands C5-CA. if a sfx is already occupying channel, retriggering +// sfx will overwrite old sfx slot data and no longer can be used by commands C5-CA +//===========================================================================*/ +#define sfx_play_ID 0xC4 +#define sfx_play_LENGTH 0x04 +#define sfx_play(sound_num, channel_num) \ + sfx_play_ID, \ + chrarray16(sound_num), \ + channel_num, + +/*============================================================================= +// name: sfx_emit_from_object +// command id: C5 +// info: set a occupied sfx channel to emit from a tagged object +//============================================================================= +// note: panning is not calculated (mono), only affects volume. decay argument +// is number of ticks to fully transition from max volume to target volume +//===========================================================================*/ +#define sfx_emit_from_object_ID 0xC5 +#define sfx_emit_from_object_LENGTH 0x05 +#define sfx_emit_from_object(channel_num, object_tag, vol_decay_time60) \ + sfx_emit_from_object_ID, \ + channel_num, \ + object_tag, \ + chararray16(vol_decay_time60), + +/*============================================================================= +// name: sfx_emit_from_pad +// command id: C6 +// info: set a occupied sfx channel to emit from a pad +//============================================================================= +// note: panning is not calculated (mono), only affects volume. decay argument +// is number of ticks to fully transition from max volume to target volume +//===========================================================================*/ +#define sfx_emit_from_pad_ID 0xC6 +#define sfx_emit_from_pad_LENGTH 0x06 +#define sfx_emit_from_pad(channel_num, pad, vol_decay_time60) \ + sfx_emit_from_pad_ID, \ + channel_num, \ + chararray16(pad), \ + chararray16(vol_decay_time60), + +/*============================================================================= +// name: sfx_set_channel_volume +// command id: C7 +// info: set occupied sfx channel's volume +//============================================================================= +// note: time argument is number of ticks to fade between current volume to +// target volume. volume argument is signed. range is 0x0000-0x7FFF +//===========================================================================*/ +#define sfx_set_channel_volume_ID 0xC7 +#define sfx_set_channel_volume_LENGTH 0x06 +#define sfx_set_channel_volume(channel_num, target_volume, transition_time60) \ + sfx_set_channel_volume_ID, \ + channel_num, \ + chararray16(target_volume), \ + chararray16(transition_time60), + +/*============================================================================= +// name: sfx_fade_channel_volume +// command id: C8 +// info: fade out occupied sfx channel's volume by volume percent +//============================================================================= +// note: time argument is number of ticks to fade between current volume to +// target volume. volume argument is signed. range is 0x0000-0x7FFF (0-100%) +//===========================================================================*/ +#define sfx_fade_channel_volume_ID 0xC8 +#define sfx_fade_channel_volume_LENGTH 0x06 +#define sfx_fade_channel_volume(channel_num, fade_volume_percent, fade_time60) \ + sfx_fade_channel_volume_ID, \ + channel_num, \ + chararray16(fade_volume_percent), \ + chararray16(fade_time60), + +/*============================================================================= +// name: sfx_stop_channel +// command id: C9 +// info: stop playing sfx in occupied sfx channel +//===========================================================================*/ +#define sfx_stop_channel_ID 0xC9 +#define sfx_stop_channel_LENGTH 0x02 +#define sfx_stop_channel(channel_num) \ + sfx_stop_channel_ID, \ + channel_num, + +/*============================================================================= +// name: if_sfx_channel_volume_less_than +// command id: CA +// info: if sfx channel's volume is < volume argument, goto label +//============================================================================= +// note: if sfx channel is free (no audio playing), goto label. volume argument +// is signed. range is 0x0000-0x7FFF +//===========================================================================*/ +#define if_sfx_channel_volume_less_than_ID 0xCA +#define if_sfx_channel_volume_less_than_LENGTH 0x05 +#define if_sfx_channel_volume_less_than(channel_num, volume, label) \ + if_sfx_channel_volume_less_than_ID, \ + channel_num, \ + chararray16(volume), \ + label, + +/*============================================================================= +// name: vehicle_start_path +// command id: CB +// info: makes vehicle follow a predefined path within setup +//===========================================================================*/ +#define vehicle_start_path_ID 0xCB +#define vehicle_start_path_LENGTH 0x02 +#define vehicle_start_path(path_num) \ + vehicle_start_path_ID, \ + path_num, + +/*============================================================================= +// name: vehicle_speed +// command id: CC +// info: sets vehicle speed, usually paired with command CB +//============================================================================= +// note: arguments are unsigned. 1000 units = 1 meter per second travel speed. +// acceleration_time60 is number of game ticks to reach top speed (lower = faster) +//===========================================================================*/ +#define vehicle_speed_ID 0xCC +#define vehicle_speed_LENGTH 0x05 +#define vehicle_speed(top_speed, acceleration_time60) \ + vehicle_speed_ID, \ + chararray16(top_speed), \ + chararray16(acceleration_time60), + +/*============================================================================= +// name: aircraft_rotor_speed +// command id: CD +// info: sets aircraft's rotor speed +//============================================================================= +// note: arguments are unsigned. argument scale is 10 units per degree, per tick. +// acceleration_time60 is number of game ticks to reach top speed (lower = faster) +//===========================================================================*/ +#define aircraft_rotor_speed_ID 0xCD +#define aircraft_rotor_speed_LENGTH 0x05 +#define aircraft_rotor_speed(rotor_speed, acceleration_time60) \ + aircraft_rotor_speed_ID, \ + chararray16(rotor_speed), \ + chararray16(acceleration_time60), + +/*============================================================================= +// name: if_camera_is_in_intro +// command id: CE +// info: if camera mode equal to INTRO_CAM/FADESWIRL_CAM (viewing mission intro), +// goto label +//============================================================================= +// note: if setup lacks intro camera structs, intro will be skipped +//===========================================================================*/ +#define if_camera_is_in_intro_ID 0xCE +#define if_camera_is_in_intro_LENGTH 0x02 +#define if_camera_is_in_intro(label) \ + if_camera_is_in_intro_ID, \ + label, + +/*============================================================================= +// name: if_camera_is_in_bond_swirl +// command id: CF +// info: if camera mode equal to SWIRL_CAM (moving to back of bond's head), goto label +//============================================================================= +// note: if setup lacks swirl points, intro swirl will be skipped +//===========================================================================*/ +#define if_camera_is_in_bond_swirl_ID 0xCF +#define if_camera_is_in_bond_swirl_LENGTH 0x02 +#define if_camera_is_in_bond_swirl(label) \ + if_camera_is_in_bond_swirl_ID, \ + label, + +/*============================================================================= +// name: tv_change_screen_bank +// command id: D0 +// info: change the screen bank of a tagged tv monitor +//============================================================================= +// note: if tagged object has multiple screens, use screen index argument to set. +// if tagged object has one screen, screen index is ignored +//===========================================================================*/ +#define tv_change_screen_bank_ID 0xD0 +#define tv_change_screen_bank_LENGTH 0x04 +#define tv_change_screen_bank(object_tag, screen_index, screen_bank) \ + tv_change_screen_bank_ID, \ + object_tag, \ + screen_index, \ + screen_bank, + +/*============================================================================= +// name: if_bond_in_tank +// command id: D1 +// info: if bond is controlling tank, goto label +//===========================================================================*/ +#define if_bond_in_tank_ID 0xD1 +#define if_bond_in_tank_LENGTH 0x02 +#define if_bond_in_tank(label) \ + if_bond_in_tank_ID, \ + label, + +/*============================================================================= +// name: exit_level +// command id: D2 +// info: exits the level +//============================================================================= +// note: recommend not to use this command, instead goto GLIST_EXIT_LEVEL for +// exit cutscene list. retail game has a glitch with hires mode that needs to +// execute this command in a loop, check cuba's 1000 list +//===========================================================================*/ +#define exit_level_ID 0xD2 +#define exit_level_LENGTH 0x01 +#define exit_level \ + exit_level_ID, + +/*============================================================================= +// name: camera_return_to_bond +// command id: D3 +// info: switch back to first person view +//============================================================================= +// note: unused command, never used in retail game. tagged items within inventory +// will become invalid after command - only weapons are safe. command must have +// 3 ai_sleep commands before executing this command or else engine will crash +// on console (use camera_transition_to_bond). mission time is resumed on return +// to first person view +//===========================================================================*/ +#define camera_return_to_bond_ID 0xD3 +#define camera_return_to_bond_LENGTH 0x01 +#define camera_return_to_bond \ + camera_return_to_bond_ID, + +/*============================================================================= +// name: camera_look_at_bond_from_pad +// command id: D4 +// info: change view to pad and look at bond +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// mission time is paused while in third person +//===========================================================================*/ +#define camera_look_at_bond_from_pad_ID 0xD4 +#define camera_look_at_bond_from_pad_LENGTH 0x03 +#define camera_look_at_bond_from_pad(pad) \ + camera_look_at_bond_from_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: camera_switch +// command id: D5 +// info: change view to tagged camera's position and rotation +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// only look at bond if flag is set. unused flag may have separated look at bond +// as x/y flags instead of a single flag - for retail unused flag does nothing. +// mission time is paused while in third person +//===========================================================================*/ +#define camera_switch_ID 0xD5 +#define camera_switch_LENGTH 0x06 +#define camera_switch(object_tag, look_at_bond_flag, unused_flag) \ + camera_switch_ID, \ + object_tag, \ + chararray16(look_at_bond_flag), \ + chararray16(unused_flag), + +/*============================================================================= +// name: if_bond_y_pos_less_than +// command id: D6 +// info: if bond's y axis position < position argument, goto label +//============================================================================= +// note: checks if bond's y axis is below the provided argument. command uses +// world units. argument is signed and scale is 1:1 to in-game position. +// bond's point of view is accounted for by command (like debug manpos) +//===========================================================================*/ +#define if_bond_y_pos_less_than_ID 0xD6 +#define if_bond_y_pos_less_than_LENGTH 0x04 +#define if_bond_y_pos_less_than(y_pos, label) \ + if_bond_y_pos_less_than_ID, \ + chararray16(y_pos), \ + label, + +/*============================================================================= +// name: hud_hide_and_lock_controls_and_pause_mission_time +// command id: D7 +// info: hide hud elements, lock player control and stop mission time. +// command is commonly used for exit mission lists +//============================================================================= +// note: argument flag will not hide element on command execution. this is +// needed for dialog/hud countdown while in cinema mode. flags can be combined +// together to show multiple elements. sequential executions of D7 can be used +// to hide more elements, but once an element has been hidden it cannot be shown +// again until command D8 is executed. bond can take damage while in locked state. +// use HUD_# flags for bitfield argument +//===========================================================================*/ +#define hud_hide_and_lock_controls_and_pause_mission_time_ID 0xD7 +#define hud_hide_and_lock_controls_and_pause_mission_time_LENGTH 0x02 +#define hud_hide_and_lock_controls_and_pause_mission_time(bitfield) \ + hud_hide_and_lock_controls_and_pause_mission_time_ID, \ + bitfield, + +/*============================================================================= +// name: hud_show_all_and_unlock_controls_and_resume_mission_time +// command id: D8 +// info: show all hud elements, unlock player control and resume mission time +//============================================================================= +// note: should only be executed after D7 command +//===========================================================================*/ +#define hud_show_all_and_unlock_controls_and_resume_mission_time_ID 0xD8 +#define hud_show_all_and_unlock_controls_and_resume_mission_time_LENGTH 0x01 +#define hud_show_all_and_unlock_controls_and_resume_mission_time \ + hud_show_all_and_unlock_controls_and_resume_mission_time_ID, + +/*============================================================================= +// name: chr_try_teleporting_to_pad +// command id: D9 +// info: teleport chr to pad, goto label if successful +//===========================================================================*/ +#define chr_try_teleporting_to_pad_ID 0xD9 +#define chr_try_teleporting_to_pad_LENGTH 0x05 +#define chr_try_teleporting_to_pad(chr_num, pad, label) \ + chr_try_teleporting_to_pad_ID, \ + chr_num, \ + chrarray16(pad), \ + label, + +/*============================================================================= +// name: screen_fade_to_black +// command id: DA +// info: fades the screen out to black +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define screen_fade_to_black_ID 0xDA +#define screen_fade_to_black_LENGTH 0x01 +#define screen_fade_to_black \ + screen_fade_to_black_ID, + +/*============================================================================= +// name: screen_fade_from_black +// command id: DB +// info: fades the screen from black +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define screen_fade_from_black_ID 0xDB +#define screen_fade_from_black_LENGTH 0x01 +#define screen_fade_from_black \ + screen_fade_from_black_ID, + +/*============================================================================= +// name: if_screen_fade_completed +// command id: DC +// info: when screen fade has completed (from/to black), goto label +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define if_screen_fade_completed_ID 0xDC +#define if_screen_fade_completed_LENGTH 0x02 +#define if_screen_fade_completed(label) \ + if_screen_fade_completed_ID, \ + label, + +/*============================================================================= +// name: chr_hide_all +// command id: DD +// info: hide all characters in level - including bond's third person model. +// execute this before switching to exit camera or bond will disappear +//============================================================================= +// note: hidden characters will halt their ai list execution until unhidden +//===========================================================================*/ +#define chr_hide_all_ID 0xDD +#define chr_hide_all_LENGTH 0x01 +#define chr_hide_all \ + chr_hide_all_ID, + +/*============================================================================= +// name: chr_show_all +// command id: DE +// info: show all characters previously hidden by command DD +//===========================================================================*/ +#define chr_show_all_ID 0xDE +#define chr_show_all_LENGTH 0x01 +#define chr_show_all \ + chr_show_all_ID, + +/*============================================================================= +// name: door_open_instant +// command id: DF +// info: instantly open tagged door +//============================================================================= +// note: mostly used for cutscenes, doesn't trigger door opening sfx. open tagged +// door even if locked +//===========================================================================*/ +#define door_open_instant_ID 0xDF +#define door_open_instant_LENGTH 0x02 +#define door_open_instant(object_tag) \ + door_open_instant_ID, \ + object_tag, + +/*============================================================================= +// name: chr_remove_item_in_hand +// command id: E0 +// info: remove the item held by hand index +//============================================================================= +// note: does not drop item, instead clears holding item flag for hand index +//===========================================================================*/ +#define chr_remove_item_in_hand_ID 0xE0 +#define chr_remove_item_in_hand_LENGTH 0x03 +#define chr_remove_item_in_hand(chr_num, hand_index) \ + chr_remove_item_in_hand_ID, \ + chr_num, \ + hand_index, + +/*============================================================================= +// name: if_number_of_active_players_less_than +// command id: E1 +// info: if the number of active players < argument, goto label +//============================================================================= +// note: single player always has a total of active players set to 1 +//===========================================================================*/ +#define if_number_of_active_players_less_than_ID 0xE1 +#define if_number_of_active_players_less_than_LENGTH 0x03 +#define if_number_of_active_players_less_than(number, label) \ + if_number_of_active_players_less_than_ID, \ + number, \ + label, + +/*============================================================================= +// name: if_bond_item_total_ammo_less_than +// command id: E2 +// info: if bond's total ammo for item < ammo_total argument, goto label +//============================================================================= +// note: ammo_total argument is signed. total ammo also accounts for loaded gun +//===========================================================================*/ +#define if_bond_item_total_ammo_less_than_ID 0xE2 +#define if_bond_item_total_ammo_less_than_LENGTH 0x04 +#define if_bond_item_total_ammo_less_than(item_num, ammo_total, label) \ + if_bond_item_total_ammo_less_than_ID, \ + item_num, \ + ammo_total, \ + label, + +/*============================================================================= +// name: bond_equip_item +// command id: E3 +// info: forces bond to equip an item - only works in first person +//============================================================================= +// note: can be used for any item, even if bond doesn't have it in inventory +//===========================================================================*/ +#define bond_equip_item_ID 0xE3 +#define bond_equip_item_LENGTH 0x02 +#define bond_equip_item(item_num) \ + bond_equip_item_ID, \ + item_num, + +/*============================================================================= +// name: bond_equip_item_cinema +// command id: E4 +// info: forces bond to equip an item - only works in third person (cinema) +//============================================================================= +// note: can be used for any item, even if bond doesn't have it in inventory +//===========================================================================*/ +#define bond_equip_item_cinema_ID 0xE4 +#define bond_equip_item_cinema_LENGTH 0x02 +#define bond_equip_item_cinema(item_num) \ + bond_equip_item_cinema_ID, \ + item_num, + +/*============================================================================= +// name: bond_set_locked_velocity +// command id: E5 +// info: forces bond to move in X/Z direction +//============================================================================= +// note: only works when bond has been locked by command D7. used for dam jump. +// argument is signed and scale is 1:1 to in-game position. speed is number of +// world units per tick +//===========================================================================*/ +#define bond_set_locked_velocity_ID 0xE5 +#define bond_set_locked_velocity_LENGTH 0x03 +#define bond_set_locked_velocity(x_speed60, z_speed60) \ + bond_set_locked_velocity_ID, \ + x_speed60, \ + z_speed60, + +/*============================================================================= +// name: if_object_in_room_with_pad +// command id: E6 +// info: if tagged object in the same room with pad, goto label +//===========================================================================*/ +#define if_object_in_room_with_pad_ID 0xE6 +#define if_object_in_room_with_pad_LENGTH 0x05 +#define if_object_in_room_with_pad(object_tag, pad, label) \ + if_object_in_room_with_pad_ID, \ + object_tag, \ + chrarray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_is_firing_and_using_180_range_flag +// command id: E7 +// info: if guard is in firing state (ACT_ATTACK) and TARGET_180_RANGE is set, goto label +//===========================================================================*/ +#define if_guard_is_firing_and_using_180_range_flag_ID 0xE7 +#define if_guard_is_firing_and_using_180_range_flag_LENGTH 0x02 +#define if_guard_is_firing_and_using_180_range_flag(label) \ + if_guard_is_firing_and_using_180_range_flag_ID, \ + label, + +/*============================================================================= +// name: if_guard_is_firing +// command id: E8 +// info: if guard is in firing state (ACT_ATTACK), goto label +//===========================================================================*/ +#define if_guard_is_firing_ID 0xE8 +#define if_guard_is_firing_LENGTH 0x02 +#define if_guard_is_firing(label) \ + if_guard_is_firing_ID, \ + label, + +/*============================================================================= +// name: switch_fog_instantly +// command id: E9 +// info: instantly switch fog to the next fog's slot +//============================================================================= +// note: this command can't be stopped after executing. level must have a fog +// assigned or will crash! +//===========================================================================*/ +#define gas_leak_and_switch_fog_ID 0xE9 +#define gas_leak_and_switch_fog_LENGTH 0x01 +#define gas_leak_and_switch_fog \ + gas_leak_and_switch_fog_ID, + +/*============================================================================= +// name: trigger_fade_and_exit_level_on_button_press +// command id: EA +// info: if player pressed any button, fade to black and exit level +//============================================================================= +// note: this command activates a state where game will fade to black when button +// input is detected from controller 1. command does not pause mission time +//===========================================================================*/ +#define trigger_fade_and_exit_level_on_button_press_ID 0xEA +#define trigger_fade_and_exit_level_on_button_press_LENGTH 0x01 +#define trigger_fade_and_exit_level_on_button_press \ + trigger_fade_and_exit_level_on_button_press_ID, + +/*============================================================================= +// name: if_bond_is_dead +// command id: EB +// info: if bond has died/been killed, goto label +//===========================================================================*/ +#define if_bond_is_dead_ID 0xEB +#define if_bond_is_dead_LENGTH 0x02 +#define if_bond_is_dead(label) \ + if_bond_is_dead_ID, \ + label, + +/*============================================================================= +// name: bond_disable_damage_and_pickups +// command id: EC +// info: disables bond damage and ability to pick up items +//============================================================================= +// note: commonly used for level exit ai lists - prevents bond dying after +// triggering exit cutscene. use command F3 to check if flag is set on +//===========================================================================*/ +#define bond_disable_damage_and_pickups_ID 0xEC +#define bond_disable_damage_and_pickups_LENGTH 0x01 +#define bond_disable_damage_and_pickups \ + bond_disable_damage_and_pickups_ID, + +/*============================================================================= +// name: bond_hide_weapons +// command id: ED +// info: set bond's left/right weapons to be invisible +//===========================================================================*/ +#define bond_hide_weapons_ID 0xED +#define bond_hide_weapons_LENGTH 0x01 +#define bond_hide_weapons \ + bond_hide_weapons_ID, + +/*============================================================================= +// name: camera_orbit_pad +// command id: EE +// info: change view to orbit a pad with set speed +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// arguments: +// lat_distance: camera distance from pad, 100 units per meter. argument is unsigned +// vert_distance: camera distance from pad, 100 units per meter. argument is signed +// orbit_speed: speed to orbit around pad, argument is signed. unit format uses +// compass direction like target commands (14-17). generally stick +// to a low range as it is used for delta timing (0100-FF00) +// pad: pad for camera to target and orbit around +// y_pos_offset: offset the relative y position for pad (boom/jib), argument is signed +// initial_rotation: uses compass direction like target commands (14-17) +// but inverted - hex N: 0000 E: C000 S: 8000: W: 4000 +// mission time is paused while in third person +//===========================================================================*/ +#define camera_orbit_pad_ID 0xEE +#define camera_orbit_pad_LENGTH 0x0D +#define camera_orbit_pad(lat_distance, vert_distance, orbit_speed60, pad, y_pos_offset, initial_rotation) \ + camera_orbit_pad_ID, \ + chararray16(lat_distance), \ + chararray16(vert_distance), \ + chararray16(orbit_speed60), \ + chararray16(pad), \ + chararray16(y_pos_offset), \ + chararray16(initial_rotation), + +/*============================================================================= +// name: credits_roll +// command id: EF +// info: trigger credits crawl +//============================================================================= +// note: credits text and positions are stored in setup intro struct +//===========================================================================*/ +#define credits_roll_ID 0xEF +#define credits_roll_LENGTH 0x01 +#define credits_roll \ + credits_roll_ID, + +/*============================================================================= +// name: if_credits_has_completed +// command id: F0 +// info: credits crawl has finished, goto label +//===========================================================================*/ +#define if_credits_has_completed_ID 0xF0 +#define if_credits_has_completed_LENGTH 0x02 +#define if_credits_has_completed(label) \ + if_credits_has_completed_ID, \ + label, + +/*============================================================================= +// name: if_objective_all_completed +// command id: F1 +// info: if all objectives for current difficulty has been completed, goto label +//============================================================================= +// note: uses objective difficulty settings within setup, briefing file settings +// are not referenced. ensure both setup and briefing files are consistent +//===========================================================================*/ +#define if_objective_all_completed_ID 0xF1 +#define if_objective_all_completed_LENGTH 0x02 +#define if_objective_all_completed(label) \ + if_objective_all_completed_ID, \ + label, + +/*============================================================================= +// name: if_folder_actor_is_equal +// command id: F2 +// info: if current bond equal to folder actor index, goto label +//============================================================================= +// note: in retail release only index 0 works. originally this would have checked +// which bond (brosnan/connery/moore/dalton) is currently used, with each briefing +// folder using a different bond likeness in-game. however rare didn't have the +// license to use the other actor's faces so this feature was removed. +// command is only used for cuba (credits) +//===========================================================================*/ +#define if_folder_actor_is_equal_ID 0xF2 +#define if_folder_actor_is_equal_LENGTH 0x03 +#define if_folder_actor_is_equal(bond_actor_index, label) \ + if_folder_actor_is_equal_ID, \ + bond_actor_index, \ + label, + +/*============================================================================= +// name: if_bond_damage_and_pickups_disabled +// command id: F3 +// info: if bond damage and ability to pick up items disabled, goto label +//============================================================================= +// note: used to check when bond has exited level, usually to stop guards from +// spawning during mission cinema. use command EC to set state on +//===========================================================================*/ +#define if_bond_damage_and_pickups_disabled_ID 0xF3 +#define if_bond_damage_and_pickups_disabled_LENGTH 0x02 +#define if_bond_damage_and_pickups_disabled(label) \ + if_bond_damage_and_pickups_disabled_ID, \ + label, + +/*============================================================================= +// name: music_xtrack_play +// command id: F4 +// info: play level's x track for duration +//============================================================================= +// note: seconds arguments are unsigned, available music slots range is 0-3. +// stopped duration argument is used by command F5. when using F5 to stop a music +// slot, the xtrack will continue to play until this or total time reaches 0. +// if you don't want this to happen, set the seconds stopped duration argument to 0 +//===========================================================================*/ +#define music_xtrack_play_ID 0xF4 +#define music_xtrack_play_LENGTH 0x04 +#define music_xtrack_play(music_slot, seconds_stopped_duration, seconds_total_duration) \ + music_xtrack_play_ID, \ + music_slot, \ + seconds_stopped_duration, \ + seconds_total_duration, + +/*============================================================================= +// name: music_xtrack_stop +// command id: F5 +// info: stop currently playing x track in slot +//============================================================================= +// note: music slots range is 0-3. use slot -1 to stop all xtrack slots instantly. +// when stopping a music slot, it will let the track continue to play until the +// seconds stopped duration time or total time (set by command F4) reaches zero. +// this is ignored when using music slot -1 +//===========================================================================*/ +#define music_xtrack_stop_ID 0xF5 +#define music_xtrack_stop_LENGTH 0x02 +#define music_xtrack_stop(music_slot) \ + music_xtrack_stop_ID, \ + music_slot, + +/*============================================================================= +// name: trigger_explosions_around_bond +// command id: F6 +// info: triggers explosions around the player, will continue forever +//============================================================================= +// note: does not trigger level exit or killed in action state +//===========================================================================*/ +#define trigger_explosions_around_bond_ID 0xF6 +#define trigger_explosions_around_bond_LENGTH 0x01 +#define trigger_explosions_around_bond \ + trigger_explosions_around_bond_ID, + +/*============================================================================= +// name: if_killed_civilians_greater_than +// command id: F7 +// info: if total civilians killed > argument, goto label +//============================================================================= +// note: guards flagged with CHRFLAG_COUNT_DEATH_AS_CIVILIAN will count towards +// total when killed. usually set for scientists/civilians/innocent NPCs +//===========================================================================*/ +#define if_killed_civilians_greater_than_ID 0xF7 +#define if_killed_civilians_greater_than_LENGTH 0x03 +#define if_killed_civilians_greater_than(civilians_killed, label) \ + if_killed_civilians_greater_than_ID, \ + civilians_killed, \ + label, + +/*============================================================================= +// name: if_chr_was_shot_since_last_check +// command id: F8 +// info: if chr was shot since last check, goto label +//============================================================================= +// note: checks chr->chrflags if CHRFLAG_WAS_HIT is set. if true, unset flag and +// goto label. CHRFLAG_WAS_HIT is set even if guard is invincible +//===========================================================================*/ +#define if_chr_was_shot_since_last_check_ID 0xF8 +#define if_chr_was_shot_since_last_check_LENGTH 0x03 +#define if_chr_was_shot_since_last_check(chr_num, label) \ + if_chr_was_shot_since_last_check_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: bond_killed_in_action +// command id: F9 +// info: sets briefing status to killed in action, automatic mission failure +//============================================================================= +// note: does not kill the player, only changes the mission status +//===========================================================================*/ +#define bond_killed_in_action_ID 0xF9 +#define bond_killed_in_action_LENGTH 0x01 +#define bond_killed_in_action \ + bond_killed_in_action_ID, + +/*============================================================================= +// name: guard_raises_arms +// command id: FA +// info: makes guard raise their arms for half a second +//===========================================================================*/ +#define guard_raises_arms_ID 0xFA +#define guard_raises_arms_LENGTH 0x01 +#define guard_raises_arms \ + guard_raises_arms_ID, + +/*============================================================================= +// name: gas_leak_and_fade_fog +// command id: FB +// info: trigger gas leak event and slowly transition fog to the next fog's slot +//============================================================================= +// note: this command triggers a gas leak. for the level egypt, this command +// will not trigger a gas leak, but instead will only transition the fog. +// this command can't be stopped after executing. level must have a fog assigned +// or will crash! +//===========================================================================*/ +#define gas_leak_and_fade_fog_ID 0xFB +#define gas_leak_and_fade_fog_LENGTH 0x01 +#define gas_leak_and_fade_fog \ + gas_leak_and_fade_fog_ID, + +/*============================================================================= +// name: object_rocket_launch +// command id: FC +// info: launch a tagged object like a rocket +//============================================================================= +// note: if tagged object can't be turned upright, object will be destroyed instead. +// can be used to drop attached props +//===========================================================================*/ +#define object_rocket_launch_ID 0xFC +#define object_rocket_launch_LENGTH 0x02 +#define object_rocket_launch(object_tag) \ + object_rocket_launch_ID, \ + object_tag, + +#endif diff --git a/src/bondconstants.h b/src/bondconstants.h new file mode 100644 index 0000000..0adab7a --- /dev/null +++ b/src/bondconstants.h @@ -0,0 +1,1434 @@ +#ifndef _BONDCONSTANTS_H_ +#define _BONDCONSTANTS_H_ +#include "ultra64.h" + +#define GAME_TICKRATE 60 +#define SECS_TO_TIMER60(SECS) (SECS * GAME_TICKRATE) +#define MINS_TO_TIMER60(MINS) (SECS_TO_TIMER60(MINS * GAME_TICKRATE)) + +/* 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 +#define CHR_SEE_SHOT -6 /* stored as chr->chrseeshot */ +#define CHR_SEE_DIE -5 /* stored as chr->chrseedie */ +#define CHR_PRESET -4 /* stored as chr->chrpreset1 */ +#define CHR_SELF -3 + +/* private chr ID, cannot be accessed with ai commands */ +#define CHR_OBJECTIVE -2 /* objective ai list chr ID */ +#define CHR_FREE -1 /* chr IDs when free'd (killed or removed from level) */ +#define CHR_SPAWN_NUM_START 5000 /* default chr num for spawned guards with ai command BD/BE */ +#define CHR_CLONED_NUM_START 10000 /* default chr num for cloed guards with ai command C1 */ + +#define PAD_PRESET 9000 /* stored as chr->padpreset1 */ + +#define OBJECTIVES_MAX 10 + +typedef u16 PAD; +typedef u16 PADEXTRA; + +#define PADEXTRA_START 10000 +#define PADEX(PAD) (PAD + PADEXTRA_START) /* used for setups */ + +typedef enum RGBA_ENUM { + RED = 0, + GREEN, + BLUE, + ALPHA +} RGBA_ENUM; + +typedef enum MISSION_BRIEFING { + BRIEF_OVERVIEW = 0, + BRIEF_M, + BRIEF_Q, + BRIEF_MONEYPENNY +} MISSION_BRIEFING; + +typedef enum DIFFICULTY { + DIFFICULTY_AGENT = 0, + DIFFICULTY_SECRET, + DIFFICULTY_00, + DIFFICULTY_007, + DIFFICULTY_MULTI = 0xFFFFFFFF +} DIFFICULTY; + +typedef enum LEVELID { + LEVELID_BUNKER1 = 0x9, + LEVELID_SILO = 0x14, + LEVELID_STATUE = 0x16, + LEVELID_CONTROL = 0x17, + LEVELID_ARCHIVES = 0x18, + LEVELID_TRAIN = 0x19, + LEVELID_FRIGATE = 0x1A, + LEVELID_BUNKER2 = 0x1B, + LEVELID_AZTEC = 0x1C, + LEVELID_STREETS = 0x1D, + LEVELID_DEPOT = 0x1E, + LEVELID_COMPLEX = 0x1F, + LEVELID_EGYPT = 0x20, + LEVELID_DAM = 0x21, + LEVELID_FACILITY = 0x22, + LEVELID_RUNWAY = 0x23, + LEVELID_SURFACE = 0x24, + LEVELID_JUNGLE = 0x25, + LEVELID_TEMPLE = 0x26, + LEVELID_CAVERNS = 0x27, + LEVELID_CITADEL = 0x28, + LEVELID_CRADLE = 0x29, + LEVELID_SHO = 0x2A, + LEVELID_SURFACE2 = 0x2B, + LEVELID_ELD = 0x2C, + LEVELID_BASEMENT = 0x2D, + LEVELID_STACK = 0x2E, + LEVELID_LUE = 0x2F, + LEVELID_LIBRARY = 0x30, + LEVELID_RIT = 0x31, + LEVELID_CAVES = 0x32, + LEVELID_EAR = 0x33, + LEVELID_LEE = 0x34, + LEVELID_LIP = 0x35, + LEVELID_CUBA = 0x36, + LEVELID_WAX = 0x37, + LEVELID_PAM = 0x38, + LEVELID_MAX = 0x39, + LEVELID_TITLE = 0x5A, + LEVELID_NONE = 0xFFFFFFFF +} LEVELID; + +typedef enum LEVEL_SOLO_SEQUENCE +{ + SP_LEVEL_DAM = 0x1, + SP_LEVEL_FACILITY, + SP_LEVEL_RUNWAY, + SP_LEVEL_SURFACE1, + SP_LEVEL_BUNKER1, + SP_LEVEL_SILO, + SP_LEVEL_FRIGATE, + SP_LEVEL_SURFACE2, + SP_LEVEL_BUNKER2, + SP_LEVEL_STATUE, + SP_LEVEL_ARCHIVES, + SP_LEVEL_STREETS, + SP_LEVEL_DEPOT, + SP_LEVEL_TRAIN, + SP_LEVEL_JUNGLE, + SP_LEVEL_CONTROL, + SP_LEVEL_CAVERNS, + SP_LEVEL_CRADLE, + SP_LEVEL_AZTEC, + SP_LEVEL_EGYPT +} LEVEL_SOLO_SEQUENCE; + +typedef enum LEVEL_INDEX +{ + LEVEL_INDEX_SEVBUNKER = 0x0, + LEVEL_INDEX_SILO = 0x1, + LEVEL_INDEX_STATUE = 0x2, + LEVEL_INDEX_CONTROL = 0x3, + LEVEL_INDEX_ARCH = 0x4, + LEVEL_INDEX_TRA = 0x5, + LEVEL_INDEX_DEST = 0x6, + LEVEL_INDEX_SEVB = 0x7, + LEVEL_INDEX_AZT = 0x8, + LEVEL_INDEX_PETE = 0x9, + LEVEL_INDEX_DEPO = 0xA, + LEVEL_INDEX_REF = 0xB, + LEVEL_INDEX_CRYP = 0xC, + LEVEL_INDEX_DAM = 0xD, + LEVEL_INDEX_ARK = 0xE, + LEVEL_INDEX_RUN = 0xF, + LEVEL_INDEX_SEVX = 0x10, + LEVEL_INDEX_JUN = 0x11, + LEVEL_INDEX_DISH = 0x12, + LEVEL_INDEX_CAVE = 0x13, + LEVEL_INDEX_CAT = 0x14, + LEVEL_INDEX_CRAD = 0x15, + LEVEL_INDEX_SHO = 0x16, + LEVEL_INDEX_SEVXB = 0x17, + LEVEL_INDEX_ELD = 0x18, + LEVEL_INDEX_IMP = 0x19, + LEVEL_INDEX_ASH = 0x1A, + LEVEL_INDEX_LUE = 0x1B, + LEVEL_INDEX_AME = 0x1C, + LEVEL_INDEX_RIT = 0x1D, + LEVEL_INDEX_OAT = 0x1E, + LEVEL_INDEX_EAR = 0x1F, + LEVEL_INDEX_LEE = 0x20, + LEVEL_INDEX_LIP = 0x21, + LEVEL_INDEX_LEN = 0x22, + LEVEL_INDEX_WAX = 0x23, + LEVEL_INDEX_PAM = 0x24, + LEVEL_INDEX_X = 0x25 +} LEVEL_INDEX; + +/* language file to slot allocation */ +#define TEXT(TEXTBANK, TEXTSLOT) ((TEXTBANK * 0x0400U) + TEXTSLOT) + +typedef enum TEXTBANK_LEVEL_INDEX +{ + LNULL = 0, /* Null (unused) */ + LAME, /* Library (multi) */ + LARCH, /* Archives */ + LARK, /* Facility */ + LASH, /* Stack (multi) */ + LAZT, /* Aztec */ + LCAT, /* Citadel (multi) */ + LCAVE, /* Caverns */ + LAREC, /* Control */ + LCRAD, /* Cradle */ + LCRYP, /* Egypt */ + LDAM, /* Dam */ + LDEPO, /* Depot */ + LDEST, /* Frigate */ + LDISH, /* Temple (multi) */ + LEAR, /* Ear (unused) */ + LELD, /* Eld (unused) */ + LIMP, /* Basement (multi) */ + LJUN, /* Jungle */ + LLEE, /* Lee (unused) */ + LLEN, /* Cuba */ + LLIP, /* Lip (unused) */ + LLUE, /* Lue (unused) */ + LOAT, /* Cave (multi) */ + LPAM, /* Pam (unused) */ + LPETE, /* Streets */ + LREF, /* Complex (multi) */ + LRIT, /* Rit (unused) */ + LRUN, /* Runway */ + LSEVB, /* Bunker 2 */ + LSEV, /* Bunker 1 */ + LSEVX, /* Surface 1 */ + LSEVXB, /* Surface 2 */ + LSHO, /* Sho (unused) */ + LSILO, /* Silo */ + LSTAT, /* Statue */ + LTRA, /* Train */ + LWAX, /* Wax (unused) */ + LGUN, /* Guns */ + LTITLE, /* Stage and menu titles */ + LMPMENU, /* Multi menus */ + LPROPOBJ, /* In-game pickups */ + LMPWEAPONS, /* Multi weapon select */ + LOPTIONS, /* Solo in-game menus */ + LMISC /* Cheat options */ +} TEXTBANK_LEVEL_INDEX; + +typedef enum MP_STAGE_SELECTED { + MP_STAGE_RANDOM = 0x0, + MP_STAGE_TEMPLE = 0x1, + MP_STAGE_COMPLEX = 0x2, + MP_STAGE_CAVES = 0x3, + MP_STAGE_LIBRARY = 0x4, + MP_STAGE_BASEMENT = 0x5, + MP_STAGE_STACK = 0x6, + MP_STAGE_FACILITY = 0x7, + MP_STAGE_BUNKER = 0x8, + MP_STAGE_ARCHIVES = 0x9, + MP_STAGE_CAVERNS = 0xA, + MP_STAGE_EGYPT = 0xB +} MP_STAGE_SELECTED; + +typedef enum GENDER {FEMALE=0, MALE } GENDER; + +typedef enum BODIES { + BODY_Jungle_Commando = 0x0, + BODY_St_Petersburg_Guard = 0x1, + BODY_Russian_Soldier = 0x2, + BODY_Russian_Infantry = 0x3, + BODY_Janus_Special_Forces = 0x4, + BODY_Tuxedo = 0x5, + BODY_Boris = 0x6, + BODY_Ourumov = 0x7, + BODY_Trevelyan_Janus = 0x8, + BODY_Trevelyan_006 = 0x9, + BODY_Valentin_ = 0xA, + BODY_Xenia = 0xB, + BODY_Baron_Samedi = 0xC, + BODY_Jaws = 0xD, + BODY_Mayday = 0xE, + BODY_Oddjob = 0xF, + BODY_Natalya_Skirt = 0x10, + BODY_Janus_Marine = 0x11, + BODY_Russian_Commandant = 0x12, + BODY_Siberian_Guard_1_Mishkin = 0x13, + BODY_Naval_Officer = 0x14, + BODY_Siberian_Special_Forces = 0x15, + BODY_Special_Operations_Uniform = 0x16, + BODY_Formal_Wear = 0x17, + BODY_Jungle_Fatigues = 0x18, + BODY_Parka = 0x19, + BODY_Unused_Female = 0x1A, + BODY_Rosika = 0x1B, + BODY_Scientist_2_Female = 0x1C, + BODY_Civilian_1_Female = 0x1D, + BODY_Unused_Male_1 = 0x1E, + BODY_Unused_Male_2 = 0x1F, + BODY_Civilian_4 = 0x20, + BODY_Civilian_2 = 0x21, + BODY_Civilian_3 = 0x22, + BODY_Scientist_1_Male = 0x23, + BODY_Helicopter_Pilot = 0x24, + BODY_Siberian_Guard_2 = 0x25, + BODY_Arctic_Commando = 0x26, + BODY_Moonraker_Elite_1_Male = 0x27, + BODY_Moonraker_Elite_2_Female = 0x28, + BODY_Left_Suit_Hand_Floating_Arm = 0x29, + BODY_Male_Karl = 0x2A, + BODY_Male_Alan = 0x2B, + BODY_Male_Pete = 0x2C, + BODY_Male_Martin = 0x2D, + BODY_Male_Mark = 0x2E, + BODY_Male_Duncan = 0x2F, + BODY_Male_Shaun = 0x30, + BODY_Male_Dwayne = 0x31, + BODY_Male_B = 0x32, + BODY_Male_Dave_Dr_Doak = 0x33, + BODY_Male_Grant = 0x34, + BODY_Male_Des = 0x35, + BODY_Male_Chris = 0x36, + BODY_Male_Lee = 0x37, + BODY_Male_Neil = 0x38, + BODY_Male_Jim = 0x39, + BODY_Male_Robin = 0x3A, + BODY_Male_Steve_H = 0x3B, + BODY_Male_Terrorist = 0x3C, + BODY_Male_Biker = 0x3D, + BODY_Male_Graeme = 0x3E, + BODY_Male_Steve_Ellis = 0x3F, + BODY_Male_Joel = 0x40, + BODY_Male_Scott = 0x41, + BODY_Male_Joe_Altered = 0x42, + BODY_Male_Ken = 0x43, + BODY_Male_Joe = 0x44, + BODY_Male_Mishkin = 0x45, + BODY_Female_Sally = 0x46, + BODY_Female_Marion_Rosika = 0x47, + BODY_Female_Mandy = 0x48, + BODY_Female_Vivien = 0x49, + BODY_Male_Pierce_Bond_1 = 0x4A, + BODY_Male_Pierce_Bond_2 = 0x4B, + BODY_Male_Pierce_Bond_3 = 0x4C, + BODY_Male_Pierce_Bond_Parka = 0x4D, + BODY_Male_Pierce_Bond_Tuxedo = 0x4E, + BODY_Natalya_Jungle_Fatigues = 0x4F +} BODIES; + +typedef enum HEADS { + HEAD_Male_Karl = 0x2A, + HEAD_Male_Alan = 0x2B, + HEAD_Male_Pete = 0x2C, + HEAD_Male_Martin = 0x2D, + HEAD_Male_Mark = 0x2E, + HEAD_Male_Duncan = 0x2F, + HEAD_Male_Shaun = 0x30, + HEAD_Male_Dwayne = 0x31, + HEAD_Male_B = 0x32, + HEAD_Male_Dave_Dr_Doak = 0x33, + HEAD_Male_Grant = 0x34, + HEAD_Male_Des = 0x35, + HEAD_Male_Chris = 0x36, + HEAD_Male_Lee = 0x37, + HEAD_Male_Neil = 0x38, + HEAD_Male_Jim = 0x39, + HEAD_Male_Robin = 0x3A, + HEAD_Male_Steve_H = 0x3B, + HEAD_Male_Terrorist = 0x3C, + HEAD_Male_Biker = 0x3D, + HEAD_Male_Graeme = 0x3E, + HEAD_Male_Steve_Ellis = 0x3F, + HEAD_Male_Joel = 0x40, + HEAD_Male_Scott = 0x41, + HEAD_Male_Joe_Altered = 0x42, + HEAD_Male_Ken = 0x43, + HEAD_Male_Joe = 0x44, + HEAD_Male_Mishkin = 0x45, + HEAD_Female_Sally = 0x46, + HEAD_Female_Marion_Rosika = 0x47, + HEAD_Female_Mandy = 0x48, + HEAD_Female_Vivien = 0x49, + HEAD_Male_Pierce_Bond_1 = 0x4A, + HEAD_Male_Pierce_Bond_2 = 0x4B, + HEAD_Male_Pierce_Bond_3 = 0x4C, + HEAD_Male_Pierce_Bond_Parka = 0x4D, + HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT = 0x4E, + HEAD_Natalya_Jungle_Fatigues = 0x4F +} HEADS; + +typedef enum mission_setup_type { + MISSION_PART = 0, + MISSION_HEADER +} mission_setup_type; + +typedef enum MUSIC_TRACKS { + M_ARCHIVES = 11, + M_ARCHIVESX = 37, + M_AZTEC = 25, + M_AZTECX = 46, + M_BUNKER1 = 15, + M_BUNKER1X = 41, + M_BUNKER2 = 16, + M_BUNKER2X = 42, + M_CITADEL = 6, + M_CONTROL = 8, + M_CONTROLX = 33, + M_CRADLE = 19, + M_CRADLEX = 48, + M_CUBA = 49, + M_DAM = 9, + M_DAMX = 35, + M_DEATHSOLO = 27, + M_DEPOT = 4, + M_DEPOTX = 32, + M_EGYPTIAN = 22, + M_EGYPTIANX = 39, + M_EGYPTX = 47, + M_ELEVATOR_CONTROL = 18, + M_ELEVATOR_WC = 21, + M_END_SOMETHING = 62, + M_FACILITY = 7, + M_FACILITYX = 31, + M_FOLDERS = 23, + M_FRIGATE = 10, + M_FRIGATEX = 36, + M_GUITARGLISS = 54, + M_INTRO = 2, + M_INTROSWOOSH = 44, + M_JUNGLE = 55, + M_JUNGLEX = 43, + M_MPDEATH = 58, + M_MPTHEME = 5, + M_MPTHEME2 = 13, + M_MPTHEME3 = 52, + M_NONE = 0, + M_RUNWAY = 50, + M_RUNWAYPLANE = 51, + M_RUNWAYX = 56, + M_SHORT_SOLO_DEATH = 1, + M_SILO = 12, + M_SILOX = 38, + M_STATUE = 17, + M_STATUEPART = 61, + M_STATUEX = 45, + M_STREETS = 14, + M_STREETSX = 40, + M_SURFACE1 = 57, + M_SURFACE2 = 28, + M_SURFACE2END = 60, + M_SURFACE2X = 59, + M_TRAIN = 3, + M_TRAINX = 29, + M_UNK = 20, + M_UNK2 = 30, + M_WATCH = 24, + M_WATERCAVERNS = 26, + M_WATERCAVERNSX = 34, + M_WIND = 53 +} MUSIC_TRACKS; + +typedef enum GAMEMODE { + GAMEMODE_SOLO = 0x0, + GAMEMODE_MULTI, + GAMEMODE_CHEATS, + GAMEMODE_INTRO = 0xFFFFFFFF +} GAMEMODE; + +typedef enum MPSCENARIOS { + SCENARIO_NORMAL=0, + SCENARIO_YOLT, + SCENARIO_TLD, + SCENARIO_MWTGG, + SCENARIO_LTK, + SCENARIO_2v2, + SCENARIO_3v1, + SCENARIO_2v1 +} MPSCENARIOS; + +typedef enum WATCH_BRIEFING_PAGE { + BRIEFING_TITLE = 0x0, + BRIEFING_OVERVIEW, + BRIEFING_M, + BRIEFING_Q, + BRIEFING_MONEYPENNY, + BRIEFING_INVALID = -1 +} WATCH_BRIEFING_PAGE; + +typedef enum MENU { + MENU_LEGAL_SCREEN = 0x0, + MENU_NINTENDO_LOGO, + MENU_RAREWARE_LOGO, + MENU_EYE_INTRO, + MENU_GOLDENEYE_LOGO, + MENU_FILE_SELECT, + MENU_MODE_SELECT, + MENU_MISSION_SELECT, + MENU_DIFFICULTY, + MENU_007_OPTIONS, + MENU_BRIEFING, + MENU_RUN_STAGE, + MENU_MISSION_FAILED, + MENU_MISSION_COMPLETE, + MENU_MP_OPTIONS, + MENU_MP_CHAR_SELECT, + MENU_MP_HANDICAP, + MENU_MP_CONTROL_STYLE, + MENU_MP_STAGE_SELECT, + MENU_MP_SCENARIO_SELECT, + MENU_MP_TEAMS, + MENU_CHEAT, + MENU_NO_CONTROLLERS, + MENU_SWITCH_SCREENS, + MENU_DISPLAY_CAST, + MENU_SPECTRUM_EMU, + MENU_INVALID = -1 +} MENU; + +typedef enum CONTROLLER_CONFIG +{ + CONTROLLER_CONFIG_HONEY = 0x0, + CONTROLLER_CONFIG_SOLITARE, + CONTROLLER_CONFIG_KISSY, + CONTROLLER_CONFIG_GOODNIGHT, + CONTROLLER_CONFIG_PLENTY, + CONTROLLER_CONFIG_GALORE, + CONTROLLER_CONFIG_DOMINO, + CONTROLLER_CONFIG_GOODHEAD, + CONTROLLER_CONFIG_CINEMA +} CONTROLLER_CONFIG; + +typedef enum CUFF_TYPES +{ + CUFF_BLUE = 0x0, + CUFF_TUX, + CUFF_JUNGLE, + CUFF_BOILER, + CUFF_SNOW, + CUFF_WHITE, + CUFF_TUX6, + CUFF_TUX7, + CUFF_TUX8 +} CUFF_TYPES; + +typedef enum INV_ITEM_TYPE +{ + INV_ITEM_WEAPON = 1, + INV_ITEM_PROP, + INV_ITEM_DUAL +} INV_ITEM_TYPE; + +typedef enum ITEM_IDS +{ + ITEM_UNARMED = 0x0, + ITEM_FIST = 0x1, + ITEM_KNIFE = 0x2, + ITEM_THROWKNIFE = 0x3, + ITEM_WPPK = 0x4, + ITEM_WPPKSIL = 0x5, + ITEM_TT33 = 0x6, + ITEM_SKORPION = 0x7, + ITEM_AK47 = 0x8, + ITEM_UZI = 0x9, + ITEM_MP5K = 0xA, + ITEM_MP5KSIL = 0xB, + ITEM_SPECTRE = 0xC, + ITEM_M16 = 0xD, + ITEM_FNP90 = 0xE, + ITEM_SHOTGUN = 0xF, + ITEM_AUTOSHOT = 0x10, + ITEM_SNIPERRIFLE = 0x11, + ITEM_RUGER = 0x12, + ITEM_GOLDENGUN = 0x13, + ITEM_SILVERWPPK = 0x14, + ITEM_GOLDWPPK = 0x15, + ITEM_LASER = 0x16, + ITEM_WATCHLASER = 0x17, + ITEM_GRENADELAUNCH = 0x18, + ITEM_ROCKETLAUNCH = 0x19, + ITEM_GRENADE = 0x1A, + ITEM_TIMEDMINE = 0x1B, + ITEM_PROXIMITYMINE = 0x1C, + ITEM_REMOTEMINE = 0x1D, + ITEM_TRIGGER = 0x1E, + ITEM_TASER = 0x1F, + ITEM_TANKSHELLS = 0x20, + ITEM_BOMBCASE = 0x21, + ITEM_PLASTIQUE = 0x22, + ITEM_FLAREPISTOL = 0x23, + ITEM_PITONGUN = 0x24, + ITEM_BUNGEE = 0x25, + ITEM_DOORDECODER = 0x26, + ITEM_BOMBDEFUSER = 0x27, + ITEM_CAMERA = 0x28, + ITEM_LOCKEXPLODER = 0x29, + ITEM_DOOREXPLODER = 0x2A, + ITEM_BRIEFCASE = 0x2B, + ITEM_WEAPONCASE = 0x2C, + ITEM_SAFECRACKERCASE = 0x2D, + ITEM_KEYANALYSERCASE = 0x2E, + ITEM_BUG = 0x2F, + ITEM_MICROCAMERA = 0x30, + ITEM_BUGDETECTOR = 0x31, + ITEM_EXPLOSIVEFLOPPY = 0x32, + ITEM_POLARIZEDGLASSES = 0x33, + ITEM_DARKGLASSES = 0x34, + ITEM_CREDITCARD = 0x35, + ITEM_GASKEYRING = 0x36, + ITEM_DATATHIEF = 0x37, + ITEM_WATCHIDENTIFIER = 0x38, + ITEM_WATCHCOMMUNICATOR = 0x39, + ITEM_WATCHGEIGERCOUNTER = 0x3A, + ITEM_WATCHMAGNETREPEL = 0x3B, + ITEM_WATCHMAGNETATTRACT = 0x3C, + ITEM_GOLDENEYEKEY = 0x3D, + ITEM_BLACKBOX = 0x3E, + ITEM_CIRCUITBOARD = 0x3F, + ITEM_CLIPBOARD = 0x40, + ITEM_STAFFLIST = 0x41, + ITEM_DOSSIERRED = 0x42, + ITEM_PLANS = 0x43, + ITEM_SPYFILE = 0x44, + ITEM_BLUEPRINTS = 0x45, + ITEM_MAP = 0x46, + ITEM_AUDIOTAPE = 0x47, + ITEM_VIDEOTAPE = 0x48, + ITEM_DATTAPE = 0x49, + ITEM_SPOOLTAPE = 0x4A, + ITEM_MICROFILM = 0x4B, + ITEM_MICROCODE = 0x4C, + ITEM_LECTRE = 0x4D, + ITEM_MONEY = 0x4E, + ITEM_GOLDBAR = 0x4F, + ITEM_HEROIN = 0x50, + ITEM_KEYCARD = 0x51, + ITEM_KEYYALE = 0x52, + ITEM_KEYBOLT = 0x53, + ITEM_SUIT_LF_HAND = 0x54, + ITEM_JOYPAD = 0x55, + ITEM_56 = 0x56, + ITEM_57 = 0x57, + ITEM_TOKEN = 0x58 +} ITEM_IDS; + +typedef enum PROPS { + PROP_alarm1 = 0, /* Beta Alarm / Default Multi Weapon */ + PROP_alarm2 = 1, /* Alarm */ + PROP_explosionbit = 2, /* White Pyramid (Explosion Bit) */ + PROP_ammo_crate1 = 3, /* Ammo Crate (Brown w/ Edge Brace, 6x240 Black) */ + PROP_ammo_crate2 = 4, /* Ammo Crate (Brown w/ Center Brace, 12x8 Black) */ + PROP_ammo_crate3 = 5, /* Ammo Crate (Green w/ Center Brace, 12x8 Brown) */ + PROP_ammo_crate4 = 6, /* Ammo Crate (Green w/ Edge Brace, 6x8 White) */ + PROP_ammo_crate5 = 7, /* Ammo Crate (Green w/ Double Brace, 24x60 Black) */ + PROP_bin1 = 8, /* Rusted Trash Bin */ + PROP_blotter1 = 9, /* Desk Blotter */ + PROP_book1 = 10, /* Red Book */ + PROP_bookshelf1 = 11, /* Bookshelf */ + PROP_bridge_console1a = 12, /* Bridge Console w/ Monitor, Navigation + Keyboard 1A */ + PROP_bridge_console1b = 13, /* Bridge Console w/ Navigation 1B */ + PROP_bridge_console2a = 14, /* Bridge Console w/ Navigation, Monitor + Keyboard 2A */ + PROP_bridge_console2b = 15, /* Bridge Console w/ Various Controls 2B */ + PROP_bridge_console3a = 16, /* Bridge Console w/ Monitor, Navigation + Keyboard 3A */ + PROP_bridge_console3b = 17, /* Bridge Console w/ Monitor, Keyboard + Navigation 3B */ + PROP_card_box1 = 18, /* Cardboard Box, Kapto|Enb */ + PROP_card_box2 = 19, /* Cardboard Box, Red Arrow, Bahko */ + PROP_card_box3 = 20, /* Cardboard Box, Scrawled Text, Bahah */ + PROP_card_box4_lg = 21, /* Cardboard Box, Three Seams */ + PROP_card_box5_lg = 22, /* Cardboard Box, Two Seams, Bahah */ + PROP_card_box6_lg = 23, /* Cardboard Box, Bahko */ + PROP_cctv = 24, /* Surveillance Camera */ + PROP_console1 = 25, /* Double Screen Consoles w/ Keyboards */ + PROP_console2 = 26, /* Double Screen Consoles w/ Left Keyboard */ + PROP_console3 = 27, /* Double Screen Consoles w/ Right Keyboard */ + PROP_console_seva = 28, /* Console w/ Keyboard */ + PROP_console_sevb = 29, /* Console w/ Monitor + Keyboard */ + PROP_console_sevc = 30, /* Console w/ Switches */ + PROP_console_sevd = 31, /* Console w/ Five Gauges */ + PROP_console_sev2a = 32, /* Console w/ Four Faders */ + PROP_console_sev2b = 33, /* Console w/ Monitor, Keyboard + Switches */ + PROP_console_sev2c = 34, /* Console w/ Three Gauges */ + PROP_console_sev2d = 35, /* Console w/ Pressure Gauge */ + PROP_console_sev_GEa = 36, /* Console w/ GoldenEye Key Slot */ + PROP_console_sev_GEb = 37, /* Console w/ Faders + Pressure Gauge */ + PROP_desk1 = 38, /* Desk w/ Kickplate */ + PROP_desk2 = 39, /* Desk */ + PROP_desk_lamp2 = 40, /* Desk Lamp */ + PROP_disc_reader = 41, /* External Hard Drive */ + PROP_disk_drive1 = 42, /* Floppy Disc Drive */ + PROP_filing_cabinet1 = 43, /* Filing Cabinet */ + PROP_jerry_can1 = 44, /* Jerrycan (Fuel Container) */ + PROP_keyboard1 = 45, /* Computer Keyboard */ + PROP_kit_units1 = 46, /* Kitchen Cabinets */ + PROP_letter_tray1 = 47, /* Letter Tray */ + PROP_mainframe1 = 48, /* Mainframe, Basic */ + PROP_mainframe2 = 49, /* Mainframe, Advanced */ + PROP_metal_chair1 = 50, /* Chair (Metal) */ + PROP_metal_crate1 = 51, /* Metal Crate, 6 Top Corner */ + PROP_metal_crate2 = 52, /* Metal Crate, 6 Bottom Corner */ + PROP_metal_crate3 = 53, /* Metal Crate, Toxic Materials */ + PROP_metal_crate4 = 54, /* Metal Crate, Double Stripe - Class D1 Hazard */ + PROP_missile_rack = 55, /* Naval Harpoon Missile in Containment Rack */ + PROP_missile_rack2 = 56, /* Naval Harpoon Missiles in Containment Racks x4 */ + PROP_oil_drum1 = 57, /* Oil Drum, Single Stripe, Ribbed */ + PROP_oil_drum2 = 58, /* Oil Drum, Single Stripe, Ribbed - Class D1 Hazard */ + PROP_oil_drum3 = 59, /* Oil Drum, Single Stripe, Ribbed - Toxic Materials */ + PROP_oil_drum5 = 60, /* Oil Drum, Double Stripe - Toxic Materials */ + PROP_oil_drum6 = 61, /* Oil Drum - Toxic Materials */ + PROP_oil_drum7 = 62, /* Oil Drum, Double Dashes - Class D1 Hazard */ + PROP_padlock = 63, /* Padlock */ + PROP_phone1 = 64, /* Telephone */ + PROP_radio_unit1 = 65, /* Radio Tuner w/ 1 Knob + 2 Gauges */ + PROP_radio_unit2 = 66, /* Radio Tuner w/ 1 Knob + 5 Gauges */ + PROP_radio_unit3 = 67, /* Radio Tuner w/ 3 Knobs + 5 Gauges */ + PROP_radio_unit4 = 68, /* Radio Tuner w/ 3 Knobs + 2 Gauges */ + PROP_sat1_reflect = 69, /* GoldenEye Satellite */ + PROP_satdish = 70, /* Satellite Dish (Arkangelsk) */ + PROP_satbox = 71, /* Uplink Box */ + PROP_stool1 = 72, /* Wooden Stool */ + PROP_swivel_chair1 = 73, /* Swivel Chair */ + PROP_torpedo_rack = 74, /* Naval Torpedo Rack x3 */ + PROP_tv1 = 75, /* Television Monitor */ + PROP_tv_holder = 76, /* Hanging Monitor Rack */ + PROP_tvscreen = 77, /* Wall Monitor Screen */ + PROP_tv4screen = 78, /* Wall Monitor Screens, 4-in-1 */ + PROP_wood_lg_crate1 = 79, /* Wooden Crate w/ #4 Label, Bahah */ + PROP_wood_lg_crate2 = 80, /* Wooden Crate, Darker Shading, Kapto|Enb */ + PROP_wood_md_crate3 = 81, /* Wooden Crates x8, Bahko */ + PROP_wood_sm_crate4 = 82, /* Wooden Crate w/ #2 Label, Bahko */ + PROP_wood_sm_crate5 = 83, /* Wooden Crate w/ #4 Label, Darker Shading, Bahah */ + PROP_wood_sm_crate6 = 84, /* Wooden Crate w/ UP Arrow, Kapto|Enb */ + PROP_wooden_table1 = 85, /* Wooden Table */ + PROP_swipe_card2 = 86, /* Keycard */ + PROP_borg_crate = 87, /* Blue and Gold Printed Circuit Cube (Borg Crate) */ + PROP_boxes4x4 = 88, /* Metal Crate Stack, 4x4 */ + PROP_boxes3x4 = 89, /* Metal Crate Stack, 3x4 */ + PROP_boxes2x4 = 90, /* Metal Crate Stack, 2x4 */ + PROP_sec_panel = 91, /* Security Card Panel */ + PROP_ICBM_nose = 92, /* Silo Missile (ICBM), Nose Cone Only */ + PROP_ICBM = 93, /* Silo Missile (ICBM) */ + PROP_tuning_console1 = 94, /* Dual Consoles on Castors */ + PROP_desk_arecibo1 = 95, /* Computer Work Desk */ + PROP_locker3 = 96, /* Lockers, Single Venting */ + PROP_locker4 = 97, /* Lockers, Double Venting */ + PROP_roofgun = 98, /* Ceiling Mounted Drone Gun */ + PROP_dest_engine = 99, /* Frigate Engine */ + PROP_dest_exocet = 100, /* Naval MK 29 Missile Launcher (Exocet) */ + PROP_dest_gun = 101, /* Naval 100 mm Gun Turret (TR 100) */ + PROP_dest_harpoon = 102, /* Naval MK 141 Launch Canisters (Harpoon) */ + PROP_dest_seawolf = 103, /* Naval MK 26 Dual Missile Launcher (Seawolf) */ + PROP_window = 104, /* Window Glass */ + PROP_window_lib_lg1 = 105, /* Window Glass, Lattice Frame, 4x10 (single-sided) */ + PROP_window_lib_sm1 = 106, /* Window Glass, Lattice Frame, 4x3 (double-sided) */ + PROP_window_cor11 = 107, /* Window Glass, Lattice Frame, 4x4 (single-sided) */ + PROP_jungle3_tree = 108, /* Jungle Large Tree */ + PROP_palm = 109, /* Jungle Palm Tree */ + PROP_palmtree = 110, /* Jungle Palm Tree, Resprouting After Loss of Fronds */ + PROP_plant2b = 111, /* Jungle Plant, Low Shrub */ + PROP_labbench = 112, /* Laboratory Table w/ Sink Drains */ + PROP_gasbarrel = 113, /* White Bin */ + PROP_gasbarrels = 114, /* White Bins x4 */ + PROP_bodyarmour = 115, /* Body Armor */ + PROP_bodyarmourvest = 116, /* Body Armor (Vest) */ + PROP_gastank = 117, /* Bottling Tank */ + PROP_glassware1 = 118, /* Glass Cup */ + PROP_hatchbolt = 119, /* Metallic Securing Strip (Hatch Bolt) */ + PROP_brakeunit = 120, /* Train Brake Controller */ + PROP_ak47mag = 121, /* Gun Magazine (KF7 Soviet) */ + PROP_m16mag = 122, /* Gun Magazine (AR33 Assault Rifle) */ + PROP_mp5kmag = 123, /* Gun Magazine (D5K Deutsche) */ + PROP_skorpionmag = 124, /* Gun Magazine (Klobb) */ + PROP_spectremag = 125, /* Gun Magazine (Phantom) */ + PROP_uzimag = 126, /* Gun Magazine (ZMG (9mm)) */ + PROP_silencer = 127, /* Silencer */ + PROP_chrextinguisher = 128, /* Fire Extinguisher */ + PROP_boxcartridges = 129, /* Box of Shells (Shotgun Cartridges) */ + PROP_fnp90mag = 130, /* Gun Magazine (RC-P90) */ + PROP_goldenshells = 131, /* Box of Shells (Golden Gun Bullets) */ + PROP_magnumshells = 132, /* Box of Shells (Magnum Rounds) */ + PROP_wppkmag = 133, /* Gun Magazine (PP7) */ + PROP_tt33mag = 134, /* Gun Magazine (DD44 Dostovei) */ + PROP_sev_door = 135, /* Grey Containment Door w/ Caution Stripes and Window */ + PROP_sev_door3 = 136, /* Grey Electronic Door w/ LEFT Arrow */ + PROP_sev_door3_wind = 137, /* BETA Electronic Door w/ LEFT Arrow and Fake Window */ + PROP_sev_door4_wind = 138, /* Grey Electronic Door w/ LEFT Arrow and Window */ + PROP_sev_trislide = 139, /* Glass Door w/ Stone Frame */ + PROP_sev_door_v1 = 140, /* Grey Electronic Door w/ UP Arrow */ + PROP_steel_door1 = 141, /* Silver Corrugated Door w/ Caution Stripes */ + PROP_steel_door2 = 142, /* Rusty Door w/ Handle */ + PROP_steel_door3 = 143, /* Double Cross Brace Door */ + PROP_silo_lift_door = 144, /* Elevator Door */ + PROP_steel_door2b = 145, /* Rusty Door w/o Handle */ + PROP_door_roller1 = 146, /* Blue Bay Door w/ Caution Stripes */ + PROP_door_roller2 = 147, /* Blue Bay Door w/ Venting and Caution Stripes */ + PROP_door_roller3 = 148, /* Blue Bay Door w/ Venting and Caution Stripes */ + PROP_door_roller4 = 149, /* Cargo Bay Door w/ UP Arrow and Transportation Stripes */ + PROP_door_st_arec1 = 150, /* Blue Corrugated Door w/ Transportation Stripes */ + PROP_door_st_arec2 = 151, /* Blue Reversed Corrugated Door w/ Transportation Stripes */ + PROP_door_dest1 = 152, /* Grey Frigate Door w/ Indents and Caution Stripes */ + PROP_door_dest2 = 153, /* Grey Frigate Door w/ Indents, Caution Stripes and KEEP CLEAR Label */ + PROP_gas_plant_sw_do1 = 154, /* Grey Swinging Door w/ Blue Stripe */ + PROP_gas_plant_sw2_do1 = 155, /* Grey Swinging Door, Darker */ + PROP_gas_plant_sw3_do1 = 156, /* Grey Swinging Door, Lighter */ + PROP_gas_plant_sw4_do1 = 157, /* Light Wooden Door (Looks Like Sand) */ + PROP_gas_plant_met1_do1 = 158, /* Brown Electronic Door */ + PROP_gas_plant_wc_cub1 = 159, /* Bathroom Stall Door */ + PROP_gasplant_clear_door = 160, /* Laboratory Glass Door */ + PROP_train_door = 161, /* Dark Wooden Door */ + PROP_train_door2 = 162, /* Dark Wooden Door w/ Window */ + PROP_train_door3 = 163, /* Dark Wooden Door w/ Window + Shutter */ + PROP_door_eyelid = 164, /* Eyelid Door */ + PROP_door_iris = 165, /* Iris Door */ + PROP_sevdoorwood = 166, /* Cabin Door */ + PROP_sevdoorwind = 167, /* Weathered Swinging Door w/ Window */ + PROP_sevdoornowind = 168, /* Weathered Swinging Door */ + PROP_sevdoormetslide = 169, /* Brown Corrugated Electronic Door */ + PROP_cryptdoor1a = 170, /* Stone Door w/ Prints (Set A) */ + PROP_cryptdoor1b = 171, /* Sand Door w/ Damage (Set A) */ + PROP_cryptdoor2a = 172, /* Stone Door w/ Prints, Darker (Set B) */ + PROP_cryptdoor2b = 173, /* Sand Door w/ Damage, Darker (Set B) */ + PROP_cryptdoor3 = 174, /* Egyptian Moving Wall */ + PROP_cryptdoor4 = 175, /* Brown Sand Door (Temple) */ + PROP_vertdoor = 176, /* Blast Door (Control) */ + PROP_hatchdoor = 177, /* Train Floor Hatch */ + PROP_damgatedoor = 178, /* Security Gate (Dam) */ + PROP_damtundoor = 179, /* Tunnel Flood Door (Dam) */ + PROP_damchaindoor = 180, /* Mesh Gate */ + PROP_silotopdoor = 181, /* Launch Tube Ceiling Shutter (Silo) */ + PROP_doorprison1 = 182, /* Cell Door */ + PROP_doorstatgate = 183, /* Park Gate */ + PROP_chrkalash = 184, /* KF7 Soviet */ + PROP_chrgrenadelaunch = 185, /* Grenade Launcher */ + PROP_chrknife = 186, /* Hunting Knife */ + PROP_chrlaser = 187, /* Moonraker Laser */ + PROP_chrm16 = 188, /* AR33 Assault Rifle */ + PROP_chrmp5k = 189, /* D5K Deutsche */ + PROP_chrruger = 190, /* Cougar Magnum */ + PROP_chrwppk = 191, /* PP7 Special Issue */ + PROP_chrshotgun = 192, /* Shotgun */ + PROP_chrskorpion = 193, /* Klobb */ + PROP_chrspectre = 194, /* Phantom */ + PROP_chruzi = 195, /* ZMG (9mm) */ + PROP_chrgrenade = 196, /* Hand Grenade */ + PROP_chrfnp90 = 197, /* RC-P90 */ + PROP_chrbriefcase = 198, /* Briefcase */ + PROP_chrremotemine = 199, /* Remote Mine */ + PROP_chrproximitymine = 200, /* Proximity Mine */ + PROP_chrtimedmine = 201, /* Timed Mine */ + PROP_chrrocket = 202, /* Rocket */ + PROP_chrgrenaderound = 203, /* Grenade Round */ + PROP_chrwppksil = 204, /* PP7 (Silenced) */ + PROP_chrtt33 = 205, /* DD44 Dostovei */ + PROP_chrmp5ksil = 206, /* D5K (Silenced) */ + PROP_chrautoshot = 207, /* Automatic Shotgun */ + PROP_chrgolden = 208, /* Golden Gun */ + PROP_chrthrowknife = 209, /* Throwing Knife */ + PROP_chrsniperrifle = 210, /* Sniper Rifle */ + PROP_chrrocketlaunch = 211, /* Rocket Launcher */ + PROP_hatfurry = 212, /* Fur Hat, Blue */ + PROP_hatfurrybrown = 213, /* Fur Hat, Brown */ + PROP_hatfurryblack = 214, /* Fur Hat, Black */ + PROP_hattbird = 215, /* Side Cap, Light Green */ + PROP_hattbirdbrown = 216, /* Side Cap, Dark Green */ + PROP_hathelmet = 217, /* Combat Helmet, Green */ + PROP_hathelmetgrey = 218, /* Combat Helmet, Grey */ + PROP_hatmoon = 219, /* Elite Headgear */ + PROP_hatberet = 220, /* Special Forces Beret, Black */ + PROP_hatberetblue = 221, /* Special Forces Beret, Navy */ + PROP_hatberetred = 222, /* Special Forces Beret, Burgundy */ + PROP_hatpeaked = 223, /* Officer's Peaked Visor Cap */ + PROP_chrwristdart = 224, /* Pchrwristdart (BETA) */ + PROP_chrexplosivepen = 225, /* Pchrexplosivepen (BETA) */ + PROP_chrbombcase = 226, /* Bomb Case (Briefcase Laying Down) */ + PROP_chrflarepistol = 227, /* Pchrflarepistol (BETA Pickup) */ + PROP_chrpitongun = 228, /* Pchrpitongun (BETA Pickup) */ + PROP_chrfingergun = 229, /* Pchrfingergun (BETA Pickup) */ + PROP_chrsilverwppk = 230, /* Pchrsilverwppk (BETA Pickup) */ + PROP_chrgoldwppk = 231, /* Pchrgoldwppk (BETA Pickup) */ + PROP_chrdynamite = 232, /* Pchrdynamite (BETA Pickup) */ + PROP_chrbungee = 233, /* Pchrbungee (BETA Pickup) */ + PROP_chrdoordecoder = 234, /* Door Decoder */ + PROP_chrbombdefuser = 235, /* Bomb Defuser */ + PROP_chrbugdetector = 236, /* Pchrbugdetector (BETA Pickup) */ + PROP_chrsafecrackercase = 237, /* Safe Cracker Case (Briefcase Laying Down) */ + PROP_chrcamera = 238, /* Photo Camera (007) */ + PROP_chrlockexploder = 239, /* Pchrlockexploder (BETA Pickup) */ + PROP_chrdoorexploder = 240, /* Pchrdoorexploder (BETA Pickup) */ + PROP_chrkeyanalysercase = 241, /* Key Analyzer Case (Briefcase Laying Down) */ + PROP_chrweaponcase = 242, /* Weapon Case (Briefcase Standing Up) */ + PROP_chrkeyyale = 243, /* Yale Key */ + PROP_chrkeybolt = 244, /* Bolt Key */ + PROP_chrbug = 245, /* Covert Modem / Tracker Bug */ + PROP_chrmicrocamera = 246, /* Micro Camera */ + PROP_floppy = 247, /* Floppy Disc */ + PROP_chrgoldeneyekey = 248, /* GoldenEye Key */ + PROP_chrpolarizedglasses = 249, /* Polarized Glasses */ + PROP_chrcreditcard = 250, /* Pchrcreditcard (BETA Pickup) */ + PROP_chrdarkglasses = 251, /* Pchrdarkglasses (BETA Pickup) */ + PROP_chrgaskeyring = 252, /* Gas Keyring */ + PROP_chrdatathief = 253, /* Datathief */ + PROP_safe = 254, /* Safe Body */ + PROP_bomb = 255, /* Pbomb (BETA Pickup) */ + PROP_chrplans = 256, /* Plans (Briefing Folder) */ + PROP_chrspyfile = 257, /* Pchrspyfile (BETA Pickup) */ + PROP_chrblueprints = 258, /* Pirate Blueprints */ + PROP_chrcircuitboard = 259, /* Circuitboard */ + PROP_chrmap = 260, /* Bunker Expansion Plans */ + PROP_chrspooltape = 261, /* Pchrspooltape (BETA Pickup) */ + PROP_chraudiotape = 262, /* Audiotape */ + PROP_chrmicrofilm = 263, /* Pchrmicrofilm (BETA Pickup) */ + PROP_chrmicrocode = 264, /* Pchrmicrocode (BETA Pickup) */ + PROP_chrlectre = 265, /* Pchrlectre (BETA Pickup) */ + PROP_chrmoney = 266, /* Pchrmoney (BETA Pickup) */ + PROP_chrgoldbar = 267, /* Pchrgoldbar (BETA Pickup) */ + PROP_chrheroin = 268, /* Pchrheroin (BETA Pickup) */ + PROP_chrclipboard = 269, /* Clipboard */ + PROP_chrdossierred = 270, /* Red Dossier */ + PROP_chrstafflist = 271, /* Staff List */ + PROP_chrdattape = 272, /* DAT */ + PROP_chrplastique = 273, /* Plastique */ + PROP_chrblackbox = 274, /* Black Box (Orange Flight Recorder) */ + PROP_chrvideotape = 275, /* CCTV Tape (GoldenEye VHS) */ + PROP_nintendologo = 276, /* Nintendo Logo */ + PROP_goldeneyelogo = 277, /* GoldenEye Logo */ + PROP_walletbond = 278, /* Classified Folder w/ Royal Crest (Folder Menus) */ + PROP_miltruck = 279, /* Supply Truck */ + PROP_jeep = 280, /* Military Jeep */ + PROP_artic = 281, /* Red Prime Mover */ + PROP_helicopter = 282, /* Transport Helicopter w/ Natalya */ + PROP_tiger = 283, /* Pirate Euro Chopper */ + PROP_milcopter = 284, /* Hound Helicopter */ + PROP_hind = 285, /* Soviet Camouflage Chopper */ + PROP_artictrailer = 286, /* Black Trailer */ + PROP_motorbike = 287, /* Motorbike */ + PROP_tank = 288, /* Tank */ + PROP_apc = 289, /* Armored Personnel Carrier */ + PROP_speedboat = 290, /* Speedboat */ + PROP_plane = 291, /* Aeroplane */ + PROP_gun_runway1 = 292, /* Heavy Gun Emplacement */ + PROP_safedoor = 293, /* Safe Door */ + PROP_key_holder = 294, /* Key Rack */ + PROP_hatchsevx = 295, /* Grating (Ventshaft Hatch) */ + PROP_sevdish = 296, /* Satellite Dish (Severnaya) */ + PROP_archsecdoor1 = 297, /* Archives Moving Wall (Dark) */ + PROP_archsecdoor2 = 298, /* Archives Moving Wall (Light) */ + PROP_groundgun = 299, /* Free Standing Drone Gun */ + PROP_trainextdoor = 300, /* Train Exterior Door */ + PROP_carbmw = 301, /* White Car #1 (BMW) */ + PROP_carescort = 302, /* White Car #2 (Escort) */ + PROP_cargolf = 303, /* White Car #3 (Golf) */ + PROP_carweird = 304, /* Red Car (Cadillac) */ + PROP_carzil = 305, /* Ourumov's Car (ZIL) */ + PROP_shuttle_door_l = 306, /* Exhaust Bay Doors, Left Side */ + PROP_shuttle_door_r = 307, /* Exhaust Bay Doors, Right Side */ + PROP_depot_gate_entry = 308, /* Metallic Gate w/ Red Star */ + PROP_depot_door_steel = 309, /* Rusty Door w/ Handle (Lo-Res) */ + PROP_glassware2 = 310, /* Beaker w/ Blue Topper */ + PROP_glassware3 = 311, /* Erlenmeyer Flask */ + PROP_glassware4 = 312, /* Set of Five Beakers */ + PROP_landmine = 313, /* Land Mine */ + PROP_plant1 = 314, /* Jungle Plant, Withered and Dying */ + PROP_plant11 = 315, /* Jungle Plant, Turning Colour */ + PROP_plant2 = 316, /* Jungle Plant, Healthy and Thick */ + PROP_plant3 = 317, /* Jungle Plant, Tall Leaves */ + PROP_jungle5_tree = 318, /* Jungle Tree, Moss Covered */ + PROP_legalpage = 319, /* GoldenEye Certification Screen */ + PROP_st_pete_room_1i = 320, /* Roads and Buildings #1 (stretch of road) */ + PROP_st_pete_room_2i = 321, /* Roads and Buildings #2 (stretch of road) */ + PROP_st_pete_room_3t = 322, /* Roads and Buildings #3 (intersection) */ + PROP_st_pete_room_5c = 323, /* Roads and Buildings #4 (street corner) */ + PROP_st_pete_room_6c = 324, /* Roads and Buildings #5 (street corner) */ + PROP_door_rollertrain = 325, /* Roller Door */ + PROP_door_win = 326, /* Glass Sliding Door (Aztec) */ + PROP_door_aztec = 327, /* Stone Sliding Door (Aztec) */ + PROP_shuttle = 328, /* Moonraker Shuttle */ + PROP_door_azt_desk = 329, /* Boardroom Table (Aztec Exhaust Bay) */ + PROP_door_azt_desk_top = 330, /* Boardroom Table Extension (Aztec Exhaust Bay) */ + PROP_door_azt_chair = 331, /* Boardroom Chair (Aztec Exhaust Bay) */ + PROP_door_mf = 332, /* Mainframe Door */ + PROP_flag = 333, /* Flag Tag Token */ + PROP_barricade = 334, /* Road Barricade */ + PROP_modembox = 335, /* Covert Modem Connection Screen */ + PROP_doorpanel = 336, /* Sliding Door Activation Switch */ + PROP_doorconsole = 337, /* Console w/ Activation Light */ + PROP_chrtesttube = 338, /* Glass Test Tube */ + PROP_bollard = 339 /* Bollard */ +} PROPS; + +typedef enum PROJECTILES +{ + PROJECTILES_MAX = 0x2E, + PROJECTILES_TYPE_KNIFE = PROP_chrknife, + PROJECTILES_TYPE_GRENADE = PROP_chrgrenade, + PROJECTILES_TYPE_REMOTE_MINE = PROP_chrremotemine, + PROJECTILES_TYPE_PROX_MINE = PROP_chrproximitymine, + PROJECTILES_TYPE_TIMED_MINE = PROP_chrtimedmine, + PROJECTILES_TYPE_ROCKET_ROUND = PROP_chrrocket, + PROJECTILES_TYPE_ROCKET_ROUND2 = PROP_chrrocket, + PROJECTILES_TYPE_GLAUNCH_ROUND = PROP_chrgrenaderound, + PROJECTILES_TYPE_BOMBCASE = PROP_chrbombcase, + PROJECTILES_TYPE_BUG = PROP_chrbug, + PROJECTILES_TYPE_MICROCAMERA = PROP_chrmicrocamera, + PROJECTILES_TYPE_GE_KEY = PROP_chrgoldeneyekey, + PROJECTILES_TYPE_PLASTIQUE = PROP_chrplastique +} PROJECTILES; + +typedef enum AMMOTYPES { + AMMO_NONE = 0, + AMMO_9MM = 1, + AMMO_9MM_2 = 2, + AMMO_RIFLE = 3, + AMMO_SHOTGUN = 4, + AMMO_GRENADE = 5, + AMMO_ROCKETS = 6, + AMMO_REMOTEMINE = 7, + AMMO_PROXMINE = 8, + AMMO_TIMEDMINE = 9, + AMMO_KNIFE = 10, + AMMO_GRENADEROUND = 11, + AMMO_MAGNUM = 12, + AMMO_GGUN = 13, + AMMO_DARTS = 14, + AMMO_EXPLOSIVEPEN = 15, + AMMO_BOMBCASE = 16, + AMMO_FLARE = 17, + AMMO_PITON = 18, + AMMO_DYNAMITE = 19, + AMMO_BUG = 20, + AMMO_MICRO_CAMERA = 21, + AMMO_GEKEY = 22, + AMMO_PLASTIQUE = 23, + AMMO_WATCH_LASER = 24, + AMMO_WATCH_MAGNET = 25, + AMMO_UNK = 26, + AMMO_CAMERA = 27, + AMMO_TANK = 28, + AMMO_TOKEN = 29 +} AMMOTYPES; + +typedef enum DOORSTATE +{ + OPEN = 0x1, + CLOSED = 0x2 +} DOORSTATE; + +typedef enum SCREEN_SIZE +{ + SCREEN_SIZE_320x240 = 0x0, + SCREEN_SIZE_440x330 = 0x1 +} SCREEN_SIZE; + +typedef enum COLORMODE +{ + MODE_32BIT = 0x0, + MODE_16BIT = 0x1 +} COLORMODE; + +typedef enum CAMERAMODE { + INTRO_CAM = 1, + FADESWIRL_CAM, + SWIRL_CAM, + FP_CAM, + UNK5_CAM, + UNK6_CAM, + POSEND_CAM, + FP_NOINPUT_CAM, + MP_CAM, + UNK10_CAM +} CAMERAMODE; + +/* motion capture actor: duncan botwood */ +/* motion capture assistance: b jones */ +/* recorded using 'flock of birds' system by ascension technology corporation, in a freezing metal barn in the depths of winter */ +/* note: animations are double handed weapon (KF7) unless specified (unarmed, one_handed_weapon, dual_wield) */ +typedef enum ANIMATIONS { + ANIM_idle = 0, + ANIM_fire_standing = 1, + ANIM_fire_standing_fast = 2, + ANIM_fire_hip = 3, + ANIM_fire_shoulder_left = 4, + ANIM_fire_turn_right1 = 5, + ANIM_fire_turn_right2 = 6, + ANIM_fire_kneel_right_leg = 7, + ANIM_fire_kneel_left_leg = 8, + ANIM_fire_kneel_left = 9, + ANIM_fire_kneel_right = 10, + ANIM_fire_roll_left = 11, + ANIM_fire_roll_right1 = 12, + ANIM_fire_roll_left_fast = 13, + ANIM_hit_left_shoulder = 14, + ANIM_hit_right_shoulder = 15, + ANIM_hit_left_arm = 16, + ANIM_hit_right_arm = 17, + ANIM_hit_left_hand = 18, + ANIM_hit_right_hand = 19, + ANIM_hit_left_leg = 20, + ANIM_hit_right_leg = 21, + ANIM_death_genitalia = 22, /* thank you mr. botwood, here is your award */ + ANIM_hit_neck = 23, + ANIM_death_neck = 24, + ANIM_death_stagger_back_to_wall = 25, + ANIM_death_forward_face_down = 26, + ANIM_death_forward_spin_face_up = 27, + ANIM_death_backward_fall_face_up1 = 28, + ANIM_death_backward_spin_face_down_right = 29, + ANIM_death_backward_spin_face_up_right = 30, + ANIM_death_backward_spin_face_down_left = 31, + ANIM_death_backward_spin_face_up_left = 32, + ANIM_death_forward_face_down_hard = 33, + ANIM_death_forward_face_down_soft = 34, + ANIM_death_fetal_position_right = 35, + ANIM_death_fetal_position_left = 36, + ANIM_death_backward_fall_face_up2 = 37, + ANIM_side_step_left = 38, + ANIM_fire_roll_right2 = 39, + ANIM_walking = 40, + ANIM_sprinting = 41, + ANIM_running = 42, + ANIM_bond_eye_walk = 43, + ANIM_bond_eye_fire = 44, + ANIM_bond_watch = 45, + ANIM_surrendering_armed = 46, + ANIM_surrendering_armed_drop_weapon = 47, + ANIM_fire_walking = 48, + ANIM_fire_running = 49, + ANIM_null50 = 50, /* invalid slot */ + ANIM_null51 = 51, /* invalid slot */ + ANIM_fire_jump_to_side_left = 52, + ANIM_fire_jump_to_side_right = 53, + ANIM_hit_butt_long = 54, + ANIM_hit_butt_short = 55, + ANIM_death_head = 56, + ANIM_death_left_leg = 57, + ANIM_slide_right = 58, + ANIM_slide_left = 59, + ANIM_jump_backwards = 60, + ANIM_extending_left_hand = 61, + ANIM_fire_throw_grenade = 62, + ANIM_spotting_bond = 63, /* used by chr ai command guard_points_at_bond */ + ANIM_look_around = 64, /* used by chr ai command guard_animation_looks_around_self */ + ANIM_fire_standing_one_handed_weapon = 65, + ANIM_fire_standing_draw_one_handed_weapon_fast = 66, + ANIM_fire_standing_draw_one_handed_weapon_slow = 67, + ANIM_fire_hip_one_handed_weapon_fast = 68, + ANIM_fire_hip_one_handed_weapon_slow = 69, + ANIM_fire_hip_forward_one_handed_weapon = 70, + ANIM_fire_standing_right_one_handed_weapon = 71, + ANIM_fire_step_right_one_handed_weapon = 72, + ANIM_fire_standing_left_one_handed_weapon_slow = 73, + ANIM_fire_standing_left_one_handed_weapon_fast = 74, + ANIM_fire_kneel_forward_one_handed_weapon_slow = 75, + ANIM_fire_kneel_forward_one_handed_weapon_fast = 76, + ANIM_fire_kneel_right_one_handed_weapon_slow = 77, + ANIM_fire_kneel_right_one_handed_weapon_fast = 78, + ANIM_fire_kneel_left_one_handed_weapon_slow = 79, + ANIM_fire_kneel_left_one_handed_weapon_fast = 80, + ANIM_fire_kneel_left_one_handed_weapon = 81, + ANIM_aim_walking_one_handed_weapon = 82, + ANIM_aim_walking_left_one_handed_weapon = 83, + ANIM_aim_walking_right_one_handed_weapon = 84, + ANIM_aim_running_one_handed_weapon = 85, + ANIM_aim_running_right_one_handed_weapon = 86, + ANIM_aim_running_left_one_handed_weapon = 87, + ANIM_aim_sprinting_one_handed_weapon = 88, + ANIM_running_one_handed_weapon = 89, + ANIM_sprinting_one_handed_weapon = 90, + ANIM_null91 = 91, /* invalid slot */ + ANIM_null92 = 92, /* invalid slot */ + ANIM_null93 = 93, /* invalid slot */ + ANIM_null94 = 94, /* invalid slot */ + ANIM_null95 = 95, /* invalid slot */ + ANIM_null96 = 96, /* invalid slot */ + ANIM_draw_one_handed_weapon_and_look_around = 97, + ANIM_draw_one_handed_weapon_and_stand_up = 98, + ANIM_aim_one_handed_weapon_left_right = 99, + ANIM_cock_one_handed_weapon_and_turn_around = 100, + ANIM_holster_one_handed_weapon_and_cross_arms = 101, + ANIM_cock_one_handed_weapon_turn_around_and_stand_up = 102, + ANIM_draw_one_handed_weapon_and_turn_around = 103, + ANIM_step_forward_and_hold_one_handed_weapon = 104, + ANIM_holster_one_handed_weapon_and_adjust_suit = 105, + ANIM_idle_unarmed = 106, + ANIM_walking_unarmed = 107, + ANIM_fire_walking_dual_wield = 108, + ANIM_fire_walking_dual_wield_hands_crossed = 109, + ANIM_fire_running_dual_wield = 110, + ANIM_fire_running_dual_wield_hands_crossed = 111, + ANIM_fire_sprinting_dual_wield = 112, + ANIM_fire_sprinting_dual_wield_hands_crossed = 113, + ANIM_walking_female = 114, + ANIM_running_female = 115, + ANIM_fire_kneel_dual_wield = 116, + ANIM_fire_kneel_dual_wield_left = 117, + ANIM_fire_kneel_dual_wield_right = 118, + ANIM_fire_kneel_dual_wield_hands_crossed = 119, + ANIM_fire_kneel_dual_wield_hands_crossed_left = 120, + ANIM_fire_kneel_dual_wield_hands_crossed_right = 121, + ANIM_fire_standing_dual_wield = 122, + ANIM_fire_standing_dual_wield_left = 123, + ANIM_fire_standing_dual_wield_right = 124, + ANIM_fire_standing_dual_wield_hands_crossed_left = 125, + ANIM_fire_standing_dual_wield_hands_crossed_right = 126, + ANIM_fire_standing_aiming_down_sights = 127, + ANIM_fire_kneel_aiming_down_sights = 128, + ANIM_hit_taser = 129, /* unused tazer boy hit reaction */ + ANIM_death_explosion_forward = 130, + ANIM_death_explosion_left1 = 131, + ANIM_death_explosion_back_left = 132, + ANIM_death_explosion_back1 = 133, + ANIM_death_explosion_right = 134, + ANIM_death_explosion_forward_right1 = 135, + ANIM_death_explosion_back2 = 136, + ANIM_death_explosion_forward_roll = 137, + ANIM_death_explosion_forward_face_down = 138, + ANIM_death_explosion_left2 = 139, + ANIM_death_explosion_forward_right2 = 140, + ANIM_death_explosion_forward_right2_alt = 141, /* copy of right2 with different fall */ + ANIM_death_explosion_forward_right3 = 142, + ANIM_null143 = 143, /* invalid slot */ + ANIM_null144 = 144, /* invalid slot */ + ANIM_null145 = 145, /* invalid slot */ + ANIM_null146 = 146, /* invalid slot */ + ANIM_running_hands_up = 147, + ANIM_sprinting_hands_up = 148, + ANIM_aim_and_blow_one_handed_weapon = 149, /* reversed animation? */ + ANIM_aim_one_handed_weapon_left = 150, + ANIM_aim_one_handed_weapon_right = 151, + ANIM_conversation = 152, + ANIM_drop_weapon_and_show_fight_stance = 153, /* orthodox stance woo */ + ANIM_yawning = 154, + ANIM_swatting_flies = 155, + ANIM_scratching_leg = 156, + ANIM_scratching_butt = 157, + ANIM_adjusting_crotch = 158, + ANIM_sneeze = 159, + ANIM_conversation_cleaned = 160, /* cleaned up copy of ANIM_conversation (compare left wrist) */ + ANIM_conversation_listener = 161, + ANIM_startled_and_looking_around = 162, + ANIM_laughing_in_disbelief = 163, + ANIM_surrendering_unarmed = 164, + ANIM_coughing_standing = 165, + ANIM_coughing_kneel1 = 166, + ANIM_coughing_kneel2 = 167, + ANIM_standing_up = 168, + ANIM_null169 = 169, /* invalid slot */ + ANIM_dancing = 170, + ANIM_dancing_one_handed_weapon = 171, + ANIM_keyboard_right_hand1 = 172, + ANIM_keyboard_right_hand2 = 173, + ANIM_keyboard_left_hand = 174, + ANIM_keyboard_right_hand_tapping = 175, + ANIM_bond_eye_fire_alt = 176, /* unused */ + ANIM_dam_jump = 177, + ANIM_surface_vent_jump = 178, + ANIM_cradle_jump = 179, + ANIM_cradle_fall = 180, + ANIM_credits_bond_kissing = 181, + ANIM_credits_natalya_kissing = 182 +} ANIMATIONS; + +typedef enum AIRCRAFT_ANIMATIONS { + ANIM_helicopter_cradle = 0, + ANIM_plane_runway = 1, + ANIM_helicopter_takeoff = 2 +} AIRCRAFT_ANIMATIONS; + +typedef enum HANDEDNESS { + RIGHT_HAND = 0, + LEFT_HAND = 1 +} HANDEDNESS; + +// used by characters +typedef enum ACT_TYPE { + ACT_INIT = 0, + ACT_STAND, + ACT_KNEEL, + ACT_ANIM, + ACT_DIE, + ACT_DEAD, + ACT_ARGH, + ACT_PREARGH, + ACT_ATTACK, + ACT_ATTACKWALK, + ACT_ATTACKROLL, + ACT_SIDESTEP, + ACT_JUMPOUT, + ACT_RUNPOS, + ACT_PATROL, + ACT_GOPOS, + ACT_SURRENDER, + ACT_LOOKATTARGET, + ACT_SURPRISED, + ACT_STARTALARM, + ACT_THROWGRENADE, + ACT_TURNDIR, + ACT_TEST, + ACT_NULL +} ACT_TYPE; + +// character flags +#define CHRHIDDEN_DROP_HELD_ITEMS 0x0001 // drop held items/weapons +#define CHRHIDDEN_0002 0x0002 // unknown +#define CHRHIDDEN_FIRE_WEAPON_LEFT 0x0004 // firing left weapon +#define CHRHIDDEN_FIRE_WEAPON_RIGHT 0x0008 // firing right weapon +#define CHRHIDDEN_0010 0x0010 // unknown +#define CHRHIDDEN_REMOVE 0x0020 // remove character +#define CHRHIDDEN_TIMER_ACTIVE 0x0040 // chr timer is active +#define CHRHIDDEN_FIRE_TRACER 0x0080 // spawn a tracer +#define CHRHIDDEN_MOVING 0x0100 // moving +#define CHRHIDDEN_0200 0x0200 // unknown +#define CHRHIDDEN_0400 0x0400 // unknown +#define CHRHIDDEN_FREEZE 0x0800 // freeze current animation state +#define CHRHIDDEN_1000 0x1000 // unknown +#define CHRHIDDEN_2000 0x2000 // unknown +#define CHRHIDDEN_4000 0x4000 // unknown +#define CHRHIDDEN_8000 0x8000 // unknown + +#define CHRFLAG_INIT 0x00000001 // initialize chr +#define CHRFLAG_CLONE 0x00000002 // clone on heard gunfire (used by GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) +#define CHRFLAG_NEAR_MISS 0x00000004 // chr was just nearly shot (sometimes set on direct hit) +#define CHRFLAG_HAS_BEEN_ON_SCREEN 0x00000008 // chr has been on screen before +#define CHRFLAG_INVINCIBLE 0x00000010 // invincible +#define CHRFLAG_00000020 0x00000020 // unknown +#define CHRFLAG_CAN_SHOOT_CHRS 0x00000040 // can shoot other guards +#define CHRFLAG_00000080 0x00000080 // unknown +#define CHRFLAG_WAS_DAMAGED 0x00000100 // chr has taken damage (not invincible) +#define CHRFLAG_00000200 0x00000200 // unknown +#define CHRFLAG_HIDDEN 0x00000400 // hidden +#define CHRFLAG_NO_AUTOAIM 0x00000800 // no autoaim +#define CHRFLAG_LOCK_Y_POS 0x00001000 // lock y position (no gravity, used for dam/cradle jump) +#define CHRFLAG_NO_SHADOW 0x00002000 // no shadow +#define CHRFLAG_IGNORE_ANIM_TRANSLATION 0x00004000 // ignore animation translation +#define CHRFLAG_00008000 0x00008000 // unknown +#define CHRFLAG_00010000 0x00010000 // unknown +#define CHRFLAG_00020000 0x00020000 // unknown +#define CHRFLAG_00040000 0x00040000 // unknown +#define CHRFLAG_INCREASE_SPRINT_SPEED 0x00080000 // increase sprinting speed (used by trevelyan) +#define CHRFLAG_COUNT_DEATH_AS_CIVILIAN 0x00100000 // count death as civilian killed +#define CHRFLAG_WAS_HIT 0x00200000 // chr has been hit (even if invincible) +#define CHRFLAG_00400000 0x00400000 // unknown +#define CHRFLAG_CULL_USING_HITBOX 0x00800000 // cull chr using hitbox instead of tile/clipping (useful with lock y pos flag) +#define CHRFLAG_01000000 0x01000000 // unknown +#define CHRFLAG_02000000 0x02000000 // unknown +#define CHRFLAG_04000000 0x04000000 // unknown +#define CHRFLAG_08000000 0x08000000 // unknown +#define CHRFLAG_10000000 0x10000000 // unknown +#define CHRFLAG_20000000 0x20000000 // unknown +#define CHRFLAG_40000000 0x40000000 // unknown +#define CHRFLAG_80000000 0x80000000 // unknown + +// prop/object flags +#define PROPFLAG_00000001 0x00000001 // unknown +#define PROPFLAG_00000002 0x00000002 // unknown +#define PROPFLAG_00000004 0x00000004 // unknown +#define PROPFLAG_00000008 0x00000008 // unknown +#define PROPFLAG_00000010 0x00000010 // unknown +#define PROPFLAG_00000020 0x00000020 // unknown +#define PROPFLAG_00000040 0x00000040 // unknown +#define PROPFLAG_00000080 0x00000080 // unknown +#define PROPFLAG_00000100 0x00000100 // unknown +#define PROPFLAG_00000200 0x00000200 // unknown +#define PROPFLAG_00000400 0x00000400 // unknown +#define PROPFLAG_00000800 0x00000800 // unknown +#define PROPFLAG_00001000 0x00001000 // unknown +#define PROPFLAG_00002000 0x00002000 // unknown +#define PROPFLAG_00004000 0x00004000 // unknown +#define PROPFLAG_00008000 0x00008000 // unknown +#define PROPFLAG_00010000 0x00010000 // unknown +#define PROPFLAG_00020000 0x00020000 // unknown +#define PROPFLAG_00040000 0x00040000 // unknown +#define PROPFLAG_00080000 0x00080000 // unknown +#define PROPFLAG_00100000 0x00100000 // unknown +#define PROPFLAG_00200000 0x00200000 // unknown +#define PROPFLAG_00400000 0x00400000 // unknown +#define PROPFLAG_00800000 0x00800000 // unknown +#define PROPFLAG_01000000 0x01000000 // unknown +#define PROPFLAG_02000000 0x02000000 // unknown +#define PROPFLAG_04000000 0x04000000 // unknown +#define PROPFLAG_08000000 0x08000000 // unknown +#define PROPFLAG_10000000 0x10000000 // unknown +#define PROPFLAG_20000000 0x20000000 // unknown +#define PROPFLAG_40000000 0x40000000 // unknown +#define PROPFLAG_80000000 0x80000000 // unknown + +#define PROPFLAG2_00000001 0x00000001 // unknown +#define PROPFLAG2_00000002 0x00000002 // unknown +#define PROPFLAG2_00000004 0x00000004 // unknown +#define PROPFLAG2_00000008 0x00000008 // unknown +#define PROPFLAG2_00000010 0x00000010 // unknown +#define PROPFLAG2_00000020 0x00000020 // unknown +#define PROPFLAG2_00000040 0x00000040 // unknown +#define PROPFLAG2_00000080 0x00000080 // unknown +#define PROPFLAG2_00000100 0x00000100 // unknown +#define PROPFLAG2_00000200 0x00000200 // unknown +#define PROPFLAG2_00000400 0x00000400 // unknown +#define PROPFLAG2_00000800 0x00000800 // unknown +#define PROPFLAG2_00001000 0x00001000 // unknown +#define PROPFLAG2_00002000 0x00002000 // unknown +#define PROPFLAG2_00004000 0x00004000 // unknown +#define PROPFLAG2_00008000 0x00008000 // unknown +#define PROPFLAG2_00010000 0x00010000 // unknown +#define PROPFLAG2_00020000 0x00020000 // unknown +#define PROPFLAG2_00040000 0x00040000 // unknown +#define PROPFLAG2_00080000 0x00080000 // unknown +#define PROPFLAG2_00100000 0x00100000 // unknown +#define PROPFLAG2_00200000 0x00200000 // unknown +#define PROPFLAG2_00400000 0x00400000 // unknown +#define PROPFLAG2_00800000 0x00800000 // unknown +#define PROPFLAG2_01000000 0x01000000 // unknown +#define PROPFLAG2_02000000 0x02000000 // unknown +#define PROPFLAG2_04000000 0x04000000 // unknown +#define PROPFLAG2_08000000 0x08000000 // unknown +#define PROPFLAG2_10000000 0x10000000 // unknown +#define PROPFLAG2_20000000 0x20000000 // unknown +#define PROPFLAG2_40000000 0x40000000 // unknown +#define PROPFLAG2_80000000 0x80000000 // unknown + +// door lock flags +#define DOOR_LOCK_0 0x01 +#define DOOR_LOCK_1 0x02 +#define DOOR_LOCK_2 0x04 +#define DOOR_LOCK_3 0x08 +#define DOOR_LOCK_4 0x10 +#define DOOR_LOCK_5 0x20 +#define DOOR_LOCK_6 0x40 +#define DOOR_LOCK_7 0x80 + +#define OBJECTTYPE_00 0x00 +#define OBJECTTYPE_01 0x01 +#define OBJECTTYPE_02 0x02 +#define OBJECTTYPE_03 0x03 +#define OBJECTTYPE_04 0x04 +#define OBJECTTYPE_05 0x05 +#define OBJECTTYPE_06 0x06 +#define OBJECTTYPE_07 0x07 +#define OBJECTTYPE_WEAPON 0x08 +#define OBJECTTYPE_09 0x09 +#define OBJECTTYPE_10 0x10 +#define OBJECTTYPE_11 0x11 +#define OBJECTTYPE_12 0x12 +#define OBJECTTYPE_13 0x13 +#define OBJECTTYPE_14 0x14 +#define OBJECTTYPE_15 0x15 +#define OBJECTTYPE_16 0x16 +#define OBJECTTYPE_17 0x17 +#define OBJECTTYPE_18 0x18 +#define OBJECTTYPE_19 0x19 +#define OBJECTTYPE_20 0x20 +#define OBJECTTYPE_21 0x21 +#define OBJECTTYPE_22 0x22 +#define OBJECTTYPE_23 0x23 +#define OBJECTTYPE_24 0x24 +#define OBJECTTYPE_25 0x25 +#define OBJECTTYPE_26 0x26 +#define OBJECTTYPE_27 0x27 +#define OBJECTTYPE_28 0x28 +#define OBJECTTYPE_29 0x29 +#define OBJECTTYPE_30 0x30 +#define OBJECTTYPE_31 0x31 +#define OBJECTTYPE_32 0x32 +#define OBJECTTYPE_33 0x33 +#define OBJECTTYPE_34 0x34 +#define OBJECTTYPE_35 0x35 +#define OBJECTTYPE_36 0x36 + + + +#endif + diff --git a/src/bondgame.h b/src/bondgame.h new file mode 100644 index 0000000..f08c3c7 --- /dev/null +++ b/src/bondgame.h @@ -0,0 +1,41 @@ +#ifndef _BOND_H_ +#define _BOND_H_ +#include "ultra64.h" + +extern u8 cfb_16_a[]; +extern u8 cfb_16_b[]; + +extern u32 *_codeSegmentStart; +extern u32 *_codeSegmentEnd; +extern u32 *_codeSegmentRomStart; +extern u32 *_codeSegmentRomEnd; + +extern u32 *_csegmentSegmentStart; +extern u32 *_csegmentSegmentEnd; +extern u32 *_cdataSegmentRomStart; +extern u32 *_cdataSegmentRomEnd; + +extern u32 *_rarezipSegmentVaddrStart; +extern u32 *_rarezipSegmentVaddrEnd; +extern u32 *_rarezipSegmentRomStart; +extern u32 *_rarezipSegmentRomEnd; + +extern u32 *_gameSegmentVaddrStart; +extern u32 *_gameSegmentVaddrEnd; +extern u32 *_gameSegmentRomStart; +extern u32 *_gameSegmentRomEnd; + + +extern u8 sp_boot[]; +extern u8 sp_rmon[]; +extern u8 sp_idle[]; +extern u8 sp_shed[]; +extern u8 sp_main[]; +extern u8 sp_audi[]; +extern u8 sp_debug[]; + +#include "bondaicommands.h" // game ai commands +#include "bondconstants.h" // game constants +#include "bondtypes.h" // game structs and types + +#endif diff --git a/src/bondtypes.h b/src/bondtypes.h new file mode 100644 index 0000000..bd42b0a --- /dev/null +++ b/src/bondtypes.h @@ -0,0 +1,352 @@ +#ifndef _BONDTYPES_H_ +#define _BONDTYPES_H_ +#include "ultra64.h" +#include "bondconstants.h" +struct rgba_val{ + u8 r; + u8 g; + u8 b; + u8 a; +}; + +struct rgba_valf32{ + f32 r; + f32 g; + f32 b; + f32 a; +}; + +/****** + + The following struct ObjectRecord was copied from AIListLogic branch + and should be removed when merged + + note: only the necessary fields were copied in order to compile (not the full struct) + +******/ +typedef struct ObjectRecord +{ + u16 obj; +} ObjectRecord; + +/****** + + The following struct PropRecord was copied from AIListLogic branch + and should be removed when merged + + note: only the necessary fields were copied in order to compile (not the full struct) + +******/ +typedef struct PropRecord +{ + u8 type; + union + { + ObjectRecord *obj; + } Entityp; +} PropRecord; + +typedef struct CHRdata CHRdata, *PCHRdata; + +/* unfinished struct, WIP */ +struct CHRdata { + u16 chrnum; + s8 accuracyrating; + s8 speedrating; + u8 firecountleft; + u8 firecountright; + s8 headnum; + s8 actiontype; + s8 sleep; + s8 invalidmove; + s8 numclosearghs; + s8 numarghs; + u8 fadealpha; + s8 arghrating; + s8 aimendcount; + s8 bodynum; + /* 0x0010 */ + u8 grenadeprob; + s8 flinchcnt; + s16 hidden; + s32 chrflags; + void * pad; + void * model; + /* 0x0020 */ + void * field_20; + f32 chrwidth; + f32 chrheight; + void * bondpos; /* HACK - reused as fadeout counter on death, checks if pointer at 7F02B774 */ + /* 0x0030 */ + int field_30; + short field_34; + char field_36; + char field_37; + char field_38; + char field_39; + char field_3A; + char field_3B; + int path_target_position; + /* 0x0040 */ + int field_40; + int field_44; + int field_48; + int targetflag; + /* 0x0050 */ + int targettoshoot; + int field_54; + char type_of_motion; + char distance_counter_or_something; + short distance_to_target; + int field_5C; + /* 0x0060 */ + int target_position; + int field_64; + int field_68; + int field_6C; + /* 0x0070 */ + int path_segment_coverage; + int path_segment_length; + int field_78; + int field_7C; + /* 0x0080 */ + int field_80; + int field_84; + int field_88; + int field_8C; + /* 0x0090 */ + int field_90; + int segment_coverage; + int segment_length; + int field_9C; + /* 0x00A0 */ + int field_A0; + f32 sumground; + f32 manground; + f32 ground; + /* 0x00B0 */ + f32 fallspeed[3]; + f32 prevpos[3]; + /* 0x00B8 */ + s32 lastwalk60; + s32 lastmoveok60; + /* 0x00D0 */ + f32 visionrange; + s32 lastseetarget60; + f32 lastvisibletarg[3]; + /* 0x00E4 */ + void * field_E4; + s32 timeshooter; + f32 hearingscale; + /* 0x00F0 */ + s32 lastheartarget60; + u8 shadecol[4]; + u8 nextcol[4]; + f32 damage; + /* 0x0100 */ + f32 maxdamage; + void * ailist; + u16 aioffset; + u16 aireturnlist; + u8 flags; /* used by ai commands 81-85 */ + u8 flags2; /* used by ai commands 86-8A */ + u8 BITFIELD; + u8 random; + /* 0x0110 */ + s32 timer60; + u16 padpreset1; /* ID PAD_PRESET */ + u16 chrpreset1; /* ID CHR_PRESET */ + u16 chrseeshot; /* ID CHR_SEE_SHOT - ignores invincible/armoured guards */ + u16 chrseedie; /* ID CHR_SEE_DIE */ + /* 0x011C */ + f32 field_11C[2]; + f32 field_124[2]; + f32 field_12C[2]; + /* 0x0134 */ + int field_134; + int field_138; + f32 shotbondsum; + /* 0x0140 */ + f32 aimuplshoulder; + f32 aimuprshoulder; + f32 aimupback; + f32 aimsideback; + /* 0x0150 */ + f32 aimendlshoulder; + f32 aimendrshoulder; + f32 aimendback; + f32 aimendsideback; + /* 0x0160 */ + int * handle_positiondata[2]; + int * ptr_SEbuffer1; + int * ptr_SEbuffer2; + /* 0x0170 */ + int * ptr_SEbuffer3; + int * ptr_SEbuffer4; + int field_178; + int field_17C; + /* 0x0180 */ + char field_180; + char field_181; + char field_182; + char field_183; + int field_184; + int field_188; + int field_18C; + /* 0x0190 */ + int field_190; + int field_194; + int field_198; + int field_19C; + /* 0x01A0 */ + int field_1A0; + int field_1A4; + int field_1A8; + char field_1AC; + char field_1AD; + char field_1AE; + char field_1AF; + /* 0x01B0 */ + int field_1B0; + int field_1B4; + int field_1B8; + int field_1BC; + /* 0x01C0 */ + int field_1C0; + int field_1C4; + int field_1C8; + int field_1CC; + /* 0x01D0 */ + int field_1D0; + int field_1D4; + int * handle_positiondata_hat; +}; + +struct object_standard { + u16 extrascale:2; + u8 hidden2:1; + u8 type:1; + u16 obj; + u16 pad; + u32 flags; + u32 flags2; + void * runtime_ptr_obj_posdata; + void * runtime_ptr_obj_instance_controller; + void * runtime_MATRIX0; + void * runtime_MATRIX1; + void * runtime_MATRIX2; + void * runtime_MATRIX3; + void * runtime_MATRIX4; + void * runtime_MATRIX5; + void * runtime_MATRIX6; + void * runtime_MATRIX7; + void * runtime_MATRIX8; + void * runtime_MATRIX9; + void * runtime_MATRIXA; + void * runtime_MATRIXB; + void * runtime_MATRIXC; + void * runtime_MATRIXD; + void * runtime_MATRIXE; + void * runtime_MATRIXF; + f32 runtime_x_pos; + f32 runtime_y_pos; + f32 runtime_z_pos; + int runtime_bitflags; + int ptr_allocated_collisiondata_block; + int field_6C; + float field_70; + short damage; + short maxdamage; + char field_78; + char field_79; + char field_7A; + char field_7B; + char field_7C; + char field_7D; + char field_7E; + char field_7F; +}; + +struct watchMenuObjectiveText { + u32 id; + enum WATCH_BRIEFING_PAGE menu; + u16 reserved; + u16 text; + struct watchMenuObjectiveText * nextentry; +}; +//!FIXME all but text field cannot be trusted +struct objective_entry { + u32 id; + enum WATCH_BRIEFING_PAGE menu; + u16 reserved; + u16 text; + struct watchMenuObjectiveText * nextentry; +}; + +typedef struct sImageTableEntry { + u32 index; + u8 width; + u8 height; + u8 level; + u8 format; + u8 depth; + u8 flagsS; + u8 flagsT; + u8 pad; +} sImageTableEntry; + +typedef struct sGlobalImageTable { + u32 globalDL_0x000[30]; + u32 globalDL_0x078[42]; + u32 globalDL_0x120[42]; + u32 globalDL_0x1c8[42]; + u32 globalDL_0x270[42]; + u32 globalDL_0x318[42]; + u32 globalDL_0x3c0[42]; + u32 globalDL_0x468[42]; + u32 globalDL_0x510[42]; + u32 globalDL_0x5b8[42]; + u32 globalDL_0x660[42]; + u32 globalDL_0x708[42]; + u32 globalDL_0x7b0[42]; + u32 globalDL_0x858[42]; + u32 globalDL_0x900[42]; + u32 globalDL_0x9a8[42]; + u32 globalDL_0xa50[30]; + struct sImageTableEntry s_genericimage[1]; + struct sImageTableEntry s_impactimages[20]; + struct sImageTableEntry s_explosion_smokeimages[6]; + struct sImageTableEntry s_scattered_explosions[5]; + struct sImageTableEntry s_flareimage1[1]; + struct sImageTableEntry s_flareimage2[1]; + struct sImageTableEntry s_flareimage3[1]; + struct sImageTableEntry s_flareimage4[1]; + struct sImageTableEntry s_flareimage5[1]; + struct sImageTableEntry s_ammo9mmimage[1]; + struct sImageTableEntry s_rifleammoimage[1]; + struct sImageTableEntry s_shotgunammoimage[1]; + struct sImageTableEntry s_knifeammoimage[1]; + struct sImageTableEntry s_glammoimage[1]; + struct sImageTableEntry s_rocketammoimage[1]; + struct sImageTableEntry s_genericmineammoimage[1]; + struct sImageTableEntry s_grenadeammoimage[1]; + struct sImageTableEntry s_magnumammoimage[1]; + struct sImageTableEntry s_goldengunammoimage[1]; + struct sImageTableEntry s_remotemineammoimage[1]; + struct sImageTableEntry s_timedmineammoimage[1]; + struct sImageTableEntry s_proxmineammoimage[1]; + struct sImageTableEntry s_tankammoimage[1]; + struct sImageTableEntry s_crosshairimage[1]; + struct sImageTableEntry s_betacrosshairimage[1]; + struct sImageTableEntry s_glassoverlayimage[2]; + struct sImageTableEntry s_monitorimages[50]; + struct sImageTableEntry s_skywaterimages[3]; + struct sImageTableEntry s_mainfolderimages[6]; + struct sImageTableEntry s_mpradarimages[1]; + struct sImageTableEntry s_mpcharselimages[64]; + struct sImageTableEntry s_mpstageselimages[17]; +} sGlobalImageTable; + + + +#endif diff --git a/src/boot.c b/src/boot.c new file mode 100644 index 0000000..927ffa9 --- /dev/null +++ b/src/boot.c @@ -0,0 +1,108 @@ +#include +#include "boot.h" +#include "bondgame.h" +#include "inflate/inflate.h" + +/** + * @file boot.c + * This file sets up initial tlb mapping then jumps to boot1. + * + * In particular, it: + * - also contains functions that grab segment addresses + * - will likely always be asm as it manipulates tlb directly + */ + + +/** + * 1050 70000450 registers 70000000-70400000 in TLB, JR to 70000510 + * technically, this is used in bootcode and used prior to TLB registration + */ +GLOBAL_ASM( +glabel boot +/* 001050 70000450 24020001 */ li $v0, 1 +/* 001054 70000454 24030000 */ li $v1, 0 +/* 001058 70000458 24040000 */ li $a0, 0 +/* 00105C 7000045C 3C057000 */ lui $a1, 0x7000 +/* 001060 70000460 2406001F */ li $a2, 31 +/* 001064 70000464 24070001 */ li $a3, 1 +/* 001068 70000468 3C08007F */ lui $t0, (0x007FE000 >> 16) # lui $t0, 0x7f +/* 00106C 7000046C 3508E000 */ ori $t0, (0x007FE000 & 0xFFFF) # ori $t0, $t0, 0xe000 +/* 001070 70000470 40820000 */ mtc0 $v0, $0 +/* 001074 70000474 00031B02 */ srl $v1, $v1, 0xc +/* 001078 70000478 00031980 */ sll $v1, $v1, 6 +/* 00107C 7000047C 00661821 */ addu $v1, $v1, $a2 +/* 001080 70000480 40831000 */ mtc0 $v1, $2 +/* 001084 70000484 00042302 */ srl $a0, $a0, 0xc +/* 001088 70000488 00042180 */ sll $a0, $a0, 6 +/* 00108C 7000048C 00872021 */ addu $a0, $a0, $a3 +/* 001090 70000490 40841800 */ mtc0 $a0, $3 +/* 001094 70000494 00052342 */ srl $a0, $a1, 0xd +/* 001098 70000498 00042340 */ sll $a0, $a0, 0xd +/* 00109C 7000049C 40845000 */ mtc0 $a0, $10 +/* 0010A0 700004A0 40882800 */ mtc0 $t0, $5 +/* 0010A4 700004A4 00000000 */ nop +/* 0010A8 700004A8 42000002 */ tlbwi +/* 0010AC 700004AC 3C0A7000 */ lui $t2, %hi(init) # $t2, 0x7000 +/* 0010B0 700004B0 254A0510 */ addiu $t2, %lo(init) # addiu $t2, $t2, 0x510 +/* 0010B4 700004B4 01400008 */ jr $t2 +/* 0010B8 700004B8 00000000 */ nop +) + +/** + * Due to alignments the following functions are included here + * these could have been assembly originally, or more likely part + * of the code inserted by the custom makerom rare created + */ + +/** + *10BC 700004BC V0=80020D90: target address for 21990 (USA) + */ +u32 *get_csegmentSegmentStart(void) +{ + return &_csegmentSegmentStart; +} + +/** + *10C8 700004C8 V0=21990: ROM address of main compressed block (USA) + */ +u32 *get_cdataSegmentRomStart(void) +{ + return &_cdataSegmentRomStart; +} + +/** + *10D4 700004D4 V0=33590: ROM address of 70200000 RareZip ASM [33590-34B30 ROM] (USA) + */ +u32 *get_cdataSegmentRomEnd(void) +{ + return &_cdataSegmentRomEnd; +} + +/** + *10E0 700004E0 V0=33590: ROM address of 70200000 RareZip ASM [33590-34B30 ROM] (USA) + */ +u32 *get_rarezipSegmentRomStart(void) +{ + return &_rarezipSegmentRomStart; +} + +/** + *10EC 700004EC V0=34B30: ROM address of 7F- TLB routines (USA) + */ +u32 *get_rarezipSegmentRomEnd(void) +{ + return &_rarezipSegmentRomEnd; +} + +/** + * 10F8 700004F8 redirect to 7020141C: decompression routine + * accepts: A0=p->source, A1=p->target, A2=p->buffer + * sets A3=7020141C, then jumps to address + */ +GLOBAL_ASM( +glabel jump_decompressfile +/* 0010F8 700004F8 3C077020 */ lui $a3, %hi(decompress_entry) # $a3, 0x7020 +/* 0010FC 700004FC 24E7141C */ addiu $a3, %lo(decompress_entry) # addiu $a3, $a3, 0x141c +/* 001100 70000500 00E00008 */ jr $a3 +/* 001104 70000504 00000000 */ nop +) diff --git a/src/boot.h b/src/boot.h new file mode 100644 index 0000000..a1a8dbc --- /dev/null +++ b/src/boot.h @@ -0,0 +1,12 @@ +#ifndef _BOOT_H_ +#define _BOOT_H_ +#include + +u32 *get_csegmentSegmentStart(void); +u32 *get_cdataSegmentRomStart(void); +u32 *get_cdataSegmentRomEnd(void); +u32 *get_rarezipSegmentRomStart(void); +u32 *get_rarezipSegmentRomEnd(void); +u32 jump_decompressfile(u32 source, u32 target, u32 buffer); + +#endif diff --git a/src/bootcode.s b/src/bootcode.s new file mode 100644 index 0000000..dae7251 --- /dev/null +++ b/src/bootcode.s @@ -0,0 +1,899 @@ +# Super Mario 64 (J) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +/* 000040 00000000 40806800 */ mtc0 $zero, $13 +/* 000044 00000004 40804800 */ mtc0 $zero, $9 +/* 000048 00000008 40805800 */ mtc0 $zero, $11 +/* 00004C 0000000C 3C08A470 */ lui $t0, 0xa470 +/* 000050 00000010 25080000 */ addiu $t0, $t0, 0 +/* 000054 00000014 8D09000C */ lw $t1, 0xc($t0) +/* 000058 00000018 152000ED */ bnez $t1, .L000003D0 +/* 00005C 0000001C 00000000 */ nop +/* 000060 00000020 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 000064 00000024 AFB30000 */ sw $s3, ($sp) +/* 000068 00000028 AFB40004 */ sw $s4, 4($sp) +/* 00006C 0000002C AFB50008 */ sw $s5, 8($sp) +/* 000070 00000030 AFB6000C */ sw $s6, 0xc($sp) +/* 000074 00000034 AFB70010 */ sw $s7, 0x10($sp) +/* 000078 00000038 3C08A470 */ lui $t0, 0xa470 +/* 00007C 0000003C 25080000 */ addiu $t0, $t0, 0 +/* 000080 00000040 3C0AA3F8 */ lui $t2, %hi(0xA3F80004) # $t2, 0xa3f8 +/* 000084 00000044 3C0BA3F0 */ lui $t3, 0xa3f0 +/* 000088 00000048 3C0CA430 */ lui $t4, 0xa430 +/* 00008C 0000004C 258C0000 */ addiu $t4, $t4, 0 +/* 000090 00000050 34090040 */ ori $t1, $zero, 64 +/* 000094 00000054 AD090004 */ sw $t1, 4($t0) +/* 000098 00000058 24111F40 */ li $s1, 8000 +.L0000005C: +/* 00009C 0000005C 00000000 */ nop +/* 0000A0 00000060 2231FFFF */ addi $s1, $s1, -1 +/* 0000A4 00000064 1620FFFD */ bnez $s1, .L0000005C +/* 0000A8 00000068 00000000 */ nop +/* 0000AC 0000006C AD000008 */ sw $zero, 8($t0) +/* 0000B0 00000070 24090014 */ ori $t1, $zero, 20 +/* 0000B4 00000074 AD09000C */ sw $t1, 0xc($t0) +/* 0000B8 00000078 AD000000 */ sw $zero, ($t0) +/* 0000BC 0000007C 24110004 */ li $s1, 4 +.L00000080: +/* 0000C0 00000080 00000000 */ nop +/* 0000C4 00000084 2231FFFF */ addi $s1, $s1, -1 +/* 0000C8 00000088 1620FFFD */ bnez $s1, .L00000080 +/* 0000CC 0000008C 00000000 */ nop +/* 0000D0 00000090 3209000E */ ori $t1, $zero, 14 +/* 0000D4 00000094 AD090000 */ sw $t1, ($t0) +/* 0000D8 00000098 24110020 */ li $s1, 32 +.L0000009C: +/* 0000DC 0000009C 2231FFFF */ addi $s1, $s1, -1 +/* 0000E0 000000A0 1620FFFE */ bnez $s1, .L0000009C +/* 0000E4 000000A4 3409010F */ ori $t1, $zero, 271 +/* 0000E8 000000A8 AD890000 */ sw $t1, ($t4) +/* 0000EC 000000AC 3C091808 */ lui $t1, (0x18082838 >> 16) # lui $t1, 0x1808 +/* 0000F0 000000B0 35292838 */ ori $t1, (0x18082838 & 0xFFFF) # ori $t1, $t1, 0x2838 +/* 0000F4 000000B4 AD490008 */ sw $t1, %lo(0xA3F80008)($t2) +/* 0000F8 000000B8 AD400014 */ sw $zero, %lo(0xA3F80014)($t2) +/* 0000FC 000000BC 3C098000 */ lui $t1, 0x8000 +/* 000100 000000C0 AD490004 */ sw $t1, %lo(0xA3F80004)($t2) +/* 000104 000000C4 00006825 */ move $t5, $zero +/* 000108 000000C8 00007025 */ move $t6, $zero +/* 00010C 000000CC 3C0FA3F0 */ lui $t7, %hi(0xA3F00018) # $t7, 0xa3f0 +/* 000110 000000D0 0000C025 */ move $t8, $zero +/* 000114 000000D4 3C19A3F0 */ lui $t9, 0xa3f0 +/* 000118 000000D8 3C16A000 */ lui $s6, 0xa000 +/* 00011C 000000DC 0000B825 */ move $s7, $zero +/* 000120 000000E0 3C06A3F0 */ lui $a2, 0xa3f0 +/* 000124 000000E4 3C07A000 */ lui $a3, 0xa000 +/* 000128 000000E8 00009025 */ move $s2, $zero +/* 00012C 000000EC 3C14A000 */ lui $s4, 0xa000 +/* 000130 000000F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 000134 000000F4 03A0F025 */ move $fp, $sp +/* 000138 000000F8 3C10A430 */ lui $s0, %hi(0xA4300004) # $s0, 0xa430 +/* 00013C 000000FC 8E100004 */ lw $s0, %lo(0xA4300004)($s0) +/* 000140 00000100 3C110101 */ lui $s1, 0x0101 # $s1, 0x101 +/* 000144 00000104 26310101 */ addiu $s1, 0x0101 # addiu $s1, $s1, 0x101 +/* 000148 00000108 16110005 */ bne $s0, $s1, .L00000120 +/* 00014C 0000010C 00000000 */ nop +/* 000150 00000110 24100200 */ li $s0, 512 +/* 000154 00000114 35714000 */ ori $s1, $t3, 0x4000 +/* 000158 00000118 10000003 */ b .L00000128 +/* 00015C 0000011C 00000000 */ nop +.L00000120: +/* 000160 00000120 24100400 */ li $s0, 1024 +/* 000164 00000124 35718000 */ ori $s1, $t3, 0x8000 +.L00000128: +/* 000168 00000128 AE2E0004 */ sw $t6, 4($s1) +/* 00016C 0000012C 25F5000C */ addiu $s5, $t7, 0xc +/* 000170 00000130 0D0001DE */ jal func_04000778 +/* 000174 00000134 00000000 */ nop +/* 000178 00000138 10400038 */ beqz $v0, .L0000021C +/* 00017C 0000013C 00000000 */ nop +/* 000180 00000140 AFA20000 */ sw $v0, ($sp) +/* 000184 00000144 24092000 */ li $t1, 8192 +/* 000188 00000148 AD890000 */ sw $t1, ($t4) +/* 00018C 0000014C 8DEB0000 */ lw $t3, ($t7) +/* 000190 00000150 3C08F0FF */ lui $t0, 0xf0ff +/* 000194 00000154 01685824 */ and $t3, $t3, $t0 +/* 000198 00000158 AFAB0004 */ sw $t3, 4($sp) +/* 00019C 0000015C 23BD0008 */ addi $sp, $sp, 8 +/* 0001A0 00000160 24091000 */ li $t1, 4096 +/* 0001A4 00000164 AD890000 */ sw $t1, ($t4) +/* 0001A8 00000168 3C08B019 */ lui $t0, 0xb019 +/* 0001AC 0000016C 1568000C */ bne $t3, $t0, .L000001A0 +/* 0001B0 00000170 00000000 */ nop +/* 0001B4 00000174 3C080800 */ lui $t0, 0x800 +/* 0001B8 00000178 0308C020 */ add $t8, $t8, $t0 +/* 0001BC 0000017C 0330C820 */ add $t9, $t9, $s0 +/* 0001C0 00000180 0330C820 */ add $t9, $t9, $s0 +/* 0001C4 00000184 3C080020 */ lui $t0, 0x20 +/* 0001C8 00000188 02C8B020 */ add $s6, $s6, $t0 +/* 0001CC 0000018C 0288A020 */ add $s4, $s4, $t0 +/* 0001D0 00000190 00129040 */ sll $s2, $s2, 1 +/* 0001D4 00000194 22520001 */ addi $s2, $s2, 1 +/* 0001D8 00000198 10000003 */ b .L000001A8 +/* 0001DC 0000019C 00000000 */ nop +.L000001A0: +/* 0001E0 000001A0 3C080010 */ lui $t0, 0x10 +/* 0001E4 000001A4 0288A020 */ add $s4, $s4, $t0 +.L000001A8: +/* 0001E8 000001A8 24082000 */ li $t0, 8192 +/* 0001EC 000001AC AD880000 */ sw $t0, ($t4) +/* 0001F0 000001B0 8DE90024 */ lw $t1, %lo(0xA3F00024)($t7) +/* 0001F4 000001B4 8DFA0000 */ lw $k0, ($t7) +/* 0001F8 000001B8 24081000 */ li $t0, 4096 +/* 0001FC 000001BC AD880000 */ sw $t0, ($t4) +/* 000200 000001C0 3129FFFF */ andi $t1, $t1, 0xffff +/* 000204 000001C4 24080500 */ li $t0, 1280 +/* 000208 000001C8 15280009 */ bne $t1, $t0, .L000001F0 +/* 00020C 000001CC 00000000 */ nop +/* 000210 000001D0 3C1B0100 */ lui $k1, 0x100 +/* 000214 000001D4 035BD024 */ and $k0, $k0, $k1 +/* 000218 000001D8 17400005 */ bnez $k0, .L000001F0 +/* 00021C 000001DC 00000000 */ nop +/* 000220 000001E0 3C08101C */ lui $t0, (0x101C0A04 >> 16) # lui $t0, 0x101c +/* 000224 000001E4 35080A04 */ ori $t0, (0x101C0A04 & 0xFFFF) # ori $t0, $t0, 0xa04 +/* 000228 000001E8 ADE80018 */ sw $t0, %lo(0xA3F00018)($t7) +/* 00022C 000001EC 10000003 */ b .L000001FC +.L000001F0: +/* 000230 000001F0 3C08080C */ lui $t0, (0x080C1204 >> 16) # lui $t0, 0x80c +/* 000234 000001F4 35081204 */ ori $t0, (0x080C1204 & 0xFFFF) # ori $t0, $t0, 0x1204 +/* 000238 000001F8 ADE80018 */ sw $t0, %lo(0xA3F00018)($t7) +.L000001FC: +/* 00023C 000001FC 3C080800 */ lui $t0, 0x800 +/* 000240 00000200 01C87020 */ add $t6, $t6, $t0 +/* 000244 00000204 01F07820 */ add $t7, $t7, $s0 +/* 000248 00000208 01F07820 */ add $t7, $t7, $s0 +/* 00024C 0000020C 25AD0001 */ addiu $t5, $t5, 1 +/* 000250 00000210 2DA80008 */ sltiu $t0, $t5, 8 +/* 000254 00000214 1500FFC4 */ bnez $t0, .L00000128 +/* 000258 00000218 00000000 */ nop +.L0000021C: +/* 00025C 0000021C 3C08C400 */ lui $t0, 0xc400 +/* 000260 00000220 AD48000C */ sw $t0, %lo(0xA3F8000C)($t2) +/* 000264 00000224 3C088000 */ lui $t0, 0x8000 +/* 000268 00000228 AD480004 */ sw $t0, %lo(0xA3F80004)($t2) +/* 00026C 0000022C 03C0E825 */ move $sp, $fp +/* 000270 00000230 00001825 */ move $v1, $zero +.L00000234: +/* 000274 00000234 8FA90004 */ lw $t1, 4($sp) +/* 000278 00000238 3C08B009 */ lui $t0, 0xb009 +/* 00027C 0000023C 15280016 */ bne $t1, $t0, .L00000298 +/* 000280 00000240 00000000 */ nop +/* 000284 00000244 AE380004 */ sw $t8, 4($s1) +/* 000288 00000248 2735000C */ addiu $s5, $t9, 0xc +/* 00028C 0000024C 8FA40000 */ lw $a0, ($sp) +/* 000290 00000250 23BD0008 */ addi $sp, $sp, 8 +/* 000294 00000254 24050001 */ li $a1, 1 +/* 000298 00000258 0D000290 */ jal func_04000A40 +/* 00029C 0000025C 00000000 */ nop +/* 0002A0 00000260 8EC80000 */ lw $t0, ($s6) +/* 0002A4 00000264 3C080008 */ lui $t0, 8 +/* 0002A8 00000268 01164020 */ add $t0, $t0, $s6 +/* 0002AC 0000026C 8D090000 */ lw $t1, ($t0) +/* 0002B0 00000270 8EC80000 */ lw $t0, ($s6) +/* 0002B4 00000274 3C080008 */ lui $t0, 8 +/* 0002B8 00000278 01164020 */ add $t0, $t0, $s6 +/* 0002BC 0000027C 8D090000 */ lw $t1, ($t0) +/* 0002C0 00000280 3C080400 */ lui $t0, 0x400 +/* 0002C4 00000284 01C87020 */ add $t6, $t6, $t0 +/* 0002C8 00000288 0330C820 */ add $t9, $t9, $s0 +/* 0002CC 0000028C 3C080010 */ lui $t0, 0x10 +/* 0002D0 00000290 02C8B020 */ add $s6, $s6, $t0 +/* 0002D4 00000294 10000021 */ b .L0000031C +.L00000298: +/* 0002D8 00000298 AE370004 */ sw $s7, 4($s1) +/* 0002DC 0000029C 24D5000C */ addiu $s5, $a2, 0xc +/* 0002E0 000002A0 8FA40000 */ lw $a0, ($sp) +/* 0002E4 000002A4 23BD0008 */ addi $sp, $sp, 8 +/* 0002E8 000002A8 24050001 */ li $a1, 1 +/* 0002EC 000002AC 0D000290 */ jal func_04000A40 +/* 0002F0 000002B0 00000000 */ nop +/* 0002F4 000002B4 8CE80000 */ lw $t0, ($a3) +/* 0002F8 000002B8 3C080008 */ lui $t0, 8 +/* 0002FC 000002BC 01074020 */ add $t0, $t0, $a3 +/* 000300 000002C0 8D090000 */ lw $t1, ($t0) +/* 000304 000002C4 3C080010 */ lui $t0, 0x10 +/* 000308 000002C8 01074020 */ add $t0, $t0, $a3 +/* 00030C 000002CC 8D090000 */ lw $t1, ($t0) +/* 000310 000002D0 3C080018 */ lui $t0, 0x18 +/* 000314 000002D4 01074020 */ add $t0, $t0, $a3 +/* 000318 000002D8 8D090000 */ lw $t1, ($t0) +/* 00031C 000002DC 8CE80000 */ lw $t0, ($a3) +/* 000320 000002E0 3C080008 */ lui $t0, 8 +/* 000324 000002E4 01074020 */ add $t0, $t0, $a3 +/* 000328 000002E8 8D090000 */ lw $t1, ($t0) +/* 00032C 000002EC 3C080010 */ lui $t0, 0x10 +/* 000330 000002F0 01074020 */ add $t0, $t0, $a3 +/* 000334 000002F4 8D090000 */ lw $t1, ($t0) +/* 000338 000002F8 3C080018 */ lui $t0, 0x18 +/* 00033C 000002FC 01074020 */ add $t0, $t0, $a3 +/* 000340 00000300 8D090000 */ lw $t1, ($t0) +/* 000344 00000304 3C080800 */ lui $t0, 0x800 +/* 000348 00000308 02E8B820 */ add $s7, $s7, $t0 +/* 00034C 0000030C 00D03020 */ add $a2, $a2, $s0 +/* 000350 00000310 00D03020 */ add $a2, $a2, $s0 +/* 000354 00000314 3C080020 */ lui $t0, 0x20 +/* 000358 00000318 00E83820 */ add $a3, $a3, $t0 +.L0000031C: +/* 00035C 0000031C 24630001 */ addiu $v1, $v1, 1 +/* 000360 00000320 006D402A */ slt $t0, $v1, $t5 +/* 000364 00000324 1500FFC3 */ bnez $t0, .L00000234 +/* 000368 00000328 00000000 */ nop +/* 00036C 0000032C 3C0AA470 */ lui $t2, %hi(0xA4700010) # $t2, 0xa470 +/* 000370 00000330 001294C0 */ sll $s2, $s2, 0x13 +/* 000374 00000334 3C090006 */ lui $t1, (0x00063634 >> 16) # lui $t1, 6 +/* 000378 00000338 35293634 */ ori $t1, (0x00063634 & 0xFFFF) # ori $t1, $t1, 0x3634 +/* 00037C 0000033C 01324825 */ or $t1, $t1, $s2 +/* 000380 00000340 AD490010 */ sw $t1, %lo(0xA4700010)($t2) +/* 000384 00000344 8D490010 */ lw $t1, %lo(0xA4700010)($t2) +/* 000388 00000348 3C08A000 */ lui $t0, %hi(0xA0000018) # $t0, 0xa000 +/* 00038C 0000034C 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 +/* 000390 00000350 3C090FFF */ lui $t1, (0x0FFFFFFF >> 16) # lui $t1, 0xfff +/* 000394 00000354 3529FFFF */ ori $t1, (0x0FFFFFFF & 0xFFFF) # ori $t1, $t1, 0xffff +/* 000398 00000358 02C9B024 */ and $s6, $s6, $t1 +/* 00039C 0000035C AD160018 */ sw $s6, %lo(0xA0000018)($t0) +/* 0003A0 00000360 03C0E825 */ move $sp, $fp +/* 0003A4 00000364 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0003A8 00000368 8FB30000 */ lw $s3, ($sp) +/* 0003AC 0000036C 8FB40004 */ lw $s4, 4($sp) +/* 0003B0 00000370 8FB50008 */ lw $s5, 8($sp) +/* 0003B4 00000374 8FB6000C */ lw $s6, 0xc($sp) +/* 0003B8 00000378 8FB70010 */ lw $s7, 0x10($sp) +/* 0003BC 0000037C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0003C0 00000380 3C088000 */ lui $t0, 0x8000 +/* 0003C4 00000384 25080000 */ addiu $t0, $t0, 0 +/* 0003C8 00000388 25094000 */ addiu $t1, $t0, 0x4000 +/* 0003CC 0000038C 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 0003D0 00000390 4080E000 */ mtc0 $zero, $28 +/* 0003D4 00000394 4080E800 */ mtc0 $zero, $29 +.L00000398: +/* 0003D8 00000398 BD080000 */ cache 8, ($t0) +/* 0003DC 0000039C 0109082B */ sltu $at, $t0, $t1 +/* 0003E0 000003A0 1420FFFD */ bnez $at, .L00000398 +/* 0003E4 000003A4 25080020 */ addiu $t0, $t0, 0x20 +/* 0003E8 000003A8 3C088000 */ lui $t0, 0x8000 +/* 0003EC 000003AC 25080000 */ addiu $t0, $t0, 0 +/* 0003F0 000003B0 25092000 */ addiu $t1, $t0, 0x2000 +/* 0003F4 000003B4 2529FFF0 */ addiu $t1, $t1, -0x10 +.L000003B8: +/* 0003F8 000003B8 BD090000 */ cache 9, ($t0) +/* 0003FC 000003BC 0109082B */ sltu $at, $t0, $t1 +/* 000400 000003C0 1420FFFD */ bnez $at, .L000003B8 +/* 000404 000003C4 25080010 */ addiu $t0, $t0, 0x10 +/* 000408 000003C8 10000013 */ b .L00000418 +/* 00040C 000003CC 00000000 */ nop +.L000003D0: +/* 000410 000003D0 3C088000 */ lui $t0, 0x8000 +/* 000414 000003D4 25080000 */ addiu $t0, $t0, 0 +/* 000418 000003D8 25094000 */ addiu $t1, $t0, 0x4000 +/* 00041C 000003DC 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 000420 000003E0 4080E000 */ mtc0 $zero, $28 +/* 000424 000003E4 4080E800 */ mtc0 $zero, $29 +.L000003E8: +/* 000428 000003E8 BD080000 */ cache 8, ($t0) +/* 00042C 000003EC 0109082B */ sltu $at, $t0, $t1 +/* 000430 000003F0 1420FFFD */ bnez $at, .L000003E8 +/* 000434 000003F4 25080020 */ addiu $t0, $t0, 0x20 +/* 000438 000003F8 3C088000 */ lui $t0, 0x8000 +/* 00043C 000003FC 25080000 */ addiu $t0, $t0, 0 +/* 000440 00000400 25092000 */ addiu $t1, $t0, 0x2000 +/* 000444 00000404 2529FFF0 */ addiu $t1, $t1, -0x10 +.L00000408: +/* 000448 00000408 BD010000 */ cache 1, ($t0) +/* 00044C 0000040C 0109082B */ sltu $at, $t0, $t1 +/* 000450 00000410 1420FFFD */ bnez $at, .L00000408 +/* 000454 00000414 25080010 */ addiu $t0, $t0, 0x10 +.L00000418: +/* 000458 00000418 3C0AA400 */ lui $t2, 0xa400 +/* 00045C 0000041C 254A0000 */ addiu $t2, $t2, 0 +/* 000460 00000420 3C0BFFF0 */ lui $t3, 0xfff0 +/* 000464 00000424 3C090010 */ lui $t1, 0x0010 # $t1, 0x10 +/* 000468 00000428 014B5024 */ and $t2, $t2, $t3 +/* 00046C 0000042C 3C08A400 */ lui $t0, %hi(0xA40004C0) # $t0, 0xa400 +/* 000470 00000430 2529FFFF */ addiu $t1, -1 # addiu $t1, $t1, -1 +/* 000474 00000434 3C0BA400 */ lui $t3, %hi(0xA4000774) # $t3, 0xa400 +/* 000478 00000438 250804C0 */ addiu $t0, %lo(0xA40004C0) # addiu $t0, $t0, 0x4c0 +/* 00047C 0000043C 256B0774 */ addiu $t3, %lo(0xA4000774) # addiu $t3, $t3, 0x774 +/* 000480 00000440 01094024 */ and $t0, $t0, $t1 +/* 000484 00000444 01695824 */ and $t3, $t3, $t1 +/* 000488 00000448 3C09A000 */ lui $t1, 0xa000 +/* 00048C 0000044C 010A4025 */ or $t0, $t0, $t2 +/* 000490 00000450 016A5825 */ or $t3, $t3, $t2 +/* 000494 00000454 25290000 */ addiu $t1, $t1, 0 +.L00000458: +/* 000498 00000458 8D0D0000 */ lw $t5, ($t0) +/* 00049C 0000045C 25080004 */ addiu $t0, $t0, 4 +/* 0004A0 00000460 010B082B */ sltu $at, $t0, $t3 +/* 0004A4 00000464 25290004 */ addiu $t1, $t1, 4 +/* 0004A8 00000468 1420FFFB */ bnez $at, .L00000458 +/* 0004AC 0000046C AD2DFFFC */ sw $t5, -4($t1) +/* 0004B0 00000470 3C0C8000 */ lui $t4, 0x8000 +/* 0004B4 00000474 258C0000 */ addiu $t4, $t4, 0 +/* 0004B8 00000478 01800008 */ jr $t4 +/* 0004BC 0000047C 00000000 */ nop +/* 0004C0 00000480 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 0004C4 00000484 8D690008 */ lw $t1, %lo(0xB0000008)($t3) +/* 0004C8 00000488 3C0A1FFF */ lui $t2, (0x1FFFFFFF >> 16) # lui $t2, 0x1fff +/* 0004CC 0000048C 354AFFFF */ ori $t2, (0x1FFFFFFF & 0xFFFF) # ori $t2, $t2, 0xffff +/* 0004D0 00000490 3C01A460 */ lui $at, 0xa460 +/* 0004D4 00000494 012A4824 */ and $t1, $t1, $t2 +/* 0004D8 00000498 AC290000 */ sw $t1, ($at) +/* 0004DC 0000049C 3C08A460 */ lui $t0, %hi(0xA4600010) # $t0, 0xa460 +.L000004A0: +/* 0004E0 000004A0 8D080010 */ lw $t0, %lo(0xA4600010)($t0) +/* 0004E4 000004A4 31080002 */ andi $t0, $t0, 2 +/* 0004E8 000004A8 5500FFFD */ bnezl $t0, .L000004A0 +/* 0004EC 000004AC 3C08A460 */ lui $t0, 0xa460 +/* 0004F0 000004B0 24081000 */ li $t0, 4096 +/* 0004F4 000004B4 010B4020 */ add $t0, $t0, $t3 +/* 0004F8 000004B8 010A4024 */ and $t0, $t0, $t2 +/* 0004FC 000004BC 3C01A460 */ lui $at, %hi(0xA4600004) # $at, 0xa460 +/* 000500 000004C0 AC280004 */ sw $t0, %lo(0xA4600004)($at) +/* 000504 000004C4 3C0A0010 */ lui $t2, 0x0010 # $t2, 0x10 +/* 000508 000004C8 254AFFFF */ addiu $t2, 0xFFFF # addiu $t2, $t2, -1 +/* 00050C 000004CC 3C01A460 */ lui $at, %hi(0xA460000C) # $at, 0xa460 +/* 000510 000004D0 AC2A000C */ sw $t2, %lo(0xA460000C)($at) + +.L000004D4: +/* 000514 000004D4 00000000 */ nop +/* 000518 000004D8 00000000 */ nop +/* 00051C 000004DC 00000000 */ nop +/* 000520 000004E0 00000000 */ nop +/* 000524 000004E4 00000000 */ nop +/* 000528 000004E8 00000000 */ nop +/* 00052C 000004EC 00000000 */ nop +/* 000530 000004F0 00000000 */ nop +/* 000534 000004F4 00000000 */ nop +/* 000538 000004F8 00000000 */ nop +/* 00053C 000004FC 00000000 */ nop +/* 000540 00000500 00000000 */ nop +/* 000544 00000504 00000000 */ nop +/* 000548 00000508 00000000 */ nop +/* 00054C 0000050C 00000000 */ nop +/* 000550 00000510 00000000 */ nop +/* 000554 00000514 00000000 */ nop +/* 000558 00000518 00000000 */ nop +/* 00055C 0000051C 00000000 */ nop +/* 000560 00000520 00000000 */ nop +/* 000564 00000524 00000000 */ nop +/* 000568 00000528 00000000 */ nop +/* 00056C 0000052C 00000000 */ nop +/* 000570 00000530 00000000 */ nop +/* 000574 00000534 00000000 */ nop +/* 000578 00000538 00000000 */ nop +/* 00057C 0000053C 00000000 */ nop +/* 000580 00000540 00000000 */ nop +/* 000584 00000544 3C0BA460 */ lui $t3, %hi(0xA4600010) # $t3, 0xa460 +/* 000588 00000548 8D6B0010 */ lw $t3, %lo(0xA4600010)($t3) +/* 00058C 0000054C 316B0001 */ andi $t3, $t3, 1 +/* 000590 00000550 1560FFE0 */ bnez $t3, .L000004D4 +/* 000594 00000554 00000000 */ nop +/* 000598 00000558 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 00059C 0000055C 8D640008 */ lw $a0, %lo(0xB0000008)($t3) +/* 0005A0 00000560 02C02825 */ move $a1, $s6 +/* 0005A4 00000564 3C015D58 */ lui $at, (0x5D588B65 >> 16) # lui $at, 0x5d58 +/* 0005A8 00000568 34218B65 */ ori $at, (0x5D588B65 & 0xFFFF) # ori $at, $at, 0x8b65 +/* 0005AC 0000056C 00A10019 */ multu $a1, $at +/* 0005B0 00000570 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0005B4 00000574 AFBF001C */ sw $ra, 0x1c($sp) +/* 0005B8 00000578 AFB00014 */ sw $s0, 0x14($sp) +/* 0005BC 0000057C 3C1F0010 */ lui $ra, 0x10 +/* 0005C0 00000580 00001825 */ move $v1, $zero +/* 0005C4 00000584 00004025 */ move $t0, $zero +/* 0005C8 00000588 00804825 */ move $t1, $a0 +/* 0005CC 0000058C 240D0020 */ li $t5, 32 +/* 0005D0 00000590 00001012 */ mflo $v0 +/* 0005D4 00000594 24420001 */ addiu $v0, $v0, 1 +/* 0005D8 00000598 00403825 */ move $a3, $v0 +/* 0005DC 0000059C 00405025 */ move $t2, $v0 +/* 0005E0 000005A0 00405825 */ move $t3, $v0 +/* 0005E4 000005A4 00408025 */ move $s0, $v0 +/* 0005E8 000005A8 00403025 */ move $a2, $v0 +/* 0005EC 000005AC 00406025 */ move $t4, $v0 +.L000005B0: +/* 0005F0 000005B0 8D220000 */ lw $v0, ($t1) +/* 0005F4 000005B4 00E21821 */ addu $v1, $a3, $v0 +/* 0005F8 000005B8 0067082B */ sltu $at, $v1, $a3 +/* 0005FC 000005BC 10200002 */ beqz $at, .L000005C8 +/* 000600 000005C0 00602825 */ move $a1, $v1 +/* 000604 000005C4 254A0001 */ addiu $t2, $t2, 1 +.L000005C8: +/* 000608 000005C8 3043001F */ andi $v1, $v0, 0x1f +/* 00060C 000005CC 01A37823 */ subu $t7, $t5, $v1 +/* 000610 000005D0 01E2C006 */ srlv $t8, $v0, $t7 +/* 000614 000005D4 00627004 */ sllv $t6, $v0, $v1 +/* 000618 000005D8 01D82025 */ or $a0, $t6, $t8 +/* 00061C 000005DC 00C2082B */ sltu $at, $a2, $v0 +/* 000620 000005E0 00A03825 */ move $a3, $a1 +/* 000624 000005E4 01625826 */ xor $t3, $t3, $v0 +/* 000628 000005E8 10200004 */ beqz $at, .L000005FC +/* 00062C 000005EC 02048021 */ addu $s0, $s0, $a0 +/* 000630 000005F0 00E2C826 */ xor $t9, $a3, $v0 +/* 000634 000005F4 10000002 */ b .L00000600 +/* 000638 000005F8 03263026 */ xor $a2, $t9, $a2 +.L000005FC: +/* 00063C 000005FC 00C43026 */ xor $a2, $a2, $a0 +.L00000600: +/* 000640 00000600 25080004 */ addiu $t0, $t0, 4 +/* 000644 00000604 00507826 */ xor $t7, $v0, $s0 +/* 000648 00000608 25290004 */ addiu $t1, $t1, 4 +/* 00064C 0000060C 151FFFE8 */ bne $t0, $ra, .L000005B0 +/* 000650 00000610 01EC6021 */ addu $t4, $t7, $t4 +/* 000654 00000614 00EA7026 */ xor $t6, $a3, $t2 +/* 000658 00000618 01CB3826 */ xor $a3, $t6, $t3 +/* 00065C 0000061C 0206C026 */ xor $t8, $s0, $a2 +/* 000660 00000620 030C8026 */ xor $s0, $t8, $t4 +/* 000664 00000624 3C0BB000 */ lui $t3, %hi(0xB0000014) # $t3, 0xb000 +/* 000668 00000628 8D680010 */ lw $t0, %lo(0xB0000010)($t3) +/* 00066C 0000062C 14E80006 */ bne $a3, $t0, .L00000648 +/* 000670 00000630 00000000 */ nop +/* 000674 00000634 8D680014 */ lw $t0, %lo(0xB0000014)($t3) +/* 000678 00000638 16080003 */ bne $s0, $t0, .L00000648 +/* 00067C 0000063C 00000000 */ nop +/* 000680 00000640 04110003 */ bal func_00000650 +/* 000684 00000644 00000000 */ nop +glabel func_00000648 +.L00000648: +/* 000688 00000648 0411FFFF */ bal func_00000648 +/* 00068C 0000064C 00000000 */ nop +glabel func_00000650 +/* 000690 00000650 3C09A408 */ lui $t1, 0xa408 +/* 000694 00000654 8D290000 */ lw $t1, ($t1) +/* 000698 00000658 8FB00014 */ lw $s0, 0x14($sp) +/* 00069C 0000065C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0006A0 00000660 11200006 */ beqz $t1, .L0000067C +/* 0006A4 00000664 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0006A8 00000668 240A0041 */ li $t2, 65 +/* 0006AC 0000066C 3C01A404 */ lui $at, %hi(0xA4040010) # $at, 0xa404 +/* 0006B0 00000670 AC2A0010 */ sw $t2, %lo(0xA4040010)($at) +/* 0006B4 00000674 3C01A408 */ lui $at, 0xa408 +/* 0006B8 00000678 AC200000 */ sw $zero, ($at) +.L0000067C: +/* 0006BC 0000067C 3C0B00AA */ lui $t3, (0x00AAAAAE >> 16) # lui $t3, 0xaa +/* 0006C0 00000680 356BAAAE */ ori $t3, (0x00AAAAAE & 0xFFFF) # ori $t3, $t3, 0xaaae +/* 0006C4 00000684 3C01A404 */ lui $at, %hi(0xA4040010) # $at, 0xa404 +/* 0006C8 00000688 AC2B0010 */ sw $t3, %lo(0xA4040010)($at) +/* 0006CC 0000068C 3C01A430 */ lui $at, %hi(0xA430000C) # $at, 0xa430 +/* 0006D0 00000690 24080555 */ li $t0, 1365 +/* 0006D4 00000694 AC28000C */ sw $t0, %lo(0xA430000C)($at) +/* 0006D8 00000698 3C01A480 */ lui $at, %hi(0xA4800018) # $at, 0xa480 +/* 0006DC 0000069C AC200018 */ sw $zero, %lo(0xA4800018)($at) +/* 0006E0 000006A0 3C01A450 */ lui $at, %hi(0xA450000C) # $at, 0xa450 +/* 0006E4 000006A4 AC20000C */ sw $zero, %lo(0xA450000C)($at) +/* 0006E8 000006A8 3C01A430 */ lui $at, 0xa430 +/* 0006EC 000006AC 24090800 */ li $t1, 2048 +/* 0006F0 000006B0 AC290000 */ sw $t1, ($at) +/* 0006F4 000006B4 24090002 */ li $t1, 2 +/* 0006F8 000006B8 3C01A460 */ lui $at, %hi(0xA4600010) # $at, 0xa460 +/* 0006FC 000006BC 3C08A000 */ lui $t0, %hi(0xA0000008) # $t0, 0xa000 +/* 000700 000006C0 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 +/* 000704 000006C4 AC290010 */ sw $t1, %lo(0xA4600010)($at) +/* 000708 000006C8 AD170014 */ sw $s7, %lo(0xA0000014)($t0) +/* 00070C 000006CC AD15000C */ sw $s5, %lo(0xA000000C)($t0) +/* 000710 000006D0 AD130004 */ sw $s3, %lo(0xA0000004)($t0) +/* 000714 000006D4 12600004 */ beqz $s3, .L000006E8 +/* 000718 000006D8 AD140000 */ sw $s4, ($t0) +/* 00071C 000006DC 3C09A600 */ lui $t1, 0xa600 +/* 000720 000006E0 10000003 */ b .L000006F0 +/* 000724 000006E4 25290000 */ addiu $t1, $t1, 0 +.L000006E8: +/* 000728 000006E8 3C09B000 */ lui $t1, 0xb000 +/* 00072C 000006EC 25290000 */ addiu $t1, $t1, 0 +.L000006F0: +/* 000730 000006F0 AD090008 */ sw $t1, %lo(0xA0000008)($t0) +/* 000734 000006F4 3C08A400 */ lui $t0, 0xa400 +/* 000738 000006F8 25080000 */ addiu $t0, $t0, 0 +/* 00073C 000006FC 21091000 */ addi $t1, $t0, 0x1000 +.L00000700: +/* 000740 00000700 25080004 */ addiu $t0, $t0, 4 +/* 000744 00000704 1509FFFE */ bne $t0, $t1, .L00000700 +/* 000748 00000708 AD00FFFC */ sw $zero, -4($t0) +/* 00074C 0000070C 3C08A400 */ lui $t0, %hi(0xA4001000) # $t0, 0xa400 +/* 000750 00000710 25081000 */ addiu $t0, %lo(0xA4001000) # addiu $t0, $t0, 0x1000 +/* 000754 00000714 21091000 */ addi $t1, $t0, 0x1000 +.L00000718: +/* 000758 00000718 25080004 */ addiu $t0, $t0, 4 +/* 00075C 0000071C 1509FFFE */ bne $t0, $t1, .L00000718 +/* 000760 00000720 AD00FFFC */ sw $zero, -4($t0) +/* 000764 00000724 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 000768 00000728 8D690008 */ lw $t1, %lo(0xB0000008)($t3) +/* 00076C 0000072C 01200008 */ jr $t1 +/* 000770 00000730 00000000 */ nop +/* 000774 00000734 00000000 */ nop +glabel func_04000778 +/* 000778 00000738 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 00077C 0000073C AFB00040 */ sw $s0, 0x40($sp) +/* 000780 00000740 AFB10044 */ sw $s1, 0x44($sp) +/* 000784 00000744 00008825 */ move $s1, $zero +/* 000788 00000748 00008025 */ move $s0, $zero +/* 00078C 0000074C AFA20000 */ sw $v0, ($sp) +/* 000790 00000750 AFA30004 */ sw $v1, 4($sp) +/* 000794 00000754 AFA40008 */ sw $a0, 8($sp) +/* 000798 00000758 AFA5000C */ sw $a1, 0xc($sp) +/* 00079C 0000075C AFA60010 */ sw $a2, 0x10($sp) +/* 0007A0 00000760 AFA70014 */ sw $a3, 0x14($sp) +/* 0007A4 00000764 AFA80018 */ sw $t0, 0x18($sp) +/* 0007A8 00000768 AFA9001C */ sw $t1, 0x1c($sp) +/* 0007AC 0000076C AFAA0020 */ sw $t2, 0x20($sp) +/* 0007B0 00000770 AFAB0024 */ sw $t3, 0x24($sp) +/* 0007B4 00000774 AFAC0028 */ sw $t4, 0x28($sp) +/* 0007B8 00000778 AFAD002C */ sw $t5, 0x2c($sp) +/* 0007BC 0000077C AFAE0030 */ sw $t6, 0x30($sp) +/* 0007C0 00000780 AFAF0034 */ sw $t7, 0x34($sp) +/* 0007C4 00000784 AFB80038 */ sw $t8, 0x38($sp) +/* 0007C8 00000788 AFB9003C */ sw $t9, 0x3c($sp) +/* 0007CC 0000078C AFB20048 */ sw $s2, 0x48($sp) +/* 0007D0 00000790 AFB3004C */ sw $s3, 0x4c($sp) +/* 0007D4 00000794 AFB40050 */ sw $s4, 0x50($sp) +/* 0007D8 00000798 AFB50054 */ sw $s5, 0x54($sp) +/* 0007DC 0000079C AFB60058 */ sw $s6, 0x58($sp) +/* 0007E0 000007A0 AFB7005C */ sw $s7, 0x5c($sp) +/* 0007E4 000007A4 AFBE0060 */ sw $fp, 0x60($sp) +/* 0007E8 000007A8 AFBF0064 */ sw $ra, 0x64($sp) +.L000007AC: +/* 0007EC 000007AC 0D000220 */ jal func_04000880 +/* 0007F0 000007B0 00000000 */ nop +/* 0007F4 000007B4 26100001 */ addiu $s0, $s0, 1 +/* 0007F8 000007B8 2A090004 */ slti $t1, $s0, 4 +/* 0007FC 000007BC 1520FFFB */ bnez $t1, .L000007AC +/* 000800 000007C0 02228821 */ addu $s1, $s1, $v0 +/* 000804 000007C4 00112082 */ srl $a0, $s1, 2 +/* 000808 000007C8 0D000290 */ jal func_04000A40 +/* 00080C 000007CC 24050001 */ li $a1, 1 +/* 000810 000007D0 8FBF0064 */ lw $ra, 0x64($sp) +/* 000814 000007D4 00111082 */ srl $v0, $s1, 2 +/* 000818 000007D8 8FB10044 */ lw $s1, 0x44($sp) +/* 00081C 000007DC 8FA30004 */ lw $v1, 4($sp) +/* 000820 000007E0 8FA40008 */ lw $a0, 8($sp) +/* 000824 000007E4 8FA5000C */ lw $a1, 0xc($sp) +/* 000828 000007E8 8FA60010 */ lw $a2, 0x10($sp) +/* 00082C 000007EC 8FA70014 */ lw $a3, 0x14($sp) +/* 000830 000007F0 8FA80018 */ lw $t0, 0x18($sp) +/* 000834 000007F4 8FA9001C */ lw $t1, 0x1c($sp) +/* 000838 000007F8 8FAA0020 */ lw $t2, 0x20($sp) +/* 00083C 000007FC 8FAB0024 */ lw $t3, 0x24($sp) +/* 000840 00000800 8FAC0028 */ lw $t4, 0x28($sp) +/* 000844 00000804 8FAD002C */ lw $t5, 0x2c($sp) +/* 000848 00000808 8FAE0030 */ lw $t6, 0x30($sp) +/* 00084C 0000080C 8FAF0034 */ lw $t7, 0x34($sp) +/* 000850 00000810 8FB80038 */ lw $t8, 0x38($sp) +/* 000854 00000814 8FB9003C */ lw $t9, 0x3c($sp) +/* 000858 00000818 8FB00040 */ lw $s0, 0x40($sp) +/* 00085C 0000081C 8FB20048 */ lw $s2, 0x48($sp) +/* 000860 00000820 8FB3004C */ lw $s3, 0x4c($sp) +/* 000864 00000824 8FB40050 */ lw $s4, 0x50($sp) +/* 000868 00000828 8FB50054 */ lw $s5, 0x54($sp) +/* 00086C 0000082C 8FB60058 */ lw $s6, 0x58($sp) +/* 000870 00000830 8FB7005C */ lw $s7, 0x5c($sp) +/* 000874 00000834 8FBE0060 */ lw $fp, 0x60($sp) +/* 000878 00000838 03E00008 */ jr $ra +/* 00087C 0000083C 27BD00A0 */ addiu $sp, $sp, 0xa0 + +glabel func_04000880 +/* 000880 00000840 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 000884 00000844 AFBF001C */ sw $ra, 0x1c($sp) +/* 000888 00000848 00004825 */ move $t1, $zero +/* 00088C 0000084C 00005825 */ move $t3, $zero +/* 000890 00000850 00006025 */ move $t4, $zero +.L00000854: +/* 000894 00000854 299A0040 */ slti $k0, $t4, 0x40 +/* 000898 00000858 53400018 */ beql $k0, $zero, .L000008BC +/* 00089C 0000085C 00001025 */ move $v0, $zero +/* 0008A0 00000860 0D000243 */ jal func_0400090C +/* 0008A4 00000864 01802025 */ move $a0, $t4 +/* 0008A8 00000868 58400008 */ blezl $v0, .L0000088C +/* 0008AC 0000086C 293A0050 */ slti $k0, $t1, 0x50 +/* 0008B0 00000870 0049D023 */ subu $k0, $v0, $t1 +/* 0008B4 00000874 034C0019 */ multu $k0, $t4 +/* 0008B8 00000878 00404825 */ move $t1, $v0 +/* 0008BC 0000087C 0000D012 */ mflo $k0 +/* 0008C0 00000880 017A5821 */ addu $t3, $t3, $k0 +/* 0008C4 00000884 00000000 */ nop +/* 0008C8 00000888 293A0050 */ slti $k0, $t1, 0x50 +.L0000088C: +/* 0008CC 0000088C 1740FFF1 */ bnez $k0, .L00000854 +/* 0008D0 00000890 258C0001 */ addiu $t4, $t4, 1 +/* 0008D4 00000894 000B2080 */ sll $a0, $t3, 2 +/* 0008D8 00000898 008B2023 */ subu $a0, $a0, $t3 +/* 0008DC 0000089C 00042080 */ sll $a0, $a0, 2 +/* 0008E0 000008A0 008B2023 */ subu $a0, $a0, $t3 +/* 0008E4 000008A4 00042040 */ sll $a0, $a0, 1 +/* 0008E8 000008A8 0D000260 */ jal func_04000980 +/* 0008EC 000008AC 2484FC90 */ addiu $a0, $a0, -0x370 +/* 0008F0 000008B0 10000003 */ b .L000008C0 +/* 0008F4 000008B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0008F8 000008B8 00001025 */ move $v0, $zero +.L000008BC: +/* 0008FC 000008BC 8FBF001C */ lw $ra, 0x1c($sp) +.L000008C0: +/* 000900 000008C0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 000904 000008C4 03E00008 */ jr $ra +/* 000908 000008C8 00000000 */ nop + +glabel func_0400090C +/* 00090C 000008CC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000910 000008D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 000914 000008D4 00001025 */ move $v0, $zero +/* 000918 000008D8 0D000290 */ jal func_04000A40 +/* 00091C 000008DC 24050002 */ li $a1, 2 +/* 000920 000008E0 0000F025 */ move $fp, $zero +/* 000924 000008E4 241AFFFF */ li $k0, -1 +.L000008E8: +/* 000928 000008E8 AE9A0004 */ sw $k0, 4($s4) +/* 00092C 000008EC 8E830004 */ lw $v1, 4($s4) +/* 000930 000008F0 AE9A0000 */ sw $k0, ($s4) +/* 000934 000008F4 AE9A0000 */ sw $k0, ($s4) +/* 000938 000008F8 0000E025 */ move $gp, $zero +/* 00093C 000008FC 00031C02 */ srl $v1, $v1, 0x10 +.L00000900: +/* 000940 00000900 307A0001 */ andi $k0, $v1, 1 +/* 000944 00000904 53400003 */ beql $k0, $zero, .L00000914 +/* 000948 00000908 279C0001 */ addiu $gp, $gp, 1 +/* 00094C 0000090C 24420001 */ addiu $v0, $v0, 1 +/* 000950 00000910 279C0001 */ addiu $gp, $gp, 1 +.L00000914: +/* 000954 00000914 2B9A0008 */ slti $k0, $gp, 8 +/* 000958 00000918 1740FFF9 */ bnez $k0, .L00000900 +/* 00095C 0000091C 00031842 */ srl $v1, $v1, 1 +/* 000960 00000920 27DE0001 */ addiu $fp, $fp, 1 +/* 000964 00000924 2BDA000A */ slti $k0, $fp, 0xa +/* 000968 00000928 5740FFEF */ bnezl $k0, .L000008E8 +/* 00096C 0000092C 241AFFFF */ li $k0, -1 +/* 000970 00000930 8FBF001C */ lw $ra, 0x1c($sp) +/* 000974 00000934 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000978 00000938 03E00008 */ jr $ra +/* 00097C 0000093C 00000000 */ nop +glabel func_04000980 +/* 000980 00000940 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000984 00000944 AFBF001C */ sw $ra, 0x1c($sp) +/* 000988 00000948 AFA40020 */ sw $a0, 0x20($sp) +/* 00098C 0000094C A3A00027 */ sb $zero, 0x27($sp) +/* 000990 00000950 00004025 */ move $t0, $zero +/* 000994 00000954 00005025 */ move $t2, $zero +/* 000998 00000958 340DC800 */ li $t5, 51200 +/* 00099C 0000095C 00007025 */ move $t6, $zero +/* 0009A0 00000960 29DA0040 */ slti $k0, $t6, 0x40 +.L00000964: +/* 0009A4 00000964 57400004 */ bnezl $k0, .L00000978 +/* 0009A8 00000968 01C02025 */ move $a0, $t6 +/* 0009AC 0000096C 10000020 */ b .L000009F0 +/* 0009B0 00000970 00001025 */ move $v0, $zero +/* 0009B4 00000974 01C02025 */ move $a0, $t6 +.L00000978: +/* 0009B8 00000978 0D000290 */ jal func_04000A40 +/* 0009BC 0000097C 24050001 */ li $a1, 1 +/* 0009C0 00000980 0D0002B4 */ jal func_04000AD0 +/* 0009C4 00000984 27A40027 */ addiu $a0, $sp, 0x27 +/* 0009C8 00000988 0D0002B4 */ jal func_04000AD0 +/* 0009CC 0000098C 27A40027 */ addiu $a0, $sp, 0x27 +/* 0009D0 00000990 93BA0027 */ lbu $k0, 0x27($sp) +/* 0009D4 00000994 241B0320 */ li $k1, 800 +/* 0009D8 00000998 8FA40020 */ lw $a0, 0x20($sp) +/* 0009DC 0000099C 035B0019 */ multu $k0, $k1 +/* 0009E0 000009A0 00004012 */ mflo $t0 +/* 0009E4 000009A4 0104D023 */ subu $k0, $t0, $a0 +/* 0009E8 000009A8 07430003 */ bgezl $k0, .L000009B8 +/* 0009EC 000009AC 034DD82A */ slt $k1, $k0, $t5 +/* 0009F0 000009B0 0088D023 */ subu $k0, $a0, $t0 +/* 0009F4 000009B4 034DD82A */ slt $k1, $k0, $t5 +.L000009B8: +/* 0009F8 000009B8 53600004 */ beql $k1, $zero, .L000009CC +/* 0009FC 000009BC 8FA40020 */ lw $a0, 0x20($sp) +/* 000A00 000009C0 03406825 */ move $t5, $k0 +/* 000A04 000009C4 01C05025 */ move $t2, $t6 +/* 000A08 000009C8 8FA40020 */ lw $a0, 0x20($sp) +.L000009CC: +/* 000A0C 000009CC 0104D82A */ slt $k1, $t0, $a0 +/* 000A10 000009D0 53600006 */ beql $k1, $zero, .L000009EC +/* 000A14 000009D4 014E1021 */ addu $v0, $t2, $t6 +/* 000A18 000009D8 25CE0001 */ addiu $t6, $t6, 1 +/* 000A1C 000009DC 29DB0041 */ slti $k1, $t6, 0x41 +/* 000A20 000009E0 5760FFE0 */ bnezl $k1, .L00000964 +/* 000A24 000009E4 29DA0040 */ slti $k0, $t6, 0x40 +/* 000A28 000009E8 014E1021 */ addu $v0, $t2, $t6 +.L000009EC: +/* 000A2C 000009EC 00021042 */ srl $v0, $v0, 1 +.L000009F0: +/* 000A30 000009F0 8FBF001C */ lw $ra, 0x1c($sp) +/* 000A34 000009F4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000A38 000009F8 03E00008 */ jr $ra +/* 000A3C 000009FC 00000000 */ nop + +glabel func_04000A40 +/* 000A40 00000A00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000A44 00000A04 308400FF */ andi $a0, $a0, 0xff +/* 000A48 00000A08 241B0001 */ li $k1, 1 +/* 000A4C 00000A0C 3884003F */ xori $a0, $a0, 0x3f +/* 000A50 00000A10 AFBF001C */ sw $ra, 0x1c($sp) +/* 000A54 00000A14 14BB0003 */ bne $a1, $k1, .L00000A24 +/* 000A58 00000A18 3C0F4600 */ lui $t7, 0x4600 +/* 000A5C 00000A1C 3C1A8000 */ lui $k0, 0x8000 +/* 000A60 00000A20 01FA7825 */ or $t7, $t7, $k0 +.L00000A24: +/* 000A64 00000A24 309A0001 */ andi $k0, $a0, 1 +/* 000A68 00000A28 001AD180 */ sll $k0, $k0, 6 +/* 000A6C 00000A2C 01FA7825 */ or $t7, $t7, $k0 +/* 000A70 00000A30 309A0002 */ andi $k0, $a0, 2 +/* 000A74 00000A34 001AD340 */ sll $k0, $k0, 0xd +/* 000A78 00000A38 01FA7825 */ or $t7, $t7, $k0 +/* 000A7C 00000A3C 309A0004 */ andi $k0, $a0, 4 +/* 000A80 00000A40 001AD500 */ sll $k0, $k0, 0x14 +/* 000A84 00000A44 01FA7825 */ or $t7, $t7, $k0 +/* 000A88 00000A48 309A0008 */ andi $k0, $a0, 8 +/* 000A8C 00000A4C 001AD100 */ sll $k0, $k0, 4 +/* 000A90 00000A50 01FA7825 */ or $t7, $t7, $k0 +/* 000A94 00000A54 309A0010 */ andi $k0, $a0, 0x10 +/* 000A98 00000A58 001AD2C0 */ sll $k0, $k0, 0xb +/* 000A9C 00000A5C 01FA7825 */ or $t7, $t7, $k0 +/* 000AA0 00000A60 309A0020 */ andi $k0, $a0, 0x20 +/* 000AA4 00000A64 001AD480 */ sll $k0, $k0, 0x12 +/* 000AA8 00000A68 01FA7825 */ or $t7, $t7, $k0 +/* 000AAC 00000A6C 241B0001 */ li $k1, 1 +/* 000AB0 00000A70 14BB0003 */ bne $a1, $k1, .L00000A80 +/* 000AB4 00000A74 AEAF0000 */ sw $t7, ($s5) +/* 000AB8 00000A78 3C1AA430 */ lui $k0, 0xa430 +/* 000ABC 00000A7C AF400000 */ sw $zero, ($k0) +.L00000A80: +/* 000AC0 00000A80 8FBF001C */ lw $ra, 0x1c($sp) +/* 000AC4 00000A84 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000AC8 00000A88 03E00008 */ jr $ra +/* 000ACC 00000A8C 00000000 */ nop + +glabel func_04000AD0 +/* 000AD0 00000A90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000AD4 00000A94 AFBF001C */ sw $ra, 0x1c($sp) +/* 000AD8 00000A98 241A2000 */ li $k0, 8192 +/* 000ADC 00000A9C 3C1BA430 */ lui $k1, 0xa430 +/* 000AE0 00000AA0 AF7A0000 */ sw $k0, ($k1) +/* 000AE4 00000AA4 0000F025 */ move $fp, $zero +/* 000AE8 00000AA8 8EBE0000 */ lw $fp, ($s5) +/* 000AEC 00000AAC 241A1000 */ li $k0, 4096 +/* 000AF0 00000AB0 AF7A0000 */ sw $k0, ($k1) +/* 000AF4 00000AB4 241B0040 */ li $k1, 64 +/* 000AF8 00000AB8 037ED824 */ and $k1, $k1, $fp +/* 000AFC 00000ABC 001BD982 */ srl $k1, $k1, 6 +/* 000B00 00000AC0 0000D025 */ move $k0, $zero +/* 000B04 00000AC4 035BD025 */ or $k0, $k0, $k1 +/* 000B08 00000AC8 241B4000 */ li $k1, 16384 +/* 000B0C 00000ACC 037ED824 */ and $k1, $k1, $fp +/* 000B10 00000AD0 001BDB42 */ srl $k1, $k1, 0xd +/* 000B14 00000AD4 035BD025 */ or $k0, $k0, $k1 +/* 000B18 00000AD8 3C1B0040 */ lui $k1, 0x40 +/* 000B1C 00000ADC 037ED824 */ and $k1, $k1, $fp +/* 000B20 00000AE0 001BDD02 */ srl $k1, $k1, 0x14 +/* 000B24 00000AE4 035BD025 */ or $k0, $k0, $k1 +/* 000B28 00000AE8 241B0080 */ li $k1, 128 +/* 000B2C 00000AEC 037ED824 */ and $k1, $k1, $fp +/* 000B30 00000AF0 001BD902 */ srl $k1, $k1, 4 +/* 000B34 00000AF4 035BD025 */ or $k0, $k0, $k1 +/* 000B38 00000AF8 341B8000 */ li $k1, 32768 +/* 000B3C 00000AFC 037ED824 */ and $k1, $k1, $fp +/* 000B40 00000B00 001BDAC2 */ srl $k1, $k1, 0xb +/* 000B44 00000B04 035BD025 */ or $k0, $k0, $k1 +/* 000B48 00000B08 3C1B0080 */ lui $k1, 0x80 +/* 000B4C 00000B0C 037ED824 */ and $k1, $k1, $fp +/* 000B50 00000B10 001BDC82 */ srl $k1, $k1, 0x12 +/* 000B54 00000B14 035BD025 */ or $k0, $k0, $k1 +/* 000B58 00000B18 A09A0000 */ sb $k0, ($a0) +/* 000B5C 00000B1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 000B60 00000B20 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000B64 00000B24 03E00008 */ jr $ra +/* 000B68 00000B28 00000000 */ nop +/* 000B6C 00000B2C 00000000 */ nop + +glabel ipl3_font +/* replace me with converted images */ +.byte 0x02, 0x00, 0x10, 0x01, 0x40, 0x0a, 0x00, 0x88, 0x04, 0x40, 0x22 +.byte 0x02, 0x08, 0x10, 0x41, 0xff, 0x08, 0x08, 0x40, 0x44, 0x01, 0x20 +.byte 0x08, 0x7f, 0x02, 0x04, 0x10, 0x10, 0x80, 0x84, 0x04, 0x20, 0x41 +.byte 0xfe, 0x08, 0x08, 0x40, 0x22, 0x01, 0x10, 0x08, 0x80, 0x44, 0x04 +.byte 0x3f, 0xc0, 0x07, 0x00, 0xc6, 0x08, 0x08, 0x80, 0x24, 0x01, 0x40 +.byte 0x02, 0x00, 0x10, 0x00, 0x80, 0x02, 0x00, 0x90, 0x04, 0x40, 0x41 +.byte 0x8c, 0x03, 0x80, 0x7e, 0x02, 0x0c, 0x10, 0x10, 0x80, 0x44, 0x02 +.byte 0x20, 0x09, 0x00, 0x48, 0x02, 0x40, 0x12, 0x01, 0x10, 0x08, 0x80 +.byte 0x84, 0x18, 0x3f, 0x00, 0x7f, 0xe2, 0x00, 0x10, 0x00, 0x80, 0x04 +.byte 0x00, 0x20, 0x01, 0xff, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x3f, 0xf0, 0x7f, 0xe2, 0x00, 0x10, 0x00, 0x80 +.byte 0x04, 0x00, 0x20, 0x01, 0xff, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x00, 0x07, 0x00, 0xc6, 0x08, 0x08 +.byte 0x80, 0x24, 0x01, 0x40, 0x02, 0x00, 0x10, 0x00, 0x83, 0xf2, 0x00 +.byte 0x90, 0x04, 0x40, 0x61, 0x8d, 0x03, 0x88, 0x40, 0x12, 0x00, 0x90 +.byte 0x04, 0x80, 0x24, 0x01, 0x20, 0x09, 0xff, 0xc8, 0x02, 0x40, 0x12 +.byte 0x00, 0x90, 0x04, 0x80, 0x24, 0x01, 0x20, 0x08, 0x07, 0x00, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x03, 0x80, 0x00, 0x40 +.byte 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08 +.byte 0x00, 0x42, 0x02, 0x10, 0x10, 0x80, 0x82, 0x08, 0x0f, 0x80, 0x40 +.byte 0x22, 0x02, 0x10, 0x20, 0x82, 0x04, 0x20, 0x22, 0x01, 0x20, 0x0a +.byte 0x80, 0x62, 0x02, 0x08, 0x10, 0x20, 0x80, 0x84, 0x02, 0x20, 0x08 +.byte 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00 +.byte 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x3f +.byte 0xf0, 0x80, 0x0c, 0x00, 0x70, 0x07, 0x40, 0x5a, 0x02, 0xc8, 0x26 +.byte 0x41, 0x31, 0x11, 0x88, 0x8c, 0x28, 0x61, 0x43, 0x04, 0x18, 0x20 +.byte 0xc0, 0x04, 0x40, 0x23, 0x01, 0x14, 0x08, 0xa0, 0x44, 0x82, 0x22 +.byte 0x11, 0x10, 0x88, 0x44, 0x42, 0x22, 0x09, 0x10, 0x28, 0x81, 0x44 +.byte 0x06, 0x20, 0x10, 0x0f, 0x01, 0x86, 0x10, 0x08, 0x80, 0x48, 0x01 +.byte 0x40, 0x0a, 0x00, 0x50, 0x02, 0x80, 0x14, 0x00, 0x90, 0x08, 0x80 +.byte 0x43, 0x0c, 0x07, 0x80, 0x7f, 0x82, 0x02, 0x10, 0x08, 0x80, 0x44 +.byte 0x02, 0x20, 0x11, 0x01, 0x0f, 0xf0, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x20, 0x00, 0x0f, 0x01, 0x86, 0x10, 0x08, 0x80 +.byte 0x48, 0x01, 0x40, 0x0a, 0x00, 0x50, 0x02, 0x80, 0x14, 0x10, 0x90 +.byte 0x48, 0x81, 0x43, 0x0c, 0x07, 0x90, 0x7f, 0x82, 0x02, 0x10, 0x08 +.byte 0x80, 0x44, 0x02, 0x20, 0x21, 0xfe, 0x08, 0x20, 0x40, 0x82, 0x04 +.byte 0x10, 0x10, 0x80, 0x84, 0x02, 0x20, 0x10, 0x1f, 0x81, 0x02, 0x10 +.byte 0x08, 0x80, 0x44, 0x00, 0x10, 0x00, 0x70, 0x00, 0x70, 0x00, 0x40 +.byte 0x01, 0x10, 0x08, 0x80, 0x42, 0x04, 0x0f, 0xc0, 0x7f, 0xf0, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x40, 0x22 +.byte 0x01, 0x10, 0x08, 0x80, 0x44, 0x02, 0x20, 0x11, 0x00, 0x88, 0x04 +.byte 0x40, 0x22, 0x01, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x40 +.byte 0x12, 0x00, 0x88, 0x08, 0x40, 0x42, 0x02, 0x08, 0x20, 0x41, 0x01 +.byte 0x10, 0x08, 0x80, 0x44, 0x01, 0x40, 0x0a, 0x00, 0x20, 0x01, 0x00 +.byte 0x82, 0x0c, 0x10, 0x60, 0x82, 0x8a, 0x24, 0x51, 0x22, 0x89, 0x14 +.byte 0x45, 0x14, 0x28, 0xa1, 0x45, 0x0a, 0x28, 0x20, 0x81, 0x04, 0x08 +.byte 0x20, 0x40, 0x11, 0x01, 0x04, 0x10, 0x20, 0x80, 0x88, 0x02, 0x80 +.byte 0x08, 0x00, 0x40, 0x05, 0x00, 0x44, 0x04, 0x10, 0x20, 0x82, 0x02 +.byte 0x20, 0x08, 0x40, 0x11, 0x01, 0x08, 0x08, 0x20, 0x80, 0x88, 0x04 +.byte 0x40, 0x14, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00 +.byte 0x20, 0x01, 0x00, 0x7f, 0xe0, 0x01, 0x00, 0x10, 0x01, 0x00, 0x08 +.byte 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40 +.byte 0x04, 0x00, 0x3f, 0xf0, 0x0f, 0x80, 0x82, 0x08, 0x08, 0x40, 0x42 +.byte 0x02, 0x10, 0x10, 0x80, 0x84, 0x04, 0x20, 0x21, 0x01, 0x08, 0x08 +.byte 0x40, 0x41, 0x04, 0x07, 0xc0, 0x02, 0x00, 0x30, 0x02, 0x80, 0x04 +.byte 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x0f, 0x00, 0x84, 0x08, 0x10 +.byte 0x40, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20 +.byte 0x02, 0x00, 0x20, 0x02, 0x00, 0x1f, 0xe0, 0x0f, 0x00, 0x84, 0x08 +.byte 0x10, 0x40, 0x80, 0x04, 0x00, 0x40, 0x1c, 0x00, 0x10, 0x00, 0x40 +.byte 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x01, 0x00, 0x18 +.byte 0x00, 0xc0, 0x0a, 0x00, 0x90, 0x04, 0x80, 0x44, 0x04, 0x20, 0x21 +.byte 0x02, 0x08, 0x1f, 0xf8, 0x02, 0x00, 0x10, 0x00, 0x80, 0x1f, 0x81 +.byte 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x17, 0x80, 0xc2, 0x04, 0x08 +.byte 0x00, 0x40, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x0f +.byte 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x00, 0x10, 0x00, 0xbc, 0x06 +.byte 0x10, 0x20, 0x41, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80 +.byte 0x3f, 0xc0, 0x02, 0x00, 0x20, 0x01, 0x00, 0x10, 0x00, 0x80, 0x04 +.byte 0x00, 0x40, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x0f, 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x04, 0x08, 0x40 +.byte 0x3c, 0x02, 0x10, 0x20, 0x41, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08 +.byte 0x07, 0x80, 0x0f, 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x04, 0x10 +.byte 0x20, 0x43, 0x01, 0xe8, 0x00, 0x40, 0x02, 0x08, 0x10, 0x40, 0x81 +.byte 0x08, 0x07, 0x80, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20 +.byte 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00 +.byte 0x00, 0x20, 0x01, 0x00, 0xd8, 0x06, 0xc0, 0x12, 0x01, 0x20, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x22, 0x01, 0x10, 0x08 +.byte 0x87, 0xff, 0x04, 0x40, 0x22, 0x01, 0x10, 0x08, 0x83, 0xff, 0x84 +.byte 0x40, 0x22, 0x01, 0x10, 0x08, 0x80, 0xc0, 0x06, 0x00, 0x10, 0x01 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x80, 0x44, 0x41, 0x24, 0x05, 0x40, 0x1c, 0x00, 0x40, 0x07, 0x00 +.byte 0x54, 0x04, 0x90, 0x44, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x0f, 0xfe, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, 0x04, 0x00, 0x40, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f +.byte 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40 +.byte 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00 +.byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x60, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x0c, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x44, 0x04, 0x10, 0x20, 0x80 +.byte 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x00 +.byte 0x00, 0x00, 0x20, 0x01, 0x00, 0x07, 0x00, 0xc6, 0x08, 0x08, 0x80 +.byte 0x24, 0x31, 0x42, 0x4a, 0x22, 0x51, 0x22, 0x89, 0x22, 0x36, 0x10 +.byte 0x02, 0x40, 0x21, 0x86, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00 diff --git a/src/boss.c b/src/boss.c new file mode 100644 index 0000000..d0f2de9 --- /dev/null +++ b/src/boss.c @@ -0,0 +1,1315 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "boss.h" +#include "bondgame.h" +#include "game/debugmenu_090490.h" +#include "game/room_model_buffer.h" +#include "deb.h" +#include "game/stan.h" +#include "game/rsp.h" +#include "bondconstants.h" +/** + * @file boss.c + * This file contains the main game loop code. + */ + +/* data */ +u32 boss_c_ptr_debug_notice_list_entry = 0; +s32 debug_and_update_stage_flag = 0; +LEVELID current_stage_num = LEVELID_TITLE; +u32 current_m_malloc_value = 0x234800; +u32 current_ma_malloc_value = 0x4B000; +s32 show_mem_use_flag = 0; +s32 show_mem_bars_flag = 0; + +struct memallocstring memallocstringtable[] = { +{ LEVELID_DAM, "-ml0 -me0 -mgfx70 -mvtx50 -mt625 -ma275"}, +{ LEVELID_FACILITY, "-ml0 -me0 -mgfx70 -mvtx50 -mt650 -ma160"}, +{ LEVELID_RUNWAY, "-ml0 -me0 -mgfx100 -mvtx50 -mt610 -ma300"}, +{ LEVELID_SURFACE, "-ml0 -me0 -mgfx70 -mvtx50 -mt600 -ma300"}, +{ LEVELID_BUNKER1, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma150"}, +{ LEVELID_SILO, "-ml0 -me0 -mgfx70 -mvtx50 -mt660 -ma150"}, +{ LEVELID_FRIGATE, "-ml0 -me0 -mgfx70 -mvtx50 -mt750 -ma225"}, +{ LEVELID_SURFACE2, "-ml0 -me0 -mgfx100 -mvtx50 -mt550 -ma350"}, +{ LEVELID_BUNKER2, "-ml0 -me0 -mgfx100 -mvtx50 -mt725 -ma150"}, +{ LEVELID_STATUE, "-ml0 -me0 -mgfx70 -mvtx50 -mt750 -ma220"}, +{ LEVELID_ARCHIVES, "-ml0 -me0 -mgfx70 -mvtx50 -mt600 -ma250"}, +{ LEVELID_STREETS, "-ml0 -me0 -mgfx60 -mvtx40 -mt635 -ma290"}, +{ LEVELID_DEPOT, "-ml0 -me0 -mgfx60 -mvtx50 -mt710 -ma300"}, +{ LEVELID_TRAIN, "-ml0 -me0 -mgfx100 -mvtx50 -mt600 -ma200"}, +{ LEVELID_JUNGLE, "-ml0 -me0 -mgfx70 -mvtx50 -mt500 -ma200"}, +{ LEVELID_CONTROL, "-ml0 -me0 -mgfx70 -mvtx50 -mt671 -ma200"}, +{ LEVELID_CRADLE, "-ml0 -me0 -mgfx100 -mvtx50 -mt650 -ma250"}, +{ LEVELID_CAVERNS, "-ml0 -me0 -mgfx100 -mvtx50 -mt530 -ma250"}, +{ LEVELID_AZTEC, "-ml0 -me0 -mgfx60 -mvtx40 -mt855 -ma135"}, +{ LEVELID_EGYPT, "-ml0 -me0 -mgfx100 -mvtx50 -mt600 -ma250"}, +{ LEVELID_CITADEL, "-ml0 -me0 -mgfx100 -mvtx50 -mt650 -ma150"}, +{ LEVELID_CUBA, "-ml0 -me0 -mgfx100 -mvtx50 -mt300 -ma300"}, +{ LEVELID_TITLE, "-ml0 -me0 -mgfx80 -mvtx20 -mt646 -ma001"}, +{ 0x5B, "-ml0 -me0 -mgfx60 -mvtx20 -mt500 -ma001"}, +{ 0x63, "-ml0 -me0 -mgfx60 -mvtx20 -mt500 -ma001"}, +{ LEVELID_TEMPLE, "-ml0 -me0 -mgfx130 -mvtx100 -mt390 -ma100"}, +{ LEVELID_COMPLEX, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_LIBRARY, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_BASEMENT, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_STACK, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_CAVES, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma300"}, +{ 0x1AB, "-ml0 -me0 -mgfx130 -mvtx100 -mt550 -ma170"}, +{ 0x1A8, "-ml0 -me0 -mgfx80 -mvtx100 -mt550 -ma250"}, +{ 0x1B7, "-ml0 -me0 -mgfx130 -mvtx100 -mt440 -ma220"}, +{ 0x1B2, "-ml0 -me0 -mgfx90 -mvtx100 -mt550 -ma230"}, +{ 0x1B0, "-ml0 -me0 -mgfx110 -mvtx100 -mt350 -ma400"}, +{ 0x0, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"}, +{ 0x0, }, +{ 0x0, }, +{ 0x0, } +}; + +LEVELID loadedstage = LEVELID_NONE; +s32 debug_feature_flag = 0; +s32 D_80024304 = 0x20000; +s32 D_80024308 = 0; +s32 D_8002430C = 0; +s32 D_80024310 = 0; +s32 D_80024314 = 0; +s32 D_80024318 = 0; +s32 D_8002431C = 0; +s32 D_80024320 = 0; +s32 taskgrab_ramdump_num = 1; + +/* rodata */ + +//const char aLevel_[] = "-level_"; +//const char aMl0Me0Mgfx100Mvtx50Mt700Ma400_1[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; +//const char aM[] = "-m"; +//const char aM_1[] = "-m"; + +//***moved to mainloop +//const char aLevel__0[] = "-level_"; +//const char aLevel__1[] = "-level_"; +//const char aHard[] = "-hard"; +//const char aHard_1[] = "-hard"; +//const char aHard_2[] = "-hard"; +//const char aMa[] = "-ma"; +//const char aMa_0[] = "-ma"; +//const char aU64_taskgrab_D_core[] = "u64.taskgrab.%d.core"; + +/** + * 6930 70005D30 + * ??? - uses "-level_", "-m" strings + */ +#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate))/1000000LL) + +void init_mainthread_data(void) +{ + OSMesg bossmsg; + OSTimer bosstimer; + OSMesgQueue bossmq; + u32 temp_s0; + u32 unused; + s32 i; + + + debInitDebugNoticeList(); + romCreateMesgQueue(); + establish_TLB_buffer_management_table(); + image_entries_load(); + mempInitDebugNoticeList(); + memaInitDebugNoticeList(); + bgInitDebugNoticeList(); + viInitDebugNoticeList(); + init_video_settings(); + init_indy_if_not_ready(); + debug_and_update_stage_flag = rmon_debug_is_final_build(); + obInitDebugNoticeList(); + rspInitDebugNoticeList(); + dynInitDebugNoticeList(); + joyInitDebugNoticeList(); + osCreateMesgQueue(&bossmq, &bossmsg, 1); + + for (i = 0; i != 4; i++) + { + osSetTimer(&bosstimer, OS_USEC_TO_CYCLES(100000), 0, &bossmq, &bossmsg); + osRecvMesg(&bossmq, &bossmsg, 1); + if (i == 1) + { + test_controller_presence(); + } + else if (i >= 2) + { + redirect_to_ramrom_replay_and_record_handlers_if_set(); + } + } + + if (check_token(1, "-level_") == 0) + { + debug_and_update_stage_flag = 1; + } + stanInitDebugNoticeList(); + gameInitDebugNoticeList(); + if (debug_and_update_stage_flag != 0) + { + strtok(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); + } + if (check_token(1, "-m") != 0) + { + current_m_malloc_value = (s32) (strtol(check_token(1, "-m"), 0, 0) << 0xa); + } + temp_s0 = (osVirtualToPhysical(&room_model_buffer) | 0x80000000); + mempCheckMemflagTokens(temp_s0, (return_ptr_TLBallocatedblock() - temp_s0)); + mempResetBank(6); + init_LnameX(); + lvInitDebugNoticeList(); + bossInitDebugNoticeList(); + textrelatedInit_REMOVED(); + debugmenuInit_REMOVED(); + default_player_perspective_and_height(); + store_osgetcount(); + null_init_main_1(); + displaylist_related(); + set_gu_scale(); + null_init_main_2(); + sub_GAME_7F000980(); + alloc_load_expand_ani_table(); + init_weapon_animation_groups_maybe(); + reset_counter_rand_body_head(); + null_init_main_3(); + sub_GAME_7F000B60(); + initGameData(); + sub_GAME_7F01D6E0(); + clear_ramrom_block_buffer_heading_ptrs(); +} + +/** + * 6BF4 70005FF4 + * 1 ->"show mem use" debug memory display [800241B4]; fry AT,T6 + */ +void enable_show_mem_use_flag(void) { + show_mem_use_flag=TRUE; +} + +/** + * 6C04 70006004 + * toggle "show mem bars" [800241B8]; fries V0,T6,T7 + */ +void mem_bars_flag_toggle(void) { + show_mem_bars_flag = show_mem_bars_flag ^ 1; +} + +/** + * 6C1C 7000601C + * loads primary resources and starts main program loop + * this is infinite. Loops unconditionally: JAL 70006060 + */ +void bossEntry(void) { + init_mainthread_data(); + allocate_init_rsp_buffers(); + setupaudio(); + while(1){ + mainloop(); + } +} + + + +/** + * 6C60 70006060 + * main program loop + * 70006090 tests memstring for "-level_##" + * 700060DC if not title, tests memstring for "-hard#" + * 70006160 follows... + * 700061FC test if debug console unconnected [800241A4] + * 700062EC follows... + * 700062FC tests memstring for "-ma" + * 7000633C allocates "-ma" bytes to mem bank 4 + * 7000635C reset player data pointers + * 70006364 offsets stage number based on number of players unless main menu + * 700063A0 parses and sets memory allocation, loads stage, etc. + * ... + * 70006708 displays memory usage when active + * 70006724 displays in-game debugger when active + * 7000674C writes a full sync, end display list combo + * 7000676C display mem use when active [800241B4] + * 700067A8 display mem bars when active [800241B8] + * 700067C0 follows... + * 700067D8 tests if "u64.taskgrab.#.core" activated and dumps memory + * 70006854 follows... (700068BC - stop demos) + */ +#ifdef NONMATCHING +void mainloop(void) +{ + s32 sp1DC; + void *sp1D4; + ? sp1B4; + s32 sp1AC; + s32 sp1A4; + ? sp5C; + ? sp58; + void *sp48; + s32 temp_a0; + s32 temp_a1; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s1; + s32 temp_s3; + s32 temp_s3_2; + s32 temp_v0_3; + s32 temp_v0_4; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + void *temp_s3_3; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_5; + s32 phi_v1; + void *phi_v0; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_v1_2; + void *phi_v0_2; + s32 phi_s0_3; + s32 phi_s1; + u32 phi_fp; + s32 phi_s1_2; + s32 phi_s3; + s32 phi_s3_2; + void *phi_s3_3; + s32 phi_v0_3; + u32 phi_fp_2; + s32 phi_s0_4; + s32 phi_s0_5; + + sp1DC = 0; + reset_mem_bank_5(); + if (check_token(1, "-level_") != 0) + { + temp_ret = check_token(1, "-level_"); + current_stage_num = (s32) ((temp_ret->unk1 + (temp_ret->unk0 * 0xa)) + -0x210); + } + if (current_stage_num != 0x5a) + { + sub_GAME_7F01DF90(); + set_selected_folder_num(0); + set_selected_difficulty(0); + set_solo_and_ptr_briefing(current_stage_num); + if (check_token(1, "-hard") != 0) + { + set_selected_difficulty(*check_token(1, "-hard") + -0x30); + set_difficulty(*check_token(1, "-hard") + -0x30); + } + } + increment_random_num(osGetCount()); +loop_6: + sp1D4 = NULL; + sp1B4.unk0 = (?32) D_80024304.unk0; + sp1B4.unk4 = (?32) D_80024304.unk4; + sp1B4.unkC = (?32) D_80024304.unkC; + sp1B4.unk8 = (?32) D_80024304.unk8; + sp1B4.unk10 = (?32) D_80024304.unk10; + sp1B4.unk14 = (?32) D_80024304.unk14; + sp1B4.unk1C = (?32) D_80024304.unk1C; + sp1B4.unk18 = (?32) D_80024304.unk18; + sp1AC = 0; + test_if_recording_demos_this_stage_load(current_stage_num, get_current_difficulty()); + if (debug_and_update_stage_flag != 0) + { + phi_s0_2 = -1; + if (current_stage_num != 0x5a) + { + phi_s0_2 = -1; + if (get_selected_num_players() >= 2) + { + phi_s0 = 0; + if (memallocstringtable != 0) + { + temp_v0 = 0x80020000 + 0x41bc; + phi_v1 = *temp_v0; + phi_v0 = temp_v0; + phi_s0_4 = 0; +loop_11: + phi_s0 = phi_s0_4; + if ((current_stage_num + 0x190) != phi_v1) + { + temp_v1 = phi_v0->unk8; + temp_s0 = phi_s0_4 + 1; + phi_v1 = temp_v1; + phi_v0 = phi_v0 + 8; + phi_s0 = temp_s0; + phi_s0_4 = temp_s0; + if (temp_v1 != 0) + { + goto loop_11; + } + } + } + phi_s0_2 = phi_s0; + if (*(&memallocstringtable + (phi_s0 * 8)) == 0) + { + phi_s0_2 = -1; + } + } + } + phi_s0_3 = phi_s0_2; + if (phi_s0_2 < 0) + { + phi_s0_3 = 0; + if (memallocstringtable != 0) + { + temp_v0_2 = 0x80020000 + 0x41bc; + phi_v1_2 = *temp_v0_2; + phi_v0_2 = temp_v0_2; + phi_s0_5 = 0; +loop_18: + phi_s0_3 = phi_s0_5; + if (current_stage_num != phi_v1_2) + { + temp_v1_2 = phi_v0_2->unk8; + temp_s0_2 = phi_s0_5 + 1; + phi_v1_2 = temp_v1_2; + phi_v0_2 = phi_v0_2 + 8; + phi_s0_3 = temp_s0_2; + phi_s0_5 = temp_s0_2; + if (temp_v1_2 != 0) + { + goto loop_18; + } + } + } + } + strtok((&memallocstringtable + (phi_s0_3 * 8))->unk4, &memallocstringtable); + } + mempResetBank(4); + obBlankResourcesLoadedInBank(4); + if (check_token(1, &aMa) != 0) + { + current_ma_malloc_value = (s32) (strtol(check_token(1, &aMa_0), 0, 0) << 0xa); + } + mempInitMallocTable(mempAllocBytesInBank(current_ma_malloc_value, 4), current_ma_malloc_value); + reset_play_data_ptrs(); + phi_s1 = 0; + if (current_stage_num != 0x5a) + { + phi_s1 = 1; + if (get_selected_num_players() >= 2) + { + phi_s1 = get_selected_num_players(); + } + } + init_player_data_ptrs_construct_viewports(phi_s1); + set_vtx_gfx_mem_alloc(); + test_controller_presence(); + stage_load(current_stage_num); + init_both_video_buffers(); + debug_text_related_2(); + sub_GAME_7F0C0B4C(); + video_related_2(); + if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) + { +loop_27: + if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) + { + goto loop_27; + } + } + phi_fp = 0U; + if (loadedstage < 0) + { +loop_29: + osRecvMesg(&gfxFrameMsgQ, &sp1D4, 1); + if (*sp1D4 != 1) + { + if (*sp1D4 != 2) + { + if (*sp1D4 != 5) + { + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = 4U; + } + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + } + } + else + { + if ((u32) (osGetCount() - copy_of_osgetcount_value_1) < 0x5eb61U) + { + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + if ((void *)0x80020000->unk42FC < 0) + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + if ((u32) phi_fp < 2U) + { + sp48 = &sp1B4; + if (get_is_ramrom_flag() != 0) + { + iterate_ramrom_entries_handle_camera_out(); + } + else + { + sub_GAME_7F0C0B4C(); + } + video_DL_related_4(); + video_related_2(); + video_related_3(0x20000); + redirect_to_ramrom_replay_and_record_handlers_if_set(); + permit_stderr(0); + temp_ret_2 = get_ptr_displaylist(); + sp1A4 = temp_ret_2; + if (debug_feature_flag != 0) + { + debug_feature_flag = debug_menu_processor((s32) (((s32) (get_cur_controller_horz_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (s32) (((s32) (get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (get_controller_buttons_held(0, 0xffff) & 0xffff) & 0xffff, get_controller_buttons_pressed(0, 0xffff) & 0xffff); + } + manage_mp_game(); + sub_GAME_7F09B41C(); + if (current_stage_num != 0x5a) + { + phi_s1_2 = 0; + if (get_num_players() > 0) + { +loop_44: + set_cur_player(sub_GAME_7F09B528(phi_s1_2)); + set_video2_width_height(pPlayer->unk7F0, pPlayer->unk7F2); + set_video2_ulx_uly(pPlayer->viewleft, pPlayer->viewtop); + sub_GAME_7F0BF800(); + temp_s1 = phi_s1_2 + 1; + phi_s1_2 = temp_s1; + if (temp_s1 < get_num_players()) + { + goto loop_44; + } + } + } + temp_s3 = sub_GAME_7F0BE30C(temp_ret_2); + phi_s3 = temp_s3; + if (get_debug_VisCVG_flag() != 0) + { // Lets Visualise the Coverage Value used for Scilohete Anti-Ailising (edges) (done on the VI), also produces a cool looking linemode - providing AA is working. + temp_v0_3 = temp_s3; + // glistp = glist //make pointer to gfx list + temp_s3 = temp_s3 + 8; + temp_v1_3 = temp_s3; //increment pointer by SizeOf(gfx) + temp_v0_3->unk0 = 0xe7000000; + temp_v0_3->unk4 = 0; + //gDPPipesync(glistp++); + temp_s3 = temp_s3 + 8; + temp_a0 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_v1_3->unk0 = 0xba001402; + temp_v1_3->unk4 = 0; + //gDPSetCycleType(glistp++, 2CYCLE); + temp_a1 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a0->unk0 = 0xf9000000; + temp_a0->unk4 = -1; + temp_a2 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a1->unk0 = 0xee000000; + temp_a1->unk4 = -1; + temp_v0_4 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a2->unk4 = 4; + temp_a2->unk0 = 0xb9000201; + //gDPSetAlphaCompare(glistp++); + temp_s0_3 = temp_s3; + temp_v0_4->unk0 = 0xb900031d; + temp_v0_4->unk4 = 0xfa54040; + //gDPSetRenderMode(glistp++, ); + + //above would most likly look like + //glistp = glist; + //gDPPipesync(glistp++); + //gDPSetCycleType(glistp++, 2CYCLE); + // ...etc + + temp_s0_3->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW(temp_a0, temp_a1, temp_a2, -1) << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + temp_s0_3->unk4 = 0; + phi_s3 = temp_s3 + 8; + } + temp_s3_2 = read_screen_display_block_and_write_chars(phi_s3); + phi_s3_2 = temp_s3_2; + if (get_memusage_display_flag() != 0) + { + phi_s3_2 = display_speed_graph(temp_s3_2); + } + phi_s3_3 = (void *) phi_s3_2; + if (debug_feature_flag != 0) + { + display_debug_menu_text_onscreen(); + phi_s3_3 = print_debug_mcm_to_stdout(phi_s3_2); + } + temp_v0_5 = phi_s3_3; + temp_s3_3 = phi_s3_3 + 8; + temp_v0_5->unk0 = 0xe9000000; + temp_v0_5->unk4 = 0; + temp_s3_3->unk0 = 0xb8000000; + temp_s3_3->unk4 = 0; + temp_s3_3 = temp_s3_3 + 8; + if (show_mem_use_flag != 0) + { + nulled_mempLoopAllMemBanks(); + memaGenerateListsBeforeAfterMerge(); + removed_debug_routine(temp_s3_3); + nullsub_41(0); + show_mem_use_flag = 0; + } + if (show_mem_bars_flag != 0) + { + draw_membars(temp_s3_3); + } + allocate_something_in_mgfx(temp_s3_3); + allocate_something_in_mvtx(); + video_related_8(); + if (get_debug_taskgrab_val() != 0) + { + if (get_controller_buttons_pressed(0, 0xc000) != 0) + { + if (get_controller_buttons_held(0, 0xc000) == 0xc000) + { +loop_58: + sprintf(&sp5C, &aU64_taskgrab_D_core, taskgrab_ramdump_num); + if (check_file_found_on_indy(&sp5C, &sp58) != 0) + { + taskgrab_ramdump_num = (s32) (taskgrab_ramdump_num + 1); + goto loop_58; + } + indy_send_capture_data(&sp5C, 0x80000000, 0x400000); + } + } + } + load_rsp_microcode(sp1A4, temp_s3_3, 0, sp48); + mem_related_calls_sort_merge_entries(); + sp1AC = (s32) (sp1AC ^ 1); + video_related_3(0x10000); + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + } + } + } + phi_fp = phi_fp_2; + if (phi_v0_3 < 0) + { + goto loop_29; + } + phi_fp = phi_fp_2; + if (phi_fp_2 != 0) + { + goto loop_29; + } + } + unload_stage_text_data(); + stop_demo_playback(); + mempNullNextEntryInBank(4); + obBlankResourcesLoadedInBank(4); + current_stage_num = (?32) loadedstage; + loadedstage = -1; + if (sp1DC == 0) + { + goto loop_6; + } + sub_GAME_7F0D1A7C(); +} +#else +GLOBAL_ASM( + +.rdata +glabel aLevel__0 +.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ +glabel aLevel__1 +.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ +glabel aHard +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aHard_1 +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aHard_2 +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aMa +.word 0x2d6d6100 /*"-ma"*/ +glabel aMa_0 +.word 0x2d6d6100 /*"-ma"*/ +glabel aU64_taskgrab_D_core +.word 0x7536342e, 0x7461736b, 0x67726162, 0x2e25642e, 0x636f7265, 0x00000000 /*"u64.taskgrab.%d.core"*/ + +.text +glabel mainloop +/* 006C60 70006060 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 006C64 70006064 AFBF003C */ sw $ra, 0x3c($sp) +/* 006C68 70006068 AFBE0038 */ sw $fp, 0x38($sp) +/* 006C6C 7000606C AFB70034 */ sw $s7, 0x34($sp) +/* 006C70 70006070 AFB60030 */ sw $s6, 0x30($sp) +/* 006C74 70006074 AFB5002C */ sw $s5, 0x2c($sp) +/* 006C78 70006078 AFB40028 */ sw $s4, 0x28($sp) +/* 006C7C 7000607C AFB30024 */ sw $s3, 0x24($sp) +/* 006C80 70006080 AFB20020 */ sw $s2, 0x20($sp) +/* 006C84 70006084 AFB1001C */ sw $s1, 0x1c($sp) +/* 006C88 70006088 AFB00018 */ sw $s0, 0x18($sp) +/* 006C8C 7000608C 0FC34693 */ jal reset_mem_bank_5 +/* 006C90 70006090 AFA001DC */ sw $zero, 0x1dc($sp) +/* 006C94 70006094 3C058003 */ lui $a1, %hi(aLevel__0) +/* 006C98 70006098 24A59104 */ addiu $a1, %lo(aLevel__0) # addiu $a1, $a1, -0x6efc +/* 006C9C 7000609C 0C0029A8 */ jal check_token +/* 006CA0 700060A0 24040001 */ li $a0, 1 +/* 006CA4 700060A4 1040000D */ beqz $v0, .L700060DC +/* 006CA8 700060A8 24040001 */ li $a0, 1 +/* 006CAC 700060AC 3C058003 */ lui $a1, %hi(aLevel__1) +/* 006CB0 700060B0 0C0029A8 */ jal check_token +/* 006CB4 700060B4 24A5910C */ addiu $a1, %lo(aLevel__1) # addiu $a1, $a1, -0x6ef4 +/* 006CB8 700060B8 904F0000 */ lbu $t7, ($v0) +/* 006CBC 700060BC 904E0001 */ lbu $t6, 1($v0) +/* 006CC0 700060C0 3C018002 */ lui $at, %hi(current_stage_num) +/* 006CC4 700060C4 000FC080 */ sll $t8, $t7, 2 +/* 006CC8 700060C8 030FC021 */ addu $t8, $t8, $t7 +/* 006CCC 700060CC 0018C040 */ sll $t8, $t8, 1 +/* 006CD0 700060D0 01D8C821 */ addu $t9, $t6, $t8 +/* 006CD4 700060D4 2728FDF0 */ addiu $t0, $t9, -0x210 +/* 006CD8 700060D8 AC2841A8 */ sw $t0, %lo(current_stage_num)($at) +.L700060DC: +/* 006CDC 700060DC 3C098002 */ lui $t1, %hi(current_stage_num) +/* 006CE0 700060E0 8D2941A8 */ lw $t1, %lo(current_stage_num)($t1) +/* 006CE4 700060E4 2401005A */ li $at, 90 +/* 006CE8 700060E8 1121001D */ beq $t1, $at, .L70006160 +/* 006CEC 700060EC 00000000 */ nop +/* 006CF0 700060F0 0FC077E4 */ jal sub_GAME_7F01DF90 +/* 006CF4 700060F4 00000000 */ nop +/* 006CF8 700060F8 0FC07564 */ jal set_selected_folder_num +/* 006CFC 700060FC 00002025 */ move $a0, $zero +/* 006D00 70006100 0FC07567 */ jal set_selected_difficulty +/* 006D04 70006104 00002025 */ move $a0, $zero +/* 006D08 70006108 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006D0C 7000610C 0FC0757B */ jal set_solo_and_ptr_briefing +/* 006D10 70006110 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006D14 70006114 3C058003 */ lui $a1, %hi(aHard) +/* 006D18 70006118 24A59114 */ addiu $a1, %lo(aHard) # addiu $a1, $a1, -0x6eec +/* 006D1C 7000611C 0C0029A8 */ jal check_token +/* 006D20 70006120 24040001 */ li $a0, 1 +/* 006D24 70006124 1040000E */ beqz $v0, .L70006160 +/* 006D28 70006128 24040001 */ li $a0, 1 +/* 006D2C 7000612C 3C058003 */ lui $a1, %hi(aHard_1) +/* 006D30 70006130 0C0029A8 */ jal check_token +/* 006D34 70006134 24A5911C */ addiu $a1, %lo(aHard_1) # addiu $a1, $a1, -0x6ee4 +/* 006D38 70006138 90440000 */ lbu $a0, ($v0) +/* 006D3C 7000613C 0FC07567 */ jal set_selected_difficulty +/* 006D40 70006140 2484FFD0 */ addiu $a0, $a0, -0x30 +/* 006D44 70006144 3C058003 */ lui $a1, %hi(aHard_2) +/* 006D48 70006148 24A59124 */ addiu $a1, %lo(aHard_2) # addiu $a1, $a1, -0x6edc +/* 006D4C 7000614C 0C0029A8 */ jal check_token +/* 006D50 70006150 24040001 */ li $a0, 1 +/* 006D54 70006154 90440000 */ lbu $a0, ($v0) +/* 006D58 70006158 0FC2FF07 */ jal set_difficulty +/* 006D5C 7000615C 2484FFD0 */ addiu $a0, $a0, -0x30 +.L70006160: +/* 006D60 70006160 0C003638 */ jal osGetCount +/* 006D64 70006164 00000000 */ nop +/* 006D68 70006168 0C002926 */ jal increment_random_num +/* 006D6C 7000616C 00402025 */ move $a0, $v0 +/* 006D70 70006170 3C168003 */ lui $s6, %hi(aU64_taskgrab_D_core) +/* 006D74 70006174 3C158008 */ lui $s5, %hi(pPlayer) +/* 006D78 70006178 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 006D7C 7000617C 26D69134 */ addiu $s6, %lo(aU64_taskgrab_D_core) # addiu $s6, $s6, -0x6ecc +/* 006D80 70006180 27B70058 */ addiu $s7, $sp, 0x58 +/* 006D84 70006184 27B4005C */ addiu $s4, $sp, 0x5c +/* 006D88 70006188 8FB301A8 */ lw $s3, 0x1a8($sp) +.L7000618C: +/* 006D8C 7000618C 3C0B8002 */ lui $t3, %hi(D_80024304) +/* 006D90 70006190 AFA001D4 */ sw $zero, 0x1d4($sp) +/* 006D94 70006194 256B4304 */ addiu $t3, %lo(D_80024304) # addiu $t3, $t3, 0x4304 +/* 006D98 70006198 8D610000 */ lw $at, ($t3) +/* 006D9C 7000619C 8D6F0004 */ lw $t7, 4($t3) +/* 006DA0 700061A0 27AA01B4 */ addiu $t2, $sp, 0x1b4 +/* 006DA4 700061A4 AD410000 */ sw $at, ($t2) +/* 006DA8 700061A8 AD4F0004 */ sw $t7, 4($t2) +/* 006DAC 700061AC 8D6F000C */ lw $t7, 0xc($t3) +/* 006DB0 700061B0 8D610008 */ lw $at, 8($t3) +/* 006DB4 700061B4 0000F025 */ move $fp, $zero +/* 006DB8 700061B8 AD4F000C */ sw $t7, 0xc($t2) +/* 006DBC 700061BC AD410008 */ sw $at, 8($t2) +/* 006DC0 700061C0 8D610010 */ lw $at, 0x10($t3) +/* 006DC4 700061C4 8D6F0014 */ lw $t7, 0x14($t3) +/* 006DC8 700061C8 00008825 */ move $s1, $zero +/* 006DCC 700061CC AD410010 */ sw $at, 0x10($t2) +/* 006DD0 700061D0 AD4F0014 */ sw $t7, 0x14($t2) +/* 006DD4 700061D4 8D6F001C */ lw $t7, 0x1c($t3) +/* 006DD8 700061D8 8D610018 */ lw $at, 0x18($t3) +/* 006DDC 700061DC AD4F001C */ sw $t7, 0x1c($t2) +/* 006DE0 700061E0 AD410018 */ sw $at, 0x18($t2) +/* 006DE4 700061E4 0FC2FF04 */ jal get_current_difficulty +/* 006DE8 700061E8 AFA001AC */ sw $zero, 0x1ac($sp) +/* 006DEC 700061EC 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006DF0 700061F0 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006DF4 700061F4 0FC30190 */ jal test_if_recording_demos_this_stage_load +/* 006DF8 700061F8 00402825 */ move $a1, $v0 +/* 006DFC 700061FC 3C0E8002 */ lui $t6, %hi(debug_and_update_stage_flag) +/* 006E00 70006200 8DCE41A4 */ lw $t6, %lo(debug_and_update_stage_flag)($t6) +/* 006E04 70006204 3C188002 */ lui $t8, %hi(current_stage_num) +/* 006E08 70006208 11C00038 */ beqz $t6, .L700062EC +/* 006E0C 7000620C 00000000 */ nop +/* 006E10 70006210 8F1841A8 */ lw $t8, %lo(current_stage_num)($t8) +/* 006E14 70006214 2401005A */ li $at, 90 +/* 006E18 70006218 2410FFFF */ li $s0, -1 +/* 006E1C 7000621C 1301001D */ beq $t8, $at, .L70006294 +/* 006E20 70006220 00000000 */ nop +/* 006E24 70006224 0FC040A4 */ jal get_selected_num_players +/* 006E28 70006228 00000000 */ nop +/* 006E2C 7000622C 28410002 */ slti $at, $v0, 2 +/* 006E30 70006230 14200018 */ bnez $at, .L70006294 +/* 006E34 70006234 3C058002 */ lui $a1, %hi(memallocstringtable) +/* 006E38 70006238 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc +/* 006E3C 7000623C 8CB90000 */ lw $t9, ($a1) +/* 006E40 70006240 00008025 */ move $s0, $zero +/* 006E44 70006244 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006E48 70006248 1320000C */ beqz $t9, .L7000627C +/* 006E4C 7000624C 3C088002 */ lui $t0, %hi(memallocstringtable) +/* 006E50 70006250 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006E54 70006254 250241BC */ addiu $v0, $t0, %lo(memallocstringtable) +/* 006E58 70006258 8C430000 */ lw $v1, ($v0) +/* 006E5C 7000625C 24840190 */ addiu $a0, $a0, 0x190 +.L70006260: +/* 006E60 70006260 50830007 */ beql $a0, $v1, .L70006280 +/* 006E64 70006264 001048C0 */ sll $t1, $s0, 3 +/* 006E68 70006268 8C430008 */ lw $v1, 8($v0) +/* 006E6C 7000626C 26100001 */ addiu $s0, $s0, 1 +/* 006E70 70006270 24420008 */ addiu $v0, $v0, 8 +/* 006E74 70006274 1460FFFA */ bnez $v1, .L70006260 +/* 006E78 70006278 00000000 */ nop +.L7000627C: +/* 006E7C 7000627C 001048C0 */ sll $t1, $s0, 3 +.L70006280: +/* 006E80 70006280 00A96821 */ addu $t5, $a1, $t1 +/* 006E84 70006284 8DAC0000 */ lw $t4, ($t5) +/* 006E88 70006288 15800002 */ bnez $t4, .L70006294 +/* 006E8C 7000628C 00000000 */ nop +/* 006E90 70006290 2410FFFF */ li $s0, -1 +.L70006294: +/* 006E94 70006294 3C058002 */ lui $a1, %hi(memallocstringtable) +/* 006E98 70006298 06010010 */ bgez $s0, .L700062DC +/* 006E9C 7000629C 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc +/* 006EA0 700062A0 8CAA0000 */ lw $t2, ($a1) +/* 006EA4 700062A4 00008025 */ move $s0, $zero +/* 006EA8 700062A8 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006EAC 700062AC 1140000B */ beqz $t2, .L700062DC +/* 006EB0 700062B0 3C0B8002 */ lui $t3, %hi(memallocstringtable) +/* 006EB4 700062B4 256241BC */ addiu $v0, $t3, %lo(memallocstringtable) +/* 006EB8 700062B8 8C430000 */ lw $v1, ($v0) +/* 006EBC 700062BC 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +.L700062C0: +/* 006EC0 700062C0 50830007 */ beql $a0, $v1, .L700062E0 +/* 006EC4 700062C4 001078C0 */ sll $t7, $s0, 3 +/* 006EC8 700062C8 8C430008 */ lw $v1, 8($v0) +/* 006ECC 700062CC 26100001 */ addiu $s0, $s0, 1 +/* 006ED0 700062D0 24420008 */ addiu $v0, $v0, 8 +/* 006ED4 700062D4 1460FFFA */ bnez $v1, .L700062C0 +/* 006ED8 700062D8 00000000 */ nop +.L700062DC: +/* 006EDC 700062DC 001078C0 */ sll $t7, $s0, 3 +.L700062E0: +/* 006EE0 700062E0 00AF7021 */ addu $t6, $a1, $t7 +/* 006EE4 700062E4 0C002963 */ jal strtok +/* 006EE8 700062E8 8DC40004 */ lw $a0, 4($t6) +.L700062EC: +/* 006EEC 700062EC 0C002667 */ jal mempResetBank +/* 006EF0 700062F0 24040004 */ li $a0, 4 +/* 006EF4 700062F4 0FC2F46F */ jal obBlankResourcesLoadedInBank +/* 006EF8 700062F8 24040004 */ li $a0, 4 +/* 006EFC 700062FC 3C058003 */ lui $a1, %hi(aMa) +/* 006F00 70006300 24A5912C */ addiu $a1, %lo(aMa) # addiu $a1, $a1, -0x6ed4 +/* 006F04 70006304 0C0029A8 */ jal check_token +/* 006F08 70006308 24040001 */ li $a0, 1 +/* 006F0C 7000630C 1040000B */ beqz $v0, .L7000633C +/* 006F10 70006310 24040001 */ li $a0, 1 +/* 006F14 70006314 3C058003 */ lui $a1, %hi(aMa_0) +/* 006F18 70006318 0C0029A8 */ jal check_token +/* 006F1C 7000631C 24A59130 */ addiu $a1, %lo(aMa_0) # addiu $a1, $a1, -0x6ed0 +/* 006F20 70006320 00402025 */ move $a0, $v0 +/* 006F24 70006324 00002825 */ move $a1, $zero +/* 006F28 70006328 0C002A78 */ jal strtol +/* 006F2C 7000632C 00003025 */ move $a2, $zero +/* 006F30 70006330 0002C280 */ sll $t8, $v0, 0xa +/* 006F34 70006334 3C018002 */ lui $at, %hi(current_ma_malloc_value) +/* 006F38 70006338 AC3841B0 */ sw $t8, %lo(current_ma_malloc_value)($at) +.L7000633C: +/* 006F3C 7000633C 3C048002 */ lui $a0, %hi(current_ma_malloc_value) +/* 006F40 70006340 8C8441B0 */ lw $a0, %lo(current_ma_malloc_value)($a0) +/* 006F44 70006344 0C0025C8 */ jal mempAllocBytesInBank +/* 006F48 70006348 24050004 */ li $a1, 4 +/* 006F4C 7000634C 3C058002 */ lui $a1, %hi(current_ma_malloc_value) +/* 006F50 70006350 8CA541B0 */ lw $a1, %lo(current_ma_malloc_value)($a1) +/* 006F54 70006354 0C002766 */ jal mempInitMallocTable +/* 006F58 70006358 00402025 */ move $a0, $v0 +/* 006F5C 7000635C 0FC268CB */ jal reset_play_data_ptrs +/* 006F60 70006360 00000000 */ nop +/* 006F64 70006364 3C198002 */ lui $t9, %hi(current_stage_num) +/* 006F68 70006368 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) +/* 006F6C 7000636C 2401005A */ li $at, 90 +/* 006F70 70006370 13210009 */ beq $t9, $at, .L70006398 +/* 006F74 70006374 00000000 */ nop +/* 006F78 70006378 0FC040A4 */ jal get_selected_num_players +/* 006F7C 7000637C 24110001 */ li $s1, 1 +/* 006F80 70006380 28410002 */ slti $at, $v0, 2 +/* 006F84 70006384 14200004 */ bnez $at, .L70006398 +/* 006F88 70006388 00000000 */ nop +/* 006F8C 7000638C 0FC040A4 */ jal get_selected_num_players +/* 006F90 70006390 00000000 */ nop +/* 006F94 70006394 00408825 */ move $s1, $v0 +.L70006398: +/* 006F98 70006398 0FC268E3 */ jal init_player_data_ptrs_construct_viewports +/* 006F9C 7000639C 02202025 */ move $a0, $s1 +/* 006FA0 700063A0 0FC2F523 */ jal set_vtx_gfx_mem_alloc +/* 006FA4 700063A4 00000000 */ nop +/* 006FA8 700063A8 0C002DAB */ jal test_controller_presence +/* 006FAC 700063AC 00000000 */ nop +/* 006FB0 700063B0 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006FB4 700063B4 0FC2F6AC */ jal stage_load +/* 006FB8 700063B8 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006FBC 700063BC 0C000C49 */ jal init_both_video_buffers +/* 006FC0 700063C0 00000000 */ nop +/* 006FC4 700063C4 0C002B6C */ jal debug_text_related_2 +/* 006FC8 700063C8 00000000 */ nop +/* 006FCC 700063CC 0FC302D3 */ jal sub_GAME_7F0C0B4C +/* 006FD0 700063D0 00000000 */ nop +/* 006FD4 700063D4 0C000A04 */ jal video_related_2 +/* 006FD8 700063D8 00000000 */ nop +/* 006FDC 700063DC 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 006FE0 700063E0 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 006FE4 700063E4 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 006FE8 700063E8 0C003774 */ jal osRecvMesg +/* 006FEC 700063EC 00003025 */ move $a2, $zero +/* 006FF0 700063F0 14400007 */ bnez $v0, .L70006410 +.L700063F4: +/* 006FF4 700063F4 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 006FF8 700063F8 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 006FFC 700063FC 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 007000 70006400 0C003774 */ jal osRecvMesg +/* 007004 70006404 00003025 */ move $a2, $zero +/* 007008 70006408 1040FFFA */ beqz $v0, .L700063F4 +/* 00700C 7000640C 00000000 */ nop +.L70006410: +/* 007010 70006410 3C088002 */ lui $t0, %hi(loadedstage) +/* 007014 70006414 8D0842FC */ lw $t0, %lo(loadedstage)($t0) +/* 007018 70006418 05010126 */ bgez $t0, .L700068B4 +.L7000641C: +/* 00701C 7000641C 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 007020 70006420 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 007024 70006424 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 007028 70006428 0C003774 */ jal osRecvMesg +/* 00702C 7000642C 24060001 */ li $a2, 1 +/* 007030 70006430 8FA901D4 */ lw $t1, 0x1d4($sp) +/* 007034 70006434 24010001 */ li $at, 1 +/* 007038 70006438 85230000 */ lh $v1, ($t1) +/* 00703C 7000643C 10610009 */ beq $v1, $at, .L70006464 +/* 007040 70006440 24010002 */ li $at, 2 +/* 007044 70006444 10610112 */ beq $v1, $at, .L70006890 +/* 007048 70006448 3C028002 */ lui $v0, %hi(loadedstage) +/* 00704C 7000644C 24010005 */ li $at, 5 +/* 007050 70006450 10610112 */ beq $v1, $at, .L7000689C +/* 007054 70006454 3C028002 */ lui $v0, %hi(loadedstage) +/* 007058 70006458 3C028002 */ lui $v0, %hi(loadedstage) +/* 00705C 7000645C 10000111 */ b .L700068A4 +/* 007060 70006460 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006464: +/* 007064 70006464 0C003638 */ jal osGetCount +/* 007068 70006468 00000000 */ nop +/* 00706C 7000646C 3C0D8005 */ lui $t5, %hi(copy_of_osgetcount_value_1) +/* 007070 70006470 8DAD84B0 */ lw $t5, %lo(copy_of_osgetcount_value_1)($t5) +/* 007074 70006474 3C010005 */ lui $at, (0x0005EB61 >> 16) # lui $at, 5 +/* 007078 70006478 3421EB61 */ ori $at, (0x0005EB61 & 0xFFFF) # ori $at, $at, 0xeb61 +/* 00707C 7000647C 004D1823 */ subu $v1, $v0, $t5 +/* 007080 70006480 0061082B */ sltu $at, $v1, $at +/* 007084 70006484 10200004 */ beqz $at, .L70006498 +/* 007088 70006488 3C028002 */ lui $v0, %hi(loadedstage) +/* 00708C 7000648C 3C028002 */ lui $v0, %hi(loadedstage) +/* 007090 70006490 10000104 */ b .L700068A4 +/* 007094 70006494 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006498: +/* 007098 70006498 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +/* 00709C 7000649C 2FC10002 */ sltiu $at, $fp, 2 +/* 0070A0 700064A0 04410100 */ bgez $v0, .L700068A4 +/* 0070A4 700064A4 00000000 */ nop +/* 0070A8 700064A8 102000FE */ beqz $at, .L700068A4 +/* 0070AC 700064AC 27AC01B4 */ addiu $t4, $sp, 0x1b4 +/* 0070B0 700064B0 0FC2FF23 */ jal get_is_ramrom_flag +/* 0070B4 700064B4 AFAC0048 */ sw $t4, 0x48($sp) +/* 0070B8 700064B8 10400005 */ beqz $v0, .L700064D0 +/* 0070BC 700064BC 00000000 */ nop +/* 0070C0 700064C0 0FC3009A */ jal iterate_ramrom_entries_handle_camera_out +/* 0070C4 700064C4 00000000 */ nop +/* 0070C8 700064C8 10000003 */ b .L700064D8 +/* 0070CC 700064CC 00000000 */ nop +.L700064D0: +/* 0070D0 700064D0 0FC302D3 */ jal sub_GAME_7F0C0B4C +/* 0070D4 700064D4 00000000 */ nop +.L700064D8: +/* 0070D8 700064D8 0C000B36 */ jal video_DL_related_4 +/* 0070DC 700064DC 00000000 */ nop +/* 0070E0 700064E0 0C000A04 */ jal video_related_2 +/* 0070E4 700064E4 00000000 */ nop +/* 0070E8 700064E8 0C000A15 */ jal video_related_3 +/* 0070EC 700064EC 3C040002 */ lui $a0, 2 +/* 0070F0 700064F0 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set +/* 0070F4 700064F4 00000000 */ nop +/* 0070F8 700064F8 0C000262 */ jal permit_stderr +/* 0070FC 700064FC 00002025 */ move $a0, $zero +/* 007100 70006500 0FC2F59D */ jal get_ptr_displaylist +/* 007104 70006504 00000000 */ nop +/* 007108 70006508 3C0A8002 */ lui $t2, %hi(debug_feature_flag) +/* 00710C 7000650C 8D4A4300 */ lw $t2, %lo(debug_feature_flag)($t2) +/* 007110 70006510 AFA201A4 */ sw $v0, 0x1a4($sp) +/* 007114 70006514 00409825 */ move $s3, $v0 +/* 007118 70006518 1140001D */ beqz $t2, .L70006590 +/* 00711C 7000651C 00000000 */ nop +/* 007120 70006520 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 007124 70006524 00002025 */ move $a0, $zero +/* 007128 70006528 00028600 */ sll $s0, $v0, 0x18 +/* 00712C 7000652C 00105E03 */ sra $t3, $s0, 0x18 +/* 007130 70006530 01608025 */ move $s0, $t3 +/* 007134 70006534 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 007138 70006538 00002025 */ move $a0, $zero +/* 00713C 7000653C 00028E00 */ sll $s1, $v0, 0x18 +/* 007140 70006540 00117E03 */ sra $t7, $s1, 0x18 +/* 007144 70006544 01E08825 */ move $s1, $t7 +/* 007148 70006548 00002025 */ move $a0, $zero +/* 00714C 7000654C 0C0030C3 */ jal get_controller_buttons_held +/* 007150 70006550 3405FFFF */ li $a1, 65535 +/* 007154 70006554 3052FFFF */ andi $s2, $v0, 0xffff +/* 007158 70006558 00002025 */ move $a0, $zero +/* 00715C 7000655C 0C0030EB */ jal get_controller_buttons_pressed +/* 007160 70006560 3405FFFF */ li $a1, 65535 +/* 007164 70006564 00102600 */ sll $a0, $s0, 0x18 +/* 007168 70006568 00112E00 */ sll $a1, $s1, 0x18 +/* 00716C 7000656C 0005C603 */ sra $t8, $a1, 0x18 +/* 007170 70006570 00047603 */ sra $t6, $a0, 0x18 +/* 007174 70006574 01C02025 */ move $a0, $t6 +/* 007178 70006578 03002825 */ move $a1, $t8 +/* 00717C 7000657C 3246FFFF */ andi $a2, $s2, 0xffff +/* 007180 70006580 0FC24168 */ jal debug_menu_processor +/* 007184 70006584 3047FFFF */ andi $a3, $v0, 0xffff +/* 007188 70006588 3C018002 */ lui $at, %hi(debug_feature_flag) +/* 00718C 7000658C AC224300 */ sw $v0, %lo(debug_feature_flag)($at) +.L70006590: +/* 007190 70006590 0FC2FAE2 */ jal manage_mp_game +/* 007194 70006594 00000000 */ nop +/* 007198 70006598 0FC26D07 */ jal sub_GAME_7F09B41C +/* 00719C 7000659C 00000000 */ nop +/* 0071A0 700065A0 3C198002 */ lui $t9, %hi(current_stage_num) +/* 0071A4 700065A4 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) +/* 0071A8 700065A8 2401005A */ li $at, 90 +/* 0071AC 700065AC 13210018 */ beq $t9, $at, .L70006610 +/* 0071B0 700065B0 00000000 */ nop +/* 0071B4 700065B4 0FC26919 */ jal get_num_players +/* 0071B8 700065B8 00008825 */ move $s1, $zero +/* 0071BC 700065BC 18400014 */ blez $v0, .L70006610 +/* 0071C0 700065C0 00000000 */ nop +.L700065C4: +/* 0071C4 700065C4 0FC26D4A */ jal sub_GAME_7F09B528 +/* 0071C8 700065C8 02202025 */ move $a0, $s1 +/* 0071CC 700065CC 0FC26C43 */ jal set_cur_player +/* 0071D0 700065D0 00402025 */ move $a0, $v0 +/* 0071D4 700065D4 8EB00000 */ lw $s0, ($s5) +/* 0071D8 700065D8 860407F0 */ lh $a0, 0x7f0($s0) +/* 0071DC 700065DC 0C00110F */ jal set_video2_width_height +/* 0071E0 700065E0 860507F2 */ lh $a1, 0x7f2($s0) +/* 0071E4 700065E4 8EB00000 */ lw $s0, ($s5) +/* 0071E8 700065E8 860407F4 */ lh $a0, 0x7f4($s0) +/* 0071EC 700065EC 0C00112F */ jal set_video2_ulx_uly +/* 0071F0 700065F0 860507F6 */ lh $a1, 0x7f6($s0) +/* 0071F4 700065F4 0FC2FE00 */ jal sub_GAME_7F0BF800 +/* 0071F8 700065F8 00000000 */ nop +/* 0071FC 700065FC 0FC26919 */ jal get_num_players +/* 007200 70006600 26310001 */ addiu $s1, $s1, 1 +/* 007204 70006604 0222082A */ slt $at, $s1, $v0 +/* 007208 70006608 1420FFEE */ bnez $at, .L700065C4 +/* 00720C 7000660C 00000000 */ nop +.L70006610: +/* 007210 70006610 0FC2F8C3 */ jal sub_GAME_7F0BE30C +/* 007214 70006614 02602025 */ move $a0, $s3 +/* 007218 70006618 0FC243F7 */ jal get_debug_VisCVG_flag +/* 00721C 7000661C 00409825 */ move $s3, $v0 +/* 007220 70006620 10400037 */ beqz $v0, .L70006700 +/* 007224 70006624 2407FFFF */ li $a3, -1 +/* 007228 70006628 02601025 */ move $v0, $s3 +/* 00722C 7000662C 26730008 */ addiu $s3, $s3, 8 +/* 007230 70006630 3C08E700 */ lui $t0, 0xe700 +/* 007234 70006634 02601825 */ move $v1, $s3 +/* 007238 70006638 AC480000 */ sw $t0, ($v0) +/* 00723C 7000663C AC400004 */ sw $zero, 4($v0) +/* 007240 70006640 26730008 */ addiu $s3, $s3, 8 +/* 007244 70006644 3C09BA00 */ lui $t1, (0xBA001402 >> 16) # lui $t1, 0xba00 +/* 007248 70006648 02602025 */ move $a0, $s3 +/* 00724C 7000664C 35291402 */ ori $t1, (0xBA001402 & 0xFFFF) # ori $t1, $t1, 0x1402 +/* 007250 70006650 26730008 */ addiu $s3, $s3, 8 +/* 007254 70006654 AC690000 */ sw $t1, ($v1) +/* 007258 70006658 AC600004 */ sw $zero, 4($v1) +/* 00725C 7000665C 02602825 */ move $a1, $s3 +/* 007260 70006660 3C0DF900 */ lui $t5, 0xf900 +/* 007264 70006664 26730008 */ addiu $s3, $s3, 8 +/* 007268 70006668 AC8D0000 */ sw $t5, 0($a0) +/* 00726C 7000666C AC870004 */ sw $a3, 4($a0) +/* 007270 70006670 02603025 */ move $a2, $s3 +/* 007274 70006674 3C0CEE00 */ lui $t4, 0xee00 +/* 007278 70006678 26730008 */ addiu $s3, $s3, 8 +/* 00727C 7000667C ACAC0000 */ sw $t4, ($a1) +/* 007280 70006680 ACA70004 */ sw $a3, 4($a1) +/* 007284 70006684 3C0AB900 */ lui $t2, (0xB9000201 >> 16) # lui $t2, 0xb900 +/* 007288 70006688 02601025 */ move $v0, $s3 +/* 00728C 7000668C 354A0201 */ ori $t2, (0xB9000201 & 0xFFFF) # ori $t2, $t2, 0x201 +/* 007290 70006690 240B0004 */ li $t3, 4 +/* 007294 70006694 26730008 */ addiu $s3, $s3, 8 +/* 007298 70006698 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 00729C 7000669C 3C0E0FA5 */ lui $t6, (0x0FA54040 >> 16) # lui $t6, 0xfa5 +/* 0072A0 700066A0 ACCB0004 */ sw $t3, 4($a2) +/* 0072A4 700066A4 ACCA0000 */ sw $t2, ($a2) +/* 0072A8 700066A8 35CE4040 */ ori $t6, (0x0FA54040 & 0xFFFF) # ori $t6, $t6, 0x4040 +/* 0072AC 700066AC 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0072B0 700066B0 02608025 */ move $s0, $s3 +/* 0072B4 700066B4 AC4F0000 */ sw $t7, ($v0) +/* 0072B8 700066B8 AC4E0004 */ sw $t6, 4($v0) +/* 0072BC 700066BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0072C0 700066C0 26730008 */ addiu $s3, $s3, 8 +/* 0072C4 700066C4 00028C00 */ sll $s1, $v0, 0x10 +/* 0072C8 700066C8 0011C403 */ sra $t8, $s1, 0x10 +/* 0072CC 700066CC 0C00110B */ jal get_video2_settings_txtClipH +/* 0072D0 700066D0 03008825 */ move $s1, $t8 +/* 0072D4 700066D4 2459FFFF */ addiu $t9, $v0, -1 +/* 0072D8 700066D8 332803FF */ andi $t0, $t9, 0x3ff +/* 0072DC 700066DC 262CFFFF */ addiu $t4, $s1, -1 +/* 0072E0 700066E0 318A03FF */ andi $t2, $t4, 0x3ff +/* 0072E4 700066E4 00084880 */ sll $t1, $t0, 2 +/* 0072E8 700066E8 3C01F600 */ lui $at, 0xf600 +/* 0072EC 700066EC 01216825 */ or $t5, $t1, $at +/* 0072F0 700066F0 000A5B80 */ sll $t3, $t2, 0xe +/* 0072F4 700066F4 01AB7825 */ or $t7, $t5, $t3 +/* 0072F8 700066F8 AE0F0000 */ sw $t7, ($s0) +/* 0072FC 700066FC AE000004 */ sw $zero, 4($s0) +.L70006700: +/* 007300 70006700 0C002C9F */ jal read_screen_display_block_and_write_chars +/* 007304 70006704 02602025 */ move $a0, $s3 +/* 007308 70006708 0FC243CD */ jal get_memusage_display_flag +/* 00730C 7000670C 00409825 */ move $s3, $v0 +/* 007310 70006710 10400004 */ beqz $v0, .L70006724 +/* 007314 70006714 00000000 */ nop +/* 007318 70006718 0C000A56 */ jal display_speed_graph +/* 00731C 7000671C 02602025 */ move $a0, $s3 +/* 007320 70006720 00409825 */ move $s3, $v0 +.L70006724: +/* 007324 70006724 3C0E8002 */ lui $t6, %hi(debug_feature_flag) +/* 007328 70006728 8DCE4300 */ lw $t6, %lo(debug_feature_flag)($t6) +/* 00732C 7000672C 51C00007 */ beql $t6, $zero, .L7000674C +/* 007330 70006730 02601025 */ move $v0, $s3 +/* 007334 70006734 0FC24124 */ jal display_debug_menu_text_onscreen +/* 007338 70006738 00000000 */ nop +/* 00733C 7000673C 0FC23F9D */ jal print_debug_mcm_to_stdout +/* 007340 70006740 02602025 */ move $a0, $s3 +/* 007344 70006744 00409825 */ move $s3, $v0 +/* 007348 70006748 02601025 */ move $v0, $s3 +.L7000674C: +/* 00734C 7000674C 26730008 */ addiu $s3, $s3, 8 +/* 007350 70006750 3C18E900 */ lui $t8, 0xe900 +/* 007354 70006754 AC580000 */ sw $t8, ($v0) +/* 007358 70006758 AC400004 */ sw $zero, 4($v0) +/* 00735C 7000675C 02601825 */ move $v1, $s3 +/* 007360 70006760 3C19B800 */ lui $t9, 0xb800 +/* 007364 70006764 AC790000 */ sw $t9, ($v1) +/* 007368 70006768 AC600004 */ sw $zero, 4($v1) +/* 00736C 7000676C 3C088002 */ lui $t0, %hi(show_mem_use_flag) +/* 007370 70006770 8D0841B4 */ lw $t0, %lo(show_mem_use_flag)($t0) +/* 007374 70006774 26730008 */ addiu $s3, $s3, 8 +/* 007378 70006778 1100000B */ beqz $t0, .L700067A8 +/* 00737C 7000677C 00000000 */ nop +/* 007380 70006780 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 007384 70006784 00000000 */ nop +/* 007388 70006788 0C0028A7 */ jal memaGenerateListsBeforeAfterMerge +/* 00738C 7000678C 00000000 */ nop +/* 007390 70006790 0FC2F5DD */ jal removed_debug_routine +/* 007394 70006794 02602025 */ move $a0, $s3 +/* 007398 70006798 0FC31994 */ jal nullsub_41 +/* 00739C 7000679C 00002025 */ move $a0, $zero +/* 0073A0 700067A0 3C018002 */ lui $at, %hi(show_mem_use_flag) +/* 0073A4 700067A4 AC2041B4 */ sw $zero, %lo(show_mem_use_flag)($at) +.L700067A8: +/* 0073A8 700067A8 3C098002 */ lui $t1, %hi(show_mem_bars_flag) +/* 0073AC 700067AC 8D2941B8 */ lw $t1, %lo(show_mem_bars_flag)($t1) +/* 0073B0 700067B0 11200003 */ beqz $t1, .L700067C0 +/* 0073B4 700067B4 00000000 */ nop +/* 0073B8 700067B8 0FC2F604 */ jal draw_membars +/* 0073BC 700067BC 02602025 */ move $a0, $s3 +.L700067C0: +/* 0073C0 700067C0 0FC2F5A7 */ jal allocate_something_in_mgfx +/* 0073C4 700067C4 02602025 */ move $a0, $s3 +/* 0073C8 700067C8 0FC2F5CE */ jal allocate_something_in_mvtx +/* 0073CC 700067CC 00000000 */ nop +/* 0073D0 700067D0 0C000CA6 */ jal video_related_8 +/* 0073D4 700067D4 00000000 */ nop +/* 0073D8 700067D8 0FC2441B */ jal get_debug_taskgrab_val +/* 0073DC 700067DC 00000000 */ nop +/* 0073E0 700067E0 1040001C */ beqz $v0, .L70006854 +/* 0073E4 700067E4 00002025 */ move $a0, $zero +/* 0073E8 700067E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0073EC 700067EC 3405C000 */ li $a1, 49152 +/* 0073F0 700067F0 10400018 */ beqz $v0, .L70006854 +/* 0073F4 700067F4 00002025 */ move $a0, $zero +/* 0073F8 700067F8 0C0030C3 */ jal get_controller_buttons_held +/* 0073FC 700067FC 3405C000 */ li $a1, 49152 +/* 007400 70006800 3401C000 */ li $at, 49152 +/* 007404 70006804 14410013 */ bne $v0, $at, .L70006854 +.L70006808: +/* 007408 70006808 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) +/* 00740C 7000680C 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) +/* 007410 70006810 02802025 */ move $a0, $s4 +/* 007414 70006814 0C002B25 */ jal sprintf +/* 007418 70006818 02C02825 */ move $a1, $s6 +/* 00741C 7000681C 02802025 */ move $a0, $s4 +/* 007420 70006820 0FC34026 */ jal check_file_found_on_indy +/* 007424 70006824 02E02825 */ move $a1, $s7 +/* 007428 70006828 10400006 */ beqz $v0, .L70006844 +/* 00742C 7000682C 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) +/* 007430 70006830 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) +/* 007434 70006834 3C018002 */ lui $at, %hi(taskgrab_ramdump_num) +/* 007438 70006838 24C60001 */ addiu $a2, $a2, 1 +/* 00743C 7000683C 1000FFF2 */ b .L70006808 +/* 007440 70006840 AC264324 */ sw $a2, %lo(taskgrab_ramdump_num)($at) +.L70006844: +/* 007444 70006844 02802025 */ move $a0, $s4 +/* 007448 70006848 3C058000 */ lui $a1, 0x8000 +/* 00744C 7000684C 0FC33FF8 */ jal indy_send_capture_data +/* 007450 70006850 3C060040 */ lui $a2, 0x40 +.L70006854: +/* 007454 70006854 8FA401A4 */ lw $a0, 0x1a4($sp) +/* 007458 70006858 02602825 */ move $a1, $s3 +/* 00745C 7000685C 00003025 */ move $a2, $zero +/* 007460 70006860 0FC33F86 */ jal load_rsp_microcode +/* 007464 70006864 8FA70048 */ lw $a3, 0x48($sp) +/* 007468 70006868 0C002784 */ jal mem_related_calls_sort_merge_entries +/* 00746C 7000686C 27DE0001 */ addiu $fp, $fp, 1 +/* 007470 70006870 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 007474 70006874 3C040001 */ lui $a0, 1 +/* 007478 70006878 398A0001 */ xori $t2, $t4, 1 +/* 00747C 7000687C 0C000A15 */ jal video_related_3 +/* 007480 70006880 AFAA01AC */ sw $t2, 0x1ac($sp) +/* 007484 70006884 3C028002 */ lui $v0, %hi(loadedstage) +/* 007488 70006888 10000006 */ b .L700068A4 +/* 00748C 7000688C 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006890: +/* 007490 70006890 27DEFFFF */ addiu $fp, $fp, -1 +/* 007494 70006894 10000003 */ b .L700068A4 +/* 007498 70006898 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L7000689C: +/* 00749C 7000689C 241E0004 */ li $fp, 4 +/* 0074A0 700068A0 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L700068A4: +/* 0074A4 700068A4 0440FEDD */ bltz $v0, .L7000641C +/* 0074A8 700068A8 00000000 */ nop +/* 0074AC 700068AC 17C0FEDB */ bnez $fp, .L7000641C +/* 0074B0 700068B0 00000000 */ nop +.L700068B4: +/* 0074B4 700068B4 0FC2FEC8 */ jal unload_stage_text_data +/* 0074B8 700068B8 00000000 */ nop +/* 0074BC 700068BC 0FC3023F */ jal stop_demo_playback +/* 0074C0 700068C0 00000000 */ nop +/* 0074C4 700068C4 0C002671 */ jal mempNullNextEntryInBank +/* 0074C8 700068C8 24040004 */ li $a0, 4 +/* 0074CC 700068CC 0FC2F46F */ jal obBlankResourcesLoadedInBank +/* 0074D0 700068D0 24040004 */ li $a0, 4 +/* 0074D4 700068D4 3C028002 */ lui $v0, %hi(loadedstage) +/* 0074D8 700068D8 244242FC */ addiu $v0, %lo(loadedstage) # addiu $v0, $v0, 0x42fc +/* 0074DC 700068DC 8C4D0000 */ lw $t5, ($v0) +/* 0074E0 700068E0 8FAF01DC */ lw $t7, 0x1dc($sp) +/* 0074E4 700068E4 3C018002 */ lui $at, %hi(current_stage_num) +/* 0074E8 700068E8 240BFFFF */ li $t3, -1 +/* 0074EC 700068EC AC2D41A8 */ sw $t5, %lo(current_stage_num)($at) +/* 0074F0 700068F0 11E0FE26 */ beqz $t7, .L7000618C +/* 0074F4 700068F4 AC4B0000 */ sw $t3, ($v0) +/* 0074F8 700068F8 0FC3469F */ jal sub_GAME_7F0D1A7C +/* 0074FC 700068FC AFB301A8 */ sw $s3, 0x1a8($sp) +/* 007500 70006900 8FBF003C */ lw $ra, 0x3c($sp) +/* 007504 70006904 8FB00018 */ lw $s0, 0x18($sp) +/* 007508 70006908 8FB1001C */ lw $s1, 0x1c($sp) +/* 00750C 7000690C 8FB20020 */ lw $s2, 0x20($sp) +/* 007510 70006910 8FB30024 */ lw $s3, 0x24($sp) +/* 007514 70006914 8FB40028 */ lw $s4, 0x28($sp) +/* 007518 70006918 8FB5002C */ lw $s5, 0x2c($sp) +/* 00751C 7000691C 8FB60030 */ lw $s6, 0x30($sp) +/* 007520 70006920 8FB70034 */ lw $s7, 0x34($sp) +/* 007524 70006924 8FBE0038 */ lw $fp, 0x38($sp) +/* 007528 70006928 03E00008 */ jr $ra +/* 00752C 7000692C 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + +/** + * 7530 70006930 + * run title [0x5A->loaded stage#]; fry AT + * redirect to 70006950: A0=0x5A + */ +void run_title_stage(void) { + set_loaded_stage(LEVELID_TITLE); +} + +/** + * 7550 70006950 + * A0->loaded stage# [800242FC]; fry AT + * 0x5A jumps to folder select + * 0x5B + * 0x63 + */ +void set_loaded_stage(LEVELID stage){ + loadedstage = stage; +} + +/** + * 755C 7000695C + * V0= stage# [800241A8] + */ +LEVELID get_stage_num(){ + return current_stage_num; +} + +/** + * 7568 70006968 + * return to title screen from stage + */ +void return_to_title_from_level_end(void) { +#ifdef VERSION_JP + display_objective_status_text_on_status_change(); + FUN_7f057a40(); +#endif + if ((get_stage_num() != LEVELID_CUBA) && (check_objectives_complete() != 0x0)) { + end_of_mission_briefing(); + } + run_title_stage(); +} + +/** + * 75B4 700069B4 + * V0=state of debug menu (1:on; 0:off) [80024300] + */ +s32 get_debug_parse_flag(void) { + return debug_feature_flag; +} + +/** + * 75C0 700069C0 + * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 + */ +void bossInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&boss_c_ptr_debug_notice_list_entry, "boss_c_debug"); +} + + diff --git a/src/boss.h b/src/boss.h new file mode 100644 index 0000000..25e54a5 --- /dev/null +++ b/src/boss.h @@ -0,0 +1,15 @@ +#ifndef _BOSS_H_ +#define _BOSS_H_ +#include +#include "bondgame.h" + +struct memallocstring +{ + s32 id; + void *string; +}; + +void set_loaded_stage(LEVELID stage); +void bossInitDebugNoticeList(void); + +#endif diff --git a/src/c_data_filler.c b/src/c_data_filler.c new file mode 100644 index 0000000..fc60593 --- /dev/null +++ b/src/c_data_filler.c @@ -0,0 +1,6 @@ +#include "ultra64.h" +#include "c_data_filler.h" + +//this defines the size of blank are to store compressed code at +u8 c_data_array[0x11c00] = {0}; + diff --git a/src/c_data_filler.h b/src/c_data_filler.h new file mode 100644 index 0000000..e982621 --- /dev/null +++ b/src/c_data_filler.h @@ -0,0 +1,7 @@ +#ifndef _C_DATA_FILLER_H_ +#define _C_DATA_FILLER_H_ +#include + +extern u8 c_data_array[0x11c00]; + +#endif diff --git a/src/cfb.c b/src/cfb.c new file mode 100644 index 0000000..af2fd9e --- /dev/null +++ b/src/cfb.c @@ -0,0 +1,5 @@ +#include "ultra64.h" +#include "bondgame.h" + +u8 cfb_16_a[320*240*2]; +u8 cfb_16_b[320*240*2]; \ No newline at end of file diff --git a/src/deb.c b/src/deb.c new file mode 100644 index 0000000..7b76e9f --- /dev/null +++ b/src/deb.c @@ -0,0 +1,278 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "ramrom.h" +#include "deb.h" + +/** + * @file deb.c + * This file contains debug related code. + * + * In particular, it seems to handle debug_notice_list + */ + +/* bss */ +extern char dword_CODE_bss_80060890[0x400]; + + + +/* data */ +u32 D_800232E0[] = {0, 0}; +u32 debug_notice_list[] = {0, 0, 0, 0}; +char * debug_notice_list_data = &dword_CODE_bss_80060890; + + + + + +/** + * 5920 70004D20 + * V0=p->match in debug.notice.list [800232E8] or NULL if not found + * accepts: A0=p->name, A1=p->data + */ +#ifdef NONMATCHING +void *debCheckIfDNLEntryExists(s32 arg0) +{ + void *temp_s0; + void *phi_s0; + + phi_s0 = debug_notice_list; + if (debug_notice_list != 0) + { +loop_1: + if (something_with_strings_0(phi_s0->unk8, arg0) == 0) + { + return phi_s0; + } + temp_s0 = phi_s0->unk0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto loop_1; + } + } + return NULL; +} +#else +GLOBAL_ASM( +.text +glabel debCheckIfDNLEntryExists +/* 005920 70004D20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 005924 70004D24 AFB00014 */ sw $s0, 0x14($sp) +/* 005928 70004D28 3C108002 */ lui $s0, %hi(debug_notice_list) +/* 00592C 70004D2C 8E1032E8 */ lw $s0, %lo(debug_notice_list)($s0) +/* 005930 70004D30 AFB10018 */ sw $s1, 0x18($sp) +/* 005934 70004D34 00808825 */ move $s1, $a0 +/* 005938 70004D38 1200000B */ beqz $s0, .L70004D68 +/* 00593C 70004D3C AFBF001C */ sw $ra, 0x1c($sp) +/* 005940 70004D40 8E040008 */ lw $a0, 8($s0) +.L70004D44: +/* 005944 70004D44 0C002A13 */ jal something_with_strings_0 +/* 005948 70004D48 02202825 */ move $a1, $s1 +/* 00594C 70004D4C 54400004 */ bnezl $v0, .L70004D60 +/* 005950 70004D50 8E100000 */ lw $s0, ($s0) +/* 005954 70004D54 10000005 */ b .L70004D6C +/* 005958 70004D58 02001025 */ move $v0, $s0 +/* 00595C 70004D5C 8E100000 */ lw $s0, ($s0) +.L70004D60: +/* 005960 70004D60 5600FFF8 */ bnezl $s0, .L70004D44 +/* 005964 70004D64 8E040008 */ lw $a0, 8($s0) +.L70004D68: +/* 005968 70004D68 00001025 */ move $v0, $zero +.L70004D6C: +/* 00596C 70004D6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 005970 70004D70 8FB00014 */ lw $s0, 0x14($sp) +/* 005974 70004D74 8FB10018 */ lw $s1, 0x18($sp) +/* 005978 70004D78 03E00008 */ jr $ra +/* 00597C 70004D7C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + +/** + * 5980 70004D80 + * V0=p->entry of size A0 allocated in debug.notice.list; entry allocated in block 6 on failure + * accepts: A0=size + */ +#ifdef NONMATCHING +u32 debAllocateDNLEntry(s32 arg0) +{ + u32 temp_v0; + + temp_v0 = (debug_notice_list_data + arg0); + if (&tlbthread >= temp_v0) + { + debug_notice_list_data = temp_v0; + return debug_notice_list_data; + } + debug_notice_list_data = (u32) (temp_v0 - arg0); + return mempAllocBytesInBank(6); +} +#else +GLOBAL_ASM( +.text +glabel debAllocateDNLEntry +/* 005980 70004D80 3C028002 */ lui $v0, %hi(debug_notice_list_data) +/* 005984 70004D84 8C4232F8 */ lw $v0, %lo(debug_notice_list_data)($v0) +/* 005988 70004D88 3C0E8006 */ lui $t6, %hi(tlbthread) +/* 00598C 70004D8C 25CE0C90 */ addiu $t6, %lo(tlbthread) # addiu $t6, $t6, 0xc90 +/* 005990 70004D90 00401825 */ move $v1, $v0 +/* 005994 70004D94 00441021 */ addu $v0, $v0, $a0 +/* 005998 70004D98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00599C 70004D9C 01C2082B */ sltu $at, $t6, $v0 +/* 0059A0 70004DA0 10200008 */ beqz $at, .L70004DC4 +/* 0059A4 70004DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0059A8 70004DA8 00441023 */ subu $v0, $v0, $a0 +/* 0059AC 70004DAC 3C018002 */ lui $at, %hi(debug_notice_list_data) +/* 0059B0 70004DB0 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) +/* 0059B4 70004DB4 0C0025C8 */ jal mempAllocBytesInBank +/* 0059B8 70004DB8 24050006 */ li $a1, 6 +/* 0059BC 70004DBC 10000005 */ b .L70004DD4 +/* 0059C0 70004DC0 8FBF0014 */ lw $ra, 0x14($sp) +.L70004DC4: +/* 0059C4 70004DC4 3C018002 */ lui $at, %hi(debug_notice_list_data) +/* 0059C8 70004DC8 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) +/* 0059CC 70004DCC 00601025 */ move $v0, $v1 +/* 0059D0 70004DD0 8FBF0014 */ lw $ra, 0x14($sp) +.L70004DD4: +/* 0059D4 70004DD4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0059D8 70004DD8 03E00008 */ jr $ra +/* 0059DC 70004DDC 00000000 */ nop +) +#endif + + + + +/** + * 59E0 70004DE0 + * V0=p->new entry added in debug.notice.list + * accepts: A0=p->name, A1=p->data + */ +#ifdef NONMATCHING +void debAllocateAndAddDNLEntry(s32 arg0, s32 arg1) +{ + ? temp_ret; + + temp_ret = debAllocateDNLEntry(0x10); + *temp_ret = (s32) debug_notice_list; + temp_ret->unk4 = arg1; + temp_ret->unk8 = arg0; + debug_notice_list = temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel debAllocateAndAddDNLEntry +/* 0059E0 70004DE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0059E4 70004DE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0059E8 70004DE8 AFA40018 */ sw $a0, 0x18($sp) +/* 0059EC 70004DEC AFA5001C */ sw $a1, 0x1c($sp) +/* 0059F0 70004DF0 0C001360 */ jal debAllocateDNLEntry +/* 0059F4 70004DF4 24040010 */ li $a0, 16 +/* 0059F8 70004DF8 3C038002 */ lui $v1, %hi(debug_notice_list) +/* 0059FC 70004DFC 246332E8 */ addiu $v1, %lo(debug_notice_list) # addiu $v1, $v1, 0x32e8 +/* 005A00 70004E00 8C6E0000 */ lw $t6, ($v1) +/* 005A04 70004E04 AC4E0000 */ sw $t6, ($v0) +/* 005A08 70004E08 8FAF001C */ lw $t7, 0x1c($sp) +/* 005A0C 70004E0C AC4F0004 */ sw $t7, 4($v0) +/* 005A10 70004E10 8FB80018 */ lw $t8, 0x18($sp) +/* 005A14 70004E14 AC580008 */ sw $t8, 8($v0) +/* 005A18 70004E18 8FBF0014 */ lw $ra, 0x14($sp) +/* 005A1C 70004E1C AC620000 */ sw $v0, ($v1) +/* 005A20 70004E20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005A24 70004E24 03E00008 */ jr $ra +/* 005A28 70004E28 00000000 */ nop +) +#endif + + + + +/** + * 5A2C 70004E2C + * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 + */ +void debInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&D_800232E0, "deb_c_debug"); + init_tlb(); +} + + +/** + * 5A60 70004E60 + * V0=p->debug.notice.list entry for name A1 and data A0; generates if not found + * accepts: A0=p->data, A1=p->name + */ +void debCheckAddDebugNoticeListEntry(void* data, char * string) +{ + if (debCheckIfDNLEntryExists(string) == 0) + { + debAllocateAndAddDNLEntry(string, data); + } +} + + + +/** + * 5A98 70004E98 + * V0=0; scan debug.notice.list until a NULL pointer + * likely this would have executed some function for each entry... + */ +#ifdef NONMATCHING +void *debScanDNLEntries_NEUTERED(void) +{ + void *temp_v0; + void *phi_v0; + + phi_v0 = debug_notice_list; + if (debug_notice_list != 0) + { +loop_1: + temp_v0 = *phi_v0; + phi_v0 = temp_v0; + if (temp_v0 != 0) + { + goto loop_1; + } + } + return debug_notice_list; +} +#else +GLOBAL_ASM( +.text +glabel debScanDNLEntries_NEUTERED +/* 005A98 70004E98 3C028002 */ lui $v0, %hi(debug_notice_list) +/* 005A9C 70004E9C 8C4232E8 */ lw $v0, %lo(debug_notice_list)($v0) +/* 005AA0 70004EA0 10400004 */ beqz $v0, .L70004EB4 +/* 005AA4 70004EA4 00000000 */ nop +/* 005AA8 70004EA8 8C420000 */ lw $v0, ($v0) +.L70004EAC: +/* 005AAC 70004EAC 5440FFFF */ bnezl $v0, .L70004EAC +/* 005AB0 70004EB0 8C420000 */ lw $v0, ($v0) +.L70004EB4: +/* 005AB4 70004EB4 03E00008 */ jr $ra +/* 005AB8 70004EB8 00000000 */ nop +) +#endif + + + +/** + * 5ABC 70004EBC + * unconditional return + */ +void debRemoved70004EBC(void) +{ + return; +} + +/** + * 5AC4 70004EC4 + * A0->SP+0, A1->SP+4, A2->SP+8 + */ +void debRemoved70004EC4(s32 arg0, s32 arg1, s32 arg2) +{ + return; +} + + diff --git a/src/deb.h b/src/deb.h new file mode 100644 index 0000000..9075851 --- /dev/null +++ b/src/deb.h @@ -0,0 +1,9 @@ +#ifndef _DEB_H_ +#define _DEB_H_ + +#include "ultra64.h" + +void debInitDebugNoticeList(void); +void debCheckAddDebugNoticeListEntry(void *arg0, char *string); + +#endif diff --git a/src/deb_print.c b/src/deb_print.c new file mode 100644 index 0000000..a56e586 --- /dev/null +++ b/src/deb_print.c @@ -0,0 +1,698 @@ +#include "ultra64.h" +#include "deb_print.h" +#include "bondgame.h" + +/** + * @file deb_print.c + * This file contains the stderr manager. + */ + +//im just padding +u32 D_80023300 = 0; + + +struct debug_processor_error_entry debug_processor_error_table[] = { +{0x80000000, 0x80000000, "BD"}, +{0x8000, 0x8000, "IP8"}, +{0x4000, 0x4000, "IP7"}, +{0x2000, 0x2000, "IP6"}, +{0x1000, 0x1000, "IP5"}, +{0x800, 0x800, "IP4"}, +{0x400, 0x400, "IP3"}, +{0x200, 0x200, "IP2"}, +{0x100, 0x100, "IP1"}, +{0x7C, 0, "Int"}, +{0x7C, 4, "TLBmod"}, +{0x7C, 8, "TLBload"}, +{0x7C, 0xC, "TLBstore"}, +{0x7C, 0x10, "Address error on load or instruction fetch"}, +{0x7C, 0x14, "Address error on store"}, +{0x7C, 0x18, "Bus error exception on instruction fetch"}, +{0x7C, 0x1C, "Bus error exception on data reference"}, +{0x7C, 0x20, "Syscall"}, +{0x7C, 0x24, "Brk"}, +{0x7C, 0x28, "Reserved instruction"}, +{0x7C, 0x2C, "Cop unusable"}, +{0x7C, 0x30, "Overflow"}, +{0x7C, 0x34, "Trap"}, +{0x7C, 0x38, "Virtual coherency exception on intruction fetch"}, +{0x7C, 0x3C, "Fp exception"}, +{0x7C, 0x5C, "Watchpoint"}, +{0x7C, 0x7C, "Virtual coherency exception on data reference"}, +{0, 0, ""}, +{0x80000000, 0x80000000, "CU3"}, +{0x40000000, 0x40000000, "CU2"}, +{0x20000000, 0x20000000, "CU1"}, +{0x10000000, 0x10000000, "CU0"}, +{0x8000000, 0x8000000, "RP"}, +{0x4000000, 0x4000000, "FR"}, +{0x2000000, 0x2000000, "RE"}, +{0x400000, 0x400000, "BEV"}, +{0x200000, 0x200000, "TS"}, +{0x100000, 0x100000, "SR"}, +{0x40000, 0x40000, "CH"}, +{0x20000, 0x20000, "CE"}, +{0x10000, 0x10000, "DE"}, +{0x8000, 0x8000, "IM8"}, +{0x4000, 0x4000, "IM7"}, +{0x2000, 0x2000, "IM6"}, +{0x1000, 0x1000, "IM5"}, +{0x800, 0x800, "IM4"}, +{0x400, 0x400, "IM3"}, +{0x200, 0x200, "IM2"}, +{0x100, 0x100, "IM1"}, +{0x80, 0x80, "KX"}, +{0x40, 0x40, "SX"}, +{0x20, 0x20, "UX"}, +{0x18, 0x10, "USR"}, +{0x18, 8, "SUP"}, +{0x18, 0, "KER"}, +{4, 4, "ERL"}, +{2, 2, "EXL"}, +{1, 1, "IE"}, +{0, 0, ""}, +{0x1000000, 0x1000000, "FS"}, +{0x800000, 0x800000, "C"}, +{0x20000, 0x20000, "Unimplemented"}, +{0x10000, 0x10000, "Invalid op"}, +{0x8000, 0x8000, "/ by 0.0"}, +{0x4000, 0x4000, "Overflow"}, +{0x2000, 0x2000, "Underflow"}, +{0x1000, 0x1000, "Inexact op"}, +{0x800, 0x800, "EV"}, +{0x400, 0x400, "EZ"}, +{0x200, 0x200, "EO"}, +{0x100, 0x100, "EU"}, +{0x80, 0x80, "EI"}, +{0x40, 0x40, "FV"}, +{0x20, 0x20, "FZ"}, +{0x10, 0x10, "FO"}, +{8, 8, "FU"}, +{4, 4, "FI"}, +{3, 0, "RN"}, +{3, 1, "RZ"}, +{3, 2, "RP"}, +{3, 3, "RM"}, +{0, 0, ""} }; + +void *stack_ptrs_1[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; +void *stack_ptrs_2[] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; +void *stack_ptrs_3[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; + +char stderr_buffer[2280] = {0x0}; + + +//split more here likely +u32 std_error_font_bitcode[] = { +0x00000000, 0x22220200, 0x55000000, 0x5F5F500, 0x27427200, +0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, +0x06F6F600, 0x272000, 0x240, 0x70000, 0x200, +0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, +0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, +0x25531600, 0x200200, 0x200640, 0x1242100, 0x707000, + 0x4212400, 0x7120200, 0x25FF5700, 0x2557D00, 0x6575E00, + 0x7445300, 0x7555600, 0x7565700, 0x7564400, 0x7C95700, + 0x5575500, 0x7222700, 0x3111600, 0x5665500, 0x4445F00, + 0xDFF9D00, 0xF777D00, 0x7DD5700, 0x7564600, 0x7995770, + 0x7565500, 0x7461E00, 0x7222200, 0xD999600, 0xD552200, + 0xDF77500, 0xD625500, 0x5622600, 0x7125700, 0x32222230, +0x44222110, 0x62222260, 0x25000000, 0x700, 0x42200000, + 0x67D700, 0x44755700, 0x788600, 0x117DD700, 0x6FC700, +0x32722700, 0x7DD730, 0x44755500, 0x2622700, 0x2711130, +0x44766500, 0x62222700, 0xFFFF00, 0x755D00, 0x6DD600, + 0x755740, 0x799710, 0x744600, 0x775700, 0x2722300, + 0x555700, 0x552200, 0x577500, 0x562500, 0x552220, + 0x703700, 0x12242210, 0x2222220, 0x42212240, 0x5A0000 }; + +void *ptr_videobuffer1 = 0; +void *ptr_videobuffer2 = 0; + +u32 padding_80024184[4] = {0}; + + + + +/** + * 6230 70005630 + * write char A2 to (A0,A1) in stderr + * accepts: A0=xpos, A1=ypos, A2=char + */ +#ifdef NONMATCHING +void write_char_to_pos_stderr(int xpos,int ypos,u8 letter) { + if ((letter == 9) || (letter == 10)) { + letter = 0; + } + if ((letter <= 0 || letter >= 0x20) && letter >= 0x7f) { + letter = 0x3f; + } + if ((0 < xpos && xpos < 0x48) && (0 < ypos && ypos < 0x20)) { + stderr_buffer[ypos * 0x47 + xpos] = letter; + } + return; +} +#else +GLOBAL_ASM( +.text +glabel write_char_to_pos_stderr +/* 006230 70005630 30CE00FF */ andi $t6, $a2, 0xff +/* 006234 70005634 AFA60008 */ sw $a2, 8($sp) +/* 006238 70005638 24010009 */ li $at, 9 +/* 00623C 7000563C 01C03025 */ move $a2, $t6 +/* 006240 70005640 11C10004 */ beq $t6, $at, .L70005654 +/* 006244 70005644 01C01025 */ move $v0, $t6 +/* 006248 70005648 2401000A */ li $at, 10 +/* 00624C 7000564C 15C10003 */ bne $t6, $at, .L7000565C +/* 006250 70005650 00000000 */ nop +.L70005654: +/* 006254 70005654 00003025 */ move $a2, $zero +/* 006258 70005658 00001025 */ move $v0, $zero +.L7000565C: +/* 00625C 7000565C 18400002 */ blez $v0, .L70005668 +/* 006260 70005660 28410020 */ slti $at, $v0, 0x20 +/* 006264 70005664 14200003 */ bnez $at, .L70005674 +.L70005668: +/* 006268 70005668 2841007F */ slti $at, $v0, 0x7f +/* 00626C 7000566C 14200002 */ bnez $at, .L70005678 +/* 006270 70005670 00000000 */ nop +.L70005674: +/* 006274 70005674 2406003F */ li $a2, 63 +.L70005678: +/* 006278 70005678 0480000E */ bltz $a0, .L700056B4 +/* 00627C 7000567C 28810048 */ slti $at, $a0, 0x48 +/* 006280 70005680 1020000C */ beqz $at, .L700056B4 +/* 006284 70005684 00000000 */ nop +/* 006288 70005688 04A0000A */ bltz $a1, .L700056B4 +/* 00628C 7000568C 28A10020 */ slti $at, $a1, 0x20 +/* 006290 70005690 10200008 */ beqz $at, .L700056B4 +/* 006294 70005694 000578C0 */ sll $t7, $a1, 3 +/* 006298 70005698 01E57821 */ addu $t7, $t7, $a1 +/* 00629C 7000569C 000F78C0 */ sll $t7, $t7, 3 +/* 0062A0 700056A0 01E57823 */ subu $t7, $t7, $a1 +/* 0062A4 700056A4 01E4C021 */ addu $t8, $t7, $a0 +/* 0062A8 700056A8 3C018002 */ lui $at, %hi(stderr_buffer) +/* 0062AC 700056AC 00380821 */ addu $at, $at, $t8 +/* 0062B0 700056B0 A0263718 */ sb $a2, %lo(stderr_buffer)($at) +.L700056B4: +/* 0062B4 700056B4 03E00008 */ jr $ra +/* 0062B8 700056B8 00000000 */ nop +) +#endif + + + + +/** + * 62BC 700056BC + * write char A0 to stderr + * accepts: A0=char + */ +#ifdef NONMATCHING +void __osRdbSend(void) { + +} +#else +GLOBAL_ASM( +.text +glabel __osRdbSend +/* 0062BC 700056BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0062C0 700056C0 308600FF */ andi $a2, $a0, 0xff +/* 0062C4 700056C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0062C8 700056C8 AFB00018 */ sw $s0, 0x18($sp) +/* 0062CC 700056CC AFA40028 */ sw $a0, 0x28($sp) +/* 0062D0 700056D0 10C00039 */ beqz $a2, .L700057B8 +/* 0062D4 700056D4 00C01025 */ move $v0, $a2 +/* 0062D8 700056D8 24010009 */ li $at, 9 +/* 0062DC 700056DC 14C1000A */ bne $a2, $at, .L70005708 +/* 0062E0 700056E0 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 0062E4 700056E4 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +.L700056E8: +/* 0062E8 700056E8 0C0015AF */ jal __osRdbSend +/* 0062EC 700056EC 24040020 */ li $a0, 32 +/* 0062F0 700056F0 8E0E0000 */ lw $t6, ($s0) +/* 0062F4 700056F4 31CF0007 */ andi $t7, $t6, 7 +/* 0062F8 700056F8 15E0FFFB */ bnez $t7, .L700056E8 +/* 0062FC 700056FC 00000000 */ nop +/* 006300 70005700 1000002E */ b .L700057BC +/* 006304 70005704 8FBF001C */ lw $ra, 0x1c($sp) +.L70005708: +/* 006308 70005708 2401000A */ li $at, 10 +/* 00630C 7000570C 14410008 */ bne $v0, $at, .L70005730 +/* 006310 70005710 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006314 70005714 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006318 70005718 8C780000 */ lw $t8, ($v1) +/* 00631C 7000571C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 006320 70005720 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +/* 006324 70005724 27190001 */ addiu $t9, $t8, 1 +/* 006328 70005728 AC790000 */ sw $t9, ($v1) +/* 00632C 7000572C AE000000 */ sw $zero, ($s0) +.L70005730: +/* 006330 70005730 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006334 70005734 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006338 70005738 8C650000 */ lw $a1, ($v1) +/* 00633C 7000573C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 006340 70005740 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +/* 006344 70005744 28A1001F */ slti $at, $a1, 0x1f +/* 006348 70005748 1420000A */ bnez $at, .L70005774 +/* 00634C 7000574C 24A4FFE2 */ addiu $a0, $a1, -0x1e +/* 006350 70005750 AFA20024 */ sw $v0, 0x24($sp) +/* 006354 70005754 0C0015F3 */ jal scroll_stderr_oneline +/* 006358 70005758 A3A6002B */ sb $a2, 0x2b($sp) +/* 00635C 7000575C 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006360 70005760 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006364 70005764 2408001E */ li $t0, 30 +/* 006368 70005768 8FA20024 */ lw $v0, 0x24($sp) +/* 00636C 7000576C 93A6002B */ lbu $a2, 0x2b($sp) +/* 006370 70005770 AC680000 */ sw $t0, ($v1) +.L70005774: +/* 006374 70005774 2401000A */ li $at, 10 +/* 006378 70005778 50410010 */ beql $v0, $at, .L700057BC +/* 00637C 7000577C 8FBF001C */ lw $ra, 0x1c($sp) +/* 006380 70005780 8E040000 */ lw $a0, ($s0) +/* 006384 70005784 0C00158C */ jal write_char_to_pos_stderr +/* 006388 70005788 8C650000 */ lw $a1, ($v1) +/* 00638C 7000578C 8E090000 */ lw $t1, ($s0) +/* 006390 70005790 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006394 70005794 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006398 70005798 252A0001 */ addiu $t2, $t1, 1 +/* 00639C 7000579C 29410047 */ slti $at, $t2, 0x47 +/* 0063A0 700057A0 14200005 */ bnez $at, .L700057B8 +/* 0063A4 700057A4 AE0A0000 */ sw $t2, ($s0) +/* 0063A8 700057A8 8C6C0000 */ lw $t4, ($v1) +/* 0063AC 700057AC AE000000 */ sw $zero, ($s0) +/* 0063B0 700057B0 258D0001 */ addiu $t5, $t4, 1 +/* 0063B4 700057B4 AC6D0000 */ sw $t5, ($v1) +.L700057B8: +/* 0063B8 700057B8 8FBF001C */ lw $ra, 0x1c($sp) +.L700057BC: +/* 0063BC 700057BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0063C0 700057C0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0063C4 700057C4 03E00008 */ jr $ra +/* 0063C8 700057C8 00000000 */ nop +) +#endif + + + + +/** + * 63CC 700057CC + * scroll stderr down one line + * accepts: A0=ypos + */ +#ifdef NONMATCHING +s32 scroll_stderr_oneline(s32 arg0) { + void *temp_a1_2; + void *temp_a1; + + // Node 0 + if (0 < arg0) + { + // Node 1 + // Node 2 + // Node 3 + temp_a1_2 = (&stderr_buffer + 3); + stderr_buffer = (s8) stderr_buffer.unk47; + stderr_buffer.unk1 = (s8) stderr_buffer.unk48; + stderr_buffer.unk2 = (s8) stderr_buffer.unk49; + // Node 4 + temp_a1 = (temp_a1_2 + 4); + temp_a1->unk-3 = (s8) temp_a1_2->unk48; + temp_a1->unk-2 = (s8) temp_a1_2->unk49; + temp_a1->unk-1 = (s8) temp_a1_2->unk4A; + temp_a1->unk-4 = (s8) temp_a1_2->unk47; + if ((3 + 4) != 0x47) + { + goto loop_4; + } + // Node 5 + if ((&stderr_buffer + 0x47) != (stderr_buffer + 0x899)) + { + goto loop_3; + } + // Node 6 + if (0 < (arg0 + -1)) + { + goto loop_2; + } + } + // (possible return value: (0 < arg0)) +} +#else +GLOBAL_ASM( +.text +glabel scroll_stderr_oneline +/* 0063CC 700057CC 0004102A */ slt $v0, $zero, $a0 +/* 0063D0 700057D0 10400020 */ beqz $v0, .L70005854 +/* 0063D4 700057D4 2484FFFF */ addiu $a0, $a0, -1 +/* 0063D8 700057D8 3C088002 */ lui $t0, %hi(stderr_buffer + 0x899) +/* 0063DC 700057DC 25083FB1 */ addiu $t0, %lo(stderr_buffer + 0x899) # addiu $t0, $t0, 0x3fb1 +/* 0063E0 700057E0 24070047 */ li $a3, 71 +.L700057E4: +/* 0063E4 700057E4 3C0E8002 */ lui $t6, %hi(stderr_buffer) +/* 0063E8 700057E8 25C63718 */ addiu $a2, $t6, %lo(stderr_buffer) +/* 0063EC 700057EC 00C01825 */ move $v1, $a2 +.L700057F0: +/* 0063F0 700057F0 90CF0047 */ lbu $t7, 0x47($a2) +/* 0063F4 700057F4 90D80048 */ lbu $t8, 0x48($a2) +/* 0063F8 700057F8 90D90049 */ lbu $t9, 0x49($a2) +/* 0063FC 700057FC 24020003 */ li $v0, 3 +/* 006400 70005800 24650003 */ addiu $a1, $v1, 3 +/* 006404 70005804 A0CF0000 */ sb $t7, ($a2) +/* 006408 70005808 A0D80001 */ sb $t8, 1($a2) +/* 00640C 7000580C A0D90002 */ sb $t9, 2($a2) +.L70005810: +/* 006410 70005810 90AA0048 */ lbu $t2, 0x48($a1) +/* 006414 70005814 90AB0049 */ lbu $t3, 0x49($a1) +/* 006418 70005818 90AC004A */ lbu $t4, 0x4a($a1) +/* 00641C 7000581C 90A90047 */ lbu $t1, 0x47($a1) +/* 006420 70005820 24420004 */ addiu $v0, $v0, 4 +/* 006424 70005824 24A50004 */ addiu $a1, $a1, 4 +/* 006428 70005828 A0AAFFFD */ sb $t2, -3($a1) +/* 00642C 7000582C A0ABFFFE */ sb $t3, -2($a1) +/* 006430 70005830 A0ACFFFF */ sb $t4, -1($a1) +/* 006434 70005834 1447FFF6 */ bne $v0, $a3, .L70005810 +/* 006438 70005838 A0A9FFFC */ sb $t1, -4($a1) +/* 00643C 7000583C 24C60047 */ addiu $a2, $a2, 0x47 +/* 006440 70005840 14C8FFEB */ bne $a2, $t0, .L700057F0 +/* 006444 70005844 24630047 */ addiu $v1, $v1, 0x47 +/* 006448 70005848 0004102A */ slt $v0, $zero, $a0 +/* 00644C 7000584C 1440FFE5 */ bnez $v0, .L700057E4 +/* 006450 70005850 2484FFFF */ addiu $a0, $a0, -1 +.L70005854: +/* 006454 70005854 03E00008 */ jr $ra +/* 006458 70005858 00000000 */ nop +) +#endif + + + + +/** + * 645C 7000585C + * print char A2 to stderr screen position (A0,A1) in video buffer 1 + * accepts: A0=xpos, A1=ypos, A2=char + */ +#ifdef NONMATCHING +void print_to_vidbuff1(s32 arg0, s32 arg1, ? arg2, s32 arg6, s32 arg7, s32 arg8) { + s32 temp_at; + void *temp_a0; + void *temp_v1; + void *temp_v1_2; + void *temp_v1_3; + void *temp_v1_4; + + // Node 0 + if (arg8 == 0) + { + // Node 1 + } + // Node 2 + temp_at = (arg8 < 0x7f); + if (temp_at == 0) + { + // Node 3 + if (temp_at != 0) + { + // Node 4 + temp_a0 = (0x80020000 + (arg8 * 4)); + temp_v1 = (((arg6 * 2) + ptr_videobuffer1) + ((arg7 * get_video2_settings_txtClipW()) * 2)); + // Node 5 + if ((temp_a0->unk3F80 & 0x80000000) != 0) + { + // Node 6 + *temp_v1 = (u16)0xffff; + } + else + { + // Node 7 + *temp_v1 = (u16)1; + } + // Node 8 + temp_v1_2 = (temp_v1 + 2); + if (((temp_a0->unk3F80 * 2) & 0x80000000) != 0) + { + // Node 9 + *temp_v1_2 = (u16)0xffff; + } + else + { + // Node 10 + *temp_v1_2 = (u16)1; + } + // Node 11 + temp_v1_3 = (temp_v1_2 + 2); + if (((temp_a0->unk3F80 * 4) & 0x80000000) != 0) + { + // Node 12 + *temp_v1_3 = (u16)0xffff; + } + else + { + // Node 13 + *temp_v1_3 = (u16)1; + } + // Node 14 + temp_v1_4 = (temp_v1_3 + 2); + if (((temp_a0->unk3F80 * 8) & 0x80000000) != 0) + { + // Node 15 + *temp_v1_4 = (u16)0xffff; + } + else + { + // Node 16 + *temp_v1_4 = (u16)1; + } + // Node 17 + if ((0 + 1) != 7) + { + goto loop_5; + } + } + } + // (possible return value: get_video2_settings_txtClipW()) +} + +#else +GLOBAL_ASM( +.text +glabel print_to_vidbuff1 +/* 00645C 7000585C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 006460 70005860 AFBF0014 */ sw $ra, 0x14($sp) +/* 006464 70005864 AFA40018 */ sw $a0, 0x18($sp) +/* 006468 70005868 AFA5001C */ sw $a1, 0x1c($sp) +/* 00646C 7000586C 0C001107 */ jal get_video2_settings_txtClipW +/* 006470 70005870 AFA60020 */ sw $a2, 0x20($sp) +/* 006474 70005874 93A50023 */ lbu $a1, 0x23($sp) +/* 006478 70005878 54A00003 */ bnezl $a1, .L70005888 +/* 00647C 7000587C 28A10020 */ slti $at, $a1, 0x20 +/* 006480 70005880 24050020 */ li $a1, 32 +/* 006484 70005884 28A10020 */ slti $at, $a1, 0x20 +.L70005888: +/* 006488 70005888 1420003A */ bnez $at, .L70005974 +/* 00648C 7000588C 28A1007F */ slti $at, $a1, 0x7f +/* 006490 70005890 10200038 */ beqz $at, .L70005974 +/* 006494 70005894 8FAE0018 */ lw $t6, 0x18($sp) +/* 006498 70005898 8FAB001C */ lw $t3, 0x1c($sp) +/* 00649C 7000589C 3C188002 */ lui $t8, %hi(ptr_videobuffer1) +/* 0064A0 700058A0 8F18417C */ lw $t8, %lo(ptr_videobuffer1)($t8) +/* 0064A4 700058A4 01620019 */ multu $t3, $v0 +/* 0064A8 700058A8 000E7840 */ sll $t7, $t6, 1 +/* 0064AC 700058AC 00057080 */ sll $t6, $a1, 2 +/* 0064B0 700058B0 3C048002 */ lui $a0, %hi(stderr_buffer+0x868) +/* 0064B4 700058B4 008E2021 */ addu $a0, $a0, $t6 +/* 0064B8 700058B8 01F8C821 */ addu $t9, $t7, $t8 +/* 0064BC 700058BC 8C843F80 */ lw $a0, %lo(stderr_buffer+0x868)($a0) +/* 0064C0 700058C0 3C058000 */ lui $a1, 0x8000 +/* 0064C4 700058C4 00004025 */ move $t0, $zero +/* 0064C8 700058C8 00024840 */ sll $t1, $v0, 1 +/* 0064CC 700058CC 00006012 */ mflo $t4 +/* 0064D0 700058D0 000C6840 */ sll $t5, $t4, 1 +/* 0064D4 700058D4 032D1821 */ addu $v1, $t9, $t5 +/* 0064D8 700058D8 240A0007 */ li $t2, 7 +/* 0064DC 700058DC 24070001 */ li $a3, 1 +/* 0064E0 700058E0 3406FFFF */ li $a2, 65535 +.L700058E4: +/* 0064E4 700058E4 00857824 */ and $t7, $a0, $a1 +/* 0064E8 700058E8 11E00003 */ beqz $t7, .L700058F8 +/* 0064EC 700058EC 0004C040 */ sll $t8, $a0, 1 +/* 0064F0 700058F0 10000002 */ b .L700058FC +/* 0064F4 700058F4 A4660000 */ sh $a2, ($v1) +.L700058F8: +/* 0064F8 700058F8 A4670000 */ sh $a3, ($v1) +.L700058FC: +/* 0064FC 700058FC 03055824 */ and $t3, $t8, $a1 +/* 006500 70005900 24630002 */ addiu $v1, $v1, 2 +/* 006504 70005904 11600003 */ beqz $t3, .L70005914 +/* 006508 70005908 03002025 */ move $a0, $t8 +/* 00650C 7000590C 10000002 */ b .L70005918 +/* 006510 70005910 A4660000 */ sh $a2, ($v1) +.L70005914: +/* 006514 70005914 A4670000 */ sh $a3, ($v1) +.L70005918: +/* 006518 70005918 00046040 */ sll $t4, $a0, 1 +/* 00651C 7000591C 0185C824 */ and $t9, $t4, $a1 +/* 006520 70005920 01802025 */ move $a0, $t4 +/* 006524 70005924 13200003 */ beqz $t9, .L70005934 +/* 006528 70005928 24630002 */ addiu $v1, $v1, 2 +/* 00652C 7000592C 10000002 */ b .L70005938 +/* 006530 70005930 A4660000 */ sh $a2, ($v1) +.L70005934: +/* 006534 70005934 A4670000 */ sh $a3, ($v1) +.L70005938: +/* 006538 70005938 00046840 */ sll $t5, $a0, 1 +/* 00653C 7000593C 01A57024 */ and $t6, $t5, $a1 +/* 006540 70005940 01A02025 */ move $a0, $t5 +/* 006544 70005944 11C00003 */ beqz $t6, .L70005954 +/* 006548 70005948 24630002 */ addiu $v1, $v1, 2 +/* 00654C 7000594C 10000002 */ b .L70005958 +/* 006550 70005950 A4660000 */ sh $a2, ($v1) +.L70005954: +/* 006554 70005954 A4670000 */ sh $a3, ($v1) +.L70005958: +/* 006558 70005958 24630002 */ addiu $v1, $v1, 2 +/* 00655C 7000595C 25080001 */ addiu $t0, $t0, 1 +/* 006560 70005960 00047840 */ sll $t7, $a0, 1 +/* 006564 70005964 00691821 */ addu $v1, $v1, $t1 +/* 006568 70005968 01E02025 */ move $a0, $t7 +/* 00656C 7000596C 150AFFDD */ bne $t0, $t2, .L700058E4 +/* 006570 70005970 2463FFF8 */ addiu $v1, $v1, -8 +.L70005974: +/* 006574 70005974 8FBF0014 */ lw $ra, 0x14($sp) +/* 006578 70005978 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00657C 7000597C 03E00008 */ jr $ra +/* 006580 70005980 00000000 */ nop +) +#endif + + + + +/** + * 6584 70005984 + * set pointers to video buffers 1 & 2 to A0 and A1, respectively + * sets values to uncached addresses + * A0 | A0000000 -> 8002417C + * A1 | A0000000 -> 80024180 + */ + +void set_ptr_video_buffers(s32 arg0, s32 arg1) { + ptr_videobuffer1 = (s32) (arg0 | 0xa0000000); + ptr_videobuffer2 = (s32) (arg1 | 0xa0000000); +} + + + + +/** + * 65A4 700059A4 + * set pointers to video buffers 1 & 2 + * calls 70005984: A0=803B5000, A1=803DA800 + */ +void set_video_buffer_pointers(void) { + set_ptr_video_buffers(&cfb_16_a, &cfb_16_b); +} + + + + + +/** + * 65D0 700059D0 + * write stderr to video buffer A0 + * accepts: A0=p->video buffer + */ +#ifdef NONMATCHING +void write_stderr_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_stderr_to_buffer +/* 0065D0 700059D0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0065D4 700059D4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0065D8 700059D8 AFB00018 */ sw $s0, 0x18($sp) +/* 0065DC 700059DC 00808025 */ move $s0, $a0 +/* 0065E0 700059E0 AFBE0038 */ sw $fp, 0x38($sp) +/* 0065E4 700059E4 AFB70034 */ sw $s7, 0x34($sp) +/* 0065E8 700059E8 AFB60030 */ sw $s6, 0x30($sp) +/* 0065EC 700059EC AFB5002C */ sw $s5, 0x2c($sp) +/* 0065F0 700059F0 AFB40028 */ sw $s4, 0x28($sp) +/* 0065F4 700059F4 AFB30024 */ sw $s3, 0x24($sp) +/* 0065F8 700059F8 AFB20020 */ sw $s2, 0x20($sp) +/* 0065FC 700059FC 0C001669 */ jal set_video_buffer_pointers +/* 006600 70005A00 AFB1001C */ sw $s1, 0x1c($sp) +/* 006604 70005A04 3C01A000 */ lui $at, 0xa000 +/* 006608 70005A08 02017025 */ or $t6, $s0, $at +/* 00660C 70005A0C 3C018002 */ lui $at, %hi(ptr_videobuffer1) +/* 006610 70005A10 0C001107 */ jal get_video2_settings_txtClipW +/* 006614 70005A14 AC2E417C */ sw $t6, %lo(ptr_videobuffer1)($at) +/* 006618 70005A18 2450FFF3 */ addiu $s0, $v0, -0xd +/* 00661C 70005A1C 06010003 */ bgez $s0, .L70005A2C +/* 006620 70005A20 00107883 */ sra $t7, $s0, 2 +/* 006624 70005A24 26010003 */ addiu $at, $s0, 3 +/* 006628 70005A28 00017883 */ sra $t7, $at, 2 +.L70005A2C: +/* 00662C 70005A2C 0C00110B */ jal get_video2_settings_txtClipH +/* 006630 70005A30 01E08025 */ move $s0, $t7 +/* 006634 70005A34 2443FFF6 */ addiu $v1, $v0, -0xa +/* 006638 70005A38 24010007 */ li $at, 7 +/* 00663C 70005A3C 0061001A */ div $zero, $v1, $at +/* 006640 70005A40 00001812 */ mflo $v1 +/* 006644 70005A44 247EFFFF */ addiu $fp, $v1, -1 +/* 006648 70005A48 1BC00023 */ blez $fp, .L70005AD8 +/* 00664C 70005A4C 0000A825 */ move $s5, $zero +/* 006650 70005A50 2616FFFB */ addiu $s6, $s0, -5 +/* 006654 70005A54 2417001F */ li $s7, 31 +/* 006658 70005A58 24140130 */ li $s4, 304 +.L70005A5C: +/* 00665C 70005A5C 1AC00018 */ blez $s6, .L70005AC0 +/* 006660 70005A60 00008080 */ sll $s0, $zero, 2 +/* 006664 70005A64 0015C8C0 */ sll $t9, $s5, 3 +/* 006668 70005A68 0335C821 */ addu $t9, $t9, $s5 +/* 00666C 70005A6C 0019C8C0 */ sll $t9, $t9, 3 +/* 006670 70005A70 001590C0 */ sll $s2, $s5, 3 +/* 006674 70005A74 3C098002 */ lui $t1, %hi(stderr_buffer) +/* 006678 70005A78 25293718 */ addiu $t1, %lo(stderr_buffer) # addiu $t1, $t1, 0x3718 +/* 00667C 70005A7C 02559023 */ subu $s2, $s2, $s5 +/* 006680 70005A80 0335C823 */ subu $t9, $t9, $s5 +/* 006684 70005A84 00169880 */ sll $s3, $s6, 2 +/* 006688 70005A88 26730014 */ addiu $s3, $s3, 0x14 +/* 00668C 70005A8C 03298821 */ addu $s1, $t9, $t1 +/* 006690 70005A90 26520007 */ addiu $s2, $s2, 7 +/* 006694 70005A94 26100014 */ addiu $s0, $s0, 0x14 +/* 006698 70005A98 02002025 */ move $a0, $s0 +.L70005A9C: +/* 00669C 70005A9C 02402825 */ move $a1, $s2 +/* 0066A0 70005AA0 0C001617 */ jal print_to_vidbuff1 +/* 0066A4 70005AA4 92260000 */ lbu $a2, ($s1) +/* 0066A8 70005AA8 26100004 */ addiu $s0, $s0, 4 +/* 0066AC 70005AAC 0213082A */ slt $at, $s0, $s3 +/* 0066B0 70005AB0 10200003 */ beqz $at, .L70005AC0 +/* 0066B4 70005AB4 26310001 */ addiu $s1, $s1, 1 +/* 0066B8 70005AB8 5614FFF8 */ bnel $s0, $s4, .L70005A9C +/* 0066BC 70005ABC 02002025 */ move $a0, $s0 +.L70005AC0: +/* 0066C0 70005AC0 26B50001 */ addiu $s5, $s5, 1 +/* 0066C4 70005AC4 02BE082A */ slt $at, $s5, $fp +/* 0066C8 70005AC8 50200004 */ beql $at, $zero, .L70005ADC +/* 0066CC 70005ACC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0066D0 70005AD0 16B7FFE2 */ bne $s5, $s7, .L70005A5C +/* 0066D4 70005AD4 00000000 */ nop +.L70005AD8: +/* 0066D8 70005AD8 8FBF003C */ lw $ra, 0x3c($sp) +.L70005ADC: +/* 0066DC 70005ADC 8FB00018 */ lw $s0, 0x18($sp) +/* 0066E0 70005AE0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0066E4 70005AE4 8FB20020 */ lw $s2, 0x20($sp) +/* 0066E8 70005AE8 8FB30024 */ lw $s3, 0x24($sp) +/* 0066EC 70005AEC 8FB40028 */ lw $s4, 0x28($sp) +/* 0066F0 70005AF0 8FB5002C */ lw $s5, 0x2c($sp) +/* 0066F4 70005AF4 8FB60030 */ lw $s6, 0x30($sp) +/* 0066F8 70005AF8 8FB70034 */ lw $s7, 0x34($sp) +/* 0066FC 70005AFC 8FBE0038 */ lw $fp, 0x38($sp) +/* 006700 70005B00 03E00008 */ jr $ra +/* 006704 70005B04 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif diff --git a/src/deb_print.h b/src/deb_print.h new file mode 100644 index 0000000..e962b1f --- /dev/null +++ b/src/deb_print.h @@ -0,0 +1,23 @@ +#ifndef _DEBUG_PRINT_H_ +#define _DEBUG_PRINT_H_ + +#include "ultra64.h" + +//im just padding +extern u32 D_80023300; + +struct debug_processor_error_entry +{ + u32 val1; + u32 val2; + void *string; +}; + +extern struct debug_processor_error_entry debug_processor_error_table[]; +extern void *stack_ptrs_1[]; +extern void *stack_ptrs_2[]; +extern void *stack_ptrs_3[]; +extern char stderr_buffer[2280]; + +void write_stderr_to_buffer(u32 *buffer); +#endif diff --git a/src/deb_video.c b/src/deb_video.c new file mode 100644 index 0000000..b9ef5e8 --- /dev/null +++ b/src/deb_video.c @@ -0,0 +1,852 @@ +//FIXME my c code is modtly copy/paste from mips_to_c +#include "ultra64.h" +#include "bondgame.h" +#include "deb_video.h" + +/** + * @file deb_video.c + * This file contains code to handle tlb paging. + * + * I should probably be renamed... + */ + +//bss +char tlbthread[0x6B0]; +char tlbStack[0x2300]; +OSMesgQueue tlbMesgQ; +u32 tlbMesgBuf; +OSThread *ptr_tlbthread_maybe; +u32 dword_CODE_bss_80063660; +u32 *current_indy_read_buf_resourceID; +u32 *ptr_indy_read_buf_string1; +u32 *ptr_indy_read_buf_string2; +char indy_read_buffer[0x60]; + + +/** + * 5AE0 70004EE0 + */ +void init_tlb(void) { + set_video_buffer_pointers(); + osCreateMesgQueue(&tlbMesgQ, &tlbMesgBuf, 1); + osCreateThread(&tlbthread, 5, &tlbproc, 0, &tlbStack, 0x28); + osStartThread(&tlbthread); +} + + + + + +/** + * 5B54 70004F54 + */ +#ifdef NONMATCHING +void tlbproc(void) { + +} +#else +GLOBAL_ASM( +.text +glabel tlbproc +/* 005B54 70004F54 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 005B58 70004F58 AFB70030 */ sw $s7, 0x30($sp) +/* 005B5C 70004F5C 3C178006 */ lui $s7, %hi(tlbMesgQ) +/* 005B60 70004F60 26F73640 */ addiu $s7, %lo(tlbMesgQ) # addiu $s7, $s7, 0x3640 +/* 005B64 70004F64 AFBF0034 */ sw $ra, 0x34($sp) +/* 005B68 70004F68 AFA40040 */ sw $a0, 0x40($sp) +/* 005B6C 70004F6C AFB6002C */ sw $s6, 0x2c($sp) +/* 005B70 70004F70 AFB50028 */ sw $s5, 0x28($sp) +/* 005B74 70004F74 AFB40024 */ sw $s4, 0x24($sp) +/* 005B78 70004F78 AFB30020 */ sw $s3, 0x20($sp) +/* 005B7C 70004F7C AFB2001C */ sw $s2, 0x1c($sp) +/* 005B80 70004F80 AFB10018 */ sw $s1, 0x18($sp) +/* 005B84 70004F84 AFB00014 */ sw $s0, 0x14($sp) +/* 005B88 70004F88 AFA0003C */ sw $zero, 0x3c($sp) +/* 005B8C 70004F8C 2404000C */ li $a0, 12 +/* 005B90 70004F90 02E02825 */ move $a1, $s7 +/* 005B94 70004F94 0C003714 */ jal osSetEventMesg +/* 005B98 70004F98 24060010 */ li $a2, 16 +/* 005B9C 70004F9C 3C018006 */ lui $at, %hi(dword_CODE_bss_80063660) +/* 005BA0 70004FA0 3C168002 */ lui $s6, %hi(__osRunQueue) +/* 005BA4 70004FA4 AC203660 */ sw $zero, %lo(dword_CODE_bss_80063660)($at) +/* 005BA8 70004FA8 26D67728 */ addiu $s6, %lo(__osRunQueue) # addiu $s6, $s6, 0x7728 +/* 005BAC 70004FAC 2415000A */ li $s5, 10 +/* 005BB0 70004FB0 3C14FFC0 */ lui $s4, 0xffc0 +/* 005BB4 70004FB4 3C137F00 */ lui $s3, 0x7f00 +/* 005BB8 70004FB8 24120008 */ li $s2, 8 +/* 005BBC 70004FBC 27B1003C */ addiu $s1, $sp, 0x3c +.L70004FC0: +/* 005BC0 70004FC0 02E02025 */ move $a0, $s7 +.L70004FC4: +/* 005BC4 70004FC4 02202825 */ move $a1, $s1 +/* 005BC8 70004FC8 0C003774 */ jal osRecvMesg +/* 005BCC 70004FCC 24060001 */ li $a2, 1 +/* 005BD0 70004FD0 0C00374C */ jal osSetIntMask +/* 005BD4 70004FD4 24040001 */ li $a0, 1 +/* 005BD8 70004FD8 0C004060 */ jal __osGetCurrFaultedThread +/* 005BDC 70004FDC 00408025 */ move $s0, $v0 +/* 005BE0 70004FE0 3C018006 */ lui $at, %hi(ptr_tlbthread_maybe) +/* 005BE4 70004FE4 1040FFF6 */ beqz $v0, .L70004FC0 +/* 005BE8 70004FE8 AC22365C */ sw $v0, %lo(ptr_tlbthread_maybe)($at) +/* 005BEC 70004FEC 8C4E0120 */ lw $t6, 0x120($v0) +/* 005BF0 70004FF0 3C088006 */ lui $t0, %hi(ptr_tlbthread_maybe) +/* 005BF4 70004FF4 31CF007C */ andi $t7, $t6, 0x7c +/* 005BF8 70004FF8 164F0018 */ bne $s2, $t7, .L7000505C +/* 005BFC 70004FFC 00000000 */ nop +/* 005C00 70005000 8C580124 */ lw $t8, 0x124($v0) +/* 005C04 70005004 0314C824 */ and $t9, $t8, $s4 +/* 005C08 70005008 16790014 */ bne $s3, $t9, .L7000505C +/* 005C0C 7000500C 00000000 */ nop +/* 005C10 70005010 8D08365C */ lw $t0, %lo(ptr_tlbthread_maybe)($t0) +/* 005C14 70005014 0C000676 */ jal translate_load_rom_from_TLBaddress +/* 005C18 70005018 8D040124 */ lw $a0, 0x124($t0) +/* 005C1C 7000501C 3C098006 */ lui $t1, %hi(ptr_tlbthread_maybe) +/* 005C20 70005020 8D29365C */ lw $t1, %lo(ptr_tlbthread_maybe)($t1) +/* 005C24 70005024 3C0A8006 */ lui $t2, %hi(ptr_tlbthread_maybe) +/* 005C28 70005028 3C058006 */ lui $a1, %hi(ptr_tlbthread_maybe) +/* 005C2C 7000502C A5350010 */ sh $s5, 0x10($t1) +/* 005C30 70005030 8D4A365C */ lw $t2, %lo(ptr_tlbthread_maybe)($t2) +/* 005C34 70005034 02C02025 */ move $a0, $s6 +/* 005C38 70005038 A5400012 */ sh $zero, 0x12($t2) +/* 005C3C 7000503C 0C00422B */ jal __osEnqueueThread +/* 005C40 70005040 8CA5365C */ lw $a1, %lo(ptr_tlbthread_maybe)($a1) +/* 005C44 70005044 0C00374C */ jal osSetIntMask +/* 005C48 70005048 02002025 */ move $a0, $s0 +/* 005C4C 7000504C 0C0042B4 */ jal osYieldThread +/* 005C50 70005050 00000000 */ nop +/* 005C54 70005054 1000FFDB */ b .L70004FC4 +/* 005C58 70005058 02E02025 */ move $a0, $s7 +.L7000505C: +/* 005C5C 7000505C 0C00374C */ jal osSetIntMask +/* 005C60 70005060 02002025 */ move $a0, $s0 +.L70005064: +/* 005C64 70005064 1000FFFF */ b .L70005064 +/* 005C68 70005068 00000000 */ nop +/* 005C6C 7000506C 00000000 */ nop +/* 005C70 70005070 00000000 */ nop +/* 005C74 70005074 00000000 */ nop +/* 005C78 70005078 00000000 */ nop +/* 005C7C 7000507C 00000000 */ nop +/* 005C80 70005080 8FBF0034 */ lw $ra, 0x34($sp) +/* 005C84 70005084 8FB00014 */ lw $s0, 0x14($sp) +/* 005C88 70005088 8FB10018 */ lw $s1, 0x18($sp) +/* 005C8C 7000508C 8FB2001C */ lw $s2, 0x1c($sp) +/* 005C90 70005090 8FB30020 */ lw $s3, 0x20($sp) +/* 005C94 70005094 8FB40024 */ lw $s4, 0x24($sp) +/* 005C98 70005098 8FB50028 */ lw $s5, 0x28($sp) +/* 005C9C 7000509C 8FB6002C */ lw $s6, 0x2c($sp) +/* 005CA0 700050A0 8FB70030 */ lw $s7, 0x30($sp) +/* 005CA4 700050A4 03E00008 */ jr $ra +/* 005CA8 700050A8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 5CAC 700050AC + * V0= SP, A3=SP usage within function range (A1,A0) with initial SP A2 + * accepts: A0=p->opcode.cur, A1=p->opcode.start, A2=SP w/i function, A3=p->register buffer + */ +#ifdef NONMATCHING +void debug_related_8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel debug_related_8 +/* 005CAC 700050AC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 005CB0 700050B0 AFA40010 */ sw $a0, 0x10($sp) +/* 005CB4 700050B4 AFB1000C */ sw $s1, 0xc($sp) +/* 005CB8 700050B8 AFB00008 */ sw $s0, 8($sp) +/* 005CBC 700050BC 00C01825 */ move $v1, $a2 +/* 005CC0 700050C0 00001025 */ move $v0, $zero +/* 005CC4 700050C4 00004025 */ move $t0, $zero +/* 005CC8 700050C8 24040020 */ li $a0, 32 +/* 005CCC 700050CC 00004825 */ move $t1, $zero +/* 005CD0 700050D0 00E05025 */ move $t2, $a3 +.L700050D4: +/* 005CD4 700050D4 25290004 */ addiu $t1, $t1, 4 +/* 005CD8 700050D8 AD400000 */ sw $zero, ($t2) +/* 005CDC 700050DC AD400004 */ sw $zero, 4($t2) +/* 005CE0 700050E0 AD400008 */ sw $zero, 8($t2) +/* 005CE4 700050E4 AD40000C */ sw $zero, 0xc($t2) +/* 005CE8 700050E8 1524FFFA */ bne $t1, $a0, .L700050D4 +/* 005CEC 700050EC 254A0010 */ addiu $t2, $t2, 0x10 +/* 005CF0 700050F0 8FA40010 */ lw $a0, 0x10($sp) +/* 005CF4 700050F4 3C1103E0 */ lui $s1, (0x03E00008 >> 16) # lui $s1, 0x3e0 +/* 005CF8 700050F8 36310008 */ ori $s1, (0x03E00008 & 0xFFFF) # ori $s1, $s1, 8 +/* 005CFC 700050FC 0085082B */ sltu $at, $a0, $a1 +/* 005D00 70005100 1420002D */ bnez $at, .L700051B8 +/* 005D04 70005104 2410001F */ li $s0, 31 +/* 005D08 70005108 3C0DFFE0 */ lui $t5, 0xffe0 +/* 005D0C 7000510C 3C0CAFA0 */ lui $t4, 0xafa0 +/* 005D10 70005110 3C0BFFFF */ lui $t3, 0xffff +/* 005D14 70005114 3C0A27BD */ lui $t2, 0x27bd +/* 005D18 70005118 8C890000 */ lw $t1, ($a0) +.L7000511C: +/* 005D1C 7000511C 2484FFFC */ addiu $a0, $a0, -4 +/* 005D20 70005120 0085082B */ sltu $at, $a0, $a1 +/* 005D24 70005124 012B7824 */ and $t7, $t1, $t3 +/* 005D28 70005128 154F000B */ bne $t2, $t7, .L70005158 +/* 005D2C 7000512C 012DC024 */ and $t8, $t1, $t5 +/* 005D30 70005130 0009C400 */ sll $t8, $t1, 0x10 +/* 005D34 70005134 0018CC03 */ sra $t9, $t8, 0x10 +/* 005D38 70005138 1F20001F */ bgtz $t9, .L700051B8 +/* 005D3C 7000513C 24020001 */ li $v0, 1 +/* 005D40 70005140 00197083 */ sra $t6, $t9, 2 +/* 005D44 70005144 000E7880 */ sll $t7, $t6, 2 +/* 005D48 70005148 11000019 */ beqz $t0, .L700051B0 +/* 005D4C 7000514C 006F1823 */ subu $v1, $v1, $t7 +/* 005D50 70005150 10000019 */ b .L700051B8 +/* 005D54 70005154 00000000 */ nop +.L70005158: +/* 005D58 70005158 15980013 */ bne $t4, $t8, .L700051A8 +/* 005D5C 7000515C 00093402 */ srl $a2, $t1, 0x10 +/* 005D60 70005160 30D9001F */ andi $t9, $a2, 0x1f +/* 005D64 70005164 00097C00 */ sll $t7, $t1, 0x10 +/* 005D68 70005168 000FC403 */ sra $t8, $t7, 0x10 +/* 005D6C 7000516C 03203025 */ move $a2, $t9 +/* 005D70 70005170 0018C883 */ sra $t9, $t8, 2 +/* 005D74 70005174 00197080 */ sll $t6, $t9, 2 +/* 005D78 70005178 0006C080 */ sll $t8, $a2, 2 +/* 005D7C 7000517C 00F8C821 */ addu $t9, $a3, $t8 +/* 005D80 70005180 01C37821 */ addu $t7, $t6, $v1 +/* 005D84 70005184 16060002 */ bne $s0, $a2, .L70005190 +/* 005D88 70005188 AF2F0000 */ sw $t7, ($t9) +/* 005D8C 7000518C 24080001 */ li $t0, 1 +.L70005190: +/* 005D90 70005190 10400007 */ beqz $v0, .L700051B0 +/* 005D94 70005194 00000000 */ nop +/* 005D98 70005198 11000005 */ beqz $t0, .L700051B0 +/* 005D9C 7000519C 00000000 */ nop +/* 005DA0 700051A0 10000005 */ b .L700051B8 +/* 005DA4 700051A4 00000000 */ nop +.L700051A8: +/* 005DA8 700051A8 11310003 */ beq $t1, $s1, .L700051B8 +/* 005DAC 700051AC 00000000 */ nop +.L700051B0: +/* 005DB0 700051B0 5020FFDA */ beql $at, $zero, .L7000511C +/* 005DB4 700051B4 8C890000 */ lw $t1, ($a0) +.L700051B8: +/* 005DB8 700051B8 10400005 */ beqz $v0, .L700051D0 +/* 005DBC 700051BC 8FB00008 */ lw $s0, 8($sp) +/* 005DC0 700051C0 51000004 */ beql $t0, $zero, .L700051D4 +/* 005DC4 700051C4 00001025 */ move $v0, $zero +/* 005DC8 700051C8 10000002 */ b .L700051D4 +/* 005DCC 700051CC 00601025 */ move $v0, $v1 +.L700051D0: +/* 005DD0 700051D0 00001025 */ move $v0, $zero +.L700051D4: +/* 005DD4 700051D4 8FB1000C */ lw $s1, 0xc($sp) +/* 005DD8 700051D8 03E00008 */ jr $ra +/* 005DDC 700051DC 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + +/** + * 5DE0 700051E0 + * V0=TRUE if opcode that set RA A0 was a JAL or JALR type within bounds (70000450,70020D90) + * accepts: A0=p->70-mapped TLB function, presumably from RA + */ +s32 tlbIsJumpOpInCodeSeg(u32 *currop) +{ + u32 prevop; + + if ((((s32) currop & 3) == 0) && ((u32) currop >= (u32) &_codeSegmentStart) && ((u32) &_codeSegmentEnd >= (u32) currop)) + { + prevop = currop[-2]; + if ((prevop & 0xFC00003C) == 9) + { + return 1; + } + if ((prevop & 0xFC000000) == 0xC000000) + { + return 1; + } + } + return 0; +} + + + +/** + * 5E58 70005258 + * V0= strlen(A0); used exclusively for scanning ind.rea.buf + * accepts: A0=p->string + */ +#ifdef NONMATCHING +s32 return_strlen(void *arg0) +{ + s32 temp_v1; + s32 phi_v1; + void *phi_a0; + s32 phi_v1_2; + + phi_v1 = 0; + phi_a0 = (arg0 + 1); + phi_v1_2 = 0; + if (*arg0 != 0) + { +loop_1: + temp_v1 = (phi_v1 + 1); + phi_v1_2 = temp_v1; + if (temp_v1 < 0x100) + { + phi_v1 = temp_v1; + phi_a0 = (phi_a0 + 1); + phi_v1_2 = temp_v1; + if (*phi_a0 != 0) + { + goto loop_1; + } + } + } + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel return_strlen +/* 005E58 70005258 90820000 */ lbu $v0, ($a0) +/* 005E5C 7000525C 00001825 */ move $v1, $zero +/* 005E60 70005260 24840001 */ addiu $a0, $a0, 1 +/* 005E64 70005264 10400009 */ beqz $v0, .L7000528C +/* 005E68 70005268 00000000 */ nop +/* 005E6C 7000526C 24630001 */ addiu $v1, $v1, 1 +.L70005270: +/* 005E70 70005270 28610100 */ slti $at, $v1, 0x100 +/* 005E74 70005274 10200005 */ beqz $at, .L7000528C +/* 005E78 70005278 00000000 */ nop +/* 005E7C 7000527C 90820000 */ lbu $v0, ($a0) +/* 005E80 70005280 24840001 */ addiu $a0, $a0, 1 +/* 005E84 70005284 5440FFFA */ bnezl $v0, .L70005270 +/* 005E88 70005288 24630001 */ addiu $v1, $v1, 1 +.L7000528C: +/* 005E8C 7000528C 03E00008 */ jr $ra +/* 005E90 70005290 00601025 */ move $v0, $v1 +) +#endif + + + +/** + * 5E94 70005294 + * V0= total size of one word, two strings at hardware A0 + * accepts: A0=hardware address + */ +#ifdef NONMATCHING +s32 indy_file_get_address_subsequent_data(s32 arg0) { + s32 sp18; + s32 temp_v1; + s32 phi_a0; + + // Node 0 + romCopy(&indy_read_buffer, arg0, 0x60); + current_indy_read_buf_resourceID = (?32) indy_read_buffer; + ptr_indy_read_buf_string1 = &indy_read_buffer; + ptr_indy_read_buf_string2 = (s32) ((return_strlen(&indy_read_buffer) + ptr_indy_read_buf_string1) + 1); + sp18 = return_strlen(ptr_indy_read_buf_string1); + temp_v1 = (((return_strlen(ptr_indy_read_buf_string2) + arg0) + sp18) + 6); + phi_a0 = temp_v1; + if ((temp_v1 & 3) != 0) + { + // Node 1 + phi_a0 = ((temp_v1 | 3) + 1); + } + // Node 2 + return phi_a0; +} +#else +GLOBAL_ASM( +.text +glabel indy_file_get_address_subsequent_data +/* 005E94 70005294 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 005E98 70005298 AFA40020 */ sw $a0, 0x20($sp) +/* 005E9C 7000529C AFBF0014 */ sw $ra, 0x14($sp) +/* 005EA0 700052A0 3C048006 */ lui $a0, %hi(indy_read_buffer) +/* 005EA4 700052A4 24843670 */ addiu $a0, %lo(indy_read_buffer) # addiu $a0, $a0, 0x3670 +/* 005EA8 700052A8 8FA50020 */ lw $a1, 0x20($sp) +/* 005EAC 700052AC 0C001707 */ jal romCopy +/* 005EB0 700052B0 24060060 */ li $a2, 96 +/* 005EB4 700052B4 3C0E8006 */ lui $t6, %hi(indy_read_buffer) +/* 005EB8 700052B8 8DCE3670 */ lw $t6, %lo(indy_read_buffer)($t6) +/* 005EBC 700052BC 3C028006 */ lui $v0, %hi(ptr_indy_read_buf_string1) +/* 005EC0 700052C0 3C018006 */ lui $at, %hi(current_indy_read_buf_resourceID) +/* 005EC4 700052C4 3C0F8006 */ lui $t7, %hi(indy_read_buffer+4) +/* 005EC8 700052C8 24423668 */ addiu $v0, %lo(ptr_indy_read_buf_string1) # addiu $v0, $v0, 0x3668 +/* 005ECC 700052CC 25E43674 */ addiu $a0, $t7, %lo(indy_read_buffer+4) +/* 005ED0 700052D0 AC2E3664 */ sw $t6, %lo(current_indy_read_buf_resourceID)($at) +/* 005ED4 700052D4 0C001496 */ jal return_strlen +/* 005ED8 700052D8 AC440000 */ sw $a0, ($v0) +/* 005EDC 700052DC 3C048006 */ lui $a0, %hi(ptr_indy_read_buf_string1) +/* 005EE0 700052E0 8C843668 */ lw $a0, %lo(ptr_indy_read_buf_string1)($a0) +/* 005EE4 700052E4 3C018006 */ lui $at, %hi(ptr_indy_read_buf_string2) +/* 005EE8 700052E8 0044C021 */ addu $t8, $v0, $a0 +/* 005EEC 700052EC 27190001 */ addiu $t9, $t8, 1 +/* 005EF0 700052F0 0C001496 */ jal return_strlen +/* 005EF4 700052F4 AC39366C */ sw $t9, %lo(ptr_indy_read_buf_string2)($at) +/* 005EF8 700052F8 3C048006 */ lui $a0, %hi(ptr_indy_read_buf_string2) +/* 005EFC 700052FC 8C84366C */ lw $a0, %lo(ptr_indy_read_buf_string2)($a0) +/* 005F00 70005300 0C001496 */ jal return_strlen +/* 005F04 70005304 AFA20018 */ sw $v0, 0x18($sp) +/* 005F08 70005308 8FA80020 */ lw $t0, 0x20($sp) +/* 005F0C 7000530C 8FAA0018 */ lw $t2, 0x18($sp) +/* 005F10 70005310 8FBF0014 */ lw $ra, 0x14($sp) +/* 005F14 70005314 00484821 */ addu $t1, $v0, $t0 +/* 005F18 70005318 012A1821 */ addu $v1, $t1, $t2 +/* 005F1C 7000531C 24630006 */ addiu $v1, $v1, 6 +/* 005F20 70005320 306B0003 */ andi $t3, $v1, 3 +/* 005F24 70005324 11600003 */ beqz $t3, .L70005334 +/* 005F28 70005328 00602025 */ move $a0, $v1 +/* 005F2C 7000532C 34640003 */ ori $a0, $v1, 3 +/* 005F30 70005330 24840001 */ addiu $a0, $a0, 1 +.L70005334: +/* 005F34 70005334 00801025 */ move $v0, $a0 +/* 005F38 70005338 03E00008 */ jr $ra +/* 005F3C 7000533C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +/** + * 5F40 70005340 + * scan for and load resourceID A0 from indy.read.buf + * accepts: A0=resourceID + */ +#ifdef NONMATCHING +void scan_load_resourceID_from_indy_read_buf(void) { + +} +#else +GLOBAL_ASM( +.text +glabel scan_load_resourceID_from_indy_read_buf +/* 005F40 70005340 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 005F44 70005344 AFB30020 */ sw $s3, 0x20($sp) +/* 005F48 70005348 AFB2001C */ sw $s2, 0x1c($sp) +/* 005F4C 7000534C 3C0200E0 */ lui $v0, 0xe0 +/* 005F50 70005350 34530004 */ ori $s3, $v0, 4 +/* 005F54 70005354 AFB10018 */ sw $s1, 0x18($sp) +/* 005F58 70005358 AFB00014 */ sw $s0, 0x14($sp) +/* 005F5C 7000535C 3C128006 */ lui $s2, %hi(current_indy_read_buf_resourceID) +/* 005F60 70005360 00808825 */ move $s1, $a0 +/* 005F64 70005364 AFBF0024 */ sw $ra, 0x24($sp) +/* 005F68 70005368 02608025 */ move $s0, $s3 +/* 005F6C 7000536C 26523664 */ addiu $s2, %lo(current_indy_read_buf_resourceID) # addiu $s2, $s2, 0x3664 +.L70005370: +/* 005F70 70005370 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005F74 70005374 02002025 */ move $a0, $s0 +/* 005F78 70005378 8E430000 */ lw $v1, ($s2) +/* 005F7C 7000537C 0223082B */ sltu $at, $s1, $v1 +/* 005F80 70005380 14200007 */ bnez $at, .L700053A0 +/* 005F84 70005384 00000000 */ nop +/* 005F88 70005388 14600003 */ bnez $v1, .L70005398 +/* 005F8C 7000538C 02009825 */ move $s3, $s0 +/* 005F90 70005390 10000006 */ b .L700053AC +/* 005F94 70005394 00001025 */ move $v0, $zero +.L70005398: +/* 005F98 70005398 1000FFF5 */ b .L70005370 +/* 005F9C 7000539C 00408025 */ move $s0, $v0 +.L700053A0: +/* 005FA0 700053A0 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005FA4 700053A4 02602025 */ move $a0, $s3 +/* 005FA8 700053A8 24020001 */ li $v0, 1 +.L700053AC: +/* 005FAC 700053AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 005FB0 700053B0 8FB00014 */ lw $s0, 0x14($sp) +/* 005FB4 700053B4 8FB10018 */ lw $s1, 0x18($sp) +/* 005FB8 700053B8 8FB2001C */ lw $s2, 0x1c($sp) +/* 005FBC 700053BC 8FB30020 */ lw $s3, 0x20($sp) +/* 005FC0 700053C0 03E00008 */ jr $ra +/* 005FC4 700053C4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + +/** + * 5FC8 700053C8 + * V0= TRUE if valid indy.read.buf.resourceID [matches 826475BE] + */ +#ifdef NONMATCHING +u32 is_valid_indy_read_buf_resourceID(void) +{ + indy_file_get_address_subsequent_data(0xe00000); + return ((u32) (current_indy_read_buf_resourceID ^ 0x826475be) < 1U); +} +#else +GLOBAL_ASM( +.text +glabel is_valid_indy_read_buf_resourceID +/* 005FC8 700053C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005FCC 700053CC AFBF0014 */ sw $ra, 0x14($sp) +/* 005FD0 700053D0 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005FD4 700053D4 3C0400E0 */ lui $a0, 0xe0 +/* 005FD8 700053D8 3C028006 */ lui $v0, %hi(current_indy_read_buf_resourceID) +/* 005FDC 700053DC 8C423664 */ lw $v0, %lo(current_indy_read_buf_resourceID)($v0) +/* 005FE0 700053E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 005FE4 700053E4 3C018264 */ lui $at, (0x826475BE >> 16) # lui $at, 0x8264 +/* 005FE8 700053E8 342175BE */ ori $at, (0x826475BE & 0xFFFF) # ori $at, $at, 0x75be +/* 005FEC 700053EC 00417026 */ xor $t6, $v0, $at +/* 005FF0 700053F0 2DC20001 */ sltiu $v0, $t6, 1 +/* 005FF4 700053F4 03E00008 */ jr $ra +/* 005FF8 700053F8 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +/** + * 5FFC 700053FC + * unconditional return + */ +void debug_indy_stub(void) { + return; +} + +/** + * 6004 70005404 + * unconditional return + */ +void debug_indy_stub_0(void) { + return; +} + +/** + * 600C 7000540C + * unconditional return + */ +void debug_indy_stub_1(void) { + return; +} + +/** + * 6014 70005414 + * V0= indy.read.buf.resourceID [80063664] + */ +u32 * return_indy_read_buf_resourceID(void) { + return current_indy_read_buf_resourceID; +} + +/** + * 6020 70005420 + * V0=hardcoded SP for debug thread A1, corrected for address range A0 + * accepts: A0=p->address space, A1=entry# + */ +#ifdef NONMATCHING +s32 debug_sp_related_11(u32 arg0, u32 arg1) +{ + ? sp1C; + ? sp8; + s32 temp_v0; + void *temp_t8; + + sp1C = (?32) stack_ptrs_1; + sp1C.unk4 = (?32) stack_ptrs_1.unk4; + sp1C.unk8 = (?32) stack_ptrs_1.unk8; + sp1C.unkC = (?32) stack_ptrs_1.unkC; + sp1C.unk10 = (?32) stack_ptrs_1.unk10; + sp8 = (?32) stack_ptrs_2; + sp8.unk4 = (?32) stack_ptrs_2.unk4; + sp8.unk8 = (?32) stack_ptrs_2.unk8; + sp8.unkC = (?32) stack_ptrs_2.unkC; + sp8.unk10 = (?32) stack_ptrs_2.unk10; + if (arg1 <= 0) + { + return 0; + } + temp_v0 = (arg1 * 4); + if (arg1 >= 6U) + { + return 0; + } + temp_t8 = (&sp8 + temp_v0); + if (arg0 < 0x80000000U) + { + return ((arg0 & 0xf0000000) | (*temp_t8 - *(&sp1C + temp_v0))); + } + return *temp_t8; +} +#else +GLOBAL_ASM( +.text +glabel debug_sp_related_11 +/* 006020 70005420 3C0E8002 */ lui $t6, %hi(stack_ptrs_1) +/* 006024 70005424 25CE36DC */ addiu $t6, %lo(stack_ptrs_1) # addiu $t6, $t6, 0x36dc +/* 006028 70005428 8DC10000 */ lw $at, ($t6) +/* 00602C 7000542C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 006030 70005430 27A7001C */ addiu $a3, $sp, 0x1c +/* 006034 70005434 ACE10000 */ sw $at, ($a3) +/* 006038 70005438 8DD90004 */ lw $t9, 4($t6) +/* 00603C 7000543C 3C098002 */ lui $t1, %hi(stack_ptrs_2) +/* 006040 70005440 252936F0 */ addiu $t1, %lo(stack_ptrs_2) # addiu $t1, $t1, 0x36f0 +/* 006044 70005444 ACF90004 */ sw $t9, 4($a3) +/* 006048 70005448 8DC10008 */ lw $at, 8($t6) +/* 00604C 7000544C 27A80008 */ addiu $t0, $sp, 8 +/* 006050 70005450 00803025 */ move $a2, $a0 +/* 006054 70005454 ACE10008 */ sw $at, 8($a3) +/* 006058 70005458 8DD9000C */ lw $t9, 0xc($t6) +/* 00605C 7000545C ACF9000C */ sw $t9, 0xc($a3) +/* 006060 70005460 8DC10010 */ lw $at, 0x10($t6) +/* 006064 70005464 ACE10010 */ sw $at, 0x10($a3) +/* 006068 70005468 8D210000 */ lw $at, ($t1) +/* 00606C 7000546C AD010000 */ sw $at, ($t0) +/* 006070 70005470 8D2C0004 */ lw $t4, 4($t1) +/* 006074 70005474 AD0C0004 */ sw $t4, 4($t0) +/* 006078 70005478 8D210008 */ lw $at, 8($t1) +/* 00607C 7000547C AD010008 */ sw $at, 8($t0) +/* 006080 70005480 8D2C000C */ lw $t4, 0xc($t1) +/* 006084 70005484 AD0C000C */ sw $t4, 0xc($t0) +/* 006088 70005488 8D210010 */ lw $at, 0x10($t1) +/* 00608C 7000548C 18A00004 */ blez $a1, .L700054A0 +/* 006090 70005490 AD010010 */ sw $at, 0x10($t0) +/* 006094 70005494 2CA10006 */ sltiu $at, $a1, 6 +/* 006098 70005498 14200003 */ bnez $at, .L700054A8 +/* 00609C 7000549C 00051080 */ sll $v0, $a1, 2 +.L700054A0: +/* 0060A0 700054A0 1000000E */ b .L700054DC +/* 0060A4 700054A4 00001025 */ move $v0, $zero +.L700054A8: +/* 0060A8 700054A8 3C018000 */ lui $at, 0x8000 +/* 0060AC 700054AC 00E26821 */ addu $t5, $a3, $v0 +/* 0060B0 700054B0 0102C021 */ addu $t8, $t0, $v0 +/* 0060B4 700054B4 00C1082B */ sltu $at, $a2, $at +/* 0060B8 700054B8 8DA30000 */ lw $v1, ($t5) +/* 0060BC 700054BC 14200003 */ bnez $at, .L700054CC +/* 0060C0 700054C0 8F040000 */ lw $a0, ($t8) +/* 0060C4 700054C4 10000005 */ b .L700054DC +/* 0060C8 700054C8 00801025 */ move $v0, $a0 +.L700054CC: +/* 0060CC 700054CC 3C01F000 */ lui $at, 0xf000 +/* 0060D0 700054D0 00C17824 */ and $t7, $a2, $at +/* 0060D4 700054D4 00837023 */ subu $t6, $a0, $v1 +/* 0060D8 700054D8 01EE1025 */ or $v0, $t7, $t6 +.L700054DC: +/* 0060DC 700054DC 03E00008 */ jr $ra +/* 0060E0 700054E0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +/** + * 60E4 700054E4 + * V0=hardcoded SP for debug thread A1, corrected for address range A0 + * accepts: A0=p->address space, A1=entry# + */ +#ifdef NONMATCHING +s32 debug_sp_related_12(u32 arg0, u32 arg1) { + u32 sp4; + + // Node 0 + sp4 = (?32) stack_ptrs_3; + sp4.unk4 = (?32) stack_ptrs_3.unk4; + sp4.unk8 = (?32) stack_ptrs_3.unk8; + sp4.unkC = (?32) stack_ptrs_3.unkC; + sp4.unk10 = (?32) stack_ptrs_3.unk10; + if (arg1 <= 0) + { + // Node 2 + return; + // (possible return value: 0) + } + // Node 1 + if (arg1 >= 6U) + { + // Node 2 + return; + // (possible return value: 0) + } + // Node 3 + if (arg0 >= 0x80000000U) + { + // Node 4 + return; + // (possible return value: *(&sp4 + (arg1 * 4))) + } + // Node 5 + return; + // (possible return value: (arg0 & 0xf0000000)) +} +#else +GLOBAL_ASM( +.text +glabel debug_sp_related_12 +/* 0060E4 700054E4 3C0E8002 */ lui $t6, %hi(stack_ptrs_3) +/* 0060E8 700054E8 25CE3704 */ addiu $t6, %lo(stack_ptrs_3) # addiu $t6, $t6, 0x3704 +/* 0060EC 700054EC 8DC10000 */ lw $at, ($t6) +/* 0060F0 700054F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0060F4 700054F4 27A20004 */ addiu $v0, $sp, 4 +/* 0060F8 700054F8 AC410000 */ sw $at, ($v0) +/* 0060FC 700054FC 8DD90004 */ lw $t9, 4($t6) +/* 006100 70005500 AC590004 */ sw $t9, 4($v0) +/* 006104 70005504 8DC10008 */ lw $at, 8($t6) +/* 006108 70005508 AC410008 */ sw $at, 8($v0) +/* 00610C 7000550C 8DD9000C */ lw $t9, 0xc($t6) +/* 006110 70005510 AC59000C */ sw $t9, 0xc($v0) +/* 006114 70005514 8DC10010 */ lw $at, 0x10($t6) +/* 006118 70005518 18A00004 */ blez $a1, .L7000552C +/* 00611C 7000551C AC410010 */ sw $at, 0x10($v0) +/* 006120 70005520 2CA10006 */ sltiu $at, $a1, 6 +/* 006124 70005524 14200003 */ bnez $at, .L70005534 +/* 006128 70005528 00054080 */ sll $t0, $a1, 2 +.L7000552C: +/* 00612C 7000552C 1000000A */ b .L70005558 +/* 006130 70005530 00001025 */ move $v0, $zero +.L70005534: +/* 006134 70005534 3C018000 */ lui $at, 0x8000 +/* 006138 70005538 00484821 */ addu $t1, $v0, $t0 +/* 00613C 7000553C 0081082B */ sltu $at, $a0, $at +/* 006140 70005540 14200003 */ bnez $at, .L70005550 +/* 006144 70005544 8D230000 */ lw $v1, ($t1) +/* 006148 70005548 10000003 */ b .L70005558 +/* 00614C 7000554C 00601025 */ move $v0, $v1 +.L70005550: +/* 006150 70005550 3C01F000 */ lui $at, 0xf000 +/* 006154 70005554 00811024 */ and $v0, $a0, $at +.L70005558: +/* 006158 70005558 03E00008 */ jr $ra +/* 00615C 7000555C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +//maybe newfile, falls on 0 address and logically does different things + +/** + * 6160 70005560 + * V0= TRUE if F12 a normal single precision float + * accepts: F12= single-precision float + */ +#ifdef NONMATCHING +s32 _is_normal_single_precision_float(f32 arg0) { + // Node 0 + if ((u32) (arg0 & 0x7fffff) >= 1U) + { + // Node 1 + if (0U < (u32) ((arg0 >> 0x17) & 0xff)) + { + // Node 2 + return; + // (possible return value: (0U < (u32) (((arg0 >> 0x17) & 0xff) ^ 0xff))) + } + } + // (possible return value: ((u32) (arg0 & 0x7fffff) < 1U)) +} +#else +GLOBAL_ASM( +.text +glabel _is_normal_single_precision_float +/* 006160 70005560 E7AC0000 */ swc1 $f12, ($sp) +/* 006164 70005564 8FA40000 */ lw $a0, ($sp) +/* 006168 70005568 3C01007F */ lui $at, (0x007FFFFF >> 16) # lui $at, 0x7f +/* 00616C 7000556C 3421FFFF */ ori $at, (0x007FFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 006170 70005570 00811024 */ and $v0, $a0, $at +/* 006174 70005574 2C4E0001 */ sltiu $t6, $v0, 1 +/* 006178 70005578 15C00008 */ bnez $t6, .L7000559C +/* 00617C 7000557C 01C01025 */ move $v0, $t6 +/* 006180 70005580 00041DC2 */ srl $v1, $a0, 0x17 +/* 006184 70005584 306F00FF */ andi $t7, $v1, 0xff +/* 006188 70005588 000F102B */ sltu $v0, $zero, $t7 +/* 00618C 7000558C 10400003 */ beqz $v0, .L7000559C +/* 006190 70005590 00000000 */ nop +/* 006194 70005594 39E200FF */ xori $v0, $t7, 0xff +/* 006198 70005598 0002102B */ sltu $v0, $zero, $v0 +.L7000559C: +/* 00619C 7000559C 03E00008 */ jr $ra +/* 0061A0 700055A0 00000000 */ nop +) +#endif + + + + +/** + * 61A4 700055A4 + * V0= TRUE if A1 a normal single precision float; would have set result as short at A0 + * accepts: A0=(unused) p->target, A1=single-precision float + */ +#ifdef NONMATCHING +void is_normal_single_precision_float(s32 arg0, s32 arg1) { + _is_normal_single_precision_float(arg1); +} +#else +GLOBAL_ASM( +.text +glabel is_normal_single_precision_float +/* 0061A4 700055A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0061A8 700055A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0061AC 700055AC 44856000 */ mtc1 $a1, $f12 +/* 0061B0 700055B0 0C001558 */ jal _is_normal_single_precision_float +/* 0061B4 700055B4 AFA40018 */ sw $a0, 0x18($sp) +/* 0061B8 700055B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0061BC 700055BC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0061C0 700055C0 03E00008 */ jr $ra +/* 0061C4 700055C4 00000000 */ nop +) +#endif + + + + + +/** + * 61C8 700055C8 + * removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0 + */ +#ifdef NONMATCHING +void set_normality_of_single_precision_floats(s32 arg0, s32 arg1, ? arg2, ? arg3, s32 arg6, ? arg8, ? arg9, ? argA) { + // Node 0 + is_normal_single_precision_float(arg1, arg1); + is_normal_single_precision_float((arg6 + 2), arg8); + is_normal_single_precision_float((arg6 + 4), arg9); + is_normal_single_precision_float((arg6 + 6), argA); + return; + // (possible return value: is_normal_single_precision_float((arg6 + 6), argA)) +} +#else +GLOBAL_ASM( +.text +glabel set_normality_of_single_precision_floats +/* 0061C8 700055C8 44856000 */ mtc1 $a1, $f12 +/* 0061CC 700055CC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0061D0 700055D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0061D4 700055D4 44056000 */ mfc1 $a1, $f12 +/* 0061D8 700055D8 AFA40018 */ sw $a0, 0x18($sp) +/* 0061DC 700055DC AFA60020 */ sw $a2, 0x20($sp) +/* 0061E0 700055E0 0C001569 */ jal is_normal_single_precision_float +/* 0061E4 700055E4 AFA70024 */ sw $a3, 0x24($sp) +/* 0061E8 700055E8 8FA40018 */ lw $a0, 0x18($sp) +/* 0061EC 700055EC 8FA50020 */ lw $a1, 0x20($sp) +/* 0061F0 700055F0 0C001569 */ jal is_normal_single_precision_float +/* 0061F4 700055F4 24840002 */ addiu $a0, $a0, 2 +/* 0061F8 700055F8 8FA40018 */ lw $a0, 0x18($sp) +/* 0061FC 700055FC 8FA50024 */ lw $a1, 0x24($sp) +/* 006200 70005600 0C001569 */ jal is_normal_single_precision_float +/* 006204 70005604 24840004 */ addiu $a0, $a0, 4 +/* 006208 70005608 8FA40018 */ lw $a0, 0x18($sp) +/* 00620C 7000560C 8FA50028 */ lw $a1, 0x28($sp) +/* 006210 70005610 0C001569 */ jal is_normal_single_precision_float +/* 006214 70005614 24840006 */ addiu $a0, $a0, 6 +/* 006218 70005618 8FBF0014 */ lw $ra, 0x14($sp) +/* 00621C 7000561C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 006220 70005620 03E00008 */ jr $ra +/* 006224 70005624 00000000 */ nop +) +#endif + +/** + * 6228 70005628 + * unconditional return + */ +void debug_indy_stub_2(void) { + return; +} + + diff --git a/src/deb_video.h b/src/deb_video.h new file mode 100644 index 0000000..e9770ef --- /dev/null +++ b/src/deb_video.h @@ -0,0 +1,8 @@ +#ifndef _DEB_VIDEO_H_ +#define _DEB_VIDEO_H_ + +#include "ultra64.h" + +void tlbproc(void); + +#endif diff --git a/src/debug_getlastRA.c b/src/debug_getlastRA.c new file mode 100644 index 0000000..5841675 --- /dev/null +++ b/src/debug_getlastRA.c @@ -0,0 +1,56 @@ +#include "ultra64.h" + +/** + * @file debug_getlastRA.c + * This file contains code to get last return address on stack. + */ + + +/** + * 6710 70005B10 + * V0=value of RA previously saved to the stack or -1 if impossible to retrieve + * Searches backward from caller for last instance of RA saved to stack. + */ +#ifdef NONMATCHING +s32 return_last_RA_saved_to_stack(undefined4 param_1) { + uint uVar1; + uint *unaff_retaddr; + s32 auStackX0 [4]; + + while( true ) { + uVar1 = *unaff_retaddr >> 0x10; + if (uVar1 == 0x27bd) { + return -1; + } + if (uVar1 == 0xafbf) break; + unaff_retaddr = unaff_retaddr + -1; + } + return *(s32 *)((int)auStackX0 + (int)(short)*unaff_retaddr); +} +#else +GLOBAL_ASM( +.text +glabel return_last_RA_saved_to_stack +/* 006710 70005B10 03E02025 */ move $a0, $ra +/* 006714 70005B14 2402FFFF */ li $v0, -1 +glabel .L70005B18 +/* 006718 70005B18 8C880000 */ lw $t0, ($a0) +/* 00671C 70005B1C 240A27BD */ li $t2, 10173 +/* 006720 70005B20 00084C02 */ srl $t1, $t0, 0x10 +/* 006724 70005B24 112A000A */ beq $t1, $t2, .L70005B50 +/* 006728 70005B28 00000000 */ nop +/* 00672C 70005B2C 340AAFBF */ li $t2, 44991 +/* 006730 70005B30 512A0004 */ beql $t1, $t2, .L70005B44 +/* 006734 70005B34 00085400 */ sll $t2, $t0, 0x10 +/* 006738 70005B38 080016C6 */ j .L70005B18 +/* 00673C 70005B3C 2484FFFC */ addiu $a0, $a0, -4 +/* 006740 70005B40 00085400 */ sll $t2, $t0, 0x10 +.L70005B44: +/* 006744 70005B44 000A5403 */ sra $t2, $t2, 0x10 +/* 006748 70005B48 015D5020 */ add $t2, $t2, $sp +/* 00674C 70005B4C 8D420000 */ lw $v0, ($t2) +.L70005B50: +/* 006750 70005B50 03E00008 */ jr $ra +/* 006754 70005B54 00000000 */ nop +) +#endif \ No newline at end of file diff --git a/src/debugmenu.c b/src/debugmenu.c new file mode 100644 index 0000000..a0979c2 --- /dev/null +++ b/src/debugmenu.c @@ -0,0 +1,1102 @@ +#include "ultra64.h" +#include "debugmenu.h" +#include "vi.h" + +u32 image_resource[] = { + 0, 0x227A00, 0x7A348B, 0x223434, 0x115811, 0x696900, 0, 0x9C00, + 0x4600, 0x460000, 0x4600, 0, 0, 0, 0, 0x46, + 0x229C11, 0x346900, 0x229C11, 0x699C11, 0x5834, 0xADAD34, 0x118B34, 0x9CAD7A, + 0x229C11, 0x229C11, 0, 0, 0, 0, 0, 0x113411, + 0, 0x46CE00, 0xAD58DE, 0x466969, 0x9C9C69, 0x8B8B00, 0x469C00, 0x22CE00, + 0x583400, 0x345800, 0x7ACE69, 0x5800, 0, 0, 0, 0x3446, + 0x8B007A, 0x588B00, 0x8B008B, 0x22007A, 0x119C69, 0x8B0000, 0x9C1100, 0x22008B, + 0x8B007A, 0x8B007A, 0, 0, 0x225869, 0,0x69582200, 0x9C698B, + 0, 0x46CE00, 0x222258, 0xDEEF7A, 0xAD1111, 0x69EF9C, 0x8B0000, 0x460000, + 0x8B0000, 0x8B00, 0x58CE34, 0x8B00, 0, 0, 0, 0x8B00, + 0x8B008B, 0x8B00, 0x11007A, 0x118B46, 0x58467A, 0xCEAD22, 0x9C8B00, 0x117A, + 0x698B46, 0x8B00AD, 0x34AD00, 0x34AD00,0x228B4600,0x8B8B8B8B, 0x468B22, 0x11008B, + 0, 0x7A00, 0, 0x9C9C00, 0x118B34,0x22ADBD46, 0x8B8B34, 0, + 0x8B0000, 0x8B00, 0x7A2269,0x22ADEF9C, 0,0x22ADADAD, 0, 0x226900, + 0x8B008B, 0x8B00, 0x7A00, 0x117A, 0x9C347A, 0x8B, 0xCE117A, 0x2269, + 0x8B227A, 0x229C8B, 0x1100, 0x1100,0xAD580000,0x34343434, 0x58AD, 0xBD34, + 0, 0x112200, 0,0x22DEDE22, 0xCE5858, 0x46468B, 0x8BAD00, 0, + 0x8B0000, 0x8B00, 0, 0x8B00, 0x3400, 0, 0x2200, 0x691100, + 0x8B008B, 0x8B00, 0x691158, 0x11008B, 0x7A9CAD,0x1122008B, 0x8B008B, 0x8B00, + 0x8B008B, 0x227A, 0x2200, 0x2200,0x228B4600,0x8B8B8B8B, 0x468B22, 0x6900, + 0, 0x228B00, 0, 0x8B8B00, 0x34BD00, 0x119C46, 0x7A6969, 0, + 0x583400, 0x345800, 0, 0x5800, 0x11FF00, 0, 0x228B00, 0x8B0000, + 0x349C22, 0x8BCE69,0x22BDAD8B, 0x7A9C11, 0x8B8B,0x118B9C11, 0x349C22, 0x5800, + 0x349C11, 0x588B11, 0x228B00, 0x69AD00, 0x225869, 0,0x69582200, 0xBD00, + 0, 0, 0, 0x464600, 0x4600, 0, 0, 0, + 0x4600, 0x460000, 0, 0, 0x583400, 0, 0,0x58340000, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x8B0000, 0, 0, 0, 0, + 0x229C11, 0x221100,0x11223400, 0x3411,0x11342200, 0x343422, 0x343422, 0x2222, + 0x220022, 0x342222, 0x3434, 0x341122,0x22341100,0x11110022,0x22221134, 0x2200, + 0x343411, 0x3400, 0x343411, 0x113411, 0x343434,0x11341134,0x11220034,0x34220034, +0x11340022,0x11220034, 0x223422, 0x8B34, 0x460000, 0x587A00, 0x5800, 0, +0x348B008B, 0x69BD00,0x11DE7A58, 0xAD69DE,0x22CE7A9C,0x11CE7AAD,0x11CE7AAD, 0xAD7ADE, +0x22CE00CE, 0x69CE58, 0x8BCE,0x22CE22CE,0x46CE4600,0x7ABD00FF,0x58FF46CE, 0xAD7A9C, +0x11CE7A7A, 0xAD7A8B,0x22CE7A7A,0x118B7ABD,0x469CCECE,0x8B8B34CE,0x8B8B00BD,0xBD8B22BD, +0x58CE00CE,0x22BD00CE, 0xBD7AAD, 0x8B00, 0x7A1100, 0x8B00, 0x694658, 0, +0x468B7ABD, 0x588B22, 0x8B008B,0x46460011, 0x8B007A,0x118B3458, 0x8B3458,0x46460011, + 0x8B008B, 0x8B00, 0x117A, 0x8B7A11, 0x8B0000,0x589C58BD,0x11AD698B,0x4646007A, +0x118B007A,0x5846007A,0x118B007A,0x46580011,0x34228B46,0x6934008B, 0x7A008B,0x58348B7A, +0x11696946, 0x695846, 0x113458, 0x8B00, 0x116900, 0x8B00, 0x110011, 0, +0x468B8B9C, 0x9C228B, 0xDEAD7A,0x58340000, 0x8B007A,0x11DEAD00, 0xDEAD00,0x583400AD, +0x46DEADBD, 0x8B00,0x3411117A, 0xDEAD00, 0x8B0000,0x5846AD7A,0x118B8B8B,0x5834007A, +0x11DEAD34,0x5834007A,0x11DEDE46, 0x58AD34, 0x8B00,0x5834008B, 0x8B117A, 0xBDDE8B, + 0x22AD00, 0x11BD00, 0x226900, 0x8B00, 0x8B00, 0x8B00, 0, 0, +0x348B348B,0x469C8BAD, 0x8B007A,0x347A0058, 0x8B009C, 0x8B008B, 0x8B0000,0x228B007A, + 0x8B008B, 0x8B00,0x46462269, 0x8B117A, 0x8B007A,0x6934347A,0x118B34DE,0x118B009C, + 0x8B0000,0x228B009C, 0x8B117A,0x3434008B, 0x8B00,0x4646008B, 0x22CE00, 0xADBD8B, + 0x8B007A, 0x8B00, 0x8B0058, 0x8B00, 0x3446, 0x8B00, 0, 0, + 0x697A9C,0x7A9C00BD,0x69CEAD58, 0x58AD58,0x22BDAD34,0x22CEAD8B,0x22BD2200, 0x58AD58, +0x22AD00CE, 0x8BBD7A, 0x7A7A00,0x22BD228B,0x69BDADBD,0x8B9C00BD,0x69CE227A, 0x58AD34, +0x22CE6900, 0x9CEF69,0x22BD2258,0x7A9C9C22, 0x46CE34, 0x7AAD11, 0x5800, 0x580058, +0x22AD00CE, 0x58BD34, 0xAD9C9C, 0x8B00, 0x8B, 0x8B00, 0,0x22222222, + 0x2211, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x58588B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xCE34, 0x7A,0x1158AD00, 0,0x7A7A7A7A, + 0x693400, 0,0x22690000, 0, 0x8B, 0, 0x589C,0x11000000, +0x22690000, 0x1100, 0x1100,0x22690000, 0x8B7A00, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4646, 0x4600, 0x464600, 0, 0, + 0x46AD00, 0, 0x8B0000, 0, 0x8B, 0, 0x116900, 0, + 0x8B0000, 0x6900, 0x6900, 0x8B0000, 0x8B00, 0, 0, 0, + 0, 0, 0, 0, 0x226900, 0, 0, 0, + 0, 0, 0, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0x5800, 0x8B9C34, 0xCEAD69, 0x7AAD9C, 0x8BADBD, 0x7AAD34, 0x9CDE7A, 0x8B9CCE, +0x11CEAD69, 0x589C00, 0x8BAD69, 0x8BAD69, 0x8B00,0x7AAD9C9C,0x22CEAD69, 0x7AAD34, +0x22CEAD69, 0x8B9CDE,0x22DE9C69, 0x7AAD9C, 0x9CDE7A,0x118B00AD,0x11CE00DE,0x34CE00DE, +0x22CE34AD,0x22CE00DE, 0xBD9CAD, 0x8B00, 0x8B00, 0x8B00,0x229C347A, 0, + 0, 0x9CAD7A, 0x8B007A,0x69340034,0x4634009C,0x46CE9CBD, 0x226900,0x4646008B, + 0x8B008B, 0x8B00, 0x7A, 0xDE7A00, 0x8B00,0x46468B69,0x119C008B,0x4646008B, + 0x8B0069,0x5846008B, 0x8B0000, 0x8B7A58, 0x226900, 0x8B008B, 0x7A117A, 0x8B8B8B, + 0x58BD00, 0x8B008B, 0x464646, 0x467A00, 0x8B00, 0x8B46,0x7A349C22, 0, + 0,0x4634227A, 0x9C007A,0x58460022,0x4646009C,0x34460034, 0x226900,0x3446009C, + 0x8B008B, 0x8B00, 0x7A, 0x8B6911, 0x8B00,0x46468B69,0x118B008B,0x3458008B, + 0xAD0069,0x584600AD, 0x8B0000, 0x69348B, 0x226911, 0x8B009C, 0x11DE00, 0xADBD8B, + 0x699C11, 0x469C34, 0x225858, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0,0x119C8BCE,0x22ADAD58, 0x7A9C46, 0x69ADAD,0x1169AD46, 0x8BBD7A, 0x69ADAD, +0x22AD00BD,0x118BCE69, 0x7A,0x227A34CE, 0x8BBD7A,0x7A699C46,0x69BD00CE, 0x7A9C22, + 0xBD9C58, 0x69ADAD,0x22CE9C34, 0x8BAD58, 0x9C8B, 0x699CAD,0x11005800, 0x580069, +0x11BD349C, 0x9C00, 0xADAD9C, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x8B, + 0, 0, 0x4646, 0, 0, 0, 0, 0, + 0x8B0000, 0x8B, 0, 0, 0, 0, 0, 0, + 0, 0x226900, 0, 0x8B46, 0x8B00, 0x467A00, 0, 0 +}; + +s32 debug_menu_x_pos_offset = 5; +s32 debug_menu_y_pos_offset = 1; +s32 debug_menu_x_text_pos = 0x18; +s32 debug_menu_y_text_pos = 0x10; + +u32 stdout_display_list[] = { + 0xE7000000, 0, //gsDPPipeSync(), + 0xBA001402, 0, //gsDPSetCycleType(G_CYC_1CYCLE), + 0xBA000602, 0xC0, //gsDPSetTextureLOD + 0xB900031D,0x500A4240, //gsDPSetRenderMode + 0xFC30B261,0x5566DB6D, //gsDPSetCombineMode + 0xBA001301, 0, //gsDPSetTextureLOD + 0xB9000002, 0, //gsDPSetRenderMode + 0xFD700000,&image_resource[0], //gsDPSetTextureImage + 0xF5700000, 0x7000000, //gsDPSetTile + 0xE6000000, 0, //gsDPLoadSync(), + 0xF3000000, 0x753F080, //gsDPLoadBlock + 0xE7000000, 0, //gsDPPipeSync(), + 0xF5682000, 0, //gsDPSetTile + 0xF2000000, 0x1FC050, //gsDPSetTileSize + 0xE6000000, 0, //gsDPLoadSync(), + 0xB8000000, 0 //gsSPEndDisplayList(), +}; + +u32 stdout_debug_menu_screen_buffer[1400] = {0}; +u32 stdout_primary_color_table[64] = {0}; +u32 stdout_environment_color_table[64] = {0}; + +char *string_formatting[] = {0, +"\x1B[31m\x1B[40m", "\x1B[37m\x1B[40m", +"\x1B[32m\x1B[40m", "\x1B[33m\x1B[40m", +"\x1B[34m\x1B[40m", "\x1B[35m\x1B[40m", +"\x1B[36m\x1B[40m", "\x1B[37m\x1B[44m", +"\x1B[31m\x1B[44m", "\x1B[32m\x1B[44m", +"\x1B[33m\x1B[44m", "\x1B[30m\x1B[44m", +"\x1B[35m\x1B[44m", "\x1B[36m\x1B[44m", +"\x1B[37m\x1B[41m", "\x1B[30m\x1B[41m", +"\x1B[32m\x1B[41m", "\x1B[33m\x1B[41m", +"\x1B[34m\x1B[41m", "\x1B[35m\x1B[41m", +"\x1B[36m\x1B[41m", "\x1B[37m\x1B[45m", +"\x1B[31m\x1B[45m", "\x1B[32m\x1B[45m", +"\x1B[33m\x1B[45m", "\x1B[34m\x1B[45m", +"\x1B[30m\x1B[45m", "\x1B[36m\x1B[45m", +"\x1B[37m\x1B[42m", "\x1B[31m\x1B[42m", +"\x1B[30m\x1B[42m", "\x1B[33m\x1B[42m"}; + + + +u64 end_displaylist_command = 0xB800000000000000; +u64 blank_C0_command =0xC000000000000000; +u32 stdout_primary_color = 0xFA000000; +u32 debug_text_color = 0xFFFFFF00; +u32 debug_text_bg_color = 0xFB000000; +u32 speedgraph_color = 0; +u32 D_800268B8 = 0xFF; + + + + + +u32 dummied_function_7000AD80(s32 arg0, s32 arg1) +{ + return 0; +} + + +u32 dummied_function_7000AD90(s32 arg0, s32 arg1) +{ + return 0; +} + + +void null_function_7000ADA0(void) +{ +//empty +} + + +void debugmenuInit_REMOVED(void) +{ +//empty +} + + +void debug_text_related_2(void) +{ + blank_debug_buffer_chars(); +} + + + + + + +#ifdef NONMATCHING +s32 display_text_to_coord(s32 arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + void *temp_t5; + void *temp_t8; + s32 temp_t7; + s32 temp_t5_2; + void *temp_v1; + + // Node 0 + // Node 1 + if ((debug_text_color != stdout_primary_color_table.unk4) || (debug_text_bg_color.unk4 != (&stdout_environment_color_table + 0)->unk4)) + { + // Node 3 + if ((0 + 1) < 0x20) + { + goto loop_1; + } + // Node 4 + temp_a0 = (string_formatting * 8); + temp_t5 = (temp_a0 + &stdout_primary_color_table); + *temp_t5 = (?32) stdout_primary_color; + temp_t8 = (&stdout_environment_color_table + temp_a0); + temp_t7 = (string_formatting + 1); + temp_t5->unk4 = (?32) stdout_primary_color.unk4; + *temp_t8 = (?32) debug_text_bg_color; + temp_t8->unk4 = (s32) debug_text_bg_color.unk4; + temp_t5_2 = (temp_t7 & 0x1f); + if (temp_t7 < 0) + { + // Node 5 + if (temp_t5_2 != 0) + { + // Node 6 + } + } + // Node 7 + string_formatting = temp_t5_2; + } + else + { + + } + // Node 8 + temp_v1 = (((arg0 * 0x46) + (arg1 * 2)) + &stdout_debug_menu_screen_buffer); + *temp_v1 = (s8) (arg2 & 0xff); + temp_v1->unk1 = temp_t5_2; + return; + // (possible return value: temp_t5_2) +} + +#else +GLOBAL_ASM( +.text +glabel display_text_to_coord +/* 00B9D0 7000ADD0 AFA60008 */ sw $a2, 8($sp) +/* 00B9D4 7000ADD4 30CE00FF */ andi $t6, $a2, 0xff +/* 00B9D8 7000ADD8 3C038002 */ lui $v1, %hi(debug_text_color) +/* 00B9DC 7000ADDC 3C088002 */ lui $t0, %hi(stdout_primary_color_table) +/* 00B9E0 7000ADE0 3C0A8002 */ lui $t2, %hi(stdout_environment_color_table) +/* 00B9E4 7000ADE4 3C098002 */ lui $t1, %hi(debug_text_bg_color) +/* 00B9E8 7000ADE8 01C03025 */ move $a2, $t6 +/* 00B9EC 7000ADEC AFA40000 */ sw $a0, ($sp) +/* 00B9F0 7000ADF0 252968B0 */ addiu $t1, %lo(debug_text_bg_color) # addiu $t1, $t1, 0x68b0 +/* 00B9F4 7000ADF4 254A6710 */ addiu $t2, %lo(stdout_environment_color_table) # addiu $t2, $t2, 0x6710 +/* 00B9F8 7000ADF8 25086610 */ addiu $t0, %lo(stdout_primary_color_table) # addiu $t0, $t0, 0x6610 +/* 00B9FC 7000ADFC 8C6368AC */ lw $v1, %lo(debug_text_color)($v1) +/* 00BA00 7000AE00 00001025 */ move $v0, $zero +/* 00BA04 7000AE04 00003825 */ move $a3, $zero +.L7000AE08: +/* 00BA08 7000AE08 8D0F0004 */ lw $t7, 4($t0) +/* 00BA0C 7000AE0C 25080008 */ addiu $t0, $t0, 8 +/* 00BA10 7000AE10 0147C821 */ addu $t9, $t2, $a3 +/* 00BA14 7000AE14 546F0006 */ bnel $v1, $t7, .L7000AE30 +/* 00BA18 7000AE18 24420001 */ addiu $v0, $v0, 1 +/* 00BA1C 7000AE1C 8D380004 */ lw $t8, 4($t1) +/* 00BA20 7000AE20 8F2B0004 */ lw $t3, 4($t9) +/* 00BA24 7000AE24 530B0020 */ beql $t8, $t3, .L7000AEA8 +/* 00BA28 7000AE28 8FAE0000 */ lw $t6, ($sp) +/* 00BA2C 7000AE2C 24420001 */ addiu $v0, $v0, 1 +.L7000AE30: +/* 00BA30 7000AE30 28410020 */ slti $at, $v0, 0x20 +/* 00BA34 7000AE34 1420FFF4 */ bnez $at, .L7000AE08 +/* 00BA38 7000AE38 24E70008 */ addiu $a3, $a3, 8 +/* 00BA3C 7000AE3C 3C078002 */ lui $a3, %hi(string_formatting) +/* 00BA40 7000AE40 24E76810 */ addiu $a3, %lo(string_formatting) # addiu $a3, $a3, 0x6810 +/* 00BA44 7000AE44 8CE30000 */ lw $v1, ($a3) +/* 00BA48 7000AE48 3C0E8002 */ lui $t6, %hi(stdout_primary_color) +/* 00BA4C 7000AE4C 25CE68A8 */ addiu $t6, %lo(stdout_primary_color) # addiu $t6, $t6, 0x68a8 +/* 00BA50 7000AE50 8DC10000 */ lw $at, ($t6) +/* 00BA54 7000AE54 3C0C8002 */ lui $t4, %hi(stdout_primary_color_table) +/* 00BA58 7000AE58 258C6610 */ addiu $t4, %lo(stdout_primary_color_table) # addiu $t4, $t4, 0x6610 +/* 00BA5C 7000AE5C 000320C0 */ sll $a0, $v1, 3 +/* 00BA60 7000AE60 008C6821 */ addu $t5, $a0, $t4 +/* 00BA64 7000AE64 ADA10000 */ sw $at, ($t5) +/* 00BA68 7000AE68 8DD90004 */ lw $t9, 4($t6) +/* 00BA6C 7000AE6C 0144C021 */ addu $t8, $t2, $a0 +/* 00BA70 7000AE70 246F0001 */ addiu $t7, $v1, 1 +/* 00BA74 7000AE74 ADB90004 */ sw $t9, 4($t5) +/* 00BA78 7000AE78 8D210000 */ lw $at, ($t1) +/* 00BA7C 7000AE7C AF010000 */ sw $at, ($t8) +/* 00BA80 7000AE80 8D2C0004 */ lw $t4, 4($t1) +/* 00BA84 7000AE84 AF0C0004 */ sw $t4, 4($t8) +/* 00BA88 7000AE88 05E10004 */ bgez $t7, .L7000AE9C +/* 00BA8C 7000AE8C 31ED001F */ andi $t5, $t7, 0x1f +/* 00BA90 7000AE90 11A00002 */ beqz $t5, .L7000AE9C +/* 00BA94 7000AE94 00000000 */ nop +/* 00BA98 7000AE98 25ADFFE0 */ addiu $t5, $t5, -0x20 +.L7000AE9C: +/* 00BA9C 7000AE9C ACED0000 */ sw $t5, ($a3) +/* 00BAA0 7000AEA0 01A01025 */ move $v0, $t5 +/* 00BAA4 7000AEA4 8FAE0000 */ lw $t6, ($sp) +.L7000AEA8: +/* 00BAA8 7000AEA8 00055840 */ sll $t3, $a1, 1 +/* 00BAAC 7000AEAC 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) +/* 00BAB0 7000AEB0 000EC8C0 */ sll $t9, $t6, 3 +/* 00BAB4 7000AEB4 032EC821 */ addu $t9, $t9, $t6 +/* 00BAB8 7000AEB8 0019C880 */ sll $t9, $t9, 2 +/* 00BABC 7000AEBC 032EC823 */ subu $t9, $t9, $t6 +/* 00BAC0 7000AEC0 0019C840 */ sll $t9, $t9, 1 +/* 00BAC4 7000AEC4 032BC021 */ addu $t8, $t9, $t3 +/* 00BAC8 7000AEC8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 +/* 00BACC 7000AECC 030C1821 */ addu $v1, $t8, $t4 +/* 00BAD0 7000AED0 A0660000 */ sb $a2, ($v1) +/* 00BAD4 7000AED4 03E00008 */ jr $ra +/* 00BAD8 7000AED8 A0620001 */ sb $v0, 1($v1) +) +#endif + + + + +void debugMenuSetTextPOStoOffset(void) +{ + debug_menu_x_text_pos = debug_menu_x_pos_offset; + debug_menu_y_text_pos = debug_menu_y_pos_offset; +} + + + + +void blank_debug_buffer_chars(void) +{ + int x; + int y; + + for (y = 0; y < 0x23; y++) + { + for (x = 0; x < 0x50; x++) + { + display_text_to_coord(x,y,'\0'); + } + } + debugMenuSetTextPOStoOffset(); + null_function_7000ADA0(); + string_formatting[0] = NULL; +} + + + + +void stubbed_function_7000AF84(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + return; +} + + + + + + +#ifdef NONMATCHING +void something_debug_info_related(s32 arg0) +{ + s32 temp_s0; + s32 temp_s0_2; + s32 phi_s3; + s32 phi_s0; + s32 phi_s1; + s32 phi_s0_2; + + phi_s3 = arg0 + 0x21; + phi_s1 = 0x21; +loop_1: + if ((phi_s3 >= 0) && (phi_s3 < 0x23)) + { +loop_3: + stubbed_function_7000AF84(phi_s0, phi_s3, phi_s0, phi_s1); + temp_s0 = phi_s0 + 1; + phi_s0 = temp_s0; + if (temp_s0 != 0x50) + { + goto loop_3; + } + } + else + { + phi_s0_2 = 0; +loop_6: + display_text_to_coord(phi_s0_2, phi_s1, 0); + temp_s0_2 = phi_s0_2 + 1; + phi_s0_2 = temp_s0_2; + if (temp_s0_2 != 0x50) + { + goto loop_6; + } + } + phi_s3 = phi_s3 - 1; + phi_s1 = phi_s1 - 1; + if (phi_s1 != 0) + { + goto loop_1; + } +} +#else +GLOBAL_ASM( +.text +glabel something_debug_info_related +/* 00BB98 7000AF98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00BB9C 7000AF9C AFB30020 */ sw $s3, 0x20($sp) +/* 00BBA0 7000AFA0 AFB2001C */ sw $s2, 0x1c($sp) +/* 00BBA4 7000AFA4 AFB10018 */ sw $s1, 0x18($sp) +/* 00BBA8 7000AFA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00BBAC 7000AFAC AFB00014 */ sw $s0, 0x14($sp) +/* 00BBB0 7000AFB0 24110021 */ li $s1, 33 +/* 00BBB4 7000AFB4 24120050 */ li $s2, 80 +/* 00BBB8 7000AFB8 24930021 */ addiu $s3, $a0, 0x21 +.L7000AFBC: +/* 00BBBC 7000AFBC 0660000D */ bltz $s3, .L7000AFF4 +/* 00BBC0 7000AFC0 2A610023 */ slti $at, $s3, 0x23 +/* 00BBC4 7000AFC4 1020000B */ beqz $at, .L7000AFF4 +/* 00BBC8 7000AFC8 00008025 */ move $s0, $zero +/* 00BBCC 7000AFCC 02002025 */ move $a0, $s0 +.L7000AFD0: +/* 00BBD0 7000AFD0 02602825 */ move $a1, $s3 +/* 00BBD4 7000AFD4 02003025 */ move $a2, $s0 +/* 00BBD8 7000AFD8 0C002BE1 */ jal stubbed_function_7000AF84 +/* 00BBDC 7000AFDC 02203825 */ move $a3, $s1 +/* 00BBE0 7000AFE0 26100001 */ addiu $s0, $s0, 1 +/* 00BBE4 7000AFE4 5612FFFA */ bnel $s0, $s2, .L7000AFD0 +/* 00BBE8 7000AFE8 02002025 */ move $a0, $s0 +/* 00BBEC 7000AFEC 1000000A */ b .L7000B018 +/* 00BBF0 7000AFF0 02201025 */ move $v0, $s1 +.L7000AFF4: +/* 00BBF4 7000AFF4 00008025 */ move $s0, $zero +/* 00BBF8 7000AFF8 02002025 */ move $a0, $s0 +.L7000AFFC: +/* 00BBFC 7000AFFC 02202825 */ move $a1, $s1 +/* 00BC00 7000B000 0C002B74 */ jal display_text_to_coord +/* 00BC04 7000B004 00003025 */ move $a2, $zero +/* 00BC08 7000B008 26100001 */ addiu $s0, $s0, 1 +/* 00BC0C 7000B00C 5612FFFB */ bnel $s0, $s2, .L7000AFFC +/* 00BC10 7000B010 02002025 */ move $a0, $s0 +/* 00BC14 7000B014 02201025 */ move $v0, $s1 +.L7000B018: +/* 00BC18 7000B018 2673FFFF */ addiu $s3, $s3, -1 +/* 00BC1C 7000B01C 1620FFE7 */ bnez $s1, .L7000AFBC +/* 00BC20 7000B020 2631FFFF */ addiu $s1, $s1, -1 +/* 00BC24 7000B024 8FBF0024 */ lw $ra, 0x24($sp) +/* 00BC28 7000B028 8FB00014 */ lw $s0, 0x14($sp) +/* 00BC2C 7000B02C 8FB10018 */ lw $s1, 0x18($sp) +/* 00BC30 7000B030 8FB2001C */ lw $s2, 0x1c($sp) +/* 00BC34 7000B034 8FB30020 */ lw $s3, 0x20($sp) +/* 00BC38 7000B038 03E00008 */ jr $ra +/* 00BC3C 7000B03C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void set_final_debug_text_positions(s32 xadjust,s32 yadjust) +{ + debug_menu_x_text_pos = xadjust + debug_menu_x_pos_offset; + debug_menu_y_text_pos = yadjust + debug_menu_y_pos_offset; +} +#else +GLOBAL_ASM( +.text +glabel set_final_debug_text_positions +/* 00BC40 7000B040 3C0E8002 */ lui $t6, %hi(debug_menu_x_pos_offset) +/* 00BC44 7000B044 8DCE4FA0 */ lw $t6, %lo(debug_menu_x_pos_offset)($t6) +/* 00BC48 7000B048 3C0F8002 */ lui $t7, %hi(debug_menu_y_pos_offset) +/* 00BC4C 7000B04C 8DEF4FA4 */ lw $t7, %lo(debug_menu_y_pos_offset)($t7) +/* 00BC50 7000B050 3C018002 */ lui $at, %hi(debug_menu_x_text_pos) +/* 00BC54 7000B054 008E2021 */ addu $a0, $a0, $t6 +/* 00BC58 7000B058 AC244FA8 */ sw $a0, %lo(debug_menu_x_text_pos)($at) +/* 00BC5C 7000B05C 3C018002 */ lui $at, %hi(debug_menu_y_text_pos) +/* 00BC60 7000B060 00AF2821 */ addu $a1, $a1, $t7 +/* 00BC64 7000B064 03E00008 */ jr $ra +/* 00BC68 7000B068 AC254FAC */ sw $a1, %lo(debug_menu_y_text_pos)($at) +) +#endif + + + + + + +void set_debug_text_color(s32 red,s32 blue,s32 green,s32 alpha) +{ + debug_text_color = red << 0x18 | blue << 0x10 | green << 8 | 0xffU - alpha; +} + + +void set_color_speedgraph(s32 red,s32 green,s32 blue,s32 alpha) +{ + speedgraph_color = red << 0x18 | green << 0x10 | blue << 8 | 0xffU - alpha; +} + + + + + +#ifdef NONMATCHING +void write_char_to_screen(u8 character) + +{ + short txtClipW; + short txtClipH; + int start_pos; + + txtClipW = get_video2_settings_txtClipW(); + start_pos = (int)txtClipW + -0xd; + if (start_pos < 0) { + start_pos = (int)txtClipW + -10; + } + txtClipH = get_video2_settings_txtClipH(); + if ((character == 0) || ((0x1f < character && (character < 0x7f)))) { + display_text_to_coord(debug_menu_x_text_pos,debug_menu_y_text_pos,character); + } + debug_menu_x_text_pos += 1; + if (((character == 0xd) || (character == 10)) || (start_pos >> 2 <= debug_menu_x_text_pos)) { + debug_menu_y_text_pos += 1; + debug_menu_x_text_pos = debug_menu_x_pos_offset; + if (((int)txtClipH + -10) / 7 <= debug_menu_y_text_pos) { + debug_menu_y_text_pos = debug_menu_y_pos_offset; + } + } +} +#else +GLOBAL_ASM( +.text +glabel write_char_to_screen +/* 00BCC4 7000B0C4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00BCC8 7000B0C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00BCCC 7000B0CC 0C001107 */ jal get_video2_settings_txtClipW +/* 00BCD0 7000B0D0 AFA40028 */ sw $a0, 0x28($sp) +/* 00BCD4 7000B0D4 244EFFF3 */ addiu $t6, $v0, -0xd +/* 00BCD8 7000B0D8 05C10003 */ bgez $t6, .L7000B0E8 +/* 00BCDC 7000B0DC 000E7883 */ sra $t7, $t6, 2 +/* 00BCE0 7000B0E0 25C10003 */ addiu $at, $t6, 3 +/* 00BCE4 7000B0E4 00017883 */ sra $t7, $at, 2 +.L7000B0E8: +/* 00BCE8 7000B0E8 0C00110B */ jal get_video2_settings_txtClipH +/* 00BCEC 7000B0EC AFAF0024 */ sw $t7, 0x24($sp) +/* 00BCF0 7000B0F0 2448FFF6 */ addiu $t0, $v0, -0xa +/* 00BCF4 7000B0F4 24010007 */ li $at, 7 +/* 00BCF8 7000B0F8 0101001A */ div $zero, $t0, $at +/* 00BCFC 7000B0FC 93A6002B */ lbu $a2, 0x2b($sp) +/* 00BD00 7000B100 00004012 */ mflo $t0 +/* 00BD04 7000B104 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) +/* 00BD08 7000B108 10C00005 */ beqz $a2, .L7000B120 +/* 00BD0C 7000B10C 00C01825 */ move $v1, $a2 +/* 00BD10 7000B110 28610020 */ slti $at, $v1, 0x20 +/* 00BD14 7000B114 1420000C */ bnez $at, .L7000B148 +/* 00BD18 7000B118 2861007F */ slti $at, $v1, 0x7f +/* 00BD1C 7000B11C 1020000A */ beqz $at, .L7000B148 +.L7000B120: +/* 00BD20 7000B120 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) +/* 00BD24 7000B124 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac +/* 00BD28 7000B128 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 +/* 00BD2C 7000B12C 8C440000 */ lw $a0, ($v0) +/* 00BD30 7000B130 8CE50000 */ lw $a1, ($a3) +/* 00BD34 7000B134 AFA3001C */ sw $v1, 0x1c($sp) +/* 00BD38 7000B138 0C002B74 */ jal display_text_to_coord +/* 00BD3C 7000B13C AFA80020 */ sw $t0, 0x20($sp) +/* 00BD40 7000B140 8FA3001C */ lw $v1, 0x1c($sp) +/* 00BD44 7000B144 8FA80020 */ lw $t0, 0x20($sp) +.L7000B148: +/* 00BD48 7000B148 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) +/* 00BD4C 7000B14C 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 +/* 00BD50 7000B150 8C590000 */ lw $t9, ($v0) +/* 00BD54 7000B154 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) +/* 00BD58 7000B158 2401000D */ li $at, 13 +/* 00BD5C 7000B15C 27290001 */ addiu $t1, $t9, 1 +/* 00BD60 7000B160 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac +/* 00BD64 7000B164 10610007 */ beq $v1, $at, .L7000B184 +/* 00BD68 7000B168 AC490000 */ sw $t1, ($v0) +/* 00BD6C 7000B16C 2401000A */ li $at, 10 +/* 00BD70 7000B170 10610004 */ beq $v1, $at, .L7000B184 +/* 00BD74 7000B174 8FAB0024 */ lw $t3, 0x24($sp) +/* 00BD78 7000B178 012B082A */ slt $at, $t1, $t3 +/* 00BD7C 7000B17C 5420000D */ bnezl $at, .L7000B1B4 +/* 00BD80 7000B180 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B184: +/* 00BD84 7000B184 8CED0000 */ lw $t5, ($a3) +/* 00BD88 7000B188 3C0C8002 */ lui $t4, %hi(debug_menu_x_pos_offset) +/* 00BD8C 7000B18C 8D8C4FA0 */ lw $t4, %lo(debug_menu_x_pos_offset)($t4) +/* 00BD90 7000B190 25AE0001 */ addiu $t6, $t5, 1 +/* 00BD94 7000B194 01C8082A */ slt $at, $t6, $t0 +/* 00BD98 7000B198 ACEE0000 */ sw $t6, ($a3) +/* 00BD9C 7000B19C 14200004 */ bnez $at, .L7000B1B0 +/* 00BDA0 7000B1A0 AC4C0000 */ sw $t4, ($v0) +/* 00BDA4 7000B1A4 3C188002 */ lui $t8, %hi(debug_menu_y_pos_offset) +/* 00BDA8 7000B1A8 8F184FA4 */ lw $t8, %lo(debug_menu_y_pos_offset)($t8) +/* 00BDAC 7000B1AC ACF80000 */ sw $t8, ($a3) +.L7000B1B0: +/* 00BDB0 7000B1B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B1B4: +/* 00BDB4 7000B1B4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00BDB8 7000B1B8 03E00008 */ jr $ra +/* 00BDBC 7000B1BC 00000000 */ nop +) +#endif + + + + +void debug_printcharatpos(int x,int y, u8 character) +{ + set_final_debug_text_positions(x,y); + write_char_to_screen(character); +} + + + +#ifdef NONMATCHING +void write_string_stdout(void *arg0) +{ + void *temp_s1; + s32 phi_s0; + void *phi_s1; + + phi_s0 = *arg0; + phi_s1 = arg0; + if (*arg0 != 0) + { +loop_1: + temp_s1 = phi_s1 + 1; + write_char_to_screen(phi_s0 & 0xff); + phi_s0 = *temp_s1; + phi_s1 = temp_s1; + if (*temp_s1 != 0) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel write_string_stdout +/* 00BDE8 7000B1E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00BDEC 7000B1EC AFBF001C */ sw $ra, 0x1c($sp) +/* 00BDF0 7000B1F0 AFB10018 */ sw $s1, 0x18($sp) +/* 00BDF4 7000B1F4 AFB00014 */ sw $s0, 0x14($sp) +/* 00BDF8 7000B1F8 90900000 */ lbu $s0, ($a0) +/* 00BDFC 7000B1FC 00808825 */ move $s1, $a0 +/* 00BE00 7000B200 12000006 */ beqz $s0, .L7000B21C +/* 00BE04 7000B204 320400FF */ andi $a0, $s0, 0xff +.L7000B208: +/* 00BE08 7000B208 0C002C31 */ jal write_char_to_screen +/* 00BE0C 7000B20C 26310001 */ addiu $s1, $s1, 1 +/* 00BE10 7000B210 92300000 */ lbu $s0, ($s1) +/* 00BE14 7000B214 5600FFFC */ bnezl $s0, .L7000B208 +/* 00BE18 7000B218 320400FF */ andi $a0, $s0, 0xff +.L7000B21C: +/* 00BE1C 7000B21C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00BE20 7000B220 8FB00014 */ lw $s0, 0x14($sp) +/* 00BE24 7000B224 8FB10018 */ lw $s1, 0x18($sp) +/* 00BE28 7000B228 03E00008 */ jr $ra +/* 00BE2C 7000B22C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void debug_text_related(void *arg2) +{ + void *temp_s1; + s32 phi_s0; + void *phi_s1; + + set_final_debug_text_positions(); + phi_s0 = *arg2; + phi_s1 = arg2; + if (*arg2 != 0) + { +loop_1: + temp_s1 = phi_s1 + 1; + write_char_to_screen(phi_s0 & 0xff); + phi_s0 = *temp_s1; + phi_s1 = temp_s1; + if (*temp_s1 != 0) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel debug_text_related +/* 00BE30 7000B230 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00BE34 7000B234 AFBF001C */ sw $ra, 0x1c($sp) +/* 00BE38 7000B238 AFB10018 */ sw $s1, 0x18($sp) +/* 00BE3C 7000B23C 00C08825 */ move $s1, $a2 +/* 00BE40 7000B240 0C002C10 */ jal set_final_debug_text_positions +/* 00BE44 7000B244 AFB00014 */ sw $s0, 0x14($sp) +/* 00BE48 7000B248 92300000 */ lbu $s0, ($s1) +/* 00BE4C 7000B24C 12000006 */ beqz $s0, .L7000B268 +/* 00BE50 7000B250 320400FF */ andi $a0, $s0, 0xff +.L7000B254: +/* 00BE54 7000B254 0C002C31 */ jal write_char_to_screen +/* 00BE58 7000B258 26310001 */ addiu $s1, $s1, 1 +/* 00BE5C 7000B25C 92300000 */ lbu $s0, ($s1) +/* 00BE60 7000B260 5600FFFC */ bnezl $s0, .L7000B254 +/* 00BE64 7000B264 320400FF */ andi $a0, $s0, 0xff +.L7000B268: +/* 00BE68 7000B268 8FBF001C */ lw $ra, 0x1c($sp) +/* 00BE6C 7000B26C 8FB00014 */ lw $s0, 0x14($sp) +/* 00BE70 7000B270 8FB10018 */ lw $s1, 0x18($sp) +/* 00BE74 7000B274 03E00008 */ jr $ra +/* 00BE78 7000B278 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void *read_screen_display_block_and_write_chars(void *arg0) +{ + s32 sp40; + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a1; + s32 temp_a1_2; + s32 temp_a2; + s32 temp_s1; + s32 temp_s3; + s32 temp_s5; + s32 temp_t0; + s32 temp_v0; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + s32 temp_v1_4; + void *temp_a1_3; + void *temp_s0; + void *temp_s0_2; + void *temp_t5; + void *temp_t8; + void *temp_v0_2; + void *phi_a0; + s32 phi_a2; + s32 phi_a1; + s32 phi_t0; + s32 phi_a2_2; + void *phi_s1; + void *phi_s2; + s32 phi_s4; + void *phi_s0; + void *phi_s0_2; + s32 phi_s1_2; + s32 phi_s5; + void *phi_s0_3; + void *phi_s1_3; + void *phi_s1_4; + s32 phi_s4_2; + s32 phi_s4_3; + + phi_t0 = 0; + phi_a2 = -1; + phi_s1_4 = arg0; +loop_1: + temp_a1 = 0x80020000 + 0x5030; + phi_a0 = phi_t0 + temp_a1; + phi_a1 = temp_a1; +loop_2: + temp_a1_2 = phi_a1 + 0x46; + temp_v1 = phi_a0->unk1; + phi_a2_2 = phi_a2; + phi_s1 = phi_s1_4; + if (phi_a0->unk0 != 0) + { + phi_a2_2 = phi_a2; + phi_s1_3 = phi_s1_4; + if (temp_v1 != phi_a2) + { + phi_a2_2 = temp_v1; + phi_s1_3 = phi_s1_4 + 0x10; + } + phi_s1 = phi_s1_3 + 0x18; + } + phi_a0 = phi_a0 + 0x46; + phi_a2 = phi_a2_2; + phi_a1 = temp_a1_2; + phi_s1_4 = phi_s1; + if (temp_a1_2 != &stdout_primary_color_table) + { + goto loop_2; + } + temp_t0 = phi_t0 + 2; + phi_t0 = temp_t0; + phi_a2 = phi_a2_2; + phi_s1_4 = phi_s1; + if (temp_t0 < 0x46) + { + goto loop_1; + } + temp_a0 = phi_s1 - arg0; + temp_v1_2 = num_microcode_cmds_that_fit(arg0, temp_a1_2, phi_a2_2, &stdout_primary_color_table) + -0x800; + if (temp_a0 <= 0) + { + return arg0; + } + if (temp_v1_2 <= 0) + { + D_800268B8 = 0; +block_15: + } + else + { + if (temp_v1_2 < temp_a0) + { + D_800268B8 = (s32) ((s32) (temp_v1_2 * 0xff) / temp_a0); + } + else + { + D_800268B8 = 0x100; + goto block_15; + } + } + arg0->unk0 = 0x6000000; + arg0->unk4 = &stdout_display_list; + sp40 = 0; + phi_s5 = 0; + phi_s4 = -1; + phi_s0 = arg0 + 8; +loop_17: + phi_s2 = sp40 + &stdout_debug_menu_screen_buffer; + phi_s1_2 = 0; +loop_18: + temp_s3 = phi_s2->unk0; + temp_v1_3 = phi_s2->unk1; + phi_s0_3 = phi_s0; + phi_s4_2 = phi_s4; + if (temp_s3 != 0) + { + temp_v0 = temp_v1_3 * 8; + phi_s0_2 = phi_s0; + phi_s4_3 = phi_s4; + if (temp_v1_3 != phi_s4) + { + temp_t5 = &stdout_primary_color_table + temp_v0; + temp_t8 = &stdout_environment_color_table + temp_v0; + temp_s0 = phi_s0 + 0x10; + temp_s0->unk-10 = (?32) temp_t5->unk0; + temp_s0->unk-C = (?32) temp_t5->unk4; + temp_s0->unk-8 = (?32) temp_t8->unk0; + temp_s0->unk-4 = (?32) temp_t8->unk4; + phi_s0_2 = temp_s0; + phi_s4_3 = temp_v1_3; + } + phi_s0_3 = phi_s0_2; + phi_s4_2 = phi_s4_3; + if ((u32) (get_random_value() & 0xff) < (u32) D_800268B8) + { + temp_v0_2 = phi_s0_2; + phi_s0_3 = phi_s0_2; + phi_s4_2 = phi_s4_3; + if (num_microcode_cmds_that_fit(phi_s0_2) >= 0x400) + { + temp_v1_4 = phi_s1_2 * 0x10; + temp_a0_2 = ((phi_s5 * 8) - phi_s5) * 4; + temp_a2 = temp_s3 + -0x20; + temp_s0_2 = phi_s0_2 + 8; + temp_a1_3 = temp_s0_2; + temp_v0_2->unk0 = (s32) (((((temp_v1_4 + 0x10) & 0xfff) << 0xc) | 0xe4000000) | ((temp_a0_2 + 0x1c) & 0xfff)); + temp_v0_2->unk4 = (s32) (((temp_v1_4 & 0xfff) << 0xc) | (temp_a0_2 & 0xfff)); + temp_s0_2 = temp_s0_2 + 8; + temp_a1_3->unk0 = 0xb4000000; + temp_a1_3->unk4 = (s32) (((temp_a2 & 0x1f) << 0x17) | (((temp_a2 >> 5) * 0xe0) & 0xffff)); + temp_s0_2->unk0 = 0xb3000000; + temp_s0_2->unk4 = 0x4000400; + phi_s0_3 = temp_s0_2 + 8; + phi_s4_2 = phi_s4_3; + } + } + } + temp_s1 = phi_s1_2 + 1; + phi_s2 = phi_s2 + 0x46; + phi_s4 = phi_s4_2; + phi_s0 = phi_s0_3; + phi_s1_2 = temp_s1; + if (temp_s1 != 0x50) + { + goto loop_18; + } + temp_s5 = phi_s5 + 1; + sp40 = (s32) (sp40 + 2); + phi_s5 = temp_s5; + phi_s4 = phi_s4_2; + phi_s0 = phi_s0_3; + if (temp_s5 != 0x23) + { + goto loop_17; + } + return phi_s0_3; +} +#else +GLOBAL_ASM( +.text +glabel read_screen_display_block_and_write_chars +/* 00BE7C 7000B27C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 00BE80 7000B280 AFB5002C */ sw $s5, 0x2c($sp) +/* 00BE84 7000B284 AFB1001C */ sw $s1, 0x1c($sp) +/* 00BE88 7000B288 AFB00018 */ sw $s0, 0x18($sp) +/* 00BE8C 7000B28C 3C078002 */ lui $a3, %hi(stdout_primary_color_table) +/* 00BE90 7000B290 00808025 */ move $s0, $a0 +/* 00BE94 7000B294 AFBF003C */ sw $ra, 0x3c($sp) +/* 00BE98 7000B298 AFBE0038 */ sw $fp, 0x38($sp) +/* 00BE9C 7000B29C AFB70034 */ sw $s7, 0x34($sp) +/* 00BEA0 7000B2A0 AFB60030 */ sw $s6, 0x30($sp) +/* 00BEA4 7000B2A4 AFB40028 */ sw $s4, 0x28($sp) +/* 00BEA8 7000B2A8 AFB30024 */ sw $s3, 0x24($sp) +/* 00BEAC 7000B2AC AFB20020 */ sw $s2, 0x20($sp) +/* 00BEB0 7000B2B0 00808825 */ move $s1, $a0 +/* 00BEB4 7000B2B4 2406FFFF */ li $a2, -1 +/* 00BEB8 7000B2B8 24E76610 */ addiu $a3, %lo(stdout_primary_color_table) # addiu $a3, $a3, 0x6610 +/* 00BEBC 7000B2BC 0000A825 */ move $s5, $zero +/* 00BEC0 7000B2C0 00004025 */ move $t0, $zero +.L7000B2C4: +/* 00BEC4 7000B2C4 3C0E8002 */ lui $t6, %hi(stdout_debug_menu_screen_buffer) +/* 00BEC8 7000B2C8 25C55030 */ addiu $a1, $t6, %lo(stdout_debug_menu_screen_buffer) +/* 00BECC 7000B2CC 01052021 */ addu $a0, $t0, $a1 +.L7000B2D0: +/* 00BED0 7000B2D0 90820000 */ lbu $v0, ($a0) +/* 00BED4 7000B2D4 24A50046 */ addiu $a1, $a1, 0x46 +/* 00BED8 7000B2D8 90830001 */ lbu $v1, 1($a0) +/* 00BEDC 7000B2DC 10400006 */ beqz $v0, .L7000B2F8 +/* 00BEE0 7000B2E0 00000000 */ nop +/* 00BEE4 7000B2E4 50660004 */ beql $v1, $a2, .L7000B2F8 +/* 00BEE8 7000B2E8 26310018 */ addiu $s1, $s1, 0x18 +/* 00BEEC 7000B2EC 26310010 */ addiu $s1, $s1, 0x10 +/* 00BEF0 7000B2F0 00603025 */ move $a2, $v1 +/* 00BEF4 7000B2F4 26310018 */ addiu $s1, $s1, 0x18 +.L7000B2F8: +/* 00BEF8 7000B2F8 14A7FFF5 */ bne $a1, $a3, .L7000B2D0 +/* 00BEFC 7000B2FC 24840046 */ addiu $a0, $a0, 0x46 +/* 00BF00 7000B300 25080002 */ addiu $t0, $t0, 2 +/* 00BF04 7000B304 29010046 */ slti $at, $t0, 0x46 +/* 00BF08 7000B308 1420FFEE */ bnez $at, .L7000B2C4 +/* 00BF0C 7000B30C 00000000 */ nop +/* 00BF10 7000B310 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00BF14 7000B314 02002025 */ move $a0, $s0 +/* 00BF18 7000B318 02302023 */ subu $a0, $s1, $s0 +/* 00BF1C 7000B31C 1C800003 */ bgtz $a0, .L7000B32C +/* 00BF20 7000B320 2443F800 */ addiu $v1, $v0, -0x800 +/* 00BF24 7000B324 10000080 */ b .L7000B528 +/* 00BF28 7000B328 02001025 */ move $v0, $s0 +.L7000B32C: +/* 00BF2C 7000B32C 1C600004 */ bgtz $v1, .L7000B340 +/* 00BF30 7000B330 2414FFFF */ li $s4, -1 +/* 00BF34 7000B334 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF38 7000B338 10000017 */ b .L7000B398 +/* 00BF3C 7000B33C AC2068B8 */ sw $zero, %lo(D_800268B8)($at) +.L7000B340: +/* 00BF40 7000B340 0064082A */ slt $at, $v1, $a0 +/* 00BF44 7000B344 10200011 */ beqz $at, .L7000B38C +/* 00BF48 7000B348 00037A00 */ sll $t7, $v1, 8 +/* 00BF4C 7000B34C 01E37823 */ subu $t7, $t7, $v1 +/* 00BF50 7000B350 01E4001A */ div $zero, $t7, $a0 +/* 00BF54 7000B354 14800002 */ bnez $a0, .L7000B360 +/* 00BF58 7000B358 00000000 */ nop +/* 00BF5C 7000B35C 0007000D */ break 7 +.L7000B360: +/* 00BF60 7000B360 2401FFFF */ li $at, -1 +/* 00BF64 7000B364 14810004 */ bne $a0, $at, .L7000B378 +/* 00BF68 7000B368 3C018000 */ lui $at, 0x8000 +/* 00BF6C 7000B36C 15E10002 */ bne $t7, $at, .L7000B378 +/* 00BF70 7000B370 00000000 */ nop +/* 00BF74 7000B374 0006000D */ break 6 +.L7000B378: +/* 00BF78 7000B378 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF7C 7000B37C 0000C012 */ mflo $t8 +/* 00BF80 7000B380 AC3868B8 */ sw $t8, %lo(D_800268B8)($at) +/* 00BF84 7000B384 10000005 */ b .L7000B39C +/* 00BF88 7000B388 02001025 */ move $v0, $s0 +.L7000B38C: +/* 00BF8C 7000B38C 24190100 */ li $t9, 256 +/* 00BF90 7000B390 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF94 7000B394 AC3968B8 */ sw $t9, %lo(D_800268B8)($at) +.L7000B398: +/* 00BF98 7000B398 02001025 */ move $v0, $s0 +.L7000B39C: +/* 00BF9C 7000B39C 3C0A8002 */ lui $t2, %hi(stdout_display_list) +/* 00BFA0 7000B3A0 254A4FB0 */ addiu $t2, %lo(stdout_display_list) # addiu $t2, $t2, 0x4fb0 +/* 00BFA4 7000B3A4 3C090600 */ lui $t1, 0x600 +/* 00BFA8 7000B3A8 AC490000 */ sw $t1, ($v0) +/* 00BFAC 7000B3AC AC4A0004 */ sw $t2, 4($v0) +/* 00BFB0 7000B3B0 3C1E8002 */ lui $fp, %hi(stdout_environment_color_table) +/* 00BFB4 7000B3B4 3C178002 */ lui $s7, %hi(stdout_primary_color_table) +/* 00BFB8 7000B3B8 26100008 */ addiu $s0, $s0, 8 +/* 00BFBC 7000B3BC 26F76610 */ addiu $s7, %lo(stdout_primary_color_table) # addiu $s7, $s7, 0x6610 +/* 00BFC0 7000B3C0 27DE6710 */ addiu $fp, %lo(stdout_environment_color_table) # addiu $fp, $fp, 0x6710 +/* 00BFC4 7000B3C4 AFA00040 */ sw $zero, 0x40($sp) +/* 00BFC8 7000B3C8 0000A825 */ move $s5, $zero +/* 00BFCC 7000B3CC 24160050 */ li $s6, 80 +.L7000B3D0: +/* 00BFD0 7000B3D0 8FAB0040 */ lw $t3, 0x40($sp) +/* 00BFD4 7000B3D4 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) +/* 00BFD8 7000B3D8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 +/* 00BFDC 7000B3DC 00008825 */ move $s1, $zero +/* 00BFE0 7000B3E0 016C9021 */ addu $s2, $t3, $t4 +.L7000B3E4: +/* 00BFE4 7000B3E4 92530000 */ lbu $s3, ($s2) +/* 00BFE8 7000B3E8 92430001 */ lbu $v1, 1($s2) +/* 00BFEC 7000B3EC 52600045 */ beql $s3, $zero, .L7000B504 +/* 00BFF0 7000B3F0 26310001 */ addiu $s1, $s1, 1 +/* 00BFF4 7000B3F4 1074000D */ beq $v1, $s4, .L7000B42C +/* 00BFF8 7000B3F8 000310C0 */ sll $v0, $v1, 3 +/* 00BFFC 7000B3FC 02E26821 */ addu $t5, $s7, $v0 +/* 00C000 7000B400 8DA10000 */ lw $at, ($t5) +/* 00C004 7000B404 03C2C021 */ addu $t8, $fp, $v0 +/* 00C008 7000B408 26100010 */ addiu $s0, $s0, 0x10 +/* 00C00C 7000B40C AE01FFF0 */ sw $at, -0x10($s0) +/* 00C010 7000B410 8DAF0004 */ lw $t7, 4($t5) +/* 00C014 7000B414 0060A025 */ move $s4, $v1 +/* 00C018 7000B418 AE0FFFF4 */ sw $t7, -0xc($s0) +/* 00C01C 7000B41C 8F010000 */ lw $at, ($t8) +/* 00C020 7000B420 AE01FFF8 */ sw $at, -8($s0) +/* 00C024 7000B424 8F090004 */ lw $t1, 4($t8) +/* 00C028 7000B428 AE09FFFC */ sw $t1, -4($s0) +.L7000B42C: +/* 00C02C 7000B42C 0C002914 */ jal get_random_value +/* 00C030 7000B430 00000000 */ nop +/* 00C034 7000B434 3C0B8002 */ lui $t3, %hi(D_800268B8) +/* 00C038 7000B438 8D6B68B8 */ lw $t3, %lo(D_800268B8)($t3) +/* 00C03C 7000B43C 304A00FF */ andi $t2, $v0, 0xff +/* 00C040 7000B440 014B082B */ sltu $at, $t2, $t3 +/* 00C044 7000B444 5020002F */ beql $at, $zero, .L7000B504 +/* 00C048 7000B448 26310001 */ addiu $s1, $s1, 1 +/* 00C04C 7000B44C 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00C050 7000B450 02002025 */ move $a0, $s0 +/* 00C054 7000B454 28410400 */ slti $at, $v0, 0x400 +/* 00C058 7000B458 14200029 */ bnez $at, .L7000B500 +/* 00C05C 7000B45C 02001025 */ move $v0, $s0 +/* 00C060 7000B460 00111900 */ sll $v1, $s1, 4 +/* 00C064 7000B464 001520C0 */ sll $a0, $s5, 3 +/* 00C068 7000B468 00952023 */ subu $a0, $a0, $s5 +/* 00C06C 7000B46C 246C0010 */ addiu $t4, $v1, 0x10 +/* 00C070 7000B470 318E0FFF */ andi $t6, $t4, 0xfff +/* 00C074 7000B474 00042080 */ sll $a0, $a0, 2 +/* 00C078 7000B478 306A0FFF */ andi $t2, $v1, 0xfff +/* 00C07C 7000B47C 000A5B00 */ sll $t3, $t2, 0xc +/* 00C080 7000B480 000E6B00 */ sll $t5, $t6, 0xc +/* 00C084 7000B484 2499001C */ addiu $t9, $a0, 0x1c +/* 00C088 7000B488 308C0FFF */ andi $t4, $a0, 0xfff +/* 00C08C 7000B48C 3C01E400 */ lui $at, 0xe400 +/* 00C090 7000B490 2666FFE0 */ addiu $a2, $s3, -0x20 +/* 00C094 7000B494 00065143 */ sra $t2, $a2, 5 +/* 00C098 7000B498 01A17825 */ or $t7, $t5, $at +/* 00C09C 7000B49C 016C7025 */ or $t6, $t3, $t4 +/* 00C0A0 7000B4A0 33380FFF */ andi $t8, $t9, 0xfff +/* 00C0A4 7000B4A4 01F84825 */ or $t1, $t7, $t8 +/* 00C0A8 7000B4A8 000A58C0 */ sll $t3, $t2, 3 +/* 00C0AC 7000B4AC 016A5823 */ subu $t3, $t3, $t2 +/* 00C0B0 7000B4B0 26100008 */ addiu $s0, $s0, 8 +/* 00C0B4 7000B4B4 02002825 */ move $a1, $s0 +/* 00C0B8 7000B4B8 000B5940 */ sll $t3, $t3, 5 +/* 00C0BC 7000B4BC AC490000 */ sw $t1, ($v0) +/* 00C0C0 7000B4C0 30D8001F */ andi $t8, $a2, 0x1f +/* 00C0C4 7000B4C4 AC4E0004 */ sw $t6, 4($v0) +/* 00C0C8 7000B4C8 00184DC0 */ sll $t1, $t8, 0x17 +/* 00C0CC 7000B4CC 316CFFFF */ andi $t4, $t3, 0xffff +/* 00C0D0 7000B4D0 26100008 */ addiu $s0, $s0, 8 +/* 00C0D4 7000B4D4 3C0DB400 */ lui $t5, 0xb400 +/* 00C0D8 7000B4D8 ACAD0000 */ sw $t5, ($a1) +/* 00C0DC 7000B4DC 02003825 */ move $a3, $s0 +/* 00C0E0 7000B4E0 012C7025 */ or $t6, $t1, $t4 +/* 00C0E4 7000B4E4 ACAE0004 */ sw $t6, 4($a1) +/* 00C0E8 7000B4E8 3C190400 */ lui $t9, (0x04000400 >> 16) # lui $t9, 0x400 +/* 00C0EC 7000B4EC 37390400 */ ori $t9, (0x04000400 & 0xFFFF) # ori $t9, $t9, 0x400 +/* 00C0F0 7000B4F0 3C0DB300 */ lui $t5, 0xb300 +/* 00C0F4 7000B4F4 ACED0000 */ sw $t5, ($a3) +/* 00C0F8 7000B4F8 ACF90004 */ sw $t9, 4($a3) +/* 00C0FC 7000B4FC 26100008 */ addiu $s0, $s0, 8 +.L7000B500: +/* 00C100 7000B500 26310001 */ addiu $s1, $s1, 1 +.L7000B504: +/* 00C104 7000B504 1636FFB7 */ bne $s1, $s6, .L7000B3E4 +/* 00C108 7000B508 26520046 */ addiu $s2, $s2, 0x46 +/* 00C10C 7000B50C 8FAF0040 */ lw $t7, 0x40($sp) +/* 00C110 7000B510 26B50001 */ addiu $s5, $s5, 1 +/* 00C114 7000B514 24010023 */ li $at, 35 +/* 00C118 7000B518 25F80002 */ addiu $t8, $t7, 2 +/* 00C11C 7000B51C 16A1FFAC */ bne $s5, $at, .L7000B3D0 +/* 00C120 7000B520 AFB80040 */ sw $t8, 0x40($sp) +/* 00C124 7000B524 02001025 */ move $v0, $s0 +.L7000B528: +/* 00C128 7000B528 8FBF003C */ lw $ra, 0x3c($sp) +/* 00C12C 7000B52C 8FB00018 */ lw $s0, 0x18($sp) +/* 00C130 7000B530 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C134 7000B534 8FB20020 */ lw $s2, 0x20($sp) +/* 00C138 7000B538 8FB30024 */ lw $s3, 0x24($sp) +/* 00C13C 7000B53C 8FB40028 */ lw $s4, 0x28($sp) +/* 00C140 7000B540 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C144 7000B544 8FB60030 */ lw $s6, 0x30($sp) +/* 00C148 7000B548 8FB70034 */ lw $s7, 0x34($sp) +/* 00C14C 7000B54C 8FBE0038 */ lw $fp, 0x38($sp) +/* 00C150 7000B550 03E00008 */ jr $ra +/* 00C154 7000B554 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif diff --git a/src/debugmenu.h b/src/debugmenu.h new file mode 100644 index 0000000..8e4b637 --- /dev/null +++ b/src/debugmenu.h @@ -0,0 +1,7 @@ +#ifndef _DEBUGMENU_H_ +#define _DEBUGMENU_H_ + +#include +void blank_debug_buffer_chars(void); +void debugmenuInit_REMOVED(void); +#endif diff --git a/src/decompressbuffer.c b/src/decompressbuffer.c new file mode 100644 index 0000000..cc9d6ad --- /dev/null +++ b/src/decompressbuffer.c @@ -0,0 +1,3 @@ +#include "ultra64.h" + +u8 _decompressBuffer[0xAB400]; diff --git a/src/game/bg.c b/src/game/bg.c new file mode 100644 index 0000000..01f93c4 --- /dev/null +++ b/src/game/bg.c @@ -0,0 +1,12195 @@ +#include "ultra64.h" +#include "game/bg.h" + +// bss +//CODE.bss:8007BF90 +s32 ptr_bg_data; +//CODE.bss:8007BF94 +s32 ptr_clipping; +//CODE.bss:8007BF98 +s32 dword_CODE_bss_8007BF98; +/* +CODE.bss:8007BF9C .align 4 +*/ +//CODE.bss:8007BFA0 +char list_visible_rooms_in_cur_global_vis_packet[0x98]; +//CODE.bss:8007C038 +s32 num_visible_rooms_in_cur_global_vis_packet; +/* +CODE.bss:8007C03C .align 4 +*/ +//CODE.bss:8007C040 +char dword_CODE_bss_8007C040[0x60]; +//CODE.bss:8007C0A0 +char dword_CODE_bss_8007C0A0[0x60]; +//CODE.bss:8007C100 +char dword_CODE_bss_8007C100[0x3E80]; +//CODE.bss:8007FF80 +s32 ptr_bgdata_portals; +//CODE.bss:8007FF84 +s32 ptr_bgdata_offsets; +//CODE.bss:8007FF88 +s32 dword_CODE_bss_8007FF88; +//CODE.bss:8007FF8C +s32 ptr_bgdata_room_fileposition_list; +//CODE.bss:8007FF90 +s32 dword_CODE_bss_8007FF90; +//CODE.bss:8007FF94 +s32 dword_CODE_bss_8007FF94; +//CODE.bss:8007FF98 +s32 dword_CODE_bss_8007FF98; + +//CODE.bss:8007FF9C +s32 dword_CODE_bss_8007FF9C; + +//CODE.bss:8007FFA0 +s32 dword_CODE_bss_8007FFA0; + +//CODE.bss:8007FFA4 +char dword_CODE_bss_8007FFA4; +char dword_CODE_bss_8007FFA5; +char dword_CODE_bss_8007FFA6; +char dword_CODE_bss_8007FFA7; +char dword_CODE_bss_8007FFA8[0x1658]; +//CODE.bss:80081600 +char dword_CODE_bss_80081600[0x18]; +//CODE.bss:80081618 +char table_for_portals[0xFA8]; + + +// data +//D:800413F0 +s32 *ptr_bg_c_debug_debug_notice_list = 0; +//D:800413F4 +f32 room_data_float1 = 1.0; +//D:800413F8 +f32 room_data_float2 = 1.0; +//D:800413FC +f32 D_800413FC = 1.0; +//D:80041400 +s32 D_80041400 = 1; +//D:80041404 +s32 D_80041404 = 1; +//D:80041408 +s32 D_80041408 = 1; +//D:8004140C +s32 D_8004140C = -1; +//D:80041410 +s32 D_80041410 = -1; + +//D:80041414 +s_room_info array_room_info[0x96] = {0}; + +//D:800442F4 +s32 MaxNumRooms = 0x96 ; +//D:800442F8 +s32 D_800442F8 = 0; +//D:800442FC +s32 D_800442FC[] = { + 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 +}; +//D:800443C4 +s32 D_800443C4[] = { + 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 +}; + +//D:8004448C +struct levelentry levelinfotable[] = { + {LEVELID_BUNKER1, "bg/bg_sev_all_p.seg", "Tbg_sev_all_p_stanZ", 0.53931433, 1.0, 23.148148}, + {LEVELID_SILO, "bg/bg_silo_all_p.seg", "Tbg_silo_all_p_stanZ", 0.47256002, 1.0, 29.069}, + {LEVELID_STATUE, "bg/bg_stat_all_p.seg", "Tbg_stat_all_p_stanZ", 0.107202865, 1.0, 0.0801}, + {LEVELID_CONTROL, "bg/bg_arec_all_p.seg", "Tbg_arec_all_p_stanZ", 0.49886572, 1.0, 80.645164}, + {LEVELID_ARCHIVES, "bg/bg_arch_all_p.seg", "Tbg_arch_all_p_stanZ", 0.50678575, 1.0, 54.347824}, + {LEVELID_TRAIN, "bg/bg_tra_all_p.seg", "Tbg_tra_all_p_stanZ", 0.15019713, 1.0, 19.53125}, + {LEVELID_FRIGATE, "bg/bg_dest_all_p.seg", "Tbg_dest_all_p_stanZ", 0.44757429, 1.0, 36.764706}, + {LEVELID_BUNKER2, "bg/bg_sevb_all_p.seg", "Tbg_sevb_all_p_stanZ", 0.53931433, 1.0, 23.148148}, + {LEVELID_AZTEC, "bg/bg_azt_all_p.seg", "Tbg_azt_all_p_stanZ", 0.35300568, 1.0, 52.083332}, + {LEVELID_STREETS, "bg/bg_pete_all_p.seg", "Tbg_pete_all_p_stanZ", 0.34187999, 1.0, 42.372883}, + {LEVELID_DEPOT, "bg/bg_depo_all_p.seg", "Tbg_depo_all_p_stanZ", 0.21847887, 1.0, 17.605633}, + {LEVELID_COMPLEX, "bg/bg_ref_all_p.seg", "Tbg_ref_all_p_stanZ", 0.94285715, 1.0, 37.878788}, + {LEVELID_EGYPT, "bg/bg_cryp_all_p.seg", "Tbg_cryp_all_p_stanZ", 0.25608, 1.0, 23.584906}, + {LEVELID_DAM, "bg/bg_dam_all_p.seg", "Tbg_dam_all_p_stanZ", 0.23363999, 0.2, 100.0}, + {LEVELID_FACILITY, "bg/bg_ark_all_p.seg", "Tbg_ark_all_p_stanZ", 1.20648, 1.0, 64.102562}, + {LEVELID_RUNWAY, "bg/bg_run_all_p.seg", "Tbg_run_all_p_stanZ", 0.089571431, 1.0, 4.5537338}, + {LEVELID_SURFACE, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975}, + {LEVELID_JUNGLE, "bg/bg_jun_all_p.seg", "Tbg_jun_all_p_stanZ", 0.094662853, 1.0, 6.6844921}, + {LEVELID_TEMPLE, "bg/bg_dish_all_p.seg", "Tbg_dish_all_p_stanZ", 0.47142857, 1.0, 147.05882}, + {LEVELID_CAVERNS, "bg/bg_cave_all_p.seg", "Tbg_cave_all_p_stanZ", 0.26824287, 1.0, 13.44086}, + {LEVELID_CITADEL, "bg/bg_cat_all_p.seg", "Tbg_cat_all_p_stanZ", 0.76852286, 1.0, 38.461536}, + {LEVELID_CRADLE, "bg/bg_crad_all_p.seg", "Tbg_crad_all_p_stanZ", 0.23571429, 1.0, 43.103451}, + {LEVELID_SHO, "bg/bg_sho_all_p.seg", "Tbg_sho_all_p_stanZ", 0.528, 1.0, 21.18644}, + {LEVELID_SURFACE2, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975}, + {LEVELID_ELD, "bg/bg_eld_all_p.seg", "Tbg_eld_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_BASEMENT, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_STACK, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_LUE, "bg/bg_lue_all_p.seg", "Tbg_lue_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LIBRARY, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_RIT, "bg/bg_rit_all_p.seg", "Tbg_rit_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_CAVES, "bg/bg_oat_all_p.seg", "Tbg_oat_all_p_stanZ", 0.14142857, 1.0, 10.123456}, + {LEVELID_EAR, "bg/bg_ear_all_p.seg", "Tbg_ear_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LEE, "bg/bg_lee_all_p.seg", "Tbg_lee_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LIP, "bg/bg_lip_all_p.seg", "Tbg_lip_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_CUBA, "bg/bg_len_all_p.seg", "Tbg_len_all_p_stanZ", 0.094662853, 1.0, 6.6844921}, + {LEVELID_WAX, "bg/bg_wax_all_p.seg", "Tbg_wax_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_PAM, "bg/bg_pam_all_p.seg", "Tbg_pam_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_MAX, "bg/bgx.seg", "TbgxZ", 0.94285715, 1.0, 1.0} +}; + +//D:8004481C +u32 D_8004481C[] = {0x1000100, 0}; +//D:80044824 +u32 D_80044824[] = {0x32C2E32, 0x373E3F4E, 0x56595D72, 0x76797AFF, 0x11003AFF}; +//D:80044838 +s32 current_room_maybe = 1; +//D:8004483C +s32 NumberOfRoomsDrawn = 0; +//back for now to build till rom is compiling and this can be determined +//D:80044840 +u32 GlobalLight[] = {0x96969600, 0x96969600, 0xFFFFFF00, 0xFFFFFF00, 0x4D4D2E00, 0}; +//Lights1 GlobalLight = gdSPDefLights1( +// 150,150,150 /* ambient color grey */ //D:80044840 +// 255,255,255,77,77,46 /* white light from the upper west-south-west (42 up, 244') */ //D:80044848 +//); +// OR +//Lights1 GlobalLight = { 255,255,255, 0xff, /* diffuse */ +// 77,77,46, 0, /* direction */ +// 150,150,150 , 0xff /* ambient */ +//}; //to be honest, while this looks simpler but Im confused at the order... +// Light has Ambient first then directional, its stored in mem this way too, so why is this declaired diffuse then ambient (taken from topgun.c) +//At the end of the day though, whichever is the same as bin should be used, even if the first is as SDK wants (Def Lights) + + +//D:80044858 +s32 D_80044858 = 0; +//D:8004485C +s32 D_8004485C = 1; +//D:80044860 +s32 D_80044860 = 0; +//D:80044864 +s32 D_80044864 = 0; +//D:80044868 +s32 D_80044868 = 0x7FFF; +//D:8004486C +s32 D_8004486C = 0x7FFF; +//D:80044870 +s32 D_80044870 = 0x7FFF; +//D:80044874 +s32 D_80044874 = 0xFFFF8000; +//D:80044878 +s32 D_80044878 = 0xFFFF8000; +//D:8004487C +s32 D_8004487C = 0xFFFF8000; +//D:80044880 +s32 D_80044880 = 0x7FFF; +//D:80044884 +s32 D_80044884 = 0x7FFF; +//D:80044888 +s32 D_80044888 = 0x7FFF; +//D:8004488C +s32 D_8004488C = 0xFFFF8000; +//D:80044890 +s32 D_80044890 = 0xFFFF8000; +//D:80044894 +s32 D_80044894 = 0xFFFF8000; +//D:80044898 +s32 D_80044898 = 0; +//D:8004489C +s32 D_8004489C = 0xF; +//D:800448A0 +s32 D_800448A0 = 0; +//D:800448A4 +s32 D_800448A4 = 0; +//D:800448A8 +s32 D_800448A8[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:800448F8 +s32 D_800448F8 = 0; +//D:800448FC +s32 current_visibility = 0; +//D:80044900 +s32 D_80044900 = 0; + +//D:80044904 +s32 D_80044904 = 0x7F7FFFFF; +//D:80044908 +s32 D_80044908 = 0x7F7FFFFF; +//D:8004490C +s32 D_8004490C = 0x7F7FFFFF; +//D:80044910 +s32 D_80044910 = 0xFF7FFFFF; +//D:80044914 +s32 D_80044914 = 0xFF7FFFFF; +//D:80044918 +s32 D_80044918 = 0xFF7FFFFF; +//D:8004491C +u32 D_8004491C = 0; +//D:80044920 +u32 D_80044920 = 0; +//D:80044924 +u32 D_80044924 = 0; + + +// RenderMode/Combiner Look-Up-Tables +// Looks for value on left, and replaces with correct value on right +// eg 0x0C192078 = C8112078, or had they used macros gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2 ) +// The reason for this LUT is to dynamicly change the rendermode and combiner to FOG / NoFog or any other setting they might have wanted to test during development as it applies during runtime +/*Reminder: + 1cycle combiners repeat both cycles gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) + ( - )* + , ( - )* + + G_CC_MODULATERGBA2 COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0 +*/ +/* +//New Defines to be added to gbi.h +#define ModulateRGB_EnvA TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define ModulateRGB_EnvA2 COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define ModulateRGBA_EnvA TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0 //custom combiner for Texture*triangle alpha +#define ModulateRGBA_EnvA2 COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0 //custom combiner for texture*triangle alpha +#define SHADE_EnvA 0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define TLRGB_ATile1 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0 +*/ +//D:80044928 +Gfx D_80044928[] = { + 0xFC26A004, 0x1F1093FF, 0xFC232DFF, 0xFFFFFE38, + //gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), + //gDPSetCombineLERP(TEXEL1, 0, COMBINED_ALPHA, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + 0x0,0x0 +}; + +//D:80044940 - Primary +Gfx D_80044940[] = { + 0xB900031D, 0x0C192078, 0xB900031D, 0xC8112078, + 0xB900031D, 0x0C182078, 0xB900031D, 0xC8102078, + 0xB900031D, 0x0C192D58, 0xB900031D, 0xC8112D58, + 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, + 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, + 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, + 0xB900031D, 0x0C192048, 0xB900031D, 0xC8112048, + 0xB900031D, 0x0C182048, 0xB900031D, 0xC8102048, + + /* + //Add FOG to all rendermodes + //Standard HiQuality Surface to Standard Fogable HiQuality Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2), + //Terrain to Fogable Terrain + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2), + //Standard DECAL to FOG DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2), + //Transparent DECAL to FOG Transparent DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + //Transparent Surface to FOG Transparent Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp + // See PGDLists\Transparent Textures.htm for more info + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + //Standard Z-Less OPA to Standard FOG Z-Less OPA + gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2), + //Z-Less OPA Terrain to Z-Less Fog OPA Terrain + gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), + */ +0x0, 0x0 +}; + +//D:800449C8 - Secondary +Gfx D_800449C8[] = { + 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, + 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, + 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, + 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, + 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, + 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, + 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, + 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, + 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, + 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, + 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, + 0xFCFFFFFF, 0xFFFE7838, 0xFCFFFFFF, 0xFFFE7A38, + 0xFCFFFFFF, 0xFFFE793C, 0xFCFFFFFF, 0xFFFE7B3D, + 0xFC26E404, 0x1F10FFFF, 0xFC26E404, 0x1F14FFFF, + /* + //Add FOG to Rendermodes + //Transparent DECAL to FOG Transparent DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + //Transparent Surface to FOG Transparent Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), + // This one is an oddball... its extra here AND is weird using Tile1 only for Alpha + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA) , gDPSetCombineMode(TLRGB_ATile1, ModulateRGB_EnvA2), + */ + 0x0, 0x0 +}; + +//D:80044AB0 +// Loaded once on first time entering level, only once ever +u64 D_80044AB0[] = { + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, + 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, + /* + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), + */ + 0x0 +}; + +//D:80044B58 +// Loaded once on first time entering level, only once ever +u64 D_80044B58[] = { + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, + 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, + /* + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA2), + */ + 0x0 +}; + +//D:80044C00 +u64 D_80044C00[] = { + 0xB900031D005049D8, 0xB900031D00553078, + 0xB900031D0C1849D8, 0xB900031D0C193078, + /* + //Transparent 1Cycle to BillBoard 1Cycle + gDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + //Transparent Surface to Billboard + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), + */ + 0x0 +}; + +//D:80044C28 +//water +u64 D_80044C28[] = { + 0xB900031D00552078, 0xB900031D00502078, + 0xB900031D0C192078, 0xB900031D0C182078, + /* + //1 Cycle Opa to Particle + gDPSetRenderMode(RM_AA_ZB_OPA_SURF, RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_AA_ZB_PCL_SURF, G_RM_AA_ZB_PCL_SURF2), + //2 cycle Opa to Particle + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_PCL_SURF2), + */ + 0x0 +}; + +//D:80044C50 +u64 D_80044C50[] = { + 0xB900031D0C1849D8, 0xB900031D0C184B50, + /* + //Transparent to Cloud (Saves AA - Stops Jaggies from appearing behind BillBoard) + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), + */ + 0x0 +}; + +//D:80044C68 +//(Wallet Bond - Main Menu) +u64 D_80044C68[] = { + 0xBA00140200000000, 0xBA00140200100000, //1Cycle --> 2Cycle + 0xB900031D00502048, 0xB900031D08D02048, + 0xFC127E24FFFFF9FC, 0xFC127FFFFFFFF838, + /* + //1 Cycle particle Surface to 2 Cycle colour + 1-a*Fog ??? + gsDPSetCycleType(G_CYC_2CYCLE), + gDPSetRenderMode(G_RM_AA_PCL_SURF, G_RM_AA_PCL_SURF2), gDPSetRenderMode(AA_EN | IM_RD | CVG_DST_CLAMP | ALPHA_CVG_SEL | ZMODE_OPA | GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA) | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2), gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), + */ + 0x0 +}; + +//D:80044CA0 +u64 D_80044CA0[] = { + 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, + 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, + 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, + 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, + 0xFCFFFFFFFFFE793C, 0xFC637EC6FFFFFBFD, + 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, + 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, + 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, + 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, + 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, + 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, + 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, + 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, + 0xFCFFFFFFFFFE7838, 0xFC637FFFFFFFFA38, + /* + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + */ + 0x0 +}; + +//D:80044D88 +s32 *ptrDynamic_CC_RM_LUT[] = { + &D_80044928, &D_80044940, &D_80044C00, &D_80044C28, &D_80044C50, + &D_800449C8, &D_80044AB0, &D_80044B58, &D_80044C68, &D_80044CA0 +}; +//D:80044DB0 +s32 D_80044DB0 = 0; + + +// rodata + + + + +void bgInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug"); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B37EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B37EC +/* 0E831C 7F0B37EC 3C028004 */ lui $v0, %hi(D_80044824) +/* 0E8320 7F0B37F0 3C038004 */ lui $v1, %hi(current_room_maybe) +/* 0E8324 7F0B37F4 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0E8328 7F0B37F8 3C078004 */ lui $a3, %hi(D_80041400) +/* 0E832C 7F0B37FC 24424824 */ addiu $v0, %lo(D_80044824) # addiu $v0, $v0, 0x4824 +/* 0E8330 7F0B3800 24634838 */ addiu $v1, %lo(current_room_maybe) # addiu $v1, $v1, 0x4838 +/* 0E8334 7F0B3804 24E71400 */ addiu $a3, %lo(D_80041400) # addiu $a3, $a3, 0x1400 +/* 0E8338 7F0B3808 2508FF80 */ addiu $t0, %lo(ptr_bgdata_portals) # addiu $t0, $t0, -0x80 +/* 0E833C 7F0B380C 240900FF */ li $t1, 255 +/* 0E8340 7F0B3810 8CEE0000 */ lw $t6, ($a3) +.L7F0B3814: +/* 0E8344 7F0B3814 904F0000 */ lbu $t7, ($v0) +/* 0E8348 7F0B3818 24420001 */ addiu $v0, $v0, 1 +/* 0E834C 7F0B381C 55CF001C */ bnel $t6, $t7, .L7F0B3890 +/* 0E8350 7F0B3820 904F0002 */ lbu $t7, 2($v0) +/* 0E8354 7F0B3824 90440000 */ lbu $a0, ($v0) +/* 0E8358 7F0B3828 90580001 */ lbu $t8, 1($v0) +.L7F0B382C: +/* 0E835C 7F0B382C 308500FF */ andi $a1, $a0, 0xff +/* 0E8360 7F0B3830 00A03025 */ move $a2, $a1 +/* 0E8364 7F0B3834 0305082A */ slt $at, $t8, $a1 +/* 0E8368 7F0B3838 5420000F */ bnezl $at, .L7F0B3878 +/* 0E836C 7F0B383C 90440002 */ lbu $a0, 2($v0) +/* 0E8370 7F0B3840 8D190000 */ lw $t9, ($t0) +.L7F0B3844: +/* 0E8374 7F0B3844 000650C0 */ sll $t2, $a2, 3 +/* 0E8378 7F0B3848 24A50001 */ addiu $a1, $a1, 1 +/* 0E837C 7F0B384C 032A2021 */ addu $a0, $t9, $t2 +/* 0E8380 7F0B3850 908B0006 */ lbu $t3, 6($a0) +/* 0E8384 7F0B3854 30A600FF */ andi $a2, $a1, 0xff +/* 0E8388 7F0B3858 00C02825 */ move $a1, $a2 +/* 0E838C 7F0B385C 356C0002 */ ori $t4, $t3, 2 +/* 0E8390 7F0B3860 A08C0006 */ sb $t4, 6($a0) +/* 0E8394 7F0B3864 904E0001 */ lbu $t6, 1($v0) +/* 0E8398 7F0B3868 01C6082A */ slt $at, $t6, $a2 +/* 0E839C 7F0B386C 5020FFF5 */ beql $at, $zero, .L7F0B3844 +/* 0E83A0 7F0B3870 8D190000 */ lw $t9, ($t0) +/* 0E83A4 7F0B3874 90440002 */ lbu $a0, 2($v0) +.L7F0B3878: +/* 0E83A8 7F0B3878 24420002 */ addiu $v0, $v0, 2 +/* 0E83AC 7F0B387C 5524FFEB */ bnel $t1, $a0, .L7F0B382C +/* 0E83B0 7F0B3880 90580001 */ lbu $t8, 1($v0) +/* 0E83B4 7F0B3884 10000006 */ b .L7F0B38A0 +/* 0E83B8 7F0B3888 24420001 */ addiu $v0, $v0, 1 +/* 0E83BC 7F0B388C 904F0002 */ lbu $t7, 2($v0) +.L7F0B3890: +/* 0E83C0 7F0B3890 24420002 */ addiu $v0, $v0, 2 +/* 0E83C4 7F0B3894 552FFFFE */ bnel $t1, $t7, .L7F0B3890 +/* 0E83C8 7F0B3898 904F0002 */ lbu $t7, 2($v0) +/* 0E83CC 7F0B389C 24420001 */ addiu $v0, $v0, 1 +.L7F0B38A0: +/* 0E83D0 7F0B38A0 0043082B */ sltu $at, $v0, $v1 +/* 0E83D4 7F0B38A4 5420FFDB */ bnezl $at, .L7F0B3814 +/* 0E83D8 7F0B38A8 8CEE0000 */ lw $t6, ($a3) +/* 0E83DC 7F0B38AC 03E00008 */ jr $ra +/* 0E83E0 7F0B38B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B38B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B38B4 +/* 0E83E4 7F0B38B4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E83E8 7F0B38B8 AFB00014 */ sw $s0, 0x14($sp) +/* 0E83EC 7F0B38BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0E83F0 7F0B38C0 AFB10018 */ sw $s1, 0x18($sp) +/* 0E83F4 7F0B38C4 00A08025 */ move $s0, $a1 +/* 0E83F8 7F0B38C8 90A20000 */ lbu $v0, ($a1) +/* 0E83FC 7F0B38CC 308300FF */ andi $v1, $a0, 0xff +/* 0E8400 7F0B38D0 02002025 */ move $a0, $s0 +.L7F0B38D4: +/* 0E8404 7F0B38D4 1062000B */ beq $v1, $v0, .L7F0B3904 +/* 0E8408 7F0B38D8 00000000 */ nop +/* 0E840C 7F0B38DC 92020001 */ lbu $v0, 1($s0) +/* 0E8410 7F0B38E0 26100001 */ addiu $s0, $s0, 1 +/* 0E8414 7F0B38E4 1440FFFB */ bnez $v0, .L7F0B38D4 +/* 0E8418 7F0B38E8 00000000 */ nop +/* 0E841C 7F0B38EC 920E0001 */ lbu $t6, 1($s0) +.L7F0B38F0: +/* 0E8420 7F0B38F0 26100001 */ addiu $s0, $s0, 1 +/* 0E8424 7F0B38F4 55C0FFFE */ bnezl $t6, .L7F0B38F0 +/* 0E8428 7F0B38F8 920E0001 */ lbu $t6, 1($s0) +/* 0E842C 7F0B38FC 10000027 */ b .L7F0B399C +/* 0E8430 7F0B3900 26100001 */ addiu $s0, $s0, 1 +.L7F0B3904: +/* 0E8434 7F0B3904 3C118008 */ lui $s1, %hi(pPlayer) +/* 0E8438 7F0B3908 00808025 */ move $s0, $a0 +/* 0E843C 7F0B390C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0E8440 7F0B3910 90820000 */ lbu $v0, ($a0) +/* 0E8444 7F0B3914 8E250000 */ lw $a1, ($s1) +.L7F0B3918: +/* 0E8448 7F0B3918 00402025 */ move $a0, $v0 +/* 0E844C 7F0B391C 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0E8450 7F0B3920 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0E8454 7F0B3924 10400006 */ beqz $v0, .L7F0B3940 +/* 0E8458 7F0B3928 00002825 */ move $a1, $zero +/* 0E845C 7F0B392C 8E260000 */ lw $a2, ($s1) +/* 0E8460 7F0B3930 92040000 */ lbu $a0, ($s0) +/* 0E8464 7F0B3934 24070001 */ li $a3, 1 +/* 0E8468 7F0B3938 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0E846C 7F0B393C 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B3940: +/* 0E8470 7F0B3940 92020001 */ lbu $v0, 1($s0) +/* 0E8474 7F0B3944 26100001 */ addiu $s0, $s0, 1 +/* 0E8478 7F0B3948 5440FFF3 */ bnezl $v0, .L7F0B3918 +/* 0E847C 7F0B394C 8E250000 */ lw $a1, ($s1) +/* 0E8480 7F0B3950 26100001 */ addiu $s0, $s0, 1 +/* 0E8484 7F0B3954 92020000 */ lbu $v0, ($s0) +/* 0E8488 7F0B3958 8E250000 */ lw $a1, ($s1) +.L7F0B395C: +/* 0E848C 7F0B395C 00402025 */ move $a0, $v0 +/* 0E8490 7F0B3960 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0E8494 7F0B3964 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0E8498 7F0B3968 10400006 */ beqz $v0, .L7F0B3984 +/* 0E849C 7F0B396C 00002825 */ move $a1, $zero +/* 0E84A0 7F0B3970 8E260000 */ lw $a2, ($s1) +/* 0E84A4 7F0B3974 92040000 */ lbu $a0, ($s0) +/* 0E84A8 7F0B3978 24070001 */ li $a3, 1 +/* 0E84AC 7F0B397C 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0E84B0 7F0B3980 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B3984: +/* 0E84B4 7F0B3984 92020001 */ lbu $v0, 1($s0) +/* 0E84B8 7F0B3988 26100001 */ addiu $s0, $s0, 1 +/* 0E84BC 7F0B398C 5440FFF3 */ bnezl $v0, .L7F0B395C +/* 0E84C0 7F0B3990 8E250000 */ lw $a1, ($s1) +/* 0E84C4 7F0B3994 10000005 */ b .L7F0B39AC +/* 0E84C8 7F0B3998 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B399C: +/* 0E84CC 7F0B399C 92020000 */ lbu $v0, ($s0) +/* 0E84D0 7F0B39A0 5440FFCC */ bnezl $v0, .L7F0B38D4 +/* 0E84D4 7F0B39A4 02002025 */ move $a0, $s0 +/* 0E84D8 7F0B39A8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B39AC: +/* 0E84DC 7F0B39AC 8FB00014 */ lw $s0, 0x14($sp) +/* 0E84E0 7F0B39B0 8FB10018 */ lw $s1, 0x18($sp) +/* 0E84E4 7F0B39B4 03E00008 */ jr $ra +/* 0E84E8 7F0B39B8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B39BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B39BC +/* 0E84EC 7F0B39BC 00047080 */ sll $t6, $a0, 2 +/* 0E84F0 7F0B39C0 01C47021 */ addu $t6, $t6, $a0 +/* 0E84F4 7F0B39C4 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0E84F8 7F0B39C8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0E84FC 7F0B39CC 000E7100 */ sll $t6, $t6, 4 +/* 0E8500 7F0B39D0 01CF1021 */ addu $v0, $t6, $t7 +/* 0E8504 7F0B39D4 90590034 */ lbu $t9, 0x34($v0) +/* 0E8508 7F0B39D8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E850C 7F0B39DC AFB00018 */ sw $s0, 0x18($sp) +/* 0E8510 7F0B39E0 24180001 */ li $t8, 1 +/* 0E8514 7F0B39E4 00808025 */ move $s0, $a0 +/* 0E8518 7F0B39E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E851C 7F0B39EC AFA7003C */ sw $a3, 0x3c($sp) +/* 0E8520 7F0B39F0 13200003 */ beqz $t9, .L7F0B3A00 +/* 0E8524 7F0B39F4 A0580000 */ sb $t8, ($v0) +/* 0E8528 7F0B39F8 1000003D */ b .L7F0B3AF0 +/* 0E852C 7F0B39FC 00001025 */ move $v0, $zero +.L7F0B3A00: +/* 0E8530 7F0B3A00 3C078004 */ lui $a3, %hi(NumberOfRoomsDrawn) +/* 0E8534 7F0B3A04 24E7483C */ addiu $a3, %lo(NumberOfRoomsDrawn) # addiu $a3, $a3, 0x483c +/* 0E8538 7F0B3A08 8CE40000 */ lw $a0, ($a3) +/* 0E853C 7F0B3A0C 00001025 */ move $v0, $zero +/* 0E8540 7F0B3A10 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007FFA0) +/* 0E8544 7F0B3A14 18800023 */ blez $a0, .L7F0B3AA4 +/* 0E8548 7F0B3A18 000460C0 */ sll $t4, $a0, 3 +/* 0E854C 7F0B3A1C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007FFA0) +/* 0E8550 7F0B3A20 2463FFA0 */ addiu $v1, %lo(dword_CODE_bss_8007FFA0) # addiu $v1, $v1, -0x60 +.L7F0B3A24: +/* 0E8554 7F0B3A24 8C680000 */ lw $t0, ($v1) +/* 0E8558 7F0B3A28 24420001 */ addiu $v0, $v0, 1 +/* 0E855C 7F0B3A2C 0044082A */ slt $at, $v0, $a0 +/* 0E8560 7F0B3A30 1608001A */ bne $s0, $t0, .L7F0B3A9C +/* 0E8564 7F0B3A34 00000000 */ nop +/* 0E8568 7F0B3A38 8C690004 */ lw $t1, 4($v1) +/* 0E856C 7F0B3A3C 00C02025 */ move $a0, $a2 +/* 0E8570 7F0B3A40 0125082A */ slt $at, $t1, $a1 +/* 0E8574 7F0B3A44 50200003 */ beql $at, $zero, .L7F0B3A54 +/* 0E8578 7F0B3A48 24650008 */ addiu $a1, $v1, 8 +/* 0E857C 7F0B3A4C AC650004 */ sw $a1, 4($v1) +/* 0E8580 7F0B3A50 24650008 */ addiu $a1, $v1, 8 +.L7F0B3A54: +/* 0E8584 7F0B3A54 AFA30020 */ sw $v1, 0x20($sp) +/* 0E8588 7F0B3A58 0FC2D730 */ jal sub_GAME_7F0B5CC0 +/* 0E858C 7F0B3A5C AFA60038 */ sw $a2, 0x38($sp) +/* 0E8590 7F0B3A60 8FA60038 */ lw $a2, 0x38($sp) +/* 0E8594 7F0B3A64 8FA30020 */ lw $v1, 0x20($sp) +/* 0E8598 7F0B3A68 8FAA003C */ lw $t2, 0x3c($sp) +/* 0E859C 7F0B3A6C C4C40000 */ lwc1 $f4, ($a2) +/* 0E85A0 7F0B3A70 8C620018 */ lw $v0, 0x18($v1) +/* 0E85A4 7F0B3A74 E4640008 */ swc1 $f4, 8($v1) +/* 0E85A8 7F0B3A78 C4C60004 */ lwc1 $f6, 4($a2) +/* 0E85AC 7F0B3A7C 004A5825 */ or $t3, $v0, $t2 +/* 0E85B0 7F0B3A80 E466000C */ swc1 $f6, 0xc($v1) +/* 0E85B4 7F0B3A84 C4C80008 */ lwc1 $f8, 8($a2) +/* 0E85B8 7F0B3A88 E4680010 */ swc1 $f8, 0x10($v1) +/* 0E85BC 7F0B3A8C C4CA000C */ lwc1 $f10, 0xc($a2) +/* 0E85C0 7F0B3A90 AC6B0018 */ sw $t3, 0x18($v1) +/* 0E85C4 7F0B3A94 10000016 */ b .L7F0B3AF0 +/* 0E85C8 7F0B3A98 E46A0014 */ swc1 $f10, 0x14($v1) +.L7F0B3A9C: +/* 0E85CC 7F0B3A9C 1420FFE1 */ bnez $at, .L7F0B3A24 +/* 0E85D0 7F0B3AA0 2463001C */ addiu $v1, $v1, 0x1c +.L7F0B3AA4: +/* 0E85D4 7F0B3AA4 01846023 */ subu $t4, $t4, $a0 +/* 0E85D8 7F0B3AA8 000C6080 */ sll $t4, $t4, 2 +/* 0E85DC 7F0B3AAC 25ADFFA0 */ addiu $t5, %lo(dword_CODE_bss_8007FFA0) # addiu $t5, $t5, -0x60 +/* 0E85E0 7F0B3AB0 018D1821 */ addu $v1, $t4, $t5 +/* 0E85E4 7F0B3AB4 AC700000 */ sw $s0, ($v1) +/* 0E85E8 7F0B3AB8 AC650004 */ sw $a1, 4($v1) +/* 0E85EC 7F0B3ABC C4D00000 */ lwc1 $f16, ($a2) +/* 0E85F0 7F0B3AC0 8FAE003C */ lw $t6, 0x3c($sp) +/* 0E85F4 7F0B3AC4 248F0001 */ addiu $t7, $a0, 1 +/* 0E85F8 7F0B3AC8 E4700008 */ swc1 $f16, 8($v1) +/* 0E85FC 7F0B3ACC C4D20004 */ lwc1 $f18, 4($a2) +/* 0E8600 7F0B3AD0 00001025 */ move $v0, $zero +/* 0E8604 7F0B3AD4 E472000C */ swc1 $f18, 0xc($v1) +/* 0E8608 7F0B3AD8 C4C40008 */ lwc1 $f4, 8($a2) +/* 0E860C 7F0B3ADC E4640010 */ swc1 $f4, 0x10($v1) +/* 0E8610 7F0B3AE0 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 0E8614 7F0B3AE4 ACEF0000 */ sw $t7, ($a3) +/* 0E8618 7F0B3AE8 AC6E0018 */ sw $t6, 0x18($v1) +/* 0E861C 7F0B3AEC E4660014 */ swc1 $f6, 0x14($v1) +.L7F0B3AF0: +/* 0E8620 7F0B3AF0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E8624 7F0B3AF4 8FB00018 */ lw $s0, 0x18($sp) +/* 0E8628 7F0B3AF8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E862C 7F0B3AFC 03E00008 */ jr $ra +/* 0E8630 7F0B3B00 00000000 */ nop +) +#endif + + + + +void bgZeroBitflags2ForRoom(s32 roomnum) +{ + array_room_info[roomnum].bitflags2 = '\0'; +} + + + + + + +#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) + { + if (array_room_info[i].bitflags2) { + return i; + }; + if (array_room_info[i+1].bitflags2) { + return i+1; + }; + if (array_room_info[i+2].bitflags2) { + return i+2; + }; + if (array_room_info[i+3].bitflags2) { + return i+3; + }; + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3B20 +/* 0E8650 7F0B3B20 3C0E8004 */ lui $t6, %hi(array_room_info+0x3) +/* 0E8654 7F0B3B24 91CE1417 */ lbu $t6, %lo(array_room_info+0x3)($t6) +/* 0E8658 7F0B3B28 3C0F8004 */ lui $t7, %hi(array_room_info + 0x53) +/* 0E865C 7F0B3B2C 11C00003 */ beqz $t6, .L7F0B3B3C +/* 0E8660 7F0B3B30 00000000 */ nop +/* 0E8664 7F0B3B34 03E00008 */ jr $ra +/* 0E8668 7F0B3B38 00001025 */ move $v0, $zero + +.L7F0B3B3C: +/* 0E866C 7F0B3B3C 91EF1467 */ lbu $t7, %lo(array_room_info + 0x53)($t7) +/* 0E8670 7F0B3B40 3C028004 */ lui $v0, %hi(array_room_info + 0xA0) +/* 0E8674 7F0B3B44 244214B4 */ addiu $v0, %lo(array_room_info + 0xA0) # addiu $v0, $v0, 0x14b4 +/* 0E8678 7F0B3B48 11E00003 */ beqz $t7, .L7F0B3B58 +/* 0E867C 7F0B3B4C 24030002 */ li $v1, 2 +/* 0E8680 7F0B3B50 03E00008 */ jr $ra +/* 0E8684 7F0B3B54 24020001 */ li $v0, 1 + +.L7F0B3B58: +/* 0E8688 7F0B3B58 24040096 */ li $a0, 150 +.L7F0B3B5C: +/* 0E868C 7F0B3B5C 90580003 */ lbu $t8, 3($v0) +/* 0E8690 7F0B3B60 53000004 */ beql $t8, $zero, .L7F0B3B74 +/* 0E8694 7F0B3B64 90590053 */ lbu $t9, 0x53($v0) +/* 0E8698 7F0B3B68 03E00008 */ jr $ra +/* 0E869C 7F0B3B6C 00601025 */ move $v0, $v1 + +/* 0E86A0 7F0B3B70 90590053 */ lbu $t9, 0x53($v0) +.L7F0B3B74: +/* 0E86A4 7F0B3B74 53200004 */ beql $t9, $zero, .L7F0B3B88 +/* 0E86A8 7F0B3B78 904800A3 */ lbu $t0, 0xa3($v0) +/* 0E86AC 7F0B3B7C 03E00008 */ jr $ra +/* 0E86B0 7F0B3B80 24620001 */ addiu $v0, $v1, 1 + +/* 0E86B4 7F0B3B84 904800A3 */ lbu $t0, 0xa3($v0) +.L7F0B3B88: +/* 0E86B8 7F0B3B88 51000004 */ beql $t0, $zero, .L7F0B3B9C +/* 0E86BC 7F0B3B8C 904900F3 */ lbu $t1, 0xf3($v0) +/* 0E86C0 7F0B3B90 03E00008 */ jr $ra +/* 0E86C4 7F0B3B94 24620002 */ addiu $v0, $v1, 2 + +/* 0E86C8 7F0B3B98 904900F3 */ lbu $t1, 0xf3($v0) +.L7F0B3B9C: +/* 0E86CC 7F0B3B9C 51200004 */ beql $t1, $zero, .L7F0B3BB0 +/* 0E86D0 7F0B3BA0 24630004 */ addiu $v1, $v1, 4 +/* 0E86D4 7F0B3BA4 03E00008 */ jr $ra +/* 0E86D8 7F0B3BA8 24620003 */ addiu $v0, $v1, 3 + +/* 0E86DC 7F0B3BAC 24630004 */ addiu $v1, $v1, 4 +.L7F0B3BB0: +/* 0E86E0 7F0B3BB0 1464FFEA */ bne $v1, $a0, .L7F0B3B5C +/* 0E86E4 7F0B3BB4 24420140 */ addiu $v0, $v0, 0x140 +/* 0E86E8 7F0B3BB8 2402FFFF */ li $v0, -1 +/* 0E86EC 7F0B3BBC 03E00008 */ jr $ra +/* 0E86F0 7F0B3BC0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3BC4(void) +{ + s32 i; + + NumberOfRoomsDrawn = 0; + array_room_info[0].bitflags2 = '\0'; + array_room_info[1].bitflags2 = '\0'; + for (i=2;i!=MaxNumRooms;i=i+4) + { + array_room_info[i].bitflags2 = '\0'; + array_room_info[i+1].bitflags2 = '\0'; + array_room_info[i+2].bitflags2 = '\0'; + array_room_info[i+3].bitflags2 = '\0'; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3BC4 +/* 0E86F4 7F0B3BC4 3C018004 */ lui $at, %hi(NumberOfRoomsDrawn) +/* 0E86F8 7F0B3BC8 AC20483C */ sw $zero, %lo(NumberOfRoomsDrawn)($at) +/* 0E86FC 7F0B3BCC 3C018004 */ lui $at, %hi(array_room_info+0x3) +/* 0E8700 7F0B3BD0 A0201417 */ sb $zero, %lo(array_room_info+0x3)($at) +/* 0E8704 7F0B3BD4 3C018004 */ lui $at, %hi(array_room_info + 0x53) +/* 0E8708 7F0B3BD8 3C038004 */ lui $v1, %hi(array_room_info + 0xA0) +/* 0E870C 7F0B3BDC 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0E8710 7F0B3BE0 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4 +/* 0E8714 7F0B3BE4 246314B4 */ addiu $v1, %lo(array_room_info + 0xA0) # addiu $v1, $v1, 0x14b4 +/* 0E8718 7F0B3BE8 A0201467 */ sb $zero, %lo(array_room_info + 0x53)($at) +.L7F0B3BEC: +/* 0E871C 7F0B3BEC 24630140 */ addiu $v1, $v1, 0x140 +/* 0E8720 7F0B3BF0 A060FEC3 */ sb $zero, -0x13d($v1) +/* 0E8724 7F0B3BF4 A060FF13 */ sb $zero, -0xed($v1) +/* 0E8728 7F0B3BF8 A060FF63 */ sb $zero, -0x9d($v1) +/* 0E872C 7F0B3BFC 1462FFFB */ bne $v1, $v0, .L7F0B3BEC +/* 0E8730 7F0B3C00 A060FFB3 */ sb $zero, -0x4d($v1) +/* 0E8734 7F0B3C04 03E00008 */ jr $ra +/* 0E8738 7F0B3C08 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3C0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3C0C +/* 0E873C 7F0B3C0C 3C038004 */ lui $v1, %hi(NumberOfRoomsDrawn) +/* 0E8740 7F0B3C10 8C63483C */ lw $v1, %lo(NumberOfRoomsDrawn)($v1) +/* 0E8744 7F0B3C14 00A03025 */ move $a2, $a1 +/* 0E8748 7F0B3C18 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007FFA0) +/* 0E874C 7F0B3C1C 18600013 */ blez $v1, .L7F0B3C6C +/* 0E8750 7F0B3C20 00001025 */ move $v0, $zero +/* 0E8754 7F0B3C24 24A5FFA0 */ addiu $a1, %lo(dword_CODE_bss_8007FFA0) # addiu $a1, $a1, -0x60 +.L7F0B3C28: +/* 0E8758 7F0B3C28 8CAE0000 */ lw $t6, ($a1) +/* 0E875C 7F0B3C2C 24420001 */ addiu $v0, $v0, 1 +/* 0E8760 7F0B3C30 0043082A */ slt $at, $v0, $v1 +/* 0E8764 7F0B3C34 148E000B */ bne $a0, $t6, .L7F0B3C64 +/* 0E8768 7F0B3C38 00000000 */ nop +/* 0E876C 7F0B3C3C C4A40008 */ lwc1 $f4, 8($a1) +/* 0E8770 7F0B3C40 24020001 */ li $v0, 1 +/* 0E8774 7F0B3C44 E4C40000 */ swc1 $f4, ($a2) +/* 0E8778 7F0B3C48 C4A6000C */ lwc1 $f6, 0xc($a1) +/* 0E877C 7F0B3C4C E4C60004 */ swc1 $f6, 4($a2) +/* 0E8780 7F0B3C50 C4A80010 */ lwc1 $f8, 0x10($a1) +/* 0E8784 7F0B3C54 E4C80008 */ swc1 $f8, 8($a2) +/* 0E8788 7F0B3C58 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 0E878C 7F0B3C5C 03E00008 */ jr $ra +/* 0E8790 7F0B3C60 E4CA000C */ swc1 $f10, 0xc($a2) + +.L7F0B3C64: +/* 0E8794 7F0B3C64 1420FFF0 */ bnez $at, .L7F0B3C28 +/* 0E8798 7F0B3C68 24A5001C */ addiu $a1, $a1, 0x1c +.L7F0B3C6C: +/* 0E879C 7F0B3C6C 44800000 */ mtc1 $zero, $f0 +/* 0E87A0 7F0B3C70 00001025 */ move $v0, $zero +/* 0E87A4 7F0B3C74 E4C00000 */ swc1 $f0, ($a2) +/* 0E87A8 7F0B3C78 E4C00004 */ swc1 $f0, 4($a2) +/* 0E87AC 7F0B3C7C E4C00008 */ swc1 $f0, 8($a2) +/* 0E87B0 7F0B3C80 E4C0000C */ swc1 $f0, 0xc($a2) +/* 0E87B4 7F0B3C84 03E00008 */ jr $ra +/* 0E87B8 7F0B3C88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3C8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3C8C +/* 0E87BC 7F0B3C8C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0E87C0 7F0B3C90 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E87C4 7F0B3C94 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E87C8 7F0B3C98 AFB70038 */ sw $s7, 0x38($sp) +/* 0E87CC 7F0B3C9C AFB60034 */ sw $s6, 0x34($sp) +/* 0E87D0 7F0B3CA0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0E87D4 7F0B3CA4 3C1705F5 */ lui $s7, (0x05F5E0FF >> 16) # lui $s7, 0x5f5 +/* 0E87D8 7F0B3CA8 00808025 */ move $s0, $a0 +/* 0E87DC 7F0B3CAC AFBF003C */ sw $ra, 0x3c($sp) +/* 0E87E0 7F0B3CB0 AFB50030 */ sw $s5, 0x30($sp) +/* 0E87E4 7F0B3CB4 AFB4002C */ sw $s4, 0x2c($sp) +/* 0E87E8 7F0B3CB8 AFB30028 */ sw $s3, 0x28($sp) +/* 0E87EC 7F0B3CBC AFB20024 */ sw $s2, 0x24($sp) +/* 0E87F0 7F0B3CC0 AFB10020 */ sw $s1, 0x20($sp) +/* 0E87F4 7F0B3CC4 36F7E0FF */ ori $s7, (0x05F5E0FF & 0xFFFF) # ori $s7, $s7, 0xe0ff +/* 0E87F8 7F0B3CC8 18400014 */ blez $v0, .L7F0B3D1C +/* 0E87FC 7F0B3CCC 0000B025 */ move $s6, $zero +/* 0E8800 7F0B3CD0 000278C0 */ sll $t7, $v0, 3 +/* 0E8804 7F0B3CD4 01E27823 */ subu $t7, $t7, $v0 +/* 0E8808 7F0B3CD8 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007FFA0) +/* 0E880C 7F0B3CDC 25D2FFA0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007FFA0) +/* 0E8810 7F0B3CE0 000F7880 */ sll $t7, $t7, 2 +/* 0E8814 7F0B3CE4 01F22021 */ addu $a0, $t7, $s2 +/* 0E8818 7F0B3CE8 8E430004 */ lw $v1, 4($s2) +.L7F0B3CEC: +/* 0E881C 7F0B3CEC 2652001C */ addiu $s2, $s2, 0x1c +/* 0E8820 7F0B3CF0 02C3082A */ slt $at, $s6, $v1 +/* 0E8824 7F0B3CF4 50200003 */ beql $at, $zero, .L7F0B3D04 +/* 0E8828 7F0B3CF8 0077082A */ slt $at, $v1, $s7 +/* 0E882C 7F0B3CFC 0060B025 */ move $s6, $v1 +/* 0E8830 7F0B3D00 0077082A */ slt $at, $v1, $s7 +.L7F0B3D04: +/* 0E8834 7F0B3D04 50200003 */ beql $at, $zero, .L7F0B3D14 +/* 0E8838 7F0B3D08 0244082B */ sltu $at, $s2, $a0 +/* 0E883C 7F0B3D0C 0060B825 */ move $s7, $v1 +/* 0E8840 7F0B3D10 0244082B */ sltu $at, $s2, $a0 +.L7F0B3D14: +/* 0E8844 7F0B3D14 5420FFF5 */ bnezl $at, .L7F0B3CEC +/* 0E8848 7F0B3D18 8E430004 */ lw $v1, 4($s2) +.L7F0B3D1C: +/* 0E884C 7F0B3D1C 02D7082A */ slt $at, $s6, $s7 +/* 0E8850 7F0B3D20 1420005C */ bnez $at, .L7F0B3E94 +/* 0E8854 7F0B3D24 02E0A825 */ move $s5, $s7 +/* 0E8858 7F0B3D28 26D80001 */ addiu $t8, $s6, 1 +/* 0E885C 7F0B3D2C 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103 +/* 0E8860 7F0B3D30 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0E8864 7F0B3D34 AFB80044 */ sw $t8, 0x44($sp) +.L7F0B3D38: +/* 0E8868 7F0B3D38 18400052 */ blez $v0, .L7F0B3E84 +/* 0E886C 7F0B3D3C 00009825 */ move $s3, $zero +/* 0E8870 7F0B3D40 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) +/* 0E8874 7F0B3D44 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60 +.L7F0B3D48: +/* 0E8878 7F0B3D48 8E590004 */ lw $t9, 4($s2) +/* 0E887C 7F0B3D4C 02008825 */ move $s1, $s0 +/* 0E8880 7F0B3D50 56B90049 */ bnel $s5, $t9, .L7F0B3E78 +/* 0E8884 7F0B3D54 26730001 */ addiu $s3, $s3, 1 +/* 0E8888 7F0B3D58 26100008 */ addiu $s0, $s0, 8 +/* 0E888C 7F0B3D5C 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8890 7F0B3D60 AE340000 */ sw $s4, ($s1) +/* 0E8894 7F0B3D64 0C003A2C */ jal osVirtualToPhysical +/* 0E8898 7F0B3D68 00402025 */ move $a0, $v0 +/* 0E889C 7F0B3D6C AE220004 */ sw $v0, 4($s1) +/* 0E88A0 7F0B3D70 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E88A4 7F0B3D74 02002025 */ move $a0, $s0 +/* 0E88A8 7F0B3D78 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E88AC 7F0B3D7C 00408025 */ move $s0, $v0 +/* 0E88B0 7F0B3D80 5040000A */ beql $v0, $zero, .L7F0B3DAC +/* 0E88B4 7F0B3D84 02008825 */ move $s1, $s0 +/* 0E88B8 7F0B3D88 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E88BC 7F0B3D8C 00000000 */ nop +/* 0E88C0 7F0B3D90 10400005 */ beqz $v0, .L7F0B3DA8 +/* 0E88C4 7F0B3D94 02002025 */ move $a0, $s0 +/* 0E88C8 7F0B3D98 8E450000 */ lw $a1, ($s2) +/* 0E88CC 7F0B3D9C 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E88D0 7F0B3DA0 00003025 */ move $a2, $zero +/* 0E88D4 7F0B3DA4 00408025 */ move $s0, $v0 +.L7F0B3DA8: +/* 0E88D8 7F0B3DA8 02008825 */ move $s1, $s0 +.L7F0B3DAC: +/* 0E88DC 7F0B3DAC AE340000 */ sw $s4, ($s1) +/* 0E88E0 7F0B3DB0 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E88E4 7F0B3DB4 26100008 */ addiu $s0, $s0, 8 +/* 0E88E8 7F0B3DB8 0C003A2C */ jal osVirtualToPhysical +/* 0E88EC 7F0B3DBC 00402025 */ move $a0, $v0 +/* 0E88F0 7F0B3DC0 AE220004 */ sw $v0, 4($s1) +/* 0E88F4 7F0B3DC4 C6440014 */ lwc1 $f4, 0x14($s2) +/* 0E88F8 7F0B3DC8 8E470010 */ lw $a3, 0x10($s2) +/* 0E88FC 7F0B3DCC 8E46000C */ lw $a2, 0xc($s2) +/* 0E8900 7F0B3DD0 8E450008 */ lw $a1, 8($s2) +/* 0E8904 7F0B3DD4 02002025 */ move $a0, $s0 +/* 0E8908 7F0B3DD8 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0E890C 7F0B3DDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E8910 7F0B3DE0 00402025 */ move $a0, $v0 +/* 0E8914 7F0B3DE4 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E8918 7F0B3DE8 00002825 */ move $a1, $zero +/* 0E891C 7F0B3DEC 0FC243D0 */ jal get_debug_do_draw_bg +/* 0E8920 7F0B3DF0 00408025 */ move $s0, $v0 +/* 0E8924 7F0B3DF4 50400009 */ beql $v0, $zero, .L7F0B3E1C +/* 0E8928 7F0B3DF8 02008825 */ move $s1, $s0 +/* 0E892C 7F0B3DFC 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8930 7F0B3E00 00000000 */ nop +/* 0E8934 7F0B3E04 10400004 */ beqz $v0, .L7F0B3E18 +/* 0E8938 7F0B3E08 02002025 */ move $a0, $s0 +/* 0E893C 7F0B3E0C 0FC2D9DF */ jal sub_GAME_7F0B677C +/* 0E8940 7F0B3E10 8E450000 */ lw $a1, ($s2) +/* 0E8944 7F0B3E14 00408025 */ move $s0, $v0 +.L7F0B3E18: +/* 0E8948 7F0B3E18 02008825 */ move $s1, $s0 +.L7F0B3E1C: +/* 0E894C 7F0B3E1C AE340000 */ sw $s4, ($s1) +/* 0E8950 7F0B3E20 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8954 7F0B3E24 26100008 */ addiu $s0, $s0, 8 +/* 0E8958 7F0B3E28 0C003A2C */ jal osVirtualToPhysical +/* 0E895C 7F0B3E2C 00402025 */ move $a0, $v0 +/* 0E8960 7F0B3E30 AE220004 */ sw $v0, 4($s1) +/* 0E8964 7F0B3E34 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E8968 7F0B3E38 02002025 */ move $a0, $s0 +/* 0E896C 7F0B3E3C 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E8970 7F0B3E40 00408025 */ move $s0, $v0 +/* 0E8974 7F0B3E44 10400009 */ beqz $v0, .L7F0B3E6C +/* 0E8978 7F0B3E48 00000000 */ nop +/* 0E897C 7F0B3E4C 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8980 7F0B3E50 00000000 */ nop +/* 0E8984 7F0B3E54 10400005 */ beqz $v0, .L7F0B3E6C +/* 0E8988 7F0B3E58 02002025 */ move $a0, $s0 +/* 0E898C 7F0B3E5C 8E450000 */ lw $a1, ($s2) +/* 0E8990 7F0B3E60 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E8994 7F0B3E64 24060002 */ li $a2, 2 +/* 0E8998 7F0B3E68 00408025 */ move $s0, $v0 +.L7F0B3E6C: +/* 0E899C 7F0B3E6C 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E89A0 7F0B3E70 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E89A4 7F0B3E74 26730001 */ addiu $s3, $s3, 1 +.L7F0B3E78: +/* 0E89A8 7F0B3E78 0262082A */ slt $at, $s3, $v0 +/* 0E89AC 7F0B3E7C 1420FFB2 */ bnez $at, .L7F0B3D48 +/* 0E89B0 7F0B3E80 2652001C */ addiu $s2, $s2, 0x1c +.L7F0B3E84: +/* 0E89B4 7F0B3E84 8FA80044 */ lw $t0, 0x44($sp) +/* 0E89B8 7F0B3E88 26B50001 */ addiu $s5, $s5, 1 +/* 0E89BC 7F0B3E8C 1515FFAA */ bne $t0, $s5, .L7F0B3D38 +/* 0E89C0 7F0B3E90 00000000 */ nop +.L7F0B3E94: +/* 0E89C4 7F0B3E94 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103 +/* 0E89C8 7F0B3E98 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0E89CC 7F0B3E9C 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E89D0 7F0B3EA0 02002025 */ move $a0, $s0 +/* 0E89D4 7F0B3EA4 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0E89D8 7F0B3EA8 00402025 */ move $a0, $v0 +/* 0E89DC 7F0B3EAC 00408825 */ move $s1, $v0 +/* 0E89E0 7F0B3EB0 24500008 */ addiu $s0, $v0, 8 +/* 0E89E4 7F0B3EB4 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E89E8 7F0B3EB8 AC540000 */ sw $s4, ($v0) +/* 0E89EC 7F0B3EBC 0C003A2C */ jal osVirtualToPhysical +/* 0E89F0 7F0B3EC0 00402025 */ move $a0, $v0 +/* 0E89F4 7F0B3EC4 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E89F8 7F0B3EC8 AE220004 */ sw $v0, 4($s1) +/* 0E89FC 7F0B3ECC 10400006 */ beqz $v0, .L7F0B3EE8 +/* 0E8A00 7F0B3ED0 00000000 */ nop +/* 0E8A04 7F0B3ED4 0FC282AD */ jal sub_GAME_7F0A0AB4 +/* 0E8A08 7F0B3ED8 02002025 */ move $a0, $s0 +/* 0E8A0C 7F0B3EDC 0FC2875E */ jal sub_GAME_7F0A1D78 +/* 0E8A10 7F0B3EE0 00402025 */ move $a0, $v0 +/* 0E8A14 7F0B3EE4 00408025 */ move $s0, $v0 +.L7F0B3EE8: +/* 0E8A18 7F0B3EE8 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E8A1C 7F0B3EEC 02D7082A */ slt $at, $s6, $s7 +/* 0E8A20 7F0B3EF0 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E8A24 7F0B3EF4 14200043 */ bnez $at, .L7F0B4004 +/* 0E8A28 7F0B3EF8 02C0A825 */ move $s5, $s6 +/* 0E8A2C 7F0B3EFC 26F6FFFF */ addiu $s6, $s7, -1 +.L7F0B3F00: +/* 0E8A30 7F0B3F00 1840003D */ blez $v0, .L7F0B3FF8 +/* 0E8A34 7F0B3F04 00009825 */ move $s3, $zero +/* 0E8A38 7F0B3F08 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) +/* 0E8A3C 7F0B3F0C 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60 +.L7F0B3F10: +/* 0E8A40 7F0B3F10 8E490004 */ lw $t1, 4($s2) +/* 0E8A44 7F0B3F14 02008825 */ move $s1, $s0 +/* 0E8A48 7F0B3F18 56A90034 */ bnel $s5, $t1, .L7F0B3FEC +/* 0E8A4C 7F0B3F1C 26730001 */ addiu $s3, $s3, 1 +/* 0E8A50 7F0B3F20 26100008 */ addiu $s0, $s0, 8 +/* 0E8A54 7F0B3F24 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E8A58 7F0B3F28 AE340000 */ sw $s4, ($s1) +/* 0E8A5C 7F0B3F2C 0C003A2C */ jal osVirtualToPhysical +/* 0E8A60 7F0B3F30 00402025 */ move $a0, $v0 +/* 0E8A64 7F0B3F34 AE220004 */ sw $v0, 4($s1) +/* 0E8A68 7F0B3F38 C6460014 */ lwc1 $f6, 0x14($s2) +/* 0E8A6C 7F0B3F3C 8E470010 */ lw $a3, 0x10($s2) +/* 0E8A70 7F0B3F40 8E46000C */ lw $a2, 0xc($s2) +/* 0E8A74 7F0B3F44 8E450008 */ lw $a1, 8($s2) +/* 0E8A78 7F0B3F48 02002025 */ move $a0, $s0 +/* 0E8A7C 7F0B3F4C 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0E8A80 7F0B3F50 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0E8A84 7F0B3F54 00402025 */ move $a0, $v0 +/* 0E8A88 7F0B3F58 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E8A8C 7F0B3F5C 24050001 */ li $a1, 1 +/* 0E8A90 7F0B3F60 0FC243D0 */ jal get_debug_do_draw_bg +/* 0E8A94 7F0B3F64 00408025 */ move $s0, $v0 +/* 0E8A98 7F0B3F68 50400009 */ beql $v0, $zero, .L7F0B3F90 +/* 0E8A9C 7F0B3F6C 02008825 */ move $s1, $s0 +/* 0E8AA0 7F0B3F70 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8AA4 7F0B3F74 00000000 */ nop +/* 0E8AA8 7F0B3F78 10400004 */ beqz $v0, .L7F0B3F8C +/* 0E8AAC 7F0B3F7C 02002025 */ move $a0, $s0 +/* 0E8AB0 7F0B3F80 0FC2DA26 */ jal sub_GAME_7F0B6898 +/* 0E8AB4 7F0B3F84 8E450000 */ lw $a1, ($s2) +/* 0E8AB8 7F0B3F88 00408025 */ move $s0, $v0 +.L7F0B3F8C: +/* 0E8ABC 7F0B3F8C 02008825 */ move $s1, $s0 +.L7F0B3F90: +/* 0E8AC0 7F0B3F90 AE340000 */ sw $s4, ($s1) +/* 0E8AC4 7F0B3F94 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8AC8 7F0B3F98 26100008 */ addiu $s0, $s0, 8 +/* 0E8ACC 7F0B3F9C 0C003A2C */ jal osVirtualToPhysical +/* 0E8AD0 7F0B3FA0 00402025 */ move $a0, $v0 +/* 0E8AD4 7F0B3FA4 AE220004 */ sw $v0, 4($s1) +/* 0E8AD8 7F0B3FA8 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E8ADC 7F0B3FAC 02002025 */ move $a0, $s0 +/* 0E8AE0 7F0B3FB0 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E8AE4 7F0B3FB4 00408025 */ move $s0, $v0 +/* 0E8AE8 7F0B3FB8 10400009 */ beqz $v0, .L7F0B3FE0 +/* 0E8AEC 7F0B3FBC 00000000 */ nop +/* 0E8AF0 7F0B3FC0 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8AF4 7F0B3FC4 00000000 */ nop +/* 0E8AF8 7F0B3FC8 10400005 */ beqz $v0, .L7F0B3FE0 +/* 0E8AFC 7F0B3FCC 02002025 */ move $a0, $s0 +/* 0E8B00 7F0B3FD0 8E450000 */ lw $a1, ($s2) +/* 0E8B04 7F0B3FD4 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E8B08 7F0B3FD8 24060001 */ li $a2, 1 +/* 0E8B0C 7F0B3FDC 00408025 */ move $s0, $v0 +.L7F0B3FE0: +/* 0E8B10 7F0B3FE0 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E8B14 7F0B3FE4 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E8B18 7F0B3FE8 26730001 */ addiu $s3, $s3, 1 +.L7F0B3FEC: +/* 0E8B1C 7F0B3FEC 0262082A */ slt $at, $s3, $v0 +/* 0E8B20 7F0B3FF0 1420FFC7 */ bnez $at, .L7F0B3F10 +/* 0E8B24 7F0B3FF4 2652001C */ addiu $s2, $s2, 0x1c +.L7F0B3FF8: +/* 0E8B28 7F0B3FF8 26B5FFFF */ addiu $s5, $s5, -1 +/* 0E8B2C 7F0B3FFC 16B6FFC0 */ bne $s5, $s6, .L7F0B3F00 +/* 0E8B30 7F0B4000 00000000 */ nop +.L7F0B4004: +/* 0E8B34 7F0B4004 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E8B38 7F0B4008 02001025 */ move $v0, $s0 +/* 0E8B3C 7F0B400C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0E8B40 7F0B4010 8FB10020 */ lw $s1, 0x20($sp) +/* 0E8B44 7F0B4014 8FB20024 */ lw $s2, 0x24($sp) +/* 0E8B48 7F0B4018 8FB30028 */ lw $s3, 0x28($sp) +/* 0E8B4C 7F0B401C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0E8B50 7F0B4020 8FB50030 */ lw $s5, 0x30($sp) +/* 0E8B54 7F0B4024 8FB60034 */ lw $s6, 0x34($sp) +/* 0E8B58 7F0B4028 8FB70038 */ lw $s7, 0x38($sp) +/* 0E8B5C 7F0B402C 03E00008 */ jr $ra +/* 0E8B60 7F0B4030 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B4034(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))->unk4 == 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->unk1C == 0) + { + goto loop_2; + } + } + // Node 3 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4034 +/* 0E8B64 7F0B4034 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8B68 7F0B4038 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) +/* 0E8B6C 7F0B403C 00047080 */ sll $t6, $a0, 2 +/* 0E8B70 7F0B4040 01C47023 */ subu $t6, $t6, $a0 +/* 0E8B74 7F0B4044 000E70C0 */ sll $t6, $t6, 3 +/* 0E8B78 7F0B4048 004E7821 */ addu $t7, $v0, $t6 +/* 0E8B7C 7F0B404C 8DF80004 */ lw $t8, 4($t7) +/* 0E8B80 7F0B4050 0004C880 */ sll $t9, $a0, 2 +/* 0E8B84 7F0B4054 00801825 */ move $v1, $a0 +/* 0E8B88 7F0B4058 17000008 */ bnez $t8, .L7F0B407C +/* 0E8B8C 7F0B405C 0324C823 */ subu $t9, $t9, $a0 +/* 0E8B90 7F0B4060 0019C8C0 */ sll $t9, $t9, 3 +/* 0E8B94 7F0B4064 00592021 */ addu $a0, $v0, $t9 +/* 0E8B98 7F0B4068 8C88001C */ lw $t0, 0x1c($a0) +.L7F0B406C: +/* 0E8B9C 7F0B406C 24630001 */ addiu $v1, $v1, 1 +/* 0E8BA0 7F0B4070 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8BA4 7F0B4074 5100FFFD */ beql $t0, $zero, .L7F0B406C +/* 0E8BA8 7F0B4078 8C88001C */ lw $t0, 0x1c($a0) +.L7F0B407C: +/* 0E8BAC 7F0B407C 03E00008 */ jr $ra +/* 0E8BB0 7F0B4080 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B4084(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))->unk8 == 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; + } + } + // Node 3 + return phi_v1; +} +#else +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 + + + + + +#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) + { + // 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; + } + } + // Node 3 + return phi_v1; +} +#else +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 + + + + + +#ifdef NONMATCHING +void load_bg_file(STAGENUM stagenum) +{ + +} +#else +GLOBAL_ASM( +.text +glabel load_bg_file +/* 0E8C54 7F0B4124 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0E8C58 7F0B4128 AFB20020 */ sw $s2, 0x20($sp) +/* 0E8C5C 7F0B412C 3C128004 */ lui $s2, %hi(D_80041400) +/* 0E8C60 7F0B4130 AFB00018 */ sw $s0, 0x18($sp) +/* 0E8C64 7F0B4134 26521400 */ addiu $s2, %lo(D_80041400) # addiu $s2, $s2, 0x1400 +/* 0E8C68 7F0B4138 3C108004 */ lui $s0, %hi(array_room_info) +/* 0E8C6C 7F0B413C 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0E8C70 7F0B4140 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E8C74 7F0B4144 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E8C78 7F0B4148 AFB70034 */ sw $s7, 0x34($sp) +/* 0E8C7C 7F0B414C AFB60030 */ sw $s6, 0x30($sp) +/* 0E8C80 7F0B4150 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E8C84 7F0B4154 AFB40028 */ sw $s4, 0x28($sp) +/* 0E8C88 7F0B4158 AFB30024 */ sw $s3, 0x24($sp) +/* 0E8C8C 7F0B415C AFB1001C */ sw $s1, 0x1c($sp) +/* 0E8C90 7F0B4160 AE400000 */ sw $zero, ($s2) +/* 0E8C94 7F0B4164 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4 +/* 0E8C98 7F0B4168 26101414 */ addiu $s0, %lo(array_room_info) # addiu $s0, $s0, 0x1414 +.L7F0B416C: +/* 0E8C9C 7F0B416C 26100050 */ addiu $s0, $s0, 0x50 +/* 0E8CA0 7F0B4170 0202082B */ sltu $at, $s0, $v0 +/* 0E8CA4 7F0B4174 1420FFFD */ bnez $at, .L7F0B416C +/* 0E8CA8 7F0B4178 AE00FFDC */ sw $zero, -0x24($s0) +/* 0E8CAC 7F0B417C 3C028004 */ lui $v0, %hi(levelinfotable) +/* 0E8CB0 7F0B4180 2442448C */ addiu $v0, %lo(levelinfotable) # addiu $v0, $v0, 0x448c +/* 0E8CB4 7F0B4184 00008825 */ move $s1, $zero +.L7F0B4188: +/* 0E8CB8 7F0B4188 8C4E0000 */ lw $t6, ($v0) +/* 0E8CBC 7F0B418C 548E0003 */ bnel $a0, $t6, .L7F0B419C +/* 0E8CC0 7F0B4190 26310001 */ addiu $s1, $s1, 1 +/* 0E8CC4 7F0B4194 AE510000 */ sw $s1, ($s2) +/* 0E8CC8 7F0B4198 26310001 */ addiu $s1, $s1, 1 +.L7F0B419C: +/* 0E8CCC 7F0B419C 2A210026 */ slti $at, $s1, 0x26 +/* 0E8CD0 7F0B41A0 1420FFF9 */ bnez $at, .L7F0B4188 +/* 0E8CD4 7F0B41A4 24420018 */ addiu $v0, $v0, 0x18 +/* 0E8CD8 7F0B41A8 0FC2ED34 */ jal init_lightfixture_tables +/* 0E8CDC 7F0B41AC AFA400B8 */ sw $a0, 0xb8($sp) +/* 0E8CE0 7F0B41B0 8E580000 */ lw $t8, ($s2) +/* 0E8CE4 7F0B41B4 24140018 */ li $s4, 24 +/* 0E8CE8 7F0B41B8 3C118004 */ lui $s1, %hi(levelinfotable) +/* 0E8CEC 7F0B41BC 03140019 */ multu $t8, $s4 +/* 0E8CF0 7F0B41C0 2631448C */ addiu $s1, %lo(levelinfotable) # addiu $s1, $s1, 0x448c +/* 0E8CF4 7F0B41C4 3C178008 */ lui $s7, %hi(ptr_bg_data) +/* 0E8CF8 7F0B41C8 26F7BF90 */ addiu $s7, %lo(ptr_bg_data) # addiu $s7, $s7, -0x4070 +/* 0E8CFC 7F0B41CC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0E8D00 7F0B41D0 AEE50000 */ sw $a1, ($s7) +/* 0E8D04 7F0B41D4 00003025 */ move $a2, $zero +/* 0E8D08 7F0B41D8 24070040 */ li $a3, 64 +/* 0E8D0C 7F0B41DC 0000C812 */ mflo $t9 +/* 0E8D10 7F0B41E0 02394021 */ addu $t0, $s1, $t9 +/* 0E8D14 7F0B41E4 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0E8D18 7F0B41E8 8D040004 */ lw $a0, 4($t0) +/* 0E8D1C 7F0B41EC 8EE20000 */ lw $v0, ($s7) +/* 0E8D20 7F0B41F0 3C168008 */ lui $s6, %hi(ptr_bgdata_offsets) +/* 0E8D24 7F0B41F4 26D6FF84 */ addiu $s6, %lo(ptr_bgdata_offsets) # addiu $s6, $s6, -0x7c +/* 0E8D28 7F0B41F8 AEC20000 */ sw $v0, ($s6) +/* 0E8D2C 7F0B41FC 8C4A0004 */ lw $t2, 4($v0) +/* 0E8D30 7F0B4200 3C13F100 */ lui $s3, 0xf100 +/* 0E8D34 7F0B4204 3C158008 */ lui $s5, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8D38 7F0B4208 01425821 */ addu $t3, $t2, $v0 +/* 0E8D3C 7F0B420C 26B5FF8C */ addiu $s5, %lo(ptr_bgdata_room_fileposition_list) # addiu $s5, $s5, -0x74 +/* 0E8D40 7F0B4210 01736021 */ addu $t4, $t3, $s3 +/* 0E8D44 7F0B4214 AEAC0000 */ sw $t4, ($s5) +/* 0E8D48 7F0B4218 8D900018 */ lw $s0, 0x18($t4) +/* 0E8D4C 7F0B421C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0E8D50 7F0B4220 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0E8D54 7F0B4224 02017024 */ and $t6, $s0, $at +/* 0E8D58 7F0B4228 25D0FFFF */ addiu $s0, $t6, -1 +/* 0E8D5C 7F0B422C 360F000F */ ori $t7, $s0, 0xf +/* 0E8D60 7F0B4230 25F00001 */ addiu $s0, $t7, 1 +/* 0E8D64 7F0B4234 02002025 */ move $a0, $s0 +/* 0E8D68 7F0B4238 0C0025C8 */ jal mempAllocBytesInBank +/* 0E8D6C 7F0B423C 24050004 */ li $a1, 4 +/* 0E8D70 7F0B4240 8E580000 */ lw $t8, ($s2) +/* 0E8D74 7F0B4244 AEE20000 */ sw $v0, ($s7) +/* 0E8D78 7F0B4248 00402825 */ move $a1, $v0 +/* 0E8D7C 7F0B424C 03140019 */ multu $t8, $s4 +/* 0E8D80 7F0B4250 00003025 */ move $a2, $zero +/* 0E8D84 7F0B4254 02003825 */ move $a3, $s0 +/* 0E8D88 7F0B4258 0000C812 */ mflo $t9 +/* 0E8D8C 7F0B425C 02394021 */ addu $t0, $s1, $t9 +/* 0E8D90 7F0B4260 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0E8D94 7F0B4264 8D040004 */ lw $a0, 4($t0) +/* 0E8D98 7F0B4268 8E490000 */ lw $t1, ($s2) +/* 0E8D9C 7F0B426C 24050002 */ li $a1, 2 +/* 0E8DA0 7F0B4270 00003025 */ move $a2, $zero +/* 0E8DA4 7F0B4274 01340019 */ multu $t1, $s4 +/* 0E8DA8 7F0B4278 24070004 */ li $a3, 4 +/* 0E8DAC 7F0B427C 00005012 */ mflo $t2 +/* 0E8DB0 7F0B4280 022A5821 */ addu $t3, $s1, $t2 +/* 0E8DB4 7F0B4284 0FC2F341 */ jal _load_resource_named_to_membank +/* 0E8DB8 7F0B4288 8D640008 */ lw $a0, 8($t3) +/* 0E8DBC 7F0B428C 3C108008 */ lui $s0, %hi(ptr_clipping) +/* 0E8DC0 7F0B4290 2610BF94 */ addiu $s0, %lo(ptr_clipping) # addiu $s0, $s0, -0x406c +/* 0E8DC4 7F0B4294 AE020000 */ sw $v0, ($s0) +/* 0E8DC8 7F0B4298 00402025 */ move $a0, $v0 +/* 0E8DCC 7F0B429C 00002825 */ move $a1, $zero +/* 0E8DD0 7F0B42A0 0FC2CBCB */ jal stanDetermineEOF +/* 0E8DD4 7F0B42A4 00403025 */ move $a2, $v0 +/* 0E8DD8 7F0B42A8 0FC2BD6E */ jal stanLoadFile +/* 0E8DDC 7F0B42AC 8E040000 */ lw $a0, ($s0) +/* 0E8DE0 7F0B42B0 8E4C0000 */ lw $t4, ($s2) +/* 0E8DE4 7F0B42B4 01940019 */ multu $t4, $s4 +/* 0E8DE8 7F0B42B8 00006812 */ mflo $t5 +/* 0E8DEC 7F0B42BC 022D7021 */ addu $t6, $s1, $t5 +/* 0E8DF0 7F0B42C0 0FC2D204 */ jal sub_GAME_7F0B4810 +/* 0E8DF4 7F0B42C4 C5CC000C */ lwc1 $f12, 0xc($t6) +/* 0E8DF8 7F0B42C8 8E4F0000 */ lw $t7, ($s2) +/* 0E8DFC 7F0B42CC 01F40019 */ multu $t7, $s4 +/* 0E8E00 7F0B42D0 0000C012 */ mflo $t8 +/* 0E8E04 7F0B42D4 0238C821 */ addu $t9, $s1, $t8 +/* 0E8E08 7F0B42D8 0FC2CA54 */ jal sub_GAME_7F0B2950 +/* 0E8E0C 7F0B42DC C72C000C */ lwc1 $f12, 0xc($t9) +/* 0E8E10 7F0B42E0 8E480000 */ lw $t0, ($s2) +/* 0E8E14 7F0B42E4 01140019 */ multu $t0, $s4 +/* 0E8E18 7F0B42E8 00004812 */ mflo $t1 +/* 0E8E1C 7F0B42EC 02295021 */ addu $t2, $s1, $t1 +/* 0E8E20 7F0B42F0 0FC2456F */ jal sub_GAME_7F0915BC +/* 0E8E24 7F0B42F4 C54C000C */ lwc1 $f12, 0xc($t2) +/* 0E8E28 7F0B42F8 8E4B0000 */ lw $t3, ($s2) +/* 0E8E2C 7F0B42FC 01740019 */ multu $t3, $s4 +/* 0E8E30 7F0B4300 00006012 */ mflo $t4 +/* 0E8E34 7F0B4304 022C6821 */ addu $t5, $s1, $t4 +/* 0E8E38 7F0B4308 0FC08B87 */ jal sub_GAME_7F022E1C +/* 0E8E3C 7F0B430C C5AC000C */ lwc1 $f12, 0xc($t5) +/* 0E8E40 7F0B4310 8E4E0000 */ lw $t6, ($s2) +/* 0E8E44 7F0B4314 3C108004 */ lui $s0, %hi(D_800413FC) +/* 0E8E48 7F0B4318 261013FC */ addiu $s0, %lo(D_800413FC) # addiu $s0, $s0, 0x13fc +/* 0E8E4C 7F0B431C 01D40019 */ multu $t6, $s4 +/* 0E8E50 7F0B4320 00007812 */ mflo $t7 +/* 0E8E54 7F0B4324 022FC021 */ addu $t8, $s1, $t7 +/* 0E8E58 7F0B4328 C7040010 */ lwc1 $f4, 0x10($t8) +/* 0E8E5C 7F0B432C E6040000 */ swc1 $f4, ($s0) +/* 0E8E60 7F0B4330 0FC225DB */ jal sub_GAME_7F08976C +/* 0E8E64 7F0B4334 C60C0000 */ lwc1 $f12, ($s0) +/* 0E8E68 7F0B4338 0FC16313 */ jal sub_GAME_7F058C4C +/* 0E8E6C 7F0B433C C60C0000 */ lwc1 $f12, ($s0) +/* 0E8E70 7F0B4340 8EE20000 */ lw $v0, ($s7) +/* 0E8E74 7F0B4344 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BF98) +/* 0E8E78 7F0B4348 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF88) +/* 0E8E7C 7F0B434C 8C590000 */ lw $t9, ($v0) +/* 0E8E80 7F0B4350 2484FF88 */ addiu $a0, %lo(dword_CODE_bss_8007FF88) # addiu $a0, $a0, -0x78 +/* 0E8E84 7F0B4354 2463BF98 */ addiu $v1, %lo(dword_CODE_bss_8007BF98) # addiu $v1, $v1, -0x4068 +/* 0E8E88 7F0B4358 24080001 */ li $t0, 1 +/* 0E8E8C 7F0B435C AC880000 */ sw $t0, ($a0) +/* 0E8E90 7F0B4360 1720010E */ bnez $t9, .L7F0B479C +/* 0E8E94 7F0B4364 AC790000 */ sw $t9, ($v1) +/* 0E8E98 7F0B4368 240A0002 */ li $t2, 2 +/* 0E8E9C 7F0B436C AC8A0000 */ sw $t2, ($a0) +/* 0E8EA0 7F0B4370 AEC20000 */ sw $v0, ($s6) +/* 0E8EA4 7F0B4374 8C4B0004 */ lw $t3, 4($v0) +/* 0E8EA8 7F0B4378 3C168004 */ lui $s6, %hi(MaxNumRooms) +/* 0E8EAC 7F0B437C 26D642F4 */ addiu $s6, %lo(MaxNumRooms) # addiu $s6, $s6, 0x42f4 +/* 0E8EB0 7F0B4380 01626021 */ addu $t4, $t3, $v0 +/* 0E8EB4 7F0B4384 01936821 */ addu $t5, $t4, $s3 +/* 0E8EB8 7F0B4388 AEAD0000 */ sw $t5, ($s5) +/* 0E8EBC 7F0B438C AEC00000 */ sw $zero, ($s6) +/* 0E8EC0 7F0B4390 8DAE001C */ lw $t6, 0x1c($t5) +/* 0E8EC4 7F0B4394 00402825 */ move $a1, $v0 +/* 0E8EC8 7F0B4398 11C00008 */ beqz $t6, .L7F0B43BC +/* 0E8ECC 7F0B439C 25A40018 */ addiu $a0, $t5, 0x18 +/* 0E8ED0 7F0B43A0 8ECF0000 */ lw $t7, ($s6) +.L7F0B43A4: +/* 0E8ED4 7F0B43A4 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8ED8 7F0B43A8 25F80001 */ addiu $t8, $t7, 1 +/* 0E8EDC 7F0B43AC AED80000 */ sw $t8, ($s6) +/* 0E8EE0 7F0B43B0 8C990004 */ lw $t9, 4($a0) +/* 0E8EE4 7F0B43B4 5720FFFB */ bnezl $t9, .L7F0B43A4 +/* 0E8EE8 7F0B43B8 8ECF0000 */ lw $t7, ($s6) +.L7F0B43BC: +/* 0E8EEC 7F0B43BC 8CA80008 */ lw $t0, 8($a1) +/* 0E8EF0 7F0B43C0 3C1E8008 */ lui $fp, %hi(ptr_bgdata_portals) +/* 0E8EF4 7F0B43C4 27DEFF80 */ addiu $fp, %lo(ptr_bgdata_portals) # addiu $fp, $fp, -0x80 +/* 0E8EF8 7F0B43C8 01024821 */ addu $t1, $t0, $v0 +/* 0E8EFC 7F0B43CC 01335021 */ addu $t2, $t1, $s3 +/* 0E8F00 7F0B43D0 AFCA0000 */ sw $t2, ($fp) +/* 0E8F04 7F0B43D4 8CA3000C */ lw $v1, 0xc($a1) +/* 0E8F08 7F0B43D8 14600004 */ bnez $v1, .L7F0B43EC +/* 0E8F0C 7F0B43DC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90) +/* 0E8F10 7F0B43E0 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70 +/* 0E8F14 7F0B43E4 1000000F */ b .L7F0B4424 +/* 0E8F18 7F0B43E8 AE400000 */ sw $zero, ($s2) +.L7F0B43EC: +/* 0E8F1C 7F0B43EC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90) +/* 0E8F20 7F0B43F0 00625821 */ addu $t3, $v1, $v0 +/* 0E8F24 7F0B43F4 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70 +/* 0E8F28 7F0B43F8 01736021 */ addu $t4, $t3, $s3 +/* 0E8F2C 7F0B43FC AE4C0000 */ sw $t4, ($s2) +/* 0E8F30 7F0B4400 8CA40010 */ lw $a0, 0x10($a1) +/* 0E8F34 7F0B4404 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94) +/* 0E8F38 7F0B4408 14800004 */ bnez $a0, .L7F0B441C +/* 0E8F3C 7F0B440C 00826821 */ addu $t5, $a0, $v0 +/* 0E8F40 7F0B4410 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94) +/* 0E8F44 7F0B4414 10000003 */ b .L7F0B4424 +/* 0E8F48 7F0B4418 AC20FF94 */ sw $zero, %lo(dword_CODE_bss_8007FF94)($at) +.L7F0B441C: +/* 0E8F4C 7F0B441C 01B37021 */ addu $t6, $t5, $s3 +/* 0E8F50 7F0B4420 AC2EFF94 */ sw $t6, %lo(dword_CODE_bss_8007FF94)($at) +.L7F0B4424: +/* 0E8F54 7F0B4424 8FC40000 */ lw $a0, ($fp) +/* 0E8F58 7F0B4428 00008025 */ move $s0, $zero +/* 0E8F5C 7F0B442C 8C8F0000 */ lw $t7, ($a0) +/* 0E8F60 7F0B4430 00801025 */ move $v0, $a0 +/* 0E8F64 7F0B4434 11E0000B */ beqz $t7, .L7F0B4464 +/* 0E8F68 7F0B4438 01E01825 */ move $v1, $t7 +/* 0E8F6C 7F0B443C 8EF80000 */ lw $t8, ($s7) +.L7F0B4440: +/* 0E8F70 7F0B4440 26100008 */ addiu $s0, $s0, 8 +/* 0E8F74 7F0B4444 0078C821 */ addu $t9, $v1, $t8 +/* 0E8F78 7F0B4448 03334021 */ addu $t0, $t9, $s3 +/* 0E8F7C 7F0B444C AC480000 */ sw $t0, ($v0) +/* 0E8F80 7F0B4450 8FC90000 */ lw $t1, ($fp) +/* 0E8F84 7F0B4454 01301021 */ addu $v0, $t1, $s0 +/* 0E8F88 7F0B4458 8C430000 */ lw $v1, ($v0) +/* 0E8F8C 7F0B445C 5460FFF8 */ bnezl $v1, .L7F0B4440 +/* 0E8F90 7F0B4460 8EF80000 */ lw $t8, ($s7) +.L7F0B4464: +/* 0E8F94 7F0B4464 8E440000 */ lw $a0, ($s2) +/* 0E8F98 7F0B4468 50800019 */ beql $a0, $zero, .L7F0B44D0 +/* 0E8F9C 7F0B446C 8ED90000 */ lw $t9, ($s6) +/* 0E8FA0 7F0B4470 908A0000 */ lbu $t2, ($a0) +/* 0E8FA4 7F0B4474 00008025 */ move $s0, $zero +/* 0E8FA8 7F0B4478 00801825 */ move $v1, $a0 +/* 0E8FAC 7F0B447C 11400013 */ beqz $t2, .L7F0B44CC +/* 0E8FB0 7F0B4480 314200FF */ andi $v0, $t2, 0xff +/* 0E8FB4 7F0B4484 24110064 */ li $s1, 100 +.L7F0B4488: +/* 0E8FB8 7F0B4488 5622000C */ bnel $s1, $v0, .L7F0B44BC +/* 0E8FBC 7F0B448C 90620008 */ lbu $v0, 8($v1) +/* 0E8FC0 7F0B4490 8C6B0004 */ lw $t3, 4($v1) +/* 0E8FC4 7F0B4494 8EEC0000 */ lw $t4, ($s7) +/* 0E8FC8 7F0B4498 016C6821 */ addu $t5, $t3, $t4 +/* 0E8FCC 7F0B449C 0FC2D7A2 */ jal sub_GAME_7F0B5E88 +/* 0E8FD0 7F0B44A0 01B32021 */ addu $a0, $t5, $s3 +/* 0E8FD4 7F0B44A4 8E4E0000 */ lw $t6, ($s2) +/* 0E8FD8 7F0B44A8 01D07821 */ addu $t7, $t6, $s0 +/* 0E8FDC 7F0B44AC ADE20004 */ sw $v0, 4($t7) +/* 0E8FE0 7F0B44B0 8E580000 */ lw $t8, ($s2) +/* 0E8FE4 7F0B44B4 03101821 */ addu $v1, $t8, $s0 +/* 0E8FE8 7F0B44B8 90620008 */ lbu $v0, 8($v1) +.L7F0B44BC: +/* 0E8FEC 7F0B44BC 26100008 */ addiu $s0, $s0, 8 +/* 0E8FF0 7F0B44C0 24630008 */ addiu $v1, $v1, 8 +/* 0E8FF4 7F0B44C4 1440FFF0 */ bnez $v0, .L7F0B4488 +/* 0E8FF8 7F0B44C8 00000000 */ nop +.L7F0B44CC: +/* 0E8FFC 7F0B44CC 8ED90000 */ lw $t9, ($s6) +.L7F0B44D0: +/* 0E9000 7F0B44D0 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0E9004 7F0B44D4 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +/* 0E9008 7F0B44D8 2B210002 */ slti $at, $t9, 2 +/* 0E900C 7F0B44DC 14200064 */ bnez $at, .L7F0B4670 +/* 0E9010 7F0B44E0 24110001 */ li $s1, 1 +/* 0E9014 7F0B44E4 8EA40000 */ lw $a0, ($s5) +/* 0E9018 7F0B44E8 24130018 */ li $s3, 24 +/* 0E901C 7F0B44EC 2417FFFF */ li $s7, -1 +/* 0E9020 7F0B44F0 24840018 */ addiu $a0, $a0, 0x18 +.L7F0B44F4: +/* 0E9024 7F0B44F4 A2000002 */ sb $zero, 2($s0) +/* 0E9028 7F0B44F8 A2000035 */ sb $zero, 0x35($s0) +/* 0E902C 7F0B44FC 8C880004 */ lw $t0, 4($a0) +/* 0E9030 7F0B4500 26320001 */ addiu $s2, $s1, 1 +/* 0E9034 7F0B4504 51000020 */ beql $t0, $zero, .L7F0B4588 +/* 0E9038 7F0B4508 AE000014 */ sw $zero, 0x14($s0) +/* 0E903C 7F0B450C 26320001 */ addiu $s2, $s1, 1 +/* 0E9040 7F0B4510 0FC2D00D */ jal sub_GAME_7F0B4034 +/* 0E9044 7F0B4514 02402025 */ move $a0, $s2 +/* 0E9048 7F0B4518 02202025 */ move $a0, $s1 +/* 0E904C 7F0B451C 0FC2D021 */ jal sub_GAME_7F0B4084 +/* 0E9050 7F0B4520 AFA20068 */ sw $v0, 0x68($sp) +/* 0E9054 7F0B4524 8FA50068 */ lw $a1, 0x68($sp) +/* 0E9058 7F0B4528 0045082A */ slt $at, $v0, $a1 +/* 0E905C 7F0B452C 1420000B */ bnez $at, .L7F0B455C +/* 0E9060 7F0B4530 00000000 */ nop +/* 0E9064 7F0B4534 00B40019 */ multu $a1, $s4 +/* 0E9068 7F0B4538 8EA30000 */ lw $v1, ($s5) +/* 0E906C 7F0B453C 00732021 */ addu $a0, $v1, $s3 +/* 0E9070 7F0B4540 8C8C0004 */ lw $t4, 4($a0) +/* 0E9074 7F0B4544 00004812 */ mflo $t1 +/* 0E9078 7F0B4548 00695021 */ addu $t2, $v1, $t1 +/* 0E907C 7F0B454C 8D4B0004 */ lw $t3, 4($t2) +/* 0E9080 7F0B4550 016C6823 */ subu $t5, $t3, $t4 +/* 0E9084 7F0B4554 1000000C */ b .L7F0B4588 +/* 0E9088 7F0B4558 AE0D0014 */ sw $t5, 0x14($s0) +.L7F0B455C: +/* 0E908C 7F0B455C 00540019 */ multu $v0, $s4 +/* 0E9090 7F0B4560 8EA30000 */ lw $v1, ($s5) +/* 0E9094 7F0B4564 00732021 */ addu $a0, $v1, $s3 +/* 0E9098 7F0B4568 8C990004 */ lw $t9, 4($a0) +/* 0E909C 7F0B456C 00007012 */ mflo $t6 +/* 0E90A0 7F0B4570 006E7821 */ addu $t7, $v1, $t6 +/* 0E90A4 7F0B4574 8DF80008 */ lw $t8, 8($t7) +/* 0E90A8 7F0B4578 03194023 */ subu $t0, $t8, $t9 +/* 0E90AC 7F0B457C 10000002 */ b .L7F0B4588 +/* 0E90B0 7F0B4580 AE080014 */ sw $t0, 0x14($s0) +/* 0E90B4 7F0B4584 AE000014 */ sw $zero, 0x14($s0) +.L7F0B4588: +/* 0E90B8 7F0B4588 8C890008 */ lw $t1, 8($a0) +/* 0E90BC 7F0B458C 5120001E */ beql $t1, $zero, .L7F0B4608 +/* 0E90C0 7F0B4590 AE000018 */ sw $zero, 0x18($s0) +/* 0E90C4 7F0B4594 0FC2D00D */ jal sub_GAME_7F0B4034 +/* 0E90C8 7F0B4598 02402025 */ move $a0, $s2 +/* 0E90CC 7F0B459C 00408825 */ move $s1, $v0 +/* 0E90D0 7F0B45A0 0FC2D021 */ jal sub_GAME_7F0B4084 +/* 0E90D4 7F0B45A4 02402025 */ move $a0, $s2 +/* 0E90D8 7F0B45A8 0051082A */ slt $at, $v0, $s1 +/* 0E90DC 7F0B45AC 1420000B */ bnez $at, .L7F0B45DC +/* 0E90E0 7F0B45B0 00000000 */ nop +/* 0E90E4 7F0B45B4 02340019 */ multu $s1, $s4 +/* 0E90E8 7F0B45B8 8EA30000 */ lw $v1, ($s5) +/* 0E90EC 7F0B45BC 00732021 */ addu $a0, $v1, $s3 +/* 0E90F0 7F0B45C0 8C8D0008 */ lw $t5, 8($a0) +/* 0E90F4 7F0B45C4 00005012 */ mflo $t2 +/* 0E90F8 7F0B45C8 006A5821 */ addu $t3, $v1, $t2 +/* 0E90FC 7F0B45CC 8D6C0004 */ lw $t4, 4($t3) +/* 0E9100 7F0B45D0 018D7023 */ subu $t6, $t4, $t5 +/* 0E9104 7F0B45D4 1000000C */ b .L7F0B4608 +/* 0E9108 7F0B45D8 AE0E0018 */ sw $t6, 0x18($s0) +.L7F0B45DC: +/* 0E910C 7F0B45DC 00540019 */ multu $v0, $s4 +/* 0E9110 7F0B45E0 8EA30000 */ lw $v1, ($s5) +/* 0E9114 7F0B45E4 00732021 */ addu $a0, $v1, $s3 +/* 0E9118 7F0B45E8 8C880008 */ lw $t0, 8($a0) +/* 0E911C 7F0B45EC 00007812 */ mflo $t7 +/* 0E9120 7F0B45F0 006FC021 */ addu $t8, $v1, $t7 +/* 0E9124 7F0B45F4 8F190008 */ lw $t9, 8($t8) +/* 0E9128 7F0B45F8 03284823 */ subu $t1, $t9, $t0 +/* 0E912C 7F0B45FC 10000002 */ b .L7F0B4608 +/* 0E9130 7F0B4600 AE090018 */ sw $t1, 0x18($s0) +/* 0E9134 7F0B4604 AE000018 */ sw $zero, 0x18($s0) +.L7F0B4608: +/* 0E9138 7F0B4608 8C8A0000 */ lw $t2, ($a0) +/* 0E913C 7F0B460C 5140000F */ beql $t2, $zero, .L7F0B464C +/* 0E9140 7F0B4610 AE000010 */ sw $zero, 0x10($s0) +/* 0E9144 7F0B4614 0FC2D035 */ jal sub_GAME_7F0B40D4 +/* 0E9148 7F0B4618 02402025 */ move $a0, $s2 +/* 0E914C 7F0B461C 00540019 */ multu $v0, $s4 +/* 0E9150 7F0B4620 8EA30000 */ lw $v1, ($s5) +/* 0E9154 7F0B4624 8EC50000 */ lw $a1, ($s6) +/* 0E9158 7F0B4628 00732021 */ addu $a0, $v1, $s3 +/* 0E915C 7F0B462C 8C8E0000 */ lw $t6, ($a0) +/* 0E9160 7F0B4630 00005812 */ mflo $t3 +/* 0E9164 7F0B4634 006B6021 */ addu $t4, $v1, $t3 +/* 0E9168 7F0B4638 8D8D0000 */ lw $t5, ($t4) +/* 0E916C 7F0B463C 01AE7823 */ subu $t7, $t5, $t6 +/* 0E9170 7F0B4640 10000003 */ b .L7F0B4650 +/* 0E9174 7F0B4644 AE0F0010 */ sw $t7, 0x10($s0) +/* 0E9178 7F0B4648 AE000010 */ sw $zero, 0x10($s0) +.L7F0B464C: +/* 0E917C 7F0B464C 8EC50000 */ lw $a1, ($s6) +.L7F0B4650: +/* 0E9180 7F0B4650 0245082A */ slt $at, $s2, $a1 +/* 0E9184 7F0B4654 02408825 */ move $s1, $s2 +/* 0E9188 7F0B4658 26100050 */ addiu $s0, $s0, 0x50 +/* 0E918C 7F0B465C 26730018 */ addiu $s3, $s3, 0x18 +/* 0E9190 7F0B4660 24840018 */ addiu $a0, $a0, 0x18 +/* 0E9194 7F0B4664 1420FFA3 */ bnez $at, .L7F0B44F4 +/* 0E9198 7F0B4668 AE17FFD8 */ sw $s7, -0x28($s0) +/* 0E919C 7F0B466C 24110001 */ li $s1, 1 +.L7F0B4670: +/* 0E91A0 7F0B4670 0FC2F14C */ jal sub_GAME_7F0BC530 +/* 0E91A4 7F0B4674 00000000 */ nop +/* 0E91A8 7F0B4678 8ED80000 */ lw $t8, ($s6) +/* 0E91AC 7F0B467C 2B010002 */ slti $at, $t8, 2 +/* 0E91B0 7F0B4680 54200009 */ bnezl $at, .L7F0B46A8 +/* 0E91B4 7F0B4684 8FC40000 */ lw $a0, ($fp) +.L7F0B4688: +/* 0E91B8 7F0B4688 0FC2E4CE */ jal sub_GAME_7F0B9338 +/* 0E91BC 7F0B468C 02202025 */ move $a0, $s1 +/* 0E91C0 7F0B4690 8ED90000 */ lw $t9, ($s6) +/* 0E91C4 7F0B4694 26310001 */ addiu $s1, $s1, 1 +/* 0E91C8 7F0B4698 0239082A */ slt $at, $s1, $t9 +/* 0E91CC 7F0B469C 1420FFFA */ bnez $at, .L7F0B4688 +/* 0E91D0 7F0B46A0 00000000 */ nop +/* 0E91D4 7F0B46A4 8FC40000 */ lw $a0, ($fp) +.L7F0B46A8: +/* 0E91D8 7F0B46A8 3C038004 */ lui $v1, %hi(D_800443C4) +/* 0E91DC 7F0B46AC 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4 +/* 0E91E0 7F0B46B0 8C820000 */ lw $v0, ($a0) +/* 0E91E4 7F0B46B4 00008825 */ move $s1, $zero +/* 0E91E8 7F0B46B8 00008025 */ move $s0, $zero +/* 0E91EC 7F0B46BC 10400010 */ beqz $v0, .L7F0B4700 +/* 0E91F0 7F0B46C0 00000000 */ nop +/* 0E91F4 7F0B46C4 02202025 */ move $a0, $s1 +.L7F0B46C8: +/* 0E91F8 7F0B46C8 0FC2E64F */ jal sub_GAME_7F0B993C +/* 0E91FC 7F0B46CC AFA3004C */ sw $v1, 0x4c($sp) +/* 0E9200 7F0B46D0 8FC40000 */ lw $a0, ($fp) +/* 0E9204 7F0B46D4 8FA3004C */ lw $v1, 0x4c($sp) +/* 0E9208 7F0B46D8 26100008 */ addiu $s0, $s0, 8 +/* 0E920C 7F0B46DC 00904021 */ addu $t0, $a0, $s0 +/* 0E9210 7F0B46E0 A0620000 */ sb $v0, ($v1) +/* 0E9214 7F0B46E4 8D090000 */ lw $t1, ($t0) +/* 0E9218 7F0B46E8 26310001 */ addiu $s1, $s1, 1 +/* 0E921C 7F0B46EC 24630001 */ addiu $v1, $v1, 1 +/* 0E9220 7F0B46F0 5520FFF5 */ bnezl $t1, .L7F0B46C8 +/* 0E9224 7F0B46F4 02202025 */ move $a0, $s1 +/* 0E9228 7F0B46F8 00008825 */ move $s1, $zero +/* 0E922C 7F0B46FC 8C820000 */ lw $v0, ($a0) +.L7F0B4700: +/* 0E9230 7F0B4700 1040000B */ beqz $v0, .L7F0B4730 +/* 0E9234 7F0B4704 00008025 */ move $s0, $zero +.L7F0B4708: +/* 0E9238 7F0B4708 0FC2E6E5 */ jal sub_GAME_7F0B9B94 +/* 0E923C 7F0B470C 02202025 */ move $a0, $s1 +/* 0E9240 7F0B4710 8FC40000 */ lw $a0, ($fp) +/* 0E9244 7F0B4714 26100008 */ addiu $s0, $s0, 8 +/* 0E9248 7F0B4718 26310001 */ addiu $s1, $s1, 1 +/* 0E924C 7F0B471C 00905021 */ addu $t2, $a0, $s0 +/* 0E9250 7F0B4720 8D4B0000 */ lw $t3, ($t2) +/* 0E9254 7F0B4724 1560FFF8 */ bnez $t3, .L7F0B4708 +/* 0E9258 7F0B4728 00000000 */ nop +/* 0E925C 7F0B472C 00008825 */ move $s1, $zero +.L7F0B4730: +/* 0E9260 7F0B4730 8ECC0000 */ lw $t4, ($s6) +/* 0E9264 7F0B4734 5980000A */ blezl $t4, .L7F0B4760 +/* 0E9268 7F0B4738 8C8E0000 */ lw $t6, ($a0) +.L7F0B473C: +/* 0E926C 7F0B473C 0FC2E576 */ jal sub_GAME_7F0B95D8 +/* 0E9270 7F0B4740 02202025 */ move $a0, $s1 +/* 0E9274 7F0B4744 8ECD0000 */ lw $t5, ($s6) +/* 0E9278 7F0B4748 26310001 */ addiu $s1, $s1, 1 +/* 0E927C 7F0B474C 022D082A */ slt $at, $s1, $t5 +/* 0E9280 7F0B4750 1420FFFA */ bnez $at, .L7F0B473C +/* 0E9284 7F0B4754 00000000 */ nop +/* 0E9288 7F0B4758 8FC40000 */ lw $a0, ($fp) +/* 0E928C 7F0B475C 8C8E0000 */ lw $t6, ($a0) +.L7F0B4760: +/* 0E9290 7F0B4760 00008025 */ move $s0, $zero +/* 0E9294 7F0B4764 00801025 */ move $v0, $a0 +/* 0E9298 7F0B4768 11C0000A */ beqz $t6, .L7F0B4794 +/* 0E929C 7F0B476C 00000000 */ nop +/* 0E92A0 7F0B4770 904F0006 */ lbu $t7, 6($v0) +.L7F0B4774: +/* 0E92A4 7F0B4774 26100008 */ addiu $s0, $s0, 8 +/* 0E92A8 7F0B4778 31F800FE */ andi $t8, $t7, 0xfe +/* 0E92AC 7F0B477C A0580006 */ sb $t8, 6($v0) +/* 0E92B0 7F0B4780 8FD90000 */ lw $t9, ($fp) +/* 0E92B4 7F0B4784 03301021 */ addu $v0, $t9, $s0 +/* 0E92B8 7F0B4788 8C480000 */ lw $t0, ($v0) +/* 0E92BC 7F0B478C 5500FFF9 */ bnezl $t0, .L7F0B4774 +/* 0E92C0 7F0B4790 904F0006 */ lbu $t7, 6($v0) +.L7F0B4794: +/* 0E92C4 7F0B4794 0FC2CDFB */ jal sub_GAME_7F0B37EC +/* 0E92C8 7F0B4798 00000000 */ nop +.L7F0B479C: +/* 0E92CC 7F0B479C 0FC2EA97 */ jal sub_GAME_7F0BAA5C +/* 0E92D0 7F0B47A0 8FA400B8 */ lw $a0, 0xb8($sp) +/* 0E92D4 7F0B47A4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E92D8 7F0B47A8 240900C8 */ li $t1, 200 +/* 0E92DC 7F0B47AC 3C018004 */ lui $at, %hi(D_800442F8) +/* 0E92E0 7F0B47B0 8FB00018 */ lw $s0, 0x18($sp) +/* 0E92E4 7F0B47B4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E92E8 7F0B47B8 8FB20020 */ lw $s2, 0x20($sp) +/* 0E92EC 7F0B47BC 8FB30024 */ lw $s3, 0x24($sp) +/* 0E92F0 7F0B47C0 8FB40028 */ lw $s4, 0x28($sp) +/* 0E92F4 7F0B47C4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E92F8 7F0B47C8 8FB60030 */ lw $s6, 0x30($sp) +/* 0E92FC 7F0B47CC 8FB70034 */ lw $s7, 0x34($sp) +/* 0E9300 7F0B47D0 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9304 7F0B47D4 AC2942F8 */ sw $t1, %lo(D_800442F8)($at) +/* 0E9308 7F0B47D8 03E00008 */ jr $ra +/* 0E930C 7F0B47DC 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B47E0(void) { + sub_GAME_7F0B667C(); + sub_GAME_7F058C4C(1.0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B47E0 +/* 0E9310 7F0B47E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E9314 7F0B47E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E9318 7F0B47E8 0FC2D99F */ jal sub_GAME_7F0B667C +/* 0E931C 7F0B47EC 00000000 */ nop +/* 0E9320 7F0B47F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E9324 7F0B47F4 44816000 */ mtc1 $at, $f12 +/* 0E9328 7F0B47F8 0FC16313 */ jal sub_GAME_7F058C4C +/* 0E932C 7F0B47FC 00000000 */ nop +/* 0E9330 7F0B4800 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E9334 7F0B4804 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E9338 7F0B4808 03E00008 */ jr $ra +/* 0E933C 7F0B480C 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0B4810(f32 arg0) { + room_data_float1 = arg0; + room_data_float2 = (f32) (1.0f / arg0); +} + + +f32 get_room_data_float2(void){ + return room_data_float2; +} + +f32 get_room_data_float1(void){ + return room_data_float1; +} + + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B4848(void) { + void *temp_v0; + + temp_v0 = ((D_80041400 * 0x18) + &levelinfotable); + return (temp_v0->unk14 / temp_v0->unkC); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4848 +/* 0E9378 7F0B4848 3C0E8004 */ lui $t6, %hi(D_80041400) +/* 0E937C 7F0B484C 8DCE1400 */ lw $t6, %lo(D_80041400)($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 + + + + + +f32 sub_GAME_7F0B4878(void) { + return D_800413FC; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4884(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058C58*/ +glabel jpt_80058C58 +.word .L7F0B4914 +.word .L7F0B4914 +.word .L7F0B4914 +.word .L7F0B491C +.word .L7F0B491C +.word .L7F0B491C +.word .L7F0B4914 +.word .L7F0B491C +.word .L7F0B4914 + +.text +glabel sub_GAME_7F0B4884 +/* 0E93B4 7F0B4884 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E93B8 7F0B4888 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E93BC 7F0B488C AFB60030 */ sw $s6, 0x30($sp) +/* 0E93C0 7F0B4890 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0E93C4 7F0B4894 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E93C8 7F0B4898 AFB70034 */ sw $s7, 0x34($sp) +/* 0E93CC 7F0B489C AFB5002C */ sw $s5, 0x2c($sp) +/* 0E93D0 7F0B48A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0E93D4 7F0B48A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0E93D8 7F0B48A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0E93DC 7F0B48AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0E93E0 7F0B48B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0E93E4 7F0B48B4 2416FFFF */ li $s6, -1 +/* 0E93E8 7F0B48B8 0FC26C54 */ jal get_cur_playernum +/* 0E93EC 7F0B48BC AC20C038 */ sw $zero, %lo(num_visible_rooms_in_cur_global_vis_packet)($at) +/* 0E93F0 7F0B48C0 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0E93F4 7F0B48C4 00402025 */ move $a0, $v0 +/* 0E93F8 7F0B48C8 14400003 */ bnez $v0, .L7F0B48D8 +/* 0E93FC 7F0B48CC 00000000 */ nop +/* 0E9400 7F0B48D0 0FC2D9BA */ jal sub_GAME_7F0B66E8 +/* 0E9404 7F0B48D4 00000000 */ nop +.L7F0B48D8: +/* 0E9408 7F0B48D8 0FC1E94A */ jal get_camera_mode +/* 0E940C 7F0B48DC 00000000 */ nop +/* 0E9410 7F0B48E0 3C038004 */ lui $v1, %hi(D_800442F8) +/* 0E9414 7F0B48E4 244FFFFF */ addiu $t7, $v0, -1 +/* 0E9418 7F0B48E8 246342F8 */ addiu $v1, %lo(D_800442F8) # addiu $v1, $v1, 0x42f8 +/* 0E941C 7F0B48EC 240E0003 */ li $t6, 3 +/* 0E9420 7F0B48F0 2DE10009 */ sltiu $at, $t7, 9 +/* 0E9424 7F0B48F4 10200009 */ beqz $at, .L7F0B491C +/* 0E9428 7F0B48F8 AC6E0000 */ sw $t6, ($v1) +/* 0E942C 7F0B48FC 000F7880 */ sll $t7, $t7, 2 +/* 0E9430 7F0B4900 3C018006 */ lui $at, %hi(jpt_80058C58) +/* 0E9434 7F0B4904 002F0821 */ addu $at, $at, $t7 +/* 0E9438 7F0B4908 8C2F8C58 */ lw $t7, %lo(jpt_80058C58)($at) +.L7F0B490C: +/* 0E943C 7F0B490C 01E00008 */ jr $t7 +/* 0E9440 7F0B4910 00000000 */ nop +.L7F0B4914: +/* 0E9444 7F0B4914 241800C8 */ li $t8, 200 +/* 0E9448 7F0B4918 AC780000 */ sw $t8, ($v1) +def_7F0B490C: +.L7F0B491C: +/* 0E944C 7F0B491C 0FC227E6 */ jal get_cur_players_room +/* 0E9450 7F0B4920 00000000 */ nop +/* 0E9454 7F0B4924 3C018004 */ lui $at, %hi(current_room_maybe) +/* 0E9458 7F0B4928 00409825 */ move $s3, $v0 +/* 0E945C 7F0B492C 0FC227F5 */ jal get_BONDdata_position +/* 0E9460 7F0B4930 AC224838 */ sw $v0, %lo(current_room_maybe)($at) +/* 0E9464 7F0B4934 0FC22800 */ jal get_BONDdata_position3 +/* 0E9468 7F0B4938 0040A025 */ move $s4, $v0 +/* 0E946C 7F0B493C 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E9470 7F0B4940 0040A825 */ move $s5, $v0 +/* 0E9474 7F0B4944 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E9478 7F0B4948 0000B825 */ move $s7, $zero +/* 0E947C 7F0B494C 241E000B */ li $fp, 11 +/* 0E9480 7F0B4950 8C790000 */ lw $t9, ($v1) +.L7F0B4954: +/* 0E9484 7F0B4954 3C128004 */ lui $s2, %hi(D_800443C4) +/* 0E9488 7F0B4958 265243C4 */ addiu $s2, %lo(D_800443C4) # addiu $s2, $s2, 0x43c4 +/* 0E948C 7F0B495C 13200025 */ beqz $t9, .L7F0B49F4 +/* 0E9490 7F0B4960 00008025 */ move $s0, $zero +/* 0E9494 7F0B4964 00008825 */ move $s1, $zero +/* 0E9498 7F0B4968 00601025 */ move $v0, $v1 +.L7F0B496C: +/* 0E949C 7F0B496C 92480000 */ lbu $t0, ($s2) +/* 0E94A0 7F0B4970 5500001B */ bnezl $t0, .L7F0B49E0 +/* 0E94A4 7F0B4974 8C4E0008 */ lw $t6, 8($v0) +/* 0E94A8 7F0B4978 52160019 */ beql $s0, $s6, .L7F0B49E0 +/* 0E94AC 7F0B497C 8C4E0008 */ lw $t6, 8($v0) +/* 0E94B0 7F0B4980 90490004 */ lbu $t1, 4($v0) +/* 0E94B4 7F0B4984 02002025 */ move $a0, $s0 +/* 0E94B8 7F0B4988 02802825 */ move $a1, $s4 +/* 0E94BC 7F0B498C 12690004 */ beq $s3, $t1, .L7F0B49A0 +/* 0E94C0 7F0B4990 00000000 */ nop +/* 0E94C4 7F0B4994 904A0005 */ lbu $t2, 5($v0) +/* 0E94C8 7F0B4998 166A000D */ bne $s3, $t2, .L7F0B49D0 +/* 0E94CC 7F0B499C 00000000 */ nop +.L7F0B49A0: +/* 0E94D0 7F0B49A0 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0E94D4 7F0B49A4 02A03025 */ move $a2, $s5 +/* 0E94D8 7F0B49A8 10400009 */ beqz $v0, .L7F0B49D0 +/* 0E94DC 7F0B49AC 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E94E0 7F0B49B0 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E94E4 7F0B49B4 0200B025 */ move $s6, $s0 +/* 0E94E8 7F0B49B8 00711021 */ addu $v0, $v1, $s1 +/* 0E94EC 7F0B49BC 904C0004 */ lbu $t4, 4($v0) +/* 0E94F0 7F0B49C0 904B0005 */ lbu $t3, 5($v0) +/* 0E94F4 7F0B49C4 026C6826 */ xor $t5, $s3, $t4 +/* 0E94F8 7F0B49C8 1000000A */ b .L7F0B49F4 +/* 0E94FC 7F0B49CC 016D9826 */ xor $s3, $t3, $t5 +.L7F0B49D0: +/* 0E9500 7F0B49D0 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E9504 7F0B49D4 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E9508 7F0B49D8 00711021 */ addu $v0, $v1, $s1 +/* 0E950C 7F0B49DC 8C4E0008 */ lw $t6, 8($v0) +.L7F0B49E0: +/* 0E9510 7F0B49E0 26100001 */ addiu $s0, $s0, 1 +/* 0E9514 7F0B49E4 26520001 */ addiu $s2, $s2, 1 +/* 0E9518 7F0B49E8 26310008 */ addiu $s1, $s1, 8 +/* 0E951C 7F0B49EC 15C0FFDF */ bnez $t6, .L7F0B496C +/* 0E9520 7F0B49F0 24420008 */ addiu $v0, $v0, 8 +.L7F0B49F4: +/* 0E9524 7F0B49F4 001078C0 */ sll $t7, $s0, 3 +/* 0E9528 7F0B49F8 006FC021 */ addu $t8, $v1, $t7 +/* 0E952C 7F0B49FC 8F190000 */ lw $t9, ($t8) +/* 0E9530 7F0B4A00 26F70001 */ addiu $s7, $s7, 1 +/* 0E9534 7F0B4A04 13200003 */ beqz $t9, .L7F0B4A14 +/* 0E9538 7F0B4A08 00000000 */ nop +/* 0E953C 7F0B4A0C 56FEFFD1 */ bnel $s7, $fp, .L7F0B4954 +/* 0E9540 7F0B4A10 8C790000 */ lw $t9, ($v1) +.L7F0B4A14: +/* 0E9544 7F0B4A14 3C018004 */ lui $at, %hi(current_room_maybe) +/* 0E9548 7F0B4A18 0FC2E29B */ jal sub_GAME_7F0B8A6C +/* 0E954C 7F0B4A1C AC334838 */ sw $s3, %lo(current_room_maybe)($at) +/* 0E9550 7F0B4A20 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E9554 7F0B4A24 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9558 7F0B4A28 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E955C 7F0B4A2C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9560 7F0B4A30 8FB30024 */ lw $s3, 0x24($sp) +/* 0E9564 7F0B4A34 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9568 7F0B4A38 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E956C 7F0B4A3C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9570 7F0B4A40 8FB70034 */ lw $s7, 0x34($sp) +/* 0E9574 7F0B4A44 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9578 7F0B4A48 03E00008 */ jr $ra +/* 0E957C 7F0B4A4C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4A50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4A50 +/* 0E9580 7F0B4A50 AFA50004 */ sw $a1, 4($sp) +/* 0E9584 7F0B4A54 908E0000 */ lbu $t6, ($a0) +/* 0E9588 7F0B4A58 240800FF */ li $t0, 255 +/* 0E958C 7F0B4A5C 30A600FF */ andi $a2, $a1, 0xff +/* 0E9590 7F0B4A60 110E000C */ beq $t0, $t6, .L7F0B4A94 +/* 0E9594 7F0B4A64 00001025 */ move $v0, $zero +/* 0E9598 7F0B4A68 00801821 */ addu $v1, $a0, $zero +/* 0E959C 7F0B4A6C 90850000 */ lbu $a1, ($a0) +/* 0E95A0 7F0B4A70 00C03825 */ move $a3, $a2 +.L7F0B4A74: +/* 0E95A4 7F0B4A74 10E5000D */ beq $a3, $a1, .L7F0B4AAC +/* 0E95A8 7F0B4A78 24420001 */ addiu $v0, $v0, 1 +/* 0E95AC 7F0B4A7C 28410010 */ slti $at, $v0, 0x10 +/* 0E95B0 7F0B4A80 10200004 */ beqz $at, .L7F0B4A94 +/* 0E95B4 7F0B4A84 24630001 */ addiu $v1, $v1, 1 +/* 0E95B8 7F0B4A88 90650000 */ lbu $a1, ($v1) +/* 0E95BC 7F0B4A8C 1505FFF9 */ bne $t0, $a1, .L7F0B4A74 +/* 0E95C0 7F0B4A90 00000000 */ nop +.L7F0B4A94: +/* 0E95C4 7F0B4A94 2841000F */ slti $at, $v0, 0xf +/* 0E95C8 7F0B4A98 10200004 */ beqz $at, .L7F0B4AAC +/* 0E95CC 7F0B4A9C 00821821 */ addu $v1, $a0, $v0 +/* 0E95D0 7F0B4AA0 240F00FF */ li $t7, 255 +/* 0E95D4 7F0B4AA4 A0660000 */ sb $a2, ($v1) +/* 0E95D8 7F0B4AA8 A06F0001 */ sb $t7, 1($v1) +.L7F0B4AAC: +/* 0E95DC 7F0B4AAC 03E00008 */ jr $ra +/* 0E95E0 7F0B4AB0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4AB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4AB4 +/* 0E95E4 7F0B4AB4 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 0E95E8 7F0B4AB8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E95EC 7F0B4ABC 3C158008 */ lui $s5, %hi(ptr_bgdata_portals) +/* 0E95F0 7F0B4AC0 26B5FF80 */ addiu $s5, %lo(ptr_bgdata_portals) # addiu $s5, $s5, -0x80 +/* 0E95F4 7F0B4AC4 8EA80000 */ lw $t0, ($s5) +/* 0E95F8 7F0B4AC8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E95FC 7F0B4ACC AFBE0038 */ sw $fp, 0x38($sp) +/* 0E9600 7F0B4AD0 AFB70034 */ sw $s7, 0x34($sp) +/* 0E9604 7F0B4AD4 AFB60030 */ sw $s6, 0x30($sp) +/* 0E9608 7F0B4AD8 AFB40028 */ sw $s4, 0x28($sp) +/* 0E960C 7F0B4ADC AFB30024 */ sw $s3, 0x24($sp) +/* 0E9610 7F0B4AE0 AFB20020 */ sw $s2, 0x20($sp) +/* 0E9614 7F0B4AE4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E9618 7F0B4AE8 AFB00018 */ sw $s0, 0x18($sp) +/* 0E961C 7F0B4AEC AFA7016C */ sw $a3, 0x16c($sp) +/* 0E9620 7F0B4AF0 8D0E0000 */ lw $t6, ($t0) +/* 0E9624 7F0B4AF4 00809825 */ move $s3, $a0 +/* 0E9628 7F0B4AF8 00A0A025 */ move $s4, $a1 +/* 0E962C 7F0B4AFC 11C00013 */ beqz $t6, .L7F0B4B4C +/* 0E9630 7F0B4B00 00C0B025 */ move $s6, $a2 +/* 0E9634 7F0B4B04 27B1005C */ addiu $s1, $sp, 0x5c +/* 0E9638 7F0B4B08 00009025 */ move $s2, $zero +/* 0E963C 7F0B4B0C AFA0012C */ sw $zero, 0x12c($sp) +/* 0E9640 7F0B4B10 8FA4012C */ lw $a0, 0x12c($sp) +.L7F0B4B14: +/* 0E9644 7F0B4B14 02602825 */ move $a1, $s3 +/* 0E9648 7F0B4B18 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0E964C 7F0B4B1C 02803025 */ move $a2, $s4 +/* 0E9650 7F0B4B20 A2220000 */ sb $v0, ($s1) +/* 0E9654 7F0B4B24 8FAF012C */ lw $t7, 0x12c($sp) +/* 0E9658 7F0B4B28 8EA80000 */ lw $t0, ($s5) +/* 0E965C 7F0B4B2C 26520008 */ addiu $s2, $s2, 8 +/* 0E9660 7F0B4B30 25F80001 */ addiu $t8, $t7, 1 +/* 0E9664 7F0B4B34 AFB8012C */ sw $t8, 0x12c($sp) +/* 0E9668 7F0B4B38 0112C821 */ addu $t9, $t0, $s2 +/* 0E966C 7F0B4B3C 8F290000 */ lw $t1, ($t9) +/* 0E9670 7F0B4B40 26310001 */ addiu $s1, $s1, 1 +/* 0E9674 7F0B4B44 5520FFF3 */ bnezl $t1, .L7F0B4B14 +/* 0E9678 7F0B4B48 8FA4012C */ lw $a0, 0x12c($sp) +.L7F0B4B4C: +/* 0E967C 7F0B4B4C 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E9680 7F0B4B50 02C02025 */ move $a0, $s6 +/* 0E9684 7F0B4B54 27A20158 */ addiu $v0, $sp, 0x158 +.L7F0B4B58: +/* 0E9688 7F0B4B58 908A0000 */ lbu $t2, ($a0) +/* 0E968C 7F0B4B5C 24630001 */ addiu $v1, $v1, 1 +/* 0E9690 7F0B4B60 0062082B */ sltu $at, $v1, $v0 +/* 0E9694 7F0B4B64 24840001 */ addiu $a0, $a0, 1 +/* 0E9698 7F0B4B68 1420FFFB */ bnez $at, .L7F0B4B58 +/* 0E969C 7F0B4B6C A06AFFFF */ sb $t2, -1($v1) +/* 0E96A0 7F0B4B70 02C02025 */ move $a0, $s6 +/* 0E96A4 7F0B4B74 27A20130 */ addiu $v0, $sp, 0x130 +/* 0E96A8 7F0B4B78 27A30138 */ addiu $v1, $sp, 0x138 +.L7F0B4B7C: +/* 0E96AC 7F0B4B7C 908B0000 */ lbu $t3, ($a0) +/* 0E96B0 7F0B4B80 24420001 */ addiu $v0, $v0, 1 +/* 0E96B4 7F0B4B84 0043082B */ sltu $at, $v0, $v1 +/* 0E96B8 7F0B4B88 24840001 */ addiu $a0, $a0, 1 +/* 0E96BC 7F0B4B8C 1420FFFB */ bnez $at, .L7F0B4B7C +/* 0E96C0 7F0B4B90 A04BFFFF */ sb $t3, -1($v0) +/* 0E96C4 7F0B4B94 93AC0150 */ lbu $t4, 0x150($sp) +/* 0E96C8 7F0B4B98 240500FF */ li $a1, 255 +/* 0E96CC 7F0B4B9C AFA00124 */ sw $zero, 0x124($sp) +/* 0E96D0 7F0B4BA0 10AC0009 */ beq $a1, $t4, .L7F0B4BC8 +/* 0E96D4 7F0B4BA4 27BE0160 */ addiu $fp, $sp, 0x160 +/* 0E96D8 7F0B4BA8 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E96DC 7F0B4BAC 27A20160 */ addiu $v0, $sp, 0x160 +/* 0E96E0 7F0B4BB0 906D0001 */ lbu $t5, 1($v1) +.L7F0B4BB4: +/* 0E96E4 7F0B4BB4 24630001 */ addiu $v1, $v1, 1 +/* 0E96E8 7F0B4BB8 50AD0004 */ beql $a1, $t5, .L7F0B4BCC +/* 0E96EC 7F0B4BBC AFA00124 */ sw $zero, 0x124($sp) +/* 0E96F0 7F0B4BC0 5462FFFC */ bnel $v1, $v0, .L7F0B4BB4 +/* 0E96F4 7F0B4BC4 906D0001 */ lbu $t5, 1($v1) +.L7F0B4BC8: +/* 0E96F8 7F0B4BC8 AFA00124 */ sw $zero, 0x124($sp) +.L7F0B4BCC: +/* 0E96FC 7F0B4BCC 24170002 */ li $s7, 2 +/* 0E9700 7F0B4BD0 24160001 */ li $s6, 1 +/* 0E9704 7F0B4BD4 27B40130 */ addiu $s4, $sp, 0x130 +/* 0E9708 7F0B4BD8 27B30140 */ addiu $s3, $sp, 0x140 +.L7F0B4BDC: +/* 0E970C 7F0B4BDC 240E00FF */ li $t6, 255 +/* 0E9710 7F0B4BE0 A3AE0140 */ sb $t6, 0x140($sp) +/* 0E9714 7F0B4BE4 AFA0012C */ sw $zero, 0x12c($sp) +/* 0E9718 7F0B4BE8 8D0F0000 */ lw $t7, ($t0) +/* 0E971C 7F0B4BEC 00009025 */ move $s2, $zero +/* 0E9720 7F0B4BF0 01001825 */ move $v1, $t0 +/* 0E9724 7F0B4BF4 51E0003D */ beql $t7, $zero, .L7F0B4CEC +/* 0E9728 7F0B4BF8 93A40140 */ lbu $a0, 0x140($sp) +/* 0E972C 7F0B4BFC 93B80150 */ lbu $t8, 0x150($sp) +.L7F0B4C00: +/* 0E9730 7F0B4C00 8FB9012C */ lw $t9, 0x12c($sp) +/* 0E9734 7F0B4C04 27A9005C */ addiu $t1, $sp, 0x5c +/* 0E9738 7F0B4C08 10B8002E */ beq $a1, $t8, .L7F0B4CC4 +/* 0E973C 7F0B4C0C 03298821 */ addu $s1, $t9, $t1 +/* 0E9740 7F0B4C10 27AA0150 */ addiu $t2, $sp, 0x150 +/* 0E9744 7F0B4C14 000A8021 */ addu $s0, $zero, $t2 +/* 0E9748 7F0B4C18 92220000 */ lbu $v0, ($s1) +.L7F0B4C1C: +/* 0E974C 7F0B4C1C 16C20011 */ bne $s6, $v0, .L7F0B4C64 +/* 0E9750 7F0B4C20 00000000 */ nop +/* 0E9754 7F0B4C24 906B0004 */ lbu $t3, 4($v1) +/* 0E9758 7F0B4C28 920C0000 */ lbu $t4, ($s0) +/* 0E975C 7F0B4C2C 02602025 */ move $a0, $s3 +/* 0E9760 7F0B4C30 156C000C */ bne $t3, $t4, .L7F0B4C64 +/* 0E9764 7F0B4C34 00000000 */ nop +/* 0E9768 7F0B4C38 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E976C 7F0B4C3C 90650005 */ lbu $a1, 5($v1) +/* 0E9770 7F0B4C40 8EAD0000 */ lw $t5, ($s5) +/* 0E9774 7F0B4C44 02802025 */ move $a0, $s4 +/* 0E9778 7F0B4C48 01B27021 */ addu $t6, $t5, $s2 +/* 0E977C 7F0B4C4C 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E9780 7F0B4C50 91C50005 */ lbu $a1, 5($t6) +/* 0E9784 7F0B4C54 8EA80000 */ lw $t0, ($s5) +/* 0E9788 7F0B4C58 A2200000 */ sb $zero, ($s1) +/* 0E978C 7F0B4C5C 300200FF */ andi $v0, $zero, 0xff +/* 0E9790 7F0B4C60 01121821 */ addu $v1, $t0, $s2 +.L7F0B4C64: +/* 0E9794 7F0B4C64 56E20011 */ bnel $s7, $v0, .L7F0B4CAC +/* 0E9798 7F0B4C68 920A0001 */ lbu $t2, 1($s0) +/* 0E979C 7F0B4C6C 906F0005 */ lbu $t7, 5($v1) +/* 0E97A0 7F0B4C70 92180000 */ lbu $t8, ($s0) +/* 0E97A4 7F0B4C74 02602025 */ move $a0, $s3 +/* 0E97A8 7F0B4C78 55F8000C */ bnel $t7, $t8, .L7F0B4CAC +/* 0E97AC 7F0B4C7C 920A0001 */ lbu $t2, 1($s0) +/* 0E97B0 7F0B4C80 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E97B4 7F0B4C84 90650004 */ lbu $a1, 4($v1) +/* 0E97B8 7F0B4C88 8EB90000 */ lw $t9, ($s5) +/* 0E97BC 7F0B4C8C 02802025 */ move $a0, $s4 +/* 0E97C0 7F0B4C90 03324821 */ addu $t1, $t9, $s2 +/* 0E97C4 7F0B4C94 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E97C8 7F0B4C98 91250004 */ lbu $a1, 4($t1) +/* 0E97CC 7F0B4C9C 8EA80000 */ lw $t0, ($s5) +/* 0E97D0 7F0B4CA0 A2200000 */ sb $zero, ($s1) +/* 0E97D4 7F0B4CA4 01121821 */ addu $v1, $t0, $s2 +/* 0E97D8 7F0B4CA8 920A0001 */ lbu $t2, 1($s0) +.L7F0B4CAC: +/* 0E97DC 7F0B4CAC 240100FF */ li $at, 255 +/* 0E97E0 7F0B4CB0 26100001 */ addiu $s0, $s0, 1 +/* 0E97E4 7F0B4CB4 51410004 */ beql $t2, $at, .L7F0B4CC8 +/* 0E97E8 7F0B4CB8 8FAB012C */ lw $t3, 0x12c($sp) +/* 0E97EC 7F0B4CBC 561EFFD7 */ bnel $s0, $fp, .L7F0B4C1C +/* 0E97F0 7F0B4CC0 92220000 */ lbu $v0, ($s1) +.L7F0B4CC4: +/* 0E97F4 7F0B4CC4 8FAB012C */ lw $t3, 0x12c($sp) +.L7F0B4CC8: +/* 0E97F8 7F0B4CC8 26520008 */ addiu $s2, $s2, 8 +/* 0E97FC 7F0B4CCC 24630008 */ addiu $v1, $v1, 8 +/* 0E9800 7F0B4CD0 256C0001 */ addiu $t4, $t3, 1 +/* 0E9804 7F0B4CD4 AFAC012C */ sw $t4, 0x12c($sp) +/* 0E9808 7F0B4CD8 8C6D0000 */ lw $t5, ($v1) +/* 0E980C 7F0B4CDC 240500FF */ li $a1, 255 +/* 0E9810 7F0B4CE0 55A0FFC7 */ bnezl $t5, .L7F0B4C00 +/* 0E9814 7F0B4CE4 93B80150 */ lbu $t8, 0x150($sp) +/* 0E9818 7F0B4CE8 93A40140 */ lbu $a0, 0x140($sp) +.L7F0B4CEC: +/* 0E981C 7F0B4CEC 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E9820 7F0B4CF0 27A20140 */ addiu $v0, $sp, 0x140 +/* 0E9824 7F0B4CF4 14A40003 */ bne $a1, $a0, .L7F0B4D04 +/* 0E9828 7F0B4CF8 00000000 */ nop +/* 0E982C 7F0B4CFC 10000015 */ b .L7F0B4D54 +/* 0E9830 7F0B4D00 93A20150 */ lbu $v0, 0x150($sp) +.L7F0B4D04: +/* 0E9834 7F0B4D04 904E0000 */ lbu $t6, ($v0) +/* 0E9838 7F0B4D08 24420001 */ addiu $v0, $v0, 1 +/* 0E983C 7F0B4D0C 27AF0150 */ addiu $t7, $sp, 0x150 +/* 0E9840 7F0B4D10 004F082B */ sltu $at, $v0, $t7 +/* 0E9844 7F0B4D14 24630001 */ addiu $v1, $v1, 1 +/* 0E9848 7F0B4D18 1420FFFA */ bnez $at, .L7F0B4D04 +/* 0E984C 7F0B4D1C A06EFFFF */ sb $t6, -1($v1) +/* 0E9850 7F0B4D20 10A40009 */ beq $a1, $a0, .L7F0B4D48 +/* 0E9854 7F0B4D24 AFA00124 */ sw $zero, 0x124($sp) +/* 0E9858 7F0B4D28 02601025 */ move $v0, $s3 +/* 0E985C 7F0B4D2C 90580001 */ lbu $t8, 1($v0) +.L7F0B4D30: +/* 0E9860 7F0B4D30 24420001 */ addiu $v0, $v0, 1 +/* 0E9864 7F0B4D34 27B90150 */ addiu $t9, $sp, 0x150 +/* 0E9868 7F0B4D38 10B80003 */ beq $a1, $t8, .L7F0B4D48 +/* 0E986C 7F0B4D3C 00000000 */ nop +/* 0E9870 7F0B4D40 5459FFFB */ bnel $v0, $t9, .L7F0B4D30 +/* 0E9874 7F0B4D44 90580001 */ lbu $t8, 1($v0) +.L7F0B4D48: +/* 0E9878 7F0B4D48 14A4FFA4 */ bne $a1, $a0, .L7F0B4BDC +/* 0E987C 7F0B4D4C AFA00124 */ sw $zero, 0x124($sp) +/* 0E9880 7F0B4D50 93A20150 */ lbu $v0, 0x150($sp) +.L7F0B4D54: +/* 0E9884 7F0B4D54 10A20011 */ beq $a1, $v0, .L7F0B4D9C +/* 0E9888 7F0B4D58 8FA90124 */ lw $t1, 0x124($sp) +/* 0E988C 7F0B4D5C 8FAB016C */ lw $t3, 0x16c($sp) +/* 0E9890 7F0B4D60 27AA0150 */ addiu $t2, $sp, 0x150 +/* 0E9894 7F0B4D64 012A1821 */ addu $v1, $t1, $t2 +/* 0E9898 7F0B4D68 90620000 */ lbu $v0, ($v1) +/* 0E989C 7F0B4D6C 01692021 */ addu $a0, $t3, $t1 +/* 0E98A0 7F0B4D70 A0820000 */ sb $v0, ($a0) +.L7F0B4D74: +/* 0E98A4 7F0B4D74 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E98A8 7F0B4D78 24630001 */ addiu $v1, $v1, 1 +/* 0E98AC 7F0B4D7C 24840001 */ addiu $a0, $a0, 1 +/* 0E98B0 7F0B4D80 25AE0001 */ addiu $t6, $t5, 1 +/* 0E98B4 7F0B4D84 29C10007 */ slti $at, $t6, 7 +/* 0E98B8 7F0B4D88 10200004 */ beqz $at, .L7F0B4D9C +/* 0E98BC 7F0B4D8C AFAE0124 */ sw $t6, 0x124($sp) +/* 0E98C0 7F0B4D90 90620000 */ lbu $v0, ($v1) +/* 0E98C4 7F0B4D94 54A2FFF7 */ bnel $a1, $v0, .L7F0B4D74 +/* 0E98C8 7F0B4D98 A0820000 */ sb $v0, ($a0) +.L7F0B4D9C: +/* 0E98CC 7F0B4D9C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0E98D0 7F0B4DA0 8FB90124 */ lw $t9, 0x124($sp) +/* 0E98D4 7F0B4DA4 8FA60178 */ lw $a2, 0x178($sp) +/* 0E98D8 7F0B4DA8 240F00FF */ li $t7, 255 +/* 0E98DC 7F0B4DAC 03194821 */ addu $t1, $t8, $t9 +/* 0E98E0 7F0B4DB0 A12F0000 */ sb $t7, ($t1) +/* 0E98E4 7F0B4DB4 18C00013 */ blez $a2, .L7F0B4E04 +/* 0E98E8 7F0B4DB8 AFA00124 */ sw $zero, 0x124($sp) +/* 0E98EC 7F0B4DBC 93AA0130 */ lbu $t2, 0x130($sp) +/* 0E98F0 7F0B4DC0 27A20130 */ addiu $v0, $sp, 0x130 +/* 0E98F4 7F0B4DC4 8FA40170 */ lw $a0, 0x170($sp) +/* 0E98F8 7F0B4DC8 50AA000F */ beql $a1, $t2, .L7F0B4E08 +/* 0E98FC 7F0B4DCC 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E9900 7F0B4DD0 90430000 */ lbu $v1, ($v0) +/* 0E9904 7F0B4DD4 AC830000 */ sw $v1, ($a0) +.L7F0B4DD8: +/* 0E9908 7F0B4DD8 8FAB0124 */ lw $t3, 0x124($sp) +/* 0E990C 7F0B4DDC 24420001 */ addiu $v0, $v0, 1 +/* 0E9910 7F0B4DE0 24840004 */ addiu $a0, $a0, 4 +/* 0E9914 7F0B4DE4 256C0001 */ addiu $t4, $t3, 1 +/* 0E9918 7F0B4DE8 0186082A */ slt $at, $t4, $a2 +/* 0E991C 7F0B4DEC 10200005 */ beqz $at, .L7F0B4E04 +/* 0E9920 7F0B4DF0 AFAC0124 */ sw $t4, 0x124($sp) +/* 0E9924 7F0B4DF4 90430000 */ lbu $v1, ($v0) +/* 0E9928 7F0B4DF8 240100FF */ li $at, 255 +/* 0E992C 7F0B4DFC 5461FFF6 */ bnel $v1, $at, .L7F0B4DD8 +/* 0E9930 7F0B4E00 AC830000 */ sw $v1, ($a0) +.L7F0B4E04: +/* 0E9934 7F0B4E04 8FAD0124 */ lw $t5, 0x124($sp) +.L7F0B4E08: +/* 0E9938 7F0B4E08 8FAE0174 */ lw $t6, 0x174($sp) +/* 0E993C 7F0B4E0C ADCD0000 */ sw $t5, ($t6) +/* 0E9940 7F0B4E10 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E9944 7F0B4E14 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9948 7F0B4E18 8FB70034 */ lw $s7, 0x34($sp) +/* 0E994C 7F0B4E1C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9950 7F0B4E20 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E9954 7F0B4E24 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9958 7F0B4E28 8FB30024 */ lw $s3, 0x24($sp) +/* 0E995C 7F0B4E2C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9960 7F0B4E30 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E9964 7F0B4E34 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9968 7F0B4E38 03E00008 */ jr $ra +/* 0E996C 7F0B4E3C 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4E40(void *arg0) { + void *temp_v1; + void *temp_a1; + void *temp_a2; + void *temp_a0; + void *temp_v0; + void *phi_a0; + + // Node 0 + temp_v1 = (arg0 + 8); + *arg0 = 0xbc000002; + arg0->unk4 = 0x80000040; + temp_a1 = (temp_v1 + 8); + *temp_v1 = 0x3860010; + temp_v1->unk4 = &GlobalLight.l[0];// D_80044848; + temp_a2 = (temp_a1 + 8); + *temp_a1 = 0x3880010; + temp_a1->unk4 = &//GlobalLight.a; //D_80044840; + *temp_a2 = 0x3840010; + sp20->unk4 = sub_GAME_7F078474((temp_a2 + 8), temp_a1, temp_a2); + *arg0 = 0x3820010; + sp1C->unk4 = (s32) (sub_GAME_7F078474((arg0 + 8), arg0, sp20) + 0x10); + *arg0 = 0xbc003c06; + arg0->unk4 = (s32) ptr_bg_data; + temp_a0 = (arg0 + 8); + if (dword_CODE_bss_8007FF88 == 1) + { + // Node 1 + *temp_a0 = 0x6000000; + temp_a0->unk4 = (?32) dword_CODE_bss_8007BF98; + phi_a0 = (temp_a0 + 8); + } + else + { + // Node 2 + phi_a0 = sub_GAME_7F0BB298(sub_GAME_7F0B4FB4(sub_GAME_7F0B8D78(sub_GAME_7F0BB070(temp_a0, 0)))); + } + // Node 3 + temp_v0 = phi_a0; + *temp_v0 = 0x1030040; + temp_v0->unk4 = (?32) m; + return sub_GAME_7F08BCF4((phi_a0 + 8)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4E40 +/* 0E9970 7F0B4E40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E9974 7F0B4E44 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E9978 7F0B4E48 00801025 */ move $v0, $a0 +/* 0E997C 7F0B4E4C 3C0EBC00 */ lui $t6, (0xBC000002 >> 16) # lui $t6, 0xbc00 +/* 0E9980 7F0B4E50 3C0F8000 */ lui $t7, (0x80000040 >> 16) +/* 0E9984 7F0B4E54 35EF0040 */ ori $t7, (0x80000040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0E9988 7F0B4E58 35CE0002 */ ori $t6, (0xBC000002 & 0xFFFF) # ori $t6, $t6, 2 +/* 0E998C 7F0B4E5C 24830008 */ addiu $v1, $a0, 8 +/* 0E9990 7F0B4E60 AC4E0000 */ sw $t6, ($v0) +/* 0E9994 7F0B4E64 AC4F0004 */ sw $t7, 4($v0) +/* 0E9998 7F0B4E68 3C180386 */ lui $t8, (0x03860010 >> 16) # lui $t8, 0x386 +/* 0E999C 7F0B4E6C 3C198004 */ lui $t9, %hi(GlobalLight+0x8) +/* 0E99A0 7F0B4E70 27394848 */ addiu $t9, %lo(GlobalLight+0x8) # addiu $t9, $t9, 0x4848 +/* 0E99A4 7F0B4E74 37180010 */ ori $t8, (0x03860010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 0E99A8 7F0B4E78 24650008 */ addiu $a1, $v1, 8 +/* 0E99AC 7F0B4E7C AC780000 */ sw $t8, ($v1) +/* 0E99B0 7F0B4E80 AC790004 */ sw $t9, 4($v1) +/* 0E99B4 7F0B4E84 3C080388 */ lui $t0, (0x03880010 >> 16) # lui $t0, 0x388 +/* 0E99B8 7F0B4E88 3C098004 */ lui $t1, %hi(GlobalLight) +/* 0E99BC 7F0B4E8C 25294840 */ addiu $t1, %lo(GlobalLight) # addiu $t1, $t1, 0x4840 +/* 0E99C0 7F0B4E90 35080010 */ ori $t0, (0x03880010 & 0xFFFF) # ori $t0, $t0, 0x10 +/* 0E99C4 7F0B4E94 24A60008 */ addiu $a2, $a1, 8 +/* 0E99C8 7F0B4E98 3C0A0384 */ lui $t2, (0x03840010 >> 16) # lui $t2, 0x384 +/* 0E99CC 7F0B4E9C ACA80000 */ sw $t0, ($a1) +/* 0E99D0 7F0B4EA0 ACA90004 */ sw $t1, 4($a1) +/* 0E99D4 7F0B4EA4 354A0010 */ ori $t2, (0x03840010 & 0xFFFF) # ori $t2, $t2, 0x10 +/* 0E99D8 7F0B4EA8 ACCA0000 */ sw $t2, ($a2) +/* 0E99DC 7F0B4EAC 24C40008 */ addiu $a0, $a2, 8 +/* 0E99E0 7F0B4EB0 AFA40030 */ sw $a0, 0x30($sp) +/* 0E99E4 7F0B4EB4 0FC1E11D */ jal sub_GAME_7F078474 +/* 0E99E8 7F0B4EB8 AFA60020 */ sw $a2, 0x20($sp) +/* 0E99EC 7F0B4EBC 8FA50030 */ lw $a1, 0x30($sp) +/* 0E99F0 7F0B4EC0 8FA60020 */ lw $a2, 0x20($sp) +/* 0E99F4 7F0B4EC4 3C0B0382 */ lui $t3, (0x03820010 >> 16) # lui $t3, 0x382 +/* 0E99F8 7F0B4EC8 356B0010 */ ori $t3, (0x03820010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 0E99FC 7F0B4ECC ACC20004 */ sw $v0, 4($a2) +/* 0E9A00 7F0B4ED0 ACAB0000 */ sw $t3, ($a1) +/* 0E9A04 7F0B4ED4 24A40008 */ addiu $a0, $a1, 8 +/* 0E9A08 7F0B4ED8 AFA40030 */ sw $a0, 0x30($sp) +/* 0E9A0C 7F0B4EDC 0FC1E11D */ jal sub_GAME_7F078474 +/* 0E9A10 7F0B4EE0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0E9A14 7F0B4EE4 8FA40030 */ lw $a0, 0x30($sp) +/* 0E9A18 7F0B4EE8 8FA5001C */ lw $a1, 0x1c($sp) +/* 0E9A1C 7F0B4EEC 244C0010 */ addiu $t4, $v0, 0x10 +/* 0E9A20 7F0B4EF0 3C0DBC00 */ lui $t5, (0xBC003C06 >> 16) # lui $t5, 0xbc00 +/* 0E9A24 7F0B4EF4 35AD3C06 */ ori $t5, (0xBC003C06 & 0xFFFF) # ori $t5, $t5, 0x3c06 +/* 0E9A28 7F0B4EF8 00801825 */ move $v1, $a0 +/* 0E9A2C 7F0B4EFC ACAC0004 */ sw $t4, 4($a1) +/* 0E9A30 7F0B4F00 AC6D0000 */ sw $t5, ($v1) +/* 0E9A34 7F0B4F04 3C0E8008 */ lui $t6, %hi(ptr_bg_data) +/* 0E9A38 7F0B4F08 8DCEBF90 */ lw $t6, %lo(ptr_bg_data)($t6) +/* 0E9A3C 7F0B4F0C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007FF88) +/* 0E9A40 7F0B4F10 24010001 */ li $at, 1 +/* 0E9A44 7F0B4F14 AC6E0004 */ sw $t6, 4($v1) +/* 0E9A48 7F0B4F18 8DEFFF88 */ lw $t7, %lo(dword_CODE_bss_8007FF88)($t7) +/* 0E9A4C 7F0B4F1C 24840008 */ addiu $a0, $a0, 8 +/* 0E9A50 7F0B4F20 00801025 */ move $v0, $a0 +/* 0E9A54 7F0B4F24 15E10007 */ bne $t7, $at, .L7F0B4F44 +/* 0E9A58 7F0B4F28 3C180600 */ lui $t8, 0x600 +/* 0E9A5C 7F0B4F2C AC580000 */ sw $t8, ($v0) +/* 0E9A60 7F0B4F30 3C198008 */ lui $t9, %hi(dword_CODE_bss_8007BF98) +/* 0E9A64 7F0B4F34 8F39BF98 */ lw $t9, %lo(dword_CODE_bss_8007BF98)($t9) +/* 0E9A68 7F0B4F38 24840008 */ addiu $a0, $a0, 8 +/* 0E9A6C 7F0B4F3C 1000000A */ b .L7F0B4F68 +/* 0E9A70 7F0B4F40 AC590004 */ sw $t9, 4($v0) +.L7F0B4F44: +/* 0E9A74 7F0B4F44 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E9A78 7F0B4F48 00002825 */ move $a1, $zero +/* 0E9A7C 7F0B4F4C 0FC2E35E */ jal sub_GAME_7F0B8D78 +/* 0E9A80 7F0B4F50 00402025 */ move $a0, $v0 +/* 0E9A84 7F0B4F54 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0E9A88 7F0B4F58 00402025 */ move $a0, $v0 +/* 0E9A8C 7F0B4F5C 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E9A90 7F0B4F60 00402025 */ move $a0, $v0 +/* 0E9A94 7F0B4F64 00402025 */ move $a0, $v0 +.L7F0B4F68: +/* 0E9A98 7F0B4F68 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0E9A9C 7F0B4F6C 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0E9AA0 7F0B4F70 00801025 */ move $v0, $a0 +/* 0E9AA4 7F0B4F74 AC480000 */ sw $t0, ($v0) +/* 0E9AA8 7F0B4F78 3C098006 */ lui $t1, %hi(m) +/* 0E9AAC 7F0B4F7C 8D290820 */ lw $t1, %lo(m)($t1) +/* 0E9AB0 7F0B4F80 24840008 */ addiu $a0, $a0, 8 +/* 0E9AB4 7F0B4F84 0FC22F3D */ jal sub_GAME_7F08BCF4 +/* 0E9AB8 7F0B4F88 AC490004 */ sw $t1, 4($v0) +/* 0E9ABC 7F0B4F8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E9AC0 7F0B4F90 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E9AC4 7F0B4F94 03E00008 */ jr $ra +/* 0E9AC8 7F0B4F98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4F9C(s32 arg0) { + return (dword_CODE_bss_8007FF94 + (arg0 * 4))->unk4; +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4FB4(void) { + return sub_GAME_7F0B5058(pPlayer->viewleft, pPlayer->viewtop, (pPlayer->viewleft + pPlayer->unk7F0), (s32) (pPlayer->viewtop + pPlayer->unk7F2)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4FB4 +/* 0E9AE4 7F0B4FB4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0E9AE8 7F0B4FB8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0E9AEC 7F0B4FBC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E9AF0 7F0B4FC0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E9AF4 7F0B4FC4 844F07F2 */ lh $t7, 0x7f2($v0) +/* 0E9AF8 7F0B4FC8 844607F6 */ lh $a2, 0x7f6($v0) +/* 0E9AFC 7F0B4FCC 844E07F0 */ lh $t6, 0x7f0($v0) +/* 0E9B00 7F0B4FD0 844507F4 */ lh $a1, 0x7f4($v0) +/* 0E9B04 7F0B4FD4 00CFC021 */ addu $t8, $a2, $t7 +/* 0E9B08 7F0B4FD8 AFB80010 */ sw $t8, 0x10($sp) +/* 0E9B0C 7F0B4FDC 0FC2D416 */ jal sub_GAME_7F0B5058 +/* 0E9B10 7F0B4FE0 00AE3821 */ addu $a3, $a1, $t6 +/* 0E9B14 7F0B4FE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E9B18 7F0B4FE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E9B1C 7F0B4FEC 03E00008 */ jr $ra +/* 0E9B20 7F0B4FF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4FF4(s32 arg0, s32 arg1, f32 arg2, ? arg3, ? arg4) { + s32 sp20; + + sp20 = sub_GAME_7F05C4B8(arg3); + return sub_GAME_7F0B5058(arg0, (s32) arg1, (s32) arg2, sp20, sub_GAME_7F05C4B8(arg4)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4FF4 +/* 0E9B24 7F0B4FF4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E9B28 7F0B4FF8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E9B2C 7F0B4FFC 44876000 */ mtc1 $a3, $f12 +/* 0E9B30 7F0B5000 AFA40028 */ sw $a0, 0x28($sp) +/* 0E9B34 7F0B5004 AFA5002C */ sw $a1, 0x2c($sp) +/* 0E9B38 7F0B5008 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0E9B3C 7F0B500C AFA60030 */ sw $a2, 0x30($sp) +/* 0E9B40 7F0B5010 AFA20020 */ sw $v0, 0x20($sp) +/* 0E9B44 7F0B5014 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0E9B48 7F0B5018 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0E9B4C 7F0B501C C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 0E9B50 7F0B5020 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0E9B54 7F0B5024 8FA40028 */ lw $a0, 0x28($sp) +/* 0E9B58 7F0B5028 4600218D */ trunc.w.s $f6, $f4 +/* 0E9B5C 7F0B502C 8FA70020 */ lw $a3, 0x20($sp) +/* 0E9B60 7F0B5030 AFA20010 */ sw $v0, 0x10($sp) +/* 0E9B64 7F0B5034 4600428D */ trunc.w.s $f10, $f8 +/* 0E9B68 7F0B5038 44053000 */ mfc1 $a1, $f6 +/* 0E9B6C 7F0B503C 44065000 */ mfc1 $a2, $f10 +/* 0E9B70 7F0B5040 0FC2D416 */ jal sub_GAME_7F0B5058 +/* 0E9B74 7F0B5044 00000000 */ nop +/* 0E9B78 7F0B5048 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E9B7C 7F0B504C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E9B80 7F0B5050 03E00008 */ jr $ra +/* 0E9B84 7F0B5054 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5058(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5058 +/* 0E9B88 7F0B5058 3C028008 */ lui $v0, %hi(pPlayer) +/* 0E9B8C 7F0B505C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0E9B90 7F0B5060 AFA40000 */ sw $a0, ($sp) +/* 0E9B94 7F0B5064 AFA7000C */ sw $a3, 0xc($sp) +/* 0E9B98 7F0B5068 844307F4 */ lh $v1, 0x7f4($v0) +/* 0E9B9C 7F0B506C 00A3082A */ slt $at, $a1, $v1 +/* 0E9BA0 7F0B5070 50200003 */ beql $at, $zero, .L7F0B5080 +/* 0E9BA4 7F0B5074 844407F6 */ lh $a0, 0x7f6($v0) +/* 0E9BA8 7F0B5078 00602825 */ move $a1, $v1 +/* 0E9BAC 7F0B507C 844407F6 */ lh $a0, 0x7f6($v0) +.L7F0B5080: +/* 0E9BB0 7F0B5080 44852000 */ mtc1 $a1, $f4 +/* 0E9BB4 7F0B5084 00C4082A */ slt $at, $a2, $a0 +/* 0E9BB8 7F0B5088 10200002 */ beqz $at, .L7F0B5094 +/* 0E9BBC 7F0B508C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E9BC0 7F0B5090 00803025 */ move $a2, $a0 +.L7F0B5094: +/* 0E9BC4 7F0B5094 844E07F0 */ lh $t6, 0x7f0($v0) +/* 0E9BC8 7F0B5098 8FAF000C */ lw $t7, 0xc($sp) +/* 0E9BCC 7F0B509C 44868000 */ mtc1 $a2, $f16 +/* 0E9BD0 7F0B50A0 006E3821 */ addu $a3, $v1, $t6 +/* 0E9BD4 7F0B50A4 00EF082A */ slt $at, $a3, $t7 +/* 0E9BD8 7F0B50A8 10200002 */ beqz $at, .L7F0B50B4 +/* 0E9BDC 7F0B50AC 468084A0 */ cvt.s.w $f18, $f16 +/* 0E9BE0 7F0B50B0 AFA7000C */ sw $a3, 0xc($sp) +.L7F0B50B4: +/* 0E9BE4 7F0B50B4 845807F2 */ lh $t8, 0x7f2($v0) +/* 0E9BE8 7F0B50B8 8FA70010 */ lw $a3, 0x10($sp) +/* 0E9BEC 7F0B50BC 00981821 */ addu $v1, $a0, $t8 +/* 0E9BF0 7F0B50C0 0067082A */ slt $at, $v1, $a3 +/* 0E9BF4 7F0B50C4 50200003 */ beql $at, $zero, .L7F0B50D4 +/* 0E9BF8 7F0B50C8 3C014080 */ lui $at, 0x4080 +/* 0E9BFC 7F0B50CC 00603825 */ move $a3, $v1 +/* 0E9C00 7F0B50D0 3C014080 */ li $at, 0x40800000 # 4.000000 +.L7F0B50D4: +/* 0E9C04 7F0B50D4 44810000 */ mtc1 $at, $f0 +/* 0E9C08 7F0B50D8 8FA30000 */ lw $v1, ($sp) +/* 0E9C0C 7F0B50DC 3C01ED00 */ lui $at, 0xed00 +/* 0E9C10 7F0B50E0 46003202 */ mul.s $f8, $f6, $f0 +/* 0E9C14 7F0B50E4 24680008 */ addiu $t0, $v1, 8 +/* 0E9C18 7F0B50E8 AFA80000 */ sw $t0, ($sp) +/* 0E9C1C 7F0B50EC 46009102 */ mul.s $f4, $f18, $f0 +/* 0E9C20 7F0B50F0 4600428D */ trunc.w.s $f10, $f8 +/* 0E9C24 7F0B50F4 4600218D */ trunc.w.s $f6, $f4 +/* 0E9C28 7F0B50F8 440A5000 */ mfc1 $t2, $f10 +/* 0E9C2C 7F0B50FC 44872000 */ mtc1 $a3, $f4 +/* 0E9C30 7F0B5100 440F3000 */ mfc1 $t7, $f6 +/* 0E9C34 7F0B5104 314B0FFF */ andi $t3, $t2, 0xfff +/* 0E9C38 7F0B5108 000B6300 */ sll $t4, $t3, 0xc +/* 0E9C3C 7F0B510C 01816825 */ or $t5, $t4, $at +/* 0E9C40 7F0B5110 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E9C44 7F0B5114 01B8C825 */ or $t9, $t5, $t8 +/* 0E9C48 7F0B5118 AC790000 */ sw $t9, ($v1) +/* 0E9C4C 7F0B511C 8FA8000C */ lw $t0, 0xc($sp) +/* 0E9C50 7F0B5120 468021A0 */ cvt.s.w $f6, $f4 +/* 0E9C54 7F0B5124 44884000 */ mtc1 $t0, $f8 +/* 0E9C58 7F0B5128 00000000 */ nop +/* 0E9C5C 7F0B512C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E9C60 7F0B5130 46005402 */ mul.s $f16, $f10, $f0 +/* 0E9C64 7F0B5134 00000000 */ nop +/* 0E9C68 7F0B5138 46003202 */ mul.s $f8, $f6, $f0 +/* 0E9C6C 7F0B513C 4600848D */ trunc.w.s $f18, $f16 +/* 0E9C70 7F0B5140 4600428D */ trunc.w.s $f10, $f8 +/* 0E9C74 7F0B5144 440A9000 */ mfc1 $t2, $f18 +/* 0E9C78 7F0B5148 440F5000 */ mfc1 $t7, $f10 +/* 0E9C7C 7F0B514C 314B0FFF */ andi $t3, $t2, 0xfff +/* 0E9C80 7F0B5150 000B6300 */ sll $t4, $t3, 0xc +/* 0E9C84 7F0B5154 31ED0FFF */ andi $t5, $t7, 0xfff +/* 0E9C88 7F0B5158 018DC025 */ or $t8, $t4, $t5 +/* 0E9C8C 7F0B515C AC780004 */ sw $t8, 4($v1) +/* 0E9C90 7F0B5160 03E00008 */ jr $ra +/* 0E9C94 7F0B5164 8FA20000 */ lw $v0, ($sp) +) +#endif + + + + + +#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; + } + // Node 2 + return -1; +} + +#else +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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B519C(void *arg0, void *arg1) { + // Node 0 + if (*arg1 <= *arg0) + { + // Node 1 + if (*arg0 <= arg1->unk8) + { + // Node 2 + if (arg1->unk4 <= arg0->unk4) + { + // Node 3 + if (arg0->unk4 <= arg1->unkC) + { + // Node 4 + return 1; + } + } + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B519C +/* 0E9CCC 7F0B519C C4800000 */ lwc1 $f0, ($a0) +/* 0E9CD0 7F0B51A0 C4A40000 */ lwc1 $f4, ($a1) +/* 0E9CD4 7F0B51A4 00001025 */ move $v0, $zero +/* 0E9CD8 7F0B51A8 4600203E */ c.le.s $f4, $f0 +/* 0E9CDC 7F0B51AC 00000000 */ nop +/* 0E9CE0 7F0B51B0 45000013 */ bc1f .L7F0B5200 +/* 0E9CE4 7F0B51B4 00000000 */ nop +/* 0E9CE8 7F0B51B8 C4A60008 */ lwc1 $f6, 8($a1) +/* 0E9CEC 7F0B51BC 4606003E */ c.le.s $f0, $f6 +/* 0E9CF0 7F0B51C0 00000000 */ nop +/* 0E9CF4 7F0B51C4 4500000E */ bc1f .L7F0B5200 +/* 0E9CF8 7F0B51C8 00000000 */ nop +/* 0E9CFC 7F0B51CC C4800004 */ lwc1 $f0, 4($a0) +/* 0E9D00 7F0B51D0 C4A80004 */ lwc1 $f8, 4($a1) +/* 0E9D04 7F0B51D4 4600403E */ c.le.s $f8, $f0 +/* 0E9D08 7F0B51D8 00000000 */ nop +/* 0E9D0C 7F0B51DC 45000008 */ bc1f .L7F0B5200 +/* 0E9D10 7F0B51E0 00000000 */ nop +/* 0E9D14 7F0B51E4 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 0E9D18 7F0B51E8 460A003E */ c.le.s $f0, $f10 +/* 0E9D1C 7F0B51EC 00000000 */ nop +/* 0E9D20 7F0B51F0 45000003 */ bc1f .L7F0B5200 +/* 0E9D24 7F0B51F4 00000000 */ nop +/* 0E9D28 7F0B51F8 03E00008 */ jr $ra +/* 0E9D2C 7F0B51FC 24020001 */ li $v0, 1 + +.L7F0B5200: +/* 0E9D30 7F0B5200 03E00008 */ jr $ra +/* 0E9D34 7F0B5204 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5208(s32 arg0, void *arg1) { + ? sp3C; + f32 sp40; + f32 sp5C; + f32 sp60; + f32 sp64; + f32 sp68; + s32 sp74; + ? temp_ret; + s32 temp_v1; + s32 phi_v1; + void *phi_a2; + s32 phi_s6; + s32 phi_s1; + s32 phi_s2; + s32 phi_s3; + s32 phi_s4; + s32 phi_s5; + s32 phi_s6_2; + s32 phi_s1_2; + s32 phi_s2_2; + s32 phi_s3_2; + s32 phi_s4_2; + s32 phi_s5_2; + s32 phi_s1_3; + s32 phi_s2_3; + s32 phi_s3_3; + + // Node 0 + video_related_27(&sp3C); + sp40 = (f32) (sp40 / D_800413FC); + phi_v1 = 0; + phi_a2 = ((arg0 * 0x50) + &array_room_info); + phi_s6_2 = 0; + phi_s4_2 = 0; + phi_s5_2 = 0; + phi_s1_3 = 0; + phi_s2_3 = 0; + phi_s3_3 = 0; +loop_1: + // Node 1 + if ((phi_v1 & 1) != 0) + { + // Node 2 + sp5C = (f32) phi_a2->unk38; + } + else + { + // Node 3 + sp5C = (f32) phi_a2->unk44; + } + // Node 4 + if ((phi_v1 & 2) != 0) + { + // Node 5 + sp60 = (f32) phi_a2->unk3C; + } + else + { + // Node 6 + sp60 = (f32) phi_a2->unk48; + } + // Node 7 + if ((phi_v1 & 4) != 0) + { + // Node 8 + sp64 = (f32) phi_a2->unk40; + } + else + { + // Node 9 + sp64 = (f32) phi_a2->unk4C; + } + // Node 10 + sp74 = (s32) phi_v1; + temp_ret = sub_GAME_7F0B5488(&sp5C, &sp68, phi_a2); + if (temp_ret == 0) + { + // Node 11 + phi_s1 = phi_s1_3; + if (sp40 <= -sp70) + { + // Node 12 + phi_s1 = (phi_s1_3 + 1); + } + // Node 13 + phi_s2 = phi_s2_3; + if (*arg1 <= sp68) + { + // Node 14 + phi_s2 = (phi_s2_3 + 1); + } + // Node 15 + phi_s3 = phi_s3_3; + if (sp68 <= arg1->unk8) + { + // Node 16 + phi_s3 = (phi_s3_3 + 1); + } + // Node 17 + phi_s4 = phi_s4_2; + if (arg1->unk4 <= sp6C) + { + // Node 18 + phi_s4 = (phi_s4_2 + 1); + } + // Node 19 + phi_s5 = phi_s5_2; + if (sp6C <= arg1->unkC) + { + // Node 20 + phi_s5 = (phi_s5_2 + 1); + } + // Node 21 + phi_s6 = (phi_s6_2 + 1); + } + else + { + // Node 22 + phi_s1_2 = phi_s1_3; + if (sp40 <= -sp70) + { + // Node 23 + phi_s1_2 = (phi_s1_3 + 1); + } + // Node 24 + if (sp68 <= *arg1) + { + // Node 25 + phi_s2_2 = (phi_s2_3 + 1); + phi_s3_2 = phi_s3_3; + } + else + { + // Node 26 + phi_s2_2 = phi_s2_3; + phi_s3_2 = phi_s3_3; + if (arg1->unk8 <= sp68) + { + // Node 27 + phi_s2_2 = phi_s2_3; + phi_s3_2 = (phi_s3_3 + 1); + } + } + // Node 28 + if (sp6C <= arg1->unk4) + { + // Node 29 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = (phi_s4_2 + 1); + phi_s5 = phi_s5_2; + } + else + { + // Node 30 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = phi_s4_2; + phi_s5 = phi_s5_2; + if (arg1->unkC <= sp6C) + { + // Node 31 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = phi_s4_2; + phi_s5 = (phi_s5_2 + 1); + } + } + } + // Node 32 + temp_v1 = (phi_v1 + 1); + phi_v1 = temp_v1; + phi_a2 = sp38; + phi_s6_2 = phi_s6; + phi_s4_2 = phi_s4; + phi_s5_2 = phi_s5; + phi_s1_3 = phi_s1; + phi_s2_3 = phi_s2; + phi_s3_3 = phi_s3; + if (temp_v1 != 8) + { + goto loop_1; + } + // Node 33 + if ((((((phi_s6 == 8) || (phi_s1 == 8)) || (phi_s2 == 8)) || (phi_s3 == 8)) || (phi_s4 == 8)) || (phi_s5 == 8)) + { + // Node 39 + } + else + { + + } + // Node 40 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5208 +/* 0E9D38 7F0B5208 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0E9D3C 7F0B520C AFBF0034 */ sw $ra, 0x34($sp) +/* 0E9D40 7F0B5210 AFB60030 */ sw $s6, 0x30($sp) +/* 0E9D44 7F0B5214 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E9D48 7F0B5218 AFB40028 */ sw $s4, 0x28($sp) +/* 0E9D4C 7F0B521C AFB30024 */ sw $s3, 0x24($sp) +/* 0E9D50 7F0B5220 AFB20020 */ sw $s2, 0x20($sp) +/* 0E9D54 7F0B5224 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E9D58 7F0B5228 AFB00018 */ sw $s0, 0x18($sp) +/* 0E9D5C 7F0B522C AFA40078 */ sw $a0, 0x78($sp) +/* 0E9D60 7F0B5230 00A08025 */ move $s0, $a1 +/* 0E9D64 7F0B5234 00008825 */ move $s1, $zero +/* 0E9D68 7F0B5238 0000B025 */ move $s6, $zero +/* 0E9D6C 7F0B523C 00009025 */ move $s2, $zero +/* 0E9D70 7F0B5240 00009825 */ move $s3, $zero +/* 0E9D74 7F0B5244 0000A025 */ move $s4, $zero +/* 0E9D78 7F0B5248 0000A825 */ move $s5, $zero +/* 0E9D7C 7F0B524C 0C0011AB */ jal video_related_27 +/* 0E9D80 7F0B5250 27A4003C */ addiu $a0, $sp, 0x3c +/* 0E9D84 7F0B5254 3C018004 */ lui $at, %hi(D_800413FC) +/* 0E9D88 7F0B5258 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) +/* 0E9D8C 7F0B525C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E9D90 7F0B5260 8FAE0078 */ lw $t6, 0x78($sp) +/* 0E9D94 7F0B5264 3C188004 */ lui $t8, %hi(array_room_info) +/* 0E9D98 7F0B5268 46062203 */ div.s $f8, $f4, $f6 +/* 0E9D9C 7F0B526C 000E7880 */ sll $t7, $t6, 2 +/* 0E9DA0 7F0B5270 01EE7821 */ addu $t7, $t7, $t6 +/* 0E9DA4 7F0B5274 000F7900 */ sll $t7, $t7, 4 +/* 0E9DA8 7F0B5278 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0E9DAC 7F0B527C 01F83021 */ addu $a2, $t7, $t8 +/* 0E9DB0 7F0B5280 00001825 */ move $v1, $zero +/* 0E9DB4 7F0B5284 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0E9DB8 7F0B5288 30790001 */ andi $t9, $v1, 1 +.L7F0B528C: +/* 0E9DBC 7F0B528C 13200004 */ beqz $t9, .L7F0B52A0 +/* 0E9DC0 7F0B5290 30680002 */ andi $t0, $v1, 2 +/* 0E9DC4 7F0B5294 C4CA0038 */ lwc1 $f10, 0x38($a2) +/* 0E9DC8 7F0B5298 10000003 */ b .L7F0B52A8 +/* 0E9DCC 7F0B529C E7AA005C */ swc1 $f10, 0x5c($sp) +.L7F0B52A0: +/* 0E9DD0 7F0B52A0 C4D00044 */ lwc1 $f16, 0x44($a2) +/* 0E9DD4 7F0B52A4 E7B0005C */ swc1 $f16, 0x5c($sp) +.L7F0B52A8: +/* 0E9DD8 7F0B52A8 11000004 */ beqz $t0, .L7F0B52BC +/* 0E9DDC 7F0B52AC 30690004 */ andi $t1, $v1, 4 +/* 0E9DE0 7F0B52B0 C4D2003C */ lwc1 $f18, 0x3c($a2) +/* 0E9DE4 7F0B52B4 10000003 */ b .L7F0B52C4 +/* 0E9DE8 7F0B52B8 E7B20060 */ swc1 $f18, 0x60($sp) +.L7F0B52BC: +/* 0E9DEC 7F0B52BC C4C40048 */ lwc1 $f4, 0x48($a2) +/* 0E9DF0 7F0B52C0 E7A40060 */ swc1 $f4, 0x60($sp) +.L7F0B52C4: +/* 0E9DF4 7F0B52C4 11200004 */ beqz $t1, .L7F0B52D8 +/* 0E9DF8 7F0B52C8 27A4005C */ addiu $a0, $sp, 0x5c +/* 0E9DFC 7F0B52CC C4C60040 */ lwc1 $f6, 0x40($a2) +/* 0E9E00 7F0B52D0 10000003 */ b .L7F0B52E0 +/* 0E9E04 7F0B52D4 E7A60064 */ swc1 $f6, 0x64($sp) +.L7F0B52D8: +/* 0E9E08 7F0B52D8 C4C8004C */ lwc1 $f8, 0x4c($a2) +/* 0E9E0C 7F0B52DC E7A80064 */ swc1 $f8, 0x64($sp) +.L7F0B52E0: +/* 0E9E10 7F0B52E0 27A50068 */ addiu $a1, $sp, 0x68 +/* 0E9E14 7F0B52E4 AFA30074 */ sw $v1, 0x74($sp) +/* 0E9E18 7F0B52E8 0FC2D522 */ jal sub_GAME_7F0B5488 +/* 0E9E1C 7F0B52EC AFA60038 */ sw $a2, 0x38($sp) +/* 0E9E20 7F0B52F0 8FA30074 */ lw $v1, 0x74($sp) +/* 0E9E24 7F0B52F4 8FA60038 */ lw $a2, 0x38($sp) +/* 0E9E28 7F0B52F8 14400025 */ bnez $v0, .L7F0B5390 +/* 0E9E2C 7F0B52FC 24070008 */ li $a3, 8 +/* 0E9E30 7F0B5300 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 0E9E34 7F0B5304 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0E9E38 7F0B5308 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0E9E3C 7F0B530C 46005407 */ neg.s $f16, $f10 +/* 0E9E40 7F0B5310 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0E9E44 7F0B5314 4610903E */ c.le.s $f18, $f16 +/* 0E9E48 7F0B5318 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0E9E4C 7F0B531C 45020003 */ bc1fl .L7F0B532C +/* 0E9E50 7F0B5320 C6060000 */ lwc1 $f6, ($s0) +/* 0E9E54 7F0B5324 26310001 */ addiu $s1, $s1, 1 +/* 0E9E58 7F0B5328 C6060000 */ lwc1 $f6, ($s0) +.L7F0B532C: +/* 0E9E5C 7F0B532C 4604303E */ c.le.s $f6, $f4 +/* 0E9E60 7F0B5330 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0E9E64 7F0B5334 45020003 */ bc1fl .L7F0B5344 +/* 0E9E68 7F0B5338 C6080008 */ lwc1 $f8, 8($s0) +/* 0E9E6C 7F0B533C 26520001 */ addiu $s2, $s2, 1 +/* 0E9E70 7F0B5340 C6080008 */ lwc1 $f8, 8($s0) +.L7F0B5344: +/* 0E9E74 7F0B5344 4608503E */ c.le.s $f10, $f8 +/* 0E9E78 7F0B5348 00000000 */ nop +/* 0E9E7C 7F0B534C 45020003 */ bc1fl .L7F0B535C +/* 0E9E80 7F0B5350 C6120004 */ lwc1 $f18, 4($s0) +/* 0E9E84 7F0B5354 26730001 */ addiu $s3, $s3, 1 +/* 0E9E88 7F0B5358 C6120004 */ lwc1 $f18, 4($s0) +.L7F0B535C: +/* 0E9E8C 7F0B535C 4610903E */ c.le.s $f18, $f16 +/* 0E9E90 7F0B5360 00000000 */ nop +/* 0E9E94 7F0B5364 45020003 */ bc1fl .L7F0B5374 +/* 0E9E98 7F0B5368 C604000C */ lwc1 $f4, 0xc($s0) +/* 0E9E9C 7F0B536C 26940001 */ addiu $s4, $s4, 1 +/* 0E9EA0 7F0B5370 C604000C */ lwc1 $f4, 0xc($s0) +.L7F0B5374: +/* 0E9EA4 7F0B5374 4604303E */ c.le.s $f6, $f4 +/* 0E9EA8 7F0B5378 00000000 */ nop +/* 0E9EAC 7F0B537C 45000002 */ bc1f .L7F0B5388 +/* 0E9EB0 7F0B5380 00000000 */ nop +/* 0E9EB4 7F0B5384 26B50001 */ addiu $s5, $s5, 1 +.L7F0B5388: +/* 0E9EB8 7F0B5388 10000025 */ b .L7F0B5420 +/* 0E9EBC 7F0B538C 26D60001 */ addiu $s6, $s6, 1 +.L7F0B5390: +/* 0E9EC0 7F0B5390 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0E9EC4 7F0B5394 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0E9EC8 7F0B5398 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0E9ECC 7F0B539C 46004287 */ neg.s $f10, $f8 +/* 0E9ED0 7F0B53A0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0E9ED4 7F0B53A4 460A803E */ c.le.s $f16, $f10 +/* 0E9ED8 7F0B53A8 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0E9EDC 7F0B53AC 45020003 */ bc1fl .L7F0B53BC +/* 0E9EE0 7F0B53B0 C6120000 */ lwc1 $f18, ($s0) +/* 0E9EE4 7F0B53B4 26310001 */ addiu $s1, $s1, 1 +/* 0E9EE8 7F0B53B8 C6120000 */ lwc1 $f18, ($s0) +.L7F0B53BC: +/* 0E9EEC 7F0B53BC 4612203E */ c.le.s $f4, $f18 +/* 0E9EF0 7F0B53C0 C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0E9EF4 7F0B53C4 45020004 */ bc1fl .L7F0B53D8 +/* 0E9EF8 7F0B53C8 C6080008 */ lwc1 $f8, 8($s0) +/* 0E9EFC 7F0B53CC 10000007 */ b .L7F0B53EC +/* 0E9F00 7F0B53D0 26520001 */ addiu $s2, $s2, 1 +/* 0E9F04 7F0B53D4 C6080008 */ lwc1 $f8, 8($s0) +.L7F0B53D8: +/* 0E9F08 7F0B53D8 4606403E */ c.le.s $f8, $f6 +/* 0E9F0C 7F0B53DC 00000000 */ nop +/* 0E9F10 7F0B53E0 45020003 */ bc1fl .L7F0B53F0 +/* 0E9F14 7F0B53E4 C60A0004 */ lwc1 $f10, 4($s0) +/* 0E9F18 7F0B53E8 26730001 */ addiu $s3, $s3, 1 +.L7F0B53EC: +/* 0E9F1C 7F0B53EC C60A0004 */ lwc1 $f10, 4($s0) +.L7F0B53F0: +/* 0E9F20 7F0B53F0 460A803E */ c.le.s $f16, $f10 +/* 0E9F24 7F0B53F4 00000000 */ nop +/* 0E9F28 7F0B53F8 45020004 */ bc1fl .L7F0B540C +/* 0E9F2C 7F0B53FC C604000C */ lwc1 $f4, 0xc($s0) +/* 0E9F30 7F0B5400 10000007 */ b .L7F0B5420 +/* 0E9F34 7F0B5404 26940001 */ addiu $s4, $s4, 1 +/* 0E9F38 7F0B5408 C604000C */ lwc1 $f4, 0xc($s0) +.L7F0B540C: +/* 0E9F3C 7F0B540C 4612203E */ c.le.s $f4, $f18 +/* 0E9F40 7F0B5410 00000000 */ nop +/* 0E9F44 7F0B5414 45020003 */ bc1fl .L7F0B5424 +/* 0E9F48 7F0B5418 24630001 */ addiu $v1, $v1, 1 +/* 0E9F4C 7F0B541C 26B50001 */ addiu $s5, $s5, 1 +.L7F0B5420: +/* 0E9F50 7F0B5420 24630001 */ addiu $v1, $v1, 1 +.L7F0B5424: +/* 0E9F54 7F0B5424 5467FF99 */ bnel $v1, $a3, .L7F0B528C +/* 0E9F58 7F0B5428 30790001 */ andi $t9, $v1, 1 +/* 0E9F5C 7F0B542C 12C7000B */ beq $s6, $a3, .L7F0B545C +/* 0E9F60 7F0B5430 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9F64 7F0B5434 12270009 */ beq $s1, $a3, .L7F0B545C +/* 0E9F68 7F0B5438 00000000 */ nop +/* 0E9F6C 7F0B543C 12470007 */ beq $s2, $a3, .L7F0B545C +/* 0E9F70 7F0B5440 00000000 */ nop +/* 0E9F74 7F0B5444 12670005 */ beq $s3, $a3, .L7F0B545C +/* 0E9F78 7F0B5448 00000000 */ nop +/* 0E9F7C 7F0B544C 12870003 */ beq $s4, $a3, .L7F0B545C +/* 0E9F80 7F0B5450 00000000 */ nop +/* 0E9F84 7F0B5454 16A70003 */ bne $s5, $a3, .L7F0B5464 +/* 0E9F88 7F0B5458 24020001 */ li $v0, 1 +.L7F0B545C: +/* 0E9F8C 7F0B545C 10000001 */ b .L7F0B5464 +/* 0E9F90 7F0B5460 00001025 */ move $v0, $zero +.L7F0B5464: +/* 0E9F94 7F0B5464 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E9F98 7F0B5468 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E9F9C 7F0B546C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9FA0 7F0B5470 8FB30024 */ lw $s3, 0x24($sp) +/* 0E9FA4 7F0B5474 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9FA8 7F0B5478 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E9FAC 7F0B547C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9FB0 7F0B5480 03E00008 */ jr $ra +/* 0E9FB4 7F0B5484 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#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(get_BONDdata_field_10CC(), arg1, arg0); + sub_GAME_7F078060(arg1, arg1); + if (0.0f < arg1->unk8) + { + // Node 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 get_BONDdata_field_10CC +/* 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 +void sub_GAME_7F0B5528(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058C7C +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F0B5528 +/* 0EA058 7F0B5528 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0EA05C 7F0B552C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EA060 7F0B5530 4485A000 */ mtc1 $a1, $f20 +/* 0EA064 7F0B5534 AFBF0054 */ sw $ra, 0x54($sp) +/* 0EA068 7F0B5538 AFB60048 */ sw $s6, 0x48($sp) +/* 0EA06C 7F0B553C 00C0B025 */ move $s6, $a2 +/* 0EA070 7F0B5540 AFBE0050 */ sw $fp, 0x50($sp) +/* 0EA074 7F0B5544 AFB7004C */ sw $s7, 0x4c($sp) +/* 0EA078 7F0B5548 AFB50044 */ sw $s5, 0x44($sp) +/* 0EA07C 7F0B554C AFB40040 */ sw $s4, 0x40($sp) +/* 0EA080 7F0B5550 AFB3003C */ sw $s3, 0x3c($sp) +/* 0EA084 7F0B5554 AFB20038 */ sw $s2, 0x38($sp) +/* 0EA088 7F0B5558 AFB10034 */ sw $s1, 0x34($sp) +/* 0EA08C 7F0B555C AFB00030 */ sw $s0, 0x30($sp) +/* 0EA090 7F0B5560 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0EA094 7F0B5564 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0EA098 7F0B5568 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0EA09C 7F0B556C AFA400B0 */ sw $a0, 0xb0($sp) +/* 0EA0A0 7F0B5570 AFA200AC */ sw $v0, 0xac($sp) +/* 0EA0A4 7F0B5574 241E0001 */ li $fp, 1 +/* 0EA0A8 7F0B5578 0C0011AB */ jal video_related_27 +/* 0EA0AC 7F0B557C 27A40098 */ addiu $a0, $sp, 0x98 +/* 0EA0B0 7F0B5580 3C018004 */ lui $at, %hi(D_800413FC) +/* 0EA0B4 7F0B5584 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) +/* 0EA0B8 7F0B5588 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0EA0BC 7F0B558C 3C138008 */ lui $s3, %hi(ptr_bgdata_portals) +/* 0EA0C0 7F0B5590 8FB500B0 */ lw $s5, 0xb0($sp) +/* 0EA0C4 7F0B5594 46062203 */ div.s $f8, $f4, $f6 +/* 0EA0C8 7F0B5598 2673FF80 */ addiu $s3, %lo(ptr_bgdata_portals) # addiu $s3, $s3, -0x80 +/* 0EA0CC 7F0B559C 8E6F0000 */ lw $t7, ($s3) +/* 0EA0D0 7F0B55A0 001570C0 */ sll $t6, $s5, 3 +/* 0EA0D4 7F0B55A4 01C0A825 */ move $s5, $t6 +/* 0EA0D8 7F0B55A8 01EEC021 */ addu $t8, $t7, $t6 +/* 0EA0DC 7F0B55AC 00009025 */ move $s2, $zero +/* 0EA0E0 7F0B55B0 02C08025 */ move $s0, $s6 +/* 0EA0E4 7F0B55B4 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0EA0E8 7F0B55B8 8F020000 */ lw $v0, ($t8) +/* 0EA0EC 7F0B55BC 90440000 */ lbu $a0, ($v0) +/* 0EA0F0 7F0B55C0 5880004E */ blezl $a0, .L7F0B56FC +/* 0EA0F4 7F0B55C4 4480B000 */ mtc1 $zero, $f22 +/* 0EA0F8 7F0B55C8 3C018006 */ lui $at, %hi(D_80058C7C) +/* 0EA0FC 7F0B55CC 3C148004 */ lui $s4, %hi(room_data_float2) +/* 0EA100 7F0B55D0 4480B000 */ mtc1 $zero, $f22 +/* 0EA104 7F0B55D4 269413F8 */ addiu $s4, %lo(room_data_float2) # addiu $s4, $s4, 0x13f8 +/* 0EA108 7F0B55D8 C4388C7C */ lwc1 $f24, %lo(D_80058C7C)($at) +/* 0EA10C 7F0B55DC 00008825 */ move $s1, $zero +/* 0EA110 7F0B55E0 27B70080 */ addiu $s7, $sp, 0x80 +/* 0EA114 7F0B55E4 0051C821 */ addu $t9, $v0, $s1 +.L7F0B55E8: +/* 0EA118 7F0B55E8 C72A0004 */ lwc1 $f10, 4($t9) +/* 0EA11C 7F0B55EC 4616A032 */ c.eq.s $f20, $f22 +/* 0EA120 7F0B55F0 02E02825 */ move $a1, $s7 +/* 0EA124 7F0B55F4 E60A0000 */ swc1 $f10, ($s0) +/* 0EA128 7F0B55F8 8E680000 */ lw $t0, ($s3) +/* 0EA12C 7F0B55FC 01154821 */ addu $t1, $t0, $s5 +/* 0EA130 7F0B5600 8D2A0000 */ lw $t2, ($t1) +/* 0EA134 7F0B5604 01515821 */ addu $t3, $t2, $s1 +/* 0EA138 7F0B5608 C5720008 */ lwc1 $f18, 8($t3) +/* 0EA13C 7F0B560C E6120004 */ swc1 $f18, 4($s0) +/* 0EA140 7F0B5610 8E6C0000 */ lw $t4, ($s3) +/* 0EA144 7F0B5614 01956821 */ addu $t5, $t4, $s5 +/* 0EA148 7F0B5618 8DAE0000 */ lw $t6, ($t5) +/* 0EA14C 7F0B561C 01D17821 */ addu $t7, $t6, $s1 +/* 0EA150 7F0B5620 C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0EA154 7F0B5624 45010012 */ bc1t .L7F0B5670 +/* 0EA158 7F0B5628 E6040008 */ swc1 $f4, 8($s0) +/* 0EA15C 7F0B562C 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EA160 7F0B5630 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0EA164 7F0B5634 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0EA168 7F0B5638 C6060000 */ lwc1 $f6, ($s0) +/* 0EA16C 7F0B563C C6040004 */ lwc1 $f4, 4($s0) +/* 0EA170 7F0B5640 46144282 */ mul.s $f10, $f8, $f20 +/* 0EA174 7F0B5644 460A3480 */ add.s $f18, $f6, $f10 +/* 0EA178 7F0B5648 E6120000 */ swc1 $f18, ($s0) +/* 0EA17C 7F0B564C C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0EA180 7F0B5650 C6120008 */ lwc1 $f18, 8($s0) +/* 0EA184 7F0B5654 46144182 */ mul.s $f6, $f8, $f20 +/* 0EA188 7F0B5658 46062280 */ add.s $f10, $f4, $f6 +/* 0EA18C 7F0B565C E60A0004 */ swc1 $f10, 4($s0) +/* 0EA190 7F0B5660 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0EA194 7F0B5664 46144102 */ mul.s $f4, $f8, $f20 +/* 0EA198 7F0B5668 46049180 */ add.s $f6, $f18, $f4 +/* 0EA19C 7F0B566C E6060008 */ swc1 $f6, 8($s0) +.L7F0B5670: +/* 0EA1A0 7F0B5670 C60A0000 */ lwc1 $f10, ($s0) +/* 0EA1A4 7F0B5674 C6880000 */ lwc1 $f8, ($s4) +/* 0EA1A8 7F0B5678 C6040004 */ lwc1 $f4, 4($s0) +/* 0EA1AC 7F0B567C 02002825 */ move $a1, $s0 +/* 0EA1B0 7F0B5680 46085482 */ mul.s $f18, $f10, $f8 +/* 0EA1B4 7F0B5684 C6080008 */ lwc1 $f8, 8($s0) +/* 0EA1B8 7F0B5688 E6120000 */ swc1 $f18, ($s0) +/* 0EA1BC 7F0B568C C6860000 */ lwc1 $f6, ($s4) +/* 0EA1C0 7F0B5690 46062282 */ mul.s $f10, $f4, $f6 +/* 0EA1C4 7F0B5694 E60A0004 */ swc1 $f10, 4($s0) +/* 0EA1C8 7F0B5698 C6920000 */ lwc1 $f18, ($s4) +/* 0EA1CC 7F0B569C 46124102 */ mul.s $f4, $f8, $f18 +/* 0EA1D0 7F0B56A0 E6040008 */ swc1 $f4, 8($s0) +/* 0EA1D4 7F0B56A4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0EA1D8 7F0B56A8 8FA400AC */ lw $a0, 0xac($sp) +/* 0EA1DC 7F0B56AC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0EA1E0 7F0B56B0 C6120008 */ lwc1 $f18, 8($s0) +/* 0EA1E4 7F0B56B4 46003287 */ neg.s $f10, $f6 +/* 0EA1E8 7F0B56B8 46185202 */ mul.s $f8, $f10, $f24 +/* 0EA1EC 7F0B56BC 4612403C */ c.lt.s $f8, $f18 +/* 0EA1F0 7F0B56C0 00000000 */ nop +/* 0EA1F4 7F0B56C4 45020003 */ bc1fl .L7F0B56D4 +/* 0EA1F8 7F0B56C8 8E780000 */ lw $t8, ($s3) +/* 0EA1FC 7F0B56CC 0000F025 */ move $fp, $zero +/* 0EA200 7F0B56D0 8E780000 */ lw $t8, ($s3) +.L7F0B56D4: +/* 0EA204 7F0B56D4 26520001 */ addiu $s2, $s2, 1 +/* 0EA208 7F0B56D8 2631000C */ addiu $s1, $s1, 0xc +/* 0EA20C 7F0B56DC 0315C821 */ addu $t9, $t8, $s5 +/* 0EA210 7F0B56E0 8F220000 */ lw $v0, ($t9) +/* 0EA214 7F0B56E4 2610000C */ addiu $s0, $s0, 0xc +/* 0EA218 7F0B56E8 90440000 */ lbu $a0, ($v0) +/* 0EA21C 7F0B56EC 0244082A */ slt $at, $s2, $a0 +/* 0EA220 7F0B56F0 5420FFBD */ bnezl $at, .L7F0B55E8 +/* 0EA224 7F0B56F4 0051C821 */ addu $t9, $v0, $s1 +/* 0EA228 7F0B56F8 4480B000 */ mtc1 $zero, $f22 +.L7F0B56FC: +/* 0EA22C 7F0B56FC 13C00003 */ beqz $fp, .L7F0B570C +/* 0EA230 7F0B5700 00803825 */ move $a3, $a0 +/* 0EA234 7F0B5704 10000048 */ b .L7F0B5828 +/* 0EA238 7F0B5708 00001025 */ move $v0, $zero +.L7F0B570C: +/* 0EA23C 7F0B570C 18800045 */ blez $a0, .L7F0B5824 +/* 0EA240 7F0B5710 00009025 */ move $s2, $zero +/* 0EA244 7F0B5714 02C08025 */ move $s0, $s6 +/* 0EA248 7F0B5718 2406000C */ li $a2, 12 +.L7F0B571C: +/* 0EA24C 7F0B571C 26450001 */ addiu $a1, $s2, 1 +/* 0EA250 7F0B5720 00A4001A */ div $zero, $a1, $a0 +/* 0EA254 7F0B5724 C6100008 */ lwc1 $f16, 8($s0) +/* 0EA258 7F0B5728 00001810 */ mfhi $v1 +/* 0EA25C 7F0B572C 00A09025 */ move $s2, $a1 +/* 0EA260 7F0B5730 4610B03C */ c.lt.s $f22, $f16 +/* 0EA264 7F0B5734 14800002 */ bnez $a0, .L7F0B5740 +/* 0EA268 7F0B5738 00000000 */ nop +/* 0EA26C 7F0B573C 0007000D */ break 7 +.L7F0B5740: +/* 0EA270 7F0B5740 2401FFFF */ li $at, -1 +/* 0EA274 7F0B5744 14810004 */ bne $a0, $at, .L7F0B5758 +/* 0EA278 7F0B5748 3C018000 */ lui $at, 0x8000 +/* 0EA27C 7F0B574C 14A10002 */ bne $a1, $at, .L7F0B5758 +/* 0EA280 7F0B5750 00000000 */ nop +/* 0EA284 7F0B5754 0006000D */ break 6 +.L7F0B5758: +/* 0EA288 7F0B5758 4502000A */ bc1fl .L7F0B5784 +/* 0EA28C 7F0B575C 4616803E */ c.le.s $f16, $f22 +/* 0EA290 7F0B5760 00660019 */ multu $v1, $a2 +/* 0EA294 7F0B5764 00004012 */ mflo $t0 +/* 0EA298 7F0B5768 02C81021 */ addu $v0, $s6, $t0 +/* 0EA29C 7F0B576C C44E0008 */ lwc1 $f14, 8($v0) +/* 0EA2A0 7F0B5770 4616703E */ c.le.s $f14, $f22 +/* 0EA2A4 7F0B5774 00000000 */ nop +/* 0EA2A8 7F0B5778 4503000E */ bc1tl .L7F0B57B4 +/* 0EA2AC 7F0B577C 46107181 */ sub.s $f6, $f14, $f16 +/* 0EA2B0 7F0B5780 4616803E */ c.le.s $f16, $f22 +.L7F0B5784: +/* 0EA2B4 7F0B5784 00000000 */ nop +/* 0EA2B8 7F0B5788 45020024 */ bc1fl .L7F0B581C +/* 0EA2BC 7F0B578C 00A4082A */ slt $at, $a1, $a0 +/* 0EA2C0 7F0B5790 00660019 */ multu $v1, $a2 +/* 0EA2C4 7F0B5794 00004812 */ mflo $t1 +/* 0EA2C8 7F0B5798 02C91021 */ addu $v0, $s6, $t1 +/* 0EA2CC 7F0B579C C44E0008 */ lwc1 $f14, 8($v0) +/* 0EA2D0 7F0B57A0 460EB03C */ c.lt.s $f22, $f14 +/* 0EA2D4 7F0B57A4 00000000 */ nop +/* 0EA2D8 7F0B57A8 4502001C */ bc1fl .L7F0B581C +/* 0EA2DC 7F0B57AC 00A4082A */ slt $at, $a1, $a0 +/* 0EA2E0 7F0B57B0 46107181 */ sub.s $f6, $f14, $f16 +.L7F0B57B4: +/* 0EA2E4 7F0B57B4 C6000000 */ lwc1 $f0, ($s0) +/* 0EA2E8 7F0B57B8 C44A0000 */ lwc1 $f10, ($v0) +/* 0EA2EC 7F0B57BC 46008107 */ neg.s $f4, $f16 +/* 0EA2F0 7F0B57C0 00E60019 */ multu $a3, $a2 +/* 0EA2F4 7F0B57C4 46062303 */ div.s $f12, $f4, $f6 +/* 0EA2F8 7F0B57C8 3C0B8008 */ lui $t3, %hi(ptr_bgdata_portals) +/* 0EA2FC 7F0B57CC 24E70001 */ addiu $a3, $a3, 1 +/* 0EA300 7F0B57D0 46005201 */ sub.s $f8, $f10, $f0 +/* 0EA304 7F0B57D4 00005012 */ mflo $t2 +/* 0EA308 7F0B57D8 02CA1821 */ addu $v1, $s6, $t2 +/* 0EA30C 7F0B57DC 2463000C */ addiu $v1, $v1, 0xc +/* 0EA310 7F0B57E0 460C4482 */ mul.s $f18, $f8, $f12 +/* 0EA314 7F0B57E4 46009100 */ add.s $f4, $f18, $f0 +/* 0EA318 7F0B57E8 E464FFF4 */ swc1 $f4, -0xc($v1) +/* 0EA31C 7F0B57EC C4460004 */ lwc1 $f6, 4($v0) +/* 0EA320 7F0B57F0 C6020004 */ lwc1 $f2, 4($s0) +/* 0EA324 7F0B57F4 E476FFFC */ swc1 $f22, -4($v1) +/* 0EA328 7F0B57F8 46023281 */ sub.s $f10, $f6, $f2 +/* 0EA32C 7F0B57FC 460C5202 */ mul.s $f8, $f10, $f12 +/* 0EA330 7F0B5800 46024480 */ add.s $f18, $f8, $f2 +/* 0EA334 7F0B5804 E472FFF8 */ swc1 $f18, -8($v1) +/* 0EA338 7F0B5808 8D6BFF80 */ lw $t3, %lo(ptr_bgdata_portals)($t3) +/* 0EA33C 7F0B580C 01756021 */ addu $t4, $t3, $s5 +/* 0EA340 7F0B5810 8D8D0000 */ lw $t5, ($t4) +/* 0EA344 7F0B5814 91A40000 */ lbu $a0, ($t5) +/* 0EA348 7F0B5818 00A4082A */ slt $at, $a1, $a0 +.L7F0B581C: +/* 0EA34C 7F0B581C 1420FFBF */ bnez $at, .L7F0B571C +/* 0EA350 7F0B5820 2610000C */ addiu $s0, $s0, 0xc +.L7F0B5824: +/* 0EA354 7F0B5824 00E01025 */ move $v0, $a3 +.L7F0B5828: +/* 0EA358 7F0B5828 8FBF0054 */ lw $ra, 0x54($sp) +/* 0EA35C 7F0B582C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EA360 7F0B5830 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0EA364 7F0B5834 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0EA368 7F0B5838 8FB00030 */ lw $s0, 0x30($sp) +/* 0EA36C 7F0B583C 8FB10034 */ lw $s1, 0x34($sp) +/* 0EA370 7F0B5840 8FB20038 */ lw $s2, 0x38($sp) +/* 0EA374 7F0B5844 8FB3003C */ lw $s3, 0x3c($sp) +/* 0EA378 7F0B5848 8FB40040 */ lw $s4, 0x40($sp) +/* 0EA37C 7F0B584C 8FB50044 */ lw $s5, 0x44($sp) +/* 0EA380 7F0B5850 8FB60048 */ lw $s6, 0x48($sp) +/* 0EA384 7F0B5854 8FB7004C */ lw $s7, 0x4c($sp) +/* 0EA388 7F0B5858 8FBE0050 */ lw $fp, 0x50($sp) +/* 0EA38C 7F0B585C 03E00008 */ jr $ra +/* 0EA390 7F0B5860 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5864(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5864 +/* 0EA394 7F0B5864 27BDFE90 */ addiu $sp, $sp, -0x170 +/* 0EA398 7F0B5868 00047080 */ sll $t6, $a0, 2 +/* 0EA39C 7F0B586C 01C47021 */ addu $t6, $t6, $a0 +/* 0EA3A0 7F0B5870 3C0F8008 */ lui $t7, %hi(table_for_portals) +/* 0EA3A4 7F0B5874 AFB5003C */ sw $s5, 0x3c($sp) +/* 0EA3A8 7F0B5878 25EF1618 */ addiu $t7, %lo(table_for_portals) # addiu $t7, $t7, 0x1618 +/* 0EA3AC 7F0B587C 000E7080 */ sll $t6, $t6, 2 +/* 0EA3B0 7F0B5880 01CFA821 */ addu $s5, $t6, $t7 +/* 0EA3B4 7F0B5884 8EB80000 */ lw $t8, ($s5) +/* 0EA3B8 7F0B5888 AFB60040 */ sw $s6, 0x40($sp) +/* 0EA3BC 7F0B588C AFB00028 */ sw $s0, 0x28($sp) +/* 0EA3C0 7F0B5890 00808025 */ move $s0, $a0 +/* 0EA3C4 7F0B5894 00A0B025 */ move $s6, $a1 +/* 0EA3C8 7F0B5898 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EA3CC 7F0B589C AFB40038 */ sw $s4, 0x38($sp) +/* 0EA3D0 7F0B58A0 AFB30034 */ sw $s3, 0x34($sp) +/* 0EA3D4 7F0B58A4 AFB20030 */ sw $s2, 0x30($sp) +/* 0EA3D8 7F0B58A8 AFB1002C */ sw $s1, 0x2c($sp) +/* 0EA3DC 7F0B58AC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0EA3E0 7F0B58B0 0700000B */ bltz $t8, .L7F0B58E0 +/* 0EA3E4 7F0B58B4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EA3E8 7F0B58B8 C6A40004 */ lwc1 $f4, 4($s5) +/* 0EA3EC 7F0B58BC E4A40000 */ swc1 $f4, ($a1) +/* 0EA3F0 7F0B58C0 C6A60008 */ lwc1 $f6, 8($s5) +/* 0EA3F4 7F0B58C4 E4A60004 */ swc1 $f6, 4($a1) +/* 0EA3F8 7F0B58C8 C6A8000C */ lwc1 $f8, 0xc($s5) +/* 0EA3FC 7F0B58CC E4A80008 */ swc1 $f8, 8($a1) +/* 0EA400 7F0B58D0 C6AA0010 */ lwc1 $f10, 0x10($s5) +/* 0EA404 7F0B58D4 E4AA000C */ swc1 $f10, 0xc($a1) +/* 0EA408 7F0B58D8 10000082 */ b .L7F0B5AE4 +/* 0EA40C 7F0B58DC 8EA20000 */ lw $v0, ($s5) +.L7F0B58E0: +/* 0EA410 7F0B58E0 0FC2E664 */ jal sub_GAME_7F0B9990 +/* 0EA414 7F0B58E4 02002025 */ move $a0, $s0 +/* 0EA418 7F0B58E8 27B10080 */ addiu $s1, $sp, 0x80 +/* 0EA41C 7F0B58EC 44050000 */ mfc1 $a1, $f0 +/* 0EA420 7F0B58F0 46000586 */ mov.s $f22, $f0 +/* 0EA424 7F0B58F4 02203025 */ move $a2, $s1 +/* 0EA428 7F0B58F8 0FC2D54A */ jal sub_GAME_7F0B5528 +/* 0EA42C 7F0B58FC 02002025 */ move $a0, $s0 +/* 0EA430 7F0B5900 4480A000 */ mtc1 $zero, $f20 +/* 0EA434 7F0B5904 0002C880 */ sll $t9, $v0, 2 +/* 0EA438 7F0B5908 00409825 */ move $s3, $v0 +/* 0EA43C 7F0B590C 4616A03C */ c.lt.s $f20, $f22 +/* 0EA440 7F0B5910 0322C823 */ subu $t9, $t9, $v0 +/* 0EA444 7F0B5914 02002025 */ move $a0, $s0 +/* 0EA448 7F0B5918 45020008 */ bc1fl .L7F0B593C +/* 0EA44C 7F0B591C 00009025 */ move $s2, $zero +/* 0EA450 7F0B5920 4600B107 */ neg.s $f4, $f22 +/* 0EA454 7F0B5924 0019C880 */ sll $t9, $t9, 2 +/* 0EA458 7F0B5928 44052000 */ mfc1 $a1, $f4 +/* 0EA45C 7F0B592C 0FC2D54A */ jal sub_GAME_7F0B5528 +/* 0EA460 7F0B5930 02393021 */ addu $a2, $s1, $t9 +/* 0EA464 7F0B5934 02629821 */ addu $s3, $s3, $v0 +/* 0EA468 7F0B5938 00009025 */ move $s2, $zero +.L7F0B593C: +/* 0EA46C 7F0B593C 1A600039 */ blez $s3, .L7F0B5A24 +/* 0EA470 7F0B5940 00008825 */ move $s1, $zero +/* 0EA474 7F0B5944 27B00080 */ addiu $s0, $sp, 0x80 +/* 0EA478 7F0B5948 27B40078 */ addiu $s4, $sp, 0x78 +.L7F0B594C: +/* 0EA47C 7F0B594C C6060008 */ lwc1 $f6, 8($s0) +/* 0EA480 7F0B5950 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA484 7F0B5954 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA488 7F0B5958 4614303E */ c.le.s $f6, $f20 +/* 0EA48C 7F0B595C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA490 7F0B5960 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA494 7F0B5964 02002025 */ move $a0, $s0 +/* 0EA498 7F0B5968 45020024 */ bc1fl .L7F0B59FC +/* 0EA49C 7F0B596C 26310001 */ addiu $s1, $s1, 1 +/* 0EA4A0 7F0B5970 0FC1E018 */ jal sub_GAME_7F078060 +/* 0EA4A4 7F0B5974 02802825 */ move $a1, $s4 +/* 0EA4A8 7F0B5978 16400006 */ bnez $s2, .L7F0B5994 +/* 0EA4AC 7F0B597C C7A20078 */ lwc1 $f2, 0x78($sp) +/* 0EA4B0 7F0B5980 C7B60078 */ lwc1 $f22, 0x78($sp) +/* 0EA4B4 7F0B5984 C7B0007C */ lwc1 $f16, 0x7c($sp) +/* 0EA4B8 7F0B5988 4600B486 */ mov.s $f18, $f22 +/* 0EA4BC 7F0B598C 10000019 */ b .L7F0B59F4 +/* 0EA4C0 7F0B5990 46008386 */ mov.s $f14, $f16 +.L7F0B5994: +/* 0EA4C4 7F0B5994 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA4C8 7F0B5998 C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA4CC 7F0B599C C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 0EA4D0 7F0B59A0 4616103C */ c.lt.s $f2, $f22 +/* 0EA4D4 7F0B59A4 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA4D8 7F0B59A8 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA4DC 7F0B59AC 45020003 */ bc1fl .L7F0B59BC +/* 0EA4E0 7F0B59B0 4602903C */ c.lt.s $f18, $f2 +/* 0EA4E4 7F0B59B4 46001586 */ mov.s $f22, $f2 +/* 0EA4E8 7F0B59B8 4602903C */ c.lt.s $f18, $f2 +.L7F0B59BC: +/* 0EA4EC 7F0B59BC 00000000 */ nop +/* 0EA4F0 7F0B59C0 45020003 */ bc1fl .L7F0B59D0 +/* 0EA4F4 7F0B59C4 4610603C */ c.lt.s $f12, $f16 +/* 0EA4F8 7F0B59C8 46001486 */ mov.s $f18, $f2 +/* 0EA4FC 7F0B59CC 4610603C */ c.lt.s $f12, $f16 +.L7F0B59D0: +/* 0EA500 7F0B59D0 00000000 */ nop +/* 0EA504 7F0B59D4 45020003 */ bc1fl .L7F0B59E4 +/* 0EA508 7F0B59D8 460C703C */ c.lt.s $f14, $f12 +/* 0EA50C 7F0B59DC 46006406 */ mov.s $f16, $f12 +/* 0EA510 7F0B59E0 460C703C */ c.lt.s $f14, $f12 +.L7F0B59E4: +/* 0EA514 7F0B59E4 00000000 */ nop +/* 0EA518 7F0B59E8 45020003 */ bc1fl .L7F0B59F8 +/* 0EA51C 7F0B59EC 26520001 */ addiu $s2, $s2, 1 +/* 0EA520 7F0B59F0 46006386 */ mov.s $f14, $f12 +.L7F0B59F4: +/* 0EA524 7F0B59F4 26520001 */ addiu $s2, $s2, 1 +.L7F0B59F8: +/* 0EA528 7F0B59F8 26310001 */ addiu $s1, $s1, 1 +.L7F0B59FC: +/* 0EA52C 7F0B59FC 2610000C */ addiu $s0, $s0, 0xc +/* 0EA530 7F0B5A00 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA534 7F0B5A04 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA538 7F0B5A08 E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA53C 7F0B5A0C 1633FFCF */ bne $s1, $s3, .L7F0B594C +/* 0EA540 7F0B5A10 E7B60068 */ swc1 $f22, 0x68($sp) +/* 0EA544 7F0B5A14 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA548 7F0B5A18 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA54C 7F0B5A1C E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA550 7F0B5A20 E7B60068 */ swc1 $f22, 0x68($sp) +.L7F0B5A24: +/* 0EA554 7F0B5A24 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA558 7F0B5A28 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA55C 7F0B5A2C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA560 7F0B5A30 16400006 */ bnez $s2, .L7F0B5A4C +/* 0EA564 7F0B5A34 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA568 7F0B5A38 E7B40074 */ swc1 $f20, 0x74($sp) +/* 0EA56C 7F0B5A3C E7B4006C */ swc1 $f20, 0x6c($sp) +/* 0EA570 7F0B5A40 E7B40070 */ swc1 $f20, 0x70($sp) +/* 0EA574 7F0B5A44 10000015 */ b .L7F0B5A9C +/* 0EA578 7F0B5A48 E7B40068 */ swc1 $f20, 0x68($sp) +.L7F0B5A4C: +/* 0EA57C 7F0B5A4C 4616903E */ c.le.s $f18, $f22 +/* 0EA580 7F0B5A50 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA584 7F0B5A54 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA588 7F0B5A58 E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA58C 7F0B5A5C 45010005 */ bc1t .L7F0B5A74 +/* 0EA590 7F0B5A60 E7B60068 */ swc1 $f22, 0x68($sp) +/* 0EA594 7F0B5A64 4610703E */ c.le.s $f14, $f16 +/* 0EA598 7F0B5A68 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA59C 7F0B5A6C E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA5A0 7F0B5A70 4500000A */ bc1f .L7F0B5A9C +.L7F0B5A74: +/* 0EA5A4 7F0B5A74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0EA5A8 7F0B5A78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0EA5AC 7F0B5A7C C4481118 */ lwc1 $f8, 0x1118($v0) +/* 0EA5B0 7F0B5A80 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0EA5B4 7F0B5A84 C44A111C */ lwc1 $f10, 0x111c($v0) +/* 0EA5B8 7F0B5A88 E7AA006C */ swc1 $f10, 0x6c($sp) +/* 0EA5BC 7F0B5A8C C4441120 */ lwc1 $f4, 0x1120($v0) +/* 0EA5C0 7F0B5A90 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0EA5C4 7F0B5A94 C4461124 */ lwc1 $f6, 0x1124($v0) +/* 0EA5C8 7F0B5A98 E7A60074 */ swc1 $f6, 0x74($sp) +.L7F0B5A9C: +/* 0EA5CC 7F0B5A9C C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0EA5D0 7F0B5AA0 02401025 */ move $v0, $s2 +/* 0EA5D4 7F0B5AA4 E6C80000 */ swc1 $f8, ($s6) +/* 0EA5D8 7F0B5AA8 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0EA5DC 7F0B5AAC C6C80000 */ lwc1 $f8, ($s6) +/* 0EA5E0 7F0B5AB0 E6CA0004 */ swc1 $f10, 4($s6) +/* 0EA5E4 7F0B5AB4 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0EA5E8 7F0B5AB8 E6C40008 */ swc1 $f4, 8($s6) +/* 0EA5EC 7F0B5ABC C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0EA5F0 7F0B5AC0 E6C6000C */ swc1 $f6, 0xc($s6) +/* 0EA5F4 7F0B5AC4 E6A80004 */ swc1 $f8, 4($s5) +/* 0EA5F8 7F0B5AC8 C6CA0004 */ lwc1 $f10, 4($s6) +/* 0EA5FC 7F0B5ACC E6AA0008 */ swc1 $f10, 8($s5) +/* 0EA600 7F0B5AD0 C6C40008 */ lwc1 $f4, 8($s6) +/* 0EA604 7F0B5AD4 E6A4000C */ swc1 $f4, 0xc($s5) +/* 0EA608 7F0B5AD8 C6C6000C */ lwc1 $f6, 0xc($s6) +/* 0EA60C 7F0B5ADC AEB20000 */ sw $s2, ($s5) +/* 0EA610 7F0B5AE0 E6A60010 */ swc1 $f6, 0x10($s5) +.L7F0B5AE4: +/* 0EA614 7F0B5AE4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EA618 7F0B5AE8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EA61C 7F0B5AEC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0EA620 7F0B5AF0 8FB00028 */ lw $s0, 0x28($sp) +/* 0EA624 7F0B5AF4 8FB1002C */ lw $s1, 0x2c($sp) +/* 0EA628 7F0B5AF8 8FB20030 */ lw $s2, 0x30($sp) +/* 0EA62C 7F0B5AFC 8FB30034 */ lw $s3, 0x34($sp) +/* 0EA630 7F0B5B00 8FB40038 */ lw $s4, 0x38($sp) +/* 0EA634 7F0B5B04 8FB5003C */ lw $s5, 0x3c($sp) +/* 0EA638 7F0B5B08 8FB60040 */ lw $s6, 0x40($sp) +/* 0EA63C 7F0B5B0C 03E00008 */ jr $ra +/* 0EA640 7F0B5B10 27BD0170 */ addiu $sp, $sp, 0x170 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B5B14(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + // Node 0 + arg0->unk4 = (s32) (((arg1 & 0x3ff) << 0xe) | ((arg2 & 0x3ff) * 4)); + *arg0 = (s32) (((((arg3 + 1) & 0x3ff) << 0xe) | 0xf6000000) | (((arg4 + 1) & 0x3ff) * 4)); + return (arg0 + 8); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5B14 +/* 0EA644 7F0B5B14 8FA80010 */ lw $t0, 0x10($sp) +/* 0EA648 7F0B5B18 24EE0001 */ addiu $t6, $a3, 1 +/* 0EA64C 7F0B5B1C 31CF03FF */ andi $t7, $t6, 0x3ff +/* 0EA650 7F0B5B20 000FC380 */ sll $t8, $t7, 0xe +/* 0EA654 7F0B5B24 3C01F600 */ lui $at, 0xf600 +/* 0EA658 7F0B5B28 25090001 */ addiu $t1, $t0, 1 +/* 0EA65C 7F0B5B2C 312A03FF */ andi $t2, $t1, 0x3ff +/* 0EA660 7F0B5B30 0301C825 */ or $t9, $t8, $at +/* 0EA664 7F0B5B34 30CF03FF */ andi $t7, $a2, 0x3ff +/* 0EA668 7F0B5B38 30AD03FF */ andi $t5, $a1, 0x3ff +/* 0EA66C 7F0B5B3C 000D7380 */ sll $t6, $t5, 0xe +/* 0EA670 7F0B5B40 000FC080 */ sll $t8, $t7, 2 +/* 0EA674 7F0B5B44 000A5880 */ sll $t3, $t2, 2 +/* 0EA678 7F0B5B48 032B6025 */ or $t4, $t9, $t3 +/* 0EA67C 7F0B5B4C 01D84025 */ or $t0, $t6, $t8 +/* 0EA680 7F0B5B50 AC880004 */ sw $t0, 4($a0) +/* 0EA684 7F0B5B54 AC8C0000 */ sw $t4, ($a0) +/* 0EA688 7F0B5B58 03E00008 */ jr $ra +/* 0EA68C 7F0B5B5C 24820008 */ addiu $v0, $a0, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5B60(s32 arg1, ? arg2, ? arg3, ?32 arg4) { + // Node 0 + return sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(), arg3, arg2, arg3, arg4), arg1, arg4, arg3), arg1, arg2, arg1, arg4); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5B60 +/* 0EA690 7F0B5B60 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA694 7F0B5B64 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EA698 7F0B5B68 AFA50024 */ sw $a1, 0x24($sp) +/* 0EA69C 7F0B5B6C AFA7002C */ sw $a3, 0x2c($sp) +/* 0EA6A0 7F0B5B70 AFA60010 */ sw $a2, 0x10($sp) +/* 0EA6A4 7F0B5B74 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6A8 7F0B5B78 AFA60028 */ sw $a2, 0x28($sp) +/* 0EA6AC 7F0B5B7C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0EA6B0 7F0B5B80 8FAE0030 */ lw $t6, 0x30($sp) +/* 0EA6B4 7F0B5B84 00402025 */ move $a0, $v0 +/* 0EA6B8 7F0B5B88 8FA60028 */ lw $a2, 0x28($sp) +/* 0EA6BC 7F0B5B8C 00A03825 */ move $a3, $a1 +/* 0EA6C0 7F0B5B90 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6C4 7F0B5B94 AFAE0010 */ sw $t6, 0x10($sp) +/* 0EA6C8 7F0B5B98 8FA60030 */ lw $a2, 0x30($sp) +/* 0EA6CC 7F0B5B9C 00402025 */ move $a0, $v0 +/* 0EA6D0 7F0B5BA0 8FA50024 */ lw $a1, 0x24($sp) +/* 0EA6D4 7F0B5BA4 8FA7002C */ lw $a3, 0x2c($sp) +/* 0EA6D8 7F0B5BA8 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6DC 7F0B5BAC AFA60010 */ sw $a2, 0x10($sp) +/* 0EA6E0 7F0B5BB0 8FA70024 */ lw $a3, 0x24($sp) +/* 0EA6E4 7F0B5BB4 8FB80030 */ lw $t8, 0x30($sp) +/* 0EA6E8 7F0B5BB8 00402025 */ move $a0, $v0 +/* 0EA6EC 7F0B5BBC 8FA60028 */ lw $a2, 0x28($sp) +/* 0EA6F0 7F0B5BC0 00E02825 */ move $a1, $a3 +/* 0EA6F4 7F0B5BC4 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6F8 7F0B5BC8 AFB80010 */ sw $t8, 0x10($sp) +/* 0EA6FC 7F0B5BCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EA700 7F0B5BD0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA704 7F0B5BD4 03E00008 */ jr $ra +/* 0EA708 7F0B5BD8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 vis_is_inline_of_sight(void *arg0, void *arg1) { + // Node 0 + if (*arg1 < *arg0) + { + // Node 1 + *arg0 = (f32) *arg0; + } + else + { + // Node 2 + *arg0 = (f32) *arg1; + } + // Node 3 + if (arg1->unk4 < arg0->unk4) + { + // Node 4 + arg0->unk4 = (f32) arg0->unk4; + } + else + { + // Node 5 + arg0->unk4 = (f32) arg1->unk4; + } + // Node 6 + if (arg0->unk8 < arg1->unk8) + { + // Node 7 + arg0->unk8 = (f32) arg0->unk8; + } + else + { + // Node 8 + arg0->unk8 = (f32) arg1->unk8; + } + // Node 9 + if (arg0->unkC < arg1->unkC) + { + // Node 10 + arg0->unkC = (f32) arg0->unkC; + } + else + { + // Node 11 + arg0->unkC = (f32) arg1->unkC; + } + // Node 12 + if (arg0->unk8 <= *arg0) + { + // Node 13 + *arg0 = (f32) arg0->unk8; + return arg0->unk8; + } + // Node 14 + if (arg0->unkC <= arg0->unk4) + { + // Node 15 + arg0->unk4 = (f32) arg0->unkC; + return 0.0f; + } + // Node 16 + return 1.401298464324817e-45f; +} +#else +GLOBAL_ASM( +.text +glabel vis_is_inline_of_sight +/* 0EA70C 7F0B5BDC C4A00000 */ lwc1 $f0, ($a1) +/* 0EA710 7F0B5BE0 C4820000 */ lwc1 $f2, ($a0) +/* 0EA714 7F0B5BE4 4602003C */ c.lt.s $f0, $f2 +/* 0EA718 7F0B5BE8 00000000 */ nop +/* 0EA71C 7F0B5BEC 45020004 */ bc1fl .L7F0B5C00 +/* 0EA720 7F0B5BF0 E4800000 */ swc1 $f0, ($a0) +/* 0EA724 7F0B5BF4 10000002 */ b .L7F0B5C00 +/* 0EA728 7F0B5BF8 E4820000 */ swc1 $f2, ($a0) +/* 0EA72C 7F0B5BFC E4800000 */ swc1 $f0, ($a0) +.L7F0B5C00: +/* 0EA730 7F0B5C00 C4A00004 */ lwc1 $f0, 4($a1) +/* 0EA734 7F0B5C04 C4820004 */ lwc1 $f2, 4($a0) +/* 0EA738 7F0B5C08 00001025 */ move $v0, $zero +/* 0EA73C 7F0B5C0C 4602003C */ c.lt.s $f0, $f2 +/* 0EA740 7F0B5C10 00000000 */ nop +/* 0EA744 7F0B5C14 45020004 */ bc1fl .L7F0B5C28 +/* 0EA748 7F0B5C18 E4800004 */ swc1 $f0, 4($a0) +/* 0EA74C 7F0B5C1C 10000002 */ b .L7F0B5C28 +/* 0EA750 7F0B5C20 E4820004 */ swc1 $f2, 4($a0) +/* 0EA754 7F0B5C24 E4800004 */ swc1 $f0, 4($a0) +.L7F0B5C28: +/* 0EA758 7F0B5C28 C4800008 */ lwc1 $f0, 8($a0) +/* 0EA75C 7F0B5C2C C4A20008 */ lwc1 $f2, 8($a1) +/* 0EA760 7F0B5C30 4602003C */ c.lt.s $f0, $f2 +/* 0EA764 7F0B5C34 00000000 */ nop +/* 0EA768 7F0B5C38 45020004 */ bc1fl .L7F0B5C4C +/* 0EA76C 7F0B5C3C E4820008 */ swc1 $f2, 8($a0) +/* 0EA770 7F0B5C40 10000002 */ b .L7F0B5C4C +/* 0EA774 7F0B5C44 E4800008 */ swc1 $f0, 8($a0) +/* 0EA778 7F0B5C48 E4820008 */ swc1 $f2, 8($a0) +.L7F0B5C4C: +/* 0EA77C 7F0B5C4C C480000C */ lwc1 $f0, 0xc($a0) +/* 0EA780 7F0B5C50 C4A2000C */ lwc1 $f2, 0xc($a1) +/* 0EA784 7F0B5C54 4602003C */ c.lt.s $f0, $f2 +/* 0EA788 7F0B5C58 00000000 */ nop +/* 0EA78C 7F0B5C5C 45020004 */ bc1fl .L7F0B5C70 +/* 0EA790 7F0B5C60 E482000C */ swc1 $f2, 0xc($a0) +/* 0EA794 7F0B5C64 10000002 */ b .L7F0B5C70 +/* 0EA798 7F0B5C68 E480000C */ swc1 $f0, 0xc($a0) +/* 0EA79C 7F0B5C6C E482000C */ swc1 $f2, 0xc($a0) +.L7F0B5C70: +/* 0EA7A0 7F0B5C70 C4800008 */ lwc1 $f0, 8($a0) +/* 0EA7A4 7F0B5C74 C4840000 */ lwc1 $f4, ($a0) +/* 0EA7A8 7F0B5C78 4604003E */ c.le.s $f0, $f4 +/* 0EA7AC 7F0B5C7C 00000000 */ nop +/* 0EA7B0 7F0B5C80 45020004 */ bc1fl .L7F0B5C94 +/* 0EA7B4 7F0B5C84 C480000C */ lwc1 $f0, 0xc($a0) +/* 0EA7B8 7F0B5C88 03E00008 */ jr $ra +/* 0EA7BC 7F0B5C8C E4800000 */ swc1 $f0, ($a0) + +/* 0EA7C0 7F0B5C90 C480000C */ lwc1 $f0, 0xc($a0) +.L7F0B5C94: +/* 0EA7C4 7F0B5C94 C4860004 */ lwc1 $f6, 4($a0) +/* 0EA7C8 7F0B5C98 24020001 */ li $v0, 1 +/* 0EA7CC 7F0B5C9C 4606003E */ c.le.s $f0, $f6 +/* 0EA7D0 7F0B5CA0 00000000 */ nop +/* 0EA7D4 7F0B5CA4 45000004 */ bc1f .L7F0B5CB8 +/* 0EA7D8 7F0B5CA8 00000000 */ nop +/* 0EA7DC 7F0B5CAC E4800004 */ swc1 $f0, 4($a0) +/* 0EA7E0 7F0B5CB0 03E00008 */ jr $ra +/* 0EA7E4 7F0B5CB4 00001025 */ move $v0, $zero + +.L7F0B5CB8: +/* 0EA7E8 7F0B5CB8 03E00008 */ jr $ra +/* 0EA7EC 7F0B5CBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B5CC0(void *arg0, void *arg1) { + // Node 0 + if (*arg0 < *arg1) + { + // Node 1 + *arg0 = (f32) *arg0; + } + else + { + // Node 2 + *arg0 = (f32) *arg1; + } + // Node 3 + if (arg0->unk4 < arg1->unk4) + { + // Node 4 + arg0->unk4 = (f32) arg0->unk4; + } + else + { + // Node 5 + arg0->unk4 = (f32) arg1->unk4; + } + // Node 6 + if (arg1->unk8 < arg0->unk8) + { + // Node 7 + arg0->unk8 = (f32) arg0->unk8; + } + else + { + // Node 8 + arg0->unk8 = (f32) arg1->unk8; + } + // Node 9 + if (arg1->unkC < arg0->unkC) + { + // Node 10 + arg0->unkC = (f32) arg0->unkC; + return arg1->unkC; + } + // Node 11 + arg0->unkC = (f32) arg1->unkC; + return arg1->unkC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5CC0 +/* 0EA7F0 7F0B5CC0 C4800000 */ lwc1 $f0, ($a0) +/* 0EA7F4 7F0B5CC4 C4A20000 */ lwc1 $f2, ($a1) +/* 0EA7F8 7F0B5CC8 4602003C */ c.lt.s $f0, $f2 +/* 0EA7FC 7F0B5CCC 00000000 */ nop +/* 0EA800 7F0B5CD0 45020004 */ bc1fl .L7F0B5CE4 +/* 0EA804 7F0B5CD4 E4820000 */ swc1 $f2, ($a0) +/* 0EA808 7F0B5CD8 10000002 */ b .L7F0B5CE4 +/* 0EA80C 7F0B5CDC E4800000 */ swc1 $f0, ($a0) +/* 0EA810 7F0B5CE0 E4820000 */ swc1 $f2, ($a0) +.L7F0B5CE4: +/* 0EA814 7F0B5CE4 C4800004 */ lwc1 $f0, 4($a0) +/* 0EA818 7F0B5CE8 C4A20004 */ lwc1 $f2, 4($a1) +/* 0EA81C 7F0B5CEC 4602003C */ c.lt.s $f0, $f2 +/* 0EA820 7F0B5CF0 00000000 */ nop +/* 0EA824 7F0B5CF4 45020004 */ bc1fl .L7F0B5D08 +/* 0EA828 7F0B5CF8 E4820004 */ swc1 $f2, 4($a0) +/* 0EA82C 7F0B5CFC 10000002 */ b .L7F0B5D08 +/* 0EA830 7F0B5D00 E4800004 */ swc1 $f0, 4($a0) +/* 0EA834 7F0B5D04 E4820004 */ swc1 $f2, 4($a0) +.L7F0B5D08: +/* 0EA838 7F0B5D08 C4A00008 */ lwc1 $f0, 8($a1) +/* 0EA83C 7F0B5D0C C4820008 */ lwc1 $f2, 8($a0) +/* 0EA840 7F0B5D10 4602003C */ c.lt.s $f0, $f2 +/* 0EA844 7F0B5D14 00000000 */ nop +/* 0EA848 7F0B5D18 45020004 */ bc1fl .L7F0B5D2C +/* 0EA84C 7F0B5D1C E4800008 */ swc1 $f0, 8($a0) +/* 0EA850 7F0B5D20 10000002 */ b .L7F0B5D2C +/* 0EA854 7F0B5D24 E4820008 */ swc1 $f2, 8($a0) +/* 0EA858 7F0B5D28 E4800008 */ swc1 $f0, 8($a0) +.L7F0B5D2C: +/* 0EA85C 7F0B5D2C C4A0000C */ lwc1 $f0, 0xc($a1) +/* 0EA860 7F0B5D30 C482000C */ lwc1 $f2, 0xc($a0) +/* 0EA864 7F0B5D34 4602003C */ c.lt.s $f0, $f2 +/* 0EA868 7F0B5D38 00000000 */ nop +/* 0EA86C 7F0B5D3C 45020004 */ bc1fl .L7F0B5D50 +/* 0EA870 7F0B5D40 E480000C */ swc1 $f0, 0xc($a0) +/* 0EA874 7F0B5D44 03E00008 */ jr $ra +/* 0EA878 7F0B5D48 E482000C */ swc1 $f2, 0xc($a0) + +/* 0EA87C 7F0B5D4C E480000C */ swc1 $f0, 0xc($a0) +.L7F0B5D50: +/* 0EA880 7F0B5D50 03E00008 */ jr $ra +/* 0EA884 7F0B5D54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_4_floats_a1_to_a0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) *arg1; + arg0->unk4 = (f32) arg1->unk4; + arg0->unk8 = (f32) arg1->unk8; + arg0->unkC = (f32) arg1->unkC; + return; +} +#else +GLOBAL_ASM( +.text +glabel copy_4_floats_a1_to_a0 +/* 0EA888 7F0B5D58 C4A40000 */ lwc1 $f4, ($a1) +/* 0EA88C 7F0B5D5C E4840000 */ swc1 $f4, ($a0) +/* 0EA890 7F0B5D60 C4A60004 */ lwc1 $f6, 4($a1) +/* 0EA894 7F0B5D64 E4860004 */ swc1 $f6, 4($a0) +/* 0EA898 7F0B5D68 C4A80008 */ lwc1 $f8, 8($a1) +/* 0EA89C 7F0B5D6C E4880008 */ swc1 $f8, 8($a0) +/* 0EA8A0 7F0B5D70 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 0EA8A4 7F0B5D74 03E00008 */ jr $ra +/* 0EA8A8 7F0B5D78 E48A000C */ swc1 $f10, 0xc($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5D7C(s32 arg0) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_80044860 + 1) % 0xa); + D_80044860 = temp_hi; + sprintf(((temp_hi * 9) + &dword_CODE_bss_8007C040), "PORT%d", arg0); + return sp1C; +} +#else +GLOBAL_ASM( +.rdata +/*D:80058C48*/ +glabel aPortD +/*"PORT%d"*/ +.word 0x504F5254, 0x25640000 + + + +.text +glabel sub_GAME_7F0B5D7C +/* 0EA8AC 7F0B5D7C 3C028004 */ lui $v0, %hi(D_80044860) +/* 0EA8B0 7F0B5D80 8C424860 */ lw $v0, %lo(D_80044860)($v0) +/* 0EA8B4 7F0B5D84 2401000A */ li $at, 10 +/* 0EA8B8 7F0B5D88 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C040) +/* 0EA8BC 7F0B5D8C 24420001 */ addiu $v0, $v0, 1 +/* 0EA8C0 7F0B5D90 0041001A */ div $zero, $v0, $at +/* 0EA8C4 7F0B5D94 00007010 */ mfhi $t6 +/* 0EA8C8 7F0B5D98 000E78C0 */ sll $t7, $t6, 3 +/* 0EA8CC 7F0B5D9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA8D0 7F0B5DA0 00803025 */ move $a2, $a0 +/* 0EA8D4 7F0B5DA4 01EE7821 */ addu $t7, $t7, $t6 +/* 0EA8D8 7F0B5DA8 2718C040 */ addiu $t8, %lo(dword_CODE_bss_8007C040) # addiu $t8, $t8, -0x3fc0 +/* 0EA8DC 7F0B5DAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EA8E0 7F0B5DB0 01F82021 */ addu $a0, $t7, $t8 +/* 0EA8E4 7F0B5DB4 3C018004 */ lui $at, %hi(D_80044860) +/* 0EA8E8 7F0B5DB8 3C058006 */ lui $a1, %hi(aPortD) +/* 0EA8EC 7F0B5DBC AFA4001C */ sw $a0, 0x1c($sp) +/* 0EA8F0 7F0B5DC0 24A58C48 */ addiu $a1, %lo(aPortD) # addiu $a1, $a1, -0x73b8 +/* 0EA8F4 7F0B5DC4 0C002B25 */ jal sprintf +/* 0EA8F8 7F0B5DC8 AC2E4860 */ sw $t6, %lo(D_80044860)($at) +/* 0EA8FC 7F0B5DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EA900 7F0B5DD0 8FA2001C */ lw $v0, 0x1c($sp) +/* 0EA904 7F0B5DD4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA908 7F0B5DD8 03E00008 */ jr $ra +/* 0EA90C 7F0B5DDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5DE0(s32 arg0) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_80044864 + 1) % 0xa); + D_80044864 = temp_hi; + sprintf(((temp_hi * 9) + &dword_CODE_bss_8007C0A0), "ROOM%d", arg0); + return sp1C; +} +#else +GLOBAL_ASM( +.rdata +/*D:80058C50*/ +glabel aRoomD +/*"ROOM%d"*/ +.word 0x524F4F4D, 0x25640000 + +.text +glabel sub_GAME_7F0B5DE0 +/* 0EA910 7F0B5DE0 3C028004 */ lui $v0, %hi(D_80044864) +/* 0EA914 7F0B5DE4 8C424864 */ lw $v0, %lo(D_80044864)($v0) +/* 0EA918 7F0B5DE8 2401000A */ li $at, 10 +/* 0EA91C 7F0B5DEC 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C0A0) +/* 0EA920 7F0B5DF0 24420001 */ addiu $v0, $v0, 1 +/* 0EA924 7F0B5DF4 0041001A */ div $zero, $v0, $at +/* 0EA928 7F0B5DF8 00007010 */ mfhi $t6 +/* 0EA92C 7F0B5DFC 000E78C0 */ sll $t7, $t6, 3 +/* 0EA930 7F0B5E00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA934 7F0B5E04 00803025 */ move $a2, $a0 +/* 0EA938 7F0B5E08 01EE7821 */ addu $t7, $t7, $t6 +/* 0EA93C 7F0B5E0C 2718C0A0 */ addiu $t8, %lo(dword_CODE_bss_8007C0A0) # addiu $t8, $t8, -0x3f60 +/* 0EA940 7F0B5E10 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EA944 7F0B5E14 01F82021 */ addu $a0, $t7, $t8 +/* 0EA948 7F0B5E18 3C018004 */ lui $at, %hi(D_80044864) +/* 0EA94C 7F0B5E1C 3C058006 */ lui $a1, %hi(aRoomD) +/* 0EA950 7F0B5E20 AFA4001C */ sw $a0, 0x1c($sp) +/* 0EA954 7F0B5E24 24A58C50 */ addiu $a1, %lo(aRoomD) # addiu $a1, $a1, -0x73b0 +/* 0EA958 7F0B5E28 0C002B25 */ jal sprintf +/* 0EA95C 7F0B5E2C AC2E4864 */ sw $t6, %lo(D_80044864)($at) +/* 0EA960 7F0B5E30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EA964 7F0B5E34 8FA2001C */ lw $v0, 0x1c($sp) +/* 0EA968 7F0B5E38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA96C 7F0B5E3C 03E00008 */ jr $ra +/* 0EA970 7F0B5E40 00000000 */ nop +) +#endif + + + + + + +s32 getMaxNumRooms(void) { + return MaxNumRooms; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5E50(s32 arg0) { + return *(&array_room_info + (arg0 * 0x50)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E50 +/* 0EA980 7F0B5E50 00047080 */ sll $t6, $a0, 2 +/* 0EA984 7F0B5E54 01C47021 */ addu $t6, $t6, $a0 +/* 0EA988 7F0B5E58 000E7100 */ sll $t6, $t6, 4 +/* 0EA98C 7F0B5E5C 3C028004 */ lui $v0, %hi(array_room_info) +/* 0EA990 7F0B5E60 004E1021 */ addu $v0, $v0, $t6 +/* 0EA994 7F0B5E64 03E00008 */ jr $ra +/* 0EA998 7F0B5E68 90421414 */ lbu $v0, %lo(array_room_info)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5E6C(s32 arg0) { + return *(&array_room_info+0x1 + (arg0 * 0x50)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E6C +/* 0EA99C 7F0B5E6C 00047080 */ sll $t6, $a0, 2 +/* 0EA9A0 7F0B5E70 01C47021 */ addu $t6, $t6, $a0 +/* 0EA9A4 7F0B5E74 000E7100 */ sll $t6, $t6, 4 +/* 0EA9A8 7F0B5E78 3C028004 */ lui $v0, %hi(array_room_info+0x1) +/* 0EA9AC 7F0B5E7C 004E1021 */ addu $v0, $v0, $t6 +/* 0EA9B0 7F0B5E80 03E00008 */ jr $ra +/* 0EA9B4 7F0B5E84 90421415 */ lbu $v0, %lo(array_room_info+0x1)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B5E88(s32 arg0) { + s32 temp_a2; + s32 phi_a2; + s32 phi_v1; + void *phi_a1; + + // Node 0 + if (*ptr_bgdata_portals != 0) + { + // Node 1 + phi_a2 = *ptr_bgdata_portals; + phi_v1 = 0; + phi_a1 = ptr_bgdata_portals; +loop_2: + // Node 2 + if (arg0 == phi_a2) + { + // Node 3 + return phi_v1; + } + // Node 4 + temp_a2 = phi_a1->unk8; + phi_a2 = temp_a2; + phi_v1 = (phi_v1 + 1); + phi_a1 = (phi_a1 + 8); + if (temp_a2 != 0) + { + goto loop_2; + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E88 +/* 0EA9B8 7F0B5E88 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EA9BC 7F0B5E8C 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EA9C0 7F0B5E90 00001825 */ move $v1, $zero +/* 0EA9C4 7F0B5E94 8C4E0000 */ lw $t6, ($v0) +/* 0EA9C8 7F0B5E98 00402825 */ move $a1, $v0 +/* 0EA9CC 7F0B5E9C 51C0000C */ beql $t6, $zero, .L7F0B5ED0 +/* 0EA9D0 7F0B5EA0 00001025 */ move $v0, $zero +/* 0EA9D4 7F0B5EA4 8C460000 */ lw $a2, ($v0) +.L7F0B5EA8: +/* 0EA9D8 7F0B5EA8 54860004 */ bnel $a0, $a2, .L7F0B5EBC +/* 0EA9DC 7F0B5EAC 8CA60008 */ lw $a2, 8($a1) +/* 0EA9E0 7F0B5EB0 03E00008 */ jr $ra +/* 0EA9E4 7F0B5EB4 00601025 */ move $v0, $v1 + +/* 0EA9E8 7F0B5EB8 8CA60008 */ lw $a2, 8($a1) +.L7F0B5EBC: +/* 0EA9EC 7F0B5EBC 24630001 */ addiu $v1, $v1, 1 +/* 0EA9F0 7F0B5EC0 24A50008 */ addiu $a1, $a1, 8 +/* 0EA9F4 7F0B5EC4 14C0FFF8 */ bnez $a2, .L7F0B5EA8 +/* 0EA9F8 7F0B5EC8 00000000 */ nop +/* 0EA9FC 7F0B5ECC 00001025 */ move $v0, $zero +.L7F0B5ED0: +/* 0EAA00 7F0B5ED0 03E00008 */ jr $ra +/* 0EAA04 7F0B5ED4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_room_load_string(void) { + ? sp29; + ? temp_ret; + void *phi_v1; + s32 phi_a0; + void *phi_v0; + s32 phi_a0_2; + s32 phi_a0_3; + + // Node 0 + temp_ret = get_debug_prroomloads_flag(); + if (temp_ret != 0) + { + // Node 1 + phi_a0_3 = 1; + if (MaxNumRooms >= 2) + { + // Node 2 + phi_v1 = &array_room_info + 0x10 +0x40; + phi_a0 = 1; + phi_v0 = &sp29; +loop_3: + // Node 3 + if (phi_v1->unk2 != 0) + { + // Node 4 + *phi_v0 = (s8) (((s32) phi_a0 % 0xa) + 0x30); + phi_a0_2 = (phi_a0 + 1); + } + else + { + // Node 5 + *phi_v0 = (u8)0x2e; + phi_a0_2 = (phi_a0 + 1); + } + // Node 6 + phi_v1 = (phi_v1 + 0x50); + phi_a0 = phi_a0_2; + phi_v0 = (phi_v0 + 1); + phi_a0_3 = phi_a0_2; + if (phi_a0_2 < MaxNumRooms) + { + goto loop_3; + } + } + // Node 7 + (sp + phi_a0_3)->unk28 = (u8)0; + } + // Node 8 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel generate_room_load_string +/* 0EAA08 7F0B5ED8 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0EAA0C 7F0B5EDC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAA10 7F0B5EE0 0FC243F4 */ jal get_debug_prroomloads_flag +/* 0EAA14 7F0B5EE4 00000000 */ nop +/* 0EAA18 7F0B5EE8 10400024 */ beqz $v0, .L7F0B5F7C +/* 0EAA1C 7F0B5EEC 3C078004 */ lui $a3, %hi(MaxNumRooms) +/* 0EAA20 7F0B5EF0 8CE742F4 */ lw $a3, %lo(MaxNumRooms)($a3) +/* 0EAA24 7F0B5EF4 3C038004 */ lui $v1, %hi(array_room_info + 0x10 +0x40) +/* 0EAA28 7F0B5EF8 24631464 */ addiu $v1, %lo(array_room_info + 0x10 +0x40) # addiu $v1, $v1, 0x1464 +/* 0EAA2C 7F0B5EFC 28E10002 */ slti $at, $a3, 2 +/* 0EAA30 7F0B5F00 1420001C */ bnez $at, .L7F0B5F74 +/* 0EAA34 7F0B5F04 24040001 */ li $a0, 1 +/* 0EAA38 7F0B5F08 27A20029 */ addiu $v0, $sp, 0x29 +/* 0EAA3C 7F0B5F0C 2406002E */ li $a2, 46 +/* 0EAA40 7F0B5F10 2405000A */ li $a1, 10 +.L7F0B5F14: +/* 0EAA44 7F0B5F14 906E0002 */ lbu $t6, 2($v1) +/* 0EAA48 7F0B5F18 24630050 */ addiu $v1, $v1, 0x50 +/* 0EAA4C 7F0B5F1C 51C00011 */ beql $t6, $zero, .L7F0B5F64 +/* 0EAA50 7F0B5F20 A0460000 */ sb $a2, ($v0) +/* 0EAA54 7F0B5F24 0085001A */ div $zero, $a0, $a1 +/* 0EAA58 7F0B5F28 00007810 */ mfhi $t7 +/* 0EAA5C 7F0B5F2C 25F80030 */ addiu $t8, $t7, 0x30 +/* 0EAA60 7F0B5F30 14A00002 */ bnez $a1, .L7F0B5F3C +/* 0EAA64 7F0B5F34 00000000 */ nop +/* 0EAA68 7F0B5F38 0007000D */ break 7 +.L7F0B5F3C: +/* 0EAA6C 7F0B5F3C 2401FFFF */ li $at, -1 +/* 0EAA70 7F0B5F40 14A10004 */ bne $a1, $at, .L7F0B5F54 +/* 0EAA74 7F0B5F44 3C018000 */ lui $at, 0x8000 +/* 0EAA78 7F0B5F48 14810002 */ bne $a0, $at, .L7F0B5F54 +/* 0EAA7C 7F0B5F4C 00000000 */ nop +/* 0EAA80 7F0B5F50 0006000D */ break 6 +.L7F0B5F54: +/* 0EAA84 7F0B5F54 A0580000 */ sb $t8, ($v0) +/* 0EAA88 7F0B5F58 10000003 */ b .L7F0B5F68 +/* 0EAA8C 7F0B5F5C 24840001 */ addiu $a0, $a0, 1 +/* 0EAA90 7F0B5F60 A0460000 */ sb $a2, ($v0) +.L7F0B5F64: +/* 0EAA94 7F0B5F64 24840001 */ addiu $a0, $a0, 1 +.L7F0B5F68: +/* 0EAA98 7F0B5F68 0087082A */ slt $at, $a0, $a3 +/* 0EAA9C 7F0B5F6C 1420FFE9 */ bnez $at, .L7F0B5F14 +/* 0EAAA0 7F0B5F70 24420001 */ addiu $v0, $v0, 1 +.L7F0B5F74: +/* 0EAAA4 7F0B5F74 03A4C821 */ addu $t9, $sp, $a0 +/* 0EAAA8 7F0B5F78 A3200028 */ sb $zero, 0x28($t9) +.L7F0B5F7C: +/* 0EAAAC 7F0B5F7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAAB0 7F0B5F80 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0EAAB4 7F0B5F84 03E00008 */ jr $ra +/* 0EAAB8 7F0B5F88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5F8C(void) { + ? sp18; + + // Node 0 + return decompressdata(&sp18); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5F8C +/* 0EAABC 7F0B5F8C 27BDDEE8 */ addiu $sp, $sp, -0x2118 +/* 0EAAC0 7F0B5F90 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAAC4 7F0B5F94 0FC339FC */ jal decompressdata +/* 0EAAC8 7F0B5F98 27A60018 */ addiu $a2, $sp, 0x18 +/* 0EAACC 7F0B5F9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAAD0 7F0B5FA0 27BD2118 */ addiu $sp, $sp, 0x2118 +/* 0EAAD4 7F0B5FA4 03E00008 */ jr $ra +/* 0EAAD8 7F0B5FA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5FAC(s32 arg0, s32 arg1, s32 arg2) { + void *sp1C; + void *temp_v1; + s32 temp_t9; + ? temp_ret; + + // Node 0 + temp_v1 = ((arg0 * 0x50) + &array_room_info); + temp_t9 = ((temp_v1->unk10 + 0xf) & -0x10); + if (arg2 >= (temp_t9 + 0x20)) + { + // Node 2 + sp1C = temp_v1; + obLoadBGFileBytesAtOffset(*(&levelinfotable + (D_80041400 * 0x18)), ((arg2 - temp_t9) + arg1), (((*(ptr_bgdata_room_fileposition_list + (arg0 * 0x18)) + ptr_bg_data) - ptr_bg_data) + 0xf1000000), temp_t9); + temp_ret = sub_GAME_7F0B5F8C(sp18, arg1); + temp_v1->unk1C = temp_ret; + temp_v1->unk4 = arg1; + // Node 3 + return temp_ret; + } + // Node 1 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5FAC +/* 0EAADC 7F0B5FAC 00047880 */ sll $t7, $a0, 2 +/* 0EAAE0 7F0B5FB0 01E47821 */ addu $t7, $t7, $a0 +/* 0EAAE4 7F0B5FB4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EAAE8 7F0B5FB8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EAAEC 7F0B5FBC 000F7900 */ sll $t7, $t7, 4 +/* 0EAAF0 7F0B5FC0 01F81821 */ addu $v1, $t7, $t8 +/* 0EAAF4 7F0B5FC4 8C670010 */ lw $a3, 0x10($v1) +/* 0EAAF8 7F0B5FC8 2401FFF0 */ li $at, -16 +/* 0EAAFC 7F0B5FCC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EAB00 7F0B5FD0 24E7000F */ addiu $a3, $a3, 0xf +/* 0EAB04 7F0B5FD4 00E1C824 */ and $t9, $a3, $at +/* 0EAB08 7F0B5FD8 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EAB0C 7F0B5FDC 00CA082A */ slt $at, $a2, $t2 +/* 0EAB10 7F0B5FE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAB14 7F0B5FE4 AFA40030 */ sw $a0, 0x30($sp) +/* 0EAB18 7F0B5FE8 AFA50034 */ sw $a1, 0x34($sp) +/* 0EAB1C 7F0B5FEC AFA60038 */ sw $a2, 0x38($sp) +/* 0EAB20 7F0B5FF0 10200003 */ beqz $at, .L7F0B6000 +/* 0EAB24 7F0B5FF4 03203825 */ move $a3, $t9 +/* 0EAB28 7F0B5FF8 10000024 */ b .L7F0B608C +/* 0EAB2C 7F0B5FFC 2402FFFF */ li $v0, -1 +.L7F0B6000: +/* 0EAB30 7F0B6000 8FAC0030 */ lw $t4, 0x30($sp) +/* 0EAB34 7F0B6004 24080018 */ li $t0, 24 +/* 0EAB38 7F0B6008 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAB3C 7F0B600C 01880019 */ multu $t4, $t0 +/* 0EAB40 7F0B6010 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAB44 7F0B6014 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAB48 7F0B6018 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAB4C 7F0B601C 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAB50 7F0B6020 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAB54 7F0B6024 8FAA0038 */ lw $t2, 0x38($sp) +/* 0EAB58 7F0B6028 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAB5C 7F0B602C 3C01F100 */ lui $at, 0xf100 +/* 0EAB60 7F0B6030 01476023 */ subu $t4, $t2, $a3 +/* 0EAB64 7F0B6034 00006812 */ mflo $t5 +/* 0EAB68 7F0B6038 016D7021 */ addu $t6, $t3, $t5 +/* 0EAB6C 7F0B603C 8DCF0000 */ lw $t7, ($t6) +/* 0EAB70 7F0B6040 03280019 */ multu $t9, $t0 +/* 0EAB74 7F0B6044 8FAB0034 */ lw $t3, 0x34($sp) +/* 0EAB78 7F0B6048 01E2C021 */ addu $t8, $t7, $v0 +/* 0EAB7C 7F0B604C 03023023 */ subu $a2, $t8, $v0 +/* 0EAB80 7F0B6050 018B2821 */ addu $a1, $t4, $t3 +/* 0EAB84 7F0B6054 00C13021 */ addu $a2, $a2, $at +/* 0EAB88 7F0B6058 AFA50018 */ sw $a1, 0x18($sp) +/* 0EAB8C 7F0B605C AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAB90 7F0B6060 00004812 */ mflo $t1 +/* 0EAB94 7F0B6064 00892021 */ addu $a0, $a0, $t1 +/* 0EAB98 7F0B6068 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EAB9C 7F0B606C 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EABA0 7F0B6070 8FA40018 */ lw $a0, 0x18($sp) +/* 0EABA4 7F0B6074 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EABA8 7F0B6078 8FA50034 */ lw $a1, 0x34($sp) +/* 0EABAC 7F0B607C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EABB0 7F0B6080 8FAD0034 */ lw $t5, 0x34($sp) +/* 0EABB4 7F0B6084 AC62001C */ sw $v0, 0x1c($v1) +/* 0EABB8 7F0B6088 AC6D0004 */ sw $t5, 4($v1) +.L7F0B608C: +/* 0EABBC 7F0B608C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EABC0 7F0B6090 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EABC4 7F0B6094 03E00008 */ jr $ra +/* 0EABC8 7F0B6098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B609C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B609C +/* 0EABCC 7F0B609C 00047880 */ sll $t7, $a0, 2 +/* 0EABD0 7F0B60A0 01E47821 */ addu $t7, $t7, $a0 +/* 0EABD4 7F0B60A4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EABD8 7F0B60A8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EABDC 7F0B60AC 000F7900 */ sll $t7, $t7, 4 +/* 0EABE0 7F0B60B0 01F84021 */ addu $t0, $t7, $t8 +/* 0EABE4 7F0B60B4 8D070014 */ lw $a3, 0x14($t0) +/* 0EABE8 7F0B60B8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EABEC 7F0B60BC 2401FFF0 */ li $at, -16 +/* 0EABF0 7F0B60C0 24E7000F */ addiu $a3, $a3, 0xf +/* 0EABF4 7F0B60C4 00E1C824 */ and $t9, $a3, $at +/* 0EABF8 7F0B60C8 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EABFC 7F0B60CC AFB00014 */ sw $s0, 0x14($sp) +/* 0EAC00 7F0B60D0 00CA082A */ slt $at, $a2, $t2 +/* 0EAC04 7F0B60D4 00A08025 */ move $s0, $a1 +/* 0EAC08 7F0B60D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EAC0C 7F0B60DC AFB10018 */ sw $s1, 0x18($sp) +/* 0EAC10 7F0B60E0 AFA40038 */ sw $a0, 0x38($sp) +/* 0EAC14 7F0B60E4 AFA60040 */ sw $a2, 0x40($sp) +/* 0EAC18 7F0B60E8 10200003 */ beqz $at, .L7F0B60F8 +/* 0EAC1C 7F0B60EC 03203825 */ move $a3, $t9 +/* 0EAC20 7F0B60F0 10000035 */ b .L7F0B61C8 +/* 0EAC24 7F0B60F4 2402FFFF */ li $v0, -1 +.L7F0B60F8: +/* 0EAC28 7F0B60F8 8FAC0038 */ lw $t4, 0x38($sp) +/* 0EAC2C 7F0B60FC 24030018 */ li $v1, 24 +/* 0EAC30 7F0B6100 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAC34 7F0B6104 01830019 */ multu $t4, $v1 +/* 0EAC38 7F0B6108 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAC3C 7F0B610C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAC40 7F0B6110 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAC44 7F0B6114 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAC48 7F0B6118 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAC4C 7F0B611C 8FAA0040 */ lw $t2, 0x40($sp) +/* 0EAC50 7F0B6120 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAC54 7F0B6124 3C01F100 */ lui $at, 0xf100 +/* 0EAC58 7F0B6128 01476023 */ subu $t4, $t2, $a3 +/* 0EAC5C 7F0B612C 00006812 */ mflo $t5 +/* 0EAC60 7F0B6130 016D7021 */ addu $t6, $t3, $t5 +/* 0EAC64 7F0B6134 8DCF0004 */ lw $t7, 4($t6) +/* 0EAC68 7F0B6138 03230019 */ multu $t9, $v1 +/* 0EAC6C 7F0B613C 01908821 */ addu $s1, $t4, $s0 +/* 0EAC70 7F0B6140 01E2C021 */ addu $t8, $t7, $v0 +/* 0EAC74 7F0B6144 03023023 */ subu $a2, $t8, $v0 +/* 0EAC78 7F0B6148 00C13021 */ addu $a2, $a2, $at +/* 0EAC7C 7F0B614C 02202825 */ move $a1, $s1 +/* 0EAC80 7F0B6150 AFA80020 */ sw $t0, 0x20($sp) +/* 0EAC84 7F0B6154 00004812 */ mflo $t1 +/* 0EAC88 7F0B6158 00892021 */ addu $a0, $a0, $t1 +/* 0EAC8C 7F0B615C 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EAC90 7F0B6160 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EAC94 7F0B6164 02202025 */ move $a0, $s1 +/* 0EAC98 7F0B6168 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EAC9C 7F0B616C 02002825 */ move $a1, $s0 +/* 0EACA0 7F0B6170 8FAB0040 */ lw $t3, 0x40($sp) +/* 0EACA4 7F0B6174 00408825 */ move $s1, $v0 +/* 0EACA8 7F0B6178 02002025 */ move $a0, $s0 +/* 0EACAC 7F0B617C 01626823 */ subu $t5, $t3, $v0 +/* 0EACB0 7F0B6180 01B02821 */ addu $a1, $t5, $s0 +/* 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 +/* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp) +/* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp) +/* 0EACCC 7F0B619C 02202825 */ move $a1, $s1 +/* 0EACD0 7F0B61A0 02003025 */ move $a2, $s0 +/* 0EACD4 7F0B61A4 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0EACD8 7F0B61A8 00003825 */ move $a3, $zero +/* 0EACDC 7F0B61AC 0222082A */ slt $at, $s1, $v0 +/* 0EACE0 7F0B61B0 10200002 */ beqz $at, .L7F0B61BC +/* 0EACE4 7F0B61B4 8FA30020 */ lw $v1, 0x20($sp) +/* 0EACE8 7F0B61B8 00408825 */ move $s1, $v0 +.L7F0B61BC: +/* 0EACEC 7F0B61BC AC700008 */ sw $s0, 8($v1) +/* 0EACF0 7F0B61C0 AC710020 */ sw $s1, 0x20($v1) +/* 0EACF4 7F0B61C4 02201025 */ move $v0, $s1 +.L7F0B61C8: +/* 0EACF8 7F0B61C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EACFC 7F0B61CC 8FB00014 */ lw $s0, 0x14($sp) +/* 0EAD00 7F0B61D0 8FB10018 */ lw $s1, 0x18($sp) +/* 0EAD04 7F0B61D4 03E00008 */ jr $ra +/* 0EAD08 7F0B61D8 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B61DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B61DC +/* 0EAD0C 7F0B61DC 00047880 */ sll $t7, $a0, 2 +/* 0EAD10 7F0B61E0 01E47821 */ addu $t7, $t7, $a0 +/* 0EAD14 7F0B61E4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EAD18 7F0B61E8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EAD1C 7F0B61EC 000F7900 */ sll $t7, $t7, 4 +/* 0EAD20 7F0B61F0 01F84021 */ addu $t0, $t7, $t8 +/* 0EAD24 7F0B61F4 8D070018 */ lw $a3, 0x18($t0) +/* 0EAD28 7F0B61F8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EAD2C 7F0B61FC 2401FFF0 */ li $at, -16 +/* 0EAD30 7F0B6200 24E7000F */ addiu $a3, $a3, 0xf +/* 0EAD34 7F0B6204 00E1C824 */ and $t9, $a3, $at +/* 0EAD38 7F0B6208 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EAD3C 7F0B620C AFB10018 */ sw $s1, 0x18($sp) +/* 0EAD40 7F0B6210 00CA082A */ slt $at, $a2, $t2 +/* 0EAD44 7F0B6214 00A08825 */ move $s1, $a1 +/* 0EAD48 7F0B6218 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EAD4C 7F0B621C AFB00014 */ sw $s0, 0x14($sp) +/* 0EAD50 7F0B6220 AFA40038 */ sw $a0, 0x38($sp) +/* 0EAD54 7F0B6224 AFA60040 */ sw $a2, 0x40($sp) +/* 0EAD58 7F0B6228 10200003 */ beqz $at, .L7F0B6238 +/* 0EAD5C 7F0B622C 03203825 */ move $a3, $t9 +/* 0EAD60 7F0B6230 10000033 */ b .L7F0B6300 +/* 0EAD64 7F0B6234 2402FFFF */ li $v0, -1 +.L7F0B6238: +/* 0EAD68 7F0B6238 8FAC0038 */ lw $t4, 0x38($sp) +/* 0EAD6C 7F0B623C 24030018 */ li $v1, 24 +/* 0EAD70 7F0B6240 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAD74 7F0B6244 01830019 */ multu $t4, $v1 +/* 0EAD78 7F0B6248 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAD7C 7F0B624C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAD80 7F0B6250 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAD84 7F0B6254 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAD88 7F0B6258 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAD8C 7F0B625C 8FAA0040 */ lw $t2, 0x40($sp) +/* 0EAD90 7F0B6260 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAD94 7F0B6264 3C01F100 */ lui $at, 0xf100 +/* 0EAD98 7F0B6268 01476023 */ subu $t4, $t2, $a3 +/* 0EAD9C 7F0B626C 00006812 */ mflo $t5 +/* 0EADA0 7F0B6270 016D7021 */ addu $t6, $t3, $t5 +/* 0EADA4 7F0B6274 8DCF0008 */ lw $t7, 8($t6) +/* 0EADA8 7F0B6278 03230019 */ multu $t9, $v1 +/* 0EADAC 7F0B627C 01918021 */ addu $s0, $t4, $s1 +/* 0EADB0 7F0B6280 01E2C021 */ addu $t8, $t7, $v0 +/* 0EADB4 7F0B6284 03023023 */ subu $a2, $t8, $v0 +/* 0EADB8 7F0B6288 00C13021 */ addu $a2, $a2, $at +/* 0EADBC 7F0B628C 02002825 */ move $a1, $s0 +/* 0EADC0 7F0B6290 AFA80020 */ sw $t0, 0x20($sp) +/* 0EADC4 7F0B6294 00004812 */ mflo $t1 +/* 0EADC8 7F0B6298 00892021 */ addu $a0, $a0, $t1 +/* 0EADCC 7F0B629C 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EADD0 7F0B62A0 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EADD4 7F0B62A4 02002025 */ move $a0, $s0 +/* 0EADD8 7F0B62A8 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EADDC 7F0B62AC 02202825 */ move $a1, $s1 +/* 0EADE0 7F0B62B0 8FAB0040 */ lw $t3, 0x40($sp) +/* 0EADE4 7F0B62B4 00408025 */ move $s0, $v0 +/* 0EADE8 7F0B62B8 02202025 */ move $a0, $s1 +/* 0EADEC 7F0B62BC 01626823 */ subu $t5, $t3, $v0 +/* 0EADF0 7F0B62C0 01B12821 */ addu $a1, $t5, $s1 +/* 0EADF4 7F0B62C4 AFA50028 */ sw $a1, 0x28($sp) +/* 0EADF8 7F0B62C8 0FC339E5 */ jal sub_GAME_7F0CE794 +/* 0EADFC 7F0B62CC 00403025 */ move $a2, $v0 +/* 0EAE00 7F0B62D0 8FA40028 */ lw $a0, 0x28($sp) +/* 0EAE04 7F0B62D4 02002825 */ move $a1, $s0 +/* 0EAE08 7F0B62D8 02203025 */ move $a2, $s1 +/* 0EAE0C 7F0B62DC 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0EAE10 7F0B62E0 00003825 */ move $a3, $zero +/* 0EAE14 7F0B62E4 0202082A */ slt $at, $s0, $v0 +/* 0EAE18 7F0B62E8 10200002 */ beqz $at, .L7F0B62F4 +/* 0EAE1C 7F0B62EC 8FA30020 */ lw $v1, 0x20($sp) +/* 0EAE20 7F0B62F0 00408025 */ move $s0, $v0 +.L7F0B62F4: +/* 0EAE24 7F0B62F4 AC71000C */ sw $s1, 0xc($v1) +/* 0EAE28 7F0B62F8 AC700024 */ sw $s0, 0x24($v1) +/* 0EAE2C 7F0B62FC 02001025 */ move $v0, $s0 +.L7F0B6300: +/* 0EAE30 7F0B6300 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EAE34 7F0B6304 8FB00014 */ lw $s0, 0x14($sp) +/* 0EAE38 7F0B6308 8FB10018 */ lw $s1, 0x18($sp) +/* 0EAE3C 7F0B630C 03E00008 */ jr $ra +/* 0EAE40 7F0B6310 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6314(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = ((arg0 * 0x50) + &array_room_info); + temp_v0->unk35 = (u8)1; + if (temp_v0->unk2 != 0) + { + // Node 2 + // Node 3 + return 0; + } + // Node 1 + sub_GAME_7F0B6368(); + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6314 +/* 0EAE44 7F0B6314 00047080 */ sll $t6, $a0, 2 +/* 0EAE48 7F0B6318 01C47021 */ addu $t6, $t6, $a0 +/* 0EAE4C 7F0B631C 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EAE50 7F0B6320 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EAE54 7F0B6324 000E7100 */ sll $t6, $t6, 4 +/* 0EAE58 7F0B6328 01CF1021 */ addu $v0, $t6, $t7 +/* 0EAE5C 7F0B632C 90590002 */ lbu $t9, 2($v0) +/* 0EAE60 7F0B6330 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0EAE64 7F0B6334 24180001 */ li $t8, 1 +/* 0EAE68 7F0B6338 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAE6C 7F0B633C 17200005 */ bnez $t9, .L7F0B6354 +/* 0EAE70 7F0B6340 A0580035 */ sb $t8, 0x35($v0) +/* 0EAE74 7F0B6344 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EAE78 7F0B6348 00000000 */ nop +/* 0EAE7C 7F0B634C 10000002 */ b .L7F0B6358 +/* 0EAE80 7F0B6350 24020001 */ li $v0, 1 +.L7F0B6354: +/* 0EAE84 7F0B6354 00001025 */ move $v0, $zero +.L7F0B6358: +/* 0EAE88 7F0B6358 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAE8C 7F0B635C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0EAE90 7F0B6360 03E00008 */ jr $ra +/* 0EAE94 7F0B6364 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6368(s32 rooms) { + void *sp1C; + s32 sp20; + s32 sp28; + s32 sp2C; + void *temp_v1; + ? temp_ret; + void *temp_v1_2; + ? temp_ret_2; + ? temp_ret_3; + void *temp_v1_5; + ? temp_ret_4; + void *temp_v1_6; + s32 temp_t1; + s32 temp_a0; + void *temp_v1_3; + s32 temp_a0_2; + void *temp_v1_4; + void *phi_v1; + s32 phi_a3; + s32 phi_a3_2; + void *phi_v1_2; + void *phi_v1_3; + + // Node 0 + if (rooms < MaxNumRooms) + { + // Node 1 + temp_v1 = ((rooms * 0x50) + &array_room_info); + if (temp_v1->unk2 == 0) + { + // Node 2 + if (temp_v1->unk28 > 0) + { + // Node 3 + sp2C = (s32) temp_v1->unk28; + sp1C = temp_v1; + sp28 = 0; + if (get_debug_joy2detailedit_flag(0) != 0) + { + // Node 4 + sp2C = (s32) (sp2C + 0x400); + } + } + else + { + // Node 5 + sp1C = temp_v1; + sp2C = mem_related_0(0); + } + // Node 6 + sp1C = (void *) temp_v1; + temp_ret = mem_related_something_find_first(sp2C, sp28); + temp_v1_2 = temp_v1; + sp20 = temp_ret; + if (temp_ret != 0) + { + // Node 7 + if (temp_v1_2->unk10 != 0) + { + // Node 8 + sp1C = temp_v1_2; + temp_ret_2 = sub_GAME_7F0B5FAC(rooms, temp_ret, sp2C, sp28); + if (temp_ret_2 >= 0) + { + // Node 9 + sp1C = temp_v1_2; + sp28 = temp_ret_2; + sub_GAME_7F0BB978(rooms, sp28); + } + } + else + { + // Node 10 + temp_v1_2->unk4 = 0; + temp_v1_2->unk1C = 0; + } + // Node 11 + phi_v1 = temp_v1_2; + phi_a3 = sp28; + if (temp_v1_2->unk14 != 0) + { + // Node 12 + sp1C = (void *) temp_v1_2; + temp_ret_3 = sub_GAME_7F0B609C(rooms, (sp20 + sp28), (sp2C - sp28), sp28); + temp_v1_5 = temp_v1_2; + phi_v1 = temp_v1_5; + phi_a3 = sp28; + if (temp_ret_3 >= 0) + { + // Node 13 + phi_v1 = temp_v1_5; + phi_a3 = (sp28 + temp_ret_3); + } + } + // Node 14 + if (phi_v1->unk18 != 0) + { + // Node 15 + sp1C = (void *) phi_v1; + temp_ret_4 = sub_GAME_7F0B61DC(rooms, (sp20 + phi_a3), (sp2C - phi_a3), phi_a3); + temp_v1_6 = phi_v1; + phi_a3_2 = sp28; + phi_v1_2 = temp_v1_6; + if (temp_ret_4 > 0) + { + // Node 16 + phi_a3_2 = (sp28 + temp_ret_4); + phi_v1_2 = temp_v1_6; + } + } + else + { + // Node 17 + phi_v1->unkC = 0; + phi_a3_2 = phi_a3; + phi_v1_2 = phi_v1; + } + // Node 18 + temp_t1 = ((phi_a3_2 + 0x20) & -0x10); + phi_v1_2->unk28 = temp_t1; + phi_v1_2->unk2 = (u8)1; + phi_v1_3 = phi_v1_2; + if (sp2C != temp_t1) + { + // Node 19 + sp1C = (void *) phi_v1_2; + mem_related_1(sp20, sp2C, temp_t1, phi_a3_2); + phi_v1_3 = phi_v1_2; + } + // Node 20 + if (sky_enabled != 0) + { + // Node 21 + temp_a0 = phi_v1_3->unk8; + sp1C = (void *) phi_v1_3; + sub_GAME_7F0BA640(temp_a0, (phi_v1_3->unk20 + temp_a0), 1); + temp_v1_3 = phi_v1_3; + if (temp_v1_3->unkC != 0) + { + // Node 22 + sub_GAME_7F0BA640(temp_v1_3->unkC, (temp_v1_3->unk24 + temp_v1_3->unkC), 5); + } + } + else + { + // Node 23 + temp_a0_2 = phi_v1_3->unk8; + sp1C = (void *) phi_v1_3; + sub_GAME_7F0BA640(temp_a0_2, (phi_v1_3->unk20 + temp_a0_2), 6); + temp_v1_4 = phi_v1_3; + if (temp_v1_4->unkC != 0) + { + // Node 24 + sub_GAME_7F0BA640(temp_v1_4->unkC, (temp_v1_4->unk24 + temp_v1_4->unkC), 7); + } + } + // Node 25 + sub_GAME_7F0B6994(rooms); + generate_room_load_string(); + } + } + } + // Node 26 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6368 +/* 0EAE98 7F0B6368 3C0F8004 */ lui $t7, %hi(MaxNumRooms) +/* 0EAE9C 7F0B636C 8DEF42F4 */ lw $t7, %lo(MaxNumRooms)($t7) +/* 0EAEA0 7F0B6370 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EAEA4 7F0B6374 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAEA8 7F0B6378 008F082A */ slt $at, $a0, $t7 +/* 0EAEAC 7F0B637C AFA40030 */ sw $a0, 0x30($sp) +/* 0EAEB0 7F0B6380 1020008C */ beqz $at, .L7F0B65B4 +/* 0EAEB4 7F0B6384 00003825 */ move $a3, $zero +/* 0EAEB8 7F0B6388 0004C880 */ sll $t9, $a0, 2 +/* 0EAEBC 7F0B638C 0324C821 */ addu $t9, $t9, $a0 +/* 0EAEC0 7F0B6390 3C088004 */ lui $t0, %hi(array_room_info) +/* 0EAEC4 7F0B6394 25081414 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, 0x1414 +/* 0EAEC8 7F0B6398 0019C900 */ sll $t9, $t9, 4 +/* 0EAECC 7F0B639C 03281821 */ addu $v1, $t9, $t0 +/* 0EAED0 7F0B63A0 90690002 */ lbu $t1, 2($v1) +/* 0EAED4 7F0B63A4 55200084 */ bnezl $t1, .L7F0B65B8 +/* 0EAED8 7F0B63A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAEDC 7F0B63AC 8C620028 */ lw $v0, 0x28($v1) +/* 0EAEE0 7F0B63B0 5840000D */ blezl $v0, .L7F0B63E8 +/* 0EAEE4 7F0B63B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAEE8 7F0B63B8 AFA2002C */ sw $v0, 0x2c($sp) +/* 0EAEEC 7F0B63BC AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAEF0 7F0B63C0 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 0EAEF4 7F0B63C4 AFA00028 */ sw $zero, 0x28($sp) +/* 0EAEF8 7F0B63C8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAEFC 7F0B63CC 1040000B */ beqz $v0, .L7F0B63FC +/* 0EAF00 7F0B63D0 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF04 7F0B63D4 8FAA002C */ lw $t2, 0x2c($sp) +/* 0EAF08 7F0B63D8 254B0400 */ addiu $t3, $t2, 0x400 +/* 0EAF0C 7F0B63DC 10000007 */ b .L7F0B63FC +/* 0EAF10 7F0B63E0 AFAB002C */ sw $t3, 0x2c($sp) +/* 0EAF14 7F0B63E4 AFA3001C */ sw $v1, 0x1c($sp) +.L7F0B63E8: +/* 0EAF18 7F0B63E8 0C0028DC */ jal mem_related_0 +/* 0EAF1C 7F0B63EC AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF20 7F0B63F0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF24 7F0B63F4 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF28 7F0B63F8 AFA2002C */ sw $v0, 0x2c($sp) +.L7F0B63FC: +/* 0EAF2C 7F0B63FC 8FA4002C */ lw $a0, 0x2c($sp) +/* 0EAF30 7F0B6400 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAF34 7F0B6404 0C00278D */ jal mem_related_something_find_first +/* 0EAF38 7F0B6408 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF3C 7F0B640C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF40 7F0B6410 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF44 7F0B6414 10400067 */ beqz $v0, .L7F0B65B4 +/* 0EAF48 7F0B6418 AFA20020 */ sw $v0, 0x20($sp) +/* 0EAF4C 7F0B641C 8C6C0010 */ lw $t4, 0x10($v1) +/* 0EAF50 7F0B6420 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAF54 7F0B6424 00402825 */ move $a1, $v0 +/* 0EAF58 7F0B6428 1180000E */ beqz $t4, .L7F0B6464 +/* 0EAF5C 7F0B642C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0EAF60 7F0B6430 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAF64 7F0B6434 0FC2D7EB */ jal sub_GAME_7F0B5FAC +/* 0EAF68 7F0B6438 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF6C 7F0B643C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF70 7F0B6440 0440000A */ bltz $v0, .L7F0B646C +/* 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 +/* 0EAF84 7F0B6454 AFA20028 */ sw $v0, 0x28($sp) +/* 0EAF88 7F0B6458 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF8C 7F0B645C 10000003 */ b .L7F0B646C +/* 0EAF90 7F0B6460 8FA70028 */ lw $a3, 0x28($sp) +.L7F0B6464: +/* 0EAF94 7F0B6464 AC600004 */ sw $zero, 4($v1) +/* 0EAF98 7F0B6468 AC60001C */ sw $zero, 0x1c($v1) +.L7F0B646C: +/* 0EAF9C 7F0B646C 8C6D0014 */ lw $t5, 0x14($v1) +/* 0EAFA0 7F0B6470 8FAE0020 */ lw $t6, 0x20($sp) +/* 0EAFA4 7F0B6474 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAFA8 7F0B6478 11A0000A */ beqz $t5, .L7F0B64A4 +/* 0EAFAC 7F0B647C 01C72821 */ addu $a1, $t6, $a3 +/* 0EAFB0 7F0B6480 8FAF002C */ lw $t7, 0x2c($sp) +/* 0EAFB4 7F0B6484 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAFB8 7F0B6488 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAFBC 7F0B648C 0FC2D827 */ jal sub_GAME_7F0B609C +/* 0EAFC0 7F0B6490 01E73023 */ subu $a2, $t7, $a3 +/* 0EAFC4 7F0B6494 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAFC8 7F0B6498 04400002 */ bltz $v0, .L7F0B64A4 +/* 0EAFCC 7F0B649C 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAFD0 7F0B64A0 00E23821 */ addu $a3, $a3, $v0 +.L7F0B64A4: +/* 0EAFD4 7F0B64A4 8C780018 */ lw $t8, 0x18($v1) +/* 0EAFD8 7F0B64A8 8FB90020 */ lw $t9, 0x20($sp) +/* 0EAFDC 7F0B64AC 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAFE0 7F0B64B0 1300000B */ beqz $t8, .L7F0B64E0 +/* 0EAFE4 7F0B64B4 03272821 */ addu $a1, $t9, $a3 +/* 0EAFE8 7F0B64B8 8FA8002C */ lw $t0, 0x2c($sp) +/* 0EAFEC 7F0B64BC AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAFF0 7F0B64C0 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAFF4 7F0B64C4 0FC2D877 */ jal sub_GAME_7F0B61DC +/* 0EAFF8 7F0B64C8 01073023 */ subu $a2, $t0, $a3 +/* 0EAFFC 7F0B64CC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB000 7F0B64D0 18400004 */ blez $v0, .L7F0B64E4 +/* 0EB004 7F0B64D4 8FA70028 */ lw $a3, 0x28($sp) +/* 0EB008 7F0B64D8 10000002 */ b .L7F0B64E4 +/* 0EB00C 7F0B64DC 00E23821 */ addu $a3, $a3, $v0 +.L7F0B64E0: +/* 0EB010 7F0B64E0 AC60000C */ sw $zero, 0xc($v1) +.L7F0B64E4: +/* 0EB014 7F0B64E4 8FAB002C */ lw $t3, 0x2c($sp) +/* 0EB018 7F0B64E8 24E20020 */ addiu $v0, $a3, 0x20 +/* 0EB01C 7F0B64EC 2401FFF0 */ li $at, -16 +/* 0EB020 7F0B64F0 00414824 */ and $t1, $v0, $at +/* 0EB024 7F0B64F4 240A0001 */ li $t2, 1 +/* 0EB028 7F0B64F8 AC690028 */ sw $t1, 0x28($v1) +/* 0EB02C 7F0B64FC 11690007 */ beq $t3, $t1, .L7F0B651C +/* 0EB030 7F0B6500 A06A0002 */ sb $t2, 2($v1) +/* 0EB034 7F0B6504 8FA40020 */ lw $a0, 0x20($sp) +/* 0EB038 7F0B6508 01602825 */ move $a1, $t3 +/* 0EB03C 7F0B650C 01203025 */ move $a2, $t1 +/* 0EB040 7F0B6510 0C0028F7 */ jal mem_related_1 +/* 0EB044 7F0B6514 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB048 7F0B6518 8FA3001C */ lw $v1, 0x1c($sp) +.L7F0B651C: +/* 0EB04C 7F0B651C 3C0C8008 */ lui $t4, %hi(sky_enabled) +/* 0EB050 7F0B6520 8D8C25C0 */ lw $t4, %lo(sky_enabled)($t4) +/* 0EB054 7F0B6524 24060006 */ li $a2, 6 +/* 0EB058 7F0B6528 51800012 */ beql $t4, $zero, .L7F0B6574 +/* 0EB05C 7F0B652C 8C640008 */ lw $a0, 8($v1) +/* 0EB060 7F0B6530 8C640008 */ lw $a0, 8($v1) +/* 0EB064 7F0B6534 8C6D0020 */ lw $t5, 0x20($v1) +/* 0EB068 7F0B6538 24060001 */ li $a2, 1 +/* 0EB06C 7F0B653C AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB070 7F0B6540 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB074 7F0B6544 01A42821 */ addu $a1, $t5, $a0 +/* 0EB078 7F0B6548 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB07C 7F0B654C 8C64000C */ lw $a0, 0xc($v1) +/* 0EB080 7F0B6550 10800014 */ beqz $a0, .L7F0B65A4 +/* 0EB084 7F0B6554 00000000 */ nop +/* 0EB088 7F0B6558 8C6E0024 */ lw $t6, 0x24($v1) +/* 0EB08C 7F0B655C 24060005 */ li $a2, 5 +/* 0EB090 7F0B6560 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB094 7F0B6564 01C42821 */ addu $a1, $t6, $a0 +/* 0EB098 7F0B6568 1000000E */ b .L7F0B65A4 +/* 0EB09C 7F0B656C 00000000 */ nop +/* 0EB0A0 7F0B6570 8C640008 */ lw $a0, 8($v1) +.L7F0B6574: +/* 0EB0A4 7F0B6574 8C6F0020 */ lw $t7, 0x20($v1) +/* 0EB0A8 7F0B6578 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB0AC 7F0B657C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB0B0 7F0B6580 01E42821 */ addu $a1, $t7, $a0 +/* 0EB0B4 7F0B6584 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB0B8 7F0B6588 8C64000C */ lw $a0, 0xc($v1) +/* 0EB0BC 7F0B658C 10800005 */ beqz $a0, .L7F0B65A4 +/* 0EB0C0 7F0B6590 00000000 */ nop +/* 0EB0C4 7F0B6594 8C780024 */ lw $t8, 0x24($v1) +/* 0EB0C8 7F0B6598 24060007 */ li $a2, 7 +/* 0EB0CC 7F0B659C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB0D0 7F0B65A0 03042821 */ addu $a1, $t8, $a0 +.L7F0B65A4: +/* 0EB0D4 7F0B65A4 0FC2DA65 */ jal sub_GAME_7F0B6994 +/* 0EB0D8 7F0B65A8 8FA40030 */ lw $a0, 0x30($sp) +/* 0EB0DC 7F0B65AC 0FC2D7B6 */ jal generate_room_load_string +/* 0EB0E0 7F0B65B0 00000000 */ nop +.L7F0B65B4: +/* 0EB0E4 7F0B65B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B65B8: +/* 0EB0E8 7F0B65B8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EB0EC 7F0B65BC 03E00008 */ jr $ra +/* 0EB0F0 7F0B65C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B65C4(s32 arg0) { + void *temp_s0; + + // Node 0 + temp_s0 = ((arg0 * 0x50) + &array_room_info); + if (temp_s0->unk2C != 0) + { + // Node 1 + mem_related_model_room_buffers_0(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C); + temp_s0->unk2C = 0; + } + // Node 2 + if (temp_s0->unk28 > 0) + { + // Node 3 + if (temp_s0->unk4 != 0) + { + // Node 4 + mem_related_model_room_buffers_0(temp_s0->unk4, temp_s0->unk28); + temp_s0->unk4 = 0; + } + else + { + // Node 5 + mem_related_model_room_buffers_0(temp_s0->unk8, temp_s0->unk28); + temp_s0->unk4 = 0; + } + // Node 6 + temp_s0->unk8 = 0; + temp_s0->unkC = 0; + } + // Node 7 + temp_s0->unk2 = (u8)0; + return generate_room_load_string(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B65C4 +/* 0EB0F4 7F0B65C4 00047080 */ sll $t6, $a0, 2 +/* 0EB0F8 7F0B65C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EB0FC 7F0B65CC 01C47021 */ addu $t6, $t6, $a0 +/* 0EB100 7F0B65D0 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EB104 7F0B65D4 AFB00018 */ sw $s0, 0x18($sp) +/* 0EB108 7F0B65D8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EB10C 7F0B65DC 000E7100 */ sll $t6, $t6, 4 +/* 0EB110 7F0B65E0 01CF8021 */ addu $s0, $t6, $t7 +/* 0EB114 7F0B65E4 8E06002C */ lw $a2, 0x2c($s0) +/* 0EB118 7F0B65E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB11C 7F0B65EC 50C0000D */ beql $a2, $zero, .L7F0B6624 +/* 0EB120 7F0B65F0 8E020028 */ lw $v0, 0x28($s0) +/* 0EB124 7F0B65F4 86050030 */ lh $a1, 0x30($s0) +/* 0EB128 7F0B65F8 2401FFF0 */ li $at, -16 +/* 0EB12C 7F0B65FC 00C02025 */ move $a0, $a2 +/* 0EB130 7F0B6600 0005C0C0 */ sll $t8, $a1, 3 +/* 0EB134 7F0B6604 0305C023 */ subu $t8, $t8, $a1 +/* 0EB138 7F0B6608 0018C080 */ sll $t8, $t8, 2 +/* 0EB13C 7F0B660C 2705000F */ addiu $a1, $t8, 0xf +/* 0EB140 7F0B6610 00A1C824 */ and $t9, $a1, $at +/* 0EB144 7F0B6614 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB148 7F0B6618 03202825 */ move $a1, $t9 +/* 0EB14C 7F0B661C AE00002C */ sw $zero, 0x2c($s0) +/* 0EB150 7F0B6620 8E020028 */ lw $v0, 0x28($s0) +.L7F0B6624: +/* 0EB154 7F0B6624 1840000E */ blez $v0, .L7F0B6660 +/* 0EB158 7F0B6628 00000000 */ nop +/* 0EB15C 7F0B662C 8E040004 */ lw $a0, 4($s0) +/* 0EB160 7F0B6630 00402825 */ move $a1, $v0 +/* 0EB164 7F0B6634 10800005 */ beqz $a0, .L7F0B664C +/* 0EB168 7F0B6638 00000000 */ nop +/* 0EB16C 7F0B663C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB170 7F0B6640 00402825 */ move $a1, $v0 +/* 0EB174 7F0B6644 10000004 */ b .L7F0B6658 +/* 0EB178 7F0B6648 AE000004 */ sw $zero, 4($s0) +.L7F0B664C: +/* 0EB17C 7F0B664C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB180 7F0B6650 8E040008 */ lw $a0, 8($s0) +/* 0EB184 7F0B6654 AE000004 */ sw $zero, 4($s0) +.L7F0B6658: +/* 0EB188 7F0B6658 AE000008 */ sw $zero, 8($s0) +/* 0EB18C 7F0B665C AE00000C */ sw $zero, 0xc($s0) +.L7F0B6660: +/* 0EB190 7F0B6660 0FC2D7B6 */ jal generate_room_load_string +/* 0EB194 7F0B6664 A2000002 */ sb $zero, 2($s0) +/* 0EB198 7F0B6668 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB19C 7F0B666C 8FB00018 */ lw $s0, 0x18($sp) +/* 0EB1A0 7F0B6670 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EB1A4 7F0B6674 03E00008 */ jr $ra +/* 0EB1A8 7F0B6678 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B667C(void) { + s32 temp_s1; + void *phi_s0; + s32 phi_s1; + s32 phi_v0; + s32 phi_return; + s32 phi_return_2; + + // Node 0 + phi_return = MaxNumRooms; + if (MaxNumRooms >= 2) + { + // Node 1 + phi_s0 = &array_room_info + 0x10 +0x40; + phi_s1 = 1; + phi_v0 = MaxNumRooms; + phi_return_2 = MaxNumRooms; +loop_2: + // Node 2 + if (phi_s0->unk2 != 0) + { + // Node 3 + sub_GAME_7F0B65C4(phi_s1); + phi_v0 = MaxNumRooms; + phi_return_2 = MaxNumRooms; + } + // Node 4 + temp_s1 = (phi_s1 + 1); + phi_s0 = (phi_s0 + 0x50); + phi_s1 = temp_s1; + phi_return = phi_return_2; + phi_v0 = phi_v0; + phi_return_2 = phi_return_2; + if (temp_s1 < phi_v0) + { + goto loop_2; + } + } + // Node 5 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B667C +/* 0EB1AC 7F0B667C 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0EB1B0 7F0B6680 8C4242F4 */ lw $v0, %lo(MaxNumRooms)($v0) +/* 0EB1B4 7F0B6684 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EB1B8 7F0B6688 AFB10018 */ sw $s1, 0x18($sp) +/* 0EB1BC 7F0B668C 28410002 */ slti $at, $v0, 2 +/* 0EB1C0 7F0B6690 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB1C4 7F0B6694 AFB00014 */ sw $s0, 0x14($sp) +/* 0EB1C8 7F0B6698 1420000E */ bnez $at, .L7F0B66D4 +/* 0EB1CC 7F0B669C 24110001 */ li $s1, 1 +/* 0EB1D0 7F0B66A0 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0EB1D4 7F0B66A4 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +.L7F0B66A8: +/* 0EB1D8 7F0B66A8 920E0002 */ lbu $t6, 2($s0) +/* 0EB1DC 7F0B66AC 51C00006 */ beql $t6, $zero, .L7F0B66C8 +/* 0EB1E0 7F0B66B0 26310001 */ addiu $s1, $s1, 1 +/* 0EB1E4 7F0B66B4 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EB1E8 7F0B66B8 02202025 */ move $a0, $s1 +/* 0EB1EC 7F0B66BC 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0EB1F0 7F0B66C0 8C4242F4 */ lw $v0, %lo(MaxNumRooms)($v0) +/* 0EB1F4 7F0B66C4 26310001 */ addiu $s1, $s1, 1 +.L7F0B66C8: +/* 0EB1F8 7F0B66C8 0222082A */ slt $at, $s1, $v0 +/* 0EB1FC 7F0B66CC 1420FFF6 */ bnez $at, .L7F0B66A8 +/* 0EB200 7F0B66D0 26100050 */ addiu $s0, $s0, 0x50 +.L7F0B66D4: +/* 0EB204 7F0B66D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB208 7F0B66D8 8FB00014 */ lw $s0, 0x14($sp) +/* 0EB20C 7F0B66DC 8FB10018 */ lw $s1, 0x18($sp) +/* 0EB210 7F0B66E0 03E00008 */ jr $ra +/* 0EB214 7F0B66E4 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B66E8(void) { + s8 temp_v0; + s32 temp_s1; + void *phi_s0; + s32 phi_s1; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + if (MaxNumRooms >= 2) + { + // Node 1 + phi_s0 = &array_room_info + 0x10 +0x40; + phi_s1 = 1; + phi_v1_2 = MaxNumRooms; +loop_2: + // Node 2 + phi_v1 = phi_v1_2; + if (phi_s0->unk35 == 0) + { + // Node 3 + temp_v0 = phi_s0->unk2; + if (4 == temp_v0) + { + // Node 4 + sub_GAME_7F0B65C4(phi_s1); + phi_v1 = MaxNumRooms; + } + else + { + // Node 5 + phi_v1 = phi_v1_2; + if (temp_v0 != 0) + { + // Node 6 + phi_s0->unk2 = (s8) (temp_v0 + 1); + phi_v1 = phi_v1_2; + } + } + } + // Node 7 + temp_s1 = (phi_s1 + 1); + phi_s0 = (phi_s0 + 0x50); + phi_s1 = temp_s1; + phi_v1_2 = phi_v1; + if (temp_s1 < phi_v1) + { + goto loop_2; + } + } + // Node 8 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B66E8 +/* 0EB218 7F0B66E8 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0EB21C 7F0B66EC 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +/* 0EB220 7F0B66F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB224 7F0B66F4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EB228 7F0B66F8 28610002 */ slti $at, $v1, 2 +/* 0EB22C 7F0B66FC AFBF0024 */ sw $ra, 0x24($sp) +/* 0EB230 7F0B6700 AFB20020 */ sw $s2, 0x20($sp) +/* 0EB234 7F0B6704 AFB00018 */ sw $s0, 0x18($sp) +/* 0EB238 7F0B6708 14200016 */ bnez $at, .L7F0B6764 +/* 0EB23C 7F0B670C 24110001 */ li $s1, 1 +/* 0EB240 7F0B6710 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0EB244 7F0B6714 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +/* 0EB248 7F0B6718 24120004 */ li $s2, 4 +.L7F0B671C: +/* 0EB24C 7F0B671C 920E0035 */ lbu $t6, 0x35($s0) +/* 0EB250 7F0B6720 55C0000D */ bnezl $t6, .L7F0B6758 +/* 0EB254 7F0B6724 26310001 */ addiu $s1, $s1, 1 +/* 0EB258 7F0B6728 92020002 */ lbu $v0, 2($s0) +/* 0EB25C 7F0B672C 16420006 */ bne $s2, $v0, .L7F0B6748 +/* 0EB260 7F0B6730 00000000 */ nop +/* 0EB264 7F0B6734 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EB268 7F0B6738 02202025 */ move $a0, $s1 +/* 0EB26C 7F0B673C 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0EB270 7F0B6740 10000004 */ b .L7F0B6754 +/* 0EB274 7F0B6744 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +.L7F0B6748: +/* 0EB278 7F0B6748 10400002 */ beqz $v0, .L7F0B6754 +/* 0EB27C 7F0B674C 244F0001 */ addiu $t7, $v0, 1 +/* 0EB280 7F0B6750 A20F0002 */ sb $t7, 2($s0) +.L7F0B6754: +/* 0EB284 7F0B6754 26310001 */ addiu $s1, $s1, 1 +.L7F0B6758: +/* 0EB288 7F0B6758 0223082A */ slt $at, $s1, $v1 +/* 0EB28C 7F0B675C 1420FFEF */ bnez $at, .L7F0B671C +/* 0EB290 7F0B6760 26100050 */ addiu $s0, $s0, 0x50 +.L7F0B6764: +/* 0EB294 7F0B6764 8FBF0024 */ lw $ra, 0x24($sp) +/* 0EB298 7F0B6768 8FB00018 */ lw $s0, 0x18($sp) +/* 0EB29C 7F0B676C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EB2A0 7F0B6770 8FB20020 */ lw $s2, 0x20($sp) +/* 0EB2A4 7F0B6774 03E00008 */ jr $ra +/* 0EB2A8 7F0B6778 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B677C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B677C +/* 0EB2AC 7F0B677C 3C0E8004 */ lui $t6, %hi(MaxNumRooms) +/* 0EB2B0 7F0B6780 8DCE42F4 */ lw $t6, %lo(MaxNumRooms)($t6) +/* 0EB2B4 7F0B6784 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB2B8 7F0B6788 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EB2BC 7F0B678C 00AE082A */ slt $at, $a1, $t6 +/* 0EB2C0 7F0B6790 00803825 */ move $a3, $a0 +/* 0EB2C4 7F0B6794 14200003 */ bnez $at, .L7F0B67A4 +/* 0EB2C8 7F0B6798 00A03025 */ move $a2, $a1 +/* 0EB2CC 7F0B679C 1000003A */ b .L7F0B6888 +/* 0EB2D0 7F0B67A0 00801025 */ move $v0, $a0 +.L7F0B67A4: +/* 0EB2D4 7F0B67A4 3C0F8004 */ lui $t7, %hi(D_8004485C) +/* 0EB2D8 7F0B67A8 8DEF485C */ lw $t7, %lo(D_8004485C)($t7) +/* 0EB2DC 7F0B67AC 3C188004 */ lui $t8, %hi(D_80044858) +/* 0EB2E0 7F0B67B0 2401000A */ li $at, 10 +/* 0EB2E4 7F0B67B4 15E00005 */ bnez $t7, .L7F0B67CC +/* 0EB2E8 7F0B67B8 00064880 */ sll $t1, $a2, 2 +/* 0EB2EC 7F0B67BC 00C1001A */ div $zero, $a2, $at +/* 0EB2F0 7F0B67C0 8F184858 */ lw $t8, %lo(D_80044858)($t8) +/* 0EB2F4 7F0B67C4 0000C810 */ mfhi $t9 +/* 0EB2F8 7F0B67C8 1719002E */ bne $t8, $t9, .L7F0B6884 +.L7F0B67CC: +/* 0EB2FC 7F0B67CC 01264821 */ addu $t1, $t1, $a2 +/* 0EB300 7F0B67D0 3C0A8004 */ lui $t2, %hi(array_room_info) +/* 0EB304 7F0B67D4 254A1414 */ addiu $t2, %lo(array_room_info) # addiu $t2, $t2, 0x1414 +/* 0EB308 7F0B67D8 00094900 */ sll $t1, $t1, 4 +/* 0EB30C 7F0B67DC 012A1821 */ addu $v1, $t1, $t2 +/* 0EB310 7F0B67E0 90620002 */ lbu $v0, 2($v1) +/* 0EB314 7F0B67E4 3C088004 */ lui $t0, %hi(D_800442F8) +/* 0EB318 7F0B67E8 250842F8 */ addiu $t0, %lo(D_800442F8) # addiu $t0, $t0, 0x42f8 +/* 0EB31C 7F0B67EC 1440000E */ bnez $v0, .L7F0B6828 +/* 0EB320 7F0B67F0 00000000 */ nop +/* 0EB324 7F0B67F4 8D050000 */ lw $a1, ($t0) +/* 0EB328 7F0B67F8 00C02025 */ move $a0, $a2 +/* 0EB32C 7F0B67FC 18A0000A */ blez $a1, .L7F0B6828 +/* 0EB330 7F0B6800 24ABFFFF */ addiu $t3, $a1, -1 +/* 0EB334 7F0B6804 AD0B0000 */ sw $t3, ($t0) +/* 0EB338 7F0B6808 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB33C 7F0B680C AFA6002C */ sw $a2, 0x2c($sp) +/* 0EB340 7F0B6810 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EB344 7F0B6814 AFA70028 */ sw $a3, 0x28($sp) +/* 0EB348 7F0B6818 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB34C 7F0B681C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0EB350 7F0B6820 8FA70028 */ lw $a3, 0x28($sp) +/* 0EB354 7F0B6824 90620002 */ lbu $v0, 2($v1) +.L7F0B6828: +/* 0EB358 7F0B6828 14400003 */ bnez $v0, .L7F0B6838 +/* 0EB35C 7F0B682C 00E02025 */ move $a0, $a3 +/* 0EB360 7F0B6830 10000015 */ b .L7F0B6888 +/* 0EB364 7F0B6834 00E01025 */ move $v0, $a3 +.L7F0B6838: +/* 0EB368 7F0B6838 00C02825 */ move $a1, $a2 +/* 0EB36C 7F0B683C 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0EB370 7F0B6840 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB374 7F0B6844 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB378 7F0B6848 3C0CBC00 */ lui $t4, (0xBC003806 >> 16) # lui $t4, 0xbc00 +/* 0EB37C 7F0B684C 358C3806 */ ori $t4, (0xBC003806 & 0xFFFF) # ori $t4, $t4, 0x3806 +/* 0EB380 7F0B6850 AC4C0000 */ sw $t4, ($v0) +/* 0EB384 7F0B6854 8C6D0004 */ lw $t5, 4($v1) +/* 0EB388 7F0B6858 3C048000 */ lui $a0, 0x8000 +/* 0EB38C 7F0B685C 3C0F0600 */ lui $t7, 0x600 +/* 0EB390 7F0B6860 01A47021 */ addu $t6, $t5, $a0 +/* 0EB394 7F0B6864 AC4E0004 */ sw $t6, 4($v0) +/* 0EB398 7F0B6868 AC4F0008 */ sw $t7, 8($v0) +/* 0EB39C 7F0B686C 8C780008 */ lw $t8, 8($v1) +/* 0EB3A0 7F0B6870 24090001 */ li $t1, 1 +/* 0EB3A4 7F0B6874 24470010 */ addiu $a3, $v0, 0x10 +/* 0EB3A8 7F0B6878 0304C821 */ addu $t9, $t8, $a0 +/* 0EB3AC 7F0B687C AC59000C */ sw $t9, 0xc($v0) +/* 0EB3B0 7F0B6880 A0690002 */ sb $t1, 2($v1) +.L7F0B6884: +/* 0EB3B4 7F0B6884 00E01025 */ move $v0, $a3 +.L7F0B6888: +/* 0EB3B8 7F0B6888 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EB3BC 7F0B688C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EB3C0 7F0B6890 03E00008 */ jr $ra +/* 0EB3C4 7F0B6894 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6898(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6898 +/* 0EB3C8 7F0B6898 3C0E8004 */ lui $t6, %hi(MaxNumRooms) +/* 0EB3CC 7F0B689C 8DCE42F4 */ lw $t6, %lo(MaxNumRooms)($t6) +/* 0EB3D0 7F0B68A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB3D4 7F0B68A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EB3D8 7F0B68A8 00AE082A */ slt $at, $a1, $t6 +/* 0EB3DC 7F0B68AC 14200003 */ bnez $at, .L7F0B68BC +/* 0EB3E0 7F0B68B0 00803025 */ move $a2, $a0 +/* 0EB3E4 7F0B68B4 10000033 */ b .L7F0B6984 +/* 0EB3E8 7F0B68B8 00801025 */ move $v0, $a0 +.L7F0B68BC: +/* 0EB3EC 7F0B68BC 00057880 */ sll $t7, $a1, 2 +/* 0EB3F0 7F0B68C0 01E57821 */ addu $t7, $t7, $a1 +/* 0EB3F4 7F0B68C4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EB3F8 7F0B68C8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EB3FC 7F0B68CC 000F7900 */ sll $t7, $t7, 4 +/* 0EB400 7F0B68D0 01F81821 */ addu $v1, $t7, $t8 +/* 0EB404 7F0B68D4 8C79000C */ lw $t9, 0xc($v1) +/* 0EB408 7F0B68D8 3C088004 */ lui $t0, %hi(D_8004485C) +/* 0EB40C 7F0B68DC 17200003 */ bnez $t9, .L7F0B68EC +/* 0EB410 7F0B68E0 00000000 */ nop +/* 0EB414 7F0B68E4 10000027 */ b .L7F0B6984 +/* 0EB418 7F0B68E8 00C01025 */ move $v0, $a2 +.L7F0B68EC: +/* 0EB41C 7F0B68EC 8D08485C */ lw $t0, %lo(D_8004485C)($t0) +/* 0EB420 7F0B68F0 3C098004 */ lui $t1, %hi(D_80044858) +/* 0EB424 7F0B68F4 2401000A */ li $at, 10 +/* 0EB428 7F0B68F8 55000007 */ bnezl $t0, .L7F0B6918 +/* 0EB42C 7F0B68FC 906B0002 */ lbu $t3, 2($v1) +/* 0EB430 7F0B6900 00A1001A */ div $zero, $a1, $at +/* 0EB434 7F0B6904 8D294858 */ lw $t1, %lo(D_80044858)($t1) +/* 0EB438 7F0B6908 00005010 */ mfhi $t2 +/* 0EB43C 7F0B690C 552A001D */ bnel $t1, $t2, .L7F0B6984 +/* 0EB440 7F0B6910 00C01025 */ move $v0, $a2 +/* 0EB444 7F0B6914 906B0002 */ lbu $t3, 2($v1) +.L7F0B6918: +/* 0EB448 7F0B6918 00C02025 */ move $a0, $a2 +/* 0EB44C 7F0B691C 51600015 */ beql $t3, $zero, .L7F0B6974 +/* 0EB450 7F0B6920 00A02025 */ move $a0, $a1 +/* 0EB454 7F0B6924 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0EB458 7F0B6928 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB45C 7F0B692C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB460 7F0B6930 3C0CBC00 */ lui $t4, (0xBC003806 >> 16) # lui $t4, 0xbc00 +/* 0EB464 7F0B6934 358C3806 */ ori $t4, (0xBC003806 & 0xFFFF) # ori $t4, $t4, 0x3806 +/* 0EB468 7F0B6938 AC4C0000 */ sw $t4, ($v0) +/* 0EB46C 7F0B693C 8C6D0004 */ lw $t5, 4($v1) +/* 0EB470 7F0B6940 3C048000 */ lui $a0, 0x8000 +/* 0EB474 7F0B6944 3C0F0600 */ lui $t7, 0x600 +/* 0EB478 7F0B6948 01A47021 */ addu $t6, $t5, $a0 +/* 0EB47C 7F0B694C AC4E0004 */ sw $t6, 4($v0) +/* 0EB480 7F0B6950 AC4F0008 */ sw $t7, 8($v0) +/* 0EB484 7F0B6954 8C78000C */ lw $t8, 0xc($v1) +/* 0EB488 7F0B6958 24080001 */ li $t0, 1 +/* 0EB48C 7F0B695C 24460010 */ addiu $a2, $v0, 0x10 +/* 0EB490 7F0B6960 0304C821 */ addu $t9, $t8, $a0 +/* 0EB494 7F0B6964 AC59000C */ sw $t9, 0xc($v0) +/* 0EB498 7F0B6968 10000005 */ b .L7F0B6980 +/* 0EB49C 7F0B696C A0680002 */ sb $t0, 2($v1) +/* 0EB4A0 7F0B6970 00A02025 */ move $a0, $a1 +.L7F0B6974: +/* 0EB4A4 7F0B6974 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EB4A8 7F0B6978 AFA60028 */ sw $a2, 0x28($sp) +/* 0EB4AC 7F0B697C 8FA60028 */ lw $a2, 0x28($sp) +.L7F0B6980: +/* 0EB4B0 7F0B6980 00C01025 */ move $v0, $a2 +.L7F0B6984: +/* 0EB4B4 7F0B6984 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EB4B8 7F0B6988 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EB4BC 7F0B698C 03E00008 */ jr $ra +/* 0EB4C0 7F0B6990 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6994(s32 arg0) { + s32 sp24; + s32 sp3C; + s32 sp44; + void *temp_a1; + s32 temp_v1_8; + s32 temp_t8; + ? temp_ret; + void *temp_a0; + s32 temp_t2; + s32 temp_a2; + void *temp_v1; + s32 temp_a3; + s32 temp_v1_2; + s32 temp_a2_2; + s32 temp_v1_3; + s32 temp_v1_4; + s32 temp_v1_5; + s32 temp_v1_6; + s32 temp_v1_7; + s32 temp_v1_9; + s32 phi_v1; + void *phi_t3; + s32 phi_t5; + s32 phi_v1_2; + s16 phi_ra; + s32 phi_t5_2; + void *phi_v1_3; + s32 phi_a2; + void *phi_t3_2; + void *phi_a1; + s32 phi_a2_2; + s32 phi_t5_3; + s32 phi_t5_4; + + // Node 0 + temp_a1 = ((arg0 * 0x50) + &array_room_info); + if (temp_a1->unk2C == 0) + { + // Node 1 + sp44 = (s32) temp_a1->unk4; + phi_t5 = 0; + if (-0x48 != *temp_a1->unk8) + { + // Node 2 + phi_v1 = *temp_a1->unk8; + phi_t3 = temp_a1->unk8; + phi_t5_4 = 0; +loop_3: + // Node 3 + phi_t5_3 = phi_t5_4; + if (4 == phi_v1) + { + // Node 4 + phi_t5_3 = (phi_t5_4 + 1); + } + // Node 5 + temp_v1_8 = phi_t3->unk8; + phi_v1 = temp_v1_8; + phi_t3 = (phi_t3 + 8); + phi_t5 = phi_t5_3; + phi_t5_4 = phi_t5_3; + if (-0x48 != temp_v1_8) + { + goto loop_3; + } + } + // Node 6 + temp_t8 = (((((phi_t5 * 8) - phi_t5) * 4) + 0xf) & -0x10); + sp24 = temp_t8; + sp3C = (s32) phi_t5; + temp_ret = mem_related_something_find_first(temp_t8, temp_a1, temp_a1->unk8); + if (temp_ret != 0) + { + // Node 7 + sp28->unk2C = temp_ret; + sp28->unk30 = (s16) phi_t5; + if (-0x48 != *sp48) + { + // Node 8 + phi_v1_2 = *sp48; + phi_ra = (u16)0; + phi_t5_2 = 0; + phi_t3_2 = sp48; +loop_9: + // Node 9 + phi_t5_2 = phi_t5_2; + if (4 == phi_v1_2) + { + // Node 10 + temp_a0 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4)); + *temp_a0 = (s16) phi_ra; + temp_t2 = (arg0 * 0x18); + phi_v1_3 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4)); + phi_a2 = 0; +loop_11: + // Node 11 + temp_a2 = (phi_a2 + 1); + temp_v1 = (phi_v1_3 + 4); + *temp_v1 = 0x7fff; + temp_v1->unkC = -0x8000; + phi_v1_3 = temp_v1; + phi_a2 = temp_a2; + if (temp_a2 < 3) + { + goto loop_11; + } + // Node 12 + temp_a3 = ((((u32) phi_t3_2->unk1 >> 4) & 0xf) + 1); + if (temp_a3 > 0) + { + // Node 13 + phi_a1 = ((phi_t3_2->unk4 & 0xffffff) + sp44); + phi_a2_2 = 0; +loop_14: + // Node 14 + temp_v1_2 = *phi_a1; + temp_a2_2 = (phi_a2_2 + 1); + if (temp_v1_2 < temp_a0->unk4) + { + // Node 15 + temp_a0->unk4 = temp_v1_2; + } + // Node 16 + temp_v1_3 = phi_a1->unk2; + if (temp_v1_3 < temp_a0->unk8) + { + // Node 17 + temp_a0->unk8 = temp_v1_3; + } + // Node 18 + temp_v1_4 = phi_a1->unk4; + if (temp_v1_4 < temp_a0->unkC) + { + // Node 19 + temp_a0->unkC = temp_v1_4; + } + // Node 20 + temp_v1_5 = *phi_a1; + if (temp_a0->unk10 < temp_v1_5) + { + // Node 21 + temp_a0->unk10 = temp_v1_5; + } + // Node 22 + temp_v1_6 = phi_a1->unk2; + if (temp_a0->unk14 < temp_v1_6) + { + // Node 23 + temp_a0->unk14 = temp_v1_6; + } + // Node 24 + temp_v1_7 = phi_a1->unk4; + if (temp_a0->unk18 < temp_v1_7) + { + // Node 25 + temp_a0->unk18 = temp_v1_7; + } + // Node 26 + phi_a1 = (phi_a1 + 0x10); + phi_a2_2 = temp_a2_2; + if (temp_a2_2 != temp_a3) + { + goto loop_14; + } + } + // Node 27 + if (temp_a0->unk4 == temp_a0->unk10) + { + // Node 28 + temp_a0->unk10 = (s32) (temp_a0->unk10 + 1); + } + // Node 29 + if (temp_a0->unk8 == temp_a0->unk14) + { + // Node 30 + temp_a0->unk14 = (s32) (temp_a0->unk14 + 1); + } + // Node 31 + if (temp_a0->unkC == temp_a0->unk18) + { + // Node 32 + temp_a0->unk18 = (s32) (temp_a0->unk18 + 1); + } + // Node 33 + temp_a0->unk4 = (s32) (temp_a0->unk4 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC); + temp_a0->unk8 = (s32) (temp_a0->unk8 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10); + temp_a0->unkC = (s32) (temp_a0->unkC + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14); + temp_a0->unk10 = (s32) (temp_a0->unk10 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC); + temp_a0->unk14 = (s32) (temp_a0->unk14 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10); + temp_a0->unk18 = (s32) (temp_a0->unk18 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14); + phi_t5_2 = (phi_t5_2 + 1); + } + // Node 34 + temp_v1_9 = phi_t3_2->unk8; + phi_v1_2 = temp_v1_9; + phi_ra = (phi_ra + 1); + phi_t3_2 = (phi_t3_2 + 8); + if (-0x48 != temp_v1_9) + { + goto loop_9; + } + } + } + } + // Node 35 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6994 +/* 0EB4C4 7F0B6994 00047880 */ sll $t7, $a0, 2 +/* 0EB4C8 7F0B6998 01E47821 */ addu $t7, $t7, $a0 +/* 0EB4CC 7F0B699C 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EB4D0 7F0B69A0 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EB4D4 7F0B69A4 000F7900 */ sll $t7, $t7, 4 +/* 0EB4D8 7F0B69A8 01F82821 */ addu $a1, $t7, $t8 +/* 0EB4DC 7F0B69AC 8CB9002C */ lw $t9, 0x2c($a1) +/* 0EB4E0 7F0B69B0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0EB4E4 7F0B69B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB4E8 7F0B69B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0EB4EC 7F0B69BC AFB00014 */ sw $s0, 0x14($sp) +/* 0EB4F0 7F0B69C0 172000C5 */ bnez $t9, .L7F0B6CD8 +/* 0EB4F4 7F0B69C4 AFA40050 */ sw $a0, 0x50($sp) +/* 0EB4F8 7F0B69C8 8CAE0004 */ lw $t6, 4($a1) +/* 0EB4FC 7F0B69CC 8CA60008 */ lw $a2, 8($a1) +/* 0EB500 7F0B69D0 2410FFB8 */ li $s0, -72 +/* 0EB504 7F0B69D4 AFAE0044 */ sw $t6, 0x44($sp) +/* 0EB508 7F0B69D8 80CF0000 */ lb $t7, ($a2) +/* 0EB50C 7F0B69DC 00006825 */ move $t5, $zero +/* 0EB510 7F0B69E0 2401FFF0 */ li $at, -16 +/* 0EB514 7F0B69E4 120F000A */ beq $s0, $t7, .L7F0B6A10 +/* 0EB518 7F0B69E8 00C05825 */ move $t3, $a2 +/* 0EB51C 7F0B69EC 80C30000 */ lb $v1, ($a2) +/* 0EB520 7F0B69F0 24110004 */ li $s1, 4 +.L7F0B69F4: +/* 0EB524 7F0B69F4 56230003 */ bnel $s1, $v1, .L7F0B6A04 +/* 0EB528 7F0B69F8 81630008 */ lb $v1, 8($t3) +/* 0EB52C 7F0B69FC 25AD0001 */ addiu $t5, $t5, 1 +/* 0EB530 7F0B6A00 81630008 */ lb $v1, 8($t3) +.L7F0B6A04: +/* 0EB534 7F0B6A04 256B0008 */ addiu $t3, $t3, 8 +/* 0EB538 7F0B6A08 1603FFFA */ bne $s0, $v1, .L7F0B69F4 +/* 0EB53C 7F0B6A0C 00000000 */ nop +.L7F0B6A10: +/* 0EB540 7F0B6A10 000D20C0 */ sll $a0, $t5, 3 +/* 0EB544 7F0B6A14 008D2023 */ subu $a0, $a0, $t5 +/* 0EB548 7F0B6A18 00042080 */ sll $a0, $a0, 2 +/* 0EB54C 7F0B6A1C 2484000F */ addiu $a0, $a0, 0xf +/* 0EB550 7F0B6A20 0081C024 */ and $t8, $a0, $at +/* 0EB554 7F0B6A24 24110004 */ li $s1, 4 +/* 0EB558 7F0B6A28 03002025 */ move $a0, $t8 +/* 0EB55C 7F0B6A2C AFB80024 */ sw $t8, 0x24($sp) +/* 0EB560 7F0B6A30 AFA50028 */ sw $a1, 0x28($sp) +/* 0EB564 7F0B6A34 AFA60048 */ sw $a2, 0x48($sp) +/* 0EB568 7F0B6A38 0C00278D */ jal mem_related_something_find_first +/* 0EB56C 7F0B6A3C AFAD003C */ sw $t5, 0x3c($sp) +/* 0EB570 7F0B6A40 8FA50028 */ lw $a1, 0x28($sp) +/* 0EB574 7F0B6A44 8FA60048 */ lw $a2, 0x48($sp) +/* 0EB578 7F0B6A48 104000A3 */ beqz $v0, .L7F0B6CD8 +/* 0EB57C 7F0B6A4C 8FAD003C */ lw $t5, 0x3c($sp) +/* 0EB580 7F0B6A50 ACA2002C */ sw $v0, 0x2c($a1) +/* 0EB584 7F0B6A54 A4AD0030 */ sh $t5, 0x30($a1) +/* 0EB588 7F0B6A58 80D90000 */ lb $t9, ($a2) +/* 0EB58C 7F0B6A5C 00006825 */ move $t5, $zero +/* 0EB590 7F0B6A60 0000F825 */ move $ra, $zero +/* 0EB594 7F0B6A64 1219009C */ beq $s0, $t9, .L7F0B6CD8 +/* 0EB598 7F0B6A68 00C05825 */ move $t3, $a2 +/* 0EB59C 7F0B6A6C 3C0C8008 */ lui $t4, %hi(ptr_bgdata_room_fileposition_list) +/* 0EB5A0 7F0B6A70 258CFF8C */ addiu $t4, %lo(ptr_bgdata_room_fileposition_list) # addiu $t4, $t4, -0x74 +/* 0EB5A4 7F0B6A74 80C30000 */ lb $v1, ($a2) +/* 0EB5A8 7F0B6A78 24098000 */ li $t1, -32768 +/* 0EB5AC 7F0B6A7C 24087FFF */ li $t0, 32767 +.L7F0B6A80: +/* 0EB5B0 7F0B6A80 16230090 */ bne $s1, $v1, .L7F0B6CC4 +/* 0EB5B4 7F0B6A84 000D70C0 */ sll $t6, $t5, 3 +/* 0EB5B8 7F0B6A88 01CD7023 */ subu $t6, $t6, $t5 +/* 0EB5BC 7F0B6A8C 000E7080 */ sll $t6, $t6, 2 +/* 0EB5C0 7F0B6A90 004E2021 */ addu $a0, $v0, $t6 +/* 0EB5C4 7F0B6A94 A49F0000 */ sh $ra, ($a0) +/* 0EB5C8 7F0B6A98 8FAA0050 */ lw $t2, 0x50($sp) +/* 0EB5CC 7F0B6A9C 000DC0C0 */ sll $t8, $t5, 3 +/* 0EB5D0 7F0B6AA0 030DC023 */ subu $t8, $t8, $t5 +/* 0EB5D4 7F0B6AA4 000A7880 */ sll $t7, $t2, 2 +/* 0EB5D8 7F0B6AA8 0018C080 */ sll $t8, $t8, 2 +/* 0EB5DC 7F0B6AAC 01EA7823 */ subu $t7, $t7, $t2 +/* 0EB5E0 7F0B6AB0 000F50C0 */ sll $t2, $t7, 3 +/* 0EB5E4 7F0B6AB4 00581821 */ addu $v1, $v0, $t8 +/* 0EB5E8 7F0B6AB8 00003025 */ move $a2, $zero +.L7F0B6ABC: +/* 0EB5EC 7F0B6ABC 24C60001 */ addiu $a2, $a2, 1 +/* 0EB5F0 7F0B6AC0 28C10003 */ slti $at, $a2, 3 +/* 0EB5F4 7F0B6AC4 24630004 */ addiu $v1, $v1, 4 +/* 0EB5F8 7F0B6AC8 AC680000 */ sw $t0, ($v1) +/* 0EB5FC 7F0B6ACC 1420FFFB */ bnez $at, .L7F0B6ABC +/* 0EB600 7F0B6AD0 AC69000C */ sw $t1, 0xc($v1) +/* 0EB604 7F0B6AD4 91670001 */ lbu $a3, 1($t3) +/* 0EB608 7F0B6AD8 8D6F0004 */ lw $t7, 4($t3) +/* 0EB60C 7F0B6ADC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0EB610 7F0B6AE0 0007C902 */ srl $t9, $a3, 4 +/* 0EB614 7F0B6AE4 332E000F */ andi $t6, $t9, 0xf +/* 0EB618 7F0B6AE8 8FB90044 */ lw $t9, 0x44($sp) +/* 0EB61C 7F0B6AEC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0EB620 7F0B6AF0 25C70001 */ addiu $a3, $t6, 1 +/* 0EB624 7F0B6AF4 01E1C024 */ and $t8, $t7, $at +/* 0EB628 7F0B6AF8 00003025 */ move $a2, $zero +/* 0EB62C 7F0B6AFC 18E00029 */ blez $a3, .L7F0B6BA4 +/* 0EB630 7F0B6B00 03191821 */ addu $v1, $t8, $t9 +/* 0EB634 7F0B6B04 00602825 */ move $a1, $v1 +.L7F0B6B08: +/* 0EB638 7F0B6B08 84A30000 */ lh $v1, ($a1) +/* 0EB63C 7F0B6B0C 8C8E0004 */ lw $t6, 4($a0) +/* 0EB640 7F0B6B10 24C60001 */ addiu $a2, $a2, 1 +/* 0EB644 7F0B6B14 006E082A */ slt $at, $v1, $t6 +/* 0EB648 7F0B6B18 50200003 */ beql $at, $zero, .L7F0B6B28 +/* 0EB64C 7F0B6B1C 84A30002 */ lh $v1, 2($a1) +/* 0EB650 7F0B6B20 AC830004 */ sw $v1, 4($a0) +/* 0EB654 7F0B6B24 84A30002 */ lh $v1, 2($a1) +.L7F0B6B28: +/* 0EB658 7F0B6B28 8C8F0008 */ lw $t7, 8($a0) +/* 0EB65C 7F0B6B2C 006F082A */ slt $at, $v1, $t7 +/* 0EB660 7F0B6B30 50200003 */ beql $at, $zero, .L7F0B6B40 +/* 0EB664 7F0B6B34 84A30004 */ lh $v1, 4($a1) +/* 0EB668 7F0B6B38 AC830008 */ sw $v1, 8($a0) +/* 0EB66C 7F0B6B3C 84A30004 */ lh $v1, 4($a1) +.L7F0B6B40: +/* 0EB670 7F0B6B40 8C98000C */ lw $t8, 0xc($a0) +/* 0EB674 7F0B6B44 0078082A */ slt $at, $v1, $t8 +/* 0EB678 7F0B6B48 50200003 */ beql $at, $zero, .L7F0B6B58 +/* 0EB67C 7F0B6B4C 84A30000 */ lh $v1, ($a1) +/* 0EB680 7F0B6B50 AC83000C */ sw $v1, 0xc($a0) +/* 0EB684 7F0B6B54 84A30000 */ lh $v1, ($a1) +.L7F0B6B58: +/* 0EB688 7F0B6B58 8C990010 */ lw $t9, 0x10($a0) +/* 0EB68C 7F0B6B5C 0323082A */ slt $at, $t9, $v1 +/* 0EB690 7F0B6B60 50200003 */ beql $at, $zero, .L7F0B6B70 +/* 0EB694 7F0B6B64 84A30002 */ lh $v1, 2($a1) +/* 0EB698 7F0B6B68 AC830010 */ sw $v1, 0x10($a0) +/* 0EB69C 7F0B6B6C 84A30002 */ lh $v1, 2($a1) +.L7F0B6B70: +/* 0EB6A0 7F0B6B70 8C8E0014 */ lw $t6, 0x14($a0) +/* 0EB6A4 7F0B6B74 01C3082A */ slt $at, $t6, $v1 +/* 0EB6A8 7F0B6B78 50200003 */ beql $at, $zero, .L7F0B6B88 +/* 0EB6AC 7F0B6B7C 84A30004 */ lh $v1, 4($a1) +/* 0EB6B0 7F0B6B80 AC830014 */ sw $v1, 0x14($a0) +/* 0EB6B4 7F0B6B84 84A30004 */ lh $v1, 4($a1) +.L7F0B6B88: +/* 0EB6B8 7F0B6B88 8C8F0018 */ lw $t7, 0x18($a0) +/* 0EB6BC 7F0B6B8C 01E3082A */ slt $at, $t7, $v1 +/* 0EB6C0 7F0B6B90 10200002 */ beqz $at, .L7F0B6B9C +/* 0EB6C4 7F0B6B94 00000000 */ nop +/* 0EB6C8 7F0B6B98 AC830018 */ sw $v1, 0x18($a0) +.L7F0B6B9C: +/* 0EB6CC 7F0B6B9C 14C7FFDA */ bne $a2, $a3, .L7F0B6B08 +/* 0EB6D0 7F0B6BA0 24A50010 */ addiu $a1, $a1, 0x10 +.L7F0B6BA4: +/* 0EB6D4 7F0B6BA4 8C830010 */ lw $v1, 0x10($a0) +/* 0EB6D8 7F0B6BA8 8C980004 */ lw $t8, 4($a0) +/* 0EB6DC 7F0B6BAC 24790001 */ addiu $t9, $v1, 1 +/* 0EB6E0 7F0B6BB0 57030003 */ bnel $t8, $v1, .L7F0B6BC0 +/* 0EB6E4 7F0B6BB4 8C830014 */ lw $v1, 0x14($a0) +/* 0EB6E8 7F0B6BB8 AC990010 */ sw $t9, 0x10($a0) +/* 0EB6EC 7F0B6BBC 8C830014 */ lw $v1, 0x14($a0) +.L7F0B6BC0: +/* 0EB6F0 7F0B6BC0 8C8E0008 */ lw $t6, 8($a0) +/* 0EB6F4 7F0B6BC4 246F0001 */ addiu $t7, $v1, 1 +/* 0EB6F8 7F0B6BC8 55C30003 */ bnel $t6, $v1, .L7F0B6BD8 +/* 0EB6FC 7F0B6BCC 8C83000C */ lw $v1, 0xc($a0) +/* 0EB700 7F0B6BD0 AC8F0014 */ sw $t7, 0x14($a0) +/* 0EB704 7F0B6BD4 8C83000C */ lw $v1, 0xc($a0) +.L7F0B6BD8: +/* 0EB708 7F0B6BD8 8C850018 */ lw $a1, 0x18($a0) +/* 0EB70C 7F0B6BDC 14650003 */ bne $v1, $a1, .L7F0B6BEC +/* 0EB710 7F0B6BE0 24B80001 */ addiu $t8, $a1, 1 +/* 0EB714 7F0B6BE4 AC980018 */ sw $t8, 0x18($a0) +/* 0EB718 7F0B6BE8 8C83000C */ lw $v1, 0xc($a0) +.L7F0B6BEC: +/* 0EB71C 7F0B6BEC 8D8E0000 */ lw $t6, ($t4) +/* 0EB720 7F0B6BF0 8C990004 */ lw $t9, 4($a0) +/* 0EB724 7F0B6BF4 8C980008 */ lw $t8, 8($a0) +/* 0EB728 7F0B6BF8 01CA7821 */ addu $t7, $t6, $t2 +/* 0EB72C 7F0B6BFC C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0EB730 7F0B6C00 25AD0001 */ addiu $t5, $t5, 1 +/* 0EB734 7F0B6C04 4600218D */ trunc.w.s $f6, $f4 +/* 0EB738 7F0B6C08 440E3000 */ mfc1 $t6, $f6 +/* 0EB73C 7F0B6C0C 00000000 */ nop +/* 0EB740 7F0B6C10 032E7821 */ addu $t7, $t9, $t6 +/* 0EB744 7F0B6C14 AC8F0004 */ sw $t7, 4($a0) +/* 0EB748 7F0B6C18 8D990000 */ lw $t9, ($t4) +/* 0EB74C 7F0B6C1C 032A7021 */ addu $t6, $t9, $t2 +/* 0EB750 7F0B6C20 C5C80010 */ lwc1 $f8, 0x10($t6) +/* 0EB754 7F0B6C24 4600428D */ trunc.w.s $f10, $f8 +/* 0EB758 7F0B6C28 44195000 */ mfc1 $t9, $f10 +/* 0EB75C 7F0B6C2C 00000000 */ nop +/* 0EB760 7F0B6C30 03197021 */ addu $t6, $t8, $t9 +/* 0EB764 7F0B6C34 AC8E0008 */ sw $t6, 8($a0) +/* 0EB768 7F0B6C38 8D8F0000 */ lw $t7, ($t4) +/* 0EB76C 7F0B6C3C 01EAC021 */ addu $t8, $t7, $t2 +/* 0EB770 7F0B6C40 C7100014 */ lwc1 $f16, 0x14($t8) +/* 0EB774 7F0B6C44 8C980010 */ lw $t8, 0x10($a0) +/* 0EB778 7F0B6C48 4600848D */ trunc.w.s $f18, $f16 +/* 0EB77C 7F0B6C4C 440E9000 */ mfc1 $t6, $f18 +/* 0EB780 7F0B6C50 00000000 */ nop +/* 0EB784 7F0B6C54 006E7821 */ addu $t7, $v1, $t6 +/* 0EB788 7F0B6C58 AC8F000C */ sw $t7, 0xc($a0) +/* 0EB78C 7F0B6C5C 8D990000 */ lw $t9, ($t4) +/* 0EB790 7F0B6C60 8C8F0014 */ lw $t7, 0x14($a0) +/* 0EB794 7F0B6C64 032A7021 */ addu $t6, $t9, $t2 +/* 0EB798 7F0B6C68 C5C4000C */ lwc1 $f4, 0xc($t6) +/* 0EB79C 7F0B6C6C 4600218D */ trunc.w.s $f6, $f4 +/* 0EB7A0 7F0B6C70 44193000 */ mfc1 $t9, $f6 +/* 0EB7A4 7F0B6C74 00000000 */ nop +/* 0EB7A8 7F0B6C78 03197021 */ addu $t6, $t8, $t9 +/* 0EB7AC 7F0B6C7C AC8E0010 */ sw $t6, 0x10($a0) +/* 0EB7B0 7F0B6C80 8D980000 */ lw $t8, ($t4) +/* 0EB7B4 7F0B6C84 8C8E0018 */ lw $t6, 0x18($a0) +/* 0EB7B8 7F0B6C88 030AC821 */ addu $t9, $t8, $t2 +/* 0EB7BC 7F0B6C8C C7280010 */ lwc1 $f8, 0x10($t9) +/* 0EB7C0 7F0B6C90 4600428D */ trunc.w.s $f10, $f8 +/* 0EB7C4 7F0B6C94 44185000 */ mfc1 $t8, $f10 +/* 0EB7C8 7F0B6C98 00000000 */ nop +/* 0EB7CC 7F0B6C9C 01F8C821 */ addu $t9, $t7, $t8 +/* 0EB7D0 7F0B6CA0 AC990014 */ sw $t9, 0x14($a0) +/* 0EB7D4 7F0B6CA4 8D8F0000 */ lw $t7, ($t4) +/* 0EB7D8 7F0B6CA8 01EAC021 */ addu $t8, $t7, $t2 +/* 0EB7DC 7F0B6CAC C7100014 */ lwc1 $f16, 0x14($t8) +/* 0EB7E0 7F0B6CB0 4600848D */ trunc.w.s $f18, $f16 +/* 0EB7E4 7F0B6CB4 440F9000 */ mfc1 $t7, $f18 +/* 0EB7E8 7F0B6CB8 00000000 */ nop +/* 0EB7EC 7F0B6CBC 01CFC021 */ addu $t8, $t6, $t7 +/* 0EB7F0 7F0B6CC0 AC980018 */ sw $t8, 0x18($a0) +.L7F0B6CC4: +/* 0EB7F4 7F0B6CC4 81630008 */ lb $v1, 8($t3) +/* 0EB7F8 7F0B6CC8 27FF0001 */ addiu $ra, $ra, 1 +/* 0EB7FC 7F0B6CCC 256B0008 */ addiu $t3, $t3, 8 +/* 0EB800 7F0B6CD0 1603FF6B */ bne $s0, $v1, .L7F0B6A80 +/* 0EB804 7F0B6CD4 00000000 */ nop +.L7F0B6CD8: +/* 0EB808 7F0B6CD8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB80C 7F0B6CDC 8FB00014 */ lw $s0, 0x14($sp) +/* 0EB810 7F0B6CE0 8FB10018 */ lw $s1, 0x18($sp) +/* 0EB814 7F0B6CE4 03E00008 */ jr $ra +/* 0EB818 7F0B6CE8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6CEC(void *arg0, void *arg1, void *arg2, void *arg3) { + f32 sp0; + f32 sp4; + f32 sp20; + f32 sp30; + f32 sp34; + f32 sp60; + f32 sp64; + f32 sp68; + f32 sp6C; + f32 sp70; + f32 sp74; + f32 temp_f6; + f32 temp_f16_2; + f32 temp_f14; + f32 temp_f2; + f32 temp_f0; + f32 temp_f0_2; + f32 temp_f18; + f32 temp_f12; + f32 temp_f16; + f32 phi_f14; + f32 phi_f16; + f32 phi_f0; + f32 phi_f2; + f32 phi_f14_2; + f32 phi_f12; + f32 phi_f0_2; + f32 phi_f18; + f32 phi_f2_2; + f32 phi_f16_2; + f32 phi_f0_3; + f32 phi_f18_2; + f32 phi_f12_2; + f32 phi_f2_3; + f32 phi_f18_3; + f32 phi_f0_4; + f32 phi_f14_3; + f32 phi_f12_3; + + // Node 0 + temp_f6 = (f32) *arg2; + sp6C = temp_f6; + sp70 = (f32) arg2->unk4; + sp74 = (f32) arg2->unk8; + sp60 = (f32) *arg3; + sp64 = (f32) arg3->unk4; + sp68 = (f32) arg3->unk8; + temp_f16_2 = (sp60 - *arg0); + temp_f14 = (temp_f6 - *arg0); + phi_f14 = temp_f14; + phi_f16 = temp_f16_2; + phi_f18 = *arg1; + if (*arg1 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + phi_f16 = -temp_f16_2; + phi_f18 = -*arg1; + } + // Node 2 + if (phi_f14 < 0.0f) + { + // Node 3 + if (phi_f16 < 0.0f) + { + // Node 4 + return 1; + } + } + // Node 5 + phi_f14_2 = phi_f14; + phi_f16_2 = phi_f16; + if (phi_f16 < phi_f14) + { + // Node 6 + phi_f14_2 = phi_f16; + phi_f16_2 = phi_f14; + } + // Node 7 + sp4 = (f32) arg0->unk4; + temp_f2 = (sp64 - sp4); + temp_f0 = (sp70 - sp4); + phi_f0 = temp_f0; + phi_f2 = temp_f2; + phi_f12 = arg1->unk4; + if (arg1->unk4 < 0.0f) + { + // Node 8 + phi_f0 = -temp_f0; + phi_f2 = -temp_f2; + phi_f12 = -arg1->unk4; + } + // Node 9 + if (phi_f0 < 0.0f) + { + // Node 10 + if (phi_f2 < 0.0f) + { + // Node 11 + return 1; + } + } + // Node 12 + phi_f0_2 = phi_f0; + phi_f2_2 = phi_f2; + if (phi_f2 < phi_f0) + { + // Node 13 + sp20 = (f32) phi_f0; + phi_f0_2 = phi_f2; + phi_f2_2 = sp20; + } + // Node 14 + sp4 = (f32) (phi_f14_2 * phi_f12); + sp0 = (f32) (phi_f0_2 * phi_f18); + if (sp0 < sp4) + { + // Node 15 + temp_f0_2 = (phi_f2_2 * phi_f18); + if (temp_f0_2 < sp4) + { + // Node 16 + return 1; + } + // Node 17 + sp30 = (f32) phi_f18; + sp4 = (f32) (phi_f16_2 * phi_f12); + phi_f0_3 = temp_f0_2; + } + else + { + // Node 18 + if ((phi_f16_2 * phi_f12) < sp0) + { + // Node 19 + return 1; + } + // Node 20 + sp34 = (f32) phi_f0_2; + sp0 = (f32) (phi_f2_2 * phi_f18); + phi_f0_3 = sp0; + } + // Node 21 + if (sp4 < phi_f0_3) + { + // Node 22 + phi_f0_4 = phi_f16_2; + phi_f14_3 = phi_f18; + } + else + { + // Node 23 + phi_f0_4 = phi_f2_2; + phi_f14_3 = phi_f12; + } + // Node 24 + temp_f18 = (sp74 - arg0->unk8); + temp_f12 = (sp68 - arg0->unk8); + phi_f18_2 = temp_f18; + phi_f12_2 = temp_f12; + phi_f2_3 = arg1->unk8; + if (arg1->unk8 < 0.0f) + { + // Node 25 + phi_f18_2 = -temp_f18; + phi_f12_2 = -temp_f12; + phi_f2_3 = -arg1->unk8; + } + // Node 26 + if (phi_f18_2 < 0.0f) + { + // Node 27 + if (phi_f12_2 < 0.0f) + { + // Node 28 + return 1; + } + } + // Node 29 + phi_f18_3 = phi_f18_2; + phi_f12_3 = phi_f12_2; + if (phi_f12_2 < phi_f18_2) + { + // Node 30 + phi_f18_3 = phi_f12_2; + phi_f12_3 = phi_f18_2; + } + // Node 31 + temp_f16 = (sp34 * phi_f2_3); + if (temp_f16 < (phi_f18_3 * sp30)) + { + // Node 32 + if ((phi_f0_4 * phi_f2_3) >= (phi_f18_3 * phi_f14_3)) + { + // Node 36 + // Node 37 + return 1; + } + // Node 33 + return 1; + } + // Node 34 + if ((phi_f12_3 * sp30) >= temp_f16) + { + // Node 36 + // Node 37 + return 1; + } + // Node 35 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6CEC +/* 0EB81C 7F0B6CEC 8CCE0000 */ lw $t6, ($a2) +/* 0EB820 7F0B6CF0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0EB824 7F0B6CF4 448E2000 */ mtc1 $t6, $f4 +/* 0EB828 7F0B6CF8 00000000 */ nop +/* 0EB82C 7F0B6CFC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB830 7F0B6D00 E7A6006C */ swc1 $f6, 0x6c($sp) +/* 0EB834 7F0B6D04 8CCF0004 */ lw $t7, 4($a2) +/* 0EB838 7F0B6D08 448F4000 */ mtc1 $t7, $f8 +/* 0EB83C 7F0B6D0C 00000000 */ nop +/* 0EB840 7F0B6D10 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB844 7F0B6D14 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0EB848 7F0B6D18 8CD80008 */ lw $t8, 8($a2) +/* 0EB84C 7F0B6D1C 44982000 */ mtc1 $t8, $f4 +/* 0EB850 7F0B6D20 00000000 */ nop +/* 0EB854 7F0B6D24 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB858 7F0B6D28 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0EB85C 7F0B6D2C 8CF90000 */ lw $t9, ($a3) +/* 0EB860 7F0B6D30 44994000 */ mtc1 $t9, $f8 +/* 0EB864 7F0B6D34 00000000 */ nop +/* 0EB868 7F0B6D38 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB86C 7F0B6D3C E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0EB870 7F0B6D40 8CE80004 */ lw $t0, 4($a3) +/* 0EB874 7F0B6D44 44882000 */ mtc1 $t0, $f4 +/* 0EB878 7F0B6D48 00000000 */ nop +/* 0EB87C 7F0B6D4C 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB880 7F0B6D50 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0EB884 7F0B6D54 E7A60064 */ swc1 $f6, 0x64($sp) +/* 0EB888 7F0B6D58 8CE90008 */ lw $t1, 8($a3) +/* 0EB88C 7F0B6D5C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0EB890 7F0B6D60 44894000 */ mtc1 $t1, $f8 +/* 0EB894 7F0B6D64 00000000 */ nop +/* 0EB898 7F0B6D68 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB89C 7F0B6D6C 44804000 */ mtc1 $zero, $f8 +/* 0EB8A0 7F0B6D70 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0EB8A4 7F0B6D74 C4B20000 */ lwc1 $f18, ($a1) +/* 0EB8A8 7F0B6D78 C4800000 */ lwc1 $f0, ($a0) +/* 0EB8AC 7F0B6D7C 44805000 */ mtc1 $zero, $f10 +/* 0EB8B0 7F0B6D80 4608903C */ c.lt.s $f18, $f8 +/* 0EB8B4 7F0B6D84 46002401 */ sub.s $f16, $f4, $f0 +/* 0EB8B8 7F0B6D88 45000004 */ bc1f .L7F0B6D9C +/* 0EB8BC 7F0B6D8C 46003381 */ sub.s $f14, $f6, $f0 +/* 0EB8C0 7F0B6D90 46009487 */ neg.s $f18, $f18 +/* 0EB8C4 7F0B6D94 46007387 */ neg.s $f14, $f14 +/* 0EB8C8 7F0B6D98 46008407 */ neg.s $f16, $f16 +.L7F0B6D9C: +/* 0EB8CC 7F0B6D9C 460A703C */ c.lt.s $f14, $f10 +/* 0EB8D0 7F0B6DA0 00000000 */ nop +/* 0EB8D4 7F0B6DA4 4502000A */ bc1fl .L7F0B6DD0 +/* 0EB8D8 7F0B6DA8 460E803C */ c.lt.s $f16, $f14 +/* 0EB8DC 7F0B6DAC 44802000 */ mtc1 $zero, $f4 +/* 0EB8E0 7F0B6DB0 00000000 */ nop +/* 0EB8E4 7F0B6DB4 4604803C */ c.lt.s $f16, $f4 +/* 0EB8E8 7F0B6DB8 00000000 */ nop +/* 0EB8EC 7F0B6DBC 45020004 */ bc1fl .L7F0B6DD0 +/* 0EB8F0 7F0B6DC0 460E803C */ c.lt.s $f16, $f14 +/* 0EB8F4 7F0B6DC4 10000090 */ b .L7F0B7008 +/* 0EB8F8 7F0B6DC8 00001025 */ move $v0, $zero +/* 0EB8FC 7F0B6DCC 460E803C */ c.lt.s $f16, $f14 +.L7F0B6DD0: +/* 0EB900 7F0B6DD0 00000000 */ nop +/* 0EB904 7F0B6DD4 45020005 */ bc1fl .L7F0B6DEC +/* 0EB908 7F0B6DD8 C4860004 */ lwc1 $f6, 4($a0) +/* 0EB90C 7F0B6DDC 46007006 */ mov.s $f0, $f14 +/* 0EB910 7F0B6DE0 46008386 */ mov.s $f14, $f16 +/* 0EB914 7F0B6DE4 46000406 */ mov.s $f16, $f0 +/* 0EB918 7F0B6DE8 C4860004 */ lwc1 $f6, 4($a0) +.L7F0B6DEC: +/* 0EB91C 7F0B6DEC C4AC0004 */ lwc1 $f12, 4($a1) +/* 0EB920 7F0B6DF0 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0EB924 7F0B6DF4 E7A60004 */ swc1 $f6, 4($sp) +/* 0EB928 7F0B6DF8 44803000 */ mtc1 $zero, $f6 +/* 0EB92C 7F0B6DFC C7AA0004 */ lwc1 $f10, 4($sp) +/* 0EB930 7F0B6E00 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0EB934 7F0B6E04 4606603C */ c.lt.s $f12, $f6 +/* 0EB938 7F0B6E08 460A4081 */ sub.s $f2, $f8, $f10 +/* 0EB93C 7F0B6E0C 44804000 */ mtc1 $zero, $f8 +/* 0EB940 7F0B6E10 45000004 */ bc1f .L7F0B6E24 +/* 0EB944 7F0B6E14 460A2001 */ sub.s $f0, $f4, $f10 +/* 0EB948 7F0B6E18 46006307 */ neg.s $f12, $f12 +/* 0EB94C 7F0B6E1C 46000007 */ neg.s $f0, $f0 +/* 0EB950 7F0B6E20 46001087 */ neg.s $f2, $f2 +.L7F0B6E24: +/* 0EB954 7F0B6E24 4608003C */ c.lt.s $f0, $f8 +/* 0EB958 7F0B6E28 00000000 */ nop +/* 0EB95C 7F0B6E2C 4502000A */ bc1fl .L7F0B6E58 +/* 0EB960 7F0B6E30 4600103C */ c.lt.s $f2, $f0 +/* 0EB964 7F0B6E34 44802000 */ mtc1 $zero, $f4 +/* 0EB968 7F0B6E38 00000000 */ nop +/* 0EB96C 7F0B6E3C 4604103C */ c.lt.s $f2, $f4 +/* 0EB970 7F0B6E40 00000000 */ nop +/* 0EB974 7F0B6E44 45020004 */ bc1fl .L7F0B6E58 +/* 0EB978 7F0B6E48 4600103C */ c.lt.s $f2, $f0 +/* 0EB97C 7F0B6E4C 1000006E */ b .L7F0B7008 +/* 0EB980 7F0B6E50 00001025 */ move $v0, $zero +/* 0EB984 7F0B6E54 4600103C */ c.lt.s $f2, $f0 +.L7F0B6E58: +/* 0EB988 7F0B6E58 460C7182 */ mul.s $f6, $f14, $f12 +/* 0EB98C 7F0B6E5C 45000004 */ bc1f .L7F0B6E70 +/* 0EB990 7F0B6E60 00000000 */ nop +/* 0EB994 7F0B6E64 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0EB998 7F0B6E68 46001006 */ mov.s $f0, $f2 +/* 0EB99C 7F0B6E6C C7A20020 */ lwc1 $f2, 0x20($sp) +.L7F0B6E70: +/* 0EB9A0 7F0B6E70 46120282 */ mul.s $f10, $f0, $f18 +/* 0EB9A4 7F0B6E74 E7A60004 */ swc1 $f6, 4($sp) +/* 0EB9A8 7F0B6E78 C7A40004 */ lwc1 $f4, 4($sp) +/* 0EB9AC 7F0B6E7C E7AA0000 */ swc1 $f10, ($sp) +/* 0EB9B0 7F0B6E80 C7A80000 */ lwc1 $f8, ($sp) +/* 0EB9B4 7F0B6E84 4604403C */ c.lt.s $f8, $f4 +/* 0EB9B8 7F0B6E88 00000000 */ nop +/* 0EB9BC 7F0B6E8C 4500000D */ bc1f .L7F0B6EC4 +/* 0EB9C0 7F0B6E90 00000000 */ nop +/* 0EB9C4 7F0B6E94 46121002 */ mul.s $f0, $f2, $f18 +/* 0EB9C8 7F0B6E98 4604003C */ c.lt.s $f0, $f4 +/* 0EB9CC 7F0B6E9C 00000000 */ nop +/* 0EB9D0 7F0B6EA0 45000003 */ bc1f .L7F0B6EB0 +/* 0EB9D4 7F0B6EA4 00000000 */ nop +/* 0EB9D8 7F0B6EA8 10000057 */ b .L7F0B7008 +/* 0EB9DC 7F0B6EAC 00001025 */ move $v0, $zero +.L7F0B6EB0: +/* 0EB9E0 7F0B6EB0 460C8282 */ mul.s $f10, $f16, $f12 +/* 0EB9E4 7F0B6EB4 E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0EB9E8 7F0B6EB8 E7B20030 */ swc1 $f18, 0x30($sp) +/* 0EB9EC 7F0B6EBC 1000000F */ b .L7F0B6EFC +/* 0EB9F0 7F0B6EC0 E7AA0004 */ swc1 $f10, 4($sp) +.L7F0B6EC4: +/* 0EB9F4 7F0B6EC4 460C8382 */ mul.s $f14, $f16, $f12 +/* 0EB9F8 7F0B6EC8 C7A60000 */ lwc1 $f6, ($sp) +/* 0EB9FC 7F0B6ECC 4606703C */ c.lt.s $f14, $f6 +/* 0EBA00 7F0B6ED0 00000000 */ nop +/* 0EBA04 7F0B6ED4 45000003 */ bc1f .L7F0B6EE4 +/* 0EBA08 7F0B6ED8 00000000 */ nop +/* 0EBA0C 7F0B6EDC 1000004A */ b .L7F0B7008 +/* 0EBA10 7F0B6EE0 00001025 */ move $v0, $zero +.L7F0B6EE4: +/* 0EBA14 7F0B6EE4 46121202 */ mul.s $f8, $f2, $f18 +/* 0EBA18 7F0B6EE8 E7A00034 */ swc1 $f0, 0x34($sp) +/* 0EBA1C 7F0B6EEC E7AC0030 */ swc1 $f12, 0x30($sp) +/* 0EBA20 7F0B6EF0 E7AE0004 */ swc1 $f14, 4($sp) +/* 0EBA24 7F0B6EF4 E7A80000 */ swc1 $f8, ($sp) +/* 0EBA28 7F0B6EF8 C7A00000 */ lwc1 $f0, ($sp) +.L7F0B6EFC: +/* 0EBA2C 7F0B6EFC C7A40004 */ lwc1 $f4, 4($sp) +/* 0EBA30 7F0B6F00 44804000 */ mtc1 $zero, $f8 +/* 0EBA34 7F0B6F04 4600203C */ c.lt.s $f4, $f0 +/* 0EBA38 7F0B6F08 44802000 */ mtc1 $zero, $f4 +/* 0EBA3C 7F0B6F0C 45020005 */ bc1fl .L7F0B6F24 +/* 0EBA40 7F0B6F10 46001006 */ mov.s $f0, $f2 +/* 0EBA44 7F0B6F14 46008006 */ mov.s $f0, $f16 +/* 0EBA48 7F0B6F18 10000003 */ b .L7F0B6F28 +/* 0EBA4C 7F0B6F1C 46009386 */ mov.s $f14, $f18 +/* 0EBA50 7F0B6F20 46001006 */ mov.s $f0, $f2 +.L7F0B6F24: +/* 0EBA54 7F0B6F24 46006386 */ mov.s $f14, $f12 +.L7F0B6F28: +/* 0EBA58 7F0B6F28 C4A20008 */ lwc1 $f2, 8($a1) +/* 0EBA5C 7F0B6F2C C4900008 */ lwc1 $f16, 8($a0) +/* 0EBA60 7F0B6F30 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0EBA64 7F0B6F34 4608103C */ c.lt.s $f2, $f8 +/* 0EBA68 7F0B6F38 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EBA6C 7F0B6F3C 46103481 */ sub.s $f18, $f6, $f16 +/* 0EBA70 7F0B6F40 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0EBA74 7F0B6F44 45000004 */ bc1f .L7F0B6F58 +/* 0EBA78 7F0B6F48 46105301 */ sub.s $f12, $f10, $f16 +/* 0EBA7C 7F0B6F4C 46001087 */ neg.s $f2, $f2 +/* 0EBA80 7F0B6F50 46009487 */ neg.s $f18, $f18 +/* 0EBA84 7F0B6F54 46006307 */ neg.s $f12, $f12 +.L7F0B6F58: +/* 0EBA88 7F0B6F58 4604903C */ c.lt.s $f18, $f4 +/* 0EBA8C 7F0B6F5C C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0EBA90 7F0B6F60 4502000A */ bc1fl .L7F0B6F8C +/* 0EBA94 7F0B6F64 4612603C */ c.lt.s $f12, $f18 +/* 0EBA98 7F0B6F68 44805000 */ mtc1 $zero, $f10 +/* 0EBA9C 7F0B6F6C 00000000 */ nop +/* 0EBAA0 7F0B6F70 460A603C */ c.lt.s $f12, $f10 +/* 0EBAA4 7F0B6F74 00000000 */ nop +/* 0EBAA8 7F0B6F78 45020004 */ bc1fl .L7F0B6F8C +/* 0EBAAC 7F0B6F7C 4612603C */ c.lt.s $f12, $f18 +/* 0EBAB0 7F0B6F80 10000021 */ b .L7F0B7008 +/* 0EBAB4 7F0B6F84 00001025 */ move $v0, $zero +/* 0EBAB8 7F0B6F88 4612603C */ c.lt.s $f12, $f18 +.L7F0B6F8C: +/* 0EBABC 7F0B6F8C 00000000 */ nop +/* 0EBAC0 7F0B6F90 45000004 */ bc1f .L7F0B6FA4 +/* 0EBAC4 7F0B6F94 00000000 */ nop +/* 0EBAC8 7F0B6F98 46009406 */ mov.s $f16, $f18 +/* 0EBACC 7F0B6F9C 46006486 */ mov.s $f18, $f12 +/* 0EBAD0 7F0B6FA0 46008306 */ mov.s $f12, $f16 +.L7F0B6FA4: +/* 0EBAD4 7F0B6FA4 46023402 */ mul.s $f16, $f6, $f2 +/* 0EBAD8 7F0B6FA8 00000000 */ nop +/* 0EBADC 7F0B6FAC 46089102 */ mul.s $f4, $f18, $f8 +/* 0EBAE0 7F0B6FB0 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0EBAE4 7F0B6FB4 4604803C */ c.lt.s $f16, $f4 +/* 0EBAE8 7F0B6FB8 00000000 */ nop +/* 0EBAEC 7F0B6FBC 4500000A */ bc1f .L7F0B6FE8 +/* 0EBAF0 7F0B6FC0 00000000 */ nop +/* 0EBAF4 7F0B6FC4 46020282 */ mul.s $f10, $f0, $f2 +/* 0EBAF8 7F0B6FC8 00000000 */ nop +/* 0EBAFC 7F0B6FCC 460E9182 */ mul.s $f6, $f18, $f14 +/* 0EBB00 7F0B6FD0 4606503C */ c.lt.s $f10, $f6 +/* 0EBB04 7F0B6FD4 00000000 */ nop +/* 0EBB08 7F0B6FD8 4500000A */ bc1f .L7F0B7004 +/* 0EBB0C 7F0B6FDC 00000000 */ nop +/* 0EBB10 7F0B6FE0 10000009 */ b .L7F0B7008 +/* 0EBB14 7F0B6FE4 00001025 */ move $v0, $zero +.L7F0B6FE8: +/* 0EBB18 7F0B6FE8 46086102 */ mul.s $f4, $f12, $f8 +/* 0EBB1C 7F0B6FEC 4610203C */ c.lt.s $f4, $f16 +/* 0EBB20 7F0B6FF0 00000000 */ nop +/* 0EBB24 7F0B6FF4 45020004 */ bc1fl .L7F0B7008 +/* 0EBB28 7F0B6FF8 24020001 */ li $v0, 1 +/* 0EBB2C 7F0B6FFC 10000002 */ b .L7F0B7008 +/* 0EBB30 7F0B7000 00001025 */ move $v0, $zero +.L7F0B7004: +/* 0EBB34 7F0B7004 24020001 */ li $v0, 1 +.L7F0B7008: +/* 0EBB38 7F0B7008 03E00008 */ jr $ra +/* 0EBB3C 7F0B700C 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +?32 sub_GAME_7F0B7010(void *arg0, s32 arg1, ?32 arg2, void *arg3, s32 arg4, void *arg5) { + s32 sp54; + void *sp64; + s32 sp80; + s32 sp84; + s32 sp88; + s32 sp8C; + s32 sp90; + s32 sp94; + s32 sp9C; + s32 spA0; + s32 spA4; + ? spA8; + s32 spC8; + s32 spCC; + s32 spD0; + s32 spD4; + s32 spD8; + s32 spDC; + s32 spE4; + s32 spE8; + s32 spEC; + s32 spF0; + f32 spF8; + ?32 sp12C; + void *temp_t0; + void *temp_s3; + s32 temp_t2; + s32 temp_s1; + void *temp_a0; + void *temp_v1; + void *temp_v0; + void *temp_v0_4; + u32 temp_v0_5; + void *temp_a0_2; + void *temp_v1_2; + void *temp_v0_2; + void *temp_v0_6; + u32 temp_v0_7; + s32 temp_s5; + s32 temp_v0_3; + s32 phi_v0; + void *phi_s3; + void *phi_a0; + void *phi_v0_2; + void *phi_v0_3; + s16 phi_s0; + s32 phi_s5; + void *phi_a0_2; + void *phi_t0; + void *phi_v0_4; + void *phi_v0_5; + s16 phi_s0_2; + void *phi_t0_2; + + // Node 0 + temp_t0 = ((arg4 * 0x50) + &array_room_info); + temp_s3 = ((*arg3 * 8) + temp_t0->unk8); + spF0 = 0x7fffffff; + sp12C = 0; + temp_t2 = (temp_s3->unk1 & 0xf); + temp_s1 = ((temp_s3->unk4 & 0xffffff) + temp_t0->unk4); + if (temp_s3->unk8 != 4) + { + // Node 1 + if (temp_s3->unk8 != -0x48) + { + // Node 2 + sp64 = temp_t0; + phi_v0 = temp_s3->unk8; + phi_s3 = (temp_s3 + 8); + phi_t0_2 = &spA8; +loop_3: + // Node 3 + if (phi_v0 == -0x41) + { + // Node 4 + spD4 = (?32) D_80044868; + spD4.unk4 = (?32) D_80044868.unk4; + spD4.unk8 = (?32) D_80044868.unk8; + spC8 = (?32) D_80044874; + spC8.unk4 = (?32) D_80044874.unk4; + spC8.unk8 = (?32) D_80044874.unk8; + spE4 = (s32) (((s32) phi_s3->unk5 / 0xa) - temp_t2); + spE8 = (s32) (((s32) phi_s3->unk6 / 0xa) - temp_t2); + spEC = (s32) (((s32) phi_s3->unk7 / 0xa) - temp_t2); + sp54 = (s32) (arg4 * 0x18); + phi_a0 = &spE4; +loop_5: + // Node 5 + temp_a0 = (phi_a0 + 4); + temp_v1 = (temp_s1 + (*phi_a0 * 0x10)); + if (*temp_v1 < spD4) + { + // Node 6 + spD4 = (s32) *temp_v1; + } + // Node 7 + if (spC8 < *temp_v1) + { + // Node 8 + spC8 = (s32) *temp_v1; + } + // Node 9 + if (temp_v1->unk2 < spD8) + { + // Node 10 + spD8 = (s32) temp_v1->unk2; + } + // Node 11 + if (spCC < temp_v1->unk2) + { + // Node 12 + spCC = (s32) temp_v1->unk2; + } + // Node 13 + if (temp_v1->unk4 < spDC) + { + // Node 14 + spDC = (s32) temp_v1->unk4; + } + // Node 15 + if (spD0 < temp_v1->unk4) + { + // Node 16 + spD0 = (s32) temp_v1->unk4; + } + // Node 17 + phi_a0 = temp_a0; + if (temp_a0 != &spF0) + { + goto loop_5; + } + // Node 18 + temp_v0 = (ptr_bgdata_room_fileposition_list + sp54); + spD4 = (s32) (spD4 + (s32) temp_v0->unkC); + spD8 = (s32) (spD8 + (s32) temp_v0->unk10); + spDC = (s32) (spDC + (s32) temp_v0->unk14); + spC8 = (s32) (spC8 + (s32) temp_v0->unkC); + spCC = (s32) (spCC + (s32) temp_v0->unk10); + spD0 = (s32) (spD0 + (s32) temp_v0->unk14); + phi_t0_2 = &spA8; + if (sub_GAME_7F0B6CEC(arg0, arg2, &spD4, &spC8) != 0) + { + // Node 19 + phi_t0_2 = &spA8; + if (sub_GAME_7F092890((temp_s1 + (spE4 * 0x10)), (temp_s1 + (spE8 * 0x10)), (temp_s1 + (spEC * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0) + { + // Node 20 + temp_v0_4 = phi_s3; + sp12C = 1; + phi_v0_3 = temp_v0_4; + if (0xfd != *phi_s3) + { + // Node 21 + phi_v0_2 = temp_v0_4; + phi_v0_3 = temp_v0_4; + if ((u32) sp64->unk8 < (u32) phi_s3) + { +loop_22: + // Node 22 + temp_v0_5 = (phi_v0_2 + -8); + phi_v0_3 = temp_v0_5; + if (0xfd != phi_v0_2->unk-8) + { + // Node 23 + phi_v0_2 = temp_v0_5; + phi_v0_3 = temp_v0_5; + if ((u32) sp64->unk8 < temp_v0_5) + { + goto loop_22; + } + } + } + } + // Node 24 + if (phi_v0_3 == sp64->unk8) + { + // Node 25 + phi_s0 = (u16)-1; + } + else + { + // Node 26 + phi_s0 = *((phi_v0_3->unk4 + -8) | 0x80000000); + } + // Node 27 + if (check_if_imageID_is_light(phi_s0, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0) + { + // Node 28 + } + // Node 29 + phi_t0_2 = &spA8; + if (0x4fd != 0) + { + // Node 30 + phi_t0_2 = &spA8; + if (phi_s0 != 0x4fd) + { + // Node 31 + *arg5 = spF8; + arg5->unk4 = spFC; + arg5->unk8 = sp100; + arg5->unkC = sp104; + arg5->unk10 = sp108; + arg5->unk14 = sp10C; + arg5->unk18 = (s32) ((spE4 * 0x10) + temp_s1); + arg5->unk1C = (s32) ((spE8 * 0x10) + temp_s1); + arg5->unk2A = (s16) phi_s0; + arg5->unk24 = (void *) phi_s3; + arg5->unk20 = (s32) ((spEC * 0x10) + temp_s1); + arg5->unk28 = (u16)0; + phi_t0_2 = &spA8; + } + } + } + } + } + else + { + // Node 32 + phi_t0_2 = phi_t0_2; + if (phi_v0 == -0x4f) + { + // Node 33 + sp54 = (s32) (arg4 * 0x18); + phi_s5 = 0; + phi_t0 = phi_t0_2; +loop_34: + // Node 34 + sp8C = (?32) D_80044880; + sp8C.unk4 = (?32) D_80044880.unk4; + sp8C.unk8 = (?32) D_80044880.unk8; + sp80 = (?32) D_8004488C; + sp80.unk4 = (?32) D_8004488C.unk4; + sp80.unk8 = (?32) D_8004488C.unk8; + if (phi_s5 == 0) + { + // Node 35 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk7 >> 4) - temp_t2); + spA4 = (s32) ((*phi_s3 & 0xf) - temp_t2); + } + else + { + // Node 36 + if (phi_s5 == 1) + { + // Node 37 + sp9C = (s32) ((phi_s3->unk6 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk6 >> 0xc) - temp_t2); + spA4 = (s32) (((u32) phi_s3->unk3 >> 4) - temp_t2); + } + else + { + // Node 38 + if (phi_s5 == 2) + { + // Node 39 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk5 >> 4) - temp_t2); + spA4 = (s32) ((phi_s3->unk2 & 0xf) - temp_t2); + } + else + { + // Node 40 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk4 >> 0x1c) - temp_t2); + spA4 = (s32) (((u32) phi_s3->unk2 >> 0xc) - temp_t2); + } + } + } + // Node 41 + phi_a0_2 = &sp9C; +loop_42: + // Node 42 + temp_a0_2 = (phi_a0_2 + 4); + temp_v1_2 = (temp_s1 + (*phi_a0_2 * 0x10)); + if (*temp_v1_2 < sp8C) + { + // Node 43 + sp8C = (s32) *temp_v1_2; + } + // Node 44 + if (sp80 < *temp_v1_2) + { + // Node 45 + sp80 = (s32) *temp_v1_2; + } + // Node 46 + if (temp_v1_2->unk2 < sp90) + { + // Node 47 + sp90 = (s32) temp_v1_2->unk2; + } + // Node 48 + if (sp84 < temp_v1_2->unk2) + { + // Node 49 + sp84 = (s32) temp_v1_2->unk2; + } + // Node 50 + if (temp_v1_2->unk4 < sp94) + { + // Node 51 + sp94 = (s32) temp_v1_2->unk4; + } + // Node 52 + if (sp88 < temp_v1_2->unk4) + { + // Node 53 + sp88 = (s32) temp_v1_2->unk4; + } + // Node 54 + phi_a0_2 = temp_a0_2; + if (temp_a0_2 != phi_t0) + { + goto loop_42; + } + // Node 55 + temp_v0_2 = (ptr_bgdata_room_fileposition_list + sp54); + sp8C = (s32) (sp8C + (s32) temp_v0_2->unkC); + sp90 = (s32) (sp90 + (s32) temp_v0_2->unk10); + sp94 = (s32) (sp94 + (s32) temp_v0_2->unk14); + sp80 = (s32) (sp80 + (s32) temp_v0_2->unkC); + sp84 = (s32) (sp84 + (s32) temp_v0_2->unk10); + sp88 = (s32) (sp88 + (s32) temp_v0_2->unk14); + if (sub_GAME_7F0B6CEC(arg0, arg2, &sp8C, &sp80) != 0) + { + // Node 56 + if (sub_GAME_7F092890((temp_s1 + (sp9C * 0x10)), (temp_s1 + (spA0 * 0x10)), (temp_s1 + (spA4 * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0) + { + // Node 57 + temp_v0_6 = phi_s3; + sp12C = 1; + phi_v0_5 = temp_v0_6; + if (0xfd != *phi_s3) + { + // Node 58 + phi_v0_4 = temp_v0_6; + phi_v0_5 = temp_v0_6; + if ((u32) sp64->unk8 < (u32) phi_s3) + { +loop_59: + // Node 59 + temp_v0_7 = (phi_v0_4 + -8); + phi_v0_5 = temp_v0_7; + if (0xfd != phi_v0_4->unk-8) + { + // Node 60 + phi_v0_4 = temp_v0_7; + phi_v0_5 = temp_v0_7; + if ((u32) sp64->unk8 < temp_v0_7) + { + goto loop_59; + } + } + } + } + // Node 61 + if (phi_v0_5 == sp64->unk8) + { + // Node 62 + phi_s0_2 = (u16)-1; + } + else + { + // Node 63 + phi_s0_2 = *((phi_v0_5->unk4 + -8) | 0x80000000); + } + // Node 64 + if (check_if_imageID_is_light(phi_s0_2, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0) + { + // Node 65 + } + // Node 66 + if (0x4fd != 0) + { + // Node 67 + if (phi_s0_2 != 0x4fd) + { + // Node 68 + *arg5 = spF8; + arg5->unk4 = spFC; + arg5->unk8 = sp100; + arg5->unkC = sp104; + arg5->unk10 = sp108; + arg5->unk14 = sp10C; + arg5->unk18 = (s32) ((sp9C * 0x10) + temp_s1); + arg5->unk1C = (s32) ((spA0 * 0x10) + temp_s1); + arg5->unk2A = (s16) phi_s0_2; + arg5->unk24 = (void *) phi_s3; + arg5->unk20 = (s32) ((spA4 * 0x10) + temp_s1); + arg5->unk28 = (s16) (phi_s5 + 1); + } + } + } + } + // Node 69 + temp_s5 = (phi_s5 + 1); + phi_s5 = temp_s5; + phi_t0 = &spA8; + phi_t0_2 = &spA8; + if (temp_s5 != 4) + { + goto loop_34; + } + } + } + // Node 70 + temp_v0_3 = phi_s3->unk8; + if (temp_v0_3 != -0x48) + { + // Node 71 + phi_v0 = temp_v0_3; + phi_s3 = (phi_s3 + 8); + if (temp_v0_3 != -0x48) + { + goto loop_3; + } + } + } + } + // Node 72 + return sp12C; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7010 +/* 0EBB40 7F0B7010 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 0EBB44 7F0B7014 8FAE0150 */ lw $t6, 0x150($sp) +/* 0EBB48 7F0B7018 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EBB4C 7F0B701C AFBF004C */ sw $ra, 0x4c($sp) +/* 0EBB50 7F0B7020 000E7880 */ sll $t7, $t6, 2 +/* 0EBB54 7F0B7024 01EE7821 */ addu $t7, $t7, $t6 +/* 0EBB58 7F0B7028 AFBE0048 */ sw $fp, 0x48($sp) +/* 0EBB5C 7F0B702C AFB70044 */ sw $s7, 0x44($sp) +/* 0EBB60 7F0B7030 AFB60040 */ sw $s6, 0x40($sp) +/* 0EBB64 7F0B7034 AFB5003C */ sw $s5, 0x3c($sp) +/* 0EBB68 7F0B7038 AFB40038 */ sw $s4, 0x38($sp) +/* 0EBB6C 7F0B703C AFB30034 */ sw $s3, 0x34($sp) +/* 0EBB70 7F0B7040 AFB20030 */ sw $s2, 0x30($sp) +/* 0EBB74 7F0B7044 AFB1002C */ sw $s1, 0x2c($sp) +/* 0EBB78 7F0B7048 AFB00028 */ sw $s0, 0x28($sp) +/* 0EBB7C 7F0B704C AFA40140 */ sw $a0, 0x140($sp) +/* 0EBB80 7F0B7050 AFA50144 */ sw $a1, 0x144($sp) +/* 0EBB84 7F0B7054 AFA60148 */ sw $a2, 0x148($sp) +/* 0EBB88 7F0B7058 000F7900 */ sll $t7, $t7, 4 +/* 0EBB8C 7F0B705C 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EBB90 7F0B7060 84F90000 */ lh $t9, ($a3) +/* 0EBB94 7F0B7064 01F84021 */ addu $t0, $t7, $t8 +/* 0EBB98 7F0B7068 8D130008 */ lw $s3, 8($t0) +/* 0EBB9C 7F0B706C 001948C0 */ sll $t1, $t9, 3 +/* 0EBBA0 7F0B7070 3C0D7FFF */ lui $t5, (0x7FFFFFFF >> 16) # lui $t5, 0x7fff +/* 0EBBA4 7F0B7074 01339821 */ addu $s3, $t1, $s3 +/* 0EBBA8 7F0B7078 8E6B0004 */ lw $t3, 4($s3) +/* 0EBBAC 7F0B707C 92770001 */ lbu $s7, 1($s3) +/* 0EBBB0 7F0B7080 35ADFFFF */ ori $t5, (0x7FFFFFFF & 0xFFFF) # ori $t5, $t5, 0xffff +/* 0EBBB4 7F0B7084 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0EBBB8 7F0B7088 AFAD00F0 */ sw $t5, 0xf0($sp) +/* 0EBBBC 7F0B708C AFA0012C */ sw $zero, 0x12c($sp) +/* 0EBBC0 7F0B7090 82620008 */ lb $v0, 8($s3) +/* 0EBBC4 7F0B7094 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0EBBC8 7F0B7098 8D030004 */ lw $v1, 4($t0) +/* 0EBBCC 7F0B709C 01616024 */ and $t4, $t3, $at +/* 0EBBD0 7F0B70A0 24010004 */ li $at, 4 +/* 0EBBD4 7F0B70A4 32EA000F */ andi $t2, $s7, 0xf +/* 0EBBD8 7F0B70A8 0140B825 */ move $s7, $t2 +/* 0EBBDC 7F0B70AC 26730008 */ addiu $s3, $s3, 8 +/* 0EBBE0 7F0B70B0 10410264 */ beq $v0, $at, .L7F0B7A44 +/* 0EBBE4 7F0B70B4 01838821 */ addu $s1, $t4, $v1 +/* 0EBBE8 7F0B70B8 2401FFB8 */ li $at, -72 +/* 0EBBEC 7F0B70BC 10410261 */ beq $v0, $at, .L7F0B7A44 +/* 0EBBF0 7F0B70C0 241600FD */ li $s6, 253 +/* 0EBBF4 7F0B70C4 AFA80064 */ sw $t0, 0x64($sp) +/* 0EBBF8 7F0B70C8 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBBFC 7F0B70CC 8FB40154 */ lw $s4, 0x154($sp) +/* 0EBC00 7F0B70D0 2401FFBF */ li $at, -65 +.L7F0B70D4: +/* 0EBC04 7F0B70D4 1441011F */ bne $v0, $at, .L7F0B7554 +/* 0EBC08 7F0B70D8 3C0E8004 */ lui $t6, %hi(D_80044868) +/* 0EBC0C 7F0B70DC 25CE4868 */ addiu $t6, %lo(D_80044868) # addiu $t6, $t6, 0x4868 +/* 0EBC10 7F0B70E0 8DC10000 */ lw $at, ($t6) +/* 0EBC14 7F0B70E4 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 0EBC18 7F0B70E8 3C198004 */ lui $t9, %hi(D_80044874) +/* 0EBC1C 7F0B70EC ACC10000 */ sw $at, ($a2) +/* 0EBC20 7F0B70F0 8DD80004 */ lw $t8, 4($t6) +/* 0EBC24 7F0B70F4 27394874 */ addiu $t9, %lo(D_80044874) # addiu $t9, $t9, 0x4874 +/* 0EBC28 7F0B70F8 27A700C8 */ addiu $a3, $sp, 0xc8 +/* 0EBC2C 7F0B70FC ACD80004 */ sw $t8, 4($a2) +/* 0EBC30 7F0B7100 8DC10008 */ lw $at, 8($t6) +/* 0EBC34 7F0B7104 2405000A */ li $a1, 10 +/* 0EBC38 7F0B7108 00001025 */ move $v0, $zero +/* 0EBC3C 7F0B710C ACC10008 */ sw $at, 8($a2) +/* 0EBC40 7F0B7110 8F210000 */ lw $at, ($t9) +/* 0EBC44 7F0B7114 27A400E4 */ addiu $a0, $sp, 0xe4 +/* 0EBC48 7F0B7118 ACE10000 */ sw $at, ($a3) +/* 0EBC4C 7F0B711C 8F2A0004 */ lw $t2, 4($t9) +/* 0EBC50 7F0B7120 ACEA0004 */ sw $t2, 4($a3) +/* 0EBC54 7F0B7124 8F210008 */ lw $at, 8($t9) +/* 0EBC58 7F0B7128 ACE10008 */ sw $at, 8($a3) +/* 0EBC5C 7F0B712C 926B0005 */ lbu $t3, 5($s3) +/* 0EBC60 7F0B7130 0165001A */ div $zero, $t3, $a1 +/* 0EBC64 7F0B7134 00006012 */ mflo $t4 +/* 0EBC68 7F0B7138 01976823 */ subu $t5, $t4, $s7 +/* 0EBC6C 7F0B713C AFAD00E4 */ sw $t5, 0xe4($sp) +/* 0EBC70 7F0B7140 926F0006 */ lbu $t7, 6($s3) +/* 0EBC74 7F0B7144 14A00002 */ bnez $a1, .L7F0B7150 +/* 0EBC78 7F0B7148 00000000 */ nop +/* 0EBC7C 7F0B714C 0007000D */ break 7 +.L7F0B7150: +/* 0EBC80 7F0B7150 2401FFFF */ li $at, -1 +/* 0EBC84 7F0B7154 14A10004 */ bne $a1, $at, .L7F0B7168 +/* 0EBC88 7F0B7158 3C018000 */ lui $at, 0x8000 +/* 0EBC8C 7F0B715C 15610002 */ bne $t3, $at, .L7F0B7168 +/* 0EBC90 7F0B7160 00000000 */ nop +/* 0EBC94 7F0B7164 0006000D */ break 6 +.L7F0B7168: +/* 0EBC98 7F0B7168 01E5001A */ div $zero, $t7, $a1 +/* 0EBC9C 7F0B716C 00007012 */ mflo $t6 +/* 0EBCA0 7F0B7170 01D7C023 */ subu $t8, $t6, $s7 +/* 0EBCA4 7F0B7174 AFB800E8 */ sw $t8, 0xe8($sp) +/* 0EBCA8 7F0B7178 92690007 */ lbu $t1, 7($s3) +/* 0EBCAC 7F0B717C 14A00002 */ bnez $a1, .L7F0B7188 +/* 0EBCB0 7F0B7180 00000000 */ nop +/* 0EBCB4 7F0B7184 0007000D */ break 7 +.L7F0B7188: +/* 0EBCB8 7F0B7188 2401FFFF */ li $at, -1 +/* 0EBCBC 7F0B718C 14A10004 */ bne $a1, $at, .L7F0B71A0 +/* 0EBCC0 7F0B7190 3C018000 */ lui $at, 0x8000 +/* 0EBCC4 7F0B7194 15E10002 */ bne $t7, $at, .L7F0B71A0 +/* 0EBCC8 7F0B7198 00000000 */ nop +/* 0EBCCC 7F0B719C 0006000D */ break 6 +.L7F0B71A0: +/* 0EBCD0 7F0B71A0 0125001A */ div $zero, $t1, $a1 +/* 0EBCD4 7F0B71A4 8FAB0150 */ lw $t3, 0x150($sp) +/* 0EBCD8 7F0B71A8 0000C812 */ mflo $t9 +/* 0EBCDC 7F0B71AC 03375023 */ subu $t2, $t9, $s7 +/* 0EBCE0 7F0B71B0 000B6080 */ sll $t4, $t3, 2 +/* 0EBCE4 7F0B71B4 018B6023 */ subu $t4, $t4, $t3 +/* 0EBCE8 7F0B71B8 000C60C0 */ sll $t4, $t4, 3 +/* 0EBCEC 7F0B71BC AFAA00EC */ sw $t2, 0xec($sp) +/* 0EBCF0 7F0B71C0 AFAC0054 */ sw $t4, 0x54($sp) +/* 0EBCF4 7F0B71C4 14A00002 */ bnez $a1, .L7F0B71D0 +/* 0EBCF8 7F0B71C8 00000000 */ nop +/* 0EBCFC 7F0B71CC 0007000D */ break 7 +.L7F0B71D0: +/* 0EBD00 7F0B71D0 2401FFFF */ li $at, -1 +/* 0EBD04 7F0B71D4 14A10004 */ bne $a1, $at, .L7F0B71E8 +/* 0EBD08 7F0B71D8 3C018000 */ lui $at, 0x8000 +/* 0EBD0C 7F0B71DC 15210002 */ bne $t1, $at, .L7F0B71E8 +/* 0EBD10 7F0B71E0 00000000 */ nop +/* 0EBD14 7F0B71E4 0006000D */ break 6 +.L7F0B71E8: +/* 0EBD18 7F0B71E8 8C8D0000 */ lw $t5, ($a0) +.L7F0B71EC: +/* 0EBD1C 7F0B71EC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0EBD20 7F0B71F0 24840004 */ addiu $a0, $a0, 4 +/* 0EBD24 7F0B71F4 000D7900 */ sll $t7, $t5, 4 +/* 0EBD28 7F0B71F8 022F1821 */ addu $v1, $s1, $t7 +/* 0EBD2C 7F0B71FC 84620000 */ lh $v0, ($v1) +/* 0EBD30 7F0B7200 27AC00F0 */ addiu $t4, $sp, 0xf0 +/* 0EBD34 7F0B7204 004E082A */ slt $at, $v0, $t6 +/* 0EBD38 7F0B7208 50200004 */ beql $at, $zero, .L7F0B721C +/* 0EBD3C 7F0B720C 8FB800C8 */ lw $t8, 0xc8($sp) +/* 0EBD40 7F0B7210 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0EBD44 7F0B7214 84620000 */ lh $v0, ($v1) +/* 0EBD48 7F0B7218 8FB800C8 */ lw $t8, 0xc8($sp) +.L7F0B721C: +/* 0EBD4C 7F0B721C 0302082A */ slt $at, $t8, $v0 +/* 0EBD50 7F0B7220 50200003 */ beql $at, $zero, .L7F0B7230 +/* 0EBD54 7F0B7224 84620002 */ lh $v0, 2($v1) +/* 0EBD58 7F0B7228 AFA200C8 */ sw $v0, 0xc8($sp) +/* 0EBD5C 7F0B722C 84620002 */ lh $v0, 2($v1) +.L7F0B7230: +/* 0EBD60 7F0B7230 8FA900D8 */ lw $t1, 0xd8($sp) +/* 0EBD64 7F0B7234 0049082A */ slt $at, $v0, $t1 +/* 0EBD68 7F0B7238 50200004 */ beql $at, $zero, .L7F0B724C +/* 0EBD6C 7F0B723C 8FB900CC */ lw $t9, 0xcc($sp) +/* 0EBD70 7F0B7240 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0EBD74 7F0B7244 84620002 */ lh $v0, 2($v1) +/* 0EBD78 7F0B7248 8FB900CC */ lw $t9, 0xcc($sp) +.L7F0B724C: +/* 0EBD7C 7F0B724C 0322082A */ slt $at, $t9, $v0 +/* 0EBD80 7F0B7250 50200003 */ beql $at, $zero, .L7F0B7260 +/* 0EBD84 7F0B7254 84620004 */ lh $v0, 4($v1) +/* 0EBD88 7F0B7258 AFA200CC */ sw $v0, 0xcc($sp) +/* 0EBD8C 7F0B725C 84620004 */ lh $v0, 4($v1) +.L7F0B7260: +/* 0EBD90 7F0B7260 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0EBD94 7F0B7264 004A082A */ slt $at, $v0, $t2 +/* 0EBD98 7F0B7268 50200004 */ beql $at, $zero, .L7F0B727C +/* 0EBD9C 7F0B726C 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0EBDA0 7F0B7270 AFA200DC */ sw $v0, 0xdc($sp) +/* 0EBDA4 7F0B7274 84620004 */ lh $v0, 4($v1) +/* 0EBDA8 7F0B7278 8FAB00D0 */ lw $t3, 0xd0($sp) +.L7F0B727C: +/* 0EBDAC 7F0B727C 0162082A */ slt $at, $t3, $v0 +/* 0EBDB0 7F0B7280 10200002 */ beqz $at, .L7F0B728C +/* 0EBDB4 7F0B7284 00000000 */ nop +/* 0EBDB8 7F0B7288 AFA200D0 */ sw $v0, 0xd0($sp) +.L7F0B728C: +/* 0EBDBC 7F0B728C 548CFFD7 */ bnel $a0, $t4, .L7F0B71EC +/* 0EBDC0 7F0B7290 8C8D0000 */ lw $t5, ($a0) +/* 0EBDC4 7F0B7294 3C0D8008 */ lui $t5, %hi(ptr_bgdata_room_fileposition_list) +/* 0EBDC8 7F0B7298 8DADFF8C */ lw $t5, %lo(ptr_bgdata_room_fileposition_list)($t5) +/* 0EBDCC 7F0B729C 8FAF0054 */ lw $t7, 0x54($sp) +/* 0EBDD0 7F0B72A0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0EBDD4 7F0B72A4 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 0EBDD8 7F0B72A8 01AF1021 */ addu $v0, $t5, $t7 +/* 0EBDDC 7F0B72AC C444000C */ lwc1 $f4, 0xc($v0) +/* 0EBDE0 7F0B72B0 8FAF00DC */ lw $t7, 0xdc($sp) +/* 0EBDE4 7F0B72B4 8FA40140 */ lw $a0, 0x140($sp) +/* 0EBDE8 7F0B72B8 4600218D */ trunc.w.s $f6, $f4 +/* 0EBDEC 7F0B72BC 8FA50148 */ lw $a1, 0x148($sp) +/* 0EBDF0 7F0B72C0 44093000 */ mfc1 $t1, $f6 +/* 0EBDF4 7F0B72C4 00000000 */ nop +/* 0EBDF8 7F0B72C8 01C9C821 */ addu $t9, $t6, $t1 +/* 0EBDFC 7F0B72CC AFB900D4 */ sw $t9, 0xd4($sp) +/* 0EBE00 7F0B72D0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EBE04 7F0B72D4 8FB900C8 */ lw $t9, 0xc8($sp) +/* 0EBE08 7F0B72D8 4600428D */ trunc.w.s $f10, $f8 +/* 0EBE0C 7F0B72DC 440C5000 */ mfc1 $t4, $f10 +/* 0EBE10 7F0B72E0 00000000 */ nop +/* 0EBE14 7F0B72E4 014C6821 */ addu $t5, $t2, $t4 +/* 0EBE18 7F0B72E8 AFAD00D8 */ sw $t5, 0xd8($sp) +/* 0EBE1C 7F0B72EC C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EBE20 7F0B72F0 8FAD00CC */ lw $t5, 0xcc($sp) +/* 0EBE24 7F0B72F4 4600848D */ trunc.w.s $f18, $f16 +/* 0EBE28 7F0B72F8 440E9000 */ mfc1 $t6, $f18 +/* 0EBE2C 7F0B72FC 00000000 */ nop +/* 0EBE30 7F0B7300 01EE4821 */ addu $t1, $t7, $t6 +/* 0EBE34 7F0B7304 AFA900DC */ sw $t1, 0xdc($sp) +/* 0EBE38 7F0B7308 C444000C */ lwc1 $f4, 0xc($v0) +/* 0EBE3C 7F0B730C 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0EBE40 7F0B7310 4600218D */ trunc.w.s $f6, $f4 +/* 0EBE44 7F0B7314 440A3000 */ mfc1 $t2, $f6 +/* 0EBE48 7F0B7318 00000000 */ nop +/* 0EBE4C 7F0B731C 032A6021 */ addu $t4, $t9, $t2 +/* 0EBE50 7F0B7320 AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0EBE54 7F0B7324 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EBE58 7F0B7328 4600428D */ trunc.w.s $f10, $f8 +/* 0EBE5C 7F0B732C 440F5000 */ mfc1 $t7, $f10 +/* 0EBE60 7F0B7330 00000000 */ nop +/* 0EBE64 7F0B7334 01AF7021 */ addu $t6, $t5, $t7 +/* 0EBE68 7F0B7338 AFAE00CC */ sw $t6, 0xcc($sp) +/* 0EBE6C 7F0B733C C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EBE70 7F0B7340 4600848D */ trunc.w.s $f18, $f16 +/* 0EBE74 7F0B7344 44199000 */ mfc1 $t9, $f18 +/* 0EBE78 7F0B7348 00000000 */ nop +/* 0EBE7C 7F0B734C 01395021 */ addu $t2, $t1, $t9 +/* 0EBE80 7F0B7350 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EBE84 7F0B7354 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0EBE88 7F0B7358 104001B3 */ beqz $v0, .L7F0B7A28 +/* 0EBE8C 7F0B735C 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBE90 7F0B7360 8FAC00E4 */ lw $t4, 0xe4($sp) +/* 0EBE94 7F0B7364 8FAD00E8 */ lw $t5, 0xe8($sp) +/* 0EBE98 7F0B7368 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list) +/* 0EBE9C 7F0B736C 000CC100 */ sll $t8, $t4, 4 +/* 0EBEA0 7F0B7370 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9) +/* 0EBEA4 7F0B7374 8FAE00EC */ lw $t6, 0xec($sp) +/* 0EBEA8 7F0B7378 8FA90054 */ lw $t1, 0x54($sp) +/* 0EBEAC 7F0B737C 02382021 */ addu $a0, $s1, $t8 +/* 0EBEB0 7F0B7380 8FB80148 */ lw $t8, 0x148($sp) +/* 0EBEB4 7F0B7384 8FAC0144 */ lw $t4, 0x144($sp) +/* 0EBEB8 7F0B7388 8FAA0140 */ lw $t2, 0x140($sp) +/* 0EBEBC 7F0B738C 000D7900 */ sll $t7, $t5, 4 +/* 0EBEC0 7F0B7390 27AD00F8 */ addiu $t5, $sp, 0xf8 +/* 0EBEC4 7F0B7394 000E5900 */ sll $t3, $t6, 4 +/* 0EBEC8 7F0B7398 01393821 */ addu $a3, $t1, $t9 +/* 0EBECC 7F0B739C 24E7000C */ addiu $a3, $a3, 0xc +/* 0EBED0 7F0B73A0 022B3021 */ addu $a2, $s1, $t3 +/* 0EBED4 7F0B73A4 AFAD001C */ sw $t5, 0x1c($sp) +/* 0EBED8 7F0B73A8 022F2821 */ addu $a1, $s1, $t7 +/* 0EBEDC 7F0B73AC AFB80018 */ sw $t8, 0x18($sp) +/* 0EBEE0 7F0B73B0 AFAC0014 */ sw $t4, 0x14($sp) +/* 0EBEE4 7F0B73B4 0FC24A24 */ jal sub_GAME_7F092890 +/* 0EBEE8 7F0B73B8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0EBEEC 7F0B73BC 1040019A */ beqz $v0, .L7F0B7A28 +/* 0EBEF0 7F0B73C0 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBEF4 7F0B73C4 8FA60140 */ lw $a2, 0x140($sp) +/* 0EBEF8 7F0B73C8 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EBEFC 7F0B73CC C7B000FC */ lwc1 $f16, 0xfc($sp) +/* 0EBF00 7F0B73D0 C4C80000 */ lwc1 $f8, ($a2) +/* 0EBF04 7F0B73D4 4600218D */ trunc.w.s $f6, $f4 +/* 0EBF08 7F0B73D8 C4C40004 */ lwc1 $f4, 4($a2) +/* 0EBF0C 7F0B73DC 02601025 */ move $v0, $s3 +/* 0EBF10 7F0B73E0 4600428D */ trunc.w.s $f10, $f8 +/* 0EBF14 7F0B73E4 440E3000 */ mfc1 $t6, $f6 +/* 0EBF18 7F0B73E8 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EBF1C 7F0B73EC 4600848D */ trunc.w.s $f18, $f16 +/* 0EBF20 7F0B73F0 44095000 */ mfc1 $t1, $f10 +/* 0EBF24 7F0B73F4 C4D00008 */ lwc1 $f16, 8($a2) +/* 0EBF28 7F0B73F8 4600218D */ trunc.w.s $f6, $f4 +/* 0EBF2C 7F0B73FC 01C91823 */ subu $v1, $t6, $t1 +/* 0EBF30 7F0B7400 00630019 */ multu $v1, $v1 +/* 0EBF34 7F0B7404 440A9000 */ mfc1 $t2, $f18 +/* 0EBF38 7F0B7408 44183000 */ mfc1 $t8, $f6 +/* 0EBF3C 7F0B740C 4600428D */ trunc.w.s $f10, $f8 +/* 0EBF40 7F0B7410 8FAB0064 */ lw $t3, 0x64($sp) +/* 0EBF44 7F0B7414 01582023 */ subu $a0, $t2, $t8 +/* 0EBF48 7F0B7418 4600848D */ trunc.w.s $f18, $f16 +/* 0EBF4C 7F0B741C 440F5000 */ mfc1 $t7, $f10 +/* 0EBF50 7F0B7420 24180001 */ li $t8, 1 +/* 0EBF54 7F0B7424 AFB8012C */ sw $t8, 0x12c($sp) +/* 0EBF58 7F0B7428 00004812 */ mflo $t1 +/* 0EBF5C 7F0B742C 440E9000 */ mfc1 $t6, $f18 +/* 0EBF60 7F0B7430 926D0000 */ lbu $t5, ($s3) +/* 0EBF64 7F0B7434 00840019 */ multu $a0, $a0 +/* 0EBF68 7F0B7438 01EE2823 */ subu $a1, $t7, $t6 +/* 0EBF6C 7F0B743C 8FAE0064 */ lw $t6, 0x64($sp) +/* 0EBF70 7F0B7440 0000C812 */ mflo $t9 +/* 0EBF74 7F0B7444 01396021 */ addu $t4, $t1, $t9 +/* 0EBF78 7F0B7448 00000000 */ nop +/* 0EBF7C 7F0B744C 00A50019 */ multu $a1, $a1 +/* 0EBF80 7F0B7450 00005012 */ mflo $t2 +/* 0EBF84 7F0B7454 018A9021 */ addu $s2, $t4, $t2 +/* 0EBF88 7F0B7458 12CD000C */ beq $s6, $t5, .L7F0B748C +/* 0EBF8C 7F0B745C 0240F025 */ move $fp, $s2 +/* 0EBF90 7F0B7460 8D630008 */ lw $v1, 8($t3) +/* 0EBF94 7F0B7464 0073082B */ sltu $at, $v1, $s3 +/* 0EBF98 7F0B7468 50200009 */ beql $at, $zero, .L7F0B7490 +/* 0EBF9C 7F0B746C 8DC90008 */ lw $t1, 8($t6) +/* 0EBFA0 7F0B7470 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7474: +/* 0EBFA4 7F0B7474 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EBFA8 7F0B7478 0062082B */ sltu $at, $v1, $v0 +/* 0EBFAC 7F0B747C 52CF0004 */ beql $s6, $t7, .L7F0B7490 +/* 0EBFB0 7F0B7480 8DC90008 */ lw $t1, 8($t6) +/* 0EBFB4 7F0B7484 5420FFFB */ bnezl $at, .L7F0B7474 +/* 0EBFB8 7F0B7488 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B748C: +/* 0EBFBC 7F0B748C 8DC90008 */ lw $t1, 8($t6) +.L7F0B7490: +/* 0EBFC0 7F0B7490 54490004 */ bnel $v0, $t1, .L7F0B74A4 +/* 0EBFC4 7F0B7494 8C430004 */ lw $v1, 4($v0) +/* 0EBFC8 7F0B7498 10000006 */ b .L7F0B74B4 +/* 0EBFCC 7F0B749C 2410FFFF */ li $s0, -1 +/* 0EBFD0 7F0B74A0 8C430004 */ lw $v1, 4($v0) +.L7F0B74A4: +/* 0EBFD4 7F0B74A4 3C018000 */ lui $at, 0x8000 +/* 0EBFD8 7F0B74A8 2463FFF8 */ addiu $v1, $v1, -8 +/* 0EBFDC 7F0B74AC 0061C825 */ or $t9, $v1, $at +/* 0EBFE0 7F0B74B0 97300000 */ lhu $s0, ($t9) +.L7F0B74B4: +/* 0EBFE4 7F0B74B4 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EBFE8 7F0B74B8 02002025 */ move $a0, $s0 +/* 0EBFEC 7F0B74BC 10400002 */ beqz $v0, .L7F0B74C8 +/* 0EBFF0 7F0B74C0 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBFF4 7F0B74C4 265EFFFC */ addiu $fp, $s2, -4 +.L7F0B74C8: +/* 0EBFF8 7F0B74C8 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0EBFFC 7F0B74CC 03CC082A */ slt $at, $fp, $t4 +/* 0EC000 7F0B74D0 10200155 */ beqz $at, .L7F0B7A28 +/* 0EC004 7F0B74D4 240104FD */ li $at, 1277 +/* 0EC008 7F0B74D8 52010154 */ beql $s0, $at, .L7F0B7A2C +/* 0EC00C 7F0B74DC 82620008 */ lb $v0, 8($s3) +/* 0EC010 7F0B74E0 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC014 7F0B74E4 AFBE00F0 */ sw $fp, 0xf0($sp) +/* 0EC018 7F0B74E8 E6840000 */ swc1 $f4, ($s4) +/* 0EC01C 7F0B74EC C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0EC020 7F0B74F0 E6860004 */ swc1 $f6, 4($s4) +/* 0EC024 7F0B74F4 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC028 7F0B74F8 E6880008 */ swc1 $f8, 8($s4) +/* 0EC02C 7F0B74FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 0EC030 7F0B7500 E68A000C */ swc1 $f10, 0xc($s4) +/* 0EC034 7F0B7504 C7B00108 */ lwc1 $f16, 0x108($sp) +/* 0EC038 7F0B7508 E6900010 */ swc1 $f16, 0x10($s4) +/* 0EC03C 7F0B750C C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0EC040 7F0B7510 E6920014 */ swc1 $f18, 0x14($s4) +/* 0EC044 7F0B7514 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 0EC048 7F0B7518 000AC100 */ sll $t8, $t2, 4 +/* 0EC04C 7F0B751C 03116821 */ addu $t5, $t8, $s1 +/* 0EC050 7F0B7520 AE8D0018 */ sw $t5, 0x18($s4) +/* 0EC054 7F0B7524 8FAB00E8 */ lw $t3, 0xe8($sp) +/* 0EC058 7F0B7528 000B7900 */ sll $t7, $t3, 4 +/* 0EC05C 7F0B752C 01F17021 */ addu $t6, $t7, $s1 +/* 0EC060 7F0B7530 AE8E001C */ sw $t6, 0x1c($s4) +/* 0EC064 7F0B7534 8FA900EC */ lw $t1, 0xec($sp) +/* 0EC068 7F0B7538 A690002A */ sh $s0, 0x2a($s4) +/* 0EC06C 7F0B753C AE930024 */ sw $s3, 0x24($s4) +/* 0EC070 7F0B7540 0009C900 */ sll $t9, $t1, 4 +/* 0EC074 7F0B7544 03316021 */ addu $t4, $t9, $s1 +/* 0EC078 7F0B7548 AE8C0020 */ sw $t4, 0x20($s4) +/* 0EC07C 7F0B754C 10000136 */ b .L7F0B7A28 +/* 0EC080 7F0B7550 A6800028 */ sh $zero, 0x28($s4) +.L7F0B7554: +/* 0EC084 7F0B7554 2401FFB1 */ li $at, -79 +/* 0EC088 7F0B7558 14410133 */ bne $v0, $at, .L7F0B7A28 +/* 0EC08C 7F0B755C 8FAA0150 */ lw $t2, 0x150($sp) +/* 0EC090 7F0B7560 000AC080 */ sll $t8, $t2, 2 +/* 0EC094 7F0B7564 030AC023 */ subu $t8, $t8, $t2 +/* 0EC098 7F0B7568 0018C0C0 */ sll $t8, $t8, 3 +/* 0EC09C 7F0B756C AFB80054 */ sw $t8, 0x54($sp) +/* 0EC0A0 7F0B7570 0000A825 */ move $s5, $zero +.L7F0B7574: +/* 0EC0A4 7F0B7574 3C0B8004 */ lui $t3, %hi(D_80044880) +/* 0EC0A8 7F0B7578 256B4880 */ addiu $t3, %lo(D_80044880) # addiu $t3, $t3, 0x4880 +/* 0EC0AC 7F0B757C 8D610000 */ lw $at, ($t3) +/* 0EC0B0 7F0B7580 27AD008C */ addiu $t5, $sp, 0x8c +/* 0EC0B4 7F0B7584 8D690004 */ lw $t1, 4($t3) +/* 0EC0B8 7F0B7588 ADA10000 */ sw $at, ($t5) +/* 0EC0BC 7F0B758C 8D610008 */ lw $at, 8($t3) +/* 0EC0C0 7F0B7590 3C0C8004 */ lui $t4, %hi(D_8004488C) +/* 0EC0C4 7F0B7594 258C488C */ addiu $t4, %lo(D_8004488C) # addiu $t4, $t4, 0x488c +/* 0EC0C8 7F0B7598 ADA90004 */ sw $t1, 4($t5) +/* 0EC0CC 7F0B759C ADA10008 */ sw $at, 8($t5) +/* 0EC0D0 7F0B75A0 8D810000 */ lw $at, ($t4) +/* 0EC0D4 7F0B75A4 27B90080 */ addiu $t9, $sp, 0x80 +/* 0EC0D8 7F0B75A8 8D8E0004 */ lw $t6, 4($t4) +/* 0EC0DC 7F0B75AC AF210000 */ sw $at, ($t9) +/* 0EC0E0 7F0B75B0 8D810008 */ lw $at, 8($t4) +/* 0EC0E4 7F0B75B4 AF2E0004 */ sw $t6, 4($t9) +/* 0EC0E8 7F0B75B8 16A0000E */ bnez $s5, .L7F0B75F4 +/* 0EC0EC 7F0B75BC AF210008 */ sw $at, 8($t9) +/* 0EC0F0 7F0B75C0 8E6F0004 */ lw $t7, 4($s3) +/* 0EC0F4 7F0B75C4 31ED000F */ andi $t5, $t7, 0xf +/* 0EC0F8 7F0B75C8 01B75823 */ subu $t3, $t5, $s7 +/* 0EC0FC 7F0B75CC AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC100 7F0B75D0 92690007 */ lbu $t1, 7($s3) +/* 0EC104 7F0B75D4 0009C102 */ srl $t8, $t1, 4 +/* 0EC108 7F0B75D8 03175023 */ subu $t2, $t8, $s7 +/* 0EC10C 7F0B75DC AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC110 7F0B75E0 8E790000 */ lw $t9, ($s3) +/* 0EC114 7F0B75E4 332C000F */ andi $t4, $t9, 0xf +/* 0EC118 7F0B75E8 01977023 */ subu $t6, $t4, $s7 +/* 0EC11C 7F0B75EC 1000002D */ b .L7F0B76A4 +/* 0EC120 7F0B75F0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0B75F4: +/* 0EC124 7F0B75F4 24010001 */ li $at, 1 +/* 0EC128 7F0B75F8 56A1000F */ bnel $s5, $at, .L7F0B7638 +/* 0EC12C 7F0B75FC 24010002 */ li $at, 2 +/* 0EC130 7F0B7600 926F0006 */ lbu $t7, 6($s3) +/* 0EC134 7F0B7604 31ED000F */ andi $t5, $t7, 0xf +/* 0EC138 7F0B7608 01B75823 */ subu $t3, $t5, $s7 +/* 0EC13C 7F0B760C AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC140 7F0B7610 96690006 */ lhu $t1, 6($s3) +/* 0EC144 7F0B7614 0009C302 */ srl $t8, $t1, 0xc +/* 0EC148 7F0B7618 03175023 */ subu $t2, $t8, $s7 +/* 0EC14C 7F0B761C AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC150 7F0B7620 92790003 */ lbu $t9, 3($s3) +/* 0EC154 7F0B7624 00196102 */ srl $t4, $t9, 4 +/* 0EC158 7F0B7628 01977023 */ subu $t6, $t4, $s7 +/* 0EC15C 7F0B762C 1000001D */ b .L7F0B76A4 +/* 0EC160 7F0B7630 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0EC164 7F0B7634 24010002 */ li $at, 2 +.L7F0B7638: +/* 0EC168 7F0B7638 56A1000F */ bnel $s5, $at, .L7F0B7678 +/* 0EC16C 7F0B763C 926F0004 */ lbu $t7, 4($s3) +/* 0EC170 7F0B7640 966F0004 */ lhu $t7, 4($s3) +/* 0EC174 7F0B7644 31ED000F */ andi $t5, $t7, 0xf +/* 0EC178 7F0B7648 01B75823 */ subu $t3, $t5, $s7 +/* 0EC17C 7F0B764C AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC180 7F0B7650 92690005 */ lbu $t1, 5($s3) +/* 0EC184 7F0B7654 0009C102 */ srl $t8, $t1, 4 +/* 0EC188 7F0B7658 03175023 */ subu $t2, $t8, $s7 +/* 0EC18C 7F0B765C AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC190 7F0B7660 92790002 */ lbu $t9, 2($s3) +/* 0EC194 7F0B7664 332C000F */ andi $t4, $t9, 0xf +/* 0EC198 7F0B7668 01977023 */ subu $t6, $t4, $s7 +/* 0EC19C 7F0B766C 1000000D */ b .L7F0B76A4 +/* 0EC1A0 7F0B7670 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0EC1A4 7F0B7674 926F0004 */ lbu $t7, 4($s3) +.L7F0B7678: +/* 0EC1A8 7F0B7678 31ED000F */ andi $t5, $t7, 0xf +/* 0EC1AC 7F0B767C 01B75823 */ subu $t3, $t5, $s7 +/* 0EC1B0 7F0B7680 AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC1B4 7F0B7684 8E690004 */ lw $t1, 4($s3) +/* 0EC1B8 7F0B7688 0009C702 */ srl $t8, $t1, 0x1c +/* 0EC1BC 7F0B768C 03175023 */ subu $t2, $t8, $s7 +/* 0EC1C0 7F0B7690 AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC1C4 7F0B7694 96790002 */ lhu $t9, 2($s3) +/* 0EC1C8 7F0B7698 00196302 */ srl $t4, $t9, 0xc +/* 0EC1CC 7F0B769C 01977023 */ subu $t6, $t4, $s7 +/* 0EC1D0 7F0B76A0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0B76A4: +/* 0EC1D4 7F0B76A4 27A4009C */ addiu $a0, $sp, 0x9c +/* 0EC1D8 7F0B76A8 8C8F0000 */ lw $t7, ($a0) +.L7F0B76AC: +/* 0EC1DC 7F0B76AC 8FAB008C */ lw $t3, 0x8c($sp) +/* 0EC1E0 7F0B76B0 24840004 */ addiu $a0, $a0, 4 +/* 0EC1E4 7F0B76B4 000F6900 */ sll $t5, $t7, 4 +/* 0EC1E8 7F0B76B8 022D1821 */ addu $v1, $s1, $t5 +/* 0EC1EC 7F0B76BC 84620000 */ lh $v0, ($v1) +/* 0EC1F0 7F0B76C0 004B082A */ slt $at, $v0, $t3 +/* 0EC1F4 7F0B76C4 50200004 */ beql $at, $zero, .L7F0B76D8 +/* 0EC1F8 7F0B76C8 8FA90080 */ lw $t1, 0x80($sp) +/* 0EC1FC 7F0B76CC AFA2008C */ sw $v0, 0x8c($sp) +/* 0EC200 7F0B76D0 84620000 */ lh $v0, ($v1) +/* 0EC204 7F0B76D4 8FA90080 */ lw $t1, 0x80($sp) +.L7F0B76D8: +/* 0EC208 7F0B76D8 0122082A */ slt $at, $t1, $v0 +/* 0EC20C 7F0B76DC 50200003 */ beql $at, $zero, .L7F0B76EC +/* 0EC210 7F0B76E0 84620002 */ lh $v0, 2($v1) +/* 0EC214 7F0B76E4 AFA20080 */ sw $v0, 0x80($sp) +/* 0EC218 7F0B76E8 84620002 */ lh $v0, 2($v1) +.L7F0B76EC: +/* 0EC21C 7F0B76EC 8FB80090 */ lw $t8, 0x90($sp) +/* 0EC220 7F0B76F0 0058082A */ slt $at, $v0, $t8 +/* 0EC224 7F0B76F4 50200004 */ beql $at, $zero, .L7F0B7708 +/* 0EC228 7F0B76F8 8FAA0084 */ lw $t2, 0x84($sp) +/* 0EC22C 7F0B76FC AFA20090 */ sw $v0, 0x90($sp) +/* 0EC230 7F0B7700 84620002 */ lh $v0, 2($v1) +/* 0EC234 7F0B7704 8FAA0084 */ lw $t2, 0x84($sp) +.L7F0B7708: +/* 0EC238 7F0B7708 0142082A */ slt $at, $t2, $v0 +/* 0EC23C 7F0B770C 50200003 */ beql $at, $zero, .L7F0B771C +/* 0EC240 7F0B7710 84620004 */ lh $v0, 4($v1) +/* 0EC244 7F0B7714 AFA20084 */ sw $v0, 0x84($sp) +/* 0EC248 7F0B7718 84620004 */ lh $v0, 4($v1) +.L7F0B771C: +/* 0EC24C 7F0B771C 8FB90094 */ lw $t9, 0x94($sp) +/* 0EC250 7F0B7720 0059082A */ slt $at, $v0, $t9 +/* 0EC254 7F0B7724 50200004 */ beql $at, $zero, .L7F0B7738 +/* 0EC258 7F0B7728 8FAC0088 */ lw $t4, 0x88($sp) +/* 0EC25C 7F0B772C AFA20094 */ sw $v0, 0x94($sp) +/* 0EC260 7F0B7730 84620004 */ lh $v0, 4($v1) +/* 0EC264 7F0B7734 8FAC0088 */ lw $t4, 0x88($sp) +.L7F0B7738: +/* 0EC268 7F0B7738 0182082A */ slt $at, $t4, $v0 +/* 0EC26C 7F0B773C 10200002 */ beqz $at, .L7F0B7748 +/* 0EC270 7F0B7740 00000000 */ nop +/* 0EC274 7F0B7744 AFA20088 */ sw $v0, 0x88($sp) +.L7F0B7748: +/* 0EC278 7F0B7748 5488FFD8 */ bnel $a0, $t0, .L7F0B76AC +/* 0EC27C 7F0B774C 8C8F0000 */ lw $t7, ($a0) +/* 0EC280 7F0B7750 3C0E8008 */ lui $t6, %hi(ptr_bgdata_room_fileposition_list) +/* 0EC284 7F0B7754 8DCEFF8C */ lw $t6, %lo(ptr_bgdata_room_fileposition_list)($t6) +/* 0EC288 7F0B7758 8FAF0054 */ lw $t7, 0x54($sp) +/* 0EC28C 7F0B775C 8FAD008C */ lw $t5, 0x8c($sp) +/* 0EC290 7F0B7760 8FAA0090 */ lw $t2, 0x90($sp) +/* 0EC294 7F0B7764 01CF1021 */ addu $v0, $t6, $t7 +/* 0EC298 7F0B7768 C444000C */ lwc1 $f4, 0xc($v0) +/* 0EC29C 7F0B776C 8FAF0094 */ lw $t7, 0x94($sp) +/* 0EC2A0 7F0B7770 8FA40140 */ lw $a0, 0x140($sp) +/* 0EC2A4 7F0B7774 4600218D */ trunc.w.s $f6, $f4 +/* 0EC2A8 7F0B7778 8FA50148 */ lw $a1, 0x148($sp) +/* 0EC2AC 7F0B777C 27A6008C */ addiu $a2, $sp, 0x8c +/* 0EC2B0 7F0B7780 27A70080 */ addiu $a3, $sp, 0x80 +/* 0EC2B4 7F0B7784 44093000 */ mfc1 $t1, $f6 +/* 0EC2B8 7F0B7788 00000000 */ nop +/* 0EC2BC 7F0B778C 01A9C021 */ addu $t8, $t5, $t1 +/* 0EC2C0 7F0B7790 AFB8008C */ sw $t8, 0x8c($sp) +/* 0EC2C4 7F0B7794 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EC2C8 7F0B7798 8FB80080 */ lw $t8, 0x80($sp) +/* 0EC2CC 7F0B779C 4600428D */ trunc.w.s $f10, $f8 +/* 0EC2D0 7F0B77A0 440C5000 */ mfc1 $t4, $f10 +/* 0EC2D4 7F0B77A4 00000000 */ nop +/* 0EC2D8 7F0B77A8 014C7021 */ addu $t6, $t2, $t4 +/* 0EC2DC 7F0B77AC AFAE0090 */ sw $t6, 0x90($sp) +/* 0EC2E0 7F0B77B0 C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EC2E4 7F0B77B4 8FAE0084 */ lw $t6, 0x84($sp) +/* 0EC2E8 7F0B77B8 4600848D */ trunc.w.s $f18, $f16 +/* 0EC2EC 7F0B77BC 440D9000 */ mfc1 $t5, $f18 +/* 0EC2F0 7F0B77C0 00000000 */ nop +/* 0EC2F4 7F0B77C4 01ED4821 */ addu $t1, $t7, $t5 +/* 0EC2F8 7F0B77C8 AFA90094 */ sw $t1, 0x94($sp) +/* 0EC2FC 7F0B77CC C444000C */ lwc1 $f4, 0xc($v0) +/* 0EC300 7F0B77D0 8FA90088 */ lw $t1, 0x88($sp) +/* 0EC304 7F0B77D4 4600218D */ trunc.w.s $f6, $f4 +/* 0EC308 7F0B77D8 440A3000 */ mfc1 $t2, $f6 +/* 0EC30C 7F0B77DC 00000000 */ nop +/* 0EC310 7F0B77E0 030A6021 */ addu $t4, $t8, $t2 +/* 0EC314 7F0B77E4 AFAC0080 */ sw $t4, 0x80($sp) +/* 0EC318 7F0B77E8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EC31C 7F0B77EC 4600428D */ trunc.w.s $f10, $f8 +/* 0EC320 7F0B77F0 440F5000 */ mfc1 $t7, $f10 +/* 0EC324 7F0B77F4 00000000 */ nop +/* 0EC328 7F0B77F8 01CF6821 */ addu $t5, $t6, $t7 +/* 0EC32C 7F0B77FC AFAD0084 */ sw $t5, 0x84($sp) +/* 0EC330 7F0B7800 C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EC334 7F0B7804 4600848D */ trunc.w.s $f18, $f16 +/* 0EC338 7F0B7808 44189000 */ mfc1 $t8, $f18 +/* 0EC33C 7F0B780C 00000000 */ nop +/* 0EC340 7F0B7810 01385021 */ addu $t2, $t1, $t8 +/* 0EC344 7F0B7814 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EC348 7F0B7818 AFAA0088 */ sw $t2, 0x88($sp) +/* 0EC34C 7F0B781C 1040007E */ beqz $v0, .L7F0B7A18 +/* 0EC350 7F0B7820 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC354 7F0B7824 8FAC009C */ lw $t4, 0x9c($sp) +/* 0EC358 7F0B7828 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0EC35C 7F0B782C 3C188008 */ lui $t8, %hi(ptr_bgdata_room_fileposition_list) +/* 0EC360 7F0B7830 000C5900 */ sll $t3, $t4, 4 +/* 0EC364 7F0B7834 8F18FF8C */ lw $t8, %lo(ptr_bgdata_room_fileposition_list)($t8) +/* 0EC368 7F0B7838 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 0EC36C 7F0B783C 8FA90054 */ lw $t1, 0x54($sp) +/* 0EC370 7F0B7840 022B2021 */ addu $a0, $s1, $t3 +/* 0EC374 7F0B7844 8FAB0148 */ lw $t3, 0x148($sp) +/* 0EC378 7F0B7848 8FAC0144 */ lw $t4, 0x144($sp) +/* 0EC37C 7F0B784C 8FAA0140 */ lw $t2, 0x140($sp) +/* 0EC380 7F0B7850 000E7900 */ sll $t7, $t6, 4 +/* 0EC384 7F0B7854 27AE00F8 */ addiu $t6, $sp, 0xf8 +/* 0EC388 7F0B7858 000DC900 */ sll $t9, $t5, 4 +/* 0EC38C 7F0B785C 01383821 */ addu $a3, $t1, $t8 +/* 0EC390 7F0B7860 24E7000C */ addiu $a3, $a3, 0xc +/* 0EC394 7F0B7864 02393021 */ addu $a2, $s1, $t9 +/* 0EC398 7F0B7868 AFAE001C */ sw $t6, 0x1c($sp) +/* 0EC39C 7F0B786C 022F2821 */ addu $a1, $s1, $t7 +/* 0EC3A0 7F0B7870 AFAB0018 */ sw $t3, 0x18($sp) +/* 0EC3A4 7F0B7874 AFAC0014 */ sw $t4, 0x14($sp) +/* 0EC3A8 7F0B7878 0FC24A24 */ jal sub_GAME_7F092890 +/* 0EC3AC 7F0B787C AFAA0010 */ sw $t2, 0x10($sp) +/* 0EC3B0 7F0B7880 10400065 */ beqz $v0, .L7F0B7A18 +/* 0EC3B4 7F0B7884 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC3B8 7F0B7888 8FA60140 */ lw $a2, 0x140($sp) +/* 0EC3BC 7F0B788C C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC3C0 7F0B7890 C7B000FC */ lwc1 $f16, 0xfc($sp) +/* 0EC3C4 7F0B7894 C4C80000 */ lwc1 $f8, ($a2) +/* 0EC3C8 7F0B7898 4600218D */ trunc.w.s $f6, $f4 +/* 0EC3CC 7F0B789C C4C40004 */ lwc1 $f4, 4($a2) +/* 0EC3D0 7F0B78A0 02601025 */ move $v0, $s3 +/* 0EC3D4 7F0B78A4 4600428D */ trunc.w.s $f10, $f8 +/* 0EC3D8 7F0B78A8 440D3000 */ mfc1 $t5, $f6 +/* 0EC3DC 7F0B78AC C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC3E0 7F0B78B0 4600848D */ trunc.w.s $f18, $f16 +/* 0EC3E4 7F0B78B4 44095000 */ mfc1 $t1, $f10 +/* 0EC3E8 7F0B78B8 C4D00008 */ lwc1 $f16, 8($a2) +/* 0EC3EC 7F0B78BC 4600218D */ trunc.w.s $f6, $f4 +/* 0EC3F0 7F0B78C0 01A91823 */ subu $v1, $t5, $t1 +/* 0EC3F4 7F0B78C4 00630019 */ multu $v1, $v1 +/* 0EC3F8 7F0B78C8 440A9000 */ mfc1 $t2, $f18 +/* 0EC3FC 7F0B78CC 440B3000 */ mfc1 $t3, $f6 +/* 0EC400 7F0B78D0 4600428D */ trunc.w.s $f10, $f8 +/* 0EC404 7F0B78D4 8FB90064 */ lw $t9, 0x64($sp) +/* 0EC408 7F0B78D8 014B2023 */ subu $a0, $t2, $t3 +/* 0EC40C 7F0B78DC 4600848D */ trunc.w.s $f18, $f16 +/* 0EC410 7F0B78E0 440F5000 */ mfc1 $t7, $f10 +/* 0EC414 7F0B78E4 240B0001 */ li $t3, 1 +/* 0EC418 7F0B78E8 AFAB012C */ sw $t3, 0x12c($sp) +/* 0EC41C 7F0B78EC 00004812 */ mflo $t1 +/* 0EC420 7F0B78F0 440D9000 */ mfc1 $t5, $f18 +/* 0EC424 7F0B78F4 926E0000 */ lbu $t6, ($s3) +/* 0EC428 7F0B78F8 00840019 */ multu $a0, $a0 +/* 0EC42C 7F0B78FC 01ED2823 */ subu $a1, $t7, $t5 +/* 0EC430 7F0B7900 8FAD0064 */ lw $t5, 0x64($sp) +/* 0EC434 7F0B7904 0000C012 */ mflo $t8 +/* 0EC438 7F0B7908 01386021 */ addu $t4, $t1, $t8 +/* 0EC43C 7F0B790C 00000000 */ nop +/* 0EC440 7F0B7910 00A50019 */ multu $a1, $a1 +/* 0EC444 7F0B7914 00005012 */ mflo $t2 +/* 0EC448 7F0B7918 018A9021 */ addu $s2, $t4, $t2 +/* 0EC44C 7F0B791C 12CE000C */ beq $s6, $t6, .L7F0B7950 +/* 0EC450 7F0B7920 0240F025 */ move $fp, $s2 +/* 0EC454 7F0B7924 8F230008 */ lw $v1, 8($t9) +/* 0EC458 7F0B7928 0073082B */ sltu $at, $v1, $s3 +/* 0EC45C 7F0B792C 50200009 */ beql $at, $zero, .L7F0B7954 +/* 0EC460 7F0B7930 8DA90008 */ lw $t1, 8($t5) +/* 0EC464 7F0B7934 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7938: +/* 0EC468 7F0B7938 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EC46C 7F0B793C 0062082B */ sltu $at, $v1, $v0 +/* 0EC470 7F0B7940 52CF0004 */ beql $s6, $t7, .L7F0B7954 +/* 0EC474 7F0B7944 8DA90008 */ lw $t1, 8($t5) +/* 0EC478 7F0B7948 5420FFFB */ bnezl $at, .L7F0B7938 +/* 0EC47C 7F0B794C 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7950: +/* 0EC480 7F0B7950 8DA90008 */ lw $t1, 8($t5) +.L7F0B7954: +/* 0EC484 7F0B7954 54490004 */ bnel $v0, $t1, .L7F0B7968 +/* 0EC488 7F0B7958 8C430004 */ lw $v1, 4($v0) +/* 0EC48C 7F0B795C 10000006 */ b .L7F0B7978 +/* 0EC490 7F0B7960 2410FFFF */ li $s0, -1 +/* 0EC494 7F0B7964 8C430004 */ lw $v1, 4($v0) +.L7F0B7968: +/* 0EC498 7F0B7968 3C018000 */ lui $at, 0x8000 +/* 0EC49C 7F0B796C 2463FFF8 */ addiu $v1, $v1, -8 +/* 0EC4A0 7F0B7970 0061C025 */ or $t8, $v1, $at +/* 0EC4A4 7F0B7974 97100000 */ lhu $s0, ($t8) +.L7F0B7978: +/* 0EC4A8 7F0B7978 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EC4AC 7F0B797C 02002025 */ move $a0, $s0 +/* 0EC4B0 7F0B7980 10400002 */ beqz $v0, .L7F0B798C +/* 0EC4B4 7F0B7984 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC4B8 7F0B7988 265EFFFC */ addiu $fp, $s2, -4 +.L7F0B798C: +/* 0EC4BC 7F0B798C 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0EC4C0 7F0B7990 03CC082A */ slt $at, $fp, $t4 +/* 0EC4C4 7F0B7994 10200020 */ beqz $at, .L7F0B7A18 +/* 0EC4C8 7F0B7998 240104FD */ li $at, 1277 +/* 0EC4CC 7F0B799C 5201001F */ beql $s0, $at, .L7F0B7A1C +/* 0EC4D0 7F0B79A0 26B50001 */ addiu $s5, $s5, 1 +/* 0EC4D4 7F0B79A4 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC4D8 7F0B79A8 AFBE00F0 */ sw $fp, 0xf0($sp) +/* 0EC4DC 7F0B79AC E6840000 */ swc1 $f4, ($s4) +/* 0EC4E0 7F0B79B0 C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0EC4E4 7F0B79B4 E6860004 */ swc1 $f6, 4($s4) +/* 0EC4E8 7F0B79B8 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC4EC 7F0B79BC E6880008 */ swc1 $f8, 8($s4) +/* 0EC4F0 7F0B79C0 C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 0EC4F4 7F0B79C4 E68A000C */ swc1 $f10, 0xc($s4) +/* 0EC4F8 7F0B79C8 C7B00108 */ lwc1 $f16, 0x108($sp) +/* 0EC4FC 7F0B79CC E6900010 */ swc1 $f16, 0x10($s4) +/* 0EC500 7F0B79D0 C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0EC504 7F0B79D4 E6920014 */ swc1 $f18, 0x14($s4) +/* 0EC508 7F0B79D8 8FAA009C */ lw $t2, 0x9c($sp) +/* 0EC50C 7F0B79DC 000A5900 */ sll $t3, $t2, 4 +/* 0EC510 7F0B79E0 01717021 */ addu $t6, $t3, $s1 +/* 0EC514 7F0B79E4 AE8E0018 */ sw $t6, 0x18($s4) +/* 0EC518 7F0B79E8 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0EC51C 7F0B79EC 26AA0001 */ addiu $t2, $s5, 1 +/* 0EC520 7F0B79F0 00197900 */ sll $t7, $t9, 4 +/* 0EC524 7F0B79F4 01F16821 */ addu $t5, $t7, $s1 +/* 0EC528 7F0B79F8 AE8D001C */ sw $t5, 0x1c($s4) +/* 0EC52C 7F0B79FC 8FA900A4 */ lw $t1, 0xa4($sp) +/* 0EC530 7F0B7A00 A690002A */ sh $s0, 0x2a($s4) +/* 0EC534 7F0B7A04 AE930024 */ sw $s3, 0x24($s4) +/* 0EC538 7F0B7A08 0009C100 */ sll $t8, $t1, 4 +/* 0EC53C 7F0B7A0C 03116021 */ addu $t4, $t8, $s1 +/* 0EC540 7F0B7A10 AE8C0020 */ sw $t4, 0x20($s4) +/* 0EC544 7F0B7A14 A68A0028 */ sh $t2, 0x28($s4) +.L7F0B7A18: +/* 0EC548 7F0B7A18 26B50001 */ addiu $s5, $s5, 1 +.L7F0B7A1C: +/* 0EC54C 7F0B7A1C 24010004 */ li $at, 4 +/* 0EC550 7F0B7A20 16A1FED4 */ bne $s5, $at, .L7F0B7574 +/* 0EC554 7F0B7A24 00000000 */ nop +.L7F0B7A28: +/* 0EC558 7F0B7A28 82620008 */ lb $v0, 8($s3) +.L7F0B7A2C: +/* 0EC55C 7F0B7A2C 24010004 */ li $at, 4 +/* 0EC560 7F0B7A30 26730008 */ addiu $s3, $s3, 8 +/* 0EC564 7F0B7A34 10410003 */ beq $v0, $at, .L7F0B7A44 +/* 0EC568 7F0B7A38 2401FFB8 */ li $at, -72 +/* 0EC56C 7F0B7A3C 5441FDA5 */ bnel $v0, $at, .L7F0B70D4 +/* 0EC570 7F0B7A40 2401FFBF */ li $at, -65 +.L7F0B7A44: +/* 0EC574 7F0B7A44 8FBF004C */ lw $ra, 0x4c($sp) +/* 0EC578 7F0B7A48 8FA2012C */ lw $v0, 0x12c($sp) +/* 0EC57C 7F0B7A4C 8FB00028 */ lw $s0, 0x28($sp) +/* 0EC580 7F0B7A50 8FB1002C */ lw $s1, 0x2c($sp) +/* 0EC584 7F0B7A54 8FB20030 */ lw $s2, 0x30($sp) +/* 0EC588 7F0B7A58 8FB30034 */ lw $s3, 0x34($sp) +/* 0EC58C 7F0B7A5C 8FB40038 */ lw $s4, 0x38($sp) +/* 0EC590 7F0B7A60 8FB5003C */ lw $s5, 0x3c($sp) +/* 0EC594 7F0B7A64 8FB60040 */ lw $s6, 0x40($sp) +/* 0EC598 7F0B7A68 8FB70044 */ lw $s7, 0x44($sp) +/* 0EC59C 7F0B7A6C 8FBE0048 */ lw $fp, 0x48($sp) +/* 0EC5A0 7F0B7A70 03E00008 */ jr $ra +/* 0EC5A4 7F0B7A74 27BD0140 */ addiu $sp, $sp, 0x140 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7A78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7A78 +/* 0EC5A8 7F0B7A78 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0EC5AC 7F0B7A7C 3C0E7FFF */ lui $t6, (0x7FFFFFFF >> 16) # lui $t6, 0x7fff +/* 0EC5B0 7F0B7A80 35CEFFFF */ ori $t6, (0x7FFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0EC5B4 7F0B7A84 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EC5B8 7F0B7A88 AFBE0040 */ sw $fp, 0x40($sp) +/* 0EC5BC 7F0B7A8C AFB7003C */ sw $s7, 0x3c($sp) +/* 0EC5C0 7F0B7A90 AFB60038 */ sw $s6, 0x38($sp) +/* 0EC5C4 7F0B7A94 AFB50034 */ sw $s5, 0x34($sp) +/* 0EC5C8 7F0B7A98 AFB40030 */ sw $s4, 0x30($sp) +/* 0EC5CC 7F0B7A9C AFB3002C */ sw $s3, 0x2c($sp) +/* 0EC5D0 7F0B7AA0 AFB20028 */ sw $s2, 0x28($sp) +/* 0EC5D4 7F0B7AA4 AFB10024 */ sw $s1, 0x24($sp) +/* 0EC5D8 7F0B7AA8 AFB00020 */ sw $s0, 0x20($sp) +/* 0EC5DC 7F0B7AAC AFA600E0 */ sw $a2, 0xe0($sp) +/* 0EC5E0 7F0B7AB0 AFA0006C */ sw $zero, 0x6c($sp) +/* 0EC5E4 7F0B7AB4 AFAE0074 */ sw $t6, 0x74($sp) +/* 0EC5E8 7F0B7AB8 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EC5EC 7F0B7ABC C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at) +/* 0EC5F0 7F0B7AC0 C4840000 */ lwc1 $f4, ($a0) +/* 0EC5F4 7F0B7AC4 0006C080 */ sll $t8, $a2, 2 +/* 0EC5F8 7F0B7AC8 0306C021 */ addu $t8, $t8, $a2 +/* 0EC5FC 7F0B7ACC 46002182 */ mul.s $f6, $f4, $f0 +/* 0EC600 7F0B7AD0 3C198004 */ lui $t9, %hi(array_room_info) +/* 0EC604 7F0B7AD4 27391414 */ addiu $t9, %lo(array_room_info) # addiu $t9, $t9, 0x1414 +/* 0EC608 7F0B7AD8 0018C100 */ sll $t8, $t8, 4 +/* 0EC60C 7F0B7ADC 03194021 */ addu $t0, $t8, $t9 +/* 0EC610 7F0B7AE0 8D02002C */ lw $v0, 0x2c($t0) +/* 0EC614 7F0B7AE4 00E08825 */ move $s1, $a3 +/* 0EC618 7F0B7AE8 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0EC61C 7F0B7AEC C4880004 */ lwc1 $f8, 4($a0) +/* 0EC620 7F0B7AF0 46004282 */ mul.s $f10, $f8, $f0 +/* 0EC624 7F0B7AF4 E7AA00C8 */ swc1 $f10, 0xc8($sp) +/* 0EC628 7F0B7AF8 C4900008 */ lwc1 $f16, 8($a0) +/* 0EC62C 7F0B7AFC 46008482 */ mul.s $f18, $f16, $f0 +/* 0EC630 7F0B7B00 E7B200CC */ swc1 $f18, 0xcc($sp) +/* 0EC634 7F0B7B04 C4A40000 */ lwc1 $f4, ($a1) +/* 0EC638 7F0B7B08 46002182 */ mul.s $f6, $f4, $f0 +/* 0EC63C 7F0B7B0C E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0EC640 7F0B7B10 C4A80004 */ lwc1 $f8, 4($a1) +/* 0EC644 7F0B7B14 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0EC648 7F0B7B18 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0EC64C 7F0B7B1C 46004282 */ mul.s $f10, $f8, $f0 +/* 0EC650 7F0B7B20 46062201 */ sub.s $f8, $f4, $f6 +/* 0EC654 7F0B7B24 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0EC658 7F0B7B28 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0EC65C 7F0B7B2C C4B00008 */ lwc1 $f16, 8($a1) +/* 0EC660 7F0B7B30 C7AA00BC */ lwc1 $f10, 0xbc($sp) +/* 0EC664 7F0B7B34 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0EC668 7F0B7B38 46008482 */ mul.s $f18, $f16, $f0 +/* 0EC66C 7F0B7B3C C7B000C8 */ lwc1 $f16, 0xc8($sp) +/* 0EC670 7F0B7B40 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0EC674 7F0B7B44 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0EC678 7F0B7B48 46105481 */ sub.s $f18, $f10, $f16 +/* 0EC67C 7F0B7B4C 46062201 */ sub.s $f8, $f4, $f6 +/* 0EC680 7F0B7B50 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0EC684 7F0B7B54 14400003 */ bnez $v0, .L7F0B7B64 +/* 0EC688 7F0B7B58 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 0EC68C 7F0B7B5C 10000081 */ b .L7F0B7D64 +/* 0EC690 7F0B7B60 00001025 */ move $v0, $zero +.L7F0B7B64: +/* 0EC694 7F0B7B64 85030030 */ lh $v1, 0x30($t0) +/* 0EC698 7F0B7B68 0000A025 */ move $s4, $zero +/* 0EC69C 7F0B7B6C 00409825 */ move $s3, $v0 +/* 0EC6A0 7F0B7B70 1860005A */ blez $v1, .L7F0B7CDC +/* 0EC6A4 7F0B7B74 24550004 */ addiu $s5, $v0, 4 +/* 0EC6A8 7F0B7B78 24560010 */ addiu $s6, $v0, 0x10 +/* 0EC6AC 7F0B7B7C A7A300D2 */ sh $v1, 0xd2($sp) +/* 0EC6B0 7F0B7B80 AFA80058 */ sw $t0, 0x58($sp) +/* 0EC6B4 7F0B7B84 27BE00AC */ addiu $fp, $sp, 0xac +/* 0EC6B8 7F0B7B88 27B700C4 */ addiu $s7, $sp, 0xc4 +.L7F0B7B8C: +/* 0EC6BC 7F0B7B8C 02E02025 */ move $a0, $s7 +/* 0EC6C0 7F0B7B90 03C02825 */ move $a1, $fp +/* 0EC6C4 7F0B7B94 02A03025 */ move $a2, $s5 +/* 0EC6C8 7F0B7B98 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EC6CC 7F0B7B9C 02C03825 */ move $a3, $s6 +/* 0EC6D0 7F0B7BA0 10400047 */ beqz $v0, .L7F0B7CC0 +/* 0EC6D4 7F0B7BA4 02E02025 */ move $a0, $s7 +/* 0EC6D8 7F0B7BA8 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0EC6DC 7F0B7BAC 27AA007C */ addiu $t2, $sp, 0x7c +/* 0EC6E0 7F0B7BB0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0EC6E4 7F0B7BB4 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 0EC6E8 7F0B7BB8 03C03025 */ move $a2, $fp +/* 0EC6EC 7F0B7BBC 02603825 */ move $a3, $s3 +/* 0EC6F0 7F0B7BC0 0FC2DC04 */ jal sub_GAME_7F0B7010 +/* 0EC6F4 7F0B7BC4 AFA90010 */ sw $t1, 0x10($sp) +/* 0EC6F8 7F0B7BC8 1040003D */ beqz $v0, .L7F0B7CC0 +/* 0EC6FC 7F0B7BCC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0EC700 7F0B7BD0 C7B000C4 */ lwc1 $f16, 0xc4($sp) +/* 0EC704 7F0B7BD4 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0EC708 7F0B7BD8 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0EC70C 7F0B7BDC 46105481 */ sub.s $f18, $f10, $f16 +/* 0EC710 7F0B7BE0 24090001 */ li $t1, 1 +/* 0EC714 7F0B7BE4 AFA9006C */ sw $t1, 0x6c($sp) +/* 0EC718 7F0B7BE8 46083281 */ sub.s $f10, $f6, $f8 +/* 0EC71C 7F0B7BEC 87A400A6 */ lh $a0, 0xa6($sp) +/* 0EC720 7F0B7BF0 4600910D */ trunc.w.s $f4, $f18 +/* 0EC724 7F0B7BF4 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0EC728 7F0B7BF8 4600540D */ trunc.w.s $f16, $f10 +/* 0EC72C 7F0B7BFC 44022000 */ mfc1 $v0, $f4 +/* 0EC730 7F0B7C00 C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 0EC734 7F0B7C04 00420019 */ multu $v0, $v0 +/* 0EC738 7F0B7C08 44038000 */ mfc1 $v1, $f16 +/* 0EC73C 7F0B7C0C 46049181 */ sub.s $f6, $f18, $f4 +/* 0EC740 7F0B7C10 4600320D */ trunc.w.s $f8, $f6 +/* 0EC744 7F0B7C14 00007012 */ mflo $t6 +/* 0EC748 7F0B7C18 44054000 */ mfc1 $a1, $f8 +/* 0EC74C 7F0B7C1C 00000000 */ nop +/* 0EC750 7F0B7C20 00630019 */ multu $v1, $v1 +/* 0EC754 7F0B7C24 00007812 */ mflo $t7 +/* 0EC758 7F0B7C28 01CFC021 */ addu $t8, $t6, $t7 +/* 0EC75C 7F0B7C2C 00000000 */ nop +/* 0EC760 7F0B7C30 00A50019 */ multu $a1, $a1 +/* 0EC764 7F0B7C34 0000C812 */ mflo $t9 +/* 0EC768 7F0B7C38 03199021 */ addu $s2, $t8, $t9 +/* 0EC76C 7F0B7C3C 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EC770 7F0B7C40 02408025 */ move $s0, $s2 +/* 0EC774 7F0B7C44 10400002 */ beqz $v0, .L7F0B7C50 +/* 0EC778 7F0B7C48 8FAA0074 */ lw $t2, 0x74($sp) +/* 0EC77C 7F0B7C4C 2650FFFC */ addiu $s0, $s2, -4 +.L7F0B7C50: +/* 0EC780 7F0B7C50 020A082A */ slt $at, $s0, $t2 +/* 0EC784 7F0B7C54 5020001B */ beql $at, $zero, .L7F0B7CC4 +/* 0EC788 7F0B7C58 87B900D2 */ lh $t9, 0xd2($sp) +/* 0EC78C 7F0B7C5C C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0EC790 7F0B7C60 AFB00074 */ sw $s0, 0x74($sp) +/* 0EC794 7F0B7C64 E62A0000 */ swc1 $f10, ($s1) +/* 0EC798 7F0B7C68 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 0EC79C 7F0B7C6C E6300004 */ swc1 $f16, 4($s1) +/* 0EC7A0 7F0B7C70 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0EC7A4 7F0B7C74 E6320008 */ swc1 $f18, 8($s1) +/* 0EC7A8 7F0B7C78 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0EC7AC 7F0B7C7C E624000C */ swc1 $f4, 0xc($s1) +/* 0EC7B0 7F0B7C80 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0EC7B4 7F0B7C84 E6260010 */ swc1 $f6, 0x10($s1) +/* 0EC7B8 7F0B7C88 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0EC7BC 7F0B7C8C E6280014 */ swc1 $f8, 0x14($s1) +/* 0EC7C0 7F0B7C90 8FAB0094 */ lw $t3, 0x94($sp) +/* 0EC7C4 7F0B7C94 AE2B0018 */ sw $t3, 0x18($s1) +/* 0EC7C8 7F0B7C98 8FAC0098 */ lw $t4, 0x98($sp) +/* 0EC7CC 7F0B7C9C AE2C001C */ sw $t4, 0x1c($s1) +/* 0EC7D0 7F0B7CA0 8FAD009C */ lw $t5, 0x9c($sp) +/* 0EC7D4 7F0B7CA4 AE2D0020 */ sw $t5, 0x20($s1) +/* 0EC7D8 7F0B7CA8 87AE00A6 */ lh $t6, 0xa6($sp) +/* 0EC7DC 7F0B7CAC A62E002A */ sh $t6, 0x2a($s1) +/* 0EC7E0 7F0B7CB0 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 0EC7E4 7F0B7CB4 AE2F0024 */ sw $t7, 0x24($s1) +/* 0EC7E8 7F0B7CB8 87B800A4 */ lh $t8, 0xa4($sp) +/* 0EC7EC 7F0B7CBC A6380028 */ sh $t8, 0x28($s1) +.L7F0B7CC0: +/* 0EC7F0 7F0B7CC0 87B900D2 */ lh $t9, 0xd2($sp) +.L7F0B7CC4: +/* 0EC7F4 7F0B7CC4 26940001 */ addiu $s4, $s4, 1 +/* 0EC7F8 7F0B7CC8 2673001C */ addiu $s3, $s3, 0x1c +/* 0EC7FC 7F0B7CCC 26B5001C */ addiu $s5, $s5, 0x1c +/* 0EC800 7F0B7CD0 1699FFAE */ bne $s4, $t9, .L7F0B7B8C +/* 0EC804 7F0B7CD4 26D6001C */ addiu $s6, $s6, 0x1c +/* 0EC808 7F0B7CD8 8FA80058 */ lw $t0, 0x58($sp) +.L7F0B7CDC: +/* 0EC80C 7F0B7CDC 8FA9006C */ lw $t1, 0x6c($sp) +/* 0EC810 7F0B7CE0 51200020 */ beql $t1, $zero, .L7F0B7D64 +/* 0EC814 7F0B7CE4 8FA2006C */ lw $v0, 0x6c($sp) +/* 0EC818 7F0B7CE8 8E220024 */ lw $v0, 0x24($s1) +/* 0EC81C 7F0B7CEC 240400F5 */ li $a0, 245 +/* 0EC820 7F0B7CF0 904A0000 */ lbu $t2, ($v0) +/* 0EC824 7F0B7CF4 508A000D */ beql $a0, $t2, .L7F0B7D2C +/* 0EC828 7F0B7CF8 8D0C0008 */ lw $t4, 8($t0) +/* 0EC82C 7F0B7CFC 8D030008 */ lw $v1, 8($t0) +/* 0EC830 7F0B7D00 0062082B */ sltu $at, $v1, $v0 +/* 0EC834 7F0B7D04 50200009 */ beql $at, $zero, .L7F0B7D2C +/* 0EC838 7F0B7D08 8D0C0008 */ lw $t4, 8($t0) +/* 0EC83C 7F0B7D0C 904BFFF8 */ lbu $t3, -8($v0) +.L7F0B7D10: +/* 0EC840 7F0B7D10 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EC844 7F0B7D14 0062082B */ sltu $at, $v1, $v0 +/* 0EC848 7F0B7D18 508B0004 */ beql $a0, $t3, .L7F0B7D2C +/* 0EC84C 7F0B7D1C 8D0C0008 */ lw $t4, 8($t0) +/* 0EC850 7F0B7D20 5420FFFB */ bnezl $at, .L7F0B7D10 +/* 0EC854 7F0B7D24 904BFFF8 */ lbu $t3, -8($v0) +/* 0EC858 7F0B7D28 8D0C0008 */ lw $t4, 8($t0) +.L7F0B7D2C: +/* 0EC85C 7F0B7D2C 544C0006 */ bnel $v0, $t4, .L7F0B7D48 +/* 0EC860 7F0B7D30 904D0001 */ lbu $t5, 1($v0) +/* 0EC864 7F0B7D34 2402FFFF */ li $v0, -1 +/* 0EC868 7F0B7D38 A622002C */ sh $v0, 0x2c($s1) +/* 0EC86C 7F0B7D3C 10000008 */ b .L7F0B7D60 +/* 0EC870 7F0B7D40 A622002E */ sh $v0, 0x2e($s1) +/* 0EC874 7F0B7D44 904D0001 */ lbu $t5, 1($v0) +.L7F0B7D48: +/* 0EC878 7F0B7D48 000D7142 */ srl $t6, $t5, 5 +/* 0EC87C 7F0B7D4C A62E002C */ sh $t6, 0x2c($s1) +/* 0EC880 7F0B7D50 8C4F0000 */ lw $t7, ($v0) +/* 0EC884 7F0B7D54 000FC2C0 */ sll $t8, $t7, 0xb +/* 0EC888 7F0B7D58 0018CF82 */ srl $t9, $t8, 0x1e +/* 0EC88C 7F0B7D5C A639002E */ sh $t9, 0x2e($s1) +.L7F0B7D60: +/* 0EC890 7F0B7D60 8FA2006C */ lw $v0, 0x6c($sp) +.L7F0B7D64: +/* 0EC894 7F0B7D64 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EC898 7F0B7D68 8FB00020 */ lw $s0, 0x20($sp) +/* 0EC89C 7F0B7D6C 8FB10024 */ lw $s1, 0x24($sp) +/* 0EC8A0 7F0B7D70 8FB20028 */ lw $s2, 0x28($sp) +/* 0EC8A4 7F0B7D74 8FB3002C */ lw $s3, 0x2c($sp) +/* 0EC8A8 7F0B7D78 8FB40030 */ lw $s4, 0x30($sp) +/* 0EC8AC 7F0B7D7C 8FB50034 */ lw $s5, 0x34($sp) +/* 0EC8B0 7F0B7D80 8FB60038 */ lw $s6, 0x38($sp) +/* 0EC8B4 7F0B7D84 8FB7003C */ lw $s7, 0x3c($sp) +/* 0EC8B8 7F0B7D88 8FBE0040 */ lw $fp, 0x40($sp) +/* 0EC8BC 7F0B7D8C 03E00008 */ jr $ra +/* 0EC8C0 7F0B7D90 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + + +void sub_GAME_7F0B7D94(void) { + D_800448A0 = 0; + D_800448A4 = 0; +} + + + + + + +#ifdef NONMATCHING +s8 sub_GAME_7F0B7DA8(s32 arg0) { + void *temp_v0; + s8 temp_t8; + s8 phi_a1; + + // Node 0 + temp_v0 = ((arg0 * 0x50) + &array_room_info); + phi_a1 = temp_v0->unk3; + if (temp_v0->unk3 < 0xff) + { + // Node 1 + temp_t8 = (temp_v0->unk3 + 1); + temp_v0->unk3 = temp_t8; + phi_a1 = (temp_t8 & 0xff); + } + // Node 2 + return phi_a1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7DA8 +/* 0EC8D8 7F0B7DA8 00047080 */ sll $t6, $a0, 2 +/* 0EC8DC 7F0B7DAC 01C47021 */ addu $t6, $t6, $a0 +/* 0EC8E0 7F0B7DB0 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EC8E4 7F0B7DB4 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EC8E8 7F0B7DB8 000E7100 */ sll $t6, $t6, 4 +/* 0EC8EC 7F0B7DBC 01CF1021 */ addu $v0, $t6, $t7 +/* 0EC8F0 7F0B7DC0 90430003 */ lbu $v1, 3($v0) +/* 0EC8F4 7F0B7DC4 286100FF */ slti $at, $v1, 0xff +/* 0EC8F8 7F0B7DC8 10200004 */ beqz $at, .L7F0B7DDC +/* 0EC8FC 7F0B7DCC 00602825 */ move $a1, $v1 +/* 0EC900 7F0B7DD0 24780001 */ addiu $t8, $v1, 1 +/* 0EC904 7F0B7DD4 A0580003 */ sb $t8, 3($v0) +/* 0EC908 7F0B7DD8 330500FF */ andi $a1, $t8, 0xff +.L7F0B7DDC: +/* 0EC90C 7F0B7DDC 03E00008 */ jr $ra +/* 0EC910 7F0B7DE0 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7DE4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, void *arg4) { + void *sp1C; + void *temp_v1; + void *temp_v0; + s32 temp_a0; + s32 phi_a0; + + // Node 0 + temp_v1 = ((D_800448A0 << 5) + &dword_CODE_bss_8007C100); + if ((arg3 < 2) || (sub_GAME_7F0B7DA8(((temp_v0->unk4 ^ temp_v0->unk5) ^ arg1)) < 9)) + { + // Node 2 + *temp_v1 = arg0; + temp_v1->unk4 = arg1; + temp_v1->unkC = (s32) arg3; + temp_v1->unk8 = arg2; + temp_v1->unk10 = (f32) *arg4; + temp_v1->unk14 = (f32) arg4->unk4; + temp_v1->unk18 = (f32) arg4->unk8; + temp_v1->unk1C = (f32) arg4->unkC; + temp_a0 = (*&D_800448A0 + 1); + *&D_800448A0 = temp_a0; + phi_a0 = temp_a0; + if (temp_a0 == 0x1f4) + { + // Node 3 + *&D_800448A0 = 0; + phi_a0 = 0; + } + // Node 4 + if (D_800448A4 == phi_a0) + { + // Node 5 + *&D_800448A0 = (s32) (phi_a0 + -1); + } + } + else + { + + } + // Node 6 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7DE4 +/* 0EC914 7F0B7DE4 3C088004 */ lui $t0, %hi(D_800448A0) +/* 0EC918 7F0B7DE8 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0 +/* 0EC91C 7F0B7DEC 8D0E0000 */ lw $t6, ($t0) +/* 0EC920 7F0B7DF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EC924 7F0B7DF4 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C100) +/* 0EC928 7F0B7DF8 2718C100 */ addiu $t8, %lo(dword_CODE_bss_8007C100) # addiu $t8, $t8, -0x3f00 +/* 0EC92C 7F0B7DFC 28E10002 */ slti $at, $a3, 2 +/* 0EC930 7F0B7E00 000E7940 */ sll $t7, $t6, 5 +/* 0EC934 7F0B7E04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EC938 7F0B7E08 AFA40020 */ sw $a0, 0x20($sp) +/* 0EC93C 7F0B7E0C AFA50024 */ sw $a1, 0x24($sp) +/* 0EC940 7F0B7E10 AFA60028 */ sw $a2, 0x28($sp) +/* 0EC944 7F0B7E14 14200012 */ bnez $at, .L7F0B7E60 +/* 0EC948 7F0B7E18 01F81821 */ addu $v1, $t7, $t8 +/* 0EC94C 7F0B7E1C 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0EC950 7F0B7E20 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0EC954 7F0B7E24 000650C0 */ sll $t2, $a2, 3 +/* 0EC958 7F0B7E28 032A1021 */ addu $v0, $t9, $t2 +/* 0EC95C 7F0B7E2C 904B0004 */ lbu $t3, 4($v0) +/* 0EC960 7F0B7E30 904C0005 */ lbu $t4, 5($v0) +/* 0EC964 7F0B7E34 AFA7002C */ sw $a3, 0x2c($sp) +/* 0EC968 7F0B7E38 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EC96C 7F0B7E3C 016C6826 */ xor $t5, $t3, $t4 +/* 0EC970 7F0B7E40 0FC2DF6A */ jal sub_GAME_7F0B7DA8 +/* 0EC974 7F0B7E44 01A52026 */ xor $a0, $t5, $a1 +/* 0EC978 7F0B7E48 3C088004 */ lui $t0, %hi(D_800448A0) +/* 0EC97C 7F0B7E4C 28410009 */ slti $at, $v0, 9 +/* 0EC980 7F0B7E50 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0 +/* 0EC984 7F0B7E54 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EC988 7F0B7E58 1020001E */ beqz $at, .L7F0B7ED4 +/* 0EC98C 7F0B7E5C 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0B7E60: +/* 0EC990 7F0B7E60 8FAF0020 */ lw $t7, 0x20($sp) +/* 0EC994 7F0B7E64 8FA20030 */ lw $v0, 0x30($sp) +/* 0EC998 7F0B7E68 240101F4 */ li $at, 500 +/* 0EC99C 7F0B7E6C AC6F0000 */ sw $t7, ($v1) +/* 0EC9A0 7F0B7E70 8FB80024 */ lw $t8, 0x24($sp) +/* 0EC9A4 7F0B7E74 3C0B8004 */ lui $t3, %hi(D_800448A4) +/* 0EC9A8 7F0B7E78 AC780004 */ sw $t8, 4($v1) +/* 0EC9AC 7F0B7E7C 8FA90028 */ lw $t1, 0x28($sp) +/* 0EC9B0 7F0B7E80 AC67000C */ sw $a3, 0xc($v1) +/* 0EC9B4 7F0B7E84 AC690008 */ sw $t1, 8($v1) +/* 0EC9B8 7F0B7E88 C4440000 */ lwc1 $f4, ($v0) +/* 0EC9BC 7F0B7E8C E4640010 */ swc1 $f4, 0x10($v1) +/* 0EC9C0 7F0B7E90 C4460004 */ lwc1 $f6, 4($v0) +/* 0EC9C4 7F0B7E94 E4660014 */ swc1 $f6, 0x14($v1) +/* 0EC9C8 7F0B7E98 C4480008 */ lwc1 $f8, 8($v0) +/* 0EC9CC 7F0B7E9C E4680018 */ swc1 $f8, 0x18($v1) +/* 0EC9D0 7F0B7EA0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 0EC9D4 7F0B7EA4 E46A001C */ swc1 $f10, 0x1c($v1) +/* 0EC9D8 7F0B7EA8 8D190000 */ lw $t9, ($t0) +/* 0EC9DC 7F0B7EAC 27240001 */ addiu $a0, $t9, 1 +/* 0EC9E0 7F0B7EB0 14810003 */ bne $a0, $at, .L7F0B7EC0 +/* 0EC9E4 7F0B7EB4 AD040000 */ sw $a0, ($t0) +/* 0EC9E8 7F0B7EB8 AD000000 */ sw $zero, ($t0) +/* 0EC9EC 7F0B7EBC 00002025 */ move $a0, $zero +.L7F0B7EC0: +/* 0EC9F0 7F0B7EC0 8D6B48A4 */ lw $t3, %lo(D_800448A4)($t3) +/* 0EC9F4 7F0B7EC4 248CFFFF */ addiu $t4, $a0, -1 +/* 0EC9F8 7F0B7EC8 55640003 */ bnel $t3, $a0, .L7F0B7ED8 +/* 0EC9FC 7F0B7ECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ECA00 7F0B7ED0 AD0C0000 */ sw $t4, ($t0) +.L7F0B7ED4: +/* 0ECA04 7F0B7ED4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B7ED8: +/* 0ECA08 7F0B7ED8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0ECA0C 7F0B7EDC 03E00008 */ jr $ra +/* 0ECA10 7F0B7EE0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7EE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7EE4 +/* 0ECA14 7F0B7EE4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0ECA18 7F0B7EE8 3C038004 */ lui $v1, %hi(D_800448A4) +/* 0ECA1C 7F0B7EEC 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4 +/* 0ECA20 7F0B7EF0 3C188004 */ lui $t8, %hi(D_800448A0) +/* 0ECA24 7F0B7EF4 8F1848A0 */ lw $t8, %lo(D_800448A0)($t8) +/* 0ECA28 7F0B7EF8 8C680000 */ lw $t0, ($v1) +/* 0ECA2C 7F0B7EFC AFBF001C */ sw $ra, 0x1c($sp) +/* 0ECA30 7F0B7F00 AFA40028 */ sw $a0, 0x28($sp) +/* 0ECA34 7F0B7F04 8C8F0000 */ lw $t7, ($a0) +/* 0ECA38 7F0B7F08 0008C940 */ sll $t9, $t0, 5 +/* 0ECA3C 7F0B7F0C 17080003 */ bne $t8, $t0, .L7F0B7F1C +/* 0ECA40 7F0B7F10 AFAF0020 */ sw $t7, 0x20($sp) +/* 0ECA44 7F0B7F14 10000017 */ b .L7F0B7F74 +/* 0ECA48 7F0B7F18 00001025 */ move $v0, $zero +.L7F0B7F1C: +/* 0ECA4C 7F0B7F1C 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007C100) +/* 0ECA50 7F0B7F20 2529C100 */ addiu $t1, %lo(dword_CODE_bss_8007C100) # addiu $t1, $t1, -0x3f00 +/* 0ECA54 7F0B7F24 03291021 */ addu $v0, $t9, $t1 +/* 0ECA58 7F0B7F28 8C450004 */ lw $a1, 4($v0) +/* 0ECA5C 7F0B7F2C 8C460008 */ lw $a2, 8($v0) +/* 0ECA60 7F0B7F30 8C47000C */ lw $a3, 0xc($v0) +/* 0ECA64 7F0B7F34 244A0010 */ addiu $t2, $v0, 0x10 +/* 0ECA68 7F0B7F38 AFAA0010 */ sw $t2, 0x10($sp) +/* 0ECA6C 7F0B7F3C 0FC2DFE1 */ jal sub_GAME_7F0B7F84 +/* 0ECA70 7F0B7F40 8FA40020 */ lw $a0, 0x20($sp) +/* 0ECA74 7F0B7F44 3C038004 */ lui $v1, %hi(D_800448A4) +/* 0ECA78 7F0B7F48 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4 +/* 0ECA7C 7F0B7F4C 8C6B0000 */ lw $t3, ($v1) +/* 0ECA80 7F0B7F50 240101F4 */ li $at, 500 +/* 0ECA84 7F0B7F54 00402025 */ move $a0, $v0 +/* 0ECA88 7F0B7F58 256C0001 */ addiu $t4, $t3, 1 +/* 0ECA8C 7F0B7F5C 15810002 */ bne $t4, $at, .L7F0B7F68 +/* 0ECA90 7F0B7F60 AC6C0000 */ sw $t4, ($v1) +/* 0ECA94 7F0B7F64 AC600000 */ sw $zero, ($v1) +.L7F0B7F68: +/* 0ECA98 7F0B7F68 8FAE0028 */ lw $t6, 0x28($sp) +/* 0ECA9C 7F0B7F6C 24020001 */ li $v0, 1 +/* 0ECAA0 7F0B7F70 ADC40000 */ sw $a0, ($t6) +.L7F0B7F74: +/* 0ECAA4 7F0B7F74 8FBF001C */ lw $ra, 0x1c($sp) +/* 0ECAA8 7F0B7F78 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0ECAAC 7F0B7F7C 03E00008 */ jr $ra +/* 0ECAB0 7F0B7F80 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7F84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7F84 +/* 0ECAB4 7F0B7F84 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0ECAB8 7F0B7F88 3C028004 */ lui $v0, %hi(D_80044898) +/* 0ECABC 7F0B7F8C 24424898 */ addiu $v0, %lo(D_80044898) # addiu $v0, $v0, 0x4898 +/* 0ECAC0 7F0B7F90 8C4E0000 */ lw $t6, ($v0) +/* 0ECAC4 7F0B7F94 AFB40030 */ sw $s4, 0x30($sp) +/* 0ECAC8 7F0B7F98 AFB3002C */ sw $s3, 0x2c($sp) +/* 0ECACC 7F0B7F9C AFB20028 */ sw $s2, 0x28($sp) +/* 0ECAD0 7F0B7FA0 28E10065 */ slti $at, $a3, 0x65 +/* 0ECAD4 7F0B7FA4 25CF0001 */ addiu $t7, $t6, 1 +/* 0ECAD8 7F0B7FA8 00809025 */ move $s2, $a0 +/* 0ECADC 7F0B7FAC 00E09825 */ move $s3, $a3 +/* 0ECAE0 7F0B7FB0 00C0A025 */ move $s4, $a2 +/* 0ECAE4 7F0B7FB4 AFBF0034 */ sw $ra, 0x34($sp) +/* 0ECAE8 7F0B7FB8 AFB10024 */ sw $s1, 0x24($sp) +/* 0ECAEC 7F0B7FBC AFB00020 */ sw $s0, 0x20($sp) +/* 0ECAF0 7F0B7FC0 AFA50084 */ sw $a1, 0x84($sp) +/* 0ECAF4 7F0B7FC4 14200003 */ bnez $at, .L7F0B7FD4 +/* 0ECAF8 7F0B7FC8 AC4F0000 */ sw $t7, ($v0) +/* 0ECAFC 7F0B7FCC 100000E1 */ b .L7F0B8354 +/* 0ECB00 7F0B7FD0 00801025 */ move $v0, $a0 +.L7F0B7FD4: +/* 0ECB04 7F0B7FD4 3C188004 */ lui $t8, %hi(D_8004489C) +/* 0ECB08 7F0B7FD8 8F18489C */ lw $t8, %lo(D_8004489C)($t8) +/* 0ECB0C 7F0B7FDC 0313082A */ slt $at, $t8, $s3 +/* 0ECB10 7F0B7FE0 50200004 */ beql $at, $zero, .L7F0B7FF4 +/* 0ECB14 7F0B7FE4 2A610010 */ slti $at, $s3, 0x10 +/* 0ECB18 7F0B7FE8 100000DA */ b .L7F0B8354 +/* 0ECB1C 7F0B7FEC 02401025 */ move $v0, $s2 +/* 0ECB20 7F0B7FF0 2A610010 */ slti $at, $s3, 0x10 +.L7F0B7FF4: +/* 0ECB24 7F0B7FF4 14200003 */ bnez $at, .L7F0B8004 +/* 0ECB28 7F0B7FF8 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ECB2C 7F0B7FFC 100000D5 */ b .L7F0B8354 +/* 0ECB30 7F0B8000 02401025 */ move $v0, $s2 +.L7F0B8004: +/* 0ECB34 7F0B8004 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ECB38 7F0B8008 001410C0 */ sll $v0, $s4, 3 +/* 0ECB3C 7F0B800C 3C0B8004 */ lui $t3, %hi(D_800442FC) +/* 0ECB40 7F0B8010 03224021 */ addu $t0, $t9, $v0 +/* 0ECB44 7F0B8014 91090006 */ lbu $t1, 6($t0) +/* 0ECB48 7F0B8018 256B42FC */ addiu $t3, %lo(D_800442FC) # addiu $t3, $t3, 0x42fc +/* 0ECB4C 7F0B801C 028B1821 */ addu $v1, $s4, $t3 +/* 0ECB50 7F0B8020 312A0001 */ andi $t2, $t1, 1 +/* 0ECB54 7F0B8024 51400004 */ beql $t2, $zero, .L7F0B8038 +/* 0ECB58 7F0B8028 AFA20044 */ sw $v0, 0x44($sp) +/* 0ECB5C 7F0B802C 100000C9 */ b .L7F0B8354 +/* 0ECB60 7F0B8030 02401025 */ move $v0, $s2 +/* 0ECB64 7F0B8034 AFA20044 */ sw $v0, 0x44($sp) +.L7F0B8038: +/* 0ECB68 7F0B8038 0FC227F5 */ jal get_BONDdata_position +/* 0ECB6C 7F0B803C AFA3003C */ sw $v1, 0x3c($sp) +/* 0ECB70 7F0B8040 00408025 */ move $s0, $v0 +/* 0ECB74 7F0B8044 02802025 */ move $a0, $s4 +/* 0ECB78 7F0B8048 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0ECB7C 7F0B804C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0ECB80 7F0B8050 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0ECB84 7F0B8054 C6060000 */ lwc1 $f6, ($s0) +/* 0ECB88 7F0B8058 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0ECB8C 7F0B805C C6100004 */ lwc1 $f16, 4($s0) +/* 0ECB90 7F0B8060 46062202 */ mul.s $f8, $f4, $f6 +/* 0ECB94 7F0B8064 C6060008 */ lwc1 $f6, 8($s0) +/* 0ECB98 7F0B8068 3C018004 */ lui $at, %hi(room_data_float1) +/* 0ECB9C 7F0B806C 46105482 */ mul.s $f18, $f10, $f16 +/* 0ECBA0 7F0B8070 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0ECBA4 7F0B8074 02802025 */ move $a0, $s4 +/* 0ECBA8 7F0B8078 460A3402 */ mul.s $f16, $f6, $f10 +/* 0ECBAC 7F0B807C 46124100 */ add.s $f4, $f8, $f18 +/* 0ECBB0 7F0B8080 C43213F4 */ lwc1 $f18, %lo(room_data_float1)($at) +/* 0ECBB4 7F0B8084 46048200 */ add.s $f8, $f16, $f4 +/* 0ECBB8 7F0B8088 46124082 */ mul.s $f2, $f8, $f18 +/* 0ECBBC 7F0B808C 0FC2E664 */ jal sub_GAME_7F0B9990 +/* 0ECBC0 7F0B8090 E7A20050 */ swc1 $f2, 0x50($sp) +/* 0ECBC4 7F0B8094 3C0C8008 */ lui $t4, %hi(ptr_bgdata_portals) +/* 0ECBC8 7F0B8098 8D8CFF80 */ lw $t4, %lo(ptr_bgdata_portals)($t4) +/* 0ECBCC 7F0B809C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0ECBD0 7F0B80A0 8FAE0084 */ lw $t6, 0x84($sp) +/* 0ECBD4 7F0B80A4 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0ECBD8 7F0B80A8 018D1021 */ addu $v0, $t4, $t5 +/* 0ECBDC 7F0B80AC 90430004 */ lbu $v1, 4($v0) +/* 0ECBE0 7F0B80B0 55C3000B */ bnel $t6, $v1, .L7F0B80E0 +/* 0ECBE4 7F0B80B4 46001100 */ add.s $f4, $f2, $f0 +/* 0ECBE8 7F0B80B8 46001181 */ sub.s $f6, $f2, $f0 +/* 0ECBEC 7F0B80BC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0ECBF0 7F0B80C0 90510005 */ lbu $s1, 5($v0) +/* 0ECBF4 7F0B80C4 4606503E */ c.le.s $f10, $f6 +/* 0ECBF8 7F0B80C8 00000000 */ nop +/* 0ECBFC 7F0B80CC 4502000D */ bc1fl .L7F0B8104 +/* 0ECC00 7F0B80D0 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0ECC04 7F0B80D4 1000009F */ b .L7F0B8354 +/* 0ECC08 7F0B80D8 02401025 */ move $v0, $s2 +/* 0ECC0C 7F0B80DC 46001100 */ add.s $f4, $f2, $f0 +.L7F0B80E0: +/* 0ECC10 7F0B80E0 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0ECC14 7F0B80E4 00608825 */ move $s1, $v1 +/* 0ECC18 7F0B80E8 4610203E */ c.le.s $f4, $f16 +/* 0ECC1C 7F0B80EC 00000000 */ nop +/* 0ECC20 7F0B80F0 45020004 */ bc1fl .L7F0B8104 +/* 0ECC24 7F0B80F4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0ECC28 7F0B80F8 10000096 */ b .L7F0B8354 +/* 0ECC2C 7F0B80FC 02401025 */ move $v0, $s2 +/* 0ECC30 7F0B8100 C7A80060 */ lwc1 $f8, 0x60($sp) +.L7F0B8104: +/* 0ECC34 7F0B8104 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0ECC38 7F0B8108 46004481 */ sub.s $f18, $f8, $f0 +/* 0ECC3C 7F0B810C 4602903C */ c.lt.s $f18, $f2 +/* 0ECC40 7F0B8110 00000000 */ nop +/* 0ECC44 7F0B8114 45020012 */ bc1fl .L7F0B8160 +/* 0ECC48 7F0B8118 904F0006 */ lbu $t7, 6($v0) +/* 0ECC4C 7F0B811C 46003280 */ add.s $f10, $f6, $f0 +/* 0ECC50 7F0B8120 460A103C */ c.lt.s $f2, $f10 +/* 0ECC54 7F0B8124 00000000 */ nop +/* 0ECC58 7F0B8128 4502000D */ bc1fl .L7F0B8160 +/* 0ECC5C 7F0B812C 904F0006 */ lbu $t7, 6($v0) +/* 0ECC60 7F0B8130 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ECC64 7F0B8134 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ECC68 7F0B8138 C4501118 */ lwc1 $f16, 0x1118($v0) +/* 0ECC6C 7F0B813C E7B00070 */ swc1 $f16, 0x70($sp) +/* 0ECC70 7F0B8140 C444111C */ lwc1 $f4, 0x111c($v0) +/* 0ECC74 7F0B8144 E7A40074 */ swc1 $f4, 0x74($sp) +/* 0ECC78 7F0B8148 C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ECC7C 7F0B814C E7A80078 */ swc1 $f8, 0x78($sp) +/* 0ECC80 7F0B8150 C4521124 */ lwc1 $f18, 0x1124($v0) +/* 0ECC84 7F0B8154 10000042 */ b .L7F0B8260 +/* 0ECC88 7F0B8158 E7B2007C */ swc1 $f18, 0x7c($sp) +/* 0ECC8C 7F0B815C 904F0006 */ lbu $t7, 6($v0) +.L7F0B8160: +/* 0ECC90 7F0B8160 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECC94 7F0B8164 02802025 */ move $a0, $s4 +/* 0ECC98 7F0B8168 31F80002 */ andi $t8, $t7, 2 +/* 0ECC9C 7F0B816C 13000021 */ beqz $t8, .L7F0B81F4 +/* 0ECCA0 7F0B8170 00000000 */ nop +/* 0ECCA4 7F0B8174 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ECCA8 7F0B8178 02802025 */ move $a0, $s4 +/* 0ECCAC 7F0B817C 14400003 */ bnez $v0, .L7F0B818C +/* 0ECCB0 7F0B8180 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ECCB4 7F0B8184 10000073 */ b .L7F0B8354 +/* 0ECCB8 7F0B8188 02401025 */ move $v0, $s2 +.L7F0B818C: +/* 0ECCBC 7F0B818C 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ECCC0 7F0B8190 8FA80044 */ lw $t0, 0x44($sp) +/* 0ECCC4 7F0B8194 8FAC0084 */ lw $t4, 0x84($sp) +/* 0ECCC8 7F0B8198 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECCCC 7F0B819C 03281021 */ addu $v0, $t9, $t0 +/* 0ECCD0 7F0B81A0 90490005 */ lbu $t1, 5($v0) +/* 0ECCD4 7F0B81A4 904A0004 */ lbu $t2, 4($v0) +/* 0ECCD8 7F0B81A8 012A5826 */ xor $t3, $t1, $t2 +/* 0ECCDC 7F0B81AC 016C8826 */ xor $s1, $t3, $t4 +/* 0ECCE0 7F0B81B0 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ECCE4 7F0B81B4 02202025 */ move $a0, $s1 +/* 0ECCE8 7F0B81B8 14400003 */ bnez $v0, .L7F0B81C8 +/* 0ECCEC 7F0B81BC 00000000 */ nop +/* 0ECCF0 7F0B81C0 10000064 */ b .L7F0B8354 +/* 0ECCF4 7F0B81C4 02401025 */ move $v0, $s2 +.L7F0B81C8: +/* 0ECCF8 7F0B81C8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ECCFC 7F0B81CC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ECD00 7F0B81D0 C4461118 */ lwc1 $f6, 0x1118($v0) +/* 0ECD04 7F0B81D4 E7A60070 */ swc1 $f6, 0x70($sp) +/* 0ECD08 7F0B81D8 C44A111C */ lwc1 $f10, 0x111c($v0) +/* 0ECD0C 7F0B81DC E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0ECD10 7F0B81E0 C4501120 */ lwc1 $f16, 0x1120($v0) +/* 0ECD14 7F0B81E4 E7B00078 */ swc1 $f16, 0x78($sp) +/* 0ECD18 7F0B81E8 C4441124 */ lwc1 $f4, 0x1124($v0) +/* 0ECD1C 7F0B81EC 1000000E */ b .L7F0B8228 +/* 0ECD20 7F0B81F0 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F0B81F4: +/* 0ECD24 7F0B81F4 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ECD28 7F0B81F8 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECD2C 7F0B81FC 14400003 */ bnez $v0, .L7F0B820C +/* 0ECD30 7F0B8200 27A40070 */ addiu $a0, $sp, 0x70 +/* 0ECD34 7F0B8204 10000053 */ b .L7F0B8354 +/* 0ECD38 7F0B8208 02401025 */ move $v0, $s2 +.L7F0B820C: +/* 0ECD3C 7F0B820C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ECD40 7F0B8210 8FA50090 */ lw $a1, 0x90($sp) +/* 0ECD44 7F0B8214 3C058008 */ lui $a1, %hi(pPlayer) +/* 0ECD48 7F0B8218 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0ECD4C 7F0B821C 27A40070 */ addiu $a0, $sp, 0x70 +/* 0ECD50 7F0B8220 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ECD54 7F0B8224 24A51118 */ addiu $a1, $a1, 0x1118 +.L7F0B8228: +/* 0ECD58 7F0B8228 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0ECD5C 7F0B822C C7B20078 */ lwc1 $f18, 0x78($sp) +/* 0ECD60 7F0B8230 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0ECD64 7F0B8234 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0ECD68 7F0B8238 4608903E */ c.le.s $f18, $f8 +/* 0ECD6C 7F0B823C 00000000 */ nop +/* 0ECD70 7F0B8240 45010005 */ bc1t .L7F0B8258 +/* 0ECD74 7F0B8244 00000000 */ nop +/* 0ECD78 7F0B8248 4606503E */ c.le.s $f10, $f6 +/* 0ECD7C 7F0B824C 00000000 */ nop +/* 0ECD80 7F0B8250 45020004 */ bc1fl .L7F0B8264 +/* 0ECD84 7F0B8254 8FAD003C */ lw $t5, 0x3c($sp) +.L7F0B8258: +/* 0ECD88 7F0B8258 1000003E */ b .L7F0B8354 +/* 0ECD8C 7F0B825C 02401025 */ move $v0, $s2 +.L7F0B8260: +/* 0ECD90 7F0B8260 8FAD003C */ lw $t5, 0x3c($sp) +.L7F0B8264: +/* 0ECD94 7F0B8264 A1B30000 */ sb $s3, ($t5) +/* 0ECD98 7F0B8268 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0ECD9C 7F0B826C C7B00070 */ lwc1 $f16, 0x70($sp) +/* 0ECDA0 7F0B8270 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0ECDA4 7F0B8274 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0ECDA8 7F0B8278 4604803C */ c.lt.s $f16, $f4 +/* 0ECDAC 7F0B827C 00000000 */ nop +/* 0ECDB0 7F0B8280 45000013 */ bc1f .L7F0B82D0 +/* 0ECDB4 7F0B8284 00000000 */ nop +/* 0ECDB8 7F0B8288 4612403C */ c.lt.s $f8, $f18 +/* 0ECDBC 7F0B828C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0ECDC0 7F0B8290 8FAF0044 */ lw $t7, 0x44($sp) +/* 0ECDC4 7F0B8294 4500000E */ bc1f .L7F0B82D0 +/* 0ECDC8 7F0B8298 00000000 */ nop +/* 0ECDCC 7F0B829C 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0ECDD0 7F0B82A0 02202025 */ move $a0, $s1 +/* 0ECDD4 7F0B82A4 02602825 */ move $a1, $s3 +/* 0ECDD8 7F0B82A8 01CFC021 */ addu $t8, $t6, $t7 +/* 0ECDDC 7F0B82AC 93070006 */ lbu $a3, 6($t8) +/* 0ECDE0 7F0B82B0 27A60070 */ addiu $a2, $sp, 0x70 +/* 0ECDE4 7F0B82B4 30F90002 */ andi $t9, $a3, 2 +/* 0ECDE8 7F0B82B8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ECDEC 7F0B82BC 03203825 */ move $a3, $t9 +/* 0ECDF0 7F0B82C0 10400005 */ beqz $v0, .L7F0B82D8 +/* 0ECDF4 7F0B82C4 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ECDF8 7F0B82C8 10000022 */ b .L7F0B8354 +/* 0ECDFC 7F0B82CC 02401025 */ move $v0, $s2 +.L7F0B82D0: +/* 0ECE00 7F0B82D0 10000020 */ b .L7F0B8354 +/* 0ECE04 7F0B82D4 02401025 */ move $v0, $s2 +.L7F0B82D8: +/* 0ECE08 7F0B82D8 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ECE0C 7F0B82DC 00008025 */ move $s0, $zero +/* 0ECE10 7F0B82E0 00001825 */ move $v1, $zero +/* 0ECE14 7F0B82E4 8C880000 */ lw $t0, ($a0) +/* 0ECE18 7F0B82E8 00801025 */ move $v0, $a0 +/* 0ECE1C 7F0B82EC 51000019 */ beql $t0, $zero, .L7F0B8354 +/* 0ECE20 7F0B82F0 02401025 */ move $v0, $s2 +.L7F0B82F4: +/* 0ECE24 7F0B82F4 52140012 */ beql $s0, $s4, .L7F0B8340 +/* 0ECE28 7F0B82F8 8C4D0008 */ lw $t5, 8($v0) +/* 0ECE2C 7F0B82FC 90490004 */ lbu $t1, 4($v0) +/* 0ECE30 7F0B8300 02402025 */ move $a0, $s2 +/* 0ECE34 7F0B8304 02202825 */ move $a1, $s1 +/* 0ECE38 7F0B8308 12290003 */ beq $s1, $t1, .L7F0B8318 +/* 0ECE3C 7F0B830C 02003025 */ move $a2, $s0 +/* 0ECE40 7F0B8310 904A0005 */ lbu $t2, 5($v0) +/* 0ECE44 7F0B8314 162A0009 */ bne $s1, $t2, .L7F0B833C +.L7F0B8318: +/* 0ECE48 7F0B8318 27AB0070 */ addiu $t3, $sp, 0x70 +/* 0ECE4C 7F0B831C AFAB0010 */ sw $t3, 0x10($sp) +/* 0ECE50 7F0B8320 26670001 */ addiu $a3, $s3, 1 +/* 0ECE54 7F0B8324 0FC2DF79 */ jal sub_GAME_7F0B7DE4 +/* 0ECE58 7F0B8328 AFA30040 */ sw $v1, 0x40($sp) +/* 0ECE5C 7F0B832C 3C0C8008 */ lui $t4, %hi(ptr_bgdata_portals) +/* 0ECE60 7F0B8330 8D8CFF80 */ lw $t4, %lo(ptr_bgdata_portals)($t4) +/* 0ECE64 7F0B8334 8FA30040 */ lw $v1, 0x40($sp) +/* 0ECE68 7F0B8338 01831021 */ addu $v0, $t4, $v1 +.L7F0B833C: +/* 0ECE6C 7F0B833C 8C4D0008 */ lw $t5, 8($v0) +.L7F0B8340: +/* 0ECE70 7F0B8340 26100001 */ addiu $s0, $s0, 1 +/* 0ECE74 7F0B8344 24630008 */ addiu $v1, $v1, 8 +/* 0ECE78 7F0B8348 15A0FFEA */ bnez $t5, .L7F0B82F4 +/* 0ECE7C 7F0B834C 24420008 */ addiu $v0, $v0, 8 +/* 0ECE80 7F0B8350 02401025 */ move $v0, $s2 +.L7F0B8354: +/* 0ECE84 7F0B8354 8FBF0034 */ lw $ra, 0x34($sp) +/* 0ECE88 7F0B8358 8FB00020 */ lw $s0, 0x20($sp) +/* 0ECE8C 7F0B835C 8FB10024 */ lw $s1, 0x24($sp) +/* 0ECE90 7F0B8360 8FB20028 */ lw $s2, 0x28($sp) +/* 0ECE94 7F0B8364 8FB3002C */ lw $s3, 0x2c($sp) +/* 0ECE98 7F0B8368 8FB40030 */ lw $s4, 0x30($sp) +/* 0ECE9C 7F0B836C 03E00008 */ jr $ra +/* 0ECEA0 7F0B8370 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +s32 push_arg_to_table(s32 arg0) { + // Node 0 + *(&D_800448A8 + (D_800448F8 * 4)) = arg0; + D_800448F8 = (s32) ((s32) (D_800448F8 + 1) % 0x14); + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel push_arg_to_table +/* 0ECEA4 7F0B8374 3C058004 */ lui $a1, %hi(D_800448F8) +/* 0ECEA8 7F0B8378 24A548F8 */ addiu $a1, %lo(D_800448F8) # addiu $a1, $a1, 0x48f8 +/* 0ECEAC 7F0B837C 8CA30000 */ lw $v1, ($a1) +/* 0ECEB0 7F0B8380 3C018004 */ lui $at, %hi(D_800448A8) +/* 0ECEB4 7F0B8384 00801025 */ move $v0, $a0 +/* 0ECEB8 7F0B8388 00037080 */ sll $t6, $v1, 2 +/* 0ECEBC 7F0B838C 002E0821 */ addu $at, $at, $t6 +/* 0ECEC0 7F0B8390 AC2448A8 */ sw $a0, %lo(D_800448A8)($at) +/* 0ECEC4 7F0B8394 24010014 */ li $at, 20 +/* 0ECEC8 7F0B8398 246F0001 */ addiu $t7, $v1, 1 +/* 0ECECC 7F0B839C 01E1001A */ div $zero, $t7, $at +/* 0ECED0 7F0B83A0 0000C010 */ mfhi $t8 +/* 0ECED4 7F0B83A4 ACB80000 */ sw $t8, ($a1) +/* 0ECED8 7F0B83A8 03E00008 */ jr $ra +/* 0ECEDC 7F0B83AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void pull_arg_from_stack(void) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_800448F8 + 0x13) % 0x14); + D_800448F8 = temp_hi; + return *(&D_800448A8 + (temp_hi * 4)); +} +#else +GLOBAL_ASM( +.text +glabel pull_arg_from_stack +/* 0ECEE0 7F0B83B0 3C048004 */ lui $a0, %hi(D_800448F8) +/* 0ECEE4 7F0B83B4 248448F8 */ addiu $a0, %lo(D_800448F8) # addiu $a0, $a0, 0x48f8 +/* 0ECEE8 7F0B83B8 8C8E0000 */ lw $t6, ($a0) +/* 0ECEEC 7F0B83BC 24010014 */ li $at, 20 +/* 0ECEF0 7F0B83C0 3C038004 */ lui $v1, %hi(D_800448A8) +/* 0ECEF4 7F0B83C4 25CF0013 */ addiu $t7, $t6, 0x13 +/* 0ECEF8 7F0B83C8 01E1001A */ div $zero, $t7, $at +/* 0ECEFC 7F0B83CC 0000C010 */ mfhi $t8 +/* 0ECF00 7F0B83D0 00184080 */ sll $t0, $t8, 2 +/* 0ECF04 7F0B83D4 00681821 */ addu $v1, $v1, $t0 +/* 0ECF08 7F0B83D8 AC980000 */ sw $t8, ($a0) +/* 0ECF0C 7F0B83DC 03E00008 */ jr $ra +/* 0ECF10 7F0B83E0 8C6248A8 */ lw $v0, %lo(D_800448A8)($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B83E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B83E4 +/* 0ECF14 7F0B83E4 3C0E8004 */ lui $t6, %hi(D_800448F8) +/* 0ECF18 7F0B83E8 8DCE48F8 */ lw $t6, %lo(D_800448F8)($t6) +/* 0ECF1C 7F0B83EC 24010014 */ li $at, 20 +/* 0ECF20 7F0B83F0 3C028004 */ lui $v0, %hi(D_800448A8) +/* 0ECF24 7F0B83F4 01C47823 */ subu $t7, $t6, $a0 +/* 0ECF28 7F0B83F8 25F80013 */ addiu $t8, $t7, 0x13 +/* 0ECF2C 7F0B83FC 0301001A */ div $zero, $t8, $at +/* 0ECF30 7F0B8400 0000C810 */ mfhi $t9 +/* 0ECF34 7F0B8404 00194080 */ sll $t0, $t9, 2 +/* 0ECF38 7F0B8408 00481021 */ addu $v0, $v0, $t0 +/* 0ECF3C 7F0B840C 03E00008 */ jr $ra +/* 0ECF40 7F0B8410 8C4248A8 */ lw $v0, %lo(D_800448A8)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void parse_global_vis_command_list(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058C80*/ +glabel jpt_80058C80 +.word if_statement +.word dont_exec_commands_even_on_return +.word endif_continue_exec +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word if_statement_pull_from_stack +.word toggle_exec_vs_ro +.word endif + +/*D:80058CB4*/ +glabel vis_command_jpt +.word break +.word push_to_stack +.word pull_from_stack +.word and_merge_last_two_on_stack +.word or_merge_last_two_on_stack +.word not_merge_last_two_on_stack +.word carrot_merge_last_two_on_stack +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word push_tf_if_in_range_rooms +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word force_visible +.word match_portal_vis +.word add_visible_room +.word remove_vis +.word visible_if_seen_through_portal +.word not_visible_if_seen_through_portal +.word disable_room +.word disable_room_range +.word preload_room +.word preload_room_range +.text +glabel parse_global_vis_command_list +/* 0ECF44 7F0B8414 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0ECF48 7F0B8418 AFB30024 */ sw $s3, 0x24($sp) +/* 0ECF4C 7F0B841C AFB20020 */ sw $s2, 0x20($sp) +/* 0ECF50 7F0B8420 AFB1001C */ sw $s1, 0x1c($sp) +/* 0ECF54 7F0B8424 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ECF58 7F0B8428 00808825 */ move $s1, $a0 +/* 0ECF5C 7F0B842C 00A09025 */ move $s2, $a1 +/* 0ECF60 7F0B8430 AFBF003C */ sw $ra, 0x3c($sp) +/* 0ECF64 7F0B8434 AFBE0038 */ sw $fp, 0x38($sp) +/* 0ECF68 7F0B8438 AFB70034 */ sw $s7, 0x34($sp) +/* 0ECF6C 7F0B843C AFB60030 */ sw $s6, 0x30($sp) +/* 0ECF70 7F0B8440 AFB5002C */ sw $s5, 0x2c($sp) +/* 0ECF74 7F0B8444 AFB40028 */ sw $s4, 0x28($sp) +/* 0ECF78 7F0B8448 AFB00018 */ sw $s0, 0x18($sp) +/* 0ECF7C 7F0B844C 24130001 */ li $s3, 1 +/* 0ECF80 7F0B8450 14800003 */ bnez $a0, .L7F0B8460 +/* 0ECF84 7F0B8454 AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at) +/* 0ECF88 7F0B8458 10000166 */ b .L7F0B89F4 +/* 0ECF8C 7F0B845C 00801025 */ move $v0, $a0 +.L7F0B8460: +/* 0ECF90 7F0B8460 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 0ECF94 7F0B8464 3C168008 */ lui $s6, %hi(dword_CODE_bss_80081600) +/* 0ECF98 7F0B8468 3C148004 */ lui $s4, %hi(current_visibility) +/* 0ECF9C 7F0B846C 269448FC */ addiu $s4, %lo(current_visibility) # addiu $s4, $s4, 0x48fc +/* 0ECFA0 7F0B8470 26D61600 */ addiu $s6, %lo(dword_CODE_bss_80081600) # addiu $s6, $s6, 0x1600 +/* 0ECFA4 7F0B8474 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ECFA8 7F0B8478 24170001 */ li $s7, 1 +/* 0ECFAC 7F0B847C 24150001 */ li $s5, 1 +.L7F0B8480: +/* 0ECFB0 7F0B8480 92240000 */ lbu $a0, ($s1) +.L7F0B8484: +/* 0ECFB4 7F0B8484 28810028 */ slti $at, $a0, 0x28 +/* 0ECFB8 7F0B8488 14200009 */ bnez $at, .L7F0B84B0 +/* 0ECFBC 7F0B848C 248EFFB0 */ addiu $t6, $a0, -0x50 +/* 0ECFC0 7F0B8490 2DC1000D */ sltiu $at, $t6, 0xd +/* 0ECFC4 7F0B8494 10200156 */ beqz $at, .L7F0B89F0 +/* 0ECFC8 7F0B8498 000E7080 */ sll $t6, $t6, 2 +/* 0ECFCC 7F0B849C 3C018006 */ lui $at, %hi(jpt_80058C80) +/* 0ECFD0 7F0B84A0 002E0821 */ addu $at, $at, $t6 +/* 0ECFD4 7F0B84A4 8C2E8C80 */ lw $t6, %lo(jpt_80058C80)($at) +/* 0ECFD8 7F0B84A8 01C00008 */ jr $t6 +/* 0ECFDC 7F0B84AC 00000000 */ nop +.L7F0B84B0: +/* 0ECFE0 7F0B84B0 2C810028 */ sltiu $at, $a0, 0x28 +/* 0ECFE4 7F0B84B4 1020014E */ beqz $at, .L7F0B89F0 +/* 0ECFE8 7F0B84B8 00047880 */ sll $t7, $a0, 2 +/* 0ECFEC 7F0B84BC 3C018006 */ lui $at, %hi(vis_command_jpt) +/* 0ECFF0 7F0B84C0 002F0821 */ addu $at, $at, $t7 +/* 0ECFF4 7F0B84C4 8C2F8CB4 */ lw $t7, %lo(vis_command_jpt)($at) +/* 0ECFF8 7F0B84C8 01E00008 */ jr $t7 +/* 0ECFFC 7F0B84CC 00000000 */ nop +break: +/* 0ED000 7F0B84D0 10000148 */ b .L7F0B89F4 +/* 0ED004 7F0B84D4 02201025 */ move $v0, $s1 +push_to_stack: +/* 0ED008 7F0B84D8 52400004 */ beql $s2, $zero, .L7F0B84EC +/* 0ED00C 7F0B84DC 92380001 */ lbu $t8, 1($s1) +/* 0ED010 7F0B84E0 0FC2E0DD */ jal push_arg_to_table +/* 0ED014 7F0B84E4 8E240004 */ lw $a0, 4($s1) +/* 0ED018 7F0B84E8 92380001 */ lbu $t8, 1($s1) +.L7F0B84EC: +/* 0ED01C 7F0B84EC 0018C8C0 */ sll $t9, $t8, 3 +/* 0ED020 7F0B84F0 1000FFE3 */ b .L7F0B8480 +/* 0ED024 7F0B84F4 02398821 */ addu $s1, $s1, $t9 +pull_from_stack: +/* 0ED028 7F0B84F8 52400004 */ beql $s2, $zero, .L7F0B850C +/* 0ED02C 7F0B84FC 92280001 */ lbu $t0, 1($s1) +/* 0ED030 7F0B8500 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED034 7F0B8504 00000000 */ nop +/* 0ED038 7F0B8508 92280001 */ lbu $t0, 1($s1) +.L7F0B850C: +/* 0ED03C 7F0B850C 000848C0 */ sll $t1, $t0, 3 +/* 0ED040 7F0B8510 1000FFDB */ b .L7F0B8480 +/* 0ED044 7F0B8514 02298821 */ addu $s1, $s1, $t1 +and_merge_last_two_on_stack: +/* 0ED048 7F0B8518 52400008 */ beql $s2, $zero, .L7F0B853C +/* 0ED04C 7F0B851C 922A0001 */ lbu $t2, 1($s1) +/* 0ED050 7F0B8520 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED054 7F0B8524 00000000 */ nop +/* 0ED058 7F0B8528 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED05C 7F0B852C 00408025 */ move $s0, $v0 +/* 0ED060 7F0B8530 0FC2E0DD */ jal push_arg_to_table +/* 0ED064 7F0B8534 00502024 */ and $a0, $v0, $s0 +/* 0ED068 7F0B8538 922A0001 */ lbu $t2, 1($s1) +.L7F0B853C: +/* 0ED06C 7F0B853C 000A58C0 */ sll $t3, $t2, 3 +/* 0ED070 7F0B8540 1000FFCF */ b .L7F0B8480 +/* 0ED074 7F0B8544 022B8821 */ addu $s1, $s1, $t3 +or_merge_last_two_on_stack: +/* 0ED078 7F0B8548 52400008 */ beql $s2, $zero, .L7F0B856C +/* 0ED07C 7F0B854C 922C0001 */ lbu $t4, 1($s1) +/* 0ED080 7F0B8550 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED084 7F0B8554 00000000 */ nop +/* 0ED088 7F0B8558 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED08C 7F0B855C 00408025 */ move $s0, $v0 +/* 0ED090 7F0B8560 0FC2E0DD */ jal push_arg_to_table +/* 0ED094 7F0B8564 00502025 */ or $a0, $v0, $s0 +/* 0ED098 7F0B8568 922C0001 */ lbu $t4, 1($s1) +.L7F0B856C: +/* 0ED09C 7F0B856C 000C68C0 */ sll $t5, $t4, 3 +/* 0ED0A0 7F0B8570 1000FFC3 */ b .L7F0B8480 +/* 0ED0A4 7F0B8574 022D8821 */ addu $s1, $s1, $t5 +not_merge_last_two_on_stack: +/* 0ED0A8 7F0B8578 52400006 */ beql $s2, $zero, .L7F0B8594 +/* 0ED0AC 7F0B857C 922E0001 */ lbu $t6, 1($s1) +/* 0ED0B0 7F0B8580 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0B4 7F0B8584 00000000 */ nop +/* 0ED0B8 7F0B8588 0FC2E0DD */ jal push_arg_to_table +/* 0ED0BC 7F0B858C 2C440001 */ sltiu $a0, $v0, 1 +/* 0ED0C0 7F0B8590 922E0001 */ lbu $t6, 1($s1) +.L7F0B8594: +/* 0ED0C4 7F0B8594 000E78C0 */ sll $t7, $t6, 3 +/* 0ED0C8 7F0B8598 1000FFB9 */ b .L7F0B8480 +/* 0ED0CC 7F0B859C 022F8821 */ addu $s1, $s1, $t7 +carrot_merge_last_two_on_stack: +/* 0ED0D0 7F0B85A0 52400008 */ beql $s2, $zero, .L7F0B85C4 +/* 0ED0D4 7F0B85A4 92380001 */ lbu $t8, 1($s1) +/* 0ED0D8 7F0B85A8 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0DC 7F0B85AC 00000000 */ nop +/* 0ED0E0 7F0B85B0 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0E4 7F0B85B4 00408025 */ move $s0, $v0 +/* 0ED0E8 7F0B85B8 0FC2E0DD */ jal push_arg_to_table +/* 0ED0EC 7F0B85BC 00502026 */ xor $a0, $v0, $s0 +/* 0ED0F0 7F0B85C0 92380001 */ lbu $t8, 1($s1) +.L7F0B85C4: +/* 0ED0F4 7F0B85C4 0018C8C0 */ sll $t9, $t8, 3 +/* 0ED0F8 7F0B85C8 1000FFAD */ b .L7F0B8480 +/* 0ED0FC 7F0B85CC 02398821 */ addu $s1, $s1, $t9 +push_tf_if_in_range_rooms: +/* 0ED100 7F0B85D0 1240000C */ beqz $s2, .L7F0B8604 +/* 0ED104 7F0B85D4 3C028004 */ lui $v0, %hi(current_room_maybe) +/* 0ED108 7F0B85D8 8C424838 */ lw $v0, %lo(current_room_maybe)($v0) +/* 0ED10C 7F0B85DC 8E28000C */ lw $t0, 0xc($s1) +/* 0ED110 7F0B85E0 0048202A */ slt $a0, $v0, $t0 +/* 0ED114 7F0B85E4 38840001 */ xori $a0, $a0, 1 +/* 0ED118 7F0B85E8 10800004 */ beqz $a0, .L7F0B85FC +/* 0ED11C 7F0B85EC 00000000 */ nop +/* 0ED120 7F0B85F0 8E290014 */ lw $t1, 0x14($s1) +/* 0ED124 7F0B85F4 0122202A */ slt $a0, $t1, $v0 +/* 0ED128 7F0B85F8 38840001 */ xori $a0, $a0, 1 +.L7F0B85FC: +/* 0ED12C 7F0B85FC 0FC2E0DD */ jal push_arg_to_table +/* 0ED130 7F0B8600 00000000 */ nop +.L7F0B8604: +/* 0ED134 7F0B8604 922A0001 */ lbu $t2, 1($s1) +/* 0ED138 7F0B8608 000A58C0 */ sll $t3, $t2, 3 +/* 0ED13C 7F0B860C 1000FF9C */ b .L7F0B8480 +/* 0ED140 7F0B8610 022B8821 */ addu $s1, $s1, $t3 +force_visible: +/* 0ED144 7F0B8614 5240000C */ beql $s2, $zero, .L7F0B8648 +/* 0ED148 7F0B8618 922C0001 */ lbu $t4, 1($s1) +/* 0ED14C 7F0B861C 8FC20000 */ lw $v0, ($fp) +/* 0ED150 7F0B8620 C4441118 */ lwc1 $f4, 0x1118($v0) +/* 0ED154 7F0B8624 E6C40000 */ swc1 $f4, ($s6) +/* 0ED158 7F0B8628 C446111C */ lwc1 $f6, 0x111c($v0) +/* 0ED15C 7F0B862C E6C60004 */ swc1 $f6, 4($s6) +/* 0ED160 7F0B8630 C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ED164 7F0B8634 E6C80008 */ swc1 $f8, 8($s6) +/* 0ED168 7F0B8638 C44A1124 */ lwc1 $f10, 0x1124($v0) +/* 0ED16C 7F0B863C AE800000 */ sw $zero, ($s4) +/* 0ED170 7F0B8640 E6CA000C */ swc1 $f10, 0xc($s6) +/* 0ED174 7F0B8644 922C0001 */ lbu $t4, 1($s1) +.L7F0B8648: +/* 0ED178 7F0B8648 000C68C0 */ sll $t5, $t4, 3 +/* 0ED17C 7F0B864C 1000FF8C */ b .L7F0B8480 +/* 0ED180 7F0B8650 022D8821 */ addu $s1, $s1, $t5 +match_portal_vis: +/* 0ED184 7F0B8654 12400010 */ beqz $s2, .L7F0B8698 +/* 0ED188 7F0B8658 02C02825 */ move $a1, $s6 +/* 0ED18C 7F0B865C 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED190 7F0B8660 8E24000C */ lw $a0, 0xc($s1) +/* 0ED194 7F0B8664 54400004 */ bnezl $v0, .L7F0B8678 +/* 0ED198 7F0B8668 8FC50000 */ lw $a1, ($fp) +/* 0ED19C 7F0B866C 1000000A */ b .L7F0B8698 +/* 0ED1A0 7F0B8670 AE970000 */ sw $s7, ($s4) +/* 0ED1A4 7F0B8674 8FC50000 */ lw $a1, ($fp) +.L7F0B8678: +/* 0ED1A8 7F0B8678 02C02025 */ move $a0, $s6 +/* 0ED1AC 7F0B867C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED1B0 7F0B8680 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED1B4 7F0B8684 54400004 */ bnezl $v0, .L7F0B8698 +/* 0ED1B8 7F0B8688 AE800000 */ sw $zero, ($s4) +/* 0ED1BC 7F0B868C 10000002 */ b .L7F0B8698 +/* 0ED1C0 7F0B8690 AE970000 */ sw $s7, ($s4) +/* 0ED1C4 7F0B8694 AE800000 */ sw $zero, ($s4) +.L7F0B8698: +/* 0ED1C8 7F0B8698 922E0001 */ lbu $t6, 1($s1) +/* 0ED1CC 7F0B869C 000E78C0 */ sll $t7, $t6, 3 +/* 0ED1D0 7F0B86A0 1000FF77 */ b .L7F0B8480 +/* 0ED1D4 7F0B86A4 022F8821 */ addu $s1, $s1, $t7 +visible_if_seen_through_portal: +/* 0ED1D8 7F0B86A8 12400016 */ beqz $s2, .L7F0B8704 +/* 0ED1DC 7F0B86AC 27A50068 */ addiu $a1, $sp, 0x68 +/* 0ED1E0 7F0B86B0 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED1E4 7F0B86B4 8E24000C */ lw $a0, 0xc($s1) +/* 0ED1E8 7F0B86B8 50400013 */ beql $v0, $zero, .L7F0B8708 +/* 0ED1EC 7F0B86BC 92390001 */ lbu $t9, 1($s1) +/* 0ED1F0 7F0B86C0 8FC50000 */ lw $a1, ($fp) +/* 0ED1F4 7F0B86C4 27A40068 */ addiu $a0, $sp, 0x68 +/* 0ED1F8 7F0B86C8 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED1FC 7F0B86CC 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED200 7F0B86D0 5040000D */ beql $v0, $zero, .L7F0B8708 +/* 0ED204 7F0B86D4 92390001 */ lbu $t9, 1($s1) +/* 0ED208 7F0B86D8 8E980000 */ lw $t8, ($s4) +/* 0ED20C 7F0B86DC 27A50068 */ addiu $a1, $sp, 0x68 +/* 0ED210 7F0B86E0 02C02025 */ move $a0, $s6 +/* 0ED214 7F0B86E4 13000005 */ beqz $t8, .L7F0B86FC +/* 0ED218 7F0B86E8 00000000 */ nop +/* 0ED21C 7F0B86EC 0FC2D756 */ jal copy_4_floats_a1_to_a0 +/* 0ED220 7F0B86F0 02C02025 */ move $a0, $s6 +/* 0ED224 7F0B86F4 10000003 */ b .L7F0B8704 +/* 0ED228 7F0B86F8 AE800000 */ sw $zero, ($s4) +.L7F0B86FC: +/* 0ED22C 7F0B86FC 0FC2D730 */ jal sub_GAME_7F0B5CC0 +/* 0ED230 7F0B8700 27A50068 */ addiu $a1, $sp, 0x68 +.L7F0B8704: +/* 0ED234 7F0B8704 92390001 */ lbu $t9, 1($s1) +.L7F0B8708: +/* 0ED238 7F0B8708 001940C0 */ sll $t0, $t9, 3 +/* 0ED23C 7F0B870C 1000FF5C */ b .L7F0B8480 +/* 0ED240 7F0B8710 02288821 */ addu $s1, $s1, $t0 +not_visible_if_seen_through_portal: +/* 0ED244 7F0B8714 52400019 */ beql $s2, $zero, .L7F0B877C +/* 0ED248 7F0B8718 922A0001 */ lbu $t2, 1($s1) +/* 0ED24C 7F0B871C 8E890000 */ lw $t1, ($s4) +/* 0ED250 7F0B8720 27A50058 */ addiu $a1, $sp, 0x58 +/* 0ED254 7F0B8724 55200015 */ bnezl $t1, .L7F0B877C +/* 0ED258 7F0B8728 922A0001 */ lbu $t2, 1($s1) +/* 0ED25C 7F0B872C 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED260 7F0B8730 8E24000C */ lw $a0, 0xc($s1) +/* 0ED264 7F0B8734 54400004 */ bnezl $v0, .L7F0B8748 +/* 0ED268 7F0B8738 8FC50000 */ lw $a1, ($fp) +/* 0ED26C 7F0B873C 1000000E */ b .L7F0B8778 +/* 0ED270 7F0B8740 AE970000 */ sw $s7, ($s4) +/* 0ED274 7F0B8744 8FC50000 */ lw $a1, ($fp) +.L7F0B8748: +/* 0ED278 7F0B8748 27A40058 */ addiu $a0, $sp, 0x58 +/* 0ED27C 7F0B874C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED280 7F0B8750 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED284 7F0B8754 14400003 */ bnez $v0, .L7F0B8764 +/* 0ED288 7F0B8758 02C02025 */ move $a0, $s6 +/* 0ED28C 7F0B875C 10000006 */ b .L7F0B8778 +/* 0ED290 7F0B8760 AE970000 */ sw $s7, ($s4) +.L7F0B8764: +/* 0ED294 7F0B8764 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED298 7F0B8768 27A50058 */ addiu $a1, $sp, 0x58 +/* 0ED29C 7F0B876C 54400003 */ bnezl $v0, .L7F0B877C +/* 0ED2A0 7F0B8770 922A0001 */ lbu $t2, 1($s1) +/* 0ED2A4 7F0B8774 AE970000 */ sw $s7, ($s4) +.L7F0B8778: +/* 0ED2A8 7F0B8778 922A0001 */ lbu $t2, 1($s1) +.L7F0B877C: +/* 0ED2AC 7F0B877C 000A58C0 */ sll $t3, $t2, 3 +/* 0ED2B0 7F0B8780 1000FF3F */ b .L7F0B8480 +/* 0ED2B4 7F0B8784 022B8821 */ addu $s1, $s1, $t3 +add_visible_room: +/* 0ED2B8 7F0B8788 52400017 */ beql $s2, $zero, .L7F0B87E8 +/* 0ED2BC 7F0B878C 922F0001 */ lbu $t7, 1($s1) +/* 0ED2C0 7F0B8790 8E8C0000 */ lw $t4, ($s4) +/* 0ED2C4 7F0B8794 02C02825 */ move $a1, $s6 +/* 0ED2C8 7F0B8798 55800013 */ bnezl $t4, .L7F0B87E8 +/* 0ED2CC 7F0B879C 922F0001 */ lbu $t7, 1($s1) +/* 0ED2D0 7F0B87A0 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ED2D4 7F0B87A4 8E24000C */ lw $a0, 0xc($s1) +/* 0ED2D8 7F0B87A8 1040000E */ beqz $v0, .L7F0B87E4 +/* 0ED2DC 7F0B87AC 00002825 */ move $a1, $zero +/* 0ED2E0 7F0B87B0 8E24000C */ lw $a0, 0xc($s1) +/* 0ED2E4 7F0B87B4 02C03025 */ move $a2, $s6 +/* 0ED2E8 7F0B87B8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED2EC 7F0B87BC 00003825 */ move $a3, $zero +/* 0ED2F0 7F0B87C0 3C038008 */ lui $v1, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED2F4 7F0B87C4 8C63C038 */ lw $v1, %lo(num_visible_rooms_in_cur_global_vis_packet)($v1) +/* 0ED2F8 7F0B87C8 8E2D000C */ lw $t5, 0xc($s1) +/* 0ED2FC 7F0B87CC 3C018008 */ lui $at, %hi(list_visible_rooms_in_cur_global_vis_packet) +/* 0ED300 7F0B87D0 00230821 */ addu $at, $at, $v1 +/* 0ED304 7F0B87D4 A02DBFA0 */ sb $t5, %lo(list_visible_rooms_in_cur_global_vis_packet)($at) +/* 0ED308 7F0B87D8 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED30C 7F0B87DC 246E0001 */ addiu $t6, $v1, 1 +/* 0ED310 7F0B87E0 AC2EC038 */ sw $t6, %lo(num_visible_rooms_in_cur_global_vis_packet)($at) +.L7F0B87E4: +/* 0ED314 7F0B87E4 922F0001 */ lbu $t7, 1($s1) +.L7F0B87E8: +/* 0ED318 7F0B87E8 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED31C 7F0B87EC 1000FF24 */ b .L7F0B8480 +/* 0ED320 7F0B87F0 02388821 */ addu $s1, $s1, $t8 +disable_room: +/* 0ED324 7F0B87F4 52400009 */ beql $s2, $zero, .L7F0B881C +/* 0ED328 7F0B87F8 92290001 */ lbu $t1, 1($s1) +/* 0ED32C 7F0B87FC 8E39000C */ lw $t9, 0xc($s1) +/* 0ED330 7F0B8800 3C018004 */ lui $at, %hi(array_room_info + 0x10 +0x24) +/* 0ED334 7F0B8804 00194080 */ sll $t0, $t9, 2 +/* 0ED338 7F0B8808 01194021 */ addu $t0, $t0, $t9 +/* 0ED33C 7F0B880C 00084100 */ sll $t0, $t0, 4 +/* 0ED340 7F0B8810 00280821 */ addu $at, $at, $t0 +/* 0ED344 7F0B8814 A0351448 */ sb $s5, %lo(array_room_info + 0x10 +0x24)($at) +/* 0ED348 7F0B8818 92290001 */ lbu $t1, 1($s1) +.L7F0B881C: +/* 0ED34C 7F0B881C 000950C0 */ sll $t2, $t1, 3 +/* 0ED350 7F0B8820 1000FF17 */ b .L7F0B8480 +/* 0ED354 7F0B8824 022A8821 */ addu $s1, $s1, $t2 +disable_room_range: +/* 0ED358 7F0B8828 52400013 */ beql $s2, $zero, .L7F0B8878 +/* 0ED35C 7F0B882C 922F0001 */ lbu $t7, 1($s1) +/* 0ED360 7F0B8830 8E22000C */ lw $v0, 0xc($s1) +/* 0ED364 7F0B8834 8E2B0014 */ lw $t3, 0x14($s1) +/* 0ED368 7F0B8838 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0ED36C 7F0B883C 00026080 */ sll $t4, $v0, 2 +/* 0ED370 7F0B8840 0162082A */ slt $at, $t3, $v0 +/* 0ED374 7F0B8844 1420000B */ bnez $at, .L7F0B8874 +/* 0ED378 7F0B8848 01826021 */ addu $t4, $t4, $v0 +/* 0ED37C 7F0B884C 000C6100 */ sll $t4, $t4, 4 +/* 0ED380 7F0B8850 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0ED384 7F0B8854 018D1821 */ addu $v1, $t4, $t5 +/* 0ED388 7F0B8858 A0750034 */ sb $s5, 0x34($v1) +.L7F0B885C: +/* 0ED38C 7F0B885C 8E2E0014 */ lw $t6, 0x14($s1) +/* 0ED390 7F0B8860 24420001 */ addiu $v0, $v0, 1 +/* 0ED394 7F0B8864 24630050 */ addiu $v1, $v1, 0x50 +/* 0ED398 7F0B8868 01C2082A */ slt $at, $t6, $v0 +/* 0ED39C 7F0B886C 5020FFFB */ beql $at, $zero, .L7F0B885C +/* 0ED3A0 7F0B8870 A0750034 */ sb $s5, 0x34($v1) +.L7F0B8874: +/* 0ED3A4 7F0B8874 922F0001 */ lbu $t7, 1($s1) +.L7F0B8878: +/* 0ED3A8 7F0B8878 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED3AC 7F0B887C 1000FF00 */ b .L7F0B8480 +/* 0ED3B0 7F0B8880 02388821 */ addu $s1, $s1, $t8 +preload_room: +/* 0ED3B4 7F0B8884 52400009 */ beql $s2, $zero, .L7F0B88AC +/* 0ED3B8 7F0B8888 92280001 */ lbu $t0, 1($s1) +/* 0ED3BC 7F0B888C 52600007 */ beql $s3, $zero, .L7F0B88AC +/* 0ED3C0 7F0B8890 92280001 */ lbu $t0, 1($s1) +/* 0ED3C4 7F0B8894 0FC2D8C5 */ jal sub_GAME_7F0B6314 +/* 0ED3C8 7F0B8898 8E24000C */ lw $a0, 0xc($s1) +/* 0ED3CC 7F0B889C 2C530001 */ sltiu $s3, $v0, 1 +/* 0ED3D0 7F0B88A0 327900FF */ andi $t9, $s3, 0xff +/* 0ED3D4 7F0B88A4 03209825 */ move $s3, $t9 +/* 0ED3D8 7F0B88A8 92280001 */ lbu $t0, 1($s1) +.L7F0B88AC: +/* 0ED3DC 7F0B88AC 000848C0 */ sll $t1, $t0, 3 +/* 0ED3E0 7F0B88B0 1000FEF3 */ b .L7F0B8480 +/* 0ED3E4 7F0B88B4 02298821 */ addu $s1, $s1, $t1 +preload_room_range: +/* 0ED3E8 7F0B88B8 52400013 */ beql $s2, $zero, .L7F0B8908 +/* 0ED3EC 7F0B88BC 922B0001 */ lbu $t3, 1($s1) +/* 0ED3F0 7F0B88C0 8E30000C */ lw $s0, 0xc($s1) +/* 0ED3F4 7F0B88C4 8E230014 */ lw $v1, 0x14($s1) +/* 0ED3F8 7F0B88C8 0070082A */ slt $at, $v1, $s0 +/* 0ED3FC 7F0B88CC 5420000E */ bnezl $at, .L7F0B8908 +/* 0ED400 7F0B88D0 922B0001 */ lbu $t3, 1($s1) +.L7F0B88D4: +/* 0ED404 7F0B88D4 52600008 */ beql $s3, $zero, .L7F0B88F8 +/* 0ED408 7F0B88D8 26100001 */ addiu $s0, $s0, 1 +/* 0ED40C 7F0B88DC 0FC2D8C5 */ jal sub_GAME_7F0B6314 +/* 0ED410 7F0B88E0 02002025 */ move $a0, $s0 +/* 0ED414 7F0B88E4 2C530001 */ sltiu $s3, $v0, 1 +/* 0ED418 7F0B88E8 326A00FF */ andi $t2, $s3, 0xff +/* 0ED41C 7F0B88EC 01409825 */ move $s3, $t2 +/* 0ED420 7F0B88F0 8E230014 */ lw $v1, 0x14($s1) +/* 0ED424 7F0B88F4 26100001 */ addiu $s0, $s0, 1 +.L7F0B88F8: +/* 0ED428 7F0B88F8 0070082A */ slt $at, $v1, $s0 +/* 0ED42C 7F0B88FC 1020FFF5 */ beqz $at, .L7F0B88D4 +/* 0ED430 7F0B8900 00000000 */ nop +/* 0ED434 7F0B8904 922B0001 */ lbu $t3, 1($s1) +.L7F0B8908: +/* 0ED438 7F0B8908 000B60C0 */ sll $t4, $t3, 3 +/* 0ED43C 7F0B890C 1000FEDC */ b .L7F0B8480 +/* 0ED440 7F0B8910 022C8821 */ addu $s1, $s1, $t4 +remove_vis: +/* 0ED444 7F0B8914 52400003 */ beql $s2, $zero, .L7F0B8924 +/* 0ED448 7F0B8918 922D0001 */ lbu $t5, 1($s1) +/* 0ED44C 7F0B891C AE970000 */ sw $s7, ($s4) +/* 0ED450 7F0B8920 922D0001 */ lbu $t5, 1($s1) +.L7F0B8924: +/* 0ED454 7F0B8924 000D70C0 */ sll $t6, $t5, 3 +/* 0ED458 7F0B8928 1000FED5 */ b .L7F0B8480 +/* 0ED45C 7F0B892C 022E8821 */ addu $s1, $s1, $t6 +if_statement: +/* 0ED460 7F0B8930 922F0001 */ lbu $t7, 1($s1) +/* 0ED464 7F0B8934 02402825 */ move $a1, $s2 +/* 0ED468 7F0B8938 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED46C 7F0B893C 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED470 7F0B8940 03112021 */ addu $a0, $t8, $s1 +/* 0ED474 7F0B8944 90590001 */ lbu $t9, 1($v0) +/* 0ED478 7F0B8948 001940C0 */ sll $t0, $t9, 3 +/* 0ED47C 7F0B894C 1000FECC */ b .L7F0B8480 +/* 0ED480 7F0B8950 00488821 */ addu $s1, $v0, $t0 +endif_continue_exec: +/* 0ED484 7F0B8954 92290001 */ lbu $t1, 1($s1) +/* 0ED488 7F0B8958 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED48C 7F0B895C AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at) +/* 0ED490 7F0B8960 000950C0 */ sll $t2, $t1, 3 +/* 0ED494 7F0B8964 10000023 */ b .L7F0B89F4 +/* 0ED498 7F0B8968 022A1021 */ addu $v0, $s1, $t2 +dont_exec_commands_even_on_return: +/* 0ED49C 7F0B896C 922B0001 */ lbu $t3, 1($s1) +/* 0ED4A0 7F0B8970 0012102B */ sltu $v0, $zero, $s2 +/* 0ED4A4 7F0B8974 00009025 */ move $s2, $zero +/* 0ED4A8 7F0B8978 000B60C0 */ sll $t4, $t3, 3 +/* 0ED4AC 7F0B897C 1040FEC0 */ beqz $v0, .L7F0B8480 +/* 0ED4B0 7F0B8980 022C8821 */ addu $s1, $s1, $t4 +/* 0ED4B4 7F0B8984 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED4B8 7F0B8988 1000FEBD */ b .L7F0B8480 +/* 0ED4BC 7F0B898C AC371610 */ sw $s7, %lo(dword_CODE_bss_80081600 + 0x10)($at) +if_statement_pull_from_stack: +/* 0ED4C0 7F0B8990 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED4C4 7F0B8994 00000000 */ nop +/* 0ED4C8 7F0B8998 922D0001 */ lbu $t5, 1($s1) +/* 0ED4CC 7F0B899C 00522824 */ and $a1, $v0, $s2 +/* 0ED4D0 7F0B89A0 000D70C0 */ sll $t6, $t5, 3 +/* 0ED4D4 7F0B89A4 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED4D8 7F0B89A8 01D12021 */ addu $a0, $t6, $s1 +/* 0ED4DC 7F0B89AC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED4E0 7F0B89B0 8DEF1610 */ lw $t7, %lo(dword_CODE_bss_80081600 + 0x10)($t7) +/* 0ED4E4 7F0B89B4 00408825 */ move $s1, $v0 +/* 0ED4E8 7F0B89B8 51E0FEB2 */ beql $t7, $zero, .L7F0B8484 +/* 0ED4EC 7F0B89BC 92240000 */ lbu $a0, ($s1) +/* 0ED4F0 7F0B89C0 1000FEAF */ b .L7F0B8480 +/* 0ED4F4 7F0B89C4 00009025 */ move $s2, $zero +toggle_exec_vs_ro: +/* 0ED4F8 7F0B89C8 92390001 */ lbu $t9, 1($s1) +/* 0ED4FC 7F0B89CC 3A580001 */ xori $t8, $s2, 1 +/* 0ED500 7F0B89D0 03009025 */ move $s2, $t8 +/* 0ED504 7F0B89D4 001940C0 */ sll $t0, $t9, 3 +/* 0ED508 7F0B89D8 1000FEA9 */ b .L7F0B8480 +/* 0ED50C 7F0B89DC 02288821 */ addu $s1, $s1, $t0 +endif: +/* 0ED510 7F0B89E0 92290001 */ lbu $t1, 1($s1) +/* 0ED514 7F0B89E4 000950C0 */ sll $t2, $t1, 3 +/* 0ED518 7F0B89E8 10000002 */ b .L7F0B89F4 +/* 0ED51C 7F0B89EC 022A1021 */ addu $v0, $s1, $t2 +invalid_type_terminate: +.L7F0B89F0: +/* 0ED520 7F0B89F0 02201025 */ move $v0, $s1 +.L7F0B89F4: +/* 0ED524 7F0B89F4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0ED528 7F0B89F8 8FB00018 */ lw $s0, 0x18($sp) +/* 0ED52C 7F0B89FC 8FB1001C */ lw $s1, 0x1c($sp) +/* 0ED530 7F0B8A00 8FB20020 */ lw $s2, 0x20($sp) +/* 0ED534 7F0B8A04 8FB30024 */ lw $s3, 0x24($sp) +/* 0ED538 7F0B8A08 8FB40028 */ lw $s4, 0x28($sp) +/* 0ED53C 7F0B8A0C 8FB5002C */ lw $s5, 0x2c($sp) +/* 0ED540 7F0B8A10 8FB60030 */ lw $s6, 0x30($sp) +/* 0ED544 7F0B8A14 8FB70034 */ lw $s7, 0x34($sp) +/* 0ED548 7F0B8A18 8FBE0038 */ lw $fp, 0x38($sp) +/* 0ED54C 7F0B8A1C 03E00008 */ jr $ra +/* 0ED550 7F0B8A20 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8A24(s32 arg0) { + // Node 0 + current_visibility = 0; + if (arg0 != 0) + { + // Node 2 + sub_GAME_7F0B83E4(0, arg0); + // Node 3 + return parse_global_vis_command_list(arg0, 1); + } + // Node 1 + return parse_global_vis_command_list(arg0, 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8A24 +/* 0ED554 7F0B8A24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ED558 7F0B8A28 3C018004 */ lui $at, %hi(current_visibility) +/* 0ED55C 7F0B8A2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0ED560 7F0B8A30 00803025 */ move $a2, $a0 +/* 0ED564 7F0B8A34 14800003 */ bnez $a0, .L7F0B8A44 +/* 0ED568 7F0B8A38 AC2048FC */ sw $zero, %lo(current_visibility)($at) +/* 0ED56C 7F0B8A3C 10000007 */ b .L7F0B8A5C +/* 0ED570 7F0B8A40 00801025 */ move $v0, $a0 +.L7F0B8A44: +/* 0ED574 7F0B8A44 00002025 */ move $a0, $zero +/* 0ED578 7F0B8A48 0FC2E0F9 */ jal sub_GAME_7F0B83E4 +/* 0ED57C 7F0B8A4C AFA60018 */ sw $a2, 0x18($sp) +/* 0ED580 7F0B8A50 8FA40018 */ lw $a0, 0x18($sp) +/* 0ED584 7F0B8A54 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED588 7F0B8A58 24050001 */ li $a1, 1 +.L7F0B8A5C: +/* 0ED58C 7F0B8A5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ED590 7F0B8A60 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0ED594 7F0B8A64 03E00008 */ jr $ra +/* 0ED598 7F0B8A68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8A6C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8A6C +/* 0ED59C 7F0B8A6C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0ED5A0 7F0B8A70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0ED5A4 7F0B8A74 AFB10020 */ sw $s1, 0x20($sp) +/* 0ED5A8 7F0B8A78 0FC2E423 */ jal sub_GAME_7F0B908C +/* 0ED5AC 7F0B8A7C AFB0001C */ sw $s0, 0x1c($sp) +/* 0ED5B0 7F0B8A80 3C118008 */ lui $s1, %hi(pPlayer) +/* 0ED5B4 7F0B8A84 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0ED5B8 7F0B8A88 8E220000 */ lw $v0, ($s1) +/* 0ED5BC 7F0B8A8C C4441118 */ lwc1 $f4, 0x1118($v0) +/* 0ED5C0 7F0B8A90 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0ED5C4 7F0B8A94 C446111C */ lwc1 $f6, 0x111c($v0) +/* 0ED5C8 7F0B8A98 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0ED5CC 7F0B8A9C C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ED5D0 7F0B8AA0 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0ED5D4 7F0B8AA4 C44A1124 */ lwc1 $f10, 0x1124($v0) +/* 0ED5D8 7F0B8AA8 0FC2CEF1 */ jal sub_GAME_7F0B3BC4 +/* 0ED5DC 7F0B8AAC E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0ED5E0 7F0B8AB0 3C028004 */ lui $v0, %hi(array_room_info) +/* 0ED5E4 7F0B8AB4 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0ED5E8 7F0B8AB8 246342F4 */ addiu $v1, %lo(MaxNumRooms) # addiu $v1, $v1, 0x42f4 +/* 0ED5EC 7F0B8ABC 24421414 */ addiu $v0, %lo(array_room_info) # addiu $v0, $v0, 0x1414 +.L7F0B8AC0: +/* 0ED5F0 7F0B8AC0 24420050 */ addiu $v0, $v0, 0x50 +/* 0ED5F4 7F0B8AC4 0043082B */ sltu $at, $v0, $v1 +/* 0ED5F8 7F0B8AC8 A040FFB0 */ sb $zero, -0x50($v0) +/* 0ED5FC 7F0B8ACC A040FFB1 */ sb $zero, -0x4f($v0) +/* 0ED600 7F0B8AD0 1420FFFB */ bnez $at, .L7F0B8AC0 +/* 0ED604 7F0B8AD4 A040FFE4 */ sb $zero, -0x1c($v0) +/* 0ED608 7F0B8AD8 3C028004 */ lui $v0, %hi(D_800442FC) +/* 0ED60C 7F0B8ADC 3C038004 */ lui $v1, %hi(D_800443C4) +/* 0ED610 7F0B8AE0 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4 +/* 0ED614 7F0B8AE4 244242FC */ addiu $v0, %lo(D_800442FC) # addiu $v0, $v0, 0x42fc +.L7F0B8AE8: +/* 0ED618 7F0B8AE8 24420004 */ addiu $v0, $v0, 4 +/* 0ED61C 7F0B8AEC A040FFFD */ sb $zero, -3($v0) +/* 0ED620 7F0B8AF0 A040FFFE */ sb $zero, -2($v0) +/* 0ED624 7F0B8AF4 A040FFFF */ sb $zero, -1($v0) +/* 0ED628 7F0B8AF8 1443FFFB */ bne $v0, $v1, .L7F0B8AE8 +/* 0ED62C 7F0B8AFC A040FFFC */ sb $zero, -4($v0) +/* 0ED630 7F0B8B00 3C028004 */ lui $v0, %hi(D_80044858) +/* 0ED634 7F0B8B04 24424858 */ addiu $v0, %lo(D_80044858) # addiu $v0, $v0, 0x4858 +/* 0ED638 7F0B8B08 8C4E0000 */ lw $t6, ($v0) +/* 0ED63C 7F0B8B0C 2401000A */ li $at, 10 +/* 0ED640 7F0B8B10 25CF0001 */ addiu $t7, $t6, 1 +/* 0ED644 7F0B8B14 01E1001A */ div $zero, $t7, $at +/* 0ED648 7F0B8B18 0000C010 */ mfhi $t8 +/* 0ED64C 7F0B8B1C AC580000 */ sw $t8, ($v0) +/* 0ED650 7F0B8B20 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF98) +/* 0ED654 7F0B8B24 AC20FF98 */ sw $zero, %lo(dword_CODE_bss_8007FF98)($at) +/* 0ED658 7F0B8B28 3C018004 */ lui $at, %hi(D_80044898) +/* 0ED65C 7F0B8B2C 0FC2DF65 */ jal sub_GAME_7F0B7D94 +/* 0ED660 7F0B8B30 AC204898 */ sw $zero, %lo(D_80044898)($at) +/* 0ED664 7F0B8B34 0FC2D45A */ jal sub_GAME_7F0B5168 +/* 0ED668 7F0B8B38 00000000 */ nop +/* 0ED66C 7F0B8B3C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF90) +/* 0ED670 7F0B8B40 0FC2E289 */ jal sub_GAME_7F0B8A24 +/* 0ED674 7F0B8B44 8C84FF90 */ lw $a0, %lo(dword_CODE_bss_8007FF90)($a0) +/* 0ED678 7F0B8B48 3C028004 */ lui $v0, %hi(D_80041400) +/* 0ED67C 7F0B8B4C 8C421400 */ lw $v0, %lo(D_80041400)($v0) +/* 0ED680 7F0B8B50 24030015 */ li $v1, 21 +/* 0ED684 7F0B8B54 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ED688 7F0B8B58 10620005 */ beq $v1, $v0, .L7F0B8B70 +/* 0ED68C 7F0B8B5C 00000000 */ nop +/* 0ED690 7F0B8B60 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ED694 7F0B8B64 8F2A0000 */ lw $t2, ($t9) +/* 0ED698 7F0B8B68 15400023 */ bnez $t2, .L7F0B8BF8 +/* 0ED69C 7F0B8B6C 00000000 */ nop +.L7F0B8B70: +/* 0ED6A0 7F0B8B70 14620006 */ bne $v1, $v0, .L7F0B8B8C +/* 0ED6A4 7F0B8B74 24040009 */ li $a0, 9 +/* 0ED6A8 7F0B8B78 8E260000 */ lw $a2, ($s1) +/* 0ED6AC 7F0B8B7C 00002825 */ move $a1, $zero +/* 0ED6B0 7F0B8B80 24070001 */ li $a3, 1 +/* 0ED6B4 7F0B8B84 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED6B8 7F0B8B88 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8B8C: +/* 0ED6BC 7F0B8B8C 3C0B8004 */ lui $t3, %hi(MaxNumRooms) +/* 0ED6C0 7F0B8B90 8D6B42F4 */ lw $t3, %lo(MaxNumRooms)($t3) +/* 0ED6C4 7F0B8B94 24100001 */ li $s0, 1 +/* 0ED6C8 7F0B8B98 29610002 */ slti $at, $t3, 2 +/* 0ED6CC 7F0B8B9C 14200012 */ bnez $at, .L7F0B8BE8 +/* 0ED6D0 7F0B8BA0 00000000 */ nop +/* 0ED6D4 7F0B8BA4 8E250000 */ lw $a1, ($s1) +.L7F0B8BA8: +/* 0ED6D8 7F0B8BA8 02002025 */ move $a0, $s0 +/* 0ED6DC 7F0B8BAC 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ED6E0 7F0B8BB0 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED6E4 7F0B8BB4 10400006 */ beqz $v0, .L7F0B8BD0 +/* 0ED6E8 7F0B8BB8 02002025 */ move $a0, $s0 +/* 0ED6EC 7F0B8BBC 8E260000 */ lw $a2, ($s1) +/* 0ED6F0 7F0B8BC0 00002825 */ move $a1, $zero +/* 0ED6F4 7F0B8BC4 24070001 */ li $a3, 1 +/* 0ED6F8 7F0B8BC8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED6FC 7F0B8BCC 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8BD0: +/* 0ED700 7F0B8BD0 3C0C8004 */ lui $t4, %hi(MaxNumRooms) +/* 0ED704 7F0B8BD4 8D8C42F4 */ lw $t4, %lo(MaxNumRooms)($t4) +/* 0ED708 7F0B8BD8 26100001 */ addiu $s0, $s0, 1 +/* 0ED70C 7F0B8BDC 020C082A */ slt $at, $s0, $t4 +/* 0ED710 7F0B8BE0 5420FFF1 */ bnezl $at, .L7F0B8BA8 +/* 0ED714 7F0B8BE4 8E250000 */ lw $a1, ($s1) +.L7F0B8BE8: +/* 0ED718 7F0B8BE8 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED71C 7F0B8BEC 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED720 7F0B8BF0 10000039 */ b .L7F0B8CD8 +/* 0ED724 7F0B8BF4 8C820000 */ lw $v0, ($a0) +.L7F0B8BF8: +/* 0ED728 7F0B8BF8 14620006 */ bne $v1, $v0, .L7F0B8C14 +/* 0ED72C 7F0B8BFC 24040009 */ li $a0, 9 +/* 0ED730 7F0B8C00 8E260000 */ lw $a2, ($s1) +/* 0ED734 7F0B8C04 00002825 */ move $a1, $zero +/* 0ED738 7F0B8C08 24070001 */ li $a3, 1 +/* 0ED73C 7F0B8C0C 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED740 7F0B8C10 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8C14: +/* 0ED744 7F0B8C14 8E260000 */ lw $a2, ($s1) +/* 0ED748 7F0B8C18 3C048004 */ lui $a0, %hi(current_room_maybe) +/* 0ED74C 7F0B8C1C 8C844838 */ lw $a0, %lo(current_room_maybe)($a0) +/* 0ED750 7F0B8C20 00002825 */ move $a1, $zero +/* 0ED754 7F0B8C24 24070001 */ li $a3, 1 +/* 0ED758 7F0B8C28 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED75C 7F0B8C2C 24C61118 */ addiu $a2, $a2, 0x1118 +/* 0ED760 7F0B8C30 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED764 7F0B8C34 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED768 7F0B8C38 00008025 */ move $s0, $zero +/* 0ED76C 7F0B8C3C 00001825 */ move $v1, $zero +/* 0ED770 7F0B8C40 8C8D0000 */ lw $t5, ($a0) +/* 0ED774 7F0B8C44 00801025 */ move $v0, $a0 +/* 0ED778 7F0B8C48 11A00016 */ beqz $t5, .L7F0B8CA4 +.L7F0B8C4C: +/* 0ED77C 7F0B8C4C 3C058004 */ lui $a1, %hi(current_room_maybe) +/* 0ED780 7F0B8C50 8CA54838 */ lw $a1, %lo(current_room_maybe)($a1) +/* 0ED784 7F0B8C54 904E0004 */ lbu $t6, 4($v0) +/* 0ED788 7F0B8C58 00002025 */ move $a0, $zero +/* 0ED78C 7F0B8C5C 02003025 */ move $a2, $s0 +/* 0ED790 7F0B8C60 10AE0003 */ beq $a1, $t6, .L7F0B8C70 +/* 0ED794 7F0B8C64 24070001 */ li $a3, 1 +/* 0ED798 7F0B8C68 904F0005 */ lbu $t7, 5($v0) +/* 0ED79C 7F0B8C6C 14AF0008 */ bne $a1, $t7, .L7F0B8C90 +.L7F0B8C70: +/* 0ED7A0 7F0B8C70 27B80050 */ addiu $t8, $sp, 0x50 +/* 0ED7A4 7F0B8C74 AFB80010 */ sw $t8, 0x10($sp) +/* 0ED7A8 7F0B8C78 0FC2DF79 */ jal sub_GAME_7F0B7DE4 +/* 0ED7AC 7F0B8C7C AFA30034 */ sw $v1, 0x34($sp) +/* 0ED7B0 7F0B8C80 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ED7B4 7F0B8C84 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ED7B8 7F0B8C88 8FA30034 */ lw $v1, 0x34($sp) +/* 0ED7BC 7F0B8C8C 03231021 */ addu $v0, $t9, $v1 +.L7F0B8C90: +/* 0ED7C0 7F0B8C90 8C4A0008 */ lw $t2, 8($v0) +/* 0ED7C4 7F0B8C94 26100001 */ addiu $s0, $s0, 1 +/* 0ED7C8 7F0B8C98 24630008 */ addiu $v1, $v1, 8 +/* 0ED7CC 7F0B8C9C 1540FFEB */ bnez $t2, .L7F0B8C4C +/* 0ED7D0 7F0B8CA0 24420008 */ addiu $v0, $v0, 8 +.L7F0B8CA4: +/* 0ED7D4 7F0B8CA4 27B00044 */ addiu $s0, $sp, 0x44 +/* 0ED7D8 7F0B8CA8 AFA00044 */ sw $zero, 0x44($sp) +/* 0ED7DC 7F0B8CAC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4 +/* 0ED7E0 7F0B8CB0 02002025 */ move $a0, $s0 +/* 0ED7E4 7F0B8CB4 10400005 */ beqz $v0, .L7F0B8CCC +/* 0ED7E8 7F0B8CB8 00000000 */ nop +.L7F0B8CBC: +/* 0ED7EC 7F0B8CBC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4 +/* 0ED7F0 7F0B8CC0 02002025 */ move $a0, $s0 +/* 0ED7F4 7F0B8CC4 1440FFFD */ bnez $v0, .L7F0B8CBC +/* 0ED7F8 7F0B8CC8 00000000 */ nop +.L7F0B8CCC: +/* 0ED7FC 7F0B8CCC 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED800 7F0B8CD0 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED804 7F0B8CD4 8C820000 */ lw $v0, ($a0) +.L7F0B8CD8: +/* 0ED808 7F0B8CD8 10400022 */ beqz $v0, .L7F0B8D64 +/* 0ED80C 7F0B8CDC 24090001 */ li $t1, 1 +/* 0ED810 7F0B8CE0 3C078004 */ lui $a3, %hi(array_room_info) +/* 0ED814 7F0B8CE4 24E71414 */ addiu $a3, %lo(array_room_info) # addiu $a3, $a3, 0x1414 +/* 0ED818 7F0B8CE8 00801025 */ move $v0, $a0 +/* 0ED81C 7F0B8CEC 24080050 */ li $t0, 80 +/* 0ED820 7F0B8CF0 90430004 */ lbu $v1, 4($v0) +.L7F0B8CF4: +/* 0ED824 7F0B8CF4 90440005 */ lbu $a0, 5($v0) +/* 0ED828 7F0B8CF8 00680019 */ multu $v1, $t0 +/* 0ED82C 7F0B8CFC 00005812 */ mflo $t3 +/* 0ED830 7F0B8D00 00EB2821 */ addu $a1, $a3, $t3 +/* 0ED834 7F0B8D04 90A60000 */ lbu $a2, ($a1) +/* 0ED838 7F0B8D08 10C00009 */ beqz $a2, .L7F0B8D30 +/* 0ED83C 7F0B8D0C 00000000 */ nop +/* 0ED840 7F0B8D10 00880019 */ multu $a0, $t0 +/* 0ED844 7F0B8D14 00006012 */ mflo $t4 +/* 0ED848 7F0B8D18 00EC1821 */ addu $v1, $a3, $t4 +/* 0ED84C 7F0B8D1C 906D0000 */ lbu $t5, ($v1) +/* 0ED850 7F0B8D20 15A00003 */ bnez $t5, .L7F0B8D30 +/* 0ED854 7F0B8D24 00000000 */ nop +/* 0ED858 7F0B8D28 1000000A */ b .L7F0B8D54 +/* 0ED85C 7F0B8D2C A0690001 */ sb $t1, 1($v1) +.L7F0B8D30: +/* 0ED860 7F0B8D30 00880019 */ multu $a0, $t0 +/* 0ED864 7F0B8D34 00007012 */ mflo $t6 +/* 0ED868 7F0B8D38 00EE7821 */ addu $t7, $a3, $t6 +/* 0ED86C 7F0B8D3C 91F80000 */ lbu $t8, ($t7) +/* 0ED870 7F0B8D40 53000005 */ beql $t8, $zero, .L7F0B8D58 +/* 0ED874 7F0B8D44 8C590008 */ lw $t9, 8($v0) +/* 0ED878 7F0B8D48 54C00003 */ bnezl $a2, .L7F0B8D58 +/* 0ED87C 7F0B8D4C 8C590008 */ lw $t9, 8($v0) +/* 0ED880 7F0B8D50 A0A90001 */ sb $t1, 1($a1) +.L7F0B8D54: +/* 0ED884 7F0B8D54 8C590008 */ lw $t9, 8($v0) +.L7F0B8D58: +/* 0ED888 7F0B8D58 24420008 */ addiu $v0, $v0, 8 +/* 0ED88C 7F0B8D5C 5720FFE5 */ bnezl $t9, .L7F0B8CF4 +/* 0ED890 7F0B8D60 90430004 */ lbu $v1, 4($v0) +.L7F0B8D64: +/* 0ED894 7F0B8D64 8FBF0024 */ lw $ra, 0x24($sp) +/* 0ED898 7F0B8D68 8FB0001C */ lw $s0, 0x1c($sp) +/* 0ED89C 7F0B8D6C 8FB10020 */ lw $s1, 0x20($sp) +/* 0ED8A0 7F0B8D70 03E00008 */ jr $ra +/* 0ED8A4 7F0B8D74 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8D78(s32 arg0, s32 arg1) { + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + s32 phi_a1; + + // Node 0 + phi_a1 = arg1; + if (D_80041400 == 0xd) + { + // Node 1 + phi_a1 = arg1; + if (NumberOfRoomsDrawn > 0) + { + // Node 2 + phi_v0 = &dword_CODE_bss_8007FFA0; + phi_v1 = 0; +loop_3: + // Node 3 + temp_v1 = (phi_v1 + 1); + if (0x23 == *phi_v0) + { + // Node 4 + phi_v0->unk4 = 0; + phi_a1 = 0x23; + } + else + { + // Node 5 + phi_v0 = (phi_v0 + 0x1c); + phi_v1 = temp_v1; + phi_a1 = 0x23; + if (temp_v1 < NumberOfRoomsDrawn) + { + goto loop_3; + } + } + } + } + // Node 6 + sub_GAME_7F0B4FB4(sub_GAME_7F0B3C8C(arg0, phi_a1, arg0)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8D78 +/* 0ED8A8 7F0B8D78 3C0E8004 */ lui $t6, %hi(D_80041400) +/* 0ED8AC 7F0B8D7C 8DCE1400 */ lw $t6, %lo(D_80041400)($t6) +/* 0ED8B0 7F0B8D80 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ED8B4 7F0B8D84 2401000D */ li $at, 13 +/* 0ED8B8 7F0B8D88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ED8BC 7F0B8D8C 15C10011 */ bne $t6, $at, .L7F0B8DD4 +/* 0ED8C0 7F0B8D90 00803025 */ move $a2, $a0 +/* 0ED8C4 7F0B8D94 3C048004 */ lui $a0, %hi(NumberOfRoomsDrawn) +/* 0ED8C8 7F0B8D98 8C84483C */ lw $a0, %lo(NumberOfRoomsDrawn)($a0) +/* 0ED8CC 7F0B8D9C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007FFA0) +/* 0ED8D0 7F0B8DA0 2442FFA0 */ addiu $v0, %lo(dword_CODE_bss_8007FFA0) # addiu $v0, $v0, -0x60 +/* 0ED8D4 7F0B8DA4 1880000B */ blez $a0, .L7F0B8DD4 +/* 0ED8D8 7F0B8DA8 00001825 */ move $v1, $zero +/* 0ED8DC 7F0B8DAC 24050023 */ li $a1, 35 +.L7F0B8DB0: +/* 0ED8E0 7F0B8DB0 8C4F0000 */ lw $t7, ($v0) +/* 0ED8E4 7F0B8DB4 24630001 */ addiu $v1, $v1, 1 +/* 0ED8E8 7F0B8DB8 0064082A */ slt $at, $v1, $a0 +/* 0ED8EC 7F0B8DBC 14AF0003 */ bne $a1, $t7, .L7F0B8DCC +/* 0ED8F0 7F0B8DC0 00000000 */ nop +/* 0ED8F4 7F0B8DC4 10000003 */ b .L7F0B8DD4 +/* 0ED8F8 7F0B8DC8 AC400004 */ sw $zero, 4($v0) +.L7F0B8DCC: +/* 0ED8FC 7F0B8DCC 1420FFF8 */ bnez $at, .L7F0B8DB0 +/* 0ED900 7F0B8DD0 2442001C */ addiu $v0, $v0, 0x1c +.L7F0B8DD4: +/* 0ED904 7F0B8DD4 0FC2CF23 */ jal sub_GAME_7F0B3C8C +/* 0ED908 7F0B8DD8 00C02025 */ move $a0, $a2 +/* 0ED90C 7F0B8DDC 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0ED910 7F0B8DE0 00402025 */ move $a0, $v0 +/* 0ED914 7F0B8DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ED918 7F0B8DE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0ED91C 7F0B8DEC 03E00008 */ jr $ra +/* 0ED920 7F0B8DF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8DF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8DF4 +/* 0ED924 7F0B8DF4 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0ED928 7F0B8DF8 2508FF80 */ addiu $t0, %lo(ptr_bgdata_portals) # addiu $t0, $t0, -0x80 +/* 0ED92C 7F0B8DFC 8D070000 */ lw $a3, ($t0) +/* 0ED930 7F0B8E00 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0ED934 7F0B8E04 AFB1000C */ sw $s1, 0xc($sp) +/* 0ED938 7F0B8E08 AFB00008 */ sw $s0, 8($sp) +/* 0ED93C 7F0B8E0C 8CEE0000 */ lw $t6, ($a3) +/* 0ED940 7F0B8E10 00A08025 */ move $s0, $a1 +/* 0ED944 7F0B8E14 00C08825 */ move $s1, $a2 +/* 0ED948 7F0B8E18 00001825 */ move $v1, $zero +/* 0ED94C 7F0B8E1C 11C00019 */ beqz $t6, .L7F0B8E84 +/* 0ED950 7F0B8E20 00001025 */ move $v0, $zero +/* 0ED954 7F0B8E24 00002825 */ move $a1, $zero +/* 0ED958 7F0B8E28 00E03025 */ move $a2, $a3 +/* 0ED95C 7F0B8E2C 90CF0004 */ lbu $t7, 4($a2) +.L7F0B8E30: +/* 0ED960 7F0B8E30 0003C880 */ sll $t9, $v1, 2 +/* 0ED964 7F0B8E34 02194821 */ addu $t1, $s0, $t9 +/* 0ED968 7F0B8E38 508F0005 */ beql $a0, $t7, .L7F0B8E50 +/* 0ED96C 7F0B8E3C AD220000 */ sw $v0, ($t1) +/* 0ED970 7F0B8E40 90D80005 */ lbu $t8, 5($a2) +/* 0ED974 7F0B8E44 54980004 */ bnel $a0, $t8, .L7F0B8E58 +/* 0ED978 7F0B8E48 0071082A */ slt $at, $v1, $s1 +/* 0ED97C 7F0B8E4C AD220000 */ sw $v0, ($t1) +.L7F0B8E50: +/* 0ED980 7F0B8E50 24630001 */ addiu $v1, $v1, 1 +/* 0ED984 7F0B8E54 0071082A */ slt $at, $v1, $s1 +.L7F0B8E58: +/* 0ED988 7F0B8E58 54200004 */ bnezl $at, .L7F0B8E6C +/* 0ED98C 7F0B8E5C 8D0A0000 */ lw $t2, ($t0) +/* 0ED990 7F0B8E60 10000009 */ b .L7F0B8E88 +/* 0ED994 7F0B8E64 00601025 */ move $v0, $v1 +/* 0ED998 7F0B8E68 8D0A0000 */ lw $t2, ($t0) +.L7F0B8E6C: +/* 0ED99C 7F0B8E6C 24A50008 */ addiu $a1, $a1, 8 +/* 0ED9A0 7F0B8E70 24420001 */ addiu $v0, $v0, 1 +/* 0ED9A4 7F0B8E74 01453021 */ addu $a2, $t2, $a1 +/* 0ED9A8 7F0B8E78 8CCB0000 */ lw $t3, ($a2) +/* 0ED9AC 7F0B8E7C 5560FFEC */ bnezl $t3, .L7F0B8E30 +/* 0ED9B0 7F0B8E80 90CF0004 */ lbu $t7, 4($a2) +.L7F0B8E84: +/* 0ED9B4 7F0B8E84 00601025 */ move $v0, $v1 +.L7F0B8E88: +/* 0ED9B8 7F0B8E88 8FB00008 */ lw $s0, 8($sp) +/* 0ED9BC 7F0B8E8C 8FB1000C */ lw $s1, 0xc($sp) +/* 0ED9C0 7F0B8E90 03E00008 */ jr $ra +/* 0ED9C4 7F0B8E94 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B8E98(s32 arg0, s32 arg1) { + s32 temp_v1; + void *temp_v0; + s32 temp_at; + void *phi_a2; + void *phi_v0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + phi_v1_2 = 0; + if (num_visible_rooms_in_cur_global_vis_packet > 0) + { + // Node 1 + phi_v1_2 = 0; + if (arg1 > 0) + { + // Node 2 + phi_a2 = (0 + &list_visible_rooms_in_cur_global_vis_packet); + phi_v0 = (arg0 + (0 * 4)); + phi_v1 = 0; +loop_3: + // Node 3 + temp_v1 = (phi_v1 + 1); + temp_v0 = (phi_v0 + 4); + temp_v0->unk-4 = (?32) *phi_a2; + temp_at = (temp_v1 < arg1); + phi_v1_2 = temp_v1; + if (temp_at != 0) + { + // Node 4 + phi_a2 = (phi_a2 + 1); + phi_v0 = temp_v0; + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (temp_at != 0) + { + goto loop_3; + } + } + } + } + // Node 5 + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8E98 +/* 0ED9C8 7F0B8E98 3C078008 */ lui $a3, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED9CC 7F0B8E9C 24E7C038 */ addiu $a3, %lo(num_visible_rooms_in_cur_global_vis_packet) # addiu $a3, $a3, -0x3fc8 +/* 0ED9D0 7F0B8EA0 8CEE0000 */ lw $t6, ($a3) +/* 0ED9D4 7F0B8EA4 00001825 */ move $v1, $zero +/* 0ED9D8 7F0B8EA8 19C00012 */ blez $t6, .L7F0B8EF4 +/* 0ED9DC 7F0B8EAC 00000000 */ nop +/* 0ED9E0 7F0B8EB0 18A00010 */ blez $a1, .L7F0B8EF4 +/* 0ED9E4 7F0B8EB4 00007880 */ sll $t7, $zero, 2 +/* 0ED9E8 7F0B8EB8 3C188008 */ lui $t8, %hi(list_visible_rooms_in_cur_global_vis_packet) +/* 0ED9EC 7F0B8EBC 2718BFA0 */ addiu $t8, %lo(list_visible_rooms_in_cur_global_vis_packet) # addiu $t8, $t8, -0x4060 +/* 0ED9F0 7F0B8EC0 00183021 */ addu $a2, $zero, $t8 +/* 0ED9F4 7F0B8EC4 008F1021 */ addu $v0, $a0, $t7 +/* 0ED9F8 7F0B8EC8 90D90000 */ lbu $t9, ($a2) +.L7F0B8ECC: +/* 0ED9FC 7F0B8ECC 24630001 */ addiu $v1, $v1, 1 +/* 0EDA00 7F0B8ED0 24420004 */ addiu $v0, $v0, 4 +/* 0EDA04 7F0B8ED4 AC59FFFC */ sw $t9, -4($v0) +/* 0EDA08 7F0B8ED8 8CE80000 */ lw $t0, ($a3) +/* 0EDA0C 7F0B8EDC 24C60001 */ addiu $a2, $a2, 1 +/* 0EDA10 7F0B8EE0 0068082A */ slt $at, $v1, $t0 +/* 0EDA14 7F0B8EE4 10200003 */ beqz $at, .L7F0B8EF4 +/* 0EDA18 7F0B8EE8 0065082A */ slt $at, $v1, $a1 +/* 0EDA1C 7F0B8EEC 5420FFF7 */ bnezl $at, .L7F0B8ECC +/* 0EDA20 7F0B8EF0 90D90000 */ lbu $t9, ($a2) +.L7F0B8EF4: +/* 0EDA24 7F0B8EF4 03E00008 */ jr $ra +/* 0EDA28 7F0B8EF8 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8EFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8EFC +/* 0EDA2C 7F0B8EFC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0EDA30 7F0B8F00 3C078008 */ lui $a3, %hi(ptr_bgdata_portals) +/* 0EDA34 7F0B8F04 8CE7FF80 */ lw $a3, %lo(ptr_bgdata_portals)($a3) +/* 0EDA38 7F0B8F08 AFB2000C */ sw $s2, 0xc($sp) +/* 0EDA3C 7F0B8F0C AFB10008 */ sw $s1, 8($sp) +/* 0EDA40 7F0B8F10 AFB00004 */ sw $s0, 4($sp) +/* 0EDA44 7F0B8F14 8CEE0000 */ lw $t6, ($a3) +/* 0EDA48 7F0B8F18 00808025 */ move $s0, $a0 +/* 0EDA4C 7F0B8F1C 00A08825 */ move $s1, $a1 +/* 0EDA50 7F0B8F20 00C09025 */ move $s2, $a2 +/* 0EDA54 7F0B8F24 11C00024 */ beqz $t6, .L7F0B8FB8 +/* 0EDA58 7F0B8F28 00001825 */ move $v1, $zero +/* 0EDA5C 7F0B8F2C 00002025 */ move $a0, $zero +/* 0EDA60 7F0B8F30 00E02825 */ move $a1, $a3 +/* 0EDA64 7F0B8F34 90A20004 */ lbu $v0, 4($a1) +.L7F0B8F38: +/* 0EDA68 7F0B8F38 90A60005 */ lbu $a2, 5($a1) +/* 0EDA6C 7F0B8F3C 14500003 */ bne $v0, $s0, .L7F0B8F4C +/* 0EDA70 7F0B8F40 00000000 */ nop +/* 0EDA74 7F0B8F44 00C01025 */ move $v0, $a2 +/* 0EDA78 7F0B8F48 02003025 */ move $a2, $s0 +.L7F0B8F4C: +/* 0EDA7C 7F0B8F4C 54D00016 */ bnel $a2, $s0, .L7F0B8FA8 +/* 0EDA80 7F0B8F50 8CA90008 */ lw $t1, 8($a1) +/* 0EDA84 7F0B8F54 18600008 */ blez $v1, .L7F0B8F78 +/* 0EDA88 7F0B8F58 00003025 */ move $a2, $zero +/* 0EDA8C 7F0B8F5C 02203825 */ move $a3, $s1 +.L7F0B8F60: +/* 0EDA90 7F0B8F60 8CEF0000 */ lw $t7, ($a3) +/* 0EDA94 7F0B8F64 24C60001 */ addiu $a2, $a2, 1 +/* 0EDA98 7F0B8F68 504F000F */ beql $v0, $t7, .L7F0B8FA8 +/* 0EDA9C 7F0B8F6C 8CA90008 */ lw $t1, 8($a1) +/* 0EDAA0 7F0B8F70 14C3FFFB */ bne $a2, $v1, .L7F0B8F60 +/* 0EDAA4 7F0B8F74 24E70004 */ addiu $a3, $a3, 4 +.L7F0B8F78: +/* 0EDAA8 7F0B8F78 0003C080 */ sll $t8, $v1, 2 +/* 0EDAAC 7F0B8F7C 24630001 */ addiu $v1, $v1, 1 +/* 0EDAB0 7F0B8F80 0238C821 */ addu $t9, $s1, $t8 +/* 0EDAB4 7F0B8F84 0072082A */ slt $at, $v1, $s2 +/* 0EDAB8 7F0B8F88 14200003 */ bnez $at, .L7F0B8F98 +/* 0EDABC 7F0B8F8C AF220000 */ sw $v0, ($t9) +/* 0EDAC0 7F0B8F90 1000000A */ b .L7F0B8FBC +/* 0EDAC4 7F0B8F94 00601025 */ move $v0, $v1 +.L7F0B8F98: +/* 0EDAC8 7F0B8F98 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0EDACC 7F0B8F9C 8D08FF80 */ lw $t0, %lo(ptr_bgdata_portals)($t0) +/* 0EDAD0 7F0B8FA0 01042821 */ addu $a1, $t0, $a0 +/* 0EDAD4 7F0B8FA4 8CA90008 */ lw $t1, 8($a1) +.L7F0B8FA8: +/* 0EDAD8 7F0B8FA8 24840008 */ addiu $a0, $a0, 8 +/* 0EDADC 7F0B8FAC 24A50008 */ addiu $a1, $a1, 8 +/* 0EDAE0 7F0B8FB0 5520FFE1 */ bnezl $t1, .L7F0B8F38 +/* 0EDAE4 7F0B8FB4 90A20004 */ lbu $v0, 4($a1) +.L7F0B8FB8: +/* 0EDAE8 7F0B8FB8 00601025 */ move $v0, $v1 +.L7F0B8FBC: +/* 0EDAEC 7F0B8FBC 8FB00004 */ lw $s0, 4($sp) +/* 0EDAF0 7F0B8FC0 8FB10008 */ lw $s1, 8($sp) +/* 0EDAF4 7F0B8FC4 8FB2000C */ lw $s2, 0xc($sp) +/* 0EDAF8 7F0B8FC8 03E00008 */ jr $ra +/* 0EDAFC 7F0B8FCC 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8FD0(s32 arg0, s32 arg1) { + s32 temp_v0; + s32 temp_v1; + void *phi_a0; + + // Node 0 + phi_a0 = ptr_bgdata_portals; + if (*ptr_bgdata_portals != 0) + { +loop_1: + // Node 1 + temp_v0 = phi_a0->unk4; + temp_v1 = phi_a0->unk5; + if (temp_v0 == arg0) + { + // Node 2 + if (temp_v1 == arg1) + { + // Node 3 + return 1; + } + } + // Node 4 + if (temp_v1 == arg0) + { + // Node 5 + if (temp_v0 == arg1) + { + // Node 6 + return 1; + } + } + // Node 7 + phi_a0 = (phi_a0 + 8); + if (phi_a0->unk8 != 0) + { + goto loop_1; + } + } + // Node 8 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8FD0 +/* 0EDB00 7F0B8FD0 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0EDB04 7F0B8FD4 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0EDB08 7F0B8FD8 00803025 */ move $a2, $a0 +/* 0EDB0C 7F0B8FDC 8C6E0000 */ lw $t6, ($v1) +/* 0EDB10 7F0B8FE0 00602025 */ move $a0, $v1 +/* 0EDB14 7F0B8FE4 51C00014 */ beql $t6, $zero, .L7F0B9038 +/* 0EDB18 7F0B8FE8 00001025 */ move $v0, $zero +/* 0EDB1C 7F0B8FEC 90820004 */ lbu $v0, 4($a0) +.L7F0B8FF0: +/* 0EDB20 7F0B8FF0 90830005 */ lbu $v1, 5($a0) +/* 0EDB24 7F0B8FF4 14460005 */ bne $v0, $a2, .L7F0B900C +/* 0EDB28 7F0B8FF8 00000000 */ nop +/* 0EDB2C 7F0B8FFC 14650003 */ bne $v1, $a1, .L7F0B900C +/* 0EDB30 7F0B9000 00000000 */ nop +/* 0EDB34 7F0B9004 03E00008 */ jr $ra +/* 0EDB38 7F0B9008 24020001 */ li $v0, 1 + +.L7F0B900C: +/* 0EDB3C 7F0B900C 54660006 */ bnel $v1, $a2, .L7F0B9028 +/* 0EDB40 7F0B9010 8C8F0008 */ lw $t7, 8($a0) +/* 0EDB44 7F0B9014 54450004 */ bnel $v0, $a1, .L7F0B9028 +/* 0EDB48 7F0B9018 8C8F0008 */ lw $t7, 8($a0) +/* 0EDB4C 7F0B901C 03E00008 */ jr $ra +/* 0EDB50 7F0B9020 24020001 */ li $v0, 1 + +/* 0EDB54 7F0B9024 8C8F0008 */ lw $t7, 8($a0) +.L7F0B9028: +/* 0EDB58 7F0B9028 24840008 */ addiu $a0, $a0, 8 +/* 0EDB5C 7F0B902C 55E0FFF0 */ bnezl $t7, .L7F0B8FF0 +/* 0EDB60 7F0B9030 90820004 */ lbu $v0, 4($a0) +/* 0EDB64 7F0B9034 00001025 */ move $v0, $zero +.L7F0B9038: +/* 0EDB68 7F0B9038 03E00008 */ jr $ra +/* 0EDB6C 7F0B903C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9040(s32 arg0, s32 arg1, f32 arg2) { + void *temp_v0; + s32 temp_f16; + + // Node 0 + temp_v0 = ((arg0 * 4) + &D_80041404); + temp_f16 = (s32) (((f32) *temp_v0 * arg1) + arg2); + *temp_v0 = temp_f16; + return (f32) temp_f16; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9040 +/* 0EDB70 7F0B9040 3C0F8004 */ lui $t7, %hi(D_80041404) +/* 0EDB74 7F0B9044 25EF1404 */ addiu $t7, %lo(D_80041404) # addiu $t7, $t7, 0x1404 +/* 0EDB78 7F0B9048 00047080 */ sll $t6, $a0, 2 +/* 0EDB7C 7F0B904C 01CF1021 */ addu $v0, $t6, $t7 +/* 0EDB80 7F0B9050 8C580000 */ lw $t8, ($v0) +/* 0EDB84 7F0B9054 44856000 */ mtc1 $a1, $f12 +/* 0EDB88 7F0B9058 44867000 */ mtc1 $a2, $f14 +/* 0EDB8C 7F0B905C 44982000 */ mtc1 $t8, $f4 +/* 0EDB90 7F0B9060 00000000 */ nop +/* 0EDB94 7F0B9064 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDB98 7F0B9068 460C3202 */ mul.s $f8, $f6, $f12 +/* 0EDB9C 7F0B906C 460E4280 */ add.s $f10, $f8, $f14 +/* 0EDBA0 7F0B9070 4600540D */ trunc.w.s $f16, $f10 +/* 0EDBA4 7F0B9074 44098000 */ mfc1 $t1, $f16 +/* 0EDBA8 7F0B9078 00000000 */ nop +/* 0EDBAC 7F0B907C 44899000 */ mtc1 $t1, $f18 +/* 0EDBB0 7F0B9080 AC490000 */ sw $t1, ($v0) +/* 0EDBB4 7F0B9084 03E00008 */ jr $ra +/* 0EDBB8 7F0B9088 46809020 */ cvt.s.w $f0, $f18 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B908C(void) { + s16 sp1E; + f32 sp20; + f32 sp24; + f32 sp28; + f32 sp2C; + + // Node 0 + sp2C = (f32) D_80041404; + sp24 = (f32) D_80041404.unk4; + sp28 = (f32) ((f32) D_8004140C + (f32) get_video2_settings_txtClipW()); + sp20 = (f32) ((f32) D_80041410 + (f32) get_video2_settings_txtClipH()); + pPlayer->unk1118 = (f32) get_video2_settings_ulx(); + if (pPlayer->unk1118 < sp2C) + { + // Node 1 + pPlayer->unk1118 = sp2C; + } + // Node 2 + if (sp28 < pPlayer->unk1118) + { + // Node 3 + pPlayer->unk1118 = sp28; + } + // Node 4 + pPlayer->unk111C = (f32) get_video2_settings_uly(sp28, &pPlayer); + if (pPlayer->unk111C < sp24) + { + // Node 5 + pPlayer->unk111C = sp24; + } + // Node 6 + if (sp20 < pPlayer->unk111C) + { + // Node 7 + pPlayer->unk111C = sp20; + } + // Node 8 + sp1E = get_video2_settings_ulx(sp20, &pPlayer); + pPlayer->unk1120 = (f32) (get_video2_settings_width() + sp1E); + if (pPlayer->unk1120 < sp2C) + { + // Node 9 + pPlayer->unk1120 = sp2C; + } + // Node 10 + if (sp28 < pPlayer->unk1120) + { + // Node 11 + pPlayer->unk1120 = sp28; + } + // Node 12 + sp1E = get_video2_settings_uly(&pPlayer); + pPlayer->unk1124 = (f32) (get_video2_settings_height() + sp1E); + if (pPlayer->unk1124 < sp24) + { + // Node 13 + pPlayer->unk1124 = sp24; + } + // Node 14 + if (sp20 < pPlayer->unk1124) + { + // Node 15 + pPlayer->unk1124 = sp20; + } + // Node 16 + return pPlayer->unk1124; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B908C +/* 0EDBBC 7F0B908C 3C028004 */ lui $v0, %hi(D_80041404) +/* 0EDBC0 7F0B9090 24421404 */ addiu $v0, %lo(D_80041404) # addiu $v0, $v0, 0x1404 +/* 0EDBC4 7F0B9094 8C4E0000 */ lw $t6, ($v0) +/* 0EDBC8 7F0B9098 8C4F0004 */ lw $t7, 4($v0) +/* 0EDBCC 7F0B909C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EDBD0 7F0B90A0 448E2000 */ mtc1 $t6, $f4 +/* 0EDBD4 7F0B90A4 448F4000 */ mtc1 $t7, $f8 +/* 0EDBD8 7F0B90A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EDBDC 7F0B90AC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDBE0 7F0B90B0 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDBE4 7F0B90B4 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 0EDBE8 7F0B90B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0EDBEC 7F0B90BC E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0EDBF0 7F0B90C0 3C188004 */ lui $t8, %hi(D_8004140C) +/* 0EDBF4 7F0B90C4 8F18140C */ lw $t8, %lo(D_8004140C)($t8) +/* 0EDBF8 7F0B90C8 44822000 */ mtc1 $v0, $f4 +/* 0EDBFC 7F0B90CC 44988000 */ mtc1 $t8, $f16 +/* 0EDC00 7F0B90D0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDC04 7F0B90D4 468084A0 */ cvt.s.w $f18, $f16 +/* 0EDC08 7F0B90D8 46069200 */ add.s $f8, $f18, $f6 +/* 0EDC0C 7F0B90DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0EDC10 7F0B90E0 E7A80028 */ swc1 $f8, 0x28($sp) +/* 0EDC14 7F0B90E4 3C198004 */ lui $t9, %hi(D_80041410) +/* 0EDC18 7F0B90E8 8F391410 */ lw $t9, %lo(D_80041410)($t9) +/* 0EDC1C 7F0B90EC 44822000 */ mtc1 $v0, $f4 +/* 0EDC20 7F0B90F0 44995000 */ mtc1 $t9, $f10 +/* 0EDC24 7F0B90F4 468024A0 */ cvt.s.w $f18, $f4 +/* 0EDC28 7F0B90F8 46805420 */ cvt.s.w $f16, $f10 +/* 0EDC2C 7F0B90FC 46128180 */ add.s $f6, $f16, $f18 +/* 0EDC30 7F0B9100 0C001145 */ jal get_video2_settings_ulx +/* 0EDC34 7F0B9104 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0EDC38 7F0B9108 44824000 */ mtc1 $v0, $f8 +/* 0EDC3C 7F0B910C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDC40 7F0B9110 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDC44 7F0B9114 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDC48 7F0B9118 8C880000 */ lw $t0, ($a0) +/* 0EDC4C 7F0B911C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 0EDC50 7F0B9120 E50A1118 */ swc1 $f10, 0x1118($t0) +/* 0EDC54 7F0B9124 8C830000 */ lw $v1, ($a0) +/* 0EDC58 7F0B9128 C4601118 */ lwc1 $f0, 0x1118($v1) +/* 0EDC5C 7F0B912C 4602003C */ c.lt.s $f0, $f2 +/* 0EDC60 7F0B9130 00000000 */ nop +/* 0EDC64 7F0B9134 45020005 */ bc1fl .L7F0B914C +/* 0EDC68 7F0B9138 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0EDC6C 7F0B913C E4621118 */ swc1 $f2, 0x1118($v1) +/* 0EDC70 7F0B9140 8C830000 */ lw $v1, ($a0) +/* 0EDC74 7F0B9144 C4601118 */ lwc1 $f0, 0x1118($v1) +/* 0EDC78 7F0B9148 C7AC0028 */ lwc1 $f12, 0x28($sp) +.L7F0B914C: +/* 0EDC7C 7F0B914C 4600603C */ c.lt.s $f12, $f0 +/* 0EDC80 7F0B9150 00000000 */ nop +/* 0EDC84 7F0B9154 45000002 */ bc1f .L7F0B9160 +/* 0EDC88 7F0B9158 00000000 */ nop +/* 0EDC8C 7F0B915C E46C1118 */ swc1 $f12, 0x1118($v1) +.L7F0B9160: +/* 0EDC90 7F0B9160 0C001149 */ jal get_video2_settings_uly +/* 0EDC94 7F0B9164 00000000 */ nop +/* 0EDC98 7F0B9168 44822000 */ mtc1 $v0, $f4 +/* 0EDC9C 7F0B916C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDCA0 7F0B9170 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDCA4 7F0B9174 46802420 */ cvt.s.w $f16, $f4 +/* 0EDCA8 7F0B9178 8C890000 */ lw $t1, ($a0) +/* 0EDCAC 7F0B917C C7A20024 */ lwc1 $f2, 0x24($sp) +/* 0EDCB0 7F0B9180 E530111C */ swc1 $f16, 0x111c($t1) +/* 0EDCB4 7F0B9184 8C830000 */ lw $v1, ($a0) +/* 0EDCB8 7F0B9188 C460111C */ lwc1 $f0, 0x111c($v1) +/* 0EDCBC 7F0B918C 4602003C */ c.lt.s $f0, $f2 +/* 0EDCC0 7F0B9190 00000000 */ nop +/* 0EDCC4 7F0B9194 45020005 */ bc1fl .L7F0B91AC +/* 0EDCC8 7F0B9198 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0EDCCC 7F0B919C E462111C */ swc1 $f2, 0x111c($v1) +/* 0EDCD0 7F0B91A0 8C830000 */ lw $v1, ($a0) +/* 0EDCD4 7F0B91A4 C460111C */ lwc1 $f0, 0x111c($v1) +/* 0EDCD8 7F0B91A8 C7AC0020 */ lwc1 $f12, 0x20($sp) +.L7F0B91AC: +/* 0EDCDC 7F0B91AC 4600603C */ c.lt.s $f12, $f0 +/* 0EDCE0 7F0B91B0 00000000 */ nop +/* 0EDCE4 7F0B91B4 45000002 */ bc1f .L7F0B91C0 +/* 0EDCE8 7F0B91B8 00000000 */ nop +/* 0EDCEC 7F0B91BC E46C111C */ swc1 $f12, 0x111c($v1) +.L7F0B91C0: +/* 0EDCF0 7F0B91C0 0C001145 */ jal get_video2_settings_ulx +/* 0EDCF4 7F0B91C4 00000000 */ nop +/* 0EDCF8 7F0B91C8 0C001127 */ jal get_video2_settings_width +/* 0EDCFC 7F0B91CC A7A2001E */ sh $v0, 0x1e($sp) +/* 0EDD00 7F0B91D0 87AA001E */ lh $t2, 0x1e($sp) +/* 0EDD04 7F0B91D4 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDD08 7F0B91D8 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDD0C 7F0B91DC 004A5821 */ addu $t3, $v0, $t2 +/* 0EDD10 7F0B91E0 448B9000 */ mtc1 $t3, $f18 +/* 0EDD14 7F0B91E4 8C8C0000 */ lw $t4, ($a0) +/* 0EDD18 7F0B91E8 468091A0 */ cvt.s.w $f6, $f18 +/* 0EDD1C 7F0B91EC E5861120 */ swc1 $f6, 0x1120($t4) +/* 0EDD20 7F0B91F0 8C830000 */ lw $v1, ($a0) +/* 0EDD24 7F0B91F4 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0EDD28 7F0B91F8 C4601120 */ lwc1 $f0, 0x1120($v1) +/* 0EDD2C 7F0B91FC 4608003C */ c.lt.s $f0, $f8 +/* 0EDD30 7F0B9200 00000000 */ nop +/* 0EDD34 7F0B9204 45020005 */ bc1fl .L7F0B921C +/* 0EDD38 7F0B9208 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0EDD3C 7F0B920C E4681120 */ swc1 $f8, 0x1120($v1) +/* 0EDD40 7F0B9210 8C830000 */ lw $v1, ($a0) +/* 0EDD44 7F0B9214 C4601120 */ lwc1 $f0, 0x1120($v1) +/* 0EDD48 7F0B9218 C7AA0028 */ lwc1 $f10, 0x28($sp) +.L7F0B921C: +/* 0EDD4C 7F0B921C 4600503C */ c.lt.s $f10, $f0 +/* 0EDD50 7F0B9220 00000000 */ nop +/* 0EDD54 7F0B9224 45000002 */ bc1f .L7F0B9230 +/* 0EDD58 7F0B9228 00000000 */ nop +/* 0EDD5C 7F0B922C E46A1120 */ swc1 $f10, 0x1120($v1) +.L7F0B9230: +/* 0EDD60 7F0B9230 0C001149 */ jal get_video2_settings_uly +/* 0EDD64 7F0B9234 00000000 */ nop +/* 0EDD68 7F0B9238 0C00112B */ jal get_video2_settings_height +/* 0EDD6C 7F0B923C A7A2001E */ sh $v0, 0x1e($sp) +/* 0EDD70 7F0B9240 87AD001E */ lh $t5, 0x1e($sp) +/* 0EDD74 7F0B9244 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDD78 7F0B9248 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDD7C 7F0B924C 004D7021 */ addu $t6, $v0, $t5 +/* 0EDD80 7F0B9250 448E2000 */ mtc1 $t6, $f4 +/* 0EDD84 7F0B9254 8C8F0000 */ lw $t7, ($a0) +/* 0EDD88 7F0B9258 46802420 */ cvt.s.w $f16, $f4 +/* 0EDD8C 7F0B925C E5F01124 */ swc1 $f16, 0x1124($t7) +/* 0EDD90 7F0B9260 8C830000 */ lw $v1, ($a0) +/* 0EDD94 7F0B9264 C7B20024 */ lwc1 $f18, 0x24($sp) +/* 0EDD98 7F0B9268 C4601124 */ lwc1 $f0, 0x1124($v1) +/* 0EDD9C 7F0B926C 4612003C */ c.lt.s $f0, $f18 +/* 0EDDA0 7F0B9270 00000000 */ nop +/* 0EDDA4 7F0B9274 45020006 */ bc1fl .L7F0B9290 +/* 0EDDA8 7F0B9278 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0EDDAC 7F0B927C E4721124 */ swc1 $f18, 0x1124($v1) +/* 0EDDB0 7F0B9280 3C038008 */ lui $v1, %hi(pPlayer) +/* 0EDDB4 7F0B9284 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0EDDB8 7F0B9288 C4601124 */ lwc1 $f0, 0x1124($v1) +/* 0EDDBC 7F0B928C C7A60020 */ lwc1 $f6, 0x20($sp) +.L7F0B9290: +/* 0EDDC0 7F0B9290 4600303C */ c.lt.s $f6, $f0 +/* 0EDDC4 7F0B9294 00000000 */ nop +/* 0EDDC8 7F0B9298 45020003 */ bc1fl .L7F0B92A8 +/* 0EDDCC 7F0B929C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EDDD0 7F0B92A0 E4661124 */ swc1 $f6, 0x1124($v1) +/* 0EDDD4 7F0B92A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B92A8: +/* 0EDDD8 7F0B92A8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EDDDC 7F0B92AC 03E00008 */ jr $ra +/* 0EDDE0 7F0B92B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B92B4(s32 arg0, void *arg1) { + void *temp_a2; + s32 temp_v0; + f32 temp_f18; + void *temp_a2_2; + s32 temp_v0_2; + void *temp_v1; + f32 temp_f18_2; + f32 phi_f18; + void *phi_v1; + s32 phi_v0; + f32 phi_f18_2; + void *phi_v1_2; + void *phi_a2; + + // Node 0 + temp_a2 = ((arg0 * 0x50) + &array_room_info); + temp_v0 = (0 + 1); + temp_f18 = ((temp_a2->unk44 + temp_a2->unk38) * 0.5f); + phi_f18 = temp_f18; + phi_v1 = arg1; + phi_v0 = temp_v0; + phi_f18_2 = temp_f18; + phi_v1_2 = arg1; + phi_a2 = temp_a2; + if (temp_v0 != 3) + { +loop_1: + // Node 1 + *phi_v1 = (f32) phi_f18; + temp_a2_2 = (phi_a2 + 4); + temp_v0_2 = (phi_v0 + 1); + temp_v1 = (phi_v1 + 4); + temp_f18_2 = ((phi_a2->unk48 + temp_a2_2->unk38) * 0.5f); + phi_f18 = temp_f18_2; + phi_v1 = temp_v1; + phi_v0 = temp_v0_2; + phi_f18_2 = temp_f18_2; + phi_v1_2 = temp_v1; + phi_a2 = temp_a2_2; + if (temp_v0_2 != 3) + { + goto loop_1; + } + } + // Node 2 + (phi_v1_2 + 4)->unk-4 = (f32) phi_f18_2; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B92B4 +/* 0EDDE4 7F0B92B4 00047080 */ sll $t6, $a0, 2 +/* 0EDDE8 7F0B92B8 01C47021 */ addu $t6, $t6, $a0 +/* 0EDDEC 7F0B92BC 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EDDF0 7F0B92C0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EDDF4 7F0B92C4 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EDDF8 7F0B92C8 000E7100 */ sll $t6, $t6, 4 +/* 0EDDFC 7F0B92CC 44810000 */ mtc1 $at, $f0 +/* 0EDE00 7F0B92D0 01CF3021 */ addu $a2, $t6, $t7 +/* 0EDE04 7F0B92D4 24040003 */ li $a0, 3 +/* 0EDE08 7F0B92D8 00001025 */ move $v0, $zero +/* 0EDE0C 7F0B92DC 00A01825 */ move $v1, $a1 +/* 0EDE10 7F0B92E0 C4D00044 */ lwc1 $f16, 0x44($a2) +/* 0EDE14 7F0B92E4 C4CE0038 */ lwc1 $f14, 0x38($a2) +/* 0EDE18 7F0B92E8 24420001 */ addiu $v0, $v0, 1 +/* 0EDE1C 7F0B92EC 460E8380 */ add.s $f14, $f16, $f14 +/* 0EDE20 7F0B92F0 46007482 */ mul.s $f18, $f14, $f0 +/* 0EDE24 7F0B92F4 5044000C */ beql $v0, $a0, .L7F0B9328 +/* 0EDE28 7F0B92F8 24C60004 */ addiu $a2, $a2, 4 +/* 0EDE2C 7F0B92FC E4720000 */ swc1 $f18, ($v1) +.L7F0B9300: +/* 0EDE30 7F0B9300 C4D00048 */ lwc1 $f16, 0x48($a2) +/* 0EDE34 7F0B9304 24C60004 */ addiu $a2, $a2, 4 +/* 0EDE38 7F0B9308 C4CE0038 */ lwc1 $f14, 0x38($a2) +/* 0EDE3C 7F0B930C 24420001 */ addiu $v0, $v0, 1 +/* 0EDE40 7F0B9310 24630004 */ addiu $v1, $v1, 4 +/* 0EDE44 7F0B9314 460E8380 */ add.s $f14, $f16, $f14 +/* 0EDE48 7F0B9318 46007482 */ mul.s $f18, $f14, $f0 +/* 0EDE4C 7F0B931C 5444FFF8 */ bnel $v0, $a0, .L7F0B9300 +/* 0EDE50 7F0B9320 E4720000 */ swc1 $f18, ($v1) +/* 0EDE54 7F0B9324 24C60004 */ addiu $a2, $a2, 4 +.L7F0B9328: +/* 0EDE58 7F0B9328 24630004 */ addiu $v1, $v1, 4 +/* 0EDE5C 7F0B932C E472FFFC */ swc1 $f18, -4($v1) +/* 0EDE60 7F0B9330 03E00008 */ jr $ra +/* 0EDE64 7F0B9334 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9338(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9338 +/* 0EDE68 7F0B9338 3C088008 */ lui $t0, %hi(ptr_bgdata_room_fileposition_list) +/* 0EDE6C 7F0B933C 2508FF8C */ addiu $t0, %lo(ptr_bgdata_room_fileposition_list) # addiu $t0, $t0, -0x74 +/* 0EDE70 7F0B9340 8D0E0000 */ lw $t6, ($t0) +/* 0EDE74 7F0B9344 00041080 */ sll $v0, $a0, 2 +/* 0EDE78 7F0B9348 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0EDE7C 7F0B934C 00441023 */ subu $v0, $v0, $a0 +/* 0EDE80 7F0B9350 000210C0 */ sll $v0, $v0, 3 +/* 0EDE84 7F0B9354 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EDE88 7F0B9358 AFB00018 */ sw $s0, 0x18($sp) +/* 0EDE8C 7F0B935C 01C24821 */ addu $t1, $t6, $v0 +/* 0EDE90 7F0B9360 8D2F0000 */ lw $t7, ($t1) +/* 0EDE94 7F0B9364 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EDE98 7F0B9368 00808025 */ move $s0, $a0 +/* 0EDE9C 7F0B936C 15E00035 */ bnez $t7, .L7F0B9444 +/* 0EDEA0 7F0B9370 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EDEA4 7F0B9374 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007B9DC) +/* 0EDEA8 7F0B9378 8F18B9DC */ lw $t8, %lo(dword_CODE_bss_8007B9DC)($t8) +/* 0EDEAC 7F0B937C 0004C880 */ sll $t9, $a0, 2 +/* 0EDEB0 7F0B9380 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007B128) +/* 0EDEB4 7F0B9384 0098082A */ slt $at, $a0, $t8 +/* 0EDEB8 7F0B9388 1020008E */ beqz $at, .L7F0B95C4 +/* 0EDEBC 7F0B938C 01795821 */ addu $t3, $t3, $t9 +/* 0EDEC0 7F0B9390 8D6BB128 */ lw $t3, %lo(dword_CODE_bss_8007B128)($t3) +/* 0EDEC4 7F0B9394 00106080 */ sll $t4, $s0, 2 +/* 0EDEC8 7F0B9398 01906021 */ addu $t4, $t4, $s0 +/* 0EDECC 7F0B939C 11600089 */ beqz $t3, .L7F0B95C4 +/* 0EDED0 7F0B93A0 00002025 */ move $a0, $zero +/* 0EDED4 7F0B93A4 00107080 */ sll $t6, $s0, 2 +/* 0EDED8 7F0B93A8 01D07023 */ subu $t6, $t6, $s0 +/* 0EDEDC 7F0B93AC 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0EDEE0 7F0B93B0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007B358) +/* 0EDEE4 7F0B93B4 25EFB358 */ addiu $t7, %lo(dword_CODE_bss_8007B358) # addiu $t7, $t7, -0x4ca8 +/* 0EDEE8 7F0B93B8 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0EDEEC 7F0B93BC 000E7080 */ sll $t6, $t6, 2 +/* 0EDEF0 7F0B93C0 000C6100 */ sll $t4, $t4, 4 +/* 0EDEF4 7F0B93C4 018D2821 */ addu $a1, $t4, $t5 +/* 0EDEF8 7F0B93C8 01CF3021 */ addu $a2, $t6, $t7 +/* 0EDEFC 7F0B93CC 2407000C */ li $a3, 12 +.L7F0B93D0: +/* 0EDF00 7F0B93D0 84C20000 */ lh $v0, ($a2) +/* 0EDF04 7F0B93D4 84C30006 */ lh $v1, 6($a2) +/* 0EDF08 7F0B93D8 8D0B0000 */ lw $t3, ($t0) +/* 0EDF0C 7F0B93DC 44822000 */ mtc1 $v0, $f4 +/* 0EDF10 7F0B93E0 44834000 */ mtc1 $v1, $f8 +/* 0EDF14 7F0B93E4 0062C021 */ addu $t8, $v1, $v0 +/* 0EDF18 7F0B93E8 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDF1C 7F0B93EC 00106080 */ sll $t4, $s0, 2 +/* 0EDF20 7F0B93F0 01906023 */ subu $t4, $t4, $s0 +/* 0EDF24 7F0B93F4 000C60C0 */ sll $t4, $t4, 3 +/* 0EDF28 7F0B93F8 016C6821 */ addu $t5, $t3, $t4 +/* 0EDF2C 7F0B93FC 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDF30 7F0B9400 01A47021 */ addu $t6, $t5, $a0 +/* 0EDF34 7F0B9404 24840004 */ addiu $a0, $a0, 4 +/* 0EDF38 7F0B9408 E4A60038 */ swc1 $f6, 0x38($a1) +/* 0EDF3C 7F0B940C 24A50004 */ addiu $a1, $a1, 4 +/* 0EDF40 7F0B9410 24C60002 */ addiu $a2, $a2, 2 +/* 0EDF44 7F0B9414 E4AA0040 */ swc1 $f10, 0x40($a1) +/* 0EDF48 7F0B9418 07010003 */ bgez $t8, .L7F0B9428 +/* 0EDF4C 7F0B941C 0018C843 */ sra $t9, $t8, 1 +/* 0EDF50 7F0B9420 27010001 */ addiu $at, $t8, 1 +/* 0EDF54 7F0B9424 0001C843 */ sra $t9, $at, 1 +.L7F0B9428: +/* 0EDF58 7F0B9428 44998000 */ mtc1 $t9, $f16 +/* 0EDF5C 7F0B942C 00000000 */ nop +/* 0EDF60 7F0B9430 468084A0 */ cvt.s.w $f18, $f16 +/* 0EDF64 7F0B9434 1487FFE6 */ bne $a0, $a3, .L7F0B93D0 +/* 0EDF68 7F0B9438 E5D2000C */ swc1 $f18, 0xc($t6) +/* 0EDF6C 7F0B943C 10000062 */ b .L7F0B95C8 +/* 0EDF70 7F0B9440 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B9444: +/* 0EDF74 7F0B9444 00107880 */ sll $t7, $s0, 2 +/* 0EDF78 7F0B9448 01F07821 */ addu $t7, $t7, $s0 +/* 0EDF7C 7F0B944C 000F7900 */ sll $t7, $t7, 4 +/* 0EDF80 7F0B9450 01F84021 */ addu $t0, $t7, $t8 +/* 0EDF84 7F0B9454 910A0002 */ lbu $t2, 2($t0) +/* 0EDF88 7F0B9458 02002025 */ move $a0, $s0 +/* 0EDF8C 7F0B945C 5540000C */ bnezl $t2, .L7F0B9490 +/* 0EDF90 7F0B9460 8D060004 */ lw $a2, 4($t0) +/* 0EDF94 7F0B9464 AFA20030 */ sw $v0, 0x30($sp) +/* 0EDF98 7F0B9468 AFA80028 */ sw $t0, 0x28($sp) +/* 0EDF9C 7F0B946C 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EDFA0 7F0B9470 A3AA0037 */ sb $t2, 0x37($sp) +/* 0EDFA4 7F0B9474 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list) +/* 0EDFA8 7F0B9478 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9) +/* 0EDFAC 7F0B947C 8FA20030 */ lw $v0, 0x30($sp) +/* 0EDFB0 7F0B9480 8FA80028 */ lw $t0, 0x28($sp) +/* 0EDFB4 7F0B9484 93AA0037 */ lbu $t2, 0x37($sp) +/* 0EDFB8 7F0B9488 03224821 */ addu $t1, $t9, $v0 +/* 0EDFBC 7F0B948C 8D060004 */ lw $a2, 4($t0) +.L7F0B9490: +/* 0EDFC0 7F0B9490 8D19001C */ lw $t9, 0x1c($t0) +/* 0EDFC4 7F0B9494 240B7FFF */ li $t3, 32767 +/* 0EDFC8 7F0B9498 240C7FFF */ li $t4, 32767 +/* 0EDFCC 7F0B949C 03263821 */ addu $a3, $t9, $a2 +/* 0EDFD0 7F0B94A0 240D7FFF */ li $t5, 32767 +/* 0EDFD4 7F0B94A4 240E8001 */ li $t6, -32767 +/* 0EDFD8 7F0B94A8 240F8001 */ li $t7, -32767 +/* 0EDFDC 7F0B94AC 24188001 */ li $t8, -32767 +/* 0EDFE0 7F0B94B0 00C7082B */ sltu $at, $a2, $a3 +/* 0EDFE4 7F0B94B4 A7AB0038 */ sh $t3, 0x38($sp) +/* 0EDFE8 7F0B94B8 A7AC003A */ sh $t4, 0x3a($sp) +/* 0EDFEC 7F0B94BC A7AD003C */ sh $t5, 0x3c($sp) +/* 0EDFF0 7F0B94C0 A7AE003E */ sh $t6, 0x3e($sp) +/* 0EDFF4 7F0B94C4 A7AF0040 */ sh $t7, 0x40($sp) +/* 0EDFF8 7F0B94C8 10200017 */ beqz $at, .L7F0B9528 +/* 0EDFFC 7F0B94CC A7B80042 */ sh $t8, 0x42($sp) +/* 0EE000 7F0B94D0 27A5003E */ addiu $a1, $sp, 0x3e +/* 0EE004 7F0B94D4 00C02025 */ move $a0, $a2 +.L7F0B94D8: +/* 0EE008 7F0B94D8 27A30038 */ addiu $v1, $sp, 0x38 +.L7F0B94DC: +/* 0EE00C 7F0B94DC 84820000 */ lh $v0, ($a0) +/* 0EE010 7F0B94E0 846B0000 */ lh $t3, ($v1) +/* 0EE014 7F0B94E4 004B082A */ slt $at, $v0, $t3 +/* 0EE018 7F0B94E8 50200004 */ beql $at, $zero, .L7F0B94FC +/* 0EE01C 7F0B94EC 846C0006 */ lh $t4, 6($v1) +/* 0EE020 7F0B94F0 A4620000 */ sh $v0, ($v1) +/* 0EE024 7F0B94F4 84820000 */ lh $v0, ($a0) +/* 0EE028 7F0B94F8 846C0006 */ lh $t4, 6($v1) +.L7F0B94FC: +/* 0EE02C 7F0B94FC 0182082A */ slt $at, $t4, $v0 +/* 0EE030 7F0B9500 50200003 */ beql $at, $zero, .L7F0B9510 +/* 0EE034 7F0B9504 24630002 */ addiu $v1, $v1, 2 +/* 0EE038 7F0B9508 A4620006 */ sh $v0, 6($v1) +/* 0EE03C 7F0B950C 24630002 */ addiu $v1, $v1, 2 +.L7F0B9510: +/* 0EE040 7F0B9510 1465FFF2 */ bne $v1, $a1, .L7F0B94DC +/* 0EE044 7F0B9514 24840002 */ addiu $a0, $a0, 2 +/* 0EE048 7F0B9518 24C60010 */ addiu $a2, $a2, 0x10 +/* 0EE04C 7F0B951C 00C7082B */ sltu $at, $a2, $a3 +/* 0EE050 7F0B9520 5420FFED */ bnezl $at, .L7F0B94D8 +/* 0EE054 7F0B9524 00C02025 */ move $a0, $a2 +.L7F0B9528: +/* 0EE058 7F0B9528 87AD0038 */ lh $t5, 0x38($sp) +/* 0EE05C 7F0B952C 87AE003A */ lh $t6, 0x3a($sp) +/* 0EE060 7F0B9530 C524000C */ lwc1 $f4, 0xc($t1) +/* 0EE064 7F0B9534 448D3000 */ mtc1 $t5, $f6 +/* 0EE068 7F0B9538 448E9000 */ mtc1 $t6, $f18 +/* 0EE06C 7F0B953C 87AF003C */ lh $t7, 0x3c($sp) +/* 0EE070 7F0B9540 46803220 */ cvt.s.w $f8, $f6 +/* 0EE074 7F0B9544 87B8003E */ lh $t8, 0x3e($sp) +/* 0EE078 7F0B9548 87B90040 */ lh $t9, 0x40($sp) +/* 0EE07C 7F0B954C 87AB0042 */ lh $t3, 0x42($sp) +/* 0EE080 7F0B9550 468091A0 */ cvt.s.w $f6, $f18 +/* 0EE084 7F0B9554 46082280 */ add.s $f10, $f4, $f8 +/* 0EE088 7F0B9558 E50A0038 */ swc1 $f10, 0x38($t0) +/* 0EE08C 7F0B955C C5300010 */ lwc1 $f16, 0x10($t1) +/* 0EE090 7F0B9560 448F5000 */ mtc1 $t7, $f10 +/* 0EE094 7F0B9564 46068100 */ add.s $f4, $f16, $f6 +/* 0EE098 7F0B9568 468054A0 */ cvt.s.w $f18, $f10 +/* 0EE09C 7F0B956C E504003C */ swc1 $f4, 0x3c($t0) +/* 0EE0A0 7F0B9570 C5280014 */ lwc1 $f8, 0x14($t1) +/* 0EE0A4 7F0B9574 44982000 */ mtc1 $t8, $f4 +/* 0EE0A8 7F0B9578 46124400 */ add.s $f16, $f8, $f18 +/* 0EE0AC 7F0B957C 468022A0 */ cvt.s.w $f10, $f4 +/* 0EE0B0 7F0B9580 E5100040 */ swc1 $f16, 0x40($t0) +/* 0EE0B4 7F0B9584 C526000C */ lwc1 $f6, 0xc($t1) +/* 0EE0B8 7F0B9588 44998000 */ mtc1 $t9, $f16 +/* 0EE0BC 7F0B958C 460A3200 */ add.s $f8, $f6, $f10 +/* 0EE0C0 7F0B9590 46808120 */ cvt.s.w $f4, $f16 +/* 0EE0C4 7F0B9594 E5080044 */ swc1 $f8, 0x44($t0) +/* 0EE0C8 7F0B9598 C5320010 */ lwc1 $f18, 0x10($t1) +/* 0EE0CC 7F0B959C 448B4000 */ mtc1 $t3, $f8 +/* 0EE0D0 7F0B95A0 46049180 */ add.s $f6, $f18, $f4 +/* 0EE0D4 7F0B95A4 46804420 */ cvt.s.w $f16, $f8 +/* 0EE0D8 7F0B95A8 E5060048 */ swc1 $f6, 0x48($t0) +/* 0EE0DC 7F0B95AC C52A0014 */ lwc1 $f10, 0x14($t1) +/* 0EE0E0 7F0B95B0 46105480 */ add.s $f18, $f10, $f16 +/* 0EE0E4 7F0B95B4 15400003 */ bnez $t2, .L7F0B95C4 +/* 0EE0E8 7F0B95B8 E512004C */ swc1 $f18, 0x4c($t0) +/* 0EE0EC 7F0B95BC 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EE0F0 7F0B95C0 02002025 */ move $a0, $s0 +.L7F0B95C4: +/* 0EE0F4 7F0B95C4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B95C8: +/* 0EE0F8 7F0B95C8 8FB00018 */ lw $s0, 0x18($sp) +/* 0EE0FC 7F0B95CC 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0EE100 7F0B95D0 03E00008 */ jr $ra +/* 0EE104 7F0B95D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B95D8(s32 arg0) { + void *temp_a2; + void *temp_t8; + s32 temp_t0; + void *temp_a2_2; + s32 temp_a1; + void *phi_v1; + void *phi_a2; + s32 phi_a1; + s32 phi_t0; + void *phi_t2; + + // Node 0 + phi_v1 = ptr_bgdata_portals; + if (*ptr_bgdata_portals != 0) + { +loop_1: + // Node 1 + if ((arg0 == phi_v1->unk4) || (arg0 == phi_v1->unk5)) + { + // Node 3 + temp_a2 = *phi_v1; + if (*temp_a2 > 0) + { + // Node 4 + phi_a1 = 0; + phi_a2 = temp_a2; +loop_5: + // Node 5 + phi_t0 = 0; + phi_t2 = ((arg0 * 0x50) + &array_room_info); +loop_6: + // Node 6 + temp_t8 = ((phi_a2 + (((phi_a1 * 4) - phi_a1) * 4)) + phi_t0); + temp_t0 = (phi_t0 + 4); + if (temp_t8->unk4 < phi_t2->unk38) + { + // Node 7 + phi_t2->unk38 = (f32) temp_t8->unk4; + } + // Node 8 + if (phi_t2->unk44 < temp_t8->unk4) + { + // Node 9 + phi_t2->unk44 = (f32) temp_t8->unk4; + } + // Node 10 + temp_a2_2 = *phi_v1; + phi_a2 = temp_a2_2; + phi_t0 = temp_t0; + phi_t2 = (phi_t2 + 4); + if (temp_t0 != 0xc) + { + goto loop_6; + } + // Node 11 + temp_a1 = (phi_a1 + 1); + phi_a1 = temp_a1; + phi_a2 = temp_a2_2; + if (temp_a1 < *temp_a2_2) + { + goto loop_5; + } + } + } + else + { + + } + // Node 12 + phi_v1 = (phi_v1 + 8); + if (phi_v1->unk8 != 0) + { + goto loop_1; + } + } + // Node 13 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B95D8 +/* 0EE108 7F0B95D8 3C058008 */ lui $a1, %hi(ptr_bgdata_portals) +/* 0EE10C 7F0B95DC 8CA5FF80 */ lw $a1, %lo(ptr_bgdata_portals)($a1) +/* 0EE110 7F0B95E0 00001025 */ move $v0, $zero +/* 0EE114 7F0B95E4 240B000C */ li $t3, 12 +/* 0EE118 7F0B95E8 8CAE0000 */ lw $t6, ($a1) +/* 0EE11C 7F0B95EC 00A01825 */ move $v1, $a1 +/* 0EE120 7F0B95F0 11C00034 */ beqz $t6, .L7F0B96C4 +/* 0EE124 7F0B95F4 00000000 */ nop +/* 0EE128 7F0B95F8 906F0004 */ lbu $t7, 4($v1) +.L7F0B95FC: +/* 0EE12C 7F0B95FC 508F0005 */ beql $a0, $t7, .L7F0B9614 +/* 0EE130 7F0B9600 8C660000 */ lw $a2, ($v1) +/* 0EE134 7F0B9604 90780005 */ lbu $t8, 5($v1) +/* 0EE138 7F0B9608 5498002B */ bnel $a0, $t8, .L7F0B96B8 +/* 0EE13C 7F0B960C 8C790008 */ lw $t9, 8($v1) +/* 0EE140 7F0B9610 8C660000 */ lw $a2, ($v1) +.L7F0B9614: +/* 0EE144 7F0B9614 00046080 */ sll $t4, $a0, 2 +/* 0EE148 7F0B9618 01846021 */ addu $t4, $t4, $a0 +/* 0EE14C 7F0B961C 90D90000 */ lbu $t9, ($a2) +/* 0EE150 7F0B9620 000C6100 */ sll $t4, $t4, 4 +/* 0EE154 7F0B9624 00002825 */ move $a1, $zero +/* 0EE158 7F0B9628 1B200022 */ blez $t9, .L7F0B96B4 +/* 0EE15C 7F0B962C 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0EE160 7F0B9630 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0EE164 7F0B9634 018D4821 */ addu $t1, $t4, $t5 +/* 0EE168 7F0B9638 00004025 */ move $t0, $zero +.L7F0B963C: +/* 0EE16C 7F0B963C 01205025 */ move $t2, $t1 +.L7F0B9640: +/* 0EE170 7F0B9640 00057080 */ sll $t6, $a1, 2 +/* 0EE174 7F0B9644 01C57023 */ subu $t6, $t6, $a1 +/* 0EE178 7F0B9648 000E7080 */ sll $t6, $t6, 2 +/* 0EE17C 7F0B964C 00CE7821 */ addu $t7, $a2, $t6 +/* 0EE180 7F0B9650 01E8C021 */ addu $t8, $t7, $t0 +/* 0EE184 7F0B9654 C7000004 */ lwc1 $f0, 4($t8) +/* 0EE188 7F0B9658 C5440038 */ lwc1 $f4, 0x38($t2) +/* 0EE18C 7F0B965C 25080004 */ addiu $t0, $t0, 4 +/* 0EE190 7F0B9660 4604003C */ c.lt.s $f0, $f4 +/* 0EE194 7F0B9664 00000000 */ nop +/* 0EE198 7F0B9668 45020004 */ bc1fl .L7F0B967C +/* 0EE19C 7F0B966C C5460044 */ lwc1 $f6, 0x44($t2) +/* 0EE1A0 7F0B9670 E5400038 */ swc1 $f0, 0x38($t2) +/* 0EE1A4 7F0B9674 24420001 */ addiu $v0, $v0, 1 +/* 0EE1A8 7F0B9678 C5460044 */ lwc1 $f6, 0x44($t2) +.L7F0B967C: +/* 0EE1AC 7F0B967C 4600303C */ c.lt.s $f6, $f0 +/* 0EE1B0 7F0B9680 00000000 */ nop +/* 0EE1B4 7F0B9684 45020004 */ bc1fl .L7F0B9698 +/* 0EE1B8 7F0B9688 254A0004 */ addiu $t2, $t2, 4 +/* 0EE1BC 7F0B968C E5400044 */ swc1 $f0, 0x44($t2) +/* 0EE1C0 7F0B9690 24420001 */ addiu $v0, $v0, 1 +/* 0EE1C4 7F0B9694 254A0004 */ addiu $t2, $t2, 4 +.L7F0B9698: +/* 0EE1C8 7F0B9698 150BFFE9 */ bne $t0, $t3, .L7F0B9640 +/* 0EE1CC 7F0B969C 8C660000 */ lw $a2, ($v1) +/* 0EE1D0 7F0B96A0 90C70000 */ lbu $a3, ($a2) +/* 0EE1D4 7F0B96A4 24A50001 */ addiu $a1, $a1, 1 +/* 0EE1D8 7F0B96A8 00A7082A */ slt $at, $a1, $a3 +/* 0EE1DC 7F0B96AC 5420FFE3 */ bnezl $at, .L7F0B963C +/* 0EE1E0 7F0B96B0 00004025 */ move $t0, $zero +.L7F0B96B4: +/* 0EE1E4 7F0B96B4 8C790008 */ lw $t9, 8($v1) +.L7F0B96B8: +/* 0EE1E8 7F0B96B8 24630008 */ addiu $v1, $v1, 8 +/* 0EE1EC 7F0B96BC 5720FFCF */ bnezl $t9, .L7F0B95FC +/* 0EE1F0 7F0B96C0 906F0004 */ lbu $t7, 4($v1) +.L7F0B96C4: +/* 0EE1F4 7F0B96C4 03E00008 */ jr $ra +/* 0EE1F8 7F0B96C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B96CC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D54 +.word 0x7f7fffff /*3.4028235e38*/ +glabel D_80058D58 +.word 0xff7fffff /*-3.4028235e38*/ +.text +glabel sub_GAME_7F0B96CC +/* 0EE1FC 7F0B96CC 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0EE200 7F0B96D0 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE204 7F0B96D4 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE208 7F0B96D8 000440C0 */ sll $t0, $a0, 3 +/* 0EE20C 7F0B96DC AFB00020 */ sw $s0, 0x20($sp) +/* 0EE210 7F0B96E0 00A08025 */ move $s0, $a1 +/* 0EE214 7F0B96E4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0EE218 7F0B96E8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EE21C 7F0B96EC 27A40078 */ addiu $a0, $sp, 0x78 +/* 0EE220 7F0B96F0 27A6006C */ addiu $a2, $sp, 0x6c +/* 0EE224 7F0B96F4 00001025 */ move $v0, $zero +/* 0EE228 7F0B96F8 01C83821 */ addu $a3, $t6, $t0 +/* 0EE22C 7F0B96FC 24C60004 */ addiu $a2, $a2, 4 +/* 0EE230 7F0B9700 00C4082B */ sltu $at, $a2, $a0 +/* 0EE234 7F0B9704 1020000B */ beqz $at, .L7F0B9734 +/* 0EE238 7F0B9708 8CEF0000 */ lw $t7, ($a3) +.L7F0B970C: +/* 0EE23C 7F0B970C 01E21821 */ addu $v1, $t7, $v0 +/* 0EE240 7F0B9710 C4740004 */ lwc1 $f20, 4($v1) +/* 0EE244 7F0B9714 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE248 7F0B9718 24C60004 */ addiu $a2, $a2, 4 +/* 0EE24C 7F0B971C 00C4082B */ sltu $at, $a2, $a0 +/* 0EE250 7F0B9720 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE254 7F0B9724 24420004 */ addiu $v0, $v0, 4 +/* 0EE258 7F0B9728 E4D2FFF8 */ swc1 $f18, -8($a2) +/* 0EE25C 7F0B972C 1420FFF7 */ bnez $at, .L7F0B970C +/* 0EE260 7F0B9730 8CEF0000 */ lw $t7, ($a3) +.L7F0B9734: +/* 0EE264 7F0B9734 01E21821 */ addu $v1, $t7, $v0 +/* 0EE268 7F0B9738 C4740004 */ lwc1 $f20, 4($v1) +/* 0EE26C 7F0B973C C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE270 7F0B9740 24420004 */ addiu $v0, $v0, 4 +/* 0EE274 7F0B9744 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE278 7F0B9748 E4D2FFFC */ swc1 $f18, -4($a2) +/* 0EE27C 7F0B974C 00001025 */ move $v0, $zero +/* 0EE280 7F0B9750 27A40060 */ addiu $a0, $sp, 0x60 +/* 0EE284 7F0B9754 27A5006C */ addiu $a1, $sp, 0x6c +/* 0EE288 7F0B9758 24840004 */ addiu $a0, $a0, 4 +/* 0EE28C 7F0B975C 0085082B */ sltu $at, $a0, $a1 +/* 0EE290 7F0B9760 1020000B */ beqz $at, .L7F0B9790 +/* 0EE294 7F0B9764 8CF80000 */ lw $t8, ($a3) +.L7F0B9768: +/* 0EE298 7F0B9768 03021821 */ addu $v1, $t8, $v0 +/* 0EE29C 7F0B976C C474001C */ lwc1 $f20, 0x1c($v1) +/* 0EE2A0 7F0B9770 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE2A4 7F0B9774 24840004 */ addiu $a0, $a0, 4 +/* 0EE2A8 7F0B9778 0085082B */ sltu $at, $a0, $a1 +/* 0EE2AC 7F0B977C 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE2B0 7F0B9780 24420004 */ addiu $v0, $v0, 4 +/* 0EE2B4 7F0B9784 E492FFF8 */ swc1 $f18, -8($a0) +/* 0EE2B8 7F0B9788 1420FFF7 */ bnez $at, .L7F0B9768 +/* 0EE2BC 7F0B978C 8CF80000 */ lw $t8, ($a3) +.L7F0B9790: +/* 0EE2C0 7F0B9790 03021821 */ addu $v1, $t8, $v0 +/* 0EE2C4 7F0B9794 C474001C */ lwc1 $f20, 0x1c($v1) +/* 0EE2C8 7F0B9798 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE2CC 7F0B979C 24420004 */ addiu $v0, $v0, 4 +/* 0EE2D0 7F0B97A0 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE2D4 7F0B97A4 E492FFFC */ swc1 $f18, -4($a0) +/* 0EE2D8 7F0B97A8 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0EE2DC 7F0B97AC C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EE2E0 7F0B97B0 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0EE2E4 7F0B97B4 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EE2E8 7F0B97B8 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EE2EC 7F0B97BC 46083282 */ mul.s $f10, $f6, $f8 +/* 0EE2F0 7F0B97C0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0EE2F4 7F0B97C4 E6060000 */ swc1 $f6, ($s0) +/* 0EE2F8 7F0B97C8 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0EE2FC 7F0B97CC C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EE300 7F0B97D0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0EE304 7F0B97D4 C6100000 */ lwc1 $f16, ($s0) +/* 0EE308 7F0B97D8 46044282 */ mul.s $f10, $f8, $f4 +/* 0EE30C 7F0B97DC C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0EE310 7F0B97E0 46083102 */ mul.s $f4, $f6, $f8 +/* 0EE314 7F0B97E4 46045181 */ sub.s $f6, $f10, $f4 +/* 0EE318 7F0B97E8 E6060004 */ swc1 $f6, 4($s0) +/* 0EE31C 7F0B97EC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0EE320 7F0B97F0 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0EE324 7F0B97F4 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0EE328 7F0B97F8 C6120004 */ lwc1 $f18, 4($s0) +/* 0EE32C 7F0B97FC 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EE330 7F0B9800 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0EE334 7F0B9804 46083282 */ mul.s $f10, $f6, $f8 +/* 0EE338 7F0B9808 460A2181 */ sub.s $f6, $f4, $f10 +/* 0EE33C 7F0B980C 46108202 */ mul.s $f8, $f16, $f16 +/* 0EE340 7F0B9810 00000000 */ nop +/* 0EE344 7F0B9814 46129102 */ mul.s $f4, $f18, $f18 +/* 0EE348 7F0B9818 E6060008 */ swc1 $f6, 8($s0) +/* 0EE34C 7F0B981C C60E0008 */ lwc1 $f14, 8($s0) +/* 0EE350 7F0B9820 AFA80040 */ sw $t0, 0x40($sp) +/* 0EE354 7F0B9824 460E7182 */ mul.s $f6, $f14, $f14 +/* 0EE358 7F0B9828 46044280 */ add.s $f10, $f8, $f4 +/* 0EE35C 7F0B982C 0C007DF8 */ jal sqrtf +/* 0EE360 7F0B9830 460A3300 */ add.s $f12, $f6, $f10 +/* 0EE364 7F0B9834 44804000 */ mtc1 $zero, $f8 +/* 0EE368 7F0B9838 8FA80040 */ lw $t0, 0x40($sp) +/* 0EE36C 7F0B983C 46000506 */ mov.s $f20, $f0 +/* 0EE370 7F0B9840 46080032 */ c.eq.s $f0, $f8 +/* 0EE374 7F0B9844 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EE378 7F0B9848 00001825 */ move $v1, $zero +/* 0EE37C 7F0B984C 45030005 */ bc1tl .L7F0B9864 +/* 0EE380 7F0B9850 C6060000 */ lwc1 $f6, ($s0) +/* 0EE384 7F0B9854 44812000 */ mtc1 $at, $f4 +/* 0EE388 7F0B9858 00000000 */ nop +/* 0EE38C 7F0B985C 46002503 */ div.s $f20, $f4, $f0 +/* 0EE390 7F0B9860 C6060000 */ lwc1 $f6, ($s0) +.L7F0B9864: +/* 0EE394 7F0B9864 C6080004 */ lwc1 $f8, 4($s0) +/* 0EE398 7F0B9868 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0EE39C 7F0B986C 46143282 */ mul.s $f10, $f6, $f20 +/* 0EE3A0 7F0B9870 C6060008 */ lwc1 $f6, 8($s0) +/* 0EE3A4 7F0B9874 3C018006 */ lui $at, %hi(D_80058D54) +/* 0EE3A8 7F0B9878 46144102 */ mul.s $f4, $f8, $f20 +/* 0EE3AC 7F0B987C E60A0000 */ swc1 $f10, ($s0) +/* 0EE3B0 7F0B9880 46143282 */ mul.s $f10, $f6, $f20 +/* 0EE3B4 7F0B9884 E6040004 */ swc1 $f4, 4($s0) +/* 0EE3B8 7F0B9888 E60A0008 */ swc1 $f10, 8($s0) +/* 0EE3BC 7F0B988C 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0EE3C0 7F0B9890 C4228D54 */ lwc1 $f2, %lo(D_80058D54)($at) +/* 0EE3C4 7F0B9894 3C018006 */ lui $at, %hi(D_80058D58) +/* 0EE3C8 7F0B9898 03284821 */ addu $t1, $t9, $t0 +/* 0EE3CC 7F0B989C 8D250000 */ lw $a1, ($t1) +/* 0EE3D0 7F0B98A0 C42C8D58 */ lwc1 $f12, %lo(D_80058D58)($at) +/* 0EE3D4 7F0B98A4 90A60000 */ lbu $a2, ($a1) +/* 0EE3D8 7F0B98A8 00A01025 */ move $v0, $a1 +/* 0EE3DC 7F0B98AC 18C0001C */ blez $a2, .L7F0B9920 +/* 0EE3E0 7F0B98B0 00062080 */ sll $a0, $a2, 2 +/* 0EE3E4 7F0B98B4 00862023 */ subu $a0, $a0, $a2 +/* 0EE3E8 7F0B98B8 00042080 */ sll $a0, $a0, 2 +/* 0EE3EC 7F0B98BC C60E0008 */ lwc1 $f14, 8($s0) +/* 0EE3F0 7F0B98C0 C6100000 */ lwc1 $f16, ($s0) +/* 0EE3F4 7F0B98C4 C6120004 */ lwc1 $f18, 4($s0) +.L7F0B98C8: +/* 0EE3F8 7F0B98C8 C4480004 */ lwc1 $f8, 4($v0) +/* 0EE3FC 7F0B98CC C4460008 */ lwc1 $f6, 8($v0) +/* 0EE400 7F0B98D0 2463000C */ addiu $v1, $v1, 0xc +/* 0EE404 7F0B98D4 46104102 */ mul.s $f4, $f8, $f16 +/* 0EE408 7F0B98D8 0064082A */ slt $at, $v1, $a0 +/* 0EE40C 7F0B98DC 46123282 */ mul.s $f10, $f6, $f18 +/* 0EE410 7F0B98E0 C446000C */ lwc1 $f6, 0xc($v0) +/* 0EE414 7F0B98E4 460A2200 */ add.s $f8, $f4, $f10 +/* 0EE418 7F0B98E8 46067102 */ mul.s $f4, $f14, $f6 +/* 0EE41C 7F0B98EC 46082000 */ add.s $f0, $f4, $f8 +/* 0EE420 7F0B98F0 4602003C */ c.lt.s $f0, $f2 +/* 0EE424 7F0B98F4 00000000 */ nop +/* 0EE428 7F0B98F8 45020003 */ bc1fl .L7F0B9908 +/* 0EE42C 7F0B98FC 4600603C */ c.lt.s $f12, $f0 +/* 0EE430 7F0B9900 46000086 */ mov.s $f2, $f0 +/* 0EE434 7F0B9904 4600603C */ c.lt.s $f12, $f0 +.L7F0B9908: +/* 0EE438 7F0B9908 00000000 */ nop +/* 0EE43C 7F0B990C 45000002 */ bc1f .L7F0B9918 +/* 0EE440 7F0B9910 00000000 */ nop +/* 0EE444 7F0B9914 46000306 */ mov.s $f12, $f0 +.L7F0B9918: +/* 0EE448 7F0B9918 1420FFEB */ bnez $at, .L7F0B98C8 +/* 0EE44C 7F0B991C 2442000C */ addiu $v0, $v0, 0xc +.L7F0B9920: +/* 0EE450 7F0B9920 E602000C */ swc1 $f2, 0xc($s0) +/* 0EE454 7F0B9924 E60C0010 */ swc1 $f12, 0x10($s0) +/* 0EE458 7F0B9928 8FBF0024 */ lw $ra, 0x24($sp) +/* 0EE45C 7F0B992C 8FB00020 */ lw $s0, 0x20($sp) +/* 0EE460 7F0B9930 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EE464 7F0B9934 03E00008 */ jr $ra +/* 0EE468 7F0B9938 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B993C(void) { + f32 sp1C; + + // Node 0 + sub_GAME_7F0B96CC(&sp1C); + if (((sp24 * sp24) + (sp1C * sp1C)) < D_80058D5C) + { + // Node 1 + } + // Node 2 + return 1; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D5C +.word 0x3f7fbe77 /*0.99900001*/ +.text +glabel sub_GAME_7F0B993C +/* 0EE46C 7F0B993C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EE470 7F0B9940 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EE474 7F0B9944 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EE478 7F0B9948 27A5001C */ addiu $a1, $sp, 0x1c +/* 0EE47C 7F0B994C C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0EE480 7F0B9950 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0EE484 7F0B9954 3C018006 */ lui $at, %hi(D_80058D5C) +/* 0EE488 7F0B9958 46000102 */ mul.s $f4, $f0, $f0 +/* 0EE48C 7F0B995C C42A8D5C */ lwc1 $f10, %lo(D_80058D5C)($at) +/* 0EE490 7F0B9960 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EE494 7F0B9964 46021182 */ mul.s $f6, $f2, $f2 +/* 0EE498 7F0B9968 24020001 */ li $v0, 1 +/* 0EE49C 7F0B996C 46062200 */ add.s $f8, $f4, $f6 +/* 0EE4A0 7F0B9970 460A403C */ c.lt.s $f8, $f10 +/* 0EE4A4 7F0B9974 00000000 */ nop +/* 0EE4A8 7F0B9978 45000003 */ bc1f .L7F0B9988 +/* 0EE4AC 7F0B997C 00000000 */ nop +/* 0EE4B0 7F0B9980 10000001 */ b .L7F0B9988 +/* 0EE4B4 7F0B9984 00001025 */ move $v0, $zero +.L7F0B9988: +/* 0EE4B8 7F0B9988 03E00008 */ jr $ra +/* 0EE4BC 7F0B998C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9990(s32 arg0) { + void *temp_t8; + s32 temp_t9; + s32 temp_a0; + f32 temp_f2; + s32 temp_v1; + f32 temp_f2_6; + f32 temp_f2_2; + s32 temp_v1_2; + f32 temp_f2_3; + f32 temp_f2_4; + f32 temp_f2_5; + s32 phi_v1; + s32 phi_v1_2; + f32 phi_f2; + f32 phi_f2_2; + f32 phi_f2_3; + + // Node 0 + temp_t8 = (ptr_bgdata_portals + (arg0 * 8)); + temp_t9 = (((s32) temp_t8->unk7 >> 4) & 0xf); + temp_a0 = -(s32) (temp_t9 & 3); + temp_f2 = ((f32) (temp_t8->unk7 & 0xf) * 0.25f); + phi_f2 = temp_f2; + if (temp_t9 != 0) + { + // Node 1 + phi_v1 = temp_t9; + phi_v1_2 = temp_t9; + phi_f2_2 = temp_f2; + phi_f2_3 = temp_f2; + if (((temp_a0 == 0) || ((temp_a0 + temp_t9) != temp_v1)) || (temp_v1 != 0)) + { +loop_4: + // Node 4 + temp_f2_2 = (phi_f2_2 + phi_f2_2); + temp_v1_2 = (phi_v1_2 + -4); + temp_f2_3 = (temp_f2_2 + temp_f2_2); + temp_f2_4 = (temp_f2_3 + temp_f2_3); + temp_f2_5 = (temp_f2_4 + temp_f2_4); + phi_v1_2 = temp_v1_2; + phi_f2 = temp_f2_5; + phi_f2_2 = temp_f2_5; + if (temp_v1_2 != 0) + { + goto loop_4; + } + } + else + { + + } + } + // Node 5 + return phi_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9990 +/* 0EE4C0 7F0B9990 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE4C4 7F0B9994 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE4C8 7F0B9998 000478C0 */ sll $t7, $a0, 3 +/* 0EE4CC 7F0B999C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0EE4D0 7F0B99A0 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE4D4 7F0B99A4 93020007 */ lbu $v0, 7($t8) +/* 0EE4D8 7F0B99A8 44814000 */ mtc1 $at, $f8 +/* 0EE4DC 7F0B99AC 3048000F */ andi $t0, $v0, 0xf +/* 0EE4E0 7F0B99B0 44882000 */ mtc1 $t0, $f4 +/* 0EE4E4 7F0B99B4 00022903 */ sra $a1, $v0, 4 +/* 0EE4E8 7F0B99B8 30B9000F */ andi $t9, $a1, 0xf +/* 0EE4EC 7F0B99BC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EE4F0 7F0B99C0 33240003 */ andi $a0, $t9, 3 +/* 0EE4F4 7F0B99C4 03201825 */ move $v1, $t9 +/* 0EE4F8 7F0B99C8 00042023 */ negu $a0, $a0 +/* 0EE4FC 7F0B99CC 46083082 */ mul.s $f2, $f6, $f8 +/* 0EE500 7F0B99D0 1320000E */ beqz $t9, .L7F0B9A0C +/* 0EE504 7F0B99D4 00000000 */ nop +/* 0EE508 7F0B99D8 10800006 */ beqz $a0, .L7F0B99F4 +/* 0EE50C 7F0B99DC 00991021 */ addu $v0, $a0, $t9 +.L7F0B99E0: +/* 0EE510 7F0B99E0 2463FFFF */ addiu $v1, $v1, -1 +/* 0EE514 7F0B99E4 1443FFFE */ bne $v0, $v1, .L7F0B99E0 +/* 0EE518 7F0B99E8 46021080 */ add.s $f2, $f2, $f2 +/* 0EE51C 7F0B99EC 10600007 */ beqz $v1, .L7F0B9A0C +/* 0EE520 7F0B99F0 00000000 */ nop +.L7F0B99F4: +/* 0EE524 7F0B99F4 46021080 */ add.s $f2, $f2, $f2 +/* 0EE528 7F0B99F8 2463FFFC */ addiu $v1, $v1, -4 +/* 0EE52C 7F0B99FC 46021080 */ add.s $f2, $f2, $f2 +/* 0EE530 7F0B9A00 46021080 */ add.s $f2, $f2, $f2 +/* 0EE534 7F0B9A04 1460FFFB */ bnez $v1, .L7F0B99F4 +/* 0EE538 7F0B9A08 46021080 */ add.s $f2, $f2, $f2 +.L7F0B9A0C: +/* 0EE53C 7F0B9A0C 03E00008 */ jr $ra +/* 0EE540 7F0B9A10 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9A14(s32 arg0) { + // Node 0 + return (ptr_bgdata_portals + (arg0 * 8))->unk7; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A14 +/* 0EE544 7F0B9A14 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE548 7F0B9A18 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE54C 7F0B9A1C 000478C0 */ sll $t7, $a0, 3 +/* 0EE550 7F0B9A20 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE554 7F0B9A24 03E00008 */ jr $ra +/* 0EE558 7F0B9A28 93020007 */ lbu $v0, 7($t8) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9A2C(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 temp_t8; + s8 phi_v0; + + // Node 0 + temp_v1 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0 = (temp_v1->unk7 + 1); + if (temp_v1->unk7 >= 0xff) + { + // Node 1 + phi_v0 = (u8)0xff; + } + else + { + // Node 2 + temp_t8 = (temp_v0 & 0xff); + phi_v0 = temp_t8; + if (((temp_t8 >> 4) & 0xf) > 0) + { + // Node 3 + phi_v0 = ((temp_t8 | 8) & 0xff); + } + } + // Node 4 + temp_v1->unk7 = (s8) phi_v0; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A2C +/* 0EE55C 7F0B9A2C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE560 7F0B9A30 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE564 7F0B9A34 000478C0 */ sll $t7, $a0, 3 +/* 0EE568 7F0B9A38 01CF1821 */ addu $v1, $t6, $t7 +/* 0EE56C 7F0B9A3C 90620007 */ lbu $v0, 7($v1) +/* 0EE570 7F0B9A40 284100FF */ slti $at, $v0, 0xff +/* 0EE574 7F0B9A44 14200003 */ bnez $at, .L7F0B9A54 +/* 0EE578 7F0B9A48 24420001 */ addiu $v0, $v0, 1 +/* 0EE57C 7F0B9A4C 10000009 */ b .L7F0B9A74 +/* 0EE580 7F0B9A50 240200FF */ li $v0, 255 +.L7F0B9A54: +/* 0EE584 7F0B9A54 305800FF */ andi $t8, $v0, 0xff +/* 0EE588 7F0B9A58 0018C903 */ sra $t9, $t8, 4 +/* 0EE58C 7F0B9A5C 3328000F */ andi $t0, $t9, 0xf +/* 0EE590 7F0B9A60 19000004 */ blez $t0, .L7F0B9A74 +/* 0EE594 7F0B9A64 03001025 */ move $v0, $t8 +/* 0EE598 7F0B9A68 37020008 */ ori $v0, $t8, 8 +/* 0EE59C 7F0B9A6C 304900FF */ andi $t1, $v0, 0xff +/* 0EE5A0 7F0B9A70 01201025 */ move $v0, $t1 +.L7F0B9A74: +/* 0EE5A4 7F0B9A74 03E00008 */ jr $ra +/* 0EE5A8 7F0B9A78 A0620007 */ sb $v0, 7($v1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9A7C(s32 arg0) { + void *temp_v1; + s8 temp_t1; + s8 phi_v0; + + // Node 0 + temp_v1 = (ptr_bgdata_portals + (arg0 * 8)); + if ((((s32) temp_v1->unk7 >> 4) & 0xf) == 0) + { + // Node 1 + phi_v0 = (s8) temp_v1->unk7; + if (temp_v1->unk7 > 0) + { + // Node 2 + phi_v0 = ((temp_v1->unk7 + -1) & 0xff); + } + } + else + { + // Node 3 + temp_t1 = ((temp_v1->unk7 + -1) & 0xff); + phi_v0 = temp_t1; + if ((temp_t1 & 0xf) < 8) + { + // Node 4 + phi_v0 = ((temp_t1 + -8) & 0xff); + } + } + // Node 5 + temp_v1->unk7 = (s8) phi_v0; + return temp_v1->unk7; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A7C +/* 0EE5AC 7F0B9A7C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE5B0 7F0B9A80 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE5B4 7F0B9A84 000478C0 */ sll $t7, $a0, 3 +/* 0EE5B8 7F0B9A88 01CF1821 */ addu $v1, $t6, $t7 +/* 0EE5BC 7F0B9A8C 90620007 */ lbu $v0, 7($v1) +/* 0EE5C0 7F0B9A90 0002C103 */ sra $t8, $v0, 4 +/* 0EE5C4 7F0B9A94 3319000F */ andi $t9, $t8, 0xf +/* 0EE5C8 7F0B9A98 17200007 */ bnez $t9, .L7F0B9AB8 +/* 0EE5CC 7F0B9A9C 00402825 */ move $a1, $v0 +/* 0EE5D0 7F0B9AA0 18A0000E */ blez $a1, .L7F0B9ADC +/* 0EE5D4 7F0B9AA4 00000000 */ nop +/* 0EE5D8 7F0B9AA8 2442FFFF */ addiu $v0, $v0, -1 +/* 0EE5DC 7F0B9AAC 304800FF */ andi $t0, $v0, 0xff +/* 0EE5E0 7F0B9AB0 1000000A */ b .L7F0B9ADC +/* 0EE5E4 7F0B9AB4 01001025 */ move $v0, $t0 +.L7F0B9AB8: +/* 0EE5E8 7F0B9AB8 2442FFFF */ addiu $v0, $v0, -1 +/* 0EE5EC 7F0B9ABC 304900FF */ andi $t1, $v0, 0xff +/* 0EE5F0 7F0B9AC0 312A000F */ andi $t2, $t1, 0xf +/* 0EE5F4 7F0B9AC4 29410008 */ slti $at, $t2, 8 +/* 0EE5F8 7F0B9AC8 10200004 */ beqz $at, .L7F0B9ADC +/* 0EE5FC 7F0B9ACC 01201025 */ move $v0, $t1 +/* 0EE600 7F0B9AD0 2522FFF8 */ addiu $v0, $t1, -8 +/* 0EE604 7F0B9AD4 304B00FF */ andi $t3, $v0, 0xff +/* 0EE608 7F0B9AD8 01601025 */ move $v0, $t3 +.L7F0B9ADC: +/* 0EE60C 7F0B9ADC 03E00008 */ jr $ra +/* 0EE610 7F0B9AE0 A0620007 */ sb $v0, 7($v1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9AE4(s32 arg0) { + // Node 0 + return ((ptr_bgdata_portals + (arg0 * 8))->unk6 & 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9AE4 +/* 0EE614 7F0B9AE4 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE618 7F0B9AE8 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE61C 7F0B9AEC 000478C0 */ sll $t7, $a0, 3 +/* 0EE620 7F0B9AF0 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE624 7F0B9AF4 93020006 */ lbu $v0, 6($t8) +/* 0EE628 7F0B9AF8 30590001 */ andi $t9, $v0, 1 +/* 0EE62C 7F0B9AFC 03E00008 */ jr $ra +/* 0EE630 7F0B9B00 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9B04(s32 arg0) { + // Node 0 + return ((ptr_bgdata_portals + (arg0 * 8))->unk6 & 2); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B04 +/* 0EE634 7F0B9B04 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE638 7F0B9B08 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE63C 7F0B9B0C 000478C0 */ sll $t7, $a0, 3 +/* 0EE640 7F0B9B10 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE644 7F0B9B14 93020006 */ lbu $v0, 6($t8) +/* 0EE648 7F0B9B18 30590002 */ andi $t9, $v0, 2 +/* 0EE64C 7F0B9B1C 03E00008 */ jr $ra +/* 0EE650 7F0B9B20 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9B24(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) (temp_v0->unk6 | 2); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B24 +/* 0EE654 7F0B9B24 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE658 7F0B9B28 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE65C 7F0B9B2C 000478C0 */ sll $t7, $a0, 3 +/* 0EE660 7F0B9B30 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE664 7F0B9B34 90580006 */ lbu $t8, 6($v0) +/* 0EE668 7F0B9B38 37190002 */ ori $t9, $t8, 2 +/* 0EE66C 7F0B9B3C 03E00008 */ jr $ra +/* 0EE670 7F0B9B40 A0590006 */ sb $t9, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9B44(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) (temp_v0->unk6 & 0xfd); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B44 +/* 0EE674 7F0B9B44 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE678 7F0B9B48 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE67C 7F0B9B4C 000478C0 */ sll $t7, $a0, 3 +/* 0EE680 7F0B9B50 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE684 7F0B9B54 90580006 */ lbu $t8, 6($v0) +/* 0EE688 7F0B9B58 331900FD */ andi $t9, $t8, 0xfd +/* 0EE68C 7F0B9B5C 03E00008 */ jr $ra +/* 0EE690 7F0B9B60 A0590006 */ sb $t9, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s8 sub_GAME_7F0B9B64(s32 arg0) { + s32 temp_v1; + void *temp_a1; + + // Node 0 + temp_v1 = (arg0 * 8); + temp_a1 = (ptr_bgdata_portals + temp_v1); + temp_a1->unk4 = (s8) temp_a1->unk5; + (ptr_bgdata_portals + temp_v1)->unk5 = (s8) temp_a1->unk4; + return temp_a1->unk4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B64 +/* 0EE694 7F0B9B64 3C068008 */ lui $a2, %hi(ptr_bgdata_portals) +/* 0EE698 7F0B9B68 24C6FF80 */ addiu $a2, %lo(ptr_bgdata_portals) # addiu $a2, $a2, -0x80 +/* 0EE69C 7F0B9B6C 8CCE0000 */ lw $t6, ($a2) +/* 0EE6A0 7F0B9B70 000418C0 */ sll $v1, $a0, 3 +/* 0EE6A4 7F0B9B74 01C32821 */ addu $a1, $t6, $v1 +/* 0EE6A8 7F0B9B78 90AF0005 */ lbu $t7, 5($a1) +/* 0EE6AC 7F0B9B7C 90A20004 */ lbu $v0, 4($a1) +/* 0EE6B0 7F0B9B80 A0AF0004 */ sb $t7, 4($a1) +/* 0EE6B4 7F0B9B84 8CD80000 */ lw $t8, ($a2) +/* 0EE6B8 7F0B9B88 0303C821 */ addu $t9, $t8, $v1 +/* 0EE6BC 7F0B9B8C 03E00008 */ jr $ra +/* 0EE6C0 7F0B9B90 A3220005 */ sb $v0, 5($t9) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9B94(s32 arg0) { + s32 sp24; + ?32 sp28; + f32 sp34; + f32 sp38; + f32 sp3C; + f32 sp48; + f32 sp54; + void *temp_v0; + f32 temp_f0; + f32 phi_f16; + f32 phi_f18; + f32 phi_f14; + s32 phi_v0; + f32 phi_f12; + f32 phi_return; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + sp28 = (?32) temp_v0->unk5; + sub_GAME_7F0B92B4(temp_v0->unk4, &sp54); + sub_GAME_7F0B92B4(sp28, &sp48); + sub_GAME_7F0B96CC(arg0, &sp34); + phi_f16 = sp3C; + phi_f18 = sp34; + phi_f14 = sp40; + phi_v0 = 0; + phi_f12 = sp44; + if (sp44 < ((sp5C * sp3C) + ((sp34 * sp54) + (sp38 * sp58)))) + { + // Node 1 + sp24 = 1; + sub_GAME_7F0B9B64(sp44, sp40, arg0); + sp38 = (f32) -sp38; + phi_f16 = -sp3C; + phi_f18 = -sp34; + phi_f14 = -sp44; + phi_v0 = 1; + phi_f12 = -sp40; + } + // Node 2 + sp3C = (f32) phi_f16; + sp34 = (f32) phi_f18; + temp_f0 = ((sp50 * phi_f16) + ((phi_f18 * sp48) + (sp38 * sp4C))); + phi_return = temp_f0; + if (temp_f0 <= phi_f14) + { + // Node 3 + phi_return = temp_f0; + if (phi_v0 != 0) + { + // Node 4 + sp24 = (s32) phi_v0; + phi_return = sub_GAME_7F0B9B64(phi_f12, phi_f14, arg0); + } + } + // Node 5 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B94 +/* 0EE6C4 7F0B9B94 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE6C8 7F0B9B98 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE6CC 7F0B9B9C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0EE6D0 7F0B9BA0 0004C0C0 */ sll $t8, $a0, 3 +/* 0EE6D4 7F0B9BA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EE6D8 7F0B9BA8 AFA40060 */ sw $a0, 0x60($sp) +/* 0EE6DC 7F0B9BAC 01D81021 */ addu $v0, $t6, $t8 +/* 0EE6E0 7F0B9BB0 90590005 */ lbu $t9, 5($v0) +/* 0EE6E4 7F0B9BB4 90440004 */ lbu $a0, 4($v0) +/* 0EE6E8 7F0B9BB8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0EE6EC 7F0B9BBC 0FC2E4AD */ jal sub_GAME_7F0B92B4 +/* 0EE6F0 7F0B9BC0 AFB90028 */ sw $t9, 0x28($sp) +/* 0EE6F4 7F0B9BC4 8FA40028 */ lw $a0, 0x28($sp) +/* 0EE6F8 7F0B9BC8 0FC2E4AD */ jal sub_GAME_7F0B92B4 +/* 0EE6FC 7F0B9BCC 27A50048 */ addiu $a1, $sp, 0x48 +/* 0EE700 7F0B9BD0 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE704 7F0B9BD4 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EE708 7F0B9BD8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0EE70C 7F0B9BDC C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0EE710 7F0B9BE0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0EE714 7F0B9BE4 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0EE718 7F0B9BE8 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0EE71C 7F0B9BEC 46062202 */ mul.s $f8, $f4, $f6 +/* 0EE720 7F0B9BF0 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 0EE724 7F0B9BF4 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0EE728 7F0B9BF8 460A9102 */ mul.s $f4, $f18, $f10 +/* 0EE72C 7F0B9BFC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0EE730 7F0B9C00 C7AE0040 */ lwc1 $f14, 0x40($sp) +/* 0EE734 7F0B9C04 00001025 */ move $v0, $zero +/* 0EE738 7F0B9C08 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE73C 7F0B9C0C 46082180 */ add.s $f6, $f4, $f8 +/* 0EE740 7F0B9C10 46105102 */ mul.s $f4, $f10, $f16 +/* 0EE744 7F0B9C14 46062080 */ add.s $f2, $f4, $f6 +/* 0EE748 7F0B9C18 4602603C */ c.lt.s $f12, $f2 +/* 0EE74C 7F0B9C1C 00000000 */ nop +/* 0EE750 7F0B9C20 45020012 */ bc1fl .L7F0B9C6C +/* 0EE754 7F0B9C24 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0EE758 7F0B9C28 24020001 */ li $v0, 1 +/* 0EE75C 7F0B9C2C 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0EE760 7F0B9C30 AFA20024 */ sw $v0, 0x24($sp) +/* 0EE764 7F0B9C34 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0EE768 7F0B9C38 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 0EE76C 7F0B9C3C C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0EE770 7F0B9C40 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 0EE774 7F0B9C44 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0EE778 7F0B9C48 46006387 */ neg.s $f14, $f12 +/* 0EE77C 7F0B9C4C 46000307 */ neg.s $f12, $f0 +/* 0EE780 7F0B9C50 46004287 */ neg.s $f10, $f8 +/* 0EE784 7F0B9C54 8FA20024 */ lw $v0, 0x24($sp) +/* 0EE788 7F0B9C58 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0EE78C 7F0B9C5C E7AC0044 */ swc1 $f12, 0x44($sp) +/* 0EE790 7F0B9C60 46008407 */ neg.s $f16, $f16 +/* 0EE794 7F0B9C64 46009487 */ neg.s $f18, $f18 +/* 0EE798 7F0B9C68 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F0B9C6C: +/* 0EE79C 7F0B9C6C C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0EE7A0 7F0B9C70 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0EE7A4 7F0B9C74 E7AE0040 */ swc1 $f14, 0x40($sp) +/* 0EE7A8 7F0B9C78 46062202 */ mul.s $f8, $f4, $f6 +/* 0EE7AC 7F0B9C7C E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0EE7B0 7F0B9C80 E7B20034 */ swc1 $f18, 0x34($sp) +/* 0EE7B4 7F0B9C84 460A9102 */ mul.s $f4, $f18, $f10 +/* 0EE7B8 7F0B9C88 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0EE7BC 7F0B9C8C 46082180 */ add.s $f6, $f4, $f8 +/* 0EE7C0 7F0B9C90 46105102 */ mul.s $f4, $f10, $f16 +/* 0EE7C4 7F0B9C94 46062000 */ add.s $f0, $f4, $f6 +/* 0EE7C8 7F0B9C98 460E003E */ c.le.s $f0, $f14 +/* 0EE7CC 7F0B9C9C 00000000 */ nop +/* 0EE7D0 7F0B9CA0 45020006 */ bc1fl .L7F0B9CBC +/* 0EE7D4 7F0B9CA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EE7D8 7F0B9CA8 10400003 */ beqz $v0, .L7F0B9CB8 +/* 0EE7DC 7F0B9CAC 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE7E0 7F0B9CB0 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0EE7E4 7F0B9CB4 AFA20024 */ sw $v0, 0x24($sp) +.L7F0B9CB8: +/* 0EE7E8 7F0B9CB8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B9CBC: +/* 0EE7EC 7F0B9CBC 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0EE7F0 7F0B9CC0 03E00008 */ jr $ra +/* 0EE7F4 7F0B9CC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9CC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9CC8 +/* 0EE7F8 7F0B9CC8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0EE7FC 7F0B9CCC AFBE0038 */ sw $fp, 0x38($sp) +/* 0EE800 7F0B9CD0 3C1E8008 */ lui $fp, %hi(ptr_bgdata_portals) +/* 0EE804 7F0B9CD4 27DEFF80 */ addiu $fp, %lo(ptr_bgdata_portals) # addiu $fp, $fp, -0x80 +/* 0EE808 7F0B9CD8 8FC30000 */ lw $v1, ($fp) +/* 0EE80C 7F0B9CDC AFBF003C */ sw $ra, 0x3c($sp) +/* 0EE810 7F0B9CE0 AFB70034 */ sw $s7, 0x34($sp) +/* 0EE814 7F0B9CE4 AFB60030 */ sw $s6, 0x30($sp) +/* 0EE818 7F0B9CE8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0EE81C 7F0B9CEC AFB40028 */ sw $s4, 0x28($sp) +/* 0EE820 7F0B9CF0 AFB30024 */ sw $s3, 0x24($sp) +/* 0EE824 7F0B9CF4 AFB20020 */ sw $s2, 0x20($sp) +/* 0EE828 7F0B9CF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EE82C 7F0B9CFC AFB00018 */ sw $s0, 0x18($sp) +/* 0EE830 7F0B9D00 8C6E0000 */ lw $t6, ($v1) +/* 0EE834 7F0B9D04 00809025 */ move $s2, $a0 +/* 0EE838 7F0B9D08 00A09825 */ move $s3, $a1 +/* 0EE83C 7F0B9D0C 00C0B025 */ move $s6, $a2 +/* 0EE840 7F0B9D10 00E0B825 */ move $s7, $a3 +/* 0EE844 7F0B9D14 2414FFFF */ li $s4, -1 +/* 0EE848 7F0B9D18 11C0001B */ beqz $t6, .L7F0B9D88 +/* 0EE84C 7F0B9D1C 00008025 */ move $s0, $zero +/* 0EE850 7F0B9D20 00008825 */ move $s1, $zero +/* 0EE854 7F0B9D24 00601025 */ move $v0, $v1 +/* 0EE858 7F0B9D28 90430004 */ lbu $v1, 4($v0) +.L7F0B9D2C: +/* 0EE85C 7F0B9D2C 16430004 */ bne $s2, $v1, .L7F0B9D40 +/* 0EE860 7F0B9D30 00000000 */ nop +/* 0EE864 7F0B9D34 904F0005 */ lbu $t7, 5($v0) +/* 0EE868 7F0B9D38 526F0006 */ beql $s3, $t7, .L7F0B9D54 +/* 0EE86C 7F0B9D3C 02002025 */ move $a0, $s0 +.L7F0B9D40: +/* 0EE870 7F0B9D40 5663000B */ bnel $s3, $v1, .L7F0B9D70 +/* 0EE874 7F0B9D44 8FD90000 */ lw $t9, ($fp) +/* 0EE878 7F0B9D48 90580005 */ lbu $t8, 5($v0) +/* 0EE87C 7F0B9D4C 16580007 */ bne $s2, $t8, .L7F0B9D6C +/* 0EE880 7F0B9D50 02002025 */ move $a0, $s0 +.L7F0B9D54: +/* 0EE884 7F0B9D54 02C02825 */ move $a1, $s6 +/* 0EE888 7F0B9D58 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0EE88C 7F0B9D5C 02E03025 */ move $a2, $s7 +/* 0EE890 7F0B9D60 50400003 */ beql $v0, $zero, .L7F0B9D70 +/* 0EE894 7F0B9D64 8FD90000 */ lw $t9, ($fp) +/* 0EE898 7F0B9D68 0200A025 */ move $s4, $s0 +.L7F0B9D6C: +/* 0EE89C 7F0B9D6C 8FD90000 */ lw $t9, ($fp) +.L7F0B9D70: +/* 0EE8A0 7F0B9D70 26310008 */ addiu $s1, $s1, 8 +/* 0EE8A4 7F0B9D74 26100001 */ addiu $s0, $s0, 1 +/* 0EE8A8 7F0B9D78 03311021 */ addu $v0, $t9, $s1 +/* 0EE8AC 7F0B9D7C 8C480000 */ lw $t0, ($v0) +/* 0EE8B0 7F0B9D80 5500FFEA */ bnezl $t0, .L7F0B9D2C +/* 0EE8B4 7F0B9D84 90430004 */ lbu $v1, 4($v0) +.L7F0B9D88: +/* 0EE8B8 7F0B9D88 8FBF003C */ lw $ra, 0x3c($sp) +/* 0EE8BC 7F0B9D8C 02801025 */ move $v0, $s4 +/* 0EE8C0 7F0B9D90 8FB40028 */ lw $s4, 0x28($sp) +/* 0EE8C4 7F0B9D94 8FB00018 */ lw $s0, 0x18($sp) +/* 0EE8C8 7F0B9D98 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EE8CC 7F0B9D9C 8FB20020 */ lw $s2, 0x20($sp) +/* 0EE8D0 7F0B9DA0 8FB30024 */ lw $s3, 0x24($sp) +/* 0EE8D4 7F0B9DA4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0EE8D8 7F0B9DA8 8FB60030 */ lw $s6, 0x30($sp) +/* 0EE8DC 7F0B9DAC 8FB70034 */ lw $s7, 0x34($sp) +/* 0EE8E0 7F0B9DB0 8FBE0038 */ lw $fp, 0x38($sp) +/* 0EE8E4 7F0B9DB4 03E00008 */ jr $ra +/* 0EE8E8 7F0B9DB8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9DBC(s32 arg0, u32 arg1) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) ((temp_v0->unk6 | 1) ^ (0U < arg1)); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9DBC +/* 0EE8EC 7F0B9DBC 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE8F0 7F0B9DC0 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE8F4 7F0B9DC4 000478C0 */ sll $t7, $a0, 3 +/* 0EE8F8 7F0B9DC8 0005402B */ sltu $t0, $zero, $a1 +/* 0EE8FC 7F0B9DCC 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE900 7F0B9DD0 90580006 */ lbu $t8, 6($v0) +/* 0EE904 7F0B9DD4 37190001 */ ori $t9, $t8, 1 +/* 0EE908 7F0B9DD8 03284826 */ xor $t1, $t9, $t0 +/* 0EE90C 7F0B9DDC 03E00008 */ jr $ra +/* 0EE910 7F0B9DE0 A0490006 */ sb $t1, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9DE4(s32 arg0, s32 arg1, ? arg2) { + // Node 0 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9DE4 +/* 0EE914 7F0B9DE4 AFA50004 */ sw $a1, 4($sp) +/* 0EE918 7F0B9DE8 AFA60008 */ sw $a2, 8($sp) +/* 0EE91C 7F0B9DEC 03E00008 */ jr $ra +/* 0EE920 7F0B9DF0 00801025 */ move $v0, $a0 +) +#endif + + + + + +void sub_GAME_7F0B9DF4(s32 arg0) { + return; +} + +void sub_GAME_7F0B9DFC(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9E04(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D60 +.word 0x7f7fffff /*3.4028235e38*/ +.text +glabel sub_GAME_7F0B9E04 +/* 0EE934 7F0B9E04 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0EE938 7F0B9E08 AFB6003C */ sw $s6, 0x3c($sp) +/* 0EE93C 7F0B9E0C 3C168008 */ lui $s6, %hi(ptr_bgdata_portals) +/* 0EE940 7F0B9E10 26D6FF80 */ addiu $s6, %lo(ptr_bgdata_portals) # addiu $s6, $s6, -0x80 +/* 0EE944 7F0B9E14 8ECE0000 */ lw $t6, ($s6) +/* 0EE948 7F0B9E18 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EE94C 7F0B9E1C AFB70040 */ sw $s7, 0x40($sp) +/* 0EE950 7F0B9E20 AFB50038 */ sw $s5, 0x38($sp) +/* 0EE954 7F0B9E24 AFB40034 */ sw $s4, 0x34($sp) +/* 0EE958 7F0B9E28 AFB30030 */ sw $s3, 0x30($sp) +/* 0EE95C 7F0B9E2C AFB2002C */ sw $s2, 0x2c($sp) +/* 0EE960 7F0B9E30 AFB10028 */ sw $s1, 0x28($sp) +/* 0EE964 7F0B9E34 AFB00024 */ sw $s0, 0x24($sp) +/* 0EE968 7F0B9E38 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0EE96C 7F0B9E3C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0EE970 7F0B9E40 8DCF0000 */ lw $t7, ($t6) +/* 0EE974 7F0B9E44 3C018006 */ lui $at, %hi(D_80058D60) +/* 0EE978 7F0B9E48 0080A025 */ move $s4, $a0 +/* 0EE97C 7F0B9E4C 00A0A825 */ move $s5, $a1 +/* 0EE980 7F0B9E50 2413FFFF */ li $s3, -1 +/* 0EE984 7F0B9E54 00008825 */ move $s1, $zero +/* 0EE988 7F0B9E58 C4348D60 */ lwc1 $f20, %lo(D_80058D60)($at) +/* 0EE98C 7F0B9E5C 11E0001F */ beqz $t7, .L7F0B9EDC +/* 0EE990 7F0B9E60 00008025 */ move $s0, $zero +/* 0EE994 7F0B9E64 3C178004 */ lui $s7, %hi(D_80044900) +/* 0EE998 7F0B9E68 4480B000 */ mtc1 $zero, $f22 +/* 0EE99C 7F0B9E6C 26F74900 */ addiu $s7, %lo(D_80044900) # addiu $s7, $s7, 0x4900 +/* 0EE9A0 7F0B9E70 00009025 */ move $s2, $zero +/* 0EE9A4 7F0B9E74 02002025 */ move $a0, $s0 +.L7F0B9E78: +/* 0EE9A8 7F0B9E78 02802825 */ move $a1, $s4 +/* 0EE9AC 7F0B9E7C 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0EE9B0 7F0B9E80 02A03025 */ move $a2, $s5 +/* 0EE9B4 7F0B9E84 5040000F */ beql $v0, $zero, .L7F0B9EC4 +/* 0EE9B8 7F0B9E88 8ED80000 */ lw $t8, ($s6) +/* 0EE9BC 7F0B9E8C C6E00000 */ lwc1 $f0, ($s7) +/* 0EE9C0 7F0B9E90 4616003C */ c.lt.s $f0, $f22 +/* 0EE9C4 7F0B9E94 00000000 */ nop +/* 0EE9C8 7F0B9E98 45020003 */ bc1fl .L7F0B9EA8 +/* 0EE9CC 7F0B9E9C 4614003C */ c.lt.s $f0, $f20 +/* 0EE9D0 7F0B9EA0 46000007 */ neg.s $f0, $f0 +/* 0EE9D4 7F0B9EA4 4614003C */ c.lt.s $f0, $f20 +.L7F0B9EA8: +/* 0EE9D8 7F0B9EA8 00000000 */ nop +/* 0EE9DC 7F0B9EAC 45020005 */ bc1fl .L7F0B9EC4 +/* 0EE9E0 7F0B9EB0 8ED80000 */ lw $t8, ($s6) +/* 0EE9E4 7F0B9EB4 02009825 */ move $s3, $s0 +/* 0EE9E8 7F0B9EB8 46000506 */ mov.s $f20, $f0 +/* 0EE9EC 7F0B9EBC 26310001 */ addiu $s1, $s1, 1 +/* 0EE9F0 7F0B9EC0 8ED80000 */ lw $t8, ($s6) +.L7F0B9EC4: +/* 0EE9F4 7F0B9EC4 26520008 */ addiu $s2, $s2, 8 +/* 0EE9F8 7F0B9EC8 26100001 */ addiu $s0, $s0, 1 +/* 0EE9FC 7F0B9ECC 0312C821 */ addu $t9, $t8, $s2 +/* 0EEA00 7F0B9ED0 8F280000 */ lw $t0, ($t9) +/* 0EEA04 7F0B9ED4 5500FFE8 */ bnezl $t0, .L7F0B9E78 +/* 0EEA08 7F0B9ED8 02002025 */ move $a0, $s0 +.L7F0B9EDC: +/* 0EEA0C 7F0B9EDC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EEA10 7F0B9EE0 02601025 */ move $v0, $s3 +/* 0EEA14 7F0B9EE4 8FB30030 */ lw $s3, 0x30($sp) +/* 0EEA18 7F0B9EE8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0EEA1C 7F0B9EEC D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0EEA20 7F0B9EF0 8FB00024 */ lw $s0, 0x24($sp) +/* 0EEA24 7F0B9EF4 8FB10028 */ lw $s1, 0x28($sp) +/* 0EEA28 7F0B9EF8 8FB2002C */ lw $s2, 0x2c($sp) +/* 0EEA2C 7F0B9EFC 8FB40034 */ lw $s4, 0x34($sp) +/* 0EEA30 7F0B9F00 8FB50038 */ lw $s5, 0x38($sp) +/* 0EEA34 7F0B9F04 8FB6003C */ lw $s6, 0x3c($sp) +/* 0EEA38 7F0B9F08 8FB70040 */ lw $s7, 0x40($sp) +/* 0EEA3C 7F0B9F0C 03E00008 */ jr $ra +/* 0EEA40 7F0B9F10 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9F14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9F14 +/* 0EEA44 7F0B9F14 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0EEA48 7F0B9F18 AFB00018 */ sw $s0, 0x18($sp) +/* 0EEA4C 7F0B9F1C 00A08025 */ move $s0, $a1 +/* 0EEA50 7F0B9F20 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EEA54 7F0B9F24 AFA400A0 */ sw $a0, 0xa0($sp) +/* 0EEA58 7F0B9F28 27A50060 */ addiu $a1, $sp, 0x60 +/* 0EEA5C 7F0B9F2C AFA600A8 */ sw $a2, 0xa8($sp) +/* 0EEA60 7F0B9F30 A3A0004B */ sb $zero, 0x4b($sp) +/* 0EEA64 7F0B9F34 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EEA68 7F0B9F38 A3A0004A */ sb $zero, 0x4a($sp) +/* 0EEA6C 7F0B9F3C 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0EEA70 7F0B9F40 C6100000 */ lwc1 $f16, ($s0) +/* 0EEA74 7F0B9F44 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EEA78 7F0B9F48 C4CA0000 */ lwc1 $f10, ($a2) +/* 0EEA7C 7F0B9F4C C42C13F4 */ lwc1 $f12, %lo(room_data_float1)($at) +/* 0EEA80 7F0B9F50 93AA004B */ lbu $t2, 0x4b($sp) +/* 0EEA84 7F0B9F54 46105181 */ sub.s $f6, $f10, $f16 +/* 0EEA88 7F0B9F58 93AB004A */ lbu $t3, 0x4a($sp) +/* 0EEA8C 7F0B9F5C E7A6008C */ swc1 $f6, 0x8c($sp) +/* 0EEA90 7F0B9F60 C6080004 */ lwc1 $f8, 4($s0) +/* 0EEA94 7F0B9F64 C4C40004 */ lwc1 $f4, 4($a2) +/* 0EEA98 7F0B9F68 46082481 */ sub.s $f18, $f4, $f8 +/* 0EEA9C 7F0B9F6C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0EEAA0 7F0B9F70 E7B20090 */ swc1 $f18, 0x90($sp) +/* 0EEAA4 7F0B9F74 C6100008 */ lwc1 $f16, 8($s0) +/* 0EEAA8 7F0B9F78 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0EEAAC 7F0B9F7C 46105181 */ sub.s $f6, $f10, $f16 +/* 0EEAB0 7F0B9F80 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 0EEAB4 7F0B9F84 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0EEAB8 7F0B9F88 C6040000 */ lwc1 $f4, ($s0) +/* 0EEABC 7F0B9F8C C60A0004 */ lwc1 $f10, 4($s0) +/* 0EEAC0 7F0B9F90 46082482 */ mul.s $f18, $f4, $f8 +/* 0EEAC4 7F0B9F94 00000000 */ nop +/* 0EEAC8 7F0B9F98 46105182 */ mul.s $f6, $f10, $f16 +/* 0EEACC 7F0B9F9C C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EEAD0 7F0B9FA0 46069100 */ add.s $f4, $f18, $f6 +/* 0EEAD4 7F0B9FA4 C6120008 */ lwc1 $f18, 8($s0) +/* 0EEAD8 7F0B9FA8 46125182 */ mul.s $f6, $f10, $f18 +/* 0EEADC 7F0B9FAC 46043480 */ add.s $f18, $f6, $f4 +/* 0EEAE0 7F0B9FB0 C4C60000 */ lwc1 $f6, ($a2) +/* 0EEAE4 7F0B9FB4 460C9382 */ mul.s $f14, $f18, $f12 +/* 0EEAE8 7F0B9FB8 C4D20004 */ lwc1 $f18, 4($a2) +/* 0EEAEC 7F0B9FBC 46083102 */ mul.s $f4, $f6, $f8 +/* 0EEAF0 7F0B9FC0 00000000 */ nop +/* 0EEAF4 7F0B9FC4 46109182 */ mul.s $f6, $f18, $f16 +/* 0EEAF8 7F0B9FC8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0EEAFC 7F0B9FCC 46125402 */ mul.s $f16, $f10, $f18 +/* 0EEB00 7F0B9FD0 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0EEB04 7F0B9FD4 46062200 */ add.s $f8, $f4, $f6 +/* 0EEB08 7F0B9FD8 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0EEB0C 7F0B9FDC 46088100 */ add.s $f4, $f16, $f8 +/* 0EEB10 7F0B9FE0 4606703C */ c.lt.s $f14, $f6 +/* 0EEB14 7F0B9FE4 460C2002 */ mul.s $f0, $f4, $f12 +/* 0EEB18 7F0B9FE8 45000005 */ bc1f .L7F0BA000 +/* 0EEB1C 7F0B9FEC 00000000 */ nop +/* 0EEB20 7F0B9FF0 4606003C */ c.lt.s $f0, $f6 +/* 0EEB24 7F0B9FF4 00000000 */ nop +/* 0EEB28 7F0B9FF8 45010009 */ bc1t .L7F0BA020 +/* 0EEB2C 7F0B9FFC 00000000 */ nop +.L7F0BA000: +/* 0EEB30 7F0BA000 460E503C */ c.lt.s $f10, $f14 +/* 0EEB34 7F0BA004 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EEB38 7F0BA008 45020008 */ bc1fl .L7F0BA02C +/* 0EEB3C 7F0BA00C 46007480 */ add.s $f18, $f14, $f0 +/* 0EEB40 7F0BA010 4600503C */ c.lt.s $f10, $f0 +/* 0EEB44 7F0BA014 00000000 */ nop +/* 0EEB48 7F0BA018 45020004 */ bc1fl .L7F0BA02C +/* 0EEB4C 7F0BA01C 46007480 */ add.s $f18, $f14, $f0 +.L7F0BA020: +/* 0EEB50 7F0BA020 1000008D */ b .L7F0BA258 +/* 0EEB54 7F0BA024 00001025 */ move $v0, $zero +/* 0EEB58 7F0BA028 46007480 */ add.s $f18, $f14, $f0 +.L7F0BA02C: +/* 0EEB5C 7F0BA02C 44818000 */ mtc1 $at, $f16 +/* 0EEB60 7F0BA030 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0EEB64 7F0BA034 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0EEB68 7F0BA038 46109202 */ mul.s $f8, $f18, $f16 +/* 0EEB6C 7F0BA03C 3C0F8008 */ lui $t7, %hi(ptr_bgdata_portals) +/* 0EEB70 7F0BA040 8DEFFF80 */ lw $t7, %lo(ptr_bgdata_portals)($t7) +/* 0EEB74 7F0BA044 3C018004 */ lui $at, %hi(D_80044900) +/* 0EEB78 7F0BA048 000EC0C0 */ sll $t8, $t6, 3 +/* 0EEB7C 7F0BA04C 01F84021 */ addu $t0, $t7, $t8 +/* 0EEB80 7F0BA050 00003825 */ move $a3, $zero +/* 0EEB84 7F0BA054 46044181 */ sub.s $f6, $f8, $f4 +/* 0EEB88 7F0BA058 00002025 */ move $a0, $zero +/* 0EEB8C 7F0BA05C E4264900 */ swc1 $f6, %lo(D_80044900)($at) +/* 0EEB90 7F0BA060 8D020000 */ lw $v0, ($t0) +/* 0EEB94 7F0BA064 90460000 */ lbu $a2, ($v0) +/* 0EEB98 7F0BA068 58C00073 */ blezl $a2, .L7F0BA238 +/* 0EEB9C 7F0BA06C C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0EEBA0 7F0BA070 44801000 */ mtc1 $zero, $f2 +/* 0EEBA4 7F0BA074 240C000C */ li $t4, 12 +/* 0EEBA8 7F0BA078 24E90001 */ addiu $t1, $a3, 1 +.L7F0BA07C: +/* 0EEBAC 7F0BA07C 0126001A */ div $zero, $t1, $a2 +/* 0EEBB0 7F0BA080 00002810 */ mfhi $a1 +/* 0EEBB4 7F0BA084 00446821 */ addu $t5, $v0, $a0 +/* 0EEBB8 7F0BA088 C5B20004 */ lwc1 $f18, 4($t5) +/* 0EEBBC 7F0BA08C 00AC0019 */ multu $a1, $t4 +/* 0EEBC0 7F0BA090 14C00002 */ bnez $a2, .L7F0BA09C +/* 0EEBC4 7F0BA094 00000000 */ nop +/* 0EEBC8 7F0BA098 0007000D */ break 7 +.L7F0BA09C: +/* 0EEBCC 7F0BA09C 2401FFFF */ li $at, -1 +/* 0EEBD0 7F0BA0A0 14C10004 */ bne $a2, $at, .L7F0BA0B4 +/* 0EEBD4 7F0BA0A4 3C018000 */ lui $at, 0x8000 +/* 0EEBD8 7F0BA0A8 15210002 */ bne $t1, $at, .L7F0BA0B4 +/* 0EEBDC 7F0BA0AC 00000000 */ nop +/* 0EEBE0 7F0BA0B0 0006000D */ break 6 +.L7F0BA0B4: +/* 0EEBE4 7F0BA0B4 00001812 */ mflo $v1 +/* 0EEBE8 7F0BA0B8 0043C821 */ addu $t9, $v0, $v1 +/* 0EEBEC 7F0BA0BC C72A0004 */ lwc1 $f10, 4($t9) +/* 0EEBF0 7F0BA0C0 46125401 */ sub.s $f16, $f10, $f18 +/* 0EEBF4 7F0BA0C4 E7B00074 */ swc1 $f16, 0x74($sp) +/* 0EEBF8 7F0BA0C8 8D020000 */ lw $v0, ($t0) +/* 0EEBFC 7F0BA0CC 00437021 */ addu $t6, $v0, $v1 +/* 0EEC00 7F0BA0D0 00447821 */ addu $t7, $v0, $a0 +/* 0EEC04 7F0BA0D4 C5E40008 */ lwc1 $f4, 8($t7) +/* 0EEC08 7F0BA0D8 C5C80008 */ lwc1 $f8, 8($t6) +/* 0EEC0C 7F0BA0DC 46044181 */ sub.s $f6, $f8, $f4 +/* 0EEC10 7F0BA0E0 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0EEC14 7F0BA0E4 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0EEC18 7F0BA0E8 8D020000 */ lw $v0, ($t0) +/* 0EEC1C 7F0BA0EC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0EEC20 7F0BA0F0 0043C021 */ addu $t8, $v0, $v1 +/* 0EEC24 7F0BA0F4 0044C821 */ addu $t9, $v0, $a0 +/* 0EEC28 7F0BA0F8 C732000C */ lwc1 $f18, 0xc($t9) +/* 0EEC2C 7F0BA0FC C70A000C */ lwc1 $f10, 0xc($t8) +/* 0EEC30 7F0BA100 46044182 */ mul.s $f6, $f8, $f4 +/* 0EEC34 7F0BA104 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0EEC38 7F0BA108 46125401 */ sub.s $f16, $f10, $f18 +/* 0EEC3C 7F0BA10C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0EEC40 7F0BA110 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EEC44 7F0BA114 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0EEC48 7F0BA118 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0EEC4C 7F0BA11C 46125402 */ mul.s $f16, $f10, $f18 +/* 0EEC50 7F0BA120 46103181 */ sub.s $f6, $f6, $f16 +/* 0EEC54 7F0BA124 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 0EEC58 7F0BA128 46109482 */ mul.s $f18, $f18, $f16 +/* 0EEC5C 7F0BA12C E7A60050 */ swc1 $f6, 0x50($sp) +/* 0EEC60 7F0BA130 46082102 */ mul.s $f4, $f4, $f8 +/* 0EEC64 7F0BA134 46049481 */ sub.s $f18, $f18, $f4 +/* 0EEC68 7F0BA138 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EEC6C 7F0BA13C C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0EEC70 7F0BA140 E7B20054 */ swc1 $f18, 0x54($sp) +/* 0EEC74 7F0BA144 46088282 */ mul.s $f10, $f16, $f8 +/* 0EEC78 7F0BA148 460A2401 */ sub.s $f16, $f4, $f10 +/* 0EEC7C 7F0BA14C 46063202 */ mul.s $f8, $f6, $f6 +/* 0EEC80 7F0BA150 00000000 */ nop +/* 0EEC84 7F0BA154 46129102 */ mul.s $f4, $f18, $f18 +/* 0EEC88 7F0BA158 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0EEC8C 7F0BA15C 46108182 */ mul.s $f6, $f16, $f16 +/* 0EEC90 7F0BA160 46044280 */ add.s $f10, $f8, $f4 +/* 0EEC94 7F0BA164 460A3000 */ add.s $f0, $f6, $f10 +/* 0EEC98 7F0BA168 46020032 */ c.eq.s $f0, $f2 +/* 0EEC9C 7F0BA16C 00000000 */ nop +/* 0EECA0 7F0BA170 45000003 */ bc1f .L7F0BA180 +/* 0EECA4 7F0BA174 00000000 */ nop +/* 0EECA8 7F0BA178 10000037 */ b .L7F0BA258 +/* 0EECAC 7F0BA17C 00001025 */ move $v0, $zero +.L7F0BA180: +/* 0EECB0 7F0BA180 8D0D0000 */ lw $t5, ($t0) +/* 0EECB4 7F0BA184 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0EECB8 7F0BA188 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0EECBC 7F0BA18C 01A41021 */ addu $v0, $t5, $a0 +/* 0EECC0 7F0BA190 C4480004 */ lwc1 $f8, 4($v0) +/* 0EECC4 7F0BA194 C4460008 */ lwc1 $f6, 8($v0) +/* 0EECC8 7F0BA198 46089102 */ mul.s $f4, $f18, $f8 +/* 0EECCC 7F0BA19C 00000000 */ nop +/* 0EECD0 7F0BA1A0 46068282 */ mul.s $f10, $f16, $f6 +/* 0EECD4 7F0BA1A4 C446000C */ lwc1 $f6, 0xc($v0) +/* 0EECD8 7F0BA1A8 460A2200 */ add.s $f8, $f4, $f10 +/* 0EECDC 7F0BA1AC C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0EECE0 7F0BA1B0 46043282 */ mul.s $f10, $f6, $f4 +/* 0EECE4 7F0BA1B4 46085180 */ add.s $f6, $f10, $f8 +/* 0EECE8 7F0BA1B8 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0EECEC 7F0BA1BC C60A0000 */ lwc1 $f10, ($s0) +/* 0EECF0 7F0BA1C0 460A9202 */ mul.s $f8, $f18, $f10 +/* 0EECF4 7F0BA1C4 C6120004 */ lwc1 $f18, 4($s0) +/* 0EECF8 7F0BA1C8 46128282 */ mul.s $f10, $f16, $f18 +/* 0EECFC 7F0BA1CC C6120008 */ lwc1 $f18, 8($s0) +/* 0EED00 7F0BA1D0 460A4400 */ add.s $f16, $f8, $f10 +/* 0EED04 7F0BA1D4 46049202 */ mul.s $f8, $f18, $f4 +/* 0EED08 7F0BA1D8 46104280 */ add.s $f10, $f8, $f16 +/* 0EED0C 7F0BA1DC 460C5002 */ mul.s $f0, $f10, $f12 +/* 0EED10 7F0BA1E0 4606003C */ c.lt.s $f0, $f6 +/* 0EED14 7F0BA1E4 00000000 */ nop +/* 0EED18 7F0BA1E8 45000007 */ bc1f .L7F0BA208 +/* 0EED1C 7F0BA1EC 00000000 */ nop +/* 0EED20 7F0BA1F0 11600003 */ beqz $t3, .L7F0BA200 +/* 0EED24 7F0BA1F4 00000000 */ nop +/* 0EED28 7F0BA1F8 10000017 */ b .L7F0BA258 +/* 0EED2C 7F0BA1FC 00001025 */ move $v0, $zero +.L7F0BA200: +/* 0EED30 7F0BA200 10000005 */ b .L7F0BA218 +/* 0EED34 7F0BA204 240A0001 */ li $t2, 1 +.L7F0BA208: +/* 0EED38 7F0BA208 11400003 */ beqz $t2, .L7F0BA218 +/* 0EED3C 7F0BA20C 240B0001 */ li $t3, 1 +/* 0EED40 7F0BA210 10000011 */ b .L7F0BA258 +/* 0EED44 7F0BA214 00001025 */ move $v0, $zero +.L7F0BA218: +/* 0EED48 7F0BA218 8D020000 */ lw $v0, ($t0) +/* 0EED4C 7F0BA21C 01203825 */ move $a3, $t1 +/* 0EED50 7F0BA220 2484000C */ addiu $a0, $a0, 0xc +/* 0EED54 7F0BA224 90460000 */ lbu $a2, ($v0) +/* 0EED58 7F0BA228 0126082A */ slt $at, $t1, $a2 +/* 0EED5C 7F0BA22C 5420FF93 */ bnezl $at, .L7F0BA07C +/* 0EED60 7F0BA230 24E90001 */ addiu $t1, $a3, 1 +/* 0EED64 7F0BA234 C7B2006C */ lwc1 $f18, 0x6c($sp) +.L7F0BA238: +/* 0EED68 7F0BA238 24030002 */ li $v1, 2 +/* 0EED6C 7F0BA23C 4612703C */ c.lt.s $f14, $f18 +/* 0EED70 7F0BA240 00000000 */ nop +/* 0EED74 7F0BA244 45000003 */ bc1f .L7F0BA254 +/* 0EED78 7F0BA248 00000000 */ nop +/* 0EED7C 7F0BA24C 10000001 */ b .L7F0BA254 +/* 0EED80 7F0BA250 24030001 */ li $v1, 1 +.L7F0BA254: +/* 0EED84 7F0BA254 00601025 */ move $v0, $v1 +.L7F0BA258: +/* 0EED88 7F0BA258 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EED8C 7F0BA25C 8FB00018 */ lw $s0, 0x18($sp) +/* 0EED90 7F0BA260 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0EED94 7F0BA264 03E00008 */ jr $ra +/* 0EED98 7F0BA268 00000000 */ nop +) +#endif + + + + + +#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) + { + // Node 3 + return 0; + } + // 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; +} +#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 +void sub_GAME_7F0BA2D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA2D4 +/* 0EEE04 7F0BA2D4 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0EEE08 7F0BA2D8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0EEE0C 7F0BA2DC AFBE0038 */ sw $fp, 0x38($sp) +/* 0EEE10 7F0BA2E0 AFB70034 */ sw $s7, 0x34($sp) +/* 0EEE14 7F0BA2E4 AFB60030 */ sw $s6, 0x30($sp) +/* 0EEE18 7F0BA2E8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0EEE1C 7F0BA2EC AFB40028 */ sw $s4, 0x28($sp) +/* 0EEE20 7F0BA2F0 AFB30024 */ sw $s3, 0x24($sp) +/* 0EEE24 7F0BA2F4 AFB20020 */ sw $s2, 0x20($sp) +/* 0EEE28 7F0BA2F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EEE2C 7F0BA2FC AFB00018 */ sw $s0, 0x18($sp) +/* 0EEE30 7F0BA300 AFA700C4 */ sw $a3, 0xc4($sp) +/* 0EEE34 7F0BA304 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EEE38 7F0BA308 C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at) +/* 0EEE3C 7F0BA30C C4840000 */ lwc1 $f4, ($a0) +/* 0EEE40 7F0BA310 8CF10000 */ lw $s1, ($a3) +/* 0EEE44 7F0BA314 3C1E8004 */ lui $fp, %hi(D_80044904) +/* 0EEE48 7F0BA318 46002182 */ mul.s $f6, $f4, $f0 +/* 0EEE4C 7F0BA31C 00C0A025 */ move $s4, $a2 +/* 0EEE50 7F0BA320 00004025 */ move $t0, $zero +/* 0EEE54 7F0BA324 27DE4904 */ addiu $fp, %lo(D_80044904) # addiu $fp, $fp, 0x4904 +/* 0EEE58 7F0BA328 27B00070 */ addiu $s0, $sp, 0x70 +/* 0EEE5C 7F0BA32C 8FB500C8 */ lw $s5, 0xc8($sp) +/* 0EEE60 7F0BA330 27B60070 */ addiu $s6, $sp, 0x70 +/* 0EEE64 7F0BA334 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0EEE68 7F0BA338 C4880004 */ lwc1 $f8, 4($a0) +/* 0EEE6C 7F0BA33C 27B70064 */ addiu $s7, $sp, 0x64 +/* 0EEE70 7F0BA340 46004282 */ mul.s $f10, $f8, $f0 +/* 0EEE74 7F0BA344 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0EEE78 7F0BA348 C4900008 */ lwc1 $f16, 8($a0) +/* 0EEE7C 7F0BA34C 46008482 */ mul.s $f18, $f16, $f0 +/* 0EEE80 7F0BA350 E7B200A8 */ swc1 $f18, 0xa8($sp) +/* 0EEE84 7F0BA354 C4A40000 */ lwc1 $f4, ($a1) +/* 0EEE88 7F0BA358 46002182 */ mul.s $f6, $f4, $f0 +/* 0EEE8C 7F0BA35C E7A60094 */ swc1 $f6, 0x94($sp) +/* 0EEE90 7F0BA360 C4A80004 */ lwc1 $f8, 4($a1) +/* 0EEE94 7F0BA364 46004282 */ mul.s $f10, $f8, $f0 +/* 0EEE98 7F0BA368 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0EEE9C 7F0BA36C C4B00008 */ lwc1 $f16, 8($a1) +/* 0EEEA0 7F0BA370 AFB1007C */ sw $s1, 0x7c($sp) +/* 0EEEA4 7F0BA374 46008482 */ mul.s $f18, $f16, $f0 +/* 0EEEA8 7F0BA378 E7B2009C */ swc1 $f18, 0x9c($sp) +.L7F0BA37C: +/* 0EEEAC 7F0BA37C 0111082A */ slt $at, $t0, $s1 +/* 0EEEB0 7F0BA380 1020007C */ beqz $at, .L7F0BA574 +/* 0EEEB4 7F0BA384 00087880 */ sll $t7, $t0, 2 +/* 0EEEB8 7F0BA388 028FC021 */ addu $t8, $s4, $t7 +/* 0EEEBC 7F0BA38C 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EEEC0 7F0BA390 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EEEC4 7F0BA394 AFB8005C */ sw $t8, 0x5c($sp) +.L7F0BA398: +/* 0EEEC8 7F0BA398 8C490000 */ lw $t1, ($v0) +/* 0EEECC 7F0BA39C 8FB9005C */ lw $t9, 0x5c($sp) +/* 0EEED0 7F0BA3A0 00009025 */ move $s2, $zero +/* 0EEED4 7F0BA3A4 1120006C */ beqz $t1, .L7F0BA558 +/* 0EEED8 7F0BA3A8 8F330000 */ lw $s3, ($t9) +/* 0EEEDC 7F0BA3AC AFA8008C */ sw $t0, 0x8c($sp) +/* 0EEEE0 7F0BA3B0 00403825 */ move $a3, $v0 +/* 0EEEE4 7F0BA3B4 90EA0006 */ lbu $t2, 6($a3) +.L7F0BA3B8: +/* 0EEEE8 7F0BA3B8 314B0001 */ andi $t3, $t2, 1 +/* 0EEEEC 7F0BA3BC 55600061 */ bnezl $t3, .L7F0BA544 +/* 0EEEF0 7F0BA3C0 8CEA0008 */ lw $t2, 8($a3) +/* 0EEEF4 7F0BA3C4 90EC0004 */ lbu $t4, 4($a3) +/* 0EEEF8 7F0BA3C8 526C0005 */ beql $s3, $t4, .L7F0BA3E0 +/* 0EEEFC 7F0BA3CC 8FC10000 */ lw $at, ($fp) +/* 0EEF00 7F0BA3D0 90ED0005 */ lbu $t5, 5($a3) +/* 0EEF04 7F0BA3D4 566D005B */ bnel $s3, $t5, .L7F0BA544 +/* 0EEF08 7F0BA3D8 8CEA0008 */ lw $t2, 8($a3) +/* 0EEF0C 7F0BA3DC 8FC10000 */ lw $at, ($fp) +.L7F0BA3E0: +/* 0EEF10 7F0BA3E0 8FCF0004 */ lw $t7, 4($fp) +/* 0EEF14 7F0BA3E4 3C188004 */ lui $t8, %hi(D_80044910) +/* 0EEF18 7F0BA3E8 AEC10000 */ sw $at, ($s6) +/* 0EEF1C 7F0BA3EC 8FC10008 */ lw $at, 8($fp) +/* 0EEF20 7F0BA3F0 27184910 */ addiu $t8, %lo(D_80044910) # addiu $t8, $t8, 0x4910 +/* 0EEF24 7F0BA3F4 AECF0004 */ sw $t7, 4($s6) +/* 0EEF28 7F0BA3F8 AEC10008 */ sw $at, 8($s6) +/* 0EEF2C 7F0BA3FC 8F010000 */ lw $at, ($t8) +/* 0EEF30 7F0BA400 00003025 */ move $a2, $zero +/* 0EEF34 7F0BA404 AEE10000 */ sw $at, ($s7) +/* 0EEF38 7F0BA408 8F090004 */ lw $t1, 4($t8) +/* 0EEF3C 7F0BA40C AEE90004 */ sw $t1, 4($s7) +/* 0EEF40 7F0BA410 8F010008 */ lw $at, 8($t8) +/* 0EEF44 7F0BA414 AEE10008 */ sw $at, 8($s7) +/* 0EEF48 7F0BA418 8CE50000 */ lw $a1, ($a3) +/* 0EEF4C 7F0BA41C 90AA0000 */ lbu $t2, ($a1) +/* 0EEF50 7F0BA420 1940001F */ blez $t2, .L7F0BA4A0 +/* 0EEF54 7F0BA424 00002025 */ move $a0, $zero +.L7F0BA428: +/* 0EEF58 7F0BA428 27A30070 */ addiu $v1, $sp, 0x70 +/* 0EEF5C 7F0BA42C 27A20064 */ addiu $v0, $sp, 0x64 +.L7F0BA430: +/* 0EEF60 7F0BA430 00065880 */ sll $t3, $a2, 2 +/* 0EEF64 7F0BA434 01665823 */ subu $t3, $t3, $a2 +/* 0EEF68 7F0BA438 000B5880 */ sll $t3, $t3, 2 +/* 0EEF6C 7F0BA43C 00AB6021 */ addu $t4, $a1, $t3 +/* 0EEF70 7F0BA440 01846821 */ addu $t5, $t4, $a0 +/* 0EEF74 7F0BA444 C5A00004 */ lwc1 $f0, 4($t5) +/* 0EEF78 7F0BA448 C4640000 */ lwc1 $f4, ($v1) +/* 0EEF7C 7F0BA44C 24840004 */ addiu $a0, $a0, 4 +/* 0EEF80 7F0BA450 4604003C */ c.lt.s $f0, $f4 +/* 0EEF84 7F0BA454 00000000 */ nop +/* 0EEF88 7F0BA458 45020003 */ bc1fl .L7F0BA468 +/* 0EEF8C 7F0BA45C C4460000 */ lwc1 $f6, ($v0) +/* 0EEF90 7F0BA460 E4600000 */ swc1 $f0, ($v1) +/* 0EEF94 7F0BA464 C4460000 */ lwc1 $f6, ($v0) +.L7F0BA468: +/* 0EEF98 7F0BA468 24630004 */ addiu $v1, $v1, 4 +/* 0EEF9C 7F0BA46C 4600303C */ c.lt.s $f6, $f0 +/* 0EEFA0 7F0BA470 00000000 */ nop +/* 0EEFA4 7F0BA474 45020003 */ bc1fl .L7F0BA484 +/* 0EEFA8 7F0BA478 24420004 */ addiu $v0, $v0, 4 +/* 0EEFAC 7F0BA47C E4400000 */ swc1 $f0, ($v0) +/* 0EEFB0 7F0BA480 24420004 */ addiu $v0, $v0, 4 +.L7F0BA484: +/* 0EEFB4 7F0BA484 1450FFEA */ bne $v0, $s0, .L7F0BA430 +/* 0EEFB8 7F0BA488 8CE50000 */ lw $a1, ($a3) +/* 0EEFBC 7F0BA48C 90A20000 */ lbu $v0, ($a1) +/* 0EEFC0 7F0BA490 24C60001 */ addiu $a2, $a2, 1 +/* 0EEFC4 7F0BA494 00C2082A */ slt $at, $a2, $v0 +/* 0EEFC8 7F0BA498 5420FFE3 */ bnezl $at, .L7F0BA428 +/* 0EEFCC 7F0BA49C 00002025 */ move $a0, $zero +.L7F0BA4A0: +/* 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 +/* 0EEFE0 7F0BA4B0 27A70094 */ addiu $a3, $sp, 0x94 +/* 0EEFE4 7F0BA4B4 1040001F */ beqz $v0, .L7F0BA534 +/* 0EEFE8 7F0BA4B8 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EEFEC 7F0BA4BC 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EEFF0 7F0BA4C0 00004025 */ move $t0, $zero +/* 0EEFF4 7F0BA4C4 0235082A */ slt $at, $s1, $s5 +/* 0EEFF8 7F0BA4C8 01D23821 */ addu $a3, $t6, $s2 +/* 0EEFFC 7F0BA4CC 90E20004 */ lbu $v0, 4($a3) +/* 0EF000 7F0BA4D0 16620003 */ bne $s3, $v0, .L7F0BA4E0 +/* 0EF004 7F0BA4D4 00401825 */ move $v1, $v0 +/* 0EF008 7F0BA4D8 10000001 */ b .L7F0BA4E0 +/* 0EF00C 7F0BA4DC 90E30005 */ lbu $v1, 5($a3) +.L7F0BA4E0: +/* 0EF010 7F0BA4E0 1A200007 */ blez $s1, .L7F0BA500 +/* 0EF014 7F0BA4E4 02801025 */ move $v0, $s4 +.L7F0BA4E8: +/* 0EF018 7F0BA4E8 8C4F0000 */ lw $t7, ($v0) +/* 0EF01C 7F0BA4EC 106F0004 */ beq $v1, $t7, .L7F0BA500 +/* 0EF020 7F0BA4F0 00000000 */ nop +/* 0EF024 7F0BA4F4 25080001 */ addiu $t0, $t0, 1 +/* 0EF028 7F0BA4F8 1511FFFB */ bne $t0, $s1, .L7F0BA4E8 +/* 0EF02C 7F0BA4FC 24420004 */ addiu $v0, $v0, 4 +.L7F0BA500: +/* 0EF030 7F0BA500 1511000C */ bne $t0, $s1, .L7F0BA534 +/* 0EF034 7F0BA504 00000000 */ nop +/* 0EF038 7F0BA508 10200004 */ beqz $at, .L7F0BA51C +/* 0EF03C 7F0BA50C 0011C880 */ sll $t9, $s1, 2 +/* 0EF040 7F0BA510 0299C021 */ addu $t8, $s4, $t9 +/* 0EF044 7F0BA514 AF030000 */ sw $v1, ($t8) +/* 0EF048 7F0BA518 26310001 */ addiu $s1, $s1, 1 +.L7F0BA51C: +/* 0EF04C 7F0BA51C 0235082A */ slt $at, $s1, $s5 +/* 0EF050 7F0BA520 14200004 */ bnez $at, .L7F0BA534 +/* 0EF054 7F0BA524 00000000 */ nop +/* 0EF058 7F0BA528 8FA900C4 */ lw $t1, 0xc4($sp) +/* 0EF05C 7F0BA52C 10000018 */ b .L7F0BA590 +/* 0EF060 7F0BA530 AD310000 */ sw $s1, ($t1) +.L7F0BA534: +/* 0EF064 7F0BA534 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EF068 7F0BA538 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EF06C 7F0BA53C 00523821 */ addu $a3, $v0, $s2 +/* 0EF070 7F0BA540 8CEA0008 */ lw $t2, 8($a3) +.L7F0BA544: +/* 0EF074 7F0BA544 26520008 */ addiu $s2, $s2, 8 +/* 0EF078 7F0BA548 24E70008 */ addiu $a3, $a3, 8 +/* 0EF07C 7F0BA54C 5540FF9A */ bnezl $t2, .L7F0BA3B8 +/* 0EF080 7F0BA550 90EA0006 */ lbu $t2, 6($a3) +/* 0EF084 7F0BA554 8FA8008C */ lw $t0, 0x8c($sp) +.L7F0BA558: +/* 0EF088 7F0BA558 8FAB005C */ lw $t3, 0x5c($sp) +/* 0EF08C 7F0BA55C 8FAD007C */ lw $t5, 0x7c($sp) +/* 0EF090 7F0BA560 25080001 */ addiu $t0, $t0, 1 +/* 0EF094 7F0BA564 256C0004 */ addiu $t4, $t3, 4 +/* 0EF098 7F0BA568 010D082A */ slt $at, $t0, $t5 +/* 0EF09C 7F0BA56C 1420FF8A */ bnez $at, .L7F0BA398 +/* 0EF0A0 7F0BA570 AFAC005C */ sw $t4, 0x5c($sp) +.L7F0BA574: +/* 0EF0A4 7F0BA574 8FAE007C */ lw $t6, 0x7c($sp) +/* 0EF0A8 7F0BA578 522E0004 */ beql $s1, $t6, .L7F0BA58C +/* 0EF0AC 7F0BA57C 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 0EF0B0 7F0BA580 1000FF7E */ b .L7F0BA37C +/* 0EF0B4 7F0BA584 AFB1007C */ sw $s1, 0x7c($sp) +/* 0EF0B8 7F0BA588 8FAF00C4 */ lw $t7, 0xc4($sp) +.L7F0BA58C: +/* 0EF0BC 7F0BA58C ADF10000 */ sw $s1, ($t7) +.L7F0BA590: +/* 0EF0C0 7F0BA590 8FBF003C */ lw $ra, 0x3c($sp) +/* 0EF0C4 7F0BA594 8FB00018 */ lw $s0, 0x18($sp) +/* 0EF0C8 7F0BA598 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EF0CC 7F0BA59C 8FB20020 */ lw $s2, 0x20($sp) +/* 0EF0D0 7F0BA5A0 8FB30024 */ lw $s3, 0x24($sp) +/* 0EF0D4 7F0BA5A4 8FB40028 */ lw $s4, 0x28($sp) +/* 0EF0D8 7F0BA5A8 8FB5002C */ lw $s5, 0x2c($sp) +/* 0EF0DC 7F0BA5AC 8FB60030 */ lw $s6, 0x30($sp) +/* 0EF0E0 7F0BA5B0 8FB70034 */ lw $s7, 0x34($sp) +/* 0EF0E4 7F0BA5B4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0EF0E8 7F0BA5B8 03E00008 */ jr $ra +/* 0EF0EC 7F0BA5BC 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0BA5C0(u32 arg0, u32 arg1) { + s32 temp_a0; + u32 temp_v0; + void *phi_v0; + s32 phi_a0; + void *phi_v1; + + // Node 0 + if (arg0 < arg1) + { + // Node 1 + phi_v0 = arg0; +loop_2: + // Node 2 + if (D_80044940 != 0) + { + // Node 3 + phi_a0 = D_80044940; + phi_v1 = &D_80044940; +loop_4: + // Node 4 + if (*phi_v0 == phi_a0) + { + // Node 5 + if (phi_v0->unk4 == phi_v1->unk4) + { + // Node 6 + *phi_v0 = (s32) phi_v1->unk8; + phi_v0->unk4 = (s32) phi_v1->unkC; + } + } + // Node 7 + temp_a0 = phi_v1->unk10; + phi_a0 = temp_a0; + phi_v1 = (phi_v1 + 0x10); + if (temp_a0 != 0) + { + goto loop_4; + } + } + // Node 8 + temp_v0 = (phi_v0 + 8); + phi_v0 = temp_v0; + if (temp_v0 < arg1) + { + goto loop_2; + } + } + // Node 9 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA5C0 +/* 0EF0F0 7F0BA5C0 0085082B */ sltu $at, $a0, $a1 +/* 0EF0F4 7F0BA5C4 1020001C */ beqz $at, .L7F0BA638 +/* 0EF0F8 7F0BA5C8 00801025 */ move $v0, $a0 +/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(D_80044940) +/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(D_80044940) # addiu $a2, $a2, 0x4940 +/* 0EF104 7F0BA5D4 8CCE0000 */ lw $t6, ($a2) +.L7F0BA5D8: +/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(D_80044940) +/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(D_80044940) # addiu $t7, $t7, 0x4940 +/* 0EF110 7F0BA5E0 11C00011 */ beqz $t6, .L7F0BA628 +/* 0EF114 7F0BA5E4 00C01825 */ move $v1, $a2 +/* 0EF118 7F0BA5E8 8DE40000 */ lw $a0, ($t7) +/* 0EF11C 7F0BA5EC 8C580000 */ lw $t8, ($v0) +.L7F0BA5F0: +/* 0EF120 7F0BA5F0 5704000A */ bnel $t8, $a0, .L7F0BA61C +/* 0EF124 7F0BA5F4 8C640010 */ lw $a0, 0x10($v1) +/* 0EF128 7F0BA5F8 8C590004 */ lw $t9, 4($v0) +/* 0EF12C 7F0BA5FC 8C680004 */ lw $t0, 4($v1) +/* 0EF130 7F0BA600 57280006 */ bnel $t9, $t0, .L7F0BA61C +/* 0EF134 7F0BA604 8C640010 */ lw $a0, 0x10($v1) +/* 0EF138 7F0BA608 8C610008 */ lw $at, 8($v1) +/* 0EF13C 7F0BA60C AC410000 */ sw $at, ($v0) +/* 0EF140 7F0BA610 8C6A000C */ lw $t2, 0xc($v1) +/* 0EF144 7F0BA614 AC4A0004 */ sw $t2, 4($v0) +/* 0EF148 7F0BA618 8C640010 */ lw $a0, 0x10($v1) +.L7F0BA61C: +/* 0EF14C 7F0BA61C 24630010 */ addiu $v1, $v1, 0x10 +/* 0EF150 7F0BA620 5480FFF3 */ bnezl $a0, .L7F0BA5F0 +/* 0EF154 7F0BA624 8C580000 */ lw $t8, ($v0) +.L7F0BA628: +/* 0EF158 7F0BA628 24420008 */ addiu $v0, $v0, 8 +/* 0EF15C 7F0BA62C 0045082B */ sltu $at, $v0, $a1 +/* 0EF160 7F0BA630 5420FFE9 */ bnezl $at, .L7F0BA5D8 +/* 0EF164 7F0BA634 8CCE0000 */ lw $t6, ($a2) +.L7F0BA638: +/* 0EF168 7F0BA638 03E00008 */ jr $ra +/* 0EF16C 7F0BA63C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA640(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA640 /*DynamicCCRMLUT(Int DLSize (a0), Gfx GBICommand(a1), Gfx ReplacementGBICommand (a2))*/ +/* 0EF170 7F0BA640 10A00004 */ beqz $a1, .L7F0BA654 /*if a1 = 0 goto L7F0BA654*/ +/* 0EF174 7F0BA644 00801025 */ move $v0, $a0 /*v0 = a0*/ +/* 0EF178 7F0BA648 0045082B */ sltu $at, $v0, $a1 /*if a1 < v0 then goto L7F0BA668*/ +/* 0EF17C 7F0BA64C 14200006 */ bnez $at, .L7F0BA668 +/* 0EF180 7F0BA650 00000000 */ nop +.L7F0BA654: +/* 0EF184 7F0BA654 14A0002E */ bnez $a1, .L7F0BA710 /*if a1 != 0 goto return*/ +/* 0EF188 7F0BA658 00000000 */ nop +/* 0EF18C 7F0BA65C 808E0000 */ lb $t6, ($a0) /*t6 = byte(a0)*/ +/* 0EF190 7F0BA660 2408FFB8 */ li $t0, -72 /*t0 = 0xB8*/ +/* 0EF194 7F0BA664 110E002A */ beq $t0, $t6, .L7F0BA710 /*if t6 = 0xB8 return (B8 = EndDl())*/ +.L7F0BA668: +/* 0EF198 7F0BA668 3C098004 */ lui $t1, %hi(ptrDynamic_CC_RM_LUT) +/* 0EF19C 7F0BA66C 25294D88 */ addiu $t1, %lo(ptrDynamic_CC_RM_LUT) # addiu $t1, $t1, 0x4d88 +/* 0EF1A0 7F0BA670 00067880 */ sll $t7, $a2, 2 /*t7 = a2 << 2*/ +/* 0EF1A4 7F0BA674 012FC021 */ addu $t8, $t1, $t7 /*t8 = t7 + t1*/ +/* 0EF1A8 7F0BA678 8F030000 */ lw $v1, ($t8) +/* 0EF1AC 7F0BA67C 3C078004 */ lui $a3, %hi(D_80044DB0) +/* 0EF1B0 7F0BA680 8CE74DB0 */ lw $a3, %lo(D_80044DB0)($a3) # 0x4DB0($a3), +/* 0EF1B4 7F0BA684 8C640000 */ lw $a0, ($v1) +/* 0EF1B8 7F0BA688 2408FFB8 */ li $t0, -72 +/* 0EF1BC 7F0BA68C 10800011 */ beqz $a0, .L7F0BA6D4 +/* 0EF1C0 7F0BA690 00000000 */ nop +/* 0EF1C4 7F0BA694 8C590000 */ lw $t9, ($v0) +.L7F0BA698: +/* 0EF1C8 7F0BA698 5724000B */ bnel $t9, $a0, .L7F0BA6C8 +/* 0EF1CC 7F0BA69C 8C640010 */ lw $a0, 0x10($v1) +/* 0EF1D0 7F0BA6A0 8C4A0004 */ lw $t2, 4($v0) +/* 0EF1D4 7F0BA6A4 8C6B0004 */ lw $t3, 4($v1) +/* 0EF1D8 7F0BA6A8 554B0007 */ bnel $t2, $t3, .L7F0BA6C8 +/* 0EF1DC 7F0BA6AC 8C640010 */ lw $a0, 0x10($v1) +/* 0EF1E0 7F0BA6B0 8C610008 */ lw $at, 8($v1) +/* 0EF1E4 7F0BA6B4 24E70001 */ addiu $a3, $a3, 1 +/* 0EF1E8 7F0BA6B8 AC410000 */ sw $at, ($v0) +/* 0EF1EC 7F0BA6BC 8C6D000C */ lw $t5, 0xc($v1) +/* 0EF1F0 7F0BA6C0 AC4D0004 */ sw $t5, 4($v0) +/* 0EF1F4 7F0BA6C4 8C640010 */ lw $a0, 0x10($v1) +.L7F0BA6C8: +/* 0EF1F8 7F0BA6C8 24630010 */ addiu $v1, $v1, 0x10 +/* 0EF1FC 7F0BA6CC 5480FFF2 */ bnezl $a0, .L7F0BA698 +/* 0EF200 7F0BA6D0 8C590000 */ lw $t9, ($v0) +.L7F0BA6D4: +/* 0EF204 7F0BA6D4 10A00006 */ beqz $a1, .L7F0BA6F0 +/* 0EF208 7F0BA6D8 24420008 */ addiu $v0, $v0, 8 +/* 0EF20C 7F0BA6DC 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF210 7F0BA6E0 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF214 7F0BA6E4 0045082B */ sltu $at, $v0, $a1 +/* 0EF218 7F0BA6E8 1420FFDF */ bnez $at, .L7F0BA668 +/* 0EF21C 7F0BA6EC 00000000 */ nop +.L7F0BA6F0: +/* 0EF220 7F0BA6F0 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF224 7F0BA6F4 14A00006 */ bnez $a1, .L7F0BA710 +/* 0EF228 7F0BA6F8 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF22C 7F0BA6FC 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF230 7F0BA700 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF234 7F0BA704 804E0000 */ lb $t6, ($v0) +/* 0EF238 7F0BA708 150EFFD7 */ bne $t0, $t6, .L7F0BA668 +/* 0EF23C 7F0BA70C 00000000 */ nop +.L7F0BA710: +/* 0EF240 7F0BA710 03E00008 */ jr $ra +/* 0EF244 7F0BA714 00000000 */ nop +) +#endif + + + diff --git a/src/game/bg.h b/src/game/bg.h new file mode 100644 index 0000000..d2d2bde --- /dev/null +++ b/src/game/bg.h @@ -0,0 +1,45 @@ +#ifndef _BG_H_ +#define _BG_H_ +#include "ultra64.h" +#include "bondgame.h" + +struct levelentry +{ + s32 levelID; + void *bg_seg_filename; + void *bg_stan_filename; + f32 levelscale; + f32 visibility; + f32 unknownfloat; +}; + +typedef struct s_room_info { + s16 bitflags; + u8 model_bin_loaded; + u8 bitflags2; + void * ptr_point_index; + void * ptr_expanded_mapping_info; + void * ptr_secondary_expanded_mapping_info; + s32 csize_point_index_binary; + s32 csize_primary_DL_binary; + s32 csize_secondary_DL_binary; + s32 usize_point_index_binary; + s32 usize_primary_DL_binary; + s32 usize_secondary_DL_binary; + s32 cur_room_totalsize; + void * ptr_unique_collision_points; + s32 bitflags3; + u8 room_loaded_mask; + u8 field_35; + s16 field_36; + f32 minxbounds; + f32 minybounds; + f32 minzbounds; + f32 maxxbounds; + f32 maxybounds; + f32 maxzbounds; +} s_room_info; + +void bgInitDebugNoticeList(void); + +#endif diff --git a/src/game/blood_animation.c b/src/game/blood_animation.c new file mode 100644 index 0000000..fa85bfa --- /dev/null +++ b/src/game/blood_animation.c @@ -0,0 +1,933 @@ +#include "ultra64.h" + + +char die_blood_image_1[] = { + 0,0x20, 3, 5, 4, 2,0x60,0x21,0x22, 1,0xE0,0xE0,0xE0,0xE0, + 0xE0,0xE0,0xE0,0x60, 3,0x24, 2,0xA0, 2,0xC0, 1,0x22, 0, 3, + 6, 7, 6, 4,0x20, 1, 2,0x23,0x24, 3, 2,0x80,0x21,0xE0, + 0xE0,0xE0,0xE0,0xE0,0xE0,0x60, 5,0x46, 4,0x80,0x24,0xFF, 0, 1, + 3,0xFF,0x80, 3,0x44, 0,0x29, 8, 7,0xFF, 0, 2, 2,0xFF, + 2,0x24,0x25,0x26, 5, 4, 2,0x41, 2, 3, 4, 6,0xFF, 0, + 4, 4,0xFF,0xFF, 0, 5, 2,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, + 0,0xFF, 0, 3, 3,0xFF, 7,0x48, 6,0x60,0xFF, 0, 2, 3, + 0xFF, 6, 7,0xFF, 0, 2, 4,0xFF,0x60, 5,0x66, 0, 0xB, 0xA, + 9, 8,0x26,0x47, 8,0x27, 5, 4,0x43, 4, 5, 7, 0xB,0xFF, + 0, 3, 8,0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF, + 0xE0,0x80, 1,0x22, 1,0xE0,0x20, 1,0x22,0x21,0xE0,0xE0, 0,0xFF, + 0, 2, 7,0xFF,0x4A, 9, 7,0x60, 8,0x29,0xFF, 0, 2, 6, + 0xFF,0xFF, 0, 4, 3,0xFF,0xFF, 0, 5, 2,0xFF,0xFF, 0, 5, + 2,0xFF,0xFF, 0, 2, 5,0xFF,0x88, 0, 0xC, 0xB, 0xA,0xE9, 7, + 0x65, 6, 8, 0xF, 0xE, 0xD,0xFF, 0, 5, 7,0xFF,0xFF, 0, 6, + 5,0xFF,0xFF, 0, 6, 4,0xFF,0xE0,0x60, 2,0x43, 2, 1,0xE0, + 0x64, 3,0x22,0x21,0xE0,0x80,0xFF, 0, 5, 5,0xFF, 0xB,0x4C, 0xB, + 9,0x40,0xFF, 0, 4, 5,0xFF, 0xA, 0xB, 0xA,0xFF, 0, 3, 7, + 0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF,0xFF, 0, 4, + 5,0xFF,0xAA, 0,0x2D, 0xC,0xAB, 0xA, 9, 7,0x26, 7, 8,0xFF, + 0xB, 3, 3,0xFF,0x12,0x11,0x10,0xFF, 1, 4, 0xA,0xFF,0xFF, 0, + 6, 8,0xFF,0xFF, 0, 7, 5,0xFF,0xFF, 0, 8, 3,0xFF,0xE0, + 0x20, 1, 4,0x45,0x24, 3,0xA0, 2, 8, 7,0x26, 5,0x24,0x23, + 0x22, 1,0x20,0x41,0x42, 1, 0,0xFF, 0, 6, 5,0xFF,0xFF, 2, + 1, 0xA,0xFF, 0xD,0x4E, 0xD,0xFF, 0, 5, 6,0xFF,0x20,0xFF, 0, + 8, 2,0xFF,0x6C,0xFF, 2, 1, 9,0xFF,0xFF, 0, 5, 7,0xFF, + 0xFF, 0, 5, 7,0xFF,0xCC, 0, 0xF,0x2E,0x8D, 0xC, 0xB, 9,0x28, + 9, 0xB,0x34,0x13,0x12,0x11,0xFF, 2, 5, 9,0xFF,0xFF, 1, 6, + 8,0xFF,0xFF, 1, 7, 5,0xFF,0xFF, 0, 9, 2,0xFF, 0,0x41, + 0x80, 3, 5,0x47,0x26, 5, 4, 3, 1, 0, 1, 2, 0xB, 0xC, + 0xA, 9, 8, 7,0x26,0x25,0x24,0xA3,0x64, 3,0xFF, 2, 6, 4, + 0xFF,0xFF, 3, 2, 9,0xFF,0x2F,0x50, 0xF,0xFF, 0, 6, 8,0xFF, + 0,0xFF, 0, 0xA, 2,0xFF,0xFF, 0, 6, 7,0xFF,0x8E,0xFF, 2, + 3, 9,0xFF,0xFF, 3, 1, 0xA,0xFF,0xCE, 0,0x11,0x30,0x4F,0x2E, + 0xC, 0xB,0x2A, 0xB,0x16,0x17,0x16,0x15,0x14,0x13,0xFF, 4, 3, 0xB, + 0xFF,0xFF, 3, 5, 8,0xFF,0xFF, 2, 6, 7,0xFF,0xFF, 2, 7, + 5,0xFF,0xFF, 2, 8, 2,0xFF,0x43, 2, 1,0x40, 5, 7, 8, + 0x29,0x28,0x27, 6, 5, 4, 5, 0xB, 0xE, 0xF, 0xD, 0xB, 0xA, 9, + 0x28,0x27,0x46,0xA5,0x66,0xFF, 5, 3, 5,0xFF, 0xF,0x10,0x31,0x32, + 0x31,0xFF, 1, 6, 9,0xFF,0xFF, 0, 9, 6,0xFF,0xFF, 0, 9, + 6,0xFF,0xF0,0xD0, 1,0x11,0x30,0x4F, 0xE, 0xD, 0xC,0x2B,0xFF, 0xE, + 6, 3,0xFF,0x38,0x17,0x16,0x14,0x13,0x12,0xFF, 6, 1, 0xB,0xFF, + 0xFF, 5, 3, 9,0xFF,0xFF, 4, 5, 7,0xFF,0xFF, 4, 6, 5, + 0xFF,0x44, 3, 2, 1, 0, 2, 5, 8,0x89,0x28,0x47, 8, 0xC, + 0xF,0x30, 0xE, 0xC, 0xA,0x29,0x28,0x67,0xA6,0x27, 8, 0xC,0x10,0x31, + 0xB2,0xFF, 3, 4, 0xB,0xFF,0xFF, 1, 8, 9,0xFF,0xFF, 3, 4, + 0xB,0xFF,0x91,0x30,0xF1, 4,0x2F,0x2E,0x2D, 0xC,0x4A,0x57,0x16,0x14, + 0x13,0x12,0x11,0x10, 0xF, 0xE,0xFF, 7, 2, 8,0xFF,0xFF, 7, 3, + 6,0xFF,0x23, 2, 1,0x20, 1, 4, 6, 7,0x48,0x47,0x26, 7, + 8, 0xB, 0xE,0x2F, 0xE, 0xB, 0xA, 8,0x27,0xA6,0x85,0x26, 7, 0xA, + 0xE, 0xF,0x30,0xB1,0x10,0xFF, 4, 4, 0xC,0xFF,0x70,0x8F,0xD0, 6, + 0x2E,0x2D, 0xC, 0xB,0x2A,0xFF,0x12, 3, 6,0xFF,0x57,0x15,0x14,0x13, + 0x12,0x11,0x10, 0xF, 0xE, 0xD, 0xC, 0xA, 3, 2, 1,0x20, 2, 4, + 6, 7,0x48,0x47,0x26, 7, 8, 0xB, 0xE, 0xF,0x10, 0xF, 0xD, 0xA, + 9, 8, 7,0x26, 5,0x46,0xA5, 6, 7, 9, 0xD, 0xF,0x50,0xB1, + 0x50,0xEF,0x90, 0xF,0x10, 9,0x2C,0x2B, 0xA, 9, 0xA,0x16,0x17,0x16, + 0x15,0x14,0x13,0x11,0x10, 0xF, 0xE,0x2D, 0xC, 0xB, 0xA, 7, 2, 1, + 0x20, 1, 3, 4, 6,0x47, 6,0xFF, 0xF, 8, 5,0xFF,0x66, 7, + 0xA, 0xC, 0xE, 0xF, 0xE, 0xD, 0xA, 8, 7, 6, 5,0x64, 5,0xC4, + 6, 8, 0xB, 0xD, 0xE,0x4F,0xB0,0x2F,0xEE, 0xE,0x6F,0x4E, 0xB,0x4B, + 0xA, 0xB,0x14,0x16,0x17,0x16,0x15,0x13,0x12,0x11,0x10, 0xF, 0xE, 0xD, + 0x2C, 0xB, 0xA, 8, 4, 1,0x20, 1, 2, 4, 5, 6,0x27,0xFF, + 0x12, 6, 4,0xFF,0xFF,0x11, 6, 7,0xFF,0xFF,0x11, 6, 7,0xFF, + 0x46, 8, 9, 0xC, 0xE,0x2F, 0xE, 0xB, 9, 7, 6, 5,0xE4,0x23, + 0x24, 5, 7, 0xB, 0xD,0x4E,0x4F,0x90,0x2F,0x4E,0x6D,0x2E,0x6F,0x4E, + 0xD,0x2A, 0xB,0x12,0x16,0x17,0x16,0x15,0x14,0x13,0x11,0x10, 0xF, 0xE, + 0x2D, 0xC,0x2B, 0xA, 9, 5, 2,0x20, 1, 2, 4, 5, 6,0x27, + 0xFF,0x15, 1, 9,0xFF,0x13,0xFF,0x15, 1, 0xB,0xFF,0xFF,0x14, 5, + 5,0xFF, 6, 7, 8, 9, 0xB, 0xD,0x2F, 0xE, 0xC, 0xA, 8, 6, + 5, 4,0x23,0x84,0x43, 4, 5, 7, 0xB,0x2D,0x4E,0x8F,0x30,0x2F, + 0x2E,0xCD, 0xE,0x4F,0x6E, 0xF, 0xB, 0xF,0x15,0x56,0x15,0x13,0x12,0x11, + 0x10, 0xF, 0xE, 0xD,0x2C,0x2B, 0xA, 9, 6, 2,0x20, 1, 2, 4, + 5, 6, 7, 0xC,0x12,0x13,0x14,0x13,0x27, 8, 9, 0xB, 0xD, 0xE, + 0xF, 0xE, 0xD, 0xB, 9, 7, 5, 4,0x43,0x84,0x43, 4, 6, 0xB, + 0x4D,0x6E,0xEF, 0xE,0xED,0x2E,0x2F,0x6E,0x11,0x14,0x56,0x15,0x14,0x13, + 0x11,0x10, 0xF, 0xE, 0xD,0x2C,0x4B,0x2A, 7, 3, 1, 0, 1, 2, + 4, 5, 6, 8, 0xE,0x12,0x13,0x14,0x13, 0xD,0x28, 9, 0xB, 0xD, + 0xE, 0xF,0x2E, 0xC, 0xA, 8, 5, 4,0x63,0x64,0x43, 4, 7, 0xB, + 0xC,0x4D,0x8E,0xAF,0x2E,0x2D,0x6C,0x2D,0x2E,0x2F,0x6E,0x13,0x56,0x15, + 0x13,0x12,0x10, 0xF, 0xE,0x2D, 0xC,0x6B,0x2A, 8, 4, 1, 0, 1, + 2, 4, 5, 7, 0xA, 0xF,0x12,0x13,0x34,0x13, 9, 8, 9, 0xB, + 0xD,0x6E, 0xD, 0xC, 0xA, 6, 4, 3,0x22, 3,0x84,0x23, 4, 8, + 0xB, 0xC,0xAD,0x8E,0x4F,0x2E,0x2D,0xAC, 0xD,0xEE,0x16,0x15,0x14,0x13, + 0x11,0x10, 0xE,0x2D, 0xC, 0xB,0x2A,0x89, 8, 4, 1,0x20, 1, 3, + 5, 7, 0xB, 0xF,0x11,0x12,0x33,0x12, 0xA,0x28, 0xA, 0xC,0xCD,0xFF, + 0x20, 4, 4,0xFF,0xFF,0x1B, 8, 6,0xFF,0xFF,0x18, 0xC, 5,0xFF, + 0xFF,0x17, 0xF, 2,0xFF, 1, 2,0xC3, 4, 8, 0xA,0x2B,0xCC,0xED, + 0x2C,0x4B,0x2A,0x2B,0x2C,0xCD,0x18,0x13,0x12,0x10, 0xF, 0xD,0x2C, 0xB, + 0x2A,0xA9, 8, 6, 2, 0, 1, 2, 4, 6, 8, 0xC, 0xF,0x11, + 0x32,0x13,0x32,0x29, 0xA,0x2C,0x4D, 0xE, 0xF,0x11,0x12,0x33,0xFF,0x1A, + 9, 8,0xFF,0xFF,0x1A, 0xB, 6,0xFF, 2,0xA3, 4, 6, 8, 9, + 0xA,0x4B,0xEC,0xAD, 0xC,0x4B,0x6A,0x2B, 0xC,0xCD,0x1C, 0xF, 0xD, 0xB, + 0x2A, 9, 8,0xE7, 6, 5, 3, 0, 1, 2, 3, 5, 8, 0xB, + 0xD, 0xF,0x90, 0xF, 0xC,0x6A,0x2B, 0xC, 0xE, 0xF,0x10,0x71,0xFF,0x1D, + 9, 7,0xFF,0xFF,0x1D, 0xC, 2,0xFF,0x61, 2, 3, 4, 6, 7, + 0x28,0xC9,0xAA,0x2B,0x4A,0x29,0x88,0x29, 0xA,0xCB,0x1F, 0xA, 9,0x28, + 7,0x26,0x45,0x66, 5, 4, 3,0x22, 3, 4, 5, 8, 0xB, 0xD, + 0x2E,0x6F, 0xE, 0xD, 0xA,0x69, 0xA, 0xB, 0xD, 0xE,0x2F,0x70,0xFF,0x21, + 5, 9,0xFF,0xFF,0x20, 9, 6,0xFF,0x20,0x21, 2, 3, 5,0x26, + 0x27,0xE8,0x28,0xC9,0x28,0x27,0x26,0x47, 8,0x29,0x2A,0x4B, 0xA,0x22, + 7,0x26, 5,0x84,0x65,0x24,0x63, 4, 6, 9, 0xA, 0xC,0x2D,0x6E, + 0xD, 0xC, 0xA, 9,0x48, 9, 0xA, 0xC, 0xD,0x4E,0x6F,0x10,0xFF,0x22, + 7, 9,0xFF,0x20, 1, 2,0x23, 4,0x25,0x86,0xE7,0x88,0x27,0x26, + 0x65,0x26, 7,0x28, 9,0x6A, 9,0x25,0x24,0x23,0x22,0x23,0x64,0x23, + 0x42, 3, 5, 7, 8, 9, 0xA, 0xB,0x2C, 0xD,0x4C, 0xB, 9, 8, + 0x47, 8, 9, 0xB,0x2C,0x6D,0x2E, 0xF,0x10,0xFF,0x27, 1, 0xD,0xFF, + 0,0x21,0x22,0x23,0x44,0xE5,0x25,0x46,0x47,0x26,0x45,0x84, 5, 6, + 7, 8,0x29, 0xA,0x49,0x29, 1,0x60,0x21,0x42,0xA1, 2, 4, 5, + 6, 7, 8, 9,0x8A, 9, 8, 7, 6, 5, 4, 5, 6, 7, + 8, 9,0x4A,0x4B, 0xC, 0xD,0x2E, 0xD, 2,0x60,0x41,0x62,0xE3, 3, + 0xC4,0x23,0x42, 1, 2,0xFF,0x2B, 0xB, 3,0xFF,0xFF,0x2C, 9, 4, + 0xFF,0xFF,0x2D, 7, 5,0xFF,0xFF,0x2F, 5, 4,0xFF, 7,0x68,0x27, + 0x2B,0x60,0xFF,0x2C, 0xB, 2,0xFF,0xFF,0x2D, 9, 4,0xFF,0xFF,0x2D, + 8, 5,0xFF,0xFF,0x2D, 8, 5,0xFF, 2,0x81, 2, 3, 4, 5, + 6, 7, 8,0x29,0x2A,0x49, 8, 7, 5,0x24, 5, 6, 7, 8, + 0x29,0x6A, 0xB, 0xC, 0xD,0x4E, 0xC, 3, 1,0x40,0x61,0x62,0xE3,0x24, + 0x45,0x24,0x23,0x22, 1,0xFF,0x2C, 0xA, 4,0xFF,0xFF,0x2D, 8, 7, + 0xFF,0xFF,0x2E, 6, 8,0xFF,0xFF,0x2F, 4, 9,0xFF,0x10, 0xF, 0xE, + 0xB, 9,0x28,0x27,0x2C, 0,0xFF,0x2D, 0xB, 2,0xFF,0xFF,0x2E, 8, + 6,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x30, 3, 9,0xFF,0x10,0xFF, + 0x31, 2, 9,0xFF,0xFF,0x30, 5, 6,0xFF, 3,0x22,0x23, 4, 5, + 0x26, 7, 8, 9,0x8A,0x29, 8, 7, 6,0x45, 7, 8,0x29,0x6A, + 0x2B, 0xC,0x2E,0x2F, 0xE, 0xC, 3, 2,0x61,0x62,0xC3,0x44,0x25,0x86, + 0x25,0x24,0xFF,0x2F, 8, 2,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x2F, + 5, 9,0xFF,0xFF,0x30, 3, 0xB,0xFF,0x12,0x31,0x10, 0xF, 0xD, 0xB, + 0xA,0x29, 8,0x2F,0xFF,0x30, 4, 0xA,0xFF,0x6F,0x2E, 0xC,0x63,0x24, + 0x25, 6, 7,0x28,0x29,0x48,0x27, 6, 5,0x24, 5, 6,0x27,0x48, + 0x49, 0xA, 0xB, 0xC,0x6D, 0xC, 8, 2,0xA0,0x41,0x82,0x43,0x24, 5, + 0xE6, 9, 0xC, 0xE, 0xF,0x70, 0xF, 0xE, 0xD, 0xC, 0xA, 9,0x48,0x31, + 0x2F,0x4E, 0xD, 0xC, 8, 5,0x84, 5, 6, 7,0x88,0x27,0x26, 5, + 0x44, 5,0x26,0x27,0x68, 9, 0xA, 0xB, 0xC,0x4D,0x2C, 0xA, 6, 2, + 0xC0,0x21,0x62,0x23, 4, 6,0xE8,0x28, 9, 0xB, 0xD, 0xE, 0xF,0x50, + 0x2F, 0xE, 0xD, 0xC, 0xA, 9,0x28, 9,0x33,0x4E,0x2D, 0xC, 9, 6, + 0x24, 3,0x24, 5, 6, 7,0x68,0x27,0x26,0x25,0x44, 5,0x26,0x47, + 0x48, 9, 0xA, 0xB,0x8C, 0xB, 0xA, 8, 5, 1,0xC0,0x21,0x22,0x23, + 5, 7, 9,0x4A,0x49,0x68, 9, 0xA, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, + 0xB, 0xA, 9, 8, 9, 0xA,0x34,0x6E, 0xC, 0xA, 6, 5,0x44, 5, + 6, 7, 8,0x49,0x28,0x27,0x46,0x25,0x26,0x27,0x68,0x29, 0xA, 0xB, + 0xC,0x6D,0x2C, 0xB, 0xA, 8, 5, 2,0x21, 0,0x61,0x22, 3, 4, + 5, 7, 9, 0xB,0x4C,0x2B,0x2A,0x49,0x2A, 0xB, 0xD, 0xE, 0xF,0x50, + 0xF,0x4E, 0xD, 0xC, 0xB,0x2A, 0xB, 0xD,0x36,0x2E, 0xD, 0xC, 0xA, 6, + 0x64, 5, 7,0x28, 9,0x28,0x47,0xA6,0x67,0x68, 9, 0xA, 0xB,0xCC, + 0x2B, 0xA, 9, 7, 4, 2,0x21,0x20,0x21,0x22, 3, 4, 5, 7, + 9, 0xB,0x2D, 0xC,0x2B,0x2A,0x69,0x2A, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, + 0x2C, 0xB, 0xA, 0xB, 0xC, 0xE,0x38,0x4D, 0xA, 6,0x44, 5, 6,0x28, + 0x29,0x28,0xA7,0xFF,0x41, 3, 1,0xFF, 0xE, 0xD, 9,0xA8, 9, 0xA, + 0xD, 0xE,0x2D,0x2C,0x6B,0x2A, 9, 7, 5, 3, 2, 1,0x40,0x21, + 2, 3, 4, 5, 7, 0xA, 0xC,0x4D, 0xC, 0xB,0x2A,0x89,0x2A, 0xC, + 0xD, 0xE,0x4F, 0xE,0x2D,0x4C,0x4B, 0xC, 0xD, 0xF,0x3A,0x4D,0xFF,0x41, + 2, 3,0xFF,0x45, 7, 8,0x49,0x28,0x67, 8, 0xC, 0xE,0x2F, 0xE, + 0xD, 0xA,0x68, 9, 0xB, 0xD, 0xF,0x2E, 0xD, 0xC,0x2B,0x6A,0x29, 8, + 6, 4, 2,0x21,0x20,0x21, 2, 3, 4, 5, 7, 0xA, 0xC, 0xD, + 0x2E, 0xC, 0xB,0x2A,0x29,0x48,0x29, 0xA, 0xC, 0xD, 0xE,0x2F, 0xE,0x2D, + 0x2C,0x6B, 0xC, 0xD, 0xE, 0xF,0x3C,0x6D, 0xC, 0xB, 0xA,0x69,0x68, 9, + 0xA, 0xC, 0xE,0x4F, 0xE, 0xD, 0xB, 9,0x28, 9, 0xB, 0xD, 0xE,0x2F, + 0xE, 0xC, 0xB,0x2A,0x89,0x28, 6, 5, 3, 2,0x21, 0,0x21,0x22, + 4, 5, 7, 0xA, 0xC, 0xD,0x2E, 0xD, 0xC, 0xB, 0xA, 9,0xA8, 9, + 0xA, 0xC, 0xD,0x4E, 0xD,0x2C,0x8B,0x2C, 0xD, 0xE, 0xF,0x3F,0x2C,0x2B, + 0xA,0x29,0xA8, 9, 0xA, 0xB,0x2D,0x2E,0x2D, 0xB, 0xA,0x48, 9, 0xB, + 0xD,0x2E, 0xD, 0xC, 0xB, 9,0x68,0x67,0x26, 4, 3, 1,0x80,0x21, + 2, 4, 6, 8, 0xB, 0xC, 0xD, 0xE, 0xD, 0xC, 0xA, 9, 8,0x27, + 0x66, 7, 8, 0xA, 0xC,0x6D, 0xC, 0xB,0xAA, 0xB,0x2C,0x2D,0x41,0x2B, + 0xA,0x29,0x88,0x29, 0xA, 0xB, 0xC,0x6D,0x2C, 0xB,0x69, 0xB, 0xC, 0xD, + 0xE,0x2D, 0xC, 0xA, 9, 8,0xE7, 6, 5, 3, 2, 1,0x60,0x21, + 2, 4, 6, 8, 0xB, 0xC,0x4E, 0xD, 0xB, 0xA, 9, 8, 7,0x86, + 7, 9, 0xB, 0xC,0x4D, 0xC, 0xB,0x2A,0x49,0x2A, 0xB,0x4C, 0xD,0x43, + 0xA,0x49,0x48,0x29,0x2A, 0xB,0x4C, 0xD,0x4C, 0xB, 0xA,0x49, 0xA, 0xC, + 0x6D, 0xC, 0xB, 9, 8, 7,0x46,0x87, 6, 5, 4, 3, 2,0x21, + 0,0x21, 2, 3, 4, 6, 8, 0xA, 0xC,0x8D, 0xB, 0xA, 8, 7, + 0x26,0x25, 6, 7, 8, 0xB, 0xC,0x6D, 0xB,0x2A,0x69,0x2A,0x2B,0x4C, + 0x46, 8,0x67,0x28,0x29,0xEA, 0xA,0x29, 8,0x29,0xCA, 9, 7, 6, + 0x85, 6,0x27, 8, 7, 6, 4, 3, 2, 1,0x60, 1, 2, 3, + 5, 7, 9,0xEA, 9, 8, 7,0x65, 6, 8,0xEA, 9,0x88, 9, + 0xAA,0x49, 6,0xE7,0xE7,0xE7,0x87, 5,0x24,0x23, 4, 5,0xA7, 6, + 4, 2,0x21,0x60, 1, 2, 4, 6,0xE7,0xA7, 6,0xE7,0xE7,0xE7, + 7,0x4B,0xE5,0xE5,0xE5,0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1, + 0x40, 1, 2, 4,0xE5,0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5, + 0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1,0x40, 1, 2, 4,0xE5, + 0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5, + 0xE5,0xE5,0xE5,0xE5 +}; + +s32 D_8002C50C = 0; + +#ifdef NONMATCHING +void insert_imageDL(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_imageDL +/* 050C00 7F01C0D0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 050C04 7F01C0D4 AFB00018 */ sw $s0, 0x18($sp) +/* 050C08 7F01C0D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 050C0C 7F01C0DC 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 050C10 7F01C0E0 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 050C14 7F01C0E4 3C0F0030 */ lui $t7, 0x30 +/* 050C18 7F01C0E8 AC8F0004 */ sw $t7, 4($a0) +/* 050C1C 7F01C0EC AC8E0000 */ sw $t6, ($a0) +/* 050C20 7F01C0F0 24900008 */ addiu $s0, $a0, 8 +/* 050C24 7F01C0F4 AFB00030 */ sw $s0, 0x30($sp) +/* 050C28 7F01C0F8 0C001107 */ jal get_video2_settings_txtClipW +/* 050C2C 7F01C0FC 26100008 */ addiu $s0, $s0, 8 +/* 050C30 7F01C100 2458FFFF */ addiu $t8, $v0, -1 +/* 050C34 7F01C104 8FA90030 */ lw $t1, 0x30($sp) +/* 050C38 7F01C108 33190FFF */ andi $t9, $t8, 0xfff +/* 050C3C 7F01C10C 3C01FF10 */ lui $at, 0xff10 +/* 050C40 7F01C110 03214025 */ or $t0, $t9, $at +/* 050C44 7F01C114 0C000F07 */ jal get_video_settings2_frameb +/* 050C48 7F01C118 AD280000 */ sw $t0, ($t1) +/* 050C4C 7F01C11C 0C003A2C */ jal osVirtualToPhysical +/* 050C50 7F01C120 00402025 */ move $a0, $v0 +/* 050C54 7F01C124 8FAA0030 */ lw $t2, 0x30($sp) +/* 050C58 7F01C128 02001825 */ move $v1, $s0 +/* 050C5C 7F01C12C 3C0C0001 */ lui $t4, (0x00010001 >> 16) # lui $t4, 1 +/* 050C60 7F01C130 AD420004 */ sw $v0, 4($t2) +/* 050C64 7F01C134 358C0001 */ ori $t4, (0x00010001 & 0xFFFF) # ori $t4, $t4, 1 +/* 050C68 7F01C138 3C0BF700 */ lui $t3, 0xf700 +/* 050C6C 7F01C13C AC6B0000 */ sw $t3, ($v1) +/* 050C70 7F01C140 AC6C0004 */ sw $t4, 4($v1) +/* 050C74 7F01C144 26100008 */ addiu $s0, $s0, 8 +/* 050C78 7F01C148 AFB00028 */ sw $s0, 0x28($sp) +/* 050C7C 7F01C14C 0C001107 */ jal get_video2_settings_txtClipW +/* 050C80 7F01C150 26100008 */ addiu $s0, $s0, 8 +/* 050C84 7F01C154 0C00110B */ jal get_video2_settings_txtClipH +/* 050C88 7F01C158 A7A20022 */ sh $v0, 0x22($sp) +/* 050C8C 7F01C15C 87B90022 */ lh $t9, 0x22($sp) +/* 050C90 7F01C160 244DFFFF */ addiu $t5, $v0, -1 +/* 050C94 7F01C164 8FA30028 */ lw $v1, 0x28($sp) +/* 050C98 7F01C168 31AE03FF */ andi $t6, $t5, 0x3ff +/* 050C9C 7F01C16C 2728FFFF */ addiu $t0, $t9, -1 +/* 050CA0 7F01C170 310903FF */ andi $t1, $t0, 0x3ff +/* 050CA4 7F01C174 000E7880 */ sll $t7, $t6, 2 +/* 050CA8 7F01C178 3C01F600 */ lui $at, 0xf600 +/* 050CAC 7F01C17C 01E1C025 */ or $t8, $t7, $at +/* 050CB0 7F01C180 00095380 */ sll $t2, $t1, 0xe +/* 050CB4 7F01C184 030A5825 */ or $t3, $t8, $t2 +/* 050CB8 7F01C188 AC6B0000 */ sw $t3, ($v1) +/* 050CBC 7F01C18C AC600004 */ sw $zero, 4($v1) +/* 050CC0 7F01C190 8FBF001C */ lw $ra, 0x1c($sp) +/* 050CC4 7F01C194 02001025 */ move $v0, $s0 +/* 050CC8 7F01C198 8FB00018 */ lw $s0, 0x18($sp) +/* 050CCC 7F01C19C 03E00008 */ jr $ra +/* 050CD0 7F01C1A0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C1A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C1A4 +/* 050CD4 7F01C1A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 050CD8 7F01C1A8 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103 +/* 050CDC 7F01C1AC AFBF0014 */ sw $ra, 0x14($sp) +/* 050CE0 7F01C1B0 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 050CE4 7F01C1B4 AC8E0000 */ sw $t6, ($a0) +/* 050CE8 7F01C1B8 00801825 */ move $v1, $a0 +/* 050CEC 7F01C1BC 24850008 */ addiu $a1, $a0, 8 +/* 050CF0 7F01C1C0 3C048007 */ lui $a0, %hi(matrix_buffer_gunbarrel_0) +/* 050CF4 7F01C1C4 8C84955C */ lw $a0, %lo(matrix_buffer_gunbarrel_0)($a0) +/* 050CF8 7F01C1C8 AFA50020 */ sw $a1, 0x20($sp) +/* 050CFC 7F01C1CC 0C003A2C */ jal osVirtualToPhysical +/* 050D00 7F01C1D0 AFA3001C */ sw $v1, 0x1c($sp) +/* 050D04 7F01C1D4 8FA3001C */ lw $v1, 0x1c($sp) +/* 050D08 7F01C1D8 8FA80020 */ lw $t0, 0x20($sp) +/* 050D0C 7F01C1DC 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 050D10 7F01C1E0 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 050D14 7F01C1E4 AC620004 */ sw $v0, 4($v1) +/* 050D18 7F01C1E8 3C188003 */ lui $t8, %hi(D_8002A7D0) +/* 050D1C 7F01C1EC AD0F0000 */ sw $t7, ($t0) +/* 050D20 7F01C1F0 8F18A7D0 */ lw $t8, %lo(D_8002A7D0)($t8) +/* 050D24 7F01C1F4 3C098007 */ lui $t1, %hi(matrix_buffer_rarelogo_2) +/* 050D28 7F01C1F8 8D299564 */ lw $t1, %lo(matrix_buffer_rarelogo_2)($t1) +/* 050D2C 7F01C1FC 25050008 */ addiu $a1, $t0, 8 +/* 050D30 7F01C200 0018C980 */ sll $t9, $t8, 6 +/* 050D34 7F01C204 AFA50020 */ sw $a1, 0x20($sp) +/* 050D38 7F01C208 AFA80018 */ sw $t0, 0x18($sp) +/* 050D3C 7F01C20C 0C003A2C */ jal osVirtualToPhysical +/* 050D40 7F01C210 03292021 */ addu $a0, $t9, $t1 +/* 050D44 7F01C214 8FA30020 */ lw $v1, 0x20($sp) +/* 050D48 7F01C218 8FA80018 */ lw $t0, 0x18($sp) +/* 050D4C 7F01C21C 3C0AE700 */ lui $t2, 0xe700 +/* 050D50 7F01C220 24640008 */ addiu $a0, $v1, 8 +/* 050D54 7F01C224 AD020004 */ sw $v0, 4($t0) +/* 050D58 7F01C228 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 gDPSetCycleType(2cycle) +/* 050D5C 7F01C22C AC600004 */ sw $zero, 4($v1) +/* 050D60 7F01C230 AC6A0000 */ sw $t2, ($v1) +/* 050D64 7F01C234 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 +/* 050D68 7F01C238 24860008 */ addiu $a2, $a0, 8 +/* 050D6C 7F01C23C AC8B0000 */ sw $t3, ($a0) +/* 050D70 7F01C240 AC800004 */ sw $zero, 4($a0) +/* 050D74 7F01C244 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 gDPSetRenderMode(AAOpaSurf) +/* 050D78 7F01C248 3C0D0055 */ lui $t5, (0x00552048 >> 16) # lui $t5, 0x55 +/* 050D7C 7F01C24C 35AD2048 */ ori $t5, (0x00552048 & 0xFFFF) # ori $t5, $t5, 0x2048 +/* 050D80 7F01C250 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 050D84 7F01C254 ACCC0000 */ sw $t4, ($a2) +/* 050D88 7F01C258 ACCD0004 */ sw $t5, 4($a2) +/* 050D8C 7F01C25C 24C70008 */ addiu $a3, $a2, 8 +/* 050D90 7F01C260 3C0EB700 */ lui $t6, 0xb700 +/* 050D94 7F01C264 240F0204 */ li $t7, 516 +/* 050D98 7F01C268 ACEF0004 */ sw $t7, 4($a3) +/* 050D9C 7F01C26C ACEE0000 */ sw $t6, ($a3) +/* 050DA0 7F01C270 8FBF0014 */ lw $ra, 0x14($sp) +/* 050DA4 7F01C274 24E20008 */ addiu $v0, $a3, 8 +/* 050DA8 7F01C278 27BD0020 */ addiu $sp, $sp, 0x20 +/* 050DAC 7F01C27C 03E00008 */ jr $ra +/* 050DB0 7F01C280 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void die_blood_image_routine(void) { + +} +#else +GLOBAL_ASM( +.text +glabel die_blood_image_routine +/* 050DB4 7F01C284 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 050DB8 7F01C288 AFBF0024 */ sw $ra, 0x24($sp) +/* 050DBC 7F01C28C AFB10020 */ sw $s1, 0x20($sp) +/* 050DC0 7F01C290 14800008 */ bnez $a0, .L7F01C2B4 +/* 050DC4 7F01C294 AFB0001C */ sw $s0, 0x1c($sp) +/* 050DC8 7F01C298 3C118008 */ lui $s1, %hi(pPlayer) +/* 050DCC 7F01C29C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050DD0 7F01C2A0 8E2F0000 */ lw $t7, ($s1) +/* 050DD4 7F01C2A4 3C0E8003 */ lui $t6, %hi(die_blood_image_1) +/* 050DD8 7F01C2A8 25CEBB30 */ addiu $t6, %lo(die_blood_image_1) # addiu $t6, $t6, -0x44d0 +/* 050DDC 7F01C2AC 1000000D */ b .L7F01C2E4 +/* 050DE0 7F01C2B0 ADEE11A8 */ sw $t6, 0x11a8($t7) +.L7F01C2B4: +/* 050DE4 7F01C2B4 24010001 */ li $at, 1 +/* 050DE8 7F01C2B8 1481000A */ bne $a0, $at, .L7F01C2E4 +/* 050DEC 7F01C2BC 3C118008 */ lui $s1, %hi(pPlayer) +/* 050DF0 7F01C2C0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050DF4 7F01C2C4 8E300000 */ lw $s0, ($s1) +/* 050DF8 7F01C2C8 3C188003 */ lui $t8, %hi(D_8002C50C) +/* 050DFC 7F01C2CC 2718C50C */ addiu $t8, %lo(D_8002C50C) # addiu $t8, $t8, -0x3af4 +/* 050E00 7F01C2D0 8E0211AC */ lw $v0, 0x11ac($s0) +/* 050E04 7F01C2D4 0058082B */ sltu $at, $v0, $t8 +/* 050E08 7F01C2D8 10200002 */ beqz $at, .L7F01C2E4 +/* 050E0C 7F01C2DC 00000000 */ nop +/* 050E10 7F01C2E0 AE0211A8 */ sw $v0, 0x11a8($s0) +.L7F01C2E4: +/* 050E14 7F01C2E4 3C118008 */ lui $s1, %hi(pPlayer) +/* 050E18 7F01C2E8 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050E1C 7F01C2EC 8E300000 */ lw $s0, ($s1) +/* 050E20 7F01C2F0 24080001 */ li $t0, 1 +/* 050E24 7F01C2F4 24041E00 */ li $a0, 7680 +/* 050E28 7F01C2F8 8E1911B8 */ lw $t9, 0x11b8($s0) +/* 050E2C 7F01C2FC 01194823 */ subu $t1, $t0, $t9 +/* 050E30 7F01C300 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 050E34 7F01C304 AE0911B8 */ sw $t1, 0x11b8($s0) +/* 050E38 7F01C308 8E300000 */ lw $s0, ($s1) +/* 050E3C 7F01C30C 24041E00 */ li $a0, 7680 +/* 050E40 7F01C310 8E0A11B8 */ lw $t2, 0x11b8($s0) +/* 050E44 7F01C314 000A5880 */ sll $t3, $t2, 2 +/* 050E48 7F01C318 020B6021 */ addu $t4, $s0, $t3 +/* 050E4C 7F01C31C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 050E50 7F01C320 AD8211B0 */ sw $v0, 0x11b0($t4) +/* 050E54 7F01C324 8E2D0000 */ lw $t5, ($s1) +/* 050E58 7F01C328 AFA20030 */ sw $v0, 0x30($sp) +/* 050E5C 7F01C32C 27AE0037 */ addiu $t6, $sp, 0x37 +/* 050E60 7F01C330 8DA411A8 */ lw $a0, 0x11a8($t5) +/* 050E64 7F01C334 AFAE0010 */ sw $t6, 0x10($sp) +/* 050E68 7F01C338 24050050 */ li $a1, 80 +/* 050E6C 7F01C33C 24060060 */ li $a2, 96 +/* 050E70 7F01C340 0FC072B8 */ jal decrypt_bleeding_animation_data +/* 050E74 7F01C344 00403825 */ move $a3, $v0 +/* 050E78 7F01C348 8E2F0000 */ lw $t7, ($s1) +/* 050E7C 7F01C34C 24050050 */ li $a1, 80 +/* 050E80 7F01C350 24060060 */ li $a2, 96 +/* 050E84 7F01C354 ADE211AC */ sw $v0, 0x11ac($t7) +/* 050E88 7F01C358 8E300000 */ lw $s0, ($s1) +/* 050E8C 7F01C35C 8FA40030 */ lw $a0, 0x30($sp) +/* 050E90 7F01C360 8E1811B8 */ lw $t8, 0x11b8($s0) +/* 050E94 7F01C364 00184080 */ sll $t0, $t8, 2 +/* 050E98 7F01C368 0208C821 */ addu $t9, $s0, $t0 +/* 050E9C 7F01C36C 0FC0745B */ jal sub_GAME_7F01D16C +/* 050EA0 7F01C370 8F2711B0 */ lw $a3, 0x11b0($t9) +/* 050EA4 7F01C374 8E300000 */ lw $s0, ($s1) +/* 050EA8 7F01C378 24050050 */ li $a1, 80 +/* 050EAC 7F01C37C 8E0911B8 */ lw $t1, 0x11b8($s0) +/* 050EB0 7F01C380 00095080 */ sll $t2, $t1, 2 +/* 050EB4 7F01C384 020A5821 */ addu $t3, $s0, $t2 +/* 050EB8 7F01C388 8D6411B0 */ lw $a0, 0x11b0($t3) +/* 050EBC 7F01C38C 0FC0740B */ jal sub_GAME_7F01D02C +/* 050EC0 7F01C390 00803025 */ move $a2, $a0 +/* 050EC4 7F01C394 8E300000 */ lw $s0, ($s1) +/* 050EC8 7F01C398 24050050 */ li $a1, 80 +/* 050ECC 7F01C39C 8E0C11B8 */ lw $t4, 0x11b8($s0) +/* 050ED0 7F01C3A0 000C6880 */ sll $t5, $t4, 2 +/* 050ED4 7F01C3A4 020D7021 */ addu $t6, $s0, $t5 +/* 050ED8 7F01C3A8 8DC411B0 */ lw $a0, 0x11b0($t6) +/* 050EDC 7F01C3AC 0FC073BB */ jal sub_GAME_7F01CEEC +/* 050EE0 7F01C3B0 00803025 */ move $a2, $a0 +/* 050EE4 7F01C3B4 8E300000 */ lw $s0, ($s1) +/* 050EE8 7F01C3B8 24051E00 */ li $a1, 7680 +/* 050EEC 7F01C3BC 8E0F11B8 */ lw $t7, 0x11b8($s0) +/* 050EF0 7F01C3C0 000FC080 */ sll $t8, $t7, 2 +/* 050EF4 7F01C3C4 02184021 */ addu $t0, $s0, $t8 +/* 050EF8 7F01C3C8 8D0411B0 */ lw $a0, 0x11b0($t0) +/* 050EFC 7F01C3CC 0FC07325 */ jal sub_GAME_7F01CC94 +/* 050F00 7F01C3D0 00803025 */ move $a2, $a0 +/* 050F04 7F01C3D4 8E390000 */ lw $t9, ($s1) +/* 050F08 7F01C3D8 8FBF0024 */ lw $ra, 0x24($sp) +/* 050F0C 7F01C3DC 3C0A8003 */ lui $t2, %hi(D_8002C50C) +/* 050F10 7F01C3E0 8F2911AC */ lw $t1, 0x11ac($t9) +/* 050F14 7F01C3E4 254AC50C */ addiu $t2, %lo(D_8002C50C) # addiu $t2, $t2, -0x3af4 +/* 050F18 7F01C3E8 8FB10020 */ lw $s1, 0x20($sp) +/* 050F1C 7F01C3EC 8FB0001C */ lw $s0, 0x1c($sp) +/* 050F20 7F01C3F0 012A102B */ sltu $v0, $t1, $t2 +/* 050F24 7F01C3F4 38420001 */ xori $v0, $v0, 1 +/* 050F28 7F01C3F8 03E00008 */ jr $ra +/* 050F2C 7F01C3FC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C400(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C400 +/* 050F30 7F01C400 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 050F34 7F01C404 AFBF001C */ sw $ra, 0x1c($sp) +/* 050F38 7F01C408 AFB00018 */ sw $s0, 0x18($sp) +/* 050F3C 7F01C40C 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H +/* 050F40 7F01C410 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 050F44 7F01C414 AC8E0000 */ sw $t6, ($a0) +/* 050F48 7F01C418 AC800004 */ sw $zero, 4($a0) +/* 050F4C 7F01C41C 24830008 */ addiu $v1, $a0, 8 +/* 050F50 7F01C420 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 050F54 7F01C424 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 050F58 7F01C428 24182000 */ li $t8, 8192 +/* 050F5C 7F01C42C AC780004 */ sw $t8, 4($v1) +/* 050F60 7F01C430 AC6F0000 */ sw $t7, ($v1) +/* 050F64 7F01C434 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 050F68 7F01C438 24640008 */ addiu $a0, $v1, 8 +/* 050F6C 7F01C43C 3C19BB00 */ lui $t9, (0xBB000001 >> 16) # lui $t9, 0xbb00 +/* 050F70 7F01C440 37390001 */ ori $t9, (0xBB000001 & 0xFFFF) # ori $t9, $t9, 1 +/* 050F74 7F01C444 AC590000 */ sw $t9, ($v0) +/* 050F78 7F01C448 3C088000 */ lui $t0, (0x80008000 >> 16) +/* 050F7C 7F01C44C 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 #gDPSetRenderMode(OpaSurf) +/* 050F80 7F01C450 3C0A0050 */ lui $t2, (0x00504340 >> 16) # lui $t2, 0x50 +/* 050F84 7F01C454 3C0BFC11 */ lui $t3, (0xFC119623 >> 16) # lui $t3, 0xfc11 +/* 050F88 7F01C458 3C0CFF2F */ lui $t4, (0xFF2FFFFF >> 16) # lui $t4, 0xff2f +/* 050F8C 7F01C45C 3C0DBA00 */ lui $t5, (0xBA000602 >> 16) # lui $t5, 0xba00 +/* 050F90 7F01C460 3C0F9600 */ lui $t7, (0x960000B4 >> 16) # lui $t7, 0x9600 +/* 050F94 7F01C464 3C18BA00 */ lui $t8, (0xBA001301 >> 16) # lui $t8, 0xba00 +/* 050F98 7F01C468 35088000 */ ori $t0, (0x80008000 & 0xFFFF) # ori $t0, $t0, 0x8000 +/* 050F9C 7F01C46C 354A4340 */ ori $t2, (0x00504340 & 0xFFFF) # ori $t2, $t2, 0x4340 +/* 050FA0 7F01C470 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d +/* 050FA4 7F01C474 358CFFFF */ ori $t4, (0xFF2FFFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 050FA8 7F01C478 356B9623 */ ori $t3, (0xFC119623 & 0xFFFF) # ori $t3, $t3, 0x9623 #setcombine() +/* 050FAC 7F01C47C 35AD0602 */ ori $t5, (0xBA000602 & 0xFFFF) # ori $t5, $t5, 0x602 +/* 050FB0 7F01C480 35EF00B4 */ ori $t7, (0x960000B4 & 0xFFFF) # ori $t7, $t7, 0xb4 +/* 050FB4 7F01C484 3C0EFA00 */ lui $t6, 0xfa00 +/* 050FB8 7F01C488 37181301 */ ori $t8, (0xBA001301 & 0xFFFF) # ori $t8, $t8, 0x1301 +/* 050FBC 7F01C48C 3C19FD90 */ lui $t9, 0xfd90 +/* 050FC0 7F01C490 AC480004 */ sw $t0, 4($v0) +/* 050FC4 7F01C494 AC490008 */ sw $t1, 8($v0) +/* 050FC8 7F01C498 AC4A000C */ sw $t2, 0xc($v0) +/* 050FCC 7F01C49C AC4B0010 */ sw $t3, 0x10($v0) +/* 050FD0 7F01C4A0 AC4C0014 */ sw $t4, 0x14($v0) +/* 050FD4 7F01C4A4 AC4D0018 */ sw $t5, 0x18($v0) +/* 050FD8 7F01C4A8 AC40001C */ sw $zero, 0x1c($v0) +/* 050FDC 7F01C4AC AC4E0020 */ sw $t6, 0x20($v0) +/* 050FE0 7F01C4B0 AC4F0024 */ sw $t7, 0x24($v0) +/* 050FE4 7F01C4B4 AC580028 */ sw $t8, 0x28($v0) +/* 050FE8 7F01C4B8 AC40002C */ sw $zero, 0x2c($v0) +/* 050FEC 7F01C4BC AC590030 */ sw $t9, 0x30($v0) +/* 050FF0 7F01C4C0 3C038008 */ lui $v1, %hi(pPlayer) +/* 050FF4 7F01C4C4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 050FF8 7F01C4C8 3C018000 */ lui $at, 0x8000 +/* 050FFC 7F01C4CC 3C190777 */ lui $t9, (0x0777F156 >> 16) # lui $t9, 0x777 +/* 051000 7F01C4D0 8C6811B8 */ lw $t0, 0x11b8($v1) +/* 051004 7F01C4D4 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708 +/* 051008 7F01C4D8 3C0DF590 */ lui $t5, 0xf590 +/* 05100C 7F01C4DC 00084880 */ sll $t1, $t0, 2 +/* 051010 7F01C4E0 00695021 */ addu $t2, $v1, $t1 +/* 051014 7F01C4E4 8D4B11B0 */ lw $t3, 0x11b0($t2) +/* 051018 7F01C4E8 3C0A0008 */ lui $t2, (0x00080200 >> 16) # lui $t2, 8 +/* 05101C 7F01C4EC 3C09F580 */ lui $t1, (0xF5800C00 >> 16) # lui $t1, 0xf580 +/* 051020 7F01C4F0 01616021 */ addu $t4, $t3, $at +/* 051024 7F01C4F4 AC4C0034 */ sw $t4, 0x34($v0) +/* 051028 7F01C4F8 3C0C0017 */ lui $t4, (0x0017C13C >> 16) # lui $t4, 0x17 +/* 05102C 7F01C4FC 358CC13C */ ori $t4, (0x0017C13C & 0xFFFF) # ori $t4, $t4, 0xc13c +/* 051030 7F01C500 3C0BF200 */ lui $t3, 0xf200 +/* 051034 7F01C504 35290C00 */ ori $t1, (0xF5800C00 & 0xFFFF) # ori $t1, $t1, 0xc00 +/* 051038 7F01C508 354A0200 */ ori $t2, (0x00080200 & 0xFFFF) # ori $t2, $t2, 0x200 +/* 05103C 7F01C50C AC4D0038 */ sw $t5, 0x38($v0) +/* 051040 7F01C510 3C08E700 */ lui $t0, 0xe700 +/* 051044 7F01C514 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200 +/* 051048 7F01C518 3739F156 */ ori $t9, (0x0777F156 & 0xFFFF) # ori $t9, $t9, 0xf156 +/* 05104C 7F01C51C 3C18F300 */ lui $t8, 0xf300 +/* 051050 7F01C520 3C0FE600 */ lui $t7, 0xe600 +/* 051054 7F01C524 AC4F0040 */ sw $t7, 0x40($v0) +/* 051058 7F01C528 AC580048 */ sw $t8, 0x48($v0) +/* 05105C 7F01C52C AC59004C */ sw $t9, 0x4c($v0) +/* 051060 7F01C530 AC4E003C */ sw $t6, 0x3c($v0) +/* 051064 7F01C534 AC480050 */ sw $t0, 0x50($v0) +/* 051068 7F01C538 AC4A005C */ sw $t2, 0x5c($v0) +/* 05106C 7F01C53C AC490058 */ sw $t1, 0x58($v0) +/* 051070 7F01C540 AC4B0060 */ sw $t3, 0x60($v0) +/* 051074 7F01C544 AC4C0064 */ sw $t4, 0x64($v0) +/* 051078 7F01C548 AC400054 */ sw $zero, 0x54($v0) +/* 05107C 7F01C54C AC400044 */ sw $zero, 0x44($v0) +/* 051080 7F01C550 244D0068 */ addiu $t5, $v0, 0x68 +/* 051084 7F01C554 AFAD0030 */ sw $t5, 0x30($sp) +/* 051088 7F01C558 0C001107 */ jal get_video2_settings_txtClipW +/* 05108C 7F01C55C 24500070 */ addiu $s0, $v0, 0x70 +/* 051090 7F01C560 0C00110B */ jal get_video2_settings_txtClipH +/* 051094 7F01C564 A7A20026 */ sh $v0, 0x26($sp) +/* 051098 7F01C568 87A80026 */ lh $t0, 0x26($sp) +/* 05109C 7F01C56C 00027080 */ sll $t6, $v0, 2 +/* 0510A0 7F01C570 8FA50030 */ lw $a1, 0x30($sp) +/* 0510A4 7F01C574 00084880 */ sll $t1, $t0, 2 +/* 0510A8 7F01C578 252AFFFF */ addiu $t2, $t1, -1 +/* 0510AC 7F01C57C 25CFFFFF */ addiu $t7, $t6, -1 +/* 0510B0 7F01C580 31F80FFF */ andi $t8, $t7, 0xfff +/* 0510B4 7F01C584 314B0FFF */ andi $t3, $t2, 0xfff +/* 0510B8 7F01C588 3C01E400 */ lui $at, 0xe400 +/* 0510BC 7F01C58C 0301C825 */ or $t9, $t8, $at +/* 0510C0 7F01C590 000B6300 */ sll $t4, $t3, 0xc +/* 0510C4 7F01C594 032C6825 */ or $t5, $t9, $t4 +/* 0510C8 7F01C598 02001825 */ move $v1, $s0 +/* 0510CC 7F01C59C ACAD0000 */ sw $t5, ($a1) +/* 0510D0 7F01C5A0 ACA00004 */ sw $zero, 4($a1) +/* 0510D4 7F01C5A4 26100008 */ addiu $s0, $s0, 8 +/* 0510D8 7F01C5A8 3C0EB400 */ lui $t6, 0xb400 +/* 0510DC 7F01C5AC AC6E0000 */ sw $t6, ($v1) +/* 0510E0 7F01C5B0 02002025 */ move $a0, $s0 +/* 0510E4 7F01C5B4 AC600004 */ sw $zero, 4($v1) +/* 0510E8 7F01C5B8 3C0FB300 */ lui $t7, 0xb300 +/* 0510EC 7F01C5BC AC8F0000 */ sw $t7, ($a0) +/* 0510F0 7F01C5C0 AFA40028 */ sw $a0, 0x28($sp) +/* 0510F4 7F01C5C4 0C001107 */ jal get_video2_settings_txtClipW +/* 0510F8 7F01C5C8 26100008 */ addiu $s0, $s0, 8 +/* 0510FC 7F01C5CC 0C00110B */ jal get_video2_settings_txtClipH +/* 051100 7F01C5D0 A7A20026 */ sh $v0, 0x26($sp) +/* 051104 7F01C5D4 3C180001 */ lui $t8, (0x00014000 >> 16) # lui $t8, 1 +/* 051108 7F01C5D8 37184000 */ ori $t8, (0x00014000 & 0xFFFF) # ori $t8, $t8, 0x4000 +/* 05110C 7F01C5DC 0302001A */ div $zero, $t8, $v0 +/* 051110 7F01C5E0 00004012 */ mflo $t0 +/* 051114 7F01C5E4 87AA0026 */ lh $t2, 0x26($sp) +/* 051118 7F01C5E8 3C0B0001 */ lui $t3, (0x00018000 >> 16) # lui $t3, 1 +/* 05111C 7F01C5EC 356B8000 */ ori $t3, (0x00018000 & 0xFFFF) # ori $t3, $t3, 0x8000 +/* 051120 7F01C5F0 016A001A */ div $zero, $t3, $t2 +/* 051124 7F01C5F4 14400002 */ bnez $v0, .L7F01C600 +/* 051128 7F01C5F8 00000000 */ nop +/* 05112C 7F01C5FC 0007000D */ break 7 +.L7F01C600: +/* 051130 7F01C600 2401FFFF */ li $at, -1 +/* 051134 7F01C604 14410004 */ bne $v0, $at, .L7F01C618 +/* 051138 7F01C608 3C018000 */ lui $at, 0x8000 +/* 05113C 7F01C60C 17010002 */ bne $t8, $at, .L7F01C618 +/* 051140 7F01C610 00000000 */ nop +/* 051144 7F01C614 0006000D */ break 6 +.L7F01C618: +/* 051148 7F01C618 0000C812 */ mflo $t9 +/* 05114C 7F01C61C 8FAF0028 */ lw $t7, 0x28($sp) +/* 051150 7F01C620 332CFFFF */ andi $t4, $t9, 0xffff +/* 051154 7F01C624 000C6C00 */ sll $t5, $t4, 0x10 +/* 051158 7F01C628 3109FFFF */ andi $t1, $t0, 0xffff +/* 05115C 7F01C62C 012D7025 */ or $t6, $t1, $t5 +/* 051160 7F01C630 ADEE0004 */ sw $t6, 4($t7) +/* 051164 7F01C634 8FBF001C */ lw $ra, 0x1c($sp) +/* 051168 7F01C638 02001025 */ move $v0, $s0 +/* 05116C 7F01C63C 8FB00018 */ lw $s0, 0x18($sp) +/* 051170 7F01C640 15400002 */ bnez $t2, .L7F01C64C +/* 051174 7F01C644 00000000 */ nop +/* 051178 7F01C648 0007000D */ break 7 +.L7F01C64C: +/* 05117C 7F01C64C 2401FFFF */ li $at, -1 +/* 051180 7F01C650 15410004 */ bne $t2, $at, .L7F01C664 +/* 051184 7F01C654 3C018000 */ lui $at, 0x8000 +/* 051188 7F01C658 15610002 */ bne $t3, $at, .L7F01C664 +/* 05118C 7F01C65C 00000000 */ nop +/* 051190 7F01C660 0006000D */ break 6 +.L7F01C664: +/* 051194 7F01C664 27BD0070 */ addiu $sp, $sp, 0x70 +/* 051198 7F01C668 03E00008 */ jr $ra +/* 05119C 7F01C66C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C670(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C670 +/* 0511A0 7F01C670 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0511A4 7F01C674 AFB00014 */ sw $s0, 0x14($sp) +/* 0511A8 7F01C678 AFBF001C */ sw $ra, 0x1c($sp) +/* 0511AC 7F01C67C AFB10018 */ sw $s1, 0x18($sp) +/* 0511B0 7F01C680 24900008 */ addiu $s0, $a0, 8 +/* 0511B4 7F01C684 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() +/* 0511B8 7F01C688 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 0511BC 7F01C68C 02001825 */ move $v1, $s0 +/* 0511C0 7F01C690 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 0511C4 7F01C694 AC8E0000 */ sw $t6, ($a0) +/* 0511C8 7F01C698 AC800004 */ sw $zero, 4($a0) +/* 0511CC 7F01C69C 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 #G_SETOTHERMODE_H() +/* 0511D0 7F01C6A0 26100008 */ addiu $s0, $s0, 8 +/* 0511D4 7F01C6A4 AC6F0000 */ sw $t7, ($v1) +/* 0511D8 7F01C6A8 24182000 */ li $t8, 8192 +/* 0511DC 7F01C6AC 02002825 */ move $a1, $s0 +/* 0511E0 7F01C6B0 AC780004 */ sw $t8, 4($v1) +/* 0511E4 7F01C6B4 26100008 */ addiu $s0, $s0, 8 +/* 0511E8 7F01C6B8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 #gDPSetCycleType(2Cycle) +/* 0511EC 7F01C6BC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0511F0 7F01C6C0 02003025 */ move $a2, $s0 +/* 0511F4 7F01C6C4 ACB90000 */ sw $t9, ($a1) +/* 0511F8 7F01C6C8 ACA00004 */ sw $zero, 4($a1) +/* 0511FC 7F01C6CC 26100008 */ addiu $s0, $s0, 8 +/* 051200 7F01C6D0 3C08B700 */ lui $t0, 0xb700 +/* 051204 7F01C6D4 24090204 */ li $t1, 516 +/* 051208 7F01C6D8 ACC90004 */ sw $t1, 4($a2) +/* 05120C 7F01C6DC ACC80000 */ sw $t0, ($a2) +/* 051210 7F01C6E0 02003825 */ move $a3, $s0 +/* 051214 7F01C6E4 26100008 */ addiu $s0, $s0, 8 +/* 051218 7F01C6E8 3C0ABB00 */ lui $t2, (0xBB000001 >> 16) # lui $t2, 0xbb00 +/* 05121C 7F01C6EC 3C0B8000 */ lui $t3, (0x80008000 >> 16) # lui $t3, 0x8000 +/* 051220 7F01C6F0 356B8000 */ ori $t3, (0x80008000 & 0xFFFF) # ori $t3, $t3, 0x8000 +/* 051224 7F01C6F4 354A0001 */ ori $t2, (0xBB000001 & 0xFFFF) # ori $t2, $t2, 1 +/* 051228 7F01C6F8 02001025 */ move $v0, $s0 +/* 05122C 7F01C6FC ACEA0000 */ sw $t2, ($a3) +/* 051230 7F01C700 ACEB0004 */ sw $t3, 4($a3) +/* 051234 7F01C704 26100008 */ addiu $s0, $s0, 8 +/* 051238 7F01C708 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 #gDPSetRenderMode() +/* 05123C 7F01C70C 3C0D0050 */ lui $t5, (0x00504340 >> 16) # lui $t5, 0x50 +/* 051240 7F01C710 35AD4340 */ ori $t5, (0x00504340 & 0xFFFF) # ori $t5, $t5, 0x4340 +/* 051244 7F01C714 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 051248 7F01C718 02001825 */ move $v1, $s0 +/* 05124C 7F01C71C AC4C0000 */ sw $t4, ($v0) +/* 051250 7F01C720 AC4D0004 */ sw $t5, 4($v0) +/* 051254 7F01C724 3C0FFF2F */ lui $t7, (0xFF2FFFFF >> 16) # lui $t7, 0xff2f +/* 051258 7F01C728 3C0EFC11 */ lui $t6, (0xFC119623 >> 16) # lui $t6, 0xfc11 #Setcombine() +/* 05125C 7F01C72C 35CE9623 */ ori $t6, (0xFC119623 & 0xFFFF) # ori $t6, $t6, 0x9623 +/* 051260 7F01C730 35EFFFFF */ ori $t7, (0xFF2FFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 051264 7F01C734 26100008 */ addiu $s0, $s0, 8 +/* 051268 7F01C738 AC6F0004 */ sw $t7, 4($v1) +/* 05126C 7F01C73C AC6E0000 */ sw $t6, ($v1) +/* 051270 7F01C740 02002025 */ move $a0, $s0 +/* 051274 7F01C744 26100008 */ addiu $s0, $s0, 8 +/* 051278 7F01C748 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 #G_SETOTHERMODE_H(envmapping) +/* 05127C 7F01C74C 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 051280 7F01C750 02002825 */ move $a1, $s0 +/* 051284 7F01C754 AC980000 */ sw $t8, ($a0) +/* 051288 7F01C758 AC800004 */ sw $zero, 4($a0) +/* 05128C 7F01C75C 26100008 */ addiu $s0, $s0, 8 +/* 051290 7F01C760 3C089600 */ lui $t0, (0x960000B4 >> 16) # lui $t0, 0x9600 +/* 051294 7F01C764 350800B4 */ ori $t0, (0x960000B4 & 0xFFFF) # ori $t0, $t0, 0xb4 +/* 051298 7F01C768 3C19FA00 */ lui $t9, 0xfa00 +/* 05129C 7F01C76C 02003025 */ move $a2, $s0 +/* 0512A0 7F01C770 ACB90000 */ sw $t9, ($a1) +/* 0512A4 7F01C774 ACA80004 */ sw $t0, 4($a1) +/* 0512A8 7F01C778 3C09BA00 */ lui $t1, (0xBA001301 >> 16) # lui $t1, 0xba00 #G_SETOTHERMODE_H() +/* 0512AC 7F01C77C 35291301 */ ori $t1, (0xBA001301 & 0xFFFF) # ori $t1, $t1, 0x1301 +/* 0512B0 7F01C780 26100008 */ addiu $s0, $s0, 8 +/* 0512B4 7F01C784 ACC90000 */ sw $t1, ($a2) +/* 0512B8 7F01C788 ACC00004 */ sw $zero, 4($a2) +/* 0512BC 7F01C78C 02001025 */ move $v0, $s0 +/* 0512C0 7F01C790 3C0AFD90 */ lui $t2, 0xfd90 +/* 0512C4 7F01C794 AC4A0000 */ sw $t2, ($v0) +/* 0512C8 7F01C798 3C038008 */ lui $v1, %hi(pPlayer) +/* 0512CC 7F01C79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0512D0 7F01C7A0 3C018000 */ lui $at, 0x8000 +/* 0512D4 7F01C7A4 26100008 */ addiu $s0, $s0, 8 +/* 0512D8 7F01C7A8 8C6B11B8 */ lw $t3, 0x11b8($v1) +/* 0512DC 7F01C7AC 02002025 */ move $a0, $s0 +/* 0512E0 7F01C7B0 26100008 */ addiu $s0, $s0, 8 +/* 0512E4 7F01C7B4 000B6080 */ sll $t4, $t3, 2 +/* 0512E8 7F01C7B8 006C6821 */ addu $t5, $v1, $t4 +/* 0512EC 7F01C7BC 8DAE11B0 */ lw $t6, 0x11b0($t5) +/* 0512F0 7F01C7C0 3C190708 */ lui $t9, (0x07080200 >> 16) # lui $t9, 0x708 +/* 0512F4 7F01C7C4 37390200 */ ori $t9, (0x07080200 & 0xFFFF) # ori $t9, $t9, 0x200 +/* 0512F8 7F01C7C8 01C17821 */ addu $t7, $t6, $at +/* 0512FC 7F01C7CC AC4F0004 */ sw $t7, 4($v0) +/* 051300 7F01C7D0 02002825 */ move $a1, $s0 +/* 051304 7F01C7D4 3C18F590 */ lui $t8, 0xf590 +/* 051308 7F01C7D8 AC980000 */ sw $t8, ($a0) +/* 05130C 7F01C7DC 26100008 */ addiu $s0, $s0, 8 +/* 051310 7F01C7E0 AC990004 */ sw $t9, 4($a0) +/* 051314 7F01C7E4 02003025 */ move $a2, $s0 +/* 051318 7F01C7E8 3C08E600 */ lui $t0, 0xe600 +/* 05131C 7F01C7EC ACA80000 */ sw $t0, ($a1) +/* 051320 7F01C7F0 26100008 */ addiu $s0, $s0, 8 +/* 051324 7F01C7F4 ACA00004 */ sw $zero, 4($a1) +/* 051328 7F01C7F8 3C0A0777 */ lui $t2, (0x0777F156 >> 16) # lui $t2, 0x777 +/* 05132C 7F01C7FC 354AF156 */ ori $t2, (0x0777F156 & 0xFFFF) # ori $t2, $t2, 0xf156 +/* 051330 7F01C800 02003825 */ move $a3, $s0 +/* 051334 7F01C804 3C09F300 */ lui $t1, 0xf300 +/* 051338 7F01C808 ACC90000 */ sw $t1, ($a2) +/* 05133C 7F01C80C 26100008 */ addiu $s0, $s0, 8 +/* 051340 7F01C810 ACCA0004 */ sw $t2, 4($a2) +/* 051344 7F01C814 02001025 */ move $v0, $s0 +/* 051348 7F01C818 3C0BE700 */ lui $t3, 0xe700 +/* 05134C 7F01C81C ACEB0000 */ sw $t3, ($a3) +/* 051350 7F01C820 26100008 */ addiu $s0, $s0, 8 +/* 051354 7F01C824 ACE00004 */ sw $zero, 4($a3) +/* 051358 7F01C828 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8 +/* 05135C 7F01C82C 3C0CF580 */ lui $t4, (0xF5800C00 >> 16) # lui $t4, 0xf580 #settilesize() +/* 051360 7F01C830 358C0C00 */ ori $t4, (0xF5800C00 & 0xFFFF) # ori $t4, $t4, 0xc00 +/* 051364 7F01C834 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200 +/* 051368 7F01C838 02001825 */ move $v1, $s0 +/* 05136C 7F01C83C AC4D0004 */ sw $t5, 4($v0) +/* 051370 7F01C840 AC4C0000 */ sw $t4, ($v0) +/* 051374 7F01C844 3C0F0017 */ lui $t7, (0x0017C13C >> 16) # lui $t7, 0x17 +/* 051378 7F01C848 35EFC13C */ ori $t7, (0x0017C13C & 0xFFFF) # ori $t7, $t7, 0xc13c +/* 05137C 7F01C84C 3C0EF200 */ lui $t6, 0xf200 +/* 051380 7F01C850 AC6E0000 */ sw $t6, ($v1) +/* 051384 7F01C854 AC6F0004 */ sw $t7, 4($v1) +/* 051388 7F01C858 26100008 */ addiu $s0, $s0, 8 +/* 05138C 7F01C85C AFB00040 */ sw $s0, 0x40($sp) +/* 051390 7F01C860 0C001127 */ jal get_video2_settings_width +/* 051394 7F01C864 26100008 */ addiu $s0, $s0, 8 +/* 051398 7F01C868 0C001145 */ jal get_video2_settings_ulx +/* 05139C 7F01C86C A7A20026 */ sh $v0, 0x26($sp) +/* 0513A0 7F01C870 0C001149 */ jal get_video2_settings_uly +/* 0513A4 7F01C874 A7A20028 */ sh $v0, 0x28($sp) +/* 0513A8 7F01C878 00028C00 */ sll $s1, $v0, 0x10 +/* 0513AC 7F01C87C 0011C403 */ sra $t8, $s1, 0x10 +/* 0513B0 7F01C880 0C00112B */ jal get_video2_settings_height +/* 0513B4 7F01C884 03008825 */ move $s1, $t8 +/* 0513B8 7F01C888 87B90028 */ lh $t9, 0x28($sp) +/* 0513BC 7F01C88C 87A80026 */ lh $t0, 0x26($sp) +/* 0513C0 7F01C890 00517021 */ addu $t6, $v0, $s1 +/* 0513C4 7F01C894 000E7880 */ sll $t7, $t6, 2 +/* 0513C8 7F01C898 03284821 */ addu $t1, $t9, $t0 +/* 0513CC 7F01C89C 00095080 */ sll $t2, $t1, 2 +/* 0513D0 7F01C8A0 254BFFFF */ addiu $t3, $t2, -1 +/* 0513D4 7F01C8A4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0513D8 7F01C8A8 33190FFF */ andi $t9, $t8, 0xfff +/* 0513DC 7F01C8AC 316C0FFF */ andi $t4, $t3, 0xfff +/* 0513E0 7F01C8B0 3C01E400 */ lui $at, 0xe400 +/* 0513E4 7F01C8B4 8FAA0040 */ lw $t2, 0x40($sp) +/* 0513E8 7F01C8B8 03214025 */ or $t0, $t9, $at +/* 0513EC 7F01C8BC 000C6B00 */ sll $t5, $t4, 0xc +/* 0513F0 7F01C8C0 010D4825 */ or $t1, $t0, $t5 +/* 0513F4 7F01C8C4 0C001145 */ jal get_video2_settings_ulx +/* 0513F8 7F01C8C8 AD490000 */ sw $t1, ($t2) +/* 0513FC 7F01C8CC 00028C00 */ sll $s1, $v0, 0x10 +/* 051400 7F01C8D0 00115C03 */ sra $t3, $s1, 0x10 +/* 051404 7F01C8D4 0C001149 */ jal get_video2_settings_uly +/* 051408 7F01C8D8 01608825 */ move $s1, $t3 +/* 05140C 7F01C8DC 00117880 */ sll $t7, $s1, 2 +/* 051410 7F01C8E0 8FAD0040 */ lw $t5, 0x40($sp) +/* 051414 7F01C8E4 31F80FFF */ andi $t8, $t7, 0xfff +/* 051418 7F01C8E8 00026080 */ sll $t4, $v0, 2 +/* 05141C 7F01C8EC 318E0FFF */ andi $t6, $t4, 0xfff +/* 051420 7F01C8F0 0018CB00 */ sll $t9, $t8, 0xc +/* 051424 7F01C8F4 01D94025 */ or $t0, $t6, $t9 +/* 051428 7F01C8F8 02001825 */ move $v1, $s0 +/* 05142C 7F01C8FC ADA80004 */ sw $t0, 4($t5) +/* 051430 7F01C900 26100008 */ addiu $s0, $s0, 8 +/* 051434 7F01C904 3C09B400 */ lui $t1, 0xb400 +/* 051438 7F01C908 AC690000 */ sw $t1, ($v1) +/* 05143C 7F01C90C 02002025 */ move $a0, $s0 +/* 051440 7F01C910 AC600004 */ sw $zero, 4($v1) +/* 051444 7F01C914 3C0AB300 */ lui $t2, 0xb300 +/* 051448 7F01C918 AC8A0000 */ sw $t2, ($a0) +/* 05144C 7F01C91C AFA40038 */ sw $a0, 0x38($sp) +/* 051450 7F01C920 0C001127 */ jal get_video2_settings_width +/* 051454 7F01C924 26100008 */ addiu $s0, $s0, 8 +/* 051458 7F01C928 00028C00 */ sll $s1, $v0, 0x10 +/* 05145C 7F01C92C 00115C03 */ sra $t3, $s1, 0x10 +/* 051460 7F01C930 0C00112B */ jal get_video2_settings_height +/* 051464 7F01C934 01608825 */ move $s1, $t3 +/* 051468 7F01C938 3C0C0001 */ lui $t4, (0x00014000 >> 16) # lui $t4, 1 +/* 05146C 7F01C93C 358C4000 */ ori $t4, (0x00014000 & 0xFFFF) # ori $t4, $t4, 0x4000 +/* 051470 7F01C940 0182001A */ div $zero, $t4, $v0 +/* 051474 7F01C944 00007812 */ mflo $t7 +/* 051478 7F01C948 3C0E0001 */ lui $t6, (0x00018000 >> 16) # lui $t6, 1 +/* 05147C 7F01C94C 35CE8000 */ ori $t6, (0x00018000 & 0xFFFF) # ori $t6, $t6, 0x8000 +/* 051480 7F01C950 01D1001A */ div $zero, $t6, $s1 +/* 051484 7F01C954 14400002 */ bnez $v0, .L7F01C960 +/* 051488 7F01C958 00000000 */ nop +/* 05148C 7F01C95C 0007000D */ break 7 +.L7F01C960: +/* 051490 7F01C960 2401FFFF */ li $at, -1 +/* 051494 7F01C964 14410004 */ bne $v0, $at, .L7F01C978 +/* 051498 7F01C968 3C018000 */ lui $at, 0x8000 +/* 05149C 7F01C96C 15810002 */ bne $t4, $at, .L7F01C978 +/* 0514A0 7F01C970 00000000 */ nop +/* 0514A4 7F01C974 0006000D */ break 6 +.L7F01C978: +/* 0514A8 7F01C978 0000C812 */ mflo $t9 +/* 0514AC 7F01C97C 8FAA0038 */ lw $t2, 0x38($sp) +/* 0514B0 7F01C980 3328FFFF */ andi $t0, $t9, 0xffff +/* 0514B4 7F01C984 00086C00 */ sll $t5, $t0, 0x10 +/* 0514B8 7F01C988 31F8FFFF */ andi $t8, $t7, 0xffff +/* 0514BC 7F01C98C 030D4825 */ or $t1, $t8, $t5 +/* 0514C0 7F01C990 02001825 */ move $v1, $s0 +/* 0514C4 7F01C994 26100008 */ addiu $s0, $s0, 8 +/* 0514C8 7F01C998 AD490004 */ sw $t1, 4($t2) +/* 0514CC 7F01C99C 3C0BE700 */ lui $t3, 0xe700 +/* 0514D0 7F01C9A0 02002025 */ move $a0, $s0 +/* 0514D4 7F01C9A4 AC6B0000 */ sw $t3, ($v1) +/* 0514D8 7F01C9A8 AC600004 */ sw $zero, 4($v1) +/* 0514DC 7F01C9AC 3C0CBA00 */ lui $t4, (0xBA000602 >> 16) # lui $t4, 0xba00 #G_SETOTHERMODE_H() +/* 0514E0 7F01C9B0 16200002 */ bnez $s1, .L7F01C9BC +/* 0514E4 7F01C9B4 00000000 */ nop +/* 0514E8 7F01C9B8 0007000D */ break 7 +.L7F01C9BC: +/* 0514EC 7F01C9BC 2401FFFF */ li $at, -1 +/* 0514F0 7F01C9C0 16210004 */ bne $s1, $at, .L7F01C9D4 +/* 0514F4 7F01C9C4 3C018000 */ lui $at, 0x8000 +/* 0514F8 7F01C9C8 15C10002 */ bne $t6, $at, .L7F01C9D4 +/* 0514FC 7F01C9CC 00000000 */ nop +/* 051500 7F01C9D0 0006000D */ break 6 +.L7F01C9D4: +/* 051504 7F01C9D4 358C0602 */ ori $t4, (0xBA000602 & 0xFFFF) # ori $t4, $t4, 0x602 #G_SETOTHERMODE_H() +/* 051508 7F01C9D8 26100008 */ addiu $s0, $s0, 8 +/* 05150C 7F01C9DC 240F0040 */ li $t7, 64 +/* 051510 7F01C9E0 AC8F0004 */ sw $t7, 4($a0) +/* 051514 7F01C9E4 AC8C0000 */ sw $t4, ($a0) +/* 051518 7F01C9E8 02002825 */ move $a1, $s0 +/* 05151C 7F01C9EC 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() +/* 051520 7F01C9F0 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 051524 7F01C9F4 3C190008 */ lui $t9, 8 +/* 051528 7F01C9F8 ACB90004 */ sw $t9, 4($a1) +/* 05152C 7F01C9FC ACAE0000 */ sw $t6, ($a1) +/* 051530 7F01CA00 8FBF001C */ lw $ra, 0x1c($sp) +/* 051534 7F01CA04 26020008 */ addiu $v0, $s0, 8 +/* 051538 7F01CA08 8FB00014 */ lw $s0, 0x14($sp) +/* 05153C 7F01CA0C 8FB10018 */ lw $s1, 0x18($sp) +/* 051540 7F01CA10 03E00008 */ jr $ra +/* 051544 7F01CA14 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CA18(Gfx *glistp) //BloodRed_Dl_Setup +{ + sub_GAME_7F01C1A4(); + //1 cycle settings + gDPSetRenderMode(glistp++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(glistp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(glistp++, 0, 0, 150, 00, 00, 180); //dark red + gDPSetColorDither(glistp++, G_CD_MAGICSQ); + + get_video2_settings_txtClipW(); + //... +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CA18 +/* 051548 7F01CA18 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05154C 7F01CA1C AFBF0014 */ sw $ra, 0x14($sp) +/* 051550 7F01CA20 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 051554 7F01CA24 00000000 */ nop +/* 051558 7F01CA28 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 05155C 7F01CA2C 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 +/* 051560 7F01CA30 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 051564 7F01CA34 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 051568 7F01CA38 3C099600 */ lui $t1, (0x960000B4 >> 16) # lui $t1, 0x9600 +/* 05156C 7F01CA3C 3C0ABA00 */ lui $t2, (0xBA000602 >> 16) # lui $t2, 0xba00 +/* 051570 7F01CA40 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 +/* 051574 7F01CA44 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 051578 7F01CA48 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 05157C 7F01CA4C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 051580 7F01CA50 352900B4 */ ori $t1, (0x960000B4 & 0xFFFF) # ori $t1, $t1, 0xb4 +/* 051584 7F01CA54 3C08FA00 */ lui $t0, 0xfa00 +/* 051588 7F01CA58 354A0602 */ ori $t2, (0xBA000602 & 0xFFFF) # ori $t2, $t2, 0x602 +/* 05158C 7F01CA5C AC4E0000 */ sw $t6, ($v0) #$v0 = gfx glist +/* 051590 7F01CA60 AC4F0004 */ sw $t7, 4($v0) +/* 051594 7F01CA64 AC580008 */ sw $t8, 8($v0) +/* 051598 7F01CA68 AC59000C */ sw $t9, 0xc($v0) +/* 05159C 7F01CA6C AC480010 */ sw $t0, 0x10($v0) +/* 0515A0 7F01CA70 AC490014 */ sw $t1, 0x14($v0) +/* 0515A4 7F01CA74 AC4A0018 */ sw $t2, 0x18($v0) +/* 0515A8 7F01CA78 AC40001C */ sw $zero, 0x1c($v0) +/* 0515AC 7F01CA7C 244B0020 */ addiu $t3, $v0, 0x20 +/* 0515B0 7F01CA80 244C0028 */ addiu $t4, $v0, 0x28 +/* 0515B4 7F01CA84 AFAC0030 */ sw $t4, 0x30($sp) +/* 0515B8 7F01CA88 0C001107 */ jal get_video2_settings_txtClipW +/* 0515BC 7F01CA8C AFAB001C */ sw $t3, 0x1c($sp) +/* 0515C0 7F01CA90 0C00110B */ jal get_video2_settings_txtClipH +/* 0515C4 7F01CA94 A7A2001A */ sh $v0, 0x1a($sp) +/* 0515C8 7F01CA98 87B8001A */ lh $t8, 0x1a($sp) +/* 0515CC 7F01CA9C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0515D0 7F01CAA0 304D03FF */ andi $t5, $v0, 0x3ff +/* 0515D4 7F01CAA4 000D7080 */ sll $t6, $t5, 2 +/* 0515D8 7F01CAA8 3C01F600 */ lui $at, 0xf600 +/* 0515DC 7F01CAAC 331903FF */ andi $t9, $t8, 0x3ff +/* 0515E0 7F01CAB0 00194380 */ sll $t0, $t9, 0xe +/* 0515E4 7F01CAB4 01C17825 */ or $t7, $t6, $at +/* 0515E8 7F01CAB8 01E84825 */ or $t1, $t7, $t0 +/* 0515EC 7F01CABC AC690000 */ sw $t1, ($v1) +/* 0515F0 7F01CAC0 AC600004 */ sw $zero, 4($v1) +/* 0515F4 7F01CAC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0515F8 7F01CAC8 8FA20030 */ lw $v0, 0x30($sp) +/* 0515FC 7F01CACC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 051600 7F01CAD0 03E00008 */ jr $ra +/* 051604 7F01CAD4 00000000 */ nop +) +#endif + + + + + + + + diff --git a/src/game/blood_decrypt.c b/src/game/blood_decrypt.c new file mode 100644 index 0000000..51dc0f6 --- /dev/null +++ b/src/game/blood_decrypt.c @@ -0,0 +1,653 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void decrypt_bleeding_animation_data(void) { + +} +#else +GLOBAL_ASM( +.text +glabel decrypt_bleeding_animation_data +/* 051610 7F01CAE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 051614 7F01CAE4 AFB30014 */ sw $s3, 0x14($sp) +/* 051618 7F01CAE8 AFB20010 */ sw $s2, 0x10($sp) +/* 05161C 7F01CAEC AFB1000C */ sw $s1, 0xc($sp) +/* 051620 7F01CAF0 AFB00008 */ sw $s0, 8($sp) +/* 051624 7F01CAF4 AFA5001C */ sw $a1, 0x1c($sp) +/* 051628 7F01CAF8 AFA60020 */ sw $a2, 0x20($sp) +/* 05162C 7F01CAFC 90820000 */ lbu $v0, ($a0) +/* 051630 7F01CB00 8FAF0028 */ lw $t7, 0x28($sp) +/* 051634 7F01CB04 00E08025 */ move $s0, $a3 +/* 051638 7F01CB08 30D100FF */ andi $s1, $a2, 0xff +/* 05163C 7F01CB0C 30A900FF */ andi $t1, $a1, 0xff +/* 051640 7F01CB10 24840001 */ addiu $a0, $a0, 1 +/* 051644 7F01CB14 241200FF */ li $s2, 255 +/* 051648 7F01CB18 241300FF */ li $s3, 255 +/* 05164C 7F01CB1C A1E20000 */ sb $v0, ($t7) +/* 051650 7F01CB20 90850000 */ lbu $a1, ($a0) +.L7F01CB24: +/* 051654 7F01CB24 24840001 */ addiu $a0, $a0, 1 +/* 051658 7F01CB28 326600FF */ andi $a2, $s3, 0xff +/* 05165C 7F01CB2C 1645002B */ bne $s2, $a1, .L7F01CBDC +/* 051660 7F01CB30 30B8001F */ andi $t8, $a1, 0x1f +/* 051664 7F01CB34 90830000 */ lbu $v1, ($a0) +/* 051668 7F01CB38 00003825 */ move $a3, $zero +/* 05166C 7F01CB3C 24840001 */ addiu $a0, $a0, 1 +/* 051670 7F01CB40 12430016 */ beq $s2, $v1, .L7F01CB9C +/* 051674 7F01CB44 00602825 */ move $a1, $v1 +.L7F01CB48: +/* 051678 7F01CB48 00E53821 */ addu $a3, $a3, $a1 +/* 05167C 7F01CB4C 2463FFFF */ addiu $v1, $v1, -1 +/* 051680 7F01CB50 30F800FF */ andi $t8, $a3, 0xff +/* 051684 7F01CB54 307900FF */ andi $t9, $v1, 0xff +/* 051688 7F01CB58 0005402A */ slt $t0, $zero, $a1 +/* 05168C 7F01CB5C 03003825 */ move $a3, $t8 +/* 051690 7F01CB60 11000008 */ beqz $t0, .L7F01CB84 +/* 051694 7F01CB64 03201825 */ move $v1, $t9 +.L7F01CB68: +/* 051698 7F01CB68 0003402A */ slt $t0, $zero, $v1 +/* 05169C 7F01CB6C 2463FFFF */ addiu $v1, $v1, -1 +/* 0516A0 7F01CB70 306E00FF */ andi $t6, $v1, 0xff +/* 0516A4 7F01CB74 01C01825 */ move $v1, $t6 +/* 0516A8 7F01CB78 A2060000 */ sb $a2, ($s0) +/* 0516AC 7F01CB7C 1500FFFA */ bnez $t0, .L7F01CB68 +/* 0516B0 7F01CB80 26100001 */ addiu $s0, $s0, 1 +.L7F01CB84: +/* 0516B4 7F01CB84 90830000 */ lbu $v1, ($a0) +/* 0516B8 7F01CB88 38CF00FF */ xori $t7, $a2, 0xff +/* 0516BC 7F01CB8C 31E600FF */ andi $a2, $t7, 0xff +/* 0516C0 7F01CB90 24840001 */ addiu $a0, $a0, 1 +/* 0516C4 7F01CB94 1643FFEC */ bne $s2, $v1, .L7F01CB48 +/* 0516C8 7F01CB98 00602825 */ move $a1, $v1 +.L7F01CB9C: +/* 0516CC 7F01CB9C 00E9402A */ slt $t0, $a3, $t1 +/* 0516D0 7F01CBA0 24E70001 */ addiu $a3, $a3, 1 +/* 0516D4 7F01CBA4 30F900FF */ andi $t9, $a3, 0xff +/* 0516D8 7F01CBA8 11000008 */ beqz $t0, .L7F01CBCC +/* 0516DC 7F01CBAC 03203825 */ move $a3, $t9 +.L7F01CBB0: +/* 0516E0 7F01CBB0 00E9402A */ slt $t0, $a3, $t1 +/* 0516E4 7F01CBB4 24E70001 */ addiu $a3, $a3, 1 +/* 0516E8 7F01CBB8 30EE00FF */ andi $t6, $a3, 0xff +/* 0516EC 7F01CBBC 01C03825 */ move $a3, $t6 +/* 0516F0 7F01CBC0 A2060000 */ sb $a2, ($s0) +/* 0516F4 7F01CBC4 1500FFFA */ bnez $t0, .L7F01CBB0 +/* 0516F8 7F01CBC8 26100001 */ addiu $s0, $s0, 1 +.L7F01CBCC: +/* 0516FC 7F01CBCC 2631FFFF */ addiu $s1, $s1, -1 +/* 051700 7F01CBD0 322F00FF */ andi $t7, $s1, 0xff +/* 051704 7F01CBD4 10000026 */ b .L7F01CC70 +/* 051708 7F01CBD8 01E08825 */ move $s1, $t7 +.L7F01CBDC: +/* 05170C 7F01CBDC 00583821 */ addu $a3, $v0, $t8 +/* 051710 7F01CBE0 00051943 */ sra $v1, $a1, 5 +/* 051714 7F01CBE4 30F900FF */ andi $t9, $a3, 0xff +/* 051718 7F01CBE8 24630001 */ addiu $v1, $v1, 1 +/* 05171C 7F01CBEC 306E00FF */ andi $t6, $v1, 0xff +/* 051720 7F01CBF0 01393023 */ subu $a2, $t1, $t9 +/* 051724 7F01CBF4 022E8823 */ subu $s1, $s1, $t6 +/* 051728 7F01CBF8 30D800FF */ andi $t8, $a2, 0xff +/* 05172C 7F01CBFC 322F00FF */ andi $t7, $s1, 0xff +/* 051730 7F01CC00 01C01825 */ move $v1, $t6 +/* 051734 7F01CC04 01E08825 */ move $s1, $t7 +/* 051738 7F01CC08 0018602A */ slt $t4, $zero, $t8 +/* 05173C 7F01CC0C 270DFFFF */ addiu $t5, $t8, -1 +/* 051740 7F01CC10 0019502A */ slt $t2, $zero, $t9 +/* 051744 7F01CC14 272BFFFF */ addiu $t3, $t9, -1 +.L7F01CC18: +/* 051748 7F01CC18 11400008 */ beqz $t2, .L7F01CC3C +/* 05174C 7F01CC1C 316600FF */ andi $a2, $t3, 0xff +.L7F01CC20: +/* 051750 7F01CC20 0006402A */ slt $t0, $zero, $a2 +/* 051754 7F01CC24 24C6FFFF */ addiu $a2, $a2, -1 +/* 051758 7F01CC28 30D900FF */ andi $t9, $a2, 0xff +/* 05175C 7F01CC2C 03203025 */ move $a2, $t9 +/* 051760 7F01CC30 A2130000 */ sb $s3, ($s0) +/* 051764 7F01CC34 1500FFFA */ bnez $t0, .L7F01CC20 +/* 051768 7F01CC38 26100001 */ addiu $s0, $s0, 1 +.L7F01CC3C: +/* 05176C 7F01CC3C 11800008 */ beqz $t4, .L7F01CC60 +/* 051770 7F01CC40 31A600FF */ andi $a2, $t5, 0xff +.L7F01CC44: +/* 051774 7F01CC44 0006402A */ slt $t0, $zero, $a2 +/* 051778 7F01CC48 24C6FFFF */ addiu $a2, $a2, -1 +/* 05177C 7F01CC4C 30CE00FF */ andi $t6, $a2, 0xff +/* 051780 7F01CC50 01C03025 */ move $a2, $t6 +/* 051784 7F01CC54 A2000000 */ sb $zero, ($s0) +/* 051788 7F01CC58 1500FFFA */ bnez $t0, .L7F01CC44 +/* 05178C 7F01CC5C 26100001 */ addiu $s0, $s0, 1 +.L7F01CC60: +/* 051790 7F01CC60 2463FFFF */ addiu $v1, $v1, -1 +/* 051794 7F01CC64 306F00FF */ andi $t7, $v1, 0xff +/* 051798 7F01CC68 1DE0FFEB */ bgtz $t7, .L7F01CC18 +/* 05179C 7F01CC6C 01E01825 */ move $v1, $t7 +.L7F01CC70: +/* 0517A0 7F01CC70 5E20FFAC */ bgtzl $s1, .L7F01CB24 +/* 0517A4 7F01CC74 90850000 */ lbu $a1, ($a0) +/* 0517A8 7F01CC78 8FB00008 */ lw $s0, 8($sp) +/* 0517AC 7F01CC7C 8FB1000C */ lw $s1, 0xc($sp) +/* 0517B0 7F01CC80 8FB20010 */ lw $s2, 0x10($sp) +/* 0517B4 7F01CC84 8FB30014 */ lw $s3, 0x14($sp) +/* 0517B8 7F01CC88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0517BC 7F01CC8C 03E00008 */ jr $ra +/* 0517C0 7F01CC90 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CC94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CC94 +/* 0517C4 7F01CC94 AFA50004 */ sw $a1, 4($sp) +/* 0517C8 7F01CC98 30AEFFFF */ andi $t6, $a1, 0xffff +/* 0517CC 7F01CC9C 25C5FFFF */ addiu $a1, $t6, -1 +/* 0517D0 7F01CCA0 30AFFFFF */ andi $t7, $a1, 0xffff +/* 0517D4 7F01CCA4 000E102A */ slt $v0, $zero, $t6 +/* 0517D8 7F01CCA8 1040000E */ beqz $v0, .L7F01CCE4 +/* 0517DC 7F01CCAC 01E02825 */ move $a1, $t7 +.L7F01CCB0: +/* 0517E0 7F01CCB0 90980001 */ lbu $t8, 1($a0) +/* 0517E4 7F01CCB4 90880000 */ lbu $t0, ($a0) +/* 0517E8 7F01CCB8 0005102A */ slt $v0, $zero, $a1 +/* 0517EC 7F01CCBC 24A5FFFF */ addiu $a1, $a1, -1 +/* 0517F0 7F01CCC0 0018C903 */ sra $t9, $t8, 4 +/* 0517F4 7F01CCC4 310900F0 */ andi $t1, $t0, 0xf0 +/* 0517F8 7F01CCC8 03295025 */ or $t2, $t9, $t1 +/* 0517FC 7F01CCCC 30ABFFFF */ andi $t3, $a1, 0xffff +/* 051800 7F01CCD0 A0CA0000 */ sb $t2, ($a2) +/* 051804 7F01CCD4 24C60001 */ addiu $a2, $a2, 1 +/* 051808 7F01CCD8 01602825 */ move $a1, $t3 +/* 05180C 7F01CCDC 1440FFF4 */ bnez $v0, .L7F01CCB0 +/* 051810 7F01CCE0 24840002 */ addiu $a0, $a0, 2 +.L7F01CCE4: +/* 051814 7F01CCE4 03E00008 */ jr $ra +/* 051818 7F01CCE8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CCEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CCEC +/* 05181C 7F01CCEC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 051820 7F01CCF0 30CF00FF */ andi $t7, $a2, 0xff +/* 051824 7F01CCF4 AFBE0024 */ sw $fp, 0x24($sp) +/* 051828 7F01CCF8 AFB70020 */ sw $s7, 0x20($sp) +/* 05182C 7F01CCFC AFB6001C */ sw $s6, 0x1c($sp) +/* 051830 7F01CD00 AFB50018 */ sw $s5, 0x18($sp) +/* 051834 7F01CD04 AFB40014 */ sw $s4, 0x14($sp) +/* 051838 7F01CD08 AFB30010 */ sw $s3, 0x10($sp) +/* 05183C 7F01CD0C AFB2000C */ sw $s2, 0xc($sp) +/* 051840 7F01CD10 AFB10008 */ sw $s1, 8($sp) +/* 051844 7F01CD14 AFB00004 */ sw $s0, 4($sp) +/* 051848 7F01CD18 AFA5002C */ sw $a1, 0x2c($sp) +/* 05184C 7F01CD1C AFA60030 */ sw $a2, 0x30($sp) +/* 051850 7F01CD20 30AE00FF */ andi $t6, $a1, 0xff +/* 051854 7F01CD24 01E01825 */ move $v1, $t7 +/* 051858 7F01CD28 19E00065 */ blez $t7, .L7F01CEC0 +/* 05185C 7F01CD2C 00001025 */ move $v0, $zero +/* 051860 7F01CD30 01C03025 */ move $a2, $t6 +/* 051864 7F01CD34 93AA003B */ lbu $t2, 0x3b($sp) +.L7F01CD38: +/* 051868 7F01CD38 18C0005B */ blez $a2, .L7F01CEA8 +/* 05186C 7F01CD3C 00002825 */ move $a1, $zero +/* 051870 7F01CD40 00460019 */ multu $v0, $a2 +/* 051874 7F01CD44 01405825 */ move $t3, $t2 +/* 051878 7F01CD48 004A6023 */ subu $t4, $v0, $t2 +/* 05187C 7F01CD4C 2470FFFF */ addiu $s0, $v1, -1 +/* 051880 7F01CD50 004A8821 */ addu $s1, $v0, $t2 +/* 051884 7F01CD54 0000F012 */ mflo $fp +/* 051888 7F01CD58 00000000 */ nop +/* 05188C 7F01CD5C 00000000 */ nop +/* 051890 7F01CD60 00004025 */ move $t0, $zero +.L7F01CD64: +/* 051894 7F01CD64 05810003 */ bgez $t4, .L7F01CD74 +/* 051898 7F01CD68 00004825 */ move $t1, $zero +/* 05189C 7F01CD6C 10000004 */ b .L7F01CD80 +/* 0518A0 7F01CD70 00006825 */ move $t5, $zero +.L7F01CD74: +/* 0518A4 7F01CD74 000C6C00 */ sll $t5, $t4, 0x10 +/* 0518A8 7F01CD78 000DC403 */ sra $t8, $t5, 0x10 +/* 0518AC 7F01CD7C 03006825 */ move $t5, $t8 +.L7F01CD80: +/* 0518B0 7F01CD80 0211082A */ slt $at, $s0, $s1 +/* 0518B4 7F01CD84 10200003 */ beqz $at, .L7F01CD94 +/* 0518B8 7F01CD88 02209025 */ move $s2, $s1 +/* 0518BC 7F01CD8C 10000001 */ b .L7F01CD94 +/* 0518C0 7F01CD90 02009025 */ move $s2, $s0 +.L7F01CD94: +/* 0518C4 7F01CD94 024D082A */ slt $at, $s2, $t5 +/* 0518C8 7F01CD98 54200033 */ bnezl $at, .L7F01CE68 +/* 0518CC 7F01CD9C 0008C842 */ srl $t9, $t0, 1 +/* 0518D0 7F01CDA0 00AB9823 */ subu $s3, $a1, $t3 +/* 0518D4 7F01CDA4 24D5FFFF */ addiu $s5, $a2, -1 +/* 0518D8 7F01CDA8 00ABB021 */ addu $s6, $a1, $t3 +.L7F01CDAC: +/* 0518DC 7F01CDAC 06610003 */ bgez $s3, .L7F01CDBC +/* 0518E0 7F01CDB0 02B6082A */ slt $at, $s5, $s6 +/* 0518E4 7F01CDB4 10000004 */ b .L7F01CDC8 +/* 0518E8 7F01CDB8 0000A025 */ move $s4, $zero +.L7F01CDBC: +/* 0518EC 7F01CDBC 0013A400 */ sll $s4, $s3, 0x10 +/* 0518F0 7F01CDC0 0014CC03 */ sra $t9, $s4, 0x10 +/* 0518F4 7F01CDC4 0320A025 */ move $s4, $t9 +.L7F01CDC8: +/* 0518F8 7F01CDC8 10200003 */ beqz $at, .L7F01CDD8 +/* 0518FC 7F01CDCC 02C09025 */ move $s2, $s6 +/* 051900 7F01CDD0 10000001 */ b .L7F01CDD8 +/* 051904 7F01CDD4 02A09025 */ move $s2, $s5 +.L7F01CDD8: +/* 051908 7F01CDD8 0254082A */ slt $at, $s2, $s4 +/* 05190C 7F01CDDC 54200016 */ bnezl $at, .L7F01CE38 +/* 051910 7F01CDE0 25AD0001 */ addiu $t5, $t5, 1 +/* 051914 7F01CDE4 01A60019 */ multu $t5, $a2 +/* 051918 7F01CDE8 0000B812 */ mflo $s7 +/* 05191C 7F01CDEC 00000000 */ nop +/* 051920 7F01CDF0 00000000 */ nop +/* 051924 7F01CDF4 00947021 */ addu $t6, $a0, $s4 +.L7F01CDF8: +/* 051928 7F01CDF8 01D77821 */ addu $t7, $t6, $s7 +/* 05192C 7F01CDFC 91F80000 */ lbu $t8, ($t7) +/* 051930 7F01CE00 26940001 */ addiu $s4, $s4, 1 +/* 051934 7F01CE04 0014CC00 */ sll $t9, $s4, 0x10 +/* 051938 7F01CE08 02B6082A */ slt $at, $s5, $s6 +/* 05193C 7F01CE0C 0019A403 */ sra $s4, $t9, 0x10 +/* 051940 7F01CE10 25080001 */ addiu $t0, $t0, 1 +/* 051944 7F01CE14 10200003 */ beqz $at, .L7F01CE24 +/* 051948 7F01CE18 01384821 */ addu $t1, $t1, $t8 +/* 05194C 7F01CE1C 10000002 */ b .L7F01CE28 +/* 051950 7F01CE20 02A09025 */ move $s2, $s5 +.L7F01CE24: +/* 051954 7F01CE24 02C09025 */ move $s2, $s6 +.L7F01CE28: +/* 051958 7F01CE28 0254082A */ slt $at, $s2, $s4 +/* 05195C 7F01CE2C 5020FFF2 */ beql $at, $zero, .L7F01CDF8 +/* 051960 7F01CE30 00947021 */ addu $t6, $a0, $s4 +/* 051964 7F01CE34 25AD0001 */ addiu $t5, $t5, 1 +.L7F01CE38: +/* 051968 7F01CE38 000D7C00 */ sll $t7, $t5, 0x10 +/* 05196C 7F01CE3C 000FC403 */ sra $t8, $t7, 0x10 +/* 051970 7F01CE40 0211082A */ slt $at, $s0, $s1 +/* 051974 7F01CE44 10200003 */ beqz $at, .L7F01CE54 +/* 051978 7F01CE48 03006825 */ move $t5, $t8 +/* 05197C 7F01CE4C 10000002 */ b .L7F01CE58 +/* 051980 7F01CE50 02009025 */ move $s2, $s0 +.L7F01CE54: +/* 051984 7F01CE54 02209025 */ move $s2, $s1 +.L7F01CE58: +/* 051988 7F01CE58 024D082A */ slt $at, $s2, $t5 +/* 05198C 7F01CE5C 1020FFD3 */ beqz $at, .L7F01CDAC +/* 051990 7F01CE60 00000000 */ nop +/* 051994 7F01CE64 0008C842 */ srl $t9, $t0, 1 +.L7F01CE68: +/* 051998 7F01CE68 03297021 */ addu $t6, $t9, $t1 +/* 05199C 7F01CE6C 01C8001B */ divu $zero, $t6, $t0 +/* 0519A0 7F01CE70 00E5C021 */ addu $t8, $a3, $a1 +/* 0519A4 7F01CE74 24A50001 */ addiu $a1, $a1, 1 +/* 0519A8 7F01CE78 00057400 */ sll $t6, $a1, 0x10 +/* 0519AC 7F01CE7C 031EC821 */ addu $t9, $t8, $fp +/* 0519B0 7F01CE80 000EC403 */ sra $t8, $t6, 0x10 +/* 0519B4 7F01CE84 0306082A */ slt $at, $t8, $a2 +/* 0519B8 7F01CE88 00007812 */ mflo $t7 +/* 0519BC 7F01CE8C 03002825 */ move $a1, $t8 +/* 0519C0 7F01CE90 15000002 */ bnez $t0, .L7F01CE9C +/* 0519C4 7F01CE94 00000000 */ nop +/* 0519C8 7F01CE98 0007000D */ break 7 +.L7F01CE9C: +/* 0519CC 7F01CE9C A32F0000 */ sb $t7, ($t9) +/* 0519D0 7F01CEA0 5420FFB0 */ bnezl $at, .L7F01CD64 +/* 0519D4 7F01CEA4 00004025 */ move $t0, $zero +.L7F01CEA8: +/* 0519D8 7F01CEA8 24420001 */ addiu $v0, $v0, 1 +/* 0519DC 7F01CEAC 00027C00 */ sll $t7, $v0, 0x10 +/* 0519E0 7F01CEB0 000F1403 */ sra $v0, $t7, 0x10 +/* 0519E4 7F01CEB4 0043082A */ slt $at, $v0, $v1 +/* 0519E8 7F01CEB8 1420FF9F */ bnez $at, .L7F01CD38 +/* 0519EC 7F01CEBC 00000000 */ nop +.L7F01CEC0: +/* 0519F0 7F01CEC0 8FB00004 */ lw $s0, 4($sp) +/* 0519F4 7F01CEC4 8FB10008 */ lw $s1, 8($sp) +/* 0519F8 7F01CEC8 8FB2000C */ lw $s2, 0xc($sp) +/* 0519FC 7F01CECC 8FB30010 */ lw $s3, 0x10($sp) +/* 051A00 7F01CED0 8FB40014 */ lw $s4, 0x14($sp) +/* 051A04 7F01CED4 8FB50018 */ lw $s5, 0x18($sp) +/* 051A08 7F01CED8 8FB6001C */ lw $s6, 0x1c($sp) +/* 051A0C 7F01CEDC 8FB70020 */ lw $s7, 0x20($sp) +/* 051A10 7F01CEE0 8FBE0024 */ lw $fp, 0x24($sp) +/* 051A14 7F01CEE4 03E00008 */ jr $ra +/* 051A18 7F01CEE8 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CEEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CEEC +/* 051A1C 7F01CEEC 24A3FFFF */ addiu $v1, $a1, -1 +/* 051A20 7F01CEF0 28610002 */ slti $at, $v1, 2 +/* 051A24 7F01CEF4 24840061 */ addiu $a0, $a0, 0x61 +/* 051A28 7F01CEF8 24C60061 */ addiu $a2, $a2, 0x61 +/* 051A2C 7F01CEFC 14200049 */ bnez $at, .L7F01D024 +/* 051A30 7F01CF00 24020001 */ li $v0, 1 +/* 051A34 7F01CF04 2407005F */ li $a3, 95 +.L7F01CF08: +/* 051A38 7F01CF08 908EFFA0 */ lbu $t6, -0x60($a0) +/* 051A3C 7F01CF0C 908FFFFF */ lbu $t7, -1($a0) +/* 051A40 7F01CF10 90990000 */ lbu $t9, ($a0) +/* 051A44 7F01CF14 9089FF9F */ lbu $t1, -0x61($a0) +/* 051A48 7F01CF18 01CFC021 */ addu $t8, $t6, $t7 +/* 051A4C 7F01CF1C 03194021 */ addu $t0, $t8, $t9 +/* 051A50 7F01CF20 01095021 */ addu $t2, $t0, $t1 +/* 051A54 7F01CF24 254B0002 */ addiu $t3, $t2, 2 +/* 051A58 7F01CF28 000B6083 */ sra $t4, $t3, 2 +/* 051A5C 7F01CF2C A0CC0000 */ sb $t4, ($a2) +/* 051A60 7F01CF30 908E0000 */ lbu $t6, ($a0) +/* 051A64 7F01CF34 908DFFA1 */ lbu $t5, -0x5f($a0) +/* 051A68 7F01CF38 90980001 */ lbu $t8, 1($a0) +/* 051A6C 7F01CF3C 9088FFA0 */ lbu $t0, -0x60($a0) +/* 051A70 7F01CF40 01AE7821 */ addu $t7, $t5, $t6 +/* 051A74 7F01CF44 01F8C821 */ addu $t9, $t7, $t8 +/* 051A78 7F01CF48 03284821 */ addu $t1, $t9, $t0 +/* 051A7C 7F01CF4C 252A0002 */ addiu $t2, $t1, 2 +/* 051A80 7F01CF50 000A5883 */ sra $t3, $t2, 2 +/* 051A84 7F01CF54 A0CB0001 */ sb $t3, 1($a2) +/* 051A88 7F01CF58 24050003 */ li $a1, 3 +/* 051A8C 7F01CF5C 24C60002 */ addiu $a2, $a2, 2 +/* 051A90 7F01CF60 24840002 */ addiu $a0, $a0, 2 +.L7F01CF64: +/* 051A94 7F01CF64 908CFFA0 */ lbu $t4, -0x60($a0) +/* 051A98 7F01CF68 908DFFFF */ lbu $t5, -1($a0) +/* 051A9C 7F01CF6C 908F0000 */ lbu $t7, ($a0) +/* 051AA0 7F01CF70 9099FF9F */ lbu $t9, -0x61($a0) +/* 051AA4 7F01CF74 018D7021 */ addu $t6, $t4, $t5 +/* 051AA8 7F01CF78 01CFC021 */ addu $t8, $t6, $t7 +/* 051AAC 7F01CF7C 03194021 */ addu $t0, $t8, $t9 +/* 051AB0 7F01CF80 25090002 */ addiu $t1, $t0, 2 +/* 051AB4 7F01CF84 00095083 */ sra $t2, $t1, 2 +/* 051AB8 7F01CF88 A0CA0000 */ sb $t2, ($a2) +/* 051ABC 7F01CF8C 908BFFA1 */ lbu $t3, -0x5f($a0) +/* 051AC0 7F01CF90 908C0000 */ lbu $t4, ($a0) +/* 051AC4 7F01CF94 908E0001 */ lbu $t6, 1($a0) +/* 051AC8 7F01CF98 9098FFA0 */ lbu $t8, -0x60($a0) +/* 051ACC 7F01CF9C 016C6821 */ addu $t5, $t3, $t4 +/* 051AD0 7F01CFA0 01AE7821 */ addu $t7, $t5, $t6 +/* 051AD4 7F01CFA4 01F8C821 */ addu $t9, $t7, $t8 +/* 051AD8 7F01CFA8 27280002 */ addiu $t0, $t9, 2 +/* 051ADC 7F01CFAC 00084883 */ sra $t1, $t0, 2 +/* 051AE0 7F01CFB0 A0C90001 */ sb $t1, 1($a2) +/* 051AE4 7F01CFB4 908AFFA2 */ lbu $t2, -0x5e($a0) +/* 051AE8 7F01CFB8 908B0001 */ lbu $t3, 1($a0) +/* 051AEC 7F01CFBC 908D0002 */ lbu $t5, 2($a0) +/* 051AF0 7F01CFC0 908FFFA1 */ lbu $t7, -0x5f($a0) +/* 051AF4 7F01CFC4 014B6021 */ addu $t4, $t2, $t3 +/* 051AF8 7F01CFC8 018D7021 */ addu $t6, $t4, $t5 +/* 051AFC 7F01CFCC 01CFC021 */ addu $t8, $t6, $t7 +/* 051B00 7F01CFD0 27190002 */ addiu $t9, $t8, 2 +/* 051B04 7F01CFD4 00194083 */ sra $t0, $t9, 2 +/* 051B08 7F01CFD8 A0C80002 */ sb $t0, 2($a2) +/* 051B0C 7F01CFDC 908A0002 */ lbu $t2, 2($a0) +/* 051B10 7F01CFE0 9089FFA3 */ lbu $t1, -0x5d($a0) +/* 051B14 7F01CFE4 908C0003 */ lbu $t4, 3($a0) +/* 051B18 7F01CFE8 908EFFA2 */ lbu $t6, -0x5e($a0) +/* 051B1C 7F01CFEC 012A5821 */ addu $t3, $t1, $t2 +/* 051B20 7F01CFF0 016C6821 */ addu $t5, $t3, $t4 +/* 051B24 7F01CFF4 01AE7821 */ addu $t7, $t5, $t6 +/* 051B28 7F01CFF8 25F80002 */ addiu $t8, $t7, 2 +/* 051B2C 7F01CFFC 0018C883 */ sra $t9, $t8, 2 +/* 051B30 7F01D000 24A50004 */ addiu $a1, $a1, 4 +/* 051B34 7F01D004 A0D90003 */ sb $t9, 3($a2) +/* 051B38 7F01D008 24C60004 */ addiu $a2, $a2, 4 +/* 051B3C 7F01D00C 14A7FFD5 */ bne $a1, $a3, .L7F01CF64 +/* 051B40 7F01D010 24840004 */ addiu $a0, $a0, 4 +/* 051B44 7F01D014 24420001 */ addiu $v0, $v0, 1 +/* 051B48 7F01D018 24C60002 */ addiu $a2, $a2, 2 +/* 051B4C 7F01D01C 1443FFBA */ bne $v0, $v1, .L7F01CF08 +/* 051B50 7F01D020 24840002 */ addiu $a0, $a0, 2 +.L7F01D024: +/* 051B54 7F01D024 03E00008 */ jr $ra +/* 051B58 7F01D028 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D02C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D02C +/* 051B5C 7F01D02C 24A3FFFF */ addiu $v1, $a1, -1 +/* 051B60 7F01D030 28610002 */ slti $at, $v1, 2 +/* 051B64 7F01D034 24840061 */ addiu $a0, $a0, 0x61 +/* 051B68 7F01D038 24C60061 */ addiu $a2, $a2, 0x61 +/* 051B6C 7F01D03C 14200049 */ bnez $at, .L7F01D164 +/* 051B70 7F01D040 24020001 */ li $v0, 1 +/* 051B74 7F01D044 2407005F */ li $a3, 95 +.L7F01D048: +/* 051B78 7F01D048 908E0060 */ lbu $t6, 0x60($a0) +/* 051B7C 7F01D04C 908F0001 */ lbu $t7, 1($a0) +/* 051B80 7F01D050 90990000 */ lbu $t9, ($a0) +/* 051B84 7F01D054 90890061 */ lbu $t1, 0x61($a0) +/* 051B88 7F01D058 01CFC021 */ addu $t8, $t6, $t7 +/* 051B8C 7F01D05C 03194021 */ addu $t0, $t8, $t9 +/* 051B90 7F01D060 01095021 */ addu $t2, $t0, $t1 +/* 051B94 7F01D064 254B0002 */ addiu $t3, $t2, 2 +/* 051B98 7F01D068 000B6083 */ sra $t4, $t3, 2 +/* 051B9C 7F01D06C A0CC0000 */ sb $t4, ($a2) +/* 051BA0 7F01D070 908E0002 */ lbu $t6, 2($a0) +/* 051BA4 7F01D074 908D0061 */ lbu $t5, 0x61($a0) +/* 051BA8 7F01D078 90980001 */ lbu $t8, 1($a0) +/* 051BAC 7F01D07C 90880062 */ lbu $t0, 0x62($a0) +/* 051BB0 7F01D080 01AE7821 */ addu $t7, $t5, $t6 +/* 051BB4 7F01D084 01F8C821 */ addu $t9, $t7, $t8 +/* 051BB8 7F01D088 03284821 */ addu $t1, $t9, $t0 +/* 051BBC 7F01D08C 252A0002 */ addiu $t2, $t1, 2 +/* 051BC0 7F01D090 000A5883 */ sra $t3, $t2, 2 +/* 051BC4 7F01D094 A0CB0001 */ sb $t3, 1($a2) +/* 051BC8 7F01D098 24050003 */ li $a1, 3 +/* 051BCC 7F01D09C 24C60002 */ addiu $a2, $a2, 2 +/* 051BD0 7F01D0A0 24840002 */ addiu $a0, $a0, 2 +.L7F01D0A4: +/* 051BD4 7F01D0A4 908C0060 */ lbu $t4, 0x60($a0) +/* 051BD8 7F01D0A8 908D0001 */ lbu $t5, 1($a0) +/* 051BDC 7F01D0AC 908F0000 */ lbu $t7, ($a0) +/* 051BE0 7F01D0B0 90990061 */ lbu $t9, 0x61($a0) +/* 051BE4 7F01D0B4 018D7021 */ addu $t6, $t4, $t5 +/* 051BE8 7F01D0B8 01CFC021 */ addu $t8, $t6, $t7 +/* 051BEC 7F01D0BC 03194021 */ addu $t0, $t8, $t9 +/* 051BF0 7F01D0C0 25090002 */ addiu $t1, $t0, 2 +/* 051BF4 7F01D0C4 00095083 */ sra $t2, $t1, 2 +/* 051BF8 7F01D0C8 A0CA0000 */ sb $t2, ($a2) +/* 051BFC 7F01D0CC 908C0002 */ lbu $t4, 2($a0) +/* 051C00 7F01D0D0 908B0061 */ lbu $t3, 0x61($a0) +/* 051C04 7F01D0D4 908E0001 */ lbu $t6, 1($a0) +/* 051C08 7F01D0D8 90980062 */ lbu $t8, 0x62($a0) +/* 051C0C 7F01D0DC 016C6821 */ addu $t5, $t3, $t4 +/* 051C10 7F01D0E0 01AE7821 */ addu $t7, $t5, $t6 +/* 051C14 7F01D0E4 01F8C821 */ addu $t9, $t7, $t8 +/* 051C18 7F01D0E8 27280002 */ addiu $t0, $t9, 2 +/* 051C1C 7F01D0EC 00084883 */ sra $t1, $t0, 2 +/* 051C20 7F01D0F0 A0C90001 */ sb $t1, 1($a2) +/* 051C24 7F01D0F4 908B0003 */ lbu $t3, 3($a0) +/* 051C28 7F01D0F8 908A0062 */ lbu $t2, 0x62($a0) +/* 051C2C 7F01D0FC 908D0002 */ lbu $t5, 2($a0) +/* 051C30 7F01D100 908F0063 */ lbu $t7, 0x63($a0) +/* 051C34 7F01D104 014B6021 */ addu $t4, $t2, $t3 +/* 051C38 7F01D108 018D7021 */ addu $t6, $t4, $t5 +/* 051C3C 7F01D10C 01CFC021 */ addu $t8, $t6, $t7 +/* 051C40 7F01D110 27190002 */ addiu $t9, $t8, 2 +/* 051C44 7F01D114 00194083 */ sra $t0, $t9, 2 +/* 051C48 7F01D118 A0C80002 */ sb $t0, 2($a2) +/* 051C4C 7F01D11C 908A0004 */ lbu $t2, 4($a0) +/* 051C50 7F01D120 90890063 */ lbu $t1, 0x63($a0) +/* 051C54 7F01D124 908C0003 */ lbu $t4, 3($a0) +/* 051C58 7F01D128 908E0064 */ lbu $t6, 0x64($a0) +/* 051C5C 7F01D12C 012A5821 */ addu $t3, $t1, $t2 +/* 051C60 7F01D130 016C6821 */ addu $t5, $t3, $t4 +/* 051C64 7F01D134 01AE7821 */ addu $t7, $t5, $t6 +/* 051C68 7F01D138 25F80002 */ addiu $t8, $t7, 2 +/* 051C6C 7F01D13C 0018C883 */ sra $t9, $t8, 2 +/* 051C70 7F01D140 24A50004 */ addiu $a1, $a1, 4 +/* 051C74 7F01D144 A0D90003 */ sb $t9, 3($a2) +/* 051C78 7F01D148 24C60004 */ addiu $a2, $a2, 4 +/* 051C7C 7F01D14C 14A7FFD5 */ bne $a1, $a3, .L7F01D0A4 +/* 051C80 7F01D150 24840004 */ addiu $a0, $a0, 4 +/* 051C84 7F01D154 24420001 */ addiu $v0, $v0, 1 +/* 051C88 7F01D158 24C60002 */ addiu $a2, $a2, 2 +/* 051C8C 7F01D15C 1443FFBA */ bne $v0, $v1, .L7F01D048 +/* 051C90 7F01D160 24840002 */ addiu $a0, $a0, 2 +.L7F01D164: +/* 051C94 7F01D164 03E00008 */ jr $ra +/* 051C98 7F01D168 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D16C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D16C +/* 051C9C 7F01D16C 00A60019 */ multu $a1, $a2 +/* 051CA0 7F01D170 00801825 */ move $v1, $a0 +/* 051CA4 7F01D174 00E04025 */ move $t0, $a3 +/* 051CA8 7F01D178 00855021 */ addu $t2, $a0, $a1 +/* 051CAC 7F01D17C 00001012 */ mflo $v0 +/* 051CB0 7F01D180 00824821 */ addu $t1, $a0, $v0 +/* 051CB4 7F01D184 00000000 */ nop +.L7F01D188: +/* 051CB8 7F01D188 01402025 */ move $a0, $t2 +.L7F01D18C: +/* 051CBC 7F01D18C 906E0000 */ lbu $t6, ($v1) +/* 051CC0 7F01D190 24630001 */ addiu $v1, $v1, 1 +/* 051CC4 7F01D194 0064082B */ sltu $at, $v1, $a0 +/* 051CC8 7F01D198 A10E0000 */ sb $t6, ($t0) +/* 051CCC 7F01D19C 254A0001 */ addiu $t2, $t2, 1 +/* 051CD0 7F01D1A0 1420FFFA */ bnez $at, .L7F01D18C +/* 051CD4 7F01D1A4 01064021 */ addu $t0, $t0, $a2 +/* 051CD8 7F01D1A8 01024023 */ subu $t0, $t0, $v0 +/* 051CDC 7F01D1AC 0069082B */ sltu $at, $v1, $t1 +/* 051CE0 7F01D1B0 1420FFF5 */ bnez $at, .L7F01D188 +/* 051CE4 7F01D1B4 25080001 */ addiu $t0, $t0, 1 +/* 051CE8 7F01D1B8 03E00008 */ jr $ra +/* 051CEC 7F01D1BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D1C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D1C0 +/* 051CF0 7F01D1C0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 051CF4 7F01D1C4 240C00FF */ li $t4, 255 +/* 051CF8 7F01D1C8 90880000 */ lbu $t0, ($a0) +/* 051CFC 7F01D1CC 24840001 */ addiu $a0, $a0, 1 +.L7F01D1D0: +/* 051D00 7F01D1D0 90890000 */ lbu $t1, ($a0) +/* 051D04 7F01D1D4 24840001 */ addiu $a0, $a0, 1 +/* 051D08 7F01D1D8 152C001A */ bne $t1, $t4, .L7F01D244 +/* 051D0C 7F01D1DC 240B00FF */ li $t3, 255 +/* 051D10 7F01D1E0 90890000 */ lbu $t1, ($a0) +/* 051D14 7F01D1E4 240A0000 */ li $t2, 0 +/* 051D18 7F01D1E8 112C000C */ beq $t1, $t4, .L7F01D21C +/* 051D1C 7F01D1EC 24840001 */ addiu $a0, $a0, 1 +.L7F01D1F0: +/* 051D20 7F01D1F0 01495021 */ addu $t2, $t2, $t1 +/* 051D24 7F01D1F4 19200005 */ blez $t1, .L7F01D20C +/* 051D28 7F01D1F8 2529FFFF */ addiu $t1, $t1, -1 +.L7F01D1FC: +/* 051D2C 7F01D1FC A0EB0000 */ sb $t3, ($a3) +/* 051D30 7F01D200 24E70001 */ addiu $a3, $a3, 1 +/* 051D34 7F01D204 1D20FFFD */ bgtz $t1, .L7F01D1FC +/* 051D38 7F01D208 2529FFFF */ addiu $t1, $t1, -1 +.L7F01D20C: +/* 051D3C 7F01D20C 90890000 */ lbu $t1, ($a0) +/* 051D40 7F01D210 396B00FF */ xori $t3, $t3, 0xff +/* 051D44 7F01D214 152CFFF6 */ bne $t1, $t4, .L7F01D1F0 +/* 051D48 7F01D218 24840001 */ addiu $a0, $a0, 1 +.L7F01D21C: +/* 051D4C 7F01D21C 0145082A */ slt $at, $t2, $a1 +/* 051D50 7F01D220 10200006 */ beqz $at, .L7F01D23C +/* 051D54 7F01D224 254A0001 */ addiu $t2, $t2, 1 +.L7F01D228: +/* 051D58 7F01D228 A0EB0000 */ sb $t3, ($a3) +/* 051D5C 7F01D22C 24E70001 */ addiu $a3, $a3, 1 +/* 051D60 7F01D230 0145082A */ slt $at, $t2, $a1 +/* 051D64 7F01D234 1420FFFC */ bnez $at, .L7F01D228 +/* 051D68 7F01D238 254A0001 */ addiu $t2, $t2, 1 +.L7F01D23C: +/* 051D6C 7F01D23C 0BC074A7 */ j func_7F01D29C +/* 051D70 7F01D240 24C6FFFF */ addiu $a2, $a2, -1 + +.L7F01D244: +/* 051D74 7F01D244 312A001F */ andi $t2, $t1, 0x1f +/* 051D78 7F01D248 01485021 */ addu $t2, $t2, $t0 +/* 051D7C 7F01D24C 00094942 */ srl $t1, $t1, 5 +/* 051D80 7F01D250 25290001 */ addiu $t1, $t1, 1 +/* 051D84 7F01D254 00C93023 */ subu $a2, $a2, $t1 +.L7F01D258: +/* 051D88 7F01D258 01405825 */ move $t3, $t2 +/* 051D8C 7F01D25C 19600005 */ blez $t3, .L7F01D274 +/* 051D90 7F01D260 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D264: +/* 051D94 7F01D264 A0EC0000 */ sb $t4, ($a3) +/* 051D98 7F01D268 24E70001 */ addiu $a3, $a3, 1 +/* 051D9C 7F01D26C 1D60FFFD */ bgtz $t3, .L7F01D264 +/* 051DA0 7F01D270 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D274: +/* 051DA4 7F01D274 00AA5823 */ subu $t3, $a1, $t2 +/* 051DA8 7F01D278 19600005 */ blez $t3, .L7F01D290 +/* 051DAC 7F01D27C 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D280: +/* 051DB0 7F01D280 A0E00000 */ sb $zero, ($a3) +/* 051DB4 7F01D284 24E70001 */ addiu $a3, $a3, 1 +/* 051DB8 7F01D288 1D60FFFD */ bgtz $t3, .L7F01D280 +/* 051DBC 7F01D28C 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D290: +/* 051DC0 7F01D290 2529FFFF */ addiu $t1, $t1, -1 +/* 051DC4 7F01D294 1D20FFF0 */ bgtz $t1, .L7F01D258 +/* 051DC8 7F01D298 00000000 */ nop +glabel func_7F01D29C +/* 051DCC 7F01D29C 1CC0FFCC */ bgtz $a2, .L7F01D1D0 +/* 051DD0 7F01D2A0 00801025 */ move $v0, $a0 +/* 051DD4 7F01D2A4 03E00008 */ jr $ra +/* 051DD8 7F01D2A8 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + diff --git a/src/game/bond.c b/src/game/bond.c new file mode 100644 index 0000000..f96494f --- /dev/null +++ b/src/game/bond.c @@ -0,0 +1,35351 @@ +#include "ultra64.h" +#include "game/bond.h" +#include "game/chr.h" +#include "game/unk_093880.h" +#include "game/textrelated.h" +#include "game/lvl.h" +#include "game/bondinv.h" +#include "game/bondwalk.h" + +// bss +//CODE.bss:80079940 +f32 flt_CODE_bss_80079940; +//CODE.bss:80079944 +f32 flt_CODE_bss_80079944; +//CODE.bss:80079948 +f32 flt_CODE_bss_80079948; +//CODE.bss:8007994C +f32 flt_CODE_bss_8007994C; +//CODE.bss:80079950 +f32 flt_CODE_bss_80079950; +//CODE.bss:80079954 +f32 flt_CODE_bss_80079954; +//CODE.bss:80079958 +f32 flt_CODE_bss_80079958; +//CODE.bss:8007995C +f32 flt_CODE_bss_8007995C; +//CODE.bss:80079960 +f32 flt_CODE_bss_80079960; +//CODE.bss:80079964 +f32 flt_CODE_bss_80079964; +//CODE.bss:80079968 +f32 flt_CODE_bss_80079968; +//CODE.bss:8007996C +f32 flt_CODE_bss_8007996C; +//CODE.bss:80079970 +f32 flt_CODE_bss_80079970; +//CODE.bss:80079974 +f32 flt_CODE_bss_80079974; +//CODE.bss:80079978 +f32 flt_CODE_bss_80079978; +//CODE.bss:8007997C +f32 flt_CODE_bss_8007997C; +//CODE.bss:80079980 +f32 flt_CODE_bss_80079980; +//CODE.bss:80079984 +f32 flt_CODE_bss_80079984; +//CODE.bss:80079988 +f32 flt_CODE_bss_80079988; +//CODE.bss:8007998C +f32 flt_CODE_bss_8007998C; +//CODE.bss:80079990 +f32 flt_CODE_bss_80079990; +//CODE.bss:80079994 +f32 flt_CODE_bss_80079994; +//CODE.bss:80079998 +f32 flt_CODE_bss_80079998; +//CODE.bss:8007999C +s32 dword_CODE_bss_8007999C; +//CODE.bss:800799A0 +s32 dword_CODE_bss_800799A0; +//CODE.bss:800799A4 +s32 dword_CODE_bss_800799A4; +//CODE.bss:800799A8 +f32 flt_CODE_bss_800799A8; +//CODE.bss:800799AC +f32 flt_CODE_bss_800799AC; +//CODE.bss:800799B0 +f32 flt_CODE_bss_800799B0; +//CODE.bss:800799B4 +s32 dword_CODE_bss_800799B4; +//CODE.bss:800799B8 +s32 dword_CODE_bss_800799B8; +//CODE.bss:800799BC +f32 flt_CODE_bss_800799BC; +//CODE.bss:800799C0 +f32 flt_CODE_bss_800799C0; +//CODE.bss:800799C4 +f32 flt_CODE_bss_800799C4; +//CODE.bss:800799C8 +f32 flt_CODE_bss_800799C8; +//CODE.bss:800799CC +f32 flt_CODE_bss_800799CC; +//CODE.bss:800799D0 +f32 flt_CODE_bss_800799D0; +//CODE.bss:800799D4 +f32 flt_CODE_bss_800799D4; +//CODE.bss:800799D8 +f32 flt_CODE_bss_800799D8; +//CODE.bss:800799DC +f32 flt_CODE_bss_800799DC; +//CODE.bss:800799E0 +s32 starting_right_weapon; +//CODE.bss:800799E4 +s32 starting_left_weapon; +//CODE.bss:800799E8 +f32 flt_CODE_bss_800799E8; +//CODE.bss:800799EC +f32 flt_CODE_bss_800799EC; +//CODE.bss:800799F0 +f32 flt_CODE_bss_800799F0; +//CODE.bss:800799F4 +s32 dword_CODE_bss_800799F4; +//CODE.bss:800799F8 +s32 dword_CODE_bss_800799F8; +//CODE.bss:800799FC +s32 dword_CODE_bss_800799FC; +//CODE.bss:80079A00 +f32 flt_CODE_bss_80079A00; +//CODE.bss:80079A04 +f32 flt_CODE_bss_80079A04; +//CODE.bss:80079A08 +f32 flt_CODE_bss_80079A08; +//CODE.bss:80079A0C +f32 flt_CODE_bss_80079A0C; +//CODE.bss:80079A10 +f32 flt_CODE_bss_80079A10; +//CODE.bss:80079A14 +s32 dword_CODE_bss_80079A14; +//CODE.bss:80079A18 +s32 dword_CODE_bss_80079A18; +//CODE.bss:80079A1C +s32 dword_CODE_bss_80079A1C; +//CODE.bss:80079A20 +s32 mission_timer; +//CODE.bss:80079A24 +f32 watch_time_0; +//CODE.bss:80079A28 +char dword_CODE_bss_80079A28[0x200]; +#ifdef VERSION_JP +//CODE.bss:80079Cd8 +char dword_CODE_bss_jp80079Cd8[0x30]; +#endif +//CODE.bss:80079C28 +char dword_CODE_bss_80079C28[0x40]; +//CODE.bss:80079C68 +s32 dword_CODE_bss_80079C68; +//CODE.bss:80079C6C +s32 dword_CODE_bss_80079C6C; +//CODE.bss:80079C70 +char dword_CODE_bss_80079C70[0x130]; +//CODE.bss:80079DA0 +s32 dword_CODE_bss_80079DA0; +//CODE.bss:80079DA4 +s32 dword_CODE_bss_80079DA4; +//CODE.bss:80079DA8 +char dword_CODE_bss_80079DA8[0x20]; +//CODE.bss:80079DC8 +char dword_CODE_bss_80079DC8[0x3C]; +//CODE.bss:80079E04 +s32 flt_CODE_bss_80079E04; +//CODE.bss:80079E08 +s32 flt_CODE_bss_80079E08; +//CODE.bss:80079E0C +s32 flt_CODE_bss_80079E0C; +//CODE.bss:80079E10 +s32 flt_CODE_bss_80079E10; + + +// data +//D:80036420 +s32 D_80036420 = 0; +//D:80036424 +s32 camera_80036424 = 0; +//D:80036428 +s32 resolution = 0; +//D:8003642C +s32 camera_8003642C = 0; +//D:80036430 +s32 camera_80036430 = 0; +//D:80036434 +s32 camera_80036434 = 0; +//D:80036438 +s32 camera_80036438 = 0; +//D:8003643C +s32 D_8003643C = 0; +//D:80036440 +s32 D_80036440 = 0; +//D:80036444 +s32 D_80036444 = 0; +//D:80036448 +s32 in_tank_flag = 0; +//D:8003644C +s32 D_8003644C = 0; +//D:80036450 +s32 ptr_playerstank = 0; +//D:80036454 +s32 D_80036454 = 0; +//D:80036458 +s32 SFX_80036458 = 0; +//D:8003645C +s32 SFX_8003645C = 0; +//D:80036460 +s32 D_80036460 = 0; +//D:80036464 +s32 D_80036464 = 0; +//D:80036468 +s32 D_80036468 = 0; +//D:8003646C +s32 D_8003646C = 0; +//D:80036470 +s32 D_80036470 = 0; +//D:80036474 +s32 D_80036474 = 0; +//D:80036478 +s32 D_80036478 = 0; +//D:8003647C +s32 D_8003647C = 0; +//D:80036480 +s32 D_80036480 = 0; +//D:80036484 +s32 D_80036484 = 0; +//D:80036488 +s32 D_80036488 = 0; +//D:8003648C +s32 D_8003648C = 0; +//D:80036490 +s32 D_80036490 = 0; +//D:80036494 +s32 cameramode = 0; +//D:80036498 +s32 enable_move_after_cinema = 0; +//D:8003649C +s32 D_8003649C = 0; +//D:800364A0 +s32 stop_time_flag = 0; +//D:800364A4 +s32 D_800364A4 = 0; +//D:800364A8 +s32 D_800364A8 = 1; +//D:800364AC +s32 D_800364AC = 0; +//D:800364B0 +s32 D_800364B0 = 1; +//D:800364B4 +s32 disable_player_pickups_flag = 0; +//D:800364B8 +s32 D_800364B8 = 0; +//D:800364BC +s32 D_800364BC = 0; +//D:800364C0 +s32 ptr_random06cam_entry = 0; +//D:800364C4 +s32 invisible_to_guards_flag = 1; +//D:800364C8 +s32 obj_collision_flag = 1; +//D:800364CC +f32 D_800364CC = 1.0; +//D:800364D0 +f32 D_800364D0 = 1.0; +//D:800364D4 +f32 D_800364D4 = 1.0; +//D:800364D8 +s32 D_800364D8[] = { + 0x30B8, 0x31DC, 0x32C8, 0x33AC, 0x34D4, 0x35C8, 0x36D8, 0x384C, 0x39C0, 0x3AF0, 0x3C10, 0x3D04, 0 +}; + +//D:8003650C +s32 D_8003650C = 0; +//D:80036510 +s32 D_80036510 = 0; +//D:80036514 +s32 D_80036514 = 0; + +//D:80036518 +struct struct_4 stage_intro_anim_table[] = { + {0x5744, 95.0, -1.0, 0.02}, + {0x6254, 7.0, 40.0, 0.5}, + {0x78C8, 0.0, -1.0, 0.5}, + {0x7AA8, 0.0, -1.0, 0.5}, + {0x7C4C, 0.0, -1.0, 0.5}, + {0x7D04, 0.0, -1.0, 0.5}, + {0x7F0C, 0.0, -1.0, 0.5}, + {0x7FB4, 0.0, -1.0, 0.5}, + {0xD89C, 0.0, -1.0, 0.5} +}; + +//D:800365A8 +f32 watch_transition_time = 0.90909088; + +//D:800365AC +u32 dummy_08_pp7_obj[] = { + 0x01000008, 0x00bf4000, 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, + 0x00000000, 0x447a0000, 0xffffff00, 0xffffff00, + 0x04ffffff +}; +//D:80036630 +u32 D_80036630 = 0; +#ifdef VERSION_US +//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 +#ifdef VERSION_JP +//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 +}; +#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 +}; + +//D:800367F4 +s32 D_800367F4 = 0; +//D:800367F8 +s32 D_800367F8 = 0; +//D:800367FC +s32 D_800367FC = 0; +//D:80036800 +s32 D_80036800 = 0; +//D:80036804 +s32 D_80036804 = 0; +//D:80036808 +s32 D_80036808 = 0; +//D:8003680C +s32 D_8003680C = 0; +//D:80036810 +s32 D_80036810 = 0; +//D:80036814 +s32 D_80036814 = 0x3F800000; +//D:80036818 +s32 D_80036818 = 0; +//D:8003681C +s32 D_8003681C = 0x3F800000; +//D:80036820 +s32 D_80036820 = 0; +//D:80036824 +s32 D_80036824 = 0; +//D:80036828 +s32 D_80036828 = 0; +//D:8003682C +s32 D_8003682C = 0; +//D:80036830 +s32 D_80036830 = 0; +//D:80036834 +s32 D_80036834 = 0; +//D:80036838 +s32 D_80036838 = 0; +//D:8003683C +s32 D_8003683C[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80036878 +s32 D_80036878 = 0; +//D:8003687C +s32 D_8003687C = 0; + +//D:80036880 +s32 D_80036880 = 0; +//D:80036884 +s32 D_80036884 = 0; +//D:80036888 +s32 D_80036888 = 0; + +//D:8003688C +s32 D_8003688C = 0; +//D:80036890 +s32 D_80036890 = 0; +//D:80036894 +s32 D_80036894 = 0; +//D:80036898 +s32 status_bar_text_buffer_index = 0; +//D:8003689C +s32 display_statusbar = 0; +#ifndef VERSION_JP +//D:800368A0 +s32 copy_1stfonttable = 0; +//D:800368A4 +s32 copy_2ndfonttable = 0; +#endif +//D:800368A8 +s32 upper_text_buffer_index = 0; +//D:800368AC +s32 display_upper_text_window = 0; +//D:800368B0 +s32 upper_text_window_timer = 0xFFFFFFFF; +s32 D_800368B4 = 0; +//D:800368B8 +u16 D_800368B8[] = {0x6E00, 0x006E, 0x6500, 0x6500, 0x73, 0x6500, 0x7300, 0x0073, 0x7700, 0x7700, 0x6E, 0x7700, 0x6E00, 0x0000, 0x0000, 0x0000}; + +//D:800368D8 +struct firing_anim_struct firing_animation_groups[] = { + {pistol_firing_animation_group1, 0, 0.1, 79.0, 87.0}, + {&D_800306F0, 0, 0.5, 0.0, -1.0}, + {&D_80030738, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {crouched_pistol_firing_animation_group1, 0, 0.1, 56.0, 68.0}, + {rifle_firing_animation_group1, 0, 0.050000001, 35.0, 40.0}, + {&D_80030660, 0, 0.5, 0.0, -1.0}, + {&D_800306A8, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {crouched_rifle_firing_animation_groupA, 0, 0.1, 45.0, 55.0}, + {NULL, 0x8194, 0.25, 0.0, -1.0}, + {NULL, 0x8204, 0.5, 0.0, -1.0}, + {NULL, 0x777C, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {NULL, 0x6C18, 0.050000001, 28.0, 29.0}, + {doubles_firing_animation_group1, 0, 0.1, 32.0, 42.0}, + {&D_80030780, 0, 0.5, 0.0, -1.0}, + {&D_800307C8, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {crouched_doubles_firing_animation_group1, 0, 0.1, 37.0, 47.0} +}; + +//D:80036AB8 +s32 D_80036AB8 = 2; +//D:80036ABC +s32 D_80036ABC = 0xFFFFFFFF; +//D:80036AC0 +f32 D_80036AC0 = 1.0; +//D:80036AC4 +f32 D_80036AC4 = 0.1; + +void nullsub_75(void) +{ + return; +} + +void set_BONDdata_screensize(f32 width, f32 height) +{ + pPlayer->c_screenwidth = width; + pPlayer->c_screenheight = height; + pPlayer->c_halfwidth = (f32) (width * 0.5f); + pPlayer->c_halfheight = (f32) (height * 0.5f); +} + +void *set_ulx_uly(f32 ulx, f32 uly) +{ + pPlayer->c_screenleft = ulx; + pPlayer->c_screentop = uly; +} + +void sub_GAME_7F077C30(f32 arg0, f32 arg1, f32 arg2) +{ + pPlayer->c_perspnear = arg0; + pPlayer->c_perspfovy = arg1; + pPlayer->c_perspaspect = arg2; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F077C5C(void) +{ + f32 sp34; + f32 sp30; + f32 sp2C; + f32 temp_f14; + f32 temp_f16; + f32 temp_f2; + f32 temp_f2_2; + f32 temp_f2_3; + + sp2C = sinf((pPlayer->c_perspfovy * D_80054FA0) / 360.0f); + pPlayer->c_scaley = (f32) (sp2C / (cosf((pPlayer->c_perspfovy * D_80054FA0) / 360.0f) * pPlayer->c_halfheight)); + pPlayer->c_scalex = (f32) (((pPlayer->c_scaley * pPlayer->c_perspaspect) * pPlayer->c_halfheight) / pPlayer->c_halfwidth); + pPlayer->c_recipscalex = (f32) (1.0f / pPlayer->c_scalex); + pPlayer->c_recipscaley = (f32) (1.0f / pPlayer->c_scaley); + pPlayer->c_scalelod = (f32) pPlayer->c_scaley; + sp2C = sinf(D_80054FA4); + pPlayer->c_scalelod60 = (f32) (sp2C / (cosf(D_80054FA8) * 120.0f)); + pPlayer->c_lodscalez = (f32) (pPlayer->c_scalelod / pPlayer->c_scalelod60); + temp_f2 = pPlayer->c_lodscalez * 65536.0f; + if (4294967296.0f < temp_f2) + { + pPlayer->c_lodscalezu32 = -1U; + } + else + { + pPlayer->c_lodscalezu32 = (u32) temp_f2; + } + temp_f14 = pPlayer->c_halfheight * pPlayer->c_scaley; + sp30 = temp_f14; + temp_f2_2 = 1.0f / sqrtf((temp_f14 * temp_f14) + 1.0f, temp_f14); + (pPlayer->c_cameratopnorm).x = 0.0f; + (pPlayer->c_cameratopnorm).y = temp_f2_2; + (pPlayer->c_cameratopnorm).z = (f32) (temp_f14 * temp_f2_2); + temp_f16 = -pPlayer->c_halfwidth * pPlayer->c_scalex; + sp34 = temp_f16; + temp_f2_3 = 1.0f / sqrtf((temp_f16 * temp_f16) + 1.0f, temp_f14); + (pPlayer->c_cameraleftnorm).x = (f32) -temp_f2_3; + (pPlayer->c_cameraleftnorm).y = 0.0f; + (pPlayer->c_cameraleftnorm).z = (f32) (-temp_f16 * temp_f2_3); +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FA0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054FA4 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80054FA8 +.word 0x3f060a92 /*0.52359879*/ +.text +glabel sub_GAME_7F077C5C +/* 0AC78C 7F077C5C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0AC790 7F077C60 AFB00020 */ sw $s0, 0x20($sp) +/* 0AC794 7F077C64 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AC798 7F077C68 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AC79C 7F077C6C 8E0E0000 */ lw $t6, ($s0) +/* 0AC7A0 7F077C70 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0AC7A4 7F077C74 AFBF0024 */ sw $ra, 0x24($sp) +/* 0AC7A8 7F077C78 3C018005 */ lui $at, %hi(D_80054FA0) +/* 0AC7AC 7F077C7C C4344FA0 */ lwc1 $f20, %lo(D_80054FA0)($at) +/* 0AC7B0 7F077C80 C5C410A4 */ lwc1 $f4, 0x10a4($t6) +/* 0AC7B4 7F077C84 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AC7B8 7F077C88 44814000 */ mtc1 $at, $f8 +/* 0AC7BC 7F077C8C 46142182 */ mul.s $f6, $f4, $f20 +/* 0AC7C0 7F077C90 0FC15FAB */ jal sinf +/* 0AC7C4 7F077C94 46083303 */ div.s $f12, $f6, $f8 +/* 0AC7C8 7F077C98 8E0F0000 */ lw $t7, ($s0) +/* 0AC7CC 7F077C9C E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0AC7D0 7F077CA0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AC7D4 7F077CA4 C5EA10A4 */ lwc1 $f10, 0x10a4($t7) +/* 0AC7D8 7F077CA8 44812000 */ mtc1 $at, $f4 +/* 0AC7DC 7F077CAC 46145482 */ mul.s $f18, $f10, $f20 +/* 0AC7E0 7F077CB0 0FC15FA8 */ jal cosf +/* 0AC7E4 7F077CB4 46049303 */ div.s $f12, $f18, $f4 +/* 0AC7E8 7F077CB8 8E020000 */ lw $v0, ($s0) +/* 0AC7EC 7F077CBC C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0AC7F0 7F077CC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AC7F4 7F077CC4 C44810B0 */ lwc1 $f8, 0x10b0($v0) +/* 0AC7F8 7F077CC8 4481A000 */ mtc1 $at, $f20 +/* 0AC7FC 7F077CCC 3C018005 */ lui $at, %hi(D_80054FA4) +/* 0AC800 7F077CD0 46080282 */ mul.s $f10, $f0, $f8 +/* 0AC804 7F077CD4 460A3483 */ div.s $f18, $f6, $f10 +/* 0AC808 7F077CD8 E45210B8 */ swc1 $f18, 0x10b8($v0) +/* 0AC80C 7F077CDC 8E020000 */ lw $v0, ($s0) +/* 0AC810 7F077CE0 C44410B8 */ lwc1 $f4, 0x10b8($v0) +/* 0AC814 7F077CE4 C44810A8 */ lwc1 $f8, 0x10a8($v0) +/* 0AC818 7F077CE8 C44A10B0 */ lwc1 $f10, 0x10b0($v0) +/* 0AC81C 7F077CEC 46082182 */ mul.s $f6, $f4, $f8 +/* 0AC820 7F077CF0 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0AC824 7F077CF4 460A3482 */ mul.s $f18, $f6, $f10 +/* 0AC828 7F077CF8 46049203 */ div.s $f8, $f18, $f4 +/* 0AC82C 7F077CFC E44810B4 */ swc1 $f8, 0x10b4($v0) +/* 0AC830 7F077D00 8E020000 */ lw $v0, ($s0) +/* 0AC834 7F077D04 C44610B4 */ lwc1 $f6, 0x10b4($v0) +/* 0AC838 7F077D08 4606A283 */ div.s $f10, $f20, $f6 +/* 0AC83C 7F077D0C E44A10BC */ swc1 $f10, 0x10bc($v0) +/* 0AC840 7F077D10 8E020000 */ lw $v0, ($s0) +/* 0AC844 7F077D14 C45210B8 */ lwc1 $f18, 0x10b8($v0) +/* 0AC848 7F077D18 4612A103 */ div.s $f4, $f20, $f18 +/* 0AC84C 7F077D1C E44410C0 */ swc1 $f4, 0x10c0($v0) +/* 0AC850 7F077D20 8E020000 */ lw $v0, ($s0) +/* 0AC854 7F077D24 C44810B8 */ lwc1 $f8, 0x10b8($v0) +/* 0AC858 7F077D28 E44810F4 */ swc1 $f8, 0x10f4($v0) +/* 0AC85C 7F077D2C 0FC15FAB */ jal sinf +/* 0AC860 7F077D30 C42C4FA4 */ lwc1 $f12, %lo(D_80054FA4)($at) +/* 0AC864 7F077D34 3C018005 */ lui $at, %hi(D_80054FA8) +/* 0AC868 7F077D38 C42C4FA8 */ lwc1 $f12, %lo(D_80054FA8)($at) +/* 0AC86C 7F077D3C 0FC15FA8 */ jal cosf +/* 0AC870 7F077D40 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0AC874 7F077D44 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0AC878 7F077D48 44815000 */ mtc1 $at, $f10 +/* 0AC87C 7F077D4C C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0AC880 7F077D50 8E180000 */ lw $t8, ($s0) +/* 0AC884 7F077D54 460A0482 */ mul.s $f18, $f0, $f10 +/* 0AC888 7F077D58 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0AC88C 7F077D5C 2419FFFF */ li $t9, -1 +/* 0AC890 7F077D60 24090001 */ li $t1, 1 +/* 0AC894 7F077D64 46123103 */ div.s $f4, $f6, $f18 +/* 0AC898 7F077D68 E70410F0 */ swc1 $f4, 0x10f0($t8) +/* 0AC89C 7F077D6C 8E020000 */ lw $v0, ($s0) +/* 0AC8A0 7F077D70 44812000 */ mtc1 $at, $f4 +/* 0AC8A4 7F077D74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AC8A8 7F077D78 C44810F4 */ lwc1 $f8, 0x10f4($v0) +/* 0AC8AC 7F077D7C C44A10F0 */ lwc1 $f10, 0x10f0($v0) +/* 0AC8B0 7F077D80 460A4183 */ div.s $f6, $f8, $f10 +/* 0AC8B4 7F077D84 44814000 */ mtc1 $at, $f8 +/* 0AC8B8 7F077D88 E44610F8 */ swc1 $f6, 0x10f8($v0) +/* 0AC8BC 7F077D8C 8E020000 */ lw $v0, ($s0) +/* 0AC8C0 7F077D90 C45210F8 */ lwc1 $f18, 0x10f8($v0) +/* 0AC8C4 7F077D94 46049082 */ mul.s $f2, $f18, $f4 +/* 0AC8C8 7F077D98 4602403C */ c.lt.s $f8, $f2 +/* 0AC8CC 7F077D9C 00000000 */ nop +/* 0AC8D0 7F077DA0 45020004 */ bc1fl .L7F077DB4 +/* 0AC8D4 7F077DA4 4448F800 */ cfc1 $t0, $31 +/* 0AC8D8 7F077DA8 10000022 */ b .L7F077E34 +/* 0AC8DC 7F077DAC AC5910FC */ sw $t9, 0x10fc($v0) +/* 0AC8E0 7F077DB0 4448F800 */ cfc1 $t0, $31 +.L7F077DB4: +/* 0AC8E4 7F077DB4 44C9F800 */ ctc1 $t1, $31 +/* 0AC8E8 7F077DB8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0AC8EC 7F077DBC 460012A4 */ cvt.w.s $f10, $f2 +/* 0AC8F0 7F077DC0 4449F800 */ cfc1 $t1, $31 +/* 0AC8F4 7F077DC4 00000000 */ nop +/* 0AC8F8 7F077DC8 31290078 */ andi $t1, $t1, 0x78 +/* 0AC8FC 7F077DCC 51200013 */ beql $t1, $zero, .L7F077E1C +/* 0AC900 7F077DD0 44095000 */ mfc1 $t1, $f10 +/* 0AC904 7F077DD4 44815000 */ mtc1 $at, $f10 +/* 0AC908 7F077DD8 24090001 */ li $t1, 1 +/* 0AC90C 7F077DDC 460A1281 */ sub.s $f10, $f2, $f10 +/* 0AC910 7F077DE0 44C9F800 */ ctc1 $t1, $31 +/* 0AC914 7F077DE4 00000000 */ nop +/* 0AC918 7F077DE8 460052A4 */ cvt.w.s $f10, $f10 +/* 0AC91C 7F077DEC 4449F800 */ cfc1 $t1, $31 +/* 0AC920 7F077DF0 00000000 */ nop +/* 0AC924 7F077DF4 31290078 */ andi $t1, $t1, 0x78 +/* 0AC928 7F077DF8 15200005 */ bnez $t1, .L7F077E10 +/* 0AC92C 7F077DFC 00000000 */ nop +/* 0AC930 7F077E00 44095000 */ mfc1 $t1, $f10 +/* 0AC934 7F077E04 3C018000 */ lui $at, 0x8000 +/* 0AC938 7F077E08 10000007 */ b .L7F077E28 +/* 0AC93C 7F077E0C 01214825 */ or $t1, $t1, $at +.L7F077E10: +/* 0AC940 7F077E10 10000005 */ b .L7F077E28 +/* 0AC944 7F077E14 2409FFFF */ li $t1, -1 +/* 0AC948 7F077E18 44095000 */ mfc1 $t1, $f10 +.L7F077E1C: +/* 0AC94C 7F077E1C 00000000 */ nop +/* 0AC950 7F077E20 0520FFFB */ bltz $t1, .L7F077E10 +/* 0AC954 7F077E24 00000000 */ nop +.L7F077E28: +/* 0AC958 7F077E28 44C8F800 */ ctc1 $t0, $31 +/* 0AC95C 7F077E2C AC4910FC */ sw $t1, 0x10fc($v0) +/* 0AC960 7F077E30 00000000 */ nop +.L7F077E34: +/* 0AC964 7F077E34 8E020000 */ lw $v0, ($s0) +/* 0AC968 7F077E38 C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0AC96C 7F077E3C C45210B8 */ lwc1 $f18, 0x10b8($v0) +/* 0AC970 7F077E40 46123382 */ mul.s $f14, $f6, $f18 +/* 0AC974 7F077E44 00000000 */ nop +/* 0AC978 7F077E48 460E7102 */ mul.s $f4, $f14, $f14 +/* 0AC97C 7F077E4C E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0AC980 7F077E50 0C007DF8 */ jal sqrtf +/* 0AC984 7F077E54 46142300 */ add.s $f12, $f4, $f20 +/* 0AC988 7F077E58 4600A083 */ div.s $f2, $f20, $f0 +/* 0AC98C 7F077E5C 44804000 */ mtc1 $zero, $f8 +/* 0AC990 7F077E60 8E0A0000 */ lw $t2, ($s0) +/* 0AC994 7F077E64 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0AC998 7F077E68 E5481100 */ swc1 $f8, 0x1100($t2) +/* 0AC99C 7F077E6C 8E0B0000 */ lw $t3, ($s0) +/* 0AC9A0 7F077E70 46027282 */ mul.s $f10, $f14, $f2 +/* 0AC9A4 7F077E74 E5621104 */ swc1 $f2, 0x1104($t3) +/* 0AC9A8 7F077E78 8E0C0000 */ lw $t4, ($s0) +/* 0AC9AC 7F077E7C E58A1108 */ swc1 $f10, 0x1108($t4) +/* 0AC9B0 7F077E80 8E020000 */ lw $v0, ($s0) +/* 0AC9B4 7F077E84 C44610AC */ lwc1 $f6, 0x10ac($v0) +/* 0AC9B8 7F077E88 C44410B4 */ lwc1 $f4, 0x10b4($v0) +/* 0AC9BC 7F077E8C 46003487 */ neg.s $f18, $f6 +/* 0AC9C0 7F077E90 46049402 */ mul.s $f16, $f18, $f4 +/* 0AC9C4 7F077E94 00000000 */ nop +/* 0AC9C8 7F077E98 46108202 */ mul.s $f8, $f16, $f16 +/* 0AC9CC 7F077E9C E7B00034 */ swc1 $f16, 0x34($sp) +/* 0AC9D0 7F077EA0 0C007DF8 */ jal sqrtf +/* 0AC9D4 7F077EA4 46144300 */ add.s $f12, $f8, $f20 +/* 0AC9D8 7F077EA8 4600A083 */ div.s $f2, $f20, $f0 +/* 0AC9DC 7F077EAC C7B00034 */ lwc1 $f16, 0x34($sp) +/* 0AC9E0 7F077EB0 8E0D0000 */ lw $t5, ($s0) +/* 0AC9E4 7F077EB4 44803000 */ mtc1 $zero, $f6 +/* 0AC9E8 7F077EB8 46008487 */ neg.s $f18, $f16 +/* 0AC9EC 7F077EBC 46001287 */ neg.s $f10, $f2 +/* 0AC9F0 7F077EC0 46029102 */ mul.s $f4, $f18, $f2 +/* 0AC9F4 7F077EC4 E5AA110C */ swc1 $f10, 0x110c($t5) +/* 0AC9F8 7F077EC8 8E0E0000 */ lw $t6, ($s0) +/* 0AC9FC 7F077ECC E5C61110 */ swc1 $f6, 0x1110($t6) +/* 0ACA00 7F077ED0 8E0F0000 */ lw $t7, ($s0) +/* 0ACA04 7F077ED4 E5E41114 */ swc1 $f4, 0x1114($t7) +/* 0ACA08 7F077ED8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0ACA0C 7F077EDC 8FB00020 */ lw $s0, 0x20($sp) +/* 0ACA10 7F077EE0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0ACA14 7F077EE4 03E00008 */ jr $ra +/* 0ACA18 7F077EE8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F077EEC(void *arg0, void *arg1, f32 arg2) { + f32 sp20; + f32 temp_f14; + f32 temp_f16; + ? temp_ret; + f32 temp_f2; + + // Node 0 + temp_f14 = ((pPlayer->c_halfheight - (arg0->unk4 - pPlayer->c_screentop)) * pPlayer->c_scaley); + temp_f16 = (((*arg0 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp20 = temp_f16; + temp_ret = sqrtf((((temp_f16 * temp_f16) + (temp_f14 * temp_f14)) + (-1.0f * -1.0f)), temp_f14); + temp_f2 = (arg2 / temp_ret); + *arg1 = (f32) (temp_f16 * temp_f2); + arg1->unk4 = (f32) (sp1C * temp_f2); + arg1->unk8 = (f32) (-1.0f * temp_f2); + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077EEC +/* 0ACA1C 7F077EEC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0ACA20 7F077EF0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACA24 7F077EF4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ACA28 7F077EF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACA2C 7F077EFC AFA60030 */ sw $a2, 0x30($sp) +/* 0ACA30 7F077F00 C4840004 */ lwc1 $f4, 4($a0) +/* 0ACA34 7F077F04 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACA38 7F077F08 C44A10B0 */ lwc1 $f10, 0x10b0($v0) +/* 0ACA3C 7F077F0C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACA40 7F077F10 46062201 */ sub.s $f8, $f4, $f6 +/* 0ACA44 7F077F14 C4860000 */ lwc1 $f6, ($a0) +/* 0ACA48 7F077F18 C44410B8 */ lwc1 $f4, 0x10b8($v0) +/* 0ACA4C 7F077F1C 44810000 */ mtc1 $at, $f0 +/* 0ACA50 7F077F20 46085481 */ sub.s $f18, $f10, $f8 +/* 0ACA54 7F077F24 C44A1098 */ lwc1 $f10, 0x1098($v0) +/* 0ACA58 7F077F28 46049382 */ mul.s $f14, $f18, $f4 +/* 0ACA5C 7F077F2C 460A3201 */ sub.s $f8, $f6, $f10 +/* 0ACA60 7F077F30 C45210AC */ lwc1 $f18, 0x10ac($v0) +/* 0ACA64 7F077F34 C44610B4 */ lwc1 $f6, 0x10b4($v0) +/* 0ACA68 7F077F38 AFA5002C */ sw $a1, 0x2c($sp) +/* 0ACA6C 7F077F3C 46124101 */ sub.s $f4, $f8, $f18 +/* 0ACA70 7F077F40 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0ACA74 7F077F44 46062402 */ mul.s $f16, $f4, $f6 +/* 0ACA78 7F077F48 00000000 */ nop +/* 0ACA7C 7F077F4C 46108282 */ mul.s $f10, $f16, $f16 +/* 0ACA80 7F077F50 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0ACA84 7F077F54 460E7202 */ mul.s $f8, $f14, $f14 +/* 0ACA88 7F077F58 46085480 */ add.s $f18, $f10, $f8 +/* 0ACA8C 7F077F5C 46000102 */ mul.s $f4, $f0, $f0 +/* 0ACA90 7F077F60 0C007DF8 */ jal sqrtf +/* 0ACA94 7F077F64 46049300 */ add.s $f12, $f18, $f4 +/* 0ACA98 7F077F68 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0ACA9C 7F077F6C C7B00020 */ lwc1 $f16, 0x20($sp) +/* 0ACAA0 7F077F70 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0ACAA4 7F077F74 46003083 */ div.s $f2, $f6, $f0 +/* 0ACAA8 7F077F78 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACAAC 7F077F7C 44819000 */ mtc1 $at, $f18 +/* 0ACAB0 7F077F80 8FA5002C */ lw $a1, 0x2c($sp) +/* 0ACAB4 7F077F84 46028282 */ mul.s $f10, $f16, $f2 +/* 0ACAB8 7F077F88 00000000 */ nop +/* 0ACABC 7F077F8C 46027202 */ mul.s $f8, $f14, $f2 +/* 0ACAC0 7F077F90 00000000 */ nop +/* 0ACAC4 7F077F94 46029102 */ mul.s $f4, $f18, $f2 +/* 0ACAC8 7F077F98 E4AA0000 */ swc1 $f10, ($a1) +/* 0ACACC 7F077F9C E4A80004 */ swc1 $f8, 4($a1) +/* 0ACAD0 7F077FA0 E4A40008 */ swc1 $f4, 8($a1) +/* 0ACAD4 7F077FA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACAD8 7F077FA8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0ACADC 7F077FAC 03E00008 */ jr $ra +/* 0ACAE0 7F077FB0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F077FB4(void *arg0, s32 arg1, void *arg2) { + // Node 0 + arg2->unk4 = (f32) ((arg0->unk4 * arg1) * pPlayer->c_scaley); + *arg2 = (f32) ((*arg0 * arg1) * pPlayer->c_scalex); + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077FB4 +/* 0ACAE4 7F077FB4 44856000 */ mtc1 $a1, $f12 +/* 0ACAE8 7F077FB8 C4840004 */ lwc1 $f4, 4($a0) +/* 0ACAEC 7F077FBC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACAF0 7F077FC0 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0ACAF4 7F077FC4 460C2182 */ mul.s $f6, $f4, $f12 +/* 0ACAF8 7F077FC8 8C4E0000 */ lw $t6, ($v0) +/* 0ACAFC 7F077FCC C5C810B8 */ lwc1 $f8, 0x10b8($t6) +/* 0ACB00 7F077FD0 46083282 */ mul.s $f10, $f6, $f8 +/* 0ACB04 7F077FD4 E4CA0004 */ swc1 $f10, 4($a2) +/* 0ACB08 7F077FD8 C4900000 */ lwc1 $f16, ($a0) +/* 0ACB0C 7F077FDC 8C4F0000 */ lw $t7, ($v0) +/* 0ACB10 7F077FE0 460C8482 */ mul.s $f18, $f16, $f12 +/* 0ACB14 7F077FE4 C5E410B4 */ lwc1 $f4, 0x10b4($t7) +/* 0ACB18 7F077FE8 46049182 */ mul.s $f6, $f18, $f4 +/* 0ACB1C 7F077FEC 03E00008 */ jr $ra +/* 0ACB20 7F077FF0 E4C60000 */ swc1 $f6, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F077FF4(void *arg0, void *arg1) { + f32 temp_f0; + + // Node 0 + temp_f0 = (1.0f / arg0->unk8); + arg1->unk4 = (f32) (((arg0->unk4 * temp_f0) * pPlayer->c_recipscaley) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - ((*arg0 * temp_f0) * pPlayer->c_recipscalex)); + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077FF4 +/* 0ACB24 7F077FF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACB28 7F077FF8 44812000 */ mtc1 $at, $f4 +/* 0ACB2C 7F077FFC C4860008 */ lwc1 $f6, 8($a0) +/* 0ACB30 7F078000 C4880004 */ lwc1 $f8, 4($a0) +/* 0ACB34 7F078004 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACB38 7F078008 46062003 */ div.s $f0, $f4, $f6 +/* 0ACB3C 7F07800C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACB40 7F078010 8C620000 */ lw $v0, ($v1) +/* 0ACB44 7F078014 C45010C0 */ lwc1 $f16, 0x10c0($v0) +/* 0ACB48 7F078018 C444109C */ lwc1 $f4, 0x109c($v0) +/* 0ACB4C 7F07801C C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0ACB50 7F078020 46004282 */ mul.s $f10, $f8, $f0 +/* 0ACB54 7F078024 46062200 */ add.s $f8, $f4, $f6 +/* 0ACB58 7F078028 46105482 */ mul.s $f18, $f10, $f16 +/* 0ACB5C 7F07802C 46089280 */ add.s $f10, $f18, $f8 +/* 0ACB60 7F078030 E4AA0004 */ swc1 $f10, 4($a1) +/* 0ACB64 7F078034 C4920000 */ lwc1 $f18, ($a0) +/* 0ACB68 7F078038 8C620000 */ lw $v0, ($v1) +/* 0ACB6C 7F07803C 46009202 */ mul.s $f8, $f18, $f0 +/* 0ACB70 7F078040 C4501098 */ lwc1 $f16, 0x1098($v0) +/* 0ACB74 7F078044 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0ACB78 7F078048 C44A10BC */ lwc1 $f10, 0x10bc($v0) +/* 0ACB7C 7F07804C 46048180 */ add.s $f6, $f16, $f4 +/* 0ACB80 7F078050 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACB84 7F078054 46103101 */ sub.s $f4, $f6, $f16 +/* 0ACB88 7F078058 03E00008 */ jr $ra +/* 0ACB8C 7F07805C E4A40000 */ swc1 $f4, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078060(void *arg0, void *arg1) { + f32 phi_f2; + + // Node 0 + if (0.0f == arg0->unk8) + { + // Node 1 + phi_f2 = *(void *)0x80050000; + } + else + { + // Node 2 + phi_f2 = (1.0f / arg0->unk8); + } + // Node 3 + arg1->unk4 = (f32) (((arg0->unk4 * phi_f2) * pPlayer->c_recipscaley) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - ((*arg0 * phi_f2) * pPlayer->c_recipscalex)); + return pPlayer; +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FAC +.word 0xe0ad78ec /*-1.0e20*/ +.text +glabel sub_GAME_7F078060 +/* 0ACB90 7F078060 C4800008 */ lwc1 $f0, 8($a0) +/* 0ACB94 7F078064 44802000 */ mtc1 $zero, $f4 +/* 0ACB98 7F078068 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACB9C 7F07806C 46002032 */ c.eq.s $f4, $f0 +/* 0ACBA0 7F078070 00000000 */ nop +/* 0ACBA4 7F078074 45020005 */ bc1fl .L7F07808C +/* 0ACBA8 7F078078 44813000 */ mtc1 $at, $f6 +/* 0ACBAC 7F07807C 3C018005 */ lui $at, %hi(D_80054FAC) +/* 0ACBB0 7F078080 10000004 */ b .L7F078094 +/* 0ACBB4 7F078084 C4224FAC */ lwc1 $f2, %lo(D_80054FAC)($at) +/* 0ACBB8 7F078088 44813000 */ mtc1 $at, $f6 +.L7F07808C: +/* 0ACBBC 7F07808C 00000000 */ nop +/* 0ACBC0 7F078090 46003083 */ div.s $f2, $f6, $f0 +.L7F078094: +/* 0ACBC4 7F078094 C4880004 */ lwc1 $f8, 4($a0) +/* 0ACBC8 7F078098 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACBCC 7F07809C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACBD0 7F0780A0 46024282 */ mul.s $f10, $f8, $f2 +/* 0ACBD4 7F0780A4 8C620000 */ lw $v0, ($v1) +/* 0ACBD8 7F0780A8 C45010C0 */ lwc1 $f16, 0x10c0($v0) +/* 0ACBDC 7F0780AC C444109C */ lwc1 $f4, 0x109c($v0) +/* 0ACBE0 7F0780B0 C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0ACBE4 7F0780B4 46105482 */ mul.s $f18, $f10, $f16 +/* 0ACBE8 7F0780B8 46062200 */ add.s $f8, $f4, $f6 +/* 0ACBEC 7F0780BC 46089280 */ add.s $f10, $f18, $f8 +/* 0ACBF0 7F0780C0 E4AA0004 */ swc1 $f10, 4($a1) +/* 0ACBF4 7F0780C4 C4920000 */ lwc1 $f18, ($a0) +/* 0ACBF8 7F0780C8 8C620000 */ lw $v0, ($v1) +/* 0ACBFC 7F0780CC 46029202 */ mul.s $f8, $f18, $f2 +/* 0ACC00 7F0780D0 C4501098 */ lwc1 $f16, 0x1098($v0) +/* 0ACC04 7F0780D4 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0ACC08 7F0780D8 C44A10BC */ lwc1 $f10, 0x10bc($v0) +/* 0ACC0C 7F0780DC 46048180 */ add.s $f6, $f16, $f4 +/* 0ACC10 7F0780E0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACC14 7F0780E4 46103101 */ sub.s $f4, $f6, $f16 +/* 0ACC18 7F0780E8 03E00008 */ jr $ra +/* 0ACC1C 7F0780EC E4A40000 */ swc1 $f4, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0780F0(void *arg0, s32 arg1, void *arg2) { + f32 temp_f0; + + // Node 0 + temp_f0 = (1.0f / arg1); + arg2->unk4 = (f32) ((arg0->unk4 * temp_f0) * pPlayer->c_recipscaley); + *arg2 = (f32) ((*arg0 * temp_f0) * pPlayer->c_recipscalex); + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0780F0 +/* 0ACC20 7F0780F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACC24 7F0780F4 44856000 */ mtc1 $a1, $f12 +/* 0ACC28 7F0780F8 44812000 */ mtc1 $at, $f4 +/* 0ACC2C 7F0780FC C4860004 */ lwc1 $f6, 4($a0) +/* 0ACC30 7F078100 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACC34 7F078104 460C2003 */ div.s $f0, $f4, $f12 +/* 0ACC38 7F078108 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0ACC3C 7F07810C 8C4E0000 */ lw $t6, ($v0) +/* 0ACC40 7F078110 C5CA10C0 */ lwc1 $f10, 0x10c0($t6) +/* 0ACC44 7F078114 46003202 */ mul.s $f8, $f6, $f0 +/* 0ACC48 7F078118 00000000 */ nop +/* 0ACC4C 7F07811C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACC50 7F078120 E4D00004 */ swc1 $f16, 4($a2) +/* 0ACC54 7F078124 C4920000 */ lwc1 $f18, ($a0) +/* 0ACC58 7F078128 8C4F0000 */ lw $t7, ($v0) +/* 0ACC5C 7F07812C 46009102 */ mul.s $f4, $f18, $f0 +/* 0ACC60 7F078130 C5E610BC */ lwc1 $f6, 0x10bc($t7) +/* 0ACC64 7F078134 46062202 */ mul.s $f8, $f4, $f6 +/* 0ACC68 7F078138 03E00008 */ jr $ra +/* 0ACC6C 7F07813C E4C80000 */ swc1 $f8, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078140(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 sp1C; + f32 sp2C; + f32 sp30; + f32 temp_f14; + f32 temp_f4; + f32 temp_f8; + f32 temp_f2; + + // Node 0 + sp1C = sinf(((arg3 * *(void *)0x80050000) / 360.0f), arg3); + temp_f14 = (sp1C / (cosf(sp18) * pPlayer->c_halfheight)); + temp_f4 = ((pPlayer->c_halfheight - (arg0->unk4 - pPlayer->c_screentop)) * temp_f14); + sp2C = temp_f4; + temp_f8 = (((*arg0 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * (((temp_f14 * arg4) * pPlayer->c_halfheight) / pPlayer->c_halfwidth)); + sp30 = temp_f8; + temp_f2 = (arg2 / sqrtf((((temp_f8 * temp_f8) + (temp_f4 * temp_f4)) + (-1.0f * -1.0f)), temp_f14)); + *arg1 = (f32) (sp30 * temp_f2); + arg1->unk4 = (f32) (sp2C * temp_f2); + arg1->unk8 = (f32) (-1.0f * temp_f2); + return arg1; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FB0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F078140 +/* 0ACC70 7F078140 3C018005 */ lui $at, %hi(D_80054FB0) +/* 0ACC74 7F078144 44877000 */ mtc1 $a3, $f14 +/* 0ACC78 7F078148 C4244FB0 */ lwc1 $f4, %lo(D_80054FB0)($at) +/* 0ACC7C 7F07814C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ACC80 7F078150 44814000 */ mtc1 $at, $f8 +/* 0ACC84 7F078154 46047182 */ mul.s $f6, $f14, $f4 +/* 0ACC88 7F078158 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0ACC8C 7F07815C AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACC90 7F078160 AFA40038 */ sw $a0, 0x38($sp) +/* 0ACC94 7F078164 AFA5003C */ sw $a1, 0x3c($sp) +/* 0ACC98 7F078168 AFA60040 */ sw $a2, 0x40($sp) +/* 0ACC9C 7F07816C 46083303 */ div.s $f12, $f6, $f8 +/* 0ACCA0 7F078170 0FC15FAB */ jal sinf +/* 0ACCA4 7F078174 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0ACCA8 7F078178 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0ACCAC 7F07817C 0FC15FA8 */ jal cosf +/* 0ACCB0 7F078180 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0ACCB4 7F078184 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACCB8 7F078188 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ACCBC 7F07818C C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0ACCC0 7F078190 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0ACCC4 7F078194 C44210B0 */ lwc1 $f2, 0x10b0($v0) +/* 0ACCC8 7F078198 8FA30038 */ lw $v1, 0x38($sp) +/* 0ACCCC 7F07819C C45010AC */ lwc1 $f16, 0x10ac($v0) +/* 0ACCD0 7F0781A0 46020102 */ mul.s $f4, $f0, $f2 +/* 0ACCD4 7F0781A4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACCD8 7F0781A8 46045383 */ div.s $f14, $f10, $f4 +/* 0ACCDC 7F0781AC C4640004 */ lwc1 $f4, 4($v1) +/* 0ACCE0 7F0781B0 46067202 */ mul.s $f8, $f14, $f6 +/* 0ACCE4 7F0781B4 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACCE8 7F0781B8 46024282 */ mul.s $f10, $f8, $f2 +/* 0ACCEC 7F0781BC 46062201 */ sub.s $f8, $f4, $f6 +/* 0ACCF0 7F0781C0 46105483 */ div.s $f18, $f10, $f16 +/* 0ACCF4 7F0781C4 46081281 */ sub.s $f10, $f2, $f8 +/* 0ACCF8 7F0781C8 460E5102 */ mul.s $f4, $f10, $f14 +/* 0ACCFC 7F0781CC E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0ACD00 7F0781D0 C4481098 */ lwc1 $f8, 0x1098($v0) +/* 0ACD04 7F0781D4 C4660000 */ lwc1 $f6, ($v1) +/* 0ACD08 7F0781D8 46083281 */ sub.s $f10, $f6, $f8 +/* 0ACD0C 7F0781DC 46105181 */ sub.s $f6, $f10, $f16 +/* 0ACD10 7F0781E0 46123202 */ mul.s $f8, $f6, $f18 +/* 0ACD14 7F0781E4 00000000 */ nop +/* 0ACD18 7F0781E8 46084282 */ mul.s $f10, $f8, $f8 +/* 0ACD1C 7F0781EC E7A80030 */ swc1 $f8, 0x30($sp) +/* 0ACD20 7F0781F0 46042182 */ mul.s $f6, $f4, $f4 +/* 0ACD24 7F0781F4 44812000 */ mtc1 $at, $f4 +/* 0ACD28 7F0781F8 46065200 */ add.s $f8, $f10, $f6 +/* 0ACD2C 7F0781FC 44815000 */ mtc1 $at, $f10 +/* 0ACD30 7F078200 00000000 */ nop +/* 0ACD34 7F078204 460A2182 */ mul.s $f6, $f4, $f10 +/* 0ACD38 7F078208 0C007DF8 */ jal sqrtf +/* 0ACD3C 7F07820C 46064300 */ add.s $f12, $f8, $f6 +/* 0ACD40 7F078210 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0ACD44 7F078214 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0ACD48 7F078218 8FA2003C */ lw $v0, 0x3c($sp) +/* 0ACD4C 7F07821C 46002083 */ div.s $f2, $f4, $f0 +/* 0ACD50 7F078220 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACD54 7F078224 46025202 */ mul.s $f8, $f10, $f2 +/* 0ACD58 7F078228 44815000 */ mtc1 $at, $f10 +/* 0ACD5C 7F07822C E4480000 */ swc1 $f8, ($v0) +/* 0ACD60 7F078230 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0ACD64 7F078234 46023102 */ mul.s $f4, $f6, $f2 +/* 0ACD68 7F078238 00000000 */ nop +/* 0ACD6C 7F07823C 46025202 */ mul.s $f8, $f10, $f2 +/* 0ACD70 7F078240 E4440004 */ swc1 $f4, 4($v0) +/* 0ACD74 7F078244 E4480008 */ swc1 $f8, 8($v0) +/* 0ACD78 7F078248 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACD7C 7F07824C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0ACD80 7F078250 03E00008 */ jr $ra +/* 0ACD84 7F078254 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078258(void *arg0, void *arg1, f32 arg2, f32 arg3) { + f32 sp20; + f32 temp_f12; + + // Node 0 + sp20 = cosf(((arg2 * D_80054FB4) / 360.0f), arg2); + temp_f12 = ((sp20 * pPlayer->c_halfheight) / (arg0->unk8 * sinf(sp1C))); + arg1->unk4 = (f32) ((arg0->unk4 * temp_f12) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - (*arg0 * ((pPlayer->c_halfwidth * temp_f12) / (arg3 * pPlayer->c_halfheight)))); + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FB4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054FB8 +.word 0 +glabel D_80054FBC +.word 0 + +/*D:80054FC0*/ +glabel a8s +/*"%8s"*/ +.word 0x25387300 + +glabel aX4_0f +/*"x %4.0f"*/ +.word 0x78202534 +.word 0x2E306600 + +glabel aY4_0f +/*"y %4.0f"*/ +.word 0x79202534 +.word 0x2E306600 + +glabel aZ4_0f +/*"z %4.0f"*/ +.word 0x7A202534 +.word 0x2E306600 + +glabel aS3d +/*"%s %3d"*/ +.word 0x25732025 +.word 0x33640000 + +.text +glabel sub_GAME_7F078258 +/* 0ACD88 7F078258 3C018005 */ lui $at, %hi(D_80054FB4) +/* 0ACD8C 7F07825C 44867000 */ mtc1 $a2, $f14 +/* 0ACD90 7F078260 C4244FB4 */ lwc1 $f4, %lo(D_80054FB4)($at) +/* 0ACD94 7F078264 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ACD98 7F078268 44814000 */ mtc1 $at, $f8 +/* 0ACD9C 7F07826C 46047182 */ mul.s $f6, $f14, $f4 +/* 0ACDA0 7F078270 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0ACDA4 7F078274 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACDA8 7F078278 AFA40030 */ sw $a0, 0x30($sp) +/* 0ACDAC 7F07827C AFA50034 */ sw $a1, 0x34($sp) +/* 0ACDB0 7F078280 AFA7003C */ sw $a3, 0x3c($sp) +/* 0ACDB4 7F078284 46083303 */ div.s $f12, $f6, $f8 +/* 0ACDB8 7F078288 0FC15FA8 */ jal cosf +/* 0ACDBC 7F07828C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0ACDC0 7F078290 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0ACDC4 7F078294 0FC15FAB */ jal sinf +/* 0ACDC8 7F078298 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0ACDCC 7F07829C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACDD0 7F0782A0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACDD4 7F0782A4 8C620000 */ lw $v0, ($v1) +/* 0ACDD8 7F0782A8 8FA40030 */ lw $a0, 0x30($sp) +/* 0ACDDC 7F0782AC C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0ACDE0 7F0782B0 C44210B0 */ lwc1 $f2, 0x10b0($v0) +/* 0ACDE4 7F0782B4 C4920008 */ lwc1 $f18, 8($a0) +/* 0ACDE8 7F0782B8 C44610AC */ lwc1 $f6, 0x10ac($v0) +/* 0ACDEC 7F0782BC 46025402 */ mul.s $f16, $f10, $f2 +/* 0ACDF0 7F0782C0 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0ACDF4 7F0782C4 8FA50034 */ lw $a1, 0x34($sp) +/* 0ACDF8 7F0782C8 46009102 */ mul.s $f4, $f18, $f0 +/* 0ACDFC 7F0782CC 46048303 */ div.s $f12, $f16, $f4 +/* 0ACE00 7F0782D0 C4900004 */ lwc1 $f16, 4($a0) +/* 0ACE04 7F0782D4 460C3202 */ mul.s $f8, $f6, $f12 +/* 0ACE08 7F0782D8 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACE0C 7F0782DC 46025482 */ mul.s $f18, $f10, $f2 +/* 0ACE10 7F0782E0 46023280 */ add.s $f10, $f6, $f2 +/* 0ACE14 7F0782E4 460C8102 */ mul.s $f4, $f16, $f12 +/* 0ACE18 7F0782E8 46124383 */ div.s $f14, $f8, $f18 +/* 0ACE1C 7F0782EC 460A2200 */ add.s $f8, $f4, $f10 +/* 0ACE20 7F0782F0 E4A80004 */ swc1 $f8, 4($a1) +/* 0ACE24 7F0782F4 8C620000 */ lw $v0, ($v1) +/* 0ACE28 7F0782F8 C4840000 */ lwc1 $f4, ($a0) +/* 0ACE2C 7F0782FC C4521098 */ lwc1 $f18, 0x1098($v0) +/* 0ACE30 7F078300 C45010AC */ lwc1 $f16, 0x10ac($v0) +/* 0ACE34 7F078304 46109180 */ add.s $f6, $f18, $f16 +/* 0ACE38 7F078308 460E2282 */ mul.s $f10, $f4, $f14 +/* 0ACE3C 7F07830C 460A3201 */ sub.s $f8, $f6, $f10 +/* 0ACE40 7F078310 E4A80000 */ swc1 $f8, ($a1) +/* 0ACE44 7F078314 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACE48 7F078318 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0ACE4C 7F07831C 03E00008 */ jr $ra +/* 0ACE50 7F078320 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_field_10C4(s32 arg0) { + pPlayer->field_10C4 = arg0; +} + +s32 get_BONDdata_field_10C4(void) { + return pPlayer->field_10C4; +} + +void set_BONDdata_field_10C8(s32 arg0) { + pPlayer->field_10C8 = arg0; +} + +s32 get_BONDdata_field_10C8(void) { + return pPlayer->field_10C8; +} + +void set_BONDdata_field_10D8(s32 arg0) { + pPlayer->field_10D8 = arg0; +} + +s32 get_BONDdata_field_10D8(void) { + return pPlayer->field_10D8; +} + +void set_BONDdata_field_10E0(s32 arg0) { + pPlayer->field_10E0 = arg0; +} + +s32 get_BONDdata_field_10E0(void) { + // Node 0 + return pPlayer->field_10E0; +} + +void *copy_BONDdata_field_10CC_to_10E8_set_10CC(s32 arg0) { + pPlayer->field_10E8 = (s32) pPlayer->field_10CC; + pPlayer->field_10CC = arg0; +} + +s32 get_BONDdata_field_10CC(void) { + return pPlayer->field_10CC; +} + +void set_BONDdata_field_10DC(s32 arg0) { + pPlayer->field_10DC = arg0; +} + +s32 get_BONDdata_field_10DC(void) { + return pPlayer->field_10DC; +} + +s32 sub_GAME_7F0783F4(void) { + return pPlayer->field_10E8; +} + +void sub_GAME_7F078404(s32 arg0) { + pPlayer->field_10D0 = arg0; +} + +s32 sub_GAME_7F078414(void) { + return pPlayer->field_10D0; +} + +void sub_GAME_7F078424(s32 arg0) { + pPlayer->field_10EC = pPlayer->field_10D4; + pPlayer->field_10D4 = arg0; +} + +s32 sub_GAME_7F078444(void) { + return pPlayer->field_10D4; +} + +s32 sub_GAME_7F078454(void) { + return pPlayer->field_10EC; +} + +void sub_GAME_7F078464(s32 arg0) { + pPlayer->field_10E4 = arg0; +} + +s32 sub_GAME_7F078474(void) { + return pPlayer->field_10E4; +} + +f32 getPlayer_c_lodscalez(void) +{ + return pPlayer->c_lodscalez; +} + +u32 getPlayer_c_lodscalezu32(void) +{ + return pPlayer->c_lodscalezu32; +} + +f32 getPlayer_c_screenwidth(void) +{ + return pPlayer->c_screenwidth; +} + +f32 getPlayer_c_screenheight(void) +{ + return pPlayer->c_screenheight; +} + +f32 getPlayer_c_screenleft(void) +{ + return pPlayer->c_screenleft; +} + +f32 getPlayer_c_screentop(void) +{ + return pPlayer->c_screentop; +} + +f32 getPlayer_c_perspfovy(void) +{ + return pPlayer->c_perspfovy; +} + +f32 getPlayer_c_perspaspect(void) +{ + return pPlayer->c_perspaspect; +} + + +#ifdef NONMATCHING +void proc_7F078504(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameratopnorm).x; + param_1->y = (pPlayer->c_cameratopnorm).y; + param_1->z = (pPlayer->c_cameratopnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078504 +/* 0AD034 7F078504 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD038 7F078508 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD03C 7F07850C 8C4E0000 */ lw $t6, ($v0) +/* 0AD040 7F078510 C5C41100 */ lwc1 $f4, 0x1100($t6) +/* 0AD044 7F078514 E4840000 */ swc1 $f4, ($a0) +/* 0AD048 7F078518 8C4F0000 */ lw $t7, ($v0) +/* 0AD04C 7F07851C C5E61104 */ lwc1 $f6, 0x1104($t7) +/* 0AD050 7F078520 E4860004 */ swc1 $f6, 4($a0) +/* 0AD054 7F078524 8C580000 */ lw $t8, ($v0) +/* 0AD058 7F078528 C7081108 */ lwc1 $f8, 0x1108($t8) +/* 0AD05C 7F07852C 03E00008 */ jr $ra +/* 0AD060 7F078530 E4880008 */ swc1 $f8, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078534(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameratopnorm).x; + param_1->y = -(pPlayer->c_cameratopnorm).y; + param_1->z = (pPlayer->c_cameratopnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078534 +/* 0AD064 7F078534 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD068 7F078538 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD06C 7F07853C 8C4E0000 */ lw $t6, ($v0) +/* 0AD070 7F078540 C5C41100 */ lwc1 $f4, 0x1100($t6) +/* 0AD074 7F078544 E4840000 */ swc1 $f4, ($a0) +/* 0AD078 7F078548 8C4F0000 */ lw $t7, ($v0) +/* 0AD07C 7F07854C C5E61104 */ lwc1 $f6, 0x1104($t7) +/* 0AD080 7F078550 46003207 */ neg.s $f8, $f6 +/* 0AD084 7F078554 E4880004 */ swc1 $f8, 4($a0) +/* 0AD088 7F078558 8C580000 */ lw $t8, ($v0) +/* 0AD08C 7F07855C C70A1108 */ lwc1 $f10, 0x1108($t8) +/* 0AD090 7F078560 03E00008 */ jr $ra +/* 0AD094 7F078564 E48A0008 */ swc1 $f10, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078568(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameraleftnorm).x; + param_1->y = (pPlayer->c_cameraleftnorm).y; + param_1->z = (pPlayer->c_cameraleftnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078568 +/* 0AD098 7F078568 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD09C 7F07856C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD0A0 7F078570 8C4E0000 */ lw $t6, ($v0) +/* 0AD0A4 7F078574 C5C4110C */ lwc1 $f4, 0x110c($t6) +/* 0AD0A8 7F078578 E4840000 */ swc1 $f4, ($a0) +/* 0AD0AC 7F07857C 8C4F0000 */ lw $t7, ($v0) +/* 0AD0B0 7F078580 C5E61110 */ lwc1 $f6, 0x1110($t7) +/* 0AD0B4 7F078584 E4860004 */ swc1 $f6, 4($a0) +/* 0AD0B8 7F078588 8C580000 */ lw $t8, ($v0) +/* 0AD0BC 7F07858C C7081114 */ lwc1 $f8, 0x1114($t8) +/* 0AD0C0 7F078590 03E00008 */ jr $ra +/* 0AD0C4 7F078594 E4880008 */ swc1 $f8, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078598(xyzpoint *param_1) +{ + param_1->x = -(pPlayer->c_cameraleftnorm).x; + param_1->y = (pPlayer->c_cameraleftnorm).y; + param_1->z = (pPlayer->c_cameraleftnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078598 +/* 0AD0C8 7F078598 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD0CC 7F07859C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD0D0 7F0785A0 8C4E0000 */ lw $t6, ($v0) +/* 0AD0D4 7F0785A4 C5C4110C */ lwc1 $f4, 0x110c($t6) +/* 0AD0D8 7F0785A8 46002187 */ neg.s $f6, $f4 +/* 0AD0DC 7F0785AC E4860000 */ swc1 $f6, ($a0) +/* 0AD0E0 7F0785B0 8C4F0000 */ lw $t7, ($v0) +/* 0AD0E4 7F0785B4 C5E81110 */ lwc1 $f8, 0x1110($t7) +/* 0AD0E8 7F0785B8 E4880004 */ swc1 $f8, 4($a0) +/* 0AD0EC 7F0785BC 8C580000 */ lw $t8, ($v0) +/* 0AD0F0 7F0785C0 C70A1114 */ lwc1 $f10, 0x1114($t8) +/* 0AD0F4 7F0785C4 03E00008 */ jr $ra +/* 0AD0F8 7F0785C8 E48A0008 */ swc1 $f10, 8($a0) +) +#endif + + + + + + +f32 getPlayer_c_perspnear(void) +{ + return pPlayer->c_perspnear; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0785DC(void) +{ + f32 sp28; + f32 sp24; + f32 temp_f14; + f32 temp_f14_2; + f32 temp_f16; + f32 temp_f16_2; + f32 temp_f18; + f32 temp_f18_2; + f32 temp_f20; + f32 temp_f20_2; + f32 temp_f2; + f32 temp_f2_2; + + temp_f2 = pPlayer->c_halfheight * pPlayer->c_scaley; + sp24 = temp_f2; + temp_f20 = 1.0f / sqrtf((temp_f2 * temp_f2) + 1.0f); + temp_f2_2 = temp_f2 * temp_f20; + temp_f16 = -temp_f20; + temp_f18 = -temp_f16; + flt_CODE_bss_80079940.unk0 = (f32) ((pPlayer->unk10D4->unk20 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk10)); + flt_CODE_bss_80079940.unk4 = (f32) ((pPlayer->unk10D4->unk24 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk14)); + flt_CODE_bss_80079940.unk8 = (f32) ((pPlayer->unk10D4->unk28 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk18)); + flt_CODE_bss_8007994C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079940.unk8) + ((flt_CODE_bss_80079940.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079940.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079950.unk0 = (f32) ((pPlayer->unk10D4->unk20 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk10)); + flt_CODE_bss_80079950.unk4 = (f32) ((pPlayer->unk10D4->unk24 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk14)); + flt_CODE_bss_80079950.unk8 = (f32) ((pPlayer->unk10D4->unk28 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk18)); + flt_CODE_bss_8007995C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079950.unk8) + ((flt_CODE_bss_80079950.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079950.unk4 * pPlayer->unk10D4->unk34))); + temp_f14 = -pPlayer->unk10AC * pPlayer->unk10B4; + sp28 = temp_f14; + temp_f20_2 = 1.0f / sqrtf((temp_f14 * temp_f14) + 1.0f, temp_f14, &flt_CODE_bss_80079940, &flt_CODE_bss_80079950); + temp_f14_2 = temp_f14 * temp_f20_2; + temp_f16_2 = -temp_f20_2; + temp_f18_2 = -temp_f16_2; + flt_CODE_bss_80079960.unk0 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk0) - (pPlayer->unk10D4->unk20 * temp_f14_2)); + flt_CODE_bss_80079960.unk4 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk4) - (pPlayer->unk10D4->unk24 * temp_f14_2)); + flt_CODE_bss_80079960.unk8 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk8) - (pPlayer->unk10D4->unk28 * temp_f14_2)); + flt_CODE_bss_8007996C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079960.unk8) + ((flt_CODE_bss_80079960.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079960.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079970.unk0 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk0) - (pPlayer->unk10D4->unk20 * temp_f14_2)); + flt_CODE_bss_80079970.unk4 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk4) - (pPlayer->unk10D4->unk24 * temp_f14_2)); + flt_CODE_bss_80079970.unk8 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk8) - (pPlayer->unk10D4->unk28 * temp_f14_2)); + flt_CODE_bss_8007997C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079970.unk8) + ((flt_CODE_bss_80079970.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079970.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079980 = (f32) ((pPlayer->unk10D4->unk38 * pPlayer->unk10D4->unk28) + ((pPlayer->unk10D4->unk20 * pPlayer->unk10D4->unk30) + (pPlayer->unk10D4->unk24 * pPlayer->unk10D4->unk34))); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0785DC +/* 0AD10C 7F0785DC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD110 7F0785E0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD114 7F0785E4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0AD118 7F0785E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AD11C 7F0785EC F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0AD120 7F0785F0 C46610B8 */ lwc1 $f6, 0x10b8($v1) +/* 0AD124 7F0785F4 C46410B0 */ lwc1 $f4, 0x10b0($v1) +/* 0AD128 7F0785F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD12C 7F0785FC 44815000 */ mtc1 $at, $f10 +/* 0AD130 7F078600 46062082 */ mul.s $f2, $f4, $f6 +/* 0AD134 7F078604 00000000 */ nop +/* 0AD138 7F078608 46021202 */ mul.s $f8, $f2, $f2 +/* 0AD13C 7F07860C E7A20024 */ swc1 $f2, 0x24($sp) +/* 0AD140 7F078610 0C007DF8 */ jal sqrtf +/* 0AD144 7F078614 460A4300 */ add.s $f12, $f8, $f10 +/* 0AD148 7F078618 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD14C 7F07861C 44812000 */ mtc1 $at, $f4 +/* 0AD150 7F078620 C7A20024 */ lwc1 $f2, 0x24($sp) +/* 0AD154 7F078624 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD158 7F078628 46002503 */ div.s $f20, $f4, $f0 +/* 0AD15C 7F07862C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD160 7F078630 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079940) +/* 0AD164 7F078634 24849940 */ addiu $a0, %lo(flt_CODE_bss_80079940) # addiu $a0, $a0, -0x66c0 +/* 0AD168 7F078638 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD16C 7F07863C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD170 7F078640 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079950) +/* 0AD174 7F078644 C4460020 */ lwc1 $f6, 0x20($v0) +/* 0AD178 7F078648 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AD17C 7F07864C 24A59950 */ addiu $a1, %lo(flt_CODE_bss_80079950) # addiu $a1, $a1, -0x66b0 +/* 0AD180 7F078650 46141082 */ mul.s $f2, $f2, $f20 +/* 0AD184 7F078654 4600A407 */ neg.s $f16, $f20 +/* 0AD188 7F078658 46008487 */ neg.s $f18, $f16 +/* 0AD18C 7F07865C 46023202 */ mul.s $f8, $f6, $f2 +/* 0AD190 7F078660 00000000 */ nop +/* 0AD194 7F078664 460A9102 */ mul.s $f4, $f18, $f10 +/* 0AD198 7F078668 46044180 */ add.s $f6, $f8, $f4 +/* 0AD19C 7F07866C E4860000 */ swc1 $f6, ($a0) +/* 0AD1A0 7F078670 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1A4 7F078674 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0AD1A8 7F078678 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0AD1AC 7F07867C 46025202 */ mul.s $f8, $f10, $f2 +/* 0AD1B0 7F078680 00000000 */ nop +/* 0AD1B4 7F078684 46049182 */ mul.s $f6, $f18, $f4 +/* 0AD1B8 7F078688 46064280 */ add.s $f10, $f8, $f6 +/* 0AD1BC 7F07868C E48A0004 */ swc1 $f10, 4($a0) +/* 0AD1C0 7F078690 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1C4 7F078694 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0AD1C8 7F078698 C4460018 */ lwc1 $f6, 0x18($v0) +/* 0AD1CC 7F07869C 46022202 */ mul.s $f8, $f4, $f2 +/* 0AD1D0 7F0786A0 00000000 */ nop +/* 0AD1D4 7F0786A4 46069282 */ mul.s $f10, $f18, $f6 +/* 0AD1D8 7F0786A8 C4860000 */ lwc1 $f6, ($a0) +/* 0AD1DC 7F0786AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0AD1E0 7F0786B0 E4840008 */ swc1 $f4, 8($a0) +/* 0AD1E4 7F0786B4 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1E8 7F0786B8 C4840004 */ lwc1 $f4, 4($a0) +/* 0AD1EC 7F0786BC C4480030 */ lwc1 $f8, 0x30($v0) +/* 0AD1F0 7F0786C0 46083282 */ mul.s $f10, $f6, $f8 +/* 0AD1F4 7F0786C4 C4460034 */ lwc1 $f6, 0x34($v0) +/* 0AD1F8 7F0786C8 46062202 */ mul.s $f8, $f4, $f6 +/* 0AD1FC 7F0786CC C4460038 */ lwc1 $f6, 0x38($v0) +/* 0AD200 7F0786D0 46085100 */ add.s $f4, $f10, $f8 +/* 0AD204 7F0786D4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0AD208 7F0786D8 460A3202 */ mul.s $f8, $f6, $f10 +/* 0AD20C 7F0786DC 46044180 */ add.s $f6, $f8, $f4 +/* 0AD210 7F0786E0 E426994C */ swc1 $f6, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD214 7F0786E4 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD218 7F0786E8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD21C 7F0786EC C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0AD220 7F0786F0 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0AD224 7F0786F4 46025202 */ mul.s $f8, $f10, $f2 +/* 0AD228 7F0786F8 00000000 */ nop +/* 0AD22C 7F0786FC 46048182 */ mul.s $f6, $f16, $f4 +/* 0AD230 7F078700 46064280 */ add.s $f10, $f8, $f6 +/* 0AD234 7F078704 E4AA0000 */ swc1 $f10, ($a1) +/* 0AD238 7F078708 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD23C 7F07870C C4440024 */ lwc1 $f4, 0x24($v0) +/* 0AD240 7F078710 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0AD244 7F078714 46022202 */ mul.s $f8, $f4, $f2 +/* 0AD248 7F078718 00000000 */ nop +/* 0AD24C 7F07871C 46068282 */ mul.s $f10, $f16, $f6 +/* 0AD250 7F078720 460A4100 */ add.s $f4, $f8, $f10 +/* 0AD254 7F078724 E4A40004 */ swc1 $f4, 4($a1) +/* 0AD258 7F078728 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD25C 7F07872C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD260 7F078730 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0AD264 7F078734 46023202 */ mul.s $f8, $f6, $f2 +/* 0AD268 7F078738 00000000 */ nop +/* 0AD26C 7F07873C 460A8102 */ mul.s $f4, $f16, $f10 +/* 0AD270 7F078740 C4AA0000 */ lwc1 $f10, ($a1) +/* 0AD274 7F078744 46044180 */ add.s $f6, $f8, $f4 +/* 0AD278 7F078748 E4A60008 */ swc1 $f6, 8($a1) +/* 0AD27C 7F07874C 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD280 7F078750 C4A60004 */ lwc1 $f6, 4($a1) +/* 0AD284 7F078754 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0AD288 7F078758 46085102 */ mul.s $f4, $f10, $f8 +/* 0AD28C 7F07875C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0AD290 7F078760 460A3202 */ mul.s $f8, $f6, $f10 +/* 0AD294 7F078764 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0AD298 7F078768 46082180 */ add.s $f6, $f4, $f8 +/* 0AD29C 7F07876C C4A40008 */ lwc1 $f4, 8($a1) +/* 0AD2A0 7F078770 46045202 */ mul.s $f8, $f10, $f4 +/* 0AD2A4 7F078774 46064280 */ add.s $f10, $f8, $f6 +/* 0AD2A8 7F078778 E42A995C */ swc1 $f10, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD2AC 7F07877C C46410AC */ lwc1 $f4, 0x10ac($v1) +/* 0AD2B0 7F078780 C46610B4 */ lwc1 $f6, 0x10b4($v1) +/* 0AD2B4 7F078784 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD2B8 7F078788 46002207 */ neg.s $f8, $f4 +/* 0AD2BC 7F07878C 44812000 */ mtc1 $at, $f4 +/* 0AD2C0 7F078790 46064382 */ mul.s $f14, $f8, $f6 +/* 0AD2C4 7F078794 00000000 */ nop +/* 0AD2C8 7F078798 460E7282 */ mul.s $f10, $f14, $f14 +/* 0AD2CC 7F07879C E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0AD2D0 7F0787A0 0C007DF8 */ jal sqrtf +/* 0AD2D4 7F0787A4 46045300 */ add.s $f12, $f10, $f4 +/* 0AD2D8 7F0787A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD2DC 7F0787AC 44814000 */ mtc1 $at, $f8 +/* 0AD2E0 7F0787B0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD2E4 7F0787B4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD2E8 7F0787B8 46004503 */ div.s $f20, $f8, $f0 +/* 0AD2EC 7F0787BC C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0AD2F0 7F0787C0 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD2F4 7F0787C4 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079960) +/* 0AD2F8 7F0787C8 24849960 */ addiu $a0, %lo(flt_CODE_bss_80079960) # addiu $a0, $a0, -0x66a0 +/* 0AD2FC 7F0787CC C4460000 */ lwc1 $f6, ($v0) +/* 0AD300 7F0787D0 C4440020 */ lwc1 $f4, 0x20($v0) +/* 0AD304 7F0787D4 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD308 7F0787D8 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079970) +/* 0AD30C 7F0787DC 24A59970 */ addiu $a1, %lo(flt_CODE_bss_80079970) # addiu $a1, $a1, -0x6690 +/* 0AD310 7F0787E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AD314 7F0787E4 46147382 */ mul.s $f14, $f14, $f20 +/* 0AD318 7F0787E8 4600A407 */ neg.s $f16, $f20 +/* 0AD31C 7F0787EC D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0AD320 7F0787F0 46068282 */ mul.s $f10, $f16, $f6 +/* 0AD324 7F0787F4 46008487 */ neg.s $f18, $f16 +/* 0AD328 7F0787F8 460E2202 */ mul.s $f8, $f4, $f14 +/* 0AD32C 7F0787FC 46085181 */ sub.s $f6, $f10, $f8 +/* 0AD330 7F078800 E4860000 */ swc1 $f6, ($a0) +/* 0AD334 7F078804 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD338 7F078808 C4440004 */ lwc1 $f4, 4($v0) +/* 0AD33C 7F07880C C4480024 */ lwc1 $f8, 0x24($v0) +/* 0AD340 7F078810 46048282 */ mul.s $f10, $f16, $f4 +/* 0AD344 7F078814 00000000 */ nop +/* 0AD348 7F078818 460E4182 */ mul.s $f6, $f8, $f14 +/* 0AD34C 7F07881C 46065101 */ sub.s $f4, $f10, $f6 +/* 0AD350 7F078820 E4840004 */ swc1 $f4, 4($a0) +/* 0AD354 7F078824 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD358 7F078828 C4480008 */ lwc1 $f8, 8($v0) +/* 0AD35C 7F07882C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD360 7F078830 46088282 */ mul.s $f10, $f16, $f8 +/* 0AD364 7F078834 00000000 */ nop +/* 0AD368 7F078838 460E3102 */ mul.s $f4, $f6, $f14 +/* 0AD36C 7F07883C C4860000 */ lwc1 $f6, ($a0) +/* 0AD370 7F078840 46045201 */ sub.s $f8, $f10, $f4 +/* 0AD374 7F078844 E4880008 */ swc1 $f8, 8($a0) +/* 0AD378 7F078848 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD37C 7F07884C C4880004 */ lwc1 $f8, 4($a0) +/* 0AD380 7F078850 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD384 7F078854 460A3102 */ mul.s $f4, $f6, $f10 +/* 0AD388 7F078858 C4460034 */ lwc1 $f6, 0x34($v0) +/* 0AD38C 7F07885C 46064282 */ mul.s $f10, $f8, $f6 +/* 0AD390 7F078860 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0AD394 7F078864 460A2200 */ add.s $f8, $f4, $f10 +/* 0AD398 7F078868 C4840008 */ lwc1 $f4, 8($a0) +/* 0AD39C 7F07886C 46043282 */ mul.s $f10, $f6, $f4 +/* 0AD3A0 7F078870 46085180 */ add.s $f6, $f10, $f8 +/* 0AD3A4 7F078874 E426996C */ swc1 $f6, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD3A8 7F078878 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3AC 7F07887C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD3B0 7F078880 C4440000 */ lwc1 $f4, ($v0) +/* 0AD3B4 7F078884 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD3B8 7F078888 46049282 */ mul.s $f10, $f18, $f4 +/* 0AD3BC 7F07888C 00000000 */ nop +/* 0AD3C0 7F078890 460E4182 */ mul.s $f6, $f8, $f14 +/* 0AD3C4 7F078894 46065101 */ sub.s $f4, $f10, $f6 +/* 0AD3C8 7F078898 E4A40000 */ swc1 $f4, ($a1) +/* 0AD3CC 7F07889C 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3D0 7F0788A0 C4480004 */ lwc1 $f8, 4($v0) +/* 0AD3D4 7F0788A4 C4460024 */ lwc1 $f6, 0x24($v0) +/* 0AD3D8 7F0788A8 46089282 */ mul.s $f10, $f18, $f8 +/* 0AD3DC 7F0788AC 00000000 */ nop +/* 0AD3E0 7F0788B0 460E3102 */ mul.s $f4, $f6, $f14 +/* 0AD3E4 7F0788B4 46045201 */ sub.s $f8, $f10, $f4 +/* 0AD3E8 7F0788B8 E4A80004 */ swc1 $f8, 4($a1) +/* 0AD3EC 7F0788BC 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3F0 7F0788C0 C4460008 */ lwc1 $f6, 8($v0) +/* 0AD3F4 7F0788C4 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0AD3F8 7F0788C8 46069282 */ mul.s $f10, $f18, $f6 +/* 0AD3FC 7F0788CC 00000000 */ nop +/* 0AD400 7F0788D0 460E2202 */ mul.s $f8, $f4, $f14 +/* 0AD404 7F0788D4 C4A40000 */ lwc1 $f4, ($a1) +/* 0AD408 7F0788D8 46085181 */ sub.s $f6, $f10, $f8 +/* 0AD40C 7F0788DC E4A60008 */ swc1 $f6, 8($a1) +/* 0AD410 7F0788E0 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD414 7F0788E4 C4A60004 */ lwc1 $f6, 4($a1) +/* 0AD418 7F0788E8 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD41C 7F0788EC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0AD420 7F0788F0 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0AD424 7F0788F4 46043282 */ mul.s $f10, $f6, $f4 +/* 0AD428 7F0788F8 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0AD42C 7F0788FC 460A4180 */ add.s $f6, $f8, $f10 +/* 0AD430 7F078900 C4A80008 */ lwc1 $f8, 8($a1) +/* 0AD434 7F078904 46082282 */ mul.s $f10, $f4, $f8 +/* 0AD438 7F078908 46065100 */ add.s $f4, $f10, $f6 +/* 0AD43C 7F07890C E424997C */ swc1 $f4, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD440 7F078910 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD444 7F078914 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD448 7F078918 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD44C 7F07891C C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD450 7F078920 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0AD454 7F078924 460A4182 */ mul.s $f6, $f8, $f10 +/* 0AD458 7F078928 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0AD45C 7F07892C 46082282 */ mul.s $f10, $f4, $f8 +/* 0AD460 7F078930 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0AD464 7F078934 460A3100 */ add.s $f4, $f6, $f10 +/* 0AD468 7F078938 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD46C 7F07893C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0AD470 7F078940 46064282 */ mul.s $f10, $f8, $f6 +/* 0AD474 7F078944 46045200 */ add.s $f8, $f10, $f4 +/* 0AD478 7F078948 03E00008 */ jr $ra +/* 0AD47C 7F07894C E4289980 */ swc1 $f8, %lo(flt_CODE_bss_80079980)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078950(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079940; + arg0->unk4 = (f32) flt_CODE_bss_80079940.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079940.unk8; + *arg1 = (f32) flt_CODE_bss_8007994C; + return &flt_CODE_bss_80079940; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078950 +/* 0AD480 7F078950 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079940) +/* 0AD484 7F078954 24429940 */ addiu $v0, %lo(flt_CODE_bss_80079940) # addiu $v0, $v0, -0x66c0 +/* 0AD488 7F078958 C4440000 */ lwc1 $f4, ($v0) +/* 0AD48C 7F07895C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD490 7F078960 E4840000 */ swc1 $f4, ($a0) +/* 0AD494 7F078964 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD498 7F078968 E4860004 */ swc1 $f6, 4($a0) +/* 0AD49C 7F07896C C4480008 */ lwc1 $f8, 8($v0) +/* 0AD4A0 7F078970 E4880008 */ swc1 $f8, 8($a0) +/* 0AD4A4 7F078974 C42A994C */ lwc1 $f10, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD4A8 7F078978 03E00008 */ jr $ra +/* 0AD4AC 7F07897C E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078980(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079950; + arg0->unk4 = (f32) flt_CODE_bss_80079950.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079950.unk8; + *arg1 = (f32) flt_CODE_bss_8007995C; + return &flt_CODE_bss_80079950; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078980 +/* 0AD4B0 7F078980 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079950) +/* 0AD4B4 7F078984 24429950 */ addiu $v0, %lo(flt_CODE_bss_80079950) # addiu $v0, $v0, -0x66b0 +/* 0AD4B8 7F078988 C4440000 */ lwc1 $f4, ($v0) +/* 0AD4BC 7F07898C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD4C0 7F078990 E4840000 */ swc1 $f4, ($a0) +/* 0AD4C4 7F078994 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD4C8 7F078998 E4860004 */ swc1 $f6, 4($a0) +/* 0AD4CC 7F07899C C4480008 */ lwc1 $f8, 8($v0) +/* 0AD4D0 7F0789A0 E4880008 */ swc1 $f8, 8($a0) +/* 0AD4D4 7F0789A4 C42A995C */ lwc1 $f10, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD4D8 7F0789A8 03E00008 */ jr $ra +/* 0AD4DC 7F0789AC E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0789B0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079960; + arg0->unk4 = (f32) flt_CODE_bss_80079960.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079960.unk8; + *arg1 = (f32) flt_CODE_bss_8007996C; + return &flt_CODE_bss_80079960; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0789B0 +/* 0AD4E0 7F0789B0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079960) +/* 0AD4E4 7F0789B4 24429960 */ addiu $v0, %lo(flt_CODE_bss_80079960) # addiu $v0, $v0, -0x66a0 +/* 0AD4E8 7F0789B8 C4440000 */ lwc1 $f4, ($v0) +/* 0AD4EC 7F0789BC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD4F0 7F0789C0 E4840000 */ swc1 $f4, ($a0) +/* 0AD4F4 7F0789C4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD4F8 7F0789C8 E4860004 */ swc1 $f6, 4($a0) +/* 0AD4FC 7F0789CC C4480008 */ lwc1 $f8, 8($v0) +/* 0AD500 7F0789D0 E4880008 */ swc1 $f8, 8($a0) +/* 0AD504 7F0789D4 C42A996C */ lwc1 $f10, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD508 7F0789D8 03E00008 */ jr $ra +/* 0AD50C 7F0789DC E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0789E0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079970; + arg0->unk4 = (f32) flt_CODE_bss_80079970.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079970.unk8; + *arg1 = (f32) flt_CODE_bss_8007997C; + return &flt_CODE_bss_80079970; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0789E0 +/* 0AD510 7F0789E0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079970) +/* 0AD514 7F0789E4 24429970 */ addiu $v0, %lo(flt_CODE_bss_80079970) # addiu $v0, $v0, -0x6690 +/* 0AD518 7F0789E8 C4440000 */ lwc1 $f4, ($v0) +/* 0AD51C 7F0789EC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD520 7F0789F0 E4840000 */ swc1 $f4, ($a0) +/* 0AD524 7F0789F4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD528 7F0789F8 E4860004 */ swc1 $f6, 4($a0) +/* 0AD52C 7F0789FC C4480008 */ lwc1 $f8, 8($v0) +/* 0AD530 7F078A00 E4880008 */ swc1 $f8, 8($a0) +/* 0AD534 7F078A04 C42A997C */ lwc1 $f10, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD538 7F078A08 03E00008 */ jr $ra +/* 0AD53C 7F078A0C E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078A10(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) pPlayer->field_10D4->unk20; + arg0->unk4 = (f32) pPlayer->field_10D4->unk24; + arg0->unk8 = (f32) pPlayer->field_10D4->unk28; + *arg1 = (f32) flt_CODE_bss_80079980; + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078A10 +/* 0AD540 7F078A10 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD544 7F078A14 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD548 7F078A18 8C4E0000 */ lw $t6, ($v0) +/* 0AD54C 7F078A1C 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD550 7F078A20 8DCF10D4 */ lw $t7, 0x10d4($t6) +/* 0AD554 7F078A24 C5E40020 */ lwc1 $f4, 0x20($t7) +/* 0AD558 7F078A28 E4840000 */ swc1 $f4, ($a0) +/* 0AD55C 7F078A2C 8C580000 */ lw $t8, ($v0) +/* 0AD560 7F078A30 8F1910D4 */ lw $t9, 0x10d4($t8) +/* 0AD564 7F078A34 C7260024 */ lwc1 $f6, 0x24($t9) +/* 0AD568 7F078A38 E4860004 */ swc1 $f6, 4($a0) +/* 0AD56C 7F078A3C 8C480000 */ lw $t0, ($v0) +/* 0AD570 7F078A40 8D0910D4 */ lw $t1, 0x10d4($t0) +/* 0AD574 7F078A44 C5280028 */ lwc1 $f8, 0x28($t1) +/* 0AD578 7F078A48 E4880008 */ swc1 $f8, 8($a0) +/* 0AD57C 7F078A4C C42A9980 */ lwc1 $f10, %lo(flt_CODE_bss_80079980)($at) +/* 0AD580 7F078A50 03E00008 */ jr $ra +/* 0AD584 7F078A54 E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078A58(void *arg0, s32 arg1) { + // Node 0 + if ((flt_CODE_bss_80079980 + arg1) < ((arg0->unk8 * pPlayer->field_10D4->unk28) + ((pPlayer->field_10D4->unk20 * *arg0) + (pPlayer->field_10D4->unk24 * arg0->unk4)))) + { + // Node 1 + return 0; + } + // Node 2 + if ((flt_CODE_bss_8007996C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079960.unk8) + ((flt_CODE_bss_80079960 * *arg0) + (flt_CODE_bss_80079960.unk4 * arg0->unk4)))) + { + // Node 3 + return 0; + } + // Node 4 + if ((flt_CODE_bss_8007997C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079970.unk8) + ((flt_CODE_bss_80079970 * *arg0) + (flt_CODE_bss_80079970.unk4 * arg0->unk4)))) + { + // Node 5 + return 0; + } + // Node 6 + if ((flt_CODE_bss_8007994C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079940.unk8) + ((flt_CODE_bss_80079940 * *arg0) + (flt_CODE_bss_80079940.unk4 * arg0->unk4)))) + { + // Node 7 + return 0; + } + // Node 8 + if ((flt_CODE_bss_8007995C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079950.unk8) + ((flt_CODE_bss_80079950 * *arg0) + (flt_CODE_bss_80079950.unk4 * arg0->unk4)))) + { + // Node 9 + return 0; + } + // Node 10 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078A58 +/* 0AD588 7F078A58 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AD58C 7F078A5C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AD590 7F078A60 C4820000 */ lwc1 $f2, ($a0) +/* 0AD594 7F078A64 C48E0004 */ lwc1 $f14, 4($a0) +/* 0AD598 7F078A68 8DC210D4 */ lw $v0, 0x10d4($t6) +/* 0AD59C 7F078A6C C4800008 */ lwc1 $f0, 8($a0) +/* 0AD5A0 7F078A70 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD5A4 7F078A74 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD5A8 7F078A78 C4500024 */ lwc1 $f16, 0x24($v0) +/* 0AD5AC 7F078A7C 44856000 */ mtc1 $a1, $f12 +/* 0AD5B0 7F078A80 46024282 */ mul.s $f10, $f8, $f2 +/* 0AD5B4 7F078A84 C4480028 */ lwc1 $f8, 0x28($v0) +/* 0AD5B8 7F078A88 C4249980 */ lwc1 $f4, %lo(flt_CODE_bss_80079980)($at) +/* 0AD5BC 7F078A8C 460E8482 */ mul.s $f18, $f16, $f14 +/* 0AD5C0 7F078A90 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079960) +/* 0AD5C4 7F078A94 460C2180 */ add.s $f6, $f4, $f12 +/* 0AD5C8 7F078A98 46080402 */ mul.s $f16, $f0, $f8 +/* 0AD5CC 7F078A9C 24429960 */ addiu $v0, %lo(flt_CODE_bss_80079960) # addiu $v0, $v0, -0x66a0 +/* 0AD5D0 7F078AA0 46125100 */ add.s $f4, $f10, $f18 +/* 0AD5D4 7F078AA4 46048280 */ add.s $f10, $f16, $f4 +/* 0AD5D8 7F078AA8 460A303C */ c.lt.s $f6, $f10 +/* 0AD5DC 7F078AAC 00000000 */ nop +/* 0AD5E0 7F078AB0 45020004 */ bc1fl .L7F078AC4 +/* 0AD5E4 7F078AB4 C4500000 */ lwc1 $f16, ($v0) +/* 0AD5E8 7F078AB8 03E00008 */ jr $ra +/* 0AD5EC 7F078ABC 00001025 */ move $v0, $zero + +/* 0AD5F0 7F078AC0 C4500000 */ lwc1 $f16, ($v0) +.L7F078AC4: +/* 0AD5F4 7F078AC4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD5F8 7F078AC8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD5FC 7F078ACC 46028102 */ mul.s $f4, $f16, $f2 +/* 0AD600 7F078AD0 C4500008 */ lwc1 $f16, 8($v0) +/* 0AD604 7F078AD4 C432996C */ lwc1 $f18, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD608 7F078AD8 460E3282 */ mul.s $f10, $f6, $f14 +/* 0AD60C 7F078ADC 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079970) +/* 0AD610 7F078AE0 460C9200 */ add.s $f8, $f18, $f12 +/* 0AD614 7F078AE4 46100182 */ mul.s $f6, $f0, $f16 +/* 0AD618 7F078AE8 24429970 */ addiu $v0, %lo(flt_CODE_bss_80079970) # addiu $v0, $v0, -0x6690 +/* 0AD61C 7F078AEC 460A2480 */ add.s $f18, $f4, $f10 +/* 0AD620 7F078AF0 46123100 */ add.s $f4, $f6, $f18 +/* 0AD624 7F078AF4 4604403C */ c.lt.s $f8, $f4 +/* 0AD628 7F078AF8 00000000 */ nop +/* 0AD62C 7F078AFC 45020004 */ bc1fl .L7F078B10 +/* 0AD630 7F078B00 C4460000 */ lwc1 $f6, ($v0) +/* 0AD634 7F078B04 03E00008 */ jr $ra +/* 0AD638 7F078B08 00001025 */ move $v0, $zero + +/* 0AD63C 7F078B0C C4460000 */ lwc1 $f6, ($v0) +.L7F078B10: +/* 0AD640 7F078B10 C4480004 */ lwc1 $f8, 4($v0) +/* 0AD644 7F078B14 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD648 7F078B18 46023482 */ mul.s $f18, $f6, $f2 +/* 0AD64C 7F078B1C C4460008 */ lwc1 $f6, 8($v0) +/* 0AD650 7F078B20 C42A997C */ lwc1 $f10, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD654 7F078B24 460E4102 */ mul.s $f4, $f8, $f14 +/* 0AD658 7F078B28 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079940) +/* 0AD65C 7F078B2C 460C5400 */ add.s $f16, $f10, $f12 +/* 0AD660 7F078B30 46060202 */ mul.s $f8, $f0, $f6 +/* 0AD664 7F078B34 24429940 */ addiu $v0, %lo(flt_CODE_bss_80079940) # addiu $v0, $v0, -0x66c0 +/* 0AD668 7F078B38 46049280 */ add.s $f10, $f18, $f4 +/* 0AD66C 7F078B3C 460A4480 */ add.s $f18, $f8, $f10 +/* 0AD670 7F078B40 4612803C */ c.lt.s $f16, $f18 +/* 0AD674 7F078B44 00000000 */ nop +/* 0AD678 7F078B48 45020004 */ bc1fl .L7F078B5C +/* 0AD67C 7F078B4C C4480000 */ lwc1 $f8, ($v0) +/* 0AD680 7F078B50 03E00008 */ jr $ra +/* 0AD684 7F078B54 00001025 */ move $v0, $zero + +/* 0AD688 7F078B58 C4480000 */ lwc1 $f8, ($v0) +.L7F078B5C: +/* 0AD68C 7F078B5C C4500004 */ lwc1 $f16, 4($v0) +/* 0AD690 7F078B60 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD694 7F078B64 46024282 */ mul.s $f10, $f8, $f2 +/* 0AD698 7F078B68 C4480008 */ lwc1 $f8, 8($v0) +/* 0AD69C 7F078B6C C424994C */ lwc1 $f4, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD6A0 7F078B70 460E8482 */ mul.s $f18, $f16, $f14 +/* 0AD6A4 7F078B74 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079950) +/* 0AD6A8 7F078B78 460C2180 */ add.s $f6, $f4, $f12 +/* 0AD6AC 7F078B7C 46080402 */ mul.s $f16, $f0, $f8 +/* 0AD6B0 7F078B80 24429950 */ addiu $v0, %lo(flt_CODE_bss_80079950) # addiu $v0, $v0, -0x66b0 +/* 0AD6B4 7F078B84 46125100 */ add.s $f4, $f10, $f18 +/* 0AD6B8 7F078B88 46048280 */ add.s $f10, $f16, $f4 +/* 0AD6BC 7F078B8C 460A303C */ c.lt.s $f6, $f10 +/* 0AD6C0 7F078B90 00000000 */ nop +/* 0AD6C4 7F078B94 45020004 */ bc1fl .L7F078BA8 +/* 0AD6C8 7F078B98 C4500000 */ lwc1 $f16, ($v0) +/* 0AD6CC 7F078B9C 03E00008 */ jr $ra +/* 0AD6D0 7F078BA0 00001025 */ move $v0, $zero + +/* 0AD6D4 7F078BA4 C4500000 */ lwc1 $f16, ($v0) +.L7F078BA8: +/* 0AD6D8 7F078BA8 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD6DC 7F078BAC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD6E0 7F078BB0 46028102 */ mul.s $f4, $f16, $f2 +/* 0AD6E4 7F078BB4 C4500008 */ lwc1 $f16, 8($v0) +/* 0AD6E8 7F078BB8 C432995C */ lwc1 $f18, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD6EC 7F078BBC 460E3282 */ mul.s $f10, $f6, $f14 +/* 0AD6F0 7F078BC0 24020001 */ li $v0, 1 +/* 0AD6F4 7F078BC4 460C9200 */ add.s $f8, $f18, $f12 +/* 0AD6F8 7F078BC8 46100182 */ mul.s $f6, $f0, $f16 +/* 0AD6FC 7F078BCC 460A2480 */ add.s $f18, $f4, $f10 +/* 0AD700 7F078BD0 46123100 */ add.s $f4, $f6, $f18 +/* 0AD704 7F078BD4 4604403C */ c.lt.s $f8, $f4 +/* 0AD708 7F078BD8 00000000 */ nop +/* 0AD70C 7F078BDC 45000003 */ bc1f .L7F078BEC +/* 0AD710 7F078BE0 00000000 */ nop +/* 0AD714 7F078BE4 03E00008 */ jr $ra +/* 0AD718 7F078BE8 00001025 */ move $v0, $zero + +.L7F078BEC: +/* 0AD71C 7F078BEC 03E00008 */ jr $ra +/* 0AD720 7F078BF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078BF4(void *arg0, s32 arg1, void *arg2) +{ + f32 sp7C; + f32 sp78; + f32 sp74; + f32 sp6C; + f32 sp68; + f32 sp64; + f32 sp5C; + f32 sp58; + f32 sp54; + f32 sp4C; + f32 sp48; + f32 sp44; + f32 sp38; + f32 sp34; + 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_f14_2; + f32 temp_f6; + f32 temp_f8; + f32 temp_f4_2; + f32 temp_f2_5; + f32 temp_f12_3; + f32 temp_f2_6; + f32 temp_f14_3; + 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) < ((arg0->unk8 * pPlayer->field_10D4->unk28) + ((pPlayer->field_10D4->unk20 * *arg0) + (pPlayer->field_10D4->unk24 * arg0->unk4)))) + { + return 0; + } + temp_f2 = (((*arg2 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp38 = temp_f2; + 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 * *pPlayer->field_10D4) - (pPlayer->field_10D4->unk20 * temp_f2_2)); + sp54 = temp_f10; + temp_f4 = ((temp_f14 * pPlayer->field_10D4->unk4) - (pPlayer->field_10D4->unk24 * temp_f2_2)); + sp58 = temp_f4; + temp_f18 = ((temp_f14 * pPlayer->field_10D4->unk8) - (pPlayer->field_10D4->unk28 * temp_f2_2)); + sp5C = temp_f18; + if ((((pPlayer->field_10D4->unk38 * temp_f18) + ((temp_f10 * pPlayer->field_10D4->unk30) + (temp_f4 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f18) + ((temp_f10 * *arg0) + (temp_f4 * arg0->unk4)))) + { + return 0; + } + temp_f2_3 = (-((arg2->unk8 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp38 = temp_f2_3; + temp_f12_2 = (1.0f / sqrtf(((temp_f2_3 * temp_f2_3) + 1.0f), temp_f14, arg0)); + temp_f2_4 = (temp_f2_3 * temp_f12_2); + temp_f14_2 = --temp_f12_2; + temp_f6 = ((temp_f14_2 * *pPlayer->field_10D4) - (pPlayer->field_10D4->unk20 * temp_f2_4)); + sp44 = temp_f6; + temp_f8 = ((temp_f14_2 * pPlayer->field_10D4->unk4) - (pPlayer->field_10D4->unk24 * temp_f2_4)); + sp48 = temp_f8; + temp_f4_2 = ((temp_f14_2 * pPlayer->field_10D4->unk8) - (pPlayer->field_10D4->unk28 * temp_f2_4)); + sp4C = temp_f4_2; + if ((((pPlayer->field_10D4->unk38 * temp_f4_2) + ((temp_f6 * pPlayer->field_10D4->unk30) + (temp_f8 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f4_2) + ((temp_f6 * *arg0) + (temp_f8 * arg0->unk4)))) + { + return 0; + } + temp_f2_5 = ((pPlayer->c_halfheight - (arg2->unk4 - pPlayer->c_screentop)) * pPlayer->c_scaley); + sp34 = temp_f2_5; + temp_f12_3 = (1.0f / sqrtf(((temp_f2_5 * temp_f2_5) + 1.0f), temp_f14_2, arg0)); + temp_f2_6 = (temp_f2_5 * temp_f12_3); + temp_f14_3 = --temp_f12_3; + temp_f8_2 = ((pPlayer->field_10D4->unk20 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk10)); + sp74 = temp_f8_2; + temp_f18_2 = ((pPlayer->field_10D4->unk24 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk14)); + sp78 = temp_f18_2; + temp_f4_3 = ((pPlayer->field_10D4->unk28 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk18)); + sp7C = temp_f4_3; + if ((((pPlayer->field_10D4->unk38 * temp_f4_3) + ((temp_f8_2 * pPlayer->field_10D4->unk30) + (temp_f18_2 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f4_3) + ((temp_f8_2 * *arg0) + (temp_f18_2 * arg0->unk4)))) + { + return 0; + } + temp_f2_7 = (-(pPlayer->c_halfheight - (arg2->unkC - pPlayer->c_screentop)) * pPlayer->c_scaley); + sp34 = temp_f2_7; + temp_f12_4 = (1.0f / sqrtf(((temp_f2_7 * temp_f2_7) + 1.0f), temp_f14_3, arg0)); + temp_f2_8 = (temp_f2_7 * temp_f12_4); + temp_f14_4 = -temp_f12_4; + temp_f6_2 = ((pPlayer->field_10D4->unk20 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk10)); + sp64 = temp_f6_2; + temp_f10_2 = ((pPlayer->field_10D4->unk24 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk14)); + sp68 = temp_f10_2; + temp_f18_3 = ((pPlayer->field_10D4->unk28 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk18)); + sp6C = temp_f18_3; + if ((((pPlayer->field_10D4->unk38 * temp_f18_3) + ((temp_f6_2 * pPlayer->field_10D4->unk30) + (temp_f10_2 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f18_3) + ((temp_f6_2 * *arg0) + (temp_f10_2 * arg0->unk4)))) + { + + } + return 1; +} +#else +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(pPlayer) +/* 0AD730 7F078C00 8E10A0B0 */ lw $s0, %lo(pPlayer)($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(pPlayer) +/* 0AD7E4 7F078CB4 8E10A0B0 */ lw $s0, %lo(pPlayer)($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(pPlayer) +/* 0AD8FC 7F078DCC 8E10A0B0 */ lw $s0, %lo(pPlayer)($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(pPlayer) +/* 0ADA18 7F078EE8 8E10A0B0 */ lw $s0, %lo(pPlayer)($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(pPlayer) +/* 0ADB34 7F079004 8E10A0B0 */ lw $s0, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0790F0(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; + + temp_s6 = get_cur_playernum(); + temp_s2 = get_num_players(); + phi_s1_2 = 1; + phi_s7_2 = 0; + if (dword_CODE_bss_80079C68 > 0) + { + 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; + if (temp_s2 > 0) + { +block_3: + phi_s1_5 = phi_s1_7; + if (phi_s0 != temp_s6) + { + temp_t3 = (&ptr_BONDdata_p1 + (phi_s0 * 4)); + phi_s1_5 = phi_s1_7; + if ((*temp_t3)->unkA8 != 0) + { + temp_t6 = (&dword_CODE_bss_80079C28 + (((s32) subroutine_arg0->unk29E0 % (s32) dword_CODE_bss_80079C68) * 4)); + temp_f0 = ((*temp_t3)->unkA8->unk8 - **temp_t6); + temp_f2 = ((*temp_t3)->unkA8->unk10 - (*temp_t6)->unk8); + phi_s1_5 = phi_s1_7; + if (sqrtf(((temp_f0 * temp_f0) + (temp_f2 * temp_f2))) < 1000.0f) + { + 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 < dword_CODE_bss_80079C68) + { + goto block_2; + } + phi_s1_2 = phi_s1; + phi_s7_2 = temp_s7; + } + } + phi_s1_4 = phi_s1_2; + phi_s3 = sp4C; + if (phi_s1_2 != 0) + { + phi_s1_4 = phi_s1_2; + phi_s3 = sp4C; + if (phi_s7_2 < dword_CODE_bss_80079C68) + { + 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) dword_CODE_bss_80079C68); + 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 = (&ptr_BONDdata_p1 + (phi_s0_2 * 4)); + phi_s1_6 = phi_s1_8; + if ((*temp_t5)->unkA8 != 0) + { + temp_t8 = (&dword_CODE_bss_80079C28 + (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; + if (sqrtf(((temp_f0_2 * temp_f0_2) + (temp_f2_2 * temp_f2_2))) < 100.0f) + { + 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 < dword_CODE_bss_80079C68) + { + goto block_14; + } + } + } + } + if (phi_s1_4 != 0) + { + phi_s3 = (get_random_value() % (u32) dword_CODE_bss_80079C68); + } + return phi_s3; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0790F0 +/* 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 get_num_players +/* 0ADC58 7F079128 0040B025 */ move $s6, $v0 +/* 0ADC5C 7F07912C 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079C68) +/* 0ADC60 7F079130 8DCE9C68 */ lw $t6, %lo(dword_CODE_bss_80079C68)($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(pPlayer) +/* 0ADC7C 7F07914C 3C158008 */ lui $s5, %hi(dword_CODE_bss_80079C28) +/* 0ADC80 7F079150 3C148008 */ lui $s4, %hi(ptr_BONDdata_p1) +/* 0ADC84 7F079154 4481A000 */ mtc1 $at, $f20 +/* 0ADC88 7F079158 26949EE0 */ addiu $s4, %lo(ptr_BONDdata_p1) # addiu $s4, $s4, -0x6120 +/* 0ADC8C 7F07915C 26B59C28 */ addiu $s5, %lo(dword_CODE_bss_80079C28) # addiu $s5, $s5, -0x63d8 +/* 0ADC90 7F079160 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ADC94 7F079164 8FC20000 */ lw $v0, ($fp) +.L7F079168: +/* 0ADC98 7F079168 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 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(dword_CODE_bss_80079C68)($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(dword_CODE_bss_80079C68) +/* 0ADD78 7F079248 8DEF9C68 */ lw $t7, %lo(dword_CODE_bss_80079C68)($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(ptr_BONDdata_p1) +/* 0ADD90 7F079260 3C158008 */ lui $s5, %hi(dword_CODE_bss_80079C28) +/* 0ADD94 7F079264 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 0ADD98 7F079268 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ADD9C 7F07926C 26B59C28 */ addiu $s5, %lo(dword_CODE_bss_80079C28) # addiu $s5, $s5, -0x63d8 +/* 0ADDA0 7F079270 26949EE0 */ addiu $s4, %lo(ptr_BONDdata_p1) # addiu $s4, $s4, -0x6120 +/* 0ADDA4 7F079274 12200044 */ beqz $s1, .L7F079388 +/* 0ADDA8 7F079278 8FB3004C */ lw $s3, 0x4c($sp) +/* 0ADDAC 7F07927C 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079C68) +/* 0ADDB0 7F079280 8F189C68 */ lw $t8, %lo(dword_CODE_bss_80079C68)($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(dword_CODE_bss_80079C68) +/* 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(dword_CODE_bss_80079C68)($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(dword_CODE_bss_80079C68) +/* 0ADEA8 7F079378 8F399C68 */ lw $t9, %lo(dword_CODE_bss_80079C68)($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 get_random_value +/* 0ADEC4 7F079394 00000000 */ nop +/* 0ADEC8 7F079398 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) +/* 0ADECC 7F07939C 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) +/* 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 + + + + + +#ifdef NONMATCHING +void init_player_BONDdata(void) +{ + if (get_num_players() >= 2) + { + pPlayer->controlstyle = get_player_control_style(get_cur_playernum()); + cur_player_set_control_type(get_player_control_style(get_cur_playernum())); + } + pPlayer->current_model_xpos = 0.0f; + pPlayer->current_model_ypos = 0.0f; + pPlayer->current_model_zpos = 0.0f; + pPlayer->previous_model_xpos = 0.0f; + pPlayer->previous_model_ypos = 0.0f; + pPlayer->previous_model_zpos = 0.0f; + pPlayer->current_room_xpos = 0.0f; + pPlayer->current_room_ypos = 0.0f; + pPlayer->current_room_zpos = 0.0f; + pPlayer->unknown = 0; + pPlayer->xpos = 0.0f; + pPlayer->ypos = 0.0f; + pPlayer->zpos = 0.0f; + pPlayer->xpos2 = 0.0f; + pPlayer->ypos2 = 0.0f; + pPlayer->zpos2 = 1.0f; + pPlayer->xoffset = 0.0f; + pPlayer->yoffset = 1.0f; + pPlayer->zoffset = 0.0f; + pPlayer->xpos3 = 0.0f; + pPlayer->ypos3 = 0.0f; + pPlayer->zpos3 = 0.0f; + pPlayer->room_pointer = 0; + pPlayer->field_3C4 = 0.0f; + pPlayer->field_3C8 = 0.0f; + pPlayer->field_3CC = 1.0f; + pPlayer->field_84 = 0.0f; + pPlayer->field_88 = 0.0f; + pPlayer->field_8C = 0; + pPlayer->field_90 = 0.0f; + pPlayer->field_94 = 0; + pPlayer->field_98 = 0.0f; + pPlayer->field_1274 = 0.0f; + pPlayer->field_1278 = 0.0f; + pPlayer->field_127C = 0.0f; + pPlayer->crouchposition = 2; + pPlayer->field_29FC = 2; + pPlayer->ducking_height_offset = 0.0f; + pPlayer->field_A4 = 0.0f; + pPlayer->field_AC = 1; + pPlayer->field_D0 = 0; + pPlayer->bonddead = 0; + pPlayer->bondhealth = 1.0f; + pPlayer->bondarmour = 0.0f; + pPlayer->oldhealth = 1.0f; + pPlayer->oldarmour = 0.0f; + pPlayer->apparenthealth = 1.0f; + pPlayer->apparentarmour = 0.0f; + pPlayer->damageshowtime = -1; + pPlayer->healthshowtime = -1; + pPlayer->field_1C0 = 0; + pPlayer->field_1C4 = 0; + pPlayer->pause_animation_state = 0; + pPlayer->paused_flag = 1; + pPlayer->open_close_solo_watch_menu = 0; + pPlayer->field_1A0 = 0; + pPlayer->bondfadefracnew = 0.0f; + pPlayer->speedtheta = 0.0f; + pPlayer->vv_costheta = 1.0f; + pPlayer->vv_sintheta = 0.0f; + pPlayer->vv_verta = -4.0f; + pPlayer->vv_verta360 = (f32) pPlayer->vv_verta; + if (pPlayer->vv_verta360 < 0.0f) + { + pPlayer->vv_verta360 = (f32) (pPlayer->vv_verta360 + 360.0f); + } + pPlayer->speedverta = 0.0f; + pPlayer->vv_cosverta = 1.0f; + pPlayer->vv_sinverta = 0.0f; + pPlayer->speedsideways = 0.0f; + pPlayer->speedstrafe = 0.0f; + pPlayer->speedforwards = 0.0f; + pPlayer->field_2A4C = 0.0f; + pPlayer->speedboost = 1.0f; + pPlayer->speedmaxtime60 = 0; + pPlayer->boost_factor_x = 0.0f; + pPlayer->boost_factor_y = 0.0f; + pPlayer->boost_factor_z = 0.0f; + pPlayer->field_104 = 0; + pPlayer->field_108 = 0; + pPlayer->field_10C = 0; + pPlayer->movecentrerelease = 0; + pPlayer->lookaheadcentreenabled = 1; + pPlayer->automovecentreenabled = 1; + pPlayer->fastmovecentreenabled = 0; + pPlayer->automovecentre = 1; + pPlayer->insightaimmode = 0; + pPlayer->autoyaimenabled = 1; + pPlayer->autoaimy = 0.0f; + pPlayer->autoyaimtime = 0; + pPlayer->autoyaimtime60 = -1; + pPlayer->autoxaimenabled = 1; + pPlayer->autoaimx = 0.0f; + pPlayer->autoxaimtime = 0; + pPlayer->autoxaimtime60 = -1; + pPlayer->tint_red = 0xff; + pPlayer->tint_green = 0xff; + pPlayer->tint_blue = 0xff; + pPlayer->tint_alpha = 0.0f; + pPlayer->field_3E0 = -1.0f; + pPlayer->time_for_fade = -1.0f; + pPlayer->field_3E8 = 0xff; + pPlayer->field_3EC = 0xff; + pPlayer->field_3F0 = 0xff; + pPlayer->field_3F4 = 0xff; + pPlayer->field_3F8 = 0xff; + pPlayer->field_3FC = 0xff; + pPlayer->field_400 = 0.0f; + pPlayer->field_404 = 0.0f; + pPlayer->viewport_alpha = -1.0f; + pPlayer->bondfadetime60 = -1.0f; + pPlayer->bondfadetimemax = 0.0f; + pPlayer->bondfadefracold = 0.0f; + pPlayer->field_42C = 2; + pPlayer->controlstyle = 0; + pPlayer->pause_starting_angle = 0.0f; + pPlayer->field_208 = 0.0f; + pPlayer->pause_target_angle = 0.0f; + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = 0.0f; + pPlayer->field_218 = 0; + pPlayer->step_in_view_watch_animation = 0; + pPlayer->pause_animation_counter = 0.0f; + pPlayer->pausing_flag = 0; + pPlayer->field_3B4 = (u16)0; + pPlayer->field_3B6 = (u16)0; + pPlayer->field_29C0 = 15.0f; + pPlayer->field_2A04 = -1; + pPlayer->field_2A08 = 0.0f; + pPlayer->field_2A0C = 0.0f; + pPlayer->field_2A6C = 0; + pPlayer->field_2A70 = 0; +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel init_player_BONDdata +/* 0ADF1C 7F0793EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ADF20 7F0793F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ADF24 7F0793F4 0FC26919 */ jal get_num_players +/* 0ADF28 7F0793F8 00000000 */ nop +/* 0ADF2C 7F0793FC 28410002 */ slti $at, $v0, 2 +/* 0ADF30 7F079400 1420000E */ bnez $at, .L7F07943C +/* 0ADF34 7F079404 00000000 */ nop +/* 0ADF38 7F079408 0FC26C54 */ jal get_cur_playernum +/* 0ADF3C 7F07940C 00000000 */ nop +/* 0ADF40 7F079410 0FC0402F */ jal get_player_control_style +/* 0ADF44 7F079414 00402025 */ move $a0, $v0 +/* 0ADF48 7F079418 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ADF4C 7F07941C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ADF50 7F079420 8C6E0000 */ lw $t6, ($v1) +/* 0ADF54 7F079424 0FC26C54 */ jal get_cur_playernum +/* 0ADF58 7F079428 ADC20430 */ sw $v0, 0x430($t6) +/* 0ADF5C 7F07942C 0FC0402F */ jal get_player_control_style +/* 0ADF60 7F079430 00402025 */ move $a0, $v0 +/* 0ADF64 7F079434 0FC29374 */ jal cur_player_set_control_type +/* 0ADF68 7F079438 00402025 */ move $a0, $v0 +.L7F07943C: +/* 0ADF6C 7F07943C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ADF70 7F079440 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ADF74 7F079444 44800000 */ mtc1 $zero, $f0 +/* 0ADF78 7F079448 8C6F0000 */ lw $t7, ($v1) +/* 0ADF7C 7F07944C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ADF80 7F079450 44811000 */ mtc1 $at, $f2 +/* 0ADF84 7F079454 E5E00038 */ swc1 $f0, 0x38($t7) +/* 0ADF88 7F079458 8C780000 */ lw $t8, ($v1) +/* 0ADF8C 7F07945C 24070002 */ li $a3, 2 +/* 0ADF90 7F079460 24050001 */ li $a1, 1 +/* 0ADF94 7F079464 E700003C */ swc1 $f0, 0x3c($t8) +/* 0ADF98 7F079468 8C790000 */ lw $t9, ($v1) +/* 0ADF9C 7F07946C 2406FFFF */ li $a2, -1 +/* 0ADFA0 7F079470 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0ADFA4 7F079474 E7200040 */ swc1 $f0, 0x40($t9) +/* 0ADFA8 7F079478 8C680000 */ lw $t0, ($v1) +/* 0ADFAC 7F07947C 44812000 */ mtc1 $at, $f4 +/* 0ADFB0 7F079480 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ADFB4 7F079484 E5000044 */ swc1 $f0, 0x44($t0) +/* 0ADFB8 7F079488 8C690000 */ lw $t1, ($v1) +/* 0ADFBC 7F07948C E5200048 */ swc1 $f0, 0x48($t1) +/* 0ADFC0 7F079490 8C6A0000 */ lw $t2, ($v1) +/* 0ADFC4 7F079494 E540004C */ swc1 $f0, 0x4c($t2) +/* 0ADFC8 7F079498 8C6B0000 */ lw $t3, ($v1) +/* 0ADFCC 7F07949C E5600050 */ swc1 $f0, 0x50($t3) +/* 0ADFD0 7F0794A0 8C6C0000 */ lw $t4, ($v1) +/* 0ADFD4 7F0794A4 E5800054 */ swc1 $f0, 0x54($t4) +/* 0ADFD8 7F0794A8 8C6D0000 */ lw $t5, ($v1) +/* 0ADFDC 7F0794AC E5A00058 */ swc1 $f0, 0x58($t5) +/* 0ADFE0 7F0794B0 8C6E0000 */ lw $t6, ($v1) +/* 0ADFE4 7F0794B4 ADC00000 */ sw $zero, ($t6) +/* 0ADFE8 7F0794B8 8C6F0000 */ lw $t7, ($v1) +/* 0ADFEC 7F0794BC E5E00004 */ swc1 $f0, 4($t7) +/* 0ADFF0 7F0794C0 8C780000 */ lw $t8, ($v1) +/* 0ADFF4 7F0794C4 E7000008 */ swc1 $f0, 8($t8) +/* 0ADFF8 7F0794C8 8C790000 */ lw $t9, ($v1) +/* 0ADFFC 7F0794CC E720000C */ swc1 $f0, 0xc($t9) +/* 0AE000 7F0794D0 8C680000 */ lw $t0, ($v1) +/* 0AE004 7F0794D4 E5000010 */ swc1 $f0, 0x10($t0) +/* 0AE008 7F0794D8 8C690000 */ lw $t1, ($v1) +/* 0AE00C 7F0794DC E5200014 */ swc1 $f0, 0x14($t1) +/* 0AE010 7F0794E0 8C6A0000 */ lw $t2, ($v1) +/* 0AE014 7F0794E4 E5420018 */ swc1 $f2, 0x18($t2) +/* 0AE018 7F0794E8 8C6B0000 */ lw $t3, ($v1) +/* 0AE01C 7F0794EC E560001C */ swc1 $f0, 0x1c($t3) +/* 0AE020 7F0794F0 8C6C0000 */ lw $t4, ($v1) +/* 0AE024 7F0794F4 E5820020 */ swc1 $f2, 0x20($t4) +/* 0AE028 7F0794F8 8C6D0000 */ lw $t5, ($v1) +/* 0AE02C 7F0794FC E5A00024 */ swc1 $f0, 0x24($t5) +/* 0AE030 7F079500 8C6E0000 */ lw $t6, ($v1) +/* 0AE034 7F079504 E5C00028 */ swc1 $f0, 0x28($t6) +/* 0AE038 7F079508 8C6F0000 */ lw $t7, ($v1) +/* 0AE03C 7F07950C E5E0002C */ swc1 $f0, 0x2c($t7) +/* 0AE040 7F079510 8C780000 */ lw $t8, ($v1) +/* 0AE044 7F079514 E7000030 */ swc1 $f0, 0x30($t8) +/* 0AE048 7F079518 8C790000 */ lw $t9, ($v1) +/* 0AE04C 7F07951C AF200034 */ sw $zero, 0x34($t9) +/* 0AE050 7F079520 8C680000 */ lw $t0, ($v1) +/* 0AE054 7F079524 E50003C4 */ swc1 $f0, 0x3c4($t0) +/* 0AE058 7F079528 8C690000 */ lw $t1, ($v1) +/* 0AE05C 7F07952C E52003C8 */ swc1 $f0, 0x3c8($t1) +/* 0AE060 7F079530 8C6A0000 */ lw $t2, ($v1) +/* 0AE064 7F079534 E54203CC */ swc1 $f2, 0x3cc($t2) +/* 0AE068 7F079538 8C6B0000 */ lw $t3, ($v1) +/* 0AE06C 7F07953C E5600084 */ swc1 $f0, 0x84($t3) +/* 0AE070 7F079540 8C6C0000 */ lw $t4, ($v1) +/* 0AE074 7F079544 E5800088 */ swc1 $f0, 0x88($t4) +/* 0AE078 7F079548 8C6D0000 */ lw $t5, ($v1) +/* 0AE07C 7F07954C ADA0008C */ sw $zero, 0x8c($t5) +/* 0AE080 7F079550 8C6E0000 */ lw $t6, ($v1) +/* 0AE084 7F079554 E5C00090 */ swc1 $f0, 0x90($t6) +/* 0AE088 7F079558 8C6F0000 */ lw $t7, ($v1) +/* 0AE08C 7F07955C ADE00094 */ sw $zero, 0x94($t7) +/* 0AE090 7F079560 8C780000 */ lw $t8, ($v1) +/* 0AE094 7F079564 E7000098 */ swc1 $f0, 0x98($t8) +/* 0AE098 7F079568 8C790000 */ lw $t9, ($v1) +/* 0AE09C 7F07956C E7201274 */ swc1 $f0, 0x1274($t9) +/* 0AE0A0 7F079570 8C680000 */ lw $t0, ($v1) +/* 0AE0A4 7F079574 E5001278 */ swc1 $f0, 0x1278($t0) +/* 0AE0A8 7F079578 8C690000 */ lw $t1, ($v1) +/* 0AE0AC 7F07957C E520127C */ swc1 $f0, 0x127c($t1) +/* 0AE0B0 7F079580 8C6A0000 */ lw $t2, ($v1) +/* 0AE0B4 7F079584 AD47009C */ sw $a3, 0x9c($t2) +/* 0AE0B8 7F079588 8C6B0000 */ lw $t3, ($v1) +/* 0AE0BC 7F07958C AD6729FC */ sw $a3, 0x29fc($t3) +/* 0AE0C0 7F079590 8C6C0000 */ lw $t4, ($v1) +/* 0AE0C4 7F079594 E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0AE0C8 7F079598 8C6D0000 */ lw $t5, ($v1) +/* 0AE0CC 7F07959C E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0AE0D0 7F0795A0 8C6E0000 */ lw $t6, ($v1) +/* 0AE0D4 7F0795A4 ADC500AC */ sw $a1, 0xac($t6) +/* 0AE0D8 7F0795A8 8C6F0000 */ lw $t7, ($v1) +/* 0AE0DC 7F0795AC ADE000D0 */ sw $zero, 0xd0($t7) +/* 0AE0E0 7F0795B0 8C780000 */ lw $t8, ($v1) +/* 0AE0E4 7F0795B4 AF0000D8 */ sw $zero, 0xd8($t8) +/* 0AE0E8 7F0795B8 8C790000 */ lw $t9, ($v1) +/* 0AE0EC 7F0795BC E72200DC */ swc1 $f2, 0xdc($t9) +/* 0AE0F0 7F0795C0 8C680000 */ lw $t0, ($v1) +/* 0AE0F4 7F0795C4 E50000E0 */ swc1 $f0, 0xe0($t0) +/* 0AE0F8 7F0795C8 8C690000 */ lw $t1, ($v1) +/* 0AE0FC 7F0795CC E52200E4 */ swc1 $f2, 0xe4($t1) +/* 0AE100 7F0795D0 8C6A0000 */ lw $t2, ($v1) +/* 0AE104 7F0795D4 E54000E8 */ swc1 $f0, 0xe8($t2) +/* 0AE108 7F0795D8 8C6B0000 */ lw $t3, ($v1) +/* 0AE10C 7F0795DC E56200EC */ swc1 $f2, 0xec($t3) +/* 0AE110 7F0795E0 8C6C0000 */ lw $t4, ($v1) +/* 0AE114 7F0795E4 E58000F0 */ swc1 $f0, 0xf0($t4) +/* 0AE118 7F0795E8 8C6D0000 */ lw $t5, ($v1) +/* 0AE11C 7F0795EC ADA600F4 */ sw $a2, 0xf4($t5) +/* 0AE120 7F0795F0 8C6E0000 */ lw $t6, ($v1) +/* 0AE124 7F0795F4 ADC600F8 */ sw $a2, 0xf8($t6) +/* 0AE128 7F0795F8 8C6F0000 */ lw $t7, ($v1) +/* 0AE12C 7F0795FC ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0AE130 7F079600 8C780000 */ lw $t8, ($v1) +/* 0AE134 7F079604 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0AE138 7F079608 8C790000 */ lw $t9, ($v1) +/* 0AE13C 7F07960C AF2001C8 */ sw $zero, 0x1c8($t9) +/* 0AE140 7F079610 8C680000 */ lw $t0, ($v1) +/* 0AE144 7F079614 AD0501CC */ sw $a1, 0x1cc($t0) +/* 0AE148 7F079618 8C690000 */ lw $t1, ($v1) +/* 0AE14C 7F07961C AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0AE150 7F079620 8C6A0000 */ lw $t2, ($v1) +/* 0AE154 7F079624 AD4001A0 */ sw $zero, 0x1a0($t2) +/* 0AE158 7F079628 8C6B0000 */ lw $t3, ($v1) +/* 0AE15C 7F07962C E560019C */ swc1 $f0, 0x19c($t3) +/* 0AE160 7F079630 8C6C0000 */ lw $t4, ($v1) +/* 0AE164 7F079634 E580014C */ swc1 $f0, 0x14c($t4) +/* 0AE168 7F079638 8C6D0000 */ lw $t5, ($v1) +/* 0AE16C 7F07963C E5A20150 */ swc1 $f2, 0x150($t5) +/* 0AE170 7F079640 8C6E0000 */ lw $t6, ($v1) +/* 0AE174 7F079644 E5C00154 */ swc1 $f0, 0x154($t6) +/* 0AE178 7F079648 8C6F0000 */ lw $t7, ($v1) +/* 0AE17C 7F07964C E5E40158 */ swc1 $f4, 0x158($t7) +/* 0AE180 7F079650 8C640000 */ lw $a0, ($v1) +/* 0AE184 7F079654 C4860158 */ lwc1 $f6, 0x158($a0) +/* 0AE188 7F079658 E486015C */ swc1 $f6, 0x15c($a0) +/* 0AE18C 7F07965C 8C640000 */ lw $a0, ($v1) +/* 0AE190 7F079660 C48C015C */ lwc1 $f12, 0x15c($a0) +/* 0AE194 7F079664 4600603C */ c.lt.s $f12, $f0 +/* 0AE198 7F079668 00000000 */ nop +/* 0AE19C 7F07966C 45020007 */ bc1fl .L7F07968C +/* 0AE1A0 7F079670 E4800160 */ swc1 $f0, 0x160($a0) +/* 0AE1A4 7F079674 44814000 */ mtc1 $at, $f8 +/* 0AE1A8 7F079678 00000000 */ nop +/* 0AE1AC 7F07967C 46086280 */ add.s $f10, $f12, $f8 +/* 0AE1B0 7F079680 E48A015C */ swc1 $f10, 0x15c($a0) +/* 0AE1B4 7F079684 8C640000 */ lw $a0, ($v1) +/* 0AE1B8 7F079688 E4800160 */ swc1 $f0, 0x160($a0) +.L7F07968C: +/* 0AE1BC 7F07968C 8C780000 */ lw $t8, ($v1) +/* 0AE1C0 7F079690 240200FF */ li $v0, 255 +/* 0AE1C4 7F079694 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0AE1C8 7F079698 E7020164 */ swc1 $f2, 0x164($t8) +/* 0AE1CC 7F07969C 8C790000 */ lw $t9, ($v1) +/* 0AE1D0 7F0796A0 44816000 */ mtc1 $at, $f12 +/* 0AE1D4 7F0796A4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0AE1D8 7F0796A8 E7200168 */ swc1 $f0, 0x168($t9) +/* 0AE1DC 7F0796AC 8C680000 */ lw $t0, ($v1) +/* 0AE1E0 7F0796B0 44818000 */ mtc1 $at, $f16 +/* 0AE1E4 7F0796B4 E500016C */ swc1 $f0, 0x16c($t0) +/* 0AE1E8 7F0796B8 8C690000 */ lw $t1, ($v1) +/* 0AE1EC 7F0796BC E5200170 */ swc1 $f0, 0x170($t1) +/* 0AE1F0 7F0796C0 8C6A0000 */ lw $t2, ($v1) +/* 0AE1F4 7F0796C4 E5400174 */ swc1 $f0, 0x174($t2) +/* 0AE1F8 7F0796C8 8C6B0000 */ lw $t3, ($v1) +/* 0AE1FC 7F0796CC E5602A4C */ swc1 $f0, 0x2a4c($t3) +/* 0AE200 7F0796D0 8C6C0000 */ lw $t4, ($v1) +/* 0AE204 7F0796D4 E5820178 */ swc1 $f2, 0x178($t4) +/* 0AE208 7F0796D8 8C6D0000 */ lw $t5, ($v1) +/* 0AE20C 7F0796DC ADA0017C */ sw $zero, 0x17c($t5) +/* 0AE210 7F0796E0 8C6E0000 */ lw $t6, ($v1) +/* 0AE214 7F0796E4 E5C00180 */ swc1 $f0, 0x180($t6) +/* 0AE218 7F0796E8 8C6F0000 */ lw $t7, ($v1) +/* 0AE21C 7F0796EC E5E00184 */ swc1 $f0, 0x184($t7) +/* 0AE220 7F0796F0 8C780000 */ lw $t8, ($v1) +/* 0AE224 7F0796F4 E7000188 */ swc1 $f0, 0x188($t8) +/* 0AE228 7F0796F8 8C790000 */ lw $t9, ($v1) +/* 0AE22C 7F0796FC AF200104 */ sw $zero, 0x104($t9) +/* 0AE230 7F079700 8C680000 */ lw $t0, ($v1) +/* 0AE234 7F079704 AD000108 */ sw $zero, 0x108($t0) +/* 0AE238 7F079708 8C690000 */ lw $t1, ($v1) +/* 0AE23C 7F07970C AD20010C */ sw $zero, 0x10c($t1) +/* 0AE240 7F079710 8C6A0000 */ lw $t2, ($v1) +/* 0AE244 7F079714 AD400110 */ sw $zero, 0x110($t2) +/* 0AE248 7F079718 8C6B0000 */ lw $t3, ($v1) +/* 0AE24C 7F07971C AD650114 */ sw $a1, 0x114($t3) +/* 0AE250 7F079720 8C6C0000 */ lw $t4, ($v1) +/* 0AE254 7F079724 AD850118 */ sw $a1, 0x118($t4) +/* 0AE258 7F079728 8C6D0000 */ lw $t5, ($v1) +/* 0AE25C 7F07972C ADA0011C */ sw $zero, 0x11c($t5) +/* 0AE260 7F079730 8C6E0000 */ lw $t6, ($v1) +/* 0AE264 7F079734 ADC50120 */ sw $a1, 0x120($t6) +/* 0AE268 7F079738 8C6F0000 */ lw $t7, ($v1) +/* 0AE26C 7F07973C ADE00124 */ sw $zero, 0x124($t7) +/* 0AE270 7F079740 8C780000 */ lw $t8, ($v1) +/* 0AE274 7F079744 AF050128 */ sw $a1, 0x128($t8) +/* 0AE278 7F079748 8C790000 */ lw $t9, ($v1) +/* 0AE27C 7F07974C E720012C */ swc1 $f0, 0x12c($t9) +/* 0AE280 7F079750 8C680000 */ lw $t0, ($v1) +/* 0AE284 7F079754 AD000130 */ sw $zero, 0x130($t0) +/* 0AE288 7F079758 8C690000 */ lw $t1, ($v1) +/* 0AE28C 7F07975C AD260134 */ sw $a2, 0x134($t1) +/* 0AE290 7F079760 8C6A0000 */ lw $t2, ($v1) +/* 0AE294 7F079764 AD450138 */ sw $a1, 0x138($t2) +/* 0AE298 7F079768 8C6B0000 */ lw $t3, ($v1) +/* 0AE29C 7F07976C E560013C */ swc1 $f0, 0x13c($t3) +/* 0AE2A0 7F079770 8C6C0000 */ lw $t4, ($v1) +/* 0AE2A4 7F079774 AD800140 */ sw $zero, 0x140($t4) +/* 0AE2A8 7F079778 8C6D0000 */ lw $t5, ($v1) +/* 0AE2AC 7F07977C ADA60144 */ sw $a2, 0x144($t5) +/* 0AE2B0 7F079780 8C6E0000 */ lw $t6, ($v1) +/* 0AE2B4 7F079784 ADC203D0 */ sw $v0, 0x3d0($t6) +/* 0AE2B8 7F079788 8C6F0000 */ lw $t7, ($v1) +/* 0AE2BC 7F07978C ADE203D4 */ sw $v0, 0x3d4($t7) +/* 0AE2C0 7F079790 8C780000 */ lw $t8, ($v1) +/* 0AE2C4 7F079794 AF0203D8 */ sw $v0, 0x3d8($t8) +/* 0AE2C8 7F079798 8C790000 */ lw $t9, ($v1) +/* 0AE2CC 7F07979C E72003DC */ swc1 $f0, 0x3dc($t9) +/* 0AE2D0 7F0797A0 8C680000 */ lw $t0, ($v1) +/* 0AE2D4 7F0797A4 E50C03E0 */ swc1 $f12, 0x3e0($t0) +/* 0AE2D8 7F0797A8 8C690000 */ lw $t1, ($v1) +/* 0AE2DC 7F0797AC E52C03E4 */ swc1 $f12, 0x3e4($t1) +/* 0AE2E0 7F0797B0 8C6A0000 */ lw $t2, ($v1) +/* 0AE2E4 7F0797B4 AD4203E8 */ sw $v0, 0x3e8($t2) +/* 0AE2E8 7F0797B8 8C6B0000 */ lw $t3, ($v1) +/* 0AE2EC 7F0797BC AD6203EC */ sw $v0, 0x3ec($t3) +/* 0AE2F0 7F0797C0 8C6C0000 */ lw $t4, ($v1) +/* 0AE2F4 7F0797C4 AD8203F0 */ sw $v0, 0x3f0($t4) +/* 0AE2F8 7F0797C8 8C6D0000 */ lw $t5, ($v1) +/* 0AE2FC 7F0797CC ADA203F4 */ sw $v0, 0x3f4($t5) +/* 0AE300 7F0797D0 8C6E0000 */ lw $t6, ($v1) +/* 0AE304 7F0797D4 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0AE308 7F0797D8 8C6F0000 */ lw $t7, ($v1) +/* 0AE30C 7F0797DC ADE203FC */ sw $v0, 0x3fc($t7) +/* 0AE310 7F0797E0 8C780000 */ lw $t8, ($v1) +/* 0AE314 7F0797E4 E7000400 */ swc1 $f0, 0x400($t8) +/* 0AE318 7F0797E8 8C790000 */ lw $t9, ($v1) +/* 0AE31C 7F0797EC E7200404 */ swc1 $f0, 0x404($t9) +/* 0AE320 7F0797F0 8C680000 */ lw $t0, ($v1) +/* 0AE324 7F0797F4 E50C018C */ swc1 $f12, 0x18c($t0) +/* 0AE328 7F0797F8 8C690000 */ lw $t1, ($v1) +/* 0AE32C 7F0797FC E52C0190 */ swc1 $f12, 0x190($t1) +/* 0AE330 7F079800 8C6A0000 */ lw $t2, ($v1) +/* 0AE334 7F079804 E5400194 */ swc1 $f0, 0x194($t2) +/* 0AE338 7F079808 8C6B0000 */ lw $t3, ($v1) +/* 0AE33C 7F07980C E5600198 */ swc1 $f0, 0x198($t3) +/* 0AE340 7F079810 8C6C0000 */ lw $t4, ($v1) +/* 0AE344 7F079814 AD87042C */ sw $a3, 0x42c($t4) +/* 0AE348 7F079818 8C6D0000 */ lw $t5, ($v1) +/* 0AE34C 7F07981C ADA00430 */ sw $zero, 0x430($t5) +/* 0AE350 7F079820 8C6E0000 */ lw $t6, ($v1) +/* 0AE354 7F079824 E5C00204 */ swc1 $f0, 0x204($t6) +/* 0AE358 7F079828 8C6F0000 */ lw $t7, ($v1) +/* 0AE35C 7F07982C E5E00208 */ swc1 $f0, 0x208($t7) +/* 0AE360 7F079830 8C780000 */ lw $t8, ($v1) +/* 0AE364 7F079834 E700020C */ swc1 $f0, 0x20c($t8) +/* 0AE368 7F079838 8C790000 */ lw $t9, ($v1) +/* 0AE36C 7F07983C E7200210 */ swc1 $f0, 0x210($t9) +/* 0AE370 7F079840 8C680000 */ lw $t0, ($v1) +/* 0AE374 7F079844 E5000214 */ swc1 $f0, 0x214($t0) +/* 0AE378 7F079848 8C690000 */ lw $t1, ($v1) +/* 0AE37C 7F07984C AD200218 */ sw $zero, 0x218($t1) +/* 0AE380 7F079850 8C6A0000 */ lw $t2, ($v1) +/* 0AE384 7F079854 AD400220 */ sw $zero, 0x220($t2) +/* 0AE388 7F079858 8C6B0000 */ lw $t3, ($v1) +/* 0AE38C 7F07985C E5600224 */ swc1 $f0, 0x224($t3) +/* 0AE390 7F079860 8C6C0000 */ lw $t4, ($v1) +/* 0AE394 7F079864 AD800200 */ sw $zero, 0x200($t4) +/* 0AE398 7F079868 8C6D0000 */ lw $t5, ($v1) +/* 0AE39C 7F07986C A5A003B4 */ sh $zero, 0x3b4($t5) +/* 0AE3A0 7F079870 8C6E0000 */ lw $t6, ($v1) +/* 0AE3A4 7F079874 A5C003B6 */ sh $zero, 0x3b6($t6) +/* 0AE3A8 7F079878 8C6F0000 */ lw $t7, ($v1) +/* 0AE3AC 7F07987C E5F029C0 */ swc1 $f16, 0x29c0($t7) +/* 0AE3B0 7F079880 8C780000 */ lw $t8, ($v1) +/* 0AE3B4 7F079884 A7062A04 */ sh $a2, 0x2a04($t8) +/* 0AE3B8 7F079888 8C790000 */ lw $t9, ($v1) +/* 0AE3BC 7F07988C E7202A08 */ swc1 $f0, 0x2a08($t9) +/* 0AE3C0 7F079890 8C680000 */ lw $t0, ($v1) +/* 0AE3C4 7F079894 E5002A0C */ swc1 $f0, 0x2a0c($t0) +/* 0AE3C8 7F079898 8C690000 */ lw $t1, ($v1) +/* 0AE3CC 7F07989C AD202A6C */ sw $zero, 0x2a6c($t1) +/* 0AE3D0 7F0798A0 8C6A0000 */ lw $t2, ($v1) +/* 0AE3D4 7F0798A4 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0AE3D8 7F0798A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AE3DC 7F0798AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AE3E0 7F0798B0 03E00008 */ jr $ra +/* 0AE3E4 7F0798B4 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel init_player_BONDdata +/* 0AE54C 7F0799DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AE550 7F0799E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AE554 7F0799E4 0FC26C01 */ jal get_num_players +/* 0AE558 7F0799E8 00000000 */ nop +/* 0AE55C 7F0799EC 28410002 */ slti $at, $v0, 2 +/* 0AE560 7F0799F0 1420000E */ bnez $at, .L7F079A2C +/* 0AE564 7F0799F4 00000000 */ nop +/* 0AE568 7F0799F8 0FC26F3C */ jal get_cur_playernum +/* 0AE56C 7F0799FC 00000000 */ nop +/* 0AE570 7F079A00 0FC0403F */ jal get_player_control_style +/* 0AE574 7F079A04 00402025 */ move $a0, $v0 +/* 0AE578 7F079A08 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AE57C 7F079A0C 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AE580 7F079A10 8C6E0000 */ lw $t6, ($v1) +/* 0AE584 7F079A14 0FC26F3C */ jal get_cur_playernum +/* 0AE588 7F079A18 ADC20430 */ sw $v0, 0x430($t6) +/* 0AE58C 7F079A1C 0FC0403F */ jal get_player_control_style +/* 0AE590 7F079A20 00402025 */ move $a0, $v0 +/* 0AE594 7F079A24 0FC2965C */ jal cur_player_set_control_type +/* 0AE598 7F079A28 00402025 */ move $a0, $v0 +.L7F079A2C: +/* 0AE59C 7F079A2C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AE5A0 7F079A30 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AE5A4 7F079A34 44800000 */ mtc1 $zero, $f0 +/* 0AE5A8 7F079A38 8C6F0000 */ lw $t7, ($v1) +/* 0AE5AC 7F079A3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AE5B0 7F079A40 44811000 */ mtc1 $at, $f2 +/* 0AE5B4 7F079A44 E5E00038 */ swc1 $f0, 0x38($t7) +/* 0AE5B8 7F079A48 8C780000 */ lw $t8, ($v1) +/* 0AE5BC 7F079A4C 24070002 */ li $a3, 2 +/* 0AE5C0 7F079A50 24050001 */ li $a1, 1 +/* 0AE5C4 7F079A54 E700003C */ swc1 $f0, 0x3c($t8) +/* 0AE5C8 7F079A58 8C790000 */ lw $t9, ($v1) +/* 0AE5CC 7F079A5C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0AE5D0 7F079A60 44816000 */ mtc1 $at, $f12 +/* 0AE5D4 7F079A64 E7200040 */ swc1 $f0, 0x40($t9) +/* 0AE5D8 7F079A68 8C680000 */ lw $t0, ($v1) +/* 0AE5DC 7F079A6C 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0AE5E0 7F079A70 44812000 */ mtc1 $at, $f4 +/* 0AE5E4 7F079A74 E5000044 */ swc1 $f0, 0x44($t0) +/* 0AE5E8 7F079A78 8C690000 */ lw $t1, ($v1) +/* 0AE5EC 7F079A7C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AE5F0 7F079A80 E5200048 */ swc1 $f0, 0x48($t1) +/* 0AE5F4 7F079A84 8C6A0000 */ lw $t2, ($v1) +/* 0AE5F8 7F079A88 E540004C */ swc1 $f0, 0x4c($t2) +/* 0AE5FC 7F079A8C 8C6B0000 */ lw $t3, ($v1) +/* 0AE600 7F079A90 E5600050 */ swc1 $f0, 0x50($t3) +/* 0AE604 7F079A94 8C6C0000 */ lw $t4, ($v1) +/* 0AE608 7F079A98 E5800054 */ swc1 $f0, 0x54($t4) +/* 0AE60C 7F079A9C 8C6D0000 */ lw $t5, ($v1) +/* 0AE610 7F079AA0 E5A00058 */ swc1 $f0, 0x58($t5) +/* 0AE614 7F079AA4 8C6E0000 */ lw $t6, ($v1) +/* 0AE618 7F079AA8 ADC00000 */ sw $zero, ($t6) +/* 0AE61C 7F079AAC 8C6F0000 */ lw $t7, ($v1) +/* 0AE620 7F079AB0 E5E00004 */ swc1 $f0, 4($t7) +/* 0AE624 7F079AB4 8C780000 */ lw $t8, ($v1) +/* 0AE628 7F079AB8 E7000008 */ swc1 $f0, 8($t8) +/* 0AE62C 7F079ABC 8C790000 */ lw $t9, ($v1) +/* 0AE630 7F079AC0 E720000C */ swc1 $f0, 0xc($t9) +/* 0AE634 7F079AC4 8C680000 */ lw $t0, ($v1) +/* 0AE638 7F079AC8 E5000010 */ swc1 $f0, 0x10($t0) +/* 0AE63C 7F079ACC 8C690000 */ lw $t1, ($v1) +/* 0AE640 7F079AD0 E5200014 */ swc1 $f0, 0x14($t1) +/* 0AE644 7F079AD4 8C6A0000 */ lw $t2, ($v1) +/* 0AE648 7F079AD8 E5420018 */ swc1 $f2, 0x18($t2) +/* 0AE64C 7F079ADC 8C6B0000 */ lw $t3, ($v1) +/* 0AE650 7F079AE0 E560001C */ swc1 $f0, 0x1c($t3) +/* 0AE654 7F079AE4 8C6C0000 */ lw $t4, ($v1) +/* 0AE658 7F079AE8 E5820020 */ swc1 $f2, 0x20($t4) +/* 0AE65C 7F079AEC 8C6D0000 */ lw $t5, ($v1) +/* 0AE660 7F079AF0 E5A00024 */ swc1 $f0, 0x24($t5) +/* 0AE664 7F079AF4 8C6E0000 */ lw $t6, ($v1) +/* 0AE668 7F079AF8 E5C00028 */ swc1 $f0, 0x28($t6) +/* 0AE66C 7F079AFC 8C6F0000 */ lw $t7, ($v1) +/* 0AE670 7F079B00 E5E0002C */ swc1 $f0, 0x2c($t7) +/* 0AE674 7F079B04 8C780000 */ lw $t8, ($v1) +/* 0AE678 7F079B08 E7000030 */ swc1 $f0, 0x30($t8) +/* 0AE67C 7F079B0C 8C790000 */ lw $t9, ($v1) +/* 0AE680 7F079B10 AF200034 */ sw $zero, 0x34($t9) +/* 0AE684 7F079B14 8C680000 */ lw $t0, ($v1) +/* 0AE688 7F079B18 E50003C4 */ swc1 $f0, 0x3c4($t0) +/* 0AE68C 7F079B1C 8C690000 */ lw $t1, ($v1) +/* 0AE690 7F079B20 E52003C8 */ swc1 $f0, 0x3c8($t1) +/* 0AE694 7F079B24 8C6A0000 */ lw $t2, ($v1) +/* 0AE698 7F079B28 E54203CC */ swc1 $f2, 0x3cc($t2) +/* 0AE69C 7F079B2C 8C6B0000 */ lw $t3, ($v1) +/* 0AE6A0 7F079B30 E5600084 */ swc1 $f0, 0x84($t3) +/* 0AE6A4 7F079B34 8C6C0000 */ lw $t4, ($v1) +/* 0AE6A8 7F079B38 E5800088 */ swc1 $f0, 0x88($t4) +/* 0AE6AC 7F079B3C 8C6D0000 */ lw $t5, ($v1) +/* 0AE6B0 7F079B40 ADA0008C */ sw $zero, 0x8c($t5) +/* 0AE6B4 7F079B44 8C6E0000 */ lw $t6, ($v1) +/* 0AE6B8 7F079B48 E5C00090 */ swc1 $f0, 0x90($t6) +/* 0AE6BC 7F079B4C 8C6F0000 */ lw $t7, ($v1) +/* 0AE6C0 7F079B50 ADE00094 */ sw $zero, 0x94($t7) +/* 0AE6C4 7F079B54 8C780000 */ lw $t8, ($v1) +/* 0AE6C8 7F079B58 E7000098 */ swc1 $f0, 0x98($t8) +/* 0AE6CC 7F079B5C 8C790000 */ lw $t9, ($v1) +/* 0AE6D0 7F079B60 E7201274 */ swc1 $f0, 0x1274($t9) +/* 0AE6D4 7F079B64 8C680000 */ lw $t0, ($v1) +/* 0AE6D8 7F079B68 E5001278 */ swc1 $f0, 0x1278($t0) +/* 0AE6DC 7F079B6C 8C690000 */ lw $t1, ($v1) +/* 0AE6E0 7F079B70 E520127C */ swc1 $f0, 0x127c($t1) +/* 0AE6E4 7F079B74 8C6A0000 */ lw $t2, ($v1) +/* 0AE6E8 7F079B78 AD47009C */ sw $a3, 0x9c($t2) +/* 0AE6EC 7F079B7C 8C6B0000 */ lw $t3, ($v1) +/* 0AE6F0 7F079B80 AD6729FC */ sw $a3, 0x29fc($t3) +/* 0AE6F4 7F079B84 8C6C0000 */ lw $t4, ($v1) +/* 0AE6F8 7F079B88 E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0AE6FC 7F079B8C 8C6D0000 */ lw $t5, ($v1) +/* 0AE700 7F079B90 E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0AE704 7F079B94 8C6E0000 */ lw $t6, ($v1) +/* 0AE708 7F079B98 ADC500AC */ sw $a1, 0xac($t6) +/* 0AE70C 7F079B9C 8C6F0000 */ lw $t7, ($v1) +/* 0AE710 7F079BA0 ADE000D0 */ sw $zero, 0xd0($t7) +/* 0AE714 7F079BA4 8C780000 */ lw $t8, ($v1) +/* 0AE718 7F079BA8 AF0000D8 */ sw $zero, 0xd8($t8) +/* 0AE71C 7F079BAC 8C790000 */ lw $t9, ($v1) +/* 0AE720 7F079BB0 E72200DC */ swc1 $f2, 0xdc($t9) +/* 0AE724 7F079BB4 8C680000 */ lw $t0, ($v1) +/* 0AE728 7F079BB8 E50000E0 */ swc1 $f0, 0xe0($t0) +/* 0AE72C 7F079BBC 8C690000 */ lw $t1, ($v1) +/* 0AE730 7F079BC0 E52200E4 */ swc1 $f2, 0xe4($t1) +/* 0AE734 7F079BC4 8C6A0000 */ lw $t2, ($v1) +/* 0AE738 7F079BC8 E54000E8 */ swc1 $f0, 0xe8($t2) +/* 0AE73C 7F079BCC 8C6B0000 */ lw $t3, ($v1) +/* 0AE740 7F079BD0 E56200EC */ swc1 $f2, 0xec($t3) +/* 0AE744 7F079BD4 8C6C0000 */ lw $t4, ($v1) +/* 0AE748 7F079BD8 E58000F0 */ swc1 $f0, 0xf0($t4) +/* 0AE74C 7F079BDC 8C6D0000 */ lw $t5, ($v1) +/* 0AE750 7F079BE0 E5AC00F4 */ swc1 $f12, 0xf4($t5) +/* 0AE754 7F079BE4 8C6E0000 */ lw $t6, ($v1) +/* 0AE758 7F079BE8 E5CC00F8 */ swc1 $f12, 0xf8($t6) +/* 0AE75C 7F079BEC 8C6F0000 */ lw $t7, ($v1) +/* 0AE760 7F079BF0 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0AE764 7F079BF4 8C780000 */ lw $t8, ($v1) +/* 0AE768 7F079BF8 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0AE76C 7F079BFC 8C790000 */ lw $t9, ($v1) +/* 0AE770 7F079C00 AF2001C8 */ sw $zero, 0x1c8($t9) +/* 0AE774 7F079C04 8C680000 */ lw $t0, ($v1) +/* 0AE778 7F079C08 AD0501CC */ sw $a1, 0x1cc($t0) +/* 0AE77C 7F079C0C 8C690000 */ lw $t1, ($v1) +/* 0AE780 7F079C10 AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0AE784 7F079C14 8C6A0000 */ lw $t2, ($v1) +/* 0AE788 7F079C18 AD4001A0 */ sw $zero, 0x1a0($t2) +/* 0AE78C 7F079C1C 8C6B0000 */ lw $t3, ($v1) +/* 0AE790 7F079C20 E560019C */ swc1 $f0, 0x19c($t3) +/* 0AE794 7F079C24 8C6C0000 */ lw $t4, ($v1) +/* 0AE798 7F079C28 E580014C */ swc1 $f0, 0x14c($t4) +/* 0AE79C 7F079C2C 8C6D0000 */ lw $t5, ($v1) +/* 0AE7A0 7F079C30 E5A20150 */ swc1 $f2, 0x150($t5) +/* 0AE7A4 7F079C34 8C6E0000 */ lw $t6, ($v1) +/* 0AE7A8 7F079C38 E5C00154 */ swc1 $f0, 0x154($t6) +/* 0AE7AC 7F079C3C 8C6F0000 */ lw $t7, ($v1) +/* 0AE7B0 7F079C40 E5E40158 */ swc1 $f4, 0x158($t7) +/* 0AE7B4 7F079C44 8C640000 */ lw $a0, ($v1) +/* 0AE7B8 7F079C48 C4860158 */ lwc1 $f6, 0x158($a0) +/* 0AE7BC 7F079C4C E486015C */ swc1 $f6, 0x15c($a0) +/* 0AE7C0 7F079C50 8C640000 */ lw $a0, ($v1) +/* 0AE7C4 7F079C54 C48E015C */ lwc1 $f14, 0x15c($a0) +/* 0AE7C8 7F079C58 4600703C */ c.lt.s $f14, $f0 +/* 0AE7CC 7F079C5C 00000000 */ nop +/* 0AE7D0 7F079C60 45020007 */ bc1fl .L7F079C80 +/* 0AE7D4 7F079C64 E4800160 */ swc1 $f0, 0x160($a0) +/* 0AE7D8 7F079C68 44814000 */ mtc1 $at, $f8 +/* 0AE7DC 7F079C6C 00000000 */ nop +/* 0AE7E0 7F079C70 46087280 */ add.s $f10, $f14, $f8 +/* 0AE7E4 7F079C74 E48A015C */ swc1 $f10, 0x15c($a0) +/* 0AE7E8 7F079C78 8C640000 */ lw $a0, ($v1) +/* 0AE7EC 7F079C7C E4800160 */ swc1 $f0, 0x160($a0) +.L7F079C80: +/* 0AE7F0 7F079C80 8C780000 */ lw $t8, ($v1) +/* 0AE7F4 7F079C84 2406FFFF */ li $a2, -1 +/* 0AE7F8 7F079C88 240200FF */ li $v0, 255 +/* 0AE7FC 7F079C8C E7020164 */ swc1 $f2, 0x164($t8) +/* 0AE800 7F079C90 8C790000 */ lw $t9, ($v1) +/* 0AE804 7F079C94 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0AE808 7F079C98 44818000 */ mtc1 $at, $f16 +/* 0AE80C 7F079C9C E7200168 */ swc1 $f0, 0x168($t9) +/* 0AE810 7F079CA0 8C680000 */ lw $t0, ($v1) +/* 0AE814 7F079CA4 E500016C */ swc1 $f0, 0x16c($t0) +/* 0AE818 7F079CA8 8C690000 */ lw $t1, ($v1) +/* 0AE81C 7F079CAC E5200170 */ swc1 $f0, 0x170($t1) +/* 0AE820 7F079CB0 8C6A0000 */ lw $t2, ($v1) +/* 0AE824 7F079CB4 E5400174 */ swc1 $f0, 0x174($t2) +/* 0AE828 7F079CB8 8C6B0000 */ lw $t3, ($v1) +/* 0AE82C 7F079CBC E5602A4C */ swc1 $f0, 0x2a4c($t3) +/* 0AE830 7F079CC0 8C6C0000 */ lw $t4, ($v1) +/* 0AE834 7F079CC4 E5820178 */ swc1 $f2, 0x178($t4) +/* 0AE838 7F079CC8 8C6D0000 */ lw $t5, ($v1) +/* 0AE83C 7F079CCC ADA0017C */ sw $zero, 0x17c($t5) +/* 0AE840 7F079CD0 8C6E0000 */ lw $t6, ($v1) +/* 0AE844 7F079CD4 E5C00180 */ swc1 $f0, 0x180($t6) +/* 0AE848 7F079CD8 8C6F0000 */ lw $t7, ($v1) +/* 0AE84C 7F079CDC E5E00184 */ swc1 $f0, 0x184($t7) +/* 0AE850 7F079CE0 8C780000 */ lw $t8, ($v1) +/* 0AE854 7F079CE4 E7000188 */ swc1 $f0, 0x188($t8) +/* 0AE858 7F079CE8 8C790000 */ lw $t9, ($v1) +/* 0AE85C 7F079CEC AF200104 */ sw $zero, 0x104($t9) +/* 0AE860 7F079CF0 8C680000 */ lw $t0, ($v1) +/* 0AE864 7F079CF4 AD000108 */ sw $zero, 0x108($t0) +/* 0AE868 7F079CF8 8C690000 */ lw $t1, ($v1) +/* 0AE86C 7F079CFC AD20010C */ sw $zero, 0x10c($t1) +/* 0AE870 7F079D00 8C6A0000 */ lw $t2, ($v1) +/* 0AE874 7F079D04 AD400110 */ sw $zero, 0x110($t2) +/* 0AE878 7F079D08 8C6B0000 */ lw $t3, ($v1) +/* 0AE87C 7F079D0C AD650114 */ sw $a1, 0x114($t3) +/* 0AE880 7F079D10 8C6C0000 */ lw $t4, ($v1) +/* 0AE884 7F079D14 AD850118 */ sw $a1, 0x118($t4) +/* 0AE888 7F079D18 8C6D0000 */ lw $t5, ($v1) +/* 0AE88C 7F079D1C ADA0011C */ sw $zero, 0x11c($t5) +/* 0AE890 7F079D20 8C6E0000 */ lw $t6, ($v1) +/* 0AE894 7F079D24 ADC50120 */ sw $a1, 0x120($t6) +/* 0AE898 7F079D28 8C6F0000 */ lw $t7, ($v1) +/* 0AE89C 7F079D2C ADE00124 */ sw $zero, 0x124($t7) +/* 0AE8A0 7F079D30 8C780000 */ lw $t8, ($v1) +/* 0AE8A4 7F079D34 AF050128 */ sw $a1, 0x128($t8) +/* 0AE8A8 7F079D38 8C790000 */ lw $t9, ($v1) +/* 0AE8AC 7F079D3C E720012C */ swc1 $f0, 0x12c($t9) +/* 0AE8B0 7F079D40 8C680000 */ lw $t0, ($v1) +/* 0AE8B4 7F079D44 AD000130 */ sw $zero, 0x130($t0) +/* 0AE8B8 7F079D48 8C690000 */ lw $t1, ($v1) +/* 0AE8BC 7F079D4C AD260134 */ sw $a2, 0x134($t1) +/* 0AE8C0 7F079D50 8C6A0000 */ lw $t2, ($v1) +/* 0AE8C4 7F079D54 AD450138 */ sw $a1, 0x138($t2) +/* 0AE8C8 7F079D58 8C6B0000 */ lw $t3, ($v1) +/* 0AE8CC 7F079D5C E560013C */ swc1 $f0, 0x13c($t3) +/* 0AE8D0 7F079D60 8C6C0000 */ lw $t4, ($v1) +/* 0AE8D4 7F079D64 AD800140 */ sw $zero, 0x140($t4) +/* 0AE8D8 7F079D68 8C6D0000 */ lw $t5, ($v1) +/* 0AE8DC 7F079D6C ADA60144 */ sw $a2, 0x144($t5) +/* 0AE8E0 7F079D70 8C6E0000 */ lw $t6, ($v1) +/* 0AE8E4 7F079D74 ADC203D0 */ sw $v0, 0x3d0($t6) +/* 0AE8E8 7F079D78 8C6F0000 */ lw $t7, ($v1) +/* 0AE8EC 7F079D7C ADE203D4 */ sw $v0, 0x3d4($t7) +/* 0AE8F0 7F079D80 8C780000 */ lw $t8, ($v1) +/* 0AE8F4 7F079D84 AF0203D8 */ sw $v0, 0x3d8($t8) +/* 0AE8F8 7F079D88 8C790000 */ lw $t9, ($v1) +/* 0AE8FC 7F079D8C E72003DC */ swc1 $f0, 0x3dc($t9) +/* 0AE900 7F079D90 8C680000 */ lw $t0, ($v1) +/* 0AE904 7F079D94 E50C03E0 */ swc1 $f12, 0x3e0($t0) +/* 0AE908 7F079D98 8C690000 */ lw $t1, ($v1) +/* 0AE90C 7F079D9C E52C03E4 */ swc1 $f12, 0x3e4($t1) +/* 0AE910 7F079DA0 8C6A0000 */ lw $t2, ($v1) +/* 0AE914 7F079DA4 AD4203E8 */ sw $v0, 0x3e8($t2) +/* 0AE918 7F079DA8 8C6B0000 */ lw $t3, ($v1) +/* 0AE91C 7F079DAC AD6203EC */ sw $v0, 0x3ec($t3) +/* 0AE920 7F079DB0 8C6C0000 */ lw $t4, ($v1) +/* 0AE924 7F079DB4 AD8203F0 */ sw $v0, 0x3f0($t4) +/* 0AE928 7F079DB8 8C6D0000 */ lw $t5, ($v1) +/* 0AE92C 7F079DBC ADA203F4 */ sw $v0, 0x3f4($t5) +/* 0AE930 7F079DC0 8C6E0000 */ lw $t6, ($v1) +/* 0AE934 7F079DC4 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0AE938 7F079DC8 8C6F0000 */ lw $t7, ($v1) +/* 0AE93C 7F079DCC ADE203FC */ sw $v0, 0x3fc($t7) +/* 0AE940 7F079DD0 8C780000 */ lw $t8, ($v1) +/* 0AE944 7F079DD4 E7000400 */ swc1 $f0, 0x400($t8) +/* 0AE948 7F079DD8 8C790000 */ lw $t9, ($v1) +/* 0AE94C 7F079DDC E7200404 */ swc1 $f0, 0x404($t9) +/* 0AE950 7F079DE0 8C680000 */ lw $t0, ($v1) +/* 0AE954 7F079DE4 E50C018C */ swc1 $f12, 0x18c($t0) +/* 0AE958 7F079DE8 8C690000 */ lw $t1, ($v1) +/* 0AE95C 7F079DEC E52C0190 */ swc1 $f12, 0x190($t1) +/* 0AE960 7F079DF0 8C6A0000 */ lw $t2, ($v1) +/* 0AE964 7F079DF4 E5400194 */ swc1 $f0, 0x194($t2) +/* 0AE968 7F079DF8 8C6B0000 */ lw $t3, ($v1) +/* 0AE96C 7F079DFC E5600198 */ swc1 $f0, 0x198($t3) +/* 0AE970 7F079E00 8C6C0000 */ lw $t4, ($v1) +/* 0AE974 7F079E04 AD87042C */ sw $a3, 0x42c($t4) +/* 0AE978 7F079E08 8C6D0000 */ lw $t5, ($v1) +/* 0AE97C 7F079E0C ADA00430 */ sw $zero, 0x430($t5) +/* 0AE980 7F079E10 8C6E0000 */ lw $t6, ($v1) +/* 0AE984 7F079E14 E5C00204 */ swc1 $f0, 0x204($t6) +/* 0AE988 7F079E18 8C6F0000 */ lw $t7, ($v1) +/* 0AE98C 7F079E1C E5E00208 */ swc1 $f0, 0x208($t7) +/* 0AE990 7F079E20 8C780000 */ lw $t8, ($v1) +/* 0AE994 7F079E24 E700020C */ swc1 $f0, 0x20c($t8) +/* 0AE998 7F079E28 8C790000 */ lw $t9, ($v1) +/* 0AE99C 7F079E2C E7200210 */ swc1 $f0, 0x210($t9) +/* 0AE9A0 7F079E30 8C680000 */ lw $t0, ($v1) +/* 0AE9A4 7F079E34 E5000214 */ swc1 $f0, 0x214($t0) +/* 0AE9A8 7F079E38 8C690000 */ lw $t1, ($v1) +/* 0AE9AC 7F079E3C AD200218 */ sw $zero, 0x218($t1) +/* 0AE9B0 7F079E40 8C6A0000 */ lw $t2, ($v1) +/* 0AE9B4 7F079E44 AD400220 */ sw $zero, 0x220($t2) +/* 0AE9B8 7F079E48 8C6B0000 */ lw $t3, ($v1) +/* 0AE9BC 7F079E4C E5600224 */ swc1 $f0, 0x224($t3) +/* 0AE9C0 7F079E50 8C6C0000 */ lw $t4, ($v1) +/* 0AE9C4 7F079E54 AD800200 */ sw $zero, 0x200($t4) +/* 0AE9C8 7F079E58 8C6D0000 */ lw $t5, ($v1) +/* 0AE9CC 7F079E5C A5A003B4 */ sh $zero, 0x3b4($t5) +/* 0AE9D0 7F079E60 8C6E0000 */ lw $t6, ($v1) +/* 0AE9D4 7F079E64 A5C003B6 */ sh $zero, 0x3b6($t6) +/* 0AE9D8 7F079E68 8C6F0000 */ lw $t7, ($v1) +/* 0AE9DC 7F079E6C E5F029C0 */ swc1 $f16, 0x29c0($t7) +/* 0AE9E0 7F079E70 8C780000 */ lw $t8, ($v1) +/* 0AE9E4 7F079E74 A7062A04 */ sh $a2, 0x2a04($t8) +/* 0AE9E8 7F079E78 8C790000 */ lw $t9, ($v1) +/* 0AE9EC 7F079E7C E7202A08 */ swc1 $f0, 0x2a08($t9) +/* 0AE9F0 7F079E80 8C680000 */ lw $t0, ($v1) +/* 0AE9F4 7F079E84 E5002A0C */ swc1 $f0, 0x2a0c($t0) +/* 0AE9F8 7F079E88 8C690000 */ lw $t1, ($v1) +/* 0AE9FC 7F079E8C AD202A6C */ sw $zero, 0x2a6c($t1) +/* 0AEA00 7F079E90 8C6A0000 */ lw $t2, ($v1) +/* 0AEA04 7F079E94 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0AEA08 7F079E98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AEA0C 7F079E9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AEA10 7F079EA0 03E00008 */ jr $ra +/* 0AEA14 7F079EA4 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0798B8(void) { + ? temp_ret; + ? phi_return; + + // Node 0 + pPlayer->field_29BC = (f32) (((pPlayersPerm->unk64 * 185.0f) * 1.0f) - 10.0f); + pPlayer->field_29F8 = 0; + pPlayer->field_29F4 = get_mission_timer(); + pPlayer->field_2A00 = 0; + add_item_to_inventory(1); + temp_ret = get_num_players(); + phi_return = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + draw_item_in_hand_has_more_ammo(1, starting_left_weapon); + phi_return = draw_item_in_hand_has_more_ammo(0, starting_right_weapon); + if (pPlayer->field_D4 == 0) + { + // Node 2 + phi_return = solo_char_load(); + } + } + // Node 3 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0798B8 +/* 0AE3E8 7F0798B8 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 0AE3EC 7F0798BC 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0AE3F0 7F0798C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AE3F4 7F0798C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AE3F8 7F0798C8 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 0AE3FC 7F0798CC 44813000 */ mtc1 $at, $f6 +/* 0AE400 7F0798D0 C5C40064 */ lwc1 $f4, 0x64($t6) +/* 0AE404 7F0798D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AE408 7F0798D8 44815000 */ mtc1 $at, $f10 +/* 0AE40C 7F0798DC 46062202 */ mul.s $f8, $f4, $f6 +/* 0AE410 7F0798E0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0AE414 7F0798E4 44819000 */ mtc1 $at, $f18 +/* 0AE418 7F0798E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AE41C 7F0798EC 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AE420 7F0798F0 8C4F0000 */ lw $t7, ($v0) +/* 0AE424 7F0798F4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0AE428 7F0798F8 46128101 */ sub.s $f4, $f16, $f18 +/* 0AE42C 7F0798FC E5E429BC */ swc1 $f4, 0x29bc($t7) +/* 0AE430 7F079900 8C580000 */ lw $t8, ($v0) +/* 0AE434 7F079904 0FC22FEE */ jal get_mission_timer +/* 0AE438 7F079908 AF0029F8 */ sw $zero, 0x29f8($t8) +/* 0AE43C 7F07990C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE440 7F079910 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE444 7F079914 8C790000 */ lw $t9, ($v1) +/* 0AE448 7F079918 24040001 */ li $a0, 1 +/* 0AE44C 7F07991C AF2229F4 */ sw $v0, 0x29f4($t9) +/* 0AE450 7F079920 8C680000 */ lw $t0, ($v1) +/* 0AE454 7F079924 0FC23122 */ jal add_item_to_inventory +/* 0AE458 7F079928 AD002A00 */ sw $zero, 0x2a00($t0) +/* 0AE45C 7F07992C 0FC26919 */ jal get_num_players +/* 0AE460 7F079930 00000000 */ nop +/* 0AE464 7F079934 28410002 */ slti $at, $v0, 2 +/* 0AE468 7F079938 1420000F */ bnez $at, .L7F079978 +/* 0AE46C 7F07993C 24040001 */ li $a0, 1 +/* 0AE470 7F079940 3C058008 */ lui $a1, %hi(starting_left_weapon) +/* 0AE474 7F079944 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AE478 7F079948 8CA599E4 */ lw $a1, %lo(starting_left_weapon)($a1) +/* 0AE47C 7F07994C 3C058008 */ lui $a1, %hi(starting_right_weapon) +/* 0AE480 7F079950 8CA599E0 */ lw $a1, %lo(starting_right_weapon)($a1) +/* 0AE484 7F079954 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AE488 7F079958 00002025 */ move $a0, $zero +/* 0AE48C 7F07995C 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AE490 7F079960 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0AE494 7F079964 8D2A00D4 */ lw $t2, 0xd4($t1) +/* 0AE498 7F079968 55400004 */ bnezl $t2, .L7F07997C +/* 0AE49C 7F07996C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AE4A0 7F079970 0FC1E73C */ jal solo_char_load +/* 0AE4A4 7F079974 00000000 */ nop +.L7F079978: +/* 0AE4A8 7F079978 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07997C: +/* 0AE4AC 7F07997C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AE4B0 7F079980 03E00008 */ jr $ra +/* 0AE4B4 7F079984 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F079988(s32 arg0) { + // Node 0 + pPlayer->field_1274 = (f32) ((f32) arg0 * 75.0f); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079988 +/* 0AE4B8 7F079988 44842000 */ mtc1 $a0, $f4 +/* 0AE4BC 7F07998C 3C014296 */ li $at, 0x42960000 # 75.000000 +/* 0AE4C0 7F079990 44814000 */ mtc1 $at, $f8 +/* 0AE4C4 7F079994 468021A0 */ cvt.s.w $f6, $f4 +/* 0AE4C8 7F079998 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE4CC 7F07999C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE4D0 7F0799A0 46083282 */ mul.s $f10, $f6, $f8 +/* 0AE4D4 7F0799A4 03E00008 */ jr $ra +/* 0AE4D8 7F0799A8 E5CA1274 */ swc1 $f10, 0x1274($t6) +) +#endif + + + + + + +void change_crouch_position(int position) +{ + pPlayer->crouchposition = pPlayer->crouchposition + position; + if (pPlayer->crouchposition < 0) { + pPlayer->crouchposition = 0; + return; + } + if (2 < pPlayer->crouchposition) { + pPlayer->crouchposition = 2; + } + return; +} + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0799F0(void) { + // Node 0 + if (pPlayer->crouchposition < pPlayer->field_29FC) + { + // Node 1 + return pPlayer->crouchposition; + } + // Node 2 + return pPlayer->field_29FC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0799F0 +/* 0AE520 7F0799F0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AE524 7F0799F4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0AE528 7F0799F8 8C43009C */ lw $v1, 0x9c($v0) +/* 0AE52C 7F0799FC 8C4429FC */ lw $a0, 0x29fc($v0) +/* 0AE530 7F079A00 0064082A */ slt $at, $v1, $a0 +/* 0AE534 7F079A04 10200003 */ beqz $at, .L7F079A14 +/* 0AE538 7F079A08 00802825 */ move $a1, $a0 +/* 0AE53C 7F079A0C 03E00008 */ jr $ra +/* 0AE540 7F079A10 00601025 */ move $v0, $v1 + +.L7F079A14: +/* 0AE544 7F079A14 03E00008 */ jr $ra +/* 0AE548 7F079A18 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F079A1C(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (&ptr_BONDdata_p1 + (arg0 * 4)); + if (*temp_v0->unk9C < *temp_v0->unk29FC) + { + // Node 1 + return *temp_v0->unk9C; + } + // Node 2 + return *temp_v0->unk29FC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079A1C +/* 0AE54C 7F079A1C 00047080 */ sll $t6, $a0, 2 +/* 0AE550 7F079A20 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0AE554 7F079A24 004E1021 */ addu $v0, $v0, $t6 +/* 0AE558 7F079A28 8C429EE0 */ lw $v0, %lo(ptr_BONDdata_p1)($v0) +/* 0AE55C 7F079A2C 8C43009C */ lw $v1, 0x9c($v0) +/* 0AE560 7F079A30 8C4529FC */ lw $a1, 0x29fc($v0) +/* 0AE564 7F079A34 0065082A */ slt $at, $v1, $a1 +/* 0AE568 7F079A38 10200003 */ beqz $at, .L7F079A48 +/* 0AE56C 7F079A3C 00A02025 */ move $a0, $a1 +/* 0AE570 7F079A40 03E00008 */ jr $ra +/* 0AE574 7F079A44 00601025 */ move $v0, $v1 + +.L7F079A48: +/* 0AE578 7F079A48 03E00008 */ jr $ra +/* 0AE57C 7F079A4C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void setptrBONDdata(s32 arg0) { + // Node 0 + *pPlayer = arg0; + return; +} +#else +GLOBAL_ASM( +.text +glabel setptrBONDdata +/* 0AE580 7F079A50 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE584 7F079A54 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE588 7F079A58 03E00008 */ jr $ra +/* 0AE58C 7F079A5C ADC40000 */ sw $a0, ($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F079A60(void *arg0, void *arg1, void *arg2, s32 arg3, void *arg4) { + s32 sp30; + s32 sp34; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_ret; + void *phi_return; + + // Node 0 + if ((((((((((*arg0 != pPlayer->xpos) || (arg0->unk4 != pPlayer->ypos)) || (arg0->unk8 != pPlayer->zpos)) || (*arg1 != pPlayer->xpos2)) || (arg1->unk4 != pPlayer->ypos2)) || (arg1->unk8 != pPlayer->zpos2)) || (*arg2 != pPlayer->xoffset)) || (arg2->unk4 != pPlayer->yoffset)) || (arg2->unk8 != pPlayer->zoffset)) || (pPlayer->room_pointer == 0)) + { + // Node 10 + sp34 = arg3; + if (sub_GAME_7F0B0BE4(&sp34, *arg4, arg4->unk8, *arg0, (f32) arg0->unk8) != 0) + { + // Node 11 + sub_GAME_7F0B0518(sp34, *arg0, arg0->unk8); + pPlayer->room_pointer = sp34; + } + else + { + // Node 12 + if (pPlayer->room_pointer != 0) + { + // Node 13 + sp30 = (s32) pPlayer->room_pointer; + if (sub_GAME_7F0B0BE4(&sp30, pPlayer->xpos, pPlayer->zpos, *arg0, (f32) arg0->unk8) != 0) + { + // Node 14 + pPlayer->room_pointer = sp30; + } + else + { + // Node 15 + pPlayer->room_pointer = sp34; + } + } + else + { + // Node 16 + pPlayer->room_pointer = sp34; + } + } + // Node 17 + *&pPlayer->xpos = (f32) *arg0; + *&pPlayer->ypos = (f32) arg0->unk4; + *&pPlayer->zpos = (f32) arg0->unk8; + *&pPlayer->xpos2 = (f32) *arg1; + *&pPlayer->ypos2 = (f32) arg1->unk4; + *&pPlayer->zpos2 = (f32) arg1->unk8; + *&pPlayer->xoffset = (f32) *arg2; + *&pPlayer->yoffset = (f32) arg2->unk4; + *&pPlayer->zoffset = (f32) arg2->unk8; + temp_v0 = *&pPlayer; + temp_v0->unk28 = (f32) temp_v0->unk4; + temp_v0_2 = *&pPlayer; + temp_v0_2->unk30 = (f32) temp_v0_2->unkC; + temp_v0_3 = *&pPlayer; + temp_ret = sub_GAME_7F0B2970(temp_v0_3->unk34, temp_v0_3->unk4, temp_v0_3->unkC, arg1); + pPlayer->ypos3 = temp_ret; + phi_return = temp_ret; + } + else + { + + } + // Node 18 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079A60 +/* 0AE590 7F079A60 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0AE594 7F079A64 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE598 7F079A68 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE59C 7F079A6C 8C620000 */ lw $v0, ($v1) +/* 0AE5A0 7F079A70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0AE5A4 7F079A74 AFB00020 */ sw $s0, 0x20($sp) +/* 0AE5A8 7F079A78 AFA5003C */ sw $a1, 0x3c($sp) +/* 0AE5AC 7F079A7C AFA60040 */ sw $a2, 0x40($sp) +/* 0AE5B0 7F079A80 AFA70044 */ sw $a3, 0x44($sp) +/* 0AE5B4 7F079A84 C4840000 */ lwc1 $f4, ($a0) +/* 0AE5B8 7F079A88 C4460004 */ lwc1 $f6, 4($v0) +/* 0AE5BC 7F079A8C 00808025 */ move $s0, $a0 +/* 0AE5C0 7F079A90 8FB90044 */ lw $t9, 0x44($sp) +/* 0AE5C4 7F079A94 46062032 */ c.eq.s $f4, $f6 +/* 0AE5C8 7F079A98 00000000 */ nop +/* 0AE5CC 7F079A9C 45020035 */ bc1fl .L7F079B74 +/* 0AE5D0 7F079AA0 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE5D4 7F079AA4 C4880004 */ lwc1 $f8, 4($a0) +/* 0AE5D8 7F079AA8 C44A0008 */ lwc1 $f10, 8($v0) +/* 0AE5DC 7F079AAC 460A4032 */ c.eq.s $f8, $f10 +/* 0AE5E0 7F079AB0 00000000 */ nop +/* 0AE5E4 7F079AB4 4502002F */ bc1fl .L7F079B74 +/* 0AE5E8 7F079AB8 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE5EC 7F079ABC C4900008 */ lwc1 $f16, 8($a0) +/* 0AE5F0 7F079AC0 C452000C */ lwc1 $f18, 0xc($v0) +/* 0AE5F4 7F079AC4 46128032 */ c.eq.s $f16, $f18 +/* 0AE5F8 7F079AC8 00000000 */ nop +/* 0AE5FC 7F079ACC 45020029 */ bc1fl .L7F079B74 +/* 0AE600 7F079AD0 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE604 7F079AD4 C4A40000 */ lwc1 $f4, ($a1) +/* 0AE608 7F079AD8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0AE60C 7F079ADC 46062032 */ c.eq.s $f4, $f6 +/* 0AE610 7F079AE0 00000000 */ nop +/* 0AE614 7F079AE4 45020023 */ bc1fl .L7F079B74 +/* 0AE618 7F079AE8 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE61C 7F079AEC C4A80004 */ lwc1 $f8, 4($a1) +/* 0AE620 7F079AF0 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 0AE624 7F079AF4 460A4032 */ c.eq.s $f8, $f10 +/* 0AE628 7F079AF8 00000000 */ nop +/* 0AE62C 7F079AFC 4502001D */ bc1fl .L7F079B74 +/* 0AE630 7F079B00 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE634 7F079B04 C4B00008 */ lwc1 $f16, 8($a1) +/* 0AE638 7F079B08 C4520018 */ lwc1 $f18, 0x18($v0) +/* 0AE63C 7F079B0C 46128032 */ c.eq.s $f16, $f18 +/* 0AE640 7F079B10 00000000 */ nop +/* 0AE644 7F079B14 45020017 */ bc1fl .L7F079B74 +/* 0AE648 7F079B18 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE64C 7F079B1C C4C40000 */ lwc1 $f4, ($a2) +/* 0AE650 7F079B20 C446001C */ lwc1 $f6, 0x1c($v0) +/* 0AE654 7F079B24 46062032 */ c.eq.s $f4, $f6 +/* 0AE658 7F079B28 00000000 */ nop +/* 0AE65C 7F079B2C 45020011 */ bc1fl .L7F079B74 +/* 0AE660 7F079B30 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE664 7F079B34 C4C80004 */ lwc1 $f8, 4($a2) +/* 0AE668 7F079B38 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0AE66C 7F079B3C 460A4032 */ c.eq.s $f8, $f10 +/* 0AE670 7F079B40 00000000 */ nop +/* 0AE674 7F079B44 4502000B */ bc1fl .L7F079B74 +/* 0AE678 7F079B48 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE67C 7F079B4C C4D00008 */ lwc1 $f16, 8($a2) +/* 0AE680 7F079B50 C4520024 */ lwc1 $f18, 0x24($v0) +/* 0AE684 7F079B54 46128032 */ c.eq.s $f16, $f18 +/* 0AE688 7F079B58 00000000 */ nop +/* 0AE68C 7F079B5C 45020005 */ bc1fl .L7F079B74 +/* 0AE690 7F079B60 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE694 7F079B64 8C580034 */ lw $t8, 0x34($v0) +/* 0AE698 7F079B68 5700005D */ bnezl $t8, .L7F079CE0 +/* 0AE69C 7F079B6C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0AE6A0 7F079B70 8FA20048 */ lw $v0, 0x48($sp) +.L7F079B74: +/* 0AE6A4 7F079B74 AFB90034 */ sw $t9, 0x34($sp) +/* 0AE6A8 7F079B78 C6040008 */ lwc1 $f4, 8($s0) +/* 0AE6AC 7F079B7C 8E070000 */ lw $a3, ($s0) +/* 0AE6B0 7F079B80 8C460008 */ lw $a2, 8($v0) +/* 0AE6B4 7F079B84 8C450000 */ lw $a1, ($v0) +/* 0AE6B8 7F079B88 27A40034 */ addiu $a0, $sp, 0x34 +/* 0AE6BC 7F079B8C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0AE6C0 7F079B90 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0AE6C4 7F079B94 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE6C8 7F079B98 1040000B */ beqz $v0, .L7F079BC8 +/* 0AE6CC 7F079B9C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE6D0 7F079BA0 8FA40034 */ lw $a0, 0x34($sp) +/* 0AE6D4 7F079BA4 8E050000 */ lw $a1, ($s0) +/* 0AE6D8 7F079BA8 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0AE6DC 7F079BAC 8E060008 */ lw $a2, 8($s0) +/* 0AE6E0 7F079BB0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE6E4 7F079BB4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE6E8 7F079BB8 8C6A0000 */ lw $t2, ($v1) +/* 0AE6EC 7F079BBC 8FA90034 */ lw $t1, 0x34($sp) +/* 0AE6F0 7F079BC0 1000001A */ b .L7F079C2C +/* 0AE6F4 7F079BC4 AD490034 */ sw $t1, 0x34($t2) +.L7F079BC8: +/* 0AE6F8 7F079BC8 8C620000 */ lw $v0, ($v1) +/* 0AE6FC 7F079BCC 27A40030 */ addiu $a0, $sp, 0x30 +/* 0AE700 7F079BD0 8FAF0034 */ lw $t7, 0x34($sp) +/* 0AE704 7F079BD4 8C480034 */ lw $t0, 0x34($v0) +/* 0AE708 7F079BD8 51000014 */ beql $t0, $zero, .L7F079C2C +/* 0AE70C 7F079BDC AC4F0034 */ sw $t7, 0x34($v0) +/* 0AE710 7F079BE0 AFA80030 */ sw $t0, 0x30($sp) +/* 0AE714 7F079BE4 C6060008 */ lwc1 $f6, 8($s0) +/* 0AE718 7F079BE8 8E070000 */ lw $a3, ($s0) +/* 0AE71C 7F079BEC 8C46000C */ lw $a2, 0xc($v0) +/* 0AE720 7F079BF0 8C450004 */ lw $a1, 4($v0) +/* 0AE724 7F079BF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0AE728 7F079BF8 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0AE72C 7F079BFC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE730 7F079C00 10400005 */ beqz $v0, .L7F079C18 +/* 0AE734 7F079C04 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE738 7F079C08 8FAB0030 */ lw $t3, 0x30($sp) +/* 0AE73C 7F079C0C 8C6C0000 */ lw $t4, ($v1) +/* 0AE740 7F079C10 10000006 */ b .L7F079C2C +/* 0AE744 7F079C14 AD8B0034 */ sw $t3, 0x34($t4) +.L7F079C18: +/* 0AE748 7F079C18 8FAD0034 */ lw $t5, 0x34($sp) +/* 0AE74C 7F079C1C 8C6E0000 */ lw $t6, ($v1) +/* 0AE750 7F079C20 10000002 */ b .L7F079C2C +/* 0AE754 7F079C24 ADCD0034 */ sw $t5, 0x34($t6) +/* 0AE758 7F079C28 AC4F0034 */ sw $t7, 0x34($v0) +.L7F079C2C: +/* 0AE75C 7F079C2C C6080000 */ lwc1 $f8, ($s0) +/* 0AE760 7F079C30 8C780000 */ lw $t8, ($v1) +/* 0AE764 7F079C34 8FA7003C */ lw $a3, 0x3c($sp) +/* 0AE768 7F079C38 8FA80040 */ lw $t0, 0x40($sp) +/* 0AE76C 7F079C3C E7080004 */ swc1 $f8, 4($t8) +/* 0AE770 7F079C40 8C790000 */ lw $t9, ($v1) +/* 0AE774 7F079C44 C60A0004 */ lwc1 $f10, 4($s0) +/* 0AE778 7F079C48 E72A0008 */ swc1 $f10, 8($t9) +/* 0AE77C 7F079C4C 8C690000 */ lw $t1, ($v1) +/* 0AE780 7F079C50 C6100008 */ lwc1 $f16, 8($s0) +/* 0AE784 7F079C54 E530000C */ swc1 $f16, 0xc($t1) +/* 0AE788 7F079C58 8C6A0000 */ lw $t2, ($v1) +/* 0AE78C 7F079C5C C4F20000 */ lwc1 $f18, ($a3) +/* 0AE790 7F079C60 E5520010 */ swc1 $f18, 0x10($t2) +/* 0AE794 7F079C64 8C6B0000 */ lw $t3, ($v1) +/* 0AE798 7F079C68 C4E40004 */ lwc1 $f4, 4($a3) +/* 0AE79C 7F079C6C E5640014 */ swc1 $f4, 0x14($t3) +/* 0AE7A0 7F079C70 8C6C0000 */ lw $t4, ($v1) +/* 0AE7A4 7F079C74 C4E60008 */ lwc1 $f6, 8($a3) +/* 0AE7A8 7F079C78 E5860018 */ swc1 $f6, 0x18($t4) +/* 0AE7AC 7F079C7C 8C6D0000 */ lw $t5, ($v1) +/* 0AE7B0 7F079C80 C5080000 */ lwc1 $f8, ($t0) +/* 0AE7B4 7F079C84 E5A8001C */ swc1 $f8, 0x1c($t5) +/* 0AE7B8 7F079C88 8C6E0000 */ lw $t6, ($v1) +/* 0AE7BC 7F079C8C C50A0004 */ lwc1 $f10, 4($t0) +/* 0AE7C0 7F079C90 E5CA0020 */ swc1 $f10, 0x20($t6) +/* 0AE7C4 7F079C94 8C6F0000 */ lw $t7, ($v1) +/* 0AE7C8 7F079C98 C5100008 */ lwc1 $f16, 8($t0) +/* 0AE7CC 7F079C9C E5F00024 */ swc1 $f16, 0x24($t7) +/* 0AE7D0 7F079CA0 8C620000 */ lw $v0, ($v1) +/* 0AE7D4 7F079CA4 C4520004 */ lwc1 $f18, 4($v0) +/* 0AE7D8 7F079CA8 E4520028 */ swc1 $f18, 0x28($v0) +/* 0AE7DC 7F079CAC 8C620000 */ lw $v0, ($v1) +/* 0AE7E0 7F079CB0 C444000C */ lwc1 $f4, 0xc($v0) +/* 0AE7E4 7F079CB4 E4440030 */ swc1 $f4, 0x30($v0) +/* 0AE7E8 7F079CB8 8C620000 */ lw $v0, ($v1) +/* 0AE7EC 7F079CBC 8C440034 */ lw $a0, 0x34($v0) +/* 0AE7F0 7F079CC0 8C450004 */ lw $a1, 4($v0) +/* 0AE7F4 7F079CC4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0AE7F8 7F079CC8 8C46000C */ lw $a2, 0xc($v0) +/* 0AE7FC 7F079CCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE800 7F079CD0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE804 7F079CD4 8C780000 */ lw $t8, ($v1) +/* 0AE808 7F079CD8 E700002C */ swc1 $f0, 0x2c($t8) +/* 0AE80C 7F079CDC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F079CE0: +/* 0AE810 7F079CE0 8FB00020 */ lw $s0, 0x20($sp) +/* 0AE814 7F079CE4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0AE818 7F079CE8 03E00008 */ jr $ra +/* 0AE81C 7F079CEC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void solo_char_load(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:80054FE4*/ +glabel jpt_bondcuff +.word .L7F079EA4 +.word cuff_1_brosnan +.word cuff_2_jungle +.word cuff_3_boiler +.word cuff_4_snowsuit +.word cuff_5_connery +.word cuff_6_moore +.word cuff_7_dalton +.word cuff_8_variable_bond_head + +/*D:80055008*/ +glabel jpt_bondhead +.word .L7F079F84 +.word brosnan_tux_head_set +.word jungle_head_set +.word boiler_bond_head_set +.word .L7F079F84 +.word connery_head_set +.word moore_head_set +.word dalton_head_set +.word variable_body_head + +glabel D_8005502C +.word 0x3f7851ec /*0.97000003*/ +.text +glabel solo_char_load +/* 0AE820 7F079CF0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0AE824 7F079CF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AE828 7F079CF8 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AE82C 7F079CFC 00000000 */ nop +/* 0AE830 7F079D00 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE834 7F079D04 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE838 7F079D08 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0AE83C 7F079D0C 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AE840 7F079D10 8DE20004 */ lw $v0, 4($t7) +/* 0AE844 7F079D14 544001CA */ bnezl $v0, .L7F07A440 +/* 0AE848 7F079D18 8C4F001C */ lw $t7, 0x1c($v0) +/* 0AE84C 7F079D1C 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE850 7F079D20 00002025 */ move $a0, $zero +/* 0AE854 7F079D24 AFA200F0 */ sw $v0, 0xf0($sp) +/* 0AE858 7F079D28 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE85C 7F079D2C 24040001 */ li $a0, 1 +/* 0AE860 7F079D30 AFA200EC */ sw $v0, 0xec($sp) +/* 0AE864 7F079D34 AFA000E8 */ sw $zero, 0xe8($sp) +/* 0AE868 7F079D38 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE86C 7F079D3C 00002025 */ move $a0, $zero +/* 0AE870 7F079D40 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0AE874 7F079D44 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE878 7F079D48 24040001 */ li $a0, 1 +/* 0AE87C 7F079D4C 3C198003 */ lui $t9, %hi(dummy_08_pp7_obj) +/* 0AE880 7F079D50 273965AC */ addiu $t9, %lo(dummy_08_pp7_obj) # addiu $t9, $t9, 0x65ac +/* 0AE884 7F079D54 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0AE888 7F079D58 272C0084 */ addiu $t4, $t9, 0x84 +/* 0AE88C 7F079D5C 27B80054 */ addiu $t8, $sp, 0x54 +.L7F079D60: +/* 0AE890 7F079D60 8F210000 */ lw $at, ($t9) +/* 0AE894 7F079D64 2739000C */ addiu $t9, $t9, 0xc +/* 0AE898 7F079D68 2718000C */ addiu $t8, $t8, 0xc +/* 0AE89C 7F079D6C AF01FFF4 */ sw $at, -0xc($t8) +/* 0AE8A0 7F079D70 8F21FFF8 */ lw $at, -8($t9) +/* 0AE8A4 7F079D74 AF01FFF8 */ sw $at, -8($t8) +/* 0AE8A8 7F079D78 8F21FFFC */ lw $at, -4($t9) +/* 0AE8AC 7F079D7C 172CFFF8 */ bne $t9, $t4, .L7F079D60 +/* 0AE8B0 7F079D80 AF01FFFC */ sw $at, -4($t8) +/* 0AE8B4 7F079D84 8F210000 */ lw $at, ($t9) +/* 0AE8B8 7F079D88 00002025 */ move $a0, $zero +/* 0AE8BC 7F079D8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0AE8C0 7F079D90 AF010000 */ sw $at, ($t8) +/* 0AE8C4 7F079D94 240D0017 */ li $t5, 23 +/* 0AE8C8 7F079D98 240E004B */ li $t6, 75 +/* 0AE8CC 7F079D9C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0AE8D0 7F079DA0 AFA20048 */ sw $v0, 0x48($sp) +/* 0AE8D4 7F079DA4 AFAD0044 */ sw $t5, 0x44($sp) +/* 0AE8D8 7F079DA8 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AE8DC 7F079DAC AFA00038 */ sw $zero, 0x38($sp) +/* 0AE8E0 7F079DB0 0FC1F799 */ jal sub_GAME_7F07DE64 +/* 0AE8E4 7F079DB4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0AE8E8 7F079DB8 0FC26919 */ jal get_num_players +/* 0AE8EC 7F079DBC 00000000 */ nop +/* 0AE8F0 7F079DC0 24010001 */ li $at, 1 +/* 0AE8F4 7F079DC4 14410066 */ bne $v0, $at, .L7F079F60 +/* 0AE8F8 7F079DC8 00000000 */ nop +/* 0AE8FC 7F079DCC 0FC0755B */ jal getSelectedFolderBond +/* 0AE900 7F079DD0 00000000 */ nop +/* 0AE904 7F079DD4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0AE908 7F079DD8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0AE90C 7F079DDC 8DE3041C */ lw $v1, 0x41c($t7) +/* 0AE910 7F079DE0 2C610009 */ sltiu $at, $v1, 9 +/* 0AE914 7F079DE4 1020002F */ beqz $at, .L7F079EA4 +/* 0AE918 7F079DE8 00035880 */ sll $t3, $v1, 2 +/* 0AE91C 7F079DEC 3C018005 */ lui $at, %hi(jpt_bondcuff) +/* 0AE920 7F079DF0 002B0821 */ addu $at, $at, $t3 +/* 0AE924 7F079DF4 8C2B4FE4 */ lw $t3, %lo(jpt_bondcuff)($at) +/* 0AE928 7F079DF8 01600008 */ jr $t3 +/* 0AE92C 7F079DFC 00000000 */ nop +cuff_3_boiler: +/* 0AE930 7F079E00 240A0016 */ li $t2, 22 +/* 0AE934 7F079E04 10000027 */ b .L7F079EA4 +/* 0AE938 7F079E08 AFAA0044 */ sw $t2, 0x44($sp) +cuff_2_jungle: +/* 0AE93C 7F079E0C 240C0018 */ li $t4, 24 +/* 0AE940 7F079E10 10000024 */ b .L7F079EA4 +/* 0AE944 7F079E14 AFAC0044 */ sw $t4, 0x44($sp) +cuff_4_snowsuit: +/* 0AE948 7F079E18 24190019 */ li $t9, 25 +/* 0AE94C 7F079E1C 10000021 */ b .L7F079EA4 +/* 0AE950 7F079E20 AFB90044 */ sw $t9, 0x44($sp) +cuff_1_brosnan: +/* 0AE954 7F079E24 24180005 */ li $t8, 5 +/* 0AE958 7F079E28 1000001E */ b .L7F079EA4 +/* 0AE95C 7F079E2C AFB80044 */ sw $t8, 0x44($sp) +cuff_5_connery: +/* 0AE960 7F079E30 240D0005 */ li $t5, 5 +/* 0AE964 7F079E34 1000001B */ b .L7F079EA4 +/* 0AE968 7F079E38 AFAD0044 */ sw $t5, 0x44($sp) +cuff_6_moore: +/* 0AE96C 7F079E3C 240E0005 */ li $t6, 5 +/* 0AE970 7F079E40 10000018 */ b .L7F079EA4 +/* 0AE974 7F079E44 AFAE0044 */ sw $t6, 0x44($sp) +cuff_7_dalton: +/* 0AE978 7F079E48 240F0005 */ li $t7, 5 +/* 0AE97C 7F079E4C 10000015 */ b .L7F079EA4 +/* 0AE980 7F079E50 AFAF0044 */ sw $t7, 0x44($sp) +cuff_8_variable_bond_head: +/* 0AE984 7F079E54 1040000C */ beqz $v0, .L7F079E88 +/* 0AE988 7F079E58 240B0005 */ li $t3, 5 +/* 0AE98C 7F079E5C 24010001 */ li $at, 1 +/* 0AE990 7F079E60 1041000B */ beq $v0, $at, .L7F079E90 +/* 0AE994 7F079E64 240A0005 */ li $t2, 5 +/* 0AE998 7F079E68 24010002 */ li $at, 2 +/* 0AE99C 7F079E6C 1041000A */ beq $v0, $at, .L7F079E98 +/* 0AE9A0 7F079E70 240C0005 */ li $t4, 5 +/* 0AE9A4 7F079E74 24010003 */ li $at, 3 +/* 0AE9A8 7F079E78 10410009 */ beq $v0, $at, .L7F079EA0 +/* 0AE9AC 7F079E7C 24190005 */ li $t9, 5 +/* 0AE9B0 7F079E80 10000008 */ b .L7F079EA4 +/* 0AE9B4 7F079E84 00000000 */ nop +.L7F079E88: +/* 0AE9B8 7F079E88 10000006 */ b .L7F079EA4 +/* 0AE9BC 7F079E8C AFAB0044 */ sw $t3, 0x44($sp) +.L7F079E90: +/* 0AE9C0 7F079E90 10000004 */ b .L7F079EA4 +/* 0AE9C4 7F079E94 AFAA0044 */ sw $t2, 0x44($sp) +.L7F079E98: +/* 0AE9C8 7F079E98 10000002 */ b .L7F079EA4 +/* 0AE9CC 7F079E9C AFAC0044 */ sw $t4, 0x44($sp) +.L7F079EA0: +/* 0AE9D0 7F079EA0 AFB90044 */ sw $t9, 0x44($sp) +.L7F079EA4: +/* 0AE9D4 7F079EA4 1040000C */ beqz $v0, .L7F079ED8 +/* 0AE9D8 7F079EA8 2C610009 */ sltiu $at, $v1, 9 +/* 0AE9DC 7F079EAC 24010001 */ li $at, 1 +/* 0AE9E0 7F079EB0 10410025 */ beq $v0, $at, .L7F079F48 +/* 0AE9E4 7F079EB4 2418004E */ li $t8, 78 +/* 0AE9E8 7F079EB8 24010002 */ li $at, 2 +/* 0AE9EC 7F079EBC 10410024 */ beq $v0, $at, .L7F079F50 +/* 0AE9F0 7F079EC0 240D004E */ li $t5, 78 +/* 0AE9F4 7F079EC4 24010003 */ li $at, 3 +/* 0AE9F8 7F079EC8 10410023 */ beq $v0, $at, .L7F079F58 +/* 0AE9FC 7F079ECC 240E004E */ li $t6, 78 +/* 0AEA00 7F079ED0 1000002C */ b .L7F079F84 +/* 0AEA04 7F079ED4 00000000 */ nop +.L7F079ED8: +/* 0AEA08 7F079ED8 1020002A */ beqz $at, .L7F079F84 +/* 0AEA0C 7F079EDC 0003C080 */ sll $t8, $v1, 2 +/* 0AEA10 7F079EE0 3C018005 */ lui $at, %hi(jpt_bondhead) +/* 0AEA14 7F079EE4 00380821 */ addu $at, $at, $t8 +/* 0AEA18 7F079EE8 8C385008 */ lw $t8, %lo(jpt_bondhead)($at) +/* 0AEA1C 7F079EEC 03000008 */ jr $t8 +/* 0AEA20 7F079EF0 00000000 */ nop +boiler_bond_head_set: +/* 0AEA24 7F079EF4 240D004A */ li $t5, 74 +/* 0AEA28 7F079EF8 10000022 */ b .L7F079F84 +/* 0AEA2C 7F079EFC AFAD0040 */ sw $t5, 0x40($sp) +jungle_head_set: +/* 0AEA30 7F079F00 240E004C */ li $t6, 76 +/* 0AEA34 7F079F04 1000001F */ b .L7F079F84 +/* 0AEA38 7F079F08 AFAE0040 */ sw $t6, 0x40($sp) +brosnan_tux_head_set: +/* 0AEA3C 7F079F0C 240F004E */ li $t7, 78 +/* 0AEA40 7F079F10 1000001C */ b .L7F079F84 +/* 0AEA44 7F079F14 AFAF0040 */ sw $t7, 0x40($sp) +connery_head_set: +/* 0AEA48 7F079F18 240B004E */ li $t3, 78 +/* 0AEA4C 7F079F1C 10000019 */ b .L7F079F84 +/* 0AEA50 7F079F20 AFAB0040 */ sw $t3, 0x40($sp) +moore_head_set: +/* 0AEA54 7F079F24 240A004E */ li $t2, 78 +/* 0AEA58 7F079F28 10000016 */ b .L7F079F84 +/* 0AEA5C 7F079F2C AFAA0040 */ sw $t2, 0x40($sp) +dalton_head_set: +/* 0AEA60 7F079F30 240C004E */ li $t4, 78 +/* 0AEA64 7F079F34 10000013 */ b .L7F079F84 +/* 0AEA68 7F079F38 AFAC0040 */ sw $t4, 0x40($sp) +variable_body_head: +/* 0AEA6C 7F079F3C 2419004E */ li $t9, 78 +/* 0AEA70 7F079F40 10000010 */ b .L7F079F84 +/* 0AEA74 7F079F44 AFB90040 */ sw $t9, 0x40($sp) +.L7F079F48: +/* 0AEA78 7F079F48 1000000E */ b .L7F079F84 +/* 0AEA7C 7F079F4C AFB80040 */ sw $t8, 0x40($sp) +.L7F079F50: +/* 0AEA80 7F079F50 1000000C */ b .L7F079F84 +/* 0AEA84 7F079F54 AFAD0040 */ sw $t5, 0x40($sp) +.L7F079F58: +/* 0AEA88 7F079F58 1000000A */ b .L7F079F84 +/* 0AEA8C 7F079F5C AFAE0040 */ sw $t6, 0x40($sp) +.L7F079F60: +/* 0AEA90 7F079F60 0FC26C54 */ jal get_cur_playernum +/* 0AEA94 7F079F64 00000000 */ nop +/* 0AEA98 7F079F68 0FC040AF */ jal get_player_mp_char_head +/* 0AEA9C 7F079F6C 00402025 */ move $a0, $v0 +/* 0AEAA0 7F079F70 0FC26C54 */ jal get_cur_playernum +/* 0AEAA4 7F079F74 AFA20040 */ sw $v0, 0x40($sp) +/* 0AEAA8 7F079F78 0FC040D7 */ jal get_player_mp_char_body +/* 0AEAAC 7F079F7C 00402025 */ move $a0, $v0 +/* 0AEAB0 7F079F80 AFA20044 */ sw $v0, 0x44($sp) +.L7F079F84: +/* 0AEAB4 7F079F84 3C0F8003 */ lui $t7, %hi(cameramode) +/* 0AEAB8 7F079F88 8DEF6494 */ lw $t7, %lo(cameramode)($t7) +/* 0AEABC 7F079F8C 24010003 */ li $at, 3 +/* 0AEAC0 7F079F90 15E10003 */ bne $t7, $at, .L7F079FA0 +/* 0AEAC4 7F079F94 3C0B8008 */ lui $t3, %hi(starting_right_weapon) +/* 0AEAC8 7F079F98 8D6B99E0 */ lw $t3, %lo(starting_right_weapon)($t3) +/* 0AEACC 7F079F9C AFAB0048 */ sw $t3, 0x48($sp) +.L7F079FA0: +/* 0AEAD0 7F079FA0 0FC26919 */ jal get_num_players +/* 0AEAD4 7F079FA4 00000000 */ nop +/* 0AEAD8 7F079FA8 24010001 */ li $at, 1 +/* 0AEADC 7F079FAC 14410083 */ bne $v0, $at, .L7F07A1BC +/* 0AEAE0 7F079FB0 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AEAE4 7F079FB4 0FC173D7 */ jal remove_item_in_hand +/* 0AEAE8 7F079FB8 24040001 */ li $a0, 1 +/* 0AEAEC 7F079FBC 0FC173D7 */ jal remove_item_in_hand +/* 0AEAF0 7F079FC0 00002025 */ move $a0, $zero +/* 0AEAF4 7F079FC4 27A40100 */ addiu $a0, $sp, 0x100 +/* 0AEAF8 7F079FC8 8FA500EC */ lw $a1, 0xec($sp) +/* 0AEAFC 7F079FCC 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 0AEB00 7F079FD0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0AEB04 7F079FD4 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEB08 7F079FD8 00002025 */ move $a0, $zero +/* 0AEB0C 7F079FDC 8FAA0044 */ lw $t2, 0x44($sp) +/* 0AEB10 7F079FE0 3C198004 */ lui $t9, %hi(c_item_entries) +/* 0AEB14 7F079FE4 2739DE10 */ addiu $t9, %lo(c_item_entries) # addiu $t9, $t9, -0x21f0 +/* 0AEB18 7F079FE8 000A6080 */ sll $t4, $t2, 2 +/* 0AEB1C 7F079FEC 018A6021 */ addu $t4, $t4, $t2 +/* 0AEB20 7F079FF0 000C6080 */ sll $t4, $t4, 2 +/* 0AEB24 7F079FF4 01991821 */ addu $v1, $t4, $t9 +/* 0AEB28 7F079FF8 8C780000 */ lw $t8, ($v1) +/* 0AEB2C 7F079FFC AFA200FC */ sw $v0, 0xfc($sp) +/* 0AEB30 7F07A000 27AB0100 */ addiu $t3, $sp, 0x100 +/* 0AEB34 7F07A004 8F010000 */ lw $at, ($t8) +/* 0AEB38 7F07A008 00402025 */ move $a0, $v0 +/* 0AEB3C 7F07A00C AC410000 */ sw $at, ($v0) +/* 0AEB40 7F07A010 8F0F0004 */ lw $t7, 4($t8) +/* 0AEB44 7F07A014 AC4F0004 */ sw $t7, 4($v0) +/* 0AEB48 7F07A018 8F010008 */ lw $at, 8($t8) +/* 0AEB4C 7F07A01C AC410008 */ sw $at, 8($v0) +/* 0AEB50 7F07A020 8F0F000C */ lw $t7, 0xc($t8) +/* 0AEB54 7F07A024 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEB58 7F07A028 8F010010 */ lw $at, 0x10($t8) +/* 0AEB5C 7F07A02C AC410010 */ sw $at, 0x10($v0) +/* 0AEB60 7F07A030 8F0F0014 */ lw $t7, 0x14($t8) +/* 0AEB64 7F07A034 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEB68 7F07A038 8F010018 */ lw $at, 0x18($t8) +/* 0AEB6C 7F07A03C AC410018 */ sw $at, 0x18($v0) +/* 0AEB70 7F07A040 8F0F001C */ lw $t7, 0x1c($t8) +/* 0AEB74 7F07A044 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEB78 7F07A048 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEB7C 7F07A04C AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEB80 7F07A050 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0AEB84 7F07A054 8FA600F0 */ lw $a2, 0xf0($sp) +/* 0AEB88 7F07A058 0FC1D929 */ jal load_object_fill_header +/* 0AEB8C 7F07A05C 8C650004 */ lw $a1, 4($v1) +/* 0AEB90 7F07A060 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEB94 7F07A064 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEB98 7F07A068 8C640004 */ lw $a0, 4($v1) +/* 0AEB9C 7F07A06C 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AEBA0 7F07A070 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AEBA4 7F07A074 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AEBA8 7F07A078 000DC080 */ sll $t8, $t5, 2 +/* 0AEBAC 7F07A07C 030DC021 */ addu $t8, $t8, $t5 +/* 0AEBB0 7F07A080 0018C080 */ sll $t8, $t8, 2 +/* 0AEBB4 7F07A084 030F1821 */ addu $v1, $t8, $t7 +/* 0AEBB8 7F07A088 8C6B0000 */ lw $t3, ($v1) +/* 0AEBBC 7F07A08C 2448003F */ addiu $t0, $v0, 0x3f +/* 0AEBC0 7F07A090 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0AEBC4 7F07A094 350A003F */ ori $t2, $t0, 0x3f +/* 0AEBC8 7F07A098 8D610000 */ lw $at, ($t3) +/* 0AEBCC 7F07A09C 394C003F */ xori $t4, $t2, 0x3f +/* 0AEBD0 7F07A0A0 2588005F */ addiu $t0, $t4, 0x5f +/* 0AEBD4 7F07A0A4 3519003F */ ori $t9, $t0, 0x3f +/* 0AEBD8 7F07A0A8 012C2021 */ addu $a0, $t1, $t4 +/* 0AEBDC 7F07A0AC 3B28003F */ xori $t0, $t9, 0x3f +/* 0AEBE0 7F07A0B0 AC810000 */ sw $at, ($a0) +/* 0AEBE4 7F07A0B4 8D790004 */ lw $t9, 4($t3) +/* 0AEBE8 7F07A0B8 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEBEC 7F07A0BC 01283021 */ addu $a2, $t1, $t0 +/* 0AEBF0 7F07A0C0 AC990004 */ sw $t9, 4($a0) +/* 0AEBF4 7F07A0C4 8D610008 */ lw $at, 8($t3) +/* 0AEBF8 7F07A0C8 AC810008 */ sw $at, 8($a0) +/* 0AEBFC 7F07A0CC 8D79000C */ lw $t9, 0xc($t3) +/* 0AEC00 7F07A0D0 AC99000C */ sw $t9, 0xc($a0) +/* 0AEC04 7F07A0D4 8D610010 */ lw $at, 0x10($t3) +/* 0AEC08 7F07A0D8 AC810010 */ sw $at, 0x10($a0) +/* 0AEC0C 7F07A0DC 8D790014 */ lw $t9, 0x14($t3) +/* 0AEC10 7F07A0E0 AC990014 */ sw $t9, 0x14($a0) +/* 0AEC14 7F07A0E4 8D610018 */ lw $at, 0x18($t3) +/* 0AEC18 7F07A0E8 AC810018 */ sw $at, 0x18($a0) +/* 0AEC1C 7F07A0EC 8D79001C */ lw $t9, 0x1c($t3) +/* 0AEC20 7F07A0F0 AC99001C */ sw $t9, 0x1c($a0) +/* 0AEC24 7F07A0F4 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AEC28 7F07A0F8 AFA800E8 */ sw $t0, 0xe8($sp) +/* 0AEC2C 7F07A0FC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AEC30 7F07A100 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEC34 7F07A104 AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEC38 7F07A108 8C650004 */ lw $a1, 4($v1) +/* 0AEC3C 7F07A10C 0FC1D929 */ jal load_object_fill_header +/* 0AEC40 7F07A110 01C83823 */ subu $a3, $t6, $t0 +/* 0AEC44 7F07A114 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEC48 7F07A118 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEC4C 7F07A11C 8C640004 */ lw $a0, 4($v1) +/* 0AEC50 7F07A120 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC54 7F07A124 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AEC58 7F07A128 8FA400FC */ lw $a0, 0xfc($sp) +/* 0AEC5C 7F07A12C 00431821 */ addu $v1, $v0, $v1 +/* 0AEC60 7F07A130 2463003F */ addiu $v1, $v1, 0x3f +/* 0AEC64 7F07A134 3478003F */ ori $t8, $v1, 0x3f +/* 0AEC68 7F07A138 3B0F003F */ xori $t7, $t8, 0x3f +/* 0AEC6C 7F07A13C 25E300FB */ addiu $v1, $t7, 0xfb +/* 0AEC70 7F07A140 346B003F */ ori $t3, $v1, 0x3f +/* 0AEC74 7F07A144 3979003F */ xori $t9, $t3, 0x3f +/* 0AEC78 7F07A148 018F5021 */ addu $t2, $t4, $t7 +/* 0AEC7C 7F07A14C AFAA0038 */ sw $t2, 0x38($sp) +/* 0AEC80 7F07A150 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC84 7F07A154 AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AEC88 7F07A158 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC8C 7F07A15C 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0AEC90 7F07A160 8FA500FC */ lw $a1, 0xfc($sp) +/* 0AEC94 7F07A164 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0AEC98 7F07A168 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC9C 7F07A16C 84B80014 */ lh $t8, 0x14($a1) +/* 0AECA0 7F07A170 85EC0014 */ lh $t4, 0x14($t7) +/* 0AECA4 7F07A174 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AECA8 7F07A178 8FA40038 */ lw $a0, 0x38($sp) +/* 0AECAC 7F07A17C 030C1021 */ addu $v0, $t8, $t4 +/* 0AECB0 7F07A180 2442000A */ addiu $v0, $v0, 0xa +/* 0AECB4 7F07A184 00025080 */ sll $t2, $v0, 2 +/* 0AECB8 7F07A188 01C33021 */ addu $a2, $t6, $v1 +/* 0AECBC 7F07A18C 01431821 */ addu $v1, $t2, $v1 +/* 0AECC0 7F07A190 2463003F */ addiu $v1, $v1, 0x3f +/* 0AECC4 7F07A194 346B003F */ ori $t3, $v1, 0x3f +/* 0AECC8 7F07A198 3979003F */ xori $t9, $t3, 0x3f +/* 0AECCC 7F07A19C AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AECD0 7F07A1A0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0AECD4 7F07A1A4 AFA20030 */ sw $v0, 0x30($sp) +/* 0AECD8 7F07A1A8 8FA20030 */ lw $v0, 0x30($sp) +/* 0AECDC 7F07A1AC 8FAE0038 */ lw $t6, 0x38($sp) +/* 0AECE0 7F07A1B0 A5C20002 */ sh $v0, 2($t6) +/* 0AECE4 7F07A1B4 1000001F */ b .L7F07A234 +/* 0AECE8 7F07A1B8 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A1BC: +/* 0AECEC 7F07A1BC 000FC080 */ sll $t8, $t7, 2 +/* 0AECF0 7F07A1C0 030FC021 */ addu $t8, $t8, $t7 +/* 0AECF4 7F07A1C4 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 0AECF8 7F07A1C8 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 0AECFC 7F07A1CC 0018C080 */ sll $t8, $t8, 2 +/* 0AED00 7F07A1D0 030C1821 */ addu $v1, $t8, $t4 +/* 0AED04 7F07A1D4 8C6A0000 */ lw $t2, ($v1) +/* 0AED08 7F07A1D8 AFAA00FC */ sw $t2, 0xfc($sp) +/* 0AED0C 7F07A1DC 8D590000 */ lw $t9, ($t2) +/* 0AED10 7F07A1E0 01402025 */ move $a0, $t2 +/* 0AED14 7F07A1E4 57200004 */ bnezl $t9, .L7F07A1F8 +/* 0AED18 7F07A1E8 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AED1C 7F07A1EC 0FC1D953 */ jal load_object_into_memory +/* 0AED20 7F07A1F0 8C650004 */ lw $a1, 4($v1) +/* 0AED24 7F07A1F4 8FAD0040 */ lw $t5, 0x40($sp) +.L7F07A1F8: +/* 0AED28 7F07A1F8 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AED2C 7F07A1FC 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AED30 7F07A200 000D7080 */ sll $t6, $t5, 2 +/* 0AED34 7F07A204 01CD7021 */ addu $t6, $t6, $t5 +/* 0AED38 7F07A208 000E7080 */ sll $t6, $t6, 2 +/* 0AED3C 7F07A20C 01CF1821 */ addu $v1, $t6, $t7 +/* 0AED40 7F07A210 8C670000 */ lw $a3, ($v1) +/* 0AED44 7F07A214 8CF80000 */ lw $t8, ($a3) +/* 0AED48 7F07A218 00E02025 */ move $a0, $a3 +/* 0AED4C 7F07A21C 57000006 */ bnezl $t8, .L7F07A238 +/* 0AED50 7F07A220 8FAC0038 */ lw $t4, 0x38($sp) +/* 0AED54 7F07A224 8C650004 */ lw $a1, 4($v1) +/* 0AED58 7F07A228 0FC1D953 */ jal load_object_into_memory +/* 0AED5C 7F07A22C AFA700F8 */ sw $a3, 0xf8($sp) +/* 0AED60 7F07A230 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A234: +/* 0AED64 7F07A234 8FAC0038 */ lw $t4, 0x38($sp) +.L7F07A238: +/* 0AED68 7F07A238 8FA40044 */ lw $a0, 0x44($sp) +/* 0AED6C 7F07A23C 8FA50040 */ lw $a1, 0x40($sp) +/* 0AED70 7F07A240 8FA600FC */ lw $a2, 0xfc($sp) +/* 0AED74 7F07A244 AFA00010 */ sw $zero, 0x10($sp) +/* 0AED78 7F07A248 0FC08CBA */ jal maybe_load_models_for_guards +/* 0AED7C 7F07A24C AFAC0014 */ sw $t4, 0x14($sp) +/* 0AED80 7F07A250 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AED84 7F07A254 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AED88 7F07A258 8C6A0000 */ lw $t2, ($v1) +/* 0AED8C 7F07A25C 3C018005 */ lui $at, %hi(D_8005502C) +/* 0AED90 7F07A260 AD4200D4 */ sw $v0, 0xd4($t2) +/* 0AED94 7F07A264 8C790000 */ lw $t9, ($v1) +/* 0AED98 7F07A268 C426502C */ lwc1 $f6, %lo(D_8005502C)($at) +/* 0AED9C 7F07A26C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEDA0 7F07A270 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0AEDA4 7F07A274 46062202 */ mul.s $f8, $f4, $f6 +/* 0AEDA8 7F07A278 44054000 */ mfc1 $a1, $f8 +/* 0AEDAC 7F07A27C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0AEDB0 7F07A280 00000000 */ nop +/* 0AEDB4 7F07A284 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEDB8 7F07A288 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEDBC 7F07A28C 8FA70114 */ lw $a3, 0x114($sp) +/* 0AEDC0 7F07A290 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0AEDC4 7F07A294 8C6500D4 */ lw $a1, 0xd4($v1) +/* 0AEDC8 7F07A298 8C8B0014 */ lw $t3, 0x14($a0) +/* 0AEDCC 7F07A29C AFA00014 */ sw $zero, 0x14($sp) +/* 0AEDD0 7F07A2A0 24860008 */ addiu $a2, $a0, 8 +/* 0AEDD4 7F07A2A4 0FC0802F */ jal init_GUARDdata_with_set_values +/* 0AEDD8 7F07A2A8 AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEDDC 7F07A2AC 3C078008 */ lui $a3, %hi(pPlayer) +/* 0AEDE0 7F07A2B0 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0AEDE4 7F07A2B4 8CEE0000 */ lw $t6, ($a3) +/* 0AEDE8 7F07A2B8 240D0006 */ li $t5, 6 +/* 0AEDEC 7F07A2BC 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEDF0 7F07A2C0 A1ED0000 */ sb $t5, ($t7) +/* 0AEDF4 7F07A2C4 8CF80000 */ lw $t8, ($a3) +/* 0AEDF8 7F07A2C8 8F0C00A8 */ lw $t4, 0xa8($t8) +/* 0AEDFC 7F07A2CC 8D860004 */ lw $a2, 4($t4) +/* 0AEE00 7F07A2D0 8CCA0014 */ lw $t2, 0x14($a2) +/* 0AEE04 7F07A2D4 35590001 */ ori $t9, $t2, 1 +/* 0AEE08 7F07A2D8 ACD90014 */ sw $t9, 0x14($a2) +/* 0AEE0C 7F07A2DC 8CE30000 */ lw $v1, ($a3) +/* 0AEE10 7F07A2E0 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEE14 7F07A2E4 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEE18 7F07A2E8 AFA60110 */ sw $a2, 0x110($sp) +/* 0AEE1C 7F07A2EC 0FC1B303 */ jal setsuboffset +/* 0AEE20 7F07A2F0 24A50008 */ addiu $a1, $a1, 8 +/* 0AEE24 7F07A2F4 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0AEE28 7F07A2F8 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0AEE2C 7F07A2FC 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEE30 7F07A300 0FC1B34F */ jal setsubroty +/* 0AEE34 7F07A304 8D6400D4 */ lw $a0, 0xd4($t3) +/* 0AEE38 7F07A308 0FC26C91 */ jal sub_GAME_7F09B244 +/* 0AEE3C 7F07A30C 8FA40048 */ lw $a0, 0x48($sp) +/* 0AEE40 7F07A310 04400045 */ bltz $v0, .L7F07A428 +/* 0AEE44 7F07A314 AFA2004C */ sw $v0, 0x4c($sp) +/* 0AEE48 7F07A318 0FC26919 */ jal get_num_players +/* 0AEE4C 7F07A31C 00000000 */ nop +/* 0AEE50 7F07A320 24010001 */ li $at, 1 +/* 0AEE54 7F07A324 14410035 */ bne $v0, $at, .L7F07A3FC +/* 0AEE58 7F07A328 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AEE5C 7F07A32C 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0AEE60 7F07A330 24040001 */ li $a0, 1 +/* 0AEE64 7F07A334 01C26821 */ addu $t5, $t6, $v0 +/* 0AEE68 7F07A338 244200C7 */ addiu $v0, $v0, 0xc7 +/* 0AEE6C 7F07A33C 344F003F */ ori $t7, $v0, 0x3f +/* 0AEE70 7F07A340 39F8003F */ xori $t8, $t7, 0x3f +/* 0AEE74 7F07A344 AFAD00DC */ sw $t5, 0xdc($sp) +/* 0AEE78 7F07A348 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEE7C 7F07A34C AFB800E8 */ sw $t8, 0xe8($sp) +/* 0AEE80 7F07A350 8FAC004C */ lw $t4, 0x4c($sp) +/* 0AEE84 7F07A354 3C198004 */ lui $t9, %hi(PitemZ_entries) +/* 0AEE88 7F07A358 2739A228 */ addiu $t9, %lo(PitemZ_entries) # addiu $t9, $t9, -0x5dd8 +/* 0AEE8C 7F07A35C 000C5080 */ sll $t2, $t4, 2 +/* 0AEE90 7F07A360 014C5023 */ subu $t2, $t2, $t4 +/* 0AEE94 7F07A364 000A5080 */ sll $t2, $t2, 2 +/* 0AEE98 7F07A368 01591821 */ addu $v1, $t2, $t9 +/* 0AEE9C 7F07A36C 8C6B0000 */ lw $t3, ($v1) +/* 0AEEA0 7F07A370 AFA200F4 */ sw $v0, 0xf4($sp) +/* 0AEEA4 7F07A374 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEEA8 7F07A378 8D610000 */ lw $at, ($t3) +/* 0AEEAC 7F07A37C 00402025 */ move $a0, $v0 +/* 0AEEB0 7F07A380 AC410000 */ sw $at, ($v0) +/* 0AEEB4 7F07A384 8D6F0004 */ lw $t7, 4($t3) +/* 0AEEB8 7F07A388 AC4F0004 */ sw $t7, 4($v0) +/* 0AEEBC 7F07A38C 8D610008 */ lw $at, 8($t3) +/* 0AEEC0 7F07A390 AC410008 */ sw $at, 8($v0) +/* 0AEEC4 7F07A394 8D6F000C */ lw $t7, 0xc($t3) +/* 0AEEC8 7F07A398 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEECC 7F07A39C 8D610010 */ lw $at, 0x10($t3) +/* 0AEED0 7F07A3A0 AC410010 */ sw $at, 0x10($v0) +/* 0AEED4 7F07A3A4 8D6F0014 */ lw $t7, 0x14($t3) +/* 0AEED8 7F07A3A8 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEEDC 7F07A3AC 8D610018 */ lw $at, 0x18($t3) +/* 0AEEE0 7F07A3B0 AC410018 */ sw $at, 0x18($v0) +/* 0AEEE4 7F07A3B4 8D6F001C */ lw $t7, 0x1c($t3) +/* 0AEEE8 7F07A3B8 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEEEC 7F07A3BC 8FAC00E8 */ lw $t4, 0xe8($sp) +/* 0AEEF0 7F07A3C0 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 0AEEF4 7F07A3C4 8FB800F0 */ lw $t8, 0xf0($sp) +/* 0AEEF8 7F07A3C8 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEEFC 7F07A3CC AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEF00 7F07A3D0 8C650004 */ lw $a1, 4($v1) +/* 0AEF04 7F07A3D4 014C3823 */ subu $a3, $t2, $t4 +/* 0AEF08 7F07A3D8 0FC1D929 */ jal load_object_fill_header +/* 0AEF0C 7F07A3DC 030C3021 */ addu $a2, $t8, $t4 +/* 0AEF10 7F07A3E0 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEF14 7F07A3E4 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEF18 7F07A3E8 8C640004 */ lw $a0, 4($v1) +/* 0AEF1C 7F07A3EC 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEF20 7F07A3F0 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0AEF24 7F07A3F4 10000004 */ b .L7F07A408 +/* 0AEF28 7F07A3F8 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A3FC: +/* 0AEF2C 7F07A3FC AFA000DC */ sw $zero, 0xdc($sp) +/* 0AEF30 7F07A400 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0AEF34 7F07A404 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A408: +/* 0AEF38 7F07A408 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 0AEF3C 7F07A40C 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF40 7F07A410 8FA5004C */ lw $a1, 0x4c($sp) +/* 0AEF44 7F07A414 8FA60048 */ lw $a2, 0x48($sp) +/* 0AEF48 7F07A418 00003825 */ move $a3, $zero +/* 0AEF4C 7F07A41C AFAE0010 */ sw $t6, 0x10($sp) +/* 0AEF50 7F07A420 0FC14885 */ jal something_with_generating_object +/* 0AEF54 7F07A424 AFAB0014 */ sw $t3, 0x14($sp) +.L7F07A428: +/* 0AEF58 7F07A428 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF5C 7F07A42C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF60 7F07A430 24050000 */ li $a1, 0 +/* 0AEF64 7F07A434 10000017 */ b .L7F07A494 +/* 0AEF68 7F07A438 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF6C 7F07A43C 8C4F001C */ lw $t7, 0x1c($v0) +.L7F07A440: +/* 0AEF70 7F07A440 00402025 */ move $a0, $v0 +/* 0AEF74 7F07A444 8DF80020 */ lw $t8, 0x20($t7) +/* 0AEF78 7F07A448 57000012 */ bnezl $t8, .L7F07A494 +/* 0AEF7C 7F07A44C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF80 7F07A450 8C4C0014 */ lw $t4, 0x14($v0) +/* 0AEF84 7F07A454 24050000 */ li $a1, 0 +/* 0AEF88 7F07A458 358A0001 */ ori $t2, $t4, 1 +/* 0AEF8C 7F07A45C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF90 7F07A460 AC4A0014 */ sw $t2, 0x14($v0) +/* 0AEF94 7F07A464 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEF98 7F07A468 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEF9C 7F07A46C 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEFA0 7F07A470 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEFA4 7F07A474 0FC1B303 */ jal setsuboffset +/* 0AEFA8 7F07A478 24A50008 */ addiu $a1, $a1, 8 +/* 0AEFAC 7F07A47C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0AEFB0 7F07A480 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0AEFB4 7F07A484 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEFB8 7F07A488 0FC1B34F */ jal setsubroty +/* 0AEFBC 7F07A48C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEFC0 7F07A490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F07A494: +/* 0AEFC4 7F07A494 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0AEFC8 7F07A498 03E00008 */ jr $ra +/* 0AEFCC 7F07A49C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:80054FE4*/ +glabel jpt_bondcuff +.word .Ljp7F07A494 +.word cuff_1_brosnan +.word cuff_2_jungle +.word cuff_3_boiler +.word cuff_4_snowsuit +.word cuff_5_connery +.word cuff_6_moore +.word cuff_7_dalton +.word cuff_8_variable_bond_head + +/*D:80055008*/ +glabel jpt_bondhead +.word .Ljp7F07A574 +.word brosnan_tux_head_set +.word jungle_head_set +.word boiler_bond_head_set +.word .Ljp7F07A574 +.word connery_head_set +.word moore_head_set +.word dalton_head_set +.word variable_body_head + +glabel D_8005502C +.word 0x3f7851ec /*0.97000003*/ +.text +glabel solo_char_load +/* 0AEE50 7F07A2E0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0AEE54 7F07A2E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AEE58 7F07A2E8 0FC22987 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AEE5C 7F07A2EC 00000000 */ nop +/* 0AEE60 7F07A2F0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0AEE64 7F07A2F4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0AEE68 7F07A2F8 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0AEE6C 7F07A2FC 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEE70 7F07A300 8DE20004 */ lw $v0, 4($t7) +/* 0AEE74 7F07A304 544001D6 */ bnezl $v0, .Ljp7F07AA60 +/* 0AEE78 7F07A308 8C59001C */ lw $t9, 0x1c($v0) +/* 0AEE7C 7F07A30C 0FC17514 */ jal getPlayerWeaponBufferForHand +/* 0AEE80 7F07A310 00002025 */ move $a0, $zero +/* 0AEE84 7F07A314 AFA200F0 */ sw $v0, 0xf0($sp) +/* 0AEE88 7F07A318 0FC17514 */ jal getPlayerWeaponBufferForHand +/* 0AEE8C 7F07A31C 24040001 */ li $a0, 1 +/* 0AEE90 7F07A320 AFA200EC */ sw $v0, 0xec($sp) +/* 0AEE94 7F07A324 AFA000E8 */ sw $zero, 0xe8($sp) +/* 0AEE98 7F07A328 0FC1751A */ jal getSizeBufferWeaponInHand +/* 0AEE9C 7F07A32C 00002025 */ move $a0, $zero +/* 0AEEA0 7F07A330 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0AEEA4 7F07A334 0FC1751A */ jal getSizeBufferWeaponInHand +/* 0AEEA8 7F07A338 24040001 */ li $a0, 1 +/* 0AEEAC 7F07A33C 3C198003 */ lui $t9, %hi(dummy_08_pp7_obj) # $t9, 0x8003 +/* 0AEEB0 7F07A340 273965EC */ addiu $t9, %lo(dummy_08_pp7_obj) # addiu $t9, $t9, 0x65ec +/* 0AEEB4 7F07A344 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0AEEB8 7F07A348 272C0084 */ addiu $t4, $t9, 0x84 +/* 0AEEBC 7F07A34C 27B80054 */ addiu $t8, $sp, 0x54 +.Ljp7F07A350: +/* 0AEEC0 7F07A350 8F210000 */ lw $at, ($t9) +/* 0AEEC4 7F07A354 2739000C */ addiu $t9, $t9, 0xc +/* 0AEEC8 7F07A358 2718000C */ addiu $t8, $t8, 0xc +/* 0AEECC 7F07A35C AF01FFF4 */ sw $at, -0xc($t8) +/* 0AEED0 7F07A360 8F21FFF8 */ lw $at, -8($t9) +/* 0AEED4 7F07A364 AF01FFF8 */ sw $at, -8($t8) +/* 0AEED8 7F07A368 8F21FFFC */ lw $at, -4($t9) +/* 0AEEDC 7F07A36C 172CFFF8 */ bne $t9, $t4, .Ljp7F07A350 +/* 0AEEE0 7F07A370 AF01FFFC */ sw $at, -4($t8) +/* 0AEEE4 7F07A374 8F210000 */ lw $at, ($t9) +/* 0AEEE8 7F07A378 00002025 */ move $a0, $zero +/* 0AEEEC 7F07A37C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0AEEF0 7F07A380 AF010000 */ sw $at, ($t8) +/* 0AEEF4 7F07A384 240D0017 */ li $t5, 23 +/* 0AEEF8 7F07A388 240E004B */ li $t6, 75 +/* 0AEEFC 7F07A38C 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0AEF00 7F07A390 AFA20048 */ sw $v0, 0x48($sp) +/* 0AEF04 7F07A394 AFAD0044 */ sw $t5, 0x44($sp) +/* 0AEF08 7F07A398 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AEF0C 7F07A39C AFA00038 */ sw $zero, 0x38($sp) +/* 0AEF10 7F07A3A0 0FC1F922 */ jal sub_GAME_7F07DE64 +/* 0AEF14 7F07A3A4 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0AEF18 7F07A3A8 0FC26C01 */ jal get_num_players +/* 0AEF1C 7F07A3AC 00000000 */ nop +/* 0AEF20 7F07A3B0 24010001 */ li $at, 1 +/* 0AEF24 7F07A3B4 14410066 */ bne $v0, $at, .Ljp7F07A550 +/* 0AEF28 7F07A3B8 00000000 */ nop +/* 0AEF2C 7F07A3BC 0FC075C4 */ jal getSelectedFolderBond +/* 0AEF30 7F07A3C0 00000000 */ nop +/* 0AEF34 7F07A3C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0AEF38 7F07A3C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0AEF3C 7F07A3CC 8DE3041C */ lw $v1, 0x41c($t7) +/* 0AEF40 7F07A3D0 2C610009 */ sltiu $at, $v1, 9 +/* 0AEF44 7F07A3D4 1020002F */ beqz $at, .Ljp7F07A494 +/* 0AEF48 7F07A3D8 00035880 */ sll $t3, $v1, 2 +/* 0AEF4C 7F07A3DC 3C018005 */ lui $at, %hi(jpt_bondcuff) +/* 0AEF50 7F07A3E0 002B0821 */ addu $at, $at, $t3 +/* 0AEF54 7F07A3E4 8C2B5014 */ lw $t3, %lo(jpt_bondcuff)($at) +/* 0AEF58 7F07A3E8 01600008 */ jr $t3 +/* 0AEF5C 7F07A3EC 00000000 */ nop +cuff_3_boiler: +/* 0AEF60 7F07A3F0 240A0016 */ li $t2, 22 +/* 0AEF64 7F07A3F4 10000027 */ b .Ljp7F07A494 +/* 0AEF68 7F07A3F8 AFAA0044 */ sw $t2, 0x44($sp) +cuff_2_jungle: +/* 0AEF6C 7F07A3FC 240C0018 */ li $t4, 24 +/* 0AEF70 7F07A400 10000024 */ b .Ljp7F07A494 +/* 0AEF74 7F07A404 AFAC0044 */ sw $t4, 0x44($sp) +cuff_4_snowsuit: +/* 0AEF78 7F07A408 24190019 */ li $t9, 25 +/* 0AEF7C 7F07A40C 10000021 */ b .Ljp7F07A494 +/* 0AEF80 7F07A410 AFB90044 */ sw $t9, 0x44($sp) +cuff_1_brosnan: +/* 0AEF84 7F07A414 24180005 */ li $t8, 5 +/* 0AEF88 7F07A418 1000001E */ b .Ljp7F07A494 +/* 0AEF8C 7F07A41C AFB80044 */ sw $t8, 0x44($sp) +cuff_5_connery: +/* 0AEF90 7F07A420 240D0005 */ li $t5, 5 +/* 0AEF94 7F07A424 1000001B */ b .Ljp7F07A494 +/* 0AEF98 7F07A428 AFAD0044 */ sw $t5, 0x44($sp) +cuff_6_moore: +/* 0AEF9C 7F07A42C 240E0005 */ li $t6, 5 +/* 0AEFA0 7F07A430 10000018 */ b .Ljp7F07A494 +/* 0AEFA4 7F07A434 AFAE0044 */ sw $t6, 0x44($sp) +cuff_7_dalton: +/* 0AEFA8 7F07A438 240F0005 */ li $t7, 5 +/* 0AEFAC 7F07A43C 10000015 */ b .Ljp7F07A494 +/* 0AEFB0 7F07A440 AFAF0044 */ sw $t7, 0x44($sp) +cuff_8_variable_bond_head: +/* 0AEFB4 7F07A444 1040000C */ beqz $v0, .Ljp7F07A478 +/* 0AEFB8 7F07A448 240B0005 */ li $t3, 5 +/* 0AEFBC 7F07A44C 24010001 */ li $at, 1 +/* 0AEFC0 7F07A450 1041000B */ beq $v0, $at, .Ljp7F07A480 +/* 0AEFC4 7F07A454 240A0005 */ li $t2, 5 +/* 0AEFC8 7F07A458 24010002 */ li $at, 2 +/* 0AEFCC 7F07A45C 1041000A */ beq $v0, $at, .Ljp7F07A488 +/* 0AEFD0 7F07A460 240C0005 */ li $t4, 5 +/* 0AEFD4 7F07A464 24010003 */ li $at, 3 +/* 0AEFD8 7F07A468 10410009 */ beq $v0, $at, .Ljp7F07A490 +/* 0AEFDC 7F07A46C 24190005 */ li $t9, 5 +/* 0AEFE0 7F07A470 10000008 */ b .Ljp7F07A494 +/* 0AEFE4 7F07A474 00000000 */ nop +.Ljp7F07A478: +/* 0AEFE8 7F07A478 10000006 */ b .Ljp7F07A494 +/* 0AEFEC 7F07A47C AFAB0044 */ sw $t3, 0x44($sp) +.Ljp7F07A480: +/* 0AEFF0 7F07A480 10000004 */ b .Ljp7F07A494 +/* 0AEFF4 7F07A484 AFAA0044 */ sw $t2, 0x44($sp) +.Ljp7F07A488: +/* 0AEFF8 7F07A488 10000002 */ b .Ljp7F07A494 +/* 0AEFFC 7F07A48C AFAC0044 */ sw $t4, 0x44($sp) +.Ljp7F07A490: +/* 0AF000 7F07A490 AFB90044 */ sw $t9, 0x44($sp) +.Ljp7F07A494: +/* 0AF004 7F07A494 1040000C */ beqz $v0, .Ljp7F07A4C8 +/* 0AF008 7F07A498 2C610009 */ sltiu $at, $v1, 9 +/* 0AF00C 7F07A49C 24010001 */ li $at, 1 +/* 0AF010 7F07A4A0 10410025 */ beq $v0, $at, .Ljp7F07A538 +/* 0AF014 7F07A4A4 2418004E */ li $t8, 78 +/* 0AF018 7F07A4A8 24010002 */ li $at, 2 +/* 0AF01C 7F07A4AC 10410024 */ beq $v0, $at, .Ljp7F07A540 +/* 0AF020 7F07A4B0 240D004E */ li $t5, 78 +/* 0AF024 7F07A4B4 24010003 */ li $at, 3 +/* 0AF028 7F07A4B8 10410023 */ beq $v0, $at, .Ljp7F07A548 +/* 0AF02C 7F07A4BC 240E004E */ li $t6, 78 +/* 0AF030 7F07A4C0 1000002C */ b .Ljp7F07A574 +/* 0AF034 7F07A4C4 00000000 */ nop +.Ljp7F07A4C8: +/* 0AF038 7F07A4C8 1020002A */ beqz $at, .Ljp7F07A574 +/* 0AF03C 7F07A4CC 0003C080 */ sll $t8, $v1, 2 +/* 0AF040 7F07A4D0 3C018005 */ lui $at, %hi(jpt_bondhead) +/* 0AF044 7F07A4D4 00380821 */ addu $at, $at, $t8 +/* 0AF048 7F07A4D8 8C385038 */ lw $t8, %lo(jpt_bondhead)($at) +/* 0AF04C 7F07A4DC 03000008 */ jr $t8 +/* 0AF050 7F07A4E0 00000000 */ nop +boiler_bond_head_set: +/* 0AF054 7F07A4E4 240D004A */ li $t5, 74 +/* 0AF058 7F07A4E8 10000022 */ b .Ljp7F07A574 +/* 0AF05C 7F07A4EC AFAD0040 */ sw $t5, 0x40($sp) +jungle_head_set: +/* 0AF060 7F07A4F0 240E004C */ li $t6, 76 +/* 0AF064 7F07A4F4 1000001F */ b .Ljp7F07A574 +/* 0AF068 7F07A4F8 AFAE0040 */ sw $t6, 0x40($sp) +brosnan_tux_head_set: +/* 0AF06C 7F07A4FC 240F004E */ li $t7, 78 +/* 0AF070 7F07A500 1000001C */ b .Ljp7F07A574 +/* 0AF074 7F07A504 AFAF0040 */ sw $t7, 0x40($sp) +connery_head_set: +/* 0AF078 7F07A508 240B004E */ li $t3, 78 +/* 0AF07C 7F07A50C 10000019 */ b .Ljp7F07A574 +/* 0AF080 7F07A510 AFAB0040 */ sw $t3, 0x40($sp) +moore_head_set: +/* 0AF084 7F07A514 240A004E */ li $t2, 78 +/* 0AF088 7F07A518 10000016 */ b .Ljp7F07A574 +/* 0AF08C 7F07A51C AFAA0040 */ sw $t2, 0x40($sp) +dalton_head_set: +/* 0AF090 7F07A520 240C004E */ li $t4, 78 +/* 0AF094 7F07A524 10000013 */ b .Ljp7F07A574 +/* 0AF098 7F07A528 AFAC0040 */ sw $t4, 0x40($sp) +variable_body_head: +/* 0AF09C 7F07A52C 2419004E */ li $t9, 78 +/* 0AF0A0 7F07A530 10000010 */ b .Ljp7F07A574 +/* 0AF0A4 7F07A534 AFB90040 */ sw $t9, 0x40($sp) +.Ljp7F07A538: +/* 0AF0A8 7F07A538 1000000E */ b .Ljp7F07A574 +/* 0AF0AC 7F07A53C AFB80040 */ sw $t8, 0x40($sp) +.Ljp7F07A540: +/* 0AF0B0 7F07A540 1000000C */ b .Ljp7F07A574 +/* 0AF0B4 7F07A544 AFAD0040 */ sw $t5, 0x40($sp) +.Ljp7F07A548: +/* 0AF0B8 7F07A548 1000000A */ b .Ljp7F07A574 +/* 0AF0BC 7F07A54C AFAE0040 */ sw $t6, 0x40($sp) +.Ljp7F07A550: +/* 0AF0C0 7F07A550 0FC26F3C */ jal get_cur_playernum +/* 0AF0C4 7F07A554 00000000 */ nop +/* 0AF0C8 7F07A558 0FC040BF */ jal get_player_mp_char_head +/* 0AF0CC 7F07A55C 00402025 */ move $a0, $v0 +/* 0AF0D0 7F07A560 0FC26F3C */ jal get_cur_playernum +/* 0AF0D4 7F07A564 AFA20040 */ sw $v0, 0x40($sp) +/* 0AF0D8 7F07A568 0FC040E7 */ jal get_player_mp_char_body +/* 0AF0DC 7F07A56C 00402025 */ move $a0, $v0 +/* 0AF0E0 7F07A570 AFA20044 */ sw $v0, 0x44($sp) +.Ljp7F07A574: +/* 0AF0E4 7F07A574 3C0F8003 */ lui $t7, %hi(cameramode) # $t7, 0x8003 +/* 0AF0E8 7F07A578 8DEF64D4 */ lw $t7, %lo(cameramode)($t7) +/* 0AF0EC 7F07A57C 24010003 */ li $at, 3 +/* 0AF0F0 7F07A580 15E10003 */ bne $t7, $at, .Ljp7F07A590 +/* 0AF0F4 7F07A584 3C0B8008 */ lui $t3, %hi(starting_right_weapon) # $t3, 0x8008 +/* 0AF0F8 7F07A588 8D6B9A20 */ lw $t3, %lo(starting_right_weapon)($t3) +/* 0AF0FC 7F07A58C AFAB0048 */ sw $t3, 0x48($sp) +.Ljp7F07A590: +/* 0AF100 7F07A590 0FC26C01 */ jal get_num_players +/* 0AF104 7F07A594 00000000 */ nop +/* 0AF108 7F07A598 24010001 */ li $at, 1 +/* 0AF10C 7F07A59C 14410082 */ bne $v0, $at, .Ljp7F07A7A8 +/* 0AF110 7F07A5A0 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AF114 7F07A5A4 0FC1751F */ jal remove_item_in_hand +/* 0AF118 7F07A5A8 24040001 */ li $a0, 1 +/* 0AF11C 7F07A5AC 0FC1751F */ jal remove_item_in_hand +/* 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 +/* 0AF130 7F07A5C0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0AF134 7F07A5C4 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0AF138 7F07A5C8 00002025 */ move $a0, $zero +/* 0AF13C 7F07A5CC 8FAA0044 */ lw $t2, 0x44($sp) +/* 0AF140 7F07A5D0 3C198004 */ lui $t9, %hi(c_item_entries) # $t9, 0x8004 +/* 0AF144 7F07A5D4 2739DE40 */ addiu $t9, %lo(c_item_entries) # addiu $t9, $t9, -0x21c0 +/* 0AF148 7F07A5D8 000A6080 */ sll $t4, $t2, 2 +/* 0AF14C 7F07A5DC 018A6021 */ addu $t4, $t4, $t2 +/* 0AF150 7F07A5E0 000C6080 */ sll $t4, $t4, 2 +/* 0AF154 7F07A5E4 01991821 */ addu $v1, $t4, $t9 +/* 0AF158 7F07A5E8 8C780000 */ lw $t8, ($v1) +/* 0AF15C 7F07A5EC AFA200FC */ sw $v0, 0xfc($sp) +/* 0AF160 7F07A5F0 27AB0100 */ addiu $t3, $sp, 0x100 +/* 0AF164 7F07A5F4 8F010000 */ lw $at, ($t8) +/* 0AF168 7F07A5F8 00402025 */ move $a0, $v0 +/* 0AF16C 7F07A5FC AC410000 */ sw $at, ($v0) +/* 0AF170 7F07A600 8F0F0004 */ lw $t7, 4($t8) +/* 0AF174 7F07A604 AC4F0004 */ sw $t7, 4($v0) +/* 0AF178 7F07A608 8F010008 */ lw $at, 8($t8) +/* 0AF17C 7F07A60C AC410008 */ sw $at, 8($v0) +/* 0AF180 7F07A610 8F0F000C */ lw $t7, 0xc($t8) +/* 0AF184 7F07A614 AC4F000C */ sw $t7, 0xc($v0) +/* 0AF188 7F07A618 8F010010 */ lw $at, 0x10($t8) +/* 0AF18C 7F07A61C AC410010 */ sw $at, 0x10($v0) +/* 0AF190 7F07A620 8F0F0014 */ lw $t7, 0x14($t8) +/* 0AF194 7F07A624 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AF198 7F07A628 8F010018 */ lw $at, 0x18($t8) +/* 0AF19C 7F07A62C AC410018 */ sw $at, 0x18($v0) +/* 0AF1A0 7F07A630 8F0F001C */ lw $t7, 0x1c($t8) +/* 0AF1A4 7F07A634 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AF1A8 7F07A638 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF1AC 7F07A63C AFAB0010 */ sw $t3, 0x10($sp) +/* 0AF1B0 7F07A640 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0AF1B4 7F07A644 8FA600F0 */ lw $a2, 0xf0($sp) +/* 0AF1B8 7F07A648 0FC1DAA5 */ jal load_object_fill_header +/* 0AF1BC 7F07A64C 8C650004 */ lw $a1, 4($v1) +/* 0AF1C0 7F07A650 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF1C4 7F07A654 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF1C8 7F07A658 8C640004 */ lw $a0, 4($v1) +/* 0AF1CC 7F07A65C 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AF1D0 7F07A660 3C0F8004 */ lui $t7, %hi(c_item_entries) # $t7, 0x8004 +/* 0AF1D4 7F07A664 25EFDE40 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21c0 +/* 0AF1D8 7F07A668 000DC080 */ sll $t8, $t5, 2 +/* 0AF1DC 7F07A66C 030DC021 */ addu $t8, $t8, $t5 +/* 0AF1E0 7F07A670 0018C080 */ sll $t8, $t8, 2 +/* 0AF1E4 7F07A674 030F1821 */ addu $v1, $t8, $t7 +/* 0AF1E8 7F07A678 8C6B0000 */ lw $t3, ($v1) +/* 0AF1EC 7F07A67C 2448003F */ addiu $t0, $v0, 0x3f +/* 0AF1F0 7F07A680 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0AF1F4 7F07A684 350A003F */ ori $t2, $t0, 0x3f +/* 0AF1F8 7F07A688 8D610000 */ lw $at, ($t3) +/* 0AF1FC 7F07A68C 394C003F */ xori $t4, $t2, 0x3f +/* 0AF200 7F07A690 2588005F */ addiu $t0, $t4, 0x5f +/* 0AF204 7F07A694 3519003F */ ori $t9, $t0, 0x3f +/* 0AF208 7F07A698 012C2021 */ addu $a0, $t1, $t4 +/* 0AF20C 7F07A69C 3B28003F */ xori $t0, $t9, 0x3f +/* 0AF210 7F07A6A0 AC810000 */ sw $at, ($a0) +/* 0AF214 7F07A6A4 8D790004 */ lw $t9, 4($t3) +/* 0AF218 7F07A6A8 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AF21C 7F07A6AC 01283021 */ addu $a2, $t1, $t0 +/* 0AF220 7F07A6B0 AC990004 */ sw $t9, 4($a0) +/* 0AF224 7F07A6B4 8D610008 */ lw $at, 8($t3) +/* 0AF228 7F07A6B8 AC810008 */ sw $at, 8($a0) +/* 0AF22C 7F07A6BC 8D79000C */ lw $t9, 0xc($t3) +/* 0AF230 7F07A6C0 AC99000C */ sw $t9, 0xc($a0) +/* 0AF234 7F07A6C4 8D610010 */ lw $at, 0x10($t3) +/* 0AF238 7F07A6C8 AC810010 */ sw $at, 0x10($a0) +/* 0AF23C 7F07A6CC 8D790014 */ lw $t9, 0x14($t3) +/* 0AF240 7F07A6D0 AC990014 */ sw $t9, 0x14($a0) +/* 0AF244 7F07A6D4 8D610018 */ lw $at, 0x18($t3) +/* 0AF248 7F07A6D8 AC810018 */ sw $at, 0x18($a0) +/* 0AF24C 7F07A6DC 8D79001C */ lw $t9, 0x1c($t3) +/* 0AF250 7F07A6E0 AC99001C */ sw $t9, 0x1c($a0) +/* 0AF254 7F07A6E4 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AF258 7F07A6E8 AFA800E8 */ sw $t0, 0xe8($sp) +/* 0AF25C 7F07A6EC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AF260 7F07A6F0 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF264 7F07A6F4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0AF268 7F07A6F8 8C650004 */ lw $a1, 4($v1) +/* 0AF26C 7F07A6FC 0FC1DAA5 */ jal load_object_fill_header +/* 0AF270 7F07A700 01C83823 */ subu $a3, $t6, $t0 +/* 0AF274 7F07A704 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF278 7F07A708 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF27C 7F07A70C 8C640004 */ lw $a0, 4($v1) +/* 0AF280 7F07A710 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AF284 7F07A714 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AF288 7F07A718 8FA400FC */ lw $a0, 0xfc($sp) +/* 0AF28C 7F07A71C 00431821 */ addu $v1, $v0, $v1 +/* 0AF290 7F07A720 2463003F */ addiu $v1, $v1, 0x3f +/* 0AF294 7F07A724 3478003F */ ori $t8, $v1, 0x3f +/* 0AF298 7F07A728 3B0F003F */ xori $t7, $t8, 0x3f +/* 0AF29C 7F07A72C 25E300FB */ addiu $v1, $t7, 0xfb +/* 0AF2A0 7F07A730 346B003F */ ori $t3, $v1, 0x3f +/* 0AF2A4 7F07A734 3979003F */ xori $t9, $t3, 0x3f +/* 0AF2A8 7F07A738 018F5021 */ addu $t2, $t4, $t7 +/* 0AF2AC 7F07A73C AFAA0038 */ sw $t2, 0x38($sp) +/* 0AF2B0 7F07A740 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF2B4 7F07A744 AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AF2B8 7F07A748 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF2BC 7F07A74C 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0AF2C0 7F07A750 8FA500FC */ lw $a1, 0xfc($sp) +/* 0AF2C4 7F07A754 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0AF2C8 7F07A758 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AF2CC 7F07A75C 84B80014 */ lh $t8, 0x14($a1) +/* 0AF2D0 7F07A760 85EC0014 */ lh $t4, 0x14($t7) +/* 0AF2D4 7F07A764 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AF2D8 7F07A768 8FA40038 */ lw $a0, 0x38($sp) +/* 0AF2DC 7F07A76C 030C1021 */ addu $v0, $t8, $t4 +/* 0AF2E0 7F07A770 2442000A */ addiu $v0, $v0, 0xa +/* 0AF2E4 7F07A774 00025080 */ sll $t2, $v0, 2 +/* 0AF2E8 7F07A778 01C33021 */ addu $a2, $t6, $v1 +/* 0AF2EC 7F07A77C 01431821 */ addu $v1, $t2, $v1 +/* 0AF2F0 7F07A780 2463003F */ addiu $v1, $v1, 0x3f +/* 0AF2F4 7F07A784 346B003F */ ori $t3, $v1, 0x3f +/* 0AF2F8 7F07A788 3979003F */ xori $t9, $t3, 0x3f +/* 0AF2FC 7F07A78C AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AF300 7F07A790 0FC1D967 */ jal sub_GAME_7F075FAC +/* 0AF304 7F07A794 AFA20030 */ sw $v0, 0x30($sp) +/* 0AF308 7F07A798 8FA20030 */ lw $v0, 0x30($sp) +/* 0AF30C 7F07A79C 8FAE0038 */ lw $t6, 0x38($sp) +/* 0AF310 7F07A7A0 10000026 */ b .Ljp7F07A83C +/* 0AF314 7F07A7A4 A5C20002 */ sh $v0, 2($t6) +.Ljp7F07A7A8: +/* 0AF318 7F07A7A8 000FC080 */ sll $t8, $t7, 2 +/* 0AF31C 7F07A7AC 030FC021 */ addu $t8, $t8, $t7 +/* 0AF320 7F07A7B0 3C0C8004 */ lui $t4, %hi(c_item_entries) # $t4, 0x8004 +/* 0AF324 7F07A7B4 258CDE40 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21c0 +/* 0AF328 7F07A7B8 0018C080 */ sll $t8, $t8, 2 +/* 0AF32C 7F07A7BC 030C1821 */ addu $v1, $t8, $t4 +/* 0AF330 7F07A7C0 8C6A0000 */ lw $t2, ($v1) +/* 0AF334 7F07A7C4 AFAA00FC */ sw $t2, 0xfc($sp) +/* 0AF338 7F07A7C8 8D590000 */ lw $t9, ($t2) +/* 0AF33C 7F07A7CC 01402025 */ move $a0, $t2 +/* 0AF340 7F07A7D0 57200006 */ bnezl $t9, .Ljp7F07A7EC +/* 0AF344 7F07A7D4 906D0011 */ lbu $t5, 0x11($v1) +/* 0AF348 7F07A7D8 8C650004 */ lw $a1, 4($v1) +/* 0AF34C 7F07A7DC 0FC1DACF */ jal load_object_into_memory +/* 0AF350 7F07A7E0 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF354 7F07A7E4 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF358 7F07A7E8 906D0011 */ lbu $t5, 0x11($v1) +.Ljp7F07A7EC: +/* 0AF35C 7F07A7EC 8FAF0040 */ lw $t7, 0x40($sp) +/* 0AF360 7F07A7F0 3C0C8004 */ lui $t4, %hi(c_item_entries) # $t4, 0x8004 +/* 0AF364 7F07A7F4 11A00005 */ beqz $t5, .Ljp7F07A80C +/* 0AF368 7F07A7F8 000FC080 */ sll $t8, $t7, 2 +/* 0AF36C 7F07A7FC 240EFFFF */ li $t6, -1 +/* 0AF370 7F07A800 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AF374 7F07A804 1000000D */ b .Ljp7F07A83C +/* 0AF378 7F07A808 AFA000F8 */ sw $zero, 0xf8($sp) +.Ljp7F07A80C: +/* 0AF37C 7F07A80C 030FC021 */ addu $t8, $t8, $t7 +/* 0AF380 7F07A810 0018C080 */ sll $t8, $t8, 2 +/* 0AF384 7F07A814 258CDE40 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21c0 +/* 0AF388 7F07A818 030C1821 */ addu $v1, $t8, $t4 +/* 0AF38C 7F07A81C 8C640000 */ lw $a0, ($v1) +/* 0AF390 7F07A820 AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AF394 7F07A824 8C8A0000 */ lw $t2, ($a0) +/* 0AF398 7F07A828 55400005 */ bnezl $t2, .Ljp7F07A840 +/* 0AF39C 7F07A82C 8FB90038 */ lw $t9, 0x38($sp) +/* 0AF3A0 7F07A830 8C650004 */ lw $a1, 4($v1) +/* 0AF3A4 7F07A834 0FC1DACF */ jal load_object_into_memory +/* 0AF3A8 7F07A838 AFA400F8 */ sw $a0, 0xf8($sp) +.Ljp7F07A83C: +/* 0AF3AC 7F07A83C 8FB90038 */ lw $t9, 0x38($sp) +.Ljp7F07A840: +/* 0AF3B0 7F07A840 8FA40044 */ lw $a0, 0x44($sp) +/* 0AF3B4 7F07A844 8FA50040 */ lw $a1, 0x40($sp) +/* 0AF3B8 7F07A848 8FA600FC */ lw $a2, 0xfc($sp) +/* 0AF3BC 7F07A84C 8FA700F8 */ lw $a3, 0xf8($sp) +/* 0AF3C0 7F07A850 AFA00010 */ sw $zero, 0x10($sp) +/* 0AF3C4 7F07A854 0FC08D76 */ jal maybe_load_models_for_guards +/* 0AF3C8 7F07A858 AFB90014 */ sw $t9, 0x14($sp) +/* 0AF3CC 7F07A85C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF3D0 7F07A860 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AF3D4 7F07A864 8C6B0000 */ lw $t3, ($v1) +/* 0AF3D8 7F07A868 3C018005 */ lui $at, %hi(D_8005502C) # $at, 0x8005 +/* 0AF3DC 7F07A86C AD6200D4 */ sw $v0, 0xd4($t3) +/* 0AF3E0 7F07A870 8C6D0000 */ lw $t5, ($v1) +/* 0AF3E4 7F07A874 C426505C */ lwc1 $f6, %lo(D_8005502C)($at) +/* 0AF3E8 7F07A878 8DA400D4 */ lw $a0, 0xd4($t5) +/* 0AF3EC 7F07A87C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0AF3F0 7F07A880 46062202 */ mul.s $f8, $f4, $f6 +/* 0AF3F4 7F07A884 44054000 */ mfc1 $a1, $f8 +/* 0AF3F8 7F07A888 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0AF3FC 7F07A88C 00000000 */ nop +/* 0AF400 7F07A890 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF404 7F07A894 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0AF408 7F07A898 8FA70114 */ lw $a3, 0x114($sp) +/* 0AF40C 7F07A89C 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0AF410 7F07A8A0 8C6500D4 */ lw $a1, 0xd4($v1) +/* 0AF414 7F07A8A4 8C8E0014 */ lw $t6, 0x14($a0) +/* 0AF418 7F07A8A8 AFA00014 */ sw $zero, 0x14($sp) +/* 0AF41C 7F07A8AC 24860008 */ addiu $a2, $a0, 8 +/* 0AF420 7F07A8B0 0FC0809B */ jal init_GUARDdata_with_set_values +/* 0AF424 7F07A8B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0AF428 7F07A8B8 3C078008 */ lui $a3, %hi(pPlayer) # $a3, 0x8008 +/* 0AF42C 7F07A8BC 24E7A120 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5ee0 +/* 0AF430 7F07A8C0 8CF80000 */ lw $t8, ($a3) +/* 0AF434 7F07A8C4 240F0006 */ li $t7, 6 +/* 0AF438 7F07A8C8 8F0C00A8 */ lw $t4, 0xa8($t8) +/* 0AF43C 7F07A8CC A18F0000 */ sb $t7, ($t4) +/* 0AF440 7F07A8D0 8CEA0000 */ lw $t2, ($a3) +/* 0AF444 7F07A8D4 8D5900A8 */ lw $t9, 0xa8($t2) +/* 0AF448 7F07A8D8 8F260004 */ lw $a2, 4($t9) +/* 0AF44C 7F07A8DC 8CCB0014 */ lw $t3, 0x14($a2) +/* 0AF450 7F07A8E0 356D0001 */ ori $t5, $t3, 1 +/* 0AF454 7F07A8E4 ACCD0014 */ sw $t5, 0x14($a2) +/* 0AF458 7F07A8E8 8CE30000 */ lw $v1, ($a3) +/* 0AF45C 7F07A8EC 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AF460 7F07A8F0 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AF464 7F07A8F4 AFA60110 */ sw $a2, 0x110($sp) +/* 0AF468 7F07A8F8 0FC1B47F */ jal setsuboffset +/* 0AF46C 7F07A8FC 24A50008 */ addiu $a1, $a1, 8 +/* 0AF470 7F07A900 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0AF474 7F07A904 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0AF478 7F07A908 8FA50114 */ lw $a1, 0x114($sp) +/* 0AF47C 7F07A90C 0FC1B4CB */ jal setsubroty +/* 0AF480 7F07A910 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AF484 7F07A914 8FA20110 */ lw $v0, 0x110($sp) +/* 0AF488 7F07A918 8FB80040 */ lw $t8, 0x40($sp) +/* 0AF48C 7F07A91C A0580006 */ sb $t8, 6($v0) +/* 0AF490 7F07A920 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AF494 7F07A924 A04F000F */ sb $t7, 0xf($v0) +/* 0AF498 7F07A928 0FC26F79 */ jal sub_GAME_7F09B244 +/* 0AF49C 7F07A92C 8FA40048 */ lw $a0, 0x48($sp) +/* 0AF4A0 7F07A930 04400045 */ bltz $v0, .Ljp7F07AA48 +/* 0AF4A4 7F07A934 AFA2004C */ sw $v0, 0x4c($sp) +/* 0AF4A8 7F07A938 0FC26C01 */ jal get_num_players +/* 0AF4AC 7F07A93C 00000000 */ nop +/* 0AF4B0 7F07A940 24010001 */ li $at, 1 +/* 0AF4B4 7F07A944 14410035 */ bne $v0, $at, .Ljp7F07AA1C +/* 0AF4B8 7F07A948 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AF4BC 7F07A94C 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0AF4C0 7F07A950 24040001 */ li $a0, 1 +/* 0AF4C4 7F07A954 01825021 */ addu $t2, $t4, $v0 +/* 0AF4C8 7F07A958 244200C7 */ addiu $v0, $v0, 0xc7 +/* 0AF4CC 7F07A95C 3459003F */ ori $t9, $v0, 0x3f +/* 0AF4D0 7F07A960 3B2B003F */ xori $t3, $t9, 0x3f +/* 0AF4D4 7F07A964 AFAA00DC */ sw $t2, 0xdc($sp) +/* 0AF4D8 7F07A968 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0AF4DC 7F07A96C AFAB00E8 */ sw $t3, 0xe8($sp) +/* 0AF4E0 7F07A970 8FAD004C */ lw $t5, 0x4c($sp) +/* 0AF4E4 7F07A974 3C188004 */ lui $t8, %hi(PitemZ_entries) # $t8, 0x8004 +/* 0AF4E8 7F07A978 2718A258 */ addiu $t8, %lo(PitemZ_entries) # addiu $t8, $t8, -0x5da8 +/* 0AF4EC 7F07A97C 000D7080 */ sll $t6, $t5, 2 +/* 0AF4F0 7F07A980 01CD7023 */ subu $t6, $t6, $t5 +/* 0AF4F4 7F07A984 000E7080 */ sll $t6, $t6, 2 +/* 0AF4F8 7F07A988 01D81821 */ addu $v1, $t6, $t8 +/* 0AF4FC 7F07A98C 8C6F0000 */ lw $t7, ($v1) +/* 0AF500 7F07A990 AFA200F4 */ sw $v0, 0xf4($sp) +/* 0AF504 7F07A994 27AA0100 */ addiu $t2, $sp, 0x100 +/* 0AF508 7F07A998 8DE10000 */ lw $at, ($t7) +/* 0AF50C 7F07A99C 00402025 */ move $a0, $v0 +/* 0AF510 7F07A9A0 AC410000 */ sw $at, ($v0) +/* 0AF514 7F07A9A4 8DF90004 */ lw $t9, 4($t7) +/* 0AF518 7F07A9A8 AC590004 */ sw $t9, 4($v0) +/* 0AF51C 7F07A9AC 8DE10008 */ lw $at, 8($t7) +/* 0AF520 7F07A9B0 AC410008 */ sw $at, 8($v0) +/* 0AF524 7F07A9B4 8DF9000C */ lw $t9, 0xc($t7) +/* 0AF528 7F07A9B8 AC59000C */ sw $t9, 0xc($v0) +/* 0AF52C 7F07A9BC 8DE10010 */ lw $at, 0x10($t7) +/* 0AF530 7F07A9C0 AC410010 */ sw $at, 0x10($v0) +/* 0AF534 7F07A9C4 8DF90014 */ lw $t9, 0x14($t7) +/* 0AF538 7F07A9C8 AC590014 */ sw $t9, 0x14($v0) +/* 0AF53C 7F07A9CC 8DE10018 */ lw $at, 0x18($t7) +/* 0AF540 7F07A9D0 AC410018 */ sw $at, 0x18($v0) +/* 0AF544 7F07A9D4 8DF9001C */ lw $t9, 0x1c($t7) +/* 0AF548 7F07A9D8 AC59001C */ sw $t9, 0x1c($v0) +/* 0AF54C 7F07A9DC 8FAD00E8 */ lw $t5, 0xe8($sp) +/* 0AF550 7F07A9E0 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AF554 7F07A9E4 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 0AF558 7F07A9E8 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF55C 7F07A9EC AFAA0010 */ sw $t2, 0x10($sp) +/* 0AF560 7F07A9F0 8C650004 */ lw $a1, 4($v1) +/* 0AF564 7F07A9F4 01CD3823 */ subu $a3, $t6, $t5 +/* 0AF568 7F07A9F8 0FC1DAA5 */ jal load_object_fill_header +/* 0AF56C 7F07A9FC 016D3021 */ addu $a2, $t3, $t5 +/* 0AF570 7F07AA00 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF574 7F07AA04 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF578 7F07AA08 8C640004 */ lw $a0, 4($v1) +/* 0AF57C 7F07AA0C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF580 7F07AA10 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0AF584 7F07AA14 10000004 */ b .Ljp7F07AA28 +/* 0AF588 7F07AA18 8FAC00DC */ lw $t4, 0xdc($sp) +.Ljp7F07AA1C: +/* 0AF58C 7F07AA1C AFA000DC */ sw $zero, 0xdc($sp) +/* 0AF590 7F07AA20 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0AF594 7F07AA24 8FAC00DC */ lw $t4, 0xdc($sp) +.Ljp7F07AA28: +/* 0AF598 7F07AA28 8FAF00F4 */ lw $t7, 0xf4($sp) +/* 0AF59C 7F07AA2C 8FA40110 */ lw $a0, 0x110($sp) +/* 0AF5A0 7F07AA30 8FA5004C */ lw $a1, 0x4c($sp) +/* 0AF5A4 7F07AA34 8FA60048 */ lw $a2, 0x48($sp) +/* 0AF5A8 7F07AA38 00003825 */ move $a3, $zero +/* 0AF5AC 7F07AA3C AFAC0010 */ sw $t4, 0x10($sp) +/* 0AF5B0 7F07AA40 0FC149C4 */ jal something_with_generating_object +/* 0AF5B4 7F07AA44 AFAF0014 */ sw $t7, 0x14($sp) +.Ljp7F07AA48: +/* 0AF5B8 7F07AA48 8FA40110 */ lw $a0, 0x110($sp) +/* 0AF5BC 7F07AA4C 0FC08F65 */ jal sub_GAME_7F023A94 +/* 0AF5C0 7F07AA50 24050000 */ li $a1, 0 +/* 0AF5C4 7F07AA54 10000017 */ b .Ljp7F07AAB4 +/* 0AF5C8 7F07AA58 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AF5CC 7F07AA5C 8C59001C */ lw $t9, 0x1c($v0) +.Ljp7F07AA60: +/* 0AF5D0 7F07AA60 00402025 */ move $a0, $v0 +/* 0AF5D4 7F07AA64 8F2B0020 */ lw $t3, 0x20($t9) +/* 0AF5D8 7F07AA68 55600012 */ bnezl $t3, .Ljp7F07AAB4 +/* 0AF5DC 7F07AA6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AF5E0 7F07AA70 8C4D0014 */ lw $t5, 0x14($v0) +/* 0AF5E4 7F07AA74 24050000 */ li $a1, 0 +/* 0AF5E8 7F07AA78 35AE0001 */ ori $t6, $t5, 1 +/* 0AF5EC 7F07AA7C 0FC08F65 */ jal sub_GAME_7F023A94 +/* 0AF5F0 7F07AA80 AC4E0014 */ sw $t6, 0x14($v0) +/* 0AF5F4 7F07AA84 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF5F8 7F07AA88 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0AF5FC 7F07AA8C 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AF600 7F07AA90 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AF604 7F07AA94 0FC1B47F */ jal setsuboffset +/* 0AF608 7F07AA98 24A50008 */ addiu $a1, $a1, 8 +/* 0AF60C 7F07AA9C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0AF610 7F07AAA0 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0AF614 7F07AAA4 8FA50114 */ lw $a1, 0x114($sp) +/* 0AF618 7F07AAA8 0FC1B4CB */ jal setsubroty +/* 0AF61C 7F07AAAC 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0AF620 7F07AAB0 8FBF001C */ lw $ra, 0x1c($sp) +.Ljp7F07AAB4: +/* 0AF624 7F07AAB4 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0AF628 7F07AAB8 03E00008 */ jr $ra +/* 0AF62C 7F07AABC 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void maybe_solo_intro_camera_handler(void) { + // Node 0 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 1 + if (get_num_players() == 1) + { + // Node 2 + disable_sounds_attached_to_player_then_something(pPlayer->field_A8); + pPlayer->field_A8->unk4 = 0; + pPlayer->field_D4 = 0; + camera_80036424 = 1; + sub_GAME_7F07DE9C(pPlayer); + } + } + // Node 3 + return; +} +#else +GLOBAL_ASM( +.text +glabel maybe_solo_intro_camera_handler +/* 0AEFD0 7F07A4A0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEFD4 7F07A4A4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AEFD8 7F07A4A8 8C6E0000 */ lw $t6, ($v1) +/* 0AEFDC 7F07A4AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AEFE0 7F07A4B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AEFE4 7F07A4B4 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEFE8 7F07A4B8 8DF80004 */ lw $t8, 4($t7) +/* 0AEFEC 7F07A4BC 53000017 */ beql $t8, $zero, .L7F07A51C +/* 0AEFF0 7F07A4C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AEFF4 7F07A4C4 0FC26919 */ jal get_num_players +/* 0AEFF8 7F07A4C8 00000000 */ nop +/* 0AEFFC 7F07A4CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AF000 7F07A4D0 24010001 */ li $at, 1 +/* 0AF004 7F07A4D4 14410010 */ bne $v0, $at, .L7F07A518 +/* 0AF008 7F07A4D8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AF00C 7F07A4DC 8C790000 */ lw $t9, ($v1) +/* 0AF010 7F07A4E0 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 0AF014 7F07A4E4 8F2400A8 */ lw $a0, 0xa8($t9) +/* 0AF018 7F07A4E8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AF01C 7F07A4EC 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AF020 7F07A4F0 8C680000 */ lw $t0, ($v1) +/* 0AF024 7F07A4F4 240B0001 */ li $t3, 1 +/* 0AF028 7F07A4F8 3C018003 */ lui $at, %hi(camera_80036424) +/* 0AF02C 7F07A4FC 8D0900A8 */ lw $t1, 0xa8($t0) +/* 0AF030 7F07A500 AD200004 */ sw $zero, 4($t1) +/* 0AF034 7F07A504 8C6A0000 */ lw $t2, ($v1) +/* 0AF038 7F07A508 AD4000D4 */ sw $zero, 0xd4($t2) +/* 0AF03C 7F07A50C AC2B6424 */ sw $t3, %lo(camera_80036424)($at) +/* 0AF040 7F07A510 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0AF044 7F07A514 8C640000 */ lw $a0, ($v1) +.L7F07A518: +/* 0AF048 7F07A518 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07A51C: +/* 0AF04C 7F07A51C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AF050 7F07A520 03E00008 */ jr $ra +/* 0AF054 7F07A524 00000000 */ nop +) +#endif + + + + + +u32 get_camera_mode(void) { + // Node 0 + return cameramode; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07A534(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055030 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055034 +.word 0x44bb8000 /*1500.0*/ +glabel D_80055038 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005503C +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80055040 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07A534 +/* 0AF064 7F07A534 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 0AF068 7F07A538 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F4) +/* 0AF06C 7F07A53C AC2499F4 */ sw $a0, %lo(dword_CODE_bss_800799F4)($at) +/* 0AF070 7F07A540 F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 0AF074 7F07A544 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF078 7F07A548 AFB10064 */ sw $s1, 0x64($sp) +/* 0AF07C 7F07A54C F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 0AF080 7F07A550 4481F000 */ mtc1 $at, $f30 +/* 0AF084 7F07A554 AFB7007C */ sw $s7, 0x7c($sp) +/* 0AF088 7F07A558 AFB60078 */ sw $s6, 0x78($sp) +/* 0AF08C 7F07A55C AFB50074 */ sw $s5, 0x74($sp) +/* 0AF090 7F07A560 AFB40070 */ sw $s4, 0x70($sp) +/* 0AF094 7F07A564 AFB3006C */ sw $s3, 0x6c($sp) +/* 0AF098 7F07A568 AFB20068 */ sw $s2, 0x68($sp) +/* 0AF09C 7F07A56C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0AF0A0 7F07A570 3C018005 */ lui $at, %hi(D_80055030) +/* 0AF0A4 7F07A574 3C118008 */ lui $s1, %hi(flt_CODE_bss_800799E8) +/* 0AF0A8 7F07A578 4480D000 */ mtc1 $zero, $f26 +/* 0AF0AC 7F07A57C 00A09025 */ move $s2, $a1 +/* 0AF0B0 7F07A580 00E09825 */ move $s3, $a3 +/* 0AF0B4 7F07A584 00C0A025 */ move $s4, $a2 +/* 0AF0B8 7F07A588 AFBF0084 */ sw $ra, 0x84($sp) +/* 0AF0BC 7F07A58C AFBE0080 */ sw $fp, 0x80($sp) +/* 0AF0C0 7F07A590 AFB00060 */ sw $s0, 0x60($sp) +/* 0AF0C4 7F07A594 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 0AF0C8 7F07A598 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 0AF0CC 7F07A59C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 0AF0D0 7F07A5A0 0000B025 */ move $s6, $zero +/* 0AF0D4 7F07A5A4 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0AF0D8 7F07A5A8 263199E8 */ addiu $s1, %lo(flt_CODE_bss_800799E8) # addiu $s1, $s1, -0x6618 +/* 0AF0DC 7F07A5AC C4345030 */ lwc1 $f20, %lo(D_80055030)($at) +/* 0AF0E0 7F07A5B0 27B500C8 */ addiu $s5, $sp, 0xc8 +/* 0AF0E4 7F07A5B4 8FB700F0 */ lw $s7, 0xf0($sp) +.L7F07A5B8: +/* 0AF0E8 7F07A5B8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AF0EC 7F07A5BC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AF0F0 7F07A5C0 3C018005 */ lui $at, %hi(D_80055034) +/* 0AF0F4 7F07A5C4 C4245034 */ lwc1 $f4, %lo(D_80055034)($at) +/* 0AF0F8 7F07A5C8 C5DC04B0 */ lwc1 $f28, 0x4b0($t6) +/* 0AF0FC 7F07A5CC 0000F025 */ move $fp, $zero +/* 0AF100 7F07A5D0 461C2180 */ add.s $f6, $f4, $f28 +/* 0AF104 7F07A5D4 0C002914 */ jal get_random_value +/* 0AF108 7F07A5D8 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 0AF10C 7F07A5DC 44824000 */ mtc1 $v0, $f8 +/* 0AF110 7F07A5E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF114 7F07A5E4 04410004 */ bgez $v0, .L7F07A5F8 +/* 0AF118 7F07A5E8 468042A0 */ cvt.s.w $f10, $f8 +/* 0AF11C 7F07A5EC 44818000 */ mtc1 $at, $f16 +/* 0AF120 7F07A5F0 00000000 */ nop +/* 0AF124 7F07A5F4 46105280 */ add.s $f10, $f10, $f16 +.L7F07A5F8: +/* 0AF128 7F07A5F8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF12C 7F07A5FC 44819000 */ mtc1 $at, $f18 +/* 0AF130 7F07A600 00000000 */ nop +/* 0AF134 7F07A604 46125102 */ mul.s $f4, $f10, $f18 +/* 0AF138 7F07A608 00000000 */ nop +/* 0AF13C 7F07A60C 46142302 */ mul.s $f12, $f4, $f20 +/* 0AF140 7F07A610 16C000CD */ bnez $s6, .L7F07A948 +/* 0AF144 7F07A614 00000000 */ nop +/* 0AF148 7F07A618 E7AC00CC */ swc1 $f12, 0xcc($sp) +.L7F07A61C: +/* 0AF14C 7F07A61C 3C018005 */ lui $at, %hi(D_80055038) +/* 0AF150 7F07A620 C4345038 */ lwc1 $f20, %lo(D_80055038)($at) +/* 0AF154 7F07A624 3C018005 */ lui $at, %hi(D_8005503C) +/* 0AF158 7F07A628 C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0AF15C 7F07A62C C426503C */ lwc1 $f6, %lo(D_8005503C)($at) +/* 0AF160 7F07A630 46066300 */ add.s $f12, $f12, $f6 +/* 0AF164 7F07A634 460CA03E */ c.le.s $f20, $f12 +/* 0AF168 7F07A638 00000000 */ nop +/* 0AF16C 7F07A63C 45000002 */ bc1f .L7F07A648 +/* 0AF170 7F07A640 00000000 */ nop +/* 0AF174 7F07A644 46146301 */ sub.s $f12, $f12, $f20 +.L7F07A648: +/* 0AF178 7F07A648 0FC15FAB */ jal sinf +/* 0AF17C 7F07A64C E7AC00CC */ swc1 $f12, 0xcc($sp) +/* 0AF180 7F07A650 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 0AF184 7F07A654 E7BA00C0 */ swc1 $f26, 0xc0($sp) +/* 0AF188 7F07A658 0FC15FA8 */ jal cosf +/* 0AF18C 7F07A65C C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0AF190 7F07A660 C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 0AF194 7F07A664 C7B000D0 */ lwc1 $f16, 0xd0($sp) +/* 0AF198 7F07A668 E7A000C4 */ swc1 $f0, 0xc4($sp) +/* 0AF19C 7F07A66C C6520000 */ lwc1 $f18, ($s2) +/* 0AF1A0 7F07A670 46104282 */ mul.s $f10, $f8, $f16 +/* 0AF1A4 7F07A674 C7A800C4 */ lwc1 $f8, 0xc4($sp) +/* 0AF1A8 7F07A678 46125100 */ add.s $f4, $f10, $f18 +/* 0AF1AC 7F07A67C 46104282 */ mul.s $f10, $f8, $f16 +/* 0AF1B0 7F07A680 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0AF1B4 7F07A684 C6460004 */ lwc1 $f6, 4($s2) +/* 0AF1B8 7F07A688 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0AF1BC 7F07A68C C6520008 */ lwc1 $f18, 8($s2) +/* 0AF1C0 7F07A690 46125100 */ add.s $f4, $f10, $f18 +/* 0AF1C4 7F07A694 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0AF1C8 7F07A698 E7A400B8 */ swc1 $f4, 0xb8($sp) +/* 0AF1CC 7F07A69C AFB700C8 */ sw $s7, 0xc8($sp) +/* 0AF1D0 7F07A6A0 02802025 */ move $a0, $s4 +/* 0AF1D4 7F07A6A4 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF1D8 7F07A6A8 00002825 */ move $a1, $zero +/* 0AF1DC 7F07A6AC 8E650000 */ lw $a1, ($s3) +/* 0AF1E0 7F07A6B0 8E660008 */ lw $a2, 8($s3) +/* 0AF1E4 7F07A6B4 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 0AF1E8 7F07A6B8 240F0013 */ li $t7, 19 +/* 0AF1EC 7F07A6BC AFAF0014 */ sw $t7, 0x14($sp) +/* 0AF1F0 7F07A6C0 E7BE0024 */ swc1 $f30, 0x24($sp) +/* 0AF1F4 7F07A6C4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 0AF1F8 7F07A6C8 E7BE001C */ swc1 $f30, 0x1c($sp) +/* 0AF1FC 7F07A6CC E7BA0018 */ swc1 $f26, 0x18($sp) +/* 0AF200 7F07A6D0 02A02025 */ move $a0, $s5 +/* 0AF204 7F07A6D4 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0AF208 7F07A6D8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0AF20C 7F07A6DC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0AF210 7F07A6E0 00408025 */ move $s0, $v0 +/* 0AF214 7F07A6E4 02802025 */ move $a0, $s4 +/* 0AF218 7F07A6E8 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF21C 7F07A6EC 24050001 */ li $a1, 1 +/* 0AF220 7F07A6F0 16000010 */ bnez $s0, .L7F07A734 +/* 0AF224 7F07A6F4 02602025 */ move $a0, $s3 +/* 0AF228 7F07A6F8 27A500BC */ addiu $a1, $sp, 0xbc +/* 0AF22C 7F07A6FC 0FC098A6 */ jal sub_GAME_7F026298 +/* 0AF230 7F07A700 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0AF234 7F07A704 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0AF238 7F07A708 C6700000 */ lwc1 $f16, ($s3) +/* 0AF23C 7F07A70C C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 0AF240 7F07A710 C6720008 */ lwc1 $f18, 8($s3) +/* 0AF244 7F07A714 46104001 */ sub.s $f0, $f8, $f16 +/* 0AF248 7F07A718 46125081 */ sub.s $f2, $f10, $f18 +/* 0AF24C 7F07A71C 46000102 */ mul.s $f4, $f0, $f0 +/* 0AF250 7F07A720 00000000 */ nop +/* 0AF254 7F07A724 46021182 */ mul.s $f6, $f2, $f2 +/* 0AF258 7F07A728 0C007DF8 */ jal sqrtf +/* 0AF25C 7F07A72C 46062300 */ add.s $f12, $f4, $f6 +/* 0AF260 7F07A730 E7A000D0 */ swc1 $f0, 0xd0($sp) +.L7F07A734: +/* 0AF264 7F07A734 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0AF268 7F07A738 C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 0AF26C 7F07A73C 461C4401 */ sub.s $f16, $f8, $f28 +/* 0AF270 7F07A740 4610503E */ c.le.s $f10, $f16 +/* 0AF274 7F07A744 E7B000D0 */ swc1 $f16, 0xd0($sp) +/* 0AF278 7F07A748 4502007A */ bc1fl .L7F07A934 +/* 0AF27C 7F07A74C 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF280 7F07A750 461ED03C */ c.lt.s $f26, $f30 +/* 0AF284 7F07A754 4600F606 */ mov.s $f24, $f30 +/* 0AF288 7F07A758 45020076 */ bc1fl .L7F07A934 +/* 0AF28C 7F07A75C 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF290 7F07A760 56C00074 */ bnezl $s6, .L7F07A934 +/* 0AF294 7F07A764 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF298 7F07A768 460A8481 */ sub.s $f18, $f16, $f10 +/* 0AF29C 7F07A76C E7B20090 */ swc1 $f18, 0x90($sp) +.L7F07A770: +/* 0AF2A0 7F07A770 0C002914 */ jal get_random_value +/* 0AF2A4 7F07A774 00000000 */ nop +/* 0AF2A8 7F07A778 44822000 */ mtc1 $v0, $f4 +/* 0AF2AC 7F07A77C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF2B0 7F07A780 04410004 */ bgez $v0, .L7F07A794 +/* 0AF2B4 7F07A784 468021A0 */ cvt.s.w $f6, $f4 +/* 0AF2B8 7F07A788 44814000 */ mtc1 $at, $f8 +/* 0AF2BC 7F07A78C 00000000 */ nop +/* 0AF2C0 7F07A790 46083180 */ add.s $f6, $f6, $f8 +.L7F07A794: +/* 0AF2C4 7F07A794 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF2C8 7F07A798 44818000 */ mtc1 $at, $f16 +/* 0AF2CC 7F07A79C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0AF2D0 7F07A7A0 02802025 */ move $a0, $s4 +/* 0AF2D4 7F07A7A4 46103282 */ mul.s $f10, $f6, $f16 +/* 0AF2D8 7F07A7A8 C7A600F4 */ lwc1 $f6, 0xf4($sp) +/* 0AF2DC 7F07A7AC C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 0AF2E0 7F07A7B0 00002825 */ move $a1, $zero +/* 0AF2E4 7F07A7B4 46125102 */ mul.s $f4, $f10, $f18 +/* 0AF2E8 7F07A7B8 C6520000 */ lwc1 $f18, ($s2) +/* 0AF2EC 7F07A7BC 46182202 */ mul.s $f8, $f4, $f24 +/* 0AF2F0 7F07A7C0 46064000 */ add.s $f0, $f8, $f6 +/* 0AF2F4 7F07A7C4 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0AF2F8 7F07A7C8 46008282 */ mul.s $f10, $f16, $f0 +/* 0AF2FC 7F07A7CC 46125100 */ add.s $f4, $f10, $f18 +/* 0AF300 7F07A7D0 46003402 */ mul.s $f16, $f6, $f0 +/* 0AF304 7F07A7D4 E6240000 */ swc1 $f4, ($s1) +/* 0AF308 7F07A7D8 C6480004 */ lwc1 $f8, 4($s2) +/* 0AF30C 7F07A7DC E6280004 */ swc1 $f8, 4($s1) +/* 0AF310 7F07A7E0 C64A0008 */ lwc1 $f10, 8($s2) +/* 0AF314 7F07A7E4 AFB700C8 */ sw $s7, 0xc8($sp) +/* 0AF318 7F07A7E8 460A8480 */ add.s $f18, $f16, $f10 +/* 0AF31C 7F07A7EC 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF320 7F07A7F0 E6320008 */ swc1 $f18, 8($s1) +/* 0AF324 7F07A7F4 8E650000 */ lw $a1, ($s3) +/* 0AF328 7F07A7F8 8E660008 */ lw $a2, 8($s3) +/* 0AF32C 7F07A7FC C6240008 */ lwc1 $f4, 8($s1) +/* 0AF330 7F07A800 24180013 */ li $t8, 19 +/* 0AF334 7F07A804 AFB80014 */ sw $t8, 0x14($sp) +/* 0AF338 7F07A808 E7BE0024 */ swc1 $f30, 0x24($sp) +/* 0AF33C 7F07A80C E7BA0020 */ swc1 $f26, 0x20($sp) +/* 0AF340 7F07A810 E7BE001C */ swc1 $f30, 0x1c($sp) +/* 0AF344 7F07A814 E7BA0018 */ swc1 $f26, 0x18($sp) +/* 0AF348 7F07A818 02A02025 */ move $a0, $s5 +/* 0AF34C 7F07A81C 8E270000 */ lw $a3, ($s1) +/* 0AF350 7F07A820 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0AF354 7F07A824 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0AF358 7F07A828 00408025 */ move $s0, $v0 +/* 0AF35C 7F07A82C 02802025 */ move $a0, $s4 +/* 0AF360 7F07A830 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF364 7F07A834 24050001 */ li $a1, 1 +/* 0AF368 7F07A838 12000033 */ beqz $s0, .L7F07A908 +/* 0AF36C 7F07A83C 02A02025 */ move $a0, $s5 +/* 0AF370 7F07A840 4407E000 */ mfc1 $a3, $f28 +/* 0AF374 7F07A844 2419001F */ li $t9, 31 +/* 0AF378 7F07A848 AFB90010 */ sw $t9, 0x10($sp) +/* 0AF37C 7F07A84C 8E250000 */ lw $a1, ($s1) +/* 0AF380 7F07A850 8E260008 */ lw $a2, 8($s1) +/* 0AF384 7F07A854 E7BA0014 */ swc1 $f26, 0x14($sp) +/* 0AF388 7F07A858 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0AF38C 7F07A85C E7BE0018 */ swc1 $f30, 0x18($sp) +/* 0AF390 7F07A860 04410029 */ bgez $v0, .L7F07A908 +/* 0AF394 7F07A864 8FA400C8 */ lw $a0, 0xc8($sp) +/* 0AF398 7F07A868 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 0AF39C 7F07A86C 44814000 */ mtc1 $at, $f8 +/* 0AF3A0 7F07A870 8E250000 */ lw $a1, ($s1) +/* 0AF3A4 7F07A874 8E260008 */ lw $a2, 8($s1) +/* 0AF3A8 7F07A878 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0AF3AC 7F07A87C 461C4581 */ sub.s $f22, $f8, $f28 +/* 0AF3B0 7F07A880 0C002914 */ jal get_random_value +/* 0AF3B4 7F07A884 46000506 */ mov.s $f20, $f0 +/* 0AF3B8 7F07A888 44823000 */ mtc1 $v0, $f6 +/* 0AF3BC 7F07A88C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF3C0 7F07A890 04410004 */ bgez $v0, .L7F07A8A4 +/* 0AF3C4 7F07A894 46803420 */ cvt.s.w $f16, $f6 +/* 0AF3C8 7F07A898 44815000 */ mtc1 $at, $f10 +/* 0AF3CC 7F07A89C 00000000 */ nop +/* 0AF3D0 7F07A8A0 460A8400 */ add.s $f16, $f16, $f10 +.L7F07A8A4: +/* 0AF3D4 7F07A8A4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF3D8 7F07A8A8 44819000 */ mtc1 $at, $f18 +/* 0AF3DC 7F07A8AC 461CA180 */ add.s $f6, $f20, $f28 +/* 0AF3E0 7F07A8B0 3C01C47A */ li $at, 0xC47A0000 # -1000.000000 +/* 0AF3E4 7F07A8B4 46128102 */ mul.s $f4, $f16, $f18 +/* 0AF3E8 7F07A8B8 00000000 */ nop +/* 0AF3EC 7F07A8BC 46162202 */ mul.s $f8, $f4, $f22 +/* 0AF3F0 7F07A8C0 44812000 */ mtc1 $at, $f4 +/* 0AF3F4 7F07A8C4 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0AF3F8 7F07A8C8 46064280 */ add.s $f10, $f8, $f6 +/* 0AF3FC 7F07A8CC E62A0004 */ swc1 $f10, 4($s1) +/* 0AF400 7F07A8D0 C6520004 */ lwc1 $f18, 4($s2) +/* 0AF404 7F07A8D4 C6300004 */ lwc1 $f16, 4($s1) +/* 0AF408 7F07A8D8 46128001 */ sub.s $f0, $f16, $f18 +/* 0AF40C 7F07A8DC 4600203C */ c.lt.s $f4, $f0 +/* 0AF410 7F07A8E0 00000000 */ nop +/* 0AF414 7F07A8E4 45000008 */ bc1f .L7F07A908 +/* 0AF418 7F07A8E8 00000000 */ nop +/* 0AF41C 7F07A8EC 44814000 */ mtc1 $at, $f8 +/* 0AF420 7F07A8F0 00000000 */ nop +/* 0AF424 7F07A8F4 4608003C */ c.lt.s $f0, $f8 +/* 0AF428 7F07A8F8 00000000 */ nop +/* 0AF42C 7F07A8FC 45020003 */ bc1fl .L7F07A90C +/* 0AF430 7F07A900 3C013E80 */ lui $at, 0x3e80 +/* 0AF434 7F07A904 24160001 */ li $s6, 1 +.L7F07A908: +/* 0AF438 7F07A908 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F07A90C: +/* 0AF43C 7F07A90C 44813000 */ mtc1 $at, $f6 +/* 0AF440 7F07A910 00000000 */ nop +/* 0AF444 7F07A914 4606C601 */ sub.s $f24, $f24, $f6 +/* 0AF448 7F07A918 4618D03C */ c.lt.s $f26, $f24 +/* 0AF44C 7F07A91C 00000000 */ nop +/* 0AF450 7F07A920 45020004 */ bc1fl .L7F07A934 +/* 0AF454 7F07A924 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF458 7F07A928 12C0FF91 */ beqz $s6, .L7F07A770 +/* 0AF45C 7F07A92C 00000000 */ nop +/* 0AF460 7F07A930 27DE0001 */ addiu $fp, $fp, 1 +.L7F07A934: +/* 0AF464 7F07A934 2BC10010 */ slti $at, $fp, 0x10 +/* 0AF468 7F07A938 50200004 */ beql $at, $zero, .L7F07A94C +/* 0AF46C 7F07A93C 8FA200D8 */ lw $v0, 0xd8($sp) +/* 0AF470 7F07A940 12C0FF36 */ beqz $s6, .L7F07A61C +/* 0AF474 7F07A944 00000000 */ nop +.L7F07A948: +/* 0AF478 7F07A948 8FA200D8 */ lw $v0, 0xd8($sp) +.L7F07A94C: +/* 0AF47C 7F07A94C 3C018005 */ lui $at, %hi(D_80055040) +/* 0AF480 7F07A950 C4345040 */ lwc1 $f20, %lo(D_80055040)($at) +/* 0AF484 7F07A954 24420001 */ addiu $v0, $v0, 1 +/* 0AF488 7F07A958 28410081 */ slti $at, $v0, 0x81 +/* 0AF48C 7F07A95C 50200004 */ beql $at, $zero, .L7F07A970 +/* 0AF490 7F07A960 8FBF0084 */ lw $ra, 0x84($sp) +/* 0AF494 7F07A964 12C0FF14 */ beqz $s6, .L7F07A5B8 +/* 0AF498 7F07A968 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0AF49C 7F07A96C 8FBF0084 */ lw $ra, 0x84($sp) +.L7F07A970: +/* 0AF4A0 7F07A970 02C01025 */ move $v0, $s6 +/* 0AF4A4 7F07A974 8FB60078 */ lw $s6, 0x78($sp) +/* 0AF4A8 7F07A978 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0AF4AC 7F07A97C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 0AF4B0 7F07A980 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 0AF4B4 7F07A984 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 0AF4B8 7F07A988 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 0AF4BC 7F07A98C D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 0AF4C0 7F07A990 8FB00060 */ lw $s0, 0x60($sp) +/* 0AF4C4 7F07A994 8FB10064 */ lw $s1, 0x64($sp) +/* 0AF4C8 7F07A998 8FB20068 */ lw $s2, 0x68($sp) +/* 0AF4CC 7F07A99C 8FB3006C */ lw $s3, 0x6c($sp) +/* 0AF4D0 7F07A9A0 8FB40070 */ lw $s4, 0x70($sp) +/* 0AF4D4 7F07A9A4 8FB50074 */ lw $s5, 0x74($sp) +/* 0AF4D8 7F07A9A8 8FB7007C */ lw $s7, 0x7c($sp) +/* 0AF4DC 7F07A9AC 8FBE0080 */ lw $fp, 0x80($sp) +/* 0AF4E0 7F07A9B0 03E00008 */ jr $ra +/* 0AF4E4 7F07A9B4 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + + + +#ifdef NONMATCHING +void set_camera_mode(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_camera_mode +/* 0AF4E8 7F07A9B8 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0AF4EC 7F07A9BC AFB00028 */ sw $s0, 0x28($sp) +/* 0AF4F0 7F07A9C0 3C108003 */ lui $s0, %hi(cameramode) +/* 0AF4F4 7F07A9C4 26106494 */ addiu $s0, %lo(cameramode) # addiu $s0, $s0, 0x6494 +/* 0AF4F8 7F07A9C8 AE040000 */ sw $a0, ($s0) +/* 0AF4FC 7F07A9CC 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0AF500 7F07A9D0 AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 0AF504 7F07A9D4 8E020000 */ lw $v0, ($s0) +/* 0AF508 7F07A9D8 24030001 */ li $v1, 1 +/* 0AF50C 7F07A9DC AFBF002C */ sw $ra, 0x2c($sp) +/* 0AF510 7F07A9E0 14620027 */ bne $v1, $v0, .L7F07AA80 +/* 0AF514 7F07A9E4 24010002 */ li $at, 2 +/* 0AF518 7F07A9E8 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) +/* 0AF51C 7F07A9EC 8DCE64C0 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0AF520 7F07A9F0 11C0001F */ beqz $t6, .L7F07AA70 +/* 0AF524 7F07A9F4 00000000 */ nop +/* 0AF528 7F07A9F8 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0AF52C 7F07A9FC 00000000 */ nop +/* 0AF530 7F07AA00 1440001B */ bnez $v0, .L7F07AA70 +/* 0AF534 7F07AA04 00000000 */ nop +/* 0AF538 7F07AA08 0FC2FF23 */ jal get_is_ramrom_flag +/* 0AF53C 7F07AA0C 00000000 */ nop +/* 0AF540 7F07AA10 14400017 */ bnez $v0, .L7F07AA70 +/* 0AF544 7F07AA14 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF548 7F07AA18 44802000 */ mtc1 $zero, $f4 +/* 0AF54C 7F07AA1C 00002025 */ move $a0, $zero +/* 0AF550 7F07AA20 00002825 */ move $a1, $zero +/* 0AF554 7F07AA24 00003025 */ move $a2, $zero +/* 0AF558 7F07AA28 3C073F80 */ lui $a3, 0x3f80 +/* 0AF55C 7F07AA2C 0FC201EC */ jal set_rgba_tint +/* 0AF560 7F07AA30 E42464A4 */ swc1 $f4, %lo(D_800364A4)($at) +/* 0AF564 7F07AA34 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF568 7F07AA38 44816000 */ mtc1 $at, $f12 +/* 0AF56C 7F07AA3C 44807000 */ mtc1 $zero, $f14 +/* 0AF570 7F07AA40 0FC20216 */ jal fade_to_over_seconds +/* 0AF574 7F07AA44 00000000 */ nop +/* 0AF578 7F07AA48 0C001A57 */ jal get_stage_num +/* 0AF57C 7F07AA4C 00000000 */ nop +/* 0AF580 7F07AA50 00402025 */ move $a0, $v0 +/* 0AF584 7F07AA54 0FC2EA99 */ jal load_enviroment +/* 0AF588 7F07AA58 24050001 */ li $a1, 1 +/* 0AF58C 7F07AA5C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF590 7F07AA60 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF594 7F07AA64 8E0F0000 */ lw $t7, ($s0) +/* 0AF598 7F07AA68 100001C9 */ b .L7F07B190 +/* 0AF59C 7F07AA6C ADE00034 */ sw $zero, 0x34($t7) +.L7F07AA70: +/* 0AF5A0 7F07AA70 0FC1EA6E */ jal set_camera_mode +/* 0AF5A4 7F07AA74 24040003 */ li $a0, 3 +/* 0AF5A8 7F07AA78 100001C6 */ b .L7F07B194 +/* 0AF5AC 7F07AA7C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AA80: +/* 0AF5B0 7F07AA80 1441000D */ bne $v0, $at, .L7F07AAB8 +/* 0AF5B4 7F07AA84 00002025 */ move $a0, $zero +/* 0AF5B8 7F07AA88 00002825 */ move $a1, $zero +/* 0AF5BC 7F07AA8C 00003025 */ move $a2, $zero +/* 0AF5C0 7F07AA90 0FC201EC */ jal set_rgba_tint +/* 0AF5C4 7F07AA94 24070000 */ li $a3, 0 +/* 0AF5C8 7F07AA98 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF5CC 7F07AA9C 44816000 */ mtc1 $at, $f12 +/* 0AF5D0 7F07AAA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF5D4 7F07AAA4 44817000 */ mtc1 $at, $f14 +/* 0AF5D8 7F07AAA8 0FC20216 */ jal fade_to_over_seconds +/* 0AF5DC 7F07AAAC 00000000 */ nop +/* 0AF5E0 7F07AAB0 100001B8 */ b .L7F07B194 +/* 0AF5E4 7F07AAB4 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AAB8: +/* 0AF5E8 7F07AAB8 24010009 */ li $at, 9 +/* 0AF5EC 7F07AABC 54410015 */ bnel $v0, $at, .L7F07AB14 +/* 0AF5F0 7F07AAC0 24010003 */ li $at, 3 +/* 0AF5F4 7F07AAC4 44800000 */ mtc1 $zero, $f0 +/* 0AF5F8 7F07AAC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E04) +/* 0AF5FC 7F07AACC E4209E04 */ swc1 $f0, %lo(flt_CODE_bss_80079E04)($at) +/* 0AF600 7F07AAD0 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0AF604 7F07AAD4 44813000 */ mtc1 $at, $f6 +/* 0AF608 7F07AAD8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) +/* 0AF60C 7F07AADC E4269E08 */ swc1 $f6, %lo(flt_CODE_bss_80079E08)($at) +/* 0AF610 7F07AAE0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E0C) +/* 0AF614 7F07AAE4 E4209E0C */ swc1 $f0, %lo(flt_CODE_bss_80079E0C)($at) +/* 0AF618 7F07AAE8 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0AF61C 7F07AAEC 44814000 */ mtc1 $at, $f8 +/* 0AF620 7F07AAF0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E10) +/* 0AF624 7F07AAF4 0C001A57 */ jal get_stage_num +/* 0AF628 7F07AAF8 E4289E10 */ swc1 $f8, %lo(flt_CODE_bss_80079E10)($at) +/* 0AF62C 7F07AAFC 00402025 */ move $a0, $v0 +/* 0AF630 7F07AB00 0FC2EA99 */ jal load_enviroment +/* 0AF634 7F07AB04 00002825 */ move $a1, $zero +/* 0AF638 7F07AB08 100001A2 */ b .L7F07B194 +/* 0AF63C 7F07AB0C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AF640 7F07AB10 24010003 */ li $at, 3 +.L7F07AB14: +/* 0AF644 7F07AB14 14410059 */ bne $v0, $at, .L7F07AC7C +/* 0AF648 7F07AB18 00002025 */ move $a0, $zero +/* 0AF64C 7F07AB1C 3C018003 */ lui $at, %hi(D_8003649C) +/* 0AF650 7F07AB20 AC20649C */ sw $zero, %lo(D_8003649C)($at) +/* 0AF654 7F07AB24 00002825 */ move $a1, $zero +/* 0AF658 7F07AB28 00003025 */ move $a2, $zero +/* 0AF65C 7F07AB2C 0FC201EC */ jal set_rgba_tint +/* 0AF660 7F07AB30 3C073F80 */ lui $a3, 0x3f80 +/* 0AF664 7F07AB34 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF668 7F07AB38 44816000 */ mtc1 $at, $f12 +/* 0AF66C 7F07AB3C 44807000 */ mtc1 $zero, $f14 +/* 0AF670 7F07AB40 0FC20216 */ jal fade_to_over_seconds +/* 0AF674 7F07AB44 00000000 */ nop +/* 0AF678 7F07AB48 0C001A57 */ jal get_stage_num +/* 0AF67C 7F07AB4C 00000000 */ nop +/* 0AF680 7F07AB50 00402025 */ move $a0, $v0 +/* 0AF684 7F07AB54 0FC2EA99 */ jal load_enviroment +/* 0AF688 7F07AB58 00002825 */ move $a1, $zero +/* 0AF68C 7F07AB5C 3C188003 */ lui $t8, %hi(D_800364AC) +/* 0AF690 7F07AB60 8F1864AC */ lw $t8, %lo(D_800364AC)($t8) +/* 0AF694 7F07AB64 13000041 */ beqz $t8, .L7F07AC6C +/* 0AF698 7F07AB68 00000000 */ nop +/* 0AF69C 7F07AB6C 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0AF6A0 7F07AB70 00000000 */ nop +/* 0AF6A4 7F07AB74 1440003D */ bnez $v0, .L7F07AC6C +/* 0AF6A8 7F07AB78 00000000 */ nop +/* 0AF6AC 7F07AB7C 0FC2FF23 */ jal get_is_ramrom_flag +/* 0AF6B0 7F07AB80 00000000 */ nop +/* 0AF6B4 7F07AB84 14400039 */ bnez $v0, .L7F07AC6C +/* 0AF6B8 7F07AB88 00000000 */ nop +/* 0AF6BC 7F07AB8C 44806000 */ mtc1 $zero, $f12 +/* 0AF6C0 7F07AB90 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF6C4 7F07AB94 24190001 */ li $t9, 1 +/* 0AF6C8 7F07AB98 E42C64A4 */ swc1 $f12, %lo(D_800364A4)($at) +/* 0AF6CC 7F07AB9C 3C018003 */ lui $at, %hi(D_800364A8) +/* 0AF6D0 7F07ABA0 AC3964A8 */ sw $t9, %lo(D_800364A8)($at) +/* 0AF6D4 7F07ABA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF6D8 7F07ABA8 44817000 */ mtc1 $at, $f14 +/* 0AF6DC 7F07ABAC 0FC20284 */ jal set_curplayer_fade +/* 0AF6E0 7F07ABB0 00000000 */ nop +/* 0AF6E4 7F07ABB4 0FC1E73C */ jal solo_char_load +/* 0AF6E8 7F07ABB8 00000000 */ nop +/* 0AF6EC 7F07ABBC 3C088003 */ lui $t0, %hi(D_80036514) +/* 0AF6F0 7F07ABC0 8D086514 */ lw $t0, %lo(D_80036514)($t0) +/* 0AF6F4 7F07ABC4 3C0A8003 */ lui $t2, %hi(stage_intro_anim_table) +/* 0AF6F8 7F07ABC8 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF6FC 7F07ABCC 254A6518 */ addiu $t2, %lo(stage_intro_anim_table) # addiu $t2, $t2, 0x6518 +/* 0AF700 7F07ABD0 00084900 */ sll $t1, $t0, 4 +/* 0AF704 7F07ABD4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF708 7F07ABD8 012A1021 */ addu $v0, $t1, $t2 +/* 0AF70C 7F07ABDC 8E0D0000 */ lw $t5, ($s0) +/* 0AF710 7F07ABE0 C4400004 */ lwc1 $f0, 4($v0) +/* 0AF714 7F07ABE4 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 0AF718 7F07ABE8 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 0AF71C 7F07ABEC 8C4B0000 */ lw $t3, ($v0) +/* 0AF720 7F07ABF0 C44C0008 */ lwc1 $f12, 8($v0) +/* 0AF724 7F07ABF4 C442000C */ lwc1 $f2, 0xc($v0) +/* 0AF728 7F07ABF8 44805000 */ mtc1 $zero, $f10 +/* 0AF72C 7F07ABFC 8DA400D4 */ lw $a0, 0xd4($t5) +/* 0AF730 7F07AC00 44070000 */ mfc1 $a3, $f0 +/* 0AF734 7F07AC04 00003025 */ move $a2, $zero +/* 0AF738 7F07AC08 016C2821 */ addu $a1, $t3, $t4 +/* 0AF73C 7F07AC0C E7AC0078 */ swc1 $f12, 0x78($sp) +/* 0AF740 7F07AC10 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0AF744 7F07AC14 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0AF748 7F07AC18 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0AF74C 7F07AC1C C7AC0078 */ lwc1 $f12, 0x78($sp) +/* 0AF750 7F07AC20 44808000 */ mtc1 $zero, $f16 +/* 0AF754 7F07AC24 00000000 */ nop +/* 0AF758 7F07AC28 460C803C */ c.lt.s $f16, $f12 +/* 0AF75C 7F07AC2C 00000000 */ nop +/* 0AF760 7F07AC30 45020006 */ bc1fl .L7F07AC4C +/* 0AF764 7F07AC34 8E0F0000 */ lw $t7, ($s0) +/* 0AF768 7F07AC38 8E0E0000 */ lw $t6, ($s0) +/* 0AF76C 7F07AC3C 44056000 */ mfc1 $a1, $f12 +/* 0AF770 7F07AC40 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0AF774 7F07AC44 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AF778 7F07AC48 8E0F0000 */ lw $t7, ($s0) +.L7F07AC4C: +/* 0AF77C 7F07AC4C 24190017 */ li $t9, 23 +/* 0AF780 7F07AC50 8DF800A8 */ lw $t8, 0xa8($t7) +/* 0AF784 7F07AC54 8F020004 */ lw $v0, 4($t8) +/* 0AF788 7F07AC58 A0590007 */ sb $t9, 7($v0) +/* 0AF78C 7F07AC5C A0400008 */ sb $zero, 8($v0) +/* 0AF790 7F07AC60 8E080000 */ lw $t0, ($s0) +/* 0AF794 7F07AC64 1000014A */ b .L7F07B190 +/* 0AF798 7F07AC68 AD000034 */ sw $zero, 0x34($t0) +.L7F07AC6C: +/* 0AF79C 7F07AC6C 0FC1EA6E */ jal set_camera_mode +/* 0AF7A0 7F07AC70 24040004 */ li $a0, 4 +/* 0AF7A4 7F07AC74 10000147 */ b .L7F07B194 +/* 0AF7A8 7F07AC78 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AC7C: +/* 0AF7AC 7F07AC7C 24010004 */ li $at, 4 +/* 0AF7B0 7F07AC80 5441003A */ bnel $v0, $at, .L7F07AD6C +/* 0AF7B4 7F07AC84 24010005 */ li $at, 5 +/* 0AF7B8 7F07AC88 0C001A57 */ jal get_stage_num +/* 0AF7BC 7F07AC8C 00000000 */ nop +/* 0AF7C0 7F07AC90 24010036 */ li $at, 54 +/* 0AF7C4 7F07AC94 1441000D */ bne $v0, $at, .L7F07ACCC +/* 0AF7C8 7F07AC98 3C098003 */ lui $t1, %hi(D_8003649C) +/* 0AF7CC 7F07AC9C 00002025 */ move $a0, $zero +/* 0AF7D0 7F07ACA0 00002825 */ move $a1, $zero +/* 0AF7D4 7F07ACA4 00003025 */ move $a2, $zero +/* 0AF7D8 7F07ACA8 0FC201EC */ jal set_rgba_tint +/* 0AF7DC 7F07ACAC 3C073F80 */ lui $a3, 0x3f80 +/* 0AF7E0 7F07ACB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF7E4 7F07ACB4 44817000 */ mtc1 $at, $f14 +/* 0AF7E8 7F07ACB8 44806000 */ mtc1 $zero, $f12 +/* 0AF7EC 7F07ACBC 0FC20216 */ jal fade_to_over_seconds +/* 0AF7F0 7F07ACC0 00000000 */ nop +/* 0AF7F4 7F07ACC4 1000000D */ b .L7F07ACFC +/* 0AF7F8 7F07ACC8 00000000 */ nop +.L7F07ACCC: +/* 0AF7FC 7F07ACCC 8D29649C */ lw $t1, %lo(D_8003649C)($t1) +/* 0AF800 7F07ACD0 00002025 */ move $a0, $zero +/* 0AF804 7F07ACD4 00002825 */ move $a1, $zero +/* 0AF808 7F07ACD8 11200008 */ beqz $t1, .L7F07ACFC +/* 0AF80C 7F07ACDC 00003025 */ move $a2, $zero +/* 0AF810 7F07ACE0 0FC201EC */ jal set_rgba_tint +/* 0AF814 7F07ACE4 3C073F80 */ lui $a3, 0x3f80 +/* 0AF818 7F07ACE8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF81C 7F07ACEC 44816000 */ mtc1 $at, $f12 +/* 0AF820 7F07ACF0 44807000 */ mtc1 $zero, $f14 +/* 0AF824 7F07ACF4 0FC20216 */ jal fade_to_over_seconds +/* 0AF828 7F07ACF8 00000000 */ nop +.L7F07ACFC: +/* 0AF82C 7F07ACFC 0FC26919 */ jal get_num_players +/* 0AF830 7F07AD00 00000000 */ nop +/* 0AF834 7F07AD04 28410002 */ slti $at, $v0, 2 +/* 0AF838 7F07AD08 14200006 */ bnez $at, .L7F07AD24 +/* 0AF83C 7F07AD0C 00000000 */ nop +/* 0AF840 7F07AD10 0C001A57 */ jal get_stage_num +/* 0AF844 7F07AD14 00000000 */ nop +/* 0AF848 7F07AD18 00402025 */ move $a0, $v0 +/* 0AF84C 7F07AD1C 0FC2EA99 */ jal load_enviroment +/* 0AF850 7F07AD20 00002825 */ move $a1, $zero +.L7F07AD24: +/* 0AF854 7F07AD24 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF858 7F07AD28 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF85C 7F07AD2C 8E0A0000 */ lw $t2, ($s0) +/* 0AF860 7F07AD30 3C108008 */ lui $s0, %hi(starting_right_weapon) +/* 0AF864 7F07AD34 261099E0 */ addiu $s0, %lo(starting_right_weapon) # addiu $s0, $s0, -0x6620 +/* 0AF868 7F07AD38 8D4B01C8 */ lw $t3, 0x1c8($t2) +/* 0AF86C 7F07AD3C 24040001 */ li $a0, 1 +/* 0AF870 7F07AD40 15600006 */ bnez $t3, .L7F07AD5C +/* 0AF874 7F07AD44 00000000 */ nop +/* 0AF878 7F07AD48 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AF87C 7F07AD4C 8E050004 */ lw $a1, 4($s0) +/* 0AF880 7F07AD50 00002025 */ move $a0, $zero +/* 0AF884 7F07AD54 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AF888 7F07AD58 8E050000 */ lw $a1, ($s0) +.L7F07AD5C: +/* 0AF88C 7F07AD5C 3C018003 */ lui $at, %hi(stop_time_flag) +/* 0AF890 7F07AD60 1000010B */ b .L7F07B190 +/* 0AF894 7F07AD64 AC2064A0 */ sw $zero, %lo(stop_time_flag)($at) +/* 0AF898 7F07AD68 24010005 */ li $at, 5 +.L7F07AD6C: +/* 0AF89C 7F07AD6C 144100CC */ bne $v0, $at, .L7F07B0A0 +/* 0AF8A0 7F07AD70 00002025 */ move $a0, $zero +/* 0AF8A4 7F07AD74 44809000 */ mtc1 $zero, $f18 +/* 0AF8A8 7F07AD78 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF8AC 7F07AD7C 00002825 */ move $a1, $zero +/* 0AF8B0 7F07AD80 E43264A4 */ swc1 $f18, %lo(D_800364A4)($at) +/* 0AF8B4 7F07AD84 3C018003 */ lui $at, %hi(D_800364A8) +/* 0AF8B8 7F07AD88 AC2364A8 */ sw $v1, %lo(D_800364A8)($at) +/* 0AF8BC 7F07AD8C 00003025 */ move $a2, $zero +/* 0AF8C0 7F07AD90 0FC201EC */ jal set_rgba_tint +/* 0AF8C4 7F07AD94 3C073F80 */ lui $a3, 0x3f80 +/* 0AF8C8 7F07AD98 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF8CC 7F07AD9C 44816000 */ mtc1 $at, $f12 +/* 0AF8D0 7F07ADA0 44807000 */ mtc1 $zero, $f14 +/* 0AF8D4 7F07ADA4 0FC20216 */ jal fade_to_over_seconds +/* 0AF8D8 7F07ADA8 00000000 */ nop +/* 0AF8DC 7F07ADAC 3C028003 */ lui $v0, %hi(D_8003648C) +/* 0AF8E0 7F07ADB0 8C42648C */ lw $v0, %lo(D_8003648C)($v0) +/* 0AF8E4 7F07ADB4 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF8E8 7F07ADB8 3C0C8003 */ lui $t4, %hi(ptr_playerstank) +/* 0AF8EC 7F07ADBC 10400007 */ beqz $v0, .L7F07ADDC +/* 0AF8F0 7F07ADC0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF8F4 7F07ADC4 8D8C6450 */ lw $t4, %lo(ptr_playerstank)($t4) +/* 0AF8F8 7F07ADC8 11800004 */ beqz $t4, .L7F07ADDC +/* 0AF8FC 7F07ADCC 00000000 */ nop +/* 0AF900 7F07ADD0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF904 7F07ADD4 1000005C */ b .L7F07AF48 +/* 0AF908 7F07ADD8 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +.L7F07ADDC: +/* 0AF90C 7F07ADDC 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0AF910 7F07ADE0 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 0AF914 7F07ADE4 8E190000 */ lw $t9, ($s0) +/* 0AF918 7F07ADE8 0320C025 */ move $t8, $t9 +/* 0AF91C 7F07ADEC 272F0054 */ addiu $t7, $t9, 0x54 +.L7F07ADF0: +/* 0AF920 7F07ADF0 8F010434 */ lw $at, 0x434($t8) +/* 0AF924 7F07ADF4 2718000C */ addiu $t8, $t8, 0xc +/* 0AF928 7F07ADF8 2739000C */ addiu $t9, $t9, 0xc +/* 0AF92C 7F07ADFC AF21047C */ sw $at, 0x47c($t9) +/* 0AF930 7F07AE00 8F01042C */ lw $at, 0x42c($t8) +/* 0AF934 7F07AE04 AF210480 */ sw $at, 0x480($t9) +/* 0AF938 7F07AE08 8F010430 */ lw $at, 0x430($t8) +/* 0AF93C 7F07AE0C 170FFFF8 */ bne $t8, $t7, .L7F07ADF0 +/* 0AF940 7F07AE10 AF210484 */ sw $at, 0x484($t9) +/* 0AF944 7F07AE14 8E020000 */ lw $v0, ($s0) +/* 0AF948 7F07AE18 C4440414 */ lwc1 $f4, 0x414($v0) +/* 0AF94C 7F07AE1C E4440148 */ swc1 $f4, 0x148($v0) +/* 0AF950 7F07AE20 8E020000 */ lw $v0, ($s0) +/* 0AF954 7F07AE24 C4460418 */ lwc1 $f6, 0x418($v0) +/* 0AF958 7F07AE28 E4460158 */ swc1 $f6, 0x158($v0) +/* 0AF95C 7F07AE2C 8E020000 */ lw $v0, ($s0) +/* 0AF960 7F07AE30 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0AF964 7F07AE34 8C4800A8 */ lw $t0, 0xa8($v0) +/* 0AF968 7F07AE38 E5080008 */ swc1 $f8, 8($t0) +/* 0AF96C 7F07AE3C 8E020000 */ lw $v0, ($s0) +/* 0AF970 7F07AE40 C44A0490 */ lwc1 $f10, 0x490($v0) +/* 0AF974 7F07AE44 8C4900A8 */ lw $t1, 0xa8($v0) +/* 0AF978 7F07AE48 E52A000C */ swc1 $f10, 0xc($t1) +/* 0AF97C 7F07AE4C 8E020000 */ lw $v0, ($s0) +/* 0AF980 7F07AE50 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0AF984 7F07AE54 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0AF988 7F07AE58 E5500010 */ swc1 $f16, 0x10($t2) +/* 0AF98C 7F07AE5C 8E020000 */ lw $v0, ($s0) +/* 0AF990 7F07AE60 8C4B0488 */ lw $t3, 0x488($v0) +/* 0AF994 7F07AE64 8C4C00A8 */ lw $t4, 0xa8($v0) +/* 0AF998 7F07AE68 0FC205E4 */ jal sub_GAME_7F081790 +/* 0AF99C 7F07AE6C AD8B0014 */ sw $t3, 0x14($t4) +/* 0AF9A0 7F07AE70 44806000 */ mtc1 $zero, $f12 +/* 0AF9A4 7F07AE74 00000000 */ nop +/* 0AF9A8 7F07AE78 44066000 */ mfc1 $a2, $f12 +/* 0AF9AC 7F07AE7C 0FC202CD */ jal sub_GAME_7F080B34 +/* 0AF9B0 7F07AE80 46006386 */ mov.s $f14, $f12 +/* 0AF9B4 7F07AE84 0FC2051E */ jal sub_GAME_7F081478 +/* 0AF9B8 7F07AE88 00000000 */ nop +/* 0AF9BC 7F07AE8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF9C0 7F07AE90 44817000 */ mtc1 $at, $f14 +/* 0AF9C4 7F07AE94 44806000 */ mtc1 $zero, $f12 +/* 0AF9C8 7F07AE98 0FC20284 */ jal set_curplayer_fade +/* 0AF9CC 7F07AE9C 00000000 */ nop +/* 0AF9D0 7F07AEA0 0FC1E73C */ jal solo_char_load +/* 0AF9D4 7F07AEA4 00000000 */ nop +/* 0AF9D8 7F07AEA8 8E040000 */ lw $a0, ($s0) +/* 0AF9DC 7F07AEAC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0AF9E0 7F07AEB0 24840598 */ addiu $a0, $a0, 0x598 +/* 0AF9E4 7F07AEB4 8E040000 */ lw $a0, ($s0) +/* 0AF9E8 7F07AEB8 AFA20038 */ sw $v0, 0x38($sp) +/* 0AF9EC 7F07AEBC 0FC1BD6D */ jal sub_GAME_7F06F5B4 +/* 0AF9F0 7F07AEC0 24840598 */ addiu $a0, $a0, 0x598 +/* 0AF9F4 7F07AEC4 44800000 */ mtc1 $zero, $f0 +/* 0AF9F8 7F07AEC8 8E0E0000 */ lw $t6, ($s0) +/* 0AF9FC 7F07AECC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0AFA00 7F07AED0 44819000 */ mtc1 $at, $f18 +/* 0AFA04 7F07AED4 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AFA08 7F07AED8 44070000 */ mfc1 $a3, $f0 +/* 0AFA0C 7F07AEDC 8FA50038 */ lw $a1, 0x38($sp) +/* 0AFA10 7F07AEE0 00403025 */ move $a2, $v0 +/* 0AFA14 7F07AEE4 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFA18 7F07AEE8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0AFA1C 7F07AEEC E7B20010 */ swc1 $f18, 0x10($sp) +/* 0AFA20 7F07AEF0 8E0D0000 */ lw $t5, ($s0) +/* 0AFA24 7F07AEF4 24180018 */ li $t8, 24 +/* 0AFA28 7F07AEF8 8DAF00A8 */ lw $t7, 0xa8($t5) +/* 0AFA2C 7F07AEFC 8DE30004 */ lw $v1, 4($t7) +/* 0AFA30 7F07AF00 8C790014 */ lw $t9, 0x14($v1) +/* 0AFA34 7F07AF04 A0780007 */ sb $t8, 7($v1) +/* 0AFA38 7F07AF08 A0600008 */ sb $zero, 8($v1) +/* 0AFA3C 7F07AF0C 37280001 */ ori $t0, $t9, 1 +/* 0AFA40 7F07AF10 AC680014 */ sw $t0, 0x14($v1) +/* 0AFA44 7F07AF14 8E020000 */ lw $v0, ($s0) +/* 0AFA48 7F07AF18 8C4500A8 */ lw $a1, 0xa8($v0) +/* 0AFA4C 7F07AF1C 8C4400D4 */ lw $a0, 0xd4($v0) +/* 0AFA50 7F07AF20 0FC1B303 */ jal setsuboffset +/* 0AFA54 7F07AF24 24A50008 */ addiu $a1, $a1, 8 +/* 0AFA58 7F07AF28 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AFA5C 7F07AF2C 00000000 */ nop +/* 0AFA60 7F07AF30 8E090000 */ lw $t1, ($s0) +/* 0AFA64 7F07AF34 44050000 */ mfc1 $a1, $f0 +/* 0AFA68 7F07AF38 0FC1B34F */ jal setsubroty +/* 0AFA6C 7F07AF3C 8D2400D4 */ lw $a0, 0xd4($t1) +/* 0AFA70 7F07AF40 3C028003 */ lui $v0, %hi(D_8003648C) +/* 0AFA74 7F07AF44 8C42648C */ lw $v0, %lo(D_8003648C)($v0) +.L7F07AF48: +/* 0AFA78 7F07AF48 10400017 */ beqz $v0, .L7F07AFA8 +/* 0AFA7C 7F07AF4C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0AFA80 7F07AF50 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0AFA84 7F07AF54 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0AFA88 7F07AF58 50800014 */ beql $a0, $zero, .L7F07AFAC +/* 0AFA8C 7F07AF5C 8E020000 */ lw $v0, ($s0) +/* 0AFA90 7F07AF60 AFA40064 */ sw $a0, 0x64($sp) +/* 0AFA94 7F07AF64 C4840008 */ lwc1 $f4, 8($a0) +/* 0AFA98 7F07AF68 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0AFA9C 7F07AF6C 44810000 */ mtc1 $at, $f0 +/* 0AFAA0 7F07AF70 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0AFAA4 7F07AF74 C486000C */ lwc1 $f6, 0xc($a0) +/* 0AFAA8 7F07AF78 00803025 */ move $a2, $a0 +/* 0AFAAC 7F07AF7C E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0AFAB0 7F07AF80 C4880010 */ lwc1 $f8, 0x10($a0) +/* 0AFAB4 7F07AF84 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0AFAB8 7F07AF88 C48A0008 */ lwc1 $f10, 8($a0) +/* 0AFABC 7F07AF8C E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0AFAC0 7F07AF90 C490000C */ lwc1 $f16, 0xc($a0) +/* 0AFAC4 7F07AF94 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0AFAC8 7F07AF98 C4920010 */ lwc1 $f18, 0x10($a0) +/* 0AFACC 7F07AF9C E7B20050 */ swc1 $f18, 0x50($sp) +/* 0AFAD0 7F07AFA0 10000014 */ b .L7F07AFF4 +/* 0AFAD4 7F07AFA4 8C830014 */ lw $v1, 0x14($a0) +.L7F07AFA8: +/* 0AFAD8 7F07AFA8 8E020000 */ lw $v0, ($s0) +.L7F07AFAC: +/* 0AFADC 7F07AFAC 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0AFAE0 7F07AFB0 44810000 */ mtc1 $at, $f0 +/* 0AFAE4 7F07AFB4 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0AFAE8 7F07AFB8 AFAA0064 */ sw $t2, 0x64($sp) +/* 0AFAEC 7F07AFBC C44403C4 */ lwc1 $f4, 0x3c4($v0) +/* 0AFAF0 7F07AFC0 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0AFAF4 7F07AFC4 C44603C8 */ lwc1 $f6, 0x3c8($v0) +/* 0AFAF8 7F07AFC8 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0AFAFC 7F07AFCC C44803CC */ lwc1 $f8, 0x3cc($v0) +/* 0AFB00 7F07AFD0 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0AFB04 7F07AFD4 C44A048C */ lwc1 $f10, 0x48c($v0) +/* 0AFB08 7F07AFD8 8C4600A8 */ lw $a2, 0xa8($v0) +/* 0AFB0C 7F07AFDC E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0AFB10 7F07AFE0 C4500490 */ lwc1 $f16, 0x490($v0) +/* 0AFB14 7F07AFE4 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0AFB18 7F07AFE8 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0AFB1C 7F07AFEC E7B20050 */ swc1 $f18, 0x50($sp) +/* 0AFB20 7F07AFF0 8C430488 */ lw $v1, 0x488($v0) +.L7F07AFF4: +/* 0AFB24 7F07AFF4 8FA40064 */ lw $a0, 0x64($sp) +/* 0AFB28 7F07AFF8 27A70048 */ addiu $a3, $sp, 0x48 +/* 0AFB2C 7F07AFFC AFA30010 */ sw $v1, 0x10($sp) +/* 0AFB30 7F07B000 0FC1E94D */ jal sub_GAME_7F07A534 +/* 0AFB34 7F07B004 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFB38 7F07B008 10400021 */ beqz $v0, .L7F07B090 +/* 0AFB3C 7F07B00C 3C0B8003 */ lui $t3, %hi(D_80036510) +/* 0AFB40 7F07B010 8D6B6510 */ lw $t3, %lo(D_80036510)($t3) +/* 0AFB44 7F07B014 15600007 */ bnez $t3, .L7F07B034 +/* 0AFB48 7F07B018 00000000 */ nop +/* 0AFB4C 7F07B01C 0C001B9F */ jal musicTrack1Play +/* 0AFB50 7F07B020 2404002C */ li $a0, 44 +/* 0AFB54 7F07B024 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0AFB58 7F07B028 44816000 */ mtc1 $at, $f12 +/* 0AFB5C 7F07B02C 0C00248E */ jal sfx_c_70009238 +/* 0AFB60 7F07B030 00000000 */ nop +.L7F07B034: +/* 0AFB64 7F07B034 3C0C8003 */ lui $t4, %hi(D_8003648C) +/* 0AFB68 7F07B038 8D8C648C */ lw $t4, %lo(D_8003648C)($t4) +/* 0AFB6C 7F07B03C 3C0E8003 */ lui $t6, %hi(ptr_playerstank) +/* 0AFB70 7F07B040 51800054 */ beql $t4, $zero, .L7F07B194 +/* 0AFB74 7F07B044 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFB78 7F07B048 8DCE6450 */ lw $t6, %lo(ptr_playerstank)($t6) +/* 0AFB7C 7F07B04C 51C00051 */ beql $t6, $zero, .L7F07B194 +/* 0AFB80 7F07B050 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFB84 7F07B054 0FC26C54 */ jal get_cur_playernum +/* 0AFB88 7F07B058 00000000 */ nop +/* 0AFB8C 7F07B05C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0AFB90 7F07B060 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0AFB94 7F07B064 2407000D */ li $a3, 13 +/* 0AFB98 7F07B068 8C860014 */ lw $a2, 0x14($a0) +/* 0AFB9C 7F07B06C 248D002C */ addiu $t5, $a0, 0x2c +/* 0AFBA0 7F07B070 AFAD0018 */ sw $t5, 0x18($sp) +/* 0AFBA4 7F07B074 AFA0001C */ sw $zero, 0x1c($sp) +/* 0AFBA8 7F07B078 AFA20014 */ sw $v0, 0x14($sp) +/* 0AFBAC 7F07B07C AFA00010 */ sw $zero, 0x10($sp) +/* 0AFBB0 7F07B080 0FC27094 */ jal sub_GAME_7F09C250 +/* 0AFBB4 7F07B084 24850008 */ addiu $a1, $a0, 8 +/* 0AFBB8 7F07B088 10000042 */ b .L7F07B194 +/* 0AFBBC 7F07B08C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B090: +/* 0AFBC0 7F07B090 0C001A4C */ jal run_title_stage +/* 0AFBC4 7F07B094 00000000 */ nop +/* 0AFBC8 7F07B098 1000003E */ b .L7F07B194 +/* 0AFBCC 7F07B09C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B0A0: +/* 0AFBD0 7F07B0A0 24010006 */ li $at, 6 +/* 0AFBD4 7F07B0A4 1441000D */ bne $v0, $at, .L7F07B0DC +/* 0AFBD8 7F07B0A8 00002025 */ move $a0, $zero +/* 0AFBDC 7F07B0AC 00002825 */ move $a1, $zero +/* 0AFBE0 7F07B0B0 00003025 */ move $a2, $zero +/* 0AFBE4 7F07B0B4 0FC201EC */ jal set_rgba_tint +/* 0AFBE8 7F07B0B8 24070000 */ li $a3, 0 +/* 0AFBEC 7F07B0BC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AFBF0 7F07B0C0 44816000 */ mtc1 $at, $f12 +/* 0AFBF4 7F07B0C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFBF8 7F07B0C8 44817000 */ mtc1 $at, $f14 +/* 0AFBFC 7F07B0CC 0FC20216 */ jal fade_to_over_seconds +/* 0AFC00 7F07B0D0 00000000 */ nop +/* 0AFC04 7F07B0D4 1000002F */ b .L7F07B194 +/* 0AFC08 7F07B0D8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B0DC: +/* 0AFC0C 7F07B0DC 24010007 */ li $at, 7 +/* 0AFC10 7F07B0E0 54410009 */ bnel $v0, $at, .L7F07B108 +/* 0AFC14 7F07B0E4 24010008 */ li $at, 8 +/* 0AFC18 7F07B0E8 0FC1E73C */ jal solo_char_load +/* 0AFC1C 7F07B0EC 00000000 */ nop +/* 0AFC20 7F07B0F0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AFC24 7F07B0F4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AFC28 7F07B0F8 8E0F0000 */ lw $t7, ($s0) +/* 0AFC2C 7F07B0FC 10000024 */ b .L7F07B190 +/* 0AFC30 7F07B100 ADE00034 */ sw $zero, 0x34($t7) +/* 0AFC34 7F07B104 24010008 */ li $at, 8 +.L7F07B108: +/* 0AFC38 7F07B108 54410007 */ bnel $v0, $at, .L7F07B128 +/* 0AFC3C 7F07B10C 2401000A */ li $at, 10 +/* 0AFC40 7F07B110 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0AFC44 7F07B114 00000000 */ nop +/* 0AFC48 7F07B118 24180004 */ li $t8, 4 +/* 0AFC4C 7F07B11C 1000001C */ b .L7F07B190 +/* 0AFC50 7F07B120 AE180000 */ sw $t8, ($s0) +/* 0AFC54 7F07B124 2401000A */ li $at, 10 +.L7F07B128: +/* 0AFC58 7F07B128 5441001A */ bnel $v0, $at, .L7F07B194 +/* 0AFC5C 7F07B12C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFC60 7F07B130 0FC26919 */ jal get_num_players +/* 0AFC64 7F07B134 00008025 */ move $s0, $zero +/* 0AFC68 7F07B138 18400013 */ blez $v0, .L7F07B188 +/* 0AFC6C 7F07B13C 00000000 */ nop +.L7F07B140: +/* 0AFC70 7F07B140 0FC26C43 */ jal set_cur_player +/* 0AFC74 7F07B144 02002025 */ move $a0, $s0 +/* 0AFC78 7F07B148 00002025 */ move $a0, $zero +/* 0AFC7C 7F07B14C 00002825 */ move $a1, $zero +/* 0AFC80 7F07B150 00003025 */ move $a2, $zero +/* 0AFC84 7F07B154 0FC201EC */ jal set_rgba_tint +/* 0AFC88 7F07B158 24070000 */ li $a3, 0 +/* 0AFC8C 7F07B15C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AFC90 7F07B160 44816000 */ mtc1 $at, $f12 +/* 0AFC94 7F07B164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFC98 7F07B168 44817000 */ mtc1 $at, $f14 +/* 0AFC9C 7F07B16C 0FC20216 */ jal fade_to_over_seconds +/* 0AFCA0 7F07B170 00000000 */ nop +/* 0AFCA4 7F07B174 0FC26919 */ jal get_num_players +/* 0AFCA8 7F07B178 26100001 */ addiu $s0, $s0, 1 +/* 0AFCAC 7F07B17C 0202082A */ slt $at, $s0, $v0 +/* 0AFCB0 7F07B180 1420FFEF */ bnez $at, .L7F07B140 +/* 0AFCB4 7F07B184 00000000 */ nop +.L7F07B188: +/* 0AFCB8 7F07B188 0FC26C43 */ jal set_cur_player +/* 0AFCBC 7F07B18C 00002025 */ move $a0, $zero +.L7F07B190: +/* 0AFCC0 7F07B190 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B194: +/* 0AFCC4 7F07B194 8FB00028 */ lw $s0, 0x28($sp) +/* 0AFCC8 7F07B198 27BD0088 */ addiu $sp, $sp, 0x88 +/* 0AFCCC 7F07B19C 03E00008 */ jr $ra +/* 0AFCD0 7F07B1A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B1A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07B1A4 +/* 0AFCD4 7F07B1A4 3C038003 */ lui $v1, %hi(cameramode) +/* 0AFCD8 7F07B1A8 24636494 */ addiu $v1, %lo(cameramode) # addiu $v1, $v1, 0x6494 +/* 0AFCDC 7F07B1AC 8C620000 */ lw $v0, ($v1) +/* 0AFCE0 7F07B1B0 AC600000 */ sw $zero, ($v1) +/* 0AFCE4 7F07B1B4 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0AFCE8 7F07B1B8 AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 0AFCEC 7F07B1BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AFCF0 7F07B1C0 24010001 */ li $at, 1 +/* 0AFCF4 7F07B1C4 14410005 */ bne $v0, $at, .L7F07B1DC +/* 0AFCF8 7F07B1C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AFCFC 7F07B1CC 0FC1EA6E */ jal set_camera_mode +/* 0AFD00 7F07B1D0 24040002 */ li $a0, 2 +/* 0AFD04 7F07B1D4 1000002F */ b .L7F07B294 +/* 0AFD08 7F07B1D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07B1DC: +/* 0AFD0C 7F07B1DC 24010002 */ li $at, 2 +/* 0AFD10 7F07B1E0 54410008 */ bnel $v0, $at, .L7F07B204 +/* 0AFD14 7F07B1E4 24010009 */ li $at, 9 +/* 0AFD18 7F07B1E8 0FC228CC */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 0AFD1C 7F07B1EC 00000000 */ nop +/* 0AFD20 7F07B1F0 0FC1EA6E */ jal set_camera_mode +/* 0AFD24 7F07B1F4 24040003 */ li $a0, 3 +/* 0AFD28 7F07B1F8 10000026 */ b .L7F07B294 +/* 0AFD2C 7F07B1FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD30 7F07B200 24010009 */ li $at, 9 +.L7F07B204: +/* 0AFD34 7F07B204 10410022 */ beq $v0, $at, .L7F07B290 +/* 0AFD38 7F07B208 24010003 */ li $at, 3 +/* 0AFD3C 7F07B20C 5441000D */ bnel $v0, $at, .L7F07B244 +/* 0AFD40 7F07B210 24010004 */ li $at, 4 +/* 0AFD44 7F07B214 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0AFD48 7F07B218 00000000 */ nop +/* 0AFD4C 7F07B21C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFD50 7F07B220 44817000 */ mtc1 $at, $f14 +/* 0AFD54 7F07B224 44806000 */ mtc1 $zero, $f12 +/* 0AFD58 7F07B228 0FC20284 */ jal set_curplayer_fade +/* 0AFD5C 7F07B22C 00000000 */ nop +/* 0AFD60 7F07B230 0FC1EA6E */ jal set_camera_mode +/* 0AFD64 7F07B234 24040004 */ li $a0, 4 +/* 0AFD68 7F07B238 10000016 */ b .L7F07B294 +/* 0AFD6C 7F07B23C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD70 7F07B240 24010004 */ li $at, 4 +.L7F07B244: +/* 0AFD74 7F07B244 10410012 */ beq $v0, $at, .L7F07B290 +/* 0AFD78 7F07B248 24010005 */ li $at, 5 +/* 0AFD7C 7F07B24C 54410006 */ bnel $v0, $at, .L7F07B268 +/* 0AFD80 7F07B250 24010006 */ li $at, 6 +/* 0AFD84 7F07B254 0FC1EA6E */ jal set_camera_mode +/* 0AFD88 7F07B258 24040006 */ li $a0, 6 +/* 0AFD8C 7F07B25C 1000000D */ b .L7F07B294 +/* 0AFD90 7F07B260 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD94 7F07B264 24010006 */ li $at, 6 +.L7F07B268: +/* 0AFD98 7F07B268 14410009 */ bne $v0, $at, .L7F07B290 +/* 0AFD9C 7F07B26C 3C028003 */ lui $v0, %hi(D_80036510) +/* 0AFDA0 7F07B270 24426510 */ addiu $v0, %lo(D_80036510) # addiu $v0, $v0, 0x6510 +/* 0AFDA4 7F07B274 8C4E0000 */ lw $t6, ($v0) +/* 0AFDA8 7F07B278 25CF0001 */ addiu $t7, $t6, 1 +/* 0AFDAC 7F07B27C 29E10003 */ slti $at, $t7, 3 +/* 0AFDB0 7F07B280 10200003 */ beqz $at, .L7F07B290 +/* 0AFDB4 7F07B284 AC4F0000 */ sw $t7, ($v0) +/* 0AFDB8 7F07B288 0FC1EA6E */ jal set_camera_mode +/* 0AFDBC 7F07B28C 24040005 */ li $a0, 5 +.L7F07B290: +/* 0AFDC0 7F07B290 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07B294: +/* 0AFDC4 7F07B294 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AFDC8 7F07B298 03E00008 */ jr $ra +/* 0AFDCC 7F07B29C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B2A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07B2A0 +/* 0AFDD0 7F07B2A0 3C088003 */ lui $t0, %hi(D_800364AC) +/* 0AFDD4 7F07B2A4 8D0864AC */ lw $t0, %lo(D_800364AC)($t0) +/* 0AFDD8 7F07B2A8 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0AFDDC 7F07B2AC 00046140 */ sll $t4, $a0, 5 +/* 0AFDE0 7F07B2B0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0AFDE4 7F07B2B4 AFB00028 */ sw $s0, 0x28($sp) +/* 0AFDE8 7F07B2B8 AFA60098 */ sw $a2, 0x98($sp) +/* 0AFDEC 7F07B2BC 010C5821 */ addu $t3, $t0, $t4 +/* 0AFDF0 7F07B2C0 44801000 */ mtc1 $zero, $f2 +/* 0AFDF4 7F07B2C4 C5600018 */ lwc1 $f0, 0x18($t3) +/* 0AFDF8 7F07B2C8 00E08025 */ move $s0, $a3 +/* 0AFDFC 7F07B2CC 44856000 */ mtc1 $a1, $f12 +/* 0AFE00 7F07B2D0 4600103C */ c.lt.s $f2, $f0 +/* 0AFE04 7F07B2D4 00047140 */ sll $t6, $a0, 5 +/* 0AFE08 7F07B2D8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0AFE0C 7F07B2DC 2406FFFF */ li $a2, -1 +/* 0AFE10 7F07B2E0 45000002 */ bc1f .L7F07B2EC +/* 0AFE14 7F07B2E4 01C83821 */ addu $a3, $t6, $t0 +/* 0AFE18 7F07B2E8 46006083 */ div.s $f2, $f12, $f0 +.L7F07B2EC: +/* 0AFE1C 7F07B2EC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AFE20 7F07B2F0 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0AFE24 7F07B2F4 240A0003 */ li $t2, 3 +.L7F07B2F8: +/* 0AFE28 7F07B2F8 00067940 */ sll $t7, $a2, 5 +/* 0AFE2C 7F07B2FC 01E72021 */ addu $a0, $t7, $a3 +/* 0AFE30 7F07B300 00E01025 */ move $v0, $a3 +/* 0AFE34 7F07B304 04C10008 */ bgez $a2, .L7F07B328 +/* 0AFE38 7F07B308 00801825 */ move $v1, $a0 +/* 0AFE3C 7F07B30C 0088082B */ sltu $at, $a0, $t0 +/* 0AFE40 7F07B310 10200003 */ beqz $at, .L7F07B320 +/* 0AFE44 7F07B314 00000000 */ nop +/* 0AFE48 7F07B318 1000000E */ b .L7F07B354 +/* 0AFE4C 7F07B31C 01001025 */ move $v0, $t0 +.L7F07B320: +/* 0AFE50 7F07B320 1000000C */ b .L7F07B354 +/* 0AFE54 7F07B324 00601025 */ move $v0, $v1 +.L7F07B328: +/* 0AFE58 7F07B328 0044082B */ sltu $at, $v0, $a0 +/* 0AFE5C 7F07B32C 5020000A */ beql $at, $zero, .L7F07B358 +/* 0AFE60 7F07B330 8C4D0004 */ lw $t5, 4($v0) +/* 0AFE64 7F07B334 8C580024 */ lw $t8, 0x24($v0) +.L7F07B338: +/* 0AFE68 7F07B338 33190001 */ andi $t9, $t8, 1 +/* 0AFE6C 7F07B33C 57200006 */ bnezl $t9, .L7F07B358 +/* 0AFE70 7F07B340 8C4D0004 */ lw $t5, 4($v0) +/* 0AFE74 7F07B344 24420020 */ addiu $v0, $v0, 0x20 +/* 0AFE78 7F07B348 0043082B */ sltu $at, $v0, $v1 +/* 0AFE7C 7F07B34C 5420FFFA */ bnezl $at, .L7F07B338 +/* 0AFE80 7F07B350 8C580024 */ lw $t8, 0x24($v0) +.L7F07B354: +/* 0AFE84 7F07B354 8C4D0004 */ lw $t5, 4($v0) +.L7F07B358: +/* 0AFE88 7F07B358 24C60001 */ addiu $a2, $a2, 1 +/* 0AFE8C 7F07B35C 31AE0002 */ andi $t6, $t5, 2 +/* 0AFE90 7F07B360 51C00018 */ beql $t6, $zero, .L7F07B3C4 +/* 0AFE94 7F07B364 C4500008 */ lwc1 $f16, 8($v0) +/* 0AFE98 7F07B368 8D230000 */ lw $v1, ($t1) +/* 0AFE9C 7F07B36C C4460008 */ lwc1 $f6, 8($v0) +/* 0AFEA0 7F07B370 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AFEA4 7F07B374 C46404A0 */ lwc1 $f4, 0x4a0($v1) +/* 0AFEA8 7F07B378 C4700498 */ lwc1 $f16, 0x498($v1) +/* 0AFEAC 7F07B37C 46062202 */ mul.s $f8, $f4, $f6 +/* 0AFEB0 7F07B380 00000000 */ nop +/* 0AFEB4 7F07B384 46105482 */ mul.s $f18, $f10, $f16 +/* 0AFEB8 7F07B388 46124100 */ add.s $f4, $f8, $f18 +/* 0AFEBC 7F07B38C E4A4000C */ swc1 $f4, 0xc($a1) +/* 0AFEC0 7F07B390 C446000C */ lwc1 $f6, 0xc($v0) +/* 0AFEC4 7F07B394 E4A60010 */ swc1 $f6, 0x10($a1) +/* 0AFEC8 7F07B398 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AFECC 7F07B39C C47004A0 */ lwc1 $f16, 0x4a0($v1) +/* 0AFED0 7F07B3A0 C4440008 */ lwc1 $f4, 8($v0) +/* 0AFED4 7F07B3A4 C4720498 */ lwc1 $f18, 0x498($v1) +/* 0AFED8 7F07B3A8 46105202 */ mul.s $f8, $f10, $f16 +/* 0AFEDC 7F07B3AC 00000000 */ nop +/* 0AFEE0 7F07B3B0 46049182 */ mul.s $f6, $f18, $f4 +/* 0AFEE4 7F07B3B4 46064281 */ sub.s $f10, $f8, $f6 +/* 0AFEE8 7F07B3B8 10000007 */ b .L7F07B3D8 +/* 0AFEEC 7F07B3BC E4AA0014 */ swc1 $f10, 0x14($a1) +/* 0AFEF0 7F07B3C0 C4500008 */ lwc1 $f16, 8($v0) +.L7F07B3C4: +/* 0AFEF4 7F07B3C4 E4B0000C */ swc1 $f16, 0xc($a1) +/* 0AFEF8 7F07B3C8 C452000C */ lwc1 $f18, 0xc($v0) +/* 0AFEFC 7F07B3CC E4B20010 */ swc1 $f18, 0x10($a1) +/* 0AFF00 7F07B3D0 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0AFF04 7F07B3D4 E4A40014 */ swc1 $f4, 0x14($a1) +.L7F07B3D8: +/* 0AFF08 7F07B3D8 14CAFFC7 */ bne $a2, $t2, .L7F07B2F8 +/* 0AFF0C 7F07B3DC 24A5000C */ addiu $a1, $a1, 0xc +/* 0AFF10 7F07B3E0 C5600014 */ lwc1 $f0, 0x14($t3) +/* 0AFF14 7F07B3E4 8FAF0098 */ lw $t7, 0x98($sp) +/* 0AFF18 7F07B3E8 E7A20058 */ swc1 $f2, 0x58($sp) +/* 0AFF1C 7F07B3EC AFAC0040 */ sw $t4, 0x40($sp) +/* 0AFF20 7F07B3F0 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0AFF24 7F07B3F4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0AFF28 7F07B3F8 27A5006C */ addiu $a1, $sp, 0x6c +/* 0AFF2C 7F07B3FC 27A60078 */ addiu $a2, $sp, 0x78 +/* 0AFF30 7F07B400 27A70084 */ addiu $a3, $sp, 0x84 +/* 0AFF34 7F07B404 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFF38 7F07B408 0FC16C09 */ jal sub_GAME_7F05B024 +/* 0AFF3C 7F07B40C AFAF0018 */ sw $t7, 0x18($sp) +/* 0AFF40 7F07B410 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AFF44 7F07B414 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0AFF48 7F07B418 8FA20098 */ lw $v0, 0x98($sp) +/* 0AFF4C 7F07B41C 8D380000 */ lw $t8, ($t1) +/* 0AFF50 7F07B420 8FAC0040 */ lw $t4, 0x40($sp) +/* 0AFF54 7F07B424 C4480000 */ lwc1 $f8, ($v0) +/* 0AFF58 7F07B428 C70603C4 */ lwc1 $f6, 0x3c4($t8) +/* 0AFF5C 7F07B42C C7A20058 */ lwc1 $f2, 0x58($sp) +/* 0AFF60 7F07B430 C4500004 */ lwc1 $f16, 4($v0) +/* 0AFF64 7F07B434 46064280 */ add.s $f10, $f8, $f6 +/* 0AFF68 7F07B438 C4480008 */ lwc1 $f8, 8($v0) +/* 0AFF6C 7F07B43C 44807000 */ mtc1 $zero, $f14 +/* 0AFF70 7F07B440 E44A0000 */ swc1 $f10, ($v0) +/* 0AFF74 7F07B444 8D390000 */ lw $t9, ($t1) +/* 0AFF78 7F07B448 C73203C8 */ lwc1 $f18, 0x3c8($t9) +/* 0AFF7C 7F07B44C 3C198003 */ lui $t9, %hi(D_800364AC) +/* 0AFF80 7F07B450 46128100 */ add.s $f4, $f16, $f18 +/* 0AFF84 7F07B454 E4440004 */ swc1 $f4, 4($v0) +/* 0AFF88 7F07B458 8D2D0000 */ lw $t5, ($t1) +/* 0AFF8C 7F07B45C C5A603CC */ lwc1 $f6, 0x3cc($t5) +/* 0AFF90 7F07B460 46064280 */ add.s $f10, $f8, $f6 +/* 0AFF94 7F07B464 E44A0008 */ swc1 $f10, 8($v0) +/* 0AFF98 7F07B468 8D2E0000 */ lw $t6, ($t1) +/* 0AFF9C 7F07B46C C5D003C4 */ lwc1 $f16, 0x3c4($t6) +/* 0AFFA0 7F07B470 E6100000 */ swc1 $f16, ($s0) +/* 0AFFA4 7F07B474 8D2F0000 */ lw $t7, ($t1) +/* 0AFFA8 7F07B478 C5F203C8 */ lwc1 $f18, 0x3c8($t7) +/* 0AFFAC 7F07B47C E6120004 */ swc1 $f18, 4($s0) +/* 0AFFB0 7F07B480 8D380000 */ lw $t8, ($t1) +/* 0AFFB4 7F07B484 C70403CC */ lwc1 $f4, 0x3cc($t8) +/* 0AFFB8 7F07B488 E6040008 */ swc1 $f4, 8($s0) +/* 0AFFBC 7F07B48C 8F3964AC */ lw $t9, %lo(D_800364AC)($t9) +/* 0AFFC0 7F07B490 032C5821 */ addu $t3, $t9, $t4 +/* 0AFFC4 7F07B494 8D6D0004 */ lw $t5, 4($t3) +/* 0AFFC8 7F07B498 31AE0004 */ andi $t6, $t5, 4 +/* 0AFFCC 7F07B49C 55C0000E */ bnezl $t6, .L7F07B4D8 +/* 0AFFD0 7F07B4A0 8D790024 */ lw $t9, 0x24($t3) +/* 0AFFD4 7F07B4A4 8D6F0024 */ lw $t7, 0x24($t3) +/* 0AFFD8 7F07B4A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFFDC 7F07B4AC 31F80004 */ andi $t8, $t7, 4 +/* 0AFFE0 7F07B4B0 57000006 */ bnezl $t8, .L7F07B4CC +/* 0AFFE4 7F07B4B4 44814000 */ mtc1 $at, $f8 +/* 0AFFE8 7F07B4B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFFEC 7F07B4BC 44810000 */ mtc1 $at, $f0 +/* 0AFFF0 7F07B4C0 1000000C */ b .L7F07B4F4 +/* 0AFFF4 7F07B4C4 8D2E0000 */ lw $t6, ($t1) +/* 0AFFF8 7F07B4C8 44814000 */ mtc1 $at, $f8 +.L7F07B4CC: +/* 0AFFFC 7F07B4CC 10000008 */ b .L7F07B4F0 +/* 0B0000 7F07B4D0 46024001 */ sub.s $f0, $f8, $f2 +/* 0B0004 7F07B4D4 8D790024 */ lw $t9, 0x24($t3) +.L7F07B4D8: +/* 0B0008 7F07B4D8 332D0004 */ andi $t5, $t9, 4 +/* 0B000C 7F07B4DC 51A00004 */ beql $t5, $zero, .L7F07B4F0 +/* 0B0010 7F07B4E0 46001006 */ mov.s $f0, $f2 +/* 0B0014 7F07B4E4 10000002 */ b .L7F07B4F0 +/* 0B0018 7F07B4E8 46007006 */ mov.s $f0, $f14 +/* 0B001C 7F07B4EC 46001006 */ mov.s $f0, $f2 +.L7F07B4F0: +/* 0B0020 7F07B4F0 8D2E0000 */ lw $t6, ($t1) +.L7F07B4F4: +/* 0B0024 7F07B4F4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B0028 7F07B4F8 44811000 */ mtc1 $at, $f2 +/* 0B002C 7F07B4FC C5CA04C0 */ lwc1 $f10, 0x4c0($t6) +/* 0B0030 7F07B500 C6060000 */ lwc1 $f6, ($s0) +/* 0B0034 7F07B504 C6080004 */ lwc1 $f8, 4($s0) +/* 0B0038 7F07B508 46025402 */ mul.s $f16, $f10, $f2 +/* 0B003C 7F07B50C 00000000 */ nop +/* 0B0040 7F07B510 46008482 */ mul.s $f18, $f16, $f0 +/* 0B0044 7F07B514 46123100 */ add.s $f4, $f6, $f18 +/* 0B0048 7F07B518 E6040000 */ swc1 $f4, ($s0) +/* 0B004C 7F07B51C 8D2F0000 */ lw $t7, ($t1) +/* 0B0050 7F07B520 C6040008 */ lwc1 $f4, 8($s0) +/* 0B0054 7F07B524 C5EA04C4 */ lwc1 $f10, 0x4c4($t7) +/* 0B0058 7F07B528 46025402 */ mul.s $f16, $f10, $f2 +/* 0B005C 7F07B52C 00000000 */ nop +/* 0B0060 7F07B530 46008182 */ mul.s $f6, $f16, $f0 +/* 0B0064 7F07B534 46064480 */ add.s $f18, $f8, $f6 +/* 0B0068 7F07B538 E6120004 */ swc1 $f18, 4($s0) +/* 0B006C 7F07B53C 8D380000 */ lw $t8, ($t1) +/* 0B0070 7F07B540 C70A04C8 */ lwc1 $f10, 0x4c8($t8) +/* 0B0074 7F07B544 46025402 */ mul.s $f16, $f10, $f2 +/* 0B0078 7F07B548 00000000 */ nop +/* 0B007C 7F07B54C 46008202 */ mul.s $f8, $f16, $f0 +/* 0B0080 7F07B550 46082180 */ add.s $f6, $f4, $f8 +/* 0B0084 7F07B554 E6060008 */ swc1 $f6, 8($s0) +/* 0B0088 7F07B558 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B008C 7F07B55C 8FB00028 */ lw $s0, 0x28($sp) +/* 0B0090 7F07B560 27BD0090 */ addiu $sp, $sp, 0x90 +/* 0B0094 7F07B564 03E00008 */ jr $ra +/* 0B0098 7F07B568 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B56C(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80055044 +.word 0x43338000 /*179.5*/ +glabel D_80055048 +.word 0x3dcccccd /*0.1*/ +glabel D_8005504C +.word 0x3c75c28f /*0.015*/ +glabel D_80055050 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055054 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80055058 +.word 0x3da3d70a /*0.079999998*/ +glabel D_8005505C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07B56C +/* 0B009C 7F07B56C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B00A0 7F07B570 3C028003 */ lui $v0, %hi(cameramode) +/* 0B00A4 7F07B574 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0B00A8 7F07B578 240B0001 */ li $t3, 1 +/* 0B00AC 7F07B57C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B00B0 7F07B580 AFA40040 */ sw $a0, 0x40($sp) +/* 0B00B4 7F07B584 AFA50044 */ sw $a1, 0x44($sp) +/* 0B00B8 7F07B588 AFA60048 */ sw $a2, 0x48($sp) +/* 0B00BC 7F07B58C 11620004 */ beq $t3, $v0, .L7F07B5A0 +/* 0B00C0 7F07B590 AFA7004C */ sw $a3, 0x4c($sp) +/* 0B00C4 7F07B594 24050002 */ li $a1, 2 +/* 0B00C8 7F07B598 14A200AF */ bne $a1, $v0, .L7F07B858 +/* 0B00CC 7F07B59C 24010009 */ li $at, 9 +.L7F07B5A0: +/* 0B00D0 7F07B5A0 15620059 */ bne $t3, $v0, .L7F07B708 +/* 0B00D4 7F07B5A4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B00D8 7F07B5A8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B00DC 7F07B5AC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B00E0 7F07B5B0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0B00E4 7F07B5B4 44810000 */ mtc1 $at, $f0 +/* 0B00E8 7F07B5B8 C5420000 */ lwc1 $f2, ($t2) +/* 0B00EC 7F07B5BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B00F0 7F07B5C0 4600103C */ c.lt.s $f2, $f0 +/* 0B00F4 7F07B5C4 00000000 */ nop +/* 0B00F8 7F07B5C8 45000014 */ bc1f .L7F07B61C +/* 0B00FC 7F07B5CC 00000000 */ nop +/* 0B0100 7F07B5D0 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0104 7F07B5D4 3C048004 */ lui $a0, %hi(ptrSecondFontTableLarge) +/* 0B0108 7F07B5D8 3C058004 */ lui $a1, %hi(ptrFirstFontTableLarge) +/* 0B010C 7F07B5DC 46041180 */ add.s $f6, $f2, $f4 +/* 0B0110 7F07B5E0 4606003E */ c.le.s $f0, $f6 +/* 0B0114 7F07B5E4 00000000 */ nop +/* 0B0118 7F07B5E8 4500000C */ bc1f .L7F07B61C +/* 0B011C 7F07B5EC 00000000 */ nop +/* 0B0120 7F07B5F0 8C840EB8 */ lw $a0, %lo(ptrSecondFontTableLarge)($a0) +/* 0B0124 7F07B5F4 0FC228ED */ jal sub_GAME_7F08A3B4 +/* 0B0128 7F07B5F8 8CA50EB4 */ lw $a1, %lo(ptrFirstFontTableLarge)($a1) +/* 0B012C 7F07B5FC 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) +/* 0B0130 7F07B600 8DCE64C0 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0B0134 7F07B604 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B0138 7F07B608 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B013C 7F07B60C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0140 7F07B610 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0144 7F07B614 C5420000 */ lwc1 $f2, ($t2) +/* 0B0148 7F07B618 240B0001 */ li $t3, 1 +.L7F07B61C: +/* 0B014C 7F07B61C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B0150 7F07B620 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B0154 7F07B624 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0158 7F07B628 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B015C 7F07B62C 8DE40020 */ lw $a0, 0x20($t7) +/* 0B0160 7F07B630 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0164 7F07B634 46081000 */ add.s $f0, $f2, $f8 +/* 0B0168 7F07B638 5080001F */ beql $a0, $zero, .L7F07B6B8 +/* 0B016C 7F07B63C 44816000 */ mtc1 $at, $f12 +/* 0B0170 7F07B640 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0174 7F07B644 44816000 */ mtc1 $at, $f12 +/* 0B0178 7F07B648 00000000 */ nop +/* 0B017C 7F07B64C 460C103C */ c.lt.s $f2, $f12 +/* 0B0180 7F07B650 00000000 */ nop +/* 0B0184 7F07B654 4502000F */ bc1fl .L7F07B694 +/* 0B0188 7F07B658 3C0143F0 */ lui $at, 0x43f0 +/* 0B018C 7F07B65C 4600603E */ c.le.s $f12, $f0 +/* 0B0190 7F07B660 00000000 */ nop +/* 0B0194 7F07B664 4502000B */ bc1fl .L7F07B694 +/* 0B0198 7F07B668 3C0143F0 */ lui $at, 0x43f0 +/* 0B019C 7F07B66C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B01A0 7F07B670 00000000 */ nop +/* 0B01A4 7F07B674 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B01A8 7F07B678 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B01AC 7F07B67C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B01B0 7F07B680 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B01B4 7F07B684 C5420000 */ lwc1 $f2, ($t2) +/* 0B01B8 7F07B688 240B0001 */ li $t3, 1 +/* 0B01BC 7F07B68C 460A1000 */ add.s $f0, $f2, $f10 +/* 0B01C0 7F07B690 3C0143F0 */ li $at, 0x43F00000 # 480.000000 +.L7F07B694: +/* 0B01C4 7F07B694 44812000 */ mtc1 $at, $f4 +/* 0B01C8 7F07B698 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01CC 7F07B69C 4602203C */ c.lt.s $f4, $f2 +/* 0B01D0 7F07B6A0 00000000 */ nop +/* 0B01D4 7F07B6A4 4500000A */ bc1f .L7F07B6D0 +/* 0B01D8 7F07B6A8 00000000 */ nop +/* 0B01DC 7F07B6AC 10000008 */ b .L7F07B6D0 +/* 0B01E0 7F07B6B0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B01E4 7F07B6B4 44816000 */ mtc1 $at, $f12 +.L7F07B6B8: +/* 0B01E8 7F07B6B8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01EC 7F07B6BC 4602603C */ c.lt.s $f12, $f2 +/* 0B01F0 7F07B6C0 00000000 */ nop +/* 0B01F4 7F07B6C4 45000002 */ bc1f .L7F07B6D0 +/* 0B01F8 7F07B6C8 00000000 */ nop +/* 0B01FC 7F07B6CC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B6D0: +/* 0B0200 7F07B6D0 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0204 7F07B6D4 E5400000 */ swc1 $f0, ($t2) +/* 0B0208 7F07B6D8 14400015 */ bnez $v0, .L7F07B730 +/* 0B020C 7F07B6DC 240B0001 */ li $t3, 1 +/* 0B0210 7F07B6E0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0214 7F07B6E4 97B80042 */ lhu $t8, 0x42($sp) +/* 0B0218 7F07B6E8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B021C 7F07B6EC 03206027 */ not $t4, $t9 +/* 0B0220 7F07B6F0 030C6824 */ and $t5, $t8, $t4 +/* 0B0224 7F07B6F4 31AEF030 */ andi $t6, $t5, 0xf030 +/* 0B0228 7F07B6F8 11C0000D */ beqz $t6, .L7F07B730 +/* 0B022C 7F07B6FC 00000000 */ nop +/* 0B0230 7F07B700 1000000B */ b .L7F07B730 +/* 0B0234 7F07B704 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B708: +/* 0B0238 7F07B708 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B023C 7F07B70C 8D2F0000 */ lw $t7, ($t1) +/* 0B0240 7F07B710 44807000 */ mtc1 $zero, $f14 +/* 0B0244 7F07B714 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0248 7F07B718 C5E603E4 */ lwc1 $f6, 0x3e4($t7) +/* 0B024C 7F07B71C 460E303C */ c.lt.s $f6, $f14 +/* 0B0250 7F07B720 00000000 */ nop +/* 0B0254 7F07B724 45000002 */ bc1f .L7F07B730 +/* 0B0258 7F07B728 00000000 */ nop +/* 0B025C 7F07B72C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B730: +/* 0B0260 7F07B730 3C028003 */ lui $v0, %hi(ptr_random06cam_entry) +/* 0B0264 7F07B734 244264C0 */ addiu $v0, %lo(ptr_random06cam_entry) # addiu $v0, $v0, 0x64c0 +/* 0B0268 7F07B738 8C590000 */ lw $t9, ($v0) +/* 0B026C 7F07B73C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0270 7F07B740 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0274 7F07B744 E7080000 */ swc1 $f8, ($t8) +/* 0B0278 7F07B748 8C4C0000 */ lw $t4, ($v0) +/* 0B027C 7F07B74C C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0280 7F07B750 E70A0004 */ swc1 $f10, 4($t8) +/* 0B0284 7F07B754 8C4D0000 */ lw $t5, ($v0) +/* 0B0288 7F07B758 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 0B028C 7F07B75C E7040008 */ swc1 $f4, 8($t8) +/* 0B0290 7F07B760 8C4E0000 */ lw $t6, ($v0) +/* 0B0294 7F07B764 0FC15FA8 */ jal cosf +/* 0B0298 7F07B768 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 0B029C 7F07B76C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02A0 7F07B770 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02A4 7F07B774 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B02A8 7F07B778 0FC15FAB */ jal sinf +/* 0B02AC 7F07B77C C5EC0010 */ lwc1 $f12, 0x10($t7) +/* 0B02B0 7F07B780 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B02B4 7F07B784 8FB90048 */ lw $t9, 0x48($sp) +/* 0B02B8 7F07B788 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B02BC 7F07B78C 46060202 */ mul.s $f8, $f0, $f6 +/* 0B02C0 7F07B790 C72A0000 */ lwc1 $f10, ($t9) +/* 0B02C4 7F07B794 3C0D8003 */ lui $t5, %hi(ptr_random06cam_entry) +/* 0B02C8 7F07B798 460A4100 */ add.s $f4, $f8, $f10 +/* 0B02CC 7F07B79C E5840000 */ swc1 $f4, ($t4) +/* 0B02D0 7F07B7A0 8DAD64C0 */ lw $t5, %lo(ptr_random06cam_entry)($t5) +/* 0B02D4 7F07B7A4 0FC15FAB */ jal sinf +/* 0B02D8 7F07B7A8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B02DC 7F07B7AC 8FB80048 */ lw $t8, 0x48($sp) +/* 0B02E0 7F07B7B0 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B02E4 7F07B7B4 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02E8 7F07B7B8 C7060004 */ lwc1 $f6, 4($t8) +/* 0B02EC 7F07B7BC 46060200 */ add.s $f8, $f0, $f6 +/* 0B02F0 7F07B7C0 E5C80004 */ swc1 $f8, 4($t6) +/* 0B02F4 7F07B7C4 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02F8 7F07B7C8 0FC15FA8 */ jal cosf +/* 0B02FC 7F07B7CC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0300 7F07B7D0 3C198003 */ lui $t9, %hi(ptr_random06cam_entry) +/* 0B0304 7F07B7D4 8F3964C0 */ lw $t9, %lo(ptr_random06cam_entry)($t9) +/* 0B0308 7F07B7D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B030C 7F07B7DC 0FC15FA8 */ jal cosf +/* 0B0310 7F07B7E0 C72C0010 */ lwc1 $f12, 0x10($t9) +/* 0B0314 7F07B7E4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0318 7F07B7E8 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B031C 7F07B7EC 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0320 7F07B7F0 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0324 7F07B7F4 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0328 7F07B7F8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B032C 7F07B7FC 3C188003 */ lui $t8, %hi(ptr_random06cam_entry) +/* 0B0330 7F07B800 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 0B0334 7F07B804 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0338 7F07B808 E5A80008 */ swc1 $f8, 8($t5) +/* 0B033C 7F07B80C 8F1864C0 */ lw $t8, %lo(ptr_random06cam_entry)($t8) +/* 0B0340 7F07B810 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 0B0344 7F07B814 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B0348 7F07B818 8F0E0018 */ lw $t6, 0x18($t8) +/* 0B034C 7F07B81C 000E7880 */ sll $t7, $t6, 2 +/* 0B0350 7F07B820 01EE7823 */ subu $t7, $t7, $t6 +/* 0B0354 7F07B824 000F7880 */ sll $t7, $t7, 2 +/* 0B0358 7F07B828 01EE7823 */ subu $t7, $t7, $t6 +/* 0B035C 7F07B82C 000F7880 */ sll $t7, $t7, 2 +/* 0B0360 7F07B830 01F91021 */ addu $v0, $t7, $t9 +/* 0B0364 7F07B834 8C4C0028 */ lw $t4, 0x28($v0) +/* 0B0368 7F07B838 ADAC0000 */ sw $t4, ($t5) +/* 0B036C 7F07B83C C4440000 */ lwc1 $f4, ($v0) +/* 0B0370 7F07B840 E4640000 */ swc1 $f4, ($v1) +/* 0B0374 7F07B844 C44A0004 */ lwc1 $f10, 4($v0) +/* 0B0378 7F07B848 E46A0004 */ swc1 $f10, 4($v1) +/* 0B037C 7F07B84C C4460008 */ lwc1 $f6, 8($v0) +/* 0B0380 7F07B850 10000337 */ b .L7F07C530 +/* 0B0384 7F07B854 E4660008 */ swc1 $f6, 8($v1) +.L7F07B858: +/* 0B0388 7F07B858 544100B3 */ bnel $v0, $at, .L7F07BB28 +/* 0B038C 7F07B85C 24010003 */ li $at, 3 +/* 0B0390 7F07B860 0FC26C54 */ jal get_cur_playernum +/* 0B0394 7F07B864 00000000 */ nop +/* 0B0398 7F07B868 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0B039C 7F07B86C 00402025 */ move $a0, $v0 +/* 0B03A0 7F07B870 14400054 */ bnez $v0, .L7F07B9C4 +/* 0B03A4 7F07B874 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B03A8 7F07B878 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B03AC 7F07B87C 8CE78374 */ lw $a3, %lo(clock_timer)($a3) +/* 0B03B0 7F07B880 00001825 */ move $v1, $zero +/* 0B03B4 7F07B884 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) +/* 0B03B8 7F07B888 18E0004E */ blez $a3, .L7F07B9C4 +/* 0B03BC 7F07B88C 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E04) +/* 0B03C0 7F07B890 C42C9E08 */ lwc1 $f12, %lo(flt_CODE_bss_80079E08)($at) +/* 0B03C4 7F07B894 3C018005 */ lui $at, %hi(D_80055044) +/* 0B03C8 7F07B898 C4325044 */ lwc1 $f18, %lo(D_80055044)($at) +/* 0B03CC 7F07B89C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B03D0 7F07B8A0 44818000 */ mtc1 $at, $f16 +/* 0B03D4 7F07B8A4 3C018005 */ lui $at, %hi(D_80055048) +/* 0B03D8 7F07B8A8 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079E0C) +/* 0B03DC 7F07B8AC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B03E0 7F07B8B0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B03E4 7F07B8B4 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B03E8 7F07B8B8 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B03EC 7F07B8BC 24A59E0C */ addiu $a1, %lo(flt_CODE_bss_80079E0C) # addiu $a1, $a1, -0x61f4 +/* 0B03F0 7F07B8C0 C42E5048 */ lwc1 $f14, %lo(D_80055048)($at) +/* 0B03F4 7F07B8C4 24C69E04 */ addiu $a2, %lo(flt_CODE_bss_80079E04) # addiu $a2, $a2, -0x61fc +/* 0B03F8 7F07B8C8 4612603C */ c.lt.s $f12, $f18 +.L7F07B8CC: +/* 0B03FC 7F07B8CC 24630001 */ addiu $v1, $v1, 1 +/* 0B0400 7F07B8D0 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0404 7F07B8D4 45020017 */ bc1fl .L7F07B934 +/* 0B0408 7F07B8D8 44812000 */ mtc1 $at, $f4 +/* 0B040C 7F07B8DC 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B0410 7F07B8E0 44814000 */ mtc1 $at, $f8 +/* 0B0414 7F07B8E4 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0B0418 7F07B8E8 44815000 */ mtc1 $at, $f10 +/* 0B041C 7F07B8EC 4608603C */ c.lt.s $f12, $f8 +/* 0B0420 7F07B8F0 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0424 7F07B8F4 45020005 */ bc1fl .L7F07B90C +/* 0B0428 7F07B8F8 460C503C */ c.lt.s $f10, $f12 +/* 0B042C 7F07B8FC 460E0100 */ add.s $f4, $f0, $f14 +/* 0B0430 7F07B900 E4C40000 */ swc1 $f4, ($a2) +/* 0B0434 7F07B904 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0438 7F07B908 460C503C */ c.lt.s $f10, $f12 +.L7F07B90C: +/* 0B043C 7F07B90C 00000000 */ nop +/* 0B0440 7F07B910 45020005 */ bc1fl .L7F07B928 +/* 0B0444 7F07B914 46006200 */ add.s $f8, $f12, $f0 +/* 0B0448 7F07B918 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B044C 7F07B91C E4C60000 */ swc1 $f6, ($a2) +/* 0B0450 7F07B920 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0454 7F07B924 46006200 */ add.s $f8, $f12, $f0 +.L7F07B928: +/* 0B0458 7F07B928 10000004 */ b .L7F07B93C +/* 0B045C 7F07B92C E4880000 */ swc1 $f8, ($a0) +/* 0B0460 7F07B930 44812000 */ mtc1 $at, $f4 +.L7F07B934: +/* 0B0464 7F07B934 00000000 */ nop +/* 0B0468 7F07B938 E4840000 */ swc1 $f4, ($a0) +.L7F07B93C: +/* 0B046C 7F07B93C 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B0470 7F07B940 44815000 */ mtc1 $at, $f10 +/* 0B0474 7F07B944 C48C0000 */ lwc1 $f12, ($a0) +/* 0B0478 7F07B948 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B047C 7F07B94C 460C503C */ c.lt.s $f10, $f12 +/* 0B0480 7F07B950 00000000 */ nop +/* 0B0484 7F07B954 45020019 */ bc1fl .L7F07B9BC +/* 0B0488 7F07B958 0067082A */ slt $at, $v1, $a3 +/* 0B048C 7F07B95C C4400000 */ lwc1 $f0, ($v0) +/* 0B0490 7F07B960 44813000 */ mtc1 $at, $f6 +/* 0B0494 7F07B964 C4A20000 */ lwc1 $f2, ($a1) +/* 0B0498 7F07B968 3C018005 */ lui $at, %hi(D_8005504C) +/* 0B049C 7F07B96C 4600303C */ c.lt.s $f6, $f0 +/* 0B04A0 7F07B970 00000000 */ nop +/* 0B04A4 7F07B974 45000004 */ bc1f .L7F07B988 +/* 0B04A8 7F07B978 00000000 */ nop +/* 0B04AC 7F07B97C 460E1201 */ sub.s $f8, $f2, $f14 +/* 0B04B0 7F07B980 10000004 */ b .L7F07B994 +/* 0B04B4 7F07B984 E4A80000 */ swc1 $f8, ($a1) +.L7F07B988: +/* 0B04B8 7F07B988 C424504C */ lwc1 $f4, %lo(D_8005504C)($at) +/* 0B04BC 7F07B98C 46041280 */ add.s $f10, $f2, $f4 +/* 0B04C0 7F07B990 E4AA0000 */ swc1 $f10, ($a1) +.L7F07B994: +/* 0B04C4 7F07B994 C4A60000 */ lwc1 $f6, ($a1) +/* 0B04C8 7F07B998 46060200 */ add.s $f8, $f0, $f6 +/* 0B04CC 7F07B99C E4480000 */ swc1 $f8, ($v0) +/* 0B04D0 7F07B9A0 C4440000 */ lwc1 $f4, ($v0) +/* 0B04D4 7F07B9A4 4610203C */ c.lt.s $f4, $f16 +/* 0B04D8 7F07B9A8 00000000 */ nop +/* 0B04DC 7F07B9AC 45020003 */ bc1fl .L7F07B9BC +/* 0B04E0 7F07B9B0 0067082A */ slt $at, $v1, $a3 +/* 0B04E4 7F07B9B4 E4500000 */ swc1 $f16, ($v0) +/* 0B04E8 7F07B9B8 0067082A */ slt $at, $v1, $a3 +.L7F07B9BC: +/* 0B04EC 7F07B9BC 5420FFC3 */ bnezl $at, .L7F07B8CC +/* 0B04F0 7F07B9C0 4612603C */ c.lt.s $f12, $f18 +.L7F07B9C4: +/* 0B04F4 7F07B9C4 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B04F8 7F07B9C8 8D380000 */ lw $t8, ($t1) +/* 0B04FC 7F07B9CC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B0500 7F07B9D0 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B0504 7F07B9D4 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0508 7F07B9D8 C7060148 */ lwc1 $f6, 0x148($t8) +/* 0B050C 7F07B9DC 3C018005 */ lui $at, %hi(D_80055050) +/* 0B0510 7F07B9E0 C4245050 */ lwc1 $f4, %lo(D_80055050)($at) +/* 0B0514 7F07B9E4 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0518 7F07B9E8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B051C 7F07B9EC 44813000 */ mtc1 $at, $f6 +/* 0B0520 7F07B9F0 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0524 7F07B9F4 46065303 */ div.s $f12, $f10, $f6 +/* 0B0528 7F07B9F8 0FC15FAB */ jal sinf +/* 0B052C 7F07B9FC E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0B0530 7F07BA00 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0534 7F07BA04 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B0538 7F07BA08 C4480000 */ lwc1 $f8, ($v0) +/* 0B053C 7F07BA0C 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0540 7F07BA10 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0544 7F07BA14 46080102 */ mul.s $f4, $f0, $f8 +/* 0B0548 7F07BA18 8D2E0000 */ lw $t6, ($t1) +/* 0B054C 7F07BA1C 8FA30048 */ lw $v1, 0x48($sp) +/* 0B0550 7F07BA20 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0B0554 7F07BA24 C5CA04B4 */ lwc1 $f10, 0x4b4($t6) +/* 0B0558 7F07BA28 3C018005 */ lui $at, %hi(D_80055054) +/* 0B055C 7F07BA2C 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0560 7F07BA30 E4660000 */ swc1 $f6, ($v1) +/* 0B0564 7F07BA34 C4245054 */ lwc1 $f4, %lo(D_80055054)($at) +/* 0B0568 7F07BA38 C4480000 */ lwc1 $f8, ($v0) +/* 0B056C 7F07BA3C 8D2F0000 */ lw $t7, ($t1) +/* 0B0570 7F07BA40 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0574 7F07BA44 C5E604B8 */ lwc1 $f6, 0x4b8($t7) +/* 0B0578 7F07BA48 460A3200 */ add.s $f8, $f6, $f10 +/* 0B057C 7F07BA4C 0FC15FA8 */ jal cosf +/* 0B0580 7F07BA50 E4680004 */ swc1 $f8, 4($v1) +/* 0B0584 7F07BA54 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0588 7F07BA58 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B058C 7F07BA5C C4440000 */ lwc1 $f4, ($v0) +/* 0B0590 7F07BA60 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0594 7F07BA64 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0598 7F07BA68 46040182 */ mul.s $f6, $f0, $f4 +/* 0B059C 7F07BA6C 8D390000 */ lw $t9, ($t1) +/* 0B05A0 7F07BA70 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B05A4 7F07BA74 8FA30058 */ lw $v1, 0x58($sp) +/* 0B05A8 7F07BA78 C72A04BC */ lwc1 $f10, 0x4bc($t9) +/* 0B05AC 7F07BA7C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0B05B0 7F07BA80 3C018005 */ lui $at, %hi(D_80055058) +/* 0B05B4 7F07BA84 460A3200 */ add.s $f8, $f6, $f10 +/* 0B05B8 7F07BA88 240B0001 */ li $t3, 1 +/* 0B05BC 7F07BA8C E5880008 */ swc1 $f8, 8($t4) +/* 0B05C0 7F07BA90 8D2D0000 */ lw $t5, ($t1) +/* 0B05C4 7F07BA94 C5A404B4 */ lwc1 $f4, 0x4b4($t5) +/* 0B05C8 7F07BA98 E4840000 */ swc1 $f4, ($a0) +/* 0B05CC 7F07BA9C 8D380000 */ lw $t8, ($t1) +/* 0B05D0 7F07BAA0 C70604B8 */ lwc1 $f6, 0x4b8($t8) +/* 0B05D4 7F07BAA4 E4860004 */ swc1 $f6, 4($a0) +/* 0B05D8 7F07BAA8 8D2E0000 */ lw $t6, ($t1) +/* 0B05DC 7F07BAAC C5CA04BC */ lwc1 $f10, 0x4bc($t6) +/* 0B05E0 7F07BAB0 E48A0008 */ swc1 $f10, 8($a0) +/* 0B05E4 7F07BAB4 8D2F0000 */ lw $t7, ($t1) +/* 0B05E8 7F07BAB8 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B05EC 7F07BABC 8DF900A8 */ lw $t9, 0xa8($t7) +/* 0B05F0 7F07BAC0 8F2C0014 */ lw $t4, 0x14($t9) +/* 0B05F4 7F07BAC4 ADAC0000 */ sw $t4, ($t5) +/* 0B05F8 7F07BAC8 8D380000 */ lw $t8, ($t1) +/* 0B05FC 7F07BACC C70804B4 */ lwc1 $f8, 0x4b4($t8) +/* 0B0600 7F07BAD0 E4680000 */ swc1 $f8, ($v1) +/* 0B0604 7F07BAD4 C4440000 */ lwc1 $f4, ($v0) +/* 0B0608 7F07BAD8 C4265058 */ lwc1 $f6, %lo(D_80055058)($at) +/* 0B060C 7F07BADC 8D2E0000 */ lw $t6, ($t1) +/* 0B0610 7F07BAE0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B0614 7F07BAE4 46062282 */ mul.s $f10, $f4, $f6 +/* 0B0618 7F07BAE8 C5C804B8 */ lwc1 $f8, 0x4b8($t6) +/* 0B061C 7F07BAEC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0620 7F07BAF0 44815000 */ mtc1 $at, $f10 +/* 0B0624 7F07BAF4 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0628 7F07BAF8 E4640004 */ swc1 $f4, 4($v1) +/* 0B062C 7F07BAFC 8D2F0000 */ lw $t7, ($t1) +/* 0B0630 7F07BB00 C5E604BC */ lwc1 $f6, 0x4bc($t7) +/* 0B0634 7F07BB04 E4660008 */ swc1 $f6, 8($v1) +/* 0B0638 7F07BB08 C4480000 */ lwc1 $f8, ($v0) +/* 0B063C 7F07BB0C 460A403C */ c.lt.s $f8, $f10 +/* 0B0640 7F07BB10 00000000 */ nop +/* 0B0644 7F07BB14 45020287 */ bc1fl .L7F07C534 +/* 0B0648 7F07BB18 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B064C 7F07BB1C 10000284 */ b .L7F07C530 +/* 0B0650 7F07BB20 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0654 7F07BB24 24010003 */ li $at, 3 +.L7F07BB28: +/* 0B0658 7F07BB28 144100CB */ bne $v0, $at, .L7F07BE58 +/* 0B065C 7F07BB2C 24030005 */ li $v1, 5 +/* 0B0660 7F07BB30 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0664 7F07BB34 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0668 7F07BB38 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B066C 7F07BB3C C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B0670 7F07BB40 C5440000 */ lwc1 $f4, ($t2) +/* 0B0674 7F07BB44 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0678 7F07BB48 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B067C 7F07BB4C 46122180 */ add.s $f6, $f4, $f18 +/* 0B0680 7F07BB50 8D030000 */ lw $v1, ($t0) +/* 0B0684 7F07BB54 3C048003 */ lui $a0, %hi(D_800364AC) +/* 0B0688 7F07BB58 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B068C 7F07BB5C E5460000 */ swc1 $f6, ($t2) +/* 0B0690 7F07BB60 8C8464AC */ lw $a0, %lo(D_800364AC)($a0) +/* 0B0694 7F07BB64 0003C940 */ sll $t9, $v1, 5 +/* 0B0698 7F07BB68 C5420000 */ lwc1 $f2, ($t2) +/* 0B069C 7F07BB6C 00991021 */ addu $v0, $a0, $t9 +/* 0B06A0 7F07BB70 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06A4 7F07BB74 4602003E */ c.le.s $f0, $f2 +/* 0B06A8 7F07BB78 00000000 */ nop +/* 0B06AC 7F07BB7C 45020019 */ bc1fl .L7F07BBE4 +/* 0B06B0 7F07BB80 24650001 */ addiu $a1, $v1, 1 +/* 0B06B4 7F07BB84 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BB88: +/* 0B06B8 7F07BB88 318D0001 */ andi $t5, $t4, 1 +/* 0B06BC 7F07BB8C 55A00007 */ bnezl $t5, .L7F07BBAC +/* 0B06C0 7F07BB90 E5400000 */ swc1 $f0, ($t2) +/* 0B06C4 7F07BB94 46001201 */ sub.s $f8, $f2, $f0 +/* 0B06C8 7F07BB98 24780001 */ addiu $t8, $v1, 1 +/* 0B06CC 7F07BB9C AD180000 */ sw $t8, ($t0) +/* 0B06D0 7F07BBA0 10000006 */ b .L7F07BBBC +/* 0B06D4 7F07BBA4 E5480000 */ swc1 $f8, ($t2) +/* 0B06D8 7F07BBA8 E5400000 */ swc1 $f0, ($t2) +.L7F07BBAC: +/* 0B06DC 7F07BBAC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B06E0 7F07BBB0 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06E4 7F07BBB4 1000000A */ b .L7F07BBE0 +/* 0B06E8 7F07BBB8 C5420000 */ lwc1 $f2, ($t2) +.L7F07BBBC: +/* 0B06EC 7F07BBBC 8D030000 */ lw $v1, ($t0) +/* 0B06F0 7F07BBC0 C5420000 */ lwc1 $f2, ($t2) +/* 0B06F4 7F07BBC4 00037140 */ sll $t6, $v1, 5 +/* 0B06F8 7F07BBC8 008E1021 */ addu $v0, $a0, $t6 +/* 0B06FC 7F07BBCC C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0700 7F07BBD0 4602003E */ c.le.s $f0, $f2 +/* 0B0704 7F07BBD4 00000000 */ nop +/* 0B0708 7F07BBD8 4503FFEB */ bc1tl .L7F07BB88 +/* 0B070C 7F07BBDC 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BBE0: +/* 0B0710 7F07BBE0 24650001 */ addiu $a1, $v1, 1 +.L7F07BBE4: +/* 0B0714 7F07BBE4 00057940 */ sll $t7, $a1, 5 +/* 0B0718 7F07BBE8 008F1021 */ addu $v0, $a0, $t7 +/* 0B071C 7F07BBEC 8C590044 */ lw $t9, 0x44($v0) +/* 0B0720 7F07BBF0 46020281 */ sub.s $f10, $f0, $f2 +/* 0B0724 7F07BBF4 44807000 */ mtc1 $zero, $f14 +/* 0B0728 7F07BBF8 332C0001 */ andi $t4, $t9, 1 +/* 0B072C 7F07BBFC 15800007 */ bnez $t4, .L7F07BC1C +/* 0B0730 7F07BC00 460A7400 */ add.s $f16, $f14, $f10 +.L7F07BC04: +/* 0B0734 7F07BC04 8C4D0064 */ lw $t5, 0x64($v0) +/* 0B0738 7F07BC08 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0B073C 7F07BC0C 24420020 */ addiu $v0, $v0, 0x20 +/* 0B0740 7F07BC10 31B80001 */ andi $t8, $t5, 1 +/* 0B0744 7F07BC14 1300FFFB */ beqz $t8, .L7F07BC04 +/* 0B0748 7F07BC18 46048400 */ add.s $f16, $f16, $f4 +.L7F07BC1C: +/* 0B074C 7F07BC1C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B0750 7F07BC20 44816000 */ mtc1 $at, $f12 +/* 0B0754 7F07BC24 00000000 */ nop +/* 0B0758 7F07BC28 460C803C */ c.lt.s $f16, $f12 +/* 0B075C 7F07BC2C 00000000 */ nop +/* 0B0760 7F07BC30 4500000D */ bc1f .L7F07BC68 +/* 0B0764 7F07BC34 00000000 */ nop +/* 0B0768 7F07BC38 46128180 */ add.s $f6, $f16, $f18 +/* 0B076C 7F07BC3C 4606603E */ c.le.s $f12, $f6 +/* 0B0770 7F07BC40 00000000 */ nop +/* 0B0774 7F07BC44 45000008 */ bc1f .L7F07BC68 +/* 0B0778 7F07BC48 00000000 */ nop +/* 0B077C 7F07BC4C 0FC20284 */ jal set_curplayer_fade +/* 0B0780 7F07BC50 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0784 7F07BC54 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0788 7F07BC58 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B078C 7F07BC5C 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0790 7F07BC60 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0794 7F07BC64 C7B00030 */ lwc1 $f16, 0x30($sp) +.L7F07BC68: +/* 0B0798 7F07BC68 3C0E8003 */ lui $t6, %hi(D_8003649C) +/* 0B079C 7F07BC6C 8DCE649C */ lw $t6, %lo(D_8003649C)($t6) +/* 0B07A0 7F07BC70 51C0000D */ beql $t6, $zero, .L7F07BCA8 +/* 0B07A4 7F07BC74 3C014270 */ lui $at, 0x4270 +/* 0B07A8 7F07BC78 0FC20223 */ jal check_if_fade_to_black_complete +/* 0B07AC 7F07BC7C E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B07B0 7F07BC80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B07B4 7F07BC84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B07B8 7F07BC88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B07BC 7F07BC8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B07C0 7F07BC90 240B0001 */ li $t3, 1 +/* 0B07C4 7F07BC94 10400003 */ beqz $v0, .L7F07BCA4 +/* 0B07C8 7F07BC98 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B07CC 7F07BC9C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B07D0 7F07BCA0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BCA4: +/* 0B07D4 7F07BCA4 3C014270 */ li $at, 0x42700000 # 60.000000 +.L7F07BCA8: +/* 0B07D8 7F07BCA8 44814000 */ mtc1 $at, $f8 +/* 0B07DC 7F07BCAC 3C0F8003 */ lui $t7, %hi(D_8003649C) +/* 0B07E0 7F07BCB0 4610403C */ c.lt.s $f8, $f16 +/* 0B07E4 7F07BCB4 00000000 */ nop +/* 0B07E8 7F07BCB8 45020036 */ bc1fl .L7F07BD94 +/* 0B07EC 7F07BCBC 8D040000 */ lw $a0, ($t0) +/* 0B07F0 7F07BCC0 8DEF649C */ lw $t7, %lo(D_8003649C)($t7) +/* 0B07F4 7F07BCC4 55E00033 */ bnezl $t7, .L7F07BD94 +/* 0B07F8 7F07BCC8 8D040000 */ lw $a0, ($t0) +/* 0B07FC 7F07BCCC 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0800 7F07BCD0 00000000 */ nop +/* 0B0804 7F07BCD4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0808 7F07BCD8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B080C 7F07BCDC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0810 7F07BCE0 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0814 7F07BCE4 1440002A */ bnez $v0, .L7F07BD90 +/* 0B0818 7F07BCE8 240B0001 */ li $t3, 1 +/* 0B081C 7F07BCEC 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0820 7F07BCF0 97B90042 */ lhu $t9, 0x42($sp) +/* 0B0824 7F07BCF4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0828 7F07BCF8 01806827 */ not $t5, $t4 +/* 0B082C 7F07BCFC 032DC024 */ and $t8, $t9, $t5 +/* 0B0830 7F07BD00 330EF030 */ andi $t6, $t8, 0xf030 +/* 0B0834 7F07BD04 11C00022 */ beqz $t6, .L7F07BD90 +/* 0B0838 7F07BD08 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B083C 7F07BD0C 3C018003 */ lui $at, %hi(D_8003649C) +/* 0B0840 7F07BD10 AC2B649C */ sw $t3, %lo(D_8003649C)($at) +/* 0B0844 7F07BD14 8D2F0000 */ lw $t7, ($t1) +/* 0B0848 7F07BD18 00002025 */ move $a0, $zero +/* 0B084C 7F07BD1C 00002825 */ move $a1, $zero +/* 0B0850 7F07BD20 00003025 */ move $a2, $zero +/* 0B0854 7F07BD24 0FC201EC */ jal set_rgba_tint +/* 0B0858 7F07BD28 8DE703DC */ lw $a3, 0x3dc($t7) +/* 0B085C 7F07BD2C 0FC20223 */ jal check_if_fade_to_black_complete +/* 0B0860 7F07BD30 00000000 */ nop +/* 0B0864 7F07BD34 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0868 7F07BD38 1040000C */ beqz $v0, .L7F07BD6C +/* 0B086C 7F07BD3C 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0870 7F07BD40 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0874 7F07BD44 44816000 */ mtc1 $at, $f12 +/* 0B0878 7F07BD48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B087C 7F07BD4C 44817000 */ mtc1 $at, $f14 +/* 0B0880 7F07BD50 0FC20216 */ jal fade_to_over_seconds +/* 0B0884 7F07BD54 00000000 */ nop +/* 0B0888 7F07BD58 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B088C 7F07BD5C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0890 7F07BD60 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0894 7F07BD64 1000000A */ b .L7F07BD90 +/* 0B0898 7F07BD68 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD6C: +/* 0B089C 7F07BD6C 8D2C0000 */ lw $t4, ($t1) +/* 0B08A0 7F07BD70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B08A4 7F07BD74 44817000 */ mtc1 $at, $f14 +/* 0B08A8 7F07BD78 0FC20216 */ jal fade_to_over_seconds +/* 0B08AC 7F07BD7C C58C03E0 */ lwc1 $f12, 0x3e0($t4) +/* 0B08B0 7F07BD80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08B4 7F07BD84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B08B8 7F07BD88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B08BC 7F07BD8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD90: +/* 0B08C0 7F07BD90 8D040000 */ lw $a0, ($t0) +.L7F07BD94: +/* 0B08C4 7F07BD94 8D450000 */ lw $a1, ($t2) +/* 0B08C8 7F07BD98 8FA60048 */ lw $a2, 0x48($sp) +/* 0B08CC 7F07BD9C 0FC1ECA8 */ jal sub_GAME_7F07B2A0 +/* 0B08D0 7F07BDA0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0B08D4 7F07BDA4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08D8 7F07BDA8 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B08DC 7F07BDAC 8D0D0000 */ lw $t5, ($t0) +/* 0B08E0 7F07BDB0 3C198003 */ lui $t9, %hi(D_800364AC) +/* 0B08E4 7F07BDB4 8F3964AC */ lw $t9, %lo(D_800364AC)($t9) +/* 0B08E8 7F07BDB8 000DC140 */ sll $t8, $t5, 5 +/* 0B08EC 7F07BDBC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B08F0 7F07BDC0 03387021 */ addu $t6, $t9, $t8 +/* 0B08F4 7F07BDC4 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B08F8 7F07BDC8 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B08FC 7F07BDCC 3C0C8007 */ lui $t4, %hi(ptr_0xxxpresets) +/* 0B0900 7F07BDD0 04800012 */ bltz $a0, .L7F07BE1C +/* 0B0904 7F07BDD4 00047880 */ sll $t7, $a0, 2 +/* 0B0908 7F07BDD8 01E47823 */ subu $t7, $t7, $a0 +/* 0B090C 7F07BDDC 8D8C5D18 */ lw $t4, %lo(ptr_0xxxpresets)($t4) +/* 0B0910 7F07BDE0 000F7880 */ sll $t7, $t7, 2 +/* 0B0914 7F07BDE4 01E47823 */ subu $t7, $t7, $a0 +/* 0B0918 7F07BDE8 000F7880 */ sll $t7, $t7, 2 +/* 0B091C 7F07BDEC 01EC1021 */ addu $v0, $t7, $t4 +/* 0B0920 7F07BDF0 8C4D0028 */ lw $t5, 0x28($v0) +/* 0B0924 7F07BDF4 8FB90054 */ lw $t9, 0x54($sp) +/* 0B0928 7F07BDF8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B092C 7F07BDFC AF2D0000 */ sw $t5, ($t9) +/* 0B0930 7F07BE00 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0934 7F07BE04 E46A0000 */ swc1 $f10, ($v1) +/* 0B0938 7F07BE08 C4440004 */ lwc1 $f4, 4($v0) +/* 0B093C 7F07BE0C E4640004 */ swc1 $f4, 4($v1) +/* 0B0940 7F07BE10 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0944 7F07BE14 100001C6 */ b .L7F07C530 +/* 0B0948 7F07BE18 E4660008 */ swc1 $f6, 8($v1) +.L7F07BE1C: +/* 0B094C 7F07BE1C 8D380000 */ lw $t8, ($t1) +/* 0B0950 7F07BE20 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0954 7F07BE24 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0958 7F07BE28 8F0E0488 */ lw $t6, 0x488($t8) +/* 0B095C 7F07BE2C ADEE0000 */ sw $t6, ($t7) +/* 0B0960 7F07BE30 8D2C0000 */ lw $t4, ($t1) +/* 0B0964 7F07BE34 C588048C */ lwc1 $f8, 0x48c($t4) +/* 0B0968 7F07BE38 E4680000 */ swc1 $f8, ($v1) +/* 0B096C 7F07BE3C 8D2D0000 */ lw $t5, ($t1) +/* 0B0970 7F07BE40 C5AA0490 */ lwc1 $f10, 0x490($t5) +/* 0B0974 7F07BE44 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0978 7F07BE48 8D390000 */ lw $t9, ($t1) +/* 0B097C 7F07BE4C C7240494 */ lwc1 $f4, 0x494($t9) +/* 0B0980 7F07BE50 100001B7 */ b .L7F07C530 +/* 0B0984 7F07BE54 E4640008 */ swc1 $f4, 8($v1) +.L7F07BE58: +/* 0B0988 7F07BE58 10620003 */ beq $v1, $v0, .L7F07BE68 +/* 0B098C 7F07BE5C 24010006 */ li $at, 6 +/* 0B0990 7F07BE60 5441009C */ bnel $v0, $at, .L7F07C0D4 +/* 0B0994 7F07BE64 24010007 */ li $at, 7 +.L7F07BE68: +/* 0B0998 7F07BE68 1462003F */ bne $v1, $v0, .L7F07BF68 +/* 0B099C 7F07BE6C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B09A0 7F07BE70 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B09A4 7F07BE74 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B09A8 7F07BE78 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B09AC 7F07BE7C C5460000 */ lwc1 $f6, ($t2) +/* 0B09B0 7F07BE80 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09B4 7F07BE84 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09B8 7F07BE88 46083280 */ add.s $f10, $f6, $f8 +/* 0B09BC 7F07BE8C 8D380000 */ lw $t8, ($t1) +/* 0B09C0 7F07BE90 3C014334 */ lui $at, 0x4334 +/* 0B09C4 7F07BE94 E54A0000 */ swc1 $f10, ($t2) +/* 0B09C8 7F07BE98 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0B09CC 7F07BE9C 50800015 */ beql $a0, $zero, .L7F07BEF4 +/* 0B09D0 7F07BEA0 C5460000 */ lwc1 $f6, ($t2) +/* 0B09D4 7F07BEA4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0B09D8 7F07BEA8 00000000 */ nop +/* 0B09DC 7F07BEAC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09E0 7F07BEB0 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09E4 7F07BEB4 8D2E0000 */ lw $t6, ($t1) +/* 0B09E8 7F07BEB8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B09EC 7F07BEBC 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0B09F0 7F07BEC0 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0B09F4 7F07BEC4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B09F8 7F07BEC8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09FC 7F07BECC 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0A00 7F07BED0 4604003E */ c.le.s $f0, $f4 +/* 0B0A04 7F07BED4 240B0001 */ li $t3, 1 +/* 0B0A08 7F07BED8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A0C 7F07BEDC 45000002 */ bc1f .L7F07BEE8 +/* 0B0A10 7F07BEE0 00000000 */ nop +/* 0B0A14 7F07BEE4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BEE8: +/* 0B0A18 7F07BEE8 10000009 */ b .L7F07BF10 +/* 0B0A1C 7F07BEEC 24050002 */ li $a1, 2 +/* 0B0A20 7F07BEF0 C5460000 */ lwc1 $f6, ($t2) +.L7F07BEF4: +/* 0B0A24 7F07BEF4 44814000 */ mtc1 $at, $f8 +/* 0B0A28 7F07BEF8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A2C 7F07BEFC 4606403E */ c.le.s $f8, $f6 +/* 0B0A30 7F07BF00 00000000 */ nop +/* 0B0A34 7F07BF04 45020003 */ bc1fl .L7F07BF14 +/* 0B0A38 7F07BF08 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0A3C 7F07BF0C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BF10: +/* 0B0A40 7F07BF10 97AC0046 */ lhu $t4, 0x46($sp) +.L7F07BF14: +/* 0B0A44 7F07BF14 97AF0042 */ lhu $t7, 0x42($sp) +/* 0B0A48 7F07BF18 01806827 */ not $t5, $t4 +/* 0B0A4C 7F07BF1C 01EDC824 */ and $t9, $t7, $t5 +/* 0B0A50 7F07BF20 3338F000 */ andi $t8, $t9, 0xf000 +/* 0B0A54 7F07BF24 13000036 */ beqz $t8, .L7F07C000 +/* 0B0A58 7F07BF28 00000000 */ nop +/* 0B0A5C 7F07BF2C 8D220000 */ lw $v0, ($t1) +/* 0B0A60 7F07BF30 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B0A64 7F07BF34 11C00032 */ beqz $t6, .L7F07C000 +/* 0B0A68 7F07BF38 00000000 */ nop +/* 0B0A6C 7F07BF3C 8C4C0424 */ lw $t4, 0x424($v0) +/* 0B0A70 7F07BF40 1180002F */ beqz $t4, .L7F07C000 +/* 0B0A74 7F07BF44 00000000 */ nop +/* 0B0A78 7F07BF48 8C4F0428 */ lw $t7, 0x428($v0) +/* 0B0A7C 7F07BF4C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A80 7F07BF50 11E0002B */ beqz $t7, .L7F07C000 +/* 0B0A84 7F07BF54 00000000 */ nop +/* 0B0A88 7F07BF58 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0A8C 7F07BF5C 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0A90 7F07BF60 10000027 */ b .L7F07C000 +/* 0B0A94 7F07BF64 AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07BF68: +/* 0B0A98 7F07BF68 24010006 */ li $at, 6 +/* 0B0A9C 7F07BF6C 14410024 */ bne $v0, $at, .L7F07C000 +/* 0B0AA0 7F07BF70 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0AA4 7F07BF74 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0AA8 7F07BF78 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0AAC 7F07BF7C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0AB0 7F07BF80 C54A0000 */ lwc1 $f10, ($t2) +/* 0B0AB4 7F07BF84 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0AB8 7F07BF88 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0ABC 7F07BF8C 46045180 */ add.s $f6, $f10, $f4 +/* 0B0AC0 7F07BF90 8D220000 */ lw $v0, ($t1) +/* 0B0AC4 7F07BF94 44807000 */ mtc1 $zero, $f14 +/* 0B0AC8 7F07BF98 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0ACC 7F07BF9C E5460000 */ swc1 $f6, ($t2) +/* 0B0AD0 7F07BFA0 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0B0AD4 7F07BFA4 460E403C */ c.lt.s $f8, $f14 +/* 0B0AD8 7F07BFA8 00000000 */ nop +/* 0B0ADC 7F07BFAC 45020003 */ bc1fl .L7F07BFBC +/* 0B0AE0 7F07BFB0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0AE4 7F07BFB4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0AE8 7F07BFB8 97B90046 */ lhu $t9, 0x46($sp) +.L7F07BFBC: +/* 0B0AEC 7F07BFBC 97AD0042 */ lhu $t5, 0x42($sp) +/* 0B0AF0 7F07BFC0 0320C027 */ not $t8, $t9 +/* 0B0AF4 7F07BFC4 01B87024 */ and $t6, $t5, $t8 +/* 0B0AF8 7F07BFC8 31CCF000 */ andi $t4, $t6, 0xf000 +/* 0B0AFC 7F07BFCC 1180000C */ beqz $t4, .L7F07C000 +/* 0B0B00 7F07BFD0 00000000 */ nop +/* 0B0B04 7F07BFD4 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B0B08 7F07BFD8 11E00009 */ beqz $t7, .L7F07C000 +/* 0B0B0C 7F07BFDC 00000000 */ nop +/* 0B0B10 7F07BFE0 8C590424 */ lw $t9, 0x424($v0) +/* 0B0B14 7F07BFE4 13200006 */ beqz $t9, .L7F07C000 +/* 0B0B18 7F07BFE8 00000000 */ nop +/* 0B0B1C 7F07BFEC 8C4D0428 */ lw $t5, 0x428($v0) +/* 0B0B20 7F07BFF0 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0B24 7F07BFF4 11A00002 */ beqz $t5, .L7F07C000 +/* 0B0B28 7F07BFF8 00000000 */ nop +/* 0B0B2C 7F07BFFC AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07C000: +/* 0B0B30 7F07C000 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799E8) +/* 0B0B34 7F07C004 246399E8 */ addiu $v1, %lo(flt_CODE_bss_800799E8) # addiu $v1, $v1, -0x6618 +/* 0B0B38 7F07C008 C46A0000 */ lwc1 $f10, ($v1) +/* 0B0B3C 7F07C00C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0B40 7F07C010 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0B44 7F07C014 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0B48 7F07C018 E70A0000 */ swc1 $f10, ($t8) +/* 0B0B4C 7F07C01C C4640004 */ lwc1 $f4, 4($v1) +/* 0B0B50 7F07C020 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799F4) +/* 0B0B54 7F07C024 24A599F4 */ addiu $a1, %lo(dword_CODE_bss_800799F4) # addiu $a1, $a1, -0x660c +/* 0B0B58 7F07C028 E7040004 */ swc1 $f4, 4($t8) +/* 0B0B5C 7F07C02C C4660008 */ lwc1 $f6, 8($v1) +/* 0B0B60 7F07C030 E7060008 */ swc1 $f6, 8($t8) +/* 0B0B64 7F07C034 8D220000 */ lw $v0, ($t1) +/* 0B0B68 7F07C038 8CA40000 */ lw $a0, ($a1) +/* 0B0B6C 7F07C03C 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B0B70 7F07C040 548E000C */ bnel $a0, $t6, .L7F07C074 +/* 0B0B74 7F07C044 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0B78 7F07C048 C44803C4 */ lwc1 $f8, 0x3c4($v0) +/* 0B0B7C 7F07C04C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0B80 7F07C050 E5880000 */ swc1 $f8, ($t4) +/* 0B0B84 7F07C054 8D2F0000 */ lw $t7, ($t1) +/* 0B0B88 7F07C058 C5EA03C8 */ lwc1 $f10, 0x3c8($t7) +/* 0B0B8C 7F07C05C E58A0004 */ swc1 $f10, 4($t4) +/* 0B0B90 7F07C060 8D390000 */ lw $t9, ($t1) +/* 0B0B94 7F07C064 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0B98 7F07C068 1000000A */ b .L7F07C094 +/* 0B0B9C 7F07C06C E5840008 */ swc1 $f4, 8($t4) +/* 0B0BA0 7F07C070 C4860008 */ lwc1 $f6, 8($a0) +.L7F07C074: +/* 0B0BA4 7F07C074 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0BA8 7F07C078 E5A60000 */ swc1 $f6, ($t5) +/* 0B0BAC 7F07C07C 8CB80000 */ lw $t8, ($a1) +/* 0B0BB0 7F07C080 C708000C */ lwc1 $f8, 0xc($t8) +/* 0B0BB4 7F07C084 E5A80004 */ swc1 $f8, 4($t5) +/* 0B0BB8 7F07C088 8CAE0000 */ lw $t6, ($a1) +/* 0B0BBC 7F07C08C C5CA0010 */ lwc1 $f10, 0x10($t6) +/* 0B0BC0 7F07C090 E5AA0008 */ swc1 $f10, 8($t5) +.L7F07C094: +/* 0B0BC4 7F07C094 8D2F0000 */ lw $t7, ($t1) +/* 0B0BC8 7F07C098 8FAC0054 */ lw $t4, 0x54($sp) +/* 0B0BCC 7F07C09C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0BD0 7F07C0A0 8DF90488 */ lw $t9, 0x488($t7) +/* 0B0BD4 7F07C0A4 AD990000 */ sw $t9, ($t4) +/* 0B0BD8 7F07C0A8 8D380000 */ lw $t8, ($t1) +/* 0B0BDC 7F07C0AC C704048C */ lwc1 $f4, 0x48c($t8) +/* 0B0BE0 7F07C0B0 E4640000 */ swc1 $f4, ($v1) +/* 0B0BE4 7F07C0B4 8D2E0000 */ lw $t6, ($t1) +/* 0B0BE8 7F07C0B8 C5C60490 */ lwc1 $f6, 0x490($t6) +/* 0B0BEC 7F07C0BC E4660004 */ swc1 $f6, 4($v1) +/* 0B0BF0 7F07C0C0 8D2D0000 */ lw $t5, ($t1) +/* 0B0BF4 7F07C0C4 C5A80494 */ lwc1 $f8, 0x494($t5) +/* 0B0BF8 7F07C0C8 10000119 */ b .L7F07C530 +/* 0B0BFC 7F07C0CC E4680008 */ swc1 $f8, 8($v1) +/* 0B0C00 7F07C0D0 24010007 */ li $at, 7 +.L7F07C0D4: +/* 0B0C04 7F07C0D4 14410116 */ bne $v0, $at, .L7F07C530 +/* 0B0C08 7F07C0D8 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799F8) +/* 0B0C0C 7F07C0DC 244299F8 */ addiu $v0, %lo(dword_CODE_bss_800799F8) # addiu $v0, $v0, -0x6608 +/* 0B0C10 7F07C0E0 8C440000 */ lw $a0, ($v0) +/* 0B0C14 7F07C0E4 8FAF0048 */ lw $t7, 0x48($sp) +/* 0B0C18 7F07C0E8 10800024 */ beqz $a0, .L7F07C17C +/* 0B0C1C 7F07C0EC 00000000 */ nop +/* 0B0C20 7F07C0F0 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0C24 7F07C0F4 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0C28 7F07C0F8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0C2C 7F07C0FC E5EA0000 */ swc1 $f10, ($t7) +/* 0B0C30 7F07C100 8C590000 */ lw $t9, ($v0) +/* 0B0C34 7F07C104 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0C38 7F07C108 C7240004 */ lwc1 $f4, 4($t9) +/* 0B0C3C 7F07C10C E5E40004 */ swc1 $f4, 4($t7) +/* 0B0C40 7F07C110 8C4C0000 */ lw $t4, ($v0) +/* 0B0C44 7F07C114 C5860008 */ lwc1 $f6, 8($t4) +/* 0B0C48 7F07C118 E5E60008 */ swc1 $f6, 8($t7) +/* 0B0C4C 7F07C11C 8D380000 */ lw $t8, ($t1) +/* 0B0C50 7F07C120 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B0C54 7F07C124 C70803C4 */ lwc1 $f8, 0x3c4($t8) +/* 0B0C58 7F07C128 E5C80000 */ swc1 $f8, ($t6) +/* 0B0C5C 7F07C12C 8D2D0000 */ lw $t5, ($t1) +/* 0B0C60 7F07C130 C5AA03C8 */ lwc1 $f10, 0x3c8($t5) +/* 0B0C64 7F07C134 E5CA0004 */ swc1 $f10, 4($t6) +/* 0B0C68 7F07C138 8D390000 */ lw $t9, ($t1) +/* 0B0C6C 7F07C13C C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0C70 7F07C140 E5C40008 */ swc1 $f4, 8($t6) +/* 0B0C74 7F07C144 8C4C0000 */ lw $t4, ($v0) +/* 0B0C78 7F07C148 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0C7C 7F07C14C 8D8F0028 */ lw $t7, 0x28($t4) +/* 0B0C80 7F07C150 AF0F0000 */ sw $t7, ($t8) +/* 0B0C84 7F07C154 8C4D0000 */ lw $t5, ($v0) +/* 0B0C88 7F07C158 C5A60000 */ lwc1 $f6, ($t5) +/* 0B0C8C 7F07C15C E4660000 */ swc1 $f6, ($v1) +/* 0B0C90 7F07C160 8C590000 */ lw $t9, ($v0) +/* 0B0C94 7F07C164 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0C98 7F07C168 E4680004 */ swc1 $f8, 4($v1) +/* 0B0C9C 7F07C16C 8C4E0000 */ lw $t6, ($v0) +/* 0B0CA0 7F07C170 C5CA0008 */ lwc1 $f10, 8($t6) +/* 0B0CA4 7F07C174 100000EE */ b .L7F07C530 +/* 0B0CA8 7F07C178 E46A0008 */ swc1 $f10, 8($v1) +.L7F07C17C: +/* 0B0CAC 7F07C17C 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799FC) +/* 0B0CB0 7F07C180 24A599FC */ addiu $a1, %lo(dword_CODE_bss_800799FC) # addiu $a1, $a1, -0x6604 +/* 0B0CB4 7F07C184 8CA40000 */ lw $a0, ($a1) +/* 0B0CB8 7F07C188 10800063 */ beqz $a0, .L7F07C318 +/* 0B0CBC 7F07C18C 00000000 */ nop +/* 0B0CC0 7F07C190 8C830018 */ lw $v1, 0x18($a0) +/* 0B0CC4 7F07C194 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) +/* 0B0CC8 7F07C198 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0CCC 7F07C19C 28612710 */ slti $at, $v1, 0x2710 +/* 0B0CD0 7F07C1A0 1020000A */ beqz $at, .L7F07C1CC +/* 0B0CD4 7F07C1A4 0003C100 */ sll $t8, $v1, 4 +/* 0B0CD8 7F07C1A8 00036080 */ sll $t4, $v1, 2 +/* 0B0CDC 7F07C1AC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CE0 7F07C1B0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CE4 7F07C1B4 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 0B0CE8 7F07C1B8 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0B0CEC 7F07C1BC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CF0 7F07C1C0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CF4 7F07C1C4 10000008 */ b .L7F07C1E8 +/* 0B0CF8 7F07C1C8 018F1021 */ addu $v0, $t4, $t7 +.L7F07C1CC: +/* 0B0CFC 7F07C1CC 8DAD5D1C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 0B0D00 7F07C1D0 0303C021 */ addu $t8, $t8, $v1 +/* 0B0D04 7F07C1D4 0018C080 */ sll $t8, $t8, 2 +/* 0B0D08 7F07C1D8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0D0C 7F07C1DC 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0D10 7F07C1E0 030D1021 */ addu $v0, $t8, $t5 +/* 0B0D14 7F07C1E4 00411021 */ addu $v0, $v0, $at +.L7F07C1E8: +/* 0B0D18 7F07C1E8 C4840004 */ lwc1 $f4, 4($a0) +/* 0B0D1C 7F07C1EC 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0D20 7F07C1F0 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079A18) +/* 0B0D24 7F07C1F4 E7240000 */ swc1 $f4, ($t9) +/* 0B0D28 7F07C1F8 8CAE0000 */ lw $t6, ($a1) +/* 0B0D2C 7F07C1FC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0D30 7F07C200 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0D34 7F07C204 C5C60008 */ lwc1 $f6, 8($t6) +/* 0B0D38 7F07C208 E7260004 */ swc1 $f6, 4($t9) +/* 0B0D3C 7F07C20C 8CAC0000 */ lw $t4, ($a1) +/* 0B0D40 7F07C210 C588000C */ lwc1 $f8, 0xc($t4) +/* 0B0D44 7F07C214 E7280008 */ swc1 $f8, 8($t9) +/* 0B0D48 7F07C218 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0D4C 7F07C21C 8C4F0028 */ lw $t7, 0x28($v0) +/* 0B0D50 7F07C220 AF0F0000 */ sw $t7, ($t8) +/* 0B0D54 7F07C224 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0D58 7F07C228 E46A0000 */ swc1 $f10, ($v1) +/* 0B0D5C 7F07C22C C4440004 */ lwc1 $f4, 4($v0) +/* 0B0D60 7F07C230 E4640004 */ swc1 $f4, 4($v1) +/* 0B0D64 7F07C234 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0D68 7F07C238 E4660008 */ swc1 $f6, 8($v1) +/* 0B0D6C 7F07C23C 8DAD9A18 */ lw $t5, %lo(dword_CODE_bss_80079A18)($t5) +/* 0B0D70 7F07C240 556D000D */ bnel $t3, $t5, .L7F07C278 +/* 0B0D74 7F07C244 8CB80000 */ lw $t8, ($a1) +/* 0B0D78 7F07C248 8D2E0000 */ lw $t6, ($t1) +/* 0B0D7C 7F07C24C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0D80 7F07C250 C5C803C4 */ lwc1 $f8, 0x3c4($t6) +/* 0B0D84 7F07C254 E5880000 */ swc1 $f8, ($t4) +/* 0B0D88 7F07C258 8D390000 */ lw $t9, ($t1) +/* 0B0D8C 7F07C25C C72A03C8 */ lwc1 $f10, 0x3c8($t9) +/* 0B0D90 7F07C260 E58A0004 */ swc1 $f10, 4($t4) +/* 0B0D94 7F07C264 8D2F0000 */ lw $t7, ($t1) +/* 0B0D98 7F07C268 C5E403CC */ lwc1 $f4, 0x3cc($t7) +/* 0B0D9C 7F07C26C 100000B0 */ b .L7F07C530 +/* 0B0DA0 7F07C270 E5840008 */ swc1 $f4, 8($t4) +/* 0B0DA4 7F07C274 8CB80000 */ lw $t8, ($a1) +.L7F07C278: +/* 0B0DA8 7F07C278 0FC15FA8 */ jal cosf +/* 0B0DAC 7F07C27C C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B0DB0 7F07C280 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DB4 7F07C284 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0DB8 7F07C288 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0DBC 7F07C28C 0FC15FAB */ jal sinf +/* 0B0DC0 7F07C290 C5AC0010 */ lwc1 $f12, 0x10($t5) +/* 0B0DC4 7F07C294 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B0DC8 7F07C298 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0DCC 7F07C29C 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B0DD0 7F07C2A0 46060202 */ mul.s $f8, $f0, $f6 +/* 0B0DD4 7F07C2A4 C5CA0000 */ lwc1 $f10, ($t6) +/* 0B0DD8 7F07C2A8 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799FC) +/* 0B0DDC 7F07C2AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0DE0 7F07C2B0 E7240000 */ swc1 $f4, ($t9) +/* 0B0DE4 7F07C2B4 8DEF99FC */ lw $t7, %lo(dword_CODE_bss_800799FC)($t7) +/* 0B0DE8 7F07C2B8 0FC15FAB */ jal sinf +/* 0B0DEC 7F07C2BC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0DF0 7F07C2C0 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0DF4 7F07C2C4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0DF8 7F07C2C8 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DFC 7F07C2CC C5860004 */ lwc1 $f6, 4($t4) +/* 0B0E00 7F07C2D0 46060200 */ add.s $f8, $f0, $f6 +/* 0B0E04 7F07C2D4 E7080004 */ swc1 $f8, 4($t8) +/* 0B0E08 7F07C2D8 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0E0C 7F07C2DC 0FC15FA8 */ jal cosf +/* 0B0E10 7F07C2E0 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B0E14 7F07C2E4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_800799FC) +/* 0B0E18 7F07C2E8 8DCE99FC */ lw $t6, %lo(dword_CODE_bss_800799FC)($t6) +/* 0B0E1C 7F07C2EC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0E20 7F07C2F0 0FC15FA8 */ jal cosf +/* 0B0E24 7F07C2F4 C5CC0010 */ lwc1 $f12, 0x10($t6) +/* 0B0E28 7F07C2F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0E2C 7F07C2FC 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0E30 7F07C300 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B0E34 7F07C304 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0E38 7F07C308 C72A0008 */ lwc1 $f10, 8($t9) +/* 0B0E3C 7F07C30C 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0E40 7F07C310 10000087 */ b .L7F07C530 +/* 0B0E44 7F07C314 E5E80008 */ swc1 $f8, 8($t7) +.L7F07C318: +/* 0B0E48 7F07C318 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079A14) +/* 0B0E4C 7F07C31C 8C429A14 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) +/* 0B0E50 7F07C320 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 0B0E54 7F07C324 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0E58 7F07C328 28412710 */ slti $at, $v0, 0x2710 +/* 0B0E5C 7F07C32C 1020000A */ beqz $at, .L7F07C358 +/* 0B0E60 7F07C330 00026900 */ sll $t5, $v0, 4 +/* 0B0E64 7F07C334 00026080 */ sll $t4, $v0, 2 +/* 0B0E68 7F07C338 01826023 */ subu $t4, $t4, $v0 +/* 0B0E6C 7F07C33C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E70 7F07C340 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 0B0E74 7F07C344 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0B0E78 7F07C348 01826023 */ subu $t4, $t4, $v0 +/* 0B0E7C 7F07C34C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E80 7F07C350 10000008 */ b .L7F07C374 +/* 0B0E84 7F07C354 01982021 */ addu $a0, $t4, $t8 +.L7F07C358: +/* 0B0E88 7F07C358 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 0B0E8C 7F07C35C 01A26821 */ addu $t5, $t5, $v0 +/* 0B0E90 7F07C360 000D6880 */ sll $t5, $t5, 2 +/* 0B0E94 7F07C364 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0E98 7F07C368 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0E9C 7F07C36C 01AE2021 */ addu $a0, $t5, $t6 +/* 0B0EA0 7F07C370 00812021 */ addu $a0, $a0, $at +.L7F07C374: +/* 0B0EA4 7F07C374 8C990028 */ lw $t9, 0x28($a0) +/* 0B0EA8 7F07C378 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0EAC 7F07C37C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EB0 7F07C380 ADF90000 */ sw $t9, ($t7) +/* 0B0EB4 7F07C384 C4840000 */ lwc1 $f4, ($a0) +/* 0B0EB8 7F07C388 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EBC 7F07C38C E4640000 */ swc1 $f4, ($v1) +/* 0B0EC0 7F07C390 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0EC4 7F07C394 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0EC8 7F07C398 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0ECC 7F07C39C E4660008 */ swc1 $f6, 8($v1) +/* 0B0ED0 7F07C3A0 AFA40020 */ sw $a0, 0x20($sp) +/* 0B0ED4 7F07C3A4 0FC15FA8 */ jal cosf +/* 0B0ED8 7F07C3A8 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0EDC 7F07C3AC 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0EE0 7F07C3B0 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0EE4 7F07C3B4 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0EE8 7F07C3B8 C4880000 */ lwc1 $f8, ($a0) +/* 0B0EEC 7F07C3BC 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EF0 7F07C3C0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EF4 7F07C3C4 E5880000 */ swc1 $f8, ($t4) +/* 0B0EF8 7F07C3C8 C42A9A10 */ lwc1 $f10, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0EFC 7F07C3CC C4840004 */ lwc1 $f4, 4($a0) +/* 0B0F00 7F07C3D0 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0F04 7F07C3D4 E5860004 */ swc1 $f6, 4($t4) +/* 0B0F08 7F07C3D8 0FC15FAB */ jal sinf +/* 0B0F0C 7F07C3DC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F10 7F07C3E0 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F14 7F07C3E4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0F18 7F07C3E8 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F1C 7F07C3EC C4880008 */ lwc1 $f8, 8($a0) +/* 0B0F20 7F07C3F0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F24 7F07C3F4 E7080008 */ swc1 $f8, 8($t8) +/* 0B0F28 7F07C3F8 0FC15FAB */ jal sinf +/* 0B0F2C 7F07C3FC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F30 7F07C400 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F34 7F07C404 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F38 7F07C408 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F3C 7F07C40C 0FC15FA8 */ jal cosf +/* 0B0F40 7F07C410 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0F44 7F07C414 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0F48 7F07C418 C42A9A08 */ lwc1 $f10, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0F4C 7F07C41C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0F50 7F07C420 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F54 7F07C424 8FAD0048 */ lw $t5, 0x48($sp) +/* 0B0F58 7F07C428 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B0F5C 7F07C42C C4880000 */ lwc1 $f8, ($a0) +/* 0B0F60 7F07C430 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0F64 7F07C434 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F68 7F07C438 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F6C 7F07C43C 46064100 */ add.s $f4, $f8, $f6 +/* 0B0F70 7F07C440 E5A40000 */ swc1 $f4, ($t5) +/* 0B0F74 7F07C444 C4289A10 */ lwc1 $f8, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0F78 7F07C448 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0F7C 7F07C44C 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 0B0F80 7F07C450 C4249A0C */ lwc1 $f4, %lo(flt_CODE_bss_80079A0C)($at) +/* 0B0F84 7F07C454 46085180 */ add.s $f6, $f10, $f8 +/* 0B0F88 7F07C458 46043280 */ add.s $f10, $f6, $f4 +/* 0B0F8C 7F07C45C E5AA0004 */ swc1 $f10, 4($t5) +/* 0B0F90 7F07C460 0FC15FA8 */ jal cosf +/* 0B0F94 7F07C464 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F98 7F07C468 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F9C 7F07C46C 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FA0 7F07C470 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0FA4 7F07C474 0FC15FAB */ jal sinf +/* 0B0FA8 7F07C478 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0FAC 7F07C47C 3C018005 */ lui $at, %hi(D_8005505C) +/* 0B0FB0 7F07C480 C42C505C */ lwc1 $f12, %lo(D_8005505C)($at) +/* 0B0FB4 7F07C484 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0FB8 7F07C488 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0FBC 7F07C48C C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B0FC0 7F07C490 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0FC4 7F07C494 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0FC8 7F07C498 46064102 */ mul.s $f4, $f8, $f6 +/* 0B0FCC 7F07C49C C48A0008 */ lwc1 $f10, 8($a0) +/* 0B0FD0 7F07C4A0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 0B0FD4 7F07C4A4 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0FD8 7F07C4A8 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FDC 7F07C4AC 44807000 */ mtc1 $zero, $f14 +/* 0B0FE0 7F07C4B0 46045200 */ add.s $f8, $f10, $f4 +/* 0B0FE4 7F07C4B4 E5C80008 */ swc1 $f8, 8($t6) +/* 0B0FE8 7F07C4B8 C4269A04 */ lwc1 $f6, %lo(flt_CODE_bss_80079A04)($at) +/* 0B0FEC 7F07C4BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0FF0 7F07C4C0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B0FF4 7F07C4C4 C4480000 */ lwc1 $f8, ($v0) +/* 0B0FF8 7F07C4C8 460A3102 */ mul.s $f4, $f6, $f10 +/* 0B0FFC 7F07C4CC 46044180 */ add.s $f6, $f8, $f4 +/* 0B1000 7F07C4D0 E4460000 */ swc1 $f6, ($v0) +/* 0B1004 7F07C4D4 C4420000 */ lwc1 $f2, ($v0) +/* 0B1008 7F07C4D8 4602603E */ c.le.s $f12, $f2 +/* 0B100C 7F07C4DC 00000000 */ nop +/* 0B1010 7F07C4E0 45020009 */ bc1fl .L7F07C508 +/* 0B1014 7F07C4E4 460E103C */ c.lt.s $f2, $f14 +/* 0B1018 7F07C4E8 460C1281 */ sub.s $f10, $f2, $f12 +.L7F07C4EC: +/* 0B101C 7F07C4EC E44A0000 */ swc1 $f10, ($v0) +/* 0B1020 7F07C4F0 C4420000 */ lwc1 $f2, ($v0) +/* 0B1024 7F07C4F4 4602603E */ c.le.s $f12, $f2 +/* 0B1028 7F07C4F8 00000000 */ nop +/* 0B102C 7F07C4FC 4503FFFB */ bc1tl .L7F07C4EC +/* 0B1030 7F07C500 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B1034 7F07C504 460E103C */ c.lt.s $f2, $f14 +.L7F07C508: +/* 0B1038 7F07C508 00000000 */ nop +/* 0B103C 7F07C50C 45020009 */ bc1fl .L7F07C534 +/* 0B1040 7F07C510 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1044 7F07C514 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C518: +/* 0B1048 7F07C518 E4480000 */ swc1 $f8, ($v0) +/* 0B104C 7F07C51C C4420000 */ lwc1 $f2, ($v0) +/* 0B1050 7F07C520 460E103C */ c.lt.s $f2, $f14 +/* 0B1054 7F07C524 00000000 */ nop +/* 0B1058 7F07C528 4503FFFB */ bc1tl .L7F07C518 +/* 0B105C 7F07C52C 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C530: +/* 0B1060 7F07C530 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07C534: +/* 0B1064 7F07C534 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B1068 7F07C538 03E00008 */ jr $ra +/* 0B106C 7F07C53C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80055044 +.word 0x43338000 /*179.5*/ +glabel D_80055048 +.word 0x3dcccccd /*0.1*/ +glabel D_8005504C +.word 0x3c75c28f /*0.015*/ +glabel D_80055050 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055054 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80055058 +.word 0x3da3d70a /*0.079999998*/ +glabel D_8005505C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07B56C +/* 0B06FC 7F07BB8C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B0700 7F07BB90 3C028003 */ lui $v0, %hi(cameramode) # $v0, 0x8003 +/* 0B0704 7F07BB94 8C4264D4 */ lw $v0, %lo(cameramode)($v0) +/* 0B0708 7F07BB98 240B0001 */ li $t3, 1 +/* 0B070C 7F07BB9C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B0710 7F07BBA0 AFA40040 */ sw $a0, 0x40($sp) +/* 0B0714 7F07BBA4 AFA50044 */ sw $a1, 0x44($sp) +/* 0B0718 7F07BBA8 AFA60048 */ sw $a2, 0x48($sp) +/* 0B071C 7F07BBAC 11620004 */ beq $t3, $v0, .Ljp7F07BBC0 +/* 0B0720 7F07BBB0 AFA7004C */ sw $a3, 0x4c($sp) +/* 0B0724 7F07BBB4 24050002 */ li $a1, 2 +/* 0B0728 7F07BBB8 14A200B0 */ bne $a1, $v0, .Ljp7F07BE7C +/* 0B072C 7F07BBBC 24010009 */ li $at, 9 +.Ljp7F07BBC0: +/* 0B0730 7F07BBC0 1562005A */ bne $t3, $v0, .Ljp7F07BD2C +/* 0B0734 7F07BBC4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0738 7F07BBC8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B073C 7F07BBCC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0740 7F07BBD0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0B0744 7F07BBD4 44810000 */ mtc1 $at, $f0 +/* 0B0748 7F07BBD8 C5420000 */ lwc1 $f2, ($t2) +/* 0B074C 7F07BBDC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0750 7F07BBE0 4600103C */ c.lt.s $f2, $f0 +/* 0B0754 7F07BBE4 00000000 */ nop +/* 0B0758 7F07BBE8 45000013 */ bc1f .Ljp7F07BC38 +/* 0B075C 7F07BBEC 00000000 */ nop +/* 0B0760 7F07BBF0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0764 7F07BBF4 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) # $t6, 0x8003 +/* 0B0768 7F07BBF8 3C058004 */ lui $a1, %hi(ptrSecondFontTableLarge) # $a1, 0x8004 +/* 0B076C 7F07BBFC 46041180 */ add.s $f6, $f2, $f4 +/* 0B0770 7F07BC00 3C068004 */ lui $a2, %hi(ptrFirstFontTableLarge) # $a2, 0x8004 +/* 0B0774 7F07BC04 4606003E */ c.le.s $f0, $f6 +/* 0B0778 7F07BC08 00000000 */ nop +/* 0B077C 7F07BC0C 4500000A */ bc1f .Ljp7F07BC38 +/* 0B0780 7F07BC10 00000000 */ nop +/* 0B0784 7F07BC14 8DCE6500 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0B0788 7F07BC18 8CA50EE8 */ lw $a1, %lo(ptrSecondFontTableLarge)($a1) +/* 0B078C 7F07BC1C 8CC60EE4 */ lw $a2, %lo(ptrFirstFontTableLarge)($a2) +/* 0B0790 7F07BC20 0FC22AB3 */ jal display_string_in_lower_left_corner +/* 0B0794 7F07BC24 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B0798 7F07BC28 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B079C 7F07BC2C 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B07A0 7F07BC30 C5420000 */ lwc1 $f2, ($t2) +/* 0B07A4 7F07BC34 240B0001 */ li $t3, 1 +.Ljp7F07BC38: +/* 0B07A8 7F07BC38 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B07AC 7F07BC3C 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B07B0 7F07BC40 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B07B4 7F07BC44 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B07B8 7F07BC48 8DE40020 */ lw $a0, 0x20($t7) +/* 0B07BC 7F07BC4C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B07C0 7F07BC50 46081000 */ add.s $f0, $f2, $f8 +/* 0B07C4 7F07BC54 50800021 */ beql $a0, $zero, .Ljp7F07BCDC +/* 0B07C8 7F07BC58 44816000 */ mtc1 $at, $f12 +/* 0B07CC 7F07BC5C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B07D0 7F07BC60 44816000 */ mtc1 $at, $f12 +/* 0B07D4 7F07BC64 00000000 */ nop +/* 0B07D8 7F07BC68 460C103C */ c.lt.s $f2, $f12 +/* 0B07DC 7F07BC6C 00000000 */ nop +/* 0B07E0 7F07BC70 45020011 */ bc1fl .Ljp7F07BCB8 +/* 0B07E4 7F07BC74 3C0143F0 */ lui $at, 0x43f0 +/* 0B07E8 7F07BC78 4600603E */ c.le.s $f12, $f0 +/* 0B07EC 7F07BC7C 3C058004 */ lui $a1, %hi(ptrSecondFontTableLarge) # $a1, 0x8004 +/* 0B07F0 7F07BC80 3C068004 */ lui $a2, %hi(ptrFirstFontTableLarge) # $a2, 0x8004 +/* 0B07F4 7F07BC84 4502000C */ bc1fl .Ljp7F07BCB8 +/* 0B07F8 7F07BC88 3C0143F0 */ lui $at, 0x43f0 +/* 0B07FC 7F07BC8C 8CA50EE8 */ lw $a1, %lo(ptrSecondFontTableLarge)($a1) +/* 0B0800 7F07BC90 0FC22AB3 */ jal display_string_in_lower_left_corner +/* 0B0804 7F07BC94 8CC60EE4 */ lw $a2, %lo(ptrFirstFontTableLarge)($a2) +/* 0B0808 7F07BC98 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B080C 7F07BC9C 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0810 7F07BCA0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0814 7F07BCA4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B0818 7F07BCA8 C5420000 */ lwc1 $f2, ($t2) +/* 0B081C 7F07BCAC 240B0001 */ li $t3, 1 +/* 0B0820 7F07BCB0 460A1000 */ add.s $f0, $f2, $f10 +/* 0B0824 7F07BCB4 3C0143F0 */ li $at, 0x43F00000 # 480.000000 +.Ljp7F07BCB8: +/* 0B0828 7F07BCB8 44812000 */ mtc1 $at, $f4 +/* 0B082C 7F07BCBC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0830 7F07BCC0 4602203C */ c.lt.s $f4, $f2 +/* 0B0834 7F07BCC4 00000000 */ nop +/* 0B0838 7F07BCC8 4500000A */ bc1f .Ljp7F07BCF4 +/* 0B083C 7F07BCCC 00000000 */ nop +/* 0B0840 7F07BCD0 10000008 */ b .Ljp7F07BCF4 +/* 0B0844 7F07BCD4 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0848 7F07BCD8 44816000 */ mtc1 $at, $f12 +.Ljp7F07BCDC: +/* 0B084C 7F07BCDC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0850 7F07BCE0 4602603C */ c.lt.s $f12, $f2 +/* 0B0854 7F07BCE4 00000000 */ nop +/* 0B0858 7F07BCE8 45000002 */ bc1f .Ljp7F07BCF4 +/* 0B085C 7F07BCEC 00000000 */ nop +/* 0B0860 7F07BCF0 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BCF4: +/* 0B0864 7F07BCF4 0FC3021B */ jal get_controls_locked_flag +/* 0B0868 7F07BCF8 E5400000 */ swc1 $f0, ($t2) +/* 0B086C 7F07BCFC 14400015 */ bnez $v0, .Ljp7F07BD54 +/* 0B0870 7F07BD00 240B0001 */ li $t3, 1 +/* 0B0874 7F07BD04 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0878 7F07BD08 97B80042 */ lhu $t8, 0x42($sp) +/* 0B087C 7F07BD0C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0880 7F07BD10 03206027 */ not $t4, $t9 +/* 0B0884 7F07BD14 030C6824 */ and $t5, $t8, $t4 +/* 0B0888 7F07BD18 31AEF030 */ andi $t6, $t5, 0xf030 +/* 0B088C 7F07BD1C 11C0000D */ beqz $t6, .Ljp7F07BD54 +/* 0B0890 7F07BD20 00000000 */ nop +/* 0B0894 7F07BD24 1000000B */ b .Ljp7F07BD54 +/* 0B0898 7F07BD28 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BD2C: +/* 0B089C 7F07BD2C 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B08A0 7F07BD30 8D2F0000 */ lw $t7, ($t1) +/* 0B08A4 7F07BD34 44807000 */ mtc1 $zero, $f14 +/* 0B08A8 7F07BD38 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B08AC 7F07BD3C C5E603E4 */ lwc1 $f6, 0x3e4($t7) +/* 0B08B0 7F07BD40 460E303C */ c.lt.s $f6, $f14 +/* 0B08B4 7F07BD44 00000000 */ nop +/* 0B08B8 7F07BD48 45000002 */ bc1f .Ljp7F07BD54 +/* 0B08BC 7F07BD4C 00000000 */ nop +/* 0B08C0 7F07BD50 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BD54: +/* 0B08C4 7F07BD54 3C028003 */ lui $v0, %hi(ptr_random06cam_entry) # $v0, 0x8003 +/* 0B08C8 7F07BD58 24426500 */ addiu $v0, %lo(ptr_random06cam_entry) # addiu $v0, $v0, 0x6500 +/* 0B08CC 7F07BD5C 8C590000 */ lw $t9, ($v0) +/* 0B08D0 7F07BD60 8FB80048 */ lw $t8, 0x48($sp) +/* 0B08D4 7F07BD64 C7280004 */ lwc1 $f8, 4($t9) +/* 0B08D8 7F07BD68 E7080000 */ swc1 $f8, ($t8) +/* 0B08DC 7F07BD6C 8C4C0000 */ lw $t4, ($v0) +/* 0B08E0 7F07BD70 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B08E4 7F07BD74 E70A0004 */ swc1 $f10, 4($t8) +/* 0B08E8 7F07BD78 8C4D0000 */ lw $t5, ($v0) +/* 0B08EC 7F07BD7C C5A4000C */ lwc1 $f4, 0xc($t5) +/* 0B08F0 7F07BD80 E7040008 */ swc1 $f4, 8($t8) +/* 0B08F4 7F07BD84 8C4E0000 */ lw $t6, ($v0) +/* 0B08F8 7F07BD88 0FC160F0 */ jal cosf +/* 0B08FC 7F07BD8C C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 0B0900 7F07BD90 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B0904 7F07BD94 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B0908 7F07BD98 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B090C 7F07BD9C 0FC160F3 */ jal sinf +/* 0B0910 7F07BDA0 C5EC0010 */ lwc1 $f12, 0x10($t7) +/* 0B0914 7F07BDA4 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B0918 7F07BDA8 8FB90048 */ lw $t9, 0x48($sp) +/* 0B091C 7F07BDAC 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0920 7F07BDB0 46060202 */ mul.s $f8, $f0, $f6 +/* 0B0924 7F07BDB4 C72A0000 */ lwc1 $f10, ($t9) +/* 0B0928 7F07BDB8 3C0D8003 */ lui $t5, %hi(ptr_random06cam_entry) # $t5, 0x8003 +/* 0B092C 7F07BDBC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0930 7F07BDC0 E5840000 */ swc1 $f4, ($t4) +/* 0B0934 7F07BDC4 8DAD6500 */ lw $t5, %lo(ptr_random06cam_entry)($t5) +/* 0B0938 7F07BDC8 0FC160F3 */ jal sinf +/* 0B093C 7F07BDCC C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B0940 7F07BDD0 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0944 7F07BDD4 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B0948 7F07BDD8 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B094C 7F07BDDC C7060004 */ lwc1 $f6, 4($t8) +/* 0B0950 7F07BDE0 46060200 */ add.s $f8, $f0, $f6 +/* 0B0954 7F07BDE4 E5C80004 */ swc1 $f8, 4($t6) +/* 0B0958 7F07BDE8 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B095C 7F07BDEC 0FC160F0 */ jal cosf +/* 0B0960 7F07BDF0 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0964 7F07BDF4 3C198003 */ lui $t9, %hi(ptr_random06cam_entry) # $t9, 0x8003 +/* 0B0968 7F07BDF8 8F396500 */ lw $t9, %lo(ptr_random06cam_entry)($t9) +/* 0B096C 7F07BDFC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0970 7F07BE00 0FC160F0 */ jal cosf +/* 0B0974 7F07BE04 C72C0010 */ lwc1 $f12, 0x10($t9) +/* 0B0978 7F07BE08 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B097C 7F07BE0C 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0980 7F07BE10 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0984 7F07BE14 46040182 */ mul.s $f6, $f0, $f4 +/* 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(ptr_0xxxpresets) # $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(ptr_0xxxpresets)($t9) +/* 0B09A8 7F07BE38 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B09AC 7F07BE3C 8F0E0018 */ lw $t6, 0x18($t8) +/* 0B09B0 7F07BE40 000E7880 */ sll $t7, $t6, 2 +/* 0B09B4 7F07BE44 01EE7823 */ subu $t7, $t7, $t6 +/* 0B09B8 7F07BE48 000F7880 */ sll $t7, $t7, 2 +/* 0B09BC 7F07BE4C 01EE7823 */ subu $t7, $t7, $t6 +/* 0B09C0 7F07BE50 000F7880 */ sll $t7, $t7, 2 +/* 0B09C4 7F07BE54 01F91021 */ addu $v0, $t7, $t9 +/* 0B09C8 7F07BE58 8C4C0028 */ lw $t4, 0x28($v0) +/* 0B09CC 7F07BE5C ADAC0000 */ sw $t4, ($t5) +/* 0B09D0 7F07BE60 C4440000 */ lwc1 $f4, ($v0) +/* 0B09D4 7F07BE64 E4640000 */ swc1 $f4, ($v1) +/* 0B09D8 7F07BE68 C44A0004 */ lwc1 $f10, 4($v0) +/* 0B09DC 7F07BE6C E46A0004 */ swc1 $f10, 4($v1) +/* 0B09E0 7F07BE70 C4460008 */ lwc1 $f6, 8($v0) +/* 0B09E4 7F07BE74 10000337 */ b .Ljp7F07CB54 +/* 0B09E8 7F07BE78 E4660008 */ swc1 $f6, 8($v1) +.Ljp7F07BE7C: +/* 0B09EC 7F07BE7C 544100B3 */ bnel $v0, $at, .Ljp7F07C14C +/* 0B09F0 7F07BE80 24010003 */ li $at, 3 +/* 0B09F4 7F07BE84 0FC26F3C */ jal get_cur_playernum +/* 0B09F8 7F07BE88 00000000 */ nop +/* 0B09FC 7F07BE8C 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 0B0A00 7F07BE90 00402025 */ move $a0, $v0 +/* 0B0A04 7F07BE94 14400054 */ bnez $v0, .Ljp7F07BFE8 +/* 0B0A08 7F07BE98 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0A0C 7F07BE9C 3C078005 */ lui $a3, %hi(clock_timer) # $a3, 0x8005 +/* 0B0A10 7F07BEA0 8CE783A4 */ lw $a3, %lo(clock_timer)($a3) +/* 0B0A14 7F07BEA4 00001825 */ move $v1, $zero +/* 0B0A18 7F07BEA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) # $at, 0x8008 +/* 0B0A1C 7F07BEAC 18E0004E */ blez $a3, .Ljp7F07BFE8 +/* 0B0A20 7F07BEB0 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E04) # $a2, 0x8008 +/* 0B0A24 7F07BEB4 C42C9E78 */ lwc1 $f12, %lo(flt_CODE_bss_80079E08)($at) +/* 0B0A28 7F07BEB8 3C018005 */ lui $at, %hi(D_80055044) # $at, 0x8005 +/* 0B0A2C 7F07BEBC C4325074 */ lwc1 $f18, %lo(D_80055044)($at) +/* 0B0A30 7F07BEC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0A34 7F07BEC4 44818000 */ mtc1 $at, $f16 +/* 0B0A38 7F07BEC8 3C018005 */ lui $at, %hi(D_80055048) +/* 0B0A3C 7F07BECC 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079E0C) # $a1, 0x8008 +/* 0B0A40 7F07BED0 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) # $a0, 0x8008 +/* 0B0A44 7F07BED4 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0A48 7F07BED8 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0A4C 7F07BEDC 24849E78 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x6188 +/* 0B0A50 7F07BEE0 24A59E7C */ addiu $a1, %lo(flt_CODE_bss_80079E0C) # addiu $a1, $a1, -0x6184 +/* 0B0A54 7F07BEE4 C42E5078 */ lwc1 $f14, %lo(D_80055048)($at) +/* 0B0A58 7F07BEE8 24C69E74 */ addiu $a2, %lo(flt_CODE_bss_80079E04) # addiu $a2, $a2, -0x618c +/* 0B0A5C 7F07BEEC 4612603C */ c.lt.s $f12, $f18 +.Ljp7F07BEF0: +/* 0B0A60 7F07BEF0 24630001 */ addiu $v1, $v1, 1 +/* 0B0A64 7F07BEF4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0A68 7F07BEF8 45020017 */ bc1fl .Ljp7F07BF58 +/* 0B0A6C 7F07BEFC 44812000 */ mtc1 $at, $f4 +/* 0B0A70 7F07BF00 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B0A74 7F07BF04 44814000 */ mtc1 $at, $f8 +/* 0B0A78 7F07BF08 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0B0A7C 7F07BF0C 44815000 */ mtc1 $at, $f10 +/* 0B0A80 7F07BF10 4608603C */ c.lt.s $f12, $f8 +/* 0B0A84 7F07BF14 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0A88 7F07BF18 45020005 */ bc1fl .Ljp7F07BF30 +/* 0B0A8C 7F07BF1C 460C503C */ c.lt.s $f10, $f12 +/* 0B0A90 7F07BF20 460E0100 */ add.s $f4, $f0, $f14 +/* 0B0A94 7F07BF24 E4C40000 */ swc1 $f4, ($a2) +/* 0B0A98 7F07BF28 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0A9C 7F07BF2C 460C503C */ c.lt.s $f10, $f12 +.Ljp7F07BF30: +/* 0B0AA0 7F07BF30 00000000 */ nop +/* 0B0AA4 7F07BF34 45020005 */ bc1fl .Ljp7F07BF4C +/* 0B0AA8 7F07BF38 46006200 */ add.s $f8, $f12, $f0 +/* 0B0AAC 7F07BF3C 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B0AB0 7F07BF40 E4C60000 */ swc1 $f6, ($a2) +/* 0B0AB4 7F07BF44 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0AB8 7F07BF48 46006200 */ add.s $f8, $f12, $f0 +.Ljp7F07BF4C: +/* 0B0ABC 7F07BF4C 10000004 */ b .Ljp7F07BF60 +/* 0B0AC0 7F07BF50 E4880000 */ swc1 $f8, ($a0) +/* 0B0AC4 7F07BF54 44812000 */ mtc1 $at, $f4 +.Ljp7F07BF58: +/* 0B0AC8 7F07BF58 00000000 */ nop +/* 0B0ACC 7F07BF5C E4840000 */ swc1 $f4, ($a0) +.Ljp7F07BF60: +/* 0B0AD0 7F07BF60 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B0AD4 7F07BF64 44815000 */ mtc1 $at, $f10 +/* 0B0AD8 7F07BF68 C48C0000 */ lwc1 $f12, ($a0) +/* 0B0ADC 7F07BF6C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0AE0 7F07BF70 460C503C */ c.lt.s $f10, $f12 +/* 0B0AE4 7F07BF74 00000000 */ nop +/* 0B0AE8 7F07BF78 45020019 */ bc1fl .Ljp7F07BFE0 +/* 0B0AEC 7F07BF7C 0067082A */ slt $at, $v1, $a3 +/* 0B0AF0 7F07BF80 C4400000 */ lwc1 $f0, ($v0) +/* 0B0AF4 7F07BF84 44813000 */ mtc1 $at, $f6 +/* 0B0AF8 7F07BF88 C4A20000 */ lwc1 $f2, ($a1) +/* 0B0AFC 7F07BF8C 3C018005 */ lui $at, %hi(D_8005504C) # $at, 0x8005 +/* 0B0B00 7F07BF90 4600303C */ c.lt.s $f6, $f0 +/* 0B0B04 7F07BF94 00000000 */ nop +/* 0B0B08 7F07BF98 45000004 */ bc1f .Ljp7F07BFAC +/* 0B0B0C 7F07BF9C 00000000 */ nop +/* 0B0B10 7F07BFA0 460E1201 */ sub.s $f8, $f2, $f14 +/* 0B0B14 7F07BFA4 10000004 */ b .Ljp7F07BFB8 +/* 0B0B18 7F07BFA8 E4A80000 */ swc1 $f8, ($a1) +.Ljp7F07BFAC: +/* 0B0B1C 7F07BFAC C424507C */ lwc1 $f4, %lo(D_8005504C)($at) +/* 0B0B20 7F07BFB0 46041280 */ add.s $f10, $f2, $f4 +/* 0B0B24 7F07BFB4 E4AA0000 */ swc1 $f10, ($a1) +.Ljp7F07BFB8: +/* 0B0B28 7F07BFB8 C4A60000 */ lwc1 $f6, ($a1) +/* 0B0B2C 7F07BFBC 46060200 */ add.s $f8, $f0, $f6 +/* 0B0B30 7F07BFC0 E4480000 */ swc1 $f8, ($v0) +/* 0B0B34 7F07BFC4 C4440000 */ lwc1 $f4, ($v0) +/* 0B0B38 7F07BFC8 4610203C */ c.lt.s $f4, $f16 +/* 0B0B3C 7F07BFCC 00000000 */ nop +/* 0B0B40 7F07BFD0 45020003 */ bc1fl .Ljp7F07BFE0 +/* 0B0B44 7F07BFD4 0067082A */ slt $at, $v1, $a3 +/* 0B0B48 7F07BFD8 E4500000 */ swc1 $f16, ($v0) +/* 0B0B4C 7F07BFDC 0067082A */ slt $at, $v1, $a3 +.Ljp7F07BFE0: +/* 0B0B50 7F07BFE0 5420FFC3 */ bnezl $at, .Ljp7F07BEF0 +/* 0B0B54 7F07BFE4 4612603C */ c.lt.s $f12, $f18 +.Ljp7F07BFE8: +/* 0B0B58 7F07BFE8 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0B5C 7F07BFEC 8D380000 */ lw $t8, ($t1) +/* 0B0B60 7F07BFF0 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) # $a0, 0x8008 +/* 0B0B64 7F07BFF4 24849E78 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x6188 +/* 0B0B68 7F07BFF8 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0B6C 7F07BFFC C7060148 */ lwc1 $f6, 0x148($t8) +/* 0B0B70 7F07C000 3C018005 */ lui $at, %hi(D_80055050) # $at, 0x8005 +/* 0B0B74 7F07C004 C4245080 */ lwc1 $f4, %lo(D_80055050)($at) +/* 0B0B78 7F07C008 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0B7C 7F07C00C 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0B80 7F07C010 44813000 */ mtc1 $at, $f6 +/* 0B0B84 7F07C014 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0B88 7F07C018 46065303 */ div.s $f12, $f10, $f6 +/* 0B0B8C 7F07C01C 0FC160F3 */ jal sinf +/* 0B0B90 7F07C020 E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0B0B94 7F07C024 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0B98 7F07C028 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0B9C 7F07C02C C4480000 */ lwc1 $f8, ($v0) +/* 0B0BA0 7F07C030 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0BA4 7F07C034 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0BA8 7F07C038 46080102 */ mul.s $f4, $f0, $f8 +/* 0B0BAC 7F07C03C 8D2E0000 */ lw $t6, ($t1) +/* 0B0BB0 7F07C040 8FA30048 */ lw $v1, 0x48($sp) +/* 0B0BB4 7F07C044 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0B0BB8 7F07C048 C5CA04B4 */ lwc1 $f10, 0x4b4($t6) +/* 0B0BBC 7F07C04C 3C018005 */ lui $at, %hi(D_80055054) # $at, 0x8005 +/* 0B0BC0 7F07C050 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0BC4 7F07C054 E4660000 */ swc1 $f6, ($v1) +/* 0B0BC8 7F07C058 C4245084 */ lwc1 $f4, %lo(D_80055054)($at) +/* 0B0BCC 7F07C05C C4480000 */ lwc1 $f8, ($v0) +/* 0B0BD0 7F07C060 8D2F0000 */ lw $t7, ($t1) +/* 0B0BD4 7F07C064 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0BD8 7F07C068 C5E604B8 */ lwc1 $f6, 0x4b8($t7) +/* 0B0BDC 7F07C06C 460A3200 */ add.s $f8, $f6, $f10 +/* 0B0BE0 7F07C070 0FC160F0 */ jal cosf +/* 0B0BE4 7F07C074 E4680004 */ swc1 $f8, 4($v1) +/* 0B0BE8 7F07C078 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0BEC 7F07C07C 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0BF0 7F07C080 C4440000 */ lwc1 $f4, ($v0) +/* 0B0BF4 7F07C084 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0BF8 7F07C088 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0BFC 7F07C08C 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0C00 7F07C090 8D390000 */ lw $t9, ($t1) +/* 0B0C04 7F07C094 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0C08 7F07C098 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0C0C 7F07C09C C72A04BC */ lwc1 $f10, 0x4bc($t9) +/* 0B0C10 7F07C0A0 8FA4004C */ lw $a0, 0x4c($sp) +/* 0B0C14 7F07C0A4 3C018005 */ lui $at, %hi(D_80055058) # $at, 0x8005 +/* 0B0C18 7F07C0A8 460A3200 */ add.s $f8, $f6, $f10 +/* 0B0C1C 7F07C0AC 240B0001 */ li $t3, 1 +/* 0B0C20 7F07C0B0 E5880008 */ swc1 $f8, 8($t4) +/* 0B0C24 7F07C0B4 8D2D0000 */ lw $t5, ($t1) +/* 0B0C28 7F07C0B8 C5A404B4 */ lwc1 $f4, 0x4b4($t5) +/* 0B0C2C 7F07C0BC E4840000 */ swc1 $f4, ($a0) +/* 0B0C30 7F07C0C0 8D380000 */ lw $t8, ($t1) +/* 0B0C34 7F07C0C4 C70604B8 */ lwc1 $f6, 0x4b8($t8) +/* 0B0C38 7F07C0C8 E4860004 */ swc1 $f6, 4($a0) +/* 0B0C3C 7F07C0CC 8D2E0000 */ lw $t6, ($t1) +/* 0B0C40 7F07C0D0 C5CA04BC */ lwc1 $f10, 0x4bc($t6) +/* 0B0C44 7F07C0D4 E48A0008 */ swc1 $f10, 8($a0) +/* 0B0C48 7F07C0D8 8D2F0000 */ lw $t7, ($t1) +/* 0B0C4C 7F07C0DC 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B0C50 7F07C0E0 8DF900A8 */ lw $t9, 0xa8($t7) +/* 0B0C54 7F07C0E4 8F2C0014 */ lw $t4, 0x14($t9) +/* 0B0C58 7F07C0E8 ADAC0000 */ sw $t4, ($t5) +/* 0B0C5C 7F07C0EC 8D380000 */ lw $t8, ($t1) +/* 0B0C60 7F07C0F0 C70804B4 */ lwc1 $f8, 0x4b4($t8) +/* 0B0C64 7F07C0F4 E4680000 */ swc1 $f8, ($v1) +/* 0B0C68 7F07C0F8 C4440000 */ lwc1 $f4, ($v0) +/* 0B0C6C 7F07C0FC C4265088 */ lwc1 $f6, %lo(D_80055058)($at) +/* 0B0C70 7F07C100 8D2E0000 */ lw $t6, ($t1) +/* 0B0C74 7F07C104 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B0C78 7F07C108 46062282 */ mul.s $f10, $f4, $f6 +/* 0B0C7C 7F07C10C C5C804B8 */ lwc1 $f8, 0x4b8($t6) +/* 0B0C80 7F07C110 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0C84 7F07C114 44815000 */ mtc1 $at, $f10 +/* 0B0C88 7F07C118 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0C8C 7F07C11C E4640004 */ swc1 $f4, 4($v1) +/* 0B0C90 7F07C120 8D2F0000 */ lw $t7, ($t1) +/* 0B0C94 7F07C124 C5E604BC */ lwc1 $f6, 0x4bc($t7) +/* 0B0C98 7F07C128 E4660008 */ swc1 $f6, 8($v1) +/* 0B0C9C 7F07C12C C4480000 */ lwc1 $f8, ($v0) +/* 0B0CA0 7F07C130 460A403C */ c.lt.s $f8, $f10 +/* 0B0CA4 7F07C134 00000000 */ nop +/* 0B0CA8 7F07C138 45020287 */ bc1fl .Ljp7F07CB58 +/* 0B0CAC 7F07C13C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B0CB0 7F07C140 10000284 */ b .Ljp7F07CB54 +/* 0B0CB4 7F07C144 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0CB8 7F07C148 24010003 */ li $at, 3 +.Ljp7F07C14C: +/* 0B0CBC 7F07C14C 144100CB */ bne $v0, $at, .Ljp7F07C47C +/* 0B0CC0 7F07C150 24030005 */ li $v1, 5 +/* 0B0CC4 7F07C154 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0CC8 7F07C158 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0CCC 7F07C15C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0CD0 7F07C160 C43283B4 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B0CD4 7F07C164 C5440000 */ lwc1 $f4, ($t2) +/* 0B0CD8 7F07C168 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0CDC 7F07C16C 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0CE0 7F07C170 46122180 */ add.s $f6, $f4, $f18 +/* 0B0CE4 7F07C174 8D030000 */ lw $v1, ($t0) +/* 0B0CE8 7F07C178 3C048003 */ lui $a0, %hi(D_800364AC) # $a0, 0x8003 +/* 0B0CEC 7F07C17C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0CF0 7F07C180 E5460000 */ swc1 $f6, ($t2) +/* 0B0CF4 7F07C184 8C8464EC */ lw $a0, %lo(D_800364AC)($a0) +/* 0B0CF8 7F07C188 0003C940 */ sll $t9, $v1, 5 +/* 0B0CFC 7F07C18C C5420000 */ lwc1 $f2, ($t2) +/* 0B0D00 7F07C190 00991021 */ addu $v0, $a0, $t9 +/* 0B0D04 7F07C194 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D08 7F07C198 4602003E */ c.le.s $f0, $f2 +/* 0B0D0C 7F07C19C 00000000 */ nop +/* 0B0D10 7F07C1A0 45020019 */ bc1fl .Ljp7F07C208 +/* 0B0D14 7F07C1A4 24650001 */ addiu $a1, $v1, 1 +/* 0B0D18 7F07C1A8 8C4C0064 */ lw $t4, 0x64($v0) +.Ljp7F07C1AC: +/* 0B0D1C 7F07C1AC 318D0001 */ andi $t5, $t4, 1 +/* 0B0D20 7F07C1B0 55A00007 */ bnezl $t5, .Ljp7F07C1D0 +/* 0B0D24 7F07C1B4 E5400000 */ swc1 $f0, ($t2) +/* 0B0D28 7F07C1B8 46001201 */ sub.s $f8, $f2, $f0 +/* 0B0D2C 7F07C1BC 24780001 */ addiu $t8, $v1, 1 +/* 0B0D30 7F07C1C0 AD180000 */ sw $t8, ($t0) +/* 0B0D34 7F07C1C4 10000006 */ b .Ljp7F07C1E0 +/* 0B0D38 7F07C1C8 E5480000 */ swc1 $f8, ($t2) +/* 0B0D3C 7F07C1CC E5400000 */ swc1 $f0, ($t2) +.Ljp7F07C1D0: +/* 0B0D40 7F07C1D0 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0D44 7F07C1D4 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D48 7F07C1D8 1000000A */ b .Ljp7F07C204 +/* 0B0D4C 7F07C1DC C5420000 */ lwc1 $f2, ($t2) +.Ljp7F07C1E0: +/* 0B0D50 7F07C1E0 8D030000 */ lw $v1, ($t0) +/* 0B0D54 7F07C1E4 C5420000 */ lwc1 $f2, ($t2) +/* 0B0D58 7F07C1E8 00037140 */ sll $t6, $v1, 5 +/* 0B0D5C 7F07C1EC 008E1021 */ addu $v0, $a0, $t6 +/* 0B0D60 7F07C1F0 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D64 7F07C1F4 4602003E */ c.le.s $f0, $f2 +/* 0B0D68 7F07C1F8 00000000 */ nop +/* 0B0D6C 7F07C1FC 4503FFEB */ bc1tl .Ljp7F07C1AC +/* 0B0D70 7F07C200 8C4C0064 */ lw $t4, 0x64($v0) +.Ljp7F07C204: +/* 0B0D74 7F07C204 24650001 */ addiu $a1, $v1, 1 +.Ljp7F07C208: +/* 0B0D78 7F07C208 00057940 */ sll $t7, $a1, 5 +/* 0B0D7C 7F07C20C 008F1021 */ addu $v0, $a0, $t7 +/* 0B0D80 7F07C210 8C590044 */ lw $t9, 0x44($v0) +/* 0B0D84 7F07C214 46020281 */ sub.s $f10, $f0, $f2 +/* 0B0D88 7F07C218 44807000 */ mtc1 $zero, $f14 +/* 0B0D8C 7F07C21C 332C0001 */ andi $t4, $t9, 1 +/* 0B0D90 7F07C220 15800007 */ bnez $t4, .Ljp7F07C240 +/* 0B0D94 7F07C224 460A7400 */ add.s $f16, $f14, $f10 +.Ljp7F07C228: +/* 0B0D98 7F07C228 8C4D0064 */ lw $t5, 0x64($v0) +/* 0B0D9C 7F07C22C C4440018 */ lwc1 $f4, 0x18($v0) +/* 0B0DA0 7F07C230 24420020 */ addiu $v0, $v0, 0x20 +/* 0B0DA4 7F07C234 31B80001 */ andi $t8, $t5, 1 +/* 0B0DA8 7F07C238 1300FFFB */ beqz $t8, .Ljp7F07C228 +/* 0B0DAC 7F07C23C 46048400 */ add.s $f16, $f16, $f4 +.Ljp7F07C240: +/* 0B0DB0 7F07C240 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B0DB4 7F07C244 44816000 */ mtc1 $at, $f12 +/* 0B0DB8 7F07C248 00000000 */ nop +/* 0B0DBC 7F07C24C 460C803C */ c.lt.s $f16, $f12 +/* 0B0DC0 7F07C250 00000000 */ nop +/* 0B0DC4 7F07C254 4500000D */ bc1f .Ljp7F07C28C +/* 0B0DC8 7F07C258 00000000 */ nop +/* 0B0DCC 7F07C25C 46128180 */ add.s $f6, $f16, $f18 +/* 0B0DD0 7F07C260 4606603E */ c.le.s $f12, $f6 +/* 0B0DD4 7F07C264 00000000 */ nop +/* 0B0DD8 7F07C268 45000008 */ bc1f .Ljp7F07C28C +/* 0B0DDC 7F07C26C 00000000 */ nop +/* 0B0DE0 7F07C270 0FC20408 */ jal set_curplayer_fade +/* 0B0DE4 7F07C274 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0DE8 7F07C278 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0DEC 7F07C27C 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0DF0 7F07C280 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0DF4 7F07C284 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0DF8 7F07C288 C7B00030 */ lwc1 $f16, 0x30($sp) +.Ljp7F07C28C: +/* 0B0DFC 7F07C28C 3C0E8003 */ lui $t6, %hi(D_8003649C) # $t6, 0x8003 +/* 0B0E00 7F07C290 8DCE64DC */ lw $t6, %lo(D_8003649C)($t6) +/* 0B0E04 7F07C294 51C0000D */ beql $t6, $zero, .Ljp7F07C2CC +/* 0B0E08 7F07C298 3C014270 */ lui $at, 0x4270 +/* 0B0E0C 7F07C29C 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0B0E10 7F07C2A0 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0E14 7F07C2A4 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0E18 7F07C2A8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0E1C 7F07C2AC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0E20 7F07C2B0 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0E24 7F07C2B4 240B0001 */ li $t3, 1 +/* 0B0E28 7F07C2B8 10400003 */ beqz $v0, .Ljp7F07C2C8 +/* 0B0E2C 7F07C2BC C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B0E30 7F07C2C0 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0E34 7F07C2C4 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C2C8: +/* 0B0E38 7F07C2C8 3C014270 */ li $at, 0x42700000 # 60.000000 +.Ljp7F07C2CC: +/* 0B0E3C 7F07C2CC 44814000 */ mtc1 $at, $f8 +/* 0B0E40 7F07C2D0 3C0F8003 */ lui $t7, %hi(D_8003649C) # $t7, 0x8003 +/* 0B0E44 7F07C2D4 4610403C */ c.lt.s $f8, $f16 +/* 0B0E48 7F07C2D8 00000000 */ nop +/* 0B0E4C 7F07C2DC 45020036 */ bc1fl .Ljp7F07C3B8 +/* 0B0E50 7F07C2E0 8D040000 */ lw $a0, ($t0) +/* 0B0E54 7F07C2E4 8DEF64DC */ lw $t7, %lo(D_8003649C)($t7) +/* 0B0E58 7F07C2E8 55E00033 */ bnezl $t7, .Ljp7F07C3B8 +/* 0B0E5C 7F07C2EC 8D040000 */ lw $a0, ($t0) +/* 0B0E60 7F07C2F0 0FC3021B */ jal get_controls_locked_flag +/* 0B0E64 7F07C2F4 00000000 */ nop +/* 0B0E68 7F07C2F8 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0E6C 7F07C2FC 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0E70 7F07C300 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0E74 7F07C304 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0E78 7F07C308 1440002A */ bnez $v0, .Ljp7F07C3B4 +/* 0B0E7C 7F07C30C 240B0001 */ li $t3, 1 +/* 0B0E80 7F07C310 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0E84 7F07C314 97B90042 */ lhu $t9, 0x42($sp) +/* 0B0E88 7F07C318 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0E8C 7F07C31C 01806827 */ not $t5, $t4 +/* 0B0E90 7F07C320 032DC024 */ and $t8, $t9, $t5 +/* 0B0E94 7F07C324 330EF030 */ andi $t6, $t8, 0xf030 +/* 0B0E98 7F07C328 11C00022 */ beqz $t6, .Ljp7F07C3B4 +/* 0B0E9C 7F07C32C 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0EA0 7F07C330 3C018003 */ lui $at, %hi(D_8003649C) # $at, 0x8003 +/* 0B0EA4 7F07C334 AC2B64DC */ sw $t3, %lo(D_8003649C)($at) +/* 0B0EA8 7F07C338 8D2F0000 */ lw $t7, ($t1) +/* 0B0EAC 7F07C33C 00002025 */ move $a0, $zero +/* 0B0EB0 7F07C340 00002825 */ move $a1, $zero +/* 0B0EB4 7F07C344 00003025 */ move $a2, $zero +/* 0B0EB8 7F07C348 0FC20370 */ jal set_rgba_tint +/* 0B0EBC 7F07C34C 8DE703DC */ lw $a3, 0x3dc($t7) +/* 0B0EC0 7F07C350 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0B0EC4 7F07C354 00000000 */ nop +/* 0B0EC8 7F07C358 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0ECC 7F07C35C 1040000C */ beqz $v0, .Ljp7F07C390 +/* 0B0ED0 7F07C360 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0ED4 7F07C364 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0ED8 7F07C368 44816000 */ mtc1 $at, $f12 +/* 0B0EDC 7F07C36C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0EE0 7F07C370 44817000 */ mtc1 $at, $f14 +/* 0B0EE4 7F07C374 0FC2039A */ jal fade_to_over_seconds +/* 0B0EE8 7F07C378 00000000 */ nop +/* 0B0EEC 7F07C37C 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0EF0 7F07C380 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0EF4 7F07C384 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0EF8 7F07C388 1000000A */ b .Ljp7F07C3B4 +/* 0B0EFC 7F07C38C 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +.Ljp7F07C390: +/* 0B0F00 7F07C390 8D2C0000 */ lw $t4, ($t1) +/* 0B0F04 7F07C394 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0F08 7F07C398 44817000 */ mtc1 $at, $f14 +/* 0B0F0C 7F07C39C 0FC2039A */ jal fade_to_over_seconds +/* 0B0F10 7F07C3A0 C58C03E0 */ lwc1 $f12, 0x3e0($t4) +/* 0B0F14 7F07C3A4 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0F18 7F07C3A8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0F1C 7F07C3AC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0F20 7F07C3B0 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +.Ljp7F07C3B4: +/* 0B0F24 7F07C3B4 8D040000 */ lw $a0, ($t0) +.Ljp7F07C3B8: +/* 0B0F28 7F07C3B8 8D450000 */ lw $a1, ($t2) +/* 0B0F2C 7F07C3BC 8FA60048 */ lw $a2, 0x48($sp) +/* 0B0F30 7F07C3C0 0FC1EE30 */ jal sub_GAME_7F07B2A0 +/* 0B0F34 7F07C3C4 8FA7004C */ lw $a3, 0x4c($sp) +/* 0B0F38 7F07C3C8 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0F3C 7F07C3CC 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0F40 7F07C3D0 8D0D0000 */ lw $t5, ($t0) +/* 0B0F44 7F07C3D4 3C198003 */ lui $t9, %hi(D_800364AC) # $t9, 0x8003 +/* 0B0F48 7F07C3D8 8F3964EC */ lw $t9, %lo(D_800364AC)($t9) +/* 0B0F4C 7F07C3DC 000DC140 */ sll $t8, $t5, 5 +/* 0B0F50 7F07C3E0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0F54 7F07C3E4 03387021 */ addu $t6, $t9, $t8 +/* 0B0F58 7F07C3E8 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B0F5C 7F07C3EC 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0F60 7F07C3F0 3C0C8007 */ lui $t4, %hi(ptr_0xxxpresets) # $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(ptr_0xxxpresets)($t4) +/* 0B0F74 7F07C404 000F7880 */ sll $t7, $t7, 2 +/* 0B0F78 7F07C408 01E47823 */ subu $t7, $t7, $a0 +/* 0B0F7C 7F07C40C 000F7880 */ sll $t7, $t7, 2 +/* 0B0F80 7F07C410 01EC1021 */ addu $v0, $t7, $t4 +/* 0B0F84 7F07C414 8C4D0028 */ lw $t5, 0x28($v0) +/* 0B0F88 7F07C418 8FB90054 */ lw $t9, 0x54($sp) +/* 0B0F8C 7F07C41C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0F90 7F07C420 AF2D0000 */ sw $t5, ($t9) +/* 0B0F94 7F07C424 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0F98 7F07C428 E46A0000 */ swc1 $f10, ($v1) +/* 0B0F9C 7F07C42C C4440004 */ lwc1 $f4, 4($v0) +/* 0B0FA0 7F07C430 E4640004 */ swc1 $f4, 4($v1) +/* 0B0FA4 7F07C434 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0FA8 7F07C438 100001C6 */ b .Ljp7F07CB54 +/* 0B0FAC 7F07C43C E4660008 */ swc1 $f6, 8($v1) +.Ljp7F07C440: +/* 0B0FB0 7F07C440 8D380000 */ lw $t8, ($t1) +/* 0B0FB4 7F07C444 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0FB8 7F07C448 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0FBC 7F07C44C 8F0E0488 */ lw $t6, 0x488($t8) +/* 0B0FC0 7F07C450 ADEE0000 */ sw $t6, ($t7) +/* 0B0FC4 7F07C454 8D2C0000 */ lw $t4, ($t1) +/* 0B0FC8 7F07C458 C588048C */ lwc1 $f8, 0x48c($t4) +/* 0B0FCC 7F07C45C E4680000 */ swc1 $f8, ($v1) +/* 0B0FD0 7F07C460 8D2D0000 */ lw $t5, ($t1) +/* 0B0FD4 7F07C464 C5AA0490 */ lwc1 $f10, 0x490($t5) +/* 0B0FD8 7F07C468 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0FDC 7F07C46C 8D390000 */ lw $t9, ($t1) +/* 0B0FE0 7F07C470 C7240494 */ lwc1 $f4, 0x494($t9) +/* 0B0FE4 7F07C474 100001B7 */ b .Ljp7F07CB54 +/* 0B0FE8 7F07C478 E4640008 */ swc1 $f4, 8($v1) +.Ljp7F07C47C: +/* 0B0FEC 7F07C47C 10620003 */ beq $v1, $v0, .Ljp7F07C48C +/* 0B0FF0 7F07C480 24010006 */ li $at, 6 +/* 0B0FF4 7F07C484 5441009C */ bnel $v0, $at, .Ljp7F07C6F8 +/* 0B0FF8 7F07C488 24010007 */ li $at, 7 +.Ljp7F07C48C: +/* 0B0FFC 7F07C48C 1462003F */ bne $v1, $v0, .Ljp7F07C58C +/* 0B1000 7F07C490 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B1004 7F07C494 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B1008 7F07C498 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B100C 7F07C49C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B1010 7F07C4A0 C5460000 */ lwc1 $f6, ($t2) +/* 0B1014 7F07C4A4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1018 7F07C4A8 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B101C 7F07C4AC 46083280 */ add.s $f10, $f6, $f8 +/* 0B1020 7F07C4B0 8D380000 */ lw $t8, ($t1) +/* 0B1024 7F07C4B4 3C014334 */ lui $at, 0x4334 +/* 0B1028 7F07C4B8 E54A0000 */ swc1 $f10, ($t2) +/* 0B102C 7F07C4BC 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0B1030 7F07C4C0 50800015 */ beql $a0, $zero, .Ljp7F07C518 +/* 0B1034 7F07C4C4 C5460000 */ lwc1 $f6, ($t2) +/* 0B1038 7F07C4C8 0FC1BEEB */ jal sub_GAME_7F06F5BC +/* 0B103C 7F07C4CC 00000000 */ nop +/* 0B1040 7F07C4D0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1044 7F07C4D4 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1048 7F07C4D8 8D2E0000 */ lw $t6, ($t1) +/* 0B104C 7F07C4DC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1050 7F07C4E0 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 0B1054 7F07C4E4 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0B1058 7F07C4E8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B105C 7F07C4EC 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1060 7F07C4F0 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1064 7F07C4F4 4604003E */ c.le.s $f0, $f4 +/* 0B1068 7F07C4F8 240B0001 */ li $t3, 1 +/* 0B106C 7F07C4FC 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B1070 7F07C500 45000002 */ bc1f .Ljp7F07C50C +/* 0B1074 7F07C504 00000000 */ nop +/* 0B1078 7F07C508 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C50C: +/* 0B107C 7F07C50C 10000009 */ b .Ljp7F07C534 +/* 0B1080 7F07C510 24050002 */ li $a1, 2 +/* 0B1084 7F07C514 C5460000 */ lwc1 $f6, ($t2) +.Ljp7F07C518: +/* 0B1088 7F07C518 44814000 */ mtc1 $at, $f8 +/* 0B108C 7F07C51C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B1090 7F07C520 4606403E */ c.le.s $f8, $f6 +/* 0B1094 7F07C524 00000000 */ nop +/* 0B1098 7F07C528 45020003 */ bc1fl .Ljp7F07C538 +/* 0B109C 7F07C52C 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B10A0 7F07C530 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C534: +/* 0B10A4 7F07C534 97AC0046 */ lhu $t4, 0x46($sp) +.Ljp7F07C538: +/* 0B10A8 7F07C538 97AF0042 */ lhu $t7, 0x42($sp) +/* 0B10AC 7F07C53C 01806827 */ not $t5, $t4 +/* 0B10B0 7F07C540 01EDC824 */ and $t9, $t7, $t5 +/* 0B10B4 7F07C544 3338F000 */ andi $t8, $t9, 0xf000 +/* 0B10B8 7F07C548 13000036 */ beqz $t8, .Ljp7F07C624 +/* 0B10BC 7F07C54C 00000000 */ nop +/* 0B10C0 7F07C550 8D220000 */ lw $v0, ($t1) +/* 0B10C4 7F07C554 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B10C8 7F07C558 11C00032 */ beqz $t6, .Ljp7F07C624 +/* 0B10CC 7F07C55C 00000000 */ nop +/* 0B10D0 7F07C560 8C4C0424 */ lw $t4, 0x424($v0) +/* 0B10D4 7F07C564 1180002F */ beqz $t4, .Ljp7F07C624 +/* 0B10D8 7F07C568 00000000 */ nop +/* 0B10DC 7F07C56C 8C4F0428 */ lw $t7, 0x428($v0) +/* 0B10E0 7F07C570 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B10E4 7F07C574 11E0002B */ beqz $t7, .Ljp7F07C624 +/* 0B10E8 7F07C578 00000000 */ nop +/* 0B10EC 7F07C57C AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B10F0 7F07C580 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 0B10F4 7F07C584 10000027 */ b .Ljp7F07C624 +/* 0B10F8 7F07C588 AC256550 */ sw $a1, %lo(D_80036510)($at) +.Ljp7F07C58C: +/* 0B10FC 7F07C58C 24010006 */ li $at, 6 +/* 0B1100 7F07C590 14410024 */ bne $v0, $at, .Ljp7F07C624 +/* 0B1104 7F07C594 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B1108 7F07C598 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B110C 7F07C59C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B1110 7F07C5A0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B1114 7F07C5A4 C54A0000 */ lwc1 $f10, ($t2) +/* 0B1118 7F07C5A8 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B111C 7F07C5AC 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1120 7F07C5B0 46045180 */ add.s $f6, $f10, $f4 +/* 0B1124 7F07C5B4 8D220000 */ lw $v0, ($t1) +/* 0B1128 7F07C5B8 44807000 */ mtc1 $zero, $f14 +/* 0B112C 7F07C5BC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B1130 7F07C5C0 E5460000 */ swc1 $f6, ($t2) +/* 0B1134 7F07C5C4 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0B1138 7F07C5C8 460E403C */ c.lt.s $f8, $f14 +/* 0B113C 7F07C5CC 00000000 */ nop +/* 0B1140 7F07C5D0 45020003 */ bc1fl .Ljp7F07C5E0 +/* 0B1144 7F07C5D4 97B90046 */ lhu $t9, 0x46($sp) +/* 0B1148 7F07C5D8 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B114C 7F07C5DC 97B90046 */ lhu $t9, 0x46($sp) +.Ljp7F07C5E0: +/* 0B1150 7F07C5E0 97AD0042 */ lhu $t5, 0x42($sp) +/* 0B1154 7F07C5E4 0320C027 */ not $t8, $t9 +/* 0B1158 7F07C5E8 01B87024 */ and $t6, $t5, $t8 +/* 0B115C 7F07C5EC 31CCF000 */ andi $t4, $t6, 0xf000 +/* 0B1160 7F07C5F0 1180000C */ beqz $t4, .Ljp7F07C624 +/* 0B1164 7F07C5F4 00000000 */ nop +/* 0B1168 7F07C5F8 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B116C 7F07C5FC 11E00009 */ beqz $t7, .Ljp7F07C624 +/* 0B1170 7F07C600 00000000 */ nop +/* 0B1174 7F07C604 8C590424 */ lw $t9, 0x424($v0) +/* 0B1178 7F07C608 13200006 */ beqz $t9, .Ljp7F07C624 +/* 0B117C 7F07C60C 00000000 */ nop +/* 0B1180 7F07C610 8C4D0428 */ lw $t5, 0x428($v0) +/* 0B1184 7F07C614 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 0B1188 7F07C618 11A00002 */ beqz $t5, .Ljp7F07C624 +/* 0B118C 7F07C61C 00000000 */ nop +/* 0B1190 7F07C620 AC256550 */ sw $a1, %lo(D_80036510)($at) +.Ljp7F07C624: +/* 0B1194 7F07C624 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799E8) # $v1, 0x8008 +/* 0B1198 7F07C628 24639A28 */ addiu $v1, %lo(flt_CODE_bss_800799E8) # addiu $v1, $v1, -0x65d8 +/* 0B119C 7F07C62C C46A0000 */ lwc1 $f10, ($v1) +/* 0B11A0 7F07C630 8FB80048 */ lw $t8, 0x48($sp) +/* 0B11A4 7F07C634 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B11A8 7F07C638 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B11AC 7F07C63C E70A0000 */ swc1 $f10, ($t8) +/* 0B11B0 7F07C640 C4640004 */ lwc1 $f4, 4($v1) +/* 0B11B4 7F07C644 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799F4) # $a1, 0x8008 +/* 0B11B8 7F07C648 24A59A34 */ addiu $a1, %lo(dword_CODE_bss_800799F4) # addiu $a1, $a1, -0x65cc +/* 0B11BC 7F07C64C E7040004 */ swc1 $f4, 4($t8) +/* 0B11C0 7F07C650 C4660008 */ lwc1 $f6, 8($v1) +/* 0B11C4 7F07C654 E7060008 */ swc1 $f6, 8($t8) +/* 0B11C8 7F07C658 8D220000 */ lw $v0, ($t1) +/* 0B11CC 7F07C65C 8CA40000 */ lw $a0, ($a1) +/* 0B11D0 7F07C660 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B11D4 7F07C664 548E000C */ bnel $a0, $t6, .Ljp7F07C698 +/* 0B11D8 7F07C668 C4860008 */ lwc1 $f6, 8($a0) +/* 0B11DC 7F07C66C C44803C4 */ lwc1 $f8, 0x3c4($v0) +/* 0B11E0 7F07C670 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B11E4 7F07C674 E5880000 */ swc1 $f8, ($t4) +/* 0B11E8 7F07C678 8D2F0000 */ lw $t7, ($t1) +/* 0B11EC 7F07C67C C5EA03C8 */ lwc1 $f10, 0x3c8($t7) +/* 0B11F0 7F07C680 E58A0004 */ swc1 $f10, 4($t4) +/* 0B11F4 7F07C684 8D390000 */ lw $t9, ($t1) +/* 0B11F8 7F07C688 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B11FC 7F07C68C 1000000A */ b .Ljp7F07C6B8 +/* 0B1200 7F07C690 E5840008 */ swc1 $f4, 8($t4) +/* 0B1204 7F07C694 C4860008 */ lwc1 $f6, 8($a0) +.Ljp7F07C698: +/* 0B1208 7F07C698 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B120C 7F07C69C E5A60000 */ swc1 $f6, ($t5) +/* 0B1210 7F07C6A0 8CB80000 */ lw $t8, ($a1) +/* 0B1214 7F07C6A4 C708000C */ lwc1 $f8, 0xc($t8) +/* 0B1218 7F07C6A8 E5A80004 */ swc1 $f8, 4($t5) +/* 0B121C 7F07C6AC 8CAE0000 */ lw $t6, ($a1) +/* 0B1220 7F07C6B0 C5CA0010 */ lwc1 $f10, 0x10($t6) +/* 0B1224 7F07C6B4 E5AA0008 */ swc1 $f10, 8($t5) +.Ljp7F07C6B8: +/* 0B1228 7F07C6B8 8D2F0000 */ lw $t7, ($t1) +/* 0B122C 7F07C6BC 8FAC0054 */ lw $t4, 0x54($sp) +/* 0B1230 7F07C6C0 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1234 7F07C6C4 8DF90488 */ lw $t9, 0x488($t7) +/* 0B1238 7F07C6C8 AD990000 */ sw $t9, ($t4) +/* 0B123C 7F07C6CC 8D380000 */ lw $t8, ($t1) +/* 0B1240 7F07C6D0 C704048C */ lwc1 $f4, 0x48c($t8) +/* 0B1244 7F07C6D4 E4640000 */ swc1 $f4, ($v1) +/* 0B1248 7F07C6D8 8D2E0000 */ lw $t6, ($t1) +/* 0B124C 7F07C6DC C5C60490 */ lwc1 $f6, 0x490($t6) +/* 0B1250 7F07C6E0 E4660004 */ swc1 $f6, 4($v1) +/* 0B1254 7F07C6E4 8D2D0000 */ lw $t5, ($t1) +/* 0B1258 7F07C6E8 C5A80494 */ lwc1 $f8, 0x494($t5) +/* 0B125C 7F07C6EC 10000119 */ b .Ljp7F07CB54 +/* 0B1260 7F07C6F0 E4680008 */ swc1 $f8, 8($v1) +/* 0B1264 7F07C6F4 24010007 */ li $at, 7 +.Ljp7F07C6F8: +/* 0B1268 7F07C6F8 14410116 */ bne $v0, $at, .Ljp7F07CB54 +/* 0B126C 7F07C6FC 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799F8) # $v0, 0x8008 +/* 0B1270 7F07C700 24429A38 */ addiu $v0, %lo(dword_CODE_bss_800799F8) # addiu $v0, $v0, -0x65c8 +/* 0B1274 7F07C704 8C440000 */ lw $a0, ($v0) +/* 0B1278 7F07C708 8FAF0048 */ lw $t7, 0x48($sp) +/* 0B127C 7F07C70C 10800024 */ beqz $a0, .Ljp7F07C7A0 +/* 0B1280 7F07C710 00000000 */ nop +/* 0B1284 7F07C714 C48A0000 */ lwc1 $f10, ($a0) +/* 0B1288 7F07C718 8FA30058 */ lw $v1, 0x58($sp) +/* 0B128C 7F07C71C 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1290 7F07C720 E5EA0000 */ swc1 $f10, ($t7) +/* 0B1294 7F07C724 8C590000 */ lw $t9, ($v0) +/* 0B1298 7F07C728 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B129C 7F07C72C C7240004 */ lwc1 $f4, 4($t9) +/* 0B12A0 7F07C730 E5E40004 */ swc1 $f4, 4($t7) +/* 0B12A4 7F07C734 8C4C0000 */ lw $t4, ($v0) +/* 0B12A8 7F07C738 C5860008 */ lwc1 $f6, 8($t4) +/* 0B12AC 7F07C73C E5E60008 */ swc1 $f6, 8($t7) +/* 0B12B0 7F07C740 8D380000 */ lw $t8, ($t1) +/* 0B12B4 7F07C744 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B12B8 7F07C748 C70803C4 */ lwc1 $f8, 0x3c4($t8) +/* 0B12BC 7F07C74C E5C80000 */ swc1 $f8, ($t6) +/* 0B12C0 7F07C750 8D2D0000 */ lw $t5, ($t1) +/* 0B12C4 7F07C754 C5AA03C8 */ lwc1 $f10, 0x3c8($t5) +/* 0B12C8 7F07C758 E5CA0004 */ swc1 $f10, 4($t6) +/* 0B12CC 7F07C75C 8D390000 */ lw $t9, ($t1) +/* 0B12D0 7F07C760 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B12D4 7F07C764 E5C40008 */ swc1 $f4, 8($t6) +/* 0B12D8 7F07C768 8C4C0000 */ lw $t4, ($v0) +/* 0B12DC 7F07C76C 8FB80054 */ lw $t8, 0x54($sp) +/* 0B12E0 7F07C770 8D8F0028 */ lw $t7, 0x28($t4) +/* 0B12E4 7F07C774 AF0F0000 */ sw $t7, ($t8) +/* 0B12E8 7F07C778 8C4D0000 */ lw $t5, ($v0) +/* 0B12EC 7F07C77C C5A60000 */ lwc1 $f6, ($t5) +/* 0B12F0 7F07C780 E4660000 */ swc1 $f6, ($v1) +/* 0B12F4 7F07C784 8C590000 */ lw $t9, ($v0) +/* 0B12F8 7F07C788 C7280004 */ lwc1 $f8, 4($t9) +/* 0B12FC 7F07C78C E4680004 */ swc1 $f8, 4($v1) +/* 0B1300 7F07C790 8C4E0000 */ lw $t6, ($v0) +/* 0B1304 7F07C794 C5CA0008 */ lwc1 $f10, 8($t6) +/* 0B1308 7F07C798 100000EE */ b .Ljp7F07CB54 +/* 0B130C 7F07C79C E46A0008 */ swc1 $f10, 8($v1) +.Ljp7F07C7A0: +/* 0B1310 7F07C7A0 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799FC) # $a1, 0x8008 +/* 0B1314 7F07C7A4 24A59A3C */ addiu $a1, %lo(dword_CODE_bss_800799FC) # addiu $a1, $a1, -0x65c4 +/* 0B1318 7F07C7A8 8CA40000 */ lw $a0, ($a1) +/* 0B131C 7F07C7AC 10800063 */ beqz $a0, .Ljp7F07C93C +/* 0B1320 7F07C7B0 00000000 */ nop +/* 0B1324 7F07C7B4 8C830018 */ lw $v1, 0x18($a0) +/* 0B1328 7F07C7B8 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) # $t5, 0x8007 +/* 0B132C 7F07C7BC 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1330 7F07C7C0 28612710 */ slti $at, $v1, 0x2710 +/* 0B1334 7F07C7C4 1020000A */ beqz $at, .Ljp7F07C7F0 +/* 0B1338 7F07C7C8 0003C100 */ sll $t8, $v1, 4 +/* 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(ptr_0xxxpresets) # $t7, 0x8007 +/* 0B134C 7F07C7DC 8DEF5D58 */ lw $t7, %lo(ptr_0xxxpresets)($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(ptr_2xxxpresets)($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 +/* 0B1370 7F07C800 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B1374 7F07C804 030D1021 */ addu $v0, $t8, $t5 +/* 0B1378 7F07C808 00411021 */ addu $v0, $v0, $at +.Ljp7F07C80C: +/* 0B137C 7F07C80C C4840004 */ lwc1 $f4, 4($a0) +/* 0B1380 7F07C810 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1384 7F07C814 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079A18) # $t5, 0x8008 +/* 0B1388 7F07C818 E7240000 */ swc1 $f4, ($t9) +/* 0B138C 7F07C81C 8CAE0000 */ lw $t6, ($a1) +/* 0B1390 7F07C820 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1394 7F07C824 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1398 7F07C828 C5C60008 */ lwc1 $f6, 8($t6) +/* 0B139C 7F07C82C E7260004 */ swc1 $f6, 4($t9) +/* 0B13A0 7F07C830 8CAC0000 */ lw $t4, ($a1) +/* 0B13A4 7F07C834 C588000C */ lwc1 $f8, 0xc($t4) +/* 0B13A8 7F07C838 E7280008 */ swc1 $f8, 8($t9) +/* 0B13AC 7F07C83C 8FB80054 */ lw $t8, 0x54($sp) +/* 0B13B0 7F07C840 8C4F0028 */ lw $t7, 0x28($v0) +/* 0B13B4 7F07C844 AF0F0000 */ sw $t7, ($t8) +/* 0B13B8 7F07C848 C44A0000 */ lwc1 $f10, ($v0) +/* 0B13BC 7F07C84C E46A0000 */ swc1 $f10, ($v1) +/* 0B13C0 7F07C850 C4440004 */ lwc1 $f4, 4($v0) +/* 0B13C4 7F07C854 E4640004 */ swc1 $f4, 4($v1) +/* 0B13C8 7F07C858 C4460008 */ lwc1 $f6, 8($v0) +/* 0B13CC 7F07C85C E4660008 */ swc1 $f6, 8($v1) +/* 0B13D0 7F07C860 8DAD9A58 */ lw $t5, %lo(dword_CODE_bss_80079A18)($t5) +/* 0B13D4 7F07C864 556D000D */ bnel $t3, $t5, .Ljp7F07C89C +/* 0B13D8 7F07C868 8CB80000 */ lw $t8, ($a1) +/* 0B13DC 7F07C86C 8D2E0000 */ lw $t6, ($t1) +/* 0B13E0 7F07C870 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B13E4 7F07C874 C5C803C4 */ lwc1 $f8, 0x3c4($t6) +/* 0B13E8 7F07C878 E5880000 */ swc1 $f8, ($t4) +/* 0B13EC 7F07C87C 8D390000 */ lw $t9, ($t1) +/* 0B13F0 7F07C880 C72A03C8 */ lwc1 $f10, 0x3c8($t9) +/* 0B13F4 7F07C884 E58A0004 */ swc1 $f10, 4($t4) +/* 0B13F8 7F07C888 8D2F0000 */ lw $t7, ($t1) +/* 0B13FC 7F07C88C C5E403CC */ lwc1 $f4, 0x3cc($t7) +/* 0B1400 7F07C890 100000B0 */ b .Ljp7F07CB54 +/* 0B1404 7F07C894 E5840008 */ swc1 $f4, 8($t4) +/* 0B1408 7F07C898 8CB80000 */ lw $t8, ($a1) +.Ljp7F07C89C: +/* 0B140C 7F07C89C 0FC160F0 */ jal cosf +/* 0B1410 7F07C8A0 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B1414 7F07C8A4 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) # $t5, 0x8008 +/* 0B1418 7F07C8A8 8DAD9A3C */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B141C 7F07C8AC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1420 7F07C8B0 0FC160F3 */ jal sinf +/* 0B1424 7F07C8B4 C5AC0010 */ lwc1 $f12, 0x10($t5) +/* 0B1428 7F07C8B8 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B142C 7F07C8BC 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B1430 7F07C8C0 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B1434 7F07C8C4 46060202 */ mul.s $f8, $f0, $f6 +/* 0B1438 7F07C8C8 C5CA0000 */ lwc1 $f10, ($t6) +/* 0B143C 7F07C8CC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799FC) # $t7, 0x8008 +/* 0B1440 7F07C8D0 460A4100 */ add.s $f4, $f8, $f10 +/* 0B1444 7F07C8D4 E7240000 */ swc1 $f4, ($t9) +/* 0B1448 7F07C8D8 8DEF9A3C */ lw $t7, %lo(dword_CODE_bss_800799FC)($t7) +/* 0B144C 7F07C8DC 0FC160F3 */ jal sinf +/* 0B1450 7F07C8E0 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B1454 7F07C8E4 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B1458 7F07C8E8 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B145C 7F07C8EC 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) # $t5, 0x8008 +/* 0B1460 7F07C8F0 C5860004 */ lwc1 $f6, 4($t4) +/* 0B1464 7F07C8F4 46060200 */ add.s $f8, $f0, $f6 +/* 0B1468 7F07C8F8 E7080004 */ swc1 $f8, 4($t8) +/* 0B146C 7F07C8FC 8DAD9A3C */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B1470 7F07C900 0FC160F0 */ jal cosf +/* 0B1474 7F07C904 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B1478 7F07C908 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_800799FC) # $t6, 0x8008 +/* 0B147C 7F07C90C 8DCE9A3C */ lw $t6, %lo(dword_CODE_bss_800799FC)($t6) +/* 0B1480 7F07C910 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1484 7F07C914 0FC160F0 */ jal cosf +/* 0B1488 7F07C918 C5CC0010 */ lwc1 $f12, 0x10($t6) +/* 0B148C 7F07C91C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B1490 7F07C920 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1494 7F07C924 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B1498 7F07C928 46040182 */ mul.s $f6, $f0, $f4 +/* 0B149C 7F07C92C C72A0008 */ lwc1 $f10, 8($t9) +/* 0B14A0 7F07C930 46065201 */ sub.s $f8, $f10, $f6 +/* 0B14A4 7F07C934 10000087 */ b .Ljp7F07CB54 +/* 0B14A8 7F07C938 E5E80008 */ swc1 $f8, 8($t7) +.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(ptr_2xxxpresets) # $t6, 0x8007 +/* 0B14B8 7F07C948 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B14BC 7F07C94C 28412710 */ slti $at, $v0, 0x2710 +/* 0B14C0 7F07C950 1020000A */ beqz $at, .Ljp7F07C97C +/* 0B14C4 7F07C954 00026900 */ sll $t5, $v0, 4 +/* 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(ptr_0xxxpresets) # $t8, 0x8007 +/* 0B14D8 7F07C968 8F185D58 */ lw $t8, %lo(ptr_0xxxpresets)($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(ptr_2xxxpresets)($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 +/* 0B14FC 7F07C98C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B1500 7F07C990 01AE2021 */ addu $a0, $t5, $t6 +/* 0B1504 7F07C994 00812021 */ addu $a0, $a0, $at +.Ljp7F07C998: +/* 0B1508 7F07C998 8C990028 */ lw $t9, 0x28($a0) +/* 0B150C 7F07C99C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1510 7F07C9A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1514 7F07C9A4 ADF90000 */ sw $t9, ($t7) +/* 0B1518 7F07C9A8 C4840000 */ lwc1 $f4, ($a0) +/* 0B151C 7F07C9AC 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1520 7F07C9B0 E4640000 */ swc1 $f4, ($v1) +/* 0B1524 7F07C9B4 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B1528 7F07C9B8 E46A0004 */ swc1 $f10, 4($v1) +/* 0B152C 7F07C9BC C4860008 */ lwc1 $f6, 8($a0) +/* 0B1530 7F07C9C0 E4660008 */ swc1 $f6, 8($v1) +/* 0B1534 7F07C9C4 AFA40020 */ sw $a0, 0x20($sp) +/* 0B1538 7F07C9C8 0FC160F0 */ jal cosf +/* 0B153C 7F07C9CC C44C0000 */ lwc1 $f12, ($v0) +/* 0B1540 7F07C9D0 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1544 7F07C9D4 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B1548 7F07C9D8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) # $at, 0x8008 +/* 0B154C 7F07C9DC C4880000 */ lwc1 $f8, ($a0) +/* 0B1550 7F07C9E0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1554 7F07C9E4 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1558 7F07C9E8 E5880000 */ swc1 $f8, ($t4) +/* 0B155C 7F07C9EC C42A9A50 */ lwc1 $f10, %lo(flt_CODE_bss_80079A10)($at) +/* 0B1560 7F07C9F0 C4840004 */ lwc1 $f4, 4($a0) +/* 0B1564 7F07C9F4 460A2180 */ add.s $f6, $f4, $f10 +/* 0B1568 7F07C9F8 E5860004 */ swc1 $f6, 4($t4) +/* 0B156C 7F07C9FC 0FC160F3 */ jal sinf +/* 0B1570 7F07CA00 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1574 7F07CA04 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1578 7F07CA08 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B157C 7F07CA0C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1580 7F07CA10 C4880008 */ lwc1 $f8, 8($a0) +/* 0B1584 7F07CA14 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1588 7F07CA18 E7080008 */ swc1 $f8, 8($t8) +/* 0B158C 7F07CA1C 0FC160F3 */ jal sinf +/* 0B1590 7F07CA20 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1594 7F07CA24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1598 7F07CA28 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B159C 7F07CA2C C44C0000 */ lwc1 $f12, ($v0) +/* 0B15A0 7F07CA30 0FC160F0 */ jal cosf +/* 0B15A4 7F07CA34 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B15A8 7F07CA38 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) # $at, 0x8008 +/* 0B15AC 7F07CA3C C42A9A48 */ lwc1 $f10, %lo(flt_CODE_bss_80079A08)($at) +/* 0B15B0 7F07CA40 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B15B4 7F07CA44 8FA40020 */ lw $a0, 0x20($sp) +/* 0B15B8 7F07CA48 8FAD0048 */ lw $t5, 0x48($sp) +/* 0B15BC 7F07CA4C 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B15C0 7F07CA50 C4880000 */ lwc1 $f8, ($a0) +/* 0B15C4 7F07CA54 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) # $at, 0x8008 +/* 0B15C8 7F07CA58 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B15CC 7F07CA5C 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B15D0 7F07CA60 46064100 */ add.s $f4, $f8, $f6 +/* 0B15D4 7F07CA64 E5A40000 */ swc1 $f4, ($t5) +/* 0B15D8 7F07CA68 C4289A50 */ lwc1 $f8, %lo(flt_CODE_bss_80079A10)($at) +/* 0B15DC 7F07CA6C C48A0004 */ lwc1 $f10, 4($a0) +/* 0B15E0 7F07CA70 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) # $at, 0x8008 +/* 0B15E4 7F07CA74 C4249A4C */ lwc1 $f4, %lo(flt_CODE_bss_80079A0C)($at) +/* 0B15E8 7F07CA78 46085180 */ add.s $f6, $f10, $f8 +/* 0B15EC 7F07CA7C 46043280 */ add.s $f10, $f6, $f4 +/* 0B15F0 7F07CA80 E5AA0004 */ swc1 $f10, 4($t5) +/* 0B15F4 7F07CA84 0FC160F0 */ jal cosf +/* 0B15F8 7F07CA88 C44C0000 */ lwc1 $f12, ($v0) +/* 0B15FC 7F07CA8C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1600 7F07CA90 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1604 7F07CA94 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1608 7F07CA98 0FC160F3 */ jal sinf +/* 0B160C 7F07CA9C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1610 7F07CAA0 3C018005 */ lui $at, %hi(D_8005505C) # $at, 0x8005 +/* 0B1614 7F07CAA4 C42C508C */ lwc1 $f12, %lo(D_8005505C)($at) +/* 0B1618 7F07CAA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) # $at, 0x8008 +/* 0B161C 7F07CAAC C4269A48 */ lwc1 $f6, %lo(flt_CODE_bss_80079A08)($at) +/* 0B1620 7F07CAB0 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B1624 7F07CAB4 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1628 7F07CAB8 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B162C 7F07CABC 46064102 */ mul.s $f4, $f8, $f6 +/* 0B1630 7F07CAC0 C48A0008 */ lwc1 $f10, 8($a0) +/* 0B1634 7F07CAC4 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) # $at, 0x8008 +/* 0B1638 7F07CAC8 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B163C 7F07CACC 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1640 7F07CAD0 44807000 */ mtc1 $zero, $f14 +/* 0B1644 7F07CAD4 46045200 */ add.s $f8, $f10, $f4 +/* 0B1648 7F07CAD8 E5C80008 */ swc1 $f8, 8($t6) +/* 0B164C 7F07CADC C4269A44 */ lwc1 $f6, %lo(flt_CODE_bss_80079A04)($at) +/* 0B1650 7F07CAE0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B1654 7F07CAE4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B1658 7F07CAE8 C4480000 */ lwc1 $f8, ($v0) +/* 0B165C 7F07CAEC 460A3102 */ mul.s $f4, $f6, $f10 +/* 0B1660 7F07CAF0 46044180 */ add.s $f6, $f8, $f4 +/* 0B1664 7F07CAF4 E4460000 */ swc1 $f6, ($v0) +/* 0B1668 7F07CAF8 C4420000 */ lwc1 $f2, ($v0) +/* 0B166C 7F07CAFC 4602603E */ c.le.s $f12, $f2 +/* 0B1670 7F07CB00 00000000 */ nop +/* 0B1674 7F07CB04 45020009 */ bc1fl .Ljp7F07CB2C +/* 0B1678 7F07CB08 460E103C */ c.lt.s $f2, $f14 +/* 0B167C 7F07CB0C 460C1281 */ sub.s $f10, $f2, $f12 +.Ljp7F07CB10: +/* 0B1680 7F07CB10 E44A0000 */ swc1 $f10, ($v0) +/* 0B1684 7F07CB14 C4420000 */ lwc1 $f2, ($v0) +/* 0B1688 7F07CB18 4602603E */ c.le.s $f12, $f2 +/* 0B168C 7F07CB1C 00000000 */ nop +/* 0B1690 7F07CB20 4503FFFB */ bc1tl .Ljp7F07CB10 +/* 0B1694 7F07CB24 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B1698 7F07CB28 460E103C */ c.lt.s $f2, $f14 +.Ljp7F07CB2C: +/* 0B169C 7F07CB2C 00000000 */ nop +/* 0B16A0 7F07CB30 45020009 */ bc1fl .Ljp7F07CB58 +/* 0B16A4 7F07CB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B16A8 7F07CB38 460C1200 */ add.s $f8, $f2, $f12 +.Ljp7F07CB3C: +/* 0B16AC 7F07CB3C E4480000 */ swc1 $f8, ($v0) +/* 0B16B0 7F07CB40 C4420000 */ lwc1 $f2, ($v0) +/* 0B16B4 7F07CB44 460E103C */ c.lt.s $f2, $f14 +/* 0B16B8 7F07CB48 00000000 */ nop +/* 0B16BC 7F07CB4C 4503FFFB */ bc1tl .Ljp7F07CB3C +/* 0B16C0 7F07CB50 460C1200 */ add.s $f8, $f2, $f12 +.Ljp7F07CB54: +/* 0B16C4 7F07CB54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07CB58: +/* 0B16C8 7F07CB58 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B16CC 7F07CB5C 03E00008 */ jr $ra +/* 0B16D0 7F07CB60 00000000 */ nop +) +#endif + +#endif + + +void sub_GAME_7F07C540(s32 arg0) +{ + pPlayer->field_42C = arg0; +} + +void set_BONDdata_lookahead_setting(s32 arg0) +{ + pPlayer->automovecentreenabled = arg0; +} + +s32 get_BONDdata_lookahead_setting(void) +{ + return pPlayer->automovecentreenabled; +} + +void set_BONDdata_autoaim_y(s32 param_1) +{ + pPlayer->autoyaimenabled = param_1; +} + + + + + + +#ifdef NONMATCHING +s32 get_BONDdata_autoaim_y(void) +{ + if (get_num_players() == 1) { + return pPlayer->autoyaimenabled; + } + else { + return pPlayersPerm->autoaim; + } +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_autoaim_y +/* 0B10B0 7F07C580 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B10B4 7F07C584 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B10B8 7F07C588 0FC26919 */ jal get_num_players +/* 0B10BC 7F07C58C 00000000 */ nop +/* 0B10C0 7F07C590 24010001 */ li $at, 1 +/* 0B10C4 7F07C594 14410005 */ bne $v0, $at, .L7F07C5AC +/* 0B10C8 7F07C598 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B10CC 7F07C59C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B10D0 7F07C5A0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B10D4 7F07C5A4 10000004 */ b .L7F07C5B8 +/* 0B10D8 7F07C5A8 8DC20128 */ lw $v0, 0x128($t6) +.L7F07C5AC: +/* 0B10DC 7F07C5AC 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0B10E0 7F07C5B0 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0B10E4 7F07C5B4 91E2006A */ lbu $v0, 0x6a($t7) +.L7F07C5B8: +/* 0B10E8 7F07C5B8 03E00008 */ jr $ra +/* 0B10EC 7F07C5BC 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +int redirect_get_BONDdata_autoaim_y(void) { + // Node 0 + return get_BONDdata_autoaim_y(); +} + +s32 get_BONDdata_is_aiming(void) { + return pPlayer->insightaimmode; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07C5F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C5F0 +/* 0B1120 7F07C5F0 44856000 */ mtc1 $a1, $f12 +/* 0B1124 7F07C5F4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0B1128 7F07C5F8 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0B112C 7F07C5FC 8CA20000 */ lw $v0, ($a1) +/* 0B1130 7F07C600 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0B1134 7F07C604 8C430134 */ lw $v1, 0x134($v0) +/* 0B1138 7F07C608 04620006 */ bltzl $v1, .L7F07C624 +/* 0B113C 7F07C60C 8C580130 */ lw $t8, 0x130($v0) +/* 0B1140 7F07C610 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0B1144 7F07C614 006E7823 */ subu $t7, $v1, $t6 +/* 0B1148 7F07C618 AC4F0134 */ sw $t7, 0x134($v0) +/* 0B114C 7F07C61C 8CA20000 */ lw $v0, ($a1) +/* 0B1150 7F07C620 8C580130 */ lw $t8, 0x130($v0) +.L7F07C624: +/* 0B1154 7F07C624 5098000A */ beql $a0, $t8, .L7F07C650 +/* 0B1158 7F07C628 E44C012C */ swc1 $f12, 0x12c($v0) +/* 0B115C 7F07C62C 8C590134 */ lw $t9, 0x134($v0) +/* 0B1160 7F07C630 2408001E */ li $t0, 30 +/* 0B1164 7F07C634 07210006 */ bgez $t9, .L7F07C650 +/* 0B1168 7F07C638 00000000 */ nop +/* 0B116C 7F07C63C AC480134 */ sw $t0, 0x134($v0) +/* 0B1170 7F07C640 8CA90000 */ lw $t1, ($a1) +/* 0B1174 7F07C644 AD240130 */ sw $a0, 0x130($t1) +/* 0B1178 7F07C648 8CA20000 */ lw $v0, ($a1) +/* 0B117C 7F07C64C E44C012C */ swc1 $f12, 0x12c($v0) +.L7F07C650: +/* 0B1180 7F07C650 03E00008 */ jr $ra +/* 0B1184 7F07C654 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_autoaim_x(s32 param_1) { + pPlayer->autoxaimenabled = param_1; + return; +} + + + + + +#ifdef NONMATCHING +void get_BONDdata_autoaim_x(void) { + // Node 0 + if (get_num_players() != 1) + { + // Node 2 + // Node 3 + return pPlayersPerm->unk6A; + } + // Node 1 + return pPlayersPerm->unk6A; +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_autoaim_x +/* 0B1198 7F07C668 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B119C 7F07C66C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B11A0 7F07C670 0FC26919 */ jal get_num_players +/* 0B11A4 7F07C674 00000000 */ nop +/* 0B11A8 7F07C678 24010001 */ li $at, 1 +/* 0B11AC 7F07C67C 14410005 */ bne $v0, $at, .L7F07C694 +/* 0B11B0 7F07C680 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B11B4 7F07C684 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B11B8 7F07C688 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B11BC 7F07C68C 10000004 */ b .L7F07C6A0 +/* 0B11C0 7F07C690 8DC20138 */ lw $v0, 0x138($t6) +.L7F07C694: +/* 0B11C4 7F07C694 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0B11C8 7F07C698 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0B11CC 7F07C69C 91E2006A */ lbu $v0, 0x6a($t7) +.L7F07C6A0: +/* 0B11D0 7F07C6A0 03E00008 */ jr $ra +/* 0B11D4 7F07C6A4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +int redirect_get_BONDdata_autoaim_x(void) { + return get_BONDdata_autoaim_x(); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07C6C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C6C8 +/* 0B11F8 7F07C6C8 44856000 */ mtc1 $a1, $f12 +/* 0B11FC 7F07C6CC 3C058008 */ lui $a1, %hi(pPlayer) +/* 0B1200 7F07C6D0 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0B1204 7F07C6D4 8CA20000 */ lw $v0, ($a1) +/* 0B1208 7F07C6D8 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0B120C 7F07C6DC 8C430144 */ lw $v1, 0x144($v0) +/* 0B1210 7F07C6E0 04620006 */ bltzl $v1, .L7F07C6FC +/* 0B1214 7F07C6E4 8C580140 */ lw $t8, 0x140($v0) +/* 0B1218 7F07C6E8 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0B121C 7F07C6EC 006E7823 */ subu $t7, $v1, $t6 +/* 0B1220 7F07C6F0 AC4F0144 */ sw $t7, 0x144($v0) +/* 0B1224 7F07C6F4 8CA20000 */ lw $v0, ($a1) +/* 0B1228 7F07C6F8 8C580140 */ lw $t8, 0x140($v0) +.L7F07C6FC: +/* 0B122C 7F07C6FC 5098000A */ beql $a0, $t8, .L7F07C728 +/* 0B1230 7F07C700 E44C013C */ swc1 $f12, 0x13c($v0) +/* 0B1234 7F07C704 8C590144 */ lw $t9, 0x144($v0) +/* 0B1238 7F07C708 2408001E */ li $t0, 30 +/* 0B123C 7F07C70C 07210006 */ bgez $t9, .L7F07C728 +/* 0B1240 7F07C710 00000000 */ nop +/* 0B1244 7F07C714 AC480144 */ sw $t0, 0x144($v0) +/* 0B1248 7F07C718 8CA90000 */ lw $t1, ($a1) +/* 0B124C 7F07C71C AD240140 */ sw $a0, 0x140($t1) +/* 0B1250 7F07C720 8CA20000 */ lw $v0, ($a1) +/* 0B1254 7F07C724 E44C013C */ swc1 $f12, 0x13c($v0) +.L7F07C728: +/* 0B1258 7F07C728 03E00008 */ jr $ra +/* 0B125C 7F07C72C 00000000 */ nop +) +#endif + + + + + +#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; +} +#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 +void sub_GAME_7F07C7B4(void) { + ? sp24; + + // Node 0 + if (ptr_playerstank != 0) + { + // Node 1 + matrix_4x4_set_rotation_around_y((D_80055060 - D_80036474), ptr_playerstank, &sp24, ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4, ptr_playerstank->unk4->unk14->unk8->unk8->unk4->unk4); + flt_CODE_bss_800799A8 = (f32) *sp68; + flt_CODE_bss_800799A8.unk4 = (f32) sp68->unk4; + flt_CODE_bss_800799A8.unk8 = (f32) sp68->unk8; + matrix_4x4_rotate_vector_in_place(&sp24, &flt_CODE_bss_800799A8, sp68); + flt_CODE_bss_800799A8 = (f32) (flt_CODE_bss_800799A8 + *sp64); + flt_CODE_bss_800799A8.unk4 = (f32) (flt_CODE_bss_800799A8.unk4 + sp64->unk4); + flt_CODE_bss_800799A8.unk8 = (f32) (flt_CODE_bss_800799A8.unk8 + sp64->unk8); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055060 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07C7B4 +/* 0B12E4 7F07C7B4 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B12E8 7F07C7B8 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B12EC 7F07C7BC 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0B12F0 7F07C7C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B12F4 7F07C7C4 5080002D */ beql $a0, $zero, .L7F07C87C +/* 0B12F8 7F07C7C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B12FC 7F07C7CC 8C830004 */ lw $v1, 4($a0) +/* 0B1300 7F07C7D0 3C018005 */ lui $at, %hi(D_80055060) +/* 0B1304 7F07C7D4 C4245060 */ lwc1 $f4, %lo(D_80055060)($at) +/* 0B1308 7F07C7D8 8C6E0014 */ lw $t6, 0x14($v1) +/* 0B130C 7F07C7DC 3C018003 */ lui $at, %hi(D_80036474) +/* 0B1310 7F07C7E0 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B1314 7F07C7E4 8DCF0008 */ lw $t7, 8($t6) +/* 0B1318 7F07C7E8 27A50024 */ addiu $a1, $sp, 0x24 +/* 0B131C 7F07C7EC 46062301 */ sub.s $f12, $f4, $f6 +/* 0B1320 7F07C7F0 8DE20008 */ lw $v0, 8($t7) +/* 0B1324 7F07C7F4 8C580008 */ lw $t8, 8($v0) +/* 0B1328 7F07C7F8 8C590004 */ lw $t9, 4($v0) +/* 0B132C 7F07C7FC 8F060004 */ lw $a2, 4($t8) +/* 0B1330 7F07C800 8F270004 */ lw $a3, 4($t9) +/* 0B1334 7F07C804 AFA60068 */ sw $a2, 0x68($sp) +/* 0B1338 7F07C808 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B133C 7F07C80C AFA70064 */ sw $a3, 0x64($sp) +/* 0B1340 7F07C810 8FA60068 */ lw $a2, 0x68($sp) +/* 0B1344 7F07C814 3C058008 */ lui $a1, %hi(flt_CODE_bss_800799A8) +/* 0B1348 7F07C818 24A599A8 */ addiu $a1, %lo(flt_CODE_bss_800799A8) # addiu $a1, $a1, -0x6658 +/* 0B134C 7F07C81C C4C80000 */ lwc1 $f8, ($a2) +/* 0B1350 7F07C820 27A40024 */ addiu $a0, $sp, 0x24 +/* 0B1354 7F07C824 E4A80000 */ swc1 $f8, ($a1) +/* 0B1358 7F07C828 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0B135C 7F07C82C E4AA0004 */ swc1 $f10, 4($a1) +/* 0B1360 7F07C830 C4D00008 */ lwc1 $f16, 8($a2) +/* 0B1364 7F07C834 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B1368 7F07C838 E4B00008 */ swc1 $f16, 8($a1) +/* 0B136C 7F07C83C 8FA70064 */ lw $a3, 0x64($sp) +/* 0B1370 7F07C840 3C058008 */ lui $a1, %hi(flt_CODE_bss_800799A8) +/* 0B1374 7F07C844 24A599A8 */ addiu $a1, %lo(flt_CODE_bss_800799A8) # addiu $a1, $a1, -0x6658 +/* 0B1378 7F07C848 C4B20000 */ lwc1 $f18, ($a1) +/* 0B137C 7F07C84C C4E40000 */ lwc1 $f4, ($a3) +/* 0B1380 7F07C850 C4A80004 */ lwc1 $f8, 4($a1) +/* 0B1384 7F07C854 46049180 */ add.s $f6, $f18, $f4 +/* 0B1388 7F07C858 C4B20008 */ lwc1 $f18, 8($a1) +/* 0B138C 7F07C85C E4A60000 */ swc1 $f6, ($a1) +/* 0B1390 7F07C860 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0B1394 7F07C864 460A4400 */ add.s $f16, $f8, $f10 +/* 0B1398 7F07C868 E4B00004 */ swc1 $f16, 4($a1) +/* 0B139C 7F07C86C C4E40008 */ lwc1 $f4, 8($a3) +/* 0B13A0 7F07C870 46049180 */ add.s $f6, $f18, $f4 +/* 0B13A4 7F07C874 E4A60008 */ swc1 $f6, 8($a1) +/* 0B13A8 7F07C878 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07C87C: +/* 0B13AC 7F07C87C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0B13B0 7F07C880 03E00008 */ jr $ra +/* 0B13B4 7F07C884 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F07C888(void *arg0, void *arg1, ? arg2) { + f32 sp1C; + f32 sp20; + f32 sp24; + f32 sp38; + f32 sp3C; + f32 sp40; + f32 sp44; + ? temp_ret; + f32 temp_f6; + f32 temp_f10; + f32 temp_f12; + f32 temp_f2; + f32 temp_f16; + f32 temp_f18; + f32 temp_f8; + f32 temp_f4; + f32 temp_f0; + f32 temp_f2_2; + f32 temp_f10_2; + + // Node 0 + temp_ret = sub_GAME_7F040078(ptr_playerstank->unk4, arg0); + temp_f6 = (temp_ret->unk4 - flt_CODE_bss_800799A8); + sp44 = temp_f6; + temp_f10 = (temp_ret->unk8 - flt_CODE_bss_800799A8); + sp40 = temp_f10; + sp3C = (f32) (temp_ret->unk14 - flt_CODE_bss_800799A8.unk8); + sp38 = (f32) (temp_ret->unk18 - flt_CODE_bss_800799A8.unk8); + temp_f12 = (sinf(arg2, (cosf(arg2) * sp4C->unk14->unk14)) * sp4C->unk14->unk14); + temp_f2 = (-sp3C * temp_f12); + temp_f16 = (sp44 * sp34); + *arg0 = (f32) ((*arg1 + temp_f2) + temp_f16); + temp_f18 = (sp3C * sp34); + temp_f8 = (temp_f6 * temp_f12); + sp24 = temp_f8; + arg0->unk4 = (f32) ((arg1->unk8 + temp_f18) + temp_f8); + temp_f4 = (temp_f10 * sp34); + sp20 = temp_f4; + arg0->unk8 = (f32) ((*arg1 + temp_f2) + temp_f4); + temp_f0 = (sp40 * temp_f12); + arg0->unkC = (f32) ((arg1->unk8 + temp_f18) + temp_f0); + temp_f2_2 = (-sp38 * temp_f12); + arg0->unk10 = (f32) ((*arg1 + temp_f2_2) + sp20); + temp_f10_2 = (sp38 * sp34); + sp1C = temp_f10_2; + arg0->unk14 = (f32) ((arg1->unk8 + temp_f10_2) + temp_f0); + arg0->unk18 = (f32) ((*arg1 + temp_f2_2) + temp_f16); + arg0->unk1C = (f32) ((arg1->unk8 + sp1C) + sp24); + return temp_f0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C888 +/* 0B13B8 7F07C888 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0B13BC 7F07C88C 3C0E8003 */ lui $t6, %hi(ptr_playerstank) +/* 0B13C0 7F07C890 8DCE6450 */ lw $t6, %lo(ptr_playerstank)($t6) +/* 0B13C4 7F07C894 AFA60058 */ sw $a2, 0x58($sp) +/* 0B13C8 7F07C898 00803025 */ move $a2, $a0 +/* 0B13CC 7F07C89C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B13D0 7F07C8A0 AFA40050 */ sw $a0, 0x50($sp) +/* 0B13D4 7F07C8A4 8DC40004 */ lw $a0, 4($t6) +/* 0B13D8 7F07C8A8 AFA60050 */ sw $a2, 0x50($sp) +/* 0B13DC 7F07C8AC AFA50054 */ sw $a1, 0x54($sp) +/* 0B13E0 7F07C8B0 0FC1001E */ jal sub_GAME_7F040078 +/* 0B13E4 7F07C8B4 AFA4004C */ sw $a0, 0x4c($sp) +/* 0B13E8 7F07C8B8 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799A8) +/* 0B13EC 7F07C8BC 246399A8 */ addiu $v1, %lo(flt_CODE_bss_800799A8) # addiu $v1, $v1, -0x6658 +/* 0B13F0 7F07C8C0 C4600000 */ lwc1 $f0, ($v1) +/* 0B13F4 7F07C8C4 C4440004 */ lwc1 $f4, 4($v0) +/* 0B13F8 7F07C8C8 C4620008 */ lwc1 $f2, 8($v1) +/* 0B13FC 7F07C8CC C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 0B1400 7F07C8D0 46002181 */ sub.s $f6, $f4, $f0 +/* 0B1404 7F07C8D4 E7A60044 */ swc1 $f6, 0x44($sp) +/* 0B1408 7F07C8D8 C4480008 */ lwc1 $f8, 8($v0) +/* 0B140C 7F07C8DC 46004281 */ sub.s $f10, $f8, $f0 +/* 0B1410 7F07C8E0 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0B1414 7F07C8E4 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0B1418 7F07C8E8 46022181 */ sub.s $f6, $f4, $f2 +/* 0B141C 7F07C8EC E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0B1420 7F07C8F0 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0B1424 7F07C8F4 46024281 */ sub.s $f10, $f8, $f2 +/* 0B1428 7F07C8F8 0FC15FA8 */ jal cosf +/* 0B142C 7F07C8FC E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0B1430 7F07C900 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B1434 7F07C904 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 0B1438 7F07C908 8DF80014 */ lw $t8, 0x14($t7) +/* 0B143C 7F07C90C C7040014 */ lwc1 $f4, 0x14($t8) +/* 0B1440 7F07C910 46040382 */ mul.s $f14, $f0, $f4 +/* 0B1444 7F07C914 0FC15FAB */ jal sinf +/* 0B1448 7F07C918 E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0B144C 7F07C91C 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B1450 7F07C920 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0B1454 7F07C924 8FA50054 */ lw $a1, 0x54($sp) +/* 0B1458 7F07C928 8F280014 */ lw $t0, 0x14($t9) +/* 0B145C 7F07C92C 46004287 */ neg.s $f10, $f8 +/* 0B1460 7F07C930 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0B1464 7F07C934 C5060014 */ lwc1 $f6, 0x14($t0) +/* 0B1468 7F07C938 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B146C 7F07C93C 8FA60050 */ lw $a2, 0x50($sp) +/* 0B1470 7F07C940 46060302 */ mul.s $f12, $f0, $f6 +/* 0B1474 7F07C944 C4A60000 */ lwc1 $f6, ($a1) +/* 0B1478 7F07C948 460C5082 */ mul.s $f2, $f10, $f12 +/* 0B147C 7F07C94C 46023200 */ add.s $f8, $f6, $f2 +/* 0B1480 7F07C950 460E2402 */ mul.s $f16, $f4, $f14 +/* 0B1484 7F07C954 46104280 */ add.s $f10, $f8, $f16 +/* 0B1488 7F07C958 E4CA0000 */ swc1 $f10, ($a2) +/* 0B148C 7F07C95C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B1490 7F07C960 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0B1494 7F07C964 460E2482 */ mul.s $f18, $f4, $f14 +/* 0B1498 7F07C968 00000000 */ nop +/* 0B149C 7F07C96C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B14A0 7F07C970 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0B14A4 7F07C974 C4AA0008 */ lwc1 $f10, 8($a1) +/* 0B14A8 7F07C978 46125100 */ add.s $f4, $f10, $f18 +/* 0B14AC 7F07C97C 46082180 */ add.s $f6, $f4, $f8 +/* 0B14B0 7F07C980 E4C60004 */ swc1 $f6, 4($a2) +/* 0B14B4 7F07C984 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0B14B8 7F07C988 460E5102 */ mul.s $f4, $f10, $f14 +/* 0B14BC 7F07C98C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0B14C0 7F07C990 C4A80000 */ lwc1 $f8, ($a1) +/* 0B14C4 7F07C994 46024180 */ add.s $f6, $f8, $f2 +/* 0B14C8 7F07C998 46043280 */ add.s $f10, $f6, $f4 +/* 0B14CC 7F07C99C E4CA0008 */ swc1 $f10, 8($a2) +/* 0B14D0 7F07C9A0 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0B14D4 7F07C9A4 C4A60008 */ lwc1 $f6, 8($a1) +/* 0B14D8 7F07C9A8 460C4002 */ mul.s $f0, $f8, $f12 +/* 0B14DC 7F07C9AC 46123100 */ add.s $f4, $f6, $f18 +/* 0B14E0 7F07C9B0 46002280 */ add.s $f10, $f4, $f0 +/* 0B14E4 7F07C9B4 E4CA000C */ swc1 $f10, 0xc($a2) +/* 0B14E8 7F07C9B8 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0B14EC 7F07C9BC C4A40000 */ lwc1 $f4, ($a1) +/* 0B14F0 7F07C9C0 46004187 */ neg.s $f6, $f8 +/* 0B14F4 7F07C9C4 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0B14F8 7F07C9C8 460C3082 */ mul.s $f2, $f6, $f12 +/* 0B14FC 7F07C9CC 46022280 */ add.s $f10, $f4, $f2 +/* 0B1500 7F07C9D0 46085180 */ add.s $f6, $f10, $f8 +/* 0B1504 7F07C9D4 E4C60010 */ swc1 $f6, 0x10($a2) +/* 0B1508 7F07C9D8 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0B150C 7F07C9DC 460E2282 */ mul.s $f10, $f4, $f14 +/* 0B1510 7F07C9E0 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0B1514 7F07C9E4 C4A80008 */ lwc1 $f8, 8($a1) +/* 0B1518 7F07C9E8 460A4180 */ add.s $f6, $f8, $f10 +/* 0B151C 7F07C9EC 46003100 */ add.s $f4, $f6, $f0 +/* 0B1520 7F07C9F0 E4C40014 */ swc1 $f4, 0x14($a2) +/* 0B1524 7F07C9F4 C4A80000 */ lwc1 $f8, ($a1) +/* 0B1528 7F07C9F8 46024280 */ add.s $f10, $f8, $f2 +/* 0B152C 7F07C9FC 46105180 */ add.s $f6, $f10, $f16 +/* 0B1530 7F07CA00 E4C60018 */ swc1 $f6, 0x18($a2) +/* 0B1534 7F07CA04 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B1538 7F07CA08 C4A40008 */ lwc1 $f4, 8($a1) +/* 0B153C 7F07CA0C C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0B1540 7F07CA10 46082280 */ add.s $f10, $f4, $f8 +/* 0B1544 7F07CA14 46065100 */ add.s $f4, $f10, $f6 +/* 0B1548 7F07CA18 E4C4001C */ swc1 $f4, 0x1c($a2) +/* 0B154C 7F07CA1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1550 7F07CA20 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0B1554 7F07CA24 03E00008 */ jr $ra +/* 0B1558 7F07CA28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F07CA2C(s32 arg1, f32 arg2, f32 arg3, f32 arg4, ?32 arg5, void *arg6, void *arg7) { + ? temp_ret; + + // Node 0 + temp_ret = sub_GAME_7F0B0E24(arg4, arg5, 0.0f, 1.0f, 0.0f, 1.0f); + if (temp_ret == 0) + { + // Node 1 + if (arg6 != 0) + { + // Node 2 + *arg6 = arg1; + arg6->unk4 = 0.0f; + arg6->unk8 = arg2; + arg7->unk4 = 0.0f; + *arg7 = arg3; + arg7->unk8 = arg4; + } + } + // Node 3 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CA2C +/* 0B155C 7F07CA2C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0B1560 7F07CA30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B1564 7F07CA34 44811000 */ mtc1 $at, $f2 +/* 0B1568 7F07CA38 44800000 */ mtc1 $zero, $f0 +/* 0B156C 7F07CA3C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0B1570 7F07CA40 8FAE0044 */ lw $t6, 0x44($sp) +/* 0B1574 7F07CA44 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1578 7F07CA48 AFA50034 */ sw $a1, 0x34($sp) +/* 0B157C 7F07CA4C AFA60038 */ sw $a2, 0x38($sp) +/* 0B1580 7F07CA50 AFA7003C */ sw $a3, 0x3c($sp) +/* 0B1584 7F07CA54 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B1588 7F07CA58 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0B158C 7F07CA5C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1590 7F07CA60 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1594 7F07CA64 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0B1598 7F07CA68 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B159C 7F07CA6C AFAE0014 */ sw $t6, 0x14($sp) +/* 0B15A0 7F07CA70 44800000 */ mtc1 $zero, $f0 +/* 0B15A4 7F07CA74 1440000F */ bnez $v0, .L7F07CAB4 +/* 0B15A8 7F07CA78 00402025 */ move $a0, $v0 +/* 0B15AC 7F07CA7C 8FA30048 */ lw $v1, 0x48($sp) +/* 0B15B0 7F07CA80 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0B15B4 7F07CA84 5060000C */ beql $v1, $zero, .L7F07CAB8 +/* 0B15B8 7F07CA88 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B15BC 7F07CA8C 8FA2004C */ lw $v0, 0x4c($sp) +/* 0B15C0 7F07CA90 E4660000 */ swc1 $f6, ($v1) +/* 0B15C4 7F07CA94 E4600004 */ swc1 $f0, 4($v1) +/* 0B15C8 7F07CA98 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0B15CC 7F07CA9C E4680008 */ swc1 $f8, 8($v1) +/* 0B15D0 7F07CAA0 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0B15D4 7F07CAA4 E4400004 */ swc1 $f0, 4($v0) +/* 0B15D8 7F07CAA8 E44A0000 */ swc1 $f10, ($v0) +/* 0B15DC 7F07CAAC C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0B15E0 7F07CAB0 E4500008 */ swc1 $f16, 8($v0) +.L7F07CAB4: +/* 0B15E4 7F07CAB4 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07CAB8: +/* 0B15E8 7F07CAB8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0B15EC 7F07CABC 00801025 */ move $v0, $a0 +/* 0B15F0 7F07CAC0 03E00008 */ jr $ra +/* 0B15F4 7F07CAC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +?32 sub_GAME_7F07CAC8(void *arg0, s32 arg1, f32 arg2, ?32 arg3, ?32 arg4) { + ? sp34; + f32 sp74; + f32 sp7C; + void *sp8C; + ?32 sp94; + ? sp98; + s32 spBC; + f32 temp_f0; + f32 temp_f6; + f32 temp_f16; + f32 temp_f4; + f32 temp_f10; + f32 phi_f0; + f32 phi_f0_2; + + // Node 0 + sp94 = 0; + sub_GAME_7F07C888(&sp98, arg0); + if (ptr_playerstank != 0) + { + // Node 1 + sub_GAME_7F03D058(ptr_playerstank, 0); + } + // Node 2 + if (sub_GAME_7F07CA2C(&spBC, *arg0, arg0->unk8, sp98, sp9C, 0x213, arg3, arg4) != 0) + { + // Node 3 + if (sub_GAME_7F07CA2C(&spBC, sp98, sp9C, spA0, spA4, 0x213, arg3, arg4) != 0) + { + // Node 4 + if (sub_GAME_7F07CA2C(&spBC, spA0, spA4, spA8, spAC, 0x213, arg3, arg4) != 0) + { + // Node 5 + if (sub_GAME_7F07CA2C(&spBC, spA8, spAC, spB0, spB4, 0x213, arg3, arg4) != 0) + { + // Node 6 + if (sub_GAME_7F07CA2C(&spBC, spB0, spB4, sp98, sp9C, 0x213, arg3, arg4) != 0) + { + // Node 7 + sp94 = 1; + if (ptr_playerstank != 0) + { + // Node 8 + sp74 = (f32) ((*ptr_playerstank->unk4->unk14->unk8->unk8->unk10->unk4 + *ptr_playerstank->unk4->unk14->unk8->unk8->unkC->unk4) - *ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4); + temp_f0 = (arg2 + D_80036474); + sp7C = (f32) ((ptr_playerstank->unk4->unk14->unk8->unk8->unk10->unk4->unk8 + ptr_playerstank->unk4->unk14->unk8->unk8->unkC->unk4->unk8) - ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4->unk8); + phi_f0 = temp_f0; + if (D_80055064 <= temp_f0) + { + // Node 9 + phi_f0 = (temp_f0 - D_80055064); + } + // Node 10 + phi_f0_2 = phi_f0; + if (phi_f0 < 0.0f) + { + // Node 11 + phi_f0_2 = (phi_f0 + D_80055064); + } + // Node 12 + sp8C = (void *) ptr_playerstank->unk4->unk14; + matrix_4x4_set_rotation_around_y((D_80055064 - phi_f0_2), ptr_playerstank, &sp34, ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4, ptr_playerstank->unk4); + matrix_4x4_rotate_vector_in_place(&sp34, &sp74); + temp_f6 = (sp74 * ptr_playerstank->unk4->unk14->unk14); + sp74 = temp_f6; + temp_f16 = (sp7C * ptr_playerstank->unk4->unk14->unk14); + sp7C = temp_f16; + temp_f4 = (temp_f6 + *arg0); + sp74 = temp_f4; + spBC = arg1; + temp_f10 = (temp_f16 + arg0->unk8); + sp7C = temp_f10; + if (sub_GAME_7F07CA2C(&spBC, *arg0, arg0->unk8, temp_f4, temp_f10, 0x213, arg3, arg4) == 0) + { + // Node 13 + sp94 = 0; + } + } + } + } + } + } + } + // Node 14 + if (ptr_playerstank != 0) + { + // Node 15 + sub_GAME_7F03D058(ptr_playerstank, 1); + } + // Node 16 + return sp94; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055064 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07CAC8 +/* 0B15F8 7F07CAC8 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0B15FC 7F07CACC AFBF0024 */ sw $ra, 0x24($sp) +/* 0B1600 7F07CAD0 AFA400C0 */ sw $a0, 0xc0($sp) +/* 0B1604 7F07CAD4 AFA500C4 */ sw $a1, 0xc4($sp) +/* 0B1608 7F07CAD8 AFA500BC */ sw $a1, 0xbc($sp) +/* 0B160C 7F07CADC AFA600C8 */ sw $a2, 0xc8($sp) +/* 0B1610 7F07CAE0 AFA700CC */ sw $a3, 0xcc($sp) +/* 0B1614 7F07CAE4 AFA00094 */ sw $zero, 0x94($sp) +/* 0B1618 7F07CAE8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 0B161C 7F07CAEC 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0B1620 7F07CAF0 27A40098 */ addiu $a0, $sp, 0x98 +/* 0B1624 7F07CAF4 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B1628 7F07CAF8 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B162C 7F07CAFC 50800004 */ beql $a0, $zero, .L7F07CB10 +/* 0B1630 7F07CB00 8FA200C0 */ lw $v0, 0xc0($sp) +/* 0B1634 7F07CB04 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1638 7F07CB08 00002825 */ move $a1, $zero +/* 0B163C 7F07CB0C 8FA200C0 */ lw $v0, 0xc0($sp) +.L7F07CB10: +/* 0B1640 7F07CB10 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0B1644 7F07CB14 8FB800CC */ lw $t8, 0xcc($sp) +/* 0B1648 7F07CB18 8C450000 */ lw $a1, ($v0) +/* 0B164C 7F07CB1C 8C460008 */ lw $a2, 8($v0) +/* 0B1650 7F07CB20 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0B1654 7F07CB24 240F0213 */ li $t7, 531 +/* 0B1658 7F07CB28 AFAF0014 */ sw $t7, 0x14($sp) +/* 0B165C 7F07CB2C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1660 7F07CB30 8FA70098 */ lw $a3, 0x98($sp) +/* 0B1664 7F07CB34 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1668 7F07CB38 AFB80018 */ sw $t8, 0x18($sp) +/* 0B166C 7F07CB3C 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1670 7F07CB40 AFB9001C */ sw $t9, 0x1c($sp) +/* 0B1674 7F07CB44 1040008D */ beqz $v0, .L7F07CD7C +/* 0B1678 7F07CB48 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B167C 7F07CB4C C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0B1680 7F07CB50 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B1684 7F07CB54 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B1688 7F07CB58 24090213 */ li $t1, 531 +/* 0B168C 7F07CB5C AFA90014 */ sw $t1, 0x14($sp) +/* 0B1690 7F07CB60 8FA50098 */ lw $a1, 0x98($sp) +/* 0B1694 7F07CB64 8FA6009C */ lw $a2, 0x9c($sp) +/* 0B1698 7F07CB68 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0B169C 7F07CB6C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0B16A0 7F07CB70 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B16A4 7F07CB74 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B16A8 7F07CB78 AFAB001C */ sw $t3, 0x1c($sp) +/* 0B16AC 7F07CB7C 1040007F */ beqz $v0, .L7F07CD7C +/* 0B16B0 7F07CB80 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B16B4 7F07CB84 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 0B16B8 7F07CB88 8FAD00CC */ lw $t5, 0xcc($sp) +/* 0B16BC 7F07CB8C 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0B16C0 7F07CB90 240C0213 */ li $t4, 531 +/* 0B16C4 7F07CB94 AFAC0014 */ sw $t4, 0x14($sp) +/* 0B16C8 7F07CB98 8FA500A0 */ lw $a1, 0xa0($sp) +/* 0B16CC 7F07CB9C 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0B16D0 7F07CBA0 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0B16D4 7F07CBA4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0B16D8 7F07CBA8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0B16DC 7F07CBAC 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B16E0 7F07CBB0 AFAE001C */ sw $t6, 0x1c($sp) +/* 0B16E4 7F07CBB4 10400071 */ beqz $v0, .L7F07CD7C +/* 0B16E8 7F07CBB8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B16EC 7F07CBBC C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0B16F0 7F07CBC0 8FB800CC */ lw $t8, 0xcc($sp) +/* 0B16F4 7F07CBC4 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0B16F8 7F07CBC8 240F0213 */ li $t7, 531 +/* 0B16FC 7F07CBCC AFAF0014 */ sw $t7, 0x14($sp) +/* 0B1700 7F07CBD0 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0B1704 7F07CBD4 8FA600AC */ lw $a2, 0xac($sp) +/* 0B1708 7F07CBD8 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0B170C 7F07CBDC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B1710 7F07CBE0 AFB80018 */ sw $t8, 0x18($sp) +/* 0B1714 7F07CBE4 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1718 7F07CBE8 AFB9001C */ sw $t9, 0x1c($sp) +/* 0B171C 7F07CBEC 10400063 */ beqz $v0, .L7F07CD7C +/* 0B1720 7F07CBF0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1724 7F07CBF4 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0B1728 7F07CBF8 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B172C 7F07CBFC 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B1730 7F07CC00 24090213 */ li $t1, 531 +/* 0B1734 7F07CC04 AFA90014 */ sw $t1, 0x14($sp) +/* 0B1738 7F07CC08 8FA500B0 */ lw $a1, 0xb0($sp) +/* 0B173C 7F07CC0C 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B1740 7F07CC10 8FA70098 */ lw $a3, 0x98($sp) +/* 0B1744 7F07CC14 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0B1748 7F07CC18 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B174C 7F07CC1C 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1750 7F07CC20 AFAB001C */ sw $t3, 0x1c($sp) +/* 0B1754 7F07CC24 10400055 */ beqz $v0, .L7F07CD7C +/* 0B1758 7F07CC28 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B175C 7F07CC2C 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B1760 7F07CC30 240C0001 */ li $t4, 1 +/* 0B1764 7F07CC34 AFAC0094 */ sw $t4, 0x94($sp) +/* 0B1768 7F07CC38 10800050 */ beqz $a0, .L7F07CD7C +/* 0B176C 7F07CC3C 00000000 */ nop +/* 0B1770 7F07CC40 8C870004 */ lw $a3, 4($a0) +/* 0B1774 7F07CC44 44806000 */ mtc1 $zero, $f12 +/* 0B1778 7F07CC48 3C018005 */ lui $at, %hi(D_80055064) +/* 0B177C 7F07CC4C 8CE80014 */ lw $t0, 0x14($a3) +/* 0B1780 7F07CC50 C4225064 */ lwc1 $f2, %lo(D_80055064)($at) +/* 0B1784 7F07CC54 3C018003 */ lui $at, %hi(D_80036474) +/* 0B1788 7F07CC58 8D0D0008 */ lw $t5, 8($t0) +/* 0B178C 7F07CC5C 8DA20008 */ lw $v0, 8($t5) +/* 0B1790 7F07CC60 8C4E000C */ lw $t6, 0xc($v0) +/* 0B1794 7F07CC64 8C4F0010 */ lw $t7, 0x10($v0) +/* 0B1798 7F07CC68 8C580008 */ lw $t8, 8($v0) +/* 0B179C 7F07CC6C 8DC30004 */ lw $v1, 4($t6) +/* 0B17A0 7F07CC70 8DE50004 */ lw $a1, 4($t7) +/* 0B17A4 7F07CC74 8F060004 */ lw $a2, 4($t8) +/* 0B17A8 7F07CC78 C4640000 */ lwc1 $f4, ($v1) +/* 0B17AC 7F07CC7C C4B20000 */ lwc1 $f18, ($a1) +/* 0B17B0 7F07CC80 C4C80000 */ lwc1 $f8, ($a2) +/* 0B17B4 7F07CC84 E7AC0078 */ swc1 $f12, 0x78($sp) +/* 0B17B8 7F07CC88 46049180 */ add.s $f6, $f18, $f4 +/* 0B17BC 7F07CC8C 46083281 */ sub.s $f10, $f6, $f8 +/* 0B17C0 7F07CC90 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0B17C4 7F07CC94 C4720008 */ lwc1 $f18, 8($v1) +/* 0B17C8 7F07CC98 C4B00008 */ lwc1 $f16, 8($a1) +/* 0B17CC 7F07CC9C C7AA00C8 */ lwc1 $f10, 0xc8($sp) +/* 0B17D0 7F07CCA0 C4C60008 */ lwc1 $f6, 8($a2) +/* 0B17D4 7F07CCA4 46128100 */ add.s $f4, $f16, $f18 +/* 0B17D8 7F07CCA8 C4306474 */ lwc1 $f16, %lo(D_80036474)($at) +/* 0B17DC 7F07CCAC 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B17E0 7F07CCB0 46105000 */ add.s $f0, $f10, $f16 +/* 0B17E4 7F07CCB4 46062201 */ sub.s $f8, $f4, $f6 +/* 0B17E8 7F07CCB8 4600103E */ c.le.s $f2, $f0 +/* 0B17EC 7F07CCBC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0B17F0 7F07CCC0 45020003 */ bc1fl .L7F07CCD0 +/* 0B17F4 7F07CCC4 460C003C */ c.lt.s $f0, $f12 +/* 0B17F8 7F07CCC8 46020001 */ sub.s $f0, $f0, $f2 +/* 0B17FC 7F07CCCC 460C003C */ c.lt.s $f0, $f12 +.L7F07CCD0: +/* 0B1800 7F07CCD0 00000000 */ nop +/* 0B1804 7F07CCD4 45020003 */ bc1fl .L7F07CCE4 +/* 0B1808 7F07CCD8 46001301 */ sub.s $f12, $f2, $f0 +/* 0B180C 7F07CCDC 46020000 */ add.s $f0, $f0, $f2 +/* 0B1810 7F07CCE0 46001301 */ sub.s $f12, $f2, $f0 +.L7F07CCE4: +/* 0B1814 7F07CCE4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B1818 7F07CCE8 AFA8008C */ sw $t0, 0x8c($sp) +/* 0B181C 7F07CCEC 27A40034 */ addiu $a0, $sp, 0x34 +/* 0B1820 7F07CCF0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B1824 7F07CCF4 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B1828 7F07CCF8 8FA8008C */ lw $t0, 0x8c($sp) +/* 0B182C 7F07CCFC C7B20074 */ lwc1 $f18, 0x74($sp) +/* 0B1830 7F07CD00 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0B1834 7F07CD04 C5040014 */ lwc1 $f4, 0x14($t0) +/* 0B1838 7F07CD08 8FA200C0 */ lw $v0, 0xc0($sp) +/* 0B183C 7F07CD0C 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0B1840 7F07CD10 46049182 */ mul.s $f6, $f18, $f4 +/* 0B1844 7F07CD14 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B1848 7F07CD18 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B184C 7F07CD1C 24090213 */ li $t1, 531 +/* 0B1850 7F07CD20 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1854 7F07CD24 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0B1858 7F07CD28 C50A0014 */ lwc1 $f10, 0x14($t0) +/* 0B185C 7F07CD2C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B1860 7F07CD30 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0B1864 7F07CD34 C4520000 */ lwc1 $f18, ($v0) +/* 0B1868 7F07CD38 46123100 */ add.s $f4, $f6, $f18 +/* 0B186C 7F07CD3C E7A40074 */ swc1 $f4, 0x74($sp) +/* 0B1870 7F07CD40 C4480008 */ lwc1 $f8, 8($v0) +/* 0B1874 7F07CD44 AFB900BC */ sw $t9, 0xbc($sp) +/* 0B1878 7F07CD48 44072000 */ mfc1 $a3, $f4 +/* 0B187C 7F07CD4C 46088280 */ add.s $f10, $f16, $f8 +/* 0B1880 7F07CD50 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0B1884 7F07CD54 8C460008 */ lw $a2, 8($v0) +/* 0B1888 7F07CD58 8C450000 */ lw $a1, ($v0) +/* 0B188C 7F07CD5C AFA90014 */ sw $t1, 0x14($sp) +/* 0B1890 7F07CD60 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B1894 7F07CD64 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B1898 7F07CD68 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B189C 7F07CD6C AFAB001C */ sw $t3, 0x1c($sp) +/* 0B18A0 7F07CD70 14400002 */ bnez $v0, .L7F07CD7C +/* 0B18A4 7F07CD74 00000000 */ nop +/* 0B18A8 7F07CD78 AFA00094 */ sw $zero, 0x94($sp) +.L7F07CD7C: +/* 0B18AC 7F07CD7C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B18B0 7F07CD80 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B18B4 7F07CD84 50800004 */ beql $a0, $zero, .L7F07CD98 +/* 0B18B8 7F07CD88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B18BC 7F07CD8C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B18C0 7F07CD90 24050001 */ li $a1, 1 +/* 0B18C4 7F07CD94 8FBF0024 */ lw $ra, 0x24($sp) +.L7F07CD98: +/* 0B18C8 7F07CD98 8FA20094 */ lw $v0, 0x94($sp) +/* 0B18CC 7F07CD9C 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0B18D0 7F07CDA0 03E00008 */ jr $ra +/* 0B18D4 7F07CDA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CDA8(? arg2) { + // Node 0 + return sub_GAME_7F07CAC8(arg2, arg2, 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CDA8 +/* 0B18D8 7F07CDA8 44866000 */ mtc1 $a2, $f12 +/* 0B18DC 7F07CDAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B18E0 7F07CDB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B18E4 7F07CDB4 44066000 */ mfc1 $a2, $f12 +/* 0B18E8 7F07CDB8 AFA00010 */ sw $zero, 0x10($sp) +/* 0B18EC 7F07CDBC 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B18F0 7F07CDC0 00003825 */ move $a3, $zero +/* 0B18F4 7F07CDC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B18F8 7F07CDC8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B18FC 7F07CDCC 03E00008 */ jr $ra +/* 0B1900 7F07CDD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CDD4(void *arg0, s32 arg1, void *arg2) { + ?32 sp3C; + + // Node 0 + sp3C = (?32) pPlayer->field_488; + if (sub_GAME_7F0B0E24(&sp3C, pPlayer->field_48C, pPlayer->field_494, *arg0, (f32) arg0->unk8, 0, 0.0f, 1.0f, 0.0f, 1.0f) == 0) + { + // Node 3 + // Node 4 + return 0; + } + // Node 1 + if (sub_GAME_7F07CDA8(arg0, sp3C, arg1) == 0) + { + // Node 3 + // Node 4 + return 0; + } + // Node 2 + *arg2 = sp3C; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CDD4 +/* 0B1904 7F07CDD4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B1908 7F07CDD8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B190C 7F07CDDC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B1910 7F07CDE0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1914 7F07CDE4 AFA40040 */ sw $a0, 0x40($sp) +/* 0B1918 7F07CDE8 AFA50044 */ sw $a1, 0x44($sp) +/* 0B191C 7F07CDEC AFA60048 */ sw $a2, 0x48($sp) +/* 0B1920 7F07CDF0 8C4E0488 */ lw $t6, 0x488($v0) +/* 0B1924 7F07CDF4 8FAF0040 */ lw $t7, 0x40($sp) +/* 0B1928 7F07CDF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B192C 7F07CDFC AFAE003C */ sw $t6, 0x3c($sp) +/* 0B1930 7F07CE00 C5E40008 */ lwc1 $f4, 8($t7) +/* 0B1934 7F07CE04 8C460494 */ lw $a2, 0x494($v0) +/* 0B1938 7F07CE08 8C45048C */ lw $a1, 0x48c($v0) +/* 0B193C 7F07CE0C 8DE70000 */ lw $a3, ($t7) +/* 0B1940 7F07CE10 44811000 */ mtc1 $at, $f2 +/* 0B1944 7F07CE14 44800000 */ mtc1 $zero, $f0 +/* 0B1948 7F07CE18 AFA00014 */ sw $zero, 0x14($sp) +/* 0B194C 7F07CE1C 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1950 7F07CE20 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1954 7F07CE24 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B1958 7F07CE28 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0B195C 7F07CE2C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1960 7F07CE30 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B1964 7F07CE34 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0B1968 7F07CE38 1040000A */ beqz $v0, .L7F07CE64 +/* 0B196C 7F07CE3C 8FA40040 */ lw $a0, 0x40($sp) +/* 0B1970 7F07CE40 8FA5003C */ lw $a1, 0x3c($sp) +/* 0B1974 7F07CE44 0FC1F36A */ jal sub_GAME_7F07CDA8 +/* 0B1978 7F07CE48 8FA60044 */ lw $a2, 0x44($sp) +/* 0B197C 7F07CE4C 10400005 */ beqz $v0, .L7F07CE64 +/* 0B1980 7F07CE50 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B1984 7F07CE54 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1988 7F07CE58 24020001 */ li $v0, 1 +/* 0B198C 7F07CE5C 10000002 */ b .L7F07CE68 +/* 0B1990 7F07CE60 AF380000 */ sw $t8, ($t9) +.L7F07CE64: +/* 0B1994 7F07CE64 00001025 */ move $v0, $zero +.L7F07CE68: +/* 0B1998 7F07CE68 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B199C 7F07CE6C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B19A0 7F07CE70 03E00008 */ jr $ra +/* 0B19A4 7F07CE74 00000000 */ nop +) +#endif + + + + +s32 get_intank_flag(void) { + return in_tank_flag; +} + + + + + + +#ifdef NONMATCHING +void get_ptr_for_players_tank(void) { + // Node 0 + if (in_tank_flag == 1) + { + // Node 1 + return ptr_playerstank; + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_for_players_tank +/* 0B19B4 7F07CE84 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B19B8 7F07CE88 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B19BC 7F07CE8C 24010001 */ li $at, 1 +/* 0B19C0 7F07CE90 00001025 */ move $v0, $zero +/* 0B19C4 7F07CE94 15C10004 */ bne $t6, $at, .L7F07CEA8 +/* 0B19C8 7F07CE98 00000000 */ nop +/* 0B19CC 7F07CE9C 3C028003 */ lui $v0, %hi(ptr_playerstank) +/* 0B19D0 7F07CEA0 03E00008 */ jr $ra +/* 0B19D4 7F07CEA4 8C426450 */ lw $v0, %lo(ptr_playerstank)($v0) + +.L7F07CEA8: +/* 0B19D8 7F07CEA8 03E00008 */ jr $ra +/* 0B19DC 7F07CEAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CEB0(void *arg0) { + f32 sp18; + f32 temp_f14; + ? temp_ret; + f32 phi_f14; + f32 phi_f14_2; + + // Node 0 + temp_f14 = (D_80036464 + D_80036474); + phi_f14 = temp_f14; + if (D_80055068 <= temp_f14) + { + // Node 1 + phi_f14 = (temp_f14 - D_80055068); + } + // Node 2 + phi_f14_2 = phi_f14; + if (phi_f14 < 0.0f) + { + // Node 3 + phi_f14_2 = (phi_f14 + D_80055068); + } + // Node 4 + sp18 = sinf(phi_f14_2, phi_f14_2); + *arg0 = (f32) (cosf(D_8003646C) * -sp18); + arg0->unk4 = sinf(D_8003646C); + sp18 = cosf(sp1C); + temp_ret = cosf(D_8003646C); + arg0->unk8 = (f32) (temp_ret * sp18); + return temp_ret; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055068 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07CEB0 +/* 0B19E0 7F07CEB0 3C018005 */ lui $at, %hi(D_80055068) +/* 0B19E4 7F07CEB4 C4205068 */ lwc1 $f0, %lo(D_80055068)($at) +/* 0B19E8 7F07CEB8 3C018003 */ lui $at, %hi(D_80036464) +/* 0B19EC 7F07CEBC C4246464 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0B19F0 7F07CEC0 3C018003 */ lui $at, %hi(D_80036474) +/* 0B19F4 7F07CEC4 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B19F8 7F07CEC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B19FC 7F07CECC 44804000 */ mtc1 $zero, $f8 +/* 0B1A00 7F07CED0 46062380 */ add.s $f14, $f4, $f6 +/* 0B1A04 7F07CED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B1A08 7F07CED8 AFA40020 */ sw $a0, 0x20($sp) +/* 0B1A0C 7F07CEDC 460E003E */ c.le.s $f0, $f14 +/* 0B1A10 7F07CEE0 00000000 */ nop +/* 0B1A14 7F07CEE4 45020003 */ bc1fl .L7F07CEF4 +/* 0B1A18 7F07CEE8 4608703C */ c.lt.s $f14, $f8 +/* 0B1A1C 7F07CEEC 46007381 */ sub.s $f14, $f14, $f0 +/* 0B1A20 7F07CEF0 4608703C */ c.lt.s $f14, $f8 +.L7F07CEF4: +/* 0B1A24 7F07CEF4 00000000 */ nop +/* 0B1A28 7F07CEF8 45020003 */ bc1fl .L7F07CF08 +/* 0B1A2C 7F07CEFC 46007306 */ mov.s $f12, $f14 +/* 0B1A30 7F07CF00 46007380 */ add.s $f14, $f14, $f0 +/* 0B1A34 7F07CF04 46007306 */ mov.s $f12, $f14 +.L7F07CF08: +/* 0B1A38 7F07CF08 0FC15FAB */ jal sinf +/* 0B1A3C 7F07CF0C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B1A40 7F07CF10 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A44 7F07CF14 C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A48 7F07CF18 0FC15FA8 */ jal cosf +/* 0B1A4C 7F07CF1C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1A50 7F07CF20 C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 0B1A54 7F07CF24 8FAE0020 */ lw $t6, 0x20($sp) +/* 0B1A58 7F07CF28 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A5C 7F07CF2C 46005407 */ neg.s $f16, $f10 +/* 0B1A60 7F07CF30 46100482 */ mul.s $f18, $f0, $f16 +/* 0B1A64 7F07CF34 E5D20000 */ swc1 $f18, ($t6) +/* 0B1A68 7F07CF38 0FC15FAB */ jal sinf +/* 0B1A6C 7F07CF3C C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A70 7F07CF40 8FAF0020 */ lw $t7, 0x20($sp) +/* 0B1A74 7F07CF44 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0B1A78 7F07CF48 0FC15FA8 */ jal cosf +/* 0B1A7C 7F07CF4C E5E00004 */ swc1 $f0, 4($t7) +/* 0B1A80 7F07CF50 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A84 7F07CF54 C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A88 7F07CF58 0FC15FA8 */ jal cosf +/* 0B1A8C 7F07CF5C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1A90 7F07CF60 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0B1A94 7F07CF64 8FB80020 */ lw $t8, 0x20($sp) +/* 0B1A98 7F07CF68 46040182 */ mul.s $f6, $f0, $f4 +/* 0B1A9C 7F07CF6C E7060008 */ swc1 $f6, 8($t8) +/* 0B1AA0 7F07CF70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1AA4 7F07CF74 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B1AA8 7F07CF78 03E00008 */ jr $ra +/* 0B1AAC 7F07CF7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CF80(void) { + // Node 0 + return D_8003646C; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CF80 +/* 0B1AB0 7F07CF80 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1AB4 7F07CF84 03E00008 */ jr $ra +/* 0B1AB8 7F07CF88 C420646C */ lwc1 $f0, %lo(D_8003646C)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 cal_player_collision(void *arg0, void *arg1) { + ? sp3C; + s32 sp7C; + ? sp80; + f32 sp84; + f32 sp88; + ?32 sp8C; + ?32 sp90; + s32 sp94; + void *phi_v1; + + // Node 0 + sp94 = 0; + if ((in_tank_flag == 1) && (dword_CODE_bss_800799B8 != 0)) + { + // Node 2 + sp94 = sub_GAME_7F07CDD4(D_80036464, arg1); + } + else + { + // Node 3 + sp90 = (?32) pPlayer->field_488; + if (obj_collision_flag != 0) + { + // Node 4 + sp8C = 0x1f; + } + else + { + // Node 5 + sp8C = 0; + } + // Node 6 + sub_GAME_7F08A274(pPlayer->field_A8, &sp80, &sp88, &sp84); + if (D_8003644C != 0) + { + // Node 7 + sub_GAME_7F03D058(D_8003644C, 0); + } + // Node 8 + sub_GAME_7F03D058(pPlayer->field_A8, 0); + sp7C = sub_GAME_7F0B2314(&sp90, *arg0, arg0->unk8, sp80, &sp3C); + if (sub_GAME_7F0B239C(&sp3C) != 0) + { + // Node 9 + pPlayer->field_29FC = 0; + } + // Node 10 + if ((sub_GAME_7F0B0E24(&sp90, pPlayer->field_48C, pPlayer->field_494, *arg0, (f32) arg0->unk8, sp8C, sp88, sp84, 0.0f, 1.0f) != 0) && (sub_GAME_7F0B18B8(&sp90, *arg0, arg0->unk8, sp80, sp8C, sp88, sp84) < 0)) + { + // Node 12 + if ((-100.0f == pPlayer->ducking_height_offset) || (sp7C < 0)) + { + // Node 14 + if ((sub_GAME_7F0B23A4(&sp3C) == 0) && (sub_GAME_7F0B26B8(&sp90, *arg0, arg0->unk8, sp80, (f32) (pPlayer->field_490 + 175.0f)) >= 0)) + { + // Node 16 + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + else + { + // Node 17 + *arg1 = sp90; + sp94 = 1; + phi_v1 = pPlayer; + } + } + else + { + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + } + else + { + // Node 18 + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + // Node 24 + sub_GAME_7F03D058(phi_v1->unkA8, 1); + if (D_8003644C != 0) + { + // Node 25 + sub_GAME_7F03D058(D_8003644C, 1); + } + } + // Node 26 + return sp94; +} +#else +GLOBAL_ASM( +.text +glabel cal_player_collision +/* 0B1ABC 7F07CF8C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B1AC0 7F07CF90 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B1AC4 7F07CF94 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0B1AC8 7F07CF98 24010001 */ li $at, 1 +/* 0B1ACC 7F07CF9C AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1AD0 7F07CFA0 AFA40098 */ sw $a0, 0x98($sp) +/* 0B1AD4 7F07CFA4 AFA5009C */ sw $a1, 0x9c($sp) +/* 0B1AD8 7F07CFA8 15C1000B */ bne $t6, $at, .L7F07CFD8 +/* 0B1ADC 7F07CFAC AFA00094 */ sw $zero, 0x94($sp) +/* 0B1AE0 7F07CFB0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) +/* 0B1AE4 7F07CFB4 8DEF99B8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0B1AE8 7F07CFB8 3C058003 */ lui $a1, %hi(D_80036464) +/* 0B1AEC 7F07CFBC 8FA6009C */ lw $a2, 0x9c($sp) +/* 0B1AF0 7F07CFC0 11E00005 */ beqz $t7, .L7F07CFD8 +/* 0B1AF4 7F07CFC4 00000000 */ nop +/* 0B1AF8 7F07CFC8 0FC1F375 */ jal sub_GAME_7F07CDD4 +/* 0B1AFC 7F07CFCC 8CA56464 */ lw $a1, %lo(D_80036464)($a1) +/* 0B1B00 7F07CFD0 10000093 */ b .L7F07D220 +/* 0B1B04 7F07CFD4 AFA20094 */ sw $v0, 0x94($sp) +.L7F07CFD8: +/* 0B1B08 7F07CFD8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1B0C 7F07CFDC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1B10 7F07CFE0 3C198003 */ lui $t9, %hi(obj_collision_flag) +/* 0B1B14 7F07CFE4 8F3964C8 */ lw $t9, %lo(obj_collision_flag)($t9) +/* 0B1B18 7F07CFE8 8C780488 */ lw $t8, 0x488($v1) +/* 0B1B1C 7F07CFEC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0B1B20 7F07CFF0 13200004 */ beqz $t9, .L7F07D004 +/* 0B1B24 7F07CFF4 AFB80090 */ sw $t8, 0x90($sp) +/* 0B1B28 7F07CFF8 2408001F */ li $t0, 31 +/* 0B1B2C 7F07CFFC 10000002 */ b .L7F07D008 +/* 0B1B30 7F07D000 AFA8008C */ sw $t0, 0x8c($sp) +.L7F07D004: +/* 0B1B34 7F07D004 AFA0008C */ sw $zero, 0x8c($sp) +.L7F07D008: +/* 0B1B38 7F07D008 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1B3C 7F07D00C 27A60088 */ addiu $a2, $sp, 0x88 +/* 0B1B40 7F07D010 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B1B44 7F07D014 27A70084 */ addiu $a3, $sp, 0x84 +/* 0B1B48 7F07D018 3C048003 */ lui $a0, %hi(D_8003644C) +/* 0B1B4C 7F07D01C 8C84644C */ lw $a0, %lo(D_8003644C)($a0) +/* 0B1B50 7F07D020 10800003 */ beqz $a0, .L7F07D030 +/* 0B1B54 7F07D024 00000000 */ nop +/* 0B1B58 7F07D028 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1B5C 7F07D02C 00002825 */ move $a1, $zero +.L7F07D030: +/* 0B1B60 7F07D030 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B1B64 7F07D034 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B1B68 7F07D038 00002825 */ move $a1, $zero +/* 0B1B6C 7F07D03C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1B70 7F07D040 8D2400A8 */ lw $a0, 0xa8($t1) +/* 0B1B74 7F07D044 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1B78 7F07D048 27AA003C */ addiu $t2, $sp, 0x3c +/* 0B1B7C 7F07D04C 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1B80 7F07D050 8C450000 */ lw $a1, ($v0) +/* 0B1B84 7F07D054 8C460008 */ lw $a2, 8($v0) +/* 0B1B88 7F07D058 AFAA0010 */ sw $t2, 0x10($sp) +/* 0B1B8C 7F07D05C 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0B1B90 7F07D060 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1B94 7F07D064 AFA2007C */ sw $v0, 0x7c($sp) +/* 0B1B98 7F07D068 0FC2C8E7 */ jal sub_GAME_7F0B239C +/* 0B1B9C 7F07D06C 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1BA0 7F07D070 10400004 */ beqz $v0, .L7F07D084 +/* 0B1BA4 7F07D074 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1BA8 7F07D078 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B1BAC 7F07D07C 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B1BB0 7F07D080 AD6029FC */ sw $zero, 0x29fc($t3) +.L7F07D084: +/* 0B1BB4 7F07D084 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1BB8 7F07D088 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1BBC 7F07D08C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1BC0 7F07D090 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B1BC4 7F07D094 C4440008 */ lwc1 $f4, 8($v0) +/* 0B1BC8 7F07D098 8C470000 */ lw $a3, ($v0) +/* 0B1BCC 7F07D09C 8C65048C */ lw $a1, 0x48c($v1) +/* 0B1BD0 7F07D0A0 8C660494 */ lw $a2, 0x494($v1) +/* 0B1BD4 7F07D0A4 44818000 */ mtc1 $at, $f16 +/* 0B1BD8 7F07D0A8 8FAC008C */ lw $t4, 0x8c($sp) +/* 0B1BDC 7F07D0AC C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0B1BE0 7F07D0B0 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0B1BE4 7F07D0B4 44805000 */ mtc1 $zero, $f10 +/* 0B1BE8 7F07D0B8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1BEC 7F07D0BC AFAC0014 */ sw $t4, 0x14($sp) +/* 0B1BF0 7F07D0C0 E7B00024 */ swc1 $f16, 0x24($sp) +/* 0B1BF4 7F07D0C4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0B1BF8 7F07D0C8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0B1BFC 7F07D0CC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B1C00 7F07D0D0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0B1C04 7F07D0D4 10400035 */ beqz $v0, .L7F07D1AC +/* 0B1C08 7F07D0D8 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1C0C 7F07D0DC 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1C10 7F07D0E0 8FAD008C */ lw $t5, 0x8c($sp) +/* 0B1C14 7F07D0E4 C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0B1C18 7F07D0E8 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0B1C1C 7F07D0EC 8C450000 */ lw $a1, ($v0) +/* 0B1C20 7F07D0F0 8C460008 */ lw $a2, 8($v0) +/* 0B1C24 7F07D0F4 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1C28 7F07D0F8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0B1C2C 7F07D0FC E7B20014 */ swc1 $f18, 0x14($sp) +/* 0B1C30 7F07D100 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0B1C34 7F07D104 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0B1C38 7F07D108 04410028 */ bgez $v0, .L7F07D1AC +/* 0B1C3C 7F07D10C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1C40 7F07D110 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1C44 7F07D114 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0B1C48 7F07D118 44813000 */ mtc1 $at, $f6 +/* 0B1C4C 7F07D11C C46800A0 */ lwc1 $f8, 0xa0($v1) +/* 0B1C50 7F07D120 8FAE007C */ lw $t6, 0x7c($sp) +/* 0B1C54 7F07D124 46083032 */ c.eq.s $f6, $f8 +/* 0B1C58 7F07D128 00000000 */ nop +/* 0B1C5C 7F07D12C 45010003 */ bc1t .L7F07D13C +/* 0B1C60 7F07D130 00000000 */ nop +/* 0B1C64 7F07D134 05C1001F */ bgez $t6, .L7F07D1B4 +/* 0B1C68 7F07D138 00000000 */ nop +.L7F07D13C: +/* 0B1C6C 7F07D13C 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0B1C70 7F07D140 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1C74 7F07D144 14400011 */ bnez $v0, .L7F07D18C +/* 0B1C78 7F07D148 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1C7C 7F07D14C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B1C80 7F07D150 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B1C84 7F07D154 3C01432F */ li $at, 0x432F0000 # 175.000000 +/* 0B1C88 7F07D158 44818000 */ mtc1 $at, $f16 +/* 0B1C8C 7F07D15C C70A0490 */ lwc1 $f10, 0x490($t8) +/* 0B1C90 7F07D160 8FAF0098 */ lw $t7, 0x98($sp) +/* 0B1C94 7F07D164 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1C98 7F07D168 46105480 */ add.s $f18, $f10, $f16 +/* 0B1C9C 7F07D16C 8DE50000 */ lw $a1, ($t7) +/* 0B1CA0 7F07D170 8DE60008 */ lw $a2, 8($t7) +/* 0B1CA4 7F07D174 0FC2C9AE */ jal sub_GAME_7F0B26B8 +/* 0B1CA8 7F07D178 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B1CAC 7F07D17C 04400003 */ bltz $v0, .L7F07D18C +/* 0B1CB0 7F07D180 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CB4 7F07D184 1000000B */ b .L7F07D1B4 +/* 0B1CB8 7F07D188 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07D18C: +/* 0B1CBC 7F07D18C 8FB90090 */ lw $t9, 0x90($sp) +/* 0B1CC0 7F07D190 8FA8009C */ lw $t0, 0x9c($sp) +/* 0B1CC4 7F07D194 24090001 */ li $t1, 1 +/* 0B1CC8 7F07D198 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CCC 7F07D19C AD190000 */ sw $t9, ($t0) +/* 0B1CD0 7F07D1A0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1CD4 7F07D1A4 10000015 */ b .L7F07D1FC +/* 0B1CD8 7F07D1A8 AFA90094 */ sw $t1, 0x94($sp) +.L7F07D1AC: +/* 0B1CDC 7F07D1AC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CE0 7F07D1B0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07D1B4: +/* 0B1CE4 7F07D1B4 3C0A8003 */ lui $t2, %hi(ptr_playerstank) +/* 0B1CE8 7F07D1B8 8D4A6450 */ lw $t2, %lo(ptr_playerstank)($t2) +/* 0B1CEC 7F07D1BC 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007BA04) +/* 0B1CF0 7F07D1C0 5540000F */ bnezl $t2, .L7F07D200 +/* 0B1CF4 7F07D1C4 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1CF8 7F07D1C8 8C42BA04 */ lw $v0, %lo(dword_CODE_bss_8007BA04)($v0) +/* 0B1CFC 7F07D1CC 5040000C */ beql $v0, $zero, .L7F07D200 +/* 0B1D00 7F07D1D0 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1D04 7F07D1D4 904B0000 */ lbu $t3, ($v0) +/* 0B1D08 7F07D1D8 24010001 */ li $at, 1 +/* 0B1D0C 7F07D1DC 55610008 */ bnel $t3, $at, .L7F07D200 +/* 0B1D10 7F07D1E0 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1D14 7F07D1E4 8C440004 */ lw $a0, 4($v0) +/* 0B1D18 7F07D1E8 2401002D */ li $at, 45 +/* 0B1D1C 7F07D1EC 908C0003 */ lbu $t4, 3($a0) +/* 0B1D20 7F07D1F0 15810002 */ bne $t4, $at, .L7F07D1FC +/* 0B1D24 7F07D1F4 3C018003 */ lui $at, %hi(D_8003644C) +/* 0B1D28 7F07D1F8 AC22644C */ sw $v0, %lo(D_8003644C)($at) +.L7F07D1FC: +/* 0B1D2C 7F07D1FC 8C6400A8 */ lw $a0, 0xa8($v1) +.L7F07D200: +/* 0B1D30 7F07D200 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1D34 7F07D204 24050001 */ li $a1, 1 +/* 0B1D38 7F07D208 3C048003 */ lui $a0, %hi(D_8003644C) +/* 0B1D3C 7F07D20C 8C84644C */ lw $a0, %lo(D_8003644C)($a0) +/* 0B1D40 7F07D210 50800004 */ beql $a0, $zero, .L7F07D224 +/* 0B1D44 7F07D214 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B1D48 7F07D218 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1D4C 7F07D21C 24050001 */ li $a1, 1 +.L7F07D220: +/* 0B1D50 7F07D220 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07D224: +/* 0B1D54 7F07D224 8FA20094 */ lw $v0, 0x94($sp) +/* 0B1D58 7F07D228 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0B1D5C 7F07D22C 03E00008 */ jr $ra +/* 0B1D60 7F07D230 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D234(void *arg0, s32 arg1, ? arg2) { + ?32 sp1C; + + // Node 0 + sub_GAME_7F0B1CC4(); + if (cal_player_collision(arg0, &sp1C) == 0) + { + // Node 2 + sub_GAME_7F0B28B0(arg1, arg2); + // Node 3 + return 0; + } + // Node 1 + pPlayer->field_488 = sp1C; + pPlayer->field_48C = (f32) *arg0; + pPlayer->field_494 = (f32) arg0->unk8; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D234 +/* 0B1D64 7F07D234 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B1D68 7F07D238 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B1D6C 7F07D23C AFA40020 */ sw $a0, 0x20($sp) +/* 0B1D70 7F07D240 AFA50024 */ sw $a1, 0x24($sp) +/* 0B1D74 7F07D244 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0B1D78 7F07D248 AFA60028 */ sw $a2, 0x28($sp) +/* 0B1D7C 7F07D24C 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1D80 7F07D250 0FC1F3E3 */ jal cal_player_collision +/* 0B1D84 7F07D254 27A5001C */ addiu $a1, $sp, 0x1c +/* 0B1D88 7F07D258 1040000E */ beqz $v0, .L7F07D294 +/* 0B1D8C 7F07D25C 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1D90 7F07D260 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1D94 7F07D264 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B1D98 7F07D268 8C6F0000 */ lw $t7, ($v1) +/* 0B1D9C 7F07D26C 8FAE001C */ lw $t6, 0x1c($sp) +/* 0B1DA0 7F07D270 24020001 */ li $v0, 1 +/* 0B1DA4 7F07D274 ADEE0488 */ sw $t6, 0x488($t7) +/* 0B1DA8 7F07D278 8C780000 */ lw $t8, ($v1) +/* 0B1DAC 7F07D27C C4840000 */ lwc1 $f4, ($a0) +/* 0B1DB0 7F07D280 E704048C */ swc1 $f4, 0x48c($t8) +/* 0B1DB4 7F07D284 8C790000 */ lw $t9, ($v1) +/* 0B1DB8 7F07D288 C4860008 */ lwc1 $f6, 8($a0) +/* 0B1DBC 7F07D28C 10000005 */ b .L7F07D2A4 +/* 0B1DC0 7F07D290 E7260494 */ swc1 $f6, 0x494($t9) +.L7F07D294: +/* 0B1DC4 7F07D294 8FA40024 */ lw $a0, 0x24($sp) +/* 0B1DC8 7F07D298 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B1DCC 7F07D29C 8FA50028 */ lw $a1, 0x28($sp) +/* 0B1DD0 7F07D2A0 00001025 */ move $v0, $zero +.L7F07D2A4: +/* 0B1DD4 7F07D2A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1DD8 7F07D2A8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B1DDC 7F07D2AC 03E00008 */ jr $ra +/* 0B1DE0 7F07D2B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D2B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D2B4 +/* 0B1DE4 7F07D2B4 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0B1DE8 7F07D2B8 AFB00018 */ sw $s0, 0x18($sp) +/* 0B1DEC 7F07D2BC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B1DF0 7F07D2C0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B1DF4 7F07D2C4 8E0E0000 */ lw $t6, ($s0) +/* 0B1DF8 7F07D2C8 AFB20020 */ sw $s2, 0x20($sp) +/* 0B1DFC 7F07D2CC AFB1001C */ sw $s1, 0x1c($sp) +/* 0B1E00 7F07D2D0 00A08825 */ move $s1, $a1 +/* 0B1E04 7F07D2D4 00C09025 */ move $s2, $a2 +/* 0B1E08 7F07D2D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B1E0C 7F07D2DC AFA40080 */ sw $a0, 0x80($sp) +/* 0B1E10 7F07D2E0 AFA7008C */ sw $a3, 0x8c($sp) +/* 0B1E14 7F07D2E4 27A70074 */ addiu $a3, $sp, 0x74 +/* 0B1E18 7F07D2E8 27A60078 */ addiu $a2, $sp, 0x78 +/* 0B1E1C 7F07D2EC 27A50030 */ addiu $a1, $sp, 0x30 +/* 0B1E20 7F07D2F0 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B1E24 7F07D2F4 8DC400A8 */ lw $a0, 0xa8($t6) +/* 0B1E28 7F07D2F8 8FA30080 */ lw $v1, 0x80($sp) +/* 0B1E2C 7F07D2FC 8E020000 */ lw $v0, ($s0) +/* 0B1E30 7F07D300 27A40050 */ addiu $a0, $sp, 0x50 +/* 0B1E34 7F07D304 C4640000 */ lwc1 $f4, ($v1) +/* 0B1E38 7F07D308 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B1E3C 7F07D30C 27A50048 */ addiu $a1, $sp, 0x48 +/* 0B1E40 7F07D310 27A60040 */ addiu $a2, $sp, 0x40 +/* 0B1E44 7F07D314 46062201 */ sub.s $f8, $f4, $f6 +/* 0B1E48 7F07D318 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0B1E4C 7F07D31C 27A70038 */ addiu $a3, $sp, 0x38 +/* 0B1E50 7F07D320 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0B1E54 7F07D324 C46A0008 */ lwc1 $f10, 8($v1) +/* 0B1E58 7F07D328 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B1E5C 7F07D32C E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B1E60 7F07D330 46105481 */ sub.s $f18, $f10, $f16 +/* 0B1E64 7F07D334 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0B1E68 7F07D338 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B1E6C 7F07D33C E7A60054 */ swc1 $f6, 0x54($sp) +/* 0B1E70 7F07D340 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B1E74 7F07D344 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0B1E78 7F07D348 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0B1E7C 7F07D34C C62A0000 */ lwc1 $f10, ($s1) +/* 0B1E80 7F07D350 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0B1E84 7F07D354 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0B1E88 7F07D358 C6300008 */ lwc1 $f16, 8($s1) +/* 0B1E8C 7F07D35C E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0B1E90 7F07D360 C6520000 */ lwc1 $f18, ($s2) +/* 0B1E94 7F07D364 E7B20040 */ swc1 $f18, 0x40($sp) +/* 0B1E98 7F07D368 C6440008 */ lwc1 $f4, 8($s2) +/* 0B1E9C 7F07D36C E7A60038 */ swc1 $f6, 0x38($sp) +/* 0B1EA0 7F07D370 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0B1EA4 7F07D374 0FC2CCF7 */ jal sub_GAME_7F0B33DC +/* 0B1EA8 7F07D378 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B1EAC 7F07D37C C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0B1EB0 7F07D380 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B1EB4 7F07D384 44811000 */ mtc1 $at, $f2 +/* 0B1EB8 7F07D388 46005402 */ mul.s $f16, $f10, $f0 +/* 0B1EBC 7F07D38C C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0B1EC0 7F07D390 8E020000 */ lw $v0, ($s0) +/* 0B1EC4 7F07D394 27A40068 */ addiu $a0, $sp, 0x68 +/* 0B1EC8 7F07D398 27A5007C */ addiu $a1, $sp, 0x7c +/* 0B1ECC 7F07D39C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B1ED0 7F07D3A0 46028482 */ mul.s $f18, $f16, $f2 +/* 0B1ED4 7F07D3A4 00000000 */ nop +/* 0B1ED8 7F07D3A8 46004282 */ mul.s $f10, $f8, $f0 +/* 0B1EDC 7F07D3AC 46049180 */ add.s $f6, $f18, $f4 +/* 0B1EE0 7F07D3B0 46025402 */ mul.s $f16, $f10, $f2 +/* 0B1EE4 7F07D3B4 E7A60068 */ swc1 $f6, 0x68($sp) +/* 0B1EE8 7F07D3B8 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B1EEC 7F07D3BC 46128100 */ add.s $f4, $f16, $f18 +/* 0B1EF0 7F07D3C0 0FC1F3E3 */ jal cal_player_collision +/* 0B1EF4 7F07D3C4 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0B1EF8 7F07D3C8 1040000B */ beqz $v0, .L7F07D3F8 +/* 0B1EFC 7F07D3CC 8FAF007C */ lw $t7, 0x7c($sp) +/* 0B1F00 7F07D3D0 8E180000 */ lw $t8, ($s0) +/* 0B1F04 7F07D3D4 24020001 */ li $v0, 1 +/* 0B1F08 7F07D3D8 AF0F0488 */ sw $t7, 0x488($t8) +/* 0B1F0C 7F07D3DC 8E190000 */ lw $t9, ($s0) +/* 0B1F10 7F07D3E0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0B1F14 7F07D3E4 E726048C */ swc1 $f6, 0x48c($t9) +/* 0B1F18 7F07D3E8 8E080000 */ lw $t0, ($s0) +/* 0B1F1C 7F07D3EC C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0B1F20 7F07D3F0 1000002D */ b .L7F07D4A8 +/* 0B1F24 7F07D3F4 E5080494 */ swc1 $f8, 0x494($t0) +.L7F07D3F8: +/* 0B1F28 7F07D3F8 8FB00090 */ lw $s0, 0x90($sp) +/* 0B1F2C 7F07D3FC 8FA4008C */ lw $a0, 0x8c($sp) +/* 0B1F30 7F07D400 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B1F34 7F07D404 02002825 */ move $a1, $s0 +/* 0B1F38 7F07D408 8FA3008C */ lw $v1, 0x8c($sp) +/* 0B1F3C 7F07D40C C6300000 */ lwc1 $f16, ($s1) +/* 0B1F40 7F07D410 C46A0000 */ lwc1 $f10, ($v1) +/* 0B1F44 7F07D414 46105032 */ c.eq.s $f10, $f16 +/* 0B1F48 7F07D418 00000000 */ nop +/* 0B1F4C 7F07D41C 45000020 */ bc1f .L7F07D4A0 +/* 0B1F50 7F07D420 00000000 */ nop +/* 0B1F54 7F07D424 C4720004 */ lwc1 $f18, 4($v1) +/* 0B1F58 7F07D428 C6240004 */ lwc1 $f4, 4($s1) +/* 0B1F5C 7F07D42C 46049032 */ c.eq.s $f18, $f4 +/* 0B1F60 7F07D430 00000000 */ nop +/* 0B1F64 7F07D434 4500001A */ bc1f .L7F07D4A0 +/* 0B1F68 7F07D438 00000000 */ nop +/* 0B1F6C 7F07D43C C4660008 */ lwc1 $f6, 8($v1) +/* 0B1F70 7F07D440 C6280008 */ lwc1 $f8, 8($s1) +/* 0B1F74 7F07D444 46083032 */ c.eq.s $f6, $f8 +/* 0B1F78 7F07D448 00000000 */ nop +/* 0B1F7C 7F07D44C 45000014 */ bc1f .L7F07D4A0 +/* 0B1F80 7F07D450 00000000 */ nop +/* 0B1F84 7F07D454 C60A0000 */ lwc1 $f10, ($s0) +/* 0B1F88 7F07D458 C6500000 */ lwc1 $f16, ($s2) +/* 0B1F8C 7F07D45C 46105032 */ c.eq.s $f10, $f16 +/* 0B1F90 7F07D460 00000000 */ nop +/* 0B1F94 7F07D464 4500000E */ bc1f .L7F07D4A0 +/* 0B1F98 7F07D468 00000000 */ nop +/* 0B1F9C 7F07D46C C6120004 */ lwc1 $f18, 4($s0) +/* 0B1FA0 7F07D470 C6440004 */ lwc1 $f4, 4($s2) +/* 0B1FA4 7F07D474 46049032 */ c.eq.s $f18, $f4 +/* 0B1FA8 7F07D478 00000000 */ nop +/* 0B1FAC 7F07D47C 45000008 */ bc1f .L7F07D4A0 +/* 0B1FB0 7F07D480 00000000 */ nop +/* 0B1FB4 7F07D484 C6060008 */ lwc1 $f6, 8($s0) +/* 0B1FB8 7F07D488 C6480008 */ lwc1 $f8, 8($s2) +/* 0B1FBC 7F07D48C 2402FFFF */ li $v0, -1 +/* 0B1FC0 7F07D490 46083032 */ c.eq.s $f6, $f8 +/* 0B1FC4 7F07D494 00000000 */ nop +/* 0B1FC8 7F07D498 45010003 */ bc1t .L7F07D4A8 +/* 0B1FCC 7F07D49C 00000000 */ nop +.L7F07D4A0: +/* 0B1FD0 7F07D4A0 10000001 */ b .L7F07D4A8 +/* 0B1FD4 7F07D4A4 00001025 */ move $v0, $zero +.L7F07D4A8: +/* 0B1FD8 7F07D4A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B1FDC 7F07D4AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0B1FE0 7F07D4B0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0B1FE4 7F07D4B4 8FB20020 */ lw $s2, 0x20($sp) +/* 0B1FE8 7F07D4B8 03E00008 */ jr $ra +/* 0B1FEC 7F07D4BC 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D4C0(void *arg0, void *arg1, void *arg2) { + ?32 sp24; + f32 sp28; + f32 sp30; + f32 sp34; + f32 sp3C; + f32 sp44; + f32 sp4C; + f32 temp_f8; + f32 temp_f2; + f32 temp_f4; + f32 temp_f6; + f32 temp_f12; + ? phi_return; + + // Node 0 + sp44 = (f32) (*arg0 - pPlayer->field_48C); + sp4C = (f32) (arg0->unk8 - pPlayer->field_494); + if (*arg1 == *arg2) + { + // Node 1 + phi_return = -1; + if (arg1->unk8 == arg2->unk8) + { + // Node 5 + return phi_return; + } + } + // Node 2 + temp_f8 = (*arg2 - *arg1); + sp34 = temp_f8; + sp3C = (f32) (arg2->unk8 - arg1->unk8); + temp_f2 = (1.0f / sqrtf(((sp3C * sp3C) + (temp_f8 * temp_f8)))); + temp_f4 = (sp34 * temp_f2); + temp_f6 = (sp3C * temp_f2); + sp34 = temp_f4; + sp3C = temp_f6; + temp_f12 = ((temp_f6 * sp4C) + (sp44 * temp_f4)); + sp28 = (f32) ((temp_f4 * temp_f12) + pPlayer->field_48C); + sp30 = (f32) ((temp_f6 * temp_f12) + pPlayer->field_494); + if (cal_player_collision(temp_f12, &sp28, &sp24) == 0) + { + // Node 4 + phi_return = 0; + // Node 5 + return phi_return; + } + // Node 3 + pPlayer->field_488 = sp24; + pPlayer->field_48C = sp28; + pPlayer->field_494 = sp30; + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D4C0 +/* 0B1FF0 7F07D4C0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1FF4 7F07D4C4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B1FF8 7F07D4C8 8C620000 */ lw $v0, ($v1) +/* 0B1FFC 7F07D4CC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0B2000 7F07D4D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2004 7F07D4D4 C4840000 */ lwc1 $f4, ($a0) +/* 0B2008 7F07D4D8 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B200C 7F07D4DC 46062201 */ sub.s $f8, $f4, $f6 +/* 0B2010 7F07D4E0 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B2014 7F07D4E4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0B2018 7F07D4E8 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B201C 7F07D4EC 46105481 */ sub.s $f18, $f10, $f16 +/* 0B2020 7F07D4F0 E7B2004C */ swc1 $f18, 0x4c($sp) +/* 0B2024 7F07D4F4 C4C20000 */ lwc1 $f2, ($a2) +/* 0B2028 7F07D4F8 C4A00000 */ lwc1 $f0, ($a1) +/* 0B202C 7F07D4FC 46020032 */ c.eq.s $f0, $f2 +/* 0B2030 7F07D500 00000000 */ nop +/* 0B2034 7F07D504 45020009 */ bc1fl .L7F07D52C +/* 0B2038 7F07D508 46001201 */ sub.s $f8, $f2, $f0 +/* 0B203C 7F07D50C C4A40008 */ lwc1 $f4, 8($a1) +/* 0B2040 7F07D510 C4C60008 */ lwc1 $f6, 8($a2) +/* 0B2044 7F07D514 2402FFFF */ li $v0, -1 +/* 0B2048 7F07D518 46062032 */ c.eq.s $f4, $f6 +/* 0B204C 7F07D51C 00000000 */ nop +/* 0B2050 7F07D520 4501003A */ bc1t .L7F07D60C +/* 0B2054 7F07D524 00000000 */ nop +/* 0B2058 7F07D528 46001201 */ sub.s $f8, $f2, $f0 +.L7F07D52C: +/* 0B205C 7F07D52C E7A80034 */ swc1 $f8, 0x34($sp) +/* 0B2060 7F07D530 C4B00008 */ lwc1 $f16, 8($a1) +/* 0B2064 7F07D534 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0B2068 7F07D538 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0B206C 7F07D53C 46105481 */ sub.s $f18, $f10, $f16 +/* 0B2070 7F07D540 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0B2074 7F07D544 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B2078 7F07D548 46042182 */ mul.s $f6, $f4, $f4 +/* 0B207C 7F07D54C 00000000 */ nop +/* 0B2080 7F07D550 46084282 */ mul.s $f10, $f8, $f8 +/* 0B2084 7F07D554 0C007DF8 */ jal sqrtf +/* 0B2088 7F07D558 460A3300 */ add.s $f12, $f6, $f10 +/* 0B208C 7F07D55C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2090 7F07D560 44818000 */ mtc1 $at, $f16 +/* 0B2094 7F07D564 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0B2098 7F07D568 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0B209C 7F07D56C 46008083 */ div.s $f2, $f16, $f0 +/* 0B20A0 7F07D570 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0B20A4 7F07D574 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B20A8 7F07D578 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B20AC 7F07D57C 8C620000 */ lw $v0, ($v1) +/* 0B20B0 7F07D580 27A40028 */ addiu $a0, $sp, 0x28 +/* 0B20B4 7F07D584 27A50024 */ addiu $a1, $sp, 0x24 +/* 0B20B8 7F07D588 46029102 */ mul.s $f4, $f18, $f2 +/* 0B20BC 7F07D58C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B20C0 7F07D590 46024182 */ mul.s $f6, $f8, $f2 +/* 0B20C4 7F07D594 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0B20C8 7F07D598 460A3402 */ mul.s $f16, $f6, $f10 +/* 0B20CC 7F07D59C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0B20D0 7F07D5A0 46049202 */ mul.s $f8, $f18, $f4 +/* 0B20D4 7F07D5A4 C452048C */ lwc1 $f18, 0x48c($v0) +/* 0B20D8 7F07D5A8 46088300 */ add.s $f12, $f16, $f8 +/* 0B20DC 7F07D5AC 460C2282 */ mul.s $f10, $f4, $f12 +/* 0B20E0 7F07D5B0 46125400 */ add.s $f16, $f10, $f18 +/* 0B20E4 7F07D5B4 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B20E8 7F07D5B8 E7B00028 */ swc1 $f16, 0x28($sp) +/* 0B20EC 7F07D5BC C4440494 */ lwc1 $f4, 0x494($v0) +/* 0B20F0 7F07D5C0 46044280 */ add.s $f10, $f8, $f4 +/* 0B20F4 7F07D5C4 0FC1F3E3 */ jal cal_player_collision +/* 0B20F8 7F07D5C8 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0B20FC 7F07D5CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2100 7F07D5D0 1040000C */ beqz $v0, .L7F07D604 +/* 0B2104 7F07D5D4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2108 7F07D5D8 8FAE0024 */ lw $t6, 0x24($sp) +/* 0B210C 7F07D5DC 8C6F0000 */ lw $t7, ($v1) +/* 0B2110 7F07D5E0 24020001 */ li $v0, 1 +/* 0B2114 7F07D5E4 ADEE0488 */ sw $t6, 0x488($t7) +/* 0B2118 7F07D5E8 8C780000 */ lw $t8, ($v1) +/* 0B211C 7F07D5EC C7B20028 */ lwc1 $f18, 0x28($sp) +/* 0B2120 7F07D5F0 E712048C */ swc1 $f18, 0x48c($t8) +/* 0B2124 7F07D5F4 8C790000 */ lw $t9, ($v1) +/* 0B2128 7F07D5F8 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B212C 7F07D5FC 10000003 */ b .L7F07D60C +/* 0B2130 7F07D600 E7300494 */ swc1 $f16, 0x494($t9) +.L7F07D604: +/* 0B2134 7F07D604 10000001 */ b .L7F07D60C +/* 0B2138 7F07D608 00001025 */ move $v0, $zero +.L7F07D60C: +/* 0B213C 7F07D60C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2140 7F07D610 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0B2144 7F07D614 03E00008 */ jr $ra +/* 0B2148 7F07D618 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D61C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D61C +/* 0B214C 7F07D61C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0B2150 7F07D620 AFB30020 */ sw $s3, 0x20($sp) +/* 0B2154 7F07D624 3C138008 */ lui $s3, %hi(pPlayer) +/* 0B2158 7F07D628 2673A0B0 */ addiu $s3, %lo(pPlayer) # addiu $s3, $s3, -0x5f50 +/* 0B215C 7F07D62C 8E6E0000 */ lw $t6, ($s3) +/* 0B2160 7F07D630 AFB2001C */ sw $s2, 0x1c($sp) +/* 0B2164 7F07D634 AFB10018 */ sw $s1, 0x18($sp) +/* 0B2168 7F07D638 AFB00014 */ sw $s0, 0x14($sp) +/* 0B216C 7F07D63C 00808025 */ move $s0, $a0 +/* 0B2170 7F07D640 00A08825 */ move $s1, $a1 +/* 0B2174 7F07D644 00C09025 */ move $s2, $a2 +/* 0B2178 7F07D648 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B217C 7F07D64C 27A60040 */ addiu $a2, $sp, 0x40 +/* 0B2180 7F07D650 27A50030 */ addiu $a1, $sp, 0x30 +/* 0B2184 7F07D654 27A7003C */ addiu $a3, $sp, 0x3c +/* 0B2188 7F07D658 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B218C 7F07D65C 8DC400A8 */ lw $a0, 0xa8($t6) +/* 0B2190 7F07D660 8E620000 */ lw $v0, ($s3) +/* 0B2194 7F07D664 C6040000 */ lwc1 $f4, ($s0) +/* 0B2198 7F07D668 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B219C 7F07D66C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B21A0 7F07D670 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0B21A4 7F07D674 C60A0008 */ lwc1 $f10, 8($s0) +/* 0B21A8 7F07D678 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B21AC 7F07D67C 46105481 */ sub.s $f18, $f10, $f16 +/* 0B21B0 7F07D680 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0B21B4 7F07D684 C6060000 */ lwc1 $f6, ($s0) +/* 0B21B8 7F07D688 C6240000 */ lwc1 $f4, ($s1) +/* 0B21BC 7F07D68C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B21C0 7F07D690 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0B21C4 7F07D694 E7A80050 */ swc1 $f8, 0x50($sp) +/* 0B21C8 7F07D698 C6100008 */ lwc1 $f16, 8($s0) +/* 0B21CC 7F07D69C C62A0008 */ lwc1 $f10, 8($s1) +/* 0B21D0 7F07D6A0 46042002 */ mul.s $f0, $f4, $f4 +/* 0B21D4 7F07D6A4 46105481 */ sub.s $f18, $f10, $f16 +/* 0B21D8 7F07D6A8 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0B21DC 7F07D6AC E7B20058 */ swc1 $f18, 0x58($sp) +/* 0B21E0 7F07D6B0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0B21E4 7F07D6B4 46063202 */ mul.s $f8, $f6, $f6 +/* 0B21E8 7F07D6B8 00000000 */ nop +/* 0B21EC 7F07D6BC 460A5402 */ mul.s $f16, $f10, $f10 +/* 0B21F0 7F07D6C0 46104480 */ add.s $f18, $f8, $f16 +/* 0B21F4 7F07D6C4 4600903E */ c.le.s $f18, $f0 +/* 0B21F8 7F07D6C8 00000000 */ nop +/* 0B21FC 7F07D6CC 45000044 */ bc1f .L7F07D7E0 +/* 0B2200 7F07D6D0 00000000 */ nop +/* 0B2204 7F07D6D4 C6240000 */ lwc1 $f4, ($s1) +/* 0B2208 7F07D6D8 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B220C 7F07D6DC 46062032 */ c.eq.s $f4, $f6 +/* 0B2210 7F07D6E0 00000000 */ nop +/* 0B2214 7F07D6E4 45020008 */ bc1fl .L7F07D708 +/* 0B2218 7F07D6E8 C6300008 */ lwc1 $f16, 8($s1) +/* 0B221C 7F07D6EC C62A0008 */ lwc1 $f10, 8($s1) +/* 0B2220 7F07D6F0 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B2224 7F07D6F4 46085032 */ c.eq.s $f10, $f8 +/* 0B2228 7F07D6F8 00000000 */ nop +/* 0B222C 7F07D6FC 4503008E */ bc1tl .L7F07D938 +/* 0B2230 7F07D700 00001025 */ move $v0, $zero +/* 0B2234 7F07D704 C6300008 */ lwc1 $f16, 8($s1) +.L7F07D708: +/* 0B2238 7F07D708 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B223C 7F07D70C 46128101 */ sub.s $f4, $f16, $f18 +/* 0B2240 7F07D710 46002187 */ neg.s $f6, $f4 +/* 0B2244 7F07D714 E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B2248 7F07D718 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B224C 7F07D71C C62A0000 */ lwc1 $f10, ($s1) +/* 0B2250 7F07D720 46063482 */ mul.s $f18, $f6, $f6 +/* 0B2254 7F07D724 46085401 */ sub.s $f16, $f10, $f8 +/* 0B2258 7F07D728 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0B225C 7F07D72C C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B2260 7F07D730 46042282 */ mul.s $f10, $f4, $f4 +/* 0B2264 7F07D734 0C007DF8 */ jal sqrtf +/* 0B2268 7F07D738 46125300 */ add.s $f12, $f10, $f18 +/* 0B226C 7F07D73C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2270 7F07D740 44814000 */ mtc1 $at, $f8 +/* 0B2274 7F07D744 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 0B2278 7F07D748 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B227C 7F07D74C 46004083 */ div.s $f2, $f8, $f0 +/* 0B2280 7F07D750 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0B2284 7F07D754 8E620000 */ lw $v0, ($s3) +/* 0B2288 7F07D758 27A40044 */ addiu $a0, $sp, 0x44 +/* 0B228C 7F07D75C 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B2290 7F07D760 46028182 */ mul.s $f6, $f16, $f2 +/* 0B2294 7F07D764 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0B2298 7F07D768 46022282 */ mul.s $f10, $f4, $f2 +/* 0B229C 7F07D76C E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B22A0 7F07D770 46125202 */ mul.s $f8, $f10, $f18 +/* 0B22A4 7F07D774 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B22A8 7F07D778 46068102 */ mul.s $f4, $f16, $f6 +/* 0B22AC 7F07D77C 46044300 */ add.s $f12, $f8, $f4 +/* 0B22B0 7F07D780 460C3482 */ mul.s $f18, $f6, $f12 +/* 0B22B4 7F07D784 00000000 */ nop +/* 0B22B8 7F07D788 460C5402 */ mul.s $f16, $f10, $f12 +/* 0B22BC 7F07D78C E7B20050 */ swc1 $f18, 0x50($sp) +/* 0B22C0 7F07D790 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0B22C4 7F07D794 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B22C8 7F07D798 46089100 */ add.s $f4, $f18, $f8 +/* 0B22CC 7F07D79C E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B22D0 7F07D7A0 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0B22D4 7F07D7A4 46068280 */ add.s $f10, $f16, $f6 +/* 0B22D8 7F07D7A8 0FC1F3E3 */ jal cal_player_collision +/* 0B22DC 7F07D7AC E7AA004C */ swc1 $f10, 0x4c($sp) +/* 0B22E0 7F07D7B0 10400060 */ beqz $v0, .L7F07D934 +/* 0B22E4 7F07D7B4 8FAF0034 */ lw $t7, 0x34($sp) +/* 0B22E8 7F07D7B8 8E780000 */ lw $t8, ($s3) +/* 0B22EC 7F07D7BC 24020001 */ li $v0, 1 +/* 0B22F0 7F07D7C0 AF0F0488 */ sw $t7, 0x488($t8) +/* 0B22F4 7F07D7C4 8E790000 */ lw $t9, ($s3) +/* 0B22F8 7F07D7C8 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B22FC 7F07D7CC E732048C */ swc1 $f18, 0x48c($t9) +/* 0B2300 7F07D7D0 8E680000 */ lw $t0, ($s3) +/* 0B2304 7F07D7D4 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0B2308 7F07D7D8 10000057 */ b .L7F07D938 +/* 0B230C 7F07D7DC E5080494 */ swc1 $f8, 0x494($t0) +.L7F07D7E0: +/* 0B2310 7F07D7E0 C6440000 */ lwc1 $f4, ($s2) +/* 0B2314 7F07D7E4 C6100000 */ lwc1 $f16, ($s0) +/* 0B2318 7F07D7E8 46102181 */ sub.s $f6, $f4, $f16 +/* 0B231C 7F07D7EC E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B2320 7F07D7F0 C6120008 */ lwc1 $f18, 8($s0) +/* 0B2324 7F07D7F4 C64A0008 */ lwc1 $f10, 8($s2) +/* 0B2328 7F07D7F8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0B232C 7F07D7FC 46125201 */ sub.s $f8, $f10, $f18 +/* 0B2330 7F07D800 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0B2334 7F07D804 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B2338 7F07D808 46042402 */ mul.s $f16, $f4, $f4 +/* 0B233C 7F07D80C 00000000 */ nop +/* 0B2340 7F07D810 46063282 */ mul.s $f10, $f6, $f6 +/* 0B2344 7F07D814 460A8480 */ add.s $f18, $f16, $f10 +/* 0B2348 7F07D818 4600903E */ c.le.s $f18, $f0 +/* 0B234C 7F07D81C 00000000 */ nop +/* 0B2350 7F07D820 45000044 */ bc1f .L7F07D934 +/* 0B2354 7F07D824 00000000 */ nop +/* 0B2358 7F07D828 C6480000 */ lwc1 $f8, ($s2) +/* 0B235C 7F07D82C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B2360 7F07D830 46044032 */ c.eq.s $f8, $f4 +/* 0B2364 7F07D834 00000000 */ nop +/* 0B2368 7F07D838 45020008 */ bc1fl .L7F07D85C +/* 0B236C 7F07D83C C64A0008 */ lwc1 $f10, 8($s2) +/* 0B2370 7F07D840 C6460008 */ lwc1 $f6, 8($s2) +/* 0B2374 7F07D844 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B2378 7F07D848 46103032 */ c.eq.s $f6, $f16 +/* 0B237C 7F07D84C 00000000 */ nop +/* 0B2380 7F07D850 45030039 */ bc1tl .L7F07D938 +/* 0B2384 7F07D854 00001025 */ move $v0, $zero +/* 0B2388 7F07D858 C64A0008 */ lwc1 $f10, 8($s2) +.L7F07D85C: +/* 0B238C 7F07D85C C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B2390 7F07D860 46125201 */ sub.s $f8, $f10, $f18 +/* 0B2394 7F07D864 46004107 */ neg.s $f4, $f8 +/* 0B2398 7F07D868 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B239C 7F07D86C C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B23A0 7F07D870 C6460000 */ lwc1 $f6, ($s2) +/* 0B23A4 7F07D874 46042482 */ mul.s $f18, $f4, $f4 +/* 0B23A8 7F07D878 46103281 */ sub.s $f10, $f6, $f16 +/* 0B23AC 7F07D87C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B23B0 7F07D880 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0B23B4 7F07D884 46084182 */ mul.s $f6, $f8, $f8 +/* 0B23B8 7F07D888 0C007DF8 */ jal sqrtf +/* 0B23BC 7F07D88C 46123300 */ add.s $f12, $f6, $f18 +/* 0B23C0 7F07D890 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B23C4 7F07D894 44818000 */ mtc1 $at, $f16 +/* 0B23C8 7F07D898 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0B23CC 7F07D89C C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0B23D0 7F07D8A0 46008083 */ div.s $f2, $f16, $f0 +/* 0B23D4 7F07D8A4 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0B23D8 7F07D8A8 8E620000 */ lw $v0, ($s3) +/* 0B23DC 7F07D8AC 27A40044 */ addiu $a0, $sp, 0x44 +/* 0B23E0 7F07D8B0 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B23E4 7F07D8B4 46025102 */ mul.s $f4, $f10, $f2 +/* 0B23E8 7F07D8B8 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0B23EC 7F07D8BC 46024182 */ mul.s $f6, $f8, $f2 +/* 0B23F0 7F07D8C0 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B23F4 7F07D8C4 46123402 */ mul.s $f16, $f6, $f18 +/* 0B23F8 7F07D8C8 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0B23FC 7F07D8CC 46045202 */ mul.s $f8, $f10, $f4 +/* 0B2400 7F07D8D0 46088300 */ add.s $f12, $f16, $f8 +/* 0B2404 7F07D8D4 460C2482 */ mul.s $f18, $f4, $f12 +/* 0B2408 7F07D8D8 00000000 */ nop +/* 0B240C 7F07D8DC 460C3282 */ mul.s $f10, $f6, $f12 +/* 0B2410 7F07D8E0 E7B20050 */ swc1 $f18, 0x50($sp) +/* 0B2414 7F07D8E4 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B2418 7F07D8E8 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B241C 7F07D8EC 46109200 */ add.s $f8, $f18, $f16 +/* 0B2420 7F07D8F0 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B2424 7F07D8F4 C4440494 */ lwc1 $f4, 0x494($v0) +/* 0B2428 7F07D8F8 46045180 */ add.s $f6, $f10, $f4 +/* 0B242C 7F07D8FC 0FC1F3E3 */ jal cal_player_collision +/* 0B2430 7F07D900 E7A6004C */ swc1 $f6, 0x4c($sp) +/* 0B2434 7F07D904 1040000B */ beqz $v0, .L7F07D934 +/* 0B2438 7F07D908 8FA90034 */ lw $t1, 0x34($sp) +/* 0B243C 7F07D90C 8E6A0000 */ lw $t2, ($s3) +/* 0B2440 7F07D910 24020001 */ li $v0, 1 +/* 0B2444 7F07D914 AD490488 */ sw $t1, 0x488($t2) +/* 0B2448 7F07D918 8E6B0000 */ lw $t3, ($s3) +/* 0B244C 7F07D91C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B2450 7F07D920 E572048C */ swc1 $f18, 0x48c($t3) +/* 0B2454 7F07D924 8E6C0000 */ lw $t4, ($s3) +/* 0B2458 7F07D928 C7B0004C */ lwc1 $f16, 0x4c($sp) +/* 0B245C 7F07D92C 10000002 */ b .L7F07D938 +/* 0B2460 7F07D930 E5900494 */ swc1 $f16, 0x494($t4) +.L7F07D934: +/* 0B2464 7F07D934 00001025 */ move $v0, $zero +.L7F07D938: +/* 0B2468 7F07D938 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B246C 7F07D93C 8FB00014 */ lw $s0, 0x14($sp) +/* 0B2470 7F07D940 8FB10018 */ lw $s1, 0x18($sp) +/* 0B2474 7F07D944 8FB2001C */ lw $s2, 0x1c($sp) +/* 0B2478 7F07D948 8FB30020 */ lw $s3, 0x20($sp) +/* 0B247C 7F07D94C 03E00008 */ jr $ra +/* 0B2480 7F07D950 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F07D954(s32 arg0) { + // Node 0 + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D954 +/* 0B2484 7F07D954 44840000 */ mtc1 $a0, $f0 +/* 0B2488 7F07D958 03E00008 */ jr $ra +/* 0B248C 7F07D95C AFA40000 */ sw $a0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D960(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D960 +/* 0B2490 7F07D960 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2494 7F07D964 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2498 7F07D968 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0B249C 7F07D96C 8C620000 */ lw $v0, ($v1) +/* 0B24A0 7F07D970 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B24A4 7F07D974 AFB00020 */ sw $s0, 0x20($sp) +/* 0B24A8 7F07D978 AFA500C4 */ sw $a1, 0xc4($sp) +/* 0B24AC 7F07D97C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B24B0 7F07D980 3C018003 */ lui $at, %hi(D_80036480) +/* 0B24B4 7F07D984 240E0002 */ li $t6, 2 +/* 0B24B8 7F07D988 E4440408 */ swc1 $f4, 0x408($v0) +/* 0B24BC 7F07D98C 8C620000 */ lw $v0, ($v1) +/* 0B24C0 7F07D990 3C078003 */ lui $a3, %hi(D_8003644C) +/* 0B24C4 7F07D994 27A50098 */ addiu $a1, $sp, 0x98 +/* 0B24C8 7F07D998 C4460490 */ lwc1 $f6, 0x490($v0) +/* 0B24CC 7F07D99C E446040C */ swc1 $f6, 0x40c($v0) +/* 0B24D0 7F07D9A0 8C620000 */ lw $v0, ($v1) +/* 0B24D4 7F07D9A4 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B24D8 7F07D9A8 E4480410 */ swc1 $f8, 0x410($v0) +/* 0B24DC 7F07D9AC 8C620000 */ lw $v0, ($v1) +/* 0B24E0 7F07D9B0 C48A0000 */ lwc1 $f10, ($a0) +/* 0B24E4 7F07D9B4 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B24E8 7F07D9B8 46105480 */ add.s $f18, $f10, $f16 +/* 0B24EC 7F07D9BC E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0B24F0 7F07D9C0 C4840008 */ lwc1 $f4, 8($a0) +/* 0B24F4 7F07D9C4 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0B24F8 7F07D9C8 AC206480 */ sw $zero, %lo(D_80036480)($at) +/* 0B24FC 7F07D9CC 46062200 */ add.s $f8, $f4, $f6 +/* 0B2500 7F07D9D0 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0B2504 7F07D9D4 AC4E29FC */ sw $t6, 0x29fc($v0) +/* 0B2508 7F07D9D8 8CE7644C */ lw $a3, %lo(D_8003644C)($a3) +/* 0B250C 7F07D9DC 10E00084 */ beqz $a3, .L7F07DBF0 +/* 0B2510 7F07D9E0 00E02025 */ move $a0, $a3 +/* 0B2514 7F07D9E4 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0B2518 7F07D9E8 27A60094 */ addiu $a2, $sp, 0x94 +/* 0B251C 7F07D9EC 3C0F8003 */ lui $t7, %hi(in_tank_flag) +/* 0B2520 7F07D9F0 8DEF6448 */ lw $t7, %lo(in_tank_flag)($t7) +/* 0B2524 7F07D9F4 24010001 */ li $at, 1 +/* 0B2528 7F07D9F8 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B252C 7F07D9FC 11E1000F */ beq $t7, $at, .L7F07DA3C +/* 0B2530 7F07DA00 8FA50098 */ lw $a1, 0x98($sp) +/* 0B2534 7F07DA04 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B2538 7F07DA08 8FA60094 */ lw $a2, 0x94($sp) +/* 0B253C 7F07DA0C 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0B2540 7F07DA10 2484048C */ addiu $a0, $a0, 0x48c +/* 0B2544 7F07DA14 14400009 */ bnez $v0, .L7F07DA3C +/* 0B2548 7F07DA18 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B254C 7F07DA1C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B2550 7F07DA20 8FA60098 */ lw $a2, 0x98($sp) +/* 0B2554 7F07DA24 8FA70094 */ lw $a3, 0x94($sp) +/* 0B2558 7F07DA28 2444048C */ addiu $a0, $v0, 0x48c +/* 0B255C 7F07DA2C 0FC111C6 */ jal sub_GAME_7F044718 +/* 0B2560 7F07DA30 8C4504B0 */ lw $a1, 0x4b0($v0) +/* 0B2564 7F07DA34 10400064 */ beqz $v0, .L7F07DBC8 +/* 0B2568 7F07DA38 3C058003 */ lui $a1, %hi(ptr_playerstank) +.L7F07DA3C: +/* 0B256C 7F07DA3C 3C078003 */ lui $a3, %hi(D_8003644C) +/* 0B2570 7F07DA40 8CE7644C */ lw $a3, %lo(D_8003644C)($a3) +/* 0B2574 7F07DA44 3C058003 */ lui $a1, %hi(ptr_playerstank) +/* 0B2578 7F07DA48 24A56450 */ addiu $a1, %lo(ptr_playerstank) # addiu $a1, $a1, 0x6450 +/* 0B257C 7F07DA4C 8CE20004 */ lw $v0, 4($a3) +/* 0B2580 7F07DA50 3C0D8003 */ lui $t5, %hi(in_tank_flag) +/* 0B2584 7F07DA54 24010001 */ li $at, 1 +/* 0B2588 7F07DA58 8C580014 */ lw $t8, 0x14($v0) +/* 0B258C 7F07DA5C 00408025 */ move $s0, $v0 +/* 0B2590 7F07DA60 8F190008 */ lw $t9, 8($t8) +/* 0B2594 7F07DA64 8F240008 */ lw $a0, 8($t9) +/* 0B2598 7F07DA68 8C8A0014 */ lw $t2, 0x14($a0) +/* 0B259C 7F07DA6C 8C8B0018 */ lw $t3, 0x18($a0) +/* 0B25A0 7F07DA70 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B25A4 7F07DA74 8D430004 */ lw $v1, 4($t2) +/* 0B25A8 7F07DA78 8D690004 */ lw $t1, 4($t3) +/* 0B25AC 7F07DA7C ACA70000 */ sw $a3, ($a1) +/* 0B25B0 7F07DA80 C470000C */ lwc1 $f16, 0xc($v1) +/* 0B25B4 7F07DA84 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0B25B8 7F07DA88 8C4C0014 */ lw $t4, 0x14($v0) +/* 0B25BC 7F07DA8C 8DAD6448 */ lw $t5, %lo(in_tank_flag)($t5) +/* 0B25C0 7F07DA90 46105481 */ sub.s $f18, $f10, $f16 +/* 0B25C4 7F07DA94 C5800014 */ lwc1 $f0, 0x14($t4) +/* 0B25C8 7F07DA98 24450084 */ addiu $a1, $v0, 0x84 +/* 0B25CC 7F07DA9C 46009082 */ mul.s $f2, $f18, $f0 +/* 0B25D0 7F07DAA0 51A1000D */ beql $t5, $at, .L7F07DAD8 +/* 0B25D4 7F07DAA4 C5240010 */ lwc1 $f4, 0x10($t1) +/* 0B25D8 7F07DAA8 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B25DC 7F07DAAC 8C460080 */ lw $a2, 0x80($v0) +/* 0B25E0 7F07DAB0 E7A20080 */ swc1 $f2, 0x80($sp) +/* 0B25E4 7F07DAB4 AFA90084 */ sw $t1, 0x84($sp) +/* 0B25E8 7F07DAB8 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0B25EC 7F07DABC 2484048C */ addiu $a0, $a0, 0x48c +/* 0B25F0 7F07DAC0 8FA90084 */ lw $t1, 0x84($sp) +/* 0B25F4 7F07DAC4 1040000B */ beqz $v0, .L7F07DAF4 +/* 0B25F8 7F07DAC8 C7A20080 */ lwc1 $f2, 0x80($sp) +/* 0B25FC 7F07DACC 8E0E0014 */ lw $t6, 0x14($s0) +/* 0B2600 7F07DAD0 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 0B2604 7F07DAD4 C5240010 */ lwc1 $f4, 0x10($t1) +.L7F07DAD8: +/* 0B2608 7F07DAD8 C526000C */ lwc1 $f6, 0xc($t1) +/* 0B260C 7F07DADC 240F0001 */ li $t7, 1 +/* 0B2610 7F07DAE0 3C018003 */ lui $at, %hi(D_80036480) +/* 0B2614 7F07DAE4 46062201 */ sub.s $f8, $f4, $f6 +/* 0B2618 7F07DAE8 AC2F6480 */ sw $t7, %lo(D_80036480)($at) +/* 0B261C 7F07DAEC 46004282 */ mul.s $f10, $f8, $f0 +/* 0B2620 7F07DAF0 460A1080 */ add.s $f2, $f2, $f10 +.L7F07DAF4: +/* 0B2624 7F07DAF4 3C038003 */ lui $v1, %hi(in_tank_flag) +/* 0B2628 7F07DAF8 8C636448 */ lw $v1, %lo(in_tank_flag)($v1) +/* 0B262C 7F07DAFC 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B2630 7F07DB00 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2634 7F07DB04 14600014 */ bnez $v1, .L7F07DB58 +/* 0B2638 7F07DB08 00000000 */ nop +/* 0B263C 7F07DB0C C4400000 */ lwc1 $f0, ($v0) +/* 0B2640 7F07DB10 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B2644 7F07DB14 4602003C */ c.lt.s $f0, $f2 +/* 0B2648 7F07DB18 00000000 */ nop +/* 0B264C 7F07DB1C 4500000E */ bc1f .L7F07DB58 +/* 0B2650 7F07DB20 00000000 */ nop +/* 0B2654 7F07DB24 44818000 */ mtc1 $at, $f16 +/* 0B2658 7F07DB28 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B265C 7F07DB2C C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B2660 7F07DB30 46128102 */ mul.s $f4, $f16, $f18 +/* 0B2664 7F07DB34 46040180 */ add.s $f6, $f0, $f4 +/* 0B2668 7F07DB38 E4460000 */ swc1 $f6, ($v0) +/* 0B266C 7F07DB3C C4480000 */ lwc1 $f8, ($v0) +/* 0B2670 7F07DB40 4608103C */ c.lt.s $f2, $f8 +/* 0B2674 7F07DB44 00000000 */ nop +/* 0B2678 7F07DB48 450200C2 */ bc1fl .L7F07DE54 +/* 0B267C 7F07DB4C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B2680 7F07DB50 10000004 */ b .L7F07DB64 +/* 0B2684 7F07DB54 E4420000 */ swc1 $f2, ($v0) +.L7F07DB58: +/* 0B2688 7F07DB58 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B268C 7F07DB5C 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2690 7F07DB60 E4420000 */ swc1 $f2, ($v0) +.L7F07DB64: +/* 0B2694 7F07DB64 24010001 */ li $at, 1 +/* 0B2698 7F07DB68 14610021 */ bne $v1, $at, .L7F07DBF0 +/* 0B269C 7F07DB6C 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B26A0 7F07DB70 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B26A4 7F07DB74 3C01C214 */ lui $at, 0xc214 +/* 0B26A8 7F07DB78 5700000E */ bnezl $t8, .L7F07DBB4 +/* 0B26AC 7F07DB7C C4500000 */ lwc1 $f16, ($v0) +/* 0B26B0 7F07DB80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B26B4 7F07DB84 44815000 */ mtc1 $at, $f10 +/* 0B26B8 7F07DB88 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C0) +/* 0B26BC 7F07DB8C C43099C0 */ lwc1 $f16, %lo(flt_CODE_bss_800799C0)($at) +/* 0B26C0 7F07DB90 3C01C214 */ li $at, 0xC2140000 # -37.000000 +/* 0B26C4 7F07DB94 44812000 */ mtc1 $at, $f4 +/* 0B26C8 7F07DB98 46105481 */ sub.s $f18, $f10, $f16 +/* 0B26CC 7F07DB9C C4480000 */ lwc1 $f8, ($v0) +/* 0B26D0 7F07DBA0 46122182 */ mul.s $f6, $f4, $f18 +/* 0B26D4 7F07DBA4 46064280 */ add.s $f10, $f8, $f6 +/* 0B26D8 7F07DBA8 10000011 */ b .L7F07DBF0 +/* 0B26DC 7F07DBAC E44A0000 */ swc1 $f10, ($v0) +/* 0B26E0 7F07DBB0 C4500000 */ lwc1 $f16, ($v0) +.L7F07DBB4: +/* 0B26E4 7F07DBB4 44812000 */ mtc1 $at, $f4 +/* 0B26E8 7F07DBB8 00000000 */ nop +/* 0B26EC 7F07DBBC 46048480 */ add.s $f18, $f16, $f4 +/* 0B26F0 7F07DBC0 1000000B */ b .L7F07DBF0 +/* 0B26F4 7F07DBC4 E4520000 */ swc1 $f18, ($v0) +.L7F07DBC8: +/* 0B26F8 7F07DBC8 24A56450 */ addiu $a1, $a1, %lo(ptr_playerstank) +/* 0B26FC 7F07DBCC 8CB90000 */ lw $t9, ($a1) +/* 0B2700 7F07DBD0 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B2704 7F07DBD4 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2708 7F07DBD8 13200005 */ beqz $t9, .L7F07DBF0 +/* 0B270C 7F07DBDC 3C018003 */ lui $at, %hi(D_8003644C) +/* 0B2710 7F07DBE0 44804000 */ mtc1 $zero, $f8 +/* 0B2714 7F07DBE4 AC20644C */ sw $zero, %lo(D_8003644C)($at) +/* 0B2718 7F07DBE8 ACA00000 */ sw $zero, ($a1) +/* 0B271C 7F07DBEC E4480000 */ swc1 $f8, ($v0) +.L7F07DBF0: +/* 0B2720 7F07DBF0 27B000B4 */ addiu $s0, $sp, 0xb4 +/* 0B2724 7F07DBF4 02002025 */ move $a0, $s0 +/* 0B2728 7F07DBF8 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B272C 7F07DBFC 0FC1F48D */ jal sub_GAME_7F07D234 +/* 0B2730 7F07DC00 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B2734 7F07DC04 14400037 */ bnez $v0, .L7F07DCE4 +/* 0B2738 7F07DC08 02002025 */ move $a0, $s0 +/* 0B273C 7F07DC0C 27AA0068 */ addiu $t2, $sp, 0x68 +/* 0B2740 7F07DC10 AFAA0010 */ sw $t2, 0x10($sp) +/* 0B2744 7F07DC14 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2748 7F07DC18 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B274C 7F07DC1C 0FC1F4AD */ jal sub_GAME_7F07D2B4 +/* 0B2750 7F07DC20 27A70074 */ addiu $a3, $sp, 0x74 +/* 0B2754 7F07DC24 1C400003 */ bgtz $v0, .L7F07DC34 +/* 0B2758 7F07DC28 8FAB00C4 */ lw $t3, 0xc4($sp) +/* 0B275C 7F07DC2C 0441000F */ bgez $v0, .L7F07DC6C +/* 0B2760 7F07DC30 00000000 */ nop +.L7F07DC34: +/* 0B2764 7F07DC34 1160002B */ beqz $t3, .L7F07DCE4 +/* 0B2768 7F07DC38 02002025 */ move $a0, $s0 +/* 0B276C 7F07DC3C 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2770 7F07DC40 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B2774 7F07DC44 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B2778 7F07DC48 1C400026 */ bgtz $v0, .L7F07DCE4 +/* 0B277C 7F07DC4C 02002025 */ move $a0, $s0 +/* 0B2780 7F07DC50 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2784 7F07DC54 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B2788 7F07DC58 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B278C 7F07DC5C 14400021 */ bnez $v0, .L7F07DCE4 +/* 0B2790 7F07DC60 00000000 */ nop +/* 0B2794 7F07DC64 1000001F */ b .L7F07DCE4 +/* 0B2798 7F07DC68 00000000 */ nop +.L7F07DC6C: +/* 0B279C 7F07DC6C 1440001D */ bnez $v0, .L7F07DCE4 +/* 0B27A0 7F07DC70 02002025 */ move $a0, $s0 +/* 0B27A4 7F07DC74 27AC004C */ addiu $t4, $sp, 0x4c +/* 0B27A8 7F07DC78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0B27AC 7F07DC7C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27B0 7F07DC80 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B27B4 7F07DC84 0FC1F4AD */ jal sub_GAME_7F07D2B4 +/* 0B27B8 7F07DC88 27A70058 */ addiu $a3, $sp, 0x58 +/* 0B27BC 7F07DC8C 8FAD00C4 */ lw $t5, 0xc4($sp) +/* 0B27C0 7F07DC90 02002025 */ move $a0, $s0 +/* 0B27C4 7F07DC94 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27C8 7F07DC98 11A00012 */ beqz $t5, .L7F07DCE4 +/* 0B27CC 7F07DC9C 00000000 */ nop +/* 0B27D0 7F07DCA0 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B27D4 7F07DCA4 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B27D8 7F07DCA8 1C40000E */ bgtz $v0, .L7F07DCE4 +/* 0B27DC 7F07DCAC 02002025 */ move $a0, $s0 +/* 0B27E0 7F07DCB0 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B27E4 7F07DCB4 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B27E8 7F07DCB8 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B27EC 7F07DCBC 1C400009 */ bgtz $v0, .L7F07DCE4 +/* 0B27F0 7F07DCC0 02002025 */ move $a0, $s0 +/* 0B27F4 7F07DCC4 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27F8 7F07DCC8 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B27FC 7F07DCCC 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B2800 7F07DCD0 14400004 */ bnez $v0, .L7F07DCE4 +/* 0B2804 7F07DCD4 02002025 */ move $a0, $s0 +/* 0B2808 7F07DCD8 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B280C 7F07DCDC 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B2810 7F07DCE0 27A6009C */ addiu $a2, $sp, 0x9c +.L7F07DCE4: +/* 0B2814 7F07DCE4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B2818 7F07DCE8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B281C 7F07DCEC 8C440488 */ lw $a0, 0x488($v0) +/* 0B2820 7F07DCF0 8C45048C */ lw $a1, 0x48c($v0) +/* 0B2824 7F07DCF4 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0B2828 7F07DCF8 8C460494 */ lw $a2, 0x494($v0) +/* 0B282C 7F07DCFC 1440004A */ bnez $v0, .L7F07DE28 +/* 0B2830 7F07DD00 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B2834 7F07DD04 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B2838 7F07DD08 00004025 */ move $t0, $zero +/* 0B283C 7F07DD0C 8DD00488 */ lw $s0, 0x488($t6) +/* 0B2840 7F07DD10 86060006 */ lh $a2, 6($s0) +.L7F07DD14: +/* 0B2844 7F07DD14 00001825 */ move $v1, $zero +/* 0B2848 7F07DD18 00002025 */ move $a0, $zero +/* 0B284C 7F07DD1C 00067B03 */ sra $t7, $a2, 0xc +/* 0B2850 7F07DD20 31F8000F */ andi $t8, $t7, 0xf +/* 0B2854 7F07DD24 1B00000D */ blez $t8, .L7F07DD5C +/* 0B2858 7F07DD28 02001025 */ move $v0, $s0 +/* 0B285C 7F07DD2C 00001825 */ move $v1, $zero +/* 0B2860 7F07DD30 001828C0 */ sll $a1, $t8, 3 +.L7F07DD34: +/* 0B2864 7F07DD34 9459000E */ lhu $t9, 0xe($v0) +/* 0B2868 7F07DD38 24630008 */ addiu $v1, $v1, 8 +/* 0B286C 7F07DD3C 0065082A */ slt $at, $v1, $a1 +/* 0B2870 7F07DD40 00195103 */ sra $t2, $t9, 4 +/* 0B2874 7F07DD44 11400002 */ beqz $t2, .L7F07DD50 +/* 0B2878 7F07DD48 00000000 */ nop +/* 0B287C 7F07DD4C 24840001 */ addiu $a0, $a0, 1 +.L7F07DD50: +/* 0B2880 7F07DD50 1420FFF8 */ bnez $at, .L7F07DD34 +/* 0B2884 7F07DD54 24420008 */ addiu $v0, $v0, 8 +/* 0B2888 7F07DD58 00001825 */ move $v1, $zero +.L7F07DD5C: +/* 0B288C 7F07DD5C AFA30044 */ sw $v1, 0x44($sp) +/* 0B2890 7F07DD60 AFA4003C */ sw $a0, 0x3c($sp) +/* 0B2894 7F07DD64 0C002914 */ jal get_random_value +/* 0B2898 7F07DD68 AFA80048 */ sw $t0, 0x48($sp) +/* 0B289C 7F07DD6C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0B28A0 7F07DD70 86060006 */ lh $a2, 6($s0) +/* 0B28A4 7F07DD74 8FA30044 */ lw $v1, 0x44($sp) +/* 0B28A8 7F07DD78 0044001B */ divu $zero, $v0, $a0 +/* 0B28AC 7F07DD7C 00065B03 */ sra $t3, $a2, 0xc +/* 0B28B0 7F07DD80 00003810 */ mfhi $a3 +/* 0B28B4 7F07DD84 316C000F */ andi $t4, $t3, 0xf +/* 0B28B8 7F07DD88 8FA80048 */ lw $t0, 0x48($sp) +/* 0B28BC 7F07DD8C 14800002 */ bnez $a0, .L7F07DD98 +/* 0B28C0 7F07DD90 00000000 */ nop +/* 0B28C4 7F07DD94 0007000D */ break 7 +.L7F07DD98: +/* 0B28C8 7F07DD98 00002025 */ move $a0, $zero +/* 0B28CC 7F07DD9C 19800011 */ blez $t4, .L7F07DDE4 +/* 0B28D0 7F07DDA0 01803025 */ move $a2, $t4 +/* 0B28D4 7F07DDA4 02001025 */ move $v0, $s0 +.L7F07DDA8: +/* 0B28D8 7F07DDA8 9445000E */ lhu $a1, 0xe($v0) +/* 0B28DC 7F07DDAC 24630001 */ addiu $v1, $v1, 1 +/* 0B28E0 7F07DDB0 0066082A */ slt $at, $v1, $a2 +/* 0B28E4 7F07DDB4 00056903 */ sra $t5, $a1, 4 +/* 0B28E8 7F07DDB8 11A00008 */ beqz $t5, .L7F07DDDC +/* 0B28EC 7F07DDBC 00000000 */ nop +/* 0B28F0 7F07DDC0 14870005 */ bne $a0, $a3, .L7F07DDD8 +/* 0B28F4 7F07DDC4 3C0F8004 */ lui $t7, %hi(base_ptr_connection_vals) +/* 0B28F8 7F07DDC8 8DEF0F58 */ lw $t7, %lo(base_ptr_connection_vals)($t7) +/* 0B28FC 7F07DDCC 000570C0 */ sll $t6, $a1, 3 +/* 0B2900 7F07DDD0 10000004 */ b .L7F07DDE4 +/* 0B2904 7F07DDD4 01CF8021 */ addu $s0, $t6, $t7 +.L7F07DDD8: +/* 0B2908 7F07DDD8 24840001 */ addiu $a0, $a0, 1 +.L7F07DDDC: +/* 0B290C 7F07DDDC 1420FFF2 */ bnez $at, .L7F07DDA8 +/* 0B2910 7F07DDE0 24420008 */ addiu $v0, $v0, 8 +.L7F07DDE4: +/* 0B2914 7F07DDE4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B2918 7F07DDE8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B291C 7F07DDEC 02002025 */ move $a0, $s0 +/* 0B2920 7F07DDF0 8C45048C */ lw $a1, 0x48c($v0) +/* 0B2924 7F07DDF4 8C460494 */ lw $a2, 0x494($v0) +/* 0B2928 7F07DDF8 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0B292C 7F07DDFC AFA80048 */ sw $t0, 0x48($sp) +/* 0B2930 7F07DE00 10400005 */ beqz $v0, .L7F07DE18 +/* 0B2934 7F07DE04 8FA80048 */ lw $t0, 0x48($sp) +/* 0B2938 7F07DE08 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B293C 7F07DE0C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B2940 7F07DE10 10000005 */ b .L7F07DE28 +/* 0B2944 7F07DE14 AF100488 */ sw $s0, 0x488($t8) +.L7F07DE18: +/* 0B2948 7F07DE18 25080001 */ addiu $t0, $t0, 1 +/* 0B294C 7F07DE1C 24010005 */ li $at, 5 +/* 0B2950 7F07DE20 5501FFBC */ bnel $t0, $at, .L7F07DD14 +/* 0B2954 7F07DE24 86060006 */ lh $a2, 6($s0) +.L7F07DE28: +/* 0B2958 7F07DE28 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B295C 7F07DE2C 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0B2960 7F07DE30 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B2964 7F07DE34 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B2968 7F07DE38 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B296C 7F07DE3C 8F220488 */ lw $v0, 0x488($t9) +/* 0B2970 7F07DE40 50400004 */ beql $v0, $zero, .L7F07DE54 +/* 0B2974 7F07DE44 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B2978 7F07DE48 0FC15DD1 */ jal sub_GAME_7F057744 +/* 0B297C 7F07DE4C 90440003 */ lbu $a0, 3($v0) +/* 0B2980 7F07DE50 8FBF0024 */ lw $ra, 0x24($sp) +.L7F07DE54: +/* 0B2984 7F07DE54 8FB00020 */ lw $s0, 0x20($sp) +/* 0B2988 7F07DE58 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0B298C 7F07DE5C 03E00008 */ jr $ra +/* 0B2990 7F07DE60 00000000 */ nop +) +#endif + + +void sub_GAME_7F07DE64(struct Player *player) { + sub_GAME_7F03DE94(player->position_data_pointer, player->field_2A04, player); + player->field_2A04 = -1; +} + +#ifdef NONMATCHING +void sub_GAME_7F07DE9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07DE9C +/* 0B29CC 7F07DE9C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B29D0 7F07DEA0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B29D4 7F07DEA4 0FC1F799 */ jal sub_GAME_7F07DE64 +/* 0B29D8 7F07DEA8 AFA40018 */ sw $a0, 0x18($sp) +/* 0B29DC 7F07DEAC 8FA60018 */ lw $a2, 0x18($sp) +/* 0B29E0 7F07DEB0 8CC400A8 */ lw $a0, 0xa8($a2) +/* 0B29E4 7F07DEB4 8C850004 */ lw $a1, 4($a0) +/* 0B29E8 7F07DEB8 50A00006 */ beql $a1, $zero, .L7F07DED4 +/* 0B29EC 7F07DEBC 8CC20488 */ lw $v0, 0x488($a2) +/* 0B29F0 7F07DEC0 0FC08365 */ jal sub_GAME_7F020D94 +/* 0B29F4 7F07DEC4 00A02025 */ move $a0, $a1 +/* 0B29F8 7F07DEC8 10000009 */ b .L7F07DEF0 +/* 0B29FC 7F07DECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2A00 7F07DED0 8CC20488 */ lw $v0, 0x488($a2) +.L7F07DED4: +/* 0B2A04 7F07DED4 50400006 */ beql $v0, $zero, .L7F07DEF0 +/* 0B2A08 7F07DED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2A0C 7F07DEDC 904E0003 */ lbu $t6, 3($v0) +/* 0B2A10 7F07DEE0 A4CE2A04 */ sh $t6, 0x2a04($a2) +/* 0B2A14 7F07DEE4 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 0B2A18 7F07DEE8 84C52A04 */ lh $a1, 0x2a04($a2) +/* 0B2A1C 7F07DEEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07DEF0: +/* 0B2A20 7F07DEF0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B2A24 7F07DEF4 03E00008 */ jr $ra +/* 0B2A28 7F07DEF8 00000000 */ nop +) +#endif + + +void sub_GAME_7F07DEFC(void) { + pPlayer->pause_starting_angle = pPlayer->vv_verta; + pPlayer->field_210 = 0.0f; + pPlayer->field_218 = 0; +} + +#ifdef NONMATCHING +f32 sub_GAME_7F07DF28(s32 arg0) { + void *temp_v1; + void *temp_v0; + f32 temp_f0; + void *phi_v1; + f32 phi_f0; + + // Node 0 + if (arg0 != 0) + { + // Node 1 + pPlayer->field_208 = (f32) pPlayer->vv_verta; + pPlayer->pause_target_angle = -40.0f; + phi_v1 = &pPlayer; + } + else + { + // Node 2 + temp_v1 = (0x80080000 + -0x5f50); + *temp_v1->unk208 = (f32) *temp_v1->unk204; + *temp_v1->unk20C = (f32) *temp_v1->unk158; + phi_v1 = temp_v1; + } + // Node 3 + temp_v0 = *phi_v1; + temp_f0 = (temp_v0->unk208 - temp_v0->unk20C); + phi_f0 = temp_f0; + if (temp_f0 < 0.0f) + { + // Node 4 + phi_f0 = -temp_f0; + } + // Node 5 + if (60.0f <= phi_f0) + { + // Node 6 + return (((((phi_f0 - 60.0f) * 60.0f) * 0.5f) / 60.0f) + 60.0f); + } + // Node 7 + if (phi_f0 <= 0.0f) + { + // Node 8 + return 0.0f; + } + // Node 9 + return ((phi_f0 * 60.0f) / 60.0f); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07DF28 +/* 0B2A58 7F07DF28 1080000B */ beqz $a0, .L7F07DF58 +/* 0B2A5C 7F07DF2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2A60 7F07DF30 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2A64 7F07DF34 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2A68 7F07DF38 8C620000 */ lw $v0, ($v1) +/* 0B2A6C 7F07DF3C 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 0B2A70 7F07DF40 44813000 */ mtc1 $at, $f6 +/* 0B2A74 7F07DF44 C4440158 */ lwc1 $f4, 0x158($v0) +/* 0B2A78 7F07DF48 E4440208 */ swc1 $f4, 0x208($v0) +/* 0B2A7C 7F07DF4C 8C6E0000 */ lw $t6, ($v1) +/* 0B2A80 7F07DF50 10000008 */ b .L7F07DF74 +/* 0B2A84 7F07DF54 E5C6020C */ swc1 $f6, 0x20c($t6) +.L7F07DF58: +/* 0B2A88 7F07DF58 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B2A8C 7F07DF5C 8C620000 */ lw $v0, ($v1) +/* 0B2A90 7F07DF60 C4480204 */ lwc1 $f8, 0x204($v0) +/* 0B2A94 7F07DF64 E4480208 */ swc1 $f8, 0x208($v0) +/* 0B2A98 7F07DF68 8C620000 */ lw $v0, ($v1) +/* 0B2A9C 7F07DF6C C44A0158 */ lwc1 $f10, 0x158($v0) +/* 0B2AA0 7F07DF70 E44A020C */ swc1 $f10, 0x20c($v0) +.L7F07DF74: +/* 0B2AA4 7F07DF74 8C620000 */ lw $v0, ($v1) +/* 0B2AA8 7F07DF78 44806000 */ mtc1 $zero, $f12 +/* 0B2AAC 7F07DF7C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B2AB0 7F07DF80 C4500208 */ lwc1 $f16, 0x208($v0) +/* 0B2AB4 7F07DF84 C452020C */ lwc1 $f18, 0x20c($v0) +/* 0B2AB8 7F07DF88 44817000 */ mtc1 $at, $f14 +/* 0B2ABC 7F07DF8C 46128001 */ sub.s $f0, $f16, $f18 +/* 0B2AC0 7F07DF90 460C003C */ c.lt.s $f0, $f12 +/* 0B2AC4 7F07DF94 00000000 */ nop +/* 0B2AC8 7F07DF98 45020003 */ bc1fl .L7F07DFA8 +/* 0B2ACC 7F07DF9C 4600703E */ c.le.s $f14, $f0 +/* 0B2AD0 7F07DFA0 46000007 */ neg.s $f0, $f0 +/* 0B2AD4 7F07DFA4 4600703E */ c.le.s $f14, $f0 +.L7F07DFA8: +/* 0B2AD8 7F07DFA8 00000000 */ nop +/* 0B2ADC 7F07DFAC 4502000C */ bc1fl .L7F07DFE0 +/* 0B2AE0 7F07DFB0 460C003E */ c.le.s $f0, $f12 +/* 0B2AE4 7F07DFB4 460E0101 */ sub.s $f4, $f0, $f14 +/* 0B2AE8 7F07DFB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2AEC 7F07DFBC 44814000 */ mtc1 $at, $f8 +/* 0B2AF0 7F07DFC0 460E2182 */ mul.s $f6, $f4, $f14 +/* 0B2AF4 7F07DFC4 00000000 */ nop +/* 0B2AF8 7F07DFC8 46083282 */ mul.s $f10, $f6, $f8 +/* 0B2AFC 7F07DFCC 460E5403 */ div.s $f16, $f10, $f14 +/* 0B2B00 7F07DFD0 460E8080 */ add.s $f2, $f16, $f14 +/* 0B2B04 7F07DFD4 03E00008 */ jr $ra +/* 0B2B08 7F07DFD8 46001006 */ mov.s $f0, $f2 + +/* 0B2B0C 7F07DFDC 460C003E */ c.le.s $f0, $f12 +.L7F07DFE0: +/* 0B2B10 7F07DFE0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B2B14 7F07DFE4 45020005 */ bc1fl .L7F07DFFC +/* 0B2B18 7F07DFE8 44816000 */ mtc1 $at, $f12 +/* 0B2B1C 7F07DFEC 46006086 */ mov.s $f2, $f12 +/* 0B2B20 7F07DFF0 03E00008 */ jr $ra +/* 0B2B24 7F07DFF4 46006006 */ mov.s $f0, $f12 + +/* 0B2B28 7F07DFF8 44816000 */ mtc1 $at, $f12 +.L7F07DFFC: +/* 0B2B2C 7F07DFFC 00000000 */ nop +/* 0B2B30 7F07E000 460C0482 */ mul.s $f18, $f0, $f12 +/* 0B2B34 7F07E004 460C9083 */ div.s $f2, $f18, $f12 +/* 0B2B38 7F07E008 03E00008 */ jr $ra +/* 0B2B3C 7F07E00C 46001006 */ mov.s $f0, $f2 +) +#endif + + +void sub_GAME_7F07E010(f32 arg0) { + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = arg0; + pPlayer->field_218 = 1; +} + +void sub_GAME_7F07E03C(f32 arg0) { + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = arg0; + pPlayer->field_218 = 2; +} + + +s32 sub_GAME_7F07E068(void) { + return (pPlayer->field_218 != 0 && pPlayer->field_218 != 3); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F07E090(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005506C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055070 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055074 +.word 0xbf333333 /*-0.69999999*/ +glabel D_80055078 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F07E090 +/* 0B2BC0 7F07E090 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2BC4 7F07E094 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2BC8 7F07E098 8C820000 */ lw $v0, ($a0) +/* 0B2BCC 7F07E09C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B2BD0 7F07E0A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2BD4 7F07E0A4 C4420158 */ lwc1 $f2, 0x158($v0) +/* 0B2BD8 7F07E0A8 24010001 */ li $at, 1 +/* 0B2BDC 7F07E0AC E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B2BE0 7F07E0B0 8C430218 */ lw $v1, 0x218($v0) +/* 0B2BE4 7F07E0B4 14610031 */ bne $v1, $at, .L7F07E17C +/* 0B2BE8 7F07E0B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2BEC 7F07E0BC C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B2BF0 7F07E0C0 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B2BF4 7F07E0C4 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B2BF8 7F07E0C8 C44A0210 */ lwc1 $f10, 0x210($v0) +/* 0B2BFC 7F07E0CC 46062202 */ mul.s $f8, $f4, $f6 +/* 0B2C00 7F07E0D0 46085400 */ add.s $f16, $f10, $f8 +/* 0B2C04 7F07E0D4 E4500210 */ swc1 $f16, 0x210($v0) +/* 0B2C08 7F07E0D8 8C820000 */ lw $v0, ($a0) +/* 0B2C0C 7F07E0DC C4400210 */ lwc1 $f0, 0x210($v0) +/* 0B2C10 7F07E0E0 C4420214 */ lwc1 $f2, 0x214($v0) +/* 0B2C14 7F07E0E4 4602003C */ c.lt.s $f0, $f2 +/* 0B2C18 7F07E0E8 00000000 */ nop +/* 0B2C1C 7F07E0EC 4502001C */ bc1fl .L7F07E160 +/* 0B2C20 7F07E0F0 C450020C */ lwc1 $f16, 0x20c($v0) +/* 0B2C24 7F07E0F4 46020383 */ div.s $f14, $f0, $f2 +/* 0B2C28 7F07E0F8 3C018005 */ lui $at, %hi(D_8005506C) +/* 0B2C2C 7F07E0FC C432506C */ lwc1 $f18, %lo(D_8005506C)($at) +/* 0B2C30 7F07E100 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2C34 7F07E104 44813000 */ mtc1 $at, $f6 +/* 0B2C38 7F07E108 46127102 */ mul.s $f4, $f14, $f18 +/* 0B2C3C 7F07E10C 00000000 */ nop +/* 0B2C40 7F07E110 46062302 */ mul.s $f12, $f4, $f6 +/* 0B2C44 7F07E114 0FC15FA8 */ jal cosf +/* 0B2C48 7F07E118 00000000 */ nop +/* 0B2C4C 7F07E11C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2C50 7F07E120 44815000 */ mtc1 $at, $f10 +/* 0B2C54 7F07E124 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2C58 7F07E128 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2C5C 7F07E12C 46005201 */ sub.s $f8, $f10, $f0 +/* 0B2C60 7F07E130 8C820000 */ lw $v0, ($a0) +/* 0B2C64 7F07E134 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2C68 7F07E138 44818000 */ mtc1 $at, $f16 +/* 0B2C6C 7F07E13C C4420208 */ lwc1 $f2, 0x208($v0) +/* 0B2C70 7F07E140 C444020C */ lwc1 $f4, 0x20c($v0) +/* 0B2C74 7F07E144 46104482 */ mul.s $f18, $f8, $f16 +/* 0B2C78 7F07E148 46022181 */ sub.s $f6, $f4, $f2 +/* 0B2C7C 7F07E14C 46123282 */ mul.s $f10, $f6, $f18 +/* 0B2C80 7F07E150 460A1200 */ add.s $f8, $f2, $f10 +/* 0B2C84 7F07E154 10000006 */ b .L7F07E170 +/* 0B2C88 7F07E158 E4480158 */ swc1 $f8, 0x158($v0) +/* 0B2C8C 7F07E15C C450020C */ lwc1 $f16, 0x20c($v0) +.L7F07E160: +/* 0B2C90 7F07E160 240E0003 */ li $t6, 3 +/* 0B2C94 7F07E164 E4500158 */ swc1 $f16, 0x158($v0) +/* 0B2C98 7F07E168 8C8F0000 */ lw $t7, ($a0) +/* 0B2C9C 7F07E16C ADEE0218 */ sw $t6, 0x218($t7) +.L7F07E170: +/* 0B2CA0 7F07E170 8C820000 */ lw $v0, ($a0) +/* 0B2CA4 7F07E174 10000034 */ b .L7F07E248 +/* 0B2CA8 7F07E178 C4420158 */ lwc1 $f2, 0x158($v0) +.L7F07E17C: +/* 0B2CAC 7F07E17C 24010002 */ li $at, 2 +/* 0B2CB0 7F07E180 14610031 */ bne $v1, $at, .L7F07E248 +/* 0B2CB4 7F07E184 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2CB8 7F07E188 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B2CBC 7F07E18C 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B2CC0 7F07E190 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B2CC4 7F07E194 C44A0210 */ lwc1 $f10, 0x210($v0) +/* 0B2CC8 7F07E198 46062482 */ mul.s $f18, $f4, $f6 +/* 0B2CCC 7F07E19C 46125200 */ add.s $f8, $f10, $f18 +/* 0B2CD0 7F07E1A0 E4480210 */ swc1 $f8, 0x210($v0) +/* 0B2CD4 7F07E1A4 8C820000 */ lw $v0, ($a0) +/* 0B2CD8 7F07E1A8 C4400210 */ lwc1 $f0, 0x210($v0) +/* 0B2CDC 7F07E1AC C4420214 */ lwc1 $f2, 0x214($v0) +/* 0B2CE0 7F07E1B0 4602003C */ c.lt.s $f0, $f2 +/* 0B2CE4 7F07E1B4 00000000 */ nop +/* 0B2CE8 7F07E1B8 4502001E */ bc1fl .L7F07E234 +/* 0B2CEC 7F07E1BC C4480208 */ lwc1 $f8, 0x208($v0) +/* 0B2CF0 7F07E1C0 46020383 */ div.s $f14, $f0, $f2 +/* 0B2CF4 7F07E1C4 3C018005 */ lui $at, %hi(D_80055070) +/* 0B2CF8 7F07E1C8 C4305070 */ lwc1 $f16, %lo(D_80055070)($at) +/* 0B2CFC 7F07E1CC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2D00 7F07E1D0 44813000 */ mtc1 $at, $f6 +/* 0B2D04 7F07E1D4 46107102 */ mul.s $f4, $f14, $f16 +/* 0B2D08 7F07E1D8 00000000 */ nop +/* 0B2D0C 7F07E1DC 46062302 */ mul.s $f12, $f4, $f6 +/* 0B2D10 7F07E1E0 0FC15FA8 */ jal cosf +/* 0B2D14 7F07E1E4 00000000 */ nop +/* 0B2D18 7F07E1E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2D1C 7F07E1EC 44815000 */ mtc1 $at, $f10 +/* 0B2D20 7F07E1F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2D24 7F07E1F4 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2D28 7F07E1F8 46005481 */ sub.s $f18, $f10, $f0 +/* 0B2D2C 7F07E1FC 8C820000 */ lw $v0, ($a0) +/* 0B2D30 7F07E200 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2D34 7F07E204 44814000 */ mtc1 $at, $f8 +/* 0B2D38 7F07E208 C44C020C */ lwc1 $f12, 0x20c($v0) +/* 0B2D3C 7F07E20C C4440208 */ lwc1 $f4, 0x208($v0) +/* 0B2D40 7F07E210 46089402 */ mul.s $f16, $f18, $f8 +/* 0B2D44 7F07E214 460C2181 */ sub.s $f6, $f4, $f12 +/* 0B2D48 7F07E218 46103282 */ mul.s $f10, $f6, $f16 +/* 0B2D4C 7F07E21C 460A6480 */ add.s $f18, $f12, $f10 +/* 0B2D50 7F07E220 E4520158 */ swc1 $f18, 0x158($v0) +/* 0B2D54 7F07E224 8C820000 */ lw $v0, ($a0) +/* 0B2D58 7F07E228 10000007 */ b .L7F07E248 +/* 0B2D5C 7F07E22C C4420158 */ lwc1 $f2, 0x158($v0) +/* 0B2D60 7F07E230 C4480208 */ lwc1 $f8, 0x208($v0) +.L7F07E234: +/* 0B2D64 7F07E234 E4480158 */ swc1 $f8, 0x158($v0) +/* 0B2D68 7F07E238 8C980000 */ lw $t8, ($a0) +/* 0B2D6C 7F07E23C AF000218 */ sw $zero, 0x218($t8) +/* 0B2D70 7F07E240 8C820000 */ lw $v0, ($a0) +/* 0B2D74 7F07E244 C4420158 */ lwc1 $f2, 0x158($v0) +.L7F07E248: +/* 0B2D78 7F07E248 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0B2D7C 7F07E24C 44812000 */ mtc1 $at, $f4 +/* 0B2D80 7F07E250 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B2D84 7F07E254 3C198005 */ lui $t9, %hi(clock_timer) +/* 0B2D88 7F07E258 4604103C */ c.lt.s $f2, $f4 +/* 0B2D8C 7F07E25C 00000000 */ nop +/* 0B2D90 7F07E260 45020008 */ bc1fl .L7F07E284 +/* 0B2D94 7F07E264 44818000 */ mtc1 $at, $f16 +/* 0B2D98 7F07E268 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2D9C 7F07E26C 44816000 */ mtc1 $at, $f12 +/* 0B2DA0 7F07E270 00000000 */ nop +/* 0B2DA4 7F07E274 460C1180 */ add.s $f6, $f2, $f12 +/* 0B2DA8 7F07E278 1000000B */ b .L7F07E2A8 +/* 0B2DAC 7F07E27C E4460158 */ swc1 $f6, 0x158($v0) +/* 0B2DB0 7F07E280 44818000 */ mtc1 $at, $f16 +.L7F07E284: +/* 0B2DB4 7F07E284 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2DB8 7F07E288 4602803E */ c.le.s $f16, $f2 +/* 0B2DBC 7F07E28C 00000000 */ nop +/* 0B2DC0 7F07E290 45000005 */ bc1f .L7F07E2A8 +/* 0B2DC4 7F07E294 00000000 */ nop +/* 0B2DC8 7F07E298 44816000 */ mtc1 $at, $f12 +/* 0B2DCC 7F07E29C 00000000 */ nop +/* 0B2DD0 7F07E2A0 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B2DD4 7F07E2A4 E44A0158 */ swc1 $f10, 0x158($v0) +.L7F07E2A8: +/* 0B2DD8 7F07E2A8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0B2DDC 7F07E2AC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2DE0 7F07E2B0 44816000 */ mtc1 $at, $f12 +/* 0B2DE4 7F07E2B4 1B200030 */ blez $t9, .L7F07E378 +/* 0B2DE8 7F07E2B8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B2DEC 7F07E2BC 8C820000 */ lw $v0, ($a0) +/* 0B2DF0 7F07E2C0 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B2DF4 7F07E2C4 44803000 */ mtc1 $zero, $f6 +/* 0B2DF8 7F07E2C8 C4520158 */ lwc1 $f18, 0x158($v0) +/* 0B2DFC 7F07E2CC 44815000 */ mtc1 $at, $f10 +/* 0B2E00 7F07E2D0 3C018005 */ lui $at, %hi(D_80055074) +/* 0B2E04 7F07E2D4 46089101 */ sub.s $f4, $f18, $f8 +/* 0B2E08 7F07E2D8 E4440160 */ swc1 $f4, 0x160($v0) +/* 0B2E0C 7F07E2DC 8C820000 */ lw $v0, ($a0) +/* 0B2E10 7F07E2E0 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E14 7F07E2E4 4606003C */ c.lt.s $f0, $f6 +/* 0B2E18 7F07E2E8 00000000 */ nop +/* 0B2E1C 7F07E2EC 45020006 */ bc1fl .L7F07E308 +/* 0B2E20 7F07E2F0 4600503C */ c.lt.s $f10, $f0 +/* 0B2E24 7F07E2F4 460C0400 */ add.s $f16, $f0, $f12 +/* 0B2E28 7F07E2F8 E4500160 */ swc1 $f16, 0x160($v0) +/* 0B2E2C 7F07E2FC 8C820000 */ lw $v0, ($a0) +/* 0B2E30 7F07E300 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E34 7F07E304 4600503C */ c.lt.s $f10, $f0 +.L7F07E308: +/* 0B2E38 7F07E308 00000000 */ nop +/* 0B2E3C 7F07E30C 45000005 */ bc1f .L7F07E324 +/* 0B2E40 7F07E310 00000000 */ nop +/* 0B2E44 7F07E314 460C0481 */ sub.s $f18, $f0, $f12 +/* 0B2E48 7F07E318 E4520160 */ swc1 $f18, 0x160($v0) +/* 0B2E4C 7F07E31C 8C820000 */ lw $v0, ($a0) +/* 0B2E50 7F07E320 C4400160 */ lwc1 $f0, 0x160($v0) +.L7F07E324: +/* 0B2E54 7F07E324 C42C5074 */ lwc1 $f12, %lo(D_80055074)($at) +/* 0B2E58 7F07E328 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2E5C 7F07E32C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 0B2E60 7F07E330 3C018005 */ lui $at, %hi(D_80055078) +/* 0B2E64 7F07E334 46021200 */ add.s $f8, $f2, $f2 +/* 0B2E68 7F07E338 46080103 */ div.s $f4, $f0, $f8 +/* 0B2E6C 7F07E33C E4440160 */ swc1 $f4, 0x160($v0) +/* 0B2E70 7F07E340 8C820000 */ lw $v0, ($a0) +/* 0B2E74 7F07E344 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E78 7F07E348 460C003C */ c.lt.s $f0, $f12 +/* 0B2E7C 7F07E34C 00000000 */ nop +/* 0B2E80 7F07E350 45000003 */ bc1f .L7F07E360 +/* 0B2E84 7F07E354 00000000 */ nop +/* 0B2E88 7F07E358 10000007 */ b .L7F07E378 +/* 0B2E8C 7F07E35C E44C0160 */ swc1 $f12, 0x160($v0) +.L7F07E360: +/* 0B2E90 7F07E360 C4225078 */ lwc1 $f2, %lo(D_80055078)($at) +/* 0B2E94 7F07E364 4600103C */ c.lt.s $f2, $f0 +/* 0B2E98 7F07E368 00000000 */ nop +/* 0B2E9C 7F07E36C 45020003 */ bc1fl .L7F07E37C +/* 0B2EA0 7F07E370 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2EA4 7F07E374 E4420160 */ swc1 $f2, 0x160($v0) +.L7F07E378: +/* 0B2EA8 7F07E378 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07E37C: +/* 0B2EAC 7F07E37C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B2EB0 7F07E380 03E00008 */ jr $ra +/* 0B2EB4 7F07E384 00000000 */ nop +) +#endif + + +f32 sub_GAME_7F07E388(void) { + + if (pPlayer->field_218 == 1) { + return pPlayer->field_210 / pPlayer->field_214; + } + if (pPlayer->field_218 == 2) { + return 1.0f - (pPlayer->field_210 / pPlayer->field_214); + } + if (pPlayer->field_218 == 3) { + return 1.0f; + } + return 0.0f; +} + +void trigger_watch_zoom(f32 final,f32 time) +{ + pPlayer->zoomintime = 0.00000000; + pPlayer->zoomintimemax = time; + pPlayer->zoominfovyold = pPlayer->zoominfovy; + pPlayer->zoominfovynew = final; +} + + +f32 sub_GAME_7F07E438(void) { + + if (pPlayer->zoomintime < pPlayer->zoomintimemax) + { + return pPlayer->zoominfovynew; + } + + return pPlayer->zoominfovy; +} + +#ifdef NONMATCHING +void sub_GAME_7F07E46C(f32 arg0) { + ? temp_ret; + ? phi_return; + + // Node 0 + temp_ret = sub_GAME_7F07E438(); + phi_return = temp_ret; + if (temp_ret == arg0) + { + // Node 4 + // Node 5 + return phi_return; + } + // Node 1 + if (arg0 >= pPlayer->field_11C4) + { + // Node 3 + phi_return = trigger_watch_zoom(arg0, (((arg0 - pPlayer->field_11C4) * 15.0f) / 30.0f)); + // Node 4 + // Node 5 + return phi_return; + } + // Node 2 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E46C +/* 0B2F9C 7F07E46C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B2FA0 7F07E470 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2FA4 7F07E474 0FC1F90E */ jal sub_GAME_7F07E438 +/* 0B2FA8 7F07E478 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B2FAC 7F07E47C C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B2FB0 7F07E480 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B2FB4 7F07E484 460C0032 */ c.eq.s $f0, $f12 +/* 0B2FB8 7F07E488 00000000 */ nop +/* 0B2FBC 7F07E48C 4503001A */ bc1tl .L7F07E4F8 +/* 0B2FC0 7F07E490 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2FC4 7F07E494 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B2FC8 7F07E498 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B2FCC 7F07E49C C5C011C4 */ lwc1 $f0, 0x11c4($t6) +/* 0B2FD0 7F07E4A0 4600603C */ c.lt.s $f12, $f0 +/* 0B2FD4 7F07E4A4 00000000 */ nop +/* 0B2FD8 7F07E4A8 4502000C */ bc1fl .L7F07E4DC +/* 0B2FDC 7F07E4AC 46006401 */ sub.s $f16, $f12, $f0 +/* 0B2FE0 7F07E4B0 460C0101 */ sub.s $f4, $f0, $f12 +/* 0B2FE4 7F07E4B4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B2FE8 7F07E4B8 44813000 */ mtc1 $at, $f6 +/* 0B2FEC 7F07E4BC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B2FF0 7F07E4C0 44815000 */ mtc1 $at, $f10 +/* 0B2FF4 7F07E4C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0B2FF8 7F07E4C8 0FC1F900 */ jal trigger_watch_zoom +/* 0B2FFC 7F07E4CC 460A4383 */ div.s $f14, $f8, $f10 +/* 0B3000 7F07E4D0 10000009 */ b .L7F07E4F8 +/* 0B3004 7F07E4D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3008 7F07E4D8 46006401 */ sub.s $f16, $f12, $f0 +.L7F07E4DC: +/* 0B300C 7F07E4DC 44819000 */ mtc1 $at, $f18 +/* 0B3010 7F07E4E0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B3014 7F07E4E4 44813000 */ mtc1 $at, $f6 +/* 0B3018 7F07E4E8 46128102 */ mul.s $f4, $f16, $f18 +/* 0B301C 7F07E4EC 0FC1F900 */ jal trigger_watch_zoom +/* 0B3020 7F07E4F0 46062383 */ div.s $f14, $f4, $f6 +/* 0B3024 7F07E4F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07E4F8: +/* 0B3028 7F07E4F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B302C 7F07E4FC 03E00008 */ jr $ra +/* 0B3030 7F07E500 00000000 */ nop +) +#endif + + + +void sub_GAME_7F07E504(void) { + sub_GAME_7F07E46C(60.0f); +} + +#ifdef NONMATCHING +void zoom_to_watch_on_open(void) { + f32 temp_f14; + f32 phi_f14; + + // Node 0 + temp_f14 = (((final - pPlayer->field_11C4) * 45.0f) / D_80055080); + phi_f14 = temp_f14; + if (temp_f14 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + } + // Node 2 + return trigger_watch_zoom(final, phi_f14); +} +#else +GLOBAL_ASM( +.late_rodata +glabel final +.word 0x40bccccd /*5.9000001*/ +glabel D_80055080 +.word 0xc2586666 /*-54.099998*/ +glabel D_80055084 +.word 0xc2586666 /*-54.099998*/ +.text +glabel zoom_to_watch_on_open +/* 0B305C 7F07E52C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3060 7F07E530 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3064 7F07E534 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B3068 7F07E538 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B306C 7F07E53C 3C018005 */ lui $at, %hi(final) +/* 0B3070 7F07E540 C42C507C */ lwc1 $f12, %lo(final)($at) +/* 0B3074 7F07E544 C5C411C4 */ lwc1 $f4, 0x11c4($t6) +/* 0B3078 7F07E548 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B307C 7F07E54C 44814000 */ mtc1 $at, $f8 +/* 0B3080 7F07E550 46046181 */ sub.s $f6, $f12, $f4 +/* 0B3084 7F07E554 3C018005 */ lui $at, %hi(D_80055080) +/* 0B3088 7F07E558 C4305080 */ lwc1 $f16, %lo(D_80055080)($at) +/* 0B308C 7F07E55C 44809000 */ mtc1 $zero, $f18 +/* 0B3090 7F07E560 46083282 */ mul.s $f10, $f6, $f8 +/* 0B3094 7F07E564 46105383 */ div.s $f14, $f10, $f16 +/* 0B3098 7F07E568 4612703C */ c.lt.s $f14, $f18 +/* 0B309C 7F07E56C 00000000 */ nop +/* 0B30A0 7F07E570 45000002 */ bc1f .L7F07E57C +/* 0B30A4 7F07E574 00000000 */ nop +/* 0B30A8 7F07E578 46007387 */ neg.s $f14, $f14 +.L7F07E57C: +/* 0B30AC 7F07E57C 0FC1F900 */ jal trigger_watch_zoom +/* 0B30B0 7F07E580 00000000 */ nop +/* 0B30B4 7F07E584 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B30B8 7F07E588 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B30BC 7F07E58C 03E00008 */ jr $ra +/* 0B30C0 7F07E590 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void zoom_from_watch_on_exit(void) { + f32 temp_f14; + f32 phi_f14; + + // Node 0 + temp_f14 = (((60.0f - pPlayer->field_11C4) * 45.0f) / D_80055084); + phi_f14 = temp_f14; + if (temp_f14 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + } + // Node 2 + return trigger_watch_zoom(60.0f, phi_f14); +} +#else +GLOBAL_ASM( +.text +glabel zoom_from_watch_on_exit +/* 0B30C4 7F07E594 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B30C8 7F07E598 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B30CC 7F07E59C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B30D0 7F07E5A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B30D4 7F07E5A4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B30D8 7F07E5A8 44816000 */ mtc1 $at, $f12 +/* 0B30DC 7F07E5AC C5C411C4 */ lwc1 $f4, 0x11c4($t6) +/* 0B30E0 7F07E5B0 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B30E4 7F07E5B4 44814000 */ mtc1 $at, $f8 +/* 0B30E8 7F07E5B8 46046181 */ sub.s $f6, $f12, $f4 +/* 0B30EC 7F07E5BC 3C018005 */ lui $at, %hi(D_80055084) +/* 0B30F0 7F07E5C0 C4305084 */ lwc1 $f16, %lo(D_80055084)($at) +/* 0B30F4 7F07E5C4 44809000 */ mtc1 $zero, $f18 +/* 0B30F8 7F07E5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0B30FC 7F07E5CC 46105383 */ div.s $f14, $f10, $f16 +/* 0B3100 7F07E5D0 4612703C */ c.lt.s $f14, $f18 +/* 0B3104 7F07E5D4 00000000 */ nop +/* 0B3108 7F07E5D8 45000002 */ bc1f .L7F07E5E4 +/* 0B310C 7F07E5DC 00000000 */ nop +/* 0B3110 7F07E5E0 46007387 */ neg.s $f14, $f14 +.L7F07E5E4: +/* 0B3114 7F07E5E4 0FC1F900 */ jal trigger_watch_zoom +/* 0B3118 7F07E5E8 00000000 */ nop +/* 0B311C 7F07E5EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3120 7F07E5F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B3124 7F07E5F4 03E00008 */ jr $ra +/* 0B3128 7F07E5F8 00000000 */ nop +) +#endif + + +s32 check_watch_page_transistion_running(void) { + return (pPlayer->zoomintime < pPlayer->zoomintimemax); +} + +#ifdef NONMATCHING +void sub_GAME_7F07E62C(void) { + f32 temp_f2; + + // Node 0 + if (pPlayer->field_11BC < pPlayer->field_11C0) + { + // Node 1 + if ((pPlayer->pause_animation_state == 0xc) || (pPlayer->pause_animation_state == 0xc)) + { + // Node 3 + pPlayer->field_11BC = (f32) (pPlayer->field_11BC + (f32) D_80048498); + } + else + { + // Node 4 + pPlayer->field_11BC = (f32) (pPlayer->field_11BC + ((f32) D_80048498 * watch_transition_time)); + } + // Node 5 + if (pPlayer->field_11C0 < pPlayer->field_11BC) + { + // Node 6 + pPlayer->field_11BC = (f32) pPlayer->field_11C0; + } + // Node 7 + temp_f2 = pPlayer->field_11C8; + pPlayer->field_11C4 = (f32) (temp_f2 + ((pPlayer->field_11BC * (pPlayer->field_11CC - temp_f2)) / pPlayer->field_11C0)); + } + else + { + // Node 8 + pPlayer->field_11BC = (f32) pPlayer->field_11C0; + pPlayer->field_11C4 = (f32) pPlayer->field_11CC; + } + // Node 9 + set_cur_player_fovy(pPlayer->field_11C4, &pPlayer); + return setvideo_far(pPlayer->field_11C4, &pPlayer); +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E62C +/* 0B315C 7F07E62C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3160 7F07E630 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3164 7F07E634 8C820000 */ lw $v0, ($a0) +/* 0B3168 7F07E638 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B316C 7F07E63C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3170 7F07E640 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3174 7F07E644 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B3178 7F07E648 4600603C */ c.lt.s $f12, $f0 +/* 0B317C 7F07E64C 00000000 */ nop +/* 0B3180 7F07E650 4502002C */ bc1fl .L7F07E704 +/* 0B3184 7F07E654 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3188 7F07E658 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B318C 7F07E65C 24010005 */ li $at, 5 +/* 0B3190 7F07E660 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0B3194 7F07E664 10610003 */ beq $v1, $at, .L7F07E674 +/* 0B3198 7F07E668 2401000C */ li $at, 12 +/* 0B319C 7F07E66C 14610008 */ bne $v1, $at, .L7F07E690 +/* 0B31A0 7F07E670 3C0F8005 */ lui $t7, %hi(D_80048498) +.L7F07E674: +/* 0B31A4 7F07E674 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0B31A8 7F07E678 448E2000 */ mtc1 $t6, $f4 +/* 0B31AC 7F07E67C 00000000 */ nop +/* 0B31B0 7F07E680 468021A0 */ cvt.s.w $f6, $f4 +/* 0B31B4 7F07E684 46066200 */ add.s $f8, $f12, $f6 +/* 0B31B8 7F07E688 1000000A */ b .L7F07E6B4 +/* 0B31BC 7F07E68C E44811BC */ swc1 $f8, 0x11bc($v0) +.L7F07E690: +/* 0B31C0 7F07E690 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0B31C4 7F07E694 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B31C8 7F07E698 C43265A8 */ lwc1 $f18, %lo(watch_transition_time)($at) +/* 0B31CC 7F07E69C 448F5000 */ mtc1 $t7, $f10 +/* 0B31D0 7F07E6A0 00000000 */ nop +/* 0B31D4 7F07E6A4 46805420 */ cvt.s.w $f16, $f10 +/* 0B31D8 7F07E6A8 46128102 */ mul.s $f4, $f16, $f18 +/* 0B31DC 7F07E6AC 46046180 */ add.s $f6, $f12, $f4 +/* 0B31E0 7F07E6B0 E44611BC */ swc1 $f6, 0x11bc($v0) +.L7F07E6B4: +/* 0B31E4 7F07E6B4 8C820000 */ lw $v0, ($a0) +/* 0B31E8 7F07E6B8 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B31EC 7F07E6BC C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B31F0 7F07E6C0 460C003C */ c.lt.s $f0, $f12 +/* 0B31F4 7F07E6C4 00000000 */ nop +/* 0B31F8 7F07E6C8 45020006 */ bc1fl .L7F07E6E4 +/* 0B31FC 7F07E6CC C44211C8 */ lwc1 $f2, 0x11c8($v0) +/* 0B3200 7F07E6D0 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3204 7F07E6D4 8C820000 */ lw $v0, ($a0) +/* 0B3208 7F07E6D8 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B320C 7F07E6DC C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3210 7F07E6E0 C44211C8 */ lwc1 $f2, 0x11c8($v0) +.L7F07E6E4: +/* 0B3214 7F07E6E4 C44811CC */ lwc1 $f8, 0x11cc($v0) +/* 0B3218 7F07E6E8 46024281 */ sub.s $f10, $f8, $f2 +/* 0B321C 7F07E6EC 460A6402 */ mul.s $f16, $f12, $f10 +/* 0B3220 7F07E6F0 46008483 */ div.s $f18, $f16, $f0 +/* 0B3224 7F07E6F4 46121100 */ add.s $f4, $f2, $f18 +/* 0B3228 7F07E6F8 10000005 */ b .L7F07E710 +/* 0B322C 7F07E6FC E44411C4 */ swc1 $f4, 0x11c4($v0) +/* 0B3230 7F07E700 E44011BC */ swc1 $f0, 0x11bc($v0) +.L7F07E704: +/* 0B3234 7F07E704 8C820000 */ lw $v0, ($a0) +/* 0B3238 7F07E708 C44611CC */ lwc1 $f6, 0x11cc($v0) +/* 0B323C 7F07E70C E44611C4 */ swc1 $f6, 0x11c4($v0) +.L7F07E710: +/* 0B3240 7F07E710 8C980000 */ lw $t8, ($a0) +/* 0B3244 7F07E714 0FC26C85 */ jal set_cur_player_fovy +/* 0B3248 7F07E718 C70C11C4 */ lwc1 $f12, 0x11c4($t8) +/* 0B324C 7F07E71C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3250 7F07E720 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3254 7F07E724 8C990000 */ lw $t9, ($a0) +/* 0B3258 7F07E728 0C001151 */ jal setvideo_far +/* 0B325C 7F07E72C C72C11C4 */ lwc1 $f12, 0x11c4($t9) +/* 0B3260 7F07E730 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3264 7F07E734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B3268 7F07E738 03E00008 */ jr $ra +/* 0B326C 7F07E73C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E62C +/* 0B37C0 7F07EC50 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B37C4 7F07EC54 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B37C8 7F07EC58 8C820000 */ lw $v0, ($a0) +/* 0B37CC 7F07EC5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B37D0 7F07EC60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B37D4 7F07EC64 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B37D8 7F07EC68 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B37DC 7F07EC6C 4600603C */ c.lt.s $f12, $f0 +/* 0B37E0 7F07EC70 00000000 */ nop +/* 0B37E4 7F07EC74 45020026 */ bc1fl .Ljp7F07ED10 +/* 0B37E8 7F07EC78 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B37EC 7F07EC7C 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B37F0 7F07EC80 24010005 */ li $at, 5 +/* 0B37F4 7F07EC84 10610002 */ beq $v1, $at, .Ljp7F07EC90 +/* 0B37F8 7F07EC88 2401000C */ li $at, 12 +/* 0B37FC 7F07EC8C 14610005 */ bne $v1, $at, .Ljp7F07ECA4 +.Ljp7F07EC90: +/* 0B3800 7F07EC90 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0B3804 7F07EC94 C42484D0 */ lwc1 $f4, %lo(jpD_800484D0)($at) +/* 0B3808 7F07EC98 46046180 */ add.s $f6, $f12, $f4 +/* 0B380C 7F07EC9C 10000008 */ b .Ljp7F07ECC0 +/* 0B3810 7F07ECA0 E44611BC */ swc1 $f6, 0x11bc($v0) +.Ljp7F07ECA4: +/* 0B3814 7F07ECA4 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0B3818 7F07ECA8 C42884D0 */ lwc1 $f8, %lo(jpD_800484D0)($at) +/* 0B381C 7F07ECAC 3C018003 */ lui $at, %hi(watch_transition_time) # $at, 0x8003 +/* 0B3820 7F07ECB0 C42A65E8 */ lwc1 $f10, %lo(watch_transition_time)($at) +/* 0B3824 7F07ECB4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B3828 7F07ECB8 46106480 */ add.s $f18, $f12, $f16 +/* 0B382C 7F07ECBC E45211BC */ swc1 $f18, 0x11bc($v0) +.Ljp7F07ECC0: +/* 0B3830 7F07ECC0 8C820000 */ lw $v0, ($a0) +/* 0B3834 7F07ECC4 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3838 7F07ECC8 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B383C 7F07ECCC 460C003C */ c.lt.s $f0, $f12 +/* 0B3840 7F07ECD0 00000000 */ nop +/* 0B3844 7F07ECD4 45020006 */ bc1fl .Ljp7F07ECF0 +/* 0B3848 7F07ECD8 C44211C8 */ lwc1 $f2, 0x11c8($v0) +/* 0B384C 7F07ECDC E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3850 7F07ECE0 8C820000 */ lw $v0, ($a0) +/* 0B3854 7F07ECE4 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B3858 7F07ECE8 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B385C 7F07ECEC C44211C8 */ lwc1 $f2, 0x11c8($v0) +.Ljp7F07ECF0: +/* 0B3860 7F07ECF0 C44411CC */ lwc1 $f4, 0x11cc($v0) +/* 0B3864 7F07ECF4 46022181 */ sub.s $f6, $f4, $f2 +/* 0B3868 7F07ECF8 46066202 */ mul.s $f8, $f12, $f6 +/* 0B386C 7F07ECFC 46004283 */ div.s $f10, $f8, $f0 +/* 0B3870 7F07ED00 460A1400 */ add.s $f16, $f2, $f10 +/* 0B3874 7F07ED04 10000005 */ b .Ljp7F07ED1C +/* 0B3878 7F07ED08 E45011C4 */ swc1 $f16, 0x11c4($v0) +/* 0B387C 7F07ED0C E44011BC */ swc1 $f0, 0x11bc($v0) +.Ljp7F07ED10: +/* 0B3880 7F07ED10 8C820000 */ lw $v0, ($a0) +/* 0B3884 7F07ED14 C45211CC */ lwc1 $f18, 0x11cc($v0) +/* 0B3888 7F07ED18 E45211C4 */ swc1 $f18, 0x11c4($v0) +.Ljp7F07ED1C: +/* 0B388C 7F07ED1C 8C8E0000 */ lw $t6, ($a0) +/* 0B3890 7F07ED20 0FC26F6D */ jal set_cur_player_fovy +/* 0B3894 7F07ED24 C5CC11C4 */ lwc1 $f12, 0x11c4($t6) +/* 0B3898 7F07ED28 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B389C 7F07ED2C 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B38A0 7F07ED30 8C8F0000 */ lw $t7, ($a0) +/* 0B38A4 7F07ED34 0C001151 */ jal setvideo_far +/* 0B38A8 7F07ED38 C5EC11C4 */ lwc1 $f12, 0x11c4($t7) +/* 0B38AC 7F07ED3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B38B0 7F07ED40 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B38B4 7F07ED44 03E00008 */ jr $ra +/* 0B38B8 7F07ED48 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F07E740(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E740 +/* 0B3270 7F07E740 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B3274 7F07E744 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B3278 7F07E748 24010004 */ li $at, 4 +/* 0B327C 7F07E74C 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B3280 7F07E750 14610008 */ bne $v1, $at, .L7F07E774 +/* 0B3284 7F07E754 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B3288 7F07E758 44811000 */ mtc1 $at, $f2 +/* 0B328C 7F07E75C C44411C0 */ lwc1 $f4, 0x11c0($v0) +/* 0B3290 7F07E760 C44811BC */ lwc1 $f8, 0x11bc($v0) +/* 0B3294 7F07E764 46041181 */ sub.s $f6, $f2, $f4 +/* 0B3298 7F07E768 46083280 */ add.s $f10, $f6, $f8 +/* 0B329C 7F07E76C 03E00008 */ jr $ra +/* 0B32A0 7F07E770 46025003 */ div.s $f0, $f10, $f2 + +.L7F07E774: +/* 0B32A4 7F07E774 24010006 */ li $at, 6 +/* 0B32A8 7F07E778 54610009 */ bnel $v1, $at, .L7F07E7A0 +/* 0B32AC 7F07E77C 24010005 */ li $at, 5 +/* 0B32B0 7F07E780 C45011C0 */ lwc1 $f16, 0x11c0($v0) +/* 0B32B4 7F07E784 C45211BC */ lwc1 $f18, 0x11bc($v0) +/* 0B32B8 7F07E788 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B32BC 7F07E78C 44811000 */ mtc1 $at, $f2 +/* 0B32C0 7F07E790 46128101 */ sub.s $f4, $f16, $f18 +/* 0B32C4 7F07E794 03E00008 */ jr $ra +/* 0B32C8 7F07E798 46022003 */ div.s $f0, $f4, $f2 + +/* 0B32CC 7F07E79C 24010005 */ li $at, 5 +.L7F07E7A0: +/* 0B32D0 7F07E7A0 10610002 */ beq $v1, $at, .L7F07E7AC +/* 0B32D4 7F07E7A4 2401000C */ li $at, 12 +/* 0B32D8 7F07E7A8 14610004 */ bne $v1, $at, .L7F07E7BC +.L7F07E7AC: +/* 0B32DC 7F07E7AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B32E0 7F07E7B0 44810000 */ mtc1 $at, $f0 +/* 0B32E4 7F07E7B4 03E00008 */ jr $ra +/* 0B32E8 7F07E7B8 00000000 */ nop + +.L7F07E7BC: +/* 0B32EC 7F07E7BC 44800000 */ mtc1 $zero, $f0 +/* 0B32F0 7F07E7C0 00000000 */ nop +/* 0B32F4 7F07E7C4 03E00008 */ jr $ra +/* 0B32F8 7F07E7C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07E7CC(void) { + s32 sp24; + ? temp_ret; + + // Node 0 + temp_ret = get_ptr_itemheader_in_hand(1); + sp24 = temp_ret; + set_objuse_flag_compute_grp_nums_set_obj_loaded(temp_ret); + if (sp24->unk14 >= 0x33) + { + // Node 1 + return_null(); + } + // Node 2 + sub_GAME_7F075FAC((pPlayer + 0x230), sp24, (pPlayer + 0x2ec)); + set_obj_instance_controller_scale((pPlayer + 0x230), (c_item_entries+0x33C * D_80055088)); + pPlayer->step_in_view_watch_animation = 0; + return sub_GAME_7F06FCA8((pPlayer + 0x230), (ptr_animation_table + &0x000042C8), 0, 0.0f, (f32) (0.5f * watch_transition_time), 0.0f); +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055088 +.word 0x3dccccce /*0.10000001*/ +.text +glabel sub_GAME_7F07E7CC +/* 0B32FC 7F07E7CC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0B3300 7F07E7D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B3304 7F07E7D4 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0B3308 7F07E7D8 24040001 */ li $a0, 1 +/* 0B330C 7F07E7DC AFA20024 */ sw $v0, 0x24($sp) +/* 0B3310 7F07E7E0 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0B3314 7F07E7E4 00402025 */ move $a0, $v0 +/* 0B3318 7F07E7E8 8FAE0024 */ lw $t6, 0x24($sp) +/* 0B331C 7F07E7EC 85CF0014 */ lh $t7, 0x14($t6) +/* 0B3320 7F07E7F0 29E10033 */ slti $at, $t7, 0x33 +/* 0B3324 7F07E7F4 14200003 */ bnez $at, .L7F07E804 +/* 0B3328 7F07E7F8 00000000 */ nop +/* 0B332C 7F07E7FC 0FC1B11B */ jal return_null +/* 0B3330 7F07E800 00000000 */ nop +.L7F07E804: +/* 0B3334 7F07E804 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B3338 7F07E808 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B333C 7F07E80C 8FA50024 */ lw $a1, 0x24($sp) +/* 0B3340 7F07E810 24440230 */ addiu $a0, $v0, 0x230 +/* 0B3344 7F07E814 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0B3348 7F07E818 244602EC */ addiu $a2, $v0, 0x2ec +/* 0B334C 7F07E81C 3C018004 */ lui $at, %hi(c_item_entries+0x33C) +/* 0B3350 7F07E820 C424E14C */ lwc1 $f4, %lo(c_item_entries+0x33C)($at) +/* 0B3354 7F07E824 3C018005 */ lui $at, %hi(D_80055088) +/* 0B3358 7F07E828 C4265088 */ lwc1 $f6, %lo(D_80055088)($at) +/* 0B335C 7F07E82C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3360 7F07E830 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B3364 7F07E834 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3368 7F07E838 24840230 */ addiu $a0, $a0, 0x230 +/* 0B336C 7F07E83C 44054000 */ mfc1 $a1, $f8 +/* 0B3370 7F07E840 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0B3374 7F07E844 00000000 */ nop +/* 0B3378 7F07E848 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B337C 7F07E84C 44815000 */ mtc1 $at, $f10 +/* 0B3380 7F07E850 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B3384 7F07E854 C43065A8 */ lwc1 $f16, %lo(watch_transition_time)($at) +/* 0B3388 7F07E858 44800000 */ mtc1 $zero, $f0 +/* 0B338C 7F07E85C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3390 7F07E860 46105482 */ mul.s $f18, $f10, $f16 +/* 0B3394 7F07E864 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0B3398 7F07E868 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0B339C 7F07E86C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B33A0 7F07E870 3C190000 */ lui $t9, %hi(0x000042C8) # $t9, 0 +/* 0B33A4 7F07E874 273942C8 */ addiu $t9, %lo(0x000042C8) # addiu $t9, $t9, 0x42c8 +/* 0B33A8 7F07E878 44070000 */ mfc1 $a3, $f0 +/* 0B33AC 7F07E87C E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B33B0 7F07E880 00003025 */ move $a2, $zero +/* 0B33B4 7F07E884 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0B33B8 7F07E888 03192821 */ addu $a1, $t8, $t9 +/* 0B33BC 7F07E88C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0B33C0 7F07E890 24840230 */ addiu $a0, $a0, 0x230 +/* 0B33C4 7F07E894 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B33C8 7F07E898 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B33CC 7F07E89C AD000220 */ sw $zero, 0x220($t0) +/* 0B33D0 7F07E8A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B33D4 7F07E8A4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0B33D8 7F07E8A8 03E00008 */ jr $ra +/* 0B33DC 7F07E8AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E8B0(f32 arg0) { + // Node 0 + if (pPlayer->step_in_view_watch_animation == 0) + { + // Node 1 + pPlayer->field_22C = (f32) (20.0f / arg0); + } + else + { + // Node 2 + pPlayer->field_22C = (f32) ((20.0f - pPlayer->field_258) / arg0); + } + // Node 3 + pPlayer->step_in_view_watch_animation = 1; + pPlayer->field_228 = arg0; + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E8B0 +/* 0B33E0 7F07E8B0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B33E4 7F07E8B4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B33E8 7F07E8B8 8C620000 */ lw $v0, ($v1) +/* 0B33EC 7F07E8BC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B33F0 7F07E8C0 8C4E0220 */ lw $t6, 0x220($v0) +/* 0B33F4 7F07E8C4 55C00008 */ bnezl $t6, .L7F07E8E8 +/* 0B33F8 7F07E8C8 44814000 */ mtc1 $at, $f8 +/* 0B33FC 7F07E8CC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3400 7F07E8D0 44812000 */ mtc1 $at, $f4 +/* 0B3404 7F07E8D4 00000000 */ nop +/* 0B3408 7F07E8D8 460C2183 */ div.s $f6, $f4, $f12 +/* 0B340C 7F07E8DC 10000006 */ b .L7F07E8F8 +/* 0B3410 7F07E8E0 E446022C */ swc1 $f6, 0x22c($v0) +/* 0B3414 7F07E8E4 44814000 */ mtc1 $at, $f8 +.L7F07E8E8: +/* 0B3418 7F07E8E8 C44A0258 */ lwc1 $f10, 0x258($v0) +/* 0B341C 7F07E8EC 460A4401 */ sub.s $f16, $f8, $f10 +/* 0B3420 7F07E8F0 460C8483 */ div.s $f18, $f16, $f12 +/* 0B3424 7F07E8F4 E452022C */ swc1 $f18, 0x22c($v0) +.L7F07E8F8: +/* 0B3428 7F07E8F8 8C780000 */ lw $t8, ($v1) +/* 0B342C 7F07E8FC 240F0001 */ li $t7, 1 +/* 0B3430 7F07E900 AF0F0220 */ sw $t7, 0x220($t8) +/* 0B3434 7F07E904 8C790000 */ lw $t9, ($v1) +/* 0B3438 7F07E908 03E00008 */ jr $ra +/* 0B343C 7F07E90C E72C0228 */ swc1 $f12, 0x228($t9) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E910(f32 arg0) { + // Node 0 + if (pPlayer->step_in_view_watch_animation == 20.0f) + { + // Node 1 + pPlayer->field_22C = (f32) (20.0f / arg0); + } + else + { + // Node 2 + pPlayer->field_22C = (f32) (pPlayer->field_258 / arg0); + } + // Node 3 + pPlayer->step_in_view_watch_animation = 2; + pPlayer->field_228 = arg0; + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E910 +/* 0B3440 7F07E910 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3444 7F07E914 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B3448 7F07E918 8C620000 */ lw $v0, ($v1) +/* 0B344C 7F07E91C 24010003 */ li $at, 3 +/* 0B3450 7F07E920 8C4E0220 */ lw $t6, 0x220($v0) +/* 0B3454 7F07E924 15C10006 */ bne $t6, $at, .L7F07E940 +/* 0B3458 7F07E928 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B345C 7F07E92C 44812000 */ mtc1 $at, $f4 +/* 0B3460 7F07E930 00000000 */ nop +/* 0B3464 7F07E934 460C2183 */ div.s $f6, $f4, $f12 +/* 0B3468 7F07E938 10000004 */ b .L7F07E94C +/* 0B346C 7F07E93C E446022C */ swc1 $f6, 0x22c($v0) +.L7F07E940: +/* 0B3470 7F07E940 C4480258 */ lwc1 $f8, 0x258($v0) +/* 0B3474 7F07E944 460C4283 */ div.s $f10, $f8, $f12 +/* 0B3478 7F07E948 E44A022C */ swc1 $f10, 0x22c($v0) +.L7F07E94C: +/* 0B347C 7F07E94C 8C780000 */ lw $t8, ($v1) +/* 0B3480 7F07E950 240F0002 */ li $t7, 2 +/* 0B3484 7F07E954 AF0F0220 */ sw $t7, 0x220($t8) +/* 0B3488 7F07E958 8C790000 */ lw $t9, ($v1) +/* 0B348C 7F07E95C 03E00008 */ jr $ra +/* 0B3490 7F07E960 E72C0228 */ swc1 $f12, 0x228($t9) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E964(void) { + void *phi_return; + + // Node 0 + phi_return = pPlayer; + if (pPlayer->step_in_view_watch_animation != 0) + { + // Node 1 + phi_return = pPlayer; + if (3 != pPlayer->step_in_view_watch_animation) + { + // Node 2 + if (pPlayer->step_in_view_watch_animation == 20.0f) + { + // Node 3 + pPlayer->pause_animation_counter = (f32) (pPlayer->pause_animation_counter + ((global_timer_delta * watch_transition_time) * pPlayer->field_22C)); + if (20.0f < pPlayer->pause_animation_counter) + { + // Node 4 + pPlayer->pause_animation_counter = 20.0f; + pPlayer->step_in_view_watch_animation = 3; + } + } + else + { + // Node 5 + if (pPlayer->step_in_view_watch_animation == &global_timer_delta) + { + // Node 6 + pPlayer->pause_animation_counter = (f32) (pPlayer->pause_animation_counter - ((global_timer_delta * watch_transition_time) * pPlayer->field_22C)); + if (pPlayer->pause_animation_counter < 0.0f) + { + // Node 7 + pPlayer->pause_animation_counter = 0.0f; + pPlayer->step_in_view_watch_animation = 0; + } + } + } + // Node 8 + phi_return = sub_GAME_7F070090((pPlayer + 0x230), pPlayer->pause_animation_counter, 0); + } + } + // Node 9 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E964 +/* 0B3494 7F07E964 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3498 7F07E968 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B349C 7F07E96C 8C820000 */ lw $v0, ($a0) +/* 0B34A0 7F07E970 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B34A4 7F07E974 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B34A8 7F07E978 8C430220 */ lw $v1, 0x220($v0) +/* 0B34AC 7F07E97C 24050003 */ li $a1, 3 +/* 0B34B0 7F07E980 5060003A */ beql $v1, $zero, .L7F07EA6C +/* 0B34B4 7F07E984 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B34B8 7F07E988 10A30037 */ beq $a1, $v1, .L7F07EA68 +/* 0B34BC 7F07E98C 24010001 */ li $at, 1 +/* 0B34C0 7F07E990 14610018 */ bne $v1, $at, .L7F07E9F4 +/* 0B34C4 7F07E994 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B34C8 7F07E998 44810000 */ mtc1 $at, $f0 +/* 0B34CC 7F07E99C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B34D0 7F07E9A0 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B34D4 7F07E9A4 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B34D8 7F07E9A8 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B34DC 7F07E9AC C44A022C */ lwc1 $f10, 0x22c($v0) +/* 0B34E0 7F07E9B0 C4520224 */ lwc1 $f18, 0x224($v0) +/* 0B34E4 7F07E9B4 46062202 */ mul.s $f8, $f4, $f6 +/* 0B34E8 7F07E9B8 00000000 */ nop +/* 0B34EC 7F07E9BC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B34F0 7F07E9C0 46109100 */ add.s $f4, $f18, $f16 +/* 0B34F4 7F07E9C4 E4440224 */ swc1 $f4, 0x224($v0) +/* 0B34F8 7F07E9C8 8C820000 */ lw $v0, ($a0) +/* 0B34FC 7F07E9CC C4460224 */ lwc1 $f6, 0x224($v0) +/* 0B3500 7F07E9D0 4606003C */ c.lt.s $f0, $f6 +/* 0B3504 7F07E9D4 00000000 */ nop +/* 0B3508 7F07E9D8 4500001D */ bc1f .L7F07EA50 +/* 0B350C 7F07E9DC 00000000 */ nop +/* 0B3510 7F07E9E0 E4400224 */ swc1 $f0, 0x224($v0) +/* 0B3514 7F07E9E4 8C8E0000 */ lw $t6, ($a0) +/* 0B3518 7F07E9E8 ADC50220 */ sw $a1, 0x220($t6) +/* 0B351C 7F07E9EC 10000018 */ b .L7F07EA50 +/* 0B3520 7F07E9F0 8C820000 */ lw $v0, ($a0) +.L7F07E9F4: +/* 0B3524 7F07E9F4 24010002 */ li $at, 2 +/* 0B3528 7F07E9F8 14610015 */ bne $v1, $at, .L7F07EA50 +/* 0B352C 7F07E9FC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B3530 7F07EA00 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B3534 7F07EA04 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B3538 7F07EA08 C42A65A8 */ lwc1 $f10, %lo(watch_transition_time)($at) +/* 0B353C 7F07EA0C C450022C */ lwc1 $f16, 0x22c($v0) +/* 0B3540 7F07EA10 C4460224 */ lwc1 $f6, 0x224($v0) +/* 0B3544 7F07EA14 460A4482 */ mul.s $f18, $f8, $f10 +/* 0B3548 7F07EA18 44800000 */ mtc1 $zero, $f0 +/* 0B354C 7F07EA1C 46109102 */ mul.s $f4, $f18, $f16 +/* 0B3550 7F07EA20 46043201 */ sub.s $f8, $f6, $f4 +/* 0B3554 7F07EA24 E4480224 */ swc1 $f8, 0x224($v0) +/* 0B3558 7F07EA28 8C820000 */ lw $v0, ($a0) +/* 0B355C 7F07EA2C C44A0224 */ lwc1 $f10, 0x224($v0) +/* 0B3560 7F07EA30 4600503C */ c.lt.s $f10, $f0 +/* 0B3564 7F07EA34 00000000 */ nop +/* 0B3568 7F07EA38 45020006 */ bc1fl .L7F07EA54 +/* 0B356C 7F07EA3C 44800000 */ mtc1 $zero, $f0 +/* 0B3570 7F07EA40 E4400224 */ swc1 $f0, 0x224($v0) +/* 0B3574 7F07EA44 8C8F0000 */ lw $t7, ($a0) +/* 0B3578 7F07EA48 ADE00220 */ sw $zero, 0x220($t7) +/* 0B357C 7F07EA4C 8C820000 */ lw $v0, ($a0) +.L7F07EA50: +/* 0B3580 7F07EA50 44800000 */ mtc1 $zero, $f0 +.L7F07EA54: +/* 0B3584 7F07EA54 24440230 */ addiu $a0, $v0, 0x230 +/* 0B3588 7F07EA58 8C450224 */ lw $a1, 0x224($v0) +/* 0B358C 7F07EA5C 44060000 */ mfc1 $a2, $f0 +/* 0B3590 7F07EA60 0FC1C024 */ jal sub_GAME_7F070090 +/* 0B3594 7F07EA64 00000000 */ nop +.L7F07EA68: +/* 0B3598 7F07EA68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07EA6C: +/* 0B359C 7F07EA6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B35A0 7F07EA70 03E00008 */ jr $ra +/* 0B35A4 7F07EA74 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EA78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EA78 +/* 0B35A8 7F07EA78 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B35AC 7F07EA7C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B35B0 7F07EA80 24010001 */ li $at, 1 +/* 0B35B4 7F07EA84 8C430220 */ lw $v1, 0x220($v0) +/* 0B35B8 7F07EA88 10610002 */ beq $v1, $at, .L7F07EA94 +/* 0B35BC 7F07EA8C 24010002 */ li $at, 2 +/* 0B35C0 7F07EA90 14610005 */ bne $v1, $at, .L7F07EAA8 +.L7F07EA94: +/* 0B35C4 7F07EA94 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B35C8 7F07EA98 44813000 */ mtc1 $at, $f6 +/* 0B35CC 7F07EA9C C4440224 */ lwc1 $f4, 0x224($v0) +/* 0B35D0 7F07EAA0 03E00008 */ jr $ra +/* 0B35D4 7F07EAA4 46062003 */ div.s $f0, $f4, $f6 + +.L7F07EAA8: +/* 0B35D8 7F07EAA8 24010003 */ li $at, 3 +/* 0B35DC 7F07EAAC 14610004 */ bne $v1, $at, .L7F07EAC0 +/* 0B35E0 7F07EAB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B35E4 7F07EAB4 44810000 */ mtc1 $at, $f0 +/* 0B35E8 7F07EAB8 03E00008 */ jr $ra +/* 0B35EC 7F07EABC 00000000 */ nop + +.L7F07EAC0: +/* 0B35F0 7F07EAC0 44800000 */ mtc1 $zero, $f0 +/* 0B35F4 7F07EAC4 00000000 */ nop +/* 0B35F8 7F07EAC8 03E00008 */ jr $ra +/* 0B35FC 7F07EACC 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_paused_flag(s32 arg0) { + pPlayer->paused_flag = arg0; +} + +s32 get_BONDdata_paused_flag(void) { + return pPlayer->paused_flag; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EAF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EAF0 +/* 0B3620 7F07EAF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B3624 7F07EAF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B3628 7F07EAF8 AFB10018 */ sw $s1, 0x18($sp) +/* 0B362C 7F07EAFC 0FC1577B */ jal deactivate_alarm_sound_effect +/* 0B3630 7F07EB00 AFB00014 */ sw $s0, 0x14($sp) +/* 0B3634 7F07EB04 0FC157BE */ jal check_deactivate_gas_sound +/* 0B3638 7F07EB08 00000000 */ nop +/* 0B363C 7F07EB0C 00008825 */ move $s1, $zero +.L7F07EB10: +/* 0B3640 7F07EB10 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3644 7F07EB14 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3648 7F07EB18 01D18021 */ addu $s0, $t6, $s1 +/* 0B364C 7F07EB1C 8E040A44 */ lw $a0, 0xa44($s0) +/* 0B3650 7F07EB20 26100870 */ addiu $s0, $s0, 0x870 +/* 0B3654 7F07EB24 50800008 */ beql $a0, $zero, .L7F07EB48 +/* 0B3658 7F07EB28 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 0B365C 7F07EB2C 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3660 7F07EB30 00000000 */ nop +/* 0B3664 7F07EB34 50400004 */ beql $v0, $zero, .L7F07EB48 +/* 0B3668 7F07EB38 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 0B366C 7F07EB3C 0C002408 */ jal sfxDeactivate +/* 0B3670 7F07EB40 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 0B3674 7F07EB44 263103A8 */ addiu $s1, $s1, 0x3a8 +.L7F07EB48: +/* 0B3678 7F07EB48 2A210750 */ slti $at, $s1, 0x750 +/* 0B367C 7F07EB4C 1420FFF0 */ bnez $at, .L7F07EB10 +/* 0B3680 7F07EB50 00000000 */ nop +/* 0B3684 7F07EB54 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0B3688 7F07EB58 3C118003 */ lui $s1, %hi(D_80036460) +/* 0B368C 7F07EB5C 26316460 */ addiu $s1, %lo(D_80036460) # addiu $s1, $s1, 0x6460 +/* 0B3690 7F07EB60 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0B3694 7F07EB64 8E040000 */ lw $a0, ($s0) +.L7F07EB68: +/* 0B3698 7F07EB68 50800008 */ beql $a0, $zero, .L7F07EB8C +/* 0B369C 7F07EB6C 26100004 */ addiu $s0, $s0, 4 +/* 0B36A0 7F07EB70 0C00237C */ jal sfxGetArg0Unk3F +/* 0B36A4 7F07EB74 00000000 */ nop +/* 0B36A8 7F07EB78 50400004 */ beql $v0, $zero, .L7F07EB8C +/* 0B36AC 7F07EB7C 26100004 */ addiu $s0, $s0, 4 +/* 0B36B0 7F07EB80 0C002408 */ jal sfxDeactivate +/* 0B36B4 7F07EB84 8E040000 */ lw $a0, ($s0) +/* 0B36B8 7F07EB88 26100004 */ addiu $s0, $s0, 4 +.L7F07EB8C: +/* 0B36BC 7F07EB8C 5611FFF6 */ bnel $s0, $s1, .L7F07EB68 +/* 0B36C0 7F07EB90 8E040000 */ lw $a0, ($s0) +/* 0B36C4 7F07EB94 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 0B36C8 7F07EB98 00000000 */ nop +/* 0B36CC 7F07EB9C 10400028 */ beqz $v0, .L7F07EC40 +/* 0B36D0 7F07EBA0 00408825 */ move $s1, $v0 +/* 0B36D4 7F07EBA4 92220000 */ lbu $v0, ($s1) +.L7F07EBA8: +/* 0B36D8 7F07EBA8 24010002 */ li $at, 2 +/* 0B36DC 7F07EBAC 10410021 */ beq $v0, $at, .L7F07EC34 +/* 0B36E0 7F07EBB0 24010001 */ li $at, 1 +/* 0B36E4 7F07EBB4 54410020 */ bnel $v0, $at, .L7F07EC38 +/* 0B36E8 7F07EBB8 8E310024 */ lw $s1, 0x24($s1) +/* 0B36EC 7F07EBBC 8E230004 */ lw $v1, 4($s1) +/* 0B36F0 7F07EBC0 24010027 */ li $at, 39 +/* 0B36F4 7F07EBC4 90640003 */ lbu $a0, 3($v1) +/* 0B36F8 7F07EBC8 5481000E */ bnel $a0, $at, .L7F07EC04 +/* 0B36FC 7F07EBCC 24010028 */ li $at, 40 +/* 0B3700 7F07EBD0 8C6400AC */ lw $a0, 0xac($v1) +/* 0B3704 7F07EBD4 00608025 */ move $s0, $v1 +/* 0B3708 7F07EBD8 50800017 */ beql $a0, $zero, .L7F07EC38 +/* 0B370C 7F07EBDC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3710 7F07EBE0 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3714 7F07EBE4 00000000 */ nop +/* 0B3718 7F07EBE8 50400013 */ beql $v0, $zero, .L7F07EC38 +/* 0B371C 7F07EBEC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3720 7F07EBF0 0C002408 */ jal sfxDeactivate +/* 0B3724 7F07EBF4 8E0400AC */ lw $a0, 0xac($s0) +/* 0B3728 7F07EBF8 1000000F */ b .L7F07EC38 +/* 0B372C 7F07EBFC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3730 7F07EC00 24010028 */ li $at, 40 +.L7F07EC04: +/* 0B3734 7F07EC04 5481000C */ bnel $a0, $at, .L7F07EC38 +/* 0B3738 7F07EC08 8E310024 */ lw $s1, 0x24($s1) +/* 0B373C 7F07EC0C 8C6400B0 */ lw $a0, 0xb0($v1) +/* 0B3740 7F07EC10 00608025 */ move $s0, $v1 +/* 0B3744 7F07EC14 50800008 */ beql $a0, $zero, .L7F07EC38 +/* 0B3748 7F07EC18 8E310024 */ lw $s1, 0x24($s1) +/* 0B374C 7F07EC1C 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3750 7F07EC20 00000000 */ nop +/* 0B3754 7F07EC24 50400004 */ beql $v0, $zero, .L7F07EC38 +/* 0B3758 7F07EC28 8E310024 */ lw $s1, 0x24($s1) +/* 0B375C 7F07EC2C 0C002408 */ jal sfxDeactivate +/* 0B3760 7F07EC30 8E0400B0 */ lw $a0, 0xb0($s0) +.L7F07EC34: +/* 0B3764 7F07EC34 8E310024 */ lw $s1, 0x24($s1) +.L7F07EC38: +/* 0B3768 7F07EC38 5620FFDB */ bnezl $s1, .L7F07EBA8 +/* 0B376C 7F07EC3C 92220000 */ lbu $v0, ($s1) +.L7F07EC40: +/* 0B3770 7F07EC40 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B3774 7F07EC44 8FB00014 */ lw $s0, 0x14($sp) +/* 0B3778 7F07EC48 8FB10018 */ lw $s1, 0x18($sp) +/* 0B377C 7F07EC4C 03E00008 */ jr $ra +/* 0B3780 7F07EC50 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EC54(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EC54 +/* 0B3784 7F07EC54 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3788 7F07EC58 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B378C 7F07EC5C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B3790 7F07EC60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3794 7F07EC64 8DC201C8 */ lw $v0, 0x1c8($t6) +/* 0B3798 7F07EC68 504002E8 */ beql $v0, $zero, .L7F07F80C +/* 0B379C 7F07EC6C 24010005 */ li $at, 5 +/* 0B37A0 7F07EC70 0FC17674 */ jal get_item_in_hand +/* 0B37A4 7F07EC74 00002025 */ move $a0, $zero +/* 0B37A8 7F07EC78 3843001E */ xori $v1, $v0, 0x1e +/* 0B37AC 7F07EC7C 2C630001 */ sltiu $v1, $v1, 1 +/* 0B37B0 7F07EC80 14600006 */ bnez $v1, .L7F07EC9C +/* 0B37B4 7F07EC84 AFA3001C */ sw $v1, 0x1c($sp) +/* 0B37B8 7F07EC88 0FC17674 */ jal get_item_in_hand +/* 0B37BC 7F07EC8C 00002025 */ move $a0, $zero +/* 0B37C0 7F07EC90 384F0017 */ xori $t7, $v0, 0x17 +/* 0B37C4 7F07EC94 2DEF0001 */ sltiu $t7, $t7, 1 +/* 0B37C8 7F07EC98 AFAF001C */ sw $t7, 0x1c($sp) +.L7F07EC9C: +/* 0B37CC 7F07EC9C 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B37D0 7F07ECA0 24050011 */ li $a1, 17 +/* 0B37D4 7F07ECA4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B37D8 7F07ECA8 13000002 */ beqz $t8, .L7F07ECB4 +/* 0B37DC 7F07ECAC AFB8003C */ sw $t8, 0x3c($sp) +/* 0B37E0 7F07ECB0 24050023 */ li $a1, 35 +.L7F07ECB4: +/* 0B37E4 7F07ECB4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B37E8 7F07ECB8 3C088005 */ lui $t0, %hi(clock_timer) +/* 0B37EC 7F07ECBC 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 0B37F0 7F07ECC0 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B37F4 7F07ECC4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B37F8 7F07ECC8 24010001 */ li $at, 1 +/* 0B37FC 7F07ECCC 03284821 */ addu $t1, $t9, $t0 +/* 0B3800 7F07ECD0 AC6901C4 */ sw $t1, 0x1c4($v1) +/* 0B3804 7F07ECD4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3808 7F07ECD8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B380C 7F07ECDC 8C6A01C0 */ lw $t2, 0x1c0($v1) +/* 0B3810 7F07ECE0 254B0001 */ addiu $t3, $t2, 1 +/* 0B3814 7F07ECE4 AC6B01C0 */ sw $t3, 0x1c0($v1) +/* 0B3818 7F07ECE8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B381C 7F07ECEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3820 7F07ECF0 AD800200 */ sw $zero, 0x200($t4) +/* 0B3824 7F07ECF4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3828 7F07ECF8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B382C 7F07ECFC 15A1003A */ bne $t5, $at, .L7F07EDE8 +/* 0B3830 7F07ED00 00000000 */ nop +/* 0B3834 7F07ED04 AC600200 */ sw $zero, 0x200($v1) +/* 0B3838 7F07ED08 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B383C 7F07ED0C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3840 7F07ED10 24010001 */ li $at, 1 +/* 0B3844 7F07ED14 24040001 */ li $a0, 1 +/* 0B3848 7F07ED18 8DC201C0 */ lw $v0, 0x1c0($t6) +/* 0B384C 7F07ED1C 54410006 */ bnel $v0, $at, .L7F07ED38 +/* 0B3850 7F07ED20 24010002 */ li $at, 2 +/* 0B3854 7F07ED24 0FC17680 */ jal draw_item_in_hand +/* 0B3858 7F07ED28 24050054 */ li $a1, 84 +/* 0B385C 7F07ED2C 1000002E */ b .L7F07EDE8 +/* 0B3860 7F07ED30 00000000 */ nop +/* 0B3864 7F07ED34 24010002 */ li $at, 2 +.L7F07ED38: +/* 0B3868 7F07ED38 14410009 */ bne $v0, $at, .L7F07ED60 +/* 0B386C 7F07ED3C 24040001 */ li $a0, 1 +/* 0B3870 7F07ED40 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3874 7F07ED44 00002025 */ move $a0, $zero +/* 0B3878 7F07ED48 11E00027 */ beqz $t7, .L7F07EDE8 +/* 0B387C 7F07ED4C 00000000 */ nop +/* 0B3880 7F07ED50 0FC17680 */ jal draw_item_in_hand +/* 0B3884 7F07ED54 00002825 */ move $a1, $zero +/* 0B3888 7F07ED58 10000023 */ b .L7F07EDE8 +/* 0B388C 7F07ED5C 00000000 */ nop +.L7F07ED60: +/* 0B3890 7F07ED60 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3894 7F07ED64 AFA50038 */ sw $a1, 0x38($sp) +/* 0B3898 7F07ED68 24010054 */ li $at, 84 +/* 0B389C 7F07ED6C 1441001E */ bne $v0, $at, .L7F07EDE8 +/* 0B38A0 7F07ED70 00000000 */ nop +/* 0B38A4 7F07ED74 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38A8 7F07ED78 24040001 */ li $a0, 1 +/* 0B38AC 7F07ED7C 1040001A */ beqz $v0, .L7F07EDE8 +/* 0B38B0 7F07ED80 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B38B4 7F07ED84 13000008 */ beqz $t8, .L7F07EDA8 +/* 0B38B8 7F07ED88 00000000 */ nop +/* 0B38BC 7F07ED8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B38C0 7F07ED90 00002025 */ move $a0, $zero +/* 0B38C4 7F07ED94 14400014 */ bnez $v0, .L7F07EDE8 +/* 0B38C8 7F07ED98 00000000 */ nop +/* 0B38CC 7F07ED9C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38D0 7F07EDA0 00002025 */ move $a0, $zero +/* 0B38D4 7F07EDA4 10400010 */ beqz $v0, .L7F07EDE8 +.L7F07EDA8: +/* 0B38D8 7F07EDA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B38DC 7F07EDAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B38E0 7F07EDB0 8FA80038 */ lw $t0, 0x38($sp) +/* 0B38E4 7F07EDB4 24090002 */ li $t1, 2 +/* 0B38E8 7F07EDB8 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B38EC 7F07EDBC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B38F0 7F07EDC0 0328082A */ slt $at, $t9, $t0 +/* 0B38F4 7F07EDC4 14200008 */ bnez $at, .L7F07EDE8 +/* 0B38F8 7F07EDC8 00000000 */ nop +/* 0B38FC 7F07EDCC AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3900 7F07EDD0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3904 7F07EDD4 240A0001 */ li $t2, 1 +/* 0B3908 7F07EDD8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B390C 7F07EDDC AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3910 7F07EDE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3914 7F07EDE4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07EDE8: +/* 0B3918 7F07EDE8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B391C 7F07EDEC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3920 7F07EDF0 24010002 */ li $at, 2 +/* 0B3924 7F07EDF4 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B3928 7F07EDF8 55A10043 */ bnel $t5, $at, .L7F07EF08 +/* 0B392C 7F07EDFC 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3930 7F07EE00 AC600200 */ sw $zero, 0x200($v1) +/* 0B3934 7F07EE04 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3938 7F07EE08 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B393C 7F07EE0C 24010001 */ li $at, 1 +/* 0B3940 7F07EE10 24040008 */ li $a0, 8 +/* 0B3944 7F07EE14 8C6E01C0 */ lw $t6, 0x1c0($v1) +/* 0B3948 7F07EE18 55C10026 */ bnel $t6, $at, .L7F07EEB4 +/* 0B394C 7F07EE1C C4640214 */ lwc1 $f4, 0x214($v1) +/* 0B3950 7F07EE20 0FC1A96A */ jal set_unset_bitflags +/* 0B3954 7F07EE24 00002825 */ move $a1, $zero +/* 0B3958 7F07EE28 24040004 */ li $a0, 4 +/* 0B395C 7F07EE2C 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B3960 7F07EE30 00002825 */ move $a1, $zero +/* 0B3964 7F07EE34 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B3968 7F07EE38 24040001 */ li $a0, 1 +/* 0B396C 7F07EE3C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B3970 7F07EE40 24040001 */ li $a0, 1 +/* 0B3974 7F07EE44 24040004 */ li $a0, 4 +/* 0B3978 7F07EE48 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B397C 7F07EE4C 00002825 */ move $a1, $zero +/* 0B3980 7F07EE50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3984 7F07EE54 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3988 7F07EE58 24010002 */ li $at, 2 +/* 0B398C 7F07EE5C 8C640218 */ lw $a0, 0x218($v1) +/* 0B3990 7F07EE60 10800005 */ beqz $a0, .L7F07EE78 +/* 0B3994 7F07EE64 00000000 */ nop +/* 0B3998 7F07EE68 10810003 */ beq $a0, $at, .L7F07EE78 +/* 0B399C 7F07EE6C 24010003 */ li $at, 3 +/* 0B39A0 7F07EE70 54810010 */ bnel $a0, $at, .L7F07EEB4 +/* 0B39A4 7F07EE74 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EE78: +/* 0B39A8 7F07EE78 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B39AC 7F07EE7C 24040001 */ li $a0, 1 +/* 0B39B0 7F07EE80 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39B4 7F07EE84 44811000 */ mtc1 $at, $f2 +/* 0B39B8 7F07EE88 46000306 */ mov.s $f12, $f0 +/* 0B39BC 7F07EE8C 4602003C */ c.lt.s $f0, $f2 +/* 0B39C0 7F07EE90 00000000 */ nop +/* 0B39C4 7F07EE94 45000002 */ bc1f .L7F07EEA0 +/* 0B39C8 7F07EE98 00000000 */ nop +/* 0B39CC 7F07EE9C 46001306 */ mov.s $f12, $f2 +.L7F07EEA0: +/* 0B39D0 7F07EEA0 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B39D4 7F07EEA4 00000000 */ nop +/* 0B39D8 7F07EEA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B39DC 7F07EEAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B39E0 7F07EEB0 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EEB4: +/* 0B39E4 7F07EEB4 C4660210 */ lwc1 $f6, 0x210($v1) +/* 0B39E8 7F07EEB8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39EC 7F07EEBC 44815000 */ mtc1 $at, $f10 +/* 0B39F0 7F07EEC0 46062201 */ sub.s $f8, $f4, $f6 +/* 0B39F4 7F07EEC4 240F0003 */ li $t7, 3 +/* 0B39F8 7F07EEC8 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B39FC 7F07EECC 460A403C */ c.lt.s $f8, $f10 +/* 0B3A00 7F07EED0 00000000 */ nop +/* 0B3A04 7F07EED4 4502000C */ bc1fl .L7F07EF08 +/* 0B3A08 7F07EED8 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3A0C 7F07EEDC AC6F01C8 */ sw $t7, 0x1c8($v1) +/* 0B3A10 7F07EEE0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3A14 7F07EEE4 24180001 */ li $t8, 1 +/* 0B3A18 7F07EEE8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3A1C 7F07EEEC AF3801C0 */ sw $t8, 0x1c0($t9) +/* 0B3A20 7F07EEF0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3A24 7F07EEF4 0FC1F9F3 */ jal sub_GAME_7F07E7CC +/* 0B3A28 7F07EEF8 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B3A2C 7F07EEFC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3A30 7F07EF00 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3A34 7F07EF04 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07EF08: +/* 0B3A38 7F07EF08 24010003 */ li $at, 3 +/* 0B3A3C 7F07EF0C 54410059 */ bnel $v0, $at, .L7F07F074 +/* 0B3A40 7F07EF10 24010004 */ li $at, 4 +/* 0B3A44 7F07EF14 8C6901C0 */ lw $t1, 0x1c0($v1) +/* 0B3A48 7F07EF18 24010001 */ li $at, 1 +/* 0B3A4C 7F07EF1C 55210036 */ bnel $t1, $at, .L7F07EFF8 +/* 0B3A50 7F07EF20 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A54 7F07EF24 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A58 7F07EF28 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A5C 7F07EF2C 44817000 */ mtc1 $at, $f14 +/* 0B3A60 7F07EF30 1040000D */ beqz $v0, .L7F07EF68 +/* 0B3A64 7F07EF34 8C640218 */ lw $a0, 0x218($v1) +/* 0B3A68 7F07EF38 24010003 */ li $at, 3 +/* 0B3A6C 7F07EF3C 1041000A */ beq $v0, $at, .L7F07EF68 +/* 0B3A70 7F07EF40 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A74 7F07EF44 44818000 */ mtc1 $at, $f16 +/* 0B3A78 7F07EF48 C4720258 */ lwc1 $f18, 0x258($v1) +/* 0B3A7C 7F07EF4C 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A80 7F07EF50 44813000 */ mtc1 $at, $f6 +/* 0B3A84 7F07EF54 46128101 */ sub.s $f4, $f16, $f18 +/* 0B3A88 7F07EF58 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A8C 7F07EF5C 44815000 */ mtc1 $at, $f10 +/* 0B3A90 7F07EF60 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3A94 7F07EF64 460A4383 */ div.s $f14, $f8, $f10 +.L7F07EF68: +/* 0B3A98 7F07EF68 10800004 */ beqz $a0, .L7F07EF7C +/* 0B3A9C 7F07EF6C 24010002 */ li $at, 2 +/* 0B3AA0 7F07EF70 10810002 */ beq $a0, $at, .L7F07EF7C +/* 0B3AA4 7F07EF74 24010003 */ li $at, 3 +/* 0B3AA8 7F07EF78 1481001A */ bne $a0, $at, .L7F07EFE4 +.L7F07EF7C: +/* 0B3AAC 7F07EF7C 24040001 */ li $a0, 1 +/* 0B3AB0 7F07EF80 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3AB4 7F07EF84 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AB8 7F07EF88 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3ABC 7F07EF8C C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AC0 7F07EF90 44818000 */ mtc1 $at, $f16 +/* 0B3AC4 7F07EF94 46000306 */ mov.s $f12, $f0 +/* 0B3AC8 7F07EF98 46107081 */ sub.s $f2, $f14, $f16 +/* 0B3ACC 7F07EF9C 4602003C */ c.lt.s $f0, $f2 +/* 0B3AD0 7F07EFA0 00000000 */ nop +/* 0B3AD4 7F07EFA4 45020003 */ bc1fl .L7F07EFB4 +/* 0B3AD8 7F07EFA8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0B3ADC 7F07EFAC 46001306 */ mov.s $f12, $f2 +/* 0B3AE0 7F07EFB0 E7AC002C */ swc1 $f12, 0x2c($sp) +.L7F07EFB4: +/* 0B3AE4 7F07EFB4 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B3AE8 7F07EFB8 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AEC 7F07EFBC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3AF0 7F07EFC0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0B3AF4 7F07EFC4 44819000 */ mtc1 $at, $f18 +/* 0B3AF8 7F07EFC8 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AFC 7F07EFCC 46126000 */ add.s $f0, $f12, $f18 +/* 0B3B00 7F07EFD0 4600703C */ c.lt.s $f14, $f0 +/* 0B3B04 7F07EFD4 00000000 */ nop +/* 0B3B08 7F07EFD8 45000002 */ bc1f .L7F07EFE4 +/* 0B3B0C 7F07EFDC 00000000 */ nop +/* 0B3B10 7F07EFE0 46000386 */ mov.s $f14, $f0 +.L7F07EFE4: +/* 0B3B14 7F07EFE4 0FC1FA2C */ jal sub_GAME_7F07E8B0 +/* 0B3B18 7F07EFE8 46007306 */ mov.s $f12, $f14 +/* 0B3B1C 7F07EFEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B20 7F07EFF0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B24 7F07EFF4 8C620220 */ lw $v0, 0x220($v1) +.L7F07EFF8: +/* 0B3B28 7F07EFF8 24010003 */ li $at, 3 +/* 0B3B2C 7F07EFFC 10400003 */ beqz $v0, .L7F07F00C +/* 0B3B30 7F07F000 00000000 */ nop +/* 0B3B34 7F07F004 54410008 */ bnel $v0, $at, .L7F07F028 +/* 0B3B38 7F07F008 240A0001 */ li $t2, 1 +.L7F07F00C: +/* 0B3B3C 7F07F00C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3B40 7F07F010 00000000 */ nop +/* 0B3B44 7F07F014 10400009 */ beqz $v0, .L7F07F03C +/* 0B3B48 7F07F018 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3B4C 7F07F01C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B50 7F07F020 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B54 7F07F024 240A0001 */ li $t2, 1 +.L7F07F028: +/* 0B3B58 7F07F028 AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3B5C 7F07F02C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B60 7F07F030 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B64 7F07F034 1000000E */ b .L7F07F070 +/* 0B3B68 7F07F038 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F03C: +/* 0B3B6C 7F07F03C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3B70 7F07F040 240B0004 */ li $t3, 4 +/* 0B3B74 7F07F044 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3B78 7F07F048 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3B7C 7F07F04C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3B80 7F07F050 240D0001 */ li $t5, 1 +/* 0B3B84 7F07F054 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3B88 7F07F058 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3B8C 7F07F05C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3B90 7F07F060 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B94 7F07F064 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3B98 7F07F068 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B9C 7F07F06C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F070: +/* 0B3BA0 7F07F070 24010004 */ li $at, 4 +.L7F07F074: +/* 0B3BA4 7F07F074 5441002F */ bnel $v0, $at, .L7F07F134 +/* 0B3BA8 7F07F078 24010005 */ li $at, 5 +/* 0B3BAC 7F07F07C 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3BB0 7F07F080 24010001 */ li $at, 1 +/* 0B3BB4 7F07F084 1701000B */ bne $t8, $at, .L7F07F0B4 +/* 0B3BB8 7F07F088 00000000 */ nop +/* 0B3BBC 7F07F08C 8C79021C */ lw $t9, 0x21c($v1) +/* 0B3BC0 7F07F090 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3BC4 7F07F094 240500ED */ li $a1, 237 +/* 0B3BC8 7F07F098 13200006 */ beqz $t9, .L7F07F0B4 +/* 0B3BCC 7F07F09C 00003025 */ move $a2, $zero +/* 0B3BD0 7F07F0A0 0C002382 */ jal play_sfx_a1 +/* 0B3BD4 7F07F0A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3BD8 7F07F0A8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3BDC 7F07F0AC 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3BE0 7F07F0B0 AD00021C */ sw $zero, 0x21c($t0) +.L7F07F0B4: +/* 0B3BE4 7F07F0B4 0FC1F94B */ jal zoom_to_watch_on_open +/* 0B3BE8 7F07F0B8 00000000 */ nop +/* 0B3BEC 7F07F0BC 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3BF0 7F07F0C0 00000000 */ nop +/* 0B3BF4 7F07F0C4 10400009 */ beqz $v0, .L7F07F0EC +/* 0B3BF8 7F07F0C8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3BFC 7F07F0CC 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B3C00 7F07F0D0 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B3C04 7F07F0D4 24090001 */ li $t1, 1 +/* 0B3C08 7F07F0D8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C0C 7F07F0DC AD490200 */ sw $t1, 0x200($t2) +/* 0B3C10 7F07F0E0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C14 7F07F0E4 10000012 */ b .L7F07F130 +/* 0B3C18 7F07F0E8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F0EC: +/* 0B3C1C 7F07F0EC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3C20 7F07F0F0 240B0005 */ li $t3, 5 +/* 0B3C24 7F07F0F4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3C28 7F07F0F8 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3C2C 7F07F0FC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3C30 7F07F100 240D0001 */ li $t5, 1 +/* 0B3C34 7F07F104 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3C38 7F07F108 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3C3C 7F07F10C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3C40 7F07F110 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B3C44 7F07F114 24180001 */ li $t8, 1 +/* 0B3C48 7F07F118 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3C4C 7F07F11C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3C50 7F07F120 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C54 7F07F124 AF38021C */ sw $t8, 0x21c($t9) +/* 0B3C58 7F07F128 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C5C 7F07F12C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F130: +/* 0B3C60 7F07F130 24010005 */ li $at, 5 +.L7F07F134: +/* 0B3C64 7F07F134 5441000F */ bnel $v0, $at, .L7F07F174 +/* 0B3C68 7F07F138 2401000C */ li $at, 12 +/* 0B3C6C 7F07F13C 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B3C70 7F07F140 24010001 */ li $at, 1 +/* 0B3C74 7F07F144 55010006 */ bnel $t0, $at, .L7F07F160 +/* 0B3C78 7F07F148 24090001 */ li $t1, 1 +/* 0B3C7C 7F07F14C 0FC304C4 */ jal sub_GAME_7F0C1310 +/* 0B3C80 7F07F150 00000000 */ nop +/* 0B3C84 7F07F154 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C88 7F07F158 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C8C 7F07F15C 24090001 */ li $t1, 1 +.L7F07F160: +/* 0B3C90 7F07F160 AC690200 */ sw $t1, 0x200($v1) +/* 0B3C94 7F07F164 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C98 7F07F168 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C9C 7F07F16C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CA0 7F07F170 2401000C */ li $at, 12 +.L7F07F174: +/* 0B3CA4 7F07F174 14410018 */ bne $v0, $at, .L7F07F1D8 +/* 0B3CA8 7F07F178 240A0001 */ li $t2, 1 +/* 0B3CAC 7F07F17C AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3CB0 7F07F180 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3CB4 7F07F184 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3CB8 7F07F188 240C0006 */ li $t4, 6 +/* 0B3CBC 7F07F18C 240D0001 */ li $t5, 1 +/* 0B3CC0 7F07F190 8C6B01C0 */ lw $t3, 0x1c0($v1) +/* 0B3CC4 7F07F194 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3CC8 7F07F198 29610003 */ slti $at, $t3, 3 +/* 0B3CCC 7F07F19C 5420000F */ bnezl $at, .L7F07F1DC +/* 0B3CD0 7F07F1A0 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CD4 7F07F1A4 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B3CD8 7F07F1A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3CDC 7F07F1AC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3CE0 7F07F1B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3CE4 7F07F1B4 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3CE8 7F07F1B8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3CEC 7F07F1BC 240500EE */ li $a1, 238 +/* 0B3CF0 7F07F1C0 00003025 */ move $a2, $zero +/* 0B3CF4 7F07F1C4 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3CF8 7F07F1C8 0C002382 */ jal play_sfx_a1 +/* 0B3CFC 7F07F1CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3D00 7F07F1D0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D04 7F07F1D4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F1D8: +/* 0B3D08 7F07F1D8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F1DC: +/* 0B3D0C 7F07F1DC 24010006 */ li $at, 6 +/* 0B3D10 7F07F1E0 5441002F */ bnel $v0, $at, .L7F07F2A0 +/* 0B3D14 7F07F1E4 24010007 */ li $at, 7 +/* 0B3D18 7F07F1E8 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3D1C 7F07F1EC 24010001 */ li $at, 1 +/* 0B3D20 7F07F1F0 1701000D */ bne $t8, $at, .L7F07F228 +/* 0B3D24 7F07F1F4 00000000 */ nop +/* 0B3D28 7F07F1F8 0FC1F965 */ jal zoom_from_watch_on_exit +/* 0B3D2C 7F07F1FC 00000000 */ nop +/* 0B3D30 7F07F200 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3D34 7F07F204 00002025 */ move $a0, $zero +/* 0B3D38 7F07F208 13200005 */ beqz $t9, .L7F07F220 +/* 0B3D3C 7F07F20C 00000000 */ nop +/* 0B3D40 7F07F210 0FC17680 */ jal draw_item_in_hand +/* 0B3D44 7F07F214 00002825 */ move $a1, $zero +/* 0B3D48 7F07F218 10000003 */ b .L7F07F228 +/* 0B3D4C 7F07F21C 00000000 */ nop +.L7F07F220: +/* 0B3D50 7F07F220 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B3D54 7F07F224 00002025 */ move $a0, $zero +.L7F07F228: +/* 0B3D58 7F07F228 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3D5C 7F07F22C 00000000 */ nop +/* 0B3D60 7F07F230 10400009 */ beqz $v0, .L7F07F258 +/* 0B3D64 7F07F234 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3D68 7F07F238 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B3D6C 7F07F23C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B3D70 7F07F240 24080001 */ li $t0, 1 +/* 0B3D74 7F07F244 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D78 7F07F248 AD280200 */ sw $t0, 0x200($t1) +/* 0B3D7C 7F07F24C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3D80 7F07F250 10000012 */ b .L7F07F29C +/* 0B3D84 7F07F254 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F258: +/* 0B3D88 7F07F258 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3D8C 7F07F25C 240A0007 */ li $t2, 7 +/* 0B3D90 7F07F260 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3D94 7F07F264 AD6A01C8 */ sw $t2, 0x1c8($t3) +/* 0B3D98 7F07F268 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3D9C 7F07F26C 240C0001 */ li $t4, 1 +/* 0B3DA0 7F07F270 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3DA4 7F07F274 ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B3DA8 7F07F278 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3DAC 7F07F27C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B3DB0 7F07F280 240F0001 */ li $t7, 1 +/* 0B3DB4 7F07F284 ADC001C4 */ sw $zero, 0x1c4($t6) +/* 0B3DB8 7F07F288 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B3DBC 7F07F28C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DC0 7F07F290 AF0F021C */ sw $t7, 0x21c($t8) +/* 0B3DC4 7F07F294 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3DC8 7F07F298 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F29C: +/* 0B3DCC 7F07F29C 24010007 */ li $at, 7 +.L7F07F2A0: +/* 0B3DD0 7F07F2A0 5441003F */ bnel $v0, $at, .L7F07F3A0 +/* 0B3DD4 7F07F2A4 24010008 */ li $at, 8 +/* 0B3DD8 7F07F2A8 8C7901C0 */ lw $t9, 0x1c0($v1) +/* 0B3DDC 7F07F2AC 24010001 */ li $at, 1 +/* 0B3DE0 7F07F2B0 17210024 */ bne $t9, $at, .L7F07F344 +/* 0B3DE4 7F07F2B4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3DE8 7F07F2B8 44817000 */ mtc1 $at, $f14 +/* 0B3DEC 7F07F2BC 00002025 */ move $a0, $zero +/* 0B3DF0 7F07F2C0 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3DF4 7F07F2C4 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3DF8 7F07F2C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DFC 7F07F2CC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E00 7F07F2D0 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0B3E04 7F07F2D4 46000306 */ mov.s $f12, $f0 +/* 0B3E08 7F07F2D8 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E0C 7F07F2DC 24010003 */ li $at, 3 +/* 0B3E10 7F07F2E0 5040000A */ beql $v0, $zero, .L7F07F30C +/* 0B3E14 7F07F2E4 3C0141A0 */ lui $at, 0x41a0 +/* 0B3E18 7F07F2E8 10410007 */ beq $v0, $at, .L7F07F308 +/* 0B3E1C 7F07F2EC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3E20 7F07F2F0 44813000 */ mtc1 $at, $f6 +/* 0B3E24 7F07F2F4 C4640258 */ lwc1 $f4, 0x258($v1) +/* 0B3E28 7F07F2F8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3E2C 7F07F2FC 44815000 */ mtc1 $at, $f10 +/* 0B3E30 7F07F300 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3E34 7F07F304 460A4383 */ div.s $f14, $f8, $f10 +.L7F07F308: +/* 0B3E38 7F07F308 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.L7F07F30C: +/* 0B3E3C 7F07F30C 44818000 */ mtc1 $at, $f16 +/* 0B3E40 7F07F310 00000000 */ nop +/* 0B3E44 7F07F314 46107080 */ add.s $f2, $f14, $f16 +/* 0B3E48 7F07F318 4602003C */ c.lt.s $f0, $f2 +/* 0B3E4C 7F07F31C 00000000 */ nop +/* 0B3E50 7F07F320 45000002 */ bc1f .L7F07F32C +/* 0B3E54 7F07F324 00000000 */ nop +/* 0B3E58 7F07F328 46001306 */ mov.s $f12, $f2 +.L7F07F32C: +/* 0B3E5C 7F07F32C 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B3E60 7F07F330 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3E64 7F07F334 0FC1FA44 */ jal sub_GAME_7F07E910 +/* 0B3E68 7F07F338 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0B3E6C 7F07F33C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E70 7F07F340 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F344: +/* 0B3E74 7F07F344 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E78 7F07F348 24010003 */ li $at, 3 +/* 0B3E7C 7F07F34C 24090008 */ li $t1, 8 +/* 0B3E80 7F07F350 10400008 */ beqz $v0, .L7F07F374 +/* 0B3E84 7F07F354 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3E88 7F07F358 10410006 */ beq $v0, $at, .L7F07F374 +/* 0B3E8C 7F07F35C 24080001 */ li $t0, 1 +/* 0B3E90 7F07F360 AC680200 */ sw $t0, 0x200($v1) +/* 0B3E94 7F07F364 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E98 7F07F368 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E9C 7F07F36C 1000000B */ b .L7F07F39C +/* 0B3EA0 7F07F370 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F374: +/* 0B3EA4 7F07F374 AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3EA8 7F07F378 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3EAC 7F07F37C 240A0001 */ li $t2, 1 +/* 0B3EB0 7F07F380 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3EB4 7F07F384 AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3EB8 7F07F388 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3EBC 7F07F38C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3EC0 7F07F390 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0B3EC4 7F07F394 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3EC8 7F07F398 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F39C: +/* 0B3ECC 7F07F39C 24010008 */ li $at, 8 +.L7F07F3A0: +/* 0B3ED0 7F07F3A0 14410069 */ bne $v0, $at, .L7F07F548 +/* 0B3ED4 7F07F3A4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3ED8 7F07F3A8 AC600200 */ sw $zero, 0x200($v1) +/* 0B3EDC 7F07F3AC 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3EE0 7F07F3B0 24010001 */ li $at, 1 +/* 0B3EE4 7F07F3B4 8DAE01C0 */ lw $t6, 0x1c0($t5) +/* 0B3EE8 7F07F3B8 15C10028 */ bne $t6, $at, .L7F07F45C +/* 0B3EEC 7F07F3BC 00000000 */ nop +/* 0B3EF0 7F07F3C0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3EF4 7F07F3C4 24040001 */ li $a0, 1 +/* 0B3EF8 7F07F3C8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3EFC 7F07F3CC 0FC17674 */ jal get_item_in_hand +/* 0B3F00 7F07F3D0 24040001 */ li $a0, 1 +/* 0B3F04 7F07F3D4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3F08 7F07F3D8 504F000B */ beql $v0, $t7, .L7F07F408 +/* 0B3F0C 7F07F3DC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F10 7F07F3E0 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F14 7F07F3E4 24040001 */ li $a0, 1 +/* 0B3F18 7F07F3E8 50400007 */ beql $v0, $zero, .L7F07F408 +/* 0B3F1C 7F07F3EC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F20 7F07F3F0 0FC17674 */ jal get_item_in_hand +/* 0B3F24 7F07F3F4 24040001 */ li $a0, 1 +/* 0B3F28 7F07F3F8 24040001 */ li $a0, 1 +/* 0B3F2C 7F07F3FC 0FC17680 */ jal draw_item_in_hand +/* 0B3F30 7F07F400 00402825 */ move $a1, $v0 +/* 0B3F34 7F07F404 8FB8003C */ lw $t8, 0x3c($sp) +.L7F07F408: +/* 0B3F38 7F07F408 1300004F */ beqz $t8, .L7F07F548 +/* 0B3F3C 7F07F40C 00000000 */ nop +/* 0B3F40 7F07F410 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3F44 7F07F414 00002025 */ move $a0, $zero +/* 0B3F48 7F07F418 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3F4C 7F07F41C 0FC17674 */ jal get_item_in_hand +/* 0B3F50 7F07F420 00002025 */ move $a0, $zero +/* 0B3F54 7F07F424 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3F58 7F07F428 10590047 */ beq $v0, $t9, .L7F07F548 +/* 0B3F5C 7F07F42C 00000000 */ nop +/* 0B3F60 7F07F430 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F64 7F07F434 00002025 */ move $a0, $zero +/* 0B3F68 7F07F438 10400043 */ beqz $v0, .L7F07F548 +/* 0B3F6C 7F07F43C 00000000 */ nop +/* 0B3F70 7F07F440 0FC17674 */ jal get_item_in_hand +/* 0B3F74 7F07F444 00002025 */ move $a0, $zero +/* 0B3F78 7F07F448 00002025 */ move $a0, $zero +/* 0B3F7C 7F07F44C 0FC17680 */ jal draw_item_in_hand +/* 0B3F80 7F07F450 00402825 */ move $a1, $v0 +/* 0B3F84 7F07F454 1000003C */ b .L7F07F548 +/* 0B3F88 7F07F458 00000000 */ nop +.L7F07F45C: +/* 0B3F8C 7F07F45C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3F90 7F07F460 00000000 */ nop +/* 0B3F94 7F07F464 14400038 */ bnez $v0, .L7F07F548 +/* 0B3F98 7F07F468 00000000 */ nop +/* 0B3F9C 7F07F46C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FA0 7F07F470 24040001 */ li $a0, 1 +/* 0B3FA4 7F07F474 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3FA8 7F07F478 0FC17674 */ jal get_item_in_hand +/* 0B3FAC 7F07F47C 24040001 */ li $a0, 1 +/* 0B3FB0 7F07F480 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B3FB4 7F07F484 14480030 */ bne $v0, $t0, .L7F07F548 +/* 0B3FB8 7F07F488 00000000 */ nop +/* 0B3FBC 7F07F48C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FC0 7F07F490 24040001 */ li $a0, 1 +/* 0B3FC4 7F07F494 1040002C */ beqz $v0, .L7F07F548 +/* 0B3FC8 7F07F498 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B3FCC 7F07F49C 1120000D */ beqz $t1, .L7F07F4D4 +/* 0B3FD0 7F07F4A0 00000000 */ nop +/* 0B3FD4 7F07F4A4 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FD8 7F07F4A8 00002025 */ move $a0, $zero +/* 0B3FDC 7F07F4AC AFA20018 */ sw $v0, 0x18($sp) +/* 0B3FE0 7F07F4B0 0FC17674 */ jal get_item_in_hand +/* 0B3FE4 7F07F4B4 00002025 */ move $a0, $zero +/* 0B3FE8 7F07F4B8 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B3FEC 7F07F4BC 144A0022 */ bne $v0, $t2, .L7F07F548 +/* 0B3FF0 7F07F4C0 00000000 */ nop +/* 0B3FF4 7F07F4C4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FF8 7F07F4C8 00002025 */ move $a0, $zero +/* 0B3FFC 7F07F4CC 1040001E */ beqz $v0, .L7F07F548 +/* 0B4000 7F07F4D0 00000000 */ nop +.L7F07F4D4: +/* 0B4004 7F07F4D4 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B4008 7F07F4D8 24040001 */ li $a0, 1 +/* 0B400C 7F07F4DC 8FAB003C */ lw $t3, 0x3c($sp) +/* 0B4010 7F07F4E0 51600004 */ beql $t3, $zero, .L7F07F4F4 +/* 0B4014 7F07F4E4 24040008 */ li $a0, 8 +/* 0B4018 7F07F4E8 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B401C 7F07F4EC 00002025 */ move $a0, $zero +/* 0B4020 7F07F4F0 24040008 */ li $a0, 8 +.L7F07F4F4: +/* 0B4024 7F07F4F4 0FC1A96A */ jal set_unset_bitflags +/* 0B4028 7F07F4F8 24050001 */ li $a1, 1 +/* 0B402C 7F07F4FC 24040004 */ li $a0, 4 +/* 0B4030 7F07F500 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B4034 7F07F504 24050001 */ li $a1, 1 +/* 0B4038 7F07F508 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B403C 7F07F50C 24040001 */ li $a0, 1 +/* 0B4040 7F07F510 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B4044 7F07F514 24040001 */ li $a0, 1 +/* 0B4048 7F07F518 24040004 */ li $a0, 4 +/* 0B404C 7F07F51C 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B4050 7F07F520 24050001 */ li $a1, 1 +/* 0B4054 7F07F524 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B4058 7F07F528 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B405C 7F07F52C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4060 7F07F530 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4064 7F07F534 AD8001C8 */ sw $zero, 0x1c8($t4) +/* 0B4068 7F07F538 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B406C 7F07F53C ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4070 7F07F540 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4074 7F07F544 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F548: +/* 0B4078 7F07F548 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B407C 7F07F54C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4080 7F07F550 24010009 */ li $at, 9 +/* 0B4084 7F07F554 24040001 */ li $a0, 1 +/* 0B4088 7F07F558 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B408C 7F07F55C 15E10023 */ bne $t7, $at, .L7F07F5EC +/* 0B4090 7F07F560 00000000 */ nop +/* 0B4094 7F07F564 0FC17674 */ jal get_item_in_hand +/* 0B4098 7F07F568 AC600200 */ sw $zero, 0x200($v1) +/* 0B409C 7F07F56C AFA2001C */ sw $v0, 0x1c($sp) +/* 0B40A0 7F07F570 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40A4 7F07F574 24040001 */ li $a0, 1 +/* 0B40A8 7F07F578 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B40AC 7F07F57C 1058001B */ beq $v0, $t8, .L7F07F5EC +/* 0B40B0 7F07F580 00000000 */ nop +/* 0B40B4 7F07F584 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40B8 7F07F588 24040001 */ li $a0, 1 +/* 0B40BC 7F07F58C 10400017 */ beqz $v0, .L7F07F5EC +/* 0B40C0 7F07F590 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B40C4 7F07F594 1320000C */ beqz $t9, .L7F07F5C8 +/* 0B40C8 7F07F598 00000000 */ nop +/* 0B40CC 7F07F59C 0FC17674 */ jal get_item_in_hand +/* 0B40D0 7F07F5A0 00002025 */ move $a0, $zero +/* 0B40D4 7F07F5A4 AFA20018 */ sw $v0, 0x18($sp) +/* 0B40D8 7F07F5A8 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40DC 7F07F5AC 00002025 */ move $a0, $zero +/* 0B40E0 7F07F5B0 8FA80018 */ lw $t0, 0x18($sp) +/* 0B40E4 7F07F5B4 1048000D */ beq $v0, $t0, .L7F07F5EC +/* 0B40E8 7F07F5B8 00000000 */ nop +/* 0B40EC 7F07F5BC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40F0 7F07F5C0 00002025 */ move $a0, $zero +/* 0B40F4 7F07F5C4 10400009 */ beqz $v0, .L7F07F5EC +.L7F07F5C8: +/* 0B40F8 7F07F5C8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B40FC 7F07F5CC 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B4100 7F07F5D0 8C4A0000 */ lw $t2, ($v0) +/* 0B4104 7F07F5D4 24090008 */ li $t1, 8 +/* 0B4108 7F07F5D8 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B410C 7F07F5DC 8C4B0000 */ lw $t3, ($v0) +/* 0B4110 7F07F5E0 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B4114 7F07F5E4 8C4C0000 */ lw $t4, ($v0) +/* 0B4118 7F07F5E8 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F5EC: +/* 0B411C 7F07F5EC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4120 7F07F5F0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4124 7F07F5F4 2401000A */ li $at, 10 +/* 0B4128 7F07F5F8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B412C 7F07F5FC 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B4130 7F07F600 15A1002D */ bne $t5, $at, .L7F07F6B8 +/* 0B4134 7F07F604 00000000 */ nop +/* 0B4138 7F07F608 AC600200 */ sw $zero, 0x200($v1) +/* 0B413C 7F07F60C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4140 7F07F610 24010001 */ li $at, 1 +/* 0B4144 7F07F614 8DCF01C0 */ lw $t7, 0x1c0($t6) +/* 0B4148 7F07F618 15E10005 */ bne $t7, $at, .L7F07F630 +/* 0B414C 7F07F61C 00000000 */ nop +/* 0B4150 7F07F620 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B4154 7F07F624 00002025 */ move $a0, $zero +/* 0B4158 7F07F628 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B415C 7F07F62C 46000306 */ mov.s $f12, $f0 +.L7F07F630: +/* 0B4160 7F07F630 0FC17674 */ jal get_item_in_hand +/* 0B4164 7F07F634 24040001 */ li $a0, 1 +/* 0B4168 7F07F638 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B416C 7F07F63C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4170 7F07F640 24040001 */ li $a0, 1 +/* 0B4174 7F07F644 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B4178 7F07F648 1058001B */ beq $v0, $t8, .L7F07F6B8 +/* 0B417C 7F07F64C 00000000 */ nop +/* 0B4180 7F07F650 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4184 7F07F654 24040001 */ li $a0, 1 +/* 0B4188 7F07F658 10400017 */ beqz $v0, .L7F07F6B8 +/* 0B418C 7F07F65C 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B4190 7F07F660 1320000C */ beqz $t9, .L7F07F694 +/* 0B4194 7F07F664 00000000 */ nop +/* 0B4198 7F07F668 0FC17674 */ jal get_item_in_hand +/* 0B419C 7F07F66C 00002025 */ move $a0, $zero +/* 0B41A0 7F07F670 AFA20018 */ sw $v0, 0x18($sp) +/* 0B41A4 7F07F674 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B41A8 7F07F678 00002025 */ move $a0, $zero +/* 0B41AC 7F07F67C 8FA80018 */ lw $t0, 0x18($sp) +/* 0B41B0 7F07F680 1048000D */ beq $v0, $t0, .L7F07F6B8 +/* 0B41B4 7F07F684 00000000 */ nop +/* 0B41B8 7F07F688 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B41BC 7F07F68C 00002025 */ move $a0, $zero +/* 0B41C0 7F07F690 10400009 */ beqz $v0, .L7F07F6B8 +.L7F07F694: +/* 0B41C4 7F07F694 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B41C8 7F07F698 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B41CC 7F07F69C 8C4A0000 */ lw $t2, ($v0) +/* 0B41D0 7F07F6A0 24090008 */ li $t1, 8 +/* 0B41D4 7F07F6A4 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B41D8 7F07F6A8 8C4B0000 */ lw $t3, ($v0) +/* 0B41DC 7F07F6AC AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B41E0 7F07F6B0 8C4C0000 */ lw $t4, ($v0) +/* 0B41E4 7F07F6B4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F6B8: +/* 0B41E8 7F07F6B8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B41EC 7F07F6BC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41F0 7F07F6C0 2401000B */ li $at, 11 +/* 0B41F4 7F07F6C4 24040001 */ li $a0, 1 +/* 0B41F8 7F07F6C8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B41FC 7F07F6CC 15A10024 */ bne $t5, $at, .L7F07F760 +/* 0B4200 7F07F6D0 00000000 */ nop +/* 0B4204 7F07F6D4 0FC17674 */ jal get_item_in_hand +/* 0B4208 7F07F6D8 AC600200 */ sw $zero, 0x200($v1) +/* 0B420C 7F07F6DC AFA2001C */ sw $v0, 0x1c($sp) +/* 0B4210 7F07F6E0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4214 7F07F6E4 24040001 */ li $a0, 1 +/* 0B4218 7F07F6E8 8FAE001C */ lw $t6, 0x1c($sp) +/* 0B421C 7F07F6EC 144E001C */ bne $v0, $t6, .L7F07F760 +/* 0B4220 7F07F6F0 00000000 */ nop +/* 0B4224 7F07F6F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4228 7F07F6F8 24040001 */ li $a0, 1 +/* 0B422C 7F07F6FC 10400018 */ beqz $v0, .L7F07F760 +/* 0B4230 7F07F700 8FAF003C */ lw $t7, 0x3c($sp) +/* 0B4234 7F07F704 11E0000C */ beqz $t7, .L7F07F738 +/* 0B4238 7F07F708 00000000 */ nop +/* 0B423C 7F07F70C 0FC17674 */ jal get_item_in_hand +/* 0B4240 7F07F710 00002025 */ move $a0, $zero +/* 0B4244 7F07F714 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4248 7F07F718 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B424C 7F07F71C 00002025 */ move $a0, $zero +/* 0B4250 7F07F720 8FB80018 */ lw $t8, 0x18($sp) +/* 0B4254 7F07F724 1458000E */ bne $v0, $t8, .L7F07F760 +/* 0B4258 7F07F728 00000000 */ nop +/* 0B425C 7F07F72C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4260 7F07F730 00002025 */ move $a0, $zero +/* 0B4264 7F07F734 1040000A */ beqz $v0, .L7F07F760 +.L7F07F738: +/* 0B4268 7F07F738 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B426C 7F07F73C 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B4270 7F07F740 24190001 */ li $t9, 1 +/* 0B4274 7F07F744 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B4278 7F07F748 AD1901C8 */ sw $t9, 0x1c8($t0) +/* 0B427C 7F07F74C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B4280 7F07F750 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B4284 7F07F754 AD2001C0 */ sw $zero, 0x1c0($t1) +/* 0B4288 7F07F758 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B428C 7F07F75C AD4001C4 */ sw $zero, 0x1c4($t2) +.L7F07F760: +/* 0B4290 7F07F760 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4294 7F07F764 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4298 7F07F768 2401000D */ li $at, 13 +/* 0B429C 7F07F76C 24040001 */ li $a0, 1 +/* 0B42A0 7F07F770 8C6B01C8 */ lw $t3, 0x1c8($v1) +/* 0B42A4 7F07F774 1561001B */ bne $t3, $at, .L7F07F7E4 +/* 0B42A8 7F07F778 00000000 */ nop +/* 0B42AC 7F07F77C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42B0 7F07F780 AC600200 */ sw $zero, 0x200($v1) +/* 0B42B4 7F07F784 10400017 */ beqz $v0, .L7F07F7E4 +/* 0B42B8 7F07F788 00000000 */ nop +/* 0B42BC 7F07F78C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42C0 7F07F790 00002025 */ move $a0, $zero +/* 0B42C4 7F07F794 10400013 */ beqz $v0, .L7F07F7E4 +/* 0B42C8 7F07F798 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B42CC 7F07F79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42D0 7F07F7A0 24010005 */ li $at, 5 +/* 0B42D4 7F07F7A4 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B42D8 7F07F7A8 1041000E */ beq $v0, $at, .L7F07F7E4 +/* 0B42DC 7F07F7AC 24010006 */ li $at, 6 +/* 0B42E0 7F07F7B0 1041000C */ beq $v0, $at, .L7F07F7E4 +/* 0B42E4 7F07F7B4 24010007 */ li $at, 7 +/* 0B42E8 7F07F7B8 1041000A */ beq $v0, $at, .L7F07F7E4 +/* 0B42EC 7F07F7BC 24010008 */ li $at, 8 +/* 0B42F0 7F07F7C0 10410008 */ beq $v0, $at, .L7F07F7E4 +/* 0B42F4 7F07F7C4 240C0001 */ li $t4, 1 +/* 0B42F8 7F07F7C8 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B42FC 7F07F7CC 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4300 7F07F7D0 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B4304 7F07F7D4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4308 7F07F7D8 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B430C 7F07F7DC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4310 7F07F7E0 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F7E4: +/* 0B4314 7F07F7E4 0FC1F824 */ jal sub_GAME_7F07E090 +/* 0B4318 7F07F7E8 00000000 */ nop +/* 0B431C 7F07F7EC 0FC1FA59 */ jal sub_GAME_7F07E964 +/* 0B4320 7F07F7F0 00000000 */ nop +/* 0B4324 7F07F7F4 0FC1F98B */ jal sub_GAME_7F07E62C +/* 0B4328 7F07F7F8 00000000 */ nop +/* 0B432C 7F07F7FC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B4330 7F07F800 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4334 7F07F804 8DE201C8 */ lw $v0, 0x1c8($t7) +/* 0B4338 7F07F808 24010005 */ li $at, 5 +.L7F07F80C: +/* 0B433C 7F07F80C 54410008 */ bnel $v0, $at, .L7F07F830 +/* 0B4340 7F07F810 2401000C */ li $at, 12 +/* 0B4344 7F07F814 0FC2FEFE */ jal set_controls_locked_flag +/* 0B4348 7F07F818 24040001 */ li $a0, 1 +/* 0B434C 7F07F81C 0FC29AA0 */ jal sub_GAME_7F0A6A80 +/* 0B4350 7F07F820 00000000 */ nop +/* 0B4354 7F07F824 1000000B */ b .L7F07F854 +/* 0B4358 7F07F828 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B435C 7F07F82C 2401000C */ li $at, 12 +.L7F07F830: +/* 0B4360 7F07F830 14410005 */ bne $v0, $at, .L7F07F848 +/* 0B4364 7F07F834 00000000 */ nop +/* 0B4368 7F07F838 0FC2FEFE */ jal set_controls_locked_flag +/* 0B436C 7F07F83C 24040001 */ li $a0, 1 +/* 0B4370 7F07F840 10000004 */ b .L7F07F854 +/* 0B4374 7F07F844 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F848: +/* 0B4378 7F07F848 0FC2FEFE */ jal set_controls_locked_flag +/* 0B437C 7F07F84C 00002025 */ move $a0, $zero +/* 0B4380 7F07F850 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F854: +/* 0B4384 7F07F854 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B4388 7F07F858 03E00008 */ jr $ra +/* 0B438C 7F07F85C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EC54 +/* 0B3DD0 7F07F260 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3DD4 7F07F264 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3DD8 7F07F268 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B3DDC 7F07F26C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3DE0 7F07F270 8DC201C8 */ lw $v0, 0x1c8($t6) +/* 0B3DE4 7F07F274 504002E9 */ beql $v0, $zero, .Ljp7F07FE1C +/* 0B3DE8 7F07F278 24010005 */ li $at, 5 +/* 0B3DEC 7F07F27C 0FC177BC */ jal get_item_in_hand +/* 0B3DF0 7F07F280 00002025 */ move $a0, $zero +/* 0B3DF4 7F07F284 3843001E */ xori $v1, $v0, 0x1e +/* 0B3DF8 7F07F288 2C630001 */ sltiu $v1, $v1, 1 +/* 0B3DFC 7F07F28C 14600006 */ bnez $v1, .Ljp7F07F2A8 +/* 0B3E00 7F07F290 AFA3001C */ sw $v1, 0x1c($sp) +/* 0B3E04 7F07F294 0FC177BC */ jal get_item_in_hand +/* 0B3E08 7F07F298 00002025 */ move $a0, $zero +/* 0B3E0C 7F07F29C 384F0017 */ xori $t7, $v0, 0x17 +/* 0B3E10 7F07F2A0 2DEF0001 */ sltiu $t7, $t7, 1 +/* 0B3E14 7F07F2A4 AFAF001C */ sw $t7, 0x1c($sp) +.Ljp7F07F2A8: +/* 0B3E18 7F07F2A8 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B3E1C 7F07F2AC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E20 7F07F2B0 13000004 */ beqz $t8, .Ljp7F07F2C4 +/* 0B3E24 7F07F2B4 AFB8003C */ sw $t8, 0x3c($sp) +/* 0B3E28 7F07F2B8 24190023 */ li $t9, 35 +/* 0B3E2C 7F07F2BC 10000003 */ b .Ljp7F07F2CC +/* 0B3E30 7F07F2C0 AFB90038 */ sw $t9, 0x38($sp) +.Ljp7F07F2C4: +/* 0B3E34 7F07F2C4 24080011 */ li $t0, 17 +/* 0B3E38 7F07F2C8 AFA80038 */ sw $t0, 0x38($sp) +.Ljp7F07F2CC: +/* 0B3E3C 7F07F2CC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E40 7F07F2D0 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 0B3E44 7F07F2D4 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 0B3E48 7F07F2D8 8C6901C4 */ lw $t1, 0x1c4($v1) +/* 0B3E4C 7F07F2DC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3E50 7F07F2E0 24010001 */ li $at, 1 +/* 0B3E54 7F07F2E4 012A5821 */ addu $t3, $t1, $t2 +/* 0B3E58 7F07F2E8 AC6B01C4 */ sw $t3, 0x1c4($v1) +/* 0B3E5C 7F07F2EC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E60 7F07F2F0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E64 7F07F2F4 8C6C01C0 */ lw $t4, 0x1c0($v1) +/* 0B3E68 7F07F2F8 258D0001 */ addiu $t5, $t4, 1 +/* 0B3E6C 7F07F2FC AC6D01C0 */ sw $t5, 0x1c0($v1) +/* 0B3E70 7F07F300 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3E74 7F07F304 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E78 7F07F308 ADC00200 */ sw $zero, 0x200($t6) +/* 0B3E7C 7F07F30C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E80 7F07F310 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B3E84 7F07F314 15E10038 */ bne $t7, $at, .Ljp7F07F3F8 +/* 0B3E88 7F07F318 00000000 */ nop +/* 0B3E8C 7F07F31C AC600200 */ sw $zero, 0x200($v1) +/* 0B3E90 7F07F320 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B3E94 7F07F324 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B3E98 7F07F328 24010001 */ li $at, 1 +/* 0B3E9C 7F07F32C 24040001 */ li $a0, 1 +/* 0B3EA0 7F07F330 8F0201C0 */ lw $v0, 0x1c0($t8) +/* 0B3EA4 7F07F334 54410006 */ bnel $v0, $at, .Ljp7F07F350 +/* 0B3EA8 7F07F338 24010002 */ li $at, 2 +/* 0B3EAC 7F07F33C 0FC177C8 */ jal draw_item_in_hand +/* 0B3EB0 7F07F340 24050054 */ li $a1, 84 +/* 0B3EB4 7F07F344 1000002C */ b .Ljp7F07F3F8 +/* 0B3EB8 7F07F348 00000000 */ nop +/* 0B3EBC 7F07F34C 24010002 */ li $at, 2 +.Ljp7F07F350: +/* 0B3EC0 7F07F350 14410007 */ bne $v0, $at, .Ljp7F07F370 +/* 0B3EC4 7F07F354 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3EC8 7F07F358 13200027 */ beqz $t9, .Ljp7F07F3F8 +/* 0B3ECC 7F07F35C 00002025 */ move $a0, $zero +/* 0B3ED0 7F07F360 0FC177C8 */ jal draw_item_in_hand +/* 0B3ED4 7F07F364 00002825 */ move $a1, $zero +/* 0B3ED8 7F07F368 10000023 */ b .Ljp7F07F3F8 +/* 0B3EDC 7F07F36C 00000000 */ nop +.Ljp7F07F370: +/* 0B3EE0 7F07F370 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B3EE4 7F07F374 24040001 */ li $a0, 1 +/* 0B3EE8 7F07F378 24010054 */ li $at, 84 +/* 0B3EEC 7F07F37C 1441001E */ bne $v0, $at, .Ljp7F07F3F8 +/* 0B3EF0 7F07F380 00000000 */ nop +/* 0B3EF4 7F07F384 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B3EF8 7F07F388 24040001 */ li $a0, 1 +/* 0B3EFC 7F07F38C 1040001A */ beqz $v0, .Ljp7F07F3F8 +/* 0B3F00 7F07F390 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B3F04 7F07F394 11000008 */ beqz $t0, .Ljp7F07F3B8 +/* 0B3F08 7F07F398 00000000 */ nop +/* 0B3F0C 7F07F39C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B3F10 7F07F3A0 00002025 */ move $a0, $zero +/* 0B3F14 7F07F3A4 14400014 */ bnez $v0, .Ljp7F07F3F8 +/* 0B3F18 7F07F3A8 00000000 */ nop +/* 0B3F1C 7F07F3AC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B3F20 7F07F3B0 00002025 */ move $a0, $zero +/* 0B3F24 7F07F3B4 10400010 */ beqz $v0, .Ljp7F07F3F8 +.Ljp7F07F3B8: +/* 0B3F28 7F07F3B8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F2C 7F07F3BC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F30 7F07F3C0 8FAA0038 */ lw $t2, 0x38($sp) +/* 0B3F34 7F07F3C4 240B0002 */ li $t3, 2 +/* 0B3F38 7F07F3C8 8C6901C4 */ lw $t1, 0x1c4($v1) +/* 0B3F3C 7F07F3CC 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B3F40 7F07F3D0 012A082A */ slt $at, $t1, $t2 +/* 0B3F44 7F07F3D4 14200008 */ bnez $at, .Ljp7F07F3F8 +/* 0B3F48 7F07F3D8 00000000 */ nop +/* 0B3F4C 7F07F3DC AC6B01C8 */ sw $t3, 0x1c8($v1) +/* 0B3F50 7F07F3E0 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3F54 7F07F3E4 240C0001 */ li $t4, 1 +/* 0B3F58 7F07F3E8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3F5C 7F07F3EC ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B3F60 7F07F3F0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3F64 7F07F3F4 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07F3F8: +/* 0B3F68 7F07F3F8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F6C 7F07F3FC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F70 7F07F400 24010002 */ li $at, 2 +/* 0B3F74 7F07F404 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B3F78 7F07F408 55E10043 */ bnel $t7, $at, .Ljp7F07F518 +/* 0B3F7C 7F07F40C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3F80 7F07F410 AC600200 */ sw $zero, 0x200($v1) +/* 0B3F84 7F07F414 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F88 7F07F418 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F8C 7F07F41C 24010001 */ li $at, 1 +/* 0B3F90 7F07F420 24040008 */ li $a0, 8 +/* 0B3F94 7F07F424 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3F98 7F07F428 57010026 */ bnel $t8, $at, .Ljp7F07F4C4 +/* 0B3F9C 7F07F42C C4640214 */ lwc1 $f4, 0x214($v1) +/* 0B3FA0 7F07F430 0FC1AAE5 */ jal set_unset_bitflags +/* 0B3FA4 7F07F434 00002825 */ move $a1, $zero +/* 0B3FA8 7F07F438 24040004 */ li $a0, 4 +/* 0B3FAC 7F07F43C 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B3FB0 7F07F440 00002825 */ move $a1, $zero +/* 0B3FB4 7F07F444 0FC22AAD */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B3FB8 7F07F448 24040001 */ li $a0, 1 +/* 0B3FBC 7F07F44C 0FC22C48 */ jal sub_GAME_7F08A944 +/* 0B3FC0 7F07F450 24040001 */ li $a0, 1 +/* 0B3FC4 7F07F454 24040004 */ li $a0, 4 +/* 0B3FC8 7F07F458 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B3FCC 7F07F45C 00002825 */ move $a1, $zero +/* 0B3FD0 7F07F460 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3FD4 7F07F464 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3FD8 7F07F468 24010002 */ li $at, 2 +/* 0B3FDC 7F07F46C 8C640218 */ lw $a0, 0x218($v1) +/* 0B3FE0 7F07F470 10800005 */ beqz $a0, .Ljp7F07F488 +/* 0B3FE4 7F07F474 00000000 */ nop +/* 0B3FE8 7F07F478 10810003 */ beq $a0, $at, .Ljp7F07F488 +/* 0B3FEC 7F07F47C 24010003 */ li $at, 3 +/* 0B3FF0 7F07F480 54810010 */ bnel $a0, $at, .Ljp7F07F4C4 +/* 0B3FF4 7F07F484 C4640214 */ lwc1 $f4, 0x214($v1) +.Ljp7F07F488: +/* 0B3FF8 7F07F488 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B3FFC 7F07F48C 24040001 */ li $a0, 1 +/* 0B4000 7F07F490 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B4004 7F07F494 44811000 */ mtc1 $at, $f2 +/* 0B4008 7F07F498 46000306 */ mov.s $f12, $f0 +/* 0B400C 7F07F49C 4602003C */ c.lt.s $f0, $f2 +/* 0B4010 7F07F4A0 00000000 */ nop +/* 0B4014 7F07F4A4 45000002 */ bc1f .Ljp7F07F4B0 +/* 0B4018 7F07F4A8 00000000 */ nop +/* 0B401C 7F07F4AC 46001306 */ mov.s $f12, $f2 +.Ljp7F07F4B0: +/* 0B4020 7F07F4B0 0FC1F98D */ jal sub_GAME_7F07E010 +/* 0B4024 7F07F4B4 00000000 */ nop +/* 0B4028 7F07F4B8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B402C 7F07F4BC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4030 7F07F4C0 C4640214 */ lwc1 $f4, 0x214($v1) +.Ljp7F07F4C4: +/* 0B4034 7F07F4C4 C4660210 */ lwc1 $f6, 0x210($v1) +/* 0B4038 7F07F4C8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B403C 7F07F4CC 44815000 */ mtc1 $at, $f10 +/* 0B4040 7F07F4D0 46062201 */ sub.s $f8, $f4, $f6 +/* 0B4044 7F07F4D4 24190003 */ li $t9, 3 +/* 0B4048 7F07F4D8 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B404C 7F07F4DC 460A403C */ c.lt.s $f8, $f10 +/* 0B4050 7F07F4E0 00000000 */ nop +/* 0B4054 7F07F4E4 4502000C */ bc1fl .Ljp7F07F518 +/* 0B4058 7F07F4E8 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B405C 7F07F4EC AC7901C8 */ sw $t9, 0x1c8($v1) +/* 0B4060 7F07F4F0 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0B4064 7F07F4F4 24080001 */ li $t0, 1 +/* 0B4068 7F07F4F8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B406C 7F07F4FC AD2801C0 */ sw $t0, 0x1c0($t1) +/* 0B4070 7F07F500 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B4074 7F07F504 0FC1FB76 */ jal sub_GAME_7F07E7CC +/* 0B4078 7F07F508 AD4001C4 */ sw $zero, 0x1c4($t2) +/* 0B407C 7F07F50C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4080 7F07F510 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4084 7F07F514 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F518: +/* 0B4088 7F07F518 24010003 */ li $at, 3 +/* 0B408C 7F07F51C 54410059 */ bnel $v0, $at, .Ljp7F07F684 +/* 0B4090 7F07F520 24010004 */ li $at, 4 +/* 0B4094 7F07F524 8C6B01C0 */ lw $t3, 0x1c0($v1) +/* 0B4098 7F07F528 24010001 */ li $at, 1 +/* 0B409C 7F07F52C 55610036 */ bnel $t3, $at, .Ljp7F07F608 +/* 0B40A0 7F07F530 8C620220 */ lw $v0, 0x220($v1) +/* 0B40A4 7F07F534 8C620220 */ lw $v0, 0x220($v1) +/* 0B40A8 7F07F538 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B40AC 7F07F53C 44817000 */ mtc1 $at, $f14 +/* 0B40B0 7F07F540 1040000D */ beqz $v0, .Ljp7F07F578 +/* 0B40B4 7F07F544 8C640218 */ lw $a0, 0x218($v1) +/* 0B40B8 7F07F548 24010003 */ li $at, 3 +/* 0B40BC 7F07F54C 1041000A */ beq $v0, $at, .Ljp7F07F578 +/* 0B40C0 7F07F550 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B40C4 7F07F554 44818000 */ mtc1 $at, $f16 +/* 0B40C8 7F07F558 C4720258 */ lwc1 $f18, 0x258($v1) +/* 0B40CC 7F07F55C 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B40D0 7F07F560 44813000 */ mtc1 $at, $f6 +/* 0B40D4 7F07F564 46128101 */ sub.s $f4, $f16, $f18 +/* 0B40D8 7F07F568 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B40DC 7F07F56C 44815000 */ mtc1 $at, $f10 +/* 0B40E0 7F07F570 46062202 */ mul.s $f8, $f4, $f6 +/* 0B40E4 7F07F574 460A4383 */ div.s $f14, $f8, $f10 +.Ljp7F07F578: +/* 0B40E8 7F07F578 10800004 */ beqz $a0, .Ljp7F07F58C +/* 0B40EC 7F07F57C 24010002 */ li $at, 2 +/* 0B40F0 7F07F580 10810002 */ beq $a0, $at, .Ljp7F07F58C +/* 0B40F4 7F07F584 24010003 */ li $at, 3 +/* 0B40F8 7F07F588 1481001A */ bne $a0, $at, .Ljp7F07F5F4 +.Ljp7F07F58C: +/* 0B40FC 7F07F58C 24040001 */ li $a0, 1 +/* 0B4100 7F07F590 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B4104 7F07F594 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B4108 7F07F598 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B410C 7F07F59C C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B4110 7F07F5A0 44818000 */ mtc1 $at, $f16 +/* 0B4114 7F07F5A4 46000306 */ mov.s $f12, $f0 +/* 0B4118 7F07F5A8 46107081 */ sub.s $f2, $f14, $f16 +/* 0B411C 7F07F5AC 4602003C */ c.lt.s $f0, $f2 +/* 0B4120 7F07F5B0 00000000 */ nop +/* 0B4124 7F07F5B4 45020003 */ bc1fl .Ljp7F07F5C4 +/* 0B4128 7F07F5B8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0B412C 7F07F5BC 46001306 */ mov.s $f12, $f2 +/* 0B4130 7F07F5C0 E7AC002C */ swc1 $f12, 0x2c($sp) +.Ljp7F07F5C4: +/* 0B4134 7F07F5C4 0FC1F98D */ jal sub_GAME_7F07E010 +/* 0B4138 7F07F5C8 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B413C 7F07F5CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B4140 7F07F5D0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0B4144 7F07F5D4 44819000 */ mtc1 $at, $f18 +/* 0B4148 7F07F5D8 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B414C 7F07F5DC 46126000 */ add.s $f0, $f12, $f18 +/* 0B4150 7F07F5E0 4600703C */ c.lt.s $f14, $f0 +/* 0B4154 7F07F5E4 00000000 */ nop +/* 0B4158 7F07F5E8 45000002 */ bc1f .Ljp7F07F5F4 +/* 0B415C 7F07F5EC 00000000 */ nop +/* 0B4160 7F07F5F0 46000386 */ mov.s $f14, $f0 +.Ljp7F07F5F4: +/* 0B4164 7F07F5F4 0FC1FBAF */ jal sub_GAME_7F07E8B0 +/* 0B4168 7F07F5F8 46007306 */ mov.s $f12, $f14 +/* 0B416C 7F07F5FC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4170 7F07F600 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4174 7F07F604 8C620220 */ lw $v0, 0x220($v1) +.Ljp7F07F608: +/* 0B4178 7F07F608 24010003 */ li $at, 3 +/* 0B417C 7F07F60C 10400003 */ beqz $v0, .Ljp7F07F61C +/* 0B4180 7F07F610 00000000 */ nop +/* 0B4184 7F07F614 54410008 */ bnel $v0, $at, .Ljp7F07F638 +/* 0B4188 7F07F618 240C0001 */ li $t4, 1 +.Ljp7F07F61C: +/* 0B418C 7F07F61C 0FC1F9A3 */ jal sub_GAME_7F07E068 +/* 0B4190 7F07F620 00000000 */ nop +/* 0B4194 7F07F624 10400009 */ beqz $v0, .Ljp7F07F64C +/* 0B4198 7F07F628 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B419C 7F07F62C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41A0 7F07F630 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41A4 7F07F634 240C0001 */ li $t4, 1 +.Ljp7F07F638: +/* 0B41A8 7F07F638 AC6C0200 */ sw $t4, 0x200($v1) +/* 0B41AC 7F07F63C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41B0 7F07F640 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41B4 7F07F644 1000000E */ b .Ljp7F07F680 +/* 0B41B8 7F07F648 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F64C: +/* 0B41BC 7F07F64C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B41C0 7F07F650 240D0004 */ li $t5, 4 +/* 0B41C4 7F07F654 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B41C8 7F07F658 ADCD01C8 */ sw $t5, 0x1c8($t6) +/* 0B41CC 7F07F65C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B41D0 7F07F660 240F0001 */ li $t7, 1 +/* 0B41D4 7F07F664 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B41D8 7F07F668 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B41DC 7F07F66C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B41E0 7F07F670 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41E4 7F07F674 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B41E8 7F07F678 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41EC 7F07F67C 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F680: +/* 0B41F0 7F07F680 24010004 */ li $at, 4 +.Ljp7F07F684: +/* 0B41F4 7F07F684 5441002F */ bnel $v0, $at, .Ljp7F07F744 +/* 0B41F8 7F07F688 24010005 */ li $at, 5 +/* 0B41FC 7F07F68C 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B4200 7F07F690 24010001 */ li $at, 1 +/* 0B4204 7F07F694 1501000B */ bne $t0, $at, .Ljp7F07F6C4 +/* 0B4208 7F07F698 00000000 */ nop +/* 0B420C 7F07F69C 8C69021C */ lw $t1, 0x21c($v1) +/* 0B4210 7F07F6A0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4214 7F07F6A4 240500ED */ li $a1, 237 +/* 0B4218 7F07F6A8 11200006 */ beqz $t1, .Ljp7F07F6C4 +/* 0B421C 7F07F6AC 00003025 */ move $a2, $zero +/* 0B4220 7F07F6B0 0C002386 */ jal play_sfx_a1 +/* 0B4224 7F07F6B4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B4228 7F07F6B8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B422C 7F07F6BC 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B4230 7F07F6C0 AD40021C */ sw $zero, 0x21c($t2) +.Ljp7F07F6C4: +/* 0B4234 7F07F6C4 0FC1FAD4 */ jal zoom_to_watch_on_open +/* 0B4238 7F07F6C8 00000000 */ nop +/* 0B423C 7F07F6CC 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0B4240 7F07F6D0 00000000 */ nop +/* 0B4244 7F07F6D4 10400009 */ beqz $v0, .Ljp7F07F6FC +/* 0B4248 7F07F6D8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B424C 7F07F6DC 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0B4250 7F07F6E0 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0B4254 7F07F6E4 240B0001 */ li $t3, 1 +/* 0B4258 7F07F6E8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B425C 7F07F6EC AD8B0200 */ sw $t3, 0x200($t4) +/* 0B4260 7F07F6F0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4264 7F07F6F4 10000012 */ b .Ljp7F07F740 +/* 0B4268 7F07F6F8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F6FC: +/* 0B426C 7F07F6FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4270 7F07F700 240D0005 */ li $t5, 5 +/* 0B4274 7F07F704 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4278 7F07F708 ADCD01C8 */ sw $t5, 0x1c8($t6) +/* 0B427C 7F07F70C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4280 7F07F710 240F0001 */ li $t7, 1 +/* 0B4284 7F07F714 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4288 7F07F718 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B428C 7F07F71C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B4290 7F07F720 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B4294 7F07F724 24080001 */ li $t0, 1 +/* 0B4298 7F07F728 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B429C 7F07F72C 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0B42A0 7F07F730 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42A4 7F07F734 AD28021C */ sw $t0, 0x21c($t1) +/* 0B42A8 7F07F738 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42AC 7F07F73C 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F740: +/* 0B42B0 7F07F740 24010005 */ li $at, 5 +.Ljp7F07F744: +/* 0B42B4 7F07F744 5441000F */ bnel $v0, $at, .Ljp7F07F784 +/* 0B42B8 7F07F748 2401000C */ li $at, 12 +/* 0B42BC 7F07F74C 8C6A01C0 */ lw $t2, 0x1c0($v1) +/* 0B42C0 7F07F750 24010001 */ li $at, 1 +/* 0B42C4 7F07F754 55410006 */ bnel $t2, $at, .Ljp7F07F770 +/* 0B42C8 7F07F758 240B0001 */ li $t3, 1 +/* 0B42CC 7F07F75C 0FC307F0 */ jal sub_GAME_7F0C1310 +/* 0B42D0 7F07F760 00000000 */ nop +/* 0B42D4 7F07F764 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42D8 7F07F768 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42DC 7F07F76C 240B0001 */ li $t3, 1 +.Ljp7F07F770: +/* 0B42E0 7F07F770 AC6B0200 */ sw $t3, 0x200($v1) +/* 0B42E4 7F07F774 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42E8 7F07F778 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42EC 7F07F77C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B42F0 7F07F780 2401000C */ li $at, 12 +.Ljp7F07F784: +/* 0B42F4 7F07F784 14410018 */ bne $v0, $at, .Ljp7F07F7E8 +/* 0B42F8 7F07F788 240C0001 */ li $t4, 1 +/* 0B42FC 7F07F78C AC6C0200 */ sw $t4, 0x200($v1) +/* 0B4300 7F07F790 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4304 7F07F794 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4308 7F07F798 240E0006 */ li $t6, 6 +/* 0B430C 7F07F79C 240F0001 */ li $t7, 1 +/* 0B4310 7F07F7A0 8C6D01C0 */ lw $t5, 0x1c0($v1) +/* 0B4314 7F07F7A4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4318 7F07F7A8 29A10003 */ slti $at, $t5, 3 +/* 0B431C 7F07F7AC 5420000F */ bnezl $at, .Ljp7F07F7EC +/* 0B4320 7F07F7B0 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B4324 7F07F7B4 AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B4328 7F07F7B8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B432C 7F07F7BC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4330 7F07F7C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4334 7F07F7C4 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B4338 7F07F7C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B433C 7F07F7CC 240500EE */ li $a1, 238 +/* 0B4340 7F07F7D0 00003025 */ move $a2, $zero +/* 0B4344 7F07F7D4 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B4348 7F07F7D8 0C002386 */ jal play_sfx_a1 +/* 0B434C 7F07F7DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B4350 7F07F7E0 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4354 7F07F7E4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F07F7E8: +/* 0B4358 7F07F7E8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F7EC: +/* 0B435C 7F07F7EC 24010006 */ li $at, 6 +/* 0B4360 7F07F7F0 5441002F */ bnel $v0, $at, .Ljp7F07F8B0 +/* 0B4364 7F07F7F4 24010007 */ li $at, 7 +/* 0B4368 7F07F7F8 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B436C 7F07F7FC 24010001 */ li $at, 1 +/* 0B4370 7F07F800 1501000D */ bne $t0, $at, .Ljp7F07F838 +/* 0B4374 7F07F804 00000000 */ nop +/* 0B4378 7F07F808 0FC1FAEE */ jal zoom_from_watch_on_exit +/* 0B437C 7F07F80C 00000000 */ nop +/* 0B4380 7F07F810 8FA9001C */ lw $t1, 0x1c($sp) +/* 0B4384 7F07F814 00002025 */ move $a0, $zero +/* 0B4388 7F07F818 11200005 */ beqz $t1, .Ljp7F07F830 +/* 0B438C 7F07F81C 00000000 */ nop +/* 0B4390 7F07F820 0FC177C8 */ jal draw_item_in_hand +/* 0B4394 7F07F824 00002825 */ move $a1, $zero +/* 0B4398 7F07F828 10000003 */ b .Ljp7F07F838 +/* 0B439C 7F07F82C 00000000 */ nop +.Ljp7F07F830: +/* 0B43A0 7F07F830 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B43A4 7F07F834 00002025 */ move $a0, $zero +.Ljp7F07F838: +/* 0B43A8 7F07F838 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0B43AC 7F07F83C 00000000 */ nop +/* 0B43B0 7F07F840 10400009 */ beqz $v0, .Ljp7F07F868 +/* 0B43B4 7F07F844 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B43B8 7F07F848 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0B43BC 7F07F84C 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0B43C0 7F07F850 240A0001 */ li $t2, 1 +/* 0B43C4 7F07F854 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B43C8 7F07F858 AD6A0200 */ sw $t2, 0x200($t3) +/* 0B43CC 7F07F85C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B43D0 7F07F860 10000012 */ b .Ljp7F07F8AC +/* 0B43D4 7F07F864 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F868: +/* 0B43D8 7F07F868 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B43DC 7F07F86C 240C0007 */ li $t4, 7 +/* 0B43E0 7F07F870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B43E4 7F07F874 ADAC01C8 */ sw $t4, 0x1c8($t5) +/* 0B43E8 7F07F878 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B43EC 7F07F87C 240E0001 */ li $t6, 1 +/* 0B43F0 7F07F880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B43F4 7F07F884 ADEE01C0 */ sw $t6, 0x1c0($t7) +/* 0B43F8 7F07F888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B43FC 7F07F88C 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0B4400 7F07F890 24190001 */ li $t9, 1 +/* 0B4404 7F07F894 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0B4408 7F07F898 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0B440C 7F07F89C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4410 7F07F8A0 AD19021C */ sw $t9, 0x21c($t0) +/* 0B4414 7F07F8A4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4418 7F07F8A8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F8AC: +/* 0B441C 7F07F8AC 24010007 */ li $at, 7 +.Ljp7F07F8B0: +/* 0B4420 7F07F8B0 5441003F */ bnel $v0, $at, .Ljp7F07F9B0 +/* 0B4424 7F07F8B4 24010008 */ li $at, 8 +/* 0B4428 7F07F8B8 8C6901C0 */ lw $t1, 0x1c0($v1) +/* 0B442C 7F07F8BC 24010001 */ li $at, 1 +/* 0B4430 7F07F8C0 15210024 */ bne $t1, $at, .Ljp7F07F954 +/* 0B4434 7F07F8C4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B4438 7F07F8C8 44817000 */ mtc1 $at, $f14 +/* 0B443C 7F07F8CC 00002025 */ move $a0, $zero +/* 0B4440 7F07F8D0 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B4444 7F07F8D4 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B4448 7F07F8D8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B444C 7F07F8DC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4450 7F07F8E0 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0B4454 7F07F8E4 46000306 */ mov.s $f12, $f0 +/* 0B4458 7F07F8E8 8C620220 */ lw $v0, 0x220($v1) +/* 0B445C 7F07F8EC 24010003 */ li $at, 3 +/* 0B4460 7F07F8F0 5040000A */ beql $v0, $zero, .Ljp7F07F91C +/* 0B4464 7F07F8F4 3C0141A0 */ lui $at, 0x41a0 +/* 0B4468 7F07F8F8 10410007 */ beq $v0, $at, .Ljp7F07F918 +/* 0B446C 7F07F8FC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B4470 7F07F900 44813000 */ mtc1 $at, $f6 +/* 0B4474 7F07F904 C4640258 */ lwc1 $f4, 0x258($v1) +/* 0B4478 7F07F908 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B447C 7F07F90C 44815000 */ mtc1 $at, $f10 +/* 0B4480 7F07F910 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4484 7F07F914 460A4383 */ div.s $f14, $f8, $f10 +.Ljp7F07F918: +/* 0B4488 7F07F918 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.Ljp7F07F91C: +/* 0B448C 7F07F91C 44818000 */ mtc1 $at, $f16 +/* 0B4490 7F07F920 00000000 */ nop +/* 0B4494 7F07F924 46107080 */ add.s $f2, $f14, $f16 +/* 0B4498 7F07F928 4602003C */ c.lt.s $f0, $f2 +/* 0B449C 7F07F92C 00000000 */ nop +/* 0B44A0 7F07F930 45000002 */ bc1f .Ljp7F07F93C +/* 0B44A4 7F07F934 00000000 */ nop +/* 0B44A8 7F07F938 46001306 */ mov.s $f12, $f2 +.Ljp7F07F93C: +/* 0B44AC 7F07F93C 0FC1F998 */ jal sub_GAME_7F07E03C +/* 0B44B0 7F07F940 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B44B4 7F07F944 0FC1FBC7 */ jal sub_GAME_7F07E910 +/* 0B44B8 7F07F948 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0B44BC 7F07F94C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B44C0 7F07F950 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F07F954: +/* 0B44C4 7F07F954 8C620220 */ lw $v0, 0x220($v1) +/* 0B44C8 7F07F958 24010003 */ li $at, 3 +/* 0B44CC 7F07F95C 240B0008 */ li $t3, 8 +/* 0B44D0 7F07F960 10400008 */ beqz $v0, .Ljp7F07F984 +/* 0B44D4 7F07F964 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B44D8 7F07F968 10410006 */ beq $v0, $at, .Ljp7F07F984 +/* 0B44DC 7F07F96C 240A0001 */ li $t2, 1 +/* 0B44E0 7F07F970 AC6A0200 */ sw $t2, 0x200($v1) +/* 0B44E4 7F07F974 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B44E8 7F07F978 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B44EC 7F07F97C 1000000B */ b .Ljp7F07F9AC +/* 0B44F0 7F07F980 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F984: +/* 0B44F4 7F07F984 AC6B01C8 */ sw $t3, 0x1c8($v1) +/* 0B44F8 7F07F988 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B44FC 7F07F98C 240C0001 */ li $t4, 1 +/* 0B4500 7F07F990 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B4504 7F07F994 ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B4508 7F07F998 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B450C 7F07F99C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4510 7F07F9A0 ADC001C4 */ sw $zero, 0x1c4($t6) +/* 0B4514 7F07F9A4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4518 7F07F9A8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F9AC: +/* 0B451C 7F07F9AC 24010008 */ li $at, 8 +.Ljp7F07F9B0: +/* 0B4520 7F07F9B0 14410069 */ bne $v0, $at, .Ljp7F07FB58 +/* 0B4524 7F07F9B4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B4528 7F07F9B8 AC600200 */ sw $zero, 0x200($v1) +/* 0B452C 7F07F9BC 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4530 7F07F9C0 24010001 */ li $at, 1 +/* 0B4534 7F07F9C4 8DF801C0 */ lw $t8, 0x1c0($t7) +/* 0B4538 7F07F9C8 17010028 */ bne $t8, $at, .Ljp7F07FA6C +/* 0B453C 7F07F9CC 00000000 */ nop +/* 0B4540 7F07F9D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4544 7F07F9D4 24040001 */ li $a0, 1 +/* 0B4548 7F07F9D8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B454C 7F07F9DC 0FC177BC */ jal get_item_in_hand +/* 0B4550 7F07F9E0 24040001 */ li $a0, 1 +/* 0B4554 7F07F9E4 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B4558 7F07F9E8 5059000B */ beql $v0, $t9, .Ljp7F07FA18 +/* 0B455C 7F07F9EC 8FA8003C */ lw $t0, 0x3c($sp) +/* 0B4560 7F07F9F0 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4564 7F07F9F4 24040001 */ li $a0, 1 +/* 0B4568 7F07F9F8 50400007 */ beql $v0, $zero, .Ljp7F07FA18 +/* 0B456C 7F07F9FC 8FA8003C */ lw $t0, 0x3c($sp) +/* 0B4570 7F07FA00 0FC177BC */ jal get_item_in_hand +/* 0B4574 7F07FA04 24040001 */ li $a0, 1 +/* 0B4578 7F07FA08 24040001 */ li $a0, 1 +/* 0B457C 7F07FA0C 0FC177C8 */ jal draw_item_in_hand +/* 0B4580 7F07FA10 00402825 */ move $a1, $v0 +/* 0B4584 7F07FA14 8FA8003C */ lw $t0, 0x3c($sp) +.Ljp7F07FA18: +/* 0B4588 7F07FA18 1100004F */ beqz $t0, .Ljp7F07FB58 +/* 0B458C 7F07FA1C 00000000 */ nop +/* 0B4590 7F07FA20 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4594 7F07FA24 00002025 */ move $a0, $zero +/* 0B4598 7F07FA28 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B459C 7F07FA2C 0FC177BC */ jal get_item_in_hand +/* 0B45A0 7F07FA30 00002025 */ move $a0, $zero +/* 0B45A4 7F07FA34 8FA9001C */ lw $t1, 0x1c($sp) +/* 0B45A8 7F07FA38 10490047 */ beq $v0, $t1, .Ljp7F07FB58 +/* 0B45AC 7F07FA3C 00000000 */ nop +/* 0B45B0 7F07FA40 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B45B4 7F07FA44 00002025 */ move $a0, $zero +/* 0B45B8 7F07FA48 10400043 */ beqz $v0, .Ljp7F07FB58 +/* 0B45BC 7F07FA4C 00000000 */ nop +/* 0B45C0 7F07FA50 0FC177BC */ jal get_item_in_hand +/* 0B45C4 7F07FA54 00002025 */ move $a0, $zero +/* 0B45C8 7F07FA58 00002025 */ move $a0, $zero +/* 0B45CC 7F07FA5C 0FC177C8 */ jal draw_item_in_hand +/* 0B45D0 7F07FA60 00402825 */ move $a1, $v0 +/* 0B45D4 7F07FA64 1000003C */ b .Ljp7F07FB58 +/* 0B45D8 7F07FA68 00000000 */ nop +.Ljp7F07FA6C: +/* 0B45DC 7F07FA6C 0FC1F9A3 */ jal sub_GAME_7F07E068 +/* 0B45E0 7F07FA70 00000000 */ nop +/* 0B45E4 7F07FA74 14400038 */ bnez $v0, .Ljp7F07FB58 +/* 0B45E8 7F07FA78 00000000 */ nop +/* 0B45EC 7F07FA7C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B45F0 7F07FA80 24040001 */ li $a0, 1 +/* 0B45F4 7F07FA84 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B45F8 7F07FA88 0FC177BC */ jal get_item_in_hand +/* 0B45FC 7F07FA8C 24040001 */ li $a0, 1 +/* 0B4600 7F07FA90 8FAA001C */ lw $t2, 0x1c($sp) +/* 0B4604 7F07FA94 144A0030 */ bne $v0, $t2, .Ljp7F07FB58 +/* 0B4608 7F07FA98 00000000 */ nop +/* 0B460C 7F07FA9C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4610 7F07FAA0 24040001 */ li $a0, 1 +/* 0B4614 7F07FAA4 1040002C */ beqz $v0, .Ljp7F07FB58 +/* 0B4618 7F07FAA8 8FAB003C */ lw $t3, 0x3c($sp) +/* 0B461C 7F07FAAC 1160000D */ beqz $t3, .Ljp7F07FAE4 +/* 0B4620 7F07FAB0 00000000 */ nop +/* 0B4624 7F07FAB4 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4628 7F07FAB8 00002025 */ move $a0, $zero +/* 0B462C 7F07FABC AFA20018 */ sw $v0, 0x18($sp) +/* 0B4630 7F07FAC0 0FC177BC */ jal get_item_in_hand +/* 0B4634 7F07FAC4 00002025 */ move $a0, $zero +/* 0B4638 7F07FAC8 8FAC0018 */ lw $t4, 0x18($sp) +/* 0B463C 7F07FACC 144C0022 */ bne $v0, $t4, .Ljp7F07FB58 +/* 0B4640 7F07FAD0 00000000 */ nop +/* 0B4644 7F07FAD4 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4648 7F07FAD8 00002025 */ move $a0, $zero +/* 0B464C 7F07FADC 1040001E */ beqz $v0, .Ljp7F07FB58 +/* 0B4650 7F07FAE0 00000000 */ nop +.Ljp7F07FAE4: +/* 0B4654 7F07FAE4 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B4658 7F07FAE8 24040001 */ li $a0, 1 +/* 0B465C 7F07FAEC 8FAD003C */ lw $t5, 0x3c($sp) +/* 0B4660 7F07FAF0 51A00004 */ beql $t5, $zero, .Ljp7F07FB04 +/* 0B4664 7F07FAF4 24040008 */ li $a0, 8 +/* 0B4668 7F07FAF8 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B466C 7F07FAFC 00002025 */ move $a0, $zero +/* 0B4670 7F07FB00 24040008 */ li $a0, 8 +.Ljp7F07FB04: +/* 0B4674 7F07FB04 0FC1AAE5 */ jal set_unset_bitflags +/* 0B4678 7F07FB08 24050001 */ li $a1, 1 +/* 0B467C 7F07FB0C 24040004 */ li $a0, 4 +/* 0B4680 7F07FB10 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B4684 7F07FB14 24050001 */ li $a1, 1 +/* 0B4688 7F07FB18 0FC22AA6 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B468C 7F07FB1C 24040001 */ li $a0, 1 +/* 0B4690 7F07FB20 0FC22C41 */ jal sub_GAME_7F08A928 +/* 0B4694 7F07FB24 24040001 */ li $a0, 1 +/* 0B4698 7F07FB28 24040004 */ li $a0, 4 +/* 0B469C 7F07FB2C 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B46A0 7F07FB30 24050001 */ li $a1, 1 +/* 0B46A4 7F07FB34 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B46A8 7F07FB38 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B46AC 7F07FB3C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B46B0 7F07FB40 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B46B4 7F07FB44 ADC001C8 */ sw $zero, 0x1c8($t6) +/* 0B46B8 7F07FB48 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B46BC 7F07FB4C ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B46C0 7F07FB50 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B46C4 7F07FB54 AF0001C4 */ sw $zero, 0x1c4($t8) +.Ljp7F07FB58: +/* 0B46C8 7F07FB58 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B46CC 7F07FB5C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B46D0 7F07FB60 24010009 */ li $at, 9 +/* 0B46D4 7F07FB64 24040001 */ li $a0, 1 +/* 0B46D8 7F07FB68 8C7901C8 */ lw $t9, 0x1c8($v1) +/* 0B46DC 7F07FB6C 17210023 */ bne $t9, $at, .Ljp7F07FBFC +/* 0B46E0 7F07FB70 00000000 */ nop +/* 0B46E4 7F07FB74 0FC177BC */ jal get_item_in_hand +/* 0B46E8 7F07FB78 AC600200 */ sw $zero, 0x200($v1) +/* 0B46EC 7F07FB7C AFA2001C */ sw $v0, 0x1c($sp) +/* 0B46F0 7F07FB80 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B46F4 7F07FB84 24040001 */ li $a0, 1 +/* 0B46F8 7F07FB88 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B46FC 7F07FB8C 1048001B */ beq $v0, $t0, .Ljp7F07FBFC +/* 0B4700 7F07FB90 00000000 */ nop +/* 0B4704 7F07FB94 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4708 7F07FB98 24040001 */ li $a0, 1 +/* 0B470C 7F07FB9C 10400017 */ beqz $v0, .Ljp7F07FBFC +/* 0B4710 7F07FBA0 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B4714 7F07FBA4 1120000C */ beqz $t1, .Ljp7F07FBD8 +/* 0B4718 7F07FBA8 00000000 */ nop +/* 0B471C 7F07FBAC 0FC177BC */ jal get_item_in_hand +/* 0B4720 7F07FBB0 00002025 */ move $a0, $zero +/* 0B4724 7F07FBB4 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4728 7F07FBB8 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B472C 7F07FBBC 00002025 */ move $a0, $zero +/* 0B4730 7F07FBC0 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B4734 7F07FBC4 104A000D */ beq $v0, $t2, .Ljp7F07FBFC +/* 0B4738 7F07FBC8 00000000 */ nop +/* 0B473C 7F07FBCC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4740 7F07FBD0 00002025 */ move $a0, $zero +/* 0B4744 7F07FBD4 10400009 */ beqz $v0, .Ljp7F07FBFC +.Ljp7F07FBD8: +/* 0B4748 7F07FBD8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B474C 7F07FBDC 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0B4750 7F07FBE0 8C4C0000 */ lw $t4, ($v0) +/* 0B4754 7F07FBE4 240B0008 */ li $t3, 8 +/* 0B4758 7F07FBE8 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B475C 7F07FBEC 8C4D0000 */ lw $t5, ($v0) +/* 0B4760 7F07FBF0 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4764 7F07FBF4 8C4E0000 */ lw $t6, ($v0) +/* 0B4768 7F07FBF8 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07FBFC: +/* 0B476C 7F07FBFC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4770 7F07FC00 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4774 7F07FC04 2401000A */ li $at, 10 +/* 0B4778 7F07FC08 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B477C 7F07FC0C 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B4780 7F07FC10 15E1002D */ bne $t7, $at, .Ljp7F07FCC8 +/* 0B4784 7F07FC14 00000000 */ nop +/* 0B4788 7F07FC18 AC600200 */ sw $zero, 0x200($v1) +/* 0B478C 7F07FC1C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4790 7F07FC20 24010001 */ li $at, 1 +/* 0B4794 7F07FC24 8F1901C0 */ lw $t9, 0x1c0($t8) +/* 0B4798 7F07FC28 17210005 */ bne $t9, $at, .Ljp7F07FC40 +/* 0B479C 7F07FC2C 00000000 */ nop +/* 0B47A0 7F07FC30 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B47A4 7F07FC34 00002025 */ move $a0, $zero +/* 0B47A8 7F07FC38 0FC1F998 */ jal sub_GAME_7F07E03C +/* 0B47AC 7F07FC3C 46000306 */ mov.s $f12, $f0 +.Ljp7F07FC40: +/* 0B47B0 7F07FC40 0FC177BC */ jal get_item_in_hand +/* 0B47B4 7F07FC44 24040001 */ li $a0, 1 +/* 0B47B8 7F07FC48 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B47BC 7F07FC4C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B47C0 7F07FC50 24040001 */ li $a0, 1 +/* 0B47C4 7F07FC54 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B47C8 7F07FC58 1048001B */ beq $v0, $t0, .Ljp7F07FCC8 +/* 0B47CC 7F07FC5C 00000000 */ nop +/* 0B47D0 7F07FC60 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B47D4 7F07FC64 24040001 */ li $a0, 1 +/* 0B47D8 7F07FC68 10400017 */ beqz $v0, .Ljp7F07FCC8 +/* 0B47DC 7F07FC6C 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B47E0 7F07FC70 1120000C */ beqz $t1, .Ljp7F07FCA4 +/* 0B47E4 7F07FC74 00000000 */ nop +/* 0B47E8 7F07FC78 0FC177BC */ jal get_item_in_hand +/* 0B47EC 7F07FC7C 00002025 */ move $a0, $zero +/* 0B47F0 7F07FC80 AFA20018 */ sw $v0, 0x18($sp) +/* 0B47F4 7F07FC84 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B47F8 7F07FC88 00002025 */ move $a0, $zero +/* 0B47FC 7F07FC8C 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B4800 7F07FC90 104A000D */ beq $v0, $t2, .Ljp7F07FCC8 +/* 0B4804 7F07FC94 00000000 */ nop +/* 0B4808 7F07FC98 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B480C 7F07FC9C 00002025 */ move $a0, $zero +/* 0B4810 7F07FCA0 10400009 */ beqz $v0, .Ljp7F07FCC8 +.Ljp7F07FCA4: +/* 0B4814 7F07FCA4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B4818 7F07FCA8 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0B481C 7F07FCAC 8C4C0000 */ lw $t4, ($v0) +/* 0B4820 7F07FCB0 240B0008 */ li $t3, 8 +/* 0B4824 7F07FCB4 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B4828 7F07FCB8 8C4D0000 */ lw $t5, ($v0) +/* 0B482C 7F07FCBC ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4830 7F07FCC0 8C4E0000 */ lw $t6, ($v0) +/* 0B4834 7F07FCC4 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07FCC8: +/* 0B4838 7F07FCC8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B483C 7F07FCCC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4840 7F07FCD0 2401000B */ li $at, 11 +/* 0B4844 7F07FCD4 24040001 */ li $a0, 1 +/* 0B4848 7F07FCD8 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B484C 7F07FCDC 15E10024 */ bne $t7, $at, .Ljp7F07FD70 +/* 0B4850 7F07FCE0 00000000 */ nop +/* 0B4854 7F07FCE4 0FC177BC */ jal get_item_in_hand +/* 0B4858 7F07FCE8 AC600200 */ sw $zero, 0x200($v1) +/* 0B485C 7F07FCEC AFA2001C */ sw $v0, 0x1c($sp) +/* 0B4860 7F07FCF0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4864 7F07FCF4 24040001 */ li $a0, 1 +/* 0B4868 7F07FCF8 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B486C 7F07FCFC 1458001C */ bne $v0, $t8, .Ljp7F07FD70 +/* 0B4870 7F07FD00 00000000 */ nop +/* 0B4874 7F07FD04 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4878 7F07FD08 24040001 */ li $a0, 1 +/* 0B487C 7F07FD0C 10400018 */ beqz $v0, .Ljp7F07FD70 +/* 0B4880 7F07FD10 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B4884 7F07FD14 1320000C */ beqz $t9, .Ljp7F07FD48 +/* 0B4888 7F07FD18 00000000 */ nop +/* 0B488C 7F07FD1C 0FC177BC */ jal get_item_in_hand +/* 0B4890 7F07FD20 00002025 */ move $a0, $zero +/* 0B4894 7F07FD24 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4898 7F07FD28 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B489C 7F07FD2C 00002025 */ move $a0, $zero +/* 0B48A0 7F07FD30 8FA80018 */ lw $t0, 0x18($sp) +/* 0B48A4 7F07FD34 1448000E */ bne $v0, $t0, .Ljp7F07FD70 +/* 0B48A8 7F07FD38 00000000 */ nop +/* 0B48AC 7F07FD3C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B48B0 7F07FD40 00002025 */ move $a0, $zero +/* 0B48B4 7F07FD44 1040000A */ beqz $v0, .Ljp7F07FD70 +.Ljp7F07FD48: +/* 0B48B8 7F07FD48 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B48BC 7F07FD4C 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B48C0 7F07FD50 24090001 */ li $t1, 1 +/* 0B48C4 7F07FD54 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0B48C8 7F07FD58 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B48CC 7F07FD5C 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0B48D0 7F07FD60 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0B48D4 7F07FD64 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B48D8 7F07FD68 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0B48DC 7F07FD6C AD8001C4 */ sw $zero, 0x1c4($t4) +.Ljp7F07FD70: +/* 0B48E0 7F07FD70 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B48E4 7F07FD74 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B48E8 7F07FD78 2401000D */ li $at, 13 +/* 0B48EC 7F07FD7C 24040001 */ li $a0, 1 +/* 0B48F0 7F07FD80 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B48F4 7F07FD84 15A1001B */ bne $t5, $at, .Ljp7F07FDF4 +/* 0B48F8 7F07FD88 00000000 */ nop +/* 0B48FC 7F07FD8C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4900 7F07FD90 AC600200 */ sw $zero, 0x200($v1) +/* 0B4904 7F07FD94 10400017 */ beqz $v0, .Ljp7F07FDF4 +/* 0B4908 7F07FD98 00000000 */ nop +/* 0B490C 7F07FD9C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4910 7F07FDA0 00002025 */ move $a0, $zero +/* 0B4914 7F07FDA4 10400013 */ beqz $v0, .Ljp7F07FDF4 +/* 0B4918 7F07FDA8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B491C 7F07FDAC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4920 7F07FDB0 24010005 */ li $at, 5 +/* 0B4924 7F07FDB4 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B4928 7F07FDB8 1041000E */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B492C 7F07FDBC 24010006 */ li $at, 6 +/* 0B4930 7F07FDC0 1041000C */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B4934 7F07FDC4 24010007 */ li $at, 7 +/* 0B4938 7F07FDC8 1041000A */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B493C 7F07FDCC 24010008 */ li $at, 8 +/* 0B4940 7F07FDD0 10410008 */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B4944 7F07FDD4 240E0001 */ li $t6, 1 +/* 0B4948 7F07FDD8 AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B494C 7F07FDDC 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B4950 7F07FDE0 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4954 7F07FDE4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4958 7F07FDE8 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B495C 7F07FDEC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4960 7F07FDF0 AF0001C4 */ sw $zero, 0x1c4($t8) +.Ljp7F07FDF4: +/* 0B4964 7F07FDF4 0FC1F9AD */ jal sub_GAME_7F07E090 +/* 0B4968 7F07FDF8 00000000 */ nop +/* 0B496C 7F07FDFC 0FC1FBDC */ jal sub_GAME_7F07E964 +/* 0B4970 7F07FE00 00000000 */ nop +/* 0B4974 7F07FE04 0FC1FB14 */ jal sub_GAME_7F07E62C +/* 0B4978 7F07FE08 00000000 */ nop +/* 0B497C 7F07FE0C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4980 7F07FE10 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B4984 7F07FE14 8F2201C8 */ lw $v0, 0x1c8($t9) +/* 0B4988 7F07FE18 24010005 */ li $at, 5 +.Ljp7F07FE1C: +/* 0B498C 7F07FE1C 54410008 */ bnel $v0, $at, .Ljp7F07FE40 +/* 0B4990 7F07FE20 2401000C */ li $at, 12 +/* 0B4994 7F07FE24 0FC3020C */ jal set_controls_locked_flag +/* 0B4998 7F07FE28 24040001 */ li $a0, 1 +/* 0B499C 7F07FE2C 0FC29D88 */ jal sub_GAME_7F0A6A80 +/* 0B49A0 7F07FE30 00000000 */ nop +/* 0B49A4 7F07FE34 1000000B */ b .Ljp7F07FE64 +/* 0B49A8 7F07FE38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B49AC 7F07FE3C 2401000C */ li $at, 12 +.Ljp7F07FE40: +/* 0B49B0 7F07FE40 14410005 */ bne $v0, $at, .Ljp7F07FE58 +/* 0B49B4 7F07FE44 00000000 */ nop +/* 0B49B8 7F07FE48 0FC3020C */ jal set_controls_locked_flag +/* 0B49BC 7F07FE4C 24040001 */ li $a0, 1 +/* 0B49C0 7F07FE50 10000004 */ b .Ljp7F07FE64 +/* 0B49C4 7F07FE54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07FE58: +/* 0B49C8 7F07FE58 0FC3020C */ jal set_controls_locked_flag +/* 0B49CC 7F07FE5C 00002025 */ move $a0, $zero +/* 0B49D0 7F07FE60 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07FE64: +/* 0B49D4 7F07FE64 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B49D8 7F07FE68 03E00008 */ jr $ra +/* 0B49DC 7F07FE6C 00000000 */ nop +) +#endif + +#endif + + +void set_open_close_solo_watch_menu_to1(void) { + pPlayer->open_close_solo_watch_menu = 1; +} + + + + + + +#ifdef NONMATCHING +void trigger_solo_watch_menu(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005508C +.word 0x3fd9999a /*1.7*/ +glabel D_80055090 +.word 0x3f8ccccd /*1.1*/ +.text +glabel trigger_solo_watch_menu +/* 0B43A4 7F07F874 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B43A8 7F07F878 AFB40038 */ sw $s4, 0x38($sp) +/* 0B43AC 7F07F87C 3C148008 */ lui $s4, %hi(pPlayer) +/* 0B43B0 7F07F880 2694A0B0 */ addiu $s4, %lo(pPlayer) # addiu $s4, $s4, -0x5f50 +/* 0B43B4 7F07F884 8E830000 */ lw $v1, ($s4) +/* 0B43B8 7F07F888 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B43BC 7F07F88C AFB30034 */ sw $s3, 0x34($sp) +/* 0B43C0 7F07F890 AFB20030 */ sw $s2, 0x30($sp) +/* 0B43C4 7F07F894 AFB1002C */ sw $s1, 0x2c($sp) +/* 0B43C8 7F07F898 AFB00028 */ sw $s0, 0x28($sp) +/* 0B43CC 7F07F89C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B43D0 7F07F8A0 24050001 */ li $a1, 1 +/* 0B43D4 7F07F8A4 14400080 */ bnez $v0, .L7F07FAA8 +/* 0B43D8 7F07F8A8 00000000 */ nop +/* 0B43DC 7F07F8AC 148000FD */ bnez $a0, .L7F07FCA4 +/* 0B43E0 7F07F8B0 3C028003 */ lui $v0, %hi(watch_transition_time) +/* 0B43E4 7F07F8B4 3C018005 */ lui $at, %hi(D_8005508C) +/* 0B43E8 7F07F8B8 C420508C */ lwc1 $f0, %lo(D_8005508C)($at) +/* 0B43EC 7F07F8BC 244265A8 */ addiu $v0, %lo(watch_transition_time) # addiu $v0, $v0, 0x65a8 +/* 0B43F0 7F07F8C0 3C018005 */ lui $at, %hi(D_80055090) +/* 0B43F4 7F07F8C4 C4265090 */ lwc1 $f6, %lo(D_80055090)($at) +/* 0B43F8 7F07F8C8 C4440000 */ lwc1 $f4, ($v0) +/* 0B43FC 7F07F8CC 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4400 7F07F8D0 E4480000 */ swc1 $f8, ($v0) +/* 0B4404 7F07F8D4 C44A0000 */ lwc1 $f10, ($v0) +/* 0B4408 7F07F8D8 460A003C */ c.lt.s $f0, $f10 +/* 0B440C 7F07F8DC 00000000 */ nop +/* 0B4410 7F07F8E0 45000002 */ bc1f .L7F07F8EC +/* 0B4414 7F07F8E4 00000000 */ nop +/* 0B4418 7F07F8E8 E4400000 */ swc1 $f0, ($v0) +.L7F07F8EC: +/* 0B441C 7F07F8EC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4420 7F07F8F0 24040001 */ li $a0, 1 +/* 0B4424 7F07F8F4 50400013 */ beql $v0, $zero, .L7F07F944 +/* 0B4428 7F07F8F8 8E8F0000 */ lw $t7, ($s4) +/* 0B442C 7F07F8FC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4430 7F07F900 00002025 */ move $a0, $zero +/* 0B4434 7F07F904 5040000F */ beql $v0, $zero, .L7F07F944 +/* 0B4438 7F07F908 8E8F0000 */ lw $t7, ($s4) +/* 0B443C 7F07F90C 8E830000 */ lw $v1, ($s4) +/* 0B4440 7F07F910 24010005 */ li $at, 5 +/* 0B4444 7F07F914 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B4448 7F07F918 10410009 */ beq $v0, $at, .L7F07F940 +/* 0B444C 7F07F91C 24010006 */ li $at, 6 +/* 0B4450 7F07F920 10410007 */ beq $v0, $at, .L7F07F940 +/* 0B4454 7F07F924 24010007 */ li $at, 7 +/* 0B4458 7F07F928 10410005 */ beq $v0, $at, .L7F07F940 +/* 0B445C 7F07F92C 24060008 */ li $a2, 8 +/* 0B4460 7F07F930 10C20003 */ beq $a2, $v0, .L7F07F940 +/* 0B4464 7F07F934 24050001 */ li $a1, 1 +/* 0B4468 7F07F938 10000004 */ b .L7F07F94C +/* 0B446C 7F07F93C AC6501C8 */ sw $a1, 0x1c8($v1) +.L7F07F940: +/* 0B4470 7F07F940 8E8F0000 */ lw $t7, ($s4) +.L7F07F944: +/* 0B4474 7F07F944 240E000D */ li $t6, 13 +/* 0B4478 7F07F948 ADEE01C8 */ sw $t6, 0x1c8($t7) +.L7F07F94C: +/* 0B447C 7F07F94C 8E980000 */ lw $t8, ($s4) +/* 0B4480 7F07F950 AF0001C0 */ sw $zero, 0x1c0($t8) +/* 0B4484 7F07F954 8E990000 */ lw $t9, ($s4) +/* 0B4488 7F07F958 0FC1F7BF */ jal sub_GAME_7F07DEFC +/* 0B448C 7F07F95C AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B4490 7F07F960 0FC1F941 */ jal sub_GAME_7F07E504 +/* 0B4494 7F07F964 00000000 */ nop +/* 0B4498 7F07F968 0FC228BF */ jal get_BONDdata_watch_armor +/* 0B449C 7F07F96C 00000000 */ nop +/* 0B44A0 7F07F970 8E840000 */ lw $a0, ($s4) +/* 0B44A4 7F07F974 44070000 */ mfc1 $a3, $f0 +/* 0B44A8 7F07F978 2405002E */ li $a1, 46 +/* 0B44AC 7F07F97C 24060001 */ li $a2, 1 +/* 0B44B0 7F07F980 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0B44B4 7F07F984 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0B44B8 7F07F988 8E830000 */ lw $v1, ($s4) +/* 0B44BC 7F07F98C 3C018000 */ lui $at, (0x800012B8 >> 16) +/* 0B44C0 7F07F990 342112B8 */ ori $at, (0x800012B8 & 0xFFFF) # ori $at, $at, 0x12b8 +/* 0B44C4 7F07F994 2406002E */ li $a2, 46 +/* 0B44C8 7F07F998 00612821 */ addu $a1, $v1, $at +/* 0B44CC 7F07F99C 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0B44D0 7F07F9A0 246419F8 */ addiu $a0, $v1, 0x19f8 +/* 0B44D4 7F07F9A4 0FC228BB */ jal get_BONDdata_watch_health +/* 0B44D8 7F07F9A8 00000000 */ nop +/* 0B44DC 7F07F9AC 8E840000 */ lw $a0, ($s4) +/* 0B44E0 7F07F9B0 44070000 */ mfc1 $a3, $f0 +/* 0B44E4 7F07F9B4 2405002E */ li $a1, 46 +/* 0B44E8 7F07F9B8 2406FFFF */ li $a2, -1 +/* 0B44EC 7F07F9BC 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0B44F0 7F07F9C0 24841598 */ addiu $a0, $a0, 0x1598 +/* 0B44F4 7F07F9C4 8E830000 */ lw $v1, ($s4) +/* 0B44F8 7F07F9C8 3C018000 */ lui $at, (0x80001598 >> 16) +/* 0B44FC 7F07F9CC 34211598 */ ori $at, (0x80001598 & 0xFFFF) # ori $at, $at, 0x1598 +/* 0B4500 7F07F9D0 2406002E */ li $a2, 46 +/* 0B4504 7F07F9D4 00612821 */ addu $a1, $v1, $at +/* 0B4508 7F07F9D8 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0B450C 7F07F9DC 24642128 */ addiu $a0, $v1, 0x2128 +/* 0B4510 7F07F9E0 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B4514 7F07F9E4 00000000 */ nop +/* 0B4518 7F07F9E8 8E830000 */ lw $v1, ($s4) +/* 0B451C 7F07F9EC 00008025 */ move $s0, $zero +/* 0B4520 7F07F9F0 24732858 */ addiu $s3, $v1, 0x2858 +/* 0B4524 7F07F9F4 24711878 */ addiu $s1, $v1, 0x1878 +.L7F07F9F8: +/* 0B4528 7F07F9F8 24080014 */ li $t0, 20 +/* 0B452C 7F07F9FC 2409FED5 */ li $t1, -299 +/* 0B4530 7F07FA00 240A0136 */ li $t2, 310 +/* 0B4534 7F07FA04 02209025 */ move $s2, $s1 +/* 0B4538 7F07FA08 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B453C 7F07FA0C AFA90014 */ sw $t1, 0x14($sp) +/* 0B4540 7F07FA10 AFA80010 */ sw $t0, 0x10($sp) +/* 0B4544 7F07FA14 02202025 */ move $a0, $s1 +/* 0B4548 7F07FA18 02002825 */ move $a1, $s0 +/* 0B454C 7F07FA1C 00003025 */ move $a2, $zero +/* 0B4550 7F07FA20 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0B4554 7F07FA24 24070064 */ li $a3, 100 +/* 0B4558 7F07FA28 3C018000 */ lui $at, 0x8000 +/* 0B455C 7F07FA2C 00408825 */ move $s1, $v0 +/* 0B4560 7F07FA30 02412821 */ addu $a1, $s2, $at +/* 0B4564 7F07FA34 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0B4568 7F07FA38 02602025 */ move $a0, $s3 +/* 0B456C 7F07FA3C 2610007D */ addiu $s0, $s0, 0x7d +/* 0B4570 7F07FA40 24010271 */ li $at, 625 +/* 0B4574 7F07FA44 1601FFEC */ bne $s0, $at, .L7F07F9F8 +/* 0B4578 7F07FA48 00409825 */ move $s3, $v0 +/* 0B457C 7F07FA4C 3C10B800 */ lui $s0, 0xb800 +/* 0B4580 7F07FA50 AC500000 */ sw $s0, ($v0) +/* 0B4584 7F07FA54 AC400004 */ sw $zero, 4($v0) +/* 0B4588 7F07FA58 8E830000 */ lw $v1, ($s4) +/* 0B458C 7F07FA5C 240B0014 */ li $t3, 20 +/* 0B4590 7F07FA60 240CFE34 */ li $t4, -460 +/* 0B4594 7F07FA64 246419B8 */ addiu $a0, $v1, 0x19b8 +/* 0B4598 7F07FA68 00809025 */ move $s2, $a0 +/* 0B459C 7F07FA6C AFAC0014 */ sw $t4, 0x14($sp) +/* 0B45A0 7F07FA70 AFAB0010 */ sw $t3, 0x10($sp) +/* 0B45A4 7F07FA74 AFA00018 */ sw $zero, 0x18($sp) +/* 0B45A8 7F07FA78 00002825 */ move $a1, $zero +/* 0B45AC 7F07FA7C 00003025 */ move $a2, $zero +/* 0B45B0 7F07FA80 24070398 */ li $a3, 920 +/* 0B45B4 7F07FA84 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0B45B8 7F07FA88 24732998 */ addiu $s3, $v1, 0x2998 +/* 0B45BC 7F07FA8C 3C018000 */ lui $at, 0x8000 +/* 0B45C0 7F07FA90 02412821 */ addu $a1, $s2, $at +/* 0B45C4 7F07FA94 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0B45C8 7F07FA98 02602025 */ move $a0, $s3 +/* 0B45CC 7F07FA9C AC500000 */ sw $s0, ($v0) +/* 0B45D0 7F07FAA0 10000080 */ b .L7F07FCA4 +/* 0B45D4 7F07FAA4 AC400004 */ sw $zero, 4($v0) +.L7F07FAA8: +/* 0B45D8 7F07FAA8 14A20008 */ bne $a1, $v0, .L7F07FACC +/* 0B45DC 7F07FAAC 24010002 */ li $at, 2 +/* 0B45E0 7F07FAB0 240D0009 */ li $t5, 9 +/* 0B45E4 7F07FAB4 AC6D01C8 */ sw $t5, 0x1c8($v1) +/* 0B45E8 7F07FAB8 8E8E0000 */ lw $t6, ($s4) +/* 0B45EC 7F07FABC ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0B45F0 7F07FAC0 8E8F0000 */ lw $t7, ($s4) +/* 0B45F4 7F07FAC4 10000077 */ b .L7F07FCA4 +/* 0B45F8 7F07FAC8 ADE001C4 */ sw $zero, 0x1c4($t7) +.L7F07FACC: +/* 0B45FC 7F07FACC 14410008 */ bne $v0, $at, .L7F07FAF0 +/* 0B4600 7F07FAD0 24060003 */ li $a2, 3 +/* 0B4604 7F07FAD4 2418000A */ li $t8, 10 +/* 0B4608 7F07FAD8 AC7801C8 */ sw $t8, 0x1c8($v1) +/* 0B460C 7F07FADC 8E990000 */ lw $t9, ($s4) +/* 0B4610 7F07FAE0 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4614 7F07FAE4 8E880000 */ lw $t0, ($s4) +/* 0B4618 7F07FAE8 1000006E */ b .L7F07FCA4 +/* 0B461C 7F07FAEC AD0001C4 */ sw $zero, 0x1c4($t0) +.L7F07FAF0: +/* 0B4620 7F07FAF0 14C20008 */ bne $a2, $v0, .L7F07FB14 +/* 0B4624 7F07FAF4 24070004 */ li $a3, 4 +/* 0B4628 7F07FAF8 24090007 */ li $t1, 7 +/* 0B462C 7F07FAFC AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B4630 7F07FB00 8E8A0000 */ lw $t2, ($s4) +/* 0B4634 7F07FB04 AD4001C0 */ sw $zero, 0x1c0($t2) +/* 0B4638 7F07FB08 8E8B0000 */ lw $t3, ($s4) +/* 0B463C 7F07FB0C 10000065 */ b .L7F07FCA4 +/* 0B4640 7F07FB10 AD6001C4 */ sw $zero, 0x1c4($t3) +.L7F07FB14: +/* 0B4644 7F07FB14 14E20008 */ bne $a3, $v0, .L7F07FB38 +/* 0B4648 7F07FB18 24010005 */ li $at, 5 +/* 0B464C 7F07FB1C 240C0006 */ li $t4, 6 +/* 0B4650 7F07FB20 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B4654 7F07FB24 8E8D0000 */ lw $t5, ($s4) +/* 0B4658 7F07FB28 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B465C 7F07FB2C 8E8E0000 */ lw $t6, ($s4) +/* 0B4660 7F07FB30 1000005C */ b .L7F07FCA4 +/* 0B4664 7F07FB34 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07FB38: +/* 0B4668 7F07FB38 54410010 */ bnel $v0, $at, .L7F07FB7C +/* 0B466C 7F07FB3C 2401000C */ li $at, 12 +/* 0B4670 7F07FB40 0FC07549 */ jal deleteCurrentSelectedFolder +/* 0B4674 7F07FB44 00000000 */ nop +/* 0B4678 7F07FB48 0FC304D0 */ jal sub_GAME_7F0C1340 +/* 0B467C 7F07FB4C 00000000 */ nop +/* 0B4680 7F07FB50 8E980000 */ lw $t8, ($s4) +/* 0B4684 7F07FB54 240F000C */ li $t7, 12 +/* 0B4688 7F07FB58 AF0F01C8 */ sw $t7, 0x1c8($t8) +/* 0B468C 7F07FB5C 8E990000 */ lw $t9, ($s4) +/* 0B4690 7F07FB60 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4694 7F07FB64 8E880000 */ lw $t0, ($s4) +/* 0B4698 7F07FB68 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B469C 7F07FB6C 8E890000 */ lw $t1, ($s4) +/* 0B46A0 7F07FB70 1000004C */ b .L7F07FCA4 +/* 0B46A4 7F07FB74 AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0B46A8 7F07FB78 2401000C */ li $at, 12 +.L7F07FB7C: +/* 0B46AC 7F07FB7C 10410049 */ beq $v0, $at, .L7F07FCA4 +/* 0B46B0 7F07FB80 24010006 */ li $at, 6 +/* 0B46B4 7F07FB84 5441000C */ bnel $v0, $at, .L7F07FBB8 +/* 0B46B8 7F07FB88 24010007 */ li $at, 7 +/* 0B46BC 7F07FB8C 54800046 */ bnezl $a0, .L7F07FCA8 +/* 0B46C0 7F07FB90 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46C4 7F07FB94 AC6701C8 */ sw $a3, 0x1c8($v1) +/* 0B46C8 7F07FB98 8E8A0000 */ lw $t2, ($s4) +/* 0B46CC 7F07FB9C AD4001C0 */ sw $zero, 0x1c0($t2) +/* 0B46D0 7F07FBA0 8E8B0000 */ lw $t3, ($s4) +/* 0B46D4 7F07FBA4 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B46D8 7F07FBA8 AD6001C4 */ sw $zero, 0x1c4($t3) +/* 0B46DC 7F07FBAC 1000003E */ b .L7F07FCA8 +/* 0B46E0 7F07FBB0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46E4 7F07FBB4 24010007 */ li $at, 7 +.L7F07FBB8: +/* 0B46E8 7F07FBB8 5441000C */ bnel $v0, $at, .L7F07FBEC +/* 0B46EC 7F07FBBC 24060008 */ li $a2, 8 +/* 0B46F0 7F07FBC0 54800039 */ bnezl $a0, .L7F07FCA8 +/* 0B46F4 7F07FBC4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46F8 7F07FBC8 AC6601C8 */ sw $a2, 0x1c8($v1) +/* 0B46FC 7F07FBCC 8E8C0000 */ lw $t4, ($s4) +/* 0B4700 7F07FBD0 AD8001C0 */ sw $zero, 0x1c0($t4) +/* 0B4704 7F07FBD4 8E8D0000 */ lw $t5, ($s4) +/* 0B4708 7F07FBD8 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B470C 7F07FBDC ADA001C4 */ sw $zero, 0x1c4($t5) +/* 0B4710 7F07FBE0 10000031 */ b .L7F07FCA8 +/* 0B4714 7F07FBE4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B4718 7F07FBE8 24060008 */ li $a2, 8 +.L7F07FBEC: +/* 0B471C 7F07FBEC 14C2000B */ bne $a2, $v0, .L7F07FC1C +/* 0B4720 7F07FBF0 24010009 */ li $at, 9 +/* 0B4724 7F07FBF4 1480002B */ bnez $a0, .L7F07FCA4 +/* 0B4728 7F07FBF8 240E000B */ li $t6, 11 +/* 0B472C 7F07FBFC AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B4730 7F07FC00 8E8F0000 */ lw $t7, ($s4) +/* 0B4734 7F07FC04 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B4738 7F07FC08 8E980000 */ lw $t8, ($s4) +/* 0B473C 7F07FC0C 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B4740 7F07FC10 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0B4744 7F07FC14 10000024 */ b .L7F07FCA8 +/* 0B4748 7F07FC18 8FBF003C */ lw $ra, 0x3c($sp) +.L7F07FC1C: +/* 0B474C 7F07FC1C 5441000A */ bnel $v0, $at, .L7F07FC48 +/* 0B4750 7F07FC20 2401000A */ li $at, 10 +/* 0B4754 7F07FC24 54800020 */ bnezl $a0, .L7F07FCA8 +/* 0B4758 7F07FC28 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B475C 7F07FC2C AC6501C8 */ sw $a1, 0x1c8($v1) +/* 0B4760 7F07FC30 8E990000 */ lw $t9, ($s4) +/* 0B4764 7F07FC34 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4768 7F07FC38 8E880000 */ lw $t0, ($s4) +/* 0B476C 7F07FC3C 10000019 */ b .L7F07FCA4 +/* 0B4770 7F07FC40 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B4774 7F07FC44 2401000A */ li $at, 10 +.L7F07FC48: +/* 0B4778 7F07FC48 5441000A */ bnel $v0, $at, .L7F07FC74 +/* 0B477C 7F07FC4C 2401000B */ li $at, 11 +/* 0B4780 7F07FC50 54800015 */ bnezl $a0, .L7F07FCA8 +/* 0B4784 7F07FC54 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B4788 7F07FC58 AC6501C8 */ sw $a1, 0x1c8($v1) +/* 0B478C 7F07FC5C 8E890000 */ lw $t1, ($s4) +/* 0B4790 7F07FC60 AD2001C0 */ sw $zero, 0x1c0($t1) +/* 0B4794 7F07FC64 8E8A0000 */ lw $t2, ($s4) +/* 0B4798 7F07FC68 1000000E */ b .L7F07FCA4 +/* 0B479C 7F07FC6C AD4001C4 */ sw $zero, 0x1c4($t2) +/* 0B47A0 7F07FC70 2401000B */ li $at, 11 +.L7F07FC74: +/* 0B47A4 7F07FC74 54410008 */ bnel $v0, $at, .L7F07FC98 +/* 0B47A8 7F07FC78 2401000D */ li $at, 13 +/* 0B47AC 7F07FC7C AC6601C8 */ sw $a2, 0x1c8($v1) +/* 0B47B0 7F07FC80 8E8B0000 */ lw $t3, ($s4) +/* 0B47B4 7F07FC84 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B47B8 7F07FC88 8E8C0000 */ lw $t4, ($s4) +/* 0B47BC 7F07FC8C 10000005 */ b .L7F07FCA4 +/* 0B47C0 7F07FC90 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0B47C4 7F07FC94 2401000D */ li $at, 13 +.L7F07FC98: +/* 0B47C8 7F07FC98 54410003 */ bnel $v0, $at, .L7F07FCA8 +/* 0B47CC 7F07FC9C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B47D0 7F07FCA0 AC6001C8 */ sw $zero, 0x1c8($v1) +.L7F07FCA4: +/* 0B47D4 7F07FCA4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F07FCA8: +/* 0B47D8 7F07FCA8 8FB00028 */ lw $s0, 0x28($sp) +/* 0B47DC 7F07FCAC 8FB1002C */ lw $s1, 0x2c($sp) +/* 0B47E0 7F07FCB0 8FB20030 */ lw $s2, 0x30($sp) +/* 0B47E4 7F07FCB4 8FB30034 */ lw $s3, 0x34($sp) +/* 0B47E8 7F07FCB8 8FB40038 */ lw $s4, 0x38($sp) +/* 0B47EC 7F07FCBC 03E00008 */ jr $ra +/* 0B47F0 7F07FCC0 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07FCC4(s32 arg0) { + // Node 0 + if (arg0 == -1) + { + // Node 1 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe - global_timer_delta); + if (pPlayer->speedstrafe < -1.0f) + { + // Node 2 + pPlayer->speedstrafe = -1.0f; + } + } + else + { + // Node 3 + if (arg0 == 1) + { + // Node 4 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe + global_timer_delta); + if (1.0f < pPlayer->speedstrafe) + { + // Node 5 + pPlayer->speedstrafe = 1.0f; + } + } + else + { + // Node 6 + if (0.0f < pPlayer->speedstrafe) + { + // Node 7 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe - global_timer_delta); + if (pPlayer->speedstrafe < 0.0f) + { + // Node 8 + pPlayer->speedstrafe = 0.0f; + } + } + else + { + // Node 9 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe + global_timer_delta); + if (0.0f < pPlayer->speedstrafe) + { + // Node 10 + pPlayer->speedstrafe = 0.0f; + } + } + } + } + // Node 11 + pPlayer->speedsideways = (f32) pPlayer->speedstrafe; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07FCC4 +/* 0B47F4 7F07FCC4 2401FFFF */ li $at, -1 +/* 0B47F8 7F07FCC8 14810015 */ bne $a0, $at, .L7F07FD20 +/* 0B47FC 7F07FCCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4800 7F07FCD0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4804 7F07FCD4 8C620000 */ lw $v0, ($v1) +/* 0B4808 7F07FCD8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B480C 7F07FCDC 44811000 */ mtc1 $at, $f2 +/* 0B4810 7F07FCE0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4814 7F07FCE4 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4818 7F07FCE8 C4440170 */ lwc1 $f4, 0x170($v0) +/* 0B481C 7F07FCEC 46062201 */ sub.s $f8, $f4, $f6 +/* 0B4820 7F07FCF0 E4480170 */ swc1 $f8, 0x170($v0) +/* 0B4824 7F07FCF4 8C620000 */ lw $v0, ($v1) +/* 0B4828 7F07FCF8 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B482C 7F07FCFC 4602003C */ c.lt.s $f0, $f2 +/* 0B4830 7F07FD00 00000000 */ nop +/* 0B4834 7F07FD04 45000043 */ bc1f .L7F07FE14 +/* 0B4838 7F07FD08 00000000 */ nop +/* 0B483C 7F07FD0C E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4840 7F07FD10 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4844 7F07FD14 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4848 7F07FD18 1000003E */ b .L7F07FE14 +/* 0B484C 7F07FD1C C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FD20: +/* 0B4850 7F07FD20 24010001 */ li $at, 1 +/* 0B4854 7F07FD24 14810016 */ bne $a0, $at, .L7F07FD80 +/* 0B4858 7F07FD28 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B485C 7F07FD2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4860 7F07FD30 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4864 7F07FD34 8C620000 */ lw $v0, ($v1) +/* 0B4868 7F07FD38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B486C 7F07FD3C 44811000 */ mtc1 $at, $f2 +/* 0B4870 7F07FD40 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4874 7F07FD44 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 0B4878 7F07FD48 C44A0170 */ lwc1 $f10, 0x170($v0) +/* 0B487C 7F07FD4C 46105480 */ add.s $f18, $f10, $f16 +/* 0B4880 7F07FD50 E4520170 */ swc1 $f18, 0x170($v0) +/* 0B4884 7F07FD54 8C620000 */ lw $v0, ($v1) +/* 0B4888 7F07FD58 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B488C 7F07FD5C 4600103C */ c.lt.s $f2, $f0 +/* 0B4890 7F07FD60 00000000 */ nop +/* 0B4894 7F07FD64 4500002B */ bc1f .L7F07FE14 +/* 0B4898 7F07FD68 00000000 */ nop +/* 0B489C 7F07FD6C E4420170 */ swc1 $f2, 0x170($v0) +/* 0B48A0 7F07FD70 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B48A4 7F07FD74 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B48A8 7F07FD78 10000026 */ b .L7F07FE14 +/* 0B48AC 7F07FD7C C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FD80: +/* 0B48B0 7F07FD80 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B48B4 7F07FD84 8C620000 */ lw $v0, ($v1) +/* 0B48B8 7F07FD88 44801000 */ mtc1 $zero, $f2 +/* 0B48BC 7F07FD8C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B48C0 7F07FD90 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B48C4 7F07FD94 4600103C */ c.lt.s $f2, $f0 +/* 0B48C8 7F07FD98 00000000 */ nop +/* 0B48CC 7F07FD9C 45000010 */ bc1f .L7F07FDE0 +/* 0B48D0 7F07FDA0 00000000 */ nop +/* 0B48D4 7F07FDA4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B48D8 7F07FDA8 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B48DC 7F07FDAC 46040181 */ sub.s $f6, $f0, $f4 +/* 0B48E0 7F07FDB0 E4460170 */ swc1 $f6, 0x170($v0) +/* 0B48E4 7F07FDB4 8C620000 */ lw $v0, ($v1) +/* 0B48E8 7F07FDB8 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B48EC 7F07FDBC 4602003C */ c.lt.s $f0, $f2 +/* 0B48F0 7F07FDC0 00000000 */ nop +/* 0B48F4 7F07FDC4 45000013 */ bc1f .L7F07FE14 +/* 0B48F8 7F07FDC8 00000000 */ nop +/* 0B48FC 7F07FDCC E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4900 7F07FDD0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4904 7F07FDD4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4908 7F07FDD8 1000000E */ b .L7F07FE14 +/* 0B490C 7F07FDDC C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FDE0: +/* 0B4910 7F07FDE0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4914 7F07FDE4 46080280 */ add.s $f10, $f0, $f8 +/* 0B4918 7F07FDE8 E44A0170 */ swc1 $f10, 0x170($v0) +/* 0B491C 7F07FDEC 8C620000 */ lw $v0, ($v1) +/* 0B4920 7F07FDF0 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B4924 7F07FDF4 4600103C */ c.lt.s $f2, $f0 +/* 0B4928 7F07FDF8 00000000 */ nop +/* 0B492C 7F07FDFC 45000005 */ bc1f .L7F07FE14 +/* 0B4930 7F07FE00 00000000 */ nop +/* 0B4934 7F07FE04 E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4938 7F07FE08 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B493C 7F07FE0C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4940 7F07FE10 C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FE14: +/* 0B4944 7F07FE14 03E00008 */ jr $ra +/* 0B4948 7F07FE18 E440016C */ swc1 $f0, 0x16c($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07FE1C(s32 arg0) { + // Node 0 + if (arg0 == 1) + { + // Node 1 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C + global_timer_delta); + if (1.0f < pPlayer->field_2A4C) + { + // Node 2 + pPlayer->field_2A4C = 1.0f; + } + } + else + { + // Node 3 + if (arg0 == -1) + { + // Node 4 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C - global_timer_delta); + if (pPlayer->field_2A4C < -1.0f) + { + // Node 5 + pPlayer->field_2A4C = -1.0f; + } + } + else + { + // Node 6 + if (0.0f < pPlayer->field_2A4C) + { + // Node 7 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C - global_timer_delta); + if (pPlayer->field_2A4C < 0.0f) + { + // Node 8 + pPlayer->field_2A4C = 0.0f; + } + } + else + { + // Node 9 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C + global_timer_delta); + if (0.0f < pPlayer->field_2A4C) + { + // Node 10 + pPlayer->field_2A4C = 0.0f; + } + } + } + } + // Node 11 + pPlayer->speedforwards = (f32) pPlayer->field_2A4C; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07FE1C +/* 0B494C 7F07FE1C 24010001 */ li $at, 1 +/* 0B4950 7F07FE20 14810015 */ bne $a0, $at, .L7F07FE78 +/* 0B4954 7F07FE24 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4958 7F07FE28 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B495C 7F07FE2C 8C620000 */ lw $v0, ($v1) +/* 0B4960 7F07FE30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B4964 7F07FE34 44811000 */ mtc1 $at, $f2 +/* 0B4968 7F07FE38 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B496C 7F07FE3C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4970 7F07FE40 C4442A4C */ lwc1 $f4, 0x2a4c($v0) +/* 0B4974 7F07FE44 46062200 */ add.s $f8, $f4, $f6 +/* 0B4978 7F07FE48 E4482A4C */ swc1 $f8, 0x2a4c($v0) +/* 0B497C 7F07FE4C 8C620000 */ lw $v0, ($v1) +/* 0B4980 7F07FE50 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4984 7F07FE54 4600103C */ c.lt.s $f2, $f0 +/* 0B4988 7F07FE58 00000000 */ nop +/* 0B498C 7F07FE5C 45000043 */ bc1f .L7F07FF6C +/* 0B4990 7F07FE60 00000000 */ nop +/* 0B4994 7F07FE64 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4998 7F07FE68 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B499C 7F07FE6C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B49A0 7F07FE70 1000003E */ b .L7F07FF6C +/* 0B49A4 7F07FE74 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FE78: +/* 0B49A8 7F07FE78 2401FFFF */ li $at, -1 +/* 0B49AC 7F07FE7C 14810016 */ bne $a0, $at, .L7F07FED8 +/* 0B49B0 7F07FE80 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B49B4 7F07FE84 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B49B8 7F07FE88 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B49BC 7F07FE8C 8C620000 */ lw $v0, ($v1) +/* 0B49C0 7F07FE90 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B49C4 7F07FE94 44811000 */ mtc1 $at, $f2 +/* 0B49C8 7F07FE98 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B49CC 7F07FE9C C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 0B49D0 7F07FEA0 C44A2A4C */ lwc1 $f10, 0x2a4c($v0) +/* 0B49D4 7F07FEA4 46105481 */ sub.s $f18, $f10, $f16 +/* 0B49D8 7F07FEA8 E4522A4C */ swc1 $f18, 0x2a4c($v0) +/* 0B49DC 7F07FEAC 8C620000 */ lw $v0, ($v1) +/* 0B49E0 7F07FEB0 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B49E4 7F07FEB4 4602003C */ c.lt.s $f0, $f2 +/* 0B49E8 7F07FEB8 00000000 */ nop +/* 0B49EC 7F07FEBC 4500002B */ bc1f .L7F07FF6C +/* 0B49F0 7F07FEC0 00000000 */ nop +/* 0B49F4 7F07FEC4 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B49F8 7F07FEC8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B49FC 7F07FECC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A00 7F07FED0 10000026 */ b .L7F07FF6C +/* 0B4A04 7F07FED4 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FED8: +/* 0B4A08 7F07FED8 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B4A0C 7F07FEDC 8C620000 */ lw $v0, ($v1) +/* 0B4A10 7F07FEE0 44801000 */ mtc1 $zero, $f2 +/* 0B4A14 7F07FEE4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4A18 7F07FEE8 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A1C 7F07FEEC 4600103C */ c.lt.s $f2, $f0 +/* 0B4A20 7F07FEF0 00000000 */ nop +/* 0B4A24 7F07FEF4 45000010 */ bc1f .L7F07FF38 +/* 0B4A28 7F07FEF8 00000000 */ nop +/* 0B4A2C 7F07FEFC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4A30 7F07FF00 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4A34 7F07FF04 46040181 */ sub.s $f6, $f0, $f4 +/* 0B4A38 7F07FF08 E4462A4C */ swc1 $f6, 0x2a4c($v0) +/* 0B4A3C 7F07FF0C 8C620000 */ lw $v0, ($v1) +/* 0B4A40 7F07FF10 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A44 7F07FF14 4602003C */ c.lt.s $f0, $f2 +/* 0B4A48 7F07FF18 00000000 */ nop +/* 0B4A4C 7F07FF1C 45000013 */ bc1f .L7F07FF6C +/* 0B4A50 7F07FF20 00000000 */ nop +/* 0B4A54 7F07FF24 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4A58 7F07FF28 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4A5C 7F07FF2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A60 7F07FF30 1000000E */ b .L7F07FF6C +/* 0B4A64 7F07FF34 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FF38: +/* 0B4A68 7F07FF38 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4A6C 7F07FF3C 46080280 */ add.s $f10, $f0, $f8 +/* 0B4A70 7F07FF40 E44A2A4C */ swc1 $f10, 0x2a4c($v0) +/* 0B4A74 7F07FF44 8C620000 */ lw $v0, ($v1) +/* 0B4A78 7F07FF48 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A7C 7F07FF4C 4600103C */ c.lt.s $f2, $f0 +/* 0B4A80 7F07FF50 00000000 */ nop +/* 0B4A84 7F07FF54 45000005 */ bc1f .L7F07FF6C +/* 0B4A88 7F07FF58 00000000 */ nop +/* 0B4A8C 7F07FF5C E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4A90 7F07FF60 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4A94 7F07FF64 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A98 7F07FF68 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FF6C: +/* 0B4A9C 7F07FF6C 03E00008 */ jr $ra +/* 0B4AA0 7F07FF70 E4400174 */ swc1 $f0, 0x174($v0) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F07FF74(f32 arg0) { + // Node 0 + if (0.0f < arg0) + { + // Node 1 + return 0.0f; + } + // Node 2 + if (arg0 >= 0.0f) + { + // Node 4 + // Node 5 + return 0.0f; + } + // Node 3 + return 0.0f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055094 +.word 0xbf333333 /*-0.69999999*/ +glabel D_80055098 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F07FF74 +/* 0B4AA4 7F07FF74 44801000 */ mtc1 $zero, $f2 +/* 0B4AA8 7F07FF78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B4AAC 7F07FF7C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4AB0 7F07FF80 460C103C */ c.lt.s $f2, $f12 +/* 0B4AB4 7F07FF84 00000000 */ nop +/* 0B4AB8 7F07FF88 4502000D */ bc1fl .L7F07FFC0 +/* 0B4ABC 7F07FF8C 4602603C */ c.lt.s $f12, $f2 +/* 0B4AC0 7F07FF90 0C001177 */ jal video_related_23 +/* 0B4AC4 7F07FF94 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4AC8 7F07FF98 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4ACC 7F07FF9C 3C018005 */ lui $at, %hi(D_80055094) +/* 0B4AD0 7F07FFA0 C4265094 */ lwc1 $f6, %lo(D_80055094)($at) +/* 0B4AD4 7F07FFA4 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B4AD8 7F07FFA8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4ADC 7F07FFAC 44815000 */ mtc1 $at, $f10 +/* 0B4AE0 7F07FFB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4AE4 7F07FFB4 10000012 */ b .L7F080000 +/* 0B4AE8 7F07FFB8 460A4003 */ div.s $f0, $f8, $f10 +/* 0B4AEC 7F07FFBC 4602603C */ c.lt.s $f12, $f2 +.L7F07FFC0: +/* 0B4AF0 7F07FFC0 00000000 */ nop +/* 0B4AF4 7F07FFC4 4502000E */ bc1fl .L7F080000 +/* 0B4AF8 7F07FFC8 46001006 */ mov.s $f0, $f2 +/* 0B4AFC 7F07FFCC 0C001177 */ jal video_related_23 +/* 0B4B00 7F07FFD0 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4B04 7F07FFD4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4B08 7F07FFD8 3C018005 */ lui $at, %hi(D_80055098) +/* 0B4B0C 7F07FFDC C4245098 */ lwc1 $f4, %lo(D_80055098)($at) +/* 0B4B10 7F07FFE0 46006407 */ neg.s $f16, $f12 +/* 0B4B14 7F07FFE4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4B18 7F07FFE8 46100482 */ mul.s $f18, $f0, $f16 +/* 0B4B1C 7F07FFEC 44814000 */ mtc1 $at, $f8 +/* 0B4B20 7F07FFF0 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4B24 7F07FFF4 10000002 */ b .L7F080000 +/* 0B4B28 7F07FFF8 46083003 */ div.s $f0, $f6, $f8 +/* 0B4B2C 7F07FFFC 46001006 */ mov.s $f0, $f2 +.L7F080000: +/* 0B4B30 7F080000 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4B34 7F080004 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B4B38 7F080008 03E00008 */ jr $ra +/* 0B4B3C 7F08000C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080010(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005509C +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550A0 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550A4 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550A8 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550AC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550B0 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F080010 +/* 0B4B40 7F080010 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B4B44 7F080014 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4B48 7F080018 0C001177 */ jal video_related_23 +/* 0B4B4C 7F08001C E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0B4B50 7F080020 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4B54 7F080024 44812000 */ mtc1 $at, $f4 +/* 0B4B58 7F080028 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0B4B5C 7F08002C 46040383 */ div.s $f14, $f0, $f4 +/* 0B4B60 7F080030 0FC1FFDD */ jal sub_GAME_7F07FF74 +/* 0B4B64 7F080034 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B4B68 7F080038 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0B4B6C 7F08003C 44806000 */ mtc1 $zero, $f12 +/* 0B4B70 7F080040 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4B74 7F080044 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0B4B78 7F080048 4602603C */ c.lt.s $f12, $f2 +/* 0B4B7C 7F08004C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4B80 7F080050 45020023 */ bc1fl .L7F0800E0 +/* 0B4B84 7F080054 460C103C */ c.lt.s $f2, $f12 +/* 0B4B88 7F080058 8C620000 */ lw $v0, ($v1) +/* 0B4B8C 7F08005C 3C018005 */ lui $at, %hi(D_800550A0) +/* 0B4B90 7F080060 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4B94 7F080064 4602603C */ c.lt.s $f12, $f2 +/* 0B4B98 7F080068 00000000 */ nop +/* 0B4B9C 7F08006C 4500000B */ bc1f .L7F08009C +/* 0B4BA0 7F080070 00000000 */ nop +/* 0B4BA4 7F080074 3C018005 */ lui $at, %hi(D_8005509C) +/* 0B4BA8 7F080078 C426509C */ lwc1 $f6, %lo(D_8005509C)($at) +/* 0B4BAC 7F08007C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4BB0 7F080080 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4BB4 7F080084 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4BB8 7F080088 00000000 */ nop +/* 0B4BBC 7F08008C 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4BC0 7F080090 46101481 */ sub.s $f18, $f2, $f16 +/* 0B4BC4 7F080094 10000009 */ b .L7F0800BC +/* 0B4BC8 7F080098 E4520160 */ swc1 $f18, 0x160($v0) +.L7F08009C: +/* 0B4BCC 7F08009C C42450A0 */ lwc1 $f4, %lo(D_800550A0)($at) +/* 0B4BD0 7F0800A0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4BD4 7F0800A4 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4BD8 7F0800A8 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4BDC 7F0800AC 00000000 */ nop +/* 0B4BE0 7F0800B0 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4BE4 7F0800B4 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4BE8 7F0800B8 E4500160 */ swc1 $f16, 0x160($v0) +.L7F0800BC: +/* 0B4BEC 7F0800BC 8C620000 */ lw $v0, ($v1) +/* 0B4BF0 7F0800C0 C4520160 */ lwc1 $f18, 0x160($v0) +/* 0B4BF4 7F0800C4 4600903C */ c.lt.s $f18, $f0 +/* 0B4BF8 7F0800C8 00000000 */ nop +/* 0B4BFC 7F0800CC 45020053 */ bc1fl .L7F08021C +/* 0B4C00 7F0800D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4C04 7F0800D4 10000050 */ b .L7F080218 +/* 0B4C08 7F0800D8 E4400160 */ swc1 $f0, 0x160($v0) +/* 0B4C0C 7F0800DC 460C103C */ c.lt.s $f2, $f12 +.L7F0800E0: +/* 0B4C10 7F0800E0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4C14 7F0800E4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4C18 7F0800E8 45020025 */ bc1fl .L7F080180 +/* 0B4C1C 7F0800EC 8C620000 */ lw $v0, ($v1) +/* 0B4C20 7F0800F0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4C24 7F0800F4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4C28 7F0800F8 8C620000 */ lw $v0, ($v1) +/* 0B4C2C 7F0800FC 3C018005 */ lui $at, %hi(D_800550A8) +/* 0B4C30 7F080100 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4C34 7F080104 460C103C */ c.lt.s $f2, $f12 +/* 0B4C38 7F080108 00000000 */ nop +/* 0B4C3C 7F08010C 4500000B */ bc1f .L7F08013C +/* 0B4C40 7F080110 00000000 */ nop +/* 0B4C44 7F080114 3C018005 */ lui $at, %hi(D_800550A4) +/* 0B4C48 7F080118 C42450A4 */ lwc1 $f4, %lo(D_800550A4)($at) +/* 0B4C4C 7F08011C 3C018005 */ lui $at, %hi(D_800550A8) +/* 0B4C50 7F080120 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4C54 7F080124 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4C58 7F080128 00000000 */ nop +/* 0B4C5C 7F08012C 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4C60 7F080130 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4C64 7F080134 10000009 */ b .L7F08015C +/* 0B4C68 7F080138 E4500160 */ swc1 $f16, 0x160($v0) +.L7F08013C: +/* 0B4C6C 7F08013C C43250A8 */ lwc1 $f18, %lo(D_800550A8)($at) +/* 0B4C70 7F080140 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4C74 7F080144 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4C78 7F080148 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4C7C 7F08014C 00000000 */ nop +/* 0B4C80 7F080150 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4C84 7F080154 46081280 */ add.s $f10, $f2, $f8 +/* 0B4C88 7F080158 E44A0160 */ swc1 $f10, 0x160($v0) +.L7F08015C: +/* 0B4C8C 7F08015C 8C620000 */ lw $v0, ($v1) +/* 0B4C90 7F080160 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4C94 7F080164 4610003C */ c.lt.s $f0, $f16 +/* 0B4C98 7F080168 00000000 */ nop +/* 0B4C9C 7F08016C 4502002B */ bc1fl .L7F08021C +/* 0B4CA0 7F080170 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4CA4 7F080174 10000028 */ b .L7F080218 +/* 0B4CA8 7F080178 E4400160 */ swc1 $f0, 0x160($v0) +/* 0B4CAC 7F08017C 8C620000 */ lw $v0, ($v1) +.L7F080180: +/* 0B4CB0 7F080180 3C018005 */ lui $at, %hi(D_800550B0) +/* 0B4CB4 7F080184 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4CB8 7F080188 4602003C */ c.lt.s $f0, $f2 +/* 0B4CBC 7F08018C 00000000 */ nop +/* 0B4CC0 7F080190 45000012 */ bc1f .L7F0801DC +/* 0B4CC4 7F080194 00000000 */ nop +/* 0B4CC8 7F080198 3C018005 */ lui $at, %hi(D_800550AC) +/* 0B4CCC 7F08019C C43250AC */ lwc1 $f18, %lo(D_800550AC)($at) +/* 0B4CD0 7F0801A0 3C018005 */ lui $at, %hi(D_800550B0) +/* 0B4CD4 7F0801A4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4CD8 7F0801A8 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4CDC 7F0801AC 00000000 */ nop +/* 0B4CE0 7F0801B0 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4CE4 7F0801B4 46081281 */ sub.s $f10, $f2, $f8 +/* 0B4CE8 7F0801B8 E44A0160 */ swc1 $f10, 0x160($v0) +/* 0B4CEC 7F0801BC 8C620000 */ lw $v0, ($v1) +/* 0B4CF0 7F0801C0 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4CF4 7F0801C4 4600803C */ c.lt.s $f16, $f0 +/* 0B4CF8 7F0801C8 00000000 */ nop +/* 0B4CFC 7F0801CC 45000012 */ bc1f .L7F080218 +/* 0B4D00 7F0801D0 00000000 */ nop +/* 0B4D04 7F0801D4 10000010 */ b .L7F080218 +/* 0B4D08 7F0801D8 E4400160 */ swc1 $f0, 0x160($v0) +.L7F0801DC: +/* 0B4D0C 7F0801DC C43250B0 */ lwc1 $f18, %lo(D_800550B0)($at) +/* 0B4D10 7F0801E0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4D14 7F0801E4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4D18 7F0801E8 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4D1C 7F0801EC 00000000 */ nop +/* 0B4D20 7F0801F0 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4D24 7F0801F4 46081280 */ add.s $f10, $f2, $f8 +/* 0B4D28 7F0801F8 E44A0160 */ swc1 $f10, 0x160($v0) +/* 0B4D2C 7F0801FC 8C620000 */ lw $v0, ($v1) +/* 0B4D30 7F080200 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4D34 7F080204 4610003C */ c.lt.s $f0, $f16 +/* 0B4D38 7F080208 00000000 */ nop +/* 0B4D3C 7F08020C 45000002 */ bc1f .L7F080218 +/* 0B4D40 7F080210 00000000 */ nop +/* 0B4D44 7F080214 E4400160 */ swc1 $f0, 0x160($v0) +.L7F080218: +/* 0B4D48 7F080218 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08021C: +/* 0B4D4C 7F08021C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B4D50 7F080220 03E00008 */ jr $ra +/* 0B4D54 7F080224 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING + +f32 sub_GAME_7F080228(f32 arg0) { + // Node 0 + if (0.0f < arg0) + { + // Node 1 + return 0.0f; + } + // Node 2 + if (arg0 >= 0.0f) + { + // Node 4 + // Node 5 + return 0.0f; + } + // Node 3 + return 0.0f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550B4 +.word 0xbf333333 /*-0.69999999*/ +glabel D_800550B8 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F080228 +/* 0B4D58 7F080228 44801000 */ mtc1 $zero, $f2 +/* 0B4D5C 7F08022C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B4D60 7F080230 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4D64 7F080234 460C103C */ c.lt.s $f2, $f12 +/* 0B4D68 7F080238 00000000 */ nop +/* 0B4D6C 7F08023C 4502000D */ bc1fl .L7F080274 +/* 0B4D70 7F080240 4602603C */ c.lt.s $f12, $f2 +/* 0B4D74 7F080244 0C001177 */ jal video_related_23 +/* 0B4D78 7F080248 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4D7C 7F08024C C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4D80 7F080250 3C018005 */ lui $at, %hi(D_800550B4) +/* 0B4D84 7F080254 C42650B4 */ lwc1 $f6, %lo(D_800550B4)($at) +/* 0B4D88 7F080258 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B4D8C 7F08025C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4D90 7F080260 44815000 */ mtc1 $at, $f10 +/* 0B4D94 7F080264 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4D98 7F080268 10000012 */ b .L7F0802B4 +/* 0B4D9C 7F08026C 460A4003 */ div.s $f0, $f8, $f10 +/* 0B4DA0 7F080270 4602603C */ c.lt.s $f12, $f2 +.L7F080274: +/* 0B4DA4 7F080274 00000000 */ nop +/* 0B4DA8 7F080278 4502000E */ bc1fl .L7F0802B4 +/* 0B4DAC 7F08027C 46001006 */ mov.s $f0, $f2 +/* 0B4DB0 7F080280 0C001177 */ jal video_related_23 +/* 0B4DB4 7F080284 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4DB8 7F080288 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4DBC 7F08028C 3C018005 */ lui $at, %hi(D_800550B8) +/* 0B4DC0 7F080290 C42450B8 */ lwc1 $f4, %lo(D_800550B8)($at) +/* 0B4DC4 7F080294 46006407 */ neg.s $f16, $f12 +/* 0B4DC8 7F080298 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4DCC 7F08029C 46100482 */ mul.s $f18, $f0, $f16 +/* 0B4DD0 7F0802A0 44814000 */ mtc1 $at, $f8 +/* 0B4DD4 7F0802A4 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4DD8 7F0802A8 10000002 */ b .L7F0802B4 +/* 0B4DDC 7F0802AC 46083003 */ div.s $f0, $f6, $f8 +/* 0B4DE0 7F0802B0 46001006 */ mov.s $f0, $f2 +.L7F0802B4: +/* 0B4DE4 7F0802B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4DE8 7F0802B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B4DEC 7F0802BC 03E00008 */ jr $ra +/* 0B4DF0 7F0802C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0802C4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550BC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550C0 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550C4 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550C8 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550CC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550D0 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F0802C4 +/* 0B4DF4 7F0802C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B4DF8 7F0802C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4DFC 7F0802CC 0C001177 */ jal video_related_23 +/* 0B4E00 7F0802D0 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0B4E04 7F0802D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4E08 7F0802D8 44812000 */ mtc1 $at, $f4 +/* 0B4E0C 7F0802DC C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0B4E10 7F0802E0 46040383 */ div.s $f14, $f0, $f4 +/* 0B4E14 7F0802E4 0FC2008A */ jal sub_GAME_7F080228 +/* 0B4E18 7F0802E8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B4E1C 7F0802EC C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0B4E20 7F0802F0 44806000 */ mtc1 $zero, $f12 +/* 0B4E24 7F0802F4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4E28 7F0802F8 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0B4E2C 7F0802FC 4602603C */ c.lt.s $f12, $f2 +/* 0B4E30 7F080300 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4E34 7F080304 45020023 */ bc1fl .L7F080394 +/* 0B4E38 7F080308 460C103C */ c.lt.s $f2, $f12 +/* 0B4E3C 7F08030C 8C620000 */ lw $v0, ($v1) +/* 0B4E40 7F080310 3C018005 */ lui $at, %hi(D_800550C0) +/* 0B4E44 7F080314 C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4E48 7F080318 4602603C */ c.lt.s $f12, $f2 +/* 0B4E4C 7F08031C 00000000 */ nop +/* 0B4E50 7F080320 4500000B */ bc1f .L7F080350 +/* 0B4E54 7F080324 00000000 */ nop +/* 0B4E58 7F080328 3C018005 */ lui $at, %hi(D_800550BC) +/* 0B4E5C 7F08032C C42650BC */ lwc1 $f6, %lo(D_800550BC)($at) +/* 0B4E60 7F080330 3C018005 */ lui $at, %hi(D_800550C0) +/* 0B4E64 7F080334 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4E68 7F080338 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4E6C 7F08033C 00000000 */ nop +/* 0B4E70 7F080340 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4E74 7F080344 46101481 */ sub.s $f18, $f2, $f16 +/* 0B4E78 7F080348 10000009 */ b .L7F080370 +/* 0B4E7C 7F08034C E452014C */ swc1 $f18, 0x14c($v0) +.L7F080350: +/* 0B4E80 7F080350 C42450C0 */ lwc1 $f4, %lo(D_800550C0)($at) +/* 0B4E84 7F080354 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4E88 7F080358 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4E8C 7F08035C 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4E90 7F080360 00000000 */ nop +/* 0B4E94 7F080364 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4E98 7F080368 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4E9C 7F08036C E450014C */ swc1 $f16, 0x14c($v0) +.L7F080370: +/* 0B4EA0 7F080370 8C620000 */ lw $v0, ($v1) +/* 0B4EA4 7F080374 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4EA8 7F080378 4600903C */ c.lt.s $f18, $f0 +/* 0B4EAC 7F08037C 00000000 */ nop +/* 0B4EB0 7F080380 45020054 */ bc1fl .L7F0804D4 +/* 0B4EB4 7F080384 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4EB8 7F080388 10000051 */ b .L7F0804D0 +/* 0B4EBC 7F08038C E440014C */ swc1 $f0, 0x14c($v0) +/* 0B4EC0 7F080390 460C103C */ c.lt.s $f2, $f12 +.L7F080394: +/* 0B4EC4 7F080394 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4EC8 7F080398 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4ECC 7F08039C 45020026 */ bc1fl .L7F080438 +/* 0B4ED0 7F0803A0 8C620000 */ lw $v0, ($v1) +/* 0B4ED4 7F0803A4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4ED8 7F0803A8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4EDC 7F0803AC 8C620000 */ lw $v0, ($v1) +/* 0B4EE0 7F0803B0 44802000 */ mtc1 $zero, $f4 +/* 0B4EE4 7F0803B4 3C018005 */ lui $at, %hi(D_800550C8) +/* 0B4EE8 7F0803B8 C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4EEC 7F0803BC 4604103C */ c.lt.s $f2, $f4 +/* 0B4EF0 7F0803C0 00000000 */ nop +/* 0B4EF4 7F0803C4 4500000B */ bc1f .L7F0803F4 +/* 0B4EF8 7F0803C8 00000000 */ nop +/* 0B4EFC 7F0803CC 3C018005 */ lui $at, %hi(D_800550C4) +/* 0B4F00 7F0803D0 C42650C4 */ lwc1 $f6, %lo(D_800550C4)($at) +/* 0B4F04 7F0803D4 3C018005 */ lui $at, %hi(D_800550C8) +/* 0B4F08 7F0803D8 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4F0C 7F0803DC 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4F10 7F0803E0 00000000 */ nop +/* 0B4F14 7F0803E4 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4F18 7F0803E8 46101480 */ add.s $f18, $f2, $f16 +/* 0B4F1C 7F0803EC 10000009 */ b .L7F080414 +/* 0B4F20 7F0803F0 E452014C */ swc1 $f18, 0x14c($v0) +.L7F0803F4: +/* 0B4F24 7F0803F4 C42450C8 */ lwc1 $f4, %lo(D_800550C8)($at) +/* 0B4F28 7F0803F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4F2C 7F0803FC C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4F30 7F080400 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4F34 7F080404 00000000 */ nop +/* 0B4F38 7F080408 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4F3C 7F08040C 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4F40 7F080410 E450014C */ swc1 $f16, 0x14c($v0) +.L7F080414: +/* 0B4F44 7F080414 8C620000 */ lw $v0, ($v1) +/* 0B4F48 7F080418 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4F4C 7F08041C 4612003C */ c.lt.s $f0, $f18 +/* 0B4F50 7F080420 00000000 */ nop +/* 0B4F54 7F080424 4502002B */ bc1fl .L7F0804D4 +/* 0B4F58 7F080428 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4F5C 7F08042C 10000028 */ b .L7F0804D0 +/* 0B4F60 7F080430 E440014C */ swc1 $f0, 0x14c($v0) +/* 0B4F64 7F080434 8C620000 */ lw $v0, ($v1) +.L7F080438: +/* 0B4F68 7F080438 3C018005 */ lui $at, %hi(D_800550D0) +/* 0B4F6C 7F08043C C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4F70 7F080440 4602003C */ c.lt.s $f0, $f2 +/* 0B4F74 7F080444 00000000 */ nop +/* 0B4F78 7F080448 45000012 */ bc1f .L7F080494 +/* 0B4F7C 7F08044C 00000000 */ nop +/* 0B4F80 7F080450 3C018005 */ lui $at, %hi(D_800550CC) +/* 0B4F84 7F080454 C42450CC */ lwc1 $f4, %lo(D_800550CC)($at) +/* 0B4F88 7F080458 3C018005 */ lui $at, %hi(D_800550D0) +/* 0B4F8C 7F08045C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4F90 7F080460 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4F94 7F080464 00000000 */ nop +/* 0B4F98 7F080468 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4F9C 7F08046C 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4FA0 7F080470 E450014C */ swc1 $f16, 0x14c($v0) +/* 0B4FA4 7F080474 8C620000 */ lw $v0, ($v1) +/* 0B4FA8 7F080478 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4FAC 7F08047C 4600903C */ c.lt.s $f18, $f0 +/* 0B4FB0 7F080480 00000000 */ nop +/* 0B4FB4 7F080484 45000012 */ bc1f .L7F0804D0 +/* 0B4FB8 7F080488 00000000 */ nop +/* 0B4FBC 7F08048C 10000010 */ b .L7F0804D0 +/* 0B4FC0 7F080490 E440014C */ swc1 $f0, 0x14c($v0) +.L7F080494: +/* 0B4FC4 7F080494 C42450D0 */ lwc1 $f4, %lo(D_800550D0)($at) +/* 0B4FC8 7F080498 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4FCC 7F08049C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4FD0 7F0804A0 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4FD4 7F0804A4 00000000 */ nop +/* 0B4FD8 7F0804A8 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4FDC 7F0804AC 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4FE0 7F0804B0 E450014C */ swc1 $f16, 0x14c($v0) +/* 0B4FE4 7F0804B4 8C620000 */ lw $v0, ($v1) +/* 0B4FE8 7F0804B8 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4FEC 7F0804BC 4612003C */ c.lt.s $f0, $f18 +/* 0B4FF0 7F0804C0 00000000 */ nop +/* 0B4FF4 7F0804C4 45000002 */ bc1f .L7F0804D0 +/* 0B4FF8 7F0804C8 00000000 */ nop +/* 0B4FFC 7F0804CC E440014C */ swc1 $f0, 0x14c($v0) +.L7F0804D0: +/* 0B5000 7F0804D0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0804D4: +/* 0B5004 7F0804D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B5008 7F0804D8 03E00008 */ jr $ra +/* 0B500C 7F0804DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0804E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0804E0 +/* 0B5010 7F0804E0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B5014 7F0804E4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B5018 7F0804E8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0B501C 7F0804EC AFB00018 */ sw $s0, 0x18($sp) +/* 0B5020 7F0804F0 3C0E8003 */ lui $t6, %hi(camera_80036430) +/* 0B5024 7F0804F4 8DCE6430 */ lw $t6, %lo(camera_80036430)($t6) +/* 0B5028 7F0804F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B502C 7F0804FC 00808025 */ move $s0, $a0 +/* 0B5030 7F080500 C44003DC */ lwc1 $f0, 0x3dc($v0) +/* 0B5034 7F080504 8C4703D0 */ lw $a3, 0x3d0($v0) +/* 0B5038 7F080508 8C4803D4 */ lw $t0, 0x3d4($v0) +/* 0B503C 7F08050C 15C00004 */ bnez $t6, .L7F080520 +/* 0B5040 7F080510 8C4903D8 */ lw $t1, 0x3d8($v0) +/* 0B5044 7F080514 3C0F8003 */ lui $t7, %hi(camera_80036434) +/* 0B5048 7F080518 8DEF6434 */ lw $t7, %lo(camera_80036434)($t7) +/* 0B504C 7F08051C 11E00005 */ beqz $t7, .L7F080534 +.L7F080520: +/* 0B5050 7F080520 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B5054 7F080524 44810000 */ mtc1 $at, $f0 +/* 0B5058 7F080528 00004825 */ move $t1, $zero +/* 0B505C 7F08052C 00004025 */ move $t0, $zero +/* 0B5060 7F080530 00003825 */ move $a3, $zero +.L7F080534: +/* 0B5064 7F080534 44802000 */ mtc1 $zero, $f4 +/* 0B5068 7F080538 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0B506C 7F08053C 3C0ABA00 */ lui $t2, (0xBA000602 >> 16) # lui $t2, 0xba00 +/* 0B5070 7F080540 4600203C */ c.lt.s $f4, $f0 +/* 0B5074 7F080544 02001025 */ move $v0, $s0 +/* 0B5078 7F080548 3C18E700 */ lui $t8, 0xe700 +/* 0B507C 7F08054C 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0B5080 7F080550 45000092 */ bc1f .L7F08079C +/* 0B5084 7F080554 354A0602 */ ori $t2, (0xBA000602 & 0xFFFF) # ori $t2, $t2, 0x602 +/* 0B5088 7F080558 26100008 */ addiu $s0, $s0, 8 +/* 0B508C 7F08055C 02001825 */ move $v1, $s0 +/* 0B5090 7F080560 AC580000 */ sw $t8, ($v0) +/* 0B5094 7F080564 AC400004 */ sw $zero, 4($v0) +/* 0B5098 7F080568 26100008 */ addiu $s0, $s0, 8 +/* 0B509C 7F08056C 02002025 */ move $a0, $s0 +/* 0B50A0 7F080570 AC600004 */ sw $zero, 4($v1) +/* 0B50A4 7F080574 AC790000 */ sw $t9, ($v1) +/* 0B50A8 7F080578 26100008 */ addiu $s0, $s0, 8 +/* 0B50AC 7F08057C 240B00C0 */ li $t3, 192 +/* 0B50B0 7F080580 AC8B0004 */ sw $t3, 4($a0) +/* 0B50B4 7F080584 AC8A0000 */ sw $t2, ($a0) +/* 0B50B8 7F080588 02002825 */ move $a1, $s0 +/* 0B50BC 7F08058C 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00 +/* 0B50C0 7F080590 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301 +/* 0B50C4 7F080594 26100008 */ addiu $s0, $s0, 8 +/* 0B50C8 7F080598 ACAC0000 */ sw $t4, ($a1) +/* 0B50CC 7F08059C 02003025 */ move $a2, $s0 +/* 0B50D0 7F0805A0 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 0B50D4 7F0805A4 ACA00004 */ sw $zero, 4($a1) +/* 0B50D8 7F0805A8 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 0B50DC 7F0805AC 26100008 */ addiu $s0, $s0, 8 +/* 0B50E0 7F0805B0 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B50E4 7F0805B4 44813000 */ mtc1 $at, $f6 +/* 0B50E8 7F0805B8 ACCD0000 */ sw $t5, ($a2) +/* 0B50EC 7F0805BC 02001025 */ move $v0, $s0 +/* 0B50F0 7F0805C0 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 0B50F4 7F0805C4 ACC00004 */ sw $zero, 4($a2) +/* 0B50F8 7F0805C8 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 0B50FC 7F0805CC 26100008 */ addiu $s0, $s0, 8 +/* 0B5100 7F0805D0 AC4E0000 */ sw $t6, ($v0) +/* 0B5104 7F0805D4 02001825 */ move $v1, $s0 +/* 0B5108 7F0805D8 46060202 */ mul.s $f8, $f0, $f6 +/* 0B510C 7F0805DC AC400004 */ sw $zero, 4($v0) +/* 0B5110 7F0805E0 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 0B5114 7F0805E4 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 0B5118 7F0805E8 26100008 */ addiu $s0, $s0, 8 +/* 0B511C 7F0805EC 24182000 */ li $t8, 8192 +/* 0B5120 7F0805F0 AC780004 */ sw $t8, 4($v1) +/* 0B5124 7F0805F4 AC6F0000 */ sw $t7, ($v1) +/* 0B5128 7F0805F8 02002025 */ move $a0, $s0 +/* 0B512C 7F0805FC 26100008 */ addiu $s0, $s0, 8 +/* 0B5130 7F080600 240A0C00 */ li $t2, 3072 +/* 0B5134 7F080604 3C19BA00 */ lui $t9, (0xBA000903 >> 16) # lui $t9, 0xba00 +/* 0B5138 7F080608 37390903 */ ori $t9, (0xBA000903 & 0xFFFF) # ori $t9, $t9, 0x903 +/* 0B513C 7F08060C AC8A0004 */ sw $t2, 4($a0) +/* 0B5140 7F080610 02002825 */ move $a1, $s0 +/* 0B5144 7F080614 3C0BBA00 */ lui $t3, (0xBA000E02 >> 16) # lui $t3, 0xba00 +/* 0B5148 7F080618 AC990000 */ sw $t9, ($a0) +/* 0B514C 7F08061C 356B0E02 */ ori $t3, (0xBA000E02 & 0xFFFF) # ori $t3, $t3, 0xe02 +/* 0B5150 7F080620 26100008 */ addiu $s0, $s0, 8 +/* 0B5154 7F080624 ACAB0000 */ sw $t3, ($a1) +/* 0B5158 7F080628 02003025 */ move $a2, $s0 +/* 0B515C 7F08062C 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0B5160 7F080630 4600428D */ trunc.w.s $f10, $f8 +/* 0B5164 7F080634 ACA00004 */ sw $zero, 4($a1) +/* 0B5168 7F080638 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0B516C 7F08063C 26100008 */ addiu $s0, $s0, 8 +/* 0B5170 7F080640 3C0D0050 */ lui $t5, (0x00504340 >> 16) # lui $t5, 0x50 +/* 0B5174 7F080644 35AD4340 */ ori $t5, (0x00504340 & 0xFFFF) # ori $t5, $t5, 0x4340 +/* 0B5178 7F080648 ACCC0000 */ sw $t4, ($a2) +/* 0B517C 7F08064C 02001025 */ move $v0, $s0 +/* 0B5180 7F080650 ACCD0004 */ sw $t5, 4($a2) +/* 0B5184 7F080654 3C0FFFFD */ lui $t7, (0xFFFDF6FB >> 16) # lui $t7, 0xfffd +/* 0B5188 7F080658 3C0EFCFF */ lui $t6, (0xFCFFFFFF >> 16) # lui $t6, 0xfcff +/* 0B518C 7F08065C 310B00FF */ andi $t3, $t0, 0xff +/* 0B5190 7F080660 35CEFFFF */ ori $t6, (0xFCFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0B5194 7F080664 35EFF6FB */ ori $t7, (0xFFFDF6FB & 0xFFFF) # ori $t7, $t7, 0xf6fb +/* 0B5198 7F080668 000B6400 */ sll $t4, $t3, 0x10 +/* 0B519C 7F08066C 440B5000 */ mfc1 $t3, $f10 +/* 0B51A0 7F080670 AC4F0004 */ sw $t7, 4($v0) +/* 0B51A4 7F080674 AC4E0000 */ sw $t6, ($v0) +/* 0B51A8 7F080678 26100008 */ addiu $s0, $s0, 8 +/* 0B51AC 7F08067C 00075600 */ sll $t2, $a3, 0x18 +/* 0B51B0 7F080680 014C6825 */ or $t5, $t2, $t4 +/* 0B51B4 7F080684 02001825 */ move $v1, $s0 +/* 0B51B8 7F080688 312E00FF */ andi $t6, $t1, 0xff +/* 0B51BC 7F08068C 3C18FA00 */ lui $t8, 0xfa00 +/* 0B51C0 7F080690 AC780000 */ sw $t8, ($v1) +/* 0B51C4 7F080694 000E7A00 */ sll $t7, $t6, 8 +/* 0B51C8 7F080698 01AFC025 */ or $t8, $t5, $t7 +/* 0B51CC 7F08069C 316A00FF */ andi $t2, $t3, 0xff +/* 0B51D0 7F0806A0 030A6025 */ or $t4, $t8, $t2 +/* 0B51D4 7F0806A4 AC6C0004 */ sw $t4, 4($v1) +/* 0B51D8 7F0806A8 26100008 */ addiu $s0, $s0, 8 +/* 0B51DC 7F0806AC AFB0003C */ sw $s0, 0x3c($sp) +/* 0B51E0 7F0806B0 0C001127 */ jal get_video2_settings_width +/* 0B51E4 7F0806B4 26100008 */ addiu $s0, $s0, 8 +/* 0B51E8 7F0806B8 0C001145 */ jal get_video2_settings_ulx +/* 0B51EC 7F0806BC A7A20026 */ sh $v0, 0x26($sp) +/* 0B51F0 7F0806C0 0C001149 */ jal get_video2_settings_uly +/* 0B51F4 7F0806C4 A7A20028 */ sh $v0, 0x28($sp) +/* 0B51F8 7F0806C8 0C00112B */ jal get_video2_settings_height +/* 0B51FC 7F0806CC A7A2002A */ sh $v0, 0x2a($sp) +/* 0B5200 7F0806D0 87AE0028 */ lh $t6, 0x28($sp) +/* 0B5204 7F0806D4 87AD0026 */ lh $t5, 0x26($sp) +/* 0B5208 7F0806D8 87B8002A */ lh $t8, 0x2a($sp) +/* 0B520C 7F0806DC 3C01F600 */ lui $at, 0xf600 +/* 0B5210 7F0806E0 01CD7821 */ addu $t7, $t6, $t5 +/* 0B5214 7F0806E4 00585021 */ addu $t2, $v0, $t8 +/* 0B5218 7F0806E8 314C03FF */ andi $t4, $t2, 0x3ff +/* 0B521C 7F0806EC 31F903FF */ andi $t9, $t7, 0x3ff +/* 0B5220 7F0806F0 00195B80 */ sll $t3, $t9, 0xe +/* 0B5224 7F0806F4 000C7080 */ sll $t6, $t4, 2 +/* 0B5228 7F0806F8 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B522C 7F0806FC 01C16825 */ or $t5, $t6, $at +/* 0B5230 7F080700 01AB7825 */ or $t7, $t5, $t3 +/* 0B5234 7F080704 0C001145 */ jal get_video2_settings_ulx +/* 0B5238 7F080708 AF2F0000 */ sw $t7, ($t9) +/* 0B523C 7F08070C 0C001149 */ jal get_video2_settings_uly +/* 0B5240 7F080710 A7A2002A */ sh $v0, 0x2a($sp) +/* 0B5244 7F080714 87AC002A */ lh $t4, 0x2a($sp) +/* 0B5248 7F080718 8FAF003C */ lw $t7, 0x3c($sp) +/* 0B524C 7F08071C 305803FF */ andi $t8, $v0, 0x3ff +/* 0B5250 7F080720 318E03FF */ andi $t6, $t4, 0x3ff +/* 0B5254 7F080724 000E6B80 */ sll $t5, $t6, 0xe +/* 0B5258 7F080728 00185080 */ sll $t2, $t8, 2 +/* 0B525C 7F08072C 014D5825 */ or $t3, $t2, $t5 +/* 0B5260 7F080730 02001825 */ move $v1, $s0 +/* 0B5264 7F080734 ADEB0004 */ sw $t3, 4($t7) +/* 0B5268 7F080738 26100008 */ addiu $s0, $s0, 8 +/* 0B526C 7F08073C 3C19E700 */ lui $t9, 0xe700 +/* 0B5270 7F080740 02002025 */ move $a0, $s0 +/* 0B5274 7F080744 AC790000 */ sw $t9, ($v1) +/* 0B5278 7F080748 AC600004 */ sw $zero, 4($v1) +/* 0B527C 7F08074C 26100008 */ addiu $s0, $s0, 8 +/* 0B5280 7F080750 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 0B5284 7F080754 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 0B5288 7F080758 240C0040 */ li $t4, 64 +/* 0B528C 7F08075C 02002825 */ move $a1, $s0 +/* 0B5290 7F080760 AC8C0004 */ sw $t4, 4($a0) +/* 0B5294 7F080764 AC980000 */ sw $t8, ($a0) +/* 0B5298 7F080768 26100008 */ addiu $s0, $s0, 8 +/* 0B529C 7F08076C 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 0B52A0 7F080770 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 0B52A4 7F080774 3C0A0008 */ lui $t2, 8 +/* 0B52A8 7F080778 02003025 */ move $a2, $s0 +/* 0B52AC 7F08077C ACAA0004 */ sw $t2, 4($a1) +/* 0B52B0 7F080780 ACAE0000 */ sw $t6, ($a1) +/* 0B52B4 7F080784 3C0DBA00 */ lui $t5, (0xBA001001 >> 16) # lui $t5, 0xba00 +/* 0B52B8 7F080788 35AD1001 */ ori $t5, (0xBA001001 & 0xFFFF) # ori $t5, $t5, 0x1001 +/* 0B52BC 7F08078C 3C0B0001 */ lui $t3, 1 +/* 0B52C0 7F080790 ACCB0004 */ sw $t3, 4($a2) +/* 0B52C4 7F080794 ACCD0000 */ sw $t5, ($a2) +/* 0B52C8 7F080798 26100008 */ addiu $s0, $s0, 8 +.L7F08079C: +/* 0B52CC 7F08079C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B52D0 7F0807A0 02001025 */ move $v0, $s0 +/* 0B52D4 7F0807A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0B52D8 7F0807A8 03E00008 */ jr $ra +/* 0B52DC 7F0807AC 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +void set_rgba_tint(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { + pPlayer->tint_red = arg0; + pPlayer->tint_green = arg1; + pPlayer->tint_blue = arg2; + pPlayer->tint_alpha = arg3; +} + + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0807E0(f32 arg0, s32 arg1, ?32 arg2, ?32 arg3, f32 arg4) { + // Node 0 + pPlayer->field_3E0 = 0.0f; + pPlayer->time_for_fade = arg0; + pPlayer->field_3E8 = (?32) pPlayer->tint_red; + pPlayer->field_3EC = arg1; + pPlayer->field_3F0 = (?32) pPlayer->tint_green; + pPlayer->field_3F4 = arg2; + pPlayer->field_3F8 = (?32) pPlayer->tint_blue; + pPlayer->field_3FC = arg3; + pPlayer->field_400 = (f32) pPlayer->tint_alpha; + pPlayer->field_404 = arg4; + return pPlayer; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0807E0 +/* 0B5310 7F0807E0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B5314 7F0807E4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B5318 7F0807E8 8C6E0000 */ lw $t6, ($v1) +/* 0B531C 7F0807EC 44802000 */ mtc1 $zero, $f4 +/* 0B5320 7F0807F0 00000000 */ nop +/* 0B5324 7F0807F4 E5C403E0 */ swc1 $f4, 0x3e0($t6) +/* 0B5328 7F0807F8 8C6F0000 */ lw $t7, ($v1) +/* 0B532C 7F0807FC E5EC03E4 */ swc1 $f12, 0x3e4($t7) +/* 0B5330 7F080800 8C620000 */ lw $v0, ($v1) +/* 0B5334 7F080804 8C5803D0 */ lw $t8, 0x3d0($v0) +/* 0B5338 7F080808 AC5803E8 */ sw $t8, 0x3e8($v0) +/* 0B533C 7F08080C 8C790000 */ lw $t9, ($v1) +/* 0B5340 7F080810 AF2503EC */ sw $a1, 0x3ec($t9) +/* 0B5344 7F080814 8C620000 */ lw $v0, ($v1) +/* 0B5348 7F080818 8C4803D4 */ lw $t0, 0x3d4($v0) +/* 0B534C 7F08081C AC4803F0 */ sw $t0, 0x3f0($v0) +/* 0B5350 7F080820 8C690000 */ lw $t1, ($v1) +/* 0B5354 7F080824 AD2603F4 */ sw $a2, 0x3f4($t1) +/* 0B5358 7F080828 8C620000 */ lw $v0, ($v1) +/* 0B535C 7F08082C 8C4A03D8 */ lw $t2, 0x3d8($v0) +/* 0B5360 7F080830 AC4A03F8 */ sw $t2, 0x3f8($v0) +/* 0B5364 7F080834 8C6B0000 */ lw $t3, ($v1) +/* 0B5368 7F080838 AD6703FC */ sw $a3, 0x3fc($t3) +/* 0B536C 7F08083C 8C620000 */ lw $v0, ($v1) +/* 0B5370 7F080840 C44603DC */ lwc1 $f6, 0x3dc($v0) +/* 0B5374 7F080844 E4460400 */ swc1 $f6, 0x400($v0) +/* 0B5378 7F080848 8C6C0000 */ lw $t4, ($v1) +/* 0B537C 7F08084C C7A80010 */ lwc1 $f8, 0x10($sp) +/* 0B5380 7F080850 03E00008 */ jr $ra +/* 0B5384 7F080854 E5880404 */ swc1 $f8, 0x404($t4) +) +#endif + + + + + +#ifdef NONMATCHING +void fade_to_over_seconds(f32 arg1) { + // Node 0 + return sub_GAME_7F0807E0(pPlayer->tint_red, pPlayer->tint_green, pPlayer->tint_blue); +} + +#else +GLOBAL_ASM( +.text +glabel fade_to_over_seconds +/* 0B5388 7F080858 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B538C 7F08085C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B5390 7F080860 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B5394 7F080864 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B5398 7F080868 8C4703D8 */ lw $a3, 0x3d8($v0) +/* 0B539C 7F08086C 8C4603D4 */ lw $a2, 0x3d4($v0) +/* 0B53A0 7F080870 8C4503D0 */ lw $a1, 0x3d0($v0) +/* 0B53A4 7F080874 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 0B53A8 7F080878 E7AE0010 */ swc1 $f14, 0x10($sp) +/* 0B53AC 7F08087C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B53B0 7F080880 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B53B4 7F080884 03E00008 */ jr $ra +/* 0B53B8 7F080888 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_fade_to_black_complete(void) { + // Node 0 + if (pPlayer->time_for_fade < 0.0f) + { + // Node 1 + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel check_if_fade_to_black_complete +/* 0B53BC 7F08088C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B53C0 7F080890 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B53C4 7F080894 44803000 */ mtc1 $zero, $f6 +/* 0B53C8 7F080898 00001025 */ move $v0, $zero +/* 0B53CC 7F08089C C5C403E4 */ lwc1 $f4, 0x3e4($t6) +/* 0B53D0 7F0808A0 4606203C */ c.lt.s $f4, $f6 +/* 0B53D4 7F0808A4 00000000 */ nop +/* 0B53D8 7F0808A8 45000002 */ bc1f .L7F0808B4 +/* 0B53DC 7F0808AC 00000000 */ nop +/* 0B53E0 7F0808B0 24020001 */ li $v0, 1 +.L7F0808B4: +/* 0B53E4 7F0808B4 03E00008 */ jr $ra +/* 0B53E8 7F0808B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0808BC(void) { + f32 temp_f12; + + // Node 0 + if (0.0f <= pPlayer->time_for_fade) + { + // Node 1 + pPlayer->field_3E0 = (f32) (pPlayer->field_3E0 + global_timer_delta); + if (pPlayer->field_3E0 < pPlayer->time_for_fade) + { + // Node 2 + temp_f12 = (pPlayer->field_3E0 / pPlayer->time_for_fade); + pPlayer->tint_alpha = (f32) (pPlayer->field_400 + ((pPlayer->field_404 - pPlayer->field_400) * temp_f12)); + pPlayer->tint_red = (s32) (pPlayer->field_3E8 + (s32) ((f32) (pPlayer->field_3EC - pPlayer->field_3E8) * temp_f12)); + pPlayer->tint_green = (s32) (pPlayer->field_3F0 + (s32) ((f32) (pPlayer->field_3F4 - pPlayer->field_3F0) * temp_f12)); + pPlayer->tint_blue = (s32) (pPlayer->field_3F8 + (s32) ((f32) (pPlayer->field_3FC - pPlayer->field_3F8) * temp_f12)); + return pPlayer; + } + // Node 3 + pPlayer->tint_alpha = (f32) pPlayer->field_404; + pPlayer->tint_red = (s32) pPlayer->field_3EC; + pPlayer->tint_green = (s32) pPlayer->field_3F4; + pPlayer->tint_blue = (s32) pPlayer->field_3FC; + pPlayer->time_for_fade = -1.0f; + } + // Node 4 + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0808BC +/* 0B53EC 7F0808BC 3C068008 */ lui $a2, %hi(pPlayer) +/* 0B53F0 7F0808C0 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 0B53F4 7F0808C4 8CC20000 */ lw $v0, ($a2) +/* 0B53F8 7F0808C8 44803000 */ mtc1 $zero, $f6 +/* 0B53FC 7F0808CC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B5400 7F0808D0 C44403E4 */ lwc1 $f4, 0x3e4($v0) +/* 0B5404 7F0808D4 4604303E */ c.le.s $f6, $f4 +/* 0B5408 7F0808D8 00000000 */ nop +/* 0B540C 7F0808DC 4500004A */ bc1f .L7F080A08 +/* 0B5410 7F0808E0 00000000 */ nop +/* 0B5414 7F0808E4 C44803E0 */ lwc1 $f8, 0x3e0($v0) +/* 0B5418 7F0808E8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B541C 7F0808EC 460A4400 */ add.s $f16, $f8, $f10 +/* 0B5420 7F0808F0 E45003E0 */ swc1 $f16, 0x3e0($v0) +/* 0B5424 7F0808F4 8CC20000 */ lw $v0, ($a2) +/* 0B5428 7F0808F8 C44203E0 */ lwc1 $f2, 0x3e0($v0) +/* 0B542C 7F0808FC C44003E4 */ lwc1 $f0, 0x3e4($v0) +/* 0B5430 7F080900 4600103C */ c.lt.s $f2, $f0 +/* 0B5434 7F080904 00000000 */ nop +/* 0B5438 7F080908 45020031 */ bc1fl .L7F0809D0 +/* 0B543C 7F08090C C44A0404 */ lwc1 $f10, 0x404($v0) +/* 0B5440 7F080910 46001303 */ div.s $f12, $f2, $f0 +/* 0B5444 7F080914 C44E0400 */ lwc1 $f14, 0x400($v0) +/* 0B5448 7F080918 C4520404 */ lwc1 $f18, 0x404($v0) +/* 0B544C 7F08091C 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B5450 7F080920 460C2182 */ mul.s $f6, $f4, $f12 +/* 0B5454 7F080924 46067200 */ add.s $f8, $f14, $f6 +/* 0B5458 7F080928 E44803DC */ swc1 $f8, 0x3dc($v0) +/* 0B545C 7F08092C 8CC20000 */ lw $v0, ($a2) +/* 0B5460 7F080930 8C4303E8 */ lw $v1, 0x3e8($v0) +/* 0B5464 7F080934 8C4E03EC */ lw $t6, 0x3ec($v0) +/* 0B5468 7F080938 01C37823 */ subu $t7, $t6, $v1 +/* 0B546C 7F08093C 448F5000 */ mtc1 $t7, $f10 +/* 0B5470 7F080940 00000000 */ nop +/* 0B5474 7F080944 46805420 */ cvt.s.w $f16, $f10 +/* 0B5478 7F080948 460C8482 */ mul.s $f18, $f16, $f12 +/* 0B547C 7F08094C 4600910D */ trunc.w.s $f4, $f18 +/* 0B5480 7F080950 44192000 */ mfc1 $t9, $f4 +/* 0B5484 7F080954 00000000 */ nop +/* 0B5488 7F080958 00794021 */ addu $t0, $v1, $t9 +/* 0B548C 7F08095C AC4803D0 */ sw $t0, 0x3d0($v0) +/* 0B5490 7F080960 8CC20000 */ lw $v0, ($a2) +/* 0B5494 7F080964 8C4403F0 */ lw $a0, 0x3f0($v0) +/* 0B5498 7F080968 8C4903F4 */ lw $t1, 0x3f4($v0) +/* 0B549C 7F08096C 01245023 */ subu $t2, $t1, $a0 +/* 0B54A0 7F080970 448A3000 */ mtc1 $t2, $f6 +/* 0B54A4 7F080974 00000000 */ nop +/* 0B54A8 7F080978 46803220 */ cvt.s.w $f8, $f6 +/* 0B54AC 7F08097C 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B54B0 7F080980 4600540D */ trunc.w.s $f16, $f10 +/* 0B54B4 7F080984 440C8000 */ mfc1 $t4, $f16 +/* 0B54B8 7F080988 00000000 */ nop +/* 0B54BC 7F08098C 008C6821 */ addu $t5, $a0, $t4 +/* 0B54C0 7F080990 AC4D03D4 */ sw $t5, 0x3d4($v0) +/* 0B54C4 7F080994 8CC20000 */ lw $v0, ($a2) +/* 0B54C8 7F080998 8C4503F8 */ lw $a1, 0x3f8($v0) +/* 0B54CC 7F08099C 8C4E03FC */ lw $t6, 0x3fc($v0) +/* 0B54D0 7F0809A0 01C57823 */ subu $t7, $t6, $a1 +/* 0B54D4 7F0809A4 448F9000 */ mtc1 $t7, $f18 +/* 0B54D8 7F0809A8 00000000 */ nop +/* 0B54DC 7F0809AC 46809120 */ cvt.s.w $f4, $f18 +/* 0B54E0 7F0809B0 460C2182 */ mul.s $f6, $f4, $f12 +/* 0B54E4 7F0809B4 4600320D */ trunc.w.s $f8, $f6 +/* 0B54E8 7F0809B8 44194000 */ mfc1 $t9, $f8 +/* 0B54EC 7F0809BC 00000000 */ nop +/* 0B54F0 7F0809C0 00B94021 */ addu $t0, $a1, $t9 +/* 0B54F4 7F0809C4 03E00008 */ jr $ra +/* 0B54F8 7F0809C8 AC4803D8 */ sw $t0, 0x3d8($v0) + +/* 0B54FC 7F0809CC C44A0404 */ lwc1 $f10, 0x404($v0) +.L7F0809D0: +/* 0B5500 7F0809D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B5504 7F0809D4 44818000 */ mtc1 $at, $f16 +/* 0B5508 7F0809D8 E44A03DC */ swc1 $f10, 0x3dc($v0) +/* 0B550C 7F0809DC 8CC20000 */ lw $v0, ($a2) +/* 0B5510 7F0809E0 8C4903EC */ lw $t1, 0x3ec($v0) +/* 0B5514 7F0809E4 AC4903D0 */ sw $t1, 0x3d0($v0) +/* 0B5518 7F0809E8 8CC20000 */ lw $v0, ($a2) +/* 0B551C 7F0809EC 8C4A03F4 */ lw $t2, 0x3f4($v0) +/* 0B5520 7F0809F0 AC4A03D4 */ sw $t2, 0x3d4($v0) +/* 0B5524 7F0809F4 8CC20000 */ lw $v0, ($a2) +/* 0B5528 7F0809F8 8C4B03FC */ lw $t3, 0x3fc($v0) +/* 0B552C 7F0809FC AC4B03D8 */ sw $t3, 0x3d8($v0) +/* 0B5530 7F080A00 8CCC0000 */ lw $t4, ($a2) +/* 0B5534 7F080A04 E59003E4 */ swc1 $f16, 0x3e4($t4) +.L7F080A08: +/* 0B5538 7F080A08 03E00008 */ jr $ra +/* 0B553C 7F080A0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *set_curplayer_fade(f32 arg0, f32 arg1) { + f32 temp_f8; + f32 phi_f8; + + // Node 0 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 1 + pPlayer->viewport_alpha = 0.0f; + pPlayer->bondfadetime60 = arg0; + temp_f8 = (f32) pPlayer->field_A8->unk4->unkC; + phi_f8 = temp_f8; + if (pPlayer->field_A8->unk4->unkC < 0) + { + // Node 2 + phi_f8 = (temp_f8 + 4294967296.0f); + } + // Node 3 + pPlayer->bondfadetimemax = (f32) (phi_f8 / 255.0f); + pPlayer->bondfadefracold = arg1; + } + // Node 4 + return pPlayer->field_A8->unk4; +} +#else +GLOBAL_ASM( +.text +glabel set_curplayer_fade +/* 0B5540 7F080A10 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B5544 7F080A14 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B5548 7F080A18 8C830000 */ lw $v1, ($a0) +/* 0B554C 7F080A1C 8C6E00A8 */ lw $t6, 0xa8($v1) +/* 0B5550 7F080A20 8DC20004 */ lw $v0, 4($t6) +/* 0B5554 7F080A24 10400014 */ beqz $v0, .L7F080A78 +/* 0B5558 7F080A28 00000000 */ nop +/* 0B555C 7F080A2C 44802000 */ mtc1 $zero, $f4 +/* 0B5560 7F080A30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B5564 7F080A34 E464018C */ swc1 $f4, 0x18c($v1) +/* 0B5568 7F080A38 8C8F0000 */ lw $t7, ($a0) +/* 0B556C 7F080A3C E5EC0190 */ swc1 $f12, 0x190($t7) +/* 0B5570 7F080A40 9058000C */ lbu $t8, 0xc($v0) +/* 0B5574 7F080A44 44983000 */ mtc1 $t8, $f6 +/* 0B5578 7F080A48 07010004 */ bgez $t8, .L7F080A5C +/* 0B557C 7F080A4C 46803220 */ cvt.s.w $f8, $f6 +/* 0B5580 7F080A50 44815000 */ mtc1 $at, $f10 +/* 0B5584 7F080A54 00000000 */ nop +/* 0B5588 7F080A58 460A4200 */ add.s $f8, $f8, $f10 +.L7F080A5C: +/* 0B558C 7F080A5C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B5590 7F080A60 44818000 */ mtc1 $at, $f16 +/* 0B5594 7F080A64 8C990000 */ lw $t9, ($a0) +/* 0B5598 7F080A68 46104483 */ div.s $f18, $f8, $f16 +/* 0B559C 7F080A6C E7320194 */ swc1 $f18, 0x194($t9) +/* 0B55A0 7F080A70 8C880000 */ lw $t0, ($a0) +/* 0B55A4 7F080A74 E50E0198 */ swc1 $f14, 0x198($t0) +.L7F080A78: +/* 0B55A8 7F080A78 03E00008 */ jr $ra +/* 0B55AC 7F080A7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *update_curplayer_fade(void) { + f32 phi_f12; + + // Node 0 + if (0.0f <= pPlayer->bondfadetime60) + { + // Node 1 + pPlayer->viewport_alpha = (f32) (pPlayer->viewport_alpha + *(void *)0x80050000); + if (pPlayer->viewport_alpha < pPlayer->bondfadetime60) + { + // Node 2 + phi_f12 = (pPlayer->bondfadetimemax + (((pPlayer->bondfadefracold - pPlayer->bondfadetimemax) * pPlayer->viewport_alpha) / pPlayer->bondfadetime60)); + } + else + { + // Node 3 + pPlayer->bondfadetime60 = -1.0f; + phi_f12 = pPlayer->bondfadefracold; + } + // Node 4 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 5 + pPlayer->field_A8->unk4->unkC = (s32) (phi_f12 * 255.0f); + } + } + // Node 6 + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel update_curplayer_fade +/* 0B55B0 7F080A80 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B55B4 7F080A84 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B55B8 7F080A88 8C820000 */ lw $v0, ($a0) +/* 0B55BC 7F080A8C 44803000 */ mtc1 $zero, $f6 +/* 0B55C0 7F080A90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B55C4 7F080A94 C4440190 */ lwc1 $f4, 0x190($v0) +/* 0B55C8 7F080A98 4604303E */ c.le.s $f6, $f4 +/* 0B55CC 7F080A9C 00000000 */ nop +/* 0B55D0 7F080AA0 45000022 */ bc1f .L7F080B2C +/* 0B55D4 7F080AA4 00000000 */ nop +/* 0B55D8 7F080AA8 C448018C */ lwc1 $f8, 0x18c($v0) +/* 0B55DC 7F080AAC C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B55E0 7F080AB0 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B55E4 7F080AB4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B55E8 7F080AB8 460A4400 */ add.s $f16, $f8, $f10 +/* 0B55EC 7F080ABC 8DC30004 */ lw $v1, 4($t6) +/* 0B55F0 7F080AC0 E450018C */ swc1 $f16, 0x18c($v0) +/* 0B55F4 7F080AC4 8C820000 */ lw $v0, ($a0) +/* 0B55F8 7F080AC8 C442018C */ lwc1 $f2, 0x18c($v0) +/* 0B55FC 7F080ACC C4400190 */ lwc1 $f0, 0x190($v0) +/* 0B5600 7F080AD0 4600103C */ c.lt.s $f2, $f0 +/* 0B5604 7F080AD4 00000000 */ nop +/* 0B5608 7F080AD8 45020009 */ bc1fl .L7F080B00 +/* 0B560C 7F080ADC 44815000 */ mtc1 $at, $f10 +/* 0B5610 7F080AE0 C44E0194 */ lwc1 $f14, 0x194($v0) +/* 0B5614 7F080AE4 C4520198 */ lwc1 $f18, 0x198($v0) +/* 0B5618 7F080AE8 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B561C 7F080AEC 46022182 */ mul.s $f6, $f4, $f2 +/* 0B5620 7F080AF0 46003203 */ div.s $f8, $f6, $f0 +/* 0B5624 7F080AF4 10000004 */ b .L7F080B08 +/* 0B5628 7F080AF8 46087300 */ add.s $f12, $f14, $f8 +/* 0B562C 7F080AFC 44815000 */ mtc1 $at, $f10 +.L7F080B00: +/* 0B5630 7F080B00 C44C0198 */ lwc1 $f12, 0x198($v0) +/* 0B5634 7F080B04 E44A0190 */ swc1 $f10, 0x190($v0) +.L7F080B08: +/* 0B5638 7F080B08 10600008 */ beqz $v1, .L7F080B2C +/* 0B563C 7F080B0C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B5640 7F080B10 44818000 */ mtc1 $at, $f16 +/* 0B5644 7F080B14 00000000 */ nop +/* 0B5648 7F080B18 46106482 */ mul.s $f18, $f12, $f16 +/* 0B564C 7F080B1C 4600910D */ trunc.w.s $f4, $f18 +/* 0B5650 7F080B20 44182000 */ mfc1 $t8, $f4 +/* 0B5654 7F080B24 00000000 */ nop +/* 0B5658 7F080B28 A078000C */ sb $t8, 0xc($v1) +.L7F080B2C: +/* 0B565C 7F080B2C 03E00008 */ jr $ra +/* 0B5660 7F080B30 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080B34(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel firstperson_weapon_movement_restrictor +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800550D8 +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F080B34 +/* 0B5664 7F080B34 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0B5668 7F080B38 AFB00038 */ sw $s0, 0x38($sp) +/* 0B566C 7F080B3C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B5670 7F080B40 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0B5674 7F080B44 4480A000 */ mtc1 $zero, $f20 +/* 0B5678 7F080B48 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B567C 7F080B4C 8E020000 */ lw $v0, ($s0) +/* 0B5680 7F080B50 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B5684 7F080B54 AFA600D8 */ sw $a2, 0xd8($sp) +/* 0B5688 7F080B58 E7B400CC */ swc1 $f20, 0xcc($sp) +/* 0B568C 7F080B5C 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B5690 7F080B60 55C00014 */ bnezl $t6, .L7F080BB4 +/* 0B5694 7F080B64 8C4F0420 */ lw $t7, 0x420($v0) +/* 0B5698 7F080B68 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0B569C 7F080B6C 0FC23A2F */ jal sub_GAME_7F08E8BC +/* 0B56A0 7F080B70 E7AE00D4 */ swc1 $f14, 0xd4($sp) +/* 0B56A4 7F080B74 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0B56A8 7F080B78 C7AE00D4 */ lwc1 $f14, 0xd4($sp) +/* 0B56AC 7F080B7C 46146032 */ c.eq.s $f12, $f20 +/* 0B56B0 7F080B80 00000000 */ nop +/* 0B56B4 7F080B84 45030005 */ bc1tl .L7F080B9C +/* 0B56B8 7F080B88 46147032 */ c.eq.s $f14, $f20 +/* 0B56BC 7F080B8C 460C7103 */ div.s $f4, $f14, $f12 +/* 0B56C0 7F080B90 10000028 */ b .L7F080C34 +/* 0B56C4 7F080B94 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 0B56C8 7F080B98 46147032 */ c.eq.s $f14, $f20 +.L7F080B9C: +/* 0B56CC 7F080B9C 00000000 */ nop +/* 0B56D0 7F080BA0 45020025 */ bc1fl .L7F080C38 +/* 0B56D4 7F080BA4 C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0B56D8 7F080BA8 10000023 */ b .L7F080C38 +/* 0B56DC 7F080BAC C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0B56E0 7F080BB0 8C4F0420 */ lw $t7, 0x420($v0) +.L7F080BB4: +/* 0B56E4 7F080BB4 51E0001B */ beql $t7, $zero, .L7F080C24 +/* 0B56E8 7F080BB8 3C013F00 */ lui $at, 0x3f00 +/* 0B56EC 7F080BBC 0C002914 */ jal get_random_value +/* 0B56F0 7F080BC0 00000000 */ nop +/* 0B56F4 7F080BC4 0C002914 */ jal get_random_value +/* 0B56F8 7F080BC8 AFA20044 */ sw $v0, 0x44($sp) +/* 0B56FC 7F080BCC 3C198003 */ lui $t9, %hi(D_8003650C) +/* 0B5700 7F080BD0 8F39650C */ lw $t9, %lo(D_8003650C)($t9) +/* 0B5704 7F080BD4 8FB80044 */ lw $t8, 0x44($sp) +/* 0B5708 7F080BD8 3C0A8003 */ lui $t2, %hi(D_800364D8) +/* 0B570C 7F080BDC 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0B5710 7F080BE0 0319001B */ divu $zero, $t8, $t9 +/* 0B5714 7F080BE4 00004010 */ mfhi $t0 +/* 0B5718 7F080BE8 00084880 */ sll $t1, $t0, 2 +/* 0B571C 7F080BEC 01495021 */ addu $t2, $t2, $t1 +/* 0B5720 7F080BF0 8D4A64D8 */ lw $t2, %lo(D_800364D8)($t2) +/* 0B5724 7F080BF4 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0B5728 7F080BF8 4406A000 */ mfc1 $a2, $f20 +/* 0B572C 7F080BFC 17200002 */ bnez $t9, .L7F080C08 +/* 0B5730 7F080C00 00000000 */ nop +/* 0B5734 7F080C04 0007000D */ break 7 +.L7F080C08: +/* 0B5738 7F080C08 30450001 */ andi $a1, $v0, 1 +/* 0B573C 7F080C0C 3C073F80 */ lui $a3, 0x3f80 +/* 0B5740 7F080C10 0FC23A92 */ jal sub_GAME_7F08EA48 +/* 0B5744 7F080C14 014B2021 */ addu $a0, $t2, $t3 +/* 0B5748 7F080C18 8E0C0000 */ lw $t4, ($s0) +/* 0B574C 7F080C1C AD800420 */ sw $zero, 0x420($t4) +/* 0B5750 7F080C20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +.L7F080C24: +/* 0B5754 7F080C24 44816000 */ mtc1 $at, $f12 +/* 0B5758 7F080C28 0FC23AAE */ jal sub_GAME_7F08EAB8 +/* 0B575C 7F080C2C 00000000 */ nop +/* 0B5760 7F080C30 E7B400D8 */ swc1 $f20, 0xd8($sp) +.L7F080C34: +/* 0B5764 7F080C34 C7AC00CC */ lwc1 $f12, 0xcc($sp) +.L7F080C38: +/* 0B5768 7F080C38 0FC23890 */ jal sub_GAME_7F08E240 +/* 0B576C 7F080C3C C7AE00D8 */ lwc1 $f14, 0xd8($sp) +/* 0B5770 7F080C40 8E0D0000 */ lw $t5, ($s0) +/* 0B5774 7F080C44 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B5778 7F080C48 44813000 */ mtc1 $at, $f6 +/* 0B577C 7F080C4C C5A8015C */ lwc1 $f8, 0x15c($t5) +/* 0B5780 7F080C50 3C018005 */ lui $at, %hi(firstperson_weapon_movement_restrictor) +/* 0B5784 7F080C54 C43050D4 */ lwc1 $f16, %lo(firstperson_weapon_movement_restrictor)($at) +/* 0B5788 7F080C58 46083281 */ sub.s $f10, $f6, $f8 +/* 0B578C 7F080C5C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B5790 7F080C60 46105302 */ mul.s $f12, $f10, $f16 +/* 0B5794 7F080C64 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0B5798 7F080C68 00000000 */ nop +/* 0B579C 7F080C6C 8E020000 */ lw $v0, ($s0) +/* 0B57A0 7F080C70 4405A000 */ mfc1 $a1, $f20 +/* 0B57A4 7F080C74 4406A000 */ mfc1 $a2, $f20 +/* 0B57A8 7F080C78 C4520508 */ lwc1 $f18, 0x508($v0) +/* 0B57AC 7F080C7C 4407A000 */ mfc1 $a3, $f20 +/* 0B57B0 7F080C80 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B57B4 7F080C84 46009107 */ neg.s $f4, $f18 +/* 0B57B8 7F080C88 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B57BC 7F080C8C C446050C */ lwc1 $f6, 0x50c($v0) +/* 0B57C0 7F080C90 46003207 */ neg.s $f8, $f6 +/* 0B57C4 7F080C94 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0B57C8 7F080C98 C44A0510 */ lwc1 $f10, 0x510($v0) +/* 0B57CC 7F080C9C 46005407 */ neg.s $f16, $f10 +/* 0B57D0 7F080CA0 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0B57D4 7F080CA4 C4520514 */ lwc1 $f18, 0x514($v0) +/* 0B57D8 7F080CA8 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0B57DC 7F080CAC C4440518 */ lwc1 $f4, 0x518($v0) +/* 0B57E0 7F080CB0 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0B57E4 7F080CB4 C446051C */ lwc1 $f6, 0x51c($v0) +/* 0B57E8 7F080CB8 0FC16642 */ jal sub_GAME_7F059908 +/* 0B57EC 7F080CBC E7A60024 */ swc1 $f6, 0x24($sp) +/* 0B57F0 7F080CC0 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B57F4 7F080CC4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0B57F8 7F080CC8 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B57FC 7F080CCC 8E0E0000 */ lw $t6, ($s0) +/* 0B5800 7F080CD0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B5804 7F080CD4 44814000 */ mtc1 $at, $f8 +/* 0B5808 7F080CD8 C5CA0148 */ lwc1 $f10, 0x148($t6) +/* 0B580C 7F080CDC 3C018005 */ lui $at, %hi(D_800550D8) +/* 0B5810 7F080CE0 C43250D8 */ lwc1 $f18, %lo(D_800550D8)($at) +/* 0B5814 7F080CE4 460A4401 */ sub.s $f16, $f8, $f10 +/* 0B5818 7F080CE8 27A5004C */ addiu $a1, $sp, 0x4c +/* 0B581C 7F080CEC 46128302 */ mul.s $f12, $f16, $f18 +/* 0B5820 7F080CF0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B5824 7F080CF4 00000000 */ nop +/* 0B5828 7F080CF8 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B582C 7F080CFC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0B5830 7F080D00 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B5834 7F080D04 C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0B5838 7F080D08 8E0F0000 */ lw $t7, ($s0) +/* 0B583C 7F080D0C E5E404C0 */ swc1 $f4, 0x4c0($t7) +/* 0B5840 7F080D10 8E180000 */ lw $t8, ($s0) +/* 0B5844 7F080D14 C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 0B5848 7F080D18 E70604C4 */ swc1 $f6, 0x4c4($t8) +/* 0B584C 7F080D1C 8E190000 */ lw $t9, ($s0) +/* 0B5850 7F080D20 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0B5854 7F080D24 E72804C8 */ swc1 $f8, 0x4c8($t9) +/* 0B5858 7F080D28 8E080000 */ lw $t0, ($s0) +/* 0B585C 7F080D2C C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 0B5860 7F080D30 E50A04CC */ swc1 $f10, 0x4cc($t0) +/* 0B5864 7F080D34 8E090000 */ lw $t1, ($s0) +/* 0B5868 7F080D38 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0B586C 7F080D3C E53004D0 */ swc1 $f16, 0x4d0($t1) +/* 0B5870 7F080D40 8E0A0000 */ lw $t2, ($s0) +/* 0B5874 7F080D44 C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0B5878 7F080D48 E55204D4 */ swc1 $f18, 0x4d4($t2) +/* 0B587C 7F080D4C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B5880 7F080D50 8FB00038 */ lw $s0, 0x38($sp) +/* 0B5884 7F080D54 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0B5888 7F080D58 03E00008 */ jr $ra +/* 0B588C 7F080D5C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F080D60(s32 arg1, ? arg2) { + f32 phi_f2; + + // Node 0 + if (ptr_playerstank != 0) + { + // Node 1 + phi_f2 = (sub_GAME_7F0B2970(arg1, arg2, ptr_playerstank->unk4->unk10->unk14, ptr_playerstank->unk4->unk10->unk8, ptr_playerstank->unk4->unk10->unk10, ptr_playerstank) + D_80036454); + } + else + { + // Node 2 + if (pPlayer->field_2A6C != 0) + { + // Node 3 + phi_f2 = sub_GAME_7F0B2970(arg1, arg2, pPlayer->field_2A70, arg1, arg2, ptr_playerstank); + } + else + { + // Node 4 + phi_f2 = sub_GAME_7F0B2970(arg1, arg2, arg1, arg2, ptr_playerstank); + } + } + // Node 5 + return phi_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F080D60 +/* 0B5890 7F080D60 3C078003 */ lui $a3, %hi(ptr_playerstank) +/* 0B5894 7F080D64 8CE76450 */ lw $a3, %lo(ptr_playerstank)($a3) +/* 0B5898 7F080D68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B589C 7F080D6C 44856000 */ mtc1 $a1, $f12 +/* 0B58A0 7F080D70 44867000 */ mtc1 $a2, $f14 +/* 0B58A4 7F080D74 10E0000B */ beqz $a3, .L7F080DA4 +/* 0B58A8 7F080D78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B58AC 7F080D7C 8CE30004 */ lw $v1, 4($a3) +/* 0B58B0 7F080D80 8C620010 */ lw $v0, 0x10($v1) +/* 0B58B4 7F080D84 8C440014 */ lw $a0, 0x14($v0) +/* 0B58B8 7F080D88 8C450008 */ lw $a1, 8($v0) +/* 0B58BC 7F080D8C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B58C0 7F080D90 8C460010 */ lw $a2, 0x10($v0) +/* 0B58C4 7F080D94 3C018003 */ lui $at, %hi(D_80036454) +/* 0B58C8 7F080D98 C4246454 */ lwc1 $f4, %lo(D_80036454)($at) +/* 0B58CC 7F080D9C 10000011 */ b .L7F080DE4 +/* 0B58D0 7F080DA0 46040080 */ add.s $f2, $f0, $f4 +.L7F080DA4: +/* 0B58D4 7F080DA4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B58D8 7F080DA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B58DC 7F080DAC 8C4E2A6C */ lw $t6, 0x2a6c($v0) +/* 0B58E0 7F080DB0 51C00008 */ beql $t6, $zero, .L7F080DD4 +/* 0B58E4 7F080DB4 44056000 */ mfc1 $a1, $f12 +/* 0B58E8 7F080DB8 44056000 */ mfc1 $a1, $f12 +/* 0B58EC 7F080DBC 44067000 */ mfc1 $a2, $f14 +/* 0B58F0 7F080DC0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B58F4 7F080DC4 8C442A70 */ lw $a0, 0x2a70($v0) +/* 0B58F8 7F080DC8 10000006 */ b .L7F080DE4 +/* 0B58FC 7F080DCC 46000086 */ mov.s $f2, $f0 +/* 0B5900 7F080DD0 44056000 */ mfc1 $a1, $f12 +.L7F080DD4: +/* 0B5904 7F080DD4 44067000 */ mfc1 $a2, $f14 +/* 0B5908 7F080DD8 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B590C 7F080DDC 00000000 */ nop +/* 0B5910 7F080DE0 46000086 */ mov.s $f2, $f0 +.L7F080DE4: +/* 0B5914 7F080DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B5918 7F080DE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B591C 7F080DEC 46001006 */ mov.s $f0, $f2 +/* 0B5920 7F080DF0 03E00008 */ jr $ra +/* 0B5924 7F080DF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080DF8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550DC +.word 0x3e2e147c /*0.17000002*/ +glabel D_800550E0 +.word 0x3f547ae1 /*0.82999998*/ +glabel D_800550E4 +.word 0x3e2e147c /*0.17000002*/ +glabel D_800550E8 +.word 0x3f547ae1 /*0.82999998*/ +glabel D_800550EC +.word 0x3fb1c71d /*1.388889*/ +glabel player_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel player_view_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_800550F8 +.word 0xc1555555 /*-13.333333*/ +glabel D_800550FC +.word 0x41055555 /*8.333333*/ +glabel D_80055100 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055104 +.word 0x3e4ccccc /*0.19999999*/ +.text +glabel sub_GAME_7F080DF8 +/* 0B5928 7F080DF8 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B592C 7F080DFC 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B5930 7F080E00 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0B5934 7F080E04 44856000 */ mtc1 $a1, $f12 +/* 0B5938 7F080E08 24010001 */ li $at, 1 +/* 0B593C 7F080E0C AFBF0024 */ sw $ra, 0x24($sp) +/* 0B5940 7F080E10 15C1002C */ bne $t6, $at, .L7F080EC4 +/* 0B5944 7F080E14 AFB00020 */ sw $s0, 0x20($sp) +/* 0B5948 7F080E18 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B594C 7F080E1C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5950 7F080E20 8D100000 */ lw $s0, ($t0) +/* 0B5954 7F080E24 8E040488 */ lw $a0, 0x488($s0) +/* 0B5958 7F080E28 8E05048C */ lw $a1, 0x48c($s0) +/* 0B595C 7F080E2C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5960 7F080E30 8E060494 */ lw $a2, 0x494($s0) +/* 0B5964 7F080E34 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5968 7F080E38 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B596C 7F080E3C 8D0F0000 */ lw $t7, ($t0) +/* 0B5970 7F080E40 3C018005 */ lui $at, %hi(D_800550DC) +/* 0B5974 7F080E44 C42250DC */ lwc1 $f2, %lo(D_800550DC)($at) +/* 0B5978 7F080E48 E5E00074 */ swc1 $f0, 0x74($t7) +/* 0B597C 7F080E4C 8D100000 */ lw $s0, ($t0) +/* 0B5980 7F080E50 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5984 7F080E54 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5988 7F080E58 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B598C 7F080E5C 3C018005 */ lui $at, %hi(D_800550E0) +/* 0B5990 7F080E60 00001825 */ move $v1, $zero +/* 0B5994 7F080E64 46022183 */ div.s $f6, $f4, $f2 +/* 0B5998 7F080E68 E606006C */ swc1 $f6, 0x6c($s0) +/* 0B599C 7F080E6C 8CF80000 */ lw $t8, ($a3) +/* 0B59A0 7F080E70 5B00000F */ blezl $t8, .L7F080EB0 +/* 0B59A4 7F080E74 8D100000 */ lw $s0, ($t0) +/* 0B59A8 7F080E78 C42050E0 */ lwc1 $f0, %lo(D_800550E0)($at) +/* 0B59AC 7F080E7C 8D100000 */ lw $s0, ($t0) +.L7F080E80: +/* 0B59B0 7F080E80 24630001 */ addiu $v1, $v1, 1 +/* 0B59B4 7F080E84 C608006C */ lwc1 $f8, 0x6c($s0) +/* 0B59B8 7F080E88 C6040074 */ lwc1 $f4, 0x74($s0) +/* 0B59BC 7F080E8C 46004282 */ mul.s $f10, $f8, $f0 +/* 0B59C0 7F080E90 46045180 */ add.s $f6, $f10, $f4 +/* 0B59C4 7F080E94 E606006C */ swc1 $f6, 0x6c($s0) +/* 0B59C8 7F080E98 8CF90000 */ lw $t9, ($a3) +/* 0B59CC 7F080E9C 0079082A */ slt $at, $v1, $t9 +/* 0B59D0 7F080EA0 5420FFF7 */ bnezl $at, .L7F080E80 +/* 0B59D4 7F080EA4 8D100000 */ lw $s0, ($t0) +/* 0B59D8 7F080EA8 00001825 */ move $v1, $zero +/* 0B59DC 7F080EAC 8D100000 */ lw $s0, ($t0) +.L7F080EB0: +/* 0B59E0 7F080EB0 44808000 */ mtc1 $zero, $f16 +/* 0B59E4 7F080EB4 C608006C */ lwc1 $f8, 0x6c($s0) +/* 0B59E8 7F080EB8 46024282 */ mul.s $f10, $f8, $f2 +/* 0B59EC 7F080EBC 10000136 */ b .L7F081398 +/* 0B59F0 7F080EC0 E60A0070 */ swc1 $f10, 0x70($s0) +.L7F080EC4: +/* 0B59F4 7F080EC4 10800016 */ beqz $a0, .L7F080F20 +/* 0B59F8 7F080EC8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B59FC 7F080ECC 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A00 7F080ED0 8D100000 */ lw $s0, ($t0) +/* 0B5A04 7F080ED4 C6040074 */ lwc1 $f4, 0x74($s0) +/* 0B5A08 7F080ED8 460C2180 */ add.s $f6, $f4, $f12 +/* 0B5A0C 7F080EDC E6060074 */ swc1 $f6, 0x74($s0) +/* 0B5A10 7F080EE0 8D100000 */ lw $s0, ($t0) +/* 0B5A14 7F080EE4 8E040488 */ lw $a0, 0x488($s0) +/* 0B5A18 7F080EE8 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5A1C 7F080EEC 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5A20 7F080EF0 8E060494 */ lw $a2, 0x494($s0) +/* 0B5A24 7F080EF4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A28 7F080EF8 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A2C 7F080EFC 8D100000 */ lw $s0, ($t0) +/* 0B5A30 7F080F00 C6080074 */ lwc1 $f8, 0x74($s0) +/* 0B5A34 7F080F04 4600403C */ c.lt.s $f8, $f0 +/* 0B5A38 7F080F08 00000000 */ nop +/* 0B5A3C 7F080F0C 45020034 */ bc1fl .L7F080FE0 +/* 0B5A40 7F080F10 8E0C2A6C */ lw $t4, 0x2a6c($s0) +/* 0B5A44 7F080F14 E6000074 */ swc1 $f0, 0x74($s0) +/* 0B5A48 7F080F18 10000030 */ b .L7F080FDC +/* 0B5A4C 7F080F1C 8D100000 */ lw $s0, ($t0) +.L7F080F20: +/* 0B5A50 7F080F20 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A54 7F080F24 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A58 7F080F28 8D100000 */ lw $s0, ($t0) +/* 0B5A5C 7F080F2C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0B5A60 7F080F30 27A60058 */ addiu $a2, $sp, 0x58 +/* 0B5A64 7F080F34 8E090488 */ lw $t1, 0x488($s0) +/* 0B5A68 7F080F38 27A70054 */ addiu $a3, $sp, 0x54 +/* 0B5A6C 7F080F3C AFA90060 */ sw $t1, 0x60($sp) +/* 0B5A70 7F080F40 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B5A74 7F080F44 8E0400A8 */ lw $a0, 0xa8($s0) +/* 0B5A78 7F080F48 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A7C 7F080F4C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A80 7F080F50 8D100000 */ lw $s0, ($t0) +/* 0B5A84 7F080F54 8E040488 */ lw $a0, 0x488($s0) +/* 0B5A88 7F080F58 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5A8C 7F080F5C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5A90 7F080F60 8E060494 */ lw $a2, 0x494($s0) +/* 0B5A94 7F080F64 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A98 7F080F68 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A9C 7F080F6C 8D040000 */ lw $a0, ($t0) +/* 0B5AA0 7F080F70 0FC225E0 */ jal sub_GAME_7F089780 +/* 0B5AA4 7F080F74 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0B5AA8 7F080F78 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5AAC 7F080F7C C7A20064 */ lwc1 $f2, 0x64($sp) +/* 0B5AB0 7F080F80 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5AB4 7F080F84 8D100000 */ lw $s0, ($t0) +/* 0B5AB8 7F080F88 46020280 */ add.s $f10, $f0, $f2 +/* 0B5ABC 7F080F8C 27A40060 */ addiu $a0, $sp, 0x60 +/* 0B5AC0 7F080F90 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5AC4 7F080F94 8E060494 */ lw $a2, 0x494($s0) +/* 0B5AC8 7F080F98 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B5ACC 7F080F9C 0FC2C9AE */ jal sub_GAME_7F0B26B8 +/* 0B5AD0 7F080FA0 8FA7005C */ lw $a3, 0x5c($sp) +/* 0B5AD4 7F080FA4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5AD8 7F080FA8 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5ADC 7F080FAC 04400008 */ bltz $v0, .L7F080FD0 +/* 0B5AE0 7F080FB0 C7A20064 */ lwc1 $f2, 0x64($sp) +/* 0B5AE4 7F080FB4 8D0A0000 */ lw $t2, ($t0) +/* 0B5AE8 7F080FB8 C5400074 */ lwc1 $f0, 0x74($t2) +/* 0B5AEC 7F080FBC 4600103C */ c.lt.s $f2, $f0 +/* 0B5AF0 7F080FC0 00000000 */ nop +/* 0B5AF4 7F080FC4 45020003 */ bc1fl .L7F080FD4 +/* 0B5AF8 7F080FC8 8D0B0000 */ lw $t3, ($t0) +/* 0B5AFC 7F080FCC 46000086 */ mov.s $f2, $f0 +.L7F080FD0: +/* 0B5B00 7F080FD0 8D0B0000 */ lw $t3, ($t0) +.L7F080FD4: +/* 0B5B04 7F080FD4 E5620074 */ swc1 $f2, 0x74($t3) +/* 0B5B08 7F080FD8 8D100000 */ lw $s0, ($t0) +.L7F080FDC: +/* 0B5B0C 7F080FDC 8E0C2A6C */ lw $t4, 0x2a6c($s0) +.L7F080FE0: +/* 0B5B10 7F080FE0 44808000 */ mtc1 $zero, $f16 +/* 0B5B14 7F080FE4 5180000F */ beql $t4, $zero, .L7F081024 +/* 0B5B18 7F080FE8 C608007C */ lwc1 $f8, 0x7c($s0) +/* 0B5B1C 7F080FEC C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5B20 7F080FF0 C6060074 */ lwc1 $f6, 0x74($s0) +/* 0B5B24 7F080FF4 4606203C */ c.lt.s $f4, $f6 +/* 0B5B28 7F080FF8 00000000 */ nop +/* 0B5B2C 7F080FFC 45020009 */ bc1fl .L7F081024 +/* 0B5B30 7F081000 C608007C */ lwc1 $f8, 0x7c($s0) +/* 0B5B34 7F081004 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5B38 7F081008 8D100000 */ lw $s0, ($t0) +/* 0B5B3C 7F08100C 8E0D2A70 */ lw $t5, 0x2a70($s0) +/* 0B5B40 7F081010 AE0D0488 */ sw $t5, 0x488($s0) +/* 0B5B44 7F081014 8D0E0000 */ lw $t6, ($t0) +/* 0B5B48 7F081018 ADC02A70 */ sw $zero, 0x2a70($t6) +/* 0B5B4C 7F08101C 8D100000 */ lw $s0, ($t0) +/* 0B5B50 7F081020 C608007C */ lwc1 $f8, 0x7c($s0) +.L7F081024: +/* 0B5B54 7F081024 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5B58 7F081028 4608803E */ c.le.s $f16, $f8 +/* 0B5B5C 7F08102C 00000000 */ nop +/* 0B5B60 7F081030 45010005 */ bc1t .L7F081048 +/* 0B5B64 7F081034 00000000 */ nop +/* 0B5B68 7F081038 C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5B6C 7F08103C 4600603C */ c.lt.s $f12, $f0 +/* 0B5B70 7F081040 00000000 */ nop +/* 0B5B74 7F081044 45000024 */ bc1f .L7F0810D8 +.L7F081048: +/* 0B5B78 7F081048 3C018005 */ lui $at, %hi(D_800550E4) +/* 0B5B7C 7F08104C C42250E4 */ lwc1 $f2, %lo(D_800550E4)($at) +/* 0B5B80 7F081050 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5B84 7F081054 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5B88 7F081058 46026283 */ div.s $f10, $f12, $f2 +/* 0B5B8C 7F08105C 3C018005 */ lui $at, %hi(D_800550E8) +/* 0B5B90 7F081060 00001825 */ move $v1, $zero +/* 0B5B94 7F081064 E60A006C */ swc1 $f10, 0x6c($s0) +/* 0B5B98 7F081068 8CEF0000 */ lw $t7, ($a3) +/* 0B5B9C 7F08106C 59E0000E */ blezl $t7, .L7F0810A8 +/* 0B5BA0 7F081070 8D100000 */ lw $s0, ($t0) +/* 0B5BA4 7F081074 C42050E8 */ lwc1 $f0, %lo(D_800550E8)($at) +/* 0B5BA8 7F081078 8D100000 */ lw $s0, ($t0) +.L7F08107C: +/* 0B5BAC 7F08107C 24630001 */ addiu $v1, $v1, 1 +/* 0B5BB0 7F081080 C604006C */ lwc1 $f4, 0x6c($s0) +/* 0B5BB4 7F081084 C6080074 */ lwc1 $f8, 0x74($s0) +/* 0B5BB8 7F081088 46002182 */ mul.s $f6, $f4, $f0 +/* 0B5BBC 7F08108C 46083280 */ add.s $f10, $f6, $f8 +/* 0B5BC0 7F081090 E60A006C */ swc1 $f10, 0x6c($s0) +/* 0B5BC4 7F081094 8CF80000 */ lw $t8, ($a3) +/* 0B5BC8 7F081098 0078082A */ slt $at, $v1, $t8 +/* 0B5BCC 7F08109C 5420FFF7 */ bnezl $at, .L7F08107C +/* 0B5BD0 7F0810A0 8D100000 */ lw $s0, ($t0) +/* 0B5BD4 7F0810A4 8D100000 */ lw $s0, ($t0) +.L7F0810A8: +/* 0B5BD8 7F0810A8 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5BDC 7F0810AC C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5BE0 7F0810B0 4600603C */ c.lt.s $f12, $f0 +/* 0B5BE4 7F0810B4 00000000 */ nop +/* 0B5BE8 7F0810B8 45020008 */ bc1fl .L7F0810DC +/* 0B5BEC 7F0810BC 460C003C */ c.lt.s $f0, $f12 +/* 0B5BF0 7F0810C0 C604006C */ lwc1 $f4, 0x6c($s0) +/* 0B5BF4 7F0810C4 46022182 */ mul.s $f6, $f4, $f2 +/* 0B5BF8 7F0810C8 E6060070 */ swc1 $f6, 0x70($s0) +/* 0B5BFC 7F0810CC 8D100000 */ lw $s0, ($t0) +/* 0B5C00 7F0810D0 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5C04 7F0810D4 C6000074 */ lwc1 $f0, 0x74($s0) +.L7F0810D8: +/* 0B5C08 7F0810D8 460C003C */ c.lt.s $f0, $f12 +.L7F0810DC: +/* 0B5C0C 7F0810DC 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5C10 7F0810E0 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5C14 7F0810E4 00001825 */ move $v1, $zero +/* 0B5C18 7F0810E8 4500005D */ bc1f .L7F081260 +/* 0B5C1C 7F0810EC C602007C */ lwc1 $f2, 0x7c($s0) +/* 0B5C20 7F0810F0 AFA0006C */ sw $zero, 0x6c($sp) +/* 0B5C24 7F0810F4 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0B5C28 7F0810F8 0FC24406 */ jal get_debug_fast_bond_flag +/* 0B5C2C 7F0810FC E7AC004C */ swc1 $f12, 0x4c($sp) +/* 0B5C30 7F081100 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5C34 7F081104 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5C38 7F081108 44808000 */ mtc1 $zero, $f16 +/* 0B5C3C 7F08110C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5C40 7F081110 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5C44 7F081114 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5C48 7F081118 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0B5C4C 7F08111C 10400011 */ beqz $v0, .L7F081164 +/* 0B5C50 7F081120 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0B5C54 7F081124 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 0B5C58 7F081128 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 0B5C5C 7F08112C C4480000 */ lwc1 $f8, ($v0) +/* 0B5C60 7F081130 46088032 */ c.eq.s $f16, $f8 +/* 0B5C64 7F081134 00000000 */ nop +/* 0B5C68 7F081138 4500000A */ bc1f .L7F081164 +/* 0B5C6C 7F08113C 00000000 */ nop +/* 0B5C70 7F081140 C44A0008 */ lwc1 $f10, 8($v0) +/* 0B5C74 7F081144 3C018005 */ lui $at, %hi(D_800550EC) +/* 0B5C78 7F081148 460A8032 */ c.eq.s $f16, $f10 +/* 0B5C7C 7F08114C 00000000 */ nop +/* 0B5C80 7F081150 45000004 */ bc1f .L7F081164 +/* 0B5C84 7F081154 00000000 */ nop +/* 0B5C88 7F081158 C42450EC */ lwc1 $f4, %lo(D_800550EC)($at) +/* 0B5C8C 7F08115C 10000004 */ b .L7F081170 +/* 0B5C90 7F081160 E7A40040 */ swc1 $f4, 0x40($sp) +.L7F081164: +/* 0B5C94 7F081164 3C018005 */ lui $at, %hi(player_gravity_modifier) +/* 0B5C98 7F081168 C42650F0 */ lwc1 $f6, %lo(player_gravity_modifier)($at) +/* 0B5C9C 7F08116C E7A60040 */ swc1 $f6, 0x40($sp) +.L7F081170: +/* 0B5CA0 7F081170 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B5CA4 7F081174 C42C8378 */ lwc1 $f12, %lo(global_timer_delta)($at) +/* 0B5CA8 7F081178 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0B5CAC 7F08117C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B5CB0 7F081180 8D100000 */ lw $s0, ($t0) +/* 0B5CB4 7F081184 46086282 */ mul.s $f10, $f12, $f8 +/* 0B5CB8 7F081188 44814000 */ mtc1 $at, $f8 +/* 0B5CBC 7F08118C C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5CC0 7F081190 460A7081 */ sub.s $f2, $f14, $f10 +/* 0B5CC4 7F081194 46027100 */ add.s $f4, $f14, $f2 +/* 0B5CC8 7F081198 46001386 */ mov.s $f14, $f2 +/* 0B5CCC 7F08119C 46046182 */ mul.s $f6, $f12, $f4 +/* 0B5CD0 7F0811A0 00000000 */ nop +/* 0B5CD4 7F0811A4 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5CD8 7F0811A8 460A9480 */ add.s $f18, $f18, $f10 +/* 0B5CDC 7F0811AC 4600903C */ c.lt.s $f18, $f0 +/* 0B5CE0 7F0811B0 00000000 */ nop +/* 0B5CE4 7F0811B4 45000025 */ bc1f .L7F08124C +/* 0B5CE8 7F0811B8 00000000 */ nop +/* 0B5CEC 7F0811BC C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5CF0 7F0811C0 3C018005 */ lui $at, %hi(player_view_gravity_modifier) +/* 0B5CF4 7F0811C4 C42850F4 */ lwc1 $f8, %lo(player_view_gravity_modifier)($at) +/* 0B5CF8 7F0811C8 46002381 */ sub.s $f14, $f4, $f0 +/* 0B5CFC 7F0811CC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B5D00 7F0811D0 44812000 */ mtc1 $at, $f4 +/* 0B5D04 7F0811D4 C602007C */ lwc1 $f2, 0x7c($s0) +/* 0B5D08 7F0811D8 460E7180 */ add.s $f6, $f14, $f14 +/* 0B5D0C 7F0811DC E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0B5D10 7F0811E0 AFA3006C */ sw $v1, 0x6c($sp) +/* 0B5D14 7F0811E4 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5D18 7F0811E8 44814000 */ mtc1 $at, $f8 +/* 0B5D1C 7F0811EC 46045183 */ div.s $f6, $f10, $f4 +/* 0B5D20 7F0811F0 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5D24 7F0811F4 00000000 */ nop +/* 0B5D28 7F0811F8 46021102 */ mul.s $f4, $f2, $f2 +/* 0B5D2C 7F0811FC 0C007DF8 */ jal sqrtf +/* 0B5D30 7F081200 460A2300 */ add.s $f12, $f4, $f10 +/* 0B5D34 7F081204 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5D38 7F081208 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5D3C 7F08120C 8D100000 */ lw $s0, ($t0) +/* 0B5D40 7F081210 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5D44 7F081214 44808000 */ mtc1 $zero, $f16 +/* 0B5D48 7F081218 8E192A6C */ lw $t9, 0x2a6c($s0) +/* 0B5D4C 7F08121C 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5D50 7F081220 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5D54 7F081224 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0B5D58 7F081228 13200008 */ beqz $t9, .L7F08124C +/* 0B5D5C 7F08122C 46000387 */ neg.s $f14, $f0 +/* 0B5D60 7F081230 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5D64 7F081234 8D100000 */ lw $s0, ($t0) +/* 0B5D68 7F081238 8E092A70 */ lw $t1, 0x2a70($s0) +/* 0B5D6C 7F08123C AE090488 */ sw $t1, 0x488($s0) +/* 0B5D70 7F081240 8D0A0000 */ lw $t2, ($t0) +/* 0B5D74 7F081244 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0B5D78 7F081248 8D100000 */ lw $s0, ($t0) +.L7F08124C: +/* 0B5D7C 7F08124C E6120070 */ swc1 $f18, 0x70($s0) +/* 0B5D80 7F081250 8D0B0000 */ lw $t3, ($t0) +/* 0B5D84 7F081254 E56E007C */ swc1 $f14, 0x7c($t3) +/* 0B5D88 7F081258 8D100000 */ lw $s0, ($t0) +/* 0B5D8C 7F08125C C602007C */ lwc1 $f2, 0x7c($s0) +.L7F081260: +/* 0B5D90 7F081260 4610103C */ c.lt.s $f2, $f16 +/* 0B5D94 7F081264 00000000 */ nop +/* 0B5D98 7F081268 4502002B */ bc1fl .L7F081318 +/* 0B5D9C 7F08126C 8E0F2A6C */ lw $t7, 0x2a6c($s0) +/* 0B5DA0 7F081270 C6060074 */ lwc1 $f6, 0x74($s0) +/* 0B5DA4 7F081274 C6080070 */ lwc1 $f8, 0x70($s0) +/* 0B5DA8 7F081278 3C018005 */ lui $at, %hi(D_800550F8) +/* 0B5DAC 7F08127C 4606403E */ c.le.s $f8, $f6 +/* 0B5DB0 7F081280 00000000 */ nop +/* 0B5DB4 7F081284 45020024 */ bc1fl .L7F081318 +/* 0B5DB8 7F081288 8E0F2A6C */ lw $t7, 0x2a6c($s0) +/* 0B5DBC 7F08128C C42450F8 */ lwc1 $f4, %lo(D_800550F8)($at) +/* 0B5DC0 7F081290 240C000F */ li $t4, 15 +/* 0B5DC4 7F081294 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +/* 0B5DC8 7F081298 4604103C */ c.lt.s $f2, $f4 +/* 0B5DCC 7F08129C 00000000 */ nop +/* 0B5DD0 7F0812A0 45020009 */ bc1fl .L7F0812C8 +/* 0B5DD4 7F0812A4 44810000 */ mtc1 $at, $f0 +/* 0B5DD8 7F0812A8 AE0C008C */ sw $t4, 0x8c($s0) +/* 0B5DDC 7F0812AC 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B5DE0 7F0812B0 44815000 */ mtc1 $at, $f10 +/* 0B5DE4 7F0812B4 8D0D0000 */ lw $t5, ($t0) +/* 0B5DE8 7F0812B8 E5AA0090 */ swc1 $f10, 0x90($t5) +/* 0B5DEC 7F0812BC 10000013 */ b .L7F08130C +/* 0B5DF0 7F0812C0 8D100000 */ lw $s0, ($t0) +/* 0B5DF4 7F0812C4 44810000 */ mtc1 $at, $f0 +.L7F0812C8: +/* 0B5DF8 7F0812C8 240E000F */ li $t6, 15 +/* 0B5DFC 7F0812CC 4600103C */ c.lt.s $f2, $f0 +/* 0B5E00 7F0812D0 00000000 */ nop +/* 0B5E04 7F0812D4 4502000E */ bc1fl .L7F081310 +/* 0B5E08 7F0812D8 E610007C */ swc1 $f16, 0x7c($s0) +/* 0B5E0C 7F0812DC AE0E008C */ sw $t6, 0x8c($s0) +/* 0B5E10 7F0812E0 8D100000 */ lw $s0, ($t0) +/* 0B5E14 7F0812E4 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B5E18 7F0812E8 44812000 */ mtc1 $at, $f4 +/* 0B5E1C 7F0812EC C606007C */ lwc1 $f6, 0x7c($s0) +/* 0B5E20 7F0812F0 3C018005 */ lui $at, %hi(D_800550FC) +/* 0B5E24 7F0812F4 46060201 */ sub.s $f8, $f0, $f6 +/* 0B5E28 7F0812F8 C42650FC */ lwc1 $f6, %lo(D_800550FC)($at) +/* 0B5E2C 7F0812FC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B5E30 7F081300 46065203 */ div.s $f8, $f10, $f6 +/* 0B5E34 7F081304 E6080090 */ swc1 $f8, 0x90($s0) +/* 0B5E38 7F081308 8D100000 */ lw $s0, ($t0) +.L7F08130C: +/* 0B5E3C 7F08130C E610007C */ swc1 $f16, 0x7c($s0) +.L7F081310: +/* 0B5E40 7F081310 8D100000 */ lw $s0, ($t0) +/* 0B5E44 7F081314 8E0F2A6C */ lw $t7, 0x2a6c($s0) +.L7F081318: +/* 0B5E48 7F081318 11E0001F */ beqz $t7, .L7F081398 +/* 0B5E4C 7F08131C 02002025 */ move $a0, $s0 +/* 0B5E50 7F081320 0FC225E0 */ jal sub_GAME_7F089780 +/* 0B5E54 7F081324 AFA3006C */ sw $v1, 0x6c($sp) +/* 0B5E58 7F081328 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5E5C 7F08132C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5E60 7F081330 8D100000 */ lw $s0, ($t0) +/* 0B5E64 7F081334 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 0B5E68 7F081338 8E060494 */ lw $a2, 0x494($s0) +/* 0B5E6C 7F08133C 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5E70 7F081340 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B5E74 7F081344 8E040488 */ lw $a0, 0x488($s0) +/* 0B5E78 7F081348 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5E7C 7F08134C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5E80 7F081350 8D100000 */ lw $s0, ($t0) +/* 0B5E84 7F081354 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0B5E88 7F081358 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5E8C 7F08135C C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5E90 7F081360 44808000 */ mtc1 $zero, $f16 +/* 0B5E94 7F081364 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5E98 7F081368 460A2180 */ add.s $f6, $f4, $f10 +/* 0B5E9C 7F08136C 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5EA0 7F081370 4600303C */ c.lt.s $f6, $f0 +/* 0B5EA4 7F081374 00000000 */ nop +/* 0B5EA8 7F081378 45020008 */ bc1fl .L7F08139C +/* 0B5EAC 7F08137C 8CE90000 */ lw $t1, ($a3) +/* 0B5EB0 7F081380 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5EB4 7F081384 8D100000 */ lw $s0, ($t0) +/* 0B5EB8 7F081388 8E182A70 */ lw $t8, 0x2a70($s0) +/* 0B5EBC 7F08138C AE180488 */ sw $t8, 0x488($s0) +/* 0B5EC0 7F081390 8D190000 */ lw $t9, ($t0) +/* 0B5EC4 7F081394 AF202A70 */ sw $zero, 0x2a70($t9) +.L7F081398: +/* 0B5EC8 7F081398 8CE90000 */ lw $t1, ($a3) +.L7F08139C: +/* 0B5ECC 7F08139C 1920002B */ blez $t1, .L7F08144C +/* 0B5ED0 7F0813A0 3C01C090 */ li $at, 0xC0900000 # -4.500000 +/* 0B5ED4 7F0813A4 44816000 */ mtc1 $at, $f12 +/* 0B5ED8 7F0813A8 3C018005 */ lui $at, %hi(D_80055100) +/* 0B5EDC 7F0813AC C4225100 */ lwc1 $f2, %lo(D_80055100)($at) +/* 0B5EE0 7F0813B0 8D100000 */ lw $s0, ($t0) +.L7F0813B4: +/* 0B5EE4 7F0813B4 8E0A008C */ lw $t2, 0x8c($s0) +/* 0B5EE8 7F0813B8 5940000C */ blezl $t2, .L7F0813EC +/* 0B5EEC 7F0813BC C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5EF0 7F0813C0 C6080084 */ lwc1 $f8, 0x84($s0) +/* 0B5EF4 7F0813C4 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 0B5EF8 7F0813C8 46024102 */ mul.s $f4, $f8, $f2 +/* 0B5EFC 7F0813CC 460A2180 */ add.s $f6, $f4, $f10 +/* 0B5F00 7F0813D0 E6060084 */ swc1 $f6, 0x84($s0) +/* 0B5F04 7F0813D4 8D100000 */ lw $s0, ($t0) +/* 0B5F08 7F0813D8 8E0B008C */ lw $t3, 0x8c($s0) +/* 0B5F0C 7F0813DC 256CFFFF */ addiu $t4, $t3, -1 +/* 0B5F10 7F0813E0 10000015 */ b .L7F081438 +/* 0B5F14 7F0813E4 AE0C008C */ sw $t4, 0x8c($s0) +/* 0B5F18 7F0813E8 C6000090 */ lwc1 $f0, 0x90($s0) +.L7F0813EC: +/* 0B5F1C 7F0813EC 4610003C */ c.lt.s $f0, $f16 +/* 0B5F20 7F0813F0 00000000 */ nop +/* 0B5F24 7F0813F4 4502000D */ bc1fl .L7F08142C +/* 0B5F28 7F0813F8 C6040084 */ lwc1 $f4, 0x84($s0) +/* 0B5F2C 7F0813FC 460C0201 */ sub.s $f8, $f0, $f12 +/* 0B5F30 7F081400 E6080090 */ swc1 $f8, 0x90($s0) +/* 0B5F34 7F081404 8D100000 */ lw $s0, ($t0) +/* 0B5F38 7F081408 C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5F3C 7F08140C 4600803E */ c.le.s $f16, $f0 +/* 0B5F40 7F081410 00000000 */ nop +/* 0B5F44 7F081414 45020005 */ bc1fl .L7F08142C +/* 0B5F48 7F081418 C6040084 */ lwc1 $f4, 0x84($s0) +/* 0B5F4C 7F08141C E6100090 */ swc1 $f16, 0x90($s0) +/* 0B5F50 7F081420 8D100000 */ lw $s0, ($t0) +/* 0B5F54 7F081424 C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5F58 7F081428 C6040084 */ lwc1 $f4, 0x84($s0) +.L7F08142C: +/* 0B5F5C 7F08142C 46022282 */ mul.s $f10, $f4, $f2 +/* 0B5F60 7F081430 46005180 */ add.s $f6, $f10, $f0 +/* 0B5F64 7F081434 E6060084 */ swc1 $f6, 0x84($s0) +.L7F081438: +/* 0B5F68 7F081438 8CED0000 */ lw $t5, ($a3) +/* 0B5F6C 7F08143C 24630001 */ addiu $v1, $v1, 1 +/* 0B5F70 7F081440 006D082A */ slt $at, $v1, $t5 +/* 0B5F74 7F081444 5420FFDB */ bnezl $at, .L7F0813B4 +/* 0B5F78 7F081448 8D100000 */ lw $s0, ($t0) +.L7F08144C: +/* 0B5F7C 7F08144C 8D100000 */ lw $s0, ($t0) +/* 0B5F80 7F081450 3C018005 */ lui $at, %hi(D_80055104) +/* 0B5F84 7F081454 C4245104 */ lwc1 $f4, %lo(D_80055104)($at) +/* 0B5F88 7F081458 C6080084 */ lwc1 $f8, 0x84($s0) +/* 0B5F8C 7F08145C 46044282 */ mul.s $f10, $f8, $f4 +/* 0B5F90 7F081460 E60A0088 */ swc1 $f10, 0x88($s0) +/* 0B5F94 7F081464 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B5F98 7F081468 8FB00020 */ lw $s0, 0x20($sp) +/* 0B5F9C 7F08146C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0B5FA0 7F081470 03E00008 */ jr $ra +/* 0B5FA4 7F081474 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F081478(void) { + ?32 sp28; + ?32 sp2C; + f32 temp_f0_2; + f32 temp_f0; + s32 temp_v1; + f32 phi_f0; + void *phi_v0; + void *phi_v0_2; + s32 phi_v1; + + // Node 0 + pPlayer->field_29BC = (f32) ((pPlayer->field_500 * pPlayersPerm->unk64) + 7.0f); + temp_f0_2 = (pPlayer->field_29BC + ((pPlayer->field_88 + pPlayer->ducking_height_offset) * pPlayersPerm->unk64)); + phi_f0 = temp_f0_2; + if (temp_f0_2 < 30.0f) + { + // Node 1 + phi_f0 = 30.0f; + } + // Node 2 + pPlayer->field_490 = (f32) (pPlayer->field_70 + phi_f0); + if (((cameramode == 6) || (cameramode == 7)) || (cameramode == 7)) + { + // Node 5 + if (pPlayer->field_D4 == 0) + { + // Node 6 + pPlayer->field_4B4 = (f32) pPlayer->field_48C; + pPlayer->field_4B8 = (f32) pPlayer->field_490; + pPlayer->field_4BC = (f32) pPlayer->field_494; + } + } + else + { + // Node 6 + pPlayer->field_4B4 = (f32) pPlayer->field_48C; + pPlayer->field_4B8 = (f32) pPlayer->field_490; + pPlayer->field_4BC = (f32) pPlayer->field_494; + } + // Node 7 + phi_v0 = pPlayer; + if (pPlayer->bonddead != 0) + { + // Node 8 + temp_f0 = pPlayer->field_29C0; + phi_v0 = pPlayer; + if (0.0f < temp_f0) + { + // Node 9 + pPlayer->field_29C0 = (f32) (temp_f0 - 0.25f); + phi_v0 = pPlayer; + if (pPlayer->field_29C0 < 0.0f) + { + // Node 10 + pPlayer->field_29C0 = 0.0f; + phi_v0 = pPlayer; + } + } + } + // Node 11 + phi_v0_2 = phi_v0; + if (phi_v0->unk158 < 0.0f) + { + // Node 12 + phi_v0->unk4B8 = (f32) (phi_v0->unk4B8 + (-(1.0f - phi_v0->unk164) * phi_v0->unk29C0)); + phi_v0_2 = pPlayer; + } + // Node 13 + stanlinelog_flag = 0; + sp2C = (?32) phi_v0_2->unk488; + sp28 = (?32) stanlinelog_flag; + sub_GAME_7F0B0BE4(&sp2C, phi_v0_2->unk48C, phi_v0_2->unk494, phi_v0_2->unk4B4, (f32) phi_v0_2->unk4BC); + stanlinelog_flag = sp28; + pPlayer->field_4D8 = sp2C; + pPlayer->field_4A4 = (f32) pPlayer->field_4B4; + pPlayer->field_4AC = (f32) pPlayer->field_4BC; + pPlayer->field_4A8 = sub_GAME_7F080D60(pPlayer->field_4D8, pPlayer->field_4B4, pPlayer->field_4BC); + pPlayer->field_A8->unk14 = (?32) pPlayer->field_488; + pPlayer->field_A8->unk8 = (f32) pPlayer->field_48C; + pPlayer->field_A8->unkC = (f32) pPlayer->field_490; + pPlayer->field_A8->unk10 = (f32) pPlayer->field_494; + if (clock_timer > 0) + { + // Node 14 + phi_v1 = 0; +loop_15: + // Node 15 + temp_v1 = (phi_v1 + 1); + pPlayer->field_3B8 = (f32) (pPlayer->field_4B4 + (D_80055108 * pPlayer->field_3B8)); + pPlayer->field_3BC = (f32) (pPlayer->field_4B8 + (D_80055108 * pPlayer->field_3BC)); + pPlayer->field_3C0 = (f32) (pPlayer->field_4BC + (D_80055108 * pPlayer->field_3C0)); + phi_v1 = temp_v1; + if (temp_v1 < clock_timer) + { + goto loop_15; + } + } + // Node 16 + pPlayer->field_3C4 = (f32) (pPlayer->field_3B8 * D_8005510C); + pPlayer->field_3C8 = (f32) (pPlayer->field_3BC * D_8005510C); + pPlayer->field_3CC = (f32) (pPlayer->field_3C0 * D_8005510C); + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055108 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005510C +.word 0x3dccccd0 /*0.10000002*/ +.text +glabel sub_GAME_7F081478 +/* 0B5FA8 7F081478 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 0B5FAC 7F08147C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5FB0 7F081480 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5FB4 7F081484 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 0B5FB8 7F081488 8C6E0000 */ lw $t6, ($v1) +/* 0B5FBC 7F08148C 8D020000 */ lw $v0, ($t0) +/* 0B5FC0 7F081490 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0B5FC4 7F081494 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B5FC8 7F081498 C5C60064 */ lwc1 $f6, 0x64($t6) +/* 0B5FCC 7F08149C C4440500 */ lwc1 $f4, 0x500($v0) +/* 0B5FD0 7F0814A0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B5FD4 7F0814A4 44811000 */ mtc1 $at, $f2 +/* 0B5FD8 7F0814A8 46062202 */ mul.s $f8, $f4, $f6 +/* 0B5FDC 7F0814AC 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0B5FE0 7F0814B0 44815000 */ mtc1 $at, $f10 +/* 0B5FE4 7F0814B4 27A4002C */ addiu $a0, $sp, 0x2c +/* 0B5FE8 7F0814B8 460A4400 */ add.s $f16, $f8, $f10 +/* 0B5FEC 7F0814BC E45029BC */ swc1 $f16, 0x29bc($v0) +/* 0B5FF0 7F0814C0 8D020000 */ lw $v0, ($t0) +/* 0B5FF4 7F0814C4 8C6F0000 */ lw $t7, ($v1) +/* 0B5FF8 7F0814C8 C4520088 */ lwc1 $f18, 0x88($v0) +/* 0B5FFC 7F0814CC C44400A0 */ lwc1 $f4, 0xa0($v0) +/* 0B6000 7F0814D0 C5E80064 */ lwc1 $f8, 0x64($t7) +/* 0B6004 7F0814D4 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 0B6008 7F0814D8 46049180 */ add.s $f6, $f18, $f4 +/* 0B600C 7F0814DC 46083282 */ mul.s $f10, $f6, $f8 +/* 0B6010 7F0814E0 460A8000 */ add.s $f0, $f16, $f10 +/* 0B6014 7F0814E4 4602003C */ c.lt.s $f0, $f2 +/* 0B6018 7F0814E8 00000000 */ nop +/* 0B601C 7F0814EC 45020003 */ bc1fl .L7F0814FC +/* 0B6020 7F0814F0 C4520070 */ lwc1 $f18, 0x70($v0) +/* 0B6024 7F0814F4 46001006 */ mov.s $f0, $f2 +/* 0B6028 7F0814F8 C4520070 */ lwc1 $f18, 0x70($v0) +.L7F0814FC: +/* 0B602C 7F0814FC 3C038003 */ lui $v1, %hi(cameramode) +/* 0B6030 7F081500 24010005 */ li $at, 5 +/* 0B6034 7F081504 46009100 */ add.s $f4, $f18, $f0 +/* 0B6038 7F081508 E4440490 */ swc1 $f4, 0x490($v0) +/* 0B603C 7F08150C 8C636494 */ lw $v1, %lo(cameramode)($v1) +/* 0B6040 7F081510 10610005 */ beq $v1, $at, .L7F081528 +/* 0B6044 7F081514 24010006 */ li $at, 6 +/* 0B6048 7F081518 10610003 */ beq $v1, $at, .L7F081528 +/* 0B604C 7F08151C 24010007 */ li $at, 7 +/* 0B6050 7F081520 54610006 */ bnel $v1, $at, .L7F08153C +/* 0B6054 7F081524 8D020000 */ lw $v0, ($t0) +.L7F081528: +/* 0B6058 7F081528 8D020000 */ lw $v0, ($t0) +/* 0B605C 7F08152C 8C5800D4 */ lw $t8, 0xd4($v0) +/* 0B6060 7F081530 5700000C */ bnezl $t8, .L7F081564 +/* 0B6064 7F081534 8C5900D8 */ lw $t9, 0xd8($v0) +/* 0B6068 7F081538 8D020000 */ lw $v0, ($t0) +.L7F08153C: +/* 0B606C 7F08153C C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B6070 7F081540 E44604B4 */ swc1 $f6, 0x4b4($v0) +/* 0B6074 7F081544 8D020000 */ lw $v0, ($t0) +/* 0B6078 7F081548 C4480490 */ lwc1 $f8, 0x490($v0) +/* 0B607C 7F08154C E44804B8 */ swc1 $f8, 0x4b8($v0) +/* 0B6080 7F081550 8D020000 */ lw $v0, ($t0) +/* 0B6084 7F081554 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B6088 7F081558 E45004BC */ swc1 $f16, 0x4bc($v0) +/* 0B608C 7F08155C 8D020000 */ lw $v0, ($t0) +/* 0B6090 7F081560 8C5900D8 */ lw $t9, 0xd8($v0) +.L7F081564: +/* 0B6094 7F081564 3C038004 */ lui $v1, %hi(stanlinelog_flag) +/* 0B6098 7F081568 24630FB4 */ addiu $v1, %lo(stanlinelog_flag) # addiu $v1, $v1, 0xfb4 +/* 0B609C 7F08156C 53200015 */ beql $t9, $zero, .L7F0815C4 +/* 0B60A0 7F081570 44801000 */ mtc1 $zero, $f2 +/* 0B60A4 7F081574 44801000 */ mtc1 $zero, $f2 +/* 0B60A8 7F081578 C44029C0 */ lwc1 $f0, 0x29c0($v0) +/* 0B60AC 7F08157C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B60B0 7F081580 4600103C */ c.lt.s $f2, $f0 +/* 0B60B4 7F081584 00000000 */ nop +/* 0B60B8 7F081588 4502000E */ bc1fl .L7F0815C4 +/* 0B60BC 7F08158C 44801000 */ mtc1 $zero, $f2 +/* 0B60C0 7F081590 44815000 */ mtc1 $at, $f10 +/* 0B60C4 7F081594 00000000 */ nop +/* 0B60C8 7F081598 460A0481 */ sub.s $f18, $f0, $f10 +/* 0B60CC 7F08159C E45229C0 */ swc1 $f18, 0x29c0($v0) +/* 0B60D0 7F0815A0 8D020000 */ lw $v0, ($t0) +/* 0B60D4 7F0815A4 C44429C0 */ lwc1 $f4, 0x29c0($v0) +/* 0B60D8 7F0815A8 4602203C */ c.lt.s $f4, $f2 +/* 0B60DC 7F0815AC 00000000 */ nop +/* 0B60E0 7F0815B0 45020004 */ bc1fl .L7F0815C4 +/* 0B60E4 7F0815B4 44801000 */ mtc1 $zero, $f2 +/* 0B60E8 7F0815B8 E44229C0 */ swc1 $f2, 0x29c0($v0) +/* 0B60EC 7F0815BC 8D020000 */ lw $v0, ($t0) +/* 0B60F0 7F0815C0 44801000 */ mtc1 $zero, $f2 +.L7F0815C4: +/* 0B60F4 7F0815C4 C4460158 */ lwc1 $f6, 0x158($v0) +/* 0B60F8 7F0815C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B60FC 7F0815CC 4602303C */ c.lt.s $f6, $f2 +/* 0B6100 7F0815D0 00000000 */ nop +/* 0B6104 7F0815D4 4502000C */ bc1fl .L7F081608 +/* 0B6108 7F0815D8 8C490488 */ lw $t1, 0x488($v0) +/* 0B610C 7F0815DC 44814000 */ mtc1 $at, $f8 +/* 0B6110 7F0815E0 C4500164 */ lwc1 $f16, 0x164($v0) +/* 0B6114 7F0815E4 C44429C0 */ lwc1 $f4, 0x29c0($v0) +/* 0B6118 7F0815E8 46104281 */ sub.s $f10, $f8, $f16 +/* 0B611C 7F0815EC C44804B8 */ lwc1 $f8, 0x4b8($v0) +/* 0B6120 7F0815F0 46005487 */ neg.s $f18, $f10 +/* 0B6124 7F0815F4 46049182 */ mul.s $f6, $f18, $f4 +/* 0B6128 7F0815F8 46064400 */ add.s $f16, $f8, $f6 +/* 0B612C 7F0815FC E45004B8 */ swc1 $f16, 0x4b8($v0) +/* 0B6130 7F081600 8D020000 */ lw $v0, ($t0) +/* 0B6134 7F081604 8C490488 */ lw $t1, 0x488($v0) +.L7F081608: +/* 0B6138 7F081608 8C6A0000 */ lw $t2, ($v1) +/* 0B613C 7F08160C AC600000 */ sw $zero, ($v1) +/* 0B6140 7F081610 AFA9002C */ sw $t1, 0x2c($sp) +/* 0B6144 7F081614 AFAA0028 */ sw $t2, 0x28($sp) +/* 0B6148 7F081618 C44A04BC */ lwc1 $f10, 0x4bc($v0) +/* 0B614C 7F08161C 8C4704B4 */ lw $a3, 0x4b4($v0) +/* 0B6150 7F081620 8C460494 */ lw $a2, 0x494($v0) +/* 0B6154 7F081624 8C45048C */ lw $a1, 0x48c($v0) +/* 0B6158 7F081628 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0B615C 7F08162C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B6160 7F081630 8FAB0028 */ lw $t3, 0x28($sp) +/* 0B6164 7F081634 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B6168 7F081638 3C018004 */ lui $at, %hi(stanlinelog_flag) +/* 0B616C 7F08163C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B6170 7F081640 AC2B0FB4 */ sw $t3, %lo(stanlinelog_flag)($at) +/* 0B6174 7F081644 8D0D0000 */ lw $t5, ($t0) +/* 0B6178 7F081648 8FAC002C */ lw $t4, 0x2c($sp) +/* 0B617C 7F08164C ADAC04D8 */ sw $t4, 0x4d8($t5) +/* 0B6180 7F081650 8D020000 */ lw $v0, ($t0) +/* 0B6184 7F081654 C45204B4 */ lwc1 $f18, 0x4b4($v0) +/* 0B6188 7F081658 E45204A4 */ swc1 $f18, 0x4a4($v0) +/* 0B618C 7F08165C 8D020000 */ lw $v0, ($t0) +/* 0B6190 7F081660 C44404BC */ lwc1 $f4, 0x4bc($v0) +/* 0B6194 7F081664 E44404AC */ swc1 $f4, 0x4ac($v0) +/* 0B6198 7F081668 8D020000 */ lw $v0, ($t0) +/* 0B619C 7F08166C 8C4404D8 */ lw $a0, 0x4d8($v0) +/* 0B61A0 7F081670 8C4504B4 */ lw $a1, 0x4b4($v0) +/* 0B61A4 7F081674 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B61A8 7F081678 8C4604BC */ lw $a2, 0x4bc($v0) +/* 0B61AC 7F08167C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B61B0 7F081680 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B61B4 7F081684 8D0E0000 */ lw $t6, ($t0) +/* 0B61B8 7F081688 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B61BC 7F08168C 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 0B61C0 7F081690 E5C004A8 */ swc1 $f0, 0x4a8($t6) +/* 0B61C4 7F081694 8D020000 */ lw $v0, ($t0) +/* 0B61C8 7F081698 00001825 */ move $v1, $zero +/* 0B61CC 7F08169C 3C018005 */ lui $at, %hi(D_80055108) +/* 0B61D0 7F0816A0 8C4F0488 */ lw $t7, 0x488($v0) +/* 0B61D4 7F0816A4 8C5800A8 */ lw $t8, 0xa8($v0) +/* 0B61D8 7F0816A8 AF0F0014 */ sw $t7, 0x14($t8) +/* 0B61DC 7F0816AC 8D020000 */ lw $v0, ($t0) +/* 0B61E0 7F0816B0 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B61E4 7F0816B4 8C5900A8 */ lw $t9, 0xa8($v0) +/* 0B61E8 7F0816B8 E7280008 */ swc1 $f8, 8($t9) +/* 0B61EC 7F0816BC 8D020000 */ lw $v0, ($t0) +/* 0B61F0 7F0816C0 C4460490 */ lwc1 $f6, 0x490($v0) +/* 0B61F4 7F0816C4 8C4900A8 */ lw $t1, 0xa8($v0) +/* 0B61F8 7F0816C8 E526000C */ swc1 $f6, 0xc($t1) +/* 0B61FC 7F0816CC 8D020000 */ lw $v0, ($t0) +/* 0B6200 7F0816D0 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B6204 7F0816D4 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0B6208 7F0816D8 E5500010 */ swc1 $f16, 0x10($t2) +/* 0B620C 7F0816DC 8C8B0000 */ lw $t3, ($a0) +/* 0B6210 7F0816E0 5960001A */ blezl $t3, .L7F08174C +/* 0B6214 7F0816E4 8D020000 */ lw $v0, ($t0) +/* 0B6218 7F0816E8 C4205108 */ lwc1 $f0, %lo(D_80055108)($at) +/* 0B621C 7F0816EC 8D020000 */ lw $v0, ($t0) +.L7F0816F0: +/* 0B6220 7F0816F0 24630001 */ addiu $v1, $v1, 1 +/* 0B6224 7F0816F4 C45203B8 */ lwc1 $f18, 0x3b8($v0) +/* 0B6228 7F0816F8 C44A04B4 */ lwc1 $f10, 0x4b4($v0) +/* 0B622C 7F0816FC 46120102 */ mul.s $f4, $f0, $f18 +/* 0B6230 7F081700 46045200 */ add.s $f8, $f10, $f4 +/* 0B6234 7F081704 E44803B8 */ swc1 $f8, 0x3b8($v0) +/* 0B6238 7F081708 8D020000 */ lw $v0, ($t0) +/* 0B623C 7F08170C C45003BC */ lwc1 $f16, 0x3bc($v0) +/* 0B6240 7F081710 C44604B8 */ lwc1 $f6, 0x4b8($v0) +/* 0B6244 7F081714 46100482 */ mul.s $f18, $f0, $f16 +/* 0B6248 7F081718 46123280 */ add.s $f10, $f6, $f18 +/* 0B624C 7F08171C E44A03BC */ swc1 $f10, 0x3bc($v0) +/* 0B6250 7F081720 8D020000 */ lw $v0, ($t0) +/* 0B6254 7F081724 C44803C0 */ lwc1 $f8, 0x3c0($v0) +/* 0B6258 7F081728 C44404BC */ lwc1 $f4, 0x4bc($v0) +/* 0B625C 7F08172C 46080402 */ mul.s $f16, $f0, $f8 +/* 0B6260 7F081730 46102180 */ add.s $f6, $f4, $f16 +/* 0B6264 7F081734 E44603C0 */ swc1 $f6, 0x3c0($v0) +/* 0B6268 7F081738 8C8C0000 */ lw $t4, ($a0) +/* 0B626C 7F08173C 006C082A */ slt $at, $v1, $t4 +/* 0B6270 7F081740 5420FFEB */ bnezl $at, .L7F0816F0 +/* 0B6274 7F081744 8D020000 */ lw $v0, ($t0) +/* 0B6278 7F081748 8D020000 */ lw $v0, ($t0) +.L7F08174C: +/* 0B627C 7F08174C 3C018005 */ lui $at, %hi(D_8005510C) +/* 0B6280 7F081750 C420510C */ lwc1 $f0, %lo(D_8005510C)($at) +/* 0B6284 7F081754 C45203B8 */ lwc1 $f18, 0x3b8($v0) +/* 0B6288 7F081758 46009282 */ mul.s $f10, $f18, $f0 +/* 0B628C 7F08175C E44A03C4 */ swc1 $f10, 0x3c4($v0) +/* 0B6290 7F081760 8D020000 */ lw $v0, ($t0) +/* 0B6294 7F081764 C44803BC */ lwc1 $f8, 0x3bc($v0) +/* 0B6298 7F081768 46004102 */ mul.s $f4, $f8, $f0 +/* 0B629C 7F08176C E44403C8 */ swc1 $f4, 0x3c8($v0) +/* 0B62A0 7F081770 8D020000 */ lw $v0, ($t0) +/* 0B62A4 7F081774 C45003C0 */ lwc1 $f16, 0x3c0($v0) +/* 0B62A8 7F081778 46008182 */ mul.s $f6, $f16, $f0 +/* 0B62AC 7F08177C E44603CC */ swc1 $f6, 0x3cc($v0) +/* 0B62B0 7F081780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B62B4 7F081784 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0B62B8 7F081788 03E00008 */ jr $ra +/* 0B62BC 7F08178C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F081790(void) { + f32 phi_f0; + void *phi_v0; + f32 phi_f0_2; + void *phi_v0_2; + void *phi_v0_3; + + // Node 0 + if (pPlayer->vv_verta < -180.0f) + { + // Node 1 +loop_2: + // Node 2 + pPlayer->vv_verta = (f32) (pPlayer->vv_verta + 360.0f); + if (pPlayer->vv_verta < -180.0f) + { + goto loop_2; + } + } + // Node 3 + phi_f0 = pPlayer->vv_verta; + phi_v0 = pPlayer; + phi_f0_2 = pPlayer->vv_verta; + phi_v0_2 = pPlayer; + if (180.0f <= pPlayer->vv_verta) + { +loop_4: + // Node 4 + phi_v0->unk158 = (f32) (phi_f0 - 360.0f); + phi_f0 = pPlayer->vv_verta; + phi_v0 = pPlayer; + phi_f0_2 = pPlayer->vv_verta; + phi_v0_2 = pPlayer; + if (180.0f <= pPlayer->vv_verta) + { + goto loop_4; + } + } + // Node 5 + if (90.0f < phi_f0_2) + { + // Node 6 + phi_v0_2->unk158 = 90.0f; + phi_v0_3 = pPlayer; + } + else + { + // Node 7 + phi_v0_3 = phi_v0_2; + if (phi_f0_2 < -90.0f) + { + // Node 8 + phi_v0_2->unk158 = -90.0f; + phi_v0_3 = pPlayer; + } + } + // Node 9 + pPlayer->vv_costheta = cosf((phi_v0_3->unk148 * D_80055110), 360.0f); + pPlayer->vv_sintheta = sinf((pPlayer->field_148 * D_80055114)); + pPlayer->vv_verta360 = (f32) pPlayer->vv_verta; + if (pPlayer->vv_verta360 < 0.0f) + { + // Node 10 + pPlayer->vv_verta360 = (f32) (pPlayer->vv_verta360 + 360.0f); + } + // Node 11 + pPlayer->vv_cosverta = cosf((pPlayer->vv_verta360 * D_80055118), 360.0f); + pPlayer->vv_sinverta = sinf((pPlayer->vv_verta360 * D_8005511C)); + pPlayer->field_498 = (f32) -pPlayer->vv_sintheta; + pPlayer->field_49C = 0.0f; + pPlayer->field_4A0 = (f32) pPlayer->vv_costheta; + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055110 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055114 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055118 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005511C +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F081790 +/* 0B62C0 7F081790 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B62C4 7F081794 AFB00018 */ sw $s0, 0x18($sp) +/* 0B62C8 7F081798 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B62CC 7F08179C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B62D0 7F0817A0 8E020000 */ lw $v0, ($s0) +/* 0B62D4 7F0817A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B62D8 7F0817A8 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0B62DC 7F0817AC 44811000 */ mtc1 $at, $f2 +/* 0B62E0 7F0817B0 C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B62E4 7F0817B4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B62E8 7F0817B8 4602003C */ c.lt.s $f0, $f2 +/* 0B62EC 7F0817BC 00000000 */ nop +/* 0B62F0 7F0817C0 4502000C */ bc1fl .L7F0817F4 +/* 0B62F4 7F0817C4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B62F8 7F0817C8 44817000 */ mtc1 $at, $f14 +/* 0B62FC 7F0817CC 00000000 */ nop +/* 0B6300 7F0817D0 460E0100 */ add.s $f4, $f0, $f14 +.L7F0817D4: +/* 0B6304 7F0817D4 E4440158 */ swc1 $f4, 0x158($v0) +/* 0B6308 7F0817D8 8E020000 */ lw $v0, ($s0) +/* 0B630C 7F0817DC C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B6310 7F0817E0 4602003C */ c.lt.s $f0, $f2 +/* 0B6314 7F0817E4 00000000 */ nop +/* 0B6318 7F0817E8 4503FFFA */ bc1tl .L7F0817D4 +/* 0B631C 7F0817EC 460E0100 */ add.s $f4, $f0, $f14 +/* 0B6320 7F0817F0 3C014334 */ li $at, 0x43340000 # 180.000000 +.L7F0817F4: +/* 0B6324 7F0817F4 44811000 */ mtc1 $at, $f2 +/* 0B6328 7F0817F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B632C 7F0817FC 44817000 */ mtc1 $at, $f14 +/* 0B6330 7F081800 4600103E */ c.le.s $f2, $f0 +/* 0B6334 7F081804 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0B6338 7F081808 4502000A */ bc1fl .L7F081834 +/* 0B633C 7F08180C 44811000 */ mtc1 $at, $f2 +/* 0B6340 7F081810 460E0181 */ sub.s $f6, $f0, $f14 +.L7F081814: +/* 0B6344 7F081814 E4460158 */ swc1 $f6, 0x158($v0) +/* 0B6348 7F081818 8E020000 */ lw $v0, ($s0) +/* 0B634C 7F08181C C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B6350 7F081820 4600103E */ c.le.s $f2, $f0 +/* 0B6354 7F081824 00000000 */ nop +/* 0B6358 7F081828 4503FFFA */ bc1tl .L7F081814 +/* 0B635C 7F08182C 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B6360 7F081830 44811000 */ mtc1 $at, $f2 +.L7F081834: +/* 0B6364 7F081834 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B6368 7F081838 4600103C */ c.lt.s $f2, $f0 +/* 0B636C 7F08183C 00000000 */ nop +/* 0B6370 7F081840 45020005 */ bc1fl .L7F081858 +/* 0B6374 7F081844 44811000 */ mtc1 $at, $f2 +/* 0B6378 7F081848 E4420158 */ swc1 $f2, 0x158($v0) +/* 0B637C 7F08184C 10000009 */ b .L7F081874 +/* 0B6380 7F081850 8E020000 */ lw $v0, ($s0) +/* 0B6384 7F081854 44811000 */ mtc1 $at, $f2 +.L7F081858: +/* 0B6388 7F081858 00000000 */ nop +/* 0B638C 7F08185C 4602003C */ c.lt.s $f0, $f2 +/* 0B6390 7F081860 00000000 */ nop +/* 0B6394 7F081864 45000003 */ bc1f .L7F081874 +/* 0B6398 7F081868 00000000 */ nop +/* 0B639C 7F08186C E4420158 */ swc1 $f2, 0x158($v0) +/* 0B63A0 7F081870 8E020000 */ lw $v0, ($s0) +.L7F081874: +/* 0B63A4 7F081874 3C018005 */ lui $at, %hi(D_80055110) +/* 0B63A8 7F081878 C42A5110 */ lwc1 $f10, %lo(D_80055110)($at) +/* 0B63AC 7F08187C C4480148 */ lwc1 $f8, 0x148($v0) +/* 0B63B0 7F081880 460A4302 */ mul.s $f12, $f8, $f10 +/* 0B63B4 7F081884 0FC15FA8 */ jal cosf +/* 0B63B8 7F081888 00000000 */ nop +/* 0B63BC 7F08188C 8E0E0000 */ lw $t6, ($s0) +/* 0B63C0 7F081890 3C018005 */ lui $at, %hi(D_80055114) +/* 0B63C4 7F081894 E5C00150 */ swc1 $f0, 0x150($t6) +/* 0B63C8 7F081898 8E0F0000 */ lw $t7, ($s0) +/* 0B63CC 7F08189C C4325114 */ lwc1 $f18, %lo(D_80055114)($at) +/* 0B63D0 7F0818A0 C5F00148 */ lwc1 $f16, 0x148($t7) +/* 0B63D4 7F0818A4 46128302 */ mul.s $f12, $f16, $f18 +/* 0B63D8 7F0818A8 0FC15FAB */ jal sinf +/* 0B63DC 7F0818AC 00000000 */ nop +/* 0B63E0 7F0818B0 8E180000 */ lw $t8, ($s0) +/* 0B63E4 7F0818B4 44803000 */ mtc1 $zero, $f6 +/* 0B63E8 7F0818B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B63EC 7F0818BC E7000154 */ swc1 $f0, 0x154($t8) +/* 0B63F0 7F0818C0 8E020000 */ lw $v0, ($s0) +/* 0B63F4 7F0818C4 44817000 */ mtc1 $at, $f14 +/* 0B63F8 7F0818C8 3C018005 */ lui $at, %hi(D_80055118) +/* 0B63FC 7F0818CC C4440158 */ lwc1 $f4, 0x158($v0) +/* 0B6400 7F0818D0 E444015C */ swc1 $f4, 0x15c($v0) +/* 0B6404 7F0818D4 8E020000 */ lw $v0, ($s0) +/* 0B6408 7F0818D8 C442015C */ lwc1 $f2, 0x15c($v0) +/* 0B640C 7F0818DC 4606103C */ c.lt.s $f2, $f6 +/* 0B6410 7F0818E0 00000000 */ nop +/* 0B6414 7F0818E4 45000005 */ bc1f .L7F0818FC +/* 0B6418 7F0818E8 00000000 */ nop +/* 0B641C 7F0818EC 460E1200 */ add.s $f8, $f2, $f14 +/* 0B6420 7F0818F0 E448015C */ swc1 $f8, 0x15c($v0) +/* 0B6424 7F0818F4 8E190000 */ lw $t9, ($s0) +/* 0B6428 7F0818F8 C722015C */ lwc1 $f2, 0x15c($t9) +.L7F0818FC: +/* 0B642C 7F0818FC C42A5118 */ lwc1 $f10, %lo(D_80055118)($at) +/* 0B6430 7F081900 460A1302 */ mul.s $f12, $f2, $f10 +/* 0B6434 7F081904 0FC15FA8 */ jal cosf +/* 0B6438 7F081908 00000000 */ nop +/* 0B643C 7F08190C 8E080000 */ lw $t0, ($s0) +/* 0B6440 7F081910 3C018005 */ lui $at, %hi(D_8005511C) +/* 0B6444 7F081914 E5000164 */ swc1 $f0, 0x164($t0) +/* 0B6448 7F081918 8E090000 */ lw $t1, ($s0) +/* 0B644C 7F08191C C432511C */ lwc1 $f18, %lo(D_8005511C)($at) +/* 0B6450 7F081920 C530015C */ lwc1 $f16, 0x15c($t1) +/* 0B6454 7F081924 46128302 */ mul.s $f12, $f16, $f18 +/* 0B6458 7F081928 0FC15FAB */ jal sinf +/* 0B645C 7F08192C 00000000 */ nop +/* 0B6460 7F081930 8E0A0000 */ lw $t2, ($s0) +/* 0B6464 7F081934 44804000 */ mtc1 $zero, $f8 +/* 0B6468 7F081938 E5400168 */ swc1 $f0, 0x168($t2) +/* 0B646C 7F08193C 8E020000 */ lw $v0, ($s0) +/* 0B6470 7F081940 C4440154 */ lwc1 $f4, 0x154($v0) +/* 0B6474 7F081944 46002187 */ neg.s $f6, $f4 +/* 0B6478 7F081948 E4460498 */ swc1 $f6, 0x498($v0) +/* 0B647C 7F08194C 8E0B0000 */ lw $t3, ($s0) +/* 0B6480 7F081950 E568049C */ swc1 $f8, 0x49c($t3) +/* 0B6484 7F081954 8E020000 */ lw $v0, ($s0) +/* 0B6488 7F081958 C44A0150 */ lwc1 $f10, 0x150($v0) +/* 0B648C 7F08195C E44A04A0 */ swc1 $f10, 0x4a0($v0) +/* 0B6490 7F081960 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B6494 7F081964 8FB00018 */ lw $s0, 0x18($sp) +/* 0B6498 7F081968 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B649C 7F08196C 03E00008 */ jr $ra +/* 0B64A0 7F081970 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_gameplay_interaction(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055120 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055124 +.word 0x3da3d708 /*0.079999983*/ +glabel D_80055128 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005512C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055130 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055134 +.word 0x3f8a3d71 /*1.08*/ +glabel D_80055138 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_8005513C +.word 0x3c23d70a /*0.0099999998*/ +glabel D_80055140 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055144 +.word 0x3f5dddde /*0.86666667*/ +glabel D_80055148 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_8005514C +.word 0x3e99999a /*0.30000001*/ +glabel D_80055150 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055154 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055158 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005515C +.word 0x3da3d708 /*0.079999983*/ +glabel D_80055160 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055164 +.word 0x3dcccccd /*0.1*/ +glabel D_80055168 +.word 0x3f266666 /*0.64999998*/ +.text +glabel controller_gameplay_interaction +/* 0B64A4 7F081974 27BDFE40 */ addiu $sp, $sp, -0x1c0 +/* 0B64A8 7F081978 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0B64AC 7F08197C 4480A000 */ mtc1 $zero, $f20 +/* 0B64B0 7F081980 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B64B4 7F081984 AFB00038 */ sw $s0, 0x38($sp) +/* 0B64B8 7F081988 AFA401C0 */ sw $a0, 0x1c0($sp) +/* 0B64BC 7F08198C AFA501C4 */ sw $a1, 0x1c4($sp) +/* 0B64C0 7F081990 AFA601C8 */ sw $a2, 0x1c8($sp) +/* 0B64C4 7F081994 AFA701CC */ sw $a3, 0x1cc($sp) +/* 0B64C8 7F081998 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0B64CC 7F08199C AFA001B8 */ sw $zero, 0x1b8($sp) +/* 0B64D0 7F0819A0 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 0B64D4 7F0819A4 AFA001B0 */ sw $zero, 0x1b0($sp) +/* 0B64D8 7F0819A8 AFA001AC */ sw $zero, 0x1ac($sp) +/* 0B64DC 7F0819AC AFA001A8 */ sw $zero, 0x1a8($sp) +/* 0B64E0 7F0819B0 AFA001A4 */ sw $zero, 0x1a4($sp) +/* 0B64E4 7F0819B4 AFA001A0 */ sw $zero, 0x1a0($sp) +/* 0B64E8 7F0819B8 AFA0019C */ sw $zero, 0x19c($sp) +/* 0B64EC 7F0819BC AFA00198 */ sw $zero, 0x198($sp) +/* 0B64F0 7F0819C0 AFA00194 */ sw $zero, 0x194($sp) +/* 0B64F4 7F0819C4 AFA00190 */ sw $zero, 0x190($sp) +/* 0B64F8 7F0819C8 AFA00174 */ sw $zero, 0x174($sp) +/* 0B64FC 7F0819CC AFA00170 */ sw $zero, 0x170($sp) +/* 0B6500 7F0819D0 AFA0016C */ sw $zero, 0x16c($sp) +/* 0B6504 7F0819D4 AFA00168 */ sw $zero, 0x168($sp) +/* 0B6508 7F0819D8 AFA0015C */ sw $zero, 0x15c($sp) +/* 0B650C 7F0819DC AFA00158 */ sw $zero, 0x158($sp) +/* 0B6510 7F0819E0 AFA00154 */ sw $zero, 0x154($sp) +/* 0B6514 7F0819E4 AFA00150 */ sw $zero, 0x150($sp) +/* 0B6518 7F0819E8 AFA0014C */ sw $zero, 0x14c($sp) +/* 0B651C 7F0819EC AFA00148 */ sw $zero, 0x148($sp) +/* 0B6520 7F0819F0 E7B4018C */ swc1 $f20, 0x18c($sp) +/* 0B6524 7F0819F4 E7B40188 */ swc1 $f20, 0x188($sp) +/* 0B6528 7F0819F8 E7B40184 */ swc1 $f20, 0x184($sp) +/* 0B652C 7F0819FC E7B40180 */ swc1 $f20, 0x180($sp) +/* 0B6530 7F081A00 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6534 7F081A04 E7B40178 */ swc1 $f20, 0x178($sp) +/* 0B6538 7F081A08 E7B40164 */ swc1 $f20, 0x164($sp) +/* 0B653C 7F081A0C 0FC2938E */ jal get_cur_player_look_vertical_inverted +/* 0B6540 7F081A10 E7B40160 */ swc1 $f20, 0x160($sp) +/* 0B6544 7F081A14 83A401C3 */ lb $a0, 0x1c3($sp) +/* 0B6548 7F081A18 2C4E0001 */ sltiu $t6, $v0, 1 +/* 0B654C 7F081A1C AFAE0144 */ sw $t6, 0x144($sp) +/* 0B6550 7F081A20 2881FFFB */ slti $at, $a0, -5 +/* 0B6554 7F081A24 10200003 */ beqz $at, .L7F081A34 +/* 0B6558 7F081A28 AFA00140 */ sw $zero, 0x140($sp) +/* 0B655C 7F081A2C 10000006 */ b .L7F081A48 +/* 0B6560 7F081A30 24830005 */ addiu $v1, $a0, 5 +.L7F081A34: +/* 0B6564 7F081A34 28810006 */ slti $at, $a0, 6 +/* 0B6568 7F081A38 14200003 */ bnez $at, .L7F081A48 +/* 0B656C 7F081A3C 00001825 */ move $v1, $zero +/* 0B6570 7F081A40 10000001 */ b .L7F081A48 +/* 0B6574 7F081A44 2483FFFB */ addiu $v1, $a0, -5 +.L7F081A48: +/* 0B6578 7F081A48 83A501C7 */ lb $a1, 0x1c7($sp) +/* 0B657C 7F081A4C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B6580 7F081A50 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B6584 7F081A54 28A1FFFB */ slti $at, $a1, -5 +/* 0B6588 7F081A58 10200003 */ beqz $at, .L7F081A68 +/* 0B658C 7F081A5C 83AF01C3 */ lb $t7, 0x1c3($sp) +/* 0B6590 7F081A60 10000006 */ b .L7F081A7C +/* 0B6594 7F081A64 24A20005 */ addiu $v0, $a1, 5 +.L7F081A68: +/* 0B6598 7F081A68 28A10006 */ slti $at, $a1, 6 +/* 0B659C 7F081A6C 14200003 */ bnez $at, .L7F081A7C +/* 0B65A0 7F081A70 00001025 */ move $v0, $zero +/* 0B65A4 7F081A74 10000001 */ b .L7F081A7C +/* 0B65A8 7F081A78 24A2FFFB */ addiu $v0, $a1, -5 +.L7F081A7C: +/* 0B65AC 7F081A7C 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B65B0 7F081A80 8E080000 */ lw $t0, ($s0) +/* 0B65B4 7F081A84 AFAF0134 */ sw $t7, 0x134($sp) +/* 0B65B8 7F081A88 AFA3012C */ sw $v1, 0x12c($sp) +/* 0B65BC 7F081A8C AFA20128 */ sw $v0, 0x128($sp) +/* 0B65C0 7F081A90 AFA30124 */ sw $v1, 0x124($sp) +/* 0B65C4 7F081A94 AFA20120 */ sw $v0, 0x120($sp) +/* 0B65C8 7F081A98 AFB80130 */ sw $t8, 0x130($sp) +/* 0B65CC 7F081A9C 8D1900D8 */ lw $t9, 0xd8($t0) +/* 0B65D0 7F081AA0 1720001B */ bnez $t9, .L7F081B10 +/* 0B65D4 7F081AA4 3C0A8003 */ lui $t2, %hi(camera_80036424) +/* 0B65D8 7F081AA8 8D4A6424 */ lw $t2, %lo(camera_80036424)($t2) +/* 0B65DC 7F081AAC 5D400019 */ bgtzl $t2, .L7F081B14 +/* 0B65E0 7F081AB0 8E080000 */ lw $t0, ($s0) +/* 0B65E4 7F081AB4 8D0201C8 */ lw $v0, 0x1c8($t0) +/* 0B65E8 7F081AB8 24010005 */ li $at, 5 +/* 0B65EC 7F081ABC 97AC01CE */ lhu $t4, 0x1ce($sp) +/* 0B65F0 7F081AC0 50410007 */ beql $v0, $at, .L7F081AE0 +/* 0B65F4 7F081AC4 24010005 */ li $at, 5 +/* 0B65F8 7F081AC8 97AB01CA */ lhu $t3, 0x1ca($sp) +/* 0B65FC 7F081ACC 01806827 */ not $t5, $t4 +/* 0B6600 7F081AD0 016D7024 */ and $t6, $t3, $t5 +/* 0B6604 7F081AD4 31CF1000 */ andi $t7, $t6, 0x1000 +/* 0B6608 7F081AD8 15E00006 */ bnez $t7, .L7F081AF4 +/* 0B660C 7F081ADC 24010005 */ li $at, 5 +.L7F081AE0: +/* 0B6610 7F081AE0 5441000C */ bnel $v0, $at, .L7F081B14 +/* 0B6614 7F081AE4 8E080000 */ lw $t0, ($s0) +/* 0B6618 7F081AE8 8D1801D0 */ lw $t8, 0x1d0($t0) +/* 0B661C 7F081AEC 53000009 */ beql $t8, $zero, .L7F081B14 +/* 0B6620 7F081AF0 8E080000 */ lw $t0, ($s0) +.L7F081AF4: +/* 0B6624 7F081AF4 0FC26919 */ jal get_num_players +/* 0B6628 7F081AF8 00000000 */ nop +/* 0B662C 7F081AFC 24010001 */ li $at, 1 +/* 0B6630 7F081B00 54410004 */ bnel $v0, $at, .L7F081B14 +/* 0B6634 7F081B04 8E080000 */ lw $t0, ($s0) +/* 0B6638 7F081B08 0FC1FE1D */ jal trigger_solo_watch_menu +/* 0B663C 7F081B0C 00002025 */ move $a0, $zero +.L7F081B10: +/* 0B6640 7F081B10 8E080000 */ lw $t0, ($s0) +.L7F081B14: +/* 0B6644 7F081B14 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B6648 7F081B18 572003AC */ bnezl $t9, .L7F0829CC +/* 0B664C 7F081B1C 8E0A0000 */ lw $t2, ($s0) +/* 0B6650 7F081B20 8D0A00D8 */ lw $t2, 0xd8($t0) +/* 0B6654 7F081B24 554003A9 */ bnezl $t2, .L7F0829CC +/* 0B6658 7F081B28 8E0A0000 */ lw $t2, ($s0) +/* 0B665C 7F081B2C 0FC26919 */ jal get_num_players +/* 0B6660 7F081B30 00000000 */ nop +/* 0B6664 7F081B34 24010001 */ li $at, 1 +/* 0B6668 7F081B38 10410008 */ beq $v0, $at, .L7F081B5C +/* 0B666C 7F081B3C 3C0C8009 */ lui $t4, %hi(stop_play_flag) +/* 0B6670 7F081B40 8D8CC700 */ lw $t4, %lo(stop_play_flag)($t4) +/* 0B6674 7F081B44 3C0B8009 */ lui $t3, %hi(is_gameover_flag) +/* 0B6678 7F081B48 558003A0 */ bnezl $t4, .L7F0829CC +/* 0B667C 7F081B4C 8E0A0000 */ lw $t2, ($s0) +/* 0B6680 7F081B50 8D6BC704 */ lw $t3, %lo(is_gameover_flag)($t3) +/* 0B6684 7F081B54 5560039D */ bnezl $t3, .L7F0829CC +/* 0B6688 7F081B58 8E0A0000 */ lw $t2, ($s0) +.L7F081B5C: +/* 0B668C 7F081B5C 97AD01CA */ lhu $t5, 0x1ca($sp) +/* 0B6690 7F081B60 0FC29370 */ jal cur_player_get_control_type +/* 0B6694 7F081B64 AFAD005C */ sw $t5, 0x5c($sp) +/* 0B6698 7F081B68 24010006 */ li $at, 6 +/* 0B669C 7F081B6C 50410011 */ beql $v0, $at, .L7F081BB4 +/* 0B66A0 7F081B70 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66A4 7F081B74 0FC29370 */ jal cur_player_get_control_type +/* 0B66A8 7F081B78 00000000 */ nop +/* 0B66AC 7F081B7C 24010007 */ li $at, 7 +/* 0B66B0 7F081B80 5041000C */ beql $v0, $at, .L7F081BB4 +/* 0B66B4 7F081B84 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66B8 7F081B88 0FC29370 */ jal cur_player_get_control_type +/* 0B66BC 7F081B8C 00000000 */ nop +/* 0B66C0 7F081B90 24010005 */ li $at, 5 +/* 0B66C4 7F081B94 50410007 */ beql $v0, $at, .L7F081BB4 +/* 0B66C8 7F081B98 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66CC 7F081B9C 0FC29370 */ jal cur_player_get_control_type +/* 0B66D0 7F081BA0 00000000 */ nop +/* 0B66D4 7F081BA4 24010004 */ li $at, 4 +/* 0B66D8 7F081BA8 144101C3 */ bne $v0, $at, .L7F0822B8 +/* 0B66DC 7F081BAC 00000000 */ nop +/* 0B66E0 7F081BB0 97AF01CE */ lhu $t7, 0x1ce($sp) +.L7F081BB4: +/* 0B66E4 7F081BB4 8FAE005C */ lw $t6, 0x5c($sp) +/* 0B66E8 7F081BB8 01E0C027 */ not $t8, $t7 +/* 0B66EC 7F081BBC 01D8C824 */ and $t9, $t6, $t8 +/* 0B66F0 7F081BC0 0FC26C54 */ jal get_cur_playernum +/* 0B66F4 7F081BC4 AFB90060 */ sw $t9, 0x60($sp) +/* 0B66F8 7F081BC8 0FC26919 */ jal get_num_players +/* 0B66FC 7F081BCC AFA20064 */ sw $v0, 0x64($sp) +/* 0B6700 7F081BD0 8FAA0064 */ lw $t2, 0x64($sp) +/* 0B6704 7F081BD4 004A2021 */ addu $a0, $v0, $t2 +/* 0B6708 7F081BD8 00046600 */ sll $t4, $a0, 0x18 +/* 0B670C 7F081BDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0B6710 7F081BE0 000C2603 */ sra $a0, $t4, 0x18 +/* 0B6714 7F081BE4 0FC26C54 */ jal get_cur_playernum +/* 0B6718 7F081BE8 A3A2011F */ sb $v0, 0x11f($sp) +/* 0B671C 7F081BEC 0FC26919 */ jal get_num_players +/* 0B6720 7F081BF0 AFA20064 */ sw $v0, 0x64($sp) +/* 0B6724 7F081BF4 8FAD0064 */ lw $t5, 0x64($sp) +/* 0B6728 7F081BF8 004D2021 */ addu $a0, $v0, $t5 +/* 0B672C 7F081BFC 00047E00 */ sll $t7, $a0, 0x18 +/* 0B6730 7F081C00 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0B6734 7F081C04 000F2603 */ sra $a0, $t7, 0x18 +/* 0B6738 7F081C08 0FC26C54 */ jal get_cur_playernum +/* 0B673C 7F081C0C A3A2011E */ sb $v0, 0x11e($sp) +/* 0B6740 7F081C10 0FC26919 */ jal get_num_players +/* 0B6744 7F081C14 AFA20064 */ sw $v0, 0x64($sp) +/* 0B6748 7F081C18 8FB80064 */ lw $t8, 0x64($sp) +/* 0B674C 7F081C1C 3405FFFF */ li $a1, 65535 +/* 0B6750 7F081C20 00582021 */ addu $a0, $v0, $t8 +/* 0B6754 7F081C24 0004CE00 */ sll $t9, $a0, 0x18 +/* 0B6758 7F081C28 0C0030C3 */ jal get_controller_buttons_held +/* 0B675C 7F081C2C 00192603 */ sra $a0, $t9, 0x18 +/* 0B6760 7F081C30 8E0B0000 */ lw $t3, ($s0) +/* 0B6764 7F081C34 83AC011F */ lb $t4, 0x11f($sp) +/* 0B6768 7F081C38 A7A2011C */ sh $v0, 0x11c($sp) +/* 0B676C 7F081C3C 956D03B6 */ lhu $t5, 0x3b6($t3) +/* 0B6770 7F081C40 2981FFFB */ slti $at, $t4, -5 +/* 0B6774 7F081C44 01801825 */ move $v1, $t4 +/* 0B6778 7F081C48 10200003 */ beqz $at, .L7F081C58 +/* 0B677C 7F081C4C A7AD011A */ sh $t5, 0x11a($sp) +/* 0B6780 7F081C50 10000007 */ b .L7F081C70 +/* 0B6784 7F081C54 25830005 */ addiu $v1, $t4, 5 +.L7F081C58: +/* 0B6788 7F081C58 28610006 */ slti $at, $v1, 6 +/* 0B678C 7F081C5C 14200004 */ bnez $at, .L7F081C70 +/* 0B6790 7F081C60 00001825 */ move $v1, $zero +/* 0B6794 7F081C64 83A3011F */ lb $v1, 0x11f($sp) +/* 0B6798 7F081C68 10000001 */ b .L7F081C70 +/* 0B679C 7F081C6C 2463FFFB */ addiu $v1, $v1, -5 +.L7F081C70: +/* 0B67A0 7F081C70 83A2011E */ lb $v0, 0x11e($sp) +/* 0B67A4 7F081C74 2841FFFB */ slti $at, $v0, -5 +/* 0B67A8 7F081C78 10200003 */ beqz $at, .L7F081C88 +/* 0B67AC 7F081C7C 244F0005 */ addiu $t7, $v0, 5 +/* 0B67B0 7F081C80 10000007 */ b .L7F081CA0 +/* 0B67B4 7F081C84 AFAF0110 */ sw $t7, 0x110($sp) +.L7F081C88: +/* 0B67B8 7F081C88 28410006 */ slti $at, $v0, 6 +/* 0B67BC 7F081C8C 14200003 */ bnez $at, .L7F081C9C +/* 0B67C0 7F081C90 244EFFFB */ addiu $t6, $v0, -5 +/* 0B67C4 7F081C94 10000002 */ b .L7F081CA0 +/* 0B67C8 7F081C98 AFAE0110 */ sw $t6, 0x110($sp) +.L7F081C9C: +/* 0B67CC 7F081C9C AFA00110 */ sw $zero, 0x110($sp) +.L7F081CA0: +/* 0B67D0 7F081CA0 0FC29370 */ jal cur_player_get_control_type +/* 0B67D4 7F081CA4 AFA30114 */ sw $v1, 0x114($sp) +/* 0B67D8 7F081CA8 24010004 */ li $at, 4 +/* 0B67DC 7F081CAC 10410006 */ beq $v0, $at, .L7F081CC8 +/* 0B67E0 7F081CB0 8FA30114 */ lw $v1, 0x114($sp) +/* 0B67E4 7F081CB4 0FC29370 */ jal cur_player_get_control_type +/* 0B67E8 7F081CB8 AFA30114 */ sw $v1, 0x114($sp) +/* 0B67EC 7F081CBC 24010006 */ li $at, 6 +/* 0B67F0 7F081CC0 14410005 */ bne $v0, $at, .L7F081CD8 +/* 0B67F4 7F081CC4 8FA30114 */ lw $v1, 0x114($sp) +.L7F081CC8: +/* 0B67F8 7F081CC8 8FB80110 */ lw $t8, 0x110($sp) +/* 0B67FC 7F081CCC AFA30124 */ sw $v1, 0x124($sp) +/* 0B6800 7F081CD0 1000000F */ b .L7F081D10 +/* 0B6804 7F081CD4 AFB80128 */ sw $t8, 0x128($sp) +.L7F081CD8: +/* 0B6808 7F081CD8 3C198003 */ lui $t9, %hi(in_tank_flag) +/* 0B680C 7F081CDC 8F396448 */ lw $t9, %lo(in_tank_flag)($t9) +/* 0B6810 7F081CE0 24010001 */ li $at, 1 +/* 0B6814 7F081CE4 57210008 */ bnel $t9, $at, .L7F081D08 +/* 0B6818 7F081CE8 AFA30124 */ sw $v1, 0x124($sp) +/* 0B681C 7F081CEC 8E0A0000 */ lw $t2, ($s0) +/* 0B6820 7F081CF0 8D4B0124 */ lw $t3, 0x124($t2) +/* 0B6824 7F081CF4 55600004 */ bnezl $t3, .L7F081D08 +/* 0B6828 7F081CF8 AFA30124 */ sw $v1, 0x124($sp) +/* 0B682C 7F081CFC 10000002 */ b .L7F081D08 +/* 0B6830 7F081D00 AFA3012C */ sw $v1, 0x12c($sp) +/* 0B6834 7F081D04 AFA30124 */ sw $v1, 0x124($sp) +.L7F081D08: +/* 0B6838 7F081D08 8FAD0110 */ lw $t5, 0x110($sp) +/* 0B683C 7F081D0C AFAD0120 */ sw $t5, 0x120($sp) +.L7F081D10: +/* 0B6840 7F081D10 0FC29370 */ jal cur_player_get_control_type +/* 0B6844 7F081D14 00000000 */ nop +/* 0B6848 7F081D18 24010004 */ li $at, 4 +/* 0B684C 7F081D1C 50410007 */ beql $v0, $at, .L7F081D3C +/* 0B6850 7F081D20 97A2011C */ lhu $v0, 0x11c($sp) +/* 0B6854 7F081D24 0FC29370 */ jal cur_player_get_control_type +/* 0B6858 7F081D28 00000000 */ nop +/* 0B685C 7F081D2C 24010005 */ li $at, 5 +/* 0B6860 7F081D30 14410016 */ bne $v0, $at, .L7F081D8C +/* 0B6864 7F081D34 8FB9005C */ lw $t9, 0x5c($sp) +/* 0B6868 7F081D38 97A2011C */ lhu $v0, 0x11c($sp) +.L7F081D3C: +/* 0B686C 7F081D3C 97AE011A */ lhu $t6, 0x11a($sp) +/* 0B6870 7F081D40 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B6874 7F081D44 304C2000 */ andi $t4, $v0, 0x2000 +/* 0B6878 7F081D48 000C782B */ sltu $t7, $zero, $t4 +/* 0B687C 7F081D4C AFAF0104 */ sw $t7, 0x104($sp) +/* 0B6880 7F081D50 8FAF0060 */ lw $t7, 0x60($sp) +/* 0B6884 7F081D54 01C0C027 */ not $t8, $t6 +/* 0B6888 7F081D58 00581824 */ and $v1, $v0, $t8 +/* 0B688C 7F081D5C 30792000 */ andi $t9, $v1, 0x2000 +/* 0B6890 7F081D60 316D2000 */ andi $t5, $t3, 0x2000 +/* 0B6894 7F081D64 31EE2000 */ andi $t6, $t7, 0x2000 +/* 0B6898 7F081D68 0019502B */ sltu $t2, $zero, $t9 +/* 0B689C 7F081D6C 000D602B */ sltu $t4, $zero, $t5 +/* 0B68A0 7F081D70 000EC02B */ sltu $t8, $zero, $t6 +/* 0B68A4 7F081D74 AFAA0100 */ sw $t2, 0x100($sp) +/* 0B68A8 7F081D78 AFAC010C */ sw $t4, 0x10c($sp) +/* 0B68AC 7F081D7C AFB80108 */ sw $t8, 0x108($sp) +/* 0B68B0 7F081D80 AFA30050 */ sw $v1, 0x50($sp) +/* 0B68B4 7F081D84 10000014 */ b .L7F081DD8 +/* 0B68B8 7F081D88 AFA20058 */ sw $v0, 0x58($sp) +.L7F081D8C: +/* 0B68BC 7F081D8C 332A2000 */ andi $t2, $t9, 0x2000 +/* 0B68C0 7F081D90 97B9011A */ lhu $t9, 0x11a($sp) +/* 0B68C4 7F081D94 8FAD0060 */ lw $t5, 0x60($sp) +/* 0B68C8 7F081D98 97A2011C */ lhu $v0, 0x11c($sp) +/* 0B68CC 7F081D9C 000A582B */ sltu $t3, $zero, $t2 +/* 0B68D0 7F081DA0 03205027 */ not $t2, $t9 +/* 0B68D4 7F081DA4 AFAB0104 */ sw $t3, 0x104($sp) +/* 0B68D8 7F081DA8 31AC2000 */ andi $t4, $t5, 0x2000 +/* 0B68DC 7F081DAC 004A1824 */ and $v1, $v0, $t2 +/* 0B68E0 7F081DB0 306B2000 */ andi $t3, $v1, 0x2000 +/* 0B68E4 7F081DB4 304E2000 */ andi $t6, $v0, 0x2000 +/* 0B68E8 7F081DB8 000C782B */ sltu $t7, $zero, $t4 +/* 0B68EC 7F081DBC 000EC02B */ sltu $t8, $zero, $t6 +/* 0B68F0 7F081DC0 000B682B */ sltu $t5, $zero, $t3 +/* 0B68F4 7F081DC4 AFAF0100 */ sw $t7, 0x100($sp) +/* 0B68F8 7F081DC8 AFB8010C */ sw $t8, 0x10c($sp) +/* 0B68FC 7F081DCC AFAD0108 */ sw $t5, 0x108($sp) +/* 0B6900 7F081DD0 AFA30050 */ sw $v1, 0x50($sp) +/* 0B6904 7F081DD4 AFA20058 */ sw $v0, 0x58($sp) +.L7F081DD8: +/* 0B6908 7F081DD8 0FC2FF01 */ jal get_controls_locked_flag +/* 0B690C 7F081DDC 00000000 */ nop +/* 0B6910 7F081DE0 5440011F */ bnezl $v0, .L7F082260 +/* 0B6914 7F081DE4 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6918 7F081DE8 0FC3092F */ jal sub_GAME_7F0C24BC +/* 0B691C 7F081DEC 00000000 */ nop +/* 0B6920 7F081DF0 5040011B */ beql $v0, $zero, .L7F082260 +/* 0B6924 7F081DF4 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6928 7F081DF8 0FC293A0 */ jal cur_player_get_aim_control +/* 0B692C 7F081DFC 00000000 */ nop +/* 0B6930 7F081E00 54400006 */ bnezl $v0, .L7F081E1C +/* 0B6934 7F081E04 8FAE0100 */ lw $t6, 0x100($sp) +/* 0B6938 7F081E08 8FAC0104 */ lw $t4, 0x104($sp) +/* 0B693C 7F081E0C 8E0F0000 */ lw $t7, ($s0) +/* 0B6940 7F081E10 10000008 */ b .L7F081E34 +/* 0B6944 7F081E14 ADEC0124 */ sw $t4, 0x124($t7) +/* 0B6948 7F081E18 8FAE0100 */ lw $t6, 0x100($sp) +.L7F081E1C: +/* 0B694C 7F081E1C 51C00006 */ beql $t6, $zero, .L7F081E38 +/* 0B6950 7F081E20 8E190000 */ lw $t9, ($s0) +/* 0B6954 7F081E24 8E080000 */ lw $t0, ($s0) +/* 0B6958 7F081E28 8D050124 */ lw $a1, 0x124($t0) +/* 0B695C 7F081E2C 2CB80001 */ sltiu $t8, $a1, 1 +/* 0B6960 7F081E30 AD180124 */ sw $t8, 0x124($t0) +.L7F081E34: +/* 0B6964 7F081E34 8E190000 */ lw $t9, ($s0) +.L7F081E38: +/* 0B6968 7F081E38 8FA40060 */ lw $a0, 0x60($sp) +/* 0B696C 7F081E3C 240F0001 */ li $t7, 1 +/* 0B6970 7F081E40 8F230124 */ lw $v1, 0x124($t9) +/* 0B6974 7F081E44 308A4000 */ andi $t2, $a0, 0x4000 +/* 0B6978 7F081E48 000A582B */ sltu $t3, $zero, $t2 +/* 0B697C 7F081E4C 2C620001 */ sltiu $v0, $v1, 1 +/* 0B6980 7F081E50 AFA201BC */ sw $v0, 0x1bc($sp) +/* 0B6984 7F081E54 AFA20148 */ sw $v0, 0x148($sp) +/* 0B6988 7F081E58 01602825 */ move $a1, $t3 +/* 0B698C 7F081E5C AFAB0048 */ sw $t3, 0x48($sp) +/* 0B6990 7F081E60 15600005 */ bnez $t3, .L7F081E78 +/* 0B6994 7F081E64 AFA301B8 */ sw $v1, 0x1b8($sp) +/* 0B6998 7F081E68 8FA50050 */ lw $a1, 0x50($sp) +/* 0B699C 7F081E6C AFAB0048 */ sw $t3, 0x48($sp) +/* 0B69A0 7F081E70 30AD4000 */ andi $t5, $a1, 0x4000 +/* 0B69A4 7F081E74 000D282B */ sltu $a1, $zero, $t5 +.L7F081E78: +/* 0B69A8 7F081E78 AFA501B0 */ sw $a1, 0x1b0($sp) +/* 0B69AC 7F081E7C AFA201AC */ sw $v0, 0x1ac($sp) +/* 0B69B0 7F081E80 AFAF01A8 */ sw $t7, 0x1a8($sp) +/* 0B69B4 7F081E84 AFA201A4 */ sw $v0, 0x1a4($sp) +/* 0B69B8 7F081E88 10600012 */ beqz $v1, .L7F081ED4 +/* 0B69BC 7F081E8C AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0B69C0 7F081E90 83A401C7 */ lb $a0, 0x1c7($sp) +/* 0B69C4 7F081E94 2881003D */ slti $at, $a0, 0x3d +/* 0B69C8 7F081E98 1420000E */ bnez $at, .L7F081ED4 +/* 0B69CC 7F081E9C 248EFFC4 */ addiu $t6, $a0, -0x3c +/* 0B69D0 7F081EA0 448E2000 */ mtc1 $t6, $f4 +/* 0B69D4 7F081EA4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B69D8 7F081EA8 44811000 */ mtc1 $at, $f2 +/* 0B69DC 7F081EAC 468021A0 */ cvt.s.w $f6, $f4 +/* 0B69E0 7F081EB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B69E4 7F081EB4 44816000 */ mtc1 $at, $f12 +/* 0B69E8 7F081EB8 46023003 */ div.s $f0, $f6, $f2 +/* 0B69EC 7F081EBC 4600603C */ c.lt.s $f12, $f0 +/* 0B69F0 7F081EC0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 0B69F4 7F081EC4 45000008 */ bc1f .L7F081EE8 +/* 0B69F8 7F081EC8 00000000 */ nop +/* 0B69FC 7F081ECC 10000006 */ b .L7F081EE8 +/* 0B6A00 7F081ED0 E7AC0184 */ swc1 $f12, 0x184($sp) +.L7F081ED4: +/* 0B6A04 7F081ED4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6A08 7F081ED8 44816000 */ mtc1 $at, $f12 +/* 0B6A0C 7F081EDC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B6A10 7F081EE0 44811000 */ mtc1 $at, $f2 +/* 0B6A14 7F081EE4 83A401C7 */ lb $a0, 0x1c7($sp) +.L7F081EE8: +/* 0B6A18 7F081EE8 1060000D */ beqz $v1, .L7F081F20 +/* 0B6A1C 7F081EEC 2881FFC4 */ slti $at, $a0, -0x3c +/* 0B6A20 7F081EF0 1020000B */ beqz $at, .L7F081F20 +/* 0B6A24 7F081EF4 2418FFC4 */ li $t8, -60 +/* 0B6A28 7F081EF8 0304C823 */ subu $t9, $t8, $a0 +/* 0B6A2C 7F081EFC 44994000 */ mtc1 $t9, $f8 +/* 0B6A30 7F081F00 00000000 */ nop +/* 0B6A34 7F081F04 468042A0 */ cvt.s.w $f10, $f8 +/* 0B6A38 7F081F08 46025003 */ div.s $f0, $f10, $f2 +/* 0B6A3C 7F081F0C 4600603C */ c.lt.s $f12, $f0 +/* 0B6A40 7F081F10 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B6A44 7F081F14 45000002 */ bc1f .L7F081F20 +/* 0B6A48 7F081F18 00000000 */ nop +/* 0B6A4C 7F081F1C E7AC0180 */ swc1 $f12, 0x180($sp) +.L7F081F20: +/* 0B6A50 7F081F20 10600010 */ beqz $v1, .L7F081F64 +/* 0B6A54 7F081F24 00002025 */ move $a0, $zero +/* 0B6A58 7F081F28 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B6A5C 7F081F2C 240AFFC4 */ li $t2, -60 +/* 0B6A60 7F081F30 2841FFC4 */ slti $at, $v0, -0x3c +/* 0B6A64 7F081F34 1020000B */ beqz $at, .L7F081F64 +/* 0B6A68 7F081F38 01425823 */ subu $t3, $t2, $v0 +/* 0B6A6C 7F081F3C 448B9000 */ mtc1 $t3, $f18 +/* 0B6A70 7F081F40 00000000 */ nop +/* 0B6A74 7F081F44 46809120 */ cvt.s.w $f4, $f18 +/* 0B6A78 7F081F48 46022003 */ div.s $f0, $f4, $f2 +/* 0B6A7C 7F081F4C 4600603C */ c.lt.s $f12, $f0 +/* 0B6A80 7F081F50 E7A0017C */ swc1 $f0, 0x17c($sp) +/* 0B6A84 7F081F54 45000004 */ bc1f .L7F081F68 +/* 0B6A88 7F081F58 00000000 */ nop +/* 0B6A8C 7F081F5C 10000002 */ b .L7F081F68 +/* 0B6A90 7F081F60 E7AC017C */ swc1 $f12, 0x17c($sp) +.L7F081F64: +/* 0B6A94 7F081F64 83A201C3 */ lb $v0, 0x1c3($sp) +.L7F081F68: +/* 0B6A98 7F081F68 1060000C */ beqz $v1, .L7F081F9C +/* 0B6A9C 7F081F6C 2841003D */ slti $at, $v0, 0x3d +/* 0B6AA0 7F081F70 1420000A */ bnez $at, .L7F081F9C +/* 0B6AA4 7F081F74 244DFFC4 */ addiu $t5, $v0, -0x3c +/* 0B6AA8 7F081F78 448D3000 */ mtc1 $t5, $f6 +/* 0B6AAC 7F081F7C 00000000 */ nop +/* 0B6AB0 7F081F80 46803220 */ cvt.s.w $f8, $f6 +/* 0B6AB4 7F081F84 46024003 */ div.s $f0, $f8, $f2 +/* 0B6AB8 7F081F88 4600603C */ c.lt.s $f12, $f0 +/* 0B6ABC 7F081F8C E7A00178 */ swc1 $f0, 0x178($sp) +/* 0B6AC0 7F081F90 45020003 */ bc1fl .L7F081FA0 +/* 0B6AC4 7F081F94 8FAC005C */ lw $t4, 0x5c($sp) +/* 0B6AC8 7F081F98 E7AC0178 */ swc1 $f12, 0x178($sp) +.L7F081F9C: +/* 0B6ACC 7F081F9C 8FAC005C */ lw $t4, 0x5c($sp) +.L7F081FA0: +/* 0B6AD0 7F081FA0 318F8000 */ andi $t7, $t4, 0x8000 +/* 0B6AD4 7F081FA4 000F702B */ sltu $t6, $zero, $t7 +/* 0B6AD8 7F081FA8 15C00006 */ bnez $t6, .L7F081FC4 +/* 0B6ADC 7F081FAC AFAE004C */ sw $t6, 0x4c($sp) +/* 0B6AE0 7F081FB0 8FA20058 */ lw $v0, 0x58($sp) +/* 0B6AE4 7F081FB4 30588000 */ andi $t8, $v0, 0x8000 +/* 0B6AE8 7F081FB8 0018282B */ sltu $a1, $zero, $t8 +/* 0B6AEC 7F081FBC 50A00005 */ beql $a1, $zero, .L7F081FD4 +/* 0B6AF0 7F081FC0 8FAB0060 */ lw $t3, 0x60($sp) +.L7F081FC4: +/* 0B6AF4 7F081FC4 8FA50108 */ lw $a1, 0x108($sp) +/* 0B6AF8 7F081FC8 0005502B */ sltu $t2, $zero, $a1 +/* 0B6AFC 7F081FCC 01402825 */ move $a1, $t2 +/* 0B6B00 7F081FD0 8FAB0060 */ lw $t3, 0x60($sp) +.L7F081FD4: +/* 0B6B04 7F081FD4 AFA50174 */ sw $a1, 0x174($sp) +/* 0B6B08 7F081FD8 316D8000 */ andi $t5, $t3, 0x8000 +/* 0B6B0C 7F081FDC 000D602B */ sltu $t4, $zero, $t5 +/* 0B6B10 7F081FE0 15800006 */ bnez $t4, .L7F081FFC +/* 0B6B14 7F081FE4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0B6B18 7F081FE8 8FA20050 */ lw $v0, 0x50($sp) +/* 0B6B1C 7F081FEC 304F8000 */ andi $t7, $v0, 0x8000 +/* 0B6B20 7F081FF0 000F282B */ sltu $a1, $zero, $t7 +/* 0B6B24 7F081FF4 50A00005 */ beql $a1, $zero, .L7F08200C +/* 0B6B28 7F081FF8 AFA50170 */ sw $a1, 0x170($sp) +.L7F081FFC: +/* 0B6B2C 7F081FFC 8FA5010C */ lw $a1, 0x10c($sp) +/* 0B6B30 7F082000 2CB80001 */ sltiu $t8, $a1, 1 +/* 0B6B34 7F082004 03002825 */ move $a1, $t8 +/* 0B6B38 7F082008 AFA50170 */ sw $a1, 0x170($sp) +.L7F08200C: +/* 0B6B3C 7F08200C AFA3016C */ sw $v1, 0x16c($sp) +/* 0B6B40 7F082010 0FC17674 */ jal get_item_in_hand +/* 0B6B44 7F082014 AFA30168 */ sw $v1, 0x168($sp) +/* 0B6B48 7F082018 00402025 */ move $a0, $v0 +/* 0B6B4C 7F08201C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6B50 7F082020 34058000 */ li $a1, 32768 +/* 0B6B54 7F082024 10400028 */ beqz $v0, .L7F0820C8 +/* 0B6B58 7F082028 00000000 */ nop +/* 0B6B5C 7F08202C 8E190000 */ lw $t9, ($s0) +/* 0B6B60 7F082030 8FA20110 */ lw $v0, 0x110($sp) +/* 0B6B64 7F082034 8F2A0124 */ lw $t2, 0x124($t9) +/* 0B6B68 7F082038 11400023 */ beqz $t2, .L7F0820C8 +/* 0B6B6C 7F08203C 00000000 */ nop +/* 0B6B70 7F082040 04410010 */ bgez $v0, .L7F082084 +/* 0B6B74 7F082044 00025823 */ negu $t3, $v0 +/* 0B6B78 7F082048 448B5000 */ mtc1 $t3, $f10 +/* 0B6B7C 7F08204C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6B80 7F082050 44811000 */ mtc1 $at, $f2 +/* 0B6B84 7F082054 468054A0 */ cvt.s.w $f18, $f10 +/* 0B6B88 7F082058 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B6B8C 7F08205C 44812000 */ mtc1 $at, $f4 +/* 0B6B90 7F082060 00000000 */ nop +/* 0B6B94 7F082064 46049303 */ div.s $f12, $f18, $f4 +/* 0B6B98 7F082068 460C103C */ c.lt.s $f2, $f12 +/* 0B6B9C 7F08206C 00000000 */ nop +/* 0B6BA0 7F082070 45020003 */ bc1fl .L7F082080 +/* 0B6BA4 7F082074 460C6300 */ add.s $f12, $f12, $f12 +/* 0B6BA8 7F082078 46001306 */ mov.s $f12, $f2 +/* 0B6BAC 7F08207C 460C6300 */ add.s $f12, $f12, $f12 +.L7F082080: +/* 0B6BB0 7F082080 E7AC0164 */ swc1 $f12, 0x164($sp) +.L7F082084: +/* 0B6BB4 7F082084 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6BB8 7F082088 44811000 */ mtc1 $at, $f2 +/* 0B6BBC 7F08208C 1840000E */ blez $v0, .L7F0820C8 +/* 0B6BC0 7F082090 C7AC0164 */ lwc1 $f12, 0x164($sp) +/* 0B6BC4 7F082094 44823000 */ mtc1 $v0, $f6 +/* 0B6BC8 7F082098 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B6BCC 7F08209C 44815000 */ mtc1 $at, $f10 +/* 0B6BD0 7F0820A0 46803220 */ cvt.s.w $f8, $f6 +/* 0B6BD4 7F0820A4 460A4383 */ div.s $f14, $f8, $f10 +/* 0B6BD8 7F0820A8 460E103C */ c.lt.s $f2, $f14 +/* 0B6BDC 7F0820AC 00000000 */ nop +/* 0B6BE0 7F0820B0 45020003 */ bc1fl .L7F0820C0 +/* 0B6BE4 7F0820B4 460E7380 */ add.s $f14, $f14, $f14 +/* 0B6BE8 7F0820B8 46001386 */ mov.s $f14, $f2 +/* 0B6BEC 7F0820BC 460E7380 */ add.s $f14, $f14, $f14 +.L7F0820C0: +/* 0B6BF0 7F0820C0 E7AC0164 */ swc1 $f12, 0x164($sp) +/* 0B6BF4 7F0820C4 E7AE0160 */ swc1 $f14, 0x160($sp) +.L7F0820C8: +/* 0B6BF8 7F0820C8 0FC17674 */ jal get_item_in_hand +/* 0B6BFC 7F0820CC 00002025 */ move $a0, $zero +/* 0B6C00 7F0820D0 00402025 */ move $a0, $v0 +/* 0B6C04 7F0820D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6C08 7F0820D8 34058000 */ li $a1, 32768 +/* 0B6C0C 7F0820DC 2C450001 */ sltiu $a1, $v0, 1 +/* 0B6C10 7F0820E0 10A00009 */ beqz $a1, .L7F082108 +/* 0B6C14 7F0820E4 00002025 */ move $a0, $zero +/* 0B6C18 7F0820E8 8E0D0000 */ lw $t5, ($s0) +/* 0B6C1C 7F0820EC 8DA50124 */ lw $a1, 0x124($t5) +/* 0B6C20 7F0820F0 0005602B */ sltu $t4, $zero, $a1 +/* 0B6C24 7F0820F4 11800004 */ beqz $t4, .L7F082108 +/* 0B6C28 7F0820F8 01802825 */ move $a1, $t4 +/* 0B6C2C 7F0820FC 83A5011E */ lb $a1, 0x11e($sp) +/* 0B6C30 7F082100 28AFFFE2 */ slti $t7, $a1, -0x1e +/* 0B6C34 7F082104 01E02825 */ move $a1, $t7 +.L7F082108: +/* 0B6C38 7F082108 0FC17674 */ jal get_item_in_hand +/* 0B6C3C 7F08210C AFA5015C */ sw $a1, 0x15c($sp) +/* 0B6C40 7F082110 00402025 */ move $a0, $v0 +/* 0B6C44 7F082114 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6C48 7F082118 34058000 */ li $a1, 32768 +/* 0B6C4C 7F08211C 2C450001 */ sltiu $a1, $v0, 1 +/* 0B6C50 7F082120 50A0000A */ beql $a1, $zero, .L7F08214C +/* 0B6C54 7F082124 8FAA004C */ lw $t2, 0x4c($sp) +/* 0B6C58 7F082128 8E0E0000 */ lw $t6, ($s0) +/* 0B6C5C 7F08212C 8DC50124 */ lw $a1, 0x124($t6) +/* 0B6C60 7F082130 0005C02B */ sltu $t8, $zero, $a1 +/* 0B6C64 7F082134 13000004 */ beqz $t8, .L7F082148 +/* 0B6C68 7F082138 03002825 */ move $a1, $t8 +/* 0B6C6C 7F08213C 83A5011E */ lb $a1, 0x11e($sp) +/* 0B6C70 7F082140 28B9001F */ slti $t9, $a1, 0x1f +/* 0B6C74 7F082144 3B250001 */ xori $a1, $t9, 1 +.L7F082148: +/* 0B6C78 7F082148 8FAA004C */ lw $t2, 0x4c($sp) +.L7F08214C: +/* 0B6C7C 7F08214C AFA50158 */ sw $a1, 0x158($sp) +/* 0B6C80 7F082150 8FAB0048 */ lw $t3, 0x48($sp) +/* 0B6C84 7F082154 11400002 */ beqz $t2, .L7F082160 +/* 0B6C88 7F082158 8FAD005C */ lw $t5, 0x5c($sp) +/* 0B6C8C 7F08215C 15600012 */ bnez $t3, .L7F0821A8 +.L7F082160: +/* 0B6C90 7F082160 31AC4000 */ andi $t4, $t5, 0x4000 +/* 0B6C94 7F082164 11800003 */ beqz $t4, .L7F082174 +/* 0B6C98 7F082168 8FAF0044 */ lw $t7, 0x44($sp) +/* 0B6C9C 7F08216C 15E0000E */ bnez $t7, .L7F0821A8 +/* 0B6CA0 7F082170 00000000 */ nop +.L7F082174: +/* 0B6CA4 7F082174 8FAE0058 */ lw $t6, 0x58($sp) +/* 0B6CA8 7F082178 8FB90050 */ lw $t9, 0x50($sp) +/* 0B6CAC 7F08217C 8FAB0058 */ lw $t3, 0x58($sp) +/* 0B6CB0 7F082180 31D88000 */ andi $t8, $t6, 0x8000 +/* 0B6CB4 7F082184 13000002 */ beqz $t8, .L7F082190 +/* 0B6CB8 7F082188 332A4000 */ andi $t2, $t9, 0x4000 +/* 0B6CBC 7F08218C 15400006 */ bnez $t2, .L7F0821A8 +.L7F082190: +/* 0B6CC0 7F082190 316D4000 */ andi $t5, $t3, 0x4000 +/* 0B6CC4 7F082194 11A0000D */ beqz $t5, .L7F0821CC +/* 0B6CC8 7F082198 8FAC0050 */ lw $t4, 0x50($sp) +/* 0B6CCC 7F08219C 318F8000 */ andi $t7, $t4, 0x8000 +/* 0B6CD0 7F0821A0 11E0000A */ beqz $t7, .L7F0821CC +/* 0B6CD4 7F0821A4 00000000 */ nop +.L7F0821A8: +/* 0B6CD8 7F0821A8 0FC17674 */ jal get_item_in_hand +/* 0B6CDC 7F0821AC 00002025 */ move $a0, $zero +/* 0B6CE0 7F0821B0 2401001D */ li $at, 29 +/* 0B6CE4 7F0821B4 14410005 */ bne $v0, $at, .L7F0821CC +/* 0B6CE8 7F0821B8 240E0001 */ li $t6, 1 +/* 0B6CEC 7F0821BC AFAE014C */ sw $t6, 0x14c($sp) +/* 0B6CF0 7F0821C0 AFA00174 */ sw $zero, 0x174($sp) +/* 0B6CF4 7F0821C4 AFA00170 */ sw $zero, 0x170($sp) +/* 0B6CF8 7F0821C8 AFA001B0 */ sw $zero, 0x1b0($sp) +.L7F0821CC: +/* 0B6CFC 7F0821CC 3C188003 */ lui $t8, %hi(in_tank_flag) +/* 0B6D00 7F0821D0 8F186448 */ lw $t8, %lo(in_tank_flag)($t8) +/* 0B6D04 7F0821D4 24010001 */ li $at, 1 +/* 0B6D08 7F0821D8 57010021 */ bnel $t8, $at, .L7F082260 +/* 0B6D0C 7F0821DC 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6D10 7F0821E0 8E190000 */ lw $t9, ($s0) +/* 0B6D14 7F0821E4 8F2A0124 */ lw $t2, 0x124($t9) +/* 0B6D18 7F0821E8 5140001D */ beql $t2, $zero, .L7F082260 +/* 0B6D1C 7F0821EC 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6D20 7F0821F0 0FC17674 */ jal get_item_in_hand +/* 0B6D24 7F0821F4 00002025 */ move $a0, $zero +/* 0B6D28 7F0821F8 24010020 */ li $at, 32 +/* 0B6D2C 7F0821FC 14410008 */ bne $v0, $at, .L7F082220 +/* 0B6D30 7F082200 8FAC0124 */ lw $t4, 0x124($sp) +/* 0B6D34 7F082204 8FAB0124 */ lw $t3, 0x124($sp) +/* 0B6D38 7F082208 AFA00134 */ sw $zero, 0x134($sp) +/* 0B6D3C 7F08220C 8FAD012C */ lw $t5, 0x12c($sp) +/* 0B6D40 7F082210 55600011 */ bnezl $t3, .L7F082258 +/* 0B6D44 7F082214 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6D48 7F082218 1000000E */ b .L7F082254 +/* 0B6D4C 7F08221C AFAD0124 */ sw $t5, 0x124($sp) +.L7F082220: +/* 0B6D50 7F082220 1580000C */ bnez $t4, .L7F082254 +/* 0B6D54 7F082224 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0B6D58 7F082228 4612A03C */ c.lt.s $f20, $f18 +/* 0B6D5C 7F08222C 00000000 */ nop +/* 0B6D60 7F082230 45020003 */ bc1fl .L7F082240 +/* 0B6D64 7F082234 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0B6D68 7F082238 E7B2018C */ swc1 $f18, 0x18c($sp) +/* 0B6D6C 7F08223C C7A40178 */ lwc1 $f4, 0x178($sp) +.L7F082240: +/* 0B6D70 7F082240 4604A03C */ c.lt.s $f20, $f4 +/* 0B6D74 7F082244 00000000 */ nop +/* 0B6D78 7F082248 45020003 */ bc1fl .L7F082258 +/* 0B6D7C 7F08224C E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6D80 7F082250 E7A40188 */ swc1 $f4, 0x188($sp) +.L7F082254: +/* 0B6D84 7F082254 E7B4017C */ swc1 $f20, 0x17c($sp) +.L7F082258: +/* 0B6D88 7F082258 E7B40178 */ swc1 $f20, 0x178($sp) +/* 0B6D8C 7F08225C 8FA2010C */ lw $v0, 0x10c($sp) +.L7F082260: +/* 0B6D90 7F082260 8E080000 */ lw $t0, ($s0) +/* 0B6D94 7F082264 240D0001 */ li $t5, 1 +/* 0B6D98 7F082268 0002282B */ sltu $a1, $zero, $v0 +/* 0B6D9C 7F08226C 50A0000E */ beql $a1, $zero, .L7F0822A8 +/* 0B6DA0 7F082270 97AC011C */ lhu $t4, 0x11c($sp) +/* 0B6DA4 7F082274 8D0501C8 */ lw $a1, 0x1c8($t0) +/* 0B6DA8 7F082278 8FA2005C */ lw $v0, 0x5c($sp) +/* 0B6DAC 7F08227C 2CAE0001 */ sltiu $t6, $a1, 1 +/* 0B6DB0 7F082280 11C00008 */ beqz $t6, .L7F0822A4 +/* 0B6DB4 7F082284 01C02825 */ move $a1, $t6 +/* 0B6DB8 7F082288 30588000 */ andi $t8, $v0, 0x8000 +/* 0B6DBC 7F08228C 2F050001 */ sltiu $a1, $t8, 1 +/* 0B6DC0 7F082290 50A00005 */ beql $a1, $zero, .L7F0822A8 +/* 0B6DC4 7F082294 97AC011C */ lhu $t4, 0x11c($sp) +/* 0B6DC8 7F082298 8FA50058 */ lw $a1, 0x58($sp) +/* 0B6DCC 7F08229C 30AA8000 */ andi $t2, $a1, 0x8000 +/* 0B6DD0 7F0822A0 2D450001 */ sltiu $a1, $t2, 1 +.L7F0822A4: +/* 0B6DD4 7F0822A4 97AC011C */ lhu $t4, 0x11c($sp) +.L7F0822A8: +/* 0B6DD8 7F0822A8 AFA501B4 */ sw $a1, 0x1b4($sp) +/* 0B6DDC 7F0822AC AFAD0140 */ sw $t5, 0x140($sp) +/* 0B6DE0 7F0822B0 100001C5 */ b .L7F0829C8 +/* 0B6DE4 7F0822B4 A50C03B6 */ sh $t4, 0x3b6($t0) +.L7F0822B8: +/* 0B6DE8 7F0822B8 0FC29370 */ jal cur_player_get_control_type +/* 0B6DEC 7F0822BC 00000000 */ nop +/* 0B6DF0 7F0822C0 24010002 */ li $at, 2 +/* 0B6DF4 7F0822C4 50410007 */ beql $v0, $at, .L7F0822E4 +/* 0B6DF8 7F0822C8 340F8000 */ li $t7, 32768 +/* 0B6DFC 7F0822CC 0FC29370 */ jal cur_player_get_control_type +/* 0B6E00 7F0822D0 00000000 */ nop +/* 0B6E04 7F0822D4 24010003 */ li $at, 3 +/* 0B6E08 7F0822D8 14410007 */ bne $v0, $at, .L7F0822F8 +/* 0B6E0C 7F0822DC 24182000 */ li $t8, 8192 +/* 0B6E10 7F0822E0 340F8000 */ li $t7, 32768 +.L7F0822E4: +/* 0B6E14 7F0822E4 240E0030 */ li $t6, 48 +/* 0B6E18 7F0822E8 A7AF00FE */ sh $t7, 0xfe($sp) +/* 0B6E1C 7F0822EC 24032000 */ li $v1, 8192 +/* 0B6E20 7F0822F0 10000005 */ b .L7F082308 +/* 0B6E24 7F0822F4 A7AE00FA */ sh $t6, 0xfa($sp) +.L7F0822F8: +/* 0B6E28 7F0822F8 34198000 */ li $t9, 32768 +/* 0B6E2C 7F0822FC A7B800FE */ sh $t8, 0xfe($sp) +/* 0B6E30 7F082300 24030030 */ li $v1, 48 +/* 0B6E34 7F082304 A7B900FA */ sh $t9, 0xfa($sp) +.L7F082308: +/* 0B6E38 7F082308 0FC2FF01 */ jal get_controls_locked_flag +/* 0B6E3C 7F08230C A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E40 7F082310 14400193 */ bnez $v0, .L7F082960 +/* 0B6E44 7F082314 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E48 7F082318 0FC3092F */ jal sub_GAME_7F0C24BC +/* 0B6E4C 7F08231C A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E50 7F082320 1040018F */ beqz $v0, .L7F082960 +/* 0B6E54 7F082324 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E58 7F082328 97AB01CE */ lhu $t3, 0x1ce($sp) +/* 0B6E5C 7F08232C 8FAA005C */ lw $t2, 0x5c($sp) +/* 0B6E60 7F082330 A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E64 7F082334 01606827 */ not $t5, $t3 +/* 0B6E68 7F082338 014D6024 */ and $t4, $t2, $t5 +/* 0B6E6C 7F08233C 0FC293A0 */ jal cur_player_get_aim_control +/* 0B6E70 7F082340 AFAC0060 */ sw $t4, 0x60($sp) +/* 0B6E74 7F082344 14400007 */ bnez $v0, .L7F082364 +/* 0B6E78 7F082348 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E7C 7F08234C 8FAF005C */ lw $t7, 0x5c($sp) +/* 0B6E80 7F082350 8E190000 */ lw $t9, ($s0) +/* 0B6E84 7F082354 01E37024 */ and $t6, $t7, $v1 +/* 0B6E88 7F082358 000EC02B */ sltu $t8, $zero, $t6 +/* 0B6E8C 7F08235C 10000009 */ b .L7F082384 +/* 0B6E90 7F082360 AF380124 */ sw $t8, 0x124($t9) +.L7F082364: +/* 0B6E94 7F082364 8FAB0060 */ lw $t3, 0x60($sp) +/* 0B6E98 7F082368 01635024 */ and $t2, $t3, $v1 +/* 0B6E9C 7F08236C 51400006 */ beql $t2, $zero, .L7F082388 +/* 0B6EA0 7F082370 8E0C0000 */ lw $t4, ($s0) +/* 0B6EA4 7F082374 8E080000 */ lw $t0, ($s0) +/* 0B6EA8 7F082378 8D050124 */ lw $a1, 0x124($t0) +/* 0B6EAC 7F08237C 2CAD0001 */ sltiu $t5, $a1, 1 +/* 0B6EB0 7F082380 AD0D0124 */ sw $t5, 0x124($t0) +.L7F082384: +/* 0B6EB4 7F082384 8E0C0000 */ lw $t4, ($s0) +.L7F082388: +/* 0B6EB8 7F082388 8FA20060 */ lw $v0, 0x60($sp) +/* 0B6EBC 7F08238C 8D830124 */ lw $v1, 0x124($t4) +/* 0B6EC0 7F082390 304F4000 */ andi $t7, $v0, 0x4000 +/* 0B6EC4 7F082394 000F702B */ sltu $t6, $zero, $t7 +/* 0B6EC8 7F082398 2C650001 */ sltiu $a1, $v1, 1 +/* 0B6ECC 7F08239C AFA501BC */ sw $a1, 0x1bc($sp) +/* 0B6ED0 7F0823A0 AFA50148 */ sw $a1, 0x148($sp) +/* 0B6ED4 7F0823A4 AFAE01B0 */ sw $t6, 0x1b0($sp) +/* 0B6ED8 7F0823A8 AFAE0048 */ sw $t6, 0x48($sp) +/* 0B6EDC 7F0823AC 0FC29370 */ jal cur_player_get_control_type +/* 0B6EE0 7F0823B0 AFA301B8 */ sw $v1, 0x1b8($sp) +/* 0B6EE4 7F0823B4 24010001 */ li $at, 1 +/* 0B6EE8 7F0823B8 50410007 */ beql $v0, $at, .L7F0823D8 +/* 0B6EEC 7F0823BC 8FA2005C */ lw $v0, 0x5c($sp) +/* 0B6EF0 7F0823C0 0FC29370 */ jal cur_player_get_control_type +/* 0B6EF4 7F0823C4 00000000 */ nop +/* 0B6EF8 7F0823C8 24010003 */ li $at, 3 +/* 0B6EFC 7F0823CC 14410044 */ bne $v0, $at, .L7F0824E0 +/* 0B6F00 7F0823D0 8FA6005C */ lw $a2, 0x5c($sp) +/* 0B6F04 7F0823D4 8FA2005C */ lw $v0, 0x5c($sp) +.L7F0823D8: +/* 0B6F08 7F0823D8 3C048003 */ lui $a0, %hi(in_tank_flag) +/* 0B6F0C 7F0823DC 30460202 */ andi $a2, $v0, 0x202 +/* 0B6F10 7F0823E0 0006C02B */ sltu $t8, $zero, $a2 +/* 0B6F14 7F0823E4 13000014 */ beqz $t8, .L7F082438 +/* 0B6F18 7F0823E8 03003025 */ move $a2, $t8 +/* 0B6F1C 7F0823EC 8E190000 */ lw $t9, ($s0) +/* 0B6F20 7F0823F0 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B6F24 7F0823F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F28 7F0823F8 8F2B0124 */ lw $t3, 0x124($t9) +/* 0B6F2C 7F0823FC 5560000C */ bnezl $t3, .L7F082430 +/* 0B6F30 7F082400 44814000 */ mtc1 $at, $f8 +/* 0B6F34 7F082404 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B6F38 7F082408 24010001 */ li $at, 1 +/* 0B6F3C 7F08240C 240D0001 */ li $t5, 1 +/* 0B6F40 7F082410 15410004 */ bne $t2, $at, .L7F082424 +/* 0B6F44 7F082414 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F48 7F082418 44813000 */ mtc1 $at, $f6 +/* 0B6F4C 7F08241C 10000006 */ b .L7F082438 +/* 0B6F50 7F082420 E7A6017C */ swc1 $f6, 0x17c($sp) +.L7F082424: +/* 0B6F54 7F082424 10000004 */ b .L7F082438 +/* 0B6F58 7F082428 AFAD0194 */ sw $t5, 0x194($sp) +/* 0B6F5C 7F08242C 44814000 */ mtc1 $at, $f8 +.L7F082430: +/* 0B6F60 7F082430 00000000 */ nop +/* 0B6F64 7F082434 E7A8018C */ swc1 $f8, 0x18c($sp) +.L7F082438: +/* 0B6F68 7F082438 304C0101 */ andi $t4, $v0, 0x101 +/* 0B6F6C 7F08243C 8E0E0000 */ lw $t6, ($s0) +/* 0B6F70 7F082440 000C782B */ sltu $t7, $zero, $t4 +/* 0B6F74 7F082444 AFAF0044 */ sw $t7, 0x44($sp) +/* 0B6F78 7F082448 8C846448 */ lw $a0, %lo(in_tank_flag)($a0) +/* 0B6F7C 7F08244C 11E0000F */ beqz $t7, .L7F08248C +/* 0B6F80 7F082450 8DC30124 */ lw $v1, 0x124($t6) +/* 0B6F84 7F082454 1460000A */ bnez $v1, .L7F082480 +/* 0B6F88 7F082458 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F8C 7F08245C 24010001 */ li $at, 1 +/* 0B6F90 7F082460 14810005 */ bne $a0, $at, .L7F082478 +/* 0B6F94 7F082464 24180001 */ li $t8, 1 +/* 0B6F98 7F082468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F9C 7F08246C 44815000 */ mtc1 $at, $f10 +/* 0B6FA0 7F082470 10000006 */ b .L7F08248C +/* 0B6FA4 7F082474 E7AA0178 */ swc1 $f10, 0x178($sp) +.L7F082478: +/* 0B6FA8 7F082478 10000004 */ b .L7F08248C +/* 0B6FAC 7F08247C AFB80190 */ sw $t8, 0x190($sp) +.L7F082480: +/* 0B6FB0 7F082480 44819000 */ mtc1 $at, $f18 +/* 0B6FB4 7F082484 00000000 */ nop +/* 0B6FB8 7F082488 E7B20188 */ swc1 $f18, 0x188($sp) +.L7F08248C: +/* 0B6FBC 7F08248C 2C620001 */ sltiu $v0, $v1, 1 +/* 0B6FC0 7F082490 10400004 */ beqz $v0, .L7F0824A4 +/* 0B6FC4 7F082494 00402825 */ move $a1, $v0 +/* 0B6FC8 7F082498 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B6FCC 7F08249C 30B90808 */ andi $t9, $a1, 0x808 +/* 0B6FD0 7F0824A0 0019282B */ sltu $a1, $zero, $t9 +.L7F0824A4: +/* 0B6FD4 7F0824A4 AFA5019C */ sw $a1, 0x19c($sp) +/* 0B6FD8 7F0824A8 10400004 */ beqz $v0, .L7F0824BC +/* 0B6FDC 7F0824AC 00402825 */ move $a1, $v0 +/* 0B6FE0 7F0824B0 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B6FE4 7F0824B4 30AA0404 */ andi $t2, $a1, 0x404 +/* 0B6FE8 7F0824B8 000A282B */ sltu $a1, $zero, $t2 +.L7F0824BC: +/* 0B6FEC 7F0824BC AFA50198 */ sw $a1, 0x198($sp) +/* 0B6FF0 7F0824C0 24010001 */ li $at, 1 +/* 0B6FF4 7F0824C4 00402825 */ move $a1, $v0 +/* 0B6FF8 7F0824C8 14810003 */ bne $a0, $at, .L7F0824D8 +/* 0B6FFC 7F0824CC AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0B7000 7F0824D0 10000034 */ b .L7F0825A4 +/* 0B7004 7F0824D4 AFA201A8 */ sw $v0, 0x1a8($sp) +.L7F0824D8: +/* 0B7008 7F0824D8 10000032 */ b .L7F0825A4 +/* 0B700C 7F0824DC AFA501A4 */ sw $a1, 0x1a4($sp) +.L7F0824E0: +/* 0B7010 7F0824E0 30CC0202 */ andi $t4, $a2, 0x202 +/* 0B7014 7F0824E4 000C302B */ sltu $a2, $zero, $t4 +/* 0B7018 7F0824E8 10C00004 */ beqz $a2, .L7F0824FC +/* 0B701C 7F0824EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7020 7F0824F0 44812000 */ mtc1 $at, $f4 +/* 0B7024 7F0824F4 00000000 */ nop +/* 0B7028 7F0824F8 E7A4018C */ swc1 $f4, 0x18c($sp) +.L7F0824FC: +/* 0B702C 7F0824FC 8FA4005C */ lw $a0, 0x5c($sp) +/* 0B7030 7F082500 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7034 7F082504 308F0101 */ andi $t7, $a0, 0x101 +/* 0B7038 7F082508 000F202B */ sltu $a0, $zero, $t7 +/* 0B703C 7F08250C 50800005 */ beql $a0, $zero, .L7F082524 +/* 0B7040 7F082510 8E190000 */ lw $t9, ($s0) +/* 0B7044 7F082514 44813000 */ mtc1 $at, $f6 +/* 0B7048 7F082518 00000000 */ nop +/* 0B704C 7F08251C E7A60188 */ swc1 $f6, 0x188($sp) +/* 0B7050 7F082520 8E190000 */ lw $t9, ($s0) +.L7F082524: +/* 0B7054 7F082524 8F230124 */ lw $v1, 0x124($t9) +/* 0B7058 7F082528 2C620001 */ sltiu $v0, $v1, 1 +/* 0B705C 7F08252C 10400002 */ beqz $v0, .L7F082538 +/* 0B7060 7F082530 00402825 */ move $a1, $v0 +/* 0B7064 7F082534 00C02825 */ move $a1, $a2 +.L7F082538: +/* 0B7068 7F082538 AFA50194 */ sw $a1, 0x194($sp) +/* 0B706C 7F08253C 00402825 */ move $a1, $v0 +/* 0B7070 7F082540 10400003 */ beqz $v0, .L7F082550 +/* 0B7074 7F082544 AFA40044 */ sw $a0, 0x44($sp) +/* 0B7078 7F082548 00802825 */ move $a1, $a0 +/* 0B707C 7F08254C AFA40044 */ sw $a0, 0x44($sp) +.L7F082550: +/* 0B7080 7F082550 AFA50190 */ sw $a1, 0x190($sp) +/* 0B7084 7F082554 00402825 */ move $a1, $v0 +/* 0B7088 7F082558 14600009 */ bnez $v1, .L7F082580 +/* 0B708C 7F08255C AFA201AC */ sw $v0, 0x1ac($sp) +/* 0B7090 7F082560 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B7094 7F082564 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7098 7F082568 316A0808 */ andi $t2, $t3, 0x808 +/* 0B709C 7F08256C 11400004 */ beqz $t2, .L7F082580 +/* 0B70A0 7F082570 00000000 */ nop +/* 0B70A4 7F082574 44814000 */ mtc1 $at, $f8 +/* 0B70A8 7F082578 00000000 */ nop +/* 0B70AC 7F08257C E7A80184 */ swc1 $f8, 0x184($sp) +.L7F082580: +/* 0B70B0 7F082580 14600007 */ bnez $v1, .L7F0825A0 +/* 0B70B4 7F082584 8FAD005C */ lw $t5, 0x5c($sp) +/* 0B70B8 7F082588 31AC0404 */ andi $t4, $t5, 0x404 +/* 0B70BC 7F08258C 11800004 */ beqz $t4, .L7F0825A0 +/* 0B70C0 7F082590 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B70C4 7F082594 44815000 */ mtc1 $at, $f10 +/* 0B70C8 7F082598 00000000 */ nop +/* 0B70CC 7F08259C E7AA0180 */ swc1 $f10, 0x180($sp) +.L7F0825A0: +/* 0B70D0 7F0825A0 AFA501A4 */ sw $a1, 0x1a4($sp) +.L7F0825A4: +/* 0B70D4 7F0825A4 10600014 */ beqz $v1, .L7F0825F8 +/* 0B70D8 7F0825A8 00000000 */ nop +/* 0B70DC 7F0825AC 83AE01C7 */ lb $t6, 0x1c7($sp) +/* 0B70E0 7F0825B0 29C1003D */ slti $at, $t6, 0x3d +/* 0B70E4 7F0825B4 14200010 */ bnez $at, .L7F0825F8 +/* 0B70E8 7F0825B8 25CFFFC4 */ addiu $t7, $t6, -0x3c +/* 0B70EC 7F0825BC 448F9000 */ mtc1 $t7, $f18 +/* 0B70F0 7F0825C0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B70F4 7F0825C4 44811000 */ mtc1 $at, $f2 +/* 0B70F8 7F0825C8 46809120 */ cvt.s.w $f4, $f18 +/* 0B70FC 7F0825CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7100 7F0825D0 44813000 */ mtc1 $at, $f6 +/* 0B7104 7F0825D4 3C013F80 */ lui $at, 0x3f80 +/* 0B7108 7F0825D8 46022003 */ div.s $f0, $f4, $f2 +/* 0B710C 7F0825DC 4600303C */ c.lt.s $f6, $f0 +/* 0B7110 7F0825E0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 0B7114 7F0825E4 4502001A */ bc1fl .L7F082650 +/* 0B7118 7F0825E8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B711C 7F0825EC 44814000 */ mtc1 $at, $f8 +/* 0B7120 7F0825F0 10000016 */ b .L7F08264C +/* 0B7124 7F0825F4 E7A80184 */ swc1 $f8, 0x184($sp) +.L7F0825F8: +/* 0B7128 7F0825F8 10600014 */ beqz $v1, .L7F08264C +/* 0B712C 7F0825FC 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B7130 7F082600 2B01FFC4 */ slti $at, $t8, -0x3c +/* 0B7134 7F082604 10200011 */ beqz $at, .L7F08264C +/* 0B7138 7F082608 2419FFC4 */ li $t9, -60 +/* 0B713C 7F08260C 03385823 */ subu $t3, $t9, $t8 +/* 0B7140 7F082610 448B5000 */ mtc1 $t3, $f10 +/* 0B7144 7F082614 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7148 7F082618 44811000 */ mtc1 $at, $f2 +/* 0B714C 7F08261C 468054A0 */ cvt.s.w $f18, $f10 +/* 0B7150 7F082620 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7154 7F082624 44812000 */ mtc1 $at, $f4 +/* 0B7158 7F082628 3C013F80 */ lui $at, 0x3f80 +/* 0B715C 7F08262C 46029003 */ div.s $f0, $f18, $f2 +/* 0B7160 7F082630 4600203C */ c.lt.s $f4, $f0 +/* 0B7164 7F082634 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B7168 7F082638 45020005 */ bc1fl .L7F082650 +/* 0B716C 7F08263C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7170 7F082640 44813000 */ mtc1 $at, $f6 +/* 0B7174 7F082644 00000000 */ nop +/* 0B7178 7F082648 E7A60180 */ swc1 $f6, 0x180($sp) +.L7F08264C: +/* 0B717C 7F08264C 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F082650: +/* 0B7180 7F082650 44811000 */ mtc1 $at, $f2 +/* 0B7184 7F082654 10600013 */ beqz $v1, .L7F0826A4 +/* 0B7188 7F082658 00000000 */ nop +/* 0B718C 7F08265C 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B7190 7F082660 240AFFC4 */ li $t2, -60 +/* 0B7194 7F082664 2841FFC4 */ slti $at, $v0, -0x3c +/* 0B7198 7F082668 1020000E */ beqz $at, .L7F0826A4 +/* 0B719C 7F08266C 01426823 */ subu $t5, $t2, $v0 +/* 0B71A0 7F082670 448D4000 */ mtc1 $t5, $f8 +/* 0B71A4 7F082674 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71A8 7F082678 44819000 */ mtc1 $at, $f18 +/* 0B71AC 7F08267C 468042A0 */ cvt.s.w $f10, $f8 +/* 0B71B0 7F082680 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71B4 7F082684 46025003 */ div.s $f0, $f10, $f2 +/* 0B71B8 7F082688 4600903C */ c.lt.s $f18, $f0 +/* 0B71BC 7F08268C E7A0017C */ swc1 $f0, 0x17c($sp) +/* 0B71C0 7F082690 45000004 */ bc1f .L7F0826A4 +/* 0B71C4 7F082694 00000000 */ nop +/* 0B71C8 7F082698 44812000 */ mtc1 $at, $f4 +/* 0B71CC 7F08269C 00000000 */ nop +/* 0B71D0 7F0826A0 E7A4017C */ swc1 $f4, 0x17c($sp) +.L7F0826A4: +/* 0B71D4 7F0826A4 10600011 */ beqz $v1, .L7F0826EC +/* 0B71D8 7F0826A8 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B71DC 7F0826AC 2841003D */ slti $at, $v0, 0x3d +/* 0B71E0 7F0826B0 1420000E */ bnez $at, .L7F0826EC +/* 0B71E4 7F0826B4 244CFFC4 */ addiu $t4, $v0, -0x3c +/* 0B71E8 7F0826B8 448C3000 */ mtc1 $t4, $f6 +/* 0B71EC 7F0826BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71F0 7F0826C0 44815000 */ mtc1 $at, $f10 +/* 0B71F4 7F0826C4 46803220 */ cvt.s.w $f8, $f6 +/* 0B71F8 7F0826C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71FC 7F0826CC 46024003 */ div.s $f0, $f8, $f2 +/* 0B7200 7F0826D0 4600503C */ c.lt.s $f10, $f0 +/* 0B7204 7F0826D4 E7A00178 */ swc1 $f0, 0x178($sp) +/* 0B7208 7F0826D8 45020005 */ bc1fl .L7F0826F0 +/* 0B720C 7F0826DC 97A200FA */ lhu $v0, 0xfa($sp) +/* 0B7210 7F0826E0 44819000 */ mtc1 $at, $f18 +/* 0B7214 7F0826E4 00000000 */ nop +/* 0B7218 7F0826E8 E7B20178 */ swc1 $f18, 0x178($sp) +.L7F0826EC: +/* 0B721C 7F0826EC 97A200FA */ lhu $v0, 0xfa($sp) +.L7F0826F0: +/* 0B7220 7F0826F0 8FAE005C */ lw $t6, 0x5c($sp) +/* 0B7224 7F0826F4 01C22024 */ and $a0, $t6, $v0 +/* 0B7228 7F0826F8 0004282B */ sltu $a1, $zero, $a0 +/* 0B722C 7F0826FC 10A00006 */ beqz $a1, .L7F082718 +/* 0B7230 7F082700 AFA5004C */ sw $a1, 0x4c($sp) +/* 0B7234 7F082704 8FB90060 */ lw $t9, 0x60($sp) +/* 0B7238 7F082708 97B800FE */ lhu $t8, 0xfe($sp) +/* 0B723C 7F08270C 03382824 */ and $a1, $t9, $t8 +/* 0B7240 7F082710 0005582B */ sltu $t3, $zero, $a1 +/* 0B7244 7F082714 01602825 */ move $a1, $t3 +.L7F082718: +/* 0B7248 7F082718 8FAA0060 */ lw $t2, 0x60($sp) +/* 0B724C 7F08271C AFA50174 */ sw $a1, 0x174($sp) +/* 0B7250 7F082720 01422024 */ and $a0, $t2, $v0 +/* 0B7254 7F082724 0004282B */ sltu $a1, $zero, $a0 +/* 0B7258 7F082728 10A00006 */ beqz $a1, .L7F082744 +/* 0B725C 7F08272C AFA50040 */ sw $a1, 0x40($sp) +/* 0B7260 7F082730 8FAC005C */ lw $t4, 0x5c($sp) +/* 0B7264 7F082734 97AE00FE */ lhu $t6, 0xfe($sp) +/* 0B7268 7F082738 018E2824 */ and $a1, $t4, $t6 +/* 0B726C 7F08273C 2CAF0001 */ sltiu $t7, $a1, 1 +/* 0B7270 7F082740 01E02825 */ move $a1, $t7 +.L7F082744: +/* 0B7274 7F082744 AFA50170 */ sw $a1, 0x170($sp) +/* 0B7278 7F082748 AFA3016C */ sw $v1, 0x16c($sp) +/* 0B727C 7F08274C AFA30168 */ sw $v1, 0x168($sp) +/* 0B7280 7F082750 00002025 */ move $a0, $zero +/* 0B7284 7F082754 0FC17674 */ jal get_item_in_hand +/* 0B7288 7F082758 AFA60050 */ sw $a2, 0x50($sp) +/* 0B728C 7F08275C 00402025 */ move $a0, $v0 +/* 0B7290 7F082760 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B7294 7F082764 34058000 */ li $a1, 32768 +/* 0B7298 7F082768 10400013 */ beqz $v0, .L7F0827B8 +/* 0B729C 7F08276C 8FA60050 */ lw $a2, 0x50($sp) +/* 0B72A0 7F082770 8E190000 */ lw $t9, ($s0) +/* 0B72A4 7F082774 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B72A8 7F082778 8F380124 */ lw $t8, 0x124($t9) +/* 0B72AC 7F08277C 31620808 */ andi $v0, $t3, 0x808 +/* 0B72B0 7F082780 0002502B */ sltu $t2, $zero, $v0 +/* 0B72B4 7F082784 1300000C */ beqz $t8, .L7F0827B8 +/* 0B72B8 7F082788 316D0404 */ andi $t5, $t3, 0x404 +/* 0B72BC 7F08278C 11A00005 */ beqz $t5, .L7F0827A4 +/* 0B72C0 7F082790 01401025 */ move $v0, $t2 +/* 0B72C4 7F082794 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B72C8 7F082798 44812000 */ mtc1 $at, $f4 +/* 0B72CC 7F08279C 00000000 */ nop +/* 0B72D0 7F0827A0 E7A40164 */ swc1 $f4, 0x164($sp) +.L7F0827A4: +/* 0B72D4 7F0827A4 10400004 */ beqz $v0, .L7F0827B8 +/* 0B72D8 7F0827A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B72DC 7F0827AC 44813000 */ mtc1 $at, $f6 +/* 0B72E0 7F0827B0 00000000 */ nop +/* 0B72E4 7F0827B4 E7A60160 */ swc1 $f6, 0x160($sp) +.L7F0827B8: +/* 0B72E8 7F0827B8 00002025 */ move $a0, $zero +/* 0B72EC 7F0827BC 0FC17674 */ jal get_item_in_hand +/* 0B72F0 7F0827C0 AFA60050 */ sw $a2, 0x50($sp) +/* 0B72F4 7F0827C4 00402025 */ move $a0, $v0 +/* 0B72F8 7F0827C8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B72FC 7F0827CC 34058000 */ li $a1, 32768 +/* 0B7300 7F0827D0 2C450001 */ sltiu $a1, $v0, 1 +/* 0B7304 7F0827D4 10A00009 */ beqz $a1, .L7F0827FC +/* 0B7308 7F0827D8 8FA60050 */ lw $a2, 0x50($sp) +/* 0B730C 7F0827DC 8E0C0000 */ lw $t4, ($s0) +/* 0B7310 7F0827E0 8D850124 */ lw $a1, 0x124($t4) +/* 0B7314 7F0827E4 0005702B */ sltu $t6, $zero, $a1 +/* 0B7318 7F0827E8 11C00004 */ beqz $t6, .L7F0827FC +/* 0B731C 7F0827EC 01C02825 */ move $a1, $t6 +/* 0B7320 7F0827F0 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B7324 7F0827F4 30AF0404 */ andi $t7, $a1, 0x404 +/* 0B7328 7F0827F8 000F282B */ sltu $a1, $zero, $t7 +.L7F0827FC: +/* 0B732C 7F0827FC AFA5015C */ sw $a1, 0x15c($sp) +/* 0B7330 7F082800 00002025 */ move $a0, $zero +/* 0B7334 7F082804 0FC17674 */ jal get_item_in_hand +/* 0B7338 7F082808 AFA60050 */ sw $a2, 0x50($sp) +/* 0B733C 7F08280C 00402025 */ move $a0, $v0 +/* 0B7340 7F082810 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B7344 7F082814 34058000 */ li $a1, 32768 +/* 0B7348 7F082818 2C450001 */ sltiu $a1, $v0, 1 +/* 0B734C 7F08281C 10A0000A */ beqz $a1, .L7F082848 +/* 0B7350 7F082820 8FA60050 */ lw $a2, 0x50($sp) +/* 0B7354 7F082824 8E180000 */ lw $t8, ($s0) +/* 0B7358 7F082828 8F050124 */ lw $a1, 0x124($t8) +/* 0B735C 7F08282C 0005502B */ sltu $t2, $zero, $a1 +/* 0B7360 7F082830 11400005 */ beqz $t2, .L7F082848 +/* 0B7364 7F082834 01402825 */ move $a1, $t2 +/* 0B7368 7F082838 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B736C 7F08283C 00A02827 */ not $a1, $a1 +/* 0B7370 7F082840 30AB0808 */ andi $t3, $a1, 0x808 +/* 0B7374 7F082844 000B282B */ sltu $a1, $zero, $t3 +.L7F082848: +/* 0B7378 7F082848 8E0C0000 */ lw $t4, ($s0) +/* 0B737C 7F08284C AFA50158 */ sw $a1, 0x158($sp) +/* 0B7380 7F082850 8D820124 */ lw $v0, 0x124($t4) +/* 0B7384 7F082854 0002282B */ sltu $a1, $zero, $v0 +/* 0B7388 7F082858 10A00002 */ beqz $a1, .L7F082864 +/* 0B738C 7F08285C 00A01025 */ move $v0, $a1 +/* 0B7390 7F082860 00C02825 */ move $a1, $a2 +.L7F082864: +/* 0B7394 7F082864 AFA50154 */ sw $a1, 0x154($sp) +/* 0B7398 7F082868 10400002 */ beqz $v0, .L7F082874 +/* 0B739C 7F08286C 00402825 */ move $a1, $v0 +/* 0B73A0 7F082870 8FA50044 */ lw $a1, 0x44($sp) +.L7F082874: +/* 0B73A4 7F082874 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B73A8 7F082878 AFA50150 */ sw $a1, 0x150($sp) +/* 0B73AC 7F08287C 8FB90048 */ lw $t9, 0x48($sp) +/* 0B73B0 7F082880 11E00002 */ beqz $t7, .L7F08288C +/* 0B73B4 7F082884 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B73B8 7F082888 17200005 */ bnez $t9, .L7F0828A0 +.L7F08288C: +/* 0B73BC 7F08288C 330A4000 */ andi $t2, $t8, 0x4000 +/* 0B73C0 7F082890 1140000C */ beqz $t2, .L7F0828C4 +/* 0B73C4 7F082894 8FAB0040 */ lw $t3, 0x40($sp) +/* 0B73C8 7F082898 1160000A */ beqz $t3, .L7F0828C4 +/* 0B73CC 7F08289C 00000000 */ nop +.L7F0828A0: +/* 0B73D0 7F0828A0 0FC17674 */ jal get_item_in_hand +/* 0B73D4 7F0828A4 00002025 */ move $a0, $zero +/* 0B73D8 7F0828A8 2401001D */ li $at, 29 +/* 0B73DC 7F0828AC 14410005 */ bne $v0, $at, .L7F0828C4 +/* 0B73E0 7F0828B0 240D0001 */ li $t5, 1 +/* 0B73E4 7F0828B4 AFAD014C */ sw $t5, 0x14c($sp) +/* 0B73E8 7F0828B8 AFA00174 */ sw $zero, 0x174($sp) +/* 0B73EC 7F0828BC AFA00170 */ sw $zero, 0x170($sp) +/* 0B73F0 7F0828C0 AFA001B0 */ sw $zero, 0x1b0($sp) +.L7F0828C4: +/* 0B73F4 7F0828C4 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B73F8 7F0828C8 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B73FC 7F0828CC 24010001 */ li $at, 1 +/* 0B7400 7F0828D0 55810024 */ bnel $t4, $at, .L7F082964 +/* 0B7404 7F0828D4 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B7408 7F0828D8 8E0E0000 */ lw $t6, ($s0) +/* 0B740C 7F0828DC 8DCF0124 */ lw $t7, 0x124($t6) +/* 0B7410 7F0828E0 51E00020 */ beql $t7, $zero, .L7F082964 +/* 0B7414 7F0828E4 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B7418 7F0828E8 0FC17674 */ jal get_item_in_hand +/* 0B741C 7F0828EC 00002025 */ move $a0, $zero +/* 0B7420 7F0828F0 24010020 */ li $at, 32 +/* 0B7424 7F0828F4 14410005 */ bne $v0, $at, .L7F08290C +/* 0B7428 7F0828F8 C7A8018C */ lwc1 $f8, 0x18c($sp) +/* 0B742C 7F0828FC 24190001 */ li $t9, 1 +/* 0B7430 7F082900 AFA00134 */ sw $zero, 0x134($sp) +/* 0B7434 7F082904 10000014 */ b .L7F082958 +/* 0B7438 7F082908 AFB901A8 */ sw $t9, 0x1a8($sp) +.L7F08290C: +/* 0B743C 7F08290C 46144032 */ c.eq.s $f8, $f20 +/* 0B7440 7F082910 C7AA0188 */ lwc1 $f10, 0x188($sp) +/* 0B7444 7F082914 45020011 */ bc1fl .L7F08295C +/* 0B7448 7F082918 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B744C 7F08291C 46145032 */ c.eq.s $f10, $f20 +/* 0B7450 7F082920 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0B7454 7F082924 4502000D */ bc1fl .L7F08295C +/* 0B7458 7F082928 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B745C 7F08292C 4612A03C */ c.lt.s $f20, $f18 +/* 0B7460 7F082930 00000000 */ nop +/* 0B7464 7F082934 45020003 */ bc1fl .L7F082944 +/* 0B7468 7F082938 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0B746C 7F08293C E7B2018C */ swc1 $f18, 0x18c($sp) +/* 0B7470 7F082940 C7A40178 */ lwc1 $f4, 0x178($sp) +.L7F082944: +/* 0B7474 7F082944 4604A03C */ c.lt.s $f20, $f4 +/* 0B7478 7F082948 00000000 */ nop +/* 0B747C 7F08294C 45020003 */ bc1fl .L7F08295C +/* 0B7480 7F082950 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B7484 7F082954 E7A40188 */ swc1 $f4, 0x188($sp) +.L7F082958: +/* 0B7488 7F082958 E7B4017C */ swc1 $f20, 0x17c($sp) +.L7F08295C: +/* 0B748C 7F08295C E7B40178 */ swc1 $f20, 0x178($sp) +.L7F082960: +/* 0B7490 7F082960 8FB8005C */ lw $t8, 0x5c($sp) +.L7F082964: +/* 0B7494 7F082964 97AA00FE */ lhu $t2, 0xfe($sp) +/* 0B7498 7F082968 030A1024 */ and $v0, $t8, $t2 +/* 0B749C 7F08296C 0002282B */ sltu $a1, $zero, $v0 +/* 0B74A0 7F082970 10A0000A */ beqz $a1, .L7F08299C +/* 0B74A4 7F082974 00000000 */ nop +/* 0B74A8 7F082978 8E0D0000 */ lw $t5, ($s0) +/* 0B74AC 7F08297C 97AE00FA */ lhu $t6, 0xfa($sp) +/* 0B74B0 7F082980 8DA501C8 */ lw $a1, 0x1c8($t5) +/* 0B74B4 7F082984 2CAC0001 */ sltiu $t4, $a1, 1 +/* 0B74B8 7F082988 11800004 */ beqz $t4, .L7F08299C +/* 0B74BC 7F08298C 01802825 */ move $a1, $t4 +/* 0B74C0 7F082990 030E2824 */ and $a1, $t8, $t6 +/* 0B74C4 7F082994 2CAF0001 */ sltiu $t7, $a1, 1 +/* 0B74C8 7F082998 01E02825 */ move $a1, $t7 +.L7F08299C: +/* 0B74CC 7F08299C 0FC29370 */ jal cur_player_get_control_type +/* 0B74D0 7F0829A0 AFA501B4 */ sw $a1, 0x1b4($sp) +/* 0B74D4 7F0829A4 24010001 */ li $at, 1 +/* 0B74D8 7F0829A8 50410006 */ beql $v0, $at, .L7F0829C4 +/* 0B74DC 7F0829AC 24190001 */ li $t9, 1 +/* 0B74E0 7F0829B0 0FC29370 */ jal cur_player_get_control_type +/* 0B74E4 7F0829B4 00000000 */ nop +/* 0B74E8 7F0829B8 24010003 */ li $at, 3 +/* 0B74EC 7F0829BC 14410002 */ bne $v0, $at, .L7F0829C8 +/* 0B74F0 7F0829C0 24190001 */ li $t9, 1 +.L7F0829C4: +/* 0B74F4 7F0829C4 AFB90140 */ sw $t9, 0x140($sp) +.L7F0829C8: +/* 0B74F8 7F0829C8 8E0A0000 */ lw $t2, ($s0) +.L7F0829CC: +/* 0B74FC 7F0829CC AD4000D0 */ sw $zero, 0xd0($t2) +/* 0B7500 7F0829D0 8FAB01B0 */ lw $t3, 0x1b0($sp) +/* 0B7504 7F0829D4 11600095 */ beqz $t3, .L7F082C2C +/* 0B7508 7F0829D8 3C0D8003 */ lui $t5, %hi(in_tank_flag) +/* 0B750C 7F0829DC 8DAD6448 */ lw $t5, %lo(in_tank_flag)($t5) +/* 0B7510 7F0829E0 24010001 */ li $at, 1 +/* 0B7514 7F0829E4 3C0C8003 */ lui $t4, %hi(ptr_playerstank) +/* 0B7518 7F0829E8 15A1002E */ bne $t5, $at, .L7F082AA4 +/* 0B751C 7F0829EC 3C028003 */ lui $v0, %hi(ptr_playerstank) +/* 0B7520 7F0829F0 8D8C6450 */ lw $t4, %lo(ptr_playerstank)($t4) +/* 0B7524 7F0829F4 24040020 */ li $a0, 32 +/* 0B7528 7F0829F8 8D980004 */ lw $t8, 4($t4) +/* 0B752C 7F0829FC 0FC1A514 */ jal get_ammo_count_for_weapon +/* 0B7530 7F082A00 AFB800F4 */ sw $t8, 0xf4($sp) +/* 0B7534 7F082A04 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0B7538 7F082A08 24040020 */ li $a0, 32 +/* 0B753C 7F082A0C 00002825 */ move $a1, $zero +/* 0B7540 7F082A10 0FC1A521 */ jal add_ammo_to_weapon +/* 0B7544 7F082A14 ADC200D8 */ sw $v0, 0xd8($t6) +/* 0B7548 7F082A18 0FC23187 */ jal sub_GAME_7F08C61C +/* 0B754C 7F082A1C 24040020 */ li $a0, 32 +/* 0B7550 7F082A20 0FC17674 */ jal get_item_in_hand +/* 0B7554 7F082A24 00002025 */ move $a0, $zero +/* 0B7558 7F082A28 24010020 */ li $at, 32 +/* 0B755C 7F082A2C 54410009 */ bnel $v0, $at, .L7F082A54 +/* 0B7560 7F082A30 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 0B7564 7F082A34 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 0B7568 7F082A38 00002025 */ move $a0, $zero +/* 0B756C 7F082A3C 8FA300F4 */ lw $v1, 0xf4($sp) +/* 0B7570 7F082A40 8C6F00D8 */ lw $t7, 0xd8($v1) +/* 0B7574 7F082A44 01E2C821 */ addu $t9, $t7, $v0 +/* 0B7578 7F082A48 0FC17600 */ jal autoadvance_on_deplete_all_ammo +/* 0B757C 7F082A4C AC7900D8 */ sw $t9, 0xd8($v1) +/* 0B7580 7F082A50 8FAA00F4 */ lw $t2, 0xf4($sp) +.L7F082A54: +/* 0B7584 7F082A54 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0B7588 7F082A58 00001025 */ move $v0, $zero +/* 0B758C 7F082A5C AD4000C4 */ sw $zero, 0xc4($t2) +/* 0B7590 7F082A60 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 0B7594 7F082A64 8E0B0000 */ lw $t3, ($s0) +/* 0B7598 7F082A68 2403000C */ li $v1, 12 +/* 0B759C 7F082A6C E574016C */ swc1 $f20, 0x16c($t3) +/* 0B75A0 7F082A70 8E0D0000 */ lw $t5, ($s0) +/* 0B75A4 7F082A74 E5B40174 */ swc1 $f20, 0x174($t5) +/* 0B75A8 7F082A78 8E0C0000 */ lw $t4, ($s0) +/* 0B75AC 7F082A7C E594014C */ swc1 $f20, 0x14c($t4) +.L7F082A80: +/* 0B75B0 7F082A80 8E180000 */ lw $t8, ($s0) +/* 0B75B4 7F082A84 03027021 */ addu $t6, $t8, $v0 +/* 0B75B8 7F082A88 24420004 */ addiu $v0, $v0, 4 +/* 0B75BC 7F082A8C 1443FFFC */ bne $v0, $v1, .L7F082A80 +/* 0B75C0 7F082A90 E5D40180 */ swc1 $f20, 0x180($t6) +/* 0B75C4 7F082A94 8E190000 */ lw $t9, ($s0) +/* 0B75C8 7F082A98 240F0002 */ li $t7, 2 +/* 0B75CC 7F082A9C 10000063 */ b .L7F082C2C +/* 0B75D0 7F082AA0 AF2F009C */ sw $t7, 0x9c($t9) +.L7F082AA4: +/* 0B75D4 7F082AA4 8C426450 */ lw $v0, %lo(ptr_playerstank)($v0) +/* 0B75D8 7F082AA8 5040005E */ beql $v0, $zero, .L7F082C24 +/* 0B75DC 7F082AAC 8E0D0000 */ lw $t5, ($s0) +/* 0B75E0 7F082AB0 904A0000 */ lbu $t2, ($v0) +/* 0B75E4 7F082AB4 24010001 */ li $at, 1 +/* 0B75E8 7F082AB8 5541005A */ bnel $t2, $at, .L7F082C24 +/* 0B75EC 7F082ABC 8E0D0000 */ lw $t5, ($s0) +/* 0B75F0 7F082AC0 8C450004 */ lw $a1, 4($v0) +/* 0B75F4 7F082AC4 2401002D */ li $at, 45 +/* 0B75F8 7F082AC8 3C0D8003 */ lui $t5, %hi(D_80036480) +/* 0B75FC 7F082ACC 90AB0003 */ lbu $t3, 3($a1) +/* 0B7600 7F082AD0 55610054 */ bnel $t3, $at, .L7F082C24 +/* 0B7604 7F082AD4 8E0D0000 */ lw $t5, ($s0) +/* 0B7608 7F082AD8 8DAD6480 */ lw $t5, %lo(D_80036480)($t5) +/* 0B760C 7F082ADC 24040020 */ li $a0, 32 +/* 0B7610 7F082AE0 51A00050 */ beql $t5, $zero, .L7F082C24 +/* 0B7614 7F082AE4 8E0D0000 */ lw $t5, ($s0) +/* 0B7618 7F082AE8 0FC23122 */ jal add_item_to_inventory +/* 0B761C 7F082AEC AFA500EC */ sw $a1, 0xec($sp) +/* 0B7620 7F082AF0 8FA300EC */ lw $v1, 0xec($sp) +/* 0B7624 7F082AF4 24040020 */ li $a0, 32 +/* 0B7628 7F082AF8 0FC1A521 */ jal add_ammo_to_weapon +/* 0B762C 7F082AFC 8C6500D8 */ lw $a1, 0xd8($v1) +/* 0B7630 7F082B00 8FA300EC */ lw $v1, 0xec($sp) +/* 0B7634 7F082B04 3C048003 */ lui $a0, %hi(D_8003646C) +/* 0B7638 7F082B08 2484646C */ addiu $a0, %lo(D_8003646C) # addiu $a0, $a0, 0x646c +/* 0B763C 7F082B0C C46600C8 */ lwc1 $f6, 0xc8($v1) +/* 0B7640 7F082B10 AC6000D8 */ sw $zero, 0xd8($v1) +/* 0B7644 7F082B14 3C018005 */ lui $at, %hi(D_80055120) +/* 0B7648 7F082B18 E4860000 */ swc1 $f6, ($a0) +/* 0B764C 7F082B1C C42A5120 */ lwc1 $f10, %lo(D_80055120)($at) +/* 0B7650 7F082B20 C4880000 */ lwc1 $f8, ($a0) +/* 0B7654 7F082B24 3C018003 */ lui $at, %hi(D_80036470) +/* 0B7658 7F082B28 3C058003 */ lui $a1, %hi(D_80036474) +/* 0B765C 7F082B2C 460A4483 */ div.s $f18, $f8, $f10 +/* 0B7660 7F082B30 24A56474 */ addiu $a1, %lo(D_80036474) # addiu $a1, $a1, 0x6474 +/* 0B7664 7F082B34 240C0001 */ li $t4, 1 +/* 0B7668 7F082B38 24190001 */ li $t9, 1 +/* 0B766C 7F082B3C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799D0) +/* 0B7670 7F082B40 244299D0 */ addiu $v0, %lo(flt_CODE_bss_800799D0) # addiu $v0, $v0, -0x6630 +/* 0B7674 7F082B44 E4326470 */ swc1 $f18, %lo(D_80036470)($at) +/* 0B7678 7F082B48 C46400CC */ lwc1 $f4, 0xcc($v1) +/* 0B767C 7F082B4C 3C018003 */ lui $at, %hi(D_80036484) +/* 0B7680 7F082B50 E4246484 */ swc1 $f4, %lo(D_80036484)($at) +/* 0B7684 7F082B54 C46600CC */ lwc1 $f6, 0xcc($v1) +/* 0B7688 7F082B58 3C018005 */ lui $at, %hi(D_80055124) +/* 0B768C 7F082B5C E4A60000 */ swc1 $f6, ($a1) +/* 0B7690 7F082B60 C42A5124 */ lwc1 $f10, %lo(D_80055124)($at) +/* 0B7694 7F082B64 C4A80000 */ lwc1 $f8, ($a1) +/* 0B7698 7F082B68 3C018003 */ lui $at, %hi(D_80036478) +/* 0B769C 7F082B6C 460A4483 */ div.s $f18, $f8, $f10 +/* 0B76A0 7F082B70 E4326478 */ swc1 $f18, %lo(D_80036478)($at) +/* 0B76A4 7F082B74 3C018003 */ lui $at, %hi(D_8003647C) +/* 0B76A8 7F082B78 E434647C */ swc1 $f20, %lo(D_8003647C)($at) +/* 0B76AC 7F082B7C C46400DC */ lwc1 $f4, 0xdc($v1) +/* 0B76B0 7F082B80 3C018003 */ lui $at, %hi(D_80036464) +/* 0B76B4 7F082B84 E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B76B8 7F082B88 3C018003 */ lui $at, %hi(D_80036460) +/* 0B76BC 7F082B8C E4346460 */ swc1 $f20, %lo(D_80036460)($at) +/* 0B76C0 7F082B90 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0B76C4 7F082B94 AC2C6448 */ sw $t4, %lo(in_tank_flag)($at) +/* 0B76C8 7F082B98 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0B76CC 7F082B9C AC2099B8 */ sw $zero, %lo(dword_CODE_bss_800799B8)($at) +/* 0B76D0 7F082BA0 8E180000 */ lw $t8, ($s0) +/* 0B76D4 7F082BA4 3C018008 */ lui $at, %hi(flt_CODE_bss_800799BC) +/* 0B76D8 7F082BA8 E714016C */ swc1 $f20, 0x16c($t8) +/* 0B76DC 7F082BAC 8E0E0000 */ lw $t6, ($s0) +/* 0B76E0 7F082BB0 E5D40174 */ swc1 $f20, 0x174($t6) +/* 0B76E4 7F082BB4 8E0F0000 */ lw $t7, ($s0) +/* 0B76E8 7F082BB8 E5F4014C */ swc1 $f20, 0x14c($t7) +/* 0B76EC 7F082BBC 8E0A0000 */ lw $t2, ($s0) +/* 0B76F0 7F082BC0 AD59009C */ sw $t9, 0x9c($t2) +/* 0B76F4 7F082BC4 E43499BC */ swc1 $f20, %lo(flt_CODE_bss_800799BC)($at) +/* 0B76F8 7F082BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B76FC 7F082BCC 44813000 */ mtc1 $at, $f6 +/* 0B7700 7F082BD0 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C0) +/* 0B7704 7F082BD4 E42699C0 */ swc1 $f6, %lo(flt_CODE_bss_800799C0)($at) +/* 0B7708 7F082BD8 8E080000 */ lw $t0, ($s0) +/* 0B770C 7F082BDC 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) +/* 0B7710 7F082BE0 C5080148 */ lwc1 $f8, 0x148($t0) +/* 0B7714 7F082BE4 E42899C4 */ swc1 $f8, %lo(flt_CODE_bss_800799C4)($at) +/* 0B7718 7F082BE8 C50A0158 */ lwc1 $f10, 0x158($t0) +/* 0B771C 7F082BEC 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) +/* 0B7720 7F082BF0 E42A99C8 */ swc1 $f10, %lo(flt_CODE_bss_800799C8)($at) +/* 0B7724 7F082BF4 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0B7728 7F082BF8 3C018003 */ lui $at, %hi(D_80036490) +/* 0B772C 7F082BFC E4520000 */ swc1 $f18, ($v0) +/* 0B7730 7F082C00 C5040490 */ lwc1 $f4, 0x490($t0) +/* 0B7734 7F082C04 E4440004 */ swc1 $f4, 4($v0) +/* 0B7738 7F082C08 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B773C 7F082C0C E4460008 */ swc1 $f6, 8($v0) +/* 0B7740 7F082C10 0FC1F1ED */ jal sub_GAME_7F07C7B4 +/* 0B7744 7F082C14 AC206490 */ sw $zero, %lo(D_80036490)($at) +/* 0B7748 7F082C18 10000005 */ b .L7F082C30 +/* 0B774C 7F082C1C 8FAC0144 */ lw $t4, 0x144($sp) +/* 0B7750 7F082C20 8E0D0000 */ lw $t5, ($s0) +.L7F082C24: +/* 0B7754 7F082C24 240B0001 */ li $t3, 1 +/* 0B7758 7F082C28 ADAB00D0 */ sw $t3, 0xd0($t5) +.L7F082C2C: +/* 0B775C 7F082C2C 8FAC0144 */ lw $t4, 0x144($sp) +.L7F082C30: +/* 0B7760 7F082C30 1580000B */ bnez $t4, .L7F082C60 +/* 0B7764 7F082C34 00000000 */ nop +/* 0B7768 7F082C38 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B776C 7F082C3C 8FAF0128 */ lw $t7, 0x128($sp) +/* 0B7770 7F082C40 C7A00184 */ lwc1 $f0, 0x184($sp) +/* 0B7774 7F082C44 C7A80180 */ lwc1 $f8, 0x180($sp) +/* 0B7778 7F082C48 00187023 */ negu $t6, $t8 +/* 0B777C 7F082C4C 000FC823 */ negu $t9, $t7 +/* 0B7780 7F082C50 AFAE0130 */ sw $t6, 0x130($sp) +/* 0B7784 7F082C54 AFB90128 */ sw $t9, 0x128($sp) +/* 0B7788 7F082C58 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B778C 7F082C5C E7A80184 */ swc1 $f8, 0x184($sp) +.L7F082C60: +/* 0B7790 7F082C60 0FC227A9 */ jal check_if_bond_is_invincible +/* 0B7794 7F082C64 00000000 */ nop +/* 0B7798 7F082C68 10400007 */ beqz $v0, .L7F082C88 +/* 0B779C 7F082C6C 00000000 */ nop +/* 0B77A0 7F082C70 0FC26919 */ jal get_num_players +/* 0B77A4 7F082C74 00000000 */ nop +/* 0B77A8 7F082C78 24010001 */ li $at, 1 +/* 0B77AC 7F082C7C 14410002 */ bne $v0, $at, .L7F082C88 +/* 0B77B0 7F082C80 00000000 */ nop +/* 0B77B4 7F082C84 AFA001B4 */ sw $zero, 0x1b4($sp) +.L7F082C88: +/* 0B77B8 7F082C88 0FC19D08 */ jal sub_GAME_7F067420 +/* 0B77BC 7F082C8C 8FA401B4 */ lw $a0, 0x1b4($sp) +/* 0B77C0 7F082C90 0FC227DD */ jal get_invisible_to_guards_flag +/* 0B77C4 7F082C94 00000000 */ nop +/* 0B77C8 7F082C98 50400028 */ beql $v0, $zero, .L7F082D3C +/* 0B77CC 7F082C9C 24040002 */ li $a0, 2 +/* 0B77D0 7F082CA0 0FC17722 */ jal get_hands_firing_status +/* 0B77D4 7F082CA4 00002025 */ move $a0, $zero +/* 0B77D8 7F082CA8 54400006 */ bnezl $v0, .L7F082CC4 +/* 0B77DC 7F082CAC E7B400E4 */ swc1 $f20, 0xe4($sp) +/* 0B77E0 7F082CB0 0FC17722 */ jal get_hands_firing_status +/* 0B77E4 7F082CB4 24040001 */ li $a0, 1 +/* 0B77E8 7F082CB8 50400020 */ beql $v0, $zero, .L7F082D3C +/* 0B77EC 7F082CBC 24040002 */ li $a0, 2 +/* 0B77F0 7F082CC0 E7B400E4 */ swc1 $f20, 0xe4($sp) +.L7F082CC4: +/* 0B77F4 7F082CC4 0FC17722 */ jal get_hands_firing_status +/* 0B77F8 7F082CC8 00002025 */ move $a0, $zero +/* 0B77FC 7F082CCC 1040000A */ beqz $v0, .L7F082CF8 +/* 0B7800 7F082CD0 00000000 */ nop +/* 0B7804 7F082CD4 0FC19C5D */ jal sub_GAME_7F067174 +/* 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 +/* 0B7820 7F082CF0 00002025 */ move $a0, $zero +/* 0B7824 7F082CF4 E7A000E4 */ swc1 $f0, 0xe4($sp) +.L7F082CF8: +/* 0B7828 7F082CF8 0FC17722 */ jal get_hands_firing_status +/* 0B782C 7F082CFC 24040001 */ li $a0, 1 +/* 0B7830 7F082D00 1040000B */ beqz $v0, .L7F082D30 +/* 0B7834 7F082D04 00000000 */ nop +/* 0B7838 7F082D08 0FC19C5D */ jal sub_GAME_7F067174 +/* 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 +/* 0B7858 7F082D28 24040001 */ li $a0, 1 +/* 0B785C 7F082D2C E7A000E4 */ swc1 $f0, 0xe4($sp) +.L7F082D30: +/* 0B7860 7F082D30 0FC08BBB */ jal sub_GAME_7F022EEC +/* 0B7864 7F082D34 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0B7868 7F082D38 24040002 */ li $a0, 2 +.L7F082D3C: +/* 0B786C 7F082D3C 0FC1A96A */ jal set_unset_bitflags +/* 0B7870 7F082D40 8FA5016C */ lw $a1, 0x16c($sp) +/* 0B7874 7F082D44 C7B20164 */ lwc1 $f18, 0x164($sp) +/* 0B7878 7F082D48 4612A03C */ c.lt.s $f20, $f18 +/* 0B787C 7F082D4C 00000000 */ nop +/* 0B7880 7F082D50 45020004 */ bc1fl .L7F082D64 +/* 0B7884 7F082D54 C7A40160 */ lwc1 $f4, 0x160($sp) +/* 0B7888 7F082D58 0FC17769 */ jal camera_sniper_zoom_in +/* 0B788C 7F082D5C 46009306 */ mov.s $f12, $f18 +/* 0B7890 7F082D60 C7A40160 */ lwc1 $f4, 0x160($sp) +.L7F082D64: +/* 0B7894 7F082D64 4604A03C */ c.lt.s $f20, $f4 +/* 0B7898 7F082D68 00000000 */ nop +/* 0B789C 7F082D6C 45020004 */ bc1fl .L7F082D80 +/* 0B78A0 7F082D70 8E0A0000 */ lw $t2, ($s0) +/* 0B78A4 7F082D74 0FC177A5 */ jal camera_sniper_zoom_out +/* 0B78A8 7F082D78 46002306 */ mov.s $f12, $f4 +/* 0B78AC 7F082D7C 8E0A0000 */ lw $t2, ($s0) +.L7F082D80: +/* 0B78B0 7F082D80 8FAD0168 */ lw $t5, 0x168($sp) +/* 0B78B4 7F082D84 8D4B01C8 */ lw $t3, 0x1c8($t2) +/* 0B78B8 7F082D88 15600011 */ bnez $t3, .L7F082DD0 +/* 0B78BC 7F082D8C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B78C0 7F082D90 44816000 */ mtc1 $at, $f12 +/* 0B78C4 7F082D94 11A0000A */ beqz $t5, .L7F082DC0 +/* 0B78C8 7F082D98 00000000 */ nop +/* 0B78CC 7F082D9C 0FC1774E */ jal get_item_in_hand_zoom +/* 0B78D0 7F082DA0 00000000 */ nop +/* 0B78D4 7F082DA4 4614003E */ c.le.s $f0, $f20 +/* 0B78D8 7F082DA8 46000306 */ mov.s $f12, $f0 +/* 0B78DC 7F082DAC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B78E0 7F082DB0 45000003 */ bc1f .L7F082DC0 +/* 0B78E4 7F082DB4 00000000 */ nop +/* 0B78E8 7F082DB8 44816000 */ mtc1 $at, $f12 +/* 0B78EC 7F082DBC 00000000 */ nop +.L7F082DC0: +/* 0B78F0 7F082DC0 0FC1F91B */ jal sub_GAME_7F07E46C +/* 0B78F4 7F082DC4 00000000 */ nop +/* 0B78F8 7F082DC8 0FC1F98B */ jal sub_GAME_7F07E62C +/* 0B78FC 7F082DCC 00000000 */ nop +.L7F082DD0: +/* 0B7900 7F082DD0 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B7904 7F082DD4 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B7908 7F082DD8 24010001 */ li $at, 1 +/* 0B790C 7F082DDC 8FAE0194 */ lw $t6, 0x194($sp) +/* 0B7910 7F082DE0 158100C6 */ bne $t4, $at, .L7F0830FC +/* 0B7914 7F082DE4 3C028003 */ lui $v0, %hi(D_80036488) +/* 0B7918 7F082DE8 24426488 */ addiu $v0, %lo(D_80036488) # addiu $v0, $v0, 0x6488 +/* 0B791C 7F082DEC E4540000 */ swc1 $f20, ($v0) +/* 0B7920 7F082DF0 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B7924 7F082DF4 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B7928 7F082DF8 24010002 */ li $at, 2 +/* 0B792C 7F082DFC C7A60188 */ lwc1 $f6, 0x188($sp) +/* 0B7930 7F082E00 170100BC */ bne $t8, $at, .L7F0830F4 +/* 0B7934 7F082E04 00000000 */ nop +/* 0B7938 7F082E08 4606A03C */ c.lt.s $f20, $f6 +/* 0B793C 7F082E0C 8E080000 */ lw $t0, ($s0) +/* 0B7940 7F082E10 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7944 7F082E14 C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 0B7948 7F082E18 4502000B */ bc1fl .L7F082E48 +/* 0B794C 7F082E1C 460AA03C */ c.lt.s $f20, $f10 +/* 0B7950 7F082E20 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B7954 7F082E24 3C018005 */ lui $at, %hi(D_80055128) +/* 0B7958 7F082E28 C4325128 */ lwc1 $f18, %lo(D_80055128)($at) +/* 0B795C 7F082E2C 46064282 */ mul.s $f10, $f8, $f6 +/* 0B7960 7F082E30 C4480000 */ lwc1 $f8, ($v0) +/* 0B7964 7F082E34 46125102 */ mul.s $f4, $f10, $f18 +/* 0B7968 7F082E38 46044180 */ add.s $f6, $f8, $f4 +/* 0B796C 7F082E3C 10000031 */ b .L7F082F04 +/* 0B7970 7F082E40 E4460000 */ swc1 $f6, ($v0) +/* 0B7974 7F082E44 460AA03C */ c.lt.s $f20, $f10 +.L7F082E48: +/* 0B7978 7F082E48 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B797C 7F082E4C 8FAE01A8 */ lw $t6, 0x1a8($sp) +/* 0B7980 7F082E50 4500000A */ bc1f .L7F082E7C +/* 0B7984 7F082E54 00000000 */ nop +/* 0B7988 7F082E58 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B798C 7F082E5C 3C018005 */ lui $at, %hi(D_8005512C) +/* 0B7990 7F082E60 C424512C */ lwc1 $f4, %lo(D_8005512C)($at) +/* 0B7994 7F082E64 460A9202 */ mul.s $f8, $f18, $f10 +/* 0B7998 7F082E68 C4520000 */ lwc1 $f18, ($v0) +/* 0B799C 7F082E6C 46044182 */ mul.s $f6, $f8, $f4 +/* 0B79A0 7F082E70 46069281 */ sub.s $f10, $f18, $f6 +/* 0B79A4 7F082E74 10000023 */ b .L7F082F04 +/* 0B79A8 7F082E78 E44A0000 */ swc1 $f10, ($v0) +.L7F082E7C: +/* 0B79AC 7F082E7C 11C00021 */ beqz $t6, .L7F082F04 +/* 0B79B0 7F082E80 8FAF0124 */ lw $t7, 0x124($sp) +/* 0B79B4 7F082E84 448F4000 */ mtc1 $t7, $f8 +/* 0B79B8 7F082E88 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B79BC 7F082E8C 44819000 */ mtc1 $at, $f18 +/* 0B79C0 7F082E90 46804120 */ cvt.s.w $f4, $f8 +/* 0B79C4 7F082E94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B79C8 7F082E98 44813000 */ mtc1 $at, $f6 +/* 0B79CC 7F082E9C 3C013F80 */ lui $at, 0x3f80 +/* 0B79D0 7F082EA0 46122083 */ div.s $f2, $f4, $f18 +/* 0B79D4 7F082EA4 4602303C */ c.lt.s $f6, $f2 +/* 0B79D8 7F082EA8 00000000 */ nop +/* 0B79DC 7F082EAC 45020004 */ bc1fl .L7F082EC0 +/* 0B79E0 7F082EB0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B79E4 7F082EB4 44811000 */ mtc1 $at, $f2 +/* 0B79E8 7F082EB8 00000000 */ nop +/* 0B79EC 7F082EBC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F082EC0: +/* 0B79F0 7F082EC0 44815000 */ mtc1 $at, $f10 +/* 0B79F4 7F082EC4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B79F8 7F082EC8 460A103C */ c.lt.s $f2, $f10 +/* 0B79FC 7F082ECC 00000000 */ nop +/* 0B7A00 7F082ED0 45000003 */ bc1f .L7F082EE0 +/* 0B7A04 7F082ED4 00000000 */ nop +/* 0B7A08 7F082ED8 44811000 */ mtc1 $at, $f2 +/* 0B7A0C 7F082EDC 00000000 */ nop +.L7F082EE0: +/* 0B7A10 7F082EE0 3C018005 */ lui $at, %hi(D_80055130) +/* 0B7A14 7F082EE4 C4285130 */ lwc1 $f8, %lo(D_80055130)($at) +/* 0B7A18 7F082EE8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7A1C 7F082EEC C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7A20 7F082EF0 46024102 */ mul.s $f4, $f8, $f2 +/* 0B7A24 7F082EF4 C44A0000 */ lwc1 $f10, ($v0) +/* 0B7A28 7F082EF8 46122182 */ mul.s $f6, $f4, $f18 +/* 0B7A2C 7F082EFC 46065200 */ add.s $f8, $f10, $f6 +/* 0B7A30 7F082F00 E4480000 */ swc1 $f8, ($v0) +.L7F082F04: +/* 0B7A34 7F082F04 8D190124 */ lw $t9, 0x124($t0) +/* 0B7A38 7F082F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7A3C 7F082F0C 8FAA01AC */ lw $t2, 0x1ac($sp) +/* 0B7A40 7F082F10 17200078 */ bnez $t9, .L7F0830F4 +/* 0B7A44 7F082F14 00000000 */ nop +/* 0B7A48 7F082F18 44811000 */ mtc1 $at, $f2 +/* 0B7A4C 7F082F1C 4600A006 */ mov.s $f0, $f20 +/* 0B7A50 7F082F20 11400009 */ beqz $t2, .L7F082F48 +/* 0B7A54 7F082F24 46001386 */ mov.s $f14, $f2 +/* 0B7A58 7F082F28 8FA90120 */ lw $t1, 0x120($sp) +/* 0B7A5C 7F082F2C 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7A60 7F082F30 44815000 */ mtc1 $at, $f10 +/* 0B7A64 7F082F34 44892000 */ mtc1 $t1, $f4 +/* 0B7A68 7F082F38 00000000 */ nop +/* 0B7A6C 7F082F3C 468024A0 */ cvt.s.w $f18, $f4 +/* 0B7A70 7F082F40 1000000B */ b .L7F082F70 +/* 0B7A74 7F082F44 460A9003 */ div.s $f0, $f18, $f10 +.L7F082F48: +/* 0B7A78 7F082F48 8FAB019C */ lw $t3, 0x19c($sp) +/* 0B7A7C 7F082F4C 8FAD0198 */ lw $t5, 0x198($sp) +/* 0B7A80 7F082F50 11600003 */ beqz $t3, .L7F082F60 +/* 0B7A84 7F082F54 00000000 */ nop +/* 0B7A88 7F082F58 10000005 */ b .L7F082F70 +/* 0B7A8C 7F082F5C 46001006 */ mov.s $f0, $f2 +.L7F082F60: +/* 0B7A90 7F082F60 11A00003 */ beqz $t5, .L7F082F70 +/* 0B7A94 7F082F64 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7A98 7F082F68 44810000 */ mtc1 $at, $f0 +/* 0B7A9C 7F082F6C 00000000 */ nop +.L7F082F70: +/* 0B7AA0 7F082F70 4600103C */ c.lt.s $f2, $f0 +/* 0B7AA4 7F082F74 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7AA8 7F082F78 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 0B7AAC 7F082F7C 45020004 */ bc1fl .L7F082F90 +/* 0B7AB0 7F082F80 44813000 */ mtc1 $at, $f6 +/* 0B7AB4 7F082F84 10000009 */ b .L7F082FAC +/* 0B7AB8 7F082F88 46001006 */ mov.s $f0, $f2 +/* 0B7ABC 7F082F8C 44813000 */ mtc1 $at, $f6 +.L7F082F90: +/* 0B7AC0 7F082F90 3C01BF80 */ lui $at, 0xbf80 +/* 0B7AC4 7F082F94 4606003C */ c.lt.s $f0, $f6 +/* 0B7AC8 7F082F98 00000000 */ nop +/* 0B7ACC 7F082F9C 45020004 */ bc1fl .L7F082FB0 +/* 0B7AD0 7F082FA0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B7AD4 7F082FA4 44810000 */ mtc1 $at, $f0 +/* 0B7AD8 7F082FA8 00000000 */ nop +.L7F082FAC: +/* 0B7ADC 7F082FAC 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F082FB0: +/* 0B7AE0 7F082FB0 44818000 */ mtc1 $at, $f16 +/* 0B7AE4 7F082FB4 3C038003 */ lui $v1, %hi(D_80036490) +/* 0B7AE8 7F082FB8 24636490 */ addiu $v1, %lo(D_80036490) # addiu $v1, $v1, 0x6490 +/* 0B7AEC 7F082FBC 46100302 */ mul.s $f12, $f0, $f16 +/* 0B7AF0 7F082FC0 8C620000 */ lw $v0, ($v1) +/* 0B7AF4 7F082FC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7AF8 7F082FC8 18400008 */ blez $v0, .L7F082FEC +/* 0B7AFC 7F082FCC 46006086 */ mov.s $f2, $f12 +/* 0B7B00 7F082FD0 44814000 */ mtc1 $at, $f8 +/* 0B7B04 7F082FD4 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 0B7B08 7F082FD8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B7B0C 7F082FDC 44817000 */ mtc1 $at, $f14 +/* 0B7B10 7F082FE0 004CC023 */ subu $t8, $v0, $t4 +/* 0B7B14 7F082FE4 46086082 */ mul.s $f2, $f12, $f8 +/* 0B7B18 7F082FE8 AC780000 */ sw $t8, ($v1) +.L7F082FEC: +/* 0B7B1C 7F082FEC C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7B20 7F082FF0 46001032 */ c.eq.s $f2, $f0 +/* 0B7B24 7F082FF4 00000000 */ nop +/* 0B7B28 7F082FF8 4501003E */ bc1t .L7F0830F4 +/* 0B7B2C 7F082FFC 00000000 */ nop +/* 0B7B30 7F083000 4602003C */ c.lt.s $f0, $f2 +/* 0B7B34 7F083004 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B7B38 7F083008 4502001D */ bc1fl .L7F083080 +/* 0B7B3C 7F08300C 4600103C */ c.lt.s $f2, $f0 +/* 0B7B40 7F083010 46001101 */ sub.s $f4, $f2, $f0 +/* 0B7B44 7F083014 44819000 */ mtc1 $at, $f18 +/* 0B7B48 7F083018 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7B4C 7F08301C 44814000 */ mtc1 $at, $f8 +/* 0B7B50 7F083020 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7B54 7F083024 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7B58 7F083028 46105183 */ div.s $f6, $f10, $f16 +/* 0B7B5C 7F08302C 44815000 */ mtc1 $at, $f10 +/* 0B7B60 7F083030 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B7B64 7F083034 46083100 */ add.s $f4, $f6, $f8 +/* 0B7B68 7F083038 44814000 */ mtc1 $at, $f8 +/* 0B7B6C 7F08303C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7B70 7F083040 460E2482 */ mul.s $f18, $f4, $f14 +/* 0B7B74 7F083044 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B7B78 7F083048 460A9182 */ mul.s $f6, $f18, $f10 +/* 0B7B7C 7F08304C 46083303 */ div.s $f12, $f6, $f8 +/* 0B7B80 7F083050 46046482 */ mul.s $f18, $f12, $f4 +/* 0B7B84 7F083054 46120280 */ add.s $f10, $f0, $f18 +/* 0B7B88 7F083058 E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B7B8C 7F08305C 8E080000 */ lw $t0, ($s0) +/* 0B7B90 7F083060 C5060174 */ lwc1 $f6, 0x174($t0) +/* 0B7B94 7F083064 4606103C */ c.lt.s $f2, $f6 +/* 0B7B98 7F083068 00000000 */ nop +/* 0B7B9C 7F08306C 45000021 */ bc1f .L7F0830F4 +/* 0B7BA0 7F083070 00000000 */ nop +/* 0B7BA4 7F083074 1000001F */ b .L7F0830F4 +/* 0B7BA8 7F083078 E5020174 */ swc1 $f2, 0x174($t0) +/* 0B7BAC 7F08307C 4600103C */ c.lt.s $f2, $f0 +.L7F083080: +/* 0B7BB0 7F083080 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B7BB4 7F083084 4500001B */ bc1f .L7F0830F4 +/* 0B7BB8 7F083088 00000000 */ nop +/* 0B7BBC 7F08308C 46020201 */ sub.s $f8, $f0, $f2 +/* 0B7BC0 7F083090 44812000 */ mtc1 $at, $f4 +/* 0B7BC4 7F083094 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7BC8 7F083098 44813000 */ mtc1 $at, $f6 +/* 0B7BCC 7F08309C 46044482 */ mul.s $f18, $f8, $f4 +/* 0B7BD0 7F0830A0 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B7BD4 7F0830A4 46109283 */ div.s $f10, $f18, $f16 +/* 0B7BD8 7F0830A8 44819000 */ mtc1 $at, $f18 +/* 0B7BDC 7F0830AC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B7BE0 7F0830B0 46065200 */ add.s $f8, $f10, $f6 +/* 0B7BE4 7F0830B4 44813000 */ mtc1 $at, $f6 +/* 0B7BE8 7F0830B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7BEC 7F0830BC 460E4102 */ mul.s $f4, $f8, $f14 +/* 0B7BF0 7F0830C0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B7BF4 7F0830C4 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7BF8 7F0830C8 46065303 */ div.s $f12, $f10, $f6 +/* 0B7BFC 7F0830CC 46086102 */ mul.s $f4, $f12, $f8 +/* 0B7C00 7F0830D0 46040480 */ add.s $f18, $f0, $f4 +/* 0B7C04 7F0830D4 E5120174 */ swc1 $f18, 0x174($t0) +/* 0B7C08 7F0830D8 8E080000 */ lw $t0, ($s0) +/* 0B7C0C 7F0830DC C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0B7C10 7F0830E0 4602503C */ c.lt.s $f10, $f2 +/* 0B7C14 7F0830E4 00000000 */ nop +/* 0B7C18 7F0830E8 45000002 */ bc1f .L7F0830F4 +/* 0B7C1C 7F0830EC 00000000 */ nop +/* 0B7C20 7F0830F0 E5020174 */ swc1 $f2, 0x174($t0) +.L7F0830F4: +/* 0B7C24 7F0830F4 100000A7 */ b .L7F083394 +/* 0B7C28 7F0830F8 8E080000 */ lw $t0, ($s0) +.L7F0830FC: +/* 0B7C2C 7F0830FC 11C00005 */ beqz $t6, .L7F083114 +/* 0B7C30 7F083100 8FAF0190 */ lw $t7, 0x190($sp) +/* 0B7C34 7F083104 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C38 7F083108 2404FFFF */ li $a0, -1 +/* 0B7C3C 7F08310C 1000000A */ b .L7F083138 +/* 0B7C40 7F083110 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F083114: +/* 0B7C44 7F083114 11E00005 */ beqz $t7, .L7F08312C +/* 0B7C48 7F083118 00000000 */ nop +/* 0B7C4C 7F08311C 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C50 7F083120 24040001 */ li $a0, 1 +/* 0B7C54 7F083124 10000004 */ b .L7F083138 +/* 0B7C58 7F083128 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F08312C: +/* 0B7C5C 7F08312C 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C60 7F083130 00002025 */ move $a0, $zero +/* 0B7C64 7F083134 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F083138: +/* 0B7C68 7F083138 8FAA0124 */ lw $t2, 0x124($sp) +/* 0B7C6C 7F08313C 53200009 */ beql $t9, $zero, .L7F083164 +/* 0B7C70 7F083140 8FAD019C */ lw $t5, 0x19c($sp) +/* 0B7C74 7F083144 448A3000 */ mtc1 $t2, $f6 +/* 0B7C78 7F083148 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7C7C 7F08314C 44812000 */ mtc1 $at, $f4 +/* 0B7C80 7F083150 46803220 */ cvt.s.w $f8, $f6 +/* 0B7C84 7F083154 8E0B0000 */ lw $t3, ($s0) +/* 0B7C88 7F083158 46044483 */ div.s $f18, $f8, $f4 +/* 0B7C8C 7F08315C E572016C */ swc1 $f18, 0x16c($t3) +/* 0B7C90 7F083160 8FAD019C */ lw $t5, 0x19c($sp) +.L7F083164: +/* 0B7C94 7F083164 8FAF0198 */ lw $t7, 0x198($sp) +/* 0B7C98 7F083168 11A0000A */ beqz $t5, .L7F083194 +/* 0B7C9C 7F08316C 00000000 */ nop +/* 0B7CA0 7F083170 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CA4 7F083174 24040001 */ li $a0, 1 +/* 0B7CA8 7F083178 8E080000 */ lw $t0, ($s0) +/* 0B7CAC 7F08317C 3C188005 */ lui $t8, %hi(clock_timer) +/* 0B7CB0 7F083180 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0B7CB4 7F083184 8D0C017C */ lw $t4, 0x17c($t0) +/* 0B7CB8 7F083188 01987021 */ addu $t6, $t4, $t8 +/* 0B7CBC 7F08318C 10000009 */ b .L7F0831B4 +/* 0B7CC0 7F083190 AD0E017C */ sw $t6, 0x17c($t0) +.L7F083194: +/* 0B7CC4 7F083194 11E00005 */ beqz $t7, .L7F0831AC +/* 0B7CC8 7F083198 00000000 */ nop +/* 0B7CCC 7F08319C 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CD0 7F0831A0 2404FFFF */ li $a0, -1 +/* 0B7CD4 7F0831A4 10000004 */ b .L7F0831B8 +/* 0B7CD8 7F0831A8 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F0831AC: +/* 0B7CDC 7F0831AC 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CE0 7F0831B0 00002025 */ move $a0, $zero +.L7F0831B4: +/* 0B7CE4 7F0831B4 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F0831B8: +/* 0B7CE8 7F0831B8 8FAA0120 */ lw $t2, 0x120($sp) +/* 0B7CEC 7F0831BC 53200016 */ beql $t9, $zero, .L7F083218 +/* 0B7CF0 7F0831C0 8E080000 */ lw $t0, ($s0) +/* 0B7CF4 7F0831C4 448A5000 */ mtc1 $t2, $f10 +/* 0B7CF8 7F0831C8 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7CFC 7F0831CC 44814000 */ mtc1 $at, $f8 +/* 0B7D00 7F0831D0 468051A0 */ cvt.s.w $f6, $f10 +/* 0B7D04 7F0831D4 8E0B0000 */ lw $t3, ($s0) +/* 0B7D08 7F0831D8 46083103 */ div.s $f4, $f6, $f8 +/* 0B7D0C 7F0831DC E5640174 */ swc1 $f4, 0x174($t3) +/* 0B7D10 7F0831E0 8FAD0120 */ lw $t5, 0x120($sp) +/* 0B7D14 7F0831E4 29A1003D */ slti $at, $t5, 0x3d +/* 0B7D18 7F0831E8 54200009 */ bnezl $at, .L7F083210 +/* 0B7D1C 7F0831EC 8E0F0000 */ lw $t7, ($s0) +/* 0B7D20 7F0831F0 8E080000 */ lw $t0, ($s0) +/* 0B7D24 7F0831F4 3C188005 */ lui $t8, %hi(clock_timer) +/* 0B7D28 7F0831F8 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0B7D2C 7F0831FC 8D0C017C */ lw $t4, 0x17c($t0) +/* 0B7D30 7F083200 01987021 */ addu $t6, $t4, $t8 +/* 0B7D34 7F083204 10000003 */ b .L7F083214 +/* 0B7D38 7F083208 AD0E017C */ sw $t6, 0x17c($t0) +/* 0B7D3C 7F08320C 8E0F0000 */ lw $t7, ($s0) +.L7F083210: +/* 0B7D40 7F083210 ADE0017C */ sw $zero, 0x17c($t7) +.L7F083214: +/* 0B7D44 7F083214 8E080000 */ lw $t0, ($s0) +.L7F083218: +/* 0B7D48 7F083218 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7D4C 7F08321C 44819000 */ mtc1 $at, $f18 +/* 0B7D50 7F083220 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7D54 7F083224 3C013F80 */ lui $at, 0x3f80 +/* 0B7D58 7F083228 4600903C */ c.lt.s $f18, $f0 +/* 0B7D5C 7F08322C 00000000 */ nop +/* 0B7D60 7F083230 45020007 */ bc1fl .L7F083250 +/* 0B7D64 7F083234 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7D68 7F083238 44815000 */ mtc1 $at, $f10 +/* 0B7D6C 7F08323C 00000000 */ nop +/* 0B7D70 7F083240 E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B7D74 7F083244 8E080000 */ lw $t0, ($s0) +/* 0B7D78 7F083248 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7D7C 7F08324C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F083250: +/* 0B7D80 7F083250 44813000 */ mtc1 $at, $f6 +/* 0B7D84 7F083254 3C01BF80 */ lui $at, 0xbf80 +/* 0B7D88 7F083258 4606003C */ c.lt.s $f0, $f6 +/* 0B7D8C 7F08325C 00000000 */ nop +/* 0B7D90 7F083260 45020006 */ bc1fl .L7F08327C +/* 0B7D94 7F083264 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7D98 7F083268 44814000 */ mtc1 $at, $f8 +/* 0B7D9C 7F08326C 00000000 */ nop +/* 0B7DA0 7F083270 E5080174 */ swc1 $f8, 0x174($t0) +/* 0B7DA4 7F083274 8E080000 */ lw $t0, ($s0) +/* 0B7DA8 7F083278 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F08327C: +/* 0B7DAC 7F08327C 44812000 */ mtc1 $at, $f4 +/* 0B7DB0 7F083280 C500016C */ lwc1 $f0, 0x16c($t0) +/* 0B7DB4 7F083284 3C013F80 */ lui $at, 0x3f80 +/* 0B7DB8 7F083288 4600203C */ c.lt.s $f4, $f0 +/* 0B7DBC 7F08328C 00000000 */ nop +/* 0B7DC0 7F083290 45020007 */ bc1fl .L7F0832B0 +/* 0B7DC4 7F083294 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7DC8 7F083298 44819000 */ mtc1 $at, $f18 +/* 0B7DCC 7F08329C 00000000 */ nop +/* 0B7DD0 7F0832A0 E512016C */ swc1 $f18, 0x16c($t0) +/* 0B7DD4 7F0832A4 8E080000 */ lw $t0, ($s0) +/* 0B7DD8 7F0832A8 C500016C */ lwc1 $f0, 0x16c($t0) +/* 0B7DDC 7F0832AC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F0832B0: +/* 0B7DE0 7F0832B0 44815000 */ mtc1 $at, $f10 +/* 0B7DE4 7F0832B4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7DE8 7F0832B8 460A003C */ c.lt.s $f0, $f10 +/* 0B7DEC 7F0832BC 00000000 */ nop +/* 0B7DF0 7F0832C0 45000005 */ bc1f .L7F0832D8 +/* 0B7DF4 7F0832C4 00000000 */ nop +/* 0B7DF8 7F0832C8 44813000 */ mtc1 $at, $f6 +/* 0B7DFC 7F0832CC 00000000 */ nop +/* 0B7E00 7F0832D0 E506016C */ swc1 $f6, 0x16c($t0) +/* 0B7E04 7F0832D4 8E080000 */ lw $t0, ($s0) +.L7F0832D8: +/* 0B7E08 7F0832D8 3C018005 */ lui $at, %hi(D_80055134) +/* 0B7E0C 7F0832DC C4245134 */ lwc1 $f4, %lo(D_80055134)($at) +/* 0B7E10 7F0832E0 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B7E14 7F0832E4 46044482 */ mul.s $f18, $f8, $f4 +/* 0B7E18 7F0832E8 E5120174 */ swc1 $f18, 0x174($t0) +/* 0B7E1C 7F0832EC 8E080000 */ lw $t0, ($s0) +/* 0B7E20 7F0832F0 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0B7E24 7F0832F4 C5060178 */ lwc1 $f6, 0x178($t0) +/* 0B7E28 7F0832F8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B7E2C 7F0832FC E5080174 */ swc1 $f8, 0x174($t0) +/* 0B7E30 7F083300 8FB901AC */ lw $t9, 0x1ac($sp) +/* 0B7E34 7F083304 8FAA019C */ lw $t2, 0x19c($sp) +/* 0B7E38 7F083308 57200006 */ bnezl $t9, .L7F083324 +/* 0B7E3C 7F08330C 8FAD0154 */ lw $t5, 0x154($sp) +/* 0B7E40 7F083310 55400004 */ bnezl $t2, .L7F083324 +/* 0B7E44 7F083314 8FAD0154 */ lw $t5, 0x154($sp) +/* 0B7E48 7F083318 8E0B0000 */ lw $t3, ($s0) +/* 0B7E4C 7F08331C AD60017C */ sw $zero, 0x17c($t3) +/* 0B7E50 7F083320 8FAD0154 */ lw $t5, 0x154($sp) +.L7F083324: +/* 0B7E54 7F083324 8FAC0150 */ lw $t4, 0x150($sp) +/* 0B7E58 7F083328 11A00005 */ beqz $t5, .L7F083340 +/* 0B7E5C 7F08332C 00000000 */ nop +/* 0B7E60 7F083330 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E64 7F083334 2404FFFF */ li $a0, -1 +/* 0B7E68 7F083338 1000000A */ b .L7F083364 +/* 0B7E6C 7F08333C 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083340: +/* 0B7E70 7F083340 11800005 */ beqz $t4, .L7F083358 +/* 0B7E74 7F083344 00000000 */ nop +/* 0B7E78 7F083348 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E7C 7F08334C 24040001 */ li $a0, 1 +/* 0B7E80 7F083350 10000004 */ b .L7F083364 +/* 0B7E84 7F083354 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083358: +/* 0B7E88 7F083358 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E8C 7F08335C 00002025 */ move $a0, $zero +/* 0B7E90 7F083360 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083364: +/* 0B7E94 7F083364 8FAE0158 */ lw $t6, 0x158($sp) +/* 0B7E98 7F083368 13000005 */ beqz $t8, .L7F083380 +/* 0B7E9C 7F08336C 00000000 */ nop +/* 0B7EA0 7F083370 0FC1E66B */ jal change_crouch_position +/* 0B7EA4 7F083374 2404FFFE */ li $a0, -2 +/* 0B7EA8 7F083378 10000006 */ b .L7F083394 +/* 0B7EAC 7F08337C 8E080000 */ lw $t0, ($s0) +.L7F083380: +/* 0B7EB0 7F083380 51C00004 */ beql $t6, $zero, .L7F083394 +/* 0B7EB4 7F083384 8E080000 */ lw $t0, ($s0) +/* 0B7EB8 7F083388 0FC1E66B */ jal change_crouch_position +/* 0B7EBC 7F08338C 24040002 */ li $a0, 2 +/* 0B7EC0 7F083390 8E080000 */ lw $t0, ($s0) +.L7F083394: +/* 0B7EC4 7F083394 8D0F017C */ lw $t7, 0x17c($t0) +/* 0B7EC8 7F083398 29E100B4 */ slti $at, $t7, 0xb4 +/* 0B7ECC 7F08339C 14200017 */ bnez $at, .L7F0833FC +/* 0B7ED0 7F0833A0 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0B7ED4 7F0833A4 44811000 */ mtc1 $at, $f2 +/* 0B7ED8 7F0833A8 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7EDC 7F0833AC 3C018005 */ lui $at, %hi(D_80055138) +/* 0B7EE0 7F0833B0 4602003C */ c.lt.s $f0, $f2 +/* 0B7EE4 7F0833B4 00000000 */ nop +/* 0B7EE8 7F0833B8 4502000A */ bc1fl .L7F0833E4 +/* 0B7EEC 7F0833BC 4600103C */ c.lt.s $f2, $f0 +/* 0B7EF0 7F0833C0 C4245138 */ lwc1 $f4, %lo(D_80055138)($at) +/* 0B7EF4 7F0833C4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7EF8 7F0833C8 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7EFC 7F0833CC 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7F00 7F0833D0 460A0180 */ add.s $f6, $f0, $f10 +/* 0B7F04 7F0833D4 E5060178 */ swc1 $f6, 0x178($t0) +/* 0B7F08 7F0833D8 8E080000 */ lw $t0, ($s0) +/* 0B7F0C 7F0833DC C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F10 7F0833E0 4600103C */ c.lt.s $f2, $f0 +.L7F0833E4: +/* 0B7F14 7F0833E4 00000000 */ nop +/* 0B7F18 7F0833E8 45020020 */ bc1fl .L7F08346C +/* 0B7F1C 7F0833EC 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B7F20 7F0833F0 E5020178 */ swc1 $f2, 0x178($t0) +/* 0B7F24 7F0833F4 1000001C */ b .L7F083468 +/* 0B7F28 7F0833F8 8E080000 */ lw $t0, ($s0) +.L7F0833FC: +/* 0B7F2C 7F0833FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7F30 7F083400 44814000 */ mtc1 $at, $f8 +/* 0B7F34 7F083404 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F38 7F083408 3C018005 */ lui $at, %hi(D_8005513C) +/* 0B7F3C 7F08340C 4600403C */ c.lt.s $f8, $f0 +/* 0B7F40 7F083410 00000000 */ nop +/* 0B7F44 7F083414 4502000A */ bc1fl .L7F083440 +/* 0B7F48 7F083418 3C013F80 */ lui $at, %hi(0x3F800000) # $at, 0x3f80 +/* 0B7F4C 7F08341C C424513C */ lwc1 $f4, %lo(D_8005513C)($at) +/* 0B7F50 7F083420 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7F54 7F083424 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7F58 7F083428 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7F5C 7F08342C 460A0181 */ sub.s $f6, $f0, $f10 +/* 0B7F60 7F083430 E5060178 */ swc1 $f6, 0x178($t0) +/* 0B7F64 7F083434 8E080000 */ lw $t0, ($s0) +/* 0B7F68 7F083438 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F6C 7F08343C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F083440: +/* 0B7F70 7F083440 44814000 */ mtc1 $at, $f8 +/* 0B7F74 7F083444 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7F78 7F083448 4608003C */ c.lt.s $f0, $f8 +/* 0B7F7C 7F08344C 00000000 */ nop +/* 0B7F80 7F083450 45020006 */ bc1fl .L7F08346C +/* 0B7F84 7F083454 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B7F88 7F083458 44812000 */ mtc1 $at, $f4 +/* 0B7F8C 7F08345C 00000000 */ nop +/* 0B7F90 7F083460 E5040178 */ swc1 $f4, 0x178($t0) +/* 0B7F94 7F083464 8E080000 */ lw $t0, ($s0) +.L7F083468: +/* 0B7F98 7F083468 8D1901C8 */ lw $t9, 0x1c8($t0) +.L7F08346C: +/* 0B7F9C 7F08346C 572001B4 */ bnezl $t9, .L7F083B40 +/* 0B7FA0 7F083470 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B7FA4 7F083474 8D0A0114 */ lw $t2, 0x114($t0) +/* 0B7FA8 7F083478 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0B7FAC 7F08347C 44817000 */ mtc1 $at, $f14 +/* 0B7FB0 7F083480 1140007F */ beqz $t2, .L7F083680 +/* 0B7FB4 7F083484 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B7FB8 7F083488 8D0B0488 */ lw $t3, 0x488($t0) +/* 0B7FBC 7F08348C 44819000 */ mtc1 $at, $f18 +/* 0B7FC0 7F083490 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0B7FC4 7F083494 AFAB00C0 */ sw $t3, 0xc0($sp) +/* 0B7FC8 7F083498 E7B200BC */ swc1 $f18, 0xbc($sp) +/* 0B7FCC 7F08349C 8D0400A8 */ lw $a0, 0xa8($t0) +/* 0B7FD0 7F0834A0 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B7FD4 7F0834A4 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0B7FD8 7F0834A8 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B7FDC 7F0834AC 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0B7FE0 7F0834B0 8E080000 */ lw $t0, ($s0) +/* 0B7FE4 7F0834B4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B7FE8 7F0834B8 44810000 */ mtc1 $at, $f0 +/* 0B7FEC 7F0834BC C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0B7FF0 7F0834C0 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B7FF4 7F0834C4 46005182 */ mul.s $f6, $f10, $f0 +/* 0B7FF8 7F0834C8 46083100 */ add.s $f4, $f6, $f8 +/* 0B7FFC 7F0834CC E7A400AC */ swc1 $f4, 0xac($sp) +/* 0B8000 7F0834D0 C5120490 */ lwc1 $f18, 0x490($t0) +/* 0B8004 7F0834D4 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0B8008 7F0834D8 C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0B800C 7F0834DC C5080494 */ lwc1 $f8, 0x494($t0) +/* 0B8010 7F0834E0 46005182 */ mul.s $f6, $f10, $f0 +/* 0B8014 7F0834E4 46083100 */ add.s $f4, $f6, $f8 +/* 0B8018 7F0834E8 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0B801C 7F0834EC E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0B8020 7F0834F0 8E080000 */ lw $t0, ($s0) +/* 0B8024 7F0834F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8028 7F0834F8 44814000 */ mtc1 $at, $f8 +/* 0B802C 7F0834FC 8D05048C */ lw $a1, 0x48c($t0) +/* 0B8030 7F083500 8D060494 */ lw $a2, 0x494($t0) +/* 0B8034 7F083504 C7B200B4 */ lwc1 $f18, 0xb4($sp) +/* 0B8038 7F083508 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 0B803C 7F08350C C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0B8040 7F083510 240D1000 */ li $t5, 4096 +/* 0B8044 7F083514 AFAD0014 */ sw $t5, 0x14($sp) +/* 0B8048 7F083518 E7B40020 */ swc1 $f20, 0x20($sp) +/* 0B804C 7F08351C 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0B8050 7F083520 8FA700AC */ lw $a3, 0xac($sp) +/* 0B8054 7F083524 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0B8058 7F083528 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B805C 7F08352C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0B8060 7F083530 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B8064 7F083534 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0B8068 7F083538 10400009 */ beqz $v0, .L7F083560 +/* 0B806C 7F08353C C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8070 7F083540 8FA400C0 */ lw $a0, 0xc0($sp) +/* 0B8074 7F083544 8FA500AC */ lw $a1, 0xac($sp) +/* 0B8078 7F083548 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B807C 7F08354C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B8080 7F083550 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B8084 7F083554 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8088 7F083558 1000001A */ b .L7F0835C4 +/* 0B808C 7F08355C E7A000B0 */ swc1 $f0, 0xb0($sp) +.L7F083560: +/* 0B8090 7F083560 8E080000 */ lw $t0, ($s0) +/* 0B8094 7F083564 27A600AC */ addiu $a2, $sp, 0xac +/* 0B8098 7F083568 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B809C 7F08356C 2504048C */ addiu $a0, $t0, 0x48c +/* 0B80A0 7F083570 0FC098A6 */ jal sub_GAME_7F026298 +/* 0B80A4 7F083574 25050498 */ addiu $a1, $t0, 0x498 +/* 0B80A8 7F083578 8E080000 */ lw $t0, ($s0) +/* 0B80AC 7F08357C C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0B80B0 7F083580 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0B80B4 7F083584 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0B80B8 7F083588 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B80BC 7F08358C 46122001 */ sub.s $f0, $f4, $f18 +/* 0B80C0 7F083590 46065081 */ sub.s $f2, $f10, $f6 +/* 0B80C4 7F083594 46000202 */ mul.s $f8, $f0, $f0 +/* 0B80C8 7F083598 00000000 */ nop +/* 0B80CC 7F08359C 46021102 */ mul.s $f4, $f2, $f2 +/* 0B80D0 7F0835A0 0C007DF8 */ jal sqrtf +/* 0B80D4 7F0835A4 46044300 */ add.s $f12, $f8, $f4 +/* 0B80D8 7F0835A8 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 0B80DC 7F0835AC 8FA400C0 */ lw $a0, 0xc0($sp) +/* 0B80E0 7F0835B0 8FA500AC */ lw $a1, 0xac($sp) +/* 0B80E4 7F0835B4 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B80E8 7F0835B8 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B80EC 7F0835BC C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B80F0 7F0835C0 E7A000B0 */ swc1 $f0, 0xb0($sp) +.L7F0835C4: +/* 0B80F4 7F0835C4 C7B200BC */ lwc1 $f18, 0xbc($sp) +/* 0B80F8 7F0835C8 4612A03C */ c.lt.s $f20, $f18 +/* 0B80FC 7F0835CC 00000000 */ nop +/* 0B8100 7F0835D0 4502002C */ bc1fl .L7F083684 +/* 0B8104 7F0835D4 8E080000 */ lw $t0, ($s0) +/* 0B8108 7F0835D8 8E0C0000 */ lw $t4, ($s0) +/* 0B810C 7F0835DC 3C01C396 */ li $at, 0xC3960000 # -300.000000 +/* 0B8110 7F0835E0 44813000 */ mtc1 $at, $f6 +/* 0B8114 7F0835E4 C58A0074 */ lwc1 $f10, 0x74($t4) +/* 0B8118 7F0835E8 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0B811C 7F0835EC 460A0301 */ sub.s $f12, $f0, $f10 +/* 0B8120 7F0835F0 460C303C */ c.lt.s $f6, $f12 +/* 0B8124 7F0835F4 00000000 */ nop +/* 0B8128 7F0835F8 45020022 */ bc1fl .L7F083684 +/* 0B812C 7F0835FC 8E080000 */ lw $t0, ($s0) +/* 0B8130 7F083600 44814000 */ mtc1 $at, $f8 +/* 0B8134 7F083604 00000000 */ nop +/* 0B8138 7F083608 4608603C */ c.lt.s $f12, $f8 +/* 0B813C 7F08360C 00000000 */ nop +/* 0B8140 7F083610 4502001C */ bc1fl .L7F083684 +/* 0B8144 7F083614 8E080000 */ lw $t0, ($s0) +/* 0B8148 7F083618 0FC16A8C */ jal atan2f +/* 0B814C 7F08361C 46009386 */ mov.s $f14, $f18 +/* 0B8150 7F083620 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B8154 7F083624 44816000 */ mtc1 $at, $f12 +/* 0B8158 7F083628 3C018005 */ lui $at, %hi(D_80055140) +/* 0B815C 7F08362C C42A5140 */ lwc1 $f10, %lo(D_80055140)($at) +/* 0B8160 7F083630 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B8164 7F083634 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0B8168 7F083638 44814000 */ mtc1 $at, $f8 +/* 0B816C 7F08363C 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B8170 7F083640 44819000 */ mtc1 $at, $f18 +/* 0B8174 7F083644 3C018005 */ lui $at, %hi(D_80055144) +/* 0B8178 7F083648 460A2183 */ div.s $f6, $f4, $f10 +/* 0B817C 7F08364C 46083080 */ add.s $f2, $f6, $f8 +/* 0B8180 7F083650 4602903E */ c.le.s $f18, $f2 +/* 0B8184 7F083654 46001386 */ mov.s $f14, $f2 +/* 0B8188 7F083658 45020003 */ bc1fl .L7F083668 +/* 0B818C 7F08365C 460EA03C */ c.lt.s $f20, $f14 +/* 0B8190 7F083660 460C1381 */ sub.s $f14, $f2, $f12 +/* 0B8194 7F083664 460EA03C */ c.lt.s $f20, $f14 +.L7F083668: +/* 0B8198 7F083668 00000000 */ nop +/* 0B819C 7F08366C 45020005 */ bc1fl .L7F083684 +/* 0B81A0 7F083670 8E080000 */ lw $t0, ($s0) +/* 0B81A4 7F083674 C4245144 */ lwc1 $f4, %lo(D_80055144)($at) +/* 0B81A8 7F083678 46047382 */ mul.s $f14, $f14, $f4 +/* 0B81AC 7F08367C 00000000 */ nop +.L7F083680: +/* 0B81B0 7F083680 8E080000 */ lw $t0, ($s0) +.L7F083684: +/* 0B81B4 7F083684 8FA90120 */ lw $t1, 0x120($sp) +/* 0B81B8 7F083688 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B81BC 7F08368C 8D180110 */ lw $t8, 0x110($t0) +/* 0B81C0 7F083690 29210028 */ slti $at, $t1, 0x28 +/* 0B81C4 7F083694 13000007 */ beqz $t8, .L7F0836B4 +/* 0B81C8 7F083698 00000000 */ nop +/* 0B81CC 7F08369C 10200005 */ beqz $at, .L7F0836B4 +/* 0B81D0 7F0836A0 2921FFD9 */ slti $at, $t1, -0x27 +/* 0B81D4 7F0836A4 14200003 */ bnez $at, .L7F0836B4 +/* 0B81D8 7F0836A8 00000000 */ nop +/* 0B81DC 7F0836AC AD000110 */ sw $zero, 0x110($t0) +/* 0B81E0 7F0836B0 8E080000 */ lw $t0, ($s0) +.L7F0836B4: +/* 0B81E4 7F0836B4 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B81E8 7F0836B8 C7AA0184 */ lwc1 $f10, 0x184($sp) +/* 0B81EC 7F0836BC 55C0005F */ bnezl $t6, .L7F08383C +/* 0B81F0 7F0836C0 8D180104 */ lw $t8, 0x104($t0) +/* 0B81F4 7F0836C4 460AA03C */ c.lt.s $f20, $f10 +/* 0B81F8 7F0836C8 C7A60180 */ lwc1 $f6, 0x180($sp) +/* 0B81FC 7F0836CC 45030006 */ bc1tl .L7F0836E8 +/* 0B8200 7F0836D0 AD000104 */ sw $zero, 0x104($t0) +/* 0B8204 7F0836D4 4606A03C */ c.lt.s $f20, $f6 +/* 0B8208 7F0836D8 8FAB0140 */ lw $t3, 0x140($sp) +/* 0B820C 7F0836DC 45000009 */ bc1f .L7F083704 +/* 0B8210 7F0836E0 00000000 */ nop +/* 0B8214 7F0836E4 AD000104 */ sw $zero, 0x104($t0) +.L7F0836E8: +/* 0B8218 7F0836E8 8E190000 */ lw $t9, ($s0) +/* 0B821C 7F0836EC 240F0001 */ li $t7, 1 +/* 0B8220 7F0836F0 AF2F010C */ sw $t7, 0x10c($t9) +/* 0B8224 7F0836F4 8E0A0000 */ lw $t2, ($s0) +/* 0B8228 7F0836F8 AD400120 */ sw $zero, 0x120($t2) +/* 0B822C 7F0836FC 1000004E */ b .L7F083838 +/* 0B8230 7F083700 8E080000 */ lw $t0, ($s0) +.L7F083704: +/* 0B8234 7F083704 51600005 */ beql $t3, $zero, .L7F08371C +/* 0B8238 7F083708 8D0D0118 */ lw $t5, 0x118($t0) +/* 0B823C 7F08370C AD000120 */ sw $zero, 0x120($t0) +/* 0B8240 7F083710 10000047 */ b .L7F083830 +/* 0B8244 7F083714 8E080000 */ lw $t0, ($s0) +/* 0B8248 7F083718 8D0D0118 */ lw $t5, 0x118($t0) +.L7F08371C: +/* 0B824C 7F08371C 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 0B8250 7F083720 51A00025 */ beql $t5, $zero, .L7F0837B8 +/* 0B8254 7F083724 8D0A011C */ lw $t2, 0x11c($t0) +/* 0B8258 7F083728 11800008 */ beqz $t4, .L7F08374C +/* 0B825C 7F08372C 2921003D */ slti $at, $t1, 0x3d +/* 0B8260 7F083730 10200004 */ beqz $at, .L7F083744 +/* 0B8264 7F083734 24180001 */ li $t8, 1 +/* 0B8268 7F083738 2921FFC4 */ slti $at, $t1, -0x3c +/* 0B826C 7F08373C 50200004 */ beql $at, $zero, .L7F083750 +/* 0B8270 7F083740 8D0E0120 */ lw $t6, 0x120($t0) +.L7F083744: +/* 0B8274 7F083744 AD180120 */ sw $t8, 0x120($t0) +/* 0B8278 7F083748 8E080000 */ lw $t0, ($s0) +.L7F08374C: +/* 0B827C 7F08374C 8D0E0120 */ lw $t6, 0x120($t0) +.L7F083750: +/* 0B8280 7F083750 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B8284 7F083754 51C00037 */ beql $t6, $zero, .L7F083834 +/* 0B8288 7F083758 AD00010C */ sw $zero, 0x10c($t0) +/* 0B828C 7F08375C 44814000 */ mtc1 $at, $f8 +/* 0B8290 7F083760 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8294 7F083764 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B8298 7F083768 46087480 */ add.s $f18, $f14, $f8 +/* 0B829C 7F08376C 4600903C */ c.lt.s $f18, $f0 +/* 0B82A0 7F083770 00000000 */ nop +/* 0B82A4 7F083774 45030009 */ bc1tl .L7F08379C +/* 0B82A8 7F083778 8D0F0110 */ lw $t7, 0x110($t0) +/* 0B82AC 7F08377C 44812000 */ mtc1 $at, $f4 +/* 0B82B0 7F083780 00000000 */ nop +/* 0B82B4 7F083784 46047280 */ add.s $f10, $f14, $f4 +/* 0B82B8 7F083788 460A003C */ c.lt.s $f0, $f10 +/* 0B82BC 7F08378C 00000000 */ nop +/* 0B82C0 7F083790 45020028 */ bc1fl .L7F083834 +/* 0B82C4 7F083794 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82C8 7F083798 8D0F0110 */ lw $t7, 0x110($t0) +.L7F08379C: +/* 0B82CC 7F08379C 24190001 */ li $t9, 1 +/* 0B82D0 7F0837A0 55E00024 */ bnezl $t7, .L7F083834 +/* 0B82D4 7F0837A4 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82D8 7F0837A8 AD190104 */ sw $t9, 0x104($t0) +/* 0B82DC 7F0837AC 10000020 */ b .L7F083830 +/* 0B82E0 7F0837B0 8E080000 */ lw $t0, ($s0) +/* 0B82E4 7F0837B4 8D0A011C */ lw $t2, 0x11c($t0) +.L7F0837B8: +/* 0B82E8 7F0837B8 8FAB01AC */ lw $t3, 0x1ac($sp) +/* 0B82EC 7F0837BC 5140001D */ beql $t2, $zero, .L7F083834 +/* 0B82F0 7F0837C0 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82F4 7F0837C4 1160001A */ beqz $t3, .L7F083830 +/* 0B82F8 7F0837C8 2921003D */ slti $at, $t1, 0x3d +/* 0B82FC 7F0837CC 10200002 */ beqz $at, .L7F0837D8 +/* 0B8300 7F0837D0 2921FFC4 */ slti $at, $t1, -0x3c +/* 0B8304 7F0837D4 10200016 */ beqz $at, .L7F083830 +.L7F0837D8: +/* 0B8308 7F0837D8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B830C 7F0837DC 44813000 */ mtc1 $at, $f6 +/* 0B8310 7F0837E0 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8314 7F0837E4 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B8318 7F0837E8 46067200 */ add.s $f8, $f14, $f6 +/* 0B831C 7F0837EC 4600403C */ c.lt.s $f8, $f0 +/* 0B8320 7F0837F0 00000000 */ nop +/* 0B8324 7F0837F4 45030009 */ bc1tl .L7F08381C +/* 0B8328 7F0837F8 8D0D0110 */ lw $t5, 0x110($t0) +/* 0B832C 7F0837FC 44819000 */ mtc1 $at, $f18 +/* 0B8330 7F083800 00000000 */ nop +/* 0B8334 7F083804 46127100 */ add.s $f4, $f14, $f18 +/* 0B8338 7F083808 4604003C */ c.lt.s $f0, $f4 +/* 0B833C 7F08380C 00000000 */ nop +/* 0B8340 7F083810 45020008 */ bc1fl .L7F083834 +/* 0B8344 7F083814 AD00010C */ sw $zero, 0x10c($t0) +/* 0B8348 7F083818 8D0D0110 */ lw $t5, 0x110($t0) +.L7F08381C: +/* 0B834C 7F08381C 240C0001 */ li $t4, 1 +/* 0B8350 7F083820 55A00004 */ bnezl $t5, .L7F083834 +/* 0B8354 7F083824 AD00010C */ sw $zero, 0x10c($t0) +/* 0B8358 7F083828 AD0C0104 */ sw $t4, 0x104($t0) +/* 0B835C 7F08382C 8E080000 */ lw $t0, ($s0) +.L7F083830: +/* 0B8360 7F083830 AD00010C */ sw $zero, 0x10c($t0) +.L7F083834: +/* 0B8364 7F083834 8E080000 */ lw $t0, ($s0) +.L7F083838: +/* 0B8368 7F083838 8D180104 */ lw $t8, 0x104($t0) +.L7F08383C: +/* 0B836C 7F08383C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B8370 7F083840 8FAA01A0 */ lw $t2, 0x1a0($sp) +/* 0B8374 7F083844 1300004A */ beqz $t8, .L7F083970 +/* 0B8378 7F083848 00000000 */ nop +/* 0B837C 7F08384C 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B8380 7F083850 55C000BB */ bnezl $t6, .L7F083B40 +/* 0B8384 7F083854 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8388 7F083858 C5020160 */ lwc1 $f2, 0x160($t0) +/* 0B838C 7F08385C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B8390 7F083860 44813000 */ mtc1 $at, $f6 +/* 0B8394 7F083864 46021282 */ mul.s $f10, $f2, $f2 +/* 0B8398 7F083868 3C018005 */ lui $at, %hi(D_80055148) +/* 0B839C 7F08386C C4325148 */ lwc1 $f18, %lo(D_80055148)($at) +/* 0B83A0 7F083870 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B83A4 7F083874 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B83A8 7F083878 46065202 */ mul.s $f8, $f10, $f6 +/* 0B83AC 7F08387C 46124303 */ div.s $f12, $f8, $f18 +/* 0B83B0 7F083880 460C7100 */ add.s $f4, $f14, $f12 +/* 0B83B4 7F083884 4600203C */ c.lt.s $f4, $f0 +/* 0B83B8 7F083888 00000000 */ nop +/* 0B83BC 7F08388C 45020007 */ bc1fl .L7F0838AC +/* 0B83C0 7F083890 460C7281 */ sub.s $f10, $f14, $f12 +/* 0B83C4 7F083894 44816000 */ mtc1 $at, $f12 +/* 0B83C8 7F083898 0FC20004 */ jal sub_GAME_7F080010 +/* 0B83CC 7F08389C E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B83D0 7F0838A0 10000010 */ b .L7F0838E4 +/* 0B83D4 7F0838A4 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B83D8 7F0838A8 460C7281 */ sub.s $f10, $f14, $f12 +.L7F0838AC: +/* 0B83DC 7F0838AC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B83E0 7F0838B0 460A003C */ c.lt.s $f0, $f10 +/* 0B83E4 7F0838B4 00000000 */ nop +/* 0B83E8 7F0838B8 45020007 */ bc1fl .L7F0838D8 +/* 0B83EC 7F0838BC 4600A306 */ mov.s $f12, $f20 +/* 0B83F0 7F0838C0 44816000 */ mtc1 $at, $f12 +/* 0B83F4 7F0838C4 0FC20004 */ jal sub_GAME_7F080010 +/* 0B83F8 7F0838C8 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B83FC 7F0838CC 10000005 */ b .L7F0838E4 +/* 0B8400 7F0838D0 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8404 7F0838D4 4600A306 */ mov.s $f12, $f20 +.L7F0838D8: +/* 0B8408 7F0838D8 0FC20004 */ jal sub_GAME_7F080010 +/* 0B840C 7F0838DC E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B8410 7F0838E0 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +.L7F0838E4: +/* 0B8414 7F0838E4 8E080000 */ lw $t0, ($s0) +/* 0B8418 7F0838E8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B841C 7F0838EC C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B8420 7F0838F0 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0B8424 7F0838F4 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8428 7F0838F8 46083082 */ mul.s $f2, $f6, $f8 +/* 0B842C 7F0838FC 4600703C */ c.lt.s $f14, $f0 +/* 0B8430 7F083900 46021480 */ add.s $f18, $f2, $f2 +/* 0B8434 7F083904 45000007 */ bc1f .L7F083924 +/* 0B8438 7F083908 46120300 */ add.s $f12, $f0, $f18 +/* 0B843C 7F08390C 460C703C */ c.lt.s $f14, $f12 +/* 0B8440 7F083910 00000000 */ nop +/* 0B8444 7F083914 45020004 */ bc1fl .L7F083928 +/* 0B8448 7F083918 460E003C */ c.lt.s $f0, $f14 +/* 0B844C 7F08391C 10000087 */ b .L7F083B3C +/* 0B8450 7F083920 E50C0158 */ swc1 $f12, 0x158($t0) +.L7F083924: +/* 0B8454 7F083924 460E003C */ c.lt.s $f0, $f14 +.L7F083928: +/* 0B8458 7F083928 00000000 */ nop +/* 0B845C 7F08392C 45020008 */ bc1fl .L7F083950 +/* 0B8460 7F083930 E50E0158 */ swc1 $f14, 0x158($t0) +/* 0B8464 7F083934 460E603C */ c.lt.s $f12, $f14 +/* 0B8468 7F083938 00000000 */ nop +/* 0B846C 7F08393C 45020004 */ bc1fl .L7F083950 +/* 0B8470 7F083940 E50E0158 */ swc1 $f14, 0x158($t0) +/* 0B8474 7F083944 1000007D */ b .L7F083B3C +/* 0B8478 7F083948 E50C0158 */ swc1 $f12, 0x158($t0) +/* 0B847C 7F08394C E50E0158 */ swc1 $f14, 0x158($t0) +.L7F083950: +/* 0B8480 7F083950 8E0F0000 */ lw $t7, ($s0) +/* 0B8484 7F083954 E5F40160 */ swc1 $f20, 0x160($t7) +/* 0B8488 7F083958 8E080000 */ lw $t0, ($s0) +/* 0B848C 7F08395C 8D19010C */ lw $t9, 0x10c($t0) +/* 0B8490 7F083960 57200077 */ bnezl $t9, .L7F083B40 +/* 0B8494 7F083964 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8498 7F083968 10000074 */ b .L7F083B3C +/* 0B849C 7F08396C AD000104 */ sw $zero, 0x104($t0) +.L7F083970: +/* 0B84A0 7F083970 1140002E */ beqz $t2, .L7F083A2C +/* 0B84A4 7F083974 C7B20184 */ lwc1 $f18, 0x184($sp) +/* 0B84A8 7F083978 0C001177 */ jal video_related_23 +/* 0B84AC 7F08397C 00000000 */ nop +/* 0B84B0 7F083980 8FAB0128 */ lw $t3, 0x128($sp) +/* 0B84B4 7F083984 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B84B8 7F083988 44812000 */ mtc1 $at, $f4 +/* 0B84BC 7F08398C 448B5000 */ mtc1 $t3, $f10 +/* 0B84C0 7F083990 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B84C4 7F083994 44814000 */ mtc1 $at, $f8 +/* 0B84C8 7F083998 468051A0 */ cvt.s.w $f6, $f10 +/* 0B84CC 7F08399C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B84D0 7F0839A0 44819000 */ mtc1 $at, $f18 +/* 0B84D4 7F0839A4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B84D8 7F0839A8 46040383 */ div.s $f14, $f0, $f4 +/* 0B84DC 7F0839AC 46083303 */ div.s $f12, $f6, $f8 +/* 0B84E0 7F0839B0 460C903C */ c.lt.s $f18, $f12 +/* 0B84E4 7F0839B4 46006086 */ mov.s $f2, $f12 +/* 0B84E8 7F0839B8 45020006 */ bc1fl .L7F0839D4 +/* 0B84EC 7F0839BC 44812000 */ mtc1 $at, $f4 +/* 0B84F0 7F0839C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B84F4 7F0839C4 44811000 */ mtc1 $at, $f2 +/* 0B84F8 7F0839C8 1000000A */ b .L7F0839F4 +/* 0B84FC 7F0839CC 4602A03E */ c.le.s $f20, $f2 +/* 0B8500 7F0839D0 44812000 */ mtc1 $at, $f4 +.L7F0839D4: +/* 0B8504 7F0839D4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B8508 7F0839D8 4604603C */ c.lt.s $f12, $f4 +/* 0B850C 7F0839DC 00000000 */ nop +/* 0B8510 7F0839E0 45020004 */ bc1fl .L7F0839F4 +/* 0B8514 7F0839E4 4602A03E */ c.le.s $f20, $f2 +/* 0B8518 7F0839E8 44811000 */ mtc1 $at, $f2 +/* 0B851C 7F0839EC 00000000 */ nop +/* 0B8520 7F0839F0 4602A03E */ c.le.s $f20, $f2 +.L7F0839F4: +/* 0B8524 7F0839F4 00000000 */ nop +/* 0B8528 7F0839F8 45020005 */ bc1fl .L7F083A10 +/* 0B852C 7F0839FC 46001287 */ neg.s $f10, $f2 +/* 0B8530 7F083A00 46021082 */ mul.s $f2, $f2, $f2 +/* 0B8534 7F083A04 10000005 */ b .L7F083A1C +/* 0B8538 7F083A08 46001187 */ neg.s $f6, $f2 +/* 0B853C 7F083A0C 46001287 */ neg.s $f10, $f2 +.L7F083A10: +/* 0B8540 7F083A10 460A1082 */ mul.s $f2, $f2, $f10 +/* 0B8544 7F083A14 00000000 */ nop +/* 0B8548 7F083A18 46001187 */ neg.s $f6, $f2 +.L7F083A1C: +/* 0B854C 7F083A1C 8E0D0000 */ lw $t5, ($s0) +/* 0B8550 7F083A20 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B8554 7F083A24 10000027 */ b .L7F083AC4 +/* 0B8558 7F083A28 E5A80160 */ swc1 $f8, 0x160($t5) +.L7F083A2C: +/* 0B855C 7F083A2C 4612A03C */ c.lt.s $f20, $f18 +/* 0B8560 7F083A30 C7A40180 */ lwc1 $f4, 0x180($sp) +/* 0B8564 7F083A34 45020010 */ bc1fl .L7F083A78 +/* 0B8568 7F083A38 4604A03C */ c.lt.s $f20, $f4 +/* 0B856C 7F083A3C 0FC20004 */ jal sub_GAME_7F080010 +/* 0B8570 7F083A40 46009306 */ mov.s $f12, $f18 +/* 0B8574 7F083A44 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 0B8578 7F083A48 8FB80120 */ lw $t8, 0x120($sp) +/* 0B857C 7F083A4C 1180001D */ beqz $t4, .L7F083AC4 +/* 0B8580 7F083A50 2B01003D */ slti $at, $t8, 0x3d +/* 0B8584 7F083A54 10200003 */ beqz $at, .L7F083A64 +/* 0B8588 7F083A58 2B01003C */ slti $at, $t8, 0x3c +/* 0B858C 7F083A5C 5020001A */ beql $at, $zero, .L7F083AC8 +/* 0B8590 7F083A60 8E080000 */ lw $t0, ($s0) +.L7F083A64: +/* 0B8594 7F083A64 8E0F0000 */ lw $t7, ($s0) +/* 0B8598 7F083A68 240E0001 */ li $t6, 1 +/* 0B859C 7F083A6C 10000015 */ b .L7F083AC4 +/* 0B85A0 7F083A70 ADEE0110 */ sw $t6, 0x110($t7) +/* 0B85A4 7F083A74 4604A03C */ c.lt.s $f20, $f4 +.L7F083A78: +/* 0B85A8 7F083A78 00000000 */ nop +/* 0B85AC 7F083A7C 4500000F */ bc1f .L7F083ABC +/* 0B85B0 7F083A80 00000000 */ nop +/* 0B85B4 7F083A84 0FC20004 */ jal sub_GAME_7F080010 +/* 0B85B8 7F083A88 46002307 */ neg.s $f12, $f4 +/* 0B85BC 7F083A8C 8FB901AC */ lw $t9, 0x1ac($sp) +/* 0B85C0 7F083A90 8FAA0120 */ lw $t2, 0x120($sp) +/* 0B85C4 7F083A94 1320000B */ beqz $t9, .L7F083AC4 +/* 0B85C8 7F083A98 2941003D */ slti $at, $t2, 0x3d +/* 0B85CC 7F083A9C 10200003 */ beqz $at, .L7F083AAC +/* 0B85D0 7F083AA0 2941003C */ slti $at, $t2, 0x3c +/* 0B85D4 7F083AA4 50200008 */ beql $at, $zero, .L7F083AC8 +/* 0B85D8 7F083AA8 8E080000 */ lw $t0, ($s0) +.L7F083AAC: +/* 0B85DC 7F083AAC 8E0D0000 */ lw $t5, ($s0) +/* 0B85E0 7F083AB0 240B0001 */ li $t3, 1 +/* 0B85E4 7F083AB4 10000003 */ b .L7F083AC4 +/* 0B85E8 7F083AB8 ADAB0110 */ sw $t3, 0x110($t5) +.L7F083ABC: +/* 0B85EC 7F083ABC 0FC20004 */ jal sub_GAME_7F080010 +/* 0B85F0 7F083AC0 4600A306 */ mov.s $f12, $f20 +.L7F083AC4: +/* 0B85F4 7F083AC4 8E080000 */ lw $t0, ($s0) +.L7F083AC8: +/* 0B85F8 7F083AC8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B85FC 7F083ACC C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B8600 7F083AD0 C50A0160 */ lwc1 $f10, 0x160($t0) +/* 0B8604 7F083AD4 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B8608 7F083AD8 44819000 */ mtc1 $at, $f18 +/* 0B860C 7F083ADC 46065202 */ mul.s $f8, $f10, $f6 +/* 0B8610 7F083AE0 C50A0158 */ lwc1 $f10, 0x158($t0) +/* 0B8614 7F083AE4 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B8618 7F083AE8 24010001 */ li $at, 1 +/* 0B861C 7F083AEC 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B8620 7F083AF0 46124102 */ mul.s $f4, $f8, $f18 +/* 0B8624 7F083AF4 46045180 */ add.s $f6, $f10, $f4 +/* 0B8628 7F083AF8 E5060158 */ swc1 $f6, 0x158($t0) +/* 0B862C 7F083AFC 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B8630 7F083B00 5581000F */ bnel $t4, $at, .L7F083B40 +/* 0B8634 7F083B04 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8638 7F083B08 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B863C 7F083B0C 24010002 */ li $at, 2 +/* 0B8640 7F083B10 5701000B */ bnel $t8, $at, .L7F083B40 +/* 0B8644 7F083B14 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8648 7F083B18 8E080000 */ lw $t0, ($s0) +/* 0B864C 7F083B1C 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B8650 7F083B20 44810000 */ mtc1 $at, $f0 +/* 0B8654 7F083B24 C5080158 */ lwc1 $f8, 0x158($t0) +/* 0B8658 7F083B28 4600403C */ c.lt.s $f8, $f0 +/* 0B865C 7F083B2C 00000000 */ nop +/* 0B8660 7F083B30 45020003 */ bc1fl .L7F083B40 +/* 0B8664 7F083B34 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8668 7F083B38 E5000158 */ swc1 $f0, 0x158($t0) +.L7F083B3C: +/* 0B866C 7F083B3C 8FAE01A4 */ lw $t6, 0x1a4($sp) +.L7F083B40: +/* 0B8670 7F083B40 C7A6017C */ lwc1 $f6, 0x17c($sp) +/* 0B8674 7F083B44 51C0002A */ beql $t6, $zero, .L7F083BF0 +/* 0B8678 7F083B48 4606A03C */ c.lt.s $f20, $f6 +/* 0B867C 7F083B4C 0C001177 */ jal video_related_23 +/* 0B8680 7F083B50 00000000 */ nop +/* 0B8684 7F083B54 8FAF012C */ lw $t7, 0x12c($sp) +/* 0B8688 7F083B58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B868C 7F083B5C 44817000 */ mtc1 $at, $f14 +/* 0B8690 7F083B60 448F9000 */ mtc1 $t7, $f18 +/* 0B8694 7F083B64 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B8698 7F083B68 44812000 */ mtc1 $at, $f4 +/* 0B869C 7F083B6C 468092A0 */ cvt.s.w $f10, $f18 +/* 0B86A0 7F083B70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B86A4 7F083B74 46045303 */ div.s $f12, $f10, $f4 +/* 0B86A8 7F083B78 460C703C */ c.lt.s $f14, $f12 +/* 0B86AC 7F083B7C 46006086 */ mov.s $f2, $f12 +/* 0B86B0 7F083B80 45020004 */ bc1fl .L7F083B94 +/* 0B86B4 7F083B84 44813000 */ mtc1 $at, $f6 +/* 0B86B8 7F083B88 10000009 */ b .L7F083BB0 +/* 0B86BC 7F083B8C 46007086 */ mov.s $f2, $f14 +/* 0B86C0 7F083B90 44813000 */ mtc1 $at, $f6 +.L7F083B94: +/* 0B86C4 7F083B94 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B86C8 7F083B98 4606603C */ c.lt.s $f12, $f6 +/* 0B86CC 7F083B9C 00000000 */ nop +/* 0B86D0 7F083BA0 45020004 */ bc1fl .L7F083BB4 +/* 0B86D4 7F083BA4 4602A03E */ c.le.s $f20, $f2 +/* 0B86D8 7F083BA8 44811000 */ mtc1 $at, $f2 +/* 0B86DC 7F083BAC 00000000 */ nop +.L7F083BB0: +/* 0B86E0 7F083BB0 4602A03E */ c.le.s $f20, $f2 +.L7F083BB4: +/* 0B86E4 7F083BB4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B86E8 7F083BB8 44819000 */ mtc1 $at, $f18 +/* 0B86EC 7F083BBC 45000004 */ bc1f .L7F083BD0 +/* 0B86F0 7F083BC0 46120283 */ div.s $f10, $f0, $f18 +/* 0B86F4 7F083BC4 46021082 */ mul.s $f2, $f2, $f2 +/* 0B86F8 7F083BC8 10000004 */ b .L7F083BDC +/* 0B86FC 7F083BCC 00000000 */ nop +.L7F083BD0: +/* 0B8700 7F083BD0 46001207 */ neg.s $f8, $f2 +/* 0B8704 7F083BD4 46081082 */ mul.s $f2, $f2, $f8 +/* 0B8708 7F083BD8 00000000 */ nop +.L7F083BDC: +/* 0B870C 7F083BDC 460A1102 */ mul.s $f4, $f2, $f10 +/* 0B8710 7F083BE0 8E190000 */ lw $t9, ($s0) +/* 0B8714 7F083BE4 1000001A */ b .L7F083C50 +/* 0B8718 7F083BE8 E724014C */ swc1 $f4, 0x14c($t9) +/* 0B871C 7F083BEC 4606A03C */ c.lt.s $f20, $f6 +.L7F083BF0: +/* 0B8720 7F083BF0 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0B8724 7F083BF4 45020008 */ bc1fl .L7F083C18 +/* 0B8728 7F083BF8 4608A03C */ c.lt.s $f20, $f8 +/* 0B872C 7F083BFC 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8730 7F083C00 46003306 */ mov.s $f12, $f6 +/* 0B8734 7F083C04 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8738 7F083C08 44817000 */ mtc1 $at, $f14 +/* 0B873C 7F083C0C 10000010 */ b .L7F083C50 +/* 0B8740 7F083C10 00000000 */ nop +/* 0B8744 7F083C14 4608A03C */ c.lt.s $f20, $f8 +.L7F083C18: +/* 0B8748 7F083C18 00000000 */ nop +/* 0B874C 7F083C1C 45000007 */ bc1f .L7F083C3C +/* 0B8750 7F083C20 00000000 */ nop +/* 0B8754 7F083C24 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8758 7F083C28 46004307 */ neg.s $f12, $f8 +/* 0B875C 7F083C2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8760 7F083C30 44817000 */ mtc1 $at, $f14 +/* 0B8764 7F083C34 10000006 */ b .L7F083C50 +/* 0B8768 7F083C38 00000000 */ nop +.L7F083C3C: +/* 0B876C 7F083C3C 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8770 7F083C40 4600A306 */ mov.s $f12, $f20 +/* 0B8774 7F083C44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8778 7F083C48 44817000 */ mtc1 $at, $f14 +/* 0B877C 7F083C4C 00000000 */ nop +.L7F083C50: +/* 0B8780 7F083C50 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B8784 7F083C54 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B8788 7F083C58 24010001 */ li $at, 1 +/* 0B878C 7F083C5C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_800799B8) +/* 0B8790 7F083C60 5541004B */ bnel $t2, $at, .L7F083D90 +/* 0B8794 7F083C64 8FAE014C */ lw $t6, 0x14c($sp) +/* 0B8798 7F083C68 8D6B99B8 */ lw $t3, %lo(dword_CODE_bss_800799B8)($t3) +/* 0B879C 7F083C6C 24010002 */ li $at, 2 +/* 0B87A0 7F083C70 8FAD01A4 */ lw $t5, 0x1a4($sp) +/* 0B87A4 7F083C74 55610044 */ bnel $t3, $at, .L7F083D88 +/* 0B87A8 7F083C78 8E180000 */ lw $t8, ($s0) +/* 0B87AC 7F083C7C 11A00008 */ beqz $t5, .L7F083CA0 +/* 0B87B0 7F083C80 4600A086 */ mov.s $f2, $f20 +/* 0B87B4 7F083C84 8E0C0000 */ lw $t4, ($s0) +/* 0B87B8 7F083C88 3C018005 */ lui $at, %hi(D_8005514C) +/* 0B87BC 7F083C8C C42A514C */ lwc1 $f10, %lo(D_8005514C)($at) +/* 0B87C0 7F083C90 C592014C */ lwc1 $f18, 0x14c($t4) +/* 0B87C4 7F083C94 460A9082 */ mul.s $f2, $f18, $f10 +/* 0B87C8 7F083C98 10000019 */ b .L7F083D00 +/* 0B87CC 7F083C9C 00000000 */ nop +.L7F083CA0: +/* 0B87D0 7F083CA0 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 0B87D4 7F083CA4 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0B87D8 7F083CA8 4604A03C */ c.lt.s $f20, $f4 +/* 0B87DC 7F083CAC 00000000 */ nop +/* 0B87E0 7F083CB0 45020009 */ bc1fl .L7F083CD8 +/* 0B87E4 7F083CB4 4608A03C */ c.lt.s $f20, $f8 +/* 0B87E8 7F083CB8 0FC2008A */ jal sub_GAME_7F080228 +/* 0B87EC 7F083CBC 46007306 */ mov.s $f12, $f14 +/* 0B87F0 7F083CC0 3C018005 */ lui $at, %hi(D_80055150) +/* 0B87F4 7F083CC4 C4265150 */ lwc1 $f6, %lo(D_80055150)($at) +/* 0B87F8 7F083CC8 46060082 */ mul.s $f2, $f0, $f6 +/* 0B87FC 7F083CCC 1000000C */ b .L7F083D00 +/* 0B8800 7F083CD0 00000000 */ nop +/* 0B8804 7F083CD4 4608A03C */ c.lt.s $f20, $f8 +.L7F083CD8: +/* 0B8808 7F083CD8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B880C 7F083CDC 45000008 */ bc1f .L7F083D00 +/* 0B8810 7F083CE0 00000000 */ nop +/* 0B8814 7F083CE4 44816000 */ mtc1 $at, $f12 +/* 0B8818 7F083CE8 0FC2008A */ jal sub_GAME_7F080228 +/* 0B881C 7F083CEC 00000000 */ nop +/* 0B8820 7F083CF0 3C018005 */ lui $at, %hi(D_80055154) +/* 0B8824 7F083CF4 C4325154 */ lwc1 $f18, %lo(D_80055154)($at) +/* 0B8828 7F083CF8 46120082 */ mul.s $f2, $f0, $f18 +/* 0B882C 7F083CFC 00000000 */ nop +.L7F083D00: +/* 0B8830 7F083D00 3C038005 */ lui $v1, %hi(clock_timer) +/* 0B8834 7F083D04 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 0B8838 7F083D08 00001025 */ move $v0, $zero +/* 0B883C 7F083D0C 8E080000 */ lw $t0, ($s0) +/* 0B8840 7F083D10 18600014 */ blez $v1, .L7F083D64 +/* 0B8844 7F083D14 3C018005 */ lui $at, %hi(D_80055158) +/* 0B8848 7F083D18 3C048003 */ lui $a0, %hi(D_80036460) +/* 0B884C 7F083D1C 24846460 */ addiu $a0, %lo(D_80036460) # addiu $a0, $a0, 0x6460 +/* 0B8850 7F083D20 C4205158 */ lwc1 $f0, %lo(D_80055158)($at) +/* 0B8854 7F083D24 C4920000 */ lwc1 $f18, ($a0) +/* 0B8858 7F083D28 24420001 */ addiu $v0, $v0, 1 +/* 0B885C 7F083D2C 0043082A */ slt $at, $v0, $v1 +/* 0B8860 7F083D30 46120502 */ mul.s $f20, $f0, $f18 +/* 0B8864 7F083D34 5020000A */ beql $at, $zero, .L7F083D60 +/* 0B8868 7F083D38 4602A480 */ add.s $f18, $f20, $f2 +/* 0B886C 7F083D3C 4602A480 */ add.s $f18, $f20, $f2 +.L7F083D40: +/* 0B8870 7F083D40 24420001 */ addiu $v0, $v0, 1 +/* 0B8874 7F083D44 0043082A */ slt $at, $v0, $v1 +/* 0B8878 7F083D48 E4920000 */ swc1 $f18, ($a0) +/* 0B887C 7F083D4C C4920000 */ lwc1 $f18, ($a0) +/* 0B8880 7F083D50 46120502 */ mul.s $f20, $f0, $f18 +/* 0B8884 7F083D54 5420FFFA */ bnezl $at, .L7F083D40 +/* 0B8888 7F083D58 4602A480 */ add.s $f18, $f20, $f2 +/* 0B888C 7F083D5C 4602A480 */ add.s $f18, $f20, $f2 +.L7F083D60: +/* 0B8890 7F083D60 E4920000 */ swc1 $f18, ($a0) +.L7F083D64: +/* 0B8894 7F083D64 3C048003 */ lui $a0, %hi(D_80036460) +/* 0B8898 7F083D68 24846460 */ addiu $a0, %lo(D_80036460) # addiu $a0, $a0, 0x6460 +/* 0B889C 7F083D6C 3C018005 */ lui $at, %hi(D_8005515C) +/* 0B88A0 7F083D70 C432515C */ lwc1 $f18, %lo(D_8005515C)($at) +/* 0B88A4 7F083D74 C4880000 */ lwc1 $f8, ($a0) +/* 0B88A8 7F083D78 46124282 */ mul.s $f10, $f8, $f18 +/* 0B88AC 7F083D7C 10000003 */ b .L7F083D8C +/* 0B88B0 7F083D80 E50A014C */ swc1 $f10, 0x14c($t0) +/* 0B88B4 7F083D84 8E180000 */ lw $t8, ($s0) +.L7F083D88: +/* 0B88B8 7F083D88 E714014C */ swc1 $f20, 0x14c($t8) +.L7F083D8C: +/* 0B88BC 7F083D8C 8FAE014C */ lw $t6, 0x14c($sp) +.L7F083D90: +/* 0B88C0 7F083D90 51C00007 */ beql $t6, $zero, .L7F083DB0 +/* 0B88C4 7F083D94 240A0001 */ li $t2, 1 +/* 0B88C8 7F083D98 8E0F0000 */ lw $t7, ($s0) +/* 0B88CC 7F083D9C ADE00894 */ sw $zero, 0x894($t7) +/* 0B88D0 7F083DA0 8E190000 */ lw $t9, ($s0) +/* 0B88D4 7F083DA4 0FC14686 */ jal trigger_remote_mine_detonation +/* 0B88D8 7F083DA8 AF200898 */ sw $zero, 0x898($t9) +/* 0B88DC 7F083DAC 240A0001 */ li $t2, 1 +.L7F083DB0: +/* 0B88E0 7F083DB0 0FC26919 */ jal get_num_players +/* 0B88E4 7F083DB4 AFAA0074 */ sw $t2, 0x74($sp) +/* 0B88E8 7F083DB8 28410002 */ slti $at, $v0, 2 +/* 0B88EC 7F083DBC 5420000C */ bnezl $at, .L7F083DF0 +/* 0B88F0 7F083DC0 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B88F4 7F083DC4 0FC051D6 */ jal get_scenario +/* 0B88F8 7F083DC8 00000000 */ nop +/* 0B88FC 7F083DCC 24010002 */ li $at, 2 +/* 0B8900 7F083DD0 54410007 */ bnel $v0, $at, .L7F083DF0 +/* 0B8904 7F083DD4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B8908 7F083DD8 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0B890C 7F083DDC 00000000 */ nop +/* 0B8910 7F083DE0 50400003 */ beql $v0, $zero, .L7F083DF0 +/* 0B8914 7F083DE4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B8918 7F083DE8 AFA00074 */ sw $zero, 0x74($sp) +/* 0B891C 7F083DEC 8FAB0074 */ lw $t3, 0x74($sp) +.L7F083DF0: +/* 0B8920 7F083DF0 5160000C */ beql $t3, $zero, .L7F083E24 +/* 0B8924 7F083DF4 8FB801BC */ lw $t8, 0x1bc($sp) +/* 0B8928 7F083DF8 8FAD0174 */ lw $t5, 0x174($sp) +/* 0B892C 7F083DFC 51A00004 */ beql $t5, $zero, .L7F083E10 +/* 0B8930 7F083E00 8FAC0170 */ lw $t4, 0x170($sp) +/* 0B8934 7F083E04 0FC175DA */ jal backstep_through_inventory +/* 0B8938 7F083E08 00000000 */ nop +/* 0B893C 7F083E0C 8FAC0170 */ lw $t4, 0x170($sp) +.L7F083E10: +/* 0B8940 7F083E10 51800004 */ beql $t4, $zero, .L7F083E24 +/* 0B8944 7F083E14 8FB801BC */ lw $t8, 0x1bc($sp) +/* 0B8948 7F083E18 0FC175B4 */ jal advance_through_inventory +/* 0B894C 7F083E1C 00000000 */ nop +/* 0B8950 7F083E20 8FB801BC */ lw $t8, 0x1bc($sp) +.L7F083E24: +/* 0B8954 7F083E24 53000005 */ beql $t8, $zero, .L7F083E3C +/* 0B8958 7F083E28 8FAF01B8 */ lw $t7, 0x1b8($sp) +/* 0B895C 7F083E2C 8E0E0000 */ lw $t6, ($s0) +/* 0B8960 7F083E30 10000007 */ b .L7F083E50 +/* 0B8964 7F083E34 ADC00430 */ sw $zero, 0x430($t6) +/* 0B8968 7F083E38 8FAF01B8 */ lw $t7, 0x1b8($sp) +.L7F083E3C: +/* 0B896C 7F083E3C 51E00005 */ beql $t7, $zero, .L7F083E54 +/* 0B8970 7F083E40 8E0B0000 */ lw $t3, ($s0) +/* 0B8974 7F083E44 8E0A0000 */ lw $t2, ($s0) +/* 0B8978 7F083E48 24190002 */ li $t9, 2 +/* 0B897C 7F083E4C AD590430 */ sw $t9, 0x430($t2) +.L7F083E50: +/* 0B8980 7F083E50 8E0B0000 */ lw $t3, ($s0) +.L7F083E54: +/* 0B8984 7F083E54 8D620430 */ lw $v0, 0x430($t3) +/* 0B8988 7F083E58 54400042 */ bnezl $v0, .L7F083F64 +/* 0B898C 7F083E5C 24010002 */ li $at, 2 +/* 0B8990 7F083E60 0FC19EA9 */ jal sub_GAME_7F067AA4 +/* 0B8994 7F083E64 00002025 */ move $a0, $zero +/* 0B8998 7F083E68 8FAD0148 */ lw $t5, 0x148($sp) +/* 0B899C 7F083E6C 51A00015 */ beql $t5, $zero, .L7F083EC4 +/* 0B89A0 7F083E70 8E0F0000 */ lw $t7, ($s0) +/* 0B89A4 7F083E74 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 0B89A8 7F083E78 00000000 */ nop +/* 0B89AC 7F083E7C 50400011 */ beql $v0, $zero, .L7F083EC4 +/* 0B89B0 7F083E80 8E0F0000 */ lw $t7, ($s0) +/* 0B89B4 7F083E84 8E0C0000 */ lw $t4, ($s0) +/* 0B89B8 7F083E88 8D980140 */ lw $t8, 0x140($t4) +/* 0B89BC 7F083E8C 5300000D */ beql $t8, $zero, .L7F083EC4 +/* 0B89C0 7F083E90 8E0F0000 */ lw $t7, ($s0) +/* 0B89C4 7F083E94 0FC17674 */ jal get_item_in_hand +/* 0B89C8 7F083E98 00002025 */ move $a0, $zero +/* 0B89CC 7F083E9C 00402025 */ move $a0, $v0 +/* 0B89D0 7F083EA0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B89D4 7F083EA4 24050008 */ li $a1, 8 +/* 0B89D8 7F083EA8 50400006 */ beql $v0, $zero, .L7F083EC4 +/* 0B89DC 7F083EAC 8E0F0000 */ lw $t7, ($s0) +/* 0B89E0 7F083EB0 8E0E0000 */ lw $t6, ($s0) +/* 0B89E4 7F083EB4 C5C4013C */ lwc1 $f4, 0x13c($t6) +/* 0B89E8 7F083EB8 10000007 */ b .L7F083ED8 +/* 0B89EC 7F083EBC E7A40070 */ swc1 $f4, 0x70($sp) +/* 0B89F0 7F083EC0 8E0F0000 */ lw $t7, ($s0) +.L7F083EC4: +/* 0B89F4 7F083EC4 3C018005 */ lui $at, %hi(D_80055160) +/* 0B89F8 7F083EC8 C4285160 */ lwc1 $f8, %lo(D_80055160)($at) +/* 0B89FC 7F083ECC C5E6014C */ lwc1 $f6, 0x14c($t7) +/* 0B8A00 7F083ED0 46083482 */ mul.s $f18, $f6, $f8 +/* 0B8A04 7F083ED4 E7B20070 */ swc1 $f18, 0x70($sp) +.L7F083ED8: +/* 0B8A08 7F083ED8 8FB90148 */ lw $t9, 0x148($sp) +/* 0B8A0C 7F083EDC 53200014 */ beql $t9, $zero, .L7F083F30 +/* 0B8A10 7F083EE0 8E0C0000 */ lw $t4, ($s0) +/* 0B8A14 7F083EE4 0FC1F170 */ jal redirect_get_BONDdata_autoaim_y +/* 0B8A18 7F083EE8 00000000 */ nop +/* 0B8A1C 7F083EEC 50400010 */ beql $v0, $zero, .L7F083F30 +/* 0B8A20 7F083EF0 8E0C0000 */ lw $t4, ($s0) +/* 0B8A24 7F083EF4 8E0A0000 */ lw $t2, ($s0) +/* 0B8A28 7F083EF8 8D4B0130 */ lw $t3, 0x130($t2) +/* 0B8A2C 7F083EFC 5160000C */ beql $t3, $zero, .L7F083F30 +/* 0B8A30 7F083F00 8E0C0000 */ lw $t4, ($s0) +/* 0B8A34 7F083F04 0FC17674 */ jal get_item_in_hand +/* 0B8A38 7F083F08 00002025 */ move $a0, $zero +/* 0B8A3C 7F083F0C 00402025 */ move $a0, $v0 +/* 0B8A40 7F083F10 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B8A44 7F083F14 24050008 */ li $a1, 8 +/* 0B8A48 7F083F18 50400005 */ beql $v0, $zero, .L7F083F30 +/* 0B8A4C 7F083F1C 8E0C0000 */ lw $t4, ($s0) +/* 0B8A50 7F083F20 8E0D0000 */ lw $t5, ($s0) +/* 0B8A54 7F083F24 10000008 */ b .L7F083F48 +/* 0B8A58 7F083F28 C5AE012C */ lwc1 $f14, 0x12c($t5) +/* 0B8A5C 7F083F2C 8E0C0000 */ lw $t4, ($s0) +.L7F083F30: +/* 0B8A60 7F083F30 3C018005 */ lui $at, %hi(D_80055164) +/* 0B8A64 7F083F34 C4265164 */ lwc1 $f6, %lo(D_80055164)($at) +/* 0B8A68 7F083F38 C58A0160 */ lwc1 $f10, 0x160($t4) +/* 0B8A6C 7F083F3C 46005107 */ neg.s $f4, $f10 +/* 0B8A70 7F083F40 46062382 */ mul.s $f14, $f4, $f6 +/* 0B8A74 7F083F44 00000000 */ nop +.L7F083F48: +/* 0B8A78 7F083F48 3C063F5C */ lui $a2, (0x3F5C28F6 >> 16) # lui $a2, 0x3f5c +/* 0B8A7C 7F083F4C 34C628F6 */ ori $a2, (0x3F5C28F6 & 0xFFFF) # ori $a2, $a2, 0x28f6 +/* 0B8A80 7F083F50 0FC19FD6 */ jal sub_GAME_7F067F58 +/* 0B8A84 7F083F54 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 0B8A88 7F083F58 10000017 */ b .L7F083FB8 +/* 0B8A8C 7F083F5C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B8A90 7F083F60 24010002 */ li $at, 2 +.L7F083F64: +/* 0B8A94 7F083F64 54410014 */ bnel $v0, $at, .L7F083FB8 +/* 0B8A98 7F083F68 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B8A9C 7F083F6C 0FC19EA9 */ jal sub_GAME_7F067AA4 +/* 0B8AA0 7F083F70 00002025 */ move $a0, $zero +/* 0B8AA4 7F083F74 8FB80134 */ lw $t8, 0x134($sp) +/* 0B8AA8 7F083F78 8FAE0130 */ lw $t6, 0x130($sp) +/* 0B8AAC 7F083F7C 3C018005 */ lui $at, %hi(D_80055168) +/* 0B8AB0 7F083F80 44984000 */ mtc1 $t8, $f8 +/* 0B8AB4 7F083F84 448E2000 */ mtc1 $t6, $f4 +/* 0B8AB8 7F083F88 C4205168 */ lwc1 $f0, %lo(D_80055168)($at) +/* 0B8ABC 7F083F8C 468044A0 */ cvt.s.w $f18, $f8 +/* 0B8AC0 7F083F90 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B8AC4 7F083F94 44811000 */ mtc1 $at, $f2 +/* 0B8AC8 7F083F98 468021A0 */ cvt.s.w $f6, $f4 +/* 0B8ACC 7F083F9C 46009282 */ mul.s $f10, $f18, $f0 +/* 0B8AD0 7F083FA0 00000000 */ nop +/* 0B8AD4 7F083FA4 46003202 */ mul.s $f8, $f6, $f0 +/* 0B8AD8 7F083FA8 46025303 */ div.s $f12, $f10, $f2 +/* 0B8ADC 7F083FAC 0FC19FEF */ jal sub_GAME_7F067FBC +/* 0B8AE0 7F083FB0 46024383 */ div.s $f14, $f8, $f2 +/* 0B8AE4 7F083FB4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F083FB8: +/* 0B8AE8 7F083FB8 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0B8AEC 7F083FBC 8FB00038 */ lw $s0, 0x38($sp) +/* 0B8AF0 7F083FC0 03E00008 */ jr $ra +/* 0B8AF4 7F083FC4 27BD01C0 */ addiu $sp, $sp, 0x1c0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F083FC8(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F083FC8 +/* 0B8AF8 7F083FC8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8AFC 7F083FCC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8B00 7F083FD0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B8B04 7F083FD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B8B08 7F083FD8 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8B0C 7F083FDC 04620089 */ bltzl $v1, .L7F084204 +/* 0B8B10 7F083FE0 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8B14 7F083FE4 14600021 */ bnez $v1, .L7F08406C +/* 0B8B18 7F083FE8 24040008 */ li $a0, 8 +/* 0B8B1C 7F083FEC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8B20 7F083FF0 00002825 */ move $a1, $zero +/* 0B8B24 7F083FF4 24040010 */ li $a0, 16 +/* 0B8B28 7F083FF8 0FC1A96A */ jal set_unset_bitflags +/* 0B8B2C 7F083FFC 00002825 */ move $a1, $zero +/* 0B8B30 7F084000 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B8B34 7F084004 24040004 */ li $a0, 4 +/* 0B8B38 7F084008 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B8B3C 7F08400C 24040004 */ li $a0, 4 +/* 0B8B40 7F084010 24040008 */ li $a0, 8 +/* 0B8B44 7F084014 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8B48 7F084018 00002825 */ move $a1, $zero +/* 0B8B4C 7F08401C 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8B50 7F084020 00000000 */ nop +/* 0B8B54 7F084024 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8B58 7F084028 44812000 */ mtc1 $at, $f4 +/* 0B8B5C 7F08402C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B8B60 7F084030 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B8B64 7F084034 46040182 */ mul.s $f6, $f0, $f4 +/* 0B8B68 7F084038 8C780000 */ lw $t8, ($v1) +/* 0B8B6C 7F08403C 24090007 */ li $t1, 7 +/* 0B8B70 7F084040 4600320D */ trunc.w.s $f8, $f6 +/* 0B8B74 7F084044 440F4000 */ mfc1 $t7, $f8 +/* 0B8B78 7F084048 00000000 */ nop +/* 0B8B7C 7F08404C AF0F29D4 */ sw $t7, 0x29d4($t8) +/* 0B8B80 7F084050 8C620000 */ lw $v0, ($v1) +/* 0B8B84 7F084054 8C5929D4 */ lw $t9, 0x29d4($v0) +/* 0B8B88 7F084058 2B210008 */ slti $at, $t9, 8 +/* 0B8B8C 7F08405C 54200004 */ bnezl $at, .L7F084070 +/* 0B8B90 7F084060 8C4A29D4 */ lw $t2, 0x29d4($v0) +/* 0B8B94 7F084064 AC4929D4 */ sw $t1, 0x29d4($v0) +/* 0B8B98 7F084068 8C620000 */ lw $v0, ($v1) +.L7F08406C: +/* 0B8B9C 7F08406C 8C4A29D4 */ lw $t2, 0x29d4($v0) +.L7F084070: +/* 0B8BA0 7F084070 3C0C8003 */ lui $t4, %hi(D_80036634) +/* 0B8BA4 7F084074 258C6634 */ addiu $t4, %lo(D_80036634) # addiu $t4, $t4, 0x6634 +/* 0B8BA8 7F084078 000A5880 */ sll $t3, $t2, 2 +/* 0B8BAC 7F08407C 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB0 7F084080 000B5880 */ sll $t3, $t3, 2 +/* 0B8BB4 7F084084 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB8 7F084088 000B5880 */ sll $t3, $t3, 2 +/* 0B8BBC 7F08408C 016C4021 */ addu $t0, $t3, $t4 +/* 0B8BC0 7F084090 8D0D0008 */ lw $t5, 8($t0) +/* 0B8BC4 7F084094 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8BC8 7F084098 01A3082A */ slt $at, $t5, $v1 +/* 0B8BCC 7F08409C 50200008 */ beql $at, $zero, .L7F0840C0 +/* 0B8BD0 7F0840A0 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8BD4 7F0840A4 8D0E0018 */ lw $t6, 0x18($t0) +/* 0B8BD8 7F0840A8 240400FF */ li $a0, 255 +/* 0B8BDC 7F0840AC 240500FF */ li $a1, 255 +/* 0B8BE0 7F0840B0 01C3082A */ slt $at, $t6, $v1 +/* 0B8BE4 7F0840B4 1420003A */ bnez $at, .L7F0841A0 +/* 0B8BE8 7F0840B8 240EFFFF */ li $t6, -1 +/* 0B8BEC 7F0840BC 8C4F00D8 */ lw $t7, 0xd8($v0) +.L7F0840C0: +/* 0B8BF0 7F0840C0 55E00029 */ bnezl $t7, .L7F084168 +/* 0B8BF4 7F0840C4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8BF8 7F0840C8 8D040010 */ lw $a0, 0x10($t0) +/* 0B8BFC 7F0840CC 0064082A */ slt $at, $v1, $a0 +/* 0B8C00 7F0840D0 54200025 */ bnezl $at, .L7F084168 +/* 0B8C04 7F0840D4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C08 7F0840D8 8D060018 */ lw $a2, 0x18($t0) +/* 0B8C0C 7F0840DC 00C3082A */ slt $at, $a2, $v1 +/* 0B8C10 7F0840E0 54200021 */ bnezl $at, .L7F084168 +/* 0B8C14 7F0840E4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C18 7F0840E8 8D050014 */ lw $a1, 0x14($t0) +/* 0B8C1C 7F0840EC 00641023 */ subu $v0, $v1, $a0 +/* 0B8C20 7F0840F0 00C43823 */ subu $a3, $a2, $a0 +/* 0B8C24 7F0840F4 0045082A */ slt $at, $v0, $a1 +/* 0B8C28 7F0840F8 10200009 */ beqz $at, .L7F084120 +/* 0B8C2C 7F0840FC 00E2C023 */ subu $t8, $a3, $v0 +/* 0B8C30 7F084100 44828000 */ mtc1 $v0, $f16 +/* 0B8C34 7F084104 C50A001C */ lwc1 $f10, 0x1c($t0) +/* 0B8C38 7F084108 44853000 */ mtc1 $a1, $f6 +/* 0B8C3C 7F08410C 468084A0 */ cvt.s.w $f18, $f16 +/* 0B8C40 7F084110 46803220 */ cvt.s.w $f8, $f6 +/* 0B8C44 7F084114 46125102 */ mul.s $f4, $f10, $f18 +/* 0B8C48 7F084118 1000000A */ b .L7F084144 +/* 0B8C4C 7F08411C 46082003 */ div.s $f0, $f4, $f8 +.L7F084120: +/* 0B8C50 7F084120 44985000 */ mtc1 $t8, $f10 +/* 0B8C54 7F084124 C510001C */ lwc1 $f16, 0x1c($t0) +/* 0B8C58 7F084128 00E5C823 */ subu $t9, $a3, $a1 +/* 0B8C5C 7F08412C 468054A0 */ cvt.s.w $f18, $f10 +/* 0B8C60 7F084130 44992000 */ mtc1 $t9, $f4 +/* 0B8C64 7F084134 00000000 */ nop +/* 0B8C68 7F084138 46802220 */ cvt.s.w $f8, $f4 +/* 0B8C6C 7F08413C 46128182 */ mul.s $f6, $f16, $f18 +/* 0B8C70 7F084140 46083003 */ div.s $f0, $f6, $f8 +.L7F084144: +/* 0B8C74 7F084144 44070000 */ mfc1 $a3, $f0 +/* 0B8C78 7F084148 8D040020 */ lw $a0, 0x20($t0) +/* 0B8C7C 7F08414C 8D050024 */ lw $a1, 0x24($t0) +/* 0B8C80 7F084150 0FC201EC */ jal set_rgba_tint +/* 0B8C84 7F084154 8D060028 */ lw $a2, 0x28($t0) +/* 0B8C88 7F084158 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8C8C 7F08415C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8C90 7F084160 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8C94 7F084164 8C4901C8 */ lw $t1, 0x1c8($v0) +.L7F084168: +/* 0B8C98 7F084168 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 0B8C9C 7F08416C 3C0C8005 */ lui $t4, %hi(D_80048498) +/* 0B8CA0 7F084170 15200005 */ bnez $t1, .L7F084188 +/* 0B8CA4 7F084174 00000000 */ nop +/* 0B8CA8 7F084178 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 0B8CAC 7F08417C 006A5821 */ addu $t3, $v1, $t2 +/* 0B8CB0 7F084180 10000004 */ b .L7F084194 +/* 0B8CB4 7F084184 AC4B00F4 */ sw $t3, 0xf4($v0) +.L7F084188: +/* 0B8CB8 7F084188 8D8C8498 */ lw $t4, %lo(D_80048498)($t4) +/* 0B8CBC 7F08418C 006C6821 */ addu $t5, $v1, $t4 +/* 0B8CC0 7F084190 AC4D00F4 */ sw $t5, 0xf4($v0) +.L7F084194: +/* 0B8CC4 7F084194 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CC8 7F084198 10000019 */ b .L7F084200 +/* 0B8CCC 7F08419C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F0841A0: +/* 0B8CD0 7F0841A0 AC4E00F4 */ sw $t6, 0xf4($v0) +/* 0B8CD4 7F0841A4 240600FF */ li $a2, 255 +/* 0B8CD8 7F0841A8 0FC201EC */ jal set_rgba_tint +/* 0B8CDC 7F0841AC 24070000 */ li $a3, 0 +/* 0B8CE0 7F0841B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CE4 7F0841B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8CE8 7F0841B8 24040008 */ li $a0, 8 +/* 0B8CEC 7F0841BC 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8CF0 7F0841C0 55E00010 */ bnezl $t7, .L7F084204 +/* 0B8CF4 7F0841C4 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8CF8 7F0841C8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8CFC 7F0841CC 24050001 */ li $a1, 1 +/* 0B8D00 7F0841D0 24040010 */ li $a0, 16 +/* 0B8D04 7F0841D4 0FC1A96A */ jal set_unset_bitflags +/* 0B8D08 7F0841D8 24050001 */ li $a1, 1 +/* 0B8D0C 7F0841DC 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B8D10 7F0841E0 24040004 */ li $a0, 4 +/* 0B8D14 7F0841E4 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B8D18 7F0841E8 24040004 */ li $a0, 4 +/* 0B8D1C 7F0841EC 24040008 */ li $a0, 8 +/* 0B8D20 7F0841F0 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8D24 7F0841F4 24050001 */ li $a1, 1 +/* 0B8D28 7F0841F8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D2C 7F0841FC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F084200: +/* 0B8D30 7F084200 8C4300F8 */ lw $v1, 0xf8($v0) +.L7F084204: +/* 0B8D34 7F084204 04620053 */ bltzl $v1, .L7F084354 +/* 0B8D38 7F084208 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B8D3C 7F08420C 54600017 */ bnezl $v1, .L7F08426C +/* 0B8D40 7F084210 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D44 7F084214 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8D48 7F084218 00000000 */ nop +/* 0B8D4C 7F08421C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8D50 7F084220 44815000 */ mtc1 $at, $f10 +/* 0B8D54 7F084224 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B8D58 7F084228 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B8D5C 7F08422C 460A0402 */ mul.s $f16, $f0, $f10 +/* 0B8D60 7F084230 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D64 7F084234 240B0007 */ li $t3, 7 +/* 0B8D68 7F084238 4600848D */ trunc.w.s $f18, $f16 +/* 0B8D6C 7F08423C 44199000 */ mfc1 $t9, $f18 +/* 0B8D70 7F084240 00000000 */ nop +/* 0B8D74 7F084244 AD3929B8 */ sw $t9, 0x29b8($t1) +/* 0B8D78 7F084248 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D7C 7F08424C 8C4A29B8 */ lw $t2, 0x29b8($v0) +/* 0B8D80 7F084250 29410008 */ slti $at, $t2, 8 +/* 0B8D84 7F084254 54200005 */ bnezl $at, .L7F08426C +/* 0B8D88 7F084258 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D8C 7F08425C AC4B29B8 */ sw $t3, 0x29b8($v0) +/* 0B8D90 7F084260 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D94 7F084264 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D98 7F084268 8C4C00D8 */ lw $t4, 0xd8($v0) +.L7F08426C: +/* 0B8D9C 7F08426C 3C0F8003 */ lui $t7, %hi(D_80036794) +/* 0B8DA0 7F084270 2418FFFF */ li $t8, -1 +/* 0B8DA4 7F084274 55800036 */ bnezl $t4, .L7F084350 +/* 0B8DA8 7F084278 AC5800F8 */ sw $t8, 0xf8($v0) +/* 0B8DAC 7F08427C 8C4D29B8 */ lw $t5, 0x29b8($v0) +/* 0B8DB0 7F084280 25EF6794 */ addiu $t7, %lo(D_80036794) # addiu $t7, $t7, 0x6794 +/* 0B8DB4 7F084284 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8DB8 7F084288 000D7080 */ sll $t6, $t5, 2 +/* 0B8DBC 7F08428C 01CD7023 */ subu $t6, $t6, $t5 +/* 0B8DC0 7F084290 000E7080 */ sll $t6, $t6, 2 +/* 0B8DC4 7F084294 01CF2021 */ addu $a0, $t6, $t7 +/* 0B8DC8 7F084298 8C850000 */ lw $a1, ($a0) +/* 0B8DCC 7F08429C 0065082A */ slt $at, $v1, $a1 +/* 0B8DD0 7F0842A0 54200014 */ bnezl $at, .L7F0842F4 +/* 0B8DD4 7F0842A4 0065082A */ slt $at, $v1, $a1 +/* 0B8DD8 7F0842A8 8C980004 */ lw $t8, 4($a0) +/* 0B8DDC 7F0842AC 0303082A */ slt $at, $t8, $v1 +/* 0B8DE0 7F0842B0 54200010 */ bnezl $at, .L7F0842F4 +/* 0B8DE4 7F0842B4 0065082A */ slt $at, $v1, $a1 +/* 0B8DE8 7F0842B8 C44400E4 */ lwc1 $f4, 0xe4($v0) +/* 0B8DEC 7F0842BC 3C098005 */ lui $t1, %hi(clock_timer) +/* 0B8DF0 7F0842C0 E44400EC */ swc1 $f4, 0xec($v0) +/* 0B8DF4 7F0842C4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8DF8 7F0842C8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8DFC 7F0842CC C44600E8 */ lwc1 $f6, 0xe8($v0) +/* 0B8E00 7F0842D0 E44600F0 */ swc1 $f6, 0xf0($v0) +/* 0B8E04 7F0842D4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E08 7F0842D8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E0C 7F0842DC 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0B8E10 7F0842E0 8C5900F8 */ lw $t9, 0xf8($v0) +/* 0B8E14 7F0842E4 03295021 */ addu $t2, $t9, $t1 +/* 0B8E18 7F0842E8 10000019 */ b .L7F084350 +/* 0B8E1C 7F0842EC AC4A00F8 */ sw $t2, 0xf8($v0) +/* 0B8E20 7F0842F0 0065082A */ slt $at, $v1, $a1 +.L7F0842F4: +/* 0B8E24 7F0842F4 14200013 */ bnez $at, .L7F084344 +/* 0B8E28 7F0842F8 240FFFFF */ li $t7, -1 +/* 0B8E2C 7F0842FC 8C8B0008 */ lw $t3, 8($a0) +/* 0B8E30 7F084300 0163082A */ slt $at, $t3, $v1 +/* 0B8E34 7F084304 1420000F */ bnez $at, .L7F084344 +/* 0B8E38 7F084308 00000000 */ nop +/* 0B8E3C 7F08430C C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0B8E40 7F084310 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0B8E44 7F084314 E44800EC */ swc1 $f8, 0xec($v0) +/* 0B8E48 7F084318 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E4C 7F08431C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E50 7F084320 C44A00E0 */ lwc1 $f10, 0xe0($v0) +/* 0B8E54 7F084324 E44A00F0 */ swc1 $f10, 0xf0($v0) +/* 0B8E58 7F084328 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E5C 7F08432C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E60 7F084330 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0B8E64 7F084334 8C4C00F8 */ lw $t4, 0xf8($v0) +/* 0B8E68 7F084338 018D7021 */ addu $t6, $t4, $t5 +/* 0B8E6C 7F08433C 10000004 */ b .L7F084350 +/* 0B8E70 7F084340 AC4E00F8 */ sw $t6, 0xf8($v0) +.L7F084344: +/* 0B8E74 7F084344 10000002 */ b .L7F084350 +/* 0B8E78 7F084348 AC4F00F8 */ sw $t7, 0xf8($v0) +/* 0B8E7C 7F08434C AC5800F8 */ sw $t8, 0xf8($v0) +.L7F084350: +/* 0B8E80 7F084350 8FBF0014 */ lw $ra, 0x14($sp) +.L7F084354: +/* 0B8E84 7F084354 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B8E88 7F084358 03E00008 */ jr $ra +/* 0B8E8C 7F08435C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F083FC8 +/* 0B9148 7F0845D8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B914C 7F0845DC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9150 7F0845E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B9154 7F0845E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B9158 7F0845E8 44802000 */ mtc1 $zero, $f4 +/* 0B915C 7F0845EC C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B9160 7F0845F0 4600203E */ c.le.s $f4, $f0 +/* 0B9164 7F0845F4 00000000 */ nop +/* 0B9168 7F0845F8 45020090 */ bc1fl .Ljp7F08483C +/* 0B916C 7F0845FC C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B9170 7F084600 44803000 */ mtc1 $zero, $f6 +/* 0B9174 7F084604 24040008 */ li $a0, 8 +/* 0B9178 7F084608 46003032 */ c.eq.s $f6, $f0 +/* 0B917C 7F08460C 00000000 */ nop +/* 0B9180 7F084610 45020027 */ bc1fl .Ljp7F0846B0 +/* 0B9184 7F084614 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B9188 7F084618 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B918C 7F08461C 00002825 */ move $a1, $zero +/* 0B9190 7F084620 24040010 */ li $a0, 16 +/* 0B9194 7F084624 0FC1AAE5 */ jal set_unset_bitflags +/* 0B9198 7F084628 00002825 */ move $a1, $zero +/* 0B919C 7F08462C 0FC22AAD */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B91A0 7F084630 24040004 */ li $a0, 4 +/* 0B91A4 7F084634 0FC22C48 */ jal sub_GAME_7F08A944 +/* 0B91A8 7F084638 24040004 */ li $a0, 4 +/* 0B91AC 7F08463C 24040008 */ li $a0, 8 +/* 0B91B0 7F084640 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B91B4 7F084644 00002825 */ move $a1, $zero +/* 0B91B8 7F084648 0FC22A89 */ jal get_BONDdata_watch_health +/* 0B91BC 7F08464C 00000000 */ nop +/* 0B91C0 7F084650 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B91C4 7F084654 44814000 */ mtc1 $at, $f8 +/* 0B91C8 7F084658 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B91CC 7F08465C 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B91D0 7F084660 46080282 */ mul.s $f10, $f0, $f8 +/* 0B91D4 7F084664 8C980000 */ lw $t8, ($a0) +/* 0B91D8 7F084668 24190007 */ li $t9, 7 +/* 0B91DC 7F08466C 4600510D */ trunc.w.s $f4, $f10 +/* 0B91E0 7F084670 440F2000 */ mfc1 $t7, $f4 +/* 0B91E4 7F084674 00000000 */ nop +/* 0B91E8 7F084678 AF0F29D4 */ sw $t7, 0x29d4($t8) +/* 0B91EC 7F08467C 8C820000 */ lw $v0, ($a0) +/* 0B91F0 7F084680 8C4329D4 */ lw $v1, 0x29d4($v0) +/* 0B91F4 7F084684 28610008 */ slti $at, $v1, 8 +/* 0B91F8 7F084688 14200004 */ bnez $at, .Ljp7F08469C +/* 0B91FC 7F08468C 00000000 */ nop +/* 0B9200 7F084690 AC5929D4 */ sw $t9, 0x29d4($v0) +/* 0B9204 7F084694 8C820000 */ lw $v0, ($a0) +/* 0B9208 7F084698 8C4329D4 */ lw $v1, 0x29d4($v0) +.Ljp7F08469C: +/* 0B920C 7F08469C 04630004 */ bgezl $v1, .Ljp7F0846B0 +/* 0B9210 7F0846A0 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B9214 7F0846A4 AC4029D4 */ sw $zero, 0x29d4($v0) +/* 0B9218 7F0846A8 8C820000 */ lw $v0, ($a0) +/* 0B921C 7F0846AC 8C4800D8 */ lw $t0, 0xd8($v0) +.Ljp7F0846B0: +/* 0B9220 7F0846B0 3C0B8003 */ lui $t3, %hi(D_80036634) # $t3, 0x8003 +/* 0B9224 7F0846B4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B9228 7F0846B8 15000045 */ bnez $t0, .Ljp7F0847D0 +/* 0B922C 7F0846BC 240400FF */ li $a0, 255 +/* 0B9230 7F0846C0 8C4929D4 */ lw $t1, 0x29d4($v0) +/* 0B9234 7F0846C4 256B6674 */ addiu $t3, %lo(D_80036634) # addiu $t3, $t3, 0x6674 +/* 0B9238 7F0846C8 C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B923C 7F0846CC 00095080 */ sll $t2, $t1, 2 +/* 0B9240 7F0846D0 01495023 */ subu $t2, $t2, $t1 +/* 0B9244 7F0846D4 000A5080 */ sll $t2, $t2, 2 +/* 0B9248 7F0846D8 01495023 */ subu $t2, $t2, $t1 +/* 0B924C 7F0846DC 000A5080 */ sll $t2, $t2, 2 +/* 0B9250 7F0846E0 014B1821 */ addu $v1, $t2, $t3 +/* 0B9254 7F0846E4 C4660008 */ lwc1 $f6, 8($v1) +/* 0B9258 7F0846E8 4606003E */ c.le.s $f0, $f6 +/* 0B925C 7F0846EC 00000000 */ nop +/* 0B9260 7F0846F0 45030007 */ bc1tl .Ljp7F084710 +/* 0B9264 7F0846F4 C4620010 */ lwc1 $f2, 0x10($v1) +/* 0B9268 7F0846F8 C4680018 */ lwc1 $f8, 0x18($v1) +/* 0B926C 7F0846FC 4608003E */ c.le.s $f0, $f8 +/* 0B9270 7F084700 00000000 */ nop +/* 0B9274 7F084704 45020033 */ bc1fl .Ljp7F0847D4 +/* 0B9278 7F084708 44813000 */ mtc1 $at, $f6 +/* 0B927C 7F08470C C4620010 */ lwc1 $f2, 0x10($v1) +.Ljp7F084710: +/* 0B9280 7F084710 4600103E */ c.le.s $f2, $f0 +/* 0B9284 7F084714 00000000 */ nop +/* 0B9288 7F084718 4502001F */ bc1fl .Ljp7F084798 +/* 0B928C 7F08471C 8C4C01C8 */ lw $t4, 0x1c8($v0) +/* 0B9290 7F084720 C4700018 */ lwc1 $f16, 0x18($v1) +/* 0B9294 7F084724 4610003E */ c.le.s $f0, $f16 +/* 0B9298 7F084728 00000000 */ nop +/* 0B929C 7F08472C 4502001A */ bc1fl .Ljp7F084798 +/* 0B92A0 7F084730 8C4C01C8 */ lw $t4, 0x1c8($v0) +/* 0B92A4 7F084734 46020301 */ sub.s $f12, $f0, $f2 +/* 0B92A8 7F084738 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 0B92AC 7F08473C 46028481 */ sub.s $f18, $f16, $f2 +/* 0B92B0 7F084740 460E603C */ c.lt.s $f12, $f14 +/* 0B92B4 7F084744 00000000 */ nop +/* 0B92B8 7F084748 45020006 */ bc1fl .Ljp7F084764 +/* 0B92BC 7F08474C 460C9201 */ sub.s $f8, $f18, $f12 +/* 0B92C0 7F084750 C46A001C */ lwc1 $f10, 0x1c($v1) +/* 0B92C4 7F084754 460C5102 */ mul.s $f4, $f10, $f12 +/* 0B92C8 7F084758 10000006 */ b .Ljp7F084774 +/* 0B92CC 7F08475C 460E2003 */ div.s $f0, $f4, $f14 +/* 0B92D0 7F084760 460C9201 */ sub.s $f8, $f18, $f12 +.Ljp7F084764: +/* 0B92D4 7F084764 C466001C */ lwc1 $f6, 0x1c($v1) +/* 0B92D8 7F084768 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B92DC 7F08476C 46083282 */ mul.s $f10, $f6, $f8 +/* 0B92E0 7F084770 46045003 */ div.s $f0, $f10, $f4 +.Ljp7F084774: +/* 0B92E4 7F084774 44070000 */ mfc1 $a3, $f0 +/* 0B92E8 7F084778 8C640020 */ lw $a0, 0x20($v1) +/* 0B92EC 7F08477C 8C650024 */ lw $a1, 0x24($v1) +/* 0B92F0 7F084780 0FC20370 */ jal set_rgba_tint +/* 0B92F4 7F084784 8C660028 */ lw $a2, 0x28($v1) +/* 0B92F8 7F084788 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B92FC 7F08478C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9300 7F084790 C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B9304 7F084794 8C4C01C8 */ lw $t4, 0x1c8($v0) +.Ljp7F084798: +/* 0B9308 7F084798 3C018005 */ lui $at, %hi(jpD_800484D0) # -0.000000 +/* 0B930C 7F08479C 15800006 */ bnez $t4, .Ljp7F0847B8 +/* 0B9310 7F0847A0 00000000 */ nop +/* 0B9314 7F0847A4 3C018005 */ lui $at, %hi(global_timer_delta) # -0.000000 +/* 0B9318 7F0847A8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B931C 7F0847AC 46060200 */ add.s $f8, $f0, $f6 +/* 0B9320 7F0847B0 10000004 */ b .Ljp7F0847C4 +/* 0B9324 7F0847B4 E44800F4 */ swc1 $f8, 0xf4($v0) +.Ljp7F0847B8: +/* 0B9328 7F0847B8 C42A84D0 */ lwc1 $f10, %lo(jpD_800484D0)($at) +/* 0B932C 7F0847BC 460A0100 */ add.s $f4, $f0, $f10 +/* 0B9330 7F0847C0 E44400F4 */ swc1 $f4, 0xf4($v0) +.Ljp7F0847C4: +/* 0B9334 7F0847C4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9338 7F0847C8 1000001B */ b .Ljp7F084838 +/* 0B933C 7F0847CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F0847D0: +/* 0B9340 7F0847D0 44813000 */ mtc1 $at, $f6 +.Ljp7F0847D4: +/* 0B9344 7F0847D4 240500FF */ li $a1, 255 +/* 0B9348 7F0847D8 240600FF */ li $a2, 255 +/* 0B934C 7F0847DC 24070000 */ li $a3, 0 +/* 0B9350 7F0847E0 0FC20370 */ jal set_rgba_tint +/* 0B9354 7F0847E4 E44600F4 */ swc1 $f6, 0xf4($v0) +/* 0B9358 7F0847E8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B935C 7F0847EC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9360 7F0847F0 24040008 */ li $a0, 8 +/* 0B9364 7F0847F4 8C4D00D8 */ lw $t5, 0xd8($v0) +/* 0B9368 7F0847F8 55A00010 */ bnezl $t5, .Ljp7F08483C +/* 0B936C 7F0847FC C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B9370 7F084800 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B9374 7F084804 24050001 */ li $a1, 1 +/* 0B9378 7F084808 24040010 */ li $a0, 16 +/* 0B937C 7F08480C 0FC1AAE5 */ jal set_unset_bitflags +/* 0B9380 7F084810 24050001 */ li $a1, 1 +/* 0B9384 7F084814 0FC22AA6 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B9388 7F084818 24040004 */ li $a0, 4 +/* 0B938C 7F08481C 0FC22C41 */ jal sub_GAME_7F08A928 +/* 0B9390 7F084820 24040004 */ li $a0, 4 +/* 0B9394 7F084824 24040008 */ li $a0, 8 +/* 0B9398 7F084828 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B939C 7F08482C 24050001 */ li $a1, 1 +/* 0B93A0 7F084830 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B93A4 7F084834 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F084838: +/* 0B93A8 7F084838 C44000F8 */ lwc1 $f0, 0xf8($v0) +.Ljp7F08483C: +/* 0B93AC 7F08483C 44804000 */ mtc1 $zero, $f8 +/* 0B93B0 7F084840 00000000 */ nop +/* 0B93B4 7F084844 4600403E */ c.le.s $f8, $f0 +/* 0B93B8 7F084848 00000000 */ nop +/* 0B93BC 7F08484C 4502006D */ bc1fl .Ljp7F084A04 +/* 0B93C0 7F084850 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B93C4 7F084854 44805000 */ mtc1 $zero, $f10 +/* 0B93C8 7F084858 00000000 */ nop +/* 0B93CC 7F08485C 46005032 */ c.eq.s $f10, $f0 +/* 0B93D0 7F084860 00000000 */ nop +/* 0B93D4 7F084864 4502001D */ bc1fl .Ljp7F0848DC +/* 0B93D8 7F084868 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B93DC 7F08486C 0FC22A89 */ jal get_BONDdata_watch_health +/* 0B93E0 7F084870 00000000 */ nop +/* 0B93E4 7F084874 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B93E8 7F084878 44812000 */ mtc1 $at, $f4 +/* 0B93EC 7F08487C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B93F0 7F084880 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B93F4 7F084884 46040182 */ mul.s $f6, $f0, $f4 +/* 0B93F8 7F084888 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B93FC 7F08488C 24190007 */ li $t9, 7 +/* 0B9400 7F084890 4600320D */ trunc.w.s $f8, $f6 +/* 0B9404 7F084894 440F4000 */ mfc1 $t7, $f8 +/* 0B9408 7F084898 00000000 */ nop +/* 0B940C 7F08489C AF0F29B8 */ sw $t7, 0x29b8($t8) +/* 0B9410 7F0848A0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9414 7F0848A4 8C4329B8 */ lw $v1, 0x29b8($v0) +/* 0B9418 7F0848A8 28610008 */ slti $at, $v1, 8 +/* 0B941C 7F0848AC 14200005 */ bnez $at, .Ljp7F0848C4 +/* 0B9420 7F0848B0 00000000 */ nop +/* 0B9424 7F0848B4 AC5929B8 */ sw $t9, 0x29b8($v0) +/* 0B9428 7F0848B8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B942C 7F0848BC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9430 7F0848C0 8C4329B8 */ lw $v1, 0x29b8($v0) +.Ljp7F0848C4: +/* 0B9434 7F0848C4 04630005 */ bgezl $v1, .Ljp7F0848DC +/* 0B9438 7F0848C8 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B943C 7F0848CC AC4029B8 */ sw $zero, 0x29b8($v0) +/* 0B9440 7F0848D0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9444 7F0848D4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9448 7F0848D8 8C4800D8 */ lw $t0, 0xd8($v0) +.Ljp7F0848DC: +/* 0B944C 7F0848DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B9450 7F0848E0 55000045 */ bnezl $t0, .Ljp7F0849F8 +/* 0B9454 7F0848E4 44815000 */ mtc1 $at, $f10 +/* 0B9458 7F0848E8 8C4929B8 */ lw $t1, 0x29b8($v0) +/* 0B945C 7F0848EC 3C0B8003 */ lui $t3, %hi(D_80036794) # $t3, 0x8003 +/* 0B9460 7F0848F0 256B67D4 */ addiu $t3, %lo(D_80036794) # addiu $t3, $t3, 0x67d4 +/* 0B9464 7F0848F4 00095080 */ sll $t2, $t1, 2 +/* 0B9468 7F0848F8 01495023 */ subu $t2, $t2, $t1 +/* 0B946C 7F0848FC 000A5080 */ sll $t2, $t2, 2 +/* 0B9470 7F084900 014B1821 */ addu $v1, $t2, $t3 +/* 0B9474 7F084904 8C6C0000 */ lw $t4, ($v1) +/* 0B9478 7F084908 C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B947C 7F08490C 448C5000 */ mtc1 $t4, $f10 +/* 0B9480 7F084910 00000000 */ nop +/* 0B9484 7F084914 468050A0 */ cvt.s.w $f2, $f10 +/* 0B9488 7F084918 4600103E */ c.le.s $f2, $f0 +/* 0B948C 7F08491C 00000000 */ nop +/* 0B9490 7F084920 45020018 */ bc1fl .Ljp7F084984 +/* 0B9494 7F084924 4600103E */ c.le.s $f2, $f0 +/* 0B9498 7F084928 8C6D0004 */ lw $t5, 4($v1) +/* 0B949C 7F08492C 448D2000 */ mtc1 $t5, $f4 +/* 0B94A0 7F084930 00000000 */ nop +/* 0B94A4 7F084934 468021A0 */ cvt.s.w $f6, $f4 +/* 0B94A8 7F084938 4606003E */ c.le.s $f0, $f6 +/* 0B94AC 7F08493C 00000000 */ nop +/* 0B94B0 7F084940 45020010 */ bc1fl .Ljp7F084984 +/* 0B94B4 7F084944 4600103E */ c.le.s $f2, $f0 +/* 0B94B8 7F084948 C44800E4 */ lwc1 $f8, 0xe4($v0) +/* 0B94BC 7F08494C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B94C0 7F084950 E44800EC */ swc1 $f8, 0xec($v0) +/* 0B94C4 7F084954 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B94C8 7F084958 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B94CC 7F08495C C44A00E8 */ lwc1 $f10, 0xe8($v0) +/* 0B94D0 7F084960 E44A00F0 */ swc1 $f10, 0xf0($v0) +/* 0B94D4 7F084964 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B94D8 7F084968 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B94DC 7F08496C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B94E0 7F084970 C44400F8 */ lwc1 $f4, 0xf8($v0) +/* 0B94E4 7F084974 46062200 */ add.s $f8, $f4, $f6 +/* 0B94E8 7F084978 10000021 */ b .Ljp7F084A00 +/* 0B94EC 7F08497C E44800F8 */ swc1 $f8, 0xf8($v0) +/* 0B94F0 7F084980 4600103E */ c.le.s $f2, $f0 +.Ljp7F084984: +/* 0B94F4 7F084984 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B94F8 7F084988 45020018 */ bc1fl .Ljp7F0849EC +/* 0B94FC 7F08498C 44814000 */ mtc1 $at, $f8 +/* 0B9500 7F084990 8C6E0008 */ lw $t6, 8($v1) +/* 0B9504 7F084994 448E5000 */ mtc1 $t6, $f10 +/* 0B9508 7F084998 00000000 */ nop +/* 0B950C 7F08499C 46805120 */ cvt.s.w $f4, $f10 +/* 0B9510 7F0849A0 4604003E */ c.le.s $f0, $f4 +/* 0B9514 7F0849A4 00000000 */ nop +/* 0B9518 7F0849A8 45020010 */ bc1fl .Ljp7F0849EC +/* 0B951C 7F0849AC 44814000 */ mtc1 $at, $f8 +/* 0B9520 7F0849B0 C44600DC */ lwc1 $f6, 0xdc($v0) +/* 0B9524 7F0849B4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9528 7F0849B8 E44600EC */ swc1 $f6, 0xec($v0) +/* 0B952C 7F0849BC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9530 7F0849C0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9534 7F0849C4 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0B9538 7F0849C8 E44800F0 */ swc1 $f8, 0xf0($v0) +/* 0B953C 7F0849CC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9540 7F0849D0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9544 7F0849D4 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B9548 7F0849D8 C44A00F8 */ lwc1 $f10, 0xf8($v0) +/* 0B954C 7F0849DC 46045180 */ add.s $f6, $f10, $f4 +/* 0B9550 7F0849E0 10000007 */ b .Ljp7F084A00 +/* 0B9554 7F0849E4 E44600F8 */ swc1 $f6, 0xf8($v0) +/* 0B9558 7F0849E8 44814000 */ mtc1 $at, $f8 +.Ljp7F0849EC: +/* 0B955C 7F0849EC 10000004 */ b .Ljp7F084A00 +/* 0B9560 7F0849F0 E44800F8 */ swc1 $f8, 0xf8($v0) +/* 0B9564 7F0849F4 44815000 */ mtc1 $at, $f10 +.Ljp7F0849F8: +/* 0B9568 7F0849F8 00000000 */ nop +/* 0B956C 7F0849FC E44A00F8 */ swc1 $f10, 0xf8($v0) +.Ljp7F084A00: +/* 0B9570 7F084A00 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F084A04: +/* 0B9574 7F084A04 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B9578 7F084A08 03E00008 */ jr $ra +/* 0B957C 7F084A0C 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F084360(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F084360 +/* 0B8E90 7F084360 3C048008 */ lui $a0, %hi(dword_CODE_bss_800799A0) +/* 0B8E94 7F084364 248499A0 */ addiu $a0, %lo(dword_CODE_bss_800799A0) # addiu $a0, $a0, -0x6660 +/* 0B8E98 7F084368 8C8E0000 */ lw $t6, ($a0) +/* 0B8E9C 7F08436C 3C188003 */ lui $t8, %hi(D_80036444) +/* 0B8EA0 7F084370 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B8EA4 7F084374 25CF0001 */ addiu $t7, $t6, 1 +/* 0B8EA8 7F084378 AC8F0000 */ sw $t7, ($a0) +/* 0B8EAC 7F08437C 8F186444 */ lw $t8, %lo(D_80036444)($t8) +/* 0B8EB0 7F084380 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B8EB4 7F084384 3C198003 */ lui $t9, %hi(disable_player_pickups_flag) +/* 0B8EB8 7F084388 530000AC */ beql $t8, $zero, .L7F08463C +/* 0B8EBC 7F08438C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8EC0 7F084390 8F3964B4 */ lw $t9, %lo(disable_player_pickups_flag)($t9) +/* 0B8EC4 7F084394 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007999C) +/* 0B8EC8 7F084398 3C098005 */ lui $t1, %hi(global_timer) +/* 0B8ECC 7F08439C 572000A7 */ bnezl $t9, .L7F08463C +/* 0B8ED0 7F0843A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8ED4 7F0843A4 8D08999C */ lw $t0, %lo(dword_CODE_bss_8007999C)($t0) +/* 0B8ED8 7F0843A8 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 0B8EDC 7F0843AC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8EE0 7F0843B0 0109082A */ slt $at, $t0, $t1 +/* 0B8EE4 7F0843B4 502000A1 */ beql $at, $zero, .L7F08463C +/* 0B8EE8 7F0843B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8EEC 7F0843BC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8EF0 7F0843C0 01E01825 */ move $v1, $t7 +/* 0B8EF4 7F0843C4 24010001 */ li $at, 1 +/* 0B8EF8 7F0843C8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0B8EFC 7F0843CC C5440008 */ lwc1 $f4, 8($t2) +/* 0B8F00 7F0843D0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0B8F04 7F0843D4 8C4B00A8 */ lw $t3, 0xa8($v0) +/* 0B8F08 7F0843D8 C566000C */ lwc1 $f6, 0xc($t3) +/* 0B8F0C 7F0843DC E7A60038 */ swc1 $f6, 0x38($sp) +/* 0B8F10 7F0843E0 8C4C00A8 */ lw $t4, 0xa8($v0) +/* 0B8F14 7F0843E4 C5880010 */ lwc1 $f8, 0x10($t4) +/* 0B8F18 7F0843E8 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0B8F1C 7F0843EC 04610004 */ bgez $v1, .L7F084400 +/* 0B8F20 7F0843F0 306D0003 */ andi $t5, $v1, 3 +/* 0B8F24 7F0843F4 11A00002 */ beqz $t5, .L7F084400 +/* 0B8F28 7F0843F8 00000000 */ nop +/* 0B8F2C 7F0843FC 25ADFFFC */ addiu $t5, $t5, -4 +.L7F084400: +/* 0B8F30 7F084400 11A00009 */ beqz $t5, .L7F084428 +/* 0B8F34 7F084404 00000000 */ nop +/* 0B8F38 7F084408 11A1001D */ beq $t5, $at, .L7F084480 +/* 0B8F3C 7F08440C 24010002 */ li $at, 2 +/* 0B8F40 7F084410 11A10031 */ beq $t5, $at, .L7F0844D8 +/* 0B8F44 7F084414 24010003 */ li $at, 3 +/* 0B8F48 7F084418 11A10045 */ beq $t5, $at, .L7F084530 +/* 0B8F4C 7F08441C 00000000 */ nop +/* 0B8F50 7F084420 10000058 */ b .L7F084584 +/* 0B8F54 7F084424 00000000 */ nop +.L7F084428: +/* 0B8F58 7F084428 0C002914 */ jal get_random_value +/* 0B8F5C 7F08442C 00000000 */ nop +/* 0B8F60 7F084430 44825000 */ mtc1 $v0, $f10 +/* 0B8F64 7F084434 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B8F68 7F084438 04410004 */ bgez $v0, .L7F08444C +/* 0B8F6C 7F08443C 46805420 */ cvt.s.w $f16, $f10 +/* 0B8F70 7F084440 44819000 */ mtc1 $at, $f18 +/* 0B8F74 7F084444 00000000 */ nop +/* 0B8F78 7F084448 46128400 */ add.s $f16, $f16, $f18 +.L7F08444C: +/* 0B8F7C 7F08444C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B8F80 7F084450 44812000 */ mtc1 $at, $f4 +/* 0B8F84 7F084454 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B8F88 7F084458 44814000 */ mtc1 $at, $f8 +/* 0B8F8C 7F08445C 46048182 */ mul.s $f6, $f16, $f4 +/* 0B8F90 7F084460 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B8F94 7F084464 44819000 */ mtc1 $at, $f18 +/* 0B8F98 7F084468 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0B8F9C 7F08446C 46064282 */ mul.s $f10, $f8, $f6 +/* 0B8FA0 7F084470 460A9400 */ add.s $f16, $f18, $f10 +/* 0B8FA4 7F084474 46102200 */ add.s $f8, $f4, $f16 +/* 0B8FA8 7F084478 10000042 */ b .L7F084584 +/* 0B8FAC 7F08447C E7A80034 */ swc1 $f8, 0x34($sp) +.L7F084480: +/* 0B8FB0 7F084480 0C002914 */ jal get_random_value +/* 0B8FB4 7F084484 00000000 */ nop +/* 0B8FB8 7F084488 44823000 */ mtc1 $v0, $f6 +/* 0B8FBC 7F08448C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B8FC0 7F084490 04410004 */ bgez $v0, .L7F0844A4 +/* 0B8FC4 7F084494 468034A0 */ cvt.s.w $f18, $f6 +/* 0B8FC8 7F084498 44815000 */ mtc1 $at, $f10 +/* 0B8FCC 7F08449C 00000000 */ nop +/* 0B8FD0 7F0844A0 460A9480 */ add.s $f18, $f18, $f10 +.L7F0844A4: +/* 0B8FD4 7F0844A4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B8FD8 7F0844A8 44812000 */ mtc1 $at, $f4 +/* 0B8FDC 7F0844AC 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B8FE0 7F0844B0 44814000 */ mtc1 $at, $f8 +/* 0B8FE4 7F0844B4 46049402 */ mul.s $f16, $f18, $f4 +/* 0B8FE8 7F0844B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B8FEC 7F0844BC 44815000 */ mtc1 $at, $f10 +/* 0B8FF0 7F0844C0 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0B8FF4 7F0844C4 46104182 */ mul.s $f6, $f8, $f16 +/* 0B8FF8 7F0844C8 46065480 */ add.s $f18, $f10, $f6 +/* 0B8FFC 7F0844CC 46122201 */ sub.s $f8, $f4, $f18 +/* 0B9000 7F0844D0 1000002C */ b .L7F084584 +/* 0B9004 7F0844D4 E7A80034 */ swc1 $f8, 0x34($sp) +.L7F0844D8: +/* 0B9008 7F0844D8 0C002914 */ jal get_random_value +/* 0B900C 7F0844DC 00000000 */ nop +/* 0B9010 7F0844E0 44828000 */ mtc1 $v0, $f16 +/* 0B9014 7F0844E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B9018 7F0844E8 04410004 */ bgez $v0, .L7F0844FC +/* 0B901C 7F0844EC 468082A0 */ cvt.s.w $f10, $f16 +/* 0B9020 7F0844F0 44813000 */ mtc1 $at, $f6 +/* 0B9024 7F0844F4 00000000 */ nop +/* 0B9028 7F0844F8 46065280 */ add.s $f10, $f10, $f6 +.L7F0844FC: +/* 0B902C 7F0844FC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B9030 7F084500 44812000 */ mtc1 $at, $f4 +/* 0B9034 7F084504 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B9038 7F084508 44814000 */ mtc1 $at, $f8 +/* 0B903C 7F08450C 46045482 */ mul.s $f18, $f10, $f4 +/* 0B9040 7F084510 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B9044 7F084514 44813000 */ mtc1 $at, $f6 +/* 0B9048 7F084518 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B904C 7F08451C 46124402 */ mul.s $f16, $f8, $f18 +/* 0B9050 7F084520 46103280 */ add.s $f10, $f6, $f16 +/* 0B9054 7F084524 460A2200 */ add.s $f8, $f4, $f10 +/* 0B9058 7F084528 10000016 */ b .L7F084584 +/* 0B905C 7F08452C E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F084530: +/* 0B9060 7F084530 0C002914 */ jal get_random_value +/* 0B9064 7F084534 00000000 */ nop +/* 0B9068 7F084538 44829000 */ mtc1 $v0, $f18 +/* 0B906C 7F08453C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B9070 7F084540 04410004 */ bgez $v0, .L7F084554 +/* 0B9074 7F084544 468091A0 */ cvt.s.w $f6, $f18 +/* 0B9078 7F084548 44818000 */ mtc1 $at, $f16 +/* 0B907C 7F08454C 00000000 */ nop +/* 0B9080 7F084550 46103180 */ add.s $f6, $f6, $f16 +.L7F084554: +/* 0B9084 7F084554 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B9088 7F084558 44812000 */ mtc1 $at, $f4 +/* 0B908C 7F08455C 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B9090 7F084560 44814000 */ mtc1 $at, $f8 +/* 0B9094 7F084564 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9098 7F084568 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B909C 7F08456C 44818000 */ mtc1 $at, $f16 +/* 0B90A0 7F084570 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B90A4 7F084574 460A4482 */ mul.s $f18, $f8, $f10 +/* 0B90A8 7F084578 46128180 */ add.s $f6, $f16, $f18 +/* 0B90AC 7F08457C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B90B0 7F084580 E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F084584: +/* 0B90B4 7F084584 0C002914 */ jal get_random_value +/* 0B90B8 7F084588 00000000 */ nop +/* 0B90BC 7F08458C 44825000 */ mtc1 $v0, $f10 +/* 0B90C0 7F084590 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B90C4 7F084594 04410004 */ bgez $v0, .L7F0845A8 +/* 0B90C8 7F084598 46805420 */ cvt.s.w $f16, $f10 +/* 0B90CC 7F08459C 44819000 */ mtc1 $at, $f18 +/* 0B90D0 7F0845A0 00000000 */ nop +/* 0B90D4 7F0845A4 46128400 */ add.s $f16, $f16, $f18 +.L7F0845A8: +/* 0B90D8 7F0845A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B90DC 7F0845AC 44812000 */ mtc1 $at, $f4 +/* 0B90E0 7F0845B0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0B90E4 7F0845B4 44814000 */ mtc1 $at, $f8 +/* 0B90E8 7F0845B8 46048182 */ mul.s $f6, $f16, $f4 +/* 0B90EC 7F0845BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0B90F0 7F0845C0 44819000 */ mtc1 $at, $f18 +/* 0B90F4 7F0845C4 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0B90F8 7F0845C8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B90FC 7F0845CC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B9100 7F0845D0 00002025 */ move $a0, $zero +/* 0B9104 7F0845D4 46064282 */ mul.s $f10, $f8, $f6 +/* 0B9108 7F0845D8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B910C 7F0845DC 24070012 */ li $a3, 18 +/* 0B9110 7F0845E0 46125401 */ sub.s $f16, $f10, $f18 +/* 0B9114 7F0845E4 46102200 */ add.s $f8, $f4, $f16 +/* 0B9118 7F0845E8 E7A80038 */ swc1 $f8, 0x38($sp) +/* 0B911C 7F0845EC 8DC300A8 */ lw $v1, 0xa8($t6) +/* 0B9120 7F0845F0 8C660014 */ lw $a2, 0x14($v1) +/* 0B9124 7F0845F4 246F002C */ addiu $t7, $v1, 0x2c +/* 0B9128 7F0845F8 AFAF0018 */ sw $t7, 0x18($sp) +/* 0B912C 7F0845FC AFA0001C */ sw $zero, 0x1c($sp) +/* 0B9130 7F084600 AFA00014 */ sw $zero, 0x14($sp) +/* 0B9134 7F084604 0FC27094 */ jal sub_GAME_7F09C250 +/* 0B9138 7F084608 AFA00010 */ sw $zero, 0x10($sp) +/* 0B913C 7F08460C 0C002914 */ jal get_random_value +/* 0B9140 7F084610 00000000 */ nop +/* 0B9144 7F084614 2401000F */ li $at, 15 +/* 0B9148 7F084618 0041001B */ divu $zero, $v0, $at +/* 0B914C 7F08461C 3C198005 */ lui $t9, %hi(global_timer) +/* 0B9150 7F084620 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 0B9154 7F084624 0000C010 */ mfhi $t8 +/* 0B9158 7F084628 3C018008 */ lui $at, %hi(dword_CODE_bss_8007999C) +/* 0B915C 7F08462C 03194021 */ addu $t0, $t8, $t9 +/* 0B9160 7F084630 2509000F */ addiu $t1, $t0, 0xf +/* 0B9164 7F084634 AC29999C */ sw $t1, %lo(dword_CODE_bss_8007999C)($at) +/* 0B9168 7F084638 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08463C: +/* 0B916C 7F08463C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B9170 7F084640 03E00008 */ jr $ra +/* 0B9174 7F084644 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void MoveBond(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9178 7F084648 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B917C 7F08464C 3C0E8003 */ lui $t6, %hi(D_800367F4) +/* 0B9180 7F084650 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9184 7F084654 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9188 7F084658 AFB00024 */ sw $s0, 0x24($sp) +/* 0B918C 7F08465C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9190 7F084660 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9194 7F084664 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9198 7F084668 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B919C 7F08466C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B91A0 7F084670 25CE67F4 */ addiu $t6, %lo(D_800367F4) # addiu $t6, $t6, 0x67f4 +/* 0B91A4 7F084674 8DC10000 */ lw $at, ($t6) +/* 0B91A8 7F084678 27AD03AC */ addiu $t5, $sp, 0x3ac +/* 0B91AC 7F08467C 8DCF0004 */ lw $t7, 4($t6) +/* 0B91B0 7F084680 ADA10000 */ sw $at, ($t5) +/* 0B91B4 7F084684 8DC10008 */ lw $at, 8($t6) +/* 0B91B8 7F084688 4480A000 */ mtc1 $zero, $f20 +/* 0B91BC 7F08468C 00048600 */ sll $s0, $a0, 0x18 +/* 0B91C0 7F084690 ADA10008 */ sw $at, 8($t5) +/* 0B91C4 7F084694 00106603 */ sra $t4, $s0, 0x18 +/* 0B91C8 7F084698 ADAF0004 */ sw $t7, 4($t5) +/* 0B91CC 7F08469C 29810064 */ slti $at, $t4, 0x64 +/* 0B91D0 7F0846A0 01808025 */ move $s0, $t4 +/* 0B91D4 7F0846A4 AFA00394 */ sw $zero, 0x394($sp) +/* 0B91D8 7F0846A8 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B91DC 7F0846AC 10200004 */ beqz $at, .L7F0846C0 +/* 0B91E0 7F0846B0 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B91E4 7F0846B4 2981FF9D */ slti $at, $t4, -0x63 +/* 0B91E8 7F0846B8 50200004 */ beql $at, $zero, .L7F0846CC +/* 0B91EC 7F0846BC 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846C0: +/* 0B91F0 7F0846C0 0FC1B11B */ jal return_null +/* 0B91F4 7F0846C4 00000000 */ nop +/* 0B91F8 7F0846C8 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846CC: +/* 0B91FC 7F0846CC 29610064 */ slti $at, $t3, 0x64 +/* 0B9200 7F0846D0 10200003 */ beqz $at, .L7F0846E0 +/* 0B9204 7F0846D4 2961FF9D */ slti $at, $t3, -0x63 +/* 0B9208 7F0846D8 10200003 */ beqz $at, .L7F0846E8 +/* 0B920C 7F0846DC 00000000 */ nop +.L7F0846E0: +/* 0B9210 7F0846E0 0FC1B11B */ jal return_null +/* 0B9214 7F0846E4 00000000 */ nop +.L7F0846E8: +/* 0B9218 7F0846E8 3C038003 */ lui $v1, %hi(camera_80036424) +/* 0B921C 7F0846EC 24636424 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6424 +/* 0B9220 7F0846F0 8C620000 */ lw $v0, ($v1) +/* 0B9224 7F0846F4 18400015 */ blez $v0, .L7F08474C +/* 0B9228 7F0846F8 24580001 */ addiu $t8, $v0, 1 +/* 0B922C 7F0846FC 2B010004 */ slti $at, $t8, 4 +/* 0B9230 7F084700 14200012 */ bnez $at, .L7F08474C +/* 0B9234 7F084704 AC780000 */ sw $t8, ($v1) +/* 0B9238 7F084708 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B923C 7F08470C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9240 7F084710 8E390000 */ lw $t9, ($s1) +/* 0B9244 7F084714 AC600000 */ sw $zero, ($v1) +/* 0B9248 7F084718 24040001 */ li $a0, 1 +/* 0B924C 7F08471C AF202A54 */ sw $zero, 0x2a54($t9) +/* 0B9250 7F084720 8E2A0000 */ lw $t2, ($s1) +/* 0B9254 7F084724 0FC17674 */ jal get_item_in_hand +/* 0B9258 7F084728 AD402A50 */ sw $zero, 0x2a50($t2) +/* 0B925C 7F08472C 24040001 */ li $a0, 1 +/* 0B9260 7F084730 0FC176D5 */ jal remove_hands_item +/* 0B9264 7F084734 00402825 */ move $a1, $v0 +/* 0B9268 7F084738 0FC17674 */ jal get_item_in_hand +/* 0B926C 7F08473C 00002025 */ move $a0, $zero +/* 0B9270 7F084740 00002025 */ move $a0, $zero +/* 0B9274 7F084744 0FC176D5 */ jal remove_hands_item +/* 0B9278 7F084748 00402825 */ move $a1, $v0 +.L7F08474C: +/* 0B927C 7F08474C 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B9280 7F084750 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9284 7F084754 0FC1E694 */ jal setptrBONDdata +/* 0B9288 7F084758 00002025 */ move $a0, $zero +/* 0B928C 7F08475C 0FC20FF2 */ jal sub_GAME_7F083FC8 +/* 0B9290 7F084760 00000000 */ nop +/* 0B9294 7F084764 0FC210D8 */ jal sub_GAME_7F084360 +/* 0B9298 7F084768 00000000 */ nop +/* 0B929C 7F08476C 00102600 */ sll $a0, $s0, 0x18 +/* 0B92A0 7F084770 00046E03 */ sra $t5, $a0, 0x18 +/* 0B92A4 7F084774 01A02025 */ move $a0, $t5 +/* 0B92A8 7F084778 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B92AC 7F08477C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B92B0 7F084780 0FC2065D */ jal controller_gameplay_interaction +/* 0B92B4 7F084784 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B92B8 7F084788 0FC2FF01 */ jal get_controls_locked_flag +/* 0B92BC 7F08478C 00000000 */ nop +/* 0B92C0 7F084790 50400004 */ beql $v0, $zero, .L7F0847A4 +/* 0B92C4 7F084794 8E2E0000 */ lw $t6, ($s1) +/* 0B92C8 7F084798 0FC1FABC */ jal sub_GAME_7F07EAF0 +/* 0B92CC 7F08479C 00000000 */ nop +/* 0B92D0 7F0847A0 8E2E0000 */ lw $t6, ($s1) +.L7F0847A4: +/* 0B92D4 7F0847A4 8DCF01C8 */ lw $t7, 0x1c8($t6) +/* 0B92D8 7F0847A8 11E00003 */ beqz $t7, .L7F0847B8 +/* 0B92DC 7F0847AC 00000000 */ nop +/* 0B92E0 7F0847B0 0FC1FB15 */ jal sub_GAME_7F07EC54 +/* 0B92E4 7F0847B4 00000000 */ nop +.L7F0847B8: +/* 0B92E8 7F0847B8 3C0B8003 */ lui $t3, %hi(in_tank_flag) +/* 0B92EC 7F0847BC 8D6B6448 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B92F0 7F0847C0 1560006E */ bnez $t3, .L7F08497C +/* 0B92F4 7F0847C4 00000000 */ nop +/* 0B92F8 7F0847C8 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B92FC 7F0847CC 00000000 */ nop +/* 0B9300 7F0847D0 5440000D */ bnezl $v0, .L7F084808 +/* 0B9304 7F0847D4 8E280000 */ lw $t0, ($s1) +/* 0B9308 7F0847D8 8E280000 */ lw $t0, ($s1) +/* 0B930C 7F0847DC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9310 7F0847E0 44815000 */ mtc1 $at, $f10 +/* 0B9314 7F0847E4 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9318 7F0847E8 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B931C 7F0847EC 44812000 */ mtc1 $at, $f4 +/* 0B9320 7F0847F0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9324 7F0847F4 8E280000 */ lw $t0, ($s1) +/* 0B9328 7F0847F8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B932C 7F0847FC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9330 7F084800 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9334 7F084804 8E280000 */ lw $t0, ($s1) +.L7F084808: +/* 0B9338 7F084808 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B933C 7F08480C 4612A032 */ c.eq.s $f20, $f18 +/* 0B9340 7F084810 00000000 */ nop +/* 0B9344 7F084814 45020007 */ bc1fl .L7F084834 +/* 0B9348 7F084818 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B934C 7F08481C C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9350 7F084820 4606A032 */ c.eq.s $f20, $f6 +/* 0B9354 7F084824 00000000 */ nop +/* 0B9358 7F084828 45010054 */ bc1t .L7F08497C +/* 0B935C 7F08482C 00000000 */ nop +/* 0B9360 7F084830 C5000188 */ lwc1 $f0, 0x188($t0) +.L7F084834: +/* 0B9364 7F084834 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9368 7F084838 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B936C 7F08483C 46009387 */ neg.s $f14, $f18 +/* 0B9370 7F084840 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9374 7F084844 00000000 */ nop +/* 0B9378 7F084848 46107102 */ mul.s $f4, $f14, $f16 +/* 0B937C 7F08484C 46044280 */ add.s $f10, $f8, $f4 +/* 0B9380 7F084850 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9384 7F084854 00000000 */ nop +/* 0B9388 7F084858 46100202 */ mul.s $f8, $f0, $f16 +/* 0B938C 7F08485C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9390 7F084860 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9394 7F084864 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9398 7F084868 46129182 */ mul.s $f6, $f18, $f18 +/* 0B939C 7F08486C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B93A0 7F084870 0C007DF8 */ jal sqrtf +/* 0B93A4 7F084874 46065300 */ add.s $f12, $f10, $f6 +/* 0B93A8 7F084878 8E280000 */ lw $t0, ($s1) +/* 0B93AC 7F08487C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B93B0 7F084880 3C018005 */ lui $at, %hi(D_8005516C) +/* 0B93B4 7F084884 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B93B8 7F084888 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B93BC 7F08488C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B93C0 7F084890 46044280 */ add.s $f10, $f8, $f4 +/* 0B93C4 7F084894 00001825 */ move $v1, $zero +/* 0B93C8 7F084898 2404000C */ li $a0, 12 +/* 0B93CC 7F08489C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B93D0 7F0848A0 8E280000 */ lw $t0, ($s1) +/* 0B93D4 7F0848A4 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B93D8 7F0848A8 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B93DC 7F0848AC 46083100 */ add.s $f4, $f6, $f8 +/* 0B93E0 7F0848B0 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B93E4 7F0848B4 C42C516C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B93E8 7F0848B8 8E380000 */ lw $t8, ($s1) +.L7F0848BC: +/* 0B93EC 7F0848BC 03031021 */ addu $v0, $t8, $v1 +/* 0B93F0 7F0848C0 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B93F4 7F0848C4 4602A032 */ c.eq.s $f20, $f2 +/* 0B93F8 7F0848C8 00000000 */ nop +/* 0B93FC 7F0848CC 45030029 */ bc1tl .L7F084974 +/* 0B9400 7F0848D0 24630004 */ addiu $v1, $v1, 4 +/* 0B9404 7F0848D4 4602A03C */ c.lt.s $f20, $f2 +/* 0B9408 7F0848D8 00000000 */ nop +/* 0B940C 7F0848DC 45020012 */ bc1fl .L7F084928 +/* 0B9410 7F0848E0 4614103C */ c.lt.s $f2, $f20 +/* 0B9414 7F0848E4 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9418 7F0848E8 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B941C 7F0848EC 00000000 */ nop +/* 0B9420 7F0848F0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9424 7F0848F4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9428 7F0848F8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B942C 7F0848FC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9430 7F084900 8E2C0000 */ lw $t4, ($s1) +/* 0B9434 7F084904 01831021 */ addu $v0, $t4, $v1 +/* 0B9438 7F084908 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B943C 7F08490C 4614303C */ c.lt.s $f6, $f20 +/* 0B9440 7F084910 00000000 */ nop +/* 0B9444 7F084914 45000016 */ bc1f .L7F084970 +/* 0B9448 7F084918 00000000 */ nop +/* 0B944C 7F08491C 10000014 */ b .L7F084970 +/* 0B9450 7F084920 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9454 7F084924 4614103C */ c.lt.s $f2, $f20 +.L7F084928: +/* 0B9458 7F084928 00000000 */ nop +/* 0B945C 7F08492C 45020011 */ bc1fl .L7F084974 +/* 0B9460 7F084930 24630004 */ addiu $v1, $v1, 4 +/* 0B9464 7F084934 C5280000 */ lwc1 $f8, ($t1) +/* 0B9468 7F084938 46086102 */ mul.s $f4, $f12, $f8 +/* 0B946C 7F08493C 00000000 */ nop +/* 0B9470 7F084940 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9474 7F084944 46005183 */ div.s $f6, $f10, $f0 +/* 0B9478 7F084948 46061201 */ sub.s $f8, $f2, $f6 +/* 0B947C 7F08494C E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9480 7F084950 8E390000 */ lw $t9, ($s1) +/* 0B9484 7F084954 03231021 */ addu $v0, $t9, $v1 +/* 0B9488 7F084958 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B948C 7F08495C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9490 7F084960 00000000 */ nop +/* 0B9494 7F084964 45000002 */ bc1f .L7F084970 +/* 0B9498 7F084968 00000000 */ nop +/* 0B949C 7F08496C E4540180 */ swc1 $f20, 0x180($v0) +.L7F084970: +/* 0B94A0 7F084970 24630004 */ addiu $v1, $v1, 4 +.L7F084974: +/* 0B94A4 7F084974 5464FFD1 */ bnel $v1, $a0, .L7F0848BC +/* 0B94A8 7F084978 8E380000 */ lw $t8, ($s1) +.L7F08497C: +/* 0B94AC 7F08497C 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B94B0 7F084980 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B94B4 7F084984 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B94B8 7F084988 24010001 */ li $at, 1 +/* 0B94BC 7F08498C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B94C0 7F084990 15410211 */ bne $t2, $at, .L7F0851D8 +/* 0B94C4 7F084994 8E280000 */ lw $t0, ($s1) +/* 0B94C8 7F084998 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B94CC 7F08499C C5260000 */ lwc1 $f6, ($t1) +/* 0B94D0 7F0849A0 3C018005 */ lui $at, %hi(D_80055170) +/* 0B94D4 7F0849A4 C42C5170 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B94D8 7F0849A8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B94DC 7F0849AC 3C018005 */ lui $at, %hi(D_80055174) +/* 0B94E0 7F0849B0 C4245174 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B94E4 7F0849B4 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B94E8 7F0849B8 44813000 */ mtc1 $at, $f6 +/* 0B94EC 7F0849BC 3C018003 */ lui $at, %hi(D_80036464) +/* 0B94F0 7F0849C0 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B94F4 7F0849C4 46044282 */ mul.s $f10, $f8, $f4 +/* 0B94F8 7F0849C8 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B94FC 7F0849CC 02003825 */ move $a3, $s0 +/* 0B9500 7F0849D0 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9504 7F0849D4 27AD0368 */ addiu $t5, $sp, 0x368 +/* 0B9508 7F0849D8 46065082 */ mul.s $f2, $f10, $f6 +/* 0B950C 7F0849DC 46024000 */ add.s $f0, $f8, $f2 +/* 0B9510 7F0849E0 4600603E */ c.le.s $f12, $f0 +/* 0B9514 7F0849E4 00000000 */ nop +/* 0B9518 7F0849E8 45020003 */ bc1fl .L7F0849F8 +/* 0B951C 7F0849EC 4614003C */ c.lt.s $f0, $f20 +/* 0B9520 7F0849F0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9524 7F0849F4 4614003C */ c.lt.s $f0, $f20 +.L7F0849F8: +/* 0B9528 7F0849F8 00000000 */ nop +/* 0B952C 7F0849FC 45020003 */ bc1fl .L7F084A0C +/* 0B9530 7F084A00 8D050488 */ lw $a1, 0x488($t0) +/* 0B9534 7F084A04 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9538 7F084A08 8D050488 */ lw $a1, 0x488($t0) +.L7F084A0C: +/* 0B953C 7F084A0C 44060000 */ mfc1 $a2, $f0 +/* 0B9540 7F084A10 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9544 7F084A14 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9548 7F084A18 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B954C 7F084A1C AFAD0010 */ sw $t5, 0x10($sp) +/* 0B9550 7F084A20 50400007 */ beql $v0, $zero, .L7F084A40 +/* 0B9554 7F084A24 3C01BF80 */ lui $at, 0xbf80 +/* 0B9558 7F084A28 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B955C 7F084A2C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9560 7F084A30 E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9564 7F084A34 100000CB */ b .L7F084D64 +/* 0B9568 7F084A38 8E280000 */ lw $t0, ($s1) +/* 0B956C 7F084A3C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F084A40: +/* 0B9570 7F084A40 44815000 */ mtc1 $at, $f10 +/* 0B9574 7F084A44 44813000 */ mtc1 $at, $f6 +/* 0B9578 7F084A48 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B957C 7F084A4C 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9580 7F084A50 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9584 7F084A54 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B9588 7F084A58 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B958C 7F084A5C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9590 7F084A60 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9594 7F084A64 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9598 7F084A68 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B959C 7F084A6C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B95A0 7F084A70 46065381 */ sub.s $f14, $f10, $f6 +/* 0B95A4 7F084A74 46021202 */ mul.s $f8, $f2, $f2 +/* 0B95A8 7F084A78 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B95AC 7F084A7C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B95B0 7F084A80 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B95B4 7F084A84 0C007DF8 */ jal sqrtf +/* 0B95B8 7F084A88 46044300 */ add.s $f12, $f8, $f4 +/* 0B95BC 7F084A8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B95C0 7F084A90 44815000 */ mtc1 $at, $f10 +/* 0B95C4 7F084A94 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B95C8 7F084A98 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B95CC 7F084A9C 46005403 */ div.s $f16, $f10, $f0 +/* 0B95D0 7F084AA0 8E280000 */ lw $t0, ($s1) +/* 0B95D4 7F084AA4 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B95D8 7F084AA8 46101082 */ mul.s $f2, $f2, $f16 +/* 0B95DC 7F084AAC 00000000 */ nop +/* 0B95E0 7F084AB0 46107382 */ mul.s $f14, $f14, $f16 +/* 0B95E4 7F084AB4 46001307 */ neg.s $f12, $f2 +/* 0B95E8 7F084AB8 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B95EC 7F084ABC E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B95F0 7F084AC0 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B95F4 7F084AC4 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B95F8 7F084AC8 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B95FC 7F084ACC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9600 7F084AD0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9604 7F084AD4 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9608 7F084AD8 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B960C 7F084ADC C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9610 7F084AE0 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9614 7F084AE4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9618 7F084AE8 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B961C 7F084AEC 46044480 */ add.s $f18, $f8, $f4 +/* 0B9620 7F084AF0 4614903C */ c.lt.s $f18, $f20 +/* 0B9624 7F084AF4 00000000 */ nop +/* 0B9628 7F084AF8 45000006 */ bc1f .L7F084B14 +/* 0B962C 7F084AFC 00000000 */ nop +/* 0B9630 7F084B00 46007287 */ neg.s $f10, $f14 +/* 0B9634 7F084B04 46006187 */ neg.s $f6, $f12 +/* 0B9638 7F084B08 46009487 */ neg.s $f18, $f18 +/* 0B963C 7F084B0C E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9640 7F084B10 E7A60320 */ swc1 $f6, 0x320($sp) +.L7F084B14: +/* 0B9644 7F084B14 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9648 7F084B18 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B964C 7F084B1C C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9650 7F084B20 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9654 7F084B24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9658 7F084B28 46065202 */ mul.s $f8, $f10, $f6 +/* 0B965C 7F084B2C C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9660 7F084B30 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9664 7F084B34 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9668 7F084B38 46043282 */ mul.s $f10, $f6, $f4 +/* 0B966C 7F084B3C 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9670 7F084B40 4612003C */ c.lt.s $f0, $f18 +/* 0B9674 7F084B44 00000000 */ nop +/* 0B9678 7F084B48 45020004 */ bc1fl .L7F084B5C +/* 0B967C 7F084B4C C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9680 7F084B50 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9684 7F084B54 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9688 7F084B58 C7A40368 */ lwc1 $f4, 0x368($sp) +.L7F084B5C: +/* 0B968C 7F084B5C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9690 7F084B60 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9694 7F084B64 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9698 7F084B68 46082081 */ sub.s $f2, $f4, $f8 +/* 0B969C 7F084B6C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B96A0 7F084B70 46021102 */ mul.s $f4, $f2, $f2 +/* 0B96A4 7F084B74 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B96A8 7F084B78 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B96AC 7F084B7C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B96B0 7F084B80 0C007DF8 */ jal sqrtf +/* 0B96B4 7F084B84 46082300 */ add.s $f12, $f4, $f8 +/* 0B96B8 7F084B88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B96BC 7F084B8C 44815000 */ mtc1 $at, $f10 +/* 0B96C0 7F084B90 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B96C4 7F084B94 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B96C8 7F084B98 46005403 */ div.s $f16, $f10, $f0 +/* 0B96CC 7F084B9C 8E280000 */ lw $t0, ($s1) +/* 0B96D0 7F084BA0 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B96D4 7F084BA4 46101082 */ mul.s $f2, $f2, $f16 +/* 0B96D8 7F084BA8 00000000 */ nop +/* 0B96DC 7F084BAC 46107382 */ mul.s $f14, $f14, $f16 +/* 0B96E0 7F084BB0 46001307 */ neg.s $f12, $f2 +/* 0B96E4 7F084BB4 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B96E8 7F084BB8 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B96EC 7F084BBC C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B96F0 7F084BC0 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B96F4 7F084BC4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B96F8 7F084BC8 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B96FC 7F084BCC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9700 7F084BD0 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9704 7F084BD4 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9708 7F084BD8 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B970C 7F084BDC 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9710 7F084BE0 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9714 7F084BE4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9718 7F084BE8 46082480 */ add.s $f18, $f4, $f8 +/* 0B971C 7F084BEC 4614903C */ c.lt.s $f18, $f20 +/* 0B9720 7F084BF0 00000000 */ nop +/* 0B9724 7F084BF4 45000006 */ bc1f .L7F084C10 +/* 0B9728 7F084BF8 00000000 */ nop +/* 0B972C 7F084BFC 46007407 */ neg.s $f16, $f14 +/* 0B9730 7F084C00 46006287 */ neg.s $f10, $f12 +/* 0B9734 7F084C04 46009487 */ neg.s $f18, $f18 +/* 0B9738 7F084C08 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B973C 7F084C0C E7B0030C */ swc1 $f16, 0x30c($sp) +.L7F084C10: +/* 0B9740 7F084C10 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9744 7F084C14 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9748 7F084C18 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B974C 7F084C1C C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9750 7F084C20 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9754 7F084C24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9758 7F084C28 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B975C 7F084C2C C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9760 7F084C30 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9764 7F084C34 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9768 7F084C38 46085000 */ add.s $f0, $f10, $f8 +/* 0B976C 7F084C3C C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9770 7F084C40 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9774 7F084C44 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9778 7F084C48 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B977C 7F084C4C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9780 7F084C50 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9784 7F084C54 46043080 */ add.s $f2, $f6, $f4 +/* 0B9788 7F084C58 4600103C */ c.lt.s $f2, $f0 +/* 0B978C 7F084C5C 00000000 */ nop +/* 0B9790 7F084C60 45020003 */ bc1fl .L7F084C70 +/* 0B9794 7F084C64 4612003C */ c.lt.s $f0, $f18 +/* 0B9798 7F084C68 46001006 */ mov.s $f0, $f2 +/* 0B979C 7F084C6C 4612003C */ c.lt.s $f0, $f18 +.L7F084C70: +/* 0B97A0 7F084C70 00000000 */ nop +/* 0B97A4 7F084C74 45020004 */ bc1fl .L7F084C88 +/* 0B97A8 7F084C78 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B97AC 7F084C7C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B97B0 7F084C80 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B97B4 7F084C84 C7A20304 */ lwc1 $f2, 0x304($sp) +.L7F084C88: +/* 0B97B8 7F084C88 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B97BC 7F084C8C 4602A03E */ c.le.s $f20, $f2 +/* 0B97C0 7F084C90 00000000 */ nop +/* 0B97C4 7F084C94 4502000D */ bc1fl .L7F084CCC +/* 0B97C8 7F084C98 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97CC 7F084C9C 460A103C */ c.lt.s $f2, $f10 +/* 0B97D0 7F084CA0 00000000 */ nop +/* 0B97D4 7F084CA4 45030006 */ bc1tl .L7F084CC0 +/* 0B97D8 7F084CA8 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B97DC 7F084CAC 4614503C */ c.lt.s $f10, $f20 +/* 0B97E0 7F084CB0 00000000 */ nop +/* 0B97E4 7F084CB4 45020005 */ bc1fl .L7F084CCC +/* 0B97E8 7F084CB8 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97EC 7F084CBC E7B00324 */ swc1 $f16, 0x324($sp) +.L7F084CC0: +/* 0B97F0 7F084CC0 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B97F4 7F084CC4 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B97F8 7F084CC8 C7A0031C */ lwc1 $f0, 0x31c($sp) +.L7F084CCC: +/* 0B97FC 7F084CCC C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9800 7F084CD0 4600A03E */ c.le.s $f20, $f0 +/* 0B9804 7F084CD4 00000000 */ nop +/* 0B9808 7F084CD8 45020022 */ bc1fl .L7F084D64 +/* 0B980C 7F084CDC E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9810 7F084CE0 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9814 7F084CE4 3C018005 */ lui $at, %hi(D_80055178) +/* 0B9818 7F084CE8 C4245178 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B981C 7F084CEC C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9820 7F084CF0 3C018005 */ lui $at, %hi(D_8005517C) +/* 0B9824 7F084CF4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9828 7F084CF8 24050001 */ li $a1, 1 +/* 0B982C 7F084CFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9830 7F084D00 C424517C */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9834 7F084D04 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9838 7F084D08 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B983C 7F084D0C 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9840 7F084D10 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9844 7F084D14 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9848 7F084D18 8E280000 */ lw $t0, ($s1) +/* 0B984C 7F084D1C E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9850 7F084D20 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9854 7F084D24 27AE0368 */ addiu $t6, $sp, 0x368 +/* 0B9858 7F084D28 8D050488 */ lw $a1, 0x488($t0) +/* 0B985C 7F084D2C AFAE0010 */ sw $t6, 0x10($sp) +/* 0B9860 7F084D30 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9864 7F084D34 02003825 */ move $a3, $s0 +/* 0B9868 7F084D38 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B986C 7F084D3C 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9870 7F084D40 10400004 */ beqz $v0, .L7F084D54 +/* 0B9874 7F084D44 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9878 7F084D48 3C018003 */ lui $at, %hi(D_80036464) +/* 0B987C 7F084D4C 10000002 */ b .L7F084D58 +/* 0B9880 7F084D50 E4286464 */ swc1 $f8, %lo(D_80036464)($at) +.L7F084D54: +/* 0B9884 7F084D54 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D58: +/* 0B9888 7F084D58 10000002 */ b .L7F084D64 +/* 0B988C 7F084D5C 8E280000 */ lw $t0, ($s1) +/* 0B9890 7F084D60 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D64: +/* 0B9894 7F084D64 3C018005 */ lui $at, %hi(D_80055180) +/* 0B9898 7F084D68 C42E5180 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B989C 7F084D6C 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B98A0 7F084D70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B98A4 7F084D74 3C018003 */ lui $at, %hi(D_80036488) +/* 0B98A8 7F084D78 C4246488 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B98AC 7F084D7C C4660000 */ lwc1 $f6, ($v1) +/* 0B98B0 7F084D80 3C078003 */ lui $a3, %hi(D_80036474) +/* 0B98B4 7F084D84 24E76474 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x6474 +/* 0B98B8 7F084D88 46043280 */ add.s $f10, $f6, $f4 +/* 0B98BC 7F084D8C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B98C0 7F084D90 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B98C4 7F084D94 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B98C8 7F084D98 E46A0000 */ swc1 $f10, ($v1) +/* 0B98CC 7F084D9C C4600000 */ lwc1 $f0, ($v1) +/* 0B98D0 7F084DA0 44815000 */ mtc1 $at, $f10 +/* 0B98D4 7F084DA4 46006406 */ mov.s $f16, $f12 +/* 0B98D8 7F084DA8 4600703E */ c.le.s $f14, $f0 +/* 0B98DC 7F084DAC 00000000 */ nop +/* 0B98E0 7F084DB0 45020005 */ bc1fl .L7F084DC8 +/* 0B98E4 7F084DB4 4614003C */ c.lt.s $f0, $f20 +/* 0B98E8 7F084DB8 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B98EC 7F084DBC E4680000 */ swc1 $f8, ($v1) +/* 0B98F0 7F084DC0 C4600000 */ lwc1 $f0, ($v1) +/* 0B98F4 7F084DC4 4614003C */ c.lt.s $f0, $f20 +.L7F084DC8: +/* 0B98F8 7F084DC8 00000000 */ nop +/* 0B98FC 7F084DCC 45020005 */ bc1fl .L7F084DE4 +/* 0B9900 7F084DD0 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9904 7F084DD4 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9908 7F084DD8 E4660000 */ swc1 $f6, ($v1) +/* 0B990C 7F084DDC C4600000 */ lwc1 $f0, ($v1) +/* 0B9910 7F084DE0 C504014C */ lwc1 $f4, 0x14c($t0) +.L7F084DE4: +/* 0B9914 7F084DE4 3C018005 */ lui $at, %hi(D_80055184) +/* 0B9918 7F084DE8 C4265184 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0B991C 7F084DEC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9920 7F084DF0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9924 7F084DF4 44815000 */ mtc1 $at, $f10 +/* 0B9928 7F084DF8 3C018005 */ lui $at, %hi(D_80055188) +/* 0B992C 7F084DFC 46064102 */ mul.s $f4, $f8, $f6 +/* 0B9930 7F084E00 00000000 */ nop +/* 0B9934 7F084E04 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9938 7F084E08 46004080 */ add.s $f2, $f8, $f0 +/* 0B993C 7F084E0C 4614103C */ c.lt.s $f2, $f20 +/* 0B9940 7F084E10 00000000 */ nop +/* 0B9944 7F084E14 45000002 */ bc1f .L7F084E20 +/* 0B9948 7F084E18 00000000 */ nop +/* 0B994C 7F084E1C 460E1080 */ add.s $f2, $f2, $f14 +.L7F084E20: +/* 0B9950 7F084E20 4602703E */ c.le.s $f14, $f2 +/* 0B9954 7F084E24 00000000 */ nop +/* 0B9958 7F084E28 45020003 */ bc1fl .L7F084E38 +/* 0B995C 7F084E2C 460C1001 */ sub.s $f0, $f2, $f12 +/* 0B9960 7F084E30 460E1081 */ sub.s $f2, $f2, $f14 +/* 0B9964 7F084E34 460C1001 */ sub.s $f0, $f2, $f12 +.L7F084E38: +/* 0B9968 7F084E38 C4265188 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0B996C 7F084E3C 3C018005 */ lui $at, %hi(D_80055190) +/* 0B9970 7F084E40 4600303E */ c.le.s $f6, $f0 +/* 0B9974 7F084E44 00000000 */ nop +/* 0B9978 7F084E48 45000005 */ bc1f .L7F084E60 +/* 0B997C 7F084E4C 00000000 */ nop +/* 0B9980 7F084E50 3C018005 */ lui $at, %hi(D_8005518C) +/* 0B9984 7F084E54 C424518C */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0B9988 7F084E58 10000009 */ b .L7F084E80 +/* 0B998C 7F084E5C 46041081 */ sub.s $f2, $f2, $f4 +.L7F084E60: +/* 0B9990 7F084E60 C42A5190 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0B9994 7F084E64 3C018005 */ lui $at, %hi(D_80055194) +/* 0B9998 7F084E68 460A003C */ c.lt.s $f0, $f10 +/* 0B999C 7F084E6C 00000000 */ nop +/* 0B99A0 7F084E70 45000003 */ bc1f .L7F084E80 +/* 0B99A4 7F084E74 00000000 */ nop +/* 0B99A8 7F084E78 C4285194 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0B99AC 7F084E7C 46081080 */ add.s $f2, $f2, $f8 +.L7F084E80: +/* 0B99B0 7F084E80 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B99B4 7F084E84 00001025 */ move $v0, $zero +/* 0B99B8 7F084E88 3C018005 */ lui $at, %hi(D_80055198) +/* 0B99BC 7F084E8C 18800013 */ blez $a0, .L7F084EDC +/* 0B99C0 7F084E90 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B99C4 7F084E94 C42E5198 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0B99C8 7F084E98 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B99CC 7F084E9C C60C0000 */ lwc1 $f12, ($s0) +/* 0B99D0 7F084EA0 24420001 */ addiu $v0, $v0, 1 +/* 0B99D4 7F084EA4 0044082A */ slt $at, $v0, $a0 +/* 0B99D8 7F084EA8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99DC 7F084EAC 5020000A */ beql $at, $zero, .L7F084ED8 +/* 0B99E0 7F084EB0 46029300 */ add.s $f12, $f18, $f2 +/* 0B99E4 7F084EB4 46029300 */ add.s $f12, $f18, $f2 +.L7F084EB8: +/* 0B99E8 7F084EB8 24420001 */ addiu $v0, $v0, 1 +/* 0B99EC 7F084EBC 0044082A */ slt $at, $v0, $a0 +/* 0B99F0 7F084EC0 E60C0000 */ swc1 $f12, ($s0) +/* 0B99F4 7F084EC4 C60C0000 */ lwc1 $f12, ($s0) +/* 0B99F8 7F084EC8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99FC 7F084ECC 5420FFFA */ bnezl $at, .L7F084EB8 +/* 0B9A00 7F084ED0 46029300 */ add.s $f12, $f18, $f2 +/* 0B9A04 7F084ED4 46029300 */ add.s $f12, $f18, $f2 +.L7F084ED8: +/* 0B9A08 7F084ED8 E60C0000 */ swc1 $f12, ($s0) +.L7F084EDC: +/* 0B9A0C 7F084EDC 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B9A10 7F084EE0 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B9A14 7F084EE4 3C018005 */ lui $at, %hi(D_8005519C) +/* 0B9A18 7F084EE8 C420519C */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0B9A1C 7F084EEC C6080000 */ lwc1 $f8, ($s0) +/* 0B9A20 7F084EF0 3C018005 */ lui $at, %hi(D_800551A0) +/* 0B9A24 7F084EF4 C42251A0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0B9A28 7F084EF8 46004182 */ mul.s $f6, $f8, $f0 +/* 0B9A2C 7F084EFC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9A30 7F084F00 3C068003 */ lui $a2, %hi(D_80036464) +/* 0B9A34 7F084F04 E4E60000 */ swc1 $f6, ($a3) +/* 0B9A38 7F084F08 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A3C 7F084F0C 460C103E */ c.le.s $f2, $f12 +/* 0B9A40 7F084F10 00000000 */ nop +/* 0B9A44 7F084F14 45020007 */ bc1fl .L7F084F34 +/* 0B9A48 7F084F18 4614603C */ c.lt.s $f12, $f20 +/* 0B9A4C 7F084F1C 46026101 */ sub.s $f4, $f12, $f2 +/* 0B9A50 7F084F20 E4E40000 */ swc1 $f4, ($a3) +/* 0B9A54 7F084F24 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A58 7F084F28 46006283 */ div.s $f10, $f12, $f0 +/* 0B9A5C 7F084F2C E60A0000 */ swc1 $f10, ($s0) +/* 0B9A60 7F084F30 4614603C */ c.lt.s $f12, $f20 +.L7F084F34: +/* 0B9A64 7F084F34 00000000 */ nop +/* 0B9A68 7F084F38 45020007 */ bc1fl .L7F084F58 +/* 0B9A6C 7F084F3C 8D050488 */ lw $a1, 0x488($t0) +/* 0B9A70 7F084F40 46026200 */ add.s $f8, $f12, $f2 +/* 0B9A74 7F084F44 E4E80000 */ swc1 $f8, ($a3) +/* 0B9A78 7F084F48 C4E60000 */ lwc1 $f6, ($a3) +/* 0B9A7C 7F084F4C 46003103 */ div.s $f4, $f6, $f0 +/* 0B9A80 7F084F50 E6040000 */ swc1 $f4, ($s0) +/* 0B9A84 7F084F54 8D050488 */ lw $a1, 0x488($t0) +.L7F084F58: +/* 0B9A88 7F084F58 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0B9A8C 7F084F5C 0FC1F36A */ jal sub_GAME_7F07CDA8 +/* 0B9A90 7F084F60 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0B9A94 7F084F64 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B9A98 7F084F68 3C018005 */ lui $at, %hi(D_800551A8) +/* 0B9A9C 7F084F6C C42E51A8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0B9AA0 7F084F70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B9AA4 7F084F74 14400009 */ bnez $v0, .L7F084F9C +/* 0B9AA8 7F084F78 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0B9AAC 7F084F7C 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9AB0 7F084F80 E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 0B9AB4 7F084F84 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0B9AB8 7F084F88 3C018005 */ lui $at, %hi(D_800551AC) +/* 0B9ABC 7F084F8C C42851AC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0B9AC0 7F084F90 E4700000 */ swc1 $f16, ($v1) +/* 0B9AC4 7F084F94 46085183 */ div.s $f6, $f10, $f8 +/* 0B9AC8 7F084F98 E6060000 */ swc1 $f6, ($s0) +.L7F084F9C: +/* 0B9ACC 7F084F9C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9AD0 7F084FA0 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9AD4 7F084FA4 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9AD8 7F084FA8 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9ADC 7F084FAC 1060002F */ beqz $v1, .L7F08506C +/* 0B9AE0 7F084FB0 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0B9AE4 7F084FB4 8C6F0004 */ lw $t7, 4($v1) +/* 0B9AE8 7F084FB8 C4440000 */ lwc1 $f4, ($v0) +/* 0B9AEC 7F084FBC C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9AF0 7F084FC0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9AF4 7F084FC4 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0B9AF8 7F084FC8 02002825 */ move $a1, $s0 +/* 0B9AFC 7F084FCC AFAF0300 */ sw $t7, 0x300($sp) +/* 0B9B00 7F084FD0 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B04 7F084FD4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B08 7F084FD8 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0B9B0C 7F084FDC 02002025 */ move $a0, $s0 +/* 0B9B10 7F084FE0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B14 7F084FE4 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B18 7F084FE8 0FC1F1ED */ jal sub_GAME_7F07C7B4 +/* 0B9B1C 7F084FEC 00000000 */ nop +/* 0B9B20 7F084FF0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9B24 7F084FF4 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9B28 7F084FF8 C4480000 */ lwc1 $f8, ($v0) +/* 0B9B2C 7F084FFC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0B9B30 7F085000 C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9B34 7F085004 3C018005 */ lui $at, %hi(D_800551BC) +/* 0B9B38 7F085008 46064101 */ sub.s $f4, $f8, $f6 +/* 0B9B3C 7F08500C C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0B9B40 7F085010 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9B44 7F085014 02002825 */ move $a1, $s0 +/* 0B9B48 7F085018 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B4C 7F08501C 46085181 */ sub.s $f6, $f10, $f8 +/* 0B9B50 7F085020 C42451BC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0B9B54 7F085024 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9B58 7F085028 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9B5C 7F08502C E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0B9B60 7F085030 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B64 7F085034 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9B68 7F085038 8FAB0300 */ lw $t3, 0x300($sp) +/* 0B9B6C 7F08503C 02002825 */ move $a1, $s0 +/* 0B9B70 7F085040 8D780014 */ lw $t8, 0x14($t3) +/* 0B9B74 7F085044 0FC1629F */ jal matrix_scalar_multiply +/* 0B9B78 7F085048 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B9B7C 7F08504C 02002025 */ move $a0, $s0 +/* 0B9B80 7F085050 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B84 7F085054 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B88 7F085058 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0B9B8C 7F08505C 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9B90 7F085060 24050001 */ li $a1, 1 +/* 0B9B94 7F085064 3C018005 */ lui $at, %hi(D_800551CC) +/* 0B9B98 7F085068 C42E51CC */ lwc1 $f14, %lo(D_800551CC)($at) +.L7F08506C: +/* 0B9B9C 7F08506C 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B9BA0 7F085070 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B9BA4 7F085074 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9BA8 7F085078 C42C6474 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0B9BAC 7F08507C 5880001B */ blezl $a0, .L7F0850EC +/* 0B9BB0 7F085080 3C0143B4 */ lui $at, 0x43b4 +/* 0B9BB4 7F085084 18800018 */ blez $a0, .L7F0850E8 +/* 0B9BB8 7F085088 00001025 */ move $v0, $zero +/* 0B9BBC 7F08508C 3C018003 */ lui $at, %hi(D_80036488) +/* 0B9BC0 7F085090 C4286488 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0B9BC4 7F085094 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9BC8 7F085098 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9BCC 7F08509C 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9BD0 7F0850A0 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9BD4 7F0850A4 46064003 */ div.s $f0, $f8, $f6 +/* 0B9BD8 7F0850A8 C4700000 */ lwc1 $f16, ($v1) +/* 0B9BDC 7F0850AC 24420001 */ addiu $v0, $v0, 1 +/* 0B9BE0 7F0850B0 0044082A */ slt $at, $v0, $a0 +/* 0B9BE4 7F0850B4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9BE8 7F0850B8 5020000A */ beql $at, $zero, .L7F0850E4 +/* 0B9BEC 7F0850BC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9BF0 7F0850C0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850C4: +/* 0B9BF4 7F0850C4 24420001 */ addiu $v0, $v0, 1 +/* 0B9BF8 7F0850C8 0044082A */ slt $at, $v0, $a0 +/* 0B9BFC 7F0850CC E4700000 */ swc1 $f16, ($v1) +/* 0B9C00 7F0850D0 C4700000 */ lwc1 $f16, ($v1) +/* 0B9C04 7F0850D4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9C08 7F0850D8 5420FFFA */ bnezl $at, .L7F0850C4 +/* 0B9C0C 7F0850DC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9C10 7F0850E0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850E4: +/* 0B9C14 7F0850E4 E4700000 */ swc1 $f16, ($v1) +.L7F0850E8: +/* 0B9C18 7F0850E8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F0850EC: +/* 0B9C1C 7F0850EC 44817000 */ mtc1 $at, $f14 +/* 0B9C20 7F0850F0 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9C24 7F0850F4 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9C28 7F0850F8 3C018005 */ lui $at, %hi(D_800551D0) +/* 0B9C2C 7F0850FC C42451D0 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0B9C30 7F085100 C4660000 */ lwc1 $f6, ($v1) +/* 0B9C34 7F085104 8E280000 */ lw $t0, ($s1) +/* 0B9C38 7F085108 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9C3C 7F08510C 46043082 */ mul.s $f2, $f6, $f4 +/* 0B9C40 7F085110 44814000 */ mtc1 $at, $f8 +/* 0B9C44 7F085114 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9C48 7F085118 3C018005 */ lui $at, %hi(D_800551D4) +/* 0B9C4C 7F08511C C42451D4 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0B9C50 7F085120 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C54 7F085124 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C58 7F085128 44814000 */ mtc1 $at, $f8 +/* 0B9C5C 7F08512C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9C60 7F085130 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9C64 7F085134 C4246464 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0B9C68 7F085138 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C6C 7F08513C 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C70 7F085140 460C2280 */ add.s $f10, $f4, $f12 +/* 0B9C74 7F085144 44812000 */ mtc1 $at, $f4 +/* 0B9C78 7F085148 3C018005 */ lui $at, %hi(D_800551D8) +/* 0B9C7C 7F08514C 46065200 */ add.s $f8, $f10, $f6 +/* 0B9C80 7F085150 46041282 */ mul.s $f10, $f2, $f4 +/* 0B9C84 7F085154 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9C88 7F085158 C42851D8 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0B9C8C 7F08515C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9C90 7F085160 46082283 */ div.s $f10, $f4, $f8 +/* 0B9C94 7F085164 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0B9C98 7F085168 8E280000 */ lw $t0, ($s1) +/* 0B9C9C 7F08516C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CA0 7F085170 4614003C */ c.lt.s $f0, $f20 +/* 0B9CA4 7F085174 00000000 */ nop +/* 0B9CA8 7F085178 4502000A */ bc1fl .L7F0851A4 +/* 0B9CAC 7F08517C 4600703E */ c.le.s $f14, $f0 +/* 0B9CB0 7F085180 460E0180 */ add.s $f6, $f0, $f14 +.L7F085184: +/* 0B9CB4 7F085184 E5060148 */ swc1 $f6, 0x148($t0) +/* 0B9CB8 7F085188 8E280000 */ lw $t0, ($s1) +/* 0B9CBC 7F08518C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CC0 7F085190 4614003C */ c.lt.s $f0, $f20 +/* 0B9CC4 7F085194 00000000 */ nop +/* 0B9CC8 7F085198 4503FFFA */ bc1tl .L7F085184 +/* 0B9CCC 7F08519C 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9CD0 7F0851A0 4600703E */ c.le.s $f14, $f0 +.L7F0851A4: +/* 0B9CD4 7F0851A4 00000000 */ nop +/* 0B9CD8 7F0851A8 45000009 */ bc1f .L7F0851D0 +/* 0B9CDC 7F0851AC 00000000 */ nop +/* 0B9CE0 7F0851B0 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851B4: +/* 0B9CE4 7F0851B4 E5040148 */ swc1 $f4, 0x148($t0) +/* 0B9CE8 7F0851B8 8E280000 */ lw $t0, ($s1) +/* 0B9CEC 7F0851BC C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CF0 7F0851C0 4600703E */ c.le.s $f14, $f0 +/* 0B9CF4 7F0851C4 00000000 */ nop +/* 0B9CF8 7F0851C8 4503FFFA */ bc1tl .L7F0851B4 +/* 0B9CFC 7F0851CC 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851D0: +/* 0B9D00 7F0851D0 10000022 */ b .L7F08525C +/* 0B9D04 7F0851D4 00000000 */ nop +.L7F0851D8: +/* 0B9D08 7F0851D8 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0B9D0C 7F0851DC C52A0000 */ lwc1 $f10, ($t1) +/* 0B9D10 7F0851E0 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9D14 7F0851E4 44812000 */ mtc1 $at, $f4 +/* 0B9D18 7F0851E8 460A4182 */ mul.s $f6, $f8, $f10 +/* 0B9D1C 7F0851EC C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0B9D20 7F0851F0 3C0143B4 */ lui $at, 0x43b4 +/* 0B9D24 7F0851F4 46043202 */ mul.s $f8, $f6, $f4 +/* 0B9D28 7F0851F8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9D2C 7F0851FC 4614003C */ c.lt.s $f0, $f20 +/* 0B9D30 7F085200 00000000 */ nop +/* 0B9D34 7F085204 45020009 */ bc1fl .L7F08522C +/* 0B9D38 7F085208 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9D3C 7F08520C 44817000 */ mtc1 $at, $f14 +/* 0B9D40 7F085210 00000000 */ nop +/* 0B9D44 7F085214 460E0000 */ add.s $f0, $f0, $f14 +.L7F085218: +/* 0B9D48 7F085218 4614003C */ c.lt.s $f0, $f20 +/* 0B9D4C 7F08521C 00000000 */ nop +/* 0B9D50 7F085220 4503FFFD */ bc1tl .L7F085218 +/* 0B9D54 7F085224 460E0000 */ add.s $f0, $f0, $f14 +/* 0B9D58 7F085228 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F08522C: +/* 0B9D5C 7F08522C 44817000 */ mtc1 $at, $f14 +/* 0B9D60 7F085230 00000000 */ nop +/* 0B9D64 7F085234 4600703E */ c.le.s $f14, $f0 +/* 0B9D68 7F085238 00000000 */ nop +/* 0B9D6C 7F08523C 45020007 */ bc1fl .L7F08525C +/* 0B9D70 7F085240 E5000148 */ swc1 $f0, 0x148($t0) +/* 0B9D74 7F085244 460E0001 */ sub.s $f0, $f0, $f14 +.L7F085248: +/* 0B9D78 7F085248 4600703E */ c.le.s $f14, $f0 +/* 0B9D7C 7F08524C 00000000 */ nop +/* 0B9D80 7F085250 4503FFFD */ bc1tl .L7F085248 +/* 0B9D84 7F085254 460E0001 */ sub.s $f0, $f0, $f14 +/* 0B9D88 7F085258 E5000148 */ swc1 $f0, 0x148($t0) +.L7F08525C: +/* 0B9D8C 7F08525C 0FC205E4 */ jal sub_GAME_7F081790 +/* 0B9D90 7F085260 00000000 */ nop +/* 0B9D94 7F085264 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9D98 7F085268 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0B9D9C 7F08526C 14400004 */ bnez $v0, .L7F085280 +/* 0B9DA0 7F085270 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0B9DA4 7F085274 44813000 */ mtc1 $at, $f6 +/* 0B9DA8 7F085278 1000000B */ b .L7F0852A8 +/* 0B9DAC 7F08527C E7A602AC */ swc1 $f6, 0x2ac($sp) +.L7F085280: +/* 0B9DB0 7F085280 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9DB4 7F085284 00000000 */ nop +/* 0B9DB8 7F085288 24010001 */ li $at, 1 +/* 0B9DBC 7F08528C 14410004 */ bne $v0, $at, .L7F0852A0 +/* 0B9DC0 7F085290 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0B9DC4 7F085294 44812000 */ mtc1 $at, $f4 +/* 0B9DC8 7F085298 10000003 */ b .L7F0852A8 +/* 0B9DCC 7F08529C E7A402AC */ swc1 $f4, 0x2ac($sp) +.L7F0852A0: +/* 0B9DD0 7F0852A0 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9DD4 7F0852A4 00000000 */ nop +.L7F0852A8: +/* 0B9DD8 7F0852A8 8E280000 */ lw $t0, ($s1) +/* 0B9DDC 7F0852AC C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0B9DE0 7F0852B0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9DE4 7F0852B4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9DE8 7F0852B8 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0B9DEC 7F0852BC 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0B9DF0 7F0852C0 46005032 */ c.eq.s $f10, $f0 +/* 0B9DF4 7F0852C4 00000000 */ nop +/* 0B9DF8 7F0852C8 4503000C */ bc1tl .L7F0852FC +/* 0B9DFC 7F0852CC C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0B9E00 7F0852D0 44810000 */ mtc1 $at, $f0 +/* 0B9E04 7F0852D4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B9E08 7F0852D8 44814000 */ mtc1 $at, $f8 +/* 0B9E0C 7F0852DC 44055000 */ mfc1 $a1, $f10 +/* 0B9E10 7F0852E0 44070000 */ mfc1 $a3, $f0 +/* 0B9E14 7F0852E4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0B9E18 7F0852E8 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 0B9E1C 7F0852EC E7A80014 */ swc1 $f8, 0x14($sp) +/* 0B9E20 7F0852F0 8E280000 */ lw $t0, ($s1) +/* 0B9E24 7F0852F4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9E28 7F0852F8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.L7F0852FC: +/* 0B9E2C 7F0852FC 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0B9E30 7F085300 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B9E34 7F085304 46003032 */ c.eq.s $f6, $f0 +/* 0B9E38 7F085308 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0B9E3C 7F08530C 45000002 */ bc1f .L7F085318 +/* 0B9E40 7F085310 00000000 */ nop +/* 0B9E44 7F085314 E51400A4 */ swc1 $f20, 0xa4($t0) +.L7F085318: +/* 0B9E48 7F085318 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B9E4C 7F08531C 24010001 */ li $at, 1 +/* 0B9E50 7F085320 15810209 */ bne $t4, $at, .L7F085B48 +/* 0B9E54 7F085324 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) +/* 0B9E58 7F085328 8C4299B8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0B9E5C 7F08532C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9E60 7F085330 24010001 */ li $at, 1 +/* 0B9E64 7F085334 144000BF */ bnez $v0, .L7F085634 +/* 0B9E68 7F085338 00000000 */ nop +/* 0B9E6C 7F08533C 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9E70 7F085340 3C018005 */ lui $at, %hi(D_800551DC) +/* 0B9E74 7F085344 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9E78 7F085348 106000AD */ beqz $v1, .L7F085600 +/* 0B9E7C 7F08534C 00000000 */ nop +/* 0B9E80 7F085350 C42451DC */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0B9E84 7F085354 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9E88 7F085358 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9E8C 7F08535C 8C700004 */ lw $s0, 4($v1) +/* 0B9E90 7F085360 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9E94 7F085364 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9E98 7F085368 8E190014 */ lw $t9, 0x14($s0) +/* 0B9E9C 7F08536C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9EA0 7F085370 0FC1629F */ jal matrix_scalar_multiply +/* 0B9EA4 7F085374 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0B9EA8 7F085378 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9EAC 7F08537C 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9EB0 7F085380 C4480000 */ lwc1 $f8, ($v0) +/* 0B9EB4 7F085384 C4460004 */ lwc1 $f6, 4($v0) +/* 0B9EB8 7F085388 C4440008 */ lwc1 $f4, 8($v0) +/* 0B9EBC 7F08538C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0B9EC0 7F085390 27A5025C */ addiu $a1, $sp, 0x25c +/* 0B9EC4 7F085394 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0B9EC8 7F085398 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0B9ECC 7F08539C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9ED0 7F0853A0 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0B9ED4 7F0853A4 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0B9ED8 7F0853A8 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0B9EDC 7F0853AC C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0B9EE0 7F0853B0 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B9EE4 7F0853B4 46085180 */ add.s $f6, $f10, $f8 +/* 0B9EE8 7F0853B8 44810000 */ mtc1 $at, $f0 +/* 0B9EEC 7F0853BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9EF0 7F0853C0 44817000 */ mtc1 $at, $f14 +/* 0B9EF4 7F0853C4 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0B9EF8 7F0853C8 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0B9EFC 7F0853CC C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0B9F00 7F0853D0 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9F04 7F0853D4 460A2200 */ add.s $f8, $f4, $f10 +/* 0B9F08 7F0853D8 8E2A0000 */ lw $t2, ($s1) +/* 0B9F0C 7F0853DC E7A80260 */ swc1 $f8, 0x260($sp) +/* 0B9F10 7F0853E0 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0B9F14 7F0853E4 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9F18 7F0853E8 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9F1C 7F0853EC 46043280 */ add.s $f10, $f6, $f4 +/* 0B9F20 7F0853F0 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B9F24 7F0853F4 3C018005 */ lui $at, %hi(D_800551E0) +/* 0B9F28 7F0853F8 46064100 */ add.s $f4, $f8, $f6 +/* 0B9F2C 7F0853FC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0B9F30 7F085400 C5420158 */ lwc1 $f2, 0x158($t2) +/* 0B9F34 7F085404 C42851E0 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0B9F38 7F085408 460E2282 */ mul.s $f10, $f4, $f14 +/* 0B9F3C 7F08540C 4600103C */ c.lt.s $f2, $f0 +/* 0B9F40 7F085410 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9F44 7F085414 44819000 */ mtc1 $at, $f18 +/* 0B9F48 7F085418 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9F4C 7F08541C 45000002 */ bc1f .L7F085428 +/* 0B9F50 7F085420 46085403 */ div.s $f16, $f10, $f8 +/* 0B9F54 7F085424 46000086 */ mov.s $f2, $f0 +.L7F085428: +/* 0B9F58 7F085428 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9F5C 7F08542C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B9F60 7F085430 44812000 */ mtc1 $at, $f4 +/* 0B9F64 7F085434 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0B9F68 7F085438 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0B9F6C 7F08543C 46043283 */ div.s $f10, $f6, $f4 +/* 0B9F70 7F085440 C6080000 */ lwc1 $f8, ($s0) +/* 0B9F74 7F085444 3C018005 */ lui $at, %hi(D_800551E4) +/* 0B9F78 7F085448 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9F7C 7F08544C E6060000 */ swc1 $f6, ($s0) +/* 0B9F80 7F085450 C6000000 */ lwc1 $f0, ($s0) +/* 0B9F84 7F085454 4600903E */ c.le.s $f18, $f0 +/* 0B9F88 7F085458 00000000 */ nop +/* 0B9F8C 7F08545C 45000003 */ bc1f .L7F08546C +/* 0B9F90 7F085460 00000000 */ nop +/* 0B9F94 7F085464 E6120000 */ swc1 $f18, ($s0) +/* 0B9F98 7F085468 C6000000 */ lwc1 $f0, ($s0) +.L7F08546C: +/* 0B9F9C 7F08546C C42451E4 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0B9FA0 7F085470 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FA4 7F085474 44815000 */ mtc1 $at, $f10 +/* 0B9FA8 7F085478 46040202 */ mul.s $f8, $f0, $f4 +/* 0B9FAC 7F08547C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0B9FB0 7F085480 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0B9FB4 7F085484 460A4302 */ mul.s $f12, $f8, $f10 +/* 0B9FB8 7F085488 0FC15FA8 */ jal cosf +/* 0B9FBC 7F08548C 00000000 */ nop +/* 0B9FC0 7F085490 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9FC4 7F085494 44817000 */ mtc1 $at, $f14 +/* 0B9FC8 7F085498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FCC 7F08549C 44813000 */ mtc1 $at, $f6 +/* 0B9FD0 7F0854A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FD4 7F0854A4 44814000 */ mtc1 $at, $f8 +/* 0B9FD8 7F0854A8 46060100 */ add.s $f4, $f0, $f6 +/* 0B9FDC 7F0854AC 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) +/* 0B9FE0 7F0854B0 244299C0 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6640 +/* 0B9FE4 7F0854B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FE8 7F0854B8 46082282 */ mul.s $f10, $f4, $f8 +/* 0B9FEC 7F0854BC 44813000 */ mtc1 $at, $f6 +/* 0B9FF0 7F0854C0 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0B9FF4 7F0854C4 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) +/* 0B9FF8 7F0854C8 8E2D0000 */ lw $t5, ($s1) +/* 0B9FFC 7F0854CC C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA000 7F0854D0 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) +/* 0BA004 7F0854D4 E44A0000 */ swc1 $f10, ($v0) +/* 0BA008 7F0854D8 C4420000 */ lwc1 $f2, ($v0) +/* 0BA00C 7F0854DC 246399D0 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x6630 +/* 0BA010 7F0854E0 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA014 7F0854E4 C42699C8 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA018 7F0854E8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) +/* 0BA01C 7F0854EC 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA020 7F0854F0 00000000 */ nop +/* 0BA024 7F0854F4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA028 7F0854F8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA02C 7F0854FC E5A80158 */ swc1 $f8, 0x158($t5) +/* 0BA030 7F085500 C43299C4 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA034 7F085504 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA038 7F085508 44813000 */ mtc1 $at, $f6 +/* 0BA03C 7F08550C 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA040 7F085510 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA044 7F085514 44812000 */ mtc1 $at, $f4 +/* 0BA048 7F085518 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA04C 7F08551C 460C303C */ c.lt.s $f6, $f12 +/* 0BA050 7F085520 44814000 */ mtc1 $at, $f8 +/* 0BA054 7F085524 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA058 7F085528 45000002 */ bc1f .L7F085534 +/* 0BA05C 7F08552C 00000000 */ nop +/* 0BA060 7F085530 460E8401 */ sub.s $f16, $f16, $f14 +.L7F085534: +/* 0BA064 7F085534 4604603C */ c.lt.s $f12, $f4 +/* 0BA068 7F085538 00000000 */ nop +/* 0BA06C 7F08553C 45020003 */ bc1fl .L7F08554C +/* 0BA070 7F085540 C4420000 */ lwc1 $f2, ($v0) +/* 0BA074 7F085544 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA078 7F085548 C4420000 */ lwc1 $f2, ($v0) +.L7F08554C: +/* 0BA07C 7F08554C 8E2E0000 */ lw $t6, ($s1) +/* 0BA080 7F085550 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA084 7F085554 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA088 7F085558 00000000 */ nop +/* 0BA08C 7F08555C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA090 7F085560 46045200 */ add.s $f8, $f10, $f4 +/* 0BA094 7F085564 44812000 */ mtc1 $at, $f4 +/* 0BA098 7F085568 E5C80148 */ swc1 $f8, 0x148($t6) +/* 0BA09C 7F08556C 8E280000 */ lw $t0, ($s1) +/* 0BA0A0 7F085570 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA0A4 7F085574 4600703E */ c.le.s $f14, $f0 +/* 0BA0A8 7F085578 00000000 */ nop +/* 0BA0AC 7F08557C 45000005 */ bc1f .L7F085594 +/* 0BA0B0 7F085580 00000000 */ nop +/* 0BA0B4 7F085584 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA0B8 7F085588 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA0BC 7F08558C 8E280000 */ lw $t0, ($s1) +/* 0BA0C0 7F085590 C5000148 */ lwc1 $f0, 0x148($t0) +.L7F085594: +/* 0BA0C4 7F085594 4614003C */ c.lt.s $f0, $f20 +/* 0BA0C8 7F085598 00000000 */ nop +/* 0BA0CC 7F08559C 45020005 */ bc1fl .L7F0855B4 +/* 0BA0D0 7F0855A0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA0D4 7F0855A4 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA0D8 7F0855A8 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA0DC 7F0855AC 8E280000 */ lw $t0, ($s1) +/* 0BA0E0 7F0855B0 C4420000 */ lwc1 $f2, ($v0) +.L7F0855B4: +/* 0BA0E4 7F0855B4 C4680000 */ lwc1 $f8, ($v1) +/* 0BA0E8 7F0855B8 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA0EC 7F0855BC 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA0F0 7F0855C0 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA0F4 7F0855C4 00000000 */ nop +/* 0BA0F8 7F0855C8 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA0FC 7F0855CC C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA100 7F0855D0 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA104 7F0855D4 46043200 */ add.s $f8, $f6, $f4 +/* 0BA108 7F0855D8 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA10C 7F0855DC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA110 7F0855E0 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA114 7F0855E4 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA118 7F0855E8 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA11C 7F0855EC 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA120 7F0855F0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA124 7F0855F4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA128 7F0855F8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA12C 7F0855FC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.L7F085600: +/* 0BA130 7F085600 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0BA134 7F085604 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0BA138 7F085608 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA13C 7F08560C 44812000 */ mtc1 $at, $f4 +/* 0BA140 7F085610 C6060000 */ lwc1 $f6, ($s0) +/* 0BA144 7F085614 8E280000 */ lw $t0, ($s1) +/* 0BA148 7F085618 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA14C 7F08561C 4606203E */ c.le.s $f4, $f6 +/* 0BA150 7F085620 240F0001 */ li $t7, 1 +/* 0BA154 7F085624 450200EF */ bc1fl .L7F0859E4 +/* 0BA158 7F085628 3C013F40 */ lui $at, %hi(0x3F3F99B8) # $at, 0x3f40 +/* 0BA15C 7F08562C 100000EC */ b .L7F0859E0 +/* 0BA160 7F085630 AC2F99B8 */ sw $t7, %lo(dword_CODE_bss_800799B8)($at) +.L7F085634: +/* 0BA164 7F085634 1441001A */ bne $v0, $at, .L7F0856A0 +/* 0BA168 7F085638 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA16C 7F08563C 240B0002 */ li $t3, 2 +/* 0BA170 7F085640 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA174 7F085644 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA178 7F085648 AC2B99B8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA17C 7F08564C 8E180000 */ lw $t8, ($s0) +/* 0BA180 7F085650 5700000A */ bnezl $t8, .L7F08567C +/* 0BA184 7F085654 8E040000 */ lw $a0, ($s0) +/* 0BA188 7F085658 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA18C 7F08565C 00000000 */ nop +/* 0BA190 7F085660 14400005 */ bnez $v0, .L7F085678 +/* 0BA194 7F085664 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA198 7F085668 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA19C 7F08566C 24050042 */ li $a1, 66 +/* 0BA1A0 7F085670 0C002382 */ jal play_sfx_a1 +/* 0BA1A4 7F085674 02003025 */ move $a2, $s0 +.L7F085678: +/* 0BA1A8 7F085678 8E040000 */ lw $a0, ($s0) +.L7F08567C: +/* 0BA1AC 7F08567C 24050008 */ li $a1, 8 +/* 0BA1B0 7F085680 0C002461 */ jal sfx_c_70009184 +/* 0BA1B4 7F085684 240661A8 */ li $a2, 25000 +/* 0BA1B8 7F085688 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA1BC 7F08568C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA1C0 7F085690 240C61A8 */ li $t4, 25000 +/* 0BA1C4 7F085694 AC4C0000 */ sw $t4, ($v0) +/* 0BA1C8 7F085698 100000D1 */ b .L7F0859E0 +/* 0BA1CC 7F08569C 8E280000 */ lw $t0, ($s1) +.L7F0856A0: +/* 0BA1D0 7F0856A0 8E280000 */ lw $t0, ($s1) +/* 0BA1D4 7F0856A4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA1D8 7F0856A8 44814000 */ mtc1 $at, $f8 +/* 0BA1DC 7F0856AC C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA1E0 7F0856B0 3C018005 */ lui $at, %hi(D_800551E8) +/* 0BA1E4 7F0856B4 C42451E8 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA1E8 7F0856B8 46085003 */ div.s $f0, $f10, $f8 +/* 0BA1EC 7F0856BC C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA1F0 7F0856C0 46043083 */ div.s $f2, $f6, $f4 +/* 0BA1F4 7F0856C4 4614003C */ c.lt.s $f0, $f20 +/* 0BA1F8 7F0856C8 00000000 */ nop +/* 0BA1FC 7F0856CC 45020003 */ bc1fl .L7F0856DC +/* 0BA200 7F0856D0 4614103C */ c.lt.s $f2, $f20 +/* 0BA204 7F0856D4 46000007 */ neg.s $f0, $f0 +/* 0BA208 7F0856D8 4614103C */ c.lt.s $f2, $f20 +.L7F0856DC: +/* 0BA20C 7F0856DC 00000000 */ nop +/* 0BA210 7F0856E0 45020003 */ bc1fl .L7F0856F0 +/* 0BA214 7F0856E4 4602003C */ c.lt.s $f0, $f2 +/* 0BA218 7F0856E8 46001087 */ neg.s $f2, $f2 +/* 0BA21C 7F0856EC 4602003C */ c.lt.s $f0, $f2 +.L7F0856F0: +/* 0BA220 7F0856F0 46000306 */ mov.s $f12, $f0 +/* 0BA224 7F0856F4 45020003 */ bc1fl .L7F085704 +/* 0BA228 7F0856F8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA22C 7F0856FC 46001306 */ mov.s $f12, $f2 +/* 0BA230 7F085700 460CA03C */ c.lt.s $f20, $f12 +.L7F085704: +/* 0BA234 7F085704 00000000 */ nop +/* 0BA238 7F085708 45000043 */ bc1f .L7F085818 +/* 0BA23C 7F08570C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA240 7F085710 44815000 */ mtc1 $at, $f10 +/* 0BA244 7F085714 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA248 7F085718 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA24C 7F08571C 460C503C */ c.lt.s $f10, $f12 +/* 0BA250 7F085720 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA254 7F085724 45020004 */ bc1fl .L7F085738 +/* 0BA258 7F085728 8E190004 */ lw $t9, 4($s0) +/* 0BA25C 7F08572C 44816000 */ mtc1 $at, $f12 +/* 0BA260 7F085730 00000000 */ nop +/* 0BA264 7F085734 8E190004 */ lw $t9, 4($s0) +.L7F085738: +/* 0BA268 7F085738 5720000E */ bnezl $t9, .L7F085774 +/* 0BA26C 7F08573C 8E040004 */ lw $a0, 4($s0) +/* 0BA270 7F085740 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA274 7F085744 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA278 7F085748 14400009 */ bnez $v0, .L7F085770 +/* 0BA27C 7F08574C C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA280 7F085750 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA284 7F085754 3C068003 */ lui $a2, %hi(SFX_8003645C) +/* 0BA288 7F085758 24C6645C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x645c +/* 0BA28C 7F08575C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA290 7F085760 2405003E */ li $a1, 62 +/* 0BA294 7F085764 0C002382 */ jal play_sfx_a1 +/* 0BA298 7F085768 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA29C 7F08576C C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085770: +/* 0BA2A0 7F085770 8E040004 */ lw $a0, 4($s0) +.L7F085774: +/* 0BA2A4 7F085774 3C018005 */ lui $at, %hi(D_800551EC) +/* 0BA2A8 7F085778 24050008 */ li $a1, 8 +/* 0BA2AC 7F08577C 50800034 */ beql $a0, $zero, .L7F085850 +/* 0BA2B0 7F085780 8E0E0000 */ lw $t6, ($s0) +/* 0BA2B4 7F085784 C42051EC */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA2B8 7F085788 24067FFF */ li $a2, 32767 +/* 0BA2BC 7F08578C 3C018005 */ lui $at, %hi(D_800551F4) +/* 0BA2C0 7F085790 4600603C */ c.lt.s $f12, $f0 +/* 0BA2C4 7F085794 00000000 */ nop +/* 0BA2C8 7F085798 45000009 */ bc1f .L7F0857C0 +/* 0BA2CC 7F08579C 00000000 */ nop +/* 0BA2D0 7F0857A0 3C018005 */ lui $at, %hi(D_800551F0) +/* 0BA2D4 7F0857A4 C42851F0 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA2D8 7F0857A8 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA2DC 7F0857AC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA2E0 7F0857B0 4600228D */ trunc.w.s $f10, $f4 +/* 0BA2E4 7F0857B4 44065000 */ mfc1 $a2, $f10 +/* 0BA2E8 7F0857B8 10000013 */ b .L7F085808 +/* 0BA2EC 7F0857BC 00000000 */ nop +.L7F0857C0: +/* 0BA2F0 7F0857C0 C42851F4 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA2F4 7F0857C4 3C018005 */ lui $at, %hi(D_800551F8) +/* 0BA2F8 7F0857C8 4608603C */ c.lt.s $f12, $f8 +/* 0BA2FC 7F0857CC 00000000 */ nop +/* 0BA300 7F0857D0 4500000D */ bc1f .L7F085808 +/* 0BA304 7F0857D4 00000000 */ nop +/* 0BA308 7F0857D8 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA30C 7F0857DC C42451F8 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BA310 7F0857E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA314 7F0857E4 44814000 */ mtc1 $at, $f8 +/* 0BA318 7F0857E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA31C 7F0857EC 3C018005 */ lui $at, %hi(D_800551FC) +/* 0BA320 7F0857F0 C42451FC */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BA324 7F0857F4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA328 7F0857F8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA32C 7F0857FC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA330 7F085800 44064000 */ mfc1 $a2, $f8 +/* 0BA334 7F085804 00000000 */ nop +.L7F085808: +/* 0BA338 7F085808 0C002461 */ jal sfx_c_70009184 +/* 0BA33C 7F08580C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA340 7F085810 1000000E */ b .L7F08584C +/* 0BA344 7F085814 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085818: +/* 0BA348 7F085818 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA34C 7F08581C 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA350 7F085820 8E040004 */ lw $a0, 4($s0) +/* 0BA354 7F085824 5080000A */ beql $a0, $zero, .L7F085850 +/* 0BA358 7F085828 8E0E0000 */ lw $t6, ($s0) +/* 0BA35C 7F08582C 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA360 7F085830 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA364 7F085834 10400005 */ beqz $v0, .L7F08584C +/* 0BA368 7F085838 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA36C 7F08583C 8E040004 */ lw $a0, 4($s0) +/* 0BA370 7F085840 0C002408 */ jal sfxDeactivate +/* 0BA374 7F085844 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA378 7F085848 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F08584C: +/* 0BA37C 7F08584C 8E0E0000 */ lw $t6, ($s0) +.L7F085850: +/* 0BA380 7F085850 55C0000D */ bnezl $t6, .L7F085888 +/* 0BA384 7F085854 8E040000 */ lw $a0, ($s0) +/* 0BA388 7F085858 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA38C 7F08585C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA390 7F085860 14400008 */ bnez $v0, .L7F085884 +/* 0BA394 7F085864 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA398 7F085868 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA39C 7F08586C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA3A0 7F085870 24050041 */ li $a1, 65 +/* 0BA3A4 7F085874 02003025 */ move $a2, $s0 +/* 0BA3A8 7F085878 0C002382 */ jal play_sfx_a1 +/* 0BA3AC 7F08587C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA3B0 7F085880 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085884: +/* 0BA3B4 7F085884 8E040000 */ lw $a0, ($s0) +.L7F085888: +/* 0BA3B8 7F085888 1080001A */ beqz $a0, .L7F0858F4 +/* 0BA3BC 7F08588C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA3C0 7F085890 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA3C4 7F085894 240F7FFF */ li $t7, 32767 +/* 0BA3C8 7F085898 AC4F0000 */ sw $t7, ($v0) +/* 0BA3CC 7F08589C 3C018005 */ lui $at, %hi(D_80055200) +/* 0BA3D0 7F0858A0 C4265200 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BA3D4 7F0858A4 3C018005 */ lui $at, %hi(D_80055204) +/* 0BA3D8 7F0858A8 24050008 */ li $a1, 8 +/* 0BA3DC 7F0858AC 4606603C */ c.lt.s $f12, $f6 +/* 0BA3E0 7F0858B0 00000000 */ nop +/* 0BA3E4 7F0858B4 4500000D */ bc1f .L7F0858EC +/* 0BA3E8 7F0858B8 00000000 */ nop +/* 0BA3EC 7F0858BC C4245204 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BA3F0 7F0858C0 3C018005 */ lui $at, %hi(D_80055208) +/* 0BA3F4 7F0858C4 C4285208 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BA3F8 7F0858C8 46046282 */ mul.s $f10, $f12, $f4 +/* 0BA3FC 7F0858CC 3C018005 */ lui $at, %hi(D_8005520C) +/* 0BA400 7F0858D0 C424520C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BA404 7F0858D4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA408 7F0858D8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA40C 7F0858DC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA410 7F0858E0 44184000 */ mfc1 $t8, $f8 +/* 0BA414 7F0858E4 00000000 */ nop +/* 0BA418 7F0858E8 AC580000 */ sw $t8, ($v0) +.L7F0858EC: +/* 0BA41C 7F0858EC 0C002461 */ jal sfx_c_70009184 +/* 0BA420 7F0858F0 8C460000 */ lw $a2, ($v0) +.L7F0858F4: +/* 0BA424 7F0858F4 0FC17674 */ jal get_item_in_hand +/* 0BA428 7F0858F8 00002025 */ move $a0, $zero +/* 0BA42C 7F0858FC 24010020 */ li $at, 32 +/* 0BA430 7F085900 14410007 */ bne $v0, $at, .L7F085920 +/* 0BA434 7F085904 3C048005 */ lui $a0, %hi(clock_timer) +/* 0BA438 7F085908 8E280000 */ lw $t0, ($s1) +/* 0BA43C 7F08590C 3C018005 */ lui $at, %hi(D_80055210) +/* 0BA440 7F085910 C4265210 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BA444 7F085914 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BA448 7F085918 10000004 */ b .L7F08592C +/* 0BA44C 7F08591C 46061080 */ add.s $f2, $f2, $f6 +.L7F085920: +/* 0BA450 7F085920 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA454 7F085924 C422646C */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BA458 7F085928 8E280000 */ lw $t0, ($s1) +.L7F08592C: +/* 0BA45C 7F08592C 3C018005 */ lui $at, %hi(D_80055214) +/* 0BA460 7F085930 C4205214 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BA464 7F085934 3C018005 */ lui $at, %hi(D_80055218) +/* 0BA468 7F085938 4602003C */ c.lt.s $f0, $f2 +/* 0BA46C 7F08593C 00000000 */ nop +/* 0BA470 7F085940 45000002 */ bc1f .L7F08594C +/* 0BA474 7F085944 00000000 */ nop +/* 0BA478 7F085948 46000086 */ mov.s $f2, $f0 +.L7F08594C: +/* 0BA47C 7F08594C C4205218 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BA480 7F085950 4600103C */ c.lt.s $f2, $f0 +/* 0BA484 7F085954 00000000 */ nop +/* 0BA488 7F085958 45000002 */ bc1f .L7F085964 +/* 0BA48C 7F08595C 00000000 */ nop +/* 0BA490 7F085960 46000086 */ mov.s $f2, $f0 +.L7F085964: +/* 0BA494 7F085964 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA498 7F085968 00001025 */ move $v0, $zero +/* 0BA49C 7F08596C 18800014 */ blez $a0, .L7F0859C0 +/* 0BA4A0 7F085970 3C018005 */ lui $at, %hi(D_8005521C) +/* 0BA4A4 7F085974 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4A8 7F085978 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4AC 7F08597C C420521C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BA4B0 7F085980 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4B4 7F085984 24420001 */ addiu $v0, $v0, 1 +/* 0BA4B8 7F085988 0044082A */ slt $at, $v0, $a0 +/* 0BA4BC 7F08598C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4C0 7F085990 5020000A */ beql $at, $zero, .L7F0859BC +/* 0BA4C4 7F085994 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4C8 7F085998 46029400 */ add.s $f16, $f18, $f2 +.L7F08599C: +/* 0BA4CC 7F08599C 24420001 */ addiu $v0, $v0, 1 +/* 0BA4D0 7F0859A0 0044082A */ slt $at, $v0, $a0 +/* 0BA4D4 7F0859A4 E4700000 */ swc1 $f16, ($v1) +/* 0BA4D8 7F0859A8 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4DC 7F0859AC 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4E0 7F0859B0 5420FFFA */ bnezl $at, .L7F08599C +/* 0BA4E4 7F0859B4 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4E8 7F0859B8 46029400 */ add.s $f16, $f18, $f2 +.L7F0859BC: +/* 0BA4EC 7F0859BC E4700000 */ swc1 $f16, ($v1) +.L7F0859C0: +/* 0BA4F0 7F0859C0 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4F4 7F0859C4 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4F8 7F0859C8 3C018005 */ lui $at, %hi(D_80055220) +/* 0BA4FC 7F0859CC C4245220 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BA500 7F0859D0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA504 7F0859D4 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA508 7F0859D8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA50C 7F0859DC E42A646C */ swc1 $f10, %lo(D_8003646C)($at) +.L7F0859E0: +/* 0BA510 7F0859E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.L7F0859E4: +/* 0BA514 7F0859E4 44810000 */ mtc1 $at, $f0 +/* 0BA518 7F0859E8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA51C 7F0859EC C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA520 7F0859F0 3C018005 */ lui $at, %hi(D_80055224) +/* 0BA524 7F0859F4 C4245224 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BA528 7F0859F8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BA52C 7F0859FC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BA530 7F085A00 4406A000 */ mfc1 $a2, $f20 +/* 0BA534 7F085A04 4600A306 */ mov.s $f12, $f20 +/* 0BA538 7F085A08 46043283 */ div.s $f10, $f6, $f4 +/* 0BA53C 7F085A0C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA540 7F085A10 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA544 7F085A14 8E280000 */ lw $t0, ($s1) +/* 0BA548 7F085A18 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA54C 7F085A1C 4614203C */ c.lt.s $f4, $f20 +/* 0BA550 7F085A20 00000000 */ nop +/* 0BA554 7F085A24 45000002 */ bc1f .L7F085A30 +/* 0BA558 7F085A28 00000000 */ nop +/* 0BA55C 7F085A2C E514019C */ swc1 $f20, 0x19c($t0) +.L7F085A30: +/* 0BA560 7F085A30 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA564 7F085A34 4600A386 */ mov.s $f14, $f20 +/* 0BA568 7F085A38 3C018005 */ lui $at, %hi(D_80055228) +/* 0BA56C 7F085A3C C4285228 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BA570 7F085A40 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA574 7F085A44 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA578 7F085A48 0FC15FAB */ jal sinf +/* 0BA57C 7F085A4C 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BA580 7F085A50 8E2C0000 */ lw $t4, ($s1) +/* 0BA584 7F085A54 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA588 7F085A58 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA58C 7F085A5C C5860174 */ lwc1 $f6, 0x174($t4) +/* 0BA590 7F085A60 3C018005 */ lui $at, %hi(D_8005522C) +/* 0BA594 7F085A64 46003102 */ mul.s $f4, $f6, $f0 +/* 0BA598 7F085A68 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BA59C 7F085A6C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA5A0 7F085A70 C428522C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BA5A4 7F085A74 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA5A8 7F085A78 460A3100 */ add.s $f4, $f6, $f10 +/* 0BA5AC 7F085A7C C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BA5B0 7F085A80 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA5B4 7F085A84 0FC15FA8 */ jal cosf +/* 0BA5B8 7F085A88 46064301 */ sub.s $f12, $f8, $f6 +/* 0BA5BC 7F085A8C 8E390000 */ lw $t9, ($s1) +/* 0BA5C0 7F085A90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA5C4 7F085A94 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA5C8 7F085A98 C72A0174 */ lwc1 $f10, 0x174($t9) +/* 0BA5CC 7F085A9C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BA5D0 7F085AA0 24050001 */ li $a1, 1 +/* 0BA5D4 7F085AA4 46005102 */ mul.s $f4, $f10, $f0 +/* 0BA5D8 7F085AA8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA5DC 7F085AAC 46082182 */ mul.s $f6, $f4, $f8 +/* 0BA5E0 7F085AB0 46065100 */ add.s $f4, $f10, $f6 +/* 0BA5E4 7F085AB4 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BA5E8 7F085AB8 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BA5EC 7F085ABC 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BA5F0 7F085AC0 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BA5F4 7F085AC4 24010002 */ li $at, 2 +/* 0BA5F8 7F085AC8 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0BA5FC 7F085ACC 55410237 */ bnel $t2, $at, .L7F0863AC +/* 0BA600 7F085AD0 8E280000 */ lw $t0, ($s1) +/* 0BA604 7F085AD4 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0BA608 7F085AD8 59A00234 */ blezl $t5, .L7F0863AC +/* 0BA60C 7F085ADC 8E280000 */ lw $t0, ($s1) +/* 0BA610 7F085AE0 8E280000 */ lw $t0, ($s1) +/* 0BA614 7F085AE4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA618 7F085AE8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA61C 7F085AEC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA620 7F085AF0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BA624 7F085AF4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BA628 7F085AF8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA62C 7F085AFC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BA630 7F085B00 46082281 */ sub.s $f10, $f4, $f8 +/* 0BA634 7F085B04 460E3003 */ div.s $f0, $f6, $f14 +/* 0BA638 7F085B08 460E5083 */ div.s $f2, $f10, $f14 +/* 0BA63C 7F085B0C 46000182 */ mul.s $f6, $f0, $f0 +/* 0BA640 7F085B10 00000000 */ nop +/* 0BA644 7F085B14 46021102 */ mul.s $f4, $f2, $f2 +/* 0BA648 7F085B18 0C007DF8 */ jal sqrtf +/* 0BA64C 7F085B1C 46043300 */ add.s $f12, $f6, $f4 +/* 0BA650 7F085B20 8E280000 */ lw $t0, ($s1) +/* 0BA654 7F085B24 46000086 */ mov.s $f2, $f0 +/* 0BA658 7F085B28 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BA65C 7F085B2C 4614403C */ c.lt.s $f8, $f20 +/* 0BA660 7F085B30 00000000 */ nop +/* 0BA664 7F085B34 45000002 */ bc1f .L7F085B40 +/* 0BA668 7F085B38 00000000 */ nop +/* 0BA66C 7F085B3C 46000087 */ neg.s $f2, $f0 +.L7F085B40: +/* 0BA670 7F085B40 10000219 */ b .L7F0863A8 +/* 0BA674 7F085B44 E5020174 */ swc1 $f2, 0x174($t0) +.L7F085B48: +/* 0BA678 7F085B48 8E040000 */ lw $a0, ($s0) +/* 0BA67C 7F085B4C 50800019 */ beql $a0, $zero, .L7F085BB4 +/* 0BA680 7F085B50 8E040004 */ lw $a0, 4($s0) +/* 0BA684 7F085B54 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA688 7F085B58 00000000 */ nop +/* 0BA68C 7F085B5C 10400014 */ beqz $v0, .L7F085BB0 +/* 0BA690 7F085B60 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0BA694 7F085B64 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0BA698 7F085B68 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA69C 7F085B6C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA6A0 7F085B70 000F5940 */ sll $t3, $t7, 5 +/* 0BA6A4 7F085B74 016F5823 */ subu $t3, $t3, $t7 +/* 0BA6A8 7F085B78 8C4E0000 */ lw $t6, ($v0) +/* 0BA6AC 7F085B7C 000B5880 */ sll $t3, $t3, 2 +/* 0BA6B0 7F085B80 016F5821 */ addu $t3, $t3, $t7 +/* 0BA6B4 7F085B84 000B58C0 */ sll $t3, $t3, 3 +/* 0BA6B8 7F085B88 01CB3023 */ subu $a2, $t6, $t3 +/* 0BA6BC 7F085B8C 18C00006 */ blez $a2, .L7F085BA8 +/* 0BA6C0 7F085B90 AC460000 */ sw $a2, ($v0) +/* 0BA6C4 7F085B94 8E040000 */ lw $a0, ($s0) +/* 0BA6C8 7F085B98 0C002461 */ jal sfx_c_70009184 +/* 0BA6CC 7F085B9C 24050008 */ li $a1, 8 +/* 0BA6D0 7F085BA0 10000004 */ b .L7F085BB4 +/* 0BA6D4 7F085BA4 8E040004 */ lw $a0, 4($s0) +.L7F085BA8: +/* 0BA6D8 7F085BA8 0C002408 */ jal sfxDeactivate +/* 0BA6DC 7F085BAC 8E040000 */ lw $a0, ($s0) +.L7F085BB0: +/* 0BA6E0 7F085BB0 8E040004 */ lw $a0, 4($s0) +.L7F085BB4: +/* 0BA6E4 7F085BB4 10800007 */ beqz $a0, .L7F085BD4 +/* 0BA6E8 7F085BB8 00000000 */ nop +/* 0BA6EC 7F085BBC 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA6F0 7F085BC0 00000000 */ nop +/* 0BA6F4 7F085BC4 10400003 */ beqz $v0, .L7F085BD4 +/* 0BA6F8 7F085BC8 00000000 */ nop +/* 0BA6FC 7F085BCC 0C002408 */ jal sfxDeactivate +/* 0BA700 7F085BD0 8E040004 */ lw $a0, 4($s0) +.L7F085BD4: +/* 0BA704 7F085BD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA708 7F085BD8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA70C 7F085BDC 3C018003 */ lui $at, %hi(D_80036AF4) +/* 0BA710 7F085BE0 C42A6AF4 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BA714 7F085BE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA718 7F085BE8 44813000 */ mtc1 $at, $f6 +/* 0BA71C 7F085BEC 8E280000 */ lw $t0, ($s1) +/* 0BA720 7F085BF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BA724 7F085BF4 46065102 */ mul.s $f4, $f10, $f6 +/* 0BA728 7F085BF8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BA72C 7F085BFC E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BA730 7F085C00 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BA734 7F085C04 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BA738 7F085C08 00000000 */ nop +/* 0BA73C 7F085C0C 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BA740 7F085C10 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BA744 7F085C14 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BA748 7F085C18 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BA74C 7F085C1C C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BA750 7F085C20 46000207 */ neg.s $f8, $f0 +/* 0BA754 7F085C24 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA758 7F085C28 46082402 */ mul.s $f16, $f4, $f8 +/* 0BA75C 7F085C2C 46068101 */ sub.s $f4, $f16, $f6 +/* 0BA760 7F085C30 46005482 */ mul.s $f18, $f10, $f0 +/* 0BA764 7F085C34 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BA768 7F085C38 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BA76C 7F085C3C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BA770 7F085C40 46089281 */ sub.s $f10, $f18, $f8 +/* 0BA774 7F085C44 46063102 */ mul.s $f4, $f6, $f6 +/* 0BA778 7F085C48 E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BA77C 7F085C4C C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BA780 7F085C50 46084282 */ mul.s $f10, $f8, $f8 +/* 0BA784 7F085C54 460A2080 */ add.s $f2, $f4, $f10 +/* 0BA788 7F085C58 44812000 */ mtc1 $at, $f4 +/* 0BA78C 7F085C5C 00000000 */ nop +/* 0BA790 7F085C60 4602203E */ c.le.s $f4, $f2 +/* 0BA794 7F085C64 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BA798 7F085C68 45000008 */ bc1f .L7F085C8C +/* 0BA79C 7F085C6C 00000000 */ nop +/* 0BA7A0 7F085C70 3C018005 */ lui $at, %hi(D_80055230) +/* 0BA7A4 7F085C74 C4205230 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BA7A8 7F085C78 46003282 */ mul.s $f10, $f6, $f0 +/* 0BA7AC 7F085C7C 00000000 */ nop +/* 0BA7B0 7F085C80 46004102 */ mul.s $f4, $f8, $f0 +/* 0BA7B4 7F085C84 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BA7B8 7F085C88 E7A4021C */ swc1 $f4, 0x21c($sp) +.L7F085C8C: +/* 0BA7BC 7F085C8C 3C018005 */ lui $at, %hi(D_80055234) +/* 0BA7C0 7F085C90 C4305234 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BA7C4 7F085C94 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BA7C8 7F085C98 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA7CC 7F085C9C C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BA7D0 7F085CA0 46103002 */ mul.s $f0, $f6, $f16 +/* 0BA7D4 7F085CA4 4614003C */ c.lt.s $f0, $f20 +/* 0BA7D8 7F085CA8 46105302 */ mul.s $f12, $f10, $f16 +/* 0BA7DC 7F085CAC 45020003 */ bc1fl .L7F085CBC +/* 0BA7E0 7F085CB0 4614103C */ c.lt.s $f2, $f20 +/* 0BA7E4 7F085CB4 46000007 */ neg.s $f0, $f0 +/* 0BA7E8 7F085CB8 4614103C */ c.lt.s $f2, $f20 +.L7F085CBC: +/* 0BA7EC 7F085CBC 3C018005 */ lui $at, %hi(D_80055238) +/* 0BA7F0 7F085CC0 45020003 */ bc1fl .L7F085CD0 +/* 0BA7F4 7F085CC4 4614603C */ c.lt.s $f12, $f20 +/* 0BA7F8 7F085CC8 46001087 */ neg.s $f2, $f2 +/* 0BA7FC 7F085CCC 4614603C */ c.lt.s $f12, $f20 +.L7F085CD0: +/* 0BA800 7F085CD0 00000000 */ nop +/* 0BA804 7F085CD4 45020003 */ bc1fl .L7F085CE4 +/* 0BA808 7F085CD8 4600103C */ c.lt.s $f2, $f0 +/* 0BA80C 7F085CDC 46006307 */ neg.s $f12, $f12 +/* 0BA810 7F085CE0 4600103C */ c.lt.s $f2, $f0 +.L7F085CE4: +/* 0BA814 7F085CE4 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BA818 7F085CE8 45020003 */ bc1fl .L7F085CF8 +/* 0BA81C 7F085CEC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA820 7F085CF0 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BA824 7F085CF4 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085CF8: +/* 0BA828 7F085CF8 460C403C */ c.lt.s $f8, $f12 +/* 0BA82C 7F085CFC 00000000 */ nop +/* 0BA830 7F085D00 45020003 */ bc1fl .L7F085D10 +/* 0BA834 7F085D04 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BA838 7F085D08 E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BA83C 7F085D0C C7A40218 */ lwc1 $f4, 0x218($sp) +.L7F085D10: +/* 0BA840 7F085D10 C4265238 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BA844 7F085D14 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA848 7F085D18 44810000 */ mtc1 $at, $f0 +/* 0BA84C 7F085D1C 4604303E */ c.le.s $f6, $f4 +/* 0BA850 7F085D20 00000000 */ nop +/* 0BA854 7F085D24 45020008 */ bc1fl .L7F085D48 +/* 0BA858 7F085D28 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA85C 7F085D2C C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA860 7F085D30 4610503C */ c.lt.s $f10, $f16 +/* 0BA864 7F085D34 00000000 */ nop +/* 0BA868 7F085D38 45020003 */ bc1fl .L7F085D48 +/* 0BA86C 7F085D3C C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA870 7F085D40 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BA874 7F085D44 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085D48: +/* 0BA878 7F085D48 4608003E */ c.le.s $f0, $f8 +/* 0BA87C 7F085D4C 00000000 */ nop +/* 0BA880 7F085D50 4502000B */ bc1fl .L7F085D80 +/* 0BA884 7F085D54 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA888 7F085D58 46004101 */ sub.s $f4, $f8, $f0 +/* 0BA88C 7F085D5C 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BA890 7F085D60 44815000 */ mtc1 $at, $f10 +/* 0BA894 7F085D64 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BA898 7F085D68 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA89C 7F085D6C 460A3203 */ div.s $f8, $f6, $f10 +/* 0BA8A0 7F085D70 46082180 */ add.s $f6, $f4, $f8 +/* 0BA8A4 7F085D74 1000000A */ b .L7F085DA0 +/* 0BA8A8 7F085D78 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA8AC 7F085D7C C7AA0398 */ lwc1 $f10, 0x398($sp) +.L7F085D80: +/* 0BA8B0 7F085D80 3C018005 */ lui $at, %hi(D_8005523C) +/* 0BA8B4 7F085D84 C426523C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BA8B8 7F085D88 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BA8BC 7F085D8C 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BA8C0 7F085D90 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA8C4 7F085D94 46064283 */ div.s $f10, $f8, $f6 +/* 0BA8C8 7F085D98 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA8CC 7F085D9C E508019C */ swc1 $f8, 0x19c($t0) +.L7F085DA0: +/* 0BA8D0 7F085DA0 8E280000 */ lw $t0, ($s1) +/* 0BA8D4 7F085DA4 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BA8D8 7F085DA8 4614003C */ c.lt.s $f0, $f20 +/* 0BA8DC 7F085DAC 00000000 */ nop +/* 0BA8E0 7F085DB0 45020005 */ bc1fl .L7F085DC8 +/* 0BA8E4 7F085DB4 3C013F80 */ lui $at, 0x3f80 +/* 0BA8E8 7F085DB8 E514019C */ swc1 $f20, 0x19c($t0) +/* 0BA8EC 7F085DBC 1000000C */ b .L7F085DF0 +/* 0BA8F0 7F085DC0 8E280000 */ lw $t0, ($s1) +/* 0BA8F4 7F085DC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F085DC8: +/* 0BA8F8 7F085DC8 44813000 */ mtc1 $at, $f6 +/* 0BA8FC 7F085DCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA900 7F085DD0 4600303C */ c.lt.s $f6, $f0 +/* 0BA904 7F085DD4 00000000 */ nop +/* 0BA908 7F085DD8 45020006 */ bc1fl .L7F085DF4 +/* 0BA90C 7F085DDC C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BA910 7F085DE0 44812000 */ mtc1 $at, $f4 +/* 0BA914 7F085DE4 00000000 */ nop +/* 0BA918 7F085DE8 E504019C */ swc1 $f4, 0x19c($t0) +/* 0BA91C 7F085DEC 8E280000 */ lw $t0, ($s1) +.L7F085DF0: +/* 0BA920 7F085DF0 C7AC0398 */ lwc1 $f12, 0x398($sp) +.L7F085DF4: +/* 0BA924 7F085DF4 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BA928 7F085DF8 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA92C 7F085DFC 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BA930 7F085E00 8E280000 */ lw $t0, ($s1) +/* 0BA934 7F085E04 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA938 7F085E08 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA93C 7F085E0C C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BA940 7F085E10 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA944 7F085E14 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BA948 7F085E18 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA94C 7F085E1C 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA950 7F085E20 00000000 */ nop +/* 0BA954 7F085E24 46060102 */ mul.s $f4, $f0, $f6 +/* 0BA958 7F085E28 46044281 */ sub.s $f10, $f8, $f4 +/* 0BA95C 7F085E2C C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BA960 7F085E30 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BA964 7F085E34 46064100 */ add.s $f4, $f8, $f6 +/* 0BA968 7F085E38 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA96C 7F085E3C C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BA970 7F085E40 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BA974 7F085E44 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA978 7F085E48 00000000 */ nop +/* 0BA97C 7F085E4C 46060282 */ mul.s $f10, $f0, $f6 +/* 0BA980 7F085E50 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA984 7F085E54 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA988 7F085E58 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BA98C 7F085E5C 46085180 */ add.s $f6, $f10, $f8 +/* 0BA990 7F085E60 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BA994 7F085E64 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA998 7F085E68 C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BA99C 7F085E6C E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BA9A0 7F085E70 46043280 */ add.s $f10, $f6, $f4 +/* 0BA9A4 7F085E74 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BA9A8 7F085E78 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BA9AC 7F085E7C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA9B0 7F085E80 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BA9B4 7F085E84 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BA9B8 7F085E88 E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BA9BC 7F085E8C 8D0C0488 */ lw $t4, 0x488($t0) +/* 0BA9C0 7F085E90 0FC24406 */ jal get_debug_fast_bond_flag +/* 0BA9C4 7F085E94 AFAC0200 */ sw $t4, 0x200($sp) +/* 0BA9C8 7F085E98 50400021 */ beql $v0, $zero, .L7F085F20 +/* 0BA9CC 7F085E9C 8E390000 */ lw $t9, ($s1) +/* 0BA9D0 7F085EA0 8E280000 */ lw $t0, ($s1) +/* 0BA9D4 7F085EA4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BA9D8 7F085EA8 44810000 */ mtc1 $at, $f0 +/* 0BA9DC 7F085EAC C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BA9E0 7F085EB0 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA9E4 7F085EB4 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA9E8 7F085EB8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA9EC 7F085EBC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA9F0 7F085EC0 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BA9F4 7F085EC4 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA9F8 7F085EC8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA9FC 7F085ECC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAA00 7F085ED0 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BAA04 7F085ED4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA08 7F085ED8 00000000 */ nop +/* 0BAA0C 7F085EDC 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA10 7F085EE0 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA14 7F085EE4 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BAA18 7F085EE8 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BAA1C 7F085EEC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAA20 7F085EF0 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BAA24 7F085EF4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAA28 7F085EF8 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BAA2C 7F085EFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA30 7F085F00 460A4180 */ add.s $f6, $f8, $f10 +/* 0BAA34 7F085F04 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAA38 7F085F08 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA3C 7F085F0C 00000000 */ nop +/* 0BAA40 7F085F10 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA44 7F085F14 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA48 7F085F18 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BAA4C 7F085F1C 8E390000 */ lw $t9, ($s1) +.L7F085F20: +/* 0BAA50 7F085F20 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BAA54 7F085F24 00002825 */ move $a1, $zero +/* 0BAA58 7F085F28 C7241274 */ lwc1 $f4, 0x1274($t9) +/* 0BAA5C 7F085F2C 4604A032 */ c.eq.s $f20, $f4 +/* 0BAA60 7F085F30 00000000 */ nop +/* 0BAA64 7F085F34 45000002 */ bc1f .L7F085F40 +/* 0BAA68 7F085F38 00000000 */ nop +/* 0BAA6C 7F085F3C 24050001 */ li $a1, 1 +.L7F085F40: +/* 0BAA70 7F085F40 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAA74 7F085F44 00000000 */ nop +/* 0BAA78 7F085F48 8E2A0000 */ lw $t2, ($s1) +/* 0BAA7C 7F085F4C 3C018005 */ lui $at, %hi(D_80055240) +/* 0BAA80 7F085F50 C4285240 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BAA84 7F085F54 C54A04B0 */ lwc1 $f10, 0x4b0($t2) +/* 0BAA88 7F085F58 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BAA8C 7F085F5C AFB00010 */ sw $s0, 0x10($sp) +/* 0BAA90 7F085F60 46085182 */ mul.s $f6, $f10, $f8 +/* 0BAA94 7F085F64 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAA98 7F085F68 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAA9C 7F085F6C 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAAA0 7F085F70 44073000 */ mfc1 $a3, $f6 +/* 0BAAA4 7F085F74 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAA8 7F085F78 00000000 */ nop +/* 0BAAAC 7F085F7C 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAB0 7F085F80 02002025 */ move $a0, $s0 +/* 0BAAB4 7F085F84 10400002 */ beqz $v0, .L7F085F90 +/* 0BAAB8 7F085F88 240D0001 */ li $t5, 1 +/* 0BAABC 7F085F8C AFAD0394 */ sw $t5, 0x394($sp) +.L7F085F90: +/* 0BAAC0 7F085F90 8E280000 */ lw $t0, ($s1) +/* 0BAAC4 7F085F94 3C018005 */ lui $at, %hi(D_80055244) +/* 0BAAC8 7F085F98 C42A5244 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BAACC 7F085F9C C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BAAD0 7F085FA0 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAAD4 7F085FA4 8D060494 */ lw $a2, 0x494($t0) +/* 0BAAD8 7F085FA8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAADC 7F085FAC AFB00010 */ sw $s0, 0x10($sp) +/* 0BAAE0 7F085FB0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAAE4 7F085FB4 44074000 */ mfc1 $a3, $f8 +/* 0BAAE8 7F085FB8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAEC 7F085FBC 00000000 */ nop +/* 0BAAF0 7F085FC0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAF4 7F085FC4 02002025 */ move $a0, $s0 +/* 0BAAF8 7F085FC8 10400002 */ beqz $v0, .L7F085FD4 +/* 0BAAFC 7F085FCC 240F0001 */ li $t7, 1 +/* 0BAB00 7F085FD0 AFAF0394 */ sw $t7, 0x394($sp) +.L7F085FD4: +/* 0BAB04 7F085FD4 8E280000 */ lw $t0, ($s1) +/* 0BAB08 7F085FD8 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAB0C 7F085FDC 8D060494 */ lw $a2, 0x494($t0) +/* 0BAB10 7F085FE0 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BAB14 7F085FE4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB18 7F085FE8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB1C 7F085FEC 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAB20 7F085FF0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB24 7F085FF4 02002025 */ move $a0, $s0 +/* 0BAB28 7F085FF8 1440000D */ bnez $v0, .L7F086030 +/* 0BAB2C 7F085FFC 00000000 */ nop +/* 0BAB30 7F086000 8E2E0000 */ lw $t6, ($s1) +/* 0BAB34 7F086004 3C018005 */ lui $at, %hi(D_80055248) +/* 0BAB38 7F086008 C4245248 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BAB3C 7F08600C C5C604B0 */ lwc1 $f6, 0x4b0($t6) +/* 0BAB40 7F086010 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB44 7F086014 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAB48 7F086018 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAB4C 7F08601C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAB50 7F086020 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAB54 7F086024 44075000 */ mfc1 $a3, $f10 +/* 0BAB58 7F086028 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB5C 7F08602C 00000000 */ nop +.L7F086030: +/* 0BAB60 7F086030 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB64 7F086034 02002025 */ move $a0, $s0 +/* 0BAB68 7F086038 104000B8 */ beqz $v0, .L7F08631C +/* 0BAB6C 7F08603C 240B0001 */ li $t3, 1 +/* 0BAB70 7F086040 AFAB0394 */ sw $t3, 0x394($sp) +/* 0BAB74 7F086044 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BAB78 7F086048 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BAB7C 7F08604C 0FC2C908 */ jal sub_GAME_7F0B2420 +/* 0BAB80 7F086050 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BAB84 7F086054 8E380000 */ lw $t8, ($s1) +/* 0BAB88 7F086058 C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BAB8C 7F08605C C7060074 */ lwc1 $f6, 0x74($t8) +/* 0BAB90 7F086060 4608303E */ c.le.s $f6, $f8 +/* 0BAB94 7F086064 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BAB98 7F086068 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BAB9C 7F08606C 450200AC */ bc1fl .L7F086320 +/* 0BABA0 7F086070 8E280000 */ lw $t0, ($s1) +/* 0BABA4 7F086074 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BABA8 7F086078 C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BABAC 7F08607C 46064381 */ sub.s $f14, $f8, $f6 +/* 0BABB0 7F086080 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BABB4 7F086084 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BABB8 7F086088 E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BABBC 7F08608C 46021282 */ mul.s $f10, $f2, $f2 +/* 0BABC0 7F086090 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BABC4 7F086094 0C007DF8 */ jal sqrtf +/* 0BABC8 7F086098 460A2300 */ add.s $f12, $f4, $f10 +/* 0BABCC 7F08609C C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BABD0 7F0860A0 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BABD4 7F0860A4 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BABD8 7F0860A8 46001083 */ div.s $f2, $f2, $f0 +/* 0BABDC 7F0860AC C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BABE0 7F0860B0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BABE4 7F0860B4 46064101 */ sub.s $f4, $f8, $f6 +/* 0BABE8 7F0860B8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BABEC 7F0860BC E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BABF0 7F0860C0 46007383 */ div.s $f14, $f14, $f0 +/* 0BABF4 7F0860C4 46022282 */ mul.s $f10, $f4, $f2 +/* 0BABF8 7F0860C8 C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BABFC 7F0860CC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC00 7F0860D0 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BAC04 7F0860D4 46065300 */ add.s $f12, $f10, $f6 +/* 0BAC08 7F0860D8 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BAC0C 7F0860DC C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAC10 7F0860E0 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BAC14 7F0860E4 460A3180 */ add.s $f6, $f6, $f10 +/* 0BAC18 7F0860E8 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BAC1C 7F0860EC 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BAC20 7F0860F0 46023282 */ mul.s $f10, $f6, $f2 +/* 0BAC24 7F0860F4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC28 7F0860F8 46062100 */ add.s $f4, $f4, $f6 +/* 0BAC2C 7F0860FC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC30 7F086100 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAC34 7F086104 46045480 */ add.s $f18, $f10, $f4 +/* 0BAC38 7F086108 C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BAC3C 7F08610C 46126202 */ mul.s $f8, $f12, $f18 +/* 0BAC40 7F086110 46009406 */ mov.s $f16, $f18 +/* 0BAC44 7F086114 4614403E */ c.le.s $f8, $f20 +/* 0BAC48 7F086118 46042202 */ mul.s $f8, $f4, $f4 +/* 0BAC4C 7F08611C 45020004 */ bc1fl .L7F086130 +/* 0BAC50 7F086120 4614903C */ c.lt.s $f18, $f20 +/* 0BAC54 7F086124 1000001F */ b .L7F0861A4 +/* 0BAC58 7F086128 4600A386 */ mov.s $f14, $f20 +/* 0BAC5C 7F08612C 4614903C */ c.lt.s $f18, $f20 +.L7F086130: +/* 0BAC60 7F086130 00000000 */ nop +/* 0BAC64 7F086134 45020005 */ bc1fl .L7F08614C +/* 0BAC68 7F086138 4610603E */ c.le.s $f12, $f16 +/* 0BAC6C 7F08613C C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BAC70 7F086140 46009407 */ neg.s $f16, $f18 +/* 0BAC74 7F086144 46006307 */ neg.s $f12, $f12 +/* 0BAC78 7F086148 4610603E */ c.le.s $f12, $f16 +.L7F08614C: +/* 0BAC7C 7F08614C 00000000 */ nop +/* 0BAC80 7F086150 45020004 */ bc1fl .L7F086164 +/* 0BAC84 7F086154 8E2C0000 */ lw $t4, ($s1) +/* 0BAC88 7F086158 10000012 */ b .L7F0861A4 +/* 0BAC8C 7F08615C 4600A386 */ mov.s $f14, $f20 +/* 0BAC90 7F086160 8E2C0000 */ lw $t4, ($s1) +.L7F086164: +/* 0BAC94 7F086164 C58004B0 */ lwc1 $f0, 0x4b0($t4) +/* 0BAC98 7F086168 4610003C */ c.lt.s $f0, $f16 +/* 0BAC9C 7F08616C 00000000 */ nop +/* 0BACA0 7F086170 45020004 */ bc1fl .L7F086184 +/* 0BACA4 7F086174 4600603C */ c.lt.s $f12, $f0 +/* 0BACA8 7F086178 1000000A */ b .L7F0861A4 +/* 0BACAC 7F08617C 4600A386 */ mov.s $f14, $f20 +/* 0BACB0 7F086180 4600603C */ c.lt.s $f12, $f0 +.L7F086184: +/* 0BACB4 7F086184 00000000 */ nop +/* 0BACB8 7F086188 45020004 */ bc1fl .L7F08619C +/* 0BACBC 7F08618C 46006181 */ sub.s $f6, $f12, $f0 +/* 0BACC0 7F086190 10000004 */ b .L7F0861A4 +/* 0BACC4 7F086194 4600A386 */ mov.s $f14, $f20 +/* 0BACC8 7F086198 46006181 */ sub.s $f6, $f12, $f0 +.L7F08619C: +/* 0BACCC 7F08619C 46106281 */ sub.s $f10, $f12, $f16 +/* 0BACD0 7F0861A0 460A3383 */ div.s $f14, $f6, $f10 +.L7F0861A4: +/* 0BACD4 7F0861A4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BACD8 7F0861A8 E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BACDC 7F0861AC 46063282 */ mul.s $f10, $f6, $f6 +/* 0BACE0 7F0861B0 0C007DF8 */ jal sqrtf +/* 0BACE4 7F0861B4 460A4300 */ add.s $f12, $f8, $f10 +/* 0BACE8 7F0861B8 4600A03C */ c.lt.s $f20, $f0 +/* 0BACEC 7F0861BC C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BACF0 7F0861C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BACF4 7F0861C4 4502001B */ bc1fl .L7F086234 +/* 0BACF8 7F0861C8 C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BACFC 7F0861CC 44812000 */ mtc1 $at, $f4 +/* 0BAD00 7F0861D0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD04 7F0861D4 44814000 */ mtc1 $at, $f8 +/* 0BAD08 7F0861D8 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BAD0C 7F0861DC 8E390000 */ lw $t9, ($s1) +/* 0BAD10 7F0861E0 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BAD14 7F0861E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD18 7F0861E8 46003082 */ mul.s $f2, $f6, $f0 +/* 0BAD1C 7F0861EC 00000000 */ nop +/* 0BAD20 7F0861F0 46081302 */ mul.s $f12, $f2, $f8 +/* 0BAD24 7F0861F4 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BAD28 7F0861F8 C7320074 */ lwc1 $f18, 0x74($t9) +/* 0BAD2C 7F0861FC 460C9280 */ add.s $f10, $f18, $f12 +/* 0BAD30 7F086200 460A203E */ c.le.s $f4, $f10 +/* 0BAD34 7F086204 00000000 */ nop +/* 0BAD38 7F086208 45000009 */ bc1f .L7F086230 +/* 0BAD3C 7F08620C 00000000 */ nop +/* 0BAD40 7F086210 46122181 */ sub.s $f6, $f4, $f18 +/* 0BAD44 7F086214 44814000 */ mtc1 $at, $f8 +/* 0BAD48 7F086218 00000000 */ nop +/* 0BAD4C 7F08621C 46083283 */ div.s $f10, $f6, $f8 +/* 0BAD50 7F086220 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BAD54 7F086224 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BAD58 7F086228 46008103 */ div.s $f4, $f16, $f0 +/* 0BAD5C 7F08622C 46047380 */ add.s $f14, $f14, $f4 +.L7F086230: +/* 0BAD60 7F086230 C7A6019C */ lwc1 $f6, 0x19c($sp) +.L7F086234: +/* 0BAD64 7F086234 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BAD68 7F086238 C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BAD6C 7F08623C C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BAD70 7F086240 46083301 */ sub.s $f12, $f6, $f8 +/* 0BAD74 7F086244 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BAD78 7F086248 8E280000 */ lw $t0, ($s1) +/* 0BAD7C 7F08624C 46045401 */ sub.s $f16, $f10, $f4 +/* 0BAD80 7F086250 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BAD84 7F086254 46083481 */ sub.s $f18, $f6, $f8 +/* 0BAD88 7F086258 46045181 */ sub.s $f6, $f10, $f4 +/* 0BAD8C 7F08625C 46129202 */ mul.s $f8, $f18, $f18 +/* 0BAD90 7F086260 00000000 */ nop +/* 0BAD94 7F086264 46063282 */ mul.s $f10, $f6, $f6 +/* 0BAD98 7F086268 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BAD9C 7F08626C 460A4100 */ add.s $f4, $f8, $f10 +/* 0BADA0 7F086270 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BADA4 7F086274 00000000 */ nop +/* 0BADA8 7F086278 46108282 */ mul.s $f10, $f16, $f16 +/* 0BADAC 7F08627C 460A4200 */ add.s $f8, $f8, $f10 +/* 0BADB0 7F086280 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BADB4 7F086284 4608203C */ c.lt.s $f4, $f8 +/* 0BADB8 7F086288 C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BADBC 7F08628C 45000003 */ bc1f .L7F08629C +/* 0BADC0 7F086290 46045201 */ sub.s $f8, $f10, $f4 +/* 0BADC4 7F086294 46009306 */ mov.s $f12, $f18 +/* 0BADC8 7F086298 46003406 */ mov.s $f16, $f6 +.L7F08629C: +/* 0BADCC 7F08629C C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BADD0 7F0862A0 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BADD4 7F0862A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BADD8 7F0862A8 46083003 */ div.s $f0, $f6, $f8 +/* 0BADDC 7F0862AC 00002825 */ move $a1, $zero +/* 0BADE0 7F0862B0 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BADE4 7F0862B4 00000000 */ nop +/* 0BADE8 7F0862B8 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BADEC 7F0862BC 46065200 */ add.s $f8, $f10, $f6 +/* 0BADF0 7F0862C0 46100102 */ mul.s $f4, $f0, $f16 +/* 0BADF4 7F0862C4 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BADF8 7F0862C8 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BADFC 7F0862CC 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BAE00 7F0862D0 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE04 7F0862D4 46062200 */ add.s $f8, $f4, $f6 +/* 0BAE08 7F0862D8 E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BAE0C 7F0862DC E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BAE10 7F0862E0 8E2A0000 */ lw $t2, ($s1) +/* 0BAE14 7F0862E4 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BAE18 7F0862E8 E5440494 */ swc1 $f4, 0x494($t2) +/* 0BAE1C 7F0862EC 8E2F0000 */ lw $t7, ($s1) +/* 0BAE20 7F0862F0 8FAD0200 */ lw $t5, 0x200($sp) +/* 0BAE24 7F0862F4 ADED0488 */ sw $t5, 0x488($t7) +/* 0BAE28 7F0862F8 8E2E0000 */ lw $t6, ($s1) +/* 0BAE2C 7F0862FC C5C61274 */ lwc1 $f6, 0x1274($t6) +/* 0BAE30 7F086300 4606A032 */ c.eq.s $f20, $f6 +/* 0BAE34 7F086304 00000000 */ nop +/* 0BAE38 7F086308 45000002 */ bc1f .L7F086314 +/* 0BAE3C 7F08630C 00000000 */ nop +/* 0BAE40 7F086310 24050001 */ li $a1, 1 +.L7F086314: +/* 0BAE44 7F086314 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAE48 7F086318 00000000 */ nop +.L7F08631C: +/* 0BAE4C 7F08631C 8E280000 */ lw $t0, ($s1) +.L7F086320: +/* 0BAE50 7F086320 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE54 7F086324 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BAE58 7F086328 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAE5C 7F08632C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAE60 7F086330 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BAE64 7F086334 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BAE68 7F086338 46062381 */ sub.s $f14, $f4, $f6 +/* 0BAE6C 7F08633C 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE70 7F086340 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BAE74 7F086344 46042182 */ mul.s $f6, $f4, $f4 +/* 0BAE78 7F086348 46065000 */ add.s $f0, $f10, $f6 +/* 0BAE7C 7F08634C 46140032 */ c.eq.s $f0, $f20 +/* 0BAE80 7F086350 46000306 */ mov.s $f12, $f0 +/* 0BAE84 7F086354 45010006 */ bc1t .L7F086370 +/* 0BAE88 7F086358 00000000 */ nop +/* 0BAE8C 7F08635C 46021202 */ mul.s $f8, $f2, $f2 +/* 0BAE90 7F086360 00000000 */ nop +/* 0BAE94 7F086364 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BAE98 7F086368 46044280 */ add.s $f10, $f8, $f4 +/* 0BAE9C 7F08636C 46005303 */ div.s $f12, $f10, $f0 +.L7F086370: +/* 0BAEA0 7F086370 0C007DF8 */ jal sqrtf +/* 0BAEA4 7F086374 00000000 */ nop +/* 0BAEA8 7F086378 C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BAEAC 7F08637C 8E280000 */ lw $t0, ($s1) +/* 0BAEB0 7F086380 46080102 */ mul.s $f4, $f0, $f8 +/* 0BAEB4 7F086384 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAEB8 7F086388 46043280 */ add.s $f10, $f6, $f4 +/* 0BAEBC 7F08638C E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BAEC0 7F086390 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BAEC4 7F086394 8E280000 */ lw $t0, ($s1) +/* 0BAEC8 7F086398 46060102 */ mul.s $f4, $f0, $f6 +/* 0BAECC 7F08639C C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAED0 7F0863A0 46044280 */ add.s $f10, $f8, $f4 +/* 0BAED4 7F0863A4 E50A127C */ swc1 $f10, 0x127c($t0) +.L7F0863A8: +/* 0BAED8 7F0863A8 8E280000 */ lw $t0, ($s1) +.L7F0863AC: +/* 0BAEDC 7F0863AC 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BAEE0 7F0863B0 C428524C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BAEE4 7F0863B4 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BAEE8 7F0863B8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BAEEC 7F0863BC C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BAEF0 7F0863C0 46083103 */ div.s $f4, $f6, $f8 +/* 0BAEF4 7F0863C4 44813000 */ mtc1 $at, $f6 +/* 0BAEF8 7F0863C8 C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BAEFC 7F0863CC 46065203 */ div.s $f8, $f10, $f6 +/* 0BAF00 7F0863D0 46082080 */ add.s $f2, $f4, $f8 +/* 0BAF04 7F0863D4 0FC23ABE */ jal sub_GAME_7F08EAF8 +/* 0BAF08 7F0863D8 E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BAF0C 7F0863DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAF10 7F0863E0 44817000 */ mtc1 $at, $f14 +/* 0BAF14 7F0863E4 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BAF18 7F0863E8 4407A000 */ mfc1 $a3, $f20 +/* 0BAF1C 7F0863EC 46000306 */ mov.s $f12, $f0 +/* 0BAF20 7F0863F0 4602703C */ c.lt.s $f14, $f2 +/* 0BAF24 7F0863F4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BAF28 7F0863F8 45020004 */ bc1fl .L7F08640C +/* 0BAF2C 7F0863FC 44817000 */ mtc1 $at, $f14 +/* 0BAF30 7F086400 10000008 */ b .L7F086424 +/* 0BAF34 7F086404 46007086 */ mov.s $f2, $f14 +/* 0BAF38 7F086408 44817000 */ mtc1 $at, $f14 +.L7F08640C: +/* 0BAF3C 7F08640C 00000000 */ nop +/* 0BAF40 7F086410 460E103C */ c.lt.s $f2, $f14 +/* 0BAF44 7F086414 00000000 */ nop +/* 0BAF48 7F086418 45020003 */ bc1fl .L7F086428 +/* 0BAF4C 7F08641C 8E2B0000 */ lw $t3, ($s1) +/* 0BAF50 7F086420 46007086 */ mov.s $f2, $f14 +.L7F086424: +/* 0BAF54 7F086424 8E2B0000 */ lw $t3, ($s1) +.L7F086428: +/* 0BAF58 7F086428 24010001 */ li $at, 1 +/* 0BAF5C 7F08642C 44061000 */ mfc1 $a2, $f2 +/* 0BAF60 7F086430 8D7804E8 */ lw $t8, 0x4e8($t3) +/* 0BAF64 7F086434 17010004 */ bne $t8, $at, .L7F086448 +/* 0BAF68 7F086438 3C018005 */ lui $at, %hi(D_80055250) +/* 0BAF6C 7F08643C C42A5250 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BAF70 7F086440 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BAF74 7F086444 00000000 */ nop +.L7F086448: +/* 0BAF78 7F086448 0FC17839 */ jal sub_GAME_7F05E0E4 +/* 0BAF7C 7F08644C C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BAF80 7F086450 8E2C0000 */ lw $t4, ($s1) +/* 0BAF84 7F086454 3C018005 */ lui $at, %hi(D_80055254) +/* 0BAF88 7F086458 C4245254 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BAF8C 7F08645C C586015C */ lwc1 $f6, 0x15c($t4) +/* 0BAF90 7F086460 46043302 */ mul.s $f12, $f6, $f4 +/* 0BAF94 7F086464 0FC1797C */ jal sub_GAME_7F05E5F0 +/* 0BAF98 7F086468 00000000 */ nop +/* 0BAF9C 7F08646C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0BAFA0 7F086470 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BAFA4 7F086474 3C198003 */ lui $t9, %hi(in_tank_flag) +/* 0BAFA8 7F086478 5060012F */ beql $v1, $zero, .L7F086938 +/* 0BAFAC 7F08647C 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFB0 7F086480 8F396448 */ lw $t9, %lo(in_tank_flag)($t9) +/* 0BAFB4 7F086484 24010001 */ li $at, 1 +/* 0BAFB8 7F086488 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BAFBC 7F08648C 5721012A */ bnel $t9, $at, .L7F086938 +/* 0BAFC0 7F086490 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFC4 7F086494 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BAFC8 7F086498 24010002 */ li $at, 2 +/* 0BAFCC 7F08649C 55410126 */ bnel $t2, $at, .L7F086938 +/* 0BAFD0 7F0864A0 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFD4 7F0864A4 8C620004 */ lw $v0, 4($v1) +/* 0BAFD8 7F0864A8 00002025 */ move $a0, $zero +/* 0BAFDC 7F0864AC AFA20138 */ sw $v0, 0x138($sp) +/* 0BAFE0 7F0864B0 8C4D0014 */ lw $t5, 0x14($v0) +/* 0BAFE4 7F0864B4 00408025 */ move $s0, $v0 +/* 0BAFE8 7F0864B8 8DAF0008 */ lw $t7, 8($t5) +/* 0BAFEC 7F0864BC 8DEE0008 */ lw $t6, 8($t7) +/* 0BAFF0 7F0864C0 8DCB0014 */ lw $t3, 0x14($t6) +/* 0BAFF4 7F0864C4 8D780004 */ lw $t8, 4($t3) +/* 0BAFF8 7F0864C8 0FC17674 */ jal get_item_in_hand +/* 0BAFFC 7F0864CC AFB80130 */ sw $t8, 0x130($sp) +/* 0BB000 7F0864D0 38430020 */ xori $v1, $v0, 0x20 +/* 0BB004 7F0864D4 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB008 7F0864D8 50800005 */ beql $a0, $zero, .L7F0864F0 +/* 0BB00C 7F0864DC AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB010 7F0864E0 0FC17722 */ jal get_hands_firing_status +/* 0BB014 7F0864E4 00002025 */ move $a0, $zero +/* 0BB018 7F0864E8 0002202B */ sltu $a0, $zero, $v0 +/* 0BB01C 7F0864EC AE0400C4 */ sw $a0, 0xc4($s0) +.L7F0864F0: +/* 0BB020 7F0864F0 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BB024 7F0864F4 C428646C */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB028 7F0864F8 3C018003 */ lui $at, %hi(D_80036474) +/* 0BB02C 7F0864FC 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB030 7F086500 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB034 7F086504 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB038 7F086508 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB03C 7F08650C E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB040 7F086510 C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB044 7F086514 3C018005 */ lui $at, %hi(D_80055258) +/* 0BB048 7F086518 E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB04C 7F08651C C4245258 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB050 7F086520 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB054 7F086524 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB058 7F086528 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0BB05C 7F08652C 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB060 7F086530 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB064 7F086534 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB068 7F086538 8D990014 */ lw $t9, 0x14($t4) +/* 0BB06C 7F08653C 0FC1629F */ jal matrix_scalar_multiply +/* 0BB070 7F086540 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0BB074 7F086544 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) +/* 0BB078 7F086548 C42A99A8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB07C 7F08654C C42499AC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB080 7F086550 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) +/* 0BB084 7F086554 46005187 */ neg.s $f6, $f10 +/* 0BB088 7F086558 C42A99B0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB08C 7F08655C E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB090 7F086560 46002207 */ neg.s $f8, $f4 +/* 0BB094 7F086564 46005187 */ neg.s $f6, $f10 +/* 0BB098 7F086568 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB09C 7F08656C E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB0A0 7F086570 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB0A4 7F086574 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0BB0A8 7F086578 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB0AC 7F08657C 8E280000 */ lw $t0, ($s1) +/* 0BB0B0 7F086580 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB0B4 7F086584 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB0B8 7F086588 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0BC 7F08658C 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB0C0 7F086590 46082280 */ add.s $f10, $f4, $f8 +/* 0BB0C4 7F086594 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB0C8 7F086598 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB0CC 7F08659C 46043200 */ add.s $f8, $f6, $f4 +/* 0BB0D0 7F0865A0 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB0D4 7F0865A4 8D0A0488 */ lw $t2, 0x488($t0) +/* 0BB0D8 7F0865A8 8C4D0010 */ lw $t5, 0x10($v0) +/* 0BB0DC 7F0865AC ADAA0014 */ sw $t2, 0x14($t5) +/* 0BB0E0 7F0865B0 8E280000 */ lw $t0, ($s1) +/* 0BB0E4 7F0865B4 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB0E8 7F0865B8 8C440010 */ lw $a0, 0x10($v0) +/* 0BB0EC 7F0865BC 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB0F0 7F0865C0 8D060494 */ lw $a2, 0x494($t0) +/* 0BB0F4 7F0865C4 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB0F8 7F0865C8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB0FC 7F0865CC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0BB100 7F0865D0 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB104 7F0865D4 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB108 7F0865D8 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB10C 7F0865DC 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB110 7F0865E0 8DEE0010 */ lw $t6, 0x10($t7) +/* 0BB114 7F0865E4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0BB118 7F0865E8 8DC40014 */ lw $a0, 0x14($t6) +/* 0BB11C 7F0865EC 3C038005 */ lui $v1, %hi(clock_timer) +/* 0BB120 7F0865F0 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0BB124 7F0865F4 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB128 7F0865F8 8C6B0000 */ lw $t3, ($v1) +/* 0BB12C 7F0865FC 00001025 */ move $v0, $zero +/* 0BB130 7F086600 3C018005 */ lui $at, %hi(D_8005525C) +/* 0BB134 7F086604 1960000C */ blez $t3, .L7F086638 +/* 0BB138 7F086608 00000000 */ nop +/* 0BB13C 7F08660C C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB140 7F086610 C420525C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB144 7F086614 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086618: +/* 0BB148 7F086618 24420001 */ addiu $v0, $v0, 1 +/* 0BB14C 7F08661C 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB150 7F086620 46022200 */ add.s $f8, $f4, $f2 +/* 0BB154 7F086624 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB158 7F086628 8C780000 */ lw $t8, ($v1) +/* 0BB15C 7F08662C 0058082A */ slt $at, $v0, $t8 +/* 0BB160 7F086630 5420FFF9 */ bnezl $at, .L7F086618 +/* 0BB164 7F086634 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086638: +/* 0BB168 7F086638 3C018005 */ lui $at, %hi(D_80055260) +/* 0BB16C 7F08663C C4265260 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB170 7F086640 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB174 7F086644 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB178 7F086648 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB17C 7F08664C 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 0BB180 7F086650 00000000 */ nop +/* 0BB184 7F086654 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB188 7F086658 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB18C 7F08665C 44813000 */ mtc1 $at, $f6 +/* 0BB190 7F086660 8C4C0014 */ lw $t4, 0x14($v0) +/* 0BB194 7F086664 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB198 7F086668 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB19C 7F08666C C5840014 */ lwc1 $f4, 0x14($t4) +/* 0BB1A0 7F086670 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB1A4 7F086674 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB1A8 7F086678 46065100 */ add.s $f4, $f10, $f6 +/* 0BB1AC 7F08667C 0FC16008 */ jal matrix_4x4_copy +/* 0BB1B0 7F086680 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB1B4 7F086684 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1B8 7F086688 C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB1BC 7F08668C 8C990010 */ lw $t9, 0x10($a0) +/* 0BB1C0 7F086690 E7200008 */ swc1 $f0, 8($t9) +/* 0BB1C4 7F086694 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB1C8 7F086698 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB1CC 7F08669C 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB1D0 7F0866A0 E540000C */ swc1 $f0, 0xc($t2) +/* 0BB1D4 7F0866A4 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB1D8 7F0866A8 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB1DC 7F0866AC 8C8D0010 */ lw $t5, 0x10($a0) +/* 0BB1E0 7F0866B0 E5A00010 */ swc1 $f0, 0x10($t5) +/* 0BB1E4 7F0866B4 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 0BB1E8 7F0866B8 E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB1EC 7F0866BC 0FC10121 */ jal sub_GAME_7F040484 +/* 0BB1F0 7F0866C0 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1F4 7F0866C4 8E250000 */ lw $a1, ($s1) +/* 0BB1F8 7F0866C8 3C068003 */ lui $a2, %hi(D_80036464) +/* 0BB1FC 7F0866CC 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB200 7F0866D0 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB204 7F0866D4 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0BB208 7F0866D8 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB20C 7F0866DC 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB210 7F0866E0 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB214 7F0866E4 02002825 */ move $a1, $s0 +/* 0BB218 7F0866E8 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0BB21C 7F0866EC 8DE40010 */ lw $a0, 0x10($t7) +/* 0BB220 7F0866F0 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0BB224 7F0866F4 02002025 */ move $a0, $s0 +/* 0BB228 7F0866F8 3C0E8007 */ lui $t6, %hi(ptr_list_object_lookup_indices) +/* 0BB22C 7F0866FC 8DCE9C30 */ lw $t6, %lo(ptr_list_object_lookup_indices)($t6) +/* 0BB230 7F086700 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB234 7F086704 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB238 7F086708 85C20000 */ lh $v0, ($t6) +/* 0BB23C 7F08670C 0442008A */ bltzl $v0, .L7F086938 +/* 0BB240 7F086710 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB244 7F086714 4481A000 */ mtc1 $at, $f20 +/* 0BB248 7F086718 00000000 */ nop +/* 0BB24C 7F08671C 8FAC0138 */ lw $t4, 0x138($sp) +.L7F086720: +/* 0BB250 7F086720 00025880 */ sll $t3, $v0, 2 +/* 0BB254 7F086724 01625823 */ subu $t3, $t3, $v0 +/* 0BB258 7F086728 000B5880 */ sll $t3, $t3, 2 +/* 0BB25C 7F08672C 8D990010 */ lw $t9, 0x10($t4) +/* 0BB260 7F086730 01625821 */ addu $t3, $t3, $v0 +/* 0BB264 7F086734 3C188007 */ lui $t8, %hi(pos_data_entry) +/* 0BB268 7F086738 27189C38 */ addiu $t8, %lo(pos_data_entry) # addiu $t8, $t8, -0x63c8 +/* 0BB26C 7F08673C 000B5880 */ sll $t3, $t3, 2 +/* 0BB270 7F086740 01788021 */ addu $s0, $t3, $t8 +/* 0BB274 7F086744 52190076 */ beql $s0, $t9, .L7F086920 +/* 0BB278 7F086748 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB27C 7F08674C 92020000 */ lbu $v0, ($s0) +/* 0BB280 7F086750 24010003 */ li $at, 3 +/* 0BB284 7F086754 240A0001 */ li $t2, 1 +/* 0BB288 7F086758 14410054 */ bne $v0, $at, .L7F0868AC +/* 0BB28C 7F08675C 02002025 */ move $a0, $s0 +/* 0BB290 7F086760 AFAA007C */ sw $t2, 0x7c($sp) +/* 0BB294 7F086764 8E080004 */ lw $t0, 4($s0) +/* 0BB298 7F086768 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB29C 7F08676C 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB2A0 7F086770 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB2A4 7F086774 0FC0F3E2 */ jal sub_GAME_7F03CF88 +/* 0BB2A8 7F086778 AFA8006C */ sw $t0, 0x6c($sp) +/* 0BB2AC 7F08677C 26040008 */ addiu $a0, $s0, 8 +/* 0BB2B0 7F086780 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB2B4 7F086784 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB2B8 7F086788 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0BB2BC 7F08678C 24060004 */ li $a2, 4 +/* 0BB2C0 7F086790 1040002B */ beqz $v0, .L7F086840 +/* 0BB2C4 7F086794 8FA8006C */ lw $t0, 0x6c($sp) +/* 0BB2C8 7F086798 AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB2CC 7F08679C 810D0007 */ lb $t5, 7($t0) +/* 0BB2D0 7F0867A0 24010004 */ li $at, 4 +/* 0BB2D4 7F0867A4 55A10027 */ bnel $t5, $at, .L7F086844 +/* 0BB2D8 7F0867A8 8FAC007C */ lw $t4, 0x7c($sp) +/* 0BB2DC 7F0867AC 8D030014 */ lw $v1, 0x14($t0) +/* 0BB2E0 7F0867B0 3C010100 */ lui $at, 0x100 +/* 0BB2E4 7F0867B4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB2E8 7F0867B8 000379C0 */ sll $t7, $v1, 7 +/* 0BB2EC 7F0867BC 05E00020 */ bltz $t7, .L7F086840 +/* 0BB2F0 7F0867C0 00617025 */ or $t6, $v1, $at +/* 0BB2F4 7F0867C4 AD0E0014 */ sw $t6, 0x14($t0) +/* 0BB2F8 7F0867C8 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB2FC 7F0867CC 24010003 */ li $at, 3 +/* 0BB300 7F0867D0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BB304 7F0867D4 0041001A */ div $zero, $v0, $at +/* 0BB308 7F0867D8 00001010 */ mfhi $v0 +/* 0BB30C 7F0867DC 28410002 */ slti $at, $v0, 2 +/* 0BB310 7F0867E0 1020000E */ beqz $at, .L7F08681C +/* 0BB314 7F0867E4 240500B7 */ li $a1, 183 +/* 0BB318 7F0867E8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BB31C 7F0867EC 0C002382 */ jal play_sfx_a1 +/* 0BB320 7F0867F0 00003025 */ move $a2, $zero +/* 0BB324 7F0867F4 00402025 */ move $a0, $v0 +/* 0BB328 7F0867F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB32C 7F0867FC 8FA50050 */ lw $a1, 0x50($sp) +/* 0BB330 7F086800 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB334 7F086804 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB338 7F086808 24010003 */ li $at, 3 +/* 0BB33C 7F08680C 0041001A */ div $zero, $v0, $at +/* 0BB340 7F086810 00001010 */ mfhi $v0 +/* 0BB344 7F086814 00000000 */ nop +/* 0BB348 7F086818 00000000 */ nop +.L7F08681C: +/* 0BB34C 7F08681C 18400008 */ blez $v0, .L7F086840 +/* 0BB350 7F086820 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BB354 7F086824 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BB358 7F086828 240500D5 */ li $a1, 213 +/* 0BB35C 7F08682C 0C002382 */ jal play_sfx_a1 +/* 0BB360 7F086830 00003025 */ move $a2, $zero +/* 0BB364 7F086834 00402025 */ move $a0, $v0 +/* 0BB368 7F086838 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB36C 7F08683C 8FA50050 */ lw $a1, 0x50($sp) +.L7F086840: +/* 0BB370 7F086840 8FAC007C */ lw $t4, 0x7c($sp) +.L7F086844: +/* 0BB374 7F086844 8FA40050 */ lw $a0, 0x50($sp) +/* 0BB378 7F086848 8FA50080 */ lw $a1, 0x80($sp) +/* 0BB37C 7F08684C 11800006 */ beqz $t4, .L7F086868 +/* 0BB380 7F086850 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB384 7F086854 0FC111C6 */ jal sub_GAME_7F044718 +/* 0BB388 7F086858 24070004 */ li $a3, 4 +/* 0BB38C 7F08685C 50400003 */ beql $v0, $zero, .L7F08686C +/* 0BB390 7F086860 8FB9007C */ lw $t9, 0x7c($sp) +/* 0BB394 7F086864 AFA0007C */ sw $zero, 0x7c($sp) +.L7F086868: +/* 0BB398 7F086868 8FB9007C */ lw $t9, 0x7c($sp) +.L7F08686C: +/* 0BB39C 7F08686C 8FAA0138 */ lw $t2, 0x138($sp) +/* 0BB3A0 7F086870 5720002B */ bnezl $t9, .L7F086920 +/* 0BB3A4 7F086874 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB3A8 7F086878 C5480058 */ lwc1 $f8, 0x58($t2) +/* 0BB3AC 7F08687C 4406A000 */ mfc1 $a2, $f20 +/* 0BB3B0 7F086880 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BB3B4 7F086884 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BB3B8 7F086888 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BB3BC 7F08688C 24070001 */ li $a3, 1 +/* 0BB3C0 7F086890 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BB3C4 7F086894 C5460060 */ lwc1 $f6, 0x60($t2) +/* 0BB3C8 7F086898 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BB3CC 7F08689C 0FC09E01 */ jal sub_GAME_7F027804 +/* 0BB3D0 7F0868A0 8E040004 */ lw $a0, 4($s0) +/* 0BB3D4 7F0868A4 1000001E */ b .L7F086920 +/* 0BB3D8 7F0868A8 8FAF008C */ lw $t7, 0x8c($sp) +.L7F0868AC: +/* 0BB3DC 7F0868AC 24010001 */ li $at, 1 +/* 0BB3E0 7F0868B0 1441001A */ bne $v0, $at, .L7F08691C +/* 0BB3E4 7F0868B4 02002025 */ move $a0, $s0 +/* 0BB3E8 7F0868B8 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BB3EC 7F0868BC 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0BB3F0 7F0868C0 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BB3F4 7F0868C4 8FA50060 */ lw $a1, 0x60($sp) +/* 0BB3F8 7F0868C8 8FA40064 */ lw $a0, 0x64($sp) +/* 0BB3FC 7F0868CC 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB400 7F0868D0 58A00013 */ blezl $a1, .L7F086920 +/* 0BB404 7F0868D4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB408 7F0868D8 0FC111AE */ jal sub_GAME_7F0446B8 +/* 0BB40C 7F0868DC 24070004 */ li $a3, 4 +/* 0BB410 7F0868E0 5040000F */ beql $v0, $zero, .L7F086920 +/* 0BB414 7F0868E4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB418 7F0868E8 0FC26C54 */ jal get_cur_playernum +/* 0BB41C 7F0868EC 00000000 */ nop +/* 0BB420 7F0868F0 8E060004 */ lw $a2, 4($s0) +/* 0BB424 7F0868F4 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BB428 7F0868F8 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BB42C 7F0868FC AFA20010 */ sw $v0, 0x10($sp) +/* 0BB430 7F086900 02002025 */ move $a0, $s0 +/* 0BB434 7F086904 24070020 */ li $a3, 32 +/* 0BB438 7F086908 0FC137BF */ jal sub_GAME_7F04DEFC +/* 0BB43C 7F08690C 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BB440 7F086910 240D005A */ li $t5, 90 +/* 0BB444 7F086914 3C018003 */ lui $at, %hi(D_80036490) +/* 0BB448 7F086918 AC2D6490 */ sw $t5, %lo(D_80036490)($at) +.L7F08691C: +/* 0BB44C 7F08691C 8FAF008C */ lw $t7, 0x8c($sp) +.L7F086920: +/* 0BB450 7F086920 25EE0002 */ addiu $t6, $t7, 2 +/* 0BB454 7F086924 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB458 7F086928 85C20000 */ lh $v0, ($t6) +/* 0BB45C 7F08692C 0443FF7C */ bgezl $v0, .L7F086720 +/* 0BB460 7F086930 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB464 7F086934 8FA40394 */ lw $a0, 0x394($sp) +.L7F086938: +/* 0BB468 7F086938 0FC2037E */ jal sub_GAME_7F080DF8 +/* 0BB46C 7F08693C 8FA50390 */ lw $a1, 0x390($sp) +/* 0BB470 7F086940 0FC2051E */ jal sub_GAME_7F081478 +/* 0BB474 7F086944 00000000 */ nop +/* 0BB478 7F086948 0FC22867 */ jal sub_GAME_7F08A19C +/* 0BB47C 7F08694C 00000000 */ nop +/* 0BB480 7F086950 0FC243DF */ jal get_debug_man_pos_flag +/* 0BB484 7F086954 00000000 */ nop +/* 0BB488 7F086958 50400008 */ beql $v0, $zero, .L7F08697C +/* 0BB48C 7F08695C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BB490 7F086960 8E280000 */ lw $t0, ($s1) +/* 0BB494 7F086964 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BB498 7F086968 8D040488 */ lw $a0, 0x488($t0) +/* 0BB49C 7F08696C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB4A0 7F086970 0FC2CB0B */ jal copy_tile_RGB_as_24bit +/* 0BB4A4 7F086974 8D060494 */ lw $a2, 0x494($t0) +/* 0BB4A8 7F086978 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08697C: +/* 0BB4AC 7F08697C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BB4B0 7F086980 8FB00024 */ lw $s0, 0x24($sp) +/* 0BB4B4 7F086984 8FB10028 */ lw $s1, 0x28($sp) +/* 0BB4B8 7F086988 03E00008 */ jr $ra +/* 0BB4BC 7F08698C 27BD03B8 */ addiu $sp, $sp, 0x3b8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9868 7F084CF8 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B986C 7F084CFC 3C198003 */ lui $t9, %hi(D_800367F4) # $t9, 0x8003 +/* 0B9870 7F084D00 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9874 7F084D04 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9878 7F084D08 AFB00024 */ sw $s0, 0x24($sp) +/* 0B987C 7F084D0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9880 7F084D10 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9884 7F084D14 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9888 7F084D18 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B988C 7F084D1C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B9890 7F084D20 27396834 */ addiu $t9, %lo(D_800367F4) # addiu $t9, $t9, 0x6834 +/* 0B9894 7F084D24 8F210000 */ lw $at, ($t9) +/* 0B9898 7F084D28 27AA03AC */ addiu $t2, $sp, 0x3ac +/* 0B989C 7F084D2C 8F2C0004 */ lw $t4, 4($t9) +/* 0B98A0 7F084D30 AD410000 */ sw $at, ($t2) +/* 0B98A4 7F084D34 8F210008 */ lw $at, 8($t9) +/* 0B98A8 7F084D38 4480A000 */ mtc1 $zero, $f20 +/* 0B98AC 7F084D3C 00048600 */ sll $s0, $a0, 0x18 +/* 0B98B0 7F084D40 AD410008 */ sw $at, 8($t2) +/* 0B98B4 7F084D44 00107603 */ sra $t6, $s0, 0x18 +/* 0B98B8 7F084D48 AD4C0004 */ sw $t4, 4($t2) +/* 0B98BC 7F084D4C 29C10064 */ slti $at, $t6, 0x64 +/* 0B98C0 7F084D50 01C08025 */ move $s0, $t6 +/* 0B98C4 7F084D54 AFA00394 */ sw $zero, 0x394($sp) +/* 0B98C8 7F084D58 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B98CC 7F084D5C 10200004 */ beqz $at, .Ljp7F084D70 +/* 0B98D0 7F084D60 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B98D4 7F084D64 29C1FF9D */ slti $at, $t6, -0x63 +/* 0B98D8 7F084D68 50200004 */ beql $at, $zero, .Ljp7F084D7C +/* 0B98DC 7F084D6C 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D70: +/* 0B98E0 7F084D70 0FC1B297 */ jal return_null +/* 0B98E4 7F084D74 00000000 */ nop +/* 0B98E8 7F084D78 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D7C: +/* 0B98EC 7F084D7C 29610064 */ slti $at, $t3, 0x64 +/* 0B98F0 7F084D80 10200003 */ beqz $at, .Ljp7F084D90 +/* 0B98F4 7F084D84 2961FF9D */ slti $at, $t3, -0x63 +/* 0B98F8 7F084D88 10200003 */ beqz $at, .Ljp7F084D98 +/* 0B98FC 7F084D8C 00000000 */ nop +.Ljp7F084D90: +/* 0B9900 7F084D90 0FC1B297 */ jal return_null +/* 0B9904 7F084D94 00000000 */ nop +.Ljp7F084D98: +/* 0B9908 7F084D98 3C038003 */ lui $v1, %hi(camera_80036424) # $v1, 0x8003 +/* 0B990C 7F084D9C 24636464 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6464 +/* 0B9910 7F084DA0 8C620000 */ lw $v0, ($v1) +/* 0B9914 7F084DA4 18400015 */ blez $v0, .Ljp7F084DFC +/* 0B9918 7F084DA8 244D0001 */ addiu $t5, $v0, 1 +/* 0B991C 7F084DAC 29A10004 */ slti $at, $t5, 4 +/* 0B9920 7F084DB0 14200012 */ bnez $at, .Ljp7F084DFC +/* 0B9924 7F084DB4 AC6D0000 */ sw $t5, ($v1) +/* 0B9928 7F084DB8 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B992C 7F084DBC 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9930 7F084DC0 8E380000 */ lw $t8, ($s1) +/* 0B9934 7F084DC4 AC600000 */ sw $zero, ($v1) +/* 0B9938 7F084DC8 24040001 */ li $a0, 1 +/* 0B993C 7F084DCC AF002A54 */ sw $zero, 0x2a54($t8) +/* 0B9940 7F084DD0 8E2F0000 */ lw $t7, ($s1) +/* 0B9944 7F084DD4 0FC177BC */ jal get_item_in_hand +/* 0B9948 7F084DD8 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0B994C 7F084DDC 24040001 */ li $a0, 1 +/* 0B9950 7F084DE0 0FC1781D */ jal remove_hands_item +/* 0B9954 7F084DE4 00402825 */ move $a1, $v0 +/* 0B9958 7F084DE8 0FC177BC */ jal get_item_in_hand +/* 0B995C 7F084DEC 00002025 */ move $a0, $zero +/* 0B9960 7F084DF0 00002025 */ move $a0, $zero +/* 0B9964 7F084DF4 0FC1781D */ jal remove_hands_item +/* 0B9968 7F084DF8 00402825 */ move $a1, $v0 +.Ljp7F084DFC: +/* 0B996C 7F084DFC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B9970 7F084E00 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9974 7F084E04 0FC1E810 */ jal setptrBONDdata +/* 0B9978 7F084E08 00002025 */ move $a0, $zero +/* 0B997C 7F084E0C 0FC21176 */ jal sub_GAME_7F083FC8 +/* 0B9980 7F084E10 00000000 */ nop +/* 0B9984 7F084E14 0FC21284 */ jal sub_GAME_7F084360 +/* 0B9988 7F084E18 00000000 */ nop +/* 0B998C 7F084E1C 00102600 */ sll $a0, $s0, 0x18 +/* 0B9990 7F084E20 00045603 */ sra $t2, $a0, 0x18 +/* 0B9994 7F084E24 01402025 */ move $a0, $t2 +/* 0B9998 7F084E28 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B999C 7F084E2C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B99A0 7F084E30 0FC207E1 */ jal controller_gameplay_interaction +/* 0B99A4 7F084E34 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B99A8 7F084E38 0FC3021B */ jal get_controls_locked_flag +/* 0B99AC 7F084E3C 00000000 */ nop +/* 0B99B0 7F084E40 50400004 */ beql $v0, $zero, .Ljp7F084E54 +/* 0B99B4 7F084E44 8E390000 */ lw $t9, ($s1) +/* 0B99B8 7F084E48 0FC1FC3F */ jal sub_GAME_7F07EAF0 +/* 0B99BC 7F084E4C 00000000 */ nop +/* 0B99C0 7F084E50 8E390000 */ lw $t9, ($s1) +.Ljp7F084E54: +/* 0B99C4 7F084E54 8F2C01C8 */ lw $t4, 0x1c8($t9) +/* 0B99C8 7F084E58 11800003 */ beqz $t4, .Ljp7F084E68 +/* 0B99CC 7F084E5C 00000000 */ nop +/* 0B99D0 7F084E60 0FC1FC98 */ jal sub_GAME_7F07EC54 +/* 0B99D4 7F084E64 00000000 */ nop +.Ljp7F084E68: +/* 0B99D8 7F084E68 3C0B8003 */ lui $t3, %hi(in_tank_flag) # $t3, 0x8003 +/* 0B99DC 7F084E6C 8D6B6488 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B99E0 7F084E70 1560006E */ bnez $t3, .Ljp7F08502C +/* 0B99E4 7F084E74 00000000 */ nop +/* 0B99E8 7F084E78 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0B99EC 7F084E7C 00000000 */ nop +/* 0B99F0 7F084E80 5440000D */ bnezl $v0, .Ljp7F084EB8 +/* 0B99F4 7F084E84 8E280000 */ lw $t0, ($s1) +/* 0B99F8 7F084E88 8E280000 */ lw $t0, ($s1) +/* 0B99FC 7F084E8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9A00 7F084E90 44815000 */ mtc1 $at, $f10 +/* 0B9A04 7F084E94 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9A08 7F084E98 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B9A0C 7F084E9C 44812000 */ mtc1 $at, $f4 +/* 0B9A10 7F084EA0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9A14 7F084EA4 8E280000 */ lw $t0, ($s1) +/* 0B9A18 7F084EA8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B9A1C 7F084EAC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9A20 7F084EB0 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9A24 7F084EB4 8E280000 */ lw $t0, ($s1) +.Ljp7F084EB8: +/* 0B9A28 7F084EB8 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B9A2C 7F084EBC 4612A032 */ c.eq.s $f20, $f18 +/* 0B9A30 7F084EC0 00000000 */ nop +/* 0B9A34 7F084EC4 45020007 */ bc1fl .Ljp7F084EE4 +/* 0B9A38 7F084EC8 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B9A3C 7F084ECC C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9A40 7F084ED0 4606A032 */ c.eq.s $f20, $f6 +/* 0B9A44 7F084ED4 00000000 */ nop +/* 0B9A48 7F084ED8 45010054 */ bc1t .Ljp7F08502C +/* 0B9A4C 7F084EDC 00000000 */ nop +/* 0B9A50 7F084EE0 C5000188 */ lwc1 $f0, 0x188($t0) +.Ljp7F084EE4: +/* 0B9A54 7F084EE4 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9A58 7F084EE8 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B9A5C 7F084EEC 46009387 */ neg.s $f14, $f18 +/* 0B9A60 7F084EF0 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9A64 7F084EF4 00000000 */ nop +/* 0B9A68 7F084EF8 46107102 */ mul.s $f4, $f14, $f16 +/* 0B9A6C 7F084EFC 46044280 */ add.s $f10, $f8, $f4 +/* 0B9A70 7F084F00 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9A74 7F084F04 00000000 */ nop +/* 0B9A78 7F084F08 46100202 */ mul.s $f8, $f0, $f16 +/* 0B9A7C 7F084F0C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9A80 7F084F10 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9A84 7F084F14 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9A88 7F084F18 46129182 */ mul.s $f6, $f18, $f18 +/* 0B9A8C 7F084F1C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B9A90 7F084F20 0C007E08 */ jal sqrtf +/* 0B9A94 7F084F24 46065300 */ add.s $f12, $f10, $f6 +/* 0B9A98 7F084F28 8E280000 */ lw $t0, ($s1) +/* 0B9A9C 7F084F2C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B9AA0 7F084F30 3C018005 */ lui $at, %hi(D_8005516C) # $at, 0x8005 +/* 0B9AA4 7F084F34 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B9AA8 7F084F38 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9AAC 7F084F3C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9AB0 7F084F40 46044280 */ add.s $f10, $f8, $f4 +/* 0B9AB4 7F084F44 00001825 */ move $v1, $zero +/* 0B9AB8 7F084F48 2404000C */ li $a0, 12 +/* 0B9ABC 7F084F4C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B9AC0 7F084F50 8E280000 */ lw $t0, ($s1) +/* 0B9AC4 7F084F54 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B9AC8 7F084F58 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B9ACC 7F084F5C 46083100 */ add.s $f4, $f6, $f8 +/* 0B9AD0 7F084F60 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B9AD4 7F084F64 C42C519C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B9AD8 7F084F68 8E2D0000 */ lw $t5, ($s1) +.Ljp7F084F6C: +/* 0B9ADC 7F084F6C 01A31021 */ addu $v0, $t5, $v1 +/* 0B9AE0 7F084F70 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B9AE4 7F084F74 4602A032 */ c.eq.s $f20, $f2 +/* 0B9AE8 7F084F78 00000000 */ nop +/* 0B9AEC 7F084F7C 45030029 */ bc1tl .Ljp7F085024 +/* 0B9AF0 7F084F80 24630004 */ addiu $v1, $v1, 4 +/* 0B9AF4 7F084F84 4602A03C */ c.lt.s $f20, $f2 +/* 0B9AF8 7F084F88 00000000 */ nop +/* 0B9AFC 7F084F8C 45020012 */ bc1fl .Ljp7F084FD8 +/* 0B9B00 7F084F90 4614103C */ c.lt.s $f2, $f20 +/* 0B9B04 7F084F94 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9B08 7F084F98 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B9B0C 7F084F9C 00000000 */ nop +/* 0B9B10 7F084FA0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9B14 7F084FA4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9B18 7F084FA8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B9B1C 7F084FAC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9B20 7F084FB0 8E2E0000 */ lw $t6, ($s1) +/* 0B9B24 7F084FB4 01C31021 */ addu $v0, $t6, $v1 +/* 0B9B28 7F084FB8 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B9B2C 7F084FBC 4614303C */ c.lt.s $f6, $f20 +/* 0B9B30 7F084FC0 00000000 */ nop +/* 0B9B34 7F084FC4 45000016 */ bc1f .Ljp7F085020 +/* 0B9B38 7F084FC8 00000000 */ nop +/* 0B9B3C 7F084FCC 10000014 */ b .Ljp7F085020 +/* 0B9B40 7F084FD0 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9B44 7F084FD4 4614103C */ c.lt.s $f2, $f20 +.Ljp7F084FD8: +/* 0B9B48 7F084FD8 00000000 */ nop +/* 0B9B4C 7F084FDC 45020011 */ bc1fl .Ljp7F085024 +/* 0B9B50 7F084FE0 24630004 */ addiu $v1, $v1, 4 +/* 0B9B54 7F084FE4 C5280000 */ lwc1 $f8, ($t1) +/* 0B9B58 7F084FE8 46086102 */ mul.s $f4, $f12, $f8 +/* 0B9B5C 7F084FEC 00000000 */ nop +/* 0B9B60 7F084FF0 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9B64 7F084FF4 46005183 */ div.s $f6, $f10, $f0 +/* 0B9B68 7F084FF8 46061201 */ sub.s $f8, $f2, $f6 +/* 0B9B6C 7F084FFC E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9B70 7F085000 8E380000 */ lw $t8, ($s1) +/* 0B9B74 7F085004 03031021 */ addu $v0, $t8, $v1 +/* 0B9B78 7F085008 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B9B7C 7F08500C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9B80 7F085010 00000000 */ nop +/* 0B9B84 7F085014 45000002 */ bc1f .Ljp7F085020 +/* 0B9B88 7F085018 00000000 */ nop +/* 0B9B8C 7F08501C E4540180 */ swc1 $f20, 0x180($v0) +.Ljp7F085020: +/* 0B9B90 7F085020 24630004 */ addiu $v1, $v1, 4 +.Ljp7F085024: +/* 0B9B94 7F085024 5464FFD1 */ bnel $v1, $a0, .Ljp7F084F6C +/* 0B9B98 7F085028 8E2D0000 */ lw $t5, ($s1) +.Ljp7F08502C: +/* 0B9B9C 7F08502C 3C0F8003 */ lui $t7, %hi(in_tank_flag) # $t7, 0x8003 +/* 0B9BA0 7F085030 8DEF6488 */ lw $t7, %lo(in_tank_flag)($t7) +/* 0B9BA4 7F085034 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9BA8 7F085038 24010001 */ li $at, 1 +/* 0B9BAC 7F08503C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9BB0 7F085040 15E10211 */ bne $t7, $at, .Ljp7F085888 +/* 0B9BB4 7F085044 8E280000 */ lw $t0, ($s1) +/* 0B9BB8 7F085048 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9BBC 7F08504C C5260000 */ lwc1 $f6, ($t1) +/* 0B9BC0 7F085050 3C018005 */ lui $at, %hi(D_80055170) # $at, 0x8005 +/* 0B9BC4 7F085054 C42C51A0 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B9BC8 7F085058 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9BCC 7F08505C 3C018005 */ lui $at, %hi(D_80055174) # $at, 0x8005 +/* 0B9BD0 7F085060 C42451A4 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B9BD4 7F085064 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9BD8 7F085068 44813000 */ mtc1 $at, $f6 +/* 0B9BDC 7F08506C 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9BE0 7F085070 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B9BE4 7F085074 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9BE8 7F085078 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9BEC 7F08507C 02003825 */ move $a3, $s0 +/* 0B9BF0 7F085080 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9BF4 7F085084 27AA0368 */ addiu $t2, $sp, 0x368 +/* 0B9BF8 7F085088 46065082 */ mul.s $f2, $f10, $f6 +/* 0B9BFC 7F08508C 46024000 */ add.s $f0, $f8, $f2 +/* 0B9C00 7F085090 4600603E */ c.le.s $f12, $f0 +/* 0B9C04 7F085094 00000000 */ nop +/* 0B9C08 7F085098 45020003 */ bc1fl .Ljp7F0850A8 +/* 0B9C0C 7F08509C 4614003C */ c.lt.s $f0, $f20 +/* 0B9C10 7F0850A0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9C14 7F0850A4 4614003C */ c.lt.s $f0, $f20 +.Ljp7F0850A8: +/* 0B9C18 7F0850A8 00000000 */ nop +/* 0B9C1C 7F0850AC 45020003 */ bc1fl .Ljp7F0850BC +/* 0B9C20 7F0850B0 8D050488 */ lw $a1, 0x488($t0) +/* 0B9C24 7F0850B4 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9C28 7F0850B8 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F0850BC: +/* 0B9C2C 7F0850BC 44060000 */ mfc1 $a2, $f0 +/* 0B9C30 7F0850C0 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9C34 7F0850C4 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9C38 7F0850C8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9C3C 7F0850CC AFAA0010 */ sw $t2, 0x10($sp) +/* 0B9C40 7F0850D0 50400007 */ beql $v0, $zero, .Ljp7F0850F0 +/* 0B9C44 7F0850D4 3C01BF80 */ lui $at, 0xbf80 +/* 0B9C48 7F0850D8 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B9C4C 7F0850DC 3C018003 */ li $at, 0x80030000 # -0.000000 +/* 0B9C50 7F0850E0 E42464A4 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9C54 7F0850E4 100000CB */ b .Ljp7F085414 +/* 0B9C58 7F0850E8 8E280000 */ lw $t0, ($s1) +/* 0B9C5C 7F0850EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.Ljp7F0850F0: +/* 0B9C60 7F0850F0 44815000 */ mtc1 $at, $f10 +/* 0B9C64 7F0850F4 44813000 */ mtc1 $at, $f6 +/* 0B9C68 7F0850F8 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B9C6C 7F0850FC 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9C70 7F085100 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9C74 7F085104 0FC2CD18 */ jal sub_GAME_7F0B28B0 +/* 0B9C78 7F085108 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B9C7C 7F08510C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9C80 7F085110 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9C84 7F085114 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9C88 7F085118 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B9C8C 7F08511C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B9C90 7F085120 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9C94 7F085124 46021202 */ mul.s $f8, $f2, $f2 +/* 0B9C98 7F085128 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9C9C 7F08512C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B9CA0 7F085130 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9CA4 7F085134 0C007E08 */ jal sqrtf +/* 0B9CA8 7F085138 46044300 */ add.s $f12, $f8, $f4 +/* 0B9CAC 7F08513C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9CB0 7F085140 44815000 */ mtc1 $at, $f10 +/* 0B9CB4 7F085144 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9CB8 7F085148 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9CBC 7F08514C 46005403 */ div.s $f16, $f10, $f0 +/* 0B9CC0 7F085150 8E280000 */ lw $t0, ($s1) +/* 0B9CC4 7F085154 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9CC8 7F085158 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9CCC 7F08515C 00000000 */ nop +/* 0B9CD0 7F085160 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9CD4 7F085164 46001307 */ neg.s $f12, $f2 +/* 0B9CD8 7F085168 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9CDC 7F08516C E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B9CE0 7F085170 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9CE4 7F085174 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9CE8 7F085178 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B9CEC 7F08517C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9CF0 7F085180 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9CF4 7F085184 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9CF8 7F085188 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9CFC 7F08518C C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9D00 7F085190 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9D04 7F085194 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D08 7F085198 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9D0C 7F08519C 46044480 */ add.s $f18, $f8, $f4 +/* 0B9D10 7F0851A0 4614903C */ c.lt.s $f18, $f20 +/* 0B9D14 7F0851A4 00000000 */ nop +/* 0B9D18 7F0851A8 45000006 */ bc1f .Ljp7F0851C4 +/* 0B9D1C 7F0851AC 00000000 */ nop +/* 0B9D20 7F0851B0 46007287 */ neg.s $f10, $f14 +/* 0B9D24 7F0851B4 46006187 */ neg.s $f6, $f12 +/* 0B9D28 7F0851B8 46009487 */ neg.s $f18, $f18 +/* 0B9D2C 7F0851BC E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9D30 7F0851C0 E7A60320 */ swc1 $f6, 0x320($sp) +.Ljp7F0851C4: +/* 0B9D34 7F0851C4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9D38 7F0851C8 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9D3C 7F0851CC C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9D40 7F0851D0 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9D44 7F0851D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9D48 7F0851D8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9D4C 7F0851DC C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9D50 7F0851E0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D54 7F0851E4 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9D58 7F0851E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9D5C 7F0851EC 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9D60 7F0851F0 4612003C */ c.lt.s $f0, $f18 +/* 0B9D64 7F0851F4 00000000 */ nop +/* 0B9D68 7F0851F8 45020004 */ bc1fl .Ljp7F08520C +/* 0B9D6C 7F0851FC C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9D70 7F085200 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9D74 7F085204 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9D78 7F085208 C7A40368 */ lwc1 $f4, 0x368($sp) +.Ljp7F08520C: +/* 0B9D7C 7F08520C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9D80 7F085210 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9D84 7F085214 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9D88 7F085218 46082081 */ sub.s $f2, $f4, $f8 +/* 0B9D8C 7F08521C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9D90 7F085220 46021102 */ mul.s $f4, $f2, $f2 +/* 0B9D94 7F085224 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9D98 7F085228 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B9D9C 7F08522C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9DA0 7F085230 0C007E08 */ jal sqrtf +/* 0B9DA4 7F085234 46082300 */ add.s $f12, $f4, $f8 +/* 0B9DA8 7F085238 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9DAC 7F08523C 44815000 */ mtc1 $at, $f10 +/* 0B9DB0 7F085240 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9DB4 7F085244 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9DB8 7F085248 46005403 */ div.s $f16, $f10, $f0 +/* 0B9DBC 7F08524C 8E280000 */ lw $t0, ($s1) +/* 0B9DC0 7F085250 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9DC4 7F085254 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9DC8 7F085258 00000000 */ nop +/* 0B9DCC 7F08525C 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9DD0 7F085260 46001307 */ neg.s $f12, $f2 +/* 0B9DD4 7F085264 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B9DD8 7F085268 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B9DDC 7F08526C C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9DE0 7F085270 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9DE4 7F085274 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9DE8 7F085278 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B9DEC 7F08527C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9DF0 7F085280 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9DF4 7F085284 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9DF8 7F085288 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9DFC 7F08528C 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9E00 7F085290 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9E04 7F085294 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9E08 7F085298 46082480 */ add.s $f18, $f4, $f8 +/* 0B9E0C 7F08529C 4614903C */ c.lt.s $f18, $f20 +/* 0B9E10 7F0852A0 00000000 */ nop +/* 0B9E14 7F0852A4 45000006 */ bc1f .Ljp7F0852C0 +/* 0B9E18 7F0852A8 00000000 */ nop +/* 0B9E1C 7F0852AC 46007407 */ neg.s $f16, $f14 +/* 0B9E20 7F0852B0 46006287 */ neg.s $f10, $f12 +/* 0B9E24 7F0852B4 46009487 */ neg.s $f18, $f18 +/* 0B9E28 7F0852B8 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B9E2C 7F0852BC E7B0030C */ swc1 $f16, 0x30c($sp) +.Ljp7F0852C0: +/* 0B9E30 7F0852C0 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9E34 7F0852C4 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9E38 7F0852C8 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B9E3C 7F0852CC C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9E40 7F0852D0 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9E44 7F0852D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9E48 7F0852D8 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B9E4C 7F0852DC C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9E50 7F0852E0 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9E54 7F0852E4 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9E58 7F0852E8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9E5C 7F0852EC C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9E60 7F0852F0 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9E64 7F0852F4 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9E68 7F0852F8 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B9E6C 7F0852FC 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9E70 7F085300 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9E74 7F085304 46043080 */ add.s $f2, $f6, $f4 +/* 0B9E78 7F085308 4600103C */ c.lt.s $f2, $f0 +/* 0B9E7C 7F08530C 00000000 */ nop +/* 0B9E80 7F085310 45020003 */ bc1fl .Ljp7F085320 +/* 0B9E84 7F085314 4612003C */ c.lt.s $f0, $f18 +/* 0B9E88 7F085318 46001006 */ mov.s $f0, $f2 +/* 0B9E8C 7F08531C 4612003C */ c.lt.s $f0, $f18 +.Ljp7F085320: +/* 0B9E90 7F085320 00000000 */ nop +/* 0B9E94 7F085324 45020004 */ bc1fl .Ljp7F085338 +/* 0B9E98 7F085328 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B9E9C 7F08532C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B9EA0 7F085330 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B9EA4 7F085334 C7A20304 */ lwc1 $f2, 0x304($sp) +.Ljp7F085338: +/* 0B9EA8 7F085338 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B9EAC 7F08533C 4602A03E */ c.le.s $f20, $f2 +/* 0B9EB0 7F085340 00000000 */ nop +/* 0B9EB4 7F085344 4502000D */ bc1fl .Ljp7F08537C +/* 0B9EB8 7F085348 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EBC 7F08534C 460A103C */ c.lt.s $f2, $f10 +/* 0B9EC0 7F085350 00000000 */ nop +/* 0B9EC4 7F085354 45030006 */ bc1tl .Ljp7F085370 +/* 0B9EC8 7F085358 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B9ECC 7F08535C 4614503C */ c.lt.s $f10, $f20 +/* 0B9ED0 7F085360 00000000 */ nop +/* 0B9ED4 7F085364 45020005 */ bc1fl .Ljp7F08537C +/* 0B9ED8 7F085368 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EDC 7F08536C E7B00324 */ swc1 $f16, 0x324($sp) +.Ljp7F085370: +/* 0B9EE0 7F085370 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9EE4 7F085374 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B9EE8 7F085378 C7A0031C */ lwc1 $f0, 0x31c($sp) +.Ljp7F08537C: +/* 0B9EEC 7F08537C C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9EF0 7F085380 4600A03E */ c.le.s $f20, $f0 +/* 0B9EF4 7F085384 00000000 */ nop +/* 0B9EF8 7F085388 45020022 */ bc1fl .Ljp7F085414 +/* 0B9EFC 7F08538C E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9F00 7F085390 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F04 7F085394 3C018005 */ lui $at, %hi(D_80055178) # $at, 0x8005 +/* 0B9F08 7F085398 C42451A8 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B9F0C 7F08539C C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9F10 7F0853A0 3C018005 */ lui $at, %hi(D_8005517C) # $at, 0x8005 +/* 0B9F14 7F0853A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9F18 7F0853A8 24050001 */ li $a1, 1 +/* 0B9F1C 7F0853AC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F20 7F0853B0 C42451AC */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9F24 7F0853B4 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F28 7F0853B8 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B9F2C 7F0853BC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F30 7F0853C0 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0B9F34 7F0853C4 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9F38 7F0853C8 8E280000 */ lw $t0, ($s1) +/* 0B9F3C 7F0853CC E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9F40 7F0853D0 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9F44 7F0853D4 27B90368 */ addiu $t9, $sp, 0x368 +/* 0B9F48 7F0853D8 8D050488 */ lw $a1, 0x488($t0) +/* 0B9F4C 7F0853DC AFB90010 */ sw $t9, 0x10($sp) +/* 0B9F50 7F0853E0 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9F54 7F0853E4 02003825 */ move $a3, $s0 +/* 0B9F58 7F0853E8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9F5C 7F0853EC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9F60 7F0853F0 10400004 */ beqz $v0, .Ljp7F085404 +/* 0B9F64 7F0853F4 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9F68 7F0853F8 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9F6C 7F0853FC 10000002 */ b .Ljp7F085408 +/* 0B9F70 7F085400 E42864A4 */ swc1 $f8, %lo(D_80036464)($at) +.Ljp7F085404: +/* 0B9F74 7F085404 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085408: +/* 0B9F78 7F085408 10000002 */ b .Ljp7F085414 +/* 0B9F7C 7F08540C 8E280000 */ lw $t0, ($s1) +/* 0B9F80 7F085410 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085414: +/* 0B9F84 7F085414 3C018005 */ lui $at, %hi(D_80055180) # $at, 0x8005 +/* 0B9F88 7F085418 C42E51B0 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B9F8C 7F08541C 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0B9F90 7F085420 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0B9F94 7F085424 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0B9F98 7F085428 C42464C8 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B9F9C 7F08542C C4660000 */ lwc1 $f6, ($v1) +/* 0B9FA0 7F085430 3C078003 */ lui $a3, %hi(D_80036474) # $a3, 0x8003 +/* 0B9FA4 7F085434 24E764B4 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x64b4 +/* 0B9FA8 7F085438 46043280 */ add.s $f10, $f6, $f4 +/* 0B9FAC 7F08543C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9FB0 7F085440 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9FB4 7F085444 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0B9FB8 7F085448 E46A0000 */ swc1 $f10, ($v1) +/* 0B9FBC 7F08544C C4600000 */ lwc1 $f0, ($v1) +/* 0B9FC0 7F085450 44815000 */ mtc1 $at, $f10 +/* 0B9FC4 7F085454 46006406 */ mov.s $f16, $f12 +/* 0B9FC8 7F085458 4600703E */ c.le.s $f14, $f0 +/* 0B9FCC 7F08545C 00000000 */ nop +/* 0B9FD0 7F085460 45020005 */ bc1fl .Ljp7F085478 +/* 0B9FD4 7F085464 4614003C */ c.lt.s $f0, $f20 +/* 0B9FD8 7F085468 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B9FDC 7F08546C E4680000 */ swc1 $f8, ($v1) +/* 0B9FE0 7F085470 C4600000 */ lwc1 $f0, ($v1) +/* 0B9FE4 7F085474 4614003C */ c.lt.s $f0, $f20 +.Ljp7F085478: +/* 0B9FE8 7F085478 00000000 */ nop +/* 0B9FEC 7F08547C 45020005 */ bc1fl .Ljp7F085494 +/* 0B9FF0 7F085480 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9FF4 7F085484 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9FF8 7F085488 E4660000 */ swc1 $f6, ($v1) +/* 0B9FFC 7F08548C C4600000 */ lwc1 $f0, ($v1) +/* 0BA000 7F085490 C504014C */ lwc1 $f4, 0x14c($t0) +.Ljp7F085494: +/* 0BA004 7F085494 3C018005 */ lui $at, %hi(D_80055184) # $at, 0x8005 +/* 0BA008 7F085498 C42651B4 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0BA00C 7F08549C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA010 7F0854A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA014 7F0854A4 44815000 */ mtc1 $at, $f10 +/* 0BA018 7F0854A8 3C018005 */ lui $at, %hi(D_80055188) # $at, 0x8005 +/* 0BA01C 7F0854AC 46064102 */ mul.s $f4, $f8, $f6 +/* 0BA020 7F0854B0 00000000 */ nop +/* 0BA024 7F0854B4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA028 7F0854B8 46004080 */ add.s $f2, $f8, $f0 +/* 0BA02C 7F0854BC 4614103C */ c.lt.s $f2, $f20 +/* 0BA030 7F0854C0 00000000 */ nop +/* 0BA034 7F0854C4 45000002 */ bc1f .Ljp7F0854D0 +/* 0BA038 7F0854C8 00000000 */ nop +/* 0BA03C 7F0854CC 460E1080 */ add.s $f2, $f2, $f14 +.Ljp7F0854D0: +/* 0BA040 7F0854D0 4602703E */ c.le.s $f14, $f2 +/* 0BA044 7F0854D4 00000000 */ nop +/* 0BA048 7F0854D8 45020003 */ bc1fl .Ljp7F0854E8 +/* 0BA04C 7F0854DC 460C1001 */ sub.s $f0, $f2, $f12 +/* 0BA050 7F0854E0 460E1081 */ sub.s $f2, $f2, $f14 +/* 0BA054 7F0854E4 460C1001 */ sub.s $f0, $f2, $f12 +.Ljp7F0854E8: +/* 0BA058 7F0854E8 C42651B8 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0BA05C 7F0854EC 3C018005 */ lui $at, %hi(D_80055190) +/* 0BA060 7F0854F0 4600303E */ c.le.s $f6, $f0 +/* 0BA064 7F0854F4 00000000 */ nop +/* 0BA068 7F0854F8 45000005 */ bc1f .Ljp7F085510 +/* 0BA06C 7F0854FC 00000000 */ nop +/* 0BA070 7F085500 3C018005 */ lui $at, %hi(D_8005518C) # $at, 0x8005 +/* 0BA074 7F085504 C42451BC */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0BA078 7F085508 10000009 */ b .Ljp7F085530 +/* 0BA07C 7F08550C 46041081 */ sub.s $f2, $f2, $f4 +.Ljp7F085510: +/* 0BA080 7F085510 C42A51C0 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0BA084 7F085514 3C018005 */ lui $at, %hi(D_80055194) # $at, 0x8005 +/* 0BA088 7F085518 460A003C */ c.lt.s $f0, $f10 +/* 0BA08C 7F08551C 00000000 */ nop +/* 0BA090 7F085520 45000003 */ bc1f .Ljp7F085530 +/* 0BA094 7F085524 00000000 */ nop +/* 0BA098 7F085528 C42851C4 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0BA09C 7F08552C 46081080 */ add.s $f2, $f2, $f8 +.Ljp7F085530: +/* 0BA0A0 7F085530 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA0A4 7F085534 00001025 */ move $v0, $zero +/* 0BA0A8 7F085538 3C018005 */ lui $at, %hi(D_80055198) # $at, 0x8005 +/* 0BA0AC 7F08553C 18800013 */ blez $a0, .Ljp7F08558C +/* 0BA0B0 7F085540 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA0B4 7F085544 C42E51C8 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0BA0B8 7F085548 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA0BC 7F08554C C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0C0 7F085550 24420001 */ addiu $v0, $v0, 1 +/* 0BA0C4 7F085554 0044082A */ slt $at, $v0, $a0 +/* 0BA0C8 7F085558 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0CC 7F08555C 5020000A */ beql $at, $zero, .Ljp7F085588 +/* 0BA0D0 7F085560 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0D4 7F085564 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085568: +/* 0BA0D8 7F085568 24420001 */ addiu $v0, $v0, 1 +/* 0BA0DC 7F08556C 0044082A */ slt $at, $v0, $a0 +/* 0BA0E0 7F085570 E60C0000 */ swc1 $f12, ($s0) +/* 0BA0E4 7F085574 C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0E8 7F085578 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0EC 7F08557C 5420FFFA */ bnezl $at, .Ljp7F085568 +/* 0BA0F0 7F085580 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0F4 7F085584 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085588: +/* 0BA0F8 7F085588 E60C0000 */ swc1 $f12, ($s0) +.Ljp7F08558C: +/* 0BA0FC 7F08558C 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA100 7F085590 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA104 7F085594 3C018005 */ lui $at, %hi(D_8005519C) # $at, 0x8005 +/* 0BA108 7F085598 C42051CC */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0BA10C 7F08559C C6080000 */ lwc1 $f8, ($s0) +/* 0BA110 7F0855A0 3C018005 */ lui $at, %hi(D_800551A0) # $at, 0x8005 +/* 0BA114 7F0855A4 C42251D0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0BA118 7F0855A8 46004182 */ mul.s $f6, $f8, $f0 +/* 0BA11C 7F0855AC 2504048C */ addiu $a0, $t0, 0x48c +/* 0BA120 7F0855B0 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BA124 7F0855B4 E4E60000 */ swc1 $f6, ($a3) +/* 0BA128 7F0855B8 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA12C 7F0855BC 460C103E */ c.le.s $f2, $f12 +/* 0BA130 7F0855C0 00000000 */ nop +/* 0BA134 7F0855C4 45020007 */ bc1fl .Ljp7F0855E4 +/* 0BA138 7F0855C8 4614603C */ c.lt.s $f12, $f20 +/* 0BA13C 7F0855CC 46026101 */ sub.s $f4, $f12, $f2 +/* 0BA140 7F0855D0 E4E40000 */ swc1 $f4, ($a3) +/* 0BA144 7F0855D4 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA148 7F0855D8 46006283 */ div.s $f10, $f12, $f0 +/* 0BA14C 7F0855DC E60A0000 */ swc1 $f10, ($s0) +/* 0BA150 7F0855E0 4614603C */ c.lt.s $f12, $f20 +.Ljp7F0855E4: +/* 0BA154 7F0855E4 00000000 */ nop +/* 0BA158 7F0855E8 45020007 */ bc1fl .Ljp7F085608 +/* 0BA15C 7F0855EC 8D050488 */ lw $a1, 0x488($t0) +/* 0BA160 7F0855F0 46026200 */ add.s $f8, $f12, $f2 +/* 0BA164 7F0855F4 E4E80000 */ swc1 $f8, ($a3) +/* 0BA168 7F0855F8 C4E60000 */ lwc1 $f6, ($a3) +/* 0BA16C 7F0855FC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA170 7F085600 E6040000 */ swc1 $f4, ($s0) +/* 0BA174 7F085604 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F085608: +/* 0BA178 7F085608 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0BA17C 7F08560C 0FC1F4F3 */ jal sub_GAME_7F07CDA8 +/* 0BA180 7F085610 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BA184 7F085614 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0BA188 7F085618 3C018005 */ lui $at, %hi(D_800551A8) # $at, 0x8005 +/* 0BA18C 7F08561C C42E51D8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0BA190 7F085620 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0BA194 7F085624 14400009 */ bnez $v0, .Ljp7F08564C +/* 0BA198 7F085628 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0BA19C 7F08562C 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA1A0 7F085630 E43064B4 */ swc1 $f16, %lo(D_80036474)($at) +/* 0BA1A4 7F085634 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BA1A8 7F085638 3C018005 */ lui $at, %hi(D_800551AC) # $at, 0x8005 +/* 0BA1AC 7F08563C C42851DC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0BA1B0 7F085640 E4700000 */ swc1 $f16, ($v1) +/* 0BA1B4 7F085644 46085183 */ div.s $f6, $f10, $f8 +/* 0BA1B8 7F085648 E6060000 */ swc1 $f6, ($s0) +.Ljp7F08564C: +/* 0BA1BC 7F08564C 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA1C0 7F085650 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA1C4 7F085654 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA1C8 7F085658 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA1CC 7F08565C 1060002F */ beqz $v1, .Ljp7F08571C +/* 0BA1D0 7F085660 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0BA1D4 7F085664 8C6C0004 */ lw $t4, 4($v1) +/* 0BA1D8 7F085668 C4440000 */ lwc1 $f4, ($v0) +/* 0BA1DC 7F08566C C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA1E0 7F085670 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA1E4 7F085674 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0BA1E8 7F085678 02002825 */ move $a1, $s0 +/* 0BA1EC 7F08567C AFAC0300 */ sw $t4, 0x300($sp) +/* 0BA1F0 7F085680 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA1F4 7F085684 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA1F8 7F085688 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0BA1FC 7F08568C 02002025 */ move $a0, $s0 +/* 0BA200 7F085690 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA204 7F085694 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA208 7F085698 0FC1F376 */ jal sub_GAME_7F07C7B4 +/* 0BA20C 7F08569C 00000000 */ nop +/* 0BA210 7F0856A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA214 7F0856A4 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA218 7F0856A8 C4480000 */ lwc1 $f8, ($v0) +/* 0BA21C 7F0856AC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0BA220 7F0856B0 C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA224 7F0856B4 3C018005 */ lui $at, %hi(D_800551BC) # $at, 0x8005 +/* 0BA228 7F0856B8 46064101 */ sub.s $f4, $f8, $f6 +/* 0BA22C 7F0856BC C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0BA230 7F0856C0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA234 7F0856C4 02002825 */ move $a1, $s0 +/* 0BA238 7F0856C8 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA23C 7F0856CC 46085181 */ sub.s $f6, $f10, $f8 +/* 0BA240 7F0856D0 C42451EC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0BA244 7F0856D4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA248 7F0856D8 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA24C 7F0856DC E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0BA250 7F0856E0 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA254 7F0856E4 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA258 7F0856E8 8FAB0300 */ lw $t3, 0x300($sp) +/* 0BA25C 7F0856EC 02002825 */ move $a1, $s0 +/* 0BA260 7F0856F0 8D6D0014 */ lw $t5, 0x14($t3) +/* 0BA264 7F0856F4 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA268 7F0856F8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0BA26C 7F0856FC 02002025 */ move $a0, $s0 +/* 0BA270 7F085700 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA274 7F085704 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA278 7F085708 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0BA27C 7F08570C 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BA280 7F085710 24050001 */ li $a1, 1 +/* 0BA284 7F085714 3C018005 */ lui $at, %hi(D_800551CC) # $at, 0x8005 +/* 0BA288 7F085718 C42E51FC */ lwc1 $f14, %lo(D_800551CC)($at) +.Ljp7F08571C: +/* 0BA28C 7F08571C 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BA290 7F085720 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA294 7F085724 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA298 7F085728 C42C64B4 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0BA29C 7F08572C 5880001B */ blezl $a0, .Ljp7F08579C +/* 0BA2A0 7F085730 3C0143B4 */ lui $at, 0x43b4 +/* 0BA2A4 7F085734 18800018 */ blez $a0, .Ljp7F085798 +/* 0BA2A8 7F085738 00001025 */ move $v0, $zero +/* 0BA2AC 7F08573C 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0BA2B0 7F085740 C42864C8 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0BA2B4 7F085744 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA2B8 7F085748 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA2BC 7F08574C 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA2C0 7F085750 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA2C4 7F085754 46064003 */ div.s $f0, $f8, $f6 +/* 0BA2C8 7F085758 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2CC 7F08575C 24420001 */ addiu $v0, $v0, 1 +/* 0BA2D0 7F085760 0044082A */ slt $at, $v0, $a0 +/* 0BA2D4 7F085764 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2D8 7F085768 5020000A */ beql $at, $zero, .Ljp7F085794 +/* 0BA2DC 7F08576C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA2E0 7F085770 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085774: +/* 0BA2E4 7F085774 24420001 */ addiu $v0, $v0, 1 +/* 0BA2E8 7F085778 0044082A */ slt $at, $v0, $a0 +/* 0BA2EC 7F08577C E4700000 */ swc1 $f16, ($v1) +/* 0BA2F0 7F085780 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2F4 7F085784 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2F8 7F085788 5420FFFA */ bnezl $at, .Ljp7F085774 +/* 0BA2FC 7F08578C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA300 7F085790 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085794: +/* 0BA304 7F085794 E4700000 */ swc1 $f16, ($v1) +.Ljp7F085798: +/* 0BA308 7F085798 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F08579C: +/* 0BA30C 7F08579C 44817000 */ mtc1 $at, $f14 +/* 0BA310 7F0857A0 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA314 7F0857A4 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA318 7F0857A8 3C018005 */ lui $at, %hi(D_800551D0) # $at, 0x8005 +/* 0BA31C 7F0857AC C4245200 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0BA320 7F0857B0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA324 7F0857B4 8E280000 */ lw $t0, ($s1) +/* 0BA328 7F0857B8 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA32C 7F0857BC 46043082 */ mul.s $f2, $f6, $f4 +/* 0BA330 7F0857C0 44814000 */ mtc1 $at, $f8 +/* 0BA334 7F0857C4 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA338 7F0857C8 3C018005 */ lui $at, %hi(D_800551D4) # $at, 0x8005 +/* 0BA33C 7F0857CC C4245204 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0BA340 7F0857D0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA344 7F0857D4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA348 7F0857D8 44814000 */ mtc1 $at, $f8 +/* 0BA34C 7F0857DC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA350 7F0857E0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA354 7F0857E4 C42464A4 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0BA358 7F0857E8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA35C 7F0857EC 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA360 7F0857F0 460C2280 */ add.s $f10, $f4, $f12 +/* 0BA364 7F0857F4 44812000 */ mtc1 $at, $f4 +/* 0BA368 7F0857F8 3C018005 */ lui $at, %hi(D_800551D8) # $at, 0x8005 +/* 0BA36C 7F0857FC 46065200 */ add.s $f8, $f10, $f6 +/* 0BA370 7F085800 46041282 */ mul.s $f10, $f2, $f4 +/* 0BA374 7F085804 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA378 7F085808 C4285208 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0BA37C 7F08580C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BA380 7F085810 46082283 */ div.s $f10, $f4, $f8 +/* 0BA384 7F085814 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA388 7F085818 8E280000 */ lw $t0, ($s1) +/* 0BA38C 7F08581C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA390 7F085820 4614003C */ c.lt.s $f0, $f20 +/* 0BA394 7F085824 00000000 */ nop +/* 0BA398 7F085828 4502000A */ bc1fl .Ljp7F085854 +/* 0BA39C 7F08582C 4600703E */ c.le.s $f14, $f0 +/* 0BA3A0 7F085830 460E0180 */ add.s $f6, $f0, $f14 +.Ljp7F085834: +/* 0BA3A4 7F085834 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA3A8 7F085838 8E280000 */ lw $t0, ($s1) +/* 0BA3AC 7F08583C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3B0 7F085840 4614003C */ c.lt.s $f0, $f20 +/* 0BA3B4 7F085844 00000000 */ nop +/* 0BA3B8 7F085848 4503FFFA */ bc1tl .Ljp7F085834 +/* 0BA3BC 7F08584C 460E0180 */ add.s $f6, $f0, $f14 +/* 0BA3C0 7F085850 4600703E */ c.le.s $f14, $f0 +.Ljp7F085854: +/* 0BA3C4 7F085854 00000000 */ nop +/* 0BA3C8 7F085858 45000009 */ bc1f .Ljp7F085880 +/* 0BA3CC 7F08585C 00000000 */ nop +/* 0BA3D0 7F085860 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085864: +/* 0BA3D4 7F085864 E5040148 */ swc1 $f4, 0x148($t0) +/* 0BA3D8 7F085868 8E280000 */ lw $t0, ($s1) +/* 0BA3DC 7F08586C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3E0 7F085870 4600703E */ c.le.s $f14, $f0 +/* 0BA3E4 7F085874 00000000 */ nop +/* 0BA3E8 7F085878 4503FFFA */ bc1tl .Ljp7F085864 +/* 0BA3EC 7F08587C 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085880: +/* 0BA3F0 7F085880 10000022 */ b .Ljp7F08590C +/* 0BA3F4 7F085884 00000000 */ nop +.Ljp7F085888: +/* 0BA3F8 7F085888 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0BA3FC 7F08588C C52A0000 */ lwc1 $f10, ($t1) +/* 0BA400 7F085890 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA404 7F085894 44812000 */ mtc1 $at, $f4 +/* 0BA408 7F085898 460A4182 */ mul.s $f6, $f8, $f10 +/* 0BA40C 7F08589C C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0BA410 7F0858A0 3C0143B4 */ lui $at, 0x43b4 +/* 0BA414 7F0858A4 46043202 */ mul.s $f8, $f6, $f4 +/* 0BA418 7F0858A8 46085000 */ add.s $f0, $f10, $f8 +/* 0BA41C 7F0858AC 4614003C */ c.lt.s $f0, $f20 +/* 0BA420 7F0858B0 00000000 */ nop +/* 0BA424 7F0858B4 45020009 */ bc1fl .Ljp7F0858DC +/* 0BA428 7F0858B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA42C 7F0858BC 44817000 */ mtc1 $at, $f14 +/* 0BA430 7F0858C0 00000000 */ nop +/* 0BA434 7F0858C4 460E0000 */ add.s $f0, $f0, $f14 +.Ljp7F0858C8: +/* 0BA438 7F0858C8 4614003C */ c.lt.s $f0, $f20 +/* 0BA43C 7F0858CC 00000000 */ nop +/* 0BA440 7F0858D0 4503FFFD */ bc1tl .Ljp7F0858C8 +/* 0BA444 7F0858D4 460E0000 */ add.s $f0, $f0, $f14 +/* 0BA448 7F0858D8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F0858DC: +/* 0BA44C 7F0858DC 44817000 */ mtc1 $at, $f14 +/* 0BA450 7F0858E0 00000000 */ nop +/* 0BA454 7F0858E4 4600703E */ c.le.s $f14, $f0 +/* 0BA458 7F0858E8 00000000 */ nop +/* 0BA45C 7F0858EC 45020007 */ bc1fl .Ljp7F08590C +/* 0BA460 7F0858F0 E5000148 */ swc1 $f0, 0x148($t0) +/* 0BA464 7F0858F4 460E0001 */ sub.s $f0, $f0, $f14 +.Ljp7F0858F8: +/* 0BA468 7F0858F8 4600703E */ c.le.s $f14, $f0 +/* 0BA46C 7F0858FC 00000000 */ nop +/* 0BA470 7F085900 4503FFFD */ bc1tl .Ljp7F0858F8 +/* 0BA474 7F085904 460E0001 */ sub.s $f0, $f0, $f14 +/* 0BA478 7F085908 E5000148 */ swc1 $f0, 0x148($t0) +.Ljp7F08590C: +/* 0BA47C 7F08590C 0FC20768 */ jal sub_GAME_7F081790 +/* 0BA480 7F085910 00000000 */ nop +/* 0BA484 7F085914 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA488 7F085918 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0BA48C 7F08591C 14400004 */ bnez $v0, .Ljp7F085930 +/* 0BA490 7F085920 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0BA494 7F085924 44813000 */ mtc1 $at, $f6 +/* 0BA498 7F085928 1000000B */ b .Ljp7F085958 +/* 0BA49C 7F08592C E7A602AC */ swc1 $f6, 0x2ac($sp) +.Ljp7F085930: +/* 0BA4A0 7F085930 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA4A4 7F085934 00000000 */ nop +/* 0BA4A8 7F085938 24010001 */ li $at, 1 +/* 0BA4AC 7F08593C 14410004 */ bne $v0, $at, .Ljp7F085950 +/* 0BA4B0 7F085940 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0BA4B4 7F085944 44812000 */ mtc1 $at, $f4 +/* 0BA4B8 7F085948 10000003 */ b .Ljp7F085958 +/* 0BA4BC 7F08594C E7A402AC */ swc1 $f4, 0x2ac($sp) +.Ljp7F085950: +/* 0BA4C0 7F085950 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA4C4 7F085954 00000000 */ nop +.Ljp7F085958: +/* 0BA4C8 7F085958 8E280000 */ lw $t0, ($s1) +/* 0BA4CC 7F08595C C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0BA4D0 7F085960 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA4D4 7F085964 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA4D8 7F085968 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0BA4DC 7F08596C 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0BA4E0 7F085970 46005032 */ c.eq.s $f10, $f0 +/* 0BA4E4 7F085974 00000000 */ nop +/* 0BA4E8 7F085978 4503000C */ bc1tl .Ljp7F0859AC +/* 0BA4EC 7F08597C C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0BA4F0 7F085980 44810000 */ mtc1 $at, $f0 +/* 0BA4F4 7F085984 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BA4F8 7F085988 44814000 */ mtc1 $at, $f8 +/* 0BA4FC 7F08598C 44055000 */ mfc1 $a1, $f10 +/* 0BA500 7F085990 44070000 */ mfc1 $a3, $f0 +/* 0BA504 7F085994 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0BA508 7F085998 0FC10C86 */ jal sub_GAME_7F042F18 +/* 0BA50C 7F08599C E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BA510 7F0859A0 8E280000 */ lw $t0, ($s1) +/* 0BA514 7F0859A4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA518 7F0859A8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.Ljp7F0859AC: +/* 0BA51C 7F0859AC 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA520 7F0859B0 3C0E8003 */ lui $t6, %hi(in_tank_flag) # $t6, 0x8003 +/* 0BA524 7F0859B4 46003032 */ c.eq.s $f6, $f0 +/* 0BA528 7F0859B8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA52C 7F0859BC 45000002 */ bc1f .Ljp7F0859C8 +/* 0BA530 7F0859C0 00000000 */ nop +/* 0BA534 7F0859C4 E51400A4 */ swc1 $f20, 0xa4($t0) +.Ljp7F0859C8: +/* 0BA538 7F0859C8 8DCE6488 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0BA53C 7F0859CC 24010001 */ li $at, 1 +/* 0BA540 7F0859D0 15C10209 */ bne $t6, $at, .Ljp7F0861F8 +/* 0BA544 7F0859D4 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) # $v0, 0x8008 +/* 0BA548 7F0859D8 8C4299F8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0BA54C 7F0859DC 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA550 7F0859E0 24010001 */ li $at, 1 +/* 0BA554 7F0859E4 144000BF */ bnez $v0, .Ljp7F085CE4 +/* 0BA558 7F0859E8 00000000 */ nop +/* 0BA55C 7F0859EC 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA560 7F0859F0 3C018005 */ lui $at, %hi(D_800551DC) # $at, 0x8005 +/* 0BA564 7F0859F4 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA568 7F0859F8 106000AD */ beqz $v1, .Ljp7F085CB0 +/* 0BA56C 7F0859FC 00000000 */ nop +/* 0BA570 7F085A00 C424520C */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0BA574 7F085A04 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA578 7F085A08 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA57C 7F085A0C 8C700004 */ lw $s0, 4($v1) +/* 0BA580 7F085A10 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA584 7F085A14 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA588 7F085A18 8E180014 */ lw $t8, 0x14($s0) +/* 0BA58C 7F085A1C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA590 7F085A20 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA594 7F085A24 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BA598 7F085A28 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA59C 7F085A2C 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA5A0 7F085A30 C4480000 */ lwc1 $f8, ($v0) +/* 0BA5A4 7F085A34 C4460004 */ lwc1 $f6, 4($v0) +/* 0BA5A8 7F085A38 C4440008 */ lwc1 $f4, 8($v0) +/* 0BA5AC 7F085A3C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0BA5B0 7F085A40 27A5025C */ addiu $a1, $sp, 0x25c +/* 0BA5B4 7F085A44 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0BA5B8 7F085A48 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0BA5BC 7F085A4C 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA5C0 7F085A50 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0BA5C4 7F085A54 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA5C8 7F085A58 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0BA5CC 7F085A5C C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0BA5D0 7F085A60 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0BA5D4 7F085A64 46085180 */ add.s $f6, $f10, $f8 +/* 0BA5D8 7F085A68 44810000 */ mtc1 $at, $f0 +/* 0BA5DC 7F085A6C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA5E0 7F085A70 44817000 */ mtc1 $at, $f14 +/* 0BA5E4 7F085A74 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0BA5E8 7F085A78 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0BA5EC 7F085A7C C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0BA5F0 7F085A80 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA5F4 7F085A84 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA5F8 7F085A88 8E2F0000 */ lw $t7, ($s1) +/* 0BA5FC 7F085A8C E7A80260 */ swc1 $f8, 0x260($sp) +/* 0BA600 7F085A90 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0BA604 7F085A94 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BA608 7F085A98 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA60C 7F085A9C 46043280 */ add.s $f10, $f6, $f4 +/* 0BA610 7F085AA0 C42664B4 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0BA614 7F085AA4 3C018005 */ lui $at, %hi(D_800551E0) # $at, 0x8005 +/* 0BA618 7F085AA8 46064100 */ add.s $f4, $f8, $f6 +/* 0BA61C 7F085AAC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0BA620 7F085AB0 C5E20158 */ lwc1 $f2, 0x158($t7) +/* 0BA624 7F085AB4 C4285210 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0BA628 7F085AB8 460E2282 */ mul.s $f10, $f4, $f14 +/* 0BA62C 7F085ABC 4600103C */ c.lt.s $f2, $f0 +/* 0BA630 7F085AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA634 7F085AC4 44819000 */ mtc1 $at, $f18 +/* 0BA638 7F085AC8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA63C 7F085ACC 45000002 */ bc1f .Ljp7F085AD8 +/* 0BA640 7F085AD0 46085403 */ div.s $f16, $f10, $f8 +/* 0BA644 7F085AD4 46000086 */ mov.s $f2, $f0 +.Ljp7F085AD8: +/* 0BA648 7F085AD8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA64C 7F085ADC 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0BA650 7F085AE0 44812000 */ mtc1 $at, $f4 +/* 0BA654 7F085AE4 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA658 7F085AE8 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA65C 7F085AEC 46043283 */ div.s $f10, $f6, $f4 +/* 0BA660 7F085AF0 C6080000 */ lwc1 $f8, ($s0) +/* 0BA664 7F085AF4 3C018005 */ lui $at, %hi(D_800551E4) # $at, 0x8005 +/* 0BA668 7F085AF8 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA66C 7F085AFC E6060000 */ swc1 $f6, ($s0) +/* 0BA670 7F085B00 C6000000 */ lwc1 $f0, ($s0) +/* 0BA674 7F085B04 4600903E */ c.le.s $f18, $f0 +/* 0BA678 7F085B08 00000000 */ nop +/* 0BA67C 7F085B0C 45000003 */ bc1f .Ljp7F085B1C +/* 0BA680 7F085B10 00000000 */ nop +/* 0BA684 7F085B14 E6120000 */ swc1 $f18, ($s0) +/* 0BA688 7F085B18 C6000000 */ lwc1 $f0, ($s0) +.Ljp7F085B1C: +/* 0BA68C 7F085B1C C4245214 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0BA690 7F085B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA694 7F085B24 44815000 */ mtc1 $at, $f10 +/* 0BA698 7F085B28 46040202 */ mul.s $f8, $f0, $f4 +/* 0BA69C 7F085B2C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0BA6A0 7F085B30 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0BA6A4 7F085B34 460A4302 */ mul.s $f12, $f8, $f10 +/* 0BA6A8 7F085B38 0FC160F0 */ jal cosf +/* 0BA6AC 7F085B3C 00000000 */ nop +/* 0BA6B0 7F085B40 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA6B4 7F085B44 44817000 */ mtc1 $at, $f14 +/* 0BA6B8 7F085B48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6BC 7F085B4C 44813000 */ mtc1 $at, $f6 +/* 0BA6C0 7F085B50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA6C4 7F085B54 44814000 */ mtc1 $at, $f8 +/* 0BA6C8 7F085B58 46060100 */ add.s $f4, $f0, $f6 +/* 0BA6CC 7F085B5C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) # $v0, 0x8008 +/* 0BA6D0 7F085B60 24429A00 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6600 +/* 0BA6D4 7F085B64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6D8 7F085B68 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA6DC 7F085B6C 44813000 */ mtc1 $at, $f6 +/* 0BA6E0 7F085B70 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0BA6E4 7F085B74 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) # $at, 0x8008 +/* 0BA6E8 7F085B78 8E2A0000 */ lw $t2, ($s1) +/* 0BA6EC 7F085B7C C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA6F0 7F085B80 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) # $v1, 0x8008 +/* 0BA6F4 7F085B84 E44A0000 */ swc1 $f10, ($v0) +/* 0BA6F8 7F085B88 C4420000 */ lwc1 $f2, ($v0) +/* 0BA6FC 7F085B8C 24639A10 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x65f0 +/* 0BA700 7F085B90 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA704 7F085B94 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA708 7F085B98 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) # $at, 0x8008 +/* 0BA70C 7F085B9C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA710 7F085BA0 00000000 */ nop +/* 0BA714 7F085BA4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA718 7F085BA8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA71C 7F085BAC E5480158 */ swc1 $f8, 0x158($t2) +/* 0BA720 7F085BB0 C4329A04 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA724 7F085BB4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA728 7F085BB8 44813000 */ mtc1 $at, $f6 +/* 0BA72C 7F085BBC 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA730 7F085BC0 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA734 7F085BC4 44812000 */ mtc1 $at, $f4 +/* 0BA738 7F085BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA73C 7F085BCC 460C303C */ c.lt.s $f6, $f12 +/* 0BA740 7F085BD0 44814000 */ mtc1 $at, $f8 +/* 0BA744 7F085BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA748 7F085BD8 45000002 */ bc1f .Ljp7F085BE4 +/* 0BA74C 7F085BDC 00000000 */ nop +/* 0BA750 7F085BE0 460E8401 */ sub.s $f16, $f16, $f14 +.Ljp7F085BE4: +/* 0BA754 7F085BE4 4604603C */ c.lt.s $f12, $f4 +/* 0BA758 7F085BE8 00000000 */ nop +/* 0BA75C 7F085BEC 45020003 */ bc1fl .Ljp7F085BFC +/* 0BA760 7F085BF0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA764 7F085BF4 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA768 7F085BF8 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085BFC: +/* 0BA76C 7F085BFC 8E390000 */ lw $t9, ($s1) +/* 0BA770 7F085C00 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA774 7F085C04 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA778 7F085C08 00000000 */ nop +/* 0BA77C 7F085C0C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA780 7F085C10 46045200 */ add.s $f8, $f10, $f4 +/* 0BA784 7F085C14 44812000 */ mtc1 $at, $f4 +/* 0BA788 7F085C18 E7280148 */ swc1 $f8, 0x148($t9) +/* 0BA78C 7F085C1C 8E280000 */ lw $t0, ($s1) +/* 0BA790 7F085C20 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA794 7F085C24 4600703E */ c.le.s $f14, $f0 +/* 0BA798 7F085C28 00000000 */ nop +/* 0BA79C 7F085C2C 45000005 */ bc1f .Ljp7F085C44 +/* 0BA7A0 7F085C30 00000000 */ nop +/* 0BA7A4 7F085C34 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA7A8 7F085C38 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA7AC 7F085C3C 8E280000 */ lw $t0, ($s1) +/* 0BA7B0 7F085C40 C5000148 */ lwc1 $f0, 0x148($t0) +.Ljp7F085C44: +/* 0BA7B4 7F085C44 4614003C */ c.lt.s $f0, $f20 +/* 0BA7B8 7F085C48 00000000 */ nop +/* 0BA7BC 7F085C4C 45020005 */ bc1fl .Ljp7F085C64 +/* 0BA7C0 7F085C50 C4420000 */ lwc1 $f2, ($v0) +/* 0BA7C4 7F085C54 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA7C8 7F085C58 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA7CC 7F085C5C 8E280000 */ lw $t0, ($s1) +/* 0BA7D0 7F085C60 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085C64: +/* 0BA7D4 7F085C64 C4680000 */ lwc1 $f8, ($v1) +/* 0BA7D8 7F085C68 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA7DC 7F085C6C 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA7E0 7F085C70 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA7E4 7F085C74 00000000 */ nop +/* 0BA7E8 7F085C78 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA7EC 7F085C7C C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA7F0 7F085C80 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA7F4 7F085C84 46043200 */ add.s $f8, $f6, $f4 +/* 0BA7F8 7F085C88 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA7FC 7F085C8C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA800 7F085C90 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA804 7F085C94 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA808 7F085C98 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA80C 7F085C9C 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA810 7F085CA0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA814 7F085CA4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA818 7F085CA8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA81C 7F085CAC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.Ljp7F085CB0: +/* 0BA820 7F085CB0 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA824 7F085CB4 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA828 7F085CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA82C 7F085CBC 44812000 */ mtc1 $at, $f4 +/* 0BA830 7F085CC0 C6060000 */ lwc1 $f6, ($s0) +/* 0BA834 7F085CC4 8E280000 */ lw $t0, ($s1) +/* 0BA838 7F085CC8 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA83C 7F085CCC 4606203E */ c.le.s $f4, $f6 +/* 0BA840 7F085CD0 240C0001 */ li $t4, 1 +/* 0BA844 7F085CD4 450200EF */ bc1fl .Ljp7F086094 +/* 0BA848 7F085CD8 3C013F40 */ lui $at, %hi(0x3F3F99F8) # $at, 0x3f40 +/* 0BA84C 7F085CDC 100000EC */ b .Ljp7F086090 +/* 0BA850 7F085CE0 AC2C99F8 */ sw $t4, %lo(dword_CODE_bss_800799B8)($at) +.Ljp7F085CE4: +/* 0BA854 7F085CE4 1441001A */ bne $v0, $at, .Ljp7F085D50 +/* 0BA858 7F085CE8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA85C 7F085CEC 240B0002 */ li $t3, 2 +/* 0BA860 7F085CF0 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) # $at, 0x8008 +/* 0BA864 7F085CF4 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA868 7F085CF8 AC2B99F8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA86C 7F085CFC 8E0D0000 */ lw $t5, ($s0) +/* 0BA870 7F085D00 55A0000A */ bnezl $t5, .Ljp7F085D2C +/* 0BA874 7F085D04 8E040000 */ lw $a0, ($s0) +/* 0BA878 7F085D08 0FC3021B */ jal get_controls_locked_flag +/* 0BA87C 7F085D0C 00000000 */ nop +/* 0BA880 7F085D10 14400005 */ bnez $v0, .Ljp7F085D28 +/* 0BA884 7F085D14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BA888 7F085D18 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA88C 7F085D1C 24050042 */ li $a1, 66 +/* 0BA890 7F085D20 0C002386 */ jal play_sfx_a1 +/* 0BA894 7F085D24 02003025 */ move $a2, $s0 +.Ljp7F085D28: +/* 0BA898 7F085D28 8E040000 */ lw $a0, ($s0) +.Ljp7F085D2C: +/* 0BA89C 7F085D2C 24050008 */ li $a1, 8 +/* 0BA8A0 7F085D30 0C002465 */ jal sfx_c_70009184 +/* 0BA8A4 7F085D34 240661A8 */ li $a2, 25000 +/* 0BA8A8 7F085D38 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BA8AC 7F085D3C 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BA8B0 7F085D40 240E61A8 */ li $t6, 25000 +/* 0BA8B4 7F085D44 AC4E0000 */ sw $t6, ($v0) +/* 0BA8B8 7F085D48 100000D1 */ b .Ljp7F086090 +/* 0BA8BC 7F085D4C 8E280000 */ lw $t0, ($s1) +.Ljp7F085D50: +/* 0BA8C0 7F085D50 8E280000 */ lw $t0, ($s1) +/* 0BA8C4 7F085D54 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA8C8 7F085D58 44814000 */ mtc1 $at, $f8 +/* 0BA8CC 7F085D5C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA8D0 7F085D60 3C018005 */ lui $at, %hi(D_800551E8) # $at, 0x8005 +/* 0BA8D4 7F085D64 C4245218 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA8D8 7F085D68 46085003 */ div.s $f0, $f10, $f8 +/* 0BA8DC 7F085D6C C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA8E0 7F085D70 46043083 */ div.s $f2, $f6, $f4 +/* 0BA8E4 7F085D74 4614003C */ c.lt.s $f0, $f20 +/* 0BA8E8 7F085D78 00000000 */ nop +/* 0BA8EC 7F085D7C 45020003 */ bc1fl .Ljp7F085D8C +/* 0BA8F0 7F085D80 4614103C */ c.lt.s $f2, $f20 +/* 0BA8F4 7F085D84 46000007 */ neg.s $f0, $f0 +/* 0BA8F8 7F085D88 4614103C */ c.lt.s $f2, $f20 +.Ljp7F085D8C: +/* 0BA8FC 7F085D8C 00000000 */ nop +/* 0BA900 7F085D90 45020003 */ bc1fl .Ljp7F085DA0 +/* 0BA904 7F085D94 4602003C */ c.lt.s $f0, $f2 +/* 0BA908 7F085D98 46001087 */ neg.s $f2, $f2 +/* 0BA90C 7F085D9C 4602003C */ c.lt.s $f0, $f2 +.Ljp7F085DA0: +/* 0BA910 7F085DA0 46000306 */ mov.s $f12, $f0 +/* 0BA914 7F085DA4 45020003 */ bc1fl .Ljp7F085DB4 +/* 0BA918 7F085DA8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA91C 7F085DAC 46001306 */ mov.s $f12, $f2 +/* 0BA920 7F085DB0 460CA03C */ c.lt.s $f20, $f12 +.Ljp7F085DB4: +/* 0BA924 7F085DB4 00000000 */ nop +/* 0BA928 7F085DB8 45000043 */ bc1f .Ljp7F085EC8 +/* 0BA92C 7F085DBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA930 7F085DC0 44815000 */ mtc1 $at, $f10 +/* 0BA934 7F085DC4 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA938 7F085DC8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA93C 7F085DCC 460C503C */ c.lt.s $f10, $f12 +/* 0BA940 7F085DD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA944 7F085DD4 45020004 */ bc1fl .Ljp7F085DE8 +/* 0BA948 7F085DD8 8E180004 */ lw $t8, 4($s0) +/* 0BA94C 7F085DDC 44816000 */ mtc1 $at, $f12 +/* 0BA950 7F085DE0 00000000 */ nop +/* 0BA954 7F085DE4 8E180004 */ lw $t8, 4($s0) +.Ljp7F085DE8: +/* 0BA958 7F085DE8 5700000E */ bnezl $t8, .Ljp7F085E24 +/* 0BA95C 7F085DEC 8E040004 */ lw $a0, 4($s0) +/* 0BA960 7F085DF0 0FC3021B */ jal get_controls_locked_flag +/* 0BA964 7F085DF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA968 7F085DF8 14400009 */ bnez $v0, .Ljp7F085E20 +/* 0BA96C 7F085DFC C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA970 7F085E00 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BA974 7F085E04 3C068003 */ lui $a2, %hi(SFX_8003645C) # $a2, 0x8003 +/* 0BA978 7F085E08 24C6649C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x649c +/* 0BA97C 7F085E0C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA980 7F085E10 2405003E */ li $a1, 62 +/* 0BA984 7F085E14 0C002386 */ jal play_sfx_a1 +/* 0BA988 7F085E18 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA98C 7F085E1C C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085E20: +/* 0BA990 7F085E20 8E040004 */ lw $a0, 4($s0) +.Ljp7F085E24: +/* 0BA994 7F085E24 3C018005 */ lui $at, %hi(D_800551EC) # $at, 0x8005 +/* 0BA998 7F085E28 24050008 */ li $a1, 8 +/* 0BA99C 7F085E2C 50800034 */ beql $a0, $zero, .Ljp7F085F00 +/* 0BA9A0 7F085E30 8E190000 */ lw $t9, ($s0) +/* 0BA9A4 7F085E34 C420521C */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA9A8 7F085E38 24067FFF */ li $a2, 32767 +/* 0BA9AC 7F085E3C 3C018005 */ lui $at, 0x8005 +/* 0BA9B0 7F085E40 4600603C */ c.lt.s $f12, $f0 +/* 0BA9B4 7F085E44 00000000 */ nop +/* 0BA9B8 7F085E48 45000009 */ bc1f .Ljp7F085E70 +/* 0BA9BC 7F085E4C 00000000 */ nop +/* 0BA9C0 7F085E50 3C018005 */ lui $at, %hi(D_800551F0) # $at, 0x8005 +/* 0BA9C4 7F085E54 C4285220 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA9C8 7F085E58 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA9CC 7F085E5C 46003103 */ div.s $f4, $f6, $f0 +/* 0BA9D0 7F085E60 4600228D */ trunc.w.s $f10, $f4 +/* 0BA9D4 7F085E64 44065000 */ mfc1 $a2, $f10 +/* 0BA9D8 7F085E68 10000013 */ b .Ljp7F085EB8 +/* 0BA9DC 7F085E6C 00000000 */ nop +.Ljp7F085E70: +/* 0BA9E0 7F085E70 C4285224 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA9E4 7F085E74 3C018005 */ lui $at, %hi(D_800551F4) # $at, 0x8005 +/* 0BA9E8 7F085E78 4608603C */ c.lt.s $f12, $f8 +/* 0BA9EC 7F085E7C 00000000 */ nop +/* 0BA9F0 7F085E80 4500000D */ bc1f .Ljp7F085EB8 +/* 0BA9F4 7F085E84 00000000 */ nop +/* 0BA9F8 7F085E88 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA9FC 7F085E8C C4245228 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BAA00 7F085E90 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAA04 7F085E94 44814000 */ mtc1 $at, $f8 +/* 0BAA08 7F085E98 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA0C 7F085E9C 3C018005 */ lui $at, %hi(D_800551FC) # $at, 0x8005 +/* 0BAA10 7F085EA0 C424522C */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BAA14 7F085EA4 46085183 */ div.s $f6, $f10, $f8 +/* 0BAA18 7F085EA8 46043280 */ add.s $f10, $f6, $f4 +/* 0BAA1C 7F085EAC 4600520D */ trunc.w.s $f8, $f10 +/* 0BAA20 7F085EB0 44064000 */ mfc1 $a2, $f8 +/* 0BAA24 7F085EB4 00000000 */ nop +.Ljp7F085EB8: +/* 0BAA28 7F085EB8 0C002465 */ jal sfx_c_70009184 +/* 0BAA2C 7F085EBC E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA30 7F085EC0 1000000E */ b .Ljp7F085EFC +/* 0BAA34 7F085EC4 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EC8: +/* 0BAA38 7F085EC8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BAA3C 7F085ECC 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BAA40 7F085ED0 8E040004 */ lw $a0, 4($s0) +/* 0BAA44 7F085ED4 5080000A */ beql $a0, $zero, .Ljp7F085F00 +/* 0BAA48 7F085ED8 8E190000 */ lw $t9, ($s0) +/* 0BAA4C 7F085EDC 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAA50 7F085EE0 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA54 7F085EE4 10400005 */ beqz $v0, .Ljp7F085EFC +/* 0BAA58 7F085EE8 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA5C 7F085EEC 8E040004 */ lw $a0, 4($s0) +/* 0BAA60 7F085EF0 0C00240C */ jal sfxDeactivate +/* 0BAA64 7F085EF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA68 7F085EF8 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EFC: +/* 0BAA6C 7F085EFC 8E190000 */ lw $t9, ($s0) +.Ljp7F085F00: +/* 0BAA70 7F085F00 5720000D */ bnezl $t9, .Ljp7F085F38 +/* 0BAA74 7F085F04 8E040000 */ lw $a0, ($s0) +/* 0BAA78 7F085F08 0FC3021B */ jal get_controls_locked_flag +/* 0BAA7C 7F085F0C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA80 7F085F10 14400008 */ bnez $v0, .Ljp7F085F34 +/* 0BAA84 7F085F14 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA88 7F085F18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BAA8C 7F085F1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BAA90 7F085F20 24050041 */ li $a1, 65 +/* 0BAA94 7F085F24 02003025 */ move $a2, $s0 +/* 0BAA98 7F085F28 0C002386 */ jal play_sfx_a1 +/* 0BAA9C 7F085F2C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAAA0 7F085F30 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085F34: +/* 0BAAA4 7F085F34 8E040000 */ lw $a0, ($s0) +.Ljp7F085F38: +/* 0BAAA8 7F085F38 1080001A */ beqz $a0, .Ljp7F085FA4 +/* 0BAAAC 7F085F3C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAAB0 7F085F40 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAAB4 7F085F44 240C7FFF */ li $t4, 32767 +/* 0BAAB8 7F085F48 AC4C0000 */ sw $t4, ($v0) +/* 0BAABC 7F085F4C 3C018005 */ lui $at, %hi(D_80055200) # $at, 0x8005 +/* 0BAAC0 7F085F50 C4265230 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BAAC4 7F085F54 3C018005 */ lui $at, %hi(D_80055204) # $at, 0x8005 +/* 0BAAC8 7F085F58 24050008 */ li $a1, 8 +/* 0BAACC 7F085F5C 4606603C */ c.lt.s $f12, $f6 +/* 0BAAD0 7F085F60 00000000 */ nop +/* 0BAAD4 7F085F64 4500000D */ bc1f .Ljp7F085F9C +/* 0BAAD8 7F085F68 00000000 */ nop +/* 0BAADC 7F085F6C C4245234 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BAAE0 7F085F70 3C018005 */ lui $at, %hi(D_80055208) # $at, 0x8005 +/* 0BAAE4 7F085F74 C4285238 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BAAE8 7F085F78 46046282 */ mul.s $f10, $f12, $f4 +/* 0BAAEC 7F085F7C 3C018005 */ lui $at, %hi(D_8005520C) # $at, 0x8005 +/* 0BAAF0 7F085F80 C424523C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BAAF4 7F085F84 46085183 */ div.s $f6, $f10, $f8 +/* 0BAAF8 7F085F88 46043280 */ add.s $f10, $f6, $f4 +/* 0BAAFC 7F085F8C 4600520D */ trunc.w.s $f8, $f10 +/* 0BAB00 7F085F90 440D4000 */ mfc1 $t5, $f8 +/* 0BAB04 7F085F94 00000000 */ nop +/* 0BAB08 7F085F98 AC4D0000 */ sw $t5, ($v0) +.Ljp7F085F9C: +/* 0BAB0C 7F085F9C 0C002465 */ jal sfx_c_70009184 +/* 0BAB10 7F085FA0 8C460000 */ lw $a2, ($v0) +.Ljp7F085FA4: +/* 0BAB14 7F085FA4 0FC177BC */ jal get_item_in_hand +/* 0BAB18 7F085FA8 00002025 */ move $a0, $zero +/* 0BAB1C 7F085FAC 24010020 */ li $at, 32 +/* 0BAB20 7F085FB0 14410007 */ bne $v0, $at, .Ljp7F085FD0 +/* 0BAB24 7F085FB4 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BAB28 7F085FB8 8E280000 */ lw $t0, ($s1) +/* 0BAB2C 7F085FBC 3C018005 */ lui $at, %hi(D_80055210) # $at, 0x8005 +/* 0BAB30 7F085FC0 C4265240 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BAB34 7F085FC4 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BAB38 7F085FC8 10000004 */ b .Ljp7F085FDC +/* 0BAB3C 7F085FCC 46061080 */ add.s $f2, $f2, $f6 +.Ljp7F085FD0: +/* 0BAB40 7F085FD0 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BAB44 7F085FD4 C42264AC */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BAB48 7F085FD8 8E280000 */ lw $t0, ($s1) +.Ljp7F085FDC: +/* 0BAB4C 7F085FDC 3C018005 */ lui $at, %hi(D_80055214) # $at, 0x8005 +/* 0BAB50 7F085FE0 C4205244 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BAB54 7F085FE4 3C018005 */ lui $at, %hi(D_80055218) # $at, 0x8005 +/* 0BAB58 7F085FE8 4602003C */ c.lt.s $f0, $f2 +/* 0BAB5C 7F085FEC 00000000 */ nop +/* 0BAB60 7F085FF0 45000002 */ bc1f .Ljp7F085FFC +/* 0BAB64 7F085FF4 00000000 */ nop +/* 0BAB68 7F085FF8 46000086 */ mov.s $f2, $f0 +.Ljp7F085FFC: +/* 0BAB6C 7F085FFC C4205248 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BAB70 7F086000 4600103C */ c.lt.s $f2, $f0 +/* 0BAB74 7F086004 00000000 */ nop +/* 0BAB78 7F086008 45000002 */ bc1f .Ljp7F086014 +/* 0BAB7C 7F08600C 00000000 */ nop +/* 0BAB80 7F086010 46000086 */ mov.s $f2, $f0 +.Ljp7F086014: +/* 0BAB84 7F086014 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BAB88 7F086018 00001025 */ move $v0, $zero +/* 0BAB8C 7F08601C 18800014 */ blez $a0, .Ljp7F086070 +/* 0BAB90 7F086020 3C018005 */ lui $at, %hi(D_8005521C) # $at, 0x8005 +/* 0BAB94 7F086024 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BAB98 7F086028 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BAB9C 7F08602C C420524C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BABA0 7F086030 C4700000 */ lwc1 $f16, ($v1) +/* 0BABA4 7F086034 24420001 */ addiu $v0, $v0, 1 +/* 0BABA8 7F086038 0044082A */ slt $at, $v0, $a0 +/* 0BABAC 7F08603C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABB0 7F086040 5020000A */ beql $at, $zero, .Ljp7F08606C +/* 0BABB4 7F086044 46029400 */ add.s $f16, $f18, $f2 +/* 0BABB8 7F086048 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08604C: +/* 0BABBC 7F08604C 24420001 */ addiu $v0, $v0, 1 +/* 0BABC0 7F086050 0044082A */ slt $at, $v0, $a0 +/* 0BABC4 7F086054 E4700000 */ swc1 $f16, ($v1) +/* 0BABC8 7F086058 C4700000 */ lwc1 $f16, ($v1) +/* 0BABCC 7F08605C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABD0 7F086060 5420FFFA */ bnezl $at, .Ljp7F08604C +/* 0BABD4 7F086064 46029400 */ add.s $f16, $f18, $f2 +/* 0BABD8 7F086068 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08606C: +/* 0BABDC 7F08606C E4700000 */ swc1 $f16, ($v1) +.Ljp7F086070: +/* 0BABE0 7F086070 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BABE4 7F086074 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BABE8 7F086078 3C018005 */ lui $at, %hi(D_80055220) # $at, 0x8005 +/* 0BABEC 7F08607C C4245250 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BABF0 7F086080 C4660000 */ lwc1 $f6, ($v1) +/* 0BABF4 7F086084 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BABF8 7F086088 46043282 */ mul.s $f10, $f6, $f4 +/* 0BABFC 7F08608C E42A64AC */ swc1 $f10, %lo(D_8003646C)($at) +.Ljp7F086090: +/* 0BAC00 7F086090 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.Ljp7F086094: +/* 0BAC04 7F086094 44810000 */ mtc1 $at, $f0 +/* 0BAC08 7F086098 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC0C 7F08609C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC10 7F0860A0 3C018005 */ lui $at, %hi(D_80055224) # $at, 0x8005 +/* 0BAC14 7F0860A4 C4245254 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BAC18 7F0860A8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BAC1C 7F0860AC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BAC20 7F0860B0 4406A000 */ mfc1 $a2, $f20 +/* 0BAC24 7F0860B4 4600A306 */ mov.s $f12, $f20 +/* 0BAC28 7F0860B8 46043283 */ div.s $f10, $f6, $f4 +/* 0BAC2C 7F0860BC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAC30 7F0860C0 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAC34 7F0860C4 8E280000 */ lw $t0, ($s1) +/* 0BAC38 7F0860C8 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAC3C 7F0860CC 4614203C */ c.lt.s $f4, $f20 +/* 0BAC40 7F0860D0 00000000 */ nop +/* 0BAC44 7F0860D4 45000002 */ bc1f .Ljp7F0860E0 +/* 0BAC48 7F0860D8 00000000 */ nop +/* 0BAC4C 7F0860DC E514019C */ swc1 $f20, 0x19c($t0) +.Ljp7F0860E0: +/* 0BAC50 7F0860E0 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BAC54 7F0860E4 4600A386 */ mov.s $f14, $f20 +/* 0BAC58 7F0860E8 3C018005 */ lui $at, %hi(D_80055228) # $at, 0x8005 +/* 0BAC5C 7F0860EC C4285258 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BAC60 7F0860F0 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC64 7F0860F4 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BAC68 7F0860F8 0FC160F3 */ jal sinf +/* 0BAC6C 7F0860FC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BAC70 7F086100 8E2E0000 */ lw $t6, ($s1) +/* 0BAC74 7F086104 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC78 7F086108 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC7C 7F08610C C5C60174 */ lwc1 $f6, 0x174($t6) +/* 0BAC80 7F086110 3C018005 */ lui $at, %hi(D_8005522C) # $at, 0x8005 +/* 0BAC84 7F086114 46003102 */ mul.s $f4, $f6, $f0 +/* 0BAC88 7F086118 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC8C 7F08611C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BAC90 7F086120 C428525C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BAC94 7F086124 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC98 7F086128 460A3100 */ add.s $f4, $f6, $f10 +/* 0BAC9C 7F08612C C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BACA0 7F086130 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BACA4 7F086134 0FC160F0 */ jal cosf +/* 0BACA8 7F086138 46064301 */ sub.s $f12, $f8, $f6 +/* 0BACAC 7F08613C 8E380000 */ lw $t8, ($s1) +/* 0BACB0 7F086140 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BACB4 7F086144 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BACB8 7F086148 C70A0174 */ lwc1 $f10, 0x174($t8) +/* 0BACBC 7F08614C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BACC0 7F086150 24050001 */ li $a1, 1 +/* 0BACC4 7F086154 46005102 */ mul.s $f4, $f10, $f0 +/* 0BACC8 7F086158 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BACCC 7F08615C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BACD0 7F086160 46065100 */ add.s $f4, $f10, $f6 +/* 0BACD4 7F086164 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BACD8 7F086168 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BACDC 7F08616C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BACE0 7F086170 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BACE4 7F086174 24010002 */ li $at, 2 +/* 0BACE8 7F086178 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 0BACEC 7F08617C 55E10238 */ bnel $t7, $at, .Ljp7F086A60 +/* 0BACF0 7F086180 8E280000 */ lw $t0, ($s1) +/* 0BACF4 7F086184 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 0BACF8 7F086188 59400235 */ blezl $t2, .Ljp7F086A60 +/* 0BACFC 7F08618C 8E280000 */ lw $t0, ($s1) +/* 0BAD00 7F086190 8E280000 */ lw $t0, ($s1) +/* 0BAD04 7F086194 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD08 7F086198 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAD0C 7F08619C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAD10 7F0861A0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BAD14 7F0861A4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAD18 7F0861A8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAD1C 7F0861AC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BAD20 7F0861B0 46082281 */ sub.s $f10, $f4, $f8 +/* 0BAD24 7F0861B4 460E3003 */ div.s $f0, $f6, $f14 +/* 0BAD28 7F0861B8 460E5083 */ div.s $f2, $f10, $f14 +/* 0BAD2C 7F0861BC 46000182 */ mul.s $f6, $f0, $f0 +/* 0BAD30 7F0861C0 00000000 */ nop +/* 0BAD34 7F0861C4 46021102 */ mul.s $f4, $f2, $f2 +/* 0BAD38 7F0861C8 0C007E08 */ jal sqrtf +/* 0BAD3C 7F0861CC 46043300 */ add.s $f12, $f6, $f4 +/* 0BAD40 7F0861D0 8E280000 */ lw $t0, ($s1) +/* 0BAD44 7F0861D4 46000086 */ mov.s $f2, $f0 +/* 0BAD48 7F0861D8 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BAD4C 7F0861DC 4614403C */ c.lt.s $f8, $f20 +/* 0BAD50 7F0861E0 00000000 */ nop +/* 0BAD54 7F0861E4 45000002 */ bc1f .Ljp7F0861F0 +/* 0BAD58 7F0861E8 00000000 */ nop +/* 0BAD5C 7F0861EC 46000087 */ neg.s $f2, $f0 +.Ljp7F0861F0: +/* 0BAD60 7F0861F0 1000021A */ b .Ljp7F086A5C +/* 0BAD64 7F0861F4 E5020174 */ swc1 $f2, 0x174($t0) +.Ljp7F0861F8: +/* 0BAD68 7F0861F8 8E040000 */ lw $a0, ($s0) +/* 0BAD6C 7F0861FC 5080001A */ beql $a0, $zero, .Ljp7F086268 +/* 0BAD70 7F086200 8E040004 */ lw $a0, 4($s0) +/* 0BAD74 7F086204 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAD78 7F086208 00000000 */ nop +/* 0BAD7C 7F08620C 10400015 */ beqz $v0, .Ljp7F086264 +/* 0BAD80 7F086210 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0BAD84 7F086214 44815000 */ mtc1 $at, $f10 +/* 0BAD88 7F086218 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD8C 7F08621C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BAD90 7F086220 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAD94 7F086224 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAD98 7F086228 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAD9C 7F08622C 8C4B0000 */ lw $t3, ($v0) +/* 0BADA0 7F086230 24050008 */ li $a1, 8 +/* 0BADA4 7F086234 4600220D */ trunc.w.s $f8, $f4 +/* 0BADA8 7F086238 440C4000 */ mfc1 $t4, $f8 +/* 0BADAC 7F08623C 00000000 */ nop +/* 0BADB0 7F086240 016C3023 */ subu $a2, $t3, $t4 +/* 0BADB4 7F086244 18C00005 */ blez $a2, .Ljp7F08625C +/* 0BADB8 7F086248 AC460000 */ sw $a2, ($v0) +/* 0BADBC 7F08624C 0C002465 */ jal sfx_c_70009184 +/* 0BADC0 7F086250 8E040000 */ lw $a0, ($s0) +/* 0BADC4 7F086254 10000004 */ b .Ljp7F086268 +/* 0BADC8 7F086258 8E040004 */ lw $a0, 4($s0) +.Ljp7F08625C: +/* 0BADCC 7F08625C 0C00240C */ jal sfxDeactivate +/* 0BADD0 7F086260 8E040000 */ lw $a0, ($s0) +.Ljp7F086264: +/* 0BADD4 7F086264 8E040004 */ lw $a0, 4($s0) +.Ljp7F086268: +/* 0BADD8 7F086268 10800007 */ beqz $a0, .Ljp7F086288 +/* 0BADDC 7F08626C 00000000 */ nop +/* 0BADE0 7F086270 0C002380 */ jal sfxGetArg0Unk3F +/* 0BADE4 7F086274 00000000 */ nop +/* 0BADE8 7F086278 10400003 */ beqz $v0, .Ljp7F086288 +/* 0BADEC 7F08627C 00000000 */ nop +/* 0BADF0 7F086280 0C00240C */ jal sfxDeactivate +/* 0BADF4 7F086284 8E040004 */ lw $a0, 4($s0) +.Ljp7F086288: +/* 0BADF8 7F086288 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BADFC 7F08628C C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAE00 7F086290 3C018003 */ lui $at, %hi(D_80036AF4) # $at, 0x8003 +/* 0BAE04 7F086294 C42A6B24 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BAE08 7F086298 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BAE0C 7F08629C 44813000 */ mtc1 $at, $f6 +/* 0BAE10 7F0862A0 8E280000 */ lw $t0, ($s1) +/* 0BAE14 7F0862A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BAE18 7F0862A8 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAE1C 7F0862AC C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BAE20 7F0862B0 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BAE24 7F0862B4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BAE28 7F0862B8 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BAE2C 7F0862BC 00000000 */ nop +/* 0BAE30 7F0862C0 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BAE34 7F0862C4 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BAE38 7F0862C8 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BAE3C 7F0862CC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAE40 7F0862D0 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAE44 7F0862D4 46000207 */ neg.s $f8, $f0 +/* 0BAE48 7F0862D8 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BAE4C 7F0862DC 46082402 */ mul.s $f16, $f4, $f8 +/* 0BAE50 7F0862E0 46068101 */ sub.s $f4, $f16, $f6 +/* 0BAE54 7F0862E4 46005482 */ mul.s $f18, $f10, $f0 +/* 0BAE58 7F0862E8 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BAE5C 7F0862EC C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAE60 7F0862F0 C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BAE64 7F0862F4 46089281 */ sub.s $f10, $f18, $f8 +/* 0BAE68 7F0862F8 46063102 */ mul.s $f4, $f6, $f6 +/* 0BAE6C 7F0862FC E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BAE70 7F086300 C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BAE74 7F086304 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE78 7F086308 460A2080 */ add.s $f2, $f4, $f10 +/* 0BAE7C 7F08630C 44812000 */ mtc1 $at, $f4 +/* 0BAE80 7F086310 00000000 */ nop +/* 0BAE84 7F086314 4602203E */ c.le.s $f4, $f2 +/* 0BAE88 7F086318 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BAE8C 7F08631C 45000008 */ bc1f .Ljp7F086340 +/* 0BAE90 7F086320 00000000 */ nop +/* 0BAE94 7F086324 3C018005 */ lui $at, %hi(D_80055230) # $at, 0x8005 +/* 0BAE98 7F086328 C4205260 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BAE9C 7F08632C 46003282 */ mul.s $f10, $f6, $f0 +/* 0BAEA0 7F086330 00000000 */ nop +/* 0BAEA4 7F086334 46004102 */ mul.s $f4, $f8, $f0 +/* 0BAEA8 7F086338 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BAEAC 7F08633C E7A4021C */ swc1 $f4, 0x21c($sp) +.Ljp7F086340: +/* 0BAEB0 7F086340 3C018005 */ lui $at, %hi(D_80055234) # $at, 0x8005 +/* 0BAEB4 7F086344 C4305264 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BAEB8 7F086348 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BAEBC 7F08634C C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BAEC0 7F086350 C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BAEC4 7F086354 46103002 */ mul.s $f0, $f6, $f16 +/* 0BAEC8 7F086358 4614003C */ c.lt.s $f0, $f20 +/* 0BAECC 7F08635C 46105302 */ mul.s $f12, $f10, $f16 +/* 0BAED0 7F086360 45020003 */ bc1fl .Ljp7F086370 +/* 0BAED4 7F086364 4614103C */ c.lt.s $f2, $f20 +/* 0BAED8 7F086368 46000007 */ neg.s $f0, $f0 +/* 0BAEDC 7F08636C 4614103C */ c.lt.s $f2, $f20 +.Ljp7F086370: +/* 0BAEE0 7F086370 3C018005 */ lui $at, %hi(D_80055238) # $at, 0x8005 +/* 0BAEE4 7F086374 45020003 */ bc1fl .Ljp7F086384 +/* 0BAEE8 7F086378 4614603C */ c.lt.s $f12, $f20 +/* 0BAEEC 7F08637C 46001087 */ neg.s $f2, $f2 +/* 0BAEF0 7F086380 4614603C */ c.lt.s $f12, $f20 +.Ljp7F086384: +/* 0BAEF4 7F086384 00000000 */ nop +/* 0BAEF8 7F086388 45020003 */ bc1fl .Ljp7F086398 +/* 0BAEFC 7F08638C 4600103C */ c.lt.s $f2, $f0 +/* 0BAF00 7F086390 46006307 */ neg.s $f12, $f12 +/* 0BAF04 7F086394 4600103C */ c.lt.s $f2, $f0 +.Ljp7F086398: +/* 0BAF08 7F086398 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BAF0C 7F08639C 45020003 */ bc1fl .Ljp7F0863AC +/* 0BAF10 7F0863A0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF14 7F0863A4 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BAF18 7F0863A8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863AC: +/* 0BAF1C 7F0863AC 460C403C */ c.lt.s $f8, $f12 +/* 0BAF20 7F0863B0 00000000 */ nop +/* 0BAF24 7F0863B4 45020003 */ bc1fl .Ljp7F0863C4 +/* 0BAF28 7F0863B8 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BAF2C 7F0863BC E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BAF30 7F0863C0 C7A40218 */ lwc1 $f4, 0x218($sp) +.Ljp7F0863C4: +/* 0BAF34 7F0863C4 C4265268 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BAF38 7F0863C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAF3C 7F0863CC 44810000 */ mtc1 $at, $f0 +/* 0BAF40 7F0863D0 4604303E */ c.le.s $f6, $f4 +/* 0BAF44 7F0863D4 00000000 */ nop +/* 0BAF48 7F0863D8 45020008 */ bc1fl .Ljp7F0863FC +/* 0BAF4C 7F0863DC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF50 7F0863E0 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF54 7F0863E4 4610503C */ c.lt.s $f10, $f16 +/* 0BAF58 7F0863E8 00000000 */ nop +/* 0BAF5C 7F0863EC 45020003 */ bc1fl .Ljp7F0863FC +/* 0BAF60 7F0863F0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF64 7F0863F4 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BAF68 7F0863F8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863FC: +/* 0BAF6C 7F0863FC 4608003E */ c.le.s $f0, $f8 +/* 0BAF70 7F086400 00000000 */ nop +/* 0BAF74 7F086404 4502000B */ bc1fl .Ljp7F086434 +/* 0BAF78 7F086408 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF7C 7F08640C 46004101 */ sub.s $f4, $f8, $f0 +/* 0BAF80 7F086410 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BAF84 7F086414 44815000 */ mtc1 $at, $f10 +/* 0BAF88 7F086418 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BAF8C 7F08641C C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAF90 7F086420 460A3203 */ div.s $f8, $f6, $f10 +/* 0BAF94 7F086424 46082180 */ add.s $f6, $f4, $f8 +/* 0BAF98 7F086428 1000000A */ b .Ljp7F086454 +/* 0BAF9C 7F08642C E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAFA0 7F086430 C7AA0398 */ lwc1 $f10, 0x398($sp) +.Ljp7F086434: +/* 0BAFA4 7F086434 3C018005 */ lui $at, %hi(D_8005523C) # $at, 0x8005 +/* 0BAFA8 7F086438 C426526C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BAFAC 7F08643C 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BAFB0 7F086440 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BAFB4 7F086444 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAFB8 7F086448 46064283 */ div.s $f10, $f8, $f6 +/* 0BAFBC 7F08644C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BAFC0 7F086450 E508019C */ swc1 $f8, 0x19c($t0) +.Ljp7F086454: +/* 0BAFC4 7F086454 8E280000 */ lw $t0, ($s1) +/* 0BAFC8 7F086458 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BAFCC 7F08645C 4614003C */ c.lt.s $f0, $f20 +/* 0BAFD0 7F086460 00000000 */ nop +/* 0BAFD4 7F086464 45020005 */ bc1fl .Ljp7F08647C +/* 0BAFD8 7F086468 3C013F80 */ lui $at, 0x3f80 +/* 0BAFDC 7F08646C E514019C */ swc1 $f20, 0x19c($t0) +/* 0BAFE0 7F086470 1000000C */ b .Ljp7F0864A4 +/* 0BAFE4 7F086474 8E280000 */ lw $t0, ($s1) +/* 0BAFE8 7F086478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.Ljp7F08647C: +/* 0BAFEC 7F08647C 44813000 */ mtc1 $at, $f6 +/* 0BAFF0 7F086480 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAFF4 7F086484 4600303C */ c.lt.s $f6, $f0 +/* 0BAFF8 7F086488 00000000 */ nop +/* 0BAFFC 7F08648C 45020006 */ bc1fl .Ljp7F0864A8 +/* 0BB000 7F086490 C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BB004 7F086494 44812000 */ mtc1 $at, $f4 +/* 0BB008 7F086498 00000000 */ nop +/* 0BB00C 7F08649C E504019C */ swc1 $f4, 0x19c($t0) +/* 0BB010 7F0864A0 8E280000 */ lw $t0, ($s1) +.Ljp7F0864A4: +/* 0BB014 7F0864A4 C7AC0398 */ lwc1 $f12, 0x398($sp) +.Ljp7F0864A8: +/* 0BB018 7F0864A8 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BB01C 7F0864AC 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BB020 7F0864B0 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BB024 7F0864B4 8E280000 */ lw $t0, ($s1) +/* 0BB028 7F0864B8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB02C 7F0864BC C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB030 7F0864C0 C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BB034 7F0864C4 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BB038 7F0864C8 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BB03C 7F0864CC C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB040 7F0864D0 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB044 7F0864D4 00000000 */ nop +/* 0BB048 7F0864D8 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB04C 7F0864DC 46044281 */ sub.s $f10, $f8, $f4 +/* 0BB050 7F0864E0 C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BB054 7F0864E4 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB058 7F0864E8 46064100 */ add.s $f4, $f8, $f6 +/* 0BB05C 7F0864EC E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BB060 7F0864F0 C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BB064 7F0864F4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB068 7F0864F8 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB06C 7F0864FC 00000000 */ nop +/* 0BB070 7F086500 46060282 */ mul.s $f10, $f0, $f6 +/* 0BB074 7F086504 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB078 7F086508 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB07C 7F08650C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BB080 7F086510 46085180 */ add.s $f6, $f10, $f8 +/* 0BB084 7F086514 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BB088 7F086518 460A2200 */ add.s $f8, $f4, $f10 +/* 0BB08C 7F08651C C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BB090 7F086520 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB094 7F086524 46043280 */ add.s $f10, $f6, $f4 +/* 0BB098 7F086528 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB09C 7F08652C E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BB0A0 7F086530 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0A4 7F086534 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BB0A8 7F086538 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BB0AC 7F08653C E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BB0B0 7F086540 8D0E0488 */ lw $t6, 0x488($t0) +/* 0BB0B4 7F086544 0FC246BE */ jal get_debug_fast_bond_flag +/* 0BB0B8 7F086548 AFAE0200 */ sw $t6, 0x200($sp) +/* 0BB0BC 7F08654C 50400021 */ beql $v0, $zero, .Ljp7F0865D4 +/* 0BB0C0 7F086550 8E380000 */ lw $t8, ($s1) +/* 0BB0C4 7F086554 8E280000 */ lw $t0, ($s1) +/* 0BB0C8 7F086558 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BB0CC 7F08655C 44810000 */ mtc1 $at, $f0 +/* 0BB0D0 7F086560 C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BB0D4 7F086564 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB0D8 7F086568 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB0DC 7F08656C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB0E0 7F086570 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB0E4 7F086574 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB0E8 7F086578 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB0EC 7F08657C 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB0F0 7F086580 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BB0F4 7F086584 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BB0F8 7F086588 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB0FC 7F08658C 00000000 */ nop +/* 0BB100 7F086590 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB104 7F086594 46085180 */ add.s $f6, $f10, $f8 +/* 0BB108 7F086598 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BB10C 7F08659C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB110 7F0865A0 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BB114 7F0865A4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB118 7F0865A8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB11C 7F0865AC C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB120 7F0865B0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB124 7F0865B4 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB128 7F0865B8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB12C 7F0865BC 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB130 7F0865C0 00000000 */ nop +/* 0BB134 7F0865C4 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB138 7F0865C8 46085180 */ add.s $f6, $f10, $f8 +/* 0BB13C 7F0865CC E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB140 7F0865D0 8E380000 */ lw $t8, ($s1) +.Ljp7F0865D4: +/* 0BB144 7F0865D4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB148 7F0865D8 00002825 */ move $a1, $zero +/* 0BB14C 7F0865DC C7041274 */ lwc1 $f4, 0x1274($t8) +/* 0BB150 7F0865E0 4604A032 */ c.eq.s $f20, $f4 +/* 0BB154 7F0865E4 00000000 */ nop +/* 0BB158 7F0865E8 45000002 */ bc1f .Ljp7F0865F4 +/* 0BB15C 7F0865EC 00000000 */ nop +/* 0BB160 7F0865F0 24050001 */ li $a1, 1 +.Ljp7F0865F4: +/* 0BB164 7F0865F4 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB168 7F0865F8 00000000 */ nop +/* 0BB16C 7F0865FC 8E2F0000 */ lw $t7, ($s1) +/* 0BB170 7F086600 3C018005 */ lui $at, %hi(D_80055240) # $at, 0x8005 +/* 0BB174 7F086604 C4285270 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BB178 7F086608 C5EA04B0 */ lwc1 $f10, 0x4b0($t7) +/* 0BB17C 7F08660C 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BB180 7F086610 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB184 7F086614 46085182 */ mul.s $f6, $f10, $f8 +/* 0BB188 7F086618 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB18C 7F08661C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB190 7F086620 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB194 7F086624 44073000 */ mfc1 $a3, $f6 +/* 0BB198 7F086628 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB19C 7F08662C 00000000 */ nop +/* 0BB1A0 7F086630 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1A4 7F086634 02002025 */ move $a0, $s0 +/* 0BB1A8 7F086638 10400002 */ beqz $v0, .Ljp7F086644 +/* 0BB1AC 7F08663C 240A0001 */ li $t2, 1 +/* 0BB1B0 7F086640 AFAA0394 */ sw $t2, 0x394($sp) +.Ljp7F086644: +/* 0BB1B4 7F086644 8E280000 */ lw $t0, ($s1) +/* 0BB1B8 7F086648 3C018005 */ lui $at, %hi(D_80055244) # $at, 0x8005 +/* 0BB1BC 7F08664C C42A5274 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BB1C0 7F086650 C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BB1C4 7F086654 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB1C8 7F086658 8D060494 */ lw $a2, 0x494($t0) +/* 0BB1CC 7F08665C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB1D0 7F086660 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB1D4 7F086664 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB1D8 7F086668 44074000 */ mfc1 $a3, $f8 +/* 0BB1DC 7F08666C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB1E0 7F086670 00000000 */ nop +/* 0BB1E4 7F086674 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1E8 7F086678 02002025 */ move $a0, $s0 +/* 0BB1EC 7F08667C 10400002 */ beqz $v0, .Ljp7F086688 +/* 0BB1F0 7F086680 24190001 */ li $t9, 1 +/* 0BB1F4 7F086684 AFB90394 */ sw $t9, 0x394($sp) +.Ljp7F086688: +/* 0BB1F8 7F086688 8E280000 */ lw $t0, ($s1) +/* 0BB1FC 7F08668C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB200 7F086690 8D060494 */ lw $a2, 0x494($t0) +/* 0BB204 7F086694 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BB208 7F086698 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB20C 7F08669C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB210 7F0866A0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB214 7F0866A4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB218 7F0866A8 02002025 */ move $a0, $s0 +/* 0BB21C 7F0866AC 1440000D */ bnez $v0, .Ljp7F0866E4 +/* 0BB220 7F0866B0 00000000 */ nop +/* 0BB224 7F0866B4 8E2B0000 */ lw $t3, ($s1) +/* 0BB228 7F0866B8 3C018005 */ lui $at, %hi(D_80055248) # $at, 0x8005 +/* 0BB22C 7F0866BC C4245278 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BB230 7F0866C0 C56604B0 */ lwc1 $f6, 0x4b0($t3) +/* 0BB234 7F0866C4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB238 7F0866C8 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB23C 7F0866CC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB240 7F0866D0 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB244 7F0866D4 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB248 7F0866D8 44075000 */ mfc1 $a3, $f10 +/* 0BB24C 7F0866DC 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB250 7F0866E0 00000000 */ nop +.Ljp7F0866E4: +/* 0BB254 7F0866E4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB258 7F0866E8 02002025 */ move $a0, $s0 +/* 0BB25C 7F0866EC 104000B8 */ beqz $v0, .Ljp7F0869D0 +/* 0BB260 7F0866F0 240C0001 */ li $t4, 1 +/* 0BB264 7F0866F4 AFAC0394 */ sw $t4, 0x394($sp) +/* 0BB268 7F0866F8 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BB26C 7F0866FC 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BB270 7F086700 0FC2CBF4 */ jal sub_GAME_7F0B2420 +/* 0BB274 7F086704 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BB278 7F086708 8E2D0000 */ lw $t5, ($s1) +/* 0BB27C 7F08670C C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BB280 7F086710 C5A60074 */ lwc1 $f6, 0x74($t5) +/* 0BB284 7F086714 4608303E */ c.le.s $f6, $f8 +/* 0BB288 7F086718 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BB28C 7F08671C C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB290 7F086720 450200AC */ bc1fl .Ljp7F0869D4 +/* 0BB294 7F086724 8E280000 */ lw $t0, ($s1) +/* 0BB298 7F086728 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BB29C 7F08672C C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BB2A0 7F086730 46064381 */ sub.s $f14, $f8, $f6 +/* 0BB2A4 7F086734 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BB2A8 7F086738 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB2AC 7F08673C E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BB2B0 7F086740 46021282 */ mul.s $f10, $f2, $f2 +/* 0BB2B4 7F086744 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BB2B8 7F086748 0C007E08 */ jal sqrtf +/* 0BB2BC 7F08674C 460A2300 */ add.s $f12, $f4, $f10 +/* 0BB2C0 7F086750 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BB2C4 7F086754 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BB2C8 7F086758 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BB2CC 7F08675C 46001083 */ div.s $f2, $f2, $f0 +/* 0BB2D0 7F086760 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB2D4 7F086764 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BB2D8 7F086768 46064101 */ sub.s $f4, $f8, $f6 +/* 0BB2DC 7F08676C C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB2E0 7F086770 E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BB2E4 7F086774 46007383 */ div.s $f14, $f14, $f0 +/* 0BB2E8 7F086778 46022282 */ mul.s $f10, $f4, $f2 +/* 0BB2EC 7F08677C C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BB2F0 7F086780 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB2F4 7F086784 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BB2F8 7F086788 46065300 */ add.s $f12, $f10, $f6 +/* 0BB2FC 7F08678C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BB300 7F086790 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB304 7F086794 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BB308 7F086798 460A3180 */ add.s $f6, $f6, $f10 +/* 0BB30C 7F08679C C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BB310 7F0867A0 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BB314 7F0867A4 46023282 */ mul.s $f10, $f6, $f2 +/* 0BB318 7F0867A8 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB31C 7F0867AC 46062100 */ add.s $f4, $f4, $f6 +/* 0BB320 7F0867B0 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB324 7F0867B4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB328 7F0867B8 46045480 */ add.s $f18, $f10, $f4 +/* 0BB32C 7F0867BC C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BB330 7F0867C0 46126202 */ mul.s $f8, $f12, $f18 +/* 0BB334 7F0867C4 46009406 */ mov.s $f16, $f18 +/* 0BB338 7F0867C8 4614403E */ c.le.s $f8, $f20 +/* 0BB33C 7F0867CC 46042202 */ mul.s $f8, $f4, $f4 +/* 0BB340 7F0867D0 45020004 */ bc1fl .Ljp7F0867E4 +/* 0BB344 7F0867D4 4614903C */ c.lt.s $f18, $f20 +/* 0BB348 7F0867D8 1000001F */ b .Ljp7F086858 +/* 0BB34C 7F0867DC 4600A386 */ mov.s $f14, $f20 +/* 0BB350 7F0867E0 4614903C */ c.lt.s $f18, $f20 +.Ljp7F0867E4: +/* 0BB354 7F0867E4 00000000 */ nop +/* 0BB358 7F0867E8 45020005 */ bc1fl .Ljp7F086800 +/* 0BB35C 7F0867EC 4610603E */ c.le.s $f12, $f16 +/* 0BB360 7F0867F0 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BB364 7F0867F4 46009407 */ neg.s $f16, $f18 +/* 0BB368 7F0867F8 46006307 */ neg.s $f12, $f12 +/* 0BB36C 7F0867FC 4610603E */ c.le.s $f12, $f16 +.Ljp7F086800: +/* 0BB370 7F086800 00000000 */ nop +/* 0BB374 7F086804 45020004 */ bc1fl .Ljp7F086818 +/* 0BB378 7F086808 8E2E0000 */ lw $t6, ($s1) +/* 0BB37C 7F08680C 10000012 */ b .Ljp7F086858 +/* 0BB380 7F086810 4600A386 */ mov.s $f14, $f20 +/* 0BB384 7F086814 8E2E0000 */ lw $t6, ($s1) +.Ljp7F086818: +/* 0BB388 7F086818 C5C004B0 */ lwc1 $f0, 0x4b0($t6) +/* 0BB38C 7F08681C 4610003C */ c.lt.s $f0, $f16 +/* 0BB390 7F086820 00000000 */ nop +/* 0BB394 7F086824 45020004 */ bc1fl .Ljp7F086838 +/* 0BB398 7F086828 4600603C */ c.lt.s $f12, $f0 +/* 0BB39C 7F08682C 1000000A */ b .Ljp7F086858 +/* 0BB3A0 7F086830 4600A386 */ mov.s $f14, $f20 +/* 0BB3A4 7F086834 4600603C */ c.lt.s $f12, $f0 +.Ljp7F086838: +/* 0BB3A8 7F086838 00000000 */ nop +/* 0BB3AC 7F08683C 45020004 */ bc1fl .Ljp7F086850 +/* 0BB3B0 7F086840 46006181 */ sub.s $f6, $f12, $f0 +/* 0BB3B4 7F086844 10000004 */ b .Ljp7F086858 +/* 0BB3B8 7F086848 4600A386 */ mov.s $f14, $f20 +/* 0BB3BC 7F08684C 46006181 */ sub.s $f6, $f12, $f0 +.Ljp7F086850: +/* 0BB3C0 7F086850 46106281 */ sub.s $f10, $f12, $f16 +/* 0BB3C4 7F086854 460A3383 */ div.s $f14, $f6, $f10 +.Ljp7F086858: +/* 0BB3C8 7F086858 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB3CC 7F08685C E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BB3D0 7F086860 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB3D4 7F086864 0C007E08 */ jal sqrtf +/* 0BB3D8 7F086868 460A4300 */ add.s $f12, $f8, $f10 +/* 0BB3DC 7F08686C 4600A03C */ c.lt.s $f20, $f0 +/* 0BB3E0 7F086870 C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BB3E4 7F086874 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB3E8 7F086878 4502001B */ bc1fl .Ljp7F0868E8 +/* 0BB3EC 7F08687C C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BB3F0 7F086880 44812000 */ mtc1 $at, $f4 +/* 0BB3F4 7F086884 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB3F8 7F086888 44814000 */ mtc1 $at, $f8 +/* 0BB3FC 7F08688C 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BB400 7F086890 8E380000 */ lw $t8, ($s1) +/* 0BB404 7F086894 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BB408 7F086898 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB40C 7F08689C 46003082 */ mul.s $f2, $f6, $f0 +/* 0BB410 7F0868A0 00000000 */ nop +/* 0BB414 7F0868A4 46081302 */ mul.s $f12, $f2, $f8 +/* 0BB418 7F0868A8 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BB41C 7F0868AC C7120074 */ lwc1 $f18, 0x74($t8) +/* 0BB420 7F0868B0 460C9280 */ add.s $f10, $f18, $f12 +/* 0BB424 7F0868B4 460A203E */ c.le.s $f4, $f10 +/* 0BB428 7F0868B8 00000000 */ nop +/* 0BB42C 7F0868BC 45000009 */ bc1f .Ljp7F0868E4 +/* 0BB430 7F0868C0 00000000 */ nop +/* 0BB434 7F0868C4 46122181 */ sub.s $f6, $f4, $f18 +/* 0BB438 7F0868C8 44814000 */ mtc1 $at, $f8 +/* 0BB43C 7F0868CC 00000000 */ nop +/* 0BB440 7F0868D0 46083283 */ div.s $f10, $f6, $f8 +/* 0BB444 7F0868D4 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BB448 7F0868D8 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BB44C 7F0868DC 46008103 */ div.s $f4, $f16, $f0 +/* 0BB450 7F0868E0 46047380 */ add.s $f14, $f14, $f4 +.Ljp7F0868E4: +/* 0BB454 7F0868E4 C7A6019C */ lwc1 $f6, 0x19c($sp) +.Ljp7F0868E8: +/* 0BB458 7F0868E8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB45C 7F0868EC C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BB460 7F0868F0 C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BB464 7F0868F4 46083301 */ sub.s $f12, $f6, $f8 +/* 0BB468 7F0868F8 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BB46C 7F0868FC 8E280000 */ lw $t0, ($s1) +/* 0BB470 7F086900 46045401 */ sub.s $f16, $f10, $f4 +/* 0BB474 7F086904 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BB478 7F086908 46083481 */ sub.s $f18, $f6, $f8 +/* 0BB47C 7F08690C 46045181 */ sub.s $f6, $f10, $f4 +/* 0BB480 7F086910 46129202 */ mul.s $f8, $f18, $f18 +/* 0BB484 7F086914 00000000 */ nop +/* 0BB488 7F086918 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB48C 7F08691C E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BB490 7F086920 460A4100 */ add.s $f4, $f8, $f10 +/* 0BB494 7F086924 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BB498 7F086928 00000000 */ nop +/* 0BB49C 7F08692C 46108282 */ mul.s $f10, $f16, $f16 +/* 0BB4A0 7F086930 460A4200 */ add.s $f8, $f8, $f10 +/* 0BB4A4 7F086934 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BB4A8 7F086938 4608203C */ c.lt.s $f4, $f8 +/* 0BB4AC 7F08693C C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BB4B0 7F086940 45000003 */ bc1f .Ljp7F086950 +/* 0BB4B4 7F086944 46045201 */ sub.s $f8, $f10, $f4 +/* 0BB4B8 7F086948 46009306 */ mov.s $f12, $f18 +/* 0BB4BC 7F08694C 46003406 */ mov.s $f16, $f6 +.Ljp7F086950: +/* 0BB4C0 7F086950 C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BB4C4 7F086954 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB4C8 7F086958 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB4CC 7F08695C 46083003 */ div.s $f0, $f6, $f8 +/* 0BB4D0 7F086960 00002825 */ move $a1, $zero +/* 0BB4D4 7F086964 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BB4D8 7F086968 00000000 */ nop +/* 0BB4DC 7F08696C 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BB4E0 7F086970 46065200 */ add.s $f8, $f10, $f6 +/* 0BB4E4 7F086974 46100102 */ mul.s $f4, $f0, $f16 +/* 0BB4E8 7F086978 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB4EC 7F08697C E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB4F0 7F086980 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB4F4 7F086984 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB4F8 7F086988 46062200 */ add.s $f8, $f4, $f6 +/* 0BB4FC 7F08698C E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BB500 7F086990 E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BB504 7F086994 8E2F0000 */ lw $t7, ($s1) +/* 0BB508 7F086998 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BB50C 7F08699C E5E40494 */ swc1 $f4, 0x494($t7) +/* 0BB510 7F0869A0 8E390000 */ lw $t9, ($s1) +/* 0BB514 7F0869A4 8FAA0200 */ lw $t2, 0x200($sp) +/* 0BB518 7F0869A8 AF2A0488 */ sw $t2, 0x488($t9) +/* 0BB51C 7F0869AC 8E2B0000 */ lw $t3, ($s1) +/* 0BB520 7F0869B0 C5661274 */ lwc1 $f6, 0x1274($t3) +/* 0BB524 7F0869B4 4606A032 */ c.eq.s $f20, $f6 +/* 0BB528 7F0869B8 00000000 */ nop +/* 0BB52C 7F0869BC 45000002 */ bc1f .Ljp7F0869C8 +/* 0BB530 7F0869C0 00000000 */ nop +/* 0BB534 7F0869C4 24050001 */ li $a1, 1 +.Ljp7F0869C8: +/* 0BB538 7F0869C8 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB53C 7F0869CC 00000000 */ nop +.Ljp7F0869D0: +/* 0BB540 7F0869D0 8E280000 */ lw $t0, ($s1) +.Ljp7F0869D4: +/* 0BB544 7F0869D4 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB548 7F0869D8 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BB54C 7F0869DC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB550 7F0869E0 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB554 7F0869E4 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BB558 7F0869E8 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BB55C 7F0869EC 46062381 */ sub.s $f14, $f4, $f6 +/* 0BB560 7F0869F0 46084282 */ mul.s $f10, $f8, $f8 +/* 0BB564 7F0869F4 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB568 7F0869F8 46042182 */ mul.s $f6, $f4, $f4 +/* 0BB56C 7F0869FC 46065000 */ add.s $f0, $f10, $f6 +/* 0BB570 7F086A00 46140032 */ c.eq.s $f0, $f20 +/* 0BB574 7F086A04 46000306 */ mov.s $f12, $f0 +/* 0BB578 7F086A08 45010006 */ bc1t .Ljp7F086A24 +/* 0BB57C 7F086A0C 00000000 */ nop +/* 0BB580 7F086A10 46021202 */ mul.s $f8, $f2, $f2 +/* 0BB584 7F086A14 00000000 */ nop +/* 0BB588 7F086A18 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB58C 7F086A1C 46044280 */ add.s $f10, $f8, $f4 +/* 0BB590 7F086A20 46005303 */ div.s $f12, $f10, $f0 +.Ljp7F086A24: +/* 0BB594 7F086A24 0C007E08 */ jal sqrtf +/* 0BB598 7F086A28 00000000 */ nop +/* 0BB59C 7F086A2C C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BB5A0 7F086A30 8E280000 */ lw $t0, ($s1) +/* 0BB5A4 7F086A34 46080102 */ mul.s $f4, $f0, $f8 +/* 0BB5A8 7F086A38 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BB5AC 7F086A3C 46043280 */ add.s $f10, $f6, $f4 +/* 0BB5B0 7F086A40 E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BB5B4 7F086A44 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BB5B8 7F086A48 8E280000 */ lw $t0, ($s1) +/* 0BB5BC 7F086A4C 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB5C0 7F086A50 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BB5C4 7F086A54 46044280 */ add.s $f10, $f8, $f4 +/* 0BB5C8 7F086A58 E50A127C */ swc1 $f10, 0x127c($t0) +.Ljp7F086A5C: +/* 0BB5CC 7F086A5C 8E280000 */ lw $t0, ($s1) +.Ljp7F086A60: +/* 0BB5D0 7F086A60 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BB5D4 7F086A64 C428527C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BB5D8 7F086A68 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BB5DC 7F086A6C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BB5E0 7F086A70 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BB5E4 7F086A74 46083103 */ div.s $f4, $f6, $f8 +/* 0BB5E8 7F086A78 44813000 */ mtc1 $at, $f6 +/* 0BB5EC 7F086A7C C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BB5F0 7F086A80 46065203 */ div.s $f8, $f10, $f6 +/* 0BB5F4 7F086A84 46082080 */ add.s $f2, $f4, $f8 +/* 0BB5F8 7F086A88 0FC23D76 */ jal sub_GAME_7F08EAF8 +/* 0BB5FC 7F086A8C E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BB600 7F086A90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB604 7F086A94 44817000 */ mtc1 $at, $f14 +/* 0BB608 7F086A98 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BB60C 7F086A9C 4407A000 */ mfc1 $a3, $f20 +/* 0BB610 7F086AA0 46000306 */ mov.s $f12, $f0 +/* 0BB614 7F086AA4 4602703C */ c.lt.s $f14, $f2 +/* 0BB618 7F086AA8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BB61C 7F086AAC 45020004 */ bc1fl .Ljp7F086AC0 +/* 0BB620 7F086AB0 44817000 */ mtc1 $at, $f14 +/* 0BB624 7F086AB4 10000008 */ b .Ljp7F086AD8 +/* 0BB628 7F086AB8 46007086 */ mov.s $f2, $f14 +/* 0BB62C 7F086ABC 44817000 */ mtc1 $at, $f14 +.Ljp7F086AC0: +/* 0BB630 7F086AC0 00000000 */ nop +/* 0BB634 7F086AC4 460E103C */ c.lt.s $f2, $f14 +/* 0BB638 7F086AC8 00000000 */ nop +/* 0BB63C 7F086ACC 45020003 */ bc1fl .Ljp7F086ADC +/* 0BB640 7F086AD0 8E2C0000 */ lw $t4, ($s1) +/* 0BB644 7F086AD4 46007086 */ mov.s $f2, $f14 +.Ljp7F086AD8: +/* 0BB648 7F086AD8 8E2C0000 */ lw $t4, ($s1) +.Ljp7F086ADC: +/* 0BB64C 7F086ADC 24010001 */ li $at, 1 +/* 0BB650 7F086AE0 44061000 */ mfc1 $a2, $f2 +/* 0BB654 7F086AE4 8D8D04E8 */ lw $t5, 0x4e8($t4) +/* 0BB658 7F086AE8 15A10004 */ bne $t5, $at, .Ljp7F086AFC +/* 0BB65C 7F086AEC 3C018005 */ lui $at, %hi(D_80055250) # $at, 0x8005 +/* 0BB660 7F086AF0 C42A5280 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BB664 7F086AF4 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BB668 7F086AF8 00000000 */ nop +.Ljp7F086AFC: +/* 0BB66C 7F086AFC 0FC17981 */ jal sub_GAME_7F05E0E4 +/* 0BB670 7F086B00 C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BB674 7F086B04 8E2E0000 */ lw $t6, ($s1) +/* 0BB678 7F086B08 3C018005 */ lui $at, %hi(D_80055254) # $at, 0x8005 +/* 0BB67C 7F086B0C C4245284 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BB680 7F086B10 C5C6015C */ lwc1 $f6, 0x15c($t6) +/* 0BB684 7F086B14 46043302 */ mul.s $f12, $f6, $f4 +/* 0BB688 7F086B18 0FC17AC4 */ jal sub_GAME_7F05E5F0 +/* 0BB68C 7F086B1C 00000000 */ nop +/* 0BB690 7F086B20 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BB694 7F086B24 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BB698 7F086B28 3C188003 */ lui $t8, %hi(in_tank_flag) # $t8, 0x8003 +/* 0BB69C 7F086B2C 50600135 */ beql $v1, $zero, .Ljp7F087004 +/* 0BB6A0 7F086B30 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6A4 7F086B34 8F186488 */ lw $t8, %lo(in_tank_flag)($t8) +/* 0BB6A8 7F086B38 24010001 */ li $at, 1 +/* 0BB6AC 7F086B3C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BB6B0 7F086B40 57010130 */ bnel $t8, $at, .Ljp7F087004 +/* 0BB6B4 7F086B44 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6B8 7F086B48 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BB6BC 7F086B4C 24010002 */ li $at, 2 +/* 0BB6C0 7F086B50 55E1012C */ bnel $t7, $at, .Ljp7F087004 +/* 0BB6C4 7F086B54 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6C8 7F086B58 8C620004 */ lw $v0, 4($v1) +/* 0BB6CC 7F086B5C 00002025 */ move $a0, $zero +/* 0BB6D0 7F086B60 AFA20138 */ sw $v0, 0x138($sp) +/* 0BB6D4 7F086B64 8C4A0014 */ lw $t2, 0x14($v0) +/* 0BB6D8 7F086B68 00408025 */ move $s0, $v0 +/* 0BB6DC 7F086B6C 8D590008 */ lw $t9, 8($t2) +/* 0BB6E0 7F086B70 8F2B0008 */ lw $t3, 8($t9) +/* 0BB6E4 7F086B74 8D6C0014 */ lw $t4, 0x14($t3) +/* 0BB6E8 7F086B78 8D8D0004 */ lw $t5, 4($t4) +/* 0BB6EC 7F086B7C 0FC177BC */ jal get_item_in_hand +/* 0BB6F0 7F086B80 AFAD0130 */ sw $t5, 0x130($sp) +/* 0BB6F4 7F086B84 38430020 */ xori $v1, $v0, 0x20 +/* 0BB6F8 7F086B88 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB6FC 7F086B8C 50800005 */ beql $a0, $zero, .Ljp7F086BA4 +/* 0BB700 7F086B90 AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB704 7F086B94 0FC1786A */ jal get_hands_firing_status +/* 0BB708 7F086B98 00002025 */ move $a0, $zero +/* 0BB70C 7F086B9C 0002202B */ sltu $a0, $zero, $v0 +/* 0BB710 7F086BA0 AE0400C4 */ sw $a0, 0xc4($s0) +.Ljp7F086BA4: +/* 0BB714 7F086BA4 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BB718 7F086BA8 C42864AC */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB71C 7F086BAC 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BB720 7F086BB0 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB724 7F086BB4 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB728 7F086BB8 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB72C 7F086BBC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB730 7F086BC0 E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB734 7F086BC4 C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB738 7F086BC8 3C018005 */ lui $at, %hi(D_80055258) # $at, 0x8005 +/* 0BB73C 7F086BCC E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB740 7F086BD0 C4245288 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB744 7F086BD4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB748 7F086BD8 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB74C 7F086BDC 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BB750 7F086BE0 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB754 7F086BE4 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BB758 7F086BE8 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB75C 7F086BEC 8DD80014 */ lw $t8, 0x14($t6) +/* 0BB760 7F086BF0 0FC163E7 */ jal matrix_scalar_multiply +/* 0BB764 7F086BF4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BB768 7F086BF8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) # $at, 0x8008 +/* 0BB76C 7F086BFC C42A99E8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB770 7F086C00 C42499EC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB774 7F086C04 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) # $at, 0x8008 +/* 0BB778 7F086C08 46005187 */ neg.s $f6, $f10 +/* 0BB77C 7F086C0C C42A99F0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB780 7F086C10 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB784 7F086C14 46002207 */ neg.s $f8, $f4 +/* 0BB788 7F086C18 46005187 */ neg.s $f6, $f10 +/* 0BB78C 7F086C1C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB790 7F086C20 E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB794 7F086C24 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB798 7F086C28 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BB79C 7F086C2C 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB7A0 7F086C30 8E280000 */ lw $t0, ($s1) +/* 0BB7A4 7F086C34 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB7A8 7F086C38 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB7AC 7F086C3C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB7B0 7F086C40 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB7B4 7F086C44 46082280 */ add.s $f10, $f4, $f8 +/* 0BB7B8 7F086C48 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB7BC 7F086C4C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB7C0 7F086C50 46043200 */ add.s $f8, $f6, $f4 +/* 0BB7C4 7F086C54 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB7C8 7F086C58 8D0F0488 */ lw $t7, 0x488($t0) +/* 0BB7CC 7F086C5C 8C4A0010 */ lw $t2, 0x10($v0) +/* 0BB7D0 7F086C60 AD4F0014 */ sw $t7, 0x14($t2) +/* 0BB7D4 7F086C64 8E280000 */ lw $t0, ($s1) +/* 0BB7D8 7F086C68 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB7DC 7F086C6C 8C440010 */ lw $a0, 0x10($v0) +/* 0BB7E0 7F086C70 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB7E4 7F086C74 8D060494 */ lw $a2, 0x494($t0) +/* 0BB7E8 7F086C78 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB7EC 7F086C7C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB7F0 7F086C80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 0BB7F4 7F086C84 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB7F8 7F086C88 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB7FC 7F086C8C 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB800 7F086C90 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB804 7F086C94 8F2B0010 */ lw $t3, 0x10($t9) +/* 0BB808 7F086C98 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0BB80C 7F086C9C 8D640014 */ lw $a0, 0x14($t3) +/* 0BB810 7F086CA0 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 0BB814 7F086CA4 246383A4 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c5c +/* 0BB818 7F086CA8 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB81C 7F086CAC 8C6C0000 */ lw $t4, ($v1) +/* 0BB820 7F086CB0 00001025 */ move $v0, $zero +/* 0BB824 7F086CB4 3C018005 */ lui $at, %hi(D_8005525C) # $at, 0x8005 +/* 0BB828 7F086CB8 1980000C */ blez $t4, .Ljp7F086CEC +/* 0BB82C 7F086CBC 00000000 */ nop +/* 0BB830 7F086CC0 C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB834 7F086CC4 C420528C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB838 7F086CC8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CCC: +/* 0BB83C 7F086CCC 24420001 */ addiu $v0, $v0, 1 +/* 0BB840 7F086CD0 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB844 7F086CD4 46022200 */ add.s $f8, $f4, $f2 +/* 0BB848 7F086CD8 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB84C 7F086CDC 8C6D0000 */ lw $t5, ($v1) +/* 0BB850 7F086CE0 004D082A */ slt $at, $v0, $t5 +/* 0BB854 7F086CE4 5420FFF9 */ bnezl $at, .Ljp7F086CCC +/* 0BB858 7F086CE8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CEC: +/* 0BB85C 7F086CEC 3C018005 */ lui $at, %hi(D_80055260) # $at, 0x8005 +/* 0BB860 7F086CF0 C4265290 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB864 7F086CF4 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB868 7F086CF8 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB86C 7F086CFC 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB870 7F086D00 0FC0FAD9 */ jal sub_GAME_7F03E864 +/* 0BB874 7F086D04 00000000 */ nop +/* 0BB878 7F086D08 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB87C 7F086D0C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB880 7F086D10 44813000 */ mtc1 $at, $f6 +/* 0BB884 7F086D14 8C4E0014 */ lw $t6, 0x14($v0) +/* 0BB888 7F086D18 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB88C 7F086D1C 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB890 7F086D20 C5C40014 */ lwc1 $f4, 0x14($t6) +/* 0BB894 7F086D24 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB898 7F086D28 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB89C 7F086D2C 46065100 */ add.s $f4, $f10, $f6 +/* 0BB8A0 7F086D30 0FC16150 */ jal matrix_4x4_copy +/* 0BB8A4 7F086D34 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB8A8 7F086D38 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8AC 7F086D3C C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB8B0 7F086D40 8C980010 */ lw $t8, 0x10($a0) +/* 0BB8B4 7F086D44 E7000008 */ swc1 $f0, 8($t8) +/* 0BB8B8 7F086D48 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB8BC 7F086D4C C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB8C0 7F086D50 8C8F0010 */ lw $t7, 0x10($a0) +/* 0BB8C4 7F086D54 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0BB8C8 7F086D58 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB8CC 7F086D5C C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB8D0 7F086D60 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB8D4 7F086D64 E5400010 */ swc1 $f0, 0x10($t2) +/* 0BB8D8 7F086D68 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 0BB8DC 7F086D6C E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB8E0 7F086D70 0FC101E1 */ jal sub_GAME_7F040484 +/* 0BB8E4 7F086D74 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8E8 7F086D78 8E250000 */ lw $a1, ($s1) +/* 0BB8EC 7F086D7C 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BB8F0 7F086D80 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB8F4 7F086D84 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB8F8 7F086D88 0FC1F3AB */ jal sub_GAME_7F07C888 +/* 0BB8FC 7F086D8C 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB900 7F086D90 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB904 7F086D94 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB908 7F086D98 02002825 */ move $a1, $s0 +/* 0BB90C 7F086D9C 0FC0F3A3 */ jal sub_GAME_7F03CB8C +/* 0BB910 7F086DA0 8F240010 */ lw $a0, 0x10($t9) +/* 0BB914 7F086DA4 0FC0F9BF */ jal sub_GAME_7F03E3FC +/* 0BB918 7F086DA8 02002025 */ move $a0, $s0 +/* 0BB91C 7F086DAC 3C0B8007 */ lui $t3, %hi(ptr_list_object_lookup_indices) # $t3, 0x8007 +/* 0BB920 7F086DB0 8D6B9C70 */ lw $t3, %lo(ptr_list_object_lookup_indices)($t3) +/* 0BB924 7F086DB4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB928 7F086DB8 AFAB008C */ sw $t3, 0x8c($sp) +/* 0BB92C 7F086DBC 85620000 */ lh $v0, ($t3) +/* 0BB930 7F086DC0 04420090 */ bltzl $v0, .Ljp7F087004 +/* 0BB934 7F086DC4 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB938 7F086DC8 4481A000 */ mtc1 $at, $f20 +/* 0BB93C 7F086DCC 00000000 */ nop +/* 0BB940 7F086DD0 8FAE0138 */ lw $t6, 0x138($sp) +.Ljp7F086DD4: +/* 0BB944 7F086DD4 00026080 */ sll $t4, $v0, 2 +/* 0BB948 7F086DD8 01826023 */ subu $t4, $t4, $v0 +/* 0BB94C 7F086DDC 000C6080 */ sll $t4, $t4, 2 +/* 0BB950 7F086DE0 8DD80010 */ lw $t8, 0x10($t6) +/* 0BB954 7F086DE4 01826021 */ addu $t4, $t4, $v0 +/* 0BB958 7F086DE8 3C0D8007 */ lui $t5, %hi(pos_data_entry) # $t5, 0x8007 +/* 0BB95C 7F086DEC 25AD9C78 */ addiu $t5, %lo(pos_data_entry) # addiu $t5, $t5, -0x6388 +/* 0BB960 7F086DF0 000C6080 */ sll $t4, $t4, 2 +/* 0BB964 7F086DF4 018D8021 */ addu $s0, $t4, $t5 +/* 0BB968 7F086DF8 5218007C */ beql $s0, $t8, .Ljp7F086FEC +/* 0BB96C 7F086DFC 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BB970 7F086E00 92020000 */ lbu $v0, ($s0) +/* 0BB974 7F086E04 24010003 */ li $at, 3 +/* 0BB978 7F086E08 240F0001 */ li $t7, 1 +/* 0BB97C 7F086E0C 1441005A */ bne $v0, $at, .Ljp7F086F78 +/* 0BB980 7F086E10 02002025 */ move $a0, $s0 +/* 0BB984 7F086E14 AFAF007C */ sw $t7, 0x7c($sp) +/* 0BB988 7F086E18 8E030004 */ lw $v1, 4($s0) +/* 0BB98C 7F086E1C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB990 7F086E20 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB994 7F086E24 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB998 7F086E28 0FC0F4A2 */ jal sub_GAME_7F03CF88 +/* 0BB99C 7F086E2C AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9A0 7F086E30 26040008 */ addiu $a0, $s0, 8 +/* 0BB9A4 7F086E34 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB9A8 7F086E38 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB9AC 7F086E3C 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 0BB9B0 7F086E40 24060004 */ li $a2, 4 +/* 0BB9B4 7F086E44 10400031 */ beqz $v0, .Ljp7F086F0C +/* 0BB9B8 7F086E48 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9BC 7F086E4C AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB9C0 7F086E50 806A0007 */ lb $t2, 7($v1) +/* 0BB9C4 7F086E54 24010004 */ li $at, 4 +/* 0BB9C8 7F086E58 5541002D */ bnel $t2, $at, .Ljp7F086F10 +/* 0BB9CC 7F086E5C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9D0 7F086E60 8C790014 */ lw $t9, 0x14($v1) +/* 0BB9D4 7F086E64 001959C0 */ sll $t3, $t9, 7 +/* 0BB9D8 7F086E68 05620029 */ bltzl $t3, .Ljp7F086F10 +/* 0BB9DC 7F086E6C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9E0 7F086E70 0FC3021B */ jal get_controls_locked_flag +/* 0BB9E4 7F086E74 AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9E8 7F086E78 14400024 */ bnez $v0, .Ljp7F086F0C +/* 0BB9EC 7F086E7C 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9F0 7F086E80 8C6C0014 */ lw $t4, 0x14($v1) +/* 0BB9F4 7F086E84 3C010100 */ lui $at, 0x100 +/* 0BB9F8 7F086E88 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BB9FC 7F086E8C 01816825 */ or $t5, $t4, $at +/* 0BBA00 7F086E90 AC6D0014 */ sw $t5, 0x14($v1) +/* 0BBA04 7F086E94 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA08 7F086E98 24010003 */ li $at, 3 +/* 0BBA0C 7F086E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BBA10 7F086EA0 0041001A */ div $zero, $v0, $at +/* 0BBA14 7F086EA4 00001010 */ mfhi $v0 +/* 0BBA18 7F086EA8 28410002 */ slti $at, $v0, 2 +/* 0BBA1C 7F086EAC 1020000E */ beqz $at, .Ljp7F086EE8 +/* 0BBA20 7F086EB0 240500B7 */ li $a1, 183 +/* 0BBA24 7F086EB4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BBA28 7F086EB8 0C002386 */ jal play_sfx_a1 +/* 0BBA2C 7F086EBC 00003025 */ move $a2, $zero +/* 0BBA30 7F086EC0 00402025 */ move $a0, $v0 +/* 0BBA34 7F086EC4 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA38 7F086EC8 8FA50050 */ lw $a1, 0x50($sp) +/* 0BBA3C 7F086ECC 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BBA40 7F086ED0 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA44 7F086ED4 24010003 */ li $at, 3 +/* 0BBA48 7F086ED8 0041001A */ div $zero, $v0, $at +/* 0BBA4C 7F086EDC 00001010 */ mfhi $v0 +/* 0BBA50 7F086EE0 00000000 */ nop +/* 0BBA54 7F086EE4 00000000 */ nop +.Ljp7F086EE8: +/* 0BBA58 7F086EE8 18400008 */ blez $v0, .Ljp7F086F0C +/* 0BBA5C 7F086EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BBA60 7F086EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BBA64 7F086EF4 240500D5 */ li $a1, 213 +/* 0BBA68 7F086EF8 0C002386 */ jal play_sfx_a1 +/* 0BBA6C 7F086EFC 00003025 */ move $a2, $zero +/* 0BBA70 7F086F00 00402025 */ move $a0, $v0 +/* 0BBA74 7F086F04 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA78 7F086F08 8FA50050 */ lw $a1, 0x50($sp) +.Ljp7F086F0C: +/* 0BBA7C 7F086F0C 8FAF007C */ lw $t7, 0x7c($sp) +.Ljp7F086F10: +/* 0BBA80 7F086F10 8FA40050 */ lw $a0, 0x50($sp) +/* 0BBA84 7F086F14 8FA50080 */ lw $a1, 0x80($sp) +/* 0BBA88 7F086F18 11E00006 */ beqz $t7, .Ljp7F086F34 +/* 0BBA8C 7F086F1C 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBA90 7F086F20 0FC112BB */ jal sub_GAME_7F044718 +/* 0BBA94 7F086F24 24070004 */ li $a3, 4 +/* 0BBA98 7F086F28 50400003 */ beql $v0, $zero, .Ljp7F086F38 +/* 0BBA9C 7F086F2C 8FAA007C */ lw $t2, 0x7c($sp) +/* 0BBAA0 7F086F30 AFA0007C */ sw $zero, 0x7c($sp) +.Ljp7F086F34: +/* 0BBAA4 7F086F34 8FAA007C */ lw $t2, 0x7c($sp) +.Ljp7F086F38: +/* 0BBAA8 7F086F38 8FB90138 */ lw $t9, 0x138($sp) +/* 0BBAAC 7F086F3C 5540002B */ bnezl $t2, .Ljp7F086FEC +/* 0BBAB0 7F086F40 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBAB4 7F086F44 C7280058 */ lwc1 $f8, 0x58($t9) +/* 0BBAB8 7F086F48 4406A000 */ mfc1 $a2, $f20 +/* 0BBABC 7F086F4C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BBAC0 7F086F50 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BBAC4 7F086F54 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BBAC8 7F086F58 24070001 */ li $a3, 1 +/* 0BBACC 7F086F5C E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BBAD0 7F086F60 C7260060 */ lwc1 $f6, 0x60($t9) +/* 0BBAD4 7F086F64 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BBAD8 7F086F68 0FC09EC3 */ jal sub_GAME_7F027804 +/* 0BBADC 7F086F6C 8E040004 */ lw $a0, 4($s0) +/* 0BBAE0 7F086F70 1000001E */ b .Ljp7F086FEC +/* 0BBAE4 7F086F74 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086F78: +/* 0BBAE8 7F086F78 24010001 */ li $at, 1 +/* 0BBAEC 7F086F7C 1441001A */ bne $v0, $at, .Ljp7F086FE8 +/* 0BBAF0 7F086F80 02002025 */ move $a0, $s0 +/* 0BBAF4 7F086F84 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BBAF8 7F086F88 0FC0F3EC */ jal sub_GAME_7F03CCB0 +/* 0BBAFC 7F086F8C 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BBB00 7F086F90 8FA50060 */ lw $a1, 0x60($sp) +/* 0BBB04 7F086F94 8FA40064 */ lw $a0, 0x64($sp) +/* 0BBB08 7F086F98 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBB0C 7F086F9C 58A00013 */ blezl $a1, .Ljp7F086FEC +/* 0BBB10 7F086FA0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB14 7F086FA4 0FC11268 */ jal sub_GAME_7F0446B8 +/* 0BBB18 7F086FA8 24070004 */ li $a3, 4 +/* 0BBB1C 7F086FAC 5040000F */ beql $v0, $zero, .Ljp7F086FEC +/* 0BBB20 7F086FB0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB24 7F086FB4 0FC26F3C */ jal get_cur_playernum +/* 0BBB28 7F086FB8 00000000 */ nop +/* 0BBB2C 7F086FBC 8E060004 */ lw $a2, 4($s0) +/* 0BBB30 7F086FC0 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BBB34 7F086FC4 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BBB38 7F086FC8 AFA20010 */ sw $v0, 0x10($sp) +/* 0BBB3C 7F086FCC 02002025 */ move $a0, $s0 +/* 0BBB40 7F086FD0 24070020 */ li $a3, 32 +/* 0BBB44 7F086FD4 0FC138C0 */ jal sub_GAME_7F04DEFC +/* 0BBB48 7F086FD8 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BBB4C 7F086FDC 240B005A */ li $t3, 90 +/* 0BBB50 7F086FE0 3C018003 */ lui $at, %hi(D_80036490) # $at, 0x8003 +/* 0BBB54 7F086FE4 AC2B64D0 */ sw $t3, %lo(D_80036490)($at) +.Ljp7F086FE8: +/* 0BBB58 7F086FE8 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086FEC: +/* 0BBB5C 7F086FEC 258D0002 */ addiu $t5, $t4, 2 +/* 0BBB60 7F086FF0 AFAD008C */ sw $t5, 0x8c($sp) +/* 0BBB64 7F086FF4 85A20000 */ lh $v0, ($t5) +/* 0BBB68 7F086FF8 0443FF76 */ bgezl $v0, .Ljp7F086DD4 +/* 0BBB6C 7F086FFC 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BBB70 7F087000 8FA40394 */ lw $a0, 0x394($sp) +.Ljp7F087004: +/* 0BBB74 7F087004 0FC20502 */ jal sub_GAME_7F080DF8 +/* 0BBB78 7F087008 8FA50390 */ lw $a1, 0x390($sp) +/* 0BBB7C 7F08700C 0FC206A2 */ jal sub_GAME_7F081478 +/* 0BBB80 7F087010 00000000 */ nop +/* 0BBB84 7F087014 0FC22A35 */ jal sub_GAME_7F08A19C +/* 0BBB88 7F087018 00000000 */ nop +/* 0BBB8C 7F08701C 0FC24697 */ jal get_debug_man_pos_flag +/* 0BBB90 7F087020 00000000 */ nop +/* 0BBB94 7F087024 50400008 */ beql $v0, $zero, .Ljp7F087048 +/* 0BBB98 7F087028 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BBB9C 7F08702C 8E280000 */ lw $t0, ($s1) +/* 0BBBA0 7F087030 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BBBA4 7F087034 8D040488 */ lw $a0, 0x488($t0) +/* 0BBBA8 7F087038 8D05048C */ lw $a1, 0x48c($t0) +/* 0BBBAC 7F08703C 0FC2CDF7 */ jal copy_tile_RGB_as_24bit +/* 0BBBB0 7F087040 8D060494 */ lw $a2, 0x494($t0) +/* 0BBBB4 7F087044 8FBF002C */ lw $ra, 0x2c($sp) +.Ljp7F087048: +/* 0BBBB8 7F087048 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BBBBC 7F08704C 8FB00024 */ lw $s0, 0x24($sp) +/* 0BBBC0 7F087050 8FB10028 */ lw $s1, 0x28($sp) +/* 0BBBC4 7F087054 03E00008 */ jr $ra +/* 0BBBC8 7F087058 27BD03B8 */ addiu $sp, $sp, 0x3b8 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F086990(s32 arg0, s32 arg1, ? arg2, ? arg_unalignedA, ? arg3, ? arg_unalignedE) { + ? sp30; + ? sp3C; + f32 sp40; + f32 sp48; + ? sp4C; + ? sp58; + ? sp64; + + // Node 0 + sp64 = (?32) D_80036800; + sp64.unk4 = (?32) D_80036800.unk4; + sp64.unk8 = (?32) D_80036800.unk8; + sp58 = (?32) D_8003680C; + sp58.unk4 = (?32) D_8003680C.unk4; + sp58.unk8 = (?32) D_8003680C.unk8; + sp4C = (?32) D_80036818; + sp4C.unk4 = (?32) D_80036818.unk4; + sp4C.unk8 = (?32) D_80036818.unk8; + sp40 = (?32) D_80036824; + sp40.unk4 = (?32) D_80036824.unk4; + sp40.unk8 = (?32) D_80036824.unk8; + sub_GAME_7F083FC8(); + sub_GAME_7F084360(); + controller_gameplay_interaction(0, 0, 0, 0); + sub_GAME_7F081790(); + sub_GAME_7F080B34(0, 0, 0); + if ((0.0f != flt_CODE_bss_80079990) || (0.0f != flt_CODE_bss_80079990.unk8)) + { + // Node 2 + sp40 = (f32) (sp40 + (flt_CODE_bss_80079990 * global_timer_delta)); + sp48 = (f32) (sp48 + (flt_CODE_bss_80079990.unk8 * global_timer_delta)); + } + else + { + + } + // Node 3 + sp40 = (f32) (sp40 + (((pPlayer->field_504 * pPlayer->field_498) - (pPlayer->field_4FC * pPlayer->field_4A0)) * global_timer_delta)); + sp48 = (f32) (sp48 + (((pPlayer->field_504 * pPlayer->field_4A0) + (pPlayer->field_4FC * pPlayer->field_498)) * global_timer_delta)); + sub_GAME_7F07D960(0.0f, &sp40, 1); + sub_GAME_7F080DF8(0, 0, 0); + sub_GAME_7F081478(); + if (cameramode != 4) + { + // Node 4 + if (cameramode != 0xa) + { + // Node 5 + if (cameramode != 0xa) + { + // Node 7 + sub_GAME_7F07B56C(arg_unalignedA, arg_unalignedE, &sp64, &sp58, &sp4C, &sp3C, &sp30); + setptrBONDdata(1); + // Node 8 + return setptrBONDdata(0); + } + } + } + // Node 6 + return setptrBONDdata(0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F086990 +/* 0BB4C0 7F086990 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0BB4C4 7F086994 3C0F8003 */ lui $t7, %hi(D_80036800) +/* 0BB4C8 7F086998 AFBF0024 */ sw $ra, 0x24($sp) +/* 0BB4CC 7F08699C AFA40070 */ sw $a0, 0x70($sp) +/* 0BB4D0 7F0869A0 AFA50074 */ sw $a1, 0x74($sp) +/* 0BB4D4 7F0869A4 AFA60078 */ sw $a2, 0x78($sp) +/* 0BB4D8 7F0869A8 AFA7007C */ sw $a3, 0x7c($sp) +/* 0BB4DC 7F0869AC 25EF6800 */ addiu $t7, %lo(D_80036800) # addiu $t7, $t7, 0x6800 +/* 0BB4E0 7F0869B0 8DE10000 */ lw $at, ($t7) +/* 0BB4E4 7F0869B4 27AE0064 */ addiu $t6, $sp, 0x64 +/* 0BB4E8 7F0869B8 8DE80004 */ lw $t0, 4($t7) +/* 0BB4EC 7F0869BC ADC10000 */ sw $at, ($t6) +/* 0BB4F0 7F0869C0 8DE10008 */ lw $at, 8($t7) +/* 0BB4F4 7F0869C4 3C0A8003 */ lui $t2, %hi(D_8003680C) +/* 0BB4F8 7F0869C8 254A680C */ addiu $t2, %lo(D_8003680C) # addiu $t2, $t2, 0x680c +/* 0BB4FC 7F0869CC ADC80004 */ sw $t0, 4($t6) +/* 0BB500 7F0869D0 ADC10008 */ sw $at, 8($t6) +/* 0BB504 7F0869D4 8D410000 */ lw $at, ($t2) +/* 0BB508 7F0869D8 27A90058 */ addiu $t1, $sp, 0x58 +/* 0BB50C 7F0869DC 8D4D0004 */ lw $t5, 4($t2) +/* 0BB510 7F0869E0 AD210000 */ sw $at, ($t1) +/* 0BB514 7F0869E4 8D410008 */ lw $at, 8($t2) +/* 0BB518 7F0869E8 3C188003 */ lui $t8, %hi(D_80036818) +/* 0BB51C 7F0869EC 27186818 */ addiu $t8, %lo(D_80036818) # addiu $t8, $t8, 0x6818 +/* 0BB520 7F0869F0 AD2D0004 */ sw $t5, 4($t1) +/* 0BB524 7F0869F4 AD210008 */ sw $at, 8($t1) +/* 0BB528 7F0869F8 8F010000 */ lw $at, ($t8) +/* 0BB52C 7F0869FC 27B9004C */ addiu $t9, $sp, 0x4c +/* 0BB530 7F086A00 8F080004 */ lw $t0, 4($t8) +/* 0BB534 7F086A04 AF210000 */ sw $at, ($t9) +/* 0BB538 7F086A08 8F010008 */ lw $at, 8($t8) +/* 0BB53C 7F086A0C 3C0B8003 */ lui $t3, %hi(D_80036824) +/* 0BB540 7F086A10 256B6824 */ addiu $t3, %lo(D_80036824) # addiu $t3, $t3, 0x6824 +/* 0BB544 7F086A14 AF280004 */ sw $t0, 4($t9) +/* 0BB548 7F086A18 AF210008 */ sw $at, 8($t9) +/* 0BB54C 7F086A1C 8D610000 */ lw $at, ($t3) +/* 0BB550 7F086A20 27AC0040 */ addiu $t4, $sp, 0x40 +/* 0BB554 7F086A24 8D6D0004 */ lw $t5, 4($t3) +/* 0BB558 7F086A28 AD810000 */ sw $at, ($t4) +/* 0BB55C 7F086A2C 8D610008 */ lw $at, 8($t3) +/* 0BB560 7F086A30 AD8D0004 */ sw $t5, 4($t4) +/* 0BB564 7F086A34 0FC20FF2 */ jal sub_GAME_7F083FC8 +/* 0BB568 7F086A38 AD810008 */ sw $at, 8($t4) +/* 0BB56C 7F086A3C 0FC210D8 */ jal sub_GAME_7F084360 +/* 0BB570 7F086A40 00000000 */ nop +/* 0BB574 7F086A44 00002025 */ move $a0, $zero +/* 0BB578 7F086A48 00002825 */ move $a1, $zero +/* 0BB57C 7F086A4C 00003025 */ move $a2, $zero +/* 0BB580 7F086A50 0FC2065D */ jal controller_gameplay_interaction +/* 0BB584 7F086A54 00003825 */ move $a3, $zero +/* 0BB588 7F086A58 0FC205E4 */ jal sub_GAME_7F081790 +/* 0BB58C 7F086A5C 00000000 */ nop +/* 0BB590 7F086A60 44806000 */ mtc1 $zero, $f12 +/* 0BB594 7F086A64 00000000 */ nop +/* 0BB598 7F086A68 44066000 */ mfc1 $a2, $f12 +/* 0BB59C 7F086A6C 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BB5A0 7F086A70 46006386 */ mov.s $f14, $f12 +/* 0BB5A4 7F086A74 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 0BB5A8 7F086A78 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 0BB5AC 7F086A7C 44806000 */ mtc1 $zero, $f12 +/* 0BB5B0 7F086A80 C4420000 */ lwc1 $f2, ($v0) +/* 0BB5B4 7F086A84 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BB5B8 7F086A88 46026032 */ c.eq.s $f12, $f2 +/* 0BB5BC 7F086A8C 00000000 */ nop +/* 0BB5C0 7F086A90 45000006 */ bc1f .L7F086AAC +/* 0BB5C4 7F086A94 00000000 */ nop +/* 0BB5C8 7F086A98 C4440008 */ lwc1 $f4, 8($v0) +/* 0BB5CC 7F086A9C 46046032 */ c.eq.s $f12, $f4 +/* 0BB5D0 7F086AA0 00000000 */ nop +/* 0BB5D4 7F086AA4 4501000B */ bc1t .L7F086AD4 +/* 0BB5D8 7F086AA8 00000000 */ nop +.L7F086AAC: +/* 0BB5DC 7F086AAC C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0BB5E0 7F086AB0 C4520008 */ lwc1 $f18, 8($v0) +/* 0BB5E4 7F086AB4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0BB5E8 7F086AB8 46001202 */ mul.s $f8, $f2, $f0 +/* 0BB5EC 7F086ABC C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0BB5F0 7F086AC0 46009102 */ mul.s $f4, $f18, $f0 +/* 0BB5F4 7F086AC4 46083280 */ add.s $f10, $f6, $f8 +/* 0BB5F8 7F086AC8 46048180 */ add.s $f6, $f16, $f4 +/* 0BB5FC 7F086ACC E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0BB600 7F086AD0 E7A60048 */ swc1 $f6, 0x48($sp) +.L7F086AD4: +/* 0BB604 7F086AD4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BB608 7F086AD8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BB60C 7F086ADC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BB610 7F086AE0 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0BB614 7F086AE4 C4480504 */ lwc1 $f8, 0x504($v0) +/* 0BB618 7F086AE8 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BB61C 7F086AEC C45004FC */ lwc1 $f16, 0x4fc($v0) +/* 0BB620 7F086AF0 C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BB624 7F086AF4 460A4482 */ mul.s $f18, $f8, $f10 +/* 0BB628 7F086AF8 27A40040 */ addiu $a0, $sp, 0x40 +/* 0BB62C 7F086AFC 24050001 */ li $a1, 1 +/* 0BB630 7F086B00 46048182 */ mul.s $f6, $f16, $f4 +/* 0BB634 7F086B04 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0BB638 7F086B08 46069201 */ sub.s $f8, $f18, $f6 +/* 0BB63C 7F086B0C 46004282 */ mul.s $f10, $f8, $f0 +/* 0BB640 7F086B10 460A8100 */ add.s $f4, $f16, $f10 +/* 0BB644 7F086B14 E7A40040 */ swc1 $f4, 0x40($sp) +/* 0BB648 7F086B18 C44604A0 */ lwc1 $f6, 0x4a0($v0) +/* 0BB64C 7F086B1C C4520504 */ lwc1 $f18, 0x504($v0) +/* 0BB650 7F086B20 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BB654 7F086B24 C45004FC */ lwc1 $f16, 0x4fc($v0) +/* 0BB658 7F086B28 46069202 */ mul.s $f8, $f18, $f6 +/* 0BB65C 7F086B2C 00000000 */ nop +/* 0BB660 7F086B30 460A8102 */ mul.s $f4, $f16, $f10 +/* 0BB664 7F086B34 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0BB668 7F086B38 46044480 */ add.s $f18, $f8, $f4 +/* 0BB66C 7F086B3C 46009182 */ mul.s $f6, $f18, $f0 +/* 0BB670 7F086B40 46068280 */ add.s $f10, $f16, $f6 +/* 0BB674 7F086B44 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BB678 7F086B48 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0BB67C 7F086B4C 44806000 */ mtc1 $zero, $f12 +/* 0BB680 7F086B50 00002025 */ move $a0, $zero +/* 0BB684 7F086B54 44056000 */ mfc1 $a1, $f12 +/* 0BB688 7F086B58 0FC2037E */ jal sub_GAME_7F080DF8 +/* 0BB68C 7F086B5C 00000000 */ nop +/* 0BB690 7F086B60 0FC2051E */ jal sub_GAME_7F081478 +/* 0BB694 7F086B64 00000000 */ nop +/* 0BB698 7F086B68 3C028003 */ lui $v0, %hi(cameramode) +/* 0BB69C 7F086B6C 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0BB6A0 7F086B70 24010008 */ li $at, 8 +/* 0BB6A4 7F086B74 10410005 */ beq $v0, $at, .L7F086B8C +/* 0BB6A8 7F086B78 24010004 */ li $at, 4 +/* 0BB6AC 7F086B7C 10410003 */ beq $v0, $at, .L7F086B8C +/* 0BB6B0 7F086B80 2401000A */ li $at, 10 +/* 0BB6B4 7F086B84 14410005 */ bne $v0, $at, .L7F086B9C +/* 0BB6B8 7F086B88 97A4007A */ lhu $a0, 0x7a($sp) +.L7F086B8C: +/* 0BB6BC 7F086B8C 0FC1E694 */ jal setptrBONDdata +/* 0BB6C0 7F086B90 00002025 */ move $a0, $zero +/* 0BB6C4 7F086B94 10000015 */ b .L7F086BEC +/* 0BB6C8 7F086B98 8FBF0024 */ lw $ra, 0x24($sp) +.L7F086B9C: +/* 0BB6CC 7F086B9C 27AF004C */ addiu $t7, $sp, 0x4c +/* 0BB6D0 7F086BA0 27AE003C */ addiu $t6, $sp, 0x3c +/* 0BB6D4 7F086BA4 27B90030 */ addiu $t9, $sp, 0x30 +/* 0BB6D8 7F086BA8 AFB90018 */ sw $t9, 0x18($sp) +/* 0BB6DC 7F086BAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0BB6E0 7F086BB0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BB6E4 7F086BB4 97A5007E */ lhu $a1, 0x7e($sp) +/* 0BB6E8 7F086BB8 27A60064 */ addiu $a2, $sp, 0x64 +/* 0BB6EC 7F086BBC 0FC1ED5B */ jal sub_GAME_7F07B56C +/* 0BB6F0 7F086BC0 27A70058 */ addiu $a3, $sp, 0x58 +/* 0BB6F4 7F086BC4 0FC1E694 */ jal setptrBONDdata +/* 0BB6F8 7F086BC8 24040001 */ li $a0, 1 +/* 0BB6FC 7F086BCC 27B80030 */ addiu $t8, $sp, 0x30 +/* 0BB700 7F086BD0 AFB80010 */ sw $t8, 0x10($sp) +/* 0BB704 7F086BD4 27A40064 */ addiu $a0, $sp, 0x64 +/* 0BB708 7F086BD8 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BB70C 7F086BDC 27A6004C */ addiu $a2, $sp, 0x4c +/* 0BB710 7F086BE0 0FC1E698 */ jal sub_GAME_7F079A60 +/* 0BB714 7F086BE4 8FA7003C */ lw $a3, 0x3c($sp) +/* 0BB718 7F086BE8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F086BEC: +/* 0BB71C 7F086BEC 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0BB720 7F086BF0 03E00008 */ jr $ra +/* 0BB724 7F086BF4 00000000 */ nop +) +#endif + + + + + +int getWidth320or440(void) { + if (camera_8003642C != 0) + { + return 440; + } + return 320; +} + +int getHeight330or240(void) { + if (camera_8003642C != 0) + { + return 330; + } + return 240; +} + +s32 get_curplayer_viewport_width(void) +{ + if (get_num_players() >= 3) + { + return 159; + } + if (camera_8003642C != 0) + { + return 440; + } + if (cur_player_get_screen_setting() == 1) + { + return 320; + } + if (cur_player_get_screen_setting() == 2) + { + return 320; + } + return 320; +} + +s32 get_curplayer_viewport_ulx(void) +{ + + if (2 < get_num_players()) { + if ((get_cur_playernum() == 1) || (get_cur_playernum() == 3)) { + return 0xa1; + } + } + return 0; +} + + + + +#ifdef NONMATCHING +s32 get_curplayer_viewport_height(void) +{ + if (get_num_players() >= 2) + { + return 0x6d; + } + if (camera_8003642C != 0) + { + if (cur_player_get_screen_setting() == 1) + { + return 0xf8; + } + if (cur_player_get_screen_setting() != 2) + { + return 0x130; + } + return 0xbe; + } + if (cur_player_get_screen_setting() == 1) + { + return (s32) (((s32) (40.0f * sub_GAME_7F07EA78()) + 0xb4) << 0x10) >> 0x10; + } + if (cur_player_get_screen_setting() == 2) + { + return (s32) (((s32) (84.0f * sub_GAME_7F07EA78()) + 0x88) << 0x10) >> 0x10; + } + return 0xdc; +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_viewport_height +/* 0BB854 7F086D24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BB858 7F086D28 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BB85C 7F086D2C 0FC26919 */ jal get_num_players +/* 0BB860 7F086D30 00000000 */ nop +/* 0BB864 7F086D34 28410002 */ slti $at, $v0, 2 +/* 0BB868 7F086D38 14200003 */ bnez $at, .L7F086D48 +/* 0BB86C 7F086D3C 3C0E8003 */ lui $t6, %hi(camera_8003642C) +/* 0BB870 7F086D40 10000039 */ b .L7F086E28 +/* 0BB874 7F086D44 2402006D */ li $v0, 109 +.L7F086D48: +/* 0BB878 7F086D48 8DCE642C */ lw $t6, %lo(camera_8003642C)($t6) +/* 0BB87C 7F086D4C 11C00011 */ beqz $t6, .L7F086D94 +/* 0BB880 7F086D50 00000000 */ nop +/* 0BB884 7F086D54 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB888 7F086D58 00000000 */ nop +/* 0BB88C 7F086D5C 24010001 */ li $at, 1 +/* 0BB890 7F086D60 14410003 */ bne $v0, $at, .L7F086D70 +/* 0BB894 7F086D64 00000000 */ nop +/* 0BB898 7F086D68 1000002F */ b .L7F086E28 +/* 0BB89C 7F086D6C 240200F8 */ li $v0, 248 +.L7F086D70: +/* 0BB8A0 7F086D70 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB8A4 7F086D74 00000000 */ nop +/* 0BB8A8 7F086D78 24010002 */ li $at, 2 +/* 0BB8AC 7F086D7C 14410003 */ bne $v0, $at, .L7F086D8C +/* 0BB8B0 7F086D80 00000000 */ nop +/* 0BB8B4 7F086D84 10000028 */ b .L7F086E28 +/* 0BB8B8 7F086D88 240200BE */ li $v0, 190 +.L7F086D8C: +/* 0BB8BC 7F086D8C 10000026 */ b .L7F086E28 +/* 0BB8C0 7F086D90 24020130 */ li $v0, 304 +.L7F086D94: +/* 0BB8C4 7F086D94 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB8C8 7F086D98 00000000 */ nop +/* 0BB8CC 7F086D9C 24010001 */ li $at, 1 +/* 0BB8D0 7F086DA0 1441000E */ bne $v0, $at, .L7F086DDC +/* 0BB8D4 7F086DA4 00000000 */ nop +/* 0BB8D8 7F086DA8 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BB8DC 7F086DAC 00000000 */ nop +/* 0BB8E0 7F086DB0 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0BB8E4 7F086DB4 44812000 */ mtc1 $at, $f4 +/* 0BB8E8 7F086DB8 00000000 */ nop +/* 0BB8EC 7F086DBC 46002182 */ mul.s $f6, $f4, $f0 +/* 0BB8F0 7F086DC0 4600320D */ trunc.w.s $f8, $f6 +/* 0BB8F4 7F086DC4 44024000 */ mfc1 $v0, $f8 +/* 0BB8F8 7F086DC8 00000000 */ nop +/* 0BB8FC 7F086DCC 244200B4 */ addiu $v0, $v0, 0xb4 +/* 0BB900 7F086DD0 0002C400 */ sll $t8, $v0, 0x10 +/* 0BB904 7F086DD4 10000014 */ b .L7F086E28 +/* 0BB908 7F086DD8 00181403 */ sra $v0, $t8, 0x10 +.L7F086DDC: +/* 0BB90C 7F086DDC 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB910 7F086DE0 00000000 */ nop +/* 0BB914 7F086DE4 24010002 */ li $at, 2 +/* 0BB918 7F086DE8 5441000F */ bnel $v0, $at, .L7F086E28 +/* 0BB91C 7F086DEC 240200DC */ li $v0, 220 +/* 0BB920 7F086DF0 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BB924 7F086DF4 00000000 */ nop +/* 0BB928 7F086DF8 3C0142A8 */ li $at, 0x42A80000 # 84.000000 +/* 0BB92C 7F086DFC 44815000 */ mtc1 $at, $f10 +/* 0BB930 7F086E00 00000000 */ nop +/* 0BB934 7F086E04 46005402 */ mul.s $f16, $f10, $f0 +/* 0BB938 7F086E08 4600848D */ trunc.w.s $f18, $f16 +/* 0BB93C 7F086E0C 44029000 */ mfc1 $v0, $f18 +/* 0BB940 7F086E10 00000000 */ nop +/* 0BB944 7F086E14 24420088 */ addiu $v0, $v0, 0x88 +/* 0BB948 7F086E18 00024C00 */ sll $t1, $v0, 0x10 +/* 0BB94C 7F086E1C 10000002 */ b .L7F086E28 +/* 0BB950 7F086E20 00091403 */ sra $v0, $t1, 0x10 +/* 0BB954 7F086E24 240200DC */ li $v0, 220 +.L7F086E28: +/* 0BB958 7F086E28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BB95C 7F086E2C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BB960 7F086E30 03E00008 */ jr $ra +/* 0BB964 7F086E34 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_viewport_uly(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_viewport_uly +/* 0BB968 7F086E38 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BB96C 7F086E3C AFBF0014 */ sw $ra, 0x14($sp) +/* 0BB970 7F086E40 0FC26919 */ jal get_num_players +/* 0BB974 7F086E44 00000000 */ nop +/* 0BB978 7F086E48 24010002 */ li $at, 2 +/* 0BB97C 7F086E4C 14410009 */ bne $v0, $at, .L7F086E74 +/* 0BB980 7F086E50 00000000 */ nop +/* 0BB984 7F086E54 0FC26C54 */ jal get_cur_playernum +/* 0BB988 7F086E58 00000000 */ nop +/* 0BB98C 7F086E5C 14400003 */ bnez $v0, .L7F086E6C +/* 0BB990 7F086E60 00000000 */ nop +/* 0BB994 7F086E64 10000049 */ b .L7F086F8C +/* 0BB998 7F086E68 2402000A */ li $v0, 10 +.L7F086E6C: +/* 0BB99C 7F086E6C 10000047 */ b .L7F086F8C +/* 0BB9A0 7F086E70 24020079 */ li $v0, 121 +.L7F086E74: +/* 0BB9A4 7F086E74 0FC26919 */ jal get_num_players +/* 0BB9A8 7F086E78 00000000 */ nop +/* 0BB9AC 7F086E7C 28410003 */ slti $at, $v0, 3 +/* 0BB9B0 7F086E80 1420000A */ bnez $at, .L7F086EAC +/* 0BB9B4 7F086E84 3C0E8003 */ lui $t6, %hi(camera_8003642C) +/* 0BB9B8 7F086E88 0FC26C54 */ jal get_cur_playernum +/* 0BB9BC 7F086E8C 00000000 */ nop +/* 0BB9C0 7F086E90 28410002 */ slti $at, $v0, 2 +/* 0BB9C4 7F086E94 10200003 */ beqz $at, .L7F086EA4 +/* 0BB9C8 7F086E98 00000000 */ nop +/* 0BB9CC 7F086E9C 1000003B */ b .L7F086F8C +/* 0BB9D0 7F086EA0 2402000A */ li $v0, 10 +.L7F086EA4: +/* 0BB9D4 7F086EA4 10000039 */ b .L7F086F8C +/* 0BB9D8 7F086EA8 24020079 */ li $v0, 121 +.L7F086EAC: +/* 0BB9DC 7F086EAC 8DCE642C */ lw $t6, %lo(camera_8003642C)($t6) +/* 0BB9E0 7F086EB0 11C00011 */ beqz $t6, .L7F086EF8 +/* 0BB9E4 7F086EB4 00000000 */ nop +/* 0BB9E8 7F086EB8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB9EC 7F086EBC 00000000 */ nop +/* 0BB9F0 7F086EC0 24010001 */ li $at, 1 +/* 0BB9F4 7F086EC4 14410003 */ bne $v0, $at, .L7F086ED4 +/* 0BB9F8 7F086EC8 00000000 */ nop +/* 0BB9FC 7F086ECC 1000002F */ b .L7F086F8C +/* 0BBA00 7F086ED0 24020029 */ li $v0, 41 +.L7F086ED4: +/* 0BBA04 7F086ED4 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA08 7F086ED8 00000000 */ nop +/* 0BBA0C 7F086EDC 24010002 */ li $at, 2 +/* 0BBA10 7F086EE0 14410003 */ bne $v0, $at, .L7F086EF0 +/* 0BBA14 7F086EE4 00000000 */ nop +/* 0BBA18 7F086EE8 10000028 */ b .L7F086F8C +/* 0BBA1C 7F086EEC 24020046 */ li $v0, 70 +.L7F086EF0: +/* 0BBA20 7F086EF0 10000026 */ b .L7F086F8C +/* 0BBA24 7F086EF4 2402000D */ li $v0, 13 +.L7F086EF8: +/* 0BBA28 7F086EF8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA2C 7F086EFC 00000000 */ nop +/* 0BBA30 7F086F00 24010001 */ li $at, 1 +/* 0BBA34 7F086F04 1441000E */ bne $v0, $at, .L7F086F40 +/* 0BBA38 7F086F08 00000000 */ nop +/* 0BBA3C 7F086F0C 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BBA40 7F086F10 00000000 */ nop +/* 0BBA44 7F086F14 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0BBA48 7F086F18 44812000 */ mtc1 $at, $f4 +/* 0BBA4C 7F086F1C 00000000 */ nop +/* 0BBA50 7F086F20 46002182 */ mul.s $f6, $f4, $f0 +/* 0BBA54 7F086F24 4600320D */ trunc.w.s $f8, $f6 +/* 0BBA58 7F086F28 44024000 */ mfc1 $v0, $f8 +/* 0BBA5C 7F086F2C 00000000 */ nop +/* 0BBA60 7F086F30 2442001E */ addiu $v0, $v0, 0x1e +/* 0BBA64 7F086F34 0002C400 */ sll $t8, $v0, 0x10 +/* 0BBA68 7F086F38 10000014 */ b .L7F086F8C +/* 0BBA6C 7F086F3C 00181403 */ sra $v0, $t8, 0x10 +.L7F086F40: +/* 0BBA70 7F086F40 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA74 7F086F44 00000000 */ nop +/* 0BBA78 7F086F48 24010002 */ li $at, 2 +/* 0BBA7C 7F086F4C 5441000F */ bnel $v0, $at, .L7F086F8C +/* 0BBA80 7F086F50 2402000A */ li $v0, 10 +/* 0BBA84 7F086F54 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BBA88 7F086F58 00000000 */ nop +/* 0BBA8C 7F086F5C 3C01C228 */ li $at, 0xC2280000 # -42.000000 +/* 0BBA90 7F086F60 44815000 */ mtc1 $at, $f10 +/* 0BBA94 7F086F64 00000000 */ nop +/* 0BBA98 7F086F68 46005402 */ mul.s $f16, $f10, $f0 +/* 0BBA9C 7F086F6C 4600848D */ trunc.w.s $f18, $f16 +/* 0BBAA0 7F086F70 44029000 */ mfc1 $v0, $f18 +/* 0BBAA4 7F086F74 00000000 */ nop +/* 0BBAA8 7F086F78 24420034 */ addiu $v0, $v0, 0x34 +/* 0BBAAC 7F086F7C 00024C00 */ sll $t1, $v0, 0x10 +/* 0BBAB0 7F086F80 10000002 */ b .L7F086F8C +/* 0BBAB4 7F086F84 00091403 */ sra $v0, $t1, 0x10 +/* 0BBAB8 7F086F88 2402000A */ li $v0, 10 +.L7F086F8C: +/* 0BBABC 7F086F8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BBAC0 7F086F90 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BBAC4 7F086F94 03E00008 */ jr $ra +/* 0BBAC8 7F086F98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void possibly_reset_viewport_options_for_player(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80055264 +.word 0x3fe38e39 /*1.7777778*/ +glabel D_80055268 +.word 0x3fe38e39 /*1.7777778*/ +.text +glabel possibly_reset_viewport_options_for_player +/* 0BBACC 7F086F9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BBAD0 7F086FA0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAD4 7F086FA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BBAD8 7F086FA8 44816000 */ mtc1 $at, $f12 +/* 0BBADC 7F086FAC AFA40020 */ sw $a0, 0x20($sp) +/* 0BBAE0 7F086FB0 AFA50024 */ sw $a1, 0x24($sp) +/* 0BBAE4 7F086FB4 0FC26C85 */ jal set_cur_player_fovy +/* 0BBAE8 7F086FB8 AFA60028 */ sw $a2, 0x28($sp) +/* 0BBAEC 7F086FBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAF0 7F086FC0 44816000 */ mtc1 $at, $f12 +/* 0BBAF4 7F086FC4 0C001151 */ jal setvideo_far +/* 0BBAF8 7F086FC8 00000000 */ nop +/* 0BBAFC 7F086FCC 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB00 7F086FD0 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB04 7F086FD4 8C620000 */ lw $v0, ($v1) +/* 0BBB08 7F086FD8 10400016 */ beqz $v0, .L7F087034 +/* 0BBB0C 7F086FDC 28410004 */ slti $at, $v0, 4 +/* 0BBB10 7F086FE0 14200010 */ bnez $at, .L7F087024 +/* 0BBB14 7F086FE4 3C0E8003 */ lui $t6, %hi(resolution) +/* 0BBB18 7F086FE8 8DCE6428 */ lw $t6, %lo(resolution)($t6) +/* 0BBB1C 7F086FEC 51C0000E */ beql $t6, $zero, .L7F087028 +/* 0BBB20 7F086FF0 8C790000 */ lw $t9, ($v1) +/* 0BBB24 7F086FF4 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB28 7F086FF8 00000000 */ nop +/* 0BBB2C 7F086FFC 3C0F803E */ lui $t7, %hi(cfb_16_b) # $t7, 0x803e +/* 0BBB30 7F087000 25EFA800 */ addiu $t7, %lo(cfb_16_b) # addiu $t7, $t7, -0x5800 +/* 0BBB34 7F087004 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB38 7F087008 144F0006 */ bne $v0, $t7, .L7F087024 +/* 0BBB3C 7F08700C 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB40 7F087010 24180001 */ li $t8, 1 +/* 0BBB44 7F087014 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBB48 7F087018 AC38642C */ sw $t8, %lo(camera_8003642C)($at) +/* 0BBB4C 7F08701C 1000001A */ b .L7F087088 +/* 0BBB50 7F087020 AC600000 */ sw $zero, ($v1) +.L7F087024: +/* 0BBB54 7F087024 8C790000 */ lw $t9, ($v1) +.L7F087028: +/* 0BBB58 7F087028 27280001 */ addiu $t0, $t9, 1 +/* 0BBB5C 7F08702C 10000016 */ b .L7F087088 +/* 0BBB60 7F087030 AC680000 */ sw $t0, ($v1) +.L7F087034: +/* 0BBB64 7F087034 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB68 7F087038 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB6C 7F08703C 8C620000 */ lw $v0, ($v1) +/* 0BBB70 7F087040 10400011 */ beqz $v0, .L7F087088 +/* 0BBB74 7F087044 28410004 */ slti $at, $v0, 4 +/* 0BBB78 7F087048 5420000D */ bnezl $at, .L7F087080 +/* 0BBB7C 7F08704C 8C6A0000 */ lw $t2, ($v1) +/* 0BBB80 7F087050 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB84 7F087054 00000000 */ nop +/* 0BBB88 7F087058 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 0BBB8C 7F08705C 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 0BBB90 7F087060 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB94 7F087064 14490005 */ bne $v0, $t1, .L7F08707C +/* 0BBB98 7F087068 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB9C 7F08706C 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBBA0 7F087070 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 0BBBA4 7F087074 10000004 */ b .L7F087088 +/* 0BBBA8 7F087078 AC600000 */ sw $zero, ($v1) +.L7F08707C: +/* 0BBBAC 7F08707C 8C6A0000 */ lw $t2, ($v1) +.L7F087080: +/* 0BBBB0 7F087080 254B0001 */ addiu $t3, $t2, 1 +/* 0BBBB4 7F087084 AC6B0000 */ sw $t3, ($v1) +.L7F087088: +/* 0BBBB8 7F087088 3C0C8003 */ lui $t4, %hi(camera_8003642C) +/* 0BBBBC 7F08708C 8D8C642C */ lw $t4, %lo(camera_8003642C)($t4) +/* 0BBBC0 7F087090 11800009 */ beqz $t4, .L7F0870B8 +/* 0BBBC4 7F087094 00000000 */ nop +/* 0BBBC8 7F087098 0C000F07 */ jal get_video_settings2_frameb +/* 0BBBCC 7F08709C 00000000 */ nop +/* 0BBBD0 7F0870A0 3C0D803E */ lui $t5, %hi(cfb_16_b) # $t5, 0x803e +/* 0BBBD4 7F0870A4 25ADA800 */ addiu $t5, %lo(cfb_16_b) # addiu $t5, $t5, -0x5800 +/* 0BBBD8 7F0870A8 144D0003 */ bne $v0, $t5, .L7F0870B8 +/* 0BBBDC 7F0870AC 3C048003 */ lui $a0, %hi(resolution) +/* 0BBBE0 7F0870B0 0C000F0F */ jal set_video2buf_frameb +/* 0BBBE4 7F0870B4 8C846428 */ lw $a0, %lo(resolution)($a0) +.L7F0870B8: +/* 0BBBE8 7F0870B8 0FC293B8 */ jal get_screen_ratio +/* 0BBBEC 7F0870BC 00000000 */ nop +/* 0BBBF0 7F0870C0 24010001 */ li $at, 1 +/* 0BBBF4 7F0870C4 14410029 */ bne $v0, $at, .L7F08716C +/* 0BBBF8 7F0870C8 00000000 */ nop +/* 0BBBFC 7F0870CC 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC00 7F0870D0 00000000 */ nop +/* 0BBC04 7F0870D4 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC08 7F0870D8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC0C 7F0870DC 87AE001C */ lh $t6, 0x1c($sp) +/* 0BBC10 7F0870E0 44824000 */ mtc1 $v0, $f8 +/* 0BBC14 7F0870E4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC18 7F0870E8 448E2000 */ mtc1 $t6, $f4 +/* 0BBC1C 7F0870EC 468042A0 */ cvt.s.w $f10, $f8 +/* 0BBC20 7F0870F0 44819000 */ mtc1 $at, $f18 +/* 0BBC24 7F0870F4 3C018005 */ lui $at, %hi(D_80055264) +/* 0BBC28 7F0870F8 C4285264 */ lwc1 $f8, %lo(D_80055264)($at) +/* 0BBC2C 7F0870FC 468021A0 */ cvt.s.w $f6, $f4 +/* 0BBC30 7F087100 460A3403 */ div.s $f16, $f6, $f10 +/* 0BBC34 7F087104 46128102 */ mul.s $f4, $f16, $f18 +/* 0BBC38 7F087108 00000000 */ nop +/* 0BBC3C 7F08710C 46082302 */ mul.s $f12, $f4, $f8 +/* 0BBC40 7F087110 0FC26C89 */ jal set_cur_player_aspect +/* 0BBC44 7F087114 00000000 */ nop +/* 0BBC48 7F087118 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC4C 7F08711C 00000000 */ nop +/* 0BBC50 7F087120 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC54 7F087124 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC58 7F087128 87AF001C */ lh $t7, 0x1c($sp) +/* 0BBC5C 7F08712C 44828000 */ mtc1 $v0, $f16 +/* 0BBC60 7F087130 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC64 7F087134 448F3000 */ mtc1 $t7, $f6 +/* 0BBC68 7F087138 468084A0 */ cvt.s.w $f18, $f16 +/* 0BBC6C 7F08713C 44814000 */ mtc1 $at, $f8 +/* 0BBC70 7F087140 3C018005 */ lui $at, %hi(D_80055268) +/* 0BBC74 7F087144 C4305268 */ lwc1 $f16, %lo(D_80055268)($at) +/* 0BBC78 7F087148 468032A0 */ cvt.s.w $f10, $f6 +/* 0BBC7C 7F08714C 46125103 */ div.s $f4, $f10, $f18 +/* 0BBC80 7F087150 46082182 */ mul.s $f6, $f4, $f8 +/* 0BBC84 7F087154 00000000 */ nop +/* 0BBC88 7F087158 46103302 */ mul.s $f12, $f6, $f16 +/* 0BBC8C 7F08715C 0C001164 */ jal video_related_21 +/* 0BBC90 7F087160 00000000 */ nop +/* 0BBC94 7F087164 10000017 */ b .L7F0871C4 +/* 0BBC98 7F087168 00000000 */ nop +.L7F08716C: +/* 0BBC9C 7F08716C 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCA0 7F087170 00000000 */ nop +/* 0BBCA4 7F087174 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCA8 7F087178 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCAC 7F08717C 87B8001C */ lh $t8, 0x1c($sp) +/* 0BBCB0 7F087180 44822000 */ mtc1 $v0, $f4 +/* 0BBCB4 7F087184 44985000 */ mtc1 $t8, $f10 +/* 0BBCB8 7F087188 46802220 */ cvt.s.w $f8, $f4 +/* 0BBCBC 7F08718C 468054A0 */ cvt.s.w $f18, $f10 +/* 0BBCC0 7F087190 0FC26C89 */ jal set_cur_player_aspect +/* 0BBCC4 7F087194 46089303 */ div.s $f12, $f18, $f8 +/* 0BBCC8 7F087198 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCCC 7F08719C 00000000 */ nop +/* 0BBCD0 7F0871A0 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCD4 7F0871A4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCD8 7F0871A8 87B9001C */ lh $t9, 0x1c($sp) +/* 0BBCDC 7F0871AC 44825000 */ mtc1 $v0, $f10 +/* 0BBCE0 7F0871B0 44993000 */ mtc1 $t9, $f6 +/* 0BBCE4 7F0871B4 46805120 */ cvt.s.w $f4, $f10 +/* 0BBCE8 7F0871B8 46803420 */ cvt.s.w $f16, $f6 +/* 0BBCEC 7F0871BC 0C001164 */ jal video_related_21 +/* 0BBCF0 7F0871C0 46048303 */ div.s $f12, $f16, $f4 +.L7F0871C4: +/* 0BBCF4 7F0871C4 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCF8 7F0871C8 00000000 */ nop +/* 0BBCFC 7F0871CC 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD00 7F0871D0 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD04 7F0871D4 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD08 7F0871D8 0FC26C77 */ jal set_cur_player_screen_size +/* 0BBD0C 7F0871DC 00402825 */ move $a1, $v0 +/* 0BBD10 7F0871E0 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD14 7F0871E4 00000000 */ nop +/* 0BBD18 7F0871E8 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBD1C 7F0871EC A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD20 7F0871F0 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD24 7F0871F4 0FC26C7E */ jal set_cur_player_viewport_size +/* 0BBD28 7F0871F8 00402825 */ move $a1, $v0 +/* 0BBD2C 7F0871FC 0FC21AFE */ jal getWidth320or440 +/* 0BBD30 7F087200 00000000 */ nop +/* 0BBD34 7F087204 0FC21B07 */ jal getHeight330or240 +/* 0BBD38 7F087208 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD3C 7F08720C 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD40 7F087210 00054403 */ sra $t0, $a1, 0x10 +/* 0BBD44 7F087214 01002825 */ move $a1, $t0 +/* 0BBD48 7F087218 0C0010FE */ jal set_video2_text_clip_size +/* 0BBD4C 7F08721C 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD50 7F087220 0FC21AFE */ jal getWidth320or440 +/* 0BBD54 7F087224 00000000 */ nop +/* 0BBD58 7F087228 0FC21B07 */ jal getHeight330or240 +/* 0BBD5C 7F08722C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD60 7F087230 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD64 7F087234 00054C03 */ sra $t1, $a1, 0x10 +/* 0BBD68 7F087238 01202825 */ move $a1, $t1 +/* 0BBD6C 7F08723C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BBD70 7F087240 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD74 7F087244 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBD78 7F087248 00000000 */ nop +/* 0BBD7C 7F08724C 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD80 7F087250 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD84 7F087254 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD88 7F087258 00055403 */ sra $t2, $a1, 0x10 +/* 0BBD8C 7F08725C 01402825 */ move $a1, $t2 +/* 0BBD90 7F087260 0C00110F */ jal set_video2_width_height +/* 0BBD94 7F087264 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD98 7F087268 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD9C 7F08726C 00000000 */ nop +/* 0BBDA0 7F087270 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBDA4 7F087274 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBDA8 7F087278 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBDAC 7F08727C 00055C03 */ sra $t3, $a1, 0x10 +/* 0BBDB0 7F087280 01602825 */ move $a1, $t3 +/* 0BBDB4 7F087284 0C00112F */ jal set_video2_ulx_uly +/* 0BBDB8 7F087288 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBDBC 7F08728C 0FC2022F */ jal sub_GAME_7F0808BC +/* 0BBDC0 7F087290 00000000 */ nop +/* 0BBDC4 7F087294 0FC202A0 */ jal update_curplayer_fade +/* 0BBDC8 7F087298 00000000 */ nop +/* 0BBDCC 7F08729C 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDD0 7F0872A0 00000000 */ nop +/* 0BBDD4 7F0872A4 0FC1F15C */ jal set_BONDdata_autoaim_y +/* 0BBDD8 7F0872A8 00402025 */ move $a0, $v0 +/* 0BBDDC 7F0872AC 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDE0 7F0872B0 00000000 */ nop +/* 0BBDE4 7F0872B4 0FC1F196 */ jal set_BONDdata_autoaim_x +/* 0BBDE8 7F0872B8 00402025 */ move $a0, $v0 +/* 0BBDEC 7F0872BC 0FC2939A */ jal cur_player_get_lookahead +/* 0BBDF0 7F0872C0 00000000 */ nop +/* 0BBDF4 7F0872C4 0FC1F154 */ jal set_BONDdata_lookahead_setting +/* 0BBDF8 7F0872C8 00402025 */ move $a0, $v0 +/* 0BBDFC 7F0872CC 0FC293AC */ jal cur_player_get_ammo_onscreen_setting +/* 0BBE00 7F0872D0 00000000 */ nop +/* 0BBE04 7F0872D4 24040001 */ li $a0, 1 +/* 0BBE08 7F0872D8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0BBE0C 7F0872DC 00402825 */ move $a1, $v0 +/* 0BBE10 7F0872E0 0FC26919 */ jal get_num_players +/* 0BBE14 7F0872E4 00000000 */ nop +/* 0BBE18 7F0872E8 24010001 */ li $at, 1 +/* 0BBE1C 7F0872EC 14410006 */ bne $v0, $at, .L7F087308 +/* 0BBE20 7F0872F0 00000000 */ nop +/* 0BBE24 7F0872F4 0FC293A6 */ jal cur_player_get_sight_onscreen_control +/* 0BBE28 7F0872F8 00000000 */ nop +/* 0BBE2C 7F0872FC 0002282B */ sltu $a1, $zero, $v0 +/* 0BBE30 7F087300 14A0000B */ bnez $a1, .L7F087330 +/* 0BBE34 7F087304 00000000 */ nop +.L7F087308: +/* 0BBE38 7F087308 0FC26919 */ jal get_num_players +/* 0BBE3C 7F08730C 00000000 */ nop +/* 0BBE40 7F087310 28430002 */ slti $v1, $v0, 2 +/* 0BBE44 7F087314 38650001 */ xori $a1, $v1, 1 +/* 0BBE48 7F087318 10A00005 */ beqz $a1, .L7F087330 +/* 0BBE4C 7F08731C 3C0C8008 */ lui $t4, %hi(pPlayersPerm) +/* 0BBE50 7F087320 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0BBE54 7F087324 9185006B */ lbu $a1, 0x6b($t4) +/* 0BBE58 7F087328 0005682B */ sltu $t5, $zero, $a1 +/* 0BBE5C 7F08732C 01A02825 */ move $a1, $t5 +.L7F087330: +/* 0BBE60 7F087330 0FC1A96A */ jal set_unset_bitflags +/* 0BBE64 7F087334 24040001 */ li $a0, 1 +/* 0BBE68 7F087338 3C028003 */ lui $v0, %hi(cameramode) +/* 0BBE6C 7F08733C 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0BBE70 7F087340 24010004 */ li $at, 4 +/* 0BBE74 7F087344 10400008 */ beqz $v0, .L7F087368 +/* 0BBE78 7F087348 00000000 */ nop +/* 0BBE7C 7F08734C 14410003 */ bne $v0, $at, .L7F08735C +/* 0BBE80 7F087350 3C0E8003 */ lui $t6, %hi(D_800364B0) +/* 0BBE84 7F087354 8DCE64B0 */ lw $t6, %lo(D_800364B0)($t6) +/* 0BBE88 7F087358 15C00003 */ bnez $t6, .L7F087368 +.L7F08735C: +/* 0BBE8C 7F08735C 2401000A */ li $at, 10 +/* 0BBE90 7F087360 14410014 */ bne $v0, $at, .L7F0873B4 +/* 0BBE94 7F087364 83A40023 */ lb $a0, 0x23($sp) +.L7F087368: +/* 0BBE98 7F087368 0FC26C54 */ jal get_cur_playernum +/* 0BBE9C 7F08736C 00000000 */ nop +/* 0BBEA0 7F087370 14400008 */ bnez $v0, .L7F087394 +/* 0BBEA4 7F087374 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BBEA8 7F087378 3C028008 */ lui $v0, %hi(mission_timer) +/* 0BBEAC 7F08737C 24429A20 */ addiu $v0, %lo(mission_timer) # addiu $v0, $v0, -0x65e0 +/* 0BBEB0 7F087380 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BBEB4 7F087384 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BBEB8 7F087388 8C4F0000 */ lw $t7, ($v0) +/* 0BBEBC 7F08738C 01F8C821 */ addu $t9, $t7, $t8 +/* 0BBEC0 7F087390 AC590000 */ sw $t9, ($v0) +.L7F087394: +/* 0BBEC4 7F087394 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BBEC8 7F087398 83A40023 */ lb $a0, 0x23($sp) +/* 0BBECC 7F08739C 83A50027 */ lb $a1, 0x27($sp) +/* 0BBED0 7F0873A0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBED4 7F0873A4 0FC21192 */ jal MoveBond +/* 0BBED8 7F0873A8 950703B4 */ lhu $a3, 0x3b4($t0) +/* 0BBEDC 7F0873AC 10000007 */ b .L7F0873CC +/* 0BBEE0 7F0873B0 00000000 */ nop +.L7F0873B4: +/* 0BBEE4 7F0873B4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BBEE8 7F0873B8 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BBEEC 7F0873BC 83A50027 */ lb $a1, 0x27($sp) +/* 0BBEF0 7F0873C0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBEF4 7F0873C4 0FC21A64 */ jal sub_GAME_7F086990 +/* 0BBEF8 7F0873C8 952703B4 */ lhu $a3, 0x3b4($t1) +.L7F0873CC: +/* 0BBEFC 7F0873CC 3C028008 */ lui $v0, %hi(watch_time_0) +/* 0BBF00 7F0873D0 24429A24 */ addiu $v0, %lo(watch_time_0) # addiu $v0, $v0, -0x65dc +/* 0BBF04 7F0873D4 3C0B8005 */ lui $t3, %hi(D_80048498) +/* 0BBF08 7F0873D8 8D6B8498 */ lw $t3, %lo(D_80048498)($t3) +/* 0BBF0C 7F0873DC 8C4A0000 */ lw $t2, ($v0) +/* 0BBF10 7F0873E0 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 0BBF14 7F0873E4 014B6021 */ addu $t4, $t2, $t3 +/* 0BBF18 7F0873E8 AC4C0000 */ sw $t4, ($v0) +/* 0BBF1C 7F0873EC 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 0BBF20 7F0873F0 11A00046 */ beqz $t5, .L7F08750C +/* 0BBF24 7F0873F4 00000000 */ nop +/* 0BBF28 7F0873F8 0FC2FF01 */ jal get_controls_locked_flag +/* 0BBF2C 7F0873FC 00000000 */ nop +/* 0BBF30 7F087400 1440002F */ bnez $v0, .L7F0874C0 +/* 0BBF34 7F087404 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BBF38 7F087408 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BBF3C 7F08740C 97AE002A */ lhu $t6, 0x2a($sp) +/* 0BBF40 7F087410 240A0002 */ li $t2, 2 +/* 0BBF44 7F087414 95F803B4 */ lhu $t8, 0x3b4($t7) +/* 0BBF48 7F087418 3C018003 */ lui $at, %hi(stop_time_flag) +/* 0BBF4C 7F08741C 0300C827 */ not $t9, $t8 +/* 0BBF50 7F087420 01D94024 */ and $t0, $t6, $t9 +/* 0BBF54 7F087424 3109F030 */ andi $t1, $t0, 0xf030 +/* 0BBF58 7F087428 11200025 */ beqz $t1, .L7F0874C0 +/* 0BBF5C 7F08742C 00000000 */ nop +/* 0BBF60 7F087430 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BBF64 7F087434 AC2A64A0 */ sw $t2, %lo(stop_time_flag)($at) +/* 0BBF68 7F087438 10400015 */ beqz $v0, .L7F087490 +/* 0BBF6C 7F08743C 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BBF70 7F087440 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BBF74 7F087444 44800000 */ mtc1 $zero, $f0 +/* 0BBF78 7F087448 00002025 */ move $a0, $zero +/* 0BBF7C 7F08744C C57203DC */ lwc1 $f18, 0x3dc($t3) +/* 0BBF80 7F087450 00002825 */ move $a1, $zero +/* 0BBF84 7F087454 46120032 */ c.eq.s $f0, $f18 +/* 0BBF88 7F087458 00000000 */ nop +/* 0BBF8C 7F08745C 45000018 */ bc1f .L7F0874C0 +/* 0BBF90 7F087460 00000000 */ nop +/* 0BBF94 7F087464 44070000 */ mfc1 $a3, $f0 +/* 0BBF98 7F087468 0FC201EC */ jal set_rgba_tint +/* 0BBF9C 7F08746C 00003025 */ move $a2, $zero +/* 0BBFA0 7F087470 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBFA4 7F087474 44816000 */ mtc1 $at, $f12 +/* 0BBFA8 7F087478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFAC 7F08747C 44817000 */ mtc1 $at, $f14 +/* 0BBFB0 7F087480 0FC20216 */ jal fade_to_over_seconds +/* 0BBFB4 7F087484 00000000 */ nop +/* 0BBFB8 7F087488 1000000D */ b .L7F0874C0 +/* 0BBFBC 7F08748C 00000000 */ nop +.L7F087490: +/* 0BBFC0 7F087490 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BBFC4 7F087494 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BBFC8 7F087498 44800000 */ mtc1 $zero, $f0 +/* 0BBFCC 7F08749C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFD0 7F0874A0 C4480404 */ lwc1 $f8, 0x404($v0) +/* 0BBFD4 7F0874A4 46080032 */ c.eq.s $f0, $f8 +/* 0BBFD8 7F0874A8 00000000 */ nop +/* 0BBFDC 7F0874AC 45000004 */ bc1f .L7F0874C0 +/* 0BBFE0 7F0874B0 00000000 */ nop +/* 0BBFE4 7F0874B4 44817000 */ mtc1 $at, $f14 +/* 0BBFE8 7F0874B8 0FC20216 */ jal fade_to_over_seconds +/* 0BBFEC 7F0874BC C44C03E0 */ lwc1 $f12, 0x3e0($v0) +.L7F0874C0: +/* 0BBFF0 7F0874C0 3C0C8003 */ lui $t4, %hi(stop_time_flag) +/* 0BBFF4 7F0874C4 8D8C64A0 */ lw $t4, %lo(stop_time_flag)($t4) +/* 0BBFF8 7F0874C8 24010002 */ li $at, 2 +/* 0BBFFC 7F0874CC 1581000F */ bne $t4, $at, .L7F08750C +/* 0BC000 7F0874D0 00000000 */ nop +/* 0BC004 7F0874D4 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BC008 7F0874D8 00000000 */ nop +/* 0BC00C 7F0874DC 1040000B */ beqz $v0, .L7F08750C +/* 0BC010 7F0874E0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0BC014 7F0874E4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0BC018 7F0874E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC01C 7F0874EC 44813000 */ mtc1 $at, $f6 +/* 0BC020 7F0874F0 C5AA03DC */ lwc1 $f10, 0x3dc($t5) +/* 0BC024 7F0874F4 460A3032 */ c.eq.s $f6, $f10 +/* 0BC028 7F0874F8 00000000 */ nop +/* 0BC02C 7F0874FC 45000003 */ bc1f .L7F08750C +/* 0BC030 7F087500 00000000 */ nop +/* 0BC034 7F087504 0C001A5A */ jal return_to_title_from_level_end +/* 0BC038 7F087508 00000000 */ nop +.L7F08750C: +/* 0BC03C 7F08750C 3C0F8003 */ lui $t7, %hi(enable_move_after_cinema) +/* 0BC040 7F087510 8DEF6498 */ lw $t7, %lo(enable_move_after_cinema)($t7) +/* 0BC044 7F087514 11E00003 */ beqz $t7, .L7F087524 +/* 0BC048 7F087518 00000000 */ nop +/* 0BC04C 7F08751C 0FC1EC69 */ jal sub_GAME_7F07B1A4 +/* 0BC050 7F087520 00000000 */ nop +.L7F087524: +/* 0BC054 7F087524 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC058 7F087528 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC05C 7F08752C 8C5800D8 */ lw $t8, 0xd8($v0) +/* 0BC060 7F087530 13000019 */ beqz $t8, .L7F087598 +/* 0BC064 7F087534 00000000 */ nop +/* 0BC068 7F087538 8C430424 */ lw $v1, 0x424($v0) +/* 0BC06C 7F08753C 24040001 */ li $a0, 1 +/* 0BC070 7F087540 14600009 */ bnez $v1, .L7F087568 +/* 0BC074 7F087544 00000000 */ nop +/* 0BC078 7F087548 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC07C 7F08754C 00002825 */ move $a1, $zero +/* 0BC080 7F087550 00002025 */ move $a0, $zero +/* 0BC084 7F087554 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC088 7F087558 00002825 */ move $a1, $zero +/* 0BC08C 7F08755C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC090 7F087560 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC094 7F087564 8C430424 */ lw $v1, 0x424($v0) +.L7F087568: +/* 0BC098 7F087568 1060000B */ beqz $v1, .L7F087598 +/* 0BC09C 7F08756C 00000000 */ nop +/* 0BC0A0 7F087570 8C4E0428 */ lw $t6, 0x428($v0) +/* 0BC0A4 7F087574 3C198003 */ lui $t9, %hi(D_80036510) +/* 0BC0A8 7F087578 11C00007 */ beqz $t6, .L7F087598 +/* 0BC0AC 7F08757C 00000000 */ nop +/* 0BC0B0 7F087580 8F396510 */ lw $t9, %lo(D_80036510)($t9) +/* 0BC0B4 7F087584 2B210003 */ slti $at, $t9, 3 +/* 0BC0B8 7F087588 14200003 */ bnez $at, .L7F087598 +/* 0BC0BC 7F08758C 00000000 */ nop +/* 0BC0C0 7F087590 0C001A4C */ jal run_title_stage +/* 0BC0C4 7F087594 00000000 */ nop +.L7F087598: +/* 0BC0C8 7F087598 3C088003 */ lui $t0, %hi(cameramode) +/* 0BC0CC 7F08759C 8D086494 */ lw $t0, %lo(cameramode)($t0) +/* 0BC0D0 7F0875A0 2401000A */ li $at, 10 +/* 0BC0D4 7F0875A4 15010007 */ bne $t0, $at, .L7F0875C4 +/* 0BC0D8 7F0875A8 00000000 */ nop +/* 0BC0DC 7F0875AC 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BC0E0 7F0875B0 00000000 */ nop +/* 0BC0E4 7F0875B4 10400003 */ beqz $v0, .L7F0875C4 +/* 0BC0E8 7F0875B8 00000000 */ nop +/* 0BC0EC 7F0875BC 0C001A4C */ jal run_title_stage +/* 0BC0F0 7F0875C0 00000000 */ nop +.L7F0875C4: +/* 0BC0F4 7F0875C4 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BC0F8 7F0875C8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC0FC 7F0875CC 97A9002A */ lhu $t1, 0x2a($sp) +/* 0BC100 7F0875D0 A54903B4 */ sh $t1, 0x3b4($t2) +/* 0BC104 7F0875D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC108 7F0875D8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BC10C 7F0875DC 03E00008 */ jr $ra +/* 0BC110 7F0875E0 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80055264 +.word 0x3fe38e39 /*1.7777778*/ +glabel D_80055268 +.word 0x3fe38e39 /*1.7777778*/ +.text +glabel possibly_reset_viewport_options_for_player +/* 0BC1D8 7F087668 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BC1DC 7F08766C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC1E0 7F087670 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC1E4 7F087674 44816000 */ mtc1 $at, $f12 +/* 0BC1E8 7F087678 AFA40020 */ sw $a0, 0x20($sp) +/* 0BC1EC 7F08767C AFA50024 */ sw $a1, 0x24($sp) +/* 0BC1F0 7F087680 0FC26F6D */ jal set_cur_player_fovy +/* 0BC1F4 7F087684 AFA60028 */ sw $a2, 0x28($sp) +/* 0BC1F8 7F087688 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC1FC 7F08768C 44816000 */ mtc1 $at, $f12 +/* 0BC200 7F087690 0C001151 */ jal setvideo_far +/* 0BC204 7F087694 00000000 */ nop +/* 0BC208 7F087698 3C038003 */ lui $v1, %hi(camera_80036430) # $v1, 0x8003 +/* 0BC20C 7F08769C 24636470 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6470 +/* 0BC210 7F0876A0 8C620000 */ lw $v0, ($v1) +/* 0BC214 7F0876A4 10400016 */ beqz $v0, .Ljp7F087700 +/* 0BC218 7F0876A8 28410004 */ slti $at, $v0, 4 +/* 0BC21C 7F0876AC 14200010 */ bnez $at, .Ljp7F0876F0 +/* 0BC220 7F0876B0 3C0E8003 */ lui $t6, %hi(resolution) # $t6, 0x8003 +/* 0BC224 7F0876B4 8DCE6468 */ lw $t6, %lo(resolution)($t6) +/* 0BC228 7F0876B8 51C0000E */ beql $t6, $zero, .Ljp7F0876F4 +/* 0BC22C 7F0876BC 8C790000 */ lw $t9, ($v1) +/* 0BC230 7F0876C0 0C000F07 */ jal get_video_settings2_frameb +/* 0BC234 7F0876C4 00000000 */ nop +/* 0BC238 7F0876C8 3C0F803E */ lui $t7, %hi(cfb_16_b) # $t7, 0x803e +/* 0BC23C 7F0876CC 25EFA800 */ addiu $t7, %lo(cfb_16_b) # addiu $t7, $t7, -0x5800 +/* 0BC240 7F0876D0 3C038003 */ lui $v1, %hi(camera_80036430) # $v1, 0x8003 +/* 0BC244 7F0876D4 144F0006 */ bne $v0, $t7, .Ljp7F0876F0 +/* 0BC248 7F0876D8 24636470 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6470 +/* 0BC24C 7F0876DC 24180001 */ li $t8, 1 +/* 0BC250 7F0876E0 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 0BC254 7F0876E4 AC38646C */ sw $t8, %lo(camera_8003642C)($at) +/* 0BC258 7F0876E8 1000001A */ b .Ljp7F087754 +/* 0BC25C 7F0876EC AC600000 */ sw $zero, ($v1) +.Ljp7F0876F0: +/* 0BC260 7F0876F0 8C790000 */ lw $t9, ($v1) +.Ljp7F0876F4: +/* 0BC264 7F0876F4 27280001 */ addiu $t0, $t9, 1 +/* 0BC268 7F0876F8 10000016 */ b .Ljp7F087754 +/* 0BC26C 7F0876FC AC680000 */ sw $t0, ($v1) +.Ljp7F087700: +/* 0BC270 7F087700 3C038003 */ lui $v1, %hi(camera_80036434) # $v1, 0x8003 +/* 0BC274 7F087704 24636474 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6474 +/* 0BC278 7F087708 8C620000 */ lw $v0, ($v1) +/* 0BC27C 7F08770C 10400011 */ beqz $v0, .Ljp7F087754 +/* 0BC280 7F087710 28410004 */ slti $at, $v0, 4 +/* 0BC284 7F087714 5420000D */ bnezl $at, .Ljp7F08774C +/* 0BC288 7F087718 8C6A0000 */ lw $t2, ($v1) +/* 0BC28C 7F08771C 0C000F07 */ jal get_video_settings2_frameb +/* 0BC290 7F087720 00000000 */ nop +/* 0BC294 7F087724 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 0BC298 7F087728 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 0BC29C 7F08772C 3C038003 */ lui $v1, %hi(camera_80036434) # $v1, 0x8003 +/* 0BC2A0 7F087730 14490005 */ bne $v0, $t1, .Ljp7F087748 +/* 0BC2A4 7F087734 24636474 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6474 +/* 0BC2A8 7F087738 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 0BC2AC 7F08773C AC20646C */ sw $zero, %lo(camera_8003642C)($at) +/* 0BC2B0 7F087740 10000004 */ b .Ljp7F087754 +/* 0BC2B4 7F087744 AC600000 */ sw $zero, ($v1) +.Ljp7F087748: +/* 0BC2B8 7F087748 8C6A0000 */ lw $t2, ($v1) +.Ljp7F08774C: +/* 0BC2BC 7F08774C 254B0001 */ addiu $t3, $t2, 1 +/* 0BC2C0 7F087750 AC6B0000 */ sw $t3, ($v1) +.Ljp7F087754: +/* 0BC2C4 7F087754 3C0C8003 */ lui $t4, %hi(camera_8003642C) # $t4, 0x8003 +/* 0BC2C8 7F087758 8D8C646C */ lw $t4, %lo(camera_8003642C)($t4) +/* 0BC2CC 7F08775C 11800009 */ beqz $t4, .Ljp7F087784 +/* 0BC2D0 7F087760 00000000 */ nop +/* 0BC2D4 7F087764 0C000F07 */ jal get_video_settings2_frameb +/* 0BC2D8 7F087768 00000000 */ nop +/* 0BC2DC 7F08776C 3C0D803E */ lui $t5, %hi(cfb_16_b) # $t5, 0x803e +/* 0BC2E0 7F087770 25ADA800 */ addiu $t5, %lo(cfb_16_b) # addiu $t5, $t5, -0x5800 +/* 0BC2E4 7F087774 144D0003 */ bne $v0, $t5, .Ljp7F087784 +/* 0BC2E8 7F087778 3C048003 */ lui $a0, %hi(resolution) # $a0, 0x8003 +/* 0BC2EC 7F08777C 0C000F0F */ jal set_video2buf_frameb +/* 0BC2F0 7F087780 8C846468 */ lw $a0, %lo(resolution)($a0) +.Ljp7F087784: +/* 0BC2F4 7F087784 0FC296A0 */ jal get_screen_ratio +/* 0BC2F8 7F087788 00000000 */ nop +/* 0BC2FC 7F08778C 24010001 */ li $at, 1 +/* 0BC300 7F087790 14410029 */ bne $v0, $at, .Ljp7F087838 +/* 0BC304 7F087794 00000000 */ nop +/* 0BC308 7F087798 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC30C 7F08779C 00000000 */ nop +/* 0BC310 7F0877A0 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC314 7F0877A4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC318 7F0877A8 87AE001C */ lh $t6, 0x1c($sp) +/* 0BC31C 7F0877AC 44824000 */ mtc1 $v0, $f8 +/* 0BC320 7F0877B0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BC324 7F0877B4 448E2000 */ mtc1 $t6, $f4 +/* 0BC328 7F0877B8 468042A0 */ cvt.s.w $f10, $f8 +/* 0BC32C 7F0877BC 44819000 */ mtc1 $at, $f18 +/* 0BC330 7F0877C0 3C018005 */ lui $at, %hi(D_80055264) # $at, 0x8005 +/* 0BC334 7F0877C4 C4285294 */ lwc1 $f8, %lo(D_80055264)($at) +/* 0BC338 7F0877C8 468021A0 */ cvt.s.w $f6, $f4 +/* 0BC33C 7F0877CC 460A3403 */ div.s $f16, $f6, $f10 +/* 0BC340 7F0877D0 46128102 */ mul.s $f4, $f16, $f18 +/* 0BC344 7F0877D4 00000000 */ nop +/* 0BC348 7F0877D8 46082302 */ mul.s $f12, $f4, $f8 +/* 0BC34C 7F0877DC 0FC26F71 */ jal set_cur_player_aspect +/* 0BC350 7F0877E0 00000000 */ nop +/* 0BC354 7F0877E4 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC358 7F0877E8 00000000 */ nop +/* 0BC35C 7F0877EC 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC360 7F0877F0 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC364 7F0877F4 87AF001C */ lh $t7, 0x1c($sp) +/* 0BC368 7F0877F8 44828000 */ mtc1 $v0, $f16 +/* 0BC36C 7F0877FC 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BC370 7F087800 448F3000 */ mtc1 $t7, $f6 +/* 0BC374 7F087804 468084A0 */ cvt.s.w $f18, $f16 +/* 0BC378 7F087808 44814000 */ mtc1 $at, $f8 +/* 0BC37C 7F08780C 3C018005 */ lui $at, %hi(D_80055268) # $at, 0x8005 +/* 0BC380 7F087810 C4305298 */ lwc1 $f16, %lo(D_80055268)($at) +/* 0BC384 7F087814 468032A0 */ cvt.s.w $f10, $f6 +/* 0BC388 7F087818 46125103 */ div.s $f4, $f10, $f18 +/* 0BC38C 7F08781C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BC390 7F087820 00000000 */ nop +/* 0BC394 7F087824 46103302 */ mul.s $f12, $f6, $f16 +/* 0BC398 7F087828 0C001164 */ jal video_related_21 +/* 0BC39C 7F08782C 00000000 */ nop +/* 0BC3A0 7F087830 10000017 */ b .Ljp7F087890 +/* 0BC3A4 7F087834 00000000 */ nop +.Ljp7F087838: +/* 0BC3A8 7F087838 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC3AC 7F08783C 00000000 */ nop +/* 0BC3B0 7F087840 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC3B4 7F087844 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC3B8 7F087848 87B8001C */ lh $t8, 0x1c($sp) +/* 0BC3BC 7F08784C 44822000 */ mtc1 $v0, $f4 +/* 0BC3C0 7F087850 44985000 */ mtc1 $t8, $f10 +/* 0BC3C4 7F087854 46802220 */ cvt.s.w $f8, $f4 +/* 0BC3C8 7F087858 468054A0 */ cvt.s.w $f18, $f10 +/* 0BC3CC 7F08785C 0FC26F71 */ jal set_cur_player_aspect +/* 0BC3D0 7F087860 46089303 */ div.s $f12, $f18, $f8 +/* 0BC3D4 7F087864 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC3D8 7F087868 00000000 */ nop +/* 0BC3DC 7F08786C 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC3E0 7F087870 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC3E4 7F087874 87B9001C */ lh $t9, 0x1c($sp) +/* 0BC3E8 7F087878 44825000 */ mtc1 $v0, $f10 +/* 0BC3EC 7F08787C 44993000 */ mtc1 $t9, $f6 +/* 0BC3F0 7F087880 46805120 */ cvt.s.w $f4, $f10 +/* 0BC3F4 7F087884 46803420 */ cvt.s.w $f16, $f6 +/* 0BC3F8 7F087888 0C001164 */ jal video_related_21 +/* 0BC3FC 7F08788C 46048303 */ div.s $f12, $f16, $f4 +.Ljp7F087890: +/* 0BC400 7F087890 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC404 7F087894 00000000 */ nop +/* 0BC408 7F087898 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC40C 7F08789C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC410 7F0878A0 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC414 7F0878A4 0FC26F5F */ jal set_cur_player_screen_size +/* 0BC418 7F0878A8 00402825 */ move $a1, $v0 +/* 0BC41C 7F0878AC 0FC21CE4 */ jal get_curplayer_viewport_ulx +/* 0BC420 7F0878B0 00000000 */ nop +/* 0BC424 7F0878B4 0FC21D41 */ jal get_curplayer_viewport_uly +/* 0BC428 7F0878B8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC42C 7F0878BC 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC430 7F0878C0 0FC26F66 */ jal set_cur_player_viewport_size +/* 0BC434 7F0878C4 00402825 */ move $a1, $v0 +/* 0BC438 7F0878C8 0FC21CB1 */ jal getWidth320or440 +/* 0BC43C 7F0878CC 00000000 */ nop +/* 0BC440 7F0878D0 0FC21CBA */ jal getHeight330or240 +/* 0BC444 7F0878D4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC448 7F0878D8 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC44C 7F0878DC 00054403 */ sra $t0, $a1, 0x10 +/* 0BC450 7F0878E0 01002825 */ move $a1, $t0 +/* 0BC454 7F0878E4 0C0010FE */ jal set_video2_text_clip_size +/* 0BC458 7F0878E8 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC45C 7F0878EC 0FC21CB1 */ jal getWidth320or440 +/* 0BC460 7F0878F0 00000000 */ nop +/* 0BC464 7F0878F4 0FC21CBA */ jal getHeight330or240 +/* 0BC468 7F0878F8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC46C 7F0878FC 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC470 7F087900 00054C03 */ sra $t1, $a1, 0x10 +/* 0BC474 7F087904 01202825 */ move $a1, $t1 +/* 0BC478 7F087908 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BC47C 7F08790C 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC480 7F087910 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC484 7F087914 00000000 */ nop +/* 0BC488 7F087918 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC48C 7F08791C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC490 7F087920 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC494 7F087924 00055403 */ sra $t2, $a1, 0x10 +/* 0BC498 7F087928 01402825 */ move $a1, $t2 +/* 0BC49C 7F08792C 0C00110F */ jal set_video2_width_height +/* 0BC4A0 7F087930 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC4A4 7F087934 0FC21CE4 */ jal get_curplayer_viewport_ulx +/* 0BC4A8 7F087938 00000000 */ nop +/* 0BC4AC 7F08793C 0FC21D41 */ jal get_curplayer_viewport_uly +/* 0BC4B0 7F087940 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC4B4 7F087944 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC4B8 7F087948 00055C03 */ sra $t3, $a1, 0x10 +/* 0BC4BC 7F08794C 01602825 */ move $a1, $t3 +/* 0BC4C0 7F087950 0C00112F */ jal set_video2_ulx_uly +/* 0BC4C4 7F087954 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC4C8 7F087958 0FC203B3 */ jal sub_GAME_7F0808BC +/* 0BC4CC 7F08795C 00000000 */ nop +/* 0BC4D0 7F087960 0FC20424 */ jal update_curplayer_fade +/* 0BC4D4 7F087964 00000000 */ nop +/* 0BC4D8 7F087968 0FC2967C */ jal cur_player_get_autoaim +/* 0BC4DC 7F08796C 00000000 */ nop +/* 0BC4E0 7F087970 0FC1F2E5 */ jal set_BONDdata_autoaim_y +/* 0BC4E4 7F087974 00402025 */ move $a0, $v0 +/* 0BC4E8 7F087978 0FC2967C */ jal cur_player_get_autoaim +/* 0BC4EC 7F08797C 00000000 */ nop +/* 0BC4F0 7F087980 0FC1F31F */ jal set_BONDdata_autoaim_x +/* 0BC4F4 7F087984 00402025 */ move $a0, $v0 +/* 0BC4F8 7F087988 0FC29682 */ jal cur_player_get_lookahead +/* 0BC4FC 7F08798C 00000000 */ nop +/* 0BC500 7F087990 0FC1F2DD */ jal set_BONDdata_lookahead_setting +/* 0BC504 7F087994 00402025 */ move $a0, $v0 +/* 0BC508 7F087998 0FC29694 */ jal cur_player_get_ammo_onscreen_setting +/* 0BC50C 7F08799C 00000000 */ nop +/* 0BC510 7F0879A0 24040001 */ li $a0, 1 +/* 0BC514 7F0879A4 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0BC518 7F0879A8 00402825 */ move $a1, $v0 +/* 0BC51C 7F0879AC 0FC26C01 */ jal get_num_players +/* 0BC520 7F0879B0 00000000 */ nop +/* 0BC524 7F0879B4 24010001 */ li $at, 1 +/* 0BC528 7F0879B8 14410006 */ bne $v0, $at, .Ljp7F0879D4 +/* 0BC52C 7F0879BC 00000000 */ nop +/* 0BC530 7F0879C0 0FC2968E */ jal cur_player_get_sight_onscreen_control +/* 0BC534 7F0879C4 00000000 */ nop +/* 0BC538 7F0879C8 0002282B */ sltu $a1, $zero, $v0 +/* 0BC53C 7F0879CC 14A0000B */ bnez $a1, .Ljp7F0879FC +/* 0BC540 7F0879D0 00000000 */ nop +.Ljp7F0879D4: +/* 0BC544 7F0879D4 0FC26C01 */ jal get_num_players +/* 0BC548 7F0879D8 00000000 */ nop +/* 0BC54C 7F0879DC 28430002 */ slti $v1, $v0, 2 +/* 0BC550 7F0879E0 38650001 */ xori $a1, $v1, 1 +/* 0BC554 7F0879E4 10A00005 */ beqz $a1, .Ljp7F0879FC +/* 0BC558 7F0879E8 3C0C8008 */ lui $t4, %hi(pPlayersPerm) # $t4, 0x8008 +/* 0BC55C 7F0879EC 8D8CA124 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0BC560 7F0879F0 9185006B */ lbu $a1, 0x6b($t4) +/* 0BC564 7F0879F4 0005682B */ sltu $t5, $zero, $a1 +/* 0BC568 7F0879F8 01A02825 */ move $a1, $t5 +.Ljp7F0879FC: +/* 0BC56C 7F0879FC 0FC1AAE5 */ jal set_unset_bitflags +/* 0BC570 7F087A00 24040001 */ li $a0, 1 +/* 0BC574 7F087A04 3C028003 */ lui $v0, %hi(cameramode) # $v0, 0x8003 +/* 0BC578 7F087A08 8C4264D4 */ lw $v0, %lo(cameramode)($v0) +/* 0BC57C 7F087A0C 24010004 */ li $at, 4 +/* 0BC580 7F087A10 10400008 */ beqz $v0, .Ljp7F087A34 +/* 0BC584 7F087A14 00000000 */ nop +/* 0BC588 7F087A18 14410003 */ bne $v0, $at, .Ljp7F087A28 +/* 0BC58C 7F087A1C 3C0E8003 */ lui $t6, %hi(D_800364B0) # $t6, 0x8003 +/* 0BC590 7F087A20 8DCE64F0 */ lw $t6, %lo(D_800364B0)($t6) +/* 0BC594 7F087A24 15C00003 */ bnez $t6, .Ljp7F087A34 +.Ljp7F087A28: +/* 0BC598 7F087A28 2401000A */ li $at, 10 +/* 0BC59C 7F087A2C 14410014 */ bne $v0, $at, .Ljp7F087A80 +/* 0BC5A0 7F087A30 83A40023 */ lb $a0, 0x23($sp) +.Ljp7F087A34: +/* 0BC5A4 7F087A34 0FC26F3C */ jal get_cur_playernum +/* 0BC5A8 7F087A38 00000000 */ nop +/* 0BC5AC 7F087A3C 14400008 */ bnez $v0, .Ljp7F087A60 +/* 0BC5B0 7F087A40 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BC5B4 7F087A44 3C028008 */ lui $v0, %hi(mission_timer) # $v0, 0x8008 +/* 0BC5B8 7F087A48 24429A60 */ addiu $v0, %lo(mission_timer) # addiu $v0, $v0, -0x65a0 +/* 0BC5BC 7F087A4C 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 0BC5C0 7F087A50 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 0BC5C4 7F087A54 8C4F0000 */ lw $t7, ($v0) +/* 0BC5C8 7F087A58 01F8C821 */ addu $t9, $t7, $t8 +/* 0BC5CC 7F087A5C AC590000 */ sw $t9, ($v0) +.Ljp7F087A60: +/* 0BC5D0 7F087A60 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC5D4 7F087A64 83A40023 */ lb $a0, 0x23($sp) +/* 0BC5D8 7F087A68 83A50027 */ lb $a1, 0x27($sp) +/* 0BC5DC 7F087A6C 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BC5E0 7F087A70 0FC2133E */ jal MoveBond +/* 0BC5E4 7F087A74 950703B4 */ lhu $a3, 0x3b4($t0) +/* 0BC5E8 7F087A78 10000007 */ b .Ljp7F087A98 +/* 0BC5EC 7F087A7C 00000000 */ nop +.Ljp7F087A80: +/* 0BC5F0 7F087A80 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BC5F4 7F087A84 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BC5F8 7F087A88 83A50027 */ lb $a1, 0x27($sp) +/* 0BC5FC 7F087A8C 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BC600 7F087A90 0FC21C17 */ jal sub_GAME_7F086990 +/* 0BC604 7F087A94 952703B4 */ lhu $a3, 0x3b4($t1) +.Ljp7F087A98: +/* 0BC608 7F087A98 3C028008 */ lui $v0, %hi(watch_time_0) # $v0, 0x8008 +/* 0BC60C 7F087A9C 24429A64 */ addiu $v0, %lo(watch_time_0) # addiu $v0, $v0, -0x659c +/* 0BC610 7F087AA0 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0BC614 7F087AA4 C42884D0 */ lwc1 $f8, %lo(jpD_800484D0)($at) +/* 0BC618 7F087AA8 C4520000 */ lwc1 $f18, ($v0) +/* 0BC61C 7F087AAC 3C0A8003 */ lui $t2, %hi(stop_time_flag) # $t2, 0x8003 +/* 0BC620 7F087AB0 46089180 */ add.s $f6, $f18, $f8 +/* 0BC624 7F087AB4 E4460000 */ swc1 $f6, ($v0) +/* 0BC628 7F087AB8 8D4A64E0 */ lw $t2, %lo(stop_time_flag)($t2) +/* 0BC62C 7F087ABC 11400046 */ beqz $t2, .Ljp7F087BD8 +/* 0BC630 7F087AC0 00000000 */ nop +/* 0BC634 7F087AC4 0FC3021B */ jal get_controls_locked_flag +/* 0BC638 7F087AC8 00000000 */ nop +/* 0BC63C 7F087ACC 1440002F */ bnez $v0, .Ljp7F087B8C +/* 0BC640 7F087AD0 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0BC644 7F087AD4 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0BC648 7F087AD8 97AB002A */ lhu $t3, 0x2a($sp) +/* 0BC64C 7F087ADC 24190002 */ li $t9, 2 +/* 0BC650 7F087AE0 958D03B4 */ lhu $t5, 0x3b4($t4) +/* 0BC654 7F087AE4 3C018003 */ lui $at, %hi(stop_time_flag) # $at, 0x8003 +/* 0BC658 7F087AE8 01A07027 */ not $t6, $t5 +/* 0BC65C 7F087AEC 016E7824 */ and $t7, $t3, $t6 +/* 0BC660 7F087AF0 31F8F030 */ andi $t8, $t7, 0xf030 +/* 0BC664 7F087AF4 13000025 */ beqz $t8, .Ljp7F087B8C +/* 0BC668 7F087AF8 00000000 */ nop +/* 0BC66C 7F087AFC 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC670 7F087B00 AC3964E0 */ sw $t9, %lo(stop_time_flag)($at) +/* 0BC674 7F087B04 10400015 */ beqz $v0, .Ljp7F087B5C +/* 0BC678 7F087B08 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BC67C 7F087B0C 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC680 7F087B10 44800000 */ mtc1 $zero, $f0 +/* 0BC684 7F087B14 00002025 */ move $a0, $zero +/* 0BC688 7F087B18 C50A03DC */ lwc1 $f10, 0x3dc($t0) +/* 0BC68C 7F087B1C 00002825 */ move $a1, $zero +/* 0BC690 7F087B20 460A0032 */ c.eq.s $f0, $f10 +/* 0BC694 7F087B24 00000000 */ nop +/* 0BC698 7F087B28 45000018 */ bc1f .Ljp7F087B8C +/* 0BC69C 7F087B2C 00000000 */ nop +/* 0BC6A0 7F087B30 44070000 */ mfc1 $a3, $f0 +/* 0BC6A4 7F087B34 0FC20370 */ jal set_rgba_tint +/* 0BC6A8 7F087B38 00003025 */ move $a2, $zero +/* 0BC6AC 7F087B3C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC6B0 7F087B40 44816000 */ mtc1 $at, $f12 +/* 0BC6B4 7F087B44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC6B8 7F087B48 44817000 */ mtc1 $at, $f14 +/* 0BC6BC 7F087B4C 0FC2039A */ jal fade_to_over_seconds +/* 0BC6C0 7F087B50 00000000 */ nop +/* 0BC6C4 7F087B54 1000000D */ b .Ljp7F087B8C +/* 0BC6C8 7F087B58 00000000 */ nop +.Ljp7F087B5C: +/* 0BC6CC 7F087B5C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC6D0 7F087B60 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC6D4 7F087B64 44800000 */ mtc1 $zero, $f0 +/* 0BC6D8 7F087B68 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC6DC 7F087B6C C4500404 */ lwc1 $f16, 0x404($v0) +/* 0BC6E0 7F087B70 46100032 */ c.eq.s $f0, $f16 +/* 0BC6E4 7F087B74 00000000 */ nop +/* 0BC6E8 7F087B78 45000004 */ bc1f .Ljp7F087B8C +/* 0BC6EC 7F087B7C 00000000 */ nop +/* 0BC6F0 7F087B80 44817000 */ mtc1 $at, $f14 +/* 0BC6F4 7F087B84 0FC2039A */ jal fade_to_over_seconds +/* 0BC6F8 7F087B88 C44C03E0 */ lwc1 $f12, 0x3e0($v0) +.Ljp7F087B8C: +/* 0BC6FC 7F087B8C 3C098003 */ lui $t1, %hi(stop_time_flag) # $t1, 0x8003 +/* 0BC700 7F087B90 8D2964E0 */ lw $t1, %lo(stop_time_flag)($t1) +/* 0BC704 7F087B94 24010002 */ li $at, 2 +/* 0BC708 7F087B98 1521000F */ bne $t1, $at, .Ljp7F087BD8 +/* 0BC70C 7F087B9C 00000000 */ nop +/* 0BC710 7F087BA0 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC714 7F087BA4 00000000 */ nop +/* 0BC718 7F087BA8 1040000B */ beqz $v0, .Ljp7F087BD8 +/* 0BC71C 7F087BAC 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0BC720 7F087BB0 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC724 7F087BB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC728 7F087BB8 44812000 */ mtc1 $at, $f4 +/* 0BC72C 7F087BBC C55203DC */ lwc1 $f18, 0x3dc($t2) +/* 0BC730 7F087BC0 46122032 */ c.eq.s $f4, $f18 +/* 0BC734 7F087BC4 00000000 */ nop +/* 0BC738 7F087BC8 45000003 */ bc1f .Ljp7F087BD8 +/* 0BC73C 7F087BCC 00000000 */ nop +/* 0BC740 7F087BD0 0C001A5A */ jal return_to_title_from_level_end +/* 0BC744 7F087BD4 00000000 */ nop +.Ljp7F087BD8: +/* 0BC748 7F087BD8 3C0C8003 */ lui $t4, %hi(enable_move_after_cinema) # $t4, 0x8003 +/* 0BC74C 7F087BDC 8D8C64D8 */ lw $t4, %lo(enable_move_after_cinema)($t4) +/* 0BC750 7F087BE0 11800003 */ beqz $t4, .Ljp7F087BF0 +/* 0BC754 7F087BE4 00000000 */ nop +/* 0BC758 7F087BE8 0FC1EDF1 */ jal sub_GAME_7F07B1A4 +/* 0BC75C 7F087BEC 00000000 */ nop +.Ljp7F087BF0: +/* 0BC760 7F087BF0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC764 7F087BF4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC768 7F087BF8 8C4D00D8 */ lw $t5, 0xd8($v0) +/* 0BC76C 7F087BFC 11A00019 */ beqz $t5, .Ljp7F087C64 +/* 0BC770 7F087C00 00000000 */ nop +/* 0BC774 7F087C04 8C430424 */ lw $v1, 0x424($v0) +/* 0BC778 7F087C08 24040001 */ li $a0, 1 +/* 0BC77C 7F087C0C 14600009 */ bnez $v1, .Ljp7F087C34 +/* 0BC780 7F087C10 00000000 */ nop +/* 0BC784 7F087C14 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 0BC788 7F087C18 00002825 */ move $a1, $zero +/* 0BC78C 7F087C1C 00002025 */ move $a0, $zero +/* 0BC790 7F087C20 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 0BC794 7F087C24 00002825 */ move $a1, $zero +/* 0BC798 7F087C28 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC79C 7F087C2C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC7A0 7F087C30 8C430424 */ lw $v1, 0x424($v0) +.Ljp7F087C34: +/* 0BC7A4 7F087C34 1060000B */ beqz $v1, .Ljp7F087C64 +/* 0BC7A8 7F087C38 00000000 */ nop +/* 0BC7AC 7F087C3C 8C4B0428 */ lw $t3, 0x428($v0) +/* 0BC7B0 7F087C40 3C0E8003 */ lui $t6, %hi(D_80036510) # $t6, 0x8003 +/* 0BC7B4 7F087C44 11600007 */ beqz $t3, .Ljp7F087C64 +/* 0BC7B8 7F087C48 00000000 */ nop +/* 0BC7BC 7F087C4C 8DCE6550 */ lw $t6, %lo(D_80036510)($t6) +/* 0BC7C0 7F087C50 29C10003 */ slti $at, $t6, 3 +/* 0BC7C4 7F087C54 14200003 */ bnez $at, .Ljp7F087C64 +/* 0BC7C8 7F087C58 00000000 */ nop +/* 0BC7CC 7F087C5C 0C001A4C */ jal run_title_stage +/* 0BC7D0 7F087C60 00000000 */ nop +.Ljp7F087C64: +/* 0BC7D4 7F087C64 3C0F8003 */ lui $t7, %hi(cameramode) # $t7, 0x8003 +/* 0BC7D8 7F087C68 8DEF64D4 */ lw $t7, %lo(cameramode)($t7) +/* 0BC7DC 7F087C6C 2401000A */ li $at, 10 +/* 0BC7E0 7F087C70 15E10007 */ bne $t7, $at, .Ljp7F087C90 +/* 0BC7E4 7F087C74 00000000 */ nop +/* 0BC7E8 7F087C78 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC7EC 7F087C7C 00000000 */ nop +/* 0BC7F0 7F087C80 10400003 */ beqz $v0, .Ljp7F087C90 +/* 0BC7F4 7F087C84 00000000 */ nop +/* 0BC7F8 7F087C88 0C001A4C */ jal run_title_stage +/* 0BC7FC 7F087C8C 00000000 */ nop +.Ljp7F087C90: +/* 0BC800 7F087C90 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0BC804 7F087C94 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0BC808 7F087C98 97B8002A */ lhu $t8, 0x2a($sp) +/* 0BC80C 7F087C9C A73803B4 */ sh $t8, 0x3b4($t9) +/* 0BC810 7F087CA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC814 7F087CA4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BC818 7F087CA8 03E00008 */ jr $ra +/* 0BC81C 7F087CAC 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0875E4(s32 arg0) { + // Node 0 + sub_GAME_7F0BCA34(pPlayer->current_model_xpos); + pPlayer->current_room_xpos = (f32) (get_room_data_float1() * pPlayer->current_model_xpos); + pPlayer->current_room_ypos = (f32) (get_room_data_float1() * pPlayer->current_model_ypos); + pPlayer->current_room_zpos = (f32) (get_room_data_float1() * pPlayer->current_model_zpos); + return sub_GAME_7F0BC624(arg0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0875E4 +/* 0BC114 7F0875E4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0BC118 7F0875E8 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0BC11C 7F0875EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BC120 7F0875F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC124 7F0875F4 AFA40018 */ sw $a0, 0x18($sp) +/* 0BC128 7F0875F8 0FC2F28D */ jal sub_GAME_7F0BCA34 +/* 0BC12C 7F0875FC 24A50038 */ addiu $a1, $a1, 0x38 +/* 0BC130 7F087600 0FC2D20F */ jal get_room_data_float1 +/* 0BC134 7F087604 00000000 */ nop +/* 0BC138 7F087608 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC13C 7F08760C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC140 7F087610 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0BC144 7F087614 46040182 */ mul.s $f6, $f0, $f4 +/* 0BC148 7F087618 0FC2D20F */ jal get_room_data_float1 +/* 0BC14C 7F08761C E4460050 */ swc1 $f6, 0x50($v0) +/* 0BC150 7F087620 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC154 7F087624 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC158 7F087628 C448003C */ lwc1 $f8, 0x3c($v0) +/* 0BC15C 7F08762C 46080282 */ mul.s $f10, $f0, $f8 +/* 0BC160 7F087630 0FC2D20F */ jal get_room_data_float1 +/* 0BC164 7F087634 E44A0054 */ swc1 $f10, 0x54($v0) +/* 0BC168 7F087638 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC16C 7F08763C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC170 7F087640 C4500040 */ lwc1 $f16, 0x40($v0) +/* 0BC174 7F087644 46100482 */ mul.s $f18, $f0, $f16 +/* 0BC178 7F087648 E4520058 */ swc1 $f18, 0x58($v0) +/* 0BC17C 7F08764C 0FC2F189 */ jal sub_GAME_7F0BC624 +/* 0BC180 7F087650 8FA40018 */ lw $a0, 0x18($sp) +/* 0BC184 7F087654 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC188 7F087658 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BC18C 7F08765C 03E00008 */ jr $ra +/* 0BC190 7F087660 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void store_BONDdata_curpos_to_previous(void) { + // Node 0 + pPlayer->previous_model_xpos = (f32) pPlayer->current_model_xpos; + pPlayer->previous_model_ypos = (f32) pPlayer->current_model_ypos; + pPlayer->previous_model_zpos = (f32) pPlayer->current_model_zpos; + return matrix_4x4_rotate_vector_in_place(get_BONDdata_field_10CC(), (pPlayer + 0x44)); +} +#else +GLOBAL_ASM( +.text +glabel store_BONDdata_curpos_to_previous +/* 0BC194 7F087664 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BC198 7F087668 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BC19C 7F08766C 8C620000 */ lw $v0, ($v1) +/* 0BC1A0 7F087670 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BC1A4 7F087674 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC1A8 7F087678 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0BC1AC 7F08767C E4440044 */ swc1 $f4, 0x44($v0) +/* 0BC1B0 7F087680 8C620000 */ lw $v0, ($v1) +/* 0BC1B4 7F087684 C446003C */ lwc1 $f6, 0x3c($v0) +/* 0BC1B8 7F087688 E4460048 */ swc1 $f6, 0x48($v0) +/* 0BC1BC 7F08768C 8C620000 */ lw $v0, ($v1) +/* 0BC1C0 7F087690 C4480040 */ lwc1 $f8, 0x40($v0) +/* 0BC1C4 7F087694 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0BC1C8 7F087698 E448004C */ swc1 $f8, 0x4c($v0) +/* 0BC1CC 7F08769C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BC1D0 7F0876A0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BC1D4 7F0876A4 8C650000 */ lw $a1, ($v1) +/* 0BC1D8 7F0876A8 00402025 */ move $a0, $v0 +/* 0BC1DC 7F0876AC 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0BC1E0 7F0876B0 24A50044 */ addiu $a1, $a1, 0x44 +/* 0BC1E4 7F0876B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC1E8 7F0876B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BC1EC 7F0876BC 03E00008 */ jr $ra +/* 0BC1F0 7F0876C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0876C4(void *arg0, void *arg1, void *arg2) { + ? sp60; + ? spA0; + f32 spAC; + f32 spB0; + f32 spB4; + f32 spB8; + f32 spBC; + f32 spC0; + ? spC4; + s32 sp104; + ? sp108; + f32 temp_f10; + f32 temp_f6; + f32 temp_f4; + f32 temp_f16; + s32 temp_s0; + f32 temp_f0; + s32 temp_v1; + void *temp_a1; + void *phi_v0; + s32 phi_v1; + void *phi_a1; + + // Node 0 + sub_GAME_7F0875E4(get_cur_players_room()); + pPlayer->field_5C = sub_GAME_7F0BD6E0(); + pPlayer->field_60 = sub_GAME_7F0BD6E0(); + pPlayer->field_64 = sub_GAME_7F0BD6E0(); + pPlayer->field_68 = sub_GAME_7F0BD6E0(); + sp104 = sub_GAME_7F0BD6F8(2); + temp_f10 = ((*arg0 - pPlayer->current_model_xpos) * D_800364CC); + spAC = temp_f10; + temp_f6 = ((arg0->unk4 - pPlayer->current_model_ypos) * D_800364CC); + spB0 = temp_f6; + temp_f4 = ((arg0->unk8 - pPlayer->current_model_zpos) * D_800364CC); + spB4 = temp_f4; + temp_f16 = (*arg1 + temp_f10); + spB8 = temp_f16; + spBC = (f32) (arg1->unk4 + temp_f6); + spC0 = (f32) (arg1->unk8 + temp_f4); + sub_GAME_7F059424(&spC4, temp_f10, temp_f6, temp_f4, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + guLookAtReflect(&sp108, sp104, spAC, spB0, spB4, temp_f16, spBC, spC0, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + sub_GAME_7F059424(pPlayer->field_64, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + sub_GAME_7F059708(pPlayer->field_68, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + temp_s0 = sub_GAME_7F0BD6E0(); + matrix_4x4_multiply(get_BONDdata_field_10DC(), &spC4, &sp60); + phi_a1 = &sp60; +loop_1: + // Node 1 + phi_v0 = phi_a1; + phi_v1 = 0; +loop_2: + // Node 2 + temp_f0 = *phi_v0; + temp_v1 = (phi_v1 + 4); + if (32000.0f < temp_f0) + { + // Node 3 + *phi_v0 = 32000.0f; + } + else + { + // Node 4 + if (temp_f0 < -32000.0f) + { + // Node 5 + *phi_v0 = -32000.0f; + } + } + // Node 6 + phi_v0 = (phi_v0 + 4); + phi_v1 = temp_v1; + if (temp_v1 != 0x10) + { + goto loop_2; + } + // Node 7 + temp_a1 = (phi_a1 + 0x10); + phi_a1 = temp_a1; + if (temp_a1 != &spA0) + { + goto loop_1; + } + // Node 8 + guMtxF2L(-32000.0f, &sp60, temp_s0, &spA0); + set_BONDdata_field_10E0(temp_s0); + matrix_scalar_multiply(sub_GAME_7F0B4878(), &spC4); + guMtxF2L(&spC4, pPlayer->field_5C); + sub_GAME_7F059334(pPlayer->field_5C, pPlayer->field_60); + set_BONDdata_field_10C8(pPlayer->field_5C); + set_BONDdata_field_10C4(pPlayer->field_60); + copy_BONDdata_field_10CC_to_10E8_set_10CC(pPlayer->field_64); + sub_GAME_7F078424(pPlayer->field_68); + sub_GAME_7F078464(sp104); + sub_GAME_7F0785DC(); + return store_BONDdata_curpos_to_previous(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0876C4 +/* 0BC1F4 7F0876C4 27BDFEB8 */ addiu $sp, $sp, -0x148 +/* 0BC1F8 7F0876C8 AFBF0044 */ sw $ra, 0x44($sp) +/* 0BC1FC 7F0876CC AFB1003C */ sw $s1, 0x3c($sp) +/* 0BC200 7F0876D0 AFB00038 */ sw $s0, 0x38($sp) +/* 0BC204 7F0876D4 00A08025 */ move $s0, $a1 +/* 0BC208 7F0876D8 00C08825 */ move $s1, $a2 +/* 0BC20C 7F0876DC AFB20040 */ sw $s2, 0x40($sp) +/* 0BC210 7F0876E0 0FC227E6 */ jal get_cur_players_room +/* 0BC214 7F0876E4 AFA40148 */ sw $a0, 0x148($sp) +/* 0BC218 7F0876E8 0FC21D79 */ jal sub_GAME_7F0875E4 +/* 0BC21C 7F0876EC 00402025 */ move $a0, $v0 +/* 0BC220 7F0876F0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC224 7F0876F4 00000000 */ nop +/* 0BC228 7F0876F8 3C128008 */ lui $s2, %hi(pPlayer) +/* 0BC22C 7F0876FC 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0BC230 7F087700 8E4E0000 */ lw $t6, ($s2) +/* 0BC234 7F087704 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC238 7F087708 ADC2005C */ sw $v0, 0x5c($t6) +/* 0BC23C 7F08770C 8E4F0000 */ lw $t7, ($s2) +/* 0BC240 7F087710 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC244 7F087714 ADE20060 */ sw $v0, 0x60($t7) +/* 0BC248 7F087718 8E580000 */ lw $t8, ($s2) +/* 0BC24C 7F08771C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC250 7F087720 AF020064 */ sw $v0, 0x64($t8) +/* 0BC254 7F087724 8E590000 */ lw $t9, ($s2) +/* 0BC258 7F087728 24040002 */ li $a0, 2 +/* 0BC25C 7F08772C 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 0BC260 7F087730 AF220068 */ sw $v0, 0x68($t9) +/* 0BC264 7F087734 8FA80148 */ lw $t0, 0x148($sp) +/* 0BC268 7F087738 8E430000 */ lw $v1, ($s2) +/* 0BC26C 7F08773C AFA20104 */ sw $v0, 0x104($sp) +/* 0BC270 7F087740 C5040000 */ lwc1 $f4, ($t0) +/* 0BC274 7F087744 C4660038 */ lwc1 $f6, 0x38($v1) +/* 0BC278 7F087748 3C018003 */ lui $at, %hi(D_800364CC) +/* 0BC27C 7F08774C C42064CC */ lwc1 $f0, %lo(D_800364CC)($at) +/* 0BC280 7F087750 46062201 */ sub.s $f8, $f4, $f6 +/* 0BC284 7F087754 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BC288 7F087758 46004282 */ mul.s $f10, $f8, $f0 +/* 0BC28C 7F08775C E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0BC290 7F087760 C5100004 */ lwc1 $f16, 4($t0) +/* 0BC294 7F087764 C472003C */ lwc1 $f18, 0x3c($v1) +/* 0BC298 7F087768 44055000 */ mfc1 $a1, $f10 +/* 0BC29C 7F08776C 46128101 */ sub.s $f4, $f16, $f18 +/* 0BC2A0 7F087770 46002182 */ mul.s $f6, $f4, $f0 +/* 0BC2A4 7F087774 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 0BC2A8 7F087778 C5080008 */ lwc1 $f8, 8($t0) +/* 0BC2AC 7F08777C C4700040 */ lwc1 $f16, 0x40($v1) +/* 0BC2B0 7F087780 44063000 */ mfc1 $a2, $f6 +/* 0BC2B4 7F087784 46104481 */ sub.s $f18, $f8, $f16 +/* 0BC2B8 7F087788 46009102 */ mul.s $f4, $f18, $f0 +/* 0BC2BC 7F08778C E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0BC2C0 7F087790 C6080000 */ lwc1 $f8, ($s0) +/* 0BC2C4 7F087794 44072000 */ mfc1 $a3, $f4 +/* 0BC2C8 7F087798 460A4400 */ add.s $f16, $f8, $f10 +/* 0BC2CC 7F08779C E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0BC2D0 7F0877A0 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC2D4 7F0877A4 46069200 */ add.s $f8, $f18, $f6 +/* 0BC2D8 7F0877A8 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0BC2DC 7F0877AC C6100008 */ lwc1 $f16, 8($s0) +/* 0BC2E0 7F0877B0 46048480 */ add.s $f18, $f16, $f4 +/* 0BC2E4 7F0877B4 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0BC2E8 7F0877B8 C6080000 */ lwc1 $f8, ($s0) +/* 0BC2EC 7F0877BC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0BC2F0 7F0877C0 C6100004 */ lwc1 $f16, 4($s0) +/* 0BC2F4 7F0877C4 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0BC2F8 7F0877C8 C6120008 */ lwc1 $f18, 8($s0) +/* 0BC2FC 7F0877CC E7B20018 */ swc1 $f18, 0x18($sp) +/* 0BC300 7F0877D0 C62A0000 */ lwc1 $f10, ($s1) +/* 0BC304 7F0877D4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BC308 7F0877D8 C6260004 */ lwc1 $f6, 4($s1) +/* 0BC30C 7F0877DC E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BC310 7F0877E0 C6240008 */ lwc1 $f4, 8($s1) +/* 0BC314 7F0877E4 0FC16509 */ jal sub_GAME_7F059424 +/* 0BC318 7F0877E8 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BC31C 7F0877EC C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0BC320 7F0877F0 C7B000B8 */ lwc1 $f16, 0xb8($sp) +/* 0BC324 7F0877F4 C7B200BC */ lwc1 $f18, 0xbc($sp) +/* 0BC328 7F0877F8 C7AA00C0 */ lwc1 $f10, 0xc0($sp) +/* 0BC32C 7F0877FC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0BC330 7F087800 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0BC334 7F087804 E7B20018 */ swc1 $f18, 0x18($sp) +/* 0BC338 7F087808 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BC33C 7F08780C C6260000 */ lwc1 $f6, ($s1) +/* 0BC340 7F087810 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BC344 7F087814 8FA50104 */ lw $a1, 0x104($sp) +/* 0BC348 7F087818 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BC34C 7F08781C C6240004 */ lwc1 $f4, 4($s1) +/* 0BC350 7F087820 8FA600AC */ lw $a2, 0xac($sp) +/* 0BC354 7F087824 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0BC358 7F087828 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BC35C 7F08782C C6280008 */ lwc1 $f8, 8($s1) +/* 0BC360 7F087830 0C005CDC */ jal guLookAtReflect +/* 0BC364 7F087834 E7A80028 */ swc1 $f8, 0x28($sp) +/* 0BC368 7F087838 8FA20148 */ lw $v0, 0x148($sp) +/* 0BC36C 7F08783C 8E490000 */ lw $t1, ($s2) +/* 0BC370 7F087840 C6100000 */ lwc1 $f16, ($s0) +/* 0BC374 7F087844 8C450000 */ lw $a1, ($v0) +/* 0BC378 7F087848 8C460004 */ lw $a2, 4($v0) +/* 0BC37C 7F08784C 8C470008 */ lw $a3, 8($v0) +/* 0BC380 7F087850 8D240064 */ lw $a0, 0x64($t1) +/* 0BC384 7F087854 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0BC388 7F087858 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC38C 7F08785C E7B20014 */ swc1 $f18, 0x14($sp) +/* 0BC390 7F087860 C60A0008 */ lwc1 $f10, 8($s0) +/* 0BC394 7F087864 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BC398 7F087868 C6260000 */ lwc1 $f6, ($s1) +/* 0BC39C 7F08786C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BC3A0 7F087870 C6240004 */ lwc1 $f4, 4($s1) +/* 0BC3A4 7F087874 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0BC3A8 7F087878 C6280008 */ lwc1 $f8, 8($s1) +/* 0BC3AC 7F08787C 0FC16509 */ jal sub_GAME_7F059424 +/* 0BC3B0 7F087880 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BC3B4 7F087884 8FAB0148 */ lw $t3, 0x148($sp) +/* 0BC3B8 7F087888 8E4A0000 */ lw $t2, ($s2) +/* 0BC3BC 7F08788C C6100000 */ lwc1 $f16, ($s0) +/* 0BC3C0 7F087890 8D650000 */ lw $a1, ($t3) +/* 0BC3C4 7F087894 8D660004 */ lw $a2, 4($t3) +/* 0BC3C8 7F087898 8D670008 */ lw $a3, 8($t3) +/* 0BC3CC 7F08789C 8D440068 */ lw $a0, 0x68($t2) +/* 0BC3D0 7F0878A0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0BC3D4 7F0878A4 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC3D8 7F0878A8 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0BC3DC 7F0878AC C60A0008 */ lwc1 $f10, 8($s0) +/* 0BC3E0 7F0878B0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BC3E4 7F0878B4 C6260000 */ lwc1 $f6, ($s1) +/* 0BC3E8 7F0878B8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BC3EC 7F0878BC C6240004 */ lwc1 $f4, 4($s1) +/* 0BC3F0 7F0878C0 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0BC3F4 7F0878C4 C6280008 */ lwc1 $f8, 8($s1) +/* 0BC3F8 7F0878C8 0FC165C2 */ jal sub_GAME_7F059708 +/* 0BC3FC 7F0878CC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BC400 7F0878D0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC404 7F0878D4 00000000 */ nop +/* 0BC408 7F0878D8 0FC1E0F9 */ jal get_BONDdata_field_10DC +/* 0BC40C 7F0878DC 00408025 */ move $s0, $v0 +/* 0BC410 7F0878E0 27B10060 */ addiu $s1, $sp, 0x60 +/* 0BC414 7F0878E4 02203025 */ move $a2, $s1 +/* 0BC418 7F0878E8 00402025 */ move $a0, $v0 +/* 0BC41C 7F0878EC 0FC16032 */ jal matrix_4x4_multiply +/* 0BC420 7F0878F0 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0BC424 7F0878F4 3C01C6FA */ li $at, 0xC6FA0000 # -32000.000000 +/* 0BC428 7F0878F8 44816000 */ mtc1 $at, $f12 +/* 0BC42C 7F0878FC 3C0146FA */ li $at, 0x46FA0000 # 32000.000000 +/* 0BC430 7F087900 44811000 */ mtc1 $at, $f2 +/* 0BC434 7F087904 27A50060 */ addiu $a1, $sp, 0x60 +/* 0BC438 7F087908 27A700A0 */ addiu $a3, $sp, 0xa0 +/* 0BC43C 7F08790C 24040010 */ li $a0, 16 +/* 0BC440 7F087910 00001825 */ move $v1, $zero +.L7F087914: +/* 0BC444 7F087914 00A01025 */ move $v0, $a1 +.L7F087918: +/* 0BC448 7F087918 C4400000 */ lwc1 $f0, ($v0) +/* 0BC44C 7F08791C 24630004 */ addiu $v1, $v1, 4 +/* 0BC450 7F087920 4600103C */ c.lt.s $f2, $f0 +/* 0BC454 7F087924 00000000 */ nop +/* 0BC458 7F087928 45020004 */ bc1fl .L7F08793C +/* 0BC45C 7F08792C 460C003C */ c.lt.s $f0, $f12 +/* 0BC460 7F087930 10000006 */ b .L7F08794C +/* 0BC464 7F087934 E4420000 */ swc1 $f2, ($v0) +/* 0BC468 7F087938 460C003C */ c.lt.s $f0, $f12 +.L7F08793C: +/* 0BC46C 7F08793C 00000000 */ nop +/* 0BC470 7F087940 45000002 */ bc1f .L7F08794C +/* 0BC474 7F087944 00000000 */ nop +/* 0BC478 7F087948 E44C0000 */ swc1 $f12, ($v0) +.L7F08794C: +/* 0BC47C 7F08794C 1464FFF2 */ bne $v1, $a0, .L7F087918 +/* 0BC480 7F087950 24420004 */ addiu $v0, $v0, 4 +/* 0BC484 7F087954 24A50010 */ addiu $a1, $a1, 0x10 +/* 0BC488 7F087958 54A7FFEE */ bnel $a1, $a3, .L7F087914 +/* 0BC48C 7F08795C 00001825 */ move $v1, $zero +/* 0BC490 7F087960 02202025 */ move $a0, $s1 +/* 0BC494 7F087964 0C003FC4 */ jal guMtxF2L +/* 0BC498 7F087968 02002825 */ move $a1, $s0 +/* 0BC49C 7F08796C 0FC1E0E1 */ jal set_BONDdata_field_10E0 +/* 0BC4A0 7F087970 02002025 */ move $a0, $s0 +/* 0BC4A4 7F087974 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 0BC4A8 7F087978 00000000 */ nop +/* 0BC4AC 7F08797C 46000306 */ mov.s $f12, $f0 +/* 0BC4B0 7F087980 0FC1629F */ jal matrix_scalar_multiply +/* 0BC4B4 7F087984 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0BC4B8 7F087988 8E4C0000 */ lw $t4, ($s2) +/* 0BC4BC 7F08798C 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BC4C0 7F087990 0C003FC4 */ jal guMtxF2L +/* 0BC4C4 7F087994 8D85005C */ lw $a1, 0x5c($t4) +/* 0BC4C8 7F087998 8E430000 */ lw $v1, ($s2) +/* 0BC4CC 7F08799C 8C64005C */ lw $a0, 0x5c($v1) +/* 0BC4D0 7F0879A0 0FC164CD */ jal sub_GAME_7F059334 +/* 0BC4D4 7F0879A4 8C650060 */ lw $a1, 0x60($v1) +/* 0BC4D8 7F0879A8 8E4D0000 */ lw $t5, ($s2) +/* 0BC4DC 7F0879AC 0FC1E0D1 */ jal set_BONDdata_field_10C8 +/* 0BC4E0 7F0879B0 8DA4005C */ lw $a0, 0x5c($t5) +/* 0BC4E4 7F0879B4 8E4E0000 */ lw $t6, ($s2) +/* 0BC4E8 7F0879B8 0FC1E0C9 */ jal set_BONDdata_field_10C4 +/* 0BC4EC 7F0879BC 8DC40060 */ lw $a0, 0x60($t6) +/* 0BC4F0 7F0879C0 8E4F0000 */ lw $t7, ($s2) +/* 0BC4F4 7F0879C4 0FC1E0E9 */ jal copy_BONDdata_field_10CC_to_10E8_set_10CC +/* 0BC4F8 7F0879C8 8DE40064 */ lw $a0, 0x64($t7) +/* 0BC4FC 7F0879CC 8E580000 */ lw $t8, ($s2) +/* 0BC500 7F0879D0 0FC1E109 */ jal sub_GAME_7F078424 +/* 0BC504 7F0879D4 8F040068 */ lw $a0, 0x68($t8) +/* 0BC508 7F0879D8 0FC1E119 */ jal sub_GAME_7F078464 +/* 0BC50C 7F0879DC 8FA40104 */ lw $a0, 0x104($sp) +/* 0BC510 7F0879E0 0FC1E177 */ jal sub_GAME_7F0785DC +/* 0BC514 7F0879E4 00000000 */ nop +/* 0BC518 7F0879E8 0FC21D99 */ jal store_BONDdata_curpos_to_previous +/* 0BC51C 7F0879EC 00000000 */ nop +/* 0BC520 7F0879F0 8FBF0044 */ lw $ra, 0x44($sp) +/* 0BC524 7F0879F4 8FB00038 */ lw $s0, 0x38($sp) +/* 0BC528 7F0879F8 8FB1003C */ lw $s1, 0x3c($sp) +/* 0BC52C 7F0879FC 8FB20040 */ lw $s2, 0x40($sp) +/* 0BC530 7F087A00 03E00008 */ jr $ra +/* 0BC534 7F087A04 27BD0148 */ addiu $sp, $sp, 0x148 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F087A08(s32 arg0) { + f32 sp20; + f32 sp2C; + f32 sp30; + ? sp34; + f32 sp40; + ? sp4C; + void *sp58; + f32 sp5C; + f32 sp60; + f32 sp64; + f32 sp68; + f32 sp6C; + f32 sp70; + f32 sp74; + f32 sp78; + f32 sp7C; + void *temp_v1; + s32 temp_a0; + s32 temp_a1; + f32 temp_f2; + ? temp_ret; + f32 phi_f16; + f32 phi_f2; + + // Node 0 + if (*pPlayer == 1) + { + // Node 1 + sp74 = (f32) pPlayer->xpos; + sp78 = (f32) pPlayer->ypos; + sp7C = (f32) pPlayer->zpos; + sp68 = (f32) (pPlayer->xpos2 - pPlayer->xpos); + sp6C = (f32) (pPlayer->ypos2 - pPlayer->ypos); + sp70 = (f32) (pPlayer->zpos2 - pPlayer->zpos); + sp5C = (f32) pPlayer->xoffset; + sp60 = (f32) pPlayer->yoffset; + sp64 = (f32) pPlayer->zoffset; + } + else + { + // Node 2 + temp_v1 = (pPlayer + 0x488); + sp4C = (?32) D_80036830; + temp_a0 = (temp_v1 + 0x2c); + temp_a1 = (temp_v1 + 0x38); + sp4C.unk4 = (?32) D_80036830.unk4; + sp4C.unk8 = (?32) D_80036830.unk8; + if (pPlayer->bonddead == 0) + { + // Node 3 + sp58 = temp_v1; + sub_GAME_7F09C7C4(temp_a0, temp_a1, &sp4C); + } + else + { + // Node 4 + sp58 = temp_v1; + video_related_9(0, temp_a0, temp_a1, &sp4C); + } + // Node 5 + sp74 = (f32) temp_v1->unk2C; + sp78 = (f32) temp_v1->unk30; + sp7C = (f32) temp_v1->unk34; + sp68 = (f32) temp_v1->unk38; + sp6C = (f32) temp_v1->unk3C; + sp70 = (f32) temp_v1->unk40; + sp5C = (f32) temp_v1->unk44; + sp60 = (f32) temp_v1->unk48; + sp64 = (f32) temp_v1->unk4C; + } + // Node 6 + sub_GAME_7F0876C4(&sp74, &sp68, &sp5C); + sub_GAME_7F068190(&sp34, &sp40); + sp30 = sp44; + sp2C = sqrtf(((sp48 * sp48) + (sp40 * sp40))); + sp20 = get_curplay_vertical_rotation_in_degrees(); + temp_f2 = (atan2f(sp30, sp2C) + sp20); + phi_f16 = temp_f2; + if (D_8005526C <= temp_f2) + { + // Node 7 + phi_f16 = (temp_f2 - D_80055270); + } + // Node 8 + pPlayer->field_2A08 = (f32) phi_f16; + temp_ret = atan2f(-sp40, -sp48); + phi_f2 = temp_ret; + if (D_80055274 <= temp_ret) + { + // Node 9 + phi_f2 = (temp_ret - D_80055278); + } + // Node 10 + pPlayer->field_2A0C = (f32) phi_f2; + return arg0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005526C +.word 0x40490fdb /*3.1415927*/ +glabel D_80055270 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055274 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055278 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087A08 +/* 0BC538 7F087A08 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC53C 7F087A0C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC540 7F087A10 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0BC544 7F087A14 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC548 7F087A18 AFA40080 */ sw $a0, 0x80($sp) +/* 0BC54C 7F087A1C 8C4E0000 */ lw $t6, ($v0) +/* 0BC550 7F087A20 24010001 */ li $at, 1 +/* 0BC554 7F087A24 3C0F8003 */ lui $t7, %hi(D_80036830) +/* 0BC558 7F087A28 15C1001A */ bne $t6, $at, .L7F087A94 +/* 0BC55C 7F087A2C 25EF6830 */ addiu $t7, %lo(D_80036830) # addiu $t7, $t7, 0x6830 +/* 0BC560 7F087A30 C4440004 */ lwc1 $f4, 4($v0) +/* 0BC564 7F087A34 E7A40074 */ swc1 $f4, 0x74($sp) +/* 0BC568 7F087A38 C4460008 */ lwc1 $f6, 8($v0) +/* 0BC56C 7F087A3C E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BC570 7F087A40 C448000C */ lwc1 $f8, 0xc($v0) +/* 0BC574 7F087A44 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0BC578 7F087A48 C4520004 */ lwc1 $f18, 4($v0) +/* 0BC57C 7F087A4C C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0BC580 7F087A50 46125101 */ sub.s $f4, $f10, $f18 +/* 0BC584 7F087A54 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0BC588 7F087A58 C4480008 */ lwc1 $f8, 8($v0) +/* 0BC58C 7F087A5C C4460014 */ lwc1 $f6, 0x14($v0) +/* 0BC590 7F087A60 46083281 */ sub.s $f10, $f6, $f8 +/* 0BC594 7F087A64 E7AA006C */ swc1 $f10, 0x6c($sp) +/* 0BC598 7F087A68 C444000C */ lwc1 $f4, 0xc($v0) +/* 0BC59C 7F087A6C C4520018 */ lwc1 $f18, 0x18($v0) +/* 0BC5A0 7F087A70 46049181 */ sub.s $f6, $f18, $f4 +/* 0BC5A4 7F087A74 E7A60070 */ swc1 $f6, 0x70($sp) +/* 0BC5A8 7F087A78 C448001C */ lwc1 $f8, 0x1c($v0) +/* 0BC5AC 7F087A7C E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0BC5B0 7F087A80 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0BC5B4 7F087A84 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0BC5B8 7F087A88 C4520024 */ lwc1 $f18, 0x24($v0) +/* 0BC5BC 7F087A8C 10000028 */ b .L7F087B30 +/* 0BC5C0 7F087A90 E7B20064 */ swc1 $f18, 0x64($sp) +.L7F087A94: +/* 0BC5C4 7F087A94 8DE10000 */ lw $at, ($t7) +/* 0BC5C8 7F087A98 27A6004C */ addiu $a2, $sp, 0x4c +/* 0BC5CC 7F087A9C 24430488 */ addiu $v1, $v0, 0x488 +/* 0BC5D0 7F087AA0 ACC10000 */ sw $at, ($a2) +/* 0BC5D4 7F087AA4 8DE80004 */ lw $t0, 4($t7) +/* 0BC5D8 7F087AA8 2464002C */ addiu $a0, $v1, 0x2c +/* 0BC5DC 7F087AAC 24650038 */ addiu $a1, $v1, 0x38 +/* 0BC5E0 7F087AB0 ACC80004 */ sw $t0, 4($a2) +/* 0BC5E4 7F087AB4 8DE10008 */ lw $at, 8($t7) +/* 0BC5E8 7F087AB8 ACC10008 */ sw $at, 8($a2) +/* 0BC5EC 7F087ABC 8C4900D8 */ lw $t1, 0xd8($v0) +/* 0BC5F0 7F087AC0 55200006 */ bnezl $t1, .L7F087ADC +/* 0BC5F4 7F087AC4 44806000 */ mtc1 $zero, $f12 +/* 0BC5F8 7F087AC8 0FC271F1 */ jal sub_GAME_7F09C7C4 +/* 0BC5FC 7F087ACC AFA30058 */ sw $v1, 0x58($sp) +/* 0BC600 7F087AD0 10000005 */ b .L7F087AE8 +/* 0BC604 7F087AD4 8FA30058 */ lw $v1, 0x58($sp) +/* 0BC608 7F087AD8 44806000 */ mtc1 $zero, $f12 +.L7F087ADC: +/* 0BC60C 7F087ADC 0C000EC1 */ jal video_related_9 +/* 0BC610 7F087AE0 AFA30058 */ sw $v1, 0x58($sp) +/* 0BC614 7F087AE4 8FA30058 */ lw $v1, 0x58($sp) +.L7F087AE8: +/* 0BC618 7F087AE8 C464002C */ lwc1 $f4, 0x2c($v1) +/* 0BC61C 7F087AEC E7A40074 */ swc1 $f4, 0x74($sp) +/* 0BC620 7F087AF0 C4660030 */ lwc1 $f6, 0x30($v1) +/* 0BC624 7F087AF4 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BC628 7F087AF8 C4680034 */ lwc1 $f8, 0x34($v1) +/* 0BC62C 7F087AFC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0BC630 7F087B00 C46A0038 */ lwc1 $f10, 0x38($v1) +/* 0BC634 7F087B04 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0BC638 7F087B08 C472003C */ lwc1 $f18, 0x3c($v1) +/* 0BC63C 7F087B0C E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0BC640 7F087B10 C4640040 */ lwc1 $f4, 0x40($v1) +/* 0BC644 7F087B14 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0BC648 7F087B18 C4660044 */ lwc1 $f6, 0x44($v1) +/* 0BC64C 7F087B1C E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0BC650 7F087B20 C4680048 */ lwc1 $f8, 0x48($v1) +/* 0BC654 7F087B24 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0BC658 7F087B28 C46A004C */ lwc1 $f10, 0x4c($v1) +/* 0BC65C 7F087B2C E7AA0064 */ swc1 $f10, 0x64($sp) +.L7F087B30: +/* 0BC660 7F087B30 27A40074 */ addiu $a0, $sp, 0x74 +/* 0BC664 7F087B34 27A50068 */ addiu $a1, $sp, 0x68 +/* 0BC668 7F087B38 0FC21DB1 */ jal sub_GAME_7F0876C4 +/* 0BC66C 7F087B3C 27A6005C */ addiu $a2, $sp, 0x5c +/* 0BC670 7F087B40 27A40034 */ addiu $a0, $sp, 0x34 +/* 0BC674 7F087B44 0FC1A064 */ jal sub_GAME_7F068190 +/* 0BC678 7F087B48 27A50040 */ addiu $a1, $sp, 0x40 +/* 0BC67C 7F087B4C C7A00048 */ lwc1 $f0, 0x48($sp) +/* 0BC680 7F087B50 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0BC684 7F087B54 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0BC688 7F087B58 46000102 */ mul.s $f4, $f0, $f0 +/* 0BC68C 7F087B5C E7B20030 */ swc1 $f18, 0x30($sp) +/* 0BC690 7F087B60 46021182 */ mul.s $f6, $f2, $f2 +/* 0BC694 7F087B64 0C007DF8 */ jal sqrtf +/* 0BC698 7F087B68 46062300 */ add.s $f12, $f4, $f6 +/* 0BC69C 7F087B6C 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees +/* 0BC6A0 7F087B70 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0BC6A4 7F087B74 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BC6A8 7F087B78 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0BC6AC 7F087B7C 0FC16A8C */ jal atan2f +/* 0BC6B0 7F087B80 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 0BC6B4 7F087B84 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0BC6B8 7F087B88 3C018005 */ lui $at, %hi(D_8005526C) +/* 0BC6BC 7F087B8C C42A526C */ lwc1 $f10, %lo(D_8005526C)($at) +/* 0BC6C0 7F087B90 46080080 */ add.s $f2, $f0, $f8 +/* 0BC6C4 7F087B94 3C018005 */ lui $at, %hi(D_80055270) +/* 0BC6C8 7F087B98 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BC6CC 7F087B9C 4602503E */ c.le.s $f10, $f2 +/* 0BC6D0 7F087BA0 46001406 */ mov.s $f16, $f2 +/* 0BC6D4 7F087BA4 45000003 */ bc1f .L7F087BB4 +/* 0BC6D8 7F087BA8 00000000 */ nop +/* 0BC6DC 7F087BAC C4325270 */ lwc1 $f18, %lo(D_80055270)($at) +/* 0BC6E0 7F087BB0 46121401 */ sub.s $f16, $f2, $f18 +.L7F087BB4: +/* 0BC6E4 7F087BB4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC6E8 7F087BB8 E5502A08 */ swc1 $f16, 0x2a08($t2) +/* 0BC6EC 7F087BBC C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BC6F0 7F087BC0 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 0BC6F4 7F087BC4 46007387 */ neg.s $f14, $f14 +/* 0BC6F8 7F087BC8 0FC16A8C */ jal atan2f +/* 0BC6FC 7F087BCC 46006307 */ neg.s $f12, $f12 +/* 0BC700 7F087BD0 3C018005 */ lui $at, %hi(D_80055274) +/* 0BC704 7F087BD4 C4245274 */ lwc1 $f4, %lo(D_80055274)($at) +/* 0BC708 7F087BD8 46000086 */ mov.s $f2, $f0 +/* 0BC70C 7F087BDC 3C018005 */ lui $at, %hi(D_80055278) +/* 0BC710 7F087BE0 4600203E */ c.le.s $f4, $f0 +/* 0BC714 7F087BE4 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BC718 7F087BE8 45000003 */ bc1f .L7F087BF8 +/* 0BC71C 7F087BEC 00000000 */ nop +/* 0BC720 7F087BF0 C4265278 */ lwc1 $f6, %lo(D_80055278)($at) +/* 0BC724 7F087BF4 46060081 */ sub.s $f2, $f0, $f6 +.L7F087BF8: +/* 0BC728 7F087BF8 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BC72C 7F087BFC E5622A0C */ swc1 $f2, 0x2a0c($t3) +/* 0BC730 7F087C00 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC734 7F087C04 8FA20080 */ lw $v0, 0x80($sp) +/* 0BC738 7F087C08 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0BC73C 7F087C0C 03E00008 */ jr $ra +/* 0BC740 7F087C10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { + s32 sp40; + s32 temp_a3; + void *temp_a0; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + s32 temp_v1_4; + s32 temp_v1_5; + s32 temp_v1_6; + s32 temp_v0; + s32 temp_ret; + void *phi_a0; + s32 phi_a3; + s32 phi_v1; + void *phi_a0_2; + s32 phi_a2; + s32 phi_v1_2; + s32 phi_a3_2; + s32 phi_v1_3; + void *phi_a0_3; + s32 phi_a2_2; + s32 phi_v1_4; + s32 phi_a3_3; + void *phi_a0_4; + s32 phi_a2_3; + s32 phi_v1_5; + s32 phi_a3_4; + void *phi_a0_5; + s32 phi_a2_4; + s32 phi_v1_6; + s32 phi_a3_5; + s32 phi_return; + + // Node 0 + sp40 = getSelectedFolderBond(); + temp_a3 = (arg2 * 4); + temp_a0 = (arg1->unk8 + temp_a3); + phi_a0 = temp_a0; + phi_a3 = temp_a3; + if (*temp_a0 != 0) + { + // Node 1 + *extract_id_from_object_structure_microcode(arg0, *temp_a0, arg1->unk8, temp_a3) = (s32) ((u32) (pPlayer->field_41C ^ 3) < 1U); + phi_a0 = (arg1->unk8 + sp1C); + phi_a3 = sp1C; + } + // Node 2 + phi_a0_2 = phi_a0; + phi_a2 = arg1->unk8; + phi_v1_2 = arg2; + phi_a3_2 = phi_a3; + if (phi_a0->unk4 != 0) + { + // Node 3 + temp_v1 = ((u32) (pPlayer->field_41C ^ 1) < 1U); + phi_v1 = temp_v1; + if (temp_v1 == 0) + { + // Node 4 + temp_v1_2 = ((u32) (pPlayer->field_41C ^ 6) < 1U); + phi_v1 = temp_v1_2; + if (temp_v1_2 == 0) + { + // Node 5 + temp_v1_3 = ((u32) (pPlayer->field_41C ^ 7) < 1U); + phi_v1 = temp_v1_3; + if (temp_v1_3 == 0) + { + // Node 6 + temp_v1_4 = ((u32) (pPlayer->field_41C ^ 8) < 1U); + phi_v1 = temp_v1_4; + if (temp_v1_4 != 0) + { + // Node 7 + phi_v1 = (0U < (u32) (sp40 ^ 1)); + } + } + } + } + // Node 8 + *extract_id_from_object_structure_microcode(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; + phi_a3_2 = sp1C; + } + // Node 9 + phi_a0_3 = phi_a0_2; + phi_a2_2 = phi_a2; + phi_v1_4 = phi_v1_2; + phi_a3_3 = phi_a3_2; + if (phi_a0_2->unk8 != 0) + { + // Node 10 + temp_v1_5 = ((u32) (pPlayer->field_41C ^ 5) < 1U); + phi_v1_3 = temp_v1_5; + if (temp_v1_5 == 0) + { + // Node 11 + temp_v1_6 = ((u32) (pPlayer->field_41C ^ 8) < 1U); + phi_v1_3 = temp_v1_6; + if (temp_v1_6 != 0) + { + // Node 12 + phi_v1_3 = ((u32) (sp40 ^ 1) < 1U); + } + } + // 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; + phi_a0_3 = (arg1->unk8 + sp1C); + phi_a2_2 = arg1->unk8; + phi_v1_4 = arg2; + phi_a3_3 = sp1C; + } + // Node 14 + phi_a0_4 = phi_a0_3; + phi_a2_3 = phi_a2_2; + phi_v1_5 = phi_v1_4; + phi_a3_4 = phi_a3_3; + 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) pPlayer->field_41C < 1U); + phi_a0_4 = (arg1->unk8 + sp1C); + phi_a2_3 = arg1->unk8; + phi_v1_5 = arg2; + phi_a3_4 = sp1C; + } + // Node 16 + phi_a0_5 = phi_a0_4; + phi_a2_4 = phi_a2_3; + phi_v1_6 = phi_v1_5; + phi_a3_5 = phi_a3_4; + 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) (pPlayer->field_41C ^ 2) < 1U); + phi_a0_5 = (arg1->unk8 + sp1C); + phi_a2_4 = arg1->unk8; + phi_v1_6 = arg2; + phi_a3_5 = sp1C; + } + // Node 18 + temp_v0 = (phi_v1_6 + 5); + phi_return = temp_v0; + 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 = (s32) ((u32) (pPlayer->field_41C ^ 4) < 1U); + phi_return = temp_ret; + } + // Node 20 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel seems_to_load_cuff_microcode +/* 0BC744 7F087C14 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0BC748 7F087C18 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC74C 7F087C1C AFA40048 */ sw $a0, 0x48($sp) +/* 0BC750 7F087C20 AFA5004C */ sw $a1, 0x4c($sp) +/* 0BC754 7F087C24 0FC0755B */ jal getSelectedFolderBond +/* 0BC758 7F087C28 AFA60050 */ sw $a2, 0x50($sp) +/* 0BC75C 7F087C2C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC760 7F087C30 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC764 7F087C34 AFA20040 */ sw $v0, 0x40($sp) +/* 0BC768 7F087C38 8DC60008 */ lw $a2, 8($t6) +/* 0BC76C 7F087C3C 00033880 */ sll $a3, $v1, 2 +/* 0BC770 7F087C40 00C72021 */ addu $a0, $a2, $a3 +/* 0BC774 7F087C44 8C850000 */ lw $a1, ($a0) +/* 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 +/* 0BC788 7F087C58 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC78C 7F087C5C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BC790 7F087C60 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BC794 7F087C64 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC798 7F087C68 8DF8041C */ lw $t8, 0x41c($t7) +/* 0BC79C 7F087C6C 3B190003 */ xori $t9, $t8, 3 +/* 0BC7A0 7F087C70 2F390001 */ sltiu $t9, $t9, 1 +/* 0BC7A4 7F087C74 AC590000 */ sw $t9, ($v0) +/* 0BC7A8 7F087C78 8FA8004C */ lw $t0, 0x4c($sp) +/* 0BC7AC 7F087C7C 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC7B0 7F087C80 8D060008 */ lw $a2, 8($t0) +/* 0BC7B4 7F087C84 00C72021 */ addu $a0, $a2, $a3 +/* 0BC7B8 7F087C88 8C890004 */ lw $t1, 4($a0) +.L7F087C8C: +/* 0BC7BC 7F087C8C 24620001 */ addiu $v0, $v1, 1 +/* 0BC7C0 7F087C90 00025080 */ sll $t2, $v0, 2 +/* 0BC7C4 7F087C94 11200021 */ beqz $t1, .L7F087D1C +/* 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 +/* 0BC7D8 7F087CA8 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC7DC 7F087CAC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0BC7E0 7F087CB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0BC7E4 7F087CB4 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC7E8 7F087CB8 8D84041C */ lw $a0, 0x41c($t4) +/* 0BC7EC 7F087CBC 38830001 */ xori $v1, $a0, 1 +/* 0BC7F0 7F087CC0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC7F4 7F087CC4 54600011 */ bnezl $v1, .L7F087D0C +/* 0BC7F8 7F087CC8 AC430000 */ sw $v1, ($v0) +/* 0BC7FC 7F087CCC 38830006 */ xori $v1, $a0, 6 +/* 0BC800 7F087CD0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC804 7F087CD4 5460000D */ bnezl $v1, .L7F087D0C +/* 0BC808 7F087CD8 AC430000 */ sw $v1, ($v0) +/* 0BC80C 7F087CDC 38830007 */ xori $v1, $a0, 7 +/* 0BC810 7F087CE0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC814 7F087CE4 54600009 */ bnezl $v1, .L7F087D0C +/* 0BC818 7F087CE8 AC430000 */ sw $v1, ($v0) +/* 0BC81C 7F087CEC 38830008 */ xori $v1, $a0, 8 +/* 0BC820 7F087CF0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC824 7F087CF4 50600005 */ beql $v1, $zero, .L7F087D0C +/* 0BC828 7F087CF8 AC430000 */ sw $v1, ($v0) +/* 0BC82C 7F087CFC 8FA30040 */ lw $v1, 0x40($sp) +/* 0BC830 7F087D00 386D0001 */ xori $t5, $v1, 1 +/* 0BC834 7F087D04 000D182B */ sltu $v1, $zero, $t5 +/* 0BC838 7F087D08 AC430000 */ sw $v1, ($v0) +.L7F087D0C: +/* 0BC83C 7F087D0C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC840 7F087D10 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC844 7F087D14 8DC60008 */ lw $a2, 8($t6) +/* 0BC848 7F087D18 00C72021 */ addu $a0, $a2, $a3 +.L7F087D1C: +/* 0BC84C 7F087D1C 8C8F0008 */ lw $t7, 8($a0) +/* 0BC850 7F087D20 24620002 */ addiu $v0, $v1, 2 +/* 0BC854 7F087D24 0002C080 */ sll $t8, $v0, 2 +/* 0BC858 7F087D28 11E00019 */ beqz $t7, .L7F087D90 +/* 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 +/* 0BC86C 7F087D3C 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC870 7F087D40 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BC874 7F087D44 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC878 7F087D48 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC87C 7F087D4C 8D04041C */ lw $a0, 0x41c($t0) +/* 0BC880 7F087D50 38830005 */ xori $v1, $a0, 5 +/* 0BC884 7F087D54 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC888 7F087D58 54600009 */ bnezl $v1, .L7F087D80 +/* 0BC88C 7F087D5C AC430000 */ sw $v1, ($v0) +/* 0BC890 7F087D60 38830008 */ xori $v1, $a0, 8 +/* 0BC894 7F087D64 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC898 7F087D68 50600005 */ beql $v1, $zero, .L7F087D80 +/* 0BC89C 7F087D6C AC430000 */ sw $v1, ($v0) +/* 0BC8A0 7F087D70 8FA30040 */ lw $v1, 0x40($sp) +/* 0BC8A4 7F087D74 38690001 */ xori $t1, $v1, 1 +/* 0BC8A8 7F087D78 2D230001 */ sltiu $v1, $t1, 1 +/* 0BC8AC 7F087D7C AC430000 */ sw $v1, ($v0) +.L7F087D80: +/* 0BC8B0 7F087D80 8FAA004C */ lw $t2, 0x4c($sp) +/* 0BC8B4 7F087D84 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC8B8 7F087D88 8D460008 */ lw $a2, 8($t2) +/* 0BC8BC 7F087D8C 00C72021 */ addu $a0, $a2, $a3 +.L7F087D90: +/* 0BC8C0 7F087D90 8C8B000C */ lw $t3, 0xc($a0) +/* 0BC8C4 7F087D94 24620003 */ addiu $v0, $v1, 3 +/* 0BC8C8 7F087D98 00026080 */ sll $t4, $v0, 2 +/* 0BC8CC 7F087D9C 1160000F */ beqz $t3, .L7F087DDC +/* 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 +/* 0BC8E0 7F087DB0 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC8E4 7F087DB4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BC8E8 7F087DB8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BC8EC 7F087DBC 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC8F0 7F087DC0 8DCF041C */ lw $t7, 0x41c($t6) +/* 0BC8F4 7F087DC4 2DF80001 */ sltiu $t8, $t7, 1 +/* 0BC8F8 7F087DC8 AC580000 */ sw $t8, ($v0) +/* 0BC8FC 7F087DCC 8FB9004C */ lw $t9, 0x4c($sp) +/* 0BC900 7F087DD0 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC904 7F087DD4 8F260008 */ lw $a2, 8($t9) +/* 0BC908 7F087DD8 00C72021 */ addu $a0, $a2, $a3 +.L7F087DDC: +/* 0BC90C 7F087DDC 8C880010 */ lw $t0, 0x10($a0) +/* 0BC910 7F087DE0 24620004 */ addiu $v0, $v1, 4 +/* 0BC914 7F087DE4 00024880 */ sll $t1, $v0, 2 +/* 0BC918 7F087DE8 11000010 */ beqz $t0, .L7F087E2C +/* 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 +/* 0BC92C 7F087DFC 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC930 7F087E00 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BC934 7F087E04 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BC938 7F087E08 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC93C 7F087E0C 8D6C041C */ lw $t4, 0x41c($t3) +/* 0BC940 7F087E10 398D0002 */ xori $t5, $t4, 2 +/* 0BC944 7F087E14 2DAD0001 */ sltiu $t5, $t5, 1 +/* 0BC948 7F087E18 AC4D0000 */ sw $t5, ($v0) +/* 0BC94C 7F087E1C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC950 7F087E20 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC954 7F087E24 8DC60008 */ lw $a2, 8($t6) +/* 0BC958 7F087E28 00C72021 */ addu $a0, $a2, $a3 +.L7F087E2C: +/* 0BC95C 7F087E2C 8C8F0014 */ lw $t7, 0x14($a0) +/* 0BC960 7F087E30 24620005 */ addiu $v0, $v1, 5 +/* 0BC964 7F087E34 0002C080 */ sll $t8, $v0, 2 +/* 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 +/* 0BC978 7F087E48 8F250000 */ lw $a1, ($t9) +/* 0BC97C 7F087E4C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BC980 7F087E50 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC984 7F087E54 8D09041C */ lw $t1, 0x41c($t0) +/* 0BC988 7F087E58 392A0004 */ xori $t2, $t1, 4 +/* 0BC98C 7F087E5C 2D4A0001 */ sltiu $t2, $t2, 1 +/* 0BC990 7F087E60 AC4A0000 */ sw $t2, ($v0) +.L7F087E64: +/* 0BC994 7F087E64 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC998 7F087E68 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0BC99C 7F087E6C 03E00008 */ jr $ra +/* 0BC9A0 7F087E70 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F087E74(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005527C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055280 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087E74 +/* 0BC9A4 7F087E74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC9A8 7F087E78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC9AC 7F087E7C 27BDFE08 */ addiu $sp, $sp, -0x1f8 +/* 0BC9B0 7F087E80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0BC9B4 7F087E84 AFA401F8 */ sw $a0, 0x1f8($sp) +/* 0BC9B8 7F087E88 8C4E01C8 */ lw $t6, 0x1c8($v0) +/* 0BC9BC 7F087E8C 51C001DE */ beql $t6, $zero, .L7F088608 +/* 0BC9C0 7F087E90 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BC9C4 7F087E94 8C4F0200 */ lw $t7, 0x200($v0) +/* 0BC9C8 7F087E98 3C198003 */ lui $t9, %hi(D_8003683C) +/* 0BC9CC 7F087E9C 2739683C */ addiu $t9, %lo(D_8003683C) # addiu $t9, $t9, 0x683c +/* 0BC9D0 7F087EA0 11E001D8 */ beqz $t7, .L7F088604 +/* 0BC9D4 7F087EA4 27B801B8 */ addiu $t8, $sp, 0x1b8 +/* 0BC9D8 7F087EA8 272B003C */ addiu $t3, $t9, 0x3c +.L7F087EAC: +/* 0BC9DC 7F087EAC 8F210000 */ lw $at, ($t9) +/* 0BC9E0 7F087EB0 2739000C */ addiu $t9, $t9, 0xc +/* 0BC9E4 7F087EB4 2718000C */ addiu $t8, $t8, 0xc +/* 0BC9E8 7F087EB8 AF01FFF4 */ sw $at, -0xc($t8) +/* 0BC9EC 7F087EBC 8F21FFF8 */ lw $at, -8($t9) +/* 0BC9F0 7F087EC0 AF01FFF8 */ sw $at, -8($t8) +/* 0BC9F4 7F087EC4 8F21FFFC */ lw $at, -4($t9) +/* 0BC9F8 7F087EC8 172BFFF8 */ bne $t9, $t3, .L7F087EAC +/* 0BC9FC 7F087ECC AF01FFFC */ sw $at, -4($t8) +/* 0BCA00 7F087ED0 8F210000 */ lw $at, ($t9) +/* 0BCA04 7F087ED4 3C0D8003 */ lui $t5, %hi(D_8003687C) +/* 0BCA08 7F087ED8 25AD687C */ addiu $t5, %lo(D_8003687C) # addiu $t5, $t5, 0x687c +/* 0BCA0C 7F087EDC AF010000 */ sw $at, ($t8) +/* 0BCA10 7F087EE0 8DA10000 */ lw $at, ($t5) +/* 0BCA14 7F087EE4 27AC016C */ addiu $t4, $sp, 0x16c +/* 0BCA18 7F087EE8 8DAF0004 */ lw $t7, 4($t5) +/* 0BCA1C 7F087EEC AD810000 */ sw $at, ($t4) +/* 0BCA20 7F087EF0 8DA10008 */ lw $at, 8($t5) +/* 0BCA24 7F087EF4 24040001 */ li $a0, 1 +/* 0BCA28 7F087EF8 AD8F0004 */ sw $t7, 4($t4) +/* 0BCA2C 7F087EFC 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0BCA30 7F087F00 AD810008 */ sw $at, 8($t4) +/* 0BCA34 7F087F04 AFA20160 */ sw $v0, 0x160($sp) +/* 0BCA38 7F087F08 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCA3C 7F087F0C 8C4A0008 */ lw $t2, 8($v0) +/* 0BCA40 7F087F10 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCA44 7F087F14 8D45000C */ lw $a1, 0xc($t2) +/* 0BCA48 7F087F18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BCA4C 7F087F1C 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCA50 7F087F20 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BCA54 7F087F24 AFA20158 */ sw $v0, 0x158($sp) +/* 0BCA58 7F087F28 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BCA5C 7F087F2C 44812000 */ mtc1 $at, $f4 +/* 0BCA60 7F087F30 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BCA64 7F087F34 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BCA68 7F087F38 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0BCA6C 7F087F3C 44813000 */ mtc1 $at, $f6 +/* 0BCA70 7F087F40 AFA20154 */ sw $v0, 0x154($sp) +/* 0BCA74 7F087F44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCA78 7F087F48 44814000 */ mtc1 $at, $f8 +/* 0BCA7C 7F087F4C 8D6611C4 */ lw $a2, 0x11c4($t3) +/* 0BCA80 7F087F50 3C073FBA */ lui $a3, (0x3FBA2E8C >> 16) # lui $a3, 0x3fba +/* 0BCA84 7F087F54 34E72E8C */ ori $a3, (0x3FBA2E8C & 0xFFFF) # ori $a3, $a3, 0x2e8c +/* 0BCA88 7F087F58 00402025 */ move $a0, $v0 +/* 0BCA8C 7F087F5C 27A50152 */ addiu $a1, $sp, 0x152 +/* 0BCA90 7F087F60 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0BCA94 7F087F64 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0BCA98 7F087F68 0C003FAC */ jal guPerspective +/* 0BCA9C 7F087F6C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BCAA0 7F087F70 8FA301F8 */ lw $v1, 0x1f8($sp) +/* 0BCAA4 7F087F74 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0BCAA8 7F087F78 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0BCAAC 7F087F7C AC790000 */ sw $t9, ($v1) +/* 0BCAB0 7F087F80 8FB80154 */ lw $t8, 0x154($sp) +/* 0BCAB4 7F087F84 3C01C140 */ li $at, 0xC1400000 # -12.000000 +/* 0BCAB8 7F087F88 44810000 */ mtc1 $at, $f0 +/* 0BCABC 7F087F8C 3C018000 */ lui $at, 0x8000 +/* 0BCAC0 7F087F90 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0BCAC4 7F087F94 03017021 */ addu $t6, $t8, $at +/* 0BCAC8 7F087F98 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0BCACC 7F087F9C AC6E0004 */ sw $t6, 4($v1) +/* 0BCAD0 7F087FA0 24670008 */ addiu $a3, $v1, 8 +/* 0BCAD4 7F087FA4 ACEC0000 */ sw $t4, ($a3) +/* 0BCAD8 7F087FA8 97AD0152 */ lhu $t5, 0x152($sp) +/* 0BCADC 7F087FAC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BCAE0 7F087FB0 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0BCAE4 7F087FB4 ACED0004 */ sw $t5, 4($a3) +/* 0BCAE8 7F087FB8 8D0F0000 */ lw $t7, ($t0) +/* 0BCAEC 7F087FBC 8FAB0158 */ lw $t3, 0x158($sp) +/* 0BCAF0 7F087FC0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BCAF4 7F087FC4 8DEA01CC */ lw $t2, 0x1cc($t7) +/* 0BCAF8 7F087FC8 24E90008 */ addiu $t1, $a3, 8 +/* 0BCAFC 7F087FCC 27A4016C */ addiu $a0, $sp, 0x16c +/* 0BCB00 7F087FD0 AD6A0000 */ sw $t2, ($t3) +/* 0BCB04 7F087FD4 8D020000 */ lw $v0, ($t0) +/* 0BCB08 7F087FD8 27A60178 */ addiu $a2, $sp, 0x178 +/* 0BCB0C 7F087FDC C444054C */ lwc1 $f4, 0x54c($v0) +/* 0BCB10 7F087FE0 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BCB14 7F087FE4 46002180 */ add.s $f6, $f4, $f0 +/* 0BCB18 7F087FE8 C4440544 */ lwc1 $f4, 0x544($v0) +/* 0BCB1C 7F087FEC 46065202 */ mul.s $f8, $f10, $f6 +/* 0BCB20 7F087FF0 C44A04A0 */ lwc1 $f10, 0x4a0($v0) +/* 0BCB24 7F087FF4 46005187 */ neg.s $f6, $f10 +/* 0BCB28 7F087FF8 46062282 */ mul.s $f10, $f4, $f6 +/* 0BCB2C 7F087FFC C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BCB30 7F088000 460A2180 */ add.s $f6, $f4, $f10 +/* 0BCB34 7F088004 46064100 */ add.s $f4, $f8, $f6 +/* 0BCB38 7F088008 E7A4016C */ swc1 $f4, 0x16c($sp) +/* 0BCB3C 7F08800C C4480490 */ lwc1 $f8, 0x490($v0) +/* 0BCB40 7F088010 C44A0548 */ lwc1 $f10, 0x548($v0) +/* 0BCB44 7F088014 46085180 */ add.s $f6, $f10, $f8 +/* 0BCB48 7F088018 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0BCB4C 7F08801C C44A054C */ lwc1 $f10, 0x54c($v0) +/* 0BCB50 7F088020 C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BCB54 7F088024 46005200 */ add.s $f8, $f10, $f0 +/* 0BCB58 7F088028 C44A0544 */ lwc1 $f10, 0x544($v0) +/* 0BCB5C 7F08802C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BCB60 7F088030 C4440498 */ lwc1 $f4, 0x498($v0) +/* 0BCB64 7F088034 46045202 */ mul.s $f8, $f10, $f4 +/* 0BCB68 7F088038 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BCB6C 7F08803C 46085100 */ add.s $f4, $f10, $f8 +/* 0BCB70 7F088040 44814000 */ mtc1 $at, $f8 +/* 0BCB74 7F088044 3C018005 */ lui $at, %hi(D_8005527C) +/* 0BCB78 7F088048 46043280 */ add.s $f10, $f6, $f4 +/* 0BCB7C 7F08804C E7AA0174 */ swc1 $f10, 0x174($sp) +/* 0BCB80 7F088050 C4460148 */ lwc1 $f6, 0x148($v0) +/* 0BCB84 7F088054 C42A527C */ lwc1 $f10, %lo(D_8005527C)($at) +/* 0BCB88 7F088058 AFA901F8 */ sw $t1, 0x1f8($sp) +/* 0BCB8C 7F08805C 46064101 */ sub.s $f4, $f8, $f6 +/* 0BCB90 7F088060 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BCB94 7F088064 44054000 */ mfc1 $a1, $f8 +/* 0BCB98 7F088068 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCB9C 7F08806C 00000000 */ nop +/* 0BCBA0 7F088070 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0BCBA4 7F088074 00000000 */ nop +/* 0BCBA8 7F088078 00402025 */ move $a0, $v0 +/* 0BCBAC 7F08807C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0BCBB0 7F088080 27A50178 */ addiu $a1, $sp, 0x178 +/* 0BCBB4 7F088084 8FB90160 */ lw $t9, 0x160($sp) +/* 0BCBB8 7F088088 8724000E */ lh $a0, 0xe($t9) +/* 0BCBBC 7F08808C 0004C180 */ sll $t8, $a0, 6 +/* 0BCBC0 7F088090 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0BCBC4 7F088094 03002025 */ move $a0, $t8 +/* 0BCBC8 7F088098 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCBCC 7F08809C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCBD0 7F0880A0 AFA20164 */ sw $v0, 0x164($sp) +/* 0BCBD4 7F0880A4 8FA50160 */ lw $a1, 0x160($sp) +/* 0BCBD8 7F0880A8 24060004 */ li $a2, 4 +/* 0BCBDC 7F0880AC 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 0BCBE0 7F0880B0 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCBE4 7F0880B4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0BCBE8 7F0880B8 8FAC0164 */ lw $t4, 0x164($sp) +/* 0BCBEC 7F0880BC 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0BCBF0 7F0880C0 27AE0178 */ addiu $t6, $sp, 0x178 +/* 0BCBF4 7F0880C4 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 0BCBF8 7F0880C8 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BCBFC 7F0880CC AFAC01C8 */ sw $t4, 0x1c8($sp) +/* 0BCC00 7F0880D0 0FC1BCBE */ jal subcalcmatrices +/* 0BCC04 7F0880D4 24A50230 */ addiu $a1, $a1, 0x230 +/* 0BCC08 7F0880D8 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BCC0C 7F0880DC 3C0B8008 */ lui $t3, %hi(watch_time_0) +/* 0BCC10 7F0880E0 8D6B9A24 */ lw $t3, %lo(watch_time_0)($t3) +/* 0BCC14 7F0880E4 8DAF0008 */ lw $t7, 8($t5) +/* 0BCC18 7F0880E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BCC1C 7F0880EC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BCC20 7F0880F0 8DEA0000 */ lw $t2, ($t7) +/* 0BCC24 7F0880F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCC28 7F0880F8 44810000 */ mtc1 $at, $f0 +/* 0BCC2C 7F0880FC 8D430004 */ lw $v1, 4($t2) +/* 0BCC30 7F088100 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0BCC34 7F088104 AFAB0090 */ sw $t3, 0x90($sp) +/* 0BCC38 7F088108 44812000 */ mtc1 $at, $f4 +/* 0BCC3C 7F08810C C4460258 */ lwc1 $f6, 0x258($v0) +/* 0BCC40 7F088110 46043383 */ div.s $f14, $f6, $f4 +/* 0BCC44 7F088114 460E003C */ c.lt.s $f0, $f14 +/* 0BCC48 7F088118 00000000 */ nop +/* 0BCC4C 7F08811C 45020003 */ bc1fl .L7F08812C +/* 0BCC50 7F088120 C46A0000 */ lwc1 $f10, ($v1) +/* 0BCC54 7F088124 46000386 */ mov.s $f14, $f0 +/* 0BCC58 7F088128 C46A0000 */ lwc1 $f10, ($v1) +.L7F08812C: +/* 0BCC5C 7F08812C C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC60 7F088130 C44401D4 */ lwc1 $f4, 0x1d4($v0) +/* 0BCC64 7F088134 8FA80164 */ lw $t0, 0x164($sp) +/* 0BCC68 7F088138 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCC6C 7F08813C 44808000 */ mtc1 $zero, $f16 +/* 0BCC70 7F088140 C5000030 */ lwc1 $f0, 0x30($t0) +/* 0BCC74 7F088144 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCC78 7F088148 44058000 */ mfc1 $a1, $f16 +/* 0BCC7C 7F08814C 44068000 */ mfc1 $a2, $f16 +/* 0BCC80 7F088150 44078000 */ mfc1 $a3, $f16 +/* 0BCC84 7F088154 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCC88 7F088158 46005201 */ sub.s $f8, $f10, $f0 +/* 0BCC8C 7F08815C 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCC90 7F088160 46002180 */ add.s $f6, $f4, $f0 +/* 0BCC94 7F088164 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0BCC98 7F088168 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC9C 7F08816C C46A0008 */ lwc1 $f10, 8($v1) +/* 0BCCA0 7F088170 C44601D8 */ lwc1 $f6, 0x1d8($v0) +/* 0BCCA4 7F088174 C5020034 */ lwc1 $f2, 0x34($t0) +/* 0BCCA8 7F088178 46085102 */ mul.s $f4, $f10, $f8 +/* 0BCCAC 7F08817C 46043280 */ add.s $f10, $f6, $f4 +/* 0BCCB0 7F088180 46025201 */ sub.s $f8, $f10, $f2 +/* 0BCCB4 7F088184 460E4182 */ mul.s $f6, $f8, $f14 +/* 0BCCB8 7F088188 46023100 */ add.s $f4, $f6, $f2 +/* 0BCCBC 7F08818C E7A400B8 */ swc1 $f4, 0xb8($sp) +/* 0BCCC0 7F088190 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCCC4 7F088194 C46A0004 */ lwc1 $f10, 4($v1) +/* 0BCCC8 7F088198 C44401DC */ lwc1 $f4, 0x1dc($v0) +/* 0BCCCC 7F08819C C50C0038 */ lwc1 $f12, 0x38($t0) +/* 0BCCD0 7F0881A0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCCD4 7F0881A4 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCCD8 7F0881A8 460C5201 */ sub.s $f8, $f10, $f12 +/* 0BCCDC 7F0881AC 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCCE0 7F0881B0 460C2180 */ add.s $f6, $f4, $f12 +/* 0BCCE4 7F0881B4 E7A600BC */ swc1 $f6, 0xbc($sp) +/* 0BCCE8 7F0881B8 C44A01E0 */ lwc1 $f10, 0x1e0($v0) +/* 0BCCEC 7F0881BC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BCCF0 7F0881C0 C44801E4 */ lwc1 $f8, 0x1e4($v0) +/* 0BCCF4 7F0881C4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BCCF8 7F0881C8 C44401E8 */ lwc1 $f4, 0x1e8($v0) +/* 0BCCFC 7F0881CC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0BCD00 7F0881D0 C44601EC */ lwc1 $f6, 0x1ec($v0) +/* 0BCD04 7F0881D4 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BCD08 7F0881D8 C44A01F0 */ lwc1 $f10, 0x1f0($v0) +/* 0BCD0C 7F0881DC E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0BCD10 7F0881E0 C44801F4 */ lwc1 $f8, 0x1f4($v0) +/* 0BCD14 7F0881E4 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0BCD18 7F0881E8 0FC16642 */ jal sub_GAME_7F059908 +/* 0BCD1C 7F0881EC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BCD20 7F0881F0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCD24 7F0881F4 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD28 7F0881F8 27A500FC */ addiu $a1, $sp, 0xfc +/* 0BCD2C 7F0881FC 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCD30 7F088200 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD34 7F088204 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BCD38 7F088208 27A400FC */ addiu $a0, $sp, 0xfc +/* 0BCD3C 7F08820C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD40 7F088210 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0BCD44 7F088214 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BCD48 7F088218 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD4C 7F08821C 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD50 7F088220 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD54 7F088224 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 0BCD58 7F088228 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD5C 7F08822C 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD60 7F088230 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD64 7F088234 8FA60168 */ lw $a2, 0x168($sp) +/* 0BCD68 7F088238 0FC16E82 */ jal quaternion_slerp +/* 0BCD6C 7F08823C 27A700C0 */ addiu $a3, $sp, 0xc0 +/* 0BCD70 7F088240 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0BCD74 7F088244 0FC16D8A */ jal quaternion_to_matrix +/* 0BCD78 7F088248 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD7C 7F08824C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BCD80 7F088250 0FC16266 */ jal matrix_4x4_set_position +/* 0BCD84 7F088254 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD88 7F088258 3C198008 */ lui $t9, %hi(pPlayer) +/* 0BCD8C 7F08825C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0BCD90 7F088260 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD94 7F088264 0FC1629F */ jal matrix_scalar_multiply +/* 0BCD98 7F088268 C72C0244 */ lwc1 $f12, 0x244($t9) +/* 0BCD9C 7F08826C 2403003C */ li $v1, 60 +/* 0BCDA0 7F088270 8FA40090 */ lw $a0, 0x90($sp) +/* 0BCDA4 7F088274 3C018005 */ lui $at, %hi(D_80055280) +/* 0BCDA8 7F088278 C4225280 */ lwc1 $f2, %lo(D_80055280)($at) +/* 0BCDAC 7F08827C 0083001A */ div $zero, $a0, $v1 +/* 0BCDB0 7F088280 0000C010 */ mfhi $t8 +/* 0BCDB4 7F088284 00001012 */ mflo $v0 +/* 0BCDB8 7F088288 44982000 */ mtc1 $t8, $f4 +/* 0BCDBC 7F08828C 44808000 */ mtc1 $zero, $f16 +/* 0BCDC0 7F088290 0043001A */ div $zero, $v0, $v1 +/* 0BCDC4 7F088294 00007010 */ mfhi $t6 +/* 0BCDC8 7F088298 00006012 */ mflo $t4 +/* 0BCDCC 7F08829C 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCDD0 7F0882A0 14600002 */ bnez $v1, .L7F0882AC +/* 0BCDD4 7F0882A4 00000000 */ nop +/* 0BCDD8 7F0882A8 0007000D */ break 7 +.L7F0882AC: +/* 0BCDDC 7F0882AC 2401FFFF */ li $at, -1 +/* 0BCDE0 7F0882B0 14610004 */ bne $v1, $at, .L7F0882C4 +/* 0BCDE4 7F0882B4 3C018000 */ lui $at, 0x8000 +/* 0BCDE8 7F0882B8 14810002 */ bne $a0, $at, .L7F0882C4 +/* 0BCDEC 7F0882BC 00000000 */ nop +/* 0BCDF0 7F0882C0 0006000D */ break 6 +.L7F0882C4: +/* 0BCDF4 7F0882C4 0183001A */ div $zero, $t4, $v1 +/* 0BCDF8 7F0882C8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCDFC 7F0882CC 44815000 */ mtc1 $at, $f10 +/* 0BCE00 7F0882D0 448E2000 */ mtc1 $t6, $f4 +/* 0BCE04 7F0882D4 00006810 */ mfhi $t5 +/* 0BCE08 7F0882D8 460A3203 */ div.s $f8, $f6, $f10 +/* 0BCE0C 7F0882DC 14600002 */ bnez $v1, .L7F0882E8 +/* 0BCE10 7F0882E0 00000000 */ nop +/* 0BCE14 7F0882E4 0007000D */ break 7 +.L7F0882E8: +/* 0BCE18 7F0882E8 2401FFFF */ li $at, -1 +/* 0BCE1C 7F0882EC 14610004 */ bne $v1, $at, .L7F088300 +/* 0BCE20 7F0882F0 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE24 7F0882F4 14410002 */ bne $v0, $at, .L7F088300 +/* 0BCE28 7F0882F8 00000000 */ nop +/* 0BCE2C 7F0882FC 0006000D */ break 6 +.L7F088300: +/* 0BCE30 7F088300 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE34 7F088304 8FAB0160 */ lw $t3, 0x160($sp) +/* 0BCE38 7F088308 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCE3C 7F08830C 46083280 */ add.s $f10, $f6, $f8 +/* 0BCE40 7F088310 44814000 */ mtc1 $at, $f8 +/* 0BCE44 7F088314 46005107 */ neg.s $f4, $f10 +/* 0BCE48 7F088318 448D5000 */ mtc1 $t5, $f10 +/* 0BCE4C 7F08831C 46022182 */ mul.s $f6, $f4, $f2 +/* 0BCE50 7F088320 46805120 */ cvt.s.w $f4, $f10 +/* 0BCE54 7F088324 46083483 */ div.s $f18, $f6, $f8 +/* 0BCE58 7F088328 46002187 */ neg.s $f6, $f4 +/* 0BCE5C 7F08832C 46023202 */ mul.s $f8, $f6, $f2 +/* 0BCE60 7F088330 4610903C */ c.lt.s $f18, $f16 +/* 0BCE64 7F088334 46009306 */ mov.s $f12, $f18 +/* 0BCE68 7F088338 14600002 */ bnez $v1, .L7F088344 +/* 0BCE6C 7F08833C 00000000 */ nop +/* 0BCE70 7F088340 0007000D */ break 7 +.L7F088344: +/* 0BCE74 7F088344 2401FFFF */ li $at, -1 +/* 0BCE78 7F088348 14610004 */ bne $v1, $at, .L7F08835C +/* 0BCE7C 7F08834C 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE80 7F088350 15810002 */ bne $t4, $at, .L7F08835C +/* 0BCE84 7F088354 00000000 */ nop +/* 0BCE88 7F088358 0006000D */ break 6 +.L7F08835C: +/* 0BCE8C 7F08835C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE90 7F088360 44815000 */ mtc1 $at, $f10 +/* 0BCE94 7F088364 44813000 */ mtc1 $at, $f6 +/* 0BCE98 7F088368 24010E10 */ li $at, 3600 +/* 0BCE9C 7F08836C 0041001A */ div $zero, $v0, $at +/* 0BCEA0 7F088370 00007812 */ mflo $t7 +/* 0BCEA4 7F088374 2401000C */ li $at, 12 +/* 0BCEA8 7F088378 460A4103 */ div.s $f4, $f8, $f10 +/* 0BCEAC 7F08837C 01E1001A */ div $zero, $t7, $at +/* 0BCEB0 7F088380 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEB4 7F088384 00005010 */ mfhi $t2 +/* 0BCEB8 7F088388 448A3000 */ mtc1 $t2, $f6 +/* 0BCEBC 7F08838C 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0BCEC0 7F088390 46082280 */ add.s $f10, $f4, $f8 +/* 0BCEC4 7F088394 46803120 */ cvt.s.w $f4, $f6 +/* 0BCEC8 7F088398 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0BCECC 7F08839C 46005386 */ mov.s $f14, $f10 +/* 0BCED0 7F0883A0 46002207 */ neg.s $f8, $f4 +/* 0BCED4 7F0883A4 44812000 */ mtc1 $at, $f4 +/* 0BCED8 7F0883A8 46024182 */ mul.s $f6, $f8, $f2 +/* 0BCEDC 7F0883AC 46043203 */ div.s $f8, $f6, $f4 +/* 0BCEE0 7F0883B0 44813000 */ mtc1 $at, $f6 +/* 0BCEE4 7F0883B4 3C014434 */ li $at, 0x44340000 # 720.000000 +/* 0BCEE8 7F0883B8 46065103 */ div.s $f4, $f10, $f6 +/* 0BCEEC 7F0883BC 44813000 */ mtc1 $at, $f6 +/* 0BCEF0 7F0883C0 46044280 */ add.s $f10, $f8, $f4 +/* 0BCEF4 7F0883C4 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEF8 7F0883C8 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0BCEFC 7F0883CC 46085100 */ add.s $f4, $f10, $f8 +/* 0BCF00 7F0883D0 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BCF04 7F0883D4 46002006 */ mov.s $f0, $f4 +/* 0BCF08 7F0883D8 45000006 */ bc1f .L7F0883F4 +/* 0BCF0C 7F0883DC C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0BCF10 7F0883E0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883E4: +/* 0BCF14 7F0883E4 4610603C */ c.lt.s $f12, $f16 +/* 0BCF18 7F0883E8 00000000 */ nop +/* 0BCF1C 7F0883EC 4503FFFD */ bc1tl .L7F0883E4 +/* 0BCF20 7F0883F0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883F4: +/* 0BCF24 7F0883F4 4610303C */ c.lt.s $f6, $f16 +/* 0BCF28 7F0883F8 00000000 */ nop +/* 0BCF2C 7F0883FC 45020007 */ bc1fl .L7F08841C +/* 0BCF30 7F088400 4610503C */ c.lt.s $f10, $f16 +/* 0BCF34 7F088404 46027380 */ add.s $f14, $f14, $f2 +.L7F088408: +/* 0BCF38 7F088408 4610703C */ c.lt.s $f14, $f16 +/* 0BCF3C 7F08840C 00000000 */ nop +/* 0BCF40 7F088410 4503FFFD */ bc1tl .L7F088408 +/* 0BCF44 7F088414 46027380 */ add.s $f14, $f14, $f2 +/* 0BCF48 7F088418 4610503C */ c.lt.s $f10, $f16 +.L7F08841C: +/* 0BCF4C 7F08841C 00000000 */ nop +/* 0BCF50 7F088420 45020007 */ bc1fl .L7F088440 +/* 0BCF54 7F088424 8D790008 */ lw $t9, 8($t3) +/* 0BCF58 7F088428 46020000 */ add.s $f0, $f0, $f2 +.L7F08842C: +/* 0BCF5C 7F08842C 4610003C */ c.lt.s $f0, $f16 +/* 0BCF60 7F088430 00000000 */ nop +/* 0BCF64 7F088434 4503FFFD */ bc1tl .L7F08842C +/* 0BCF68 7F088438 46020000 */ add.s $f0, $f0, $f2 +/* 0BCF6C 7F08843C 8D790008 */ lw $t9, 8($t3) +.L7F088440: +/* 0BCF70 7F088440 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCF74 7F088444 44050000 */ mfc1 $a1, $f0 +/* 0BCF78 7F088448 8F380000 */ lw $t8, ($t9) +/* 0BCF7C 7F08844C 24C60040 */ addiu $a2, $a2, 0x40 +/* 0BCF80 7F088450 8F040004 */ lw $a0, 4($t8) +/* 0BCF84 7F088454 E7AE0098 */ swc1 $f14, 0x98($sp) +/* 0BCF88 7F088458 E7AC009C */ swc1 $f12, 0x9c($sp) +/* 0BCF8C 7F08845C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCF90 7F088460 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCF94 7F088464 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCF98 7F088468 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCF9C 7F08846C 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFA0 7F088470 8FAE0160 */ lw $t6, 0x160($sp) +/* 0BCFA4 7F088474 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 0BCFA8 7F088478 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFAC 7F08847C 8DCC0008 */ lw $t4, 8($t6) +/* 0BCFB0 7F088480 44057000 */ mfc1 $a1, $f14 +/* 0BCFB4 7F088484 24C60080 */ addiu $a2, $a2, 0x80 +/* 0BCFB8 7F088488 8D8D0004 */ lw $t5, 4($t4) +/* 0BCFBC 7F08848C 8DA40004 */ lw $a0, 4($t5) +/* 0BCFC0 7F088490 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFC4 7F088494 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFC8 7F088498 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCFCC 7F08849C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCFD0 7F0884A0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFD4 7F0884A4 8FAF0160 */ lw $t7, 0x160($sp) +/* 0BCFD8 7F0884A8 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 0BCFDC 7F0884AC 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFE0 7F0884B0 8DEA0008 */ lw $t2, 8($t7) +/* 0BCFE4 7F0884B4 44056000 */ mfc1 $a1, $f12 +/* 0BCFE8 7F0884B8 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 0BCFEC 7F0884BC 8D4B0008 */ lw $t3, 8($t2) +/* 0BCFF0 7F0884C0 8D640004 */ lw $a0, 4($t3) +/* 0BCFF4 7F0884C4 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFF8 7F0884C8 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFFC 7F0884CC 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD000 7F0884D0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD004 7F0884D4 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD008 7F0884D8 8FB801F8 */ lw $t8, 0x1f8($sp) +/* 0BD00C 7F0884DC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BD010 7F0884E0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD014 7F0884E4 24190003 */ li $t9, 3 +/* 0BD018 7F0884E8 240E0004 */ li $t6, 4 +/* 0BD01C 7F0884EC AFB901C0 */ sw $t9, 0x1c0($sp) +/* 0BD020 7F0884F0 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0BD024 7F0884F4 AFAE01E8 */ sw $t6, 0x1e8($sp) +/* 0BD028 7F0884F8 AFB801C4 */ sw $t8, 0x1c4($sp) +/* 0BD02C 7F0884FC 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BD030 7F088500 24010005 */ li $at, 5 +/* 0BD034 7F088504 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD038 7F088508 10610002 */ beq $v1, $at, .L7F088514 +/* 0BD03C 7F08850C 2401000C */ li $at, 12 +/* 0BD040 7F088510 14610003 */ bne $v1, $at, .L7F088520 +.L7F088514: +/* 0BD044 7F088514 240C00CD */ li $t4, 205 +/* 0BD048 7F088518 1000000C */ b .L7F08854C +/* 0BD04C 7F08851C AFAC01EC */ sw $t4, 0x1ec($sp) +.L7F088520: +/* 0BD050 7F088520 904F0FDC */ lbu $t7, 0xfdc($v0) +/* 0BD054 7F088524 904D0FDF */ lbu $t5, 0xfdf($v0) +/* 0BD058 7F088528 90590FDD */ lbu $t9, 0xfdd($v0) +/* 0BD05C 7F08852C 904C0FDE */ lbu $t4, 0xfde($v0) +/* 0BD060 7F088530 000F5600 */ sll $t2, $t7, 0x18 +/* 0BD064 7F088534 01AA5825 */ or $t3, $t5, $t2 +/* 0BD068 7F088538 0019C400 */ sll $t8, $t9, 0x10 +/* 0BD06C 7F08853C 01787025 */ or $t6, $t3, $t8 +/* 0BD070 7F088540 000C7A00 */ sll $t7, $t4, 8 +/* 0BD074 7F088544 01CF6825 */ or $t5, $t6, $t7 +/* 0BD078 7F088548 AFAD01EC */ sw $t5, 0x1ec($sp) +.L7F08854C: +/* 0BD07C 7F08854C 0FC1D1A1 */ jal subdraw +/* 0BD080 7F088550 24450230 */ addiu $a1, $v0, 0x230 +/* 0BD084 7F088554 8FAA01C4 */ lw $t2, 0x1c4($sp) +/* 0BD088 7F088558 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD08C 7F08855C AFAA01F8 */ sw $t2, 0x1f8($sp) +/* 0BD090 7F088560 8F2B0008 */ lw $t3, 8($t9) +/* 0BD094 7F088564 8D780008 */ lw $t8, 8($t3) +/* 0BD098 7F088568 8F0C0004 */ lw $t4, 4($t8) +/* 0BD09C 7F08856C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD0A0 7F088570 AFAC008C */ sw $t4, 0x8c($sp) +/* 0BD0A4 7F088574 AFA20048 */ sw $v0, 0x48($sp) +/* 0BD0A8 7F088578 8FA4008C */ lw $a0, 0x8c($sp) +/* 0BD0AC 7F08857C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0BD0B0 7F088580 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0B4 7F088584 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD0B8 7F088588 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD0BC 7F08858C 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0C0 7F088590 0FC16319 */ jal sub_GAME_7F058C64 +/* 0BD0C4 7F088594 00000000 */ nop +/* 0BD0C8 7F088598 27A4004C */ addiu $a0, $sp, 0x4c +/* 0BD0CC 7F08859C 0FC16327 */ jal sub_GAME_7F058C9C +/* 0BD0D0 7F0885A0 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD0D4 7F0885A4 0FC16322 */ jal sub_GAME_7F058C88 +/* 0BD0D8 7F0885A8 00000000 */ nop +/* 0BD0DC 7F0885AC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BD0E0 7F0885B0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BD0E4 7F0885B4 8FA401F8 */ lw $a0, 0x1f8($sp) +/* 0BD0E8 7F0885B8 8DC301C8 */ lw $v1, 0x1c8($t6) +/* 0BD0EC 7F0885BC 38660005 */ xori $a2, $v1, 5 +/* 0BD0F0 7F0885C0 2CC60001 */ sltiu $a2, $a2, 1 +/* 0BD0F4 7F0885C4 14C00003 */ bnez $a2, .L7F0885D4 +/* 0BD0F8 7F0885C8 00000000 */ nop +/* 0BD0FC 7F0885CC 3866000C */ xori $a2, $v1, 0xc +/* 0BD100 7F0885D0 2CC60001 */ sltiu $a2, $a2, 1 +.L7F0885D4: +/* 0BD104 7F0885D4 0FC2B28A */ jal sub_GAME_7F0ACA28 +/* 0BD108 7F0885D8 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD10C 7F0885DC 0FC16319 */ jal sub_GAME_7F058C64 +/* 0BD110 7F0885E0 AFA201F8 */ sw $v0, 0x1f8($sp) +/* 0BD114 7F0885E4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BD118 7F0885E8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BD11C 7F0885EC 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BD120 7F0885F0 8DE4023C */ lw $a0, 0x23c($t7) +/* 0BD124 7F0885F4 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 0BD128 7F0885F8 85A5000E */ lh $a1, 0xe($t5) +/* 0BD12C 7F0885FC 0FC16322 */ jal sub_GAME_7F058C88 +/* 0BD130 7F088600 00000000 */ nop +.L7F088604: +/* 0BD134 7F088604 8FBF002C */ lw $ra, 0x2c($sp) +.L7F088608: +/* 0BD138 7F088608 8FA201F8 */ lw $v0, 0x1f8($sp) +/* 0BD13C 7F08860C 27BD01F8 */ addiu $sp, $sp, 0x1f8 +/* 0BD140 7F088610 03E00008 */ jr $ra +/* 0BD144 7F088614 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005527C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055280 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087E74 +/* 0BD0B0 7F088540 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD0B4 7F088544 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD0B8 7F088548 27BDFE08 */ addiu $sp, $sp, -0x1f8 +/* 0BD0BC 7F08854C AFBF002C */ sw $ra, 0x2c($sp) +/* 0BD0C0 7F088550 AFA401F8 */ sw $a0, 0x1f8($sp) +/* 0BD0C4 7F088554 8C4E01C8 */ lw $t6, 0x1c8($v0) +/* 0BD0C8 7F088558 51C001E0 */ beql $t6, $zero, .Ljp7F088CDC +/* 0BD0CC 7F08855C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BD0D0 7F088560 8C4F0200 */ lw $t7, 0x200($v0) +/* 0BD0D4 7F088564 3C198003 */ lui $t9, %hi(D_8003683C) # $t9, 0x8003 +/* 0BD0D8 7F088568 2739687C */ addiu $t9, %lo(D_8003683C) # addiu $t9, $t9, 0x687c +/* 0BD0DC 7F08856C 11E001DA */ beqz $t7, .Ljp7F088CD8 +/* 0BD0E0 7F088570 27B801B8 */ addiu $t8, $sp, 0x1b8 +/* 0BD0E4 7F088574 272B003C */ addiu $t3, $t9, 0x3c +.Ljp7F088578: +/* 0BD0E8 7F088578 8F210000 */ lw $at, ($t9) +/* 0BD0EC 7F08857C 2739000C */ addiu $t9, $t9, 0xc +/* 0BD0F0 7F088580 2718000C */ addiu $t8, $t8, 0xc +/* 0BD0F4 7F088584 AF01FFF4 */ sw $at, -0xc($t8) +/* 0BD0F8 7F088588 8F21FFF8 */ lw $at, -8($t9) +/* 0BD0FC 7F08858C AF01FFF8 */ sw $at, -8($t8) +/* 0BD100 7F088590 8F21FFFC */ lw $at, -4($t9) +/* 0BD104 7F088594 172BFFF8 */ bne $t9, $t3, .Ljp7F088578 +/* 0BD108 7F088598 AF01FFFC */ sw $at, -4($t8) +/* 0BD10C 7F08859C 8F210000 */ lw $at, ($t9) +/* 0BD110 7F0885A0 3C0D8003 */ lui $t5, %hi(D_8003687C) # $t5, 0x8003 +/* 0BD114 7F0885A4 25AD68BC */ addiu $t5, %lo(D_8003687C) # addiu $t5, $t5, 0x68bc +/* 0BD118 7F0885A8 AF010000 */ sw $at, ($t8) +/* 0BD11C 7F0885AC 8DA10000 */ lw $at, ($t5) +/* 0BD120 7F0885B0 27AC016C */ addiu $t4, $sp, 0x16c +/* 0BD124 7F0885B4 8DAF0004 */ lw $t7, 4($t5) +/* 0BD128 7F0885B8 AD810000 */ sw $at, ($t4) +/* 0BD12C 7F0885BC 8DA10008 */ lw $at, 8($t5) +/* 0BD130 7F0885C0 24040001 */ li $a0, 1 +/* 0BD134 7F0885C4 AD8F0004 */ sw $t7, 4($t4) +/* 0BD138 7F0885C8 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0BD13C 7F0885CC AD810008 */ sw $at, 8($t4) +/* 0BD140 7F0885D0 AFA20160 */ sw $v0, 0x160($sp) +/* 0BD144 7F0885D4 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BD148 7F0885D8 8C4A0008 */ lw $t2, 8($v0) +/* 0BD14C 7F0885DC 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BD150 7F0885E0 8D45000C */ lw $a1, 0xc($t2) +/* 0BD154 7F0885E4 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0BD158 7F0885E8 24840230 */ addiu $a0, $a0, 0x230 +/* 0BD15C 7F0885EC 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD160 7F0885F0 AFA20158 */ sw $v0, 0x158($sp) +/* 0BD164 7F0885F4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BD168 7F0885F8 44812000 */ mtc1 $at, $f4 +/* 0BD16C 7F0885FC 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0BD170 7F088600 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0BD174 7F088604 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0BD178 7F088608 44813000 */ mtc1 $at, $f6 +/* 0BD17C 7F08860C AFA20154 */ sw $v0, 0x154($sp) +/* 0BD180 7F088610 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD184 7F088614 44814000 */ mtc1 $at, $f8 +/* 0BD188 7F088618 8D6611C4 */ lw $a2, 0x11c4($t3) +/* 0BD18C 7F08861C 3C073FBA */ lui $a3, (0x3FBA2E8C >> 16) # lui $a3, 0x3fba +/* 0BD190 7F088620 34E72E8C */ ori $a3, (0x3FBA2E8C & 0xFFFF) # ori $a3, $a3, 0x2e8c +/* 0BD194 7F088624 00402025 */ move $a0, $v0 +/* 0BD198 7F088628 27A50152 */ addiu $a1, $sp, 0x152 +/* 0BD19C 7F08862C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0BD1A0 7F088630 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0BD1A4 7F088634 0C003FBC */ jal guPerspective +/* 0BD1A8 7F088638 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BD1AC 7F08863C 8FA301F8 */ lw $v1, 0x1f8($sp) +/* 0BD1B0 7F088640 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0BD1B4 7F088644 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0BD1B8 7F088648 AC790000 */ sw $t9, ($v1) +/* 0BD1BC 7F08864C 8FB80154 */ lw $t8, 0x154($sp) +/* 0BD1C0 7F088650 3C01C140 */ li $at, 0xC1400000 # -12.000000 +/* 0BD1C4 7F088654 44810000 */ mtc1 $at, $f0 +/* 0BD1C8 7F088658 3C018000 */ lui $at, 0x8000 +/* 0BD1CC 7F08865C 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0BD1D0 7F088660 03017021 */ addu $t6, $t8, $at +/* 0BD1D4 7F088664 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0BD1D8 7F088668 AC6E0004 */ sw $t6, 4($v1) +/* 0BD1DC 7F08866C 24670008 */ addiu $a3, $v1, 8 +/* 0BD1E0 7F088670 ACEC0000 */ sw $t4, ($a3) +/* 0BD1E4 7F088674 97AD0152 */ lhu $t5, 0x152($sp) +/* 0BD1E8 7F088678 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BD1EC 7F08867C 2508A120 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5ee0 +/* 0BD1F0 7F088680 ACED0004 */ sw $t5, 4($a3) +/* 0BD1F4 7F088684 8D0F0000 */ lw $t7, ($t0) +/* 0BD1F8 7F088688 8FAB0158 */ lw $t3, 0x158($sp) +/* 0BD1FC 7F08868C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BD200 7F088690 8DEA01CC */ lw $t2, 0x1cc($t7) +/* 0BD204 7F088694 24E90008 */ addiu $t1, $a3, 8 +/* 0BD208 7F088698 27A4016C */ addiu $a0, $sp, 0x16c +/* 0BD20C 7F08869C AD6A0000 */ sw $t2, ($t3) +/* 0BD210 7F0886A0 8D020000 */ lw $v0, ($t0) +/* 0BD214 7F0886A4 27A60178 */ addiu $a2, $sp, 0x178 +/* 0BD218 7F0886A8 C444054C */ lwc1 $f4, 0x54c($v0) +/* 0BD21C 7F0886AC C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BD220 7F0886B0 46002180 */ add.s $f6, $f4, $f0 +/* 0BD224 7F0886B4 C4440544 */ lwc1 $f4, 0x544($v0) +/* 0BD228 7F0886B8 46065202 */ mul.s $f8, $f10, $f6 +/* 0BD22C 7F0886BC C44A04A0 */ lwc1 $f10, 0x4a0($v0) +/* 0BD230 7F0886C0 46005187 */ neg.s $f6, $f10 +/* 0BD234 7F0886C4 46062282 */ mul.s $f10, $f4, $f6 +/* 0BD238 7F0886C8 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BD23C 7F0886CC 460A2180 */ add.s $f6, $f4, $f10 +/* 0BD240 7F0886D0 46064100 */ add.s $f4, $f8, $f6 +/* 0BD244 7F0886D4 E7A4016C */ swc1 $f4, 0x16c($sp) +/* 0BD248 7F0886D8 C4480490 */ lwc1 $f8, 0x490($v0) +/* 0BD24C 7F0886DC C44A0548 */ lwc1 $f10, 0x548($v0) +/* 0BD250 7F0886E0 46085180 */ add.s $f6, $f10, $f8 +/* 0BD254 7F0886E4 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0BD258 7F0886E8 C44A054C */ lwc1 $f10, 0x54c($v0) +/* 0BD25C 7F0886EC C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BD260 7F0886F0 46005200 */ add.s $f8, $f10, $f0 +/* 0BD264 7F0886F4 C44A0544 */ lwc1 $f10, 0x544($v0) +/* 0BD268 7F0886F8 46082182 */ mul.s $f6, $f4, $f8 +/* 0BD26C 7F0886FC C4440498 */ lwc1 $f4, 0x498($v0) +/* 0BD270 7F088700 46045202 */ mul.s $f8, $f10, $f4 +/* 0BD274 7F088704 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BD278 7F088708 46085100 */ add.s $f4, $f10, $f8 +/* 0BD27C 7F08870C 44814000 */ mtc1 $at, $f8 +/* 0BD280 7F088710 3C018005 */ lui $at, %hi(D_8005527C) # $at, 0x8005 +/* 0BD284 7F088714 46043280 */ add.s $f10, $f6, $f4 +/* 0BD288 7F088718 E7AA0174 */ swc1 $f10, 0x174($sp) +/* 0BD28C 7F08871C C4460148 */ lwc1 $f6, 0x148($v0) +/* 0BD290 7F088720 C42A52AC */ lwc1 $f10, %lo(D_8005527C)($at) +/* 0BD294 7F088724 AFA901F8 */ sw $t1, 0x1f8($sp) +/* 0BD298 7F088728 46064101 */ sub.s $f4, $f8, $f6 +/* 0BD29C 7F08872C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BD2A0 7F088730 44054000 */ mfc1 $a1, $f8 +/* 0BD2A4 7F088734 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD2A8 7F088738 00000000 */ nop +/* 0BD2AC 7F08873C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 0BD2B0 7F088740 00000000 */ nop +/* 0BD2B4 7F088744 00402025 */ move $a0, $v0 +/* 0BD2B8 7F088748 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0BD2BC 7F08874C 27A50178 */ addiu $a1, $sp, 0x178 +/* 0BD2C0 7F088750 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD2C4 7F088754 8724000E */ lh $a0, 0xe($t9) +/* 0BD2C8 7F088758 0004C180 */ sll $t8, $a0, 6 +/* 0BD2CC 7F08875C 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0BD2D0 7F088760 03002025 */ move $a0, $t8 +/* 0BD2D4 7F088764 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BD2D8 7F088768 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BD2DC 7F08876C AFA20164 */ sw $v0, 0x164($sp) +/* 0BD2E0 7F088770 8FA50160 */ lw $a1, 0x160($sp) +/* 0BD2E4 7F088774 24060004 */ li $a2, 4 +/* 0BD2E8 7F088778 0FC220B8 */ jal seems_to_load_cuff_microcode +/* 0BD2EC 7F08877C 24840230 */ addiu $a0, $a0, 0x230 +/* 0BD2F0 7F088780 3C058008 */ lui $a1, %hi(pPlayer) # $a1, 0x8008 +/* 0BD2F4 7F088784 8FAC0164 */ lw $t4, 0x164($sp) +/* 0BD2F8 7F088788 8CA5A120 */ lw $a1, %lo(pPlayer)($a1) +/* 0BD2FC 7F08878C 27AE0178 */ addiu $t6, $sp, 0x178 +/* 0BD300 7F088790 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 0BD304 7F088794 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD308 7F088798 AFAC01C8 */ sw $t4, 0x1c8($sp) +/* 0BD30C 7F08879C 0FC1BE3A */ jal subcalcmatrices +/* 0BD310 7F0887A0 24A50230 */ addiu $a1, $a1, 0x230 +/* 0BD314 7F0887A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD318 7F0887A8 44810000 */ mtc1 $at, $f0 +/* 0BD31C 7F0887AC 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 0BD320 7F0887B0 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BD324 7F0887B4 C4269A64 */ lwc1 $f6, %lo(watch_time_0)($at) +/* 0BD328 7F0887B8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD32C 7F0887BC 8DAF0008 */ lw $t7, 8($t5) +/* 0BD330 7F0887C0 4600310D */ trunc.w.s $f4, $f6 +/* 0BD334 7F0887C4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD338 7F0887C8 8DEA0000 */ lw $t2, ($t7) +/* 0BD33C 7F0887CC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0BD340 7F0887D0 44192000 */ mfc1 $t9, $f4 +/* 0BD344 7F0887D4 8D430004 */ lw $v1, 4($t2) +/* 0BD348 7F0887D8 44814000 */ mtc1 $at, $f8 +/* 0BD34C 7F0887DC AFB90090 */ sw $t9, 0x90($sp) +/* 0BD350 7F0887E0 C44A0258 */ lwc1 $f10, 0x258($v0) +/* 0BD354 7F0887E4 46085383 */ div.s $f14, $f10, $f8 +/* 0BD358 7F0887E8 460E003C */ c.lt.s $f0, $f14 +/* 0BD35C 7F0887EC 00000000 */ nop +/* 0BD360 7F0887F0 45020003 */ bc1fl .Ljp7F088800 +/* 0BD364 7F0887F4 C4660000 */ lwc1 $f6, ($v1) +/* 0BD368 7F0887F8 46000386 */ mov.s $f14, $f0 +/* 0BD36C 7F0887FC C4660000 */ lwc1 $f6, ($v1) +.Ljp7F088800: +/* 0BD370 7F088800 C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD374 7F088804 C44801D4 */ lwc1 $f8, 0x1d4($v0) +/* 0BD378 7F088808 8FA80164 */ lw $t0, 0x164($sp) +/* 0BD37C 7F08880C 46043282 */ mul.s $f10, $f6, $f4 +/* 0BD380 7F088810 44808000 */ mtc1 $zero, $f16 +/* 0BD384 7F088814 C5000030 */ lwc1 $f0, 0x30($t0) +/* 0BD388 7F088818 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BD38C 7F08881C 44058000 */ mfc1 $a1, $f16 +/* 0BD390 7F088820 44068000 */ mfc1 $a2, $f16 +/* 0BD394 7F088824 44078000 */ mfc1 $a3, $f16 +/* 0BD398 7F088828 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BD39C 7F08882C 46003101 */ sub.s $f4, $f6, $f0 +/* 0BD3A0 7F088830 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BD3A4 7F088834 46004280 */ add.s $f10, $f8, $f0 +/* 0BD3A8 7F088838 E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0BD3AC 7F08883C C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD3B0 7F088840 C4660008 */ lwc1 $f6, 8($v1) +/* 0BD3B4 7F088844 C44A01D8 */ lwc1 $f10, 0x1d8($v0) +/* 0BD3B8 7F088848 C5020034 */ lwc1 $f2, 0x34($t0) +/* 0BD3BC 7F08884C 46043202 */ mul.s $f8, $f6, $f4 +/* 0BD3C0 7F088850 46085180 */ add.s $f6, $f10, $f8 +/* 0BD3C4 7F088854 46023101 */ sub.s $f4, $f6, $f2 +/* 0BD3C8 7F088858 460E2282 */ mul.s $f10, $f4, $f14 +/* 0BD3CC 7F08885C 46025200 */ add.s $f8, $f10, $f2 +/* 0BD3D0 7F088860 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0BD3D4 7F088864 C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD3D8 7F088868 C4660004 */ lwc1 $f6, 4($v1) +/* 0BD3DC 7F08886C C44801DC */ lwc1 $f8, 0x1dc($v0) +/* 0BD3E0 7F088870 C50C0038 */ lwc1 $f12, 0x38($t0) +/* 0BD3E4 7F088874 46043282 */ mul.s $f10, $f6, $f4 +/* 0BD3E8 7F088878 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BD3EC 7F08887C 460C3101 */ sub.s $f4, $f6, $f12 +/* 0BD3F0 7F088880 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BD3F4 7F088884 460C4280 */ add.s $f10, $f8, $f12 +/* 0BD3F8 7F088888 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0BD3FC 7F08888C C44601E0 */ lwc1 $f6, 0x1e0($v0) +/* 0BD400 7F088890 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BD404 7F088894 C44401E4 */ lwc1 $f4, 0x1e4($v0) +/* 0BD408 7F088898 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0BD40C 7F08889C C44801E8 */ lwc1 $f8, 0x1e8($v0) +/* 0BD410 7F0888A0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BD414 7F0888A4 C44A01EC */ lwc1 $f10, 0x1ec($v0) +/* 0BD418 7F0888A8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BD41C 7F0888AC C44601F0 */ lwc1 $f6, 0x1f0($v0) +/* 0BD420 7F0888B0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BD424 7F0888B4 C44401F4 */ lwc1 $f4, 0x1f4($v0) +/* 0BD428 7F0888B8 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0BD42C 7F0888BC 0FC1678A */ jal sub_GAME_7F059908 +/* 0BD430 7F0888C0 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BD434 7F0888C4 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD438 7F0888C8 0FC16360 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BD43C 7F0888CC 27A500FC */ addiu $a1, $sp, 0xfc +/* 0BD440 7F0888D0 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BD444 7F0888D4 0FC16360 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BD448 7F0888D8 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BD44C 7F0888DC 27A400FC */ addiu $a0, $sp, 0xfc +/* 0BD450 7F0888E0 0FC16E45 */ jal quaternion_set_rotation_around_xyzf +/* 0BD454 7F0888E4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0BD458 7F0888E8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BD45C 7F0888EC 0FC16E45 */ jal quaternion_set_rotation_around_xyzf +/* 0BD460 7F0888F0 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD464 7F0888F4 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BD468 7F0888F8 0FC170CC */ jal quaternion_ensure_shortest_path +/* 0BD46C 7F0888FC 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD470 7F088900 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BD474 7F088904 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD478 7F088908 8FA60168 */ lw $a2, 0x168($sp) +/* 0BD47C 7F08890C 0FC16FCA */ jal quaternion_slerp +/* 0BD480 7F088910 27A700C0 */ addiu $a3, $sp, 0xc0 +/* 0BD484 7F088914 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0BD488 7F088918 0FC16ED2 */ jal quaternion_to_matrix +/* 0BD48C 7F08891C 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD490 7F088920 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BD494 7F088924 0FC163AE */ jal matrix_4x4_set_position +/* 0BD498 7F088928 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD49C 7F08892C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0BD4A0 7F088930 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0BD4A4 7F088934 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD4A8 7F088938 0FC163E7 */ jal matrix_scalar_multiply +/* 0BD4AC 7F08893C C70C0244 */ lwc1 $f12, 0x244($t8) +/* 0BD4B0 7F088940 2403003C */ li $v1, 60 +/* 0BD4B4 7F088944 8FA40090 */ lw $a0, 0x90($sp) +/* 0BD4B8 7F088948 3C018005 */ lui $at, %hi(D_80055280) # $at, 0x8005 +/* 0BD4BC 7F08894C C42252B0 */ lwc1 $f2, %lo(D_80055280)($at) +/* 0BD4C0 7F088950 0083001A */ div $zero, $a0, $v1 +/* 0BD4C4 7F088954 00007010 */ mfhi $t6 +/* 0BD4C8 7F088958 00001012 */ mflo $v0 +/* 0BD4CC 7F08895C 448E4000 */ mtc1 $t6, $f8 +/* 0BD4D0 7F088960 44808000 */ mtc1 $zero, $f16 +/* 0BD4D4 7F088964 0043001A */ div $zero, $v0, $v1 +/* 0BD4D8 7F088968 00006010 */ mfhi $t4 +/* 0BD4DC 7F08896C 00006812 */ mflo $t5 +/* 0BD4E0 7F088970 468042A0 */ cvt.s.w $f10, $f8 +/* 0BD4E4 7F088974 14600002 */ bnez $v1, .Ljp7F088980 +/* 0BD4E8 7F088978 00000000 */ nop +/* 0BD4EC 7F08897C 0007000D */ break 7 +.Ljp7F088980: +/* 0BD4F0 7F088980 2401FFFF */ li $at, -1 +/* 0BD4F4 7F088984 14610004 */ bne $v1, $at, .Ljp7F088998 +/* 0BD4F8 7F088988 3C018000 */ lui $at, 0x8000 +/* 0BD4FC 7F08898C 14810002 */ bne $a0, $at, .Ljp7F088998 +/* 0BD500 7F088990 00000000 */ nop +/* 0BD504 7F088994 0006000D */ break 6 +.Ljp7F088998: +/* 0BD508 7F088998 01A3001A */ div $zero, $t5, $v1 +/* 0BD50C 7F08899C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD510 7F0889A0 44813000 */ mtc1 $at, $f6 +/* 0BD514 7F0889A4 448C4000 */ mtc1 $t4, $f8 +/* 0BD518 7F0889A8 00007810 */ mfhi $t7 +/* 0BD51C 7F0889AC 46065103 */ div.s $f4, $f10, $f6 +/* 0BD520 7F0889B0 14600002 */ bnez $v1, .Ljp7F0889BC +/* 0BD524 7F0889B4 00000000 */ nop +/* 0BD528 7F0889B8 0007000D */ break 7 +.Ljp7F0889BC: +/* 0BD52C 7F0889BC 2401FFFF */ li $at, -1 +/* 0BD530 7F0889C0 14610004 */ bne $v1, $at, .Ljp7F0889D4 +/* 0BD534 7F0889C4 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BD538 7F0889C8 14410002 */ bne $v0, $at, .Ljp7F0889D4 +/* 0BD53C 7F0889CC 00000000 */ nop +/* 0BD540 7F0889D0 0006000D */ break 6 +.Ljp7F0889D4: +/* 0BD544 7F0889D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD548 7F0889D8 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD54C 7F0889DC 468042A0 */ cvt.s.w $f10, $f8 +/* 0BD550 7F0889E0 46045180 */ add.s $f6, $f10, $f4 +/* 0BD554 7F0889E4 44812000 */ mtc1 $at, $f4 +/* 0BD558 7F0889E8 46003207 */ neg.s $f8, $f6 +/* 0BD55C 7F0889EC 448F3000 */ mtc1 $t7, $f6 +/* 0BD560 7F0889F0 46024282 */ mul.s $f10, $f8, $f2 +/* 0BD564 7F0889F4 46803220 */ cvt.s.w $f8, $f6 +/* 0BD568 7F0889F8 46045483 */ div.s $f18, $f10, $f4 +/* 0BD56C 7F0889FC 46004287 */ neg.s $f10, $f8 +/* 0BD570 7F088A00 46025102 */ mul.s $f4, $f10, $f2 +/* 0BD574 7F088A04 4610903C */ c.lt.s $f18, $f16 +/* 0BD578 7F088A08 46009306 */ mov.s $f12, $f18 +/* 0BD57C 7F088A0C 14600002 */ bnez $v1, .Ljp7F088A18 +/* 0BD580 7F088A10 00000000 */ nop +/* 0BD584 7F088A14 0007000D */ break 7 +.Ljp7F088A18: +/* 0BD588 7F088A18 2401FFFF */ li $at, -1 +/* 0BD58C 7F088A1C 14610004 */ bne $v1, $at, .Ljp7F088A30 +/* 0BD590 7F088A20 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BD594 7F088A24 15A10002 */ bne $t5, $at, .Ljp7F088A30 +/* 0BD598 7F088A28 00000000 */ nop +/* 0BD59C 7F088A2C 0006000D */ break 6 +.Ljp7F088A30: +/* 0BD5A0 7F088A30 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD5A4 7F088A34 44813000 */ mtc1 $at, $f6 +/* 0BD5A8 7F088A38 44815000 */ mtc1 $at, $f10 +/* 0BD5AC 7F088A3C 24010E10 */ li $at, 3600 +/* 0BD5B0 7F088A40 0041001A */ div $zero, $v0, $at +/* 0BD5B4 7F088A44 00005012 */ mflo $t2 +/* 0BD5B8 7F088A48 2401000C */ li $at, 12 +/* 0BD5BC 7F088A4C 46062203 */ div.s $f8, $f4, $f6 +/* 0BD5C0 7F088A50 0141001A */ div $zero, $t2, $at +/* 0BD5C4 7F088A54 460A9103 */ div.s $f4, $f18, $f10 +/* 0BD5C8 7F088A58 00005810 */ mfhi $t3 +/* 0BD5CC 7F088A5C 448B5000 */ mtc1 $t3, $f10 +/* 0BD5D0 7F088A60 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0BD5D4 7F088A64 46044180 */ add.s $f6, $f8, $f4 +/* 0BD5D8 7F088A68 46805220 */ cvt.s.w $f8, $f10 +/* 0BD5DC 7F088A6C E7A60040 */ swc1 $f6, 0x40($sp) +/* 0BD5E0 7F088A70 46003386 */ mov.s $f14, $f6 +/* 0BD5E4 7F088A74 46004107 */ neg.s $f4, $f8 +/* 0BD5E8 7F088A78 44814000 */ mtc1 $at, $f8 +/* 0BD5EC 7F088A7C 46022282 */ mul.s $f10, $f4, $f2 +/* 0BD5F0 7F088A80 46085103 */ div.s $f4, $f10, $f8 +/* 0BD5F4 7F088A84 44815000 */ mtc1 $at, $f10 +/* 0BD5F8 7F088A88 3C014434 */ li $at, 0x44340000 # 720.000000 +/* 0BD5FC 7F088A8C 460A3203 */ div.s $f8, $f6, $f10 +/* 0BD600 7F088A90 44815000 */ mtc1 $at, $f10 +/* 0BD604 7F088A94 46082180 */ add.s $f6, $f4, $f8 +/* 0BD608 7F088A98 460A9103 */ div.s $f4, $f18, $f10 +/* 0BD60C 7F088A9C C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0BD610 7F088AA0 46043200 */ add.s $f8, $f6, $f4 +/* 0BD614 7F088AA4 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0BD618 7F088AA8 46004006 */ mov.s $f0, $f8 +/* 0BD61C 7F088AAC 45000006 */ bc1f .Ljp7F088AC8 +/* 0BD620 7F088AB0 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BD624 7F088AB4 46026300 */ add.s $f12, $f12, $f2 +.Ljp7F088AB8: +/* 0BD628 7F088AB8 4610603C */ c.lt.s $f12, $f16 +/* 0BD62C 7F088ABC 00000000 */ nop +/* 0BD630 7F088AC0 4503FFFD */ bc1tl .Ljp7F088AB8 +/* 0BD634 7F088AC4 46026300 */ add.s $f12, $f12, $f2 +.Ljp7F088AC8: +/* 0BD638 7F088AC8 4610503C */ c.lt.s $f10, $f16 +/* 0BD63C 7F088ACC 00000000 */ nop +/* 0BD640 7F088AD0 45020007 */ bc1fl .Ljp7F088AF0 +/* 0BD644 7F088AD4 4610303C */ c.lt.s $f6, $f16 +/* 0BD648 7F088AD8 46027380 */ add.s $f14, $f14, $f2 +.Ljp7F088ADC: +/* 0BD64C 7F088ADC 4610703C */ c.lt.s $f14, $f16 +/* 0BD650 7F088AE0 00000000 */ nop +/* 0BD654 7F088AE4 4503FFFD */ bc1tl .Ljp7F088ADC +/* 0BD658 7F088AE8 46027380 */ add.s $f14, $f14, $f2 +/* 0BD65C 7F088AEC 4610303C */ c.lt.s $f6, $f16 +.Ljp7F088AF0: +/* 0BD660 7F088AF0 00000000 */ nop +/* 0BD664 7F088AF4 45020007 */ bc1fl .Ljp7F088B14 +/* 0BD668 7F088AF8 8F380008 */ lw $t8, 8($t9) +/* 0BD66C 7F088AFC 46020000 */ add.s $f0, $f0, $f2 +.Ljp7F088B00: +/* 0BD670 7F088B00 4610003C */ c.lt.s $f0, $f16 +/* 0BD674 7F088B04 00000000 */ nop +/* 0BD678 7F088B08 4503FFFD */ bc1tl .Ljp7F088B00 +/* 0BD67C 7F088B0C 46020000 */ add.s $f0, $f0, $f2 +/* 0BD680 7F088B10 8F380008 */ lw $t8, 8($t9) +.Ljp7F088B14: +/* 0BD684 7F088B14 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD688 7F088B18 44050000 */ mfc1 $a1, $f0 +/* 0BD68C 7F088B1C 8F0E0000 */ lw $t6, ($t8) +/* 0BD690 7F088B20 24C60040 */ addiu $a2, $a2, 0x40 +/* 0BD694 7F088B24 8DC40004 */ lw $a0, 4($t6) +/* 0BD698 7F088B28 E7AE0098 */ swc1 $f14, 0x98($sp) +/* 0BD69C 7F088B2C E7AC009C */ swc1 $f12, 0x9c($sp) +/* 0BD6A0 7F088B30 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD6A4 7F088B34 AFA60040 */ sw $a2, 0x40($sp) +/* 0BD6A8 7F088B38 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD6AC 7F088B3C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD6B0 7F088B40 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD6B4 7F088B44 8FAC0160 */ lw $t4, 0x160($sp) +/* 0BD6B8 7F088B48 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 0BD6BC 7F088B4C 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD6C0 7F088B50 8D8D0008 */ lw $t5, 8($t4) +/* 0BD6C4 7F088B54 44057000 */ mfc1 $a1, $f14 +/* 0BD6C8 7F088B58 24C60080 */ addiu $a2, $a2, 0x80 +/* 0BD6CC 7F088B5C 8DAF0004 */ lw $t7, 4($t5) +/* 0BD6D0 7F088B60 8DE40004 */ lw $a0, 4($t7) +/* 0BD6D4 7F088B64 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD6D8 7F088B68 AFA60040 */ sw $a2, 0x40($sp) +/* 0BD6DC 7F088B6C 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD6E0 7F088B70 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD6E4 7F088B74 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD6E8 7F088B78 8FAA0160 */ lw $t2, 0x160($sp) +/* 0BD6EC 7F088B7C C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 0BD6F0 7F088B80 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD6F4 7F088B84 8D4B0008 */ lw $t3, 8($t2) +/* 0BD6F8 7F088B88 44056000 */ mfc1 $a1, $f12 +/* 0BD6FC 7F088B8C 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 0BD700 7F088B90 8D790008 */ lw $t9, 8($t3) +/* 0BD704 7F088B94 8F240004 */ lw $a0, 4($t9) +/* 0BD708 7F088B98 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD70C 7F088B9C AFA60040 */ sw $a2, 0x40($sp) +/* 0BD710 7F088BA0 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD714 7F088BA4 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD718 7F088BA8 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD71C 7F088BAC 8FAE01F8 */ lw $t6, 0x1f8($sp) +/* 0BD720 7F088BB0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD724 7F088BB4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD728 7F088BB8 24180003 */ li $t8, 3 +/* 0BD72C 7F088BBC 240C0004 */ li $t4, 4 +/* 0BD730 7F088BC0 AFB801C0 */ sw $t8, 0x1c0($sp) +/* 0BD734 7F088BC4 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0BD738 7F088BC8 AFAC01E8 */ sw $t4, 0x1e8($sp) +/* 0BD73C 7F088BCC AFAE01C4 */ sw $t6, 0x1c4($sp) +/* 0BD740 7F088BD0 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BD744 7F088BD4 24010005 */ li $at, 5 +/* 0BD748 7F088BD8 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD74C 7F088BDC 10610002 */ beq $v1, $at, .Ljp7F088BE8 +/* 0BD750 7F088BE0 2401000C */ li $at, 12 +/* 0BD754 7F088BE4 14610003 */ bne $v1, $at, .Ljp7F088BF4 +.Ljp7F088BE8: +/* 0BD758 7F088BE8 240D00CD */ li $t5, 205 +/* 0BD75C 7F088BEC 1000000C */ b .Ljp7F088C20 +/* 0BD760 7F088BF0 AFAD01EC */ sw $t5, 0x1ec($sp) +.Ljp7F088BF4: +/* 0BD764 7F088BF4 904A0FDC */ lbu $t2, 0xfdc($v0) +/* 0BD768 7F088BF8 904F0FDF */ lbu $t7, 0xfdf($v0) +/* 0BD76C 7F088BFC 90580FDD */ lbu $t8, 0xfdd($v0) +/* 0BD770 7F088C00 904D0FDE */ lbu $t5, 0xfde($v0) +/* 0BD774 7F088C04 000A5E00 */ sll $t3, $t2, 0x18 +/* 0BD778 7F088C08 01EBC825 */ or $t9, $t7, $t3 +/* 0BD77C 7F088C0C 00187400 */ sll $t6, $t8, 0x10 +/* 0BD780 7F088C10 032E6025 */ or $t4, $t9, $t6 +/* 0BD784 7F088C14 000D5200 */ sll $t2, $t5, 8 +/* 0BD788 7F088C18 018A7825 */ or $t7, $t4, $t2 +/* 0BD78C 7F088C1C AFAF01EC */ sw $t7, 0x1ec($sp) +.Ljp7F088C20: +/* 0BD790 7F088C20 0FC1D31D */ jal subdraw +/* 0BD794 7F088C24 24450230 */ addiu $a1, $v0, 0x230 +/* 0BD798 7F088C28 8FAB01C4 */ lw $t3, 0x1c4($sp) +/* 0BD79C 7F088C2C 8FB80160 */ lw $t8, 0x160($sp) +/* 0BD7A0 7F088C30 AFAB01F8 */ sw $t3, 0x1f8($sp) +/* 0BD7A4 7F088C34 8F190008 */ lw $t9, 8($t8) +/* 0BD7A8 7F088C38 8F2E0008 */ lw $t6, 8($t9) +/* 0BD7AC 7F088C3C 8DCD0004 */ lw $t5, 4($t6) +/* 0BD7B0 7F088C40 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD7B4 7F088C44 AFAD008C */ sw $t5, 0x8c($sp) +/* 0BD7B8 7F088C48 AFA20048 */ sw $v0, 0x48($sp) +/* 0BD7BC 7F088C4C 8FA4008C */ lw $a0, 0x8c($sp) +/* 0BD7C0 7F088C50 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0BD7C4 7F088C54 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD7C8 7F088C58 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD7CC 7F088C5C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD7D0 7F088C60 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD7D4 7F088C64 0FC16461 */ jal sub_GAME_7F058C64 +/* 0BD7D8 7F088C68 00000000 */ nop +/* 0BD7DC 7F088C6C 27A4004C */ addiu $a0, $sp, 0x4c +/* 0BD7E0 7F088C70 0FC1646F */ jal sub_GAME_7F058C9C +/* 0BD7E4 7F088C74 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD7E8 7F088C78 0FC1646A */ jal sub_GAME_7F058C88 +/* 0BD7EC 7F088C7C 00000000 */ nop +/* 0BD7F0 7F088C80 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0BD7F4 7F088C84 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0BD7F8 7F088C88 8FA401F8 */ lw $a0, 0x1f8($sp) +/* 0BD7FC 7F088C8C 8D8301C8 */ lw $v1, 0x1c8($t4) +/* 0BD800 7F088C90 38660005 */ xori $a2, $v1, 5 +/* 0BD804 7F088C94 2CC60001 */ sltiu $a2, $a2, 1 +/* 0BD808 7F088C98 14C00003 */ bnez $a2, .Ljp7F088CA8 +/* 0BD80C 7F088C9C 00000000 */ nop +/* 0BD810 7F088CA0 3866000C */ xori $a2, $v1, 0xc +/* 0BD814 7F088CA4 2CC60001 */ sltiu $a2, $a2, 1 +.Ljp7F088CA8: +/* 0BD818 7F088CA8 0FC2B574 */ jal sub_GAME_7F0ACA28 +/* 0BD81C 7F088CAC 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD820 7F088CB0 0FC16461 */ jal sub_GAME_7F058C64 +/* 0BD824 7F088CB4 AFA201F8 */ sw $v0, 0x1f8($sp) +/* 0BD828 7F088CB8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0BD82C 7F088CBC 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BD830 7F088CC0 8FAF0160 */ lw $t7, 0x160($sp) +/* 0BD834 7F088CC4 8D44023C */ lw $a0, 0x23c($t2) +/* 0BD838 7F088CC8 0FC23174 */ jal sub_GAME_7F08BD48 +/* 0BD83C 7F088CCC 85E5000E */ lh $a1, 0xe($t7) +/* 0BD840 7F088CD0 0FC1646A */ jal sub_GAME_7F058C88 +/* 0BD844 7F088CD4 00000000 */ nop +.Ljp7F088CD8: +/* 0BD848 7F088CD8 8FBF002C */ lw $ra, 0x2c($sp) +.Ljp7F088CDC: +/* 0BD84C 7F088CDC 8FA201F8 */ lw $v0, 0x1f8($sp) +/* 0BD850 7F088CE0 27BD01F8 */ addiu $sp, $sp, 0x1f8 +/* 0BD854 7F088CE4 03E00008 */ jr $ra +/* 0BD858 7F088CE8 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +s32 sub_GAME_7F088618(void *arg0) { + ? sp78; + s32 spB8; + s32 spBC; + ? temp_ret; + void *temp_s0; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s0_4; + void *temp_s0_5; + void *temp_s0_6; + void *temp_s0_7; + void *temp_s0_8; + void *temp_s0_9; + void *temp_s0_10; + void *temp_s0_11; + + // Node 0 + sub_GAME_7F0A2F30((pPlayer + 0x12b8), 0x2e, 1, pPlayer->apparentarmour); + sub_GAME_7F0A3330((pPlayer + 0x19f8), (pPlayer + 0x800012b8), 0x2e); + sub_GAME_7F0A2F30((pPlayer + 0x1598), 0x2e, -1, pPlayer->apparenthealth); + sub_GAME_7F0A3330((pPlayer + 0x2128), (pPlayer + 0x80001598), 0x2e); + spBC = sub_GAME_7F0BD6E0(); + temp_ret = sub_GAME_7F0BD6E0(); + spB8 = temp_ret; + guOrtho(temp_ret, (-800.0f * D_800364CC), (800.0f * D_800364CC), (-600.0f * D_800364CC), (f32) (600.0f * D_800364CC), -100.0f, 1000.0f, 1.0f); + *arg0 = 0x1030040; + temp_s0 = (arg0 + 8); + arg0->unk4 = osVirtualToPhysical(spB8); + sub_GAME_7F059694(&sp78, 0.0f, &0x43FA0004, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f); + sub_GAME_7F058C9C(&sp78, spBC); + *temp_s0 = 0x1020040; + temp_s0_2 = (temp_s0 + 8); + temp_s0->unk4 = osVirtualToPhysical(spBC); + temp_s0_3 = (temp_s0_2 + 8); + *temp_s0_2 = 0xe7000000; + temp_s0_2->unk4 = 0; + temp_s0_4 = (temp_s0_3 + 8); + *temp_s0_3 = 0xba001402; + temp_s0_3->unk4 = 0; + temp_s0_5 = (temp_s0_4 + 8); + *temp_s0_4 = 0xb900031d; + temp_s0_4->unk4 = 0x5041c8; + temp_s0_6 = (temp_s0_5 + 8); + *temp_s0_5 = 0xb9000002; + *temp_s0_5 = 0; + temp_s0_7 = (temp_s0_6 + 8); + *temp_s0_6 = 0xfcffffff; + temp_s0_6->unk4 = 0xfffe793c; + temp_s0_8 = (temp_s0_7 + 8); + *temp_s0_7 = 0xfa000000; + temp_s0_7->unk4 = 0xe6e6e600; + temp_s0_9 = (temp_s0_8 + 8); + *temp_s0_8 = 0xb6000000; + temp_s0_8->unk4 = 0x3000; + *temp_s0_9 = 0x6000000; + temp_s0_10 = (temp_s0_9 + 8); + temp_s0_9->unk4 = (s32) (pPlayer + 0x800019f8); + *temp_s0_10 = 0x6000000; + temp_s0_11 = (temp_s0_10 + 8); + temp_s0_10->unk4 = (s32) (pPlayer + 0x80002128); + *temp_s0_11 = 0x1030040; + temp_s0_11->unk4 = osVirtualToPhysical(get_BONDdata_field_10D8(temp_s0_9, temp_s0_10, 0x6000000, temp_s0_6)); + return (temp_s0_11 + 8); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F088618 +/* 0BD148 7F088618 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0BD14C 7F08861C AFB20038 */ sw $s2, 0x38($sp) +/* 0BD150 7F088620 3C128008 */ lui $s2, %hi(pPlayer) +/* 0BD154 7F088624 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0BD158 7F088628 AFB10034 */ sw $s1, 0x34($sp) +/* 0BD15C 7F08862C 8E510000 */ lw $s1, ($s2) +/* 0BD160 7F088630 AFB00030 */ sw $s0, 0x30($sp) +/* 0BD164 7F088634 00808025 */ move $s0, $a0 +/* 0BD168 7F088638 AFBF003C */ sw $ra, 0x3c($sp) +/* 0BD16C 7F08863C 2405002E */ li $a1, 46 +/* 0BD170 7F088640 24060001 */ li $a2, 1 +/* 0BD174 7F088644 8E2700F0 */ lw $a3, 0xf0($s1) +/* 0BD178 7F088648 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BD17C 7F08864C 262412B8 */ addiu $a0, $s1, 0x12b8 +/* 0BD180 7F088650 8E510000 */ lw $s1, ($s2) +/* 0BD184 7F088654 3C018000 */ lui $at, (0x800012B8 >> 16) +/* 0BD188 7F088658 342112B8 */ ori $at, (0x800012B8 & 0xFFFF) # ori $at, $at, 0x12b8 +/* 0BD18C 7F08865C 2406002E */ li $a2, 46 +/* 0BD190 7F088660 02212821 */ addu $a1, $s1, $at +/* 0BD194 7F088664 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0BD198 7F088668 262419F8 */ addiu $a0, $s1, 0x19f8 +/* 0BD19C 7F08866C 8E510000 */ lw $s1, ($s2) +/* 0BD1A0 7F088670 2405002E */ li $a1, 46 +/* 0BD1A4 7F088674 2406FFFF */ li $a2, -1 +/* 0BD1A8 7F088678 26241598 */ addiu $a0, $s1, 0x1598 +/* 0BD1AC 7F08867C 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BD1B0 7F088680 8E2700EC */ lw $a3, 0xec($s1) +/* 0BD1B4 7F088684 8E510000 */ lw $s1, ($s2) +/* 0BD1B8 7F088688 3C018000 */ lui $at, (0x80001598 >> 16) +/* 0BD1BC 7F08868C 34211598 */ ori $at, (0x80001598 & 0xFFFF) # ori $at, $at, 0x1598 +/* 0BD1C0 7F088690 2406002E */ li $a2, 46 +/* 0BD1C4 7F088694 02212821 */ addu $a1, $s1, $at +/* 0BD1C8 7F088698 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0BD1CC 7F08869C 26242128 */ addiu $a0, $s1, 0x2128 +/* 0BD1D0 7F0886A0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1D4 7F0886A4 00000000 */ nop +/* 0BD1D8 7F0886A8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1DC 7F0886AC AFA200BC */ sw $v0, 0xbc($sp) +/* 0BD1E0 7F0886B0 3C018003 */ lui $at, %hi(D_800364CC) +/* 0BD1E4 7F0886B4 C42064CC */ lwc1 $f0, %lo(D_800364CC)($at) +/* 0BD1E8 7F0886B8 3C01C448 */ li $at, 0xC4480000 # -800.000000 +/* 0BD1EC 7F0886BC 44812000 */ mtc1 $at, $f4 +/* 0BD1F0 7F0886C0 3C014448 */ li $at, 0x44480000 # 800.000000 +/* 0BD1F4 7F0886C4 44814000 */ mtc1 $at, $f8 +/* 0BD1F8 7F0886C8 46002182 */ mul.s $f6, $f4, $f0 +/* 0BD1FC 7F0886CC 3C01C416 */ li $at, 0xC4160000 # -600.000000 +/* 0BD200 7F0886D0 44818000 */ mtc1 $at, $f16 +/* 0BD204 7F0886D4 46004282 */ mul.s $f10, $f8, $f0 +/* 0BD208 7F0886D8 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 0BD20C 7F0886DC 44812000 */ mtc1 $at, $f4 +/* 0BD210 7F0886E0 46008482 */ mul.s $f18, $f16, $f0 +/* 0BD214 7F0886E4 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0BD218 7F0886E8 44053000 */ mfc1 $a1, $f6 +/* 0BD21C 7F0886EC 46002182 */ mul.s $f6, $f4, $f0 +/* 0BD220 7F0886F0 44814000 */ mtc1 $at, $f8 +/* 0BD224 7F0886F4 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0BD228 7F0886F8 44065000 */ mfc1 $a2, $f10 +/* 0BD22C 7F0886FC 44815000 */ mtc1 $at, $f10 +/* 0BD230 7F088700 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD234 7F088704 44818000 */ mtc1 $at, $f16 +/* 0BD238 7F088708 44079000 */ mfc1 $a3, $f18 +/* 0BD23C 7F08870C AFA200B8 */ sw $v0, 0xb8($sp) +/* 0BD240 7F088710 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BD244 7F088714 00402025 */ move $a0, $v0 +/* 0BD248 7F088718 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BD24C 7F08871C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BD250 7F088720 0C005AF1 */ jal guOrtho +/* 0BD254 7F088724 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0BD258 7F088728 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103 +/* 0BD25C 7F08872C 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0BD260 7F088730 02008825 */ move $s1, $s0 +/* 0BD264 7F088734 AE2E0000 */ sw $t6, ($s1) +/* 0BD268 7F088738 8FA400B8 */ lw $a0, 0xb8($sp) +/* 0BD26C 7F08873C 0C003A2C */ jal osVirtualToPhysical +/* 0BD270 7F088740 26100008 */ addiu $s0, $s0, 8 +/* 0BD274 7F088744 44800000 */ mtc1 $zero, $f0 +/* 0BD278 7F088748 AE220004 */ sw $v0, 4($s1) +/* 0BD27C 7F08874C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BD280 7F088750 44819000 */ mtc1 $at, $f18 +/* 0BD284 7F088754 44050000 */ mfc1 $a1, $f0 +/* 0BD288 7F088758 44070000 */ mfc1 $a3, $f0 +/* 0BD28C 7F08875C 27A40078 */ addiu $a0, $sp, 0x78 +/* 0BD290 7F088760 3C0643FA */ lui $a2, %hi(0x43FA0004) # $a2, 0x43fa +/* 0BD294 7F088764 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BD298 7F088768 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0BD29C 7F08876C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0BD2A0 7F088770 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0BD2A4 7F088774 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0BD2A8 7F088778 0FC165A5 */ jal sub_GAME_7F059694 +/* 0BD2AC 7F08877C E7B20024 */ swc1 $f18, 0x24($sp) +/* 0BD2B0 7F088780 27A40078 */ addiu $a0, $sp, 0x78 +/* 0BD2B4 7F088784 0FC16327 */ jal sub_GAME_7F058C9C +/* 0BD2B8 7F088788 8FA500BC */ lw $a1, 0xbc($sp) +/* 0BD2BC 7F08878C 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 0BD2C0 7F088790 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0BD2C4 7F088794 02008825 */ move $s1, $s0 +/* 0BD2C8 7F088798 AE2F0000 */ sw $t7, ($s1) +/* 0BD2CC 7F08879C 8FA400BC */ lw $a0, 0xbc($sp) +/* 0BD2D0 7F0887A0 0C003A2C */ jal osVirtualToPhysical +/* 0BD2D4 7F0887A4 26100008 */ addiu $s0, $s0, 8 +/* 0BD2D8 7F0887A8 02001825 */ move $v1, $s0 +/* 0BD2DC 7F0887AC AE220004 */ sw $v0, 4($s1) +/* 0BD2E0 7F0887B0 26100008 */ addiu $s0, $s0, 8 +/* 0BD2E4 7F0887B4 3C18E700 */ lui $t8, 0xe700 +/* 0BD2E8 7F0887B8 02002025 */ move $a0, $s0 +/* 0BD2EC 7F0887BC AC780000 */ sw $t8, ($v1) +/* 0BD2F0 7F0887C0 AC600004 */ sw $zero, 4($v1) +/* 0BD2F4 7F0887C4 26100008 */ addiu $s0, $s0, 8 +/* 0BD2F8 7F0887C8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0BD2FC 7F0887CC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0BD300 7F0887D0 02002825 */ move $a1, $s0 +/* 0BD304 7F0887D4 AC990000 */ sw $t9, ($a0) +/* 0BD308 7F0887D8 AC800004 */ sw $zero, 4($a0) +/* 0BD30C 7F0887DC 26100008 */ addiu $s0, $s0, 8 +/* 0BD310 7F0887E0 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900 +/* 0BD314 7F0887E4 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50 +/* 0BD318 7F0887E8 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8 +/* 0BD31C 7F0887EC 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d +/* 0BD320 7F0887F0 02003025 */ move $a2, $s0 +/* 0BD324 7F0887F4 ACA80000 */ sw $t0, ($a1) +/* 0BD328 7F0887F8 ACA90004 */ sw $t1, 4($a1) +/* 0BD32C 7F0887FC 3C0AB900 */ lui $t2, (0xB9000002 >> 16) # lui $t2, 0xb900 +/* 0BD330 7F088800 354A0002 */ ori $t2, (0xB9000002 & 0xFFFF) # ori $t2, $t2, 2 +/* 0BD334 7F088804 26100008 */ addiu $s0, $s0, 8 +/* 0BD338 7F088808 ACCA0000 */ sw $t2, ($a2) +/* 0BD33C 7F08880C ACC00004 */ sw $zero, %lo(0x43FA0004)($a2) +/* 0BD340 7F088810 02003825 */ move $a3, $s0 +/* 0BD344 7F088814 26100008 */ addiu $s0, $s0, 8 +/* 0BD348 7F088818 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 0BD34C 7F08881C 3C0CFFFE */ lui $t4, (0xFFFE793C >> 16) # lui $t4, 0xfffe +/* 0BD350 7F088820 358C793C */ ori $t4, (0xFFFE793C & 0xFFFF) # ori $t4, $t4, 0x793c +/* 0BD354 7F088824 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 0BD358 7F088828 02001025 */ move $v0, $s0 +/* 0BD35C 7F08882C ACEB0000 */ sw $t3, ($a3) +/* 0BD360 7F088830 ACEC0004 */ sw $t4, 4($a3) +/* 0BD364 7F088834 26100008 */ addiu $s0, $s0, 8 +/* 0BD368 7F088838 3C0EE6E6 */ lui $t6, (0xE6E6E600 >> 16) # lui $t6, 0xe6e6 +/* 0BD36C 7F08883C 35CEE600 */ ori $t6, (0xE6E6E600 & 0xFFFF) # ori $t6, $t6, 0xe600 +/* 0BD370 7F088840 3C0DFA00 */ lui $t5, 0xfa00 +/* 0BD374 7F088844 02001825 */ move $v1, $s0 +/* 0BD378 7F088848 AC4D0000 */ sw $t5, ($v0) +/* 0BD37C 7F08884C AC4E0004 */ sw $t6, 4($v0) +/* 0BD380 7F088850 26100008 */ addiu $s0, $s0, 8 +/* 0BD384 7F088854 24183000 */ li $t8, 12288 +/* 0BD388 7F088858 3C0FB600 */ lui $t7, 0xb600 +/* 0BD38C 7F08885C 3C060600 */ lui $a2, 0x600 +/* 0BD390 7F088860 AC6F0000 */ sw $t7, ($v1) +/* 0BD394 7F088864 AC780004 */ sw $t8, 4($v1) +/* 0BD398 7F088868 02002025 */ move $a0, $s0 +/* 0BD39C 7F08886C AC860000 */ sw $a2, ($a0) +/* 0BD3A0 7F088870 8E590000 */ lw $t9, ($s2) +/* 0BD3A4 7F088874 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0BD3A8 7F088878 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0BD3AC 7F08887C 26100008 */ addiu $s0, $s0, 8 +/* 0BD3B0 7F088880 03214021 */ addu $t0, $t9, $at +/* 0BD3B4 7F088884 AC880004 */ sw $t0, 4($a0) +/* 0BD3B8 7F088888 02002825 */ move $a1, $s0 +/* 0BD3BC 7F08888C ACA60000 */ sw $a2, ($a1) +/* 0BD3C0 7F088890 8E490000 */ lw $t1, ($s2) +/* 0BD3C4 7F088894 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0BD3C8 7F088898 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0BD3CC 7F08889C 26100008 */ addiu $s0, $s0, 8 +/* 0BD3D0 7F0888A0 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0BD3D4 7F0888A4 01215021 */ addu $t2, $t1, $at +/* 0BD3D8 7F0888A8 ACAA0004 */ sw $t2, 4($a1) +/* 0BD3DC 7F0888AC 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0BD3E0 7F0888B0 02008825 */ move $s1, $s0 +/* 0BD3E4 7F0888B4 AE2B0000 */ sw $t3, ($s1) +/* 0BD3E8 7F0888B8 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0BD3EC 7F0888BC 26100008 */ addiu $s0, $s0, 8 +/* 0BD3F0 7F0888C0 0C003A2C */ jal osVirtualToPhysical +/* 0BD3F4 7F0888C4 00402025 */ move $a0, $v0 +/* 0BD3F8 7F0888C8 AE220004 */ sw $v0, 4($s1) +/* 0BD3FC 7F0888CC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0BD400 7F0888D0 02001025 */ move $v0, $s0 +/* 0BD404 7F0888D4 8FB00030 */ lw $s0, 0x30($sp) +/* 0BD408 7F0888D8 8FB20038 */ lw $s2, 0x38($sp) +/* 0BD40C 7F0888DC 8FB10034 */ lw $s1, 0x34($sp) +/* 0BD410 7F0888E0 03E00008 */ jr $ra +/* 0BD414 7F0888E4 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void mp_respawn_handler(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055284 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055288 +.word 0x3e2e147c /*0.17000002*/ +glabel D_8005528C +.word 0x3dccccd0 /*0.10000002*/ + +/*D:80055290*/ +glabel jpt_mpspawntype +.word mp_spawntype_spawn +.word mp_spawntype_weapon +.word mp_spawntype_ammo +.word mp_spawntype_intro_swirly +.word mp_spawntype_intro_anim +.word mp_spawntype_handcuff +.word mp_spawntype_intro_camera + +glabel D_800552AC +.word 0xb8d1b717 /*-0.000099999997*/ +.text +glabel mp_respawn_handler +/* 0BD418 7F0888E8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0BD41C 7F0888EC 3C0F8003 */ lui $t7, %hi(D_8003688C) +/* 0BD420 7F0888F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BD424 7F0888F4 AFB10018 */ sw $s1, 0x18($sp) +/* 0BD428 7F0888F8 AFB00014 */ sw $s0, 0x14($sp) +/* 0BD42C 7F0888FC 25EF688C */ addiu $t7, %lo(D_8003688C) # addiu $t7, $t7, 0x688c +/* 0BD430 7F088900 8DE10000 */ lw $at, ($t7) +/* 0BD434 7F088904 27AE004C */ addiu $t6, $sp, 0x4c +/* 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(ptr_setup_intro) +/* 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(ptr_setup_intro)($s0) +/* 0BD458 7F088928 0FC1E62E */ jal sub_GAME_7F0798B8 +/* 0BD45C 7F08892C 00000000 */ nop +/* 0BD460 7F088930 3C118008 */ lui $s1, %hi(pPlayer) +/* 0BD464 7F088934 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0BD468 7F088938 8E290000 */ lw $t1, ($s1) +/* 0BD46C 7F08893C 240C0001 */ li $t4, 1 +/* 0BD470 7F088940 24020007 */ li $v0, 7 +/* 0BD474 7F088944 AD2000D8 */ sw $zero, 0xd8($t1) +/* 0BD478 7F088948 8E2A0000 */ lw $t2, ($s1) +/* 0BD47C 7F08894C 240F0002 */ li $t7, 2 +/* 0BD480 7F088950 2404FFFF */ li $a0, -1 +/* 0BD484 7F088954 AD400428 */ sw $zero, 0x428($t2) +/* 0BD488 7F088958 8E2B0000 */ lw $t3, ($s1) +/* 0BD48C 7F08895C AD600424 */ sw $zero, 0x424($t3) +/* 0BD490 7F088960 8E2D0000 */ lw $t5, ($s1) +/* 0BD494 7F088964 ADAC0420 */ sw $t4, 0x420($t5) +/* 0BD498 7F088968 8E390000 */ lw $t9, ($s1) +/* 0BD49C 7F08896C AF2229B8 */ sw $v0, 0x29b8($t9) +/* 0BD4A0 7F088970 8E380000 */ lw $t8, ($s1) +/* 0BD4A4 7F088974 AF0229D4 */ sw $v0, 0x29d4($t8) +/* 0BD4A8 7F088978 8E2E0000 */ lw $t6, ($s1) +/* 0BD4AC 7F08897C ADC01064 */ sw $zero, 0x1064($t6) +/* 0BD4B0 7F088980 8E280000 */ lw $t0, ($s1) +/* 0BD4B4 7F088984 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0BD4B8 7F088988 AD0F1128 */ sw $t7, 0x1128($t0) +/* 0BD4BC 7F08898C 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0BD4C0 7F088990 2404FFFF */ li $a0, -1 +/* 0BD4C4 7F088994 0FC26919 */ jal get_num_players +/* 0BD4C8 7F088998 00000000 */ nop +/* 0BD4CC 7F08899C 28410002 */ slti $at, $v0, 2 +/* 0BD4D0 7F0889A0 14200008 */ bnez $at, .L7F0889C4 +/* 0BD4D4 7F0889A4 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 0BD4D8 7F0889A8 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 0BD4DC 7F0889AC 59200006 */ blezl $t1, .L7F0889C8 +/* 0BD4E0 7F0889B0 00001825 */ move $v1, $zero +/* 0BD4E4 7F0889B4 0FC1E43C */ jal sub_GAME_7F0790F0 +/* 0BD4E8 7F0889B8 00000000 */ nop +/* 0BD4EC 7F0889BC 10000002 */ b .L7F0889C8 +/* 0BD4F0 7F0889C0 00401825 */ move $v1, $v0 +.L7F0889C4: +/* 0BD4F4 7F0889C4 00001825 */ move $v1, $zero +.L7F0889C8: +/* 0BD4F8 7F0889C8 00035080 */ sll $t2, $v1, 2 +/* 0BD4FC 7F0889CC 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C28) +/* 0BD500 7F0889D0 004A1021 */ addu $v0, $v0, $t2 +/* 0BD504 7F0889D4 8C429C28 */ lw $v0, %lo(dword_CODE_bss_80079C28)($v0) +/* 0BD508 7F0889D8 C4440000 */ lwc1 $f4, ($v0) +/* 0BD50C 7F0889DC E7A4004C */ swc1 $f4, 0x4c($sp) +/* 0BD510 7F0889E0 C4460008 */ lwc1 $f6, 8($v0) +/* 0BD514 7F0889E4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0BD518 7F0889E8 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0BD51C 7F0889EC 8C440028 */ lw $a0, 0x28($v0) +/* 0BD520 7F0889F0 8FA60054 */ lw $a2, 0x54($sp) +/* 0BD524 7F0889F4 0FC20358 */ jal sub_GAME_7F080D60 +/* 0BD528 7F0889F8 AFA40044 */ sw $a0, 0x44($sp) +/* 0BD52C 7F0889FC 8E220000 */ lw $v0, ($s1) +/* 0BD530 7F088A00 C44829BC */ lwc1 $f8, 0x29bc($v0) +/* 0BD534 7F088A04 46004280 */ add.s $f10, $f8, $f0 +/* 0BD538 7F088A08 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 0BD53C 7F088A0C E4400070 */ swc1 $f0, 0x70($v0) +/* 0BD540 7F088A10 0C002914 */ jal get_random_value +/* 0BD544 7F088A14 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 0BD548 7F088A18 44828000 */ mtc1 $v0, $f16 +/* 0BD54C 7F088A1C 3C018005 */ lui $at, %hi(D_80055284) +/* 0BD550 7F088A20 C42C5284 */ lwc1 $f12, %lo(D_80055284)($at) +/* 0BD554 7F088A24 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 0BD558 7F088A28 04410005 */ bgez $v0, .L7F088A40 +/* 0BD55C 7F088A2C 468084A0 */ cvt.s.w $f18, $f16 +/* 0BD560 7F088A30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0BD564 7F088A34 44812000 */ mtc1 $at, $f4 +/* 0BD568 7F088A38 00000000 */ nop +/* 0BD56C 7F088A3C 46049480 */ add.s $f18, $f18, $f4 +.L7F088A40: +/* 0BD570 7F088A40 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0BD574 7F088A44 44813000 */ mtc1 $at, $f6 +/* 0BD578 7F088A48 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BD57C 7F088A4C 44815000 */ mtc1 $at, $f10 +/* 0BD580 7F088A50 46069202 */ mul.s $f8, $f18, $f6 +/* 0BD584 7F088A54 8E2B0000 */ lw $t3, ($s1) +/* 0BD588 7F088A58 3C018005 */ lui $at, %hi(D_80055288) +/* 0BD58C 7F088A5C 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD590 7F088A60 460C4002 */ mul.s $f0, $f8, $f12 +/* 0BD594 7F088A64 00000000 */ nop +/* 0BD598 7F088A68 460A0402 */ mul.s $f16, $f0, $f10 +/* 0BD59C 7F088A6C E7A00048 */ swc1 $f0, 0x48($sp) +/* 0BD5A0 7F088A70 460C8103 */ div.s $f4, $f16, $f12 +/* 0BD5A4 7F088A74 E5640148 */ swc1 $f4, 0x148($t3) +/* 0BD5A8 7F088A78 8E2C0000 */ lw $t4, ($s1) +/* 0BD5AC 7F088A7C E5820074 */ swc1 $f2, 0x74($t4) +/* 0BD5B0 7F088A80 C4325288 */ lwc1 $f18, %lo(D_80055288)($at) +/* 0BD5B4 7F088A84 8E2D0000 */ lw $t5, ($s1) +/* 0BD5B8 7F088A88 46121183 */ div.s $f6, $f2, $f18 +/* 0BD5BC 7F088A8C E5A6006C */ swc1 $f6, 0x6c($t5) +/* 0BD5C0 7F088A90 8E240000 */ lw $a0, ($s1) +/* 0BD5C4 7F088A94 8FA60044 */ lw $a2, 0x44($sp) +/* 0BD5C8 7F088A98 0FC1F1CC */ jal change_player_pos_to_target +/* 0BD5CC 7F088A9C 24840488 */ addiu $a0, $a0, 0x488 +/* 0BD5D0 7F088AA0 0FC15FAB */ jal sinf +/* 0BD5D4 7F088AA4 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0BD5D8 7F088AA8 8E390000 */ lw $t9, ($s1) +/* 0BD5DC 7F088AAC 46000207 */ neg.s $f8, $f0 +/* 0BD5E0 7F088AB0 44805000 */ mtc1 $zero, $f10 +/* 0BD5E4 7F088AB4 E7280498 */ swc1 $f8, 0x498($t9) +/* 0BD5E8 7F088AB8 8E380000 */ lw $t8, ($s1) +/* 0BD5EC 7F088ABC E70A049C */ swc1 $f10, 0x49c($t8) +/* 0BD5F0 7F088AC0 0FC15FA8 */ jal cosf +/* 0BD5F4 7F088AC4 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0BD5F8 7F088AC8 8E2E0000 */ lw $t6, ($s1) +/* 0BD5FC 7F088ACC 3C018005 */ lui $at, %hi(D_8005528C) +/* 0BD600 7F088AD0 C42C528C */ lwc1 $f12, %lo(D_8005528C)($at) +/* 0BD604 7F088AD4 E5C004A0 */ swc1 $f0, 0x4a0($t6) +/* 0BD608 7F088AD8 8E2F0000 */ lw $t7, ($s1) +/* 0BD60C 7F088ADC C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 0BD610 7F088AE0 E5E20408 */ swc1 $f2, 0x408($t7) +/* 0BD614 7F088AE4 8E280000 */ lw $t0, ($s1) +/* 0BD618 7F088AE8 8D0900A8 */ lw $t1, 0xa8($t0) +/* 0BD61C 7F088AEC E5220008 */ swc1 $f2, 8($t1) +/* 0BD620 7F088AF0 8E2A0000 */ lw $t2, ($s1) +/* 0BD624 7F088AF4 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0BD628 7F088AF8 E542040C */ swc1 $f2, 0x40c($t2) +/* 0BD62C 7F088AFC 8E2B0000 */ lw $t3, ($s1) +/* 0BD630 7F088B00 8D6C00A8 */ lw $t4, 0xa8($t3) +/* 0BD634 7F088B04 E582000C */ swc1 $f2, 0xc($t4) +/* 0BD638 7F088B08 8E2D0000 */ lw $t5, ($s1) +/* 0BD63C 7F088B0C C7A20054 */ lwc1 $f2, 0x54($sp) +/* 0BD640 7F088B10 E5A20410 */ swc1 $f2, 0x410($t5) +/* 0BD644 7F088B14 8E390000 */ lw $t9, ($s1) +/* 0BD648 7F088B18 8F3800A8 */ lw $t8, 0xa8($t9) +/* 0BD64C 7F088B1C E7020010 */ swc1 $f2, 0x10($t8) +/* 0BD650 7F088B20 8E2F0000 */ lw $t7, ($s1) +/* 0BD654 7F088B24 8FAE0044 */ lw $t6, 0x44($sp) +/* 0BD658 7F088B28 8DE800A8 */ lw $t0, 0xa8($t7) +/* 0BD65C 7F088B2C AD0E0014 */ sw $t6, 0x14($t0) +/* 0BD660 7F088B30 8E220000 */ lw $v0, ($s1) +/* 0BD664 7F088B34 C45004B4 */ lwc1 $f16, 0x4b4($v0) +/* 0BD668 7F088B38 460C8103 */ div.s $f4, $f16, $f12 +/* 0BD66C 7F088B3C E44403B8 */ swc1 $f4, 0x3b8($v0) +/* 0BD670 7F088B40 8E220000 */ lw $v0, ($s1) +/* 0BD674 7F088B44 C45204B8 */ lwc1 $f18, 0x4b8($v0) +/* 0BD678 7F088B48 460C9183 */ div.s $f6, $f18, $f12 +/* 0BD67C 7F088B4C E44603BC */ swc1 $f6, 0x3bc($v0) +/* 0BD680 7F088B50 8E220000 */ lw $v0, ($s1) +/* 0BD684 7F088B54 C44804BC */ lwc1 $f8, 0x4bc($v0) +/* 0BD688 7F088B58 460C4283 */ div.s $f10, $f8, $f12 +/* 0BD68C 7F088B5C 0FC22FFC */ jal reinit_BONDdata_inventory +/* 0BD690 7F088B60 E44A03C0 */ swc1 $f10, 0x3c0($v0) +/* 0BD694 7F088B64 8E290000 */ lw $t1, ($s1) +/* 0BD698 7F088B68 24020008 */ li $v0, 8 +/* 0BD69C 7F088B6C 24030078 */ li $v1, 120 +/* 0BD6A0 7F088B70 AD201130 */ sw $zero, 0x1130($t1) +/* 0BD6A4 7F088B74 8E2A0000 */ lw $t2, ($s1) +/* 0BD6A8 7F088B78 AD401134 */ sw $zero, 0x1134($t2) +.L7F088B7C: +/* 0BD6AC 7F088B7C 8E2B0000 */ lw $t3, ($s1) +/* 0BD6B0 7F088B80 01626021 */ addu $t4, $t3, $v0 +/* 0BD6B4 7F088B84 AD801130 */ sw $zero, 0x1130($t4) +/* 0BD6B8 7F088B88 8E2D0000 */ lw $t5, ($s1) +/* 0BD6BC 7F088B8C 01A2C821 */ addu $t9, $t5, $v0 +/* 0BD6C0 7F088B90 AF201134 */ sw $zero, 0x1134($t9) +/* 0BD6C4 7F088B94 8E380000 */ lw $t8, ($s1) +/* 0BD6C8 7F088B98 03027821 */ addu $t7, $t8, $v0 +/* 0BD6CC 7F088B9C ADE01138 */ sw $zero, 0x1138($t7) +/* 0BD6D0 7F088BA0 8E2E0000 */ lw $t6, ($s1) +/* 0BD6D4 7F088BA4 01C24021 */ addu $t0, $t6, $v0 +/* 0BD6D8 7F088BA8 24420010 */ addiu $v0, $v0, 0x10 +/* 0BD6DC 7F088BAC 1443FFF3 */ bne $v0, $v1, .L7F088B7C +/* 0BD6E0 7F088BB0 AD00113C */ sw $zero, 0x113c($t0) +/* 0BD6E4 7F088BB4 52000036 */ beql $s0, $zero, .L7F088C90 +/* 0BD6E8 7F088BB8 44800000 */ mtc1 $zero, $f0 +/* 0BD6EC 7F088BBC 8E020000 */ lw $v0, ($s0) +/* 0BD6F0 7F088BC0 24010009 */ li $at, 9 +/* 0BD6F4 7F088BC4 10410031 */ beq $v0, $at, .L7F088C8C +/* 0BD6F8 7F088BC8 2C410007 */ sltiu $at, $v0, 7 +.L7F088BCC: +/* 0BD6FC 7F088BCC 1020002A */ beqz $at, .L7F088C78 +/* 0BD700 7F088BD0 00024880 */ sll $t1, $v0, 2 +/* 0BD704 7F088BD4 3C018005 */ lui $at, %hi(jpt_mpspawntype) +/* 0BD708 7F088BD8 00290821 */ addu $at, $at, $t1 +/* 0BD70C 7F088BDC 8C295290 */ lw $t1, %lo(jpt_mpspawntype)($at) +/* 0BD710 7F088BE0 01200008 */ jr $t1 +/* 0BD714 7F088BE4 00000000 */ nop +mp_spawntype_spawn: +/* 0BD718 7F088BE8 10000024 */ b .L7F088C7C +/* 0BD71C 7F088BEC 2610000C */ addiu $s0, $s0, 0xc +mp_spawntype_weapon: +/* 0BD720 7F088BF0 0FC30288 */ jal check_ramrom_flags +/* 0BD724 7F088BF4 00000000 */ nop +/* 0BD728 7F088BF8 8E0A000C */ lw $t2, 0xc($s0) +/* 0BD72C 7F088BFC 144A000A */ bne $v0, $t2, .L7F088C28 +/* 0BD730 7F088C00 00000000 */ nop +/* 0BD734 7F088C04 8E050008 */ lw $a1, 8($s0) +/* 0BD738 7F088C08 04A00005 */ bltz $a1, .L7F088C20 +/* 0BD73C 7F088C0C 00000000 */ nop +/* 0BD740 7F088C10 0FC23143 */ jal add_doubles_item_to_inventory +/* 0BD744 7F088C14 8E040004 */ lw $a0, 4($s0) +/* 0BD748 7F088C18 10000018 */ b .L7F088C7C +/* 0BD74C 7F088C1C 26100010 */ addiu $s0, $s0, 0x10 +.L7F088C20: +/* 0BD750 7F088C20 0FC23122 */ jal add_item_to_inventory +/* 0BD754 7F088C24 8E040004 */ lw $a0, 4($s0) +.L7F088C28: +/* 0BD758 7F088C28 10000014 */ b .L7F088C7C +/* 0BD75C 7F088C2C 26100010 */ addiu $s0, $s0, 0x10 +mp_spawntype_ammo: +/* 0BD760 7F088C30 0FC30288 */ jal check_ramrom_flags +/* 0BD764 7F088C34 00000000 */ nop +/* 0BD768 7F088C38 8E0B000C */ lw $t3, 0xc($s0) +/* 0BD76C 7F088C3C 144B0004 */ bne $v0, $t3, .L7F088C50 +/* 0BD770 7F088C40 00000000 */ nop +/* 0BD774 7F088C44 8E040004 */ lw $a0, 4($s0) +/* 0BD778 7F088C48 0FC1A44C */ jal give_cur_player_ammo +/* 0BD77C 7F088C4C 8E050008 */ lw $a1, 8($s0) +.L7F088C50: +/* 0BD780 7F088C50 1000000A */ b .L7F088C7C +/* 0BD784 7F088C54 26100010 */ addiu $s0, $s0, 0x10 +mp_spawntype_intro_swirly: +/* 0BD788 7F088C58 10000008 */ b .L7F088C7C +/* 0BD78C 7F088C5C 26100020 */ addiu $s0, $s0, 0x20 +mp_spawntype_intro_anim: +/* 0BD790 7F088C60 10000006 */ b .L7F088C7C +/* 0BD794 7F088C64 26100008 */ addiu $s0, $s0, 8 +mp_spawntype_handcuff: +/* 0BD798 7F088C68 10000004 */ b .L7F088C7C +/* 0BD79C 7F088C6C 26100008 */ addiu $s0, $s0, 8 +mp_spawntype_intro_camera: +/* 0BD7A0 7F088C70 10000002 */ b .L7F088C7C +/* 0BD7A4 7F088C74 26100028 */ addiu $s0, $s0, 0x28 +mp_spawntype_default: +.L7F088C78: +/* 0BD7A8 7F088C78 26100004 */ addiu $s0, $s0, 4 +.L7F088C7C: +/* 0BD7AC 7F088C7C 8E020000 */ lw $v0, ($s0) +/* 0BD7B0 7F088C80 24010009 */ li $at, 9 +/* 0BD7B4 7F088C84 5441FFD1 */ bnel $v0, $at, .L7F088BCC +/* 0BD7B8 7F088C88 2C410007 */ sltiu $at, $v0, 7 +.L7F088C8C: +/* 0BD7BC 7F088C8C 44800000 */ mtc1 $zero, $f0 +.L7F088C90: +/* 0BD7C0 7F088C90 8E2C0000 */ lw $t4, ($s1) +/* 0BD7C4 7F088C94 3C018005 */ lui $at, %hi(D_800552AC) +/* 0BD7C8 7F088C98 E5800078 */ swc1 $f0, 0x78($t4) +/* 0BD7CC 7F088C9C 8E2D0000 */ lw $t5, ($s1) +/* 0BD7D0 7F088CA0 C43052AC */ lwc1 $f16, %lo(D_800552AC)($at) +/* 0BD7D4 7F088CA4 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0BD7D8 7F088CA8 44816000 */ mtc1 $at, $f12 +/* 0BD7DC 7F088CAC E5B0007C */ swc1 $f16, 0x7c($t5) +/* 0BD7E0 7F088CB0 8E390000 */ lw $t9, ($s1) +/* 0BD7E4 7F088CB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD7E8 7F088CB8 44817000 */ mtc1 $at, $f14 +/* 0BD7EC 7F088CBC 0FC20284 */ jal set_curplayer_fade +/* 0BD7F0 7F088CC0 E7200080 */ swc1 $f0, 0x80($t9) +/* 0BD7F4 7F088CC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BD7F8 7F088CC8 8FB00014 */ lw $s0, 0x14($sp) +/* 0BD7FC 7F088CCC 8FB10018 */ lw $s1, 0x18($sp) +/* 0BD800 7F088CD0 03E00008 */ jr $ra +/* 0BD804 7F088CD4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F088CD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F088CD8 +/* 0BD808 7F088CD8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0BD80C 7F088CDC AFBF005C */ sw $ra, 0x5c($sp) +/* 0BD810 7F088CE0 AFB5004C */ sw $s5, 0x4c($sp) +/* 0BD814 7F088CE4 0080A825 */ move $s5, $a0 +/* 0BD818 7F088CE8 AFBE0058 */ sw $fp, 0x58($sp) +/* 0BD81C 7F088CEC AFB70054 */ sw $s7, 0x54($sp) +/* 0BD820 7F088CF0 AFB60050 */ sw $s6, 0x50($sp) +/* 0BD824 7F088CF4 AFB40048 */ sw $s4, 0x48($sp) +/* 0BD828 7F088CF8 AFB30044 */ sw $s3, 0x44($sp) +/* 0BD82C 7F088CFC AFB20040 */ sw $s2, 0x40($sp) +/* 0BD830 7F088D00 AFB1003C */ sw $s1, 0x3c($sp) +/* 0BD834 7F088D04 0C001A57 */ jal get_stage_num +/* 0BD838 7F088D08 AFB00038 */ sw $s0, 0x38($sp) +/* 0BD83C 7F088D0C 24010036 */ li $at, 54 +/* 0BD840 7F088D10 14410130 */ bne $v0, $at, .L7F0891D4 +/* 0BD844 7F088D14 3C108003 */ lui $s0, %hi(D_8003643C) +/* 0BD848 7F088D18 2610643C */ addiu $s0, %lo(D_8003643C) # addiu $s0, $s0, 0x643c +/* 0BD84C 7F088D1C 8E0E0000 */ lw $t6, ($s0) +/* 0BD850 7F088D20 24010001 */ li $at, 1 +/* 0BD854 7F088D24 3C0F8003 */ lui $t7, %hi(D_80036440) +/* 0BD858 7F088D28 55C1012B */ bnel $t6, $at, .L7F0891D8 +/* 0BD85C 7F088D2C 8FBF005C */ lw $ra, 0x5c($sp) +/* 0BD860 7F088D30 8DEF6440 */ lw $t7, %lo(D_80036440)($t7) +/* 0BD864 7F088D34 3C028003 */ lui $v0, %hi(camera_80036438) +/* 0BD868 7F088D38 24426438 */ addiu $v0, %lo(camera_80036438) # addiu $v0, $v0, 0x6438 +/* 0BD86C 7F088D3C 11E00125 */ beqz $t7, .L7F0891D4 +/* 0BD870 7F088D40 241600DC */ li $s6, 220 +/* 0BD874 7F088D44 8C580000 */ lw $t8, ($v0) +/* 0BD878 7F088D48 241700DC */ li $s7, 220 +/* 0BD87C 7F088D4C AFA00084 */ sw $zero, 0x84($sp) +/* 0BD880 7F088D50 27190001 */ addiu $t9, $t8, 1 +/* 0BD884 7F088D54 AFA00080 */ sw $zero, 0x80($sp) +/* 0BD888 7F088D58 AC590000 */ sw $t9, ($v0) +/* 0BD88C 7F088D5C AFB900B4 */ sw $t9, 0xb4($sp) +/* 0BD890 7F088D60 0FC2B366 */ jal microcode_constructor +/* 0BD894 7F088D64 02A02025 */ move $a0, $s5 +/* 0BD898 7F088D68 0C00112B */ jal get_video2_settings_height +/* 0BD89C 7F088D6C 0040A825 */ move $s5, $v0 +/* 0BD8A0 7F088D70 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 0BD8A4 7F088D74 3C048003 */ lui $a0, %hi(D_80036440) +/* 0BD8A8 7F088D78 01421823 */ subu $v1, $t2, $v0 +/* 0BD8AC 7F088D7C 04610003 */ bgez $v1, .L7F088D8C +/* 0BD8B0 7F088D80 00035903 */ sra $t3, $v1, 4 +/* 0BD8B4 7F088D84 2461000F */ addiu $at, $v1, 0xf +/* 0BD8B8 7F088D88 00015903 */ sra $t3, $at, 4 +.L7F088D8C: +/* 0BD8BC 7F088D8C 01601825 */ move $v1, $t3 +/* 0BD8C0 7F088D90 01603025 */ move $a2, $t3 +/* 0BD8C4 7F088D94 05410003 */ bgez $t2, .L7F088DA4 +/* 0BD8C8 7F088D98 000A6103 */ sra $t4, $t2, 4 +/* 0BD8CC 7F088D9C 2541000F */ addiu $at, $t2, 0xf +/* 0BD8D0 7F088DA0 00016103 */ sra $t4, $at, 4 +.L7F088DA4: +/* 0BD8D4 7F088DA4 258D0001 */ addiu $t5, $t4, 1 +/* 0BD8D8 7F088DA8 04610002 */ bgez $v1, .L7F088DB4 +/* 0BD8DC 7F088DAC AFAD0090 */ sw $t5, 0x90($sp) +/* 0BD8E0 7F088DB0 00003025 */ move $a2, $zero +.L7F088DB4: +/* 0BD8E4 7F088DB4 18C00024 */ blez $a2, .L7F088E48 +/* 0BD8E8 7F088DB8 00009825 */ move $s3, $zero +/* 0BD8EC 7F088DBC 8C846440 */ lw $a0, %lo(D_80036440)($a0) +.L7F088DC0: +/* 0BD8F0 7F088DC0 94820000 */ lhu $v0, ($a0) +/* 0BD8F4 7F088DC4 24015011 */ li $at, 20497 +/* 0BD8F8 7F088DC8 14400008 */ bnez $v0, .L7F088DEC +/* 0BD8FC 7F088DCC 00000000 */ nop +/* 0BD900 7F088DD0 948E0002 */ lhu $t6, 2($a0) +/* 0BD904 7F088DD4 15C00005 */ bnez $t6, .L7F088DEC +/* 0BD908 7F088DD8 240F0002 */ li $t7, 2 +/* 0BD90C 7F088DDC AFB30090 */ sw $s3, 0x90($sp) +/* 0BD910 7F088DE0 02603025 */ move $a2, $s3 +/* 0BD914 7F088DE4 10000018 */ b .L7F088E48 +/* 0BD918 7F088DE8 AE0F0000 */ sw $t7, ($s0) +.L7F088DEC: +/* 0BD91C 7F088DEC 10410009 */ beq $v0, $at, .L7F088E14 +/* 0BD920 7F088DF0 94850002 */ lhu $a1, 2($a0) +/* 0BD924 7F088DF4 84830004 */ lh $v1, 4($a0) +/* 0BD928 7F088DF8 04620003 */ bltzl $v1, .L7F088E08 +/* 0BD92C 7F088DFC 84820006 */ lh $v0, 6($a0) +/* 0BD930 7F088E00 0060B025 */ move $s6, $v1 +/* 0BD934 7F088E04 84820006 */ lh $v0, 6($a0) +.L7F088E08: +/* 0BD938 7F088E08 04420003 */ bltzl $v0, .L7F088E18 +/* 0BD93C 7F088E0C 24015011 */ li $at, 20497 +/* 0BD940 7F088E10 AFA20084 */ sw $v0, 0x84($sp) +.L7F088E14: +/* 0BD944 7F088E14 24015011 */ li $at, 20497 +.L7F088E18: +/* 0BD948 7F088E18 10A10009 */ beq $a1, $at, .L7F088E40 +/* 0BD94C 7F088E1C 26730001 */ addiu $s3, $s3, 1 +/* 0BD950 7F088E20 84830008 */ lh $v1, 8($a0) +/* 0BD954 7F088E24 04620003 */ bltzl $v1, .L7F088E34 +/* 0BD958 7F088E28 8482000A */ lh $v0, 0xa($a0) +/* 0BD95C 7F088E2C 0060B825 */ move $s7, $v1 +/* 0BD960 7F088E30 8482000A */ lh $v0, 0xa($a0) +.L7F088E34: +/* 0BD964 7F088E34 04400002 */ bltz $v0, .L7F088E40 +/* 0BD968 7F088E38 00000000 */ nop +/* 0BD96C 7F088E3C AFA20080 */ sw $v0, 0x80($sp) +.L7F088E40: +/* 0BD970 7F088E40 1666FFDF */ bne $s3, $a2, .L7F088DC0 +/* 0BD974 7F088E44 2484000C */ addiu $a0, $a0, 0xc +.L7F088E48: +/* 0BD978 7F088E48 8FB80090 */ lw $t8, 0x90($sp) +/* 0BD97C 7F088E4C 00C09825 */ move $s3, $a2 +/* 0BD980 7F088E50 2405000C */ li $a1, 12 +/* 0BD984 7F088E54 00D8082A */ slt $at, $a2, $t8 +/* 0BD988 7F088E58 102000DB */ beqz $at, .L7F0891C8 +/* 0BD98C 7F088E5C 00000000 */ nop +/* 0BD990 7F088E60 00C50019 */ multu $a2, $a1 +/* 0BD994 7F088E64 3C038003 */ lui $v1, %hi(D_80036440) +/* 0BD998 7F088E68 8C636440 */ lw $v1, %lo(D_80036440)($v1) +/* 0BD99C 7F088E6C 0000A012 */ mflo $s4 +/* 0BD9A0 7F088E70 00742021 */ addu $a0, $v1, $s4 +/* 0BD9A4 7F088E74 94820000 */ lhu $v0, ($a0) +/* 0BD9A8 7F088E78 14400007 */ bnez $v0, .L7F088E98 +/* 0BD9AC 7F088E7C 00000000 */ nop +/* 0BD9B0 7F088E80 00C50019 */ multu $a2, $a1 +/* 0BD9B4 7F088E84 0000C812 */ mflo $t9 +/* 0BD9B8 7F088E88 00794821 */ addu $t1, $v1, $t9 +/* 0BD9BC 7F088E8C 952B0002 */ lhu $t3, 2($t1) +/* 0BD9C0 7F088E90 116000CD */ beqz $t3, .L7F0891C8 +/* 0BD9C4 7F088E94 00000000 */ nop +.L7F088E98: +/* 0BD9C8 7F088E98 3C1E8004 */ lui $fp, %hi(ptrSecondFontTableLarge) +/* 0BD9CC 7F088E9C 24015011 */ li $at, 20497 +/* 0BD9D0 7F088EA0 1041005E */ beq $v0, $at, .L7F08901C +/* 0BD9D4 7F088EA4 27DE0EB8 */ addiu $fp, %lo(ptrSecondFontTableLarge) # addiu $fp, $fp, 0xeb8 +/* 0BD9D8 7F088EA8 00402025 */ move $a0, $v0 +/* 0BD9DC 7F088EAC 0FC30776 */ jal get_textptr_for_textID +/* 0BD9E0 7F088EB0 00138900 */ sll $s1, $s3, 4 +/* 0BD9E4 7F088EB4 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BD9E8 7F088EB8 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BD9EC 7F088EBC 00409025 */ move $s2, $v0 +/* 0BD9F0 7F088EC0 01542021 */ addu $a0, $t2, $s4 +/* 0BD9F4 7F088EC4 84830004 */ lh $v1, 4($a0) +/* 0BD9F8 7F088EC8 04620003 */ bltzl $v1, .L7F088ED8 +/* 0BD9FC 7F088ECC 84820006 */ lh $v0, 6($a0) +/* 0BDA00 7F088ED0 0060B025 */ move $s6, $v1 +/* 0BDA04 7F088ED4 84820006 */ lh $v0, 6($a0) +.L7F088ED8: +/* 0BDA08 7F088ED8 04400002 */ bltz $v0, .L7F088EE4 +/* 0BDA0C 7F088EDC 00000000 */ nop +/* 0BDA10 7F088EE0 AFA20084 */ sw $v0, 0x84($sp) +.L7F088EE4: +/* 0BDA14 7F088EE4 0C00112B */ jal get_video2_settings_height +/* 0BDA18 7F088EE8 00000000 */ nop +/* 0BDA1C 7F088EEC 00028400 */ sll $s0, $v0, 0x10 +/* 0BDA20 7F088EF0 00106403 */ sra $t4, $s0, 0x10 +/* 0BDA24 7F088EF4 0C001149 */ jal get_video2_settings_uly +/* 0BDA28 7F088EF8 01808025 */ move $s0, $t4 +/* 0BDA2C 7F088EFC 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 0BDA30 7F088F00 00516821 */ addu $t5, $v0, $s1 +/* 0BDA34 7F088F04 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDA38 7F088F08 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDA3C 7F088F0C 01AE7823 */ subu $t7, $t5, $t6 +/* 0BDA40 7F088F10 01F0C021 */ addu $t8, $t7, $s0 +/* 0BDA44 7F088F14 AFB800A8 */ sw $t8, 0xa8($sp) +/* 0BDA48 7F088F18 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BDA4C 7F088F1C 27A4009C */ addiu $a0, $sp, 0x9c +/* 0BDA50 7F088F20 27A50098 */ addiu $a1, $sp, 0x98 +/* 0BDA54 7F088F24 02403025 */ move $a2, $s2 +/* 0BDA58 7F088F28 8FC70000 */ lw $a3, ($fp) +/* 0BDA5C 7F088F2C AFA00014 */ sw $zero, 0x14($sp) +/* 0BDA60 7F088F30 AFA00098 */ sw $zero, 0x98($sp) +/* 0BDA64 7F088F34 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BDA68 7F088F38 AFB90010 */ sw $t9, 0x10($sp) +/* 0BDA6C 7F088F3C 8FAA0084 */ lw $t2, 0x84($sp) +/* 0BDA70 7F088F40 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0BDA74 7F088F44 8FAB009C */ lw $t3, 0x9c($sp) +/* 0BDA78 7F088F48 24010001 */ li $at, 1 +/* 0BDA7C 7F088F4C 15410005 */ bne $t2, $at, .L7F088F64 +/* 0BDA80 7F088F50 012B1821 */ addu $v1, $t1, $t3 +/* 0BDA84 7F088F54 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDA88 7F088F58 02C01025 */ move $v0, $s6 +/* 0BDA8C 7F088F5C 1000000C */ b .L7F088F90 +/* 0BDA90 7F088F60 02C82823 */ subu $a1, $s6, $t0 +.L7F088F64: +/* 0BDA94 7F088F64 8FAC0084 */ lw $t4, 0x84($sp) +/* 0BDA98 7F088F68 24010002 */ li $at, 2 +/* 0BDA9C 7F088F6C 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDAA0 7F088F70 15810006 */ bne $t4, $at, .L7F088F8C +/* 0BDAA4 7F088F74 02C02825 */ move $a1, $s6 +/* 0BDAA8 7F088F78 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDAAC 7F088F7C 00086843 */ sra $t5, $t0, 1 +/* 0BDAB0 7F088F80 02CD2823 */ subu $a1, $s6, $t5 +/* 0BDAB4 7F088F84 10000002 */ b .L7F088F90 +/* 0BDAB8 7F088F88 00A81021 */ addu $v0, $a1, $t0 +.L7F088F8C: +/* 0BDABC 7F088F8C 02C81021 */ addu $v0, $s6, $t0 +.L7F088F90: +/* 0BDAC0 7F088F90 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0BDAC4 7F088F94 246E0001 */ addiu $t6, $v1, 1 +/* 0BDAC8 7F088F98 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BDACC 7F088F9C 02A02025 */ move $a0, $s5 +/* 0BDAD0 7F088FA0 24470001 */ addiu $a3, $v0, 1 +/* 0BDAD4 7F088FA4 AFA00014 */ sw $zero, 0x14($sp) +/* 0BDAD8 7F088FA8 AFA500AC */ sw $a1, 0xac($sp) +/* 0BDADC 7F088FAC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDAE0 7F088FB0 24C6FFFF */ addiu $a2, $a2, -1 +/* 0BDAE4 7F088FB4 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDAE8 7F088FB8 0040A825 */ move $s5, $v0 +/* 0BDAEC 7F088FBC 00028400 */ sll $s0, $v0, 0x10 +/* 0BDAF0 7F088FC0 00107C03 */ sra $t7, $s0, 0x10 +/* 0BDAF4 7F088FC4 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDAF8 7F088FC8 01E08025 */ move $s0, $t7 +/* 0BDAFC 7F088FCC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDB00 7F088FD0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDB04 7F088FD4 8FD80000 */ lw $t8, ($fp) +/* 0BDB08 7F088FD8 2409FFFF */ li $t1, -1 +/* 0BDB0C 7F088FDC AFA90018 */ sw $t1, 0x18($sp) +/* 0BDB10 7F088FE0 02A02025 */ move $a0, $s5 +/* 0BDB14 7F088FE4 27A500AC */ addiu $a1, $sp, 0xac +/* 0BDB18 7F088FE8 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0BDB1C 7F088FEC 02403825 */ move $a3, $s2 +/* 0BDB20 7F088FF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0BDB24 7F088FF4 AFA20020 */ sw $v0, 0x20($sp) +/* 0BDB28 7F088FF8 AFA00024 */ sw $zero, 0x24($sp) +/* 0BDB2C 7F088FFC AFA00028 */ sw $zero, 0x28($sp) +/* 0BDB30 7F089000 AFB90014 */ sw $t9, 0x14($sp) +/* 0BDB34 7F089004 0FC2B6AF */ jal en_text_write_stuff +/* 0BDB38 7F089008 AFB80010 */ sw $t8, 0x10($sp) +/* 0BDB3C 7F08900C 3C0B8003 */ lui $t3, %hi(D_80036440) +/* 0BDB40 7F089010 8D6B6440 */ lw $t3, %lo(D_80036440)($t3) +/* 0BDB44 7F089014 0040A825 */ move $s5, $v0 +/* 0BDB48 7F089018 01742021 */ addu $a0, $t3, $s4 +.L7F08901C: +/* 0BDB4C 7F08901C 94850002 */ lhu $a1, 2($a0) +/* 0BDB50 7F089020 24015011 */ li $at, 20497 +/* 0BDB54 7F089024 10A1005A */ beq $a1, $at, .L7F089190 +/* 0BDB58 7F089028 00A02025 */ move $a0, $a1 +/* 0BDB5C 7F08902C 0FC30776 */ jal get_textptr_for_textID +/* 0BDB60 7F089030 00138900 */ sll $s1, $s3, 4 +/* 0BDB64 7F089034 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BDB68 7F089038 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BDB6C 7F08903C 00409025 */ move $s2, $v0 +/* 0BDB70 7F089040 01542021 */ addu $a0, $t2, $s4 +/* 0BDB74 7F089044 84830008 */ lh $v1, 8($a0) +/* 0BDB78 7F089048 04620003 */ bltzl $v1, .L7F089058 +/* 0BDB7C 7F08904C 8482000A */ lh $v0, 0xa($a0) +/* 0BDB80 7F089050 0060B825 */ move $s7, $v1 +/* 0BDB84 7F089054 8482000A */ lh $v0, 0xa($a0) +.L7F089058: +/* 0BDB88 7F089058 04400002 */ bltz $v0, .L7F089064 +/* 0BDB8C 7F08905C 00000000 */ nop +/* 0BDB90 7F089060 AFA20080 */ sw $v0, 0x80($sp) +.L7F089064: +/* 0BDB94 7F089064 0C00112B */ jal get_video2_settings_height +/* 0BDB98 7F089068 00000000 */ nop +/* 0BDB9C 7F08906C 00028400 */ sll $s0, $v0, 0x10 +/* 0BDBA0 7F089070 00106403 */ sra $t4, $s0, 0x10 +/* 0BDBA4 7F089074 0C001149 */ jal get_video2_settings_uly +/* 0BDBA8 7F089078 01808025 */ move $s0, $t4 +/* 0BDBAC 7F08907C 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 0BDBB0 7F089080 00516821 */ addu $t5, $v0, $s1 +/* 0BDBB4 7F089084 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDBB8 7F089088 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDBBC 7F08908C 01AE7823 */ subu $t7, $t5, $t6 +/* 0BDBC0 7F089090 01F0C021 */ addu $t8, $t7, $s0 +/* 0BDBC4 7F089094 AFB800A8 */ sw $t8, 0xa8($sp) +/* 0BDBC8 7F089098 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BDBCC 7F08909C 27A4009C */ addiu $a0, $sp, 0x9c +/* 0BDBD0 7F0890A0 27A50098 */ addiu $a1, $sp, 0x98 +/* 0BDBD4 7F0890A4 02403025 */ move $a2, $s2 +/* 0BDBD8 7F0890A8 8FC70000 */ lw $a3, ($fp) +/* 0BDBDC 7F0890AC AFA00014 */ sw $zero, 0x14($sp) +/* 0BDBE0 7F0890B0 AFA00098 */ sw $zero, 0x98($sp) +/* 0BDBE4 7F0890B4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BDBE8 7F0890B8 AFB90010 */ sw $t9, 0x10($sp) +/* 0BDBEC 7F0890BC 8FAA0080 */ lw $t2, 0x80($sp) +/* 0BDBF0 7F0890C0 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0BDBF4 7F0890C4 8FAB009C */ lw $t3, 0x9c($sp) +/* 0BDBF8 7F0890C8 24010001 */ li $at, 1 +/* 0BDBFC 7F0890CC 15410005 */ bne $t2, $at, .L7F0890E4 +/* 0BDC00 7F0890D0 012B1821 */ addu $v1, $t1, $t3 +/* 0BDC04 7F0890D4 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC08 7F0890D8 02E01025 */ move $v0, $s7 +/* 0BDC0C 7F0890DC 1000000C */ b .L7F089110 +/* 0BDC10 7F0890E0 02E82823 */ subu $a1, $s7, $t0 +.L7F0890E4: +/* 0BDC14 7F0890E4 8FAC0080 */ lw $t4, 0x80($sp) +/* 0BDC18 7F0890E8 24010002 */ li $at, 2 +/* 0BDC1C 7F0890EC 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC20 7F0890F0 15810006 */ bne $t4, $at, .L7F08910C +/* 0BDC24 7F0890F4 02E02825 */ move $a1, $s7 +/* 0BDC28 7F0890F8 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC2C 7F0890FC 00086843 */ sra $t5, $t0, 1 +/* 0BDC30 7F089100 02ED2823 */ subu $a1, $s7, $t5 +/* 0BDC34 7F089104 10000002 */ b .L7F089110 +/* 0BDC38 7F089108 00A81021 */ addu $v0, $a1, $t0 +.L7F08910C: +/* 0BDC3C 7F08910C 02E81021 */ addu $v0, $s7, $t0 +.L7F089110: +/* 0BDC40 7F089110 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0BDC44 7F089114 246E0001 */ addiu $t6, $v1, 1 +/* 0BDC48 7F089118 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BDC4C 7F08911C 02A02025 */ move $a0, $s5 +/* 0BDC50 7F089120 24470001 */ addiu $a3, $v0, 1 +/* 0BDC54 7F089124 AFA00014 */ sw $zero, 0x14($sp) +/* 0BDC58 7F089128 AFA500AC */ sw $a1, 0xac($sp) +/* 0BDC5C 7F08912C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDC60 7F089130 24C6FFFF */ addiu $a2, $a2, -1 +/* 0BDC64 7F089134 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDC68 7F089138 0040A825 */ move $s5, $v0 +/* 0BDC6C 7F08913C 00028400 */ sll $s0, $v0, 0x10 +/* 0BDC70 7F089140 00107C03 */ sra $t7, $s0, 0x10 +/* 0BDC74 7F089144 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDC78 7F089148 01E08025 */ move $s0, $t7 +/* 0BDC7C 7F08914C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDC80 7F089150 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDC84 7F089154 8FD80000 */ lw $t8, ($fp) +/* 0BDC88 7F089158 2409FFFF */ li $t1, -1 +/* 0BDC8C 7F08915C AFA90018 */ sw $t1, 0x18($sp) +/* 0BDC90 7F089160 02A02025 */ move $a0, $s5 +/* 0BDC94 7F089164 27A500AC */ addiu $a1, $sp, 0xac +/* 0BDC98 7F089168 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0BDC9C 7F08916C 02403825 */ move $a3, $s2 +/* 0BDCA0 7F089170 AFB0001C */ sw $s0, 0x1c($sp) +/* 0BDCA4 7F089174 AFA20020 */ sw $v0, 0x20($sp) +/* 0BDCA8 7F089178 AFA00024 */ sw $zero, 0x24($sp) +/* 0BDCAC 7F08917C AFA00028 */ sw $zero, 0x28($sp) +/* 0BDCB0 7F089180 AFB90014 */ sw $t9, 0x14($sp) +/* 0BDCB4 7F089184 0FC2B6AF */ jal en_text_write_stuff +/* 0BDCB8 7F089188 AFB80010 */ sw $t8, 0x10($sp) +/* 0BDCBC 7F08918C 0040A825 */ move $s5, $v0 +.L7F089190: +/* 0BDCC0 7F089190 8FAB0090 */ lw $t3, 0x90($sp) +/* 0BDCC4 7F089194 26730001 */ addiu $s3, $s3, 1 +/* 0BDCC8 7F089198 2694000C */ addiu $s4, $s4, 0xc +/* 0BDCCC 7F08919C 026B082A */ slt $at, $s3, $t3 +/* 0BDCD0 7F0891A0 10200009 */ beqz $at, .L7F0891C8 +/* 0BDCD4 7F0891A4 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BDCD8 7F0891A8 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BDCDC 7F0891AC 01542021 */ addu $a0, $t2, $s4 +/* 0BDCE0 7F0891B0 94820000 */ lhu $v0, ($a0) +/* 0BDCE4 7F0891B4 1440FF38 */ bnez $v0, .L7F088E98 +/* 0BDCE8 7F0891B8 00000000 */ nop +/* 0BDCEC 7F0891BC 948C0002 */ lhu $t4, 2($a0) +/* 0BDCF0 7F0891C0 1580FF35 */ bnez $t4, .L7F088E98 +/* 0BDCF4 7F0891C4 00000000 */ nop +.L7F0891C8: +/* 0BDCF8 7F0891C8 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BDCFC 7F0891CC 02A02025 */ move $a0, $s5 +/* 0BDD00 7F0891D0 0040A825 */ move $s5, $v0 +.L7F0891D4: +/* 0BDD04 7F0891D4 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0891D8: +/* 0BDD08 7F0891D8 02A01025 */ move $v0, $s5 +/* 0BDD0C 7F0891DC 8FB5004C */ lw $s5, 0x4c($sp) +/* 0BDD10 7F0891E0 8FB00038 */ lw $s0, 0x38($sp) +/* 0BDD14 7F0891E4 8FB1003C */ lw $s1, 0x3c($sp) +/* 0BDD18 7F0891E8 8FB20040 */ lw $s2, 0x40($sp) +/* 0BDD1C 7F0891EC 8FB30044 */ lw $s3, 0x44($sp) +/* 0BDD20 7F0891F0 8FB40048 */ lw $s4, 0x48($sp) +/* 0BDD24 7F0891F4 8FB60050 */ lw $s6, 0x50($sp) +/* 0BDD28 7F0891F8 8FB70054 */ lw $s7, 0x54($sp) +/* 0BDD2C 7F0891FC 8FBE0058 */ lw $fp, 0x58($sp) +/* 0BDD30 7F089200 03E00008 */ jr $ra +/* 0BDD34 7F089204 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void maybe_mp_interface(void) { + +} +#else +GLOBAL_ASM( +.text +glabel maybe_mp_interface +/* 0BDD38 7F089208 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BDD3C 7F08920C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BDD40 7F089210 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0BDD44 7F089214 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BDD48 7F089218 AFA40058 */ sw $a0, 0x58($sp) +/* 0BDD4C 7F08921C 8DCF0000 */ lw $t7, ($t6) +/* 0BDD50 7F089220 24010001 */ li $at, 1 +/* 0BDD54 7F089224 15E10014 */ bne $t7, $at, .L7F089278 +/* 0BDD58 7F089228 00000000 */ nop +/* 0BDD5C 7F08922C 0FC22939 */ jal sub_GAME_7F08A4E4 +/* 0BDD60 7F089230 00000000 */ nop +/* 0BDD64 7F089234 0FC2297F */ jal sub_GAME_7F08A5FC +/* 0BDD68 7F089238 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDD6C 7F08923C 0FC22A7E */ jal sub_GAME_7F08A9F8 +/* 0BDD70 7F089240 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD74 7F089244 0FC22ABA */ jal sub_GAME_7F08AAE8 +/* 0BDD78 7F089248 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDD7C 7F08924C AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD80 7F089250 0FC15884 */ jal sub_GAME_7F056210 +/* 0BDD84 7F089254 00402025 */ move $a0, $v0 +/* 0BDD88 7F089258 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD8C 7F08925C 0FC20138 */ jal sub_GAME_7F0804E0 +/* 0BDD90 7F089260 00402025 */ move $a0, $v0 +/* 0BDD94 7F089264 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD98 7F089268 0FC22336 */ jal sub_GAME_7F088CD8 +/* 0BDD9C 7F08926C 00402025 */ move $a0, $v0 +/* 0BDDA0 7F089270 10000110 */ b .L7F0896B4 +/* 0BDDA4 7F089274 8FBF001C */ lw $ra, 0x1c($sp) +.L7F089278: +/* 0BDDA8 7F089278 0FC18648 */ jal bondwalkFireBothHands +/* 0BDDAC 7F08927C 00000000 */ nop +/* 0BDDB0 7F089280 0FC1A423 */ jal sub_GAME_7F06908C +/* 0BDDB4 7F089284 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BDDB8 7F089288 0FC18AF9 */ jal sub_GAME_7F062BE4 +/* 0BDDBC 7F08928C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BDDC0 7F089290 0FC21F9D */ jal sub_GAME_7F087E74 +/* 0BDDC4 7F089294 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDDC8 7F089298 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BDDCC 7F08929C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BDDD0 7F0892A0 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDDD4 7F0892A4 8F1929C4 */ lw $t9, 0x29c4($t8) +/* 0BDDD8 7F0892A8 1320001F */ beqz $t9, .L7F089328 +/* 0BDDDC 7F0892AC 00000000 */ nop +/* 0BDDE0 7F0892B0 0C001145 */ jal get_video2_settings_ulx +/* 0BDDE4 7F0892B4 00000000 */ nop +/* 0BDDE8 7F0892B8 0C001149 */ jal get_video2_settings_uly +/* 0BDDEC 7F0892BC AFA20054 */ sw $v0, 0x54($sp) +/* 0BDDF0 7F0892C0 0C001145 */ jal get_video2_settings_ulx +/* 0BDDF4 7F0892C4 AFA20050 */ sw $v0, 0x50($sp) +/* 0BDDF8 7F0892C8 0C001127 */ jal get_video2_settings_width +/* 0BDDFC 7F0892CC A7A2002E */ sh $v0, 0x2e($sp) +/* 0BDE00 7F0892D0 87A8002E */ lh $t0, 0x2e($sp) +/* 0BDE04 7F0892D4 00484821 */ addu $t1, $v0, $t0 +/* 0BDE08 7F0892D8 0C001149 */ jal get_video2_settings_uly +/* 0BDE0C 7F0892DC AFA9004C */ sw $t1, 0x4c($sp) +/* 0BDE10 7F0892E0 0C00112B */ jal get_video2_settings_height +/* 0BDE14 7F0892E4 A7A2002E */ sh $v0, 0x2e($sp) +/* 0BDE18 7F0892E8 87AA002E */ lh $t2, 0x2e($sp) +/* 0BDE1C 7F0892EC 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDE20 7F0892F0 004A5821 */ addu $t3, $v0, $t2 +/* 0BDE24 7F0892F4 0FC2B366 */ jal microcode_constructor +/* 0BDE28 7F0892F8 AFAB0048 */ sw $t3, 0x48($sp) +/* 0BDE2C 7F0892FC 8FAC0048 */ lw $t4, 0x48($sp) +/* 0BDE30 7F089300 240D00A0 */ li $t5, 160 +/* 0BDE34 7F089304 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDE38 7F089308 AFAD0014 */ sw $t5, 0x14($sp) +/* 0BDE3C 7F08930C 00402025 */ move $a0, $v0 +/* 0BDE40 7F089310 8FA50054 */ lw $a1, 0x54($sp) +/* 0BDE44 7F089314 8FA60050 */ lw $a2, 0x50($sp) +/* 0BDE48 7F089318 8FA7004C */ lw $a3, 0x4c($sp) +/* 0BDE4C 7F08931C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDE50 7F089320 AFAC0010 */ sw $t4, 0x10($sp) +/* 0BDE54 7F089324 AFA20058 */ sw $v0, 0x58($sp) +.L7F089328: +/* 0BDE58 7F089328 0FC227AF */ jal check_if_healthbar_timer_greater_than_0 +/* 0BDE5C 7F08932C 00000000 */ nop +/* 0BDE60 7F089330 10400009 */ beqz $v0, .L7F089358 +/* 0BDE64 7F089334 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BDE68 7F089338 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BDE6C 7F08933C 8DCF01C8 */ lw $t7, 0x1c8($t6) +/* 0BDE70 7F089340 15E00005 */ bnez $t7, .L7F089358 +/* 0BDE74 7F089344 00000000 */ nop +/* 0BDE78 7F089348 0FC22186 */ jal sub_GAME_7F088618 +/* 0BDE7C 7F08934C 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDE80 7F089350 10000017 */ b .L7F0893B0 +/* 0BDE84 7F089354 AFA20058 */ sw $v0, 0x58($sp) +.L7F089358: +/* 0BDE88 7F089358 0FC31812 */ jal sub_GAME_7F0C6048 +/* 0BDE8C 7F08935C 00000000 */ nop +/* 0BDE90 7F089360 10400013 */ beqz $v0, .L7F0893B0 +/* 0BDE94 7F089364 00000000 */ nop +/* 0BDE98 7F089368 0FC22186 */ jal sub_GAME_7F088618 +/* 0BDE9C 7F08936C 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDEA0 7F089370 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDEA4 7F089374 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDEA8 7F089378 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDEAC 7F08937C 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BDEB0 7F089380 8C642A00 */ lw $a0, 0x2a00($v1) +/* 0BDEB4 7F089384 18800007 */ blez $a0, .L7F0893A4 +/* 0BDEB8 7F089388 00000000 */ nop +/* 0BDEBC 7F08938C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BDEC0 7F089390 0098C823 */ subu $t9, $a0, $t8 +/* 0BDEC4 7F089394 AC792A00 */ sw $t9, 0x2a00($v1) +/* 0BDEC8 7F089398 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDECC 7F08939C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDED0 7F0893A0 8C642A00 */ lw $a0, 0x2a00($v1) +.L7F0893A4: +/* 0BDED4 7F0893A4 04810002 */ bgez $a0, .L7F0893B0 +/* 0BDED8 7F0893A8 00000000 */ nop +/* 0BDEDC 7F0893AC AC602A00 */ sw $zero, 0x2a00($v1) +.L7F0893B0: +/* 0BDEE0 7F0893B0 0FC26919 */ jal get_num_players +/* 0BDEE4 7F0893B4 00000000 */ nop +/* 0BDEE8 7F0893B8 24010001 */ li $at, 1 +/* 0BDEEC 7F0893BC 14410003 */ bne $v0, $at, .L7F0893CC +/* 0BDEF0 7F0893C0 00000000 */ nop +/* 0BDEF4 7F0893C4 0FC15D50 */ jal display_objective_status_text_on_status_change +/* 0BDEF8 7F0893C8 00000000 */ nop +.L7F0893CC: +/* 0BDEFC 7F0893CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDF00 7F0893D0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDF04 7F0893D4 8C6200D8 */ lw $v0, 0xd8($v1) +/* 0BDF08 7F0893D8 1040009F */ beqz $v0, .L7F089658 +/* 0BDF0C 7F0893DC 00000000 */ nop +/* 0BDF10 7F0893E0 8C680428 */ lw $t0, 0x428($v1) +/* 0BDF14 7F0893E4 24010001 */ li $at, 1 +/* 0BDF18 7F0893E8 15000045 */ bnez $t0, .L7F089500 +/* 0BDF1C 7F0893EC 00000000 */ nop +/* 0BDF20 7F0893F0 14410004 */ bne $v0, $at, .L7F089404 +/* 0BDF24 7F0893F4 00002025 */ move $a0, $zero +/* 0BDF28 7F0893F8 24090002 */ li $t1, 2 +/* 0BDF2C 7F0893FC 24040001 */ li $a0, 1 +/* 0BDF30 7F089400 AC6900D8 */ sw $t1, 0xd8($v1) +.L7F089404: +/* 0BDF34 7F089404 1080001F */ beqz $a0, .L7F089484 +/* 0BDF38 7F089408 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BDF3C 7F08940C 0FC070A1 */ jal die_blood_image_routine +/* 0BDF40 7F089410 00002025 */ move $a0, $zero +/* 0BDF44 7F089414 0FC26919 */ jal get_num_players +/* 0BDF48 7F089418 00000000 */ nop +/* 0BDF4C 7F08941C 24010001 */ li $at, 1 +/* 0BDF50 7F089420 14410013 */ bne $v0, $at, .L7F089470 +/* 0BDF54 7F089424 00000000 */ nop +/* 0BDF58 7F089428 0FC30556 */ jal reset_music_in_slot +/* 0BDF5C 7F08942C 2404FFFF */ li $a0, -1 +/* 0BDF60 7F089430 0FC3030F */ jal set_missionstate +/* 0BDF64 7F089434 00002025 */ move $a0, $zero +/* 0BDF68 7F089438 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0BDF6C 7F08943C 00000000 */ nop +/* 0BDF70 7F089440 0C001C0F */ jal musicTrack1Vol +/* 0BDF74 7F089444 3044FFFF */ andi $a0, $v0, 0xffff +/* 0BDF78 7F089448 3C018002 */ lui $at, %hi(music1_playing) +/* 0BDF7C 7F08944C AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0BDF80 7F089450 0C001CF1 */ jal musicTrack2Vol +/* 0BDF84 7F089454 00002025 */ move $a0, $zero +/* 0BDF88 7F089458 3C018002 */ lui $at, %hi(music2_playing) +/* 0BDF8C 7F08945C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0BDF90 7F089460 0C001B9F */ jal musicTrack1Play +/* 0BDF94 7F089464 2404001B */ li $a0, 27 +/* 0BDF98 7F089468 10000003 */ b .L7F089478 +/* 0BDF9C 7F08946C 00000000 */ nop +.L7F089470: +/* 0BDFA0 7F089470 0FC3030F */ jal set_missionstate +/* 0BDFA4 7F089474 24040006 */ li $a0, 6 +.L7F089478: +/* 0BDFA8 7F089478 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDFAC 7F08947C 10000020 */ b .L7F089500 +/* 0BDFB0 7F089480 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F089484: +/* 0BDFB4 7F089484 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BDFB8 7F089488 24040096 */ li $a0, 150 +/* 0BDFBC 7F08948C 00002825 */ move $a1, $zero +/* 0BDFC0 7F089490 8D4B0424 */ lw $t3, 0x424($t2) +/* 0BDFC4 7F089494 00003025 */ move $a2, $zero +/* 0BDFC8 7F089498 3C073F34 */ lui $a3, (0x3F34B4B5 >> 16) # lui $a3, 0x3f34 +/* 0BDFCC 7F08949C 11600006 */ beqz $t3, .L7F0894B8 +/* 0BDFD0 7F0894A0 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 0BDFD4 7F0894A4 0FC201EC */ jal set_rgba_tint +/* 0BDFD8 7F0894A8 34E7B4B5 */ ori $a3, (0x3F34B4B5 & 0xFFFF) # ori $a3, $a3, 0xb4b5 +/* 0BDFDC 7F0894AC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDFE0 7F0894B0 10000013 */ b .L7F089500 +/* 0BDFE4 7F0894B4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0894B8: +/* 0BDFE8 7F0894B8 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 0BDFEC 7F0894BC 24040002 */ li $a0, 2 +/* 0BDFF0 7F0894C0 19800003 */ blez $t4, .L7F0894D0 +/* 0BDFF4 7F0894C4 00000000 */ nop +/* 0BDFF8 7F0894C8 10000001 */ b .L7F0894D0 +/* 0BDFFC 7F0894CC 24040001 */ li $a0, 1 +.L7F0894D0: +/* 0BE000 7F0894D0 0FC070A1 */ jal die_blood_image_routine +/* 0BE004 7F0894D4 00000000 */ nop +/* 0BE008 7F0894D8 10400004 */ beqz $v0, .L7F0894EC +/* 0BE00C 7F0894DC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BE010 7F0894E0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BE014 7F0894E4 240D0001 */ li $t5, 1 +/* 0BE018 7F0894E8 ADCD0424 */ sw $t5, 0x424($t6) +.L7F0894EC: +/* 0BE01C 7F0894EC 0FC0719C */ jal sub_GAME_7F01C670 +/* 0BE020 7F0894F0 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE024 7F0894F4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BE028 7F0894F8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BE02C 7F0894FC AFA20058 */ sw $v0, 0x58($sp) +.L7F089500: +/* 0BE030 7F089500 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0BE034 7F089504 24640598 */ addiu $a0, $v1, 0x598 +/* 0BE038 7F089508 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE03C 7F08950C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE040 7F089510 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0BE044 7F089514 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0BE048 7F089518 24840598 */ addiu $a0, $a0, 0x598 +/* 0BE04C 7F08951C C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0BE050 7F089520 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BE054 7F089524 4604003E */ c.le.s $f0, $f4 +/* 0BE058 7F089528 00000000 */ nop +/* 0BE05C 7F08952C 4500004A */ bc1f .L7F089658 +/* 0BE060 7F089530 00000000 */ nop +/* 0BE064 7F089534 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BE068 7F089538 8C6F0424 */ lw $t7, 0x424($v1) +/* 0BE06C 7F08953C 11E00046 */ beqz $t7, .L7F089658 +/* 0BE070 7F089540 00000000 */ nop +/* 0BE074 7F089544 8C780428 */ lw $t8, 0x428($v1) +/* 0BE078 7F089548 24190001 */ li $t9, 1 +/* 0BE07C 7F08954C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BE080 7F089550 1700000E */ bnez $t8, .L7F08958C +/* 0BE084 7F089554 00002825 */ move $a1, $zero +/* 0BE088 7F089558 44816000 */ mtc1 $at, $f12 +/* 0BE08C 7F08955C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE090 7F089560 44813000 */ mtc1 $at, $f6 +/* 0BE094 7F089564 AC790428 */ sw $t9, 0x428($v1) +/* 0BE098 7F089568 00003025 */ move $a2, $zero +/* 0BE09C 7F08956C 00003825 */ move $a3, $zero +/* 0BE0A0 7F089570 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 0BE0A4 7F089574 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BE0A8 7F089578 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0BE0AC 7F08957C 44816000 */ mtc1 $at, $f12 +/* 0BE0B0 7F089580 44807000 */ mtc1 $zero, $f14 +/* 0BE0B4 7F089584 0FC20284 */ jal set_curplayer_fade +/* 0BE0B8 7F089588 00000000 */ nop +.L7F08958C: +/* 0BE0BC 7F08958C 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BE0C0 7F089590 00000000 */ nop +/* 0BE0C4 7F089594 10400030 */ beqz $v0, .L7F089658 +/* 0BE0C8 7F089598 00000000 */ nop +/* 0BE0CC 7F08959C 0FC26919 */ jal get_num_players +/* 0BE0D0 7F0895A0 00000000 */ nop +/* 0BE0D4 7F0895A4 24010001 */ li $at, 1 +/* 0BE0D8 7F0895A8 14410005 */ bne $v0, $at, .L7F0895C0 +/* 0BE0DC 7F0895AC 00000000 */ nop +/* 0BE0E0 7F0895B0 0FC1EA6E */ jal set_camera_mode +/* 0BE0E4 7F0895B4 24040005 */ li $a0, 5 +/* 0BE0E8 7F0895B8 10000027 */ b .L7F089658 +/* 0BE0EC 7F0895BC 00000000 */ nop +.L7F0895C0: +/* 0BE0F0 7F0895C0 0FC051D6 */ jal get_scenario +/* 0BE0F4 7F0895C4 00000000 */ nop +/* 0BE0F8 7F0895C8 0FC26C54 */ jal get_cur_playernum +/* 0BE0FC 7F0895CC AFA20040 */ sw $v0, 0x40($sp) +/* 0BE100 7F0895D0 0FC26919 */ jal get_num_players +/* 0BE104 7F0895D4 AFA2003C */ sw $v0, 0x3c($sp) +/* 0BE108 7F0895D8 00402825 */ move $a1, $v0 +/* 0BE10C 7F0895DC 00002025 */ move $a0, $zero +/* 0BE110 7F0895E0 1840000C */ blez $v0, .L7F089614 +/* 0BE114 7F0895E4 00001825 */ move $v1, $zero +/* 0BE118 7F0895E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 0BE11C 7F0895EC 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0BE120 7F0895F0 254A9EF0 */ addiu $t2, %lo(player1_player_data) # addiu $t2, $t2, -0x6110 +/* 0BE124 7F0895F4 00084880 */ sll $t1, $t0, 2 +/* 0BE128 7F0895F8 012A1021 */ addu $v0, $t1, $t2 +.L7F0895FC: +/* 0BE12C 7F0895FC 8C4B0024 */ lw $t3, 0x24($v0) +/* 0BE130 7F089600 24630001 */ addiu $v1, $v1, 1 +/* 0BE134 7F089604 0065082A */ slt $at, $v1, $a1 +/* 0BE138 7F089608 24420070 */ addiu $v0, $v0, 0x70 +/* 0BE13C 7F08960C 1420FFFB */ bnez $at, .L7F0895FC +/* 0BE140 7F089610 008B2021 */ addu $a0, $a0, $t3 +.L7F089614: +/* 0BE144 7F089614 8FAC0040 */ lw $t4, 0x40($sp) +/* 0BE148 7F089618 24010001 */ li $at, 1 +/* 0BE14C 7F08961C 15810003 */ bne $t4, $at, .L7F08962C +/* 0BE150 7F089620 28810002 */ slti $at, $a0, 2 +/* 0BE154 7F089624 1020000C */ beqz $at, .L7F089658 +/* 0BE158 7F089628 00000000 */ nop +.L7F08962C: +/* 0BE15C 7F08962C 0FC26C54 */ jal get_cur_playernum +/* 0BE160 7F089630 00000000 */ nop +/* 0BE164 7F089634 00022600 */ sll $a0, $v0, 0x18 +/* 0BE168 7F089638 00046E03 */ sra $t5, $a0, 0x18 +/* 0BE16C 7F08963C 01A02025 */ move $a0, $t5 +/* 0BE170 7F089640 0C0030C3 */ jal get_controller_buttons_held +/* 0BE174 7F089644 3405B000 */ li $a1, 45056 +/* 0BE178 7F089648 10400003 */ beqz $v0, .L7F089658 +/* 0BE17C 7F08964C 00000000 */ nop +/* 0BE180 7F089650 0FC2223A */ jal mp_respawn_handler +/* 0BE184 7F089654 00000000 */ nop +.L7F089658: +/* 0BE188 7F089658 0FC22939 */ jal sub_GAME_7F08A4E4 +/* 0BE18C 7F08965C 00000000 */ nop +/* 0BE190 7F089660 0FC2297F */ jal sub_GAME_7F08A5FC +/* 0BE194 7F089664 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE198 7F089668 0FC22A7E */ jal sub_GAME_7F08A9F8 +/* 0BE19C 7F08966C AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1A0 7F089670 0FC22ABA */ jal sub_GAME_7F08AAE8 +/* 0BE1A4 7F089674 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE1A8 7F089678 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1AC 7F08967C 0FC1A979 */ jal sub_GAME_7F06A5E4 +/* 0BE1B0 7F089680 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BE1B4 7F089684 0FC1A73D */ jal generate_ammo_total_microcode +/* 0BE1B8 7F089688 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE1BC 7F08968C AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1C0 7F089690 0FC15884 */ jal sub_GAME_7F056210 +/* 0BE1C4 7F089694 00402025 */ move $a0, $v0 +/* 0BE1C8 7F089698 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1CC 7F08969C 0FC31824 */ jal display_red_blue_on_radar +/* 0BE1D0 7F0896A0 00402025 */ move $a0, $v0 +/* 0BE1D4 7F0896A4 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1D8 7F0896A8 0FC20138 */ jal sub_GAME_7F0804E0 +/* 0BE1DC 7F0896AC 00402025 */ move $a0, $v0 +/* 0BE1E0 7F0896B0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0896B4: +/* 0BE1E4 7F0896B4 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0BE1E8 7F0896B8 03E00008 */ jr $ra +/* 0BE1EC 7F0896BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 write_stan_tiles_in_yellow(s32 arg0) { + s32 phi_a0; + s32 phi_a0_2; + + // Node 0 + phi_a0 = arg0; + if (dword_CODE_bss_80079DA0 != 0) + { + // Node 1 + phi_a0 = sub_GAME_7F0B3024(dword_CODE_bss_80079DA0, 0xff00ff80); + } + // Node 2 + phi_a0_2 = phi_a0; + if (dword_CODE_bss_80079DA4 != 0) + { + // Node 3 + phi_a0_2 = sub_GAME_7F0B3024(phi_a0, dword_CODE_bss_80079DA4, 0xff00ff80); + } + // Node 4 + return phi_a0_2; +} +#else +GLOBAL_ASM( +.text +glabel write_stan_tiles_in_yellow +/* 0BE1F0 7F0896C0 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079DA0) +/* 0BE1F4 7F0896C4 8CA59DA0 */ lw $a1, %lo(dword_CODE_bss_80079DA0)($a1) +/* 0BE1F8 7F0896C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BE1FC 7F0896CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE200 7F0896D0 10A00004 */ beqz $a1, .L7F0896E4 +/* 0BE204 7F0896D4 3C06FF00 */ lui $a2, (0xFF00FF80 >> 16) # lui $a2, 0xff00 +/* 0BE208 7F0896D8 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0BE20C 7F0896DC 34C6FF80 */ ori $a2, (0xFF00FF80 & 0xFFFF) # ori $a2, $a2, 0xff80 +/* 0BE210 7F0896E0 00402025 */ move $a0, $v0 +.L7F0896E4: +/* 0BE214 7F0896E4 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079DA4) +/* 0BE218 7F0896E8 8CA59DA4 */ lw $a1, %lo(dword_CODE_bss_80079DA4)($a1) +/* 0BE21C 7F0896EC 3C06FF00 */ lui $a2, (0xFF00FF80 >> 16) # lui $a2, 0xff00 +/* 0BE220 7F0896F0 50A00005 */ beql $a1, $zero, .L7F089708 +/* 0BE224 7F0896F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE228 7F0896F8 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0BE22C 7F0896FC 34C6FF80 */ ori $a2, (0xFF00FF80 & 0xFFFF) # ori $a2, $a2, 0xff80 +/* 0BE230 7F089700 00402025 */ move $a0, $v0 +/* 0BE234 7F089704 8FBF0014 */ lw $ra, 0x14($sp) +.L7F089708: +/* 0BE238 7F089708 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BE23C 7F08970C 00801025 */ move $v0, $a0 +/* 0BE240 7F089710 03E00008 */ jr $ra +/* 0BE244 7F089714 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F089718(f32 arg0) { + f32 temp_f0; + void *temp_v0; + + // Node 0 + temp_f0 = (D_800364D0 / arg0); + temp_v0 = (pPlayer + 0x488); + temp_v0->unk4 = (f32) (pPlayer->field_48C * temp_f0); + temp_v0->unkC = (f32) (pPlayer->field_494 * temp_f0); + D_800364D0 = arg0; + D_800364D4 = (f32) (1.0f / arg0); + return temp_v0; +} +#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(pPlayer) +/* 0BE264 7F089734 8C42A0B0 */ lw $v0, %lo(pPlayer)($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) { + D_800364CC = param_1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F089778(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089778 +/* 0BE2A8 7F089778 03E00008 */ jr $ra +/* 0BE2AC 7F08977C C4800074 */ lwc1 $f0, 0x74($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F089780(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089780 +/* 0BE2B0 7F089780 C48429BC */ lwc1 $f4, 0x29bc($a0) +/* 0BE2B4 7F089784 C4860088 */ lwc1 $f6, 0x88($a0) +/* 0BE2B8 7F089788 C48A00A0 */ lwc1 $f10, 0xa0($a0) +/* 0BE2BC 7F08978C 46062200 */ add.s $f8, $f4, $f6 +/* 0BE2C0 7F089790 03E00008 */ jr $ra +/* 0BE2C4 7F089794 460A4000 */ add.s $f0, $f8, $f10 +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_positiondata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_positiondata +/* 0BE2C8 7F089798 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BE2CC 7F08979C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BE2D0 7F0897A0 03E00008 */ jr $ra +/* 0BE2D4 7F0897A4 8DC200A8 */ lw $v0, 0xa8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void kill_current_player(void) { + +} +#else +GLOBAL_ASM( +.text +glabel kill_current_player +/* 0BE2D8 7F0897A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BE2DC 7F0897AC AFB00018 */ sw $s0, 0x18($sp) +/* 0BE2E0 7F0897B0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0BE2E4 7F0897B4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0BE2E8 7F0897B8 8E020000 */ lw $v0, ($s0) +/* 0BE2EC 7F0897BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0BE2F0 7F0897C0 904E12B6 */ lbu $t6, 0x12b6($v0) +/* 0BE2F4 7F0897C4 55C00044 */ bnezl $t6, .L7F0898D8 +/* 0BE2F8 7F0897C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE2FC 7F0897CC 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0BE300 7F0897D0 55E00041 */ bnezl $t7, .L7F0898D8 +/* 0BE304 7F0897D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE308 7F0897D8 8C5801C8 */ lw $t8, 0x1c8($v0) +/* 0BE30C 7F0897DC 53000005 */ beql $t8, $zero, .L7F0897F4 +/* 0BE310 7F0897E0 24030001 */ li $v1, 1 +/* 0BE314 7F0897E4 0FC1FE1D */ jal trigger_solo_watch_menu +/* 0BE318 7F0897E8 24040001 */ li $a0, 1 +/* 0BE31C 7F0897EC 8E020000 */ lw $v0, ($s0) +/* 0BE320 7F0897F0 24030001 */ li $v1, 1 +.L7F0897F4: +/* 0BE324 7F0897F4 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 0BE328 7F0897F8 AC23A928 */ sw $v1, %lo(mission_kia_flag)($at) +/* 0BE32C 7F0897FC AC4300D8 */ sw $v1, 0xd8($v0) +/* 0BE330 7F089800 8E0A0000 */ lw $t2, ($s0) +/* 0BE334 7F089804 24040001 */ li $a0, 1 +/* 0BE338 7F089808 01404825 */ move $t1, $t2 +/* 0BE33C 7F08980C 25480054 */ addiu $t0, $t2, 0x54 +.L7F089810: +/* 0BE340 7F089810 8D210488 */ lw $at, 0x488($t1) +/* 0BE344 7F089814 2529000C */ addiu $t1, $t1, 0xc +/* 0BE348 7F089818 254A000C */ addiu $t2, $t2, 0xc +/* 0BE34C 7F08981C AD410428 */ sw $at, 0x428($t2) +/* 0BE350 7F089820 8D210480 */ lw $at, 0x480($t1) +/* 0BE354 7F089824 AD41042C */ sw $at, 0x42c($t2) +/* 0BE358 7F089828 8D210484 */ lw $at, 0x484($t1) +/* 0BE35C 7F08982C 1528FFF8 */ bne $t1, $t0, .L7F089810 +/* 0BE360 7F089830 AD410430 */ sw $at, 0x430($t2) +/* 0BE364 7F089834 8E020000 */ lw $v0, ($s0) +/* 0BE368 7F089838 3C0B8003 */ lui $t3, %hi(ptr_playerstank) +/* 0BE36C 7F08983C 3C018003 */ lui $at, %hi(D_8003648C) +/* 0BE370 7F089840 C4440148 */ lwc1 $f4, 0x148($v0) +/* 0BE374 7F089844 E4440414 */ swc1 $f4, 0x414($v0) +/* 0BE378 7F089848 8E020000 */ lw $v0, ($s0) +/* 0BE37C 7F08984C C4460158 */ lwc1 $f6, 0x158($v0) +/* 0BE380 7F089850 E4460418 */ swc1 $f6, 0x418($v0) +/* 0BE384 7F089854 8D6B6450 */ lw $t3, %lo(ptr_playerstank)($t3) +/* 0BE388 7F089858 11600002 */ beqz $t3, .L7F089864 +/* 0BE38C 7F08985C 00000000 */ nop +/* 0BE390 7F089860 AC23648C */ sw $v1, %lo(D_8003648C)($at) +.L7F089864: +/* 0BE394 7F089864 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BE398 7F089868 00002825 */ move $a1, $zero +/* 0BE39C 7F08986C 00002025 */ move $a0, $zero +/* 0BE3A0 7F089870 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BE3A4 7F089874 00002825 */ move $a1, $zero +/* 0BE3A8 7F089878 0FC22FEE */ jal get_mission_timer +/* 0BE3AC 7F08987C 00000000 */ nop +/* 0BE3B0 7F089880 8E0C0000 */ lw $t4, ($s0) +/* 0BE3B4 7F089884 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0BE3B8 7F089888 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0BE3BC 7F08988C 8D8D29F4 */ lw $t5, 0x29f4($t4) +/* 0BE3C0 7F089890 8DF80050 */ lw $t8, 0x50($t7) +/* 0BE3C4 7F089894 004D7023 */ subu $t6, $v0, $t5 +/* 0BE3C8 7F089898 01D8082A */ slt $at, $t6, $t8 +/* 0BE3CC 7F08989C 10200009 */ beqz $at, .L7F0898C4 +/* 0BE3D0 7F0898A0 00000000 */ nop +/* 0BE3D4 7F0898A4 0FC22FEE */ jal get_mission_timer +/* 0BE3D8 7F0898A8 00000000 */ nop +/* 0BE3DC 7F0898AC 8E190000 */ lw $t9, ($s0) +/* 0BE3E0 7F0898B0 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0BE3E4 7F0898B4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0BE3E8 7F0898B8 8F2829F4 */ lw $t0, 0x29f4($t9) +/* 0BE3EC 7F0898BC 00484823 */ subu $t1, $v0, $t0 +/* 0BE3F0 7F0898C0 AD490050 */ sw $t1, 0x50($t2) +.L7F0898C4: +/* 0BE3F4 7F0898C4 0FC22FEE */ jal get_mission_timer +/* 0BE3F8 7F0898C8 00000000 */ nop +/* 0BE3FC 7F0898CC 8E0B0000 */ lw $t3, ($s0) +/* 0BE400 7F0898D0 AD6229F4 */ sw $v0, 0x29f4($t3) +/* 0BE404 7F0898D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0898D8: +/* 0BE408 7F0898D8 8FB00018 */ lw $s0, 0x18($sp) +/* 0BE40C 7F0898DC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BE410 7F0898E0 03E00008 */ jr $ra +/* 0BE414 7F0898E4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0898E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0898E8 +/* 0BE418 7F0898E8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BE41C 7F0898EC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE420 7F0898F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0BE424 7F0898F4 00002025 */ move $a0, $zero +/* 0BE428 7F0898F8 000270C0 */ sll $t6, $v0, 3 +/* 0BE42C 7F0898FC 25C20280 */ addiu $v0, $t6, 0x280 +/* 0BE430 7F089900 240100A0 */ li $at, 160 +/* 0BE434 7F089904 0041001A */ div $zero, $v0, $at +/* 0BE438 7F089908 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE43C 7F08990C 00001012 */ mflo $v0 +/* 0BE440 7F089910 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BE444 7F089914 03E00008 */ jr $ra +/* 0BE448 7F089918 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void record_damage_kills(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BE44C 7F08991C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BE450 7F089920 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 0BE454 7F089924 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BE458 7F089928 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE45C 7F08992C E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BE460 7F089930 AFA60048 */ sw $a2, 0x48($sp) +/* 0BE464 7F089934 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BE468 7F089938 C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BE46C 7F08993C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BE470 7F089940 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BE474 7F089944 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BE478 7F089948 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BE47C 7F08994C 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BE480 7F089950 13000013 */ beqz $t8, .L7F0899A0 +/* 0BE484 7F089954 00000000 */ nop +/* 0BE488 7F089958 0FC228BF */ jal get_BONDdata_watch_armor +/* 0BE48C 7F08995C 00000000 */ nop +/* 0BE490 7F089960 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE494 7F089964 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE498 7F089968 44070000 */ mfc1 $a3, $f0 +/* 0BE49C 7F08996C 2405002E */ li $a1, 46 +/* 0BE4A0 7F089970 24060001 */ li $a2, 1 +/* 0BE4A4 7F089974 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4A8 7F089978 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BE4AC 7F08997C 0FC228BB */ jal get_BONDdata_watch_health +/* 0BE4B0 7F089980 00000000 */ nop +/* 0BE4B4 7F089984 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE4B8 7F089988 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE4BC 7F08998C 44070000 */ mfc1 $a3, $f0 +/* 0BE4C0 7F089990 2405002E */ li $a1, 46 +/* 0BE4C4 7F089994 2406FFFF */ li $a2, -1 +/* 0BE4C8 7F089998 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4CC 7F08999C 24841598 */ addiu $a0, $a0, 0x1598 +.L7F0899A0: +/* 0BE4D0 7F0899A0 0FC26919 */ jal get_num_players +/* 0BE4D4 7F0899A4 00000000 */ nop +/* 0BE4D8 7F0899A8 28410002 */ slti $at, $v0, 2 +/* 0BE4DC 7F0899AC 14200007 */ bnez $at, .L7F0899CC +/* 0BE4E0 7F0899B0 3C198009 */ lui $t9, %hi(stop_play_flag) +/* 0BE4E4 7F0899B4 8F39C700 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BE4E8 7F0899B8 3C088009 */ lui $t0, %hi(is_gameover_flag) +/* 0BE4EC 7F0899BC 57200120 */ bnezl $t9, .L7F089E40 +/* 0BE4F0 7F0899C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE4F4 7F0899C4 8D08C704 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BE4F8 7F0899C8 1500011C */ bnez $t0, .L7F089E3C +.L7F0899CC: +/* 0BE4FC 7F0899CC 3C098003 */ lui $t1, %hi(in_tank_flag) +/* 0BE500 7F0899D0 8D296448 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BE504 7F0899D4 24010001 */ li $at, 1 +/* 0BE508 7F0899D8 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BE50C 7F0899DC 15210006 */ bne $t1, $at, .L7F0899F8 +/* 0BE510 7F0899E0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE514 7F0899E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BE518 7F0899E8 44815000 */ mtc1 $at, $f10 +/* 0BE51C 7F0899EC 00000000 */ nop +/* 0BE520 7F0899F0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE524 7F0899F4 E7B0003C */ swc1 $f16, 0x3c($sp) +.L7F0899F8: +/* 0BE528 7F0899F8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE52C 7F0899FC 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BE530 7F089A00 15400016 */ bnez $t2, .L7F089A5C +/* 0BE534 7F089A04 00000000 */ nop +/* 0BE538 7F089A08 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BE53C 7F089A0C 15600013 */ bnez $t3, .L7F089A5C +/* 0BE540 7F089A10 00000000 */ nop +/* 0BE544 7F089A14 0FC26C54 */ jal get_cur_playernum +/* 0BE548 7F089A18 00000000 */ nop +/* 0BE54C 7F089A1C 00402025 */ move $a0, $v0 +/* 0BE550 7F089A20 0C003215 */ jal controller_7000C854 +/* 0BE554 7F089A24 3C053E80 */ lui $a1, 0x3e80 +/* 0BE558 7F089A28 0FC29370 */ jal cur_player_get_control_type +/* 0BE55C 7F089A2C 00000000 */ nop +/* 0BE560 7F089A30 28410004 */ slti $at, $v0, 4 +/* 0BE564 7F089A34 14200009 */ bnez $at, .L7F089A5C +/* 0BE568 7F089A38 00000000 */ nop +/* 0BE56C 7F089A3C 0FC26C54 */ jal get_cur_playernum +/* 0BE570 7F089A40 00000000 */ nop +/* 0BE574 7F089A44 0FC26919 */ jal get_num_players +/* 0BE578 7F089A48 AFA2001C */ sw $v0, 0x1c($sp) +/* 0BE57C 7F089A4C 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BE580 7F089A50 3C053E80 */ lui $a1, 0x3e80 +/* 0BE584 7F089A54 0C003215 */ jal controller_7000C854 +/* 0BE588 7F089A58 004C2021 */ addu $a0, $v0, $t4 +.L7F089A5C: +/* 0BE58C 7F089A5C 0FC26919 */ jal get_num_players +/* 0BE590 7F089A60 00000000 */ nop +/* 0BE594 7F089A64 28410002 */ slti $at, $v0, 2 +/* 0BE598 7F089A68 14200010 */ bnez $at, .L7F089AAC +/* 0BE59C 7F089A6C 00000000 */ nop +/* 0BE5A0 7F089A70 0FC051D6 */ jal get_scenario +/* 0BE5A4 7F089A74 00000000 */ nop +/* 0BE5A8 7F089A78 24010004 */ li $at, 4 +/* 0BE5AC 7F089A7C 1441000B */ bne $v0, $at, .L7F089AAC +/* 0BE5B0 7F089A80 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5B4 7F089A84 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5B8 7F089A88 C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BE5BC 7F089A8C C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BE5C0 7F089A90 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE5C4 7F089A94 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BE5C8 7F089A98 46049182 */ mul.s $f6, $f18, $f4 +/* 0BE5CC 7F089A9C 00000000 */ nop +/* 0BE5D0 7F089AA0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE5D4 7F089AA4 46103480 */ add.s $f18, $f6, $f16 +/* 0BE5D8 7F089AA8 E7B2003C */ swc1 $f18, 0x3c($sp) +.L7F089AAC: +/* 0BE5DC 7F089AAC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5E0 7F089AB0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5E4 7F089AB4 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BE5E8 7F089AB8 55A000E1 */ bnezl $t5, .L7F089E40 +/* 0BE5EC 7F089ABC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE5F0 7F089AC0 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BE5F4 7F089AC4 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) +/* 0BE5F8 7F089AC8 55C000DD */ bnezl $t6, .L7F089E40 +/* 0BE5FC 7F089ACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE600 7F089AD0 8DEF64B4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BE604 7F089AD4 55E000DA */ bnezl $t7, .L7F089E40 +/* 0BE608 7F089AD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE60C 7F089ADC 8C5800F4 */ lw $t8, 0xf4($v0) +/* 0BE610 7F089AE0 0702000B */ bltzl $t8, .L7F089B10 +/* 0BE614 7F089AE4 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BE618 7F089AE8 0FC26919 */ jal get_num_players +/* 0BE61C 7F089AEC 00000000 */ nop +/* 0BE620 7F089AF0 28410002 */ slti $at, $v0, 2 +/* 0BE624 7F089AF4 142000D1 */ bnez $at, .L7F089E3C +/* 0BE628 7F089AF8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE62C 7F089AFC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE630 7F089B00 8C5900F4 */ lw $t9, 0xf4($v0) +/* 0BE634 7F089B04 572000CE */ bnezl $t9, .L7F089E40 +/* 0BE638 7F089B08 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE63C 7F089B0C 8C4301C8 */ lw $v1, 0x1c8($v0) +.L7F089B10: +/* 0BE640 7F089B10 24010005 */ li $at, 5 +/* 0BE644 7F089B14 106100C9 */ beq $v1, $at, .L7F089E3C +/* 0BE648 7F089B18 2401000C */ li $at, 12 +/* 0BE64C 7F089B1C 506100C8 */ beql $v1, $at, .L7F089E40 +/* 0BE650 7F089B20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE654 7F089B24 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE658 7F089B28 E44400E4 */ swc1 $f4, 0xe4($v0) +/* 0BE65C 7F089B2C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE660 7F089B30 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE664 7F089B34 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE668 7F089B38 0FC26919 */ jal get_num_players +/* 0BE66C 7F089B3C E44800E8 */ swc1 $f8, 0xe8($v0) +/* 0BE670 7F089B40 28410002 */ slti $at, $v0, 2 +/* 0BE674 7F089B44 54200035 */ bnezl $at, .L7F089C1C +/* 0BE678 7F089B48 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE67C 7F089B4C 0FC26C54 */ jal get_cur_playernum +/* 0BE680 7F089B50 00000000 */ nop +/* 0BE684 7F089B54 AFA20038 */ sw $v0, 0x38($sp) +/* 0BE688 7F089B58 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BE68C 7F089B5C 0FC16A8C */ jal atan2f +/* 0BE690 7F089B60 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BE694 7F089B64 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BE698 7F089B68 44815000 */ mtc1 $at, $f10 +/* 0BE69C 7F089B6C 3C018005 */ lui $at, %hi(pi_800552B0) +/* 0BE6A0 7F089B70 C43052B0 */ lwc1 $f16, %lo(pi_800552B0)($at) +/* 0BE6A4 7F089B74 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BE6A8 7F089B78 8FA80038 */ lw $t0, 0x38($sp) +/* 0BE6AC 7F089B7C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BE6B0 7F089B80 3C0A8008 */ lui $t2, %hi(ptr_BONDdata_p1) +/* 0BE6B4 7F089B84 00084880 */ sll $t1, $t0, 2 +/* 0BE6B8 7F089B88 44812000 */ mtc1 $at, $f4 +/* 0BE6BC 7F089B8C 01495021 */ addu $t2, $t2, $t1 +/* 0BE6C0 7F089B90 46103483 */ div.s $f18, $f6, $f16 +/* 0BE6C4 7F089B94 8D4A9EE0 */ lw $t2, %lo(ptr_BONDdata_p1)($t2) +/* 0BE6C8 7F089B98 44806000 */ mtc1 $zero, $f12 +/* 0BE6CC 7F089B9C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE6D0 7F089BA0 C54A0148 */ lwc1 $f10, 0x148($t2) +/* 0BE6D4 7F089BA4 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BE6D8 7F089BA8 000B60C0 */ sll $t4, $t3, 3 +/* 0BE6DC 7F089BAC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0BE6E0 7F089BB0 018B6023 */ subu $t4, $t4, $t3 +/* 0BE6E4 7F089BB4 44813000 */ mtc1 $at, $f6 +/* 0BE6E8 7F089BB8 000C6100 */ sll $t4, $t4, 4 +/* 0BE6EC 7F089BBC 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0BE6F0 7F089BC0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BE6F4 7F089BC4 018D1021 */ addu $v0, $t4, $t5 +/* 0BE6F8 7F089BC8 46122201 */ sub.s $f8, $f4, $f18 +/* 0BE6FC 7F089BCC 46085081 */ sub.s $f2, $f10, $f8 +/* 0BE700 7F089BD0 460C103C */ c.lt.s $f2, $f12 +/* 0BE704 7F089BD4 00000000 */ nop +/* 0BE708 7F089BD8 45020003 */ bc1fl .L7F089BE8 +/* 0BE70C 7F089BDC 4606103C */ c.lt.s $f2, $f6 +/* 0BE710 7F089BE0 46001087 */ neg.s $f2, $f2 +/* 0BE714 7F089BE4 4606103C */ c.lt.s $f2, $f6 +.L7F089BE8: +/* 0BE718 7F089BE8 00000000 */ nop +/* 0BE71C 7F089BEC 45030008 */ bc1tl .L7F089C10 +/* 0BE720 7F089BF0 8C4E003C */ lw $t6, 0x3c($v0) +/* 0BE724 7F089BF4 44818000 */ mtc1 $at, $f16 +/* 0BE728 7F089BF8 00000000 */ nop +/* 0BE72C 7F089BFC 4602803C */ c.lt.s $f16, $f2 +/* 0BE730 7F089C00 00000000 */ nop +/* 0BE734 7F089C04 45020005 */ bc1fl .L7F089C1C +/* 0BE738 7F089C08 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE73C 7F089C0C 8C4E003C */ lw $t6, 0x3c($v0) +.L7F089C10: +/* 0BE740 7F089C10 25CF0001 */ addiu $t7, $t6, 1 +/* 0BE744 7F089C14 AC4F003C */ sw $t7, 0x3c($v0) +/* 0BE748 7F089C18 8FA30050 */ lw $v1, 0x50($sp) +.L7F089C1C: +/* 0BE74C 7F089C1C 44806000 */ mtc1 $zero, $f12 +/* 0BE750 7F089C20 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE754 7F089C24 10600010 */ beqz $v1, .L7F089C68 +/* 0BE758 7F089C28 00000000 */ nop +/* 0BE75C 7F089C2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE760 7F089C30 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE764 7F089C34 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BE768 7F089C38 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BE76C 7F089C3C 46020102 */ mul.s $f4, $f0, $f2 +/* 0BE770 7F089C40 4604903E */ c.le.s $f18, $f4 +/* 0BE774 7F089C44 00000000 */ nop +/* 0BE778 7F089C48 45000007 */ bc1f .L7F089C68 +/* 0BE77C 7F089C4C 00000000 */ nop +/* 0BE780 7F089C50 46029283 */ div.s $f10, $f18, $f2 +/* 0BE784 7F089C54 460A0201 */ sub.s $f8, $f0, $f10 +/* 0BE788 7F089C58 E44800E0 */ swc1 $f8, 0xe0($v0) +/* 0BE78C 7F089C5C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE790 7F089C60 1000005D */ b .L7F089DD8 +/* 0BE794 7F089C64 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089C68: +/* 0BE798 7F089C68 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE79C 7F089C6C 1060000F */ beqz $v1, .L7F089CAC +/* 0BE7A0 7F089C70 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7A4 7F089C74 C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0BE7A8 7F089C78 C4502A40 */ lwc1 $f16, 0x2a40($v0) +/* 0BE7AC 7F089C7C C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE7B0 7F089C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE7B4 7F089C84 46103103 */ div.s $f4, $f6, $f16 +/* 0BE7B8 7F089C88 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BE7BC 7F089C8C 44814000 */ mtc1 $at, $f8 +/* 0BE7C0 7F089C90 46049281 */ sub.s $f10, $f18, $f4 +/* 0BE7C4 7F089C94 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0BE7C8 7F089C98 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BE7CC 7F089C9C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BE7D0 7F089CA0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7D4 7F089CA4 E7082A40 */ swc1 $f8, 0x2a40($t8) +/* 0BE7D8 7F089CA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089CAC: +/* 0BE7DC 7F089CAC C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BE7E0 7F089CB0 C4502A3C */ lwc1 $f16, 0x2a3c($v0) +/* 0BE7E4 7F089CB4 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE7E8 7F089CB8 46103483 */ div.s $f18, $f6, $f16 +/* 0BE7EC 7F089CBC 46122281 */ sub.s $f10, $f4, $f18 +/* 0BE7F0 7F089CC0 E44A00DC */ swc1 $f10, 0xdc($v0) +/* 0BE7F4 7F089CC4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7F8 7F089CC8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7FC 7F089CCC C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0BE800 7F089CD0 460C403E */ c.le.s $f8, $f12 +/* 0BE804 7F089CD4 00000000 */ nop +/* 0BE808 7F089CD8 45020040 */ bc1fl .L7F089DDC +/* 0BE80C 7F089CDC 8C4B00F4 */ lw $t3, 0xf4($v0) +/* 0BE810 7F089CE0 0FC26919 */ jal get_num_players +/* 0BE814 7F089CE4 00000000 */ nop +/* 0BE818 7F089CE8 28410002 */ slti $at, $v0, 2 +/* 0BE81C 7F089CEC 14200036 */ bnez $at, .L7F089DC8 +/* 0BE820 7F089CF0 00000000 */ nop +/* 0BE824 7F089CF4 0FC26C54 */ jal get_cur_playernum +/* 0BE828 7F089CF8 00000000 */ nop +/* 0BE82C 7F089CFC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BE830 7F089D00 0FC051D6 */ jal get_scenario +/* 0BE834 7F089D04 AFA00028 */ sw $zero, 0x28($sp) +/* 0BE838 7F089D08 24010003 */ li $at, 3 +/* 0BE83C 7F089D0C 54410007 */ bnel $v0, $at, .L7F089D2C +/* 0BE840 7F089D10 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BE844 7F089D14 0FC233F0 */ jal checkforgoldengun +/* 0BE848 7F089D18 00000000 */ nop +/* 0BE84C 7F089D1C 10400002 */ beqz $v0, .L7F089D28 +/* 0BE850 7F089D20 24190001 */ li $t9, 1 +/* 0BE854 7F089D24 AFB90028 */ sw $t9, 0x28($sp) +.L7F089D28: +/* 0BE858 7F089D28 8FA8002C */ lw $t0, 0x2c($sp) +.L7F089D2C: +/* 0BE85C 7F089D2C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BE860 7F089D30 11090005 */ beq $t0, $t1, .L7F089D48 +/* 0BE864 7F089D34 00000000 */ nop +/* 0BE868 7F089D38 0FC159DF */ jal drop_inventory +/* 0BE86C 7F089D3C 00000000 */ nop +/* 0BE870 7F089D40 0FC1AA57 */ jal increment_num_deaths +/* 0BE874 7F089D44 00000000 */ nop +.L7F089D48: +/* 0BE878 7F089D48 0FC26C43 */ jal set_cur_player +/* 0BE87C 7F089D4C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BE880 7F089D50 8FAA002C */ lw $t2, 0x2c($sp) +/* 0BE884 7F089D54 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE888 7F089D58 154B0005 */ bne $t2, $t3, .L7F089D70 +/* 0BE88C 7F089D5C 00000000 */ nop +/* 0BE890 7F089D60 0FC1AA86 */ jal increment_num_suicides_display_MP +/* 0BE894 7F089D64 00000000 */ nop +/* 0BE898 7F089D68 10000008 */ b .L7F089D8C +/* 0BE89C 7F089D6C 00000000 */ nop +.L7F089D70: +/* 0BE8A0 7F089D70 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 0BE8A4 7F089D74 00000000 */ nop +/* 0BE8A8 7F089D78 8FAC0028 */ lw $t4, 0x28($sp) +/* 0BE8AC 7F089D7C 11800003 */ beqz $t4, .L7F089D8C +/* 0BE8B0 7F089D80 00000000 */ nop +/* 0BE8B4 7F089D84 0FC1AA4D */ jal increment_num_times_killed_MwtGC +/* 0BE8B8 7F089D88 00000000 */ nop +.L7F089D8C: +/* 0BE8BC 7F089D8C 0FC26C43 */ jal set_cur_player +/* 0BE8C0 7F089D90 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BE8C4 7F089D94 8FAD004C */ lw $t5, 0x4c($sp) +/* 0BE8C8 7F089D98 8FAF002C */ lw $t7, 0x2c($sp) +/* 0BE8CC 7F089D9C 3C088008 */ lui $t0, %hi(player1_player_data) +/* 0BE8D0 7F089DA0 000D70C0 */ sll $t6, $t5, 3 +/* 0BE8D4 7F089DA4 01CD7023 */ subu $t6, $t6, $t5 +/* 0BE8D8 7F089DA8 000E7100 */ sll $t6, $t6, 4 +/* 0BE8DC 7F089DAC 000FC080 */ sll $t8, $t7, 2 +/* 0BE8E0 7F089DB0 01D8C821 */ addu $t9, $t6, $t8 +/* 0BE8E4 7F089DB4 25089EF0 */ addiu $t0, %lo(player1_player_data) # addiu $t0, $t0, -0x6110 +/* 0BE8E8 7F089DB8 03281021 */ addu $v0, $t9, $t0 +/* 0BE8EC 7F089DBC 8C490024 */ lw $t1, 0x24($v0) +/* 0BE8F0 7F089DC0 252A0001 */ addiu $t2, $t1, 1 +/* 0BE8F4 7F089DC4 AC4A0024 */ sw $t2, 0x24($v0) +.L7F089DC8: +/* 0BE8F8 7F089DC8 0FC225EA */ jal kill_current_player +/* 0BE8FC 7F089DCC 00000000 */ nop +/* 0BE900 7F089DD0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE904 7F089DD4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089DD8: +/* 0BE908 7F089DD8 8C4B00F4 */ lw $t3, 0xf4($v0) +.L7F089DDC: +/* 0BE90C 7F089DDC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0BE910 7F089DE0 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0BE914 7F089DE4 0561000E */ bgez $t3, .L7F089E20 +/* 0BE918 7F089DE8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BE91C 7F089DEC 46063400 */ add.s $f16, $f6, $f6 +/* 0BE920 7F089DF0 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0BE924 7F089DF4 46102480 */ add.s $f18, $f4, $f16 +/* 0BE928 7F089DF8 E4520180 */ swc1 $f18, 0x180($v0) +/* 0BE92C 7F089DFC C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0BE930 7F089E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE934 7F089E04 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE938 7F089E08 460A5200 */ add.s $f8, $f10, $f10 +/* 0BE93C 7F089E0C C4460188 */ lwc1 $f6, 0x188($v0) +/* 0BE940 7F089E10 46083100 */ add.s $f4, $f6, $f8 +/* 0BE944 7F089E14 E4440188 */ swc1 $f4, 0x188($v0) +/* 0BE948 7F089E18 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE94C 7F089E1C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089E20: +/* 0BE950 7F089E20 AC4000F4 */ sw $zero, 0xf4($v0) +/* 0BE954 7F089E24 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0BE958 7F089E28 24050044 */ li $a1, 68 +/* 0BE95C 7F089E2C 00003025 */ move $a2, $zero +/* 0BE960 7F089E30 AD8000F8 */ sw $zero, 0xf8($t4) +/* 0BE964 7F089E34 0C002382 */ jal play_sfx_a1 +/* 0BE968 7F089E38 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F089E3C: +/* 0BE96C 7F089E3C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F089E40: +/* 0BE970 7F089E40 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BE974 7F089E44 03E00008 */ jr $ra +/* 0BE978 7F089E48 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BEB60 7F089FF0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BEB64 7F089FF4 3C0E8008 */ lui $t6, %hi(pPlayersPerm) # $t6, 0x8008 +/* 0BEB68 7F089FF8 8DCEA124 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BEB6C 7F089FFC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEB70 7F08A000 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BEB74 7F08A004 AFA60048 */ sw $a2, 0x48($sp) +/* 0BEB78 7F08A008 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BEB7C 7F08A00C C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BEB80 7F08A010 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0BEB84 7F08A014 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEB88 7F08A018 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BEB8C 7F08A01C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BEB90 7F08A020 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BEB94 7F08A024 13000013 */ beqz $t8, .Ljp7F08A074 +/* 0BEB98 7F08A028 00000000 */ nop +/* 0BEB9C 7F08A02C 0FC22A8D */ jal get_BONDdata_watch_armor +/* 0BEBA0 7F08A030 00000000 */ nop +/* 0BEBA4 7F08A034 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBA8 7F08A038 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBAC 7F08A03C 44070000 */ mfc1 $a3, $f0 +/* 0BEBB0 7F08A040 2405002E */ li $a1, 46 +/* 0BEBB4 7F08A044 24060001 */ li $a2, 1 +/* 0BEBB8 7F08A048 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBBC 7F08A04C 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BEBC0 7F08A050 0FC22A89 */ jal get_BONDdata_watch_health +/* 0BEBC4 7F08A054 00000000 */ nop +/* 0BEBC8 7F08A058 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBCC 7F08A05C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBD0 7F08A060 44070000 */ mfc1 $a3, $f0 +/* 0BEBD4 7F08A064 2405002E */ li $a1, 46 +/* 0BEBD8 7F08A068 2406FFFF */ li $a2, -1 +/* 0BEBDC 7F08A06C 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBE0 7F08A070 24841598 */ addiu $a0, $a0, 0x1598 +.Ljp7F08A074: +/* 0BEBE4 7F08A074 0FC26C01 */ jal get_num_players +/* 0BEBE8 7F08A078 00000000 */ nop +/* 0BEBEC 7F08A07C 28410002 */ slti $at, $v0, 2 +/* 0BEBF0 7F08A080 14200007 */ bnez $at, .Ljp7F08A0A0 +/* 0BEBF4 7F08A084 3C198009 */ lui $t9, %hi(stop_play_flag) # $t9, 0x8009 +/* 0BEBF8 7F08A088 8F39C770 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BEBFC 7F08A08C 3C088009 */ lui $t0, %hi(is_gameover_flag) # $t0, 0x8009 +/* 0BEC00 7F08A090 5720012D */ bnezl $t9, .Ljp7F08A548 +/* 0BEC04 7F08A094 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEC08 7F08A098 8D08C774 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BEC0C 7F08A09C 15000129 */ bnez $t0, .Ljp7F08A544 +.Ljp7F08A0A0: +/* 0BEC10 7F08A0A0 3C098003 */ lui $t1, %hi(in_tank_flag) # $t1, 0x8003 +/* 0BEC14 7F08A0A4 8D296488 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BEC18 7F08A0A8 24010001 */ li $at, 1 +/* 0BEC1C 7F08A0AC C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEC20 7F08A0B0 15210006 */ bne $t1, $at, .Ljp7F08A0CC +/* 0BEC24 7F08A0B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEC28 7F08A0B8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BEC2C 7F08A0BC 44815000 */ mtc1 $at, $f10 +/* 0BEC30 7F08A0C0 00000000 */ nop +/* 0BEC34 7F08A0C4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BEC38 7F08A0C8 E7B0003C */ swc1 $f16, 0x3c($sp) +.Ljp7F08A0CC: +/* 0BEC3C 7F08A0CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEC40 7F08A0D0 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BEC44 7F08A0D4 15400016 */ bnez $t2, .Ljp7F08A130 +/* 0BEC48 7F08A0D8 00000000 */ nop +/* 0BEC4C 7F08A0DC 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BEC50 7F08A0E0 15600013 */ bnez $t3, .Ljp7F08A130 +/* 0BEC54 7F08A0E4 00000000 */ nop +/* 0BEC58 7F08A0E8 0FC26F3C */ jal get_cur_playernum +/* 0BEC5C 7F08A0EC 00000000 */ nop +/* 0BEC60 7F08A0F0 00402025 */ move $a0, $v0 +/* 0BEC64 7F08A0F4 0C00322E */ jal controller_7000C854 +/* 0BEC68 7F08A0F8 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC6C 7F08A0FC 0FC29658 */ jal cur_player_get_control_type +/* 0BEC70 7F08A100 00000000 */ nop +/* 0BEC74 7F08A104 28410004 */ slti $at, $v0, 4 +/* 0BEC78 7F08A108 14200009 */ bnez $at, .Ljp7F08A130 +/* 0BEC7C 7F08A10C 00000000 */ nop +/* 0BEC80 7F08A110 0FC26F3C */ jal get_cur_playernum +/* 0BEC84 7F08A114 00000000 */ nop +/* 0BEC88 7F08A118 0FC26C01 */ jal get_num_players +/* 0BEC8C 7F08A11C AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEC90 7F08A120 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BEC94 7F08A124 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC98 7F08A128 0C00322E */ jal controller_7000C854 +/* 0BEC9C 7F08A12C 004C2021 */ addu $a0, $v0, $t4 +.Ljp7F08A130: +/* 0BECA0 7F08A130 0FC26C01 */ jal get_num_players +/* 0BECA4 7F08A134 00000000 */ nop +/* 0BECA8 7F08A138 28410002 */ slti $at, $v0, 2 +/* 0BECAC 7F08A13C 14200010 */ bnez $at, .Ljp7F08A180 +/* 0BECB0 7F08A140 00000000 */ nop +/* 0BECB4 7F08A144 0FC05202 */ jal get_scenario +/* 0BECB8 7F08A148 00000000 */ nop +/* 0BECBC 7F08A14C 24010004 */ li $at, 4 +/* 0BECC0 7F08A150 1441000B */ bne $v0, $at, .Ljp7F08A180 +/* 0BECC4 7F08A154 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECC8 7F08A158 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECCC 7F08A15C C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BECD0 7F08A160 C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BECD4 7F08A164 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BECD8 7F08A168 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BECDC 7F08A16C 46049182 */ mul.s $f6, $f18, $f4 +/* 0BECE0 7F08A170 00000000 */ nop +/* 0BECE4 7F08A174 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BECE8 7F08A178 46103480 */ add.s $f18, $f6, $f16 +/* 0BECEC 7F08A17C E7B2003C */ swc1 $f18, 0x3c($sp) +.Ljp7F08A180: +/* 0BECF0 7F08A180 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECF4 7F08A184 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECF8 7F08A188 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BECFC 7F08A18C 55A000EE */ bnezl $t5, .Ljp7F08A548 +/* 0BED00 7F08A190 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED04 7F08A194 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BED08 7F08A198 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 0BED0C 7F08A19C 55C000EA */ bnezl $t6, .Ljp7F08A548 +/* 0BED10 7F08A1A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED14 7F08A1A4 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BED18 7F08A1A8 55E000E7 */ bnezl $t7, .Ljp7F08A548 +/* 0BED1C 7F08A1AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED20 7F08A1B0 C44400F4 */ lwc1 $f4, 0xf4($v0) +/* 0BED24 7F08A1B4 44804000 */ mtc1 $zero, $f8 +/* 0BED28 7F08A1B8 00000000 */ nop +/* 0BED2C 7F08A1BC 4608203C */ c.lt.s $f4, $f8 +/* 0BED30 7F08A1C0 00000000 */ nop +/* 0BED34 7F08A1C4 4503000E */ bc1tl .Ljp7F08A200 +/* 0BED38 7F08A1C8 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BED3C 7F08A1CC 0FC26C01 */ jal get_num_players +/* 0BED40 7F08A1D0 00000000 */ nop +/* 0BED44 7F08A1D4 28410002 */ slti $at, $v0, 2 +/* 0BED48 7F08A1D8 142000DA */ bnez $at, .Ljp7F08A544 +/* 0BED4C 7F08A1DC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED50 7F08A1E0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED54 7F08A1E4 44805000 */ mtc1 $zero, $f10 +/* 0BED58 7F08A1E8 C44600F4 */ lwc1 $f6, 0xf4($v0) +/* 0BED5C 7F08A1EC 46065032 */ c.eq.s $f10, $f6 +/* 0BED60 7F08A1F0 00000000 */ nop +/* 0BED64 7F08A1F4 450200D4 */ bc1fl .Ljp7F08A548 +/* 0BED68 7F08A1F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED6C 7F08A1FC 8C4301C8 */ lw $v1, 0x1c8($v0) +.Ljp7F08A200: +/* 0BED70 7F08A200 24010005 */ li $at, 5 +/* 0BED74 7F08A204 106100CF */ beq $v1, $at, .Ljp7F08A544 +/* 0BED78 7F08A208 2401000C */ li $at, 12 +/* 0BED7C 7F08A20C 506100CE */ beql $v1, $at, .Ljp7F08A548 +/* 0BED80 7F08A210 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED84 7F08A214 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BED88 7F08A218 E45000E4 */ swc1 $f16, 0xe4($v0) +/* 0BED8C 7F08A21C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED90 7F08A220 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED94 7F08A224 C45200E0 */ lwc1 $f18, 0xe0($v0) +/* 0BED98 7F08A228 0FC26C01 */ jal get_num_players +/* 0BED9C 7F08A22C E45200E8 */ swc1 $f18, 0xe8($v0) +/* 0BEDA0 7F08A230 28410002 */ slti $at, $v0, 2 +/* 0BEDA4 7F08A234 54200035 */ bnezl $at, .Ljp7F08A30C +/* 0BEDA8 7F08A238 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEDAC 7F08A23C 0FC26F3C */ jal get_cur_playernum +/* 0BEDB0 7F08A240 00000000 */ nop +/* 0BEDB4 7F08A244 AFA20038 */ sw $v0, 0x38($sp) +/* 0BEDB8 7F08A248 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BEDBC 7F08A24C 0FC16BD4 */ jal atan2f +/* 0BEDC0 7F08A250 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BEDC4 7F08A254 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BEDC8 7F08A258 44812000 */ mtc1 $at, $f4 +/* 0BEDCC 7F08A25C 3C018005 */ lui $at, %hi(pi_800552B0) # $at, 0x8005 +/* 0BEDD0 7F08A260 C42A52E0 */ lwc1 $f10, %lo(pi_800552B0)($at) +/* 0BEDD4 7F08A264 46040202 */ mul.s $f8, $f0, $f4 +/* 0BEDD8 7F08A268 8FB80038 */ lw $t8, 0x38($sp) +/* 0BEDDC 7F08A26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BEDE0 7F08A270 3C088008 */ lui $t0, %hi(ptr_BONDdata_p1) +/* 0BEDE4 7F08A274 0018C880 */ sll $t9, $t8, 2 +/* 0BEDE8 7F08A278 44818000 */ mtc1 $at, $f16 +/* 0BEDEC 7F08A27C 01194021 */ addu $t0, $t0, $t9 +/* 0BEDF0 7F08A280 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEDF4 7F08A284 8D089F50 */ lw $t0, %lo(ptr_BONDdata_p1)($t0) +/* 0BEDF8 7F08A288 44806000 */ mtc1 $zero, $f12 +/* 0BEDFC 7F08A28C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEE00 7F08A290 C5040148 */ lwc1 $f4, 0x148($t0) +/* 0BEE04 7F08A294 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BEE08 7F08A298 000950C0 */ sll $t2, $t1, 3 +/* 0BEE0C 7F08A29C 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 +/* 0BEE10 7F08A2A0 01495023 */ subu $t2, $t2, $t1 +/* 0BEE14 7F08A2A4 44814000 */ mtc1 $at, $f8 +/* 0BEE18 7F08A2A8 000A5100 */ sll $t2, $t2, 4 +/* 0BEE1C 7F08A2AC 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 +/* 0BEE20 7F08A2B0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BEE24 7F08A2B4 014B1021 */ addu $v0, $t2, $t3 +/* 0BEE28 7F08A2B8 46068481 */ sub.s $f18, $f16, $f6 +/* 0BEE2C 7F08A2BC 46122081 */ sub.s $f2, $f4, $f18 +/* 0BEE30 7F08A2C0 460C103C */ c.lt.s $f2, $f12 +/* 0BEE34 7F08A2C4 00000000 */ nop +/* 0BEE38 7F08A2C8 45020003 */ bc1fl .Ljp7F08A2D8 +/* 0BEE3C 7F08A2CC 4608103C */ c.lt.s $f2, $f8 +/* 0BEE40 7F08A2D0 46001087 */ neg.s $f2, $f2 +/* 0BEE44 7F08A2D4 4608103C */ c.lt.s $f2, $f8 +.Ljp7F08A2D8: +/* 0BEE48 7F08A2D8 00000000 */ nop +/* 0BEE4C 7F08A2DC 45030008 */ bc1tl .Ljp7F08A300 +/* 0BEE50 7F08A2E0 8C4C003C */ lw $t4, 0x3c($v0) +/* 0BEE54 7F08A2E4 44815000 */ mtc1 $at, $f10 +/* 0BEE58 7F08A2E8 00000000 */ nop +/* 0BEE5C 7F08A2EC 4602503C */ c.lt.s $f10, $f2 +/* 0BEE60 7F08A2F0 00000000 */ nop +/* 0BEE64 7F08A2F4 45020005 */ bc1fl .Ljp7F08A30C +/* 0BEE68 7F08A2F8 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEE6C 7F08A2FC 8C4C003C */ lw $t4, 0x3c($v0) +.Ljp7F08A300: +/* 0BEE70 7F08A300 258D0001 */ addiu $t5, $t4, 1 +/* 0BEE74 7F08A304 AC4D003C */ sw $t5, 0x3c($v0) +/* 0BEE78 7F08A308 8FA30050 */ lw $v1, 0x50($sp) +.Ljp7F08A30C: +/* 0BEE7C 7F08A30C 44806000 */ mtc1 $zero, $f12 +/* 0BEE80 7F08A310 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEE84 7F08A314 10600010 */ beqz $v1, .Ljp7F08A358 +/* 0BEE88 7F08A318 00000000 */ nop +/* 0BEE8C 7F08A31C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEE90 7F08A320 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEE94 7F08A324 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BEE98 7F08A328 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BEE9C 7F08A32C 46020402 */ mul.s $f16, $f0, $f2 +/* 0BEEA0 7F08A330 4610303E */ c.le.s $f6, $f16 +/* 0BEEA4 7F08A334 00000000 */ nop +/* 0BEEA8 7F08A338 45000007 */ bc1f .Ljp7F08A358 +/* 0BEEAC 7F08A33C 00000000 */ nop +/* 0BEEB0 7F08A340 46023103 */ div.s $f4, $f6, $f2 +/* 0BEEB4 7F08A344 46040481 */ sub.s $f18, $f0, $f4 +/* 0BEEB8 7F08A348 E45200E0 */ swc1 $f18, 0xe0($v0) +/* 0BEEBC 7F08A34C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEEC0 7F08A350 1000005E */ b .Ljp7F08A4CC +/* 0BEEC4 7F08A354 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A358: +/* 0BEEC8 7F08A358 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEECC 7F08A35C 1060000F */ beqz $v1, .Ljp7F08A39C +/* 0BEED0 7F08A360 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEED4 7F08A364 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BEED8 7F08A368 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BEEDC 7F08A36C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEEE0 7F08A370 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BEEE4 7F08A374 460A4403 */ div.s $f16, $f8, $f10 +/* 0BEEE8 7F08A378 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BEEEC 7F08A37C 44819000 */ mtc1 $at, $f18 +/* 0BEEF0 7F08A380 46103101 */ sub.s $f4, $f6, $f16 +/* 0BEEF4 7F08A384 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BEEF8 7F08A388 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BEEFC 7F08A38C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEF00 7F08A390 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF04 7F08A394 E5D22A40 */ swc1 $f18, 0x2a40($t6) +/* 0BEF08 7F08A398 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A39C: +/* 0BEF0C 7F08A39C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEF10 7F08A3A0 C44A2A3C */ lwc1 $f10, 0x2a3c($v0) +/* 0BEF14 7F08A3A4 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BEF18 7F08A3A8 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEF1C 7F08A3AC 46068101 */ sub.s $f4, $f16, $f6 +/* 0BEF20 7F08A3B0 E44400DC */ swc1 $f4, 0xdc($v0) +/* 0BEF24 7F08A3B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF28 7F08A3B8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEF2C 7F08A3BC C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BEF30 7F08A3C0 460C903E */ c.le.s $f18, $f12 +/* 0BEF34 7F08A3C4 00000000 */ nop +/* 0BEF38 7F08A3C8 45020041 */ bc1fl .Ljp7F08A4D0 +/* 0BEF3C 7F08A3CC C44800F4 */ lwc1 $f8, 0xf4($v0) +/* 0BEF40 7F08A3D0 0FC26C01 */ jal get_num_players +/* 0BEF44 7F08A3D4 00000000 */ nop +/* 0BEF48 7F08A3D8 28410002 */ slti $at, $v0, 2 +/* 0BEF4C 7F08A3DC 14200036 */ bnez $at, .Ljp7F08A4B8 +/* 0BEF50 7F08A3E0 00000000 */ nop +/* 0BEF54 7F08A3E4 0FC26F3C */ jal get_cur_playernum +/* 0BEF58 7F08A3E8 00000000 */ nop +/* 0BEF5C 7F08A3EC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BEF60 7F08A3F0 0FC05202 */ jal get_scenario +/* 0BEF64 7F08A3F4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BEF68 7F08A3F8 24010003 */ li $at, 3 +/* 0BEF6C 7F08A3FC 14410006 */ bne $v0, $at, .Ljp7F08A418 +/* 0BEF70 7F08A400 00000000 */ nop +/* 0BEF74 7F08A404 0FC23649 */ jal checkforgoldengun +/* 0BEF78 7F08A408 00000000 */ nop +/* 0BEF7C 7F08A40C 10400002 */ beqz $v0, .Ljp7F08A418 +/* 0BEF80 7F08A410 240F0001 */ li $t7, 1 +/* 0BEF84 7F08A414 AFAF0028 */ sw $t7, 0x28($sp) +.Ljp7F08A418: +/* 0BEF88 7F08A418 0FC15B1E */ jal drop_inventory +/* 0BEF8C 7F08A41C 00000000 */ nop +/* 0BEF90 7F08A420 8FB8002C */ lw $t8, 0x2c($sp) +/* 0BEF94 7F08A424 8FB9004C */ lw $t9, 0x4c($sp) +/* 0BEF98 7F08A428 13190003 */ beq $t8, $t9, .Ljp7F08A438 +/* 0BEF9C 7F08A42C 00000000 */ nop +/* 0BEFA0 7F08A430 0FC1ABD2 */ jal increment_num_deaths +/* 0BEFA4 7F08A434 00000000 */ nop +.Ljp7F08A438: +/* 0BEFA8 7F08A438 0FC26F2B */ jal set_cur_player +/* 0BEFAC 7F08A43C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BEFB0 7F08A440 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BEFB4 7F08A444 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEFB8 7F08A448 15090005 */ bne $t0, $t1, .Ljp7F08A460 +/* 0BEFBC 7F08A44C 00000000 */ nop +/* 0BEFC0 7F08A450 0FC1AC01 */ jal increment_num_suicides_display_MP +/* 0BEFC4 7F08A454 00000000 */ nop +/* 0BEFC8 7F08A458 10000008 */ b .Ljp7F08A47C +/* 0BEFCC 7F08A45C 00000000 */ nop +.Ljp7F08A460: +/* 0BEFD0 7F08A460 0FC1AB5B */ jal increment_num_kills_display_text_in_MP +/* 0BEFD4 7F08A464 00000000 */ nop +/* 0BEFD8 7F08A468 8FAA0028 */ lw $t2, 0x28($sp) +/* 0BEFDC 7F08A46C 11400003 */ beqz $t2, .Ljp7F08A47C +/* 0BEFE0 7F08A470 00000000 */ nop +/* 0BEFE4 7F08A474 0FC1ABC8 */ jal increment_num_times_killed_MwtGC +/* 0BEFE8 7F08A478 00000000 */ nop +.Ljp7F08A47C: +/* 0BEFEC 7F08A47C 0FC26F2B */ jal set_cur_player +/* 0BEFF0 7F08A480 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BEFF4 7F08A484 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BEFF8 7F08A488 8FAD002C */ lw $t5, 0x2c($sp) +/* 0BEFFC 7F08A48C 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0BF000 7F08A490 000B60C0 */ sll $t4, $t3, 3 +/* 0BF004 7F08A494 018B6023 */ subu $t4, $t4, $t3 +/* 0BF008 7F08A498 000C6100 */ sll $t4, $t4, 4 +/* 0BF00C 7F08A49C 000D7080 */ sll $t6, $t5, 2 +/* 0BF010 7F08A4A0 018E7821 */ addu $t7, $t4, $t6 +/* 0BF014 7F08A4A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0BF018 7F08A4A8 01F81021 */ addu $v0, $t7, $t8 +/* 0BF01C 7F08A4AC 8C590024 */ lw $t9, 0x24($v0) +/* 0BF020 7F08A4B0 27280001 */ addiu $t0, $t9, 1 +/* 0BF024 7F08A4B4 AC480024 */ sw $t0, 0x24($v0) +.Ljp7F08A4B8: +/* 0BF028 7F08A4B8 0FC2279F */ jal kill_current_player +/* 0BF02C 7F08A4BC 00000000 */ nop +/* 0BF030 7F08A4C0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF034 7F08A4C4 44806000 */ mtc1 $zero, $f12 +/* 0BF038 7F08A4C8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A4CC: +/* 0BF03C 7F08A4CC C44800F4 */ lwc1 $f8, 0xf4($v0) +.Ljp7F08A4D0: +/* 0BF040 7F08A4D0 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0BF044 7F08A4D4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BF048 7F08A4D8 460C403C */ c.lt.s $f8, $f12 +/* 0BF04C 7F08A4DC 00000000 */ nop +/* 0BF050 7F08A4E0 4502000F */ bc1fl .Ljp7F08A520 +/* 0BF054 7F08A4E4 E44C00F4 */ swc1 $f12, 0xf4($v0) +/* 0BF058 7F08A4E8 460A5400 */ add.s $f16, $f10, $f10 +/* 0BF05C 7F08A4EC C4460180 */ lwc1 $f6, 0x180($v0) +/* 0BF060 7F08A4F0 46103100 */ add.s $f4, $f6, $f16 +/* 0BF064 7F08A4F4 E4440180 */ swc1 $f4, 0x180($v0) +/* 0BF068 7F08A4F8 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0BF06C 7F08A4FC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF070 7F08A500 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF074 7F08A504 46129200 */ add.s $f8, $f18, $f18 +/* 0BF078 7F08A508 C44A0188 */ lwc1 $f10, 0x188($v0) +/* 0BF07C 7F08A50C 46085180 */ add.s $f6, $f10, $f8 +/* 0BF080 7F08A510 E4460188 */ swc1 $f6, 0x188($v0) +/* 0BF084 7F08A514 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF088 7F08A518 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF08C 7F08A51C E44C00F4 */ swc1 $f12, 0xf4($v0) +.Ljp7F08A520: +/* 0BF090 7F08A520 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF094 7F08A524 0FC3021B */ jal get_controls_locked_flag +/* 0BF098 7F08A528 E52C00F8 */ swc1 $f12, 0xf8($t1) +/* 0BF09C 7F08A52C 14400005 */ bnez $v0, .Ljp7F08A544 +/* 0BF0A0 7F08A530 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BF0A4 7F08A534 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BF0A8 7F08A538 24050044 */ li $a1, 68 +/* 0BF0AC 7F08A53C 0C002386 */ jal play_sfx_a1 +/* 0BF0B0 7F08A540 00003025 */ move $a2, $zero +.Ljp7F08A544: +/* 0BF0B4 7F08A544 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08A548: +/* 0BF0B8 7F08A548 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BF0BC 7F08A54C 03E00008 */ jr $ra +/* 0BF0C0 7F08A550 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F089E4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089E4C +/* 0BE97C 7F089E4C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BE980 7F089E50 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BE984 7F089E54 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 0BE988 7F089E58 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 0BE98C 7F089E5C AFA60030 */ sw $a2, 0x30($sp) +/* 0BE990 7F089E60 AFA70034 */ sw $a3, 0x34($sp) +/* 0BE994 7F089E64 0FC15FAB */ jal sinf +/* 0BE998 7F089E68 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0BE99C 7F089E6C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BE9A0 7F089E70 0FC15FA8 */ jal cosf +/* 0BE9A4 7F089E74 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0BE9A8 7F089E78 8FAE0034 */ lw $t6, 0x34($sp) +/* 0BE9AC 7F089E7C 44060000 */ mfc1 $a2, $f0 +/* 0BE9B0 7F089E80 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0BE9B4 7F089E84 C7AE0020 */ lwc1 $f14, 0x20($sp) +/* 0BE9B8 7F089E88 8FA70030 */ lw $a3, 0x30($sp) +/* 0BE9BC 7F089E8C 0FC22647 */ jal record_damage_kills +/* 0BE9C0 7F089E90 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BE9C4 7F089E94 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE9C8 7F089E98 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BE9CC 7F089E9C 03E00008 */ jr $ra +/* 0BE9D0 7F089EA0 00000000 */ nop +) +#endif + + + + + +#ifdef VERSION_US +int check_if_bond_is_invincible(void) { + return (pPlayer->damageshowtime < 0) ^ 1; +} +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel check_if_bond_is_invincible +/* 0BF11C 7F08A5AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BF120 7F08A5B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BF124 7F08A5B4 44803000 */ mtc1 $zero, $f6 +/* 0BF128 7F08A5B8 00001025 */ move $v0, $zero +/* 0BF12C 7F08A5BC C5C400F4 */ lwc1 $f4, 0xf4($t6) +/* 0BF130 7F08A5C0 4604303E */ c.le.s $f6, $f4 +/* 0BF134 7F08A5C4 00000000 */ nop +/* 0BF138 7F08A5C8 45000002 */ bc1f .Ljp7F08A5D4 +/* 0BF13C 7F08A5CC 00000000 */ nop +/* 0BF140 7F08A5D0 24020001 */ li $v0, 1 +.Ljp7F08A5D4: +/* 0BF144 7F08A5D4 03E00008 */ jr $ra +/* 0BF148 7F08A5D8 00000000 */ nop +) +#endif + + +#ifdef VERSION_US +int check_if_healthbar_timer_greater_than_0(void) { + return (0 < pPlayer->healthshowtime); +} +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel check_if_healthbar_timer_greater_than_0 +/* 0BF14C 7F08A5DC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BF150 7F08A5E0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BF154 7F08A5E4 44802000 */ mtc1 $zero, $f4 +/* 0BF158 7F08A5E8 00001025 */ move $v0, $zero +/* 0BF15C 7F08A5EC C5C600F8 */ lwc1 $f6, 0xf8($t6) +/* 0BF160 7F08A5F0 4606203C */ c.lt.s $f4, $f6 +/* 0BF164 7F08A5F4 00000000 */ nop +/* 0BF168 7F08A5F8 45000002 */ bc1f .Ljp7F08A604 +/* 0BF16C 7F08A5FC 00000000 */ nop +/* 0BF170 7F08A600 24020001 */ li $v0, 1 +.Ljp7F08A604: +/* 0BF174 7F08A604 03E00008 */ jr $ra +/* 0BF178 7F08A608 00000000 */ nop +) +#endif + + + + +f32 get_BONDdata_bondfadefracnew(void) { + return pPlayer->bondfadefracnew; +} + + + + + +f32 get_curplay_horizontal_rotation_in_degrees(void) { + return ((360.0f - pPlayer->vv_theta) * 6.2831855f) / 360.0f; +} + + + + + + +f32 get_curplay_vertical_rotation_in_degrees(void) { + return (pPlayer->vv_verta * 6.2831855f) / 360.0f; +} + + + +s32 sub_GAME_7F089F38(void) { + return pPlayer->field_D0; +} + + + + + + +void set_bondata_invincible_flag(u32 arg0) { + pPlayer->bondinvincible = arg0; +} + + + + + +u8 get_bondata_invincible_flag(void) { + return pPlayer->bondinvincible; +} + + + +void set_invisible_to_guards_flag(s32 param_1) { + invisible_to_guards_flag = param_1; +} + +s32 get_invisible_to_guards_flag(void) { + return invisible_to_guards_flag; +} + +void set_obj_collision_flag(s32 flag) { + obj_collision_flag = flag; +} + +s32 get_obj_collision_flag(void) { + return obj_collision_flag; +} + + + + + + +#ifdef NONMATCHING +void get_cur_players_room(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_cur_players_room +/* 0BEAC8 7F089F98 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BEACC 7F089F9C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BEAD0 7F089FA0 24010001 */ li $at, 1 +/* 0BEAD4 7F089FA4 8C6E0000 */ lw $t6, ($v1) +/* 0BEAD8 7F089FA8 55C10007 */ bnel $t6, $at, .L7F089FC8 +/* 0BEADC 7F089FAC 8C6F04D8 */ lw $t7, 0x4d8($v1) +/* 0BEAE0 7F089FB0 8C640034 */ lw $a0, 0x34($v1) +/* 0BEAE4 7F089FB4 50800004 */ beql $a0, $zero, .L7F089FC8 +/* 0BEAE8 7F089FB8 8C6F04D8 */ lw $t7, 0x4d8($v1) +/* 0BEAEC 7F089FBC 03E00008 */ jr $ra +/* 0BEAF0 7F089FC0 90820003 */ lbu $v0, 3($a0) + +/* 0BEAF4 7F089FC4 8C6F04D8 */ lw $t7, 0x4d8($v1) +.L7F089FC8: +/* 0BEAF8 7F089FC8 91E20003 */ lbu $v0, 3($t7) +/* 0BEAFC 7F089FCC 03E00008 */ jr $ra +/* 0BEB00 7F089FD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_BONDdata_position(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_position +/* 0BEB04 7F089FD4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BEB08 7F089FD8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BEB0C 7F089FDC 24010001 */ li $at, 1 +/* 0BEB10 7F089FE0 8C6E0000 */ lw $t6, ($v1) +/* 0BEB14 7F089FE4 246204B4 */ addiu $v0, $v1, 0x4b4 +/* 0BEB18 7F089FE8 15C10003 */ bne $t6, $at, .L7F089FF8 +/* 0BEB1C 7F089FEC 00000000 */ nop +/* 0BEB20 7F089FF0 03E00008 */ jr $ra +/* 0BEB24 7F089FF4 24620004 */ addiu $v0, $v1, 4 + +.L7F089FF8: +/* 0BEB28 7F089FF8 03E00008 */ jr $ra +/* 0BEB2C 7F089FFC 00000000 */ nop +) +#endif + + +int * get_BONDdata_position3(void) { + + if (pPlayer->unknown == 1) { + return (int *) &pPlayer->xpos3; + } + + return &pPlayer->field_4A4; +} + +int get_BONDdata_field408(void) { + return (int) &pPlayer->field_408; +} + +#ifdef NONMATCHING +void sub_GAME_7F08A03C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A03C +/* 0BEB6C 7F08A03C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BEB70 7F08A040 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEB74 7F08A044 AFA40020 */ sw $a0, 0x20($sp) +/* 0BEB78 7F08A048 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEB7C 7F08A04C AFA50024 */ sw $a1, 0x24($sp) +/* 0BEB80 7F08A050 8FAE0020 */ lw $t6, 0x20($sp) +/* 0BEB84 7F08A054 AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEB88 7F08A058 8DC40004 */ lw $a0, 4($t6) +/* 0BEB8C 7F08A05C 10800003 */ beqz $a0, .L7F08A06C +/* 0BEB90 7F08A060 00000000 */ nop +/* 0BEB94 7F08A064 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0BEB98 7F08A068 8FA50024 */ lw $a1, 0x24($sp) +.L7F08A06C: +/* 0BEB9C 7F08A06C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0BEBA0 7F08A070 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0BEBA4 7F08A074 50800004 */ beql $a0, $zero, .L7F08A088 +/* 0BEBA8 7F08A078 8FB8001C */ lw $t8, 0x1c($sp) +/* 0BEBAC 7F08A07C 0FC13C86 */ jal sub_GAME_7F04F218 +/* 0BEBB0 7F08A080 8FA50024 */ lw $a1, 0x24($sp) +/* 0BEBB4 7F08A084 8FB8001C */ lw $t8, 0x1c($sp) +.L7F08A088: +/* 0BEBB8 7F08A088 3C088008 */ lui $t0, %hi(ptr_BONDdata_p1) +/* 0BEBBC 7F08A08C 8FAF0024 */ lw $t7, 0x24($sp) +/* 0BEBC0 7F08A090 0018C880 */ sll $t9, $t8, 2 +/* 0BEBC4 7F08A094 01194021 */ addu $t0, $t0, $t9 +/* 0BEBC8 7F08A098 8D089EE0 */ lw $t0, %lo(ptr_BONDdata_p1)($t0) +/* 0BEBCC 7F08A09C AD0F00AC */ sw $t7, 0xac($t0) +/* 0BEBD0 7F08A0A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEBD4 7F08A0A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BEBD8 7F08A0A8 03E00008 */ jr $ra +/* 0BEBDC 7F08A0AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A0B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A0B0 +/* 0BEBE0 7F08A0B0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BEBE4 7F08A0B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEBE8 7F08A0B8 AFA50024 */ sw $a1, 0x24($sp) +/* 0BEBEC 7F08A0BC AFA60028 */ sw $a2, 0x28($sp) +/* 0BEBF0 7F08A0C0 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEBF4 7F08A0C4 AFA7002C */ sw $a3, 0x2c($sp) +/* 0BEBF8 7F08A0C8 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0BEBFC 7F08A0CC 24849EE0 */ addiu $a0, %lo(ptr_BONDdata_p1) # addiu $a0, $a0, -0x6120 +/* 0BEC00 7F08A0D0 00027080 */ sll $t6, $v0, 2 +/* 0BEC04 7F08A0D4 008E7821 */ addu $t7, $a0, $t6 +/* 0BEC08 7F08A0D8 8DF80000 */ lw $t8, ($t7) +/* 0BEC0C 7F08A0DC 8F1900AC */ lw $t9, 0xac($t8) +/* 0BEC10 7F08A0E0 53200029 */ beql $t9, $zero, .L7F08A188 +/* 0BEC14 7F08A0E4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0BEC18 7F08A0E8 0FC26919 */ jal get_num_players +/* 0BEC1C 7F08A0EC AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEC20 7F08A0F0 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0BEC24 7F08A0F4 24050001 */ li $a1, 1 +/* 0BEC28 7F08A0F8 24849EE0 */ addiu $a0, %lo(ptr_BONDdata_p1) # addiu $a0, $a0, -0x6120 +/* 0BEC2C 7F08A0FC 10450006 */ beq $v0, $a1, .L7F08A118 +/* 0BEC30 7F08A100 8FA3001C */ lw $v1, 0x1c($sp) +/* 0BEC34 7F08A104 00034080 */ sll $t0, $v1, 2 +/* 0BEC38 7F08A108 00884821 */ addu $t1, $a0, $t0 +/* 0BEC3C 7F08A10C 8D2A0000 */ lw $t2, ($t1) +/* 0BEC40 7F08A110 8D4B00D8 */ lw $t3, 0xd8($t2) +/* 0BEC44 7F08A114 1560001B */ bnez $t3, .L7F08A184 +.L7F08A118: +/* 0BEC48 7F08A118 00036080 */ sll $t4, $v1, 2 +/* 0BEC4C 7F08A11C 008C1021 */ addu $v0, $a0, $t4 +/* 0BEC50 7F08A120 8C4D0000 */ lw $t5, ($v0) +/* 0BEC54 7F08A124 8FB80028 */ lw $t8, 0x28($sp) +/* 0BEC58 7F08A128 8DAE0000 */ lw $t6, ($t5) +/* 0BEC5C 7F08A12C 10AE0015 */ beq $a1, $t6, .L7F08A184 +/* 0BEC60 7F08A130 240F0004 */ li $t7, 4 +/* 0BEC64 7F08A134 AF0F0000 */ sw $t7, ($t8) +/* 0BEC68 7F08A138 8C590000 */ lw $t9, ($v0) +/* 0BEC6C 7F08A13C 8FA90024 */ lw $t1, 0x24($sp) +/* 0BEC70 7F08A140 272800B0 */ addiu $t0, $t9, 0xb0 +/* 0BEC74 7F08A144 AD280000 */ sw $t0, ($t1) +/* 0BEC78 7F08A148 8C4A0000 */ lw $t2, ($v0) +/* 0BEC7C 7F08A14C 8FAB0030 */ lw $t3, 0x30($sp) +/* 0BEC80 7F08A150 C5440070 */ lwc1 $f4, 0x70($t2) +/* 0BEC84 7F08A154 E5640000 */ swc1 $f4, ($t3) +/* 0BEC88 7F08A158 0FC225E0 */ jal sub_GAME_7F089780 +/* 0BEC8C 7F08A15C 8C440000 */ lw $a0, ($v0) +/* 0BEC90 7F08A160 8FAC0030 */ lw $t4, 0x30($sp) +/* 0BEC94 7F08A164 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BEC98 7F08A168 44815000 */ mtc1 $at, $f10 +/* 0BEC9C 7F08A16C C5860000 */ lwc1 $f6, ($t4) +/* 0BECA0 7F08A170 8FAD002C */ lw $t5, 0x2c($sp) +/* 0BECA4 7F08A174 46060200 */ add.s $f8, $f0, $f6 +/* 0BECA8 7F08A178 460A4400 */ add.s $f16, $f8, $f10 +/* 0BECAC 7F08A17C 10000003 */ b .L7F08A18C +/* 0BECB0 7F08A180 E5B00000 */ swc1 $f16, ($t5) +.L7F08A184: +/* 0BECB4 7F08A184 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08A188: +/* 0BECB8 7F08A188 ADC00000 */ sw $zero, ($t6) +.L7F08A18C: +/* 0BECBC 7F08A18C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BECC0 7F08A190 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BECC4 7F08A194 03E00008 */ jr $ra +/* 0BECC8 7F08A198 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A19C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A19C +/* 0BECCC 7F08A19C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0BECD0 7F08A1A0 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0BECD4 7F08A1A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BECD8 7F08A1A8 24010001 */ li $at, 1 +/* 0BECDC 7F08A1AC 15C1000B */ bne $t6, $at, .L7F08A1DC +/* 0BECE0 7F08A1B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BECE4 7F08A1B4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BECE8 7F08A1B8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BECEC 7F08A1BC 8C620000 */ lw $v0, ($v1) +/* 0BECF0 7F08A1C0 3C068003 */ lui $a2, %hi(D_80036464) +/* 0BECF4 7F08A1C4 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0BECF8 7F08A1C8 244400B0 */ addiu $a0, $v0, 0xb0 +/* 0BECFC 7F08A1CC 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0BED00 7F08A1D0 2445048C */ addiu $a1, $v0, 0x48c +/* 0BED04 7F08A1D4 10000024 */ b .L7F08A268 +/* 0BED08 7F08A1D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A1DC: +/* 0BED0C 7F08A1DC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BED10 7F08A1E0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BED14 7F08A1E4 8C620000 */ lw $v0, ($v1) +/* 0BED18 7F08A1E8 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BED1C 7F08A1EC C44604B0 */ lwc1 $f6, 0x4b0($v0) +/* 0BED20 7F08A1F0 46062200 */ add.s $f8, $f4, $f6 +/* 0BED24 7F08A1F4 E44800B0 */ swc1 $f8, 0xb0($v0) +/* 0BED28 7F08A1F8 8C620000 */ lw $v0, ($v1) +/* 0BED2C 7F08A1FC C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BED30 7F08A200 E44A00B4 */ swc1 $f10, 0xb4($v0) +/* 0BED34 7F08A204 8C620000 */ lw $v0, ($v1) +/* 0BED38 7F08A208 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0BED3C 7F08A20C E45000B8 */ swc1 $f16, 0xb8($v0) +/* 0BED40 7F08A210 8C620000 */ lw $v0, ($v1) +/* 0BED44 7F08A214 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0BED48 7F08A218 C44404B0 */ lwc1 $f4, 0x4b0($v0) +/* 0BED4C 7F08A21C 46049180 */ add.s $f6, $f18, $f4 +/* 0BED50 7F08A220 E44600BC */ swc1 $f6, 0xbc($v0) +/* 0BED54 7F08A224 8C620000 */ lw $v0, ($v1) +/* 0BED58 7F08A228 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0BED5C 7F08A22C C44A04B0 */ lwc1 $f10, 0x4b0($v0) +/* 0BED60 7F08A230 460A4401 */ sub.s $f16, $f8, $f10 +/* 0BED64 7F08A234 E45000C0 */ swc1 $f16, 0xc0($v0) +/* 0BED68 7F08A238 8C620000 */ lw $v0, ($v1) +/* 0BED6C 7F08A23C C4520494 */ lwc1 $f18, 0x494($v0) +/* 0BED70 7F08A240 E45200C4 */ swc1 $f18, 0xc4($v0) +/* 0BED74 7F08A244 8C620000 */ lw $v0, ($v1) +/* 0BED78 7F08A248 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BED7C 7F08A24C E44400C8 */ swc1 $f4, 0xc8($v0) +/* 0BED80 7F08A250 8C620000 */ lw $v0, ($v1) +/* 0BED84 7F08A254 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0BED88 7F08A258 C44804B0 */ lwc1 $f8, 0x4b0($v0) +/* 0BED8C 7F08A25C 46083281 */ sub.s $f10, $f6, $f8 +/* 0BED90 7F08A260 E44A00CC */ swc1 $f10, 0xcc($v0) +/* 0BED94 7F08A264 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A268: +/* 0BED98 7F08A268 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BED9C 7F08A26C 03E00008 */ jr $ra +/* 0BEDA0 7F08A270 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A274(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A274 +/* 0BEDA4 7F08A274 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BEDA8 7F08A278 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEDAC 7F08A27C AFA5001C */ sw $a1, 0x1c($sp) +/* 0BEDB0 7F08A280 AFA60020 */ sw $a2, 0x20($sp) +/* 0BEDB4 7F08A284 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEDB8 7F08A288 AFA70024 */ sw $a3, 0x24($sp) +/* 0BEDBC 7F08A28C 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0BEDC0 7F08A290 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0BEDC4 7F08A294 00027080 */ sll $t6, $v0, 2 +/* 0BEDC8 7F08A298 01CF1821 */ addu $v1, $t6, $t7 +/* 0BEDCC 7F08A29C 8C780000 */ lw $t8, ($v1) +/* 0BEDD0 7F08A2A0 8FB9001C */ lw $t9, 0x1c($sp) +/* 0BEDD4 7F08A2A4 C70404B0 */ lwc1 $f4, 0x4b0($t8) +/* 0BEDD8 7F08A2A8 E7240000 */ swc1 $f4, ($t9) +/* 0BEDDC 7F08A2AC 0FC225E0 */ jal sub_GAME_7F089780 +/* 0BEDE0 7F08A2B0 8C640000 */ lw $a0, ($v1) +/* 0BEDE4 7F08A2B4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0BEDE8 7F08A2B8 44811000 */ mtc1 $at, $f2 +/* 0BEDEC 7F08A2BC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BEDF0 7F08A2C0 44813000 */ mtc1 $at, $f6 +/* 0BEDF4 7F08A2C4 8FA80020 */ lw $t0, 0x20($sp) +/* 0BEDF8 7F08A2C8 46060200 */ add.s $f8, $f0, $f6 +/* 0BEDFC 7F08A2CC 46024281 */ sub.s $f10, $f8, $f2 +/* 0BEE00 7F08A2D0 E50A0000 */ swc1 $f10, ($t0) +/* 0BEE04 7F08A2D4 8FA90024 */ lw $t1, 0x24($sp) +/* 0BEE08 7F08A2D8 E5220000 */ swc1 $f2, ($t1) +/* 0BEE0C 7F08A2DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEE10 7F08A2E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BEE14 7F08A2E4 03E00008 */ jr $ra +/* 0BEE18 7F08A2E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_BONDdata_watch_health(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_watch_health +/* 0BEE1C 7F08A2EC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BEE20 7F08A2F0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEE24 7F08A2F4 03E00008 */ jr $ra +/* 0BEE28 7F08A2F8 C5C000DC */ lwc1 $f0, 0xdc($t6) +) +#endif + + + +f32 get_BONDdata_watch_armor(void) { + return pPlayer->bondarmour; +} + + + + + +#ifdef NONMATCHING +void add_BONDdata_watch_armor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_BONDdata_watch_armor +/* 0BEE3C 7F08A30C 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 0BEE40 7F08A310 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 0BEE44 7F08A314 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BEE48 7F08A318 C4440040 */ lwc1 $f4, 0x40($v0) +/* 0BEE4C 7F08A31C 460C2180 */ add.s $f6, $f4, $f12 +/* 0BEE50 7F08A320 E4460040 */ swc1 $f6, 0x40($v0) +/* 0BEE54 7F08A324 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEE58 7F08A328 03E00008 */ jr $ra +/* 0BEE5C 7F08A32C E5CC00E0 */ swc1 $f12, 0xe0($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void reset_intro_camera_message_dialogs_for_BONDdata(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel reset_intro_camera_message_dialogs_for_BONDdata +/* 0BEE60 7F08A330 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEE64 7F08A334 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0BEE68 7F08A338 8C4E0000 */ lw $t6, ($v0) +/* 0BEE6C 7F08A33C 240FFFFF */ li $t7, -1 +/* 0BEE70 7F08A340 3C018003 */ lui $at, %hi(display_statusbar) +/* 0BEE74 7F08A344 ADC011D8 */ sw $zero, 0x11d8($t6) +/* 0BEE78 7F08A348 8C580000 */ lw $t8, ($v0) +/* 0BEE7C 7F08A34C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0BEE80 7F08A350 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0BEE84 7F08A354 AF0F11DC */ sw $t7, 0x11dc($t8) +/* 0BEE88 7F08A358 AC20689C */ sw $zero, %lo(display_statusbar)($at) +/* 0BEE8C 7F08A35C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0BEE90 7F08A360 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BEE94 7F08A364 AC206898 */ sw $zero, %lo(status_bar_text_buffer_index)($at) +/* 0BEE98 7F08A368 3C018003 */ lui $at, %hi(copy_1stfonttable) +/* 0BEE9C 7F08A36C 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 0BEEA0 7F08A370 AC3968A0 */ sw $t9, %lo(copy_1stfonttable)($at) +/* 0BEEA4 7F08A374 3C018003 */ lui $at, %hi(copy_2ndfonttable) +/* 0BEEA8 7F08A378 03E00008 */ jr $ra +/* 0BEEAC 7F08A37C AC2868A4 */ sw $t0, %lo(copy_2ndfonttable)($at) +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel reset_intro_camera_message_dialogs_for_BONDdata +/* 0BF5D8 7F08AA68 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF5DC 7F08AA6C 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0BF5E0 7F08AA70 8C4E0000 */ lw $t6, ($v0) +/* 0BF5E4 7F08AA74 240FFFFF */ li $t7, -1 +/* 0BF5E8 7F08AA78 3C018003 */ lui $at, %hi(display_statusbar) # $at, 0x8003 +/* 0BF5EC 7F08AA7C ADC011D8 */ sw $zero, 0x11d8($t6) +/* 0BF5F0 7F08AA80 8C580000 */ lw $t8, ($v0) +/* 0BF5F4 7F08AA84 AF0F11DC */ sw $t7, 0x11dc($t8) +/* 0BF5F8 7F08AA88 AC2068DC */ sw $zero, %lo(display_statusbar)($at) +/* 0BF5FC 7F08AA8C 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BF600 7F08AA90 03E00008 */ jr $ra +/* 0BF604 7F08AA94 AC2068D8 */ sw $zero, %lo(status_bar_text_buffer_index)($at) +) +#endif + +#endif + + + +#ifdef NONMATCHING +void unset_flags_in_BONDdata_stationary_intro_cam(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unset_flags_in_BONDdata_stationary_intro_cam +/* 0BEEB0 7F08A380 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEEB4 7F08A384 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEEB8 7F08A388 00807827 */ not $t7, $a0 +/* 0BEEBC 7F08A38C 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BEEC0 7F08A390 01CFC024 */ and $t8, $t6, $t7 +/* 0BEEC4 7F08A394 03E00008 */ jr $ra +/* 0BEEC8 7F08A398 AC5811D8 */ sw $t8, 0x11d8($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_flags_in_BONDdata_stationary_intro_cam(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_flags_in_BONDdata_stationary_intro_cam +/* 0BEECC 7F08A39C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEED0 7F08A3A0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEED4 7F08A3A4 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BEED8 7F08A3A8 01C47825 */ or $t7, $t6, $a0 +/* 0BEEDC 7F08A3AC 03E00008 */ jr $ra +/* 0BEEE0 7F08A3B0 AC4F11D8 */ sw $t7, 0x11d8($v0) +) +#endif + + + + +#ifdef VERSION_US +#ifdef NONMATCHING +void sub_GAME_7F08A3B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A3B4 +/* 0BEEE4 7F08A3B4 3C018003 */ lui $at, %hi(copy_2ndfonttable) +/* 0BEEE8 7F08A3B8 AC2468A4 */ sw $a0, %lo(copy_2ndfonttable)($at) +/* 0BEEEC 7F08A3BC 3C018003 */ lui $at, %hi(copy_1stfonttable) +/* 0BEEF0 7F08A3C0 03E00008 */ jr $ra +/* 0BEEF4 7F08A3C4 AC2568A0 */ sw $a1, %lo(copy_1stfonttable)($at) +) +#endif +#endif + + + + +#ifdef NONMATCHING +void display_string_in_lower_left_corner(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel display_string_in_lower_left_corner +/* 0BEEF8 7F08A3C8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BEEFC 7F08A3CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEF00 7F08A3D0 0FC26919 */ jal get_num_players +/* 0BEF04 7F08A3D4 AFA40028 */ sw $a0, 0x28($sp) +/* 0BEF08 7F08A3D8 24010001 */ li $at, 1 +/* 0BEF0C 7F08A3DC 14410020 */ bne $v0, $at, .L7F08A460 +/* 0BEF10 7F08A3E0 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF14 7F08A3E4 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF18 7F08A3E8 8CE30000 */ lw $v1, ($a3) +/* 0BEF1C 7F08A3EC 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079A28) +/* 0BEF20 7F08A3F0 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) +/* 0BEF24 7F08A3F4 28610005 */ slti $at, $v1, 5 +/* 0BEF28 7F08A3F8 10200036 */ beqz $at, .L7F08A4D4 +/* 0BEF2C 7F08A3FC 27399A28 */ addiu $t9, %lo(dword_CODE_bss_80079A28) # addiu $t9, $t9, -0x65d8 +/* 0BEF30 7F08A400 8DCE6898 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) +/* 0BEF34 7F08A404 24010005 */ li $at, 5 +/* 0BEF38 7F08A408 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEF3C 7F08A40C 01C31021 */ addu $v0, $t6, $v1 +/* 0BEF40 7F08A410 0041001A */ div $zero, $v0, $at +/* 0BEF44 7F08A414 00007810 */ mfhi $t7 +/* 0BEF48 7F08A418 000FC080 */ sll $t8, $t7, 2 +/* 0BEF4C 7F08A41C 030FC023 */ subu $t8, $t8, $t7 +/* 0BEF50 7F08A420 0018C0C0 */ sll $t8, $t8, 3 +/* 0BEF54 7F08A424 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF58 7F08A428 0018C080 */ sll $t8, $t8, 2 +/* 0BEF5C 7F08A42C 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF60 7F08A430 03192021 */ addu $a0, $t8, $t9 +/* 0BEF64 7F08A434 AFA40018 */ sw $a0, 0x18($sp) +/* 0BEF68 7F08A438 0C0029E8 */ jal something_with_strings +/* 0BEF6C 7F08A43C 24060064 */ li $a2, 100 +/* 0BEF70 7F08A440 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF74 7F08A444 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF78 7F08A448 8CE80000 */ lw $t0, ($a3) +/* 0BEF7C 7F08A44C 8FA40018 */ lw $a0, 0x18($sp) +/* 0BEF80 7F08A450 25090001 */ addiu $t1, $t0, 1 +/* 0BEF84 7F08A454 ACE90000 */ sw $t1, ($a3) +/* 0BEF88 7F08A458 1000001E */ b .L7F08A4D4 +/* 0BEF8C 7F08A45C A0800064 */ sb $zero, 0x64($a0) +.L7F08A460: +/* 0BEF90 7F08A460 0FC26C54 */ jal get_cur_playernum +/* 0BEF94 7F08A464 00000000 */ nop +/* 0BEF98 7F08A468 00025080 */ sll $t2, $v0, 2 +/* 0BEF9C 7F08A46C 01425023 */ subu $t2, $t2, $v0 +/* 0BEFA0 7F08A470 000A50C0 */ sll $t2, $t2, 3 +/* 0BEFA4 7F08A474 01425021 */ addu $t2, $t2, $v0 +/* 0BEFA8 7F08A478 000A5080 */ sll $t2, $t2, 2 +/* 0BEFAC 7F08A47C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_80079A28) +/* 0BEFB0 7F08A480 256B9A28 */ addiu $t3, %lo(dword_CODE_bss_80079A28) # addiu $t3, $t3, -0x65d8 +/* 0BEFB4 7F08A484 01425021 */ addu $t2, $t2, $v0 +/* 0BEFB8 7F08A488 AFA20020 */ sw $v0, 0x20($sp) +/* 0BEFBC 7F08A48C 014B2021 */ addu $a0, $t2, $t3 +/* 0BEFC0 7F08A490 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEFC4 7F08A494 0C0029E8 */ jal something_with_strings +/* 0BEFC8 7F08A498 24060064 */ li $a2, 100 +/* 0BEFCC 7F08A49C 8FAC0020 */ lw $t4, 0x20($sp) +/* 0BEFD0 7F08A4A0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BEFD4 7F08A4A4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEFD8 7F08A4A8 000C6880 */ sll $t5, $t4, 2 +/* 0BEFDC 7F08A4AC 01AC6823 */ subu $t5, $t5, $t4 +/* 0BEFE0 7F08A4B0 000D68C0 */ sll $t5, $t5, 3 +/* 0BEFE4 7F08A4B4 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFE8 7F08A4B8 000D6880 */ sll $t5, $t5, 2 +/* 0BEFEC 7F08A4BC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+100) +/* 0BEFF0 7F08A4C0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFF4 7F08A4C4 002D0821 */ addu $at, $at, $t5 +/* 0BEFF8 7F08A4C8 A0209A8C */ sb $zero, %lo(dword_CODE_bss_80079A28+100)($at) +/* 0BEFFC 7F08A4CC 240E0078 */ li $t6, 120 +/* 0BF000 7F08A4D0 ADEE11DC */ sw $t6, 0x11dc($t7) +.L7F08A4D4: +/* 0BF004 7F08A4D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF008 7F08A4D8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BF00C 7F08A4DC 03E00008 */ jr $ra +/* 0BF010 7F08A4E0 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +//JP FIXME hardcoded pointer values +//id/find in data +//80079c80 +//80079c68 +GLOBAL_ASM( +.text +glabel display_string_in_lower_left_corner +/* 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 get_num_players +/* 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(dword_CODE_bss_80079A28) # $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(dword_CODE_bss_80079A28) # 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 something_with_strings +/* 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(0x80079C80) +/* 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(0x80079C80)($at) +/* 0BF6E4 7F08AB74 3C018008 */ lui $at, %hi(0x80079C68) +/* 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(0x80079C68)($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(dword_CODE_bss_80079A28) # $t6, 0x8008 +/* 0BF728 7F08ABB8 25CE9A68 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # 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 something_with_strings +/* 0BF740 7F08ABD0 AFA20020 */ sw $v0, 0x20($sp) +/* 0BF744 7F08ABD4 8FA70020 */ lw $a3, 0x20($sp) +/* 0BF748 7F08ABD8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+0x64) #dword_CODE_bss_80079A28 +/* 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(dword_CODE_bss_80079A28+0x64)($at) +/* 0BF770 7F08AC00 3C018008 */ lui $at, 0x8008 +/* 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(pPlayer) # $t2, 0x8008 +/* 0BF784 7F08AC14 AC389C80 */ sw $t8, -0x6380($at) +/* 0BF788 7F08AC18 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF78C 7F08AC1C 3C018008 */ lui $at, 0x8008 +/* 0BF790 7F08AC20 00230821 */ addu $at, $at, $v1 +/* 0BF794 7F08AC24 24090078 */ li $t1, 120 +/* 0BF798 7F08AC28 AC399C68 */ sw $t9, -0x6398($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 + +#endif + +#ifdef VERSION_JP +void jp_display_string_in_lower_left_corner(char *string) +{ + display_string_in_lower_left_corner(string,ptrSecondFontTableSmall,ptrFirstFontTableSmall); +} +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F08A4E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A4E4 +/* 0BF014 7F08A4E4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF018 7F08A4E8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF01C 7F08A4EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BF020 7F08A4F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BF024 7F08A4F4 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF028 7F08A4F8 55C0003D */ bnezl $t6, .L7F08A5F0 +/* 0BF02C 7F08A4FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF030 7F08A500 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 0BF034 7F08A504 55E0003A */ bnezl $t7, .L7F08A5F0 +/* 0BF038 7F08A508 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF03C 7F08A50C 8C4311DC */ lw $v1, 0x11dc($v0) +/* 0BF040 7F08A510 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BF044 7F08A514 04600022 */ bltz $v1, .L7F08A5A0 +/* 0BF048 7F08A518 00000000 */ nop +/* 0BF04C 7F08A51C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BF050 7F08A520 0078C823 */ subu $t9, $v1, $t8 +/* 0BF054 7F08A524 0FC26919 */ jal get_num_players +/* 0BF058 7F08A528 AC5911DC */ sw $t9, 0x11dc($v0) +/* 0BF05C 7F08A52C 24010001 */ li $at, 1 +/* 0BF060 7F08A530 1441001B */ bne $v0, $at, .L7F08A5A0 +/* 0BF064 7F08A534 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF068 7F08A538 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF06C 7F08A53C 8C4311DC */ lw $v1, 0x11dc($v0) +/* 0BF070 7F08A540 0461000F */ bgez $v1, .L7F08A580 +/* 0BF074 7F08A544 00000000 */ nop +/* 0BF078 7F08A548 3C028003 */ lui $v0, %hi(status_bar_text_buffer_index) +/* 0BF07C 7F08A54C 24426898 */ addiu $v0, %lo(status_bar_text_buffer_index) # addiu $v0, $v0, 0x6898 +/* 0BF080 7F08A550 8C480000 */ lw $t0, ($v0) +/* 0BF084 7F08A554 24010005 */ li $at, 5 +/* 0BF088 7F08A558 3C0B8003 */ lui $t3, %hi(display_statusbar) +/* 0BF08C 7F08A55C 25090001 */ addiu $t1, $t0, 1 +/* 0BF090 7F08A560 0121001A */ div $zero, $t1, $at +/* 0BF094 7F08A564 00005010 */ mfhi $t2 +/* 0BF098 7F08A568 AC4A0000 */ sw $t2, ($v0) +/* 0BF09C 7F08A56C 8D6B689C */ lw $t3, %lo(display_statusbar)($t3) +/* 0BF0A0 7F08A570 3C018003 */ lui $at, %hi(display_statusbar) +/* 0BF0A4 7F08A574 256CFFFF */ addiu $t4, $t3, -1 +/* 0BF0A8 7F08A578 10000009 */ b .L7F08A5A0 +/* 0BF0AC 7F08A57C AC2C689C */ sw $t4, %lo(display_statusbar)($at) +.L7F08A580: +/* 0BF0B0 7F08A580 3C0D8003 */ lui $t5, %hi(display_statusbar) +/* 0BF0B4 7F08A584 8DAD689C */ lw $t5, %lo(display_statusbar)($t5) +/* 0BF0B8 7F08A588 29A10002 */ slti $at, $t5, 2 +/* 0BF0BC 7F08A58C 14200004 */ bnez $at, .L7F08A5A0 +/* 0BF0C0 7F08A590 2861001F */ slti $at, $v1, 0x1f +/* 0BF0C4 7F08A594 14200002 */ bnez $at, .L7F08A5A0 +/* 0BF0C8 7F08A598 240E001E */ li $t6, 30 +/* 0BF0CC 7F08A59C AC4E11DC */ sw $t6, 0x11dc($v0) +.L7F08A5A0: +/* 0BF0D0 7F08A5A0 0FC26919 */ jal get_num_players +/* 0BF0D4 7F08A5A4 00000000 */ nop +/* 0BF0D8 7F08A5A8 24010001 */ li $at, 1 +/* 0BF0DC 7F08A5AC 1441000F */ bne $v0, $at, .L7F08A5EC +/* 0BF0E0 7F08A5B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF0E4 7F08A5B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF0E8 7F08A5B8 3C038003 */ lui $v1, %hi(display_statusbar) +/* 0BF0EC 7F08A5BC 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF0F0 7F08A5C0 05E3000B */ bgezl $t7, .L7F08A5F0 +/* 0BF0F4 7F08A5C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF0F8 7F08A5C8 8C63689C */ lw $v1, %lo(display_statusbar)($v1) +/* 0BF0FC 7F08A5CC 18600007 */ blez $v1, .L7F08A5EC +/* 0BF100 7F08A5D0 28610002 */ slti $at, $v1, 2 +/* 0BF104 7F08A5D4 14200004 */ bnez $at, .L7F08A5E8 +/* 0BF108 7F08A5D8 24190078 */ li $t9, 120 +/* 0BF10C 7F08A5DC 2418001E */ li $t8, 30 +/* 0BF110 7F08A5E0 10000002 */ b .L7F08A5EC +/* 0BF114 7F08A5E4 AC5811DC */ sw $t8, 0x11dc($v0) +.L7F08A5E8: +/* 0BF118 7F08A5E8 AC5911DC */ sw $t9, 0x11dc($v0) +.L7F08A5EC: +/* 0BF11C 7F08A5EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A5F0: +/* 0BF120 7F08A5F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BF124 7F08A5F4 03E00008 */ jr $ra +/* 0BF128 7F08A5F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A5FC(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A5FC +/* 0BF12C 7F08A5FC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF130 7F08A600 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF134 7F08A604 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0BF138 7F08A608 AFBF0034 */ sw $ra, 0x34($sp) +/* 0BF13C 7F08A60C AFA40060 */ sw $a0, 0x60($sp) +/* 0BF140 7F08A610 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF144 7F08A614 55C000B6 */ bnezl $t6, .L7F08A8F0 +/* 0BF148 7F08A618 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF14C 7F08A61C 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF150 7F08A620 05E200B3 */ bltzl $t7, .L7F08A8F0 +/* 0BF154 7F08A624 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF158 7F08A628 8C5829C4 */ lw $t8, 0x29c4($v0) +/* 0BF15C 7F08A62C 570000B0 */ bnezl $t8, .L7F08A8F0 +/* 0BF160 7F08A630 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF164 7F08A634 0FC26919 */ jal get_num_players +/* 0BF168 7F08A638 AFA0005C */ sw $zero, 0x5c($sp) +/* 0BF16C 7F08A63C 24010001 */ li $at, 1 +/* 0BF170 7F08A640 14410010 */ bne $v0, $at, .L7F08A684 +/* 0BF174 7F08A644 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BF178 7F08A648 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) +/* 0BF17C 7F08A64C 8F396898 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) +/* 0BF180 7F08A650 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079A28) +/* 0BF184 7F08A654 00194080 */ sll $t0, $t9, 2 +/* 0BF188 7F08A658 01194023 */ subu $t0, $t0, $t9 +/* 0BF18C 7F08A65C 000840C0 */ sll $t0, $t0, 3 +/* 0BF190 7F08A660 01194021 */ addu $t0, $t0, $t9 +/* 0BF194 7F08A664 00084080 */ sll $t0, $t0, 2 +/* 0BF198 7F08A668 01194021 */ addu $t0, $t0, $t9 +/* 0BF19C 7F08A66C 01284821 */ addu $t1, $t1, $t0 +/* 0BF1A0 7F08A670 91299A28 */ lbu $t1, %lo(dword_CODE_bss_80079A28)($t1) +/* 0BF1A4 7F08A674 1120000D */ beqz $t1, .L7F08A6AC +/* 0BF1A8 7F08A678 00000000 */ nop +/* 0BF1AC 7F08A67C 1000000B */ b .L7F08A6AC +/* 0BF1B0 7F08A680 24030001 */ li $v1, 1 +.L7F08A684: +/* 0BF1B4 7F08A684 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF1B8 7F08A688 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF1BC 7F08A68C 8D4B11DC */ lw $t3, 0x11dc($t2) +/* 0BF1C0 7F08A690 05600006 */ bltz $t3, .L7F08A6AC +/* 0BF1C4 7F08A694 00000000 */ nop +/* 0BF1C8 7F08A698 0FC26C54 */ jal get_cur_playernum +/* 0BF1CC 7F08A69C 00000000 */ nop +/* 0BF1D0 7F08A6A0 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BF1D4 7F08A6A4 AC226898 */ sw $v0, %lo(status_bar_text_buffer_index)($at) +/* 0BF1D8 7F08A6A8 24030001 */ li $v1, 1 +.L7F08A6AC: +/* 0BF1DC 7F08A6AC 50600090 */ beql $v1, $zero, .L7F08A8F0 +/* 0BF1E0 7F08A6B0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF1E4 7F08A6B4 0FC2B366 */ jal microcode_constructor +/* 0BF1E8 7F08A6B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF1EC 7F08A6BC 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF1F0 7F08A6C0 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF1F4 7F08A6C4 3C0F8003 */ lui $t7, %hi(copy_1stfonttable) +/* 0BF1F8 7F08A6C8 8DEF68A0 */ lw $t7, %lo(copy_1stfonttable)($t7) +/* 0BF1FC 7F08A6CC 000C6880 */ sll $t5, $t4, 2 +/* 0BF200 7F08A6D0 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF204 7F08A6D4 000D68C0 */ sll $t5, $t5, 3 +/* 0BF208 7F08A6D8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF20C 7F08A6DC 000D6880 */ sll $t5, $t5, 2 +/* 0BF210 7F08A6E0 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF214 7F08A6E4 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF218 7F08A6E8 3C078003 */ lui $a3, %hi(copy_2ndfonttable) +/* 0BF21C 7F08A6EC 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF220 7F08A6F0 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF224 7F08A6F4 AFA00044 */ sw $zero, 0x44($sp) +/* 0BF228 7F08A6F8 AFA00048 */ sw $zero, 0x48($sp) +/* 0BF22C 7F08A6FC 01AE3021 */ addu $a2, $t5, $t6 +/* 0BF230 7F08A700 8CE768A4 */ lw $a3, %lo(copy_2ndfonttable)($a3) +/* 0BF234 7F08A704 27A40048 */ addiu $a0, $sp, 0x48 +/* 0BF238 7F08A708 27A50044 */ addiu $a1, $sp, 0x44 +/* 0BF23C 7F08A70C AFA00014 */ sw $zero, 0x14($sp) +/* 0BF240 7F08A710 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF244 7F08A714 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF248 7F08A718 0FC26919 */ jal get_num_players +/* 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 get_video2_settings_ulx +/* 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 get_video2_settings_ulx +/* 0BF284 7F08A754 00000000 */ nop +/* 0BF288 7F08A758 10000004 */ b .L7F08A76C +/* 0BF28C 7F08A75C 2443000A */ addiu $v1, $v0, 0xa +.L7F08A760: +/* 0BF290 7F08A760 0C001145 */ jal get_video2_settings_ulx +/* 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 get_num_players +/* 0BF2AC 7F08A77C AFA80050 */ sw $t0, 0x50($sp) +/* 0BF2B0 7F08A780 28410003 */ slti $at, $v0, 3 +/* 0BF2B4 7F08A784 10200024 */ beqz $at, .L7F08A818 +/* 0BF2B8 7F08A788 00000000 */ nop +/* 0BF2BC 7F08A78C 0FC17674 */ jal get_item_in_hand +/* 0BF2C0 7F08A790 24040001 */ li $a0, 1 +/* 0BF2C4 7F08A794 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0BF2C8 7F08A798 00402025 */ move $a0, $v0 +/* 0BF2CC 7F08A79C 1440000E */ bnez $v0, .L7F08A7D8 +/* 0BF2D0 7F08A7A0 00000000 */ nop +/* 0BF2D4 7F08A7A4 0FC15867 */ jal is_clock_drawn_onscreen +/* 0BF2D8 7F08A7A8 00000000 */ nop +/* 0BF2DC 7F08A7AC 1440000A */ bnez $v0, .L7F08A7D8 +/* 0BF2E0 7F08A7B0 00000000 */ nop +/* 0BF2E4 7F08A7B4 0C001149 */ jal get_video2_settings_uly +/* 0BF2E8 7F08A7B8 00000000 */ nop +/* 0BF2EC 7F08A7BC 0C00112B */ jal get_video2_settings_height +/* 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 get_video2_settings_uly +/* 0BF30C 7F08A7DC 00000000 */ nop +/* 0BF310 7F08A7E0 0C00112B */ jal get_video2_settings_height +/* 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 get_video2_settings_uly +/* 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 get_video2_settings_txtClipW +/* 0BF388 7F08A858 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF38C 7F08A85C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF390 7F08A860 A7A2003C */ sh $v0, 0x3c($sp) +/* 0BF394 7F08A864 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF398 7F08A868 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF39C 7F08A86C 3C0F8003 */ lui $t7, %hi(copy_2ndfonttable) +/* 0BF3A0 7F08A870 3C188003 */ lui $t8, %hi(copy_1stfonttable) +/* 0BF3A4 7F08A874 000C6880 */ sll $t5, $t4, 2 +/* 0BF3A8 7F08A878 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF3AC 7F08A87C 000D68C0 */ sll $t5, $t5, 3 +/* 0BF3B0 7F08A880 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3B4 7F08A884 8F1868A0 */ lw $t8, %lo(copy_1stfonttable)($t8) +/* 0BF3B8 7F08A888 8DEF68A4 */ lw $t7, %lo(copy_2ndfonttable)($t7) +/* 0BF3BC 7F08A88C 87A9003C */ lh $t1, 0x3c($sp) +/* 0BF3C0 7F08A890 000D6880 */ sll $t5, $t5, 2 +/* 0BF3C4 7F08A894 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF3C8 7F08A898 3C086464 */ lui $t0, (0x646464FF >> 16) # lui $t0, 0x6464 +/* 0BF3CC 7F08A89C 350864FF */ ori $t0, (0x646464FF & 0xFFFF) # ori $t0, $t0, 0x64ff +/* 0BF3D0 7F08A8A0 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF3D4 7F08A8A4 2419FFFF */ li $t9, -1 +/* 0BF3D8 7F08A8A8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3DC 7F08A8AC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF3E0 7F08A8B0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF3E4 7F08A8B4 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF3E8 7F08A8B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF3EC 7F08A8BC 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BF3F0 7F08A8C0 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BF3F4 7F08A8C4 AFA20024 */ sw $v0, 0x24($sp) +/* 0BF3F8 7F08A8C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF3FC 7F08A8CC AFA0002C */ sw $zero, 0x2c($sp) +/* 0BF400 7F08A8D0 AFB80014 */ sw $t8, 0x14($sp) +/* 0BF404 7F08A8D4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF408 7F08A8D8 0FC2B9BB */ jal jp_text_write_stuff +/* 0BF40C 7F08A8DC AFA90020 */ sw $t1, 0x20($sp) +/* 0BF410 7F08A8E0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF414 7F08A8E4 00402025 */ move $a0, $v0 +/* 0BF418 7F08A8E8 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF41C 7F08A8EC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F08A8F0: +/* 0BF420 7F08A8F0 8FA20060 */ lw $v0, 0x60($sp) +/* 0BF424 7F08A8F4 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0BF428 7F08A8F8 03E00008 */ jr $ra +/* 0BF42C 7F08A8FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A5FC +/* 0BF8F4 7F08AD84 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF8F8 7F08AD88 8C42A120 */ lw $v0, %lo(pPlayer)($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 get_num_players +/* 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(dword_CODE_bss_80079A28) +/* 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(dword_CODE_bss_80079A28)($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(pPlayer) # $t3, 0x8008 +/* 0BF980 7F08AE10 8D6BA120 */ lw $t3, %lo(pPlayer)($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(dword_CODE_bss_80079A28) # $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(dword_CODE_bss_80079A28) # 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 get_num_players +/* 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 get_video2_settings_ulx +/* 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 get_video2_settings_ulx +/* 0BFA58 7F08AEE8 00000000 */ nop +/* 0BFA5C 7F08AEEC 10000004 */ b .Ljp7F08AF00 +/* 0BFA60 7F08AEF0 2443000A */ addiu $v1, $v0, 0xa +.Ljp7F08AEF4: +/* 0BFA64 7F08AEF4 0C001145 */ jal get_video2_settings_ulx +/* 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 get_num_players +/* 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 get_item_in_hand +/* 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 get_video2_settings_uly +/* 0BFABC 7F08AF4C 00000000 */ nop +/* 0BFAC0 7F08AF50 0C00112B */ jal get_video2_settings_height +/* 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 get_video2_settings_uly +/* 0BFAE0 7F08AF70 00000000 */ nop +/* 0BFAE4 7F08AF74 0C00112B */ jal get_video2_settings_height +/* 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 get_video2_settings_uly +/* 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 get_video2_settings_txtClipW +/* 0BFB98 7F08B028 AFA20060 */ sw $v0, 0x60($sp) +/* 0BFB9C 7F08B02C 0C00110B */ jal get_video2_settings_txtClipH +/* 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(dword_CODE_bss_80079A28) # $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(dword_CODE_bss_80079A28) # 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 + +#endif + + + +void sub_GAME_7F08A900(void) +{ + upper_text_window_timer = -1; + display_upper_text_window = 0; + upper_text_buffer_index = 0; + D_800368B4 = 0; +} + + +void sub_GAME_7F08A928(int param_1) +{ + int new_var; + new_var = ~param_1; + D_800368B4 = D_800368B4 & new_var; +} + + +void sub_GAME_7F08A944(int param) { + D_800368B4 = D_800368B4 | param; +} + +#ifdef NONMATCHING +void display_string_at_top_of_screen(void) { + +} +#else +GLOBAL_ASM( +.text +glabel display_string_at_top_of_screen +/* 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(dword_CODE_bss_80079C70) +/* 0BF4B8 7F08A988 27399C70 */ addiu $t9, %lo(dword_CODE_bss_80079C70) # 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 something_with_strings +/* 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 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A9F8(void) +{ + int nextbuffer; + if ((D_800368B4 == 0) && (pPlayer->mpmenuon == 0)) + { + if ((-1) < upper_text_window_timer) + { + upper_text_window_timer = upper_text_window_timer - clock_timer; + if (upper_text_window_timer < 0) + { + nextbuffer = upper_text_buffer_index + 1; + upper_text_buffer_index = nextbuffer & 1; + if (1) + { + if (((upper_text_buffer_index + 1) < 0) && (upper_text_buffer_index != 0)) + { + upper_text_buffer_index = upper_text_buffer_index - 2; + } + } + display_upper_text_window = display_upper_text_window + (-1); + } + else + if ((1 < display_upper_text_window) && (0x3c < upper_text_window_timer)) + { + upper_text_window_timer = 0x3c; + } + } + + nextbuffer = upper_text_window_timer < 0; + if (nextbuffer && (0 < display_upper_text_window)) + { + if (1 < display_upper_text_window) + { + upper_text_window_timer = 0x3c; + return; + } + upper_text_window_timer = 0xf0; + } + } + return; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A9F8 +/* 0BF528 7F08A9F8 3C0E8003 */ lui $t6, %hi(D_800368B4) +/* 0BF52C 7F08A9FC 8DCE68B4 */ lw $t6, %lo(D_800368B4)($t6) +/* 0BF530 7F08AA00 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BF534 7F08AA04 15C00036 */ bnez $t6, .L7F08AAE0 +/* 0BF538 7F08AA08 00000000 */ nop +/* 0BF53C 7F08AA0C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BF540 7F08AA10 3C038003 */ lui $v1, %hi(upper_text_window_timer) +/* 0BF544 7F08AA14 246368B0 */ addiu $v1, %lo(upper_text_window_timer) # addiu $v1, $v1, 0x68b0 +/* 0BF548 7F08AA18 8DF829C4 */ lw $t8, 0x29c4($t7) +/* 0BF54C 7F08AA1C 17000030 */ bnez $t8, .L7F08AAE0 +/* 0BF550 7F08AA20 00000000 */ nop +/* 0BF554 7F08AA24 8C620000 */ lw $v0, ($v1) +/* 0BF558 7F08AA28 3C198005 */ lui $t9, %hi(clock_timer) +/* 0BF55C 7F08AA2C 04400020 */ bltz $v0, .L7F08AAB0 +/* 0BF560 7F08AA30 00000000 */ nop +/* 0BF564 7F08AA34 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0BF568 7F08AA38 3C048003 */ lui $a0, %hi(upper_text_buffer_index) +/* 0BF56C 7F08AA3C 248468A8 */ addiu $a0, %lo(upper_text_buffer_index) # addiu $a0, $a0, 0x68a8 +/* 0BF570 7F08AA40 00594023 */ subu $t0, $v0, $t9 +/* 0BF574 7F08AA44 AC680000 */ sw $t0, ($v1) +/* 0BF578 7F08AA48 0501000F */ bgez $t0, .L7F08AA88 +/* 0BF57C 7F08AA4C 01001025 */ move $v0, $t0 +/* 0BF580 7F08AA50 8C890000 */ lw $t1, ($a0) +/* 0BF584 7F08AA54 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF588 7F08AA58 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF58C 7F08AA5C 8CAC0000 */ lw $t4, ($a1) +/* 0BF590 7F08AA60 252A0001 */ addiu $t2, $t1, 1 +/* 0BF594 7F08AA64 05410004 */ bgez $t2, .L7F08AA78 +/* 0BF598 7F08AA68 314B0001 */ andi $t3, $t2, 1 +/* 0BF59C 7F08AA6C 11600002 */ beqz $t3, .L7F08AA78 +/* 0BF5A0 7F08AA70 00000000 */ nop +/* 0BF5A4 7F08AA74 256BFFFE */ addiu $t3, $t3, -2 +.L7F08AA78: +/* 0BF5A8 7F08AA78 258DFFFF */ addiu $t5, $t4, -1 +/* 0BF5AC 7F08AA7C AC8B0000 */ sw $t3, ($a0) +/* 0BF5B0 7F08AA80 1000000B */ b .L7F08AAB0 +/* 0BF5B4 7F08AA84 ACAD0000 */ sw $t5, ($a1) +.L7F08AA88: +/* 0BF5B8 7F08AA88 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF5BC 7F08AA8C 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF5C0 7F08AA90 8CAE0000 */ lw $t6, ($a1) +/* 0BF5C4 7F08AA94 29C10002 */ slti $at, $t6, 2 +/* 0BF5C8 7F08AA98 14200005 */ bnez $at, .L7F08AAB0 +/* 0BF5CC 7F08AA9C 2841003D */ slti $at, $v0, 0x3d +/* 0BF5D0 7F08AAA0 14200003 */ bnez $at, .L7F08AAB0 +/* 0BF5D4 7F08AAA4 00000000 */ nop +/* 0BF5D8 7F08AAA8 2402003C */ li $v0, 60 +/* 0BF5DC 7F08AAAC AC620000 */ sw $v0, ($v1) +.L7F08AAB0: +/* 0BF5E0 7F08AAB0 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF5E4 7F08AAB4 0441000A */ bgez $v0, .L7F08AAE0 +/* 0BF5E8 7F08AAB8 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF5EC 7F08AABC 8CA20000 */ lw $v0, ($a1) +/* 0BF5F0 7F08AAC0 18400007 */ blez $v0, .L7F08AAE0 +/* 0BF5F4 7F08AAC4 28410002 */ slti $at, $v0, 2 +/* 0BF5F8 7F08AAC8 14200004 */ bnez $at, .L7F08AADC +/* 0BF5FC 7F08AACC 241900F0 */ li $t9, 240 +/* 0BF600 7F08AAD0 2418003C */ li $t8, 60 +/* 0BF604 7F08AAD4 03E00008 */ jr $ra +/* 0BF608 7F08AAD8 AC780000 */ sw $t8, ($v1) + +.L7F08AADC: +/* 0BF60C 7F08AADC AC790000 */ sw $t9, ($v1) +.L7F08AAE0: +/* 0BF610 7F08AAE0 03E00008 */ jr $ra +/* 0BF614 7F08AAE4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08AAE8(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800552BC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F08AAE8 +/* 0BF618 7F08AAE8 3C0E8003 */ lui $t6, %hi(D_800368B4) +/* 0BF61C 7F08AAEC 8DCE68B4 */ lw $t6, %lo(D_800368B4)($t6) +/* 0BF620 7F08AAF0 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0BF624 7F08AAF4 AFB00038 */ sw $s0, 0x38($sp) +/* 0BF628 7F08AAF8 00808025 */ move $s0, $a0 +/* 0BF62C 7F08AAFC 15C00087 */ bnez $t6, .L7F08AD1C +/* 0BF630 7F08AB00 AFBF003C */ sw $ra, 0x3c($sp) +/* 0BF634 7F08AB04 3C0F8003 */ lui $t7, %hi(upper_text_window_timer) +/* 0BF638 7F08AB08 8DEF68B0 */ lw $t7, %lo(upper_text_window_timer)($t7) +/* 0BF63C 7F08AB0C 3C188003 */ lui $t8, %hi(upper_text_buffer_index) +/* 0BF640 7F08AB10 05E00082 */ bltz $t7, .L7F08AD1C +/* 0BF644 7F08AB14 00000000 */ nop +/* 0BF648 7F08AB18 8F1868A8 */ lw $t8, %lo(upper_text_buffer_index)($t8) +/* 0BF64C 7F08AB1C 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C70) +/* 0BF650 7F08AB20 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF654 7F08AB24 0018C880 */ sll $t9, $t8, 2 +/* 0BF658 7F08AB28 0338C821 */ addu $t9, $t9, $t8 +/* 0BF65C 7F08AB2C 0019C880 */ sll $t9, $t9, 2 +/* 0BF660 7F08AB30 0338C823 */ subu $t9, $t9, $t8 +/* 0BF664 7F08AB34 0019C8C0 */ sll $t9, $t9, 3 +/* 0BF668 7F08AB38 0338C823 */ subu $t9, $t9, $t8 +/* 0BF66C 7F08AB3C 01194021 */ addu $t0, $t0, $t9 +/* 0BF670 7F08AB40 91089C70 */ lbu $t0, %lo(dword_CODE_bss_80079C70)($t0) +/* 0BF674 7F08AB44 11000075 */ beqz $t0, .L7F08AD1C +/* 0BF678 7F08AB48 00000000 */ nop +/* 0BF67C 7F08AB4C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF680 7F08AB50 8D2A29C4 */ lw $t2, 0x29c4($t1) +/* 0BF684 7F08AB54 15400071 */ bnez $t2, .L7F08AD1C +/* 0BF688 7F08AB58 00000000 */ nop +/* 0BF68C 7F08AB5C 0FC2B366 */ jal microcode_constructor +/* 0BF690 7F08AB60 00000000 */ nop +/* 0BF694 7F08AB64 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) +/* 0BF698 7F08AB68 8D6B68A8 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0BF69C 7F08AB6C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0BF6A0 7F08AB70 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0BF6A4 7F08AB74 000B6080 */ sll $t4, $t3, 2 +/* 0BF6A8 7F08AB78 018B6021 */ addu $t4, $t4, $t3 +/* 0BF6AC 7F08AB7C 000C6080 */ sll $t4, $t4, 2 +/* 0BF6B0 7F08AB80 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6B4 7F08AB84 000C60C0 */ sll $t4, $t4, 3 +/* 0BF6B8 7F08AB88 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) +/* 0BF6BC 7F08AB8C 25AD9C70 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6390 +/* 0BF6C0 7F08AB90 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0BF6C4 7F08AB94 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6C8 7F08AB98 00408025 */ move $s0, $v0 +/* 0BF6CC 7F08AB9C AFA000D4 */ sw $zero, 0xd4($sp) +/* 0BF6D0 7F08ABA0 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0BF6D4 7F08ABA4 018D3021 */ addu $a2, $t4, $t5 +/* 0BF6D8 7F08ABA8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0BF6DC 7F08ABAC 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 0BF6E0 7F08ABB0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0BF6E4 7F08ABB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0BF6E8 7F08ABB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF6EC 7F08ABBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0BF6F0 7F08ABC0 3C0F8003 */ lui $t7, %hi(camera_8003642C) +/* 0BF6F4 7F08ABC4 8DEF642C */ lw $t7, %lo(camera_8003642C)($t7) +/* 0BF6F8 7F08ABC8 11E0001B */ beqz $t7, .L7F08AC38 +/* 0BF6FC 7F08ABCC 00000000 */ nop +/* 0BF700 7F08ABD0 0C001145 */ jal get_video2_settings_ulx +/* 0BF704 7F08ABD4 00000000 */ nop +/* 0BF708 7F08ABD8 24580046 */ addiu $t8, $v0, 0x46 +/* 0BF70C 7F08ABDC 0C001149 */ jal get_video2_settings_uly +/* 0BF710 7F08ABE0 AFB800E4 */ sw $t8, 0xe4($sp) +/* 0BF714 7F08ABE4 00401825 */ move $v1, $v0 +/* 0BF718 7F08ABE8 24630020 */ addiu $v1, $v1, 0x20 +/* 0BF71C 7F08ABEC 2404000B */ li $a0, 11 +/* 0BF720 7F08ABF0 0064001A */ div $zero, $v1, $a0 +/* 0BF724 7F08ABF4 14800002 */ bnez $a0, .L7F08AC00 +/* 0BF728 7F08ABF8 00000000 */ nop +/* 0BF72C 7F08ABFC 0007000D */ break 7 +.L7F08AC00: +/* 0BF730 7F08AC00 2401FFFF */ li $at, -1 +/* 0BF734 7F08AC04 14810004 */ bne $a0, $at, .L7F08AC18 +/* 0BF738 7F08AC08 3C018000 */ lui $at, 0x8000 +/* 0BF73C 7F08AC0C 14610002 */ bne $v1, $at, .L7F08AC18 +/* 0BF740 7F08AC10 00000000 */ nop +/* 0BF744 7F08AC14 0006000D */ break 6 +.L7F08AC18: +/* 0BF748 7F08AC18 00001812 */ mflo $v1 +/* 0BF74C 7F08AC1C 00000000 */ nop +/* 0BF750 7F08AC20 00000000 */ nop +/* 0BF754 7F08AC24 00640019 */ multu $v1, $a0 +/* 0BF758 7F08AC28 00001812 */ mflo $v1 +/* 0BF75C 7F08AC2C 2463FFFE */ addiu $v1, $v1, -2 +/* 0BF760 7F08AC30 10000008 */ b .L7F08AC54 +/* 0BF764 7F08AC34 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC38: +/* 0BF768 7F08AC38 0C001145 */ jal get_video2_settings_ulx +/* 0BF76C 7F08AC3C 00000000 */ nop +/* 0BF770 7F08AC40 2459001E */ addiu $t9, $v0, 0x1e +/* 0BF774 7F08AC44 0C001149 */ jal get_video2_settings_uly +/* 0BF778 7F08AC48 AFB900E4 */ sw $t9, 0xe4($sp) +/* 0BF77C 7F08AC4C 2443000D */ addiu $v1, $v0, 0xd +/* 0BF780 7F08AC50 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC54: +/* 0BF784 7F08AC54 AFA300E0 */ sw $v1, 0xe0($sp) +/* 0BF788 7F08AC58 00684821 */ addu $t1, $v1, $t0 +/* 0BF78C 7F08AC5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF790 7F08AC60 AFA900DC */ sw $t1, 0xdc($sp) +/* 0BF794 7F08AC64 8FA300E0 */ lw $v1, 0xe0($sp) +/* 0BF798 7F08AC68 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0BF79C 7F08AC6C 240B0064 */ li $t3, 100 +/* 0BF7A0 7F08AC70 AFAB0014 */ sw $t3, 0x14($sp) +/* 0BF7A4 7F08AC74 02002025 */ move $a0, $s0 +/* 0BF7A8 7F08AC78 00002825 */ move $a1, $zero +/* 0BF7AC 7F08AC7C 00403825 */ move $a3, $v0 +/* 0BF7B0 7F08AC80 2466FFFE */ addiu $a2, $v1, -2 +/* 0BF7B4 7F08AC84 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BF7B8 7F08AC88 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BF7BC 7F08AC8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF7C0 7F08AC90 00408025 */ move $s0, $v0 +/* 0BF7C4 7F08AC94 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF7C8 7F08AC98 A7A20048 */ sh $v0, 0x48($sp) +/* 0BF7CC 7F08AC9C 3C0C8003 */ lui $t4, %hi(upper_text_buffer_index) +/* 0BF7D0 7F08ACA0 8D8C68A8 */ lw $t4, %lo(upper_text_buffer_index)($t4) +/* 0BF7D4 7F08ACA4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 0BF7D8 7F08ACA8 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 0BF7DC 7F08ACAC 000C6880 */ sll $t5, $t4, 2 +/* 0BF7E0 7F08ACB0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF7E4 7F08ACB4 000D6880 */ sll $t5, $t5, 2 +/* 0BF7E8 7F08ACB8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF7EC 7F08ACBC 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 0BF7F0 7F08ACC0 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 0BF7F4 7F08ACC4 87A80048 */ lh $t0, 0x48($sp) +/* 0BF7F8 7F08ACC8 000D68C0 */ sll $t5, $t5, 3 +/* 0BF7FC 7F08ACCC 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079C70) +/* 0BF800 7F08ACD0 25CE9C70 */ addiu $t6, %lo(dword_CODE_bss_80079C70) # addiu $t6, $t6, -0x6390 +/* 0BF804 7F08ACD4 2419FFFF */ li $t9, -1 +/* 0BF808 7F08ACD8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF80C 7F08ACDC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF810 7F08ACE0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF814 7F08ACE4 02002025 */ move $a0, $s0 +/* 0BF818 7F08ACE8 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BF81C 7F08ACEC 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0BF820 7F08ACF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0BF824 7F08ACF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0BF828 7F08ACF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF82C 7F08ACFC AFB80014 */ sw $t8, 0x14($sp) +/* 0BF830 7F08AD00 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF834 7F08AD04 0FC2B6AF */ jal en_text_write_stuff +/* 0BF838 7F08AD08 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF83C 7F08AD0C 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF840 7F08AD10 00402025 */ move $a0, $v0 +/* 0BF844 7F08AD14 100000F1 */ b .L7F08B0DC +/* 0BF848 7F08AD18 00408025 */ move $s0, $v0 +.L7F08AD1C: +/* 0BF84C 7F08AD1C 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0BF850 7F08AD20 00000000 */ nop +/* 0BF854 7F08AD24 104000ED */ beqz $v0, .L7F08B0DC +/* 0BF858 7F08AD28 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF85C 7F08AD2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF860 7F08AD30 C4400498 */ lwc1 $f0, 0x498($v0) +/* 0BF864 7F08AD34 C44E04A0 */ lwc1 $f14, 0x4a0($v0) +/* 0BF868 7F08AD38 0FC16A8C */ jal atan2f +/* 0BF86C 7F08AD3C 46000307 */ neg.s $f12, $f0 +/* 0BF870 7F08AD40 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BF874 7F08AD44 44812000 */ mtc1 $at, $f4 +/* 0BF878 7F08AD48 3C018005 */ lui $at, %hi(D_800552BC) +/* 0BF87C 7F08AD4C C42852BC */ lwc1 $f8, %lo(D_800552BC)($at) +/* 0BF880 7F08AD50 46040182 */ mul.s $f6, $f0, $f4 +/* 0BF884 7F08AD54 3C0C8003 */ lui $t4, %hi(D_800368B8) +/* 0BF888 7F08AD58 258C68B8 */ addiu $t4, %lo(D_800368B8) # addiu $t4, $t4, 0x68b8 +/* 0BF88C 7F08AD5C 27AB004C */ addiu $t3, $sp, 0x4c +/* 0BF890 7F08AD60 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BF894 7F08AD64 46083283 */ div.s $f10, $f6, $f8 +/* 0BF898 7F08AD68 4600540D */ trunc.w.s $f16, $f10 +/* 0BF89C 7F08AD6C 440A8000 */ mfc1 $t2, $f16 +/* 0BF8A0 7F08AD70 00000000 */ nop +/* 0BF8A4 7F08AD74 AFAA0068 */ sw $t2, 0x68($sp) +/* 0BF8A8 7F08AD78 8D810000 */ lw $at, ($t4) +/* 0BF8AC 7F08AD7C 8D8F0004 */ lw $t7, 4($t4) +/* 0BF8B0 7F08AD80 AD610000 */ sw $at, ($t3) +/* 0BF8B4 7F08AD84 8D810008 */ lw $at, 8($t4) +/* 0BF8B8 7F08AD88 AD6F0004 */ sw $t7, 4($t3) +/* 0BF8BC 7F08AD8C 8D8F000C */ lw $t7, 0xc($t4) +/* 0BF8C0 7F08AD90 AD610008 */ sw $at, 8($t3) +/* 0BF8C4 7F08AD94 8D810010 */ lw $at, 0x10($t4) +/* 0BF8C8 7F08AD98 AD6F000C */ sw $t7, 0xc($t3) +/* 0BF8CC 7F08AD9C 8D8F0014 */ lw $t7, 0x14($t4) +/* 0BF8D0 7F08ADA0 AD610010 */ sw $at, 0x10($t3) +/* 0BF8D4 7F08ADA4 9981001A */ lwr $at, 0x1a($t4) +/* 0BF8D8 7F08ADA8 AD6F0014 */ sw $t7, 0x14($t3) +/* 0BF8DC 7F08ADAC B961001A */ swr $at, 0x1a($t3) +/* 0BF8E0 7F08ADB0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BF8E4 7F08ADB4 8F190488 */ lw $t9, 0x488($t8) +/* 0BF8E8 7F08ADB8 0FC2D778 */ jal sub_GAME_7F0B5DE0 +/* 0BF8EC 7F08ADBC 93240003 */ lbu $a0, 3($t9) +/* 0BF8F0 7F08ADC0 3C058005 */ lui $a1, %hi(a8s) +/* 0BF8F4 7F08ADC4 24A54FC0 */ addiu $a1, %lo(a8s) # addiu $a1, $a1, 0x4fc0 +/* 0BF8F8 7F08ADC8 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BF8FC 7F08ADCC 0C002B25 */ jal sprintf +/* 0BF900 7F08ADD0 00403025 */ move $a2, $v0 +/* 0BF904 7F08ADD4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BF908 7F08ADD8 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BF90C 7F08ADDC 3C058005 */ lui $a1, %hi(aX4_0f) +/* 0BF910 7F08ADE0 24A54FC4 */ addiu $a1, %lo(aX4_0f) # addiu $a1, $a1, 0x4fc4 +/* 0BF914 7F08ADE4 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0BF918 7F08ADE8 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BF91C 7F08ADEC 46009121 */ cvt.d.s $f4, $f18 +/* 0BF920 7F08ADF0 44072000 */ mfc1 $a3, $f4 +/* 0BF924 7F08ADF4 44062800 */ mfc1 $a2, $f5 +/* 0BF928 7F08ADF8 0C002B25 */ jal sprintf +/* 0BF92C 7F08ADFC 00000000 */ nop +/* 0BF930 7F08AE00 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF934 7F08AE04 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF938 7F08AE08 3C058005 */ lui $a1, %hi(aY4_0f) +/* 0BF93C 7F08AE0C 24A54FCC */ addiu $a1, %lo(aY4_0f) # addiu $a1, $a1, 0x4fcc +/* 0BF940 7F08AE10 C5260490 */ lwc1 $f6, 0x490($t1) +/* 0BF944 7F08AE14 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0BF948 7F08AE18 46003221 */ cvt.d.s $f8, $f6 +/* 0BF94C 7F08AE1C 44074000 */ mfc1 $a3, $f8 +/* 0BF950 7F08AE20 44064800 */ mfc1 $a2, $f9 +/* 0BF954 7F08AE24 0C002B25 */ jal sprintf +/* 0BF958 7F08AE28 00000000 */ nop +/* 0BF95C 7F08AE2C 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF960 7F08AE30 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF964 7F08AE34 3C058005 */ lui $a1, %hi(aZ4_0f) +/* 0BF968 7F08AE38 24A54FD4 */ addiu $a1, %lo(aZ4_0f) # addiu $a1, $a1, 0x4fd4 +/* 0BF96C 7F08AE3C C54A0494 */ lwc1 $f10, 0x494($t2) +/* 0BF970 7F08AE40 27A40094 */ addiu $a0, $sp, 0x94 +/* 0BF974 7F08AE44 46005421 */ cvt.d.s $f16, $f10 +/* 0BF978 7F08AE48 44078000 */ mfc1 $a3, $f16 +/* 0BF97C 7F08AE4C 44068800 */ mfc1 $a2, $f17 +/* 0BF980 7F08AE50 0C002B25 */ jal sprintf +/* 0BF984 7F08AE54 00000000 */ nop +/* 0BF988 7F08AE58 8FA70068 */ lw $a3, 0x68($sp) +/* 0BF98C 7F08AE5C 2401002D */ li $at, 45 +/* 0BF990 7F08AE60 3C058005 */ lui $a1, %hi(aS3d) +/* 0BF994 7F08AE64 24EE0016 */ addiu $t6, $a3, 0x16 +/* 0BF998 7F08AE68 01C1001A */ div $zero, $t6, $at +/* 0BF99C 7F08AE6C 00006812 */ mflo $t5 +/* 0BF9A0 7F08AE70 000D5880 */ sll $t3, $t5, 2 +/* 0BF9A4 7F08AE74 016D5823 */ subu $t3, $t3, $t5 +/* 0BF9A8 7F08AE78 27AC004C */ addiu $t4, $sp, 0x4c +/* 0BF9AC 7F08AE7C 016C3021 */ addu $a2, $t3, $t4 +/* 0BF9B0 7F08AE80 24A54FDC */ addiu $a1, %lo(aS3d) # addiu $a1, $a1, 0x4fdc +/* 0BF9B4 7F08AE84 0C002B25 */ jal sprintf +/* 0BF9B8 7F08AE88 27A40084 */ addiu $a0, $sp, 0x84 +/* 0BF9BC 7F08AE8C 0C001145 */ jal get_video2_settings_ulx +/* 0BF9C0 7F08AE90 00000000 */ nop +/* 0BF9C4 7F08AE94 244F0011 */ addiu $t7, $v0, 0x11 +/* 0BF9C8 7F08AE98 0C001149 */ jal get_video2_settings_uly +/* 0BF9CC 7F08AE9C AFAF0080 */ sw $t7, 0x80($sp) +/* 0BF9D0 7F08AEA0 24460011 */ addiu $a2, $v0, 0x11 +/* 0BF9D4 7F08AEA4 24D8000A */ addiu $t8, $a2, 0xa +/* 0BF9D8 7F08AEA8 AFB80074 */ sw $t8, 0x74($sp) +/* 0BF9DC 7F08AEAC AFA6007C */ sw $a2, 0x7c($sp) +/* 0BF9E0 7F08AEB0 0FC2B366 */ jal microcode_constructor +/* 0BF9E4 7F08AEB4 02002025 */ move $a0, $s0 +/* 0BF9E8 7F08AEB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF9EC 7F08AEBC 00408025 */ move $s0, $v0 +/* 0BF9F0 7F08AEC0 8FB90074 */ lw $t9, 0x74($sp) +/* 0BF9F4 7F08AEC4 24090064 */ li $t1, 100 +/* 0BF9F8 7F08AEC8 AFA90014 */ sw $t1, 0x14($sp) +/* 0BF9FC 7F08AECC 27280001 */ addiu $t0, $t9, 1 +/* 0BFA00 7F08AED0 AFA80010 */ sw $t0, 0x10($sp) +/* 0BFA04 7F08AED4 8FA6007C */ lw $a2, 0x7c($sp) +/* 0BFA08 7F08AED8 02002025 */ move $a0, $s0 +/* 0BFA0C 7F08AEDC 00002825 */ move $a1, $zero +/* 0BFA10 7F08AEE0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BFA14 7F08AEE4 00403825 */ move $a3, $v0 +/* 0BFA18 7F08AEE8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA1C 7F08AEEC 00408025 */ move $s0, $v0 +/* 0BFA20 7F08AEF0 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA24 7F08AEF4 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA28 7F08AEF8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFA2C 7F08AEFC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFA30 7F08AF00 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFA34 7F08AF04 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFA38 7F08AF08 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFA3C 7F08AF0C 240DFFFF */ li $t5, -1 +/* 0BFA40 7F08AF10 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFA44 7F08AF14 02002025 */ move $a0, $s0 +/* 0BFA48 7F08AF18 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFA4C 7F08AF1C 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFA50 7F08AF20 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0BFA54 7F08AF24 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFA58 7F08AF28 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFA5C 7F08AF2C AFA00028 */ sw $zero, 0x28($sp) +/* 0BFA60 7F08AF30 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFA64 7F08AF34 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFA68 7F08AF38 0FC2B6AF */ jal en_text_write_stuff +/* 0BFA6C 7F08AF3C AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFA70 7F08AF40 0C001145 */ jal get_video2_settings_ulx +/* 0BFA74 7F08AF44 00408025 */ move $s0, $v0 +/* 0BFA78 7F08AF48 244C0057 */ addiu $t4, $v0, 0x57 +/* 0BFA7C 7F08AF4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA80 7F08AF50 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFA84 7F08AF54 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA88 7F08AF58 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA8C 7F08AF5C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFA90 7F08AF60 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFA94 7F08AF64 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFA98 7F08AF68 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFA9C 7F08AF6C 87A80048 */ lh $t0, 0x48($sp) +/* 0BFAA0 7F08AF70 2419FFFF */ li $t9, -1 +/* 0BFAA4 7F08AF74 AFB90018 */ sw $t9, 0x18($sp) +/* 0BFAA8 7F08AF78 02002025 */ move $a0, $s0 +/* 0BFAAC 7F08AF7C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFAB0 7F08AF80 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFAB4 7F08AF84 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 0BFAB8 7F08AF88 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFABC 7F08AF8C AFA00024 */ sw $zero, 0x24($sp) +/* 0BFAC0 7F08AF90 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFAC4 7F08AF94 AFB80014 */ sw $t8, 0x14($sp) +/* 0BFAC8 7F08AF98 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFACC 7F08AF9C 0FC2B6AF */ jal en_text_write_stuff +/* 0BFAD0 7F08AFA0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFAD4 7F08AFA4 0C001145 */ jal get_video2_settings_ulx +/* 0BFAD8 7F08AFA8 00408025 */ move $s0, $v0 +/* 0BFADC 7F08AFAC 2449008D */ addiu $t1, $v0, 0x8d +/* 0BFAE0 7F08AFB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFAE4 7F08AFB4 AFA90080 */ sw $t1, 0x80($sp) +/* 0BFAE8 7F08AFB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFAEC 7F08AFBC A7A20048 */ sh $v0, 0x48($sp) +/* 0BFAF0 7F08AFC0 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFAF4 7F08AFC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFAF8 7F08AFC8 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFAFC 7F08AFCC 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFB00 7F08AFD0 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFB04 7F08AFD4 240DFFFF */ li $t5, -1 +/* 0BFB08 7F08AFD8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFB0C 7F08AFDC 02002025 */ move $a0, $s0 +/* 0BFB10 7F08AFE0 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB14 7F08AFE4 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB18 7F08AFE8 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0BFB1C 7F08AFEC AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB20 7F08AFF0 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB24 7F08AFF4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB28 7F08AFF8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFB2C 7F08AFFC AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFB30 7F08B000 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB34 7F08B004 AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFB38 7F08B008 0C001145 */ jal get_video2_settings_ulx +/* 0BFB3C 7F08B00C 00408025 */ move $s0, $v0 +/* 0BFB40 7F08B010 244C00C3 */ addiu $t4, $v0, 0xc3 +/* 0BFB44 7F08B014 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFB48 7F08B018 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFB4C 7F08B01C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFB50 7F08B020 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFB54 7F08B024 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFB58 7F08B028 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFB5C 7F08B02C 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFB60 7F08B030 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFB64 7F08B034 87A80048 */ lh $t0, 0x48($sp) +/* 0BFB68 7F08B038 2419FFFF */ li $t9, -1 +/* 0BFB6C 7F08B03C AFB90018 */ sw $t9, 0x18($sp) +/* 0BFB70 7F08B040 02002025 */ move $a0, $s0 +/* 0BFB74 7F08B044 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB78 7F08B048 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB7C 7F08B04C 27A70094 */ addiu $a3, $sp, 0x94 +/* 0BFB80 7F08B050 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB84 7F08B054 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB88 7F08B058 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB8C 7F08B05C AFB80014 */ sw $t8, 0x14($sp) +/* 0BFB90 7F08B060 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFB94 7F08B064 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB98 7F08B068 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFB9C 7F08B06C 0C001145 */ jal get_video2_settings_ulx +/* 0BFBA0 7F08B070 00408025 */ move $s0, $v0 +/* 0BFBA4 7F08B074 244900F9 */ addiu $t1, $v0, 0xf9 +/* 0BFBA8 7F08B078 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFBAC 7F08B07C AFA90080 */ sw $t1, 0x80($sp) +/* 0BFBB0 7F08B080 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFBB4 7F08B084 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFBB8 7F08B088 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFBBC 7F08B08C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFBC0 7F08B090 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFBC4 7F08B094 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFBC8 7F08B098 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFBCC 7F08B09C 240DFFFF */ li $t5, -1 +/* 0BFBD0 7F08B0A0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFBD4 7F08B0A4 02002025 */ move $a0, $s0 +/* 0BFBD8 7F08B0A8 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFBDC 7F08B0AC 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFBE0 7F08B0B0 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BFBE4 7F08B0B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFBE8 7F08B0B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFBEC 7F08B0BC AFA00028 */ sw $zero, 0x28($sp) +/* 0BFBF0 7F08B0C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFBF4 7F08B0C4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFBF8 7F08B0C8 0FC2B6AF */ jal en_text_write_stuff +/* 0BFBFC 7F08B0CC AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFC00 7F08B0D0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BFC04 7F08B0D4 00402025 */ move $a0, $v0 +/* 0BFC08 7F08B0D8 00408025 */ move $s0, $v0 +.L7F08B0DC: +/* 0BFC0C 7F08B0DC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0BFC10 7F08B0E0 02001025 */ move $v0, $s0 +/* 0BFC14 7F08B0E4 8FB00038 */ lw $s0, 0x38($sp) +/* 0BFC18 7F08B0E8 03E00008 */ jr $ra +/* 0BFC1C 7F08B0EC 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800552BC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F08AAE8 +/* 0BFE34 7F08B2C4 3C0E8003 */ lui $t6, %hi(D_800368B4) # $t6, 0x8003 +/* 0BFE38 7F08B2C8 8DCE68EC */ lw $t6, %lo(D_800368B4)($t6) +/* 0BFE3C 7F08B2CC 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0BFE40 7F08B2D0 AFB00038 */ sw $s0, 0x38($sp) +/* 0BFE44 7F08B2D4 00808025 */ move $s0, $a0 +/* 0BFE48 7F08B2D8 15C000B2 */ bnez $t6, .Ljp7F08B5A4 +/* 0BFE4C 7F08B2DC AFBF003C */ sw $ra, 0x3c($sp) +/* 0BFE50 7F08B2E0 3C0F8003 */ lui $t7, %hi(upper_text_window_timer) # $t7, 0x8003 +/* 0BFE54 7F08B2E4 8DEF68E8 */ lw $t7, %lo(upper_text_window_timer)($t7) +/* 0BFE58 7F08B2E8 3C188003 */ lui $t8, %hi(upper_text_buffer_index) # $t8, 0x8003 +/* 0BFE5C 7F08B2EC 05E000AD */ bltz $t7, .Ljp7F08B5A4 +/* 0BFE60 7F08B2F0 00000000 */ nop +/* 0BFE64 7F08B2F4 8F1868E0 */ lw $t8, %lo(upper_text_buffer_index)($t8) +/* 0BFE68 7F08B2F8 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C70) +/* 0BFE6C 7F08B2FC 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BFE70 7F08B300 0018C880 */ sll $t9, $t8, 2 +/* 0BFE74 7F08B304 0338C821 */ addu $t9, $t9, $t8 +/* 0BFE78 7F08B308 0019C880 */ sll $t9, $t9, 2 +/* 0BFE7C 7F08B30C 0338C823 */ subu $t9, $t9, $t8 +/* 0BFE80 7F08B310 0019C8C0 */ sll $t9, $t9, 3 +/* 0BFE84 7F08B314 0338C823 */ subu $t9, $t9, $t8 +/* 0BFE88 7F08B318 01194021 */ addu $t0, $t0, $t9 +/* 0BFE8C 7F08B31C 91089CE0 */ lbu $t0, %lo(dword_CODE_bss_80079C70)($t0) +/* 0BFE90 7F08B320 110000A0 */ beqz $t0, .Ljp7F08B5A4 +/* 0BFE94 7F08B324 00000000 */ nop +/* 0BFE98 7F08B328 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BFE9C 7F08B32C 8D2A29C4 */ lw $t2, 0x29c4($t1) +/* 0BFEA0 7F08B330 1540009C */ bnez $t2, .Ljp7F08B5A4 +/* 0BFEA4 7F08B334 00000000 */ nop +/* 0BFEA8 7F08B338 0FC2B652 */ jal microcode_constructor +/* 0BFEAC 7F08B33C 00000000 */ nop +/* 0BFEB0 7F08B340 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) # $t3, 0x8003 +/* 0BFEB4 7F08B344 8D6B68E0 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0BFEB8 7F08B348 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 0BFEBC 7F08B34C 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0BFEC0 7F08B350 000B6080 */ sll $t4, $t3, 2 +/* 0BFEC4 7F08B354 018B6021 */ addu $t4, $t4, $t3 +/* 0BFEC8 7F08B358 000C6080 */ sll $t4, $t4, 2 +/* 0BFECC 7F08B35C 018B6023 */ subu $t4, $t4, $t3 +/* 0BFED0 7F08B360 000C60C0 */ sll $t4, $t4, 3 +/* 0BFED4 7F08B364 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) # $t5, 0x8008 +/* 0BFED8 7F08B368 25AD9CE0 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6320 +/* 0BFEDC 7F08B36C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 0BFEE0 7F08B370 018B6023 */ subu $t4, $t4, $t3 +/* 0BFEE4 7F08B374 00408025 */ move $s0, $v0 +/* 0BFEE8 7F08B378 AFA000D4 */ sw $zero, 0xd4($sp) +/* 0BFEEC 7F08B37C AFA000D8 */ sw $zero, 0xd8($sp) +/* 0BFEF0 7F08B380 018D3021 */ addu $a2, $t4, $t5 +/* 0BFEF4 7F08B384 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0BFEF8 7F08B388 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 0BFEFC 7F08B38C 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0BFF00 7F08B390 AFA00014 */ sw $zero, 0x14($sp) +/* 0BFF04 7F08B394 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0BFF08 7F08B398 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BFF0C 7F08B39C 3C0F8003 */ lui $t7, %hi(camera_8003642C) # $t7, 0x8003 +/* 0BFF10 7F08B3A0 8DEF646C */ lw $t7, %lo(camera_8003642C)($t7) +/* 0BFF14 7F08B3A4 11E0001B */ beqz $t7, .Ljp7F08B414 +/* 0BFF18 7F08B3A8 00000000 */ nop +/* 0BFF1C 7F08B3AC 0C001145 */ jal get_video2_settings_ulx +/* 0BFF20 7F08B3B0 00000000 */ nop +/* 0BFF24 7F08B3B4 24580046 */ addiu $t8, $v0, 0x46 +/* 0BFF28 7F08B3B8 0C001149 */ jal get_video2_settings_uly +/* 0BFF2C 7F08B3BC AFB800E4 */ sw $t8, 0xe4($sp) +/* 0BFF30 7F08B3C0 00401825 */ move $v1, $v0 +/* 0BFF34 7F08B3C4 24630020 */ addiu $v1, $v1, 0x20 +/* 0BFF38 7F08B3C8 2404000B */ li $a0, 11 +/* 0BFF3C 7F08B3CC 0064001A */ div $zero, $v1, $a0 +/* 0BFF40 7F08B3D0 14800002 */ bnez $a0, .Ljp7F08B3DC +/* 0BFF44 7F08B3D4 00000000 */ nop +/* 0BFF48 7F08B3D8 0007000D */ break 7 +.Ljp7F08B3DC: +/* 0BFF4C 7F08B3DC 2401FFFF */ li $at, -1 +/* 0BFF50 7F08B3E0 14810004 */ bne $a0, $at, .Ljp7F08B3F4 +/* 0BFF54 7F08B3E4 3C018000 */ lui $at, 0x8000 +/* 0BFF58 7F08B3E8 14610002 */ bne $v1, $at, .Ljp7F08B3F4 +/* 0BFF5C 7F08B3EC 00000000 */ nop +/* 0BFF60 7F08B3F0 0006000D */ break 6 +.Ljp7F08B3F4: +/* 0BFF64 7F08B3F4 00001812 */ mflo $v1 +/* 0BFF68 7F08B3F8 00000000 */ nop +/* 0BFF6C 7F08B3FC 00000000 */ nop +/* 0BFF70 7F08B400 00640019 */ multu $v1, $a0 +/* 0BFF74 7F08B404 00001812 */ mflo $v1 +/* 0BFF78 7F08B408 2463FFFE */ addiu $v1, $v1, -2 +/* 0BFF7C 7F08B40C 10000008 */ b .Ljp7F08B430 +/* 0BFF80 7F08B410 8FA800D8 */ lw $t0, 0xd8($sp) +.Ljp7F08B414: +/* 0BFF84 7F08B414 0C001145 */ jal get_video2_settings_ulx +/* 0BFF88 7F08B418 00000000 */ nop +/* 0BFF8C 7F08B41C 2459001E */ addiu $t9, $v0, 0x1e +/* 0BFF90 7F08B420 0C001149 */ jal get_video2_settings_uly +/* 0BFF94 7F08B424 AFB900E4 */ sw $t9, 0xe4($sp) +/* 0BFF98 7F08B428 2443000D */ addiu $v1, $v0, 0xd +/* 0BFF9C 7F08B42C 8FA800D8 */ lw $t0, 0xd8($sp) +.Ljp7F08B430: +/* 0BFFA0 7F08B430 AFA300E0 */ sw $v1, 0xe0($sp) +/* 0BFFA4 7F08B434 00684821 */ addu $t1, $v1, $t0 +/* 0BFFA8 7F08B438 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFAC 7F08B43C AFA900DC */ sw $t1, 0xdc($sp) +/* 0BFFB0 7F08B440 8FA300E0 */ lw $v1, 0xe0($sp) +/* 0BFFB4 7F08B444 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0BFFB8 7F08B448 240B0064 */ li $t3, 100 +/* 0BFFBC 7F08B44C AFAB0014 */ sw $t3, 0x14($sp) +/* 0BFFC0 7F08B450 02002025 */ move $a0, $s0 +/* 0BFFC4 7F08B454 00002825 */ move $a1, $zero +/* 0BFFC8 7F08B458 00403825 */ move $a3, $v0 +/* 0BFFCC 7F08B45C 2466FFFE */ addiu $a2, $v1, -2 +/* 0BFFD0 7F08B460 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0BFFD4 7F08B464 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFFD8 7F08B468 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0BFFDC 7F08B46C 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0BFFE0 7F08B470 00408025 */ move $s0, $v0 +/* 0BFFE4 7F08B474 11800026 */ beqz $t4, .Ljp7F08B510 +/* 0BFFE8 7F08B478 00000000 */ nop +/* 0BFFEC 7F08B47C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFF0 7F08B480 00000000 */ nop +/* 0BFFF4 7F08B484 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFFF8 7F08B488 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFFFC 7F08B48C 3C0D8003 */ lui $t5, %hi(upper_text_buffer_index) # $t5, 0x8003 +/* 0C0000 7F08B490 8DAD68E0 */ lw $t5, %lo(upper_text_buffer_index)($t5) +/* 0C0004 7F08B494 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) # $t8, 0x8004 +/* 0C0008 7F08B498 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) # $t9, 0x8004 +/* 0C000C 7F08B49C 000D7080 */ sll $t6, $t5, 2 +/* 0C0010 7F08B4A0 01CD7021 */ addu $t6, $t6, $t5 +/* 0C0014 7F08B4A4 000E7080 */ sll $t6, $t6, 2 +/* 0C0018 7F08B4A8 01CD7023 */ subu $t6, $t6, $t5 +/* 0C001C 7F08B4AC 8F390EE4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0C0020 7F08B4B0 8F180EE8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0C0024 7F08B4B4 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0028 7F08B4B8 000E70C0 */ sll $t6, $t6, 3 +/* 0C002C 7F08B4BC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80079C70) # $t7, 0x8008 +/* 0C0030 7F08B4C0 3C096464 */ lui $t1, (0x646464FF >> 16) # lui $t1, 0x6464 +/* 0C0034 7F08B4C4 352964FF */ ori $t1, (0x646464FF & 0xFFFF) # ori $t1, $t1, 0x64ff +/* 0C0038 7F08B4C8 25EF9CE0 */ addiu $t7, %lo(dword_CODE_bss_80079C70) # addiu $t7, $t7, -0x6320 +/* 0C003C 7F08B4CC 2408FFFF */ li $t0, -1 +/* 0C0040 7F08B4D0 01CD7023 */ subu $t6, $t6, $t5 +/* 0C0044 7F08B4D4 01CF3821 */ addu $a3, $t6, $t7 +/* 0C0048 7F08B4D8 AFA80018 */ sw $t0, 0x18($sp) +/* 0C004C 7F08B4DC AFA9001C */ sw $t1, 0x1c($sp) +/* 0C0050 7F08B4E0 02002025 */ move $a0, $s0 +/* 0C0054 7F08B4E4 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0C0058 7F08B4E8 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0C005C 7F08B4EC AFA20024 */ sw $v0, 0x24($sp) +/* 0C0060 7F08B4F0 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0064 7F08B4F4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C0068 7F08B4F8 AFB90014 */ sw $t9, 0x14($sp) +/* 0C006C 7F08B4FC AFB80010 */ sw $t8, 0x10($sp) +/* 0C0070 7F08B500 0FC2BCA7 */ jal jp_text_write_stuff +/* 0C0074 7F08B504 AFAA0020 */ sw $t2, 0x20($sp) +/* 0C0078 7F08B508 10000022 */ b .Ljp7F08B594 +/* 0C007C 7F08B50C 00408025 */ move $s0, $v0 +.Ljp7F08B510: +/* 0C0080 7F08B510 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0084 7F08B514 00000000 */ nop +/* 0C0088 7F08B518 0C00110B */ jal get_video2_settings_txtClipH +/* 0C008C 7F08B51C A7A20048 */ sh $v0, 0x48($sp) +/* 0C0090 7F08B520 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) # $t3, 0x8003 +/* 0C0094 7F08B524 8D6B68E0 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0C0098 7F08B528 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) # $t6, 0x8004 +/* 0C009C 7F08B52C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) # $t7, 0x8004 +/* 0C00A0 7F08B530 000B6080 */ sll $t4, $t3, 2 +/* 0C00A4 7F08B534 018B6021 */ addu $t4, $t4, $t3 +/* 0C00A8 7F08B538 000C6080 */ sll $t4, $t4, 2 +/* 0C00AC 7F08B53C 018B6023 */ subu $t4, $t4, $t3 +/* 0C00B0 7F08B540 8DEF0EE4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 0C00B4 7F08B544 8DCE0EE8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 0C00B8 7F08B548 87B90048 */ lh $t9, 0x48($sp) +/* 0C00BC 7F08B54C 000C60C0 */ sll $t4, $t4, 3 +/* 0C00C0 7F08B550 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) # $t5, 0x8008 +/* 0C00C4 7F08B554 25AD9CE0 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6320 +/* 0C00C8 7F08B558 2418FFFF */ li $t8, -1 +/* 0C00CC 7F08B55C 018B6023 */ subu $t4, $t4, $t3 +/* 0C00D0 7F08B560 018D3821 */ addu $a3, $t4, $t5 +/* 0C00D4 7F08B564 AFB80018 */ sw $t8, 0x18($sp) +/* 0C00D8 7F08B568 02002025 */ move $a0, $s0 +/* 0C00DC 7F08B56C 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0C00E0 7F08B570 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0C00E4 7F08B574 AFA20020 */ sw $v0, 0x20($sp) +/* 0C00E8 7F08B578 AFA00024 */ sw $zero, 0x24($sp) +/* 0C00EC 7F08B57C AFA00028 */ sw $zero, 0x28($sp) +/* 0C00F0 7F08B580 AFAF0014 */ sw $t7, 0x14($sp) +/* 0C00F4 7F08B584 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C00F8 7F08B588 0FC2B99B */ jal en_text_write_stuff +/* 0C00FC 7F08B58C AFB9001C */ sw $t9, 0x1c($sp) +/* 0C0100 7F08B590 00408025 */ move $s0, $v0 +.Ljp7F08B594: +/* 0C0104 7F08B594 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0C0108 7F08B598 02002025 */ move $a0, $s0 +/* 0C010C 7F08B59C 100000F1 */ b .Ljp7F08B964 +/* 0C0110 7F08B5A0 00408025 */ move $s0, $v0 +.Ljp7F08B5A4: +/* 0C0114 7F08B5A4 0FC2469A */ jal get_debug_testingmanpos_flag +/* 0C0118 7F08B5A8 00000000 */ nop +/* 0C011C 7F08B5AC 104000ED */ beqz $v0, .Ljp7F08B964 +/* 0C0120 7F08B5B0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C0124 7F08B5B4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C0128 7F08B5B8 C4400498 */ lwc1 $f0, 0x498($v0) +/* 0C012C 7F08B5BC C44E04A0 */ lwc1 $f14, 0x4a0($v0) +/* 0C0130 7F08B5C0 0FC16BD4 */ jal atan2f +/* 0C0134 7F08B5C4 46000307 */ neg.s $f12, $f0 +/* 0C0138 7F08B5C8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0C013C 7F08B5CC 44812000 */ mtc1 $at, $f4 +/* 0C0140 7F08B5D0 3C018005 */ lui $at, %hi(D_800552BC) # $at, 0x8005 +/* 0C0144 7F08B5D4 C42852EC */ lwc1 $f8, %lo(D_800552BC)($at) +/* 0C0148 7F08B5D8 46040182 */ mul.s $f6, $f0, $f4 +/* 0C014C 7F08B5DC 3C0B8003 */ lui $t3, %hi(D_800368B8) # $t3, 0x8003 +/* 0C0150 7F08B5E0 256B68F0 */ addiu $t3, %lo(D_800368B8) # addiu $t3, $t3, 0x68f0 +/* 0C0154 7F08B5E4 27AA004C */ addiu $t2, $sp, 0x4c +/* 0C0158 7F08B5E8 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0C015C 7F08B5EC 46083283 */ div.s $f10, $f6, $f8 +/* 0C0160 7F08B5F0 4600540D */ trunc.w.s $f16, $f10 +/* 0C0164 7F08B5F4 44098000 */ mfc1 $t1, $f16 +/* 0C0168 7F08B5F8 00000000 */ nop +/* 0C016C 7F08B5FC AFA90068 */ sw $t1, 0x68($sp) +/* 0C0170 7F08B600 8D610000 */ lw $at, ($t3) +/* 0C0174 7F08B604 8D6E0004 */ lw $t6, 4($t3) +/* 0C0178 7F08B608 AD410000 */ sw $at, ($t2) +/* 0C017C 7F08B60C 8D610008 */ lw $at, 8($t3) +/* 0C0180 7F08B610 AD4E0004 */ sw $t6, 4($t2) +/* 0C0184 7F08B614 8D6E000C */ lw $t6, 0xc($t3) +/* 0C0188 7F08B618 AD410008 */ sw $at, 8($t2) +/* 0C018C 7F08B61C 8D610010 */ lw $at, 0x10($t3) +/* 0C0190 7F08B620 AD4E000C */ sw $t6, 0xc($t2) +/* 0C0194 7F08B624 8D6E0014 */ lw $t6, 0x14($t3) +/* 0C0198 7F08B628 AD410010 */ sw $at, 0x10($t2) +/* 0C019C 7F08B62C 9961001A */ lwr $at, 0x1a($t3) +/* 0C01A0 7F08B630 AD4E0014 */ sw $t6, 0x14($t2) +/* 0C01A4 7F08B634 B941001A */ swr $at, 0x1a($t2) +/* 0C01A8 7F08B638 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0C01AC 7F08B63C 8DF80488 */ lw $t8, 0x488($t7) +/* 0C01B0 7F08B640 0FC2DA64 */ jal sub_GAME_7F0B5DE0 +/* 0C01B4 7F08B644 93040003 */ lbu $a0, 3($t8) +/* 0C01B8 7F08B648 3C058005 */ lui $a1, %hi(a8s) # $a1, 0x8005 +/* 0C01BC 7F08B64C 24A54FF0 */ addiu $a1, %lo(a8s) # addiu $a1, $a1, 0x4ff0 +/* 0C01C0 7F08B650 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0C01C4 7F08B654 0C002B29 */ jal sprintf +/* 0C01C8 7F08B658 00403025 */ move $a2, $v0 +/* 0C01CC 7F08B65C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0C01D0 7F08B660 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0C01D4 7F08B664 3C058005 */ lui $a1, %hi(aX4_0f) # $a1, 0x8005 +/* 0C01D8 7F08B668 24A54FF4 */ addiu $a1, %lo(aX4_0f) # addiu $a1, $a1, 0x4ff4 +/* 0C01DC 7F08B66C C732048C */ lwc1 $f18, 0x48c($t9) +/* 0C01E0 7F08B670 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0C01E4 7F08B674 46009121 */ cvt.d.s $f4, $f18 +/* 0C01E8 7F08B678 44072000 */ mfc1 $a3, $f4 +/* 0C01EC 7F08B67C 44062800 */ mfc1 $a2, $f5 +/* 0C01F0 7F08B680 0C002B29 */ jal sprintf +/* 0C01F4 7F08B684 00000000 */ nop +/* 0C01F8 7F08B688 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0C01FC 7F08B68C 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0C0200 7F08B690 3C058005 */ lui $a1, %hi(aY4_0f) # $a1, 0x8005 +/* 0C0204 7F08B694 24A54FFC */ addiu $a1, %lo(aY4_0f) # addiu $a1, $a1, 0x4ffc +/* 0C0208 7F08B698 C5060490 */ lwc1 $f6, 0x490($t0) +/* 0C020C 7F08B69C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0C0210 7F08B6A0 46003221 */ cvt.d.s $f8, $f6 +/* 0C0214 7F08B6A4 44074000 */ mfc1 $a3, $f8 +/* 0C0218 7F08B6A8 44064800 */ mfc1 $a2, $f9 +/* 0C021C 7F08B6AC 0C002B29 */ jal sprintf +/* 0C0220 7F08B6B0 00000000 */ nop +/* 0C0224 7F08B6B4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0C0228 7F08B6B8 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0C022C 7F08B6BC 3C058005 */ lui $a1, %hi(aZ4_0f) # $a1, 0x8005 +/* 0C0230 7F08B6C0 24A55004 */ addiu $a1, %lo(aZ4_0f) # addiu $a1, $a1, 0x5004 +/* 0C0234 7F08B6C4 C52A0494 */ lwc1 $f10, 0x494($t1) +/* 0C0238 7F08B6C8 27A40094 */ addiu $a0, $sp, 0x94 +/* 0C023C 7F08B6CC 46005421 */ cvt.d.s $f16, $f10 +/* 0C0240 7F08B6D0 44078000 */ mfc1 $a3, $f16 +/* 0C0244 7F08B6D4 44068800 */ mfc1 $a2, $f17 +/* 0C0248 7F08B6D8 0C002B29 */ jal sprintf +/* 0C024C 7F08B6DC 00000000 */ nop +/* 0C0250 7F08B6E0 8FA70068 */ lw $a3, 0x68($sp) +/* 0C0254 7F08B6E4 2401002D */ li $at, 45 +/* 0C0258 7F08B6E8 3C058005 */ lui $a1, %hi(aS3d) # $a1, 0x8005 +/* 0C025C 7F08B6EC 24ED0016 */ addiu $t5, $a3, 0x16 +/* 0C0260 7F08B6F0 01A1001A */ div $zero, $t5, $at +/* 0C0264 7F08B6F4 00006012 */ mflo $t4 +/* 0C0268 7F08B6F8 000C5080 */ sll $t2, $t4, 2 +/* 0C026C 7F08B6FC 014C5023 */ subu $t2, $t2, $t4 +/* 0C0270 7F08B700 27AB004C */ addiu $t3, $sp, 0x4c +/* 0C0274 7F08B704 014B3021 */ addu $a2, $t2, $t3 +/* 0C0278 7F08B708 24A5500C */ addiu $a1, %lo(aS3d) # addiu $a1, $a1, 0x500c +/* 0C027C 7F08B70C 0C002B29 */ jal sprintf +/* 0C0280 7F08B710 27A40084 */ addiu $a0, $sp, 0x84 +/* 0C0284 7F08B714 0C001145 */ jal get_video2_settings_ulx +/* 0C0288 7F08B718 00000000 */ nop +/* 0C028C 7F08B71C 244E0011 */ addiu $t6, $v0, 0x11 +/* 0C0290 7F08B720 0C001149 */ jal get_video2_settings_uly +/* 0C0294 7F08B724 AFAE0080 */ sw $t6, 0x80($sp) +/* 0C0298 7F08B728 24460011 */ addiu $a2, $v0, 0x11 +/* 0C029C 7F08B72C 24CF000A */ addiu $t7, $a2, 0xa +/* 0C02A0 7F08B730 AFAF0074 */ sw $t7, 0x74($sp) +/* 0C02A4 7F08B734 AFA6007C */ sw $a2, 0x7c($sp) +/* 0C02A8 7F08B738 0FC2B652 */ jal microcode_constructor +/* 0C02AC 7F08B73C 02002025 */ move $a0, $s0 +/* 0C02B0 7F08B740 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02B4 7F08B744 00408025 */ move $s0, $v0 +/* 0C02B8 7F08B748 8FB80074 */ lw $t8, 0x74($sp) +/* 0C02BC 7F08B74C 24080064 */ li $t0, 100 +/* 0C02C0 7F08B750 AFA80014 */ sw $t0, 0x14($sp) +/* 0C02C4 7F08B754 27190001 */ addiu $t9, $t8, 1 +/* 0C02C8 7F08B758 AFB90010 */ sw $t9, 0x10($sp) +/* 0C02CC 7F08B75C 8FA6007C */ lw $a2, 0x7c($sp) +/* 0C02D0 7F08B760 02002025 */ move $a0, $s0 +/* 0C02D4 7F08B764 00002825 */ move $a1, $zero +/* 0C02D8 7F08B768 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0C02DC 7F08B76C 00403825 */ move $a3, $v0 +/* 0C02E0 7F08B770 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02E4 7F08B774 00408025 */ move $s0, $v0 +/* 0C02E8 7F08B778 0C00110B */ jal get_video2_settings_txtClipH +/* 0C02EC 7F08B77C A7A20048 */ sh $v0, 0x48($sp) +/* 0C02F0 7F08B780 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C02F4 7F08B784 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C02F8 7F08B788 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C02FC 7F08B78C 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C0300 7F08B790 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0304 7F08B794 240CFFFF */ li $t4, -1 +/* 0C0308 7F08B798 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C030C 7F08B79C 02002025 */ move $a0, $s0 +/* 0C0310 7F08B7A0 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0314 7F08B7A4 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C0318 7F08B7A8 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0C031C 7F08B7AC AFA20020 */ sw $v0, 0x20($sp) +/* 0C0320 7F08B7B0 AFA00024 */ sw $zero, 0x24($sp) +/* 0C0324 7F08B7B4 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0328 7F08B7B8 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C032C 7F08B7BC AFA90010 */ sw $t1, 0x10($sp) +/* 0C0330 7F08B7C0 0FC2B99B */ jal en_text_write_stuff +/* 0C0334 7F08B7C4 AFAA001C */ sw $t2, 0x1c($sp) +/* 0C0338 7F08B7C8 0C001145 */ jal get_video2_settings_ulx +/* 0C033C 7F08B7CC 00408025 */ move $s0, $v0 +/* 0C0340 7F08B7D0 244B0057 */ addiu $t3, $v0, 0x57 +/* 0C0344 7F08B7D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0348 7F08B7D8 AFAB0080 */ sw $t3, 0x80($sp) +/* 0C034C 7F08B7DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0350 7F08B7E0 A7A20048 */ sh $v0, 0x48($sp) +/* 0C0354 7F08B7E4 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0C0358 7F08B7E8 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0C035C 7F08B7EC 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0C0360 7F08B7F0 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0C0364 7F08B7F4 87B90048 */ lh $t9, 0x48($sp) +/* 0C0368 7F08B7F8 2418FFFF */ li $t8, -1 +/* 0C036C 7F08B7FC AFB80018 */ sw $t8, 0x18($sp) +/* 0C0370 7F08B800 02002025 */ move $a0, $s0 +/* 0C0374 7F08B804 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0378 7F08B808 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C037C 7F08B80C 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 0C0380 7F08B810 AFA20020 */ sw $v0, 0x20($sp) +/* 0C0384 7F08B814 AFA00024 */ sw $zero, 0x24($sp) +/* 0C0388 7F08B818 AFA00028 */ sw $zero, 0x28($sp) +/* 0C038C 7F08B81C AFAF0014 */ sw $t7, 0x14($sp) +/* 0C0390 7F08B820 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C0394 7F08B824 0FC2B99B */ jal en_text_write_stuff +/* 0C0398 7F08B828 AFB9001C */ sw $t9, 0x1c($sp) +/* 0C039C 7F08B82C 0C001145 */ jal get_video2_settings_ulx +/* 0C03A0 7F08B830 00408025 */ move $s0, $v0 +/* 0C03A4 7F08B834 2448008D */ addiu $t0, $v0, 0x8d +/* 0C03A8 7F08B838 0C001107 */ jal get_video2_settings_txtClipW +/* 0C03AC 7F08B83C AFA80080 */ sw $t0, 0x80($sp) +/* 0C03B0 7F08B840 0C00110B */ jal get_video2_settings_txtClipH +/* 0C03B4 7F08B844 A7A20048 */ sh $v0, 0x48($sp) +/* 0C03B8 7F08B848 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C03BC 7F08B84C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C03C0 7F08B850 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C03C4 7F08B854 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C03C8 7F08B858 87AA0048 */ lh $t2, 0x48($sp) +/* 0C03CC 7F08B85C 240CFFFF */ li $t4, -1 +/* 0C03D0 7F08B860 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C03D4 7F08B864 02002025 */ move $a0, $s0 +/* 0C03D8 7F08B868 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C03DC 7F08B86C 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C03E0 7F08B870 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0C03E4 7F08B874 AFA20020 */ sw $v0, 0x20($sp) +/* 0C03E8 7F08B878 AFA00024 */ sw $zero, 0x24($sp) +/* 0C03EC 7F08B87C AFA00028 */ sw $zero, 0x28($sp) +/* 0C03F0 7F08B880 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C03F4 7F08B884 AFA90010 */ sw $t1, 0x10($sp) +/* 0C03F8 7F08B888 0FC2B99B */ jal en_text_write_stuff +/* 0C03FC 7F08B88C AFAA001C */ sw $t2, 0x1c($sp) +/* 0C0400 7F08B890 0C001145 */ jal get_video2_settings_ulx +/* 0C0404 7F08B894 00408025 */ move $s0, $v0 +/* 0C0408 7F08B898 244B00C3 */ addiu $t3, $v0, 0xc3 +/* 0C040C 7F08B89C 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0410 7F08B8A0 AFAB0080 */ sw $t3, 0x80($sp) +/* 0C0414 7F08B8A4 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0418 7F08B8A8 A7A20048 */ sh $v0, 0x48($sp) +/* 0C041C 7F08B8AC 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0C0420 7F08B8B0 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0C0424 7F08B8B4 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0C0428 7F08B8B8 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0C042C 7F08B8BC 87B90048 */ lh $t9, 0x48($sp) +/* 0C0430 7F08B8C0 2418FFFF */ li $t8, -1 +/* 0C0434 7F08B8C4 AFB80018 */ sw $t8, 0x18($sp) +/* 0C0438 7F08B8C8 02002025 */ move $a0, $s0 +/* 0C043C 7F08B8CC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0440 7F08B8D0 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C0444 7F08B8D4 27A70094 */ addiu $a3, $sp, 0x94 +/* 0C0448 7F08B8D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0C044C 7F08B8DC AFA00024 */ sw $zero, 0x24($sp) +/* 0C0450 7F08B8E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0454 7F08B8E4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0C0458 7F08B8E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C045C 7F08B8EC 0FC2B99B */ jal en_text_write_stuff +/* 0C0460 7F08B8F0 AFB9001C */ sw $t9, 0x1c($sp) +/* 0C0464 7F08B8F4 0C001145 */ jal get_video2_settings_ulx +/* 0C0468 7F08B8F8 00408025 */ move $s0, $v0 +/* 0C046C 7F08B8FC 244800F9 */ addiu $t0, $v0, 0xf9 +/* 0C0470 7F08B900 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0474 7F08B904 AFA80080 */ sw $t0, 0x80($sp) +/* 0C0478 7F08B908 0C00110B */ jal get_video2_settings_txtClipH +/* 0C047C 7F08B90C A7A20048 */ sh $v0, 0x48($sp) +/* 0C0480 7F08B910 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C0484 7F08B914 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C0488 7F08B918 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C048C 7F08B91C 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C0490 7F08B920 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0494 7F08B924 240CFFFF */ li $t4, -1 +/* 0C0498 7F08B928 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C049C 7F08B92C 02002025 */ move $a0, $s0 +/* 0C04A0 7F08B930 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C04A4 7F08B934 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C04A8 7F08B938 27A70084 */ addiu $a3, $sp, 0x84 +/* 0C04AC 7F08B93C AFA20020 */ sw $v0, 0x20($sp) +/* 0C04B0 7F08B940 AFA00024 */ sw $zero, 0x24($sp) +/* 0C04B4 7F08B944 AFA00028 */ sw $zero, 0x28($sp) +/* 0C04B8 7F08B948 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C04BC 7F08B94C AFA90010 */ sw $t1, 0x10($sp) +/* 0C04C0 7F08B950 0FC2B99B */ jal en_text_write_stuff +/* 0C04C4 7F08B954 AFAA001C */ sw $t2, 0x1c($sp) +/* 0C04C8 7F08B958 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0C04CC 7F08B95C 00402025 */ move $a0, $v0 +/* 0C04D0 7F08B960 00408025 */ move $s0, $v0 +.Ljp7F08B964: +/* 0C04D4 7F08B964 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C04D8 7F08B968 02001025 */ move $v0, $s0 +/* 0C04DC 7F08B96C 8FB00038 */ lw $s0, 0x38($sp) +/* 0C04E0 7F08B970 03E00008 */ jr $ra +/* 0C04E4 7F08B974 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08B0F0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552C0 +.word 0xbd4ccccd /*-0.050000001*/ +glabel D_800552C4 +.word 0xbecccccd /*-0.40000001*/ +glabel D_800552C8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800552CC +.word 0x3ecccccd /*0.40000001*/ +glabel D_800552D0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F08B0F0 +/* 0BFC20 7F08B0F0 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0BFC24 7F08B0F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0BFC28 7F08B0F8 AFB10020 */ sw $s1, 0x20($sp) +/* 0BFC2C 7F08B0FC AFB0001C */ sw $s0, 0x1c($sp) +/* 0BFC30 7F08B100 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BFC34 7F08B104 AFA400F8 */ sw $a0, 0xf8($sp) +/* 0BFC38 7F08B108 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 0BFC3C 7F08B10C AFA200F4 */ sw $v0, 0xf4($sp) +/* 0BFC40 7F08B110 8DCF0004 */ lw $t7, 4($t6) +/* 0BFC44 7F08B114 11E0000B */ beqz $t7, .L7F08B144 +/* 0BFC48 7F08B118 AFAF00F0 */ sw $t7, 0xf0($sp) +/* 0BFC4C 7F08B11C 0FC26C54 */ jal get_cur_playernum +/* 0BFC50 7F08B120 00000000 */ nop +/* 0BFC54 7F08B124 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0BFC58 7F08B128 00402025 */ move $a0, $v0 +/* 0BFC5C 7F08B12C 54400006 */ bnezl $v0, .L7F08B148 +/* 0BFC60 7F08B130 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0BFC64 7F08B134 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0BFC68 7F08B138 94580012 */ lhu $t8, 0x12($v0) +/* 0BFC6C 7F08B13C 3319F7FF */ andi $t9, $t8, 0xf7ff +/* 0BFC70 7F08B140 A4590012 */ sh $t9, 0x12($v0) +.L7F08B144: +/* 0BFC74 7F08B144 8FA900F0 */ lw $t1, 0xf0($sp) +.L7F08B148: +/* 0BFC78 7F08B148 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 0BFC7C 7F08B14C 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 0BFC80 7F08B150 1120004D */ beqz $t1, .L7F08B288 +/* 0BFC84 7F08B154 000A5880 */ sll $t3, $t2, 2 +/* 0BFC88 7F08B158 258C9EE0 */ addiu $t4, %lo(ptr_BONDdata_p1) # addiu $t4, $t4, -0x6120 +/* 0BFC8C 7F08B15C 016C8821 */ addu $s1, $t3, $t4 +/* 0BFC90 7F08B160 8E2D0000 */ lw $t5, ($s1) +/* 0BFC94 7F08B164 8DAE00D4 */ lw $t6, 0xd4($t5) +/* 0BFC98 7F08B168 51C00048 */ beql $t6, $zero, .L7F08B28C +/* 0BFC9C 7F08B16C 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0BFCA0 7F08B170 0FC243BF */ jal get_debug_render_raster +/* 0BFCA4 7F08B174 00000000 */ nop +/* 0BFCA8 7F08B178 50400007 */ beql $v0, $zero, .L7F08B198 +/* 0BFCAC 7F08B17C 8E390000 */ lw $t9, ($s1) +/* 0BFCB0 7F08B180 8E2F0000 */ lw $t7, ($s1) +/* 0BFCB4 7F08B184 24010001 */ li $at, 1 +/* 0BFCB8 7F08B188 8DF80000 */ lw $t8, ($t7) +/* 0BFCBC 7F08B18C 5701003F */ bnel $t8, $at, .L7F08B28C +/* 0BFCC0 7F08B190 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0BFCC4 7F08B194 8E390000 */ lw $t9, ($s1) +.L7F08B198: +/* 0BFCC8 7F08B198 AF2000AC */ sw $zero, 0xac($t9) +/* 0BFCCC 7F08B19C 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0BFCD0 7F08B1A0 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0BFCD4 7F08B1A4 8E2A0000 */ lw $t2, ($s1) +/* 0BFCD8 7F08B1A8 AFA200E8 */ sw $v0, 0xe8($sp) +/* 0BFCDC 7F08B1AC 24090001 */ li $t1, 1 +/* 0BFCE0 7F08B1B0 AD4900AC */ sw $t1, 0xac($t2) +/* 0BFCE4 7F08B1B4 8E280000 */ lw $t0, ($s1) +/* 0BFCE8 7F08B1B8 8D0B00A8 */ lw $t3, 0xa8($t0) +/* 0BFCEC 7F08B1BC C5640008 */ lwc1 $f4, 8($t3) +/* 0BFCF0 7F08B1C0 E504048C */ swc1 $f4, 0x48c($t0) +/* 0BFCF4 7F08B1C4 8E280000 */ lw $t0, ($s1) +/* 0BFCF8 7F08B1C8 8D0C00A8 */ lw $t4, 0xa8($t0) +/* 0BFCFC 7F08B1CC C586000C */ lwc1 $f6, 0xc($t4) +/* 0BFD00 7F08B1D0 E5060490 */ swc1 $f6, 0x490($t0) +/* 0BFD04 7F08B1D4 8E280000 */ lw $t0, ($s1) +/* 0BFD08 7F08B1D8 8D0D00A8 */ lw $t5, 0xa8($t0) +/* 0BFD0C 7F08B1DC C5A80010 */ lwc1 $f8, 0x10($t5) +/* 0BFD10 7F08B1E0 E5080494 */ swc1 $f8, 0x494($t0) +/* 0BFD14 7F08B1E4 8E280000 */ lw $t0, ($s1) +/* 0BFD18 7F08B1E8 8D0E00A8 */ lw $t6, 0xa8($t0) +/* 0BFD1C 7F08B1EC 8DCF0014 */ lw $t7, 0x14($t6) +/* 0BFD20 7F08B1F0 AD0F0488 */ sw $t7, 0x488($t0) +/* 0BFD24 7F08B1F4 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0BFD28 7F08B1F8 8E240000 */ lw $a0, ($s1) +/* 0BFD2C 7F08B1FC 8FB800F8 */ lw $t8, 0xf8($sp) +/* 0BFD30 7F08B200 93190001 */ lbu $t9, 1($t8) +/* 0BFD34 7F08B204 33290002 */ andi $t1, $t9, 2 +/* 0BFD38 7F08B208 1120001D */ beqz $t1, .L7F08B280 +/* 0BFD3C 7F08B20C 00000000 */ nop +/* 0BFD40 7F08B210 8E2A0000 */ lw $t2, ($s1) +/* 0BFD44 7F08B214 8D4B00D4 */ lw $t3, 0xd4($t2) +/* 0BFD48 7F08B218 0FC1E111 */ jal sub_GAME_7F078444 +/* 0BFD4C 7F08B21C 8D70000C */ lw $s0, 0xc($t3) +/* 0BFD50 7F08B220 00402025 */ move $a0, $v0 +/* 0BFD54 7F08B224 02002825 */ move $a1, $s0 +/* 0BFD58 7F08B228 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0BFD5C 7F08B22C 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 0BFD60 7F08B230 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0BFD64 7F08B234 44810000 */ mtc1 $at, $f0 +/* 0BFD68 7F08B238 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0BFD6C 7F08B23C C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0BFD70 7F08B240 8E2C0000 */ lw $t4, ($s1) +/* 0BFD74 7F08B244 46005482 */ mul.s $f18, $f10, $f0 +/* 0BFD78 7F08B248 46049180 */ add.s $f6, $f18, $f4 +/* 0BFD7C 7F08B24C E58604B4 */ swc1 $f6, 0x4b4($t4) +/* 0BFD80 7F08B250 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 0BFD84 7F08B254 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 0BFD88 7F08B258 8E2D0000 */ lw $t5, ($s1) +/* 0BFD8C 7F08B25C 46004282 */ mul.s $f10, $f8, $f0 +/* 0BFD90 7F08B260 46125100 */ add.s $f4, $f10, $f18 +/* 0BFD94 7F08B264 E5A404B8 */ swc1 $f4, 0x4b8($t5) +/* 0BFD98 7F08B268 C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 0BFD9C 7F08B26C C7AA00DC */ lwc1 $f10, 0xdc($sp) +/* 0BFDA0 7F08B270 8E2E0000 */ lw $t6, ($s1) +/* 0BFDA4 7F08B274 46003202 */ mul.s $f8, $f6, $f0 +/* 0BFDA8 7F08B278 460A4480 */ add.s $f18, $f8, $f10 +/* 0BFDAC 7F08B27C E5D204BC */ swc1 $f18, 0x4bc($t6) +.L7F08B280: +/* 0BFDB0 7F08B280 10000288 */ b .L7F08BCA4 +/* 0BFDB4 7F08B284 8FA200E8 */ lw $v0, 0xe8($sp) +.L7F08B288: +/* 0BFDB8 7F08B288 8FAF00F0 */ lw $t7, 0xf0($sp) +.L7F08B28C: +/* 0BFDBC 7F08B28C 8FB800F4 */ lw $t8, 0xf4($sp) +/* 0BFDC0 7F08B290 3C098008 */ lui $t1, %hi(ptr_BONDdata_p1) +/* 0BFDC4 7F08B294 11E0027E */ beqz $t7, .L7F08BC90 +/* 0BFDC8 7F08B298 0018C880 */ sll $t9, $t8, 2 +/* 0BFDCC 7F08B29C 25299EE0 */ addiu $t1, %lo(ptr_BONDdata_p1) # addiu $t1, $t1, -0x6120 +/* 0BFDD0 7F08B2A0 03298821 */ addu $s1, $t9, $t1 +/* 0BFDD4 7F08B2A4 8E2A0000 */ lw $t2, ($s1) +/* 0BFDD8 7F08B2A8 8D4B00D4 */ lw $t3, 0xd4($t2) +/* 0BFDDC 7F08B2AC 51600279 */ beql $t3, $zero, .L7F08BC94 +/* 0BFDE0 7F08B2B0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFDE4 7F08B2B4 0FC26919 */ jal get_num_players +/* 0BFDE8 7F08B2B8 00000000 */ nop +/* 0BFDEC 7F08B2BC 28410002 */ slti $at, $v0, 2 +/* 0BFDF0 7F08B2C0 54200274 */ bnezl $at, .L7F08BC94 +/* 0BFDF4 7F08B2C4 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFDF8 7F08B2C8 0FC26C54 */ jal get_cur_playernum +/* 0BFDFC 7F08B2CC 00000000 */ nop +/* 0BFE00 7F08B2D0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0BFE04 7F08B2D4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BFE08 7F08B2D8 24050001 */ li $a1, 1 +/* 0BFE0C 7F08B2DC 504C026D */ beql $v0, $t4, .L7F08BC94 +/* 0BFE10 7F08B2E0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFE14 7F08B2E4 44811000 */ mtc1 $at, $f2 +/* 0BFE18 7F08B2E8 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BFE1C 7F08B2EC AFA0007C */ sw $zero, 0x7c($sp) +/* 0BFE20 7F08B2F0 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0BFE24 7F08B2F4 E7A20090 */ swc1 $f2, 0x90($sp) +/* 0BFE28 7F08B2F8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0BFE2C 7F08B2FC E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFE30 7F08B300 00408025 */ move $s0, $v0 +/* 0BFE34 7F08B304 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0BFE38 7F08B308 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0BFE3C 7F08B30C 00002825 */ move $a1, $zero +/* 0BFE40 7F08B310 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFE44 7F08B314 00402825 */ move $a1, $v0 +/* 0BFE48 7F08B318 00001825 */ move $v1, $zero +/* 0BFE4C 7F08B31C 00002025 */ move $a0, $zero +/* 0BFE50 7F08B320 12000002 */ beqz $s0, .L7F08B32C +/* 0BFE54 7F08B324 AFA00054 */ sw $zero, 0x54($sp) +/* 0BFE58 7F08B328 8E030004 */ lw $v1, 4($s0) +.L7F08B32C: +/* 0BFE5C 7F08B32C 50400003 */ beql $v0, $zero, .L7F08B33C +/* 0BFE60 7F08B330 AFA3005C */ sw $v1, 0x5c($sp) +/* 0BFE64 7F08B334 8C440004 */ lw $a0, 4($v0) +/* 0BFE68 7F08B338 AFA3005C */ sw $v1, 0x5c($sp) +.L7F08B33C: +/* 0BFE6C 7F08B33C AFA40058 */ sw $a0, 0x58($sp) +/* 0BFE70 7F08B340 AFA50060 */ sw $a1, 0x60($sp) +/* 0BFE74 7F08B344 0FC26C54 */ jal get_cur_playernum +/* 0BFE78 7F08B348 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFE7C 7F08B34C 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0BFE80 7F08B350 00402025 */ move $a0, $v0 +/* 0BFE84 7F08B354 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BFE88 7F08B358 8FA50060 */ lw $a1, 0x60($sp) +/* 0BFE8C 7F08B35C 14400006 */ bnez $v0, .L7F08B378 +/* 0BFE90 7F08B360 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFE94 7F08B364 3C028003 */ lui $v0, %hi(D_800368B8+0x1C) +/* 0BFE98 7F08B368 244268D4 */ addiu $v0, %lo(D_800368B8+0x1C) # addiu $v0, $v0, 0x68d4 +/* 0BFE9C 7F08B36C 8C4D0000 */ lw $t5, ($v0) +/* 0BFEA0 7F08B370 25AE0001 */ addiu $t6, $t5, 1 +/* 0BFEA4 7F08B374 AC4E0000 */ sw $t6, ($v0) +.L7F08B378: +/* 0BFEA8 7F08B378 3C028003 */ lui $v0, %hi(D_800368B8+0x1C) +/* 0BFEAC 7F08B37C 244268D4 */ addiu $v0, %lo(D_800368B8+0x1C) # addiu $v0, $v0, 0x68d4 +/* 0BFEB0 7F08B380 8C4F0000 */ lw $t7, ($v0) +/* 0BFEB4 7F08B384 29E10002 */ slti $at, $t7, 2 +/* 0BFEB8 7F08B388 542001BB */ bnezl $at, .L7F08BA78 +/* 0BFEBC 7F08B38C 8E2A0000 */ lw $t2, ($s1) +/* 0BFEC0 7F08B390 8E280000 */ lw $t0, ($s1) +/* 0BFEC4 7F08B394 C5042A08 */ lwc1 $f4, 0x2a08($t0) +/* 0BFEC8 7F08B398 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0BFECC 7F08B39C C5062A0C */ lwc1 $f6, 0x2a0c($t0) +/* 0BFED0 7F08B3A0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 0BFED4 7F08B3A4 8D1800D8 */ lw $t8, 0xd8($t0) +/* 0BFED8 7F08B3A8 13000036 */ beqz $t8, .L7F08B484 +/* 0BFEDC 7F08B3AC 3C078003 */ lui $a3, %hi(D_8003650C) +/* 0BFEE0 7F08B3B0 8CE7650C */ lw $a3, %lo(D_8003650C)($a3) +/* 0BFEE4 7F08B3B4 00002825 */ move $a1, $zero +/* 0BFEE8 7F08B3B8 00008025 */ move $s0, $zero +/* 0BFEEC 7F08B3BC 18E00010 */ blez $a3, .L7F08B400 +/* 0BFEF0 7F08B3C0 3C198003 */ lui $t9, %hi(D_800364D8) +/* 0BFEF4 7F08B3C4 272264D8 */ addiu $v0, $t9, %lo(D_800364D8) +/* 0BFEF8 7F08B3C8 3C038007 */ lui $v1, %hi(ptr_animation_table) +/* 0BFEFC 7F08B3CC 00074880 */ sll $t1, $a3, 2 +/* 0BFF00 7F08B3D0 01222021 */ addu $a0, $t1, $v0 +/* 0BFF04 7F08B3D4 8C639538 */ lw $v1, %lo(ptr_animation_table)($v1) +/* 0BFF08 7F08B3D8 8D061284 */ lw $a2, 0x1284($t0) +/* 0BFF0C 7F08B3DC 8C4A0000 */ lw $t2, ($v0) +.L7F08B3E0: +/* 0BFF10 7F08B3E0 24420004 */ addiu $v0, $v0, 4 +/* 0BFF14 7F08B3E4 0044082B */ sltu $at, $v0, $a0 +/* 0BFF18 7F08B3E8 01435821 */ addu $t3, $t2, $v1 +/* 0BFF1C 7F08B3EC 14CB0002 */ bne $a2, $t3, .L7F08B3F8 +/* 0BFF20 7F08B3F0 00000000 */ nop +/* 0BFF24 7F08B3F4 24050001 */ li $a1, 1 +.L7F08B3F8: +/* 0BFF28 7F08B3F8 5420FFF9 */ bnezl $at, .L7F08B3E0 +/* 0BFF2C 7F08B3FC 8C4A0000 */ lw $t2, ($v0) +.L7F08B400: +/* 0BFF30 7F08B400 10A00005 */ beqz $a1, .L7F08B418 +/* 0BFF34 7F08B404 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BFF38 7F08B408 8D061284 */ lw $a2, 0x1284($t0) +/* 0BFF3C 7F08B40C 44816000 */ mtc1 $at, $f12 +/* 0BFF40 7F08B410 10000017 */ b .L7F08B470 +/* 0BFF44 7F08B414 AFA6009C */ sw $a2, 0x9c($sp) +.L7F08B418: +/* 0BFF48 7F08B418 0C002914 */ jal get_random_value +/* 0BFF4C 7F08B41C E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFF50 7F08B420 3C0C8003 */ lui $t4, %hi(D_8003650C) +/* 0BFF54 7F08B424 8D8C650C */ lw $t4, %lo(D_8003650C)($t4) +/* 0BFF58 7F08B428 3C0F8003 */ lui $t7, %hi(D_800364D8) +/* 0BFF5C 7F08B42C 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0BFF60 7F08B430 004C001B */ divu $zero, $v0, $t4 +/* 0BFF64 7F08B434 00006810 */ mfhi $t5 +/* 0BFF68 7F08B438 000D7080 */ sll $t6, $t5, 2 +/* 0BFF6C 7F08B43C 01EE7821 */ addu $t7, $t7, $t6 +/* 0BFF70 7F08B440 8DEF64D8 */ lw $t7, %lo(D_800364D8)($t7) +/* 0BFF74 7F08B444 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0BFF78 7F08B448 8E280000 */ lw $t0, ($s1) +/* 0BFF7C 7F08B44C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BFF80 7F08B450 01F84821 */ addu $t1, $t7, $t8 +/* 0BFF84 7F08B454 AFA9009C */ sw $t1, 0x9c($sp) +/* 0BFF88 7F08B458 44816000 */ mtc1 $at, $f12 +/* 0BFF8C 7F08B45C C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFF90 7F08B460 15800002 */ bnez $t4, .L7F08B46C +/* 0BFF94 7F08B464 00000000 */ nop +/* 0BFF98 7F08B468 0007000D */ break 7 +.L7F08B46C: +/* 0BFF9C 7F08B46C 8D061284 */ lw $a2, 0x1284($t0) +.L7F08B470: +/* 0BFFA0 7F08B470 44807000 */ mtc1 $zero, $f14 +/* 0BFFA4 7F08B474 00000000 */ nop +/* 0BFFA8 7F08B478 E7AE008C */ swc1 $f14, 0x8c($sp) +/* 0BFFAC 7F08B47C 100000F6 */ b .L7F08B858 +/* 0BFFB0 7F08B480 E7AE0088 */ swc1 $f14, 0x88($sp) +.L7F08B484: +/* 0BFFB4 7F08B484 12000005 */ beqz $s0, .L7F08B49C +/* 0BFFB8 7F08B488 00000000 */ nop +/* 0BFFBC 7F08B48C 10A00003 */ beqz $a1, .L7F08B49C +/* 0BFFC0 7F08B490 00000000 */ nop +/* 0BFFC4 7F08B494 1000002E */ b .L7F08B550 +/* 0BFFC8 7F08B498 24100003 */ li $s0, 3 +.L7F08B49C: +/* 0BFFCC 7F08B49C 16000005 */ bnez $s0, .L7F08B4B4 +/* 0BFFD0 7F08B4A0 00000000 */ nop +/* 0BFFD4 7F08B4A4 14A00003 */ bnez $a1, .L7F08B4B4 +/* 0BFFD8 7F08B4A8 00000000 */ nop +/* 0BFFDC 7F08B4AC 10000028 */ b .L7F08B550 +/* 0BFFE0 7F08B4B0 24100002 */ li $s0, 2 +.L7F08B4B4: +/* 0BFFE4 7F08B4B4 10600008 */ beqz $v1, .L7F08B4D8 +/* 0BFFE8 7F08B4B8 24050200 */ li $a1, 512 +/* 0BFFEC 7F08B4BC 80640080 */ lb $a0, 0x80($v1) +/* 0BFFF0 7F08B4C0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0BFFF4 7F08B4C4 AFA3005C */ sw $v1, 0x5c($sp) +/* 0BFFF8 7F08B4C8 14400003 */ bnez $v0, .L7F08B4D8 +/* 0BFFFC 7F08B4CC 8FA3005C */ lw $v1, 0x5c($sp) +/* 0C0000 7F08B4D0 1000001F */ b .L7F08B550 +/* 0C0004 7F08B4D4 24100002 */ li $s0, 2 +.L7F08B4D8: +/* 0C0008 7F08B4D8 8FA20058 */ lw $v0, 0x58($sp) +/* 0C000C 7F08B4DC 24050200 */ li $a1, 512 +/* 0C0010 7F08B4E0 10400008 */ beqz $v0, .L7F08B504 +/* 0C0014 7F08B4E4 00000000 */ nop +/* 0C0018 7F08B4E8 80440080 */ lb $a0, 0x80($v0) +/* 0C001C 7F08B4EC 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0020 7F08B4F0 AFA3005C */ sw $v1, 0x5c($sp) +/* 0C0024 7F08B4F4 14400003 */ bnez $v0, .L7F08B504 +/* 0C0028 7F08B4F8 8FA3005C */ lw $v1, 0x5c($sp) +/* 0C002C 7F08B4FC 10000014 */ b .L7F08B550 +/* 0C0030 7F08B500 24100002 */ li $s0, 2 +.L7F08B504: +/* 0C0034 7F08B504 10600007 */ beqz $v1, .L7F08B524 +/* 0C0038 7F08B508 24050100 */ li $a1, 256 +/* 0C003C 7F08B50C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0040 7F08B510 80640080 */ lb $a0, 0x80($v1) +/* 0C0044 7F08B514 50400004 */ beql $v0, $zero, .L7F08B528 +/* 0C0048 7F08B518 8FA20058 */ lw $v0, 0x58($sp) +/* 0C004C 7F08B51C 1000000C */ b .L7F08B550 +/* 0C0050 7F08B520 00008025 */ move $s0, $zero +.L7F08B524: +/* 0C0054 7F08B524 8FA20058 */ lw $v0, 0x58($sp) +.L7F08B528: +/* 0C0058 7F08B528 24050100 */ li $a1, 256 +/* 0C005C 7F08B52C 50400008 */ beql $v0, $zero, .L7F08B550 +/* 0C0060 7F08B530 24100001 */ li $s0, 1 +/* 0C0064 7F08B534 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0068 7F08B538 80440080 */ lb $a0, 0x80($v0) +/* 0C006C 7F08B53C 50400004 */ beql $v0, $zero, .L7F08B550 +/* 0C0070 7F08B540 24100001 */ li $s0, 1 +/* 0C0074 7F08B544 10000002 */ b .L7F08B550 +/* 0C0078 7F08B548 00008025 */ move $s0, $zero +/* 0C007C 7F08B54C 24100001 */ li $s0, 1 +.L7F08B550: +/* 0C0080 7F08B550 0FC1E687 */ jal sub_GAME_7F079A1C +/* 0C0084 7F08B554 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0C0088 7F08B558 24010001 */ li $at, 1 +/* 0C008C 7F08B55C 50410005 */ beql $v0, $at, .L7F08B574 +/* 0C0090 7F08B560 3C013F80 */ lui $at, 0x3f80 +/* 0C0094 7F08B564 0FC1E687 */ jal sub_GAME_7F079A1C +/* 0C0098 7F08B568 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0C009C 7F08B56C 14400006 */ bnez $v0, .L7F08B588 +/* 0C00A0 7F08B570 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F08B574: +/* 0C00A4 7F08B574 44816000 */ mtc1 $at, $f12 +/* 0C00A8 7F08B578 44807000 */ mtc1 $zero, $f14 +/* 0C00AC 7F08B57C 24040005 */ li $a0, 5 +/* 0C00B0 7F08B580 1000009D */ b .L7F08B7F8 +/* 0C00B4 7F08B584 8E280000 */ lw $t0, ($s1) +.L7F08B588: +/* 0C00B8 7F08B588 8E280000 */ lw $t0, ($s1) +/* 0C00BC 7F08B58C 44807000 */ mtc1 $zero, $f14 +/* 0C00C0 7F08B590 0010C900 */ sll $t9, $s0, 4 +/* 0C00C4 7F08B594 C502016C */ lwc1 $f2, 0x16c($t0) +/* 0C00C8 7F08B598 0330C823 */ subu $t9, $t9, $s0 +/* 0C00CC 7F08B59C 0019C8C0 */ sll $t9, $t9, 3 +/* 0C00D0 7F08B5A0 460E103C */ c.lt.s $f2, $f14 +/* 0C00D4 7F08B5A4 3C0A8003 */ lui $t2, %hi(firing_animation_groups+0x50) #firing_animation_groups[440] +/* 0C00D8 7F08B5A8 01595021 */ addu $t2, $t2, $t9 +/* 0C00DC 7F08B5AC 45020014 */ bc1fl .L7F08B600 +/* 0C00E0 7F08B5B0 4602703C */ c.lt.s $f14, $f2 +/* 0C00E4 7F08B5B4 8D4A6928 */ lw $t2, %lo(firing_animation_groups+0x50)($t2) #firing_animation_groups[440] +/* 0C00E8 7F08B5B8 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0C00EC 7F08B5BC 51400010 */ beql $t2, $zero, .L7F08B600 +/* 0C00F0 7F08B5C0 4602703C */ c.lt.s $f14, $f2 +/* 0C00F4 7F08B5C4 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C00F8 7F08B5C8 44814000 */ mtc1 $at, $f8 +/* 0C00FC 7F08B5CC 24040004 */ li $a0, 4 +/* 0C0100 7F08B5D0 46001307 */ neg.s $f12, $f2 +/* 0C0104 7F08B5D4 4608003C */ c.lt.s $f0, $f8 +/* 0C0108 7F08B5D8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C010C 7F08B5DC 45020087 */ bc1fl .L7F08B7FC +/* 0C0110 7F08B5E0 00107900 */ sll $t7, $s0, 4 +/* 0C0114 7F08B5E4 44815000 */ mtc1 $at, $f10 +/* 0C0118 7F08B5E8 00000000 */ nop +/* 0C011C 7F08B5EC 460A0480 */ add.s $f18, $f0, $f10 +/* 0C0120 7F08B5F0 E5121280 */ swc1 $f18, 0x1280($t0) +/* 0C0124 7F08B5F4 10000080 */ b .L7F08B7F8 +/* 0C0128 7F08B5F8 8E280000 */ lw $t0, ($s1) +/* 0C012C 7F08B5FC 4602703C */ c.lt.s $f14, $f2 +.L7F08B600: +/* 0C0130 7F08B600 00105900 */ sll $t3, $s0, 4 +/* 0C0134 7F08B604 01705823 */ subu $t3, $t3, $s0 +/* 0C0138 7F08B608 000B58C0 */ sll $t3, $t3, 3 +/* 0C013C 7F08B60C 45000014 */ bc1f .L7F08B660 +/* 0C0140 7F08B610 3C0C8003 */ lui $t4, %hi(firing_animation_groups+0x3C) +/* 0C0144 7F08B614 018B6021 */ addu $t4, $t4, $t3 +/* 0C0148 7F08B618 8D8C6914 */ lw $t4, %lo(firing_animation_groups+0x3C)($t4) +/* 0C014C 7F08B61C 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0C0150 7F08B620 51800010 */ beql $t4, $zero, .L7F08B664 +/* 0C0154 7F08B624 C502014C */ lwc1 $f2, 0x14c($t0) +/* 0C0158 7F08B628 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C015C 7F08B62C 44812000 */ mtc1 $at, $f4 +/* 0C0160 7F08B630 24040003 */ li $a0, 3 +/* 0C0164 7F08B634 46001306 */ mov.s $f12, $f2 +/* 0C0168 7F08B638 4600203C */ c.lt.s $f4, $f0 +/* 0C016C 7F08B63C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C0170 7F08B640 4502006E */ bc1fl .L7F08B7FC +/* 0C0174 7F08B644 00107900 */ sll $t7, $s0, 4 +/* 0C0178 7F08B648 44813000 */ mtc1 $at, $f6 +/* 0C017C 7F08B64C 00000000 */ nop +/* 0C0180 7F08B650 46060201 */ sub.s $f8, $f0, $f6 +/* 0C0184 7F08B654 E5081280 */ swc1 $f8, 0x1280($t0) +/* 0C0188 7F08B658 10000067 */ b .L7F08B7F8 +/* 0C018C 7F08B65C 8E280000 */ lw $t0, ($s1) +.L7F08B660: +/* 0C0190 7F08B660 C502014C */ lwc1 $f2, 0x14c($t0) +.L7F08B664: +/* 0C0194 7F08B664 3C018005 */ lui $at, %hi(D_800552C0) +/* 0C0198 7F08B668 460E103C */ c.lt.s $f2, $f14 +/* 0C019C 7F08B66C 00000000 */ nop +/* 0C01A0 7F08B670 45020003 */ bc1fl .L7F08B680 +/* 0C01A4 7F08B674 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0C01A8 7F08B678 46001087 */ neg.s $f2, $f2 +/* 0C01AC 7F08B67C C5000174 */ lwc1 $f0, 0x174($t0) +.L7F08B680: +/* 0C01B0 7F08B680 C42A52C0 */ lwc1 $f10, %lo(D_800552C0)($at) +/* 0C01B4 7F08B684 3C018005 */ lui $at, %hi(D_800552C8) +/* 0C01B8 7F08B688 460A003C */ c.lt.s $f0, $f10 +/* 0C01BC 7F08B68C 00000000 */ nop +/* 0C01C0 7F08B690 4500001D */ bc1f .L7F08B708 +/* 0C01C4 7F08B694 00000000 */ nop +/* 0C01C8 7F08B698 46001087 */ neg.s $f2, $f2 +/* 0C01CC 7F08B69C 3C018005 */ lui $at, %hi(D_800552C4) +/* 0C01D0 7F08B6A0 4602003C */ c.lt.s $f0, $f2 +/* 0C01D4 7F08B6A4 00000000 */ nop +/* 0C01D8 7F08B6A8 45020003 */ bc1fl .L7F08B6B8 +/* 0C01DC 7F08B6AC 8D0D04E8 */ lw $t5, 0x4e8($t0) +/* 0C01E0 7F08B6B0 46000086 */ mov.s $f2, $f0 +/* 0C01E4 7F08B6B4 8D0D04E8 */ lw $t5, 0x4e8($t0) +.L7F08B6B8: +/* 0C01E8 7F08B6B8 51A00008 */ beql $t5, $zero, .L7F08B6DC +/* 0C01EC 7F08B6BC 46021300 */ add.s $f12, $f2, $f2 +/* 0C01F0 7F08B6C0 C43252C4 */ lwc1 $f18, %lo(D_800552C4)($at) +/* 0C01F4 7F08B6C4 24040002 */ li $a0, 2 +/* 0C01F8 7F08B6C8 4600903C */ c.lt.s $f18, $f0 +/* 0C01FC 7F08B6CC 00000000 */ nop +/* 0C0200 7F08B6D0 4500000B */ bc1f .L7F08B700 +/* 0C0204 7F08B6D4 00000000 */ nop +/* 0C0208 7F08B6D8 46021300 */ add.s $f12, $f2, $f2 +.L7F08B6DC: +/* 0C020C 7F08B6DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0C0210 7F08B6E0 44818000 */ mtc1 $at, $f16 +/* 0C0214 7F08B6E4 24040001 */ li $a0, 1 +/* 0C0218 7F08B6E8 4610603C */ c.lt.s $f12, $f16 +/* 0C021C 7F08B6EC 00000000 */ nop +/* 0C0220 7F08B6F0 4502002D */ bc1fl .L7F08B7A8 +/* 0C0224 7F08B6F4 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C0228 7F08B6F8 1000002A */ b .L7F08B7A4 +/* 0C022C 7F08B6FC 46008306 */ mov.s $f12, $f16 +.L7F08B700: +/* 0C0230 7F08B700 10000028 */ b .L7F08B7A4 +/* 0C0234 7F08B704 46001306 */ mov.s $f12, $f2 +.L7F08B708: +/* 0C0238 7F08B708 C42C52C8 */ lwc1 $f12, %lo(D_800552C8)($at) +/* 0C023C 7F08B70C 4600603C */ c.lt.s $f12, $f0 +/* 0C0240 7F08B710 00000000 */ nop +/* 0C0244 7F08B714 45030006 */ bc1tl .L7F08B730 +/* 0C0248 7F08B718 4600103C */ c.lt.s $f2, $f0 +/* 0C024C 7F08B71C 4602603C */ c.lt.s $f12, $f2 +/* 0C0250 7F08B720 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C0254 7F08B724 4502001E */ bc1fl .L7F08B7A0 +/* 0C0258 7F08B728 44816000 */ mtc1 $at, $f12 +/* 0C025C 7F08B72C 4600103C */ c.lt.s $f2, $f0 +.L7F08B730: +/* 0C0260 7F08B730 3C018005 */ lui $at, %hi(D_800552CC) +/* 0C0264 7F08B734 45020003 */ bc1fl .L7F08B744 +/* 0C0268 7F08B738 8D0E04E8 */ lw $t6, 0x4e8($t0) +/* 0C026C 7F08B73C 46000086 */ mov.s $f2, $f0 +/* 0C0270 7F08B740 8D0E04E8 */ lw $t6, 0x4e8($t0) +.L7F08B744: +/* 0C0274 7F08B744 51C00008 */ beql $t6, $zero, .L7F08B768 +/* 0C0278 7F08B748 46021300 */ add.s $f12, $f2, $f2 +/* 0C027C 7F08B74C C42452CC */ lwc1 $f4, %lo(D_800552CC)($at) +/* 0C0280 7F08B750 24040002 */ li $a0, 2 +/* 0C0284 7F08B754 4604003C */ c.lt.s $f0, $f4 +/* 0C0288 7F08B758 00000000 */ nop +/* 0C028C 7F08B75C 4500000D */ bc1f .L7F08B794 +/* 0C0290 7F08B760 00000000 */ nop +/* 0C0294 7F08B764 46021300 */ add.s $f12, $f2, $f2 +.L7F08B768: +/* 0C0298 7F08B768 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C029C 7F08B76C 44813000 */ mtc1 $at, $f6 +/* 0C02A0 7F08B770 24040001 */ li $a0, 1 +/* 0C02A4 7F08B774 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C02A8 7F08B778 460C303C */ c.lt.s $f6, $f12 +/* 0C02AC 7F08B77C 00000000 */ nop +/* 0C02B0 7F08B780 45020009 */ bc1fl .L7F08B7A8 +/* 0C02B4 7F08B784 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C02B8 7F08B788 44816000 */ mtc1 $at, $f12 +/* 0C02BC 7F08B78C 10000006 */ b .L7F08B7A8 +/* 0C02C0 7F08B790 C5001280 */ lwc1 $f0, 0x1280($t0) +.L7F08B794: +/* 0C02C4 7F08B794 10000003 */ b .L7F08B7A4 +/* 0C02C8 7F08B798 46001306 */ mov.s $f12, $f2 +/* 0C02CC 7F08B79C 44816000 */ mtc1 $at, $f12 +.L7F08B7A0: +/* 0C02D0 7F08B7A0 00002025 */ move $a0, $zero +.L7F08B7A4: +/* 0C02D4 7F08B7A4 C5001280 */ lwc1 $f0, 0x1280($t0) +.L7F08B7A8: +/* 0C02D8 7F08B7A8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C02DC 7F08B7AC 4600703C */ c.lt.s $f14, $f0 +/* 0C02E0 7F08B7B0 00000000 */ nop +/* 0C02E4 7F08B7B4 45020008 */ bc1fl .L7F08B7D8 +/* 0C02E8 7F08B7B8 460E003C */ c.lt.s $f0, $f14 +/* 0C02EC 7F08B7BC 44814000 */ mtc1 $at, $f8 +/* 0C02F0 7F08B7C0 00000000 */ nop +/* 0C02F4 7F08B7C4 46080281 */ sub.s $f10, $f0, $f8 +/* 0C02F8 7F08B7C8 E50A1280 */ swc1 $f10, 0x1280($t0) +/* 0C02FC 7F08B7CC 8E280000 */ lw $t0, ($s1) +/* 0C0300 7F08B7D0 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C0304 7F08B7D4 460E003C */ c.lt.s $f0, $f14 +.L7F08B7D8: +/* 0C0308 7F08B7D8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C030C 7F08B7DC 45020007 */ bc1fl .L7F08B7FC +/* 0C0310 7F08B7E0 00107900 */ sll $t7, $s0, 4 +/* 0C0314 7F08B7E4 44819000 */ mtc1 $at, $f18 +/* 0C0318 7F08B7E8 00000000 */ nop +/* 0C031C 7F08B7EC 46120100 */ add.s $f4, $f0, $f18 +/* 0C0320 7F08B7F0 E5041280 */ swc1 $f4, 0x1280($t0) +/* 0C0324 7F08B7F4 8E280000 */ lw $t0, ($s1) +.L7F08B7F8: +/* 0C0328 7F08B7F8 00107900 */ sll $t7, $s0, 4 +.L7F08B7FC: +/* 0C032C 7F08B7FC 0004C080 */ sll $t8, $a0, 2 +/* 0C0330 7F08B800 0304C021 */ addu $t8, $t8, $a0 +/* 0C0334 7F08B804 01F07823 */ subu $t7, $t7, $s0 +/* 0C0338 7F08B808 000F78C0 */ sll $t7, $t7, 3 +/* 0C033C 7F08B80C 0018C080 */ sll $t8, $t8, 2 +/* 0C0340 7F08B810 3C198003 */ lui $t9, %hi(firing_animation_groups) +/* 0C0344 7F08B814 273968D8 */ addiu $t9, %lo(firing_animation_groups) # addiu $t9, $t9, 0x68d8 +/* 0C0348 7F08B818 01F84821 */ addu $t1, $t7, $t8 +/* 0C034C 7F08B81C 01391021 */ addu $v0, $t1, $t9 +/* 0C0350 7F08B820 8C430004 */ lw $v1, 4($v0) +/* 0C0354 7F08B824 8C4A0000 */ lw $t2, ($v0) +/* 0C0358 7F08B828 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0C035C 7F08B82C 10600004 */ beqz $v1, .L7F08B840 +/* 0C0360 7F08B830 AFAA007C */ sw $t2, 0x7c($sp) +/* 0C0364 7F08B834 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0C0368 7F08B838 006B6021 */ addu $t4, $v1, $t3 +/* 0C036C 7F08B83C AFAC009C */ sw $t4, 0x9c($sp) +.L7F08B840: +/* 0C0370 7F08B840 C4460008 */ lwc1 $f6, 8($v0) +/* 0C0374 7F08B844 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0C0378 7F08B848 C442000C */ lwc1 $f2, 0xc($v0) +/* 0C037C 7F08B84C 46066302 */ mul.s $f12, $f12, $f6 +/* 0C0380 7F08B850 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0C0384 7F08B854 8D061284 */ lw $a2, 0x1284($t0) +.L7F08B858: +/* 0C0388 7F08B858 8FAD007C */ lw $t5, 0x7c($sp) +/* 0C038C 7F08B85C 8FAE009C */ lw $t6, 0x9c($sp) +/* 0C0390 7F08B860 24020001 */ li $v0, 1 +/* 0C0394 7F08B864 51A00006 */ beql $t5, $zero, .L7F08B880 +/* 0C0398 7F08B868 8FB8009C */ lw $t8, 0x9c($sp) +/* 0C039C 7F08B86C 55C00004 */ bnezl $t6, .L7F08B880 +/* 0C03A0 7F08B870 8FB8009C */ lw $t8, 0x9c($sp) +/* 0C03A4 7F08B874 8DAF0000 */ lw $t7, ($t5) +/* 0C03A8 7F08B878 AFAF009C */ sw $t7, 0x9c($sp) +/* 0C03AC 7F08B87C 8FB8009C */ lw $t8, 0x9c($sp) +.L7F08B880: +/* 0C03B0 7F08B880 53060003 */ beql $t8, $a2, .L7F08B890 +/* 0C03B4 7F08B884 4602703E */ c.le.s $f14, $f2 +/* 0C03B8 7F08B888 AFA20054 */ sw $v0, 0x54($sp) +/* 0C03BC 7F08B88C 4602703E */ c.le.s $f14, $f2 +.L7F08B890: +/* 0C03C0 7F08B890 8FA20054 */ lw $v0, 0x54($sp) +/* 0C03C4 7F08B894 4502000C */ bc1fl .L7F08B8C8 +/* 0C03C8 7F08B898 460E103C */ c.lt.s $f2, $f14 +/* 0C03CC 7F08B89C 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C03D0 7F08B8A0 80890026 */ lb $t1, 0x26($a0) +/* 0C03D4 7F08B8A4 51200007 */ beql $t1, $zero, .L7F08B8C4 +/* 0C03D8 7F08B8A8 24020001 */ li $v0, 1 +/* 0C03DC 7F08B8AC C48A0090 */ lwc1 $f10, 0x90($a0) +/* 0C03E0 7F08B8B0 460A1032 */ c.eq.s $f2, $f10 +/* 0C03E4 7F08B8B4 00000000 */ nop +/* 0C03E8 7F08B8B8 45030003 */ bc1tl .L7F08B8C8 +/* 0C03EC 7F08B8BC 460E103C */ c.lt.s $f2, $f14 +/* 0C03F0 7F08B8C0 24020001 */ li $v0, 1 +.L7F08B8C4: +/* 0C03F4 7F08B8C4 460E103C */ c.lt.s $f2, $f14 +.L7F08B8C8: +/* 0C03F8 7F08B8C8 00000000 */ nop +/* 0C03FC 7F08B8CC 45000006 */ bc1f .L7F08B8E8 +/* 0C0400 7F08B8D0 00000000 */ nop +/* 0C0404 7F08B8D4 8D1900D4 */ lw $t9, 0xd4($t0) +/* 0C0408 7F08B8D8 832A0026 */ lb $t2, 0x26($t9) +/* 0C040C 7F08B8DC 11400002 */ beqz $t2, .L7F08B8E8 +/* 0C0410 7F08B8E0 00000000 */ nop +/* 0C0414 7F08B8E4 24020001 */ li $v0, 1 +.L7F08B8E8: +/* 0C0418 7F08B8E8 50400035 */ beql $v0, $zero, .L7F08B9C0 +/* 0C041C 7F08B8EC C5061288 */ lwc1 $f6, 0x1288($t0) +/* 0C0420 7F08B8F0 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C0424 7F08B8F4 8FA5009C */ lw $a1, 0x9c($sp) +/* 0C0428 7F08B8F8 00003025 */ move $a2, $zero +/* 0C042C 7F08B8FC 8C8B0054 */ lw $t3, 0x54($a0) +/* 0C0430 7F08B900 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0C0434 7F08B904 5560002B */ bnezl $t3, .L7F08B9B4 +/* 0C0438 7F08B908 8E290000 */ lw $t1, ($s1) +/* 0C043C 7F08B90C 4602703E */ c.le.s $f14, $f2 +/* 0C0440 7F08B910 44819000 */ mtc1 $at, $f18 +/* 0C0444 7F08B914 45020004 */ bc1fl .L7F08B928 +/* 0C0448 7F08B918 46007006 */ mov.s $f0, $f14 +/* 0C044C 7F08B91C 10000002 */ b .L7F08B928 +/* 0C0450 7F08B920 46001006 */ mov.s $f0, $f2 +/* 0C0454 7F08B924 46007006 */ mov.s $f0, $f14 +.L7F08B928: +/* 0C0458 7F08B928 44070000 */ mfc1 $a3, $f0 +/* 0C045C 7F08B92C E7AC0010 */ swc1 $f12, 0x10($sp) +/* 0C0460 7F08B930 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0C0464 7F08B934 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0C0468 7F08B938 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C046C 7F08B93C E7AC0098 */ swc1 $f12, 0x98($sp) +/* 0C0470 7F08B940 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0C0474 7F08B944 44807000 */ mtc1 $zero, $f14 +/* 0C0478 7F08B948 8FAC009C */ lw $t4, 0x9c($sp) +/* 0C047C 7F08B94C 8E2E0000 */ lw $t6, ($s1) +/* 0C0480 7F08B950 4602703E */ c.le.s $f14, $f2 +/* 0C0484 7F08B954 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 0C0488 7F08B958 ADCC1284 */ sw $t4, 0x1284($t6) +/* 0C048C 7F08B95C 8E2D0000 */ lw $t5, ($s1) +/* 0C0490 7F08B960 3C064180 */ lui $a2, 0x4180 +/* 0C0494 7F08B964 45000007 */ bc1f .L7F08B984 +/* 0C0498 7F08B968 E5AC1288 */ swc1 $f12, 0x1288($t5) +/* 0C049C 7F08B96C 8E2F0000 */ lw $t7, ($s1) +/* 0C04A0 7F08B970 44051000 */ mfc1 $a1, $f2 +/* 0C04A4 7F08B974 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0C04A8 7F08B978 8DE400D4 */ lw $a0, 0xd4($t7) +/* 0C04AC 7F08B97C 44807000 */ mtc1 $zero, $f14 +/* 0C04B0 7F08B980 00000000 */ nop +.L7F08B984: +/* 0C04B4 7F08B984 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0C04B8 7F08B988 4604703E */ c.le.s $f14, $f4 +/* 0C04BC 7F08B98C 00000000 */ nop +/* 0C04C0 7F08B990 45020008 */ bc1fl .L7F08B9B4 +/* 0C04C4 7F08B994 8E290000 */ lw $t1, ($s1) +/* 0C04C8 7F08B998 8E380000 */ lw $t8, ($s1) +/* 0C04CC 7F08B99C 44052000 */ mfc1 $a1, $f4 +/* 0C04D0 7F08B9A0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0C04D4 7F08B9A4 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0C04D8 7F08B9A8 44807000 */ mtc1 $zero, $f14 +/* 0C04DC 7F08B9AC 00000000 */ nop +/* 0C04E0 7F08B9B0 8E290000 */ lw $t1, ($s1) +.L7F08B9B4: +/* 0C04E4 7F08B9B4 10000011 */ b .L7F08B9FC +/* 0C04E8 7F08B9B8 8D261284 */ lw $a2, 0x1284($t1) +/* 0C04EC 7F08B9BC C5061288 */ lwc1 $f6, 0x1288($t0) +.L7F08B9C0: +/* 0C04F0 7F08B9C0 46066032 */ c.eq.s $f12, $f6 +/* 0C04F4 7F08B9C4 00000000 */ nop +/* 0C04F8 7F08B9C8 4503000D */ bc1tl .L7F08BA00 +/* 0C04FC 7F08B9CC 8FAB009C */ lw $t3, 0x9c($sp) +/* 0C0500 7F08B9D0 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C0504 7F08B9D4 44056000 */ mfc1 $a1, $f12 +/* 0C0508 7F08B9D8 E7AC0098 */ swc1 $f12, 0x98($sp) +/* 0C050C 7F08B9DC 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C0510 7F08B9E0 3C063F80 */ lui $a2, 0x3f80 +/* 0C0514 7F08B9E4 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 0C0518 7F08B9E8 8E390000 */ lw $t9, ($s1) +/* 0C051C 7F08B9EC 44807000 */ mtc1 $zero, $f14 +/* 0C0520 7F08B9F0 E72C1288 */ swc1 $f12, 0x1288($t9) +/* 0C0524 7F08B9F4 8E2A0000 */ lw $t2, ($s1) +/* 0C0528 7F08B9F8 8D461284 */ lw $a2, 0x1284($t2) +.L7F08B9FC: +/* 0C052C 7F08B9FC 8FAB009C */ lw $t3, 0x9c($sp) +.L7F08BA00: +/* 0C0530 7F08BA00 8FAC007C */ lw $t4, 0x7c($sp) +/* 0C0534 7F08BA04 55660017 */ bnel $t3, $a2, .L7F08BA64 +/* 0C0538 7F08BA08 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0C053C 7F08BA0C 1180000D */ beqz $t4, .L7F08BA44 +/* 0C0540 7F08BA10 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0C0544 7F08BA14 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0548 7F08BA18 00003025 */ move $a2, $zero +/* 0C054C 7F08BA1C 24070001 */ li $a3, 1 +/* 0C0550 7F08BA20 948E0012 */ lhu $t6, 0x12($a0) +/* 0C0554 7F08BA24 31CDFBFF */ andi $t5, $t6, 0xfbff +/* 0C0558 7F08BA28 A48D0012 */ sh $t5, 0x12($a0) +/* 0C055C 7F08BA2C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0C0560 7F08BA30 8FA5007C */ lw $a1, 0x7c($sp) +/* 0C0564 7F08BA34 0FC0B412 */ jal sub_GAME_7F02D048 +/* 0C0568 7F08BA38 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0C056C 7F08BA3C 10000009 */ b .L7F08BA64 +/* 0C0570 7F08BA40 8FA200F0 */ lw $v0, 0xf0($sp) +.L7F08BA44: +/* 0C0574 7F08BA44 95F80012 */ lhu $t8, 0x12($t7) +/* 0C0578 7F08BA48 E5EE0154 */ swc1 $f14, 0x154($t7) +/* 0C057C 7F08BA4C E5EE0150 */ swc1 $f14, 0x150($t7) +/* 0C0580 7F08BA50 37090400 */ ori $t1, $t8, 0x400 +/* 0C0584 7F08BA54 A5E90012 */ sh $t1, 0x12($t7) +/* 0C0588 7F08BA58 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0C058C 7F08BA5C E5EA0158 */ swc1 $f10, 0x158($t7) +/* 0C0590 7F08BA60 8FA200F0 */ lw $v0, 0xf0($sp) +.L7F08BA64: +/* 0C0594 7F08BA64 C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0C0598 7F08BA68 2419000A */ li $t9, 10 +/* 0C059C 7F08BA6C A059000E */ sb $t9, 0xe($v0) +/* 0C05A0 7F08BA70 E452015C */ swc1 $f18, 0x15c($v0) +/* 0C05A4 7F08BA74 8E2A0000 */ lw $t2, ($s1) +.L7F08BA78: +/* 0C05A8 7F08BA78 8FA300F8 */ lw $v1, 0xf8($sp) +/* 0C05AC 7F08BA7C 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0C05B0 7F08BA80 C544048C */ lwc1 $f4, 0x48c($t2) +/* 0C05B4 7F08BA84 27A50070 */ addiu $a1, $sp, 0x70 +/* 0C05B8 7F08BA88 00008025 */ move $s0, $zero +/* 0C05BC 7F08BA8C E4640008 */ swc1 $f4, 8($v1) +/* 0C05C0 7F08BA90 8E2B0000 */ lw $t3, ($s1) +/* 0C05C4 7F08BA94 C5660490 */ lwc1 $f6, 0x490($t3) +/* 0C05C8 7F08BA98 E466000C */ swc1 $f6, 0xc($v1) +/* 0C05CC 7F08BA9C 8E2C0000 */ lw $t4, ($s1) +/* 0C05D0 7F08BAA0 C5880494 */ lwc1 $f8, 0x494($t4) +/* 0C05D4 7F08BAA4 E4680010 */ swc1 $f8, 0x10($v1) +/* 0C05D8 7F08BAA8 8E2E0000 */ lw $t6, ($s1) +/* 0C05DC 7F08BAAC 8DCD0488 */ lw $t5, 0x488($t6) +/* 0C05E0 7F08BAB0 AC6D0014 */ sw $t5, 0x14($v1) +/* 0C05E4 7F08BAB4 0FC1B2E6 */ jal getsuboffset +/* 0C05E8 7F08BAB8 8C44001C */ lw $a0, 0x1c($v0) +/* 0C05EC 7F08BABC 8FA200F8 */ lw $v0, 0xf8($sp) +/* 0C05F0 7F08BAC0 8FB800F0 */ lw $t8, 0xf0($sp) +/* 0C05F4 7F08BAC4 27A50070 */ addiu $a1, $sp, 0x70 +/* 0C05F8 7F08BAC8 C44A0008 */ lwc1 $f10, 8($v0) +/* 0C05FC 7F08BACC E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0C0600 7F08BAD0 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0C0604 7F08BAD4 E7B20078 */ swc1 $f18, 0x78($sp) +/* 0C0608 7F08BAD8 0FC1B303 */ jal setsuboffset +/* 0C060C 7F08BADC 8F04001C */ lw $a0, 0x1c($t8) +/* 0C0610 7F08BAE0 8E280000 */ lw $t0, ($s1) +/* 0C0614 7F08BAE4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0C0618 7F08BAE8 44810000 */ mtc1 $at, $f0 +/* 0C061C 7F08BAEC C5060148 */ lwc1 $f6, 0x148($t0) +/* 0C0620 7F08BAF0 C5041280 */ lwc1 $f4, 0x1280($t0) +/* 0C0624 7F08BAF4 3C018005 */ lui $at, %hi(D_800552D0) +/* 0C0628 7F08BAF8 46060201 */ sub.s $f8, $f0, $f6 +/* 0C062C 7F08BAFC C43252D0 */ lwc1 $f18, %lo(D_800552D0)($at) +/* 0C0630 7F08BB00 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0C0634 7F08BB04 46082280 */ add.s $f10, $f4, $f8 +/* 0C0638 7F08BB08 8D24001C */ lw $a0, 0x1c($t1) +/* 0C063C 7F08BB0C 46125182 */ mul.s $f6, $f10, $f18 +/* 0C0640 7F08BB10 46003103 */ div.s $f4, $f6, $f0 +/* 0C0644 7F08BB14 44052000 */ mfc1 $a1, $f4 +/* 0C0648 7F08BB18 0FC1B34F */ jal setsubroty +/* 0C064C 7F08BB1C 00000000 */ nop +/* 0C0650 7F08BB20 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0654 7F08BB24 240A0019 */ li $t2, 25 +/* 0C0658 7F08BB28 00002825 */ move $a1, $zero +/* 0C065C 7F08BB2C 8C8F0014 */ lw $t7, 0x14($a0) +/* 0C0660 7F08BB30 A08A0007 */ sb $t2, 7($a0) +/* 0C0664 7F08BB34 35F90001 */ ori $t9, $t7, 1 +/* 0C0668 7F08BB38 AC990014 */ sw $t9, 0x14($a0) +/* 0C066C 7F08BB3C 8FAB007C */ lw $t3, 0x7c($sp) +/* 0C0670 7F08BB40 AC8B002C */ sw $t3, 0x2c($a0) +/* 0C0674 7F08BB44 8E2C0000 */ lw $t4, ($s1) +/* 0C0678 7F08BB48 0FC0B446 */ jal sub_GAME_7F02D118 +/* 0C067C 7F08BB4C 8186087D */ lb $a2, 0x87d($t4) +/* 0C0680 7F08BB50 8E2E0000 */ lw $t6, ($s1) +/* 0C0684 7F08BB54 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0688 7F08BB58 24050001 */ li $a1, 1 +/* 0C068C 7F08BB5C 0FC0B446 */ jal sub_GAME_7F02D118 +/* 0C0690 7F08BB60 81C60C25 */ lb $a2, 0xc25($t6) +/* 0C0694 7F08BB64 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0C0698 7F08BB68 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0C069C 7F08BB6C AFA200A0 */ sw $v0, 0xa0($sp) +/* 0C06A0 7F08BB70 00003825 */ move $a3, $zero +/* 0C06A4 7F08BB74 00001825 */ move $v1, $zero +.L7F08BB78: +/* 0C06A8 7F08BB78 8E2D0000 */ lw $t5, ($s1) +/* 0C06AC 7F08BB7C 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C06B0 7F08BB80 02002825 */ move $a1, $s0 +/* 0C06B4 7F08BB84 01A33021 */ addu $a2, $t5, $v1 +/* 0C06B8 7F08BB88 24C62A18 */ addiu $a2, $a2, 0x2a18 +/* 0C06BC 7F08BB8C AFA30034 */ sw $v1, 0x34($sp) +/* 0C06C0 7F08BB90 0FC0B58C */ jal sub_GAME_7F02D630 +/* 0C06C4 7F08BB94 AFA70038 */ sw $a3, 0x38($sp) +/* 0C06C8 7F08BB98 8FA30034 */ lw $v1, 0x34($sp) +/* 0C06CC 7F08BB9C 10400007 */ beqz $v0, .L7F08BBBC +/* 0C06D0 7F08BBA0 8FA70038 */ lw $a3, 0x38($sp) +/* 0C06D4 7F08BBA4 8E290000 */ lw $t1, ($s1) +/* 0C06D8 7F08BBA8 3C188005 */ lui $t8, %hi(D_80048380) +/* 0C06DC 7F08BBAC 8F188380 */ lw $t8, %lo(D_80048380)($t8) +/* 0C06E0 7F08BBB0 01277821 */ addu $t7, $t1, $a3 +/* 0C06E4 7F08BBB4 1000001E */ b .L7F08BC30 +/* 0C06E8 7F08BBB8 ADF82A30 */ sw $t8, 0x2a30($t7) +.L7F08BBBC: +/* 0C06EC 7F08BBBC 8E280000 */ lw $t0, ($s1) +/* 0C06F0 7F08BBC0 3C0B8005 */ lui $t3, %hi(D_80048380) +/* 0C06F4 7F08BBC4 8D6B8380 */ lw $t3, %lo(D_80048380)($t3) +/* 0C06F8 7F08BBC8 0107C821 */ addu $t9, $t0, $a3 +/* 0C06FC 7F08BBCC 8F2A2A30 */ lw $t2, 0x2a30($t9) +/* 0C0700 7F08BBD0 256CFFFF */ addiu $t4, $t3, -1 +/* 0C0704 7F08BBD4 001010C0 */ sll $v0, $s0, 3 +/* 0C0708 7F08BBD8 014C082A */ slt $at, $t2, $t4 +/* 0C070C 7F08BBDC 10200014 */ beqz $at, .L7F08BC30 +/* 0C0710 7F08BBE0 00501023 */ subu $v0, $v0, $s0 +/* 0C0714 7F08BBE4 00021080 */ sll $v0, $v0, 2 +/* 0C0718 7F08BBE8 00501021 */ addu $v0, $v0, $s0 +/* 0C071C 7F08BBEC 00021080 */ sll $v0, $v0, 2 +/* 0C0720 7F08BBF0 00501021 */ addu $v0, $v0, $s0 +/* 0C0724 7F08BBF4 000210C0 */ sll $v0, $v0, 3 +/* 0C0728 7F08BBF8 01027021 */ addu $t6, $t0, $v0 +/* 0C072C 7F08BBFC C5C80B58 */ lwc1 $f8, 0xb58($t6) +/* 0C0730 7F08BC00 01036821 */ addu $t5, $t0, $v1 +/* 0C0734 7F08BC04 E5A82A18 */ swc1 $f8, 0x2a18($t5) +/* 0C0738 7F08BC08 8E280000 */ lw $t0, ($s1) +/* 0C073C 7F08BC0C 01024821 */ addu $t1, $t0, $v0 +/* 0C0740 7F08BC10 C52A0B5C */ lwc1 $f10, 0xb5c($t1) +/* 0C0744 7F08BC14 0103C021 */ addu $t8, $t0, $v1 +/* 0C0748 7F08BC18 E70A2A1C */ swc1 $f10, 0x2a1c($t8) +/* 0C074C 7F08BC1C 8E280000 */ lw $t0, ($s1) +/* 0C0750 7F08BC20 01027821 */ addu $t7, $t0, $v0 +/* 0C0754 7F08BC24 C5F20B60 */ lwc1 $f18, 0xb60($t7) +/* 0C0758 7F08BC28 0103C821 */ addu $t9, $t0, $v1 +/* 0C075C 7F08BC2C E7322A20 */ swc1 $f18, 0x2a20($t9) +.L7F08BC30: +/* 0C0760 7F08BC30 26100001 */ addiu $s0, $s0, 1 +/* 0C0764 7F08BC34 24010002 */ li $at, 2 +/* 0C0768 7F08BC38 24E70004 */ addiu $a3, $a3, 4 +/* 0C076C 7F08BC3C 1601FFCE */ bne $s0, $at, .L7F08BB78 +/* 0C0770 7F08BC40 2463000C */ addiu $v1, $v1, 0xc +/* 0C0774 7F08BC44 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 0C0778 7F08BC48 956A0012 */ lhu $t2, 0x12($t3) +/* 0C077C 7F08BC4C 354C0800 */ ori $t4, $t2, 0x800 +/* 0C0780 7F08BC50 A56C0012 */ sh $t4, 0x12($t3) +/* 0C0784 7F08BC54 8E2E0000 */ lw $t6, ($s1) +/* 0C0788 7F08BC58 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 0C078C 7F08BC5C C5C6048C */ lwc1 $f6, 0x48c($t6) +/* 0C0790 7F08BC60 E5A60008 */ swc1 $f6, 8($t5) +/* 0C0794 7F08BC64 8E290000 */ lw $t1, ($s1) +/* 0C0798 7F08BC68 C5240490 */ lwc1 $f4, 0x490($t1) +/* 0C079C 7F08BC6C E5A4000C */ swc1 $f4, 0xc($t5) +/* 0C07A0 7F08BC70 8E380000 */ lw $t8, ($s1) +/* 0C07A4 7F08BC74 C7080494 */ lwc1 $f8, 0x494($t8) +/* 0C07A8 7F08BC78 E5A80010 */ swc1 $f8, 0x10($t5) +/* 0C07AC 7F08BC7C 8E2F0000 */ lw $t7, ($s1) +/* 0C07B0 7F08BC80 8DF90488 */ lw $t9, 0x488($t7) +/* 0C07B4 7F08BC84 ADB90014 */ sw $t9, 0x14($t5) +/* 0C07B8 7F08BC88 10000006 */ b .L7F08BCA4 +/* 0C07BC 7F08BC8C 8FA200A0 */ lw $v0, 0xa0($sp) +.L7F08BC90: +/* 0C07C0 7F08BC90 8FAA00F8 */ lw $t2, 0xf8($sp) +.L7F08BC94: +/* 0C07C4 7F08BC94 00001025 */ move $v0, $zero +/* 0C07C8 7F08BC98 914C0001 */ lbu $t4, 1($t2) +/* 0C07CC 7F08BC9C 318BFFFD */ andi $t3, $t4, 0xfffd +/* 0C07D0 7F08BCA0 A14B0001 */ sb $t3, 1($t2) +.L7F08BCA4: +/* 0C07D4 7F08BCA4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C07D8 7F08BCA8 8FB0001C */ lw $s0, 0x1c($sp) +/* 0C07DC 7F08BCAC 8FB10020 */ lw $s1, 0x20($sp) +/* 0C07E0 7F08BCB0 03E00008 */ jr $ra +/* 0C07E4 7F08BCB4 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCB8 +/* 0C07E8 7F08BCB8 03E00008 */ jr $ra +/* 0C07EC 7F08BCBC 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCC0 +/* 0C07F0 7F08BCC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C07F4 7F08BCC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C07F8 7F08BCC8 8C8E0004 */ lw $t6, 4($a0) +/* 0C07FC 7F08BCCC 51C00005 */ beql $t6, $zero, .L7F08BCE4 +/* 0C0800 7F08BCD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C0804 7F08BCD4 0FC086FF */ jal sub_GAME_7F021BFC +/* 0C0808 7F08BCD8 00000000 */ nop +/* 0C080C 7F08BCDC 00402825 */ move $a1, $v0 +/* 0C0810 7F08BCE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08BCE4: +/* 0C0814 7F08BCE4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C0818 7F08BCE8 00A01025 */ move $v0, $a1 +/* 0C081C 7F08BCEC 03E00008 */ jr $ra +/* 0C0820 7F08BCF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCF4 +/* 0C0824 7F08BCF4 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0C0828 7F08BCF8 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0C082C 7F08BCFC AC8E0000 */ sw $t6, ($a0) +/* 0C0830 7F08BD00 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C0834 7F08BD04 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C0838 7F08BD08 24820008 */ addiu $v0, $a0, 8 +/* 0C083C 7F08BD0C 8DF8005C */ lw $t8, 0x5c($t7) +/* 0C0840 7F08BD10 03E00008 */ jr $ra +/* 0C0844 7F08BD14 AC980004 */ sw $t8, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BD18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BD18 +/* 0C0848 7F08BD18 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0C084C 7F08BD1C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C0850 7F08BD20 AFA40058 */ sw $a0, 0x58($sp) +/* 0C0854 7F08BD24 0FC16008 */ jal matrix_4x4_copy +/* 0C0858 7F08BD28 27A50018 */ addiu $a1, $sp, 0x18 +/* 0C085C 7F08BD2C 27A40018 */ addiu $a0, $sp, 0x18 +/* 0C0860 7F08BD30 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C0864 7F08BD34 8FA50058 */ lw $a1, 0x58($sp) +/* 0C0868 7F08BD38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C086C 7F08BD3C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0C0870 7F08BD40 03E00008 */ jr $ra +/* 0C0874 7F08BD44 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BD48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BD48 +/* 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 sub_GAME_7F058C9C +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BDC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BDC4 +/* 0C08F4 7F08BDC4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0C08F8 7F08BDC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C08FC 7F08BDCC AFA40060 */ sw $a0, 0x60($sp) +/* 0C0900 7F08BDD0 0FC16008 */ jal matrix_4x4_copy +/* 0C0904 7F08BDD4 27A50020 */ addiu $a1, $sp, 0x20 +/* 0C0908 7F08BDD8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C090C 7F08BDDC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C0910 7F08BDE0 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0C0914 7F08BDE4 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0C0918 7F08BDE8 C4460044 */ lwc1 $f6, 0x44($v0) +/* 0C091C 7F08BDEC 27A40020 */ addiu $a0, $sp, 0x20 +/* 0C0920 7F08BDF0 8FA50060 */ lw $a1, 0x60($sp) +/* 0C0924 7F08BDF4 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0928 7F08BDF8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0C092C 7F08BDFC E7A80050 */ swc1 $f8, 0x50($sp) +/* 0C0930 7F08BE00 C4500048 */ lwc1 $f16, 0x48($v0) +/* 0C0934 7F08BE04 46105481 */ sub.s $f18, $f10, $f16 +/* 0C0938 7F08BE08 E7B20054 */ swc1 $f18, 0x54($sp) +/* 0C093C 7F08BE0C C446004C */ lwc1 $f6, 0x4c($v0) +/* 0C0940 7F08BE10 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0944 7F08BE14 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C0948 7F08BE18 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0C094C 7F08BE1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C0950 7F08BE20 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0C0954 7F08BE24 03E00008 */ jr $ra +/* 0C0958 7F08BE28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BE2C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BE2C +/* 0C095C 7F08BE2C 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0C0960 7F08BE30 AFB40024 */ sw $s4, 0x24($sp) +/* 0C0964 7F08BE34 AFB30020 */ sw $s3, 0x20($sp) +/* 0C0968 7F08BE38 AFB00014 */ sw $s0, 0x14($sp) +/* 0C096C 7F08BE3C 00A09825 */ move $s3, $a1 +/* 0C0970 7F08BE40 0080A025 */ move $s4, $a0 +/* 0C0974 7F08BE44 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C0978 7F08BE48 AFB50028 */ sw $s5, 0x28($sp) +/* 0C097C 7F08BE4C AFB2001C */ sw $s2, 0x1c($sp) +/* 0C0980 7F08BE50 AFB10018 */ sw $s1, 0x18($sp) +/* 0C0984 7F08BE54 18A0001C */ blez $a1, .L7F08BEC8 +/* 0C0988 7F08BE58 00008025 */ move $s0, $zero +/* 0C098C 7F08BE5C 3C158008 */ lui $s5, %hi(pPlayer) +/* 0C0990 7F08BE60 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 0C0994 7F08BE64 00808825 */ move $s1, $a0 +/* 0C0998 7F08BE68 27B20038 */ addiu $s2, $sp, 0x38 +.L7F08BE6C: +/* 0C099C 7F08BE6C 02202025 */ move $a0, $s1 +/* 0C09A0 7F08BE70 0FC16008 */ jal matrix_4x4_copy +/* 0C09A4 7F08BE74 02402825 */ move $a1, $s2 +/* 0C09A8 7F08BE78 8EA20000 */ lw $v0, ($s5) +/* 0C09AC 7F08BE7C C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0C09B0 7F08BE80 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0C09B4 7F08BE84 C4460044 */ lwc1 $f6, 0x44($v0) +/* 0C09B8 7F08BE88 00107180 */ sll $t6, $s0, 6 +/* 0C09BC 7F08BE8C 01D42821 */ addu $a1, $t6, $s4 +/* 0C09C0 7F08BE90 46062201 */ sub.s $f8, $f4, $f6 +/* 0C09C4 7F08BE94 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0C09C8 7F08BE98 02402025 */ move $a0, $s2 +/* 0C09CC 7F08BE9C E7A80068 */ swc1 $f8, 0x68($sp) +/* 0C09D0 7F08BEA0 C4500048 */ lwc1 $f16, 0x48($v0) +/* 0C09D4 7F08BEA4 46105481 */ sub.s $f18, $f10, $f16 +/* 0C09D8 7F08BEA8 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0C09DC 7F08BEAC C446004C */ lwc1 $f6, 0x4c($v0) +/* 0C09E0 7F08BEB0 46062201 */ sub.s $f8, $f4, $f6 +/* 0C09E4 7F08BEB4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C09E8 7F08BEB8 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0C09EC 7F08BEBC 26100001 */ addiu $s0, $s0, 1 +/* 0C09F0 7F08BEC0 1613FFEA */ bne $s0, $s3, .L7F08BE6C +/* 0C09F4 7F08BEC4 26310040 */ addiu $s1, $s1, 0x40 +.L7F08BEC8: +/* 0C09F8 7F08BEC8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C09FC 7F08BECC 8FB00014 */ lw $s0, 0x14($sp) +/* 0C0A00 7F08BED0 8FB10018 */ lw $s1, 0x18($sp) +/* 0C0A04 7F08BED4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C0A08 7F08BED8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C0A0C 7F08BEDC 8FB40024 */ lw $s4, 0x24($sp) +/* 0C0A10 7F08BEE0 8FB50028 */ lw $s5, 0x28($sp) +/* 0C0A14 7F08BEE4 03E00008 */ jr $ra +/* 0C0A18 7F08BEE8 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BEEC(void) { + +} +#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(pPlayer) +/* 0C0A50 7F08BF20 2673A0B0 */ addiu $s3, %lo(pPlayer) # addiu $s3, $s3, -0x5f50 +/* 0C0A54 7F08BF24 00808025 */ move $s0, $a0 +/* 0C0A58 7F08BF28 27B20040 */ addiu $s2, $sp, 0x40 +.L7F08BF2C: +/* 0C0A5C 7F08BF2C 0FC1E111 */ jal sub_GAME_7F078444 +/* 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 sub_GAME_7F058C9C +/* 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 get_mission_timer(void) { + return mission_timer; +} + + +void trigger_explosions_around_player(int delay){ + D_80036444 = 1; + dword_CODE_bss_8007999C = delay + global_timer; + dword_CODE_bss_800799A0 = 0; +} + + + + diff --git a/src/game/bond.h b/src/game/bond.h new file mode 100644 index 0000000..bf06437 --- /dev/null +++ b/src/game/bond.h @@ -0,0 +1,2876 @@ +#ifndef _BOND_H_ +#define _BOND_H_ + +#include "ultra64.h" +#include "game/chr.h" + +struct xyzpoint +{ + f32 x; + f32 y; + f32 z; +}; + + +typedef struct invitem_weap +{ + s32 weapon; +} invitem_weap; + +typedef struct invitem_prop +{ + struct PropRecord *prop; +} invitem_prop; + +typedef struct invitem_dual +{ + s32 weapon_right; + s32 weapon_left; +} invitem_dual; + +struct hand +{ + s32 weaponnum; + s32 weaponnum_watchmenu; + s32 previous_weapon; + s8 weapon_firing_status; + s8 field_87D; + s8 field_87E; + s8 field_87F; + s32 field_880; + s32 field_884; + s32 field_888; + s32 field_88C; + s32 field_890; + s32 when_detonating_mines_is_0; + s32 weapon_current_animation; + s32 weapon_ammo_in_magazine; + s32 field_8A0; + s32 field_8A4; + s32 field_8A8; + s32 weapon_next_weapon; + s32 field_8B0; + s32 weapon_animation_trigger; + s32 field_8B8; + s32 field_8BC; + s32 field_8C0; + s32 field_8C4; + s32 field_8C8; + s32 field_8CC; + s32 field_8D0; + s32 field_8D4; + s32 field_8D8; + s32 field_8DC; + 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; + s32 field_92C; + s32 field_930; + s32 field_934; + s32 field_938; + s32 field_93C; + s32 field_940; + s32 field_944; + s32 field_948; + s32 field_94C; + s32 field_950; + s32 field_954; + s32 field_958; + s32 field_95C; + s32 field_960; + s32 field_964; + s32 field_968; + 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; + s32 field_A0C; + s32 field_A10; + s32 field_A14; + s32 field_A18; + s32 field_A1C; + s32 field_A20; + s32 field_A24; + s32 field_A28; + s32 field_A2C; + f32 field_A30; + f32 field_A34; + f32 field_A38; + f32 field_A3C; + f32 field_A40; + s32 field_A44; + 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; + s32 field_A8C; + s32 field_A90; + s32 field_A94; + s32 field_A98; + s32 field_A9C; + s32 field_AA0; + s32 field_AA4; + s32 field_AA8; + s32 field_AAC; + s32 field_AB0; + s32 field_AB4; + s32 field_AB8; + s32 field_ABC; + s32 field_AC0; + s32 field_AC4; + s32 field_AC8; + s32 field_ACC; + s32 field_AD0; + s32 field_AD4; + s32 field_AD8; + s32 field_ADC; + s32 field_AE0; + s32 field_AE4; + s32 field_AE8; + s32 field_AEC; + s32 field_AF0; + s32 field_AF4; + s32 field_AF8; + s32 field_AFC; + s32 field_B00; + s32 field_B04; + s32 field_B08; + s32 field_B0C; + s32 field_B10; + s32 field_B14; + s32 field_B18; + s32 field_B1C; + s32 field_B20; + s32 field_B24; + s32 field_B28; + s32 field_B2C; + s32 field_B30; + s32 field_B34; + s32 field_B38; + s32 field_B3C; + s32 field_B40; + s32 field_B44; + s32 field_B48; + s32 field_B4C; + s32 field_B50; + s32 field_B54; + s32 field_B58; + s32 field_B5C; + s32 field_B60; + s32 field_B64; + s32 field_B68; + s32 field_B6C; + s32 field_B70; + s32 field_B74; + s32 field_B78; + s32 field_B7C; + s32 field_B80; + s32 field_B84; + s32 field_B88; + s32 field_B8C; + s32 field_B90; + s32 field_B94; + s32 field_B98; + s32 field_B9C; + s32 field_BA0; + s32 field_BA4; + s32 field_BA8; + s32 field_BAC; + s32 field_BB0; + s32 field_BB4; + s32 field_BB8; + s32 field_BBC; + s32 field_BC0; + s32 field_BC4; + s32 field_BC8; + s32 field_BCC; + s32 field_BD0; + s32 field_BD4; + s32 field_BD8; + s32 field_BDC; + s32 field_BE0; + s32 field_BE4; + s32 field_BE8; + s32 field_BEC; + s32 field_BF0; + s32 field_BF4; + s32 field_BF8; + s32 field_BFC; + s32 field_C00; + s32 field_C04; + s32 field_C08; + s32 item_related1; + s32 item_related2; + s32 item_related3; +}; + +typedef struct InvItem { + s32 type; + + union { + struct invitem_weap type_weap; + struct invitem_prop type_prop; + struct invitem_dual type_dual; + + } type_inv_item; + + struct InvItem *next; + struct InvItem *prev; + +} InvItem; + +typedef struct textoverride { + s32 unk1; + s32 objoffset; + s32 weapon; + s32 unk4; + s32 unk5; + s32 unk6; + s32 unk7; + s32 unk8; + + struct textoverride *next; + struct ObjectRecord *obj; +} textoverride; + + +struct Player +{ + s32 unknown; + s32 xpos; + s32 ypos; + s32 zpos; + s32 xpos2; + s32 ypos2; + s32 zpos2; + s32 xoffset; + s32 yoffset; + s32 zoffset; + s32 xpos3; + s32 ypos3; + s32 zpos3; + s32 room_pointer; + s32 current_model_xpos; + s32 current_model_ypos; + s32 current_model_zpos; + s32 previous_model_xpos; + s32 previous_model_ypos; + s32 previous_model_zpos; + s32 current_room_xpos; + s32 current_room_ypos; + s32 current_room_zpos; + s32 field_5C; + s32 field_60; + s32 field_64; + s32 field_68; + s32 field_6C; + s32 field_70; + s32 clipping_height; + s32 field_78; + s32 field_7C; + s32 field_80; + s32 field_84; + s32 field_88; + s32 field_8C; + s32 field_90; + s32 field_94; + s32 field_98; + s32 crouchposition; + s32 ducking_height_offset; + s32 field_A4; + s32 position_data_pointer; + s32 field_AC; + s32 field_B0; + s32 zpos_0; + s32 xpos_0; + s32 field_BC; + s32 field_C0; + s32 zpos_1; + s32 xpos_1; + s32 field_CC; + s32 field_D0; + s32 ptr_char_objectinstance; + s32 bonddead; + s32 bondhealth; + f32 bondarmour; + s32 oldhealth; + s32 oldarmour; + s32 apparenthealth; + s32 apparentarmour; + s32 damageshowtime; + s32 healthshowtime; + s32 healthshowmode; + s32 field_100; + s32 field_104; + s32 field_108; + s32 field_10C; + s32 movecentrerelease; + s32 lookaheadcentreenabled; + s32 automovecentreenabled; + s32 fastmovecentreenabled; + s32 automovecentre; + s32 insightaimmode; + s32 autoyaimenabled; + f32 autoaimy; + s32 autoyaimtime; + s32 autoyaimtime60; + s32 autoxaimenabled; + f32 autoaimx; + s32 autoxaimtime; + s32 autoxaimtime60; + f32 vv_theta; + f32 speedtheta; + s32 vv_costheta; + s32 vv_sintheta; + f32 vv_verta; + s32 vv_verta360; + f32 speedverta; + s32 vv_cosverta; + s32 vv_sinverta; + f32 speedsideways; + f32 speedstrafe; + f32 speedforwards; + s32 speedboost; + s32 speedmaxtime60; + s32 boost_factor_x; + s32 boost_factor_y; + s32 boost_factor_z; + s32 viewport_alpha; + s32 bondfadetime60; + s32 bondfadetimemax; + s32 bondfadefracold; + f32 bondfadefracnew; + s32 field_1A0; + s32 field_1A4; + s32 field_1A8; + s32 field_1AC; + s32 field_1B0; + s32 field_1B4; + s32 field_1B8; + s32 field_1BC; + s32 field_1C0; + s32 field_1C4; + s32 watch_animation_state; + s32 paused_flag; + 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; + s32 field_1F8; + s32 field_1FC; + s32 pausing_flag; + f32 pause_starting_angle; + s32 field_208; + s32 pause_target_angle; + f32 field_210; + f32 field_214; + s32 field_218; + s32 field_21C; + s32 step_in_view_watch_animation; + s32 pause_animation_counter; + s32 field_228; + s32 field_22C; + s32 something_with_watch_object_instance; + s32 field_234; + s32 field_238; + s32 field_23C; + s32 field_240; + s32 watch_scale_destination; + s32 field_248; + s32 field_24C; + s32 field_250; + s32 field_254; + s32 field_258; + s32 field_25C; + s32 field_260; + s32 field_264; + s32 field_268; + s32 field_26C; + s32 field_270; + s32 field_274; + s32 field_278; + s32 field_27C; + s32 field_280; + s32 field_284; + s32 field_288; + s32 field_28C; + s32 field_290; + s32 field_294; + s32 field_298; + s32 field_29C; + s32 field_2A0; + s32 field_2A4; + s32 field_2A8; + s32 field_2AC; + s32 field_2B0; + s32 field_2B4; + s32 field_2B8; + s32 field_2BC; + s32 field_2C0; + s32 field_2C4; + s32 field_2C8; + s32 field_2CC; + s32 field_2D0; + s32 field_2D4; + s32 field_2D8; + s32 field_2DC; + s32 field_2E0; + s32 field_2E4; + s32 field_2E8; + s32 field_2EC; + s32 field_2F0; + s32 field_2F4; + s32 field_2F8; + s32 field_2FC; + s32 field_300; + s32 field_304; + s32 field_308; + s32 field_30C; + s32 field_310; + s32 field_314; + s32 field_318; + s32 field_31C; + s32 field_320; + s32 field_324; + s32 field_328; + s32 field_32C; + s32 field_330; + s32 field_334; + s32 field_338; + s32 field_33C; + s32 field_340; + s32 field_344; + s32 field_348; + s32 field_34C; + s32 field_350; + s32 field_354; + s32 field_358; + s32 field_35C; + s32 field_360; + s32 field_364; + s32 field_368; + s32 field_36C; + s32 field_370; + s32 field_374; + s32 field_378; + s32 field_37C; + s32 field_380; + s32 field_384; + s32 field_388; + s32 field_38C; + s32 field_390; + s32 field_394; + s32 field_398; + s32 field_39C; + s32 field_3A0; + s32 field_3A4; + s32 field_3A8; + s32 field_3AC; + s32 field_3B0; + s16 field_3B4; + s16 field_3B6; + s32 field_3B8; + s32 field_3BC; + s32 field_3C0; + s32 field_3C4; + s32 field_3C8; + s32 field_3CC; + s32 tint_red; + s32 tint_green; + s32 tint_blue; + f32 tint_alpha; + s32 screen_fade_timer; + f32 screen_fade_max_time; + s32 field_3E8; + s32 field_3EC; + s32 field_3F0; + s32 field_3F4; + s32 field_3F8; + s32 field_3FC; + s32 field_400; + s32 field_404; + s32 field_408; + s32 field_40C; + s32 field_410; + s32 field_414; + s32 field_418; + s32 cuff_value; + s32 field_420; + s32 field_424; + s32 field_428; + s32 field_42C; + s32 field_430; + s32 field_434; + s32 field_438; + s32 field_43C; + s32 field_440; + s32 field_444; + s32 field_448; + s32 field_44C; + s32 field_450; + s32 field_454; + s32 field_458; + s32 field_45C; + s32 field_460; + s32 field_464; + s32 field_468; + s32 field_46C; + s32 field_470; + s32 field_474; + s32 field_478; + s32 field_47C; + s32 field_480; + s32 field_484; + s32 current_tile_ptr; + s32 positionx; + s32 positiony; + s32 positionz; + s32 field_498; + s32 field_49C; + s32 field_4A0; + s32 field_4A4; + s32 field_4A8; + s32 field_4AC; + s32 collision_radius; + s32 field_4B4; + s32 field_4B8; + s32 field_4BC; + s32 field_4C0; + s32 field_4C4; + s32 field_4C8; + s32 field_4CC; + s32 field_4D0; + s32 field_4D4; + s32 current_tile_ptr_for_portals; + s32 field_4DC; + s32 field_4E0; + s32 field_4E4; + s32 field_4E8; + f32 field_4EC; + s32 field_4F0; + s32 field_4F4; + s32 field_4F8; + struct xyzpoint scaled_velocity; + //f32 field_500; + //f32 field_504; + struct xyzpoint field_508; + //s32 field_50C; + //s32 field_510; + struct xyzpoint field_514; + //s32 field_518; + //s32 field_51C; + struct xyzpoint velocity; + //f32 field_524; + //f32 field_528; + struct xyzpoint field_52C; + //s32 field_530; + //s32 field_534; + struct xyzpoint field_538; + //s32 field_53C; + //s32 field_540; + s32 field_544; + s32 field_548; + s32 field_54C; + s32 stationary_ground_offset; + s32 field_554; + s32 field_558; + s32 field_55C; + s32 field_560; + s32 field_564; + s32 field_568; + s32 field_56C; + s32 field_570; + s32 field_574; + s32 field_578; + s32 field_57C; + s32 field_580; + s32 field_584; + s32 field_588; + s32 field_58C; + s32 field_590; + s32 field_594; + s32 field_598; + s32 field_59C; + s32 field_5A0; + s32 field_5A4; + s32 field_5A8; + s32 field_5AC; + s32 field_5B0; + s32 field_5B4; + s32 field_5B8; + s8 field_5BC; + s8 field_5BD; + s8 field_5BE; + s8 field_5BF; + s32 field_5C0; + s32 field_5C4; + s32 field_5C8; + s32 field_5CC; + s32 field_5D0; + s32 field_5D4; + s32 field_5D8; + s32 field_5DC; + s32 field_5E0; + s32 field_5E4; + s32 field_5E8; + s32 field_5EC; + s32 field_5F0; + s32 field_5F4; + s32 field_5F8; + s32 field_5FC; + s32 field_600; + s32 field_604; + s32 field_608; + s32 field_60C; + s32 field_610; + s32 field_614; + s32 field_618; + s32 field_61C; + s32 field_620; + s32 field_624; + s32 field_628; + s32 field_62C; + s32 field_630; + s32 field_634; + s32 field_638; + s32 field_63C; + s32 field_640; + s32 field_644; + s32 field_648; + s32 field_64C; + s32 field_650; + s32 field_654; + s32 field_658; + s32 field_65C; + s32 field_660; + s32 field_664; + s32 field_668; + s32 field_66C; + s32 field_670; + s32 field_674; + s32 field_678; + s32 field_67C; + s32 field_680; + s32 field_684; + s32 field_688; + s32 field_68C; + s32 field_690; + s32 field_694; + s32 field_698; + s32 field_69C; + s32 field_6A0; + s32 field_6A4; + s32 field_6A8; + s32 field_6AC; + s32 field_6B0; + s32 field_6B4; + s32 field_6B8; + s32 field_6BC; + s32 field_6C0; + s32 field_6C4; + s32 field_6C8; + s32 field_6CC; + s32 field_6D0; + s32 field_6D4; + s32 field_6D8; + s32 field_6DC; + s32 field_6E0; + s32 field_6E4; + s32 field_6E8; + s32 field_6EC; + s32 field_6F0; + s32 field_6F4; + s32 field_6F8; + s32 field_6FC; + s32 field_700; + s32 field_704; + s32 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; + s32 field_744; + s32 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; + s32 field_7D0; + s32 field_7D4; + s32 field_7D8; + s32 field_7DC; + s32 field_7E0; + s32 field_7E4; + s32 field_7E8; + s32 field_7EC; + s16 viewx; + s16 viewy; + s16 viewleft; + s16 viewtop; + s32 hand_invisible[2]; + s32 hand_item[2]; + u8 *ptr_hand_weapon_buffer[2]; + s32 copy_of_body_obj_header[8]; + s32 copy_of_right_weapon_obj_header[8]; + s32 field_850; + s32 field_854; + s32 field_858; + s32 field_85C; + s32 field_860; + s32 right_item_related1; + s32 right_item_related2; + s32 right_item_related3; + struct hand hands[2]; + f32 field_FC0; + f32 field_FC4; + s32 field_FC8; + s32 field_FCC; + s32 field_FD0; + s32 field_FD4; + s32 field_FD8; + u8 field_FDC; + u8 field_FDD; + u8 field_FDE; + u8 field_FDF; + s32 field_FE0; + s32 field_FE4; + f32 field_FE8; + f32 field_FEC; + f32 crosshair_x_pos; + f32 crosshair_y_pos; + f32 field_FF8; + f32 field_FFC; + f32 field_1000; + f32 gun_azimuth_angle; + f32 gun_azimuth_turning; + f32 field_100C; + 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; + s32 field_105C; + s32 copiedgoldeneye; + s32 somekinda_flags; + s32 field_1068; + f32 field_106C; + f32 field_1070; + f32 field_1074; + s32 field_1078; + f32 field_107C; + f32 field_1080; + f32 sniper_zoom; + f32 camera_zoom; + s32 field_108C; + f32 c_screenwidth; + f32 c_screenheight; + f32 c_screenleft; + f32 c_screentop; + f32 c_perspnear; + f32 c_perspfovy; + f32 c_perspaspect; + f32 c_halfwidth; + f32 c_halfheight; + f32 c_scalex; + f32 c_scaley; + f32 c_recipscalex; + f32 c_recipscaley; + s32 field_10C4; + s32 field_10C8; + s32 field_10CC; + s32 field_10D0; + s32 field_10D4; + s32 field_10D8; + s32 field_10DC; + s32 field_10E0; + s32 field_10E4; + s32 field_10E8; + s32 field_10EC; + f32 c_scalelod60; + f32 c_scalelod; + f32 c_lodscalez; + u32 c_lodscalezu32; + struct xyzpoint c_cameratopnorm; + struct xyzpoint c_cameraleftnorm; + + f32 screenxminf; + f32 screenyminf; + f32 screenxmaxf; + f32 screenymaxf; + s32 somekinda_bitflags; + s32 field_112C; + s32 ammoheldarr; + s32 ammo_total_pistol; + s32 ammo_total_pistol_beta; + s32 ammo_total_rifle; + s32 ammo_total_shotgun; + s32 ammo_total_grenade; + s32 ammo_total_rocket_launcher; + s32 ammo_total_remote_mine; + s32 ammo_total_prox_mine; + s32 ammo_total_timed_mine; + s32 ammo_total_throwing_knife; + s32 ammo_total_grenade_launcher; + s32 ammo_total_magnum; + s32 ammo_total_golden_gun; + s32 ammo_total_dart; + s32 ammo_total_explosive_pen; + s32 ammo_total_explosive_case; + s32 ammo_total_flare; + s32 ammo_total_piton; + s32 ammo_total_dynamite; + s32 ammo_total_bug; + s32 ammo_total_microcamera; + s32 ammo_total_goldeneye_key; + s32 ammo_total_plastique; + s32 ammo_total_watch_laser; + s32 ammo_total_watch_magnet; + s32 ammo_total_unknown1; + s32 ammo_total_unknown2; + s32 ammo_total_tank; + s32 ammo_total_mp_token; + s32 bloodcnt; + s32 field_11AC; + s32 field_11B0; + s32 field_11B4; + s32 field_11B8; + f32 zoomintime; + f32 zoomintimemax; + f32 zoominfovy; + f32 zoominfovyold; + f32 zoominfovynew; + f32 fovy; + f32 aspect; + s32 hudmessoff; + s32 bondmesscnt; + InvItem *ptr_inventory_first_in_cycle; + InvItem *p_itemcur; + s32 equipmaxitems; + s32 equipallguns; + s32 equipcuritem; + textoverride *textoverrides; + s32 index_time_spent_using_item; + s32 field_11FC; + s32 field_1200; + s32 field_1204; + s32 field_1208; + s32 field_120C; + s32 field_1210; + s32 field_1214; + s32 field_1218; + s32 field_121C; + s32 field_1220; + s32 field_1224; + s32 field_1228; + s32 field_122C; + s32 field_1230; + s32 field_1234; + s32 field_1238; + s32 field_123C; + s32 field_1240; + s32 field_1244; + s32 field_1248; + s32 field_124C; + s32 field_1250; + s32 field_1254; + s32 field_1258; + s32 field_125C; + s32 field_1260; + s32 field_1264; + s32 field_1268; + s32 field_126C; + s32 field_1270; + s32 field_1274; + s32 field_1278; + s32 field_127C; + s32 field_1280; + s32 players_cur_animation; + s32 field_1288; + s32 field_128C; + s32 field_1290; + s32 field_1294; + s32 field_1298; + s32 field_129C; + s32 field_12A0; + s32 field_12A4; + s32 field_12A8; + s32 field_12AC; + s32 field_12B0; + u8 something_with_cheat_text; + u8 can_display_cheat_text; + u8 bondinvincible; + u8 field_12B7; + s32 healthdamagetype; + s32 field_12BC; + s32 field_12C0; + s32 field_12C4; + s32 field_12C8; + s32 field_12CC; + s32 field_12D0; + s32 field_12D4; + s32 field_12D8; + s32 field_12DC; + s32 field_12E0; + s32 field_12E4; + s32 field_12E8; + s32 field_12EC; + s32 field_12F0; + s32 field_12F4; + s32 field_12F8; + s32 field_12FC; + s32 field_1300; + s32 field_1304; + s32 field_1308; + s32 field_130C; + s32 field_1310; + s32 field_1314; + s32 field_1318; + s32 field_131C; + s32 field_1320; + s32 field_1324; + s32 field_1328; + s32 field_132C; + s32 field_1330; + s32 field_1334; + s32 field_1338; + s32 field_133C; + s32 field_1340; + s32 field_1344; + s32 field_1348; + s32 field_134C; + s32 field_1350; + s32 field_1354; + s32 field_1358; + s32 field_135C; + s32 field_1360; + s32 field_1364; + s32 field_1368; + s32 field_136C; + s32 field_1370; + s32 field_1374; + s32 field_1378; + s32 field_137C; + s32 field_1380; + s32 field_1384; + s32 field_1388; + s32 field_138C; + s32 field_1390; + s32 field_1394; + s32 field_1398; + s32 field_139C; + s32 field_13A0; + s32 field_13A4; + s32 field_13A8; + s32 field_13AC; + s32 field_13B0; + s32 field_13B4; + s32 field_13B8; + s32 field_13BC; + s32 field_13C0; + s32 field_13C4; + s32 field_13C8; + s32 field_13CC; + s32 field_13D0; + s32 field_13D4; + s32 field_13D8; + s32 field_13DC; + s32 field_13E0; + s32 field_13E4; + s32 field_13E8; + s32 field_13EC; + s32 field_13F0; + s32 field_13F4; + s32 field_13F8; + s32 field_13FC; + s32 field_1400; + s32 field_1404; + s32 field_1408; + s32 field_140C; + s32 field_1410; + s32 field_1414; + s32 field_1418; + s32 field_141C; + s32 field_1420; + s32 field_1424; + s32 field_1428; + s32 field_142C; + s32 field_1430; + s32 field_1434; + s32 field_1438; + s32 field_143C; + s32 field_1440; + s32 field_1444; + s32 field_1448; + s32 field_144C; + s32 field_1450; + s32 field_1454; + s32 field_1458; + s32 field_145C; + s32 field_1460; + s32 field_1464; + s32 field_1468; + s32 field_146C; + s32 field_1470; + s32 field_1474; + s32 field_1478; + s32 field_147C; + s32 field_1480; + s32 field_1484; + s32 field_1488; + s32 field_148C; + s32 field_1490; + s32 field_1494; + s32 field_1498; + s32 field_149C; + s32 field_14A0; + s32 field_14A4; + s32 field_14A8; + s32 field_14AC; + s32 field_14B0; + s32 field_14B4; + s32 field_14B8; + s32 field_14BC; + s32 field_14C0; + s32 field_14C4; + s32 field_14C8; + s32 field_14CC; + s32 field_14D0; + s32 field_14D4; + s32 field_14D8; + s32 field_14DC; + s32 field_14E0; + s32 field_14E4; + s32 field_14E8; + s32 field_14EC; + s32 field_14F0; + s32 field_14F4; + s32 field_14F8; + s32 field_14FC; + s32 field_1500; + s32 field_1504; + s32 field_1508; + s32 field_150C; + s32 field_1510; + s32 field_1514; + s32 field_1518; + s32 field_151C; + s32 field_1520; + s32 field_1524; + s32 field_1528; + s32 field_152C; + s32 field_1530; + s32 field_1534; + s32 field_1538; + s32 field_153C; + s32 field_1540; + s32 field_1544; + s32 field_1548; + s32 field_154C; + s32 field_1550; + s32 field_1554; + s32 field_1558; + s32 field_155C; + s32 field_1560; + s32 field_1564; + s32 field_1568; + s32 field_156C; + s32 field_1570; + s32 field_1574; + s32 field_1578; + s32 field_157C; + s32 field_1580; + s32 field_1584; + s32 field_1588; + s32 field_158C; + s32 field_1590; + s32 field_1594; + s32 related_to_health_display; + s32 field_159C; + s32 field_15A0; + s32 field_15A4; + s32 field_15A8; + s32 field_15AC; + s32 field_15B0; + s32 field_15B4; + s32 field_15B8; + s32 field_15BC; + s32 field_15C0; + s32 field_15C4; + s32 field_15C8; + s32 field_15CC; + s32 field_15D0; + s32 field_15D4; + s32 field_15D8; + s32 field_15DC; + s32 field_15E0; + s32 field_15E4; + s32 field_15E8; + s32 field_15EC; + s32 field_15F0; + s32 field_15F4; + s32 field_15F8; + s32 field_15FC; + s32 field_1600; + s32 field_1604; + s32 field_1608; + s32 field_160C; + s32 field_1610; + s32 field_1614; + s32 field_1618; + s32 field_161C; + s32 field_1620; + s32 field_1624; + s32 field_1628; + s32 field_162C; + s32 field_1630; + s32 field_1634; + s32 field_1638; + s32 field_163C; + s32 field_1640; + s32 field_1644; + s32 field_1648; + s32 field_164C; + s32 field_1650; + s32 field_1654; + s32 field_1658; + s32 field_165C; + s32 field_1660; + s32 field_1664; + s32 field_1668; + s32 field_166C; + s32 field_1670; + s32 field_1674; + s32 field_1678; + s32 field_167C; + s32 field_1680; + s32 field_1684; + s32 field_1688; + s32 field_168C; + s32 field_1690; + s32 field_1694; + s32 field_1698; + s32 field_169C; + s32 field_16A0; + s32 field_16A4; + s32 field_16A8; + s32 field_16AC; + s32 field_16B0; + s32 field_16B4; + s32 field_16B8; + s32 field_16BC; + s32 field_16C0; + s32 field_16C4; + s32 field_16C8; + s32 field_16CC; + s32 field_16D0; + s32 field_16D4; + s32 field_16D8; + s32 field_16DC; + s32 field_16E0; + s32 field_16E4; + s32 field_16E8; + s32 field_16EC; + s32 field_16F0; + s32 field_16F4; + s32 field_16F8; + s32 field_16FC; + s32 field_1700; + s32 field_1704; + s32 field_1708; + s32 field_170C; + s32 field_1710; + s32 field_1714; + s32 field_1718; + s32 field_171C; + s32 field_1720; + s32 field_1724; + s32 field_1728; + s32 field_172C; + s32 field_1730; + s32 field_1734; + s32 field_1738; + s32 field_173C; + s32 field_1740; + s32 field_1744; + s32 field_1748; + s32 field_174C; + s32 field_1750; + s32 field_1754; + s32 field_1758; + s32 field_175C; + s32 field_1760; + s32 field_1764; + s32 field_1768; + s32 field_176C; + s32 field_1770; + s32 field_1774; + s32 field_1778; + s32 field_177C; + s32 field_1780; + s32 field_1784; + s32 field_1788; + s32 field_178C; + s32 field_1790; + s32 field_1794; + s32 field_1798; + s32 field_179C; + s32 field_17A0; + s32 field_17A4; + s32 field_17A8; + s32 field_17AC; + s32 field_17B0; + s32 field_17B4; + s32 field_17B8; + s32 field_17BC; + s32 field_17C0; + s32 field_17C4; + s32 field_17C8; + s32 field_17CC; + s32 field_17D0; + s32 field_17D4; + s32 field_17D8; + s32 field_17DC; + s32 field_17E0; + s32 field_17E4; + s32 field_17E8; + s32 field_17EC; + s32 field_17F0; + s32 field_17F4; + s32 field_17F8; + s32 field_17FC; + s32 field_1800; + s32 field_1804; + s32 field_1808; + s32 field_180C; + s32 field_1810; + s32 field_1814; + s32 field_1818; + s32 field_181C; + s32 field_1820; + s32 field_1824; + s32 field_1828; + s32 field_182C; + s32 field_1830; + s32 field_1834; + s32 field_1838; + s32 field_183C; + s32 field_1840; + s32 field_1844; + s32 field_1848; + s32 field_184C; + s32 field_1850; + s32 field_1854; + s32 field_1858; + s32 field_185C; + s32 field_1860; + s32 field_1864; + s32 field_1868; + s32 field_186C; + s32 field_1870; + s32 field_1874; + s32 buffer_for_watch_greenbackdrop_vertices; + s32 field_187C; + s32 field_1880; + s32 field_1884; + s32 field_1888; + s32 field_188C; + s32 field_1890; + s32 field_1894; + s32 field_1898; + s32 field_189C; + s32 field_18A0; + s32 field_18A4; + s32 field_18A8; + s32 field_18AC; + s32 field_18B0; + s32 field_18B4; + s32 field_18B8; + s32 field_18BC; + s32 field_18C0; + s32 field_18C4; + s32 field_18C8; + s32 field_18CC; + s32 field_18D0; + s32 field_18D4; + s32 field_18D8; + s32 field_18DC; + s32 field_18E0; + s32 field_18E4; + s32 field_18E8; + s32 field_18EC; + s32 field_18F0; + s32 field_18F4; + s32 field_18F8; + s32 field_18FC; + s32 field_1900; + s32 field_1904; + s32 field_1908; + s32 field_190C; + s32 field_1910; + s32 field_1914; + s32 field_1918; + s32 field_191C; + s32 field_1920; + s32 field_1924; + s32 field_1928; + s32 field_192C; + s32 field_1930; + s32 field_1934; + s32 field_1938; + s32 field_193C; + s32 field_1940; + s32 field_1944; + s32 field_1948; + s32 field_194C; + s32 field_1950; + s32 field_1954; + s32 field_1958; + s32 field_195C; + s32 field_1960; + s32 field_1964; + s32 field_1968; + s32 field_196C; + s32 field_1970; + s32 field_1974; + s32 field_1978; + s32 field_197C; + s32 field_1980; + s32 field_1984; + s32 field_1988; + s32 field_198C; + s32 field_1990; + s32 field_1994; + s32 field_1998; + s32 field_199C; + s32 field_19A0; + s32 field_19A4; + s32 field_19A8; + s32 field_19AC; + s32 field_19B0; + s32 field_19B4; + s32 field_19B8; + s32 field_19BC; + s32 field_19C0; + s32 field_19C4; + s32 field_19C8; + s32 field_19CC; + s32 field_19D0; + s32 field_19D4; + s32 field_19D8; + s32 field_19DC; + s32 field_19E0; + s32 field_19E4; + s32 field_19E8; + s32 field_19EC; + s32 field_19F0; + s32 field_19F4; + s32 field_19F8; + s32 field_19FC; + s32 field_1A00; + s32 field_1A04; + s32 field_1A08; + s32 field_1A0C; + s32 field_1A10; + s32 field_1A14; + s32 field_1A18; + s32 field_1A1C; + s32 field_1A20; + s32 field_1A24; + s32 field_1A28; + s32 field_1A2C; + s32 field_1A30; + s32 field_1A34; + s32 field_1A38; + s32 field_1A3C; + s32 field_1A40; + s32 field_1A44; + s32 field_1A48; + s32 field_1A4C; + s32 field_1A50; + s32 field_1A54; + s32 field_1A58; + s32 field_1A5C; + s32 field_1A60; + s32 field_1A64; + s32 field_1A68; + s32 field_1A6C; + s32 field_1A70; + s32 field_1A74; + s32 field_1A78; + s32 field_1A7C; + s32 field_1A80; + s32 field_1A84; + s32 field_1A88; + s32 field_1A8C; + s32 field_1A90; + s32 field_1A94; + s32 field_1A98; + s32 field_1A9C; + s32 field_1AA0; + s32 field_1AA4; + s32 field_1AA8; + s32 field_1AAC; + s32 field_1AB0; + s32 field_1AB4; + s32 field_1AB8; + s32 field_1ABC; + s32 field_1AC0; + s32 field_1AC4; + s32 field_1AC8; + s32 field_1ACC; + s32 field_1AD0; + s32 field_1AD4; + s32 field_1AD8; + s32 field_1ADC; + s32 field_1AE0; + s32 field_1AE4; + s32 field_1AE8; + s32 field_1AEC; + s32 field_1AF0; + s32 field_1AF4; + s32 field_1AF8; + s32 field_1AFC; + s32 field_1B00; + s32 field_1B04; + s32 field_1B08; + s32 field_1B0C; + s32 field_1B10; + s32 field_1B14; + s32 field_1B18; + s32 field_1B1C; + s32 field_1B20; + s32 field_1B24; + s32 field_1B28; + s32 field_1B2C; + s32 field_1B30; + s32 field_1B34; + s32 field_1B38; + s32 field_1B3C; + s32 field_1B40; + s32 field_1B44; + s32 field_1B48; + s32 field_1B4C; + s32 field_1B50; + s32 field_1B54; + s32 field_1B58; + s32 field_1B5C; + s32 field_1B60; + s32 field_1B64; + s32 field_1B68; + s32 field_1B6C; + s32 field_1B70; + s32 field_1B74; + s32 field_1B78; + s32 field_1B7C; + s32 field_1B80; + s32 field_1B84; + s32 field_1B88; + s32 field_1B8C; + s32 field_1B90; + s32 field_1B94; + s32 field_1B98; + s32 field_1B9C; + s32 field_1BA0; + s32 field_1BA4; + s32 field_1BA8; + s32 field_1BAC; + s32 field_1BB0; + s32 field_1BB4; + s32 field_1BB8; + s32 field_1BBC; + s32 field_1BC0; + s32 field_1BC4; + s32 field_1BC8; + s32 field_1BCC; + s32 field_1BD0; + s32 field_1BD4; + s32 field_1BD8; + s32 field_1BDC; + s32 field_1BE0; + s32 field_1BE4; + s32 field_1BE8; + s32 field_1BEC; + s32 field_1BF0; + s32 field_1BF4; + s32 field_1BF8; + s32 field_1BFC; + s32 field_1C00; + s32 field_1C04; + s32 field_1C08; + s32 field_1C0C; + s32 field_1C10; + s32 field_1C14; + s32 field_1C18; + s32 field_1C1C; + s32 field_1C20; + s32 field_1C24; + s32 field_1C28; + s32 field_1C2C; + s32 field_1C30; + s32 field_1C34; + s32 field_1C38; + s32 field_1C3C; + s32 field_1C40; + s32 field_1C44; + s32 field_1C48; + s32 field_1C4C; + s32 field_1C50; + s32 field_1C54; + s32 field_1C58; + s32 field_1C5C; + s32 field_1C60; + s32 field_1C64; + s32 field_1C68; + s32 field_1C6C; + s32 field_1C70; + s32 field_1C74; + s32 field_1C78; + s32 field_1C7C; + s32 field_1C80; + s32 field_1C84; + s32 field_1C88; + s32 field_1C8C; + s32 field_1C90; + s32 field_1C94; + s32 field_1C98; + s32 field_1C9C; + s32 field_1CA0; + s32 field_1CA4; + s32 field_1CA8; + s32 field_1CAC; + s32 field_1CB0; + s32 field_1CB4; + s32 field_1CB8; + s32 field_1CBC; + s32 field_1CC0; + s32 field_1CC4; + s32 field_1CC8; + s32 field_1CCC; + s32 field_1CD0; + s32 field_1CD4; + s32 field_1CD8; + s32 field_1CDC; + s32 field_1CE0; + s32 field_1CE4; + s32 field_1CE8; + s32 field_1CEC; + s32 field_1CF0; + s32 field_1CF4; + s32 field_1CF8; + s32 field_1CFC; + s32 field_1D00; + s32 field_1D04; + s32 field_1D08; + s32 field_1D0C; + s32 field_1D10; + s32 field_1D14; + s32 field_1D18; + s32 field_1D1C; + s32 field_1D20; + s32 field_1D24; + s32 field_1D28; + s32 field_1D2C; + s32 field_1D30; + s32 field_1D34; + s32 field_1D38; + s32 field_1D3C; + s32 field_1D40; + s32 field_1D44; + s32 field_1D48; + s32 field_1D4C; + s32 field_1D50; + s32 field_1D54; + s32 field_1D58; + s32 field_1D5C; + s32 field_1D60; + s32 field_1D64; + s32 field_1D68; + s32 field_1D6C; + s32 field_1D70; + s32 field_1D74; + s32 field_1D78; + s32 field_1D7C; + s32 field_1D80; + s32 field_1D84; + s32 field_1D88; + s32 field_1D8C; + s32 field_1D90; + s32 field_1D94; + s32 field_1D98; + s32 field_1D9C; + s32 field_1DA0; + s32 field_1DA4; + s32 field_1DA8; + s32 field_1DAC; + s32 field_1DB0; + s32 field_1DB4; + s32 field_1DB8; + s32 field_1DBC; + s32 field_1DC0; + s32 field_1DC4; + s32 field_1DC8; + s32 field_1DCC; + s32 field_1DD0; + s32 field_1DD4; + s32 field_1DD8; + s32 field_1DDC; + s32 field_1DE0; + s32 field_1DE4; + s32 field_1DE8; + s32 field_1DEC; + s32 field_1DF0; + s32 field_1DF4; + s32 field_1DF8; + s32 field_1DFC; + s32 field_1E00; + s32 field_1E04; + s32 field_1E08; + s32 field_1E0C; + s32 field_1E10; + s32 field_1E14; + s32 field_1E18; + s32 field_1E1C; + s32 field_1E20; + s32 field_1E24; + s32 field_1E28; + s32 field_1E2C; + s32 field_1E30; + s32 field_1E34; + s32 field_1E38; + s32 field_1E3C; + s32 field_1E40; + s32 field_1E44; + s32 field_1E48; + s32 field_1E4C; + s32 field_1E50; + s32 field_1E54; + s32 field_1E58; + s32 field_1E5C; + s32 field_1E60; + s32 field_1E64; + s32 field_1E68; + s32 field_1E6C; + s32 field_1E70; + s32 field_1E74; + s32 field_1E78; + s32 field_1E7C; + s32 field_1E80; + s32 field_1E84; + s32 field_1E88; + s32 field_1E8C; + s32 field_1E90; + s32 field_1E94; + s32 field_1E98; + s32 field_1E9C; + s32 field_1EA0; + s32 field_1EA4; + s32 field_1EA8; + s32 field_1EAC; + s32 field_1EB0; + s32 field_1EB4; + s32 field_1EB8; + s32 field_1EBC; + s32 field_1EC0; + s32 field_1EC4; + s32 field_1EC8; + s32 field_1ECC; + s32 field_1ED0; + s32 field_1ED4; + s32 field_1ED8; + s32 field_1EDC; + s32 field_1EE0; + s32 field_1EE4; + s32 field_1EE8; + s32 field_1EEC; + s32 field_1EF0; + s32 field_1EF4; + s32 field_1EF8; + s32 field_1EFC; + s32 field_1F00; + s32 field_1F04; + s32 field_1F08; + s32 field_1F0C; + s32 field_1F10; + s32 field_1F14; + s32 field_1F18; + s32 field_1F1C; + s32 field_1F20; + s32 field_1F24; + s32 field_1F28; + s32 field_1F2C; + s32 field_1F30; + s32 field_1F34; + s32 field_1F38; + s32 field_1F3C; + s32 field_1F40; + s32 field_1F44; + s32 field_1F48; + s32 field_1F4C; + s32 field_1F50; + s32 field_1F54; + s32 field_1F58; + s32 field_1F5C; + s32 field_1F60; + s32 field_1F64; + s32 field_1F68; + s32 field_1F6C; + s32 field_1F70; + s32 field_1F74; + s32 field_1F78; + s32 field_1F7C; + s32 field_1F80; + s32 field_1F84; + s32 field_1F88; + s32 field_1F8C; + s32 field_1F90; + s32 field_1F94; + s32 field_1F98; + s32 field_1F9C; + s32 field_1FA0; + s32 field_1FA4; + s32 field_1FA8; + s32 field_1FAC; + s32 field_1FB0; + s32 field_1FB4; + s32 field_1FB8; + s32 field_1FBC; + s32 field_1FC0; + s32 field_1FC4; + s32 field_1FC8; + s32 field_1FCC; + s32 field_1FD0; + s32 field_1FD4; + s32 field_1FD8; + s32 field_1FDC; + s32 field_1FE0; + s32 field_1FE4; + s32 field_1FE8; + s32 field_1FEC; + s32 field_1FF0; + s32 field_1FF4; + s32 field_1FF8; + s32 field_1FFC; + s32 field_2000; + s32 field_2004; + s32 field_2008; + s32 field_200C; + s32 field_2010; + s32 field_2014; + s32 field_2018; + s32 field_201C; + s32 field_2020; + s32 field_2024; + s32 field_2028; + s32 field_202C; + s32 field_2030; + s32 field_2034; + s32 field_2038; + s32 field_203C; + s32 field_2040; + s32 field_2044; + s32 field_2048; + s32 field_204C; + s32 field_2050; + s32 field_2054; + s32 field_2058; + s32 field_205C; + s32 field_2060; + s32 field_2064; + s32 field_2068; + s32 field_206C; + s32 field_2070; + s32 field_2074; + s32 field_2078; + s32 field_207C; + s32 field_2080; + s32 field_2084; + s32 field_2088; + s32 field_208C; + s32 field_2090; + s32 field_2094; + s32 field_2098; + s32 field_209C; + s32 field_20A0; + s32 field_20A4; + s32 field_20A8; + s32 field_20AC; + s32 field_20B0; + s32 field_20B4; + s32 field_20B8; + s32 field_20BC; + s32 field_20C0; + s32 field_20C4; + s32 field_20C8; + s32 field_20CC; + s32 field_20D0; + s32 field_20D4; + s32 field_20D8; + s32 field_20DC; + s32 field_20E0; + s32 field_20E4; + s32 field_20E8; + s32 field_20EC; + s32 field_20F0; + s32 field_20F4; + s32 field_20F8; + s32 field_20FC; + s32 field_2100; + s32 field_2104; + s32 field_2108; + s32 field_210C; + s32 field_2110; + s32 field_2114; + s32 field_2118; + s32 field_211C; + s32 field_2120; + s32 field_2124; + s32 field_2128; + s32 field_212C; + s32 field_2130; + s32 field_2134; + s32 field_2138; + s32 field_213C; + s32 field_2140; + s32 field_2144; + s32 field_2148; + s32 field_214C; + s32 field_2150; + s32 field_2154; + s32 field_2158; + s32 field_215C; + s32 field_2160; + s32 field_2164; + s32 field_2168; + s32 field_216C; + s32 field_2170; + s32 field_2174; + s32 field_2178; + s32 field_217C; + s32 field_2180; + s32 field_2184; + s32 field_2188; + s32 field_218C; + s32 field_2190; + s32 field_2194; + s32 field_2198; + s32 field_219C; + s32 field_21A0; + s32 field_21A4; + s32 field_21A8; + s32 field_21AC; + s32 field_21B0; + s32 field_21B4; + s32 field_21B8; + s32 field_21BC; + s32 field_21C0; + s32 field_21C4; + s32 field_21C8; + s32 field_21CC; + s32 field_21D0; + s32 field_21D4; + s32 field_21D8; + s32 field_21DC; + s32 field_21E0; + s32 field_21E4; + s32 field_21E8; + s32 field_21EC; + s32 field_21F0; + s32 field_21F4; + s32 field_21F8; + s32 field_21FC; + s32 field_2200; + s32 field_2204; + s32 field_2208; + s32 field_220C; + s32 field_2210; + s32 field_2214; + s32 field_2218; + s32 field_221C; + s32 field_2220; + s32 field_2224; + s32 field_2228; + s32 field_222C; + s32 field_2230; + s32 field_2234; + s32 field_2238; + s32 field_223C; + s32 field_2240; + s32 field_2244; + s32 field_2248; + s32 field_224C; + s32 field_2250; + s32 field_2254; + s32 field_2258; + s32 field_225C; + s32 field_2260; + s32 field_2264; + s32 field_2268; + s32 field_226C; + s32 field_2270; + s32 field_2274; + s32 field_2278; + s32 field_227C; + s32 field_2280; + s32 field_2284; + s32 field_2288; + s32 field_228C; + s32 field_2290; + s32 field_2294; + s32 field_2298; + s32 field_229C; + s32 field_22A0; + s32 field_22A4; + s32 field_22A8; + s32 field_22AC; + s32 field_22B0; + s32 field_22B4; + s32 field_22B8; + s32 field_22BC; + s32 field_22C0; + s32 field_22C4; + s32 field_22C8; + s32 field_22CC; + s32 field_22D0; + s32 field_22D4; + s32 field_22D8; + s32 field_22DC; + s32 field_22E0; + s32 field_22E4; + s32 field_22E8; + s32 field_22EC; + s32 field_22F0; + s32 field_22F4; + s32 field_22F8; + s32 field_22FC; + s32 field_2300; + s32 field_2304; + s32 field_2308; + s32 field_230C; + s32 field_2310; + s32 field_2314; + s32 field_2318; + s32 field_231C; + s32 field_2320; + s32 field_2324; + s32 field_2328; + s32 field_232C; + s32 field_2330; + s32 field_2334; + s32 field_2338; + s32 field_233C; + s32 field_2340; + s32 field_2344; + s32 field_2348; + s32 field_234C; + s32 field_2350; + s32 field_2354; + s32 field_2358; + s32 field_235C; + s32 field_2360; + s32 field_2364; + s32 field_2368; + s32 field_236C; + s32 field_2370; + s32 field_2374; + s32 field_2378; + s32 field_237C; + s32 field_2380; + s32 field_2384; + s32 field_2388; + s32 field_238C; + s32 field_2390; + s32 field_2394; + s32 field_2398; + s32 field_239C; + s32 field_23A0; + s32 field_23A4; + s32 field_23A8; + s32 field_23AC; + s32 field_23B0; + s32 field_23B4; + s32 field_23B8; + s32 field_23BC; + s32 field_23C0; + s32 field_23C4; + s32 field_23C8; + s32 field_23CC; + s32 field_23D0; + s32 field_23D4; + s32 field_23D8; + s32 field_23DC; + s32 field_23E0; + s32 field_23E4; + s32 field_23E8; + s32 field_23EC; + s32 field_23F0; + s32 field_23F4; + s32 field_23F8; + s32 field_23FC; + s32 field_2400; + s32 field_2404; + s32 field_2408; + s32 field_240C; + s32 field_2410; + s32 field_2414; + s32 field_2418; + s32 field_241C; + s32 field_2420; + s32 field_2424; + s32 field_2428; + s32 field_242C; + s32 field_2430; + s32 field_2434; + s32 field_2438; + s32 field_243C; + s32 field_2440; + s32 field_2444; + s32 field_2448; + s32 field_244C; + s32 field_2450; + s32 field_2454; + s32 field_2458; + s32 field_245C; + s32 field_2460; + s32 field_2464; + s32 field_2468; + s32 field_246C; + s32 field_2470; + s32 field_2474; + s32 field_2478; + s32 field_247C; + s32 field_2480; + s32 field_2484; + s32 field_2488; + s32 field_248C; + s32 field_2490; + s32 field_2494; + s32 field_2498; + s32 field_249C; + s32 field_24A0; + s32 field_24A4; + s32 field_24A8; + s32 field_24AC; + s32 field_24B0; + s32 field_24B4; + s32 field_24B8; + s32 field_24BC; + s32 field_24C0; + s32 field_24C4; + s32 field_24C8; + s32 field_24CC; + s32 field_24D0; + s32 field_24D4; + s32 field_24D8; + s32 field_24DC; + s32 field_24E0; + s32 field_24E4; + s32 field_24E8; + s32 field_24EC; + s32 field_24F0; + s32 field_24F4; + s32 field_24F8; + s32 field_24FC; + s32 field_2500; + s32 field_2504; + s32 field_2508; + s32 field_250C; + s32 field_2510; + s32 field_2514; + s32 field_2518; + s32 field_251C; + s32 field_2520; + s32 field_2524; + s32 field_2528; + s32 field_252C; + s32 field_2530; + s32 field_2534; + s32 field_2538; + s32 field_253C; + s32 field_2540; + s32 field_2544; + s32 field_2548; + s32 field_254C; + s32 field_2550; + s32 field_2554; + s32 field_2558; + s32 field_255C; + s32 field_2560; + s32 field_2564; + s32 field_2568; + s32 field_256C; + s32 field_2570; + s32 field_2574; + s32 field_2578; + s32 field_257C; + s32 field_2580; + s32 field_2584; + s32 field_2588; + s32 field_258C; + s32 field_2590; + s32 field_2594; + s32 field_2598; + s32 field_259C; + s32 field_25A0; + s32 field_25A4; + s32 field_25A8; + s32 field_25AC; + s32 field_25B0; + s32 field_25B4; + s32 field_25B8; + s32 field_25BC; + s32 field_25C0; + s32 field_25C4; + s32 field_25C8; + s32 field_25CC; + s32 field_25D0; + s32 field_25D4; + s32 field_25D8; + s32 field_25DC; + s32 field_25E0; + s32 field_25E4; + s32 field_25E8; + s32 field_25EC; + s32 field_25F0; + s32 field_25F4; + s32 field_25F8; + s32 field_25FC; + s32 field_2600; + s32 field_2604; + s32 field_2608; + s32 field_260C; + s32 field_2610; + s32 field_2614; + s32 field_2618; + s32 field_261C; + s32 field_2620; + s32 field_2624; + s32 field_2628; + s32 field_262C; + s32 field_2630; + s32 field_2634; + s32 field_2638; + s32 field_263C; + s32 field_2640; + s32 field_2644; + s32 field_2648; + s32 field_264C; + s32 field_2650; + s32 field_2654; + s32 field_2658; + s32 field_265C; + s32 field_2660; + s32 field_2664; + s32 field_2668; + s32 field_266C; + s32 field_2670; + s32 field_2674; + s32 field_2678; + s32 field_267C; + s32 field_2680; + s32 field_2684; + s32 field_2688; + s32 field_268C; + s32 field_2690; + s32 field_2694; + s32 field_2698; + s32 field_269C; + s32 field_26A0; + s32 field_26A4; + s32 field_26A8; + s32 field_26AC; + s32 field_26B0; + s32 field_26B4; + s32 field_26B8; + s32 field_26BC; + s32 field_26C0; + s32 field_26C4; + s32 field_26C8; + s32 field_26CC; + s32 field_26D0; + s32 field_26D4; + s32 field_26D8; + s32 field_26DC; + s32 field_26E0; + s32 field_26E4; + s32 field_26E8; + s32 field_26EC; + s32 field_26F0; + s32 field_26F4; + s32 field_26F8; + s32 field_26FC; + s32 field_2700; + s32 field_2704; + s32 field_2708; + s32 field_270C; + s32 field_2710; + s32 field_2714; + s32 field_2718; + s32 field_271C; + s32 field_2720; + s32 field_2724; + s32 field_2728; + s32 field_272C; + s32 field_2730; + s32 field_2734; + s32 field_2738; + s32 field_273C; + s32 field_2740; + s32 field_2744; + s32 field_2748; + s32 field_274C; + s32 field_2750; + s32 field_2754; + s32 field_2758; + s32 field_275C; + s32 field_2760; + s32 field_2764; + s32 field_2768; + s32 field_276C; + s32 field_2770; + s32 field_2774; + s32 field_2778; + s32 field_277C; + s32 field_2780; + s32 field_2784; + s32 field_2788; + s32 field_278C; + s32 field_2790; + s32 field_2794; + s32 field_2798; + s32 field_279C; + s32 field_27A0; + s32 field_27A4; + s32 field_27A8; + s32 field_27AC; + s32 field_27B0; + s32 field_27B4; + s32 field_27B8; + s32 field_27BC; + s32 field_27C0; + s32 field_27C4; + s32 field_27C8; + s32 field_27CC; + s32 field_27D0; + s32 field_27D4; + s32 field_27D8; + s32 field_27DC; + s32 field_27E0; + s32 field_27E4; + s32 field_27E8; + s32 field_27EC; + s32 field_27F0; + s32 field_27F4; + s32 field_27F8; + s32 field_27FC; + s32 field_2800; + s32 field_2804; + s32 field_2808; + s32 field_280C; + s32 field_2810; + s32 field_2814; + s32 field_2818; + s32 field_281C; + s32 field_2820; + s32 field_2824; + s32 field_2828; + s32 field_282C; + s32 field_2830; + s32 field_2834; + s32 field_2838; + s32 field_283C; + s32 field_2840; + s32 field_2844; + s32 field_2848; + s32 field_284C; + s32 field_2850; + s32 field_2854; + s32 buffer_for_watch_greenbackdrop_DL; + s32 field_285C; + s32 field_2860; + s32 field_2864; + s32 field_2868; + s32 field_286C; + s32 field_2870; + s32 field_2874; + s32 field_2878; + s32 field_287C; + s32 field_2880; + s32 field_2884; + s32 field_2888; + s32 field_288C; + s32 field_2890; + s32 field_2894; + s32 field_2898; + s32 field_289C; + s32 field_28A0; + s32 field_28A4; + s32 field_28A8; + s32 field_28AC; + s32 field_28B0; + s32 field_28B4; + s32 field_28B8; + s32 field_28BC; + s32 field_28C0; + s32 field_28C4; + s32 field_28C8; + s32 field_28CC; + s32 field_28D0; + s32 field_28D4; + s32 field_28D8; + s32 field_28DC; + s32 field_28E0; + s32 field_28E4; + s32 field_28E8; + s32 field_28EC; + s32 field_28F0; + s32 field_28F4; + s32 field_28F8; + s32 field_28FC; + s32 field_2900; + s32 field_2904; + s32 field_2908; + s32 field_290C; + s32 field_2910; + s32 field_2914; + s32 field_2918; + s32 field_291C; + s32 field_2920; + s32 field_2924; + s32 field_2928; + s32 field_292C; + s32 field_2930; + s32 field_2934; + s32 field_2938; + s32 field_293C; + s32 field_2940; + s32 field_2944; + s32 field_2948; + s32 field_294C; + s32 field_2950; + s32 field_2954; + s32 field_2958; + s32 field_295C; + s32 field_2960; + s32 field_2964; + s32 field_2968; + s32 field_296C; + s32 field_2970; + s32 field_2974; + s32 field_2978; + s32 field_297C; + s32 field_2980; + s32 field_2984; + s32 field_2988; + s32 field_298C; + s32 field_2990; + s32 field_2994; + s32 field_2998; + s32 field_299C; + s32 field_29A0; + s32 field_29A4; + s32 field_29A8; + s32 field_29AC; + s32 field_29B0; + s32 field_29B4; + s32 field_29B8; + s32 field_29BC; + s32 field_29C0; + s32 mpmenuon; + s32 mpmenumode; + s32 mpquitconfirm; + s32 mpjoywascentre; + s32 damagetype; + s32 deathcount; + s32 num_suicides; + s32 field_29E0; + s32 last_kill_time; + s32 field_29E8; + s32 field_29EC; + s32 field_29F0; + s32 field_29F4; + s32 field_29F8; + s32 field_29FC; + s32 healthdisplaytime; + s16 field_2A04; + s32 field_2A08; + s32 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; + s32 field_2A30; + s32 field_2A34; + s32 cur_item_weapon_getname; + s32 actual_health; + s32 actual_armor; + s32 field_2A44[2]; + f32 field_2A4C; + s32 lock_hand_model[2]; + s32 cur_player_control_type_0; + s32 cur_player_control_type_1; + f32 cur_player_control_type_2; + s32 neg_vspacing_for_control_type_entry; + u32 has_set_control_type_data; + s32 field_2A6C; + s32 field_2A70; + s32 field_2A74; + s32 field_2A78; + s32 field_2A7C; +}; + +struct firing_anim_struct { + struct weapon_firing_animation_table * pointer; + u32 anim; + f32 x; + f32 y; + f32 z; +}; + +struct struct_4 { + int anonymous_0; + float anonymous_1; + float anonymous_2; + float anonymous_3; +}; + +//D:80036424 +extern s32 camera_80036424; +//D:80036428 +extern s32 resolution; +//D:8003642C +extern s32 camera_8003642C; +//D:80036430 +extern s32 camera_80036430; +//D:80036434 +extern s32 camera_80036434; +//D:80036438 +extern s32 camera_80036438; +//D:8003643C +extern s32 D_8003643C; +//D:80036440 +extern s32 D_80036440; +//D:80036444 +extern s32 D_80036444; +//D:80036448 +extern s32 in_tank_flag; +//D:8003644C +extern s32 D_8003644C; +//D:80036450 +extern s32 ptr_playerstank; +//D:80036454 +extern s32 D_80036454; +//D:80036458 +extern s32 SFX_80036458; +//D:8003645C +extern s32 SFX_8003645C; +//D:80036460 +extern s32 D_80036460; +//D:80036464 +extern s32 D_80036464; +//D:80036468 +extern s32 D_80036468; +//D:8003646C +extern s32 D_8003646C; +//D:80036470 +extern s32 D_80036470; +//D:80036474 +extern s32 D_80036474; +//D:80036478 +extern s32 D_80036478; +//D:8003647C +extern s32 D_8003647C; +//D:80036480 +extern s32 D_80036480; +//D:80036484 +extern s32 D_80036484; +//D:80036488 +extern s32 D_80036488; +//D:8003648C +extern s32 D_8003648C; +//D:80036490 +extern s32 D_80036490; +//D:80036494 +extern s32 cameramode; +//D:80036498 +extern s32 enable_move_after_cinema; +//D:8003649C +extern s32 D_8003649C; +//D:800364A0 +extern s32 stop_time_flag; +//D:800364A4 +extern s32 D_800364A4; +//D:800364A8 +extern s32 D_800364A8; +//D:800364AC +extern s32 D_800364AC; +//D:800364B0 +extern s32 D_800364B0; +//D:800364B4 +extern s32 disable_player_pickups_flag; +//D:800364B8 +extern s32 D_800364B8; +//D:800364BC +extern s32 D_800364BC; +//D:800364C0 +extern s32 ptr_random06cam_entry; +//D:800364C4 +extern s32 invisible_to_guards_flag; +//D:800364C8 +extern s32 obj_collision_flag; +//D:800364CC +extern f32 D_800364CC; +//D:800364D0 +extern f32 D_800364D0; +//D:800364D4 +extern f32 D_800364D4; +//D:800364D8 +extern s32 D_800364D8[]; + +//D:8003650C +extern s32 D_8003650C; +//D:80036510 +extern s32 D_80036510; +//D:80036514 +extern s32 D_80036514; +/* +D:80036518 stage_intro_anim_table:struct_4 <0x5744, 95.0, -1.0, 0.02> +D:80036528 struct_4 <0x6254, 7.0, 40.0, 0.5> +D:80036538 struct_4 <0x78C8, 0.0, -1.0, 0.5> +D:80036548 struct_4 <0x7AA8, 0.0, -1.0, 0.5> +D:80036558 struct_4 <0x7C4C, 0.0, -1.0, 0.5> +D:80036568 struct_4 <0x7D04, 0.0, -1.0, 0.5> +D:80036578 struct_4 <0x7F0C, 0.0, -1.0, 0.5> +D:80036588 struct_4 <0x7FB4, 0.0, -1.0, 0.5> +D:80036598 struct_4 <0xD89C, 0.0, -1.0, 0.5> +D:800365A8 flt_watch_transition_time: .float 0.90909088 +D:800365AC dummy_08_pp7_obj:.word 0x1000008 +D:800365B0 .word 0xBF4000 +D:800365B4 .word 0, 0, 0, 0 +D:800365C4 .byte 0x3F +D:800365C5 .byte 0x80, 0, 0 +D:800365C8 .word 0, 0, 0, 0 +D:800365D8 .byte 0x3F +D:800365D9 .byte 0x80, 0, 0 +D:800365DC .word 0, 0, 0, 0 +D:800365EC .byte 0x3F +D:800365ED .byte 0x80, 0, 0 +D:800365F0 .align 5 +D:80036600 .byte 0x3F +D:80036601 .byte 0x80, 0, 0 +D:80036604 .align 5 +D:80036620 .byte 0x44 +D:80036621 .byte 0x7A, 0, 0 +D:80036624 .word 0xFFFFFF00, 0xFFFFFF00, 0x4FFFFFF +*/ +//D:80036630 +extern u32 D_80036630; +//D:80036634 +extern u32 D_80036634[]; +/* +D:80036638 .byte 0 +D:80036639 .byte 0, 0, 0xA +D:8003663C .word 0x3C, 0x3F19999A, 0 +D:80036648 .byte 0 +D:80036649 .byte 0, 0, 5 +D:8003664C .word 0x28, 0x3F800000, 0xFF, 0xFF, 0xFF, 0 +D:80036664 .byte 0 +D:80036665 .byte 0, 0, 0xA +D:80036668 .word 0x3C, 0x3F19999A, 0 +D:80036674 .byte 0 +D:80036675 .byte 0, 0, 5 +D:80036678 .word 0x28, 0x3F800000, 0xFF, 0xFF, 0xFF, 0 +D:80036690 .byte 0 +D:80036691 .byte 0, 0, 0xA +D:80036694 .word 0x32, 0x3F19999A, 0 +D:800366A0 .word 5, 0x1E, 0x3F4CCCCD, 0xFF, 0xFF, 0xFF, 0 +D:800366BC .byte 0 +D:800366BD .byte 0, 0, 0xA +D:800366C0 .word 0x28, 0x3F19999A, 0 +D:800366CC .byte 0 +D:800366CD .byte 0, 0, 5 +D:800366D0 .word 0x19, 0x3F19999A, 0xFF, 0xFF, 0xFF, 0 +D:800366E8 .byte 0 +D:800366E9 .byte 0, 0, 0xA +D:800366EC .word 0x23, 0x3F19999A, 0 +D:800366F8 .byte 0 +D:800366F9 .byte 0, 0, 5 +D:800366FC .word 0x16, 0x3F0CCCCD, 0xFF, 0xFF, 0xFF, 0 +D:80036714 .byte 0 +D:80036715 .byte 0, 0, 0xA +D:80036718 .word 0x1E, 0x3F19999A, 0 +D:80036724 .word 5, 0x13, 0x3F000000, 0xFF, 0xFF, 0xFF, 0 +D:80036740 .byte 0 +D:80036741 .byte 0, 0, 0xA +D:80036744 .word 0x1E, 0x3F19999A, 0 +D:80036750 .word 5, 0x11, 0x3EE66666, 0xFF, 0xFF, 0xFF, 0 +D:8003676C .byte 0 +D:8003676D .byte 0, 0, 0xA +D:80036770 .word 0x1E, 0x3F19999A, 0 +D:8003677C .word 5, 0xF, 0x3ECCCCCD, 0xFF, 0xFF, 0xFF +D:80036794 D_80036794:.word 0 +D:80036798 .byte 0 +D:80036799 .byte 0, 0, 0x28 +D:8003679C .word 0x64, 0 +D:800367A4 .byte 0 +D:800367A5 .byte 0, 0, 0x1E +D:800367A8 .word 0x50, 0 +D:800367B0 .byte 0 +D:800367B1 .byte 0, 0, 0x14 +D:800367B4 .word 0x3C, 0 +D:800367BC .byte 0 +D:800367BD .byte 0, 0, 0x14 +D:800367C0 .word 0x3C, 0 +D:800367C8 .byte 0 +D:800367C9 .byte 0, 0, 0x14 +D:800367CC .word 0x3C, 0 +D:800367D4 .byte 0 +D:800367D5 .byte 0, 0, 0x14 +D:800367D8 .word 0x32, 0 +D:800367E0 .word 0x14, 0x32, 0 +D:800367EC .byte 0 +D:800367ED .byte 0, 0, 0x14 +D:800367F0 .word 0x32 +*/ +//D:800367F4 +extern s32 D_800367F4; +//D:800367F8 +extern s32 D_800367F8; +//D:800367FC +extern s32 D_800367FC; +//D:80036800 +extern s32 D_80036800; +//D:80036804 +extern s32 D_80036804; +//D:80036808 +extern s32 D_80036808; +//D:8003680C +extern s32 D_8003680C; +//D:80036810 +extern s32 D_80036810; +//D:80036814 +extern s32 D_80036814; +//D:80036818 +extern s32 D_80036818; +//D:8003681C +extern s32 D_8003681C; +//D:80036820 +extern s32 D_80036820; +//D:80036824 +extern s32 D_80036824; +//D:80036828 +extern s32 D_80036828; +//D:8003682C +extern s32 D_8003682C; +//D:80036830 +extern s32 D_80036830; +//D:80036834 +extern s32 D_80036834; +//D:80036838 +extern s32 D_80036838; +//D:8003683C +extern s32 D_8003683C[]; +//D:80036878 +extern s32 D_80036878; +//D:8003687C +extern s32 D_8003687C; +//D:80036880 +extern s32 D_80036880; +//D:80036884 +extern s32 D_80036884; +//D:80036888 +extern s32 D_80036888; +//D:8003688C +extern s32 D_8003688C; +//D:80036890 +extern s32 D_80036890; +//D:80036894 +extern s32 D_80036894; +//D:80036898 +extern s32 status_bar_text_buffer_index; +//D:8003689C +extern s32 display_statusbar; +//D:800368A0 +extern s32 copy_1stfonttable; +//D:800368A4 +extern s32 copy_2ndfonttable; +//D:800368A8 +extern s32 upper_text_buffer_index; +//D:800368AC +extern s32 display_upper_text_window; +//D:800368B0 +extern s32 upper_text_window_timer; +extern s32 D_800368B4; +//D:800368B8 +extern u16 D_800368B8[]; +/* +D:800368D8 firing_animation_groups:firing_anim_struct +D:800368D8 # DATA XREF: sub_CODE_7F08B0F0+720o +D:800368EC firing_anim_struct +D:80036900 firing_anim_struct +D:80036914 firing_anim_struct +D:80036928 firing_anim_struct +D:8003693C firing_anim_struct +D:80036950 firing_anim_struct +D:80036964 firing_anim_struct +D:80036978 firing_anim_struct +D:8003698C firing_anim_struct +D:800369A0 firing_anim_struct +D:800369B4 firing_anim_struct +D:800369C8 firing_anim_struct <0, 0x8194, 0.25, 0.0, -1.0> +D:800369DC firing_anim_struct <0, 0x8204, 0.5, 0.0, -1.0> +D:800369F0 firing_anim_struct <0, 0x777C, 0.5, 0.0, -1.0> +D:80036A04 firing_anim_struct +D:80036A18 firing_anim_struct +D:80036A2C firing_anim_struct <0, 0x6C18, 0.050000001, 28.0, 29.0> +D:80036A40 firing_anim_struct +D:80036A54 firing_anim_struct +D:80036A68 firing_anim_struct +D:80036A7C firing_anim_struct +D:80036A90 firing_anim_struct +D:80036AA4 firing_anim_struct +*/ +//D:80036AB8 +extern s32 D_80036AB8; +//D:80036ABC +extern s32 D_80036ABC; +//D:80036AC0 +extern f32 D_80036AC0; +//D:80036AC4 +extern f32 D_80036AC4; + + +u32 get_camera_mode(void); + +void sub_GAME_7F07E46C(f32 param); + +void trigger_watch_zoom(f32 final, f32 time); + +#endif diff --git a/src/game/bondinv.c b/src/game/bondinv.c new file mode 100644 index 0000000..989c045 --- /dev/null +++ b/src/game/bondinv.c @@ -0,0 +1,3254 @@ +#include "ultra64.h" +#include "game/bond.h" +#include "game/chr.h" +#include "game/unk_093880.h" +#include "game/textrelated.h" +#include "bondconstants.h" +#include "game/lvl_text.h" +#include "game/bondinv.h" +#include "game/bondwalk.h" +#include "bondtypes.h" + +void reinit_BONDdata_inventory(void) { + + s32 i; + + for (i=0; i < pPlayer->equipmaxitems; i++) { + + pPlayer->p_itemcur[i].type = -1; + + } + + pPlayer->ptr_inventory_first_in_cycle = NULL; + pPlayer->textoverrides = NULL; + pPlayer->equipcuritem = 0; +} + +#ifdef NONMATCHING +void sub_GAME_7F08C054(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C054 +/* 0C0B84 7F08C054 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0C0B88 7F08C058 AFB00004 */ sw $s0, 4($sp) +/* 0C0B8C 7F08C05C 8C850000 */ lw $a1, ($a0) +/* 0C0B90 7F08C060 240B0001 */ li $t3, 1 +/* 0C0B94 7F08C064 2402FFFF */ li $v0, -1 +/* 0C0B98 7F08C068 15650005 */ bne $t3, $a1, .L7F08C080 +/* 0C0B9C 7F08C06C 2403FFFF */ li $v1, -1 +/* 0C0BA0 7F08C070 8C820004 */ lw $v0, 4($a0) +/* 0C0BA4 7F08C074 24100002 */ li $s0, 2 +/* 0C0BA8 7F08C078 1000000B */ b .L7F08C0A8 +/* 0C0BAC 7F08C07C 240D0003 */ li $t5, 3 +.L7F08C080: +/* 0C0BB0 7F08C080 240D0003 */ li $t5, 3 +/* 0C0BB4 7F08C084 15A50005 */ bne $t5, $a1, .L7F08C09C +/* 0C0BB8 7F08C088 24100002 */ li $s0, 2 +/* 0C0BBC 7F08C08C 8C820004 */ lw $v0, 4($a0) +/* 0C0BC0 7F08C090 8C830008 */ lw $v1, 8($a0) +/* 0C0BC4 7F08C094 10000004 */ b .L7F08C0A8 +/* 0C0BC8 7F08C098 24100002 */ li $s0, 2 +.L7F08C09C: +/* 0C0BCC 7F08C09C 16050002 */ bne $s0, $a1, .L7F08C0A8 +/* 0C0BD0 7F08C0A0 00000000 */ nop +/* 0C0BD4 7F08C0A4 240207D0 */ li $v0, 2000 +.L7F08C0A8: +/* 0C0BD8 7F08C0A8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0C0BDC 7F08C0AC 258CA0B0 */ addiu $t4, %lo(pPlayer) # addiu $t4, $t4, -0x5f50 +/* 0C0BE0 7F08C0B0 8D870000 */ lw $a3, ($t4) +/* 0C0BE4 7F08C0B4 8C86000C */ lw $a2, 0xc($a0) +/* 0C0BE8 7F08C0B8 8CEE11E0 */ lw $t6, 0x11e0($a3) +/* 0C0BEC 7F08C0BC 00C02825 */ move $a1, $a2 +/* 0C0BF0 7F08C0C0 50CE0032 */ beql $a2, $t6, .L7F08C18C +/* 0C0BF4 7F08C0C4 8FB00004 */ lw $s0, 4($sp) +.L7F08C0C8: +/* 0C0BF8 7F08C0C8 8CCA0000 */ lw $t2, ($a2) +/* 0C0BFC 7F08C0CC 2408FFFF */ li $t0, -1 +/* 0C0C00 7F08C0D0 2409FFFF */ li $t1, -1 +/* 0C0C04 7F08C0D4 156A0003 */ bne $t3, $t2, .L7F08C0E4 +/* 0C0C08 7F08C0D8 00000000 */ nop +/* 0C0C0C 7F08C0DC 10000009 */ b .L7F08C104 +/* 0C0C10 7F08C0E0 8CC80004 */ lw $t0, 4($a2) +.L7F08C0E4: +/* 0C0C14 7F08C0E4 15AA0004 */ bne $t5, $t2, .L7F08C0F8 +/* 0C0C18 7F08C0E8 00000000 */ nop +/* 0C0C1C 7F08C0EC 8CC80004 */ lw $t0, 4($a2) +/* 0C0C20 7F08C0F0 10000004 */ b .L7F08C104 +/* 0C0C24 7F08C0F4 8CC90008 */ lw $t1, 8($a2) +.L7F08C0F8: +/* 0C0C28 7F08C0F8 560A0003 */ bnel $s0, $t2, .L7F08C108 +/* 0C0C2C 7F08C0FC 0102082A */ slt $at, $t0, $v0 +/* 0C0C30 7F08C100 240803E8 */ li $t0, 1000 +.L7F08C104: +/* 0C0C34 7F08C104 0102082A */ slt $at, $t0, $v0 +.L7F08C108: +/* 0C0C38 7F08C108 54200006 */ bnezl $at, .L7F08C124 +/* 0C0C3C 7F08C10C 8CA6000C */ lw $a2, 0xc($a1) +/* 0C0C40 7F08C110 1448001D */ bne $v0, $t0, .L7F08C188 +/* 0C0C44 7F08C114 0123082A */ slt $at, $t1, $v1 +/* 0C0C48 7F08C118 5020001C */ beql $at, $zero, .L7F08C18C +/* 0C0C4C 7F08C11C 8FB00004 */ lw $s0, 4($sp) +/* 0C0C50 7F08C120 8CA6000C */ lw $a2, 0xc($a1) +.L7F08C124: +/* 0C0C54 7F08C124 54860006 */ bnel $a0, $a2, .L7F08C140 +/* 0C0C58 7F08C128 8C8F0010 */ lw $t7, 0x10($a0) +/* 0C0C5C 7F08C12C ACE511E0 */ sw $a1, 0x11e0($a3) +/* 0C0C60 7F08C130 8D870000 */ lw $a3, ($t4) +/* 0C0C64 7F08C134 10000011 */ b .L7F08C17C +/* 0C0C68 7F08C138 8CE811E0 */ lw $t0, 0x11e0($a3) +/* 0C0C6C 7F08C13C 8C8F0010 */ lw $t7, 0x10($a0) +.L7F08C140: +/* 0C0C70 7F08C140 AC86000C */ sw $a2, 0xc($a0) +/* 0C0C74 7F08C144 ACAF0010 */ sw $t7, 0x10($a1) +/* 0C0C78 7F08C148 AC850010 */ sw $a1, 0x10($a0) +/* 0C0C7C 7F08C14C ACA4000C */ sw $a0, 0xc($a1) +/* 0C0C80 7F08C150 8C98000C */ lw $t8, 0xc($a0) +/* 0C0C84 7F08C154 AF040010 */ sw $a0, 0x10($t8) +/* 0C0C88 7F08C158 8CB90010 */ lw $t9, 0x10($a1) +/* 0C0C8C 7F08C15C AF25000C */ sw $a1, 0xc($t9) +/* 0C0C90 7F08C160 8D870000 */ lw $a3, ($t4) +/* 0C0C94 7F08C164 8CE811E0 */ lw $t0, 0x11e0($a3) +/* 0C0C98 7F08C168 54880005 */ bnel $a0, $t0, .L7F08C180 +/* 0C0C9C 7F08C16C 8C86000C */ lw $a2, 0xc($a0) +/* 0C0CA0 7F08C170 ACE511E0 */ sw $a1, 0x11e0($a3) +/* 0C0CA4 7F08C174 8D870000 */ lw $a3, ($t4) +/* 0C0CA8 7F08C178 8CE811E0 */ lw $t0, 0x11e0($a3) +.L7F08C17C: +/* 0C0CAC 7F08C17C 8C86000C */ lw $a2, 0xc($a0) +.L7F08C180: +/* 0C0CB0 7F08C180 14C8FFD1 */ bne $a2, $t0, .L7F08C0C8 +/* 0C0CB4 7F08C184 00C02825 */ move $a1, $a2 +.L7F08C188: +/* 0C0CB8 7F08C188 8FB00004 */ lw $s0, 4($sp) +.L7F08C18C: +/* 0C0CBC 7F08C18C 03E00008 */ jr $ra +/* 0C0CC0 7F08C190 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + +void add_additional_weapon_slot_to_player_inventory_guess(InvItem *item) { + + if (pPlayer->ptr_inventory_first_in_cycle) { + + item->next = pPlayer->ptr_inventory_first_in_cycle; + item->prev = pPlayer->ptr_inventory_first_in_cycle->prev; + + item->next->prev = item; + item->prev->next = item; + + } + else { + item->next = item; + item->prev = item; + } + + pPlayer->ptr_inventory_first_in_cycle = item; + sub_GAME_7F08C054(item); + return; +} + + +void reorder_inventory_ptrs_based_on_id_code(InvItem *item) { + + InvItem *prev; + InvItem *next; + + next = item->next; + prev = item->prev; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + + if (item == item->next) { + pPlayer->ptr_inventory_first_in_cycle = NULL; + } + else { + pPlayer->ptr_inventory_first_in_cycle = item->next; + } + } + + next->prev = prev; + prev->next = next; + item->type = -1; + return; +} + +InvItem *get_ptr_next_available_weapon(void) +{ + int i; + + for (i = 0; i < pPlayer->equipmaxitems; i++) { + if (pPlayer->p_itemcur[i].type == -1) { + return &pPlayer->p_itemcur[i]; + } + } + + return NULL; +} + + +void set_BONDdata_allguns_flag(s32 all_guns) { + pPlayer->equipallguns = all_guns; +} + +s32 get_BONDdata_allguns_flag(void) { + return pPlayer->equipallguns; +} + + +InvItem *get_ptr_inventory_item(ITEM_IDS weapon) { + + InvItem *first = pPlayer->ptr_inventory_first_in_cycle; + InvItem *item = first; + + while (item) { + + if (item->type == INV_ITEM_WEAPON && item->type_inv_item.type_weap.weapon == weapon) { + return item; + } + + item = item->next; + + if (item == first) { + break; + } + } + + return NULL; +} + + +/** + * Is item in inventory + * @param item: enum Item ID eg: ITEM_KNIFE + * @return TRUE/FALSE + */ +int is_weapon_in_inv(ITEM_IDS item) +{ + return (get_ptr_inventory_item(item) != 0); +} + + +InvItem *get_ptr_inventory_for_item_in_hand(ITEM_IDS right, ITEM_IDS left) { + + InvItem *first = pPlayer->ptr_inventory_first_in_cycle; + InvItem *item = first; + + while (item) { + + if (item->type == INV_ITEM_DUAL && item->type_inv_item.type_dual.weapon_right == right && item->type_inv_item.type_dual.weapon_left == left) { + return item; + } + + item = item->next; + + if (item == first) { + break; + } + } + + return NULL; +} + + +/** + * Is item for hand in inventory + * @param item: enum Item ID eg: ITEM_KNIFE + * @param hand: enum Hand ID eg: HAND_LEFT + * @return TRUE/FALSE + */ +int is_item_for_hand_in_inventory(ITEM_IDS item, int hand) +{ + return (get_ptr_inventory_for_item_in_hand(item, hand) != 0); +} + +int check_if_item_available(ITEM_IDS weaponid) +{ + + if (((pPlayer->equipallguns) && (weaponid != ITEM_UNARMED) && (weaponid < ITEM_BOMBCASE))) + { +#ifdef VERSION_JP + if ((!j_text_trigger || (weaponid != ITEM_KNIFE))) + { + return 1; + } +#else + return 1; +#endif + } + return is_weapon_in_inv(weaponid); +} + + +//Please make me pretty during cleanup phase +s32 check_if_item_for_hand_available(ITEM_IDS item,int hand) +{ +#ifdef VERSION_US + if (((pPlayer->equipallguns && (item < ITEM_BOMBCASE)) && + (item == hand)) && ((get_num_players() == 1 && + (bondwalkItemCheckBitflags(item,0x100000) != 0)))) + { + return 1; + } + return is_item_for_hand_in_inventory(item,hand); +#endif +#ifdef VERSION_JP + if (hand == 0) + { + return 1; + } + else + { + if ((((pPlayer->equipallguns != 0) && (item < ITEM_BOMBCASE)) && + (item == hand)) && (((get_num_players() == 1 && + (bondwalkItemCheckBitflags(item,0x100000) != 0)) && + ((j_text_trigger == 0 || (item != ITEM_KNIFE)))))) + { + return 1; + } + } + return is_item_for_hand_in_inventory(item,hand); +#endif +} + + + +int add_item_to_inventory(ITEM_IDS item) +{ + InvItem *nextItem; + + if (is_weapon_in_inv(item) == 0) + { + nextItem = get_ptr_next_available_weapon(); + if (nextItem) + { + nextItem->type = INV_ITEM_WEAPON; + nextItem->type_inv_item.type_weap.weapon = item; + add_additional_weapon_slot_to_player_inventory_guess(nextItem); + } + + if ((pPlayer->equipallguns) && (item < ITEM_BOMBCASE)) + { +#ifdef VERSION_JP + if ((!j_text_trigger || (item != ITEM_KNIFE))) + { + return FALSE; + } +#else + return FALSE; +#endif + } + return TRUE; + } + return FALSE; +} + + +int add_doubles_item_to_inventory(int right, int left) +{ + InvItem *item; + + if (is_item_for_hand_in_inventory(right, left) == 0) { + + item = get_ptr_next_available_weapon(); + + if (item) { + item->type = INV_ITEM_DUAL; + + item->type_inv_item.type_dual.weapon_right = right; + item->type_inv_item.type_dual.weapon_left = left; + add_additional_weapon_slot_to_player_inventory_guess(item); + } + + return TRUE; + } else { + return FALSE; + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F08C570(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C570 +/* 0C10A0 7F08C570 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C10A4 7F08C574 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C10A8 7F08C578 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C10AC 7F08C57C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C10B0 7F08C580 AFB00018 */ sw $s0, 0x18($sp) +/* 0C10B4 7F08C584 8DC611E0 */ lw $a2, 0x11e0($t6) +/* 0C10B8 7F08C588 00808025 */ move $s0, $a0 +/* 0C10BC 7F08C58C 240A0008 */ li $t2, 8 +/* 0C10C0 7F08C590 10C0001C */ beqz $a2, .L7F08C604 +/* 0C10C4 7F08C594 24090004 */ li $t1, 4 +/* 0C10C8 7F08C598 8CC4000C */ lw $a0, 0xc($a2) +/* 0C10CC 7F08C59C 24080002 */ li $t0, 2 +.L7F08C5A0: +/* 0C10D0 7F08C5A0 8C8F0000 */ lw $t7, ($a0) +/* 0C10D4 7F08C5A4 8C87000C */ lw $a3, 0xc($a0) +/* 0C10D8 7F08C5A8 150F0010 */ bne $t0, $t7, .L7F08C5EC +/* 0C10DC 7F08C5AC 00000000 */ nop +/* 0C10E0 7F08C5B0 8C830004 */ lw $v1, 4($a0) +/* 0C10E4 7F08C5B4 90780000 */ lbu $t8, ($v1) +/* 0C10E8 7F08C5B8 1538000C */ bne $t1, $t8, .L7F08C5EC +/* 0C10EC 7F08C5BC 00000000 */ nop +/* 0C10F0 7F08C5C0 8C650004 */ lw $a1, 4($v1) +/* 0C10F4 7F08C5C4 90B90003 */ lbu $t9, 3($a1) +/* 0C10F8 7F08C5C8 15590008 */ bne $t2, $t9, .L7F08C5EC +/* 0C10FC 7F08C5CC 00000000 */ nop +/* 0C1100 7F08C5D0 80AB0080 */ lb $t3, 0x80($a1) +/* 0C1104 7F08C5D4 160B0005 */ bne $s0, $t3, .L7F08C5EC +/* 0C1108 7F08C5D8 00000000 */ nop +/* 0C110C 7F08C5DC 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C1110 7F08C5E0 AFA50024 */ sw $a1, 0x24($sp) +/* 0C1114 7F08C5E4 10000008 */ b .L7F08C608 +/* 0C1118 7F08C5E8 8FA20024 */ lw $v0, 0x24($sp) +.L7F08C5EC: +/* 0C111C 7F08C5EC 50860006 */ beql $a0, $a2, .L7F08C608 +/* 0C1120 7F08C5F0 00001025 */ move $v0, $zero +/* 0C1124 7F08C5F4 50C00004 */ beql $a2, $zero, .L7F08C608 +/* 0C1128 7F08C5F8 00001025 */ move $v0, $zero +/* 0C112C 7F08C5FC 1000FFE8 */ b .L7F08C5A0 +/* 0C1130 7F08C600 00E02025 */ move $a0, $a3 +.L7F08C604: +/* 0C1134 7F08C604 00001025 */ move $v0, $zero +.L7F08C608: +/* 0C1138 7F08C608 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C113C 7F08C60C 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1140 7F08C610 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0C1144 7F08C614 03E00008 */ jr $ra +/* 0C1148 7F08C618 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08C61C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C61C +/* 0C114C 7F08C61C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C1150 7F08C620 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C1154 7F08C624 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C1158 7F08C628 AFBF0034 */ sw $ra, 0x34($sp) +/* 0C115C 7F08C62C AFB60030 */ sw $s6, 0x30($sp) +/* 0C1160 7F08C630 AFB5002C */ sw $s5, 0x2c($sp) +/* 0C1164 7F08C634 AFB40028 */ sw $s4, 0x28($sp) +/* 0C1168 7F08C638 AFB30024 */ sw $s3, 0x24($sp) +/* 0C116C 7F08C63C AFB20020 */ sw $s2, 0x20($sp) +/* 0C1170 7F08C640 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C1174 7F08C644 AFB00018 */ sw $s0, 0x18($sp) +/* 0C1178 7F08C648 8DC511E0 */ lw $a1, 0x11e0($t6) +/* 0C117C 7F08C64C 00809025 */ move $s2, $a0 +/* 0C1180 7F08C650 24150008 */ li $s5, 8 +/* 0C1184 7F08C654 10A00029 */ beqz $a1, .L7F08C6FC +/* 0C1188 7F08C658 24160001 */ li $s6, 1 +/* 0C118C 7F08C65C 8CB0000C */ lw $s0, 0xc($a1) +/* 0C1190 7F08C660 24140004 */ li $s4, 4 +/* 0C1194 7F08C664 24130002 */ li $s3, 2 +.L7F08C668: +/* 0C1198 7F08C668 8E020000 */ lw $v0, ($s0) +/* 0C119C 7F08C66C 8E11000C */ lw $s1, 0xc($s0) +/* 0C11A0 7F08C670 16620012 */ bne $s3, $v0, .L7F08C6BC +/* 0C11A4 7F08C674 00000000 */ nop +/* 0C11A8 7F08C678 8E030004 */ lw $v1, 4($s0) +/* 0C11AC 7F08C67C 906F0000 */ lbu $t7, ($v1) +/* 0C11B0 7F08C680 168F0018 */ bne $s4, $t7, .L7F08C6E4 +/* 0C11B4 7F08C684 00000000 */ nop +/* 0C11B8 7F08C688 8C640004 */ lw $a0, 4($v1) +/* 0C11BC 7F08C68C 90980003 */ lbu $t8, 3($a0) +/* 0C11C0 7F08C690 16B80014 */ bne $s5, $t8, .L7F08C6E4 +/* 0C11C4 7F08C694 00000000 */ nop +/* 0C11C8 7F08C698 80990080 */ lb $t9, 0x80($a0) +/* 0C11CC 7F08C69C 16590011 */ bne $s2, $t9, .L7F08C6E4 +/* 0C11D0 7F08C6A0 00000000 */ nop +/* 0C11D4 7F08C6A4 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C11D8 7F08C6A8 02002025 */ move $a0, $s0 +/* 0C11DC 7F08C6AC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C11E0 7F08C6B0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C11E4 7F08C6B4 1000000B */ b .L7F08C6E4 +/* 0C11E8 7F08C6B8 8D0511E0 */ lw $a1, 0x11e0($t0) +.L7F08C6BC: +/* 0C11EC 7F08C6BC 16C20009 */ bne $s6, $v0, .L7F08C6E4 +/* 0C11F0 7F08C6C0 00000000 */ nop +/* 0C11F4 7F08C6C4 8E090004 */ lw $t1, 4($s0) +/* 0C11F8 7F08C6C8 16490006 */ bne $s2, $t1, .L7F08C6E4 +/* 0C11FC 7F08C6CC 00000000 */ nop +/* 0C1200 7F08C6D0 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C1204 7F08C6D4 02002025 */ move $a0, $s0 +/* 0C1208 7F08C6D8 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0C120C 7F08C6DC 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0C1210 7F08C6E0 8D4511E0 */ lw $a1, 0x11e0($t2) +.L7F08C6E4: +/* 0C1214 7F08C6E4 52050006 */ beql $s0, $a1, .L7F08C700 +/* 0C1218 7F08C6E8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0C121C 7F08C6EC 50A00004 */ beql $a1, $zero, .L7F08C700 +/* 0C1220 7F08C6F0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0C1224 7F08C6F4 1000FFDC */ b .L7F08C668 +/* 0C1228 7F08C6F8 02208025 */ move $s0, $s1 +.L7F08C6FC: +/* 0C122C 7F08C6FC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F08C700: +/* 0C1230 7F08C700 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1234 7F08C704 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C1238 7F08C708 8FB20020 */ lw $s2, 0x20($sp) +/* 0C123C 7F08C70C 8FB30024 */ lw $s3, 0x24($sp) +/* 0C1240 7F08C710 8FB40028 */ lw $s4, 0x28($sp) +/* 0C1244 7F08C714 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C1248 7F08C718 8FB60030 */ lw $s6, 0x30($sp) +/* 0C124C 7F08C71C 03E00008 */ jr $ra +/* 0C1250 7F08C720 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +int add_prop_to_inventory(PropRecord *prop) { + + InvItem *item; + + item = get_ptr_next_available_weapon(); + + if (item) { + item->type = INV_ITEM_PROP; + item->type_inv_item.type_prop.prop = prop; + add_additional_weapon_slot_to_player_inventory_guess(item); + } + + return TRUE; +} + + +#ifdef NONMATCHING +void sub_GAME_7F08C764(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C764 +/* 0C1294 7F08C764 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C1298 7F08C768 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C129C 7F08C76C AFB00018 */ sw $s0, 0x18($sp) +/* 0C12A0 7F08C770 908E0000 */ lbu $t6, ($a0) +/* 0C12A4 7F08C774 24010004 */ li $at, 4 +/* 0C12A8 7F08C778 00002825 */ move $a1, $zero +/* 0C12AC 7F08C77C 55C10037 */ bnel $t6, $at, .L7F08C85C +/* 0C12B0 7F08C780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C12B4 7F08C784 8C860004 */ lw $a2, 4($a0) +/* 0C12B8 7F08C788 24010008 */ li $at, 8 +/* 0C12BC 7F08C78C 90CF0003 */ lbu $t7, 3($a2) +/* 0C12C0 7F08C790 55E10032 */ bnel $t7, $at, .L7F08C85C +/* 0C12C4 7F08C794 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C12C8 7F08C798 80D00080 */ lb $s0, 0x80($a2) +/* 0C12CC 7F08C79C AFA60024 */ sw $a2, 0x24($sp) +/* 0C12D0 7F08C7A0 0FC23122 */ jal add_item_to_inventory +/* 0C12D4 7F08C7A4 02002025 */ move $a0, $s0 +/* 0C12D8 7F08C7A8 8FA30024 */ lw $v1, 0x24($sp) +/* 0C12DC 7F08C7AC 00402825 */ move $a1, $v0 +/* 0C12E0 7F08C7B0 8C660084 */ lw $a2, 0x84($v1) +/* 0C12E4 7F08C7B4 50C00019 */ beql $a2, $zero, .L7F08C81C +/* 0C12E8 7F08C7B8 80660081 */ lb $a2, 0x81($v1) +/* 0C12EC 7F08C7BC 8C780008 */ lw $t8, 8($v1) +/* 0C12F0 7F08C7C0 02002825 */ move $a1, $s0 +/* 0C12F4 7F08C7C4 02002025 */ move $a0, $s0 +/* 0C12F8 7F08C7C8 0018C8C0 */ sll $t9, $t8, 3 +/* 0C12FC 7F08C7CC 07230008 */ bgezl $t9, .L7F08C7F0 +/* 0C1300 7F08C7D0 80C50080 */ lb $a1, 0x80($a2) +/* 0C1304 7F08C7D4 80C40080 */ lb $a0, 0x80($a2) +/* 0C1308 7F08C7D8 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 0C130C 7F08C7DC AFA30024 */ sw $v1, 0x24($sp) +/* 0C1310 7F08C7E0 8FA30024 */ lw $v1, 0x24($sp) +/* 0C1314 7F08C7E4 10000006 */ b .L7F08C800 +/* 0C1318 7F08C7E8 2C450001 */ sltiu $a1, $v0, 1 +/* 0C131C 7F08C7EC 80C50080 */ lb $a1, 0x80($a2) +.L7F08C7F0: +/* 0C1320 7F08C7F0 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 0C1324 7F08C7F4 AFA30024 */ sw $v1, 0x24($sp) +/* 0C1328 7F08C7F8 8FA30024 */ lw $v1, 0x24($sp) +/* 0C132C 7F08C7FC 2C450001 */ sltiu $a1, $v0, 1 +.L7F08C800: +/* 0C1330 7F08C800 8C680084 */ lw $t0, 0x84($v1) +/* 0C1334 7F08C804 A1100081 */ sb $s0, 0x81($t0) +/* 0C1338 7F08C808 8C690084 */ lw $t1, 0x84($v1) +/* 0C133C 7F08C80C AD200084 */ sw $zero, 0x84($t1) +/* 0C1340 7F08C810 10000011 */ b .L7F08C858 +/* 0C1344 7F08C814 AC600084 */ sw $zero, 0x84($v1) +/* 0C1348 7F08C818 80660081 */ lb $a2, 0x81($v1) +.L7F08C81C: +/* 0C134C 7F08C81C 04C2000F */ bltzl $a2, .L7F08C85C +/* 0C1350 7F08C820 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C1354 7F08C824 8C6A0008 */ lw $t2, 8($v1) +/* 0C1358 7F08C828 02002825 */ move $a1, $s0 +/* 0C135C 7F08C82C 02002025 */ move $a0, $s0 +/* 0C1360 7F08C830 000A58C0 */ sll $t3, $t2, 3 +/* 0C1364 7F08C834 05610005 */ bgez $t3, .L7F08C84C +/* 0C1368 7F08C838 00000000 */ nop +/* 0C136C 7F08C83C 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C1370 7F08C840 00C02025 */ move $a0, $a2 +/* 0C1374 7F08C844 10000004 */ b .L7F08C858 +/* 0C1378 7F08C848 00402825 */ move $a1, $v0 +.L7F08C84C: +/* 0C137C 7F08C84C 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C1380 7F08C850 00C02825 */ move $a1, $a2 +/* 0C1384 7F08C854 00402825 */ move $a1, $v0 +.L7F08C858: +/* 0C1388 7F08C858 8FBF001C */ lw $ra, 0x1c($sp) +.L7F08C85C: +/* 0C138C 7F08C85C 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1390 7F08C860 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C1394 7F08C864 03E00008 */ jr $ra +/* 0C1398 7F08C868 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08C86C(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C86C +/* 0C139C 7F08C86C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C13A0 7F08C870 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C13A4 7F08C874 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C13A8 7F08C878 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C13AC 7F08C87C AFB30020 */ sw $s3, 0x20($sp) +/* 0C13B0 7F08C880 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C13B4 7F08C884 AFB10018 */ sw $s1, 0x18($sp) +/* 0C13B8 7F08C888 AFB00014 */ sw $s0, 0x14($sp) +/* 0C13BC 7F08C88C AFA40028 */ sw $a0, 0x28($sp) +/* 0C13C0 7F08C890 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C13C4 7F08C894 8C7011E0 */ lw $s0, 0x11e0($v1) +/* 0C13C8 7F08C898 00C09025 */ move $s2, $a2 +/* 0C13CC 7F08C89C 8C910000 */ lw $s1, ($a0) +/* 0C13D0 7F08C8A0 1200003D */ beqz $s0, .L7F08C998 +/* 0C13D4 7F08C8A4 8CB30000 */ lw $s3, ($a1) +/* 0C13D8 7F08C8A8 8E020000 */ lw $v0, ($s0) +.L7F08C8AC: +/* 0C13DC 7F08C8AC 24010001 */ li $at, 1 +/* 0C13E0 7F08C8B0 54410013 */ bnel $v0, $at, .L7F08C900 +/* 0C13E4 7F08C8B4 24010003 */ li $at, 3 +/* 0C13E8 7F08C8B8 8E040004 */ lw $a0, 4($s0) +/* 0C13EC 7F08C8BC 28810021 */ slti $at, $a0, 0x21 +/* 0C13F0 7F08C8C0 10200029 */ beqz $at, .L7F08C968 +/* 0C13F4 7F08C8C4 0224082A */ slt $at, $s1, $a0 +/* 0C13F8 7F08C8C8 10200027 */ beqz $at, .L7F08C968 +/* 0C13FC 7F08C8CC 00000000 */ nop +/* 0C1400 7F08C8D0 52400008 */ beql $s2, $zero, .L7F08C8F4 +/* 0C1404 7F08C8D4 00808825 */ move $s1, $a0 +/* 0C1408 7F08C8D8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C140C 7F08C8DC 00000000 */ nop +/* 0C1410 7F08C8E0 10400021 */ beqz $v0, .L7F08C968 +/* 0C1414 7F08C8E4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1418 7F08C8E8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C141C 7F08C8EC 8E040004 */ lw $a0, 4($s0) +/* 0C1420 7F08C8F0 00808825 */ move $s1, $a0 +.L7F08C8F4: +/* 0C1424 7F08C8F4 10000028 */ b .L7F08C998 +/* 0C1428 7F08C8F8 00009825 */ move $s3, $zero +/* 0C142C 7F08C8FC 24010003 */ li $at, 3 +.L7F08C900: +/* 0C1430 7F08C900 14410019 */ bne $v0, $at, .L7F08C968 +/* 0C1434 7F08C904 00000000 */ nop +/* 0C1438 7F08C908 8E040004 */ lw $a0, 4($s0) +/* 0C143C 7F08C90C 0224082A */ slt $at, $s1, $a0 +/* 0C1440 7F08C910 14200007 */ bnez $at, .L7F08C930 +/* 0C1444 7F08C914 00000000 */ nop +/* 0C1448 7F08C918 16240013 */ bne $s1, $a0, .L7F08C968 +/* 0C144C 7F08C91C 00000000 */ nop +/* 0C1450 7F08C920 8E180008 */ lw $t8, 8($s0) +/* 0C1454 7F08C924 0278082A */ slt $at, $s3, $t8 +/* 0C1458 7F08C928 1020000F */ beqz $at, .L7F08C968 +/* 0C145C 7F08C92C 00000000 */ nop +.L7F08C930: +/* 0C1460 7F08C930 12400008 */ beqz $s2, .L7F08C954 +/* 0C1464 7F08C934 00000000 */ nop +/* 0C1468 7F08C938 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C146C 7F08C93C 00000000 */ nop +/* 0C1470 7F08C940 14400004 */ bnez $v0, .L7F08C954 +/* 0C1474 7F08C944 00000000 */ nop +/* 0C1478 7F08C948 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C147C 7F08C94C 8E040008 */ lw $a0, 8($s0) +/* 0C1480 7F08C950 10400005 */ beqz $v0, .L7F08C968 +.L7F08C954: +/* 0C1484 7F08C954 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1488 7F08C958 8E110004 */ lw $s1, 4($s0) +/* 0C148C 7F08C95C 8E130008 */ lw $s3, 8($s0) +/* 0C1490 7F08C960 1000000D */ b .L7F08C998 +/* 0C1494 7F08C964 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08C968: +/* 0C1498 7F08C968 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C149C 7F08C96C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C14A0 7F08C970 8E10000C */ lw $s0, 0xc($s0) +/* 0C14A4 7F08C974 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C14A8 7F08C978 16190005 */ bne $s0, $t9, .L7F08C990 +/* 0C14AC 7F08C97C 00000000 */ nop +/* 0C14B0 7F08C980 56400006 */ bnezl $s2, .L7F08C99C +/* 0C14B4 7F08C984 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C14B8 7F08C988 2411FFFF */ li $s1, -1 +/* 0C14BC 7F08C98C 2413FFFF */ li $s3, -1 +.L7F08C990: +/* 0C14C0 7F08C990 5600FFC6 */ bnezl $s0, .L7F08C8AC +/* 0C14C4 7F08C994 8E020000 */ lw $v0, ($s0) +.L7F08C998: +/* 0C14C8 7F08C998 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08C99C: +/* 0C14CC 7F08C99C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C14D0 7F08C9A0 51000051 */ beql $t0, $zero, .L7F08CAE8 +/* 0C14D4 7F08C9A4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C14D8 7F08C9A8 0FC26919 */ jal get_num_players +/* 0C14DC 7F08C9AC 8D300000 */ lw $s0, ($t1) +/* 0C14E0 7F08C9B0 24010001 */ li $at, 1 +/* 0C14E4 7F08C9B4 5441001E */ bnel $v0, $at, .L7F08CA30 +/* 0C14E8 7F08C9B8 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C14EC 7F08C9BC 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C14F0 7F08C9C0 3C050010 */ lui $a1, 0x10 +/* 0C14F4 7F08C9C4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C14F8 7F08C9C8 8D440000 */ lw $a0, ($t2) +/* 0C14FC 7F08C9CC 50400018 */ beql $v0, $zero, .L7F08CA30 +/* 0C1500 7F08C9D0 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1504 7F08C9D4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C1508 7F08C9D8 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C150C 7F08C9DC 8D640000 */ lw $a0, ($t3) +/* 0C1510 7F08C9E0 8D8D0000 */ lw $t5, ($t4) +/* 0C1514 7F08C9E4 01A4082A */ slt $at, $t5, $a0 +/* 0C1518 7F08C9E8 50200011 */ beql $at, $zero, .L7F08CA30 +/* 0C151C 7F08C9EC 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1520 7F08C9F0 12400007 */ beqz $s2, .L7F08CA10 +/* 0C1524 7F08C9F4 00000000 */ nop +/* 0C1528 7F08C9F8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C152C 7F08C9FC 00000000 */ nop +/* 0C1530 7F08CA00 5040000B */ beql $v0, $zero, .L7F08CA30 +/* 0C1534 7F08CA04 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1538 7F08CA08 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C153C 7F08CA0C 8DC40000 */ lw $a0, ($t6) +.L7F08CA10: +/* 0C1540 7F08CA10 16240003 */ bne $s1, $a0, .L7F08CA20 +/* 0C1544 7F08CA14 0093082A */ slt $at, $a0, $s3 +/* 0C1548 7F08CA18 50200005 */ beql $at, $zero, .L7F08CA30 +/* 0C154C 7F08CA1C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA20: +/* 0C1550 7F08CA20 00808825 */ move $s1, $a0 +/* 0C1554 7F08CA24 1000002F */ b .L7F08CAE4 +/* 0C1558 7F08CA28 00809825 */ move $s3, $a0 +/* 0C155C 7F08CA2C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA30: +/* 0C1560 7F08CA30 24030021 */ li $v1, 33 +/* 0C1564 7F08CA34 8DF80000 */ lw $t8, ($t7) +/* 0C1568 7F08CA38 16380005 */ bne $s1, $t8, .L7F08CA50 +/* 0C156C 7F08CA3C 00000000 */ nop +/* 0C1570 7F08CA40 8FB9002C */ lw $t9, 0x2c($sp) +/* 0C1574 7F08CA44 8F280000 */ lw $t0, ($t9) +/* 0C1578 7F08CA48 56680027 */ bnel $s3, $t0, .L7F08CAE8 +/* 0C157C 7F08CA4C 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CA50: +/* 0C1580 7F08CA50 26090001 */ addiu $t1, $s0, 1 +.L7F08CA54: +/* 0C1584 7F08CA54 0123001A */ div $zero, $t1, $v1 +/* 0C1588 7F08CA58 00008010 */ mfhi $s0 +/* 0C158C 7F08CA5C 260A0001 */ addiu $t2, $s0, 1 +/* 0C1590 7F08CA60 14600002 */ bnez $v1, .L7F08CA6C +/* 0C1594 7F08CA64 00000000 */ nop +/* 0C1598 7F08CA68 0007000D */ break 7 +.L7F08CA6C: +/* 0C159C 7F08CA6C 2401FFFF */ li $at, -1 +/* 0C15A0 7F08CA70 14610004 */ bne $v1, $at, .L7F08CA84 +/* 0C15A4 7F08CA74 3C018000 */ lui $at, 0x8000 +/* 0C15A8 7F08CA78 15210002 */ bne $t1, $at, .L7F08CA84 +/* 0C15AC 7F08CA7C 00000000 */ nop +/* 0C15B0 7F08CA80 0006000D */ break 6 +.L7F08CA84: +/* 0C15B4 7F08CA84 1600000C */ bnez $s0, .L7F08CAB8 +/* 0C15B8 7F08CA88 00000000 */ nop +/* 0C15BC 7F08CA8C 0143001A */ div $zero, $t2, $v1 +/* 0C15C0 7F08CA90 00008010 */ mfhi $s0 +/* 0C15C4 7F08CA94 14600002 */ bnez $v1, .L7F08CAA0 +/* 0C15C8 7F08CA98 00000000 */ nop +/* 0C15CC 7F08CA9C 0007000D */ break 7 +.L7F08CAA0: +/* 0C15D0 7F08CAA0 2401FFFF */ li $at, -1 +/* 0C15D4 7F08CAA4 14610004 */ bne $v1, $at, .L7F08CAB8 +/* 0C15D8 7F08CAA8 3C018000 */ lui $at, 0x8000 +/* 0C15DC 7F08CAAC 15410002 */ bne $t2, $at, .L7F08CAB8 +/* 0C15E0 7F08CAB0 00000000 */ nop +/* 0C15E4 7F08CAB4 0006000D */ break 6 +.L7F08CAB8: +/* 0C15E8 7F08CAB8 52400006 */ beql $s2, $zero, .L7F08CAD4 +/* 0C15EC 7F08CABC 02008825 */ move $s1, $s0 +/* 0C15F0 7F08CAC0 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C15F4 7F08CAC4 02002025 */ move $a0, $s0 +/* 0C15F8 7F08CAC8 10400004 */ beqz $v0, .L7F08CADC +/* 0C15FC 7F08CACC 24030021 */ li $v1, 33 +/* 0C1600 7F08CAD0 02008825 */ move $s1, $s0 +.L7F08CAD4: +/* 0C1604 7F08CAD4 10000003 */ b .L7F08CAE4 +/* 0C1608 7F08CAD8 00009825 */ move $s3, $zero +.L7F08CADC: +/* 0C160C 7F08CADC 5611FFDD */ bnel $s0, $s1, .L7F08CA54 +/* 0C1610 7F08CAE0 26090001 */ addiu $t1, $s0, 1 +.L7F08CAE4: +/* 0C1614 7F08CAE4 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CAE8: +/* 0C1618 7F08CAE8 AD710000 */ sw $s1, ($t3) +/* 0C161C 7F08CAEC 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C1620 7F08CAF0 AD930000 */ sw $s3, ($t4) +/* 0C1624 7F08CAF4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1628 7F08CAF8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C162C 7F08CAFC 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1630 7F08CB00 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1634 7F08CB04 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1638 7F08CB08 03E00008 */ jr $ra +/* 0C163C 7F08CB0C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C86C +/* 0C1CD4 7F08D164 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1CD8 7F08D168 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1CDC 7F08D16C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1CE0 7F08D170 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1CE4 7F08D174 AFB30020 */ sw $s3, 0x20($sp) +/* 0C1CE8 7F08D178 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1CEC 7F08D17C AFB10018 */ sw $s1, 0x18($sp) +/* 0C1CF0 7F08D180 AFB00014 */ sw $s0, 0x14($sp) +/* 0C1CF4 7F08D184 AFA40028 */ sw $a0, 0x28($sp) +/* 0C1CF8 7F08D188 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1CFC 7F08D18C 8C7011E0 */ lw $s0, 0x11e0($v1) +/* 0C1D00 7F08D190 00C09025 */ move $s2, $a2 +/* 0C1D04 7F08D194 8C910000 */ lw $s1, ($a0) +/* 0C1D08 7F08D198 1200003D */ beqz $s0, .Ljp7F08D290 +/* 0C1D0C 7F08D19C 8CB30000 */ lw $s3, ($a1) +/* 0C1D10 7F08D1A0 8E020000 */ lw $v0, ($s0) +.Ljp7F08D1A4: +/* 0C1D14 7F08D1A4 24010001 */ li $at, 1 +/* 0C1D18 7F08D1A8 54410013 */ bnel $v0, $at, .Ljp7F08D1F8 +/* 0C1D1C 7F08D1AC 24010003 */ li $at, 3 +/* 0C1D20 7F08D1B0 8E040004 */ lw $a0, 4($s0) +/* 0C1D24 7F08D1B4 28810021 */ slti $at, $a0, 0x21 +/* 0C1D28 7F08D1B8 10200029 */ beqz $at, .Ljp7F08D260 +/* 0C1D2C 7F08D1BC 0224082A */ slt $at, $s1, $a0 +/* 0C1D30 7F08D1C0 10200027 */ beqz $at, .Ljp7F08D260 +/* 0C1D34 7F08D1C4 00000000 */ nop +/* 0C1D38 7F08D1C8 52400008 */ beql $s2, $zero, .Ljp7F08D1EC +/* 0C1D3C 7F08D1CC 00808825 */ move $s1, $a0 +/* 0C1D40 7F08D1D0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1D44 7F08D1D4 00000000 */ nop +/* 0C1D48 7F08D1D8 10400021 */ beqz $v0, .Ljp7F08D260 +/* 0C1D4C 7F08D1DC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1D50 7F08D1E0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1D54 7F08D1E4 8E040004 */ lw $a0, 4($s0) +/* 0C1D58 7F08D1E8 00808825 */ move $s1, $a0 +.Ljp7F08D1EC: +/* 0C1D5C 7F08D1EC 10000028 */ b .Ljp7F08D290 +/* 0C1D60 7F08D1F0 00009825 */ move $s3, $zero +/* 0C1D64 7F08D1F4 24010003 */ li $at, 3 +.Ljp7F08D1F8: +/* 0C1D68 7F08D1F8 14410019 */ bne $v0, $at, .Ljp7F08D260 +/* 0C1D6C 7F08D1FC 00000000 */ nop +/* 0C1D70 7F08D200 8E040004 */ lw $a0, 4($s0) +/* 0C1D74 7F08D204 0224082A */ slt $at, $s1, $a0 +/* 0C1D78 7F08D208 14200007 */ bnez $at, .Ljp7F08D228 +/* 0C1D7C 7F08D20C 00000000 */ nop +/* 0C1D80 7F08D210 16240013 */ bne $s1, $a0, .Ljp7F08D260 +/* 0C1D84 7F08D214 00000000 */ nop +/* 0C1D88 7F08D218 8E180008 */ lw $t8, 8($s0) +/* 0C1D8C 7F08D21C 0278082A */ slt $at, $s3, $t8 +/* 0C1D90 7F08D220 1020000F */ beqz $at, .Ljp7F08D260 +/* 0C1D94 7F08D224 00000000 */ nop +.Ljp7F08D228: +/* 0C1D98 7F08D228 12400008 */ beqz $s2, .Ljp7F08D24C +/* 0C1D9C 7F08D22C 00000000 */ nop +/* 0C1DA0 7F08D230 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1DA4 7F08D234 00000000 */ nop +/* 0C1DA8 7F08D238 14400004 */ bnez $v0, .Ljp7F08D24C +/* 0C1DAC 7F08D23C 00000000 */ nop +/* 0C1DB0 7F08D240 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1DB4 7F08D244 8E040008 */ lw $a0, 8($s0) +/* 0C1DB8 7F08D248 10400005 */ beqz $v0, .Ljp7F08D260 +.Ljp7F08D24C: +/* 0C1DBC 7F08D24C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1DC0 7F08D250 8E110004 */ lw $s1, 4($s0) +/* 0C1DC4 7F08D254 8E130008 */ lw $s3, 8($s0) +/* 0C1DC8 7F08D258 1000000D */ b .Ljp7F08D290 +/* 0C1DCC 7F08D25C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F08D260: +/* 0C1DD0 7F08D260 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1DD4 7F08D264 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1DD8 7F08D268 8E10000C */ lw $s0, 0xc($s0) +/* 0C1DDC 7F08D26C 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C1DE0 7F08D270 16190005 */ bne $s0, $t9, .Ljp7F08D288 +/* 0C1DE4 7F08D274 00000000 */ nop +/* 0C1DE8 7F08D278 56400006 */ bnezl $s2, .Ljp7F08D294 +/* 0C1DEC 7F08D27C 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C1DF0 7F08D280 2411FFFF */ li $s1, -1 +/* 0C1DF4 7F08D284 2413FFFF */ li $s3, -1 +.Ljp7F08D288: +/* 0C1DF8 7F08D288 5600FFC6 */ bnezl $s0, .Ljp7F08D1A4 +/* 0C1DFC 7F08D28C 8E020000 */ lw $v0, ($s0) +.Ljp7F08D290: +/* 0C1E00 7F08D290 8C6811EC */ lw $t0, 0x11ec($v1) +.Ljp7F08D294: +/* 0C1E04 7F08D294 8FA90028 */ lw $t1, 0x28($sp) +/* 0C1E08 7F08D298 5100005E */ beql $t0, $zero, .Ljp7F08D414 +/* 0C1E0C 7F08D29C 8FAD0028 */ lw $t5, 0x28($sp) +/* 0C1E10 7F08D2A0 0FC26C01 */ jal get_num_players +/* 0C1E14 7F08D2A4 8D300000 */ lw $s0, ($t1) +/* 0C1E18 7F08D2A8 24010001 */ li $at, 1 +/* 0C1E1C 7F08D2AC 14410023 */ bne $v0, $at, .Ljp7F08D33C +/* 0C1E20 7F08D2B0 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C1E24 7F08D2B4 8D440000 */ lw $a0, ($t2) +/* 0C1E28 7F08D2B8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C1E2C 7F08D2BC 3C050010 */ lui $a1, 0x10 +/* 0C1E30 7F08D2C0 5040001F */ beql $v0, $zero, .Ljp7F08D340 +/* 0C1E34 7F08D2C4 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E38 7F08D2C8 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C1E3C 7F08D2CC 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C1E40 7F08D2D0 8D640000 */ lw $a0, ($t3) +/* 0C1E44 7F08D2D4 8D8D0000 */ lw $t5, ($t4) +/* 0C1E48 7F08D2D8 01A4082A */ slt $at, $t5, $a0 +/* 0C1E4C 7F08D2DC 50200018 */ beql $at, $zero, .Ljp7F08D340 +/* 0C1E50 7F08D2E0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E54 7F08D2E4 12400007 */ beqz $s2, .Ljp7F08D304 +/* 0C1E58 7F08D2E8 00000000 */ nop +/* 0C1E5C 7F08D2EC 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1E60 7F08D2F0 00000000 */ nop +/* 0C1E64 7F08D2F4 50400012 */ beql $v0, $zero, .Ljp7F08D340 +/* 0C1E68 7F08D2F8 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E6C 7F08D2FC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1E70 7F08D300 8DC40000 */ lw $a0, ($t6) +.Ljp7F08D304: +/* 0C1E74 7F08D304 16240003 */ bne $s1, $a0, .Ljp7F08D314 +/* 0C1E78 7F08D308 0093082A */ slt $at, $a0, $s3 +/* 0C1E7C 7F08D30C 5020000C */ beql $at, $zero, .Ljp7F08D340 +/* 0C1E80 7F08D310 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D314: +/* 0C1E84 7F08D314 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0C1E88 7F08D318 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0C1E8C 7F08D31C 24010002 */ li $at, 2 +/* 0C1E90 7F08D320 51E00004 */ beql $t7, $zero, .Ljp7F08D334 +/* 0C1E94 7F08D324 00808825 */ move $s1, $a0 +/* 0C1E98 7F08D328 50810005 */ beql $a0, $at, .Ljp7F08D340 +/* 0C1E9C 7F08D32C 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1EA0 7F08D330 00808825 */ move $s1, $a0 +.Ljp7F08D334: +/* 0C1EA4 7F08D334 10000036 */ b .Ljp7F08D410 +/* 0C1EA8 7F08D338 00809825 */ move $s3, $a0 +.Ljp7F08D33C: +/* 0C1EAC 7F08D33C 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D340: +/* 0C1EB0 7F08D340 24030021 */ li $v1, 33 +/* 0C1EB4 7F08D344 8F190000 */ lw $t9, ($t8) +/* 0C1EB8 7F08D348 16390005 */ bne $s1, $t9, .Ljp7F08D360 +/* 0C1EBC 7F08D34C 00000000 */ nop +/* 0C1EC0 7F08D350 8FA8002C */ lw $t0, 0x2c($sp) +/* 0C1EC4 7F08D354 8D090000 */ lw $t1, ($t0) +/* 0C1EC8 7F08D358 5669002E */ bnel $s3, $t1, .Ljp7F08D414 +/* 0C1ECC 7F08D35C 8FAD0028 */ lw $t5, 0x28($sp) +.Ljp7F08D360: +/* 0C1ED0 7F08D360 260A0001 */ addiu $t2, $s0, 1 +.Ljp7F08D364: +/* 0C1ED4 7F08D364 0143001A */ div $zero, $t2, $v1 +/* 0C1ED8 7F08D368 00008010 */ mfhi $s0 +/* 0C1EDC 7F08D36C 14600002 */ bnez $v1, .Ljp7F08D378 +/* 0C1EE0 7F08D370 00000000 */ nop +/* 0C1EE4 7F08D374 0007000D */ break 7 +.Ljp7F08D378: +/* 0C1EE8 7F08D378 2401FFFF */ li $at, -1 +/* 0C1EEC 7F08D37C 14610004 */ bne $v1, $at, .Ljp7F08D390 +/* 0C1EF0 7F08D380 3C018000 */ lui $at, 0x8000 +/* 0C1EF4 7F08D384 15410002 */ bne $t2, $at, .Ljp7F08D390 +/* 0C1EF8 7F08D388 00000000 */ nop +/* 0C1EFC 7F08D38C 0006000D */ break 6 +.Ljp7F08D390: +/* 0C1F00 7F08D390 1600000D */ bnez $s0, .Ljp7F08D3C8 +/* 0C1F04 7F08D394 00000000 */ nop +/* 0C1F08 7F08D398 260B0001 */ addiu $t3, $s0, 1 +/* 0C1F0C 7F08D39C 0163001A */ div $zero, $t3, $v1 +/* 0C1F10 7F08D3A0 00008010 */ mfhi $s0 +/* 0C1F14 7F08D3A4 14600002 */ bnez $v1, .Ljp7F08D3B0 +/* 0C1F18 7F08D3A8 00000000 */ nop +/* 0C1F1C 7F08D3AC 0007000D */ break 7 +.Ljp7F08D3B0: +/* 0C1F20 7F08D3B0 2401FFFF */ li $at, -1 +/* 0C1F24 7F08D3B4 14610004 */ bne $v1, $at, .Ljp7F08D3C8 +/* 0C1F28 7F08D3B8 3C018000 */ lui $at, 0x8000 +/* 0C1F2C 7F08D3BC 15610002 */ bne $t3, $at, .Ljp7F08D3C8 +/* 0C1F30 7F08D3C0 00000000 */ nop +/* 0C1F34 7F08D3C4 0006000D */ break 6 +.Ljp7F08D3C8: +/* 0C1F38 7F08D3C8 12400005 */ beqz $s2, .Ljp7F08D3E0 +/* 0C1F3C 7F08D3CC 00000000 */ nop +/* 0C1F40 7F08D3D0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1F44 7F08D3D4 02002025 */ move $a0, $s0 +/* 0C1F48 7F08D3D8 1040000B */ beqz $v0, .Ljp7F08D408 +/* 0C1F4C 7F08D3DC 24030021 */ li $v1, 33 +.Ljp7F08D3E0: +/* 0C1F50 7F08D3E0 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0C1F54 7F08D3E4 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0C1F58 7F08D3E8 24010002 */ li $at, 2 +/* 0C1F5C 7F08D3EC 51800004 */ beql $t4, $zero, .Ljp7F08D400 +/* 0C1F60 7F08D3F0 02008825 */ move $s1, $s0 +/* 0C1F64 7F08D3F4 12010004 */ beq $s0, $at, .Ljp7F08D408 +/* 0C1F68 7F08D3F8 00000000 */ nop +/* 0C1F6C 7F08D3FC 02008825 */ move $s1, $s0 +.Ljp7F08D400: +/* 0C1F70 7F08D400 10000003 */ b .Ljp7F08D410 +/* 0C1F74 7F08D404 00009825 */ move $s3, $zero +.Ljp7F08D408: +/* 0C1F78 7F08D408 5611FFD6 */ bnel $s0, $s1, .Ljp7F08D364 +/* 0C1F7C 7F08D40C 260A0001 */ addiu $t2, $s0, 1 +.Ljp7F08D410: +/* 0C1F80 7F08D410 8FAD0028 */ lw $t5, 0x28($sp) +.Ljp7F08D414: +/* 0C1F84 7F08D414 ADB10000 */ sw $s1, ($t5) +/* 0C1F88 7F08D418 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C1F8C 7F08D41C ADD30000 */ sw $s3, ($t6) +/* 0C1F90 7F08D420 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1F94 7F08D424 8FB30020 */ lw $s3, 0x20($sp) +/* 0C1F98 7F08D428 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1F9C 7F08D42C 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1FA0 7F08D430 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1FA4 7F08D434 03E00008 */ jr $ra +/* 0C1FA8 7F08D438 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08CB10(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CB10 +/* 0C1640 7F08CB10 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1644 7F08CB14 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1648 7F08CB18 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C164C 7F08CB1C AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1650 7F08CB20 AFB30020 */ sw $s3, 0x20($sp) +/* 0C1654 7F08CB24 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1658 7F08CB28 AFB10018 */ sw $s1, 0x18($sp) +/* 0C165C 7F08CB2C AFB00014 */ sw $s0, 0x14($sp) +/* 0C1660 7F08CB30 AFA40028 */ sw $a0, 0x28($sp) +/* 0C1664 7F08CB34 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1668 7F08CB38 8C6211E0 */ lw $v0, 0x11e0($v1) +/* 0C166C 7F08CB3C 00C09025 */ move $s2, $a2 +/* 0C1670 7F08CB40 8C910000 */ lw $s1, ($a0) +/* 0C1674 7F08CB44 00807025 */ move $t6, $a0 +/* 0C1678 7F08CB48 8CB30000 */ lw $s3, ($a1) +/* 0C167C 7F08CB4C 10400042 */ beqz $v0, .L7F08CC58 +/* 0C1680 7F08CB50 00A07825 */ move $t7, $a1 +/* 0C1684 7F08CB54 8C500010 */ lw $s0, 0x10($v0) +.L7F08CB58: +/* 0C1688 7F08CB58 8E020000 */ lw $v0, ($s0) +/* 0C168C 7F08CB5C 24010001 */ li $at, 1 +/* 0C1690 7F08CB60 54410018 */ bnel $v0, $at, .L7F08CBC4 +/* 0C1694 7F08CB64 24010003 */ li $at, 3 +/* 0C1698 7F08CB68 8E040004 */ lw $a0, 4($s0) +/* 0C169C 7F08CB6C 28810021 */ slti $at, $a0, 0x21 +/* 0C16A0 7F08CB70 1020002E */ beqz $at, .L7F08CC2C +/* 0C16A4 7F08CB74 00000000 */ nop +/* 0C16A8 7F08CB78 0091082A */ slt $at, $a0, $s1 +/* 0C16AC 7F08CB7C 14200005 */ bnez $at, .L7F08CB94 +/* 0C16B0 7F08CB80 00000000 */ nop +/* 0C16B4 7F08CB84 16240029 */ bne $s1, $a0, .L7F08CC2C +/* 0C16B8 7F08CB88 00000000 */ nop +/* 0C16BC 7F08CB8C 1A600027 */ blez $s3, .L7F08CC2C +/* 0C16C0 7F08CB90 00000000 */ nop +.L7F08CB94: +/* 0C16C4 7F08CB94 52400008 */ beql $s2, $zero, .L7F08CBB8 +/* 0C16C8 7F08CB98 00808825 */ move $s1, $a0 +/* 0C16CC 7F08CB9C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C16D0 7F08CBA0 00000000 */ nop +/* 0C16D4 7F08CBA4 10400021 */ beqz $v0, .L7F08CC2C +/* 0C16D8 7F08CBA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C16DC 7F08CBAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C16E0 7F08CBB0 8E040004 */ lw $a0, 4($s0) +/* 0C16E4 7F08CBB4 00808825 */ move $s1, $a0 +.L7F08CBB8: +/* 0C16E8 7F08CBB8 10000027 */ b .L7F08CC58 +/* 0C16EC 7F08CBBC 00009825 */ move $s3, $zero +/* 0C16F0 7F08CBC0 24010003 */ li $at, 3 +.L7F08CBC4: +/* 0C16F4 7F08CBC4 14410019 */ bne $v0, $at, .L7F08CC2C +/* 0C16F8 7F08CBC8 00000000 */ nop +/* 0C16FC 7F08CBCC 8E040004 */ lw $a0, 4($s0) +/* 0C1700 7F08CBD0 0091082A */ slt $at, $a0, $s1 +/* 0C1704 7F08CBD4 14200007 */ bnez $at, .L7F08CBF4 +/* 0C1708 7F08CBD8 00000000 */ nop +/* 0C170C 7F08CBDC 16240013 */ bne $s1, $a0, .L7F08CC2C +/* 0C1710 7F08CBE0 00000000 */ nop +/* 0C1714 7F08CBE4 8E180008 */ lw $t8, 8($s0) +/* 0C1718 7F08CBE8 0313082A */ slt $at, $t8, $s3 +/* 0C171C 7F08CBEC 1020000F */ beqz $at, .L7F08CC2C +/* 0C1720 7F08CBF0 00000000 */ nop +.L7F08CBF4: +/* 0C1724 7F08CBF4 12400008 */ beqz $s2, .L7F08CC18 +/* 0C1728 7F08CBF8 00000000 */ nop +/* 0C172C 7F08CBFC 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1730 7F08CC00 00000000 */ nop +/* 0C1734 7F08CC04 14400004 */ bnez $v0, .L7F08CC18 +/* 0C1738 7F08CC08 00000000 */ nop +/* 0C173C 7F08CC0C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1740 7F08CC10 8E040008 */ lw $a0, 8($s0) +/* 0C1744 7F08CC14 10400005 */ beqz $v0, .L7F08CC2C +.L7F08CC18: +/* 0C1748 7F08CC18 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C174C 7F08CC1C 8E110004 */ lw $s1, 4($s0) +/* 0C1750 7F08CC20 8E130008 */ lw $s3, 8($s0) +/* 0C1754 7F08CC24 1000000C */ b .L7F08CC58 +/* 0C1758 7F08CC28 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08CC2C: +/* 0C175C 7F08CC2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1760 7F08CC30 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1764 7F08CC34 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C1768 7F08CC38 16190005 */ bne $s0, $t9, .L7F08CC50 +/* 0C176C 7F08CC3C 00000000 */ nop +/* 0C1770 7F08CC40 56400006 */ bnezl $s2, .L7F08CC5C +/* 0C1774 7F08CC44 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C1778 7F08CC48 241103E8 */ li $s1, 1000 +/* 0C177C 7F08CC4C 241303E8 */ li $s3, 1000 +.L7F08CC50: +/* 0C1780 7F08CC50 1000FFC1 */ b .L7F08CB58 +/* 0C1784 7F08CC54 8E100010 */ lw $s0, 0x10($s0) +.L7F08CC58: +/* 0C1788 7F08CC58 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08CC5C: +/* 0C178C 7F08CC5C 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C1790 7F08CC60 51000079 */ beql $t0, $zero, .L7F08CE48 +/* 0C1794 7F08CC64 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1798 7F08CC68 8D4B0000 */ lw $t3, ($t2) +/* 0C179C 7F08CC6C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C17A0 7F08CC70 24030021 */ li $v1, 33 +/* 0C17A4 7F08CC74 1560001B */ bnez $t3, .L7F08CCE4 +/* 0C17A8 7F08CC78 8D300000 */ lw $s0, ($t1) +/* 0C17AC 7F08CC7C 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C17B0 7F08CC80 0183001A */ div $zero, $t4, $v1 +/* 0C17B4 7F08CC84 00008010 */ mfhi $s0 +/* 0C17B8 7F08CC88 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C17BC 7F08CC8C 14600002 */ bnez $v1, .L7F08CC98 +/* 0C17C0 7F08CC90 00000000 */ nop +/* 0C17C4 7F08CC94 0007000D */ break 7 +.L7F08CC98: +/* 0C17C8 7F08CC98 2401FFFF */ li $at, -1 +/* 0C17CC 7F08CC9C 14610004 */ bne $v1, $at, .L7F08CCB0 +/* 0C17D0 7F08CCA0 3C018000 */ lui $at, 0x8000 +/* 0C17D4 7F08CCA4 15810002 */ bne $t4, $at, .L7F08CCB0 +/* 0C17D8 7F08CCA8 00000000 */ nop +/* 0C17DC 7F08CCAC 0006000D */ break 6 +.L7F08CCB0: +/* 0C17E0 7F08CCB0 1600000C */ bnez $s0, .L7F08CCE4 +/* 0C17E4 7F08CCB4 00000000 */ nop +/* 0C17E8 7F08CCB8 01A3001A */ div $zero, $t5, $v1 +/* 0C17EC 7F08CCBC 00008010 */ mfhi $s0 +/* 0C17F0 7F08CCC0 14600002 */ bnez $v1, .L7F08CCCC +/* 0C17F4 7F08CCC4 00000000 */ nop +/* 0C17F8 7F08CCC8 0007000D */ break 7 +.L7F08CCCC: +/* 0C17FC 7F08CCCC 2401FFFF */ li $at, -1 +/* 0C1800 7F08CCD0 14610004 */ bne $v1, $at, .L7F08CCE4 +/* 0C1804 7F08CCD4 3C018000 */ lui $at, 0x8000 +/* 0C1808 7F08CCD8 15A10002 */ bne $t5, $at, .L7F08CCE4 +/* 0C180C 7F08CCDC 00000000 */ nop +/* 0C1810 7F08CCE0 0006000D */ break 6 +.L7F08CCE4: +/* 0C1814 7F08CCE4 1611001E */ bne $s0, $s1, .L7F08CD60 +/* 0C1818 7F08CCE8 00000000 */ nop +/* 0C181C 7F08CCEC 0FC26919 */ jal get_num_players +/* 0C1820 7F08CCF0 00000000 */ nop +/* 0C1824 7F08CCF4 24010001 */ li $at, 1 +/* 0C1828 7F08CCF8 14410052 */ bne $v0, $at, .L7F08CE44 +/* 0C182C 7F08CCFC 02002025 */ move $a0, $s0 +/* 0C1830 7F08CD00 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C1834 7F08CD04 3C050010 */ lui $a1, 0x10 +/* 0C1838 7F08CD08 5040004F */ beql $v0, $zero, .L7F08CE48 +/* 0C183C 7F08CD0C 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1840 7F08CD10 52400006 */ beql $s2, $zero, .L7F08CD2C +/* 0C1844 7F08CD14 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1848 7F08CD18 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C184C 7F08CD1C 02002025 */ move $a0, $s0 +/* 0C1850 7F08CD20 50400049 */ beql $v0, $zero, .L7F08CE48 +/* 0C1854 7F08CD24 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1858 7F08CD28 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CD2C: +/* 0C185C 7F08CD2C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0C1860 7F08CD30 8DCF0000 */ lw $t7, ($t6) +/* 0C1864 7F08CD34 560F0005 */ bnel $s0, $t7, .L7F08CD4C +/* 0C1868 7F08CD38 0270082A */ slt $at, $s3, $s0 +/* 0C186C 7F08CD3C 8F190000 */ lw $t9, ($t8) +/* 0C1870 7F08CD40 0219082A */ slt $at, $s0, $t9 +/* 0C1874 7F08CD44 1020003F */ beqz $at, .L7F08CE44 +/* 0C1878 7F08CD48 0270082A */ slt $at, $s3, $s0 +.L7F08CD4C: +/* 0C187C 7F08CD4C 5020003E */ beql $at, $zero, .L7F08CE48 +/* 0C1880 7F08CD50 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1884 7F08CD54 02008825 */ move $s1, $s0 +/* 0C1888 7F08CD58 1000003A */ b .L7F08CE44 +/* 0C188C 7F08CD5C 02009825 */ move $s3, $s0 +.L7F08CD60: +/* 0C1890 7F08CD60 12400005 */ beqz $s2, .L7F08CD78 +/* 0C1894 7F08CD64 00000000 */ nop +/* 0C1898 7F08CD68 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C189C 7F08CD6C 02002025 */ move $a0, $s0 +/* 0C18A0 7F08CD70 10400018 */ beqz $v0, .L7F08CDD4 +/* 0C18A4 7F08CD74 24030021 */ li $v1, 33 +.L7F08CD78: +/* 0C18A8 7F08CD78 0FC26919 */ jal get_num_players +/* 0C18AC 7F08CD7C 00000000 */ nop +/* 0C18B0 7F08CD80 24010001 */ li $at, 1 +/* 0C18B4 7F08CD84 14410010 */ bne $v0, $at, .L7F08CDC8 +/* 0C18B8 7F08CD88 02002025 */ move $a0, $s0 +/* 0C18BC 7F08CD8C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C18C0 7F08CD90 3C050010 */ lui $a1, 0x10 +/* 0C18C4 7F08CD94 1040000C */ beqz $v0, .L7F08CDC8 +/* 0C18C8 7F08CD98 8FA80028 */ lw $t0, 0x28($sp) +/* 0C18CC 7F08CD9C 8D090000 */ lw $t1, ($t0) +/* 0C18D0 7F08CDA0 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C18D4 7F08CDA4 02008825 */ move $s1, $s0 +/* 0C18D8 7F08CDA8 16090005 */ bne $s0, $t1, .L7F08CDC0 +/* 0C18DC 7F08CDAC 00000000 */ nop +/* 0C18E0 7F08CDB0 8D4B0000 */ lw $t3, ($t2) +/* 0C18E4 7F08CDB4 020B082A */ slt $at, $s0, $t3 +/* 0C18E8 7F08CDB8 50200004 */ beql $at, $zero, .L7F08CDCC +/* 0C18EC 7F08CDBC 02008825 */ move $s1, $s0 +.L7F08CDC0: +/* 0C18F0 7F08CDC0 10000020 */ b .L7F08CE44 +/* 0C18F4 7F08CDC4 02009825 */ move $s3, $s0 +.L7F08CDC8: +/* 0C18F8 7F08CDC8 02008825 */ move $s1, $s0 +.L7F08CDCC: +/* 0C18FC 7F08CDCC 1000001D */ b .L7F08CE44 +/* 0C1900 7F08CDD0 00009825 */ move $s3, $zero +.L7F08CDD4: +/* 0C1904 7F08CDD4 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C1908 7F08CDD8 0183001A */ div $zero, $t4, $v1 +/* 0C190C 7F08CDDC 00008010 */ mfhi $s0 +/* 0C1910 7F08CDE0 14600002 */ bnez $v1, .L7F08CDEC +/* 0C1914 7F08CDE4 00000000 */ nop +/* 0C1918 7F08CDE8 0007000D */ break 7 +.L7F08CDEC: +/* 0C191C 7F08CDEC 2401FFFF */ li $at, -1 +/* 0C1920 7F08CDF0 14610004 */ bne $v1, $at, .L7F08CE04 +/* 0C1924 7F08CDF4 3C018000 */ lui $at, 0x8000 +/* 0C1928 7F08CDF8 15810002 */ bne $t4, $at, .L7F08CE04 +/* 0C192C 7F08CDFC 00000000 */ nop +/* 0C1930 7F08CE00 0006000D */ break 6 +.L7F08CE04: +/* 0C1934 7F08CE04 1600FFB7 */ bnez $s0, .L7F08CCE4 +/* 0C1938 7F08CE08 00000000 */ nop +/* 0C193C 7F08CE0C 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C1940 7F08CE10 01A3001A */ div $zero, $t5, $v1 +/* 0C1944 7F08CE14 00008010 */ mfhi $s0 +/* 0C1948 7F08CE18 14600002 */ bnez $v1, .L7F08CE24 +/* 0C194C 7F08CE1C 00000000 */ nop +/* 0C1950 7F08CE20 0007000D */ break 7 +.L7F08CE24: +/* 0C1954 7F08CE24 2401FFFF */ li $at, -1 +/* 0C1958 7F08CE28 14610004 */ bne $v1, $at, .L7F08CE3C +/* 0C195C 7F08CE2C 3C018000 */ lui $at, 0x8000 +/* 0C1960 7F08CE30 15A10002 */ bne $t5, $at, .L7F08CE3C +/* 0C1964 7F08CE34 00000000 */ nop +/* 0C1968 7F08CE38 0006000D */ break 6 +.L7F08CE3C: +/* 0C196C 7F08CE3C 1000FFA9 */ b .L7F08CCE4 +/* 0C1970 7F08CE40 00000000 */ nop +.L7F08CE44: +/* 0C1974 7F08CE44 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CE48: +/* 0C1978 7F08CE48 ADD10000 */ sw $s1, ($t6) +/* 0C197C 7F08CE4C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0C1980 7F08CE50 ADF30000 */ sw $s3, ($t7) +/* 0C1984 7F08CE54 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1988 7F08CE58 8FB30020 */ lw $s3, 0x20($sp) +/* 0C198C 7F08CE5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1990 7F08CE60 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1994 7F08CE64 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1998 7F08CE68 03E00008 */ jr $ra +/* 0C199C 7F08CE6C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CB10 +/* 0C1FAC 7F08D43C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1FB0 7F08D440 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1FB4 7F08D444 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1FB8 7F08D448 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1FBC 7F08D44C AFB30020 */ sw $s3, 0x20($sp) +/* 0C1FC0 7F08D450 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1FC4 7F08D454 AFB10018 */ sw $s1, 0x18($sp) +/* 0C1FC8 7F08D458 AFB00014 */ sw $s0, 0x14($sp) +/* 0C1FCC 7F08D45C AFA40028 */ sw $a0, 0x28($sp) +/* 0C1FD0 7F08D460 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1FD4 7F08D464 8C6211E0 */ lw $v0, 0x11e0($v1) +/* 0C1FD8 7F08D468 00C09025 */ move $s2, $a2 +/* 0C1FDC 7F08D46C 8C910000 */ lw $s1, ($a0) +/* 0C1FE0 7F08D470 00807025 */ move $t6, $a0 +/* 0C1FE4 7F08D474 8CB30000 */ lw $s3, ($a1) +/* 0C1FE8 7F08D478 10400042 */ beqz $v0, .Ljp7F08D584 +/* 0C1FEC 7F08D47C 00A07825 */ move $t7, $a1 +/* 0C1FF0 7F08D480 8C500010 */ lw $s0, 0x10($v0) +.Ljp7F08D484: +/* 0C1FF4 7F08D484 8E020000 */ lw $v0, ($s0) +/* 0C1FF8 7F08D488 24010001 */ li $at, 1 +/* 0C1FFC 7F08D48C 54410018 */ bnel $v0, $at, .Ljp7F08D4F0 +/* 0C2000 7F08D490 24010003 */ li $at, 3 +/* 0C2004 7F08D494 8E040004 */ lw $a0, 4($s0) +/* 0C2008 7F08D498 28810021 */ slti $at, $a0, 0x21 +/* 0C200C 7F08D49C 1020002E */ beqz $at, .Ljp7F08D558 +/* 0C2010 7F08D4A0 00000000 */ nop +/* 0C2014 7F08D4A4 0091082A */ slt $at, $a0, $s1 +/* 0C2018 7F08D4A8 14200005 */ bnez $at, .Ljp7F08D4C0 +/* 0C201C 7F08D4AC 00000000 */ nop +/* 0C2020 7F08D4B0 16240029 */ bne $s1, $a0, .Ljp7F08D558 +/* 0C2024 7F08D4B4 00000000 */ nop +/* 0C2028 7F08D4B8 1A600027 */ blez $s3, .Ljp7F08D558 +/* 0C202C 7F08D4BC 00000000 */ nop +.Ljp7F08D4C0: +/* 0C2030 7F08D4C0 52400008 */ beql $s2, $zero, .Ljp7F08D4E4 +/* 0C2034 7F08D4C4 00808825 */ move $s1, $a0 +/* 0C2038 7F08D4C8 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C203C 7F08D4CC 00000000 */ nop +/* 0C2040 7F08D4D0 10400021 */ beqz $v0, .Ljp7F08D558 +/* 0C2044 7F08D4D4 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C2048 7F08D4D8 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C204C 7F08D4DC 8E040004 */ lw $a0, 4($s0) +/* 0C2050 7F08D4E0 00808825 */ move $s1, $a0 +.Ljp7F08D4E4: +/* 0C2054 7F08D4E4 10000027 */ b .Ljp7F08D584 +/* 0C2058 7F08D4E8 00009825 */ move $s3, $zero +/* 0C205C 7F08D4EC 24010003 */ li $at, 3 +.Ljp7F08D4F0: +/* 0C2060 7F08D4F0 14410019 */ bne $v0, $at, .Ljp7F08D558 +/* 0C2064 7F08D4F4 00000000 */ nop +/* 0C2068 7F08D4F8 8E040004 */ lw $a0, 4($s0) +/* 0C206C 7F08D4FC 0091082A */ slt $at, $a0, $s1 +/* 0C2070 7F08D500 14200007 */ bnez $at, .Ljp7F08D520 +/* 0C2074 7F08D504 00000000 */ nop +/* 0C2078 7F08D508 16240013 */ bne $s1, $a0, .Ljp7F08D558 +/* 0C207C 7F08D50C 00000000 */ nop +/* 0C2080 7F08D510 8E180008 */ lw $t8, 8($s0) +/* 0C2084 7F08D514 0313082A */ slt $at, $t8, $s3 +/* 0C2088 7F08D518 1020000F */ beqz $at, .Ljp7F08D558 +/* 0C208C 7F08D51C 00000000 */ nop +.Ljp7F08D520: +/* 0C2090 7F08D520 12400008 */ beqz $s2, .Ljp7F08D544 +/* 0C2094 7F08D524 00000000 */ nop +/* 0C2098 7F08D528 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C209C 7F08D52C 00000000 */ nop +/* 0C20A0 7F08D530 14400004 */ bnez $v0, .Ljp7F08D544 +/* 0C20A4 7F08D534 00000000 */ nop +/* 0C20A8 7F08D538 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C20AC 7F08D53C 8E040008 */ lw $a0, 8($s0) +/* 0C20B0 7F08D540 10400005 */ beqz $v0, .Ljp7F08D558 +.Ljp7F08D544: +/* 0C20B4 7F08D544 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C20B8 7F08D548 8E110004 */ lw $s1, 4($s0) +/* 0C20BC 7F08D54C 8E130008 */ lw $s3, 8($s0) +/* 0C20C0 7F08D550 1000000C */ b .Ljp7F08D584 +/* 0C20C4 7F08D554 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F08D558: +/* 0C20C8 7F08D558 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C20CC 7F08D55C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C20D0 7F08D560 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C20D4 7F08D564 16190005 */ bne $s0, $t9, .Ljp7F08D57C +/* 0C20D8 7F08D568 00000000 */ nop +/* 0C20DC 7F08D56C 56400006 */ bnezl $s2, .Ljp7F08D588 +/* 0C20E0 7F08D570 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C20E4 7F08D574 241103E8 */ li $s1, 1000 +/* 0C20E8 7F08D578 241303E8 */ li $s3, 1000 +.Ljp7F08D57C: +/* 0C20EC 7F08D57C 1000FFC1 */ b .Ljp7F08D484 +/* 0C20F0 7F08D580 8E100010 */ lw $s0, 0x10($s0) +.Ljp7F08D584: +/* 0C20F4 7F08D584 8C6811EC */ lw $t0, 0x11ec($v1) +.Ljp7F08D588: +/* 0C20F8 7F08D588 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C20FC 7F08D58C 51000087 */ beql $t0, $zero, .Ljp7F08D7AC +/* 0C2100 7F08D590 8FB80028 */ lw $t8, 0x28($sp) +/* 0C2104 7F08D594 8D4B0000 */ lw $t3, ($t2) +/* 0C2108 7F08D598 8FA90028 */ lw $t1, 0x28($sp) +/* 0C210C 7F08D59C 24030021 */ li $v1, 33 +/* 0C2110 7F08D5A0 1560001B */ bnez $t3, .Ljp7F08D610 +/* 0C2114 7F08D5A4 8D300000 */ lw $s0, ($t1) +/* 0C2118 7F08D5A8 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C211C 7F08D5AC 0183001A */ div $zero, $t4, $v1 +/* 0C2120 7F08D5B0 00008010 */ mfhi $s0 +/* 0C2124 7F08D5B4 14600002 */ bnez $v1, .Ljp7F08D5C0 +/* 0C2128 7F08D5B8 00000000 */ nop +/* 0C212C 7F08D5BC 0007000D */ break 7 +.Ljp7F08D5C0: +/* 0C2130 7F08D5C0 2401FFFF */ li $at, -1 +/* 0C2134 7F08D5C4 14610004 */ bne $v1, $at, .Ljp7F08D5D8 +/* 0C2138 7F08D5C8 3C018000 */ lui $at, 0x8000 +/* 0C213C 7F08D5CC 15810002 */ bne $t4, $at, .Ljp7F08D5D8 +/* 0C2140 7F08D5D0 00000000 */ nop +/* 0C2144 7F08D5D4 0006000D */ break 6 +.Ljp7F08D5D8: +/* 0C2148 7F08D5D8 5600000E */ bnezl $s0, .Ljp7F08D614 +/* 0C214C 7F08D5DC 24030021 */ li $v1, 33 +/* 0C2150 7F08D5E0 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C2154 7F08D5E4 01A3001A */ div $zero, $t5, $v1 +/* 0C2158 7F08D5E8 00008010 */ mfhi $s0 +/* 0C215C 7F08D5EC 14600002 */ bnez $v1, .Ljp7F08D5F8 +/* 0C2160 7F08D5F0 00000000 */ nop +/* 0C2164 7F08D5F4 0007000D */ break 7 +.Ljp7F08D5F8: +/* 0C2168 7F08D5F8 2401FFFF */ li $at, -1 +/* 0C216C 7F08D5FC 14610004 */ bne $v1, $at, .Ljp7F08D610 +/* 0C2170 7F08D600 3C018000 */ lui $at, 0x8000 +/* 0C2174 7F08D604 15A10002 */ bne $t5, $at, .Ljp7F08D610 +/* 0C2178 7F08D608 00000000 */ nop +/* 0C217C 7F08D60C 0006000D */ break 6 +.Ljp7F08D610: +/* 0C2180 7F08D610 24030021 */ li $v1, 33 +.Ljp7F08D614: +/* 0C2184 7F08D614 16110024 */ bne $s0, $s1, .Ljp7F08D6A8 +/* 0C2188 7F08D618 00000000 */ nop +/* 0C218C 7F08D61C 0FC26C01 */ jal get_num_players +/* 0C2190 7F08D620 00000000 */ nop +/* 0C2194 7F08D624 24010001 */ li $at, 1 +/* 0C2198 7F08D628 1441005F */ bne $v0, $at, .Ljp7F08D7A8 +/* 0C219C 7F08D62C 02002025 */ move $a0, $s0 +/* 0C21A0 7F08D630 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C21A4 7F08D634 3C050010 */ lui $a1, 0x10 +/* 0C21A8 7F08D638 5040005C */ beql $v0, $zero, .Ljp7F08D7AC +/* 0C21AC 7F08D63C 8FB80028 */ lw $t8, 0x28($sp) +/* 0C21B0 7F08D640 52400006 */ beql $s2, $zero, .Ljp7F08D65C +/* 0C21B4 7F08D644 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C21B8 7F08D648 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C21BC 7F08D64C 02002025 */ move $a0, $s0 +/* 0C21C0 7F08D650 50400056 */ beql $v0, $zero, .Ljp7F08D7AC +/* 0C21C4 7F08D654 8FB80028 */ lw $t8, 0x28($sp) +/* 0C21C8 7F08D658 8FAE0028 */ lw $t6, 0x28($sp) +.Ljp7F08D65C: +/* 0C21CC 7F08D65C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0C21D0 7F08D660 8DCF0000 */ lw $t7, ($t6) +/* 0C21D4 7F08D664 560F0005 */ bnel $s0, $t7, .Ljp7F08D67C +/* 0C21D8 7F08D668 0270082A */ slt $at, $s3, $s0 +/* 0C21DC 7F08D66C 8F190000 */ lw $t9, ($t8) +/* 0C21E0 7F08D670 0219082A */ slt $at, $s0, $t9 +/* 0C21E4 7F08D674 1020004C */ beqz $at, .Ljp7F08D7A8 +/* 0C21E8 7F08D678 0270082A */ slt $at, $s3, $s0 +.Ljp7F08D67C: +/* 0C21EC 7F08D67C 1020004A */ beqz $at, .Ljp7F08D7A8 +/* 0C21F0 7F08D680 3C088005 */ lui $t0, %hi(j_text_trigger) # $t0, 0x8005 +/* 0C21F4 7F08D684 8D088500 */ lw $t0, %lo(j_text_trigger)($t0) +/* 0C21F8 7F08D688 24010002 */ li $at, 2 +/* 0C21FC 7F08D68C 51000004 */ beql $t0, $zero, .Ljp7F08D6A0 +/* 0C2200 7F08D690 02008825 */ move $s1, $s0 +/* 0C2204 7F08D694 52010045 */ beql $s0, $at, .Ljp7F08D7AC +/* 0C2208 7F08D698 8FB80028 */ lw $t8, 0x28($sp) +/* 0C220C 7F08D69C 02008825 */ move $s1, $s0 +.Ljp7F08D6A0: +/* 0C2210 7F08D6A0 10000041 */ b .Ljp7F08D7A8 +/* 0C2214 7F08D6A4 02009825 */ move $s3, $s0 +.Ljp7F08D6A8: +/* 0C2218 7F08D6A8 12400005 */ beqz $s2, .Ljp7F08D6C0 +/* 0C221C 7F08D6AC 00000000 */ nop +/* 0C2220 7F08D6B0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C2224 7F08D6B4 02002025 */ move $a0, $s0 +/* 0C2228 7F08D6B8 1040001F */ beqz $v0, .Ljp7F08D738 +/* 0C222C 7F08D6BC 24030021 */ li $v1, 33 +.Ljp7F08D6C0: +/* 0C2230 7F08D6C0 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 0C2234 7F08D6C4 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0C2238 7F08D6C8 24010002 */ li $at, 2 +/* 0C223C 7F08D6CC 11200003 */ beqz $t1, .Ljp7F08D6DC +/* 0C2240 7F08D6D0 00000000 */ nop +/* 0C2244 7F08D6D4 52010019 */ beql $s0, $at, .Ljp7F08D73C +/* 0C2248 7F08D6D8 260E0020 */ addiu $t6, $s0, 0x20 +.Ljp7F08D6DC: +/* 0C224C 7F08D6DC 0FC26C01 */ jal get_num_players +/* 0C2250 7F08D6E0 00000000 */ nop +/* 0C2254 7F08D6E4 24010001 */ li $at, 1 +/* 0C2258 7F08D6E8 14410010 */ bne $v0, $at, .Ljp7F08D72C +/* 0C225C 7F08D6EC 02002025 */ move $a0, $s0 +/* 0C2260 7F08D6F0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C2264 7F08D6F4 3C050010 */ lui $a1, 0x10 +/* 0C2268 7F08D6F8 1040000C */ beqz $v0, .Ljp7F08D72C +/* 0C226C 7F08D6FC 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C2270 7F08D700 8D4B0000 */ lw $t3, ($t2) +/* 0C2274 7F08D704 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C2278 7F08D708 02008825 */ move $s1, $s0 +/* 0C227C 7F08D70C 160B0005 */ bne $s0, $t3, .Ljp7F08D724 +/* 0C2280 7F08D710 00000000 */ nop +/* 0C2284 7F08D714 8D8D0000 */ lw $t5, ($t4) +/* 0C2288 7F08D718 020D082A */ slt $at, $s0, $t5 +/* 0C228C 7F08D71C 50200004 */ beql $at, $zero, .Ljp7F08D730 +/* 0C2290 7F08D720 02008825 */ move $s1, $s0 +.Ljp7F08D724: +/* 0C2294 7F08D724 10000020 */ b .Ljp7F08D7A8 +/* 0C2298 7F08D728 02009825 */ move $s3, $s0 +.Ljp7F08D72C: +/* 0C229C 7F08D72C 02008825 */ move $s1, $s0 +.Ljp7F08D730: +/* 0C22A0 7F08D730 1000001D */ b .Ljp7F08D7A8 +/* 0C22A4 7F08D734 00009825 */ move $s3, $zero +.Ljp7F08D738: +/* 0C22A8 7F08D738 260E0020 */ addiu $t6, $s0, 0x20 +.Ljp7F08D73C: +/* 0C22AC 7F08D73C 01C3001A */ div $zero, $t6, $v1 +/* 0C22B0 7F08D740 00008010 */ mfhi $s0 +/* 0C22B4 7F08D744 14600002 */ bnez $v1, .Ljp7F08D750 +/* 0C22B8 7F08D748 00000000 */ nop +/* 0C22BC 7F08D74C 0007000D */ break 7 +.Ljp7F08D750: +/* 0C22C0 7F08D750 2401FFFF */ li $at, -1 +/* 0C22C4 7F08D754 14610004 */ bne $v1, $at, .Ljp7F08D768 +/* 0C22C8 7F08D758 3C018000 */ lui $at, 0x8000 +/* 0C22CC 7F08D75C 15C10002 */ bne $t6, $at, .Ljp7F08D768 +/* 0C22D0 7F08D760 00000000 */ nop +/* 0C22D4 7F08D764 0006000D */ break 6 +.Ljp7F08D768: +/* 0C22D8 7F08D768 1600FFAA */ bnez $s0, .Ljp7F08D614 +/* 0C22DC 7F08D76C 00000000 */ nop +/* 0C22E0 7F08D770 260F0020 */ addiu $t7, $s0, 0x20 +/* 0C22E4 7F08D774 01E3001A */ div $zero, $t7, $v1 +/* 0C22E8 7F08D778 00008010 */ mfhi $s0 +/* 0C22EC 7F08D77C 14600002 */ bnez $v1, .Ljp7F08D788 +/* 0C22F0 7F08D780 00000000 */ nop +/* 0C22F4 7F08D784 0007000D */ break 7 +.Ljp7F08D788: +/* 0C22F8 7F08D788 2401FFFF */ li $at, -1 +/* 0C22FC 7F08D78C 14610004 */ bne $v1, $at, .Ljp7F08D7A0 +/* 0C2300 7F08D790 3C018000 */ lui $at, 0x8000 +/* 0C2304 7F08D794 15E10002 */ bne $t7, $at, .Ljp7F08D7A0 +/* 0C2308 7F08D798 00000000 */ nop +/* 0C230C 7F08D79C 0006000D */ break 6 +.Ljp7F08D7A0: +/* 0C2310 7F08D7A0 1000FF9C */ b .Ljp7F08D614 +/* 0C2314 7F08D7A4 00000000 */ nop +.Ljp7F08D7A8: +/* 0C2318 7F08D7A8 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D7AC: +/* 0C231C 7F08D7AC AF110000 */ sw $s1, ($t8) +/* 0C2320 7F08D7B0 8FB9002C */ lw $t9, 0x2c($sp) +/* 0C2324 7F08D7B4 AF330000 */ sw $s3, ($t9) +/* 0C2328 7F08D7B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C232C 7F08D7BC 8FB30020 */ lw $s3, 0x20($sp) +/* 0C2330 7F08D7C0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C2334 7F08D7C4 8FB10018 */ lw $s1, 0x18($sp) +/* 0C2338 7F08D7C8 8FB00014 */ lw $s0, 0x14($sp) +/* 0C233C 7F08D7CC 03E00008 */ jr $ra +/* 0C2340 7F08D7D0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08CE70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CE70 +/* 0C19A0 7F08CE70 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C19A4 7F08CE74 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C19A8 7F08CE78 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0C19AC 7F08CE7C AFB00004 */ sw $s0, 4($sp) +/* 0C19B0 7F08CE80 8DC511E0 */ lw $a1, 0x11e0($t6) +/* 0C19B4 7F08CE84 00808025 */ move $s0, $a0 +/* 0C19B8 7F08CE88 00001025 */ move $v0, $zero +/* 0C19BC 7F08CE8C 10A0001B */ beqz $a1, .L7F08CEFC +/* 0C19C0 7F08CE90 00A01825 */ move $v1, $a1 +/* 0C19C4 7F08CE94 240A0004 */ li $t2, 4 +/* 0C19C8 7F08CE98 24090001 */ li $t1, 1 +/* 0C19CC 7F08CE9C 24080002 */ li $t0, 2 +/* 0C19D0 7F08CEA0 8C6F0000 */ lw $t7, ($v1) +.L7F08CEA4: +/* 0C19D4 7F08CEA4 550F0011 */ bnel $t0, $t7, .L7F08CEEC +/* 0C19D8 7F08CEA8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19DC 7F08CEAC 8C640004 */ lw $a0, 4($v1) +/* 0C19E0 7F08CEB0 90980000 */ lbu $t8, ($a0) +/* 0C19E4 7F08CEB4 5538000D */ bnel $t1, $t8, .L7F08CEEC +/* 0C19E8 7F08CEB8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19EC 7F08CEBC 8C870004 */ lw $a3, 4($a0) +/* 0C19F0 7F08CEC0 90F90003 */ lbu $t9, 3($a3) +/* 0C19F4 7F08CEC4 55590009 */ bnel $t2, $t9, .L7F08CEEC +/* 0C19F8 7F08CEC8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19FC 7F08CECC 8CEB0080 */ lw $t3, 0x80($a3) +/* 0C1A00 7F08CED0 004B1025 */ or $v0, $v0, $t3 +/* 0C1A04 7F08CED4 02026024 */ and $t4, $s0, $v0 +/* 0C1A08 7F08CED8 560C0004 */ bnel $s0, $t4, .L7F08CEEC +/* 0C1A0C 7F08CEDC 8C63000C */ lw $v1, 0xc($v1) +/* 0C1A10 7F08CEE0 10000007 */ b .L7F08CF00 +/* 0C1A14 7F08CEE4 24020001 */ li $v0, 1 +/* 0C1A18 7F08CEE8 8C63000C */ lw $v1, 0xc($v1) +.L7F08CEEC: +/* 0C1A1C 7F08CEEC 50650004 */ beql $v1, $a1, .L7F08CF00 +/* 0C1A20 7F08CEF0 00001025 */ move $v0, $zero +/* 0C1A24 7F08CEF4 5460FFEB */ bnezl $v1, .L7F08CEA4 +/* 0C1A28 7F08CEF8 8C6F0000 */ lw $t7, ($v1) +.L7F08CEFC: +/* 0C1A2C 7F08CEFC 00001025 */ move $v0, $zero +.L7F08CF00: +/* 0C1A30 7F08CF00 8FB00004 */ lw $s0, 4($sp) +/* 0C1A34 7F08CF04 03E00008 */ jr $ra +/* 0C1A38 7F08CF08 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +//NOT MATCHING YET -> Wrong Register values +void sub_GAME_7F08CF0C(void) { + + InvItem *item = pPlayer->ptr_inventory_first_in_cycle; + + while (item) { + + if (item->type == 2 ) { + struct prop *temp_a0 = item->type_inv_item.type_prop.prop; + if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == 0xF8) { + return TRUE; + } + } + + item = item->next; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return FALSE; + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CF0C +/* 0C1A3C 7F08CF0C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C1A40 7F08CF10 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C1A44 7F08CF14 240800F8 */ li $t0, 248 +/* 0C1A48 7F08CF18 24070004 */ li $a3, 4 +/* 0C1A4C 7F08CF1C 8DC311E0 */ lw $v1, 0x11e0($t6) +/* 0C1A50 7F08CF20 24060002 */ li $a2, 2 +/* 0C1A54 7F08CF24 10600013 */ beqz $v1, .L7F08CF74 +/* 0C1A58 7F08CF28 00601025 */ move $v0, $v1 +/* 0C1A5C 7F08CF2C 8C4F0000 */ lw $t7, ($v0) +.L7F08CF30: +/* 0C1A60 7F08CF30 54CF000C */ bnel $a2, $t7, .L7F08CF64 +/* 0C1A64 7F08CF34 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A68 7F08CF38 8C440004 */ lw $a0, 4($v0) +/* 0C1A6C 7F08CF3C 90980000 */ lbu $t8, ($a0) +/* 0C1A70 7F08CF40 54F80008 */ bnel $a3, $t8, .L7F08CF64 +/* 0C1A74 7F08CF44 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A78 7F08CF48 8C850004 */ lw $a1, 4($a0) +/* 0C1A7C 7F08CF4C 84B90004 */ lh $t9, 4($a1) +/* 0C1A80 7F08CF50 55190004 */ bnel $t0, $t9, .L7F08CF64 +/* 0C1A84 7F08CF54 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A88 7F08CF58 03E00008 */ jr $ra +/* 0C1A8C 7F08CF5C 24020001 */ li $v0, 1 + +/* 0C1A90 7F08CF60 8C42000C */ lw $v0, 0xc($v0) +.L7F08CF64: +/* 0C1A94 7F08CF64 50430004 */ beql $v0, $v1, .L7F08CF78 +/* 0C1A98 7F08CF68 00001025 */ move $v0, $zero +/* 0C1A9C 7F08CF6C 5440FFF0 */ bnezl $v0, .L7F08CF30 +/* 0C1AA0 7F08CF70 8C4F0000 */ lw $t7, ($v0) +.L7F08CF74: +/* 0C1AA4 7F08CF74 00001025 */ move $v0, $zero +.L7F08CF78: +/* 0C1AA8 7F08CF78 03E00008 */ jr $ra +/* 0C1AAC 7F08CF7C 00000000 */ nop +) +#endif + +/** + * Is the player alive with flag tag token in inventory + * @return TRUE/FALSE + */ +s32 bondinvIsAliveWithFlag(void) +{ + if (!pPlayer->bonddead) { + return is_weapon_in_inv(ITEM_TOKEN); + } + return 0; +} + + +/** + * Is the Golden Gun in inventory + * @return TRUE/FALSE + */ +int checkforgoldengun(void) +{ + return is_weapon_in_inv(ITEM_GOLDENGUN); +} + + + +int sub_GAME_7F08CFE0(PropRecord *prop) { + + InvItem *item = pPlayer->ptr_inventory_first_in_cycle; + + while (item) { + + if (item->type == INV_ITEM_PROP && item->type_inv_item.type_prop.prop == prop) { + return TRUE; + } + + item = item->next; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return FALSE; +} + + + + + +#ifdef NONMATCHING +void count_total_items_in_inventory(void) { + + InvItem *inv_item; + s32 numitems = 0; + + if (pPlayer->equipallguns) { + numitems = 0x20; + } + + inv_item = pPlayer->ptr_inventory_first_in_cycle; + + while (inv_item) { + + if (inv_item->type == INV_ITEM_PROP) { + + PropRecord *prop = inv_item->type_inv_item.type_prop.prop; + + if (prop->type == 4) { + + ObjectRecord *obj = prop->Entityp.obj; + + if (obj->runtime_bitflags & 0x400) { + numitems = numitems + 1; + } + + } else if (prop->type == 1) { + + if ((prop->Entityp.obj->flags2 & 0x40000) == 0) { + numitems = numitems + 1; + } + } + } else if (inv_item->type == INV_ITEM_WEAPON) { + + if ((pPlayer->equipallguns == 0) || ( inv_item->type_inv_item.type_weap.weapon < 0x21) == 0) { + numitems = numitems + 1; + } + } + + inv_item = inv_item->next; + + if (inv_item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return numitems; + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel count_total_items_in_inventory +/* 0C1B68 7F08D038 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1B6C 7F08D03C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1B70 7F08D040 00001825 */ move $v1, $zero +/* 0C1B74 7F08D044 3C0B0004 */ lui $t3, 4 +/* 0C1B78 7F08D048 8C4411EC */ lw $a0, 0x11ec($v0) +/* 0C1B7C 7F08D04C 240A0001 */ li $t2, 1 +/* 0C1B80 7F08D050 24090004 */ li $t1, 4 +/* 0C1B84 7F08D054 10800002 */ beqz $a0, .L7F08D060 +/* 0C1B88 7F08D058 24080002 */ li $t0, 2 +/* 0C1B8C 7F08D05C 24030020 */ li $v1, 32 +.L7F08D060: +/* 0C1B90 7F08D060 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1B94 7F08D064 10C00026 */ beqz $a2, .L7F08D100 +/* 0C1B98 7F08D068 00C02825 */ move $a1, $a2 +/* 0C1B9C 7F08D06C 8CA20000 */ lw $v0, ($a1) +.L7F08D070: +/* 0C1BA0 7F08D070 15020015 */ bne $t0, $v0, .L7F08D0C8 +/* 0C1BA4 7F08D074 00000000 */ nop +/* 0C1BA8 7F08D078 8CA20004 */ lw $v0, 4($a1) +/* 0C1BAC 7F08D07C 90470000 */ lbu $a3, ($v0) +/* 0C1BB0 7F08D080 15270008 */ bne $t1, $a3, .L7F08D0A4 +/* 0C1BB4 7F08D084 00000000 */ nop +/* 0C1BB8 7F08D088 8C470004 */ lw $a3, 4($v0) +/* 0C1BBC 7F08D08C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1BC0 7F08D090 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1BC4 7F08D094 51E00016 */ beql $t7, $zero, .L7F08D0F0 +/* 0C1BC8 7F08D098 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BCC 7F08D09C 10000013 */ b .L7F08D0EC +/* 0C1BD0 7F08D0A0 24630001 */ addiu $v1, $v1, 1 +.L7F08D0A4: +/* 0C1BD4 7F08D0A4 55470012 */ bnel $t2, $a3, .L7F08D0F0 +/* 0C1BD8 7F08D0A8 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BDC 7F08D0AC 8C580004 */ lw $t8, 4($v0) +/* 0C1BE0 7F08D0B0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1BE4 7F08D0B4 032B6024 */ and $t4, $t9, $t3 +/* 0C1BE8 7F08D0B8 5580000D */ bnezl $t4, .L7F08D0F0 +/* 0C1BEC 7F08D0BC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BF0 7F08D0C0 1000000A */ b .L7F08D0EC +/* 0C1BF4 7F08D0C4 24630001 */ addiu $v1, $v1, 1 +.L7F08D0C8: +/* 0C1BF8 7F08D0C8 55420009 */ bnel $t2, $v0, .L7F08D0F0 +/* 0C1BFC 7F08D0CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C00 7F08D0D0 50800006 */ beql $a0, $zero, .L7F08D0EC +/* 0C1C04 7F08D0D4 24630001 */ addiu $v1, $v1, 1 +/* 0C1C08 7F08D0D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1C0C 7F08D0DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1C10 7F08D0E0 54200003 */ bnezl $at, .L7F08D0F0 +/* 0C1C14 7F08D0E4 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C18 7F08D0E8 24630001 */ addiu $v1, $v1, 1 +.L7F08D0EC: +/* 0C1C1C 7F08D0EC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D0F0: +/* 0C1C20 7F08D0F0 10A60003 */ beq $a1, $a2, .L7F08D100 +/* 0C1C24 7F08D0F4 00000000 */ nop +/* 0C1C28 7F08D0F8 54A0FFDD */ bnezl $a1, .L7F08D070 +/* 0C1C2C 7F08D0FC 8CA20000 */ lw $v0, ($a1) +.L7F08D100: +/* 0C1C30 7F08D100 03E00008 */ jr $ra +/* 0C1C34 7F08D104 00601025 */ move $v0, $v1 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel count_total_items_in_inventory +/* 0C250C 7F08D99C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C2510 7F08D9A0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C2514 7F08D9A4 00001825 */ move $v1, $zero +/* 0C2518 7F08D9A8 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 0C251C 7F08D9AC 8C4411EC */ lw $a0, 0x11ec($v0) +/* 0C2520 7F08D9B0 3C0B0004 */ lui $t3, 4 +/* 0C2524 7F08D9B4 240A0001 */ li $t2, 1 +/* 0C2528 7F08D9B8 10800007 */ beqz $a0, .Ljp7F08D9D8 +/* 0C252C 7F08D9BC 24090004 */ li $t1, 4 +/* 0C2530 7F08D9C0 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0C2534 7F08D9C4 24030020 */ li $v1, 32 +/* 0C2538 7F08D9C8 11C00003 */ beqz $t6, .Ljp7F08D9D8 +/* 0C253C 7F08D9CC 00000000 */ nop +/* 0C2540 7F08D9D0 10000001 */ b .Ljp7F08D9D8 +/* 0C2544 7F08D9D4 2403001F */ li $v1, 31 +.Ljp7F08D9D8: +/* 0C2548 7F08D9D8 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C254C 7F08D9DC 24080002 */ li $t0, 2 +/* 0C2550 7F08D9E0 10C00026 */ beqz $a2, .Ljp7F08DA7C +/* 0C2554 7F08D9E4 00C02825 */ move $a1, $a2 +/* 0C2558 7F08D9E8 8CA20000 */ lw $v0, ($a1) +.Ljp7F08D9EC: +/* 0C255C 7F08D9EC 15020015 */ bne $t0, $v0, .Ljp7F08DA44 +/* 0C2560 7F08D9F0 00000000 */ nop +/* 0C2564 7F08D9F4 8CA20004 */ lw $v0, 4($a1) +/* 0C2568 7F08D9F8 90470000 */ lbu $a3, ($v0) +/* 0C256C 7F08D9FC 15270008 */ bne $t1, $a3, .Ljp7F08DA20 +/* 0C2570 7F08DA00 00000000 */ nop +/* 0C2574 7F08DA04 8C470004 */ lw $a3, 4($v0) +/* 0C2578 7F08DA08 8CEF0064 */ lw $t7, 0x64($a3) +/* 0C257C 7F08DA0C 31F80400 */ andi $t8, $t7, 0x400 +/* 0C2580 7F08DA10 53000016 */ beql $t8, $zero, .Ljp7F08DA6C +/* 0C2584 7F08DA14 8CA5000C */ lw $a1, 0xc($a1) +/* 0C2588 7F08DA18 10000013 */ b .Ljp7F08DA68 +/* 0C258C 7F08DA1C 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA20: +/* 0C2590 7F08DA20 55470012 */ bnel $t2, $a3, .Ljp7F08DA6C +/* 0C2594 7F08DA24 8CA5000C */ lw $a1, 0xc($a1) +/* 0C2598 7F08DA28 8C590004 */ lw $t9, 4($v0) +/* 0C259C 7F08DA2C 8F2C000C */ lw $t4, 0xc($t9) +/* 0C25A0 7F08DA30 018B6824 */ and $t5, $t4, $t3 +/* 0C25A4 7F08DA34 55A0000D */ bnezl $t5, .Ljp7F08DA6C +/* 0C25A8 7F08DA38 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25AC 7F08DA3C 1000000A */ b .Ljp7F08DA68 +/* 0C25B0 7F08DA40 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA44: +/* 0C25B4 7F08DA44 55420009 */ bnel $t2, $v0, .Ljp7F08DA6C +/* 0C25B8 7F08DA48 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25BC 7F08DA4C 50800006 */ beql $a0, $zero, .Ljp7F08DA68 +/* 0C25C0 7F08DA50 24630001 */ addiu $v1, $v1, 1 +/* 0C25C4 7F08DA54 8CAE0004 */ lw $t6, 4($a1) +/* 0C25C8 7F08DA58 29C10021 */ slti $at, $t6, 0x21 +/* 0C25CC 7F08DA5C 54200003 */ bnezl $at, .Ljp7F08DA6C +/* 0C25D0 7F08DA60 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25D4 7F08DA64 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA68: +/* 0C25D8 7F08DA68 8CA5000C */ lw $a1, 0xc($a1) +.Ljp7F08DA6C: +/* 0C25DC 7F08DA6C 10A60003 */ beq $a1, $a2, .Ljp7F08DA7C +/* 0C25E0 7F08DA70 00000000 */ nop +/* 0C25E4 7F08DA74 54A0FFDD */ bnezl $a1, .Ljp7F08D9EC +/* 0C25E8 7F08DA78 8CA20000 */ lw $v0, ($a1) +.Ljp7F08DA7C: +/* 0C25EC 7F08DA7C 03E00008 */ jr $ra +/* 0C25F0 7F08DA80 00601025 */ move $v0, $v1 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08D108(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D108 +/* 0C1C38 7F08D108 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1C3C 7F08D10C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1C40 7F08D110 28810020 */ slti $at, $a0, 0x20 +/* 0C1C44 7F08D114 8C4311EC */ lw $v1, 0x11ec($v0) +/* 0C1C48 7F08D118 50600006 */ beql $v1, $zero, .L7F08D134 +/* 0C1C4C 7F08D11C 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1C50 7F08D120 10200003 */ beqz $at, .L7F08D130 +/* 0C1C54 7F08D124 2484FFE0 */ addiu $a0, $a0, -0x20 +/* 0C1C58 7F08D128 03E00008 */ jr $ra +/* 0C1C5C 7F08D12C 00001025 */ move $v0, $zero + +.L7F08D130: +/* 0C1C60 7F08D130 8C4611E0 */ lw $a2, 0x11e0($v0) +.L7F08D134: +/* 0C1C64 7F08D134 3C0B0004 */ lui $t3, 4 +/* 0C1C68 7F08D138 240A0001 */ li $t2, 1 +/* 0C1C6C 7F08D13C 10C00034 */ beqz $a2, .L7F08D210 +/* 0C1C70 7F08D140 00C02825 */ move $a1, $a2 +/* 0C1C74 7F08D144 24090004 */ li $t1, 4 +/* 0C1C78 7F08D148 24080002 */ li $t0, 2 +/* 0C1C7C 7F08D14C 8CA20000 */ lw $v0, ($a1) +.L7F08D150: +/* 0C1C80 7F08D150 1502001D */ bne $t0, $v0, .L7F08D1C8 +/* 0C1C84 7F08D154 00000000 */ nop +/* 0C1C88 7F08D158 8CA20004 */ lw $v0, 4($a1) +/* 0C1C8C 7F08D15C 90470000 */ lbu $a3, ($v0) +/* 0C1C90 7F08D160 1527000C */ bne $t1, $a3, .L7F08D194 +/* 0C1C94 7F08D164 00000000 */ nop +/* 0C1C98 7F08D168 8C470004 */ lw $a3, 4($v0) +/* 0C1C9C 7F08D16C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1CA0 7F08D170 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1CA4 7F08D174 51E00022 */ beql $t7, $zero, .L7F08D200 +/* 0C1CA8 7F08D178 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CAC 7F08D17C 14800003 */ bnez $a0, .L7F08D18C +/* 0C1CB0 7F08D180 00000000 */ nop +/* 0C1CB4 7F08D184 03E00008 */ jr $ra +/* 0C1CB8 7F08D188 00A01025 */ move $v0, $a1 + +.L7F08D18C: +/* 0C1CBC 7F08D18C 1000001B */ b .L7F08D1FC +/* 0C1CC0 7F08D190 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D194: +/* 0C1CC4 7F08D194 5547001A */ bnel $t2, $a3, .L7F08D200 +/* 0C1CC8 7F08D198 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CCC 7F08D19C 8C580004 */ lw $t8, 4($v0) +/* 0C1CD0 7F08D1A0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1CD4 7F08D1A4 032B6024 */ and $t4, $t9, $t3 +/* 0C1CD8 7F08D1A8 55800015 */ bnezl $t4, .L7F08D200 +/* 0C1CDC 7F08D1AC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CE0 7F08D1B0 14800003 */ bnez $a0, .L7F08D1C0 +/* 0C1CE4 7F08D1B4 00000000 */ nop +/* 0C1CE8 7F08D1B8 03E00008 */ jr $ra +/* 0C1CEC 7F08D1BC 00A01025 */ move $v0, $a1 + +.L7F08D1C0: +/* 0C1CF0 7F08D1C0 1000000E */ b .L7F08D1FC +/* 0C1CF4 7F08D1C4 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1C8: +/* 0C1CF8 7F08D1C8 5542000D */ bnel $t2, $v0, .L7F08D200 +/* 0C1CFC 7F08D1CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1D00 7F08D1D0 10600005 */ beqz $v1, .L7F08D1E8 +/* 0C1D04 7F08D1D4 00000000 */ nop +/* 0C1D08 7F08D1D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1D0C 7F08D1DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1D10 7F08D1E0 54200007 */ bnezl $at, .L7F08D200 +/* 0C1D14 7F08D1E4 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D1E8: +/* 0C1D18 7F08D1E8 54800004 */ bnezl $a0, .L7F08D1FC +/* 0C1D1C 7F08D1EC 2484FFFF */ addiu $a0, $a0, -1 +/* 0C1D20 7F08D1F0 03E00008 */ jr $ra +/* 0C1D24 7F08D1F4 00A01025 */ move $v0, $a1 + +/* 0C1D28 7F08D1F8 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1FC: +/* 0C1D2C 7F08D1FC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D200: +/* 0C1D30 7F08D200 50A60004 */ beql $a1, $a2, .L7F08D214 +/* 0C1D34 7F08D204 00001025 */ move $v0, $zero +/* 0C1D38 7F08D208 54A0FFD1 */ bnezl $a1, .L7F08D150 +/* 0C1D3C 7F08D20C 8CA20000 */ lw $v0, ($a1) +.L7F08D210: +/* 0C1D40 7F08D210 00001025 */ move $v0, $zero +.L7F08D214: +/* 0C1D44 7F08D214 03E00008 */ jr $ra +/* 0C1D48 7F08D218 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D108 +/* 0C25F4 7F08DA84 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C25F8 7F08DA88 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C25FC 7F08DA8C 00803025 */ move $a2, $a0 +/* 0C2600 7F08DA90 3C048005 */ lui $a0, %hi(j_text_trigger) # $a0, 0x8005 +/* 0C2604 7F08DA94 8C4311EC */ lw $v1, 0x11ec($v0) +/* 0C2608 7F08DA98 50600012 */ beql $v1, $zero, .Ljp7F08DAE4 +/* 0C260C 7F08DA9C 8C4511E0 */ lw $a1, 0x11e0($v0) +/* 0C2610 7F08DAA0 8C848500 */ lw $a0, %lo(j_text_trigger)($a0) +/* 0C2614 7F08DAA4 24050020 */ li $a1, 32 +/* 0C2618 7F08DAA8 10800003 */ beqz $a0, .Ljp7F08DAB8 +/* 0C261C 7F08DAAC 00000000 */ nop +/* 0C2620 7F08DAB0 10000001 */ b .Ljp7F08DAB8 +/* 0C2624 7F08DAB4 2405001F */ li $a1, 31 +.Ljp7F08DAB8: +/* 0C2628 7F08DAB8 00C5082A */ slt $at, $a2, $a1 +/* 0C262C 7F08DABC 10200003 */ beqz $at, .Ljp7F08DACC +/* 0C2630 7F08DAC0 00000000 */ nop +/* 0C2634 7F08DAC4 03E00008 */ jr $ra +/* 0C2638 7F08DAC8 00001025 */ move $v0, $zero + +.Ljp7F08DACC: +/* 0C263C 7F08DACC 10800003 */ beqz $a0, .Ljp7F08DADC +/* 0C2640 7F08DAD0 24050020 */ li $a1, 32 +/* 0C2644 7F08DAD4 10000001 */ b .Ljp7F08DADC +/* 0C2648 7F08DAD8 2405001F */ li $a1, 31 +.Ljp7F08DADC: +/* 0C264C 7F08DADC 00C53023 */ subu $a2, $a2, $a1 +/* 0C2650 7F08DAE0 8C4511E0 */ lw $a1, 0x11e0($v0) +.Ljp7F08DAE4: +/* 0C2654 7F08DAE4 3C0B0004 */ lui $t3, 4 +/* 0C2658 7F08DAE8 240A0001 */ li $t2, 1 +/* 0C265C 7F08DAEC 10A00034 */ beqz $a1, .Ljp7F08DBC0 +/* 0C2660 7F08DAF0 00A02025 */ move $a0, $a1 +/* 0C2664 7F08DAF4 24090004 */ li $t1, 4 +/* 0C2668 7F08DAF8 24080002 */ li $t0, 2 +/* 0C266C 7F08DAFC 8C820000 */ lw $v0, ($a0) +.Ljp7F08DB00: +/* 0C2670 7F08DB00 1502001D */ bne $t0, $v0, .Ljp7F08DB78 +/* 0C2674 7F08DB04 00000000 */ nop +/* 0C2678 7F08DB08 8C820004 */ lw $v0, 4($a0) +/* 0C267C 7F08DB0C 90470000 */ lbu $a3, ($v0) +/* 0C2680 7F08DB10 1527000C */ bne $t1, $a3, .Ljp7F08DB44 +/* 0C2684 7F08DB14 00000000 */ nop +/* 0C2688 7F08DB18 8C470004 */ lw $a3, 4($v0) +/* 0C268C 7F08DB1C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C2690 7F08DB20 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C2694 7F08DB24 51E00022 */ beql $t7, $zero, .Ljp7F08DBB0 +/* 0C2698 7F08DB28 8C84000C */ lw $a0, 0xc($a0) +/* 0C269C 7F08DB2C 14C00003 */ bnez $a2, .Ljp7F08DB3C +/* 0C26A0 7F08DB30 00000000 */ nop +/* 0C26A4 7F08DB34 03E00008 */ jr $ra +/* 0C26A8 7F08DB38 00801025 */ move $v0, $a0 + +.Ljp7F08DB3C: +/* 0C26AC 7F08DB3C 1000001B */ b .Ljp7F08DBAC +/* 0C26B0 7F08DB40 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DB44: +/* 0C26B4 7F08DB44 5547001A */ bnel $t2, $a3, .Ljp7F08DBB0 +/* 0C26B8 7F08DB48 8C84000C */ lw $a0, 0xc($a0) +/* 0C26BC 7F08DB4C 8C580004 */ lw $t8, 4($v0) +/* 0C26C0 7F08DB50 8F19000C */ lw $t9, 0xc($t8) +/* 0C26C4 7F08DB54 032B6024 */ and $t4, $t9, $t3 +/* 0C26C8 7F08DB58 55800015 */ bnezl $t4, .Ljp7F08DBB0 +/* 0C26CC 7F08DB5C 8C84000C */ lw $a0, 0xc($a0) +/* 0C26D0 7F08DB60 14C00003 */ bnez $a2, .Ljp7F08DB70 +/* 0C26D4 7F08DB64 00000000 */ nop +/* 0C26D8 7F08DB68 03E00008 */ jr $ra +/* 0C26DC 7F08DB6C 00801025 */ move $v0, $a0 + +.Ljp7F08DB70: +/* 0C26E0 7F08DB70 1000000E */ b .Ljp7F08DBAC +/* 0C26E4 7F08DB74 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DB78: +/* 0C26E8 7F08DB78 5542000D */ bnel $t2, $v0, .Ljp7F08DBB0 +/* 0C26EC 7F08DB7C 8C84000C */ lw $a0, 0xc($a0) +/* 0C26F0 7F08DB80 10600005 */ beqz $v1, .Ljp7F08DB98 +/* 0C26F4 7F08DB84 00000000 */ nop +/* 0C26F8 7F08DB88 8C8D0004 */ lw $t5, 4($a0) +/* 0C26FC 7F08DB8C 29A10021 */ slti $at, $t5, 0x21 +/* 0C2700 7F08DB90 54200007 */ bnezl $at, .Ljp7F08DBB0 +/* 0C2704 7F08DB94 8C84000C */ lw $a0, 0xc($a0) +.Ljp7F08DB98: +/* 0C2708 7F08DB98 54C00004 */ bnezl $a2, .Ljp7F08DBAC +/* 0C270C 7F08DB9C 24C6FFFF */ addiu $a2, $a2, -1 +/* 0C2710 7F08DBA0 03E00008 */ jr $ra +/* 0C2714 7F08DBA4 00801025 */ move $v0, $a0 + +/* 0C2718 7F08DBA8 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DBAC: +/* 0C271C 7F08DBAC 8C84000C */ lw $a0, 0xc($a0) +.Ljp7F08DBB0: +/* 0C2720 7F08DBB0 50850004 */ beql $a0, $a1, .Ljp7F08DBC4 +/* 0C2724 7F08DBB4 00001025 */ move $v0, $zero +/* 0C2728 7F08DBB8 5480FFD1 */ bnezl $a0, .Ljp7F08DB00 +/* 0C272C 7F08DBBC 8C820000 */ lw $v0, ($a0) +.Ljp7F08DBC0: +/* 0C2730 7F08DBC0 00001025 */ move $v0, $zero +.Ljp7F08DBC4: +/* 0C2734 7F08DBC4 03E00008 */ jr $ra +/* 0C2738 7F08DBC8 00000000 */ nop +) +#endif + +#endif + +textoverride *get_textoverride_by_obj(ObjectRecord *obj) { + + textoverride *override = pPlayer->textoverrides; + + while (override) { + + if (override->obj == obj) { + return override; + } + + override = override->next; + } + + return NULL; +} + +textoverride *get_textoverride_by_weaponum(ITEM_IDS weaponnum) { + + textoverride *override = pPlayer->textoverrides; + + while (override) { + + if ((override->objoffset == 0) && (override->weapon == weaponnum)) { + return override; + } + + override = override->next; + } + + return NULL; +} + + +#ifdef VERSION_US +s32 get_weaponnum_by_inv_index(s32 index) { + + textoverride *override; + InvItem *inv_item; + + inv_item = sub_GAME_7F08D108(index); + + if (inv_item) { + + if (inv_item->type == INV_ITEM_PROP) { + + PropRecord *prop = inv_item->type_inv_item.type_prop.prop; + + override = get_textoverride_by_obj(prop->Entityp.obj); + + if (override) { + return override->weapon; + } + + } else if (inv_item->type == INV_ITEM_WEAPON) { + return inv_item->type_inv_item.type_weap.weapon; + } + + } else if ((pPlayer->equipallguns) && (index < ITEM_TANKSHELLS)) { + return index + 1; + } + + return 0; +} +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel get_weaponnum_by_inv_index +/* 0C27C8 7F08DC58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C27CC 7F08DC5C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C27D0 7F08DC60 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C27D4 7F08DC64 AFA40018 */ sw $a0, 0x18($sp) +/* 0C27D8 7F08DC68 8FA40018 */ lw $a0, 0x18($sp) +/* 0C27DC 7F08DC6C 10400011 */ beqz $v0, .Ljp7F08DCB4 +/* 0C27E0 7F08DC70 00401825 */ move $v1, $v0 +/* 0C27E4 7F08DC74 8C440000 */ lw $a0, ($v0) +/* 0C27E8 7F08DC78 24010002 */ li $at, 2 +/* 0C27EC 7F08DC7C 54810009 */ bnel $a0, $at, .Ljp7F08DCA4 +/* 0C27F0 7F08DC80 24010001 */ li $at, 1 +/* 0C27F4 7F08DC84 8C420004 */ lw $v0, 4($v0) +/* 0C27F8 7F08DC88 0FC236F3 */ jal get_textoverride_by_obj +/* 0C27FC 7F08DC8C 8C440004 */ lw $a0, 4($v0) +/* 0C2800 7F08DC90 50400021 */ beql $v0, $zero, .Ljp7F08DD18 +/* 0C2804 7F08DC94 00001025 */ move $v0, $zero +/* 0C2808 7F08DC98 1000001F */ b .Ljp7F08DD18 +/* 0C280C 7F08DC9C 8C420008 */ lw $v0, 8($v0) +/* 0C2810 7F08DCA0 24010001 */ li $at, 1 +.Ljp7F08DCA4: +/* 0C2814 7F08DCA4 5481001C */ bnel $a0, $at, .Ljp7F08DD18 +/* 0C2818 7F08DCA8 00001025 */ move $v0, $zero +/* 0C281C 7F08DCAC 1000001A */ b .Ljp7F08DD18 +/* 0C2820 7F08DCB0 8C620004 */ lw $v0, 4($v1) +.Ljp7F08DCB4: +/* 0C2824 7F08DCB4 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0C2828 7F08DCB8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0C282C 7F08DCBC 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2830 7F08DCC0 8DCF11EC */ lw $t7, 0x11ec($t6) +/* 0C2834 7F08DCC4 51E00014 */ beql $t7, $zero, .Ljp7F08DD18 +/* 0C2838 7F08DCC8 00001025 */ move $v0, $zero +/* 0C283C 7F08DCCC 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2840 7F08DCD0 24030020 */ li $v1, 32 +/* 0C2844 7F08DCD4 10400003 */ beqz $v0, .Ljp7F08DCE4 +/* 0C2848 7F08DCD8 00000000 */ nop +/* 0C284C 7F08DCDC 10000001 */ b .Ljp7F08DCE4 +/* 0C2850 7F08DCE0 2403001F */ li $v1, 31 +.Ljp7F08DCE4: +/* 0C2854 7F08DCE4 0083082A */ slt $at, $a0, $v1 +/* 0C2858 7F08DCE8 5020000B */ beql $at, $zero, .Ljp7F08DD18 +/* 0C285C 7F08DCEC 00001025 */ move $v0, $zero +/* 0C2860 7F08DCF0 10400006 */ beqz $v0, .Ljp7F08DD0C +/* 0C2864 7F08DCF4 24980001 */ addiu $t8, $a0, 1 +/* 0C2868 7F08DCF8 2B010002 */ slti $at, $t8, 2 +/* 0C286C 7F08DCFC 14200003 */ bnez $at, .Ljp7F08DD0C +/* 0C2870 7F08DD00 00000000 */ nop +/* 0C2874 7F08DD04 10000004 */ b .Ljp7F08DD18 +/* 0C2878 7F08DD08 24820002 */ addiu $v0, $a0, 2 +.Ljp7F08DD0C: +/* 0C287C 7F08DD0C 10000002 */ b .Ljp7F08DD18 +/* 0C2880 7F08DD10 24820001 */ addiu $v0, $a0, 1 +/* 0C2884 7F08DD14 00001025 */ move $v0, $zero +.Ljp7F08DD18: +/* 0C2888 7F08DD18 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C288C 7F08DD1C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C2890 7F08DD20 03E00008 */ jr $ra +/* 0C2894 7F08DD24 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D340(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D340 +/* 0C1E70 7F08D340 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1E74 7F08D344 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1E78 7F08D348 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1E7C 7F08D34C AFA40020 */ sw $a0, 0x20($sp) +/* 0C1E80 7F08D350 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1E84 7F08D354 00401825 */ move $v1, $v0 +/* 0C1E88 7F08D358 10400024 */ beqz $v0, .L7F08D3EC +/* 0C1E8C 7F08D35C 00003025 */ move $a2, $zero +/* 0C1E90 7F08D360 8C440000 */ lw $a0, ($v0) +/* 0C1E94 7F08D364 24010002 */ li $at, 2 +/* 0C1E98 7F08D368 54810012 */ bnel $a0, $at, .L7F08D3B4 +/* 0C1E9C 7F08D36C 24010001 */ li $at, 1 +/* 0C1EA0 7F08D370 8C420004 */ lw $v0, 4($v0) +/* 0C1EA4 7F08D374 8C440004 */ lw $a0, 4($v0) +/* 0C1EA8 7F08D378 0FC23487 */ jal get_textoverride_by_obj +/* 0C1EAC 7F08D37C AFA00018 */ sw $zero, 0x18($sp) +/* 0C1EB0 7F08D380 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1EB4 7F08D384 10400025 */ beqz $v0, .L7F08D41C +/* 0C1EB8 7F08D388 00401825 */ move $v1, $v0 +/* 0C1EBC 7F08D38C 8C4E0014 */ lw $t6, 0x14($v0) +/* 0C1EC0 7F08D390 11C00005 */ beqz $t6, .L7F08D3A8 +/* 0C1EC4 7F08D394 00000000 */ nop +/* 0C1EC8 7F08D398 0FC30776 */ jal get_textptr_for_textID +/* 0C1ECC 7F08D39C 8C640014 */ lw $a0, 0x14($v1) +/* 0C1ED0 7F08D3A0 10000021 */ b .L7F08D428 +/* 0C1ED4 7F08D3A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3A8: +/* 0C1ED8 7F08D3A8 1000001C */ b .L7F08D41C +/* 0C1EDC 7F08D3AC 8C460008 */ lw $a2, 8($v0) +/* 0C1EE0 7F08D3B0 24010001 */ li $at, 1 +.L7F08D3B4: +/* 0C1EE4 7F08D3B4 14810019 */ bne $a0, $at, .L7F08D41C +/* 0C1EE8 7F08D3B8 00000000 */ nop +/* 0C1EEC 7F08D3BC 8C640004 */ lw $a0, 4($v1) +/* 0C1EF0 7F08D3C0 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1EF4 7F08D3C4 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1EF8 7F08D3C8 10400014 */ beqz $v0, .L7F08D41C +/* 0C1EFC 7F08D3CC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1F00 7F08D3D0 8C4F0014 */ lw $t7, 0x14($v0) +/* 0C1F04 7F08D3D4 11E00011 */ beqz $t7, .L7F08D41C +/* 0C1F08 7F08D3D8 00000000 */ nop +/* 0C1F0C 7F08D3DC 0FC30776 */ jal get_textptr_for_textID +/* 0C1F10 7F08D3E0 8C440014 */ lw $a0, 0x14($v0) +/* 0C1F14 7F08D3E4 10000010 */ b .L7F08D428 +/* 0C1F18 7F08D3E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3EC: +/* 0C1F1C 7F08D3EC 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C1F20 7F08D3F0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C1F24 7F08D3F4 28A10020 */ slti $at, $a1, 0x20 +/* 0C1F28 7F08D3F8 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C1F2C 7F08D3FC 13200007 */ beqz $t9, .L7F08D41C +/* 0C1F30 7F08D400 00000000 */ nop +/* 0C1F34 7F08D404 10200005 */ beqz $at, .L7F08D41C +/* 0C1F38 7F08D408 00000000 */ nop +/* 0C1F3C 7F08D40C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F40 7F08D410 24A40001 */ addiu $a0, $a1, 1 +/* 0C1F44 7F08D414 10000004 */ b .L7F08D428 +/* 0C1F48 7F08D418 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D41C: +/* 0C1F4C 7F08D41C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F50 7F08D420 00C02025 */ move $a0, $a2 +/* 0C1F54 7F08D424 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D428: +/* 0C1F58 7F08D428 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C1F5C 7F08D42C 03E00008 */ jr $ra +/* 0C1F60 7F08D430 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D340 +/* 0C2898 7F08DD28 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C289C 7F08DD2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C28A0 7F08DD30 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C28A4 7F08DD34 AFA40020 */ sw $a0, 0x20($sp) +/* 0C28A8 7F08DD38 8FA50020 */ lw $a1, 0x20($sp) +/* 0C28AC 7F08DD3C 00401825 */ move $v1, $v0 +/* 0C28B0 7F08DD40 10400024 */ beqz $v0, .Ljp7F08DDD4 +/* 0C28B4 7F08DD44 00003025 */ move $a2, $zero +/* 0C28B8 7F08DD48 8C440000 */ lw $a0, ($v0) +/* 0C28BC 7F08DD4C 24010002 */ li $at, 2 +/* 0C28C0 7F08DD50 54810012 */ bnel $a0, $at, .Ljp7F08DD9C +/* 0C28C4 7F08DD54 24010001 */ li $at, 1 +/* 0C28C8 7F08DD58 8C420004 */ lw $v0, 4($v0) +/* 0C28CC 7F08DD5C 8C440004 */ lw $a0, 4($v0) +/* 0C28D0 7F08DD60 0FC236F3 */ jal get_textoverride_by_obj +/* 0C28D4 7F08DD64 AFA00018 */ sw $zero, 0x18($sp) +/* 0C28D8 7F08DD68 8FA60018 */ lw $a2, 0x18($sp) +/* 0C28DC 7F08DD6C 10400035 */ beqz $v0, .Ljp7F08DE44 +/* 0C28E0 7F08DD70 00401825 */ move $v1, $v0 +/* 0C28E4 7F08DD74 8C4E0014 */ lw $t6, 0x14($v0) +/* 0C28E8 7F08DD78 11C00005 */ beqz $t6, .Ljp7F08DD90 +/* 0C28EC 7F08DD7C 00000000 */ nop +/* 0C28F0 7F08DD80 0FC30AA2 */ jal get_textptr_for_textID +/* 0C28F4 7F08DD84 8C640014 */ lw $a0, 0x14($v1) +/* 0C28F8 7F08DD88 10000031 */ b .Ljp7F08DE50 +/* 0C28FC 7F08DD8C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DD90: +/* 0C2900 7F08DD90 1000002C */ b .Ljp7F08DE44 +/* 0C2904 7F08DD94 8C460008 */ lw $a2, 8($v0) +/* 0C2908 7F08DD98 24010001 */ li $at, 1 +.Ljp7F08DD9C: +/* 0C290C 7F08DD9C 14810029 */ bne $a0, $at, .Ljp7F08DE44 +/* 0C2910 7F08DDA0 00000000 */ nop +/* 0C2914 7F08DDA4 8C640004 */ lw $a0, 4($v1) +/* 0C2918 7F08DDA8 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C291C 7F08DDAC AFA40018 */ sw $a0, 0x18($sp) +/* 0C2920 7F08DDB0 10400024 */ beqz $v0, .Ljp7F08DE44 +/* 0C2924 7F08DDB4 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2928 7F08DDB8 8C4F0014 */ lw $t7, 0x14($v0) +/* 0C292C 7F08DDBC 11E00021 */ beqz $t7, .Ljp7F08DE44 +/* 0C2930 7F08DDC0 00000000 */ nop +/* 0C2934 7F08DDC4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2938 7F08DDC8 8C440014 */ lw $a0, 0x14($v0) +/* 0C293C 7F08DDCC 10000020 */ b .Ljp7F08DE50 +/* 0C2940 7F08DDD0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DDD4: +/* 0C2944 7F08DDD4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2948 7F08DDD8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C294C 7F08DDDC 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2950 7F08DDE0 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2954 7F08DDE4 13200017 */ beqz $t9, .Ljp7F08DE44 +/* 0C2958 7F08DDE8 00000000 */ nop +/* 0C295C 7F08DDEC 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2960 7F08DDF0 24030020 */ li $v1, 32 +/* 0C2964 7F08DDF4 10400003 */ beqz $v0, .Ljp7F08DE04 +/* 0C2968 7F08DDF8 00000000 */ nop +/* 0C296C 7F08DDFC 10000001 */ b .Ljp7F08DE04 +/* 0C2970 7F08DE00 2403001F */ li $v1, 31 +.Ljp7F08DE04: +/* 0C2974 7F08DE04 00A3082A */ slt $at, $a1, $v1 +/* 0C2978 7F08DE08 1020000E */ beqz $at, .Ljp7F08DE44 +/* 0C297C 7F08DE0C 00000000 */ nop +/* 0C2980 7F08DE10 10400008 */ beqz $v0, .Ljp7F08DE34 +/* 0C2984 7F08DE14 24A80001 */ addiu $t0, $a1, 1 +/* 0C2988 7F08DE18 29010002 */ slti $at, $t0, 2 +/* 0C298C 7F08DE1C 14200005 */ bnez $at, .Ljp7F08DE34 +/* 0C2990 7F08DE20 00000000 */ nop +/* 0C2994 7F08DE24 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C2998 7F08DE28 24A40002 */ addiu $a0, $a1, 2 +/* 0C299C 7F08DE2C 10000008 */ b .Ljp7F08DE50 +/* 0C29A0 7F08DE30 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE34: +/* 0C29A4 7F08DE34 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C29A8 7F08DE38 24A40001 */ addiu $a0, $a1, 1 +/* 0C29AC 7F08DE3C 10000004 */ b .Ljp7F08DE50 +/* 0C29B0 7F08DE40 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE44: +/* 0C29B4 7F08DE44 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C29B8 7F08DE48 00C02025 */ move $a0, $a2 +/* 0C29BC 7F08DE4C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE50: +/* 0C29C0 7F08DE50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C29C4 7F08DE54 03E00008 */ jr $ra +/* 0C29C8 7F08DE58 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08D434(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D434 +/* 0C1F64 7F08D434 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1F68 7F08D438 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1F6C 7F08D43C 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1F70 7F08D440 AFA40020 */ sw $a0, 0x20($sp) +/* 0C1F74 7F08D444 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1F78 7F08D448 00401825 */ move $v1, $v0 +/* 0C1F7C 7F08D44C 10400024 */ beqz $v0, .L7F08D4E0 +/* 0C1F80 7F08D450 00003025 */ move $a2, $zero +/* 0C1F84 7F08D454 8C440000 */ lw $a0, ($v0) +/* 0C1F88 7F08D458 24010002 */ li $at, 2 +/* 0C1F8C 7F08D45C 54810012 */ bnel $a0, $at, .L7F08D4A8 +/* 0C1F90 7F08D460 24010001 */ li $at, 1 +/* 0C1F94 7F08D464 8C420004 */ lw $v0, 4($v0) +/* 0C1F98 7F08D468 8C440004 */ lw $a0, 4($v0) +/* 0C1F9C 7F08D46C 0FC23487 */ jal get_textoverride_by_obj +/* 0C1FA0 7F08D470 AFA00018 */ sw $zero, 0x18($sp) +/* 0C1FA4 7F08D474 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FA8 7F08D478 10400025 */ beqz $v0, .L7F08D510 +/* 0C1FAC 7F08D47C 00401825 */ move $v1, $v0 +/* 0C1FB0 7F08D480 8C4E0018 */ lw $t6, 0x18($v0) +/* 0C1FB4 7F08D484 11C00005 */ beqz $t6, .L7F08D49C +/* 0C1FB8 7F08D488 00000000 */ nop +/* 0C1FBC 7F08D48C 0FC30776 */ jal get_textptr_for_textID +/* 0C1FC0 7F08D490 8C640018 */ lw $a0, 0x18($v1) +/* 0C1FC4 7F08D494 10000021 */ b .L7F08D51C +/* 0C1FC8 7F08D498 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D49C: +/* 0C1FCC 7F08D49C 1000001C */ b .L7F08D510 +/* 0C1FD0 7F08D4A0 8C460008 */ lw $a2, 8($v0) +/* 0C1FD4 7F08D4A4 24010001 */ li $at, 1 +.L7F08D4A8: +/* 0C1FD8 7F08D4A8 14810019 */ bne $a0, $at, .L7F08D510 +/* 0C1FDC 7F08D4AC 00000000 */ nop +/* 0C1FE0 7F08D4B0 8C640004 */ lw $a0, 4($v1) +/* 0C1FE4 7F08D4B4 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1FE8 7F08D4B8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1FEC 7F08D4BC 10400014 */ beqz $v0, .L7F08D510 +/* 0C1FF0 7F08D4C0 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FF4 7F08D4C4 8C4F0018 */ lw $t7, 0x18($v0) +/* 0C1FF8 7F08D4C8 11E00011 */ beqz $t7, .L7F08D510 +/* 0C1FFC 7F08D4CC 00000000 */ nop +/* 0C2000 7F08D4D0 0FC30776 */ jal get_textptr_for_textID +/* 0C2004 7F08D4D4 8C440018 */ lw $a0, 0x18($v0) +/* 0C2008 7F08D4D8 10000010 */ b .L7F08D51C +/* 0C200C 7F08D4DC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D4E0: +/* 0C2010 7F08D4E0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C2014 7F08D4E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2018 7F08D4E8 28A10020 */ slti $at, $a1, 0x20 +/* 0C201C 7F08D4EC 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2020 7F08D4F0 13200007 */ beqz $t9, .L7F08D510 +/* 0C2024 7F08D4F4 00000000 */ nop +/* 0C2028 7F08D4F8 10200005 */ beqz $at, .L7F08D510 +/* 0C202C 7F08D4FC 00000000 */ nop +/* 0C2030 7F08D500 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2034 7F08D504 24A40001 */ addiu $a0, $a1, 1 +/* 0C2038 7F08D508 10000004 */ b .L7F08D51C +/* 0C203C 7F08D50C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D510: +/* 0C2040 7F08D510 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2044 7F08D514 00C02025 */ move $a0, $a2 +/* 0C2048 7F08D518 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D51C: +/* 0C204C 7F08D51C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2050 7F08D520 03E00008 */ jr $ra +/* 0C2054 7F08D524 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D434 +/* 0C29CC 7F08DE5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C29D0 7F08DE60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C29D4 7F08DE64 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C29D8 7F08DE68 AFA40020 */ sw $a0, 0x20($sp) +/* 0C29DC 7F08DE6C 8FA50020 */ lw $a1, 0x20($sp) +/* 0C29E0 7F08DE70 00401825 */ move $v1, $v0 +/* 0C29E4 7F08DE74 10400024 */ beqz $v0, .Ljp7F08DF08 +/* 0C29E8 7F08DE78 00003025 */ move $a2, $zero +/* 0C29EC 7F08DE7C 8C440000 */ lw $a0, ($v0) +/* 0C29F0 7F08DE80 24010002 */ li $at, 2 +/* 0C29F4 7F08DE84 54810012 */ bnel $a0, $at, .Ljp7F08DED0 +/* 0C29F8 7F08DE88 24010001 */ li $at, 1 +/* 0C29FC 7F08DE8C 8C420004 */ lw $v0, 4($v0) +/* 0C2A00 7F08DE90 8C440004 */ lw $a0, 4($v0) +/* 0C2A04 7F08DE94 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2A08 7F08DE98 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2A0C 7F08DE9C 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2A10 7F08DEA0 10400035 */ beqz $v0, .Ljp7F08DF78 +/* 0C2A14 7F08DEA4 00401825 */ move $v1, $v0 +/* 0C2A18 7F08DEA8 8C4E0018 */ lw $t6, 0x18($v0) +/* 0C2A1C 7F08DEAC 11C00005 */ beqz $t6, .Ljp7F08DEC4 +/* 0C2A20 7F08DEB0 00000000 */ nop +/* 0C2A24 7F08DEB4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2A28 7F08DEB8 8C640018 */ lw $a0, 0x18($v1) +/* 0C2A2C 7F08DEBC 10000031 */ b .Ljp7F08DF84 +/* 0C2A30 7F08DEC0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DEC4: +/* 0C2A34 7F08DEC4 1000002C */ b .Ljp7F08DF78 +/* 0C2A38 7F08DEC8 8C460008 */ lw $a2, 8($v0) +/* 0C2A3C 7F08DECC 24010001 */ li $at, 1 +.Ljp7F08DED0: +/* 0C2A40 7F08DED0 14810029 */ bne $a0, $at, .Ljp7F08DF78 +/* 0C2A44 7F08DED4 00000000 */ nop +/* 0C2A48 7F08DED8 8C640004 */ lw $a0, 4($v1) +/* 0C2A4C 7F08DEDC 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2A50 7F08DEE0 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2A54 7F08DEE4 10400024 */ beqz $v0, .Ljp7F08DF78 +/* 0C2A58 7F08DEE8 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2A5C 7F08DEEC 8C4F0018 */ lw $t7, 0x18($v0) +/* 0C2A60 7F08DEF0 11E00021 */ beqz $t7, .Ljp7F08DF78 +/* 0C2A64 7F08DEF4 00000000 */ nop +/* 0C2A68 7F08DEF8 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2A6C 7F08DEFC 8C440018 */ lw $a0, 0x18($v0) +/* 0C2A70 7F08DF00 10000020 */ b .Ljp7F08DF84 +/* 0C2A74 7F08DF04 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF08: +/* 0C2A78 7F08DF08 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2A7C 7F08DF0C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2A80 7F08DF10 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2A84 7F08DF14 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2A88 7F08DF18 13200017 */ beqz $t9, .Ljp7F08DF78 +/* 0C2A8C 7F08DF1C 00000000 */ nop +/* 0C2A90 7F08DF20 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2A94 7F08DF24 24030020 */ li $v1, 32 +/* 0C2A98 7F08DF28 10400003 */ beqz $v0, .Ljp7F08DF38 +/* 0C2A9C 7F08DF2C 00000000 */ nop +/* 0C2AA0 7F08DF30 10000001 */ b .Ljp7F08DF38 +/* 0C2AA4 7F08DF34 2403001F */ li $v1, 31 +.Ljp7F08DF38: +/* 0C2AA8 7F08DF38 00A3082A */ slt $at, $a1, $v1 +/* 0C2AAC 7F08DF3C 1020000E */ beqz $at, .Ljp7F08DF78 +/* 0C2AB0 7F08DF40 00000000 */ nop +/* 0C2AB4 7F08DF44 10400008 */ beqz $v0, .Ljp7F08DF68 +/* 0C2AB8 7F08DF48 24A80001 */ addiu $t0, $a1, 1 +/* 0C2ABC 7F08DF4C 29010002 */ slti $at, $t0, 2 +/* 0C2AC0 7F08DF50 14200005 */ bnez $at, .Ljp7F08DF68 +/* 0C2AC4 7F08DF54 00000000 */ nop +/* 0C2AC8 7F08DF58 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2ACC 7F08DF5C 24A40002 */ addiu $a0, $a1, 2 +/* 0C2AD0 7F08DF60 10000008 */ b .Ljp7F08DF84 +/* 0C2AD4 7F08DF64 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF68: +/* 0C2AD8 7F08DF68 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2ADC 7F08DF6C 24A40001 */ addiu $a0, $a1, 1 +/* 0C2AE0 7F08DF70 10000004 */ b .Ljp7F08DF84 +/* 0C2AE4 7F08DF74 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF78: +/* 0C2AE8 7F08DF78 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2AEC 7F08DF7C 00C02025 */ move $a0, $a2 +/* 0C2AF0 7F08DF80 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF84: +/* 0C2AF4 7F08DF84 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2AF8 7F08DF88 03E00008 */ jr $ra +/* 0C2AFC 7F08DF8C 00000000 */ nop +) +#endif + +#endif + + + + +int sub_GAME_7F08D528(int index) { + return get_45_degree_angle_0(get_weaponnum_by_inv_index(index)); +} + + + + + + +int sub_GAME_7F08D550(int index) { + return get_horizontal_offset_on_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D578(int index) { + return get_vertical_offset_on_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D5A0(int index) { + return get_depth_offset_solo_watch_menu_inventory_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D5C8(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D5C8 +/* 0C20F8 7F08D5C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C20FC 7F08D5CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2100 7F08D5D0 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C2104 7F08D5D4 AFA40020 */ sw $a0, 0x20($sp) +/* 0C2108 7F08D5D8 8FA50020 */ lw $a1, 0x20($sp) +/* 0C210C 7F08D5DC 00401825 */ move $v1, $v0 +/* 0C2110 7F08D5E0 10400024 */ beqz $v0, .L7F08D674 +/* 0C2114 7F08D5E4 00003025 */ move $a2, $zero +/* 0C2118 7F08D5E8 8C440000 */ lw $a0, ($v0) +/* 0C211C 7F08D5EC 24010002 */ li $at, 2 +/* 0C2120 7F08D5F0 54810012 */ bnel $a0, $at, .L7F08D63C +/* 0C2124 7F08D5F4 24010001 */ li $at, 1 +/* 0C2128 7F08D5F8 8C420004 */ lw $v0, 4($v0) +/* 0C212C 7F08D5FC 8C440004 */ lw $a0, 4($v0) +/* 0C2130 7F08D600 0FC23487 */ jal get_textoverride_by_obj +/* 0C2134 7F08D604 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2138 7F08D608 8FA60018 */ lw $a2, 0x18($sp) +/* 0C213C 7F08D60C 10400025 */ beqz $v0, .L7F08D6A4 +/* 0C2140 7F08D610 00401825 */ move $v1, $v0 +/* 0C2144 7F08D614 8C4E000C */ lw $t6, 0xc($v0) +/* 0C2148 7F08D618 11C00005 */ beqz $t6, .L7F08D630 +/* 0C214C 7F08D61C 00000000 */ nop +/* 0C2150 7F08D620 0FC30776 */ jal get_textptr_for_textID +/* 0C2154 7F08D624 8C64000C */ lw $a0, 0xc($v1) +/* 0C2158 7F08D628 10000021 */ b .L7F08D6B0 +/* 0C215C 7F08D62C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D630: +/* 0C2160 7F08D630 1000001C */ b .L7F08D6A4 +/* 0C2164 7F08D634 8C460008 */ lw $a2, 8($v0) +/* 0C2168 7F08D638 24010001 */ li $at, 1 +.L7F08D63C: +/* 0C216C 7F08D63C 14810019 */ bne $a0, $at, .L7F08D6A4 +/* 0C2170 7F08D640 00000000 */ nop +/* 0C2174 7F08D644 8C640004 */ lw $a0, 4($v1) +/* 0C2178 7F08D648 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C217C 7F08D64C AFA40018 */ sw $a0, 0x18($sp) +/* 0C2180 7F08D650 10400014 */ beqz $v0, .L7F08D6A4 +/* 0C2184 7F08D654 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2188 7F08D658 8C4F000C */ lw $t7, 0xc($v0) +/* 0C218C 7F08D65C 11E00011 */ beqz $t7, .L7F08D6A4 +/* 0C2190 7F08D660 00000000 */ nop +/* 0C2194 7F08D664 0FC30776 */ jal get_textptr_for_textID +/* 0C2198 7F08D668 8C44000C */ lw $a0, 0xc($v0) +/* 0C219C 7F08D66C 10000010 */ b .L7F08D6B0 +/* 0C21A0 7F08D670 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D674: +/* 0C21A4 7F08D674 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C21A8 7F08D678 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C21AC 7F08D67C 28A10020 */ slti $at, $a1, 0x20 +/* 0C21B0 7F08D680 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C21B4 7F08D684 13200007 */ beqz $t9, .L7F08D6A4 +/* 0C21B8 7F08D688 00000000 */ nop +/* 0C21BC 7F08D68C 10200005 */ beqz $at, .L7F08D6A4 +/* 0C21C0 7F08D690 00000000 */ nop +/* 0C21C4 7F08D694 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21C8 7F08D698 24A40001 */ addiu $a0, $a1, 1 +/* 0C21CC 7F08D69C 10000004 */ b .L7F08D6B0 +/* 0C21D0 7F08D6A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6A4: +/* 0C21D4 7F08D6A4 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21D8 7F08D6A8 00C02025 */ move $a0, $a2 +/* 0C21DC 7F08D6AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6B0: +/* 0C21E0 7F08D6B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C21E4 7F08D6B4 03E00008 */ jr $ra +/* 0C21E8 7F08D6B8 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D5C8 +/* 0C2BA0 7F08E030 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C2BA4 7F08E034 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2BA8 7F08E038 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C2BAC 7F08E03C AFA40020 */ sw $a0, 0x20($sp) +/* 0C2BB0 7F08E040 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2BB4 7F08E044 00401825 */ move $v1, $v0 +/* 0C2BB8 7F08E048 10400024 */ beqz $v0, .Ljp7F08E0DC +/* 0C2BBC 7F08E04C 00003025 */ move $a2, $zero +/* 0C2BC0 7F08E050 8C440000 */ lw $a0, ($v0) +/* 0C2BC4 7F08E054 24010002 */ li $at, 2 +/* 0C2BC8 7F08E058 54810012 */ bnel $a0, $at, .Ljp7F08E0A4 +/* 0C2BCC 7F08E05C 24010001 */ li $at, 1 +/* 0C2BD0 7F08E060 8C420004 */ lw $v0, 4($v0) +/* 0C2BD4 7F08E064 8C440004 */ lw $a0, 4($v0) +/* 0C2BD8 7F08E068 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2BDC 7F08E06C AFA00018 */ sw $zero, 0x18($sp) +/* 0C2BE0 7F08E070 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2BE4 7F08E074 10400035 */ beqz $v0, .Ljp7F08E14C +/* 0C2BE8 7F08E078 00401825 */ move $v1, $v0 +/* 0C2BEC 7F08E07C 8C4E000C */ lw $t6, 0xc($v0) +/* 0C2BF0 7F08E080 11C00005 */ beqz $t6, .Ljp7F08E098 +/* 0C2BF4 7F08E084 00000000 */ nop +/* 0C2BF8 7F08E088 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2BFC 7F08E08C 8C64000C */ lw $a0, 0xc($v1) +/* 0C2C00 7F08E090 10000031 */ b .Ljp7F08E158 +/* 0C2C04 7F08E094 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E098: +/* 0C2C08 7F08E098 1000002C */ b .Ljp7F08E14C +/* 0C2C0C 7F08E09C 8C460008 */ lw $a2, 8($v0) +/* 0C2C10 7F08E0A0 24010001 */ li $at, 1 +.Ljp7F08E0A4: +/* 0C2C14 7F08E0A4 14810029 */ bne $a0, $at, .Ljp7F08E14C +/* 0C2C18 7F08E0A8 00000000 */ nop +/* 0C2C1C 7F08E0AC 8C640004 */ lw $a0, 4($v1) +/* 0C2C20 7F08E0B0 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2C24 7F08E0B4 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2C28 7F08E0B8 10400024 */ beqz $v0, .Ljp7F08E14C +/* 0C2C2C 7F08E0BC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2C30 7F08E0C0 8C4F000C */ lw $t7, 0xc($v0) +/* 0C2C34 7F08E0C4 11E00021 */ beqz $t7, .Ljp7F08E14C +/* 0C2C38 7F08E0C8 00000000 */ nop +/* 0C2C3C 7F08E0CC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2C40 7F08E0D0 8C44000C */ lw $a0, 0xc($v0) +/* 0C2C44 7F08E0D4 10000020 */ b .Ljp7F08E158 +/* 0C2C48 7F08E0D8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E0DC: +/* 0C2C4C 7F08E0DC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2C50 7F08E0E0 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2C54 7F08E0E4 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2C58 7F08E0E8 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2C5C 7F08E0EC 13200017 */ beqz $t9, .Ljp7F08E14C +/* 0C2C60 7F08E0F0 00000000 */ nop +/* 0C2C64 7F08E0F4 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2C68 7F08E0F8 24030020 */ li $v1, 32 +/* 0C2C6C 7F08E0FC 10400003 */ beqz $v0, .Ljp7F08E10C +/* 0C2C70 7F08E100 00000000 */ nop +/* 0C2C74 7F08E104 10000001 */ b .Ljp7F08E10C +/* 0C2C78 7F08E108 2403001F */ li $v1, 31 +.Ljp7F08E10C: +/* 0C2C7C 7F08E10C 00A3082A */ slt $at, $a1, $v1 +/* 0C2C80 7F08E110 1020000E */ beqz $at, .Ljp7F08E14C +/* 0C2C84 7F08E114 00000000 */ nop +/* 0C2C88 7F08E118 10400008 */ beqz $v0, .Ljp7F08E13C +/* 0C2C8C 7F08E11C 24A80001 */ addiu $t0, $a1, 1 +/* 0C2C90 7F08E120 29010002 */ slti $at, $t0, 2 +/* 0C2C94 7F08E124 14200005 */ bnez $at, .Ljp7F08E13C +/* 0C2C98 7F08E128 00000000 */ nop +/* 0C2C9C 7F08E12C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CA0 7F08E130 24A40002 */ addiu $a0, $a1, 2 +/* 0C2CA4 7F08E134 10000008 */ b .Ljp7F08E158 +/* 0C2CA8 7F08E138 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E13C: +/* 0C2CAC 7F08E13C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CB0 7F08E140 24A40001 */ addiu $a0, $a1, 1 +/* 0C2CB4 7F08E144 10000004 */ b .Ljp7F08E158 +/* 0C2CB8 7F08E148 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E14C: +/* 0C2CBC 7F08E14C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CC0 7F08E150 00C02025 */ move $a0, $a2 +/* 0C2CC4 7F08E154 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E158: +/* 0C2CC8 7F08E158 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2CCC 7F08E15C 03E00008 */ jr $ra +/* 0C2CD0 7F08E160 00000000 */ nop +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D6BC(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D6BC +/* 0C21EC 7F08D6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C21F0 7F08D6C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C21F4 7F08D6C4 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C21F8 7F08D6C8 AFA40020 */ sw $a0, 0x20($sp) +/* 0C21FC 7F08D6CC 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2200 7F08D6D0 00401825 */ move $v1, $v0 +/* 0C2204 7F08D6D4 10400024 */ beqz $v0, .L7F08D768 +/* 0C2208 7F08D6D8 00003025 */ move $a2, $zero +/* 0C220C 7F08D6DC 8C440000 */ lw $a0, ($v0) +/* 0C2210 7F08D6E0 24010002 */ li $at, 2 +/* 0C2214 7F08D6E4 54810012 */ bnel $a0, $at, .L7F08D730 +/* 0C2218 7F08D6E8 24010001 */ li $at, 1 +/* 0C221C 7F08D6EC 8C420004 */ lw $v0, 4($v0) +/* 0C2220 7F08D6F0 8C440004 */ lw $a0, 4($v0) +/* 0C2224 7F08D6F4 0FC23487 */ jal get_textoverride_by_obj +/* 0C2228 7F08D6F8 AFA00018 */ sw $zero, 0x18($sp) +/* 0C222C 7F08D6FC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2230 7F08D700 10400025 */ beqz $v0, .L7F08D798 +/* 0C2234 7F08D704 00401825 */ move $v1, $v0 +/* 0C2238 7F08D708 8C4E0010 */ lw $t6, 0x10($v0) +/* 0C223C 7F08D70C 11C00005 */ beqz $t6, .L7F08D724 +/* 0C2240 7F08D710 00000000 */ nop +/* 0C2244 7F08D714 0FC30776 */ jal get_textptr_for_textID +/* 0C2248 7F08D718 8C640010 */ lw $a0, 0x10($v1) +/* 0C224C 7F08D71C 10000021 */ b .L7F08D7A4 +/* 0C2250 7F08D720 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D724: +/* 0C2254 7F08D724 1000001C */ b .L7F08D798 +/* 0C2258 7F08D728 8C460008 */ lw $a2, 8($v0) +/* 0C225C 7F08D72C 24010001 */ li $at, 1 +.L7F08D730: +/* 0C2260 7F08D730 14810019 */ bne $a0, $at, .L7F08D798 +/* 0C2264 7F08D734 00000000 */ nop +/* 0C2268 7F08D738 8C640004 */ lw $a0, 4($v1) +/* 0C226C 7F08D73C 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C2270 7F08D740 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2274 7F08D744 10400014 */ beqz $v0, .L7F08D798 +/* 0C2278 7F08D748 8FA60018 */ lw $a2, 0x18($sp) +/* 0C227C 7F08D74C 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C2280 7F08D750 11E00011 */ beqz $t7, .L7F08D798 +/* 0C2284 7F08D754 00000000 */ nop +/* 0C2288 7F08D758 0FC30776 */ jal get_textptr_for_textID +/* 0C228C 7F08D75C 8C440010 */ lw $a0, 0x10($v0) +/* 0C2290 7F08D760 10000010 */ b .L7F08D7A4 +/* 0C2294 7F08D764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D768: +/* 0C2298 7F08D768 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C229C 7F08D76C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C22A0 7F08D770 28A10020 */ slti $at, $a1, 0x20 +/* 0C22A4 7F08D774 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C22A8 7F08D778 13200007 */ beqz $t9, .L7F08D798 +/* 0C22AC 7F08D77C 00000000 */ nop +/* 0C22B0 7F08D780 10200005 */ beqz $at, .L7F08D798 +/* 0C22B4 7F08D784 00000000 */ nop +/* 0C22B8 7F08D788 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22BC 7F08D78C 24A40001 */ addiu $a0, $a1, 1 +/* 0C22C0 7F08D790 10000004 */ b .L7F08D7A4 +/* 0C22C4 7F08D794 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D798: +/* 0C22C8 7F08D798 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22CC 7F08D79C 00C02025 */ move $a0, $a2 +/* 0C22D0 7F08D7A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D7A4: +/* 0C22D4 7F08D7A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C22D8 7F08D7A8 03E00008 */ jr $ra +/* 0C22DC 7F08D7AC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D6BC +/* 0C2CD4 7F08E164 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C2CD8 7F08E168 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2CDC 7F08E16C 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C2CE0 7F08E170 AFA40020 */ sw $a0, 0x20($sp) +/* 0C2CE4 7F08E174 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2CE8 7F08E178 00401825 */ move $v1, $v0 +/* 0C2CEC 7F08E17C 10400024 */ beqz $v0, .Ljp7F08E210 +/* 0C2CF0 7F08E180 00003025 */ move $a2, $zero +/* 0C2CF4 7F08E184 8C440000 */ lw $a0, ($v0) +/* 0C2CF8 7F08E188 24010002 */ li $at, 2 +/* 0C2CFC 7F08E18C 54810012 */ bnel $a0, $at, .Ljp7F08E1D8 +/* 0C2D00 7F08E190 24010001 */ li $at, 1 +/* 0C2D04 7F08E194 8C420004 */ lw $v0, 4($v0) +/* 0C2D08 7F08E198 8C440004 */ lw $a0, 4($v0) +/* 0C2D0C 7F08E19C 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2D10 7F08E1A0 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2D14 7F08E1A4 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2D18 7F08E1A8 10400035 */ beqz $v0, .Ljp7F08E280 +/* 0C2D1C 7F08E1AC 00401825 */ move $v1, $v0 +/* 0C2D20 7F08E1B0 8C4E0010 */ lw $t6, 0x10($v0) +/* 0C2D24 7F08E1B4 11C00005 */ beqz $t6, .Ljp7F08E1CC +/* 0C2D28 7F08E1B8 00000000 */ nop +/* 0C2D2C 7F08E1BC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2D30 7F08E1C0 8C640010 */ lw $a0, 0x10($v1) +/* 0C2D34 7F08E1C4 10000031 */ b .Ljp7F08E28C +/* 0C2D38 7F08E1C8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E1CC: +/* 0C2D3C 7F08E1CC 1000002C */ b .Ljp7F08E280 +/* 0C2D40 7F08E1D0 8C460008 */ lw $a2, 8($v0) +/* 0C2D44 7F08E1D4 24010001 */ li $at, 1 +.Ljp7F08E1D8: +/* 0C2D48 7F08E1D8 14810029 */ bne $a0, $at, .Ljp7F08E280 +/* 0C2D4C 7F08E1DC 00000000 */ nop +/* 0C2D50 7F08E1E0 8C640004 */ lw $a0, 4($v1) +/* 0C2D54 7F08E1E4 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2D58 7F08E1E8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2D5C 7F08E1EC 10400024 */ beqz $v0, .Ljp7F08E280 +/* 0C2D60 7F08E1F0 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2D64 7F08E1F4 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C2D68 7F08E1F8 11E00021 */ beqz $t7, .Ljp7F08E280 +/* 0C2D6C 7F08E1FC 00000000 */ nop +/* 0C2D70 7F08E200 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2D74 7F08E204 8C440010 */ lw $a0, 0x10($v0) +/* 0C2D78 7F08E208 10000020 */ b .Ljp7F08E28C +/* 0C2D7C 7F08E20C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E210: +/* 0C2D80 7F08E210 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2D84 7F08E214 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2D88 7F08E218 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2D8C 7F08E21C 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2D90 7F08E220 13200017 */ beqz $t9, .Ljp7F08E280 +/* 0C2D94 7F08E224 00000000 */ nop +/* 0C2D98 7F08E228 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2D9C 7F08E22C 24030020 */ li $v1, 32 +/* 0C2DA0 7F08E230 10400003 */ beqz $v0, .Ljp7F08E240 +/* 0C2DA4 7F08E234 00000000 */ nop +/* 0C2DA8 7F08E238 10000001 */ b .Ljp7F08E240 +/* 0C2DAC 7F08E23C 2403001F */ li $v1, 31 +.Ljp7F08E240: +/* 0C2DB0 7F08E240 00A3082A */ slt $at, $a1, $v1 +/* 0C2DB4 7F08E244 1020000E */ beqz $at, .Ljp7F08E280 +/* 0C2DB8 7F08E248 00000000 */ nop +/* 0C2DBC 7F08E24C 10400008 */ beqz $v0, .Ljp7F08E270 +/* 0C2DC0 7F08E250 24A80001 */ addiu $t0, $a1, 1 +/* 0C2DC4 7F08E254 29010002 */ slti $at, $t0, 2 +/* 0C2DC8 7F08E258 14200005 */ bnez $at, .Ljp7F08E270 +/* 0C2DCC 7F08E25C 00000000 */ nop +/* 0C2DD0 7F08E260 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DD4 7F08E264 24A40002 */ addiu $a0, $a1, 2 +/* 0C2DD8 7F08E268 10000008 */ b .Ljp7F08E28C +/* 0C2DDC 7F08E26C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E270: +/* 0C2DE0 7F08E270 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DE4 7F08E274 24A40001 */ addiu $a0, $a1, 1 +/* 0C2DE8 7F08E278 10000004 */ b .Ljp7F08E28C +/* 0C2DEC 7F08E27C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E280: +/* 0C2DF0 7F08E280 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DF4 7F08E284 00C02025 */ move $a0, $a2 +/* 0C2DF8 7F08E288 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E28C: +/* 0C2DFC 7F08E28C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2E00 7F08E290 03E00008 */ jr $ra +/* 0C2E04 7F08E294 00000000 */ nop +) +#endif +#endif + + + + +int sub_GAME_7F08D7B0(int index) { + return get_45_degree_angle(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D7D8(int index) { + return get_vertical_position_solo_watch_menu_main_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + +int sub_GAME_7F08D800(int index) { + return get_lateral_position_solo_watch_menu_main_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D828(int index) { + return get_depth_on_solo_watch_menu_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D850(int index) { + return get_xrotation_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D878(int index) { + return get_yrotation_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + +void sub_GAME_7F08D8A0(textoverride *override) { + override->next = pPlayer->textoverrides; + pPlayer->textoverrides = override; +} + +int get_BONDdata_equipcuritem(void) { + return pPlayer->equipcuritem; +} + + +void set_BONDdata_equipcuritem(int current_item) { + pPlayer->equipcuritem = current_item; +} + +void calculate_equip_cur_item(void) { + s32 current_weapon; + s32 i; + + current_weapon = get_item_in_hand(RIGHT_HAND); + + pPlayer->equipcuritem = 0; + + for (i=0; i < count_total_items_in_inventory(); i++) { + + if (get_weaponnum_by_inv_index(i) == current_weapon) { + pPlayer->equipcuritem = i; + return; + } + + } +} + + +u8 *obj_get_activated_text(ObjectRecord *obj) { + + textoverride *override = get_textoverride_by_obj(obj); + + if (override && override->unk8) { + return get_textptr_for_textID(override->unk8); + } + + return NULL; +} + +u8 *weapon_get_activated_text(ITEM_IDS weaponnum) { + + textoverride *override = get_textoverride_by_weaponum(weaponnum); + + if (override && override->unk8) { + return get_textptr_for_textID(override->unk8); + } + + return NULL; +} + + +#ifdef NONMATCHING +void sub_GAME_7F08D9EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D9EC +/* 0C251C 7F08D9EC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C2520 7F08D9F0 AFB00014 */ sw $s0, 0x14($sp) +/* 0C2524 7F08D9F4 00A08025 */ move $s0, $a1 +/* 0C2528 7F08D9F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C252C 7F08D9FC AFB10018 */ sw $s1, 0x18($sp) +/* 0C2530 7F08DA00 00808825 */ move $s1, $a0 +/* 0C2534 7F08DA04 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C2538 7F08DA08 3C050002 */ lui $a1, 2 +/* 0C253C 7F08DA0C 10400039 */ beqz $v0, .L7F08DAF4 +/* 0C2540 7F08DA10 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 0C2544 7F08DA14 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 0C2548 7F08DA18 AFA60024 */ sw $a2, 0x24($sp) +/* 0C254C 7F08DA1C 02002025 */ move $a0, $s0 +/* 0C2550 7F08DA20 3C050002 */ lui $a1, 2 +/* 0C2554 7F08DA24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C2558 7F08DA28 AFA00020 */ sw $zero, 0x20($sp) +/* 0C255C 7F08DA2C 8FA60024 */ lw $a2, 0x24($sp) +/* 0C2560 7F08DA30 14400002 */ bnez $v0, .L7F08DA3C +/* 0C2564 7F08DA34 8FA70020 */ lw $a3, 0x20($sp) +/* 0C2568 7F08DA38 00008025 */ move $s0, $zero +.L7F08DA3C: +/* 0C256C 7F08DA3C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C2570 7F08DA40 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C2574 7F08DA44 00002025 */ move $a0, $zero +.L7F08DA48: +/* 0C2578 7F08DA48 8C431200 */ lw $v1, 0x1200($v0) +/* 0C257C 7F08DA4C 04600010 */ bltz $v1, .L7F08DA90 +/* 0C2580 7F08DA50 0066082A */ slt $at, $v1, $a2 +/* 0C2584 7F08DA54 8C4E11F8 */ lw $t6, 0x11f8($v0) +/* 0C2588 7F08DA58 162E0008 */ bne $s1, $t6, .L7F08DA7C +/* 0C258C 7F08DA5C 00000000 */ nop +/* 0C2590 7F08DA60 8C4F11FC */ lw $t7, 0x11fc($v0) +/* 0C2594 7F08DA64 160F0005 */ bne $s0, $t7, .L7F08DA7C +/* 0C2598 7F08DA68 3C188005 */ lui $t8, %hi(clock_timer) +/* 0C259C 7F08DA6C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0C25A0 7F08DA70 0078C821 */ addu $t9, $v1, $t8 +/* 0C25A4 7F08DA74 1000000D */ b .L7F08DAAC +/* 0C25A8 7F08DA78 AC591200 */ sw $t9, 0x1200($v0) +.L7F08DA7C: +/* 0C25AC 7F08DA7C 50200008 */ beql $at, $zero, .L7F08DAA0 +/* 0C25B0 7F08DA80 24840001 */ addiu $a0, $a0, 1 +/* 0C25B4 7F08DA84 00603025 */ move $a2, $v1 +/* 0C25B8 7F08DA88 10000004 */ b .L7F08DA9C +/* 0C25BC 7F08DA8C 00803825 */ move $a3, $a0 +.L7F08DA90: +/* 0C25C0 7F08DA90 00803825 */ move $a3, $a0 +/* 0C25C4 7F08DA94 10000005 */ b .L7F08DAAC +/* 0C25C8 7F08DA98 2404000A */ li $a0, 10 +.L7F08DA9C: +/* 0C25CC 7F08DA9C 24840001 */ addiu $a0, $a0, 1 +.L7F08DAA0: +/* 0C25D0 7F08DAA0 2881000A */ slti $at, $a0, 0xa +/* 0C25D4 7F08DAA4 1420FFE8 */ bnez $at, .L7F08DA48 +/* 0C25D8 7F08DAA8 2442000C */ addiu $v0, $v0, 0xc +.L7F08DAAC: +/* 0C25DC 7F08DAAC 2401000A */ li $at, 10 +/* 0C25E0 7F08DAB0 14810010 */ bne $a0, $at, .L7F08DAF4 +/* 0C25E4 7F08DAB4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C25E8 7F08DAB8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0C25EC 7F08DABC 8C690000 */ lw $t1, ($v1) +/* 0C25F0 7F08DAC0 00071080 */ sll $v0, $a3, 2 +/* 0C25F4 7F08DAC4 3C088005 */ lui $t0, %hi(clock_timer) +/* 0C25F8 7F08DAC8 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 0C25FC 7F08DACC 00471023 */ subu $v0, $v0, $a3 +/* 0C2600 7F08DAD0 00021080 */ sll $v0, $v0, 2 +/* 0C2604 7F08DAD4 01225021 */ addu $t2, $t1, $v0 +/* 0C2608 7F08DAD8 AD481200 */ sw $t0, 0x1200($t2) +/* 0C260C 7F08DADC 8C6B0000 */ lw $t3, ($v1) +/* 0C2610 7F08DAE0 01626021 */ addu $t4, $t3, $v0 +/* 0C2614 7F08DAE4 AD9111F8 */ sw $s1, 0x11f8($t4) +/* 0C2618 7F08DAE8 8C6D0000 */ lw $t5, ($v1) +/* 0C261C 7F08DAEC 01A27021 */ addu $t6, $t5, $v0 +/* 0C2620 7F08DAF0 ADD011FC */ sw $s0, 0x11fc($t6) +.L7F08DAF4: +/* 0C2624 7F08DAF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C2628 7F08DAF8 8FB00014 */ lw $s0, 0x14($sp) +/* 0C262C 7F08DAFC 8FB10018 */ lw $s1, 0x18($sp) +/* 0C2630 7F08DB00 03E00008 */ jr $ra +/* 0C2634 7F08DB04 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DB08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08DB08 +/* 0C2638 7F08DB08 AC800000 */ sw $zero, ($a0) +/* 0C263C 7F08DB0C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C2640 7F08DB10 2402FFFF */ li $v0, -1 +/* 0C2644 7F08DB14 ACA00000 */ sw $zero, ($a1) +/* 0C2648 7F08DB18 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0C264C 7F08DB1C 00003025 */ move $a2, $zero +/* 0C2650 7F08DB20 24090078 */ li $t1, 120 +/* 0C2654 7F08DB24 8D0E0000 */ lw $t6, ($t0) +.L7F08DB28: +/* 0C2658 7F08DB28 01C61821 */ addu $v1, $t6, $a2 +/* 0C265C 7F08DB2C 8C671200 */ lw $a3, 0x1200($v1) +/* 0C2660 7F08DB30 04E0000C */ bltz $a3, .L7F08DB64 +/* 0C2664 7F08DB34 0047082A */ slt $at, $v0, $a3 +/* 0C2668 7F08DB38 5020000B */ beql $at, $zero, .L7F08DB68 +/* 0C266C 7F08DB3C 8C67120C */ lw $a3, 0x120c($v1) +/* 0C2670 7F08DB40 8C6F11F8 */ lw $t7, 0x11f8($v1) +/* 0C2674 7F08DB44 00E01025 */ move $v0, $a3 +/* 0C2678 7F08DB48 AC8F0000 */ sw $t7, ($a0) +/* 0C267C 7F08DB4C 8D180000 */ lw $t8, ($t0) +/* 0C2680 7F08DB50 0306C821 */ addu $t9, $t8, $a2 +/* 0C2684 7F08DB54 8F2A11FC */ lw $t2, 0x11fc($t9) +/* 0C2688 7F08DB58 ACAA0000 */ sw $t2, ($a1) +/* 0C268C 7F08DB5C 8D0B0000 */ lw $t3, ($t0) +/* 0C2690 7F08DB60 01661821 */ addu $v1, $t3, $a2 +.L7F08DB64: +/* 0C2694 7F08DB64 8C67120C */ lw $a3, 0x120c($v1) +.L7F08DB68: +/* 0C2698 7F08DB68 04E0000A */ bltz $a3, .L7F08DB94 +/* 0C269C 7F08DB6C 0047082A */ slt $at, $v0, $a3 +/* 0C26A0 7F08DB70 50200009 */ beql $at, $zero, .L7F08DB98 +/* 0C26A4 7F08DB74 24C60018 */ addiu $a2, $a2, 0x18 +/* 0C26A8 7F08DB78 8C6C1204 */ lw $t4, 0x1204($v1) +/* 0C26AC 7F08DB7C 00E01025 */ move $v0, $a3 +/* 0C26B0 7F08DB80 AC8C0000 */ sw $t4, ($a0) +/* 0C26B4 7F08DB84 8D0D0000 */ lw $t5, ($t0) +/* 0C26B8 7F08DB88 01A67021 */ addu $t6, $t5, $a2 +/* 0C26BC 7F08DB8C 8DCF1208 */ lw $t7, 0x1208($t6) +/* 0C26C0 7F08DB90 ACAF0000 */ sw $t7, ($a1) +.L7F08DB94: +/* 0C26C4 7F08DB94 24C60018 */ addiu $a2, $a2, 0x18 +.L7F08DB98: +/* 0C26C8 7F08DB98 54C9FFE3 */ bnel $a2, $t1, .L7F08DB28 +/* 0C26CC 7F08DB9C 8D0E0000 */ lw $t6, ($t0) +/* 0C26D0 7F08DBA0 03E00008 */ jr $ra +/* 0C26D4 7F08DBA4 00000000 */ nop +) +#endif + + + diff --git a/src/game/bondinv.h b/src/game/bondinv.h new file mode 100644 index 0000000..9cbd756 --- /dev/null +++ b/src/game/bondinv.h @@ -0,0 +1,8 @@ +#ifndef _BONDINV_H_ +#define _BONDINV_H_ +#include "ultra64.h" + +void reinit_BONDdata_inventory(void); +s32 bondinvIsAliveWithFlag(void); + +#endif diff --git a/src/game/bondwalk.c b/src/game/bondwalk.c new file mode 100644 index 0000000..4f6ff45 --- /dev/null +++ b/src/game/bondwalk.c @@ -0,0 +1,24961 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "bondtypes.h" +#include "game/bond.h" +#include "game/bondwalk.h" +#include "game/chrobjdata.h" + +#include "bondgame.h" + +#include "game/unk_093880.h" +#include "music.h" +#include "game/lvl.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; +char dword_CODE_bss_80075DC8[0x9C]; +s32 dword_CODE_bss_80075E64; +char dword_CODE_bss_80075E68[0xBE0]; +s32 dword_CODE_bss_80076A48; + + +// data +//D:80032440 +struct rgba_val D_80032440[] = { + {0x96, 0x96, 0x96, 0}, + {0x96, 0x96, 0x96, 0} +}; + +//D:80032448 +struct rgba_val D_80032448[] = { + {0xFF, 0xFF, 0xFF, 0}, + {0xFF, 0xFF, 0xFF, 0}, + {0xB2, 0x4D, 0x2E, 0} +}; +//D:80032454 +u32 D_80032454 = 0; + +//D:80032458 +u32 D_80032458 = 0; + +//D:8003245C +u32 size_item_buffer[] = {0x14820, 0x14820}; + +//D:80032464 +u32 D_80032464[] ={0x7530, 0x7530}; + + + +//D:8003246C +struct ejected_cart ejected_cartridge[] = { + {&GcartridgeZ_struct, "GcartridgeZ"}, + {&GcartrifleZ_struct, "GcartrifleZ"}, + {&GcartblueZ_struct, "GcartblueZ"}, + {&GcartshellZ_struct, "GcartshellZ"}, + {0, ""} +}; + +#ifdef VERSION_US +#define SCALEVAL1 0.80000001 +#define SCALEVAL_KNIFE 0.80000001 +#define SCALEVAL_SKORPIAN 0.80000001 +#define SCALEVAL_AK47 0.80000001 +#define SCALEVAL_UZI 0.80000001 +#define SCALEVAL_P90 0.80000001 +#define SCALEVAL_RUGER 0.80000001 +#define SCALEVAL_LAUNCHER 0.80000001 +#endif +#ifdef VERSION_EU +//!FIXME temp copy of us data +#define SCALEVAL1 0.80000001 +#define SCALEVAL_KNIFE 0.80000001 +#define SCALEVAL_SKORPIAN 0.80000001 +#define SCALEVAL_AK47 0.80000001 +#define SCALEVAL_UZI 0.80000001 +#define SCALEVAL_P90 0.80000001 +#define SCALEVAL_RUGER 0.80000001 +#define SCALEVAL_LAUNCHER 0.80000001 +#endif +#ifdef VERSION_JP +#define SCALEVAL1 0.8812 +#define SCALEVAL_KNIFE 0.8228 +#define SCALEVAL_SKORPIAN 0.8695 +#define SCALEVAL_AK47 0.893 +#define SCALEVAL_UZI 0.8578 +#define SCALEVAL_P90 0.8461 +#define SCALEVAL_RUGER 0.8344 +#define SCALEVAL_LAUNCHER 0.9048 +#endif +//D:80032494 +struct weapon_stats default_weaponstats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80032504 +struct weapon_stats GfistZ_stats = { + 1.0, 11.0, -50.0, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 4.0,0.0, 0x64D91 +}; +//D:80032574 +struct weapon_stats GknifeZ_stats = { + 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0,4.0, 0.0, 0x160D91 +}; +//D:800325E4 +struct weapon_stats GthrowknifeZ_stats = { + 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0xA, 1, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0,2.0, 4.0, 1.0, 0x560D83 +}; + +//D:80032654 +struct weapon_stats GwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 1.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:800326C4 +struct weapon_stats GwppksilZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x2E, &GcartridgeZ_struct, 1.0, 3.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 1.5, 5.0, 29.999998, 0.0, 5.0, 1.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:80032734 +struct weapon_stats Gtt33Z_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 8, 0xFF, 0x10, 1, 0, 0x70, &GcartridgeZ_struct, 1.0, 6.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 5.0, 10.0, 59.999996, 2.0, 16.0, 3.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:800327A4 +struct weapon_stats GskorpianZ_stats = { + 2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, 1, 0x14, 0x03, 0x00, 1, 0xB, 0x6A, &GcartridgeZ_struct, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x170B79 +}; +//D:80032814 +struct weapon_stats Gak47Z_stats = { + 2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, 3, 0x1E, 0x03, 0x00, 1, 4, 0x6D, &GcartrifleZ_struct, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0, 0x171A7C +}; +//D:80032884 +struct weapon_stats GuziZ_stats = { + 3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, 1, 0x20, 0x02, 0x00, 1, 4, 0x6E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171B79 +}; +//D:800328F4 +struct weapon_stats Gmp5kZ_stats = { + 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x75, &GcartridgeZ_struct, 1.0, 7.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:80032964 +struct weapon_stats Gmp5ksilZ_stats = { + 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x2E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:800329D4 +struct weapon_stats GspectreZ_stats = { + 2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, 1, 0x32, 0x03, 0x00, 1, 4, 0x6D, &GcartridgeZ_struct, 1.4, 12.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:80032A44 +struct weapon_stats Gm16Z_stats = { + 6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, 3, 0x1E, 0x02, 0x00, 2, 5, 0x71, &GcartblueZ_struct, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A7C +}; +//D:80032AB4 +struct weapon_stats Gfnp90Z_stats = { + 4.0, 12.5, -25.299999, -32.5, 3.0, 8.0, 15.0, 1, 0x50, 0x02, 0x00, 3, 2, 0xFD, &GcartridgeZ_struct, 1.8, 6.0, 0.0, SCALEVAL_P90, 0.87, 1.0, 0x4080003, 3.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A78 +}; +//D:80032B24 +struct weapon_stats GshotgunZ_stats = { + 4.0, 11.0, -20.6, -19.5, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x79, &GcartshellZ_struct, 0.40000001, 20.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 9.0, 10.0, 0.0, 2.0, 25.0, 4.0, 2.0, 4.0, 5.0, 0x170AF9 +}; + +//D:80032B94 +struct weapon_stats GautoshotZ_stats = { + 4.0, 12.0, -24.1, -19.0, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x74, NULL, 0.60000002, 16.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 4.5, 3.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 5.0, 0x170AF9 +}; + +//D:80032C04 +struct weapon_stats GsniperrifleZ_stats = { + 6.0, 11.0, -20.700001, -31.5, 3.0, 3.0, 8.5, 3, 8, 0xFF, 0x10, 1, 0, 0x2E, &GcartblueZ_struct, 1.0, 0.0, 15.0, SCALEVAL_AK47, 0.91000003, 0.25, 0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x178A70 +}; + +//D:80032C74 +struct weapon_stats GrugerZ_stats = { + 2.0, 12.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xC, 6, 0xFF, 0x14, 0xA, 0, 0x6F, NULL, 2.0, 0.0, 0.0, SCALEVAL_RUGER, 0.86000001, 1.0, 0x81000FF, 12.0, 35.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 6.0, 0x170FB9 +}; +//D:80032CE4 +struct weapon_stats GgoldengunZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xD, 1, 0xFF, 0x00, 1, 0, 0x75, NULL, 100.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x40800FF, 5.0, 10.0, 0.0, 1.0, 9.0, 1.5, 2.0, 4.0, 0.0, 0x170F99 +}; + +//D:80032D54 +struct weapon_stats GsilverwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 0xA, 0, 0x6B, &GcartridgeZ_struct, 2.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:80032DC4 +struct weapon_stats GgoldwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 100.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300,3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; + +//D:80032E34 +struct weapon_stats GlaserZ_stats = { + 1.0, 11.0, -19.5, -28.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 2, 0, 0xE4, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6000606, 0.0, 0.0, 0.0, 2.0, 16.0, 2.0, 2.0, 4.0, 2.0, 0x170B99 +}; +//D:80032EA4 +struct weapon_stats GwatchlaserZ_stats = { + 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0x18, 0x3E8, 0xFF, 0x00, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0xFF, 0.0, 0.0, 0.0, 1.0, 4.0, 0.2, 1.0, 4.0, 0.0, 0x600F91 +}; +//D:80032F14 +struct weapon_stats GgrenadelaunchZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0xB, 6, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x120AF1 +}; +//D:80032F84 +struct weapon_stats GrocketlaunchZ_stats = { + 1.0, 10.5, -22.200001, -14.5, 3.0, 3.0, 8.5, 6, 1, 0xFF, 0x14, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 0.5, 0xFF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0,2.0, 4.0, 0.0, 0x120FF1 +}; +//D:80032FF4 +struct weapon_stats GgrenadeZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 5, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0, 0.0, 0x422982 +}; +//D:80033064 +struct weapon_stats GtimedmineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 9, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:800330D4 +struct weapon_stats GproximitymineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 8, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:80033144 +struct weapon_stats GremotemineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 7, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:800331B4 +struct weapon_stats GtriggerZ_stats = { + 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0,0.0, 0x890 +}; +//D:80033224 +struct weapon_stats GtaserZ_stats = { + 1.0, 16.0, -16.700001, -22.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0x64, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 2.0, 10.0, 2.0, 2.0, 4.0, 0.0, 0x620F70 +}; +//D:80033294 +struct weapon_stats GtankZ_stats = { + 1.0, 8.0, -19.200001, -11.5, 3.0, 3.0, 8.5, 0x1C, 1, 0xFF, 0x14, 1, 0, 0xB, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x780078FF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0, 2.0, 4.0, 0.0, 0x76781 +}; +//D:80033304 +struct weapon_stats GbombcaseZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x10, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x402D82 +}; +//D:80033374 +struct weapon_stats GplastiqueZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x17, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x422D82 +}; +//D:800333E4 +struct weapon_stats GflarepistolZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x11, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 +}; +//D:80033454 +struct weapon_stats GpitongunZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x12, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 +}; +//D:800334C4 +struct weapon_stats GbugZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x14, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 +}; +//D:80033534 +struct weapon_stats GmicrocameraZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x15, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 +}; +//D:800335A4 +struct weapon_stats GwatchmagnetattractZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x19, 0xA, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 0.0, 0x602980 +}; +//D:80033614 +struct weapon_stats GgoldeneyekeyZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x16, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x482982 +}; +//D:80033684 +struct weapon_stats GcameraZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0xF4, NULL, 1.0, 0.0, 20.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0xA990 +}; +//D:800336F4 +struct weapon_stats Csuit_lf_handz_stats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80033764 +struct weapon_stats GjoypadZ_stats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:800337D4 +struct weapon_stats stru_D_800337D4 = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 6, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80033844 +struct weapon_stats stru_D_80033844 = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0xB, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:800338B4 +struct weapon_stats stru_D_800338B4 = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x1D, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x82182 +}; + + +//D:80033924 +struct gitem_data_struct gitem_structs[] = { + {NULL, NULL, 1, NULL, 0x9883, 0x9811, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9811, 0x9811, 10.0, 10.0, 1000.0}, + {&GfistZ_header, "GfistZ", 0, &GfistZ_stats, 0x9883, 0x9876, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9876, 0x98CD, 10.0, 10.0, 1000.0}, + {&GknifeZ_header, "GknifeZ", 0, &GknifeZ_stats, 0x9883, 0x9846, 200.0, 39.0, 1327.0, 0.0, 0.0, 0x9840, 0x98A8, 38.0, 118.0, 800.0}, + {&GthrowknifeZ_struct, "GthrowknifeZ", 0, &GthrowknifeZ_stats, 0x9871, 0x9806, 200.0, 51.0, 1327.0, 0.0, 0.0, 0x9870, 0x98CA, 38.0, 118.0, 800.0}, + {&GwppkZ_struct, "GwppkZ", 0, &GwppkZ_stats, 0x9857, 0x9801, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9856, 0x98BA, 94.0, 2.0, 356.0}, + {&GwppksilZ_struct, "GwppksilZ", 0, &GwppksilZ_stats, 0x9803, 0x9810, 26.0, 162.0, 668.0, 0.0, 0.0, 0x9855, 0x98B9, 169.0, 5.0, 535.0}, + {&Gtt33Z_struct, "Gtt33Z", 0, &Gtt33Z_stats, 0x9804, 0x9832, 22.0, 128.0, 709.0, 0.0, 0.0, 0x982A, 0x989A, 124.0, 14.0, 455.0}, + {&GskorpianZ_struct, "GskorpionZ", 0, &GskorpianZ_stats, 0x9883, 0x986B, 46.0, 124.0, 785.0, 0.0, 0.0, 0x986B, 0x98C6, 124.0, 32.0, 545.0}, + {&Gak47Z_struct, "Gak47Z", 0, &Gak47Z_stats, 0x9808, 0x9868, -29.0, 307.0, 1410.0, 0.0, 0.0, 0x9842, 0x98AB, 304.0, -31.0, 1020.0}, + {&GuziZ_struct, "GuziZ", 0, &GuziZ_stats, 0x9883, 0x9882, -18.0, 57.0, 1198.0, 0.0, 0.0, 0x9882, 0x98D7, 68.0, -49.0, 667.0}, + {&Gmp5kZ_struct, "Gmp5kZ", 0, &Gmp5kZ_stats, 0x9800, 0x982F, 12.0, 112.0, 1300.0, 0.0, 0.0, 0x9829, 0x9896, 123.0, -2.0, 628.0}, + {&Gmp5ksilZ_struct, "Gmp5ksilZ", 0, &Gmp5ksilZ_stats, 0x9800, 0x9810, 14.0, 227.0, 1300.0, 0.0, 0.0, 0x9828, 0x9895, 226.0, -10.0, 834.0}, + {&GspectreZ_struct, "GspectreZ", 0, &GspectreZ_stats, 0x9883, 0x9858, -4.0, 144.0, 1128.0, 0.0, 0.0, 0x9858, 0x98B4, 146.0, -18.0, 801.0}, + {&Gm16Z_struct, "Gm16Z", 0, &Gm16Z_stats, 0x9875, 0x9812, 25.0, 251.0, 1796.0, 0.0, 0.0, 0x9874, 0x9884, 246.0, -45.0, 1497.0}, + {&Gfnp90Z_struct, "Gfnp90Z", 0, &Gfnp90Z_stats, 0x9883, 0x985E, 88.0, -44.0, 1107.0, 0.0, 0.0, 0x985E, 0x98BC, -44.0, 31.0, 867.0}, + {&GshotgunZ_struct, "GshotgunZ", 0, &GshotgunZ_stats, 0x9883, 0x9864, 39.0, 283.0, 1224.0, 0.0, 0.0, 0x9864, 0x98C1, 284.0, -22.0, 999.0}, + {&GautoshotZ_struct, "GautoshotZ", 0, &GautoshotZ_stats, 0x9816, 0x980C, 73.0, 285.0, 1224.0, 0.0, 0.0, 0x9815, 0x9886, 284.0, 4.0, 980.0}, + {&GsniperrifleZ_struct, "GsniperrifleZ", 0, &GsniperrifleZ_stats, 0x9867, 0x980A, 49.0, 265.0, 1760.0, 0.0, 0.0, 0x9866, 0x98C3, 268.0, 14.0, 1497.0}, + {&GrugerZ_struct, "GrugerZ", 0, &GrugerZ_stats, 0x9826, 0x984C, 47.0, 184.0, 769.0, 0.0, 0.0, 0x9825, 0x9893, 182.0, 36.0, 604.0}, + {&GgoldengunZ_struct, "GgoldengunZ", 0, &GgoldengunZ_stats, 0x983B, 0x9805, 29.0, 146.0, 629.0, 0.0, 0.0, 0x9839, 0x98A3, 144.0, 18.0, 464.0}, + {&GsilverwppkZ_struct, "GsilverwppkZ", 0, &GsilverwppkZ_stats, 0x9883, 0x9865, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9865, 0x98C2, 94.0, 2.0, 356.0}, + {&GgoldwppkZ_struct, "GgoldwppkZ", 0, &GgoldwppkZ_stats, 0x9883, 0x9838, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9838, 0x98A2, 94.0, 2.0, 356.0}, + {&GlaserZ_struct, "GlaserZ", 0, &GlaserZ_stats, 0x9852, 0x9847, 67.0, 106.0, 738.0, 0.0, 0.0, 0x9851, 0x98AC, 103.0, 21.0, 545.0}, + {&GwatchlaserZ_struct, "GwatchlaserZ", 0, &GwatchlaserZ_stats, 0x987F, 0x9847, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987B, 0x98D2, 0.0, -40.0, 1383.0}, + {&GgrenadelaunchZ_struct, "GgrenadelaunchZ", 0, &GgrenadelaunchZ_stats, 0x983D, 0x9848, 27.0, 279.0, 1152.0, 0.0, 0.0, 0x983C, 0x98A5, 284.0, -22.0, 960.0}, + {&GrocketlaunchZ_struct, "GrocketlaunchZ", 0, &GrocketlaunchZ_stats, 0x980B, 0x9848, 111.0, -50.0, 1624.0, 0.0, 0.0, 0x9861, 0x98BF, -42.0, 16.0, 1381.0}, + {&GgrenadeZ_struct, "GgrenadeZ", 0, &GgrenadeZ_stats, 0x9883, 0x983D, 180.0, 0.0, 2745.0, 0.0, 90.0, 0x983E, 0x98A6, 0.0, 48.0, 1468.0}, + {&GtimedmineZ_struct, "GtimedmineZ", 0, &GtimedmineZ_stats, 0x9809, 0x980F, 8.0, 0.0, 364.0, 90.0, 0.0, 0x9872, 0x98CB, 0.0, -3.0, 179.0}, + {&GproximitymineZ_struct, "GproximitymineZ", 0, &GproximitymineZ_stats, 0x9802, 0x980D, 8.0, 0.0, 364.0, 90.0, 0.0, 0x985D, 0x98BB, 0.0, -3.0, 179.0}, + {&GremotemineZ_struct, "GremotemineZ", 0, &GremotemineZ_stats, 0x9807, 0x980E, 8.0, 0.0, 364.0, 90.0, 0.0, 0x9860, 0x98BE, 0.0, -3.0, 179.0}, + {&GtriggerZ_struct, "GtriggerZ", 0, &GtriggerZ_stats, 0x9883, 0x982E, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x982E, 0x989B, 0.0, -40.0, 1383.0}, + {&GtaserZ_struct, "GtaserZ", 0, &GtaserZ_stats, 0x9883, 0x986F, 107.0, 49.0, 568.0, 0.0, 0.0, 0x986F, 0x98C9, 64.0, 80.0, 333.0}, + {NULL, NULL, 0, &GtankZ_stats, 0x9883, 0x986E, 20.0, 97.0, 579.0, 0.0, 0.0, 0x986E, 0x98C8, 94.0, 2.0, 356.0}, + {&GbombcaseZ_struct, "GbombcaseZ", 0, &GbombcaseZ_stats, 0x9883, 0x981A, 16.0, 0.0, 568.0, 0.0, 90.0, 0x981A, 0x988A, 0.0, -8.0, 323.0}, + {&GplastiqueZ_struct, "GplastiqueZ", 0, &GplastiqueZ_stats, 0x9883, 0x985B, 28.0, 0.0, 1062.0, 80.0, 90.0, 0x985B, 0x98B7, 0.0, -16.0, 739.0}, + {&GflarepistolZ_struct, "GflarepistolZ", 0, &GflarepistolZ_stats, 0x9883, 0x9834, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9834, 0x989F, 0.0, 0.0, 1000.0}, + {&GpitongunZ_struct, "GpitongunZ", 0, &GpitongunZ_stats, 0x9883, 0x9859, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9859, 0x98B5, 0.0, 0.0, 1000.0}, + {&GbungeeZ_struct, "GbungeeZ", 1, NULL, 0x9883, 0x981F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x981F, 0x988F, 0.0, 0.0, 1000.0}, + {&GdoordecoderZ_struct, "GdoordecoderZ", 1, NULL, 0x9883, 0x9830, 12.0, 0.0, 364.0, 90.0, 90.0, 0x9830, 0x989C, 0.0, -6.0, 199.0}, + {&GbombdefuserZ_struct, "GbombdefuserZ", 1, NULL, 0x9883, 0x981B, 14.0, 0.0, 379.0, 90.0, 90.0, 0x981B, 0x988B, 0.0, 0.0, 279.0}, + {&GcameraZ_struct, "GcameraZ", 0, &GcameraZ_stats, 0x9883, 0x9820, 4.0, 0.0, 195.0, 20.0, 90.0, 0x9820, 0x9890, 0.0, -2.0, 144.0}, + {&GlockexploderZ_struct, "GlockexploderZ", 1, NULL, 0x9883, 0x984A, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x984A, 0x98AE, 0.0, 0.0, 1000.0}, + {&GdoorexploderZ_struct, "GdoorexploderZ", 1, NULL, 0x9883, 0x9831, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9831, 0x989D, 0.0, 0.0, 1000.0}, + {&GbriefcaseZ_struct, "GbriefcaseZ", 1, NULL, 0x9883, 0x981C, 16.0, 0.0, 568.0, 0.0, 90.0, 0x981C, 0x988C, 0.0, -8.0, 323.0}, + {&GweaponcaseZ_struct, "GweaponcaseZ", 1, NULL, 0x9883, 0x9880, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9880, 0x98D5, 0.0, -8.0, 323.0}, + {&GsafecrackercaseZ_struct, "GsafecrackercaseZ", 1, NULL, 0x9883, 0x9863, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9862, 0x98C0, 0.0, -8.0, 323.0}, + {&GkeyanalysercaseZ_struct, "GkeyanalysercaseZ", 1, NULL, 0x9883, 0x9844, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9843, 0x98A9, 0.0, -8.0, 323.0}, + {&GbugZ_struct, "GbugZ", 0, &GbugZ_stats, 0x9883, 0x981E, 16.0, 0.0, 513.0, 0.0, 90.0, 0x981E, 0x988E, 0.0, -6.0, 387.0}, + {&GmicrocameraZ_struct, "GmicrocameraZ", 0, &GmicrocameraZ_stats, 0x9883, 0x984E, 8.0, 0.0, 310.0, 0.0, 270.0, 0x984E, 0x98B0, 0.0, -8.0, 229.0}, + {&GbugdetectorZ_struct, "GbugdetectorZ", 1, NULL, 0x9883, 0x981D, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x981D, 0x988D, 0.0, 0.0, 1000.0}, + {&GexplosivefloppyZ_struct, "GexplosivefloppyZ", 1, NULL, 0x9883, 0x9833, 12.0, 0.0, 336.0, 0.0, 90.0, 0x9833, 0x989E, 0.0, -4.0, 176.0}, + {&GpolarizedglassesZ_struct, "GpolarizedglassesZ", 1, NULL, 0x9883, 0x985C, 2.0, 0.0, 183.0, 15.0, 90.0, 0x985C, 0x98B8, 0.0, 0.0, 147.0}, + {&GdarkglassesZ_struct, "GdarkglassesZ", 1, NULL, 0x9883, 0x982B, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x982B, 0x9897, 0.0, 0.0, 1000.0}, + {&GcreditcardZ_struct, "GcreditcardZ", 1, NULL, 0x9883, 0x9827, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9827, 0x9894, 0.0, 0.0, 1000.0}, + {&GgaskeyringZ_struct, "GgaskeyringZ", 1, NULL, 0x9883, 0x9835, 26.0, 0.0, 769.0, 90.0, 90.0, 0x9835, 0x98A0, 0.0, -8.0, 387.0}, + {&GdatathiefZ_struct, "GdatathiefZ", 1, NULL, 0x9883, 0x982D, 16.0, 0.0, 474.0, 80.0, 0.0, 0x982D, 0x9899, 0.0, -6.0, 350.0}, + {&GwatchidentifierZ_struct, "GwatchidentifierZ", 1, NULL, 0x987F, 0x9841, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987A, 0x98D1, 0.0, -40.0, 1383.0}, + {&GwatchcommunicatorZ_struct, "GwatchcommunicatorZ", 1, NULL, 0x987F, 0x9823, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x9878, 0x98CF, 0.0, -40.0, 1383.0}, + {&GwatchgeigercounterZ_struct, "GwatchgeigercounterZ", 1, NULL, 0x987F, 0x9836, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x9879, 0x98D0, 0.0, -40.0, 1383.0}, + {&GwatchmagnetrepelZ_struct, "GwatchmagnetrepelZ", 1, NULL, 0x987F, 0x984B, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987D, 0x98D4, 0.0, -40.0, 1383.0}, + {&GwatchmagnetattractZ_struct, "GwatchmagnetattractZ", 0, &GwatchmagnetattractZ_stats, 0x987E, 0x9813, 80.0, 0.0, 3036.0, 0.0, 90.0, 0x987C, 0x98D3, 0.0, -40.0, 1383.0}, + {&GgoldeneyekeyZ_struct, "GgoldeneyekeyZ", 0, &GgoldeneyekeyZ_stats, 0x9883, 0x983A, 18.0, 0.0, 560.0, 80.0, 0.0, 0x983A, 0x98A4, 0.0, -4.0, 310.0}, + {&GblackboxZ_struct, "GblackboxZ", 1, NULL, 0x9883, 0x9817, 18.0, 0.0, 545.0, 0.0, 90.0, 0x9817, 0x9887, 0.0, -8.0, 380.0}, + {&GcircuitboardZ_struct, "GcircuitboardZ", 1, NULL, 0x9883, 0x9821, 20.0, 0.0, 568.0, 80.0, 0.0, 0x9821, 0x9891, 0.0, 0.0, 394.0}, + {&GclipboardZ_struct, "GclipboardZ", 1, NULL, 0x9883, 0x9822, 40.0, 0.0, 1151.0, 80.0, 90.0, 0x9822, 0x9892, 0.0, -20.0, 580.0}, + {&GstafflistZ_struct, "GstafflistZ", 1, NULL, 0x9883, 0x986C, 44.0, 0.0, 1274.0, 80.0, 90.0, 0x986C, 0x98C7, 0.0, -16.0, 681.0}, + {&GdossierredZ_struct, "GdossierredZ", 1, NULL, 0x9883, 0x985F, 38.0, 0.0, 1084.0, 350.0, 90.0, 0x985F, 0x98BD, 0.0, -12.0, 580.0}, + {&GplansZ_struct, "GplansZ", 1, NULL, 0x9883, 0x985A, 18.0, 0.0, 464.0, 350.0, 90.0, 0x985A, 0x98B6, 0.0, -2.0, 253.0}, + {&GspyfileZ_struct, "GspyfileZ", 1, NULL, 0x9883, 0x986A, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x986A, 0x98C5, 0.0, 0.0, 1000.0}, + {&GblueprintsZ_struct, "GblueprintsZ", 1, NULL, 0x9883, 0x9818, 18.0, 0.0, 579.0, 350.0, 90.0, 0x9818, 0x9888, 0.0, -8.0, 364.0}, + {&GmapZ_struct, "GmapZ", 1, NULL, 0x9883, 0x984D, 18.0, 0.0, 579.0, 350.0, 90.0, 0x984D, 0x98AF, 0.0, -6.0, 364.0}, + {&GaudiotapeZ_struct, "GaudiotapeZ", 1, NULL, 0x9883, 0x9814, 16.0, 0.0, 428.0, 90.0, 90.0, 0x9814, 0x9885, 0.0, -2.0, 292.0}, + {&GvideotapeZ_struct, "GvideotapeZ", 1, NULL, 0x9883, 0x9877, 26.0, 0.0, 753.0, 90.0, 0.0, 0x9877, 0x98CE, 0.0, -8.0, 395.0}, + {&GdattapeZ_struct, "GdattapeZ", 1, NULL, 0x9883, 0x982C, 14.0, 0.0, 387.0, 90.0, 90.0, 0x982C, 0x9898, 0.0, 0.0, 238.0}, + {&GspooltapeZ_struct, "GspooltapeZ", 1, NULL, 0x9883, 0x9869, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9869, 0x98C4, 0.0, 0.0, 1000.0}, + {&GmicrofilmZ_struct, "GmicrofilmZ", 1, NULL, 0x9883, 0x9850, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9850, 0x98B2, 0.0, 0.0, 1000.0}, + {&GmicrocodeZ_struct, "GmicrocodeZ", 1, NULL, 0x9883, 0x984F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x984F, 0x98B1, 0.0, 0.0, 1000.0}, + {&GlectreZ_struct, "GlectreZ", 1, NULL, 0x9883, 0x9849, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9849, 0x98AD, 0.0, 0.0, 1000.0}, + {&GmoneyZ_struct, "GmoneyZ", 1, NULL, 0x9883, 0x9853, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9853, 0x98B3, 0.0, 0.0, 1000.0}, + {&GgoldbarZ_struct, "GgoldbarZ", 1, NULL, 0x9883, 0x9837, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9837, 0x98A1, 0.0, 0.0, 1000.0}, + {&GheroinZ_struct, "GheroinZ", 1, NULL, 0x9883, 0x983F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x983F, 0x98A7, 0.0, 0.0, 1000.0}, + {&GkeycardZ_struct, "GkeycardZ", 1, NULL, 0x9883, 0x9845, 24.0, 0.0, 556.0, 80.0, 90.0, 0x9845, 0x98AA, 0.0, -6.0, 411.0}, + {&GkeyyaleZ_struct, "GkeyyaleZ", 1, NULL, 0x9883, 0x9881, 64.0, 0.0, 1912.0, 260.0, 90.0, 0x9881, 0x98D6, 0.0, -18.0, 1568.0}, + {&GkeyboltZ_struct, "GkeyboltZ", 1, NULL, 0x9883, 0x9819, 78.0, 0.0, 3518.0, 80.0, 90.0, 0x9819, 0x9889, 0.0, -12.0, 2582.0}, + {&Csuit_lf_handz_struct, "Csuit_lf_handZ", 0, &Csuit_lf_handz_stats, 0x9883, 0x986D, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {&GjoypadZ_struct, "GjoypadZ", 0, &GjoypadZ_stats, 0x9883, 0x9824, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_800337D4, 0x9883, 0x9854, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_80033844, 0x9883, 0x9854, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_800338B4, 0x9883, 0x9873, 12.0, 0.0, 528.0, 80.0, 0.0, 0x9873, 0x98CC, 0.0, -4.0, 310.0} +}; + +//D:80034C9C +u32 cartridges_eject = 0; +//D:80034CA0 +u32 D_80034CA0 = 0; + +//D:80034CA4 +u32 D_80034CA4[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x40C00000, + 0xBFC00000, 0x0, 0x40B487B1, 0x3E70C0AD, + 0x3E0AE536, 0x3F000000, 0x41000000, 0x0, + 0x41480000, 0xC0600000, 0x0, 0x40C159EC, + 0x3D374BC7, 0x3F0E4378, 0x3F000000, 0x41000000, + 0x0, 0xC1200000, 0xC1300000, 0x0, + 0x3F9ED962, 0x3EA24C40, 0x3F8B0DF1, 0x3F000000, + 0x41000000, 0x0, 0xC1600000, 0xC1700000, + 0x0, 0x3FEA4780, 0x40C498E3, 0x3FA316D3, + 0x3F000000, 0x41200000, 0x0, 0xBF800000, + 0xC1100000, 0x0, 0x3EC4BBA1, 0x3EB87C42, + 0x3DD75968, 0x3F000000, 0x41200000, 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, + 0, 0 +}; + +u32 D_80034E0C[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0xC1080000, + 0xC0C00000, 0x0, 0x40AF7506, 0x40BAB4B9, + 0x40C2A5C2, 0x3F000000, 0x41000000, 0x0, + 0xC0400000, 0xC0600000, 0x0, 0x3ECE08F2, + 0x40B75721, 0x40B62409, 0x3F000000, 0x41000000, + 0x0, 0xBF000000, 0xC1080000, 0x0, + 0x3F9DFD7A, 0x40B768CD, 0x40B37BDF, 0x3F000000, + 0x41000000, 0x0, 0x40E00000, 0xC1E40000, + 0xBFC00000, 0x3FA74949, 0x40B63EBC, 0x40B6443D, + 0x3F000000, 0x41200000, 0x0, 0xBFC00000, + 0xC1100000, 0x0, 0x3D8ADEEC, 0x40C84E72, + 0x3E506749, 0x3F000000, 0x41200000, 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 +}; + +u32 D_80034F74[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x0, 0x40900000, 0x40B2719D, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0x0, 0x41A40000, 0x40A8630B, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x40400000, 0x40B00000, + 0x3D008312, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_8003504C[] = { + + 0x0, 0x0, 0x0, 0x40900000, + 0x40B2719D, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x41A40000, 0x40A8630B, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x40400000, 0x40B00000, 0x3D008312, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0xC1A00000, 0x41900000, 0x3F4913C7, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0xC1A00000, 0x41900000, + 0x3F4913C7, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035124[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x40800000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x40800000, 0x0, 0x41200000, + 0x41480000, 0x418C0000, 0x0, 0x0, + 0x0, 0x3F000000, 0x40800000, 0x0, + 0x41200000, 0x420A0000, 0x41CC0000, 0x0, + 0x0, 0x0, 0x3F000000, 0x41200000, + 0x0, 0x41200000, 0x420A0000, 0x41CC0000, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800351FC[] = { + 0x0, 0x41200000, 0x420A0000, 0x41CC0000, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x41200000, 0x420A0000, + 0x41CC0000, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0x41200000, + 0x41480000, 0x418C0000, 0x0, 0x0, + 0x0, 0x3F000000, 0x41200000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41200000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800352D4[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x40800000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x40800000, 0x0, 0x0, + 0x0, 0x40900000, 0x40B2719D, 0x0, + 0x0, 0x3F000000, 0x40800000, 0x0, + 0x0, 0x0, 0x41A40000, 0x40A8630B, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x40400000, 0x40B00000, + 0x3D008312, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800353AC[63] = { + 0x0, 0x0, 0x0, 0x40900000, + 0x40B2719D, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x41A40000, 0x40A8630B, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x40400000, 0x40B00000, 0x3D008312, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0xC1A00000, 0x41900000, 0x3F4913C7, + 0x0, 0x0, 0x3F000000, 0x41000000, + 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 +}; + +u32 D_800354A8[90] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0x40C00000, + 0x41B80000, 0x0, 0x40BD4D94, 0x3DAFC8B0, + 0x3E60BFE4, 0x3F000000, 0x41200000, 0x0, + 0x41900000, 0x420C0000, 0x41180000, 0x409FF132, + 0x3DAC729F, 0x3E89B457, 0x3F000000, 0x41200000, + 0x0, 0xC1A00000, 0x41CC0000, 0x40800000, + 0x3E012CF1, 0x3E9BCB1D, 0x3F0C4CCF, 0x3F000000, + 0x41200000, 0x0, 0xC1E00000, 0xC0800000, + 0x40000000, 0x3F01BF05, 0x3F03C558, 0x3EF7DBB1, + 0x3F000000, 0x3F800000, 0x0, 0xC1E00000, + 0xC0800000, 0x40000000, 0x3F01BF05, 0x3F03C558, + 0x3EF7DBB1, 0x3F000000, 0x3F800000, 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 +}; + +u32 D_80035610[90] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0xC0C00000, + 0x41B80000, 0x0, 0x40A2C750, 0x40C43392, + 0x40B1199C, 0x3F000000, 0x41200000, 0x0, + 0xC1900000, 0x420C0000, 0x41180000, 0x409C2EAE, + 0x3D902BC7, 0x40B12824, 0x3F000000, 0x41200000, + 0x0, 0x41000000, 0x41CC0000, 0x40800000, + 0x3DDB927D, 0x40C1FEDC, 0x40ACEF69, 0x3F000000, + 0x41200000, 0x0, 0x41E00000, 0xC0800000, + 0x40000000, 0x3DDB927D, 0x40C1FEDC, 0x40ACEF69, + 0x3F000000, 0x3F800000, 0x0, 0x41E00000, + 0xC0800000, 0x40000000, 0x3DDB927D, 0x40C1FEDC, + 0x40ACEF69, 0x3F000000, 0x3F800000, 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 +}; + +u32 D_80035778[99] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41100000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x41180000, + 0xBF000000, 0x40600000, 0x3E9504E6, 0x40B2B333, + 0x40C6CBA3, 0x3F000000, 0x41000000, 0x0, + 0x41900000, 0x40F00000, 0x40600000, 0x3EE0F55E, + 0x40BE3F16, 0x40BFCC1D, 0x3F000000, 0x41000000, + 0x0, 0xC1100000, 0x41080000, 0x40B00000, + 0x3F346DF8, 0x3E472043, 0x40C563EB, 0x3F000000, + 0x40E00000, 0x0, 0xC1E80000, 0xC0B00000, + 0x40B00000, 0x40120985, 0x3F8D9CFA, 0x3FBEB841, + 0x3F000000, 0x40E00000, 0x0, 0xC2660000, + 0xC1DC0000, 0x40B00000, 0x40120985, 0x3F8D9CFA, + 0x3FBEB841, 0x3F000000, 0x40E00000, 0x0, + 0xC19C0000, 0xC1A00000, 0x40B00000, 0x3F9CD307, + 0x3F39E0D6, 0x3F9AF8A5, 0x3F000000, 0x41700000, + 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 +}; + +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 +}; + +u32 D_80035A90[54] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x3F000000, + 0xC0C00000, 0xC1000000, 0x3EE101F3, 0x3E8EC2AD, + 0x3E47DCBE, 0x3F000000, 0x41000000, 0x0, + 0xC0000000, 0xC1000000, 0xC1200000, 0x3F8D0308, + 0x3EEBE7D1, 0x3F122A80, 0x3F000000, 0x41000000, + 0x0, 0xC0000000, 0xC1000000, 0xC1200000, + 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035B68[54] = { + 0x0, 0xC0000000, 0xC1000000, 0xC1200000, + 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, 0x3F000000, + 0x41000000, 0x0, 0xC0000000, 0xC1000000, + 0xC1200000, 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, + 0x3F000000, 0x41000000, 0x0, 0x3F000000, + 0xC0C00000, 0xC1000000, 0x3EE101F3, 0x3E8EC2AD, + 0x3E47DCBE, 0x3F000000, 0x41000000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + + +//D:80035C40 +u32 D_80035C40 = 0; +//D:80035C44 +u32 D_80035C44 = 0; +//D:80035C48 +u32 D_80035C48 = 0; +//D:80035C4C +u32 D_80035C4C = 0; +//D:80035C50 +u32 D_80035C50 = 0; +//D:80035C54 +u32 D_80035C54 = 0; +//D:80035C58 +u32 D_80035C58 = 0; +//D:80035C5C +u32 D_80035C5C = 0; + +//D:80035C60 +f32 D_80035C60 = -1.0; +//D:80035C64 +f32 D_80035C64 = 0.0; +//D:80035C68 +f32 D_80035C68 = 1.0; +//D:80035C6C +f32 D_80035C6C = 0.0; +//D:80035C70 +f32 D_80035C70 = 6.2536321; +//D:80035C74 +f32 D_80035C74 = 6.2592888; +//D:80035C78 +f32 D_80035C78 = 0.204238; +//D:80035C7C +f32 D_80035C7C = 0.25044999; +//D:80035C80 +f32 D_80035C80 = 0.90482301; +//D:80035C84 +f32 D_80035C84 = 0.28716999; +//D:80035C88 +f32 D_80035C88 = 1.715736; +//D:80035C8C +f32 D_80035C8C = 0.37460899; +//D:80035C90 +f32 D_80035C90 = 0.92193699; + +//D:80035C94 +f32 D_80035C94 = 0; + + +//D:80035C98 +u32 D_80035C98 = 0; +//D:80035C9C +u32 D_80035C9C = 0; +//D:80035CA0 +u32 D_80035CA0 = 0; +//D:80035CA4 +s32 D_80035CA4 = 0xFFFFFFFF; +//D:80035CA8 +u32 D_80035CA8 = 0; +//D:80035CAC +u32 D_80035CAC = 0; +//D:80035CB0 +u32 D_80035CB0 = 0; +//D:80035CB4 +u32 D_80035CB4 = 0; +//D:80035CB8 +u32 D_80035CB8 = 0; +//D:80035CBC +u32 D_80035CBC = 0; +//D:80035CC0 +u32 D_80035CC0 = 0; +//D:80035CC4 +u32 D_80035CC4[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80035D00 +u32 D_80035D00 = 0; +//D:80035D04 +u32 D_80035D04[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80035D44 +u32 D_80035D44[] = { + 1, 3, 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:80035E04 +u16 D_80035E04[] = { + 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 +}; +//D:80035E28 +u16 D_80035E28[] = {0x29, 0x2A}; +//D:80035E2C +u16 D_80035E2C[] = {0x2F, 0x30}; +//D:80035E30 +u16 D_80035E30[] = {0x31, 0}; +//D:80035E34 +u16 D_80035E34[] = {0x45, 0x45}; +//D:80035E38 +u16 D_80035E38[] = {0x5C, 0x5D}; +//D:80035E3C +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 +}; +//D:80035E84 +u16 D_80035E84[] = {0xA4, 0xA5}; +//D:80035E88 +u16 D_80035E88[] = {0xA6, 0xA7}; +//D:80035E8C +u16 D_80035E8C[] = {0xA8, 0}; +//D:80035E90 +u16 D_80035E90[] = {0x5C, 0x5D}; +//D:80035E94 +u16 D_80035E94[] = {0x5F, 0x60}; +//D:80035E98 +u16 D_80035E98[] = {0x61, 0}; +//D:80035E9C +u32 D_80035E9C = 0; +//D:80035EA0 +u32 D_80035EA0 = 0; +//D:80035EA4 +u32 D_80035EA4 = 0; +//D:80035EA8 +u32 D_80035EA8 = 0; +//D:80035EAC +u32 D_80035EAC = 0; +//D:80035EB0 +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}; + + +//i may belong to objecthandler.c +//D:80036060 +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"; + + + + + + +void set_cartridges_eject(u32 uParm1) { + cartridges_eject = uParm1; +} + +u32 get_cartridges_eject(void) { + return cartridges_eject; +} + +void nullsub_73(void) { + return; +} + + + + + + +#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; +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C614(void) { + +} +#else +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(pPlayer) +/* 09115C 7F05C62C 2442A0B0 */ addiu $v0, %lo(pPlayer) # 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(pPlayer) +/* 0911A8 7F05C678 8CA5A0B0 */ lw $a1, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C6B8(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C6FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C6FC +/* 09122C 7F05C6FC 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 091230 7F05C700 AFBF002C */ sw $ra, 0x2c($sp) +/* 091234 7F05C704 AFB00028 */ sw $s0, 0x28($sp) +/* 091238 7F05C708 AFA600A8 */ sw $a2, 0xa8($sp) +/* 09123C 7F05C70C AFA700AC */ sw $a3, 0xac($sp) +/* 091240 7F05C710 44856000 */ mtc1 $a1, $f12 +/* 091244 7F05C714 C4840044 */ lwc1 $f4, 0x44($a0) +/* 091248 7F05C718 24020001 */ li $v0, 1 +/* 09124C 7F05C71C 24900024 */ addiu $s0, $a0, 0x24 +/* 091250 7F05C720 460C203E */ c.le.s $f4, $f12 +/* 091254 7F05C724 00000000 */ nop +/* 091258 7F05C728 4502000E */ bc1fl .L7F05C764 +/* 09125C 7F05C72C 0002C0C0 */ sll $t8, $v0, 3 +/* 091260 7F05C730 C6000020 */ lwc1 $f0, 0x20($s0) +/* 091264 7F05C734 8E0E006C */ lw $t6, 0x6c($s0) +.L7F05C738: +/* 091268 7F05C738 46006301 */ sub.s $f12, $f12, $f0 +/* 09126C 7F05C73C 24420001 */ addiu $v0, $v0, 1 +/* 091270 7F05C740 31CF0001 */ andi $t7, $t6, 1 +/* 091274 7F05C744 15E00006 */ bnez $t7, .L7F05C760 +/* 091278 7F05C748 26100024 */ addiu $s0, $s0, 0x24 +/* 09127C 7F05C74C C6000020 */ lwc1 $f0, 0x20($s0) +/* 091280 7F05C750 460C003E */ c.le.s $f0, $f12 +/* 091284 7F05C754 00000000 */ nop +/* 091288 7F05C758 4503FFF7 */ bc1tl .L7F05C738 +/* 09128C 7F05C75C 8E0E006C */ lw $t6, 0x6c($s0) +.L7F05C760: +/* 091290 7F05C760 0002C0C0 */ sll $t8, $v0, 3 +.L7F05C764: +/* 091294 7F05C764 0302C021 */ addu $t8, $t8, $v0 +/* 091298 7F05C768 0018C080 */ sll $t8, $t8, 2 +/* 09129C 7F05C76C 00988021 */ addu $s0, $a0, $t8 +/* 0912A0 7F05C770 8E190048 */ lw $t9, 0x48($s0) +/* 0912A4 7F05C774 33280001 */ andi $t0, $t9, 1 +/* 0912A8 7F05C778 11000008 */ beqz $t0, .L7F05C79C +/* 0912AC 7F05C77C 26040010 */ addiu $a0, $s0, 0x10 +/* 0912B0 7F05C780 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0912B4 7F05C784 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0912B8 7F05C788 26040004 */ addiu $a0, $s0, 4 +/* 0912BC 7F05C78C 0FC16266 */ jal matrix_4x4_set_position +/* 0912C0 7F05C790 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0912C4 7F05C794 10000042 */ b .L7F05C8A0 +/* 0912C8 7F05C798 00001025 */ move $v0, $zero +.L7F05C79C: +/* 0912CC 7F05C79C C6060020 */ lwc1 $f6, 0x20($s0) +/* 0912D0 7F05C7A0 2604FFEC */ addiu $a0, $s0, -0x14 +/* 0912D4 7F05C7A4 27A50068 */ addiu $a1, $sp, 0x68 +/* 0912D8 7F05C7A8 46066203 */ div.s $f8, $f12, $f6 +/* 0912DC 7F05C7AC E7A80098 */ swc1 $f8, 0x98($sp) +/* 0912E0 7F05C7B0 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0912E4 7F05C7B4 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0912E8 7F05C7B8 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0912EC 7F05C7BC 26040010 */ addiu $a0, $s0, 0x10 +/* 0912F0 7F05C7C0 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0912F4 7F05C7C4 27A50058 */ addiu $a1, $sp, 0x58 +/* 0912F8 7F05C7C8 26040034 */ addiu $a0, $s0, 0x34 +/* 0912FC 7F05C7CC 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 091300 7F05C7D0 27A50048 */ addiu $a1, $sp, 0x48 +/* 091304 7F05C7D4 26040058 */ addiu $a0, $s0, 0x58 +/* 091308 7F05C7D8 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 09130C 7F05C7DC 27A50038 */ addiu $a1, $sp, 0x38 +/* 091310 7F05C7E0 27A40058 */ addiu $a0, $sp, 0x58 +/* 091314 7F05C7E4 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091318 7F05C7E8 27A50048 */ addiu $a1, $sp, 0x48 +/* 09131C 7F05C7EC 27A40048 */ addiu $a0, $sp, 0x48 +/* 091320 7F05C7F0 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091324 7F05C7F4 27A50038 */ addiu $a1, $sp, 0x38 +/* 091328 7F05C7F8 27A40058 */ addiu $a0, $sp, 0x58 +/* 09132C 7F05C7FC 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091330 7F05C800 27A50068 */ addiu $a1, $sp, 0x68 +/* 091334 7F05C804 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 091338 7F05C808 27A90078 */ addiu $t1, $sp, 0x78 +/* 09133C 7F05C80C AFA90014 */ sw $t1, 0x14($sp) +/* 091340 7F05C810 27A40068 */ addiu $a0, $sp, 0x68 +/* 091344 7F05C814 27A50058 */ addiu $a1, $sp, 0x58 +/* 091348 7F05C818 27A60048 */ addiu $a2, $sp, 0x48 +/* 09134C 7F05C81C 27A70038 */ addiu $a3, $sp, 0x38 +/* 091350 7F05C820 0FC170BC */ jal quaternion_7F05C2F0 +/* 091354 7F05C824 E7B00010 */ swc1 $f16, 0x10($sp) +/* 091358 7F05C828 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 09135C 7F05C82C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 091360 7F05C830 27AA0088 */ addiu $t2, $sp, 0x88 +/* 091364 7F05C834 AFAA0018 */ sw $t2, 0x18($sp) +/* 091368 7F05C838 2604FFE0 */ addiu $a0, $s0, -0x20 +/* 09136C 7F05C83C 26050004 */ addiu $a1, $s0, 4 +/* 091370 7F05C840 26060028 */ addiu $a2, $s0, 0x28 +/* 091374 7F05C844 2607004C */ addiu $a3, $s0, 0x4c +/* 091378 7F05C848 E7B20010 */ swc1 $f18, 0x10($sp) +/* 09137C 7F05C84C 0FC16C09 */ jal sub_GAME_7F05B024 +/* 091380 7F05C850 E7A40014 */ swc1 $f4, 0x14($sp) +/* 091384 7F05C854 8FAB00AC */ lw $t3, 0xac($sp) +/* 091388 7F05C858 24010001 */ li $at, 1 +/* 09138C 7F05C85C C7A60088 */ lwc1 $f6, 0x88($sp) +/* 091390 7F05C860 15610009 */ bne $t3, $at, .L7F05C888 +/* 091394 7F05C864 27A40078 */ addiu $a0, $sp, 0x78 +/* 091398 7F05C868 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 09139C 7F05C86C C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0913A0 7F05C870 46003207 */ neg.s $f8, $f6 +/* 0913A4 7F05C874 46005407 */ neg.s $f16, $f10 +/* 0913A8 7F05C878 46009107 */ neg.s $f4, $f18 +/* 0913AC 7F05C87C E7A80088 */ swc1 $f8, 0x88($sp) +/* 0913B0 7F05C880 E7B00078 */ swc1 $f16, 0x78($sp) +/* 0913B4 7F05C884 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F05C888: +/* 0913B8 7F05C888 0FC16D8A */ jal quaternion_to_matrix +/* 0913BC 7F05C88C 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0913C0 7F05C890 27A40088 */ addiu $a0, $sp, 0x88 +/* 0913C4 7F05C894 0FC16266 */ jal matrix_4x4_set_position +/* 0913C8 7F05C898 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0913CC 7F05C89C 24020001 */ li $v0, 1 +.L7F05C8A0: +/* 0913D0 7F05C8A0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0913D4 7F05C8A4 8FB00028 */ lw $s0, 0x28($sp) +/* 0913D8 7F05C8A8 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0913DC 7F05C8AC 03E00008 */ jr $ra +/* 0913E0 7F05C8B0 00000000 */ nop +) +#endif + + + + + +struct weapon_stats *get_ptr_item_statistics(int item) { + if (gitem_structs[item].has_no_model == 0) { /* weapon has model, return stats struct */ + return gitem_structs[item].item_weapon_stats; + } + return &default_weaponstats; /* no model, return defaults */ +} + + + + +#ifdef NONMATCHING +void copy_item_in_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_item_in_hand +/* 091420 7F05C8F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 091424 7F05C8F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 091428 7F05C8F8 AFA40018 */ sw $a0, 0x18($sp) +/* 09142C 7F05C8FC 0FC17674 */ jal get_item_in_hand +/* 091430 7F05C900 00002025 */ move $a0, $zero +/* 091434 7F05C904 0FC1722D */ jal get_ptr_item_statistics +/* 091438 7F05C908 00402025 */ move $a0, $v0 +/* 09143C 7F05C90C 8FA30018 */ lw $v1, 0x18($sp) +/* 091440 7F05C910 C4440004 */ lwc1 $f4, 4($v0) +/* 091444 7F05C914 E4640000 */ swc1 $f4, ($v1) +/* 091448 7F05C918 C4460008 */ lwc1 $f6, 8($v0) +/* 09144C 7F05C91C E4660004 */ swc1 $f6, 4($v1) +/* 091450 7F05C920 C448000C */ lwc1 $f8, 0xc($v0) +/* 091454 7F05C924 E4680008 */ swc1 $f8, 8($v1) +/* 091458 7F05C928 8FBF0014 */ lw $ra, 0x14($sp) +/* 09145C 7F05C92C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 091460 7F05C930 03E00008 */ jr $ra +/* 091464 7F05C934 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_item_in_hand_to_main_list(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_item_in_hand_to_main_list +/* 091468 7F05C938 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09146C 7F05C93C AFBF0014 */ sw $ra, 0x14($sp) +/* 091470 7F05C940 AFA40018 */ sw $a0, 0x18($sp) +/* 091474 7F05C944 0FC17674 */ jal get_item_in_hand +/* 091478 7F05C948 00002025 */ move $a0, $zero +/* 09147C 7F05C94C 0FC1722D */ jal get_ptr_item_statistics +/* 091480 7F05C950 00402025 */ move $a0, $v0 +/* 091484 7F05C954 8FA30018 */ lw $v1, 0x18($sp) +/* 091488 7F05C958 C4640000 */ lwc1 $f4, ($v1) +/* 09148C 7F05C95C E4440004 */ swc1 $f4, 4($v0) +/* 091490 7F05C960 C4660004 */ lwc1 $f6, 4($v1) +/* 091494 7F05C964 E4460008 */ swc1 $f6, 8($v0) +/* 091498 7F05C968 C4680008 */ lwc1 $f8, 8($v1) +/* 09149C 7F05C96C E448000C */ swc1 $f8, 0xc($v0) +/* 0914A0 7F05C970 8FBF0014 */ lw $ra, 0x14($sp) +/* 0914A4 7F05C974 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0914A8 7F05C978 03E00008 */ jr $ra +/* 0914AC 7F05C97C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void unknown_takes_playerhand(void) { + +} +#else +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 unknown_takes_playerhand +/* 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 get_item_in_hand +/* 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(pPlayer) +/* 0914F0 7F05C9C0 0014A080 */ sll $s4, $s4, 2 +/* 0914F4 7F05C9C4 2673A0B0 */ addiu $s3, %lo(pPlayer) # 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05CEBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05CEBC +/* 0919EC 7F05CEBC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0919F0 7F05CEC0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0919F4 7F05CEC4 00047880 */ sll $t7, $a0, 2 +/* 0919F8 7F05CEC8 01CF1821 */ addu $v1, $t6, $t7 +/* 0919FC 7F05CECC 8C6207F8 */ lw $v0, 0x7f8($v1) +/* 091A00 7F05CED0 0002C02A */ slt $t8, $zero, $v0 +/* 091A04 7F05CED4 17000008 */ bnez $t8, .L7F05CEF8 +/* 091A08 7F05CED8 03001025 */ move $v0, $t8 +/* 091A0C 7F05CEDC 8C620800 */ lw $v0, 0x800($v1) +/* 091A10 7F05CEE0 2C590001 */ sltiu $t9, $v0, 1 +/* 091A14 7F05CEE4 13200004 */ beqz $t9, .L7F05CEF8 +/* 091A18 7F05CEE8 03201025 */ move $v0, $t9 +/* 091A1C 7F05CEEC 8C622A44 */ lw $v0, 0x2a44($v1) +/* 091A20 7F05CEF0 28480000 */ slti $t0, $v0, 0 +/* 091A24 7F05CEF4 01001025 */ move $v0, $t0 +.L7F05CEF8: +/* 091A28 7F05CEF8 03E00008 */ jr $ra +/* 091A2C 7F05CEFC 00000000 */ nop +) +#endif + + + + +s32 get_itemtype_in_hand(s32 hand) +{ + return pPlayer->hand_item[hand]; +} + + + + +#ifdef NONMATCHING +void get_ptr_itemheader_in_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_itemheader_in_hand +/* 091A48 7F05CF18 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 091A4C 7F05CF1C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 091A50 7F05CF20 00047940 */ sll $t7, $a0, 5 +/* 091A54 7F05CF24 01CF1021 */ addu $v0, $t6, $t7 +/* 091A58 7F05CF28 03E00008 */ jr $ra +/* 091A5C 7F05CF2C 24420810 */ addiu $v0, $v0, 0x810 +) +#endif + + + + + + +u8 * getPlayerWeaponBufferForHand(HANDEDNESS hand) + +{ + return pPlayer->ptr_hand_weapon_buffer[hand]; +} + + + +u32 getSizeBufferWeaponInHand(int hand) +{ + return size_item_buffer[hand]; +} + + +void remove_item_in_hand(HANDEDNESS hand) +{ + pPlayer->hand_invisible[hand] = 0; + pPlayer->hand_item[hand] = ITEM_UNARMED; + pPlayer->field_2A44[hand] = -1; + pPlayer->lock_hand_model[hand] = 1; + return; +} + + + + +#ifdef NONMATCHING +void place_item_in_hand_swap_and_make_visible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel place_item_in_hand_swap_and_make_visible +/* 091AD4 7F05CFA4 3C068008 */ lui $a2, %hi(pPlayer) +/* 091AD8 7F05CFA8 24C6A0B0 */ addiu $a2, %lo(pPlayer) # 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 + + + + +char * get_ptr_item_text_call_line(ITEM_IDS item) +{ + if (item == ITEM_FIST) { + item = pPlayer->cur_item_weapon_getname; + } + return gitem_structs[item].item_file_name; +} + + +struct Gitemheader * get_ptr_weapon_model_header_line(ITEM_IDS weapon) +{ + if (weapon == ITEM_FIST) { + weapon = pPlayer->cur_item_weapon_getname; + } + return gitem_structs[weapon].item_header; +} + + + + +int getCurrentWeaponOrItem(void) +{ + return pPlayer->cur_item_weapon_getname; +} + + + + +#ifdef NONMATCHING +void used_to_load_1st_person_model_on_demand(void) { + +} +#else +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(pPlayer) +/* 091BC4 7F05D094 2610A0B0 */ addiu $s0, %lo(pPlayer) # 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05D334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05D334 +/* 091E64 7F05D334 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 091E68 7F05D338 AFB30020 */ sw $s3, 0x20($sp) +/* 091E6C 7F05D33C AFB00014 */ sw $s0, 0x14($sp) +/* 091E70 7F05D340 00808025 */ move $s0, $a0 +/* 091E74 7F05D344 00A09825 */ move $s3, $a1 +/* 091E78 7F05D348 AFBF0024 */ sw $ra, 0x24($sp) +/* 091E7C 7F05D34C AFB2001C */ sw $s2, 0x1c($sp) +/* 091E80 7F05D350 18A00016 */ blez $a1, .L7F05D3AC +/* 091E84 7F05D354 AFB10018 */ sw $s1, 0x18($sp) +/* 091E88 7F05D358 24110021 */ li $s1, 33 +/* 091E8C 7F05D35C 260E0001 */ addiu $t6, $s0, 1 +.L7F05D360: +/* 091E90 7F05D360 01D1001A */ div $zero, $t6, $s1 +/* 091E94 7F05D364 00008010 */ mfhi $s0 +/* 091E98 7F05D368 02002025 */ move $a0, $s0 +/* 091E9C 7F05D36C 16200002 */ bnez $s1, .L7F05D378 +/* 091EA0 7F05D370 00000000 */ nop +/* 091EA4 7F05D374 0007000D */ break 7 +.L7F05D378: +/* 091EA8 7F05D378 2401FFFF */ li $at, -1 +/* 091EAC 7F05D37C 16210004 */ bne $s1, $at, .L7F05D390 +/* 091EB0 7F05D380 3C018000 */ lui $at, 0x8000 +/* 091EB4 7F05D384 15C10002 */ bne $t6, $at, .L7F05D390 +/* 091EB8 7F05D388 00000000 */ nop +/* 091EBC 7F05D38C 0006000D */ break 6 +.L7F05D390: +/* 091EC0 7F05D390 0FC230F0 */ jal check_if_item_available +/* 091EC4 7F05D394 00000000 */ nop +/* 091EC8 7F05D398 5040FFF1 */ beql $v0, $zero, .L7F05D360 +/* 091ECC 7F05D39C 260E0001 */ addiu $t6, $s0, 1 +/* 091ED0 7F05D3A0 2673FFFF */ addiu $s3, $s3, -1 +/* 091ED4 7F05D3A4 5E60FFEE */ bgtzl $s3, .L7F05D360 +/* 091ED8 7F05D3A8 260E0001 */ addiu $t6, $s0, 1 +.L7F05D3AC: +/* 091EDC 7F05D3AC 06610019 */ bgez $s3, .L7F05D414 +/* 091EE0 7F05D3B0 24110021 */ li $s1, 33 +/* 091EE4 7F05D3B4 24120020 */ li $s2, 32 +/* 091EE8 7F05D3B8 2610FFFF */ addiu $s0, $s0, -1 +.L7F05D3BC: +/* 091EEC 7F05D3BC 0601000E */ bgez $s0, .L7F05D3F8 +/* 091EF0 7F05D3C0 240FFFFF */ li $t7, -1 +/* 091EF4 7F05D3C4 01F0C023 */ subu $t8, $t7, $s0 +/* 091EF8 7F05D3C8 0311001A */ div $zero, $t8, $s1 +/* 091EFC 7F05D3CC 0000C810 */ mfhi $t9 +/* 091F00 7F05D3D0 02598023 */ subu $s0, $s2, $t9 +/* 091F04 7F05D3D4 16200002 */ bnez $s1, .L7F05D3E0 +/* 091F08 7F05D3D8 00000000 */ nop +/* 091F0C 7F05D3DC 0007000D */ break 7 +.L7F05D3E0: +/* 091F10 7F05D3E0 2401FFFF */ li $at, -1 +/* 091F14 7F05D3E4 16210004 */ bne $s1, $at, .L7F05D3F8 +/* 091F18 7F05D3E8 3C018000 */ lui $at, 0x8000 +/* 091F1C 7F05D3EC 17010002 */ bne $t8, $at, .L7F05D3F8 +/* 091F20 7F05D3F0 00000000 */ nop +/* 091F24 7F05D3F4 0006000D */ break 6 +.L7F05D3F8: +/* 091F28 7F05D3F8 0FC230F0 */ jal check_if_item_available +/* 091F2C 7F05D3FC 02002025 */ move $a0, $s0 +/* 091F30 7F05D400 5040FFEE */ beql $v0, $zero, .L7F05D3BC +/* 091F34 7F05D404 2610FFFF */ addiu $s0, $s0, -1 +/* 091F38 7F05D408 26730001 */ addiu $s3, $s3, 1 +/* 091F3C 7F05D40C 0662FFEB */ bltzl $s3, .L7F05D3BC +/* 091F40 7F05D410 2610FFFF */ addiu $s0, $s0, -1 +.L7F05D414: +/* 091F44 7F05D414 8FBF0024 */ lw $ra, 0x24($sp) +/* 091F48 7F05D418 02001025 */ move $v0, $s0 +/* 091F4C 7F05D41C 8FB00014 */ lw $s0, 0x14($sp) +/* 091F50 7F05D420 8FB10018 */ lw $s1, 0x18($sp) +/* 091F54 7F05D424 8FB2001C */ lw $s2, 0x1c($sp) +/* 091F58 7F05D428 8FB30020 */ lw $s3, 0x20($sp) +/* 091F5C 7F05D42C 03E00008 */ jr $ra +/* 091F60 7F05D430 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void get_next_weapon_in_cycle_for_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_next_weapon_in_cycle_for_hand +/* 091F64 7F05D434 000478C0 */ sll $t7, $a0, 3 +/* 091F68 7F05D438 01E47823 */ subu $t7, $t7, $a0 +/* 091F6C 7F05D43C 000F7880 */ sll $t7, $t7, 2 +/* 091F70 7F05D440 01E47821 */ addu $t7, $t7, $a0 +/* 091F74 7F05D444 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 091F78 7F05D448 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 091F7C 7F05D44C 000F7880 */ sll $t7, $t7, 2 +/* 091F80 7F05D450 01E47821 */ addu $t7, $t7, $a0 +/* 091F84 7F05D454 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 091F88 7F05D458 000F78C0 */ sll $t7, $t7, 3 +/* 091F8C 7F05D45C AFBF0014 */ sw $ra, 0x14($sp) +/* 091F90 7F05D460 01CF1821 */ addu $v1, $t6, $t7 +/* 091F94 7F05D464 8C620894 */ lw $v0, 0x894($v1) +/* 091F98 7F05D468 24010005 */ li $at, 5 +/* 091F9C 7F05D46C 54410012 */ bnel $v0, $at, .L7F05D4B8 +/* 091FA0 7F05D470 24010006 */ li $at, 6 +/* 091FA4 7F05D474 04A10004 */ bgez $a1, .L7F05D488 +/* 091FA8 7F05D478 00000000 */ nop +/* 091FAC 7F05D47C 8C7808B8 */ lw $t8, 0x8b8($v1) +/* 091FB0 7F05D480 1F000006 */ bgtz $t8, .L7F05D49C +/* 091FB4 7F05D484 00000000 */ nop +.L7F05D488: +/* 091FB8 7F05D488 18A00008 */ blez $a1, .L7F05D4AC +/* 091FBC 7F05D48C 00000000 */ nop +/* 091FC0 7F05D490 8C7908B8 */ lw $t9, 0x8b8($v1) +/* 091FC4 7F05D494 07210005 */ bgez $t9, .L7F05D4AC +/* 091FC8 7F05D498 00000000 */ nop +.L7F05D49C: +/* 091FCC 7F05D49C 0FC17674 */ jal get_item_in_hand +/* 091FD0 7F05D4A0 00000000 */ nop +/* 091FD4 7F05D4A4 1000000B */ b .L7F05D4D4 +/* 091FD8 7F05D4A8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05D4AC: +/* 091FDC 7F05D4AC 10000008 */ b .L7F05D4D0 +/* 091FE0 7F05D4B0 8C6208AC */ lw $v0, 0x8ac($v1) +/* 091FE4 7F05D4B4 24010006 */ li $at, 6 +.L7F05D4B8: +/* 091FE8 7F05D4B8 14410003 */ bne $v0, $at, .L7F05D4C8 +/* 091FEC 7F05D4BC 00000000 */ nop +/* 091FF0 7F05D4C0 10000003 */ b .L7F05D4D0 +/* 091FF4 7F05D4C4 8C6208AC */ lw $v0, 0x8ac($v1) +.L7F05D4C8: +/* 091FF8 7F05D4C8 0FC17674 */ jal get_item_in_hand +/* 091FFC 7F05D4CC 00000000 */ nop +.L7F05D4D0: +/* 092000 7F05D4D0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05D4D4: +/* 092004 7F05D4D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 092008 7F05D4D8 03E00008 */ jr $ra +/* 09200C 7F05D4DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void likely_change_weapon_in_hand(void) { + +} +#else +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(pPlayer) +/* 09201C 7F05D4EC 00073880 */ sll $a3, $a3, 2 +/* 092020 7F05D4F0 2508A0B0 */ addiu $t0, %lo(pPlayer) # 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 get_num_players +/* 092074 7F05D544 AFA40020 */ sw $a0, 0x20($sp) +/* 092078 7F05D548 3C088008 */ lui $t0, %hi(pPlayer) +/* 09207C 7F05D54C 24010001 */ li $at, 1 +/* 092080 7F05D550 2508A0B0 */ addiu $t0, %lo(pPlayer) # 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(pPlayer) +/* 0920D0 7F05D5A0 2508A0B0 */ addiu $t0, %lo(pPlayer) # 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 +) +#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); +} + + +void sub_GAME_7F05D650(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); +} + + +void sub_GAME_7F05D690(void) +{ + draw_item_in_hand_has_more_ammo(RIGHT_HAND, pPlayer->hands[RIGHT_HAND].previous_weapon); + draw_item_in_hand_has_more_ammo(LEFT_HAND, pPlayer->hands[LEFT_HAND].previous_weapon); +} + + + + +#ifdef NONMATCHING +void advance_through_inventory(void) +{ + s32 nextleft; + s32 nextright; + + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,1); + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,1); + if ((nextright < ITEM_BOMBCASE) && (nextleft < ITEM_BOMBCASE)) + { + sub_GAME_7F08C86C(nextright, nextleft, 0); + } + else + { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,1); +} +#else +GLOBAL_ASM( +.text +glabel advance_through_inventory +/* 092200 7F05D6D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 092204 7F05D6D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 092208 7F05D6D8 00002025 */ move $a0, $zero +/* 09220C 7F05D6DC 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092210 7F05D6E0 24050001 */ li $a1, 1 +/* 092214 7F05D6E4 AFA20024 */ sw $v0, 0x24($sp) +/* 092218 7F05D6E8 24040001 */ li $a0, 1 +/* 09221C 7F05D6EC 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092220 7F05D6F0 24050001 */ li $a1, 1 +/* 092224 7F05D6F4 8FAE0024 */ lw $t6, 0x24($sp) +/* 092228 7F05D6F8 AFA20020 */ sw $v0, 0x20($sp) +/* 09222C 7F05D6FC 29C10021 */ slti $at, $t6, 0x21 +/* 092230 7F05D700 10200003 */ beqz $at, .L7F05D710 +/* 092234 7F05D704 28410021 */ slti $at, $v0, 0x21 +/* 092238 7F05D708 14200008 */ bnez $at, .L7F05D72C +/* 09223C 7F05D70C 27A40024 */ addiu $a0, $sp, 0x24 +.L7F05D710: +/* 092240 7F05D710 3C028008 */ lui $v0, %hi(pPlayer) +/* 092244 7F05D714 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 092248 7F05D718 8C4F0878 */ lw $t7, 0x878($v0) +/* 09224C 7F05D71C AFAF0024 */ sw $t7, 0x24($sp) +/* 092250 7F05D720 8C580C20 */ lw $t8, 0xc20($v0) +/* 092254 7F05D724 10000004 */ b .L7F05D738 +/* 092258 7F05D728 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D72C: +/* 09225C 7F05D72C 27A50020 */ addiu $a1, $sp, 0x20 +/* 092260 7F05D730 0FC2321B */ jal sub_GAME_7F08C86C +/* 092264 7F05D734 00003025 */ move $a2, $zero +.L7F05D738: +/* 092268 7F05D738 00002025 */ move $a0, $zero +/* 09226C 7F05D73C 8FA50024 */ lw $a1, 0x24($sp) +/* 092270 7F05D740 0FC17538 */ jal likely_change_weapon_in_hand +/* 092274 7F05D744 24060001 */ li $a2, 1 +/* 092278 7F05D748 24040001 */ li $a0, 1 +/* 09227C 7F05D74C 8FA50020 */ lw $a1, 0x20($sp) +/* 092280 7F05D750 0FC17538 */ jal likely_change_weapon_in_hand +/* 092284 7F05D754 24060001 */ li $a2, 1 +/* 092288 7F05D758 8FBF0014 */ lw $ra, 0x14($sp) +/* 09228C 7F05D75C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 092290 7F05D760 03E00008 */ jr $ra +/* 092294 7F05D764 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void backstep_through_inventory(void) +{ + ITEM_IDS nextleft; + ITEM_IDS nextright; + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,-1); + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,-1); + if ((nextright < ITEM_BOMBCASE) && (nextleft < ITEM_BOMBCASE)) + { + sub_GAME_7F08CB10(nextright,nextleft,0); + } + else + { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,-1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,-1); +} +#else +GLOBAL_ASM( +.text +glabel backstep_through_inventory +/* 092298 7F05D768 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09229C 7F05D76C AFBF0014 */ sw $ra, 0x14($sp) +/* 0922A0 7F05D770 00002025 */ move $a0, $zero +/* 0922A4 7F05D774 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 0922A8 7F05D778 2405FFFF */ li $a1, -1 +/* 0922AC 7F05D77C AFA20024 */ sw $v0, 0x24($sp) +/* 0922B0 7F05D780 24040001 */ li $a0, 1 +/* 0922B4 7F05D784 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 0922B8 7F05D788 2405FFFF */ li $a1, -1 +/* 0922BC 7F05D78C 8FAE0024 */ lw $t6, 0x24($sp) +/* 0922C0 7F05D790 AFA20020 */ sw $v0, 0x20($sp) +/* 0922C4 7F05D794 29C10021 */ slti $at, $t6, 0x21 +/* 0922C8 7F05D798 10200003 */ beqz $at, .L7F05D7A8 +/* 0922CC 7F05D79C 28410021 */ slti $at, $v0, 0x21 +/* 0922D0 7F05D7A0 14200008 */ bnez $at, .L7F05D7C4 +/* 0922D4 7F05D7A4 27A40024 */ addiu $a0, $sp, 0x24 +.L7F05D7A8: +/* 0922D8 7F05D7A8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0922DC 7F05D7AC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0922E0 7F05D7B0 8C4F0878 */ lw $t7, 0x878($v0) +/* 0922E4 7F05D7B4 AFAF0024 */ sw $t7, 0x24($sp) +/* 0922E8 7F05D7B8 8C580C20 */ lw $t8, 0xc20($v0) +/* 0922EC 7F05D7BC 10000004 */ b .L7F05D7D0 +/* 0922F0 7F05D7C0 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D7C4: +/* 0922F4 7F05D7C4 27A50020 */ addiu $a1, $sp, 0x20 +/* 0922F8 7F05D7C8 0FC232C4 */ jal sub_GAME_7F08CB10 +/* 0922FC 7F05D7CC 00003025 */ move $a2, $zero +.L7F05D7D0: +/* 092300 7F05D7D0 00002025 */ move $a0, $zero +/* 092304 7F05D7D4 8FA50024 */ lw $a1, 0x24($sp) +/* 092308 7F05D7D8 0FC17538 */ jal likely_change_weapon_in_hand +/* 09230C 7F05D7DC 2406FFFF */ li $a2, -1 +/* 092310 7F05D7E0 24040001 */ li $a0, 1 +/* 092314 7F05D7E4 8FA50020 */ lw $a1, 0x20($sp) +/* 092318 7F05D7E8 0FC17538 */ jal likely_change_weapon_in_hand +/* 09231C 7F05D7EC 2406FFFF */ li $a2, -1 +/* 092320 7F05D7F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 092324 7F05D7F4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 092328 7F05D7F8 03E00008 */ jr $ra +/* 09232C 7F05D7FC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void autoadvance_on_deplete_all_ammo(void) +{ + ITEM_IDS nextleft; + ITEM_IDS nextright; + ITEM_IDS dupeleft; + ITEM_IDS duperight; + + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,1); + duperight = nextright; + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,1); + if (((int)nextright < ITEM_BOMBCASE) && ((int)nextleft < ITEM_BOMBCASE)) { + dupeleft = nextleft; + if ((nextright == ITEM_REMOTEMINE) && + (check_if_item_available(ITEM_TRIGGER) != 0)) { + nextright = ITEM_TRIGGER; + nextleft = ITEM_UNARMED; + } + else { + sub_GAME_7F08C86C((int *)&nextright,(int *)&nextleft,1); + if (((int)nextright < (int)duperight) || + ((nextright == duperight && ((int)nextleft <= (int)dupeleft)))) { + nextright = duperight; + nextleft = dupeleft; + sub_GAME_7F08CB10((int *)&nextright,(int *)&nextleft,1); + } + } + } + else { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,1); +} +#else +GLOBAL_ASM( +.text +glabel autoadvance_on_deplete_all_ammo +/* 092330 7F05D800 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 092334 7F05D804 AFBF0014 */ sw $ra, 0x14($sp) +/* 092338 7F05D808 00002025 */ move $a0, $zero +/* 09233C 7F05D80C 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092340 7F05D810 24050001 */ li $a1, 1 +/* 092344 7F05D814 AFA2002C */ sw $v0, 0x2c($sp) +/* 092348 7F05D818 AFA20024 */ sw $v0, 0x24($sp) +/* 09234C 7F05D81C 24040001 */ li $a0, 1 +/* 092350 7F05D820 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092354 7F05D824 24050001 */ li $a1, 1 +/* 092358 7F05D828 8FAE0024 */ lw $t6, 0x24($sp) +/* 09235C 7F05D82C 00401825 */ move $v1, $v0 +/* 092360 7F05D830 AFA20020 */ sw $v0, 0x20($sp) +/* 092364 7F05D834 29C10021 */ slti $at, $t6, 0x21 +/* 092368 7F05D838 10200003 */ beqz $at, .L7F05D848 +/* 09236C 7F05D83C 28410021 */ slti $at, $v0, 0x21 +/* 092370 7F05D840 14200008 */ bnez $at, .L7F05D864 +/* 092374 7F05D844 8FB90024 */ lw $t9, 0x24($sp) +.L7F05D848: +/* 092378 7F05D848 3C028008 */ lui $v0, %hi(pPlayer) +/* 09237C 7F05D84C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 092380 7F05D850 8C4F0878 */ lw $t7, 0x878($v0) +/* 092384 7F05D854 AFAF0024 */ sw $t7, 0x24($sp) +/* 092388 7F05D858 8C580C20 */ lw $t8, 0xc20($v0) +/* 09238C 7F05D85C 10000021 */ b .L7F05D8E4 +/* 092390 7F05D860 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D864: +/* 092394 7F05D864 2401001D */ li $at, 29 +/* 092398 7F05D868 17210009 */ bne $t9, $at, .L7F05D890 +/* 09239C 7F05D86C 2404001E */ li $a0, 30 +/* 0923A0 7F05D870 0FC230F0 */ jal check_if_item_available +/* 0923A4 7F05D874 AFA30028 */ sw $v1, 0x28($sp) +/* 0923A8 7F05D878 10400005 */ beqz $v0, .L7F05D890 +/* 0923AC 7F05D87C 8FA30028 */ lw $v1, 0x28($sp) +/* 0923B0 7F05D880 2408001E */ li $t0, 30 +/* 0923B4 7F05D884 AFA80024 */ sw $t0, 0x24($sp) +/* 0923B8 7F05D888 10000016 */ b .L7F05D8E4 +/* 0923BC 7F05D88C AFA00020 */ sw $zero, 0x20($sp) +.L7F05D890: +/* 0923C0 7F05D890 27A40024 */ addiu $a0, $sp, 0x24 +/* 0923C4 7F05D894 27A50020 */ addiu $a1, $sp, 0x20 +/* 0923C8 7F05D898 24060001 */ li $a2, 1 +/* 0923CC 7F05D89C 0FC2321B */ jal sub_GAME_7F08C86C +/* 0923D0 7F05D8A0 AFA30028 */ sw $v1, 0x28($sp) +/* 0923D4 7F05D8A4 8FA2002C */ lw $v0, 0x2c($sp) +/* 0923D8 7F05D8A8 8FA90024 */ lw $t1, 0x24($sp) +/* 0923DC 7F05D8AC 8FA30028 */ lw $v1, 0x28($sp) +/* 0923E0 7F05D8B0 27A40024 */ addiu $a0, $sp, 0x24 +/* 0923E4 7F05D8B4 0122082A */ slt $at, $t1, $v0 +/* 0923E8 7F05D8B8 14200006 */ bnez $at, .L7F05D8D4 +/* 0923EC 7F05D8BC 27A50020 */ addiu $a1, $sp, 0x20 +/* 0923F0 7F05D8C0 15220008 */ bne $t1, $v0, .L7F05D8E4 +/* 0923F4 7F05D8C4 8FAA0020 */ lw $t2, 0x20($sp) +/* 0923F8 7F05D8C8 006A082A */ slt $at, $v1, $t2 +/* 0923FC 7F05D8CC 54200006 */ bnezl $at, .L7F05D8E8 +/* 092400 7F05D8D0 00002025 */ move $a0, $zero +.L7F05D8D4: +/* 092404 7F05D8D4 AFA20024 */ sw $v0, 0x24($sp) +/* 092408 7F05D8D8 AFA30020 */ sw $v1, 0x20($sp) +/* 09240C 7F05D8DC 0FC232C4 */ jal sub_GAME_7F08CB10 +/* 092410 7F05D8E0 24060001 */ li $a2, 1 +.L7F05D8E4: +/* 092414 7F05D8E4 00002025 */ move $a0, $zero +.L7F05D8E8: +/* 092418 7F05D8E8 8FA50024 */ lw $a1, 0x24($sp) +/* 09241C 7F05D8EC 0FC17538 */ jal likely_change_weapon_in_hand +/* 092420 7F05D8F0 24060001 */ li $a2, 1 +/* 092424 7F05D8F4 24040001 */ li $a0, 1 +/* 092428 7F05D8F8 8FA50020 */ lw $a1, 0x20($sp) +/* 09242C 7F05D8FC 0FC17538 */ jal likely_change_weapon_in_hand +/* 092430 7F05D900 24060001 */ li $a2, 1 +/* 092434 7F05D904 8FBF0014 */ lw $ra, 0x14($sp) +/* 092438 7F05D908 27BD0030 */ addiu $sp, $sp, 0x30 +/* 09243C 7F05D90C 03E00008 */ jr $ra +/* 092440 7F05D910 00000000 */ nop +) +#endif + +s32 draw_item_in_hand_has_more_ammo(HANDEDNESS hand, s32 next_weapon) { + pPlayer->hands[hand].weapon_current_animation = 5; + pPlayer->hands[hand].weapon_next_weapon = next_weapon; + pPlayer->hands[hand].weapon_animation_trigger = 0; +} + +void attempt_reload_item_in_hand(HANDEDNESS hand) { + s32 ammo_type = get_ammo_type_for_weapon(get_item_in_hand(hand)); + if (ammo_type != 0) { + if (pPlayer->hands[hand].weapon_current_animation == 0) { + pPlayer->hands[hand].weapon_current_animation = 9; + } + } +} + +s32 get_item_in_hand(HANDEDNESS hand) { + return pPlayer->hands[hand].weaponnum; +} + +void draw_item_in_hand(HANDEDNESS hand, s32 next_weapon) { + pPlayer->hands[hand].weapon_current_animation = 0xE; + pPlayer->hands[hand].weapon_next_weapon = next_weapon; +} + +s32 get_item_in_hand_or_watch_menu(HANDEDNESS hand) { + if (pPlayer->hands[hand].weaponnum_watchmenu >= 0) { + return pPlayer->hands[hand].weaponnum_watchmenu; + } else { + return pPlayer->hands[hand].weaponnum; + } +} + +void sub_GAME_7F05DA8C(HANDEDNESS hand, s32 weaponnum_watchmenu) { + place_item_in_hand_swap_and_make_visible(); + pPlayer->hands[hand].weaponnum_watchmenu = weaponnum_watchmenu; +} + +void sub_GAME_7F05DAE4(HANDEDNESS hand) { + if (pPlayer->hands[hand].weaponnum_watchmenu >= 0) { + place_item_in_hand_swap_and_make_visible(hand, pPlayer->hands[hand].weaponnum); + pPlayer->hands[hand].weaponnum_watchmenu = -1; + } +} + +#ifdef NONMATCHING +void remove_hands_item(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_hands_item +/* 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(pPlayer) +/* 092698 7F05DB68 000E7080 */ sll $t6, $t6, 2 +/* 09269C 7F05DB6C 2631A0B0 */ addiu $s1, %lo(pPlayer) # 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 get_num_players +/* 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 calculate_equip_cur_item +/* 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 + +s8 get_hands_firing_status(HANDEDNESS hand) { + return pPlayer->hands[hand].weapon_firing_status; +} + +f32 sub_GAME_7F05DCB8(HANDEDNESS hand) { + return pPlayer->hands[hand].field_A34; +} + +f32 sub_GAME_7F05DCE8(HANDEDNESS hand) +{ + f32 ret; + + if (hand == RIGHT_HAND) + { + ret = get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->pos_x; + } + else + { + ret = -get_ptr_item_statistics(get_item_in_hand_or_watch_menu(LEFT_HAND))->pos_x; + } + + return ret; +} + +f32 get_item_in_hand_zoom(void) { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + return pPlayer->sniper_zoom; + } + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + return pPlayer->camera_zoom; + } + return get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->zoom; +} + +void camera_sniper_zoom_in(f32 zoom) +{ + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + pPlayer->sniper_zoom *= (1.0f + (zoom * 0.1f)); + if (pPlayer->sniper_zoom > 60.0f) { + pPlayer->sniper_zoom = 60.0f; + } + } + else + { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + pPlayer->camera_zoom *= (1.0f + (zoom * 0.1f)); + if (pPlayer->camera_zoom > 60.0f) { + pPlayer->camera_zoom = 60.0f; + } + } + } +} + +void camera_sniper_zoom_out(f32 zoom) +{ + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + pPlayer->sniper_zoom /= (1.0f + (zoom * 0.1f)); + if (pPlayer->sniper_zoom < 7.0f) { + pPlayer->sniper_zoom = 7.0f; + } + } + else + { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + pPlayer->camera_zoom /= (1.0f + (zoom * 0.1f)); + if (pPlayer->camera_zoom < 7.0f) { + pPlayer->camera_zoom = 7.0f; + } + } + } +} + +f32 bondwalkGetItemDestructionAmount(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->destruction_amount; +} + + +f32 bondwalkGetItemField68(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->field_68; +} + + +s8 get_automatic_firing_rate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->automatic_firing_rate; +} + + +u8 get_sound_trigger_rate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->sound_trigger_rate; +} + + +u16 bondwalkItemGetSound(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->sound; +} + + +u8 bondwalkItemGetShootThroughFlag(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->objects_shoot_through; +} + + +s32 bondwalkItemHasAmmo(ITEM_IDS item) +{ + if (bondwalkItemCheckBitflags(item, 0x40000) != 0) + { + if ((get_ammo_type_for_weapon(item) == 0) || (get_ammo_count_for_weapon(item) > 0)) + { + return 1; + } + } + return 0; +} + + +u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask) +{ + return ((get_ptr_item_statistics(item)->bitflags & mask) != 0); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05E0E4(void) { + +} +#else +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 sub_GAME_7F05E0E4 +/* 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(pPlayer) +/* 092C58 7F05E128 2610A0B0 */ addiu $s0, %lo(pPlayer) # 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(pPlayer) +/* 092CD8 7F05E1A8 460A4482 */ mul.s $f18, $f8, $f10 +/* 092CDC 7F05E1AC 2610A0B0 */ addiu $s0, %lo(pPlayer) # 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(pPlayer) +/* 092CF8 7F05E1C8 2610A0B0 */ addiu $s0, %lo(pPlayer) # 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 get_BONDdata_bondfadefracnew +/* 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 get_BONDdata_bondfadefracnew +/* 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(clock_timer) +/* 092D70 7F05E240 24848374 */ addiu $a0, %lo(clock_timer) # 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(global_timer_delta) +/* 092E4C 7F05E31C C4208378 */ lwc1 $f0, %lo(global_timer_delta)($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 unknown_takes_playerhand +/* 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(global_timer_delta) +/* 092EC4 7F05E394 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($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 get_random_value +/* 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 unknown_takes_playerhand +/* 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 + + +void sub_GAME_7F05E5F0(f32 param_1) +{ + pPlayer->hands[RIGHT_HAND].field_A30 = (1.0f - cosf(param_1)) * 5.0f; + pPlayer->hands[LEFT_HAND].field_A30 = (1.0f - cosf(param_1)) * 5.0f; +} + + +f32 get_value_if_watch_is_on_hand_or_not(int hand) +{ + if ((get_item_in_hand(hand) == ITEM_TRIGGER) || (get_item_in_hand(hand) == ITEM_WATCHLASER)) + { + return 0.08726647f; + } + else + { + return 0.17453294f; + } +} + + + +#ifdef NONMATCHING +void sub_GAME_7F05E6B4(void) { + +} +#else +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(pPlayer) +/* 093200 7F05E6D0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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(global_timer_delta) +/* 093244 7F05E714 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($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(pPlayer) +/* 093264 7F05E734 8DEFA0B0 */ lw $t7, %lo(pPlayer)($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(pPlayer) +/* 093294 7F05E764 8F39A0B0 */ lw $t9, %lo(pPlayer)($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(pPlayer) +/* 0932BC 7F05E78C 8D29A0B0 */ lw $t1, %lo(pPlayer)($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(global_timer_delta) +/* 0932F4 7F05E7C4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0932F8 7F05E7C8 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 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(pPlayer)($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 + +void sub_GAME_7F05E808(HANDEDNESS hand) { + pPlayer->hands[hand].field_A8C = 1; +} + +#ifdef NONMATCHING +void sub_GAME_7F05E83C(void) { + +} +#else +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(pPlayer) +/* 09338C 7F05E85C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # 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(global_timer_delta) +/* 0933E8 7F05E8B8 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($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(global_timer_delta) +/* 093460 7F05E930 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 093464 7F05E934 46121102 */ mul.s $f4, $f2, $f18 +/* 093468 7F05E938 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 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(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05E978(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EA94(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EB0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05EB0C +/* 09363C 7F05EB0C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 093640 7F05EB10 AFBF001C */ sw $ra, 0x1c($sp) +/* 093644 7F05EB14 AFB10018 */ sw $s1, 0x18($sp) +/* 093648 7F05EB18 AFB00014 */ sw $s0, 0x14($sp) +/* 09364C 7F05EB1C AFA50024 */ sw $a1, 0x24($sp) +/* 093650 7F05EB20 AFA60028 */ sw $a2, 0x28($sp) +/* 093654 7F05EB24 AFA7002C */ sw $a3, 0x2c($sp) +/* 093658 7F05EB28 8C910010 */ lw $s1, 0x10($a0) +/* 09365C 7F05EB2C 00808025 */ move $s0, $a0 +/* 093660 7F05EB30 52200036 */ beql $s1, $zero, .L7F05EC0C +/* 093664 7F05EB34 8FBF001C */ lw $ra, 0x1c($sp) +/* 093668 7F05EB38 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 09366C 7F05EB3C 02202025 */ move $a0, $s1 +/* 093670 7F05EB40 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 093674 7F05EB44 02202025 */ move $a0, $s1 +/* 093678 7F05EB48 8E0E0014 */ lw $t6, 0x14($s0) +/* 09367C 7F05EB4C 8FA5002C */ lw $a1, 0x2c($sp) +/* 093680 7F05EB50 0FC1629F */ jal matrix_scalar_multiply +/* 093684 7F05EB54 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 093688 7F05EB58 02002025 */ move $a0, $s0 +/* 09368C 7F05EB5C 8FA50024 */ lw $a1, 0x24($sp) +/* 093690 7F05EB60 8FA6002C */ lw $a2, 0x2c($sp) +/* 093694 7F05EB64 0FC101D5 */ jal sub_GAME_7F040754 +/* 093698 7F05EB68 8FA70028 */ lw $a3, 0x28($sp) +/* 09369C 7F05EB6C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 0936A0 7F05EB70 02002025 */ move $a0, $s0 +/* 0936A4 7F05EB74 0FC10121 */ jal sub_GAME_7F040484 +/* 0936A8 7F05EB78 02002025 */ move $a0, $s0 +/* 0936AC 7F05EB7C 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 0936B0 7F05EB80 02202025 */ move $a0, $s1 +/* 0936B4 7F05EB84 8E0F0064 */ lw $t7, 0x64($s0) +/* 0936B8 7F05EB88 31F80080 */ andi $t8, $t7, 0x80 +/* 0936BC 7F05EB8C 5300001F */ beql $t8, $zero, .L7F05EC0C +/* 0936C0 7F05EB90 8FBF001C */ lw $ra, 0x1c($sp) +/* 0936C4 7F05EB94 8E02006C */ lw $v0, 0x6c($s0) +/* 0936C8 7F05EB98 02202025 */ move $a0, $s1 +/* 0936CC 7F05EB9C 8C590000 */ lw $t9, ($v0) +/* 0936D0 7F05EBA0 37280041 */ ori $t0, $t9, 0x41 +/* 0936D4 7F05EBA4 AC480000 */ sw $t0, ($v0) +/* 0936D8 7F05EBA8 8E0A006C */ lw $t2, 0x6c($s0) +/* 0936DC 7F05EBAC 8FA90038 */ lw $t1, 0x38($sp) +/* 0936E0 7F05EBB0 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 0936E4 7F05EBB4 AD490088 */ sw $t1, 0x88($t2) +/* 0936E8 7F05EBB8 8E05006C */ lw $a1, 0x6c($s0) +/* 0936EC 7F05EBBC 8FA40034 */ lw $a0, 0x34($sp) +/* 0936F0 7F05EBC0 0FC16008 */ jal matrix_4x4_copy +/* 0936F4 7F05EBC4 24A50020 */ addiu $a1, $a1, 0x20 +/* 0936F8 7F05EBC8 8FA20030 */ lw $v0, 0x30($sp) +/* 0936FC 7F05EBCC 8E0B006C */ lw $t3, 0x6c($s0) +/* 093700 7F05EBD0 3C0F8005 */ lui $t7, %hi(D_80048380) +/* 093704 7F05EBD4 C4440000 */ lwc1 $f4, ($v0) +/* 093708 7F05EBD8 E5640004 */ swc1 $f4, 4($t3) +/* 09370C 7F05EBDC 8E0C006C */ lw $t4, 0x6c($s0) +/* 093710 7F05EBE0 C4460004 */ lwc1 $f6, 4($v0) +/* 093714 7F05EBE4 E5860008 */ swc1 $f6, 8($t4) +/* 093718 7F05EBE8 8E0D006C */ lw $t5, 0x6c($s0) +/* 09371C 7F05EBEC C4480008 */ lwc1 $f8, 8($v0) +/* 093720 7F05EBF0 E5A8000C */ swc1 $f8, 0xc($t5) +/* 093724 7F05EBF4 8E0E006C */ lw $t6, 0x6c($s0) +/* 093728 7F05EBF8 ADD000E4 */ sw $s0, 0xe4($t6) +/* 09372C 7F05EBFC 8E18006C */ lw $t8, 0x6c($s0) +/* 093730 7F05EC00 8DEF8380 */ lw $t7, %lo(D_80048380)($t7) +/* 093734 7F05EC04 AF0F00E8 */ sw $t7, 0xe8($t8) +/* 093738 7F05EC08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05EC0C: +/* 09373C 7F05EC0C 8FB00014 */ lw $s0, 0x14($sp) +/* 093740 7F05EC10 8FB10018 */ lw $s1, 0x18($sp) +/* 093744 7F05EC14 03E00008 */ jr $ra +/* 093748 7F05EC18 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EC1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05EC1C +/* 09374C 7F05EC1C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 093750 7F05EC20 AFBF003C */ sw $ra, 0x3c($sp) +/* 093754 7F05EC24 AFB20038 */ sw $s2, 0x38($sp) +/* 093758 7F05EC28 AFB10034 */ sw $s1, 0x34($sp) +/* 09375C 7F05EC2C AFB00030 */ sw $s0, 0x30($sp) +/* 093760 7F05EC30 AFA600E0 */ sw $a2, 0xe0($sp) +/* 093764 7F05EC34 AFA700E4 */ sw $a3, 0xe4($sp) +/* 093768 7F05EC38 8C820010 */ lw $v0, 0x10($a0) +/* 09376C 7F05EC3C 00A08825 */ move $s1, $a1 +/* 093770 7F05EC40 00809025 */ move $s2, $a0 +/* 093774 7F05EC44 50400072 */ beql $v0, $zero, .L7F05EE10 +/* 093778 7F05EC48 8FBF003C */ lw $ra, 0x3c($sp) +/* 09377C 7F05EC4C 0FC225E6 */ jal get_curplayer_positiondata +/* 093780 7F05EC50 00000000 */ nop +/* 093784 7F05EC54 3C048008 */ lui $a0, %hi(pPlayer) +/* 093788 7F05EC58 00408025 */ move $s0, $v0 +/* 09378C 7F05EC5C 0FC225DE */ jal sub_GAME_7F089778 +/* 093790 7F05EC60 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 093794 7F05EC64 AFA000B0 */ sw $zero, 0xb0($sp) +/* 093798 7F05EC68 C60C000C */ lwc1 $f12, 0xc($s0) +/* 09379C 7F05EC6C C6220004 */ lwc1 $f2, 4($s1) +/* 0937A0 7F05EC70 02002025 */ move $a0, $s0 +/* 0937A4 7F05EC74 00002825 */ move $a1, $zero +/* 0937A8 7F05EC78 460C103C */ c.lt.s $f2, $f12 +/* 0937AC 7F05EC7C 00000000 */ nop +/* 0937B0 7F05EC80 45020005 */ bc1fl .L7F05EC98 +/* 0937B4 7F05EC84 46001381 */ sub.s $f14, $f2, $f0 +/* 0937B8 7F05EC88 46006381 */ sub.s $f14, $f12, $f0 +/* 0937BC 7F05EC8C 10000003 */ b .L7F05EC9C +/* 0937C0 7F05EC90 46001401 */ sub.s $f16, $f2, $f0 +/* 0937C4 7F05EC94 46001381 */ sub.s $f14, $f2, $f0 +.L7F05EC98: +/* 0937C8 7F05EC98 46006401 */ sub.s $f16, $f12, $f0 +.L7F05EC9C: +/* 0937CC 7F05EC9C 8E0E0014 */ lw $t6, 0x14($s0) +/* 0937D0 7F05ECA0 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0937D4 7F05ECA4 E7AE00B8 */ swc1 $f14, 0xb8($sp) +/* 0937D8 7F05ECA8 0FC2280F */ jal sub_GAME_7F08A03C +/* 0937DC 7F05ECAC AFAE00C4 */ sw $t6, 0xc4($sp) +/* 0937E0 7F05ECB0 C6240008 */ lwc1 $f4, 8($s1) +/* 0937E4 7F05ECB4 8E050008 */ lw $a1, 8($s0) +/* 0937E8 7F05ECB8 8E060010 */ lw $a2, 0x10($s0) +/* 0937EC 7F05ECBC 8E270000 */ lw $a3, ($s1) +/* 0937F0 7F05ECC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0937F4 7F05ECC4 C7AE00B8 */ lwc1 $f14, 0xb8($sp) +/* 0937F8 7F05ECC8 C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 0937FC 7F05ECCC 44814000 */ mtc1 $at, $f8 +/* 093800 7F05ECD0 44803000 */ mtc1 $zero, $f6 +/* 093804 7F05ECD4 240F001F */ li $t7, 31 +/* 093808 7F05ECD8 AFAF0014 */ sw $t7, 0x14($sp) +/* 09380C 7F05ECDC 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 093810 7F05ECE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 093814 7F05ECE4 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 093818 7F05ECE8 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 09381C 7F05ECEC E7A80024 */ swc1 $f8, 0x24($sp) +/* 093820 7F05ECF0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 093824 7F05ECF4 E7A60020 */ swc1 $f6, 0x20($sp) +/* 093828 7F05ECF8 10400008 */ beqz $v0, .L7F05ED1C +/* 09382C 7F05ECFC 02002025 */ move $a0, $s0 +/* 093830 7F05ED00 C62A0000 */ lwc1 $f10, ($s1) +/* 093834 7F05ED04 E7AA00C8 */ swc1 $f10, 0xc8($sp) +/* 093838 7F05ED08 C6320004 */ lwc1 $f18, 4($s1) +/* 09383C 7F05ED0C E7B200CC */ swc1 $f18, 0xcc($sp) +/* 093840 7F05ED10 C6240008 */ lwc1 $f4, 8($s1) +/* 093844 7F05ED14 1000000B */ b .L7F05ED44 +/* 093848 7F05ED18 E7A400D0 */ swc1 $f4, 0xd0($sp) +.L7F05ED1C: +/* 09384C 7F05ED1C 8E180014 */ lw $t8, 0x14($s0) +/* 093850 7F05ED20 24190001 */ li $t9, 1 +/* 093854 7F05ED24 AFB800C4 */ sw $t8, 0xc4($sp) +/* 093858 7F05ED28 C6060008 */ lwc1 $f6, 8($s0) +/* 09385C 7F05ED2C E7A600C8 */ swc1 $f6, 0xc8($sp) +/* 093860 7F05ED30 C608000C */ lwc1 $f8, 0xc($s0) +/* 093864 7F05ED34 E7A800CC */ swc1 $f8, 0xcc($sp) +/* 093868 7F05ED38 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 09386C 7F05ED3C AFB900B0 */ sw $t9, 0xb0($sp) +/* 093870 7F05ED40 E7AA00D0 */ swc1 $f10, 0xd0($sp) +.L7F05ED44: +/* 093874 7F05ED44 0FC2280F */ jal sub_GAME_7F08A03C +/* 093878 7F05ED48 24050001 */ li $a1, 1 +/* 09387C 7F05ED4C 8FA800E4 */ lw $t0, 0xe4($sp) +/* 093880 7F05ED50 8FA900E8 */ lw $t1, 0xe8($sp) +/* 093884 7F05ED54 02402025 */ move $a0, $s2 +/* 093888 7F05ED58 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 09388C 7F05ED5C 8FA600C4 */ lw $a2, 0xc4($sp) +/* 093890 7F05ED60 8FA700E0 */ lw $a3, 0xe0($sp) +/* 093894 7F05ED64 AFB00018 */ sw $s0, 0x18($sp) +/* 093898 7F05ED68 AFA80010 */ sw $t0, 0x10($sp) +/* 09389C 7F05ED6C 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 0938A0 7F05ED70 AFA90014 */ sw $t1, 0x14($sp) +/* 0938A4 7F05ED74 8E4A0064 */ lw $t2, 0x64($s2) +/* 0938A8 7F05ED78 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 0938AC 7F05ED7C 314B0080 */ andi $t3, $t2, 0x80 +/* 0938B0 7F05ED80 51600023 */ beql $t3, $zero, .L7F05EE10 +/* 0938B4 7F05ED84 8FBF003C */ lw $ra, 0x3c($sp) +/* 0938B8 7F05ED88 1180000E */ beqz $t4, .L7F05EDC4 +/* 0938BC 7F05ED8C 00000000 */ nop +/* 0938C0 7F05ED90 8E42006C */ lw $v0, 0x6c($s2) +/* 0938C4 7F05ED94 8C4D0000 */ lw $t5, ($v0) +/* 0938C8 7F05ED98 35AE0100 */ ori $t6, $t5, 0x100 +/* 0938CC 7F05ED9C AC4E0000 */ sw $t6, ($v0) +/* 0938D0 7F05EDA0 8E4F006C */ lw $t7, 0x6c($s2) +/* 0938D4 7F05EDA4 C6320000 */ lwc1 $f18, ($s1) +/* 0938D8 7F05EDA8 E5F200D4 */ swc1 $f18, 0xd4($t7) +/* 0938DC 7F05EDAC 8E58006C */ lw $t8, 0x6c($s2) +/* 0938E0 7F05EDB0 C6240004 */ lwc1 $f4, 4($s1) +/* 0938E4 7F05EDB4 E70400D8 */ swc1 $f4, 0xd8($t8) +/* 0938E8 7F05EDB8 8E59006C */ lw $t9, 0x6c($s2) +/* 0938EC 7F05EDBC C6260008 */ lwc1 $f6, 8($s1) +/* 0938F0 7F05EDC0 E72600DC */ swc1 $f6, 0xdc($t9) +.L7F05EDC4: +/* 0938F4 7F05EDC4 0FC227E6 */ jal get_cur_players_room +/* 0938F8 7F05EDC8 00000000 */ nop +/* 0938FC 7F05EDCC 240800FF */ li $t0, 255 +/* 093900 7F05EDD0 A3A200A8 */ sb $v0, 0xa8($sp) +/* 093904 7F05EDD4 0FC22800 */ jal get_BONDdata_position3 +/* 093908 7F05EDD8 A3A800A9 */ sb $t0, 0xa9($sp) +/* 09390C 7F05EDDC 8E47006C */ lw $a3, 0x6c($s2) +/* 093910 7F05EDE0 27A90054 */ addiu $t1, $sp, 0x54 +/* 093914 7F05EDE4 27AA0050 */ addiu $t2, $sp, 0x50 +/* 093918 7F05EDE8 240B0014 */ li $t3, 20 +/* 09391C 7F05EDEC AFAB0018 */ sw $t3, 0x18($sp) +/* 093920 7F05EDF0 AFAA0014 */ sw $t2, 0x14($sp) +/* 093924 7F05EDF4 AFA90010 */ sw $t1, 0x10($sp) +/* 093928 7F05EDF8 00402025 */ move $a0, $v0 +/* 09392C 7F05EDFC 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 093930 7F05EE00 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 093934 7F05EE04 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 093938 7F05EE08 24E700CC */ addiu $a3, $a3, 0xcc +/* 09393C 7F05EE0C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F05EE10: +/* 093940 7F05EE10 8FB00030 */ lw $s0, 0x30($sp) +/* 093944 7F05EE14 8FB10034 */ lw $s1, 0x34($sp) +/* 093948 7F05EE18 8FB20038 */ lw $s2, 0x38($sp) +/* 09394C 7F05EE1C 03E00008 */ jr $ra +/* 093950 7F05EE20 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EE24(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C8C +.word 0x41855555 /*16.666666*/ +glabel D_80053C90 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053C94 +.word 0x3e088888 /*0.13333333*/ +.text +glabel sub_GAME_7F05EE24 +/* 093954 7F05EE24 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 093958 7F05EE28 AFBF0024 */ sw $ra, 0x24($sp) +/* 09395C 7F05EE2C AFB00020 */ sw $s0, 0x20($sp) +/* 093960 7F05EE30 0FC225E6 */ jal get_curplayer_positiondata +/* 093964 7F05EE34 AFA40140 */ sw $a0, 0x140($sp) +/* 093968 7F05EE38 0FC2280B */ jal get_BONDdata_field408 +/* 09396C 7F05EE3C 00408025 */ move $s0, $v0 +/* 093970 7F05EE40 AFA20080 */ sw $v0, 0x80($sp) +/* 093974 7F05EE44 0FC17674 */ jal get_item_in_hand +/* 093978 7F05EE48 8FA40140 */ lw $a0, 0x140($sp) +/* 09397C 7F05EE4C AFA20038 */ sw $v0, 0x38($sp) +/* 093980 7F05EE50 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 093984 7F05EE54 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093988 7F05EE58 27A500FC */ addiu $a1, $sp, 0xfc +/* 09398C 7F05EE5C 27A40094 */ addiu $a0, $sp, 0x94 +/* 093990 7F05EE60 27A50088 */ addiu $a1, $sp, 0x88 +/* 093994 7F05EE64 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093998 7F05EE68 8FA60140 */ lw $a2, 0x140($sp) +/* 09399C 7F05EE6C 0FC1E111 */ jal sub_GAME_7F078444 +/* 0939A0 7F05EE70 00000000 */ nop +/* 0939A4 7F05EE74 00402025 */ move $a0, $v0 +/* 0939A8 7F05EE78 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0939AC 7F05EE7C 27A50088 */ addiu $a1, $sp, 0x88 +/* 0939B0 7F05EE80 3C018005 */ lui $at, %hi(D_80053C8C) +/* 0939B4 7F05EE84 C4203C8C */ lwc1 $f0, %lo(D_80053C8C)($at) +/* 0939B8 7F05EE88 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0939BC 7F05EE8C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0939C0 7F05EE90 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0939C4 7F05EE94 46002182 */ mul.s $f6, $f4, $f0 +/* 0939C8 7F05EE98 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0939CC 7F05EE9C 44818000 */ mtc1 $at, $f16 +/* 0939D0 7F05EEA0 46004282 */ mul.s $f10, $f8, $f0 +/* 0939D4 7F05EEA4 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0939D8 7F05EEA8 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0939DC 7F05EEAC 46002202 */ mul.s $f8, $f4, $f0 +/* 0939E0 7F05EEB0 E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 0939E4 7F05EEB4 8FA20080 */ lw $v0, 0x80($sp) +/* 0939E8 7F05EEB8 46105480 */ add.s $f18, $f10, $f16 +/* 0939EC 7F05EEBC E7A800F8 */ swc1 $f8, 0xf8($sp) +/* 0939F0 7F05EEC0 19C00015 */ blez $t6, .L7F05EF18 +/* 0939F4 7F05EEC4 E7B200F4 */ swc1 $f18, 0xf4($sp) +/* 0939F8 7F05EEC8 C60A0008 */ lwc1 $f10, 8($s0) +/* 0939FC 7F05EECC C4500000 */ lwc1 $f16, ($v0) +/* 093A00 7F05EED0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093A04 7F05EED4 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093A08 7F05EED8 46105101 */ sub.s $f4, $f10, $f16 +/* 093A0C 7F05EEDC 46002283 */ div.s $f10, $f4, $f0 +/* 093A10 7F05EEE0 460A3400 */ add.s $f16, $f6, $f10 +/* 093A14 7F05EEE4 E7B000F0 */ swc1 $f16, 0xf0($sp) +/* 093A18 7F05EEE8 C4460004 */ lwc1 $f6, 4($v0) +/* 093A1C 7F05EEEC C604000C */ lwc1 $f4, 0xc($s0) +/* 093A20 7F05EEF0 46062281 */ sub.s $f10, $f4, $f6 +/* 093A24 7F05EEF4 46005403 */ div.s $f16, $f10, $f0 +/* 093A28 7F05EEF8 46109100 */ add.s $f4, $f18, $f16 +/* 093A2C 7F05EEFC E7A400F4 */ swc1 $f4, 0xf4($sp) +/* 093A30 7F05EF00 C44A0008 */ lwc1 $f10, 8($v0) +/* 093A34 7F05EF04 C6060010 */ lwc1 $f6, 0x10($s0) +/* 093A38 7F05EF08 460A3481 */ sub.s $f18, $f6, $f10 +/* 093A3C 7F05EF0C 46009403 */ div.s $f16, $f18, $f0 +/* 093A40 7F05EF10 46104100 */ add.s $f4, $f8, $f16 +/* 093A44 7F05EF14 E7A400F8 */ swc1 $f4, 0xf8($sp) +.L7F05EF18: +/* 093A48 7F05EF18 8FB00140 */ lw $s0, 0x140($sp) +/* 093A4C 7F05EF1C 3C188008 */ lui $t8, %hi(pPlayer) +/* 093A50 7F05EF20 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093A54 7F05EF24 001078C0 */ sll $t7, $s0, 3 +/* 093A58 7F05EF28 01F07823 */ subu $t7, $t7, $s0 +/* 093A5C 7F05EF2C 000F7880 */ sll $t7, $t7, 2 +/* 093A60 7F05EF30 01F07821 */ addu $t7, $t7, $s0 +/* 093A64 7F05EF34 000F7880 */ sll $t7, $t7, 2 +/* 093A68 7F05EF38 01F07821 */ addu $t7, $t7, $s0 +/* 093A6C 7F05EF3C 000F80C0 */ sll $s0, $t7, 3 +/* 093A70 7F05EF40 03101021 */ addu $v0, $t8, $s0 +/* 093A74 7F05EF44 C4460B08 */ lwc1 $f6, 0xb08($v0) +/* 093A78 7F05EF48 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 093A7C 7F05EF4C E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 093A80 7F05EF50 C44A0B0C */ lwc1 $f10, 0xb0c($v0) +/* 093A84 7F05EF54 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 093A88 7F05EF58 C4520B10 */ lwc1 $f18, 0xb10($v0) +/* 093A8C 7F05EF5C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 093A90 7F05EF60 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 093A94 7F05EF64 3C198008 */ lui $t9, %hi(pPlayer) +/* 093A98 7F05EF68 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093A9C 7F05EF6C 27A50040 */ addiu $a1, $sp, 0x40 +/* 093AA0 7F05EF70 03302021 */ addu $a0, $t9, $s0 +/* 093AA4 7F05EF74 0FC16008 */ jal matrix_4x4_copy +/* 093AA8 7F05EF78 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 093AAC 7F05EF7C 44800000 */ mtc1 $zero, $f0 +/* 093AB0 7F05EF80 27A40040 */ addiu $a0, $sp, 0x40 +/* 093AB4 7F05EF84 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 093AB8 7F05EF88 E7A00070 */ swc1 $f0, 0x70($sp) +/* 093ABC 7F05EF8C E7A00074 */ swc1 $f0, 0x74($sp) +/* 093AC0 7F05EF90 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093AC4 7F05EF94 E7A00078 */ swc1 $f0, 0x78($sp) +/* 093AC8 7F05EF98 240400C4 */ li $a0, 196 +/* 093ACC 7F05EF9C 0FC1481B */ jal create_new_item_instance_of_model +/* 093AD0 7F05EFA0 8FA50038 */ lw $a1, 0x38($sp) +/* 093AD4 7F05EFA4 10400038 */ beqz $v0, .L7F05F088 +/* 093AD8 7F05EFA8 00408025 */ move $s0, $v0 +/* 093ADC 7F05EFAC 3C088008 */ lui $t0, %hi(pPlayer) +/* 093AE0 7F05EFB0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 093AE4 7F05EFB4 240A00F0 */ li $t2, 240 +/* 093AE8 7F05EFB8 8D09105C */ lw $t1, 0x105c($t0) +/* 093AEC 7F05EFBC 01495823 */ subu $t3, $t2, $t1 +/* 093AF0 7F05EFC0 A44B0082 */ sh $t3, 0x82($v0) +/* 093AF4 7F05EFC4 844C0082 */ lh $t4, 0x82($v0) +/* 093AF8 7F05EFC8 05830003 */ bgezl $t4, .L7F05EFD8 +/* 093AFC 7F05EFCC 8E0D0064 */ lw $t5, 0x64($s0) +/* 093B00 7F05EFD0 A4400082 */ sh $zero, 0x82($v0) +/* 093B04 7F05EFD4 8E0D0064 */ lw $t5, 0x64($s0) +.L7F05EFD8: +/* 093B08 7F05EFD8 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 093B0C 7F05EFDC 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 093B10 7F05EFE0 01A17024 */ and $t6, $t5, $at +/* 093B14 7F05EFE4 0FC26C54 */ jal get_cur_playernum +/* 093B18 7F05EFE8 AE0E0064 */ sw $t6, 0x64($s0) +/* 093B1C 7F05EFEC 8E0F0064 */ lw $t7, 0x64($s0) +/* 093B20 7F05EFF0 0002C440 */ sll $t8, $v0, 0x11 +/* 093B24 7F05EFF4 27A800FC */ addiu $t0, $sp, 0xfc +/* 093B28 7F05EFF8 01F8C825 */ or $t9, $t7, $t8 +/* 093B2C 7F05EFFC AE190064 */ sw $t9, 0x64($s0) +/* 093B30 7F05F000 AFA80010 */ sw $t0, 0x10($sp) +/* 093B34 7F05F004 02002025 */ move $a0, $s0 +/* 093B38 7F05F008 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 093B3C 7F05F00C 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 093B40 7F05F010 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 093B44 7F05F014 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 093B48 7F05F018 8E0A0064 */ lw $t2, 0x64($s0) +/* 093B4C 7F05F01C 31490080 */ andi $t1, $t2, 0x80 +/* 093B50 7F05F020 5120001A */ beql $t1, $zero, .L7F05F08C +/* 093B54 7F05F024 8FBF0024 */ lw $ra, 0x24($sp) +/* 093B58 7F05F028 8E02006C */ lw $v0, 0x6c($s0) +/* 093B5C 7F05F02C 3C018005 */ lui $at, %hi(D_80053C90) +/* 093B60 7F05F030 240F003C */ li $t7, 60 +/* 093B64 7F05F034 8C4B0000 */ lw $t3, ($v0) +/* 093B68 7F05F038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 093B6C 7F05F03C 24050004 */ li $a1, 4 +/* 093B70 7F05F040 356C0002 */ ori $t4, $t3, 2 +/* 093B74 7F05F044 AC4C0000 */ sw $t4, ($v0) +/* 093B78 7F05F048 8E0D006C */ lw $t5, 0x6c($s0) +/* 093B7C 7F05F04C C4283C90 */ lwc1 $f8, %lo(D_80053C90)($at) +/* 093B80 7F05F050 3C018005 */ lui $at, %hi(D_80053C94) +/* 093B84 7F05F054 00003025 */ move $a2, $zero +/* 093B88 7F05F058 E5A8008C */ swc1 $f8, 0x8c($t5) +/* 093B8C 7F05F05C 8E0E006C */ lw $t6, 0x6c($s0) +/* 093B90 7F05F060 C4303C94 */ lwc1 $f16, %lo(D_80053C94)($at) +/* 093B94 7F05F064 E5D00094 */ swc1 $f16, 0x94($t6) +/* 093B98 7F05F068 8E18006C */ lw $t8, 0x6c($s0) +/* 093B9C 7F05F06C AF0F00BC */ sw $t7, 0xbc($t8) +/* 093BA0 7F05F070 0C002382 */ jal play_sfx_a1 +/* 093BA4 7F05F074 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 093BA8 7F05F078 10400003 */ beqz $v0, .L7F05F088 +/* 093BAC 7F05F07C 00402025 */ move $a0, $v0 +/* 093BB0 7F05F080 0FC14E84 */ jal sub_GAME_7F053A10 +/* 093BB4 7F05F084 26050058 */ addiu $a1, $s0, 0x58 +.L7F05F088: +/* 093BB8 7F05F088 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05F08C: +/* 093BBC 7F05F08C 8FB00020 */ lw $s0, 0x20($sp) +/* 093BC0 7F05F090 27BD0140 */ addiu $sp, $sp, 0x140 +/* 093BC4 7F05F094 03E00008 */ jr $ra +/* 093BC8 7F05F098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F09C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C98 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80053C9C +.word 0x40490fdb /*3.1415927*/ +glabel D_80053CA0 +.word 0x4141999a /*12.1*/ +glabel D_80053CA4 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F05F09C +/* 093BCC 7F05F09C 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 093BD0 7F05F0A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 093BD4 7F05F0A4 0FC225E6 */ jal get_curplayer_positiondata +/* 093BD8 7F05F0A8 AFA40130 */ sw $a0, 0x130($sp) +/* 093BDC 7F05F0AC 0FC2280B */ jal get_BONDdata_field408 +/* 093BE0 7F05F0B0 AFA20034 */ sw $v0, 0x34($sp) +/* 093BE4 7F05F0B4 AFA20030 */ sw $v0, 0x30($sp) +/* 093BE8 7F05F0B8 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 093BEC 7F05F0BC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093BF0 7F05F0C0 27A500EC */ addiu $a1, $sp, 0xec +/* 093BF4 7F05F0C4 27A40084 */ addiu $a0, $sp, 0x84 +/* 093BF8 7F05F0C8 27A50078 */ addiu $a1, $sp, 0x78 +/* 093BFC 7F05F0CC 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093C00 7F05F0D0 8FA60130 */ lw $a2, 0x130($sp) +/* 093C04 7F05F0D4 0FC1E111 */ jal sub_GAME_7F078444 +/* 093C08 7F05F0D8 00000000 */ nop +/* 093C0C 7F05F0DC 00402025 */ move $a0, $v0 +/* 093C10 7F05F0E0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 093C14 7F05F0E4 27A50078 */ addiu $a1, $sp, 0x78 +/* 093C18 7F05F0E8 3C0141C8 */ li $at, 0x41C80000 # 25.000000 +/* 093C1C 7F05F0EC 44810000 */ mtc1 $at, $f0 +/* 093C20 7F05F0F0 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 093C24 7F05F0F4 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 093C28 7F05F0F8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 093C2C 7F05F0FC 46002182 */ mul.s $f6, $f4, $f0 +/* 093C30 7F05F100 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 093C34 7F05F104 44818000 */ mtc1 $at, $f16 +/* 093C38 7F05F108 46004282 */ mul.s $f10, $f8, $f0 +/* 093C3C 7F05F10C 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 093C40 7F05F110 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 093C44 7F05F114 46002202 */ mul.s $f8, $f4, $f0 +/* 093C48 7F05F118 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 093C4C 7F05F11C 46105480 */ add.s $f18, $f10, $f16 +/* 093C50 7F05F120 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 093C54 7F05F124 19C00017 */ blez $t6, .L7F05F184 +/* 093C58 7F05F128 E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 093C5C 7F05F12C 8FA20030 */ lw $v0, 0x30($sp) +/* 093C60 7F05F130 8FA30034 */ lw $v1, 0x34($sp) +/* 093C64 7F05F134 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093C68 7F05F138 C4500000 */ lwc1 $f16, ($v0) +/* 093C6C 7F05F13C C46A0008 */ lwc1 $f10, 8($v1) +/* 093C70 7F05F140 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093C74 7F05F144 46105101 */ sub.s $f4, $f10, $f16 +/* 093C78 7F05F148 46002283 */ div.s $f10, $f4, $f0 +/* 093C7C 7F05F14C 460A3400 */ add.s $f16, $f6, $f10 +/* 093C80 7F05F150 E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 093C84 7F05F154 C4460004 */ lwc1 $f6, 4($v0) +/* 093C88 7F05F158 C464000C */ lwc1 $f4, 0xc($v1) +/* 093C8C 7F05F15C 46062281 */ sub.s $f10, $f4, $f6 +/* 093C90 7F05F160 46005403 */ div.s $f16, $f10, $f0 +/* 093C94 7F05F164 46109100 */ add.s $f4, $f18, $f16 +/* 093C98 7F05F168 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 093C9C 7F05F16C C44A0008 */ lwc1 $f10, 8($v0) +/* 093CA0 7F05F170 C4660010 */ lwc1 $f6, 0x10($v1) +/* 093CA4 7F05F174 460A3481 */ sub.s $f18, $f6, $f10 +/* 093CA8 7F05F178 46009403 */ div.s $f16, $f18, $f0 +/* 093CAC 7F05F17C 46104100 */ add.s $f4, $f8, $f16 +/* 093CB0 7F05F180 E7A400E8 */ swc1 $f4, 0xe8($sp) +.L7F05F184: +/* 093CB4 7F05F184 8FA30130 */ lw $v1, 0x130($sp) +/* 093CB8 7F05F188 3C188008 */ lui $t8, %hi(pPlayer) +/* 093CBC 7F05F18C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093CC0 7F05F190 000378C0 */ sll $t7, $v1, 3 +/* 093CC4 7F05F194 01E37823 */ subu $t7, $t7, $v1 +/* 093CC8 7F05F198 000F7880 */ sll $t7, $t7, 2 +/* 093CCC 7F05F19C 01E37821 */ addu $t7, $t7, $v1 +/* 093CD0 7F05F1A0 000F7880 */ sll $t7, $t7, 2 +/* 093CD4 7F05F1A4 01E37821 */ addu $t7, $t7, $v1 +/* 093CD8 7F05F1A8 000F78C0 */ sll $t7, $t7, 3 +/* 093CDC 7F05F1AC 030F1021 */ addu $v0, $t8, $t7 +/* 093CE0 7F05F1B0 C4460B08 */ lwc1 $f6, 0xb08($v0) +/* 093CE4 7F05F1B4 3C018005 */ lui $at, %hi(D_80053C98) +/* 093CE8 7F05F1B8 C42C3C98 */ lwc1 $f12, %lo(D_80053C98)($at) +/* 093CEC 7F05F1BC E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 093CF0 7F05F1C0 C44A0B0C */ lwc1 $f10, 0xb0c($v0) +/* 093CF4 7F05F1C4 27A50090 */ addiu $a1, $sp, 0x90 +/* 093CF8 7F05F1C8 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 093CFC 7F05F1CC C4520B10 */ lwc1 $f18, 0xb10($v0) +/* 093D00 7F05F1D0 AFAF0028 */ sw $t7, 0x28($sp) +/* 093D04 7F05F1D4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 093D08 7F05F1D8 E7B200D8 */ swc1 $f18, 0xd8($sp) +/* 093D0C 7F05F1DC 3C018005 */ lui $at, %hi(D_80053C9C) +/* 093D10 7F05F1E0 C42C3C9C */ lwc1 $f12, %lo(D_80053C9C)($at) +/* 093D14 7F05F1E4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 093D18 7F05F1E8 27A50038 */ addiu $a1, $sp, 0x38 +/* 093D1C 7F05F1EC 27A40038 */ addiu $a0, $sp, 0x38 +/* 093D20 7F05F1F0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093D24 7F05F1F4 27A50090 */ addiu $a1, $sp, 0x90 +/* 093D28 7F05F1F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 093D2C 7F05F1FC 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093D30 7F05F200 8FA80028 */ lw $t0, 0x28($sp) +/* 093D34 7F05F204 27A50038 */ addiu $a1, $sp, 0x38 +/* 093D38 7F05F208 03282021 */ addu $a0, $t9, $t0 +/* 093D3C 7F05F20C 0FC16008 */ jal matrix_4x4_copy +/* 093D40 7F05F210 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 093D44 7F05F214 44800000 */ mtc1 $zero, $f0 +/* 093D48 7F05F218 27A40038 */ addiu $a0, $sp, 0x38 +/* 093D4C 7F05F21C 27A50090 */ addiu $a1, $sp, 0x90 +/* 093D50 7F05F220 E7A00068 */ swc1 $f0, 0x68($sp) +/* 093D54 7F05F224 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 093D58 7F05F228 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093D5C 7F05F22C E7A00070 */ swc1 $f0, 0x70($sp) +/* 093D60 7F05F230 0C002914 */ jal get_random_value +/* 093D64 7F05F234 00000000 */ nop +/* 093D68 7F05F238 44824000 */ mtc1 $v0, $f8 +/* 093D6C 7F05F23C 27A400EC */ addiu $a0, $sp, 0xec +/* 093D70 7F05F240 04410005 */ bgez $v0, .L7F05F258 +/* 093D74 7F05F244 46804420 */ cvt.s.w $f16, $f8 +/* 093D78 7F05F248 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 093D7C 7F05F24C 44812000 */ mtc1 $at, $f4 +/* 093D80 7F05F250 00000000 */ nop +/* 093D84 7F05F254 46048400 */ add.s $f16, $f16, $f4 +.L7F05F258: +/* 093D88 7F05F258 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 093D8C 7F05F25C 44813000 */ mtc1 $at, $f6 +/* 093D90 7F05F260 3C018005 */ lui $at, %hi(D_80053CA0) +/* 093D94 7F05F264 C4323CA0 */ lwc1 $f18, %lo(D_80053CA0)($at) +/* 093D98 7F05F268 46068282 */ mul.s $f10, $f16, $f6 +/* 093D9C 7F05F26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 093DA0 7F05F270 44812000 */ mtc1 $at, $f4 +/* 093DA4 7F05F274 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 093DA8 7F05F278 8FA600A0 */ lw $a2, 0xa0($sp) +/* 093DAC 7F05F27C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 093DB0 7F05F280 E7A60010 */ swc1 $f6, 0x10($sp) +/* 093DB4 7F05F284 46125200 */ add.s $f8, $f10, $f18 +/* 093DB8 7F05F288 46082403 */ div.s $f16, $f4, $f8 +/* 093DBC 7F05F28C 44058000 */ mfc1 $a1, $f16 +/* 093DC0 7F05F290 0C005DC8 */ jal guRotateF +/* 093DC4 7F05F294 00000000 */ nop +/* 093DC8 7F05F298 240400BA */ li $a0, 186 +/* 093DCC 7F05F29C 0FC1481B */ jal create_new_item_instance_of_model +/* 093DD0 7F05F2A0 24050003 */ li $a1, 3 +/* 093DD4 7F05F2A4 50400029 */ beql $v0, $zero, .L7F05F34C +/* 093DD8 7F05F2A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 093DDC 7F05F2AC 8C490064 */ lw $t1, 0x64($v0) +/* 093DE0 7F05F2B0 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 093DE4 7F05F2B4 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 093DE8 7F05F2B8 01215024 */ and $t2, $t1, $at +/* 093DEC 7F05F2BC AC4A0064 */ sw $t2, 0x64($v0) +/* 093DF0 7F05F2C0 0FC26C54 */ jal get_cur_playernum +/* 093DF4 7F05F2C4 AFA2012C */ sw $v0, 0x12c($sp) +/* 093DF8 7F05F2C8 8FA4012C */ lw $a0, 0x12c($sp) +/* 093DFC 7F05F2CC 00026440 */ sll $t4, $v0, 0x11 +/* 093E00 7F05F2D0 27AE00EC */ addiu $t6, $sp, 0xec +/* 093E04 7F05F2D4 8C8B0064 */ lw $t3, 0x64($a0) +/* 093E08 7F05F2D8 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 093E0C 7F05F2DC 27A60090 */ addiu $a2, $sp, 0x90 +/* 093E10 7F05F2E0 016C6825 */ or $t5, $t3, $t4 +/* 093E14 7F05F2E4 AC8D0064 */ sw $t5, 0x64($a0) +/* 093E18 7F05F2E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 093E1C 7F05F2EC 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 093E20 7F05F2F0 27A700E0 */ addiu $a3, $sp, 0xe0 +/* 093E24 7F05F2F4 8FA4012C */ lw $a0, 0x12c($sp) +/* 093E28 7F05F2F8 8C8F0064 */ lw $t7, 0x64($a0) +/* 093E2C 7F05F2FC 31F80080 */ andi $t8, $t7, 0x80 +/* 093E30 7F05F300 1300000F */ beqz $t8, .L7F05F340 +/* 093E34 7F05F304 00000000 */ nop +/* 093E38 7F05F308 8C82006C */ lw $v0, 0x6c($a0) +/* 093E3C 7F05F30C 3C018005 */ lui $at, %hi(D_80053CA4) +/* 093E40 7F05F310 240A003C */ li $t2, 60 +/* 093E44 7F05F314 8C590000 */ lw $t9, ($v0) +/* 093E48 7F05F318 37280002 */ ori $t0, $t9, 2 +/* 093E4C 7F05F31C AC480000 */ sw $t0, ($v0) +/* 093E50 7F05F320 8C89006C */ lw $t1, 0x6c($a0) +/* 093E54 7F05F324 C42A3CA4 */ lwc1 $f10, %lo(D_80053CA4)($at) +/* 093E58 7F05F328 E52A008C */ swc1 $f10, 0x8c($t1) +/* 093E5C 7F05F32C 8C8B006C */ lw $t3, 0x6c($a0) +/* 093E60 7F05F330 AD6A00BC */ sw $t2, 0xbc($t3) +/* 093E64 7F05F334 8C8C0064 */ lw $t4, 0x64($a0) +/* 093E68 7F05F338 358D0020 */ ori $t5, $t4, 0x20 +/* 093E6C 7F05F33C AC8D0064 */ sw $t5, 0x64($a0) +.L7F05F340: +/* 093E70 7F05F340 0FC10D94 */ jal sub_GAME_7F043650 +/* 093E74 7F05F344 00000000 */ nop +/* 093E78 7F05F348 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05F34C: +/* 093E7C 7F05F34C 27BD0130 */ addiu $sp, $sp, 0x130 +/* 093E80 7F05F350 03E00008 */ jr $ra +/* 093E84 7F05F354 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_player_thrown_object(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053CA8 +.word 0x41855555 /*16.666666*/ +glabel D_80053CAC +.word 0x40d55555 /*6.6666665*/ +/*D:80053CB0*/ +glabel jpt_player_thrown_object +.word thrown_item_timed_mine +.word thrown_item_proximity_mine +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_bombcase +.word thrown_item_plastique +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_bug +.word thrown_item_micro_camera +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_GE_key + +/*D:80053D3C*/ +glabel jpt_temp_obj_for_itemtype +.word generate_temp_timed_mine +.word generate_temp_proximity_mine +.word generate_temp_remote_mine +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_bombcase +.word generate_temp_static_thrown +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_static_thrown +.word generate_temp_static_thrown +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_static_thrown + +glabel D_80053DC8 +.word 0x3dcccccd /*0.1*/ +.text +glabel generate_player_thrown_object +/* 093E88 7F05F358 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 093E8C 7F05F35C 3C018005 */ lui $at, %hi(D_80053CA8) +/* 093E90 7F05F360 C4243CA8 */ lwc1 $f4, %lo(D_80053CA8)($at) +/* 093E94 7F05F364 AFBF0024 */ sw $ra, 0x24($sp) +/* 093E98 7F05F368 AFB00020 */ sw $s0, 0x20($sp) +/* 093E9C 7F05F36C AFA40140 */ sw $a0, 0x140($sp) +/* 093EA0 7F05F370 00008025 */ move $s0, $zero +/* 093EA4 7F05F374 0FC225E6 */ jal get_curplayer_positiondata +/* 093EA8 7F05F378 E7A400EC */ swc1 $f4, 0xec($sp) +/* 093EAC 7F05F37C 0FC2280B */ jal get_BONDdata_field408 +/* 093EB0 7F05F380 AFA20084 */ sw $v0, 0x84($sp) +/* 093EB4 7F05F384 AFA20080 */ sw $v0, 0x80($sp) +/* 093EB8 7F05F388 0FC17674 */ jal get_item_in_hand +/* 093EBC 7F05F38C 8FA40140 */ lw $a0, 0x140($sp) +/* 093EC0 7F05F390 2401003D */ li $at, 61 +/* 093EC4 7F05F394 14410004 */ bne $v0, $at, .L7F05F3A8 +/* 093EC8 7F05F398 AFA20038 */ sw $v0, 0x38($sp) +/* 093ECC 7F05F39C 3C018005 */ lui $at, %hi(D_80053CAC) +/* 093ED0 7F05F3A0 C4263CAC */ lwc1 $f6, %lo(D_80053CAC)($at) +/* 093ED4 7F05F3A4 E7A600EC */ swc1 $f6, 0xec($sp) +.L7F05F3A8: +/* 093ED8 7F05F3A8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 093EDC 7F05F3AC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093EE0 7F05F3B0 27A500FC */ addiu $a1, $sp, 0xfc +/* 093EE4 7F05F3B4 27A40094 */ addiu $a0, $sp, 0x94 +/* 093EE8 7F05F3B8 27A50088 */ addiu $a1, $sp, 0x88 +/* 093EEC 7F05F3BC 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093EF0 7F05F3C0 8FA60140 */ lw $a2, 0x140($sp) +/* 093EF4 7F05F3C4 0FC1E111 */ jal sub_GAME_7F078444 +/* 093EF8 7F05F3C8 00000000 */ nop +/* 093EFC 7F05F3CC 00402025 */ move $a0, $v0 +/* 093F00 7F05F3D0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 093F04 7F05F3D4 27A50088 */ addiu $a1, $sp, 0x88 +/* 093F08 7F05F3D8 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 093F0C 7F05F3DC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 093F10 7F05F3E0 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 093F14 7F05F3E4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 093F18 7F05F3E8 46004282 */ mul.s $f10, $f8, $f0 +/* 093F1C 7F05F3EC C7A80090 */ lwc1 $f8, 0x90($sp) +/* 093F20 7F05F3F0 44812000 */ mtc1 $at, $f4 +/* 093F24 7F05F3F4 46008482 */ mul.s $f18, $f16, $f0 +/* 093F28 7F05F3F8 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 093F2C 7F05F3FC 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 093F30 7F05F400 46004402 */ mul.s $f16, $f8, $f0 +/* 093F34 7F05F404 E7AA00F0 */ swc1 $f10, 0xf0($sp) +/* 093F38 7F05F408 8FA20080 */ lw $v0, 0x80($sp) +/* 093F3C 7F05F40C 8FA30084 */ lw $v1, 0x84($sp) +/* 093F40 7F05F410 46049180 */ add.s $f6, $f18, $f4 +/* 093F44 7F05F414 E7B000F8 */ swc1 $f16, 0xf8($sp) +/* 093F48 7F05F418 19C00015 */ blez $t6, .L7F05F470 +/* 093F4C 7F05F41C E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 093F50 7F05F420 C4720008 */ lwc1 $f18, 8($v1) +/* 093F54 7F05F424 C4440000 */ lwc1 $f4, ($v0) +/* 093F58 7F05F428 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093F5C 7F05F42C C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093F60 7F05F430 46049201 */ sub.s $f8, $f18, $f4 +/* 093F64 7F05F434 46004483 */ div.s $f18, $f8, $f0 +/* 093F68 7F05F438 46125100 */ add.s $f4, $f10, $f18 +/* 093F6C 7F05F43C E7A400F0 */ swc1 $f4, 0xf0($sp) +/* 093F70 7F05F440 C44A0004 */ lwc1 $f10, 4($v0) +/* 093F74 7F05F444 C468000C */ lwc1 $f8, 0xc($v1) +/* 093F78 7F05F448 460A4481 */ sub.s $f18, $f8, $f10 +/* 093F7C 7F05F44C 46009103 */ div.s $f4, $f18, $f0 +/* 093F80 7F05F450 46043200 */ add.s $f8, $f6, $f4 +/* 093F84 7F05F454 E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 093F88 7F05F458 C4520008 */ lwc1 $f18, 8($v0) +/* 093F8C 7F05F45C C46A0010 */ lwc1 $f10, 0x10($v1) +/* 093F90 7F05F460 46125181 */ sub.s $f6, $f10, $f18 +/* 093F94 7F05F464 46003103 */ div.s $f4, $f6, $f0 +/* 093F98 7F05F468 46048200 */ add.s $f8, $f16, $f4 +/* 093F9C 7F05F46C E7A800F8 */ swc1 $f8, 0xf8($sp) +.L7F05F470: +/* 093FA0 7F05F470 8FA30140 */ lw $v1, 0x140($sp) +/* 093FA4 7F05F474 3C188008 */ lui $t8, %hi(pPlayer) +/* 093FA8 7F05F478 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093FAC 7F05F47C 000378C0 */ sll $t7, $v1, 3 +/* 093FB0 7F05F480 01E37823 */ subu $t7, $t7, $v1 +/* 093FB4 7F05F484 000F7880 */ sll $t7, $t7, 2 +/* 093FB8 7F05F488 01E37821 */ addu $t7, $t7, $v1 +/* 093FBC 7F05F48C 000F7880 */ sll $t7, $t7, 2 +/* 093FC0 7F05F490 01E37821 */ addu $t7, $t7, $v1 +/* 093FC4 7F05F494 000F78C0 */ sll $t7, $t7, 3 +/* 093FC8 7F05F498 030F1021 */ addu $v0, $t8, $t7 +/* 093FCC 7F05F49C C44A0B08 */ lwc1 $f10, 0xb08($v0) +/* 093FD0 7F05F4A0 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 093FD4 7F05F4A4 E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 093FD8 7F05F4A8 C4520B0C */ lwc1 $f18, 0xb0c($v0) +/* 093FDC 7F05F4AC E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 093FE0 7F05F4B0 C4460B10 */ lwc1 $f6, 0xb10($v0) +/* 093FE4 7F05F4B4 AFAF002C */ sw $t7, 0x2c($sp) +/* 093FE8 7F05F4B8 0FC15FF4 */ jal matrix_4x4_set_identity +/* 093FEC 7F05F4BC E7A600E8 */ swc1 $f6, 0xe8($sp) +/* 093FF0 7F05F4C0 3C198008 */ lui $t9, %hi(pPlayer) +/* 093FF4 7F05F4C4 8FA3002C */ lw $v1, 0x2c($sp) +/* 093FF8 7F05F4C8 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093FFC 7F05F4CC 27A50040 */ addiu $a1, $sp, 0x40 +/* 094000 7F05F4D0 03232021 */ addu $a0, $t9, $v1 +/* 094004 7F05F4D4 0FC16008 */ jal matrix_4x4_copy +/* 094008 7F05F4D8 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09400C 7F05F4DC 44800000 */ mtc1 $zero, $f0 +/* 094010 7F05F4E0 27A40040 */ addiu $a0, $sp, 0x40 +/* 094014 7F05F4E4 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 094018 7F05F4E8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 09401C 7F05F4EC E7A00074 */ swc1 $f0, 0x74($sp) +/* 094020 7F05F4F0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 094024 7F05F4F4 E7A00078 */ swc1 $f0, 0x78($sp) +/* 094028 7F05F4F8 8FA50038 */ lw $a1, 0x38($sp) +/* 09402C 7F05F4FC 2401003D */ li $at, 61 +/* 094030 7F05F500 14A1000D */ bne $a1, $at, .L7F05F538 +/* 094034 7F05F504 00000000 */ nop +/* 094038 7F05F508 0FC2315C */ jal sub_GAME_7F08C570 +/* 09403C 7F05F50C 00A02025 */ move $a0, $a1 +/* 094040 7F05F510 00408025 */ move $s0, $v0 +/* 094044 7F05F514 0FC23187 */ jal sub_GAME_7F08C61C +/* 094048 7F05F518 8FA40038 */ lw $a0, 0x38($sp) +/* 09404C 7F05F51C 12000003 */ beqz $s0, .L7F05F52C +/* 094050 7F05F520 00000000 */ nop +/* 094054 7F05F524 0FC13011 */ jal sub_GAME_7F04C044 +/* 094058 7F05F528 8E040010 */ lw $a0, 0x10($s0) +.L7F05F52C: +/* 09405C 7F05F52C 0FC175A4 */ jal sub_GAME_7F05D690 +/* 094060 7F05F530 00000000 */ nop +/* 094064 7F05F534 8FA50038 */ lw $a1, 0x38($sp) +.L7F05F538: +/* 094068 7F05F538 1600001B */ bnez $s0, .L7F05F5A8 +/* 09406C 7F05F53C 24A8FFE5 */ addiu $t0, $a1, -0x1b +/* 094070 7F05F540 2D010023 */ sltiu $at, $t0, 0x23 +/* 094074 7F05F544 10200014 */ beqz $at, .L7F05F598 +/* 094078 7F05F548 240400C7 */ li $a0, 199 +/* 09407C 7F05F54C 00084080 */ sll $t0, $t0, 2 +/* 094080 7F05F550 3C018005 */ lui $at, %hi(jpt_player_thrown_object) +/* 094084 7F05F554 00280821 */ addu $at, $at, $t0 +/* 094088 7F05F558 8C283CB0 */ lw $t0, %lo(jpt_player_thrown_object)($at) +/* 09408C 7F05F55C 01000008 */ jr $t0 +/* 094090 7F05F560 00000000 */ nop +thrown_item_proximity_mine: +/* 094094 7F05F564 1000000C */ b .L7F05F598 +/* 094098 7F05F568 240400C8 */ li $a0, 200 +thrown_item_timed_mine: +/* 09409C 7F05F56C 1000000A */ b .L7F05F598 +/* 0940A0 7F05F570 240400C9 */ li $a0, 201 +thrown_item_bombcase: +/* 0940A4 7F05F574 10000008 */ b .L7F05F598 +/* 0940A8 7F05F578 240400E2 */ li $a0, 226 +thrown_item_bug: +/* 0940AC 7F05F57C 10000006 */ b .L7F05F598 +/* 0940B0 7F05F580 240400F5 */ li $a0, 245 +thrown_item_micro_camera: +/* 0940B4 7F05F584 10000004 */ b .L7F05F598 +/* 0940B8 7F05F588 240400F6 */ li $a0, 246 +thrown_item_GE_key: +/* 0940BC 7F05F58C 10000002 */ b .L7F05F598 +/* 0940C0 7F05F590 240400F8 */ li $a0, 248 +thrown_item_plastique: +/* 0940C4 7F05F594 24040111 */ li $a0, 273 +create_instance: +.L7F05F598: +/* 0940C8 7F05F598 0FC1481B */ jal create_new_item_instance_of_model +/* 0940CC 7F05F59C 00000000 */ nop +/* 0940D0 7F05F5A0 00408025 */ move $s0, $v0 +/* 0940D4 7F05F5A4 8FA50038 */ lw $a1, 0x38($sp) +.L7F05F5A8: +/* 0940D8 7F05F5A8 1200005F */ beqz $s0, .L7F05F728 +/* 0940DC 7F05F5AC 24A9FFE5 */ addiu $t1, $a1, -0x1b +/* 0940E0 7F05F5B0 2D210023 */ sltiu $at, $t1, 0x23 +/* 0940E4 7F05F5B4 10200031 */ beqz $at, .L7F05F67C +/* 0940E8 7F05F5B8 00094880 */ sll $t1, $t1, 2 +/* 0940EC 7F05F5BC 3C018005 */ lui $at, %hi(jpt_temp_obj_for_itemtype) +/* 0940F0 7F05F5C0 00290821 */ addu $at, $at, $t1 +/* 0940F4 7F05F5C4 8C293D3C */ lw $t1, %lo(jpt_temp_obj_for_itemtype)($at) +/* 0940F8 7F05F5C8 01200008 */ jr $t1 +/* 0940FC 7F05F5CC 00000000 */ nop +generate_temp_remote_mine: +/* 094100 7F05F5D0 0FC26919 */ jal get_num_players +/* 094104 7F05F5D4 00000000 */ nop +/* 094108 7F05F5D8 24010001 */ li $at, 1 +/* 09410C 7F05F5DC 14410004 */ bne $v0, $at, .L7F05F5F0 +/* 094110 7F05F5E0 240B00B4 */ li $t3, 180 +/* 094114 7F05F5E4 240A012C */ li $t2, 300 +/* 094118 7F05F5E8 10000026 */ b .L7F05F684 +/* 09411C 7F05F5EC A60A0082 */ sh $t2, 0x82($s0) +.L7F05F5F0: +/* 094120 7F05F5F0 10000024 */ b .L7F05F684 +/* 094124 7F05F5F4 A60B0082 */ sh $t3, 0x82($s0) +generate_temp_proximity_mine: +/* 094128 7F05F5F8 0FC26919 */ jal get_num_players +/* 09412C 7F05F5FC 00000000 */ nop +/* 094130 7F05F600 24010001 */ li $at, 1 +/* 094134 7F05F604 14410004 */ bne $v0, $at, .L7F05F618 +/* 094138 7F05F608 240D00B4 */ li $t5, 180 +/* 09413C 7F05F60C 240C012C */ li $t4, 300 +/* 094140 7F05F610 1000001C */ b .L7F05F684 +/* 094144 7F05F614 A60C0082 */ sh $t4, 0x82($s0) +.L7F05F618: +/* 094148 7F05F618 1000001A */ b .L7F05F684 +/* 09414C 7F05F61C A60D0082 */ sh $t5, 0x82($s0) +generate_temp_timed_mine: +/* 094150 7F05F620 0FC26919 */ jal get_num_players +/* 094154 7F05F624 00000000 */ nop +/* 094158 7F05F628 24010001 */ li $at, 1 +/* 09415C 7F05F62C 14410004 */ bne $v0, $at, .L7F05F640 +/* 094160 7F05F630 240F00B4 */ li $t7, 180 +/* 094164 7F05F634 240E012C */ li $t6, 300 +/* 094168 7F05F638 10000012 */ b .L7F05F684 +/* 09416C 7F05F63C A60E0082 */ sh $t6, 0x82($s0) +.L7F05F640: +/* 094170 7F05F640 10000010 */ b .L7F05F684 +/* 094174 7F05F644 A60F0082 */ sh $t7, 0x82($s0) +generate_temp_bombcase: +/* 094178 7F05F648 0FC26919 */ jal get_num_players +/* 09417C 7F05F64C 00000000 */ nop +/* 094180 7F05F650 24010001 */ li $at, 1 +/* 094184 7F05F654 14410004 */ bne $v0, $at, .L7F05F668 +/* 094188 7F05F658 241900B4 */ li $t9, 180 +/* 09418C 7F05F65C 2418012C */ li $t8, 300 +/* 094190 7F05F660 10000008 */ b .L7F05F684 +/* 094194 7F05F664 A6180082 */ sh $t8, 0x82($s0) +.L7F05F668: +/* 094198 7F05F668 10000006 */ b .L7F05F684 +/* 09419C 7F05F66C A6190082 */ sh $t9, 0x82($s0) +generate_temp_static_thrown: +/* 0941A0 7F05F670 24080001 */ li $t0, 1 +/* 0941A4 7F05F674 10000003 */ b .L7F05F684 +/* 0941A8 7F05F678 A6080082 */ sh $t0, 0x82($s0) +generate_temp_default: +.L7F05F67C: +/* 0941AC 7F05F67C 240900F0 */ li $t1, 240 +/* 0941B0 7F05F680 A6090082 */ sh $t1, 0x82($s0) +.L7F05F684: +/* 0941B4 7F05F684 8E0A0064 */ lw $t2, 0x64($s0) +/* 0941B8 7F05F688 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0941BC 7F05F68C 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0941C0 7F05F690 01415824 */ and $t3, $t2, $at +/* 0941C4 7F05F694 0FC26C54 */ jal get_cur_playernum +/* 0941C8 7F05F698 AE0B0064 */ sw $t3, 0x64($s0) +/* 0941CC 7F05F69C 8E0C0064 */ lw $t4, 0x64($s0) +/* 0941D0 7F05F6A0 00026C40 */ sll $t5, $v0, 0x11 +/* 0941D4 7F05F6A4 27AF00FC */ addiu $t7, $sp, 0xfc +/* 0941D8 7F05F6A8 018D7025 */ or $t6, $t4, $t5 +/* 0941DC 7F05F6AC AE0E0064 */ sw $t6, 0x64($s0) +/* 0941E0 7F05F6B0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0941E4 7F05F6B4 02002025 */ move $a0, $s0 +/* 0941E8 7F05F6B8 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0941EC 7F05F6BC 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0941F0 7F05F6C0 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 0941F4 7F05F6C4 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 0941F8 7F05F6C8 8E180064 */ lw $t8, 0x64($s0) +/* 0941FC 7F05F6CC 33190080 */ andi $t9, $t8, 0x80 +/* 094200 7F05F6D0 53200016 */ beql $t9, $zero, .L7F05F72C +/* 094204 7F05F6D4 8FBF0024 */ lw $ra, 0x24($sp) +/* 094208 7F05F6D8 8E02006C */ lw $v0, 0x6c($s0) +/* 09420C 7F05F6DC 3C018005 */ lui $at, %hi(D_80053DC8) +/* 094210 7F05F6E0 240B003C */ li $t3, 60 +/* 094214 7F05F6E4 8C480000 */ lw $t0, ($v0) +/* 094218 7F05F6E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09421C 7F05F6EC 24050004 */ li $a1, 4 +/* 094220 7F05F6F0 35090002 */ ori $t1, $t0, 2 +/* 094224 7F05F6F4 AC490000 */ sw $t1, ($v0) +/* 094228 7F05F6F8 8E0A006C */ lw $t2, 0x6c($s0) +/* 09422C 7F05F6FC C4303DC8 */ lwc1 $f16, %lo(D_80053DC8)($at) +/* 094230 7F05F700 00003025 */ move $a2, $zero +/* 094234 7F05F704 E550008C */ swc1 $f16, 0x8c($t2) +/* 094238 7F05F708 8E0C006C */ lw $t4, 0x6c($s0) +/* 09423C 7F05F70C AD8B00BC */ sw $t3, 0xbc($t4) +/* 094240 7F05F710 0C002382 */ jal play_sfx_a1 +/* 094244 7F05F714 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094248 7F05F718 10400003 */ beqz $v0, .L7F05F728 +/* 09424C 7F05F71C 00402025 */ move $a0, $v0 +/* 094250 7F05F720 0FC14E84 */ jal sub_GAME_7F053A10 +/* 094254 7F05F724 26050058 */ addiu $a1, $s0, 0x58 +.L7F05F728: +/* 094258 7F05F728 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05F72C: +/* 09425C 7F05F72C 8FB00020 */ lw $s0, 0x20($sp) +/* 094260 7F05F730 27BD0140 */ addiu $sp, $sp, 0x140 +/* 094264 7F05F734 03E00008 */ jr $ra +/* 094268 7F05F738 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F73C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053DCC +.word 0x42055555 /*33.333332*/ +glabel D_80053DD0 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DD4 +.word 0x3e088888 /*0.13333333*/ +.text +glabel sub_GAME_7F05F73C +/* 09426C 7F05F73C 000470C0 */ sll $t6, $a0, 3 +/* 094270 7F05F740 01C47023 */ subu $t6, $t6, $a0 +/* 094274 7F05F744 000E7080 */ sll $t6, $t6, 2 +/* 094278 7F05F748 01C47021 */ addu $t6, $t6, $a0 +/* 09427C 7F05F74C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 094280 7F05F750 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 094284 7F05F754 000E7080 */ sll $t6, $t6, 2 +/* 094288 7F05F758 01C47021 */ addu $t6, $t6, $a0 +/* 09428C 7F05F75C 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 094290 7F05F760 000E70C0 */ sll $t6, $t6, 3 +/* 094294 7F05F764 01EEC021 */ addu $t8, $t7, $t6 +/* 094298 7F05F768 AFBF001C */ sw $ra, 0x1c($sp) +/* 09429C 7F05F76C 27190870 */ addiu $t9, $t8, 0x870 +/* 0942A0 7F05F770 AFA400E8 */ sw $a0, 0xe8($sp) +/* 0942A4 7F05F774 AFB900E0 */ sw $t9, 0xe0($sp) +/* 0942A8 7F05F778 0FC225E6 */ jal get_curplayer_positiondata +/* 0942AC 7F05F77C AFAE0028 */ sw $t6, 0x28($sp) +/* 0942B0 7F05F780 0FC2280B */ jal get_BONDdata_field408 +/* 0942B4 7F05F784 AFA20034 */ sw $v0, 0x34($sp) +/* 0942B8 7F05F788 AFA20030 */ sw $v0, 0x30($sp) +/* 0942BC 7F05F78C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0942C0 7F05F790 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0942C4 7F05F794 27A40044 */ addiu $a0, $sp, 0x44 +/* 0942C8 7F05F798 27A50038 */ addiu $a1, $sp, 0x38 +/* 0942CC 7F05F79C 0FC1A073 */ jal sub_GAME_7F0681CC +/* 0942D0 7F05F7A0 8FA600E8 */ lw $a2, 0xe8($sp) +/* 0942D4 7F05F7A4 0FC1E111 */ jal sub_GAME_7F078444 +/* 0942D8 7F05F7A8 00000000 */ nop +/* 0942DC 7F05F7AC 00402025 */ move $a0, $v0 +/* 0942E0 7F05F7B0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0942E4 7F05F7B4 27A50038 */ addiu $a1, $sp, 0x38 +/* 0942E8 7F05F7B8 3C018005 */ lui $at, %hi(D_80053DCC) +/* 0942EC 7F05F7BC C4203DCC */ lwc1 $f0, %lo(D_80053DCC)($at) +/* 0942F0 7F05F7C0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0942F4 7F05F7C4 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0942F8 7F05F7C8 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0942FC 7F05F7CC 46002182 */ mul.s $f6, $f4, $f0 +/* 094300 7F05F7D0 3C088005 */ lui $t0, %hi(clock_timer) +/* 094304 7F05F7D4 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 094308 7F05F7D8 46004282 */ mul.s $f10, $f8, $f0 +/* 09430C 7F05F7DC 8FA20030 */ lw $v0, 0x30($sp) +/* 094310 7F05F7E0 8FA30034 */ lw $v1, 0x34($sp) +/* 094314 7F05F7E4 46008482 */ mul.s $f18, $f16, $f0 +/* 094318 7F05F7E8 E7A60094 */ swc1 $f6, 0x94($sp) +/* 09431C 7F05F7EC 3C098008 */ lui $t1, %hi(pPlayer) +/* 094320 7F05F7F0 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 094324 7F05F7F4 19000015 */ blez $t0, .L7F05F84C +/* 094328 7F05F7F8 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 09432C 7F05F7FC C4640008 */ lwc1 $f4, 8($v1) +/* 094330 7F05F800 C4480000 */ lwc1 $f8, ($v0) +/* 094334 7F05F804 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094338 7F05F808 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 09433C 7F05F80C 46082401 */ sub.s $f16, $f4, $f8 +/* 094340 7F05F810 46008103 */ div.s $f4, $f16, $f0 +/* 094344 7F05F814 46043200 */ add.s $f8, $f6, $f4 +/* 094348 7F05F818 E7A80094 */ swc1 $f8, 0x94($sp) +/* 09434C 7F05F81C C4460004 */ lwc1 $f6, 4($v0) +/* 094350 7F05F820 C470000C */ lwc1 $f16, 0xc($v1) +/* 094354 7F05F824 46068101 */ sub.s $f4, $f16, $f6 +/* 094358 7F05F828 46002203 */ div.s $f8, $f4, $f0 +/* 09435C 7F05F82C 46085400 */ add.s $f16, $f10, $f8 +/* 094360 7F05F830 E7B00098 */ swc1 $f16, 0x98($sp) +/* 094364 7F05F834 C4440008 */ lwc1 $f4, 8($v0) +/* 094368 7F05F838 C4660010 */ lwc1 $f6, 0x10($v1) +/* 09436C 7F05F83C 46043281 */ sub.s $f10, $f6, $f4 +/* 094370 7F05F840 46005203 */ div.s $f8, $f10, $f0 +/* 094374 7F05F844 46089400 */ add.s $f16, $f18, $f8 +/* 094378 7F05F848 E7B0009C */ swc1 $f16, 0x9c($sp) +.L7F05F84C: +/* 09437C 7F05F84C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 094380 7F05F850 8FAA0028 */ lw $t2, 0x28($sp) +/* 094384 7F05F854 27A50050 */ addiu $a1, $sp, 0x50 +/* 094388 7F05F858 012A2021 */ addu $a0, $t1, $t2 +/* 09438C 7F05F85C 0FC16008 */ jal matrix_4x4_copy +/* 094390 7F05F860 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 094394 7F05F864 44800000 */ mtc1 $zero, $f0 +/* 094398 7F05F868 240400CB */ li $a0, 203 +/* 09439C 7F05F86C 24050057 */ li $a1, 87 +/* 0943A0 7F05F870 E7A00080 */ swc1 $f0, 0x80($sp) +/* 0943A4 7F05F874 E7A00084 */ swc1 $f0, 0x84($sp) +/* 0943A8 7F05F878 0FC1481B */ jal create_new_item_instance_of_model +/* 0943AC 7F05F87C E7A00088 */ swc1 $f0, 0x88($sp) +/* 0943B0 7F05F880 10400025 */ beqz $v0, .L7F05F918 +/* 0943B4 7F05F884 240B04B0 */ li $t3, 1200 +/* 0943B8 7F05F888 8C4C0064 */ lw $t4, 0x64($v0) +/* 0943BC 7F05F88C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0943C0 7F05F890 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0943C4 7F05F894 01816824 */ and $t5, $t4, $at +/* 0943C8 7F05F898 A44B0082 */ sh $t3, 0x82($v0) +/* 0943CC 7F05F89C AC4D0064 */ sw $t5, 0x64($v0) +/* 0943D0 7F05F8A0 0FC26C54 */ jal get_cur_playernum +/* 0943D4 7F05F8A4 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0943D8 7F05F8A8 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0943DC 7F05F8AC 00027C40 */ sll $t7, $v0, 0x11 +/* 0943E0 7F05F8B0 27B900A0 */ addiu $t9, $sp, 0xa0 +/* 0943E4 7F05F8B4 8C8E0064 */ lw $t6, 0x64($a0) +/* 0943E8 7F05F8B8 27A60050 */ addiu $a2, $sp, 0x50 +/* 0943EC 7F05F8BC 27A70094 */ addiu $a3, $sp, 0x94 +/* 0943F0 7F05F8C0 01CFC025 */ or $t8, $t6, $t7 +/* 0943F4 7F05F8C4 AC980064 */ sw $t8, 0x64($a0) +/* 0943F8 7F05F8C8 8FA500E0 */ lw $a1, 0xe0($sp) +/* 0943FC 7F05F8CC AFB90010 */ sw $t9, 0x10($sp) +/* 094400 7F05F8D0 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 094404 7F05F8D4 24A502E8 */ addiu $a1, $a1, 0x2e8 +/* 094408 7F05F8D8 8FA400E4 */ lw $a0, 0xe4($sp) +/* 09440C 7F05F8DC 3C018005 */ lui $at, %hi(D_80053DD0) +/* 094410 7F05F8E0 8C880064 */ lw $t0, 0x64($a0) +/* 094414 7F05F8E4 31090080 */ andi $t1, $t0, 0x80 +/* 094418 7F05F8E8 5120000C */ beql $t1, $zero, .L7F05F91C +/* 09441C 7F05F8EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 094420 7F05F8F0 C4263DD0 */ lwc1 $f6, %lo(D_80053DD0)($at) +/* 094424 7F05F8F4 8C8A006C */ lw $t2, 0x6c($a0) +/* 094428 7F05F8F8 3C018005 */ lui $at, %hi(D_80053DD4) +/* 09442C 7F05F8FC 240C003C */ li $t4, 60 +/* 094430 7F05F900 E546008C */ swc1 $f6, 0x8c($t2) +/* 094434 7F05F904 8C8B006C */ lw $t3, 0x6c($a0) +/* 094438 7F05F908 C4243DD4 */ lwc1 $f4, %lo(D_80053DD4)($at) +/* 09443C 7F05F90C E5640094 */ swc1 $f4, 0x94($t3) +/* 094440 7F05F910 8C8D006C */ lw $t5, 0x6c($a0) +/* 094444 7F05F914 ADAC00BC */ sw $t4, 0xbc($t5) +.L7F05F918: +/* 094448 7F05F918 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05F91C: +/* 09444C 7F05F91C 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 094450 7F05F920 03E00008 */ jr $ra +/* 094454 7F05F924 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F928(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05F928 +/* 094458 7F05F928 000478C0 */ sll $t7, $a0, 3 +/* 09445C 7F05F92C 01E47823 */ subu $t7, $t7, $a0 +/* 094460 7F05F930 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 094464 7F05F934 000F7880 */ sll $t7, $t7, 2 +/* 094468 7F05F938 01E47821 */ addu $t7, $t7, $a0 +/* 09446C 7F05F93C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 094470 7F05F940 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 094474 7F05F944 000F7880 */ sll $t7, $t7, 2 +/* 094478 7F05F948 01E47821 */ addu $t7, $t7, $a0 +/* 09447C 7F05F94C 000F78C0 */ sll $t7, $t7, 3 +/* 094480 7F05F950 AFBF0024 */ sw $ra, 0x24($sp) +/* 094484 7F05F954 AFB30020 */ sw $s3, 0x20($sp) +/* 094488 7F05F958 AFB2001C */ sw $s2, 0x1c($sp) +/* 09448C 7F05F95C AFB10018 */ sw $s1, 0x18($sp) +/* 094490 7F05F960 AFB00014 */ sw $s0, 0x14($sp) +/* 094494 7F05F964 01CF1021 */ addu $v0, $t6, $t7 +/* 094498 7F05F968 8C500A90 */ lw $s0, 0xa90($v0) +/* 09449C 7F05F96C 24420870 */ addiu $v0, $v0, 0x870 +/* 0944A0 7F05F970 5200003C */ beql $s0, $zero, .L7F05FA64 +/* 0944A4 7F05F974 8FBF0024 */ lw $ra, 0x24($sp) +/* 0944A8 7F05F978 8E130010 */ lw $s3, 0x10($s0) +/* 0944AC 7F05F97C 52600039 */ beql $s3, $zero, .L7F05FA64 +/* 0944B0 7F05F980 8FBF0024 */ lw $ra, 0x24($sp) +/* 0944B4 7F05F984 0FC225E6 */ jal get_curplayer_positiondata +/* 0944B8 7F05F988 AFA2007C */ sw $v0, 0x7c($sp) +/* 0944BC 7F05F98C 8FA4007C */ lw $a0, 0x7c($sp) +/* 0944C0 7F05F990 27B20034 */ addiu $s2, $sp, 0x34 +/* 0944C4 7F05F994 AFA20030 */ sw $v0, 0x30($sp) +/* 0944C8 7F05F998 8E110014 */ lw $s1, 0x14($s0) +/* 0944CC 7F05F99C 02402825 */ move $a1, $s2 +/* 0944D0 7F05F9A0 0FC16008 */ jal matrix_4x4_copy +/* 0944D4 7F05F9A4 24840268 */ addiu $a0, $a0, 0x268 +/* 0944D8 7F05F9A8 44800000 */ mtc1 $zero, $f0 +/* 0944DC 7F05F9AC 02402825 */ move $a1, $s2 +/* 0944E0 7F05F9B0 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0944E4 7F05F9B4 E7A00068 */ swc1 $f0, 0x68($sp) +/* 0944E8 7F05F9B8 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0944EC 7F05F9BC 8E180014 */ lw $t8, 0x14($s0) +/* 0944F0 7F05F9C0 0FC1629F */ jal matrix_scalar_multiply +/* 0944F4 7F05F9C4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0944F8 7F05F9C8 8FA5007C */ lw $a1, 0x7c($sp) +/* 0944FC 7F05F9CC 8FB90030 */ lw $t9, 0x30($sp) +/* 094500 7F05F9D0 02002025 */ move $a0, $s0 +/* 094504 7F05F9D4 02403025 */ move $a2, $s2 +/* 094508 7F05F9D8 24A502E8 */ addiu $a1, $a1, 0x2e8 +/* 09450C 7F05F9DC 0FC101D5 */ jal sub_GAME_7F040754 +/* 094510 7F05F9E0 8F270014 */ lw $a3, 0x14($t9) +/* 094514 7F05F9E4 0FC10121 */ jal sub_GAME_7F040484 +/* 094518 7F05F9E8 02002025 */ move $a0, $s0 +/* 09451C 7F05F9EC 8E280008 */ lw $t0, 8($s1) +/* 094520 7F05F9F0 8504000E */ lh $a0, 0xe($t0) +/* 094524 7F05F9F4 00044980 */ sll $t1, $a0, 6 +/* 094528 7F05F9F8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09452C 7F05F9FC 01202025 */ move $a0, $t1 +/* 094530 7F05FA00 AE22000C */ sw $v0, 0xc($s1) +/* 094534 7F05FA04 26040018 */ addiu $a0, $s0, 0x18 +/* 094538 7F05FA08 0FC16008 */ jal matrix_4x4_copy +/* 09453C 7F05FA0C 02402825 */ move $a1, $s2 +/* 094540 7F05FA10 26040058 */ addiu $a0, $s0, 0x58 +/* 094544 7F05FA14 0FC16266 */ jal matrix_4x4_set_position +/* 094548 7F05FA18 02402825 */ move $a1, $s2 +/* 09454C 7F05FA1C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 094550 7F05FA20 00000000 */ nop +/* 094554 7F05FA24 00402025 */ move $a0, $v0 +/* 094558 7F05FA28 02402825 */ move $a1, $s2 +/* 09455C 7F05FA2C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 094560 7F05FA30 8E26000C */ lw $a2, 0xc($s1) +/* 094564 7F05FA34 8E2A0008 */ lw $t2, 8($s1) +/* 094568 7F05FA38 02202025 */ move $a0, $s1 +/* 09456C 7F05FA3C 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 094570 7F05FA40 8D450000 */ lw $a1, ($t2) +/* 094574 7F05FA44 926B0001 */ lbu $t3, 1($s3) +/* 094578 7F05FA48 356C0002 */ ori $t4, $t3, 2 +/* 09457C 7F05FA4C A26C0001 */ sb $t4, 1($s3) +/* 094580 7F05FA50 8E2D000C */ lw $t5, 0xc($s1) +/* 094584 7F05FA54 C5A40038 */ lwc1 $f4, 0x38($t5) +/* 094588 7F05FA58 46002187 */ neg.s $f6, $f4 +/* 09458C 7F05FA5C E6660018 */ swc1 $f6, 0x18($s3) +/* 094590 7F05FA60 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05FA64: +/* 094594 7F05FA64 8FB00014 */ lw $s0, 0x14($sp) +/* 094598 7F05FA68 8FB10018 */ lw $s1, 0x18($sp) +/* 09459C 7F05FA6C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0945A0 7F05FA70 8FB30020 */ lw $s3, 0x20($sp) +/* 0945A4 7F05FA74 03E00008 */ jr $ra +/* 0945A8 7F05FA78 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FA7C(void) { + +} +#else +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(pPlayer) +/* 0945C0 7F05FA90 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FB00(void) { + +} +#else +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(pPlayer) +/* 094644 7F05FB14 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 sub_GAME_7F041024 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FB64(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053DD8 +.word 0x42855555 /*66.666664*/ +glabel D_80053DDC +.word 0x3f8e38e3 /*1.111111*/ +.text +glabel sub_GAME_7F05FB64 +/* 094694 7F05FB64 000470C0 */ sll $t6, $a0, 3 +/* 094698 7F05FB68 01C47023 */ subu $t6, $t6, $a0 +/* 09469C 7F05FB6C 000E7080 */ sll $t6, $t6, 2 +/* 0946A0 7F05FB70 01C47021 */ addu $t6, $t6, $a0 +/* 0946A4 7F05FB74 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0946A8 7F05FB78 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0946AC 7F05FB7C 000E7080 */ sll $t6, $t6, 2 +/* 0946B0 7F05FB80 01C47021 */ addu $t6, $t6, $a0 +/* 0946B4 7F05FB84 27BDFEF8 */ addiu $sp, $sp, -0x108 +/* 0946B8 7F05FB88 000E70C0 */ sll $t6, $t6, 3 +/* 0946BC 7F05FB8C 01EEC021 */ addu $t8, $t7, $t6 +/* 0946C0 7F05FB90 AFBF001C */ sw $ra, 0x1c($sp) +/* 0946C4 7F05FB94 27190870 */ addiu $t9, $t8, 0x870 +/* 0946C8 7F05FB98 AFA40108 */ sw $a0, 0x108($sp) +/* 0946CC 7F05FB9C AFB90100 */ sw $t9, 0x100($sp) +/* 0946D0 7F05FBA0 0FC225E6 */ jal get_curplayer_positiondata +/* 0946D4 7F05FBA4 AFAE0024 */ sw $t6, 0x24($sp) +/* 0946D8 7F05FBA8 0FC2280B */ jal get_BONDdata_field408 +/* 0946DC 7F05FBAC AFA20048 */ sw $v0, 0x48($sp) +/* 0946E0 7F05FBB0 AFA20044 */ sw $v0, 0x44($sp) +/* 0946E4 7F05FBB4 0FC17674 */ jal get_item_in_hand +/* 0946E8 7F05FBB8 8FA40108 */ lw $a0, 0x108($sp) +/* 0946EC 7F05FBBC AFA20040 */ sw $v0, 0x40($sp) +/* 0946F0 7F05FBC0 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0946F4 7F05FBC4 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0946F8 7F05FBC8 8FA80040 */ lw $t0, 0x40($sp) +/* 0946FC 7F05FBCC 24010020 */ li $at, 32 +/* 094700 7F05FBD0 27A40058 */ addiu $a0, $sp, 0x58 +/* 094704 7F05FBD4 1501005E */ bne $t0, $at, .L7F05FD50 +/* 094708 7F05FBD8 27A5004C */ addiu $a1, $sp, 0x4c +/* 09470C 7F05FBDC 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 094710 7F05FBE0 00000000 */ nop +/* 094714 7F05FBE4 10400009 */ beqz $v0, .L7F05FC0C +/* 094718 7F05FBE8 AFA20030 */ sw $v0, 0x30($sp) +/* 09471C 7F05FBEC 90490001 */ lbu $t1, 1($v0) +/* 094720 7F05FBF0 312A0002 */ andi $t2, $t1, 2 +/* 094724 7F05FBF4 51400006 */ beql $t2, $zero, .L7F05FC10 +/* 094728 7F05FBF8 27A40058 */ addiu $a0, $sp, 0x58 +/* 09472C 7F05FBFC 0FC1F3AC */ jal sub_GAME_7F07CEB0 +/* 094730 7F05FC00 27A4004C */ addiu $a0, $sp, 0x4c +/* 094734 7F05FC04 10000009 */ b .L7F05FC2C +/* 094738 7F05FC08 00000000 */ nop +.L7F05FC0C: +/* 09473C 7F05FC0C 27A40058 */ addiu $a0, $sp, 0x58 +.L7F05FC10: +/* 094740 7F05FC10 0FC1A064 */ jal sub_GAME_7F068190 +/* 094744 7F05FC14 27A5004C */ addiu $a1, $sp, 0x4c +/* 094748 7F05FC18 0FC1E111 */ jal sub_GAME_7F078444 +/* 09474C 7F05FC1C 00000000 */ nop +/* 094750 7F05FC20 00402025 */ move $a0, $v0 +/* 094754 7F05FC24 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 094758 7F05FC28 27A5004C */ addiu $a1, $sp, 0x4c +.L7F05FC2C: +/* 09475C 7F05FC2C 3C018005 */ lui $at, %hi(D_80053DD8) +/* 094760 7F05FC30 C4203DD8 */ lwc1 $f0, %lo(D_80053DD8)($at) +/* 094764 7F05FC34 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 094768 7F05FC38 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 09476C 7F05FC3C C7B00054 */ lwc1 $f16, 0x54($sp) +/* 094770 7F05FC40 46002182 */ mul.s $f6, $f4, $f0 +/* 094774 7F05FC44 3C0B8005 */ lui $t3, %hi(clock_timer) +/* 094778 7F05FC48 8D6B8374 */ lw $t3, %lo(clock_timer)($t3) +/* 09477C 7F05FC4C 46004282 */ mul.s $f10, $f8, $f0 +/* 094780 7F05FC50 8FA20048 */ lw $v0, 0x48($sp) +/* 094784 7F05FC54 8FA30044 */ lw $v1, 0x44($sp) +/* 094788 7F05FC58 46008482 */ mul.s $f18, $f16, $f0 +/* 09478C 7F05FC5C E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 094790 7F05FC60 E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 094794 7F05FC64 19600015 */ blez $t3, .L7F05FCBC +/* 094798 7F05FC68 E7B200BC */ swc1 $f18, 0xbc($sp) +/* 09479C 7F05FC6C C4440008 */ lwc1 $f4, 8($v0) +/* 0947A0 7F05FC70 C4680000 */ lwc1 $f8, ($v1) +/* 0947A4 7F05FC74 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0947A8 7F05FC78 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0947AC 7F05FC7C 46082401 */ sub.s $f16, $f4, $f8 +/* 0947B0 7F05FC80 46008103 */ div.s $f4, $f16, $f0 +/* 0947B4 7F05FC84 46043200 */ add.s $f8, $f6, $f4 +/* 0947B8 7F05FC88 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 0947BC 7F05FC8C C4660004 */ lwc1 $f6, 4($v1) +/* 0947C0 7F05FC90 C450000C */ lwc1 $f16, 0xc($v0) +/* 0947C4 7F05FC94 46068101 */ sub.s $f4, $f16, $f6 +/* 0947C8 7F05FC98 46002203 */ div.s $f8, $f4, $f0 +/* 0947CC 7F05FC9C 46085400 */ add.s $f16, $f10, $f8 +/* 0947D0 7F05FCA0 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0947D4 7F05FCA4 C4640008 */ lwc1 $f4, 8($v1) +/* 0947D8 7F05FCA8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0947DC 7F05FCAC 46043281 */ sub.s $f10, $f6, $f4 +/* 0947E0 7F05FCB0 46005203 */ div.s $f8, $f10, $f0 +/* 0947E4 7F05FCB4 46089400 */ add.s $f16, $f18, $f8 +/* 0947E8 7F05FCB8 E7B000BC */ swc1 $f16, 0xbc($sp) +.L7F05FCBC: +/* 0947EC 7F05FCBC 8FA30030 */ lw $v1, 0x30($sp) +/* 0947F0 7F05FCC0 8FA20048 */ lw $v0, 0x48($sp) +/* 0947F4 7F05FCC4 50600019 */ beql $v1, $zero, .L7F05FD2C +/* 0947F8 7F05FCC8 C4520008 */ lwc1 $f18, 8($v0) +/* 0947FC 7F05FCCC 906C0001 */ lbu $t4, 1($v1) +/* 094800 7F05FCD0 318D0002 */ andi $t5, $t4, 2 +/* 094804 7F05FCD4 51A00015 */ beql $t5, $zero, .L7F05FD2C +/* 094808 7F05FCD8 C4520008 */ lwc1 $f18, 8($v0) +/* 09480C 7F05FCDC 8C620004 */ lw $v0, 4($v1) +/* 094810 7F05FCE0 8C4E0014 */ lw $t6, 0x14($v0) +/* 094814 7F05FCE4 8DCF000C */ lw $t7, 0xc($t6) +/* 094818 7F05FCE8 C5E60130 */ lwc1 $f6, 0x130($t7) +/* 09481C 7F05FCEC E7A60034 */ swc1 $f6, 0x34($sp) +/* 094820 7F05FCF0 8C580014 */ lw $t8, 0x14($v0) +/* 094824 7F05FCF4 8F19000C */ lw $t9, 0xc($t8) +/* 094828 7F05FCF8 C7240134 */ lwc1 $f4, 0x134($t9) +/* 09482C 7F05FCFC E7A40038 */ swc1 $f4, 0x38($sp) +/* 094830 7F05FD00 8C480014 */ lw $t0, 0x14($v0) +/* 094834 7F05FD04 8D09000C */ lw $t1, 0xc($t0) +/* 094838 7F05FD08 C52A0138 */ lwc1 $f10, 0x138($t1) +/* 09483C 7F05FD0C 0FC1E111 */ jal sub_GAME_7F078444 +/* 094840 7F05FD10 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 094844 7F05FD14 00402025 */ move $a0, $v0 +/* 094848 7F05FD18 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 09484C 7F05FD1C 27A50034 */ addiu $a1, $sp, 0x34 +/* 094850 7F05FD20 10000007 */ b .L7F05FD40 +/* 094854 7F05FD24 00000000 */ nop +/* 094858 7F05FD28 C4520008 */ lwc1 $f18, 8($v0) +.L7F05FD2C: +/* 09485C 7F05FD2C E7B20034 */ swc1 $f18, 0x34($sp) +/* 094860 7F05FD30 C448000C */ lwc1 $f8, 0xc($v0) +/* 094864 7F05FD34 E7A80038 */ swc1 $f8, 0x38($sp) +/* 094868 7F05FD38 C4500010 */ lwc1 $f16, 0x10($v0) +/* 09486C 7F05FD3C E7B0003C */ swc1 $f16, 0x3c($sp) +.L7F05FD40: +/* 094870 7F05FD40 0FC271EB */ jal sub_GAME_7F09C7AC +/* 094874 7F05FD44 00000000 */ nop +/* 094878 7F05FD48 1000003A */ b .L7F05FE34 +/* 09487C 7F05FD4C 00000000 */ nop +.L7F05FD50: +/* 094880 7F05FD50 0FC1A073 */ jal sub_GAME_7F0681CC +/* 094884 7F05FD54 8FA60108 */ lw $a2, 0x108($sp) +/* 094888 7F05FD58 0FC1E111 */ jal sub_GAME_7F078444 +/* 09488C 7F05FD5C 00000000 */ nop +/* 094890 7F05FD60 00402025 */ move $a0, $v0 +/* 094894 7F05FD64 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 094898 7F05FD68 27A5004C */ addiu $a1, $sp, 0x4c +/* 09489C 7F05FD6C 8FA60100 */ lw $a2, 0x100($sp) +/* 0948A0 7F05FD70 3C018005 */ lui $at, %hi(D_80053DDC) +/* 0948A4 7F05FD74 C4223DDC */ lwc1 $f2, %lo(D_80053DDC)($at) +/* 0948A8 7F05FD78 C4C602E8 */ lwc1 $f6, 0x2e8($a2) +/* 0948AC 7F05FD7C C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0948B0 7F05FD80 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 0948B4 7F05FD84 E7A60034 */ swc1 $f6, 0x34($sp) +/* 0948B8 7F05FD88 C4C402EC */ lwc1 $f4, 0x2ec($a2) +/* 0948BC 7F05FD8C 46029202 */ mul.s $f8, $f18, $f2 +/* 0948C0 7F05FD90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0948C4 7F05FD94 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0948C8 7F05FD98 C4CA02F0 */ lwc1 $f10, 0x2f0($a2) +/* 0948CC 7F05FD9C 46028182 */ mul.s $f6, $f16, $f2 +/* 0948D0 7F05FDA0 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0948D4 7F05FDA4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0948D8 7F05FDA8 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0948DC 7F05FDAC 46022282 */ mul.s $f10, $f4, $f2 +/* 0948E0 7F05FDB0 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 0948E4 7F05FDB4 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 0948E8 7F05FDB8 46004482 */ mul.s $f18, $f8, $f0 +/* 0948EC 7F05FDBC E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0948F0 7F05FDC0 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0948F4 7F05FDC4 46003402 */ mul.s $f16, $f6, $f0 +/* 0948F8 7F05FDC8 E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0948FC 7F05FDCC 8FA20044 */ lw $v0, 0x44($sp) +/* 094900 7F05FDD0 46005102 */ mul.s $f4, $f10, $f0 +/* 094904 7F05FDD4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 094908 7F05FDD8 8FA30048 */ lw $v1, 0x48($sp) +/* 09490C 7F05FDDC E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 094910 7F05FDE0 19400014 */ blez $t2, .L7F05FE34 +/* 094914 7F05FDE4 E7A400BC */ swc1 $f4, 0xbc($sp) +/* 094918 7F05FDE8 C4680008 */ lwc1 $f8, 8($v1) +/* 09491C 7F05FDEC C4460000 */ lwc1 $f6, ($v0) +/* 094920 7F05FDF0 46064281 */ sub.s $f10, $f8, $f6 +/* 094924 7F05FDF4 46005103 */ div.s $f4, $f10, $f0 +/* 094928 7F05FDF8 46049200 */ add.s $f8, $f18, $f4 +/* 09492C 7F05FDFC E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 094930 7F05FE00 C44A0004 */ lwc1 $f10, 4($v0) +/* 094934 7F05FE04 C466000C */ lwc1 $f6, 0xc($v1) +/* 094938 7F05FE08 460A3481 */ sub.s $f18, $f6, $f10 +/* 09493C 7F05FE0C 46009103 */ div.s $f4, $f18, $f0 +/* 094940 7F05FE10 46048200 */ add.s $f8, $f16, $f4 +/* 094944 7F05FE14 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 094948 7F05FE18 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 09494C 7F05FE1C C44A0008 */ lwc1 $f10, 8($v0) +/* 094950 7F05FE20 C4660010 */ lwc1 $f6, 0x10($v1) +/* 094954 7F05FE24 460A3481 */ sub.s $f18, $f6, $f10 +/* 094958 7F05FE28 46009403 */ div.s $f16, $f18, $f0 +/* 09495C 7F05FE2C 46102200 */ add.s $f8, $f4, $f16 +/* 094960 7F05FE30 E7A800BC */ swc1 $f8, 0xbc($sp) +.L7F05FE34: +/* 094964 7F05FE34 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 094968 7F05FE38 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 09496C 7F05FE3C 8FAC0024 */ lw $t4, 0x24($sp) +/* 094970 7F05FE40 27A50064 */ addiu $a1, $sp, 0x64 +/* 094974 7F05FE44 016C2021 */ addu $a0, $t3, $t4 +/* 094978 7F05FE48 0FC16008 */ jal matrix_4x4_copy +/* 09497C 7F05FE4C 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 094980 7F05FE50 44800000 */ mtc1 $zero, $f0 +/* 094984 7F05FE54 8FA30100 */ lw $v1, 0x100($sp) +/* 094988 7F05FE58 240D0001 */ li $t5, 1 +/* 09498C 7F05FE5C E7A00094 */ swc1 $f0, 0x94($sp) +/* 094990 7F05FE60 E7A00098 */ swc1 $f0, 0x98($sp) +/* 094994 7F05FE64 E7A0009C */ swc1 $f0, 0x9c($sp) +/* 094998 7F05FE68 8C620220 */ lw $v0, 0x220($v1) +/* 09499C 7F05FE6C 240400CA */ li $a0, 202 +/* 0949A0 7F05FE70 10400004 */ beqz $v0, .L7F05FE84 +/* 0949A4 7F05FE74 00000000 */ nop +/* 0949A8 7F05FE78 00402025 */ move $a0, $v0 +/* 0949AC 7F05FE7C 10000004 */ b .L7F05FE90 +/* 0949B0 7F05FE80 AC6D0224 */ sw $t5, 0x224($v1) +.L7F05FE84: +/* 0949B4 7F05FE84 0FC1481B */ jal create_new_item_instance_of_model +/* 0949B8 7F05FE88 24050056 */ li $a1, 86 +/* 0949BC 7F05FE8C 00402025 */ move $a0, $v0 +.L7F05FE90: +/* 0949C0 7F05FE90 10800049 */ beqz $a0, .L7F05FFB8 +/* 0949C4 7F05FE94 240EFFFF */ li $t6, -1 +/* 0949C8 7F05FE98 8C8F0064 */ lw $t7, 0x64($a0) +/* 0949CC 7F05FE9C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0949D0 7F05FEA0 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0949D4 7F05FEA4 01E1C024 */ and $t8, $t7, $at +/* 0949D8 7F05FEA8 A48E0082 */ sh $t6, 0x82($a0) +/* 0949DC 7F05FEAC AC980064 */ sw $t8, 0x64($a0) +/* 0949E0 7F05FEB0 0FC26C54 */ jal get_cur_playernum +/* 0949E4 7F05FEB4 AFA40104 */ sw $a0, 0x104($sp) +/* 0949E8 7F05FEB8 8FA40104 */ lw $a0, 0x104($sp) +/* 0949EC 7F05FEBC 00024440 */ sll $t0, $v0, 0x11 +/* 0949F0 7F05FEC0 27AA00C0 */ addiu $t2, $sp, 0xc0 +/* 0949F4 7F05FEC4 8C990064 */ lw $t9, 0x64($a0) +/* 0949F8 7F05FEC8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0949FC 7F05FECC 27A60064 */ addiu $a2, $sp, 0x64 +/* 094A00 7F05FED0 03284825 */ or $t1, $t9, $t0 +/* 094A04 7F05FED4 AC890064 */ sw $t1, 0x64($a0) +/* 094A08 7F05FED8 AFAA0010 */ sw $t2, 0x10($sp) +/* 094A0C 7F05FEDC 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 094A10 7F05FEE0 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 094A14 7F05FEE4 8FA40104 */ lw $a0, 0x104($sp) +/* 094A18 7F05FEE8 8C8B0064 */ lw $t3, 0x64($a0) +/* 094A1C 7F05FEEC 316C0080 */ andi $t4, $t3, 0x80 +/* 094A20 7F05FEF0 51800032 */ beql $t4, $zero, .L7F05FFBC +/* 094A24 7F05FEF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 094A28 7F05FEF8 8C82006C */ lw $v0, 0x6c($a0) +/* 094A2C 7F05FEFC 24010020 */ li $at, 32 +/* 094A30 7F05FF00 8C4D0000 */ lw $t5, ($v0) +/* 094A34 7F05FF04 35AE0080 */ ori $t6, $t5, 0x80 +/* 094A38 7F05FF08 AC4E0000 */ sw $t6, ($v0) +/* 094A3C 7F05FF0C 8FAF0040 */ lw $t7, 0x40($sp) +/* 094A40 7F05FF10 51E1002A */ beql $t7, $at, .L7F05FFBC +/* 094A44 7F05FF14 8FBF001C */ lw $ra, 0x1c($sp) +/* 094A48 7F05FF18 8C82006C */ lw $v0, 0x6c($a0) +/* 094A4C 7F05FF1C 240C003C */ li $t4, 60 +/* 094A50 7F05FF20 24050001 */ li $a1, 1 +/* 094A54 7F05FF24 8C580000 */ lw $t8, ($v0) +/* 094A58 7F05FF28 37190020 */ ori $t9, $t8, 0x20 +/* 094A5C 7F05FF2C AC590000 */ sw $t9, ($v0) +/* 094A60 7F05FF30 8C88006C */ lw $t0, 0x6c($a0) +/* 094A64 7F05FF34 C486005C */ lwc1 $f6, 0x5c($a0) +/* 094A68 7F05FF38 E50600B0 */ swc1 $f6, 0xb0($t0) +/* 094A6C 7F05FF3C 8C82006C */ lw $v0, 0x6c($a0) +/* 094A70 7F05FF40 C44A0008 */ lwc1 $f10, 8($v0) +/* 094A74 7F05FF44 E44A00B4 */ swc1 $f10, 0xb4($v0) +/* 094A78 7F05FF48 8C89006C */ lw $t1, 0x6c($a0) +/* 094A7C 7F05FF4C C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 094A80 7F05FF50 E5320010 */ swc1 $f18, 0x10($t1) +/* 094A84 7F05FF54 8C8A006C */ lw $t2, 0x6c($a0) +/* 094A88 7F05FF58 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 094A8C 7F05FF5C E5440014 */ swc1 $f4, 0x14($t2) +/* 094A90 7F05FF60 8C8B006C */ lw $t3, 0x6c($a0) +/* 094A94 7F05FF64 C7B000AC */ lwc1 $f16, 0xac($sp) +/* 094A98 7F05FF68 E5700018 */ swc1 $f16, 0x18($t3) +/* 094A9C 7F05FF6C 8C8D006C */ lw $t5, 0x6c($a0) +/* 094AA0 7F05FF70 ADAC00BC */ sw $t4, 0xbc($t5) +/* 094AA4 7F05FF74 8C82006C */ lw $v0, 0x6c($a0) +/* 094AA8 7F05FF78 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AAC 7F05FF7C 8C4E0098 */ lw $t6, 0x98($v0) +/* 094AB0 7F05FF80 24460098 */ addiu $a2, $v0, 0x98 +/* 094AB4 7F05FF84 55C00006 */ bnezl $t6, .L7F05FFA0 +/* 094AB8 7F05FF88 8C4F009C */ lw $t7, 0x9c($v0) +/* 094ABC 7F05FF8C 0C002382 */ jal play_sfx_a1 +/* 094AC0 7F05FF90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094AC4 7F05FF94 10000009 */ b .L7F05FFBC +/* 094AC8 7F05FF98 8FBF001C */ lw $ra, 0x1c($sp) +/* 094ACC 7F05FF9C 8C4F009C */ lw $t7, 0x9c($v0) +.L7F05FFA0: +/* 094AD0 7F05FFA0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AD4 7F05FFA4 24050001 */ li $a1, 1 +/* 094AD8 7F05FFA8 15E00003 */ bnez $t7, .L7F05FFB8 +/* 094ADC 7F05FFAC 2446009C */ addiu $a2, $v0, 0x9c +/* 094AE0 7F05FFB0 0C002382 */ jal play_sfx_a1 +/* 094AE4 7F05FFB4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F05FFB8: +/* 094AE8 7F05FFB8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05FFBC: +/* 094AEC 7F05FFBC 27BD0108 */ addiu $sp, $sp, 0x108 +/* 094AF0 7F05FFC0 03E00008 */ jr $ra +/* 094AF4 7F05FFC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void handles_firing_or_throwing_weapon_in_hand(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80053DE0 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053DE4 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053DE8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DEC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DF4 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DFC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E00 +.word 0x41de6666 /*27.799999*/ +glabel D_80053E04 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E14 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E18 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E24 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E28 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E34 +.word 0x40c90fdb /*6.2831855*/ + +/*D:80053E38*/ +glabel jpt_weapon_bullet_type +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_none +.word weapon_bullet_type_none + +.text +glabel handles_firing_or_throwing_weapon_in_hand +/* 094AF8 7F05FFC8 27BDFD58 */ addiu $sp, $sp, -0x2a8 +/* 094AFC 7F05FFCC 3C0F8003 */ lui $t7, %hi(D_80035C40) +/* 094B00 7F05FFD0 AFBF0034 */ sw $ra, 0x34($sp) +/* 094B04 7F05FFD4 AFB00030 */ sw $s0, 0x30($sp) +/* 094B08 7F05FFD8 25EF5C40 */ addiu $t7, %lo(D_80035C40) # addiu $t7, $t7, 0x5c40 +/* 094B0C 7F05FFDC 8DE10000 */ lw $at, ($t7) +/* 094B10 7F05FFE0 27AE0194 */ addiu $t6, $sp, 0x194 +/* 094B14 7F05FFE4 8DED0004 */ lw $t5, 4($t7) +/* 094B18 7F05FFE8 ADC10000 */ sw $at, ($t6) +/* 094B1C 7F05FFEC 8DE10008 */ lw $at, 8($t7) +/* 094B20 7F05FFF0 0004C0C0 */ sll $t8, $a0, 3 +/* 094B24 7F05FFF4 0304C023 */ subu $t8, $t8, $a0 +/* 094B28 7F05FFF8 0018C080 */ sll $t8, $t8, 2 +/* 094B2C 7F05FFFC 0304C021 */ addu $t8, $t8, $a0 +/* 094B30 7F060000 3C198008 */ lui $t9, %hi(pPlayer) +/* 094B34 7F060004 ADCD0004 */ sw $t5, 4($t6) +/* 094B38 7F060008 ADC10008 */ sw $at, 8($t6) +/* 094B3C 7F06000C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 094B40 7F060010 0018C080 */ sll $t8, $t8, 2 +/* 094B44 7F060014 0304C021 */ addu $t8, $t8, $a0 +/* 094B48 7F060018 0018C0C0 */ sll $t8, $t8, 3 +/* 094B4C 7F06001C 03388021 */ addu $s0, $t9, $t8 +/* 094B50 7F060020 AFA0010C */ sw $zero, 0x10c($sp) +/* 094B54 7F060024 AFA00108 */ sw $zero, 0x108($sp) +/* 094B58 7F060028 26100870 */ addiu $s0, $s0, 0x870 +/* 094B5C 7F06002C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B60 7F060030 AFA402A8 */ sw $a0, 0x2a8($sp) +/* 094B64 7F060034 AFA200FC */ sw $v0, 0xfc($sp) +/* 094B68 7F060038 0FC1722D */ jal get_ptr_item_statistics +/* 094B6C 7F06003C 00402025 */ move $a0, $v0 +/* 094B70 7F060040 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 094B74 7F060044 AFA200F8 */ sw $v0, 0xf8($sp) +/* 094B78 7F060048 15C0002D */ bnez $t6, .L7F060100 +/* 094B7C 7F06004C 00000000 */ nop +/* 094B80 7F060050 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B84 7F060054 24040001 */ li $a0, 1 +/* 094B88 7F060058 00402025 */ move $a0, $v0 +/* 094B8C 7F06005C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094B90 7F060060 24050800 */ li $a1, 2048 +/* 094B94 7F060064 10400015 */ beqz $v0, .L7F0600BC +/* 094B98 7F060068 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094B9C 7F06006C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094BA0 7F060070 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BA4 7F060074 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BA8 7F060078 44813000 */ mtc1 $at, $f6 +/* 094BAC 7F06007C 46000100 */ add.s $f4, $f0, $f0 +/* 094BB0 7F060080 C60A01C4 */ lwc1 $f10, 0x1c4($s0) +/* 094BB4 7F060084 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BB8 7F060088 44819000 */ mtc1 $at, $f18 +/* 094BBC 7F06008C 46062203 */ div.s $f8, $f4, $f6 +/* 094BC0 7F060090 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BC4 7F060094 46085400 */ add.s $f16, $f10, $f8 +/* 094BC8 7F060098 E61001C4 */ swc1 $f16, 0x1c4($s0) +/* 094BCC 7F06009C C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094BD0 7F0600A0 4604903C */ c.lt.s $f18, $f4 +/* 094BD4 7F0600A4 00000000 */ nop +/* 094BD8 7F0600A8 4500003F */ bc1f .L7F0601A8 +/* 094BDC 7F0600AC 00000000 */ nop +/* 094BE0 7F0600B0 44813000 */ mtc1 $at, $f6 +/* 094BE4 7F0600B4 1000003C */ b .L7F0601A8 +/* 094BE8 7F0600B8 E60601C4 */ swc1 $f6, 0x1c4($s0) +.L7F0600BC: +/* 094BEC 7F0600BC C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BF0 7F0600C0 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BF4 7F0600C4 44814000 */ mtc1 $at, $f8 +/* 094BF8 7F0600C8 46000280 */ add.s $f10, $f0, $f0 +/* 094BFC 7F0600CC C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094C00 7F0600D0 46085403 */ div.s $f16, $f10, $f8 +/* 094C04 7F0600D4 44805000 */ mtc1 $zero, $f10 +/* 094C08 7F0600D8 46109101 */ sub.s $f4, $f18, $f16 +/* 094C0C 7F0600DC E60401C4 */ swc1 $f4, 0x1c4($s0) +/* 094C10 7F0600E0 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C14 7F0600E4 460A303C */ c.lt.s $f6, $f10 +/* 094C18 7F0600E8 00000000 */ nop +/* 094C1C 7F0600EC 4500002E */ bc1f .L7F0601A8 +/* 094C20 7F0600F0 00000000 */ nop +/* 094C24 7F0600F4 44804000 */ mtc1 $zero, $f8 +/* 094C28 7F0600F8 1000002B */ b .L7F0601A8 +/* 094C2C 7F0600FC E60801C4 */ swc1 $f8, 0x1c4($s0) +.L7F060100: +/* 094C30 7F060100 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094C34 7F060104 00002025 */ move $a0, $zero +/* 094C38 7F060108 00402025 */ move $a0, $v0 +/* 094C3C 7F06010C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094C40 7F060110 24050800 */ li $a1, 2048 +/* 094C44 7F060114 10400013 */ beqz $v0, .L7F060164 +/* 094C48 7F060118 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C4C 7F06011C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 094C50 7F060120 44811000 */ mtc1 $at, $f2 +/* 094C54 7F060124 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C58 7F060128 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C5C 7F06012C 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C60 7F060130 44818000 */ mtc1 $at, $f16 +/* 094C64 7F060134 46000480 */ add.s $f18, $f0, $f0 +/* 094C68 7F060138 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C6C 7F06013C 46109103 */ div.s $f4, $f18, $f16 +/* 094C70 7F060140 46043281 */ sub.s $f10, $f6, $f4 +/* 094C74 7F060144 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094C78 7F060148 C60801C4 */ lwc1 $f8, 0x1c4($s0) +/* 094C7C 7F06014C 4602403C */ c.lt.s $f8, $f2 +/* 094C80 7F060150 00000000 */ nop +/* 094C84 7F060154 45000014 */ bc1f .L7F0601A8 +/* 094C88 7F060158 00000000 */ nop +/* 094C8C 7F06015C 10000012 */ b .L7F0601A8 +/* 094C90 7F060160 E60201C4 */ swc1 $f2, 0x1c4($s0) +.L7F060164: +/* 094C94 7F060164 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C98 7F060168 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C9C 7F06016C 44818000 */ mtc1 $at, $f16 +/* 094CA0 7F060170 46000480 */ add.s $f18, $f0, $f0 +/* 094CA4 7F060174 C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094CA8 7F060178 44804000 */ mtc1 $zero, $f8 +/* 094CAC 7F06017C 46109183 */ div.s $f6, $f18, $f16 +/* 094CB0 7F060180 46062280 */ add.s $f10, $f4, $f6 +/* 094CB4 7F060184 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094CB8 7F060188 C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094CBC 7F06018C 4612403C */ c.lt.s $f8, $f18 +/* 094CC0 7F060190 00000000 */ nop +/* 094CC4 7F060194 45000004 */ bc1f .L7F0601A8 +/* 094CC8 7F060198 00000000 */ nop +/* 094CCC 7F06019C 44808000 */ mtc1 $zero, $f16 +/* 094CD0 7F0601A0 00000000 */ nop +/* 094CD4 7F0601A4 E61001C4 */ swc1 $f16, 0x1c4($s0) +.L7F0601A8: +/* 094CD8 7F0601A8 3C0F8003 */ lui $t7, %hi(D_80035C4C) +/* 094CDC 7F0601AC 25EF5C4C */ addiu $t7, %lo(D_80035C4C) # addiu $t7, $t7, 0x5c4c +/* 094CE0 7F0601B0 8DE10000 */ lw $at, ($t7) +/* 094CE4 7F0601B4 27AC00E0 */ addiu $t4, $sp, 0xe0 +/* 094CE8 7F0601B8 3C0E8003 */ lui $t6, %hi(D_80035C58) +/* 094CEC 7F0601BC AD810000 */ sw $at, ($t4) +/* 094CF0 7F0601C0 8DF90004 */ lw $t9, 4($t7) +/* 094CF4 7F0601C4 25CE5C58 */ addiu $t6, %lo(D_80035C58) # addiu $t6, $t6, 0x5c58 +/* 094CF8 7F0601C8 27B800D4 */ addiu $t8, $sp, 0xd4 +/* 094CFC 7F0601CC AD990004 */ sw $t9, 4($t4) +/* 094D00 7F0601D0 8DE10008 */ lw $at, 8($t7) +/* 094D04 7F0601D4 3C0D8003 */ lui $t5, %hi(D_80035C64) +/* 094D08 7F0601D8 25AD5C64 */ addiu $t5, %lo(D_80035C64) # addiu $t5, $t5, 0x5c64 +/* 094D0C 7F0601DC AD810008 */ sw $at, 8($t4) +/* 094D10 7F0601E0 8DC10000 */ lw $at, ($t6) +/* 094D14 7F0601E4 8DCF0004 */ lw $t7, 4($t6) +/* 094D18 7F0601E8 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 094D1C 7F0601EC AF010000 */ sw $at, ($t8) +/* 094D20 7F0601F0 8DC10008 */ lw $at, 8($t6) +/* 094D24 7F0601F4 AF0F0004 */ sw $t7, 4($t8) +/* 094D28 7F0601F8 2403000C */ li $v1, 12 +/* 094D2C 7F0601FC AF010008 */ sw $at, 8($t8) +/* 094D30 7F060200 8DA10000 */ lw $at, ($t5) +/* 094D34 7F060204 8DAE0004 */ lw $t6, 4($t5) +/* 094D38 7F060208 AF210000 */ sw $at, ($t9) +/* 094D3C 7F06020C 8DA10008 */ lw $at, 8($t5) +/* 094D40 7F060210 AF2E0004 */ sw $t6, 4($t9) +/* 094D44 7F060214 AF210008 */ sw $at, 8($t9) +/* 094D48 7F060218 8E020198 */ lw $v0, 0x198($s0) +/* 094D4C 7F06021C C604019C */ lwc1 $f4, 0x19c($s0) +/* 094D50 7F060220 AFAC0014 */ sw $t4, 0x14($sp) +/* 094D54 7F060224 244F0003 */ addiu $t7, $v0, 3 +/* 094D58 7F060228 05E10004 */ bgez $t7, .L7F06023C +/* 094D5C 7F06022C 31F80003 */ andi $t8, $t7, 3 +/* 094D60 7F060230 13000002 */ beqz $t8, .L7F06023C +/* 094D64 7F060234 00000000 */ nop +/* 094D68 7F060238 2718FFFC */ addiu $t8, $t8, -4 +.L7F06023C: +/* 094D6C 7F06023C 03030019 */ multu $t8, $v1 +/* 094D70 7F060240 244E0001 */ addiu $t6, $v0, 1 +/* 094D74 7F060244 E7A40010 */ swc1 $f4, 0x10($sp) +/* 094D78 7F060248 0000C812 */ mflo $t9 +/* 094D7C 7F06024C 02194021 */ addu $t0, $s0, $t9 +/* 094D80 7F060250 24590002 */ addiu $t9, $v0, 2 +/* 094D84 7F060254 00430019 */ multu $v0, $v1 +/* 094D88 7F060258 25040108 */ addiu $a0, $t0, 0x108 +/* 094D8C 7F06025C AFA80044 */ sw $t0, 0x44($sp) +/* 094D90 7F060260 00006812 */ mflo $t5 +/* 094D94 7F060264 020D4821 */ addu $t1, $s0, $t5 +/* 094D98 7F060268 25250108 */ addiu $a1, $t1, 0x108 +/* 094D9C 7F06026C 05C10004 */ bgez $t6, .L7F060280 +/* 094DA0 7F060270 31CF0003 */ andi $t7, $t6, 3 +/* 094DA4 7F060274 11E00002 */ beqz $t7, .L7F060280 +/* 094DA8 7F060278 00000000 */ nop +/* 094DAC 7F06027C 25EFFFFC */ addiu $t7, $t7, -4 +.L7F060280: +/* 094DB0 7F060280 01E30019 */ multu $t7, $v1 +/* 094DB4 7F060284 AFA90040 */ sw $t1, 0x40($sp) +/* 094DB8 7F060288 0000C012 */ mflo $t8 +/* 094DBC 7F06028C 02185021 */ addu $t2, $s0, $t8 +/* 094DC0 7F060290 25460108 */ addiu $a2, $t2, 0x108 +/* 094DC4 7F060294 07210004 */ bgez $t9, .L7F0602A8 +/* 094DC8 7F060298 332D0003 */ andi $t5, $t9, 3 +/* 094DCC 7F06029C 11A00002 */ beqz $t5, .L7F0602A8 +/* 094DD0 7F0602A0 00000000 */ nop +/* 094DD4 7F0602A4 25ADFFFC */ addiu $t5, $t5, -4 +.L7F0602A8: +/* 094DD8 7F0602A8 01A30019 */ multu $t5, $v1 +/* 094DDC 7F0602AC AFAA003C */ sw $t2, 0x3c($sp) +/* 094DE0 7F0602B0 00007012 */ mflo $t6 +/* 094DE4 7F0602B4 020E5821 */ addu $t3, $s0, $t6 +/* 094DE8 7F0602B8 25670108 */ addiu $a3, $t3, 0x108 +/* 094DEC 7F0602BC 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094DF0 7F0602C0 AFAB0038 */ sw $t3, 0x38($sp) +/* 094DF4 7F0602C4 8FA40044 */ lw $a0, 0x44($sp) +/* 094DF8 7F0602C8 8FA50040 */ lw $a1, 0x40($sp) +/* 094DFC 7F0602CC 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E00 7F0602D0 8FA70038 */ lw $a3, 0x38($sp) +/* 094E04 7F0602D4 C606019C */ lwc1 $f6, 0x19c($s0) +/* 094E08 7F0602D8 27AF00D4 */ addiu $t7, $sp, 0xd4 +/* 094E0C 7F0602DC AFAF0014 */ sw $t7, 0x14($sp) +/* 094E10 7F0602E0 24840138 */ addiu $a0, $a0, 0x138 +/* 094E14 7F0602E4 24A50138 */ addiu $a1, $a1, 0x138 +/* 094E18 7F0602E8 24C60138 */ addiu $a2, $a2, 0x138 +/* 094E1C 7F0602EC 24E70138 */ addiu $a3, $a3, 0x138 +/* 094E20 7F0602F0 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E24 7F0602F4 E7A60010 */ swc1 $f6, 0x10($sp) +/* 094E28 7F0602F8 8FA40044 */ lw $a0, 0x44($sp) +/* 094E2C 7F0602FC 8FA50040 */ lw $a1, 0x40($sp) +/* 094E30 7F060300 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E34 7F060304 8FA70038 */ lw $a3, 0x38($sp) +/* 094E38 7F060308 C60A019C */ lwc1 $f10, 0x19c($s0) +/* 094E3C 7F06030C 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 094E40 7F060310 AFB80014 */ sw $t8, 0x14($sp) +/* 094E44 7F060314 24840168 */ addiu $a0, $a0, 0x168 +/* 094E48 7F060318 24A50168 */ addiu $a1, $a1, 0x168 +/* 094E4C 7F06031C 24C60168 */ addiu $a2, $a2, 0x168 +/* 094E50 7F060320 24E70168 */ addiu $a3, $a3, 0x168 +/* 094E54 7F060324 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E58 7F060328 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 094E5C 7F06032C 3C028008 */ lui $v0, %hi(pPlayer) +/* 094E60 7F060330 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 094E64 7F060334 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094E68 7F060338 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 094E6C 7F06033C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E70 7F060340 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094E74 7F060344 46124402 */ mul.s $f16, $f8, $f18 +/* 094E78 7F060348 C7A800E8 */ lwc1 $f8, 0xe8($sp) +/* 094E7C 7F06034C E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 094E80 7F060350 C4460FC0 */ lwc1 $f6, 0xfc0($v0) +/* 094E84 7F060354 46062282 */ mul.s $f10, $f4, $f6 +/* 094E88 7F060358 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 094E8C 7F06035C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E90 7F060360 46124102 */ mul.s $f4, $f8, $f18 +/* 094E94 7F060364 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 094E98 7F060368 C60601AC */ lwc1 $f6, 0x1ac($s0) +/* 094E9C 7F06036C 46068200 */ add.s $f8, $f16, $f6 +/* 094EA0 7F060370 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 094EA4 7F060374 C61201B0 */ lwc1 $f18, 0x1b0($s0) +/* 094EA8 7F060378 46125100 */ add.s $f4, $f10, $f18 +/* 094EAC 7F06037C 0FC1772E */ jal sub_GAME_7F05DCB8 +/* 094EB0 7F060380 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 094EB4 7F060384 C7B000E0 */ lwc1 $f16, 0xe0($sp) +/* 094EB8 7F060388 3C028005 */ lui $v0, %hi(clock_timer) +/* 094EBC 7F06038C 24428374 */ addiu $v0, %lo(clock_timer) # addiu $v0, $v0, -0x7c8c +/* 094EC0 7F060390 46008180 */ add.s $f6, $f16, $f0 +/* 094EC4 7F060394 8C590000 */ lw $t9, ($v0) +/* 094EC8 7F060398 00001825 */ move $v1, $zero +/* 094ECC 7F06039C 1B200035 */ blez $t9, .L7F060474 +/* 094ED0 7F0603A0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 094ED4 7F0603A4 3C018005 */ lui $at, %hi(D_80053DE0) +/* 094ED8 7F0603A8 C4203DE0 */ lwc1 $f0, %lo(D_80053DE0)($at) +/* 094EDC 7F0603AC C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F0603B0: +/* 094EE0 7F0603B0 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094EE4 7F0603B4 C60600E8 */ lwc1 $f6, 0xe8($s0) +/* 094EE8 7F0603B8 460A0482 */ mul.s $f18, $f0, $f10 +/* 094EEC 7F0603BC 24630001 */ addiu $v1, $v1, 1 +/* 094EF0 7F0603C0 46060282 */ mul.s $f10, $f0, $f6 +/* 094EF4 7F0603C4 46124100 */ add.s $f4, $f8, $f18 +/* 094EF8 7F0603C8 E60400E4 */ swc1 $f4, 0xe4($s0) +/* 094EFC 7F0603CC C7B000E4 */ lwc1 $f16, 0xe4($sp) +/* 094F00 7F0603D0 C60400EC */ lwc1 $f4, 0xec($s0) +/* 094F04 7F0603D4 460A8200 */ add.s $f8, $f16, $f10 +/* 094F08 7F0603D8 46040182 */ mul.s $f6, $f0, $f4 +/* 094F0C 7F0603DC E60800E8 */ swc1 $f8, 0xe8($s0) +/* 094F10 7F0603E0 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 094F14 7F0603E4 C60800F0 */ lwc1 $f8, 0xf0($s0) +/* 094F18 7F0603E8 46069400 */ add.s $f16, $f18, $f6 +/* 094F1C 7F0603EC 46080102 */ mul.s $f4, $f0, $f8 +/* 094F20 7F0603F0 E61000EC */ swc1 $f16, 0xec($s0) +/* 094F24 7F0603F4 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 094F28 7F0603F8 C61000F4 */ lwc1 $f16, 0xf4($s0) +/* 094F2C 7F0603FC 46045480 */ add.s $f18, $f10, $f4 +/* 094F30 7F060400 46100202 */ mul.s $f8, $f0, $f16 +/* 094F34 7F060404 E61200F0 */ swc1 $f18, 0xf0($s0) +/* 094F38 7F060408 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 094F3C 7F06040C C61200F8 */ lwc1 $f18, 0xf8($s0) +/* 094F40 7F060410 46083280 */ add.s $f10, $f6, $f8 +/* 094F44 7F060414 46120402 */ mul.s $f16, $f0, $f18 +/* 094F48 7F060418 E60A00F4 */ swc1 $f10, 0xf4($s0) +/* 094F4C 7F06041C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 094F50 7F060420 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094F54 7F060424 46102180 */ add.s $f6, $f4, $f16 +/* 094F58 7F060428 460A0482 */ mul.s $f18, $f0, $f10 +/* 094F5C 7F06042C E60600F8 */ swc1 $f6, 0xf8($s0) +/* 094F60 7F060430 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 094F64 7F060434 C6060100 */ lwc1 $f6, 0x100($s0) +/* 094F68 7F060438 46124100 */ add.s $f4, $f8, $f18 +/* 094F6C 7F06043C 46060282 */ mul.s $f10, $f0, $f6 +/* 094F70 7F060440 E60400FC */ swc1 $f4, 0xfc($s0) +/* 094F74 7F060444 C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 094F78 7F060448 C6040104 */ lwc1 $f4, 0x104($s0) +/* 094F7C 7F06044C 460A8200 */ add.s $f8, $f16, $f10 +/* 094F80 7F060450 46040182 */ mul.s $f6, $f0, $f4 +/* 094F84 7F060454 E6080100 */ swc1 $f8, 0x100($s0) +/* 094F88 7F060458 C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 094F8C 7F06045C 46069400 */ add.s $f16, $f18, $f6 +/* 094F90 7F060460 E6100104 */ swc1 $f16, 0x104($s0) +/* 094F94 7F060464 8C4D0000 */ lw $t5, ($v0) +/* 094F98 7F060468 006D082A */ slt $at, $v1, $t5 +/* 094F9C 7F06046C 5420FFD0 */ bnezl $at, .L7F0603B0 +/* 094FA0 7F060470 C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F060474: +/* 094FA4 7F060474 3C018005 */ lui $at, %hi(D_80053DE4) +/* 094FA8 7F060478 C4203DE4 */ lwc1 $f0, %lo(D_80053DE4)($at) +/* 094FAC 7F06047C C60A00E4 */ lwc1 $f10, 0xe4($s0) +/* 094FB0 7F060480 C60400E8 */ lwc1 $f4, 0xe8($s0) +/* 094FB4 7F060484 C60600EC */ lwc1 $f6, 0xec($s0) +/* 094FB8 7F060488 46005202 */ mul.s $f8, $f10, $f0 +/* 094FBC 7F06048C C60A00F0 */ lwc1 $f10, 0xf0($s0) +/* 094FC0 7F060490 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094FC4 7F060494 46002482 */ mul.s $f18, $f4, $f0 +/* 094FC8 7F060498 C60400F4 */ lwc1 $f4, 0xf4($s0) +/* 094FCC 7F06049C 46003402 */ mul.s $f16, $f6, $f0 +/* 094FD0 7F0604A0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 094FD4 7F0604A4 C60600F8 */ lwc1 $f6, 0xf8($s0) +/* 094FD8 7F0604A8 46005202 */ mul.s $f8, $f10, $f0 +/* 094FDC 7F0604AC E61200C4 */ swc1 $f18, 0xc4($s0) +/* 094FE0 7F0604B0 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094FE4 7F0604B4 46002482 */ mul.s $f18, $f4, $f0 +/* 094FE8 7F0604B8 E61000C8 */ swc1 $f16, 0xc8($s0) +/* 094FEC 7F0604BC C6040100 */ lwc1 $f4, 0x100($s0) +/* 094FF0 7F0604C0 46003402 */ mul.s $f16, $f6, $f0 +/* 094FF4 7F0604C4 E60800CC */ swc1 $f8, 0xcc($s0) +/* 094FF8 7F0604C8 C6060104 */ lwc1 $f6, 0x104($s0) +/* 094FFC 7F0604CC 46005202 */ mul.s $f8, $f10, $f0 +/* 095000 7F0604D0 E61200D0 */ swc1 $f18, 0xd0($s0) +/* 095004 7F0604D4 46002482 */ mul.s $f18, $f4, $f0 +/* 095008 7F0604D8 E61000D4 */ swc1 $f16, 0xd4($s0) +/* 09500C 7F0604DC 46003402 */ mul.s $f16, $f6, $f0 +/* 095010 7F0604E0 E60800D8 */ swc1 $f8, 0xd8($s0) +/* 095014 7F0604E4 E61200DC */ swc1 $f18, 0xdc($s0) +/* 095018 7F0604E8 14800009 */ bnez $a0, .L7F060510 +/* 09501C 7F0604EC E61000E0 */ swc1 $f16, 0xe0($s0) +/* 095020 7F0604F0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095024 7F0604F4 00000000 */ nop +/* 095028 7F0604F8 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 09502C 7F0604FC C60A01B8 */ lwc1 $f10, 0x1b8($s0) +/* 095030 7F060500 46080100 */ add.s $f4, $f0, $f8 +/* 095034 7F060504 46045480 */ add.s $f18, $f10, $f4 +/* 095038 7F060508 10000008 */ b .L7F06052C +/* 09503C 7F06050C E7B20194 */ swc1 $f18, 0x194($sp) +.L7F060510: +/* 095040 7F060510 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095044 7F060514 00000000 */ nop +/* 095048 7F060518 C60600C0 */ lwc1 $f6, 0xc0($s0) +/* 09504C 7F06051C C60801B8 */ lwc1 $f8, 0x1b8($s0) +/* 095050 7F060520 46060400 */ add.s $f16, $f0, $f6 +/* 095054 7F060524 46088281 */ sub.s $f10, $f16, $f8 +/* 095058 7F060528 E7AA0194 */ swc1 $f10, 0x194($sp) +.L7F06052C: +/* 09505C 7F06052C 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 095060 7F060530 C61200C4 */ lwc1 $f18, 0xc4($s0) +/* 095064 7F060534 C61001BC */ lwc1 $f16, 0x1bc($s0) +/* 095068 7F060538 C5C40008 */ lwc1 $f4, 8($t6) +/* 09506C 7F06053C 8FA400FC */ lw $a0, 0xfc($sp) +/* 095070 7F060540 24010019 */ li $at, 25 +/* 095074 7F060544 46122180 */ add.s $f6, $f4, $f18 +/* 095078 7F060548 46068200 */ add.s $f8, $f16, $f6 +/* 09507C 7F06054C E7A80198 */ swc1 $f8, 0x198($sp) +/* 095080 7F060550 C60400C8 */ lwc1 $f4, 0xc8($s0) +/* 095084 7F060554 C5CA000C */ lwc1 $f10, 0xc($t6) +/* 095088 7F060558 C61001C0 */ lwc1 $f16, 0x1c0($s0) +/* 09508C 7F06055C 46045480 */ add.s $f18, $f10, $f4 +/* 095090 7F060560 46128180 */ add.s $f6, $f16, $f18 +/* 095094 7F060564 10810005 */ beq $a0, $at, .L7F06057C +/* 095098 7F060568 E7A6019C */ swc1 $f6, 0x19c($sp) +/* 09509C 7F06056C 2401001E */ li $at, 30 +/* 0950A0 7F060570 10810002 */ beq $a0, $at, .L7F06057C +/* 0950A4 7F060574 24010017 */ li $at, 23 +/* 0950A8 7F060578 14810028 */ bne $a0, $at, .L7F06061C +.L7F06057C: +/* 0950AC 7F06057C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0950B0 7F060580 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0950B4 7F060584 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0950B8 7F060588 44810000 */ mtc1 $at, $f0 +/* 0950BC 7F06058C C44A00A0 */ lwc1 $f10, 0xa0($v0) +/* 0950C0 7F060590 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0950C4 7F060594 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0950C8 7F060598 46005103 */ div.s $f4, $f10, $f0 +/* 0950CC 7F06059C 44819000 */ mtc1 $at, $f18 +/* 0950D0 7F0605A0 24010019 */ li $at, 25 +/* 0950D4 7F0605A4 46044400 */ add.s $f16, $f8, $f4 +/* 0950D8 7F0605A8 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0950DC 7F0605AC E7B00198 */ swc1 $f16, 0x198($sp) +/* 0950E0 7F0605B0 C44600A0 */ lwc1 $f6, 0xa0($v0) +/* 0950E4 7F0605B4 46069282 */ mul.s $f10, $f18, $f6 +/* 0950E8 7F0605B8 46005203 */ div.s $f8, $f10, $f0 +/* 0950EC 7F0605BC 46082400 */ add.s $f16, $f4, $f8 +/* 0950F0 7F0605C0 14810014 */ bne $a0, $at, .L7F060614 +/* 0950F4 7F0605C4 E7B0019C */ swc1 $f16, 0x19c($sp) +/* 0950F8 7F0605C8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0950FC 7F0605CC 00000000 */ nop +/* 095100 7F0605D0 24010001 */ li $at, 1 +/* 095104 7F0605D4 5041000B */ beql $v0, $at, .L7F060604 +/* 095108 7F0605D8 3C014040 */ lui $at, 0x4040 +/* 09510C 7F0605DC 0FC293B2 */ jal cur_player_get_screen_setting +/* 095110 7F0605E0 00000000 */ nop +/* 095114 7F0605E4 24010002 */ li $at, 2 +/* 095118 7F0605E8 50410006 */ beql $v0, $at, .L7F060604 +/* 09511C 7F0605EC 3C014040 */ lui $at, 0x4040 +/* 095120 7F0605F0 0FC293B8 */ jal get_screen_ratio +/* 095124 7F0605F4 00000000 */ nop +/* 095128 7F0605F8 24010001 */ li $at, 1 +/* 09512C 7F0605FC 14410005 */ bne $v0, $at, .L7F060614 +/* 095130 7F060600 3C014040 */ li $at, 0x40400000 # 3.000000 +.L7F060604: +/* 095134 7F060604 44813000 */ mtc1 $at, $f6 +/* 095138 7F060608 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09513C 7F06060C 46069281 */ sub.s $f10, $f18, $f6 +/* 095140 7F060610 E7AA0198 */ swc1 $f10, 0x198($sp) +.L7F060614: +/* 095144 7F060614 1000002C */ b .L7F0606C8 +/* 095148 7F060618 8FA400FC */ lw $a0, 0xfc($sp) +.L7F06061C: +/* 09514C 7F06061C 2401001F */ li $at, 31 +/* 095150 7F060620 14810016 */ bne $a0, $at, .L7F06067C +/* 095154 7F060624 3C028008 */ lui $v0, %hi(pPlayer) +/* 095158 7F060628 3C028008 */ lui $v0, %hi(pPlayer) +/* 09515C 7F06062C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 095160 7F060630 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095164 7F060634 44810000 */ mtc1 $at, $f0 +/* 095168 7F060638 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 09516C 7F06063C 44812000 */ mtc1 $at, $f4 +/* 095170 7F060640 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095174 7F060644 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095178 7F060648 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 09517C 7F06064C 46082402 */ mul.s $f16, $f4, $f8 +/* 095180 7F060650 44812000 */ mtc1 $at, $f4 +/* 095184 7F060654 46008483 */ div.s $f18, $f16, $f0 +/* 095188 7F060658 46123280 */ add.s $f10, $f6, $f18 +/* 09518C 7F06065C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095190 7F060660 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 095194 7F060664 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095198 7F060668 46082402 */ mul.s $f16, $f4, $f8 +/* 09519C 7F06066C 46008183 */ div.s $f6, $f16, $f0 +/* 0951A0 7F060670 46069280 */ add.s $f10, $f18, $f6 +/* 0951A4 7F060674 10000014 */ b .L7F0606C8 +/* 0951A8 7F060678 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F06067C: +/* 0951AC 7F06067C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0951B0 7F060680 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0951B4 7F060684 44810000 */ mtc1 $at, $f0 +/* 0951B8 7F060688 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0951BC 7F06068C 44812000 */ mtc1 $at, $f4 +/* 0951C0 7F060690 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951C4 7F060694 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 0951C8 7F060698 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0951CC 7F06069C 46082402 */ mul.s $f16, $f4, $f8 +/* 0951D0 7F0606A0 44812000 */ mtc1 $at, $f4 +/* 0951D4 7F0606A4 46008483 */ div.s $f18, $f16, $f0 +/* 0951D8 7F0606A8 46123280 */ add.s $f10, $f6, $f18 +/* 0951DC 7F0606AC C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0951E0 7F0606B0 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 0951E4 7F0606B4 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951E8 7F0606B8 46082402 */ mul.s $f16, $f4, $f8 +/* 0951EC 7F0606BC 46008183 */ div.s $f6, $f16, $f0 +/* 0951F0 7F0606C0 46069280 */ add.s $f10, $f18, $f6 +/* 0951F4 7F0606C4 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F0606C8: +/* 0951F8 7F0606C8 820F000C */ lb $t7, 0xc($s0) +/* 0951FC 7F0606CC 11E00047 */ beqz $t7, .L7F0607EC +/* 095200 7F0606D0 00000000 */ nop +/* 095204 7F0606D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095208 7F0606D8 24050020 */ li $a1, 32 +/* 09520C 7F0606DC 10400043 */ beqz $v0, .L7F0607EC +/* 095210 7F0606E0 8FA400FC */ lw $a0, 0xfc($sp) +/* 095214 7F0606E4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095218 7F0606E8 24050040 */ li $a1, 64 +/* 09521C 7F0606EC 10400016 */ beqz $v0, .L7F060748 +/* 095220 7F0606F0 00000000 */ nop +/* 095224 7F0606F4 0C002914 */ jal get_random_value +/* 095228 7F0606F8 00000000 */ nop +/* 09522C 7F0606FC 44822000 */ mtc1 $v0, $f4 +/* 095230 7F060700 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095234 7F060704 04410004 */ bgez $v0, .L7F060718 +/* 095238 7F060708 46802220 */ cvt.s.w $f8, $f4 +/* 09523C 7F06070C 44818000 */ mtc1 $at, $f16 +/* 095240 7F060710 00000000 */ nop +/* 095244 7F060714 46104200 */ add.s $f8, $f8, $f16 +.L7F060718: +/* 095248 7F060718 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09524C 7F06071C 44819000 */ mtc1 $at, $f18 +/* 095250 7F060720 3C018005 */ lui $at, %hi(D_80053DE8) +/* 095254 7F060724 C42A3DE8 */ lwc1 $f10, %lo(D_80053DE8)($at) +/* 095258 7F060728 46124182 */ mul.s $f6, $f8, $f18 +/* 09525C 7F06072C 3C018005 */ lui $at, %hi(D_80053DEC) +/* 095260 7F060730 C4303DEC */ lwc1 $f16, %lo(D_80053DEC)($at) +/* 095264 7F060734 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095268 7F060738 460A3102 */ mul.s $f4, $f6, $f10 +/* 09526C 7F06073C 46048201 */ sub.s $f8, $f16, $f4 +/* 095270 7F060740 46089180 */ add.s $f6, $f18, $f8 +/* 095274 7F060744 E7A60194 */ swc1 $f6, 0x194($sp) +.L7F060748: +/* 095278 7F060748 0C002914 */ jal get_random_value +/* 09527C 7F06074C 00000000 */ nop +/* 095280 7F060750 44825000 */ mtc1 $v0, $f10 +/* 095284 7F060754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095288 7F060758 04410004 */ bgez $v0, .L7F06076C +/* 09528C 7F06075C 46805420 */ cvt.s.w $f16, $f10 +/* 095290 7F060760 44812000 */ mtc1 $at, $f4 +/* 095294 7F060764 00000000 */ nop +/* 095298 7F060768 46048400 */ add.s $f16, $f16, $f4 +.L7F06076C: +/* 09529C 7F06076C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952A0 7F060770 44819000 */ mtc1 $at, $f18 +/* 0952A4 7F060774 3C018005 */ lui $at, %hi(D_80053DF0) +/* 0952A8 7F060778 C4263DF0 */ lwc1 $f6, %lo(D_80053DF0)($at) +/* 0952AC 7F06077C 46128202 */ mul.s $f8, $f16, $f18 +/* 0952B0 7F060780 3C018005 */ lui $at, %hi(D_80053DF4) +/* 0952B4 7F060784 C4243DF4 */ lwc1 $f4, %lo(D_80053DF4)($at) +/* 0952B8 7F060788 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 0952BC 7F06078C 46064282 */ mul.s $f10, $f8, $f6 +/* 0952C0 7F060790 460A2401 */ sub.s $f16, $f4, $f10 +/* 0952C4 7F060794 46109200 */ add.s $f8, $f18, $f16 +/* 0952C8 7F060798 0C002914 */ jal get_random_value +/* 0952CC 7F06079C E7A80198 */ swc1 $f8, 0x198($sp) +/* 0952D0 7F0607A0 44823000 */ mtc1 $v0, $f6 +/* 0952D4 7F0607A4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0952D8 7F0607A8 04410004 */ bgez $v0, .L7F0607BC +/* 0952DC 7F0607AC 46803120 */ cvt.s.w $f4, $f6 +/* 0952E0 7F0607B0 44815000 */ mtc1 $at, $f10 +/* 0952E4 7F0607B4 00000000 */ nop +/* 0952E8 7F0607B8 460A2100 */ add.s $f4, $f4, $f10 +.L7F0607BC: +/* 0952EC 7F0607BC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952F0 7F0607C0 44819000 */ mtc1 $at, $f18 +/* 0952F4 7F0607C4 3C018005 */ lui $at, %hi(D_80053DF8) +/* 0952F8 7F0607C8 C4283DF8 */ lwc1 $f8, %lo(D_80053DF8)($at) +/* 0952FC 7F0607CC 46122402 */ mul.s $f16, $f4, $f18 +/* 095300 7F0607D0 3C018005 */ lui $at, %hi(D_80053DFC) +/* 095304 7F0607D4 C42A3DFC */ lwc1 $f10, %lo(D_80053DFC)($at) +/* 095308 7F0607D8 C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 09530C 7F0607DC 46088182 */ mul.s $f6, $f16, $f8 +/* 095310 7F0607E0 46065101 */ sub.s $f4, $f10, $f6 +/* 095314 7F0607E4 46049400 */ add.s $f16, $f18, $f4 +/* 095318 7F0607E8 E7B0019C */ swc1 $f16, 0x19c($sp) +.L7F0607EC: +/* 09531C 7F0607EC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095320 7F0607F0 00000000 */ nop +/* 095324 7F0607F4 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095328 7F0607F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09532C 7F0607FC 0FC1E131 */ jal getPlayer_c_screenleft +/* 095330 7F060800 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095334 7F060804 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095338 7F060808 3C188008 */ lui $t8, %hi(pPlayer) +/* 09533C 7F06080C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095340 7F060810 44811000 */ mtc1 $at, $f2 +/* 095344 7F060814 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 095348 7F060818 C7080FFC */ lwc1 $f8, 0xffc($t8) +/* 09534C 7F06081C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095350 7F060820 46023482 */ mul.s $f18, $f6, $f2 +/* 095354 7F060824 46004281 */ sub.s $f10, $f8, $f0 +/* 095358 7F060828 C7300018 */ lwc1 $f16, 0x18($t9) +/* 09535C 7F06082C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 095360 7F060830 46125101 */ sub.s $f4, $f10, $f18 +/* 095364 7F060834 46102202 */ mul.s $f8, $f4, $f16 +/* 095368 7F060838 C7A40194 */ lwc1 $f4, 0x194($sp) +/* 09536C 7F06083C 46023282 */ mul.s $f10, $f6, $f2 +/* 095370 7F060840 460A4483 */ div.s $f18, $f8, $f10 +/* 095374 7F060844 46122400 */ add.s $f16, $f4, $f18 +/* 095378 7F060848 0FC1E135 */ jal getPlayer_c_screentop +/* 09537C 7F06084C E7B00194 */ swc1 $f16, 0x194($sp) +/* 095380 7F060850 0FC1E12D */ jal getPlayer_c_screenheight +/* 095384 7F060854 E7A00050 */ swc1 $f0, 0x50($sp) +/* 095388 7F060858 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09538C 7F06085C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095390 7F060860 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 095394 7F060864 44813000 */ mtc1 $at, $f6 +/* 095398 7F060868 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 09539C 7F06086C C5AA1000 */ lwc1 $f10, 0x1000($t5) +/* 0953A0 7F060870 46060202 */ mul.s $f8, $f0, $f6 +/* 0953A4 7F060874 46045481 */ sub.s $f18, $f10, $f4 +/* 0953A8 7F060878 4612403C */ c.lt.s $f8, $f18 +/* 0953AC 7F06087C 00000000 */ nop +/* 0953B0 7F060880 4500001A */ bc1f .L7F0608EC +/* 0953B4 7F060884 00000000 */ nop +/* 0953B8 7F060888 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953BC 7F06088C 00000000 */ nop +/* 0953C0 7F060890 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953C4 7F060894 E7A00048 */ swc1 $f0, 0x48($sp) +/* 0953C8 7F060898 0FC1E135 */ jal getPlayer_c_screentop +/* 0953CC 7F06089C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0953D0 7F0608A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0953D4 7F0608A4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0953D8 7F0608A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0953DC 7F0608AC 44811000 */ mtc1 $at, $f2 +/* 0953E0 7F0608B0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0953E4 7F0608B4 C5D01000 */ lwc1 $f16, 0x1000($t6) +/* 0953E8 7F0608B8 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0953EC 7F0608BC 46025102 */ mul.s $f4, $f10, $f2 +/* 0953F0 7F0608C0 46008181 */ sub.s $f6, $f16, $f0 +/* 0953F4 7F0608C4 C5F20014 */ lwc1 $f18, 0x14($t7) +/* 0953F8 7F0608C8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0953FC 7F0608CC 46043201 */ sub.s $f8, $f6, $f4 +/* 095400 7F0608D0 46124402 */ mul.s $f16, $f8, $f18 +/* 095404 7F0608D4 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095408 7F0608D8 46025182 */ mul.s $f6, $f10, $f2 +/* 09540C 7F0608DC 46068103 */ div.s $f4, $f16, $f6 +/* 095410 7F0608E0 46044481 */ sub.s $f18, $f8, $f4 +/* 095414 7F0608E4 1000001A */ b .L7F060950 +/* 095418 7F0608E8 E7B20198 */ swc1 $f18, 0x198($sp) +.L7F0608EC: +/* 09541C 7F0608EC 0FC1E12D */ jal getPlayer_c_screenheight +/* 095420 7F0608F0 00000000 */ nop +/* 095424 7F0608F4 0FC1E12D */ jal getPlayer_c_screenheight +/* 095428 7F0608F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09542C 7F0608FC 0FC1E135 */ jal getPlayer_c_screentop +/* 095430 7F060900 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095434 7F060904 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095438 7F060908 3C188008 */ lui $t8, %hi(pPlayer) +/* 09543C 7F06090C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095440 7F060910 44818000 */ mtc1 $at, $f16 +/* 095444 7F060914 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 095448 7F060918 C7081000 */ lwc1 $f8, 0x1000($t8) +/* 09544C 7F06091C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095450 7F060920 46105182 */ mul.s $f6, $f10, $f16 +/* 095454 7F060924 46004101 */ sub.s $f4, $f8, $f0 +/* 095458 7F060928 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 09545C 7F06092C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 095460 7F060930 46062481 */ sub.s $f18, $f4, $f6 +/* 095464 7F060934 44812000 */ mtc1 $at, $f4 +/* 095468 7F060938 460A9402 */ mul.s $f16, $f18, $f10 +/* 09546C 7F06093C C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095470 7F060940 46044182 */ mul.s $f6, $f8, $f4 +/* 095474 7F060944 46068483 */ div.s $f18, $f16, $f6 +/* 095478 7F060948 46125201 */ sub.s $f8, $f10, $f18 +/* 09547C 7F06094C E7A80198 */ swc1 $f8, 0x198($sp) +.L7F060950: +/* 095480 7F060950 0FC17185 */ jal sub_GAME_7F05C614 +/* 095484 7F060954 00000000 */ nop +/* 095488 7F060958 0FC15FF4 */ jal matrix_4x4_set_identity +/* 09548C 7F06095C 27A40154 */ addiu $a0, $sp, 0x154 +/* 095490 7F060960 8FA200FC */ lw $v0, 0xfc($sp) +/* 095494 7F060964 2401001E */ li $at, 30 +/* 095498 7F060968 10410002 */ beq $v0, $at, .L7F060974 +/* 09549C 7F06096C 24010017 */ li $at, 23 +/* 0954A0 7F060970 14410010 */ bne $v0, $at, .L7F0609B4 +.L7F060974: +/* 0954A4 7F060974 3C0D8003 */ lui $t5, %hi(D_80035C70) +/* 0954A8 7F060978 25AD5C70 */ addiu $t5, %lo(D_80035C70) # addiu $t5, $t5, 0x5c70 +/* 0954AC 7F06097C 8DA10000 */ lw $at, ($t5) +/* 0954B0 7F060980 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0954B4 7F060984 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0954B8 7F060988 AC810000 */ sw $at, ($a0) +/* 0954BC 7F06098C 8DAF0004 */ lw $t7, 4($t5) +/* 0954C0 7F060990 AC8F0004 */ sw $t7, 4($a0) +/* 0954C4 7F060994 8DA10008 */ lw $at, 8($t5) +/* 0954C8 7F060998 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0954CC 7F06099C AC810008 */ sw $at, 8($a0) +/* 0954D0 7F0609A0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0954D4 7F0609A4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0954D8 7F0609A8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0954DC 7F0609AC 10000039 */ b .L7F060A94 +/* 0954E0 7F0609B0 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609B4: +/* 0954E4 7F0609B4 2401001F */ li $at, 31 +/* 0954E8 7F0609B8 14410010 */ bne $v0, $at, .L7F0609FC +/* 0954EC 7F0609BC 3C188003 */ lui $t8, %hi(D_80035C7C) +/* 0954F0 7F0609C0 27185C7C */ addiu $t8, %lo(D_80035C7C) # addiu $t8, $t8, 0x5c7c +/* 0954F4 7F0609C4 8F010000 */ lw $at, ($t8) +/* 0954F8 7F0609C8 27A400AC */ addiu $a0, $sp, 0xac +/* 0954FC 7F0609CC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095500 7F0609D0 AC810000 */ sw $at, ($a0) +/* 095504 7F0609D4 8F0E0004 */ lw $t6, 4($t8) +/* 095508 7F0609D8 AC8E0004 */ sw $t6, 4($a0) +/* 09550C 7F0609DC 8F010008 */ lw $at, 8($t8) +/* 095510 7F0609E0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095514 7F0609E4 AC810008 */ sw $at, 8($a0) +/* 095518 7F0609E8 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09551C 7F0609EC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095520 7F0609F0 27A50154 */ addiu $a1, $sp, 0x154 +/* 095524 7F0609F4 10000027 */ b .L7F060A94 +/* 095528 7F0609F8 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609FC: +/* 09552C 7F0609FC 24010001 */ li $at, 1 +/* 095530 7F060A00 14410023 */ bne $v0, $at, .L7F060A90 +/* 095534 7F060A04 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095538 7F060A08 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09553C 7F060A0C 24010011 */ li $at, 17 +/* 095540 7F060A10 3C198003 */ lui $t9, %hi(D_80035C88) +/* 095544 7F060A14 8DAF2A38 */ lw $t7, 0x2a38($t5) +/* 095548 7F060A18 27395C88 */ addiu $t9, %lo(D_80035C88) # addiu $t9, $t9, 0x5c88 +/* 09554C 7F060A1C 55E1001D */ bnel $t7, $at, .L7F060A94 +/* 095550 7F060A20 8E0D00BC */ lw $t5, 0xbc($s0) +/* 095554 7F060A24 8F210000 */ lw $at, ($t9) +/* 095558 7F060A28 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09555C 7F060A2C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095560 7F060A30 AC810000 */ sw $at, ($a0) +/* 095564 7F060A34 8F2E0004 */ lw $t6, 4($t9) +/* 095568 7F060A38 AC8E0004 */ sw $t6, 4($a0) +/* 09556C 7F060A3C 8F210008 */ lw $at, 8($t9) +/* 095570 7F060A40 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095574 7F060A44 AC810008 */ sw $at, 8($a0) +/* 095578 7F060A48 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09557C 7F060A4C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095580 7F060A50 27A50154 */ addiu $a1, $sp, 0x154 +/* 095584 7F060A54 3C01C020 */ li $at, 0xC0200000 # -2.500000 +/* 095588 7F060A58 44818000 */ mtc1 $at, $f16 +/* 09558C 7F060A5C C7A40194 */ lwc1 $f4, 0x194($sp) +/* 095590 7F060A60 3C018005 */ lui $at, %hi(D_80053E00) +/* 095594 7F060A64 C4323E00 */ lwc1 $f18, %lo(D_80053E00)($at) +/* 095598 7F060A68 46102180 */ add.s $f6, $f4, $f16 +/* 09559C 7F060A6C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0955A0 7F060A70 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 0955A4 7F060A74 44818000 */ mtc1 $at, $f16 +/* 0955A8 7F060A78 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0955AC 7F060A7C E7A60194 */ swc1 $f6, 0x194($sp) +/* 0955B0 7F060A80 46125200 */ add.s $f8, $f10, $f18 +/* 0955B4 7F060A84 46102180 */ add.s $f6, $f4, $f16 +/* 0955B8 7F060A88 E7A80198 */ swc1 $f8, 0x198($sp) +/* 0955BC 7F060A8C E7A6019C */ swc1 $f6, 0x19c($sp) +.L7F060A90: +/* 0955C0 7F060A90 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F060A94: +/* 0955C4 7F060A94 51A00017 */ beql $t5, $zero, .L7F060AF4 +/* 0955C8 7F060A98 44802000 */ mtc1 $zero, $f4 +/* 0955CC 7F060A9C C7AA0194 */ lwc1 $f10, 0x194($sp) +/* 0955D0 7F060AA0 C61200AC */ lwc1 $f18, 0xac($s0) +/* 0955D4 7F060AA4 C7A40198 */ lwc1 $f4, 0x198($sp) +/* 0955D8 7F060AA8 2604007C */ addiu $a0, $s0, 0x7c +/* 0955DC 7F060AAC 46125200 */ add.s $f8, $f10, $f18 +/* 0955E0 7F060AB0 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 0955E4 7F060AB4 27A50154 */ addiu $a1, $sp, 0x154 +/* 0955E8 7F060AB8 E7A80194 */ swc1 $f8, 0x194($sp) +/* 0955EC 7F060ABC C61000B0 */ lwc1 $f16, 0xb0($s0) +/* 0955F0 7F060AC0 46102180 */ add.s $f6, $f4, $f16 +/* 0955F4 7F060AC4 E7A60198 */ swc1 $f6, 0x198($sp) +/* 0955F8 7F060AC8 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 0955FC 7F060ACC 46125200 */ add.s $f8, $f10, $f18 +/* 095600 7F060AD0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095604 7F060AD4 E7A8019C */ swc1 $f8, 0x19c($sp) +/* 095608 7F060AD8 44800000 */ mtc1 $zero, $f0 +/* 09560C 7F060ADC 00000000 */ nop +/* 095610 7F060AE0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 095614 7F060AE4 E7A00188 */ swc1 $f0, 0x188($sp) +/* 095618 7F060AE8 1000000A */ b .L7F060B14 +/* 09561C 7F060AEC E7A0018C */ swc1 $f0, 0x18c($sp) +/* 095620 7F060AF0 44802000 */ mtc1 $zero, $f4 +.L7F060AF4: +/* 095624 7F060AF4 44808000 */ mtc1 $zero, $f16 +/* 095628 7F060AF8 44803000 */ mtc1 $zero, $f6 +/* 09562C 7F060AFC 44805000 */ mtc1 $zero, $f10 +/* 095630 7F060B00 44800000 */ mtc1 $zero, $f0 +/* 095634 7F060B04 E6040078 */ swc1 $f4, 0x78($s0) +/* 095638 7F060B08 E610006C */ swc1 $f16, 0x6c($s0) +/* 09563C 7F060B0C E6060070 */ swc1 $f6, 0x70($s0) +/* 095640 7F060B10 E60A0074 */ swc1 $f10, 0x74($s0) +.L7F060B14: +/* 095644 7F060B14 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 095648 7F060B18 44050000 */ mfc1 $a1, $f0 +/* 09564C 7F060B1C 44060000 */ mfc1 $a2, $f0 +/* 095650 7F060B20 E7B20010 */ swc1 $f18, 0x10($sp) +/* 095654 7F060B24 C60800D0 */ lwc1 $f8, 0xd0($s0) +/* 095658 7F060B28 44070000 */ mfc1 $a3, $f0 +/* 09565C 7F060B2C 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095660 7F060B30 E7A80014 */ swc1 $f8, 0x14($sp) +/* 095664 7F060B34 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 095668 7F060B38 E7A40018 */ swc1 $f4, 0x18($sp) +/* 09566C 7F060B3C C61000D8 */ lwc1 $f16, 0xd8($s0) +/* 095670 7F060B40 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 095674 7F060B44 C60600DC */ lwc1 $f6, 0xdc($s0) +/* 095678 7F060B48 E7A60020 */ swc1 $f6, 0x20($sp) +/* 09567C 7F060B4C C60A00E0 */ lwc1 $f10, 0xe0($s0) +/* 095680 7F060B50 0FC16642 */ jal sub_GAME_7F059908 +/* 095684 7F060B54 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 095688 7F060B58 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09568C 7F060B5C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095690 7F060B60 27A50154 */ addiu $a1, $sp, 0x154 +/* 095694 7F060B64 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095698 7F060B68 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 09569C 7F060B6C C7B00198 */ lwc1 $f16, 0x198($sp) +/* 0956A0 7F060B70 C60601CC */ lwc1 $f6, 0x1cc($s0) +/* 0956A4 7F060B74 46089101 */ sub.s $f4, $f18, $f8 +/* 0956A8 7F060B78 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 0956AC 7F060B7C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0956B0 7F060B80 46068281 */ sub.s $f10, $f16, $f6 +/* 0956B4 7F060B84 44062000 */ mfc1 $a2, $f4 +/* 0956B8 7F060B88 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956BC 7F060B8C 46089101 */ sub.s $f4, $f18, $f8 +/* 0956C0 7F060B90 44075000 */ mfc1 $a3, $f10 +/* 0956C4 7F060B94 24050000 */ li $a1, 0 +/* 0956C8 7F060B98 0FC1673A */ jal matrix_4x4_align +/* 0956CC 7F060B9C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0956D0 7F060BA0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956D4 7F060BA4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0956D8 7F060BA8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0956DC 7F060BAC 27A40154 */ addiu $a0, $sp, 0x154 +/* 0956E0 7F060BB0 0FC16008 */ jal matrix_4x4_copy +/* 0956E4 7F060BB4 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956E8 7F060BB8 27A40194 */ addiu $a0, $sp, 0x194 +/* 0956EC 7F060BBC 0FC16266 */ jal matrix_4x4_set_position +/* 0956F0 7F060BC0 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956F4 7F060BC4 26050228 */ addiu $a1, $s0, 0x228 +/* 0956F8 7F060BC8 AFA50044 */ sw $a1, 0x44($sp) +/* 0956FC 7F060BCC 0FC16008 */ jal matrix_4x4_copy +/* 095700 7F060BD0 27A40264 */ addiu $a0, $sp, 0x264 +/* 095704 7F060BD4 26040268 */ addiu $a0, $s0, 0x268 +/* 095708 7F060BD8 AFA40040 */ sw $a0, 0x40($sp) +/* 09570C 7F060BDC 0FC16008 */ jal matrix_4x4_copy +/* 095710 7F060BE0 260502A8 */ addiu $a1, $s0, 0x2a8 +/* 095714 7F060BE4 0FC1E111 */ jal sub_GAME_7F078444 +/* 095718 7F060BE8 00000000 */ nop +/* 09571C 7F060BEC 00402025 */ move $a0, $v0 +/* 095720 7F060BF0 8FA50044 */ lw $a1, 0x44($sp) +/* 095724 7F060BF4 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 095728 7F060BF8 8FA60040 */ lw $a2, 0x40($sp) +/* 09572C 7F060BFC 240F0001 */ li $t7, 1 +/* 095730 7F060C00 A20F000F */ sb $t7, 0xf($s0) +/* 095734 7F060C04 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 095738 7F060C08 8FA400FC */ lw $a0, 0xfc($sp) +/* 09573C 7F060C0C 10400017 */ beqz $v0, .L7F060C6C +/* 095740 7F060C10 8FA400FC */ lw $a0, 0xfc($sp) +/* 095744 7F060C14 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095748 7F060C18 24050800 */ li $a1, 2048 +/* 09574C 7F060C1C 10400013 */ beqz $v0, .L7F060C6C +/* 095750 7F060C20 8FA400FC */ lw $a0, 0xfc($sp) +/* 095754 7F060C24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095758 7F060C28 24052000 */ li $a1, 8192 +/* 09575C 7F060C2C 54400010 */ bnezl $v0, .L7F060C70 +/* 095760 7F060C30 A200000F */ sb $zero, 0xf($s0) +/* 095764 7F060C34 8E020024 */ lw $v0, 0x24($s0) +/* 095768 7F060C38 24010006 */ li $at, 6 +/* 09576C 7F060C3C 1041000B */ beq $v0, $at, .L7F060C6C +/* 095770 7F060C40 24010007 */ li $at, 7 +/* 095774 7F060C44 5041000A */ beql $v0, $at, .L7F060C70 +/* 095778 7F060C48 A200000F */ sb $zero, 0xf($s0) +/* 09577C 7F060C4C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 095780 7F060C50 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095784 7F060C54 50400006 */ beql $v0, $zero, .L7F060C70 +/* 095788 7F060C58 A200000F */ sb $zero, 0xf($s0) +/* 09578C 7F060C5C 0FC173C0 */ jal get_itemtype_in_hand +/* 095790 7F060C60 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095794 7F060C64 54400003 */ bnezl $v0, .L7F060C74 +/* 095798 7F060C68 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C6C: +/* 09579C 7F060C6C A200000F */ sb $zero, 0xf($s0) +.L7F060C70: +/* 0957A0 7F060C70 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C74: +/* 0957A4 7F060C74 8FA400FC */ lw $a0, 0xfc($sp) +/* 0957A8 7F060C78 5F000007 */ bgtzl $t8, .L7F060C98 +/* 0957AC 7F060C7C 8219000F */ lb $t9, 0xf($s0) +/* 0957B0 7F060C80 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0957B4 7F060C84 24050002 */ li $a1, 2 +/* 0957B8 7F060C88 50400003 */ beql $v0, $zero, .L7F060C98 +/* 0957BC 7F060C8C 8219000F */ lb $t9, 0xf($s0) +/* 0957C0 7F060C90 A200000F */ sb $zero, 0xf($s0) +/* 0957C4 7F060C94 8219000F */ lb $t9, 0xf($s0) +.L7F060C98: +/* 0957C8 7F060C98 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0957CC 7F060C9C 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0957D0 7F060CA0 532002CD */ beql $t9, $zero, .L7F0617D8 +/* 0957D4 7F060CA4 8FAF00FC */ lw $t7, 0xfc($sp) +/* 0957D8 7F060CA8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0957DC 7F060CAC 000D7940 */ sll $t7, $t5, 5 +/* 0957E0 7F060CB0 00001825 */ move $v1, $zero +/* 0957E4 7F060CB4 01CF1021 */ addu $v0, $t6, $t7 +/* 0957E8 7F060CB8 8444081E */ lh $a0, 0x81e($v0) +/* 0957EC 7F060CBC 24420810 */ addiu $v0, $v0, 0x810 +/* 0957F0 7F060CC0 AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0957F4 7F060CC4 0004C180 */ sll $t8, $a0, 6 +/* 0957F8 7F060CC8 03002025 */ move $a0, $t8 +/* 0957FC 7F060CCC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 095800 7F060CD0 AFA00100 */ sw $zero, 0x100($sp) +/* 095804 7F060CD4 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095808 7F060CD8 AFA202A4 */ sw $v0, 0x2a4($sp) +/* 09580C 7F060CDC 8FA30100 */ lw $v1, 0x100($sp) +/* 095810 7F060CE0 872D000E */ lh $t5, 0xe($t9) +/* 095814 7F060CE4 19A0000D */ blez $t5, .L7F060D1C +/* 095818 7F060CE8 00402025 */ move $a0, $v0 +/* 09581C 7F060CEC AFA30100 */ sw $v1, 0x100($sp) +.L7F060CF0: +/* 095820 7F060CF0 0FC15FF4 */ jal matrix_4x4_set_identity +/* 095824 7F060CF4 AFA40044 */ sw $a0, 0x44($sp) +/* 095828 7F060CF8 8FAE01A0 */ lw $t6, 0x1a0($sp) +/* 09582C 7F060CFC 8FA30100 */ lw $v1, 0x100($sp) +/* 095830 7F060D00 8FA40044 */ lw $a0, 0x44($sp) +/* 095834 7F060D04 85CF000E */ lh $t7, 0xe($t6) +/* 095838 7F060D08 24630001 */ addiu $v1, $v1, 1 +/* 09583C 7F060D0C 24840040 */ addiu $a0, $a0, 0x40 +/* 095840 7F060D10 006F082A */ slt $at, $v1, $t7 +/* 095844 7F060D14 5420FFF6 */ bnezl $at, .L7F060CF0 +/* 095848 7F060D18 AFA30100 */ sw $v1, 0x100($sp) +.L7F060D1C: +/* 09584C 7F060D1C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 095850 7F060D20 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 095854 7F060D24 260402F8 */ addiu $a0, $s0, 0x2f8 +/* 095858 7F060D28 8FA501A0 */ lw $a1, 0x1a0($sp) +/* 09585C 7F060D2C AFA40044 */ sw $a0, 0x44($sp) +/* 095860 7F060D30 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 095864 7F060D34 26060318 */ addiu $a2, $s0, 0x318 +/* 095868 7F060D38 8FA40044 */ lw $a0, 0x44($sp) +/* 09586C 7F060D3C 0FC17A5E */ jal sub_GAME_7F05E978 +/* 095870 7F060D40 24050001 */ li $a1, 1 +/* 095874 7F060D44 8FA40044 */ lw $a0, 0x44($sp) +/* 095878 7F060D48 0FC17AA5 */ jal sub_GAME_7F05EA94 +/* 09587C 7F060D4C 8205000E */ lb $a1, 0xe($s0) +/* 095880 7F060D50 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095884 7F060D54 8F020008 */ lw $v0, 8($t8) +/* 095888 7F060D58 8C440004 */ lw $a0, 4($v0) +/* 09588C 7F060D5C 50800008 */ beql $a0, $zero, .L7F060D80 +/* 095890 7F060D60 8C43000C */ lw $v1, 0xc($v0) +/* 095894 7F060D64 8C830004 */ lw $v1, 4($a0) +/* 095898 7F060D68 94790004 */ lhu $t9, 4($v1) +/* 09589C 7F060D6C 00196880 */ sll $t5, $t9, 2 +/* 0958A0 7F060D70 020D7021 */ addu $t6, $s0, $t5 +/* 0958A4 7F060D74 25CF0318 */ addiu $t7, $t6, 0x318 +/* 0958A8 7F060D78 AFAF010C */ sw $t7, 0x10c($sp) +/* 0958AC 7F060D7C 8C43000C */ lw $v1, 0xc($v0) +.L7F060D80: +/* 0958B0 7F060D80 50600004 */ beql $v1, $zero, .L7F060D94 +/* 0958B4 7F060D84 8FB902A4 */ lw $t9, 0x2a4($sp) +/* 0958B8 7F060D88 8C780004 */ lw $t8, 4($v1) +/* 0958BC 7F060D8C AFB80108 */ sw $t8, 0x108($sp) +/* 0958C0 7F060D90 8FB902A4 */ lw $t9, 0x2a4($sp) +.L7F060D94: +/* 0958C4 7F060D94 24050400 */ li $a1, 1024 +/* 0958C8 7F060D98 AE190304 */ sw $t9, 0x304($s0) +/* 0958CC 7F060D9C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0958D0 7F060DA0 8FA400FC */ lw $a0, 0xfc($sp) +/* 0958D4 7F060DA4 10400008 */ beqz $v0, .L7F060DC8 +/* 0958D8 7F060DA8 00000000 */ nop +/* 0958DC 7F060DAC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0958E0 7F060DB0 24010001 */ li $at, 1 +/* 0958E4 7F060DB4 15A10004 */ bne $t5, $at, .L7F060DC8 +/* 0958E8 7F060DB8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0958EC 7F060DBC 44816000 */ mtc1 $at, $f12 +/* 0958F0 7F060DC0 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 0958F4 7F060DC4 27A50264 */ addiu $a1, $sp, 0x264 +.L7F060DC8: +/* 0958F8 7F060DC8 3C018005 */ lui $at, %hi(D_80053E04) +/* 0958FC 7F060DCC C42C3E04 */ lwc1 $f12, %lo(D_80053E04)($at) +/* 095900 7F060DD0 0FC1629F */ jal matrix_scalar_multiply +/* 095904 7F060DD4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095908 7F060DD8 27A40264 */ addiu $a0, $sp, 0x264 +/* 09590C 7F060DDC 0FC16008 */ jal matrix_4x4_copy +/* 095910 7F060DE0 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095914 7F060DE4 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095918 7F060DE8 3C0E8004 */ lui $t6, %hi(weapon_gun_revolver) +/* 09591C 7F060DEC 25CEC76C */ addiu $t6, %lo(weapon_gun_revolver) # addiu $t6, $t6, -0x3894 +/* 095920 7F060DF0 8DF80004 */ lw $t8, 4($t7) +/* 095924 7F060DF4 55D80078 */ bnel $t6, $t8, .L7F060FD8 +/* 095928 7F060DF8 8FA2010C */ lw $v0, 0x10c($sp) +/* 09592C 7F060DFC 8DE20008 */ lw $v0, 8($t7) +/* 095930 7F060E00 8FB900FC */ lw $t9, 0xfc($sp) +/* 095934 7F060E04 24010012 */ li $at, 18 +/* 095938 7F060E08 8C430010 */ lw $v1, 0x10($v0) +/* 09593C 7F060E0C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095940 7F060E10 50600041 */ beql $v1, $zero, .L7F060F18 +/* 095944 7F060E14 8C430014 */ lw $v1, 0x14($v0) +/* 095948 7F060E18 44806000 */ mtc1 $zero, $f12 +/* 09594C 7F060E1C 17210021 */ bne $t9, $at, .L7F060EA4 +/* 095950 7F060E20 8C640004 */ lw $a0, 4($v1) +/* 095954 7F060E24 8E0D0024 */ lw $t5, 0x24($s0) +/* 095958 7F060E28 24010001 */ li $at, 1 +/* 09595C 7F060E2C 55A10012 */ bnel $t5, $at, .L7F060E78 +/* 095960 7F060E30 8E18002C */ lw $t8, 0x2c($s0) +/* 095964 7F060E34 8E18002C */ lw $t8, 0x2c($s0) +/* 095968 7F060E38 8E0E0020 */ lw $t6, 0x20($s0) +/* 09596C 7F060E3C 3C018005 */ lui $at, %hi(D_80053E08) +/* 095970 7F060E40 00187880 */ sll $t7, $t8, 2 +/* 095974 7F060E44 01F87823 */ subu $t7, $t7, $t8 +/* 095978 7F060E48 000F7840 */ sll $t7, $t7, 1 +/* 09597C 7F060E4C 01CFC823 */ subu $t9, $t6, $t7 +/* 095980 7F060E50 272D001E */ addiu $t5, $t9, 0x1e +/* 095984 7F060E54 448D8000 */ mtc1 $t5, $f16 +/* 095988 7F060E58 C42A3E08 */ lwc1 $f10, %lo(D_80053E08)($at) +/* 09598C 7F060E5C 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095990 7F060E60 468081A0 */ cvt.s.w $f6, $f16 +/* 095994 7F060E64 44814000 */ mtc1 $at, $f8 +/* 095998 7F060E68 460A3482 */ mul.s $f18, $f6, $f10 +/* 09599C 7F060E6C 1000001D */ b .L7F060EE4 +/* 0959A0 7F060E70 46089303 */ div.s $f12, $f18, $f8 +/* 0959A4 7F060E74 8E18002C */ lw $t8, 0x2c($s0) +.L7F060E78: +/* 0959A8 7F060E78 240E0006 */ li $t6, 6 +/* 0959AC 7F060E7C 3C018005 */ lui $at, %hi(D_80053E0C) +/* 0959B0 7F060E80 01D87823 */ subu $t7, $t6, $t8 +/* 0959B4 7F060E84 448F2000 */ mtc1 $t7, $f4 +/* 0959B8 7F060E88 C4263E0C */ lwc1 $f6, %lo(D_80053E0C)($at) +/* 0959BC 7F060E8C 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 0959C0 7F060E90 46802420 */ cvt.s.w $f16, $f4 +/* 0959C4 7F060E94 44819000 */ mtc1 $at, $f18 +/* 0959C8 7F060E98 46068282 */ mul.s $f10, $f16, $f6 +/* 0959CC 7F060E9C 10000011 */ b .L7F060EE4 +/* 0959D0 7F060EA0 46125303 */ div.s $f12, $f10, $f18 +.L7F060EA4: +/* 0959D4 7F060EA4 8E190024 */ lw $t9, 0x24($s0) +/* 0959D8 7F060EA8 24010001 */ li $at, 1 +/* 0959DC 7F060EAC 1721000D */ bne $t9, $at, .L7F060EE4 +/* 0959E0 7F060EB0 00000000 */ nop +/* 0959E4 7F060EB4 8E020020 */ lw $v0, 0x20($s0) +/* 0959E8 7F060EB8 28410006 */ slti $at, $v0, 6 +/* 0959EC 7F060EBC 10200009 */ beqz $at, .L7F060EE4 +/* 0959F0 7F060EC0 00000000 */ nop +/* 0959F4 7F060EC4 44824000 */ mtc1 $v0, $f8 +/* 0959F8 7F060EC8 3C018005 */ lui $at, %hi(D_80053E10) +/* 0959FC 7F060ECC C4303E10 */ lwc1 $f16, %lo(D_80053E10)($at) +/* 095A00 7F060ED0 46804120 */ cvt.s.w $f4, $f8 +/* 095A04 7F060ED4 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095A08 7F060ED8 44815000 */ mtc1 $at, $f10 +/* 095A0C 7F060EDC 46102182 */ mul.s $f6, $f4, $f16 +/* 095A10 7F060EE0 460A3303 */ div.s $f12, $f6, $f10 +.L7F060EE4: +/* 095A14 7F060EE4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095A18 7F060EE8 AFA4009C */ sw $a0, 0x9c($sp) +/* 095A1C 7F060EEC 8FA4009C */ lw $a0, 0x9c($sp) +/* 095A20 7F060EF0 0FC16266 */ jal matrix_4x4_set_position +/* 095A24 7F060EF4 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A28 7F060EF8 8FA602A4 */ lw $a2, 0x2a4($sp) +/* 095A2C 7F060EFC 27A40264 */ addiu $a0, $sp, 0x264 +/* 095A30 7F060F00 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A34 7F060F04 0FC16032 */ jal matrix_4x4_multiply +/* 095A38 7F060F08 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 095A3C 7F060F0C 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 095A40 7F060F10 8DA20008 */ lw $v0, 8($t5) +/* 095A44 7F060F14 8C430014 */ lw $v1, 0x14($v0) +.L7F060F18: +/* 095A48 7F060F18 5060002F */ beql $v1, $zero, .L7F060FD8 +/* 095A4C 7F060F1C 8FA2010C */ lw $v0, 0x10c($sp) +/* 095A50 7F060F20 8E0E0024 */ lw $t6, 0x24($s0) +/* 095A54 7F060F24 24010001 */ li $at, 1 +/* 095A58 7F060F28 8C640004 */ lw $a0, 4($v1) +/* 095A5C 7F060F2C 15C10022 */ bne $t6, $at, .L7F060FB8 +/* 095A60 7F060F30 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A64 7F060F34 8E020020 */ lw $v0, 0x20($s0) +/* 095A68 7F060F38 24180006 */ li $t8, 6 +/* 095A6C 7F060F3C 28410003 */ slti $at, $v0, 3 +/* 095A70 7F060F40 1020000C */ beqz $at, .L7F060F74 +/* 095A74 7F060F44 03027823 */ subu $t7, $t8, $v0 +/* 095A78 7F060F48 44829000 */ mtc1 $v0, $f18 +/* 095A7C 7F060F4C 3C018005 */ lui $at, %hi(D_80053E14) +/* 095A80 7F060F50 C4303E14 */ lwc1 $f16, %lo(D_80053E14)($at) +/* 095A84 7F060F54 46809220 */ cvt.s.w $f8, $f18 +/* 095A88 7F060F58 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095A8C 7F060F5C 44815000 */ mtc1 $at, $f10 +/* 095A90 7F060F60 46004107 */ neg.s $f4, $f8 +/* 095A94 7F060F64 46102002 */ mul.s $f0, $f4, $f16 +/* 095A98 7F060F68 46000180 */ add.s $f6, $f0, $f0 +/* 095A9C 7F060F6C 1000000B */ b .L7F060F9C +/* 095AA0 7F060F70 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F74: +/* 095AA4 7F060F74 448F9000 */ mtc1 $t7, $f18 +/* 095AA8 7F060F78 3C018005 */ lui $at, %hi(D_80053E18) +/* 095AAC 7F060F7C C4303E18 */ lwc1 $f16, %lo(D_80053E18)($at) +/* 095AB0 7F060F80 46809220 */ cvt.s.w $f8, $f18 +/* 095AB4 7F060F84 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095AB8 7F060F88 44815000 */ mtc1 $at, $f10 +/* 095ABC 7F060F8C 46004107 */ neg.s $f4, $f8 +/* 095AC0 7F060F90 46102002 */ mul.s $f0, $f4, $f16 +/* 095AC4 7F060F94 46000180 */ add.s $f6, $f0, $f0 +/* 095AC8 7F060F98 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F9C: +/* 095ACC 7F060F9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 095AD0 7F060FA0 AFA40094 */ sw $a0, 0x94($sp) +/* 095AD4 7F060FA4 8FA40094 */ lw $a0, 0x94($sp) +/* 095AD8 7F060FA8 0FC16266 */ jal matrix_4x4_set_position +/* 095ADC 7F060FAC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AE0 7F060FB0 10000004 */ b .L7F060FC4 +/* 095AE4 7F060FB4 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FB8: +/* 095AE8 7F060FB8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095AEC 7F060FBC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AF0 7F060FC0 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FC4: +/* 095AF4 7F060FC4 27A40264 */ addiu $a0, $sp, 0x264 +/* 095AF8 7F060FC8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AFC 7F060FCC 0FC16032 */ jal matrix_4x4_multiply +/* 095B00 7F060FD0 24C60100 */ addiu $a2, $a2, 0x100 +/* 095B04 7F060FD4 8FA2010C */ lw $v0, 0x10c($sp) +.L7F060FD8: +/* 095B08 7F060FD8 50400003 */ beql $v0, $zero, .L7F060FE8 +/* 095B0C 7F060FDC 8FB90108 */ lw $t9, 0x108($sp) +/* 095B10 7F060FE0 AC400000 */ sw $zero, ($v0) +/* 095B14 7F060FE4 8FB90108 */ lw $t9, 0x108($sp) +.L7F060FE8: +/* 095B18 7F060FE8 53200142 */ beql $t9, $zero, .L7F0614F4 +/* 095B1C 7F060FEC C6100260 */ lwc1 $f16, 0x260($s0) +/* 095B20 7F060FF0 0C002914 */ jal get_random_value +/* 095B24 7F060FF4 00000000 */ nop +/* 095B28 7F060FF8 44829000 */ mtc1 $v0, $f18 +/* 095B2C 7F060FFC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B30 7F061000 04410004 */ bgez $v0, .L7F061014 +/* 095B34 7F061004 46809220 */ cvt.s.w $f8, $f18 +/* 095B38 7F061008 44812000 */ mtc1 $at, $f4 +/* 095B3C 7F06100C 00000000 */ nop +/* 095B40 7F061010 46044200 */ add.s $f8, $f8, $f4 +.L7F061014: +/* 095B44 7F061014 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095B48 7F061018 44818000 */ mtc1 $at, $f16 +/* 095B4C 7F06101C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 095B50 7F061020 44815000 */ mtc1 $at, $f10 +/* 095B54 7F061024 46104182 */ mul.s $f6, $f8, $f16 +/* 095B58 7F061028 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 095B5C 7F06102C 44812000 */ mtc1 $at, $f4 +/* 095B60 7F061030 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 095B64 7F061034 8FA400FC */ lw $a0, 0xfc($sp) +/* 095B68 7F061038 24050001 */ li $a1, 1 +/* 095B6C 7F06103C 460A3482 */ mul.s $f18, $f6, $f10 +/* 095B70 7F061040 46049200 */ add.s $f8, $f18, $f4 +/* 095B74 7F061044 E7A80080 */ swc1 $f8, 0x80($sp) +/* 095B78 7F061048 C5B00000 */ lwc1 $f16, ($t5) +/* 095B7C 7F06104C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095B80 7F061050 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 095B84 7F061054 10400018 */ beqz $v0, .L7F0610B8 +/* 095B88 7F061058 8FA40108 */ lw $a0, 0x108($sp) +/* 095B8C 7F06105C 0C002914 */ jal get_random_value +/* 095B90 7F061060 00000000 */ nop +/* 095B94 7F061064 44823000 */ mtc1 $v0, $f6 +/* 095B98 7F061068 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B9C 7F06106C 04410004 */ bgez $v0, .L7F061080 +/* 095BA0 7F061070 468032A0 */ cvt.s.w $f10, $f6 +/* 095BA4 7F061074 44819000 */ mtc1 $at, $f18 +/* 095BA8 7F061078 00000000 */ nop +/* 095BAC 7F06107C 46125280 */ add.s $f10, $f10, $f18 +.L7F061080: +/* 095BB0 7F061080 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095BB4 7F061084 44812000 */ mtc1 $at, $f4 +/* 095BB8 7F061088 3C018005 */ lui $at, %hi(D_80053E1C) +/* 095BBC 7F06108C C4303E1C */ lwc1 $f16, %lo(D_80053E1C)($at) +/* 095BC0 7F061090 46045202 */ mul.s $f8, $f10, $f4 +/* 095BC4 7F061094 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BC8 7F061098 46104302 */ mul.s $f12, $f8, $f16 +/* 095BCC 7F06109C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095BD0 7F0610A0 00000000 */ nop +/* 095BD4 7F0610A4 8FA40108 */ lw $a0, 0x108($sp) +/* 095BD8 7F0610A8 0FC16266 */ jal matrix_4x4_set_position +/* 095BDC 7F0610AC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BE0 7F0610B0 10000004 */ b .L7F0610C4 +/* 095BE4 7F0610B4 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610B8: +/* 095BE8 7F0610B8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095BEC 7F0610BC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BF0 7F0610C0 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610C4: +/* 095BF4 7F0610C4 0FC1629F */ jal matrix_scalar_multiply +/* 095BF8 7F0610C8 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BFC 7F0610CC C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095C00 7F0610D0 0FC16285 */ jal matrix_column_3_scalar_multiply +/* 095C04 7F0610D4 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C08 7F0610D8 27A40264 */ addiu $a0, $sp, 0x264 +/* 095C0C 7F0610DC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095C10 7F0610E0 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C14 7F0610E4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095C18 7F0610E8 27A40224 */ addiu $a0, $sp, 0x224 +/* 095C1C 7F0610EC 0FC16008 */ jal matrix_4x4_copy +/* 095C20 7F0610F0 24A50040 */ addiu $a1, $a1, 0x40 +/* 095C24 7F0610F4 C7A60254 */ lwc1 $f6, 0x254($sp) +/* 095C28 7F0610F8 E60602E8 */ swc1 $f6, 0x2e8($s0) +/* 095C2C 7F0610FC C7B20258 */ lwc1 $f18, 0x258($sp) +/* 095C30 7F061100 E61202EC */ swc1 $f18, 0x2ec($s0) +/* 095C34 7F061104 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 095C38 7F061108 0FC1E111 */ jal sub_GAME_7F078444 +/* 095C3C 7F06110C E60A02F0 */ swc1 $f10, 0x2f0($s0) +/* 095C40 7F061110 00402025 */ move $a0, $v0 +/* 095C44 7F061114 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 095C48 7F061118 260502E8 */ addiu $a1, $s0, 0x2e8 +/* 095C4C 7F06111C C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 095C50 7F061120 820E000D */ lb $t6, 0xd($s0) +/* 095C54 7F061124 46002207 */ neg.s $f8, $f4 +/* 095C58 7F061128 11C000EE */ beqz $t6, .L7F0614E4 +/* 095C5C 7F06112C E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 095C60 7F061130 8FB8010C */ lw $t8, 0x10c($sp) +/* 095C64 7F061134 240F0001 */ li $t7, 1 +/* 095C68 7F061138 53000003 */ beql $t8, $zero, .L7F061148 +/* 095C6C 7F06113C 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095C70 7F061140 AF0F0000 */ sw $t7, ($t8) +/* 095C74 7F061144 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F061148: +/* 095C78 7F061148 8F2D0008 */ lw $t5, 8($t9) +/* 095C7C 7F06114C 8DA30008 */ lw $v1, 8($t5) +/* 095C80 7F061150 5060006D */ beql $v1, $zero, .L7F061308 +/* 095C84 7F061154 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095C88 7F061158 8C620004 */ lw $v0, 4($v1) +/* 095C8C 7F06115C C7A60224 */ lwc1 $f6, 0x224($sp) +/* 095C90 7F061160 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 095C94 7F061164 C4500000 */ lwc1 $f16, ($v0) +/* 095C98 7F061168 C44A0004 */ lwc1 $f10, 4($v0) +/* 095C9C 7F06116C 46068482 */ mul.s $f18, $f16, $f6 +/* 095CA0 7F061170 C4460008 */ lwc1 $f6, 8($v0) +/* 095CA4 7F061174 46045202 */ mul.s $f8, $f10, $f4 +/* 095CA8 7F061178 C7AA0244 */ lwc1 $f10, 0x244($sp) +/* 095CAC 7F06117C 460A3102 */ mul.s $f4, $f6, $f10 +/* 095CB0 7F061180 46089400 */ add.s $f16, $f18, $f8 +/* 095CB4 7F061184 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 095CB8 7F061188 46048480 */ add.s $f18, $f16, $f4 +/* 095CBC 7F06118C C7B00228 */ lwc1 $f16, 0x228($sp) +/* 095CC0 7F061190 46124180 */ add.s $f6, $f8, $f18 +/* 095CC4 7F061194 C7B20238 */ lwc1 $f18, 0x238($sp) +/* 095CC8 7F061198 E7A60084 */ swc1 $f6, 0x84($sp) +/* 095CCC 7F06119C C44A0000 */ lwc1 $f10, ($v0) +/* 095CD0 7F0611A0 C4480004 */ lwc1 $f8, 4($v0) +/* 095CD4 7F0611A4 46105102 */ mul.s $f4, $f10, $f16 +/* 095CD8 7F0611A8 C4500008 */ lwc1 $f16, 8($v0) +/* 095CDC 7F0611AC 46124182 */ mul.s $f6, $f8, $f18 +/* 095CE0 7F0611B0 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 095CE4 7F0611B4 46088482 */ mul.s $f18, $f16, $f8 +/* 095CE8 7F0611B8 46062280 */ add.s $f10, $f4, $f6 +/* 095CEC 7F0611BC C7A60258 */ lwc1 $f6, 0x258($sp) +/* 095CF0 7F0611C0 46125100 */ add.s $f4, $f10, $f18 +/* 095CF4 7F0611C4 C7AA022C */ lwc1 $f10, 0x22c($sp) +/* 095CF8 7F0611C8 46043400 */ add.s $f16, $f6, $f4 +/* 095CFC 7F0611CC C7A4023C */ lwc1 $f4, 0x23c($sp) +/* 095D00 7F0611D0 E7B00088 */ swc1 $f16, 0x88($sp) +/* 095D04 7F0611D4 C4480000 */ lwc1 $f8, ($v0) +/* 095D08 7F0611D8 C4460004 */ lwc1 $f6, 4($v0) +/* 095D0C 7F0611DC 460A4482 */ mul.s $f18, $f8, $f10 +/* 095D10 7F0611E0 C44A0008 */ lwc1 $f10, 8($v0) +/* 095D14 7F0611E4 46043402 */ mul.s $f16, $f6, $f4 +/* 095D18 7F0611E8 C7A6024C */ lwc1 $f6, 0x24c($sp) +/* 095D1C 7F0611EC 46065102 */ mul.s $f4, $f10, $f6 +/* 095D20 7F0611F0 46109200 */ add.s $f8, $f18, $f16 +/* 095D24 7F0611F4 C7B0025C */ lwc1 $f16, 0x25c($sp) +/* 095D28 7F0611F8 46044480 */ add.s $f18, $f8, $f4 +/* 095D2C 7F0611FC 46128280 */ add.s $f10, $f16, $f18 +/* 095D30 7F061200 0C002914 */ jal get_random_value +/* 095D34 7F061204 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 095D38 7F061208 44823000 */ mtc1 $v0, $f6 +/* 095D3C 7F06120C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095D40 7F061210 04410005 */ bgez $v0, .L7F061228 +/* 095D44 7F061214 46803220 */ cvt.s.w $f8, $f6 +/* 095D48 7F061218 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095D4C 7F06121C 44812000 */ mtc1 $at, $f4 +/* 095D50 7F061220 00000000 */ nop +/* 095D54 7F061224 46044200 */ add.s $f8, $f8, $f4 +.L7F061228: +/* 095D58 7F061228 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095D5C 7F06122C 44818000 */ mtc1 $at, $f16 +/* 095D60 7F061230 3C018005 */ lui $at, %hi(D_80053E20) +/* 095D64 7F061234 C42A3E20 */ lwc1 $f10, %lo(D_80053E20)($at) +/* 095D68 7F061238 46104482 */ mul.s $f18, $f8, $f16 +/* 095D6C 7F06123C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 095D70 7F061240 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 095D74 7F061244 46002207 */ neg.s $f8, $f4 +/* 095D78 7F061248 460A9182 */ mul.s $f6, $f18, $f10 +/* 095D7C 7F06124C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 095D80 7F061250 46008487 */ neg.s $f18, $f16 +/* 095D84 7F061254 44064000 */ mfc1 $a2, $f8 +/* 095D88 7F061258 44079000 */ mfc1 $a3, $f18 +/* 095D8C 7F06125C 44053000 */ mfc1 $a1, $f6 +/* 095D90 7F061260 46005187 */ neg.s $f6, $f10 +/* 095D94 7F061264 0FC1673A */ jal matrix_4x4_align +/* 095D98 7F061268 E7A60010 */ swc1 $f6, 0x10($sp) +/* 095D9C 7F06126C 3C018005 */ lui $at, %hi(D_80053E24) +/* 095DA0 7F061270 C4243E24 */ lwc1 $f4, %lo(D_80053E24)($at) +/* 095DA4 7F061274 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 095DA8 7F061278 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095DAC 7F06127C 46082302 */ mul.s $f12, $f4, $f8 +/* 095DB0 7F061280 0FC1629F */ jal matrix_scalar_multiply +/* 095DB4 7F061284 00000000 */ nop +/* 095DB8 7F061288 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095DBC 7F06128C C61201C8 */ lwc1 $f18, 0x1c8($s0) +/* 095DC0 7F061290 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095DC4 7F061294 C60401CC */ lwc1 $f4, 0x1cc($s0) +/* 095DC8 7F061298 46128281 */ sub.s $f10, $f16, $f18 +/* 095DCC 7F06129C C61201D0 */ lwc1 $f18, 0x1d0($s0) +/* 095DD0 7F0612A0 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095DD4 7F0612A4 46043201 */ sub.s $f8, $f6, $f4 +/* 095DD8 7F0612A8 44065000 */ mfc1 $a2, $f10 +/* 095DDC 7F0612AC 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DE0 7F0612B0 46128281 */ sub.s $f10, $f16, $f18 +/* 095DE4 7F0612B4 44074000 */ mfc1 $a3, $f8 +/* 095DE8 7F0612B8 24050000 */ li $a1, 0 +/* 095DEC 7F0612BC 0FC166D6 */ jal sub_GAME_7F059B58 +/* 095DF0 7F0612C0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 095DF4 7F0612C4 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DF8 7F0612C8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095DFC 7F0612CC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E00 7F0612D0 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095E04 7F0612D4 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095E08 7F0612D8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E0C 7F0612DC 27A40154 */ addiu $a0, $sp, 0x154 +/* 095E10 7F0612E0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095E14 7F0612E4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E18 7F0612E8 27A40084 */ addiu $a0, $sp, 0x84 +/* 095E1C 7F0612EC 0FC16266 */ jal matrix_4x4_set_position +/* 095E20 7F0612F0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E24 7F0612F4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095E28 7F0612F8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095E2C 7F0612FC 0FC16008 */ jal matrix_4x4_copy +/* 095E30 7F061300 24A50080 */ addiu $a1, $a1, 0x80 +/* 095E34 7F061304 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061308: +/* 095E38 7F061308 3C0E8004 */ lui $t6, %hi(weapon_gun_kf7) +/* 095E3C 7F06130C 25CEC7AC */ addiu $t6, %lo(weapon_gun_kf7) # addiu $t6, $t6, -0x3854 +/* 095E40 7F061310 8DF80004 */ lw $t8, 4($t7) +/* 095E44 7F061314 55D80074 */ bnel $t6, $t8, .L7F0614E8 +/* 095E48 7F061318 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E4C 7F06131C 8DF90008 */ lw $t9, 8($t7) +/* 095E50 7F061320 8F230010 */ lw $v1, 0x10($t9) +/* 095E54 7F061324 50600070 */ beql $v1, $zero, .L7F0614E8 +/* 095E58 7F061328 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E5C 7F06132C 8C620004 */ lw $v0, 4($v1) +/* 095E60 7F061330 C7A40224 */ lwc1 $f4, 0x224($sp) +/* 095E64 7F061334 C7B20234 */ lwc1 $f18, 0x234($sp) +/* 095E68 7F061338 C4460000 */ lwc1 $f6, ($v0) +/* 095E6C 7F06133C C4500004 */ lwc1 $f16, 4($v0) +/* 095E70 7F061340 3C018005 */ lui $at, %hi(D_80053E28) +/* 095E74 7F061344 46043202 */ mul.s $f8, $f6, $f4 +/* 095E78 7F061348 C4440008 */ lwc1 $f4, 8($v0) +/* 095E7C 7F06134C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 095E80 7F061350 46128282 */ mul.s $f10, $f16, $f18 +/* 095E84 7F061354 C7B00244 */ lwc1 $f16, 0x244($sp) +/* 095E88 7F061358 25AE00C0 */ addiu $t6, $t5, 0xc0 +/* 095E8C 7F06135C 46102482 */ mul.s $f18, $f4, $f16 +/* 095E90 7F061360 460A4180 */ add.s $f6, $f8, $f10 +/* 095E94 7F061364 C7AA0254 */ lwc1 $f10, 0x254($sp) +/* 095E98 7F061368 46123200 */ add.s $f8, $f6, $f18 +/* 095E9C 7F06136C C7A60228 */ lwc1 $f6, 0x228($sp) +/* 095EA0 7F061370 46085100 */ add.s $f4, $f10, $f8 +/* 095EA4 7F061374 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 095EA8 7F061378 E7A40084 */ swc1 $f4, 0x84($sp) +/* 095EAC 7F06137C C4500000 */ lwc1 $f16, ($v0) +/* 095EB0 7F061380 C44A0004 */ lwc1 $f10, 4($v0) +/* 095EB4 7F061384 46068482 */ mul.s $f18, $f16, $f6 +/* 095EB8 7F061388 C4460008 */ lwc1 $f6, 8($v0) +/* 095EBC 7F06138C 46085102 */ mul.s $f4, $f10, $f8 +/* 095EC0 7F061390 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 095EC4 7F061394 460A3202 */ mul.s $f8, $f6, $f10 +/* 095EC8 7F061398 46049400 */ add.s $f16, $f18, $f4 +/* 095ECC 7F06139C C7A40258 */ lwc1 $f4, 0x258($sp) +/* 095ED0 7F0613A0 46088480 */ add.s $f18, $f16, $f8 +/* 095ED4 7F0613A4 C7B0022C */ lwc1 $f16, 0x22c($sp) +/* 095ED8 7F0613A8 46122180 */ add.s $f6, $f4, $f18 +/* 095EDC 7F0613AC C7B2023C */ lwc1 $f18, 0x23c($sp) +/* 095EE0 7F0613B0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 095EE4 7F0613B4 C44A0000 */ lwc1 $f10, ($v0) +/* 095EE8 7F0613B8 C4440004 */ lwc1 $f4, 4($v0) +/* 095EEC 7F0613BC 46105202 */ mul.s $f8, $f10, $f16 +/* 095EF0 7F0613C0 C4500008 */ lwc1 $f16, 8($v0) +/* 095EF4 7F0613C4 AFAE0040 */ sw $t6, 0x40($sp) +/* 095EF8 7F0613C8 46122182 */ mul.s $f6, $f4, $f18 +/* 095EFC 7F0613CC C7A4024C */ lwc1 $f4, 0x24c($sp) +/* 095F00 7F0613D0 46048482 */ mul.s $f18, $f16, $f4 +/* 095F04 7F0613D4 C4243E28 */ lwc1 $f4, %lo(D_80053E28)($at) +/* 095F08 7F0613D8 46064280 */ add.s $f10, $f8, $f6 +/* 095F0C 7F0613DC C7A6025C */ lwc1 $f6, 0x25c($sp) +/* 095F10 7F0613E0 46125200 */ add.s $f8, $f10, $f18 +/* 095F14 7F0613E4 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 095F18 7F0613E8 460A2482 */ mul.s $f18, $f4, $f10 +/* 095F1C 7F0613EC 46083400 */ add.s $f16, $f6, $f8 +/* 095F20 7F0613F0 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 095F24 7F0613F4 0C002914 */ jal get_random_value +/* 095F28 7F0613F8 E7B20038 */ swc1 $f18, 0x38($sp) +/* 095F2C 7F0613FC 44823000 */ mtc1 $v0, $f6 +/* 095F30 7F061400 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095F34 7F061404 04410005 */ bgez $v0, .L7F06141C +/* 095F38 7F061408 46803220 */ cvt.s.w $f8, $f6 +/* 095F3C 7F06140C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095F40 7F061410 44818000 */ mtc1 $at, $f16 +/* 095F44 7F061414 00000000 */ nop +/* 095F48 7F061418 46104200 */ add.s $f8, $f8, $f16 +.L7F06141C: +/* 095F4C 7F06141C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095F50 7F061420 44812000 */ mtc1 $at, $f4 +/* 095F54 7F061424 3C018005 */ lui $at, %hi(D_80053E2C) +/* 095F58 7F061428 C4323E2C */ lwc1 $f18, %lo(D_80053E2C)($at) +/* 095F5C 7F06142C 46044282 */ mul.s $f10, $f8, $f4 +/* 095F60 7F061430 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 095F64 7F061434 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 095F68 7F061438 46008207 */ neg.s $f8, $f16 +/* 095F6C 7F06143C 46125182 */ mul.s $f6, $f10, $f18 +/* 095F70 7F061440 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 095F74 7F061444 46002287 */ neg.s $f10, $f4 +/* 095F78 7F061448 44064000 */ mfc1 $a2, $f8 +/* 095F7C 7F06144C 44075000 */ mfc1 $a3, $f10 +/* 095F80 7F061450 44053000 */ mfc1 $a1, $f6 +/* 095F84 7F061454 46009187 */ neg.s $f6, $f18 +/* 095F88 7F061458 0FC1673A */ jal matrix_4x4_align +/* 095F8C 7F06145C E7A60010 */ swc1 $f6, 0x10($sp) +/* 095F90 7F061460 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 095F94 7F061464 0FC1629F */ jal matrix_scalar_multiply +/* 095F98 7F061468 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095F9C 7F06146C C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095FA0 7F061470 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 095FA4 7F061474 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095FA8 7F061478 C61201CC */ lwc1 $f18, 0x1cc($s0) +/* 095FAC 7F06147C 46088101 */ sub.s $f4, $f16, $f8 +/* 095FB0 7F061480 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 095FB4 7F061484 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095FB8 7F061488 46125181 */ sub.s $f6, $f10, $f18 +/* 095FBC 7F06148C 44062000 */ mfc1 $a2, $f4 +/* 095FC0 7F061490 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FC4 7F061494 46088101 */ sub.s $f4, $f16, $f8 +/* 095FC8 7F061498 44073000 */ mfc1 $a3, $f6 +/* 095FCC 7F06149C 24050000 */ li $a1, 0 +/* 095FD0 7F0614A0 0FC166D6 */ jal sub_GAME_7F059B58 +/* 095FD4 7F0614A4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 095FD8 7F0614A8 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FDC 7F0614AC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FE0 7F0614B0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FE4 7F0614B4 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095FE8 7F0614B8 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095FEC 7F0614BC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FF0 7F0614C0 27A40154 */ addiu $a0, $sp, 0x154 +/* 095FF4 7F0614C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FF8 7F0614C8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FFC 7F0614CC 27A40084 */ addiu $a0, $sp, 0x84 +/* 096000 7F0614D0 0FC16266 */ jal matrix_4x4_set_position +/* 096004 7F0614D4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096008 7F0614D8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09600C 7F0614DC 0FC16008 */ jal matrix_4x4_copy +/* 096010 7F0614E0 8FA50040 */ lw $a1, 0x40($sp) +.L7F0614E4: +/* 096014 7F0614E4 8FB801A0 */ lw $t8, 0x1a0($sp) +.L7F0614E8: +/* 096018 7F0614E8 1000000C */ b .L7F06151C +/* 09601C 7F0614EC 8F020008 */ lw $v0, 8($t8) +/* 096020 7F0614F0 C6100260 */ lwc1 $f16, 0x260($s0) +.L7F0614F4: +/* 096024 7F0614F4 C60A0298 */ lwc1 $f10, 0x298($s0) +/* 096028 7F0614F8 C612029C */ lwc1 $f18, 0x29c($s0) +/* 09602C 7F0614FC C60602A0 */ lwc1 $f6, 0x2a0($s0) +/* 096030 7F061500 46008207 */ neg.s $f8, $f16 +/* 096034 7F061504 E60A02E8 */ swc1 $f10, 0x2e8($s0) +/* 096038 7F061508 E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 09603C 7F06150C E61202EC */ swc1 $f18, 0x2ec($s0) +/* 096040 7F061510 E60602F0 */ swc1 $f6, 0x2f0($s0) +/* 096044 7F061514 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096048 7F061518 8DE20008 */ lw $v0, 8($t7) +.L7F06151C: +/* 09604C 7F06151C 8C440018 */ lw $a0, 0x18($v0) +/* 096050 7F061520 50800043 */ beql $a0, $zero, .L7F061630 +/* 096054 7F061524 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096058 7F061528 8C990004 */ lw $t9, 4($a0) +/* 09605C 7F06152C 00002825 */ move $a1, $zero +/* 096060 7F061530 0FC1B15C */ jal sub_GAME_7F06C570 +/* 096064 7F061534 AFB90070 */ sw $t9, 0x70($sp) +/* 096068 7F061538 AFA2006C */ sw $v0, 0x6c($sp) +/* 09606C 7F06153C 8E050010 */ lw $a1, 0x10($s0) +/* 096070 7F061540 0FC179AD */ jal sub_GAME_7F05E6B4 +/* 096074 7F061544 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096078 7F061548 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 09607C 7F06154C 8FA40070 */ lw $a0, 0x70($sp) +/* 096080 7F061550 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 096084 7F061554 85AE000C */ lh $t6, 0xc($t5) +/* 096088 7F061558 29C1001D */ slti $at, $t6, 0x1d +/* 09608C 7F06155C 1420002A */ bnez $at, .L7F061608 +/* 096090 7F061560 00000000 */ nop +/* 096094 7F061564 8DB80008 */ lw $t8, 8($t5) +/* 096098 7F061568 8F030070 */ lw $v1, 0x70($t8) +/* 09609C 7F06156C 10600026 */ beqz $v1, .L7F061608 +/* 0960A0 7F061570 00000000 */ nop +/* 0960A4 7F061574 8C620004 */ lw $v0, 4($v1) +/* 0960A8 7F061578 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0960AC 7F06157C 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 0960B0 7F061580 AFA20068 */ sw $v0, 0x68($sp) +/* 0960B4 7F061584 3C018005 */ lui $at, %hi(D_80053E30) +/* 0960B8 7F061588 C42A3E30 */ lwc1 $f10, %lo(D_80053E30)($at) +/* 0960BC 7F06158C C6040214 */ lwc1 $f4, 0x214($s0) +/* 0960C0 7F061590 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0960C4 7F061594 44818000 */ mtc1 $at, $f16 +/* 0960C8 7F061598 460A2480 */ add.s $f18, $f4, $f10 +/* 0960CC 7F06159C 3C018005 */ lui $at, %hi(D_80053E34) +/* 0960D0 7F0615A0 C4243E34 */ lwc1 $f4, %lo(D_80053E34)($at) +/* 0960D4 7F0615A4 8FA20068 */ lw $v0, 0x68($sp) +/* 0960D8 7F0615A8 46009181 */ sub.s $f6, $f18, $f0 +/* 0960DC 7F0615AC 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0960E0 7F0615B0 C4520000 */ lwc1 $f18, ($v0) +/* 0960E4 7F0615B4 46103202 */ mul.s $f8, $f6, $f16 +/* 0960E8 7F0615B8 C446000C */ lwc1 $f6, 0xc($v0) +/* 0960EC 7F0615BC 46069401 */ sub.s $f16, $f18, $f6 +/* 0960F0 7F0615C0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0960F4 7F0615C4 C4520008 */ lwc1 $f18, 8($v0) +/* 0960F8 7F0615C8 46044283 */ div.s $f10, $f8, $f4 +/* 0960FC 7F0615CC C4440010 */ lwc1 $f4, 0x10($v0) +/* 096100 7F0615D0 C4480004 */ lwc1 $f8, 4($v0) +/* 096104 7F0615D4 44068000 */ mfc1 $a2, $f16 +/* 096108 7F0615D8 46069401 */ sub.s $f16, $f18, $f6 +/* 09610C 7F0615DC E7B00010 */ swc1 $f16, 0x10($sp) +/* 096110 7F0615E0 44055000 */ mfc1 $a1, $f10 +/* 096114 7F0615E4 46044281 */ sub.s $f10, $f8, $f4 +/* 096118 7F0615E8 44075000 */ mfc1 $a3, $f10 +/* 09611C 7F0615EC 0C005DC8 */ jal guRotateF +/* 096120 7F0615F0 00000000 */ nop +/* 096124 7F0615F4 8FA40070 */ lw $a0, 0x70($sp) +/* 096128 7F0615F8 0FC16266 */ jal matrix_4x4_set_position +/* 09612C 7F0615FC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096130 7F061600 10000004 */ b .L7F061614 +/* 096134 7F061604 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061608: +/* 096138 7F061608 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 09613C 7F06160C 8E050214 */ lw $a1, 0x214($s0) +/* 096140 7F061610 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061614: +/* 096144 7F061614 8FAE02A4 */ lw $t6, 0x2a4($sp) +/* 096148 7F061618 27A40264 */ addiu $a0, $sp, 0x264 +/* 09614C 7F06161C 000FC980 */ sll $t9, $t7, 6 +/* 096150 7F061620 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096154 7F061624 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 096158 7F061628 032E3021 */ addu $a2, $t9, $t6 +/* 09615C 7F06162C 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061630: +/* 096160 7F061630 8FA40044 */ lw $a0, 0x44($sp) +/* 096164 7F061634 85B8000C */ lh $t8, 0xc($t5) +/* 096168 7F061638 01A02825 */ move $a1, $t5 +/* 09616C 7F06163C 2B01001E */ slti $at, $t8, 0x1e +/* 096170 7F061640 54200004 */ bnezl $at, .L7F061654 +/* 096174 7F061644 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096178 7F061648 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 09617C 7F06164C 2406001D */ li $a2, 29 +/* 096180 7F061650 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061654: +/* 096184 7F061654 8DF90008 */ lw $t9, 8($t7) +/* 096188 7F061658 8F24001C */ lw $a0, 0x1c($t9) +/* 09618C 7F06165C 50800017 */ beql $a0, $zero, .L7F0616BC +/* 096190 7F061660 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 096194 7F061664 8C8E0004 */ lw $t6, 4($a0) +/* 096198 7F061668 00002825 */ move $a1, $zero +/* 09619C 7F06166C 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0961A0 7F061670 AFAE0064 */ sw $t6, 0x64($sp) +/* 0961A4 7F061674 AFA20060 */ sw $v0, 0x60($sp) +/* 0961A8 7F061678 0FC17A0F */ jal sub_GAME_7F05E83C +/* 0961AC 7F06167C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0961B0 7F061680 8FA40064 */ lw $a0, 0x64($sp) +/* 0961B4 7F061684 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0961B8 7F061688 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961BC 7F06168C C7A801DC */ lwc1 $f8, 0x1dc($sp) +/* 0961C0 7F061690 C6040218 */ lwc1 $f4, 0x218($s0) +/* 0961C4 7F061694 8FB80060 */ lw $t8, 0x60($sp) +/* 0961C8 7F061698 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 0961CC 7F06169C 46044281 */ sub.s $f10, $f8, $f4 +/* 0961D0 7F0616A0 00186980 */ sll $t5, $t8, 6 +/* 0961D4 7F0616A4 27A40264 */ addiu $a0, $sp, 0x264 +/* 0961D8 7F0616A8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961DC 7F0616AC E7AA01DC */ swc1 $f10, 0x1dc($sp) +/* 0961E0 7F0616B0 0FC16032 */ jal matrix_4x4_multiply +/* 0961E4 7F0616B4 01AF3021 */ addu $a2, $t5, $t7 +/* 0961E8 7F0616B8 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F0616BC: +/* 0961EC 7F0616BC 00001825 */ move $v1, $zero +/* 0961F0 7F0616C0 00003025 */ move $a2, $zero +/* 0961F4 7F0616C4 872E000C */ lh $t6, 0xc($t9) +/* 0961F8 7F0616C8 24070005 */ li $a3, 5 +/* 0961FC 7F0616CC 29C10013 */ slti $at, $t6, 0x13 +/* 096200 7F0616D0 1420002A */ bnez $at, .L7F06177C +/* 096204 7F0616D4 00000000 */ nop +.L7F0616D8: +/* 096208 7F0616D8 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 09620C 7F0616DC 8FA40044 */ lw $a0, 0x44($sp) +/* 096210 7F0616E0 8F0D0008 */ lw $t5, 8($t8) +/* 096214 7F0616E4 01A67821 */ addu $t7, $t5, $a2 +/* 096218 7F0616E8 8DE50048 */ lw $a1, 0x48($t7) +/* 09621C 7F0616EC 50A0000E */ beql $a1, $zero, .L7F061728 +/* 096220 7F0616F0 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096224 7F0616F4 AFA3005C */ sw $v1, 0x5c($sp) +/* 096228 7F0616F8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 09622C 7F0616FC AFA60040 */ sw $a2, 0x40($sp) +/* 096230 7F061700 8FA3005C */ lw $v1, 0x5c($sp) +/* 096234 7F061704 8FA60040 */ lw $a2, 0x40($sp) +/* 096238 7F061708 10400006 */ beqz $v0, .L7F061724 +/* 09623C 7F06170C 24070005 */ li $a3, 5 +/* 096240 7F061710 8E190034 */ lw $t9, 0x34($s0) +/* 096244 7F061714 00E37023 */ subu $t6, $a3, $v1 +/* 096248 7F061718 032EC02A */ slt $t8, $t9, $t6 +/* 09624C 7F06171C 3B180001 */ xori $t8, $t8, 1 +/* 096250 7F061720 AC580000 */ sw $t8, ($v0) +.L7F061724: +/* 096254 7F061724 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061728: +/* 096258 7F061728 8FA40044 */ lw $a0, 0x44($sp) +/* 09625C 7F06172C 8DAF0008 */ lw $t7, 8($t5) +/* 096260 7F061730 01E6C821 */ addu $t9, $t7, $a2 +/* 096264 7F061734 8F25005C */ lw $a1, 0x5c($t9) +/* 096268 7F061738 50A0000E */ beql $a1, $zero, .L7F061774 +/* 09626C 7F06173C 24630001 */ addiu $v1, $v1, 1 +/* 096270 7F061740 AFA3005C */ sw $v1, 0x5c($sp) +/* 096274 7F061744 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 096278 7F061748 AFA60040 */ sw $a2, 0x40($sp) +/* 09627C 7F06174C 8FA3005C */ lw $v1, 0x5c($sp) +/* 096280 7F061750 8FA60040 */ lw $a2, 0x40($sp) +/* 096284 7F061754 10400006 */ beqz $v0, .L7F061770 +/* 096288 7F061758 24070005 */ li $a3, 5 +/* 09628C 7F06175C 8E0E0034 */ lw $t6, 0x34($s0) +/* 096290 7F061760 00E3C023 */ subu $t8, $a3, $v1 +/* 096294 7F061764 01D8682A */ slt $t5, $t6, $t8 +/* 096298 7F061768 39AD0001 */ xori $t5, $t5, 1 +/* 09629C 7F06176C AC4D0000 */ sw $t5, ($v0) +.L7F061770: +/* 0962A0 7F061770 24630001 */ addiu $v1, $v1, 1 +.L7F061774: +/* 0962A4 7F061774 1467FFD8 */ bne $v1, $a3, .L7F0616D8 +/* 0962A8 7F061778 24C60004 */ addiu $a2, $a2, 4 +.L7F06177C: +/* 0962AC 7F06177C 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0962B0 7F061780 8FA40044 */ lw $a0, 0x44($sp) +/* 0962B4 7F061784 820F000C */ lb $t7, 0xc($s0) +/* 0962B8 7F061788 8FB900FC */ lw $t9, 0xfc($sp) +/* 0962BC 7F06178C 11E00011 */ beqz $t7, .L7F0617D4 +/* 0962C0 7F061790 272EFFFC */ addiu $t6, $t9, -4 +/* 0962C4 7F061794 2DC10014 */ sltiu $at, $t6, 0x14 +/* 0962C8 7F061798 1020000E */ beqz $at, .L7F0617D4 +/* 0962CC 7F06179C 000E7080 */ sll $t6, $t6, 2 +/* 0962D0 7F0617A0 3C018005 */ lui $at, %hi(jpt_weapon_bullet_type) +/* 0962D4 7F0617A4 002E0821 */ addu $at, $at, $t6 +/* 0962D8 7F0617A8 8C2E3E38 */ lw $t6, %lo(jpt_weapon_bullet_type)($at) +/* 0962DC 7F0617AC 01C00008 */ jr $t6 +/* 0962E0 7F0617B0 00000000 */ nop +weapon_bullet_type_pistol: +/* 0962E4 7F0617B4 0FC186FD */ jal sub_GAME_7F061BF4 +/* 0962E8 7F0617B8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0962EC 7F0617BC 8E180030 */ lw $t8, 0x30($s0) +/* 0962F0 7F0617C0 270D0001 */ addiu $t5, $t8, 1 +/* 0962F4 7F0617C4 10000003 */ b .L7F0617D4 +/* 0962F8 7F0617C8 AE0D0030 */ sw $t5, 0x30($s0) +weapon_bullet_type_none: +/* 0962FC 7F0617CC 0FC186FD */ jal sub_GAME_7F061BF4 +/* 096300 7F0617D0 8FA402A8 */ lw $a0, 0x2a8($sp) +weapon_bullet_type_shotgun_mine: +.L7F0617D4: +/* 096304 7F0617D4 8FAF00FC */ lw $t7, 0xfc($sp) +.L7F0617D8: +/* 096308 7F0617D8 24010019 */ li $at, 25 +/* 09630C 7F0617DC 55E10004 */ bnel $t7, $at, .L7F0617F0 +/* 096310 7F0617E0 8219000C */ lb $t9, 0xc($s0) +/* 096314 7F0617E4 0FC17E4A */ jal sub_GAME_7F05F928 +/* 096318 7F0617E8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09631C 7F0617EC 8219000C */ lb $t9, 0xc($s0) +.L7F0617F0: +/* 096320 7F0617F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 096324 7F0617F4 53200046 */ beql $t9, $zero, .L7F061910 +/* 096328 7F0617F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 09632C 7F0617FC 0FC225DE */ jal sub_GAME_7F089778 +/* 096330 7F061800 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 096334 7F061804 44050000 */ mfc1 $a1, $f0 +/* 096338 7F061808 0FC1A142 */ jal sub_GAME_7F068508 +/* 09633C 7F06180C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096340 7F061810 8FAE00FC */ lw $t6, 0xfc($sp) +/* 096344 7F061814 24010018 */ li $at, 24 +/* 096348 7F061818 8FB800FC */ lw $t8, 0xfc($sp) +/* 09634C 7F06181C 55C10006 */ bnel $t6, $at, .L7F061838 +/* 096350 7F061820 2401001A */ li $at, 26 +/* 096354 7F061824 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096358 7F061828 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09635C 7F06182C 10000038 */ b .L7F061910 +/* 096360 7F061830 8FBF0034 */ lw $ra, 0x34($sp) +/* 096364 7F061834 2401001A */ li $at, 26 +.L7F061838: +/* 096368 7F061838 17010005 */ bne $t8, $at, .L7F061850 +/* 09636C 7F06183C 8FAD00FC */ lw $t5, 0xfc($sp) +/* 096370 7F061840 0FC17B89 */ jal sub_GAME_7F05EE24 +/* 096374 7F061844 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096378 7F061848 10000031 */ b .L7F061910 +/* 09637C 7F06184C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061850: +/* 096380 7F061850 24010019 */ li $at, 25 +/* 096384 7F061854 15A10005 */ bne $t5, $at, .L7F06186C +/* 096388 7F061858 8FAF00FC */ lw $t7, 0xfc($sp) +/* 09638C 7F06185C 0FC17ED9 */ jal sub_GAME_7F05FB64 +/* 096390 7F061860 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096394 7F061864 1000002A */ b .L7F061910 +/* 096398 7F061868 8FBF0034 */ lw $ra, 0x34($sp) +.L7F06186C: +/* 09639C 7F06186C 24010003 */ li $at, 3 +/* 0963A0 7F061870 15E10005 */ bne $t7, $at, .L7F061888 +/* 0963A4 7F061874 8FB900FC */ lw $t9, 0xfc($sp) +/* 0963A8 7F061878 0FC17C27 */ jal sub_GAME_7F05F09C +/* 0963AC 7F06187C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0963B0 7F061880 10000023 */ b .L7F061910 +/* 0963B4 7F061884 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061888: +/* 0963B8 7F061888 2401001D */ li $at, 29 +/* 0963BC 7F06188C 1321000F */ beq $t9, $at, .L7F0618CC +/* 0963C0 7F061890 2401001C */ li $at, 28 +/* 0963C4 7F061894 1321000D */ beq $t9, $at, .L7F0618CC +/* 0963C8 7F061898 2401001B */ li $at, 27 +/* 0963CC 7F06189C 1321000B */ beq $t9, $at, .L7F0618CC +/* 0963D0 7F0618A0 24010021 */ li $at, 33 +/* 0963D4 7F0618A4 13210009 */ beq $t9, $at, .L7F0618CC +/* 0963D8 7F0618A8 2401002F */ li $at, 47 +/* 0963DC 7F0618AC 13210007 */ beq $t9, $at, .L7F0618CC +/* 0963E0 7F0618B0 24010030 */ li $at, 48 +/* 0963E4 7F0618B4 13210005 */ beq $t9, $at, .L7F0618CC +/* 0963E8 7F0618B8 2401003D */ li $at, 61 +/* 0963EC 7F0618BC 13210003 */ beq $t9, $at, .L7F0618CC +/* 0963F0 7F0618C0 24010022 */ li $at, 34 +/* 0963F4 7F0618C4 17210005 */ bne $t9, $at, .L7F0618DC +/* 0963F8 7F0618C8 8FAE00FC */ lw $t6, 0xfc($sp) +.L7F0618CC: +/* 0963FC 7F0618CC 0FC17CD6 */ jal generate_player_thrown_object +/* 096400 7F0618D0 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096404 7F0618D4 1000000E */ b .L7F061910 +/* 096408 7F0618D8 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618DC: +/* 09640C 7F0618DC 24010023 */ li $at, 35 +/* 096410 7F0618E0 15C10005 */ bne $t6, $at, .L7F0618F8 +/* 096414 7F0618E4 8FB800FC */ lw $t8, 0xfc($sp) +/* 096418 7F0618E8 0FC17DCF */ jal sub_GAME_7F05F73C +/* 09641C 7F0618EC 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096420 7F0618F0 10000007 */ b .L7F061910 +/* 096424 7F0618F4 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618F8: +/* 096428 7F0618F8 24010024 */ li $at, 36 +/* 09642C 7F0618FC 57010004 */ bnel $t8, $at, .L7F061910 +/* 096430 7F061900 8FBF0034 */ lw $ra, 0x34($sp) +/* 096434 7F061904 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096438 7F061908 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09643C 7F06190C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061910: +/* 096440 7F061910 8FB00030 */ lw $s0, 0x30($sp) +/* 096444 7F061914 27BD02A8 */ addiu $sp, $sp, 0x2a8 +/* 096448 7F061918 03E00008 */ jr $ra +/* 09644C 7F06191C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80053DE0 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053DE4 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053DE8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DEC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DF4 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DFC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E00 +.word 0x41de6666 /*27.799999*/ +glabel D_80053E04 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E14 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E18 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E24 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E28 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E34 +.word 0x40c90fdb /*6.2831855*/ + +/*D:80053E38*/ +glabel jpt_weapon_bullet_type +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_none +.word weapon_bullet_type_none +.text +glabel handles_firing_or_throwing_weapon_in_hand +/* 095058 7F0604E8 27BDFD58 */ addiu $sp, $sp, -0x2a8 +/* 09505C 7F0604EC 3C0F8003 */ lui $t7, %hi(D_80035C40) # $t7, 0x8003 +/* 095060 7F0604F0 AFBF0034 */ sw $ra, 0x34($sp) +/* 095064 7F0604F4 AFB00030 */ sw $s0, 0x30($sp) +/* 095068 7F0604F8 25EF5C80 */ addiu $t7, %lo(D_80035C40) # addiu $t7, $t7, 0x5c80 +/* 09506C 7F0604FC 8DE10000 */ lw $at, ($t7) +/* 095070 7F060500 27AE0194 */ addiu $t6, $sp, 0x194 +/* 095074 7F060504 8DED0004 */ lw $t5, 4($t7) +/* 095078 7F060508 ADC10000 */ sw $at, ($t6) +/* 09507C 7F06050C 8DE10008 */ lw $at, 8($t7) +/* 095080 7F060510 0004C0C0 */ sll $t8, $a0, 3 +/* 095084 7F060514 0304C023 */ subu $t8, $t8, $a0 +/* 095088 7F060518 0018C080 */ sll $t8, $t8, 2 +/* 09508C 7F06051C 0304C021 */ addu $t8, $t8, $a0 +/* 095090 7F060520 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 095094 7F060524 ADCD0004 */ sw $t5, 4($t6) +/* 095098 7F060528 ADC10008 */ sw $at, 8($t6) +/* 09509C 7F06052C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0950A0 7F060530 0018C080 */ sll $t8, $t8, 2 +/* 0950A4 7F060534 0304C021 */ addu $t8, $t8, $a0 +/* 0950A8 7F060538 0018C0C0 */ sll $t8, $t8, 3 +/* 0950AC 7F06053C 03388021 */ addu $s0, $t9, $t8 +/* 0950B0 7F060540 AFA0010C */ sw $zero, 0x10c($sp) +/* 0950B4 7F060544 AFA00108 */ sw $zero, 0x108($sp) +/* 0950B8 7F060548 26100870 */ addiu $s0, $s0, 0x870 +/* 0950BC 7F06054C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0950C0 7F060550 AFA402A8 */ sw $a0, 0x2a8($sp) +/* 0950C4 7F060554 AFA200FC */ sw $v0, 0xfc($sp) +/* 0950C8 7F060558 0FC17375 */ jal get_ptr_item_statistics +/* 0950CC 7F06055C 00402025 */ move $a0, $v0 +/* 0950D0 7F060560 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 0950D4 7F060564 AFA200F8 */ sw $v0, 0xf8($sp) +/* 0950D8 7F060568 15C0002D */ bnez $t6, .Ljp7F060620 +/* 0950DC 7F06056C 00000000 */ nop +/* 0950E0 7F060570 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0950E4 7F060574 24040001 */ li $a0, 1 +/* 0950E8 7F060578 00402025 */ move $a0, $v0 +/* 0950EC 7F06057C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0950F0 7F060580 24050800 */ li $a1, 2048 +/* 0950F4 7F060584 10400015 */ beqz $v0, .Ljp7F0605DC +/* 0950F8 7F060588 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0950FC 7F06058C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 095100 7F060590 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 095104 7F060594 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 095108 7F060598 44813000 */ mtc1 $at, $f6 +/* 09510C 7F06059C 46000100 */ add.s $f4, $f0, $f0 +/* 095110 7F0605A0 C60A01C4 */ lwc1 $f10, 0x1c4($s0) +/* 095114 7F0605A4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095118 7F0605A8 44819000 */ mtc1 $at, $f18 +/* 09511C 7F0605AC 46062203 */ div.s $f8, $f4, $f6 +/* 095120 7F0605B0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095124 7F0605B4 46085400 */ add.s $f16, $f10, $f8 +/* 095128 7F0605B8 E61001C4 */ swc1 $f16, 0x1c4($s0) +/* 09512C 7F0605BC C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 095130 7F0605C0 4604903C */ c.lt.s $f18, $f4 +/* 095134 7F0605C4 00000000 */ nop +/* 095138 7F0605C8 4500003F */ bc1f .Ljp7F0606C8 +/* 09513C 7F0605CC 00000000 */ nop +/* 095140 7F0605D0 44813000 */ mtc1 $at, $f6 +/* 095144 7F0605D4 1000003C */ b .Ljp7F0606C8 +/* 095148 7F0605D8 E60601C4 */ swc1 $f6, 0x1c4($s0) +.Ljp7F0605DC: +/* 09514C 7F0605DC C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 095150 7F0605E0 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 095154 7F0605E4 44814000 */ mtc1 $at, $f8 +/* 095158 7F0605E8 46000280 */ add.s $f10, $f0, $f0 +/* 09515C 7F0605EC C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 095160 7F0605F0 46085403 */ div.s $f16, $f10, $f8 +/* 095164 7F0605F4 44805000 */ mtc1 $zero, $f10 +/* 095168 7F0605F8 46109101 */ sub.s $f4, $f18, $f16 +/* 09516C 7F0605FC E60401C4 */ swc1 $f4, 0x1c4($s0) +/* 095170 7F060600 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 095174 7F060604 460A303C */ c.lt.s $f6, $f10 +/* 095178 7F060608 00000000 */ nop +/* 09517C 7F06060C 4500002E */ bc1f .Ljp7F0606C8 +/* 095180 7F060610 00000000 */ nop +/* 095184 7F060614 44804000 */ mtc1 $zero, $f8 +/* 095188 7F060618 1000002B */ b .Ljp7F0606C8 +/* 09518C 7F06061C E60801C4 */ swc1 $f8, 0x1c4($s0) +.Ljp7F060620: +/* 095190 7F060620 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 095194 7F060624 00002025 */ move $a0, $zero +/* 095198 7F060628 00402025 */ move $a0, $v0 +/* 09519C 7F06062C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0951A0 7F060630 24050800 */ li $a1, 2048 +/* 0951A4 7F060634 10400013 */ beqz $v0, .Ljp7F060684 +/* 0951A8 7F060638 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0951AC 7F06063C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0951B0 7F060640 44811000 */ mtc1 $at, $f2 +/* 0951B4 7F060644 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0951B8 7F060648 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0951BC 7F06064C 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0951C0 7F060650 44818000 */ mtc1 $at, $f16 +/* 0951C4 7F060654 46000480 */ add.s $f18, $f0, $f0 +/* 0951C8 7F060658 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 0951CC 7F06065C 46109103 */ div.s $f4, $f18, $f16 +/* 0951D0 7F060660 46043281 */ sub.s $f10, $f6, $f4 +/* 0951D4 7F060664 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 0951D8 7F060668 C60801C4 */ lwc1 $f8, 0x1c4($s0) +/* 0951DC 7F06066C 4602403C */ c.lt.s $f8, $f2 +/* 0951E0 7F060670 00000000 */ nop +/* 0951E4 7F060674 45000014 */ bc1f .Ljp7F0606C8 +/* 0951E8 7F060678 00000000 */ nop +/* 0951EC 7F06067C 10000012 */ b .Ljp7F0606C8 +/* 0951F0 7F060680 E60201C4 */ swc1 $f2, 0x1c4($s0) +.Ljp7F060684: +/* 0951F4 7F060684 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0951F8 7F060688 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0951FC 7F06068C 44818000 */ mtc1 $at, $f16 +/* 095200 7F060690 46000480 */ add.s $f18, $f0, $f0 +/* 095204 7F060694 C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 095208 7F060698 44804000 */ mtc1 $zero, $f8 +/* 09520C 7F06069C 46109183 */ div.s $f6, $f18, $f16 +/* 095210 7F0606A0 46062280 */ add.s $f10, $f4, $f6 +/* 095214 7F0606A4 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 095218 7F0606A8 C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 09521C 7F0606AC 4612403C */ c.lt.s $f8, $f18 +/* 095220 7F0606B0 00000000 */ nop +/* 095224 7F0606B4 45000004 */ bc1f .Ljp7F0606C8 +/* 095228 7F0606B8 00000000 */ nop +/* 09522C 7F0606BC 44808000 */ mtc1 $zero, $f16 +/* 095230 7F0606C0 00000000 */ nop +/* 095234 7F0606C4 E61001C4 */ swc1 $f16, 0x1c4($s0) +.Ljp7F0606C8: +/* 095238 7F0606C8 3C0F8003 */ lui $t7, %hi(D_80035C4C) # $t7, 0x8003 +/* 09523C 7F0606CC 25EF5C8C */ addiu $t7, %lo(D_80035C4C) # addiu $t7, $t7, 0x5c8c +/* 095240 7F0606D0 8DE10000 */ lw $at, ($t7) +/* 095244 7F0606D4 27AC00E0 */ addiu $t4, $sp, 0xe0 +/* 095248 7F0606D8 3C0E8003 */ lui $t6, %hi(D_80035C58) # $t6, 0x8003 +/* 09524C 7F0606DC AD810000 */ sw $at, ($t4) +/* 095250 7F0606E0 8DF90004 */ lw $t9, 4($t7) +/* 095254 7F0606E4 25CE5C98 */ addiu $t6, %lo(D_80035C58) # addiu $t6, $t6, 0x5c98 +/* 095258 7F0606E8 27B800D4 */ addiu $t8, $sp, 0xd4 +/* 09525C 7F0606EC AD990004 */ sw $t9, 4($t4) +/* 095260 7F0606F0 8DE10008 */ lw $at, 8($t7) +/* 095264 7F0606F4 3C0D8003 */ lui $t5, %hi(D_80035C64) # $t5, 0x8003 +/* 095268 7F0606F8 25AD5CA4 */ addiu $t5, %lo(D_80035C64) # addiu $t5, $t5, 0x5ca4 +/* 09526C 7F0606FC AD810008 */ sw $at, 8($t4) +/* 095270 7F060700 8DC10000 */ lw $at, ($t6) +/* 095274 7F060704 8DCF0004 */ lw $t7, 4($t6) +/* 095278 7F060708 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 09527C 7F06070C AF010000 */ sw $at, ($t8) +/* 095280 7F060710 8DC10008 */ lw $at, 8($t6) +/* 095284 7F060714 AF0F0004 */ sw $t7, 4($t8) +/* 095288 7F060718 2403000C */ li $v1, 12 +/* 09528C 7F06071C AF010008 */ sw $at, 8($t8) +/* 095290 7F060720 8DA10000 */ lw $at, ($t5) +/* 095294 7F060724 8DAE0004 */ lw $t6, 4($t5) +/* 095298 7F060728 AF210000 */ sw $at, ($t9) +/* 09529C 7F06072C 8DA10008 */ lw $at, 8($t5) +/* 0952A0 7F060730 AF2E0004 */ sw $t6, 4($t9) +/* 0952A4 7F060734 AF210008 */ sw $at, 8($t9) +/* 0952A8 7F060738 8E020198 */ lw $v0, 0x198($s0) +/* 0952AC 7F06073C C604019C */ lwc1 $f4, 0x19c($s0) +/* 0952B0 7F060740 AFAC0014 */ sw $t4, 0x14($sp) +/* 0952B4 7F060744 244F0003 */ addiu $t7, $v0, 3 +/* 0952B8 7F060748 05E10004 */ bgez $t7, .Ljp7F06075C +/* 0952BC 7F06074C 31F80003 */ andi $t8, $t7, 3 +/* 0952C0 7F060750 13000002 */ beqz $t8, .Ljp7F06075C +/* 0952C4 7F060754 00000000 */ nop +/* 0952C8 7F060758 2718FFFC */ addiu $t8, $t8, -4 +.Ljp7F06075C: +/* 0952CC 7F06075C 03030019 */ multu $t8, $v1 +/* 0952D0 7F060760 244E0001 */ addiu $t6, $v0, 1 +/* 0952D4 7F060764 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0952D8 7F060768 0000C812 */ mflo $t9 +/* 0952DC 7F06076C 02194021 */ addu $t0, $s0, $t9 +/* 0952E0 7F060770 24590002 */ addiu $t9, $v0, 2 +/* 0952E4 7F060774 00430019 */ multu $v0, $v1 +/* 0952E8 7F060778 25040108 */ addiu $a0, $t0, 0x108 +/* 0952EC 7F06077C AFA80044 */ sw $t0, 0x44($sp) +/* 0952F0 7F060780 00006812 */ mflo $t5 +/* 0952F4 7F060784 020D4821 */ addu $t1, $s0, $t5 +/* 0952F8 7F060788 25250108 */ addiu $a1, $t1, 0x108 +/* 0952FC 7F06078C 05C10004 */ bgez $t6, .Ljp7F0607A0 +/* 095300 7F060790 31CF0003 */ andi $t7, $t6, 3 +/* 095304 7F060794 11E00002 */ beqz $t7, .Ljp7F0607A0 +/* 095308 7F060798 00000000 */ nop +/* 09530C 7F06079C 25EFFFFC */ addiu $t7, $t7, -4 +.Ljp7F0607A0: +/* 095310 7F0607A0 01E30019 */ multu $t7, $v1 +/* 095314 7F0607A4 AFA90040 */ sw $t1, 0x40($sp) +/* 095318 7F0607A8 0000C012 */ mflo $t8 +/* 09531C 7F0607AC 02185021 */ addu $t2, $s0, $t8 +/* 095320 7F0607B0 25460108 */ addiu $a2, $t2, 0x108 +/* 095324 7F0607B4 07210004 */ bgez $t9, .Ljp7F0607C8 +/* 095328 7F0607B8 332D0003 */ andi $t5, $t9, 3 +/* 09532C 7F0607BC 11A00002 */ beqz $t5, .Ljp7F0607C8 +/* 095330 7F0607C0 00000000 */ nop +/* 095334 7F0607C4 25ADFFFC */ addiu $t5, $t5, -4 +.Ljp7F0607C8: +/* 095338 7F0607C8 01A30019 */ multu $t5, $v1 +/* 09533C 7F0607CC AFAA003C */ sw $t2, 0x3c($sp) +/* 095340 7F0607D0 00007012 */ mflo $t6 +/* 095344 7F0607D4 020E5821 */ addu $t3, $s0, $t6 +/* 095348 7F0607D8 25670108 */ addiu $a3, $t3, 0x108 +/* 09534C 7F0607DC 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 095350 7F0607E0 AFAB0038 */ sw $t3, 0x38($sp) +/* 095354 7F0607E4 8FA40044 */ lw $a0, 0x44($sp) +/* 095358 7F0607E8 8FA50040 */ lw $a1, 0x40($sp) +/* 09535C 7F0607EC 8FA6003C */ lw $a2, 0x3c($sp) +/* 095360 7F0607F0 8FA70038 */ lw $a3, 0x38($sp) +/* 095364 7F0607F4 C606019C */ lwc1 $f6, 0x19c($s0) +/* 095368 7F0607F8 27AF00D4 */ addiu $t7, $sp, 0xd4 +/* 09536C 7F0607FC AFAF0014 */ sw $t7, 0x14($sp) +/* 095370 7F060800 24840138 */ addiu $a0, $a0, 0x138 +/* 095374 7F060804 24A50138 */ addiu $a1, $a1, 0x138 +/* 095378 7F060808 24C60138 */ addiu $a2, $a2, 0x138 +/* 09537C 7F06080C 24E70138 */ addiu $a3, $a3, 0x138 +/* 095380 7F060810 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 095384 7F060814 E7A60010 */ swc1 $f6, 0x10($sp) +/* 095388 7F060818 8FA40044 */ lw $a0, 0x44($sp) +/* 09538C 7F06081C 8FA50040 */ lw $a1, 0x40($sp) +/* 095390 7F060820 8FA6003C */ lw $a2, 0x3c($sp) +/* 095394 7F060824 8FA70038 */ lw $a3, 0x38($sp) +/* 095398 7F060828 C60A019C */ lwc1 $f10, 0x19c($s0) +/* 09539C 7F06082C 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 0953A0 7F060830 AFB80014 */ sw $t8, 0x14($sp) +/* 0953A4 7F060834 24840168 */ addiu $a0, $a0, 0x168 +/* 0953A8 7F060838 24A50168 */ addiu $a1, $a1, 0x168 +/* 0953AC 7F06083C 24C60168 */ addiu $a2, $a2, 0x168 +/* 0953B0 7F060840 24E70168 */ addiu $a3, $a3, 0x168 +/* 0953B4 7F060844 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 0953B8 7F060848 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0953BC 7F06084C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0953C0 7F060850 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0953C4 7F060854 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 0953C8 7F060858 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0953CC 7F06085C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 0953D0 7F060860 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0953D4 7F060864 46124402 */ mul.s $f16, $f8, $f18 +/* 0953D8 7F060868 C7A800E8 */ lwc1 $f8, 0xe8($sp) +/* 0953DC 7F06086C E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 0953E0 7F060870 C4460FC0 */ lwc1 $f6, 0xfc0($v0) +/* 0953E4 7F060874 46062282 */ mul.s $f10, $f4, $f6 +/* 0953E8 7F060878 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0953EC 7F06087C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 0953F0 7F060880 46124102 */ mul.s $f4, $f8, $f18 +/* 0953F4 7F060884 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0953F8 7F060888 C60601AC */ lwc1 $f6, 0x1ac($s0) +/* 0953FC 7F06088C 46068200 */ add.s $f8, $f16, $f6 +/* 095400 7F060890 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 095404 7F060894 C61201B0 */ lwc1 $f18, 0x1b0($s0) +/* 095408 7F060898 46125100 */ add.s $f4, $f10, $f18 +/* 09540C 7F06089C 0FC17876 */ jal sub_GAME_7F05DCB8 +/* 095410 7F0608A0 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 095414 7F0608A4 C7B000E0 */ lwc1 $f16, 0xe0($sp) +/* 095418 7F0608A8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 09541C 7F0608AC 244283A4 */ addiu $v0, %lo(clock_timer) # addiu $v0, $v0, -0x7c5c +/* 095420 7F0608B0 46008180 */ add.s $f6, $f16, $f0 +/* 095424 7F0608B4 8C590000 */ lw $t9, ($v0) +/* 095428 7F0608B8 00001825 */ move $v1, $zero +/* 09542C 7F0608BC 1B200035 */ blez $t9, .Ljp7F060994 +/* 095430 7F0608C0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 095434 7F0608C4 3C018005 */ lui $at, %hi(D_80053DE0) # $at, 0x8005 +/* 095438 7F0608C8 C4203E10 */ lwc1 $f0, %lo(D_80053DE0)($at) +/* 09543C 7F0608CC C60A00E4 */ lwc1 $f10, 0xe4($s0) +.Ljp7F0608D0: +/* 095440 7F0608D0 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 095444 7F0608D4 C60600E8 */ lwc1 $f6, 0xe8($s0) +/* 095448 7F0608D8 460A0482 */ mul.s $f18, $f0, $f10 +/* 09544C 7F0608DC 24630001 */ addiu $v1, $v1, 1 +/* 095450 7F0608E0 46060282 */ mul.s $f10, $f0, $f6 +/* 095454 7F0608E4 46124100 */ add.s $f4, $f8, $f18 +/* 095458 7F0608E8 E60400E4 */ swc1 $f4, 0xe4($s0) +/* 09545C 7F0608EC C7B000E4 */ lwc1 $f16, 0xe4($sp) +/* 095460 7F0608F0 C60400EC */ lwc1 $f4, 0xec($s0) +/* 095464 7F0608F4 460A8200 */ add.s $f8, $f16, $f10 +/* 095468 7F0608F8 46040182 */ mul.s $f6, $f0, $f4 +/* 09546C 7F0608FC E60800E8 */ swc1 $f8, 0xe8($s0) +/* 095470 7F060900 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 095474 7F060904 C60800F0 */ lwc1 $f8, 0xf0($s0) +/* 095478 7F060908 46069400 */ add.s $f16, $f18, $f6 +/* 09547C 7F06090C 46080102 */ mul.s $f4, $f0, $f8 +/* 095480 7F060910 E61000EC */ swc1 $f16, 0xec($s0) +/* 095484 7F060914 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 095488 7F060918 C61000F4 */ lwc1 $f16, 0xf4($s0) +/* 09548C 7F06091C 46045480 */ add.s $f18, $f10, $f4 +/* 095490 7F060920 46100202 */ mul.s $f8, $f0, $f16 +/* 095494 7F060924 E61200F0 */ swc1 $f18, 0xf0($s0) +/* 095498 7F060928 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 09549C 7F06092C C61200F8 */ lwc1 $f18, 0xf8($s0) +/* 0954A0 7F060930 46083280 */ add.s $f10, $f6, $f8 +/* 0954A4 7F060934 46120402 */ mul.s $f16, $f0, $f18 +/* 0954A8 7F060938 E60A00F4 */ swc1 $f10, 0xf4($s0) +/* 0954AC 7F06093C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 0954B0 7F060940 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 0954B4 7F060944 46102180 */ add.s $f6, $f4, $f16 +/* 0954B8 7F060948 460A0482 */ mul.s $f18, $f0, $f10 +/* 0954BC 7F06094C E60600F8 */ swc1 $f6, 0xf8($s0) +/* 0954C0 7F060950 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0954C4 7F060954 C6060100 */ lwc1 $f6, 0x100($s0) +/* 0954C8 7F060958 46124100 */ add.s $f4, $f8, $f18 +/* 0954CC 7F06095C 46060282 */ mul.s $f10, $f0, $f6 +/* 0954D0 7F060960 E60400FC */ swc1 $f4, 0xfc($s0) +/* 0954D4 7F060964 C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 0954D8 7F060968 C6040104 */ lwc1 $f4, 0x104($s0) +/* 0954DC 7F06096C 460A8200 */ add.s $f8, $f16, $f10 +/* 0954E0 7F060970 46040182 */ mul.s $f6, $f0, $f4 +/* 0954E4 7F060974 E6080100 */ swc1 $f8, 0x100($s0) +/* 0954E8 7F060978 C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 0954EC 7F06097C 46069400 */ add.s $f16, $f18, $f6 +/* 0954F0 7F060980 E6100104 */ swc1 $f16, 0x104($s0) +/* 0954F4 7F060984 8C4D0000 */ lw $t5, ($v0) +/* 0954F8 7F060988 006D082A */ slt $at, $v1, $t5 +/* 0954FC 7F06098C 5420FFD0 */ bnezl $at, .Ljp7F0608D0 +/* 095500 7F060990 C60A00E4 */ lwc1 $f10, 0xe4($s0) +.Ljp7F060994: +/* 095504 7F060994 3C018005 */ lui $at, %hi(D_80053DE4) # $at, 0x8005 +/* 095508 7F060998 C4203E14 */ lwc1 $f0, %lo(D_80053DE4)($at) +/* 09550C 7F06099C C60A00E4 */ lwc1 $f10, 0xe4($s0) +/* 095510 7F0609A0 C60400E8 */ lwc1 $f4, 0xe8($s0) +/* 095514 7F0609A4 C60600EC */ lwc1 $f6, 0xec($s0) +/* 095518 7F0609A8 46005202 */ mul.s $f8, $f10, $f0 +/* 09551C 7F0609AC C60A00F0 */ lwc1 $f10, 0xf0($s0) +/* 095520 7F0609B0 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095524 7F0609B4 46002482 */ mul.s $f18, $f4, $f0 +/* 095528 7F0609B8 C60400F4 */ lwc1 $f4, 0xf4($s0) +/* 09552C 7F0609BC 46003402 */ mul.s $f16, $f6, $f0 +/* 095530 7F0609C0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 095534 7F0609C4 C60600F8 */ lwc1 $f6, 0xf8($s0) +/* 095538 7F0609C8 46005202 */ mul.s $f8, $f10, $f0 +/* 09553C 7F0609CC E61200C4 */ swc1 $f18, 0xc4($s0) +/* 095540 7F0609D0 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 095544 7F0609D4 46002482 */ mul.s $f18, $f4, $f0 +/* 095548 7F0609D8 E61000C8 */ swc1 $f16, 0xc8($s0) +/* 09554C 7F0609DC C6040100 */ lwc1 $f4, 0x100($s0) +/* 095550 7F0609E0 46003402 */ mul.s $f16, $f6, $f0 +/* 095554 7F0609E4 E60800CC */ swc1 $f8, 0xcc($s0) +/* 095558 7F0609E8 C6060104 */ lwc1 $f6, 0x104($s0) +/* 09555C 7F0609EC 46005202 */ mul.s $f8, $f10, $f0 +/* 095560 7F0609F0 E61200D0 */ swc1 $f18, 0xd0($s0) +/* 095564 7F0609F4 46002482 */ mul.s $f18, $f4, $f0 +/* 095568 7F0609F8 E61000D4 */ swc1 $f16, 0xd4($s0) +/* 09556C 7F0609FC 46003402 */ mul.s $f16, $f6, $f0 +/* 095570 7F060A00 E60800D8 */ swc1 $f8, 0xd8($s0) +/* 095574 7F060A04 E61200DC */ swc1 $f18, 0xdc($s0) +/* 095578 7F060A08 14800009 */ bnez $a0, .Ljp7F060A30 +/* 09557C 7F060A0C E61000E0 */ swc1 $f16, 0xe0($s0) +/* 095580 7F060A10 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 095584 7F060A14 00000000 */ nop +/* 095588 7F060A18 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 09558C 7F060A1C C60A01B8 */ lwc1 $f10, 0x1b8($s0) +/* 095590 7F060A20 46080100 */ add.s $f4, $f0, $f8 +/* 095594 7F060A24 46045480 */ add.s $f18, $f10, $f4 +/* 095598 7F060A28 10000008 */ b .Ljp7F060A4C +/* 09559C 7F060A2C E7B20194 */ swc1 $f18, 0x194($sp) +.Ljp7F060A30: +/* 0955A0 7F060A30 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 0955A4 7F060A34 00000000 */ nop +/* 0955A8 7F060A38 C60600C0 */ lwc1 $f6, 0xc0($s0) +/* 0955AC 7F060A3C C60801B8 */ lwc1 $f8, 0x1b8($s0) +/* 0955B0 7F060A40 46060400 */ add.s $f16, $f0, $f6 +/* 0955B4 7F060A44 46088281 */ sub.s $f10, $f16, $f8 +/* 0955B8 7F060A48 E7AA0194 */ swc1 $f10, 0x194($sp) +.Ljp7F060A4C: +/* 0955BC 7F060A4C 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 0955C0 7F060A50 C61200C4 */ lwc1 $f18, 0xc4($s0) +/* 0955C4 7F060A54 C61001BC */ lwc1 $f16, 0x1bc($s0) +/* 0955C8 7F060A58 C5C40008 */ lwc1 $f4, 8($t6) +/* 0955CC 7F060A5C 8FA400FC */ lw $a0, 0xfc($sp) +/* 0955D0 7F060A60 24010019 */ li $at, 25 +/* 0955D4 7F060A64 46122180 */ add.s $f6, $f4, $f18 +/* 0955D8 7F060A68 46068200 */ add.s $f8, $f16, $f6 +/* 0955DC 7F060A6C E7A80198 */ swc1 $f8, 0x198($sp) +/* 0955E0 7F060A70 C60400C8 */ lwc1 $f4, 0xc8($s0) +/* 0955E4 7F060A74 C5CA000C */ lwc1 $f10, 0xc($t6) +/* 0955E8 7F060A78 C61001C0 */ lwc1 $f16, 0x1c0($s0) +/* 0955EC 7F060A7C 46045480 */ add.s $f18, $f10, $f4 +/* 0955F0 7F060A80 46128180 */ add.s $f6, $f16, $f18 +/* 0955F4 7F060A84 10810005 */ beq $a0, $at, .Ljp7F060A9C +/* 0955F8 7F060A88 E7A6019C */ swc1 $f6, 0x19c($sp) +/* 0955FC 7F060A8C 2401001E */ li $at, 30 +/* 095600 7F060A90 10810002 */ beq $a0, $at, .Ljp7F060A9C +/* 095604 7F060A94 24010017 */ li $at, 23 +/* 095608 7F060A98 14810028 */ bne $a0, $at, .Ljp7F060B3C +.Ljp7F060A9C: +/* 09560C 7F060A9C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 095610 7F060AA0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 095614 7F060AA4 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095618 7F060AA8 44810000 */ mtc1 $at, $f0 +/* 09561C 7F060AAC C44A00A0 */ lwc1 $f10, 0xa0($v0) +/* 095620 7F060AB0 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095624 7F060AB4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 095628 7F060AB8 46005103 */ div.s $f4, $f10, $f0 +/* 09562C 7F060ABC 44819000 */ mtc1 $at, $f18 +/* 095630 7F060AC0 24010019 */ li $at, 25 +/* 095634 7F060AC4 46044400 */ add.s $f16, $f8, $f4 +/* 095638 7F060AC8 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 09563C 7F060ACC E7B00198 */ swc1 $f16, 0x198($sp) +/* 095640 7F060AD0 C44600A0 */ lwc1 $f6, 0xa0($v0) +/* 095644 7F060AD4 46069282 */ mul.s $f10, $f18, $f6 +/* 095648 7F060AD8 46005203 */ div.s $f8, $f10, $f0 +/* 09564C 7F060ADC 46082400 */ add.s $f16, $f4, $f8 +/* 095650 7F060AE0 14810014 */ bne $a0, $at, .Ljp7F060B34 +/* 095654 7F060AE4 E7B0019C */ swc1 $f16, 0x19c($sp) +/* 095658 7F060AE8 0FC2969A */ jal cur_player_get_screen_setting +/* 09565C 7F060AEC 00000000 */ nop +/* 095660 7F060AF0 24010001 */ li $at, 1 +/* 095664 7F060AF4 5041000B */ beql $v0, $at, .Ljp7F060B24 +/* 095668 7F060AF8 3C014040 */ lui $at, 0x4040 +/* 09566C 7F060AFC 0FC2969A */ jal cur_player_get_screen_setting +/* 095670 7F060B00 00000000 */ nop +/* 095674 7F060B04 24010002 */ li $at, 2 +/* 095678 7F060B08 50410006 */ beql $v0, $at, .Ljp7F060B24 +/* 09567C 7F060B0C 3C014040 */ lui $at, 0x4040 +/* 095680 7F060B10 0FC296A0 */ jal get_screen_ratio +/* 095684 7F060B14 00000000 */ nop +/* 095688 7F060B18 24010001 */ li $at, 1 +/* 09568C 7F060B1C 14410005 */ bne $v0, $at, .Ljp7F060B34 +/* 095690 7F060B20 3C014040 */ li $at, 0x40400000 # 3.000000 +.Ljp7F060B24: +/* 095694 7F060B24 44813000 */ mtc1 $at, $f6 +/* 095698 7F060B28 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09569C 7F060B2C 46069281 */ sub.s $f10, $f18, $f6 +/* 0956A0 7F060B30 E7AA0198 */ swc1 $f10, 0x198($sp) +.Ljp7F060B34: +/* 0956A4 7F060B34 1000002C */ b .Ljp7F060BE8 +/* 0956A8 7F060B38 8FA400FC */ lw $a0, 0xfc($sp) +.Ljp7F060B3C: +/* 0956AC 7F060B3C 2401001F */ li $at, 31 +/* 0956B0 7F060B40 14810016 */ bne $a0, $at, .Ljp7F060B9C +/* 0956B4 7F060B44 3C028008 */ lui $v0, %hi(pPlayer) +/* 0956B8 7F060B48 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0956BC 7F060B4C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0956C0 7F060B50 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0956C4 7F060B54 44810000 */ mtc1 $at, $f0 +/* 0956C8 7F060B58 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0956CC 7F060B5C 44812000 */ mtc1 $at, $f4 +/* 0956D0 7F060B60 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0956D4 7F060B64 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 0956D8 7F060B68 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 0956DC 7F060B6C 46082402 */ mul.s $f16, $f4, $f8 +/* 0956E0 7F060B70 44812000 */ mtc1 $at, $f4 +/* 0956E4 7F060B74 46008483 */ div.s $f18, $f16, $f0 +/* 0956E8 7F060B78 46123280 */ add.s $f10, $f6, $f18 +/* 0956EC 7F060B7C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0956F0 7F060B80 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 0956F4 7F060B84 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0956F8 7F060B88 46082402 */ mul.s $f16, $f4, $f8 +/* 0956FC 7F060B8C 46008183 */ div.s $f6, $f16, $f0 +/* 095700 7F060B90 46069280 */ add.s $f10, $f18, $f6 +/* 095704 7F060B94 10000014 */ b .Ljp7F060BE8 +/* 095708 7F060B98 E7AA019C */ swc1 $f10, 0x19c($sp) +.Ljp7F060B9C: +/* 09570C 7F060B9C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 095710 7F060BA0 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095714 7F060BA4 44810000 */ mtc1 $at, $f0 +/* 095718 7F060BA8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 09571C 7F060BAC 44812000 */ mtc1 $at, $f4 +/* 095720 7F060BB0 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095724 7F060BB4 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095728 7F060BB8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09572C 7F060BBC 46082402 */ mul.s $f16, $f4, $f8 +/* 095730 7F060BC0 44812000 */ mtc1 $at, $f4 +/* 095734 7F060BC4 46008483 */ div.s $f18, $f16, $f0 +/* 095738 7F060BC8 46123280 */ add.s $f10, $f6, $f18 +/* 09573C 7F060BCC C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095740 7F060BD0 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 095744 7F060BD4 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095748 7F060BD8 46082402 */ mul.s $f16, $f4, $f8 +/* 09574C 7F060BDC 46008183 */ div.s $f6, $f16, $f0 +/* 095750 7F060BE0 46069280 */ add.s $f10, $f18, $f6 +/* 095754 7F060BE4 E7AA019C */ swc1 $f10, 0x19c($sp) +.Ljp7F060BE8: +/* 095758 7F060BE8 820F000C */ lb $t7, 0xc($s0) +/* 09575C 7F060BEC 11E00047 */ beqz $t7, .Ljp7F060D0C +/* 095760 7F060BF0 00000000 */ nop +/* 095764 7F060BF4 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095768 7F060BF8 24050020 */ li $a1, 32 +/* 09576C 7F060BFC 10400043 */ beqz $v0, .Ljp7F060D0C +/* 095770 7F060C00 8FA400FC */ lw $a0, 0xfc($sp) +/* 095774 7F060C04 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095778 7F060C08 24050040 */ li $a1, 64 +/* 09577C 7F060C0C 10400016 */ beqz $v0, .Ljp7F060C68 +/* 095780 7F060C10 00000000 */ nop +/* 095784 7F060C14 0C002918 */ jal get_random_value +/* 095788 7F060C18 00000000 */ nop +/* 09578C 7F060C1C 44822000 */ mtc1 $v0, $f4 +/* 095790 7F060C20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095794 7F060C24 04410004 */ bgez $v0, .Ljp7F060C38 +/* 095798 7F060C28 46802220 */ cvt.s.w $f8, $f4 +/* 09579C 7F060C2C 44818000 */ mtc1 $at, $f16 +/* 0957A0 7F060C30 00000000 */ nop +/* 0957A4 7F060C34 46104200 */ add.s $f8, $f8, $f16 +.Ljp7F060C38: +/* 0957A8 7F060C38 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0957AC 7F060C3C 44819000 */ mtc1 $at, $f18 +/* 0957B0 7F060C40 3C018005 */ lui $at, %hi(D_80053DE8) # $at, 0x8005 +/* 0957B4 7F060C44 C42A3E18 */ lwc1 $f10, %lo(D_80053DE8)($at) +/* 0957B8 7F060C48 46124182 */ mul.s $f6, $f8, $f18 +/* 0957BC 7F060C4C 3C018005 */ lui $at, %hi(D_80053DEC) # $at, 0x8005 +/* 0957C0 7F060C50 C4303E1C */ lwc1 $f16, %lo(D_80053DEC)($at) +/* 0957C4 7F060C54 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 0957C8 7F060C58 460A3102 */ mul.s $f4, $f6, $f10 +/* 0957CC 7F060C5C 46048201 */ sub.s $f8, $f16, $f4 +/* 0957D0 7F060C60 46089180 */ add.s $f6, $f18, $f8 +/* 0957D4 7F060C64 E7A60194 */ swc1 $f6, 0x194($sp) +.Ljp7F060C68: +/* 0957D8 7F060C68 0C002918 */ jal get_random_value +/* 0957DC 7F060C6C 00000000 */ nop +/* 0957E0 7F060C70 44825000 */ mtc1 $v0, $f10 +/* 0957E4 7F060C74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0957E8 7F060C78 04410004 */ bgez $v0, .Ljp7F060C8C +/* 0957EC 7F060C7C 46805420 */ cvt.s.w $f16, $f10 +/* 0957F0 7F060C80 44812000 */ mtc1 $at, $f4 +/* 0957F4 7F060C84 00000000 */ nop +/* 0957F8 7F060C88 46048400 */ add.s $f16, $f16, $f4 +.Ljp7F060C8C: +/* 0957FC 7F060C8C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095800 7F060C90 44819000 */ mtc1 $at, $f18 +/* 095804 7F060C94 3C018005 */ lui $at, %hi(D_80053DF0) # $at, 0x8005 +/* 095808 7F060C98 C4263E20 */ lwc1 $f6, %lo(D_80053DF0)($at) +/* 09580C 7F060C9C 46128202 */ mul.s $f8, $f16, $f18 +/* 095810 7F060CA0 3C018005 */ lui $at, %hi(D_80053DF4) # $at, 0x8005 +/* 095814 7F060CA4 C4243E24 */ lwc1 $f4, %lo(D_80053DF4)($at) +/* 095818 7F060CA8 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09581C 7F060CAC 46064282 */ mul.s $f10, $f8, $f6 +/* 095820 7F060CB0 460A2401 */ sub.s $f16, $f4, $f10 +/* 095824 7F060CB4 46109200 */ add.s $f8, $f18, $f16 +/* 095828 7F060CB8 0C002918 */ jal get_random_value +/* 09582C 7F060CBC E7A80198 */ swc1 $f8, 0x198($sp) +/* 095830 7F060CC0 44823000 */ mtc1 $v0, $f6 +/* 095834 7F060CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095838 7F060CC8 04410004 */ bgez $v0, .Ljp7F060CDC +/* 09583C 7F060CCC 46803120 */ cvt.s.w $f4, $f6 +/* 095840 7F060CD0 44815000 */ mtc1 $at, $f10 +/* 095844 7F060CD4 00000000 */ nop +/* 095848 7F060CD8 460A2100 */ add.s $f4, $f4, $f10 +.Ljp7F060CDC: +/* 09584C 7F060CDC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095850 7F060CE0 44819000 */ mtc1 $at, $f18 +/* 095854 7F060CE4 3C018005 */ lui $at, %hi(D_80053DF8) # $at, 0x8005 +/* 095858 7F060CE8 C4283E28 */ lwc1 $f8, %lo(D_80053DF8)($at) +/* 09585C 7F060CEC 46122402 */ mul.s $f16, $f4, $f18 +/* 095860 7F060CF0 3C018005 */ lui $at, %hi(D_80053DFC) +/* 095864 7F060CF4 C42A3E2C */ lwc1 $f10, %lo(D_80053DFC)($at) +/* 095868 7F060CF8 C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 09586C 7F060CFC 46088182 */ mul.s $f6, $f16, $f8 +/* 095870 7F060D00 46065101 */ sub.s $f4, $f10, $f6 +/* 095874 7F060D04 46049400 */ add.s $f16, $f18, $f4 +/* 095878 7F060D08 E7B0019C */ swc1 $f16, 0x19c($sp) +.Ljp7F060D0C: +/* 09587C 7F060D0C 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 095880 7F060D10 00000000 */ nop +/* 095884 7F060D14 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 095888 7F060D18 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09588C 7F060D1C 0FC1E2AD */ jal getPlayer_c_screenleft +/* 095890 7F060D20 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095894 7F060D24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095898 7F060D28 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09589C 7F060D2C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0958A0 7F060D30 44811000 */ mtc1 $at, $f2 +/* 0958A4 7F060D34 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0958A8 7F060D38 C7080FFC */ lwc1 $f8, 0xffc($t8) +/* 0958AC 7F060D3C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 0958B0 7F060D40 46023482 */ mul.s $f18, $f6, $f2 +/* 0958B4 7F060D44 46004281 */ sub.s $f10, $f8, $f0 +/* 0958B8 7F060D48 C7300018 */ lwc1 $f16, 0x18($t9) +/* 0958BC 7F060D4C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0958C0 7F060D50 46125101 */ sub.s $f4, $f10, $f18 +/* 0958C4 7F060D54 46102202 */ mul.s $f8, $f4, $f16 +/* 0958C8 7F060D58 C7A40194 */ lwc1 $f4, 0x194($sp) +/* 0958CC 7F060D5C 46023282 */ mul.s $f10, $f6, $f2 +/* 0958D0 7F060D60 460A4483 */ div.s $f18, $f8, $f10 +/* 0958D4 7F060D64 46122400 */ add.s $f16, $f4, $f18 +/* 0958D8 7F060D68 0FC1E2B1 */ jal getPlayer_c_screentop +/* 0958DC 7F060D6C E7B00194 */ swc1 $f16, 0x194($sp) +/* 0958E0 7F060D70 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 0958E4 7F060D74 E7A00050 */ swc1 $f0, 0x50($sp) +/* 0958E8 7F060D78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0958EC 7F060D7C 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0958F0 7F060D80 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0958F4 7F060D84 44813000 */ mtc1 $at, $f6 +/* 0958F8 7F060D88 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0958FC 7F060D8C C5AA1000 */ lwc1 $f10, 0x1000($t5) +/* 095900 7F060D90 46060202 */ mul.s $f8, $f0, $f6 +/* 095904 7F060D94 46045481 */ sub.s $f18, $f10, $f4 +/* 095908 7F060D98 4612403C */ c.lt.s $f8, $f18 +/* 09590C 7F060D9C 00000000 */ nop +/* 095910 7F060DA0 4500001A */ bc1f .Ljp7F060E0C +/* 095914 7F060DA4 00000000 */ nop +/* 095918 7F060DA8 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 09591C 7F060DAC 00000000 */ nop +/* 095920 7F060DB0 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095924 7F060DB4 E7A00048 */ swc1 $f0, 0x48($sp) +/* 095928 7F060DB8 0FC1E2B1 */ jal getPlayer_c_screentop +/* 09592C 7F060DBC E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095930 7F060DC0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095934 7F060DC4 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 095938 7F060DC8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09593C 7F060DCC 44811000 */ mtc1 $at, $f2 +/* 095940 7F060DD0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 095944 7F060DD4 C5D01000 */ lwc1 $f16, 0x1000($t6) +/* 095948 7F060DD8 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 09594C 7F060DDC 46025102 */ mul.s $f4, $f10, $f2 +/* 095950 7F060DE0 46008181 */ sub.s $f6, $f16, $f0 +/* 095954 7F060DE4 C5F20014 */ lwc1 $f18, 0x14($t7) +/* 095958 7F060DE8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 09595C 7F060DEC 46043201 */ sub.s $f8, $f6, $f4 +/* 095960 7F060DF0 46124402 */ mul.s $f16, $f8, $f18 +/* 095964 7F060DF4 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095968 7F060DF8 46025182 */ mul.s $f6, $f10, $f2 +/* 09596C 7F060DFC 46068103 */ div.s $f4, $f16, $f6 +/* 095970 7F060E00 46044481 */ sub.s $f18, $f8, $f4 +/* 095974 7F060E04 1000001A */ b .Ljp7F060E70 +/* 095978 7F060E08 E7B20198 */ swc1 $f18, 0x198($sp) +.Ljp7F060E0C: +/* 09597C 7F060E0C 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095980 7F060E10 00000000 */ nop +/* 095984 7F060E14 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095988 7F060E18 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09598C 7F060E1C 0FC1E2B1 */ jal getPlayer_c_screentop +/* 095990 7F060E20 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095994 7F060E24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095998 7F060E28 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09599C 7F060E2C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0959A0 7F060E30 44818000 */ mtc1 $at, $f16 +/* 0959A4 7F060E34 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0959A8 7F060E38 C7081000 */ lwc1 $f8, 0x1000($t8) +/* 0959AC 7F060E3C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 0959B0 7F060E40 46105182 */ mul.s $f6, $f10, $f16 +/* 0959B4 7F060E44 46004101 */ sub.s $f4, $f8, $f0 +/* 0959B8 7F060E48 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 0959BC 7F060E4C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0959C0 7F060E50 46062481 */ sub.s $f18, $f4, $f6 +/* 0959C4 7F060E54 44812000 */ mtc1 $at, $f4 +/* 0959C8 7F060E58 460A9402 */ mul.s $f16, $f18, $f10 +/* 0959CC 7F060E5C C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 0959D0 7F060E60 46044182 */ mul.s $f6, $f8, $f4 +/* 0959D4 7F060E64 46068483 */ div.s $f18, $f16, $f6 +/* 0959D8 7F060E68 46125201 */ sub.s $f8, $f10, $f18 +/* 0959DC 7F060E6C E7A80198 */ swc1 $f8, 0x198($sp) +.Ljp7F060E70: +/* 0959E0 7F060E70 0FC172CD */ jal sub_GAME_7F05C614 +/* 0959E4 7F060E74 00000000 */ nop +/* 0959E8 7F060E78 0FC1613C */ jal matrix_4x4_set_identity +/* 0959EC 7F060E7C 27A40154 */ addiu $a0, $sp, 0x154 +/* 0959F0 7F060E80 8FA200FC */ lw $v0, 0xfc($sp) +/* 0959F4 7F060E84 2401001E */ li $at, 30 +/* 0959F8 7F060E88 10410002 */ beq $v0, $at, .Ljp7F060E94 +/* 0959FC 7F060E8C 24010017 */ li $at, 23 +/* 095A00 7F060E90 14410010 */ bne $v0, $at, .Ljp7F060ED4 +.Ljp7F060E94: +/* 095A04 7F060E94 3C0D8003 */ lui $t5, %hi(D_80035C70) # $t5, 0x8003 +/* 095A08 7F060E98 25AD5CB0 */ addiu $t5, %lo(D_80035C70) # addiu $t5, $t5, 0x5cb0 +/* 095A0C 7F060E9C 8DA10000 */ lw $at, ($t5) +/* 095A10 7F060EA0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 095A14 7F060EA4 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A18 7F060EA8 AC810000 */ sw $at, ($a0) +/* 095A1C 7F060EAC 8DAF0004 */ lw $t7, 4($t5) +/* 095A20 7F060EB0 AC8F0004 */ sw $t7, 4($a0) +/* 095A24 7F060EB4 8DA10008 */ lw $at, 8($t5) +/* 095A28 7F060EB8 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095A2C 7F060EBC AC810008 */ sw $at, 8($a0) +/* 095A30 7F060EC0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095A34 7F060EC4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095A38 7F060EC8 27A50154 */ addiu $a1, $sp, 0x154 +/* 095A3C 7F060ECC 10000039 */ b .Ljp7F060FB4 +/* 095A40 7F060ED0 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060ED4: +/* 095A44 7F060ED4 2401001F */ li $at, 31 +/* 095A48 7F060ED8 14410010 */ bne $v0, $at, .Ljp7F060F1C +/* 095A4C 7F060EDC 3C188003 */ lui $t8, %hi(D_80035C7C) # $t8, 0x8003 +/* 095A50 7F060EE0 27185CBC */ addiu $t8, %lo(D_80035C7C) # addiu $t8, $t8, 0x5cbc +/* 095A54 7F060EE4 8F010000 */ lw $at, ($t8) +/* 095A58 7F060EE8 27A400AC */ addiu $a0, $sp, 0xac +/* 095A5C 7F060EEC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A60 7F060EF0 AC810000 */ sw $at, ($a0) +/* 095A64 7F060EF4 8F0E0004 */ lw $t6, 4($t8) +/* 095A68 7F060EF8 AC8E0004 */ sw $t6, 4($a0) +/* 095A6C 7F060EFC 8F010008 */ lw $at, 8($t8) +/* 095A70 7F060F00 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095A74 7F060F04 AC810008 */ sw $at, 8($a0) +/* 095A78 7F060F08 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095A7C 7F060F0C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095A80 7F060F10 27A50154 */ addiu $a1, $sp, 0x154 +/* 095A84 7F060F14 10000027 */ b .Ljp7F060FB4 +/* 095A88 7F060F18 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060F1C: +/* 095A8C 7F060F1C 24010001 */ li $at, 1 +/* 095A90 7F060F20 14410023 */ bne $v0, $at, .Ljp7F060FB0 +/* 095A94 7F060F24 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 095A98 7F060F28 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 095A9C 7F060F2C 24010011 */ li $at, 17 +/* 095AA0 7F060F30 3C198003 */ lui $t9, %hi(D_80035C88) # $t9, 0x8003 +/* 095AA4 7F060F34 8DAF2A38 */ lw $t7, 0x2a38($t5) +/* 095AA8 7F060F38 27395CC8 */ addiu $t9, %lo(D_80035C88) # addiu $t9, $t9, 0x5cc8 +/* 095AAC 7F060F3C 55E1001D */ bnel $t7, $at, .Ljp7F060FB4 +/* 095AB0 7F060F40 8E0D00BC */ lw $t5, 0xbc($s0) +/* 095AB4 7F060F44 8F210000 */ lw $at, ($t9) +/* 095AB8 7F060F48 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 095ABC 7F060F4C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AC0 7F060F50 AC810000 */ sw $at, ($a0) +/* 095AC4 7F060F54 8F2E0004 */ lw $t6, 4($t9) +/* 095AC8 7F060F58 AC8E0004 */ sw $t6, 4($a0) +/* 095ACC 7F060F5C 8F210008 */ lw $at, 8($t9) +/* 095AD0 7F060F60 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095AD4 7F060F64 AC810008 */ sw $at, 8($a0) +/* 095AD8 7F060F68 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095ADC 7F060F6C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095AE0 7F060F70 27A50154 */ addiu $a1, $sp, 0x154 +/* 095AE4 7F060F74 3C01C020 */ li $at, 0xC0200000 # -2.500000 +/* 095AE8 7F060F78 44818000 */ mtc1 $at, $f16 +/* 095AEC 7F060F7C C7A40194 */ lwc1 $f4, 0x194($sp) +/* 095AF0 7F060F80 3C018005 */ lui $at, %hi(D_80053E00) # $at, 0x8005 +/* 095AF4 7F060F84 C4323E30 */ lwc1 $f18, %lo(D_80053E00)($at) +/* 095AF8 7F060F88 46102180 */ add.s $f6, $f4, $f16 +/* 095AFC 7F060F8C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095B00 7F060F90 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095B04 7F060F94 44818000 */ mtc1 $at, $f16 +/* 095B08 7F060F98 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 095B0C 7F060F9C E7A60194 */ swc1 $f6, 0x194($sp) +/* 095B10 7F060FA0 46125200 */ add.s $f8, $f10, $f18 +/* 095B14 7F060FA4 46102180 */ add.s $f6, $f4, $f16 +/* 095B18 7F060FA8 E7A80198 */ swc1 $f8, 0x198($sp) +/* 095B1C 7F060FAC E7A6019C */ swc1 $f6, 0x19c($sp) +.Ljp7F060FB0: +/* 095B20 7F060FB0 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060FB4: +/* 095B24 7F060FB4 51A00017 */ beql $t5, $zero, .Ljp7F061014 +/* 095B28 7F060FB8 44802000 */ mtc1 $zero, $f4 +/* 095B2C 7F060FBC C7AA0194 */ lwc1 $f10, 0x194($sp) +/* 095B30 7F060FC0 C61200AC */ lwc1 $f18, 0xac($s0) +/* 095B34 7F060FC4 C7A40198 */ lwc1 $f4, 0x198($sp) +/* 095B38 7F060FC8 2604007C */ addiu $a0, $s0, 0x7c +/* 095B3C 7F060FCC 46125200 */ add.s $f8, $f10, $f18 +/* 095B40 7F060FD0 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 095B44 7F060FD4 27A50154 */ addiu $a1, $sp, 0x154 +/* 095B48 7F060FD8 E7A80194 */ swc1 $f8, 0x194($sp) +/* 095B4C 7F060FDC C61000B0 */ lwc1 $f16, 0xb0($s0) +/* 095B50 7F060FE0 46102180 */ add.s $f6, $f4, $f16 +/* 095B54 7F060FE4 E7A60198 */ swc1 $f6, 0x198($sp) +/* 095B58 7F060FE8 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 095B5C 7F060FEC 46125200 */ add.s $f8, $f10, $f18 +/* 095B60 7F060FF0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095B64 7F060FF4 E7A8019C */ swc1 $f8, 0x19c($sp) +/* 095B68 7F060FF8 44800000 */ mtc1 $zero, $f0 +/* 095B6C 7F060FFC 00000000 */ nop +/* 095B70 7F061000 E7A00184 */ swc1 $f0, 0x184($sp) +/* 095B74 7F061004 E7A00188 */ swc1 $f0, 0x188($sp) +/* 095B78 7F061008 1000000A */ b .Ljp7F061034 +/* 095B7C 7F06100C E7A0018C */ swc1 $f0, 0x18c($sp) +/* 095B80 7F061010 44802000 */ mtc1 $zero, $f4 +.Ljp7F061014: +/* 095B84 7F061014 44808000 */ mtc1 $zero, $f16 +/* 095B88 7F061018 44803000 */ mtc1 $zero, $f6 +/* 095B8C 7F06101C 44805000 */ mtc1 $zero, $f10 +/* 095B90 7F061020 44800000 */ mtc1 $zero, $f0 +/* 095B94 7F061024 E6040078 */ swc1 $f4, 0x78($s0) +/* 095B98 7F061028 E610006C */ swc1 $f16, 0x6c($s0) +/* 095B9C 7F06102C E6060070 */ swc1 $f6, 0x70($s0) +/* 095BA0 7F061030 E60A0074 */ swc1 $f10, 0x74($s0) +.Ljp7F061034: +/* 095BA4 7F061034 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 095BA8 7F061038 44050000 */ mfc1 $a1, $f0 +/* 095BAC 7F06103C 44060000 */ mfc1 $a2, $f0 +/* 095BB0 7F061040 E7B20010 */ swc1 $f18, 0x10($sp) +/* 095BB4 7F061044 C60800D0 */ lwc1 $f8, 0xd0($s0) +/* 095BB8 7F061048 44070000 */ mfc1 $a3, $f0 +/* 095BBC 7F06104C 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095BC0 7F061050 E7A80014 */ swc1 $f8, 0x14($sp) +/* 095BC4 7F061054 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 095BC8 7F061058 E7A40018 */ swc1 $f4, 0x18($sp) +/* 095BCC 7F06105C C61000D8 */ lwc1 $f16, 0xd8($s0) +/* 095BD0 7F061060 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 095BD4 7F061064 C60600DC */ lwc1 $f6, 0xdc($s0) +/* 095BD8 7F061068 E7A60020 */ swc1 $f6, 0x20($sp) +/* 095BDC 7F06106C C60A00E0 */ lwc1 $f10, 0xe0($s0) +/* 095BE0 7F061070 0FC1678A */ jal sub_GAME_7F059908 +/* 095BE4 7F061074 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 095BE8 7F061078 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095BEC 7F06107C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095BF0 7F061080 27A50154 */ addiu $a1, $sp, 0x154 +/* 095BF4 7F061084 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095BF8 7F061088 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 095BFC 7F06108C C7B00198 */ lwc1 $f16, 0x198($sp) +/* 095C00 7F061090 C60601CC */ lwc1 $f6, 0x1cc($s0) +/* 095C04 7F061094 46089101 */ sub.s $f4, $f18, $f8 +/* 095C08 7F061098 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 095C0C 7F06109C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095C10 7F0610A0 46068281 */ sub.s $f10, $f16, $f6 +/* 095C14 7F0610A4 44062000 */ mfc1 $a2, $f4 +/* 095C18 7F0610A8 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095C1C 7F0610AC 46089101 */ sub.s $f4, $f18, $f8 +/* 095C20 7F0610B0 44075000 */ mfc1 $a3, $f10 +/* 095C24 7F0610B4 24050000 */ li $a1, 0 +/* 095C28 7F0610B8 0FC16882 */ jal matrix_4x4_align +/* 095C2C 7F0610BC E7A40010 */ swc1 $f4, 0x10($sp) +/* 095C30 7F0610C0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095C34 7F0610C4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095C38 7F0610C8 27A50154 */ addiu $a1, $sp, 0x154 +/* 095C3C 7F0610CC 27A40154 */ addiu $a0, $sp, 0x154 +/* 095C40 7F0610D0 0FC16150 */ jal matrix_4x4_copy +/* 095C44 7F0610D4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095C48 7F0610D8 27A40194 */ addiu $a0, $sp, 0x194 +/* 095C4C 7F0610DC 0FC163AE */ jal matrix_4x4_set_position +/* 095C50 7F0610E0 27A50264 */ addiu $a1, $sp, 0x264 +/* 095C54 7F0610E4 26050228 */ addiu $a1, $s0, 0x228 +/* 095C58 7F0610E8 AFA50044 */ sw $a1, 0x44($sp) +/* 095C5C 7F0610EC 0FC16150 */ jal matrix_4x4_copy +/* 095C60 7F0610F0 27A40264 */ addiu $a0, $sp, 0x264 +/* 095C64 7F0610F4 26040268 */ addiu $a0, $s0, 0x268 +/* 095C68 7F0610F8 AFA40040 */ sw $a0, 0x40($sp) +/* 095C6C 7F0610FC 0FC16150 */ jal matrix_4x4_copy +/* 095C70 7F061100 260502A8 */ addiu $a1, $s0, 0x2a8 +/* 095C74 7F061104 0FC1E28D */ jal sub_GAME_7F078444 +/* 095C78 7F061108 00000000 */ nop +/* 095C7C 7F06110C 00402025 */ move $a0, $v0 +/* 095C80 7F061110 8FA50044 */ lw $a1, 0x44($sp) +/* 095C84 7F061114 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 095C88 7F061118 8FA60040 */ lw $a2, 0x40($sp) +/* 095C8C 7F06111C 240F0001 */ li $t7, 1 +/* 095C90 7F061120 A20F000F */ sb $t7, 0xf($s0) +/* 095C94 7F061124 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 095C98 7F061128 8FA400FC */ lw $a0, 0xfc($sp) +/* 095C9C 7F06112C 10400017 */ beqz $v0, .Ljp7F06118C +/* 095CA0 7F061130 8FA400FC */ lw $a0, 0xfc($sp) +/* 095CA4 7F061134 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095CA8 7F061138 24050800 */ li $a1, 2048 +/* 095CAC 7F06113C 10400013 */ beqz $v0, .Ljp7F06118C +/* 095CB0 7F061140 8FA400FC */ lw $a0, 0xfc($sp) +/* 095CB4 7F061144 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095CB8 7F061148 24052000 */ li $a1, 8192 +/* 095CBC 7F06114C 54400010 */ bnezl $v0, .Ljp7F061190 +/* 095CC0 7F061150 A200000F */ sb $zero, 0xf($s0) +/* 095CC4 7F061154 8E020024 */ lw $v0, 0x24($s0) +/* 095CC8 7F061158 24010006 */ li $at, 6 +/* 095CCC 7F06115C 1041000B */ beq $v0, $at, .Ljp7F06118C +/* 095CD0 7F061160 24010007 */ li $at, 7 +/* 095CD4 7F061164 5041000A */ beql $v0, $at, .Ljp7F061190 +/* 095CD8 7F061168 A200000F */ sb $zero, 0xf($s0) +/* 095CDC 7F06116C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 095CE0 7F061170 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095CE4 7F061174 50400006 */ beql $v0, $zero, .Ljp7F061190 +/* 095CE8 7F061178 A200000F */ sb $zero, 0xf($s0) +/* 095CEC 7F06117C 0FC17508 */ jal get_itemtype_in_hand +/* 095CF0 7F061180 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095CF4 7F061184 54400003 */ bnezl $v0, .Ljp7F061194 +/* 095CF8 7F061188 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F06118C: +/* 095CFC 7F06118C A200000F */ sb $zero, 0xf($s0) +.Ljp7F061190: +/* 095D00 7F061190 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F061194: +/* 095D04 7F061194 8FA400FC */ lw $a0, 0xfc($sp) +/* 095D08 7F061198 5F000007 */ bgtzl $t8, .Ljp7F0611B8 +/* 095D0C 7F06119C 8219000F */ lb $t9, 0xf($s0) +/* 095D10 7F0611A0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095D14 7F0611A4 24050002 */ li $a1, 2 +/* 095D18 7F0611A8 50400003 */ beql $v0, $zero, .Ljp7F0611B8 +/* 095D1C 7F0611AC 8219000F */ lb $t9, 0xf($s0) +/* 095D20 7F0611B0 A200000F */ sb $zero, 0xf($s0) +/* 095D24 7F0611B4 8219000F */ lb $t9, 0xf($s0) +.Ljp7F0611B8: +/* 095D28 7F0611B8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 095D2C 7F0611BC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 095D30 7F0611C0 532002D0 */ beql $t9, $zero, .Ljp7F061D04 +/* 095D34 7F0611C4 8FAE00FC */ lw $t6, 0xfc($sp) +/* 095D38 7F0611C8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 095D3C 7F0611CC 000D7940 */ sll $t7, $t5, 5 +/* 095D40 7F0611D0 00001825 */ move $v1, $zero +/* 095D44 7F0611D4 01CF1021 */ addu $v0, $t6, $t7 +/* 095D48 7F0611D8 8444081E */ lh $a0, 0x81e($v0) +/* 095D4C 7F0611DC 24420810 */ addiu $v0, $v0, 0x810 +/* 095D50 7F0611E0 AFA201A0 */ sw $v0, 0x1a0($sp) +/* 095D54 7F0611E4 0004C180 */ sll $t8, $a0, 6 +/* 095D58 7F0611E8 03002025 */ move $a0, $t8 +/* 095D5C 7F0611EC 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 095D60 7F0611F0 AFA00100 */ sw $zero, 0x100($sp) +/* 095D64 7F0611F4 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095D68 7F0611F8 AFA202A4 */ sw $v0, 0x2a4($sp) +/* 095D6C 7F0611FC 8FA30100 */ lw $v1, 0x100($sp) +/* 095D70 7F061200 872D000E */ lh $t5, 0xe($t9) +/* 095D74 7F061204 19A0000D */ blez $t5, .Ljp7F06123C +/* 095D78 7F061208 00402025 */ move $a0, $v0 +/* 095D7C 7F06120C AFA30100 */ sw $v1, 0x100($sp) +.Ljp7F061210: +/* 095D80 7F061210 0FC1613C */ jal matrix_4x4_set_identity +/* 095D84 7F061214 AFA40044 */ sw $a0, 0x44($sp) +/* 095D88 7F061218 8FAE01A0 */ lw $t6, 0x1a0($sp) +/* 095D8C 7F06121C 8FA30100 */ lw $v1, 0x100($sp) +/* 095D90 7F061220 8FA40044 */ lw $a0, 0x44($sp) +/* 095D94 7F061224 85CF000E */ lh $t7, 0xe($t6) +/* 095D98 7F061228 24630001 */ addiu $v1, $v1, 1 +/* 095D9C 7F06122C 24840040 */ addiu $a0, $a0, 0x40 +/* 095DA0 7F061230 006F082A */ slt $at, $v1, $t7 +/* 095DA4 7F061234 5420FFF6 */ bnezl $at, .Ljp7F061210 +/* 095DA8 7F061238 AFA30100 */ sw $v1, 0x100($sp) +.Ljp7F06123C: +/* 095DAC 7F06123C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 095DB0 7F061240 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 095DB4 7F061244 260402F8 */ addiu $a0, $s0, 0x2f8 +/* 095DB8 7F061248 8FA501A0 */ lw $a1, 0x1a0($sp) +/* 095DBC 7F06124C AFA40044 */ sw $a0, 0x44($sp) +/* 095DC0 7F061250 0FC1D956 */ jal sub_GAME_7F075F68 +/* 095DC4 7F061254 26060318 */ addiu $a2, $s0, 0x318 +/* 095DC8 7F061258 8FA40044 */ lw $a0, 0x44($sp) +/* 095DCC 7F06125C 0FC17BA6 */ jal sub_GAME_7F05E978 +/* 095DD0 7F061260 24050001 */ li $a1, 1 +/* 095DD4 7F061264 8FA40044 */ lw $a0, 0x44($sp) +/* 095DD8 7F061268 0FC17BED */ jal sub_GAME_7F05EA94 +/* 095DDC 7F06126C 8205000E */ lb $a1, 0xe($s0) +/* 095DE0 7F061270 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095DE4 7F061274 8F020008 */ lw $v0, 8($t8) +/* 095DE8 7F061278 8C440004 */ lw $a0, 4($v0) +/* 095DEC 7F06127C 50800008 */ beql $a0, $zero, .Ljp7F0612A0 +/* 095DF0 7F061280 8C43000C */ lw $v1, 0xc($v0) +/* 095DF4 7F061284 8C830004 */ lw $v1, 4($a0) +/* 095DF8 7F061288 94790004 */ lhu $t9, 4($v1) +/* 095DFC 7F06128C 00196880 */ sll $t5, $t9, 2 +/* 095E00 7F061290 020D7021 */ addu $t6, $s0, $t5 +/* 095E04 7F061294 25CF0318 */ addiu $t7, $t6, 0x318 +/* 095E08 7F061298 AFAF010C */ sw $t7, 0x10c($sp) +/* 095E0C 7F06129C 8C43000C */ lw $v1, 0xc($v0) +.Ljp7F0612A0: +/* 095E10 7F0612A0 50600004 */ beql $v1, $zero, .Ljp7F0612B4 +/* 095E14 7F0612A4 8FB902A4 */ lw $t9, 0x2a4($sp) +/* 095E18 7F0612A8 8C780004 */ lw $t8, 4($v1) +/* 095E1C 7F0612AC AFB80108 */ sw $t8, 0x108($sp) +/* 095E20 7F0612B0 8FB902A4 */ lw $t9, 0x2a4($sp) +.Ljp7F0612B4: +/* 095E24 7F0612B4 24050400 */ li $a1, 1024 +/* 095E28 7F0612B8 AE190304 */ sw $t9, 0x304($s0) +/* 095E2C 7F0612BC 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095E30 7F0612C0 8FA400FC */ lw $a0, 0xfc($sp) +/* 095E34 7F0612C4 10400008 */ beqz $v0, .Ljp7F0612E8 +/* 095E38 7F0612C8 00000000 */ nop +/* 095E3C 7F0612CC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 095E40 7F0612D0 24010001 */ li $at, 1 +/* 095E44 7F0612D4 15A10004 */ bne $t5, $at, .Ljp7F0612E8 +/* 095E48 7F0612D8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 095E4C 7F0612DC 44816000 */ mtc1 $at, $f12 +/* 095E50 7F0612E0 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 095E54 7F0612E4 27A50264 */ addiu $a1, $sp, 0x264 +.Ljp7F0612E8: +/* 095E58 7F0612E8 3C018005 */ lui $at, %hi(D_80053E04) # $at, 0x8005 +/* 095E5C 7F0612EC C42C3E34 */ lwc1 $f12, %lo(D_80053E04)($at) +/* 095E60 7F0612F0 0FC163E7 */ jal matrix_scalar_multiply +/* 095E64 7F0612F4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095E68 7F0612F8 27A40264 */ addiu $a0, $sp, 0x264 +/* 095E6C 7F0612FC 0FC16150 */ jal matrix_4x4_copy +/* 095E70 7F061300 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095E74 7F061304 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095E78 7F061308 3C0E8004 */ lui $t6, %hi(weapon_gun_revolver) # $t6, 0x8004 +/* 095E7C 7F06130C 25CEC79C */ addiu $t6, %lo(weapon_gun_revolver) # addiu $t6, $t6, -0x3864 +/* 095E80 7F061310 8DF80004 */ lw $t8, 4($t7) +/* 095E84 7F061314 55D80078 */ bnel $t6, $t8, .Ljp7F0614F8 +/* 095E88 7F061318 8FA2010C */ lw $v0, 0x10c($sp) +/* 095E8C 7F06131C 8DE20008 */ lw $v0, 8($t7) +/* 095E90 7F061320 8FB900FC */ lw $t9, 0xfc($sp) +/* 095E94 7F061324 24010012 */ li $at, 18 +/* 095E98 7F061328 8C430010 */ lw $v1, 0x10($v0) +/* 095E9C 7F06132C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095EA0 7F061330 50600041 */ beql $v1, $zero, .Ljp7F061438 +/* 095EA4 7F061334 8C430014 */ lw $v1, 0x14($v0) +/* 095EA8 7F061338 44806000 */ mtc1 $zero, $f12 +/* 095EAC 7F06133C 17210021 */ bne $t9, $at, .Ljp7F0613C4 +/* 095EB0 7F061340 8C640004 */ lw $a0, 4($v1) +/* 095EB4 7F061344 8E0D0024 */ lw $t5, 0x24($s0) +/* 095EB8 7F061348 24010001 */ li $at, 1 +/* 095EBC 7F06134C 55A10012 */ bnel $t5, $at, .Ljp7F061398 +/* 095EC0 7F061350 8E18002C */ lw $t8, 0x2c($s0) +/* 095EC4 7F061354 8E18002C */ lw $t8, 0x2c($s0) +/* 095EC8 7F061358 8E0E0020 */ lw $t6, 0x20($s0) +/* 095ECC 7F06135C 3C018005 */ lui $at, %hi(D_80053E08) # $at, 0x8005 +/* 095ED0 7F061360 00187880 */ sll $t7, $t8, 2 +/* 095ED4 7F061364 01F87823 */ subu $t7, $t7, $t8 +/* 095ED8 7F061368 000F7840 */ sll $t7, $t7, 1 +/* 095EDC 7F06136C 01CFC823 */ subu $t9, $t6, $t7 +/* 095EE0 7F061370 272D001E */ addiu $t5, $t9, 0x1e +/* 095EE4 7F061374 448D8000 */ mtc1 $t5, $f16 +/* 095EE8 7F061378 C42A3E38 */ lwc1 $f10, %lo(D_80053E08)($at) +/* 095EEC 7F06137C 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095EF0 7F061380 468081A0 */ cvt.s.w $f6, $f16 +/* 095EF4 7F061384 44814000 */ mtc1 $at, $f8 +/* 095EF8 7F061388 460A3482 */ mul.s $f18, $f6, $f10 +/* 095EFC 7F06138C 1000001D */ b .Ljp7F061404 +/* 095F00 7F061390 46089303 */ div.s $f12, $f18, $f8 +/* 095F04 7F061394 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F061398: +/* 095F08 7F061398 240E0006 */ li $t6, 6 +/* 095F0C 7F06139C 3C018005 */ lui $at, %hi(D_80053E0C) # $at, 0x8005 +/* 095F10 7F0613A0 01D87823 */ subu $t7, $t6, $t8 +/* 095F14 7F0613A4 448F2000 */ mtc1 $t7, $f4 +/* 095F18 7F0613A8 C4263E3C */ lwc1 $f6, %lo(D_80053E0C)($at) +/* 095F1C 7F0613AC 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095F20 7F0613B0 46802420 */ cvt.s.w $f16, $f4 +/* 095F24 7F0613B4 44819000 */ mtc1 $at, $f18 +/* 095F28 7F0613B8 46068282 */ mul.s $f10, $f16, $f6 +/* 095F2C 7F0613BC 10000011 */ b .Ljp7F061404 +/* 095F30 7F0613C0 46125303 */ div.s $f12, $f10, $f18 +.Ljp7F0613C4: +/* 095F34 7F0613C4 8E190024 */ lw $t9, 0x24($s0) +/* 095F38 7F0613C8 24010001 */ li $at, 1 +/* 095F3C 7F0613CC 1721000D */ bne $t9, $at, .Ljp7F061404 +/* 095F40 7F0613D0 00000000 */ nop +/* 095F44 7F0613D4 8E020020 */ lw $v0, 0x20($s0) +/* 095F48 7F0613D8 28410006 */ slti $at, $v0, 6 +/* 095F4C 7F0613DC 10200009 */ beqz $at, .Ljp7F061404 +/* 095F50 7F0613E0 00000000 */ nop +/* 095F54 7F0613E4 44824000 */ mtc1 $v0, $f8 +/* 095F58 7F0613E8 3C018005 */ lui $at, %hi(D_80053E10) # $at, 0x8005 +/* 095F5C 7F0613EC C4303E40 */ lwc1 $f16, %lo(D_80053E10)($at) +/* 095F60 7F0613F0 46804120 */ cvt.s.w $f4, $f8 +/* 095F64 7F0613F4 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095F68 7F0613F8 44815000 */ mtc1 $at, $f10 +/* 095F6C 7F0613FC 46102182 */ mul.s $f6, $f4, $f16 +/* 095F70 7F061400 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F061404: +/* 095F74 7F061404 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 095F78 7F061408 AFA4009C */ sw $a0, 0x9c($sp) +/* 095F7C 7F06140C 8FA4009C */ lw $a0, 0x9c($sp) +/* 095F80 7F061410 0FC163AE */ jal matrix_4x4_set_position +/* 095F84 7F061414 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095F88 7F061418 8FA602A4 */ lw $a2, 0x2a4($sp) +/* 095F8C 7F06141C 27A40264 */ addiu $a0, $sp, 0x264 +/* 095F90 7F061420 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095F94 7F061424 0FC1617A */ jal matrix_4x4_multiply +/* 095F98 7F061428 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 095F9C 7F06142C 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 095FA0 7F061430 8DA20008 */ lw $v0, 8($t5) +/* 095FA4 7F061434 8C430014 */ lw $v1, 0x14($v0) +.Ljp7F061438: +/* 095FA8 7F061438 5060002F */ beql $v1, $zero, .Ljp7F0614F8 +/* 095FAC 7F06143C 8FA2010C */ lw $v0, 0x10c($sp) +/* 095FB0 7F061440 8E0E0024 */ lw $t6, 0x24($s0) +/* 095FB4 7F061444 24010001 */ li $at, 1 +/* 095FB8 7F061448 8C640004 */ lw $a0, 4($v1) +/* 095FBC 7F06144C 15C10022 */ bne $t6, $at, .Ljp7F0614D8 +/* 095FC0 7F061450 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095FC4 7F061454 8E020020 */ lw $v0, 0x20($s0) +/* 095FC8 7F061458 24180006 */ li $t8, 6 +/* 095FCC 7F06145C 28410003 */ slti $at, $v0, 3 +/* 095FD0 7F061460 1020000C */ beqz $at, .Ljp7F061494 +/* 095FD4 7F061464 03027823 */ subu $t7, $t8, $v0 +/* 095FD8 7F061468 44829000 */ mtc1 $v0, $f18 +/* 095FDC 7F06146C 3C018005 */ lui $at, %hi(D_80053E14) # $at, 0x8005 +/* 095FE0 7F061470 C4303E44 */ lwc1 $f16, %lo(D_80053E14)($at) +/* 095FE4 7F061474 46809220 */ cvt.s.w $f8, $f18 +/* 095FE8 7F061478 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095FEC 7F06147C 44815000 */ mtc1 $at, $f10 +/* 095FF0 7F061480 46004107 */ neg.s $f4, $f8 +/* 095FF4 7F061484 46102002 */ mul.s $f0, $f4, $f16 +/* 095FF8 7F061488 46000180 */ add.s $f6, $f0, $f0 +/* 095FFC 7F06148C 1000000B */ b .Ljp7F0614BC +/* 096000 7F061490 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F061494: +/* 096004 7F061494 448F9000 */ mtc1 $t7, $f18 +/* 096008 7F061498 3C018005 */ lui $at, %hi(D_80053E18) # $at, 0x8005 +/* 09600C 7F06149C C4303E48 */ lwc1 $f16, %lo(D_80053E18)($at) +/* 096010 7F0614A0 46809220 */ cvt.s.w $f8, $f18 +/* 096014 7F0614A4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 096018 7F0614A8 44815000 */ mtc1 $at, $f10 +/* 09601C 7F0614AC 46004107 */ neg.s $f4, $f8 +/* 096020 7F0614B0 46102002 */ mul.s $f0, $f4, $f16 +/* 096024 7F0614B4 46000180 */ add.s $f6, $f0, $f0 +/* 096028 7F0614B8 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F0614BC: +/* 09602C 7F0614BC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 096030 7F0614C0 AFA40094 */ sw $a0, 0x94($sp) +/* 096034 7F0614C4 8FA40094 */ lw $a0, 0x94($sp) +/* 096038 7F0614C8 0FC163AE */ jal matrix_4x4_set_position +/* 09603C 7F0614CC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096040 7F0614D0 10000004 */ b .Ljp7F0614E4 +/* 096044 7F0614D4 8FA602A4 */ lw $a2, 0x2a4($sp) +.Ljp7F0614D8: +/* 096048 7F0614D8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 09604C 7F0614DC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096050 7F0614E0 8FA602A4 */ lw $a2, 0x2a4($sp) +.Ljp7F0614E4: +/* 096054 7F0614E4 27A40264 */ addiu $a0, $sp, 0x264 +/* 096058 7F0614E8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09605C 7F0614EC 0FC1617A */ jal matrix_4x4_multiply +/* 096060 7F0614F0 24C60100 */ addiu $a2, $a2, 0x100 +/* 096064 7F0614F4 8FA2010C */ lw $v0, 0x10c($sp) +.Ljp7F0614F8: +/* 096068 7F0614F8 50400003 */ beql $v0, $zero, .Ljp7F061508 +/* 09606C 7F0614FC 8FB90108 */ lw $t9, 0x108($sp) +/* 096070 7F061500 AC400000 */ sw $zero, ($v0) +/* 096074 7F061504 8FB90108 */ lw $t9, 0x108($sp) +.Ljp7F061508: +/* 096078 7F061508 53200142 */ beql $t9, $zero, .Ljp7F061A14 +/* 09607C 7F06150C C6100260 */ lwc1 $f16, 0x260($s0) +/* 096080 7F061510 0C002918 */ jal get_random_value +/* 096084 7F061514 00000000 */ nop +/* 096088 7F061518 44829000 */ mtc1 $v0, $f18 +/* 09608C 7F06151C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 096090 7F061520 04410004 */ bgez $v0, .Ljp7F061534 +/* 096094 7F061524 46809220 */ cvt.s.w $f8, $f18 +/* 096098 7F061528 44812000 */ mtc1 $at, $f4 +/* 09609C 7F06152C 00000000 */ nop +/* 0960A0 7F061530 46044200 */ add.s $f8, $f8, $f4 +.Ljp7F061534: +/* 0960A4 7F061534 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0960A8 7F061538 44818000 */ mtc1 $at, $f16 +/* 0960AC 7F06153C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0960B0 7F061540 44815000 */ mtc1 $at, $f10 +/* 0960B4 7F061544 46104182 */ mul.s $f6, $f8, $f16 +/* 0960B8 7F061548 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0960BC 7F06154C 44812000 */ mtc1 $at, $f4 +/* 0960C0 7F061550 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 0960C4 7F061554 8FA400FC */ lw $a0, 0xfc($sp) +/* 0960C8 7F061558 24050001 */ li $a1, 1 +/* 0960CC 7F06155C 460A3482 */ mul.s $f18, $f6, $f10 +/* 0960D0 7F061560 46049200 */ add.s $f8, $f18, $f4 +/* 0960D4 7F061564 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0960D8 7F061568 C5B00000 */ lwc1 $f16, ($t5) +/* 0960DC 7F06156C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0960E0 7F061570 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0960E4 7F061574 10400018 */ beqz $v0, .Ljp7F0615D8 +/* 0960E8 7F061578 8FA40108 */ lw $a0, 0x108($sp) +/* 0960EC 7F06157C 0C002918 */ jal get_random_value +/* 0960F0 7F061580 00000000 */ nop +/* 0960F4 7F061584 44823000 */ mtc1 $v0, $f6 +/* 0960F8 7F061588 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0960FC 7F06158C 04410004 */ bgez $v0, .Ljp7F0615A0 +/* 096100 7F061590 468032A0 */ cvt.s.w $f10, $f6 +/* 096104 7F061594 44819000 */ mtc1 $at, $f18 +/* 096108 7F061598 00000000 */ nop +/* 09610C 7F06159C 46125280 */ add.s $f10, $f10, $f18 +.Ljp7F0615A0: +/* 096110 7F0615A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 096114 7F0615A4 44812000 */ mtc1 $at, $f4 +/* 096118 7F0615A8 3C018005 */ lui $at, %hi(D_80053E1C) # $at, 0x8005 +/* 09611C 7F0615AC C4303E4C */ lwc1 $f16, %lo(D_80053E1C)($at) +/* 096120 7F0615B0 46045202 */ mul.s $f8, $f10, $f4 +/* 096124 7F0615B4 27A50224 */ addiu $a1, $sp, 0x224 +/* 096128 7F0615B8 46104302 */ mul.s $f12, $f8, $f16 +/* 09612C 7F0615BC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 096130 7F0615C0 00000000 */ nop +/* 096134 7F0615C4 8FA40108 */ lw $a0, 0x108($sp) +/* 096138 7F0615C8 0FC163AE */ jal matrix_4x4_set_position +/* 09613C 7F0615CC 27A50224 */ addiu $a1, $sp, 0x224 +/* 096140 7F0615D0 10000004 */ b .Ljp7F0615E4 +/* 096144 7F0615D4 C7AC0080 */ lwc1 $f12, 0x80($sp) +.Ljp7F0615D8: +/* 096148 7F0615D8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 09614C 7F0615DC 27A50224 */ addiu $a1, $sp, 0x224 +/* 096150 7F0615E0 C7AC0080 */ lwc1 $f12, 0x80($sp) +.Ljp7F0615E4: +/* 096154 7F0615E4 0FC163E7 */ jal matrix_scalar_multiply +/* 096158 7F0615E8 27A50224 */ addiu $a1, $sp, 0x224 +/* 09615C 7F0615EC C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096160 7F0615F0 0FC163CD */ jal matrix_column_3_scalar_multiply +/* 096164 7F0615F4 27A50224 */ addiu $a1, $sp, 0x224 +/* 096168 7F0615F8 27A40264 */ addiu $a0, $sp, 0x264 +/* 09616C 7F0615FC 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096170 7F061600 27A50224 */ addiu $a1, $sp, 0x224 +/* 096174 7F061604 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 096178 7F061608 27A40224 */ addiu $a0, $sp, 0x224 +/* 09617C 7F06160C 0FC16150 */ jal matrix_4x4_copy +/* 096180 7F061610 24A50040 */ addiu $a1, $a1, 0x40 +/* 096184 7F061614 C7A60254 */ lwc1 $f6, 0x254($sp) +/* 096188 7F061618 E60602E8 */ swc1 $f6, 0x2e8($s0) +/* 09618C 7F06161C C7B20258 */ lwc1 $f18, 0x258($sp) +/* 096190 7F061620 E61202EC */ swc1 $f18, 0x2ec($s0) +/* 096194 7F061624 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 096198 7F061628 0FC1E28D */ jal sub_GAME_7F078444 +/* 09619C 7F06162C E60A02F0 */ swc1 $f10, 0x2f0($s0) +/* 0961A0 7F061630 00402025 */ move $a0, $v0 +/* 0961A4 7F061634 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 0961A8 7F061638 260502E8 */ addiu $a1, $s0, 0x2e8 +/* 0961AC 7F06163C C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 0961B0 7F061640 820E000D */ lb $t6, 0xd($s0) +/* 0961B4 7F061644 46002207 */ neg.s $f8, $f4 +/* 0961B8 7F061648 11C000EE */ beqz $t6, .Ljp7F061A04 +/* 0961BC 7F06164C E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 0961C0 7F061650 8FB8010C */ lw $t8, 0x10c($sp) +/* 0961C4 7F061654 240F0001 */ li $t7, 1 +/* 0961C8 7F061658 53000003 */ beql $t8, $zero, .Ljp7F061668 +/* 0961CC 7F06165C 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 0961D0 7F061660 AF0F0000 */ sw $t7, ($t8) +/* 0961D4 7F061664 8FB901A0 */ lw $t9, 0x1a0($sp) +.Ljp7F061668: +/* 0961D8 7F061668 8F2D0008 */ lw $t5, 8($t9) +/* 0961DC 7F06166C 8DA30008 */ lw $v1, 8($t5) +/* 0961E0 7F061670 5060006D */ beql $v1, $zero, .Ljp7F061828 +/* 0961E4 7F061674 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0961E8 7F061678 8C620004 */ lw $v0, 4($v1) +/* 0961EC 7F06167C C7A60224 */ lwc1 $f6, 0x224($sp) +/* 0961F0 7F061680 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 0961F4 7F061684 C4500000 */ lwc1 $f16, ($v0) +/* 0961F8 7F061688 C44A0004 */ lwc1 $f10, 4($v0) +/* 0961FC 7F06168C 46068482 */ mul.s $f18, $f16, $f6 +/* 096200 7F061690 C4460008 */ lwc1 $f6, 8($v0) +/* 096204 7F061694 46045202 */ mul.s $f8, $f10, $f4 +/* 096208 7F061698 C7AA0244 */ lwc1 $f10, 0x244($sp) +/* 09620C 7F06169C 460A3102 */ mul.s $f4, $f6, $f10 +/* 096210 7F0616A0 46089400 */ add.s $f16, $f18, $f8 +/* 096214 7F0616A4 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 096218 7F0616A8 46048480 */ add.s $f18, $f16, $f4 +/* 09621C 7F0616AC C7B00228 */ lwc1 $f16, 0x228($sp) +/* 096220 7F0616B0 46124180 */ add.s $f6, $f8, $f18 +/* 096224 7F0616B4 C7B20238 */ lwc1 $f18, 0x238($sp) +/* 096228 7F0616B8 E7A60084 */ swc1 $f6, 0x84($sp) +/* 09622C 7F0616BC C44A0000 */ lwc1 $f10, ($v0) +/* 096230 7F0616C0 C4480004 */ lwc1 $f8, 4($v0) +/* 096234 7F0616C4 46105102 */ mul.s $f4, $f10, $f16 +/* 096238 7F0616C8 C4500008 */ lwc1 $f16, 8($v0) +/* 09623C 7F0616CC 46124182 */ mul.s $f6, $f8, $f18 +/* 096240 7F0616D0 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 096244 7F0616D4 46088482 */ mul.s $f18, $f16, $f8 +/* 096248 7F0616D8 46062280 */ add.s $f10, $f4, $f6 +/* 09624C 7F0616DC C7A60258 */ lwc1 $f6, 0x258($sp) +/* 096250 7F0616E0 46125100 */ add.s $f4, $f10, $f18 +/* 096254 7F0616E4 C7AA022C */ lwc1 $f10, 0x22c($sp) +/* 096258 7F0616E8 46043400 */ add.s $f16, $f6, $f4 +/* 09625C 7F0616EC C7A4023C */ lwc1 $f4, 0x23c($sp) +/* 096260 7F0616F0 E7B00088 */ swc1 $f16, 0x88($sp) +/* 096264 7F0616F4 C4480000 */ lwc1 $f8, ($v0) +/* 096268 7F0616F8 C4460004 */ lwc1 $f6, 4($v0) +/* 09626C 7F0616FC 460A4482 */ mul.s $f18, $f8, $f10 +/* 096270 7F061700 C44A0008 */ lwc1 $f10, 8($v0) +/* 096274 7F061704 46043402 */ mul.s $f16, $f6, $f4 +/* 096278 7F061708 C7A6024C */ lwc1 $f6, 0x24c($sp) +/* 09627C 7F06170C 46065102 */ mul.s $f4, $f10, $f6 +/* 096280 7F061710 46109200 */ add.s $f8, $f18, $f16 +/* 096284 7F061714 C7B0025C */ lwc1 $f16, 0x25c($sp) +/* 096288 7F061718 46044480 */ add.s $f18, $f8, $f4 +/* 09628C 7F06171C 46128280 */ add.s $f10, $f16, $f18 +/* 096290 7F061720 0C002918 */ jal get_random_value +/* 096294 7F061724 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 096298 7F061728 44823000 */ mtc1 $v0, $f6 +/* 09629C 7F06172C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 0962A0 7F061730 04410005 */ bgez $v0, .Ljp7F061748 +/* 0962A4 7F061734 46803220 */ cvt.s.w $f8, $f6 +/* 0962A8 7F061738 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0962AC 7F06173C 44812000 */ mtc1 $at, $f4 +/* 0962B0 7F061740 00000000 */ nop +/* 0962B4 7F061744 46044200 */ add.s $f8, $f8, $f4 +.Ljp7F061748: +/* 0962B8 7F061748 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0962BC 7F06174C 44818000 */ mtc1 $at, $f16 +/* 0962C0 7F061750 3C018005 */ lui $at, %hi(D_80053E20) # $at, 0x8005 +/* 0962C4 7F061754 C42A3E50 */ lwc1 $f10, %lo(D_80053E20)($at) +/* 0962C8 7F061758 46104482 */ mul.s $f18, $f8, $f16 +/* 0962CC 7F06175C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0962D0 7F061760 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0962D4 7F061764 46002207 */ neg.s $f8, $f4 +/* 0962D8 7F061768 460A9182 */ mul.s $f6, $f18, $f10 +/* 0962DC 7F06176C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0962E0 7F061770 46008487 */ neg.s $f18, $f16 +/* 0962E4 7F061774 44064000 */ mfc1 $a2, $f8 +/* 0962E8 7F061778 44079000 */ mfc1 $a3, $f18 +/* 0962EC 7F06177C 44053000 */ mfc1 $a1, $f6 +/* 0962F0 7F061780 46005187 */ neg.s $f6, $f10 +/* 0962F4 7F061784 0FC16882 */ jal matrix_4x4_align +/* 0962F8 7F061788 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0962FC 7F06178C 3C018005 */ lui $at, %hi(D_80053E24) # $at, 0x8005 +/* 096300 7F061790 C4243E54 */ lwc1 $f4, %lo(D_80053E24)($at) +/* 096304 7F061794 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 096308 7F061798 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09630C 7F06179C 46082302 */ mul.s $f12, $f4, $f8 +/* 096310 7F0617A0 0FC163E7 */ jal matrix_scalar_multiply +/* 096314 7F0617A4 00000000 */ nop +/* 096318 7F0617A8 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 09631C 7F0617AC C61201C8 */ lwc1 $f18, 0x1c8($s0) +/* 096320 7F0617B0 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 096324 7F0617B4 C60401CC */ lwc1 $f4, 0x1cc($s0) +/* 096328 7F0617B8 46128281 */ sub.s $f10, $f16, $f18 +/* 09632C 7F0617BC C61201D0 */ lwc1 $f18, 0x1d0($s0) +/* 096330 7F0617C0 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 096334 7F0617C4 46043201 */ sub.s $f8, $f6, $f4 +/* 096338 7F0617C8 44065000 */ mfc1 $a2, $f10 +/* 09633C 7F0617CC 27A40114 */ addiu $a0, $sp, 0x114 +/* 096340 7F0617D0 46128281 */ sub.s $f10, $f16, $f18 +/* 096344 7F0617D4 44074000 */ mfc1 $a3, $f8 +/* 096348 7F0617D8 24050000 */ li $a1, 0 +/* 09634C 7F0617DC 0FC1681E */ jal sub_GAME_7F059B58 +/* 096350 7F0617E0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 096354 7F0617E4 27A40114 */ addiu $a0, $sp, 0x114 +/* 096358 7F0617E8 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09635C 7F0617EC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096360 7F0617F0 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096364 7F0617F4 0FC16428 */ jal matrix_row_3_scalar_multiply +/* 096368 7F0617F8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09636C 7F0617FC 27A40154 */ addiu $a0, $sp, 0x154 +/* 096370 7F061800 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096374 7F061804 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096378 7F061808 27A40084 */ addiu $a0, $sp, 0x84 +/* 09637C 7F06180C 0FC163AE */ jal matrix_4x4_set_position +/* 096380 7F061810 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096384 7F061814 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 096388 7F061818 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09638C 7F06181C 0FC16150 */ jal matrix_4x4_copy +/* 096390 7F061820 24A50080 */ addiu $a1, $a1, 0x80 +/* 096394 7F061824 8FAF01A0 */ lw $t7, 0x1a0($sp) +.Ljp7F061828: +/* 096398 7F061828 3C0E8004 */ lui $t6, %hi(weapon_gun_kf7) # $t6, 0x8004 +/* 09639C 7F06182C 25CEC7DC */ addiu $t6, %lo(weapon_gun_kf7) # addiu $t6, $t6, -0x3824 +/* 0963A0 7F061830 8DF80004 */ lw $t8, 4($t7) +/* 0963A4 7F061834 55D80074 */ bnel $t6, $t8, .Ljp7F061A08 +/* 0963A8 7F061838 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 0963AC 7F06183C 8DF90008 */ lw $t9, 8($t7) +/* 0963B0 7F061840 8F230010 */ lw $v1, 0x10($t9) +/* 0963B4 7F061844 50600070 */ beql $v1, $zero, .Ljp7F061A08 +/* 0963B8 7F061848 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 0963BC 7F06184C 8C620004 */ lw $v0, 4($v1) +/* 0963C0 7F061850 C7A40224 */ lwc1 $f4, 0x224($sp) +/* 0963C4 7F061854 C7B20234 */ lwc1 $f18, 0x234($sp) +/* 0963C8 7F061858 C4460000 */ lwc1 $f6, ($v0) +/* 0963CC 7F06185C C4500004 */ lwc1 $f16, 4($v0) +/* 0963D0 7F061860 3C018005 */ lui $at, %hi(D_80053E28) # $at, 0x8005 +/* 0963D4 7F061864 46043202 */ mul.s $f8, $f6, $f4 +/* 0963D8 7F061868 C4440008 */ lwc1 $f4, 8($v0) +/* 0963DC 7F06186C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 0963E0 7F061870 46128282 */ mul.s $f10, $f16, $f18 +/* 0963E4 7F061874 C7B00244 */ lwc1 $f16, 0x244($sp) +/* 0963E8 7F061878 25AE00C0 */ addiu $t6, $t5, 0xc0 +/* 0963EC 7F06187C 46102482 */ mul.s $f18, $f4, $f16 +/* 0963F0 7F061880 460A4180 */ add.s $f6, $f8, $f10 +/* 0963F4 7F061884 C7AA0254 */ lwc1 $f10, 0x254($sp) +/* 0963F8 7F061888 46123200 */ add.s $f8, $f6, $f18 +/* 0963FC 7F06188C C7A60228 */ lwc1 $f6, 0x228($sp) +/* 096400 7F061890 46085100 */ add.s $f4, $f10, $f8 +/* 096404 7F061894 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 096408 7F061898 E7A40084 */ swc1 $f4, 0x84($sp) +/* 09640C 7F06189C C4500000 */ lwc1 $f16, ($v0) +/* 096410 7F0618A0 C44A0004 */ lwc1 $f10, 4($v0) +/* 096414 7F0618A4 46068482 */ mul.s $f18, $f16, $f6 +/* 096418 7F0618A8 C4460008 */ lwc1 $f6, 8($v0) +/* 09641C 7F0618AC 46085102 */ mul.s $f4, $f10, $f8 +/* 096420 7F0618B0 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 096424 7F0618B4 460A3202 */ mul.s $f8, $f6, $f10 +/* 096428 7F0618B8 46049400 */ add.s $f16, $f18, $f4 +/* 09642C 7F0618BC C7A40258 */ lwc1 $f4, 0x258($sp) +/* 096430 7F0618C0 46088480 */ add.s $f18, $f16, $f8 +/* 096434 7F0618C4 C7B0022C */ lwc1 $f16, 0x22c($sp) +/* 096438 7F0618C8 46122180 */ add.s $f6, $f4, $f18 +/* 09643C 7F0618CC C7B2023C */ lwc1 $f18, 0x23c($sp) +/* 096440 7F0618D0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 096444 7F0618D4 C44A0000 */ lwc1 $f10, ($v0) +/* 096448 7F0618D8 C4440004 */ lwc1 $f4, 4($v0) +/* 09644C 7F0618DC 46105202 */ mul.s $f8, $f10, $f16 +/* 096450 7F0618E0 C4500008 */ lwc1 $f16, 8($v0) +/* 096454 7F0618E4 AFAE0040 */ sw $t6, 0x40($sp) +/* 096458 7F0618E8 46122182 */ mul.s $f6, $f4, $f18 +/* 09645C 7F0618EC C7A4024C */ lwc1 $f4, 0x24c($sp) +/* 096460 7F0618F0 46048482 */ mul.s $f18, $f16, $f4 +/* 096464 7F0618F4 C4243E58 */ lwc1 $f4, %lo(D_80053E28)($at) +/* 096468 7F0618F8 46064280 */ add.s $f10, $f8, $f6 +/* 09646C 7F0618FC C7A6025C */ lwc1 $f6, 0x25c($sp) +/* 096470 7F061900 46125200 */ add.s $f8, $f10, $f18 +/* 096474 7F061904 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 096478 7F061908 460A2482 */ mul.s $f18, $f4, $f10 +/* 09647C 7F06190C 46083400 */ add.s $f16, $f6, $f8 +/* 096480 7F061910 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 096484 7F061914 0C002918 */ jal get_random_value +/* 096488 7F061918 E7B20038 */ swc1 $f18, 0x38($sp) +/* 09648C 7F06191C 44823000 */ mtc1 $v0, $f6 +/* 096490 7F061920 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 096494 7F061924 04410005 */ bgez $v0, .Ljp7F06193C +/* 096498 7F061928 46803220 */ cvt.s.w $f8, $f6 +/* 09649C 7F06192C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0964A0 7F061930 44818000 */ mtc1 $at, $f16 +/* 0964A4 7F061934 00000000 */ nop +/* 0964A8 7F061938 46104200 */ add.s $f8, $f8, $f16 +.Ljp7F06193C: +/* 0964AC 7F06193C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0964B0 7F061940 44812000 */ mtc1 $at, $f4 +/* 0964B4 7F061944 3C018005 */ lui $at, %hi(D_80053E2C) # $at, 0x8005 +/* 0964B8 7F061948 C4323E5C */ lwc1 $f18, %lo(D_80053E2C)($at) +/* 0964BC 7F06194C 46044282 */ mul.s $f10, $f8, $f4 +/* 0964C0 7F061950 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0964C4 7F061954 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0964C8 7F061958 46008207 */ neg.s $f8, $f16 +/* 0964CC 7F06195C 46125182 */ mul.s $f6, $f10, $f18 +/* 0964D0 7F061960 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0964D4 7F061964 46002287 */ neg.s $f10, $f4 +/* 0964D8 7F061968 44064000 */ mfc1 $a2, $f8 +/* 0964DC 7F06196C 44075000 */ mfc1 $a3, $f10 +/* 0964E0 7F061970 44053000 */ mfc1 $a1, $f6 +/* 0964E4 7F061974 46009187 */ neg.s $f6, $f18 +/* 0964E8 7F061978 0FC16882 */ jal matrix_4x4_align +/* 0964EC 7F06197C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0964F0 7F061980 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0964F4 7F061984 0FC163E7 */ jal matrix_scalar_multiply +/* 0964F8 7F061988 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 0964FC 7F06198C C7B00194 */ lwc1 $f16, 0x194($sp) +/* 096500 7F061990 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 096504 7F061994 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 096508 7F061998 C61201CC */ lwc1 $f18, 0x1cc($s0) +/* 09650C 7F06199C 46088101 */ sub.s $f4, $f16, $f8 +/* 096510 7F0619A0 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 096514 7F0619A4 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 096518 7F0619A8 46125181 */ sub.s $f6, $f10, $f18 +/* 09651C 7F0619AC 44062000 */ mfc1 $a2, $f4 +/* 096520 7F0619B0 27A40114 */ addiu $a0, $sp, 0x114 +/* 096524 7F0619B4 46088101 */ sub.s $f4, $f16, $f8 +/* 096528 7F0619B8 44073000 */ mfc1 $a3, $f6 +/* 09652C 7F0619BC 24050000 */ li $a1, 0 +/* 096530 7F0619C0 0FC1681E */ jal sub_GAME_7F059B58 +/* 096534 7F0619C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 096538 7F0619C8 27A40114 */ addiu $a0, $sp, 0x114 +/* 09653C 7F0619CC 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096540 7F0619D0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096544 7F0619D4 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096548 7F0619D8 0FC16428 */ jal matrix_row_3_scalar_multiply +/* 09654C 7F0619DC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096550 7F0619E0 27A40154 */ addiu $a0, $sp, 0x154 +/* 096554 7F0619E4 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096558 7F0619E8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09655C 7F0619EC 27A40084 */ addiu $a0, $sp, 0x84 +/* 096560 7F0619F0 0FC163AE */ jal matrix_4x4_set_position +/* 096564 7F0619F4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096568 7F0619F8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09656C 7F0619FC 0FC16150 */ jal matrix_4x4_copy +/* 096570 7F061A00 8FA50040 */ lw $a1, 0x40($sp) +.Ljp7F061A04: +/* 096574 7F061A04 8FB801A0 */ lw $t8, 0x1a0($sp) +.Ljp7F061A08: +/* 096578 7F061A08 1000000C */ b .Ljp7F061A3C +/* 09657C 7F061A0C 8F020008 */ lw $v0, 8($t8) +/* 096580 7F061A10 C6100260 */ lwc1 $f16, 0x260($s0) +.Ljp7F061A14: +/* 096584 7F061A14 C60A0298 */ lwc1 $f10, 0x298($s0) +/* 096588 7F061A18 C612029C */ lwc1 $f18, 0x29c($s0) +/* 09658C 7F061A1C C60602A0 */ lwc1 $f6, 0x2a0($s0) +/* 096590 7F061A20 46008207 */ neg.s $f8, $f16 +/* 096594 7F061A24 E60A02E8 */ swc1 $f10, 0x2e8($s0) +/* 096598 7F061A28 E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 09659C 7F061A2C E61202EC */ swc1 $f18, 0x2ec($s0) +/* 0965A0 7F061A30 E60602F0 */ swc1 $f6, 0x2f0($s0) +/* 0965A4 7F061A34 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0965A8 7F061A38 8DE20008 */ lw $v0, 8($t7) +.Ljp7F061A3C: +/* 0965AC 7F061A3C 8C440018 */ lw $a0, 0x18($v0) +/* 0965B0 7F061A40 50800043 */ beql $a0, $zero, .Ljp7F061B50 +/* 0965B4 7F061A44 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 0965B8 7F061A48 8C990004 */ lw $t9, 4($a0) +/* 0965BC 7F061A4C 00002825 */ move $a1, $zero +/* 0965C0 7F061A50 0FC1B2D8 */ jal sub_GAME_7F06C570 +/* 0965C4 7F061A54 AFB90070 */ sw $t9, 0x70($sp) +/* 0965C8 7F061A58 AFA2006C */ sw $v0, 0x6c($sp) +/* 0965CC 7F061A5C 8E050010 */ lw $a1, 0x10($s0) +/* 0965D0 7F061A60 0FC17AF5 */ jal sub_GAME_7F05E6B4 +/* 0965D4 7F061A64 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0965D8 7F061A68 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 0965DC 7F061A6C 8FA40070 */ lw $a0, 0x70($sp) +/* 0965E0 7F061A70 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 0965E4 7F061A74 85AE000C */ lh $t6, 0xc($t5) +/* 0965E8 7F061A78 29C1001D */ slti $at, $t6, 0x1d +/* 0965EC 7F061A7C 1420002A */ bnez $at, .Ljp7F061B28 +/* 0965F0 7F061A80 00000000 */ nop +/* 0965F4 7F061A84 8DB80008 */ lw $t8, 8($t5) +/* 0965F8 7F061A88 8F030070 */ lw $v1, 0x70($t8) +/* 0965FC 7F061A8C 10600026 */ beqz $v1, .Ljp7F061B28 +/* 096600 7F061A90 00000000 */ nop +/* 096604 7F061A94 8C620004 */ lw $v0, 4($v1) +/* 096608 7F061A98 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09660C 7F061A9C 0FC17AE1 */ jal get_value_if_watch_is_on_hand_or_not +/* 096610 7F061AA0 AFA20068 */ sw $v0, 0x68($sp) +/* 096614 7F061AA4 3C018005 */ lui $at, %hi(D_80053E30) # $at, 0x8005 +/* 096618 7F061AA8 C42A3E60 */ lwc1 $f10, %lo(D_80053E30)($at) +/* 09661C 7F061AAC C6040214 */ lwc1 $f4, 0x214($s0) +/* 096620 7F061AB0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 096624 7F061AB4 44818000 */ mtc1 $at, $f16 +/* 096628 7F061AB8 460A2480 */ add.s $f18, $f4, $f10 +/* 09662C 7F061ABC 3C018005 */ lui $at, %hi(D_80053E34) # $at, 0x8005 +/* 096630 7F061AC0 C4243E64 */ lwc1 $f4, %lo(D_80053E34)($at) +/* 096634 7F061AC4 8FA20068 */ lw $v0, 0x68($sp) +/* 096638 7F061AC8 46009181 */ sub.s $f6, $f18, $f0 +/* 09663C 7F061ACC 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 096640 7F061AD0 C4520000 */ lwc1 $f18, ($v0) +/* 096644 7F061AD4 46103202 */ mul.s $f8, $f6, $f16 +/* 096648 7F061AD8 C446000C */ lwc1 $f6, 0xc($v0) +/* 09664C 7F061ADC 46069401 */ sub.s $f16, $f18, $f6 +/* 096650 7F061AE0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 096654 7F061AE4 C4520008 */ lwc1 $f18, 8($v0) +/* 096658 7F061AE8 46044283 */ div.s $f10, $f8, $f4 +/* 09665C 7F061AEC C4440010 */ lwc1 $f4, 0x10($v0) +/* 096660 7F061AF0 C4480004 */ lwc1 $f8, 4($v0) +/* 096664 7F061AF4 44068000 */ mfc1 $a2, $f16 +/* 096668 7F061AF8 46069401 */ sub.s $f16, $f18, $f6 +/* 09666C 7F061AFC E7B00010 */ swc1 $f16, 0x10($sp) +/* 096670 7F061B00 44055000 */ mfc1 $a1, $f10 +/* 096674 7F061B04 46044281 */ sub.s $f10, $f8, $f4 +/* 096678 7F061B08 44075000 */ mfc1 $a3, $f10 +/* 09667C 7F061B0C 0C005DD8 */ jal guRotateF +/* 096680 7F061B10 00000000 */ nop +/* 096684 7F061B14 8FA40070 */ lw $a0, 0x70($sp) +/* 096688 7F061B18 0FC163AE */ jal matrix_4x4_set_position +/* 09668C 7F061B1C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096690 7F061B20 10000004 */ b .Ljp7F061B34 +/* 096694 7F061B24 8FAF006C */ lw $t7, 0x6c($sp) +.Ljp7F061B28: +/* 096698 7F061B28 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 09669C 7F061B2C 8E050214 */ lw $a1, 0x214($s0) +/* 0966A0 7F061B30 8FAF006C */ lw $t7, 0x6c($sp) +.Ljp7F061B34: +/* 0966A4 7F061B34 8FAE02A4 */ lw $t6, 0x2a4($sp) +/* 0966A8 7F061B38 27A40264 */ addiu $a0, $sp, 0x264 +/* 0966AC 7F061B3C 000FC980 */ sll $t9, $t7, 6 +/* 0966B0 7F061B40 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0966B4 7F061B44 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 0966B8 7F061B48 032E3021 */ addu $a2, $t9, $t6 +/* 0966BC 7F061B4C 8FAD01A0 */ lw $t5, 0x1a0($sp) +.Ljp7F061B50: +/* 0966C0 7F061B50 8FA40044 */ lw $a0, 0x44($sp) +/* 0966C4 7F061B54 85B8000C */ lh $t8, 0xc($t5) +/* 0966C8 7F061B58 01A02825 */ move $a1, $t5 +/* 0966CC 7F061B5C 2B01001E */ slti $at, $t8, 0x1e +/* 0966D0 7F061B60 54200004 */ bnezl $at, .Ljp7F061B74 +/* 0966D4 7F061B64 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0966D8 7F061B68 0FC220B8 */ jal seems_to_load_cuff_microcode +/* 0966DC 7F061B6C 2406001D */ li $a2, 29 +/* 0966E0 7F061B70 8FAF01A0 */ lw $t7, 0x1a0($sp) +.Ljp7F061B74: +/* 0966E4 7F061B74 8DF90008 */ lw $t9, 8($t7) +/* 0966E8 7F061B78 8F24001C */ lw $a0, 0x1c($t9) +/* 0966EC 7F061B7C 50800017 */ beql $a0, $zero, .Ljp7F061BDC +/* 0966F0 7F061B80 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 0966F4 7F061B84 8C8E0004 */ lw $t6, 4($a0) +/* 0966F8 7F061B88 00002825 */ move $a1, $zero +/* 0966FC 7F061B8C 0FC1B2D8 */ jal sub_GAME_7F06C570 +/* 096700 7F061B90 AFAE0064 */ sw $t6, 0x64($sp) +/* 096704 7F061B94 AFA20060 */ sw $v0, 0x60($sp) +/* 096708 7F061B98 0FC17B57 */ jal sub_GAME_7F05E83C +/* 09670C 7F061B9C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096710 7F061BA0 8FA40064 */ lw $a0, 0x64($sp) +/* 096714 7F061BA4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 096718 7F061BA8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09671C 7F061BAC C7A801DC */ lwc1 $f8, 0x1dc($sp) +/* 096720 7F061BB0 C6040218 */ lwc1 $f4, 0x218($s0) +/* 096724 7F061BB4 8FB80060 */ lw $t8, 0x60($sp) +/* 096728 7F061BB8 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 09672C 7F061BBC 46044281 */ sub.s $f10, $f8, $f4 +/* 096730 7F061BC0 00186980 */ sll $t5, $t8, 6 +/* 096734 7F061BC4 27A40264 */ addiu $a0, $sp, 0x264 +/* 096738 7F061BC8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09673C 7F061BCC E7AA01DC */ swc1 $f10, 0x1dc($sp) +/* 096740 7F061BD0 0FC1617A */ jal matrix_4x4_multiply +/* 096744 7F061BD4 01AF3021 */ addu $a2, $t5, $t7 +/* 096748 7F061BD8 8FB901A0 */ lw $t9, 0x1a0($sp) +.Ljp7F061BDC: +/* 09674C 7F061BDC 00001825 */ move $v1, $zero +/* 096750 7F061BE0 00003025 */ move $a2, $zero +/* 096754 7F061BE4 872E000C */ lh $t6, 0xc($t9) +/* 096758 7F061BE8 24070005 */ li $a3, 5 +/* 09675C 7F061BEC 29C10013 */ slti $at, $t6, 0x13 +/* 096760 7F061BF0 1420002A */ bnez $at, .Ljp7F061C9C +/* 096764 7F061BF4 00000000 */ nop +.Ljp7F061BF8: +/* 096768 7F061BF8 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 09676C 7F061BFC 8FA40044 */ lw $a0, 0x44($sp) +/* 096770 7F061C00 8F0D0008 */ lw $t5, 8($t8) +/* 096774 7F061C04 01A67821 */ addu $t7, $t5, $a2 +/* 096778 7F061C08 8DE50048 */ lw $a1, 0x48($t7) +/* 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 +/* 09678C 7F061C1C AFA60040 */ sw $a2, 0x40($sp) +/* 096790 7F061C20 8FA3005C */ lw $v1, 0x5c($sp) +/* 096794 7F061C24 8FA60040 */ lw $a2, 0x40($sp) +/* 096798 7F061C28 10400006 */ beqz $v0, .Ljp7F061C44 +/* 09679C 7F061C2C 24070005 */ li $a3, 5 +/* 0967A0 7F061C30 8E190034 */ lw $t9, 0x34($s0) +/* 0967A4 7F061C34 00E37023 */ subu $t6, $a3, $v1 +/* 0967A8 7F061C38 032EC02A */ slt $t8, $t9, $t6 +/* 0967AC 7F061C3C 3B180001 */ xori $t8, $t8, 1 +/* 0967B0 7F061C40 AC580000 */ sw $t8, ($v0) +.Ljp7F061C44: +/* 0967B4 7F061C44 8FAD01A0 */ lw $t5, 0x1a0($sp) +.Ljp7F061C48: +/* 0967B8 7F061C48 8FA40044 */ lw $a0, 0x44($sp) +/* 0967BC 7F061C4C 8DAF0008 */ lw $t7, 8($t5) +/* 0967C0 7F061C50 01E6C821 */ addu $t9, $t7, $a2 +/* 0967C4 7F061C54 8F25005C */ lw $a1, 0x5c($t9) +/* 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 +/* 0967D8 7F061C68 AFA60040 */ sw $a2, 0x40($sp) +/* 0967DC 7F061C6C 8FA3005C */ lw $v1, 0x5c($sp) +/* 0967E0 7F061C70 8FA60040 */ lw $a2, 0x40($sp) +/* 0967E4 7F061C74 10400006 */ beqz $v0, .Ljp7F061C90 +/* 0967E8 7F061C78 24070005 */ li $a3, 5 +/* 0967EC 7F061C7C 8E0E0034 */ lw $t6, 0x34($s0) +/* 0967F0 7F061C80 00E3C023 */ subu $t8, $a3, $v1 +/* 0967F4 7F061C84 01D8682A */ slt $t5, $t6, $t8 +/* 0967F8 7F061C88 39AD0001 */ xori $t5, $t5, 1 +/* 0967FC 7F061C8C AC4D0000 */ sw $t5, ($v0) +.Ljp7F061C90: +/* 096800 7F061C90 24630001 */ addiu $v1, $v1, 1 +.Ljp7F061C94: +/* 096804 7F061C94 1467FFD8 */ bne $v1, $a3, .Ljp7F061BF8 +/* 096808 7F061C98 24C60004 */ addiu $a2, $a2, 4 +.Ljp7F061C9C: +/* 09680C 7F061C9C 0FC1BD6D */ jal sub_GAME_7F06EFC4 +/* 096810 7F061CA0 8FA40044 */ lw $a0, 0x44($sp) +/* 096814 7F061CA4 820F000C */ lb $t7, 0xc($s0) +/* 096818 7F061CA8 8FB900FC */ lw $t9, 0xfc($sp) +/* 09681C 7F061CAC 11E00014 */ beqz $t7, weapon_bullet_type_shotgun_mine +/* 096820 7F061CB0 272EFFFC */ addiu $t6, $t9, -4 +/* 096824 7F061CB4 2DC10014 */ sltiu $at, $t6, 0x14 +/* 096828 7F061CB8 10200011 */ beqz $at, weapon_bullet_type_shotgun_mine +/* 09682C 7F061CBC 000E7080 */ sll $t6, $t6, 2 +/* 096830 7F061CC0 3C018005 */ lui $at, %hi(jpt_weapon_bullet_type) +/* 096834 7F061CC4 002E0821 */ addu $at, $at, $t6 +/* 096838 7F061CC8 8C2E3E68 */ lw $t6, %lo(jpt_weapon_bullet_type)($at) +/* 09683C 7F061CCC 01C00008 */ jr $t6 +/* 096840 7F061CD0 00000000 */ nop +weapon_bullet_type_pistol: +/* 096844 7F061CD4 0FC18848 */ jal sub_GAME_7F061BF4 +/* 096848 7F061CD8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09684C 7F061CDC 8E180030 */ lw $t8, 0x30($s0) +/* 096850 7F061CE0 270D0001 */ addiu $t5, $t8, 1 +/* 096854 7F061CE4 10000006 */ b weapon_bullet_type_shotgun_mine +/* 096858 7F061CE8 AE0D0030 */ sw $t5, 0x30($s0) +weapon_bullet_type_none: +/* 09685C 7F061CEC 8E0F0030 */ lw $t7, 0x30($s0) +/* 096860 7F061CF0 25F90001 */ addiu $t9, $t7, 1 +/* 096864 7F061CF4 AE190030 */ sw $t9, 0x30($s0) +/* 096868 7F061CF8 0FC18848 */ jal sub_GAME_7F061BF4 +/* 09686C 7F061CFC 8FA402A8 */ lw $a0, 0x2a8($sp) +weapon_bullet_type_shotgun_mine: +/* 096870 7F061D00 8FAE00FC */ lw $t6, 0xfc($sp) +.Ljp7F061D04: +/* 096874 7F061D04 24010019 */ li $at, 25 +/* 096878 7F061D08 55C10004 */ bnel $t6, $at, .Ljp7F061D1C +/* 09687C 7F061D0C 8218000C */ lb $t8, 0xc($s0) +/* 096880 7F061D10 0FC17F92 */ jal sub_GAME_7F05F928 +/* 096884 7F061D14 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096888 7F061D18 8218000C */ lb $t8, 0xc($s0) +.Ljp7F061D1C: +/* 09688C 7F061D1C 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 096890 7F061D20 53000046 */ beql $t8, $zero, .Ljp7F061E3C +/* 096894 7F061D24 8FBF0034 */ lw $ra, 0x34($sp) +/* 096898 7F061D28 0FC22793 */ jal sub_GAME_7F089778 +/* 09689C 7F061D2C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0968A0 7F061D30 44050000 */ mfc1 $a1, $f0 +/* 0968A4 7F061D34 0FC1A2B8 */ jal sub_GAME_7F068508 +/* 0968A8 7F061D38 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968AC 7F061D3C 8FAD00FC */ lw $t5, 0xfc($sp) +/* 0968B0 7F061D40 24010018 */ li $at, 24 +/* 0968B4 7F061D44 8FAF00FC */ lw $t7, 0xfc($sp) +/* 0968B8 7F061D48 55A10006 */ bnel $t5, $at, .Ljp7F061D64 +/* 0968BC 7F061D4C 2401001A */ li $at, 26 +/* 0968C0 7F061D50 0FC17F17 */ jal sub_GAME_7F05F73C +/* 0968C4 7F061D54 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968C8 7F061D58 10000038 */ b .Ljp7F061E3C +/* 0968CC 7F061D5C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0968D0 7F061D60 2401001A */ li $at, 26 +.Ljp7F061D64: +/* 0968D4 7F061D64 15E10005 */ bne $t7, $at, .Ljp7F061D7C +/* 0968D8 7F061D68 8FB900FC */ lw $t9, 0xfc($sp) +/* 0968DC 7F061D6C 0FC17CD1 */ jal sub_GAME_7F05EE24 +/* 0968E0 7F061D70 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968E4 7F061D74 10000031 */ b .Ljp7F061E3C +/* 0968E8 7F061D78 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061D7C: +/* 0968EC 7F061D7C 24010019 */ li $at, 25 +/* 0968F0 7F061D80 17210005 */ bne $t9, $at, .Ljp7F061D98 +/* 0968F4 7F061D84 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0968F8 7F061D88 0FC18021 */ jal sub_GAME_7F05FB64 +/* 0968FC 7F061D8C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096900 7F061D90 1000002A */ b .Ljp7F061E3C +/* 096904 7F061D94 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061D98: +/* 096908 7F061D98 24010003 */ li $at, 3 +/* 09690C 7F061D9C 15C10005 */ bne $t6, $at, .Ljp7F061DB4 +/* 096910 7F061DA0 8FB800FC */ lw $t8, 0xfc($sp) +/* 096914 7F061DA4 0FC17D6F */ jal sub_GAME_7F05F09C +/* 096918 7F061DA8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09691C 7F061DAC 10000023 */ b .Ljp7F061E3C +/* 096920 7F061DB0 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061DB4: +/* 096924 7F061DB4 2401001D */ li $at, 29 +/* 096928 7F061DB8 1301000F */ beq $t8, $at, .Ljp7F061DF8 +/* 09692C 7F061DBC 2401001C */ li $at, 28 +/* 096930 7F061DC0 1301000D */ beq $t8, $at, .Ljp7F061DF8 +/* 096934 7F061DC4 2401001B */ li $at, 27 +/* 096938 7F061DC8 1301000B */ beq $t8, $at, .Ljp7F061DF8 +/* 09693C 7F061DCC 24010021 */ li $at, 33 +/* 096940 7F061DD0 13010009 */ beq $t8, $at, .Ljp7F061DF8 +/* 096944 7F061DD4 2401002F */ li $at, 47 +/* 096948 7F061DD8 13010007 */ beq $t8, $at, .Ljp7F061DF8 +/* 09694C 7F061DDC 24010030 */ li $at, 48 +/* 096950 7F061DE0 13010005 */ beq $t8, $at, .Ljp7F061DF8 +/* 096954 7F061DE4 2401003D */ li $at, 61 +/* 096958 7F061DE8 13010003 */ beq $t8, $at, .Ljp7F061DF8 +/* 09695C 7F061DEC 24010022 */ li $at, 34 +/* 096960 7F061DF0 17010005 */ bne $t8, $at, .Ljp7F061E08 +/* 096964 7F061DF4 8FAD00FC */ lw $t5, 0xfc($sp) +.Ljp7F061DF8: +/* 096968 7F061DF8 0FC17E1E */ jal generate_player_thrown_object +/* 09696C 7F061DFC 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096970 7F061E00 1000000E */ b .Ljp7F061E3C +/* 096974 7F061E04 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E08: +/* 096978 7F061E08 24010023 */ li $at, 35 +/* 09697C 7F061E0C 15A10005 */ bne $t5, $at, .Ljp7F061E24 +/* 096980 7F061E10 8FAF00FC */ lw $t7, 0xfc($sp) +/* 096984 7F061E14 0FC17F17 */ jal sub_GAME_7F05F73C +/* 096988 7F061E18 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09698C 7F061E1C 10000007 */ b .Ljp7F061E3C +/* 096990 7F061E20 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E24: +/* 096994 7F061E24 24010024 */ li $at, 36 +/* 096998 7F061E28 55E10004 */ bnel $t7, $at, .Ljp7F061E3C +/* 09699C 7F061E2C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0969A0 7F061E30 0FC17F17 */ jal sub_GAME_7F05F73C +/* 0969A4 7F061E34 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0969A8 7F061E38 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E3C: +/* 0969AC 7F061E3C 8FB00030 */ lw $s0, 0x30($sp) +/* 0969B0 7F061E40 27BD02A8 */ addiu $sp, $sp, 0x2a8 +/* 0969B4 7F061E44 03E00008 */ jr $ra +/* 0969B8 7F061E48 00000000 */ nop +) +#endif + +#endif + + + +void bondwalkFireBothHands(void) +{ + handles_firing_or_throwing_weapon_in_hand(RIGHT_HAND); + handles_firing_or_throwing_weapon_in_hand(LEFT_HAND); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061948(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053E88 +.word 0x461c4000 /*10000.0*/ +glabel D_80053E8C +.word 0x453b8000 /*3000.0*/ +glabel D_80053E90 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053E94 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E98 +.word 0xbdcccccd /*-0.1*/ +glabel D_80053E9C +.word 0x453b8000 /*3000.0*/ +glabel D_80053EA0 +.word 0x453b8000 /*3000.0*/ +glabel D_80053EA4 +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F061948 +/* 096478 7F061948 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09647C 7F06194C AFBF0014 */ sw $ra, 0x14($sp) +/* 096480 7F061950 C4C40000 */ lwc1 $f4, ($a2) +/* 096484 7F061954 E4840004 */ swc1 $f4, 4($a0) +/* 096488 7F061958 C4C60004 */ lwc1 $f6, 4($a2) +/* 09648C 7F06195C E4860008 */ swc1 $f6, 8($a0) +/* 096490 7F061960 C4C80008 */ lwc1 $f8, 8($a2) +/* 096494 7F061964 E488000C */ swc1 $f8, 0xc($a0) +/* 096498 7F061968 C4D00000 */ lwc1 $f16, ($a2) +/* 09649C 7F06196C C4EA0000 */ lwc1 $f10, ($a3) +/* 0964A0 7F061970 46105481 */ sub.s $f18, $f10, $f16 +/* 0964A4 7F061974 E4920010 */ swc1 $f18, 0x10($a0) +/* 0964A8 7F061978 C4C60004 */ lwc1 $f6, 4($a2) +/* 0964AC 7F06197C C4E40004 */ lwc1 $f4, 4($a3) +/* 0964B0 7F061980 C4820010 */ lwc1 $f2, 0x10($a0) +/* 0964B4 7F061984 46062201 */ sub.s $f8, $f4, $f6 +/* 0964B8 7F061988 46021102 */ mul.s $f4, $f2, $f2 +/* 0964BC 7F06198C E4880014 */ swc1 $f8, 0x14($a0) +/* 0964C0 7F061990 C4D00008 */ lwc1 $f16, 8($a2) +/* 0964C4 7F061994 C4EA0008 */ lwc1 $f10, 8($a3) +/* 0964C8 7F061998 C48E0014 */ lwc1 $f14, 0x14($a0) +/* 0964CC 7F06199C 46105481 */ sub.s $f18, $f10, $f16 +/* 0964D0 7F0619A0 460E7182 */ mul.s $f6, $f14, $f14 +/* 0964D4 7F0619A4 E4920018 */ swc1 $f18, 0x18($a0) +/* 0964D8 7F0619A8 C4800018 */ lwc1 $f0, 0x18($a0) +/* 0964DC 7F0619AC AFA50024 */ sw $a1, 0x24($sp) +/* 0964E0 7F0619B0 AFA40020 */ sw $a0, 0x20($sp) +/* 0964E4 7F0619B4 46000282 */ mul.s $f10, $f0, $f0 +/* 0964E8 7F0619B8 46062200 */ add.s $f8, $f4, $f6 +/* 0964EC 7F0619BC 0C007DF8 */ jal sqrtf +/* 0964F0 7F0619C0 46085300 */ add.s $f12, $f10, $f8 +/* 0964F4 7F0619C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0964F8 7F0619C8 44818000 */ mtc1 $at, $f16 +/* 0964FC 7F0619CC 8FA40020 */ lw $a0, 0x20($sp) +/* 096500 7F0619D0 8FA50024 */ lw $a1, 0x24($sp) +/* 096504 7F0619D4 46008083 */ div.s $f2, $f16, $f0 +/* 096508 7F0619D8 C4920010 */ lwc1 $f18, 0x10($a0) +/* 09650C 7F0619DC C4860014 */ lwc1 $f6, 0x14($a0) +/* 096510 7F0619E0 C4880018 */ lwc1 $f8, 0x18($a0) +/* 096514 7F0619E4 24020017 */ li $v0, 23 +/* 096518 7F0619E8 46000306 */ mov.s $f12, $f0 +/* 09651C 7F0619EC 3C018005 */ lui $at, %hi(D_80053E88) +/* 096520 7F0619F0 46029102 */ mul.s $f4, $f18, $f2 +/* 096524 7F0619F4 00000000 */ nop +/* 096528 7F0619F8 46023282 */ mul.s $f10, $f6, $f2 +/* 09652C 7F0619FC 00000000 */ nop +/* 096530 7F061A00 46024402 */ mul.s $f16, $f8, $f2 +/* 096534 7F061A04 E4840010 */ swc1 $f4, 0x10($a0) +/* 096538 7F061A08 E48A0014 */ swc1 $f10, 0x14($a0) +/* 09653C 7F061A0C 14A2000A */ bne $a1, $v0, .L7F061A38 +/* 096540 7F061A10 E4900018 */ swc1 $f16, 0x18($a0) +/* 096544 7F061A14 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 096548 7F061A18 44811000 */ mtc1 $at, $f2 +/* 09654C 7F061A1C 00000000 */ nop +/* 096550 7F061A20 4600103C */ c.lt.s $f2, $f0 +/* 096554 7F061A24 00000000 */ nop +/* 096558 7F061A28 4502000A */ bc1fl .L7F061A54 +/* 09655C 7F061A2C 3C0143FA */ lui $at, %hi(0x43FA3E88) # $at, 0x43fa +/* 096560 7F061A30 10000007 */ b .L7F061A50 +/* 096564 7F061A34 46001306 */ mov.s $f12, $f2 +.L7F061A38: +/* 096568 7F061A38 C4223E88 */ lwc1 $f2, %lo(D_80053E88)($at) +/* 09656C 7F061A3C 4600103C */ c.lt.s $f2, $f0 +/* 096570 7F061A40 00000000 */ nop +/* 096574 7F061A44 45020003 */ bc1fl .L7F061A54 +/* 096578 7F061A48 3C0143FA */ lui $at, 0x43fa +/* 09657C 7F061A4C 46001306 */ mov.s $f12, $f2 +.L7F061A50: +/* 096580 7F061A50 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +.L7F061A54: +/* 096584 7F061A54 44810000 */ mtc1 $at, $f0 +/* 096588 7F061A58 A0800000 */ sb $zero, ($a0) +/* 09658C 7F061A5C A0850001 */ sb $a1, 1($a0) +/* 096590 7F061A60 4600603C */ c.lt.s $f12, $f0 +/* 096594 7F061A64 E48C001C */ swc1 $f12, 0x1c($a0) +/* 096598 7F061A68 24010016 */ li $at, 22 +/* 09659C 7F061A6C 45000002 */ bc1f .L7F061A78 +/* 0965A0 7F061A70 00000000 */ nop +/* 0965A4 7F061A74 46000306 */ mov.s $f12, $f0 +.L7F061A78: +/* 0965A8 7F061A78 14A10026 */ bne $a1, $at, .L7F061B14 +/* 0965AC 7F061A7C 3C018005 */ lui $at, %hi(D_80053E8C) +/* 0965B0 7F061A80 C4223E8C */ lwc1 $f2, %lo(D_80053E8C)($at) +/* 0965B4 7F061A84 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0965B8 7F061A88 44819000 */ mtc1 $at, $f18 +/* 0965BC 7F061A8C 3C018005 */ lui $at, %hi(D_80053E90) +/* 0965C0 7F061A90 460C9102 */ mul.s $f4, $f18, $f12 +/* 0965C4 7F061A94 E4840020 */ swc1 $f4, 0x20($a0) +/* 0965C8 7F061A98 C4263E90 */ lwc1 $f6, %lo(D_80053E90)($at) +/* 0965CC 7F061A9C 460C3002 */ mul.s $f0, $f6, $f12 +/* 0965D0 7F061AA0 4600103C */ c.lt.s $f2, $f0 +/* 0965D4 7F061AA4 E4800024 */ swc1 $f0, 0x24($a0) +/* 0965D8 7F061AA8 45020003 */ bc1fl .L7F061AB8 +/* 0965DC 7F061AAC AFA40020 */ sw $a0, 0x20($sp) +/* 0965E0 7F061AB0 E4820024 */ swc1 $f2, 0x24($a0) +/* 0965E4 7F061AB4 AFA40020 */ sw $a0, 0x20($sp) +.L7F061AB8: +/* 0965E8 7F061AB8 0C002914 */ jal get_random_value +/* 0965EC 7F061ABC E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0965F0 7F061AC0 44825000 */ mtc1 $v0, $f10 +/* 0965F4 7F061AC4 8FA40020 */ lw $a0, 0x20($sp) +/* 0965F8 7F061AC8 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0965FC 7F061ACC 04410005 */ bgez $v0, .L7F061AE4 +/* 096600 7F061AD0 46805220 */ cvt.s.w $f8, $f10 +/* 096604 7F061AD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 096608 7F061AD8 44818000 */ mtc1 $at, $f16 +/* 09660C 7F061ADC 00000000 */ nop +/* 096610 7F061AE0 46104200 */ add.s $f8, $f8, $f16 +.L7F061AE4: +/* 096614 7F061AE4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 096618 7F061AE8 44819000 */ mtc1 $at, $f18 +/* 09661C 7F061AEC 3C018005 */ lui $at, %hi(D_80053E94) +/* 096620 7F061AF0 C4263E94 */ lwc1 $f6, %lo(D_80053E94)($at) +/* 096624 7F061AF4 46124102 */ mul.s $f4, $f8, $f18 +/* 096628 7F061AF8 3C018005 */ lui $at, %hi(D_80053E98) +/* 09662C 7F061AFC C4303E98 */ lwc1 $f16, %lo(D_80053E98)($at) +/* 096630 7F061B00 46062282 */ mul.s $f10, $f4, $f6 +/* 096634 7F061B04 460A8201 */ sub.s $f8, $f16, $f10 +/* 096638 7F061B08 460C4482 */ mul.s $f18, $f8, $f12 +/* 09663C 7F061B0C 1000002D */ b .L7F061BC4 +/* 096640 7F061B10 E4920028 */ swc1 $f18, 0x28($a0) +.L7F061B14: +/* 096644 7F061B14 14A2000D */ bne $a1, $v0, .L7F061B4C +/* 096648 7F061B18 3C018005 */ lui $at, %hi(D_80053EA0) +/* 09664C 7F061B1C 3C018005 */ lui $at, %hi(D_80053E9C) +/* 096650 7F061B20 C4223E9C */ lwc1 $f2, %lo(D_80053E9C)($at) +/* 096654 7F061B24 460C6100 */ add.s $f4, $f12, $f12 +/* 096658 7F061B28 44803000 */ mtc1 $zero, $f6 +/* 09665C 7F061B2C E48C0024 */ swc1 $f12, 0x24($a0) +/* 096660 7F061B30 460C103C */ c.lt.s $f2, $f12 +/* 096664 7F061B34 E4840020 */ swc1 $f4, 0x20($a0) +/* 096668 7F061B38 45000002 */ bc1f .L7F061B44 +/* 09666C 7F061B3C 00000000 */ nop +/* 096670 7F061B40 E4820024 */ swc1 $f2, 0x24($a0) +.L7F061B44: +/* 096674 7F061B44 1000001F */ b .L7F061BC4 +/* 096678 7F061B48 E4860028 */ swc1 $f6, 0x28($a0) +.L7F061B4C: +/* 09667C 7F061B4C C4223EA0 */ lwc1 $f2, %lo(D_80053EA0)($at) +/* 096680 7F061B50 3C018005 */ lui $at, %hi(D_80053EA4) +/* 096684 7F061B54 C4303EA4 */ lwc1 $f16, %lo(D_80053EA4)($at) +/* 096688 7F061B58 460C8002 */ mul.s $f0, $f16, $f12 +/* 09668C 7F061B5C 4600103C */ c.lt.s $f2, $f0 +/* 096690 7F061B60 E4800020 */ swc1 $f0, 0x20($a0) +/* 096694 7F061B64 E4800024 */ swc1 $f0, 0x24($a0) +/* 096698 7F061B68 45000002 */ bc1f .L7F061B74 +/* 09669C 7F061B6C 00000000 */ nop +/* 0966A0 7F061B70 E4820024 */ swc1 $f2, 0x24($a0) +.L7F061B74: +/* 0966A4 7F061B74 0C002914 */ jal get_random_value +/* 0966A8 7F061B78 AFA40020 */ sw $a0, 0x20($sp) +/* 0966AC 7F061B7C 44825000 */ mtc1 $v0, $f10 +/* 0966B0 7F061B80 8FA40020 */ lw $a0, 0x20($sp) +/* 0966B4 7F061B84 04410005 */ bgez $v0, .L7F061B9C +/* 0966B8 7F061B88 46805220 */ cvt.s.w $f8, $f10 +/* 0966BC 7F061B8C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0966C0 7F061B90 44819000 */ mtc1 $at, $f18 +/* 0966C4 7F061B94 00000000 */ nop +/* 0966C8 7F061B98 46124200 */ add.s $f8, $f8, $f18 +.L7F061B9C: +/* 0966CC 7F061B9C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0966D0 7F061BA0 44812000 */ mtc1 $at, $f4 +/* 0966D4 7F061BA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0966D8 7F061BA8 44818000 */ mtc1 $at, $f16 +/* 0966DC 7F061BAC 46044002 */ mul.s $f0, $f8, $f4 +/* 0966E0 7F061BB0 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0966E4 7F061BB4 46000180 */ add.s $f6, $f0, $f0 +/* 0966E8 7F061BB8 46103281 */ sub.s $f10, $f6, $f16 +/* 0966EC 7F061BBC 46125202 */ mul.s $f8, $f10, $f18 +/* 0966F0 7F061BC0 E4880028 */ swc1 $f8, 0x28($a0) +.L7F061BC4: +/* 0966F4 7F061BC4 C4840028 */ lwc1 $f4, 0x28($a0) +/* 0966F8 7F061BC8 C486001C */ lwc1 $f6, 0x1c($a0) +/* 0966FC 7F061BCC 240EFFFF */ li $t6, -1 +/* 096700 7F061BD0 4604303E */ c.le.s $f6, $f4 +/* 096704 7F061BD4 00000000 */ nop +/* 096708 7F061BD8 45020003 */ bc1fl .L7F061BE8 +/* 09670C 7F061BDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 096710 7F061BE0 A08E0000 */ sb $t6, ($a0) +/* 096714 7F061BE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F061BE8: +/* 096718 7F061BE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09671C 7F061BEC 03E00008 */ jr $ra +/* 096720 7F061BF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061BF4(void) { + +} +#else +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(pPlayer) +/* 096738 7F061C08 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 get_BONDdata_field_10CC +/* 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 get_item_in_hand +/* 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(pPlayer) +/* 0967D8 7F061CA8 8F18A0B0 */ lw $t8, %lo(pPlayer)($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 get_num_players +/* 0967F0 7F061CC0 00000000 */ nop +/* 0967F4 7F061CC4 28410002 */ slti $at, $v0, 2 +/* 0967F8 7F061CC8 1420004E */ bnez $at, .L7F061E04 +/* 0967FC 7F061CCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 096800 7F061CD0 8C63A0B0 */ lw $v1, %lo(pPlayer)($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 get_item_in_hand +/* 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(pPlayer) +/* 096900 7F061DD0 8DADA0B0 */ lw $t5, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061E18(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053EAC +.word 0x3fb50481 /*1.4141999*/ +glabel D_80053EB0 +.word 0x3dcccccd /*0.1*/ +glabel D_80053EB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EBC +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC0 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053ECC +.word 0x3fb50481 /*1.4141999*/ +glabel D_80053ED0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F061E18 +/* 096948 7F061E18 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 09694C 7F061E1C AFBF002C */ sw $ra, 0x2c($sp) +/* 096950 7F061E20 AFB10028 */ sw $s1, 0x28($sp) +/* 096954 7F061E24 AFB00024 */ sw $s0, 0x24($sp) +/* 096958 7F061E28 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 09695C 7F061E2C AFA40160 */ sw $a0, 0x160($sp) +/* 096960 7F061E30 AFA60168 */ sw $a2, 0x168($sp) +/* 096964 7F061E34 80AB0000 */ lb $t3, ($a1) +/* 096968 7F061E38 3C0E8003 */ lui $t6, %hi(D_80035C98) +/* 09696C 7F061E3C 00A08825 */ move $s1, $a1 +/* 096970 7F061E40 05600328 */ bltz $t3, .L7F062AE4 +/* 096974 7F061E44 25CE5C98 */ addiu $t6, %lo(D_80035C98) # addiu $t6, $t6, 0x5c98 +/* 096978 7F061E48 8DC10000 */ lw $at, ($t6) +/* 09697C 7F061E4C 8DD90004 */ lw $t9, 4($t6) +/* 096980 7F061E50 27A90108 */ addiu $t1, $sp, 0x108 +/* 096984 7F061E54 AD210000 */ sw $at, ($t1) +/* 096988 7F061E58 AD390004 */ sw $t9, 4($t1) +/* 09698C 7F061E5C 8DD9000C */ lw $t9, 0xc($t6) +/* 096990 7F061E60 8DC10008 */ lw $at, 8($t6) +/* 096994 7F061E64 AD39000C */ sw $t9, 0xc($t1) +/* 096998 7F061E68 0FC227F5 */ jal get_BONDdata_position +/* 09699C 7F061E6C AD210008 */ sw $at, 8($t1) +/* 0969A0 7F061E70 AFA200F8 */ sw $v0, 0xf8($sp) +/* 0969A4 7F061E74 3C0D8003 */ lui $t5, %hi(D_80035CA8) +/* 0969A8 7F061E78 25AD5CA8 */ addiu $t5, %lo(D_80035CA8) # addiu $t5, $t5, 0x5ca8 +/* 0969AC 7F061E7C 8DA10000 */ lw $at, ($t5) +/* 0969B0 7F061E80 C6200028 */ lwc1 $f0, 0x28($s1) +/* 0969B4 7F061E84 C6340024 */ lwc1 $f20, 0x24($s1) +/* 0969B8 7F061E88 27AF00C4 */ addiu $t7, $sp, 0xc4 +/* 0969BC 7F061E8C ADE10000 */ sw $at, ($t7) +/* 0969C0 7F061E90 8DA10008 */ lw $at, 8($t5) +/* 0969C4 7F061E94 8DAB0004 */ lw $t3, 4($t5) +/* 0969C8 7F061E98 3C098003 */ lui $t1, %hi(D_80035CB4) +/* 0969CC 7F061E9C 25295CB4 */ addiu $t1, %lo(D_80035CB4) # addiu $t1, $t1, 0x5cb4 +/* 0969D0 7F061EA0 ADE10008 */ sw $at, 8($t7) +/* 0969D4 7F061EA4 ADEB0004 */ sw $t3, 4($t7) +/* 0969D8 7F061EA8 8D210000 */ lw $at, ($t1) +/* 0969DC 7F061EAC 27B800B8 */ addiu $t8, $sp, 0xb8 +/* 0969E0 7F061EB0 8D2A0004 */ lw $t2, 4($t1) +/* 0969E4 7F061EB4 AF010000 */ sw $at, ($t8) +/* 0969E8 7F061EB8 8D210008 */ lw $at, 8($t1) +/* 0969EC 7F061EBC AF0A0004 */ sw $t2, 4($t8) +/* 0969F0 7F061EC0 3C0C8009 */ lui $t4, %hi(flareimage3) +/* 0969F4 7F061EC4 AF010008 */ sw $at, 8($t8) +/* 0969F8 7F061EC8 3C018005 */ lui $at, %hi(D_80053EAC) +/* 0969FC 7F061ECC C4243EAC */ lwc1 $f4, %lo(D_80053EAC)($at) +/* 096A00 7F061ED0 8D8CD0D0 */ lw $t4, %lo(flareimage3)($t4) +/* 096A04 7F061ED4 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096A08 7F061ED8 E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 096A0C 7F061EDC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 096A10 7F061EE0 AFAC00B0 */ sw $t4, 0xb0($sp) +/* 096A14 7F061EE4 AFA200A8 */ sw $v0, 0xa8($sp) +/* 096A18 7F061EE8 82230001 */ lb $v1, 1($s1) +/* 096A1C 7F061EEC 24010016 */ li $at, 22 +/* 096A20 7F061EF0 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 096A24 7F061EF4 14610007 */ bne $v1, $at, .L7F061F14 +/* 096A28 7F061EF8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 096A2C 7F061EFC 44819000 */ mtc1 $at, $f18 +/* 096A30 7F061F00 3C0F8009 */ lui $t7, %hi(flareimage4) +/* 096A34 7F061F04 8DEFD0D4 */ lw $t7, %lo(flareimage4)($t7) +/* 096A38 7F061F08 E7B200F4 */ swc1 $f18, 0xf4($sp) +/* 096A3C 7F061F0C 10000026 */ b .L7F061FA8 +/* 096A40 7F061F10 AFAF00B0 */ sw $t7, 0xb0($sp) +.L7F061F14: +/* 096A44 7F061F14 24010017 */ li $at, 23 +/* 096A48 7F061F18 1461001F */ bne $v1, $at, .L7F061F98 +/* 096A4C 7F061F1C 3C0D8009 */ lui $t5, %hi(flareimage4) +/* 096A50 7F061F20 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096A54 7F061F24 44813000 */ mtc1 $at, $f6 +/* 096A58 7F061F28 8DADD0D4 */ lw $t5, %lo(flareimage4)($t5) +/* 096A5C 7F061F2C E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096A60 7F061F30 E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 096A64 7F061F34 0C002914 */ jal get_random_value +/* 096A68 7F061F38 AFAD00B0 */ sw $t5, 0xb0($sp) +/* 096A6C 7F061F3C 24010032 */ li $at, 50 +/* 096A70 7F061F40 0041001B */ divu $zero, $v0, $at +/* 096A74 7F061F44 00005810 */ mfhi $t3 +/* 096A78 7F061F48 25790096 */ addiu $t9, $t3, 0x96 +/* 096A7C 7F061F4C 0C002914 */ jal get_random_value +/* 096A80 7F061F50 A3B90117 */ sb $t9, 0x117($sp) +/* 096A84 7F061F54 24010005 */ li $at, 5 +/* 096A88 7F061F58 0041001B */ divu $zero, $v0, $at +/* 096A8C 7F061F5C 00007010 */ mfhi $t6 +/* 096A90 7F061F60 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 096A94 7F061F64 55C00011 */ bnezl $t6, .L7F061FAC +/* 096A98 7F061F68 C6240004 */ lwc1 $f4, 4($s1) +/* 096A9C 7F061F6C 0C002914 */ jal get_random_value +/* 096AA0 7F061F70 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096AA4 7F061F74 24010064 */ li $at, 100 +/* 096AA8 7F061F78 0041001B */ divu $zero, $v0, $at +/* 096AAC 7F061F7C 0000C010 */ mfhi $t8 +/* 096AB0 7F061F80 240900FF */ li $t1, 255 +/* 096AB4 7F061F84 01381823 */ subu $v1, $t1, $t8 +/* 096AB8 7F061F88 A3A30115 */ sb $v1, 0x115($sp) +/* 096ABC 7F061F8C A3A30114 */ sb $v1, 0x114($sp) +/* 096AC0 7F061F90 10000005 */ b .L7F061FA8 +/* 096AC4 7F061F94 C7A000E8 */ lwc1 $f0, 0xe8($sp) +.L7F061F98: +/* 096AC8 7F061F98 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 096ACC 7F061F9C 44815000 */ mtc1 $at, $f10 +/* 096AD0 7F061FA0 00000000 */ nop +/* 096AD4 7F061FA4 E7AA00F4 */ swc1 $f10, 0xf4($sp) +.L7F061FA8: +/* 096AD8 7F061FA8 C6240004 */ lwc1 $f4, 4($s1) +.L7F061FAC: +/* 096ADC 7F061FAC 44807000 */ mtc1 $zero, $f14 +/* 096AE0 7F061FB0 E7A400FC */ swc1 $f4, 0xfc($sp) +/* 096AE4 7F061FB4 C6280008 */ lwc1 $f8, 8($s1) +/* 096AE8 7F061FB8 4600703C */ c.lt.s $f14, $f0 +/* 096AEC 7F061FBC E7A80100 */ swc1 $f8, 0x100($sp) +/* 096AF0 7F061FC0 C626000C */ lwc1 $f6, 0xc($s1) +/* 096AF4 7F061FC4 45000011 */ bc1f .L7F06200C +/* 096AF8 7F061FC8 E7A60104 */ swc1 $f6, 0x104($sp) +/* 096AFC 7F061FCC C6240010 */ lwc1 $f4, 0x10($s1) +/* 096B00 7F061FD0 C7AA00FC */ lwc1 $f10, 0xfc($sp) +/* 096B04 7F061FD4 46040202 */ mul.s $f8, $f0, $f4 +/* 096B08 7F061FD8 C7A40100 */ lwc1 $f4, 0x100($sp) +/* 096B0C 7F061FDC 46085180 */ add.s $f6, $f10, $f8 +/* 096B10 7F061FE0 E7A600FC */ swc1 $f6, 0xfc($sp) +/* 096B14 7F061FE4 C62A0014 */ lwc1 $f10, 0x14($s1) +/* 096B18 7F061FE8 460A0202 */ mul.s $f8, $f0, $f10 +/* 096B1C 7F061FEC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 096B20 7F061FF0 46082180 */ add.s $f6, $f4, $f8 +/* 096B24 7F061FF4 E7A60100 */ swc1 $f6, 0x100($sp) +/* 096B28 7F061FF8 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096B2C 7F061FFC 46040202 */ mul.s $f8, $f0, $f4 +/* 096B30 7F062000 46085180 */ add.s $f6, $f10, $f8 +/* 096B34 7F062004 10000003 */ b .L7F062014 +/* 096B38 7F062008 E7A60104 */ swc1 $f6, 0x104($sp) +.L7F06200C: +/* 096B3C 7F06200C 4600A500 */ add.s $f20, $f20, $f0 +/* 096B40 7F062010 46007006 */ mov.s $f0, $f14 +.L7F062014: +/* 096B44 7F062014 46140100 */ add.s $f4, $f0, $f20 +/* 096B48 7F062018 C622001C */ lwc1 $f2, 0x1c($s1) +/* 096B4C 7F06201C 4604103C */ c.lt.s $f2, $f4 +/* 096B50 7F062020 00000000 */ nop +/* 096B54 7F062024 45020003 */ bc1fl .L7F062034 +/* 096B58 7F062028 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 096B5C 7F06202C 46001501 */ sub.s $f20, $f2, $f0 +/* 096B60 7F062030 C62C0018 */ lwc1 $f12, 0x18($s1) +.L7F062034: +/* 096B64 7F062034 C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 096B68 7F062038 8FA200F8 */ lw $v0, 0xf8($sp) +/* 096B6C 7F06203C 460CA202 */ mul.s $f8, $f20, $f12 +/* 096B70 7F062040 C6220014 */ lwc1 $f2, 0x14($s1) +/* 096B74 7F062044 C4440008 */ lwc1 $f4, 8($v0) +/* 096B78 7F062048 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 096B7C 7F06204C 46085180 */ add.s $f6, $f10, $f8 +/* 096B80 7F062050 C44A0004 */ lwc1 $f10, 4($v0) +/* 096B84 7F062054 46062201 */ sub.s $f8, $f4, $f6 +/* 096B88 7F062058 46081102 */ mul.s $f4, $f2, $f8 +/* 096B8C 7F06205C C7A80100 */ lwc1 $f8, 0x100($sp) +/* 096B90 7F062060 46141182 */ mul.s $f6, $f2, $f20 +/* 096B94 7F062064 46083180 */ add.s $f6, $f6, $f8 +/* 096B98 7F062068 46065281 */ sub.s $f10, $f10, $f6 +/* 096B9C 7F06206C 460C5182 */ mul.s $f6, $f10, $f12 +/* 096BA0 7F062070 46062281 */ sub.s $f10, $f4, $f6 +/* 096BA4 7F062074 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 096BA8 7F062078 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 096BAC 7F06207C C6200010 */ lwc1 $f0, 0x10($s1) +/* 096BB0 7F062080 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 096BB4 7F062084 E7A80034 */ swc1 $f8, 0x34($sp) +/* 096BB8 7F062088 4600A182 */ mul.s $f6, $f20, $f0 +/* 096BBC 7F06208C C4480000 */ lwc1 $f8, ($v0) +/* 096BC0 7F062090 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 096BC4 7F062094 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 096BC8 7F062098 46062180 */ add.s $f6, $f4, $f6 +/* 096BCC 7F06209C 46064201 */ sub.s $f8, $f8, $f6 +/* 096BD0 7F0620A0 46086182 */ mul.s $f6, $f12, $f8 +/* 096BD4 7F0620A4 00000000 */ nop +/* 096BD8 7F0620A8 46146202 */ mul.s $f8, $f12, $f20 +/* 096BDC 7F0620AC 460A4200 */ add.s $f8, $f8, $f10 +/* 096BE0 7F0620B0 C44A0008 */ lwc1 $f10, 8($v0) +/* 096BE4 7F0620B4 46085281 */ sub.s $f10, $f10, $f8 +/* 096BE8 7F0620B8 46005202 */ mul.s $f8, $f10, $f0 +/* 096BEC 7F0620BC 46083281 */ sub.s $f10, $f6, $f8 +/* 096BF0 7F0620C0 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 096BF4 7F0620C4 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 096BF8 7F0620C8 C6220014 */ lwc1 $f2, 0x14($s1) +/* 096BFC 7F0620CC C6200010 */ lwc1 $f0, 0x10($s1) +/* 096C00 7F0620D0 4602A202 */ mul.s $f8, $f20, $f2 +/* 096C04 7F0620D4 46083180 */ add.s $f6, $f6, $f8 +/* 096C08 7F0620D8 C4480004 */ lwc1 $f8, 4($v0) +/* 096C0C 7F0620DC 46064201 */ sub.s $f8, $f8, $f6 +/* 096C10 7F0620E0 46080182 */ mul.s $f6, $f0, $f8 +/* 096C14 7F0620E4 00000000 */ nop +/* 096C18 7F0620E8 46140202 */ mul.s $f8, $f0, $f20 +/* 096C1C 7F0620EC 46044200 */ add.s $f8, $f8, $f4 +/* 096C20 7F0620F0 C4440000 */ lwc1 $f4, ($v0) +/* 096C24 7F0620F4 46082101 */ sub.s $f4, $f4, $f8 +/* 096C28 7F0620F8 46022202 */ mul.s $f8, $f4, $f2 +/* 096C2C 7F0620FC 46083101 */ sub.s $f4, $f6, $f8 +/* 096C30 7F062100 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 096C34 7F062104 46067032 */ c.eq.s $f14, $f6 +/* 096C38 7F062108 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 096C3C 7F06210C 45000008 */ bc1f .L7F062130 +/* 096C40 7F062110 00000000 */ nop +/* 096C44 7F062114 460A7032 */ c.eq.s $f14, $f10 +/* 096C48 7F062118 00000000 */ nop +/* 096C4C 7F06211C 45020005 */ bc1fl .L7F062134 +/* 096C50 7F062120 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 096C54 7F062124 46047032 */ c.eq.s $f14, $f4 +/* 096C58 7F062128 00000000 */ nop +/* 096C5C 7F06212C 4501000F */ bc1t .L7F06216C +.L7F062130: +/* 096C60 7F062130 27A400D0 */ addiu $a0, $sp, 0xd0 +.L7F062134: +/* 096C64 7F062134 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 096C68 7F062138 0C007DD4 */ jal guNormalize +/* 096C6C 7F06213C 27A600D8 */ addiu $a2, $sp, 0xd8 +/* 096C70 7F062140 C7A000F4 */ lwc1 $f0, 0xf4($sp) +/* 096C74 7F062144 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 096C78 7F062148 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 096C7C 7F06214C 46004182 */ mul.s $f6, $f8, $f0 +/* 096C80 7F062150 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 096C84 7F062154 46005102 */ mul.s $f4, $f10, $f0 +/* 096C88 7F062158 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 096C8C 7F06215C 46004182 */ mul.s $f6, $f8, $f0 +/* 096C90 7F062160 E7A400D4 */ swc1 $f4, 0xd4($sp) +/* 096C94 7F062164 10000005 */ b .L7F06217C +/* 096C98 7F062168 E7A600D8 */ swc1 $f6, 0xd8($sp) +.L7F06216C: +/* 096C9C 7F06216C C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 096CA0 7F062170 E7AE00D0 */ swc1 $f14, 0xd0($sp) +/* 096CA4 7F062174 E7AE00D8 */ swc1 $f14, 0xd8($sp) +/* 096CA8 7F062178 E7AA00D4 */ swc1 $f10, 0xd4($sp) +.L7F06217C: +/* 096CAC 7F06217C C6240014 */ lwc1 $f4, 0x14($s1) +/* 096CB0 7F062180 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 096CB4 7F062184 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 096CB8 7F062188 27A400DC */ addiu $a0, $sp, 0xdc +/* 096CBC 7F06218C 46082182 */ mul.s $f6, $f4, $f8 +/* 096CC0 7F062190 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096CC4 7F062194 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 096CC8 7F062198 27A600E4 */ addiu $a2, $sp, 0xe4 +/* 096CCC 7F06219C 46045102 */ mul.s $f4, $f10, $f4 +/* 096CD0 7F0621A0 46043181 */ sub.s $f6, $f6, $f4 +/* 096CD4 7F0621A4 E7A600DC */ swc1 $f6, 0xdc($sp) +/* 096CD8 7F0621A8 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096CDC 7F0621AC C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 096CE0 7F0621B0 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 096CE4 7F0621B4 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 096CE8 7F0621B8 46062102 */ mul.s $f4, $f4, $f6 +/* 096CEC 7F0621BC 00000000 */ nop +/* 096CF0 7F0621C0 460A4202 */ mul.s $f8, $f8, $f10 +/* 096CF4 7F0621C4 46082281 */ sub.s $f10, $f4, $f8 +/* 096CF8 7F0621C8 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 096CFC 7F0621CC E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 096D00 7F0621D0 C6240010 */ lwc1 $f4, 0x10($s1) +/* 096D04 7F0621D4 46082282 */ mul.s $f10, $f4, $f8 +/* 096D08 7F0621D8 C6240014 */ lwc1 $f4, 0x14($s1) +/* 096D0C 7F0621DC 46043202 */ mul.s $f8, $f6, $f4 +/* 096D10 7F0621E0 46085181 */ sub.s $f6, $f10, $f8 +/* 096D14 7F0621E4 0C007DD4 */ jal guNormalize +/* 096D18 7F0621E8 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 096D1C 7F0621EC C7A000F4 */ lwc1 $f0, 0xf4($sp) +/* 096D20 7F0621F0 C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 096D24 7F0621F4 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 096D28 7F0621F8 24010016 */ li $at, 22 +/* 096D2C 7F0621FC 46002282 */ mul.s $f10, $f4, $f0 +/* 096D30 7F062200 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 096D34 7F062204 46004182 */ mul.s $f6, $f8, $f0 +/* 096D38 7F062208 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 096D3C 7F06220C 46002282 */ mul.s $f10, $f4, $f0 +/* 096D40 7F062210 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 096D44 7F062214 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 096D48 7F062218 822A0001 */ lb $t2, 1($s1) +/* 096D4C 7F06221C 15410005 */ bne $t2, $at, .L7F062234 +/* 096D50 7F062220 00000000 */ nop +/* 096D54 7F062224 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D58 7F062228 24040008 */ li $a0, 8 +/* 096D5C 7F06222C 10000004 */ b .L7F062240 +/* 096D60 7F062230 00408025 */ move $s0, $v0 +.L7F062234: +/* 096D64 7F062234 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D68 7F062238 24040004 */ li $a0, 4 +/* 096D6C 7F06223C 00408025 */ move $s0, $v0 +.L7F062240: +/* 096D70 7F062240 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 096D74 7F062244 00000000 */ nop +/* 096D78 7F062248 AFA20158 */ sw $v0, 0x158($sp) +/* 096D7C 7F06224C 27A400FC */ addiu $a0, $sp, 0xfc +/* 096D80 7F062250 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 096D84 7F062254 27A50118 */ addiu $a1, $sp, 0x118 +/* 096D88 7F062258 3C018005 */ lui $at, %hi(D_80053EB0) +/* 096D8C 7F06225C C42C3EB0 */ lwc1 $f12, %lo(D_80053EB0)($at) +/* 096D90 7F062260 0FC1629F */ jal matrix_scalar_multiply +/* 096D94 7F062264 27A50118 */ addiu $a1, $sp, 0x118 +/* 096D98 7F062268 8FA400A8 */ lw $a0, 0xa8($sp) +/* 096D9C 7F06226C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 096DA0 7F062270 27A50118 */ addiu $a1, $sp, 0x118 +/* 096DA4 7F062274 27A40118 */ addiu $a0, $sp, 0x118 +/* 096DA8 7F062278 0FC16327 */ jal sub_GAME_7F058C9C +/* 096DAC 7F06227C 8FA50158 */ lw $a1, 0x158($sp) +/* 096DB0 7F062280 27A20108 */ addiu $v0, $sp, 0x108 +/* 096DB4 7F062284 8C410000 */ lw $at, ($v0) +/* 096DB8 7F062288 AE010000 */ sw $at, ($s0) +/* 096DBC 7F06228C 8C4D0004 */ lw $t5, 4($v0) +/* 096DC0 7F062290 AE0D0004 */ sw $t5, 4($s0) +/* 096DC4 7F062294 8C410008 */ lw $at, 8($v0) +/* 096DC8 7F062298 AE010008 */ sw $at, 8($s0) +/* 096DCC 7F06229C 8C4D000C */ lw $t5, 0xc($v0) +/* 096DD0 7F0622A0 AE0D000C */ sw $t5, 0xc($s0) +/* 096DD4 7F0622A4 8C410000 */ lw $at, ($v0) +/* 096DD8 7F0622A8 AE010010 */ sw $at, 0x10($s0) +/* 096DDC 7F0622AC 8C4E0004 */ lw $t6, 4($v0) +/* 096DE0 7F0622B0 AE0E0014 */ sw $t6, 0x14($s0) +/* 096DE4 7F0622B4 8C410008 */ lw $at, 8($v0) +/* 096DE8 7F0622B8 AE010018 */ sw $at, 0x18($s0) +/* 096DEC 7F0622BC 8C4E000C */ lw $t6, 0xc($v0) +/* 096DF0 7F0622C0 AE0E001C */ sw $t6, 0x1c($s0) +/* 096DF4 7F0622C4 8C410000 */ lw $at, ($v0) +/* 096DF8 7F0622C8 AE010020 */ sw $at, 0x20($s0) +/* 096DFC 7F0622CC 8C4A0004 */ lw $t2, 4($v0) +/* 096E00 7F0622D0 AE0A0024 */ sw $t2, 0x24($s0) +/* 096E04 7F0622D4 8C410008 */ lw $at, 8($v0) +/* 096E08 7F0622D8 AE010028 */ sw $at, 0x28($s0) +/* 096E0C 7F0622DC 8C4A000C */ lw $t2, 0xc($v0) +/* 096E10 7F0622E0 AE0A002C */ sw $t2, 0x2c($s0) +/* 096E14 7F0622E4 8C410000 */ lw $at, ($v0) +/* 096E18 7F0622E8 AE010030 */ sw $at, 0x30($s0) +/* 096E1C 7F0622EC 8C4D0004 */ lw $t5, 4($v0) +/* 096E20 7F0622F0 AE0D0034 */ sw $t5, 0x34($s0) +/* 096E24 7F0622F4 8C410008 */ lw $at, 8($v0) +/* 096E28 7F0622F8 AE010038 */ sw $at, 0x38($s0) +/* 096E2C 7F0622FC 8C4D000C */ lw $t5, 0xc($v0) +/* 096E30 7F062300 24010016 */ li $at, 22 +/* 096E34 7F062304 AE0D003C */ sw $t5, 0x3c($s0) +/* 096E38 7F062308 82230001 */ lb $v1, 1($s1) +/* 096E3C 7F06230C 54610023 */ bnel $v1, $at, .L7F06239C +/* 096E40 7F062310 24010017 */ li $at, 23 +/* 096E44 7F062314 8C410000 */ lw $at, ($v0) +/* 096E48 7F062318 AE010040 */ sw $at, 0x40($s0) +/* 096E4C 7F06231C 8C4B0004 */ lw $t3, 4($v0) +/* 096E50 7F062320 AE0B0044 */ sw $t3, 0x44($s0) +/* 096E54 7F062324 8C410008 */ lw $at, 8($v0) +/* 096E58 7F062328 AE010048 */ sw $at, 0x48($s0) +/* 096E5C 7F06232C 8C4B000C */ lw $t3, 0xc($v0) +/* 096E60 7F062330 AE0B004C */ sw $t3, 0x4c($s0) +/* 096E64 7F062334 8C410000 */ lw $at, ($v0) +/* 096E68 7F062338 AE010050 */ sw $at, 0x50($s0) +/* 096E6C 7F06233C 8C580004 */ lw $t8, 4($v0) +/* 096E70 7F062340 AE180054 */ sw $t8, 0x54($s0) +/* 096E74 7F062344 8C410008 */ lw $at, 8($v0) +/* 096E78 7F062348 AE010058 */ sw $at, 0x58($s0) +/* 096E7C 7F06234C 8C58000C */ lw $t8, 0xc($v0) +/* 096E80 7F062350 AE18005C */ sw $t8, 0x5c($s0) +/* 096E84 7F062354 8C410000 */ lw $at, ($v0) +/* 096E88 7F062358 AE010060 */ sw $at, 0x60($s0) +/* 096E8C 7F06235C 8C4A0004 */ lw $t2, 4($v0) +/* 096E90 7F062360 AE0A0064 */ sw $t2, 0x64($s0) +/* 096E94 7F062364 8C410008 */ lw $at, 8($v0) +/* 096E98 7F062368 AE010068 */ sw $at, 0x68($s0) +/* 096E9C 7F06236C 8C4A000C */ lw $t2, 0xc($v0) +/* 096EA0 7F062370 AE0A006C */ sw $t2, 0x6c($s0) +/* 096EA4 7F062374 8C410000 */ lw $at, ($v0) +/* 096EA8 7F062378 AE010070 */ sw $at, 0x70($s0) +/* 096EAC 7F06237C 8C4F0004 */ lw $t7, 4($v0) +/* 096EB0 7F062380 AE0F0074 */ sw $t7, 0x74($s0) +/* 096EB4 7F062384 8C410008 */ lw $at, 8($v0) +/* 096EB8 7F062388 AE010078 */ sw $at, 0x78($s0) +/* 096EBC 7F06238C 8C4F000C */ lw $t7, 0xc($v0) +/* 096EC0 7F062390 AE0F007C */ sw $t7, 0x7c($s0) +/* 096EC4 7F062394 82230001 */ lb $v1, 1($s1) +/* 096EC8 7F062398 24010017 */ li $at, 23 +.L7F06239C: +/* 096ECC 7F06239C 5461004F */ bnel $v1, $at, .L7F0624DC +/* 096ED0 7F0623A0 3C014120 */ lui $at, 0x4120 +/* 096ED4 7F0623A4 C6280010 */ lwc1 $f8, 0x10($s1) +/* 096ED8 7F0623A8 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 096EDC 7F0623AC 8FA400A8 */ lw $a0, 0xa8($sp) +/* 096EE0 7F0623B0 46144182 */ mul.s $f6, $f8, $f20 +/* 096EE4 7F0623B4 27A5009C */ addiu $a1, $sp, 0x9c +/* 096EE8 7F0623B8 46043280 */ add.s $f10, $f6, $f4 +/* 096EEC 7F0623BC C7A40100 */ lwc1 $f4, 0x100($sp) +/* 096EF0 7F0623C0 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 096EF4 7F0623C4 C6280014 */ lwc1 $f8, 0x14($s1) +/* 096EF8 7F0623C8 46144182 */ mul.s $f6, $f8, $f20 +/* 096EFC 7F0623CC 46043280 */ add.s $f10, $f6, $f4 +/* 096F00 7F0623D0 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 096F04 7F0623D4 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 096F08 7F0623D8 C6280018 */ lwc1 $f8, 0x18($s1) +/* 096F0C 7F0623DC 46144182 */ mul.s $f6, $f8, $f20 +/* 096F10 7F0623E0 46043280 */ add.s $f10, $f6, $f4 +/* 096F14 7F0623E4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 096F18 7F0623E8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 096F1C 7F0623EC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096F20 7F0623F0 44813000 */ mtc1 $at, $f6 +/* 096F24 7F0623F4 C7A800F4 */ lwc1 $f8, 0xf4($sp) +/* 096F28 7F0623F8 C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096F2C 7F0623FC 27A40088 */ addiu $a0, $sp, 0x88 +/* 096F30 7F062400 46064003 */ div.s $f0, $f8, $f6 +/* 096F34 7F062404 27A60090 */ addiu $a2, $sp, 0x90 +/* 096F38 7F062408 46007087 */ neg.s $f2, $f14 +/* 096F3C 7F06240C 44051000 */ mfc1 $a1, $f2 +/* 096F40 7F062410 E7A0008C */ swc1 $f0, 0x8c($sp) +/* 096F44 7F062414 0FC1E03C */ jal sub_GAME_7F0780F0 +/* 096F48 7F062418 E7A00088 */ swc1 $f0, 0x88($sp) +/* 096F4C 7F06241C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 096F50 7F062420 C7B00090 */ lwc1 $f16, 0x90($sp) +/* 096F54 7F062424 44812000 */ mtc1 $at, $f4 +/* 096F58 7F062428 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 096F5C 7F06242C 4604803C */ c.lt.s $f16, $f4 +/* 096F60 7F062430 00000000 */ nop +/* 096F64 7F062434 4500000E */ bc1f .L7F062470 +/* 096F68 7F062438 00000000 */ nop +/* 096F6C 7F06243C 44815000 */ mtc1 $at, $f10 +/* 096F70 7F062440 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 096F74 7F062444 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 096F78 7F062448 460A8002 */ mul.s $f0, $f16, $f10 +/* 096F7C 7F06244C C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096F80 7F062450 46001082 */ mul.s $f2, $f2, $f0 +/* 096F84 7F062454 00000000 */ nop +/* 096F88 7F062458 46006302 */ mul.s $f12, $f12, $f0 +/* 096F8C 7F06245C 00000000 */ nop +/* 096F90 7F062460 46007382 */ mul.s $f14, $f14, $f0 +/* 096F94 7F062464 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 096F98 7F062468 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 096F9C 7F06246C E7AE00A4 */ swc1 $f14, 0xa4($sp) +.L7F062470: +/* 096FA0 7F062470 0FC1E111 */ jal sub_GAME_7F078444 +/* 096FA4 7F062474 00000000 */ nop +/* 096FA8 7F062478 00402025 */ move $a0, $v0 +/* 096FAC 7F06247C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 096FB0 7F062480 27A5009C */ addiu $a1, $sp, 0x9c +/* 096FB4 7F062484 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 096FB8 7F062488 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 096FBC 7F06248C C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 096FC0 7F062490 C7A60100 */ lwc1 $f6, 0x100($sp) +/* 096FC4 7F062494 46081081 */ sub.s $f2, $f2, $f8 +/* 096FC8 7F062498 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096FCC 7F06249C 44810000 */ mtc1 $at, $f0 +/* 096FD0 7F0624A0 46066301 */ sub.s $f12, $f12, $f6 +/* 096FD4 7F0624A4 C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096FD8 7F0624A8 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 096FDC 7F0624AC 46001282 */ mul.s $f10, $f2, $f0 +/* 096FE0 7F0624B0 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 096FE4 7F0624B4 46047381 */ sub.s $f14, $f14, $f4 +/* 096FE8 7F0624B8 46006202 */ mul.s $f8, $f12, $f0 +/* 096FEC 7F0624BC E7A2009C */ swc1 $f2, 0x9c($sp) +/* 096FF0 7F0624C0 46007182 */ mul.s $f6, $f14, $f0 +/* 096FF4 7F0624C4 E7AA00C4 */ swc1 $f10, 0xc4($sp) +/* 096FF8 7F0624C8 E7AE00A4 */ swc1 $f14, 0xa4($sp) +/* 096FFC 7F0624CC E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 097000 7F0624D0 1000000E */ b .L7F06250C +/* 097004 7F0624D4 E7A600CC */ swc1 $f6, 0xcc($sp) +/* 097008 7F0624D8 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0624DC: +/* 09700C 7F0624DC 44812000 */ mtc1 $at, $f4 +/* 097010 7F0624E0 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 097014 7F0624E4 4604A002 */ mul.s $f0, $f20, $f4 +/* 097018 7F0624E8 00000000 */ nop +/* 09701C 7F0624EC 46005202 */ mul.s $f8, $f10, $f0 +/* 097020 7F0624F0 E7A800C4 */ swc1 $f8, 0xc4($sp) +/* 097024 7F0624F4 C6260014 */ lwc1 $f6, 0x14($s1) +/* 097028 7F0624F8 46003102 */ mul.s $f4, $f6, $f0 +/* 09702C 7F0624FC E7A400C8 */ swc1 $f4, 0xc8($sp) +/* 097030 7F062500 C62A0018 */ lwc1 $f10, 0x18($s1) +/* 097034 7F062504 46005202 */ mul.s $f8, $f10, $f0 +/* 097038 7F062508 E7A800CC */ swc1 $f8, 0xcc($sp) +.L7F06250C: +/* 09703C 7F06250C C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 097040 7F062510 8FA500B0 */ lw $a1, 0xb0($sp) +/* 097044 7F062514 3C018005 */ lui $at, %hi(D_80053EB4) +/* 097048 7F062518 4600310D */ trunc.w.s $f4, $f6 +/* 09704C 7F06251C 44192000 */ mfc1 $t9, $f4 +/* 097050 7F062520 00000000 */ nop +/* 097054 7F062524 A6190000 */ sh $t9, ($s0) +/* 097058 7F062528 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 09705C 7F06252C 4600520D */ trunc.w.s $f8, $f10 +/* 097060 7F062530 440E4000 */ mfc1 $t6, $f8 +/* 097064 7F062534 00000000 */ nop +/* 097068 7F062538 A60E0002 */ sh $t6, 2($s0) +/* 09706C 7F06253C C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 097070 7F062540 4600310D */ trunc.w.s $f4, $f6 +/* 097074 7F062544 44092000 */ mfc1 $t1, $f4 +/* 097078 7F062548 00000000 */ nop +/* 09707C 7F06254C A6090004 */ sh $t1, 4($s0) +/* 097080 7F062550 90AA0004 */ lbu $t2, 4($a1) +/* 097084 7F062554 A600000A */ sh $zero, 0xa($s0) +/* 097088 7F062558 000A6140 */ sll $t4, $t2, 5 +/* 09708C 7F06255C A60C0008 */ sh $t4, 8($s0) +/* 097090 7F062560 C7AA00D0 */ lwc1 $f10, 0xd0($sp) +/* 097094 7F062564 46005207 */ neg.s $f8, $f10 +/* 097098 7F062568 4600418D */ trunc.w.s $f6, $f8 +/* 09709C 7F06256C 440D3000 */ mfc1 $t5, $f6 +/* 0970A0 7F062570 00000000 */ nop +/* 0970A4 7F062574 A60D0010 */ sh $t5, 0x10($s0) +/* 0970A8 7F062578 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0970AC 7F06257C 46002287 */ neg.s $f10, $f4 +/* 0970B0 7F062580 4600520D */ trunc.w.s $f8, $f10 +/* 0970B4 7F062584 440B4000 */ mfc1 $t3, $f8 +/* 0970B8 7F062588 00000000 */ nop +/* 0970BC 7F06258C A60B0012 */ sh $t3, 0x12($s0) +/* 0970C0 7F062590 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 0970C4 7F062594 A6000018 */ sh $zero, 0x18($s0) +/* 0970C8 7F062598 A600001A */ sh $zero, 0x1a($s0) +/* 0970CC 7F06259C 46003107 */ neg.s $f4, $f6 +/* 0970D0 7F0625A0 4600228D */ trunc.w.s $f10, $f4 +/* 0970D4 7F0625A4 44185000 */ mfc1 $t8, $f10 +/* 0970D8 7F0625A8 00000000 */ nop +/* 0970DC 7F0625AC A6180014 */ sh $t8, 0x14($s0) +/* 0970E0 7F0625B0 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0970E4 7F0625B4 C4263EB4 */ lwc1 $f6, %lo(D_80053EB4)($at) +/* 0970E8 7F0625B8 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0970EC 7F0625BC 3C018005 */ lui $at, %hi(D_80053EB8) +/* 0970F0 7F0625C0 46064102 */ mul.s $f4, $f8, $f6 +/* 0970F4 7F0625C4 460A2200 */ add.s $f8, $f4, $f10 +/* 0970F8 7F0625C8 4600418D */ trunc.w.s $f6, $f8 +/* 0970FC 7F0625CC 440A3000 */ mfc1 $t2, $f6 +/* 097100 7F0625D0 00000000 */ nop +/* 097104 7F0625D4 A60A0020 */ sh $t2, 0x20($s0) +/* 097108 7F0625D8 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 09710C 7F0625DC C42A3EB8 */ lwc1 $f10, %lo(D_80053EB8)($at) +/* 097110 7F0625E0 C7A600C8 */ lwc1 $f6, 0xc8($sp) +/* 097114 7F0625E4 3C018005 */ lui $at, %hi(D_80053EBC) +/* 097118 7F0625E8 460A2202 */ mul.s $f8, $f4, $f10 +/* 09711C 7F0625EC 46064100 */ add.s $f4, $f8, $f6 +/* 097120 7F0625F0 4600228D */ trunc.w.s $f10, $f4 +/* 097124 7F0625F4 440F5000 */ mfc1 $t7, $f10 +/* 097128 7F0625F8 00000000 */ nop +/* 09712C 7F0625FC A60F0022 */ sh $t7, 0x22($s0) +/* 097130 7F062600 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 097134 7F062604 C4263EBC */ lwc1 $f6, %lo(D_80053EBC)($at) +/* 097138 7F062608 C7AA00CC */ lwc1 $f10, 0xcc($sp) +/* 09713C 7F06260C 3C018005 */ lui $at, %hi(D_80053EC0) +/* 097140 7F062610 46064102 */ mul.s $f4, $f8, $f6 +/* 097144 7F062614 460A2200 */ add.s $f8, $f4, $f10 +/* 097148 7F062618 4600418D */ trunc.w.s $f6, $f8 +/* 09714C 7F06261C 44193000 */ mfc1 $t9, $f6 +/* 097150 7F062620 00000000 */ nop +/* 097154 7F062624 A6190024 */ sh $t9, 0x24($s0) +/* 097158 7F062628 90AB0004 */ lbu $t3, 4($a1) +/* 09715C 7F06262C 000B7140 */ sll $t6, $t3, 5 +/* 097160 7F062630 A60E0028 */ sh $t6, 0x28($s0) +/* 097164 7F062634 90B80005 */ lbu $t8, 5($a1) +/* 097168 7F062638 00184940 */ sll $t1, $t8, 5 +/* 09716C 7F06263C A609002A */ sh $t1, 0x2a($s0) +/* 097170 7F062640 C42A3EC0 */ lwc1 $f10, %lo(D_80053EC0)($at) +/* 097174 7F062644 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 097178 7F062648 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 09717C 7F06264C 3C018005 */ lui $at, %hi(D_80053EC4) +/* 097180 7F062650 460A2202 */ mul.s $f8, $f4, $f10 +/* 097184 7F062654 46083101 */ sub.s $f4, $f6, $f8 +/* 097188 7F062658 4600228D */ trunc.w.s $f10, $f4 +/* 09718C 7F06265C 440C5000 */ mfc1 $t4, $f10 +/* 097190 7F062660 00000000 */ nop +/* 097194 7F062664 A60C0030 */ sh $t4, 0x30($s0) +/* 097198 7F062668 C4283EC4 */ lwc1 $f8, %lo(D_80053EC4)($at) +/* 09719C 7F06266C C7A600D4 */ lwc1 $f6, 0xd4($sp) +/* 0971A0 7F062670 C7AA00C8 */ lwc1 $f10, 0xc8($sp) +/* 0971A4 7F062674 3C018005 */ lui $at, %hi(D_80053EC8) +/* 0971A8 7F062678 46083102 */ mul.s $f4, $f6, $f8 +/* 0971AC 7F06267C 46045181 */ sub.s $f6, $f10, $f4 +/* 0971B0 7F062680 4600320D */ trunc.w.s $f8, $f6 +/* 0971B4 7F062684 440D4000 */ mfc1 $t5, $f8 +/* 0971B8 7F062688 00000000 */ nop +/* 0971BC 7F06268C A60D0032 */ sh $t5, 0x32($s0) +/* 0971C0 7F062690 C4243EC8 */ lwc1 $f4, %lo(D_80053EC8)($at) +/* 0971C4 7F062694 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 0971C8 7F062698 C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 0971CC 7F06269C A6000038 */ sh $zero, 0x38($s0) +/* 0971D0 7F0626A0 46045182 */ mul.s $f6, $f10, $f4 +/* 0971D4 7F0626A4 24010016 */ li $at, 22 +/* 0971D8 7F0626A8 46064281 */ sub.s $f10, $f8, $f6 +/* 0971DC 7F0626AC 4600510D */ trunc.w.s $f4, $f10 +/* 0971E0 7F0626B0 440B2000 */ mfc1 $t3, $f4 +/* 0971E4 7F0626B4 00000000 */ nop +/* 0971E8 7F0626B8 A60B0034 */ sh $t3, 0x34($s0) +/* 0971EC 7F0626BC 90AE0005 */ lbu $t6, 5($a1) +/* 0971F0 7F0626C0 000EC140 */ sll $t8, $t6, 5 +/* 0971F4 7F0626C4 A618003A */ sh $t8, 0x3a($s0) +/* 0971F8 7F0626C8 82290001 */ lb $t1, 1($s1) +/* 0971FC 7F0626CC C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 097200 7F0626D0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 097204 7F0626D4 552100AD */ bnel $t1, $at, .L7F06298C +/* 097208 7F0626D8 8FAC0160 */ lw $t4, 0x160($sp) +/* 09720C 7F0626DC C54C0000 */ lwc1 $f12, ($t2) +/* 097210 7F0626E0 C5420004 */ lwc1 $f2, 4($t2) +/* 097214 7F0626E4 C7A60100 */ lwc1 $f6, 0x100($sp) +/* 097218 7F0626E8 46086381 */ sub.s $f14, $f12, $f8 +/* 09721C 7F0626EC C5400008 */ lwc1 $f0, 8($t2) +/* 097220 7F0626F0 E7A80038 */ swc1 $f8, 0x38($sp) +/* 097224 7F0626F4 46061401 */ sub.s $f16, $f2, $f6 +/* 097228 7F0626F8 460E7102 */ mul.s $f4, $f14, $f14 +/* 09722C 7F0626FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 097230 7F062700 3C018005 */ lui $at, %hi(D_80053ECC) +/* 097234 7F062704 46108202 */ mul.s $f8, $f16, $f16 +/* 097238 7F062708 460A0481 */ sub.s $f18, $f0, $f10 +/* 09723C 7F06270C 46082100 */ add.s $f4, $f4, $f8 +/* 097240 7F062710 46129202 */ mul.s $f8, $f18, $f18 +/* 097244 7F062714 46082100 */ add.s $f4, $f4, $f8 +/* 097248 7F062718 E7A40078 */ swc1 $f4, 0x78($sp) +/* 09724C 7F06271C C6280010 */ lwc1 $f8, 0x10($s1) +/* 097250 7F062720 E7A60034 */ swc1 $f6, 0x34($sp) +/* 097254 7F062724 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 097258 7F062728 46144202 */ mul.s $f8, $f8, $f20 +/* 09725C 7F06272C 46064200 */ add.s $f8, $f8, $f6 +/* 097260 7F062730 C6260014 */ lwc1 $f6, 0x14($s1) +/* 097264 7F062734 46086381 */ sub.s $f14, $f12, $f8 +/* 097268 7F062738 46143202 */ mul.s $f8, $f6, $f20 +/* 09726C 7F06273C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 097270 7F062740 46064200 */ add.s $f8, $f8, $f6 +/* 097274 7F062744 C6260018 */ lwc1 $f6, 0x18($s1) +/* 097278 7F062748 46081401 */ sub.s $f16, $f2, $f8 +/* 09727C 7F06274C 46143202 */ mul.s $f8, $f6, $f20 +/* 097280 7F062750 460A4180 */ add.s $f6, $f8, $f10 +/* 097284 7F062754 460E7202 */ mul.s $f8, $f14, $f14 +/* 097288 7F062758 00000000 */ nop +/* 09728C 7F06275C 46108282 */ mul.s $f10, $f16, $f16 +/* 097290 7F062760 46060481 */ sub.s $f18, $f0, $f6 +/* 097294 7F062764 460A4180 */ add.s $f6, $f8, $f10 +/* 097298 7F062768 46129202 */ mul.s $f8, $f18, $f18 +/* 09729C 7F06276C 46083280 */ add.s $f10, $f6, $f8 +/* 0972A0 7F062770 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0972A4 7F062774 4604503C */ c.lt.s $f10, $f4 +/* 0972A8 7F062778 00000000 */ nop +/* 0972AC 7F06277C 4500000B */ bc1f .L7F0627AC +/* 0972B0 7F062780 00000000 */ nop +/* 0972B4 7F062784 C4243ECC */ lwc1 $f4, %lo(D_80053ECC)($at) +/* 0972B8 7F062788 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0972BC 7F06278C 3C018005 */ lui $at, %hi(D_80053ED0) +/* 0972C0 7F062790 C4263ED0 */ lwc1 $f6, %lo(D_80053ED0)($at) +/* 0972C4 7F062794 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0972C8 7F062798 C7AA00CC */ lwc1 $f10, 0xcc($sp) +/* 0972CC 7F06279C 46062002 */ mul.s $f0, $f4, $f6 +/* 0972D0 7F0627A0 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0972D4 7F0627A4 E7AA00C0 */ swc1 $f10, 0xc0($sp) +/* 0972D8 7F0627A8 E7A000B4 */ swc1 $f0, 0xb4($sp) +.L7F0627AC: +/* 0972DC 7F0627AC C7A000B4 */ lwc1 $f0, 0xb4($sp) +/* 0972E0 7F0627B0 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 0972E4 7F0627B4 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0972E8 7F0627B8 3C088009 */ lui $t0, %hi(flareimage5) +/* 0972EC 7F0627BC 46004282 */ mul.s $f10, $f8, $f0 +/* 0972F0 7F0627C0 2508D0D8 */ addiu $t0, %lo(flareimage5) # addiu $t0, $t0, -0x2f28 +/* 0972F4 7F0627C4 46045180 */ add.s $f6, $f10, $f4 +/* 0972F8 7F0627C8 4600320D */ trunc.w.s $f8, $f6 +/* 0972FC 7F0627CC 440F4000 */ mfc1 $t7, $f8 +/* 097300 7F0627D0 00000000 */ nop +/* 097304 7F0627D4 A60F0040 */ sh $t7, 0x40($s0) +/* 097308 7F0627D8 C7AA00E0 */ lwc1 $f10, 0xe0($sp) +/* 09730C 7F0627DC C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 097310 7F0627E0 46005102 */ mul.s $f4, $f10, $f0 +/* 097314 7F0627E4 46062200 */ add.s $f8, $f4, $f6 +/* 097318 7F0627E8 4600428D */ trunc.w.s $f10, $f8 +/* 09731C 7F0627EC 44195000 */ mfc1 $t9, $f10 +/* 097320 7F0627F0 00000000 */ nop +/* 097324 7F0627F4 A6190042 */ sh $t9, 0x42($s0) +/* 097328 7F0627F8 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 09732C 7F0627FC C7A800C0 */ lwc1 $f8, 0xc0($sp) +/* 097330 7F062800 46002182 */ mul.s $f6, $f4, $f0 +/* 097334 7F062804 46083280 */ add.s $f10, $f6, $f8 +/* 097338 7F062808 4600510D */ trunc.w.s $f4, $f10 +/* 09733C 7F06280C 440E2000 */ mfc1 $t6, $f4 +/* 097340 7F062810 00000000 */ nop +/* 097344 7F062814 A60E0044 */ sh $t6, 0x44($s0) +/* 097348 7F062818 8D180000 */ lw $t8, ($t0) +/* 09734C 7F06281C 93090004 */ lbu $t1, 4($t8) +/* 097350 7F062820 00095140 */ sll $t2, $t1, 5 +/* 097354 7F062824 A60A0048 */ sh $t2, 0x48($s0) +/* 097358 7F062828 8D0C0000 */ lw $t4, ($t0) +/* 09735C 7F06282C 918F0005 */ lbu $t7, 5($t4) +/* 097360 7F062830 000F6940 */ sll $t5, $t7, 5 +/* 097364 7F062834 A60D004A */ sh $t5, 0x4a($s0) +/* 097368 7F062838 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 09736C 7F06283C C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 097370 7F062840 46004282 */ mul.s $f10, $f8, $f0 +/* 097374 7F062844 460A3101 */ sub.s $f4, $f6, $f10 +/* 097378 7F062848 4600220D */ trunc.w.s $f8, $f4 +/* 09737C 7F06284C 440B4000 */ mfc1 $t3, $f8 +/* 097380 7F062850 00000000 */ nop +/* 097384 7F062854 A60B0050 */ sh $t3, 0x50($s0) +/* 097388 7F062858 C7AA00E0 */ lwc1 $f10, 0xe0($sp) +/* 09738C 7F06285C C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 097390 7F062860 46005102 */ mul.s $f4, $f10, $f0 +/* 097394 7F062864 46043201 */ sub.s $f8, $f6, $f4 +/* 097398 7F062868 4600428D */ trunc.w.s $f10, $f8 +/* 09739C 7F06286C 44185000 */ mfc1 $t8, $f10 +/* 0973A0 7F062870 00000000 */ nop +/* 0973A4 7F062874 A6180052 */ sh $t8, 0x52($s0) +/* 0973A8 7F062878 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0973AC 7F06287C C7A600C0 */ lwc1 $f6, 0xc0($sp) +/* 0973B0 7F062880 A6000058 */ sh $zero, 0x58($s0) +/* 0973B4 7F062884 46002202 */ mul.s $f8, $f4, $f0 +/* 0973B8 7F062888 A600005A */ sh $zero, 0x5a($s0) +/* 0973BC 7F06288C 46083281 */ sub.s $f10, $f6, $f8 +/* 0973C0 7F062890 4600510D */ trunc.w.s $f4, $f10 +/* 0973C4 7F062894 440A2000 */ mfc1 $t2, $f4 +/* 0973C8 7F062898 00000000 */ nop +/* 0973CC 7F06289C A60A0054 */ sh $t2, 0x54($s0) +/* 0973D0 7F0628A0 C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 0973D4 7F0628A4 C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 0973D8 7F0628A8 46003202 */ mul.s $f8, $f6, $f0 +/* 0973DC 7F0628AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0973E0 7F0628B0 4600218D */ trunc.w.s $f6, $f4 +/* 0973E4 7F0628B4 440F3000 */ mfc1 $t7, $f6 +/* 0973E8 7F0628B8 00000000 */ nop +/* 0973EC 7F0628BC A60F0060 */ sh $t7, 0x60($s0) +/* 0973F0 7F0628C0 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 0973F4 7F0628C4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0973F8 7F0628C8 46004282 */ mul.s $f10, $f8, $f0 +/* 0973FC 7F0628CC 46045180 */ add.s $f6, $f10, $f4 +/* 097400 7F0628D0 4600320D */ trunc.w.s $f8, $f6 +/* 097404 7F0628D4 44194000 */ mfc1 $t9, $f8 +/* 097408 7F0628D8 00000000 */ nop +/* 09740C 7F0628DC A6190062 */ sh $t9, 0x62($s0) +/* 097410 7F0628E0 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 097414 7F0628E4 C7A600C0 */ lwc1 $f6, 0xc0($sp) +/* 097418 7F0628E8 A6000068 */ sh $zero, 0x68($s0) +/* 09741C 7F0628EC 46005102 */ mul.s $f4, $f10, $f0 +/* 097420 7F0628F0 46062200 */ add.s $f8, $f4, $f6 +/* 097424 7F0628F4 4600428D */ trunc.w.s $f10, $f8 +/* 097428 7F0628F8 440E5000 */ mfc1 $t6, $f10 +/* 09742C 7F0628FC 00000000 */ nop +/* 097430 7F062900 A60E0064 */ sh $t6, 0x64($s0) +/* 097434 7F062904 8D180000 */ lw $t8, ($t0) +/* 097438 7F062908 93090005 */ lbu $t1, 5($t8) +/* 09743C 7F06290C 00095140 */ sll $t2, $t1, 5 +/* 097440 7F062910 A60A006A */ sh $t2, 0x6a($s0) +/* 097444 7F062914 C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 097448 7F062918 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 09744C 7F06291C 46003202 */ mul.s $f8, $f6, $f0 +/* 097450 7F062920 46082281 */ sub.s $f10, $f4, $f8 +/* 097454 7F062924 4600518D */ trunc.w.s $f6, $f10 +/* 097458 7F062928 440F3000 */ mfc1 $t7, $f6 +/* 09745C 7F06292C 00000000 */ nop +/* 097460 7F062930 A60F0070 */ sh $t7, 0x70($s0) +/* 097464 7F062934 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 097468 7F062938 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 09746C 7F06293C 46004282 */ mul.s $f10, $f8, $f0 +/* 097470 7F062940 460A2181 */ sub.s $f6, $f4, $f10 +/* 097474 7F062944 4600320D */ trunc.w.s $f8, $f6 +/* 097478 7F062948 44194000 */ mfc1 $t9, $f8 +/* 09747C 7F06294C 00000000 */ nop +/* 097480 7F062950 A6190072 */ sh $t9, 0x72($s0) +/* 097484 7F062954 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 097488 7F062958 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 09748C 7F06295C 46005182 */ mul.s $f6, $f10, $f0 +/* 097490 7F062960 46062201 */ sub.s $f8, $f4, $f6 +/* 097494 7F062964 4600428D */ trunc.w.s $f10, $f8 +/* 097498 7F062968 440E5000 */ mfc1 $t6, $f10 +/* 09749C 7F06296C 00000000 */ nop +/* 0974A0 7F062970 A60E0074 */ sh $t6, 0x74($s0) +/* 0974A4 7F062974 8D180000 */ lw $t8, ($t0) +/* 0974A8 7F062978 93090004 */ lbu $t1, 4($t8) +/* 0974AC 7F06297C A600007A */ sh $zero, 0x7a($s0) +/* 0974B0 7F062980 00095140 */ sll $t2, $t1, 5 +/* 0974B4 7F062984 A60A0078 */ sh $t2, 0x78($s0) +/* 0974B8 7F062988 8FAC0160 */ lw $t4, 0x160($sp) +.L7F06298C: +/* 0974BC 7F06298C 3C0DB600 */ lui $t5, 0xb600 +/* 0974C0 7F062990 24192000 */ li $t9, 8192 +/* 0974C4 7F062994 258F0008 */ addiu $t7, $t4, 8 +/* 0974C8 7F062998 AFAF0160 */ sw $t7, 0x160($sp) +/* 0974CC 7F06299C AD990004 */ sw $t9, 4($t4) +/* 0974D0 7F0629A0 AD8D0000 */ sw $t5, ($t4) +/* 0974D4 7F0629A4 8FAB0160 */ lw $t3, 0x160($sp) +/* 0974D8 7F0629A8 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 0974DC 7F0629AC 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0974E0 7F0629B0 256E0008 */ addiu $t6, $t3, 8 +/* 0974E4 7F0629B4 AFAE0160 */ sw $t6, 0x160($sp) +/* 0974E8 7F0629B8 AD780000 */ sw $t8, ($t3) +/* 0974EC 7F0629BC 8FA40158 */ lw $a0, 0x158($sp) +/* 0974F0 7F0629C0 0C003A2C */ jal osVirtualToPhysical +/* 0974F4 7F0629C4 AFAB006C */ sw $t3, 0x6c($sp) +/* 0974F8 7F0629C8 8FA3006C */ lw $v1, 0x6c($sp) +/* 0974FC 7F0629CC 3C088009 */ lui $t0, %hi(flareimage5) +/* 097500 7F0629D0 24010016 */ li $at, 22 +/* 097504 7F0629D4 AC620004 */ sw $v0, 4($v1) +/* 097508 7F0629D8 82290001 */ lb $t1, 1($s1) +/* 09750C 7F0629DC 2508D0D8 */ addiu $t0, %lo(flareimage5) # addiu $t0, $t0, -0x2f28 +/* 097510 7F0629E0 8FA500B0 */ lw $a1, 0xb0($sp) +/* 097514 7F0629E4 15210029 */ bne $t1, $at, .L7F062A8C +/* 097518 7F0629E8 27A40160 */ addiu $a0, $sp, 0x160 +/* 09751C 7F0629EC 240A0002 */ li $t2, 2 +/* 097520 7F0629F0 AFAA0010 */ sw $t2, 0x10($sp) +/* 097524 7F0629F4 27A40160 */ addiu $a0, $sp, 0x160 +/* 097528 7F0629F8 8D050000 */ lw $a1, ($t0) +/* 09752C 7F0629FC 24060004 */ li $a2, 4 +/* 097530 7F062A00 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 097534 7F062A04 8FA70168 */ lw $a3, 0x168($sp) +/* 097538 7F062A08 8FB10160 */ lw $s1, 0x160($sp) +/* 09753C 7F062A0C 3C0D0470 */ lui $t5, (0x04700080 >> 16) # lui $t5, 0x470 +/* 097540 7F062A10 35AD0080 */ ori $t5, (0x04700080 & 0xFFFF) # ori $t5, $t5, 0x80 +/* 097544 7F062A14 262F0008 */ addiu $t7, $s1, 8 +/* 097548 7F062A18 AFAF0160 */ sw $t7, 0x160($sp) +/* 09754C 7F062A1C 02002025 */ move $a0, $s0 +/* 097550 7F062A20 0C003A2C */ jal osVirtualToPhysical +/* 097554 7F062A24 AE2D0000 */ sw $t5, ($s1) +/* 097558 7F062A28 AE220004 */ sw $v0, 4($s1) +/* 09755C 7F062A2C 8FB90160 */ lw $t9, 0x160($sp) +/* 097560 7F062A30 3C0EB100 */ lui $t6, (0xB1000076 >> 16) # lui $t6, 0xb100 # gSP4Triangles(8,8,6,5,1,7,2,0,0,0,0,0 +/* 097564 7F062A34 35CE0076 */ ori $t6, (0xB1000076 & 0xFFFF) # ori $t6, $t6, 0x76 +/* 097568 7F062A38 272B0008 */ addiu $t3, $t9, 8 +/* 09756C 7F062A3C AFAB0160 */ sw $t3, 0x160($sp) +/* 097570 7F062A40 24185454 */ li $t8, 21588 +/* 097574 7F062A44 AF380004 */ sw $t8, 4($t9) # ), +/* 097578 7F062A48 AF2E0000 */ sw $t6, ($t9) +/* 09757C 7F062A4C 24090002 */ li $t1, 2 +/* 097580 7F062A50 AFA90010 */ sw $t1, 0x10($sp) +/* 097584 7F062A54 8FA70168 */ lw $a3, 0x168($sp) +/* 097588 7F062A58 8FA500B0 */ lw $a1, 0xb0($sp) +/* 09758C 7F062A5C 27A40160 */ addiu $a0, $sp, 0x160 +/* 097590 7F062A60 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 097594 7F062A64 24060004 */ li $a2, 4 +/* 097598 7F062A68 8FAA0160 */ lw $t2, 0x160($sp) +/* 09759C 7F062A6C 3C0FB100 */ lui $t7, (0xB1000013 >> 16) # lui $t7, 0xb100 # gSP4Triangles(0,2,3,3,2,1,1,0,0,0,0 +/* 0975A0 7F062A70 35EF0013 */ ori $t7, (0xB1000013 & 0xFFFF) # ori $t7, $t7, 0x13 +/* 0975A4 7F062A74 254C0008 */ addiu $t4, $t2, 8 +/* 0975A8 7F062A78 AFAC0160 */ sw $t4, 0x160($sp) +/* 0975AC 7F062A7C 240D3020 */ li $t5, 12320 +/* 0975B0 7F062A80 AD4D0004 */ sw $t5, 4($t2) +/* 0975B4 7F062A84 10000017 */ b .L7F062AE4 +/* 0975B8 7F062A88 AD4F0000 */ sw $t7, ($t2) # ), +.L7F062A8C: +/* 0975BC 7F062A8C 24190002 */ li $t9, 2 +/* 0975C0 7F062A90 AFB90010 */ sw $t9, 0x10($sp) +/* 0975C4 7F062A94 24060004 */ li $a2, 4 +/* 0975C8 7F062A98 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0975CC 7F062A9C 8FA70168 */ lw $a3, 0x168($sp) +/* 0975D0 7F062AA0 8FB10160 */ lw $s1, 0x160($sp) +/* 0975D4 7F062AA4 3C180430 */ lui $t8, (0x04300040 >> 16) # lui $t8, 0x430 +/* 0975D8 7F062AA8 37180040 */ ori $t8, (0x04300040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0975DC 7F062AAC 262E0008 */ addiu $t6, $s1, 8 +/* 0975E0 7F062AB0 AFAE0160 */ sw $t6, 0x160($sp) +/* 0975E4 7F062AB4 02002025 */ move $a0, $s0 +/* 0975E8 7F062AB8 0C003A2C */ jal osVirtualToPhysical +/* 0975EC 7F062ABC AE380000 */ sw $t8, ($s1) +/* 0975F0 7F062AC0 AE220004 */ sw $v0, 4($s1) +/* 0975F4 7F062AC4 8FA90160 */ lw $t1, 0x160($sp) +/* 0975F8 7F062AC8 3C0CB100 */ lui $t4, (0xB1000013 >> 16) # lui $t4, 0xb100 +/* 0975FC 7F062ACC 358C0013 */ ori $t4, (0xB1000013 & 0xFFFF) # ori $t4, $t4, 0x13 +/* 097600 7F062AD0 252A0008 */ addiu $t2, $t1, 8 +/* 097604 7F062AD4 AFAA0160 */ sw $t2, 0x160($sp) +/* 097608 7F062AD8 240F3020 */ li $t7, 12320 +/* 09760C 7F062ADC AD2F0004 */ sw $t7, 4($t1) +/* 097610 7F062AE0 AD2C0000 */ sw $t4, ($t1) +.L7F062AE4: +/* 097614 7F062AE4 8FBF002C */ lw $ra, 0x2c($sp) +/* 097618 7F062AE8 8FA20160 */ lw $v0, 0x160($sp) +/* 09761C 7F062AEC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 097620 7F062AF0 8FB00024 */ lw $s0, 0x24($sp) +/* 097624 7F062AF4 8FB10028 */ lw $s1, 0x28($sp) +/* 097628 7F062AF8 03E00008 */ jr $ra +/* 09762C 7F062AFC 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F062B00(void) { + +} +#else +#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(clock_timer) +/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 +/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) +/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 +/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 +/* 097654 7F062B24 3C018005 */ lui $at, %hi(global_timer_delta) +/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0) +/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6 +/* 097668 7F062B38 46085400 */ add.s $f16, $f10, $f8 +/* 09766C 7F062B3C 10000019 */ b .L7F062BA4 +/* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) +.L7F062B44: +/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 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(clock_timer) +/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 +/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) +/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 +/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 +/* 097654 7F062B24 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at) +/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0) +/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6 +/* 097668 7F062B38 46085400 */ add.s $f16, $f10, $f8 +/* 09766C 7F062B3C 10000019 */ b .L7F062BA4 +/* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) +.L7F062B44: +/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) +/* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 +/* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) +/* 097684 7F062B54 04410005 */ bgez $v0, .L7F062B6C +/* 097688 7F062B58 46809120 */ cvt.s.w $f4, $f18 +/* 09768C 7F062B5C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 097690 7F062B60 44813000 */ mtc1 $at, $f6 +/* 097694 7F062B64 00000000 */ nop +/* 097698 7F062B68 46062100 */ add.s $f4, $f4, $f6 +.L7F062B6C: +/* 09769C 7F062B6C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0976A0 7F062B70 44815000 */ mtc1 $at, $f10 +/* 0976A4 7F062B74 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0976A8 7F062B78 44818000 */ mtc1 $at, $f16 +/* 0976AC 7F062B7C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0976B0 7F062B80 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0976B4 7F062B84 44813000 */ mtc1 $at, $f6 +/* 0976B8 7F062B88 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0976BC 7F062B8C 46104482 */ mul.s $f18, $f8, $f16 +/* 0976C0 7F062B90 C4900028 */ lwc1 $f16, 0x28($a0) +/* 0976C4 7F062B94 46123100 */ add.s $f4, $f6, $f18 +/* 0976C8 7F062B98 46045202 */ mul.s $f8, $f10, $f4 +/* 0976CC 7F062B9C 46088180 */ add.s $f6, $f16, $f8 +/* 0976D0 7F062BA0 E4860028 */ swc1 $f6, 0x28($a0) +.L7F062BA4: +/* 0976D4 7F062BA4 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0976D8 7F062BA8 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0976DC 7F062BAC 2418FFFF */ li $t8, -1 +/* 0976E0 7F062BB0 4612503E */ c.le.s $f10, $f18 +/* 0976E4 7F062BB4 00000000 */ nop +/* 0976E8 7F062BB8 45020004 */ bc1fl .L7F062BCC +/* 0976EC 7F062BBC 80990000 */ lb $t9, ($a0) +/* 0976F0 7F062BC0 10000004 */ b .L7F062BD4 +/* 0976F4 7F062BC4 A0980000 */ sb $t8, ($a0) +/* 0976F8 7F062BC8 80990000 */ lb $t9, ($a0) +.L7F062BCC: +/* 0976FC 7F062BCC 27280001 */ addiu $t0, $t9, 1 +/* 097700 7F062BD0 A0880000 */ sb $t0, ($a0) +.L7F062BD4: +/* 097704 7F062BD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F062BD8: +/* 097708 7F062BD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09770C 7F062BDC 03E00008 */ jr $ra +/* 097710 7F062BE0 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F062BE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F062BE4 +/* 097714 7F062BE4 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 097718 7F062BE8 AFB7003C */ sw $s7, 0x3c($sp) +/* 09771C 7F062BEC 3C0F8003 */ lui $t7, %hi(D_80035CC0) +/* 097720 7F062BF0 27B7008C */ addiu $s7, $sp, 0x8c +/* 097724 7F062BF4 AFBF0044 */ sw $ra, 0x44($sp) +/* 097728 7F062BF8 AFBE0040 */ sw $fp, 0x40($sp) +/* 09772C 7F062BFC AFB60038 */ sw $s6, 0x38($sp) +/* 097730 7F062C00 AFB50034 */ sw $s5, 0x34($sp) +/* 097734 7F062C04 AFB40030 */ sw $s4, 0x30($sp) +/* 097738 7F062C08 AFB3002C */ sw $s3, 0x2c($sp) +/* 09773C 7F062C0C AFB20028 */ sw $s2, 0x28($sp) +/* 097740 7F062C10 AFB10024 */ sw $s1, 0x24($sp) +/* 097744 7F062C14 AFB00020 */ sw $s0, 0x20($sp) +/* 097748 7F062C18 AFA400D0 */ sw $a0, 0xd0($sp) +/* 09774C 7F062C1C 25EF5CC0 */ addiu $t7, %lo(D_80035CC0) # addiu $t7, $t7, 0x5cc0 +/* 097750 7F062C20 8C900000 */ lw $s0, ($a0) +/* 097754 7F062C24 25E8003C */ addiu $t0, $t7, 0x3c +/* 097758 7F062C28 02E04825 */ move $t1, $s7 +.L7F062C2C: +/* 09775C 7F062C2C 8DE10000 */ lw $at, ($t7) +/* 097760 7F062C30 25EF000C */ addiu $t7, $t7, 0xc +/* 097764 7F062C34 2529000C */ addiu $t1, $t1, 0xc +/* 097768 7F062C38 AD21FFF4 */ sw $at, -0xc($t1) +/* 09776C 7F062C3C 8DE1FFF8 */ lw $at, -8($t7) +/* 097770 7F062C40 AD21FFF8 */ sw $at, -8($t1) +/* 097774 7F062C44 8DE1FFFC */ lw $at, -4($t7) +/* 097778 7F062C48 15E8FFF8 */ bne $t7, $t0, .L7F062C2C +/* 09777C 7F062C4C AD21FFFC */ sw $at, -4($t1) +/* 097780 7F062C50 8DE10000 */ lw $at, ($t7) +/* 097784 7F062C54 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 097788 7F062C58 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 09778C 7F062C5C 0000A825 */ move $s5, $zero +/* 097790 7F062C60 0000B025 */ move $s6, $zero +/* 097794 7F062C64 AD210000 */ sw $at, ($t1) +.L7F062C68: +/* 097798 7F062C68 8FCA0000 */ lw $t2, ($fp) +/* 09779C 7F062C6C 02A02025 */ move $a0, $s5 +/* 0977A0 7F062C70 01569821 */ addu $s3, $t2, $s6 +/* 0977A4 7F062C74 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0977A8 7F062C78 26730870 */ addiu $s3, $s3, 0x870 +/* 0977AC 7F062C7C 826B000F */ lb $t3, 0xf($s3) +/* 0977B0 7F062C80 0040A025 */ move $s4, $v0 +/* 0977B4 7F062C84 24010017 */ li $at, 23 +/* 0977B8 7F062C88 516000CD */ beql $t3, $zero, .L7F062FC0 +/* 0977BC 7F062C8C 26B50001 */ addiu $s5, $s5, 1 +/* 0977C0 7F062C90 10410005 */ beq $v0, $at, .L7F062CA8 +/* 0977C4 7F062C94 02002025 */ move $a0, $s0 +/* 0977C8 7F062C98 266501E4 */ addiu $a1, $s3, 0x1e4 +/* 0977CC 7F062C9C 0FC18786 */ jal sub_GAME_7F061E18 +/* 0977D0 7F062CA0 00003025 */ move $a2, $zero +/* 0977D4 7F062CA4 00408025 */ move $s0, $v0 +.L7F062CA8: +/* 0977D8 7F062CA8 24010013 */ li $at, 19 +/* 0977DC 7F062CAC 1281000C */ beq $s4, $at, .L7F062CE0 +/* 0977E0 7F062CB0 02001025 */ move $v0, $s0 +/* 0977E4 7F062CB4 24010012 */ li $at, 18 +/* 0977E8 7F062CB8 12810009 */ beq $s4, $at, .L7F062CE0 +/* 0977EC 7F062CBC 24010002 */ li $at, 2 +/* 0977F0 7F062CC0 12810007 */ beq $s4, $at, .L7F062CE0 +/* 0977F4 7F062CC4 24010003 */ li $at, 3 +/* 0977F8 7F062CC8 12810005 */ beq $s4, $at, .L7F062CE0 +/* 0977FC 7F062CCC 24010014 */ li $at, 20 +/* 097800 7F062CD0 12810003 */ beq $s4, $at, .L7F062CE0 +/* 097804 7F062CD4 24010015 */ li $at, 21 +/* 097808 7F062CD8 56810028 */ bnel $s4, $at, .L7F062D7C +/* 09780C 7F062CDC 3C0BBC00 */ lui $t3, 0xbc00 +.L7F062CE0: +/* 097810 7F062CE0 26100008 */ addiu $s0, $s0, 8 +/* 097814 7F062CE4 3C0CBC00 */ lui $t4, (0xBC000002 >> 16) # lui $t4, 0xbc00 +/* 097818 7F062CE8 3C0D8000 */ lui $t5, (0x80000040 >> 16) # lui $t5, 0x8000 +/* 09781C 7F062CEC 35AD0040 */ ori $t5, (0x80000040 & 0xFFFF) # ori $t5, $t5, 0x40 +/* 097820 7F062CF0 358C0002 */ ori $t4, (0xBC000002 & 0xFFFF) # ori $t4, $t4, 2 +/* 097824 7F062CF4 02001825 */ move $v1, $s0 +/* 097828 7F062CF8 26100008 */ addiu $s0, $s0, 8 +/* 09782C 7F062CFC AC4C0000 */ sw $t4, ($v0) +/* 097830 7F062D00 AC4D0004 */ sw $t5, 4($v0) +/* 097834 7F062D04 3C0E0386 */ lui $t6, (0x03860010 >> 16) # lui $t6, 0x386 +/* 097838 7F062D08 3C198003 */ lui $t9, %hi(D_80032448) +/* 09783C 7F062D0C 27392448 */ addiu $t9, %lo(D_80032448) # addiu $t9, $t9, 0x2448 +/* 097840 7F062D10 35CE0010 */ ori $t6, (0x03860010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 097844 7F062D14 02002025 */ move $a0, $s0 +/* 097848 7F062D18 AC6E0000 */ sw $t6, ($v1) +/* 09784C 7F062D1C AC790004 */ sw $t9, 4($v1) +/* 097850 7F062D20 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 097854 7F062D24 3C088003 */ lui $t0, %hi(D_80032440) +/* 097858 7F062D28 25082440 */ addiu $t0, %lo(D_80032440) # addiu $t0, $t0, 0x2440 +/* 09785C 7F062D2C 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 097860 7F062D30 26100008 */ addiu $s0, $s0, 8 +/* 097864 7F062D34 3C0F0384 */ lui $t7, (0x03840010 >> 16) # lui $t7, 0x384 +/* 097868 7F062D38 AC980000 */ sw $t8, ($a0) +/* 09786C 7F062D3C AC880004 */ sw $t0, 4($a0) +/* 097870 7F062D40 35EF0010 */ ori $t7, (0x03840010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 097874 7F062D44 02008825 */ move $s1, $s0 +/* 097878 7F062D48 AE2F0000 */ sw $t7, ($s1) +/* 09787C 7F062D4C 0FC1E11D */ jal sub_GAME_7F078474 +/* 097880 7F062D50 26100008 */ addiu $s0, $s0, 8 +/* 097884 7F062D54 3C090382 */ lui $t1, (0x03820010 >> 16) # lui $t1, 0x382 +/* 097888 7F062D58 35290010 */ ori $t1, (0x03820010 & 0xFFFF) # ori $t1, $t1, 0x10 +/* 09788C 7F062D5C AE220004 */ sw $v0, 4($s1) +/* 097890 7F062D60 02009025 */ move $s2, $s0 +/* 097894 7F062D64 AE490000 */ sw $t1, ($s2) +/* 097898 7F062D68 0FC1E11D */ jal sub_GAME_7F078474 +/* 09789C 7F062D6C 26100008 */ addiu $s0, $s0, 8 +/* 0978A0 7F062D70 244A0010 */ addiu $t2, $v0, 0x10 +/* 0978A4 7F062D74 AE4A0004 */ sw $t2, 4($s2) +/* 0978A8 7F062D78 3C0BBC00 */ lui $t3, (0xBC00000E >> 16) # lui $t3, 0xbc00 +.L7F062D7C: +/* 0978AC 7F062D7C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0978B0 7F062D80 44817000 */ mtc1 $at, $f14 +/* 0978B4 7F062D84 356B000E */ ori $t3, (0xBC00000E & 0xFFFF) # ori $t3, $t3, 0xe +/* 0978B8 7F062D88 02008825 */ move $s1, $s0 +/* 0978BC 7F062D8C 44806000 */ mtc1 $zero, $f12 +/* 0978C0 7F062D90 AE2B0000 */ sw $t3, ($s1) +/* 0978C4 7F062D94 0FC1665F */ jal sub_GAME_7F05997C +/* 0978C8 7F062D98 26100008 */ addiu $s0, $s0, 8 +/* 0978CC 7F062D9C AE220004 */ sw $v0, 4($s1) +/* 0978D0 7F062DA0 8E630300 */ lw $v1, 0x300($s3) +/* 0978D4 7F062DA4 846C000C */ lh $t4, 0xc($v1) +/* 0978D8 7F062DA8 29810011 */ slti $at, $t4, 0x11 +/* 0978DC 7F062DAC 5420002D */ bnezl $at, .L7F062E64 +/* 0978E0 7F062DB0 8FC20000 */ lw $v0, ($fp) +/* 0978E4 7F062DB4 8C620008 */ lw $v0, 8($v1) +/* 0978E8 7F062DB8 267102F8 */ addiu $s1, $s3, 0x2f8 +/* 0978EC 7F062DBC 02202025 */ move $a0, $s1 +/* 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 +/* 097900 7F062DD0 8C450044 */ lw $a1, 0x44($v0) +/* 097904 7F062DD4 10400003 */ beqz $v0, .L7F062DE4 +/* 097908 7F062DD8 24010019 */ li $at, 25 +/* 09790C 7F062DDC 240E0001 */ li $t6, 1 +/* 097910 7F062DE0 AC4E0000 */ sw $t6, ($v0) +.L7F062DE4: +/* 097914 7F062DE4 16810013 */ bne $s4, $at, .L7F062E34 +/* 097918 7F062DE8 02202025 */ move $a0, $s1 +/* 09791C 7F062DEC 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075C10) +/* 097920 7F062DF0 3C058009 */ lui $a1, %hi(crosshairimage) +/* 097924 7F062DF4 8CA5D114 */ lw $a1, %lo(crosshairimage)($a1) +/* 097928 7F062DF8 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 09792C 7F062DFC 24845C10 */ addiu $a0, %lo(dword_CODE_bss_80075C10) # addiu $a0, $a0, 0x5c10 +/* 097930 7F062E00 8E790300 */ lw $t9, 0x300($s3) +/* 097934 7F062E04 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075C10) +/* 097938 7F062E08 24080004 */ li $t0, 4 +/* 09793C 7F062E0C 8F380008 */ lw $t8, 8($t9) +/* 097940 7F062E10 24C65C10 */ addiu $a2, %lo(dword_CODE_bss_80075C10) # addiu $a2, $a2, 0x5c10 +/* 097944 7F062E14 02202025 */ move $a0, $s1 +/* 097948 7F062E18 8F050040 */ lw $a1, 0x40($t8) +/* 09794C 7F062E1C AFA80014 */ sw $t0, 0x14($sp) +/* 097950 7F062E20 AFA00010 */ sw $zero, 0x10($sp) +/* 097954 7F062E24 0FC127D2 */ jal process_monitor_animation_microcode +/* 097958 7F062E28 02003825 */ move $a3, $s0 +/* 09795C 7F062E2C 1000000C */ b .L7F062E60 +/* 097960 7F062E30 00408025 */ move $s0, $v0 +.L7F062E34: +/* 097964 7F062E34 8E6F0300 */ lw $t7, 0x300($s3) +/* 097968 7F062E38 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075C88) +/* 09796C 7F062E3C 240A0001 */ li $t2, 1 +/* 097970 7F062E40 8DE90008 */ lw $t1, 8($t7) +/* 097974 7F062E44 24C65C88 */ addiu $a2, %lo(dword_CODE_bss_80075C88) # addiu $a2, $a2, 0x5c88 +/* 097978 7F062E48 02003825 */ move $a3, $s0 +/* 09797C 7F062E4C 8D250040 */ lw $a1, 0x40($t1) +/* 097980 7F062E50 AFAA0014 */ sw $t2, 0x14($sp) +/* 097984 7F062E54 0FC127D2 */ jal process_monitor_animation_microcode +/* 097988 7F062E58 AFA00010 */ sw $zero, 0x10($sp) +/* 09798C 7F062E5C 00408025 */ move $s0, $v0 +.L7F062E60: +/* 097990 7F062E60 8FC20000 */ lw $v0, ($fp) +.L7F062E64: +/* 097994 7F062E64 240B0004 */ li $t3, 4 +/* 097998 7F062E68 AFB00098 */ sw $s0, 0x98($sp) +/* 09799C 7F062E6C AFAB00BC */ sw $t3, 0xbc($sp) +/* 0979A0 7F062E70 904D0FDC */ lbu $t5, 0xfdc($v0) +/* 0979A4 7F062E74 90580FDD */ lbu $t8, 0xfdd($v0) +/* 0979A8 7F062E78 904C0FDF */ lbu $t4, 0xfdf($v0) +/* 0979AC 7F062E7C 90490FDE */ lbu $t1, 0xfde($v0) +/* 0979B0 7F062E80 000D7600 */ sll $t6, $t5, 0x18 +/* 0979B4 7F062E84 00184400 */ sll $t0, $t8, 0x10 +/* 0979B8 7F062E88 018EC825 */ or $t9, $t4, $t6 +/* 0979BC 7F062E8C 03287825 */ or $t7, $t9, $t0 +/* 0979C0 7F062E90 00095200 */ sll $t2, $t1, 8 +/* 0979C4 7F062E94 01EA5825 */ or $t3, $t7, $t2 +/* 0979C8 7F062E98 AFAB00C0 */ sw $t3, 0xc0($sp) +/* 0979CC 7F062E9C AFA00090 */ sw $zero, 0x90($sp) +/* 0979D0 7F062EA0 0FC16319 */ jal sub_GAME_7F058C64 +/* 0979D4 7F062EA4 267102F8 */ addiu $s1, $s3, 0x2f8 +/* 0979D8 7F062EA8 24010019 */ li $at, 25 +/* 0979DC 7F062EAC 56810011 */ bnel $s4, $at, .L7F062EF4 +/* 0979E0 7F062EB0 02802025 */ move $a0, $s4 +/* 0979E4 7F062EB4 8E620220 */ lw $v0, 0x220($s3) +/* 0979E8 7F062EB8 5040000E */ beql $v0, $zero, .L7F062EF4 +/* 0979EC 7F062EBC 02802025 */ move $a0, $s4 +/* 0979F0 7F062EC0 8C500014 */ lw $s0, 0x14($v0) +/* 0979F4 7F062EC4 02E02025 */ move $a0, $s7 +/* 0979F8 7F062EC8 0FC1D1A1 */ jal subdraw +/* 0979FC 7F062ECC 02002825 */ move $a1, $s0 +/* 097A00 7F062ED0 8E0D0008 */ lw $t5, 8($s0) +/* 097A04 7F062ED4 8E04000C */ lw $a0, 0xc($s0) +/* 097A08 7F062ED8 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 097A0C 7F062EDC 85A5000E */ lh $a1, 0xe($t5) +/* 097A10 7F062EE0 8E6C0224 */ lw $t4, 0x224($s3) +/* 097A14 7F062EE4 51800003 */ beql $t4, $zero, .L7F062EF4 +/* 097A18 7F062EE8 02802025 */ move $a0, $s4 +/* 097A1C 7F062EEC AE600220 */ sw $zero, 0x220($s3) +/* 097A20 7F062EF0 02802025 */ move $a0, $s4 +.L7F062EF4: +/* 097A24 7F062EF4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097A28 7F062EF8 24050400 */ li $a1, 1024 +/* 097A2C 7F062EFC 1040000E */ beqz $v0, .L7F062F38 +/* 097A30 7F062F00 02E02025 */ move $a0, $s7 +/* 097A34 7F062F04 8FAE0098 */ lw $t6, 0x98($sp) +/* 097A38 7F062F08 3C19B600 */ lui $t9, 0xb600 +/* 097A3C 7F062F0C 24083000 */ li $t0, 12288 +/* 097A40 7F062F10 25D80008 */ addiu $t8, $t6, 8 +/* 097A44 7F062F14 AFB80098 */ sw $t8, 0x98($sp) +/* 097A48 7F062F18 ADC80004 */ sw $t0, 4($t6) +/* 097A4C 7F062F1C 16A00004 */ bnez $s5, .L7F062F30 +/* 097A50 7F062F20 ADD90000 */ sw $t9, ($t6) +/* 097A54 7F062F24 24090003 */ li $t1, 3 +/* 097A58 7F062F28 10000003 */ b .L7F062F38 +/* 097A5C 7F062F2C AFA900C8 */ sw $t1, 0xc8($sp) +.L7F062F30: +/* 097A60 7F062F30 240F0002 */ li $t7, 2 +/* 097A64 7F062F34 AFAF00C8 */ sw $t7, 0xc8($sp) +.L7F062F38: +/* 097A68 7F062F38 0FC1D1A1 */ jal subdraw +/* 097A6C 7F062F3C 02202825 */ move $a1, $s1 +/* 097A70 7F062F40 8FB00098 */ lw $s0, 0x98($sp) +/* 097A74 7F062F44 02802025 */ move $a0, $s4 +/* 097A78 7F062F48 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097A7C 7F062F4C 24050400 */ li $a1, 1024 +/* 097A80 7F062F50 10400006 */ beqz $v0, .L7F062F6C +/* 097A84 7F062F54 3C0AB600 */ lui $t2, 0xb600 +/* 097A88 7F062F58 02001025 */ move $v0, $s0 +/* 097A8C 7F062F5C 240B3000 */ li $t3, 12288 +/* 097A90 7F062F60 AC4B0004 */ sw $t3, 4($v0) +/* 097A94 7F062F64 AC4A0000 */ sw $t2, ($v0) +/* 097A98 7F062F68 26100008 */ addiu $s0, $s0, 8 +.L7F062F6C: +/* 097A9C 7F062F6C 8E6D0300 */ lw $t5, 0x300($s3) +/* 097AA0 7F062F70 8E640304 */ lw $a0, 0x304($s3) +/* 097AA4 7F062F74 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 097AA8 7F062F78 85A5000E */ lh $a1, 0xe($t5) +/* 097AAC 7F062F7C 0FC16322 */ jal sub_GAME_7F058C88 +/* 097AB0 7F062F80 00000000 */ nop +/* 097AB4 7F062F84 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 097AB8 7F062F88 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 097ABC 7F062F8C 02008825 */ move $s1, $s0 +/* 097AC0 7F062F90 AE2C0000 */ sw $t4, ($s1) +/* 097AC4 7F062F94 0C000F13 */ jal get_80060824 +/* 097AC8 7F062F98 26100008 */ addiu $s0, $s0, 8 +/* 097ACC 7F062F9C 24010017 */ li $at, 23 +/* 097AD0 7F062FA0 16810006 */ bne $s4, $at, .L7F062FBC +/* 097AD4 7F062FA4 AE220004 */ sw $v0, 4($s1) +/* 097AD8 7F062FA8 02002025 */ move $a0, $s0 +/* 097ADC 7F062FAC 266501E4 */ addiu $a1, $s3, 0x1e4 +/* 097AE0 7F062FB0 0FC18786 */ jal sub_GAME_7F061E18 +/* 097AE4 7F062FB4 00003025 */ move $a2, $zero +/* 097AE8 7F062FB8 00408025 */ move $s0, $v0 +.L7F062FBC: +/* 097AEC 7F062FBC 26B50001 */ addiu $s5, $s5, 1 +.L7F062FC0: +/* 097AF0 7F062FC0 24010002 */ li $at, 2 +/* 097AF4 7F062FC4 16A1FF28 */ bne $s5, $at, .L7F062C68 +/* 097AF8 7F062FC8 26D603A8 */ addiu $s6, $s6, 0x3a8 +/* 097AFC 7F062FCC 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 097B00 7F062FD0 ADD00000 */ sw $s0, ($t6) +/* 097B04 7F062FD4 8FBF0044 */ lw $ra, 0x44($sp) +/* 097B08 7F062FD8 8FBE0040 */ lw $fp, 0x40($sp) +/* 097B0C 7F062FDC 8FB7003C */ lw $s7, 0x3c($sp) +/* 097B10 7F062FE0 8FB60038 */ lw $s6, 0x38($sp) +/* 097B14 7F062FE4 8FB50034 */ lw $s5, 0x34($sp) +/* 097B18 7F062FE8 8FB40030 */ lw $s4, 0x30($sp) +/* 097B1C 7F062FEC 8FB3002C */ lw $s3, 0x2c($sp) +/* 097B20 7F062FF0 8FB20028 */ lw $s2, 0x28($sp) +/* 097B24 7F062FF4 8FB10024 */ lw $s1, 0x24($sp) +/* 097B28 7F062FF8 8FB00020 */ lw $s0, 0x20($sp) +/* 097B2C 7F062FFC 03E00008 */ jr $ra +/* 097B30 7F063000 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void set_enviro_fog_for_items_in_solo_watch_menu(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_enviro_fog_for_items_in_solo_watch_menu +/* 097B34 7F063004 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 097B38 7F063008 3C0F8003 */ lui $t7, %hi(D_80035D00) +/* 097B3C 7F06300C 25EF5D00 */ addiu $t7, %lo(D_80035D00) # addiu $t7, $t7, 0x5d00 +/* 097B40 7F063010 AFBF0024 */ sw $ra, 0x24($sp) +/* 097B44 7F063014 AFB30020 */ sw $s3, 0x20($sp) +/* 097B48 7F063018 AFB2001C */ sw $s2, 0x1c($sp) +/* 097B4C 7F06301C AFB10018 */ sw $s1, 0x18($sp) +/* 097B50 7F063020 AFB00014 */ sw $s0, 0x14($sp) +/* 097B54 7F063024 AFA40198 */ sw $a0, 0x198($sp) +/* 097B58 7F063028 AFA601A0 */ sw $a2, 0x1a0($sp) +/* 097B5C 7F06302C AFA701A4 */ sw $a3, 0x1a4($sp) +/* 097B60 7F063030 25E8003C */ addiu $t0, $t7, 0x3c +/* 097B64 7F063034 27AE0158 */ addiu $t6, $sp, 0x158 +.L7F063038: +/* 097B68 7F063038 8DE10000 */ lw $at, ($t7) +/* 097B6C 7F06303C 25EF000C */ addiu $t7, $t7, 0xc +/* 097B70 7F063040 25CE000C */ addiu $t6, $t6, 0xc +/* 097B74 7F063044 ADC1FFF4 */ sw $at, -0xc($t6) +/* 097B78 7F063048 8DE1FFF8 */ lw $at, -8($t7) +/* 097B7C 7F06304C ADC1FFF8 */ sw $at, -8($t6) +/* 097B80 7F063050 8DE1FFFC */ lw $at, -4($t7) +/* 097B84 7F063054 15E8FFF8 */ bne $t7, $t0, .L7F063038 +/* 097B88 7F063058 ADC1FFFC */ sw $at, -4($t6) +/* 097B8C 7F06305C 8DE10000 */ lw $at, ($t7) +/* 097B90 7F063060 00002025 */ move $a0, $zero +/* 097B94 7F063064 ADC10000 */ sw $at, ($t6) +/* 097B98 7F063068 2401001E */ li $at, 30 +/* 097B9C 7F06306C 10A10003 */ beq $a1, $at, .L7F06307C +/* 097BA0 7F063070 24010017 */ li $at, 23 +/* 097BA4 7F063074 14A10002 */ bne $a1, $at, .L7F063080 +/* 097BA8 7F063078 00000000 */ nop +.L7F06307C: +/* 097BAC 7F06307C 2405003C */ li $a1, 60 +.L7F063080: +/* 097BB0 7F063080 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 097BB4 7F063084 AFA5019C */ sw $a1, 0x19c($sp) +/* 097BB8 7F063088 0FC173AF */ jal sub_GAME_7F05CEBC +/* 097BBC 7F06308C 00002025 */ move $a0, $zero +/* 097BC0 7F063090 10400005 */ beqz $v0, .L7F0630A8 +/* 097BC4 7F063094 00000000 */ nop +/* 097BC8 7F063098 0FC173C0 */ jal get_itemtype_in_hand +/* 097BCC 7F06309C 00002025 */ move $a0, $zero +/* 097BD0 7F0630A0 14400003 */ bnez $v0, .L7F0630B0 +/* 097BD4 7F0630A4 3C128008 */ lui $s2, %hi(pPlayer) +.L7F0630A8: +/* 097BD8 7F0630A8 10000104 */ b .L7F0634BC +/* 097BDC 7F0630AC 8FA20198 */ lw $v0, 0x198($sp) +.L7F0630B0: +/* 097BE0 7F0630B0 8E52A0B0 */ lw $s2, %lo(pPlayer)($s2) +/* 097BE4 7F0630B4 8FA4019C */ lw $a0, 0x19c($sp) +/* 097BE8 7F0630B8 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 097BEC 7F0630BC 26520810 */ addiu $s2, $s2, 0x810 +/* 097BF0 7F0630C0 104000FD */ beqz $v0, .L7F0634B8 +/* 097BF4 7F0630C4 8FA4019C */ lw $a0, 0x19c($sp) +/* 097BF8 7F0630C8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097BFC 7F0630CC 24054000 */ li $a1, 16384 +/* 097C00 7F0630D0 544000FA */ bnezl $v0, .L7F0634BC +/* 097C04 7F0630D4 8FA20198 */ lw $v0, 0x198($sp) +/* 097C08 7F0630D8 8644000E */ lh $a0, 0xe($s2) +/* 097C0C 7F0630DC 00044980 */ sll $t1, $a0, 6 +/* 097C10 7F0630E0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 097C14 7F0630E4 01202025 */ move $a0, $t1 +/* 097C18 7F0630E8 864A000E */ lh $t2, 0xe($s2) +/* 097C1C 7F0630EC 00408025 */ move $s0, $v0 +/* 097C20 7F0630F0 00008825 */ move $s1, $zero +/* 097C24 7F0630F4 19400009 */ blez $t2, .L7F06311C +/* 097C28 7F0630F8 00115980 */ sll $t3, $s1, 6 +.L7F0630FC: +/* 097C2C 7F0630FC 0FC15FF4 */ jal matrix_4x4_set_identity +/* 097C30 7F063100 01702021 */ addu $a0, $t3, $s0 +/* 097C34 7F063104 864C000E */ lh $t4, 0xe($s2) +/* 097C38 7F063108 26310001 */ addiu $s1, $s1, 1 +/* 097C3C 7F06310C 022C082A */ slt $at, $s1, $t4 +/* 097C40 7F063110 5420FFFA */ bnezl $at, .L7F0630FC +/* 097C44 7F063114 00115980 */ sll $t3, $s1, 6 +/* 097C48 7F063118 00008825 */ move $s1, $zero +.L7F06311C: +/* 097C4C 7F06311C AFB00144 */ sw $s0, 0x144($sp) +/* 097C50 7F063120 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 097C54 7F063124 02402025 */ move $a0, $s2 +/* 097C58 7F063128 27B30138 */ addiu $s3, $sp, 0x138 +/* 097C5C 7F06312C 02602025 */ move $a0, $s3 +/* 097C60 7F063130 02402825 */ move $a1, $s2 +/* 097C64 7F063134 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 097C68 7F063138 27A600B8 */ addiu $a2, $sp, 0xb8 +/* 097C6C 7F06313C 02602025 */ move $a0, $s3 +/* 097C70 7F063140 0FC17A5E */ jal sub_GAME_7F05E978 +/* 097C74 7F063144 00002825 */ move $a1, $zero +/* 097C78 7F063148 02602025 */ move $a0, $s3 +/* 097C7C 7F06314C 0FC17AA5 */ jal sub_GAME_7F05EA94 +/* 097C80 7F063150 24050001 */ li $a1, 1 +/* 097C84 7F063154 8E4D0008 */ lw $t5, 8($s2) +/* 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 +/* 097C98 7F063168 02602025 */ move $a0, $s3 +/* 097C9C 7F06316C 50400003 */ beql $v0, $zero, .L7F06317C +/* 097CA0 7F063170 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097CA4 7F063174 AC400000 */ sw $zero, ($v0) +/* 097CA8 7F063178 8FA401A0 */ lw $a0, 0x1a0($sp) +.L7F06317C: +/* 097CAC 7F06317C 0FC16008 */ jal matrix_4x4_copy +/* 097CB0 7F063180 02002825 */ move $a1, $s0 +/* 097CB4 7F063184 8E580004 */ lw $t8, 4($s2) +/* 097CB8 7F063188 3C198004 */ lui $t9, %hi(weapon_gun_revolver) +/* 097CBC 7F06318C 2739C76C */ addiu $t9, %lo(weapon_gun_revolver) # addiu $t9, $t9, -0x3894 +/* 097CC0 7F063190 57380018 */ bnel $t9, $t8, .L7F0631F4 +/* 097CC4 7F063194 8E420008 */ lw $v0, 8($s2) +/* 097CC8 7F063198 8E420008 */ lw $v0, 8($s2) +/* 097CCC 7F06319C 27A50074 */ addiu $a1, $sp, 0x74 +/* 097CD0 7F0631A0 8C430010 */ lw $v1, 0x10($v0) +/* 097CD4 7F0631A4 50600009 */ beql $v1, $zero, .L7F0631CC +/* 097CD8 7F0631A8 8C430014 */ lw $v1, 0x14($v0) +/* 097CDC 7F0631AC 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097CE0 7F0631B0 8C640004 */ lw $a0, 4($v1) +/* 097CE4 7F0631B4 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097CE8 7F0631B8 27A50074 */ addiu $a1, $sp, 0x74 +/* 097CEC 7F0631BC 0FC16032 */ jal matrix_4x4_multiply +/* 097CF0 7F0631C0 260600C0 */ addiu $a2, $s0, 0xc0 +/* 097CF4 7F0631C4 8E420008 */ lw $v0, 8($s2) +/* 097CF8 7F0631C8 8C430014 */ lw $v1, 0x14($v0) +.L7F0631CC: +/* 097CFC 7F0631CC 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D00 7F0631D0 50600008 */ beql $v1, $zero, .L7F0631F4 +/* 097D04 7F0631D4 8E420008 */ lw $v0, 8($s2) +/* 097D08 7F0631D8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D0C 7F0631DC 8C640004 */ lw $a0, 4($v1) +/* 097D10 7F0631E0 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097D14 7F0631E4 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D18 7F0631E8 0FC16032 */ jal matrix_4x4_multiply +/* 097D1C 7F0631EC 26060100 */ addiu $a2, $s0, 0x100 +/* 097D20 7F0631F0 8E420008 */ lw $v0, 8($s2) +.L7F0631F4: +/* 097D24 7F0631F4 8C440018 */ lw $a0, 0x18($v0) +/* 097D28 7F0631F8 50800011 */ beql $a0, $zero, .L7F063240 +/* 097D2C 7F0631FC 8C44001C */ lw $a0, 0x1c($v0) +/* 097D30 7F063200 8C880004 */ lw $t0, 4($a0) +/* 097D34 7F063204 00002825 */ move $a1, $zero +/* 097D38 7F063208 0FC1B15C */ jal sub_GAME_7F06C570 +/* 097D3C 7F06320C AFA8005C */ sw $t0, 0x5c($sp) +/* 097D40 7F063210 AFA20058 */ sw $v0, 0x58($sp) +/* 097D44 7F063214 8FA4005C */ lw $a0, 0x5c($sp) +/* 097D48 7F063218 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D4C 7F06321C 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D50 7F063220 8FAF0058 */ lw $t7, 0x58($sp) +/* 097D54 7F063224 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097D58 7F063228 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D5C 7F06322C 000F7180 */ sll $t6, $t7, 6 +/* 097D60 7F063230 0FC16032 */ jal matrix_4x4_multiply +/* 097D64 7F063234 01D03021 */ addu $a2, $t6, $s0 +/* 097D68 7F063238 8E420008 */ lw $v0, 8($s2) +/* 097D6C 7F06323C 8C44001C */ lw $a0, 0x1c($v0) +.L7F063240: +/* 097D70 7F063240 50800010 */ beql $a0, $zero, .L7F063284 +/* 097D74 7F063244 864C000C */ lh $t4, 0xc($s2) +/* 097D78 7F063248 8C890004 */ lw $t1, 4($a0) +/* 097D7C 7F06324C 00002825 */ move $a1, $zero +/* 097D80 7F063250 0FC1B15C */ jal sub_GAME_7F06C570 +/* 097D84 7F063254 AFA90054 */ sw $t1, 0x54($sp) +/* 097D88 7F063258 AFA20050 */ sw $v0, 0x50($sp) +/* 097D8C 7F06325C 8FA40054 */ lw $a0, 0x54($sp) +/* 097D90 7F063260 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D94 7F063264 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D98 7F063268 8FAA0050 */ lw $t2, 0x50($sp) +/* 097D9C 7F06326C 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097DA0 7F063270 27A50074 */ addiu $a1, $sp, 0x74 +/* 097DA4 7F063274 000A5980 */ sll $t3, $t2, 6 +/* 097DA8 7F063278 0FC16032 */ jal matrix_4x4_multiply +/* 097DAC 7F06327C 01703021 */ addu $a2, $t3, $s0 +/* 097DB0 7F063280 864C000C */ lh $t4, 0xc($s2) +.L7F063284: +/* 097DB4 7F063284 00008025 */ move $s0, $zero +/* 097DB8 7F063288 29810013 */ slti $at, $t4, 0x13 +/* 097DBC 7F06328C 14200019 */ bnez $at, .L7F0632F4 +/* 097DC0 7F063290 00000000 */ nop +/* 097DC4 7F063294 8E4D0008 */ lw $t5, 8($s2) +.L7F063298: +/* 097DC8 7F063298 01B0C821 */ addu $t9, $t5, $s0 +/* 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 +/* 097DDC 7F0632AC 02602025 */ move $a0, $s3 +/* 097DE0 7F0632B0 10400002 */ beqz $v0, .L7F0632BC +/* 097DE4 7F0632B4 24180001 */ li $t8, 1 +/* 097DE8 7F0632B8 AC580000 */ sw $t8, ($v0) +.L7F0632BC: +/* 097DEC 7F0632BC 8E480008 */ lw $t0, 8($s2) +.L7F0632C0: +/* 097DF0 7F0632C0 01107821 */ addu $t7, $t0, $s0 +/* 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 +/* 097E04 7F0632D4 02602025 */ move $a0, $s3 +/* 097E08 7F0632D8 10400002 */ beqz $v0, .L7F0632E4 +/* 097E0C 7F0632DC 240E0001 */ li $t6, 1 +/* 097E10 7F0632E0 AC4E0000 */ sw $t6, ($v0) +.L7F0632E4: +/* 097E14 7F0632E4 26100004 */ addiu $s0, $s0, 4 +.L7F0632E8: +/* 097E18 7F0632E8 24010014 */ li $at, 20 +/* 097E1C 7F0632EC 5601FFEA */ bnel $s0, $at, .L7F063298 +/* 097E20 7F0632F0 8E4D0008 */ lw $t5, 8($s2) +.L7F0632F4: +/* 097E24 7F0632F4 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 097E28 7F0632F8 02602025 */ move $a0, $s3 +/* 097E2C 7F0632FC 8FA2019C */ lw $v0, 0x19c($sp) +/* 097E30 7F063300 24010013 */ li $at, 19 +/* 097E34 7F063304 3C09BC00 */ lui $t1, (0xBC000002 >> 16) # lui $t1, 0xbc00 +/* 097E38 7F063308 1041000C */ beq $v0, $at, .L7F06333C +/* 097E3C 7F06330C 35290002 */ ori $t1, (0xBC000002 & 0xFFFF) # ori $t1, $t1, 2 +/* 097E40 7F063310 24010012 */ li $at, 18 +/* 097E44 7F063314 10410009 */ beq $v0, $at, .L7F06333C +/* 097E48 7F063318 24010002 */ li $at, 2 +/* 097E4C 7F06331C 10410007 */ beq $v0, $at, .L7F06333C +/* 097E50 7F063320 24010003 */ li $at, 3 +/* 097E54 7F063324 10410005 */ beq $v0, $at, .L7F06333C +/* 097E58 7F063328 24010014 */ li $at, 20 +/* 097E5C 7F06332C 10410003 */ beq $v0, $at, .L7F06333C +/* 097E60 7F063330 24010015 */ li $at, 21 +/* 097E64 7F063334 54410028 */ bnel $v0, $at, .L7F0633D8 +/* 097E68 7F063338 864A000C */ lh $t2, 0xc($s2) +.L7F06333C: +/* 097E6C 7F06333C 8FA20198 */ lw $v0, 0x198($sp) +/* 097E70 7F063340 3C0A8000 */ lui $t2, (0x80000040 >> 16) # lui $t2, 0x8000 +/* 097E74 7F063344 354A0040 */ ori $t2, (0x80000040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 097E78 7F063348 24430008 */ addiu $v1, $v0, 8 +/* 097E7C 7F06334C 3C0B0386 */ lui $t3, (0x03860010 >> 16) # lui $t3, 0x386 +/* 097E80 7F063350 3C0C8003 */ lui $t4, %hi(D_80032448) +/* 097E84 7F063354 AC4A0004 */ sw $t2, 4($v0) +/* 097E88 7F063358 AC490000 */ sw $t1, ($v0) +/* 097E8C 7F06335C 258C2448 */ addiu $t4, %lo(D_80032448) # addiu $t4, $t4, 0x2448 +/* 097E90 7F063360 356B0010 */ ori $t3, (0x03860010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 097E94 7F063364 24640008 */ addiu $a0, $v1, 8 +/* 097E98 7F063368 AC6B0000 */ sw $t3, ($v1) +/* 097E9C 7F06336C AC6C0004 */ sw $t4, 4($v1) +/* 097EA0 7F063370 3C0D0388 */ lui $t5, (0x03880010 >> 16) # lui $t5, 0x388 +/* 097EA4 7F063374 3C198003 */ lui $t9, %hi(D_80032440) +/* 097EA8 7F063378 27392440 */ addiu $t9, %lo(D_80032440) # addiu $t9, $t9, 0x2440 +/* 097EAC 7F06337C 35AD0010 */ ori $t5, (0x03880010 & 0xFFFF) # ori $t5, $t5, 0x10 +/* 097EB0 7F063380 24900008 */ addiu $s0, $a0, 8 +/* 097EB4 7F063384 3C180384 */ lui $t8, (0x03840010 >> 16) # lui $t8, 0x384 +/* 097EB8 7F063388 AC8D0000 */ sw $t5, ($a0) +/* 097EBC 7F06338C AC990004 */ sw $t9, 4($a0) +/* 097EC0 7F063390 37180010 */ ori $t8, (0x03840010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 097EC4 7F063394 AE180000 */ sw $t8, ($s0) +/* 097EC8 7F063398 26050008 */ addiu $a1, $s0, 8 +/* 097ECC 7F06339C 0FC1E11D */ jal sub_GAME_7F078474 +/* 097ED0 7F0633A0 AFA50198 */ sw $a1, 0x198($sp) +/* 097ED4 7F0633A4 AE020004 */ sw $v0, 4($s0) +/* 097ED8 7F0633A8 8FA80198 */ lw $t0, 0x198($sp) +/* 097EDC 7F0633AC 3C0E0382 */ lui $t6, (0x03820010 >> 16) # lui $t6, 0x382 +/* 097EE0 7F0633B0 35CE0010 */ ori $t6, (0x03820010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 097EE4 7F0633B4 250F0008 */ addiu $t7, $t0, 8 +/* 097EE8 7F0633B8 AFAF0198 */ sw $t7, 0x198($sp) +/* 097EEC 7F0633BC AD0E0000 */ sw $t6, ($t0) +/* 097EF0 7F0633C0 0FC1E11D */ jal sub_GAME_7F078474 +/* 097EF4 7F0633C4 AFA80034 */ sw $t0, 0x34($sp) +/* 097EF8 7F0633C8 8FA30034 */ lw $v1, 0x34($sp) +/* 097EFC 7F0633CC 24490010 */ addiu $t1, $v0, 0x10 +/* 097F00 7F0633D0 AC690004 */ sw $t1, 4($v1) +/* 097F04 7F0633D4 864A000C */ lh $t2, 0xc($s2) +.L7F0633D8: +/* 097F08 7F0633D8 29410011 */ slti $at, $t2, 0x11 +/* 097F0C 7F0633DC 5420000C */ bnezl $at, .L7F063410 +/* 097F10 7F0633E0 8FA201A4 */ lw $v0, 0x1a4($sp) +/* 097F14 7F0633E4 8E420008 */ lw $v0, 8($s2) +/* 097F18 7F0633E8 02602025 */ move $a0, $s3 +/* 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 +/* 097F2C 7F0633FC 8C450044 */ lw $a1, 0x44($v0) +/* 097F30 7F063400 50400003 */ beql $v0, $zero, .L7F063410 +/* 097F34 7F063404 8FA201A4 */ lw $v0, 0x1a4($sp) +/* 097F38 7F063408 AC400000 */ sw $zero, ($v0) +/* 097F3C 7F06340C 8FA201A4 */ lw $v0, 0x1a4($sp) +.L7F063410: +/* 097F40 7F063410 8FAC0198 */ lw $t4, 0x198($sp) +/* 097F44 7F063414 27A40158 */ addiu $a0, $sp, 0x158 +/* 097F48 7F063418 284100FF */ slti $at, $v0, 0xff +/* 097F4C 7F06341C 14200006 */ bnez $at, .L7F063438 +/* 097F50 7F063420 AFAC0164 */ sw $t4, 0x164($sp) +/* 097F54 7F063424 8FB901A8 */ lw $t9, 0x1a8($sp) +/* 097F58 7F063428 240D0004 */ li $t5, 4 +/* 097F5C 7F06342C AFAD0188 */ sw $t5, 0x188($sp) +/* 097F60 7F063430 10000006 */ b .L7F06344C +/* 097F64 7F063434 AFB9018C */ sw $t9, 0x18c($sp) +.L7F063438: +/* 097F68 7F063438 8FA801A8 */ lw $t0, 0x1a8($sp) +/* 097F6C 7F06343C 24180005 */ li $t8, 5 +/* 097F70 7F063440 AFB80188 */ sw $t8, 0x188($sp) +/* 097F74 7F063444 AFA2018C */ sw $v0, 0x18c($sp) +/* 097F78 7F063448 AFA80190 */ sw $t0, 0x190($sp) +.L7F06344C: +/* 097F7C 7F06344C AFA0015C */ sw $zero, 0x15c($sp) +/* 097F80 7F063450 0FC1D1A1 */ jal subdraw +/* 097F84 7F063454 02602825 */ move $a1, $s3 +/* 097F88 7F063458 8FAF0164 */ lw $t7, 0x164($sp) +/* 097F8C 7F06345C 0FC16319 */ jal sub_GAME_7F058C64 +/* 097F90 7F063460 AFAF0198 */ sw $t7, 0x198($sp) +/* 097F94 7F063464 864E000E */ lh $t6, 0xe($s2) +/* 097F98 7F063468 00008025 */ move $s0, $zero +/* 097F9C 7F06346C 19C00010 */ blez $t6, .L7F0634B0 +/* 097FA0 7F063470 00000000 */ nop +/* 097FA4 7F063474 8FA90144 */ lw $t1, 0x144($sp) +.L7F063478: +/* 097FA8 7F063478 27A50074 */ addiu $a1, $sp, 0x74 +/* 097FAC 7F06347C 0FC16008 */ jal matrix_4x4_copy +/* 097FB0 7F063480 01302021 */ addu $a0, $t1, $s0 +/* 097FB4 7F063484 8FAB0144 */ lw $t3, 0x144($sp) +/* 097FB8 7F063488 00115180 */ sll $t2, $s1, 6 +/* 097FBC 7F06348C 27A40074 */ addiu $a0, $sp, 0x74 +/* 097FC0 7F063490 0FC16327 */ jal sub_GAME_7F058C9C +/* 097FC4 7F063494 014B2821 */ addu $a1, $t2, $t3 +/* 097FC8 7F063498 864C000E */ lh $t4, 0xe($s2) +/* 097FCC 7F06349C 26310001 */ addiu $s1, $s1, 1 +/* 097FD0 7F0634A0 26100040 */ addiu $s0, $s0, 0x40 +/* 097FD4 7F0634A4 022C082A */ slt $at, $s1, $t4 +/* 097FD8 7F0634A8 5420FFF3 */ bnezl $at, .L7F063478 +/* 097FDC 7F0634AC 8FA90144 */ lw $t1, 0x144($sp) +.L7F0634B0: +/* 097FE0 7F0634B0 0FC16322 */ jal sub_GAME_7F058C88 +/* 097FE4 7F0634B4 00000000 */ nop +.L7F0634B8: +/* 097FE8 7F0634B8 8FA20198 */ lw $v0, 0x198($sp) +.L7F0634BC: +/* 097FEC 7F0634BC 8FBF0024 */ lw $ra, 0x24($sp) +/* 097FF0 7F0634C0 8FB00014 */ lw $s0, 0x14($sp) +/* 097FF4 7F0634C4 8FB10018 */ lw $s1, 0x18($sp) +/* 097FF8 7F0634C8 8FB2001C */ lw $s2, 0x1c($sp) +/* 097FFC 7F0634CC 8FB30020 */ lw $s3, 0x20($sp) +/* 098000 7F0634D0 03E00008 */ jr $ra +/* 098004 7F0634D4 27BD0198 */ addiu $sp, $sp, 0x198 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0634D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0634D8 +/* 098008 7F0634D8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09800C 7F0634DC AFBF001C */ sw $ra, 0x1c($sp) +/* 098010 7F0634E0 240EFF00 */ li $t6, -256 +/* 098014 7F0634E4 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 098018 7F0634E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09801C 7F0634EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 098020 7F0634F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 098024 7F0634F4 03E00008 */ jr $ra +/* 098028 7F0634F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0634FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0634FC +/* 09802C 7F0634FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 098030 7F063500 AFBF0014 */ sw $ra, 0x14($sp) +/* 098034 7F063504 0FC18D36 */ jal sub_GAME_7F0634D8 +/* 098038 7F063508 240700FF */ li $a3, 255 +/* 09803C 7F06350C 8FBF0014 */ lw $ra, 0x14($sp) +/* 098040 7F063510 27BD0018 */ addiu $sp, $sp, 0x18 +/* 098044 7F063514 03E00008 */ jr $ra +/* 098048 7F063518 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06351C(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06359C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053ED4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053ED8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EDC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EE0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EE4 +.word 0xbf860a92 /*-1.0471976*/ +glabel D_80053EE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EEC +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EF4 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EF8 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053EFC +.word 0x3f860a92 /*1.0471976*/ +glabel D_80053F00 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F04 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80053F08 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F0C +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F10 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F14 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F18 +.word 0xbf65c8fa /*-0.89759791*/ +glabel D_80053F1C +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F20 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F06359C +/* 0980CC 7F06359C 27BDFAC8 */ addiu $sp, $sp, -0x538 +/* 0980D0 7F0635A0 3C0F8003 */ lui $t7, %hi(D_80035D04+0x3C) +/* 0980D4 7F0635A4 AFB30054 */ sw $s3, 0x54($sp) +/* 0980D8 7F0635A8 AFB20050 */ sw $s2, 0x50($sp) +/* 0980DC 7F0635AC 25EF5D40 */ addiu $t7, %lo(D_80035D04+0x3C) # addiu $t7, $t7, 0x5d40 +/* 0980E0 7F0635B0 00C09025 */ move $s2, $a2 +/* 0980E4 7F0635B4 00E09825 */ move $s3, $a3 +/* 0980E8 7F0635B8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0980EC 7F0635BC AFBE0068 */ sw $fp, 0x68($sp) +/* 0980F0 7F0635C0 AFB70064 */ sw $s7, 0x64($sp) +/* 0980F4 7F0635C4 AFB60060 */ sw $s6, 0x60($sp) +/* 0980F8 7F0635C8 AFB5005C */ sw $s5, 0x5c($sp) +/* 0980FC 7F0635CC AFB40058 */ sw $s4, 0x58($sp) +/* 098100 7F0635D0 AFB1004C */ sw $s1, 0x4c($sp) +/* 098104 7F0635D4 AFB00048 */ sw $s0, 0x48($sp) +/* 098108 7F0635D8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 09810C 7F0635DC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 098110 7F0635E0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 098114 7F0635E4 AFA40538 */ sw $a0, 0x538($sp) +/* 098118 7F0635E8 AFA5053C */ sw $a1, 0x53c($sp) +/* 09811C 7F0635EC 25E8003C */ addiu $t0, $t7, 0x3c +/* 098120 7F0635F0 27AE04F8 */ addiu $t6, $sp, 0x4f8 +.L7F0635F4: +/* 098124 7F0635F4 8DE10000 */ lw $at, ($t7) +/* 098128 7F0635F8 25EF000C */ addiu $t7, $t7, 0xc +/* 09812C 7F0635FC 25CE000C */ addiu $t6, $t6, 0xc +/* 098130 7F063600 ADC1FFF4 */ sw $at, -0xc($t6) +/* 098134 7F063604 8DE1FFF8 */ lw $at, -8($t7) +/* 098138 7F063608 ADC1FFF8 */ sw $at, -8($t6) +/* 09813C 7F06360C 8DE1FFFC */ lw $at, -4($t7) +/* 098140 7F063610 15E8FFF8 */ bne $t7, $t0, .L7F0635F4 +/* 098144 7F063614 ADC1FFFC */ sw $at, -4($t6) +/* 098148 7F063618 8DE10000 */ lw $at, ($t7) +/* 09814C 7F06361C 00002025 */ move $a0, $zero +/* 098150 7F063620 24050055 */ li $a1, 85 +/* 098154 7F063624 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 098158 7F063628 ADC10000 */ sw $at, ($t6) +/* 09815C 7F06362C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 098160 7F063630 00002025 */ move $a0, $zero +/* 098164 7F063634 10400005 */ beqz $v0, .L7F06364C +/* 098168 7F063638 00000000 */ nop +/* 09816C 7F06363C 0FC173C0 */ jal get_itemtype_in_hand +/* 098170 7F063640 00002025 */ move $a0, $zero +/* 098174 7F063644 14400003 */ bnez $v0, .L7F063654 +/* 098178 7F063648 00000000 */ nop +.L7F06364C: +/* 09817C 7F06364C 10000336 */ b .L7F064328 +/* 098180 7F063650 8FA20538 */ lw $v0, 0x538($sp) +.L7F063654: +/* 098184 7F063654 3C028008 */ lui $v0, %hi(pPlayer) +/* 098188 7F063658 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09818C 7F06365C 8444081E */ lh $a0, 0x81e($v0) +/* 098190 7F063660 24420810 */ addiu $v0, $v0, 0x810 +/* 098194 7F063664 AFA203D8 */ sw $v0, 0x3d8($sp) +/* 098198 7F063668 00044980 */ sll $t1, $a0, 6 +/* 09819C 7F06366C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0981A0 7F063670 01202025 */ move $a0, $t1 +/* 0981A4 7F063674 0040B825 */ move $s7, $v0 +/* 0981A8 7F063678 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0981AC 7F06367C 8FA403D8 */ lw $a0, 0x3d8($sp) +/* 0981B0 7F063680 8FA503D8 */ lw $a1, 0x3d8($sp) +/* 0981B4 7F063684 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0981B8 7F063688 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 0981BC 7F06368C 27A60460 */ addiu $a2, $sp, 0x460 +/* 0981C0 7F063690 AFB704E4 */ sw $s7, 0x4e4($sp) +/* 0981C4 7F063694 8FA4053C */ lw $a0, 0x53c($sp) +/* 0981C8 7F063698 0FC16008 */ jal matrix_4x4_copy +/* 0981CC 7F06369C 02E02825 */ move $a1, $s7 +/* 0981D0 7F0636A0 240A0004 */ li $t2, 4 +/* 0981D4 7F0636A4 AFAA0070 */ sw $t2, 0x70($sp) +/* 0981D8 7F0636A8 24110001 */ li $s1, 1 +/* 0981DC 7F0636AC 8FB4054C */ lw $s4, 0x54c($sp) +.L7F0636B0: +/* 0981E0 7F0636B0 8FAB03D8 */ lw $t3, 0x3d8($sp) +/* 0981E4 7F0636B4 8FAD0070 */ lw $t5, 0x70($sp) +/* 0981E8 7F0636B8 24010002 */ li $at, 2 +/* 0981EC 7F0636BC 8D6C0008 */ lw $t4, 8($t3) +/* 0981F0 7F0636C0 27A5041C */ addiu $a1, $sp, 0x41c +/* 0981F4 7F0636C4 018DC821 */ addu $t9, $t4, $t5 +/* 0981F8 7F0636C8 8F380000 */ lw $t8, ($t9) +/* 0981FC 7F0636CC 1621002B */ bne $s1, $at, .L7F06377C +/* 098200 7F0636D0 8F100004 */ lw $s0, 4($t8) +/* 098204 7F0636D4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 098208 7F0636D8 82840000 */ lb $a0, ($s4) +/* 09820C 7F0636DC 44822000 */ mtc1 $v0, $f4 +/* 098210 7F0636E0 3C018005 */ lui $at, %hi(D_80053ED4) +/* 098214 7F0636E4 C42A3ED4 */ lwc1 $f10, %lo(D_80053ED4)($at) +/* 098218 7F0636E8 468021A0 */ cvt.s.w $f6, $f4 +/* 09821C 7F0636EC 3C018005 */ lui $at, %hi(D_80053ED8) +/* 098220 7F0636F0 C4323ED8 */ lwc1 $f18, %lo(D_80053ED8)($at) +/* 098224 7F0636F4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098228 7F0636F8 27A5041C */ addiu $a1, $sp, 0x41c +/* 09822C 7F0636FC 46003207 */ neg.s $f8, $f6 +/* 098230 7F063700 44813000 */ mtc1 $at, $f6 +/* 098234 7F063704 460A4402 */ mul.s $f16, $f8, $f10 +/* 098238 7F063708 00000000 */ nop +/* 09823C 7F06370C 46128102 */ mul.s $f4, $f16, $f18 +/* 098240 7F063710 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098244 7F063714 46062303 */ div.s $f12, $f4, $f6 +/* 098248 7F063718 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 09824C 7F06371C 82840000 */ lb $a0, ($s4) +/* 098250 7F063720 44824000 */ mtc1 $v0, $f8 +/* 098254 7F063724 3C018005 */ lui $at, %hi(D_80053EDC) +/* 098258 7F063728 C4323EDC */ lwc1 $f18, %lo(D_80053EDC)($at) +/* 09825C 7F06372C 468042A0 */ cvt.s.w $f10, $f8 +/* 098260 7F063730 3C018005 */ lui $at, %hi(D_80053EE0) +/* 098264 7F063734 C4263EE0 */ lwc1 $f6, %lo(D_80053EE0)($at) +/* 098268 7F063738 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09826C 7F06373C 27A503DC */ addiu $a1, $sp, 0x3dc +/* 098270 7F063740 46005407 */ neg.s $f16, $f10 +/* 098274 7F063744 44815000 */ mtc1 $at, $f10 +/* 098278 7F063748 46128102 */ mul.s $f4, $f16, $f18 +/* 09827C 7F06374C 00000000 */ nop +/* 098280 7F063750 46062202 */ mul.s $f8, $f4, $f6 +/* 098284 7F063754 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098288 7F063758 460A4303 */ div.s $f12, $f8, $f10 +/* 09828C 7F06375C 27A403DC */ addiu $a0, $sp, 0x3dc +/* 098290 7F063760 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098294 7F063764 27A5041C */ addiu $a1, $sp, 0x41c +/* 098298 7F063768 02002025 */ move $a0, $s0 +/* 09829C 7F06376C 0FC16266 */ jal matrix_4x4_set_position +/* 0982A0 7F063770 27A5041C */ addiu $a1, $sp, 0x41c +/* 0982A4 7F063774 10000004 */ b .L7F063788 +/* 0982A8 7F063778 00114180 */ sll $t0, $s1, 6 +.L7F06377C: +/* 0982AC 7F06377C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0982B0 7F063780 02002025 */ move $a0, $s0 +/* 0982B4 7F063784 00114180 */ sll $t0, $s1, 6 +.L7F063788: +/* 0982B8 7F063788 01173021 */ addu $a2, $t0, $s7 +/* 0982BC 7F06378C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0982C0 7F063790 0FC16032 */ jal matrix_4x4_multiply +/* 0982C4 7F063794 27A5041C */ addiu $a1, $sp, 0x41c +/* 0982C8 7F063798 8FAF0070 */ lw $t7, 0x70($sp) +/* 0982CC 7F06379C 26310001 */ addiu $s1, $s1, 1 +/* 0982D0 7F0637A0 2A21000D */ slti $at, $s1, 0xd +/* 0982D4 7F0637A4 25EE0004 */ addiu $t6, $t7, 4 +/* 0982D8 7F0637A8 1420FFC1 */ bnez $at, .L7F0636B0 +/* 0982DC 7F0637AC AFAE0070 */ sw $t6, 0x70($sp) +/* 0982E0 7F0637B0 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0982E4 7F0637B4 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0982E8 7F0637B8 8FA90538 */ lw $t1, 0x538($sp) +/* 0982EC 7F0637BC 2A4100FF */ slti $at, $s2, 0xff +/* 0982F0 7F0637C0 14200004 */ bnez $at, .L7F0637D4 +/* 0982F4 7F0637C4 AFA90504 */ sw $t1, 0x504($sp) +/* 0982F8 7F0637C8 240A0001 */ li $t2, 1 +/* 0982FC 7F0637CC 10000006 */ b .L7F0637E8 +/* 098300 7F0637D0 AFAA0528 */ sw $t2, 0x528($sp) +.L7F0637D4: +/* 098304 7F0637D4 240B0005 */ li $t3, 5 +/* 098308 7F0637D8 240CFF00 */ li $t4, -256 +/* 09830C 7F0637DC AFAB0528 */ sw $t3, 0x528($sp) +/* 098310 7F0637E0 AFB2052C */ sw $s2, 0x52c($sp) +/* 098314 7F0637E4 AFAC0530 */ sw $t4, 0x530($sp) +.L7F0637E8: +/* 098318 7F0637E8 240D0001 */ li $t5, 1 +/* 09831C 7F0637EC AFAD04FC */ sw $t5, 0x4fc($sp) +/* 098320 7F0637F0 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 098324 7F0637F4 0FC1D1A1 */ jal subdraw +/* 098328 7F0637F8 27A504D8 */ addiu $a1, $sp, 0x4d8 +/* 09832C 7F0637FC 8FB90504 */ lw $t9, 0x504($sp) +/* 098330 7F063800 0FC16319 */ jal sub_GAME_7F058C64 +/* 098334 7F063804 AFB90538 */ sw $t9, 0x538($sp) +/* 098338 7F063808 8FB803D8 */ lw $t8, 0x3d8($sp) +/* 09833C 7F06380C 00008825 */ move $s1, $zero +/* 098340 7F063810 00008025 */ move $s0, $zero +/* 098344 7F063814 8708000E */ lh $t0, 0xe($t8) +/* 098348 7F063818 19000011 */ blez $t0, .L7F063860 +/* 09834C 7F06381C 00000000 */ nop +/* 098350 7F063820 8FAF04E4 */ lw $t7, 0x4e4($sp) +.L7F063824: +/* 098354 7F063824 27A5041C */ addiu $a1, $sp, 0x41c +/* 098358 7F063828 0FC16008 */ jal matrix_4x4_copy +/* 09835C 7F06382C 01F02021 */ addu $a0, $t7, $s0 +/* 098360 7F063830 8FA904E4 */ lw $t1, 0x4e4($sp) +/* 098364 7F063834 00117180 */ sll $t6, $s1, 6 +/* 098368 7F063838 27A4041C */ addiu $a0, $sp, 0x41c +/* 09836C 7F06383C 0FC16327 */ jal sub_GAME_7F058C9C +/* 098370 7F063840 01C92821 */ addu $a1, $t6, $t1 +/* 098374 7F063844 8FAA03D8 */ lw $t2, 0x3d8($sp) +/* 098378 7F063848 26310001 */ addiu $s1, $s1, 1 +/* 09837C 7F06384C 26100040 */ addiu $s0, $s0, 0x40 +/* 098380 7F063850 854B000E */ lh $t3, 0xe($t2) +/* 098384 7F063854 022B082A */ slt $at, $s1, $t3 +/* 098388 7F063858 5420FFF2 */ bnezl $at, .L7F063824 +/* 09838C 7F06385C 8FAF04E4 */ lw $t7, 0x4e4($sp) +.L7F063860: +/* 098390 7F063860 0FC16322 */ jal sub_GAME_7F058C88 +/* 098394 7F063864 00000000 */ nop +/* 098398 7F063868 126002AE */ beqz $s3, .L7F064324 +/* 09839C 7F06386C 8FAC03D8 */ lw $t4, 0x3d8($sp) +/* 0983A0 7F063870 8D8D0008 */ lw $t5, 8($t4) +/* 0983A4 7F063874 00008825 */ move $s1, $zero +/* 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 +/* 0983B8 7F063888 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0983BC 7F06388C AC400000 */ sw $zero, ($v0) +/* 0983C0 7F063890 8FB903D8 */ lw $t9, 0x3d8($sp) +.L7F063894: +/* 0983C4 7F063894 8724000E */ lh $a0, 0xe($t9) +/* 0983C8 7F063898 0004C180 */ sll $t8, $a0, 6 +/* 0983CC 7F06389C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0983D0 7F0638A0 03002025 */ move $a0, $t8 +/* 0983D4 7F0638A4 3C018005 */ lui $at, %hi(D_80053EE4) +/* 0983D8 7F0638A8 C4363EE4 */ lwc1 $f22, %lo(D_80053EE4)($at) +/* 0983DC 7F0638AC 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0983E0 7F0638B0 4481A000 */ mtc1 $at, $f20 +/* 0983E4 7F0638B4 4480C000 */ mtc1 $zero, $f24 +/* 0983E8 7F0638B8 0040B825 */ move $s7, $v0 +/* 0983EC 7F0638BC AFA204E4 */ sw $v0, 0x4e4($sp) +/* 0983F0 7F0638C0 8FBE0548 */ lw $fp, 0x548($sp) +/* 0983F4 7F0638C4 27B601CC */ addiu $s6, $sp, 0x1cc +/* 0983F8 7F0638C8 27B5020C */ addiu $s5, $sp, 0x20c +/* 0983FC 7F0638CC 27B3024C */ addiu $s3, $sp, 0x24c +/* 098400 7F0638D0 27B2028C */ addiu $s2, $sp, 0x28c +/* 098404 7F0638D4 27B0038C */ addiu $s0, $sp, 0x38c +/* 098408 7F0638D8 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +.L7F0638DC: +/* 09840C 7F0638DC 44810000 */ mtc1 $at, $f0 +/* 098410 7F0638E0 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 098414 7F0638E4 44811000 */ mtc1 $at, $f2 +/* 098418 7F0638E8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 09841C 7F0638EC 44818000 */ mtc1 $at, $f16 +/* 098420 7F0638F0 44050000 */ mfc1 $a1, $f0 +/* 098424 7F0638F4 44071000 */ mfc1 $a3, $f2 +/* 098428 7F0638F8 02A02025 */ move $a0, $s5 +/* 09842C 7F0638FC 3C0644FA */ lui $a2, 0x44fa +/* 098430 7F063900 E7B80014 */ swc1 $f24, 0x14($sp) +/* 098434 7F063904 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 098438 7F063908 E7B80020 */ swc1 $f24, 0x20($sp) +/* 09843C 7F06390C E7A00010 */ swc1 $f0, 0x10($sp) +/* 098440 7F063910 E7A20018 */ swc1 $f2, 0x18($sp) +/* 098444 7F063914 0FC165A5 */ jal sub_GAME_7F059694 +/* 098448 7F063918 E7B00024 */ swc1 $f16, 0x24($sp) +/* 09844C 7F06391C 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +/* 098450 7F063920 44810000 */ mtc1 $at, $f0 +/* 098454 7F063924 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 098458 7F063928 44811000 */ mtc1 $at, $f2 +/* 09845C 7F06392C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 098460 7F063930 44819000 */ mtc1 $at, $f18 +/* 098464 7F063934 44050000 */ mfc1 $a1, $f0 +/* 098468 7F063938 44071000 */ mfc1 $a3, $f2 +/* 09846C 7F06393C 02002025 */ move $a0, $s0 +/* 098470 7F063940 3C0644FA */ lui $a2, 0x44fa +/* 098474 7F063944 E7B80014 */ swc1 $f24, 0x14($sp) +/* 098478 7F063948 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 09847C 7F06394C E7B80020 */ swc1 $f24, 0x20($sp) +/* 098480 7F063950 E7A00010 */ swc1 $f0, 0x10($sp) +/* 098484 7F063954 E7A20018 */ swc1 $f2, 0x18($sp) +/* 098488 7F063958 0FC165A5 */ jal sub_GAME_7F059694 +/* 09848C 7F06395C E7B20024 */ swc1 $f18, 0x24($sp) +/* 098490 7F063960 0FC15FF4 */ jal matrix_4x4_set_identity +/* 098494 7F063964 02602025 */ move $a0, $s3 +/* 098498 7F063968 0FC15FF4 */ jal matrix_4x4_set_identity +/* 09849C 7F06396C 02C02025 */ move $a0, $s6 +/* 0984A0 7F063970 02C02025 */ move $a0, $s6 +/* 0984A4 7F063974 0FC16008 */ jal matrix_4x4_copy +/* 0984A8 7F063978 27A502CC */ addiu $a1, $sp, 0x2cc +/* 0984AC 7F06397C 24010002 */ li $at, 2 +/* 0984B0 7F063980 5621003D */ bnel $s1, $at, .L7F063A78 +/* 0984B4 7F063984 2401000B */ li $at, 11 +/* 0984B8 7F063988 8FC10058 */ lw $at, 0x58($fp) +/* 0984BC 7F06398C 27A401C0 */ addiu $a0, $sp, 0x1c0 +/* 0984C0 7F063990 27A5034C */ addiu $a1, $sp, 0x34c +/* 0984C4 7F063994 AC810000 */ sw $at, ($a0) +/* 0984C8 7F063998 8FCF005C */ lw $t7, 0x5c($fp) +/* 0984CC 7F06399C AC8F0004 */ sw $t7, 4($a0) +/* 0984D0 7F0639A0 8FC10060 */ lw $at, 0x60($fp) +/* 0984D4 7F0639A4 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0984D8 7F0639A8 AC810008 */ sw $at, 8($a0) +/* 0984DC 7F0639AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0984E0 7F0639B0 82840000 */ lb $a0, ($s4) +/* 0984E4 7F0639B4 44822000 */ mtc1 $v0, $f4 +/* 0984E8 7F0639B8 3C018005 */ lui $at, %hi(D_80053EE8) +/* 0984EC 7F0639BC C42A3EE8 */ lwc1 $f10, %lo(D_80053EE8)($at) +/* 0984F0 7F0639C0 468021A0 */ cvt.s.w $f6, $f4 +/* 0984F4 7F0639C4 3C018005 */ lui $at, %hi(D_80053EEC) +/* 0984F8 7F0639C8 C4323EEC */ lwc1 $f18, %lo(D_80053EEC)($at) +/* 0984FC 7F0639CC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098500 7F0639D0 27A5041C */ addiu $a1, $sp, 0x41c +/* 098504 7F0639D4 46003207 */ neg.s $f8, $f6 +/* 098508 7F0639D8 44813000 */ mtc1 $at, $f6 +/* 09850C 7F0639DC 460A4402 */ mul.s $f16, $f8, $f10 +/* 098510 7F0639E0 00000000 */ nop +/* 098514 7F0639E4 46128102 */ mul.s $f4, $f16, $f18 +/* 098518 7F0639E8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09851C 7F0639EC 46062303 */ div.s $f12, $f4, $f6 +/* 098520 7F0639F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 098524 7F0639F4 82840000 */ lb $a0, ($s4) +/* 098528 7F0639F8 44824000 */ mtc1 $v0, $f8 +/* 09852C 7F0639FC 3C018005 */ lui $at, %hi(D_80053EF0) +/* 098530 7F063A00 C4323EF0 */ lwc1 $f18, %lo(D_80053EF0)($at) +/* 098534 7F063A04 468042A0 */ cvt.s.w $f10, $f8 +/* 098538 7F063A08 3C018005 */ lui $at, %hi(D_80053EF4) +/* 09853C 7F063A0C C4263EF4 */ lwc1 $f6, %lo(D_80053EF4)($at) +/* 098540 7F063A10 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098544 7F063A14 27A503DC */ addiu $a1, $sp, 0x3dc +/* 098548 7F063A18 46005407 */ neg.s $f16, $f10 +/* 09854C 7F063A1C 44815000 */ mtc1 $at, $f10 +/* 098550 7F063A20 46128102 */ mul.s $f4, $f16, $f18 +/* 098554 7F063A24 00000000 */ nop +/* 098558 7F063A28 46062202 */ mul.s $f8, $f4, $f6 +/* 09855C 7F063A2C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098560 7F063A30 460A4303 */ div.s $f12, $f8, $f10 +/* 098564 7F063A34 27A403DC */ addiu $a0, $sp, 0x3dc +/* 098568 7F063A38 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09856C 7F063A3C 27A5041C */ addiu $a1, $sp, 0x41c +/* 098570 7F063A40 27A4034C */ addiu $a0, $sp, 0x34c +/* 098574 7F063A44 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098578 7F063A48 27A5041C */ addiu $a1, $sp, 0x41c +/* 09857C 7F063A4C 02A02025 */ move $a0, $s5 +/* 098580 7F063A50 27A5041C */ addiu $a1, $sp, 0x41c +/* 098584 7F063A54 0FC16032 */ jal matrix_4x4_multiply +/* 098588 7F063A58 27A6030C */ addiu $a2, $sp, 0x30c +/* 09858C 7F063A5C 00117180 */ sll $t6, $s1, 6 +/* 098590 7F063A60 01D72821 */ addu $a1, $t6, $s7 +/* 098594 7F063A64 0FC16008 */ jal matrix_4x4_copy +/* 098598 7F063A68 27A4030C */ addiu $a0, $sp, 0x30c +/* 09859C 7F063A6C 10000208 */ b .L7F064290 +/* 0985A0 7F063A70 26310001 */ addiu $s1, $s1, 1 +/* 0985A4 7F063A74 2401000B */ li $at, 11 +.L7F063A78: +/* 0985A8 7F063A78 1621002B */ bne $s1, $at, .L7F063B28 +/* 0985AC 7F063A7C 3C0A8003 */ lui $t2, %hi(D_80035D44+0x3C) +/* 0985B0 7F063A80 254A5D80 */ addiu $t2, %lo(D_80035D44+0x3C) # addiu $t2, $t2, 0x5d80 +/* 0985B4 7F063A84 8D410000 */ lw $at, ($t2) +/* 0985B8 7F063A88 27A901A8 */ addiu $t1, $sp, 0x1a8 +/* 0985BC 7F063A8C 8D4C0004 */ lw $t4, 4($t2) +/* 0985C0 7F063A90 AD210000 */ sw $at, ($t1) +/* 0985C4 7F063A94 8D410008 */ lw $at, 8($t2) +/* 0985C8 7F063A98 AD2C0004 */ sw $t4, 4($t1) +/* 0985CC 7F063A9C 27AD01B4 */ addiu $t5, $sp, 0x1b4 +/* 0985D0 7F063AA0 AD210008 */ sw $at, 8($t1) +/* 0985D4 7F063AA4 8FC100C4 */ lw $at, 0xc4($fp) +/* 0985D8 7F063AA8 24050010 */ li $a1, 16 +/* 0985DC 7F063AAC ADA10000 */ sw $at, ($t5) +/* 0985E0 7F063AB0 8FD800C8 */ lw $t8, 0xc8($fp) +/* 0985E4 7F063AB4 ADB80004 */ sw $t8, 4($t5) +/* 0985E8 7F063AB8 8FC100CC */ lw $at, 0xcc($fp) +/* 0985EC 7F063ABC ADA10008 */ sw $at, 8($t5) +/* 0985F0 7F063AC0 0C0030C3 */ jal get_controller_buttons_held +/* 0985F4 7F063AC4 82840000 */ lb $a0, ($s4) +/* 0985F8 7F063AC8 10400004 */ beqz $v0, .L7F063ADC +/* 0985FC 7F063ACC 3C018005 */ lui $at, %hi(D_80053EF8) +/* 098600 7F063AD0 C42C3EF8 */ lwc1 $f12, %lo(D_80053EF8)($at) +/* 098604 7F063AD4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 098608 7F063AD8 02602825 */ move $a1, $s3 +.L7F063ADC: +/* 09860C 7F063ADC 3C018005 */ lui $at, %hi(D_80053EFC) +/* 098610 7F063AE0 C42C3EFC */ lwc1 $f12, %lo(D_80053EFC)($at) +/* 098614 7F063AE4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098618 7F063AE8 02402825 */ move $a1, $s2 +/* 09861C 7F063AEC 27A801B4 */ addiu $t0, $sp, 0x1b4 +/* 098620 7F063AF0 AFA80010 */ sw $t0, 0x10($sp) +/* 098624 7F063AF4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 098628 7F063AF8 02602825 */ move $a1, $s3 +/* 09862C 7F063AFC 02403025 */ move $a2, $s2 +/* 098630 7F063B00 02C03825 */ move $a3, $s6 +/* 098634 7F063B04 AFB50014 */ sw $s5, 0x14($sp) +/* 098638 7F063B08 0FC18D47 */ jal sub_GAME_7F06351C +/* 09863C 7F063B0C AFB00018 */ sw $s0, 0x18($sp) +/* 098640 7F063B10 00117980 */ sll $t7, $s1, 6 +/* 098644 7F063B14 01F72821 */ addu $a1, $t7, $s7 +/* 098648 7F063B18 0FC16008 */ jal matrix_4x4_copy +/* 09864C 7F063B1C 02002025 */ move $a0, $s0 +/* 098650 7F063B20 100001DB */ b .L7F064290 +/* 098654 7F063B24 26310001 */ addiu $s1, $s1, 1 +.L7F063B28: +/* 098658 7F063B28 24010004 */ li $at, 4 +/* 09865C 7F063B2C 16210029 */ bne $s1, $at, .L7F063BD4 +/* 098660 7F063B30 3C0B8003 */ lui $t3, %hi(D_80035D44+0x48) +/* 098664 7F063B34 256B5D8C */ addiu $t3, %lo(D_80035D44+0x48) # addiu $t3, $t3, 0x5d8c +/* 098668 7F063B38 8D610000 */ lw $at, ($t3) +/* 09866C 7F063B3C 27AE0190 */ addiu $t6, $sp, 0x190 +/* 098670 7F063B40 8D6A0004 */ lw $t2, 4($t3) +/* 098674 7F063B44 ADC10000 */ sw $at, ($t6) +/* 098678 7F063B48 8D610008 */ lw $at, 8($t3) +/* 09867C 7F063B4C ADCA0004 */ sw $t2, 4($t6) +/* 098680 7F063B50 27AC019C */ addiu $t4, $sp, 0x19c +/* 098684 7F063B54 ADC10008 */ sw $at, 8($t6) +/* 098688 7F063B58 8FC10070 */ lw $at, 0x70($fp) +/* 09868C 7F063B5C 24050008 */ li $a1, 8 +/* 098690 7F063B60 AD810000 */ sw $at, ($t4) +/* 098694 7F063B64 8FCD0074 */ lw $t5, 0x74($fp) +/* 098698 7F063B68 AD8D0004 */ sw $t5, 4($t4) +/* 09869C 7F063B6C 8FC10078 */ lw $at, 0x78($fp) +/* 0986A0 7F063B70 AD810008 */ sw $at, 8($t4) +/* 0986A4 7F063B74 0C0030C3 */ jal get_controller_buttons_held +/* 0986A8 7F063B78 82840000 */ lb $a0, ($s4) +/* 0986AC 7F063B7C 10400004 */ beqz $v0, .L7F063B90 +/* 0986B0 7F063B80 4600B306 */ mov.s $f12, $f22 +/* 0986B4 7F063B84 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 0986B8 7F063B88 46148480 */ add.s $f18, $f16, $f20 +/* 0986BC 7F063B8C E7B20194 */ swc1 $f18, 0x194($sp) +.L7F063B90: +/* 0986C0 7F063B90 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0986C4 7F063B94 02402825 */ move $a1, $s2 +/* 0986C8 7F063B98 27B8019C */ addiu $t8, $sp, 0x19c +/* 0986CC 7F063B9C AFB80010 */ sw $t8, 0x10($sp) +/* 0986D0 7F063BA0 27A40190 */ addiu $a0, $sp, 0x190 +/* 0986D4 7F063BA4 02602825 */ move $a1, $s3 +/* 0986D8 7F063BA8 02403025 */ move $a2, $s2 +/* 0986DC 7F063BAC 02C03825 */ move $a3, $s6 +/* 0986E0 7F063BB0 AFB50014 */ sw $s5, 0x14($sp) +/* 0986E4 7F063BB4 0FC18D47 */ jal sub_GAME_7F06351C +/* 0986E8 7F063BB8 AFB00018 */ sw $s0, 0x18($sp) +/* 0986EC 7F063BBC 00114180 */ sll $t0, $s1, 6 +/* 0986F0 7F063BC0 01172821 */ addu $a1, $t0, $s7 +/* 0986F4 7F063BC4 0FC16008 */ jal matrix_4x4_copy +/* 0986F8 7F063BC8 02002025 */ move $a0, $s0 +/* 0986FC 7F063BCC 100001B0 */ b .L7F064290 +/* 098700 7F063BD0 26310001 */ addiu $s1, $s1, 1 +.L7F063BD4: +/* 098704 7F063BD4 24010005 */ li $at, 5 +/* 098708 7F063BD8 16210029 */ bne $s1, $at, .L7F063C80 +/* 09870C 7F063BDC 3C098003 */ lui $t1, %hi(D_80035D44+0x54) +/* 098710 7F063BE0 25295D98 */ addiu $t1, %lo(D_80035D44+0x54) # addiu $t1, $t1, 0x5d98 +/* 098714 7F063BE4 8D210000 */ lw $at, ($t1) +/* 098718 7F063BE8 27AF0178 */ addiu $t7, $sp, 0x178 +/* 09871C 7F063BEC 8D2B0004 */ lw $t3, 4($t1) +/* 098720 7F063BF0 ADE10000 */ sw $at, ($t7) +/* 098724 7F063BF4 8D210008 */ lw $at, 8($t1) +/* 098728 7F063BF8 ADEB0004 */ sw $t3, 4($t7) +/* 09872C 7F063BFC 27AA0184 */ addiu $t2, $sp, 0x184 +/* 098730 7F063C00 ADE10008 */ sw $at, 8($t7) +/* 098734 7F063C04 8FC1007C */ lw $at, 0x7c($fp) +/* 098738 7F063C08 24050004 */ li $a1, 4 +/* 09873C 7F063C0C AD410000 */ sw $at, ($t2) +/* 098740 7F063C10 8FCC0080 */ lw $t4, 0x80($fp) +/* 098744 7F063C14 AD4C0004 */ sw $t4, 4($t2) +/* 098748 7F063C18 8FC10084 */ lw $at, 0x84($fp) +/* 09874C 7F063C1C AD410008 */ sw $at, 8($t2) +/* 098750 7F063C20 0C0030C3 */ jal get_controller_buttons_held +/* 098754 7F063C24 82840000 */ lb $a0, ($s4) +/* 098758 7F063C28 10400004 */ beqz $v0, .L7F063C3C +/* 09875C 7F063C2C 4600B306 */ mov.s $f12, $f22 +/* 098760 7F063C30 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 098764 7F063C34 46142180 */ add.s $f6, $f4, $f20 +/* 098768 7F063C38 E7A6017C */ swc1 $f6, 0x17c($sp) +.L7F063C3C: +/* 09876C 7F063C3C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098770 7F063C40 02402825 */ move $a1, $s2 +/* 098774 7F063C44 27AD0184 */ addiu $t5, $sp, 0x184 +/* 098778 7F063C48 AFAD0010 */ sw $t5, 0x10($sp) +/* 09877C 7F063C4C 27A40178 */ addiu $a0, $sp, 0x178 +/* 098780 7F063C50 02602825 */ move $a1, $s3 +/* 098784 7F063C54 02403025 */ move $a2, $s2 +/* 098788 7F063C58 02C03825 */ move $a3, $s6 +/* 09878C 7F063C5C AFB50014 */ sw $s5, 0x14($sp) +/* 098790 7F063C60 0FC18D47 */ jal sub_GAME_7F06351C +/* 098794 7F063C64 AFB00018 */ sw $s0, 0x18($sp) +/* 098798 7F063C68 0011C180 */ sll $t8, $s1, 6 +/* 09879C 7F063C6C 03172821 */ addu $a1, $t8, $s7 +/* 0987A0 7F063C70 0FC16008 */ jal matrix_4x4_copy +/* 0987A4 7F063C74 02002025 */ move $a0, $s0 +/* 0987A8 7F063C78 10000185 */ b .L7F064290 +/* 0987AC 7F063C7C 26310001 */ addiu $s1, $s1, 1 +.L7F063C80: +/* 0987B0 7F063C80 24010006 */ li $at, 6 +/* 0987B4 7F063C84 16210029 */ bne $s1, $at, .L7F063D2C +/* 0987B8 7F063C88 3C0E8003 */ lui $t6, %hi(D_80035D44+0x60) +/* 0987BC 7F063C8C 25CE5DA4 */ addiu $t6, %lo(D_80035D44+0x60) # addiu $t6, $t6, 0x5da4 +/* 0987C0 7F063C90 8DC10000 */ lw $at, ($t6) +/* 0987C4 7F063C94 27A80160 */ addiu $t0, $sp, 0x160 +/* 0987C8 7F063C98 8DC90004 */ lw $t1, 4($t6) +/* 0987CC 7F063C9C AD010000 */ sw $at, ($t0) +/* 0987D0 7F063CA0 8DC10008 */ lw $at, 8($t6) +/* 0987D4 7F063CA4 AD090004 */ sw $t1, 4($t0) +/* 0987D8 7F063CA8 27AB016C */ addiu $t3, $sp, 0x16c +/* 0987DC 7F063CAC AD010008 */ sw $at, 8($t0) +/* 0987E0 7F063CB0 8FC10088 */ lw $at, 0x88($fp) +/* 0987E4 7F063CB4 24050002 */ li $a1, 2 +/* 0987E8 7F063CB8 AD610000 */ sw $at, ($t3) +/* 0987EC 7F063CBC 8FCA008C */ lw $t2, 0x8c($fp) +/* 0987F0 7F063CC0 AD6A0004 */ sw $t2, 4($t3) +/* 0987F4 7F063CC4 8FC10090 */ lw $at, 0x90($fp) +/* 0987F8 7F063CC8 AD610008 */ sw $at, 8($t3) +/* 0987FC 7F063CCC 0C0030C3 */ jal get_controller_buttons_held +/* 098800 7F063CD0 82840000 */ lb $a0, ($s4) +/* 098804 7F063CD4 10400004 */ beqz $v0, .L7F063CE8 +/* 098808 7F063CD8 4600B306 */ mov.s $f12, $f22 +/* 09880C 7F063CDC C7A80164 */ lwc1 $f8, 0x164($sp) +/* 098810 7F063CE0 46144280 */ add.s $f10, $f8, $f20 +/* 098814 7F063CE4 E7AA0164 */ swc1 $f10, 0x164($sp) +.L7F063CE8: +/* 098818 7F063CE8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09881C 7F063CEC 02402825 */ move $a1, $s2 +/* 098820 7F063CF0 27AC016C */ addiu $t4, $sp, 0x16c +/* 098824 7F063CF4 AFAC0010 */ sw $t4, 0x10($sp) +/* 098828 7F063CF8 27A40160 */ addiu $a0, $sp, 0x160 +/* 09882C 7F063CFC 02602825 */ move $a1, $s3 +/* 098830 7F063D00 02403025 */ move $a2, $s2 +/* 098834 7F063D04 02C03825 */ move $a3, $s6 +/* 098838 7F063D08 AFB50014 */ sw $s5, 0x14($sp) +/* 09883C 7F063D0C 0FC18D47 */ jal sub_GAME_7F06351C +/* 098840 7F063D10 AFB00018 */ sw $s0, 0x18($sp) +/* 098844 7F063D14 00116980 */ sll $t5, $s1, 6 +/* 098848 7F063D18 01B72821 */ addu $a1, $t5, $s7 +/* 09884C 7F063D1C 0FC16008 */ jal matrix_4x4_copy +/* 098850 7F063D20 02002025 */ move $a0, $s0 +/* 098854 7F063D24 1000015A */ b .L7F064290 +/* 098858 7F063D28 26310001 */ addiu $s1, $s1, 1 +.L7F063D2C: +/* 09885C 7F063D2C 24010007 */ li $at, 7 +/* 098860 7F063D30 16210029 */ bne $s1, $at, .L7F063DD8 +/* 098864 7F063D34 3C0F8003 */ lui $t7, %hi(D_80035D44+0x6C) +/* 098868 7F063D38 25EF5DB0 */ addiu $t7, %lo(D_80035D44+0x6C) # addiu $t7, $t7, 0x5db0 +/* 09886C 7F063D3C 8DE10000 */ lw $at, ($t7) +/* 098870 7F063D40 27B80148 */ addiu $t8, $sp, 0x148 +/* 098874 7F063D44 8DEE0004 */ lw $t6, 4($t7) +/* 098878 7F063D48 AF010000 */ sw $at, ($t8) +/* 09887C 7F063D4C 8DE10008 */ lw $at, 8($t7) +/* 098880 7F063D50 AF0E0004 */ sw $t6, 4($t8) +/* 098884 7F063D54 27A90154 */ addiu $t1, $sp, 0x154 +/* 098888 7F063D58 AF010008 */ sw $at, 8($t8) +/* 09888C 7F063D5C 8FC10094 */ lw $at, 0x94($fp) +/* 098890 7F063D60 24050001 */ li $a1, 1 +/* 098894 7F063D64 AD210000 */ sw $at, ($t1) +/* 098898 7F063D68 8FCB0098 */ lw $t3, 0x98($fp) +/* 09889C 7F063D6C AD2B0004 */ sw $t3, 4($t1) +/* 0988A0 7F063D70 8FC1009C */ lw $at, 0x9c($fp) +/* 0988A4 7F063D74 AD210008 */ sw $at, 8($t1) +/* 0988A8 7F063D78 0C0030C3 */ jal get_controller_buttons_held +/* 0988AC 7F063D7C 82840000 */ lb $a0, ($s4) +/* 0988B0 7F063D80 10400004 */ beqz $v0, .L7F063D94 +/* 0988B4 7F063D84 4600B306 */ mov.s $f12, $f22 +/* 0988B8 7F063D88 C7B0014C */ lwc1 $f16, 0x14c($sp) +/* 0988BC 7F063D8C 46148480 */ add.s $f18, $f16, $f20 +/* 0988C0 7F063D90 E7B2014C */ swc1 $f18, 0x14c($sp) +.L7F063D94: +/* 0988C4 7F063D94 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0988C8 7F063D98 02402825 */ move $a1, $s2 +/* 0988CC 7F063D9C 27AA0154 */ addiu $t2, $sp, 0x154 +/* 0988D0 7F063DA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0988D4 7F063DA4 27A40148 */ addiu $a0, $sp, 0x148 +/* 0988D8 7F063DA8 02602825 */ move $a1, $s3 +/* 0988DC 7F063DAC 02403025 */ move $a2, $s2 +/* 0988E0 7F063DB0 02C03825 */ move $a3, $s6 +/* 0988E4 7F063DB4 AFB50014 */ sw $s5, 0x14($sp) +/* 0988E8 7F063DB8 0FC18D47 */ jal sub_GAME_7F06351C +/* 0988EC 7F063DBC AFB00018 */ sw $s0, 0x18($sp) +/* 0988F0 7F063DC0 00116180 */ sll $t4, $s1, 6 +/* 0988F4 7F063DC4 01972821 */ addu $a1, $t4, $s7 +/* 0988F8 7F063DC8 0FC16008 */ jal matrix_4x4_copy +/* 0988FC 7F063DCC 02002025 */ move $a0, $s0 +/* 098900 7F063DD0 1000012F */ b .L7F064290 +/* 098904 7F063DD4 26310001 */ addiu $s1, $s1, 1 +.L7F063DD8: +/* 098908 7F063DD8 24010009 */ li $at, 9 +/* 09890C 7F063DDC 16210029 */ bne $s1, $at, .L7F063E84 +/* 098910 7F063DE0 3C088003 */ lui $t0, %hi(D_80035D44+0x78) +/* 098914 7F063DE4 25085DBC */ addiu $t0, %lo(D_80035D44+0x78) # addiu $t0, $t0, 0x5dbc +/* 098918 7F063DE8 8D010000 */ lw $at, ($t0) +/* 09891C 7F063DEC 27AD0130 */ addiu $t5, $sp, 0x130 +/* 098920 7F063DF0 8D0F0004 */ lw $t7, 4($t0) +/* 098924 7F063DF4 ADA10000 */ sw $at, ($t5) +/* 098928 7F063DF8 8D010008 */ lw $at, 8($t0) +/* 09892C 7F063DFC ADAF0004 */ sw $t7, 4($t5) +/* 098930 7F063E00 27AE013C */ addiu $t6, $sp, 0x13c +/* 098934 7F063E04 ADA10008 */ sw $at, 8($t5) +/* 098938 7F063E08 8FC100AC */ lw $at, 0xac($fp) +/* 09893C 7F063E0C 24054000 */ li $a1, 16384 +/* 098940 7F063E10 ADC10000 */ sw $at, ($t6) +/* 098944 7F063E14 8FC900B0 */ lw $t1, 0xb0($fp) +/* 098948 7F063E18 ADC90004 */ sw $t1, 4($t6) +/* 09894C 7F063E1C 8FC100B4 */ lw $at, 0xb4($fp) +/* 098950 7F063E20 ADC10008 */ sw $at, 8($t6) +/* 098954 7F063E24 0C0030C3 */ jal get_controller_buttons_held +/* 098958 7F063E28 82840000 */ lb $a0, ($s4) +/* 09895C 7F063E2C 10400004 */ beqz $v0, .L7F063E40 +/* 098960 7F063E30 4600B306 */ mov.s $f12, $f22 +/* 098964 7F063E34 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 098968 7F063E38 46142180 */ add.s $f6, $f4, $f20 +/* 09896C 7F063E3C E7A60134 */ swc1 $f6, 0x134($sp) +.L7F063E40: +/* 098970 7F063E40 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098974 7F063E44 02402825 */ move $a1, $s2 +/* 098978 7F063E48 27AB013C */ addiu $t3, $sp, 0x13c +/* 09897C 7F063E4C AFAB0010 */ sw $t3, 0x10($sp) +/* 098980 7F063E50 27A40130 */ addiu $a0, $sp, 0x130 +/* 098984 7F063E54 02602825 */ move $a1, $s3 +/* 098988 7F063E58 02403025 */ move $a2, $s2 +/* 09898C 7F063E5C 02C03825 */ move $a3, $s6 +/* 098990 7F063E60 AFB50014 */ sw $s5, 0x14($sp) +/* 098994 7F063E64 0FC18D47 */ jal sub_GAME_7F06351C +/* 098998 7F063E68 AFB00018 */ sw $s0, 0x18($sp) +/* 09899C 7F063E6C 00115180 */ sll $t2, $s1, 6 +/* 0989A0 7F063E70 01572821 */ addu $a1, $t2, $s7 +/* 0989A4 7F063E74 0FC16008 */ jal matrix_4x4_copy +/* 0989A8 7F063E78 02002025 */ move $a0, $s0 +/* 0989AC 7F063E7C 10000104 */ b .L7F064290 +/* 0989B0 7F063E80 26310001 */ addiu $s1, $s1, 1 +.L7F063E84: +/* 0989B4 7F063E84 24010008 */ li $at, 8 +/* 0989B8 7F063E88 16210029 */ bne $s1, $at, .L7F063F30 +/* 0989BC 7F063E8C 3C188003 */ lui $t8, %hi(D_80035D44+0x84) +/* 0989C0 7F063E90 27185DC8 */ addiu $t8, %lo(D_80035D44+0x84) # addiu $t8, $t8, 0x5dc8 +/* 0989C4 7F063E94 8F010000 */ lw $at, ($t8) +/* 0989C8 7F063E98 27AC0118 */ addiu $t4, $sp, 0x118 +/* 0989CC 7F063E9C 8F080004 */ lw $t0, 4($t8) +/* 0989D0 7F063EA0 AD810000 */ sw $at, ($t4) +/* 0989D4 7F063EA4 8F010008 */ lw $at, 8($t8) +/* 0989D8 7F063EA8 AD880004 */ sw $t0, 4($t4) +/* 0989DC 7F063EAC 27AF0124 */ addiu $t7, $sp, 0x124 +/* 0989E0 7F063EB0 AD810008 */ sw $at, 8($t4) +/* 0989E4 7F063EB4 8FC100A0 */ lw $at, 0xa0($fp) +/* 0989E8 7F063EB8 34058000 */ li $a1, 32768 +/* 0989EC 7F063EBC ADE10000 */ sw $at, ($t7) +/* 0989F0 7F063EC0 8FCE00A4 */ lw $t6, 0xa4($fp) +/* 0989F4 7F063EC4 ADEE0004 */ sw $t6, 4($t7) +/* 0989F8 7F063EC8 8FC100A8 */ lw $at, 0xa8($fp) +/* 0989FC 7F063ECC ADE10008 */ sw $at, 8($t7) +/* 098A00 7F063ED0 0C0030C3 */ jal get_controller_buttons_held +/* 098A04 7F063ED4 82840000 */ lb $a0, ($s4) +/* 098A08 7F063ED8 10400004 */ beqz $v0, .L7F063EEC +/* 098A0C 7F063EDC 4600B306 */ mov.s $f12, $f22 +/* 098A10 7F063EE0 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 098A14 7F063EE4 46144280 */ add.s $f10, $f8, $f20 +/* 098A18 7F063EE8 E7AA011C */ swc1 $f10, 0x11c($sp) +.L7F063EEC: +/* 098A1C 7F063EEC 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098A20 7F063EF0 02402825 */ move $a1, $s2 +/* 098A24 7F063EF4 27A90124 */ addiu $t1, $sp, 0x124 +/* 098A28 7F063EF8 AFA90010 */ sw $t1, 0x10($sp) +/* 098A2C 7F063EFC 27A40118 */ addiu $a0, $sp, 0x118 +/* 098A30 7F063F00 02602825 */ move $a1, $s3 +/* 098A34 7F063F04 02403025 */ move $a2, $s2 +/* 098A38 7F063F08 02C03825 */ move $a3, $s6 +/* 098A3C 7F063F0C AFB50014 */ sw $s5, 0x14($sp) +/* 098A40 7F063F10 0FC18D47 */ jal sub_GAME_7F06351C +/* 098A44 7F063F14 AFB00018 */ sw $s0, 0x18($sp) +/* 098A48 7F063F18 00115980 */ sll $t3, $s1, 6 +/* 098A4C 7F063F1C 01772821 */ addu $a1, $t3, $s7 +/* 098A50 7F063F20 0FC16008 */ jal matrix_4x4_copy +/* 098A54 7F063F24 02002025 */ move $a0, $s0 +/* 098A58 7F063F28 100000D9 */ b .L7F064290 +/* 098A5C 7F063F2C 26310001 */ addiu $s1, $s1, 1 +.L7F063F30: +/* 098A60 7F063F30 2401000A */ li $at, 10 +/* 098A64 7F063F34 1621002B */ bne $s1, $at, .L7F063FE4 +/* 098A68 7F063F38 3C0D8003 */ lui $t5, %hi(D_80035D44+0x90) +/* 098A6C 7F063F3C 25AD5DD4 */ addiu $t5, %lo(D_80035D44+0x90) # addiu $t5, $t5, 0x5dd4 +/* 098A70 7F063F40 8DA10000 */ lw $at, ($t5) +/* 098A74 7F063F44 27AA0100 */ addiu $t2, $sp, 0x100 +/* 098A78 7F063F48 8DB80004 */ lw $t8, 4($t5) +/* 098A7C 7F063F4C AD410000 */ sw $at, ($t2) +/* 098A80 7F063F50 8DA10008 */ lw $at, 8($t5) +/* 098A84 7F063F54 AD580004 */ sw $t8, 4($t2) +/* 098A88 7F063F58 27A8010C */ addiu $t0, $sp, 0x10c +/* 098A8C 7F063F5C AD410008 */ sw $at, 8($t2) +/* 098A90 7F063F60 8FC100B8 */ lw $at, 0xb8($fp) +/* 098A94 7F063F64 24050020 */ li $a1, 32 +/* 098A98 7F063F68 AD010000 */ sw $at, ($t0) +/* 098A9C 7F063F6C 8FCF00BC */ lw $t7, 0xbc($fp) +/* 098AA0 7F063F70 AD0F0004 */ sw $t7, 4($t0) +/* 098AA4 7F063F74 8FC100C0 */ lw $at, 0xc0($fp) +/* 098AA8 7F063F78 AD010008 */ sw $at, 8($t0) +/* 098AAC 7F063F7C 0C0030C3 */ jal get_controller_buttons_held +/* 098AB0 7F063F80 82840000 */ lb $a0, ($s4) +/* 098AB4 7F063F84 10400004 */ beqz $v0, .L7F063F98 +/* 098AB8 7F063F88 3C018005 */ lui $at, %hi(D_80053F00) +/* 098ABC 7F063F8C C42C3F00 */ lwc1 $f12, %lo(D_80053F00)($at) +/* 098AC0 7F063F90 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 098AC4 7F063F94 02602825 */ move $a1, $s3 +.L7F063F98: +/* 098AC8 7F063F98 3C018005 */ lui $at, %hi(D_80053F04) +/* 098ACC 7F063F9C C42C3F04 */ lwc1 $f12, %lo(D_80053F04)($at) +/* 098AD0 7F063FA0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098AD4 7F063FA4 02402825 */ move $a1, $s2 +/* 098AD8 7F063FA8 27AE010C */ addiu $t6, $sp, 0x10c +/* 098ADC 7F063FAC AFAE0010 */ sw $t6, 0x10($sp) +/* 098AE0 7F063FB0 27A40100 */ addiu $a0, $sp, 0x100 +/* 098AE4 7F063FB4 02602825 */ move $a1, $s3 +/* 098AE8 7F063FB8 02403025 */ move $a2, $s2 +/* 098AEC 7F063FBC 02C03825 */ move $a3, $s6 +/* 098AF0 7F063FC0 AFB50014 */ sw $s5, 0x14($sp) +/* 098AF4 7F063FC4 0FC18D47 */ jal sub_GAME_7F06351C +/* 098AF8 7F063FC8 AFB00018 */ sw $s0, 0x18($sp) +/* 098AFC 7F063FCC 00114980 */ sll $t1, $s1, 6 +/* 098B00 7F063FD0 01372821 */ addu $a1, $t1, $s7 +/* 098B04 7F063FD4 0FC16008 */ jal matrix_4x4_copy +/* 098B08 7F063FD8 02002025 */ move $a0, $s0 +/* 098B0C 7F063FDC 100000AC */ b .L7F064290 +/* 098B10 7F063FE0 26310001 */ addiu $s1, $s1, 1 +.L7F063FE4: +/* 098B14 7F063FE4 24010003 */ li $at, 3 +/* 098B18 7F063FE8 1621004C */ bne $s1, $at, .L7F06411C +/* 098B1C 7F063FEC 3C0C8003 */ lui $t4, %hi(D_80035D44+0x9C) +/* 098B20 7F063FF0 258C5DE0 */ addiu $t4, %lo(D_80035D44+0x9C) # addiu $t4, $t4, 0x5de0 +/* 098B24 7F063FF4 8D810000 */ lw $at, ($t4) +/* 098B28 7F063FF8 27AB00A8 */ addiu $t3, $sp, 0xa8 +/* 098B2C 7F063FFC 8D8D0004 */ lw $t5, 4($t4) +/* 098B30 7F064000 AD610000 */ sw $at, ($t3) +/* 098B34 7F064004 8D810008 */ lw $at, 8($t4) +/* 098B38 7F064008 AD6D0004 */ sw $t5, 4($t3) +/* 098B3C 7F06400C 27B800F4 */ addiu $t8, $sp, 0xf4 +/* 098B40 7F064010 AD610008 */ sw $at, 8($t3) +/* 098B44 7F064014 8FC10064 */ lw $at, 0x64($fp) +/* 098B48 7F064018 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 098B4C 7F06401C AF010000 */ sw $at, ($t8) +/* 098B50 7F064020 8FC80068 */ lw $t0, 0x68($fp) +/* 098B54 7F064024 AF080004 */ sw $t0, 4($t8) +/* 098B58 7F064028 8FC1006C */ lw $at, 0x6c($fp) +/* 098B5C 7F06402C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 098B60 7F064030 AF010008 */ sw $at, 8($t8) +/* 098B64 7F064034 82840000 */ lb $a0, ($s4) +/* 098B68 7F064038 0C0030C3 */ jal get_controller_buttons_held +/* 098B6C 7F06403C 24050800 */ li $a1, 2048 +/* 098B70 7F064040 10400007 */ beqz $v0, .L7F064060 +/* 098B74 7F064044 24050400 */ li $a1, 1024 +/* 098B78 7F064048 3C018005 */ lui $at, %hi(D_80053F08) +/* 098B7C 7F06404C C42C3F08 */ lwc1 $f12, %lo(D_80053F08)($at) +/* 098B80 7F064050 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098B84 7F064054 02602825 */ move $a1, $s3 +/* 098B88 7F064058 10000009 */ b .L7F064080 +/* 098B8C 7F06405C 82840000 */ lb $a0, ($s4) +.L7F064060: +/* 098B90 7F064060 0C0030C3 */ jal get_controller_buttons_held +/* 098B94 7F064064 82840000 */ lb $a0, ($s4) +/* 098B98 7F064068 10400004 */ beqz $v0, .L7F06407C +/* 098B9C 7F06406C 3C018005 */ lui $at, %hi(D_80053F0C) +/* 098BA0 7F064070 C42C3F0C */ lwc1 $f12, %lo(D_80053F0C)($at) +/* 098BA4 7F064074 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098BA8 7F064078 02602825 */ move $a1, $s3 +.L7F06407C: +/* 098BAC 7F06407C 82840000 */ lb $a0, ($s4) +.L7F064080: +/* 098BB0 7F064080 0C0030C3 */ jal get_controller_buttons_held +/* 098BB4 7F064084 24050200 */ li $a1, 512 +/* 098BB8 7F064088 10400007 */ beqz $v0, .L7F0640A8 +/* 098BBC 7F06408C 24050100 */ li $a1, 256 +/* 098BC0 7F064090 3C018005 */ lui $at, %hi(D_80053F10) +/* 098BC4 7F064094 C42C3F10 */ lwc1 $f12, %lo(D_80053F10)($at) +/* 098BC8 7F064098 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098BCC 7F06409C 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 098BD0 7F0640A0 10000009 */ b .L7F0640C8 +/* 098BD4 7F0640A4 27A400B4 */ addiu $a0, $sp, 0xb4 +.L7F0640A8: +/* 098BD8 7F0640A8 0C0030C3 */ jal get_controller_buttons_held +/* 098BDC 7F0640AC 82840000 */ lb $a0, ($s4) +/* 098BE0 7F0640B0 10400004 */ beqz $v0, .L7F0640C4 +/* 098BE4 7F0640B4 3C018005 */ lui $at, %hi(D_80053F14) +/* 098BE8 7F0640B8 C42C3F14 */ lwc1 $f12, %lo(D_80053F14)($at) +/* 098BEC 7F0640BC 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098BF0 7F0640C0 27A500B4 */ addiu $a1, $sp, 0xb4 +.L7F0640C4: +/* 098BF4 7F0640C4 27A400B4 */ addiu $a0, $sp, 0xb4 +.L7F0640C8: +/* 098BF8 7F0640C8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098BFC 7F0640CC 02602825 */ move $a1, $s3 +/* 098C00 7F0640D0 3C018005 */ lui $at, %hi(D_80053F18) +/* 098C04 7F0640D4 C42C3F18 */ lwc1 $f12, %lo(D_80053F18)($at) +/* 098C08 7F0640D8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098C0C 7F0640DC 02402825 */ move $a1, $s2 +/* 098C10 7F0640E0 27AF00F4 */ addiu $t7, $sp, 0xf4 +/* 098C14 7F0640E4 AFAF0010 */ sw $t7, 0x10($sp) +/* 098C18 7F0640E8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 098C1C 7F0640EC 02602825 */ move $a1, $s3 +/* 098C20 7F0640F0 02403025 */ move $a2, $s2 +/* 098C24 7F0640F4 02C03825 */ move $a3, $s6 +/* 098C28 7F0640F8 AFB50014 */ sw $s5, 0x14($sp) +/* 098C2C 7F0640FC 0FC18D47 */ jal sub_GAME_7F06351C +/* 098C30 7F064100 AFB00018 */ sw $s0, 0x18($sp) +/* 098C34 7F064104 00117180 */ sll $t6, $s1, 6 +/* 098C38 7F064108 01D72821 */ addu $a1, $t6, $s7 +/* 098C3C 7F06410C 0FC16008 */ jal matrix_4x4_copy +/* 098C40 7F064110 02002025 */ move $a0, $s0 +/* 098C44 7F064114 1000005E */ b .L7F064290 +/* 098C48 7F064118 26310001 */ addiu $s1, $s1, 1 +.L7F06411C: +/* 098C4C 7F06411C 24010001 */ li $at, 1 +/* 098C50 7F064120 16210029 */ bne $s1, $at, .L7F0641C8 +/* 098C54 7F064124 3C0A8003 */ lui $t2, %hi(D_80035D44+0xA8) +/* 098C58 7F064128 254A5DEC */ addiu $t2, %lo(D_80035D44+0xA8) # addiu $t2, $t2, 0x5dec +/* 098C5C 7F06412C 8D410000 */ lw $at, ($t2) +/* 098C60 7F064130 27A90090 */ addiu $t1, $sp, 0x90 +/* 098C64 7F064134 8D4C0004 */ lw $t4, 4($t2) +/* 098C68 7F064138 AD210000 */ sw $at, ($t1) +/* 098C6C 7F06413C 8D410008 */ lw $at, 8($t2) +/* 098C70 7F064140 AD2C0004 */ sw $t4, 4($t1) +/* 098C74 7F064144 27AD009C */ addiu $t5, $sp, 0x9c +/* 098C78 7F064148 AD210008 */ sw $at, 8($t1) +/* 098C7C 7F06414C 8FC1004C */ lw $at, 0x4c($fp) +/* 098C80 7F064150 24051000 */ li $a1, 4096 +/* 098C84 7F064154 ADA10000 */ sw $at, ($t5) +/* 098C88 7F064158 8FD80050 */ lw $t8, 0x50($fp) +/* 098C8C 7F06415C ADB80004 */ sw $t8, 4($t5) +/* 098C90 7F064160 8FC10054 */ lw $at, 0x54($fp) +/* 098C94 7F064164 ADA10008 */ sw $at, 8($t5) +/* 098C98 7F064168 0C0030C3 */ jal get_controller_buttons_held +/* 098C9C 7F06416C 82840000 */ lb $a0, ($s4) +/* 098CA0 7F064170 10400004 */ beqz $v0, .L7F064184 +/* 098CA4 7F064174 4600B306 */ mov.s $f12, $f22 +/* 098CA8 7F064178 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 098CAC 7F06417C 46148480 */ add.s $f18, $f16, $f20 +/* 098CB0 7F064180 E7B20094 */ swc1 $f18, 0x94($sp) +.L7F064184: +/* 098CB4 7F064184 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098CB8 7F064188 02402825 */ move $a1, $s2 +/* 098CBC 7F06418C 27A8009C */ addiu $t0, $sp, 0x9c +/* 098CC0 7F064190 AFA80010 */ sw $t0, 0x10($sp) +/* 098CC4 7F064194 27A40090 */ addiu $a0, $sp, 0x90 +/* 098CC8 7F064198 02602825 */ move $a1, $s3 +/* 098CCC 7F06419C 02403025 */ move $a2, $s2 +/* 098CD0 7F0641A0 02C03825 */ move $a3, $s6 +/* 098CD4 7F0641A4 AFB50014 */ sw $s5, 0x14($sp) +/* 098CD8 7F0641A8 0FC18D47 */ jal sub_GAME_7F06351C +/* 098CDC 7F0641AC AFB00018 */ sw $s0, 0x18($sp) +/* 098CE0 7F0641B0 00117980 */ sll $t7, $s1, 6 +/* 098CE4 7F0641B4 01F72821 */ addu $a1, $t7, $s7 +/* 098CE8 7F0641B8 0FC16008 */ jal matrix_4x4_copy +/* 098CEC 7F0641BC 02002025 */ move $a0, $s0 +/* 098CF0 7F0641C0 10000033 */ b .L7F064290 +/* 098CF4 7F0641C4 26310001 */ addiu $s1, $s1, 1 +.L7F0641C8: +/* 098CF8 7F0641C8 2401000C */ li $at, 12 +/* 098CFC 7F0641CC 1621002C */ bne $s1, $at, .L7F064280 +/* 098D00 7F0641D0 8FA4053C */ lw $a0, 0x53c($sp) +/* 098D04 7F0641D4 3C0B8003 */ lui $t3, %hi(D_80035D44+0xB4) +/* 098D08 7F0641D8 256B5DF8 */ addiu $t3, %lo(D_80035D44+0xB4) # addiu $t3, $t3, 0x5df8 +/* 098D0C 7F0641DC 8D610000 */ lw $at, ($t3) +/* 098D10 7F0641E0 27AE0078 */ addiu $t6, $sp, 0x78 +/* 098D14 7F0641E4 8D6A0004 */ lw $t2, 4($t3) +/* 098D18 7F0641E8 ADC10000 */ sw $at, ($t6) +/* 098D1C 7F0641EC 8D610008 */ lw $at, 8($t3) +/* 098D20 7F0641F0 ADCA0004 */ sw $t2, 4($t6) +/* 098D24 7F0641F4 27AC0084 */ addiu $t4, $sp, 0x84 +/* 098D28 7F0641F8 ADC10008 */ sw $at, 8($t6) +/* 098D2C 7F0641FC 8FC100D0 */ lw $at, 0xd0($fp) +/* 098D30 7F064200 24052000 */ li $a1, 8192 +/* 098D34 7F064204 AD810000 */ sw $at, ($t4) +/* 098D38 7F064208 8FCD00D4 */ lw $t5, 0xd4($fp) +/* 098D3C 7F06420C AD8D0004 */ sw $t5, 4($t4) +/* 098D40 7F064210 8FC100D8 */ lw $at, 0xd8($fp) +/* 098D44 7F064214 AD810008 */ sw $at, 8($t4) +/* 098D48 7F064218 0C0030C3 */ jal get_controller_buttons_held +/* 098D4C 7F06421C 82840000 */ lb $a0, ($s4) +/* 098D50 7F064220 10400004 */ beqz $v0, .L7F064234 +/* 098D54 7F064224 3C018005 */ lui $at, %hi(D_80053F1C) +/* 098D58 7F064228 C42C3F1C */ lwc1 $f12, %lo(D_80053F1C)($at) +/* 098D5C 7F06422C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098D60 7F064230 02602825 */ move $a1, $s3 +.L7F064234: +/* 098D64 7F064234 3C018005 */ lui $at, %hi(D_80053F20) +/* 098D68 7F064238 C42C3F20 */ lwc1 $f12, %lo(D_80053F20)($at) +/* 098D6C 7F06423C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098D70 7F064240 02402825 */ move $a1, $s2 +/* 098D74 7F064244 27B80084 */ addiu $t8, $sp, 0x84 +/* 098D78 7F064248 AFB80010 */ sw $t8, 0x10($sp) +/* 098D7C 7F06424C 27A40078 */ addiu $a0, $sp, 0x78 +/* 098D80 7F064250 02602825 */ move $a1, $s3 +/* 098D84 7F064254 02403025 */ move $a2, $s2 +/* 098D88 7F064258 02C03825 */ move $a3, $s6 +/* 098D8C 7F06425C AFB50014 */ sw $s5, 0x14($sp) +/* 098D90 7F064260 0FC18D47 */ jal sub_GAME_7F06351C +/* 098D94 7F064264 AFB00018 */ sw $s0, 0x18($sp) +/* 098D98 7F064268 00114180 */ sll $t0, $s1, 6 +/* 098D9C 7F06426C 01172821 */ addu $a1, $t0, $s7 +/* 098DA0 7F064270 0FC16008 */ jal matrix_4x4_copy +/* 098DA4 7F064274 02002025 */ move $a0, $s0 +/* 098DA8 7F064278 10000005 */ b .L7F064290 +/* 098DAC 7F06427C 26310001 */ addiu $s1, $s1, 1 +.L7F064280: +/* 098DB0 7F064280 00117980 */ sll $t7, $s1, 6 +/* 098DB4 7F064284 0FC16008 */ jal matrix_4x4_copy +/* 098DB8 7F064288 01F72821 */ addu $a1, $t7, $s7 +/* 098DBC 7F06428C 26310001 */ addiu $s1, $s1, 1 +.L7F064290: +/* 098DC0 7F064290 2A21000D */ slti $at, $s1, 0xd +/* 098DC4 7F064294 5420FD91 */ bnezl $at, .L7F0638DC +/* 098DC8 7F064298 3C01C0A0 */ lui $at, 0xc0a0 +/* 098DCC 7F06429C 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 098DD0 7F0642A0 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 098DD4 7F0642A4 8FA90538 */ lw $t1, 0x538($sp) +/* 098DD8 7F0642A8 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 098DDC 7F0642AC 27A504D8 */ addiu $a1, $sp, 0x4d8 +/* 098DE0 7F0642B0 0FC1D1A1 */ jal subdraw +/* 098DE4 7F0642B4 AFA90504 */ sw $t1, 0x504($sp) +/* 098DE8 7F0642B8 8FAE0504 */ lw $t6, 0x504($sp) +/* 098DEC 7F0642BC 0FC16319 */ jal sub_GAME_7F058C64 +/* 098DF0 7F0642C0 AFAE0538 */ sw $t6, 0x538($sp) +/* 098DF4 7F0642C4 8FAB03D8 */ lw $t3, 0x3d8($sp) +/* 098DF8 7F0642C8 00008825 */ move $s1, $zero +/* 098DFC 7F0642CC 00008025 */ move $s0, $zero +/* 098E00 7F0642D0 856A000E */ lh $t2, 0xe($t3) +/* 098E04 7F0642D4 19400011 */ blez $t2, .L7F06431C +/* 098E08 7F0642D8 00000000 */ nop +/* 098E0C 7F0642DC 8FB904E4 */ lw $t9, 0x4e4($sp) +.L7F0642E0: +/* 098E10 7F0642E0 27A5041C */ addiu $a1, $sp, 0x41c +/* 098E14 7F0642E4 0FC16008 */ jal matrix_4x4_copy +/* 098E18 7F0642E8 03302021 */ addu $a0, $t9, $s0 +/* 098E1C 7F0642EC 8FAD04E4 */ lw $t5, 0x4e4($sp) +/* 098E20 7F0642F0 00116180 */ sll $t4, $s1, 6 +/* 098E24 7F0642F4 27A4041C */ addiu $a0, $sp, 0x41c +/* 098E28 7F0642F8 0FC16327 */ jal sub_GAME_7F058C9C +/* 098E2C 7F0642FC 018D2821 */ addu $a1, $t4, $t5 +/* 098E30 7F064300 8FB803D8 */ lw $t8, 0x3d8($sp) +/* 098E34 7F064304 26310001 */ addiu $s1, $s1, 1 +/* 098E38 7F064308 26100040 */ addiu $s0, $s0, 0x40 +/* 098E3C 7F06430C 8708000E */ lh $t0, 0xe($t8) +/* 098E40 7F064310 0228082A */ slt $at, $s1, $t0 +/* 098E44 7F064314 5420FFF2 */ bnezl $at, .L7F0642E0 +/* 098E48 7F064318 8FB904E4 */ lw $t9, 0x4e4($sp) +.L7F06431C: +/* 098E4C 7F06431C 0FC16322 */ jal sub_GAME_7F058C88 +/* 098E50 7F064320 00000000 */ nop +.L7F064324: +/* 098E54 7F064324 8FA20538 */ lw $v0, 0x538($sp) +.L7F064328: +/* 098E58 7F064328 8FBF006C */ lw $ra, 0x6c($sp) +/* 098E5C 7F06432C D7B40030 */ ldc1 $f20, 0x30($sp) +/* 098E60 7F064330 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 098E64 7F064334 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 098E68 7F064338 8FB00048 */ lw $s0, 0x48($sp) +/* 098E6C 7F06433C 8FB1004C */ lw $s1, 0x4c($sp) +/* 098E70 7F064340 8FB20050 */ lw $s2, 0x50($sp) +/* 098E74 7F064344 8FB30054 */ lw $s3, 0x54($sp) +/* 098E78 7F064348 8FB40058 */ lw $s4, 0x58($sp) +/* 098E7C 7F06434C 8FB5005C */ lw $s5, 0x5c($sp) +/* 098E80 7F064350 8FB60060 */ lw $s6, 0x60($sp) +/* 098E84 7F064354 8FB70064 */ lw $s7, 0x64($sp) +/* 098E88 7F064358 8FBE0068 */ lw $fp, 0x68($sp) +/* 098E8C 7F06435C 03E00008 */ jr $ra +/* 098E90 7F064360 27BD0538 */ addiu $sp, $sp, 0x538 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F064364(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F064364 +/* 098E94 7F064364 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 098E98 7F064368 AFA7002C */ sw $a3, 0x2c($sp) +/* 098E9C 7F06436C 8FAE002C */ lw $t6, 0x2c($sp) +/* 098EA0 7F064370 8FAF0030 */ lw $t7, 0x30($sp) +/* 098EA4 7F064374 00C03825 */ move $a3, $a2 +/* 098EA8 7F064378 AFBF001C */ sw $ra, 0x1c($sp) +/* 098EAC 7F06437C AFA60028 */ sw $a2, 0x28($sp) +/* 098EB0 7F064380 240600FF */ li $a2, 255 +/* 098EB4 7F064384 AFAE0010 */ sw $t6, 0x10($sp) +/* 098EB8 7F064388 0FC18D67 */ jal sub_GAME_7F06359C +/* 098EBC 7F06438C AFAF0014 */ sw $t7, 0x14($sp) +/* 098EC0 7F064390 8FBF001C */ lw $ra, 0x1c($sp) +/* 098EC4 7F064394 27BD0020 */ addiu $sp, $sp, 0x20 +/* 098EC8 7F064398 03E00008 */ jr $ra +/* 098ECC 7F06439C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 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; +} +#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 +void recall_joy2_hits_edit_detail_edit_flag(void) { + +} +#else + +#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 get_random_value +/* 098F74 7F064444 AFA2006C */ sw $v0, 0x6c($sp) +/* 098F78 7F064448 0C002914 */ jal get_random_value +/* 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(ptr_sfx_buf) +/* 099030 7F064500 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099034 7F064504 2405005B */ li $a1, 91 +/* 099038 7F064508 0C002382 */ jal play_sfx_a1 +/* 09903C 7F06450C AFA60060 */ sw $a2, 0x60($sp) +/* 099040 7F064510 1000001C */ b .L7F064584 +/* 099044 7F064514 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064518: +/* 099048 7F064518 3C188003 */ lui $t8, %hi(D_80035E04) +/* 09904C 7F06451C 27185E04 */ addiu $t8, %lo(D_80035E04) # addiu $t8, $t8, 0x5e04 +/* 099050 7F064520 27090024 */ addiu $t1, $t8, 0x24 +/* 099054 7F064524 00405025 */ move $t2, $v0 +.L7F064528: +/* 099058 7F064528 8F010000 */ lw $at, ($t8) +/* 09905C 7F06452C 2718000C */ addiu $t8, $t8, 0xc +/* 099060 7F064530 254A000C */ addiu $t2, $t2, 0xc +/* 099064 7F064534 AD41FFF4 */ sw $at, -0xc($t2) +/* 099068 7F064538 8F01FFF8 */ lw $at, -8($t8) +/* 09906C 7F06453C AD41FFF8 */ sw $at, -8($t2) +/* 099070 7F064540 8F01FFFC */ lw $at, -4($t8) +/* 099074 7F064544 1709FFF8 */ bne $t8, $t1, .L7F064528 +/* 099078 7F064548 AD41FFFC */ sw $at, -4($t2) +/* 09907C 7F06454C 8F010000 */ lw $at, ($t8) +/* 099080 7F064550 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 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(ptr_sfx_buf)($a0) +/* 099094 7F064564 0161001B */ divu $zero, $t3, $at +/* 099098 7F064568 00006010 */ mfhi $t4 +/* 09909C 7F06456C 000C6840 */ sll $t5, $t4, 1 +/* 0990A0 7F064570 004D7021 */ addu $t6, $v0, $t5 +/* 0990A4 7F064574 85C50000 */ lh $a1, ($t6) +/* 0990A8 7F064578 0C002382 */ jal play_sfx_a1 +/* 0990AC 7F06457C AFA60060 */ sw $a2, 0x60($sp) +/* 0990B0 7F064580 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064584: +/* 0990B4 7F064584 24050008 */ li $a1, 8 +/* 0990B8 7F064588 8DE40000 */ lw $a0, ($t7) +/* 0990BC 7F06458C 10800039 */ beqz $a0, .L7F064674 +/* 0990C0 7F064590 00000000 */ nop +/* 0990C4 7F064594 0C002461 */ jal sfx_c_70009184 +/* 0990C8 7F064598 8FA6006C */ lw $a2, 0x6c($sp) +/* 0990CC 7F06459C 10000035 */ b .L7F064674 +/* 0990D0 7F0645A0 00000000 */ nop +.L7F0645A4: +/* 0990D4 7F0645A4 24010002 */ li $at, 2 +/* 0990D8 7F0645A8 14E10007 */ bne $a3, $at, .L7F0645C8 +/* 0990DC 7F0645AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0990E0 7F0645B0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0990E4 7F0645B4 2405004A */ li $a1, 74 +/* 0990E8 7F0645B8 0C002382 */ jal play_sfx_a1 +/* 0990EC 7F0645BC AFA60060 */ sw $a2, 0x60($sp) +/* 0990F0 7F0645C0 10000026 */ b .L7F06465C +/* 0990F4 7F0645C4 8FAB0060 */ lw $t3, 0x60($sp) +.L7F0645C8: +/* 0990F8 7F0645C8 24010001 */ li $at, 1 +/* 0990FC 7F0645CC 14E10015 */ bne $a3, $at, .L7F064624 +/* 099100 7F0645D0 3C0D8003 */ lui $t5, %hi(D_80035E34) +/* 099104 7F0645D4 3C088003 */ lui $t0, %hi(D_80035E2C) +/* 099108 7F0645D8 25085E2C */ addiu $t0, %lo(D_80035E2C) # addiu $t0, $t0, 0x5e2c +/* 09910C 7F0645DC 8D010000 */ lw $at, ($t0) +/* 099110 7F0645E0 27A20030 */ addiu $v0, $sp, 0x30 +/* 099114 7F0645E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 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(ptr_sfx_buf)($a0) +/* 099130 7F064600 0301001B */ divu $zero, $t8, $at +/* 099134 7F064604 00005010 */ mfhi $t2 +/* 099138 7F064608 000A5840 */ sll $t3, $t2, 1 +/* 09913C 7F06460C 004B6021 */ addu $t4, $v0, $t3 +/* 099140 7F064610 85850000 */ lh $a1, ($t4) +/* 099144 7F064614 0C002382 */ jal play_sfx_a1 +/* 099148 7F064618 AFA60060 */ sw $a2, 0x60($sp) +/* 09914C 7F06461C 1000000F */ b .L7F06465C +/* 099150 7F064620 8FAB0060 */ lw $t3, 0x60($sp) +.L7F064624: +/* 099154 7F064624 25AD5E34 */ addiu $t5, %lo(D_80035E34) # addiu $t5, $t5, 0x5e34 +/* 099158 7F064628 8DA10000 */ lw $at, ($t5) +/* 09915C 7F06462C 27A2002C */ addiu $v0, $sp, 0x2c +/* 099160 7F064630 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099164 7F064634 AC410000 */ sw $at, ($v0) +/* 099168 7F064638 8FA80068 */ lw $t0, 0x68($sp) +/* 09916C 7F06463C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099170 7F064640 31090001 */ andi $t1, $t0, 1 +/* 099174 7F064644 0009C040 */ sll $t8, $t1, 1 +/* 099178 7F064648 00585021 */ addu $t2, $v0, $t8 +/* 09917C 7F06464C 85450000 */ lh $a1, ($t2) +/* 099180 7F064650 0C002382 */ jal play_sfx_a1 +/* 099184 7F064654 AFA60060 */ sw $a2, 0x60($sp) +/* 099188 7F064658 8FAB0060 */ lw $t3, 0x60($sp) +.L7F06465C: +/* 09918C 7F06465C 24050008 */ li $a1, 8 +/* 099190 7F064660 8D640000 */ lw $a0, ($t3) +/* 099194 7F064664 10800003 */ beqz $a0, .L7F064674 +/* 099198 7F064668 00000000 */ nop +/* 09919C 7F06466C 0C002461 */ jal sfx_c_70009184 +/* 0991A0 7F064670 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064674: +/* 0991A4 7F064674 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0991A8 7F064678 00000000 */ nop +/* 0991AC 7F06467C 10400024 */ beqz $v0, .L7F064710 +/* 0991B0 7F064680 AFA20060 */ sw $v0, 0x60($sp) +/* 0991B4 7F064684 8FAC0078 */ lw $t4, 0x78($sp) +/* 0991B8 7F064688 3C0E8005 */ lui $t6, %hi(image_entries) +/* 0991BC 7F06468C 05800020 */ bltz $t4, .L7F064710 +/* 0991C0 7F064690 000C78C0 */ sll $t7, $t4, 3 +/* 0991C4 7F064694 01CF7021 */ addu $t6, $t6, $t7 +/* 0991C8 7F064698 8DCE9300 */ lw $t6, %lo(image_entries)($t6) +/* 0991CC 7F06469C 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 0991D0 7F0646A0 000E6F02 */ srl $t5, $t6, 0x1c +/* 0991D4 7F0646A4 000DC880 */ sll $t9, $t5, 2 +/* 0991D8 7F0646A8 00591021 */ addu $v0, $v0, $t9 +/* 0991DC 7F0646AC 8C42E86C */ lw $v0, %lo(D_8004E86C)($v0) +/* 0991E0 7F0646B0 50400018 */ beql $v0, $zero, .L7F064714 +/* 0991E4 7F0646B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0991E8 7F0646B8 84470008 */ lh $a3, 8($v0) +/* 0991EC 7F0646BC 8FA80064 */ lw $t0, 0x64($sp) +/* 0991F0 7F0646C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0991F4 7F0646C4 18E0000C */ blez $a3, .L7F0646F8 +/* 0991F8 7F0646C8 8FA60060 */ lw $a2, 0x60($sp) +/* 0991FC 7F0646CC 0107001B */ divu $zero, $t0, $a3 +/* 099200 7F0646D0 8C490000 */ lw $t1, ($v0) +/* 099204 7F0646D4 00001810 */ mfhi $v1 +/* 099208 7F0646D8 0003C040 */ sll $t8, $v1, 1 +/* 09920C 7F0646DC 14E00002 */ bnez $a3, .L7F0646E8 +/* 099210 7F0646E0 00000000 */ nop +/* 099214 7F0646E4 0007000D */ break 7 +.L7F0646E8: +/* 099218 7F0646E8 01385021 */ addu $t2, $t1, $t8 +/* 09921C 7F0646EC 85450000 */ lh $a1, ($t2) +/* 099220 7F0646F0 0C002382 */ jal play_sfx_a1 +/* 099224 7F0646F4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F0646F8: +/* 099228 7F0646F8 8FAB0060 */ lw $t3, 0x60($sp) +/* 09922C 7F0646FC 8D640000 */ lw $a0, ($t3) +/* 099230 7F064700 50800004 */ beql $a0, $zero, .L7F064714 +/* 099234 7F064704 8FBF0014 */ lw $ra, 0x14($sp) +/* 099238 7F064708 0FC14E84 */ jal sub_GAME_7F053A10 +/* 09923C 7F06470C 8FA50024 */ lw $a1, 0x24($sp) +.L7F064710: +/* 099240 7F064710 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064714: +/* 099244 7F064714 27BD0070 */ addiu $sp, $sp, 0x70 +/* 099248 7F064718 03E00008 */ jr $ra +/* 09924C 7F06471C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_detail_edit_flag +/* 0994B8 7F064948 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0994BC 7F06494C 00803825 */ move $a3, $a0 +/* 0994C0 7F064950 AFBF0014 */ sw $ra, 0x14($sp) +/* 0994C4 7F064954 24A40008 */ addiu $a0, $a1, 8 +/* 0994C8 7F064958 AFA50074 */ sw $a1, 0x74($sp) +/* 0994CC 7F06495C AFA60078 */ sw $a2, 0x78($sp) +/* 0994D0 7F064960 AFA40024 */ sw $a0, 0x24($sp) +/* 0994D4 7F064964 0FC14FB8 */ jal sub_GAME_7F0539E4 +/* 0994D8 7F064968 AFA70070 */ sw $a3, 0x70($sp) +/* 0994DC 7F06496C 0C002918 */ jal get_random_value +/* 0994E0 7F064970 AFA2006C */ sw $v0, 0x6c($sp) +/* 0994E4 7F064974 0C002918 */ jal get_random_value +/* 0994E8 7F064978 AFA20068 */ sw $v0, 0x68($sp) +/* 0994EC 7F06497C 8FAE0078 */ lw $t6, 0x78($sp) +/* 0994F0 7F064980 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 0994F4 7F064984 AFA20064 */ sw $v0, 0x64($sp) +/* 0994F8 7F064988 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 0994FC 7F06498C AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099500 7F064990 14400004 */ bnez $v0, .L7F0649A4 +/* 099504 7F064994 8FA70070 */ lw $a3, 0x70($sp) +/* 099508 7F064998 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 09950C 7F06499C AFA70070 */ sw $a3, 0x70($sp) +/* 099510 7F0649A0 8FA70070 */ lw $a3, 0x70($sp) +.L7F0649A4: +/* 099514 7F0649A4 2401001D */ li $at, 29 +/* 099518 7F0649A8 10E100A7 */ beq $a3, $at, .L7F064C48 +/* 09951C 7F0649AC 2401001C */ li $at, 28 +/* 099520 7F0649B0 10E100A5 */ beq $a3, $at, .L7F064C48 +/* 099524 7F0649B4 2401001B */ li $at, 27 +/* 099528 7F0649B8 10E100A3 */ beq $a3, $at, .L7F064C48 +/* 09952C 7F0649BC 24010021 */ li $at, 33 +/* 099530 7F0649C0 10E100A1 */ beq $a3, $at, .L7F064C48 +/* 099534 7F0649C4 2401002F */ li $at, 47 +/* 099538 7F0649C8 10E1009F */ beq $a3, $at, .L7F064C48 +/* 09953C 7F0649CC 24010030 */ li $at, 48 +/* 099540 7F0649D0 10E1009D */ beq $a3, $at, .L7F064C48 +/* 099544 7F0649D4 24010022 */ li $at, 34 +/* 099548 7F0649D8 10E1009B */ beq $a3, $at, .L7F064C48 +/* 09954C 7F0649DC 24010017 */ li $at, 23 +/* 099550 7F0649E0 10E10099 */ beq $a3, $at, .L7F064C48 +/* 099554 7F0649E4 2401003C */ li $at, 60 +/* 099558 7F0649E8 10E10097 */ beq $a3, $at, .L7F064C48 +/* 09955C 7F0649EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099560 7F0649F0 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099564 7F0649F4 59E00095 */ blezl $t7, .L7F064C4C +/* 099568 7F0649F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09956C 7F0649FC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099570 7F064A00 AFA70070 */ sw $a3, 0x70($sp) +/* 099574 7F064A04 8FA70070 */ lw $a3, 0x70($sp) +/* 099578 7F064A08 10400068 */ beqz $v0, .L7F064BAC +/* 09957C 7F064A0C 00403025 */ move $a2, $v0 +/* 099580 7F064A10 8FB80074 */ lw $t8, 0x74($sp) +/* 099584 7F064A14 24010003 */ li $at, 3 +/* 099588 7F064A18 93020000 */ lbu $v0, ($t8) +/* 09958C 7F064A1C 1041002F */ beq $v0, $at, .L7F064ADC +/* 099590 7F064A20 24010006 */ li $at, 6 +/* 099594 7F064A24 1041002D */ beq $v0, $at, .L7F064ADC +/* 099598 7F064A28 24010016 */ li $at, 22 +/* 09959C 7F064A2C 14E10008 */ bne $a3, $at, .L7F064A50 +/* 0995A0 7F064A30 27A20038 */ addiu $v0, $sp, 0x38 +/* 0995A4 7F064A34 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0995A8 7F064A38 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0995AC 7F064A3C 2405005B */ li $a1, 91 +/* 0995B0 7F064A40 0C002386 */ jal play_sfx_a1 +/* 0995B4 7F064A44 AFA60060 */ sw $a2, 0x60($sp) +/* 0995B8 7F064A48 1000001C */ b .L7F064ABC +/* 0995BC 7F064A4C 8FB80060 */ lw $t8, 0x60($sp) +.L7F064A50: +/* 0995C0 7F064A50 3C198003 */ lui $t9, %hi(D_80035E04) # $t9, 0x8003 +/* 0995C4 7F064A54 27395E44 */ addiu $t9, %lo(D_80035E04) # addiu $t9, $t9, 0x5e44 +/* 0995C8 7F064A58 272A0024 */ addiu $t2, $t9, 0x24 +/* 0995CC 7F064A5C 00405825 */ move $t3, $v0 +.L7F064A60: +/* 0995D0 7F064A60 8F210000 */ lw $at, ($t9) +/* 0995D4 7F064A64 2739000C */ addiu $t9, $t9, 0xc +/* 0995D8 7F064A68 256B000C */ addiu $t3, $t3, 0xc +/* 0995DC 7F064A6C AD61FFF4 */ sw $at, -0xc($t3) +/* 0995E0 7F064A70 8F21FFF8 */ lw $at, -8($t9) +/* 0995E4 7F064A74 AD61FFF8 */ sw $at, -8($t3) +/* 0995E8 7F064A78 8F21FFFC */ lw $at, -4($t9) +/* 0995EC 7F064A7C 172AFFF8 */ bne $t9, $t2, .L7F064A60 +/* 0995F0 7F064A80 AD61FFFC */ sw $at, -4($t3) +/* 0995F4 7F064A84 8F210000 */ lw $at, ($t9) +/* 0995F8 7F064A88 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0995FC 7F064A8C AD610000 */ sw $at, ($t3) +/* 099600 7F064A90 8FAC0068 */ lw $t4, 0x68($sp) +/* 099604 7F064A94 24010014 */ li $at, 20 +/* 099608 7F064A98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09960C 7F064A9C 0181001B */ divu $zero, $t4, $at +/* 099610 7F064AA0 00006810 */ mfhi $t5 +/* 099614 7F064AA4 000D7040 */ sll $t6, $t5, 1 +/* 099618 7F064AA8 004E7821 */ addu $t7, $v0, $t6 +/* 09961C 7F064AAC 85E50000 */ lh $a1, ($t7) +/* 099620 7F064AB0 0C002386 */ jal play_sfx_a1 +/* 099624 7F064AB4 AFA60060 */ sw $a2, 0x60($sp) +/* 099628 7F064AB8 8FB80060 */ lw $t8, 0x60($sp) +.L7F064ABC: +/* 09962C 7F064ABC 24050008 */ li $a1, 8 +/* 099630 7F064AC0 8F040000 */ lw $a0, ($t8) +/* 099634 7F064AC4 10800039 */ beqz $a0, .L7F064BAC +/* 099638 7F064AC8 00000000 */ nop +/* 09963C 7F064ACC 0C002465 */ jal sfx_c_70009184 +/* 099640 7F064AD0 8FA6006C */ lw $a2, 0x6c($sp) +/* 099644 7F064AD4 10000035 */ b .L7F064BAC +/* 099648 7F064AD8 00000000 */ nop +.L7F064ADC: +/* 09964C 7F064ADC 24010002 */ li $at, 2 +/* 099650 7F064AE0 14E10007 */ bne $a3, $at, .L7F064B00 +/* 099654 7F064AE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099658 7F064AE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09965C 7F064AEC 2405004A */ li $a1, 74 +/* 099660 7F064AF0 0C002386 */ jal play_sfx_a1 +/* 099664 7F064AF4 AFA60060 */ sw $a2, 0x60($sp) +/* 099668 7F064AF8 10000026 */ b .L7F064B94 +/* 09966C 7F064AFC 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B00: +/* 099670 7F064B00 24010001 */ li $at, 1 +/* 099674 7F064B04 14E10015 */ bne $a3, $at, .L7F064B5C +/* 099678 7F064B08 3C0E8003 */ lui $t6, %hi(D_80035E34) # $t6, 0x8003 +/* 09967C 7F064B0C 3C098003 */ lui $t1, %hi(D_80035E2C) # $t1, 0x8003 +/* 099680 7F064B10 25295E6C */ addiu $t1, %lo(D_80035E2C) # addiu $t1, $t1, 0x5e6c +/* 099684 7F064B14 8D210000 */ lw $at, ($t1) +/* 099688 7F064B18 27A20030 */ addiu $v0, $sp, 0x30 +/* 09968C 7F064B1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099690 7F064B20 AC410000 */ sw $at, ($v0) +/* 099694 7F064B24 95210004 */ lhu $at, 4($t1) +/* 099698 7F064B28 A4410004 */ sh $at, 4($v0) +/* 09969C 7F064B2C 8FB90068 */ lw $t9, 0x68($sp) +/* 0996A0 7F064B30 24010003 */ li $at, 3 +/* 0996A4 7F064B34 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0996A8 7F064B38 0321001B */ divu $zero, $t9, $at +/* 0996AC 7F064B3C 00005810 */ mfhi $t3 +/* 0996B0 7F064B40 000B6040 */ sll $t4, $t3, 1 +/* 0996B4 7F064B44 004C6821 */ addu $t5, $v0, $t4 +/* 0996B8 7F064B48 85A50000 */ lh $a1, ($t5) +/* 0996BC 7F064B4C 0C002386 */ jal play_sfx_a1 +/* 0996C0 7F064B50 AFA60060 */ sw $a2, 0x60($sp) +/* 0996C4 7F064B54 1000000F */ b .L7F064B94 +/* 0996C8 7F064B58 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B5C: +/* 0996CC 7F064B5C 25CE5E74 */ addiu $t6, %lo(D_80035E34) # addiu $t6, $t6, 0x5e74 +/* 0996D0 7F064B60 8DC10000 */ lw $at, ($t6) +/* 0996D4 7F064B64 27A2002C */ addiu $v0, $sp, 0x2c +/* 0996D8 7F064B68 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0996DC 7F064B6C AC410000 */ sw $at, ($v0) +/* 0996E0 7F064B70 8FA90068 */ lw $t1, 0x68($sp) +/* 0996E4 7F064B74 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0996E8 7F064B78 312A0001 */ andi $t2, $t1, 1 +/* 0996EC 7F064B7C 000AC840 */ sll $t9, $t2, 1 +/* 0996F0 7F064B80 00595821 */ addu $t3, $v0, $t9 +/* 0996F4 7F064B84 85650000 */ lh $a1, ($t3) +/* 0996F8 7F064B88 0C002386 */ jal play_sfx_a1 +/* 0996FC 7F064B8C AFA60060 */ sw $a2, 0x60($sp) +/* 099700 7F064B90 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B94: +/* 099704 7F064B94 24050008 */ li $a1, 8 +/* 099708 7F064B98 8D840000 */ lw $a0, ($t4) +/* 09970C 7F064B9C 10800003 */ beqz $a0, .L7F064BAC +/* 099710 7F064BA0 00000000 */ nop +/* 099714 7F064BA4 0C002465 */ jal sfx_c_70009184 +/* 099718 7F064BA8 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064BAC: +/* 09971C 7F064BAC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099720 7F064BB0 00000000 */ nop +/* 099724 7F064BB4 10400024 */ beqz $v0, .L7F064C48 +/* 099728 7F064BB8 AFA20060 */ sw $v0, 0x60($sp) +/* 09972C 7F064BBC 8FAD0078 */ lw $t5, 0x78($sp) +/* 099730 7F064BC0 3C0F8005 */ lui $t7, %hi(image_entries) +/* 099734 7F064BC4 05A00020 */ bltz $t5, .L7F064C48 +/* 099738 7F064BC8 000DC0C0 */ sll $t8, $t5, 3 +/* 09973C 7F064BCC 01F87821 */ addu $t7, $t7, $t8 +/* 099740 7F064BD0 8DEF9330 */ lw $t7, %lo(image_entries)($t7) +/* 099744 7F064BD4 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 099748 7F064BD8 000F7702 */ srl $t6, $t7, 0x1c +/* 09974C 7F064BDC 000E4080 */ sll $t0, $t6, 2 +/* 099750 7F064BE0 00481021 */ addu $v0, $v0, $t0 +/* 099754 7F064BE4 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 099758 7F064BE8 50400018 */ beql $v0, $zero, .L7F064C4C +/* 09975C 7F064BEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099760 7F064BF0 84470008 */ lh $a3, 8($v0) +/* 099764 7F064BF4 8FA90064 */ lw $t1, 0x64($sp) +/* 099768 7F064BF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09976C 7F064BFC 18E0000C */ blez $a3, .L7F064C30 +/* 099770 7F064C00 8FA60060 */ lw $a2, 0x60($sp) +/* 099774 7F064C04 0127001B */ divu $zero, $t1, $a3 +/* 099778 7F064C08 8C4A0000 */ lw $t2, ($v0) +/* 09977C 7F064C0C 00001810 */ mfhi $v1 +/* 099780 7F064C10 0003C840 */ sll $t9, $v1, 1 +/* 099784 7F064C14 14E00002 */ bnez $a3, .L7F064C20 +/* 099788 7F064C18 00000000 */ nop +/* 09978C 7F064C1C 0007000D */ break 7 +.L7F064C20: +/* 099790 7F064C20 01595821 */ addu $t3, $t2, $t9 +/* 099794 7F064C24 85650000 */ lh $a1, ($t3) +/* 099798 7F064C28 0C002386 */ jal play_sfx_a1 +/* 09979C 7F064C2C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F064C30: +/* 0997A0 7F064C30 8FAC0060 */ lw $t4, 0x60($sp) +/* 0997A4 7F064C34 8D840000 */ lw $a0, ($t4) +/* 0997A8 7F064C38 50800004 */ beql $a0, $zero, .L7F064C4C +/* 0997AC 7F064C3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0997B0 7F064C40 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0997B4 7F064C44 8FA50024 */ lw $a1, 0x24($sp) +.L7F064C48: +/* 0997B8 7F064C48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064C4C: +/* 0997BC 7F064C4C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0997C0 7F064C50 03E00008 */ jr $ra +/* 0997C4 7F064C54 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F064720(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F064720 +/* 099250 7F064720 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 099254 7F064724 AFBF0014 */ sw $ra, 0x14($sp) +/* 099258 7F064728 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 09925C 7F06472C AFA40020 */ sw $a0, 0x20($sp) +/* 099260 7F064730 1040000C */ beqz $v0, .L7F064764 +/* 099264 7F064734 00403025 */ move $a2, $v0 +/* 099268 7F064738 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099270 7F064740 24050046 */ li $a1, 70 +/* 099274 7F064744 0C002382 */ jal play_sfx_a1 +/* 099278 7F064748 AFA2001C */ sw $v0, 0x1c($sp) +/* 09927C 7F06474C 8FA6001C */ lw $a2, 0x1c($sp) +/* 099280 7F064750 8CC40000 */ lw $a0, ($a2) +/* 099284 7F064754 50800004 */ beql $a0, $zero, .L7F064768 +/* 099288 7F064758 8FBF0014 */ lw $ra, 0x14($sp) +/* 09928C 7F06475C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099290 7F064760 8FA50020 */ lw $a1, 0x20($sp) +.L7F064764: +/* 099294 7F064764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064768: +/* 099298 7F064768 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09929C 7F06476C 03E00008 */ jr $ra +/* 0992A0 7F064770 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F064720 +/* 0997C8 7F064C58 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 0997CC 7F064C5C 8DCE83A4 */ lw $t6, %lo(clock_timer)($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(ptr_sfx_buf) # $a0, 0x8006 +/* 0997F4 7F064C84 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0997F8 7F064C88 24050046 */ li $a1, 70 +/* 0997FC 7F064C8C 0C002386 */ jal play_sfx_a1 +/* 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 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void recall_joy2_hits_edit_flag(void) { + +} +#else + +#ifdef VERSION_US +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 get_random_value +/* 0992B8 7F064788 AFA60088 */ sw $a2, 0x88($sp) +/* 0992BC 7F06478C 0C002914 */ jal get_random_value +/* 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(ptr_sfx_buf) +/* 099314 7F0647E4 AC410000 */ sw $at, ($v0) +/* 099318 7F0647E8 8FA80078 */ lw $t0, 0x78($sp) +/* 09931C 7F0647EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099320 7F0647F0 31090001 */ andi $t1, $t0, 1 +/* 099324 7F0647F4 00095040 */ sll $t2, $t1, 1 +/* 099328 7F0647F8 004A5821 */ addu $t3, $v0, $t2 +/* 09932C 7F0647FC 85650000 */ lh $a1, ($t3) +/* 099330 7F064800 0C002382 */ jal play_sfx_a1 +/* 099334 7F064804 AFA6007C */ sw $a2, 0x7c($sp) +/* 099338 7F064808 1000001A */ b .L7F064874 +/* 09933C 7F06480C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064810: +/* 099340 7F064810 27A20028 */ addiu $v0, $sp, 0x28 +/* 099344 7F064814 258C5E3C */ addiu $t4, %lo(D_80035E3C) # addiu $t4, $t4, 0x5e3c +/* 099348 7F064818 25980048 */ addiu $t8, $t4, 0x48 +/* 09934C 7F06481C 00407825 */ move $t7, $v0 +.L7F064820: +/* 099350 7F064820 8D810000 */ lw $at, ($t4) +/* 099354 7F064824 258C000C */ addiu $t4, $t4, 0xc +/* 099358 7F064828 25EF000C */ addiu $t7, $t7, 0xc +/* 09935C 7F06482C ADE1FFF4 */ sw $at, -0xc($t7) +/* 099360 7F064830 8D81FFF8 */ lw $at, -8($t4) +/* 099364 7F064834 ADE1FFF8 */ sw $at, -8($t7) +/* 099368 7F064838 8D81FFFC */ lw $at, -4($t4) +/* 09936C 7F06483C 1598FFF8 */ bne $t4, $t8, .L7F064820 +/* 099370 7F064840 ADE1FFFC */ sw $at, -4($t7) +/* 099374 7F064844 8FB90078 */ lw $t9, 0x78($sp) +/* 099378 7F064848 24010024 */ li $at, 36 +/* 09937C 7F06484C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099380 7F064850 0321001B */ divu $zero, $t9, $at +/* 099384 7F064854 00004010 */ mfhi $t0 +/* 099388 7F064858 00084840 */ sll $t1, $t0, 1 +/* 09938C 7F06485C 00495021 */ addu $t2, $v0, $t1 +/* 099390 7F064860 85450000 */ lh $a1, ($t2) +/* 099394 7F064864 AFA6007C */ sw $a2, 0x7c($sp) +/* 099398 7F064868 0C002382 */ jal play_sfx_a1 +/* 09939C 7F06486C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($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(ptr_sfx_buf) +/* 099430 7F064900 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099434 7F064904 0C002382 */ jal play_sfx_a1 +/* 099438 7F064908 AFA6007C */ sw $a2, 0x7c($sp) +/* 09943C 7F06490C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064910: +/* 099440 7F064910 8CC40000 */ lw $a0, ($a2) +/* 099444 7F064914 50800004 */ beql $a0, $zero, .L7F064928 +/* 099448 7F064918 8FBF0014 */ lw $ra, 0x14($sp) +/* 09944C 7F06491C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099450 7F064920 8FA50084 */ lw $a1, 0x84($sp) +.L7F064924: +/* 099454 7F064924 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064928: +/* 099458 7F064928 27BD0080 */ addiu $sp, $sp, 0x80 +/* 09945C 7F06492C 03E00008 */ jr $ra +/* 099460 7F064930 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_flag +/* 09982C 7F064CBC 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 099830 7F064CC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 099834 7F064CC4 AFA40080 */ sw $a0, 0x80($sp) +/* 099838 7F064CC8 AFA50084 */ sw $a1, 0x84($sp) +/* 09983C 7F064CCC 0C002918 */ jal get_random_value +/* 099840 7F064CD0 AFA60088 */ sw $a2, 0x88($sp) +/* 099844 7F064CD4 0C002918 */ jal get_random_value +/* 099848 7F064CD8 AFA20078 */ sw $v0, 0x78($sp) +/* 09984C 7F064CDC 8FAE0088 */ lw $t6, 0x88($sp) +/* 099850 7F064CE0 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 099854 7F064CE4 AFA20074 */ sw $v0, 0x74($sp) +/* 099858 7F064CE8 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 09985C 7F064CEC AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099860 7F064CF0 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099864 7F064CF4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099868 7F064CF8 59E00061 */ blezl $t7, .L7F064E80 +/* 09986C 7F064CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099870 7F064D00 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099874 7F064D04 00000000 */ nop +/* 099878 7F064D08 10400035 */ beqz $v0, .L7F064DE0 +/* 09987C 7F064D0C 00403025 */ move $a2, $v0 +/* 099880 7F064D10 8FA20080 */ lw $v0, 0x80($sp) +/* 099884 7F064D14 24010017 */ li $at, 23 +/* 099888 7F064D18 1041002C */ beq $v0, $at, .L7F064DCC +/* 09988C 7F064D1C 24010016 */ li $at, 22 +/* 099890 7F064D20 14410011 */ bne $v0, $at, .L7F064D68 +/* 099894 7F064D24 3C0D8003 */ lui $t5, %hi(D_80035E3C) # $t5, 0x8003 +/* 099898 7F064D28 3C188003 */ lui $t8, %hi(D_80035E38) # $t8, 0x8003 +/* 09989C 7F064D2C 27185E78 */ addiu $t8, %lo(D_80035E38) # addiu $t8, $t8, 0x5e78 +/* 0998A0 7F064D30 8F010000 */ lw $at, ($t8) +/* 0998A4 7F064D34 27A20070 */ addiu $v0, $sp, 0x70 +/* 0998A8 7F064D38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0998AC 7F064D3C AC410000 */ sw $at, ($v0) +/* 0998B0 7F064D40 8FA90078 */ lw $t1, 0x78($sp) +/* 0998B4 7F064D44 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0998B8 7F064D48 312A0001 */ andi $t2, $t1, 1 +/* 0998BC 7F064D4C 000A5840 */ sll $t3, $t2, 1 +/* 0998C0 7F064D50 004B6021 */ addu $t4, $v0, $t3 +/* 0998C4 7F064D54 85850000 */ lh $a1, ($t4) +/* 0998C8 7F064D58 0C002386 */ jal play_sfx_a1 +/* 0998CC 7F064D5C AFA6007C */ sw $a2, 0x7c($sp) +/* 0998D0 7F064D60 1000001A */ b .L7F064DCC +/* 0998D4 7F064D64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064D68: +/* 0998D8 7F064D68 27A20028 */ addiu $v0, $sp, 0x28 +/* 0998DC 7F064D6C 25AD5E7C */ addiu $t5, %lo(D_80035E3C) # addiu $t5, $t5, 0x5e7c +/* 0998E0 7F064D70 25B90048 */ addiu $t9, $t5, 0x48 +/* 0998E4 7F064D74 0040C025 */ move $t8, $v0 +.L7F064D78: +/* 0998E8 7F064D78 8DA10000 */ lw $at, ($t5) +/* 0998EC 7F064D7C 25AD000C */ addiu $t5, $t5, 0xc +/* 0998F0 7F064D80 2718000C */ addiu $t8, $t8, 0xc +/* 0998F4 7F064D84 AF01FFF4 */ sw $at, -0xc($t8) +/* 0998F8 7F064D88 8DA1FFF8 */ lw $at, -8($t5) +/* 0998FC 7F064D8C AF01FFF8 */ sw $at, -8($t8) +/* 099900 7F064D90 8DA1FFFC */ lw $at, -4($t5) +/* 099904 7F064D94 15B9FFF8 */ bne $t5, $t9, .L7F064D78 +/* 099908 7F064D98 AF01FFFC */ sw $at, -4($t8) +/* 09990C 7F064D9C 8FA80078 */ lw $t0, 0x78($sp) +/* 099910 7F064DA0 24010024 */ li $at, 36 +/* 099914 7F064DA4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099918 7F064DA8 0101001B */ divu $zero, $t0, $at +/* 09991C 7F064DAC 00004810 */ mfhi $t1 +/* 099920 7F064DB0 00095040 */ sll $t2, $t1, 1 +/* 099924 7F064DB4 004A5821 */ addu $t3, $v0, $t2 +/* 099928 7F064DB8 85650000 */ lh $a1, ($t3) +/* 09992C 7F064DBC AFA6007C */ sw $a2, 0x7c($sp) +/* 099930 7F064DC0 0C002386 */ jal play_sfx_a1 +/* 099934 7F064DC4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099938 7F064DC8 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064DCC: +/* 09993C 7F064DCC 8CC40000 */ lw $a0, ($a2) +/* 099940 7F064DD0 10800003 */ beqz $a0, .L7F064DE0 +/* 099944 7F064DD4 00000000 */ nop +/* 099948 7F064DD8 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 09994C 7F064DDC 8FA50084 */ lw $a1, 0x84($sp) +.L7F064DE0: +/* 099950 7F064DE0 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099954 7F064DE4 00000000 */ nop +/* 099958 7F064DE8 10400024 */ beqz $v0, .L7F064E7C +/* 09995C 7F064DEC 00403025 */ move $a2, $v0 +/* 099960 7F064DF0 8FAC0088 */ lw $t4, 0x88($sp) +/* 099964 7F064DF4 3C0E8005 */ lui $t6, %hi(image_entries) +/* 099968 7F064DF8 05800020 */ bltz $t4, .L7F064E7C +/* 09996C 7F064DFC 000C78C0 */ sll $t7, $t4, 3 +/* 099970 7F064E00 01CF7021 */ addu $t6, $t6, $t7 +/* 099974 7F064E04 8DCE9330 */ lw $t6, %lo(image_entries)($t6) +/* 099978 7F064E08 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 09997C 7F064E0C 000ECF02 */ srl $t9, $t6, 0x1c +/* 099980 7F064E10 00196880 */ sll $t5, $t9, 2 +/* 099984 7F064E14 004D1021 */ addu $v0, $v0, $t5 +/* 099988 7F064E18 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 09998C 7F064E1C 84470008 */ lh $a3, 8($v0) +/* 099990 7F064E20 58E00017 */ blezl $a3, .L7F064E80 +/* 099994 7F064E24 8FBF0014 */ lw $ra, 0x14($sp) +/* 099998 7F064E28 1040000F */ beqz $v0, .L7F064E68 +/* 09999C 7F064E2C 8FB80074 */ lw $t8, 0x74($sp) +/* 0999A0 7F064E30 0307001B */ divu $zero, $t8, $a3 +/* 0999A4 7F064E34 8C480000 */ lw $t0, ($v0) +/* 0999A8 7F064E38 00001810 */ mfhi $v1 +/* 0999AC 7F064E3C 00034840 */ sll $t1, $v1, 1 +/* 0999B0 7F064E40 01095021 */ addu $t2, $t0, $t1 +/* 0999B4 7F064E44 14E00002 */ bnez $a3, .L7F064E50 +/* 0999B8 7F064E48 00000000 */ nop +/* 0999BC 7F064E4C 0007000D */ break 7 +.L7F064E50: +/* 0999C0 7F064E50 85450000 */ lh $a1, ($t2) +/* 0999C4 7F064E54 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0999C8 7F064E58 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0999CC 7F064E5C 0C002386 */ jal play_sfx_a1 +/* 0999D0 7F064E60 AFA6007C */ sw $a2, 0x7c($sp) +/* 0999D4 7F064E64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064E68: +/* 0999D8 7F064E68 8CC40000 */ lw $a0, ($a2) +/* 0999DC 7F064E6C 50800004 */ beql $a0, $zero, .L7F064E80 +/* 0999E0 7F064E70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0999E4 7F064E74 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0999E8 7F064E78 8FA50084 */ lw $a1, 0x84($sp) +.L7F064E7C: +/* 0999EC 7F064E7C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064E80: +/* 0999F0 7F064E80 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0999F4 7F064E84 03E00008 */ jr $ra +/* 0999F8 7F064E88 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F064934(void) { + +} +#else + +#ifdef VERSION_US +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 get_random_value +/* 0994A0 7F064970 A5C10008 */ sh $at, 8($t6) +/* 0994A4 7F064974 24010005 */ li $at, 5 +/* 0994A8 7F064978 0041001B */ divu $zero, $v0, $at +/* 0994AC 7F06497C 00004010 */ mfhi $t0 +/* 0994B0 7F064980 00084840 */ sll $t1, $t0, 1 +/* 0994B4 7F064984 03A92821 */ addu $a1, $sp, $t1 +/* 0994B8 7F064988 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0994BC 7F06498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0994C0 7F064990 84A5001C */ lh $a1, 0x1c($a1) +/* 0994C4 7F064994 0C002382 */ jal play_sfx_a1 +/* 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 + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F064934 +/* 0999FC 7F064E8C 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 099A00 7F064E90 8DCE83A4 */ lw $t6, %lo(clock_timer)($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 get_random_value +/* 099A44 7F064ED4 A5E10008 */ sh $at, 8($t7) +/* 099A48 7F064ED8 24010005 */ li $at, 5 +/* 099A4C 7F064EDC 0041001B */ divu $zero, $v0, $at +/* 099A50 7F064EE0 00004810 */ mfhi $t1 +/* 099A54 7F064EE4 00095040 */ sll $t2, $t1, 1 +/* 099A58 7F064EE8 03AA2821 */ addu $a1, $sp, $t2 +/* 099A5C 7F064EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099A60 7F064EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099A64 7F064EF4 84A5001C */ lh $a1, 0x1c($a1) +/* 099A68 7F064EF8 0C002386 */ jal play_sfx_a1 +/* 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 +) +#endif + +#endif + + +f32 sub_GAME_7F0649AC(s32 param_1) +{ + f32 fVar1; + + fVar1 = -60.0f; + if (param_1 == 0x19) { + fVar1 -= 20.0f; + } + return fVar1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0649D8(void) { + +} +#else +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(pPlayer) +/* 09951C 7F0649EC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 get_item_in_hand +/* 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(pPlayer) +/* 0995B4 7F064A84 8D29A0B0 */ lw $t1, %lo(pPlayer)($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(pPlayer) +/* 0995D0 7F064AA0 8DADA0B0 */ lw $t5, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void handle_weapon_id_values_possibly_1st_person_animation(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ + +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099658 7F064B28 000410C0 */ sll $v0, $a0, 3 +/* 09965C 7F064B2C 00441023 */ subu $v0, $v0, $a0 +/* 099660 7F064B30 00021080 */ sll $v0, $v0, 2 +/* 099664 7F064B34 27BDFE30 */ addiu $sp, $sp, -0x1d0 +/* 099668 7F064B38 00441021 */ addu $v0, $v0, $a0 +/* 09966C 7F064B3C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099670 7F064B40 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099674 7F064B44 00021080 */ sll $v0, $v0, 2 +/* 099678 7F064B48 00441021 */ addu $v0, $v0, $a0 +/* 09967C 7F064B4C AFB0001C */ sw $s0, 0x1c($sp) +/* 099680 7F064B50 000210C0 */ sll $v0, $v0, 3 +/* 099684 7F064B54 AFBF0024 */ sw $ra, 0x24($sp) +/* 099688 7F064B58 01C28021 */ addu $s0, $t6, $v0 +/* 09968C 7F064B5C AFB10020 */ sw $s1, 0x20($sp) +/* 099690 7F064B60 AFA501D4 */ sw $a1, 0x1d4($sp) +/* 099694 7F064B64 26100870 */ addiu $s0, $s0, 0x870 +/* 099698 7F064B68 AFA20038 */ sw $v0, 0x38($sp) +/* 09969C 7F064B6C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0996A0 7F064B70 AFA401D0 */ sw $a0, 0x1d0($sp) +/* 0996A4 7F064B74 00408825 */ move $s1, $v0 +/* 0996A8 7F064B78 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0996AC 7F064B7C 00402025 */ move $a0, $v0 +/* 0996B0 7F064B80 8FA301D4 */ lw $v1, 0x1d4($sp) +/* 0996B4 7F064B84 8E0F0010 */ lw $t7, 0x10($s0) +/* 0996B8 7F064B88 00403025 */ move $a2, $v0 +/* 0996BC 7F064B8C AE030010 */ sw $v1, 0x10($s0) +/* 0996C0 7F064B90 14600003 */ bnez $v1, .L7F064BA0 +/* 0996C4 7F064B94 AE0F0014 */ sw $t7, 0x14($s0) +/* 0996C8 7F064B98 24180001 */ li $t8, 1 +/* 0996CC 7F064B9C AE180018 */ sw $t8, 0x18($s0) +.L7F064BA0: +/* 0996D0 7F064BA0 A200000C */ sb $zero, 0xc($s0) +/* 0996D4 7F064BA4 A200000D */ sb $zero, 0xd($s0) +/* 0996D8 7F064BA8 3C028005 */ lui $v0, %hi(clock_timer) +/* 0996DC 7F064BAC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0996E0 7F064BB0 58400008 */ blezl $v0, .L7F064BD4 +/* 0996E4 7F064BB4 8E0E0024 */ lw $t6, 0x24($s0) +/* 0996E8 7F064BB8 8E190020 */ lw $t9, 0x20($s0) +/* 0996EC 7F064BBC 8E0C001C */ lw $t4, 0x1c($s0) +/* 0996F0 7F064BC0 03225821 */ addu $t3, $t9, $v0 +/* 0996F4 7F064BC4 258D0001 */ addiu $t5, $t4, 1 +/* 0996F8 7F064BC8 AE0B0020 */ sw $t3, 0x20($s0) +/* 0996FC 7F064BCC AE0D001C */ sw $t5, 0x1c($s0) +/* 099700 7F064BD0 8E0E0024 */ lw $t6, 0x24($s0) +.L7F064BD4: +/* 099704 7F064BD4 AE0000BC */ sw $zero, 0xbc($s0) +/* 099708 7F064BD8 55C00072 */ bnezl $t6, .L7F064DA4 +/* 09970C 7F064BDC 8E020024 */ lw $v0, 0x24($s0) +/* 099710 7F064BE0 8E0F0010 */ lw $t7, 0x10($s0) +/* 099714 7F064BE4 51E00011 */ beql $t7, $zero, .L7F064C2C +/* 099718 7F064BE8 8E020028 */ lw $v0, 0x28($s0) +/* 09971C 7F064BEC 1220000E */ beqz $s1, .L7F064C28 +/* 099720 7F064BF0 02202025 */ move $a0, $s1 +/* 099724 7F064BF4 24050010 */ li $a1, 16 +/* 099728 7F064BF8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09972C 7F064BFC AFA601C4 */ sw $a2, 0x1c4($sp) +/* 099730 7F064C00 14400003 */ bnez $v0, .L7F064C10 +/* 099734 7F064C04 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 099738 7F064C08 8E18002C */ lw $t8, 0x2c($s0) +/* 09973C 7F064C0C 1B000006 */ blez $t8, .L7F064C28 +.L7F064C10: +/* 099740 7F064C10 24190001 */ li $t9, 1 +/* 099744 7F064C14 AE190024 */ sw $t9, 0x24($s0) +/* 099748 7F064C18 AE000020 */ sw $zero, 0x20($s0) +/* 09974C 7F064C1C AE00001C */ sw $zero, 0x1c($s0) +/* 099750 7F064C20 10000007 */ b .L7F064C40 +/* 099754 7F064C24 AE000018 */ sw $zero, 0x18($s0) +.L7F064C28: +/* 099758 7F064C28 8E020028 */ lw $v0, 0x28($s0) +.L7F064C2C: +/* 09975C 7F064C2C 50400005 */ beql $v0, $zero, .L7F064C44 +/* 099760 7F064C30 8E0B0024 */ lw $t3, 0x24($s0) +/* 099764 7F064C34 AE020024 */ sw $v0, 0x24($s0) +/* 099768 7F064C38 AE000020 */ sw $zero, 0x20($s0) +/* 09976C 7F064C3C AE00001C */ sw $zero, 0x1c($s0) +.L7F064C40: +/* 099770 7F064C40 8E0B0024 */ lw $t3, 0x24($s0) +.L7F064C44: +/* 099774 7F064C44 AE000028 */ sw $zero, 0x28($s0) +/* 099778 7F064C48 55600056 */ bnezl $t3, .L7F064DA4 +/* 09977C 7F064C4C 8E020024 */ lw $v0, 0x24($s0) +/* 099780 7F064C50 8E0C002C */ lw $t4, 0x2c($s0) +/* 099784 7F064C54 55800053 */ bnezl $t4, .L7F064DA4 +/* 099788 7F064C58 8E020024 */ lw $v0, 0x24($s0) +/* 09978C 7F064C5C 50C00051 */ beql $a2, $zero, .L7F064DA4 +/* 099790 7F064C60 8E020024 */ lw $v0, 0x24($s0) +/* 099794 7F064C64 0FC2FF01 */ jal get_controls_locked_flag +/* 099798 7F064C68 AFA601C4 */ sw $a2, 0x1c4($sp) +/* 09979C 7F064C6C 1440004C */ bnez $v0, .L7F064DA0 +/* 0997A0 7F064C70 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 0997A4 7F064C74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0997A8 7F064C78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0997AC 7F064C7C 3C0E8003 */ lui $t6, %hi(D_80032458) +/* 0997B0 7F064C80 8C4D29C4 */ lw $t5, 0x29c4($v0) +/* 0997B4 7F064C84 55A00047 */ bnezl $t5, .L7F064DA4 +/* 0997B8 7F064C88 8E020024 */ lw $v0, 0x24($s0) +/* 0997BC 7F064C8C 8DCE2458 */ lw $t6, %lo(D_80032458)($t6) +/* 0997C0 7F064C90 24010001 */ li $at, 1 +/* 0997C4 7F064C94 11C00009 */ beqz $t6, .L7F064CBC +/* 0997C8 7F064C98 00000000 */ nop +/* 0997CC 7F064C9C 14C10007 */ bne $a2, $at, .L7F064CBC +/* 0997D0 7F064CA0 00067880 */ sll $t7, $a2, 2 +/* 0997D4 7F064CA4 004F1821 */ addu $v1, $v0, $t7 +/* 0997D8 7F064CA8 8C781130 */ lw $t8, 0x1130($v1) +/* 0997DC 7F064CAC 24190001 */ li $t9, 1 +/* 0997E0 7F064CB0 1F000002 */ bgtz $t8, .L7F064CBC +/* 0997E4 7F064CB4 00000000 */ nop +/* 0997E8 7F064CB8 AC791130 */ sw $t9, 0x1130($v1) +.L7F064CBC: +/* 0997EC 7F064CBC 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 0997F0 7F064CC0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 0997F4 7F064CC4 18400006 */ blez $v0, .L7F064CE0 +/* 0997F8 7F064CC8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0997FC 7F064CCC 240B0009 */ li $t3, 9 +/* 099800 7F064CD0 AE0B0024 */ sw $t3, 0x24($s0) +/* 099804 7F064CD4 AE000020 */ sw $zero, 0x20($s0) +/* 099808 7F064CD8 10000031 */ b .L7F064DA0 +/* 09980C 7F064CDC AE00001C */ sw $zero, 0x1c($s0) +.L7F064CE0: +/* 099810 7F064CE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099814 7F064CE4 8FAE01D0 */ lw $t6, 0x1d0($sp) +/* 099818 7F064CE8 240F0001 */ li $t7, 1 +/* 09981C 7F064CEC 8D8D0FC8 */ lw $t5, 0xfc8($t4) +/* 099820 7F064CF0 01EE2023 */ subu $a0, $t7, $t6 +/* 099824 7F064CF4 51A0002B */ beql $t5, $zero, .L7F064DA4 +/* 099828 7F064CF8 8E020024 */ lw $v0, 0x24($s0) +/* 09982C 7F064CFC 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 099830 7F064D00 AFA4003C */ sw $a0, 0x3c($sp) +/* 099834 7F064D04 3C188008 */ lui $t8, %hi(pPlayer) +/* 099838 7F064D08 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09983C 7F064D0C 8FB90038 */ lw $t9, 0x38($sp) +/* 099840 7F064D10 00402025 */ move $a0, $v0 +/* 099844 7F064D14 03191823 */ subu $v1, $t8, $t9 +/* 099848 7F064D18 8C6B0C3C */ lw $t3, 0xc3c($v1) +/* 09984C 7F064D1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099850 7F064D20 55600020 */ bnezl $t3, .L7F064DA4 +/* 099854 7F064D24 8E020024 */ lw $v0, 0x24($s0) +/* 099858 7F064D28 8C6C0028 */ lw $t4, 0x28($v1) +/* 09985C 7F064D2C 5580001D */ bnezl $t4, .L7F064DA4 +/* 099860 7F064D30 8E020024 */ lw $v0, 0x24($s0) +/* 099864 7F064D34 1040000D */ beqz $v0, .L7F064D6C +/* 099868 7F064D38 00000000 */ nop +/* 09986C 7F064D3C 8C6D002C */ lw $t5, 0x2c($v1) +/* 099870 7F064D40 55A00018 */ bnezl $t5, .L7F064DA4 +/* 099874 7F064D44 8E020024 */ lw $v0, 0x24($s0) +/* 099878 7F064D48 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09987C 7F064D4C AFA301BC */ sw $v1, 0x1bc($sp) +/* 099880 7F064D50 10400013 */ beqz $v0, .L7F064DA0 +/* 099884 7F064D54 8FA301BC */ lw $v1, 0x1bc($sp) +/* 099888 7F064D58 8FA4003C */ lw $a0, 0x3c($sp) +/* 09988C 7F064D5C 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 099890 7F064D60 AFA301BC */ sw $v1, 0x1bc($sp) +/* 099894 7F064D64 1C40000E */ bgtz $v0, .L7F064DA0 +/* 099898 7F064D68 8FA301BC */ lw $v1, 0x1bc($sp) +.L7F064D6C: +/* 09989C 7F064D6C 0FC17600 */ jal autoadvance_on_deplete_all_ammo +/* 0998A0 7F064D70 AFA301BC */ sw $v1, 0x1bc($sp) +/* 0998A4 7F064D74 8FA301BC */ lw $v1, 0x1bc($sp) +/* 0998A8 7F064D78 8E0F0028 */ lw $t7, 0x28($s0) +/* 0998AC 7F064D7C AE00001C */ sw $zero, 0x1c($s0) +/* 0998B0 7F064D80 AE000020 */ sw $zero, 0x20($s0) +/* 0998B4 7F064D84 AE000028 */ sw $zero, 0x28($s0) +/* 0998B8 7F064D88 AE0F0024 */ sw $t7, 0x24($s0) +/* 0998BC 7F064D8C 8C6E0028 */ lw $t6, 0x28($v1) +/* 0998C0 7F064D90 AC60001C */ sw $zero, 0x1c($v1) +/* 0998C4 7F064D94 AC600020 */ sw $zero, 0x20($v1) +/* 0998C8 7F064D98 AC600028 */ sw $zero, 0x28($v1) +/* 0998CC 7F064D9C AC6E0024 */ sw $t6, 0x24($v1) +.L7F064DA0: +/* 0998D0 7F064DA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064DA4: +/* 0998D4 7F064DA4 24010001 */ li $at, 1 +/* 0998D8 7F064DA8 1441007E */ bne $v0, $at, .L7F064FA4 +/* 0998DC 7F064DAC 2638FFFF */ addiu $t8, $s1, -1 +/* 0998E0 7F064DB0 2F010058 */ sltiu $at, $t8, 0x58 +/* 0998E4 7F064DB4 10200076 */ beqz $at, .L7F064F90 +/* 0998E8 7F064DB8 0018C080 */ sll $t8, $t8, 2 +/* 0998EC 7F064DBC 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 0998F0 7F064DC0 00380821 */ addu $at, $at, $t8 +/* 0998F4 7F064DC4 8C383F24 */ lw $t8, %lo(jpt_80053F24)($at) +/* 0998F8 7F064DC8 03000008 */ jr $t8 +/* 0998FC 7F064DCC 00000000 */ nop +Weapon_function_magnum: +/* 099900 7F064DD0 8E190020 */ lw $t9, 0x20($s0) +/* 099904 7F064DD4 240B0002 */ li $t3, 2 +/* 099908 7F064DD8 2B210006 */ slti $at, $t9, 6 +/* 09990C 7F064DDC 54200070 */ bnezl $at, .L7F064FA0 +/* 099910 7F064DE0 AE000398 */ sw $zero, 0x398($s0) +/* 099914 7F064DE4 AE0B0024 */ sw $t3, 0x24($s0) +/* 099918 7F064DE8 AE000020 */ sw $zero, 0x20($s0) +/* 09991C 7F064DEC 1000006B */ b .L7F064F9C +/* 099920 7F064DF0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099924 7F064DF4 8E0C001C */ lw $t4, 0x1c($s0) +/* 099928 7F064DF8 00002025 */ move $a0, $zero +/* 09992C 7F064DFC 00002825 */ move $a1, $zero +/* 099930 7F064E00 15800005 */ bnez $t4, .L7F064E18 +/* 099934 7F064E04 00003025 */ move $a2, $zero +/* 099938 7F064E08 0FC201EC */ jal set_rgba_tint +/* 09993C 7F064E0C 3C073F80 */ lui $a3, 0x3f80 +/* 099940 7F064E10 10000063 */ b .L7F064FA0 +/* 099944 7F064E14 AE000398 */ sw $zero, 0x398($s0) +.L7F064E18: +/* 099948 7F064E18 8E0D0020 */ lw $t5, 0x20($s0) +/* 09994C 7F064E1C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099950 7F064E20 00002825 */ move $a1, $zero +/* 099954 7F064E24 19A0005D */ blez $t5, .L7F064F9C +/* 099958 7F064E28 00003025 */ move $a2, $zero +/* 09995C 7F064E2C 44802000 */ mtc1 $zero, $f4 +/* 099960 7F064E30 44816000 */ mtc1 $at, $f12 +/* 099964 7F064E34 00003825 */ move $a3, $zero +/* 099968 7F064E38 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 09996C 7F064E3C E7A40010 */ swc1 $f4, 0x10($sp) +/* 099970 7F064E40 240F0002 */ li $t7, 2 +/* 099974 7F064E44 AE0F0024 */ sw $t7, 0x24($s0) +/* 099978 7F064E48 AE000020 */ sw $zero, 0x20($s0) +/* 09997C 7F064E4C 10000053 */ b .L7F064F9C +/* 099980 7F064E50 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099984 7F064E54 240E0002 */ li $t6, 2 +/* 099988 7F064E58 AE0E0024 */ sw $t6, 0x24($s0) +/* 09998C 7F064E5C AE000020 */ sw $zero, 0x20($s0) +/* 099990 7F064E60 1000004E */ b .L7F064F9C +/* 099994 7F064E64 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099998 7F064E68 2418001C */ li $t8, 28 +/* 09999C 7F064E6C AE180024 */ sw $t8, 0x24($s0) +/* 0999A0 7F064E70 AE000020 */ sw $zero, 0x20($s0) +/* 0999A4 7F064E74 10000049 */ b .L7F064F9C +/* 0999A8 7F064E78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 0999AC 7F064E7C 0C002914 */ jal get_random_value +/* 0999B0 7F064E80 00000000 */ nop +/* 0999B4 7F064E84 30590001 */ andi $t9, $v0, 1 +/* 0999B8 7F064E88 17200004 */ bnez $t9, .L7F064E9C +/* 0999BC 7F064E8C 240C0014 */ li $t4, 20 +/* 0999C0 7F064E90 240B0011 */ li $t3, 17 +/* 0999C4 7F064E94 10000002 */ b .L7F064EA0 +/* 0999C8 7F064E98 AE0B0024 */ sw $t3, 0x24($s0) +.L7F064E9C: +/* 0999CC 7F064E9C AE0C0024 */ sw $t4, 0x24($s0) +.L7F064EA0: +/* 0999D0 7F064EA0 AE000020 */ sw $zero, 0x20($s0) +/* 0999D4 7F064EA4 1000003D */ b .L7F064F9C +/* 0999D8 7F064EA8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 0999DC 7F064EAC 8E0D0018 */ lw $t5, 0x18($s0) +/* 0999E0 7F064EB0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0999E4 7F064EB4 55A00006 */ bnezl $t5, .L7F064ED0 +/* 0999E8 7F064EB8 8E0E0020 */ lw $t6, 0x20($s0) +/* 0999EC 7F064EBC 8E0F0020 */ lw $t7, 0x20($s0) +/* 0999F0 7F064EC0 29E100F0 */ slti $at, $t7, 0xf0 +/* 0999F4 7F064EC4 54200036 */ bnezl $at, .L7F064FA0 +/* 0999F8 7F064EC8 AE000398 */ sw $zero, 0x398($s0) +/* 0999FC 7F064ECC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F064ED0: +/* 099A00 7F064ED0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 099A04 7F064ED4 2419001A */ li $t9, 26 +/* 099A08 7F064ED8 AF0E105C */ sw $t6, 0x105c($t8) +/* 099A0C 7F064EDC AE190024 */ sw $t9, 0x24($s0) +/* 099A10 7F064EE0 AE00001C */ sw $zero, 0x1c($s0) +/* 099A14 7F064EE4 1000002D */ b .L7F064F9C +/* 099A18 7F064EE8 AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099A1C 7F064EEC 0C002914 */ jal get_random_value +/* 099A20 7F064EF0 00000000 */ nop +/* 099A24 7F064EF4 304B0001 */ andi $t3, $v0, 1 +/* 099A28 7F064EF8 15600004 */ bnez $t3, .L7F064F0C +/* 099A2C 7F064EFC 240D0020 */ li $t5, 32 +/* 099A30 7F064F00 240C001E */ li $t4, 30 +/* 099A34 7F064F04 10000002 */ b .L7F064F10 +/* 099A38 7F064F08 AE0C0024 */ sw $t4, 0x24($s0) +.L7F064F0C: +/* 099A3C 7F064F0C AE0D0024 */ sw $t5, 0x24($s0) +.L7F064F10: +/* 099A40 7F064F10 AE000020 */ sw $zero, 0x20($s0) +/* 099A44 7F064F14 10000021 */ b .L7F064F9C +/* 099A48 7F064F18 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 099A4C 7F064F1C 240F0017 */ li $t7, 23 +/* 099A50 7F064F20 AE0F0024 */ sw $t7, 0x24($s0) +/* 099A54 7F064F24 AE000020 */ sw $zero, 0x20($s0) +/* 099A58 7F064F28 1000001C */ b .L7F064F9C +/* 099A5C 7F064F2C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 099A60 7F064F30 8E0E0020 */ lw $t6, 0x20($s0) +/* 099A64 7F064F34 3C048003 */ lui $a0, %hi(D_80035A90) +/* 099A68 7F064F38 24845A90 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5a90 +/* 099A6C 7F064F3C 448E3000 */ mtc1 $t6, $f6 +/* 099A70 7F064F40 2606007C */ addiu $a2, $s0, 0x7c +/* 099A74 7F064F44 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099A78 7F064F48 46803020 */ cvt.s.w $f0, $f6 +/* 099A7C 7F064F4C 44050000 */ mfc1 $a1, $f0 +/* 099A80 7F064F50 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099A84 7F064F54 00000000 */ nop +/* 099A88 7F064F58 10400004 */ beqz $v0, .L7F064F6C +/* 099A8C 7F064F5C 24190002 */ li $t9, 2 +/* 099A90 7F064F60 24180001 */ li $t8, 1 +/* 099A94 7F064F64 1000000D */ b .L7F064F9C +/* 099A98 7F064F68 AE1800BC */ sw $t8, 0xbc($s0) +.L7F064F6C: +/* 099A9C 7F064F6C AE190024 */ sw $t9, 0x24($s0) +/* 099AA0 7F064F70 AE000020 */ sw $zero, 0x20($s0) +/* 099AA4 7F064F74 10000009 */ b .L7F064F9C +/* 099AA8 7F064F78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 099AAC 7F064F7C 240B0024 */ li $t3, 36 +/* 099AB0 7F064F80 AE0B0024 */ sw $t3, 0x24($s0) +/* 099AB4 7F064F84 AE000020 */ sw $zero, 0x20($s0) +/* 099AB8 7F064F88 10000004 */ b .L7F064F9C +/* 099ABC 7F064F8C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +.L7F064F90: +/* 099AC0 7F064F90 AE000024 */ sw $zero, 0x24($s0) +/* 099AC4 7F064F94 AE000020 */ sw $zero, 0x20($s0) +/* 099AC8 7F064F98 AE00001C */ sw $zero, 0x1c($s0) +.L7F064F9C: +/* 099ACC 7F064F9C AE000398 */ sw $zero, 0x398($s0) +.L7F064FA0: +/* 099AD0 7F064FA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064FA4: +/* 099AD4 7F064FA4 24010002 */ li $at, 2 +/* 099AD8 7F064FA8 54410168 */ bnel $v0, $at, .L7F06554C +/* 099ADC 7F064FAC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099AE0 7F064FB0 0FC1A50B */ jal get_ammo_type_for_weapon +/* 099AE4 7F064FB4 02202025 */ move $a0, $s1 +/* 099AE8 7F064FB8 10400003 */ beqz $v0, .L7F064FC8 +/* 099AEC 7F064FBC 262DFFFE */ addiu $t5, $s1, -2 +/* 099AF0 7F064FC0 8E0C002C */ lw $t4, 0x2c($s0) +/* 099AF4 7F064FC4 19800148 */ blez $t4, .L7F0654E8 +.L7F064FC8: +/* 099AF8 7F064FC8 2DA1003B */ sltiu $at, $t5, 0x3b +/* 099AFC 7F064FCC 102000AF */ beqz $at, .L7F06528C +/* 099B00 7F064FD0 000D6880 */ sll $t5, $t5, 2 +/* 099B04 7F064FD4 3C018005 */ lui $at, %hi(jpt_80054084) +/* 099B08 7F064FD8 002D0821 */ addu $at, $at, $t5 +/* 099B0C 7F064FDC 8C2D4084 */ lw $t5, %lo(jpt_80054084)($at) +/* 099B10 7F064FE0 01A00008 */ jr $t5 +/* 099B14 7F064FE4 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 099B18 7F064FE8 8E0F001C */ lw $t7, 0x1c($s0) +/* 099B1C 7F064FEC 24190003 */ li $t9, 3 +/* 099B20 7F064FF0 55E0000D */ bnezl $t7, .L7F065028 +/* 099B24 7F064FF4 AE190024 */ sw $t9, 0x24($s0) +/* 099B28 7F064FF8 0FC2FF01 */ jal get_controls_locked_flag +/* 099B2C 7F064FFC 00000000 */ nop +/* 099B30 7F065000 2C450001 */ sltiu $a1, $v0, 1 +/* 099B34 7F065004 10A00005 */ beqz $a1, .L7F06501C +/* 099B38 7F065008 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099B3C 7F06500C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099B40 7F065010 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099B44 7F065014 2CB80001 */ sltiu $t8, $a1, 1 +/* 099B48 7F065018 03002825 */ move $a1, $t8 +.L7F06501C: +/* 099B4C 7F06501C 1000009B */ b .L7F06528C +/* 099B50 7F065020 A205000C */ sb $a1, 0xc($s0) +/* 099B54 7F065024 AE190024 */ sw $t9, 0x24($s0) +.L7F065028: +/* 099B58 7F065028 AE000020 */ sw $zero, 0x20($s0) +/* 099B5C 7F06502C 10000097 */ b .L7F06528C +/* 099B60 7F065030 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 099B64 7F065034 8E0B001C */ lw $t3, 0x1c($s0) +/* 099B68 7F065038 24190003 */ li $t9, 3 +/* 099B6C 7F06503C 5560001E */ bnezl $t3, .L7F0650B8 +/* 099B70 7F065040 AE190024 */ sw $t9, 0x24($s0) +/* 099B74 7F065044 0FC26919 */ jal get_num_players +/* 099B78 7F065048 00000000 */ nop +/* 099B7C 7F06504C 24010001 */ li $at, 1 +/* 099B80 7F065050 50410009 */ beql $v0, $at, .L7F065078 +/* 099B84 7F065054 240F0001 */ li $t7, 1 +/* 099B88 7F065058 0FC31820 */ jal checkGamePaused +/* 099B8C 7F06505C 00000000 */ nop +/* 099B90 7F065060 14400006 */ bnez $v0, .L7F06507C +/* 099B94 7F065064 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 099B98 7F065068 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099B9C 7F06506C 8D8D29C4 */ lw $t5, 0x29c4($t4) +/* 099BA0 7F065070 15A00002 */ bnez $t5, .L7F06507C +/* 099BA4 7F065074 240F0001 */ li $t7, 1 +.L7F065078: +/* 099BA8 7F065078 A20F000D */ sb $t7, 0xd($s0) +.L7F06507C: +/* 099BAC 7F06507C 0FC2FF01 */ jal get_controls_locked_flag +/* 099BB0 7F065080 00000000 */ nop +/* 099BB4 7F065084 2C450001 */ sltiu $a1, $v0, 1 +/* 099BB8 7F065088 10A00005 */ beqz $a1, .L7F0650A0 +/* 099BBC 7F06508C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099BC0 7F065090 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099BC4 7F065094 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099BC8 7F065098 2CB80001 */ sltiu $t8, $a1, 1 +/* 099BCC 7F06509C 03002825 */ move $a1, $t8 +.L7F0650A0: +/* 099BD0 7F0650A0 A205000C */ sb $a1, 0xc($s0) +/* 099BD4 7F0650A4 0FC17A02 */ jal sub_GAME_7F05E808 +/* 099BD8 7F0650A8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 099BDC 7F0650AC 10000078 */ b .L7F065290 +/* 099BE0 7F0650B0 820F000C */ lb $t7, 0xc($s0) +/* 099BE4 7F0650B4 AE190024 */ sw $t9, 0x24($s0) +.L7F0650B8: +/* 099BE8 7F0650B8 AE000020 */ sw $zero, 0x20($s0) +/* 099BEC 7F0650BC 10000073 */ b .L7F06528C +/* 099BF0 7F0650C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 099BF4 7F0650C4 8E0B001C */ lw $t3, 0x1c($s0) +/* 099BF8 7F0650C8 11600013 */ beqz $t3, .L7F065118 +/* 099BFC 7F0650CC 00000000 */ nop +/* 099C00 7F0650D0 8E0C0010 */ lw $t4, 0x10($s0) +/* 099C04 7F0650D4 02202025 */ move $a0, $s1 +/* 099C08 7F0650D8 1580000F */ bnez $t4, .L7F065118 +/* 099C0C 7F0650DC 00000000 */ nop +/* 099C10 7F0650E0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 099C14 7F0650E4 24050004 */ li $a1, 4 +/* 099C18 7F0650E8 50400035 */ beql $v0, $zero, .L7F0651C0 +/* 099C1C 7F0650EC 240E0003 */ li $t6, 3 +/* 099C20 7F0650F0 0FC1F178 */ jal get_BONDdata_is_aiming +/* 099C24 7F0650F4 00000000 */ nop +/* 099C28 7F0650F8 54400031 */ bnezl $v0, .L7F0651C0 +/* 099C2C 7F0650FC 240E0003 */ li $t6, 3 +/* 099C30 7F065100 8E0D0398 */ lw $t5, 0x398($s0) +/* 099C34 7F065104 24010003 */ li $at, 3 +/* 099C38 7F065108 01A1001A */ div $zero, $t5, $at +/* 099C3C 7F06510C 00007810 */ mfhi $t7 +/* 099C40 7F065110 51E0002B */ beql $t7, $zero, .L7F0651C0 +/* 099C44 7F065114 240E0003 */ li $t6, 3 +.L7F065118: +/* 099C48 7F065118 0FC177F3 */ jal get_automatic_firing_rate +/* 099C4C 7F06511C 02202025 */ move $a0, $s1 +/* 099C50 7F065120 8E0E001C */ lw $t6, 0x1c($s0) +/* 099C54 7F065124 01C2001A */ div $zero, $t6, $v0 +/* 099C58 7F065128 0000C010 */ mfhi $t8 +/* 099C5C 7F06512C 14400002 */ bnez $v0, .L7F065138 +/* 099C60 7F065130 00000000 */ nop +/* 099C64 7F065134 0007000D */ break 7 +.L7F065138: +/* 099C68 7F065138 2401FFFF */ li $at, -1 +/* 099C6C 7F06513C 14410004 */ bne $v0, $at, .L7F065150 +/* 099C70 7F065140 3C018000 */ lui $at, 0x8000 +/* 099C74 7F065144 15C10002 */ bne $t6, $at, .L7F065150 +/* 099C78 7F065148 00000000 */ nop +/* 099C7C 7F06514C 0006000D */ break 6 +.L7F065150: +/* 099C80 7F065150 5700004F */ bnezl $t8, .L7F065290 +/* 099C84 7F065154 820F000C */ lb $t7, 0xc($s0) +/* 099C88 7F065158 0FC26919 */ jal get_num_players +/* 099C8C 7F06515C 00000000 */ nop +/* 099C90 7F065160 24010001 */ li $at, 1 +/* 099C94 7F065164 50410009 */ beql $v0, $at, .L7F06518C +/* 099C98 7F065168 240C0001 */ li $t4, 1 +/* 099C9C 7F06516C 0FC31820 */ jal checkGamePaused +/* 099CA0 7F065170 00000000 */ nop +/* 099CA4 7F065174 14400006 */ bnez $v0, .L7F065190 +/* 099CA8 7F065178 3C198008 */ lui $t9, %hi(pPlayer) +/* 099CAC 7F06517C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 099CB0 7F065180 8F2B29C4 */ lw $t3, 0x29c4($t9) +/* 099CB4 7F065184 15600002 */ bnez $t3, .L7F065190 +/* 099CB8 7F065188 240C0001 */ li $t4, 1 +.L7F06518C: +/* 099CBC 7F06518C A20C000D */ sb $t4, 0xd($s0) +.L7F065190: +/* 099CC0 7F065190 0FC2FF01 */ jal get_controls_locked_flag +/* 099CC4 7F065194 00000000 */ nop +/* 099CC8 7F065198 2C450001 */ sltiu $a1, $v0, 1 +/* 099CCC 7F06519C 10A00005 */ beqz $a1, .L7F0651B4 +/* 099CD0 7F0651A0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 099CD4 7F0651A4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 099CD8 7F0651A8 8DA529C4 */ lw $a1, 0x29c4($t5) +/* 099CDC 7F0651AC 2CAF0001 */ sltiu $t7, $a1, 1 +/* 099CE0 7F0651B0 01E02825 */ move $a1, $t7 +.L7F0651B4: +/* 099CE4 7F0651B4 10000035 */ b .L7F06528C +/* 099CE8 7F0651B8 A205000C */ sb $a1, 0xc($s0) +/* 099CEC 7F0651BC 240E0003 */ li $t6, 3 +.L7F0651C0: +/* 099CF0 7F0651C0 AE0E0024 */ sw $t6, 0x24($s0) +/* 099CF4 7F0651C4 AE000020 */ sw $zero, 0x20($s0) +/* 099CF8 7F0651C8 10000030 */ b .L7F06528C +/* 099CFC 7F0651CC AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 099D00 7F0651D0 8E18001C */ lw $t8, 0x1c($s0) +/* 099D04 7F0651D4 53000006 */ beql $t8, $zero, .L7F0651F0 +/* 099D08 7F0651D8 A200000C */ sb $zero, 0xc($s0) +/* 099D0C 7F0651DC 8E190010 */ lw $t9, 0x10($s0) +/* 099D10 7F0651E0 240C0003 */ li $t4, 3 +/* 099D14 7F0651E4 53200006 */ beql $t9, $zero, .L7F065200 +/* 099D18 7F0651E8 AE0C0024 */ sw $t4, 0x24($s0) +/* 099D1C 7F0651EC A200000C */ sb $zero, 0xc($s0) +.L7F0651F0: +/* 099D20 7F0651F0 820B000C */ lb $t3, 0xc($s0) +/* 099D24 7F0651F4 10000025 */ b .L7F06528C +/* 099D28 7F0651F8 A20B000D */ sb $t3, 0xd($s0) +/* 099D2C 7F0651FC AE0C0024 */ sw $t4, 0x24($s0) +.L7F065200: +/* 099D30 7F065200 AE000020 */ sw $zero, 0x20($s0) +/* 099D34 7F065204 10000021 */ b .L7F06528C +/* 099D38 7F065208 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 099D3C 7F06520C 8E0D001C */ lw $t5, 0x1c($s0) +/* 099D40 7F065210 3C048003 */ lui $a0, %hi(D_80035B68) +/* 099D44 7F065214 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 099D48 7F065218 11A00004 */ beqz $t5, .L7F06522C +/* 099D4C 7F06521C 24050000 */ li $a1, 0 +/* 099D50 7F065220 8E0F0010 */ lw $t7, 0x10($s0) +/* 099D54 7F065224 240D0003 */ li $t5, 3 +/* 099D58 7F065228 11E00015 */ beqz $t7, .L7F065280 +.L7F06522C: +/* 099D5C 7F06522C 2606007C */ addiu $a2, $s0, 0x7c +/* 099D60 7F065230 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099D64 7F065234 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099D68 7F065238 8E19001C */ lw $t9, 0x1c($s0) +/* 099D6C 7F06523C A200000C */ sb $zero, 0xc($s0) +/* 099D70 7F065240 8218000C */ lb $t8, 0xc($s0) +/* 099D74 7F065244 240E0001 */ li $t6, 1 +/* 099D78 7F065248 AE0E00BC */ sw $t6, 0xbc($s0) +/* 099D7C 7F06524C 1720000F */ bnez $t9, .L7F06528C +/* 099D80 7F065250 A218000D */ sb $t8, 0xd($s0) +/* 099D84 7F065254 0FC2FF01 */ jal get_controls_locked_flag +/* 099D88 7F065258 00000000 */ nop +/* 099D8C 7F06525C 2C450001 */ sltiu $a1, $v0, 1 +/* 099D90 7F065260 10A00005 */ beqz $a1, .L7F065278 +/* 099D94 7F065264 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099D98 7F065268 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099D9C 7F06526C 8D6529C4 */ lw $a1, 0x29c4($t3) +/* 099DA0 7F065270 2CAC0001 */ sltiu $t4, $a1, 1 +/* 099DA4 7F065274 01802825 */ move $a1, $t4 +.L7F065278: +/* 099DA8 7F065278 10000004 */ b .L7F06528C +/* 099DAC 7F06527C A205000C */ sb $a1, 0xc($s0) +.L7F065280: +/* 099DB0 7F065280 AE0D0024 */ sw $t5, 0x24($s0) +/* 099DB4 7F065284 AE000020 */ sw $zero, 0x20($s0) +/* 099DB8 7F065288 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +.L7F06528C: +/* 099DBC 7F06528C 820F000C */ lb $t7, 0xc($s0) +.L7F065290: +/* 099DC0 7F065290 24010028 */ li $at, 40 +/* 099DC4 7F065294 51E0001E */ beql $t7, $zero, .L7F065310 +/* 099DC8 7F065298 8E0D0024 */ lw $t5, 0x24($s0) +/* 099DCC 7F06529C 52210016 */ beql $s1, $at, .L7F0652F8 +/* 099DD0 7F0652A0 8E18002C */ lw $t8, 0x2c($s0) +/* 099DD4 7F0652A4 0FC26C54 */ jal get_cur_playernum +/* 099DD8 7F0652A8 00000000 */ nop +/* 099DDC 7F0652AC 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099DE0 7F0652B0 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099DE4 7F0652B4 0C003215 */ jal controller_7000C854 +/* 099DE8 7F0652B8 00402025 */ move $a0, $v0 +/* 099DEC 7F0652BC 0FC29370 */ jal cur_player_get_control_type +/* 099DF0 7F0652C0 00000000 */ nop +/* 099DF4 7F0652C4 28410004 */ slti $at, $v0, 4 +/* 099DF8 7F0652C8 5420000B */ bnezl $at, .L7F0652F8 +/* 099DFC 7F0652CC 8E18002C */ lw $t8, 0x2c($s0) +/* 099E00 7F0652D0 0FC26C54 */ jal get_cur_playernum +/* 099E04 7F0652D4 00000000 */ nop +/* 099E08 7F0652D8 0FC26919 */ jal get_num_players +/* 099E0C 7F0652DC AFA20048 */ sw $v0, 0x48($sp) +/* 099E10 7F0652E0 8FAE0048 */ lw $t6, 0x48($sp) +/* 099E14 7F0652E4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099E18 7F0652E8 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099E1C 7F0652EC 0C003215 */ jal controller_7000C854 +/* 099E20 7F0652F0 004E2021 */ addu $a0, $v0, $t6 +/* 099E24 7F0652F4 8E18002C */ lw $t8, 0x2c($s0) +.L7F0652F8: +/* 099E28 7F0652F8 8E0B0398 */ lw $t3, 0x398($s0) +/* 099E2C 7F0652FC 2719FFFF */ addiu $t9, $t8, -1 +/* 099E30 7F065300 256C0001 */ addiu $t4, $t3, 1 +/* 099E34 7F065304 AE19002C */ sw $t9, 0x2c($s0) +/* 099E38 7F065308 AE0C0398 */ sw $t4, 0x398($s0) +/* 099E3C 7F06530C 8E0D0024 */ lw $t5, 0x24($s0) +.L7F065310: +/* 099E40 7F065310 24010002 */ li $at, 2 +/* 099E44 7F065314 02202025 */ move $a0, $s1 +/* 099E48 7F065318 55A1008C */ bnel $t5, $at, .L7F06554C +/* 099E4C 7F06531C 8E0B0024 */ lw $t3, 0x24($s0) +/* 099E50 7F065320 0FC177FC */ jal get_sound_trigger_rate +/* 099E54 7F065324 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 099E58 7F065328 18400017 */ blez $v0, .L7F065388 +/* 099E5C 7F06532C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 099E60 7F065330 8FAE0038 */ lw $t6, 0x38($sp) +/* 099E64 7F065334 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 099E68 7F065338 3C028005 */ lui $v0, %hi(global_timer) +/* 099E6C 7F06533C 000EC023 */ negu $t8, $t6 +/* 099E70 7F065340 01F8C821 */ addu $t9, $t7, $t8 +/* 099E74 7F065344 8F2B0DF8 */ lw $t3, 0xdf8($t9) +/* 099E78 7F065348 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 099E7C 7F06534C 104B0013 */ beq $v0, $t3, .L7F06539C +/* 099E80 7F065350 00000000 */ nop +/* 099E84 7F065354 8E0C01DC */ lw $t4, 0x1dc($s0) +/* 099E88 7F065358 0182082A */ slt $at, $t4, $v0 +/* 099E8C 7F06535C 1020000F */ beqz $at, .L7F06539C +/* 099E90 7F065360 00000000 */ nop +/* 099E94 7F065364 0FC177FC */ jal get_sound_trigger_rate +/* 099E98 7F065368 02202025 */ move $a0, $s1 +/* 099E9C 7F06536C 3C0D8005 */ lui $t5, %hi(global_timer) +/* 099EA0 7F065370 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 099EA4 7F065374 240F0001 */ li $t7, 1 +/* 099EA8 7F065378 004D7021 */ addu $t6, $v0, $t5 +/* 099EAC 7F06537C AE0E01DC */ sw $t6, 0x1dc($s0) +/* 099EB0 7F065380 10000006 */ b .L7F06539C +/* 099EB4 7F065384 AFAF01B4 */ sw $t7, 0x1b4($sp) +.L7F065388: +/* 099EB8 7F065388 8218000C */ lb $t8, 0xc($s0) +/* 099EBC 7F06538C 24190001 */ li $t9, 1 +/* 099EC0 7F065390 13000002 */ beqz $t8, .L7F06539C +/* 099EC4 7F065394 00000000 */ nop +/* 099EC8 7F065398 AFB901B4 */ sw $t9, 0x1b4($sp) +.L7F06539C: +/* 099ECC 7F06539C 0FC26919 */ jal get_num_players +/* 099ED0 7F0653A0 00000000 */ nop +/* 099ED4 7F0653A4 24010001 */ li $at, 1 +/* 099ED8 7F0653A8 5041000A */ beql $v0, $at, .L7F0653D4 +/* 099EDC 7F0653AC 8FAD01B4 */ lw $t5, 0x1b4($sp) +/* 099EE0 7F0653B0 0FC31820 */ jal checkGamePaused +/* 099EE4 7F0653B4 00000000 */ nop +/* 099EE8 7F0653B8 14400063 */ bnez $v0, .L7F065548 +/* 099EEC 7F0653BC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099EF0 7F0653C0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099EF4 7F0653C4 8D6C29C4 */ lw $t4, 0x29c4($t3) +/* 099EF8 7F0653C8 55800060 */ bnezl $t4, .L7F06554C +/* 099EFC 7F0653CC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099F00 7F0653D0 8FAD01B4 */ lw $t5, 0x1b4($sp) +.L7F0653D4: +/* 099F04 7F0653D4 51A00035 */ beql $t5, $zero, .L7F0654AC +/* 099F08 7F0653D8 24010017 */ li $at, 23 +/* 099F0C 7F0653DC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F10 7F0653E0 50800008 */ beql $a0, $zero, .L7F065404 +/* 099F14 7F0653E4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F18 7F0653E8 0C00237C */ jal sfxGetArg0Unk3F +/* 099F1C 7F0653EC 00000000 */ nop +/* 099F20 7F0653F0 50400004 */ beql $v0, $zero, .L7F065404 +/* 099F24 7F0653F4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F28 7F0653F8 0C002408 */ jal sfxDeactivate +/* 099F2C 7F0653FC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F30 7F065400 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065404: +/* 099F34 7F065404 10800007 */ beqz $a0, .L7F065424 +/* 099F38 7F065408 00000000 */ nop +/* 099F3C 7F06540C 0C00237C */ jal sfxGetArg0Unk3F +/* 099F40 7F065410 00000000 */ nop +/* 099F44 7F065414 10400003 */ beqz $v0, .L7F065424 +/* 099F48 7F065418 00000000 */ nop +/* 099F4C 7F06541C 0C002408 */ jal sfxDeactivate +/* 099F50 7F065420 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065424: +/* 099F54 7F065424 0FC17805 */ jal bondwalkItemGetSound +/* 099F58 7F065428 02202025 */ move $a0, $s1 +/* 099F5C 7F06542C 5040001F */ beql $v0, $zero, .L7F0654AC +/* 099F60 7F065430 24010017 */ li $at, 23 +/* 099F64 7F065434 8E0E01D4 */ lw $t6, 0x1d4($s0) +/* 099F68 7F065438 55C0000D */ bnezl $t6, .L7F065470 +/* 099F6C 7F06543C 8E1801D8 */ lw $t8, 0x1d8($s0) +/* 099F70 7F065440 0FC17805 */ jal bondwalkItemGetSound +/* 099F74 7F065444 02202025 */ move $a0, $s1 +/* 099F78 7F065448 00022C00 */ sll $a1, $v0, 0x10 +/* 099F7C 7F06544C 00057C03 */ sra $t7, $a1, 0x10 +/* 099F80 7F065450 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099F84 7F065454 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099F88 7F065458 01E02825 */ move $a1, $t7 +/* 099F8C 7F06545C 0C002382 */ jal play_sfx_a1 +/* 099F90 7F065460 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 099F94 7F065464 1000000D */ b .L7F06549C +/* 099F98 7F065468 00000000 */ nop +/* 099F9C 7F06546C 8E1801D8 */ lw $t8, 0x1d8($s0) +.L7F065470: +/* 099FA0 7F065470 1700000A */ bnez $t8, .L7F06549C +/* 099FA4 7F065474 00000000 */ nop +/* 099FA8 7F065478 0FC17805 */ jal bondwalkItemGetSound +/* 099FAC 7F06547C 02202025 */ move $a0, $s1 +/* 099FB0 7F065480 00022C00 */ sll $a1, $v0, 0x10 +/* 099FB4 7F065484 0005CC03 */ sra $t9, $a1, 0x10 +/* 099FB8 7F065488 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099FBC 7F06548C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099FC0 7F065490 03202825 */ move $a1, $t9 +/* 099FC4 7F065494 0C002382 */ jal play_sfx_a1 +/* 099FC8 7F065498 260601D8 */ addiu $a2, $s0, 0x1d8 +.L7F06549C: +/* 099FCC 7F06549C 3C0B8005 */ lui $t3, %hi(global_timer) +/* 099FD0 7F0654A0 8D6B837C */ lw $t3, %lo(global_timer)($t3) +/* 099FD4 7F0654A4 AE0B01E0 */ sw $t3, 0x1e0($s0) +/* 099FD8 7F0654A8 24010017 */ li $at, 23 +.L7F0654AC: +/* 099FDC 7F0654AC 16210026 */ bne $s1, $at, .L7F065548 +/* 099FE0 7F0654B0 3C0C8003 */ lui $t4, %hi(D_80035E90) +/* 099FE4 7F0654B4 8D8C5E90 */ lw $t4, %lo(D_80035E90)($t4) +/* 099FE8 7F0654B8 0C002914 */ jal get_random_value +/* 099FEC 7F0654BC AFAC01B0 */ sw $t4, 0x1b0($sp) +/* 099FF0 7F0654C0 304D0001 */ andi $t5, $v0, 1 +/* 099FF4 7F0654C4 000D7040 */ sll $t6, $t5, 1 +/* 099FF8 7F0654C8 03AE2821 */ addu $a1, $sp, $t6 +/* 099FFC 7F0654CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A000 7F0654D0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A004 7F0654D4 84A501B0 */ lh $a1, 0x1b0($a1) +/* 09A008 7F0654D8 0C002382 */ jal play_sfx_a1 +/* 09A00C 7F0654DC 00003025 */ move $a2, $zero +/* 09A010 7F0654E0 1000001A */ b .L7F06554C +/* 09A014 7F0654E4 8E0B0024 */ lw $t3, 0x24($s0) +.L7F0654E8: +/* 09A018 7F0654E8 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A01C 7F0654EC 24180003 */ li $t8, 3 +/* 09A020 7F0654F0 2419000D */ li $t9, 13 +/* 09A024 7F0654F4 59E00006 */ blezl $t7, .L7F065510 +/* 09A028 7F0654F8 AE190024 */ sw $t9, 0x24($s0) +/* 09A02C 7F0654FC AE180024 */ sw $t8, 0x24($s0) +/* 09A030 7F065500 AE000020 */ sw $zero, 0x20($s0) +/* 09A034 7F065504 10000010 */ b .L7F065548 +/* 09A038 7F065508 AE00001C */ sw $zero, 0x1c($s0) +/* 09A03C 7F06550C AE190024 */ sw $t9, 0x24($s0) +.L7F065510: +/* 09A040 7F065510 AE000020 */ sw $zero, 0x20($s0) +/* 09A044 7F065514 0FC26919 */ jal get_num_players +/* 09A048 7F065518 AE00001C */ sw $zero, 0x1c($s0) +/* 09A04C 7F06551C 24010001 */ li $at, 1 +/* 09A050 7F065520 10410004 */ beq $v0, $at, .L7F065534 +/* 09A054 7F065524 00000000 */ nop +/* 09A058 7F065528 0FC31820 */ jal checkGamePaused +/* 09A05C 7F06552C 00000000 */ nop +/* 09A060 7F065530 14400005 */ bnez $v0, .L7F065548 +.L7F065534: +/* 09A064 7F065534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A068 7F065538 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A06C 7F06553C 24050059 */ li $a1, 89 +/* 09A070 7F065540 0C002382 */ jal play_sfx_a1 +/* 09A074 7F065544 00003025 */ move $a2, $zero +.L7F065548: +/* 09A078 7F065548 8E0B0024 */ lw $t3, 0x24($s0) +.L7F06554C: +/* 09A07C 7F06554C 24010003 */ li $at, 3 +/* 09A080 7F065550 156100D5 */ bne $t3, $at, .L7F0658A8 +/* 09A084 7F065554 2401001F */ li $at, 31 +/* 09A088 7F065558 16210013 */ bne $s1, $at, .L7F0655A8 +/* 09A08C 7F06555C 00000000 */ nop +/* 09A090 7F065560 8E0C0020 */ lw $t4, 0x20($s0) +/* 09A094 7F065564 3C048003 */ lui $a0, %hi(D_80035B68) +/* 09A098 7F065568 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 09A09C 7F06556C 448C4000 */ mtc1 $t4, $f8 +/* 09A0A0 7F065570 2606007C */ addiu $a2, $s0, 0x7c +/* 09A0A4 7F065574 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09A0A8 7F065578 46804020 */ cvt.s.w $f0, $f8 +/* 09A0AC 7F06557C 44050000 */ mfc1 $a1, $f0 +/* 09A0B0 7F065580 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09A0B4 7F065584 00000000 */ nop +/* 09A0B8 7F065588 10400003 */ beqz $v0, .L7F065598 +/* 09A0BC 7F06558C 240D0001 */ li $t5, 1 +/* 09A0C0 7F065590 100000C5 */ b .L7F0658A8 +/* 09A0C4 7F065594 AE0D00BC */ sw $t5, 0xbc($s0) +.L7F065598: +/* 09A0C8 7F065598 AE000024 */ sw $zero, 0x24($s0) +/* 09A0CC 7F06559C AE000020 */ sw $zero, 0x20($s0) +/* 09A0D0 7F0655A0 100000C1 */ b .L7F0658A8 +/* 09A0D4 7F0655A4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0655A8: +/* 09A0D8 7F0655A8 0FC1722D */ jal get_ptr_item_statistics +/* 09A0DC 7F0655AC 02202025 */ move $a0, $s1 +/* 09A0E0 7F0655B0 8E050018 */ lw $a1, 0x18($s0) +/* 09A0E4 7F0655B4 00405025 */ move $t2, $v0 +/* 09A0E8 7F0655B8 80470044 */ lb $a3, 0x44($v0) +/* 09A0EC 7F0655BC 10A00006 */ beqz $a1, .L7F0655D8 +/* 09A0F0 7F0655C0 80490045 */ lb $t1, 0x45($v0) +/* 09A0F4 7F0655C4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A0F8 7F0655C8 00E97821 */ addu $t7, $a3, $t1 +/* 09A0FC 7F0655CC 01CF082A */ slt $at, $t6, $t7 +/* 09A100 7F0655D0 5020000C */ beql $at, $zero, .L7F065604 +/* 09A104 7F0655D4 AE000024 */ sw $zero, 0x24($s0) +.L7F0655D8: +/* 09A108 7F0655D8 80440023 */ lb $a0, 0x23($v0) +/* 09A10C 7F0655DC 8E030020 */ lw $v1, 0x20($s0) +/* 09A110 7F0655E0 00E94021 */ addu $t0, $a3, $t1 +/* 09A114 7F0655E4 0480000A */ bltz $a0, .L7F065610 +/* 09A118 7F0655E8 00000000 */ nop +/* 09A11C 7F0655EC 14A00008 */ bnez $a1, .L7F065610 +/* 09A120 7F0655F0 0104C021 */ addu $t8, $t0, $a0 +/* 09A124 7F0655F4 0078082A */ slt $at, $v1, $t8 +/* 09A128 7F0655F8 14200005 */ bnez $at, .L7F065610 +/* 09A12C 7F0655FC 00000000 */ nop +/* 09A130 7F065600 AE000024 */ sw $zero, 0x24($s0) +.L7F065604: +/* 09A134 7F065604 AE000020 */ sw $zero, 0x20($s0) +/* 09A138 7F065608 100000A7 */ b .L7F0658A8 +/* 09A13C 7F06560C AE00001C */ sw $zero, 0x1c($s0) +.L7F065610: +/* 09A140 7F065610 50A00017 */ beql $a1, $zero, .L7F065670 +/* 09A144 7F065614 0068082A */ slt $at, $v1, $t0 +/* 09A148 7F065618 8E190010 */ lw $t9, 0x10($s0) +/* 09A14C 7F06561C 53200014 */ beql $t9, $zero, .L7F065670 +/* 09A150 7F065620 0068082A */ slt $at, $v1, $t0 +/* 09A154 7F065624 80460046 */ lb $a2, 0x46($v0) +/* 09A158 7F065628 0066082A */ slt $at, $v1, $a2 +/* 09A15C 7F06562C 54200010 */ bnezl $at, .L7F065670 +/* 09A160 7F065630 0068082A */ slt $at, $v1, $t0 +/* 09A164 7F065634 80440047 */ lb $a0, 0x47($v0) +/* 09A168 7F065638 0480000C */ bltz $a0, .L7F06566C +/* 09A16C 7F06563C 00642821 */ addu $a1, $v1, $a0 +/* 09A170 7F065640 00A8082A */ slt $at, $a1, $t0 +/* 09A174 7F065644 10200009 */ beqz $at, .L7F06566C +/* 09A178 7F065648 00A6082A */ slt $at, $a1, $a2 +/* 09A17C 7F06564C 14200007 */ bnez $at, .L7F06566C +/* 09A180 7F065650 240B0004 */ li $t3, 4 +/* 09A184 7F065654 AE0B0024 */ sw $t3, 0x24($s0) +/* 09A188 7F065658 AE000020 */ sw $zero, 0x20($s0) +/* 09A18C 7F06565C AE00001C */ sw $zero, 0x1c($s0) +/* 09A190 7F065660 804C0047 */ lb $t4, 0x47($v0) +/* 09A194 7F065664 10000090 */ b .L7F0658A8 +/* 09A198 7F065668 AE0C0038 */ sw $t4, 0x38($s0) +.L7F06566C: +/* 09A19C 7F06566C 0068082A */ slt $at, $v1, $t0 +.L7F065670: +/* 09A1A0 7F065670 1020008D */ beqz $at, .L7F0658A8 +/* 09A1A4 7F065674 260D007C */ addiu $t5, $s0, 0x7c +/* 09A1A8 7F065678 C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A1AC 7F06567C C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A1B0 7F065680 1460000A */ bnez $v1, .L7F0656AC +/* 09A1B4 7F065684 AFAD0030 */ sw $t5, 0x30($sp) +/* 09A1B8 7F065688 C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A1BC 7F06568C C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A1C0 7F065690 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A1C4 7F065694 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A1C8 7F065698 8E030020 */ lw $v1, 0x20($s0) +/* 09A1CC 7F06569C E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A1D0 7F0656A0 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A1D4 7F0656A4 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A1D8 7F0656A8 E6080054 */ swc1 $f8, 0x54($s0) +.L7F0656AC: +/* 09A1DC 7F0656AC 0067082A */ slt $at, $v1, $a3 +/* 09A1E0 7F0656B0 1020002B */ beqz $at, .L7F065760 +/* 09A1E4 7F0656B4 3C018005 */ lui $at, %hi(D_80054170) +/* 09A1E8 7F0656B8 C42C4170 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A1EC 7F0656BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A1F0 7F0656C0 44812000 */ mtc1 $at, $f4 +/* 09A1F4 7F0656C4 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A1F8 7F0656C8 46045183 */ div.s $f6, $f10, $f4 +/* 09A1FC 7F0656CC 46066201 */ sub.s $f8, $f12, $f6 +/* 09A200 7F0656D0 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A204 7F0656D4 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A208 7F0656D8 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A20C 7F0656DC AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A210 7F0656E0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A214 7F0656E4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A218 7F0656E8 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A21C 7F0656EC C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A220 7F0656F0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A224 7F0656F4 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A228 7F0656F8 44817000 */ mtc1 $at, $f14 +/* 09A22C 7F0656FC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A230 7F065700 44805000 */ mtc1 $zero, $f10 +/* 09A234 7F065704 46022182 */ mul.s $f6, $f4, $f2 +/* 09A238 7F065708 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A23C 7F06570C E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A240 7F065710 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A244 7F065714 3C018005 */ lui $at, %hi(D_80054174) +/* 09A248 7F065718 460E3203 */ div.s $f8, $f6, $f14 +/* 09A24C 7F06571C C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A250 7F065720 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A254 7F065724 C544000C */ lwc1 $f4, 0xc($t2) +/* 09A258 7F065728 46062201 */ sub.s $f8, $f4, $f6 +/* 09A25C 7F06572C 448E3000 */ mtc1 $t6, $f6 +/* 09A260 7F065730 46024282 */ mul.s $f10, $f8, $f2 +/* 09A264 7F065734 46803220 */ cvt.s.w $f8, $f6 +/* 09A268 7F065738 44873000 */ mtc1 $a3, $f6 +/* 09A26C 7F06573C 460E5103 */ div.s $f4, $f10, $f14 +/* 09A270 7F065740 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A274 7F065744 C42A4174 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A278 7F065748 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A27C 7F06574C 46803220 */ cvt.s.w $f8, $f6 +/* 09A280 7F065750 0FC15FAB */ jal sinf +/* 09A284 7F065754 46082303 */ div.s $f12, $f4, $f8 +/* 09A288 7F065758 10000032 */ b .L7F065824 +/* 09A28C 7F06575C 46000086 */ mov.s $f2, $f0 +.L7F065760: +/* 09A290 7F065760 3C018005 */ lui $at, %hi(D_80054178) +/* 09A294 7F065764 C42C4178 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A298 7F065768 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A29C 7F06576C 44813000 */ mtc1 $at, $f6 +/* 09A2A0 7F065770 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A2A4 7F065774 46065103 */ div.s $f4, $f10, $f6 +/* 09A2A8 7F065778 46046201 */ sub.s $f8, $f12, $f4 +/* 09A2AC 7F06577C E6080068 */ swc1 $f8, 0x68($s0) +/* 09A2B0 7F065780 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A2B4 7F065784 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A2B8 7F065788 AFA901A0 */ sw $t1, 0x1a0($sp) +/* 09A2BC 7F06578C AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A2C0 7F065790 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A2C4 7F065794 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A2C8 7F065798 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A2CC 7F06579C C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A2D0 7F0657A0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A2D4 7F0657A4 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A2D8 7F0657A8 44817000 */ mtc1 $at, $f14 +/* 09A2DC 7F0657AC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A2E0 7F0657B0 44805000 */ mtc1 $zero, $f10 +/* 09A2E4 7F0657B4 46023102 */ mul.s $f4, $f6, $f2 +/* 09A2E8 7F0657B8 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A2EC 7F0657BC 8FA901A0 */ lw $t1, 0x1a0($sp) +/* 09A2F0 7F0657C0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A2F4 7F0657C4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A2F8 7F0657C8 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A2FC 7F0657CC 460E2203 */ div.s $f8, $f4, $f14 +/* 09A300 7F0657D0 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A304 7F0657D4 01E7C023 */ subu $t8, $t7, $a3 +/* 09A308 7F0657D8 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A30C 7F0657DC C546000C */ lwc1 $f6, 0xc($t2) +/* 09A310 7F0657E0 46043201 */ sub.s $f8, $f6, $f4 +/* 09A314 7F0657E4 44982000 */ mtc1 $t8, $f4 +/* 09A318 7F0657E8 46024282 */ mul.s $f10, $f8, $f2 +/* 09A31C 7F0657EC 46802220 */ cvt.s.w $f8, $f4 +/* 09A320 7F0657F0 44892000 */ mtc1 $t1, $f4 +/* 09A324 7F0657F4 460E5183 */ div.s $f6, $f10, $f14 +/* 09A328 7F0657F8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A32C 7F0657FC C42A417C */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A330 7F065800 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A334 7F065804 46802220 */ cvt.s.w $f8, $f4 +/* 09A338 7F065808 0FC15FA8 */ jal cosf +/* 09A33C 7F06580C 46083303 */ div.s $f12, $f6, $f8 +/* 09A340 7F065810 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A344 7F065814 44815000 */ mtc1 $at, $f10 +/* 09A348 7F065818 44813000 */ mtc1 $at, $f6 +/* 09A34C 7F06581C 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A350 7F065820 46062080 */ add.s $f2, $f4, $f6 +.L7F065824: +/* 09A354 7F065824 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A358 7F065828 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A35C 7F06582C 44061000 */ mfc1 $a2, $f2 +/* 09A360 7F065830 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A364 7F065834 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09A368 7F065838 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A36C 7F06583C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A370 7F065840 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09A374 7F065844 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A378 7F065848 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A37C 7F06584C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A380 7F065850 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A384 7F065854 24190001 */ li $t9, 1 +/* 09A388 7F065858 46025102 */ mul.s $f4, $f10, $f2 +/* 09A38C 7F06585C 46104281 */ sub.s $f10, $f8, $f16 +/* 09A390 7F065860 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A394 7F065864 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A398 7F065868 AE1900BC */ sw $t9, 0xbc($s0) +/* 09A39C 7F06586C 46000306 */ mov.s $f12, $f0 +/* 09A3A0 7F065870 460E2180 */ add.s $f6, $f4, $f14 +/* 09A3A4 7F065874 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3A8 7F065878 46124281 */ sub.s $f10, $f8, $f18 +/* 09A3AC 7F06587C E606006C */ swc1 $f6, 0x6c($s0) +/* 09A3B0 7F065880 46102180 */ add.s $f6, $f4, $f16 +/* 09A3B4 7F065884 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3B8 7F065888 E6060070 */ swc1 $f6, 0x70($s0) +/* 09A3BC 7F06588C 46122180 */ add.s $f6, $f4, $f18 +/* 09A3C0 7F065890 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A3C4 7F065894 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A3C8 7F065898 8FA50030 */ lw $a1, 0x30($sp) +/* 09A3CC 7F06589C 2604006C */ addiu $a0, $s0, 0x6c +/* 09A3D0 7F0658A0 0FC16266 */ jal matrix_4x4_set_position +/* 09A3D4 7F0658A4 8FA50030 */ lw $a1, 0x30($sp) +.L7F0658A8: +/* 09A3D8 7F0658A8 8E020024 */ lw $v0, 0x24($s0) +/* 09A3DC 7F0658AC 24010004 */ li $at, 4 +/* 09A3E0 7F0658B0 54410053 */ bnel $v0, $at, .L7F065A00 +/* 09A3E4 7F0658B4 2401000D */ li $at, 13 +/* 09A3E8 7F0658B8 8E030020 */ lw $v1, 0x20($s0) +/* 09A3EC 7F0658BC 54600013 */ bnezl $v1, .L7F06590C +/* 09A3F0 7F0658C0 8E020038 */ lw $v0, 0x38($s0) +/* 09A3F4 7F0658C4 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A3F8 7F0658C8 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A3FC 7F0658CC C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A400 7F0658D0 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A404 7F0658D4 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A408 7F0658D8 E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A40C 7F0658DC E6040050 */ swc1 $f4, 0x50($s0) +/* 09A410 7F0658E0 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A414 7F0658E4 44804000 */ mtc1 $zero, $f8 +/* 09A418 7F0658E8 44805000 */ mtc1 $zero, $f10 +/* 09A41C 7F0658EC 44802000 */ mtc1 $zero, $f4 +/* 09A420 7F0658F0 44803000 */ mtc1 $zero, $f6 +/* 09A424 7F0658F4 8E030020 */ lw $v1, 0x20($s0) +/* 09A428 7F0658F8 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A42C 7F0658FC E60A005C */ swc1 $f10, 0x5c($s0) +/* 09A430 7F065900 E6040060 */ swc1 $f4, 0x60($s0) +/* 09A434 7F065904 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A438 7F065908 8E020038 */ lw $v0, 0x38($s0) +.L7F06590C: +/* 09A43C 7F06590C 0062082A */ slt $at, $v1, $v0 +/* 09A440 7F065910 10200036 */ beqz $at, .L7F0659EC +/* 09A444 7F065914 00435823 */ subu $t3, $v0, $v1 +/* 09A448 7F065918 448B4000 */ mtc1 $t3, $f8 +/* 09A44C 7F06591C 3C018005 */ lui $at, %hi(D_80054180) +/* 09A450 7F065920 C4244180 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09A454 7F065924 468042A0 */ cvt.s.w $f10, $f8 +/* 09A458 7F065928 44824000 */ mtc1 $v0, $f8 +/* 09A45C 7F06592C 260C007C */ addiu $t4, $s0, 0x7c +/* 09A460 7F065930 260D006C */ addiu $t5, $s0, 0x6c +/* 09A464 7F065934 AFAD0034 */ sw $t5, 0x34($sp) +/* 09A468 7F065938 AFAC0030 */ sw $t4, 0x30($sp) +/* 09A46C 7F06593C 46045182 */ mul.s $f6, $f10, $f4 +/* 09A470 7F065940 468042A0 */ cvt.s.w $f10, $f8 +/* 09A474 7F065944 0FC15FA8 */ jal cosf +/* 09A478 7F065948 460A3303 */ div.s $f12, $f6, $f10 +/* 09A47C 7F06594C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A480 7F065950 44818000 */ mtc1 $at, $f16 +/* 09A484 7F065954 00000000 */ nop +/* 09A488 7F065958 46100102 */ mul.s $f4, $f0, $f16 +/* 09A48C 7F06595C 46102080 */ add.s $f2, $f4, $f16 +/* 09A490 7F065960 E7A2018C */ swc1 $f2, 0x18c($sp) +/* 09A494 7F065964 44061000 */ mfc1 $a2, $f2 +/* 09A498 7F065968 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A49C 7F06596C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A4A0 7F065970 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A4A4 7F065974 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A4A8 7F065978 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A4AC 7F06597C C7A2018C */ lwc1 $f2, 0x18c($sp) +/* 09A4B0 7F065980 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A4B4 7F065984 460E4181 */ sub.s $f6, $f8, $f14 +/* 09A4B8 7F065988 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A4BC 7F06598C C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A4C0 7F065990 240E0001 */ li $t6, 1 +/* 09A4C4 7F065994 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4C8 7F065998 46104181 */ sub.s $f6, $f8, $f16 +/* 09A4CC 7F06599C C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A4D0 7F0659A0 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A4D4 7F0659A4 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A4D8 7F0659A8 46000306 */ mov.s $f12, $f0 +/* 09A4DC 7F0659AC 460E5100 */ add.s $f4, $f10, $f14 +/* 09A4E0 7F0659B0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4E4 7F0659B4 46124181 */ sub.s $f6, $f8, $f18 +/* 09A4E8 7F0659B8 E604006C */ swc1 $f4, 0x6c($s0) +/* 09A4EC 7F0659BC 46105100 */ add.s $f4, $f10, $f16 +/* 09A4F0 7F0659C0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4F4 7F0659C4 E6040070 */ swc1 $f4, 0x70($s0) +/* 09A4F8 7F0659C8 46125100 */ add.s $f4, $f10, $f18 +/* 09A4FC 7F0659CC E6040074 */ swc1 $f4, 0x74($s0) +/* 09A500 7F0659D0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A504 7F0659D4 8FA50030 */ lw $a1, 0x30($sp) +/* 09A508 7F0659D8 8FA40034 */ lw $a0, 0x34($sp) +/* 09A50C 7F0659DC 0FC16266 */ jal matrix_4x4_set_position +/* 09A510 7F0659E0 8FA50030 */ lw $a1, 0x30($sp) +/* 09A514 7F0659E4 10000005 */ b .L7F0659FC +/* 09A518 7F0659E8 8E020024 */ lw $v0, 0x24($s0) +.L7F0659EC: +/* 09A51C 7F0659EC AE000024 */ sw $zero, 0x24($s0) +/* 09A520 7F0659F0 AE000020 */ sw $zero, 0x20($s0) +/* 09A524 7F0659F4 AE00001C */ sw $zero, 0x1c($s0) +/* 09A528 7F0659F8 00001025 */ move $v0, $zero +.L7F0659FC: +/* 09A52C 7F0659FC 2401000D */ li $at, 13 +.L7F065A00: +/* 09A530 7F065A00 54410013 */ bnel $v0, $at, .L7F065A50 +/* 09A534 7F065A04 8E020024 */ lw $v0, 0x24($s0) +/* 09A538 7F065A08 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A53C 7F065A0C 55E00004 */ bnezl $t7, .L7F065A20 +/* 09A540 7F065A10 8E050018 */ lw $a1, 0x18($s0) +/* 09A544 7F065A14 0FC17A02 */ jal sub_GAME_7F05E808 +/* 09A548 7F065A18 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A54C 7F065A1C 8E050018 */ lw $a1, 0x18($s0) +.L7F065A20: +/* 09A550 7F065A20 54A00008 */ bnezl $a1, .L7F065A44 +/* 09A554 7F065A24 AE000024 */ sw $zero, 0x24($s0) +/* 09A558 7F065A28 54A00009 */ bnezl $a1, .L7F065A50 +/* 09A55C 7F065A2C 8E020024 */ lw $v0, 0x24($s0) +/* 09A560 7F065A30 8E180020 */ lw $t8, 0x20($s0) +/* 09A564 7F065A34 2B010014 */ slti $at, $t8, 0x14 +/* 09A568 7F065A38 54200005 */ bnezl $at, .L7F065A50 +/* 09A56C 7F065A3C 8E020024 */ lw $v0, 0x24($s0) +/* 09A570 7F065A40 AE000024 */ sw $zero, 0x24($s0) +.L7F065A44: +/* 09A574 7F065A44 AE000020 */ sw $zero, 0x20($s0) +/* 09A578 7F065A48 AE00001C */ sw $zero, 0x1c($s0) +/* 09A57C 7F065A4C 8E020024 */ lw $v0, 0x24($s0) +.L7F065A50: +/* 09A580 7F065A50 24050005 */ li $a1, 5 +/* 09A584 7F065A54 24040010 */ li $a0, 16 +/* 09A588 7F065A58 54A2005E */ bnel $a1, $v0, .L7F065BD4 +/* 09A58C 7F065A5C 24060006 */ li $a2, 6 +/* 09A590 7F065A60 0FC26919 */ jal get_num_players +/* 09A594 7F065A64 AFA40188 */ sw $a0, 0x188($sp) +/* 09A598 7F065A68 28410002 */ slti $at, $v0, 2 +/* 09A59C 7F065A6C 14200002 */ bnez $at, .L7F065A78 +/* 09A5A0 7F065A70 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5A4 7F065A74 2404000C */ li $a0, 12 +.L7F065A78: +/* 09A5A8 7F065A78 8E19001C */ lw $t9, 0x1c($s0) +/* 09A5AC 7F065A7C 5720000C */ bnezl $t9, .L7F065AB0 +/* 09A5B0 7F065A80 8E030020 */ lw $v1, 0x20($s0) +/* 09A5B4 7F065A84 0FC26919 */ jal get_num_players +/* 09A5B8 7F065A88 AFA40188 */ sw $a0, 0x188($sp) +/* 09A5BC 7F065A8C 24010001 */ li $at, 1 +/* 09A5C0 7F065A90 14410004 */ bne $v0, $at, .L7F065AA4 +/* 09A5C4 7F065A94 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5C8 7F065A98 240B0011 */ li $t3, 17 +/* 09A5CC 7F065A9C 10000003 */ b .L7F065AAC +/* 09A5D0 7F065AA0 AE0B0040 */ sw $t3, 0x40($s0) +.L7F065AA4: +/* 09A5D4 7F065AA4 240C000D */ li $t4, 13 +/* 09A5D8 7F065AA8 AE0C0040 */ sw $t4, 0x40($s0) +.L7F065AAC: +/* 09A5DC 7F065AAC 8E030020 */ lw $v1, 0x20($s0) +.L7F065AB0: +/* 09A5E0 7F065AB0 0064082A */ slt $at, $v1, $a0 +/* 09A5E4 7F065AB4 54200026 */ bnezl $at, .L7F065B50 +/* 09A5E8 7F065AB8 44834000 */ mtc1 $v1, $f8 +/* 09A5EC 7F065ABC 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09A5F0 7F065AC0 02202025 */ move $a0, $s1 +/* 09A5F4 7F065AC4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A5F8 7F065AC8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A5FC 7F065ACC 00027080 */ sll $t6, $v0, 2 +/* 09A600 7F065AD0 8E18002C */ lw $t8, 0x2c($s0) +/* 09A604 7F065AD4 01AE1821 */ addu $v1, $t5, $t6 +/* 09A608 7F065AD8 8C6F1130 */ lw $t7, 0x1130($v1) +/* 09A60C 7F065ADC 01F8C821 */ addu $t9, $t7, $t8 +/* 09A610 7F065AE0 AC791130 */ sw $t9, 0x1130($v1) +/* 09A614 7F065AE4 0FC26919 */ jal get_num_players +/* 09A618 7F065AE8 AE00002C */ sw $zero, 0x2c($s0) +/* 09A61C 7F065AEC 28410002 */ slti $at, $v0, 2 +/* 09A620 7F065AF0 14200003 */ bnez $at, .L7F065B00 +/* 09A624 7F065AF4 00000000 */ nop +/* 09A628 7F065AF8 0FC26CDA */ jal sub_GAME_7F09B368 +/* 09A62C 7F065AFC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065B00: +/* 09A630 7F065B00 0FC17EC0 */ jal sub_GAME_7F05FB00 +/* 09A634 7F065B04 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A638 7F065B08 240B0006 */ li $t3, 6 +/* 09A63C 7F065B0C AE0B0024 */ sw $t3, 0x24($s0) +/* 09A640 7F065B10 0FC230F0 */ jal check_if_item_available +/* 09A644 7F065B14 24040011 */ li $a0, 17 +/* 09A648 7F065B18 10400006 */ beqz $v0, .L7F065B34 +/* 09A64C 7F065B1C 24050005 */ li $a1, 5 +/* 09A650 7F065B20 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A654 7F065B24 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A658 7F065B28 240C0011 */ li $t4, 17 +/* 09A65C 7F065B2C 10000005 */ b .L7F065B44 +/* 09A660 7F065B30 ADAC2A38 */ sw $t4, 0x2a38($t5) +.L7F065B34: +/* 09A664 7F065B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A668 7F065B38 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A66C 7F065B3C 240E0001 */ li $t6, 1 +/* 09A670 7F065B40 ADEE2A38 */ sw $t6, 0x2a38($t7) +.L7F065B44: +/* 09A674 7F065B44 10000022 */ b .L7F065BD0 +/* 09A678 7F065B48 8E020024 */ lw $v0, 0x24($s0) +/* 09A67C 7F065B4C 44834000 */ mtc1 $v1, $f8 +.L7F065B50: +/* 09A680 7F065B50 3C018005 */ lui $at, %hi(D_80054184) +/* 09A684 7F065B54 C42A4184 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09A688 7F065B58 468041A0 */ cvt.s.w $f6, $f8 +/* 09A68C 7F065B5C 44844000 */ mtc1 $a0, $f8 +/* 09A690 7F065B60 24180001 */ li $t8, 1 +/* 09A694 7F065B64 AE1800BC */ sw $t8, 0xbc($s0) +/* 09A698 7F065B68 2605007C */ addiu $a1, $s0, 0x7c +/* 09A69C 7F065B6C 460A3102 */ mul.s $f4, $f6, $f10 +/* 09A6A0 7F065B70 468041A0 */ cvt.s.w $f6, $f8 +/* 09A6A4 7F065B74 46062303 */ div.s $f12, $f4, $f6 +/* 09A6A8 7F065B78 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A6AC 7F065B7C E7AC0184 */ swc1 $f12, 0x184($sp) +/* 09A6B0 7F065B80 44805000 */ mtc1 $zero, $f10 +/* 09A6B4 7F065B84 00000000 */ nop +/* 09A6B8 7F065B88 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09A6BC 7F065B8C 0FC15FA8 */ jal cosf +/* 09A6C0 7F065B90 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6C4 7F065B94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A6C8 7F065B98 44814000 */ mtc1 $at, $f8 +/* 09A6CC 7F065B9C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A6D0 7F065BA0 44813000 */ mtc1 $at, $f6 +/* 09A6D4 7F065BA4 46004101 */ sub.s $f4, $f8, $f0 +/* 09A6D8 7F065BA8 46062282 */ mul.s $f10, $f4, $f6 +/* 09A6DC 7F065BAC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09A6E0 7F065BB0 0FC15FAB */ jal sinf +/* 09A6E4 7F065BB4 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6E8 7F065BB8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A6EC 7F065BBC 44814000 */ mtc1 $at, $f8 +/* 09A6F0 7F065BC0 8E020024 */ lw $v0, 0x24($s0) +/* 09A6F4 7F065BC4 24050005 */ li $a1, 5 +/* 09A6F8 7F065BC8 46080102 */ mul.s $f4, $f0, $f8 +/* 09A6FC 7F065BCC E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F065BD0: +/* 09A700 7F065BD0 24060006 */ li $a2, 6 +.L7F065BD4: +/* 09A704 7F065BD4 10C20003 */ beq $a2, $v0, .L7F065BE4 +/* 09A708 7F065BD8 24010007 */ li $at, 7 +/* 09A70C 7F065BDC 54410066 */ bnel $v0, $at, .L7F065D78 +/* 09A710 7F065BE0 24010008 */ li $at, 8 +.L7F065BE4: +/* 09A714 7F065BE4 8E190044 */ lw $t9, 0x44($s0) +/* 09A718 7F065BE8 13200006 */ beqz $t9, .L7F065C04 +/* 09A71C 7F065BEC 00000000 */ nop +/* 09A720 7F065BF0 8E0B0020 */ lw $t3, 0x20($s0) +/* 09A724 7F065BF4 8E0C0040 */ lw $t4, 0x40($s0) +/* 09A728 7F065BF8 016C082A */ slt $at, $t3, $t4 +/* 09A72C 7F065BFC 5420003E */ bnezl $at, .L7F065CF8 +/* 09A730 7F065C00 8E020024 */ lw $v0, 0x24($s0) +.L7F065C04: +/* 09A734 7F065C04 14C20034 */ bne $a2, $v0, .L7F065CD8 +/* 09A738 7F065C08 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A73C 7F065C0C 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A740 7F065C10 8FAE0038 */ lw $t6, 0x38($sp) +/* 09A744 7F065C14 01AE1823 */ subu $v1, $t5, $t6 +/* 09A748 7F065C18 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09A74C 7F065C1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09A750 7F065C20 50C20025 */ beql $a2, $v0, .L7F065CB8 +/* 09A754 7F065C24 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A758 7F065C28 50A20023 */ beql $a1, $v0, .L7F065CB8 +/* 09A75C 7F065C2C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A760 7F065C30 8C640028 */ lw $a0, 0x28($v1) +/* 09A764 7F065C34 2401000E */ li $at, 14 +/* 09A768 7F065C38 50A4001F */ beql $a1, $a0, .L7F065CB8 +/* 09A76C 7F065C3C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A770 7F065C40 1041001C */ beq $v0, $at, .L7F065CB4 +/* 09A774 7F065C44 2401000F */ li $at, 15 +/* 09A778 7F065C48 1041001A */ beq $v0, $at, .L7F065CB4 +/* 09A77C 7F065C4C 24010010 */ li $at, 16 +/* 09A780 7F065C50 10410018 */ beq $v0, $at, .L7F065CB4 +/* 09A784 7F065C54 2401000E */ li $at, 14 +/* 09A788 7F065C58 10810016 */ beq $a0, $at, .L7F065CB4 +/* 09A78C 7F065C5C 8FAF01D0 */ lw $t7, 0x1d0($sp) +/* 09A790 7F065C60 15E0000C */ bnez $t7, .L7F065C94 +/* 09A794 7F065C64 00000000 */ nop +/* 09A798 7F065C68 0FC17674 */ jal get_item_in_hand +/* 09A79C 7F065C6C 24040001 */ li $a0, 1 +/* 09A7A0 7F065C70 8E04003C */ lw $a0, 0x3c($s0) +/* 09A7A4 7F065C74 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7A8 7F065C78 00402825 */ move $a1, $v0 +/* 09A7AC 7F065C7C 1440000D */ bnez $v0, .L7F065CB4 +/* 09A7B0 7F065C80 24040001 */ li $a0, 1 +/* 09A7B4 7F065C84 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 09A7B8 7F065C88 00002825 */ move $a1, $zero +/* 09A7BC 7F065C8C 1000000A */ b .L7F065CB8 +/* 09A7C0 7F065C90 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065C94: +/* 09A7C4 7F065C94 0FC17674 */ jal get_item_in_hand +/* 09A7C8 7F065C98 00002025 */ move $a0, $zero +/* 09A7CC 7F065C9C 00402025 */ move $a0, $v0 +/* 09A7D0 7F065CA0 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7D4 7F065CA4 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7D8 7F065CA8 54400003 */ bnezl $v0, .L7F065CB8 +/* 09A7DC 7F065CAC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7E0 7F065CB0 AE00003C */ sw $zero, 0x3c($s0) +.L7F065CB4: +/* 09A7E4 7F065CB4 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065CB8: +/* 09A7E8 7F065CB8 0FC176D5 */ jal remove_hands_item +/* 09A7EC 7F065CBC 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7F0 7F065CC0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09A7F4 7F065CC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7F8 7F065CC8 24180007 */ li $t8, 7 +/* 09A7FC 7F065CCC 00408825 */ move $s1, $v0 +/* 09A800 7F065CD0 10000008 */ b .L7F065CF4 +/* 09A804 7F065CD4 AE180024 */ sw $t8, 0x24($s0) +.L7F065CD8: +/* 09A808 7F065CD8 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A80C 7F065CDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A810 7F065CE0 10400004 */ beqz $v0, .L7F065CF4 +/* 09A814 7F065CE4 24190008 */ li $t9, 8 +/* 09A818 7F065CE8 AE190024 */ sw $t9, 0x24($s0) +/* 09A81C 7F065CEC AE000020 */ sw $zero, 0x20($s0) +/* 09A820 7F065CF0 AE00001C */ sw $zero, 0x1c($s0) +.L7F065CF4: +/* 09A824 7F065CF4 8E020024 */ lw $v0, 0x24($s0) +.L7F065CF8: +/* 09A828 7F065CF8 24060006 */ li $a2, 6 +/* 09A82C 7F065CFC 24010007 */ li $at, 7 +/* 09A830 7F065D00 10C20003 */ beq $a2, $v0, .L7F065D10 +/* 09A834 7F065D04 240B0001 */ li $t3, 1 +/* 09A838 7F065D08 5441001B */ bnel $v0, $at, .L7F065D78 +/* 09A83C 7F065D0C 24010008 */ li $at, 8 +.L7F065D10: +/* 09A840 7F065D10 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09A844 7F065D14 3C018005 */ lui $at, %hi(D_80054188) +/* 09A848 7F065D18 C42C4188 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09A84C 7F065D1C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A850 7F065D20 2605007C */ addiu $a1, $s0, 0x7c +/* 09A854 7F065D24 44803000 */ mtc1 $zero, $f6 +/* 09A858 7F065D28 3C018005 */ lui $at, %hi(D_8005418C) +/* 09A85C 7F065D2C E60600AC */ swc1 $f6, 0xac($s0) +/* 09A860 7F065D30 0FC15FA8 */ jal cosf +/* 09A864 7F065D34 C42C418C */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09A868 7F065D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A86C 7F065D3C 44815000 */ mtc1 $at, $f10 +/* 09A870 7F065D40 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A874 7F065D44 44812000 */ mtc1 $at, $f4 +/* 09A878 7F065D48 46005201 */ sub.s $f8, $f10, $f0 +/* 09A87C 7F065D4C 3C018005 */ lui $at, %hi(D_80054190) +/* 09A880 7F065D50 46044182 */ mul.s $f6, $f8, $f4 +/* 09A884 7F065D54 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09A888 7F065D58 0FC15FAB */ jal sinf +/* 09A88C 7F065D5C C42C4190 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09A890 7F065D60 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A894 7F065D64 44815000 */ mtc1 $at, $f10 +/* 09A898 7F065D68 8E020024 */ lw $v0, 0x24($s0) +/* 09A89C 7F065D6C 460A0202 */ mul.s $f8, $f0, $f10 +/* 09A8A0 7F065D70 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09A8A4 7F065D74 24010008 */ li $at, 8 +.L7F065D78: +/* 09A8A8 7F065D78 14410088 */ bne $v0, $at, .L7F065F9C +/* 09A8AC 7F065D7C 240C0017 */ li $t4, 23 +/* 09A8B0 7F065D80 0FC26919 */ jal get_num_players +/* 09A8B4 7F065D84 AFAC0178 */ sw $t4, 0x178($sp) +/* 09A8B8 7F065D88 28410002 */ slti $at, $v0, 2 +/* 09A8BC 7F065D8C 14200002 */ bnez $at, .L7F065D98 +/* 09A8C0 7F065D90 240D000C */ li $t5, 12 +/* 09A8C4 7F065D94 AFAD0178 */ sw $t5, 0x178($sp) +.L7F065D98: +/* 09A8C8 7F065D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09A8CC 7F065D9C 55C00048 */ bnezl $t6, .L7F065EC0 +/* 09A8D0 7F065DA0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A8D4 7F065DA4 0FC26919 */ jal get_num_players +/* 09A8D8 7F065DA8 00000000 */ nop +/* 09A8DC 7F065DAC 28410002 */ slti $at, $v0, 2 +/* 09A8E0 7F065DB0 14200003 */ bnez $at, .L7F065DC0 +/* 09A8E4 7F065DB4 00000000 */ nop +/* 09A8E8 7F065DB8 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09A8EC 7F065DBC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065DC0: +/* 09A8F0 7F065DC0 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09A8F4 7F065DC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A8F8 7F065DC8 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A8FC 7F065DCC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A900 7F065DD0 3C188005 */ lui $t8, %hi(clock_timer) +/* 09A904 7F065DD4 3C198008 */ lui $t9, %hi(pPlayer) +/* 09A908 7F065DD8 ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09A90C 7F065DDC 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 09A910 7F065DE0 5B000037 */ blezl $t8, .L7F065EC0 +/* 09A914 7F065DE4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A918 7F065DE8 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09A91C 7F065DEC 24010001 */ li $at, 1 +/* 09A920 7F065DF0 8F2B0000 */ lw $t3, ($t9) +/* 09A924 7F065DF4 51610032 */ beql $t3, $at, .L7F065EC0 +/* 09A928 7F065DF8 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A92C 7F065DFC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A930 7F065E00 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A934 7F065E04 1040002D */ beqz $v0, .L7F065EBC +/* 09A938 7F065E08 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 09A93C 7F065E0C 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 09A940 7F065E10 2A21003E */ slti $at, $s1, 0x3e +/* 09A944 7F065E14 5580002A */ bnezl $t4, .L7F065EC0 +/* 09A948 7F065E18 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A94C 7F065E1C 14200005 */ bnez $at, .L7F065E34 +/* 09A950 7F065E20 24010058 */ li $at, 88 +/* 09A954 7F065E24 52210026 */ beql $s1, $at, .L7F065EC0 +/* 09A958 7F065E28 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A95C 7F065E2C 1000001E */ b .L7F065EA8 +/* 09A960 7F065E30 00000000 */ nop +.L7F065E34: +/* 09A964 7F065E34 2E21003E */ sltiu $at, $s1, 0x3e +/* 09A968 7F065E38 1020001B */ beqz $at, .L7F065EA8 +/* 09A96C 7F065E3C 00116880 */ sll $t5, $s1, 2 +/* 09A970 7F065E40 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09A974 7F065E44 002D0821 */ addu $at, $at, $t5 +/* 09A978 7F065E48 8C2D4194 */ lw $t5, %lo(jpt_80054194)($at) +/* 09A97C 7F065E4C 01A00008 */ jr $t5 +/* 09A980 7F065E50 00000000 */ nop +weapon_playsfx_F2: +/* 09A984 7F065E54 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A988 7F065E58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A98C 7F065E5C 240500F2 */ li $a1, 242 +/* 09A990 7F065E60 0C002382 */ jal play_sfx_a1 +/* 09A994 7F065E64 00003025 */ move $a2, $zero +/* 09A998 7F065E68 10000015 */ b .L7F065EC0 +/* 09A99C 7F065E6C 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_knife: +/* 09A9A0 7F065E70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9A4 7F065E74 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9A8 7F065E78 240500E9 */ li $a1, 233 +/* 09A9AC 7F065E7C 0C002382 */ jal play_sfx_a1 +/* 09A9B0 7F065E80 00003025 */ move $a2, $zero +/* 09A9B4 7F065E84 1000000E */ b .L7F065EC0 +/* 09A9B8 7F065E88 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_mine: +/* 09A9BC 7F065E8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9C0 7F065E90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9C4 7F065E94 240500EB */ li $a1, 235 +/* 09A9C8 7F065E98 0C002382 */ jal play_sfx_a1 +/* 09A9CC 7F065E9C 00003025 */ move $a2, $zero +/* 09A9D0 7F065EA0 10000007 */ b .L7F065EC0 +/* 09A9D4 7F065EA4 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_gun: +.L7F065EA8: +/* 09A9D8 7F065EA8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9DC 7F065EAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9E0 7F065EB0 240500E8 */ li $a1, 232 +/* 09A9E4 7F065EB4 0C002382 */ jal play_sfx_a1 +/* 09A9E8 7F065EB8 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +.L7F065EBC: +/* 09A9EC 7F065EBC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F065EC0: +/* 09A9F0 7F065EC0 8FAF0178 */ lw $t7, 0x178($sp) +/* 09A9F4 7F065EC4 01CF082A */ slt $at, $t6, $t7 +/* 09A9F8 7F065EC8 5020000E */ beql $at, $zero, .L7F065F04 +/* 09A9FC 7F065ECC AE000024 */ sw $zero, 0x24($s0) +/* 09AA00 7F065ED0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AA04 7F065ED4 02202025 */ move $a0, $s1 +/* 09AA08 7F065ED8 10400009 */ beqz $v0, .L7F065F00 +/* 09AA0C 7F065EDC 02202025 */ move $a0, $s1 +/* 09AA10 7F065EE0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA14 7F065EE4 24050800 */ li $a1, 2048 +/* 09AA18 7F065EE8 10400005 */ beqz $v0, .L7F065F00 +/* 09AA1C 7F065EEC 02202025 */ move $a0, $s1 +/* 09AA20 7F065EF0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA24 7F065EF4 24052000 */ li $a1, 8192 +/* 09AA28 7F065EF8 10400006 */ beqz $v0, .L7F065F14 +/* 09AA2C 7F065EFC 8FB80178 */ lw $t8, 0x178($sp) +.L7F065F00: +/* 09AA30 7F065F00 AE000024 */ sw $zero, 0x24($s0) +.L7F065F04: +/* 09AA34 7F065F04 AE000020 */ sw $zero, 0x20($s0) +/* 09AA38 7F065F08 AE00001C */ sw $zero, 0x1c($s0) +/* 09AA3C 7F065F0C 10000023 */ b .L7F065F9C +/* 09AA40 7F065F10 00001025 */ move $v0, $zero +.L7F065F14: +/* 09AA44 7F065F14 8E190020 */ lw $t9, 0x20($s0) +/* 09AA48 7F065F18 3C018005 */ lui $at, %hi(D_8005428C) +/* 09AA4C 7F065F1C C42A428C */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09AA50 7F065F20 03195823 */ subu $t3, $t8, $t9 +/* 09AA54 7F065F24 448B2000 */ mtc1 $t3, $f4 +/* 09AA58 7F065F28 240C0001 */ li $t4, 1 +/* 09AA5C 7F065F2C AE0C00BC */ sw $t4, 0xbc($s0) +/* 09AA60 7F065F30 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA64 7F065F34 44982000 */ mtc1 $t8, $f4 +/* 09AA68 7F065F38 2605007C */ addiu $a1, $s0, 0x7c +/* 09AA6C 7F065F3C 460A3202 */ mul.s $f8, $f6, $f10 +/* 09AA70 7F065F40 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA74 7F065F44 46064303 */ div.s $f12, $f8, $f6 +/* 09AA78 7F065F48 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AA7C 7F065F4C E7AC0174 */ swc1 $f12, 0x174($sp) +/* 09AA80 7F065F50 44805000 */ mtc1 $zero, $f10 +/* 09AA84 7F065F54 00000000 */ nop +/* 09AA88 7F065F58 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09AA8C 7F065F5C 0FC15FA8 */ jal cosf +/* 09AA90 7F065F60 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AA94 7F065F64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AA98 7F065F68 44812000 */ mtc1 $at, $f4 +/* 09AA9C 7F065F6C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AAA0 7F065F70 44813000 */ mtc1 $at, $f6 +/* 09AAA4 7F065F74 46002201 */ sub.s $f8, $f4, $f0 +/* 09AAA8 7F065F78 46064282 */ mul.s $f10, $f8, $f6 +/* 09AAAC 7F065F7C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09AAB0 7F065F80 0FC15FAB */ jal sinf +/* 09AAB4 7F065F84 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AAB8 7F065F88 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AABC 7F065F8C 44812000 */ mtc1 $at, $f4 +/* 09AAC0 7F065F90 8E020024 */ lw $v0, 0x24($s0) +/* 09AAC4 7F065F94 46040202 */ mul.s $f8, $f0, $f4 +/* 09AAC8 7F065F98 E60800B4 */ swc1 $f8, 0xb4($s0) +.L7F065F9C: +/* 09AACC 7F065F9C 24010009 */ li $at, 9 +/* 09AAD0 7F065FA0 54410018 */ bnel $v0, $at, .L7F066004 +/* 09AAD4 7F065FA4 2401000A */ li $at, 10 +/* 09AAD8 7F065FA8 0FC1722D */ jal get_ptr_item_statistics +/* 09AADC 7F065FAC 02202025 */ move $a0, $s1 +/* 09AAE0 7F065FB0 8E0D002C */ lw $t5, 0x2c($s0) +/* 09AAE4 7F065FB4 844E0020 */ lh $t6, 0x20($v0) +/* 09AAE8 7F065FB8 02202025 */ move $a0, $s1 +/* 09AAEC 7F065FBC 01AE082A */ slt $at, $t5, $t6 +/* 09AAF0 7F065FC0 14200005 */ bnez $at, .L7F065FD8 +/* 09AAF4 7F065FC4 00000000 */ nop +/* 09AAF8 7F065FC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AAFC 7F065FCC 3C050020 */ lui $a1, 0x20 +/* 09AB00 7F065FD0 50400008 */ beql $v0, $zero, .L7F065FF4 +/* 09AB04 7F065FD4 AE000024 */ sw $zero, 0x24($s0) +.L7F065FD8: +/* 09AB08 7F065FD8 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 09AB0C 7F065FDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AB10 7F065FE0 18400003 */ blez $v0, .L7F065FF0 +/* 09AB14 7F065FE4 2402000A */ li $v0, 10 +/* 09AB18 7F065FE8 10000005 */ b .L7F066000 +/* 09AB1C 7F065FEC AE020024 */ sw $v0, 0x24($s0) +.L7F065FF0: +/* 09AB20 7F065FF0 AE000024 */ sw $zero, 0x24($s0) +.L7F065FF4: +/* 09AB24 7F065FF4 AE000020 */ sw $zero, 0x20($s0) +/* 09AB28 7F065FF8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB2C 7F065FFC 00001025 */ move $v0, $zero +.L7F066000: +/* 09AB30 7F066000 2401000A */ li $at, 10 +.L7F066004: +/* 09AB34 7F066004 54410048 */ bnel $v0, $at, .L7F066128 +/* 09AB38 7F066008 2401000B */ li $at, 11 +/* 09AB3C 7F06600C 8E030020 */ lw $v1, 0x20($s0) +/* 09AB40 7F066010 2402000B */ li $v0, 11 +/* 09AB44 7F066014 24180011 */ li $t8, 17 +/* 09AB48 7F066018 28610010 */ slti $at, $v1, 0x10 +/* 09AB4C 7F06601C 50200005 */ beql $at, $zero, .L7F066034 +/* 09AB50 7F066020 AE020024 */ sw $v0, 0x24($s0) +/* 09AB54 7F066024 8219000F */ lb $t9, 0xf($s0) +/* 09AB58 7F066028 57200007 */ bnezl $t9, .L7F066048 +/* 09AB5C 7F06602C 44833000 */ mtc1 $v1, $f6 +/* 09AB60 7F066030 AE020024 */ sw $v0, 0x24($s0) +.L7F066034: +/* 09AB64 7F066034 AE180040 */ sw $t8, 0x40($s0) +/* 09AB68 7F066038 AE000020 */ sw $zero, 0x20($s0) +/* 09AB6C 7F06603C 10000039 */ b .L7F066124 +/* 09AB70 7F066040 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB74 7F066044 44833000 */ mtc1 $v1, $f6 +.L7F066048: +/* 09AB78 7F066048 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AB7C 7F06604C 44811000 */ mtc1 $at, $f2 +/* 09AB80 7F066050 468032A0 */ cvt.s.w $f10, $f6 +/* 09AB84 7F066054 3C018005 */ lui $at, %hi(D_80054290) +/* 09AB88 7F066058 C4244290 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09AB8C 7F06605C 240C0001 */ li $t4, 1 +/* 09AB90 7F066060 2605007C */ addiu $a1, $s0, 0x7c +/* 09AB94 7F066064 46045202 */ mul.s $f8, $f10, $f4 +/* 09AB98 7F066068 46024183 */ div.s $f6, $f8, $f2 +/* 09AB9C 7F06606C E7A60128 */ swc1 $f6, 0x128($sp) +/* 09ABA0 7F066070 AE0C00BC */ sw $t4, 0xbc($s0) +/* 09ABA4 7F066074 8FAD01D0 */ lw $t5, 0x1d0($sp) +/* 09ABA8 7F066078 55A00009 */ bnezl $t5, .L7F0660A0 +/* 09ABAC 7F06607C 44802000 */ mtc1 $zero, $f4 +/* 09ABB0 7F066080 44805000 */ mtc1 $zero, $f10 +/* 09ABB4 7F066084 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABB8 7F066088 46025303 */ div.s $f12, $f10, $f2 +/* 09ABBC 7F06608C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABC0 7F066090 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09ABC4 7F066094 10000008 */ b .L7F0660B8 +/* 09ABC8 7F066098 C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09ABCC 7F06609C 44802000 */ mtc1 $zero, $f4 +.L7F0660A0: +/* 09ABD0 7F0660A0 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABD4 7F0660A4 46022003 */ div.s $f0, $f4, $f2 +/* 09ABD8 7F0660A8 46000307 */ neg.s $f12, $f0 +/* 09ABDC 7F0660AC 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABE0 7F0660B0 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09ABE4 7F0660B4 C7AC0128 */ lwc1 $f12, 0x128($sp) +.L7F0660B8: +/* 09ABE8 7F0660B8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09ABEC 7F0660BC 27A5012C */ addiu $a1, $sp, 0x12c +/* 09ABF0 7F0660C0 27A4012C */ addiu $a0, $sp, 0x12c +/* 09ABF4 7F0660C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09ABF8 7F0660C8 8FA50030 */ lw $a1, 0x30($sp) +/* 09ABFC 7F0660CC 0FC15FAB */ jal sinf +/* 09AC00 7F0660D0 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AC04 7F0660D4 44804000 */ mtc1 $zero, $f8 +/* 09AC08 7F0660D8 02202025 */ move $a0, $s1 +/* 09AC0C 7F0660DC 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AC10 7F0660E0 E60800AC */ swc1 $f8, 0xac($s0) +/* 09AC14 7F0660E4 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AC18 7F0660E8 0FC15FA8 */ jal cosf +/* 09AC1C 7F0660EC C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC20 7F0660F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AC24 7F0660F4 44813000 */ mtc1 $at, $f6 +/* 09AC28 7F0660F8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 09AC2C 7F0660FC 46003281 */ sub.s $f10, $f6, $f0 +/* 09AC30 7F066100 46045202 */ mul.s $f8, $f10, $f4 +/* 09AC34 7F066104 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09AC38 7F066108 0FC15FAB */ jal sinf +/* 09AC3C 7F06610C C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC40 7F066110 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AC44 7F066114 44813000 */ mtc1 $at, $f6 +/* 09AC48 7F066118 8E020024 */ lw $v0, 0x24($s0) +/* 09AC4C 7F06611C 46060282 */ mul.s $f10, $f0, $f6 +/* 09AC50 7F066120 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F066124: +/* 09AC54 7F066124 2401000B */ li $at, 11 +.L7F066128: +/* 09AC58 7F066128 54410063 */ bnel $v0, $at, .L7F0662B8 +/* 09AC5C 7F06612C 2401000C */ li $at, 12 +/* 09AC60 7F066130 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AC64 7F066134 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09AC68 7F066138 55C00022 */ bnezl $t6, .L7F0661C4 +/* 09AC6C 7F06613C 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC70 7F066140 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC74 7F066144 24010001 */ li $at, 1 +/* 09AC78 7F066148 8DF90000 */ lw $t9, ($t7) +/* 09AC7C 7F06614C 5321001D */ beql $t9, $at, .L7F0661C4 +/* 09AC80 7F066150 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC84 7F066154 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09AC88 7F066158 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AC8C 7F06615C 10400018 */ beqz $v0, .L7F0661C0 +/* 09AC90 7F066160 3C0B8003 */ lui $t3, %hi(disable_player_pickups_flag) +/* 09AC94 7F066164 8D6B64B4 */ lw $t3, %lo(disable_player_pickups_flag)($t3) +/* 09AC98 7F066168 2A21003E */ slti $at, $s1, 0x3e +/* 09AC9C 7F06616C 55600015 */ bnezl $t3, .L7F0661C4 +/* 09ACA0 7F066170 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACA4 7F066174 14200005 */ bnez $at, .L7F06618C +/* 09ACA8 7F066178 24010058 */ li $at, 88 +/* 09ACAC 7F06617C 52210011 */ beql $s1, $at, .L7F0661C4 +/* 09ACB0 7F066180 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACB4 7F066184 10000009 */ b .L7F0661AC +/* 09ACB8 7F066188 00000000 */ nop +.L7F06618C: +/* 09ACBC 7F06618C 2E21003E */ sltiu $at, $s1, 0x3e +/* 09ACC0 7F066190 10200006 */ beqz $at, .L7F0661AC +/* 09ACC4 7F066194 0011C080 */ sll $t8, $s1, 2 +/* 09ACC8 7F066198 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09ACCC 7F06619C 00380821 */ addu $at, $at, $t8 +/* 09ACD0 7F0661A0 8C384294 */ lw $t8, %lo(jpt_80054294)($at) +/* 09ACD4 7F0661A4 03000008 */ jr $t8 +/* 09ACD8 7F0661A8 00000000 */ nop +weapon_reload_gun_sfx: +.L7F0661AC: +/* 09ACDC 7F0661AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09ACE0 7F0661B0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09ACE4 7F0661B4 24050032 */ li $a1, 50 +/* 09ACE8 7F0661B8 0C002382 */ jal play_sfx_a1 +/* 09ACEC 7F0661BC 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +.L7F0661C0: +/* 09ACF0 7F0661C0 8E0C0020 */ lw $t4, 0x20($s0) +.L7F0661C4: +/* 09ACF4 7F0661C4 8E0D0040 */ lw $t5, 0x40($s0) +/* 09ACF8 7F0661C8 24190001 */ li $t9, 1 +/* 09ACFC 7F0661CC 018D082A */ slt $at, $t4, $t5 +/* 09AD00 7F0661D0 5420000B */ bnezl $at, .L7F066200 +/* 09AD04 7F0661D4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD08 7F0661D8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AD0C 7F0661DC 2402000C */ li $v0, 12 +/* 09AD10 7F0661E0 29C10002 */ slti $at, $t6, 2 +/* 09AD14 7F0661E4 54200006 */ bnezl $at, .L7F066200 +/* 09AD18 7F0661E8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD1C 7F0661EC AE020024 */ sw $v0, 0x24($s0) +/* 09AD20 7F0661F0 AE000020 */ sw $zero, 0x20($s0) +/* 09AD24 7F0661F4 1000002F */ b .L7F0662B4 +/* 09AD28 7F0661F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AD2C 7F0661FC AE1900BC */ sw $t9, 0xbc($s0) +.L7F066200: +/* 09AD30 7F066200 8FAB01D0 */ lw $t3, 0x1d0($sp) +/* 09AD34 7F066204 2605007C */ addiu $a1, $s0, 0x7c +/* 09AD38 7F066208 55600007 */ bnezl $t3, .L7F066228 +/* 09AD3C 7F06620C 44806000 */ mtc1 $zero, $f12 +/* 09AD40 7F066210 44806000 */ mtc1 $zero, $f12 +/* 09AD44 7F066214 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD48 7F066218 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD4C 7F06621C 10000005 */ b .L7F066234 +/* 09AD50 7F066220 00000000 */ nop +/* 09AD54 7F066224 44806000 */ mtc1 $zero, $f12 +.L7F066228: +/* 09AD58 7F066228 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD5C 7F06622C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD60 7F066230 46006307 */ neg.s $f12, $f12 +.L7F066234: +/* 09AD64 7F066234 3C018005 */ lui $at, %hi(D_8005438C) +/* 09AD68 7F066238 C42C438C */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09AD6C 7F06623C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AD70 7F066240 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 09AD74 7F066244 27A400E4 */ addiu $a0, $sp, 0xe4 +/* 09AD78 7F066248 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AD7C 7F06624C 8FA50030 */ lw $a1, 0x30($sp) +/* 09AD80 7F066250 44806000 */ mtc1 $zero, $f12 +/* 09AD84 7F066254 0FC15FAB */ jal sinf +/* 09AD88 7F066258 00000000 */ nop +/* 09AD8C 7F06625C 44802000 */ mtc1 $zero, $f4 +/* 09AD90 7F066260 02202025 */ move $a0, $s1 +/* 09AD94 7F066264 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AD98 7F066268 E60400AC */ swc1 $f4, 0xac($s0) +/* 09AD9C 7F06626C 3C018005 */ lui $at, %hi(D_80054390) +/* 09ADA0 7F066270 C42C4390 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09ADA4 7F066274 0FC15FA8 */ jal cosf +/* 09ADA8 7F066278 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09ADAC 7F06627C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ADB0 7F066280 44814000 */ mtc1 $at, $f8 +/* 09ADB4 7F066284 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 09ADB8 7F066288 3C018005 */ lui $at, %hi(D_80054394) +/* 09ADBC 7F06628C 46004181 */ sub.s $f6, $f8, $f0 +/* 09ADC0 7F066290 460A3102 */ mul.s $f4, $f6, $f10 +/* 09ADC4 7F066294 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09ADC8 7F066298 0FC15FAB */ jal sinf +/* 09ADCC 7F06629C C42C4394 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09ADD0 7F0662A0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ADD4 7F0662A4 44814000 */ mtc1 $at, $f8 +/* 09ADD8 7F0662A8 8E020024 */ lw $v0, 0x24($s0) +/* 09ADDC 7F0662AC 46080182 */ mul.s $f6, $f0, $f8 +/* 09ADE0 7F0662B0 E60600B4 */ swc1 $f6, 0xb4($s0) +.L7F0662B4: +/* 09ADE4 7F0662B4 2401000C */ li $at, 12 +.L7F0662B8: +/* 09ADE8 7F0662B8 5441005A */ bnel $v0, $at, .L7F066424 +/* 09ADEC 7F0662BC 2401000E */ li $at, 14 +/* 09ADF0 7F0662C0 8E18001C */ lw $t8, 0x1c($s0) +/* 09ADF4 7F0662C4 57000007 */ bnezl $t8, .L7F0662E4 +/* 09ADF8 7F0662C8 8E0D0020 */ lw $t5, 0x20($s0) +/* 09ADFC 7F0662CC 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09AE00 7F0662D0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AE04 7F0662D4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09AE08 7F0662D8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09AE0C 7F0662DC AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09AE10 7F0662E0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0662E4: +/* 09AE14 7F0662E4 29A10017 */ slti $at, $t5, 0x17 +/* 09AE18 7F0662E8 5020000E */ beql $at, $zero, .L7F066324 +/* 09AE1C 7F0662EC AE000024 */ sw $zero, 0x24($s0) +/* 09AE20 7F0662F0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AE24 7F0662F4 02202025 */ move $a0, $s1 +/* 09AE28 7F0662F8 10400009 */ beqz $v0, .L7F066320 +/* 09AE2C 7F0662FC 02202025 */ move $a0, $s1 +/* 09AE30 7F066300 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE34 7F066304 24050800 */ li $a1, 2048 +/* 09AE38 7F066308 10400005 */ beqz $v0, .L7F066320 +/* 09AE3C 7F06630C 02202025 */ move $a0, $s1 +/* 09AE40 7F066310 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE44 7F066314 24052000 */ li $a1, 8192 +/* 09AE48 7F066318 50400007 */ beql $v0, $zero, .L7F066338 +/* 09AE4C 7F06631C 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066320: +/* 09AE50 7F066320 AE000024 */ sw $zero, 0x24($s0) +.L7F066324: +/* 09AE54 7F066324 AE000020 */ sw $zero, 0x20($s0) +/* 09AE58 7F066328 AE00001C */ sw $zero, 0x1c($s0) +/* 09AE5C 7F06632C 1000003C */ b .L7F066420 +/* 09AE60 7F066330 00001025 */ move $v0, $zero +/* 09AE64 7F066334 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066338: +/* 09AE68 7F066338 240F0017 */ li $t7, 23 +/* 09AE6C 7F06633C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09AE70 7F066340 01EEC823 */ subu $t9, $t7, $t6 +/* 09AE74 7F066344 44995000 */ mtc1 $t9, $f10 +/* 09AE78 7F066348 44811000 */ mtc1 $at, $f2 +/* 09AE7C 7F06634C 3C018005 */ lui $at, %hi(D_80054398) +/* 09AE80 7F066350 46805120 */ cvt.s.w $f4, $f10 +/* 09AE84 7F066354 C4284398 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09AE88 7F066358 240B0001 */ li $t3, 1 +/* 09AE8C 7F06635C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE90 7F066360 46082182 */ mul.s $f6, $f4, $f8 +/* 09AE94 7F066364 46023283 */ div.s $f10, $f6, $f2 +/* 09AE98 7F066368 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 09AE9C 7F06636C AE0B00BC */ sw $t3, 0xbc($s0) +/* 09AEA0 7F066370 8FB801D0 */ lw $t8, 0x1d0($sp) +/* 09AEA4 7F066374 57000009 */ bnezl $t8, .L7F06639C +/* 09AEA8 7F066378 44804000 */ mtc1 $zero, $f8 +/* 09AEAC 7F06637C 44802000 */ mtc1 $zero, $f4 +/* 09AEB0 7F066380 AFA50030 */ sw $a1, 0x30($sp) +/* 09AEB4 7F066384 46022303 */ div.s $f12, $f4, $f2 +/* 09AEB8 7F066388 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEBC 7F06638C E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09AEC0 7F066390 10000008 */ b .L7F0663B4 +/* 09AEC4 7F066394 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AEC8 7F066398 44804000 */ mtc1 $zero, $f8 +.L7F06639C: +/* 09AECC 7F06639C AFA50030 */ sw $a1, 0x30($sp) +/* 09AED0 7F0663A0 46024003 */ div.s $f0, $f8, $f2 +/* 09AED4 7F0663A4 46000307 */ neg.s $f12, $f0 +/* 09AED8 7F0663A8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEDC 7F0663AC E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09AEE0 7F0663B0 C7AC0098 */ lwc1 $f12, 0x98($sp) +.L7F0663B4: +/* 09AEE4 7F0663B4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AEE8 7F0663B8 27A5009C */ addiu $a1, $sp, 0x9c +/* 09AEEC 7F0663BC 27A4009C */ addiu $a0, $sp, 0x9c +/* 09AEF0 7F0663C0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AEF4 7F0663C4 8FA50030 */ lw $a1, 0x30($sp) +/* 09AEF8 7F0663C8 0FC15FAB */ jal sinf +/* 09AEFC 7F0663CC C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AF00 7F0663D0 44803000 */ mtc1 $zero, $f6 +/* 09AF04 7F0663D4 02202025 */ move $a0, $s1 +/* 09AF08 7F0663D8 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AF0C 7F0663DC E60600AC */ swc1 $f6, 0xac($s0) +/* 09AF10 7F0663E0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AF14 7F0663E4 0FC15FA8 */ jal cosf +/* 09AF18 7F0663E8 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF1C 7F0663EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AF20 7F0663F0 44815000 */ mtc1 $at, $f10 +/* 09AF24 7F0663F4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 09AF28 7F0663F8 46005101 */ sub.s $f4, $f10, $f0 +/* 09AF2C 7F0663FC 46082182 */ mul.s $f6, $f4, $f8 +/* 09AF30 7F066400 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AF34 7F066404 0FC15FAB */ jal sinf +/* 09AF38 7F066408 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF3C 7F06640C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AF40 7F066410 44815000 */ mtc1 $at, $f10 +/* 09AF44 7F066414 8E020024 */ lw $v0, 0x24($s0) +/* 09AF48 7F066418 460A0102 */ mul.s $f4, $f0, $f10 +/* 09AF4C 7F06641C E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F066420: +/* 09AF50 7F066420 2401000E */ li $at, 14 +.L7F066424: +/* 09AF54 7F066424 5441002E */ bnel $v0, $at, .L7F0664E0 +/* 09AF58 7F066428 2401000F */ li $at, 15 +/* 09AF5C 7F06642C 8E030020 */ lw $v1, 0x20($s0) +/* 09AF60 7F066430 2402000F */ li $v0, 15 +/* 09AF64 7F066434 28610010 */ slti $at, $v1, 0x10 +/* 09AF68 7F066438 50200005 */ beql $at, $zero, .L7F066450 +/* 09AF6C 7F06643C AE020024 */ sw $v0, 0x24($s0) +/* 09AF70 7F066440 820C000F */ lb $t4, 0xf($s0) +/* 09AF74 7F066444 55800006 */ bnezl $t4, .L7F066460 +/* 09AF78 7F066448 44834000 */ mtc1 $v1, $f8 +/* 09AF7C 7F06644C AE020024 */ sw $v0, 0x24($s0) +.L7F066450: +/* 09AF80 7F066450 AE000020 */ sw $zero, 0x20($s0) +/* 09AF84 7F066454 10000021 */ b .L7F0664DC +/* 09AF88 7F066458 AE00001C */ sw $zero, 0x1c($s0) +/* 09AF8C 7F06645C 44834000 */ mtc1 $v1, $f8 +.L7F066460: +/* 09AF90 7F066460 3C018005 */ lui $at, %hi(D_8005439C) +/* 09AF94 7F066464 C42A439C */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09AF98 7F066468 468041A0 */ cvt.s.w $f6, $f8 +/* 09AF9C 7F06646C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AFA0 7F066470 44814000 */ mtc1 $at, $f8 +/* 09AFA4 7F066474 240F0001 */ li $t7, 1 +/* 09AFA8 7F066478 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AFAC 7F06647C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AFB0 7F066480 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AFB4 7F066484 46082303 */ div.s $f12, $f4, $f8 +/* 09AFB8 7F066488 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AFBC 7F06648C E7AC0094 */ swc1 $f12, 0x94($sp) +/* 09AFC0 7F066490 44803000 */ mtc1 $zero, $f6 +/* 09AFC4 7F066494 00000000 */ nop +/* 09AFC8 7F066498 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AFCC 7F06649C 0FC15FA8 */ jal cosf +/* 09AFD0 7F0664A0 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFD4 7F0664A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AFD8 7F0664A8 44815000 */ mtc1 $at, $f10 +/* 09AFDC 7F0664AC 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AFE0 7F0664B0 44814000 */ mtc1 $at, $f8 +/* 09AFE4 7F0664B4 46005101 */ sub.s $f4, $f10, $f0 +/* 09AFE8 7F0664B8 46082182 */ mul.s $f6, $f4, $f8 +/* 09AFEC 7F0664BC E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AFF0 7F0664C0 0FC15FAB */ jal sinf +/* 09AFF4 7F0664C4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFF8 7F0664C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AFFC 7F0664CC 44815000 */ mtc1 $at, $f10 +/* 09B000 7F0664D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B004 7F0664D4 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B008 7F0664D8 E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F0664DC: +/* 09B00C 7F0664DC 2401000F */ li $at, 15 +.L7F0664E0: +/* 09B010 7F0664E0 54410031 */ bnel $v0, $at, .L7F0665A8 +/* 09B014 7F0664E4 24010010 */ li $at, 16 +/* 09B018 7F0664E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B01C 7F0664EC 51C00006 */ beql $t6, $zero, .L7F066508 +/* 09B020 7F0664F0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B024 7F0664F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B028 7F0664F8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B02C 7F0664FC 14400007 */ bnez $v0, .L7F06651C +/* 09B030 7F066500 00000000 */ nop +/* 09B034 7F066504 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F066508: +/* 09B038 7F066508 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 09B03C 7F06650C 8E05003C */ lw $a1, 0x3c($s0) +/* 09B040 7F066510 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09B044 7F066514 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B048 7F066518 00408825 */ move $s1, $v0 +.L7F06651C: +/* 09B04C 7F06651C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B050 7F066520 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B054 7F066524 10400006 */ beqz $v0, .L7F066540 +/* 09B058 7F066528 240B0001 */ li $t3, 1 +/* 09B05C 7F06652C 24020010 */ li $v0, 16 +/* 09B060 7F066530 AE020024 */ sw $v0, 0x24($s0) +/* 09B064 7F066534 AE000020 */ sw $zero, 0x20($s0) +/* 09B068 7F066538 1000001A */ b .L7F0665A4 +/* 09B06C 7F06653C AE00001C */ sw $zero, 0x1c($s0) +.L7F066540: +/* 09B070 7F066540 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B074 7F066544 3C018005 */ lui $at, %hi(D_800543A0) +/* 09B078 7F066548 C42C43A0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B07C 7F06654C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B080 7F066550 2605007C */ addiu $a1, $s0, 0x7c +/* 09B084 7F066554 44804000 */ mtc1 $zero, $f8 +/* 09B088 7F066558 3C018005 */ lui $at, %hi(D_800543A4) +/* 09B08C 7F06655C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B090 7F066560 0FC15FA8 */ jal cosf +/* 09B094 7F066564 C42C43A4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B098 7F066568 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B09C 7F06656C 44813000 */ mtc1 $at, $f6 +/* 09B0A0 7F066570 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B0A4 7F066574 44812000 */ mtc1 $at, $f4 +/* 09B0A8 7F066578 46003281 */ sub.s $f10, $f6, $f0 +/* 09B0AC 7F06657C 3C018005 */ lui $at, %hi(D_800543A8) +/* 09B0B0 7F066580 46045202 */ mul.s $f8, $f10, $f4 +/* 09B0B4 7F066584 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B0B8 7F066588 0FC15FAB */ jal sinf +/* 09B0BC 7F06658C C42C43A8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B0C0 7F066590 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0C4 7F066594 44813000 */ mtc1 $at, $f6 +/* 09B0C8 7F066598 8E020024 */ lw $v0, 0x24($s0) +/* 09B0CC 7F06659C 46060282 */ mul.s $f10, $f0, $f6 +/* 09B0D0 7F0665A0 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0665A4: +/* 09B0D4 7F0665A4 24010010 */ li $at, 16 +.L7F0665A8: +/* 09B0D8 7F0665A8 5441004C */ bnel $v0, $at, .L7F0666DC +/* 09B0DC 7F0665AC 24010011 */ li $at, 17 +/* 09B0E0 7F0665B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B0E4 7F0665B4 2A210021 */ slti $at, $s1, 0x21 +/* 09B0E8 7F0665B8 57000010 */ bnezl $t8, .L7F0665FC +/* 09B0EC 7F0665BC 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F0 7F0665C0 5020000E */ beql $at, $zero, .L7F0665FC +/* 09B0F4 7F0665C4 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F8 7F0665C8 0FC26919 */ jal get_num_players +/* 09B0FC 7F0665CC 00000000 */ nop +/* 09B100 7F0665D0 28410002 */ slti $at, $v0, 2 +/* 09B104 7F0665D4 14200003 */ bnez $at, .L7F0665E4 +/* 09B108 7F0665D8 00000000 */ nop +/* 09B10C 7F0665DC 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09B110 7F0665E0 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F0665E4: +/* 09B114 7F0665E4 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09B118 7F0665E8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B11C 7F0665EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09B120 7F0665F0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09B124 7F0665F4 AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09B128 7F0665F8 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0665FC: +/* 09B12C 7F0665FC 29A10017 */ slti $at, $t5, 0x17 +/* 09B130 7F066600 5020000E */ beql $at, $zero, .L7F06663C +/* 09B134 7F066604 AE000024 */ sw $zero, 0x24($s0) +/* 09B138 7F066608 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09B13C 7F06660C 02202025 */ move $a0, $s1 +/* 09B140 7F066610 10400009 */ beqz $v0, .L7F066638 +/* 09B144 7F066614 02202025 */ move $a0, $s1 +/* 09B148 7F066618 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B14C 7F06661C 24050800 */ li $a1, 2048 +/* 09B150 7F066620 10400005 */ beqz $v0, .L7F066638 +/* 09B154 7F066624 02202025 */ move $a0, $s1 +/* 09B158 7F066628 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B15C 7F06662C 24052000 */ li $a1, 8192 +/* 09B160 7F066630 50400007 */ beql $v0, $zero, .L7F066650 +/* 09B164 7F066634 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066638: +/* 09B168 7F066638 AE000024 */ sw $zero, 0x24($s0) +.L7F06663C: +/* 09B16C 7F06663C AE000020 */ sw $zero, 0x20($s0) +/* 09B170 7F066640 AE00001C */ sw $zero, 0x1c($s0) +/* 09B174 7F066644 10000024 */ b .L7F0666D8 +/* 09B178 7F066648 00001025 */ move $v0, $zero +/* 09B17C 7F06664C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066650: +/* 09B180 7F066650 240E0017 */ li $t6, 23 +/* 09B184 7F066654 3C018005 */ lui $at, %hi(D_800543AC) +/* 09B188 7F066658 01CFC823 */ subu $t9, $t6, $t7 +/* 09B18C 7F06665C 44992000 */ mtc1 $t9, $f4 +/* 09B190 7F066660 C42643AC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B194 7F066664 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B198 7F066668 46802220 */ cvt.s.w $f8, $f4 +/* 09B19C 7F06666C 44812000 */ mtc1 $at, $f4 +/* 09B1A0 7F066670 240B0001 */ li $t3, 1 +/* 09B1A4 7F066674 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B1A8 7F066678 2605007C */ addiu $a1, $s0, 0x7c +/* 09B1AC 7F06667C 46064282 */ mul.s $f10, $f8, $f6 +/* 09B1B0 7F066680 46045303 */ div.s $f12, $f10, $f4 +/* 09B1B4 7F066684 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B1B8 7F066688 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 09B1BC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B1C0 7F066690 00000000 */ nop +/* 09B1C4 7F066694 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B1C8 7F066698 0FC15FA8 */ jal cosf +/* 09B1CC 7F06669C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1D0 7F0666A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B1D4 7F0666A4 44813000 */ mtc1 $at, $f6 +/* 09B1D8 7F0666A8 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B1DC 7F0666AC 44812000 */ mtc1 $at, $f4 +/* 09B1E0 7F0666B0 46003281 */ sub.s $f10, $f6, $f0 +/* 09B1E4 7F0666B4 46045202 */ mul.s $f8, $f10, $f4 +/* 09B1E8 7F0666B8 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B1EC 7F0666BC 0FC15FAB */ jal sinf +/* 09B1F0 7F0666C0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1F4 7F0666C4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B1F8 7F0666C8 44813000 */ mtc1 $at, $f6 +/* 09B1FC 7F0666CC 8E020024 */ lw $v0, 0x24($s0) +/* 09B200 7F0666D0 46060282 */ mul.s $f10, $f0, $f6 +/* 09B204 7F0666D4 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0666D8: +/* 09B208 7F0666D8 24010011 */ li $at, 17 +.L7F0666DC: +/* 09B20C 7F0666DC 1041000B */ beq $v0, $at, .L7F06670C +/* 09B210 7F0666E0 24010012 */ li $at, 18 +/* 09B214 7F0666E4 10410009 */ beq $v0, $at, .L7F06670C +/* 09B218 7F0666E8 24040013 */ li $a0, 19 +/* 09B21C 7F0666EC 10820007 */ beq $a0, $v0, .L7F06670C +/* 09B220 7F0666F0 24010014 */ li $at, 20 +/* 09B224 7F0666F4 10410005 */ beq $v0, $at, .L7F06670C +/* 09B228 7F0666F8 24010015 */ li $at, 21 +/* 09B22C 7F0666FC 10410003 */ beq $v0, $at, .L7F06670C +/* 09B230 7F066700 24010016 */ li $at, 22 +/* 09B234 7F066704 54410056 */ bnel $v0, $at, .L7F066860 +/* 09B238 7F066708 2401001E */ li $at, 30 +.L7F06670C: +/* 09B23C 7F06670C 8E030020 */ lw $v1, 0x20($s0) +/* 09B240 7F066710 2618007C */ addiu $t8, $s0, 0x7c +/* 09B244 7F066714 24010011 */ li $at, 17 +/* 09B248 7F066718 44832000 */ mtc1 $v1, $f4 +/* 09B24C 7F06671C 24040013 */ li $a0, 19 +/* 09B250 7F066720 AFB80030 */ sw $t8, 0x30($sp) +/* 09B254 7F066724 46802220 */ cvt.s.w $f8, $f4 +/* 09B258 7F066728 10410003 */ beq $v0, $at, .L7F066738 +/* 09B25C 7F06672C E7A80088 */ swc1 $f8, 0x88($sp) +/* 09B260 7F066730 24010014 */ li $at, 20 +/* 09B264 7F066734 1441001E */ bne $v0, $at, .L7F0667B0 +.L7F066738: +/* 09B268 7F066738 28610010 */ slti $at, $v1, 0x10 +/* 09B26C 7F06673C 1420001C */ bnez $at, .L7F0667B0 +/* 09B270 7F066740 3C0D8003 */ lui $t5, %hi(D_80035E94) +/* 09B274 7F066744 25AD5E94 */ addiu $t5, %lo(D_80035E94) # addiu $t5, $t5, 0x5e94 +/* 09B278 7F066748 8DA10000 */ lw $at, ($t5) +/* 09B27C 7F06674C 27AC007C */ addiu $t4, $sp, 0x7c +/* 09B280 7F066750 AD810000 */ sw $at, ($t4) +/* 09B284 7F066754 95A10004 */ lhu $at, 4($t5) +/* 09B288 7F066758 0C002914 */ jal get_random_value +/* 09B28C 7F06675C A5810004 */ sh $at, 4($t4) +/* 09B290 7F066760 24010003 */ li $at, 3 +/* 09B294 7F066764 0041001B */ divu $zero, $v0, $at +/* 09B298 7F066768 0000C810 */ mfhi $t9 +/* 09B29C 7F06676C 00195840 */ sll $t3, $t9, 1 +/* 09B2A0 7F066770 03AB2821 */ addu $a1, $sp, $t3 +/* 09B2A4 7F066774 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09B2A8 7F066778 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B2AC 7F06677C 84A5007C */ lh $a1, 0x7c($a1) +/* 09B2B0 7F066780 0C002382 */ jal play_sfx_a1 +/* 09B2B4 7F066784 00003025 */ move $a2, $zero +/* 09B2B8 7F066788 8E180024 */ lw $t8, 0x24($s0) +/* 09B2BC 7F06678C 24010011 */ li $at, 17 +/* 09B2C0 7F066790 24020015 */ li $v0, 21 +/* 09B2C4 7F066794 17010005 */ bne $t8, $at, .L7F0667AC +/* 09B2C8 7F066798 24040013 */ li $a0, 19 +/* 09B2CC 7F06679C 24020012 */ li $v0, 18 +/* 09B2D0 7F0667A0 AE020024 */ sw $v0, 0x24($s0) +/* 09B2D4 7F0667A4 10000002 */ b .L7F0667B0 +/* 09B2D8 7F0667A8 24040013 */ li $a0, 19 +.L7F0667AC: +/* 09B2DC 7F0667AC AE020024 */ sw $v0, 0x24($s0) +.L7F0667B0: +/* 09B2E0 7F0667B0 10820012 */ beq $a0, $v0, .L7F0667FC +/* 09B2E4 7F0667B4 24010016 */ li $at, 22 +/* 09B2E8 7F0667B8 50410011 */ beql $v0, $at, .L7F066800 +/* 09B2EC 7F0667BC 24010011 */ li $at, 17 +/* 09B2F0 7F0667C0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B2F4 7F0667C4 240F0001 */ li $t7, 1 +/* 09B2F8 7F0667C8 29A10018 */ slti $at, $t5, 0x18 +/* 09B2FC 7F0667CC 1420000B */ bnez $at, .L7F0667FC +/* 09B300 7F0667D0 24010011 */ li $at, 17 +/* 09B304 7F0667D4 10410004 */ beq $v0, $at, .L7F0667E8 +/* 09B308 7F0667D8 A20F000C */ sb $t7, 0xc($s0) +/* 09B30C 7F0667DC 24010012 */ li $at, 18 +/* 09B310 7F0667E0 54410005 */ bnel $v0, $at, .L7F0667F8 +/* 09B314 7F0667E4 24020016 */ li $v0, 22 +.L7F0667E8: +/* 09B318 7F0667E8 AE040024 */ sw $a0, 0x24($s0) +/* 09B31C 7F0667EC 10000003 */ b .L7F0667FC +/* 09B320 7F0667F0 00801025 */ move $v0, $a0 +/* 09B324 7F0667F4 24020016 */ li $v0, 22 +.L7F0667F8: +/* 09B328 7F0667F8 AE020024 */ sw $v0, 0x24($s0) +.L7F0667FC: +/* 09B32C 7F0667FC 24010011 */ li $at, 17 +.L7F066800: +/* 09B330 7F066800 10410005 */ beq $v0, $at, .L7F066818 +/* 09B334 7F066804 8FA50088 */ lw $a1, 0x88($sp) +/* 09B338 7F066808 24010012 */ li $at, 18 +/* 09B33C 7F06680C 10410002 */ beq $v0, $at, .L7F066818 +/* 09B340 7F066810 00000000 */ nop +/* 09B344 7F066814 14820003 */ bne $a0, $v0, .L7F066824 +.L7F066818: +/* 09B348 7F066818 3C048003 */ lui $a0, %hi(D_80034CA4) +/* 09B34C 7F06681C 10000003 */ b .L7F06682C +/* 09B350 7F066820 24844CA4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ca4 +.L7F066824: +/* 09B354 7F066824 3C048003 */ lui $a0, %hi(D_80034E0C) +/* 09B358 7F066828 24844E0C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e0c +.L7F06682C: +/* 09B35C 7F06682C 8FA60030 */ lw $a2, 0x30($sp) +/* 09B360 7F066830 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B364 7F066834 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B368 7F066838 10400004 */ beqz $v0, .L7F06684C +/* 09B36C 7F06683C 240B0001 */ li $t3, 1 +/* 09B370 7F066840 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B374 7F066844 10000005 */ b .L7F06685C +/* 09B378 7F066848 8E020024 */ lw $v0, 0x24($s0) +.L7F06684C: +/* 09B37C 7F06684C AE000024 */ sw $zero, 0x24($s0) +/* 09B380 7F066850 AE000020 */ sw $zero, 0x20($s0) +/* 09B384 7F066854 AE00001C */ sw $zero, 0x1c($s0) +/* 09B388 7F066858 00001025 */ move $v0, $zero +.L7F06685C: +/* 09B38C 7F06685C 2401001E */ li $at, 30 +.L7F066860: +/* 09B390 7F066860 10410007 */ beq $v0, $at, .L7F066880 +/* 09B394 7F066864 2405001F */ li $a1, 31 +/* 09B398 7F066868 10A20005 */ beq $a1, $v0, .L7F066880 +/* 09B39C 7F06686C 24010020 */ li $at, 32 +/* 09B3A0 7F066870 10410003 */ beq $v0, $at, .L7F066880 +/* 09B3A4 7F066874 24040021 */ li $a0, 33 +/* 09B3A8 7F066878 54820041 */ bnel $a0, $v0, .L7F066980 +/* 09B3AC 7F06687C 2401001A */ li $at, 26 +.L7F066880: +/* 09B3B0 7F066880 8E030020 */ lw $v1, 0x20($s0) +/* 09B3B4 7F066884 2401001E */ li $at, 30 +/* 09B3B8 7F066888 24040021 */ li $a0, 33 +/* 09B3BC 7F06688C 44833000 */ mtc1 $v1, $f6 +/* 09B3C0 7F066890 2405001F */ li $a1, 31 +/* 09B3C4 7F066894 2606007C */ addiu $a2, $s0, 0x7c +/* 09B3C8 7F066898 10410003 */ beq $v0, $at, .L7F0668A8 +/* 09B3CC 7F06689C 46803020 */ cvt.s.w $f0, $f6 +/* 09B3D0 7F0668A0 14A20014 */ bne $a1, $v0, .L7F0668F4 +/* 09B3D4 7F0668A4 24010020 */ li $at, 32 +.L7F0668A8: +/* 09B3D8 7F0668A8 3C188008 */ lui $t8, %hi(pPlayer) +/* 09B3DC 7F0668AC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09B3E0 7F0668B0 24010011 */ li $at, 17 +/* 09B3E4 7F0668B4 3C0C8003 */ lui $t4, %hi(D_80035778) +/* 09B3E8 7F0668B8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09B3EC 7F0668BC 3C0D8003 */ lui $t5, %hi(D_800354A8) +/* 09B3F0 7F0668C0 258C5778 */ addiu $t4, %lo(D_80035778) # addiu $t4, $t4, 0x5778 +/* 09B3F4 7F0668C4 15C10003 */ bne $t6, $at, .L7F0668D4 +/* 09B3F8 7F0668C8 25AD54A8 */ addiu $t5, %lo(D_800354A8) # addiu $t5, $t5, 0x54a8 +/* 09B3FC 7F0668CC 10000002 */ b .L7F0668D8 +/* 09B400 7F0668D0 AFAC0074 */ sw $t4, 0x74($sp) +.L7F0668D4: +/* 09B404 7F0668D4 AFAD0074 */ sw $t5, 0x74($sp) +.L7F0668D8: +/* 09B408 7F0668D8 10A2001B */ beq $a1, $v0, .L7F066948 +/* 09B40C 7F0668DC 2861001E */ slti $at, $v1, 0x1e +/* 09B410 7F0668E0 14200019 */ bnez $at, .L7F066948 +/* 09B414 7F0668E4 240F0001 */ li $t7, 1 +/* 09B418 7F0668E8 A20F000C */ sb $t7, 0xc($s0) +/* 09B41C 7F0668EC 10000016 */ b .L7F066948 +/* 09B420 7F0668F0 AE050024 */ sw $a1, 0x24($s0) +.L7F0668F4: +/* 09B424 7F0668F4 10410003 */ beq $v0, $at, .L7F066904 +/* 09B428 7F0668F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 09B42C 7F0668FC 54820013 */ bnel $a0, $v0, .L7F06694C +/* 09B430 7F066900 44050000 */ mfc1 $a1, $f0 +.L7F066904: +/* 09B434 7F066904 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09B438 7F066908 24010011 */ li $at, 17 +/* 09B43C 7F06690C 3C188003 */ lui $t8, %hi(D_80035904) +/* 09B440 7F066910 8F2B2A38 */ lw $t3, 0x2a38($t9) +/* 09B444 7F066914 3C0E8003 */ lui $t6, %hi(D_80035610) +/* 09B448 7F066918 27185904 */ addiu $t8, %lo(D_80035904) # addiu $t8, $t8, 0x5904 +/* 09B44C 7F06691C 15610003 */ bne $t3, $at, .L7F06692C +/* 09B450 7F066920 25CE5610 */ addiu $t6, %lo(D_80035610) # addiu $t6, $t6, 0x5610 +/* 09B454 7F066924 10000002 */ b .L7F066930 +/* 09B458 7F066928 AFB80074 */ sw $t8, 0x74($sp) +.L7F06692C: +/* 09B45C 7F06692C AFAE0074 */ sw $t6, 0x74($sp) +.L7F066930: +/* 09B460 7F066930 10820005 */ beq $a0, $v0, .L7F066948 +/* 09B464 7F066934 2861001E */ slti $at, $v1, 0x1e +/* 09B468 7F066938 14200003 */ bnez $at, .L7F066948 +/* 09B46C 7F06693C 240C0001 */ li $t4, 1 +/* 09B470 7F066940 A20C000C */ sb $t4, 0xc($s0) +/* 09B474 7F066944 AE040024 */ sw $a0, 0x24($s0) +.L7F066948: +/* 09B478 7F066948 44050000 */ mfc1 $a1, $f0 +.L7F06694C: +/* 09B47C 7F06694C 8FA40074 */ lw $a0, 0x74($sp) +/* 09B480 7F066950 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B484 7F066954 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B488 7F066958 10400004 */ beqz $v0, .L7F06696C +/* 09B48C 7F06695C 240D0001 */ li $t5, 1 +/* 09B490 7F066960 AE0D00BC */ sw $t5, 0xbc($s0) +/* 09B494 7F066964 10000005 */ b .L7F06697C +/* 09B498 7F066968 8E020024 */ lw $v0, 0x24($s0) +.L7F06696C: +/* 09B49C 7F06696C AE000024 */ sw $zero, 0x24($s0) +/* 09B4A0 7F066970 AE000020 */ sw $zero, 0x20($s0) +/* 09B4A4 7F066974 AE00001C */ sw $zero, 0x1c($s0) +/* 09B4A8 7F066978 00001025 */ move $v0, $zero +.L7F06697C: +/* 09B4AC 7F06697C 2401001A */ li $at, 26 +.L7F066980: +/* 09B4B0 7F066980 54410023 */ bnel $v0, $at, .L7F066A10 +/* 09B4B4 7F066984 2401001B */ li $at, 27 +/* 09B4B8 7F066988 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B4BC 7F06698C 00001025 */ move $v0, $zero +/* 09B4C0 7F066990 59E0001C */ blezl $t7, .L7F066A04 +/* 09B4C4 7F066994 AE000024 */ sw $zero, 0x24($s0) +/* 09B4C8 7F066998 8E190020 */ lw $t9, 0x20($s0) +/* 09B4CC 7F06699C 3C048003 */ lui $a0, %hi(D_80035124) +/* 09B4D0 7F0669A0 24845124 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5124 +/* 09B4D4 7F0669A4 44995000 */ mtc1 $t9, $f10 +/* 09B4D8 7F0669A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B4DC 7F0669AC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B4E0 7F0669B0 46805020 */ cvt.s.w $f0, $f10 +/* 09B4E4 7F0669B4 44050000 */ mfc1 $a1, $f0 +/* 09B4E8 7F0669B8 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B4EC 7F0669BC 00000000 */ nop +/* 09B4F0 7F0669C0 10400004 */ beqz $v0, .L7F0669D4 +/* 09B4F4 7F0669C4 24180001 */ li $t8, 1 +/* 09B4F8 7F0669C8 240B0001 */ li $t3, 1 +/* 09B4FC 7F0669CC 1000000A */ b .L7F0669F8 +/* 09B500 7F0669D0 AE0B00BC */ sw $t3, 0xbc($s0) +.L7F0669D4: +/* 09B504 7F0669D4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B508 7F0669D8 240D001B */ li $t5, 27 +/* 09B50C 7F0669DC A200000E */ sb $zero, 0xe($s0) +/* 09B510 7F0669E0 25CCFFFF */ addiu $t4, $t6, -1 +/* 09B514 7F0669E4 A218000C */ sb $t8, 0xc($s0) +/* 09B518 7F0669E8 AE0C002C */ sw $t4, 0x2c($s0) +/* 09B51C 7F0669EC AE0D0024 */ sw $t5, 0x24($s0) +/* 09B520 7F0669F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B524 7F0669F4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0669F8: +/* 09B528 7F0669F8 10000004 */ b .L7F066A0C +/* 09B52C 7F0669FC 8E020024 */ lw $v0, 0x24($s0) +/* 09B530 7F066A00 AE000024 */ sw $zero, 0x24($s0) +.L7F066A04: +/* 09B534 7F066A04 AE000020 */ sw $zero, 0x20($s0) +/* 09B538 7F066A08 AE00001C */ sw $zero, 0x1c($s0) +.L7F066A0C: +/* 09B53C 7F066A0C 2401001B */ li $at, 27 +.L7F066A10: +/* 09B540 7F066A10 54410017 */ bnel $v0, $at, .L7F066A70 +/* 09B544 7F066A14 24010017 */ li $at, 23 +/* 09B548 7F066A18 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B54C 7F066A1C 3C048003 */ lui $a0, %hi(D_800351FC) +/* 09B550 7F066A20 248451FC */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x51fc +/* 09B554 7F066A24 448F2000 */ mtc1 $t7, $f4 +/* 09B558 7F066A28 2606007C */ addiu $a2, $s0, 0x7c +/* 09B55C 7F066A2C 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B560 7F066A30 46802020 */ cvt.s.w $f0, $f4 +/* 09B564 7F066A34 44050000 */ mfc1 $a1, $f0 +/* 09B568 7F066A38 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B56C 7F066A3C 00000000 */ nop +/* 09B570 7F066A40 10400005 */ beqz $v0, .L7F066A58 +/* 09B574 7F066A44 240B0001 */ li $t3, 1 +/* 09B578 7F066A48 24190001 */ li $t9, 1 +/* 09B57C 7F066A4C AE1900BC */ sw $t9, 0xbc($s0) +/* 09B580 7F066A50 10000006 */ b .L7F066A6C +/* 09B584 7F066A54 8E020024 */ lw $v0, 0x24($s0) +.L7F066A58: +/* 09B588 7F066A58 A20B000E */ sb $t3, 0xe($s0) +/* 09B58C 7F066A5C AE000024 */ sw $zero, 0x24($s0) +/* 09B590 7F066A60 AE000020 */ sw $zero, 0x20($s0) +/* 09B594 7F066A64 AE00001C */ sw $zero, 0x1c($s0) +/* 09B598 7F066A68 00001025 */ move $v0, $zero +.L7F066A6C: +/* 09B59C 7F066A6C 24010017 */ li $at, 23 +.L7F066A70: +/* 09B5A0 7F066A70 5441002C */ bnel $v0, $at, .L7F066B24 +/* 09B5A4 7F066A74 24010018 */ li $at, 24 +/* 09B5A8 7F066A78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B5AC 7F066A7C 00001025 */ move $v0, $zero +/* 09B5B0 7F066A80 5B000025 */ blezl $t8, .L7F066B18 +/* 09B5B4 7F066A84 AE000024 */ sw $zero, 0x24($s0) +/* 09B5B8 7F066A88 8E0E0018 */ lw $t6, 0x18($s0) +/* 09B5BC 7F066A8C 240C0018 */ li $t4, 24 +/* 09B5C0 7F066A90 51C00004 */ beql $t6, $zero, .L7F066AA4 +/* 09B5C4 7F066A94 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B5C8 7F066A98 1000001C */ b .L7F066B0C +/* 09B5CC 7F066A9C AE0C0024 */ sw $t4, 0x24($s0) +/* 09B5D0 7F066AA0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F066AA4: +/* 09B5D4 7F066AA4 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B5D8 7F066AA8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B5DC 7F066AAC 448D4000 */ mtc1 $t5, $f8 +/* 09B5E0 7F066AB0 AFA60030 */ sw $a2, 0x30($sp) +/* 09B5E4 7F066AB4 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B5E8 7F066AB8 46804020 */ cvt.s.w $f0, $f8 +/* 09B5EC 7F066ABC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B5F0 7F066AC0 44050000 */ mfc1 $a1, $f0 +/* 09B5F4 7F066AC4 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B5F8 7F066AC8 00000000 */ nop +/* 09B5FC 7F066ACC 10400004 */ beqz $v0, .L7F066AE0 +/* 09B600 7F066AD0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B604 7F066AD4 240F0001 */ li $t7, 1 +/* 09B608 7F066AD8 1000000C */ b .L7F066B0C +/* 09B60C 7F066ADC AE0F00BC */ sw $t7, 0xbc($s0) +.L7F066AE0: +/* 09B610 7F066AE0 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B614 7F066AE4 24050000 */ li $a1, 0 +/* 09B618 7F066AE8 8FA60030 */ lw $a2, 0x30($sp) +/* 09B61C 7F066AEC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B620 7F066AF0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B624 7F066AF4 10400004 */ beqz $v0, .L7F066B08 +/* 09B628 7F066AF8 240B0018 */ li $t3, 24 +/* 09B62C 7F066AFC 24190001 */ li $t9, 1 +/* 09B630 7F066B00 10000002 */ b .L7F066B0C +/* 09B634 7F066B04 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066B08: +/* 09B638 7F066B08 AE0B0024 */ sw $t3, 0x24($s0) +.L7F066B0C: +/* 09B63C 7F066B0C 10000004 */ b .L7F066B20 +/* 09B640 7F066B10 8E020024 */ lw $v0, 0x24($s0) +/* 09B644 7F066B14 AE000024 */ sw $zero, 0x24($s0) +.L7F066B18: +/* 09B648 7F066B18 AE000020 */ sw $zero, 0x20($s0) +/* 09B64C 7F066B1C AE00001C */ sw $zero, 0x1c($s0) +.L7F066B20: +/* 09B650 7F066B20 24010018 */ li $at, 24 +.L7F066B24: +/* 09B654 7F066B24 54410023 */ bnel $v0, $at, .L7F066BB4 +/* 09B658 7F066B28 24010019 */ li $at, 25 +/* 09B65C 7F066B2C 8E18002C */ lw $t8, 0x2c($s0) +/* 09B660 7F066B30 00001025 */ move $v0, $zero +/* 09B664 7F066B34 5B00001C */ blezl $t8, .L7F066BA8 +/* 09B668 7F066B38 AE000024 */ sw $zero, 0x24($s0) +/* 09B66C 7F066B3C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B670 7F066B40 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B674 7F066B44 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B678 7F066B48 448E3000 */ mtc1 $t6, $f6 +/* 09B67C 7F066B4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B680 7F066B50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B684 7F066B54 46803020 */ cvt.s.w $f0, $f6 +/* 09B688 7F066B58 44050000 */ mfc1 $a1, $f0 +/* 09B68C 7F066B5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B690 7F066B60 00000000 */ nop +/* 09B694 7F066B64 10400004 */ beqz $v0, .L7F066B78 +/* 09B698 7F066B68 240D0001 */ li $t5, 1 +/* 09B69C 7F066B6C 240C0001 */ li $t4, 1 +/* 09B6A0 7F066B70 1000000A */ b .L7F066B9C +/* 09B6A4 7F066B74 AE0C00BC */ sw $t4, 0xbc($s0) +.L7F066B78: +/* 09B6A8 7F066B78 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B6AC 7F066B7C 240B0019 */ li $t3, 25 +/* 09B6B0 7F066B80 A200000E */ sb $zero, 0xe($s0) +/* 09B6B4 7F066B84 25F9FFFF */ addiu $t9, $t7, -1 +/* 09B6B8 7F066B88 A20D000C */ sb $t5, 0xc($s0) +/* 09B6BC 7F066B8C AE19002C */ sw $t9, 0x2c($s0) +/* 09B6C0 7F066B90 AE0B0024 */ sw $t3, 0x24($s0) +/* 09B6C4 7F066B94 AE000020 */ sw $zero, 0x20($s0) +/* 09B6C8 7F066B98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066B9C: +/* 09B6CC 7F066B9C 10000004 */ b .L7F066BB0 +/* 09B6D0 7F066BA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B6D4 7F066BA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066BA8: +/* 09B6D8 7F066BA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B6DC 7F066BAC AE00001C */ sw $zero, 0x1c($s0) +.L7F066BB0: +/* 09B6E0 7F066BB0 24010019 */ li $at, 25 +.L7F066BB4: +/* 09B6E4 7F066BB4 54410017 */ bnel $v0, $at, .L7F066C14 +/* 09B6E8 7F066BB8 2401001C */ li $at, 28 +/* 09B6EC 7F066BBC 8E180020 */ lw $t8, 0x20($s0) +/* 09B6F0 7F066BC0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B6F4 7F066BC4 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B6F8 7F066BC8 44985000 */ mtc1 $t8, $f10 +/* 09B6FC 7F066BCC 2606007C */ addiu $a2, $s0, 0x7c +/* 09B700 7F066BD0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B704 7F066BD4 46805020 */ cvt.s.w $f0, $f10 +/* 09B708 7F066BD8 44050000 */ mfc1 $a1, $f0 +/* 09B70C 7F066BDC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B710 7F066BE0 00000000 */ nop +/* 09B714 7F066BE4 10400005 */ beqz $v0, .L7F066BFC +/* 09B718 7F066BE8 240C0001 */ li $t4, 1 +/* 09B71C 7F066BEC 240E0001 */ li $t6, 1 +/* 09B720 7F066BF0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B724 7F066BF4 10000006 */ b .L7F066C10 +/* 09B728 7F066BF8 8E020024 */ lw $v0, 0x24($s0) +.L7F066BFC: +/* 09B72C 7F066BFC A20C000E */ sb $t4, 0xe($s0) +/* 09B730 7F066C00 AE000024 */ sw $zero, 0x24($s0) +/* 09B734 7F066C04 AE000020 */ sw $zero, 0x20($s0) +/* 09B738 7F066C08 AE00001C */ sw $zero, 0x1c($s0) +/* 09B73C 7F066C0C 00001025 */ move $v0, $zero +.L7F066C10: +/* 09B740 7F066C10 2401001C */ li $at, 28 +.L7F066C14: +/* 09B744 7F066C14 54410028 */ bnel $v0, $at, .L7F066CB8 +/* 09B748 7F066C18 2401001D */ li $at, 29 +/* 09B74C 7F066C1C 8E0D002C */ lw $t5, 0x2c($s0) +/* 09B750 7F066C20 02202025 */ move $a0, $s1 +/* 09B754 7F066C24 5DA00006 */ bgtzl $t5, .L7F066C40 +/* 09B758 7F066C28 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B75C 7F066C2C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B760 7F066C30 24050010 */ li $a1, 16 +/* 09B764 7F066C34 5040001C */ beql $v0, $zero, .L7F066CA8 +/* 09B768 7F066C38 AE000024 */ sw $zero, 0x24($s0) +/* 09B76C 7F066C3C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066C40: +/* 09B770 7F066C40 3C048003 */ lui $a0, %hi(D_800352D4) +/* 09B774 7F066C44 248452D4 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x52d4 +/* 09B778 7F066C48 448F2000 */ mtc1 $t7, $f4 +/* 09B77C 7F066C4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B780 7F066C50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B784 7F066C54 46802020 */ cvt.s.w $f0, $f4 +/* 09B788 7F066C58 44050000 */ mfc1 $a1, $f0 +/* 09B78C 7F066C5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B790 7F066C60 00000000 */ nop +/* 09B794 7F066C64 10400004 */ beqz $v0, .L7F066C78 +/* 09B798 7F066C68 240B0001 */ li $t3, 1 +/* 09B79C 7F066C6C 24190001 */ li $t9, 1 +/* 09B7A0 7F066C70 1000000A */ b .L7F066C9C +/* 09B7A4 7F066C74 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066C78: +/* 09B7A8 7F066C78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B7AC 7F066C7C 240C001D */ li $t4, 29 +/* 09B7B0 7F066C80 A200000E */ sb $zero, 0xe($s0) +/* 09B7B4 7F066C84 270EFFFF */ addiu $t6, $t8, -1 +/* 09B7B8 7F066C88 A20B000C */ sb $t3, 0xc($s0) +/* 09B7BC 7F066C8C AE0E002C */ sw $t6, 0x2c($s0) +/* 09B7C0 7F066C90 AE0C0024 */ sw $t4, 0x24($s0) +/* 09B7C4 7F066C94 AE000020 */ sw $zero, 0x20($s0) +/* 09B7C8 7F066C98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066C9C: +/* 09B7CC 7F066C9C 10000005 */ b .L7F066CB4 +/* 09B7D0 7F066CA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B7D4 7F066CA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066CA8: +/* 09B7D8 7F066CA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B7DC 7F066CAC AE00001C */ sw $zero, 0x1c($s0) +/* 09B7E0 7F066CB0 00001025 */ move $v0, $zero +.L7F066CB4: +/* 09B7E4 7F066CB4 2401001D */ li $at, 29 +.L7F066CB8: +/* 09B7E8 7F066CB8 54410017 */ bnel $v0, $at, .L7F066D18 +/* 09B7EC 7F066CBC 24010024 */ li $at, 36 +/* 09B7F0 7F066CC0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B7F4 7F066CC4 3C048003 */ lui $a0, %hi(D_800353AC) +/* 09B7F8 7F066CC8 248453AC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ac +/* 09B7FC 7F066CCC 448D4000 */ mtc1 $t5, $f8 +/* 09B800 7F066CD0 2606007C */ addiu $a2, $s0, 0x7c +/* 09B804 7F066CD4 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B808 7F066CD8 46804020 */ cvt.s.w $f0, $f8 +/* 09B80C 7F066CDC 44050000 */ mfc1 $a1, $f0 +/* 09B810 7F066CE0 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B814 7F066CE4 00000000 */ nop +/* 09B818 7F066CE8 10400005 */ beqz $v0, .L7F066D00 +/* 09B81C 7F066CEC 24190001 */ li $t9, 1 +/* 09B820 7F066CF0 240F0001 */ li $t7, 1 +/* 09B824 7F066CF4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B828 7F066CF8 10000006 */ b .L7F066D14 +/* 09B82C 7F066CFC 8E020024 */ lw $v0, 0x24($s0) +.L7F066D00: +/* 09B830 7F066D00 A219000E */ sb $t9, 0xe($s0) +/* 09B834 7F066D04 AE000024 */ sw $zero, 0x24($s0) +/* 09B838 7F066D08 AE000020 */ sw $zero, 0x20($s0) +/* 09B83C 7F066D0C AE00001C */ sw $zero, 0x1c($s0) +/* 09B840 7F066D10 00001025 */ move $v0, $zero +.L7F066D14: +/* 09B844 7F066D14 24010024 */ li $at, 36 +.L7F066D18: +/* 09B848 7F066D18 1441004D */ bne $v0, $at, .L7F066E50 +/* 09B84C 7F066D1C 2401002E */ li $at, 46 +/* 09B850 7F066D20 56210009 */ bnel $s1, $at, .L7F066D48 +/* 09B854 7F066D24 2401002C */ li $at, 44 +/* 09B858 7F066D28 8E0B001C */ lw $t3, 0x1c($s0) +/* 09B85C 7F066D2C 15600003 */ bnez $t3, .L7F066D3C +/* 09B860 7F066D30 00000000 */ nop +/* 09B864 7F066D34 0FC19B99 */ jal sub_GAME_7F066E64 +/* 09B868 7F066D38 00000000 */ nop +.L7F066D3C: +/* 09B86C 7F066D3C 1000003F */ b .L7F066E3C +/* 09B870 7F066D40 8E050018 */ lw $a1, 0x18($s0) +/* 09B874 7F066D44 2401002C */ li $at, 44 +.L7F066D48: +/* 09B878 7F066D48 56210009 */ bnel $s1, $at, .L7F066D70 +/* 09B87C 7F066D4C 24010027 */ li $at, 39 +/* 09B880 7F066D50 8E18001C */ lw $t8, 0x1c($s0) +/* 09B884 7F066D54 17000003 */ bnez $t8, .L7F066D64 +/* 09B888 7F066D58 00000000 */ nop +/* 09B88C 7F066D5C 0FC19BC2 */ jal sub_GAME_7F066F08 +/* 09B890 7F066D60 00000000 */ nop +.L7F066D64: +/* 09B894 7F066D64 10000035 */ b .L7F066E3C +/* 09B898 7F066D68 8E050018 */ lw $a1, 0x18($s0) +/* 09B89C 7F066D6C 24010027 */ li $at, 39 +.L7F066D70: +/* 09B8A0 7F066D70 12210009 */ beq $s1, $at, .L7F066D98 +/* 09B8A4 7F066D74 24010037 */ li $at, 55 +/* 09B8A8 7F066D78 12210007 */ beq $s1, $at, .L7F066D98 +/* 09B8AC 7F066D7C 24010026 */ li $at, 38 +/* 09B8B0 7F066D80 12210005 */ beq $s1, $at, .L7F066D98 +/* 09B8B4 7F066D84 24010032 */ li $at, 50 +/* 09B8B8 7F066D88 12210003 */ beq $s1, $at, .L7F066D98 +/* 09B8BC 7F066D8C 24010049 */ li $at, 73 +/* 09B8C0 7F066D90 5621000F */ bnel $s1, $at, .L7F066DD0 +/* 09B8C4 7F066D94 24010033 */ li $at, 51 +.L7F066D98: +/* 09B8C8 7F066D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B8CC 7F066D9C 15C00009 */ bnez $t6, .L7F066DC4 +/* 09B8D0 7F066DA0 00000000 */ nop +/* 09B8D4 7F066DA4 0FC0F0FF */ jal sub_GAME_7F03C3FC +/* 09B8D8 7F066DA8 00000000 */ nop +/* 09B8DC 7F066DAC 10400005 */ beqz $v0, .L7F066DC4 +/* 09B8E0 7F066DB0 00000000 */ nop +/* 09B8E4 7F066DB4 8C430004 */ lw $v1, 4($v0) +/* 09B8E8 7F066DB8 906C0002 */ lbu $t4, 2($v1) +/* 09B8EC 7F066DBC 358D0040 */ ori $t5, $t4, 0x40 +/* 09B8F0 7F066DC0 A06D0002 */ sb $t5, 2($v1) +.L7F066DC4: +/* 09B8F4 7F066DC4 1000001D */ b .L7F066E3C +/* 09B8F8 7F066DC8 8E050018 */ lw $a1, 0x18($s0) +/* 09B8FC 7F066DCC 24010033 */ li $at, 51 +.L7F066DD0: +/* 09B900 7F066DD0 1221001A */ beq $s1, $at, .L7F066E3C +/* 09B904 7F066DD4 8E050018 */ lw $a1, 0x18($s0) +/* 09B908 7F066DD8 24010034 */ li $at, 52 +/* 09B90C 7F066DDC 12210017 */ beq $s1, $at, .L7F066E3C +/* 09B910 7F066DE0 2401003A */ li $at, 58 +/* 09B914 7F066DE4 12210015 */ beq $s1, $at, .L7F066E3C +/* 09B918 7F066DE8 2401003B */ li $at, 59 +/* 09B91C 7F066DEC 12210013 */ beq $s1, $at, .L7F066E3C +/* 09B920 7F066DF0 24010051 */ li $at, 81 +/* 09B924 7F066DF4 12210011 */ beq $s1, $at, .L7F066E3C +/* 09B928 7F066DF8 24010052 */ li $at, 82 +/* 09B92C 7F066DFC 1221000F */ beq $s1, $at, .L7F066E3C +/* 09B930 7F066E00 24010053 */ li $at, 83 +/* 09B934 7F066E04 1221000D */ beq $s1, $at, .L7F066E3C +/* 09B938 7F066E08 2401002D */ li $at, 45 +/* 09B93C 7F066E0C 1221000B */ beq $s1, $at, .L7F066E3C +/* 09B940 7F066E10 24010029 */ li $at, 41 +/* 09B944 7F066E14 12210009 */ beq $s1, $at, .L7F066E3C +/* 09B948 7F066E18 2401002A */ li $at, 42 +/* 09B94C 7F066E1C 12210007 */ beq $s1, $at, .L7F066E3C +/* 09B950 7F066E20 24010035 */ li $at, 53 +/* 09B954 7F066E24 12210005 */ beq $s1, $at, .L7F066E3C +/* 09B958 7F066E28 24010036 */ li $at, 54 +/* 09B95C 7F066E2C 12210003 */ beq $s1, $at, .L7F066E3C +/* 09B960 7F066E30 24010025 */ li $at, 37 +/* 09B964 7F066E34 12210001 */ beq $s1, $at, .L7F066E3C +/* 09B968 7F066E38 00000000 */ nop +.L7F066E3C: +/* 09B96C 7F066E3C 50A00005 */ beql $a1, $zero, .L7F066E54 +/* 09B970 7F066E40 8FBF0024 */ lw $ra, 0x24($sp) +/* 09B974 7F066E44 AE000024 */ sw $zero, 0x24($s0) +/* 09B978 7F066E48 AE000020 */ sw $zero, 0x20($s0) +/* 09B97C 7F066E4C AE00001C */ sw $zero, 0x1c($s0) +.L7F066E50: +/* 09B980 7F066E50 8FBF0024 */ lw $ra, 0x24($sp) +.L7F066E54: +/* 09B984 7F066E54 8FB0001C */ lw $s0, 0x1c($sp) +/* 09B988 7F066E58 8FB10020 */ lw $s1, 0x20($sp) +/* 09B98C 7F066E5C 03E00008 */ jr $ra +/* 09B990 7F066E60 27BD01D0 */ addiu $sp, $sp, 0x1d0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( + .late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099BFC 7F06508C 000410C0 */ sll $v0, $a0, 3 +/* 099C00 7F065090 00441023 */ subu $v0, $v0, $a0 +/* 099C04 7F065094 00021080 */ sll $v0, $v0, 2 +/* 099C08 7F065098 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 099C0C 7F06509C 00441021 */ addu $v0, $v0, $a0 +/* 099C10 7F0650A0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 099C14 7F0650A4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 099C18 7F0650A8 00021080 */ sll $v0, $v0, 2 +/* 099C1C 7F0650AC 00441021 */ addu $v0, $v0, $a0 +/* 099C20 7F0650B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 099C24 7F0650B4 000210C0 */ sll $v0, $v0, 3 +/* 099C28 7F0650B8 AFBF0024 */ sw $ra, 0x24($sp) +/* 099C2C 7F0650BC 01C28021 */ addu $s0, $t6, $v0 +/* 099C30 7F0650C0 AFB10020 */ sw $s1, 0x20($sp) +/* 099C34 7F0650C4 AFA501E4 */ sw $a1, 0x1e4($sp) +/* 099C38 7F0650C8 26100870 */ addiu $s0, $s0, 0x870 +/* 099C3C 7F0650CC AFA2003C */ sw $v0, 0x3c($sp) +/* 099C40 7F0650D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099C44 7F0650D4 AFA401E0 */ sw $a0, 0x1e0($sp) +/* 099C48 7F0650D8 00408825 */ move $s1, $v0 +/* 099C4C 7F0650DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099C50 7F0650E0 00402025 */ move $a0, $v0 +/* 099C54 7F0650E4 8FA301E4 */ lw $v1, 0x1e4($sp) +/* 099C58 7F0650E8 8E0F0010 */ lw $t7, 0x10($s0) +/* 099C5C 7F0650EC 00403025 */ move $a2, $v0 +/* 099C60 7F0650F0 AE030010 */ sw $v1, 0x10($s0) +/* 099C64 7F0650F4 14600003 */ bnez $v1, .Ljp7F065104 +/* 099C68 7F0650F8 AE0F0014 */ sw $t7, 0x14($s0) +/* 099C6C 7F0650FC 24180001 */ li $t8, 1 +/* 099C70 7F065100 AE180018 */ sw $t8, 0x18($s0) +.Ljp7F065104: +/* 099C74 7F065104 A200000C */ sb $zero, 0xc($s0) +/* 099C78 7F065108 A200000D */ sb $zero, 0xd($s0) +/* 099C7C 7F06510C 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 099C80 7F065110 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 099C84 7F065114 58400008 */ blezl $v0, .Ljp7F065138 +/* 099C88 7F065118 8E190024 */ lw $t9, 0x24($s0) +/* 099C8C 7F06511C 8E190020 */ lw $t9, 0x20($s0) +/* 099C90 7F065120 8E0F001C */ lw $t7, 0x1c($s0) +/* 099C94 7F065124 03227021 */ addu $t6, $t9, $v0 +/* 099C98 7F065128 25F80001 */ addiu $t8, $t7, 1 +/* 099C9C 7F06512C AE0E0020 */ sw $t6, 0x20($s0) +/* 099CA0 7F065130 AE18001C */ sw $t8, 0x1c($s0) +/* 099CA4 7F065134 8E190024 */ lw $t9, 0x24($s0) +.Ljp7F065138: +/* 099CA8 7F065138 AE0000BC */ sw $zero, 0xbc($s0) +/* 099CAC 7F06513C 1720007D */ bnez $t9, .Ljp7F065334 +/* 099CB0 7F065140 24010016 */ li $at, 22 +/* 099CB4 7F065144 56210006 */ bnel $s1, $at, .Ljp7F065160 +/* 099CB8 7F065148 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CBC 7F06514C 8E0E0018 */ lw $t6, 0x18($s0) +/* 099CC0 7F065150 51C00003 */ beql $t6, $zero, .Ljp7F065160 +/* 099CC4 7F065154 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CC8 7F065158 AE000030 */ sw $zero, 0x30($s0) +/* 099CCC 7F06515C 8E0F0010 */ lw $t7, 0x10($s0) +.Ljp7F065160: +/* 099CD0 7F065160 51E00017 */ beql $t7, $zero, .Ljp7F0651C0 +/* 099CD4 7F065164 8E020028 */ lw $v0, 0x28($s0) +/* 099CD8 7F065168 12200014 */ beqz $s1, .Ljp7F0651BC +/* 099CDC 7F06516C 02202025 */ move $a0, $s1 +/* 099CE0 7F065170 24050010 */ li $a1, 16 +/* 099CE4 7F065174 0FC17975 */ jal bondwalkItemCheckBitflags +/* 099CE8 7F065178 AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099CEC 7F06517C 14400003 */ bnez $v0, .Ljp7F06518C +/* 099CF0 7F065180 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099CF4 7F065184 8E18002C */ lw $t8, 0x2c($s0) +/* 099CF8 7F065188 1B00000C */ blez $t8, .Ljp7F0651BC +.Ljp7F06518C: +/* 099CFC 7F06518C 24010016 */ li $at, 22 +/* 099D00 7F065190 16210005 */ bne $s1, $at, .Ljp7F0651A8 +/* 099D04 7F065194 240E0001 */ li $t6, 1 +/* 099D08 7F065198 8E190030 */ lw $t9, 0x30($s0) +/* 099D0C 7F06519C 2B2100C8 */ slti $at, $t9, 0xc8 +/* 099D10 7F0651A0 50200007 */ beql $at, $zero, .Ljp7F0651C0 +/* 099D14 7F0651A4 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651A8: +/* 099D18 7F0651A8 AE0E0024 */ sw $t6, 0x24($s0) +/* 099D1C 7F0651AC AE000020 */ sw $zero, 0x20($s0) +/* 099D20 7F0651B0 AE00001C */ sw $zero, 0x1c($s0) +/* 099D24 7F0651B4 10000007 */ b .Ljp7F0651D4 +/* 099D28 7F0651B8 AE000018 */ sw $zero, 0x18($s0) +.Ljp7F0651BC: +/* 099D2C 7F0651BC 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651C0: +/* 099D30 7F0651C0 50400005 */ beql $v0, $zero, .Ljp7F0651D8 +/* 099D34 7F0651C4 8E0F0024 */ lw $t7, 0x24($s0) +/* 099D38 7F0651C8 AE020024 */ sw $v0, 0x24($s0) +/* 099D3C 7F0651CC AE000020 */ sw $zero, 0x20($s0) +/* 099D40 7F0651D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0651D4: +/* 099D44 7F0651D4 8E0F0024 */ lw $t7, 0x24($s0) +.Ljp7F0651D8: +/* 099D48 7F0651D8 AE000028 */ sw $zero, 0x28($s0) +/* 099D4C 7F0651DC 55E00056 */ bnezl $t7, .Ljp7F065338 +/* 099D50 7F0651E0 8E020024 */ lw $v0, 0x24($s0) +/* 099D54 7F0651E4 8E18002C */ lw $t8, 0x2c($s0) +/* 099D58 7F0651E8 57000053 */ bnezl $t8, .Ljp7F065338 +/* 099D5C 7F0651EC 8E020024 */ lw $v0, 0x24($s0) +/* 099D60 7F0651F0 50C00051 */ beql $a2, $zero, .Ljp7F065338 +/* 099D64 7F0651F4 8E020024 */ lw $v0, 0x24($s0) +/* 099D68 7F0651F8 0FC3021B */ jal get_controls_locked_flag +/* 099D6C 7F0651FC AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099D70 7F065200 1440004C */ bnez $v0, .Ljp7F065334 +/* 099D74 7F065204 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099D78 7F065208 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 099D7C 7F06520C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 099D80 7F065210 3C0E8003 */ lui $t6, %hi(D_80032458) # $t6, 0x8003 +/* 099D84 7F065214 8C5929C4 */ lw $t9, 0x29c4($v0) +/* 099D88 7F065218 57200047 */ bnezl $t9, .Ljp7F065338 +/* 099D8C 7F06521C 8E020024 */ lw $v0, 0x24($s0) +/* 099D90 7F065220 8DCE2498 */ lw $t6, %lo(D_80032458)($t6) +/* 099D94 7F065224 24010001 */ li $at, 1 +/* 099D98 7F065228 11C00009 */ beqz $t6, .Ljp7F065250 +/* 099D9C 7F06522C 00000000 */ nop +/* 099DA0 7F065230 14C10007 */ bne $a2, $at, .Ljp7F065250 +/* 099DA4 7F065234 00067880 */ sll $t7, $a2, 2 +/* 099DA8 7F065238 004F1821 */ addu $v1, $v0, $t7 +/* 099DAC 7F06523C 8C781130 */ lw $t8, 0x1130($v1) +/* 099DB0 7F065240 24190001 */ li $t9, 1 +/* 099DB4 7F065244 1F000002 */ bgtz $t8, .Ljp7F065250 +/* 099DB8 7F065248 00000000 */ nop +/* 099DBC 7F06524C AC791130 */ sw $t9, 0x1130($v1) +.Ljp7F065250: +/* 099DC0 7F065250 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099DC4 7F065254 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 099DC8 7F065258 18400006 */ blez $v0, .Ljp7F065274 +/* 099DCC 7F06525C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099DD0 7F065260 240E0009 */ li $t6, 9 +/* 099DD4 7F065264 AE0E0024 */ sw $t6, 0x24($s0) +/* 099DD8 7F065268 AE000020 */ sw $zero, 0x20($s0) +/* 099DDC 7F06526C 10000031 */ b .Ljp7F065334 +/* 099DE0 7F065270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065274: +/* 099DE4 7F065274 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099DE8 7F065278 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 099DEC 7F06527C 240E0001 */ li $t6, 1 +/* 099DF0 7F065280 8DF80FC8 */ lw $t8, 0xfc8($t7) +/* 099DF4 7F065284 01D92023 */ subu $a0, $t6, $t9 +/* 099DF8 7F065288 5300002B */ beql $t8, $zero, .Ljp7F065338 +/* 099DFC 7F06528C 8E020024 */ lw $v0, 0x24($s0) +/* 099E00 7F065290 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099E04 7F065294 AFA40040 */ sw $a0, 0x40($sp) +/* 099E08 7F065298 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099E0C 7F06529C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099E10 7F0652A0 8FB8003C */ lw $t8, 0x3c($sp) +/* 099E14 7F0652A4 00402025 */ move $a0, $v0 +/* 099E18 7F0652A8 01F81823 */ subu $v1, $t7, $t8 +/* 099E1C 7F0652AC 8C6E0C3C */ lw $t6, 0xc3c($v1) +/* 099E20 7F0652B0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099E24 7F0652B4 55C00020 */ bnezl $t6, .Ljp7F065338 +/* 099E28 7F0652B8 8E020024 */ lw $v0, 0x24($s0) +/* 099E2C 7F0652BC 8C790028 */ lw $t9, 0x28($v1) +/* 099E30 7F0652C0 5720001D */ bnezl $t9, .Ljp7F065338 +/* 099E34 7F0652C4 8E020024 */ lw $v0, 0x24($s0) +/* 099E38 7F0652C8 1040000D */ beqz $v0, .Ljp7F065300 +/* 099E3C 7F0652CC 00000000 */ nop +/* 099E40 7F0652D0 8C6F002C */ lw $t7, 0x2c($v1) +/* 099E44 7F0652D4 55E00018 */ bnezl $t7, .Ljp7F065338 +/* 099E48 7F0652D8 8E020024 */ lw $v0, 0x24($s0) +/* 099E4C 7F0652DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099E50 7F0652E0 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E54 7F0652E4 10400013 */ beqz $v0, .Ljp7F065334 +/* 099E58 7F0652E8 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E5C 7F0652EC 8FA40040 */ lw $a0, 0x40($sp) +/* 099E60 7F0652F0 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099E64 7F0652F4 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E68 7F0652F8 1C40000E */ bgtz $v0, .Ljp7F065334 +/* 099E6C 7F0652FC 8FA301CC */ lw $v1, 0x1cc($sp) +.Ljp7F065300: +/* 099E70 7F065300 0FC17748 */ jal autoadvance_on_deplete_all_ammo +/* 099E74 7F065304 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E78 7F065308 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E7C 7F06530C 8E180028 */ lw $t8, 0x28($s0) +/* 099E80 7F065310 AE00001C */ sw $zero, 0x1c($s0) +/* 099E84 7F065314 AE000020 */ sw $zero, 0x20($s0) +/* 099E88 7F065318 AE000028 */ sw $zero, 0x28($s0) +/* 099E8C 7F06531C AE180024 */ sw $t8, 0x24($s0) +/* 099E90 7F065320 8C6E0028 */ lw $t6, 0x28($v1) +/* 099E94 7F065324 AC60001C */ sw $zero, 0x1c($v1) +/* 099E98 7F065328 AC600020 */ sw $zero, 0x20($v1) +/* 099E9C 7F06532C AC600028 */ sw $zero, 0x28($v1) +/* 099EA0 7F065330 AC6E0024 */ sw $t6, 0x24($v1) +.Ljp7F065334: +/* 099EA4 7F065334 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065338: +/* 099EA8 7F065338 24010001 */ li $at, 1 +/* 099EAC 7F06533C 1441007E */ bne $v0, $at, .Ljp7F065538 +/* 099EB0 7F065340 2639FFFF */ addiu $t9, $s1, -1 +/* 099EB4 7F065344 2F210058 */ sltiu $at, $t9, 0x58 +/* 099EB8 7F065348 10200076 */ beqz $at, Weapon_function_collectible +/* 099EBC 7F06534C 0019C880 */ sll $t9, $t9, 2 +/* 099EC0 7F065350 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 099EC4 7F065354 00390821 */ addu $at, $at, $t9 +/* 099EC8 7F065358 8C393F54 */ lw $t9, %lo(jpt_80053F24)($at) +/* 099ECC 7F06535C 03200008 */ jr $t9 +/* 099ED0 7F065360 00000000 */ nop +Weapon_function_magnum: +/* 099ED4 7F065364 8E0F0020 */ lw $t7, 0x20($s0) +/* 099ED8 7F065368 24180002 */ li $t8, 2 +/* 099EDC 7F06536C 29E10006 */ slti $at, $t7, 6 +/* 099EE0 7F065370 54200070 */ bnezl $at, .Ljp7F065534 +/* 099EE4 7F065374 AE000398 */ sw $zero, 0x398($s0) +/* 099EE8 7F065378 AE180024 */ sw $t8, 0x24($s0) +/* 099EEC 7F06537C AE000020 */ sw $zero, 0x20($s0) +/* 099EF0 7F065380 1000006B */ b .Ljp7F065530 +/* 099EF4 7F065384 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099EF8 7F065388 8E0E001C */ lw $t6, 0x1c($s0) +/* 099EFC 7F06538C 00002025 */ move $a0, $zero +/* 099F00 7F065390 00002825 */ move $a1, $zero +/* 099F04 7F065394 15C00005 */ bnez $t6, .Ljp7F0653AC +/* 099F08 7F065398 00003025 */ move $a2, $zero +/* 099F0C 7F06539C 0FC20370 */ jal set_rgba_tint +/* 099F10 7F0653A0 3C073F80 */ lui $a3, 0x3f80 +/* 099F14 7F0653A4 10000063 */ b .Ljp7F065534 +/* 099F18 7F0653A8 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F0653AC: +/* 099F1C 7F0653AC 8E190020 */ lw $t9, 0x20($s0) +/* 099F20 7F0653B0 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099F24 7F0653B4 00002825 */ move $a1, $zero +/* 099F28 7F0653B8 1B20005D */ blez $t9, .Ljp7F065530 +/* 099F2C 7F0653BC 00003025 */ move $a2, $zero +/* 099F30 7F0653C0 44802000 */ mtc1 $zero, $f4 +/* 099F34 7F0653C4 44816000 */ mtc1 $at, $f12 +/* 099F38 7F0653C8 00003825 */ move $a3, $zero +/* 099F3C 7F0653CC 0FC2037C */ jal sub_GAME_7F0807E0 +/* 099F40 7F0653D0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 099F44 7F0653D4 240F0002 */ li $t7, 2 +/* 099F48 7F0653D8 AE0F0024 */ sw $t7, 0x24($s0) +/* 099F4C 7F0653DC AE000020 */ sw $zero, 0x20($s0) +/* 099F50 7F0653E0 10000053 */ b .Ljp7F065530 +/* 099F54 7F0653E4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099F58 7F0653E8 24180002 */ li $t8, 2 +/* 099F5C 7F0653EC AE180024 */ sw $t8, 0x24($s0) +/* 099F60 7F0653F0 AE000020 */ sw $zero, 0x20($s0) +/* 099F64 7F0653F4 1000004E */ b .Ljp7F065530 +/* 099F68 7F0653F8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099F6C 7F0653FC 240E001C */ li $t6, 28 +/* 099F70 7F065400 AE0E0024 */ sw $t6, 0x24($s0) +/* 099F74 7F065404 AE000020 */ sw $zero, 0x20($s0) +/* 099F78 7F065408 10000049 */ b .Ljp7F065530 +/* 099F7C 7F06540C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 099F80 7F065410 0C002918 */ jal get_random_value +/* 099F84 7F065414 00000000 */ nop +/* 099F88 7F065418 30590001 */ andi $t9, $v0, 1 +/* 099F8C 7F06541C 17200004 */ bnez $t9, .Ljp7F065430 +/* 099F90 7F065420 24180014 */ li $t8, 20 +/* 099F94 7F065424 240F0011 */ li $t7, 17 +/* 099F98 7F065428 10000002 */ b .Ljp7F065434 +/* 099F9C 7F06542C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065430: +/* 099FA0 7F065430 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F065434: +/* 099FA4 7F065434 AE000020 */ sw $zero, 0x20($s0) +/* 099FA8 7F065438 1000003D */ b .Ljp7F065530 +/* 099FAC 7F06543C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 099FB0 7F065440 8E0E0018 */ lw $t6, 0x18($s0) +/* 099FB4 7F065444 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 099FB8 7F065448 55C00006 */ bnezl $t6, .Ljp7F065464 +/* 099FBC 7F06544C 8E0F0020 */ lw $t7, 0x20($s0) +/* 099FC0 7F065450 8E190020 */ lw $t9, 0x20($s0) +/* 099FC4 7F065454 2B2100F0 */ slti $at, $t9, 0xf0 +/* 099FC8 7F065458 54200036 */ bnezl $at, .Ljp7F065534 +/* 099FCC 7F06545C AE000398 */ sw $zero, 0x398($s0) +/* 099FD0 7F065460 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F065464: +/* 099FD4 7F065464 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 099FD8 7F065468 240E001A */ li $t6, 26 +/* 099FDC 7F06546C AF0F105C */ sw $t7, 0x105c($t8) +/* 099FE0 7F065470 AE0E0024 */ sw $t6, 0x24($s0) +/* 099FE4 7F065474 AE00001C */ sw $zero, 0x1c($s0) +/* 099FE8 7F065478 1000002D */ b .Ljp7F065530 +/* 099FEC 7F06547C AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099FF0 7F065480 0C002918 */ jal get_random_value +/* 099FF4 7F065484 00000000 */ nop +/* 099FF8 7F065488 30590001 */ andi $t9, $v0, 1 +/* 099FFC 7F06548C 17200004 */ bnez $t9, .Ljp7F0654A0 +/* 09A000 7F065490 24180020 */ li $t8, 32 +/* 09A004 7F065494 240F001E */ li $t7, 30 +/* 09A008 7F065498 10000002 */ b .Ljp7F0654A4 +/* 09A00C 7F06549C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0654A0: +/* 09A010 7F0654A0 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F0654A4: +/* 09A014 7F0654A4 AE000020 */ sw $zero, 0x20($s0) +/* 09A018 7F0654A8 10000021 */ b .Ljp7F065530 +/* 09A01C 7F0654AC AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 09A020 7F0654B0 240E0017 */ li $t6, 23 +/* 09A024 7F0654B4 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A028 7F0654B8 AE000020 */ sw $zero, 0x20($s0) +/* 09A02C 7F0654BC 1000001C */ b .Ljp7F065530 +/* 09A030 7F0654C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 09A034 7F0654C4 8E190020 */ lw $t9, 0x20($s0) +/* 09A038 7F0654C8 3C048003 */ lui $a0, %hi(D_80035A90) # $a0, 0x8003 +/* 09A03C 7F0654CC 24845AD0 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5ad0 +/* 09A040 7F0654D0 44993000 */ mtc1 $t9, $f6 +/* 09A044 7F0654D4 2606007C */ addiu $a2, $s0, 0x7c +/* 09A048 7F0654D8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A04C 7F0654DC 46803020 */ cvt.s.w $f0, $f6 +/* 09A050 7F0654E0 44050000 */ mfc1 $a1, $f0 +/* 09A054 7F0654E4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A058 7F0654E8 00000000 */ nop +/* 09A05C 7F0654EC 10400004 */ beqz $v0, .Ljp7F065500 +/* 09A060 7F0654F0 24180002 */ li $t8, 2 +/* 09A064 7F0654F4 240F0001 */ li $t7, 1 +/* 09A068 7F0654F8 1000000D */ b .Ljp7F065530 +/* 09A06C 7F0654FC AE0F00BC */ sw $t7, 0xbc($s0) +.Ljp7F065500: +/* 09A070 7F065500 AE180024 */ sw $t8, 0x24($s0) +/* 09A074 7F065504 AE000020 */ sw $zero, 0x20($s0) +/* 09A078 7F065508 10000009 */ b .Ljp7F065530 +/* 09A07C 7F06550C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 09A080 7F065510 240E0024 */ li $t6, 36 +/* 09A084 7F065514 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A088 7F065518 AE000020 */ sw $zero, 0x20($s0) +/* 09A08C 7F06551C 10000004 */ b .Ljp7F065530 +/* 09A090 7F065520 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +/* 09A094 7F065524 AE000024 */ sw $zero, 0x24($s0) +/* 09A098 7F065528 AE000020 */ sw $zero, 0x20($s0) +/* 09A09C 7F06552C AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065530: +/* 09A0A0 7F065530 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F065534: +/* 09A0A4 7F065534 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065538: +/* 09A0A8 7F065538 24010002 */ li $at, 2 +/* 09A0AC 7F06553C 5441016C */ bnel $v0, $at, .Ljp7F065AF0 +/* 09A0B0 7F065540 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A0B4 7F065544 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09A0B8 7F065548 02202025 */ move $a0, $s1 +/* 09A0BC 7F06554C 10400003 */ beqz $v0, .Ljp7F06555C +/* 09A0C0 7F065550 262FFFFE */ addiu $t7, $s1, -2 +/* 09A0C4 7F065554 8E19002C */ lw $t9, 0x2c($s0) +/* 09A0C8 7F065558 1B200148 */ blez $t9, .Ljp7F065A7C +.Ljp7F06555C: +/* 09A0CC 7F06555C 2DE1003B */ sltiu $at, $t7, 0x3b +/* 09A0D0 7F065560 102000AF */ beqz $at, Weapon_shooting_throwable +/* 09A0D4 7F065564 000F7880 */ sll $t7, $t7, 2 +/* 09A0D8 7F065568 3C018005 */ lui $at, %hi(jpt_80054084) +/* 09A0DC 7F06556C 002F0821 */ addu $at, $at, $t7 +/* 09A0E0 7F065570 8C2F40B4 */ lw $t7, %lo(jpt_80054084)($at) +/* 09A0E4 7F065574 01E00008 */ jr $t7 +/* 09A0E8 7F065578 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 09A0EC 7F06557C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A0F0 7F065580 240F0003 */ li $t7, 3 +/* 09A0F4 7F065584 5700000D */ bnezl $t8, .Ljp7F0655BC +/* 09A0F8 7F065588 AE0F0024 */ sw $t7, 0x24($s0) +/* 09A0FC 7F06558C 0FC3021B */ jal get_controls_locked_flag +/* 09A100 7F065590 00000000 */ nop +/* 09A104 7F065594 2C450001 */ sltiu $a1, $v0, 1 +/* 09A108 7F065598 10A00005 */ beqz $a1, .Ljp7F0655B0 +/* 09A10C 7F06559C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A110 7F0655A0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A114 7F0655A4 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 09A118 7F0655A8 2CB90001 */ sltiu $t9, $a1, 1 +/* 09A11C 7F0655AC 03202825 */ move $a1, $t9 +.Ljp7F0655B0: +/* 09A120 7F0655B0 1000009B */ b Weapon_shooting_throwable +/* 09A124 7F0655B4 A205000C */ sb $a1, 0xc($s0) +/* 09A128 7F0655B8 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0655BC: +/* 09A12C 7F0655BC AE000020 */ sw $zero, 0x20($s0) +/* 09A130 7F0655C0 10000097 */ b Weapon_shooting_throwable +/* 09A134 7F0655C4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 09A138 7F0655C8 8E18001C */ lw $t8, 0x1c($s0) +/* 09A13C 7F0655CC 24190003 */ li $t9, 3 +/* 09A140 7F0655D0 5700001E */ bnezl $t8, .Ljp7F06564C +/* 09A144 7F0655D4 AE190024 */ sw $t9, 0x24($s0) +/* 09A148 7F0655D8 0FC26C01 */ jal get_num_players +/* 09A14C 7F0655DC 00000000 */ nop +/* 09A150 7F0655E0 24010001 */ li $at, 1 +/* 09A154 7F0655E4 50410009 */ beql $v0, $at, .Ljp7F06560C +/* 09A158 7F0655E8 240F0001 */ li $t7, 1 +/* 09A15C 7F0655EC 0FC31B59 */ jal checkGamePaused +/* 09A160 7F0655F0 00000000 */ nop +/* 09A164 7F0655F4 14400006 */ bnez $v0, .Ljp7F065610 +/* 09A168 7F0655F8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A16C 7F0655FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A170 7F065600 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A174 7F065604 17200002 */ bnez $t9, .Ljp7F065610 +/* 09A178 7F065608 240F0001 */ li $t7, 1 +.Ljp7F06560C: +/* 09A17C 7F06560C A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065610: +/* 09A180 7F065610 0FC3021B */ jal get_controls_locked_flag +/* 09A184 7F065614 00000000 */ nop +/* 09A188 7F065618 2C450001 */ sltiu $a1, $v0, 1 +/* 09A18C 7F06561C 10A00005 */ beqz $a1, .Ljp7F065634 +/* 09A190 7F065620 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A194 7F065624 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A198 7F065628 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A19C 7F06562C 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A1A0 7F065630 01C02825 */ move $a1, $t6 +.Ljp7F065634: +/* 09A1A4 7F065634 A205000C */ sb $a1, 0xc($s0) +/* 09A1A8 7F065638 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09A1AC 7F06563C 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A1B0 7F065640 10000078 */ b .Ljp7F065824 +/* 09A1B4 7F065644 820F000C */ lb $t7, 0xc($s0) +/* 09A1B8 7F065648 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F06564C: +/* 09A1BC 7F06564C AE000020 */ sw $zero, 0x20($s0) +/* 09A1C0 7F065650 10000073 */ b Weapon_shooting_throwable +/* 09A1C4 7F065654 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 09A1C8 7F065658 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A1CC 7F06565C 11E00013 */ beqz $t7, .Ljp7F0656AC +/* 09A1D0 7F065660 00000000 */ nop +/* 09A1D4 7F065664 8E180010 */ lw $t8, 0x10($s0) +/* 09A1D8 7F065668 02202025 */ move $a0, $s1 +/* 09A1DC 7F06566C 1700000F */ bnez $t8, .Ljp7F0656AC +/* 09A1E0 7F065670 00000000 */ nop +/* 09A1E4 7F065674 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09A1E8 7F065678 24050004 */ li $a1, 4 +/* 09A1EC 7F06567C 50400035 */ beql $v0, $zero, .Ljp7F065754 +/* 09A1F0 7F065680 24190003 */ li $t9, 3 +/* 09A1F4 7F065684 0FC1F301 */ jal get_BONDdata_is_aiming +/* 09A1F8 7F065688 00000000 */ nop +/* 09A1FC 7F06568C 54400031 */ bnezl $v0, .Ljp7F065754 +/* 09A200 7F065690 24190003 */ li $t9, 3 +/* 09A204 7F065694 8E0E0398 */ lw $t6, 0x398($s0) +/* 09A208 7F065698 24010003 */ li $at, 3 +/* 09A20C 7F06569C 01C1001A */ div $zero, $t6, $at +/* 09A210 7F0656A0 0000C810 */ mfhi $t9 +/* 09A214 7F0656A4 5320002B */ beql $t9, $zero, .Ljp7F065754 +/* 09A218 7F0656A8 24190003 */ li $t9, 3 +.Ljp7F0656AC: +/* 09A21C 7F0656AC 0FC1793B */ jal get_automatic_firing_rate +/* 09A220 7F0656B0 02202025 */ move $a0, $s1 +/* 09A224 7F0656B4 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A228 7F0656B8 01E2001A */ div $zero, $t7, $v0 +/* 09A22C 7F0656BC 0000C010 */ mfhi $t8 +/* 09A230 7F0656C0 14400002 */ bnez $v0, .Ljp7F0656CC +/* 09A234 7F0656C4 00000000 */ nop +/* 09A238 7F0656C8 0007000D */ break 7 +.Ljp7F0656CC: +/* 09A23C 7F0656CC 2401FFFF */ li $at, -1 +/* 09A240 7F0656D0 14410004 */ bne $v0, $at, .Ljp7F0656E4 +/* 09A244 7F0656D4 3C018000 */ lui $at, 0x8000 +/* 09A248 7F0656D8 15E10002 */ bne $t7, $at, .Ljp7F0656E4 +/* 09A24C 7F0656DC 00000000 */ nop +/* 09A250 7F0656E0 0006000D */ break 6 +.Ljp7F0656E4: +/* 09A254 7F0656E4 5700004F */ bnezl $t8, .Ljp7F065824 +/* 09A258 7F0656E8 820F000C */ lb $t7, 0xc($s0) +/* 09A25C 7F0656EC 0FC26C01 */ jal get_num_players +/* 09A260 7F0656F0 00000000 */ nop +/* 09A264 7F0656F4 24010001 */ li $at, 1 +/* 09A268 7F0656F8 50410009 */ beql $v0, $at, .Ljp7F065720 +/* 09A26C 7F0656FC 240F0001 */ li $t7, 1 +/* 09A270 7F065700 0FC31B59 */ jal checkGamePaused +/* 09A274 7F065704 00000000 */ nop +/* 09A278 7F065708 14400006 */ bnez $v0, .Ljp7F065724 +/* 09A27C 7F06570C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A280 7F065710 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A284 7F065714 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A288 7F065718 17200002 */ bnez $t9, .Ljp7F065724 +/* 09A28C 7F06571C 240F0001 */ li $t7, 1 +.Ljp7F065720: +/* 09A290 7F065720 A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065724: +/* 09A294 7F065724 0FC3021B */ jal get_controls_locked_flag +/* 09A298 7F065728 00000000 */ nop +/* 09A29C 7F06572C 2C450001 */ sltiu $a1, $v0, 1 +/* 09A2A0 7F065730 10A00005 */ beqz $a1, .Ljp7F065748 +/* 09A2A4 7F065734 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A2A8 7F065738 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A2AC 7F06573C 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A2B0 7F065740 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A2B4 7F065744 01C02825 */ move $a1, $t6 +.Ljp7F065748: +/* 09A2B8 7F065748 10000035 */ b Weapon_shooting_throwable +/* 09A2BC 7F06574C A205000C */ sb $a1, 0xc($s0) +/* 09A2C0 7F065750 24190003 */ li $t9, 3 +.Ljp7F065754: +/* 09A2C4 7F065754 AE190024 */ sw $t9, 0x24($s0) +/* 09A2C8 7F065758 AE000020 */ sw $zero, 0x20($s0) +/* 09A2CC 7F06575C 10000030 */ b Weapon_shooting_throwable +/* 09A2D0 7F065760 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 09A2D4 7F065764 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A2D8 7F065768 51E00006 */ beql $t7, $zero, .Ljp7F065784 +/* 09A2DC 7F06576C A200000C */ sb $zero, 0xc($s0) +/* 09A2E0 7F065770 8E180010 */ lw $t8, 0x10($s0) +/* 09A2E4 7F065774 24190003 */ li $t9, 3 +/* 09A2E8 7F065778 53000006 */ beql $t8, $zero, .Ljp7F065794 +/* 09A2EC 7F06577C AE190024 */ sw $t9, 0x24($s0) +/* 09A2F0 7F065780 A200000C */ sb $zero, 0xc($s0) +.Ljp7F065784: +/* 09A2F4 7F065784 820E000C */ lb $t6, 0xc($s0) +/* 09A2F8 7F065788 10000025 */ b Weapon_shooting_throwable +/* 09A2FC 7F06578C A20E000D */ sb $t6, 0xd($s0) +/* 09A300 7F065790 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F065794: +/* 09A304 7F065794 AE000020 */ sw $zero, 0x20($s0) +/* 09A308 7F065798 10000021 */ b Weapon_shooting_throwable +/* 09A30C 7F06579C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 09A310 7F0657A0 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A314 7F0657A4 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A318 7F0657A8 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A31C 7F0657AC 11E00004 */ beqz $t7, .Ljp7F0657C0 +/* 09A320 7F0657B0 24050000 */ li $a1, 0 +/* 09A324 7F0657B4 8E180010 */ lw $t8, 0x10($s0) +/* 09A328 7F0657B8 24190003 */ li $t9, 3 +/* 09A32C 7F0657BC 13000015 */ beqz $t8, .Ljp7F065814 +.Ljp7F0657C0: +/* 09A330 7F0657C0 2606007C */ addiu $a2, $s0, 0x7c +/* 09A334 7F0657C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A338 7F0657C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A33C 7F0657CC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A340 7F0657D0 A200000C */ sb $zero, 0xc($s0) +/* 09A344 7F0657D4 8219000C */ lb $t9, 0xc($s0) +/* 09A348 7F0657D8 240E0001 */ li $t6, 1 +/* 09A34C 7F0657DC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A350 7F0657E0 15E0000F */ bnez $t7, Weapon_shooting_throwable +/* 09A354 7F0657E4 A219000D */ sb $t9, 0xd($s0) +/* 09A358 7F0657E8 0FC3021B */ jal get_controls_locked_flag +/* 09A35C 7F0657EC 00000000 */ nop +/* 09A360 7F0657F0 2C450001 */ sltiu $a1, $v0, 1 +/* 09A364 7F0657F4 10A00005 */ beqz $a1, .Ljp7F06580C +/* 09A368 7F0657F8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A36C 7F0657FC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A370 7F065800 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A374 7F065804 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A378 7F065808 01C02825 */ move $a1, $t6 +.Ljp7F06580C: +/* 09A37C 7F06580C 10000004 */ b Weapon_shooting_throwable +/* 09A380 7F065810 A205000C */ sb $a1, 0xc($s0) +.Ljp7F065814: +/* 09A384 7F065814 AE190024 */ sw $t9, 0x24($s0) +/* 09A388 7F065818 AE000020 */ sw $zero, 0x20($s0) +/* 09A38C 7F06581C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +/* 09A390 7F065820 820F000C */ lb $t7, 0xc($s0) +.Ljp7F065824: +/* 09A394 7F065824 24010028 */ li $at, 40 +/* 09A398 7F065828 51E0001E */ beql $t7, $zero, .Ljp7F0658A4 +/* 09A39C 7F06582C 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A3A0 7F065830 52210016 */ beql $s1, $at, .Ljp7F06588C +/* 09A3A4 7F065834 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3A8 7F065838 0FC26F3C */ jal get_cur_playernum +/* 09A3AC 7F06583C 00000000 */ nop +/* 09A3B0 7F065840 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3B4 7F065844 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3B8 7F065848 0C00322E */ jal controller_7000C854 +/* 09A3BC 7F06584C 00402025 */ move $a0, $v0 +/* 09A3C0 7F065850 0FC29658 */ jal cur_player_get_control_type +/* 09A3C4 7F065854 00000000 */ nop +/* 09A3C8 7F065858 28410004 */ slti $at, $v0, 4 +/* 09A3CC 7F06585C 5420000B */ bnezl $at, .Ljp7F06588C +/* 09A3D0 7F065860 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3D4 7F065864 0FC26F3C */ jal get_cur_playernum +/* 09A3D8 7F065868 00000000 */ nop +/* 09A3DC 7F06586C 0FC26C01 */ jal get_num_players +/* 09A3E0 7F065870 AFA2004C */ sw $v0, 0x4c($sp) +/* 09A3E4 7F065874 8FB8004C */ lw $t8, 0x4c($sp) +/* 09A3E8 7F065878 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3EC 7F06587C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3F0 7F065880 0C00322E */ jal controller_7000C854 +/* 09A3F4 7F065884 00582021 */ addu $a0, $v0, $t8 +/* 09A3F8 7F065888 8E0E002C */ lw $t6, 0x2c($s0) +.Ljp7F06588C: +/* 09A3FC 7F06588C 8E0F0398 */ lw $t7, 0x398($s0) +/* 09A400 7F065890 25D9FFFF */ addiu $t9, $t6, -1 +/* 09A404 7F065894 25F80001 */ addiu $t8, $t7, 1 +/* 09A408 7F065898 AE19002C */ sw $t9, 0x2c($s0) +/* 09A40C 7F06589C AE180398 */ sw $t8, 0x398($s0) +/* 09A410 7F0658A0 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F0658A4: +/* 09A414 7F0658A4 24010002 */ li $at, 2 +/* 09A418 7F0658A8 02202025 */ move $a0, $s1 +/* 09A41C 7F0658AC 55C10090 */ bnel $t6, $at, .Ljp7F065AF0 +/* 09A420 7F0658B0 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A424 7F0658B4 0FC17944 */ jal get_sound_trigger_rate +/* 09A428 7F0658B8 AFA001C4 */ sw $zero, 0x1c4($sp) +/* 09A42C 7F0658BC 18400017 */ blez $v0, .Ljp7F06591C +/* 09A430 7F0658C0 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A434 7F0658C4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09A438 7F0658C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A43C 7F0658CC 3C028005 */ lui $v0, %hi(global_timer) # $v0, 0x8005 +/* 09A440 7F0658D0 000FC023 */ negu $t8, $t7 +/* 09A444 7F0658D4 03387021 */ addu $t6, $t9, $t8 +/* 09A448 7F0658D8 8DCF0DF8 */ lw $t7, 0xdf8($t6) +/* 09A44C 7F0658DC 8C4283AC */ lw $v0, %lo(global_timer)($v0) +/* 09A450 7F0658E0 104F0013 */ beq $v0, $t7, .Ljp7F065930 +/* 09A454 7F0658E4 00000000 */ nop +/* 09A458 7F0658E8 8E1901DC */ lw $t9, 0x1dc($s0) +/* 09A45C 7F0658EC 0322082A */ slt $at, $t9, $v0 +/* 09A460 7F0658F0 1020000F */ beqz $at, .Ljp7F065930 +/* 09A464 7F0658F4 00000000 */ nop +/* 09A468 7F0658F8 0FC17944 */ jal get_sound_trigger_rate +/* 09A46C 7F0658FC 02202025 */ move $a0, $s1 +/* 09A470 7F065900 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A474 7F065904 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A478 7F065908 240F0001 */ li $t7, 1 +/* 09A47C 7F06590C 00587021 */ addu $t6, $v0, $t8 +/* 09A480 7F065910 AE0E01DC */ sw $t6, 0x1dc($s0) +/* 09A484 7F065914 10000006 */ b .Ljp7F065930 +/* 09A488 7F065918 AFAF01C4 */ sw $t7, 0x1c4($sp) +.Ljp7F06591C: +/* 09A48C 7F06591C 8219000C */ lb $t9, 0xc($s0) +/* 09A490 7F065920 24180001 */ li $t8, 1 +/* 09A494 7F065924 13200002 */ beqz $t9, .Ljp7F065930 +/* 09A498 7F065928 00000000 */ nop +/* 09A49C 7F06592C AFB801C4 */ sw $t8, 0x1c4($sp) +.Ljp7F065930: +/* 09A4A0 7F065930 0FC26C01 */ jal get_num_players +/* 09A4A4 7F065934 00000000 */ nop +/* 09A4A8 7F065938 24010001 */ li $at, 1 +/* 09A4AC 7F06593C 5041000A */ beql $v0, $at, .Ljp7F065968 +/* 09A4B0 7F065940 8FB901C4 */ lw $t9, 0x1c4($sp) +/* 09A4B4 7F065944 0FC31B59 */ jal checkGamePaused +/* 09A4B8 7F065948 00000000 */ nop +/* 09A4BC 7F06594C 14400067 */ bnez $v0, .Ljp7F065AEC +/* 09A4C0 7F065950 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A4C4 7F065954 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A4C8 7F065958 8DCF29C4 */ lw $t7, 0x29c4($t6) +/* 09A4CC 7F06595C 55E00064 */ bnezl $t7, .Ljp7F065AF0 +/* 09A4D0 7F065960 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A4D4 7F065964 8FB901C4 */ lw $t9, 0x1c4($sp) +.Ljp7F065968: +/* 09A4D8 7F065968 53200035 */ beql $t9, $zero, .Ljp7F065A40 +/* 09A4DC 7F06596C 24010017 */ li $at, 23 +/* 09A4E0 7F065970 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A4E4 7F065974 50800008 */ beql $a0, $zero, .Ljp7F065998 +/* 09A4E8 7F065978 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4EC 7F06597C 0C002380 */ jal sfxGetArg0Unk3F +/* 09A4F0 7F065980 00000000 */ nop +/* 09A4F4 7F065984 50400004 */ beql $v0, $zero, .Ljp7F065998 +/* 09A4F8 7F065988 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4FC 7F06598C 0C00240C */ jal sfxDeactivate +/* 09A500 7F065990 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A504 7F065994 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F065998: +/* 09A508 7F065998 10800007 */ beqz $a0, .Ljp7F0659B8 +/* 09A50C 7F06599C 00000000 */ nop +/* 09A510 7F0659A0 0C002380 */ jal sfxGetArg0Unk3F +/* 09A514 7F0659A4 00000000 */ nop +/* 09A518 7F0659A8 10400003 */ beqz $v0, .Ljp7F0659B8 +/* 09A51C 7F0659AC 00000000 */ nop +/* 09A520 7F0659B0 0C00240C */ jal sfxDeactivate +/* 09A524 7F0659B4 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F0659B8: +/* 09A528 7F0659B8 0FC1794D */ jal bondwalkItemGetSound +/* 09A52C 7F0659BC 02202025 */ move $a0, $s1 +/* 09A530 7F0659C0 5040001F */ beql $v0, $zero, .Ljp7F065A40 +/* 09A534 7F0659C4 24010017 */ li $at, 23 +/* 09A538 7F0659C8 8E1801D4 */ lw $t8, 0x1d4($s0) +/* 09A53C 7F0659CC 5700000D */ bnezl $t8, .Ljp7F065A04 +/* 09A540 7F0659D0 8E0F01D8 */ lw $t7, 0x1d8($s0) +/* 09A544 7F0659D4 0FC1794D */ jal bondwalkItemGetSound +/* 09A548 7F0659D8 02202025 */ move $a0, $s1 +/* 09A54C 7F0659DC 00022C00 */ sll $a1, $v0, 0x10 +/* 09A550 7F0659E0 00057403 */ sra $t6, $a1, 0x10 +/* 09A554 7F0659E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A558 7F0659E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A55C 7F0659EC 01C02825 */ move $a1, $t6 +/* 09A560 7F0659F0 0C002386 */ jal play_sfx_a1 +/* 09A564 7F0659F4 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 09A568 7F0659F8 1000000D */ b .Ljp7F065A30 +/* 09A56C 7F0659FC 00000000 */ nop +/* 09A570 7F065A00 8E0F01D8 */ lw $t7, 0x1d8($s0) +.Ljp7F065A04: +/* 09A574 7F065A04 15E0000A */ bnez $t7, .Ljp7F065A30 +/* 09A578 7F065A08 00000000 */ nop +/* 09A57C 7F065A0C 0FC1794D */ jal bondwalkItemGetSound +/* 09A580 7F065A10 02202025 */ move $a0, $s1 +/* 09A584 7F065A14 00022C00 */ sll $a1, $v0, 0x10 +/* 09A588 7F065A18 0005CC03 */ sra $t9, $a1, 0x10 +/* 09A58C 7F065A1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A590 7F065A20 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A594 7F065A24 03202825 */ move $a1, $t9 +/* 09A598 7F065A28 0C002386 */ jal play_sfx_a1 +/* 09A59C 7F065A2C 260601D8 */ addiu $a2, $s0, 0x1d8 +.Ljp7F065A30: +/* 09A5A0 7F065A30 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A5A4 7F065A34 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A5A8 7F065A38 AE1801E0 */ sw $t8, 0x1e0($s0) +/* 09A5AC 7F065A3C 24010017 */ li $at, 23 +.Ljp7F065A40: +/* 09A5B0 7F065A40 1621002A */ bne $s1, $at, .Ljp7F065AEC +/* 09A5B4 7F065A44 3C0E8003 */ lui $t6, %hi(D_80035E90) # $t6, 0x8003 +/* 09A5B8 7F065A48 8DCE5ED0 */ lw $t6, %lo(D_80035E90)($t6) +/* 09A5BC 7F065A4C 0C002918 */ jal get_random_value +/* 09A5C0 7F065A50 AFAE01C0 */ sw $t6, 0x1c0($sp) +/* 09A5C4 7F065A54 304F0001 */ andi $t7, $v0, 1 +/* 09A5C8 7F065A58 000FC840 */ sll $t9, $t7, 1 +/* 09A5CC 7F065A5C 03B92821 */ addu $a1, $sp, $t9 +/* 09A5D0 7F065A60 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A5D4 7F065A64 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A5D8 7F065A68 84A501C0 */ lh $a1, 0x1c0($a1) +/* 09A5DC 7F065A6C 0C002386 */ jal play_sfx_a1 +/* 09A5E0 7F065A70 00003025 */ move $a2, $zero +/* 09A5E4 7F065A74 1000001E */ b .Ljp7F065AF0 +/* 09A5E8 7F065A78 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065A7C: +/* 09A5EC 7F065A7C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A5F0 7F065A80 240E0003 */ li $t6, 3 +/* 09A5F4 7F065A84 240F000D */ li $t7, 13 +/* 09A5F8 7F065A88 5B000006 */ blezl $t8, .Ljp7F065AA4 +/* 09A5FC 7F065A8C AE0F0024 */ sw $t7, 0x24($s0) +/* 09A600 7F065A90 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A604 7F065A94 AE000020 */ sw $zero, 0x20($s0) +/* 09A608 7F065A98 10000014 */ b .Ljp7F065AEC +/* 09A60C 7F065A9C AE00001C */ sw $zero, 0x1c($s0) +/* 09A610 7F065AA0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065AA4: +/* 09A614 7F065AA4 AE000020 */ sw $zero, 0x20($s0) +/* 09A618 7F065AA8 0FC26C01 */ jal get_num_players +/* 09A61C 7F065AAC AE00001C */ sw $zero, 0x1c($s0) +/* 09A620 7F065AB0 24010001 */ li $at, 1 +/* 09A624 7F065AB4 10410008 */ beq $v0, $at, .Ljp7F065AD8 +/* 09A628 7F065AB8 00000000 */ nop +/* 09A62C 7F065ABC 0FC31B59 */ jal checkGamePaused +/* 09A630 7F065AC0 00000000 */ nop +/* 09A634 7F065AC4 14400009 */ bnez $v0, .Ljp7F065AEC +/* 09A638 7F065AC8 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A63C 7F065ACC 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A640 7F065AD0 8F3829C4 */ lw $t8, 0x29c4($t9) +/* 09A644 7F065AD4 17000005 */ bnez $t8, .Ljp7F065AEC +.Ljp7F065AD8: +/* 09A648 7F065AD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A64C 7F065ADC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A650 7F065AE0 24050059 */ li $a1, 89 +/* 09A654 7F065AE4 0C002386 */ jal play_sfx_a1 +/* 09A658 7F065AE8 00003025 */ move $a2, $zero +.Ljp7F065AEC: +/* 09A65C 7F065AEC 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065AF0: +/* 09A660 7F065AF0 24010003 */ li $at, 3 +/* 09A664 7F065AF4 15C100D5 */ bne $t6, $at, .Ljp7F065E4C +/* 09A668 7F065AF8 2401001F */ li $at, 31 +/* 09A66C 7F065AFC 16210013 */ bne $s1, $at, .Ljp7F065B4C +/* 09A670 7F065B00 00000000 */ nop +/* 09A674 7F065B04 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A678 7F065B08 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A67C 7F065B0C 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A680 7F065B10 448F4000 */ mtc1 $t7, $f8 +/* 09A684 7F065B14 2606007C */ addiu $a2, $s0, 0x7c +/* 09A688 7F065B18 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A68C 7F065B1C 46804020 */ cvt.s.w $f0, $f8 +/* 09A690 7F065B20 44050000 */ mfc1 $a1, $f0 +/* 09A694 7F065B24 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A698 7F065B28 00000000 */ nop +/* 09A69C 7F065B2C 10400003 */ beqz $v0, .Ljp7F065B3C +/* 09A6A0 7F065B30 24190001 */ li $t9, 1 +/* 09A6A4 7F065B34 100000C5 */ b .Ljp7F065E4C +/* 09A6A8 7F065B38 AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F065B3C: +/* 09A6AC 7F065B3C AE000024 */ sw $zero, 0x24($s0) +/* 09A6B0 7F065B40 AE000020 */ sw $zero, 0x20($s0) +/* 09A6B4 7F065B44 100000C1 */ b .Ljp7F065E4C +/* 09A6B8 7F065B48 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065B4C: +/* 09A6BC 7F065B4C 0FC17375 */ jal get_ptr_item_statistics +/* 09A6C0 7F065B50 02202025 */ move $a0, $s1 +/* 09A6C4 7F065B54 8E050018 */ lw $a1, 0x18($s0) +/* 09A6C8 7F065B58 804A0047 */ lb $t2, 0x47($v0) +/* 09A6CC 7F065B5C 80440023 */ lb $a0, 0x23($v0) +/* 09A6D0 7F065B60 00406825 */ move $t5, $v0 +/* 09A6D4 7F065B64 80460044 */ lb $a2, 0x44($v0) +/* 09A6D8 7F065B68 804B0045 */ lb $t3, 0x45($v0) +/* 09A6DC 7F065B6C 80480046 */ lb $t0, 0x46($v0) +/* 09A6E0 7F065B70 01404825 */ move $t1, $t2 +/* 09A6E4 7F065B74 10A00006 */ beqz $a1, .Ljp7F065B90 +/* 09A6E8 7F065B78 00806025 */ move $t4, $a0 +/* 09A6EC 7F065B7C 8E180020 */ lw $t8, 0x20($s0) +/* 09A6F0 7F065B80 00CB7021 */ addu $t6, $a2, $t3 +/* 09A6F4 7F065B84 030E082A */ slt $at, $t8, $t6 +/* 09A6F8 7F065B88 5020000A */ beql $at, $zero, .Ljp7F065BB4 +/* 09A6FC 7F065B8C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065B90: +/* 09A700 7F065B90 8E030020 */ lw $v1, 0x20($s0) +/* 09A704 7F065B94 0480000A */ bltz $a0, .Ljp7F065BC0 +/* 09A708 7F065B98 00CB3821 */ addu $a3, $a2, $t3 +/* 09A70C 7F065B9C 14A00008 */ bnez $a1, .Ljp7F065BC0 +/* 09A710 7F065BA0 00EC7821 */ addu $t7, $a3, $t4 +/* 09A714 7F065BA4 006F082A */ slt $at, $v1, $t7 +/* 09A718 7F065BA8 14200005 */ bnez $at, .Ljp7F065BC0 +/* 09A71C 7F065BAC 00000000 */ nop +/* 09A720 7F065BB0 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065BB4: +/* 09A724 7F065BB4 AE000020 */ sw $zero, 0x20($s0) +/* 09A728 7F065BB8 100000A4 */ b .Ljp7F065E4C +/* 09A72C 7F065BBC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065BC0: +/* 09A730 7F065BC0 50A00014 */ beql $a1, $zero, .Ljp7F065C14 +/* 09A734 7F065BC4 0067082A */ slt $at, $v1, $a3 +/* 09A738 7F065BC8 8E190010 */ lw $t9, 0x10($s0) +/* 09A73C 7F065BCC 0068082A */ slt $at, $v1, $t0 +/* 09A740 7F065BD0 53200010 */ beql $t9, $zero, .Ljp7F065C14 +/* 09A744 7F065BD4 0067082A */ slt $at, $v1, $a3 +/* 09A748 7F065BD8 5420000E */ bnezl $at, .Ljp7F065C14 +/* 09A74C 7F065BDC 0067082A */ slt $at, $v1, $a3 +/* 09A750 7F065BE0 0540000B */ bltz $t2, .Ljp7F065C10 +/* 09A754 7F065BE4 00692021 */ addu $a0, $v1, $t1 +/* 09A758 7F065BE8 0087082A */ slt $at, $a0, $a3 +/* 09A75C 7F065BEC 10200008 */ beqz $at, .Ljp7F065C10 +/* 09A760 7F065BF0 0088082A */ slt $at, $a0, $t0 +/* 09A764 7F065BF4 14200006 */ bnez $at, .Ljp7F065C10 +/* 09A768 7F065BF8 24180004 */ li $t8, 4 +/* 09A76C 7F065BFC AE180024 */ sw $t8, 0x24($s0) +/* 09A770 7F065C00 AE000020 */ sw $zero, 0x20($s0) +/* 09A774 7F065C04 AE00001C */ sw $zero, 0x1c($s0) +/* 09A778 7F065C08 10000090 */ b .Ljp7F065E4C +/* 09A77C 7F065C0C AE090038 */ sw $t1, 0x38($s0) +.Ljp7F065C10: +/* 09A780 7F065C10 0067082A */ slt $at, $v1, $a3 +.Ljp7F065C14: +/* 09A784 7F065C14 1020008D */ beqz $at, .Ljp7F065E4C +/* 09A788 7F065C18 260E007C */ addiu $t6, $s0, 0x7c +/* 09A78C 7F065C1C C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A790 7F065C20 C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A794 7F065C24 1460000A */ bnez $v1, .Ljp7F065C50 +/* 09A798 7F065C28 AFAE0034 */ sw $t6, 0x34($sp) +/* 09A79C 7F065C2C C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A7A0 7F065C30 C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A7A4 7F065C34 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A7A8 7F065C38 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A7AC 7F065C3C 8E030020 */ lw $v1, 0x20($s0) +/* 09A7B0 7F065C40 E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A7B4 7F065C44 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A7B8 7F065C48 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A7BC 7F065C4C E6080054 */ swc1 $f8, 0x54($s0) +.Ljp7F065C50: +/* 09A7C0 7F065C50 0066082A */ slt $at, $v1, $a2 +/* 09A7C4 7F065C54 1020002B */ beqz $at, .Ljp7F065D04 +/* 09A7C8 7F065C58 3C018005 */ lui $at, %hi(D_80054170) # $at, 0x8005 +/* 09A7CC 7F065C5C C42C41A0 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A7D0 7F065C60 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A7D4 7F065C64 44812000 */ mtc1 $at, $f4 +/* 09A7D8 7F065C68 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A7DC 7F065C6C 46045183 */ div.s $f6, $f10, $f4 +/* 09A7E0 7F065C70 46066201 */ sub.s $f8, $f12, $f6 +/* 09A7E4 7F065C74 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A7E8 7F065C78 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A7EC 7F065C7C AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A7F0 7F065C80 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A7F4 7F065C84 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A7F8 7F065C88 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A7FC 7F065C8C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A800 7F065C90 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A804 7F065C94 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A808 7F065C98 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A80C 7F065C9C 44817000 */ mtc1 $at, $f14 +/* 09A810 7F065CA0 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A814 7F065CA4 44805000 */ mtc1 $zero, $f10 +/* 09A818 7F065CA8 46022182 */ mul.s $f6, $f4, $f2 +/* 09A81C 7F065CAC 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A820 7F065CB0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A824 7F065CB4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A828 7F065CB8 3C018005 */ lui $at, %hi(D_80054174) # $at, 0x8005 +/* 09A82C 7F065CBC 460E3203 */ div.s $f8, $f6, $f14 +/* 09A830 7F065CC0 C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A834 7F065CC4 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A838 7F065CC8 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 09A83C 7F065CCC 46062201 */ sub.s $f8, $f4, $f6 +/* 09A840 7F065CD0 448F3000 */ mtc1 $t7, $f6 +/* 09A844 7F065CD4 46024282 */ mul.s $f10, $f8, $f2 +/* 09A848 7F065CD8 46803220 */ cvt.s.w $f8, $f6 +/* 09A84C 7F065CDC 44863000 */ mtc1 $a2, $f6 +/* 09A850 7F065CE0 460E5103 */ div.s $f4, $f10, $f14 +/* 09A854 7F065CE4 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A858 7F065CE8 C42A41A4 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A85C 7F065CEC 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A860 7F065CF0 46803220 */ cvt.s.w $f8, $f6 +/* 09A864 7F065CF4 0FC160F3 */ jal sinf +/* 09A868 7F065CF8 46082303 */ div.s $f12, $f4, $f8 +/* 09A86C 7F065CFC 10000032 */ b .Ljp7F065DC8 +/* 09A870 7F065D00 46000086 */ mov.s $f2, $f0 +.Ljp7F065D04: +/* 09A874 7F065D04 3C018005 */ lui $at, %hi(D_80054178) # $at, 0x8005 +/* 09A878 7F065D08 C42C41A8 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A87C 7F065D0C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A880 7F065D10 44813000 */ mtc1 $at, $f6 +/* 09A884 7F065D14 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A888 7F065D18 46065103 */ div.s $f4, $f10, $f6 +/* 09A88C 7F065D1C 46046201 */ sub.s $f8, $f12, $f4 +/* 09A890 7F065D20 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A894 7F065D24 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A898 7F065D28 AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A89C 7F065D2C AFAB01B0 */ sw $t3, 0x1b0($sp) +/* 09A8A0 7F065D30 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A8A4 7F065D34 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A8A8 7F065D38 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A8AC 7F065D3C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A8B0 7F065D40 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A8B4 7F065D44 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A8B8 7F065D48 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A8BC 7F065D4C 44817000 */ mtc1 $at, $f14 +/* 09A8C0 7F065D50 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A8C4 7F065D54 44805000 */ mtc1 $zero, $f10 +/* 09A8C8 7F065D58 46023102 */ mul.s $f4, $f6, $f2 +/* 09A8CC 7F065D5C 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A8D0 7F065D60 8FAB01B0 */ lw $t3, 0x1b0($sp) +/* 09A8D4 7F065D64 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A8D8 7F065D68 8E190020 */ lw $t9, 0x20($s0) +/* 09A8DC 7F065D6C 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A8E0 7F065D70 460E2203 */ div.s $f8, $f4, $f14 +/* 09A8E4 7F065D74 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A8E8 7F065D78 0326C023 */ subu $t8, $t9, $a2 +/* 09A8EC 7F065D7C E608005C */ swc1 $f8, 0x5c($s0) +/* 09A8F0 7F065D80 C5A6000C */ lwc1 $f6, 0xc($t5) +/* 09A8F4 7F065D84 46043201 */ sub.s $f8, $f6, $f4 +/* 09A8F8 7F065D88 44982000 */ mtc1 $t8, $f4 +/* 09A8FC 7F065D8C 46024282 */ mul.s $f10, $f8, $f2 +/* 09A900 7F065D90 46802220 */ cvt.s.w $f8, $f4 +/* 09A904 7F065D94 448B2000 */ mtc1 $t3, $f4 +/* 09A908 7F065D98 460E5183 */ div.s $f6, $f10, $f14 +/* 09A90C 7F065D9C E6060064 */ swc1 $f6, 0x64($s0) +/* 09A910 7F065DA0 C42A41AC */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A914 7F065DA4 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A918 7F065DA8 46802220 */ cvt.s.w $f8, $f4 +/* 09A91C 7F065DAC 0FC160F0 */ jal cosf +/* 09A920 7F065DB0 46083303 */ div.s $f12, $f6, $f8 +/* 09A924 7F065DB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A928 7F065DB8 44815000 */ mtc1 $at, $f10 +/* 09A92C 7F065DBC 44813000 */ mtc1 $at, $f6 +/* 09A930 7F065DC0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A934 7F065DC4 46062080 */ add.s $f2, $f4, $f6 +.Ljp7F065DC8: +/* 09A938 7F065DC8 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A93C 7F065DCC C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A940 7F065DD0 44061000 */ mfc1 $a2, $f2 +/* 09A944 7F065DD4 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09A948 7F065DD8 E7A20194 */ swc1 $f2, 0x194($sp) +/* 09A94C 7F065DDC C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A950 7F065DE0 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A954 7F065DE4 C7A20194 */ lwc1 $f2, 0x194($sp) +/* 09A958 7F065DE8 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A95C 7F065DEC 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A960 7F065DF0 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A964 7F065DF4 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A968 7F065DF8 240E0001 */ li $t6, 1 +/* 09A96C 7F065DFC 46025102 */ mul.s $f4, $f10, $f2 +/* 09A970 7F065E00 46104281 */ sub.s $f10, $f8, $f16 +/* 09A974 7F065E04 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A978 7F065E08 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A97C 7F065E0C AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A980 7F065E10 46000306 */ mov.s $f12, $f0 +/* 09A984 7F065E14 460E2180 */ add.s $f6, $f4, $f14 +/* 09A988 7F065E18 46025102 */ mul.s $f4, $f10, $f2 +/* 09A98C 7F065E1C 46124281 */ sub.s $f10, $f8, $f18 +/* 09A990 7F065E20 E606006C */ swc1 $f6, 0x6c($s0) +/* 09A994 7F065E24 46102180 */ add.s $f6, $f4, $f16 +/* 09A998 7F065E28 46025102 */ mul.s $f4, $f10, $f2 +/* 09A99C 7F065E2C E6060070 */ swc1 $f6, 0x70($s0) +/* 09A9A0 7F065E30 46122180 */ add.s $f6, $f4, $f18 +/* 09A9A4 7F065E34 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A9A8 7F065E38 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09A9AC 7F065E3C 8FA50034 */ lw $a1, 0x34($sp) +/* 09A9B0 7F065E40 2604006C */ addiu $a0, $s0, 0x6c +/* 09A9B4 7F065E44 0FC163AE */ jal matrix_4x4_set_position +/* 09A9B8 7F065E48 8FA50034 */ lw $a1, 0x34($sp) +.Ljp7F065E4C: +/* 09A9BC 7F065E4C 8E020024 */ lw $v0, 0x24($s0) +/* 09A9C0 7F065E50 24010004 */ li $at, 4 +/* 09A9C4 7F065E54 54410053 */ bnel $v0, $at, .Ljp7F065FA4 +/* 09A9C8 7F065E58 2401000D */ li $at, 13 +/* 09A9CC 7F065E5C 8E030020 */ lw $v1, 0x20($s0) +/* 09A9D0 7F065E60 54600013 */ bnezl $v1, .Ljp7F065EB0 +/* 09A9D4 7F065E64 8E020038 */ lw $v0, 0x38($s0) +/* 09A9D8 7F065E68 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A9DC 7F065E6C C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A9E0 7F065E70 C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A9E4 7F065E74 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A9E8 7F065E78 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A9EC 7F065E7C E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A9F0 7F065E80 E6040050 */ swc1 $f4, 0x50($s0) +/* 09A9F4 7F065E84 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A9F8 7F065E88 44804000 */ mtc1 $zero, $f8 +/* 09A9FC 7F065E8C 44805000 */ mtc1 $zero, $f10 +/* 09AA00 7F065E90 44802000 */ mtc1 $zero, $f4 +/* 09AA04 7F065E94 44803000 */ mtc1 $zero, $f6 +/* 09AA08 7F065E98 8E030020 */ lw $v1, 0x20($s0) +/* 09AA0C 7F065E9C E6080068 */ swc1 $f8, 0x68($s0) +/* 09AA10 7F065EA0 E60A005C */ swc1 $f10, 0x5c($s0) +/* 09AA14 7F065EA4 E6040060 */ swc1 $f4, 0x60($s0) +/* 09AA18 7F065EA8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09AA1C 7F065EAC 8E020038 */ lw $v0, 0x38($s0) +.Ljp7F065EB0: +/* 09AA20 7F065EB0 0062082A */ slt $at, $v1, $v0 +/* 09AA24 7F065EB4 10200036 */ beqz $at, .Ljp7F065F90 +/* 09AA28 7F065EB8 00437823 */ subu $t7, $v0, $v1 +/* 09AA2C 7F065EBC 448F4000 */ mtc1 $t7, $f8 +/* 09AA30 7F065EC0 3C018005 */ lui $at, %hi(D_80054180) # $at, 0x8005 +/* 09AA34 7F065EC4 C42441B0 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09AA38 7F065EC8 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA3C 7F065ECC 44824000 */ mtc1 $v0, $f8 +/* 09AA40 7F065ED0 2619007C */ addiu $t9, $s0, 0x7c +/* 09AA44 7F065ED4 2618006C */ addiu $t8, $s0, 0x6c +/* 09AA48 7F065ED8 AFB80038 */ sw $t8, 0x38($sp) +/* 09AA4C 7F065EDC AFB90034 */ sw $t9, 0x34($sp) +/* 09AA50 7F065EE0 46045182 */ mul.s $f6, $f10, $f4 +/* 09AA54 7F065EE4 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA58 7F065EE8 0FC160F0 */ jal cosf +/* 09AA5C 7F065EEC 460A3303 */ div.s $f12, $f6, $f10 +/* 09AA60 7F065EF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09AA64 7F065EF4 44818000 */ mtc1 $at, $f16 +/* 09AA68 7F065EF8 00000000 */ nop +/* 09AA6C 7F065EFC 46100102 */ mul.s $f4, $f0, $f16 +/* 09AA70 7F065F00 46102080 */ add.s $f2, $f4, $f16 +/* 09AA74 7F065F04 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09AA78 7F065F08 44061000 */ mfc1 $a2, $f2 +/* 09AA7C 7F065F0C C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09AA80 7F065F10 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09AA84 7F065F14 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09AA88 7F065F18 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09AA8C 7F065F1C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09AA90 7F065F20 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09AA94 7F065F24 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09AA98 7F065F28 460E4181 */ sub.s $f6, $f8, $f14 +/* 09AA9C 7F065F2C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09AAA0 7F065F30 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09AAA4 7F065F34 240E0001 */ li $t6, 1 +/* 09AAA8 7F065F38 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAAC 7F065F3C 46104181 */ sub.s $f6, $f8, $f16 +/* 09AAB0 7F065F40 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09AAB4 7F065F44 E6000078 */ swc1 $f0, 0x78($s0) +/* 09AAB8 7F065F48 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AABC 7F065F4C 46000306 */ mov.s $f12, $f0 +/* 09AAC0 7F065F50 460E5100 */ add.s $f4, $f10, $f14 +/* 09AAC4 7F065F54 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAC8 7F065F58 46124181 */ sub.s $f6, $f8, $f18 +/* 09AACC 7F065F5C E604006C */ swc1 $f4, 0x6c($s0) +/* 09AAD0 7F065F60 46105100 */ add.s $f4, $f10, $f16 +/* 09AAD4 7F065F64 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAD8 7F065F68 E6040070 */ swc1 $f4, 0x70($s0) +/* 09AADC 7F065F6C 46125100 */ add.s $f4, $f10, $f18 +/* 09AAE0 7F065F70 E6040074 */ swc1 $f4, 0x74($s0) +/* 09AAE4 7F065F74 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AAE8 7F065F78 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAEC 7F065F7C 8FA40038 */ lw $a0, 0x38($sp) +/* 09AAF0 7F065F80 0FC163AE */ jal matrix_4x4_set_position +/* 09AAF4 7F065F84 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAF8 7F065F88 10000005 */ b .Ljp7F065FA0 +/* 09AAFC 7F065F8C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065F90: +/* 09AB00 7F065F90 AE000024 */ sw $zero, 0x24($s0) +/* 09AB04 7F065F94 AE000020 */ sw $zero, 0x20($s0) +/* 09AB08 7F065F98 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB0C 7F065F9C 00001025 */ move $v0, $zero +.Ljp7F065FA0: +/* 09AB10 7F065FA0 2401000D */ li $at, 13 +.Ljp7F065FA4: +/* 09AB14 7F065FA4 54410013 */ bnel $v0, $at, .Ljp7F065FF4 +/* 09AB18 7F065FA8 8E020024 */ lw $v0, 0x24($s0) +/* 09AB1C 7F065FAC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09AB20 7F065FB0 55E00004 */ bnezl $t7, .Ljp7F065FC4 +/* 09AB24 7F065FB4 8E050018 */ lw $a1, 0x18($s0) +/* 09AB28 7F065FB8 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09AB2C 7F065FBC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AB30 7F065FC0 8E050018 */ lw $a1, 0x18($s0) +.Ljp7F065FC4: +/* 09AB34 7F065FC4 54A00008 */ bnezl $a1, .Ljp7F065FE8 +/* 09AB38 7F065FC8 AE000024 */ sw $zero, 0x24($s0) +/* 09AB3C 7F065FCC 54A00009 */ bnezl $a1, .Ljp7F065FF4 +/* 09AB40 7F065FD0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB44 7F065FD4 8E190020 */ lw $t9, 0x20($s0) +/* 09AB48 7F065FD8 2B210014 */ slti $at, $t9, 0x14 +/* 09AB4C 7F065FDC 54200005 */ bnezl $at, .Ljp7F065FF4 +/* 09AB50 7F065FE0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB54 7F065FE4 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065FE8: +/* 09AB58 7F065FE8 AE000020 */ sw $zero, 0x20($s0) +/* 09AB5C 7F065FEC AE00001C */ sw $zero, 0x1c($s0) +/* 09AB60 7F065FF0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065FF4: +/* 09AB64 7F065FF4 24050005 */ li $a1, 5 +/* 09AB68 7F065FF8 24040010 */ li $a0, 16 +/* 09AB6C 7F065FFC 54A2005E */ bnel $a1, $v0, .Ljp7F066178 +/* 09AB70 7F066000 24060006 */ li $a2, 6 +/* 09AB74 7F066004 0FC26C01 */ jal get_num_players +/* 09AB78 7F066008 AFA4018C */ sw $a0, 0x18c($sp) +/* 09AB7C 7F06600C 28410002 */ slti $at, $v0, 2 +/* 09AB80 7F066010 14200002 */ bnez $at, .Ljp7F06601C +/* 09AB84 7F066014 8FA4018C */ lw $a0, 0x18c($sp) +/* 09AB88 7F066018 2404000C */ li $a0, 12 +.Ljp7F06601C: +/* 09AB8C 7F06601C 8E18001C */ lw $t8, 0x1c($s0) +/* 09AB90 7F066020 5700000C */ bnezl $t8, .Ljp7F066054 +/* 09AB94 7F066024 8E030020 */ lw $v1, 0x20($s0) +/* 09AB98 7F066028 0FC26C01 */ jal get_num_players +/* 09AB9C 7F06602C AFA4018C */ sw $a0, 0x18c($sp) +/* 09ABA0 7F066030 24010001 */ li $at, 1 +/* 09ABA4 7F066034 14410004 */ bne $v0, $at, .Ljp7F066048 +/* 09ABA8 7F066038 8FA4018C */ lw $a0, 0x18c($sp) +/* 09ABAC 7F06603C 240E0011 */ li $t6, 17 +/* 09ABB0 7F066040 10000003 */ b .Ljp7F066050 +/* 09ABB4 7F066044 AE0E0040 */ sw $t6, 0x40($s0) +.Ljp7F066048: +/* 09ABB8 7F066048 240F000D */ li $t7, 13 +/* 09ABBC 7F06604C AE0F0040 */ sw $t7, 0x40($s0) +.Ljp7F066050: +/* 09ABC0 7F066050 8E030020 */ lw $v1, 0x20($s0) +.Ljp7F066054: +/* 09ABC4 7F066054 0064082A */ slt $at, $v1, $a0 +/* 09ABC8 7F066058 54200026 */ bnezl $at, .Ljp7F0660F4 +/* 09ABCC 7F06605C 44834000 */ mtc1 $v1, $f8 +/* 09ABD0 7F066060 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09ABD4 7F066064 02202025 */ move $a0, $s1 +/* 09ABD8 7F066068 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09ABDC 7F06606C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09ABE0 7F066070 0002C080 */ sll $t8, $v0, 2 +/* 09ABE4 7F066074 8E0F002C */ lw $t7, 0x2c($s0) +/* 09ABE8 7F066078 03381821 */ addu $v1, $t9, $t8 +/* 09ABEC 7F06607C 8C6E1130 */ lw $t6, 0x1130($v1) +/* 09ABF0 7F066080 01CFC821 */ addu $t9, $t6, $t7 +/* 09ABF4 7F066084 AC791130 */ sw $t9, 0x1130($v1) +/* 09ABF8 7F066088 0FC26C01 */ jal get_num_players +/* 09ABFC 7F06608C AE00002C */ sw $zero, 0x2c($s0) +/* 09AC00 7F066090 28410002 */ slti $at, $v0, 2 +/* 09AC04 7F066094 14200003 */ bnez $at, .Ljp7F0660A4 +/* 09AC08 7F066098 00000000 */ nop +/* 09AC0C 7F06609C 0FC26FC2 */ jal sub_GAME_7F09B368 +/* 09AC10 7F0660A0 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F0660A4: +/* 09AC14 7F0660A4 0FC18008 */ jal sub_GAME_7F05FB00 +/* 09AC18 7F0660A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AC1C 7F0660AC 24180006 */ li $t8, 6 +/* 09AC20 7F0660B0 AE180024 */ sw $t8, 0x24($s0) +/* 09AC24 7F0660B4 0FC23314 */ jal check_if_item_available +/* 09AC28 7F0660B8 24040011 */ li $a0, 17 +/* 09AC2C 7F0660BC 10400006 */ beqz $v0, .Ljp7F0660D8 +/* 09AC30 7F0660C0 24050005 */ li $a1, 5 +/* 09AC34 7F0660C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AC38 7F0660C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC3C 7F0660CC 240E0011 */ li $t6, 17 +/* 09AC40 7F0660D0 10000005 */ b .Ljp7F0660E8 +/* 09AC44 7F0660D4 ADEE2A38 */ sw $t6, 0x2a38($t7) +.Ljp7F0660D8: +/* 09AC48 7F0660D8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AC4C 7F0660DC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AC50 7F0660E0 24190001 */ li $t9, 1 +/* 09AC54 7F0660E4 AF192A38 */ sw $t9, 0x2a38($t8) +.Ljp7F0660E8: +/* 09AC58 7F0660E8 10000022 */ b .Ljp7F066174 +/* 09AC5C 7F0660EC 8E020024 */ lw $v0, 0x24($s0) +/* 09AC60 7F0660F0 44834000 */ mtc1 $v1, $f8 +.Ljp7F0660F4: +/* 09AC64 7F0660F4 3C018005 */ lui $at, %hi(D_80054184) # $at, 0x8005 +/* 09AC68 7F0660F8 C42A41B4 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09AC6C 7F0660FC 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC70 7F066100 44844000 */ mtc1 $a0, $f8 +/* 09AC74 7F066104 240E0001 */ li $t6, 1 +/* 09AC78 7F066108 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AC7C 7F06610C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AC80 7F066110 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AC84 7F066114 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC88 7F066118 46062303 */ div.s $f12, $f4, $f6 +/* 09AC8C 7F06611C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AC90 7F066120 E7AC0188 */ swc1 $f12, 0x188($sp) +/* 09AC94 7F066124 44805000 */ mtc1 $zero, $f10 +/* 09AC98 7F066128 00000000 */ nop +/* 09AC9C 7F06612C E60A00AC */ swc1 $f10, 0xac($s0) +/* 09ACA0 7F066130 0FC160F0 */ jal cosf +/* 09ACA4 7F066134 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACA8 7F066138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ACAC 7F06613C 44814000 */ mtc1 $at, $f8 +/* 09ACB0 7F066140 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09ACB4 7F066144 44813000 */ mtc1 $at, $f6 +/* 09ACB8 7F066148 46004101 */ sub.s $f4, $f8, $f0 +/* 09ACBC 7F06614C 46062282 */ mul.s $f10, $f4, $f6 +/* 09ACC0 7F066150 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09ACC4 7F066154 0FC160F3 */ jal sinf +/* 09ACC8 7F066158 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACCC 7F06615C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ACD0 7F066160 44814000 */ mtc1 $at, $f8 +/* 09ACD4 7F066164 8E020024 */ lw $v0, 0x24($s0) +/* 09ACD8 7F066168 24050005 */ li $a1, 5 +/* 09ACDC 7F06616C 46080102 */ mul.s $f4, $f0, $f8 +/* 09ACE0 7F066170 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066174: +/* 09ACE4 7F066174 24060006 */ li $a2, 6 +.Ljp7F066178: +/* 09ACE8 7F066178 10C20003 */ beq $a2, $v0, .Ljp7F066188 +/* 09ACEC 7F06617C 24010007 */ li $at, 7 +/* 09ACF0 7F066180 54410066 */ bnel $v0, $at, .Ljp7F06631C +/* 09ACF4 7F066184 24010008 */ li $at, 8 +.Ljp7F066188: +/* 09ACF8 7F066188 8E0F0044 */ lw $t7, 0x44($s0) +/* 09ACFC 7F06618C 11E00006 */ beqz $t7, .Ljp7F0661A8 +/* 09AD00 7F066190 00000000 */ nop +/* 09AD04 7F066194 8E190020 */ lw $t9, 0x20($s0) +/* 09AD08 7F066198 8E180040 */ lw $t8, 0x40($s0) +/* 09AD0C 7F06619C 0338082A */ slt $at, $t9, $t8 +/* 09AD10 7F0661A0 5420003E */ bnezl $at, .Ljp7F06629C +/* 09AD14 7F0661A4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0661A8: +/* 09AD18 7F0661A8 14C20034 */ bne $a2, $v0, .Ljp7F06627C +/* 09AD1C 7F0661AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09AD20 7F0661B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09AD24 7F0661B4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09AD28 7F0661B8 01CF1823 */ subu $v1, $t6, $t7 +/* 09AD2C 7F0661BC 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09AD30 7F0661C0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09AD34 7F0661C4 50C20025 */ beql $a2, $v0, .Ljp7F06625C +/* 09AD38 7F0661C8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD3C 7F0661CC 50A20023 */ beql $a1, $v0, .Ljp7F06625C +/* 09AD40 7F0661D0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD44 7F0661D4 8C640028 */ lw $a0, 0x28($v1) +/* 09AD48 7F0661D8 2401000E */ li $at, 14 +/* 09AD4C 7F0661DC 50A4001F */ beql $a1, $a0, .Ljp7F06625C +/* 09AD50 7F0661E0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD54 7F0661E4 1041001C */ beq $v0, $at, .Ljp7F066258 +/* 09AD58 7F0661E8 2401000F */ li $at, 15 +/* 09AD5C 7F0661EC 1041001A */ beq $v0, $at, .Ljp7F066258 +/* 09AD60 7F0661F0 24010010 */ li $at, 16 +/* 09AD64 7F0661F4 10410018 */ beq $v0, $at, .Ljp7F066258 +/* 09AD68 7F0661F8 2401000E */ li $at, 14 +/* 09AD6C 7F0661FC 10810016 */ beq $a0, $at, .Ljp7F066258 +/* 09AD70 7F066200 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09AD74 7F066204 1720000C */ bnez $t9, .Ljp7F066238 +/* 09AD78 7F066208 00000000 */ nop +/* 09AD7C 7F06620C 0FC177BC */ jal get_item_in_hand +/* 09AD80 7F066210 24040001 */ li $a0, 1 +/* 09AD84 7F066214 8E04003C */ lw $a0, 0x3c($s0) +/* 09AD88 7F066218 0FC2332D */ jal check_if_item_for_hand_available +/* 09AD8C 7F06621C 00402825 */ move $a1, $v0 +/* 09AD90 7F066220 1440000D */ bnez $v0, .Ljp7F066258 +/* 09AD94 7F066224 24040001 */ li $a0, 1 +/* 09AD98 7F066228 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 09AD9C 7F06622C 00002825 */ move $a1, $zero +/* 09ADA0 7F066230 1000000A */ b .Ljp7F06625C +/* 09ADA4 7F066234 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066238: +/* 09ADA8 7F066238 0FC177BC */ jal get_item_in_hand +/* 09ADAC 7F06623C 00002025 */ move $a0, $zero +/* 09ADB0 7F066240 00402025 */ move $a0, $v0 +/* 09ADB4 7F066244 0FC2332D */ jal check_if_item_for_hand_available +/* 09ADB8 7F066248 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADBC 7F06624C 54400003 */ bnezl $v0, .Ljp7F06625C +/* 09ADC0 7F066250 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADC4 7F066254 AE00003C */ sw $zero, 0x3c($s0) +.Ljp7F066258: +/* 09ADC8 7F066258 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F06625C: +/* 09ADCC 7F06625C 0FC1781D */ jal remove_hands_item +/* 09ADD0 7F066260 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADD4 7F066264 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09ADD8 7F066268 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADDC 7F06626C 24180007 */ li $t8, 7 +/* 09ADE0 7F066270 00408825 */ move $s1, $v0 +/* 09ADE4 7F066274 10000008 */ b .Ljp7F066298 +/* 09ADE8 7F066278 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F06627C: +/* 09ADEC 7F06627C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09ADF0 7F066280 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADF4 7F066284 10400004 */ beqz $v0, .Ljp7F066298 +/* 09ADF8 7F066288 240E0008 */ li $t6, 8 +/* 09ADFC 7F06628C AE0E0024 */ sw $t6, 0x24($s0) +/* 09AE00 7F066290 AE000020 */ sw $zero, 0x20($s0) +/* 09AE04 7F066294 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066298: +/* 09AE08 7F066298 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F06629C: +/* 09AE0C 7F06629C 24060006 */ li $a2, 6 +/* 09AE10 7F0662A0 24010007 */ li $at, 7 +/* 09AE14 7F0662A4 10C20003 */ beq $a2, $v0, .Ljp7F0662B4 +/* 09AE18 7F0662A8 240F0001 */ li $t7, 1 +/* 09AE1C 7F0662AC 5441001B */ bnel $v0, $at, .Ljp7F06631C +/* 09AE20 7F0662B0 24010008 */ li $at, 8 +.Ljp7F0662B4: +/* 09AE24 7F0662B4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AE28 7F0662B8 3C018005 */ lui $at, %hi(D_80054188) # $at, 0x8005 +/* 09AE2C 7F0662BC C42C41B8 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09AE30 7F0662C0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AE34 7F0662C4 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE38 7F0662C8 44803000 */ mtc1 $zero, $f6 +/* 09AE3C 7F0662CC 3C018005 */ lui $at, %hi(D_8005418C) # $at, 0x8005 +/* 09AE40 7F0662D0 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AE44 7F0662D4 0FC160F0 */ jal cosf +/* 09AE48 7F0662D8 C42C41BC */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09AE4C 7F0662DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AE50 7F0662E0 44815000 */ mtc1 $at, $f10 +/* 09AE54 7F0662E4 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AE58 7F0662E8 44812000 */ mtc1 $at, $f4 +/* 09AE5C 7F0662EC 46005201 */ sub.s $f8, $f10, $f0 +/* 09AE60 7F0662F0 3C018005 */ lui $at, %hi(D_80054190) # $at, 0x8005 +/* 09AE64 7F0662F4 46044182 */ mul.s $f6, $f8, $f4 +/* 09AE68 7F0662F8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AE6C 7F0662FC 0FC160F3 */ jal sinf +/* 09AE70 7F066300 C42C41C0 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09AE74 7F066304 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AE78 7F066308 44815000 */ mtc1 $at, $f10 +/* 09AE7C 7F06630C 8E020024 */ lw $v0, 0x24($s0) +/* 09AE80 7F066310 460A0202 */ mul.s $f8, $f0, $f10 +/* 09AE84 7F066314 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09AE88 7F066318 24010008 */ li $at, 8 +.Ljp7F06631C: +/* 09AE8C 7F06631C 1441008D */ bne $v0, $at, .Ljp7F066554 +/* 09AE90 7F066320 24190017 */ li $t9, 23 +/* 09AE94 7F066324 0FC26C01 */ jal get_num_players +/* 09AE98 7F066328 AFB9017C */ sw $t9, 0x17c($sp) +/* 09AE9C 7F06632C 28410002 */ slti $at, $v0, 2 +/* 09AEA0 7F066330 14200002 */ bnez $at, .Ljp7F06633C +/* 09AEA4 7F066334 2418000C */ li $t8, 12 +/* 09AEA8 7F066338 AFB8017C */ sw $t8, 0x17c($sp) +.Ljp7F06633C: +/* 09AEAC 7F06633C 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AEB0 7F066340 55C0004D */ bnezl $t6, .Ljp7F066478 +/* 09AEB4 7F066344 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEB8 7F066348 0FC26C01 */ jal get_num_players +/* 09AEBC 7F06634C 00000000 */ nop +/* 09AEC0 7F066350 28410002 */ slti $at, $v0, 2 +/* 09AEC4 7F066354 14200003 */ bnez $at, .Ljp7F066364 +/* 09AEC8 7F066358 00000000 */ nop +/* 09AECC 7F06635C 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09AED0 7F066360 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066364: +/* 09AED4 7F066364 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09AED8 7F066368 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AEDC 7F06636C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AEE0 7F066370 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AEE4 7F066374 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 09AEE8 7F066378 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AEEC 7F06637C ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09AEF0 7F066380 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 09AEF4 7F066384 5B20003C */ blezl $t9, .Ljp7F066478 +/* 09AEF8 7F066388 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEFC 7F06638C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AF00 7F066390 24010001 */ li $at, 1 +/* 09AF04 7F066394 8F0E0000 */ lw $t6, ($t8) +/* 09AF08 7F066398 51C10037 */ beql $t6, $at, .Ljp7F066478 +/* 09AF0C 7F06639C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF10 7F0663A0 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09AF14 7F0663A4 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AF18 7F0663A8 10400032 */ beqz $v0, weapon_switchstyle_NONE +/* 09AF1C 7F0663AC 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 09AF20 7F0663B0 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 09AF24 7F0663B4 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09AF28 7F0663B8 55E0002F */ bnezl $t7, .Ljp7F066478 +/* 09AF2C 7F0663BC 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF30 7F0663C0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09AF34 7F0663C4 2A21003E */ slti $at, $s1, 0x3e +/* 09AF38 7F0663C8 8F3800D8 */ lw $t8, 0xd8($t9) +/* 09AF3C 7F0663CC 5700002A */ bnezl $t8, .Ljp7F066478 +/* 09AF40 7F0663D0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF44 7F0663D4 14200005 */ bnez $at, .Ljp7F0663EC +/* 09AF48 7F0663D8 24010058 */ li $at, 88 +/* 09AF4C 7F0663DC 52210026 */ beql $s1, $at, .Ljp7F066478 +/* 09AF50 7F0663E0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF54 7F0663E4 1000001E */ b weapon_playsfx_gun +/* 09AF58 7F0663E8 00000000 */ nop +.Ljp7F0663EC: +/* 09AF5C 7F0663EC 2E21003E */ sltiu $at, $s1, 0x3e +/* 09AF60 7F0663F0 1020001B */ beqz $at, weapon_playsfx_gun +/* 09AF64 7F0663F4 00117080 */ sll $t6, $s1, 2 +/* 09AF68 7F0663F8 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09AF6C 7F0663FC 002E0821 */ addu $at, $at, $t6 +/* 09AF70 7F066400 8C2E41C4 */ lw $t6, %lo(jpt_80054194)($at) +/* 09AF74 7F066404 01C00008 */ jr $t6 +/* 09AF78 7F066408 00000000 */ nop +weapon_playsfx_F2: +/* 09AF7C 7F06640C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AF80 7F066410 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AF84 7F066414 240500F2 */ li $a1, 242 +/* 09AF88 7F066418 0C002386 */ jal play_sfx_a1 +/* 09AF8C 7F06641C 00003025 */ move $a2, $zero +/* 09AF90 7F066420 10000015 */ b .Ljp7F066478 +/* 09AF94 7F066424 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_knife: +/* 09AF98 7F066428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AF9C 7F06642C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFA0 7F066430 240500E9 */ li $a1, 233 +/* 09AFA4 7F066434 0C002386 */ jal play_sfx_a1 +/* 09AFA8 7F066438 00003025 */ move $a2, $zero +/* 09AFAC 7F06643C 1000000E */ b .Ljp7F066478 +/* 09AFB0 7F066440 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_mine: +/* 09AFB4 7F066444 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AFB8 7F066448 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFBC 7F06644C 240500EB */ li $a1, 235 +/* 09AFC0 7F066450 0C002386 */ jal play_sfx_a1 +/* 09AFC4 7F066454 00003025 */ move $a2, $zero +/* 09AFC8 7F066458 10000007 */ b .Ljp7F066478 +/* 09AFCC 7F06645C 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_gun: +/* 09AFD0 7F066460 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AFD4 7F066464 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFD8 7F066468 240500E8 */ li $a1, 232 +/* 09AFDC 7F06646C 0C002386 */ jal play_sfx_a1 +/* 09AFE0 7F066470 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +/* 09AFE4 7F066474 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066478: +/* 09AFE8 7F066478 8FB9017C */ lw $t9, 0x17c($sp) +/* 09AFEC 7F06647C 01F9082A */ slt $at, $t7, $t9 +/* 09AFF0 7F066480 5020000E */ beql $at, $zero, .Ljp7F0664BC +/* 09AFF4 7F066484 AE000024 */ sw $zero, 0x24($s0) +/* 09AFF8 7F066488 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09AFFC 7F06648C 02202025 */ move $a0, $s1 +/* 09B000 7F066490 10400009 */ beqz $v0, .Ljp7F0664B8 +/* 09B004 7F066494 02202025 */ move $a0, $s1 +/* 09B008 7F066498 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B00C 7F06649C 24050800 */ li $a1, 2048 +/* 09B010 7F0664A0 10400005 */ beqz $v0, .Ljp7F0664B8 +/* 09B014 7F0664A4 02202025 */ move $a0, $s1 +/* 09B018 7F0664A8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B01C 7F0664AC 24052000 */ li $a1, 8192 +/* 09B020 7F0664B0 10400006 */ beqz $v0, .Ljp7F0664CC +/* 09B024 7F0664B4 8FB8017C */ lw $t8, 0x17c($sp) +.Ljp7F0664B8: +/* 09B028 7F0664B8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0664BC: +/* 09B02C 7F0664BC AE000020 */ sw $zero, 0x20($s0) +/* 09B030 7F0664C0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B034 7F0664C4 10000023 */ b .Ljp7F066554 +/* 09B038 7F0664C8 00001025 */ move $v0, $zero +.Ljp7F0664CC: +/* 09B03C 7F0664CC 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B040 7F0664D0 3C018005 */ lui $at, %hi(D_8005428C) # $at, 0x8005 +/* 09B044 7F0664D4 C42A42BC */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09B048 7F0664D8 030E7823 */ subu $t7, $t8, $t6 +/* 09B04C 7F0664DC 448F2000 */ mtc1 $t7, $f4 +/* 09B050 7F0664E0 24190001 */ li $t9, 1 +/* 09B054 7F0664E4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B058 7F0664E8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B05C 7F0664EC 44982000 */ mtc1 $t8, $f4 +/* 09B060 7F0664F0 2605007C */ addiu $a1, $s0, 0x7c +/* 09B064 7F0664F4 460A3202 */ mul.s $f8, $f6, $f10 +/* 09B068 7F0664F8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B06C 7F0664FC 46064303 */ div.s $f12, $f8, $f6 +/* 09B070 7F066500 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B074 7F066504 E7AC0178 */ swc1 $f12, 0x178($sp) +/* 09B078 7F066508 44805000 */ mtc1 $zero, $f10 +/* 09B07C 7F06650C 00000000 */ nop +/* 09B080 7F066510 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09B084 7F066514 0FC160F0 */ jal cosf +/* 09B088 7F066518 C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B08C 7F06651C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B090 7F066520 44812000 */ mtc1 $at, $f4 +/* 09B094 7F066524 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B098 7F066528 44813000 */ mtc1 $at, $f6 +/* 09B09C 7F06652C 46002201 */ sub.s $f8, $f4, $f0 +/* 09B0A0 7F066530 46064282 */ mul.s $f10, $f8, $f6 +/* 09B0A4 7F066534 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09B0A8 7F066538 0FC160F3 */ jal sinf +/* 09B0AC 7F06653C C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B0B0 7F066540 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0B4 7F066544 44812000 */ mtc1 $at, $f4 +/* 09B0B8 7F066548 8E020024 */ lw $v0, 0x24($s0) +/* 09B0BC 7F06654C 46040202 */ mul.s $f8, $f0, $f4 +/* 09B0C0 7F066550 E60800B4 */ swc1 $f8, 0xb4($s0) +.Ljp7F066554: +/* 09B0C4 7F066554 24010009 */ li $at, 9 +/* 09B0C8 7F066558 54410018 */ bnel $v0, $at, .Ljp7F0665BC +/* 09B0CC 7F06655C 2401000A */ li $at, 10 +/* 09B0D0 7F066560 0FC17375 */ jal get_ptr_item_statistics +/* 09B0D4 7F066564 02202025 */ move $a0, $s1 +/* 09B0D8 7F066568 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B0DC 7F06656C 844F0020 */ lh $t7, 0x20($v0) +/* 09B0E0 7F066570 02202025 */ move $a0, $s1 +/* 09B0E4 7F066574 01CF082A */ slt $at, $t6, $t7 +/* 09B0E8 7F066578 14200005 */ bnez $at, .Ljp7F066590 +/* 09B0EC 7F06657C 00000000 */ nop +/* 09B0F0 7F066580 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B0F4 7F066584 3C050020 */ lui $a1, 0x20 +/* 09B0F8 7F066588 50400008 */ beql $v0, $zero, .Ljp7F0665AC +/* 09B0FC 7F06658C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066590: +/* 09B100 7F066590 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 09B104 7F066594 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B108 7F066598 18400003 */ blez $v0, .Ljp7F0665A8 +/* 09B10C 7F06659C 2402000A */ li $v0, 10 +/* 09B110 7F0665A0 10000005 */ b .Ljp7F0665B8 +/* 09B114 7F0665A4 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665A8: +/* 09B118 7F0665A8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0665AC: +/* 09B11C 7F0665AC AE000020 */ sw $zero, 0x20($s0) +/* 09B120 7F0665B0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B124 7F0665B4 00001025 */ move $v0, $zero +.Ljp7F0665B8: +/* 09B128 7F0665B8 2401000A */ li $at, 10 +.Ljp7F0665BC: +/* 09B12C 7F0665BC 54410048 */ bnel $v0, $at, .Ljp7F0666E0 +/* 09B130 7F0665C0 2401000B */ li $at, 11 +/* 09B134 7F0665C4 8E030020 */ lw $v1, 0x20($s0) +/* 09B138 7F0665C8 2402000B */ li $v0, 11 +/* 09B13C 7F0665CC 240F0011 */ li $t7, 17 +/* 09B140 7F0665D0 28610010 */ slti $at, $v1, 0x10 +/* 09B144 7F0665D4 50200005 */ beql $at, $zero, .Ljp7F0665EC +/* 09B148 7F0665D8 AE020024 */ sw $v0, 0x24($s0) +/* 09B14C 7F0665DC 8219000F */ lb $t9, 0xf($s0) +/* 09B150 7F0665E0 57200007 */ bnezl $t9, .Ljp7F066600 +/* 09B154 7F0665E4 44833000 */ mtc1 $v1, $f6 +/* 09B158 7F0665E8 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665EC: +/* 09B15C 7F0665EC AE0F0040 */ sw $t7, 0x40($s0) +/* 09B160 7F0665F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B164 7F0665F4 10000039 */ b .Ljp7F0666DC +/* 09B168 7F0665F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09B16C 7F0665FC 44833000 */ mtc1 $v1, $f6 +.Ljp7F066600: +/* 09B170 7F066600 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B174 7F066604 44811000 */ mtc1 $at, $f2 +/* 09B178 7F066608 468032A0 */ cvt.s.w $f10, $f6 +/* 09B17C 7F06660C 3C018005 */ lui $at, %hi(D_80054290) # $at, 0x8005 +/* 09B180 7F066610 C42442C0 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09B184 7F066614 24180001 */ li $t8, 1 +/* 09B188 7F066618 2605007C */ addiu $a1, $s0, 0x7c +/* 09B18C 7F06661C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B190 7F066620 46024183 */ div.s $f6, $f8, $f2 +/* 09B194 7F066624 E7A6012C */ swc1 $f6, 0x12c($sp) +/* 09B198 7F066628 AE1800BC */ sw $t8, 0xbc($s0) +/* 09B19C 7F06662C 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09B1A0 7F066630 57200009 */ bnezl $t9, .Ljp7F066658 +/* 09B1A4 7F066634 44802000 */ mtc1 $zero, $f4 +/* 09B1A8 7F066638 44805000 */ mtc1 $zero, $f10 +/* 09B1AC 7F06663C AFA50034 */ sw $a1, 0x34($sp) +/* 09B1B0 7F066640 46025303 */ div.s $f12, $f10, $f2 +/* 09B1B4 7F066644 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1B8 7F066648 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B1BC 7F06664C 10000008 */ b .Ljp7F066670 +/* 09B1C0 7F066650 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B1C4 7F066654 44802000 */ mtc1 $zero, $f4 +.Ljp7F066658: +/* 09B1C8 7F066658 AFA50034 */ sw $a1, 0x34($sp) +/* 09B1CC 7F06665C 46022003 */ div.s $f0, $f4, $f2 +/* 09B1D0 7F066660 46000307 */ neg.s $f12, $f0 +/* 09B1D4 7F066664 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1D8 7F066668 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B1DC 7F06666C C7AC012C */ lwc1 $f12, 0x12c($sp) +.Ljp7F066670: +/* 09B1E0 7F066670 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B1E4 7F066674 27A50130 */ addiu $a1, $sp, 0x130 +/* 09B1E8 7F066678 27A40130 */ addiu $a0, $sp, 0x130 +/* 09B1EC 7F06667C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B1F0 7F066680 8FA50034 */ lw $a1, 0x34($sp) +/* 09B1F4 7F066684 0FC160F3 */ jal sinf +/* 09B1F8 7F066688 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B1FC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B200 7F066690 02202025 */ move $a0, $s1 +/* 09B204 7F066694 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B208 7F066698 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B20C 7F06669C E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B210 7F0666A0 0FC160F0 */ jal cosf +/* 09B214 7F0666A4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B218 7F0666A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B21C 7F0666AC 44813000 */ mtc1 $at, $f6 +/* 09B220 7F0666B0 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 09B224 7F0666B4 46003281 */ sub.s $f10, $f6, $f0 +/* 09B228 7F0666B8 46045202 */ mul.s $f8, $f10, $f4 +/* 09B22C 7F0666BC E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B230 7F0666C0 0FC160F3 */ jal sinf +/* 09B234 7F0666C4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B238 7F0666C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B23C 7F0666CC 44813000 */ mtc1 $at, $f6 +/* 09B240 7F0666D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B244 7F0666D4 46060282 */ mul.s $f10, $f0, $f6 +/* 09B248 7F0666D8 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F0666DC: +/* 09B24C 7F0666DC 2401000B */ li $at, 11 +.Ljp7F0666E0: +/* 09B250 7F0666E0 5441006B */ bnel $v0, $at, .Ljp7F066890 +/* 09B254 7F0666E4 2401000C */ li $at, 12 +/* 09B258 7F0666E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B25C 7F0666EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 09B260 7F0666F0 55C0002B */ bnezl $t6, .Ljp7F0667A0 +/* 09B264 7F0666F4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B268 7F0666F8 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 09B26C 7F0666FC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B270 7F066700 59E00027 */ blezl $t7, .Ljp7F0667A0 +/* 09B274 7F066704 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B278 7F066708 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B27C 7F06670C 24010001 */ li $at, 1 +/* 09B280 7F066710 8F190000 */ lw $t9, ($t8) +/* 09B284 7F066714 53210022 */ beql $t9, $at, .Ljp7F0667A0 +/* 09B288 7F066718 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B28C 7F06671C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B290 7F066720 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B294 7F066724 1040001D */ beqz $v0, weapon_reload_none_sfx +/* 09B298 7F066728 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) # $t6, 0x8003 +/* 09B29C 7F06672C 8DCE64F4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) +/* 09B2A0 7F066730 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09B2A4 7F066734 55C0001A */ bnezl $t6, .Ljp7F0667A0 +/* 09B2A8 7F066738 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2AC 7F06673C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09B2B0 7F066740 2A21003E */ slti $at, $s1, 0x3e +/* 09B2B4 7F066744 8DF800D8 */ lw $t8, 0xd8($t7) +/* 09B2B8 7F066748 57000015 */ bnezl $t8, .Ljp7F0667A0 +/* 09B2BC 7F06674C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2C0 7F066750 14200005 */ bnez $at, .Ljp7F066768 +/* 09B2C4 7F066754 24010058 */ li $at, 88 +/* 09B2C8 7F066758 52210011 */ beql $s1, $at, .Ljp7F0667A0 +/* 09B2CC 7F06675C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2D0 7F066760 10000009 */ b weapon_reload_gun_sfx +/* 09B2D4 7F066764 00000000 */ nop +.Ljp7F066768: +/* 09B2D8 7F066768 2E21003E */ sltiu $at, $s1, 0x3e +/* 09B2DC 7F06676C 10200006 */ beqz $at, weapon_reload_gun_sfx +/* 09B2E0 7F066770 0011C880 */ sll $t9, $s1, 2 +/* 09B2E4 7F066774 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09B2E8 7F066778 00390821 */ addu $at, $at, $t9 +/* 09B2EC 7F06677C 8C3942C4 */ lw $t9, %lo(jpt_80054294)($at) +/* 09B2F0 7F066780 03200008 */ jr $t9 +/* 09B2F4 7F066784 00000000 */ nop +weapon_reload_gun_sfx: +/* 09B2F8 7F066788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09B2FC 7F06678C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B300 7F066790 24050032 */ li $a1, 50 +/* 09B304 7F066794 0C002386 */ jal play_sfx_a1 +/* 09B308 7F066798 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +/* 09B30C 7F06679C 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0667A0: +/* 09B310 7F0667A0 8E0F0040 */ lw $t7, 0x40($s0) +/* 09B314 7F0667A4 01CF082A */ slt $at, $t6, $t7 +/* 09B318 7F0667A8 1420000A */ bnez $at, .Ljp7F0667D4 +/* 09B31C 7F0667AC 240E0001 */ li $t6, 1 +/* 09B320 7F0667B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B324 7F0667B4 2402000C */ li $v0, 12 +/* 09B328 7F0667B8 2B010002 */ slti $at, $t8, 2 +/* 09B32C 7F0667BC 54200006 */ bnezl $at, .Ljp7F0667D8 +/* 09B330 7F0667C0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B334 7F0667C4 AE020024 */ sw $v0, 0x24($s0) +/* 09B338 7F0667C8 AE000020 */ sw $zero, 0x20($s0) +/* 09B33C 7F0667CC 1000002F */ b .Ljp7F06688C +/* 09B340 7F0667D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0667D4: +/* 09B344 7F0667D4 AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0667D8: +/* 09B348 7F0667D8 8FAF01E0 */ lw $t7, 0x1e0($sp) +/* 09B34C 7F0667DC 2605007C */ addiu $a1, $s0, 0x7c +/* 09B350 7F0667E0 55E00007 */ bnezl $t7, .Ljp7F066800 +/* 09B354 7F0667E4 44806000 */ mtc1 $zero, $f12 +/* 09B358 7F0667E8 44806000 */ mtc1 $zero, $f12 +/* 09B35C 7F0667EC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B360 7F0667F0 AFA50034 */ sw $a1, 0x34($sp) +/* 09B364 7F0667F4 10000005 */ b .Ljp7F06680C +/* 09B368 7F0667F8 00000000 */ nop +/* 09B36C 7F0667FC 44806000 */ mtc1 $zero, $f12 +.Ljp7F066800: +/* 09B370 7F066800 AFA50034 */ sw $a1, 0x34($sp) +/* 09B374 7F066804 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B378 7F066808 46006307 */ neg.s $f12, $f12 +.Ljp7F06680C: +/* 09B37C 7F06680C 3C018005 */ lui $at, %hi(D_8005438C) # $at, 0x8005 +/* 09B380 7F066810 C42C43BC */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09B384 7F066814 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B388 7F066818 27A500E8 */ addiu $a1, $sp, 0xe8 +/* 09B38C 7F06681C 27A400E8 */ addiu $a0, $sp, 0xe8 +/* 09B390 7F066820 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B394 7F066824 8FA50034 */ lw $a1, 0x34($sp) +/* 09B398 7F066828 44806000 */ mtc1 $zero, $f12 +/* 09B39C 7F06682C 0FC160F3 */ jal sinf +/* 09B3A0 7F066830 00000000 */ nop +/* 09B3A4 7F066834 44802000 */ mtc1 $zero, $f4 +/* 09B3A8 7F066838 02202025 */ move $a0, $s1 +/* 09B3AC 7F06683C 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B3B0 7F066840 E60400AC */ swc1 $f4, 0xac($s0) +/* 09B3B4 7F066844 3C018005 */ lui $at, %hi(D_80054390) # $at, 0x8005 +/* 09B3B8 7F066848 C42C43C0 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09B3BC 7F06684C 0FC160F0 */ jal cosf +/* 09B3C0 7F066850 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B3C4 7F066854 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B3C8 7F066858 44814000 */ mtc1 $at, $f8 +/* 09B3CC 7F06685C C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 09B3D0 7F066860 3C018005 */ lui $at, %hi(D_80054394) # $at, 0x8005 +/* 09B3D4 7F066864 46004181 */ sub.s $f6, $f8, $f0 +/* 09B3D8 7F066868 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B3DC 7F06686C E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09B3E0 7F066870 0FC160F3 */ jal sinf +/* 09B3E4 7F066874 C42C43C4 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09B3E8 7F066878 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B3EC 7F06687C 44814000 */ mtc1 $at, $f8 +/* 09B3F0 7F066880 8E020024 */ lw $v0, 0x24($s0) +/* 09B3F4 7F066884 46080182 */ mul.s $f6, $f0, $f8 +/* 09B3F8 7F066888 E60600B4 */ swc1 $f6, 0xb4($s0) +.Ljp7F06688C: +/* 09B3FC 7F06688C 2401000C */ li $at, 12 +.Ljp7F066890: +/* 09B400 7F066890 5441005A */ bnel $v0, $at, .Ljp7F0669FC +/* 09B404 7F066894 2401000E */ li $at, 14 +/* 09B408 7F066898 8E18001C */ lw $t8, 0x1c($s0) +/* 09B40C 7F06689C 57000007 */ bnezl $t8, .Ljp7F0668BC +/* 09B410 7F0668A0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B414 7F0668A4 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B418 7F0668A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B41C 7F0668AC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B420 7F0668B0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B424 7F0668B4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 09B428 7F0668B8 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0668BC: +/* 09B42C 7F0668BC 29C10017 */ slti $at, $t6, 0x17 +/* 09B430 7F0668C0 5020000E */ beql $at, $zero, .Ljp7F0668FC +/* 09B434 7F0668C4 AE000024 */ sw $zero, 0x24($s0) +/* 09B438 7F0668C8 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B43C 7F0668CC 02202025 */ move $a0, $s1 +/* 09B440 7F0668D0 10400009 */ beqz $v0, .Ljp7F0668F8 +/* 09B444 7F0668D4 02202025 */ move $a0, $s1 +/* 09B448 7F0668D8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B44C 7F0668DC 24050800 */ li $a1, 2048 +/* 09B450 7F0668E0 10400005 */ beqz $v0, .Ljp7F0668F8 +/* 09B454 7F0668E4 02202025 */ move $a0, $s1 +/* 09B458 7F0668E8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B45C 7F0668EC 24052000 */ li $a1, 8192 +/* 09B460 7F0668F0 50400007 */ beql $v0, $zero, .Ljp7F066910 +/* 09B464 7F0668F4 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F0668F8: +/* 09B468 7F0668F8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0668FC: +/* 09B46C 7F0668FC AE000020 */ sw $zero, 0x20($s0) +/* 09B470 7F066900 AE00001C */ sw $zero, 0x1c($s0) +/* 09B474 7F066904 1000003C */ b .Ljp7F0669F8 +/* 09B478 7F066908 00001025 */ move $v0, $zero +/* 09B47C 7F06690C 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066910: +/* 09B480 7F066910 24180017 */ li $t8, 23 +/* 09B484 7F066914 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B488 7F066918 030FC823 */ subu $t9, $t8, $t7 +/* 09B48C 7F06691C 44995000 */ mtc1 $t9, $f10 +/* 09B490 7F066920 44811000 */ mtc1 $at, $f2 +/* 09B494 7F066924 3C018005 */ lui $at, %hi(D_80054398) # $at, 0x8005 +/* 09B498 7F066928 46805120 */ cvt.s.w $f4, $f10 +/* 09B49C 7F06692C C42843C8 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09B4A0 7F066930 240E0001 */ li $t6, 1 +/* 09B4A4 7F066934 2605007C */ addiu $a1, $s0, 0x7c +/* 09B4A8 7F066938 46082182 */ mul.s $f6, $f4, $f8 +/* 09B4AC 7F06693C 46023283 */ div.s $f10, $f6, $f2 +/* 09B4B0 7F066940 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 09B4B4 7F066944 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B4B8 7F066948 8FB801E0 */ lw $t8, 0x1e0($sp) +/* 09B4BC 7F06694C 57000009 */ bnezl $t8, .Ljp7F066974 +/* 09B4C0 7F066950 44804000 */ mtc1 $zero, $f8 +/* 09B4C4 7F066954 44802000 */ mtc1 $zero, $f4 +/* 09B4C8 7F066958 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4CC 7F06695C 46022303 */ div.s $f12, $f4, $f2 +/* 09B4D0 7F066960 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4D4 7F066964 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B4D8 7F066968 10000008 */ b .Ljp7F06698C +/* 09B4DC 7F06696C C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B4E0 7F066970 44804000 */ mtc1 $zero, $f8 +.Ljp7F066974: +/* 09B4E4 7F066974 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4E8 7F066978 46024003 */ div.s $f0, $f8, $f2 +/* 09B4EC 7F06697C 46000307 */ neg.s $f12, $f0 +/* 09B4F0 7F066980 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4F4 7F066984 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B4F8 7F066988 C7AC009C */ lwc1 $f12, 0x9c($sp) +.Ljp7F06698C: +/* 09B4FC 7F06698C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B500 7F066990 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 09B504 7F066994 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09B508 7F066998 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B50C 7F06699C 8FA50034 */ lw $a1, 0x34($sp) +/* 09B510 7F0669A0 0FC160F3 */ jal sinf +/* 09B514 7F0669A4 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B518 7F0669A8 44803000 */ mtc1 $zero, $f6 +/* 09B51C 7F0669AC 02202025 */ move $a0, $s1 +/* 09B520 7F0669B0 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B524 7F0669B4 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B528 7F0669B8 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B52C 7F0669BC 0FC160F0 */ jal cosf +/* 09B530 7F0669C0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B534 7F0669C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B538 7F0669C8 44815000 */ mtc1 $at, $f10 +/* 09B53C 7F0669CC C7A80044 */ lwc1 $f8, 0x44($sp) +/* 09B540 7F0669D0 46005101 */ sub.s $f4, $f10, $f0 +/* 09B544 7F0669D4 46082182 */ mul.s $f6, $f4, $f8 +/* 09B548 7F0669D8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B54C 7F0669DC 0FC160F3 */ jal sinf +/* 09B550 7F0669E0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B554 7F0669E4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B558 7F0669E8 44815000 */ mtc1 $at, $f10 +/* 09B55C 7F0669EC 8E020024 */ lw $v0, 0x24($s0) +/* 09B560 7F0669F0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B564 7F0669F4 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F0669F8: +/* 09B568 7F0669F8 2401000E */ li $at, 14 +.Ljp7F0669FC: +/* 09B56C 7F0669FC 5441002E */ bnel $v0, $at, .Ljp7F066AB8 +/* 09B570 7F066A00 2401000F */ li $at, 15 +/* 09B574 7F066A04 8E030020 */ lw $v1, 0x20($s0) +/* 09B578 7F066A08 2402000F */ li $v0, 15 +/* 09B57C 7F066A0C 28610010 */ slti $at, $v1, 0x10 +/* 09B580 7F066A10 50200005 */ beql $at, $zero, .Ljp7F066A28 +/* 09B584 7F066A14 AE020024 */ sw $v0, 0x24($s0) +/* 09B588 7F066A18 820F000F */ lb $t7, 0xf($s0) +/* 09B58C 7F066A1C 55E00006 */ bnezl $t7, .Ljp7F066A38 +/* 09B590 7F066A20 44834000 */ mtc1 $v1, $f8 +/* 09B594 7F066A24 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066A28: +/* 09B598 7F066A28 AE000020 */ sw $zero, 0x20($s0) +/* 09B59C 7F066A2C 10000021 */ b .Ljp7F066AB4 +/* 09B5A0 7F066A30 AE00001C */ sw $zero, 0x1c($s0) +/* 09B5A4 7F066A34 44834000 */ mtc1 $v1, $f8 +.Ljp7F066A38: +/* 09B5A8 7F066A38 3C018005 */ lui $at, %hi(D_8005439C) # $at, 0x8005 +/* 09B5AC 7F066A3C C42A43CC */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09B5B0 7F066A40 468041A0 */ cvt.s.w $f6, $f8 +/* 09B5B4 7F066A44 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B5B8 7F066A48 44814000 */ mtc1 $at, $f8 +/* 09B5BC 7F066A4C 240E0001 */ li $t6, 1 +/* 09B5C0 7F066A50 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B5C4 7F066A54 2605007C */ addiu $a1, $s0, 0x7c +/* 09B5C8 7F066A58 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B5CC 7F066A5C 46082303 */ div.s $f12, $f4, $f8 +/* 09B5D0 7F066A60 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B5D4 7F066A64 E7AC0098 */ swc1 $f12, 0x98($sp) +/* 09B5D8 7F066A68 44803000 */ mtc1 $zero, $f6 +/* 09B5DC 7F066A6C 00000000 */ nop +/* 09B5E0 7F066A70 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B5E4 7F066A74 0FC160F0 */ jal cosf +/* 09B5E8 7F066A78 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B5EC 7F066A7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B5F0 7F066A80 44815000 */ mtc1 $at, $f10 +/* 09B5F4 7F066A84 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B5F8 7F066A88 44814000 */ mtc1 $at, $f8 +/* 09B5FC 7F066A8C 46005101 */ sub.s $f4, $f10, $f0 +/* 09B600 7F066A90 46082182 */ mul.s $f6, $f4, $f8 +/* 09B604 7F066A94 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B608 7F066A98 0FC160F3 */ jal sinf +/* 09B60C 7F066A9C C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B610 7F066AA0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B614 7F066AA4 44815000 */ mtc1 $at, $f10 +/* 09B618 7F066AA8 8E020024 */ lw $v0, 0x24($s0) +/* 09B61C 7F066AAC 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B620 7F066AB0 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066AB4: +/* 09B624 7F066AB4 2401000F */ li $at, 15 +.Ljp7F066AB8: +/* 09B628 7F066AB8 54410031 */ bnel $v0, $at, .Ljp7F066B80 +/* 09B62C 7F066ABC 24010010 */ li $at, 16 +/* 09B630 7F066AC0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B634 7F066AC4 53000006 */ beql $t8, $zero, .Ljp7F066AE0 +/* 09B638 7F066AC8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B63C 7F066ACC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B640 7F066AD0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B644 7F066AD4 14400007 */ bnez $v0, .Ljp7F066AF4 +/* 09B648 7F066AD8 00000000 */ nop +/* 09B64C 7F066ADC 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066AE0: +/* 09B650 7F066AE0 0FC177EB */ jal sub_GAME_7F05DA8C +/* 09B654 7F066AE4 8E05003C */ lw $a1, 0x3c($s0) +/* 09B658 7F066AE8 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09B65C 7F066AEC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B660 7F066AF0 00408825 */ move $s1, $v0 +.Ljp7F066AF4: +/* 09B664 7F066AF4 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B668 7F066AF8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B66C 7F066AFC 10400006 */ beqz $v0, .Ljp7F066B18 +/* 09B670 7F066B00 24190001 */ li $t9, 1 +/* 09B674 7F066B04 24020010 */ li $v0, 16 +/* 09B678 7F066B08 AE020024 */ sw $v0, 0x24($s0) +/* 09B67C 7F066B0C AE000020 */ sw $zero, 0x20($s0) +/* 09B680 7F066B10 1000001A */ b .Ljp7F066B7C +/* 09B684 7F066B14 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066B18: +/* 09B688 7F066B18 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B68C 7F066B1C 3C018005 */ lui $at, %hi(D_800543A0) # $at, 0x8005 +/* 09B690 7F066B20 C42C43D0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B694 7F066B24 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B698 7F066B28 2605007C */ addiu $a1, $s0, 0x7c +/* 09B69C 7F066B2C 44804000 */ mtc1 $zero, $f8 +/* 09B6A0 7F066B30 3C018005 */ lui $at, %hi(D_800543A4) # $at, 0x8005 +/* 09B6A4 7F066B34 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B6A8 7F066B38 0FC160F0 */ jal cosf +/* 09B6AC 7F066B3C C42C43D4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B6B0 7F066B40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B6B4 7F066B44 44813000 */ mtc1 $at, $f6 +/* 09B6B8 7F066B48 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B6BC 7F066B4C 44812000 */ mtc1 $at, $f4 +/* 09B6C0 7F066B50 46003281 */ sub.s $f10, $f6, $f0 +/* 09B6C4 7F066B54 3C018005 */ lui $at, %hi(D_800543A8) # $at, 0x8005 +/* 09B6C8 7F066B58 46045202 */ mul.s $f8, $f10, $f4 +/* 09B6CC 7F066B5C E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B6D0 7F066B60 0FC160F3 */ jal sinf +/* 09B6D4 7F066B64 C42C43D8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B6D8 7F066B68 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B6DC 7F066B6C 44813000 */ mtc1 $at, $f6 +/* 09B6E0 7F066B70 8E020024 */ lw $v0, 0x24($s0) +/* 09B6E4 7F066B74 46060282 */ mul.s $f10, $f0, $f6 +/* 09B6E8 7F066B78 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066B7C: +/* 09B6EC 7F066B7C 24010010 */ li $at, 16 +.Ljp7F066B80: +/* 09B6F0 7F066B80 5441004C */ bnel $v0, $at, .Ljp7F066CB4 +/* 09B6F4 7F066B84 24010011 */ li $at, 17 +/* 09B6F8 7F066B88 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B6FC 7F066B8C 2A210021 */ slti $at, $s1, 0x21 +/* 09B700 7F066B90 55C00010 */ bnezl $t6, .Ljp7F066BD4 +/* 09B704 7F066B94 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B708 7F066B98 5020000E */ beql $at, $zero, .Ljp7F066BD4 +/* 09B70C 7F066B9C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B710 7F066BA0 0FC26C01 */ jal get_num_players +/* 09B714 7F066BA4 00000000 */ nop +/* 09B718 7F066BA8 28410002 */ slti $at, $v0, 2 +/* 09B71C 7F066BAC 14200003 */ bnez $at, .Ljp7F066BBC +/* 09B720 7F066BB0 00000000 */ nop +/* 09B724 7F066BB4 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09B728 7F066BB8 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066BBC: +/* 09B72C 7F066BBC 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B730 7F066BC0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B734 7F066BC4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B738 7F066BC8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B73C 7F066BCC AF000FC8 */ sw $zero, 0xfc8($t8) +/* 09B740 7F066BD0 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066BD4: +/* 09B744 7F066BD4 29E10017 */ slti $at, $t7, 0x17 +/* 09B748 7F066BD8 5020000E */ beql $at, $zero, .Ljp7F066C14 +/* 09B74C 7F066BDC AE000024 */ sw $zero, 0x24($s0) +/* 09B750 7F066BE0 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B754 7F066BE4 02202025 */ move $a0, $s1 +/* 09B758 7F066BE8 10400009 */ beqz $v0, .Ljp7F066C10 +/* 09B75C 7F066BEC 02202025 */ move $a0, $s1 +/* 09B760 7F066BF0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B764 7F066BF4 24050800 */ li $a1, 2048 +/* 09B768 7F066BF8 10400005 */ beqz $v0, .Ljp7F066C10 +/* 09B76C 7F066BFC 02202025 */ move $a0, $s1 +/* 09B770 7F066C00 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B774 7F066C04 24052000 */ li $a1, 8192 +/* 09B778 7F066C08 50400007 */ beql $v0, $zero, .Ljp7F066C28 +/* 09B77C 7F066C0C 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C10: +/* 09B780 7F066C10 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066C14: +/* 09B784 7F066C14 AE000020 */ sw $zero, 0x20($s0) +/* 09B788 7F066C18 AE00001C */ sw $zero, 0x1c($s0) +/* 09B78C 7F066C1C 10000024 */ b .Ljp7F066CB0 +/* 09B790 7F066C20 00001025 */ move $v0, $zero +/* 09B794 7F066C24 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C28: +/* 09B798 7F066C28 240E0017 */ li $t6, 23 +/* 09B79C 7F066C2C 3C018005 */ lui $at, %hi(D_800543AC) # $at, 0x8005 +/* 09B7A0 7F066C30 01D9C023 */ subu $t8, $t6, $t9 +/* 09B7A4 7F066C34 44982000 */ mtc1 $t8, $f4 +/* 09B7A8 7F066C38 C42643DC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B7AC 7F066C3C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B7B0 7F066C40 46802220 */ cvt.s.w $f8, $f4 +/* 09B7B4 7F066C44 44812000 */ mtc1 $at, $f4 +/* 09B7B8 7F066C48 240F0001 */ li $t7, 1 +/* 09B7BC 7F066C4C AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B7C0 7F066C50 2605007C */ addiu $a1, $s0, 0x7c +/* 09B7C4 7F066C54 46064282 */ mul.s $f10, $f8, $f6 +/* 09B7C8 7F066C58 46045303 */ div.s $f12, $f10, $f4 +/* 09B7CC 7F066C5C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B7D0 7F066C60 E7AC0090 */ swc1 $f12, 0x90($sp) +/* 09B7D4 7F066C64 44804000 */ mtc1 $zero, $f8 +/* 09B7D8 7F066C68 00000000 */ nop +/* 09B7DC 7F066C6C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B7E0 7F066C70 0FC160F0 */ jal cosf +/* 09B7E4 7F066C74 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B7E8 7F066C78 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B7EC 7F066C7C 44813000 */ mtc1 $at, $f6 +/* 09B7F0 7F066C80 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B7F4 7F066C84 44812000 */ mtc1 $at, $f4 +/* 09B7F8 7F066C88 46003281 */ sub.s $f10, $f6, $f0 +/* 09B7FC 7F066C8C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B800 7F066C90 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B804 7F066C94 0FC160F3 */ jal sinf +/* 09B808 7F066C98 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B80C 7F066C9C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B810 7F066CA0 44813000 */ mtc1 $at, $f6 +/* 09B814 7F066CA4 8E020024 */ lw $v0, 0x24($s0) +/* 09B818 7F066CA8 46060282 */ mul.s $f10, $f0, $f6 +/* 09B81C 7F066CAC E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066CB0: +/* 09B820 7F066CB0 24010011 */ li $at, 17 +.Ljp7F066CB4: +/* 09B824 7F066CB4 1041000B */ beq $v0, $at, .Ljp7F066CE4 +/* 09B828 7F066CB8 24010012 */ li $at, 18 +/* 09B82C 7F066CBC 10410009 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B830 7F066CC0 24040013 */ li $a0, 19 +/* 09B834 7F066CC4 10820007 */ beq $a0, $v0, .Ljp7F066CE4 +/* 09B838 7F066CC8 24010014 */ li $at, 20 +/* 09B83C 7F066CCC 10410005 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B840 7F066CD0 24010015 */ li $at, 21 +/* 09B844 7F066CD4 10410003 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B848 7F066CD8 24010016 */ li $at, 22 +/* 09B84C 7F066CDC 54410056 */ bnel $v0, $at, .Ljp7F066E38 +/* 09B850 7F066CE0 2401001E */ li $at, 30 +.Ljp7F066CE4: +/* 09B854 7F066CE4 8E030020 */ lw $v1, 0x20($s0) +/* 09B858 7F066CE8 260E007C */ addiu $t6, $s0, 0x7c +/* 09B85C 7F066CEC 24010011 */ li $at, 17 +/* 09B860 7F066CF0 44832000 */ mtc1 $v1, $f4 +/* 09B864 7F066CF4 24040013 */ li $a0, 19 +/* 09B868 7F066CF8 AFAE0034 */ sw $t6, 0x34($sp) +/* 09B86C 7F066CFC 46802220 */ cvt.s.w $f8, $f4 +/* 09B870 7F066D00 10410003 */ beq $v0, $at, .Ljp7F066D10 +/* 09B874 7F066D04 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 09B878 7F066D08 24010014 */ li $at, 20 +/* 09B87C 7F066D0C 1441001E */ bne $v0, $at, .Ljp7F066D88 +.Ljp7F066D10: +/* 09B880 7F066D10 28610010 */ slti $at, $v1, 0x10 +/* 09B884 7F066D14 1420001C */ bnez $at, .Ljp7F066D88 +/* 09B888 7F066D18 3C188003 */ lui $t8, %hi(D_80035E94) # $t8, 0x8003 +/* 09B88C 7F066D1C 27185ED4 */ addiu $t8, %lo(D_80035E94) # addiu $t8, $t8, 0x5ed4 +/* 09B890 7F066D20 8F010000 */ lw $at, ($t8) +/* 09B894 7F066D24 27B90080 */ addiu $t9, $sp, 0x80 +/* 09B898 7F066D28 AF210000 */ sw $at, ($t9) +/* 09B89C 7F066D2C 97010004 */ lhu $at, 4($t8) +/* 09B8A0 7F066D30 0C002918 */ jal get_random_value +/* 09B8A4 7F066D34 A7210004 */ sh $at, 4($t9) +/* 09B8A8 7F066D38 24010003 */ li $at, 3 +/* 09B8AC 7F066D3C 0041001B */ divu $zero, $v0, $at +/* 09B8B0 7F066D40 00007810 */ mfhi $t7 +/* 09B8B4 7F066D44 000FC840 */ sll $t9, $t7, 1 +/* 09B8B8 7F066D48 03B92821 */ addu $a1, $sp, $t9 +/* 09B8BC 7F066D4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09B8C0 7F066D50 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B8C4 7F066D54 84A50080 */ lh $a1, 0x80($a1) +/* 09B8C8 7F066D58 0C002386 */ jal play_sfx_a1 +/* 09B8CC 7F066D5C 00003025 */ move $a2, $zero +/* 09B8D0 7F066D60 8E180024 */ lw $t8, 0x24($s0) +/* 09B8D4 7F066D64 24010011 */ li $at, 17 +/* 09B8D8 7F066D68 24020015 */ li $v0, 21 +/* 09B8DC 7F066D6C 17010005 */ bne $t8, $at, .Ljp7F066D84 +/* 09B8E0 7F066D70 24040013 */ li $a0, 19 +/* 09B8E4 7F066D74 24020012 */ li $v0, 18 +/* 09B8E8 7F066D78 AE020024 */ sw $v0, 0x24($s0) +/* 09B8EC 7F066D7C 10000002 */ b .Ljp7F066D88 +/* 09B8F0 7F066D80 24040013 */ li $a0, 19 +.Ljp7F066D84: +/* 09B8F4 7F066D84 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066D88: +/* 09B8F8 7F066D88 10820012 */ beq $a0, $v0, .Ljp7F066DD4 +/* 09B8FC 7F066D8C 24010016 */ li $at, 22 +/* 09B900 7F066D90 50410011 */ beql $v0, $at, .Ljp7F066DD8 +/* 09B904 7F066D94 24010011 */ li $at, 17 +/* 09B908 7F066D98 8E190020 */ lw $t9, 0x20($s0) +/* 09B90C 7F066D9C 24180001 */ li $t8, 1 +/* 09B910 7F066DA0 2B210018 */ slti $at, $t9, 0x18 +/* 09B914 7F066DA4 1420000B */ bnez $at, .Ljp7F066DD4 +/* 09B918 7F066DA8 24010011 */ li $at, 17 +/* 09B91C 7F066DAC 10410004 */ beq $v0, $at, .Ljp7F066DC0 +/* 09B920 7F066DB0 A218000C */ sb $t8, 0xc($s0) +/* 09B924 7F066DB4 24010012 */ li $at, 18 +/* 09B928 7F066DB8 54410005 */ bnel $v0, $at, .Ljp7F066DD0 +/* 09B92C 7F066DBC 24020016 */ li $v0, 22 +.Ljp7F066DC0: +/* 09B930 7F066DC0 AE040024 */ sw $a0, 0x24($s0) +/* 09B934 7F066DC4 10000003 */ b .Ljp7F066DD4 +/* 09B938 7F066DC8 00801025 */ move $v0, $a0 +/* 09B93C 7F066DCC 24020016 */ li $v0, 22 +.Ljp7F066DD0: +/* 09B940 7F066DD0 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066DD4: +/* 09B944 7F066DD4 24010011 */ li $at, 17 +.Ljp7F066DD8: +/* 09B948 7F066DD8 10410005 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B94C 7F066DDC 8FA5008C */ lw $a1, 0x8c($sp) +/* 09B950 7F066DE0 24010012 */ li $at, 18 +/* 09B954 7F066DE4 10410002 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B958 7F066DE8 00000000 */ nop +/* 09B95C 7F066DEC 14820003 */ bne $a0, $v0, .Ljp7F066DFC +.Ljp7F066DF0: +/* 09B960 7F066DF0 3C048003 */ lui $a0, %hi(D_80034CA4) # $a0, 0x8003 +/* 09B964 7F066DF4 10000003 */ b .Ljp7F066E04 +/* 09B968 7F066DF8 24844CE4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ce4 +.Ljp7F066DFC: +/* 09B96C 7F066DFC 3C048003 */ lui $a0, %hi(D_80034E0C) # $a0, 0x8003 +/* 09B970 7F066E00 24844E4C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e4c +.Ljp7F066E04: +/* 09B974 7F066E04 8FA60034 */ lw $a2, 0x34($sp) +/* 09B978 7F066E08 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09B97C 7F066E0C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09B980 7F066E10 10400004 */ beqz $v0, .Ljp7F066E24 +/* 09B984 7F066E14 240F0001 */ li $t7, 1 +/* 09B988 7F066E18 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B98C 7F066E1C 10000005 */ b .Ljp7F066E34 +/* 09B990 7F066E20 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066E24: +/* 09B994 7F066E24 AE000024 */ sw $zero, 0x24($s0) +/* 09B998 7F066E28 AE000020 */ sw $zero, 0x20($s0) +/* 09B99C 7F066E2C AE00001C */ sw $zero, 0x1c($s0) +/* 09B9A0 7F066E30 00001025 */ move $v0, $zero +.Ljp7F066E34: +/* 09B9A4 7F066E34 2401001E */ li $at, 30 +.Ljp7F066E38: +/* 09B9A8 7F066E38 10410007 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9AC 7F066E3C 2405001F */ li $a1, 31 +/* 09B9B0 7F066E40 10A20005 */ beq $a1, $v0, .Ljp7F066E58 +/* 09B9B4 7F066E44 24010020 */ li $at, 32 +/* 09B9B8 7F066E48 10410003 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9BC 7F066E4C 24040021 */ li $a0, 33 +/* 09B9C0 7F066E50 54820041 */ bnel $a0, $v0, .Ljp7F066F58 +/* 09B9C4 7F066E54 2401001A */ li $at, 26 +.Ljp7F066E58: +/* 09B9C8 7F066E58 8E030020 */ lw $v1, 0x20($s0) +/* 09B9CC 7F066E5C 2401001E */ li $at, 30 +/* 09B9D0 7F066E60 24040021 */ li $a0, 33 +/* 09B9D4 7F066E64 44833000 */ mtc1 $v1, $f6 +/* 09B9D8 7F066E68 2405001F */ li $a1, 31 +/* 09B9DC 7F066E6C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B9E0 7F066E70 10410003 */ beq $v0, $at, .Ljp7F066E80 +/* 09B9E4 7F066E74 46803020 */ cvt.s.w $f0, $f6 +/* 09B9E8 7F066E78 14A20014 */ bne $a1, $v0, .Ljp7F066ECC +/* 09B9EC 7F066E7C 24010020 */ li $at, 32 +.Ljp7F066E80: +/* 09B9F0 7F066E80 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B9F4 7F066E84 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B9F8 7F066E88 24010011 */ li $at, 17 +/* 09B9FC 7F066E8C 3C0E8003 */ lui $t6, %hi(D_80035778) # $t6, 0x8003 +/* 09BA00 7F066E90 8F382A38 */ lw $t8, 0x2a38($t9) +/* 09BA04 7F066E94 3C0F8003 */ lui $t7, %hi(D_800354A8) # $t7, 0x8003 +/* 09BA08 7F066E98 25CE57B8 */ addiu $t6, %lo(D_80035778) # addiu $t6, $t6, 0x57b8 +/* 09BA0C 7F066E9C 17010003 */ bne $t8, $at, .Ljp7F066EAC +/* 09BA10 7F066EA0 25EF54E8 */ addiu $t7, %lo(D_800354A8) # addiu $t7, $t7, 0x54e8 +/* 09BA14 7F066EA4 10000002 */ b .Ljp7F066EB0 +/* 09BA18 7F066EA8 AFAE0078 */ sw $t6, 0x78($sp) +.Ljp7F066EAC: +/* 09BA1C 7F066EAC AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066EB0: +/* 09BA20 7F066EB0 10A2001B */ beq $a1, $v0, .Ljp7F066F20 +/* 09BA24 7F066EB4 2861001E */ slti $at, $v1, 0x1e +/* 09BA28 7F066EB8 14200019 */ bnez $at, .Ljp7F066F20 +/* 09BA2C 7F066EBC 24190001 */ li $t9, 1 +/* 09BA30 7F066EC0 A219000C */ sb $t9, 0xc($s0) +/* 09BA34 7F066EC4 10000016 */ b .Ljp7F066F20 +/* 09BA38 7F066EC8 AE050024 */ sw $a1, 0x24($s0) +.Ljp7F066ECC: +/* 09BA3C 7F066ECC 10410003 */ beq $v0, $at, .Ljp7F066EDC +/* 09BA40 7F066ED0 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09BA44 7F066ED4 54820013 */ bnel $a0, $v0, .Ljp7F066F24 +/* 09BA48 7F066ED8 44050000 */ mfc1 $a1, $f0 +.Ljp7F066EDC: +/* 09BA4C 7F066EDC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09BA50 7F066EE0 24010011 */ li $at, 17 +/* 09BA54 7F066EE4 3C0F8003 */ lui $t7, %hi(D_80035904) # $t7, 0x8003 +/* 09BA58 7F066EE8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09BA5C 7F066EEC 3C198003 */ lui $t9, %hi(D_80035610) # $t9, 0x8003 +/* 09BA60 7F066EF0 25EF5944 */ addiu $t7, %lo(D_80035904) # addiu $t7, $t7, 0x5944 +/* 09BA64 7F066EF4 15C10003 */ bne $t6, $at, .Ljp7F066F04 +/* 09BA68 7F066EF8 27395650 */ addiu $t9, %lo(D_80035610) # addiu $t9, $t9, 0x5650 +/* 09BA6C 7F066EFC 10000002 */ b .Ljp7F066F08 +/* 09BA70 7F066F00 AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066F04: +/* 09BA74 7F066F04 AFB90078 */ sw $t9, 0x78($sp) +.Ljp7F066F08: +/* 09BA78 7F066F08 10820005 */ beq $a0, $v0, .Ljp7F066F20 +/* 09BA7C 7F066F0C 2861001E */ slti $at, $v1, 0x1e +/* 09BA80 7F066F10 14200003 */ bnez $at, .Ljp7F066F20 +/* 09BA84 7F066F14 24180001 */ li $t8, 1 +/* 09BA88 7F066F18 A218000C */ sb $t8, 0xc($s0) +/* 09BA8C 7F066F1C AE040024 */ sw $a0, 0x24($s0) +.Ljp7F066F20: +/* 09BA90 7F066F20 44050000 */ mfc1 $a1, $f0 +.Ljp7F066F24: +/* 09BA94 7F066F24 8FA40078 */ lw $a0, 0x78($sp) +/* 09BA98 7F066F28 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BA9C 7F066F2C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAA0 7F066F30 10400004 */ beqz $v0, .Ljp7F066F44 +/* 09BAA4 7F066F34 240E0001 */ li $t6, 1 +/* 09BAA8 7F066F38 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BAAC 7F066F3C 10000005 */ b .Ljp7F066F54 +/* 09BAB0 7F066F40 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066F44: +/* 09BAB4 7F066F44 AE000024 */ sw $zero, 0x24($s0) +/* 09BAB8 7F066F48 AE000020 */ sw $zero, 0x20($s0) +/* 09BABC 7F066F4C AE00001C */ sw $zero, 0x1c($s0) +/* 09BAC0 7F066F50 00001025 */ move $v0, $zero +.Ljp7F066F54: +/* 09BAC4 7F066F54 2401001A */ li $at, 26 +.Ljp7F066F58: +/* 09BAC8 7F066F58 54410023 */ bnel $v0, $at, .Ljp7F066FE8 +/* 09BACC 7F066F5C 2401001B */ li $at, 27 +/* 09BAD0 7F066F60 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BAD4 7F066F64 00001025 */ move $v0, $zero +/* 09BAD8 7F066F68 59E0001C */ blezl $t7, .Ljp7F066FDC +/* 09BADC 7F066F6C AE000024 */ sw $zero, 0x24($s0) +/* 09BAE0 7F066F70 8E190020 */ lw $t9, 0x20($s0) +/* 09BAE4 7F066F74 3C048003 */ lui $a0, %hi(D_80035124) # $a0, 0x8003 +/* 09BAE8 7F066F78 24845164 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5164 +/* 09BAEC 7F066F7C 44995000 */ mtc1 $t9, $f10 +/* 09BAF0 7F066F80 2606007C */ addiu $a2, $s0, 0x7c +/* 09BAF4 7F066F84 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAF8 7F066F88 46805020 */ cvt.s.w $f0, $f10 +/* 09BAFC 7F066F8C 44050000 */ mfc1 $a1, $f0 +/* 09BB00 7F066F90 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB04 7F066F94 00000000 */ nop +/* 09BB08 7F066F98 10400004 */ beqz $v0, .Ljp7F066FAC +/* 09BB0C 7F066F9C 240E0001 */ li $t6, 1 +/* 09BB10 7F066FA0 24180001 */ li $t8, 1 +/* 09BB14 7F066FA4 1000000A */ b .Ljp7F066FD0 +/* 09BB18 7F066FA8 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F066FAC: +/* 09BB1C 7F066FAC 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BB20 7F066FB0 2418001B */ li $t8, 27 +/* 09BB24 7F066FB4 A200000E */ sb $zero, 0xe($s0) +/* 09BB28 7F066FB8 25F9FFFF */ addiu $t9, $t7, -1 +/* 09BB2C 7F066FBC A20E000C */ sb $t6, 0xc($s0) +/* 09BB30 7F066FC0 AE19002C */ sw $t9, 0x2c($s0) +/* 09BB34 7F066FC4 AE180024 */ sw $t8, 0x24($s0) +/* 09BB38 7F066FC8 AE000020 */ sw $zero, 0x20($s0) +/* 09BB3C 7F066FCC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FD0: +/* 09BB40 7F066FD0 10000004 */ b .Ljp7F066FE4 +/* 09BB44 7F066FD4 8E020024 */ lw $v0, 0x24($s0) +/* 09BB48 7F066FD8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066FDC: +/* 09BB4C 7F066FDC AE000020 */ sw $zero, 0x20($s0) +/* 09BB50 7F066FE0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FE4: +/* 09BB54 7F066FE4 2401001B */ li $at, 27 +.Ljp7F066FE8: +/* 09BB58 7F066FE8 54410017 */ bnel $v0, $at, .Ljp7F067048 +/* 09BB5C 7F066FEC 24010017 */ li $at, 23 +/* 09BB60 7F066FF0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09BB64 7F066FF4 3C048003 */ lui $a0, %hi(D_800351FC) # $a0, 0x8003 +/* 09BB68 7F066FF8 2484523C */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x523c +/* 09BB6C 7F066FFC 448E2000 */ mtc1 $t6, $f4 +/* 09BB70 7F067000 2606007C */ addiu $a2, $s0, 0x7c +/* 09BB74 7F067004 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BB78 7F067008 46802020 */ cvt.s.w $f0, $f4 +/* 09BB7C 7F06700C 44050000 */ mfc1 $a1, $f0 +/* 09BB80 7F067010 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB84 7F067014 00000000 */ nop +/* 09BB88 7F067018 10400005 */ beqz $v0, .Ljp7F067030 +/* 09BB8C 7F06701C 24190001 */ li $t9, 1 +/* 09BB90 7F067020 240F0001 */ li $t7, 1 +/* 09BB94 7F067024 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09BB98 7F067028 10000006 */ b .Ljp7F067044 +/* 09BB9C 7F06702C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F067030: +/* 09BBA0 7F067030 A219000E */ sb $t9, 0xe($s0) +/* 09BBA4 7F067034 AE000024 */ sw $zero, 0x24($s0) +/* 09BBA8 7F067038 AE000020 */ sw $zero, 0x20($s0) +/* 09BBAC 7F06703C AE00001C */ sw $zero, 0x1c($s0) +/* 09BBB0 7F067040 00001025 */ move $v0, $zero +.Ljp7F067044: +/* 09BBB4 7F067044 24010017 */ li $at, 23 +.Ljp7F067048: +/* 09BBB8 7F067048 5441002C */ bnel $v0, $at, .Ljp7F0670FC +/* 09BBBC 7F06704C 24010018 */ li $at, 24 +/* 09BBC0 7F067050 8E18002C */ lw $t8, 0x2c($s0) +/* 09BBC4 7F067054 00001025 */ move $v0, $zero +/* 09BBC8 7F067058 5B000025 */ blezl $t8, .Ljp7F0670F0 +/* 09BBCC 7F06705C AE000024 */ sw $zero, 0x24($s0) +/* 09BBD0 7F067060 8E0E0018 */ lw $t6, 0x18($s0) +/* 09BBD4 7F067064 240F0018 */ li $t7, 24 +/* 09BBD8 7F067068 51C00004 */ beql $t6, $zero, .Ljp7F06707C +/* 09BBDC 7F06706C 8E190020 */ lw $t9, 0x20($s0) +/* 09BBE0 7F067070 1000001C */ b .Ljp7F0670E4 +/* 09BBE4 7F067074 AE0F0024 */ sw $t7, 0x24($s0) +/* 09BBE8 7F067078 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F06707C: +/* 09BBEC 7F06707C 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BBF0 7F067080 2606007C */ addiu $a2, $s0, 0x7c +/* 09BBF4 7F067084 44994000 */ mtc1 $t9, $f8 +/* 09BBF8 7F067088 AFA60034 */ sw $a2, 0x34($sp) +/* 09BBFC 7F06708C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC00 7F067090 46804020 */ cvt.s.w $f0, $f8 +/* 09BC04 7F067094 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC08 7F067098 44050000 */ mfc1 $a1, $f0 +/* 09BC0C 7F06709C 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC10 7F0670A0 00000000 */ nop +/* 09BC14 7F0670A4 10400004 */ beqz $v0, .Ljp7F0670B8 +/* 09BC18 7F0670A8 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BC1C 7F0670AC 24180001 */ li $t8, 1 +/* 09BC20 7F0670B0 1000000C */ b .Ljp7F0670E4 +/* 09BC24 7F0670B4 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F0670B8: +/* 09BC28 7F0670B8 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BC2C 7F0670BC 24050000 */ li $a1, 0 +/* 09BC30 7F0670C0 8FA60034 */ lw $a2, 0x34($sp) +/* 09BC34 7F0670C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC38 7F0670C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC3C 7F0670CC 10400004 */ beqz $v0, .Ljp7F0670E0 +/* 09BC40 7F0670D0 240F0018 */ li $t7, 24 +/* 09BC44 7F0670D4 240E0001 */ li $t6, 1 +/* 09BC48 7F0670D8 10000002 */ b .Ljp7F0670E4 +/* 09BC4C 7F0670DC AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0670E0: +/* 09BC50 7F0670E0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0670E4: +/* 09BC54 7F0670E4 10000004 */ b .Ljp7F0670F8 +/* 09BC58 7F0670E8 8E020024 */ lw $v0, 0x24($s0) +/* 09BC5C 7F0670EC AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0670F0: +/* 09BC60 7F0670F0 AE000020 */ sw $zero, 0x20($s0) +/* 09BC64 7F0670F4 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0670F8: +/* 09BC68 7F0670F8 24010018 */ li $at, 24 +.Ljp7F0670FC: +/* 09BC6C 7F0670FC 54410023 */ bnel $v0, $at, .Ljp7F06718C +/* 09BC70 7F067100 24010019 */ li $at, 25 +/* 09BC74 7F067104 8E19002C */ lw $t9, 0x2c($s0) +/* 09BC78 7F067108 00001025 */ move $v0, $zero +/* 09BC7C 7F06710C 5B20001C */ blezl $t9, .Ljp7F067180 +/* 09BC80 7F067110 AE000024 */ sw $zero, 0x24($s0) +/* 09BC84 7F067114 8E180020 */ lw $t8, 0x20($s0) +/* 09BC88 7F067118 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BC8C 7F06711C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC90 7F067120 44983000 */ mtc1 $t8, $f6 +/* 09BC94 7F067124 2606007C */ addiu $a2, $s0, 0x7c +/* 09BC98 7F067128 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC9C 7F06712C 46803020 */ cvt.s.w $f0, $f6 +/* 09BCA0 7F067130 44050000 */ mfc1 $a1, $f0 +/* 09BCA4 7F067134 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BCA8 7F067138 00000000 */ nop +/* 09BCAC 7F06713C 10400004 */ beqz $v0, .Ljp7F067150 +/* 09BCB0 7F067140 240F0001 */ li $t7, 1 +/* 09BCB4 7F067144 240E0001 */ li $t6, 1 +/* 09BCB8 7F067148 1000000A */ b .Ljp7F067174 +/* 09BCBC 7F06714C AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F067150: +/* 09BCC0 7F067150 8E19002C */ lw $t9, 0x2c($s0) +/* 09BCC4 7F067154 240E0019 */ li $t6, 25 +/* 09BCC8 7F067158 A200000E */ sb $zero, 0xe($s0) +/* 09BCCC 7F06715C 2738FFFF */ addiu $t8, $t9, -1 +/* 09BCD0 7F067160 A20F000C */ sb $t7, 0xc($s0) +/* 09BCD4 7F067164 AE18002C */ sw $t8, 0x2c($s0) +/* 09BCD8 7F067168 AE0E0024 */ sw $t6, 0x24($s0) +/* 09BCDC 7F06716C AE000020 */ sw $zero, 0x20($s0) +/* 09BCE0 7F067170 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067174: +/* 09BCE4 7F067174 10000004 */ b .Ljp7F067188 +/* 09BCE8 7F067178 8E020024 */ lw $v0, 0x24($s0) +/* 09BCEC 7F06717C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067180: +/* 09BCF0 7F067180 AE000020 */ sw $zero, 0x20($s0) +/* 09BCF4 7F067184 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067188: +/* 09BCF8 7F067188 24010019 */ li $at, 25 +.Ljp7F06718C: +/* 09BCFC 7F06718C 54410017 */ bnel $v0, $at, .Ljp7F0671EC +/* 09BD00 7F067190 2401001C */ li $at, 28 +/* 09BD04 7F067194 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD08 7F067198 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BD0C 7F06719C 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BD10 7F0671A0 448F5000 */ mtc1 $t7, $f10 +/* 09BD14 7F0671A4 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD18 7F0671A8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD1C 7F0671AC 46805020 */ cvt.s.w $f0, $f10 +/* 09BD20 7F0671B0 44050000 */ mfc1 $a1, $f0 +/* 09BD24 7F0671B4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BD28 7F0671B8 00000000 */ nop +/* 09BD2C 7F0671BC 10400005 */ beqz $v0, .Ljp7F0671D4 +/* 09BD30 7F0671C0 24180001 */ li $t8, 1 +/* 09BD34 7F0671C4 24190001 */ li $t9, 1 +/* 09BD38 7F0671C8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09BD3C 7F0671CC 10000006 */ b .Ljp7F0671E8 +/* 09BD40 7F0671D0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0671D4: +/* 09BD44 7F0671D4 A218000E */ sb $t8, 0xe($s0) +/* 09BD48 7F0671D8 AE000024 */ sw $zero, 0x24($s0) +/* 09BD4C 7F0671DC AE000020 */ sw $zero, 0x20($s0) +/* 09BD50 7F0671E0 AE00001C */ sw $zero, 0x1c($s0) +/* 09BD54 7F0671E4 00001025 */ move $v0, $zero +.Ljp7F0671E8: +/* 09BD58 7F0671E8 2401001C */ li $at, 28 +.Ljp7F0671EC: +/* 09BD5C 7F0671EC 54410028 */ bnel $v0, $at, .Ljp7F067290 +/* 09BD60 7F0671F0 2401001D */ li $at, 29 +/* 09BD64 7F0671F4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BD68 7F0671F8 02202025 */ move $a0, $s1 +/* 09BD6C 7F0671FC 5DC00006 */ bgtzl $t6, .Ljp7F067218 +/* 09BD70 7F067200 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD74 7F067204 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09BD78 7F067208 24050010 */ li $a1, 16 +/* 09BD7C 7F06720C 5040001C */ beql $v0, $zero, .Ljp7F067280 +/* 09BD80 7F067210 AE000024 */ sw $zero, 0x24($s0) +/* 09BD84 7F067214 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F067218: +/* 09BD88 7F067218 3C048003 */ lui $a0, %hi(D_800352D4) # $a0, 0x8003 +/* 09BD8C 7F06721C 24845314 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x5314 +/* 09BD90 7F067220 448F2000 */ mtc1 $t7, $f4 +/* 09BD94 7F067224 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD98 7F067228 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD9C 7F06722C 46802020 */ cvt.s.w $f0, $f4 +/* 09BDA0 7F067230 44050000 */ mfc1 $a1, $f0 +/* 09BDA4 7F067234 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BDA8 7F067238 00000000 */ nop +/* 09BDAC 7F06723C 10400004 */ beqz $v0, .Ljp7F067250 +/* 09BDB0 7F067240 24180001 */ li $t8, 1 +/* 09BDB4 7F067244 24190001 */ li $t9, 1 +/* 09BDB8 7F067248 1000000A */ b .Ljp7F067274 +/* 09BDBC 7F06724C AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F067250: +/* 09BDC0 7F067250 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BDC4 7F067254 2419001D */ li $t9, 29 +/* 09BDC8 7F067258 A200000E */ sb $zero, 0xe($s0) +/* 09BDCC 7F06725C 25CFFFFF */ addiu $t7, $t6, -1 +/* 09BDD0 7F067260 A218000C */ sb $t8, 0xc($s0) +/* 09BDD4 7F067264 AE0F002C */ sw $t7, 0x2c($s0) +/* 09BDD8 7F067268 AE190024 */ sw $t9, 0x24($s0) +/* 09BDDC 7F06726C AE000020 */ sw $zero, 0x20($s0) +/* 09BDE0 7F067270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067274: +/* 09BDE4 7F067274 10000005 */ b .Ljp7F06728C +/* 09BDE8 7F067278 8E020024 */ lw $v0, 0x24($s0) +/* 09BDEC 7F06727C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067280: +/* 09BDF0 7F067280 AE000020 */ sw $zero, 0x20($s0) +/* 09BDF4 7F067284 AE00001C */ sw $zero, 0x1c($s0) +/* 09BDF8 7F067288 00001025 */ move $v0, $zero +.Ljp7F06728C: +/* 09BDFC 7F06728C 2401001D */ li $at, 29 +.Ljp7F067290: +/* 09BE00 7F067290 54410017 */ bnel $v0, $at, .Ljp7F0672F0 +/* 09BE04 7F067294 24010024 */ li $at, 36 +/* 09BE08 7F067298 8E180020 */ lw $t8, 0x20($s0) +/* 09BE0C 7F06729C 3C048003 */ lui $a0, %hi(D_800353AC) # $a0, 0x8003 +/* 09BE10 7F0672A0 248453EC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ec +/* 09BE14 7F0672A4 44984000 */ mtc1 $t8, $f8 +/* 09BE18 7F0672A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09BE1C 7F0672AC 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BE20 7F0672B0 46804020 */ cvt.s.w $f0, $f8 +/* 09BE24 7F0672B4 44050000 */ mfc1 $a1, $f0 +/* 09BE28 7F0672B8 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BE2C 7F0672BC 00000000 */ nop +/* 09BE30 7F0672C0 10400005 */ beqz $v0, .Ljp7F0672D8 +/* 09BE34 7F0672C4 240F0001 */ li $t7, 1 +/* 09BE38 7F0672C8 240E0001 */ li $t6, 1 +/* 09BE3C 7F0672CC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BE40 7F0672D0 10000006 */ b .Ljp7F0672EC +/* 09BE44 7F0672D4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0672D8: +/* 09BE48 7F0672D8 A20F000E */ sb $t7, 0xe($s0) +/* 09BE4C 7F0672DC AE000024 */ sw $zero, 0x24($s0) +/* 09BE50 7F0672E0 AE000020 */ sw $zero, 0x20($s0) +/* 09BE54 7F0672E4 AE00001C */ sw $zero, 0x1c($s0) +/* 09BE58 7F0672E8 00001025 */ move $v0, $zero +.Ljp7F0672EC: +/* 09BE5C 7F0672EC 24010024 */ li $at, 36 +.Ljp7F0672F0: +/* 09BE60 7F0672F0 1441004D */ bne $v0, $at, .Ljp7F067428 +/* 09BE64 7F0672F4 2401002E */ li $at, 46 +/* 09BE68 7F0672F8 56210009 */ bnel $s1, $at, .Ljp7F067320 +/* 09BE6C 7F0672FC 2401002C */ li $at, 44 +/* 09BE70 7F067300 8E19001C */ lw $t9, 0x1c($s0) +/* 09BE74 7F067304 17200003 */ bnez $t9, .Ljp7F067314 +/* 09BE78 7F067308 00000000 */ nop +/* 09BE7C 7F06730C 0FC19D0F */ jal sub_GAME_7F066E64 +/* 09BE80 7F067310 00000000 */ nop +.Ljp7F067314: +/* 09BE84 7F067314 1000003F */ b .Ljp7F067414 +/* 09BE88 7F067318 8E050018 */ lw $a1, 0x18($s0) +/* 09BE8C 7F06731C 2401002C */ li $at, 44 +.Ljp7F067320: +/* 09BE90 7F067320 56210009 */ bnel $s1, $at, .Ljp7F067348 +/* 09BE94 7F067324 24010027 */ li $at, 39 +/* 09BE98 7F067328 8E18001C */ lw $t8, 0x1c($s0) +/* 09BE9C 7F06732C 17000003 */ bnez $t8, .Ljp7F06733C +/* 09BEA0 7F067330 00000000 */ nop +/* 09BEA4 7F067334 0FC19D38 */ jal sub_GAME_7F066F08 +/* 09BEA8 7F067338 00000000 */ nop +.Ljp7F06733C: +/* 09BEAC 7F06733C 10000035 */ b .Ljp7F067414 +/* 09BEB0 7F067340 8E050018 */ lw $a1, 0x18($s0) +/* 09BEB4 7F067344 24010027 */ li $at, 39 +.Ljp7F067348: +/* 09BEB8 7F067348 12210009 */ beq $s1, $at, .Ljp7F067370 +/* 09BEBC 7F06734C 24010037 */ li $at, 55 +/* 09BEC0 7F067350 12210007 */ beq $s1, $at, .Ljp7F067370 +/* 09BEC4 7F067354 24010026 */ li $at, 38 +/* 09BEC8 7F067358 12210005 */ beq $s1, $at, .Ljp7F067370 +/* 09BECC 7F06735C 24010032 */ li $at, 50 +/* 09BED0 7F067360 12210003 */ beq $s1, $at, .Ljp7F067370 +/* 09BED4 7F067364 24010049 */ li $at, 73 +/* 09BED8 7F067368 5621000F */ bnel $s1, $at, .Ljp7F0673A8 +/* 09BEDC 7F06736C 24010033 */ li $at, 51 +.Ljp7F067370: +/* 09BEE0 7F067370 8E0E001C */ lw $t6, 0x1c($s0) +/* 09BEE4 7F067374 15C00009 */ bnez $t6, .Ljp7F06739C +/* 09BEE8 7F067378 00000000 */ nop +/* 09BEEC 7F06737C 0FC0F1BF */ jal sub_GAME_7F03C3FC +/* 09BEF0 7F067380 00000000 */ nop +/* 09BEF4 7F067384 10400005 */ beqz $v0, .Ljp7F06739C +/* 09BEF8 7F067388 00000000 */ nop +/* 09BEFC 7F06738C 8C430004 */ lw $v1, 4($v0) +/* 09BF00 7F067390 906F0002 */ lbu $t7, 2($v1) +/* 09BF04 7F067394 35F90040 */ ori $t9, $t7, 0x40 +/* 09BF08 7F067398 A0790002 */ sb $t9, 2($v1) +.Ljp7F06739C: +/* 09BF0C 7F06739C 1000001D */ b .Ljp7F067414 +/* 09BF10 7F0673A0 8E050018 */ lw $a1, 0x18($s0) +/* 09BF14 7F0673A4 24010033 */ li $at, 51 +.Ljp7F0673A8: +/* 09BF18 7F0673A8 1221001A */ beq $s1, $at, .Ljp7F067414 +/* 09BF1C 7F0673AC 8E050018 */ lw $a1, 0x18($s0) +/* 09BF20 7F0673B0 24010034 */ li $at, 52 +/* 09BF24 7F0673B4 12210017 */ beq $s1, $at, .Ljp7F067414 +/* 09BF28 7F0673B8 2401003A */ li $at, 58 +/* 09BF2C 7F0673BC 12210015 */ beq $s1, $at, .Ljp7F067414 +/* 09BF30 7F0673C0 2401003B */ li $at, 59 +/* 09BF34 7F0673C4 12210013 */ beq $s1, $at, .Ljp7F067414 +/* 09BF38 7F0673C8 24010051 */ li $at, 81 +/* 09BF3C 7F0673CC 12210011 */ beq $s1, $at, .Ljp7F067414 +/* 09BF40 7F0673D0 24010052 */ li $at, 82 +/* 09BF44 7F0673D4 1221000F */ beq $s1, $at, .Ljp7F067414 +/* 09BF48 7F0673D8 24010053 */ li $at, 83 +/* 09BF4C 7F0673DC 1221000D */ beq $s1, $at, .Ljp7F067414 +/* 09BF50 7F0673E0 2401002D */ li $at, 45 +/* 09BF54 7F0673E4 1221000B */ beq $s1, $at, .Ljp7F067414 +/* 09BF58 7F0673E8 24010029 */ li $at, 41 +/* 09BF5C 7F0673EC 12210009 */ beq $s1, $at, .Ljp7F067414 +/* 09BF60 7F0673F0 2401002A */ li $at, 42 +/* 09BF64 7F0673F4 12210007 */ beq $s1, $at, .Ljp7F067414 +/* 09BF68 7F0673F8 24010035 */ li $at, 53 +/* 09BF6C 7F0673FC 12210005 */ beq $s1, $at, .Ljp7F067414 +/* 09BF70 7F067400 24010036 */ li $at, 54 +/* 09BF74 7F067404 12210003 */ beq $s1, $at, .Ljp7F067414 +/* 09BF78 7F067408 24010025 */ li $at, 37 +/* 09BF7C 7F06740C 12210001 */ beq $s1, $at, .Ljp7F067414 +/* 09BF80 7F067410 00000000 */ nop +.Ljp7F067414: +/* 09BF84 7F067414 50A00005 */ beql $a1, $zero, .Ljp7F06742C +/* 09BF88 7F067418 8FBF0024 */ lw $ra, 0x24($sp) +/* 09BF8C 7F06741C AE000024 */ sw $zero, 0x24($s0) +/* 09BF90 7F067420 AE000020 */ sw $zero, 0x20($s0) +/* 09BF94 7F067424 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067428: +/* 09BF98 7F067428 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F06742C: +/* 09BF9C 7F06742C 8FB0001C */ lw $s0, 0x1c($sp) +/* 09BFA0 7F067430 8FB10020 */ lw $s1, 0x20($sp) +/* 09BFA4 7F067434 03E00008 */ jr $ra +/* 09BFA8 7F067438 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + +#endif + + +void sub_GAME_7F066E64(void) +{ + if (sub_GAME_7F08CF0C()) + { + #ifndef VERSION_JP + display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + #else + jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + #endif + pPlayer->copiedgoldeneye = 1; + play_sfx_a1(ptr_sfx_buf, 0xf5, 0x0); + draw_item_in_hand_has_more_ammo(RIGHT_HAND, ITEM_GOLDENEYEKEY); + draw_item_in_hand_has_more_ammo(LEFT_HAND, ITEM_UNARMED); + } + else + { + #ifndef VERSION_JP + display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + #else + jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + #endif + sub_GAME_7F05D690(); + } + return; +} + + +int get_keyanalyzer_flag(void) + +{ + return pPlayer->copiedgoldeneye; +} + + +void sub_GAME_7F066F08(void) +{ + add_ammo_to_inventory(AMMO_KNIFE,2,0,1); + add_ammo_to_inventory(AMMO_GRENADE,2,0,1); + add_item_to_inventory(ITEM_SNIPERRIFLE); + set_sound_effect_for_weapontype_collection(ITEM_SNIPERRIFLE); + display_text_for_weapon_in_lower_left_corner(ITEM_SNIPERRIFLE); + give_cur_player_ammo(GsniperrifleZ_stats.ammotype,check_cur_player_ammo_amount_in_inventory(GsniperrifleZ_stats.ammotype) + GsniperrifleZ_stats.mag_size); + sub_GAME_7F08C61C(0x2c); + draw_item_in_hand_has_more_ammo(RIGHT_HAND,ITEM_SNIPERRIFLE); + draw_item_in_hand_has_more_ammo(LEFT_HAND,ITEM_UNARMED); +} + + +f32 get_vertical_position_solo_watch_menu_main_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_x; +} + + +f32 get_lateral_position_solo_watch_menu_main_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_y; +} + + +f32 get_depth_on_solo_watch_menu_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_z; +} + + +f32 get_xrotation_solo_watch_menu_for_item(ITEM_IDS item) + +{ + return gitem_structs[item].x_rotation; +} + + +f32 get_yrotation_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].y_rotation; +} + + +f32 get_45_degree_angle(s32 unk) { + return 45.0f; +} + + +u16 *get_ptr_first_title_line_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].upper_watch_text); +} + + +u16 *get_ptr_second_title_line_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].lower_watch_text); +} + + +u16 *get_ptr_short_watch_text_for_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].watch_equipment_text); +} + + +u16 *get_ptr_long_watch_text_for_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].weapon_of_choice_text); +} + + +f32 get_45_degree_angle_0(s32 unk) +{ + return 45.0f; +} + + +f32 get_horizontal_offset_on_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_x; +} + + +f32 get_vertical_offset_on_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_y; +} + + +f32 get_depth_offset_solo_watch_menu_inventory_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_z; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067174(void) { + +} +#else +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(pPlayer) +/* 09BCB8 7F067188 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0671A4(void) + +{ + ITEM_IDS item; + ITEM_IDS item_00; + struct weapon_stats *pwVar2; + struct weapon_stats *pwVar3; + + float fVar4; + float fVar5; + + item = get_item_in_hand(0); + item_00 = get_item_in_hand(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 *)&pPlayer->noise = (float)pPlayer->noise + pwVar2->field_5C; + if (pwVar2->loudness2 < (float)pPlayer->noise) { + *(float *)&pPlayer->noise = pwVar2->loudness2; + } + } + if ((item_00 != ITEM_UNARMED) && (get_hands_firing_status(1) != 0)) { + *(float *)&pPlayer->field_E28 = (float)pPlayer->field_E28 + pwVar3->field_5C; + if (pwVar3->loudness2 < (float)pPlayer->field_E28) { + *(float *)&pPlayer->field_E28 = pwVar3->loudness2; + } + } + fVar5 = (pwVar2->field_5C * global_timer_delta) / (pwVar2->field_60 * 60.00000000); + fVar4 = (((float)pPlayer->noise - pwVar2->loudness) * global_timer_delta) / + (pwVar2->field_64 * 60.00000000); + if (fVar4 <= fVar5) { + fVar4 = fVar5; + } + *(float *)&pPlayer->noise = (float)pPlayer->noise - fVar4; + if ((float)pPlayer->noise < pwVar2->loudness) { + *(float *)&pPlayer->noise = pwVar2->loudness; + } + fVar5 = (pwVar3->field_5C * global_timer_delta) / (pwVar3->field_60 * 60.00000000); + fVar4 = (((float)pPlayer->field_E28 - pwVar3->loudness) * global_timer_delta) / + (pwVar3->field_64 * 60.00000000); + if (fVar4 <= fVar5) { + fVar4 = fVar5; + } + *(float *)&pPlayer->field_E28 = (float)pPlayer->field_E28 - fVar4; + if ((float)pPlayer->field_E28 < pwVar3->loudness) { + *(float *)&pPlayer->field_E28 = pwVar3->loudness; + } + return; +} +#else +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 get_item_in_hand +/* 09BCE0 7F0671B0 00002025 */ move $a0, $zero +/* 09BCE4 7F0671B4 AFA2002C */ sw $v0, 0x2c($sp) +/* 09BCE8 7F0671B8 0FC17674 */ jal get_item_in_hand +/* 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(pPlayer) +/* 09BD38 7F067208 24C6A0B0 */ addiu $a2, %lo(pPlayer) # 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(pPlayer) +/* 09BD78 7F067248 24C6A0B0 */ addiu $a2, %lo(pPlayer) # 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(pPlayer) +/* 09BD94 7F067264 24C6A0B0 */ addiu $a2, %lo(pPlayer) # 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(global_timer_delta) +/* 09BDDC 7F0672AC 24848378 */ addiu $a0, %lo(global_timer_delta) # 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0673B4(void) { + +} +#else +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 get_item_in_hand +/* 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(pPlayer) +/* 09BF10 7F0673E0 8DEFA0B0 */ lw $t7, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067420(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067420 +/* 09BF50 7F067420 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 09BF54 7F067424 3C0F8003 */ lui $t7, %hi(D_80035E9C) +/* 09BF58 7F067428 AFBF001C */ sw $ra, 0x1c($sp) +/* 09BF5C 7F06742C AFB00018 */ sw $s0, 0x18($sp) +/* 09BF60 7F067430 25EF5E9C */ addiu $t7, %lo(D_80035E9C) # addiu $t7, $t7, 0x5e9c +/* 09BF64 7F067434 8DE10000 */ lw $at, ($t7) +/* 09BF68 7F067438 8DE80004 */ lw $t0, 4($t7) +/* 09BF6C 7F06743C 27AE0048 */ addiu $t6, $sp, 0x48 +/* 09BF70 7F067440 3C108008 */ lui $s0, %hi(pPlayer) +/* 09BF74 7F067444 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09BF78 7F067448 ADC10000 */ sw $at, ($t6) +/* 09BF7C 7F06744C ADC80004 */ sw $t0, 4($t6) +/* 09BF80 7F067450 8E030000 */ lw $v1, ($s0) +/* 09BF84 7F067454 8C690FCC */ lw $t1, 0xfcc($v1) +/* 09BF88 7F067458 AC690FD0 */ sw $t1, 0xfd0($v1) +/* 09BF8C 7F06745C 8E0A0000 */ lw $t2, ($s0) +/* 09BF90 7F067460 AD440FCC */ sw $a0, 0xfcc($t2) +/* 09BF94 7F067464 8E030000 */ lw $v1, ($s0) +/* 09BF98 7F067468 8C620FCC */ lw $v0, 0xfcc($v1) +/* 09BF9C 7F06746C 14400008 */ bnez $v0, .L7F067490 +/* 09BFA0 7F067470 00000000 */ nop +/* 09BFA4 7F067474 8C6B0FD0 */ lw $t3, 0xfd0($v1) +/* 09BFA8 7F067478 240C0001 */ li $t4, 1 +/* 09BFAC 7F06747C 11600004 */ beqz $t3, .L7F067490 +/* 09BFB0 7F067480 00000000 */ nop +/* 09BFB4 7F067484 AC6C0FC8 */ sw $t4, 0xfc8($v1) +/* 09BFB8 7F067488 8E030000 */ lw $v1, ($s0) +/* 09BFBC 7F06748C 8C620FCC */ lw $v0, 0xfcc($v1) +.L7F067490: +/* 09BFC0 7F067490 5040012A */ beql $v0, $zero, .L7F06793C +/* 09BFC4 7F067494 AC600FD4 */ sw $zero, 0xfd4($v1) +/* 09BFC8 7F067498 0FC17674 */ jal get_item_in_hand +/* 09BFCC 7F06749C 00002025 */ move $a0, $zero +/* 09BFD0 7F0674A0 AFA20044 */ sw $v0, 0x44($sp) +/* 09BFD4 7F0674A4 0FC17674 */ jal get_item_in_hand +/* 09BFD8 7F0674A8 24040001 */ li $a0, 1 +/* 09BFDC 7F0674AC 8E030000 */ lw $v1, ($s0) +/* 09BFE0 7F0674B0 AFA20040 */ sw $v0, 0x40($sp) +/* 09BFE4 7F0674B4 3C198005 */ lui $t9, %hi(clock_timer) +/* 09BFE8 7F0674B8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 09BFEC 7F0674BC 8C6D0FD4 */ lw $t5, 0xfd4($v1) +/* 09BFF0 7F0674C0 8FA40044 */ lw $a0, 0x44($sp) +/* 09BFF4 7F0674C4 01B9C021 */ addu $t8, $t5, $t9 +/* 09BFF8 7F0674C8 108000FD */ beqz $a0, .L7F0678C0 +/* 09BFFC 7F0674CC AC780FD4 */ sw $t8, 0xfd4($v1) +/* 09C000 7F0674D0 504000FC */ beql $v0, $zero, .L7F0678C4 +/* 09C004 7F0674D4 8E0D0000 */ lw $t5, ($s0) +/* 09C008 7F0674D8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C00C 7F0674DC 24050080 */ li $a1, 128 +/* 09C010 7F0674E0 10400049 */ beqz $v0, .L7F067608 +/* 09C014 7F0674E4 8FA40040 */ lw $a0, 0x40($sp) +/* 09C018 7F0674E8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C01C 7F0674EC 24050080 */ li $a1, 128 +/* 09C020 7F0674F0 50400046 */ beql $v0, $zero, .L7F06760C +/* 09C024 7F0674F4 8FA40044 */ lw $a0, 0x44($sp) +/* 09C028 7F0674F8 8E030000 */ lw $v1, ($s0) +/* 09C02C 7F0674FC 8C6E0FD4 */ lw $t6, 0xfd4($v1) +/* 09C030 7F067500 29C10015 */ slti $at, $t6, 0x15 +/* 09C034 7F067504 54200022 */ bnezl $at, .L7F067590 +/* 09C038 7F067508 8C6C0FD0 */ lw $t4, 0xfd0($v1) +/* 09C03C 7F06750C 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C040 7F067510 24020001 */ li $v0, 1 +/* 09C044 7F067514 000F4080 */ sll $t0, $t7, 2 +/* 09C048 7F067518 03A84821 */ addu $t1, $sp, $t0 +/* 09C04C 7F06751C AD220048 */ sw $v0, 0x48($t1) +/* 09C050 7F067520 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C054 7F067524 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C058 7F067528 004A2023 */ subu $a0, $v0, $t2 +/* 09C05C 7F06752C 54400010 */ bnezl $v0, .L7F067570 +/* 09C060 7F067530 8E0F0000 */ lw $t7, ($s0) +/* 09C064 7F067534 8E030000 */ lw $v1, ($s0) +/* 09C068 7F067538 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C06C 7F06753C 000B60C0 */ sll $t4, $t3, 3 +/* 09C070 7F067540 018B6023 */ subu $t4, $t4, $t3 +/* 09C074 7F067544 000C6080 */ sll $t4, $t4, 2 +/* 09C078 7F067548 018B6021 */ addu $t4, $t4, $t3 +/* 09C07C 7F06754C 000C6080 */ sll $t4, $t4, 2 +/* 09C080 7F067550 018B6021 */ addu $t4, $t4, $t3 +/* 09C084 7F067554 000C60C0 */ sll $t4, $t4, 3 +/* 09C088 7F067558 000C6823 */ negu $t5, $t4 +/* 09C08C 7F06755C 006DC821 */ addu $t9, $v1, $t5 +/* 09C090 7F067560 8F380C28 */ lw $t8, 0xc28($t9) +/* 09C094 7F067564 530000F6 */ beql $t8, $zero, .L7F067940 +/* 09C098 7F067568 00002025 */ move $a0, $zero +/* 09C09C 7F06756C 8E0F0000 */ lw $t7, ($s0) +.L7F067570: +/* 09C0A0 7F067570 240E0001 */ li $t6, 1 +/* 09C0A4 7F067574 8DE80FD8 */ lw $t0, 0xfd8($t7) +/* 09C0A8 7F067578 00084880 */ sll $t1, $t0, 2 +/* 09C0AC 7F06757C 00095023 */ negu $t2, $t1 +/* 09C0B0 7F067580 03AA5821 */ addu $t3, $sp, $t2 +/* 09C0B4 7F067584 100000ED */ b .L7F06793C +/* 09C0B8 7F067588 AD6E004C */ sw $t6, 0x4c($t3) +/* 09C0BC 7F06758C 8C6C0FD0 */ lw $t4, 0xfd0($v1) +.L7F067590: +/* 09C0C0 7F067590 55800012 */ bnezl $t4, .L7F0675DC +/* 09C0C4 7F067594 8E030000 */ lw $v1, ($s0) +/* 09C0C8 7F067598 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C0CC 7F06759C 24190001 */ li $t9, 1 +/* 09C0D0 7F0675A0 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C0D4 7F0675A4 032D2023 */ subu $a0, $t9, $t5 +/* 09C0D8 7F0675A8 54400007 */ bnezl $v0, .L7F0675C8 +/* 09C0DC 7F0675AC 8E030000 */ lw $v1, ($s0) +/* 09C0E0 7F0675B0 8E180000 */ lw $t8, ($s0) +/* 09C0E4 7F0675B4 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C0E8 7F0675B8 8F040FD8 */ lw $a0, 0xfd8($t8) +/* 09C0EC 7F0675BC 54400007 */ bnezl $v0, .L7F0675DC +/* 09C0F0 7F0675C0 8E030000 */ lw $v1, ($s0) +/* 09C0F4 7F0675C4 8E030000 */ lw $v1, ($s0) +.L7F0675C8: +/* 09C0F8 7F0675C8 24080001 */ li $t0, 1 +/* 09C0FC 7F0675CC 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C100 7F0675D0 010F4823 */ subu $t1, $t0, $t7 +/* 09C104 7F0675D4 AC690FD8 */ sw $t1, 0xfd8($v1) +/* 09C108 7F0675D8 8E030000 */ lw $v1, ($s0) +.L7F0675DC: +/* 09C10C 7F0675DC 240E0001 */ li $t6, 1 +/* 09C110 7F0675E0 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C114 7F0675E4 000A5880 */ sll $t3, $t2, 2 +/* 09C118 7F0675E8 03AB6021 */ addu $t4, $sp, $t3 +/* 09C11C 7F0675EC AD8E0048 */ sw $t6, 0x48($t4) +/* 09C120 7F0675F0 8C790FD8 */ lw $t9, 0xfd8($v1) +/* 09C124 7F0675F4 00196880 */ sll $t5, $t9, 2 +/* 09C128 7F0675F8 000DC023 */ negu $t8, $t5 +/* 09C12C 7F0675FC 03B84021 */ addu $t0, $sp, $t8 +/* 09C130 7F067600 100000CE */ b .L7F06793C +/* 09C134 7F067604 AD00004C */ sw $zero, 0x4c($t0) +.L7F067608: +/* 09C138 7F067608 8FA40044 */ lw $a0, 0x44($sp) +.L7F06760C: +/* 09C13C 7F06760C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C140 7F067610 24050080 */ li $a1, 128 +/* 09C144 7F067614 14400005 */ bnez $v0, .L7F06762C +/* 09C148 7F067618 8FA40040 */ lw $a0, 0x40($sp) +/* 09C14C 7F06761C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C150 7F067620 24050080 */ li $a1, 128 +/* 09C154 7F067624 50400063 */ beql $v0, $zero, .L7F0677B4 +/* 09C158 7F067628 8E030000 */ lw $v1, ($s0) +.L7F06762C: +/* 09C15C 7F06762C 8E030000 */ lw $v1, ($s0) +/* 09C160 7F067630 8FA40044 */ lw $a0, 0x44($sp) +/* 09C164 7F067634 8C6F0FD4 */ lw $t7, 0xfd4($v1) +/* 09C168 7F067638 29E1001F */ slti $at, $t7, 0x1f +/* 09C16C 7F06763C 14200021 */ bnez $at, .L7F0676C4 +/* 09C170 7F067640 00000000 */ nop +/* 09C174 7F067644 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C178 7F067648 24020001 */ li $v0, 1 +/* 09C17C 7F06764C 00095080 */ sll $t2, $t1, 2 +/* 09C180 7F067650 03AA7021 */ addu $t6, $sp, $t2 +/* 09C184 7F067654 ADC20048 */ sw $v0, 0x48($t6) +/* 09C188 7F067658 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C18C 7F06765C 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C190 7F067660 004B2023 */ subu $a0, $v0, $t3 +/* 09C194 7F067664 54400010 */ bnezl $v0, .L7F0676A8 +/* 09C198 7F067668 8E090000 */ lw $t1, ($s0) +/* 09C19C 7F06766C 8E030000 */ lw $v1, ($s0) +/* 09C1A0 7F067670 8C6C0FD8 */ lw $t4, 0xfd8($v1) +/* 09C1A4 7F067674 000CC8C0 */ sll $t9, $t4, 3 +/* 09C1A8 7F067678 032CC823 */ subu $t9, $t9, $t4 +/* 09C1AC 7F06767C 0019C880 */ sll $t9, $t9, 2 +/* 09C1B0 7F067680 032CC821 */ addu $t9, $t9, $t4 +/* 09C1B4 7F067684 0019C880 */ sll $t9, $t9, 2 +/* 09C1B8 7F067688 032CC821 */ addu $t9, $t9, $t4 +/* 09C1BC 7F06768C 0019C8C0 */ sll $t9, $t9, 3 +/* 09C1C0 7F067690 00196823 */ negu $t5, $t9 +/* 09C1C4 7F067694 006DC021 */ addu $t8, $v1, $t5 +/* 09C1C8 7F067698 8F080C28 */ lw $t0, 0xc28($t8) +/* 09C1CC 7F06769C 510000A8 */ beql $t0, $zero, .L7F067940 +/* 09C1D0 7F0676A0 00002025 */ move $a0, $zero +/* 09C1D4 7F0676A4 8E090000 */ lw $t1, ($s0) +.L7F0676A8: +/* 09C1D8 7F0676A8 240F0001 */ li $t7, 1 +/* 09C1DC 7F0676AC 8D2A0FD8 */ lw $t2, 0xfd8($t1) +/* 09C1E0 7F0676B0 000A7080 */ sll $t6, $t2, 2 +/* 09C1E4 7F0676B4 000E5823 */ negu $t3, $t6 +/* 09C1E8 7F0676B8 03AB6021 */ addu $t4, $sp, $t3 +/* 09C1EC 7F0676BC 1000009F */ b .L7F06793C +/* 09C1F0 7F0676C0 AD8F004C */ sw $t7, 0x4c($t4) +.L7F0676C4: +/* 09C1F4 7F0676C4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C1F8 7F0676C8 24050080 */ li $a1, 128 +/* 09C1FC 7F0676CC 10400003 */ beqz $v0, .L7F0676DC +/* 09C200 7F0676D0 24050001 */ li $a1, 1 +/* 09C204 7F0676D4 10000001 */ b .L7F0676DC +/* 09C208 7F0676D8 00002825 */ move $a1, $zero +.L7F0676DC: +/* 09C20C 7F0676DC 00A02025 */ move $a0, $a1 +/* 09C210 7F0676E0 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C214 7F0676E4 AFA5003C */ sw $a1, 0x3c($sp) +/* 09C218 7F0676E8 1440000F */ bnez $v0, .L7F067728 +/* 09C21C 7F0676EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 09C220 7F0676F0 000530C0 */ sll $a2, $a1, 3 +/* 09C224 7F0676F4 00C53023 */ subu $a2, $a2, $a1 +/* 09C228 7F0676F8 00063080 */ sll $a2, $a2, 2 +/* 09C22C 7F0676FC 00C53021 */ addu $a2, $a2, $a1 +/* 09C230 7F067700 8E190000 */ lw $t9, ($s0) +/* 09C234 7F067704 00063080 */ sll $a2, $a2, 2 +/* 09C238 7F067708 00C53021 */ addu $a2, $a2, $a1 +/* 09C23C 7F06770C 000630C0 */ sll $a2, $a2, 3 +/* 09C240 7F067710 03266821 */ addu $t5, $t9, $a2 +/* 09C244 7F067714 8DB80880 */ lw $t8, 0x880($t5) +/* 09C248 7F067718 24090001 */ li $t1, 1 +/* 09C24C 7F06771C 01252023 */ subu $a0, $t1, $a1 +/* 09C250 7F067720 53000005 */ beql $t8, $zero, .L7F067738 +/* 09C254 7F067724 AFA40020 */ sw $a0, 0x20($sp) +.L7F067728: +/* 09C258 7F067728 8E080000 */ lw $t0, ($s0) +/* 09C25C 7F06772C 10000014 */ b .L7F067780 +/* 09C260 7F067730 AD050FD8 */ sw $a1, 0xfd8($t0) +/* 09C264 7F067734 AFA40020 */ sw $a0, 0x20($sp) +.L7F067738: +/* 09C268 7F067738 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C26C 7F06773C AFA60024 */ sw $a2, 0x24($sp) +/* 09C270 7F067740 8FA40020 */ lw $a0, 0x20($sp) +/* 09C274 7F067744 14400007 */ bnez $v0, .L7F067764 +/* 09C278 7F067748 8FA60024 */ lw $a2, 0x24($sp) +/* 09C27C 7F06774C 8E030000 */ lw $v1, ($s0) +/* 09C280 7F067750 00065023 */ negu $t2, $a2 +/* 09C284 7F067754 006A7021 */ addu $t6, $v1, $t2 +/* 09C288 7F067758 8DCF0C28 */ lw $t7, 0xc28($t6) +/* 09C28C 7F06775C 51E00005 */ beql $t7, $zero, .L7F067774 +/* 09C290 7F067760 8C6C0FD8 */ lw $t4, 0xfd8($v1) +.L7F067764: +/* 09C294 7F067764 8E0B0000 */ lw $t3, ($s0) +/* 09C298 7F067768 10000005 */ b .L7F067780 +/* 09C29C 7F06776C AD640FD8 */ sw $a0, 0xfd8($t3) +/* 09C2A0 7F067770 8C6C0FD8 */ lw $t4, 0xfd8($v1) +.L7F067774: +/* 09C2A4 7F067774 24190001 */ li $t9, 1 +/* 09C2A8 7F067778 032C6823 */ subu $t5, $t9, $t4 +/* 09C2AC 7F06777C AC6D0FD8 */ sw $t5, 0xfd8($v1) +.L7F067780: +/* 09C2B0 7F067780 8E030000 */ lw $v1, ($s0) +/* 09C2B4 7F067784 24180001 */ li $t8, 1 +/* 09C2B8 7F067788 8C680FD8 */ lw $t0, 0xfd8($v1) +/* 09C2BC 7F06778C 00084880 */ sll $t1, $t0, 2 +/* 09C2C0 7F067790 03A95021 */ addu $t2, $sp, $t1 +/* 09C2C4 7F067794 AD580048 */ sw $t8, 0x48($t2) +/* 09C2C8 7F067798 8C6E0FD8 */ lw $t6, 0xfd8($v1) +/* 09C2CC 7F06779C 000E7880 */ sll $t7, $t6, 2 +/* 09C2D0 7F0677A0 000F5823 */ negu $t3, $t7 +/* 09C2D4 7F0677A4 03ABC821 */ addu $t9, $sp, $t3 +/* 09C2D8 7F0677A8 10000064 */ b .L7F06793C +/* 09C2DC 7F0677AC AF20004C */ sw $zero, 0x4c($t9) +/* 09C2E0 7F0677B0 8E030000 */ lw $v1, ($s0) +.L7F0677B4: +/* 09C2E4 7F0677B4 8C6C0FD4 */ lw $t4, 0xfd4($v1) +/* 09C2E8 7F0677B8 2981001F */ slti $at, $t4, 0x1f +/* 09C2EC 7F0677BC 54200022 */ bnezl $at, .L7F067848 +/* 09C2F0 7F0677C0 8C6E0FD0 */ lw $t6, 0xfd0($v1) +/* 09C2F4 7F0677C4 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C2F8 7F0677C8 24020001 */ li $v0, 1 +/* 09C2FC 7F0677CC 000D4080 */ sll $t0, $t5, 2 +/* 09C300 7F0677D0 03A8C021 */ addu $t8, $sp, $t0 +/* 09C304 7F0677D4 AF020048 */ sw $v0, 0x48($t8) +/* 09C308 7F0677D8 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C30C 7F0677DC 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C310 7F0677E0 00492023 */ subu $a0, $v0, $t1 +/* 09C314 7F0677E4 54400010 */ bnezl $v0, .L7F067828 +/* 09C318 7F0677E8 8E0D0000 */ lw $t5, ($s0) +/* 09C31C 7F0677EC 8E030000 */ lw $v1, ($s0) +/* 09C320 7F0677F0 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C324 7F0677F4 000A70C0 */ sll $t6, $t2, 3 +/* 09C328 7F0677F8 01CA7023 */ subu $t6, $t6, $t2 +/* 09C32C 7F0677FC 000E7080 */ sll $t6, $t6, 2 +/* 09C330 7F067800 01CA7021 */ addu $t6, $t6, $t2 +/* 09C334 7F067804 000E7080 */ sll $t6, $t6, 2 +/* 09C338 7F067808 01CA7021 */ addu $t6, $t6, $t2 +/* 09C33C 7F06780C 000E70C0 */ sll $t6, $t6, 3 +/* 09C340 7F067810 000E7823 */ negu $t7, $t6 +/* 09C344 7F067814 006F5821 */ addu $t3, $v1, $t7 +/* 09C348 7F067818 8D790C28 */ lw $t9, 0xc28($t3) +/* 09C34C 7F06781C 53200048 */ beql $t9, $zero, .L7F067940 +/* 09C350 7F067820 00002025 */ move $a0, $zero +/* 09C354 7F067824 8E0D0000 */ lw $t5, ($s0) +.L7F067828: +/* 09C358 7F067828 240C0001 */ li $t4, 1 +/* 09C35C 7F06782C 8DA80FD8 */ lw $t0, 0xfd8($t5) +/* 09C360 7F067830 0008C080 */ sll $t8, $t0, 2 +/* 09C364 7F067834 00184823 */ negu $t1, $t8 +/* 09C368 7F067838 03A95021 */ addu $t2, $sp, $t1 +/* 09C36C 7F06783C 1000003F */ b .L7F06793C +/* 09C370 7F067840 AD4C004C */ sw $t4, 0x4c($t2) +/* 09C374 7F067844 8C6E0FD0 */ lw $t6, 0xfd0($v1) +.L7F067848: +/* 09C378 7F067848 55C00012 */ bnezl $t6, .L7F067894 +/* 09C37C 7F06784C 8E030000 */ lw $v1, ($s0) +/* 09C380 7F067850 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C384 7F067854 240B0001 */ li $t3, 1 +/* 09C388 7F067858 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C38C 7F06785C 016F2023 */ subu $a0, $t3, $t7 +/* 09C390 7F067860 54400007 */ bnezl $v0, .L7F067880 +/* 09C394 7F067864 8E030000 */ lw $v1, ($s0) +/* 09C398 7F067868 8E190000 */ lw $t9, ($s0) +/* 09C39C 7F06786C 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C3A0 7F067870 8F240FD8 */ lw $a0, 0xfd8($t9) +/* 09C3A4 7F067874 54400007 */ bnezl $v0, .L7F067894 +/* 09C3A8 7F067878 8E030000 */ lw $v1, ($s0) +/* 09C3AC 7F06787C 8E030000 */ lw $v1, ($s0) +.L7F067880: +/* 09C3B0 7F067880 24080001 */ li $t0, 1 +/* 09C3B4 7F067884 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C3B8 7F067888 010DC023 */ subu $t8, $t0, $t5 +/* 09C3BC 7F06788C AC780FD8 */ sw $t8, 0xfd8($v1) +/* 09C3C0 7F067890 8E030000 */ lw $v1, ($s0) +.L7F067894: +/* 09C3C4 7F067894 240C0001 */ li $t4, 1 +/* 09C3C8 7F067898 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C3CC 7F06789C 00095080 */ sll $t2, $t1, 2 +/* 09C3D0 7F0678A0 03AA7021 */ addu $t6, $sp, $t2 +/* 09C3D4 7F0678A4 ADCC0048 */ sw $t4, 0x48($t6) +/* 09C3D8 7F0678A8 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C3DC 7F0678AC 000B7880 */ sll $t7, $t3, 2 +/* 09C3E0 7F0678B0 000FC823 */ negu $t9, $t7 +/* 09C3E4 7F0678B4 03B94021 */ addu $t0, $sp, $t9 +/* 09C3E8 7F0678B8 10000020 */ b .L7F06793C +/* 09C3EC 7F0678BC AD00004C */ sw $zero, 0x4c($t0) +.L7F0678C0: +/* 09C3F0 7F0678C0 8E0D0000 */ lw $t5, ($s0) +.L7F0678C4: +/* 09C3F4 7F0678C4 0FC17674 */ jal get_item_in_hand +/* 09C3F8 7F0678C8 8DA40FD8 */ lw $a0, 0xfd8($t5) +/* 09C3FC 7F0678CC 5440000E */ bnezl $v0, .L7F067908 +/* 09C400 7F0678D0 8E030000 */ lw $v1, ($s0) +/* 09C404 7F0678D4 8E180000 */ lw $t8, ($s0) +/* 09C408 7F0678D8 240C0001 */ li $t4, 1 +/* 09C40C 7F0678DC 8F090FD8 */ lw $t1, 0xfd8($t8) +/* 09C410 7F0678E0 0FC17674 */ jal get_item_in_hand +/* 09C414 7F0678E4 01892023 */ subu $a0, $t4, $t1 +/* 09C418 7F0678E8 50400007 */ beql $v0, $zero, .L7F067908 +/* 09C41C 7F0678EC 8E030000 */ lw $v1, ($s0) +/* 09C420 7F0678F0 8E030000 */ lw $v1, ($s0) +/* 09C424 7F0678F4 240E0001 */ li $t6, 1 +/* 09C428 7F0678F8 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C42C 7F0678FC 01CA5823 */ subu $t3, $t6, $t2 +/* 09C430 7F067900 AC6B0FD8 */ sw $t3, 0xfd8($v1) +/* 09C434 7F067904 8E030000 */ lw $v1, ($s0) +.L7F067908: +/* 09C438 7F067908 240F0001 */ li $t7, 1 +/* 09C43C 7F06790C 8C790FD8 */ lw $t9, 0xfd8($v1) +/* 09C440 7F067910 00194080 */ sll $t0, $t9, 2 +/* 09C444 7F067914 03A86821 */ addu $t5, $sp, $t0 +/* 09C448 7F067918 ADAF0048 */ sw $t7, 0x48($t5) +/* 09C44C 7F06791C 8C780FD8 */ lw $t8, 0xfd8($v1) +/* 09C450 7F067920 00186080 */ sll $t4, $t8, 2 +/* 09C454 7F067924 000C4823 */ negu $t1, $t4 +/* 09C458 7F067928 03A97021 */ addu $t6, $sp, $t1 +/* 09C45C 7F06792C ADC0004C */ sw $zero, 0x4c($t6) +/* 09C460 7F067930 10000003 */ b .L7F067940 +/* 09C464 7F067934 00002025 */ move $a0, $zero +/* 09C468 7F067938 AC600FD4 */ sw $zero, 0xfd4($v1) +.L7F06793C: +/* 09C46C 7F06793C 00002025 */ move $a0, $zero +.L7F067940: +/* 09C470 7F067940 0FC192CA */ jal handle_weapon_id_values_possibly_1st_person_animation +/* 09C474 7F067944 8FA50048 */ lw $a1, 0x48($sp) +/* 09C478 7F067948 24040001 */ li $a0, 1 +/* 09C47C 7F06794C 0FC192CA */ jal handle_weapon_id_values_possibly_1st_person_animation +/* 09C480 7F067950 8FA5004C */ lw $a1, 0x4c($sp) +/* 09C484 7F067954 0FC17422 */ jal used_to_load_1st_person_model_on_demand +/* 09C488 7F067958 00002025 */ move $a0, $zero +/* 09C48C 7F06795C 0FC17422 */ jal used_to_load_1st_person_model_on_demand +/* 09C490 7F067960 24040001 */ li $a0, 1 +/* 09C494 7F067964 0FC19C69 */ jal sub_GAME_7F0671A4 +/* 09C498 7F067968 00000000 */ nop +/* 09C49C 7F06796C 8E0A0000 */ lw $t2, ($s0) +/* 09C4A0 7F067970 8D4B0FE0 */ lw $t3, 0xfe0($t2) +/* 09C4A4 7F067974 1160000A */ beqz $t3, .L7F0679A0 +/* 09C4A8 7F067978 00000000 */ nop +/* 09C4AC 7F06797C 0FC225E6 */ jal get_curplayer_positiondata +/* 09C4B0 7F067980 00000000 */ nop +/* 09C4B4 7F067984 8E050000 */ lw $a1, ($s0) +/* 09C4B8 7F067988 00402025 */ move $a0, $v0 +/* 09C4BC 7F06798C 0FC10027 */ jal set_color_shading_from_tile +/* 09C4C0 7F067990 24A50FDC */ addiu $a1, $a1, 0xfdc +/* 09C4C4 7F067994 8E190000 */ lw $t9, ($s0) +/* 09C4C8 7F067998 1000000A */ b .L7F0679C4 +/* 09C4CC 7F06799C AF200FE0 */ sw $zero, 0xfe0($t9) +.L7F0679A0: +/* 09C4D0 7F0679A0 0FC225E6 */ jal get_curplayer_positiondata +/* 09C4D4 7F0679A4 00000000 */ nop +/* 09C4D8 7F0679A8 00402025 */ move $a0, $v0 +/* 09C4DC 7F0679AC 0FC10027 */ jal set_color_shading_from_tile +/* 09C4E0 7F0679B0 27A50038 */ addiu $a1, $sp, 0x38 +/* 09C4E4 7F0679B4 8E040000 */ lw $a0, ($s0) +/* 09C4E8 7F0679B8 27A50038 */ addiu $a1, $sp, 0x38 +/* 09C4EC 7F0679BC 0FC100C4 */ jal update_color_shading +/* 09C4F0 7F0679C0 24840FDC */ addiu $a0, $a0, 0xfdc +.L7F0679C4: +/* 09C4F4 7F0679C4 0FC17674 */ jal get_item_in_hand +/* 09C4F8 7F0679C8 00002025 */ move $a0, $zero +/* 09C4FC 7F0679CC AFA2002C */ sw $v0, 0x2c($sp) +/* 09C500 7F0679D0 0FC17674 */ jal get_item_in_hand +/* 09C504 7F0679D4 24040001 */ li $a0, 1 +/* 09C508 7F0679D8 8FA4002C */ lw $a0, 0x2c($sp) +/* 09C50C 7F0679DC 0FC2367B */ jal sub_GAME_7F08D9EC +/* 09C510 7F0679E0 00402825 */ move $a1, $v0 +/* 09C514 7F0679E4 8E030000 */ lw $v1, ($s0) +/* 09C518 7F0679E8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 09C51C 7F0679EC 8C621270 */ lw $v0, 0x1270($v1) +/* 09C520 7F0679F0 04420028 */ bltzl $v0, .L7F067A94 +/* 09C524 7F0679F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C528 7F0679F8 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09C52C 7F0679FC 24670870 */ addiu $a3, $v1, 0x870 +/* 09C530 7F067A00 2418FFFF */ li $t8, -1 +/* 09C534 7F067A04 004F4021 */ addu $t0, $v0, $t7 +/* 09C538 7F067A08 AC681270 */ sw $t0, 0x1270($v1) +/* 09C53C 7F067A0C 8E030000 */ lw $v1, ($s0) +/* 09C540 7F067A10 8C6D1270 */ lw $t5, 0x1270($v1) +/* 09C544 7F067A14 29A1012C */ slti $at, $t5, 0x12c +/* 09C548 7F067A18 50200014 */ beql $at, $zero, .L7F067A6C +/* 09C54C 7F067A1C AC781270 */ sw $t8, 0x1270($v1) +/* 09C550 7F067A20 8CE401D4 */ lw $a0, 0x1d4($a3) +/* 09C554 7F067A24 10800005 */ beqz $a0, .L7F067A3C +/* 09C558 7F067A28 00000000 */ nop +/* 09C55C 7F067A2C 0C00237C */ jal sfxGetArg0Unk3F +/* 09C560 7F067A30 AFA70034 */ sw $a3, 0x34($sp) +/* 09C564 7F067A34 14400016 */ bnez $v0, .L7F067A90 +/* 09C568 7F067A38 8FA70034 */ lw $a3, 0x34($sp) +.L7F067A3C: +/* 09C56C 7F067A3C 0FC2FF01 */ jal get_controls_locked_flag +/* 09C570 7F067A40 AFA70034 */ sw $a3, 0x34($sp) +/* 09C574 7F067A44 14400012 */ bnez $v0, .L7F067A90 +/* 09C578 7F067A48 8FA70034 */ lw $a3, 0x34($sp) +/* 09C57C 7F067A4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09C580 7F067A50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09C584 7F067A54 240500F6 */ li $a1, 246 +/* 09C588 7F067A58 0C002382 */ jal play_sfx_a1 +/* 09C58C 7F067A5C 24E601D4 */ addiu $a2, $a3, 0x1d4 +/* 09C590 7F067A60 1000000C */ b .L7F067A94 +/* 09C594 7F067A64 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C598 7F067A68 AC781270 */ sw $t8, 0x1270($v1) +.L7F067A6C: +/* 09C59C 7F067A6C 8CE401D4 */ lw $a0, 0x1d4($a3) +/* 09C5A0 7F067A70 50800008 */ beql $a0, $zero, .L7F067A94 +/* 09C5A4 7F067A74 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C5A8 7F067A78 0C00237C */ jal sfxGetArg0Unk3F +/* 09C5AC 7F067A7C AFA70034 */ sw $a3, 0x34($sp) +/* 09C5B0 7F067A80 10400003 */ beqz $v0, .L7F067A90 +/* 09C5B4 7F067A84 8FA70034 */ lw $a3, 0x34($sp) +/* 09C5B8 7F067A88 0C002408 */ jal sfxDeactivate +/* 09C5BC 7F067A8C 8CE401D4 */ lw $a0, 0x1d4($a3) +.L7F067A90: +/* 09C5C0 7F067A90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F067A94: +/* 09C5C4 7F067A94 8FB00018 */ lw $s0, 0x18($sp) +/* 09C5C8 7F067A98 27BD0050 */ addiu $sp, $sp, 0x50 +/* 09C5CC 7F067A9C 03E00008 */ jr $ra +/* 09C5D0 7F067AA0 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F067AA4(s32 param_1) +{ + pPlayer->field_FE4 = param_1; +} + + +void sub_GAME_7F067AB4(struct xyzpoint *param_1) +{ + pPlayer->hands[RIGHT_HAND].field_A38 = sub_GAME_7F05DCB8(RIGHT_HAND) + param_1->x; + pPlayer->hands[RIGHT_HAND].field_A3C = param_1->y; + pPlayer->hands[RIGHT_HAND].field_A40 = param_1->z; + + pPlayer->hands[LEFT_HAND].field_A38 = sub_GAME_7F05DCB8(LEFT_HAND) + param_1->x; + pPlayer->hands[LEFT_HAND].field_A3C = param_1->y; + pPlayer->hands[LEFT_HAND].field_A40 = param_1->z; + +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F067B4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067B4C +/* 09C67C 7F067B4C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09C680 7F067B50 2442A0B0 */ addiu $v0, %lo(pPlayer) # 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 + + + + + +#ifdef NONMATCHING +void caclulate_gun_crosshair_position_rotation(void) { + +} +#else +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(pPlayer) +/* 09C6F4 7F067BC4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(clock_timer) +/* 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(clock_timer) # 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(pPlayer) +/* 09C938 7F067E08 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(pPlayer) +/* 09C954 7F067E24 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09C958 7F067E28 8CE20000 */ lw $v0, ($a3) +/* 09C95C 7F067E2C 8FA30054 */ lw $v1, 0x54($sp) +/* 09C960 7F067E30 3C048005 */ lui $a0, %hi(clock_timer) +/* 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(clock_timer) # 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(pPlayer) +/* 09CA28 7F067EF8 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(pPlayer) +/* 09CA44 7F067F14 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067F58(void) { + +} +#else +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 get_item_in_hand +/* 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 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067FBC(void) { + +} +#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 get_item_in_hand +/* 09CB00 7F067FD0 00002025 */ move $a0, $zero +/* 09CB04 7F067FD4 0FC1722D */ jal get_ptr_item_statistics +/* 09CB08 7F067FD8 00402025 */ move $a0, $v0 +/* 09CB0C 7F067FDC C4400038 */ lwc1 $f0, 0x38($v0) +/* 09CB10 7F067FE0 C442003C */ lwc1 $f2, 0x3c($v0) +/* 09CB14 7F067FE4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 09CB18 7F067FE8 44060000 */ mfc1 $a2, $f0 +/* 09CB1C 7F067FEC 44071000 */ mfc1 $a3, $f2 +/* 09CB20 7F067FF0 0FC19EE5 */ jal caclulate_gun_crosshair_position_rotation +/* 09CB24 7F067FF4 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 09CB28 7F067FF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CB2C 7F067FFC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CB30 7F068000 03E00008 */ jr $ra +/* 09CB34 7F068004 00000000 */ nop +) +#endif + +#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 get_item_in_hand +/* 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 + +#endif + +void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle) { + *horizontal_angle = pPlayer->field_FE8; + *vertical_angle = pPlayer->field_FEC; +} + +#ifdef NONMATCHING +void sub_GAME_7F06802C(void) { + +} +#else +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(pPlayer) +/* 09CB84 7F068054 46040182 */ mul.s $f6, $f0, $f4 +/* 09CB88 7F068058 2442A0B0 */ addiu $v0, %lo(pPlayer) # 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(pPlayer) +/* 09CBBC 7F06808C 460A0402 */ mul.s $f16, $f0, $f10 +/* 09CBC0 7F068090 2442A0B0 */ addiu $v0, %lo(pPlayer) # 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 + + + + + +#ifdef NONMATCHING +void glabel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0680D4 +/* 09CC04 7F0680D4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09CC08 7F0680D8 3C038008 */ lui $v1, %hi(pPlayer) +/* 09CC0C 7F0680DC 2463A0B0 */ addiu $v1, %lo(pPlayer) # 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(pPlayer) +/* 09CC48 7F068118 2463A0B0 */ addiu $v1, %lo(pPlayer) # 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(pPlayer) +/* 09CC8C 7F06815C 2463A0B0 */ addiu $v1, %lo(pPlayer) # 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068190(void *arg0) { + // Node 0 + *arg0 = 0.0f; + arg0->unk4 = 0.0f; + arg0->unk8 = 0.0f; + return sub_GAME_7F077EEC((pPlayer + 0xfe8), 0x3f800000); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F068190 +/* 09CCC0 7F068190 44800000 */ mtc1 $zero, $f0 +/* 09CCC4 7F068194 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09CCC8 7F068198 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CCCC 7F06819C E4800000 */ swc1 $f0, ($a0) +/* 09CCD0 7F0681A0 E4800004 */ swc1 $f0, 4($a0) +/* 09CCD4 7F0681A4 E4800008 */ swc1 $f0, 8($a0) +/* 09CCD8 7F0681A8 3C048008 */ lui $a0, %hi(pPlayer) +/* 09CCDC 7F0681AC 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 09CCE0 7F0681B0 3C063F80 */ lui $a2, 0x3f80 +/* 09CCE4 7F0681B4 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 09CCE8 7F0681B8 24840FE8 */ addiu $a0, $a0, 0xfe8 +/* 09CCEC 7F0681BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CCF0 7F0681C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CCF4 7F0681C4 03E00008 */ jr $ra +/* 09CCF8 7F0681C8 00000000 */ nop +) +#endif + + + + + +#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; + + // Node 0 + sp28 = (f32) get_ptr_item_statistics(get_item_in_hand(arg2))->unk30; + if (bondwalkItemCheckBitflags(get_item_in_hand_or_watch_menu(arg2), 0x1000) != 0) + { + // Node 1 + if ((pPlayer + (arg2 * 0x3a8))->unkC08 == 0x3e800000) + { + // Node 2 + sp28 = (f32) (sp28 * 0x3e800000); + } + } + // Node 3 + sp24 = (f32) ((120.0f * sp28) / video_related_23()); + sp1C = get_random_value(); + temp_ret = get_random_value(); + temp_f10 = (f32) sp1C; + phi_f10 = temp_f10; + if (sp1C < 0) + { + // Node 4 + phi_f10 = (temp_f10 + 4294967296.0f); + } + // Node 5 + temp_f16 = (f32) temp_ret; + phi_f16 = temp_f16; + if (temp_ret < 0) + { + // Node 6 + phi_f16 = (temp_f16 + 4294967296.0f); + } + // 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)) + pPlayer->unkFE8); + sp1C = get_random_value(); + temp_ret_2 = get_random_value(); + temp_f8 = (f32) sp1C; + phi_f8 = temp_f8; + if (sp1C < 0) + { + // Node 8 + phi_f8 = (temp_f8 + 4294967296.0f); + } + // 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 + 4294967296.0f); + } + // 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) + pPlayer->unkFEC); + *arg0 = 0.0f; + arg0->unk4 = 0.0f; + arg0->unk8 = 0.0f; + return sub_GAME_7F077EEC(&sp30, arg1, 0x3f800000); +} +#else +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 get_item_in_hand +/* 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(pPlayer) +/* 09CD4C 7F06821C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 video_related_23 +/* 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 get_random_value +/* 09CDB4 7F068284 E7A60024 */ swc1 $f6, 0x24($sp) +/* 09CDB8 7F068288 0C002914 */ jal get_random_value +/* 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(pPlayer) +/* 09CE54 7F068324 8D4AA0B0 */ lw $t2, %lo(pPlayer)($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 get_random_value +/* 09CE78 7F068348 E7A40030 */ swc1 $f4, 0x30($sp) +/* 09CE7C 7F06834C 0C002914 */ jal get_random_value +/* 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(pPlayer) +/* 09CF04 7F0683D4 8D8CA0B0 */ lw $t4, %lo(pPlayer)($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 +) +#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_80075E64 != 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; + } + } + } + // 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; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F068420 +/* 09CF50 7F068420 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075E64) +/* 09CF54 7F068424 8DCE5E64 */ lw $t6, %lo(dword_CODE_bss_80075E64)($t6) +/* 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 NONMATCHING +void sub_GAME_7F068508(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800543B4 +.word 0x3dccccce /*0.10000001*/ +glabel D_800543B8 +.word 0x3f088888 /*0.5333333*/ +glabel D_800543BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543C0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543C4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543C8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543CC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543D0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543D4 +.word 0x493d6c30 /*775875.0*/ +glabel expended_shell_initial_gravity_modifier_pistol +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_800543DC +.word 0x3fb55555 /*1.4166666*/ +glabel D_800543E0 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800543E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543E8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543EC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543F0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543F4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543F8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543FC +.word 0x493d6c30 /*775875.0*/ +glabel expended_shell_initial_gravity_modifier_non_pistol +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F068508 +/* 09D038 7F068508 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 09D03C 7F06850C AFBF001C */ sw $ra, 0x1c($sp) +/* 09D040 7F068510 AFB00014 */ sw $s0, 0x14($sp) +/* 09D044 7F068514 00808025 */ move $s0, $a0 +/* 09D048 7F068518 AFB10018 */ sw $s1, 0x18($sp) +/* 09D04C 7F06851C 0FC17674 */ jal get_item_in_hand +/* 09D050 7F068520 AFA500C4 */ sw $a1, 0xc4($sp) +/* 09D054 7F068524 AFA20078 */ sw $v0, 0x78($sp) +/* 09D058 7F068528 0FC1722D */ jal get_ptr_item_statistics +/* 09D05C 7F06852C 00402025 */ move $a0, $v0 +/* 09D060 7F068530 8C430028 */ lw $v1, 0x28($v0) +/* 09D064 7F068534 506001F6 */ beql $v1, $zero, .L7F068D10 +/* 09D068 7F068538 8FBF001C */ lw $ra, 0x1c($sp) +/* 09D06C 7F06853C 0FC26919 */ jal get_num_players +/* 09D070 7F068540 AFA30070 */ sw $v1, 0x70($sp) +/* 09D074 7F068544 28410002 */ slti $at, $v0, 2 +/* 09D078 7F068548 102001F0 */ beqz $at, .L7F068D0C +/* 09D07C 7F06854C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09D080 7F068550 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09D084 7F068554 00107140 */ sll $t6, $s0, 5 +/* 09D088 7F068558 001088C0 */ sll $s1, $s0, 3 +/* 09D08C 7F06855C 004E7821 */ addu $t7, $v0, $t6 +/* 09D090 7F068560 8DF80818 */ lw $t8, 0x818($t7) +/* 09D094 7F068564 02308823 */ subu $s1, $s1, $s0 +/* 09D098 7F068568 00118880 */ sll $s1, $s1, 2 +/* 09D09C 7F06856C 8F030000 */ lw $v1, ($t8) +/* 09D0A0 7F068570 02308821 */ addu $s1, $s1, $s0 +/* 09D0A4 7F068574 00118880 */ sll $s1, $s1, 2 +/* 09D0A8 7F068578 1060001F */ beqz $v1, .L7F0685F8 +/* 09D0AC 7F06857C 02308821 */ addu $s1, $s1, $s0 +/* 09D0B0 7F068580 8C620004 */ lw $v0, 4($v1) +/* 09D0B4 7F068584 3C018005 */ lui $at, %hi(D_800543B4) +/* 09D0B8 7F068588 C42043B4 */ lwc1 $f0, %lo(D_800543B4)($at) +/* 09D0BC 7F06858C C4440000 */ lwc1 $f4, ($v0) +/* 09D0C0 7F068590 27A40064 */ addiu $a0, $sp, 0x64 +/* 09D0C4 7F068594 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D0C8 7F068598 46002182 */ mul.s $f6, $f4, $f0 +/* 09D0CC 7F06859C E7A60064 */ swc1 $f6, 0x64($sp) +/* 09D0D0 7F0685A0 C4480004 */ lwc1 $f8, 4($v0) +/* 09D0D4 7F0685A4 46004282 */ mul.s $f10, $f8, $f0 +/* 09D0D8 7F0685A8 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 09D0DC 7F0685AC C4520008 */ lwc1 $f18, 8($v0) +/* 09D0E0 7F0685B0 46009102 */ mul.s $f4, $f18, $f0 +/* 09D0E4 7F0685B4 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 09D0E8 7F0685B8 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 09D0EC 7F0685BC 001088C0 */ sll $s1, $s0, 3 +/* 09D0F0 7F0685C0 02308823 */ subu $s1, $s1, $s0 +/* 09D0F4 7F0685C4 00118880 */ sll $s1, $s1, 2 +/* 09D0F8 7F0685C8 02308821 */ addu $s1, $s1, $s0 +/* 09D0FC 7F0685CC 3C198008 */ lui $t9, %hi(pPlayer) +/* 09D100 7F0685D0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09D104 7F0685D4 00118880 */ sll $s1, $s1, 2 +/* 09D108 7F0685D8 02308821 */ addu $s1, $s1, $s0 +/* 09D10C 7F0685DC 001188C0 */ sll $s1, $s1, 3 +/* 09D110 7F0685E0 03312021 */ addu $a0, $t9, $s1 +/* 09D114 7F0685E4 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D118 7F0685E8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09D11C 7F0685EC 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D120 7F0685F0 10000007 */ b .L7F068610 +/* 09D124 7F0685F4 8FA40070 */ lw $a0, 0x70($sp) +.L7F0685F8: +/* 09D128 7F0685F8 001188C0 */ sll $s1, $s1, 3 +/* 09D12C 7F0685FC 00512021 */ addu $a0, $v0, $s1 +/* 09D130 7F068600 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D134 7F068604 0FC16008 */ jal matrix_4x4_copy +/* 09D138 7F068608 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D13C 7F06860C 8FA40070 */ lw $a0, 0x70($sp) +.L7F068610: +/* 09D140 7F068610 0FC1A108 */ jal sub_GAME_7F068420 +/* 09D144 7F068614 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D148 7F068618 104001BC */ beqz $v0, .L7F068D0C +/* 09D14C 7F06861C 00408025 */ move $s0, $v0 +/* 09D150 7F068620 3C098003 */ lui $t1, %hi(D_80035EA4) +/* 09D154 7F068624 25295EA4 */ addiu $t1, %lo(D_80035EA4) # addiu $t1, $t1, 0x5ea4 +/* 09D158 7F068628 8D210000 */ lw $at, ($t1) +/* 09D15C 7F06862C 8FA30078 */ lw $v1, 0x78($sp) +/* 09D160 7F068630 27A80054 */ addiu $t0, $sp, 0x54 +/* 09D164 7F068634 AD010000 */ sw $at, ($t0) +/* 09D168 7F068638 8D210008 */ lw $at, 8($t1) +/* 09D16C 7F06863C 8D2B0004 */ lw $t3, 4($t1) +/* 09D170 7F068640 AD010008 */ sw $at, 8($t0) +/* 09D174 7F068644 AD0B0004 */ sw $t3, 4($t0) +/* 09D178 7F068648 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 09D17C 7F06864C 24010004 */ li $at, 4 +/* 09D180 7F068650 1061000A */ beq $v1, $at, .L7F06867C +/* 09D184 7F068654 E4460000 */ swc1 $f6, ($v0) +/* 09D188 7F068658 24010005 */ li $at, 5 +/* 09D18C 7F06865C 10610007 */ beq $v1, $at, .L7F06867C +/* 09D190 7F068660 24010006 */ li $at, 6 +/* 09D194 7F068664 10610005 */ beq $v1, $at, .L7F06867C +/* 09D198 7F068668 24010014 */ li $at, 20 +/* 09D19C 7F06866C 10610003 */ beq $v1, $at, .L7F06867C +/* 09D1A0 7F068670 24010015 */ li $at, 21 +/* 09D1A4 7F068674 146100D3 */ bne $v1, $at, .L7F0689C4 +/* 09D1A8 7F068678 00000000 */ nop +.L7F06867C: +/* 09D1AC 7F06867C 0C002914 */ jal get_random_value +/* 09D1B0 7F068680 00000000 */ nop +/* 09D1B4 7F068684 44824000 */ mtc1 $v0, $f8 +/* 09D1B8 7F068688 3C018005 */ lui $at, %hi(D_800543B8) +/* 09D1BC 7F06868C C42043B8 */ lwc1 $f0, %lo(D_800543B8)($at) +/* 09D1C0 7F068690 04410005 */ bgez $v0, .L7F0686A8 +/* 09D1C4 7F068694 468042A0 */ cvt.s.w $f10, $f8 +/* 09D1C8 7F068698 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D1CC 7F06869C 44819000 */ mtc1 $at, $f18 +/* 09D1D0 7F0686A0 00000000 */ nop +/* 09D1D4 7F0686A4 46125280 */ add.s $f10, $f10, $f18 +.L7F0686A8: +/* 09D1D8 7F0686A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D1DC 7F0686AC 44812000 */ mtc1 $at, $f4 +/* 09D1E0 7F0686B0 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D1E4 7F0686B4 44819000 */ mtc1 $at, $f18 +/* 09D1E8 7F0686B8 46045182 */ mul.s $f6, $f10, $f4 +/* 09D1EC 7F0686BC 00000000 */ nop +/* 09D1F0 7F0686C0 46003202 */ mul.s $f8, $f6, $f0 +/* 09D1F4 7F0686C4 00000000 */ nop +/* 09D1F8 7F0686C8 46124282 */ mul.s $f10, $f8, $f18 +/* 09D1FC 7F0686CC 46005100 */ add.s $f4, $f10, $f0 +/* 09D200 7F0686D0 46002187 */ neg.s $f6, $f4 +/* 09D204 7F0686D4 0C002914 */ jal get_random_value +/* 09D208 7F0686D8 E6060010 */ swc1 $f6, 0x10($s0) +/* 09D20C 7F0686DC 44824000 */ mtc1 $v0, $f8 +/* 09D210 7F0686E0 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 09D214 7F0686E4 44810000 */ mtc1 $at, $f0 +/* 09D218 7F0686E8 04410005 */ bgez $v0, .L7F068700 +/* 09D21C 7F0686EC 468044A0 */ cvt.s.w $f18, $f8 +/* 09D220 7F0686F0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D224 7F0686F4 44815000 */ mtc1 $at, $f10 +/* 09D228 7F0686F8 00000000 */ nop +/* 09D22C 7F0686FC 460A9480 */ add.s $f18, $f18, $f10 +.L7F068700: +/* 09D230 7F068700 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D234 7F068704 44812000 */ mtc1 $at, $f4 +/* 09D238 7F068708 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D23C 7F06870C 44815000 */ mtc1 $at, $f10 +/* 09D240 7F068710 46049182 */ mul.s $f6, $f18, $f4 +/* 09D244 7F068714 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09D248 7F068718 26050010 */ addiu $a1, $s0, 0x10 +/* 09D24C 7F06871C 46003202 */ mul.s $f8, $f6, $f0 +/* 09D250 7F068720 44803000 */ mtc1 $zero, $f6 +/* 09D254 7F068724 00000000 */ nop +/* 09D258 7F068728 E6060018 */ swc1 $f6, 0x18($s0) +/* 09D25C 7F06872C 460A4482 */ mul.s $f18, $f8, $f10 +/* 09D260 7F068730 46009100 */ add.s $f4, $f18, $f0 +/* 09D264 7F068734 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D268 7F068738 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09D26C 7F06873C 01912021 */ addu $a0, $t4, $s1 +/* 09D270 7F068740 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 09D274 7F068744 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D278 7F068748 0C002914 */ jal get_random_value +/* 09D27C 7F06874C 00000000 */ nop +/* 09D280 7F068750 44824000 */ mtc1 $v0, $f8 +/* 09D284 7F068754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D288 7F068758 04410004 */ bgez $v0, .L7F06876C +/* 09D28C 7F06875C 468042A0 */ cvt.s.w $f10, $f8 +/* 09D290 7F068760 44819000 */ mtc1 $at, $f18 +/* 09D294 7F068764 00000000 */ nop +/* 09D298 7F068768 46125280 */ add.s $f10, $f10, $f18 +.L7F06876C: +/* 09D29C 7F06876C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D2A0 7F068770 44812000 */ mtc1 $at, $f4 +/* 09D2A4 7F068774 3C018005 */ lui $at, %hi(D_800543BC) +/* 09D2A8 7F068778 C42843BC */ lwc1 $f8, %lo(D_800543BC)($at) +/* 09D2AC 7F06877C 46045002 */ mul.s $f0, $f10, $f4 +/* 09D2B0 7F068780 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D2B4 7F068784 44815000 */ mtc1 $at, $f10 +/* 09D2B8 7F068788 3C018005 */ lui $at, %hi(D_800543C0) +/* 09D2BC 7F06878C 46000180 */ add.s $f6, $f0, $f0 +/* 09D2C0 7F068790 46083482 */ mul.s $f18, $f6, $f8 +/* 09D2C4 7F068794 C42643C0 */ lwc1 $f6, %lo(D_800543C0)($at) +/* 09D2C8 7F068798 460A9102 */ mul.s $f4, $f18, $f10 +/* 09D2CC 7F06879C 46062201 */ sub.s $f8, $f4, $f6 +/* 09D2D0 7F0687A0 0C002914 */ jal get_random_value +/* 09D2D4 7F0687A4 E7A80054 */ swc1 $f8, 0x54($sp) +/* 09D2D8 7F0687A8 44829000 */ mtc1 $v0, $f18 +/* 09D2DC 7F0687AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D2E0 7F0687B0 04410004 */ bgez $v0, .L7F0687C4 +/* 09D2E4 7F0687B4 468092A0 */ cvt.s.w $f10, $f18 +/* 09D2E8 7F0687B8 44812000 */ mtc1 $at, $f4 +/* 09D2EC 7F0687BC 00000000 */ nop +/* 09D2F0 7F0687C0 46045280 */ add.s $f10, $f10, $f4 +.L7F0687C4: +/* 09D2F4 7F0687C4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D2F8 7F0687C8 44813000 */ mtc1 $at, $f6 +/* 09D2FC 7F0687CC 3C018005 */ lui $at, %hi(D_800543C4) +/* 09D300 7F0687D0 C43243C4 */ lwc1 $f18, %lo(D_800543C4)($at) +/* 09D304 7F0687D4 46065002 */ mul.s $f0, $f10, $f6 +/* 09D308 7F0687D8 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D30C 7F0687DC 44815000 */ mtc1 $at, $f10 +/* 09D310 7F0687E0 3C018005 */ lui $at, %hi(D_800543C8) +/* 09D314 7F0687E4 46000200 */ add.s $f8, $f0, $f0 +/* 09D318 7F0687E8 46124102 */ mul.s $f4, $f8, $f18 +/* 09D31C 7F0687EC C42843C8 */ lwc1 $f8, %lo(D_800543C8)($at) +/* 09D320 7F0687F0 460A2182 */ mul.s $f6, $f4, $f10 +/* 09D324 7F0687F4 46083481 */ sub.s $f18, $f6, $f8 +/* 09D328 7F0687F8 0C002914 */ jal get_random_value +/* 09D32C 7F0687FC E7B20058 */ swc1 $f18, 0x58($sp) +/* 09D330 7F068800 44822000 */ mtc1 $v0, $f4 +/* 09D334 7F068804 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D338 7F068808 04410004 */ bgez $v0, .L7F06881C +/* 09D33C 7F06880C 468022A0 */ cvt.s.w $f10, $f4 +/* 09D340 7F068810 44813000 */ mtc1 $at, $f6 +/* 09D344 7F068814 00000000 */ nop +/* 09D348 7F068818 46065280 */ add.s $f10, $f10, $f6 +.L7F06881C: +/* 09D34C 7F06881C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D350 7F068820 44814000 */ mtc1 $at, $f8 +/* 09D354 7F068824 3C018005 */ lui $at, %hi(D_800543CC) +/* 09D358 7F068828 C42443CC */ lwc1 $f4, %lo(D_800543CC)($at) +/* 09D35C 7F06882C 46085002 */ mul.s $f0, $f10, $f8 +/* 09D360 7F068830 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D364 7F068834 44815000 */ mtc1 $at, $f10 +/* 09D368 7F068838 3C018005 */ lui $at, %hi(D_800543D0) +/* 09D36C 7F06883C 27A40054 */ addiu $a0, $sp, 0x54 +/* 09D370 7F068840 2605005C */ addiu $a1, $s0, 0x5c +/* 09D374 7F068844 46000480 */ add.s $f18, $f0, $f0 +/* 09D378 7F068848 46049182 */ mul.s $f6, $f18, $f4 +/* 09D37C 7F06884C C43243D0 */ lwc1 $f18, %lo(D_800543D0)($at) +/* 09D380 7F068850 460A3202 */ mul.s $f8, $f6, $f10 +/* 09D384 7F068854 46124101 */ sub.s $f4, $f8, $f18 +/* 09D388 7F068858 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 09D38C 7F06885C E7A4005C */ swc1 $f4, 0x5c($sp) +/* 09D390 7F068860 0C002914 */ jal get_random_value +/* 09D394 7F068864 00000000 */ nop +/* 09D398 7F068868 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 +/* 09D39C 7F06886C 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 +/* 09D3A0 7F068870 00026E02 */ srl $t5, $v0, 0x18 +/* 09D3A4 7F068874 01A30019 */ multu $t5, $v1 +/* 09D3A8 7F068878 00007012 */ mflo $t6 +/* 09D3AC 7F06887C 000E7A83 */ sra $t7, $t6, 0xa +/* 09D3B0 7F068880 01E3C021 */ addu $t8, $t7, $v1 +/* 09D3B4 7F068884 0C002914 */ jal get_random_value +/* 09D3B8 7F068888 AFB8004C */ sw $t8, 0x4c($sp) +/* 09D3BC 7F06888C 8FB9004C */ lw $t9, 0x4c($sp) +/* 09D3C0 7F068890 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 09D3C4 7F068894 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D3C8 7F068898 0059001B */ divu $zero, $v0, $t9 +/* 09D3CC 7F06889C 00005010 */ mfhi $t2 +/* 09D3D0 7F0688A0 448A3000 */ mtc1 $t2, $f6 +/* 09D3D4 7F0688A4 17200002 */ bnez $t9, .L7F0688B0 +/* 09D3D8 7F0688A8 00000000 */ nop +/* 09D3DC 7F0688AC 0007000D */ break 7 +.L7F0688B0: +/* 09D3E0 7F0688B0 3C048008 */ lui $a0, %hi(pPlayer) +/* 09D3E4 7F0688B4 05410004 */ bgez $t2, .L7F0688C8 +/* 09D3E8 7F0688B8 468032A0 */ cvt.s.w $f10, $f6 +/* 09D3EC 7F0688BC 44814000 */ mtc1 $at, $f8 +/* 09D3F0 7F0688C0 00000000 */ nop +/* 09D3F4 7F0688C4 46085280 */ add.s $f10, $f10, $f8 +.L7F0688C8: +/* 09D3F8 7F0688C8 3C018005 */ lui $at, %hi(D_800543D4) +/* 09D3FC 7F0688CC C43243D4 */ lwc1 $f18, %lo(D_800543D4)($at) +/* 09D400 7F0688D0 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_pistol) +/* 09D404 7F0688D4 C42443D8 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_pistol)($at) +/* 09D408 7F0688D8 46125003 */ div.s $f0, $f10, $f18 +/* 09D40C 7F0688DC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D410 7F0688E0 44819000 */ mtc1 $at, $f18 +/* 09D414 7F0688E4 C60E0010 */ lwc1 $f14, 0x10($s0) +/* 09D418 7F0688E8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 09D41C 7F0688EC 3C088005 */ lui $t0, %hi(clock_timer) +/* 09D420 7F0688F0 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 09D424 7F0688F4 46040182 */ mul.s $f6, $f0, $f4 +/* 09D428 7F0688F8 46066081 */ sub.s $f2, $f12, $f6 +/* 09D42C 7F0688FC C6060008 */ lwc1 $f6, 8($s0) +/* 09D430 7F068900 46026200 */ add.s $f8, $f12, $f2 +/* 09D434 7F068904 E6020014 */ swc1 $f2, 0x14($s0) +/* 09D438 7F068908 46080282 */ mul.s $f10, $f0, $f8 +/* 09D43C 7F06890C 00000000 */ nop +/* 09D440 7F068910 46125102 */ mul.s $f4, $f10, $f18 +/* 09D444 7F068914 C60A0004 */ lwc1 $f10, 4($s0) +/* 09D448 7F068918 460E0482 */ mul.s $f18, $f0, $f14 +/* 09D44C 7F06891C 46043200 */ add.s $f8, $f6, $f4 +/* 09D450 7F068920 C604000C */ lwc1 $f4, 0xc($s0) +/* 09D454 7F068924 46125180 */ add.s $f6, $f10, $f18 +/* 09D458 7F068928 E6080008 */ swc1 $f8, 8($s0) +/* 09D45C 7F06892C 46100202 */ mul.s $f8, $f0, $f16 +/* 09D460 7F068930 E6060004 */ swc1 $f6, 4($s0) +/* 09D464 7F068934 46082280 */ add.s $f10, $f4, $f8 +/* 09D468 7F068938 E60A000C */ swc1 $f10, 0xc($s0) +/* 09D46C 7F06893C 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 09D470 7F068940 190000F2 */ blez $t0, .L7F068D0C +/* 09D474 7F068944 00000000 */ nop +/* 09D478 7F068948 8C890000 */ lw $t1, ($a0) +/* 09D47C 7F06894C 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 09D480 7F068950 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 09D484 7F068954 01311021 */ addu $v0, $t1, $s1 +/* 09D488 7F068958 C4520B08 */ lwc1 $f18, 0xb08($v0) +/* 09D48C 7F06895C C4460B48 */ lwc1 $f6, 0xb48($v0) +/* 09D490 7F068960 C4680000 */ lwc1 $f8, ($v1) +/* 09D494 7F068964 46069101 */ sub.s $f4, $f18, $f6 +/* 09D498 7F068968 46082283 */ div.s $f10, $f4, $f8 +/* 09D49C 7F06896C 460A7480 */ add.s $f18, $f14, $f10 +/* 09D4A0 7F068970 E6120010 */ swc1 $f18, 0x10($s0) +/* 09D4A4 7F068974 8C8B0000 */ lw $t3, ($a0) +/* 09D4A8 7F068978 C46A0000 */ lwc1 $f10, ($v1) +/* 09D4AC 7F06897C 01711021 */ addu $v0, $t3, $s1 +/* 09D4B0 7F068980 C4460B0C */ lwc1 $f6, 0xb0c($v0) +/* 09D4B4 7F068984 C4440B4C */ lwc1 $f4, 0xb4c($v0) +/* 09D4B8 7F068988 46043201 */ sub.s $f8, $f6, $f4 +/* 09D4BC 7F06898C C6060014 */ lwc1 $f6, 0x14($s0) +/* 09D4C0 7F068990 460A4483 */ div.s $f18, $f8, $f10 +/* 09D4C4 7F068994 46123100 */ add.s $f4, $f6, $f18 +/* 09D4C8 7F068998 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D4CC 7F06899C 8C8C0000 */ lw $t4, ($a0) +/* 09D4D0 7F0689A0 C4720000 */ lwc1 $f18, ($v1) +/* 09D4D4 7F0689A4 01911021 */ addu $v0, $t4, $s1 +/* 09D4D8 7F0689A8 C4480B10 */ lwc1 $f8, 0xb10($v0) +/* 09D4DC 7F0689AC C44A0B50 */ lwc1 $f10, 0xb50($v0) +/* 09D4E0 7F0689B0 460A4181 */ sub.s $f6, $f8, $f10 +/* 09D4E4 7F0689B4 46123103 */ div.s $f4, $f6, $f18 +/* 09D4E8 7F0689B8 46048200 */ add.s $f8, $f16, $f4 +/* 09D4EC 7F0689BC 100000D3 */ b .L7F068D0C +/* 09D4F0 7F0689C0 E6080018 */ swc1 $f8, 0x18($s0) +.L7F0689C4: +/* 09D4F4 7F0689C4 0C002914 */ jal get_random_value +/* 09D4F8 7F0689C8 00000000 */ nop +/* 09D4FC 7F0689CC 44825000 */ mtc1 $v0, $f10 +/* 09D500 7F0689D0 3C018005 */ lui $at, %hi(D_800543DC) +/* 09D504 7F0689D4 C42043DC */ lwc1 $f0, %lo(D_800543DC)($at) +/* 09D508 7F0689D8 04410005 */ bgez $v0, .L7F0689F0 +/* 09D50C 7F0689DC 468051A0 */ cvt.s.w $f6, $f10 +/* 09D510 7F0689E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D514 7F0689E4 44819000 */ mtc1 $at, $f18 +/* 09D518 7F0689E8 00000000 */ nop +/* 09D51C 7F0689EC 46123180 */ add.s $f6, $f6, $f18 +.L7F0689F0: +/* 09D520 7F0689F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D524 7F0689F4 44812000 */ mtc1 $at, $f4 +/* 09D528 7F0689F8 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 09D52C 7F0689FC 44819000 */ mtc1 $at, $f18 +/* 09D530 7F068A00 46043202 */ mul.s $f8, $f6, $f4 +/* 09D534 7F068A04 00000000 */ nop +/* 09D538 7F068A08 46004282 */ mul.s $f10, $f8, $f0 +/* 09D53C 7F068A0C 00000000 */ nop +/* 09D540 7F068A10 46125182 */ mul.s $f6, $f10, $f18 +/* 09D544 7F068A14 46003100 */ add.s $f4, $f6, $f0 +/* 09D548 7F068A18 46002207 */ neg.s $f8, $f4 +/* 09D54C 7F068A1C 0C002914 */ jal get_random_value +/* 09D550 7F068A20 E6080010 */ swc1 $f8, 0x10($s0) +/* 09D554 7F068A24 44825000 */ mtc1 $v0, $f10 +/* 09D558 7F068A28 3C018005 */ lui $at, %hi(D_800543E0) +/* 09D55C 7F068A2C C42043E0 */ lwc1 $f0, %lo(D_800543E0)($at) +/* 09D560 7F068A30 04410005 */ bgez $v0, .L7F068A48 +/* 09D564 7F068A34 468054A0 */ cvt.s.w $f18, $f10 +/* 09D568 7F068A38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D56C 7F068A3C 44813000 */ mtc1 $at, $f6 +/* 09D570 7F068A40 00000000 */ nop +/* 09D574 7F068A44 46069480 */ add.s $f18, $f18, $f6 +.L7F068A48: +/* 09D578 7F068A48 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D57C 7F068A4C 44812000 */ mtc1 $at, $f4 +/* 09D580 7F068A50 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 09D584 7F068A54 44813000 */ mtc1 $at, $f6 +/* 09D588 7F068A58 46049202 */ mul.s $f8, $f18, $f4 +/* 09D58C 7F068A5C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09D590 7F068A60 26050010 */ addiu $a1, $s0, 0x10 +/* 09D594 7F068A64 46004282 */ mul.s $f10, $f8, $f0 +/* 09D598 7F068A68 44804000 */ mtc1 $zero, $f8 +/* 09D59C 7F068A6C 00000000 */ nop +/* 09D5A0 7F068A70 E6080018 */ swc1 $f8, 0x18($s0) +/* 09D5A4 7F068A74 46065482 */ mul.s $f18, $f10, $f6 +/* 09D5A8 7F068A78 46009100 */ add.s $f4, $f18, $f0 +/* 09D5AC 7F068A7C E6040014 */ swc1 $f4, 0x14($s0) +/* 09D5B0 7F068A80 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09D5B4 7F068A84 01B12021 */ addu $a0, $t5, $s1 +/* 09D5B8 7F068A88 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 09D5BC 7F068A8C 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D5C0 7F068A90 0C002914 */ jal get_random_value +/* 09D5C4 7F068A94 00000000 */ nop +/* 09D5C8 7F068A98 44825000 */ mtc1 $v0, $f10 +/* 09D5CC 7F068A9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D5D0 7F068AA0 04410004 */ bgez $v0, .L7F068AB4 +/* 09D5D4 7F068AA4 468051A0 */ cvt.s.w $f6, $f10 +/* 09D5D8 7F068AA8 44819000 */ mtc1 $at, $f18 +/* 09D5DC 7F068AAC 00000000 */ nop +/* 09D5E0 7F068AB0 46123180 */ add.s $f6, $f6, $f18 +.L7F068AB4: +/* 09D5E4 7F068AB4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D5E8 7F068AB8 44812000 */ mtc1 $at, $f4 +/* 09D5EC 7F068ABC 3C018005 */ lui $at, %hi(D_800543E4) +/* 09D5F0 7F068AC0 C42A43E4 */ lwc1 $f10, %lo(D_800543E4)($at) +/* 09D5F4 7F068AC4 46043002 */ mul.s $f0, $f6, $f4 +/* 09D5F8 7F068AC8 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D5FC 7F068ACC 44813000 */ mtc1 $at, $f6 +/* 09D600 7F068AD0 3C018005 */ lui $at, %hi(D_800543E8) +/* 09D604 7F068AD4 46000200 */ add.s $f8, $f0, $f0 +/* 09D608 7F068AD8 460A4482 */ mul.s $f18, $f8, $f10 +/* 09D60C 7F068ADC C42843E8 */ lwc1 $f8, %lo(D_800543E8)($at) +/* 09D610 7F068AE0 46069102 */ mul.s $f4, $f18, $f6 +/* 09D614 7F068AE4 46082281 */ sub.s $f10, $f4, $f8 +/* 09D618 7F068AE8 0C002914 */ jal get_random_value +/* 09D61C 7F068AEC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 09D620 7F068AF0 44829000 */ mtc1 $v0, $f18 +/* 09D624 7F068AF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D628 7F068AF8 04410004 */ bgez $v0, .L7F068B0C +/* 09D62C 7F068AFC 468091A0 */ cvt.s.w $f6, $f18 +/* 09D630 7F068B00 44812000 */ mtc1 $at, $f4 +/* 09D634 7F068B04 00000000 */ nop +/* 09D638 7F068B08 46043180 */ add.s $f6, $f6, $f4 +.L7F068B0C: +/* 09D63C 7F068B0C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D640 7F068B10 44814000 */ mtc1 $at, $f8 +/* 09D644 7F068B14 3C018005 */ lui $at, %hi(D_800543EC) +/* 09D648 7F068B18 C43243EC */ lwc1 $f18, %lo(D_800543EC)($at) +/* 09D64C 7F068B1C 46083002 */ mul.s $f0, $f6, $f8 +/* 09D650 7F068B20 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D654 7F068B24 44813000 */ mtc1 $at, $f6 +/* 09D658 7F068B28 3C018005 */ lui $at, %hi(D_800543F0) +/* 09D65C 7F068B2C 46000280 */ add.s $f10, $f0, $f0 +/* 09D660 7F068B30 46125102 */ mul.s $f4, $f10, $f18 +/* 09D664 7F068B34 C42A43F0 */ lwc1 $f10, %lo(D_800543F0)($at) +/* 09D668 7F068B38 46062202 */ mul.s $f8, $f4, $f6 +/* 09D66C 7F068B3C 460A4481 */ sub.s $f18, $f8, $f10 +/* 09D670 7F068B40 0C002914 */ jal get_random_value +/* 09D674 7F068B44 E7B20058 */ swc1 $f18, 0x58($sp) +/* 09D678 7F068B48 44822000 */ mtc1 $v0, $f4 +/* 09D67C 7F068B4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D680 7F068B50 04410004 */ bgez $v0, .L7F068B64 +/* 09D684 7F068B54 468021A0 */ cvt.s.w $f6, $f4 +/* 09D688 7F068B58 44814000 */ mtc1 $at, $f8 +/* 09D68C 7F068B5C 00000000 */ nop +/* 09D690 7F068B60 46083180 */ add.s $f6, $f6, $f8 +.L7F068B64: +/* 09D694 7F068B64 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D698 7F068B68 44815000 */ mtc1 $at, $f10 +/* 09D69C 7F068B6C 3C018005 */ lui $at, %hi(D_800543F4) +/* 09D6A0 7F068B70 C42443F4 */ lwc1 $f4, %lo(D_800543F4)($at) +/* 09D6A4 7F068B74 460A3002 */ mul.s $f0, $f6, $f10 +/* 09D6A8 7F068B78 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D6AC 7F068B7C 44813000 */ mtc1 $at, $f6 +/* 09D6B0 7F068B80 3C018005 */ lui $at, %hi(D_800543F8) +/* 09D6B4 7F068B84 27A40054 */ addiu $a0, $sp, 0x54 +/* 09D6B8 7F068B88 2605005C */ addiu $a1, $s0, 0x5c +/* 09D6BC 7F068B8C 46000480 */ add.s $f18, $f0, $f0 +/* 09D6C0 7F068B90 46049202 */ mul.s $f8, $f18, $f4 +/* 09D6C4 7F068B94 C43243F8 */ lwc1 $f18, %lo(D_800543F8)($at) +/* 09D6C8 7F068B98 46064282 */ mul.s $f10, $f8, $f6 +/* 09D6CC 7F068B9C 46125101 */ sub.s $f4, $f10, $f18 +/* 09D6D0 7F068BA0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 09D6D4 7F068BA4 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 09D6D8 7F068BA8 0C002914 */ jal get_random_value +/* 09D6DC 7F068BAC 00000000 */ nop +/* 09D6E0 7F068BB0 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 +/* 09D6E4 7F068BB4 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 +/* 09D6E8 7F068BB8 00027602 */ srl $t6, $v0, 0x18 +/* 09D6EC 7F068BBC 01C30019 */ multu $t6, $v1 +/* 09D6F0 7F068BC0 00007812 */ mflo $t7 +/* 09D6F4 7F068BC4 000FC283 */ sra $t8, $t7, 0xa +/* 09D6F8 7F068BC8 0303C821 */ addu $t9, $t8, $v1 +/* 09D6FC 7F068BCC 0C002914 */ jal get_random_value +/* 09D700 7F068BD0 AFB9003C */ sw $t9, 0x3c($sp) +/* 09D704 7F068BD4 8FAA003C */ lw $t2, 0x3c($sp) +/* 09D708 7F068BD8 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 09D70C 7F068BDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D710 7F068BE0 004A001B */ divu $zero, $v0, $t2 +/* 09D714 7F068BE4 00004010 */ mfhi $t0 +/* 09D718 7F068BE8 44884000 */ mtc1 $t0, $f8 +/* 09D71C 7F068BEC 15400002 */ bnez $t2, .L7F068BF8 +/* 09D720 7F068BF0 00000000 */ nop +/* 09D724 7F068BF4 0007000D */ break 7 +.L7F068BF8: +/* 09D728 7F068BF8 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 09D72C 7F068BFC 05010004 */ bgez $t0, .L7F068C10 +/* 09D730 7F068C00 468041A0 */ cvt.s.w $f6, $f8 +/* 09D734 7F068C04 44815000 */ mtc1 $at, $f10 +/* 09D738 7F068C08 00000000 */ nop +/* 09D73C 7F068C0C 460A3180 */ add.s $f6, $f6, $f10 +.L7F068C10: +/* 09D740 7F068C10 3C018005 */ lui $at, %hi(D_800543FC) +/* 09D744 7F068C14 C43243FC */ lwc1 $f18, %lo(D_800543FC)($at) +/* 09D748 7F068C18 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_non_pistol) +/* 09D74C 7F068C1C C4244400 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_non_pistol)($at) +/* 09D750 7F068C20 46123003 */ div.s $f0, $f6, $f18 +/* 09D754 7F068C24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D758 7F068C28 44819000 */ mtc1 $at, $f18 +/* 09D75C 7F068C2C C60E0010 */ lwc1 $f14, 0x10($s0) +/* 09D760 7F068C30 C6100018 */ lwc1 $f16, 0x18($s0) +/* 09D764 7F068C34 3C098005 */ lui $t1, %hi(clock_timer) +/* 09D768 7F068C38 46040202 */ mul.s $f8, $f0, $f4 +/* 09D76C 7F068C3C 46086081 */ sub.s $f2, $f12, $f8 +/* 09D770 7F068C40 C6080008 */ lwc1 $f8, 8($s0) +/* 09D774 7F068C44 46026280 */ add.s $f10, $f12, $f2 +/* 09D778 7F068C48 E6020014 */ swc1 $f2, 0x14($s0) +/* 09D77C 7F068C4C 460A0182 */ mul.s $f6, $f0, $f10 +/* 09D780 7F068C50 00000000 */ nop +/* 09D784 7F068C54 46123102 */ mul.s $f4, $f6, $f18 +/* 09D788 7F068C58 C6060004 */ lwc1 $f6, 4($s0) +/* 09D78C 7F068C5C 460E0482 */ mul.s $f18, $f0, $f14 +/* 09D790 7F068C60 46044280 */ add.s $f10, $f8, $f4 +/* 09D794 7F068C64 C604000C */ lwc1 $f4, 0xc($s0) +/* 09D798 7F068C68 46123200 */ add.s $f8, $f6, $f18 +/* 09D79C 7F068C6C E60A0008 */ swc1 $f10, 8($s0) +/* 09D7A0 7F068C70 46100282 */ mul.s $f10, $f0, $f16 +/* 09D7A4 7F068C74 E6080004 */ swc1 $f8, 4($s0) +/* 09D7A8 7F068C78 460A2180 */ add.s $f6, $f4, $f10 +/* 09D7AC 7F068C7C E606000C */ swc1 $f6, 0xc($s0) +/* 09D7B0 7F068C80 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 09D7B4 7F068C84 19200021 */ blez $t1, .L7F068D0C +/* 09D7B8 7F068C88 00000000 */ nop +/* 09D7BC 7F068C8C 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 09D7C0 7F068C90 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 09D7C4 7F068C94 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 09D7C8 7F068C98 01711021 */ addu $v0, $t3, $s1 +/* 09D7CC 7F068C9C C4520B08 */ lwc1 $f18, 0xb08($v0) +/* 09D7D0 7F068CA0 C4480B48 */ lwc1 $f8, 0xb48($v0) +/* 09D7D4 7F068CA4 C46A0000 */ lwc1 $f10, ($v1) +/* 09D7D8 7F068CA8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09D7DC 7F068CAC 46089101 */ sub.s $f4, $f18, $f8 +/* 09D7E0 7F068CB0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09D7E4 7F068CB4 460A2183 */ div.s $f6, $f4, $f10 +/* 09D7E8 7F068CB8 46067480 */ add.s $f18, $f14, $f6 +/* 09D7EC 7F068CBC E6120010 */ swc1 $f18, 0x10($s0) +/* 09D7F0 7F068CC0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09D7F4 7F068CC4 C4660000 */ lwc1 $f6, ($v1) +/* 09D7F8 7F068CC8 01911021 */ addu $v0, $t4, $s1 +/* 09D7FC 7F068CCC C4480B0C */ lwc1 $f8, 0xb0c($v0) +/* 09D800 7F068CD0 C4440B4C */ lwc1 $f4, 0xb4c($v0) +/* 09D804 7F068CD4 46044281 */ sub.s $f10, $f8, $f4 +/* 09D808 7F068CD8 C6080014 */ lwc1 $f8, 0x14($s0) +/* 09D80C 7F068CDC 46065483 */ div.s $f18, $f10, $f6 +/* 09D810 7F068CE0 46124100 */ add.s $f4, $f8, $f18 +/* 09D814 7F068CE4 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D818 7F068CE8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09D81C 7F068CEC C4720000 */ lwc1 $f18, ($v1) +/* 09D820 7F068CF0 01B11021 */ addu $v0, $t5, $s1 +/* 09D824 7F068CF4 C44A0B10 */ lwc1 $f10, 0xb10($v0) +/* 09D828 7F068CF8 C4460B50 */ lwc1 $f6, 0xb50($v0) +/* 09D82C 7F068CFC 46065201 */ sub.s $f8, $f10, $f6 +/* 09D830 7F068D00 46124103 */ div.s $f4, $f8, $f18 +/* 09D834 7F068D04 46048280 */ add.s $f10, $f16, $f4 +/* 09D838 7F068D08 E60A0018 */ swc1 $f10, 0x18($s0) +.L7F068D0C: +/* 09D83C 7F068D0C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F068D10: +/* 09D840 7F068D10 8FB00014 */ lw $s0, 0x14($sp) +/* 09D844 7F068D14 8FB10018 */ lw $s1, 0x18($sp) +/* 09D848 7F068D18 03E00008 */ jr $ra +/* 09D84C 7F068D1C 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068D20(void) { + +} +#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(global_timer_delta) +/* 09D854 7F068D24 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 09D858 7F068D28 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) +/* 09D85C 7F068D2C C4244404 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) +/* 09D860 7F068D30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09D864 7F068D34 AFBF0024 */ sw $ra, 0x24($sp) +/* 09D868 7F068D38 46041182 */ mul.s $f6, $f2, $f4 +/* 09D86C 7F068D3C AFB30020 */ sw $s3, 0x20($sp) +/* 09D870 7F068D40 AFB2001C */ sw $s2, 0x1c($sp) +/* 09D874 7F068D44 AFB10018 */ sw $s1, 0x18($sp) +/* 09D878 7F068D48 AFB00014 */ sw $s0, 0x14($sp) +/* 09D87C 7F068D4C C4800014 */ lwc1 $f0, 0x14($a0) +/* 09D880 7F068D50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D884 7F068D54 44814000 */ mtc1 $at, $f8 +/* 09D888 7F068D58 46060301 */ sub.s $f12, $f0, $f6 +/* 09D88C 7F068D5C C4840008 */ lwc1 $f4, 8($a0) +/* 09D890 7F068D60 46081282 */ mul.s $f10, $f2, $f8 +/* 09D894 7F068D64 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075DB0) +/* 09D898 7F068D68 460C0400 */ add.s $f16, $f0, $f12 +/* 09D89C 7F068D6C 00803825 */ move $a3, $a0 +/* 09D8A0 7F068D70 24C65DB0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x5db0 +/* 09D8A4 7F068D74 46105482 */ mul.s $f18, $f10, $f16 +/* 09D8A8 7F068D78 C48A0000 */ lwc1 $f10, ($a0) +/* 09D8AC 7F068D7C 46122180 */ add.s $f6, $f4, $f18 +/* 09D8B0 7F068D80 E4860008 */ swc1 $f6, 8($a0) +/* 09D8B4 7F068D84 C4880008 */ lwc1 $f8, 8($a0) +/* 09D8B8 7F068D88 460A403C */ c.lt.s $f8, $f10 +/* 09D8BC 7F068D8C 00000000 */ nop +/* 09D8C0 7F068D90 45020016 */ bc1fl .L7F068DEC +/* 09D8C4 7F068D94 C4E40010 */ lwc1 $f4, 0x10($a3) +/* 09D8C8 7F068D98 8CCE0000 */ lw $t6, ($a2) +/* 09D8CC 7F068D9C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09D8D0 7F068DA0 15C0000F */ bnez $t6, .L7F068DE0 +/* 09D8D4 7F068DA4 00000000 */ nop +/* 09D8D8 7F068DA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09D8DC 7F068DAC 24030002 */ li $v1, 2 +/* 09D8E0 7F068DB0 8C4F0894 */ lw $t7, 0x894($v0) +/* 09D8E4 7F068DB4 106F000A */ beq $v1, $t7, .L7F068DE0 +/* 09D8E8 7F068DB8 00000000 */ nop +/* 09D8EC 7F068DBC 8C580C3C */ lw $t8, 0xc3c($v0) +/* 09D8F0 7F068DC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09D8F4 7F068DC4 2405007A */ li $a1, 122 +/* 09D8F8 7F068DC8 10780005 */ beq $v1, $t8, .L7F068DE0 +/* 09D8FC 7F068DCC 00000000 */ nop +/* 09D900 7F068DD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09D904 7F068DD4 0C002382 */ jal play_sfx_a1 +/* 09D908 7F068DD8 AFA70028 */ sw $a3, 0x28($sp) +/* 09D90C 7F068DDC 8FA70028 */ lw $a3, 0x28($sp) +.L7F068DE0: +/* 09D910 7F068DE0 1000001B */ b .L7F068E50 +/* 09D914 7F068DE4 ACE0009C */ sw $zero, 0x9c($a3) +/* 09D918 7F068DE8 C4E40010 */ lwc1 $f4, 0x10($a3) +.L7F068DEC: +/* 09D91C 7F068DEC C4EA0018 */ lwc1 $f10, 0x18($a3) +/* 09D920 7F068DF0 C4F00004 */ lwc1 $f16, 4($a3) +/* 09D924 7F068DF4 46041482 */ mul.s $f18, $f2, $f4 +/* 09D928 7F068DF8 C4E8000C */ lwc1 $f8, 0xc($a3) +/* 09D92C 7F068DFC 3C138005 */ lui $s3, %hi(clock_timer) +/* 09D930 7F068E00 460A1102 */ mul.s $f4, $f2, $f10 +/* 09D934 7F068E04 26738374 */ addiu $s3, %lo(clock_timer) # addiu $s3, $s3, -0x7c8c +/* 09D938 7F068E08 E4EC0014 */ swc1 $f12, 0x14($a3) +/* 09D93C 7F068E0C 00008025 */ move $s0, $zero +/* 09D940 7F068E10 24F1005C */ addiu $s1, $a3, 0x5c +/* 09D944 7F068E14 46128180 */ add.s $f6, $f16, $f18 +/* 09D948 7F068E18 24F2001C */ addiu $s2, $a3, 0x1c +/* 09D94C 7F068E1C 46044400 */ add.s $f16, $f8, $f4 +/* 09D950 7F068E20 E4E60004 */ swc1 $f6, 4($a3) +/* 09D954 7F068E24 E4F0000C */ swc1 $f16, 0xc($a3) +/* 09D958 7F068E28 8E790000 */ lw $t9, ($s3) +/* 09D95C 7F068E2C 1B200008 */ blez $t9, .L7F068E50 +/* 09D960 7F068E30 02202025 */ move $a0, $s1 +.L7F068E34: +/* 09D964 7F068E34 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 09D968 7F068E38 02402825 */ move $a1, $s2 +/* 09D96C 7F068E3C 8E680000 */ lw $t0, ($s3) +/* 09D970 7F068E40 26100001 */ addiu $s0, $s0, 1 +/* 09D974 7F068E44 0208082A */ slt $at, $s0, $t0 +/* 09D978 7F068E48 5420FFFA */ bnezl $at, .L7F068E34 +/* 09D97C 7F068E4C 02202025 */ move $a0, $s1 +.L7F068E50: +/* 09D980 7F068E50 8FBF0024 */ lw $ra, 0x24($sp) +/* 09D984 7F068E54 8FB00014 */ lw $s0, 0x14($sp) +/* 09D988 7F068E58 8FB10018 */ lw $s1, 0x18($sp) +/* 09D98C 7F068E5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 09D990 7F068E60 8FB30020 */ lw $s3, 0x20($sp) +/* 09D994 7F068E64 03E00008 */ jr $ra +/* 09D998 7F068E68 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#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(global_timer_delta) # $at, 0x8005 +/* 09DE6C 7F0692FC C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($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(clock_timer) # $s3, 0x8005 +/* 09DEE8 7F069378 267383A4 */ addiu $s3, %lo(clock_timer) # 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(pPlayer) # $v0, 0x8008 +/* 09DEFC 7F06938C 19E0000F */ blez $t7, .Ljp7F0693CC +/* 09DF00 7F069390 00000000 */ nop +/* 09DF04 7F069394 8C42A120 */ lw $v0, %lo(pPlayer)($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(ptr_sfx_buf) # $a0, 0x8006 +/* 09DF20 7F0693B0 2405007A */ li $a1, 122 +/* 09DF24 7F0693B4 10790005 */ beq $v1, $t9, .Ljp7F0693CC +/* 09DF28 7F0693B8 00000000 */ nop +/* 09DF2C 7F0693BC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09DF30 7F0693C0 0C002386 */ jal play_sfx_a1 +/* 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(clock_timer) # $s3, 0x8005 +/* 09DF5C 7F0693EC 460A1102 */ mul.s $f4, $f2, $f10 +/* 09DF60 7F0693F0 267383A4 */ addiu $s3, %lo(clock_timer) # 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 + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F068E6C(void) { + +} +#else +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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068EC4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054408 +.word 0x3dccccce /*0.10000001*/ +glabel D_8005440C +.word 0xc6ea6000 /*-30000.0*/ +glabel D_80054410 +.word 0x46ea6000 /*30000.0*/ +.text +glabel sub_GAME_7F068EC4 +/* 09D9F4 7F068EC4 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 09D9F8 7F068EC8 AFBF001C */ sw $ra, 0x1c($sp) +/* 09D9FC 7F068ECC AFB00018 */ sw $s0, 0x18($sp) +/* 09DA00 7F068ED0 AFA400E8 */ sw $a0, 0xe8($sp) +/* 09DA04 7F068ED4 AFA500EC */ sw $a1, 0xec($sp) +/* 09DA08 7F068ED8 8CAF0000 */ lw $t7, ($a1) +/* 09DA0C 7F068EDC AFAF00E4 */ sw $t7, 0xe4($sp) +/* 09DA10 7F068EE0 8C82009C */ lw $v0, 0x9c($a0) +/* 09DA14 7F068EE4 8444000E */ lh $a0, 0xe($v0) +/* 09DA18 7F068EE8 AFA200E0 */ sw $v0, 0xe0($sp) +/* 09DA1C 7F068EEC 0004C980 */ sll $t9, $a0, 6 +/* 09DA20 7F068EF0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09DA24 7F068EF4 03202025 */ move $a0, $t9 +/* 09DA28 7F068EF8 3C098003 */ lui $t1, %hi(D_80035EB0) +/* 09DA2C 7F068EFC 25295EB0 */ addiu $t1, %lo(D_80035EB0) # addiu $t1, $t1, 0x5eb0 +/* 09DA30 7F068F00 AFA200DC */ sw $v0, 0xdc($sp) +/* 09DA34 7F068F04 252C003C */ addiu $t4, $t1, 0x3c +/* 09DA38 7F068F08 27A8007C */ addiu $t0, $sp, 0x7c +.L7F068F0C: +/* 09DA3C 7F068F0C 8D210000 */ lw $at, ($t1) +/* 09DA40 7F068F10 2529000C */ addiu $t1, $t1, 0xc +/* 09DA44 7F068F14 2508000C */ addiu $t0, $t0, 0xc +/* 09DA48 7F068F18 AD01FFF4 */ sw $at, -0xc($t0) +/* 09DA4C 7F068F1C 8D21FFF8 */ lw $at, -8($t1) +/* 09DA50 7F068F20 AD01FFF8 */ sw $at, -8($t0) +/* 09DA54 7F068F24 8D21FFFC */ lw $at, -4($t1) +/* 09DA58 7F068F28 152CFFF8 */ bne $t1, $t4, .L7F068F0C +/* 09DA5C 7F068F2C AD01FFFC */ sw $at, -4($t0) +/* 09DA60 7F068F30 8D210000 */ lw $at, ($t1) +/* 09DA64 7F068F34 24100001 */ li $s0, 1 +/* 09DA68 7F068F38 AD010000 */ sw $at, ($t0) +/* 09DA6C 7F068F3C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 09DA70 7F068F40 8FA400E0 */ lw $a0, 0xe0($sp) +/* 09DA74 7F068F44 27A400BC */ addiu $a0, $sp, 0xbc +/* 09DA78 7F068F48 8FA500E0 */ lw $a1, 0xe0($sp) +/* 09DA7C 7F068F4C 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 09DA80 7F068F50 00003025 */ move $a2, $zero +/* 09DA84 7F068F54 8FAD00DC */ lw $t5, 0xdc($sp) +/* 09DA88 7F068F58 8FA400E8 */ lw $a0, 0xe8($sp) +/* 09DA8C 7F068F5C 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DA90 7F068F60 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 09DA94 7F068F64 0FC16008 */ jal matrix_4x4_copy +/* 09DA98 7F068F68 2484001C */ addiu $a0, $a0, 0x1c +/* 09DA9C 7F068F6C 3C018005 */ lui $at, %hi(D_80054408) +/* 09DAA0 7F068F70 C42C4408 */ lwc1 $f12, %lo(D_80054408)($at) +/* 09DAA4 7F068F74 0FC1629F */ jal matrix_scalar_multiply +/* 09DAA8 7F068F78 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DAAC 7F068F7C 8FA400E8 */ lw $a0, 0xe8($sp) +/* 09DAB0 7F068F80 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DAB4 7F068F84 0FC16266 */ jal matrix_4x4_set_position +/* 09DAB8 7F068F88 24840004 */ addiu $a0, $a0, 4 +/* 09DABC 7F068F8C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 09DAC0 7F068F90 00000000 */ nop +/* 09DAC4 7F068F94 00402025 */ move $a0, $v0 +/* 09DAC8 7F068F98 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DACC 7F068F9C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 09DAD0 7F068FA0 8FA600C8 */ lw $a2, 0xc8($sp) +/* 09DAD4 7F068FA4 3C018005 */ lui $at, %hi(D_8005440C) +/* 09DAD8 7F068FA8 C42C440C */ lwc1 $f12, %lo(D_8005440C)($at) +/* 09DADC 7F068FAC 3C018005 */ lui $at, %hi(D_80054410) +/* 09DAE0 7F068FB0 C4224410 */ lwc1 $f2, %lo(D_80054410)($at) +/* 09DAE4 7F068FB4 00001025 */ move $v0, $zero +/* 09DAE8 7F068FB8 8FA300C8 */ lw $v1, 0xc8($sp) +/* 09DAEC 7F068FBC 2404000C */ li $a0, 12 +.L7F068FC0: +/* 09DAF0 7F068FC0 C4600030 */ lwc1 $f0, 0x30($v1) +/* 09DAF4 7F068FC4 24420004 */ addiu $v0, $v0, 4 +/* 09DAF8 7F068FC8 4600103C */ c.lt.s $f2, $f0 +/* 09DAFC 7F068FCC 00000000 */ nop +/* 09DB00 7F068FD0 45020004 */ bc1fl .L7F068FE4 +/* 09DB04 7F068FD4 460C003C */ c.lt.s $f0, $f12 +/* 09DB08 7F068FD8 10000006 */ b .L7F068FF4 +/* 09DB0C 7F068FDC 00008025 */ move $s0, $zero +/* 09DB10 7F068FE0 460C003C */ c.lt.s $f0, $f12 +.L7F068FE4: +/* 09DB14 7F068FE4 00000000 */ nop +/* 09DB18 7F068FE8 45000002 */ bc1f .L7F068FF4 +/* 09DB1C 7F068FEC 00000000 */ nop +/* 09DB20 7F068FF0 00008025 */ move $s0, $zero +.L7F068FF4: +/* 09DB24 7F068FF4 1444FFF2 */ bne $v0, $a0, .L7F068FC0 +/* 09DB28 7F068FF8 24630004 */ addiu $v1, $v1, 4 +/* 09DB2C 7F068FFC 1200001E */ beqz $s0, .L7F069078 +/* 09DB30 7F069000 24180004 */ li $t8, 4 +/* 09DB34 7F069004 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 09DB38 7F069008 8FAF00DC */ lw $t7, 0xdc($sp) +/* 09DB3C 7F06900C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DB40 7F069010 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DB44 7F069014 AFA00080 */ sw $zero, 0x80($sp) +/* 09DB48 7F069018 AFB800AC */ sw $t8, 0xac($sp) +/* 09DB4C 7F06901C AFAE0088 */ sw $t6, 0x88($sp) +/* 09DB50 7F069020 AFAF008C */ sw $t7, 0x8c($sp) +/* 09DB54 7F069024 904B0FDC */ lbu $t3, 0xfdc($v0) +/* 09DB58 7F069028 90490FDD */ lbu $t1, 0xfdd($v0) +/* 09DB5C 7F06902C 90590FDF */ lbu $t9, 0xfdf($v0) +/* 09DB60 7F069030 904E0FDE */ lbu $t6, 0xfde($v0) +/* 09DB64 7F069034 000B5600 */ sll $t2, $t3, 0x18 +/* 09DB68 7F069038 00094400 */ sll $t0, $t1, 0x10 +/* 09DB6C 7F06903C 032A6025 */ or $t4, $t9, $t2 +/* 09DB70 7F069040 01886825 */ or $t5, $t4, $t0 +/* 09DB74 7F069044 000E7A00 */ sll $t7, $t6, 8 +/* 09DB78 7F069048 01AFC025 */ or $t8, $t5, $t7 +/* 09DB7C 7F06904C AFB800B0 */ sw $t8, 0xb0($sp) +/* 09DB80 7F069050 27A4007C */ addiu $a0, $sp, 0x7c +/* 09DB84 7F069054 0FC1D1A1 */ jal subdraw +/* 09DB88 7F069058 27A500BC */ addiu $a1, $sp, 0xbc +/* 09DB8C 7F06905C 8FAB0088 */ lw $t3, 0x88($sp) +/* 09DB90 7F069060 8FB900EC */ lw $t9, 0xec($sp) +/* 09DB94 7F069064 AF2B0000 */ sw $t3, ($t9) +/* 09DB98 7F069068 8FAA00E0 */ lw $t2, 0xe0($sp) +/* 09DB9C 7F06906C 8FA400DC */ lw $a0, 0xdc($sp) +/* 09DBA0 7F069070 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 09DBA4 7F069074 8545000E */ lh $a1, 0xe($t2) +.L7F069078: +/* 09DBA8 7F069078 8FBF001C */ lw $ra, 0x1c($sp) +/* 09DBAC 7F06907C 8FB00018 */ lw $s0, 0x18($sp) +/* 09DBB0 7F069080 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 09DBB4 7F069084 03E00008 */ jr $ra +/* 09DBB8 7F069088 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06908C(void) { + +} +#else +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 + + + + + +#ifdef NONMATCHING +void set_unset_ammo_on_screen_setting(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_unset_ammo_on_screen_setting +/* 09DC24 7F0690F4 10A00008 */ beqz $a1, .L7F069118 +/* 09DC28 7F0690F8 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DC2C 7F0690FC 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DC30 7F069100 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DC34 7F069104 00807827 */ not $t7, $a0 +/* 09DC38 7F069108 8C4E1064 */ lw $t6, 0x1064($v0) +/* 09DC3C 7F06910C 01CFC024 */ and $t8, $t6, $t7 +/* 09DC40 7F069110 03E00008 */ jr $ra +/* 09DC44 7F069114 AC581064 */ sw $t8, 0x1064($v0) + +.L7F069118: +/* 09DC48 7F069118 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DC4C 7F06911C 8C591064 */ lw $t9, 0x1064($v0) +/* 09DC50 7F069120 03244025 */ or $t0, $t9, $a0 +/* 09DC54 7F069124 AC481064 */ sw $t0, 0x1064($v0) +/* 09DC58 7F069128 03E00008 */ jr $ra +/* 09DC5C 7F06912C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void give_cur_player_ammo(void) { + +} +#else +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 get_item_in_hand +/* 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(pPlayer) +/* 09DCA0 7F069170 8C63A0B0 */ lw $v1, %lo(pPlayer)($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(pPlayer) +/* 09DCC0 7F069190 8C63A0B0 */ lw $v1, %lo(pPlayer)($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(pPlayer) +/* 09DCE4 7F0691B4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 09DCE8 7F0691B8 84490020 */ lh $t1, 0x20($v0) +/* 09DCEC 7F0691BC 3C038008 */ lui $v1, %hi(pPlayer) +/* 09DCF0 7F0691C0 AD49089C */ sw $t1, 0x89c($t2) +/* 09DCF4 7F0691C4 8C63A0B0 */ lw $v1, %lo(pPlayer)($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(pPlayer) +/* 09DD28 7F0691F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 09DD2C 7F0691FC 0043082A */ slt $at, $v0, $v1 +/* 09DD30 7F069200 10200006 */ beqz $at, .L7F06921C +/* 09DD34 7F069204 00000000 */ nop +/* 09DD38 7F069208 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void check_cur_player_ammo_amount_in_inventory(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cur_player_ammo_amount_in_inventory +/* 09DD70 7F069240 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DD74 7F069244 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DD78 7F069248 00047880 */ sll $t7, $a0, 2 +/* 09DD7C 7F06924C 01CFC021 */ addu $t8, $t6, $t7 +/* 09DD80 7F069250 03E00008 */ jr $ra +/* 09DD84 7F069254 8F021130 */ lw $v0, 0x1130($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void check_cur_player_ammo_amount_total(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cur_player_ammo_amount_total +/* 09DD88 7F069258 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09DD8C 7F06925C AFBF001C */ sw $ra, 0x1c($sp) +/* 09DD90 7F069260 AFB00018 */ sw $s0, 0x18($sp) +/* 09DD94 7F069264 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 09DD98 7F069268 AFA40020 */ sw $a0, 0x20($sp) +/* 09DD9C 7F06926C 00408025 */ move $s0, $v0 +/* 09DDA0 7F069270 0FC17674 */ jal get_item_in_hand +/* 09DDA4 7F069274 00002025 */ move $a0, $zero +/* 09DDA8 7F069278 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09DDAC 7F06927C 00402025 */ move $a0, $v0 +/* 09DDB0 7F069280 8FAE0020 */ lw $t6, 0x20($sp) +/* 09DDB4 7F069284 144E0004 */ bne $v0, $t6, .L7F069298 +/* 09DDB8 7F069288 00000000 */ nop +/* 09DDBC 7F06928C 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 09DDC0 7F069290 00002025 */ move $a0, $zero +/* 09DDC4 7F069294 02028021 */ addu $s0, $s0, $v0 +.L7F069298: +/* 09DDC8 7F069298 0FC17674 */ jal get_item_in_hand +/* 09DDCC 7F06929C 24040001 */ li $a0, 1 +/* 09DDD0 7F0692A0 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09DDD4 7F0692A4 00402025 */ move $a0, $v0 +/* 09DDD8 7F0692A8 8FAF0020 */ lw $t7, 0x20($sp) +/* 09DDDC 7F0692AC 544F0005 */ bnel $v0, $t7, .L7F0692C4 +/* 09DDE0 7F0692B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 09DDE4 7F0692B4 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 09DDE8 7F0692B8 24040001 */ li $a0, 1 +/* 09DDEC 7F0692BC 02028021 */ addu $s0, $s0, $v0 +/* 09DDF0 7F0692C0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0692C4: +/* 09DDF4 7F0692C4 02001025 */ move $v0, $s0 +/* 09DDF8 7F0692C8 8FB00018 */ lw $s0, 0x18($sp) +/* 09DDFC 7F0692CC 03E00008 */ jr $ra +/* 09DE00 7F0692D0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void get_max_ammo_for_type(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void set_max_ammo_for_cur_player(void) { + +} +#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) { + +} +#else +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(pPlayer) +/* 09DE88 7F069358 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void get_ammo_in_hands_weapon(void) { + +} +#else +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 get_item_in_hand +/* 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 get_item_in_hand +/* 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(pPlayer) +/* 09DF10 7F0693E0 8F18A0B0 */ lw $t8, %lo(pPlayer)($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 + + + + + +#ifdef NONMATCHING +void get_ammo_type_for_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_type_for_weapon +/* 09DF5C 7F06942C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DF60 7F069430 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DF64 7F069434 0FC1722D */ jal get_ptr_item_statistics +/* 09DF68 7F069438 00000000 */ nop +/* 09DF6C 7F06943C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DF70 7F069440 8C42001C */ lw $v0, 0x1c($v0) +/* 09DF74 7F069444 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09DF78 7F069448 03E00008 */ jr $ra +/* 09DF7C 7F06944C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_ammo_count_for_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_count_for_weapon +/* 09DF80 7F069450 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DF84 7F069454 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DF88 7F069458 0FC1722D */ jal get_ptr_item_statistics +/* 09DF8C 7F06945C 00000000 */ nop +/* 09DF90 7F069460 8C4F001C */ lw $t7, 0x1c($v0) +/* 09DF94 7F069464 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DF98 7F069468 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DF9C 7F06946C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DFA0 7F069470 000FC080 */ sll $t8, $t7, 2 +/* 09DFA4 7F069474 01D8C821 */ addu $t9, $t6, $t8 +/* 09DFA8 7F069478 8F221130 */ lw $v0, 0x1130($t9) +/* 09DFAC 7F06947C 03E00008 */ jr $ra +/* 09DFB0 7F069480 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void add_ammo_to_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_ammo_to_weapon +/* 09DFB4 7F069484 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DFB8 7F069488 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DFBC 7F06948C 0FC1722D */ jal get_ptr_item_statistics +/* 09DFC0 7F069490 AFA5001C */ sw $a1, 0x1c($sp) +/* 09DFC4 7F069494 8C44001C */ lw $a0, 0x1c($v0) +/* 09DFC8 7F069498 0FC1A44C */ jal give_cur_player_ammo +/* 09DFCC 7F06949C 8FA5001C */ lw $a1, 0x1c($sp) +/* 09DFD0 7F0694A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DFD4 7F0694A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09DFD8 7F0694A8 03E00008 */ jr $ra +/* 09DFDC 7F0694AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_max_ammo_for_weapon(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void *microcode_generation_ammo_related(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7, ?32 arg8, ?32 arg9, ?32 argA, ?32 argB) { + f32 spA8; + f32 spAC; + f32 spB0; + f32 spB4; + f32 temp_f4; + f32 temp_f4_2; + f32 temp_f18; + f32 temp_f10; + f32 temp_f6; + f32 temp_f18_2; + f32 temp_f16; + s32 phi_t9; + f32 phi_f4; + f32 phi_f18; + s32 phi_t2; + f32 phi_f18_2; + f32 phi_f16; + ? phi_a2; + + // Node 0 + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc0; + *arg0 = 0xba000602; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001301; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xb9000002; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001001; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000c02; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc00; + *arg0 = 0xba000903; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000e02; + phi_t9 = ((s32) arg1->unk4 >> 1); + if (arg1->unk4 < 0) + { + // Node 1 + phi_t9 = ((s32) (arg1->unk4 + 1) >> 1); + } + // Node 2 + temp_f4 = (((f32) (u32) arg1->unk4 * 0.5f) - (f32) phi_t9); + spB0 = temp_f4; + if (arg5 != 0) + { + // Node 3 + spB0 = (f32) -temp_f4; + } + // Node 4 + spB0 = (f32) (spB0 + arg2); + if (0.0f <= arg3) + { + // Node 5 + temp_f4_2 = (f32) arg1->unk5; + phi_f4 = temp_f4_2; + if (arg1->unk5 < 0) + { + // Node 6 + phi_f4 = (temp_f4_2 + 4294967296.0f); + } + // Node 7 + spB4 = (f32) (arg3 - (phi_f4 * 0.5f)); + } + else + { + // Node 8 + temp_f18 = (f32) arg1->unk5; + phi_f18 = temp_f18; + if (arg1->unk5 < 0) + { + // Node 9 + phi_f18 = (temp_f18 + 4294967296.0f); + } + // Node 10 + phi_t2 = ((s32) arg1->unk5 >> 1); + if (arg1->unk5 < 0) + { + // Node 11 + phi_t2 = ((s32) (arg1->unk5 + 1) >> 1); + } + // Node 12 + temp_f10 = ((phi_f18 * 0.5f) - (f32) phi_t2); + temp_f6 = (arg4 - temp_f10); + spB4 = (f32) -temp_f10; + spB4 = temp_f6; + spB4 = (f32) (temp_f6 + arg6); + } + // Node 13 + temp_f18_2 = (f32) arg1->unk4; + phi_f18_2 = temp_f18_2; + if (arg1->unk4 < 0) + { + // Node 14 + phi_f18_2 = (temp_f18_2 + 4294967296.0f); + } + // Node 15 + spA8 = (f32) (phi_f18_2 * 0.5f); + temp_f16 = (f32) arg1->unk5; + phi_f16 = temp_f16; + if (arg1->unk5 < 0) + { + // Node 16 + phi_f16 = (temp_f16 + 4294967296.0f); + } + // Node 17 + arg0 = (void *) (arg0 + 8); + spAC = (f32) (phi_f16 * 0.5f); + arg0->unk4 = 0; + *arg0 = 0xe7000000; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001402; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x504240; + *arg0 = 0xb900031d; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xfffdf6fb; + *arg0 = 0xfcffffff; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xfa000000; + arg0 = (void *) (arg0 + 8); + *arg0 = (s32) ((((((s32) (spAC + spB4) + 1) & 0x3ff) * 4) | 0xf6000000) | ((((s32) (spB0 + spA8) + 1) & 0x3ff) << 0xe)); + arg0->unk4 = (s32) (((((s32) (spB4 - spAC) + -1) & 0x3ff) * 4) | ((((s32) (spB0 - spA8) + -1) & 0x3ff) << 0xe)); + phi_a2 = 1; + if (arg7 != 0) + { + // Node 18 + phi_a2 = 2; + } + // Node 19 + likely_generate_DL_for_image_declaration(arg3, arg2, &arg0, arg1, phi_a2, 0, 0); + display_image_at_on_screen_coord(&arg0, &spB0, &spA8, arg1->unk4, (s32) arg1->unk5, 0, 0, 1, arg8, arg9, argA, argB, (s32) (0 < arg1->unk6), 0); + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xe7000000; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x40; + *arg0 = 0xba000602; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x80000; + *arg0 = 0xba001301; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xb9000002; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x10000; + *arg0 = 0xba001001; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x2000; + *arg0 = 0xba000c02; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc00; + *arg0 = 0xba000903; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000e02; + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel microcode_generation_ammo_related +/* 09E018 7F0694E8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 09E01C 7F0694EC AFA400B8 */ sw $a0, 0xb8($sp) +/* 09E020 7F0694F0 248F0008 */ addiu $t7, $a0, 8 +/* 09E024 7F0694F4 AFBF0044 */ sw $ra, 0x44($sp) +/* 09E028 7F0694F8 AFB00040 */ sw $s0, 0x40($sp) +/* 09E02C 7F0694FC AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E030 7F069500 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 09E034 7F069504 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 09E038 7F069508 241900C0 */ li $t9, 192 +/* 09E03C 7F06950C AC990004 */ sw $t9, 4($a0) +/* 09E040 7F069510 AC980000 */ sw $t8, ($a0) +/* 09E044 7F069514 8FA800B8 */ lw $t0, 0xb8($sp) +/* 09E048 7F069518 3C0ABA00 */ lui $t2, (0xBA001301 >> 16) # lui $t2, 0xba00 +/* 09E04C 7F06951C 354A1301 */ ori $t2, (0xBA001301 & 0xFFFF) # ori $t2, $t2, 0x1301 +/* 09E050 7F069520 25090008 */ addiu $t1, $t0, 8 +/* 09E054 7F069524 AFA900B8 */ sw $t1, 0xb8($sp) +/* 09E058 7F069528 AD000004 */ sw $zero, 4($t0) +/* 09E05C 7F06952C AD0A0000 */ sw $t2, ($t0) +/* 09E060 7F069530 8FAB00B8 */ lw $t3, 0xb8($sp) +/* 09E064 7F069534 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 09E068 7F069538 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 09E06C 7F06953C 256C0008 */ addiu $t4, $t3, 8 +/* 09E070 7F069540 AFAC00B8 */ sw $t4, 0xb8($sp) +/* 09E074 7F069544 AD600004 */ sw $zero, 4($t3) +/* 09E078 7F069548 AD6D0000 */ sw $t5, ($t3) +/* 09E07C 7F06954C 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E080 7F069550 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 09E084 7F069554 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 09E088 7F069558 25CF0008 */ addiu $t7, $t6, 8 +/* 09E08C 7F06955C AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E090 7F069560 ADC00004 */ sw $zero, 4($t6) +/* 09E094 7F069564 ADD80000 */ sw $t8, ($t6) +/* 09E098 7F069568 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E09C 7F06956C 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00 +/* 09E0A0 7F069570 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02 +/* 09E0A4 7F069574 27280008 */ addiu $t0, $t9, 8 +/* 09E0A8 7F069578 AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E0AC 7F06957C AF200004 */ sw $zero, 4($t9) +/* 09E0B0 7F069580 AF290000 */ sw $t1, ($t9) +/* 09E0B4 7F069584 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 09E0B8 7F069588 3C0CBA00 */ lui $t4, (0xBA000903 >> 16) # lui $t4, 0xba00 +/* 09E0BC 7F06958C 358C0903 */ ori $t4, (0xBA000903 & 0xFFFF) # ori $t4, $t4, 0x903 +/* 09E0C0 7F069590 254B0008 */ addiu $t3, $t2, 8 +/* 09E0C4 7F069594 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E0C8 7F069598 240D0C00 */ li $t5, 3072 +/* 09E0CC 7F06959C AD4D0004 */ sw $t5, 4($t2) +/* 09E0D0 7F0695A0 AD4C0000 */ sw $t4, ($t2) +/* 09E0D4 7F0695A4 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E0D8 7F0695A8 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 09E0DC 7F0695AC 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 09E0E0 7F0695B0 25CF0008 */ addiu $t7, $t6, 8 +/* 09E0E4 7F0695B4 AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E0E8 7F0695B8 ADC00004 */ sw $zero, 4($t6) +/* 09E0EC 7F0695BC ADD80000 */ sw $t8, ($t6) +/* 09E0F0 7F0695C0 90A40004 */ lbu $a0, 4($a1) +/* 09E0F4 7F0695C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09E0F8 7F0695C8 44867000 */ mtc1 $a2, $f14 +/* 09E0FC 7F0695CC 44842000 */ mtc1 $a0, $f4 +/* 09E100 7F0695D0 44876000 */ mtc1 $a3, $f12 +/* 09E104 7F0695D4 44810000 */ mtc1 $at, $f0 +/* 09E108 7F0695D8 00A08025 */ move $s0, $a1 +/* 09E10C 7F0695DC 04810005 */ bgez $a0, .L7F0695F4 +/* 09E110 7F0695E0 468021A0 */ cvt.s.w $f6, $f4 +/* 09E114 7F0695E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E118 7F0695E8 44814000 */ mtc1 $at, $f8 +/* 09E11C 7F0695EC 00000000 */ nop +/* 09E120 7F0695F0 46083180 */ add.s $f6, $f6, $f8 +.L7F0695F4: +/* 09E124 7F0695F4 46003282 */ mul.s $f10, $f6, $f0 +/* 09E128 7F0695F8 04810003 */ bgez $a0, .L7F069608 +/* 09E12C 7F0695FC 0004C843 */ sra $t9, $a0, 1 +/* 09E130 7F069600 24810001 */ addiu $at, $a0, 1 +/* 09E134 7F069604 0001C843 */ sra $t9, $at, 1 +.L7F069608: +/* 09E138 7F069608 44998000 */ mtc1 $t9, $f16 +/* 09E13C 7F06960C 8FA800CC */ lw $t0, 0xcc($sp) +/* 09E140 7F069610 3C0FE700 */ lui $t7, 0xe700 +/* 09E144 7F069614 468084A0 */ cvt.s.w $f18, $f16 +/* 09E148 7F069618 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 09E14C 7F06961C 02002825 */ move $a1, $s0 +/* 09E150 7F069620 00003825 */ move $a3, $zero +/* 09E154 7F069624 46125101 */ sub.s $f4, $f10, $f18 +/* 09E158 7F069628 44805000 */ mtc1 $zero, $f10 +/* 09E15C 7F06962C 11000003 */ beqz $t0, .L7F06963C +/* 09E160 7F069630 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 09E164 7F069634 46002207 */ neg.s $f8, $f4 +/* 09E168 7F069638 E7A800B0 */ swc1 $f8, 0xb0($sp) +.L7F06963C: +/* 09E16C 7F06963C C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 09E170 7F069640 460C503E */ c.le.s $f10, $f12 +/* 09E174 7F069644 3C08BA00 */ lui $t0, (0xBA001402 >> 16) # lui $t0, 0xba00 +/* 09E178 7F069648 460E3400 */ add.s $f16, $f6, $f14 +/* 09E17C 7F06964C 4500000D */ bc1f .L7F069684 +/* 09E180 7F069650 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 09E184 7F069654 92090005 */ lbu $t1, 5($s0) +/* 09E188 7F069658 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E18C 7F06965C 44899000 */ mtc1 $t1, $f18 +/* 09E190 7F069660 05210004 */ bgez $t1, .L7F069674 +/* 09E194 7F069664 46809120 */ cvt.s.w $f4, $f18 +/* 09E198 7F069668 44814000 */ mtc1 $at, $f8 +/* 09E19C 7F06966C 00000000 */ nop +/* 09E1A0 7F069670 46082100 */ add.s $f4, $f4, $f8 +.L7F069674: +/* 09E1A4 7F069674 46002182 */ mul.s $f6, $f4, $f0 +/* 09E1A8 7F069678 46066401 */ sub.s $f16, $f12, $f6 +/* 09E1AC 7F06967C 10000019 */ b .L7F0696E4 +/* 09E1B0 7F069680 E7B000B4 */ swc1 $f16, 0xb4($sp) +.L7F069684: +/* 09E1B4 7F069684 92020005 */ lbu $v0, 5($s0) +/* 09E1B8 7F069688 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E1BC 7F06968C 44825000 */ mtc1 $v0, $f10 +/* 09E1C0 7F069690 04410004 */ bgez $v0, .L7F0696A4 +/* 09E1C4 7F069694 468054A0 */ cvt.s.w $f18, $f10 +/* 09E1C8 7F069698 44814000 */ mtc1 $at, $f8 +/* 09E1CC 7F06969C 00000000 */ nop +/* 09E1D0 7F0696A0 46089480 */ add.s $f18, $f18, $f8 +.L7F0696A4: +/* 09E1D4 7F0696A4 46009102 */ mul.s $f4, $f18, $f0 +/* 09E1D8 7F0696A8 04410003 */ bgez $v0, .L7F0696B8 +/* 09E1DC 7F0696AC 00025043 */ sra $t2, $v0, 1 +/* 09E1E0 7F0696B0 24410001 */ addiu $at, $v0, 1 +/* 09E1E4 7F0696B4 00015043 */ sra $t2, $at, 1 +.L7F0696B8: +/* 09E1E8 7F0696B8 448A3000 */ mtc1 $t2, $f6 +/* 09E1EC 7F0696BC C7B200C8 */ lwc1 $f18, 0xc8($sp) +/* 09E1F0 7F0696C0 46803420 */ cvt.s.w $f16, $f6 +/* 09E1F4 7F0696C4 46102281 */ sub.s $f10, $f4, $f16 +/* 09E1F8 7F0696C8 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 09E1FC 7F0696CC 460A9181 */ sub.s $f6, $f18, $f10 +/* 09E200 7F0696D0 46005207 */ neg.s $f8, $f10 +/* 09E204 7F0696D4 46043400 */ add.s $f16, $f6, $f4 +/* 09E208 7F0696D8 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 09E20C 7F0696DC E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 09E210 7F0696E0 E7B000B4 */ swc1 $f16, 0xb4($sp) +.L7F0696E4: +/* 09E214 7F0696E4 920B0004 */ lbu $t3, 4($s0) +/* 09E218 7F0696E8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E21C 7F0696EC 24060001 */ li $a2, 1 +/* 09E220 7F0696F0 448B4000 */ mtc1 $t3, $f8 +/* 09E224 7F0696F4 05610004 */ bgez $t3, .L7F069708 +/* 09E228 7F0696F8 468044A0 */ cvt.s.w $f18, $f8 +/* 09E22C 7F0696FC 44815000 */ mtc1 $at, $f10 +/* 09E230 7F069700 00000000 */ nop +/* 09E234 7F069704 460A9480 */ add.s $f18, $f18, $f10 +.L7F069708: +/* 09E238 7F069708 46009182 */ mul.s $f6, $f18, $f0 +/* 09E23C 7F06970C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E240 7F069710 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 09E244 7F069714 920C0005 */ lbu $t4, 5($s0) +/* 09E248 7F069718 448C2000 */ mtc1 $t4, $f4 +/* 09E24C 7F06971C 05810004 */ bgez $t4, .L7F069730 +/* 09E250 7F069720 46802420 */ cvt.s.w $f16, $f4 +/* 09E254 7F069724 44814000 */ mtc1 $at, $f8 +/* 09E258 7F069728 00000000 */ nop +/* 09E25C 7F06972C 46088400 */ add.s $f16, $f16, $f8 +.L7F069730: +/* 09E260 7F069730 46008282 */ mul.s $f10, $f16, $f0 +/* 09E264 7F069734 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 09E268 7F069738 35081402 */ ori $t0, (0xBA001402 & 0xFFFF) # ori $t0, $t0, 0x1402 +/* 09E26C 7F06973C 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 09E270 7F069740 25AE0008 */ addiu $t6, $t5, 8 +/* 09E274 7F069744 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 09E278 7F069748 3C0C0050 */ lui $t4, (0x00504240 >> 16) # lui $t4, 0x50 +/* 09E27C 7F06974C E7AA00AC */ swc1 $f10, 0xac($sp) +/* 09E280 7F069750 ADA00004 */ sw $zero, 4($t5) +/* 09E284 7F069754 ADAF0000 */ sw $t7, ($t5) +/* 09E288 7F069758 8FB800B8 */ lw $t8, 0xb8($sp) +/* 09E28C 7F06975C 358C4240 */ ori $t4, (0x00504240 & 0xFFFF) # ori $t4, $t4, 0x4240 +/* 09E290 7F069760 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 09E294 7F069764 27190008 */ addiu $t9, $t8, 8 +/* 09E298 7F069768 AFB900B8 */ sw $t9, 0xb8($sp) +/* 09E29C 7F06976C AF000004 */ sw $zero, 4($t8) +/* 09E2A0 7F069770 AF080000 */ sw $t0, ($t8) +/* 09E2A4 7F069774 8FA900B8 */ lw $t1, 0xb8($sp) +/* 09E2A8 7F069778 3C18FFFD */ lui $t8, (0xFFFDF6FB >> 16) # lui $t8, 0xfffd +/* 09E2AC 7F06977C 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 09E2B0 7F069780 252A0008 */ addiu $t2, $t1, 8 +/* 09E2B4 7F069784 AFAA00B8 */ sw $t2, 0xb8($sp) +/* 09E2B8 7F069788 AD2C0004 */ sw $t4, 4($t1) +/* 09E2BC 7F06978C AD2B0000 */ sw $t3, ($t1) +/* 09E2C0 7F069790 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 09E2C4 7F069794 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 09E2C8 7F069798 3718F6FB */ ori $t8, (0xFFFDF6FB & 0xFFFF) # ori $t8, $t8, 0xf6fb +/* 09E2CC 7F06979C 25AE0008 */ addiu $t6, $t5, 8 +/* 09E2D0 7F0697A0 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 09E2D4 7F0697A4 ADB80004 */ sw $t8, 4($t5) +/* 09E2D8 7F0697A8 ADAF0000 */ sw $t7, ($t5) +/* 09E2DC 7F0697AC 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E2E0 7F0697B0 3C09FA00 */ lui $t1, 0xfa00 +/* 09E2E4 7F0697B4 3C01F600 */ lui $at, 0xf600 +/* 09E2E8 7F0697B8 27280008 */ addiu $t0, $t9, 8 +/* 09E2EC 7F0697BC AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E2F0 7F0697C0 AF200004 */ sw $zero, 4($t9) +/* 09E2F4 7F0697C4 AF290000 */ sw $t1, ($t9) +/* 09E2F8 7F0697C8 C7B200AC */ lwc1 $f18, 0xac($sp) +/* 09E2FC 7F0697CC C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 09E300 7F0697D0 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 09E304 7F0697D4 C7B000B0 */ lwc1 $f16, 0xb0($sp) +/* 09E308 7F0697D8 46069100 */ add.s $f4, $f18, $f6 +/* 09E30C 7F0697DC 8FA200B8 */ lw $v0, 0xb8($sp) +/* 09E310 7F0697E0 460A8480 */ add.s $f18, $f16, $f10 +/* 09E314 7F0697E4 244B0008 */ addiu $t3, $v0, 8 +/* 09E318 7F0697E8 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E31C 7F0697EC 4600220D */ trunc.w.s $f8, $f4 +/* 09E320 7F0697F0 4600918D */ trunc.w.s $f6, $f18 +/* 09E324 7F0697F4 440D4000 */ mfc1 $t5, $f8 +/* 09E328 7F0697F8 44093000 */ mfc1 $t1, $f6 +/* 09E32C 7F0697FC 25AE0001 */ addiu $t6, $t5, 1 +/* 09E330 7F069800 31CF03FF */ andi $t7, $t6, 0x3ff +/* 09E334 7F069804 252A0001 */ addiu $t2, $t1, 1 +/* 09E338 7F069808 314B03FF */ andi $t3, $t2, 0x3ff +/* 09E33C 7F06980C 000FC080 */ sll $t8, $t7, 2 +/* 09E340 7F069810 0301C825 */ or $t9, $t8, $at +/* 09E344 7F069814 000B6380 */ sll $t4, $t3, 0xe +/* 09E348 7F069818 032C6825 */ or $t5, $t9, $t4 +/* 09E34C 7F06981C AC4D0000 */ sw $t5, ($v0) +/* 09E350 7F069820 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 09E354 7F069824 C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 09E358 7F069828 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 09E35C 7F06982C C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 09E360 7F069830 46082401 */ sub.s $f16, $f4, $f8 +/* 09E364 7F069834 46069101 */ sub.s $f4, $f18, $f6 +/* 09E368 7F069838 4600828D */ trunc.w.s $f10, $f16 +/* 09E36C 7F06983C 4600220D */ trunc.w.s $f8, $f4 +/* 09E370 7F069840 440F5000 */ mfc1 $t7, $f10 +/* 09E374 7F069844 440B4000 */ mfc1 $t3, $f8 +/* 09E378 7F069848 25F8FFFF */ addiu $t8, $t7, -1 +/* 09E37C 7F06984C 330803FF */ andi $t0, $t8, 0x3ff +/* 09E380 7F069850 2579FFFF */ addiu $t9, $t3, -1 +/* 09E384 7F069854 332C03FF */ andi $t4, $t9, 0x3ff +/* 09E388 7F069858 000C6B80 */ sll $t5, $t4, 0xe +/* 09E38C 7F06985C 00084880 */ sll $t1, $t0, 2 +/* 09E390 7F069860 012D7025 */ or $t6, $t1, $t5 +/* 09E394 7F069864 AC4E0004 */ sw $t6, 4($v0) +/* 09E398 7F069868 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 09E39C 7F06986C 11E00003 */ beqz $t7, .L7F06987C +/* 09E3A0 7F069870 00000000 */ nop +/* 09E3A4 7F069874 10000001 */ b .L7F06987C +/* 09E3A8 7F069878 24060002 */ li $a2, 2 +.L7F06987C: +/* 09E3AC 7F06987C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 09E3B0 7F069880 AFA00010 */ sw $zero, 0x10($sp) +/* 09E3B4 7F069884 92180005 */ lbu $t8, 5($s0) +/* 09E3B8 7F069888 92070004 */ lbu $a3, 4($s0) +/* 09E3BC 7F06988C 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 09E3C0 7F069890 8FAB00DC */ lw $t3, 0xdc($sp) +/* 09E3C4 7F069894 8FB900E0 */ lw $t9, 0xe0($sp) +/* 09E3C8 7F069898 8FAC00E4 */ lw $t4, 0xe4($sp) +/* 09E3CC 7F06989C 24080001 */ li $t0, 1 +/* 09E3D0 7F0698A0 AFA8001C */ sw $t0, 0x1c($sp) +/* 09E3D4 7F0698A4 AFA00018 */ sw $zero, 0x18($sp) +/* 09E3D8 7F0698A8 AFA00014 */ sw $zero, 0x14($sp) +/* 09E3DC 7F0698AC AFB80010 */ sw $t8, 0x10($sp) +/* 09E3E0 7F0698B0 AFAA0020 */ sw $t2, 0x20($sp) +/* 09E3E4 7F0698B4 AFAB0024 */ sw $t3, 0x24($sp) +/* 09E3E8 7F0698B8 AFB90028 */ sw $t9, 0x28($sp) +/* 09E3EC 7F0698BC AFAC002C */ sw $t4, 0x2c($sp) +/* 09E3F0 7F0698C0 92090006 */ lbu $t1, 6($s0) +/* 09E3F4 7F0698C4 AFA00034 */ sw $zero, 0x34($sp) +/* 09E3F8 7F0698C8 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 09E3FC 7F0698CC 0009682A */ slt $t5, $zero, $t1 +/* 09E400 7F0698D0 AFAD0030 */ sw $t5, 0x30($sp) +/* 09E404 7F0698D4 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 09E408 7F0698D8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 09E40C 7F0698DC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 09E410 7F0698E0 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E414 7F0698E4 3C18E700 */ lui $t8, 0xe700 +/* 09E418 7F0698E8 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 09E41C 7F0698EC 25CF0008 */ addiu $t7, $t6, 8 +/* 09E420 7F0698F0 AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E424 7F0698F4 ADC00004 */ sw $zero, 4($t6) +/* 09E428 7F0698F8 ADD80000 */ sw $t8, ($t6) +/* 09E42C 7F0698FC 8FA800B8 */ lw $t0, 0xb8($sp) +/* 09E430 7F069900 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 09E434 7F069904 24190040 */ li $t9, 64 +/* 09E438 7F069908 250A0008 */ addiu $t2, $t0, 8 +/* 09E43C 7F06990C AFAA00B8 */ sw $t2, 0xb8($sp) +/* 09E440 7F069910 AD190004 */ sw $t9, 4($t0) +/* 09E444 7F069914 AD0B0000 */ sw $t3, ($t0) +/* 09E448 7F069918 8FAC00B8 */ lw $t4, 0xb8($sp) +/* 09E44C 7F06991C 3C0DBA00 */ lui $t5, (0xBA001301 >> 16) # lui $t5, 0xba00 +/* 09E450 7F069920 35AD1301 */ ori $t5, (0xBA001301 & 0xFFFF) # ori $t5, $t5, 0x1301 +/* 09E454 7F069924 25890008 */ addiu $t1, $t4, 8 +/* 09E458 7F069928 AFA900B8 */ sw $t1, 0xb8($sp) +/* 09E45C 7F06992C 3C0E0008 */ lui $t6, 8 +/* 09E460 7F069930 AD8E0004 */ sw $t6, 4($t4) +/* 09E464 7F069934 AD8D0000 */ sw $t5, ($t4) +/* 09E468 7F069938 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 09E46C 7F06993C 3C08B900 */ lui $t0, (0xB9000002 >> 16) # lui $t0, 0xb900 +/* 09E470 7F069940 35080002 */ ori $t0, (0xB9000002 & 0xFFFF) # ori $t0, $t0, 2 +/* 09E474 7F069944 25F80008 */ addiu $t8, $t7, 8 +/* 09E478 7F069948 AFB800B8 */ sw $t8, 0xb8($sp) +/* 09E47C 7F06994C ADE00004 */ sw $zero, 4($t7) +/* 09E480 7F069950 ADE80000 */ sw $t0, ($t7) +/* 09E484 7F069954 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 09E488 7F069958 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00 +/* 09E48C 7F06995C 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 09E490 7F069960 254B0008 */ addiu $t3, $t2, 8 +/* 09E494 7F069964 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E498 7F069968 3C0C0001 */ lui $t4, 1 +/* 09E49C 7F06996C AD4C0004 */ sw $t4, 4($t2) +/* 09E4A0 7F069970 AD590000 */ sw $t9, ($t2) +/* 09E4A4 7F069974 8FA900B8 */ lw $t1, 0xb8($sp) +/* 09E4A8 7F069978 3C0EBA00 */ lui $t6, (0xBA000C02 >> 16) # lui $t6, 0xba00 +/* 09E4AC 7F06997C 35CE0C02 */ ori $t6, (0xBA000C02 & 0xFFFF) # ori $t6, $t6, 0xc02 +/* 09E4B0 7F069980 252D0008 */ addiu $t5, $t1, 8 +/* 09E4B4 7F069984 AFAD00B8 */ sw $t5, 0xb8($sp) +/* 09E4B8 7F069988 240F2000 */ li $t7, 8192 +/* 09E4BC 7F06998C AD2F0004 */ sw $t7, 4($t1) +/* 09E4C0 7F069990 AD2E0000 */ sw $t6, ($t1) +/* 09E4C4 7F069994 8FB800B8 */ lw $t8, 0xb8($sp) +/* 09E4C8 7F069998 3C0ABA00 */ lui $t2, (0xBA000903 >> 16) # lui $t2, 0xba00 +/* 09E4CC 7F06999C 354A0903 */ ori $t2, (0xBA000903 & 0xFFFF) # ori $t2, $t2, 0x903 +/* 09E4D0 7F0699A0 27080008 */ addiu $t0, $t8, 8 +/* 09E4D4 7F0699A4 AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E4D8 7F0699A8 240B0C00 */ li $t3, 3072 +/* 09E4DC 7F0699AC AF0B0004 */ sw $t3, 4($t8) +/* 09E4E0 7F0699B0 AF0A0000 */ sw $t2, ($t8) +/* 09E4E4 7F0699B4 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E4E8 7F0699B8 3C09BA00 */ lui $t1, (0xBA000E02 >> 16) # lui $t1, 0xba00 +/* 09E4EC 7F0699BC 35290E02 */ ori $t1, (0xBA000E02 & 0xFFFF) # ori $t1, $t1, 0xe02 +/* 09E4F0 7F0699C0 272C0008 */ addiu $t4, $t9, 8 +/* 09E4F4 7F0699C4 AFAC00B8 */ sw $t4, 0xb8($sp) +/* 09E4F8 7F0699C8 AF200004 */ sw $zero, 4($t9) +/* 09E4FC 7F0699CC AF290000 */ sw $t1, ($t9) +/* 09E500 7F0699D0 8FBF0044 */ lw $ra, 0x44($sp) +/* 09E504 7F0699D4 8FB00040 */ lw $s0, 0x40($sp) +/* 09E508 7F0699D8 8FA200B8 */ lw $v0, 0xb8($sp) +/* 09E50C 7F0699DC 03E00008 */ jr $ra +/* 09E510 7F0699E0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void set_rgba_redirect_generate_microcode(? arg2, ? arg3, f32 arg4, ?32 arg5, f32 arg6, ?32 arg7) { + // Node 0 + return microcode_generation_ammo_related(arg2, arg3, arg2, arg3, arg4, arg5, arg6, arg7, 0xff, 0xff, 0xff, 0xff); +} +#else +GLOBAL_ASM( +.text +glabel set_rgba_redirect_generate_microcode +/* 09E514 7F0699E4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 09E518 7F0699E8 44866000 */ mtc1 $a2, $f12 +/* 09E51C 7F0699EC 44877000 */ mtc1 $a3, $f14 +/* 09E520 7F0699F0 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 09E524 7F0699F4 8FAE004C */ lw $t6, 0x4c($sp) +/* 09E528 7F0699F8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 09E52C 7F0699FC 8FAF0054 */ lw $t7, 0x54($sp) +/* 09E530 7F069A00 AFBF0034 */ sw $ra, 0x34($sp) +/* 09E534 7F069A04 241800FF */ li $t8, 255 +/* 09E538 7F069A08 241900FF */ li $t9, 255 +/* 09E53C 7F069A0C 240800FF */ li $t0, 255 +/* 09E540 7F069A10 240900FF */ li $t1, 255 +/* 09E544 7F069A14 44066000 */ mfc1 $a2, $f12 +/* 09E548 7F069A18 44077000 */ mfc1 $a3, $f14 +/* 09E54C 7F069A1C AFA9002C */ sw $t1, 0x2c($sp) +/* 09E550 7F069A20 AFA80028 */ sw $t0, 0x28($sp) +/* 09E554 7F069A24 AFB90024 */ sw $t9, 0x24($sp) +/* 09E558 7F069A28 AFB80020 */ sw $t8, 0x20($sp) +/* 09E55C 7F069A2C E7A40010 */ swc1 $f4, 0x10($sp) +/* 09E560 7F069A30 AFAE0014 */ sw $t6, 0x14($sp) +/* 09E564 7F069A34 E7A60018 */ swc1 $f6, 0x18($sp) +/* 09E568 7F069A38 0FC1A53A */ jal microcode_generation_ammo_related +/* 09E56C 7F069A3C AFAF001C */ sw $t7, 0x1c($sp) +/* 09E570 7F069A40 8FBF0034 */ lw $ra, 0x34($sp) +/* 09E574 7F069A44 27BD0038 */ addiu $sp, $sp, 0x38 +/* 09E578 7F069A48 03E00008 */ jr $ra +/* 09E57C 7F069A4C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 some_kind_of_display_routine(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 sp58; + s32 sp5C; + s32 temp_v1; + s32 temp_t0; + s32 temp_s0; + s32 phi_t8; + s32 phi_t4; + s32 phi_s0; + + // Node 0 + sp5C = 0; + sp58 = 0; + sp54 = 0; + sp50 = 0; + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, arg1, ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0); + if (arg3 == 1) + { + // Node 1 + sp5C = arg2; + sp54 = (s32) (arg2 + sp48); + } + else + { + // Node 2 + if (arg3 == 0) + { + // Node 3 + sp54 = arg2; + sp5C = (s32) (arg2 - sp48); + } + else + { + // Node 4 + if (arg3 == 2) + { + // Node 5 + phi_t8 = (sp48 >> 1); + if (sp48 < 0) + { + // Node 6 + phi_t8 = ((s32) (sp48 + 1) >> 1); + } + // Node 7 + temp_v1 = (phi_t8 + arg2); + sp5C = (s32) (temp_v1 - sp48); + sp54 = temp_v1; + } + } + } + // Node 8 + if (arg5 == 1) + { + // Node 9 + sp58 = arg4; + sp50 = (s32) (arg4 + sp4C); + } + else + { + // Node 10 + if (arg5 == 0) + { + // Node 11 + sp50 = arg4; + sp58 = (s32) (arg4 - sp4C); + } + else + { + // Node 12 + if (arg5 == 2) + { + // Node 13 + phi_t4 = (sp4C >> 1); + if (sp4C < 0) + { + // Node 14 + phi_t4 = ((s32) (sp4C + 1) >> 1); + } + // Node 15 + temp_t0 = (phi_t4 + arg4); + sp58 = (s32) (temp_t0 - sp4C); + sp50 = temp_t0; + } + } + } + // Node 16 + temp_s0 = draw_blackbox_to_screen(arg0, &sp5C, &sp58, &sp54, &sp50); + if (arg6 != 0) + { + // Node 17 + sp44 = get_video2_settings_txtClipW(); + phi_s0 = jp_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, -1, 0x646464ff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + else + { + // Node 18 + sp44 = get_video2_settings_txtClipW(); + phi_s0 = en_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0xff00b0, sp44, get_video2_settings_txtClipH(), 0, 0); + } + // Node 19 + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel some_kind_of_display_routine +/* 09E580 7F069A50 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 09E584 7F069A54 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 09E588 7F069A58 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 09E58C 7F069A5C AFB00038 */ sw $s0, 0x38($sp) +/* 09E590 7F069A60 AFA7006C */ sw $a3, 0x6c($sp) +/* 09E594 7F069A64 00808025 */ move $s0, $a0 +/* 09E598 7F069A68 AFBF003C */ sw $ra, 0x3c($sp) +/* 09E59C 7F069A6C AFA50064 */ sw $a1, 0x64($sp) +/* 09E5A0 7F069A70 AFA60068 */ sw $a2, 0x68($sp) +/* 09E5A4 7F069A74 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 09E5A8 7F069A78 AFA0005C */ sw $zero, 0x5c($sp) +/* 09E5AC 7F069A7C AFA00058 */ sw $zero, 0x58($sp) +/* 09E5B0 7F069A80 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 09E5B4 7F069A84 8FA60064 */ lw $a2, 0x64($sp) +/* 09E5B8 7F069A88 27A50048 */ addiu $a1, $sp, 0x48 +/* 09E5BC 7F069A8C 27A4004C */ addiu $a0, $sp, 0x4c +/* 09E5C0 7F069A90 AFA00014 */ sw $zero, 0x14($sp) +/* 09E5C4 7F069A94 AFA00054 */ sw $zero, 0x54($sp) +/* 09E5C8 7F069A98 AFA00050 */ sw $zero, 0x50($sp) +/* 09E5CC 7F069A9C AFA00048 */ sw $zero, 0x48($sp) +/* 09E5D0 7F069AA0 AFA0004C */ sw $zero, 0x4c($sp) +/* 09E5D4 7F069AA4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 09E5D8 7F069AA8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E5DC 7F069AAC 8FA3006C */ lw $v1, 0x6c($sp) +/* 09E5E0 7F069AB0 24040001 */ li $a0, 1 +/* 09E5E4 7F069AB4 8FA20068 */ lw $v0, 0x68($sp) +/* 09E5E8 7F069AB8 14640006 */ bne $v1, $a0, .L7F069AD4 +/* 09E5EC 7F069ABC 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E5F0 7F069AC0 8FA90048 */ lw $t1, 0x48($sp) +/* 09E5F4 7F069AC4 AFA2005C */ sw $v0, 0x5c($sp) +/* 09E5F8 7F069AC8 00491821 */ addu $v1, $v0, $t1 +/* 09E5FC 7F069ACC 10000012 */ b .L7F069B18 +/* 09E600 7F069AD0 AFA30054 */ sw $v1, 0x54($sp) +.L7F069AD4: +/* 09E604 7F069AD4 14600006 */ bnez $v1, .L7F069AF0 +/* 09E608 7F069AD8 24010002 */ li $at, 2 +/* 09E60C 7F069ADC 8FA90048 */ lw $t1, 0x48($sp) +/* 09E610 7F069AE0 AFA20054 */ sw $v0, 0x54($sp) +/* 09E614 7F069AE4 00497823 */ subu $t7, $v0, $t1 +/* 09E618 7F069AE8 1000000B */ b .L7F069B18 +/* 09E61C 7F069AEC AFAF005C */ sw $t7, 0x5c($sp) +.L7F069AF0: +/* 09E620 7F069AF0 14610009 */ bne $v1, $at, .L7F069B18 +/* 09E624 7F069AF4 8FA90048 */ lw $t1, 0x48($sp) +/* 09E628 7F069AF8 05210003 */ bgez $t1, .L7F069B08 +/* 09E62C 7F069AFC 0009C043 */ sra $t8, $t1, 1 +/* 09E630 7F069B00 25210001 */ addiu $at, $t1, 1 +/* 09E634 7F069B04 0001C043 */ sra $t8, $at, 1 +.L7F069B08: +/* 09E638 7F069B08 03021821 */ addu $v1, $t8, $v0 +/* 09E63C 7F069B0C 0069C823 */ subu $t9, $v1, $t1 +/* 09E640 7F069B10 AFB9005C */ sw $t9, 0x5c($sp) +/* 09E644 7F069B14 AFA30054 */ sw $v1, 0x54($sp) +.L7F069B18: +/* 09E648 7F069B18 8FA20074 */ lw $v0, 0x74($sp) +/* 09E64C 7F069B1C 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E650 7F069B20 27A70054 */ addiu $a3, $sp, 0x54 +/* 09E654 7F069B24 14440007 */ bne $v0, $a0, .L7F069B44 +/* 09E658 7F069B28 27AE0050 */ addiu $t6, $sp, 0x50 +/* 09E65C 7F069B2C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E660 7F069B30 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E664 7F069B34 AFA20058 */ sw $v0, 0x58($sp) +/* 09E668 7F069B38 004A4021 */ addu $t0, $v0, $t2 +/* 09E66C 7F069B3C 10000014 */ b .L7F069B90 +/* 09E670 7F069B40 AFA80050 */ sw $t0, 0x50($sp) +.L7F069B44: +/* 09E674 7F069B44 14400007 */ bnez $v0, .L7F069B64 +/* 09E678 7F069B48 24010002 */ li $at, 2 +/* 09E67C 7F069B4C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E680 7F069B50 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E684 7F069B54 AFA20050 */ sw $v0, 0x50($sp) +/* 09E688 7F069B58 004A5823 */ subu $t3, $v0, $t2 +/* 09E68C 7F069B5C 1000000C */ b .L7F069B90 +/* 09E690 7F069B60 AFAB0058 */ sw $t3, 0x58($sp) +.L7F069B64: +/* 09E694 7F069B64 1441000A */ bne $v0, $at, .L7F069B90 +/* 09E698 7F069B68 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E69C 7F069B6C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E6A0 7F069B70 05410003 */ bgez $t2, .L7F069B80 +/* 09E6A4 7F069B74 000A6043 */ sra $t4, $t2, 1 +/* 09E6A8 7F069B78 25410001 */ addiu $at, $t2, 1 +/* 09E6AC 7F069B7C 00016043 */ sra $t4, $at, 1 +.L7F069B80: +/* 09E6B0 7F069B80 01824021 */ addu $t0, $t4, $v0 +/* 09E6B4 7F069B84 010A6823 */ subu $t5, $t0, $t2 +/* 09E6B8 7F069B88 AFAD0058 */ sw $t5, 0x58($sp) +/* 09E6BC 7F069B8C AFA80050 */ sw $t0, 0x50($sp) +.L7F069B90: +/* 09E6C0 7F069B90 02002025 */ move $a0, $s0 +/* 09E6C4 7F069B94 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 09E6C8 7F069B98 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E6CC 7F069B9C 8FAF0078 */ lw $t7, 0x78($sp) +/* 09E6D0 7F069BA0 00408025 */ move $s0, $v0 +/* 09E6D4 7F069BA4 11E0001C */ beqz $t7, .L7F069C18 +/* 09E6D8 7F069BA8 00000000 */ nop +/* 09E6DC 7F069BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 09E6E0 7F069BB0 00000000 */ nop +/* 09E6E4 7F069BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 09E6E8 7F069BB8 A7A20044 */ sh $v0, 0x44($sp) +/* 09E6EC 7F069BBC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 09E6F0 7F069BC0 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 09E6F4 7F069BC4 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 09E6F8 7F069BC8 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 09E6FC 7F069BCC 87AD0044 */ lh $t5, 0x44($sp) +/* 09E700 7F069BD0 3C0C6464 */ lui $t4, (0x646464FF >> 16) # lui $t4, 0x6464 +/* 09E704 7F069BD4 358C64FF */ ori $t4, (0x646464FF & 0xFFFF) # ori $t4, $t4, 0x64ff +/* 09E708 7F069BD8 240BFFFF */ li $t3, -1 +/* 09E70C 7F069BDC AFAB0018 */ sw $t3, 0x18($sp) +/* 09E710 7F069BE0 AFAC001C */ sw $t4, 0x1c($sp) +/* 09E714 7F069BE4 02002025 */ move $a0, $s0 +/* 09E718 7F069BE8 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E71C 7F069BEC 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E720 7F069BF0 8FA70064 */ lw $a3, 0x64($sp) +/* 09E724 7F069BF4 AFA20024 */ sw $v0, 0x24($sp) +/* 09E728 7F069BF8 AFA00028 */ sw $zero, 0x28($sp) +/* 09E72C 7F069BFC AFA0002C */ sw $zero, 0x2c($sp) +/* 09E730 7F069C00 AFB90014 */ sw $t9, 0x14($sp) +/* 09E734 7F069C04 AFB80010 */ sw $t8, 0x10($sp) +/* 09E738 7F069C08 0FC2B9BB */ jal jp_text_write_stuff +/* 09E73C 7F069C0C AFAD0020 */ sw $t5, 0x20($sp) +/* 09E740 7F069C10 10000019 */ b .L7F069C78 +/* 09E744 7F069C14 00408025 */ move $s0, $v0 +.L7F069C18: +/* 09E748 7F069C18 0C001107 */ jal get_video2_settings_txtClipW +/* 09E74C 7F069C1C 00000000 */ nop +/* 09E750 7F069C20 0C00110B */ jal get_video2_settings_txtClipH +/* 09E754 7F069C24 A7A20044 */ sh $v0, 0x44($sp) +/* 09E758 7F069C28 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 09E75C 7F069C2C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 09E760 7F069C30 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 09E764 7F069C34 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 09E768 7F069C38 87B90044 */ lh $t9, 0x44($sp) +/* 09E76C 7F069C3C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 09E770 7F069C40 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 09E774 7F069C44 AFB80018 */ sw $t8, 0x18($sp) +/* 09E778 7F069C48 02002025 */ move $a0, $s0 +/* 09E77C 7F069C4C 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E780 7F069C50 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E784 7F069C54 8FA70064 */ lw $a3, 0x64($sp) +/* 09E788 7F069C58 AFA20020 */ sw $v0, 0x20($sp) +/* 09E78C 7F069C5C AFA00024 */ sw $zero, 0x24($sp) +/* 09E790 7F069C60 AFA00028 */ sw $zero, 0x28($sp) +/* 09E794 7F069C64 AFAF0014 */ sw $t7, 0x14($sp) +/* 09E798 7F069C68 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E79C 7F069C6C 0FC2B6AF */ jal en_text_write_stuff +/* 09E7A0 7F069C70 AFB9001C */ sw $t9, 0x1c($sp) +/* 09E7A4 7F069C74 00408025 */ move $s0, $v0 +.L7F069C78: +/* 09E7A8 7F069C78 8FBF003C */ lw $ra, 0x3c($sp) +/* 09E7AC 7F069C7C 02001025 */ move $v0, $s0 +/* 09E7B0 7F069C80 8FB00038 */ lw $s0, 0x38($sp) +/* 09E7B4 7F069C84 03E00008 */ jr $ra +/* 09E7B8 7F069C88 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void display_ammo_total_in_a1(s32 arg0, s32 arg1, ? arg2, ? arg3, ?32 arg4, ?32 arg5, ?32 arg6) { + ? sp2C; + + // Node 0 + sprintf(&sp2C, &aD_9, arg1); + return some_kind_of_display_routine(arg0, &sp2C, arg2, arg3, arg4, arg5, arg6); +} + +#else +GLOBAL_ASM( +.text +glabel display_ammo_total_in_a1 +/* 09E7BC 7F069C8C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 09E7C0 7F069C90 AFA60040 */ sw $a2, 0x40($sp) +/* 09E7C4 7F069C94 00A03025 */ move $a2, $a1 +/* 09E7C8 7F069C98 AFA5003C */ sw $a1, 0x3c($sp) +/* 09E7CC 7F069C9C AFBF0024 */ sw $ra, 0x24($sp) +/* 09E7D0 7F069CA0 AFA40038 */ sw $a0, 0x38($sp) +/* 09E7D4 7F069CA4 3C058005 */ lui $a1, %hi(aD_9) +/* 09E7D8 7F069CA8 AFA70044 */ sw $a3, 0x44($sp) +/* 09E7DC 7F069CAC 24A53BF4 */ addiu $a1, %lo(aD_9) # addiu $a1, $a1, 0x3bf4 +/* 09E7E0 7F069CB0 0C002B25 */ jal sprintf +/* 09E7E4 7F069CB4 27A4002C */ addiu $a0, $sp, 0x2c +/* 09E7E8 7F069CB8 8FAE0048 */ lw $t6, 0x48($sp) +/* 09E7EC 7F069CBC 8FAF004C */ lw $t7, 0x4c($sp) +/* 09E7F0 7F069CC0 8FB80050 */ lw $t8, 0x50($sp) +/* 09E7F4 7F069CC4 8FA40038 */ lw $a0, 0x38($sp) +/* 09E7F8 7F069CC8 27A5002C */ addiu $a1, $sp, 0x2c +/* 09E7FC 7F069CCC 8FA60040 */ lw $a2, 0x40($sp) +/* 09E800 7F069CD0 8FA70044 */ lw $a3, 0x44($sp) +/* 09E804 7F069CD4 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E808 7F069CD8 AFAF0014 */ sw $t7, 0x14($sp) +/* 09E80C 7F069CDC 0FC1A694 */ jal some_kind_of_display_routine +/* 09E810 7F069CE0 AFB80018 */ sw $t8, 0x18($sp) +/* 09E814 7F069CE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E818 7F069CE8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 09E81C 7F069CEC 03E00008 */ jr $ra +/* 09E820 7F069CF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 generate_ammo_total_microcode(s32 arg0) { + void *sp28; + s16 sp2C; + s16 sp2E; + f32 sp30; + f32 sp34; + s16 sp38; + s32 sp3C; + void *sp40; + s32 sp44; + void *sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 sp58; + s32 sp5C; + s32 sp60; + s32 sp64; + ? temp_ret; + void *temp_v1; + s32 temp_v1_3; + s32 temp_t3; + ? temp_ret_2; + void *temp_v1_2; + s32 temp_v1_4; + s32 temp_t1; + s32 phi_v1; + s32 phi_t9; + s32 phi_t0; + s32 phi_v1_2; + s32 phi_t3; + s32 phi_t0_2; + + // Node 0 + if (pPlayer->unk1064 == 0) + { + // Node 1 + if (pPlayer->unk29C4 == 0) + { + // Node 2 + sp64 = get_item_in_hand(1); + sp60 = get_item_in_hand(0); + if (get_num_players() < 3) + { + // Node 3 + sp58 = 0x3b; + sp54 = 0x3b; + } + else + { + // Node 4 + if ((get_cur_playernum() & 1) != 0) + { + // Node 5 + sp58 = 0x2b; + sp54 = 0x7f; + } + else + { + // Node 6 + sp58 = 0x3b; + sp54 = 0x6d; + } + } + // Node 7 + if (sp60 != 0) + { + // Node 8 + temp_ret = get_ammo_type_for_weapon(sp60); + sp5C = temp_ret; + if (temp_ret != 0) + { + // Node 9 + if (pPlayer->unk894 != 7) + { + // Node 10 + if (pPlayer->unk894 != 7) + { + // Node 11 + if (bondwalkItemCheckBitflags(sp60, 0x80000) == 0) + { + // Node 12 + temp_v1 = ((sp5C * 0xc) + &ammo_related); + sp44 = 5; + if (temp_v1->unk4 != 0) + { + // Node 13 + sp28 = temp_v1; + sp48 = (void *) (temp_v1->unk4 + globalbank_rdram_offset); + sp30 = getPlayer_c_screenleft(); + sp34 = getPlayer_c_screenwidth(); + sp38 = get_video2_settings_uly(); + arg0 = set_rgba_redirect_generate_microcode(arg0, sp48, ((sp34 + sp30) - (f32) sp54), 0xbf800000, (f32) ((get_video2_settings_height() + sp38) + -0x14), 0, (f32) sp28->unk8, 1); + sp44 = (s32) sp48->unk4; + } + // Node 14 + arg0 = microcode_constructor(arg0); + if (bondwalkItemCheckBitflags(sp60, 0x400000) != 0) + { + // Node 15 + sp4C = 0; + temp_v1_3 = (pPlayer->unk89C + (pPlayer + (sp5C * 4))->unk1130); + phi_v1 = temp_v1_3; + if (sp64 == sp60) + { + // Node 16 + phi_v1 = (temp_v1_3 + pPlayer->unkC44); + } + // Node 17 + sp50 = (s32) phi_v1; + } + else + { + // Node 18 + sp4C = (s32) pPlayer->unk89C; + sp50 = (s32) (pPlayer + (sp5C * 4))->unk1130; + } + // Node 19 + if (bondwalkItemCheckBitflags(sp60, 0x400000) == 0) + { + // Node 20 + sp2C = get_video2_settings_ulx(); + sp2E = get_video2_settings_width(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + phi_t9 = (sp44 >> 1); + if (sp44 < 0) + { + // Node 21 + phi_t9 = ((s32) (sp44 + 1) >> 1); + } + // Node 22 + arg0 = display_ammo_total_in_a1(arg0, sp4C, ((((sp2E + sp2C) - sp54) - phi_t9) + -4), 0); + } + // Node 23 + if ((sp50 > 0) || (bondwalkItemCheckBitflags(sp60, 0x400000) != 0)) + { + // Node 25 + sp2C = get_video2_settings_ulx(); + sp2E = get_video2_settings_width(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + temp_t3 = (sp44 + 1); + phi_t0 = (temp_t3 >> 1); + if (temp_t3 < 0) + { + // Node 26 + phi_t0 = ((s32) (temp_t3 + 1) >> 1); + } + // Node 27 + arg0 = display_ammo_total_in_a1(arg0, sp50, ((((sp2E + sp2C) - sp54) + phi_t0) + 3), 1); + } + else + { + + } + // Node 28 + arg0 = combiner_bayer_lod_perspective(arg0); + } + } + } + } + } + // Node 29 + if (sp64 != 0) + { + // Node 30 + temp_ret_2 = get_ammo_type_for_weapon(sp64); + sp5C = temp_ret_2; + if (temp_ret_2 != 0) + { + // Node 31 + if (pPlayer->unkC3C != 7) + { + // Node 32 + if (pPlayer->unkC3C != 7) + { + // Node 33 + if (bondwalkItemCheckBitflags(sp64, 0x80000) == 0) + { + // Node 34 + temp_v1_2 = ((sp5C * 0xc) + &ammo_related); + sp3C = 5; + if (temp_v1_2->unk4 != 0) + { + // Node 35 + sp28 = temp_v1_2; + sp40 = (void *) (temp_v1_2->unk4 + globalbank_rdram_offset); + sp34 = getPlayer_c_screenleft(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + arg0 = set_rgba_redirect_generate_microcode(sp28->unk8, arg0, sp40, (sp34 + (f32) sp58), 0xbf800000, 1, 1); + sp3C = (s32) sp40->unk4; + } + // Node 36 + arg0 = microcode_constructor(arg0); + if (bondwalkItemCheckBitflags(sp64, 0x400000) != 0) + { + // Node 37 + sp4C = 0; + temp_v1_4 = (pPlayer->unkC44 + (pPlayer + (sp5C * 4))->unk1130); + phi_v1_2 = temp_v1_4; + if (sp64 == sp60) + { + // Node 38 + phi_v1_2 = (temp_v1_4 + pPlayer->unk89C); + } + // Node 39 + sp50 = (s32) phi_v1_2; + } + else + { + // Node 40 + sp4C = (s32) pPlayer->unkC44; + sp50 = (s32) (pPlayer + (sp5C * 4))->unk1130; + } + // Node 41 + if (bondwalkItemCheckBitflags(sp64, 0x400000) == 0) + { + // Node 42 + sp2E = get_video2_settings_ulx(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + phi_t3 = (sp3C >> 1); + if (sp3C < 0) + { + // Node 43 + phi_t3 = ((s32) (sp3C + 1) >> 1); + } + // Node 44 + arg0 = display_ammo_total_in_a1(arg0, sp4C, (((sp2E + sp58) + phi_t3) + 3), 1); + } + // Node 45 + if ((sp50 > 0) || (bondwalkItemCheckBitflags(sp64, 0x400000) != 0)) + { + // Node 47 + sp2E = get_video2_settings_ulx(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + temp_t1 = (sp3C + 1); + phi_t0_2 = (temp_t1 >> 1); + if (temp_t1 < 0) + { + // Node 48 + phi_t0_2 = ((s32) (temp_t1 + 1) >> 1); + } + // Node 49 + arg0 = display_ammo_total_in_a1(arg0, sp50, (((sp2E + sp58) - phi_t0_2) + -4), 0); + } + else + { + + } + // Node 50 + arg0 = combiner_bayer_lod_perspective(arg0); + } + } + } + } + } + } + } + // Node 51 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel generate_ammo_total_microcode +/* 09E824 7F069CF4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09E828 7F069CF8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09E82C 7F069CFC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 09E830 7F069D00 AFBF0024 */ sw $ra, 0x24($sp) +/* 09E834 7F069D04 AFA40068 */ sw $a0, 0x68($sp) +/* 09E838 7F069D08 8C4E1064 */ lw $t6, 0x1064($v0) +/* 09E83C 7F069D0C 55C00185 */ bnezl $t6, .L7F06A324 +/* 09E840 7F069D10 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E844 7F069D14 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 09E848 7F069D18 55E00182 */ bnezl $t7, .L7F06A324 +/* 09E84C 7F069D1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E850 7F069D20 0FC17674 */ jal get_item_in_hand +/* 09E854 7F069D24 24040001 */ li $a0, 1 +/* 09E858 7F069D28 AFA20064 */ sw $v0, 0x64($sp) +/* 09E85C 7F069D2C 0FC17674 */ jal get_item_in_hand +/* 09E860 7F069D30 00002025 */ move $a0, $zero +/* 09E864 7F069D34 0FC26919 */ jal get_num_players +/* 09E868 7F069D38 AFA20060 */ sw $v0, 0x60($sp) +/* 09E86C 7F069D3C 28410003 */ slti $at, $v0, 3 +/* 09E870 7F069D40 10200005 */ beqz $at, .L7F069D58 +/* 09E874 7F069D44 2418003B */ li $t8, 59 +/* 09E878 7F069D48 2419003B */ li $t9, 59 +/* 09E87C 7F069D4C AFB80058 */ sw $t8, 0x58($sp) +/* 09E880 7F069D50 1000000E */ b .L7F069D8C +/* 09E884 7F069D54 AFB90054 */ sw $t9, 0x54($sp) +.L7F069D58: +/* 09E888 7F069D58 0FC26C54 */ jal get_cur_playernum +/* 09E88C 7F069D5C 00000000 */ nop +/* 09E890 7F069D60 30480001 */ andi $t0, $v0, 1 +/* 09E894 7F069D64 11000006 */ beqz $t0, .L7F069D80 +/* 09E898 7F069D68 240B003B */ li $t3, 59 +/* 09E89C 7F069D6C 2409002B */ li $t1, 43 +/* 09E8A0 7F069D70 240A007F */ li $t2, 127 +/* 09E8A4 7F069D74 AFA90058 */ sw $t1, 0x58($sp) +/* 09E8A8 7F069D78 10000004 */ b .L7F069D8C +/* 09E8AC 7F069D7C AFAA0054 */ sw $t2, 0x54($sp) +.L7F069D80: +/* 09E8B0 7F069D80 240C006D */ li $t4, 109 +/* 09E8B4 7F069D84 AFAB0058 */ sw $t3, 0x58($sp) +/* 09E8B8 7F069D88 AFAC0054 */ sw $t4, 0x54($sp) +.L7F069D8C: +/* 09E8BC 7F069D8C 8FAD0060 */ lw $t5, 0x60($sp) +/* 09E8C0 7F069D90 51A000B7 */ beql $t5, $zero, .L7F06A070 +/* 09E8C4 7F069D94 8FA40064 */ lw $a0, 0x64($sp) +/* 09E8C8 7F069D98 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09E8CC 7F069D9C 01A02025 */ move $a0, $t5 +/* 09E8D0 7F069DA0 104000B2 */ beqz $v0, .L7F06A06C +/* 09E8D4 7F069DA4 AFA2005C */ sw $v0, 0x5c($sp) +/* 09E8D8 7F069DA8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09E8DC 7F069DAC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09E8E0 7F069DB0 24010006 */ li $at, 6 +/* 09E8E4 7F069DB4 8DC20894 */ lw $v0, 0x894($t6) +/* 09E8E8 7F069DB8 104100AC */ beq $v0, $at, .L7F06A06C +/* 09E8EC 7F069DBC 24010007 */ li $at, 7 +/* 09E8F0 7F069DC0 104100AA */ beq $v0, $at, .L7F06A06C +/* 09E8F4 7F069DC4 8FA40060 */ lw $a0, 0x60($sp) +/* 09E8F8 7F069DC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09E8FC 7F069DCC 3C050008 */ lui $a1, 8 +/* 09E900 7F069DD0 144000A6 */ bnez $v0, .L7F06A06C +/* 09E904 7F069DD4 8FAF005C */ lw $t7, 0x5c($sp) +/* 09E908 7F069DD8 000FC080 */ sll $t8, $t7, 2 +/* 09E90C 7F069DDC 030FC023 */ subu $t8, $t8, $t7 +/* 09E910 7F069DE0 3C198003 */ lui $t9, %hi(ammo_related) +/* 09E914 7F069DE4 27395EF0 */ addiu $t9, %lo(ammo_related) # addiu $t9, $t9, 0x5ef0 +/* 09E918 7F069DE8 0018C080 */ sll $t8, $t8, 2 +/* 09E91C 7F069DEC 03191821 */ addu $v1, $t8, $t9 +/* 09E920 7F069DF0 8C620004 */ lw $v0, 4($v1) +/* 09E924 7F069DF4 24080005 */ li $t0, 5 +/* 09E928 7F069DF8 AFA80044 */ sw $t0, 0x44($sp) +/* 09E92C 7F069DFC 10400028 */ beqz $v0, .L7F069EA0 +/* 09E930 7F069E00 3C098009 */ lui $t1, %hi(globalbank_rdram_offset) +/* 09E934 7F069E04 8D29D0B0 */ lw $t1, %lo(globalbank_rdram_offset)($t1) +/* 09E938 7F069E08 AFA30028 */ sw $v1, 0x28($sp) +/* 09E93C 7F069E0C 00491021 */ addu $v0, $v0, $t1 +/* 09E940 7F069E10 0FC1E131 */ jal getPlayer_c_screenleft +/* 09E944 7F069E14 AFA20048 */ sw $v0, 0x48($sp) +/* 09E948 7F069E18 0FC1E129 */ jal getPlayer_c_screenwidth +/* 09E94C 7F069E1C E7A00030 */ swc1 $f0, 0x30($sp) +/* 09E950 7F069E20 0C001149 */ jal get_video2_settings_uly +/* 09E954 7F069E24 E7A00034 */ swc1 $f0, 0x34($sp) +/* 09E958 7F069E28 0C00112B */ jal get_video2_settings_height +/* 09E95C 7F069E2C A7A20038 */ sh $v0, 0x38($sp) +/* 09E960 7F069E30 8FAA0054 */ lw $t2, 0x54($sp) +/* 09E964 7F069E34 87AB0038 */ lh $t3, 0x38($sp) +/* 09E968 7F069E38 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 09E96C 7F069E3C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 09E970 7F069E40 448A5000 */ mtc1 $t2, $f10 +/* 09E974 7F069E44 004B6021 */ addu $t4, $v0, $t3 +/* 09E978 7F069E48 46062200 */ add.s $f8, $f4, $f6 +/* 09E97C 7F069E4C 258DFFEC */ addiu $t5, $t4, -0x14 +/* 09E980 7F069E50 448D2000 */ mtc1 $t5, $f4 +/* 09E984 7F069E54 46805420 */ cvt.s.w $f16, $f10 +/* 09E988 7F069E58 8FAE0028 */ lw $t6, 0x28($sp) +/* 09E98C 7F069E5C AFA00014 */ sw $zero, 0x14($sp) +/* 09E990 7F069E60 240F0001 */ li $t7, 1 +/* 09E994 7F069E64 8FA40068 */ lw $a0, 0x68($sp) +/* 09E998 7F069E68 468021A0 */ cvt.s.w $f6, $f4 +/* 09E99C 7F069E6C 8FA50048 */ lw $a1, 0x48($sp) +/* 09E9A0 7F069E70 3C07BF80 */ lui $a3, 0xbf80 +/* 09E9A4 7F069E74 46104481 */ sub.s $f18, $f8, $f16 +/* 09E9A8 7F069E78 E7A60010 */ swc1 $f6, 0x10($sp) +/* 09E9AC 7F069E7C C5CA0008 */ lwc1 $f10, 8($t6) +/* 09E9B0 7F069E80 AFAF001C */ sw $t7, 0x1c($sp) +/* 09E9B4 7F069E84 44069000 */ mfc1 $a2, $f18 +/* 09E9B8 7F069E88 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09E9BC 7F069E8C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 09E9C0 7F069E90 8FB80048 */ lw $t8, 0x48($sp) +/* 09E9C4 7F069E94 AFA20068 */ sw $v0, 0x68($sp) +/* 09E9C8 7F069E98 93190004 */ lbu $t9, 4($t8) +/* 09E9CC 7F069E9C AFB90044 */ sw $t9, 0x44($sp) +.L7F069EA0: +/* 09E9D0 7F069EA0 0FC2B366 */ jal microcode_constructor +/* 09E9D4 7F069EA4 8FA40068 */ lw $a0, 0x68($sp) +/* 09E9D8 7F069EA8 AFA20068 */ sw $v0, 0x68($sp) +/* 09E9DC 7F069EAC 8FA40060 */ lw $a0, 0x60($sp) +/* 09E9E0 7F069EB0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09E9E4 7F069EB4 3C050040 */ lui $a1, 0x40 +/* 09E9E8 7F069EB8 10400011 */ beqz $v0, .L7F069F00 +/* 09E9EC 7F069EBC 3C050040 */ lui $a1, 0x40 +/* 09E9F0 7F069EC0 8FA9005C */ lw $t1, 0x5c($sp) +/* 09E9F4 7F069EC4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09E9F8 7F069EC8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09E9FC 7F069ECC AFA0004C */ sw $zero, 0x4c($sp) +/* 09EA00 7F069ED0 00095080 */ sll $t2, $t1, 2 +/* 09EA04 7F069ED4 8FAD0064 */ lw $t5, 0x64($sp) +/* 09EA08 7F069ED8 8FAE0060 */ lw $t6, 0x60($sp) +/* 09EA0C 7F069EDC 004A5821 */ addu $t3, $v0, $t2 +/* 09EA10 7F069EE0 8D6C1130 */ lw $t4, 0x1130($t3) +/* 09EA14 7F069EE4 8C48089C */ lw $t0, 0x89c($v0) +/* 09EA18 7F069EE8 15AE0003 */ bne $t5, $t6, .L7F069EF8 +/* 09EA1C 7F069EEC 010C1821 */ addu $v1, $t0, $t4 +/* 09EA20 7F069EF0 8C4F0C44 */ lw $t7, 0xc44($v0) +/* 09EA24 7F069EF4 006F1821 */ addu $v1, $v1, $t7 +.L7F069EF8: +/* 09EA28 7F069EF8 1000000A */ b .L7F069F24 +/* 09EA2C 7F069EFC AFA30050 */ sw $v1, 0x50($sp) +.L7F069F00: +/* 09EA30 7F069F00 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EA34 7F069F04 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EA38 7F069F08 8FB9005C */ lw $t9, 0x5c($sp) +/* 09EA3C 7F069F0C 8C58089C */ lw $t8, 0x89c($v0) +/* 09EA40 7F069F10 00194880 */ sll $t1, $t9, 2 +/* 09EA44 7F069F14 00495021 */ addu $t2, $v0, $t1 +/* 09EA48 7F069F18 AFB8004C */ sw $t8, 0x4c($sp) +/* 09EA4C 7F069F1C 8D4B1130 */ lw $t3, 0x1130($t2) +/* 09EA50 7F069F20 AFAB0050 */ sw $t3, 0x50($sp) +.L7F069F24: +/* 09EA54 7F069F24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EA58 7F069F28 8FA40060 */ lw $a0, 0x60($sp) +/* 09EA5C 7F069F2C 54400023 */ bnezl $v0, .L7F069FBC +/* 09EA60 7F069F30 8FAD0050 */ lw $t5, 0x50($sp) +/* 09EA64 7F069F34 0C001145 */ jal get_video2_settings_ulx +/* 09EA68 7F069F38 00000000 */ nop +/* 09EA6C 7F069F3C 0C001127 */ jal get_video2_settings_width +/* 09EA70 7F069F40 A7A2002C */ sh $v0, 0x2c($sp) +/* 09EA74 7F069F44 0C001149 */ jal get_video2_settings_uly +/* 09EA78 7F069F48 A7A2002E */ sh $v0, 0x2e($sp) +/* 09EA7C 7F069F4C 0C00112B */ jal get_video2_settings_height +/* 09EA80 7F069F50 A7A20038 */ sh $v0, 0x38($sp) +/* 09EA84 7F069F54 87A8002E */ lh $t0, 0x2e($sp) +/* 09EA88 7F069F58 87AC002C */ lh $t4, 0x2c($sp) +/* 09EA8C 7F069F5C 8FAE0054 */ lw $t6, 0x54($sp) +/* 09EA90 7F069F60 8FB80044 */ lw $t8, 0x44($sp) +/* 09EA94 7F069F64 87A90038 */ lh $t1, 0x38($sp) +/* 09EA98 7F069F68 010C6821 */ addu $t5, $t0, $t4 +/* 09EA9C 7F069F6C 01AE7823 */ subu $t7, $t5, $t6 +/* 09EAA0 7F069F70 00495021 */ addu $t2, $v0, $t1 +/* 09EAA4 7F069F74 254BFFEE */ addiu $t3, $t2, -0x12 +/* 09EAA8 7F069F78 240C0001 */ li $t4, 1 +/* 09EAAC 7F069F7C 24080002 */ li $t0, 2 +/* 09EAB0 7F069F80 AFA80014 */ sw $t0, 0x14($sp) +/* 09EAB4 7F069F84 AFAC0018 */ sw $t4, 0x18($sp) +/* 09EAB8 7F069F88 AFAB0010 */ sw $t3, 0x10($sp) +/* 09EABC 7F069F8C 8FA40068 */ lw $a0, 0x68($sp) +/* 09EAC0 7F069F90 8FA5004C */ lw $a1, 0x4c($sp) +/* 09EAC4 7F069F94 07010003 */ bgez $t8, .L7F069FA4 +/* 09EAC8 7F069F98 0018C843 */ sra $t9, $t8, 1 +/* 09EACC 7F069F9C 27010001 */ addiu $at, $t8, 1 +/* 09EAD0 7F069FA0 0001C843 */ sra $t9, $at, 1 +.L7F069FA4: +/* 09EAD4 7F069FA4 01F93023 */ subu $a2, $t7, $t9 +/* 09EAD8 7F069FA8 24C6FFFC */ addiu $a2, $a2, -4 +/* 09EADC 7F069FAC 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EAE0 7F069FB0 00003825 */ move $a3, $zero +/* 09EAE4 7F069FB4 AFA20068 */ sw $v0, 0x68($sp) +/* 09EAE8 7F069FB8 8FAD0050 */ lw $t5, 0x50($sp) +.L7F069FBC: +/* 09EAEC 7F069FBC 8FA40060 */ lw $a0, 0x60($sp) +/* 09EAF0 7F069FC0 1DA00005 */ bgtz $t5, .L7F069FD8 +/* 09EAF4 7F069FC4 00000000 */ nop +/* 09EAF8 7F069FC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EAFC 7F069FCC 3C050040 */ lui $a1, 0x40 +/* 09EB00 7F069FD0 10400023 */ beqz $v0, .L7F06A060 +/* 09EB04 7F069FD4 00000000 */ nop +.L7F069FD8: +/* 09EB08 7F069FD8 0C001145 */ jal get_video2_settings_ulx +/* 09EB0C 7F069FDC 00000000 */ nop +/* 09EB10 7F069FE0 0C001127 */ jal get_video2_settings_width +/* 09EB14 7F069FE4 A7A2002C */ sh $v0, 0x2c($sp) +/* 09EB18 7F069FE8 0C001149 */ jal get_video2_settings_uly +/* 09EB1C 7F069FEC A7A2002E */ sh $v0, 0x2e($sp) +/* 09EB20 7F069FF0 0C00112B */ jal get_video2_settings_height +/* 09EB24 7F069FF4 A7A20038 */ sh $v0, 0x38($sp) +/* 09EB28 7F069FF8 87AE002E */ lh $t6, 0x2e($sp) +/* 09EB2C 7F069FFC 87B8002C */ lh $t8, 0x2c($sp) +/* 09EB30 7F06A000 8FB90054 */ lw $t9, 0x54($sp) +/* 09EB34 7F06A004 8FAA0044 */ lw $t2, 0x44($sp) +/* 09EB38 7F06A008 87AC0038 */ lh $t4, 0x38($sp) +/* 09EB3C 7F06A00C 01D87821 */ addu $t7, $t6, $t8 +/* 09EB40 7F06A010 01F94823 */ subu $t1, $t7, $t9 +/* 09EB44 7F06A014 254B0001 */ addiu $t3, $t2, 1 +/* 09EB48 7F06A018 004C6821 */ addu $t5, $v0, $t4 +/* 09EB4C 7F06A01C 25AEFFEE */ addiu $t6, $t5, -0x12 +/* 09EB50 7F06A020 240F0001 */ li $t7, 1 +/* 09EB54 7F06A024 24180002 */ li $t8, 2 +/* 09EB58 7F06A028 AFB80014 */ sw $t8, 0x14($sp) +/* 09EB5C 7F06A02C AFAF0018 */ sw $t7, 0x18($sp) +/* 09EB60 7F06A030 AFAE0010 */ sw $t6, 0x10($sp) +/* 09EB64 7F06A034 8FA40068 */ lw $a0, 0x68($sp) +/* 09EB68 7F06A038 8FA50050 */ lw $a1, 0x50($sp) +/* 09EB6C 7F06A03C 05610003 */ bgez $t3, .L7F06A04C +/* 09EB70 7F06A040 000B4043 */ sra $t0, $t3, 1 +/* 09EB74 7F06A044 25610001 */ addiu $at, $t3, 1 +/* 09EB78 7F06A048 00014043 */ sra $t0, $at, 1 +.L7F06A04C: +/* 09EB7C 7F06A04C 01283021 */ addu $a2, $t1, $t0 +/* 09EB80 7F06A050 24C60003 */ addiu $a2, $a2, 3 +/* 09EB84 7F06A054 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EB88 7F06A058 24070001 */ li $a3, 1 +/* 09EB8C 7F06A05C AFA20068 */ sw $v0, 0x68($sp) +.L7F06A060: +/* 09EB90 7F06A060 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09EB94 7F06A064 8FA40068 */ lw $a0, 0x68($sp) +/* 09EB98 7F06A068 AFA20068 */ sw $v0, 0x68($sp) +.L7F06A06C: +/* 09EB9C 7F06A06C 8FA40064 */ lw $a0, 0x64($sp) +.L7F06A070: +/* 09EBA0 7F06A070 508000AC */ beql $a0, $zero, .L7F06A324 +/* 09EBA4 7F06A074 8FBF0024 */ lw $ra, 0x24($sp) +/* 09EBA8 7F06A078 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09EBAC 7F06A07C 00000000 */ nop +/* 09EBB0 7F06A080 104000A7 */ beqz $v0, .L7F06A320 +/* 09EBB4 7F06A084 AFA2005C */ sw $v0, 0x5c($sp) +/* 09EBB8 7F06A088 3C198008 */ lui $t9, %hi(pPlayer) +/* 09EBBC 7F06A08C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09EBC0 7F06A090 24010006 */ li $at, 6 +/* 09EBC4 7F06A094 8F220C3C */ lw $v0, 0xc3c($t9) +/* 09EBC8 7F06A098 104100A1 */ beq $v0, $at, .L7F06A320 +/* 09EBCC 7F06A09C 24010007 */ li $at, 7 +/* 09EBD0 7F06A0A0 1041009F */ beq $v0, $at, .L7F06A320 +/* 09EBD4 7F06A0A4 8FA40064 */ lw $a0, 0x64($sp) +/* 09EBD8 7F06A0A8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EBDC 7F06A0AC 3C050008 */ lui $a1, 8 +/* 09EBE0 7F06A0B0 1440009B */ bnez $v0, .L7F06A320 +/* 09EBE4 7F06A0B4 8FAA005C */ lw $t2, 0x5c($sp) +/* 09EBE8 7F06A0B8 000A5880 */ sll $t3, $t2, 2 +/* 09EBEC 7F06A0BC 016A5823 */ subu $t3, $t3, $t2 +/* 09EBF0 7F06A0C0 3C098003 */ lui $t1, %hi(ammo_related) +/* 09EBF4 7F06A0C4 25295EF0 */ addiu $t1, %lo(ammo_related) # addiu $t1, $t1, 0x5ef0 +/* 09EBF8 7F06A0C8 000B5880 */ sll $t3, $t3, 2 +/* 09EBFC 7F06A0CC 01691821 */ addu $v1, $t3, $t1 +/* 09EC00 7F06A0D0 8C620004 */ lw $v0, 4($v1) +/* 09EC04 7F06A0D4 24080005 */ li $t0, 5 +/* 09EC08 7F06A0D8 AFA8003C */ sw $t0, 0x3c($sp) +/* 09EC0C 7F06A0DC 10400025 */ beqz $v0, .L7F06A174 +/* 09EC10 7F06A0E0 3C0C8009 */ lui $t4, %hi(globalbank_rdram_offset) +/* 09EC14 7F06A0E4 8D8CD0B0 */ lw $t4, %lo(globalbank_rdram_offset)($t4) +/* 09EC18 7F06A0E8 AFA30028 */ sw $v1, 0x28($sp) +/* 09EC1C 7F06A0EC 004C1021 */ addu $v0, $v0, $t4 +/* 09EC20 7F06A0F0 0FC1E131 */ jal getPlayer_c_screenleft +/* 09EC24 7F06A0F4 AFA20040 */ sw $v0, 0x40($sp) +/* 09EC28 7F06A0F8 0C001149 */ jal get_video2_settings_uly +/* 09EC2C 7F06A0FC E7A00034 */ swc1 $f0, 0x34($sp) +/* 09EC30 7F06A100 0C00112B */ jal get_video2_settings_height +/* 09EC34 7F06A104 A7A20038 */ sh $v0, 0x38($sp) +/* 09EC38 7F06A108 8FAD0058 */ lw $t5, 0x58($sp) +/* 09EC3C 7F06A10C 87AE0038 */ lh $t6, 0x38($sp) +/* 09EC40 7F06A110 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 09EC44 7F06A114 448D8000 */ mtc1 $t5, $f16 +/* 09EC48 7F06A118 8FAA0028 */ lw $t2, 0x28($sp) +/* 09EC4C 7F06A11C 004EC021 */ addu $t8, $v0, $t6 +/* 09EC50 7F06A120 46808420 */ cvt.s.w $f16, $f16 +/* 09EC54 7F06A124 270FFFEC */ addiu $t7, $t8, -0x14 +/* 09EC58 7F06A128 448F7000 */ mtc1 $t7, $f14 +/* 09EC5C 7F06A12C 24190001 */ li $t9, 1 +/* 09EC60 7F06A130 AFB90014 */ sw $t9, 0x14($sp) +/* 09EC64 7F06A134 468073A0 */ cvt.s.w $f14, $f14 +/* 09EC68 7F06A138 240B0001 */ li $t3, 1 +/* 09EC6C 7F06A13C 8FA40068 */ lw $a0, 0x68($sp) +/* 09EC70 7F06A140 8FA50040 */ lw $a1, 0x40($sp) +/* 09EC74 7F06A144 3C07BF80 */ lui $a3, 0xbf80 +/* 09EC78 7F06A148 46109400 */ add.s $f16, $f18, $f16 +/* 09EC7C 7F06A14C E7AE0010 */ swc1 $f14, 0x10($sp) +/* 09EC80 7F06A150 C54E0008 */ lwc1 $f14, 8($t2) +/* 09EC84 7F06A154 AFAB001C */ sw $t3, 0x1c($sp) +/* 09EC88 7F06A158 44068000 */ mfc1 $a2, $f16 +/* 09EC8C 7F06A15C 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09EC90 7F06A160 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 09EC94 7F06A164 8FA90040 */ lw $t1, 0x40($sp) +/* 09EC98 7F06A168 AFA20068 */ sw $v0, 0x68($sp) +/* 09EC9C 7F06A16C 91280004 */ lbu $t0, 4($t1) +/* 09ECA0 7F06A170 AFA8003C */ sw $t0, 0x3c($sp) +.L7F06A174: +/* 09ECA4 7F06A174 0FC2B366 */ jal microcode_constructor +/* 09ECA8 7F06A178 8FA40068 */ lw $a0, 0x68($sp) +/* 09ECAC 7F06A17C AFA20068 */ sw $v0, 0x68($sp) +/* 09ECB0 7F06A180 8FA40064 */ lw $a0, 0x64($sp) +/* 09ECB4 7F06A184 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09ECB8 7F06A188 3C050040 */ lui $a1, 0x40 +/* 09ECBC 7F06A18C 10400011 */ beqz $v0, .L7F06A1D4 +/* 09ECC0 7F06A190 3C050040 */ lui $a1, 0x40 +/* 09ECC4 7F06A194 8FAD005C */ lw $t5, 0x5c($sp) +/* 09ECC8 7F06A198 3C028008 */ lui $v0, %hi(pPlayer) +/* 09ECCC 7F06A19C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09ECD0 7F06A1A0 AFA0004C */ sw $zero, 0x4c($sp) +/* 09ECD4 7F06A1A4 000D7080 */ sll $t6, $t5, 2 +/* 09ECD8 7F06A1A8 8FB90064 */ lw $t9, 0x64($sp) +/* 09ECDC 7F06A1AC 8FAA0060 */ lw $t2, 0x60($sp) +/* 09ECE0 7F06A1B0 004EC021 */ addu $t8, $v0, $t6 +/* 09ECE4 7F06A1B4 8F0F1130 */ lw $t7, 0x1130($t8) +/* 09ECE8 7F06A1B8 8C4C0C44 */ lw $t4, 0xc44($v0) +/* 09ECEC 7F06A1BC 172A0003 */ bne $t9, $t2, .L7F06A1CC +/* 09ECF0 7F06A1C0 018F1821 */ addu $v1, $t4, $t7 +/* 09ECF4 7F06A1C4 8C4B089C */ lw $t3, 0x89c($v0) +/* 09ECF8 7F06A1C8 006B1821 */ addu $v1, $v1, $t3 +.L7F06A1CC: +/* 09ECFC 7F06A1CC 1000000A */ b .L7F06A1F8 +/* 09ED00 7F06A1D0 AFA30050 */ sw $v1, 0x50($sp) +.L7F06A1D4: +/* 09ED04 7F06A1D4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09ED08 7F06A1D8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09ED0C 7F06A1DC 8FA8005C */ lw $t0, 0x5c($sp) +/* 09ED10 7F06A1E0 8C490C44 */ lw $t1, 0xc44($v0) +/* 09ED14 7F06A1E4 00086880 */ sll $t5, $t0, 2 +/* 09ED18 7F06A1E8 004D7021 */ addu $t6, $v0, $t5 +/* 09ED1C 7F06A1EC AFA9004C */ sw $t1, 0x4c($sp) +/* 09ED20 7F06A1F0 8DD81130 */ lw $t8, 0x1130($t6) +/* 09ED24 7F06A1F4 AFB80050 */ sw $t8, 0x50($sp) +.L7F06A1F8: +/* 09ED28 7F06A1F8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09ED2C 7F06A1FC 8FA40064 */ lw $a0, 0x64($sp) +/* 09ED30 7F06A200 5440001F */ bnezl $v0, .L7F06A280 +/* 09ED34 7F06A204 8FAC0050 */ lw $t4, 0x50($sp) +/* 09ED38 7F06A208 0C001145 */ jal get_video2_settings_ulx +/* 09ED3C 7F06A20C 00000000 */ nop +/* 09ED40 7F06A210 0C001149 */ jal get_video2_settings_uly +/* 09ED44 7F06A214 A7A2002E */ sh $v0, 0x2e($sp) +/* 09ED48 7F06A218 0C00112B */ jal get_video2_settings_height +/* 09ED4C 7F06A21C A7A20038 */ sh $v0, 0x38($sp) +/* 09ED50 7F06A220 87AC002E */ lh $t4, 0x2e($sp) +/* 09ED54 7F06A224 8FAF0058 */ lw $t7, 0x58($sp) +/* 09ED58 7F06A228 8FAA003C */ lw $t2, 0x3c($sp) +/* 09ED5C 7F06A22C 87A90038 */ lh $t1, 0x38($sp) +/* 09ED60 7F06A230 018FC821 */ addu $t9, $t4, $t7 +/* 09ED64 7F06A234 240E0002 */ li $t6, 2 +/* 09ED68 7F06A238 00494021 */ addu $t0, $v0, $t1 +/* 09ED6C 7F06A23C 250DFFEE */ addiu $t5, $t0, -0x12 +/* 09ED70 7F06A240 24180001 */ li $t8, 1 +/* 09ED74 7F06A244 AFB80018 */ sw $t8, 0x18($sp) +/* 09ED78 7F06A248 AFAD0010 */ sw $t5, 0x10($sp) +/* 09ED7C 7F06A24C AFAE0014 */ sw $t6, 0x14($sp) +/* 09ED80 7F06A250 8FA40068 */ lw $a0, 0x68($sp) +/* 09ED84 7F06A254 8FA5004C */ lw $a1, 0x4c($sp) +/* 09ED88 7F06A258 05410003 */ bgez $t2, .L7F06A268 +/* 09ED8C 7F06A25C 000A5843 */ sra $t3, $t2, 1 +/* 09ED90 7F06A260 25410001 */ addiu $at, $t2, 1 +/* 09ED94 7F06A264 00015843 */ sra $t3, $at, 1 +.L7F06A268: +/* 09ED98 7F06A268 032B3021 */ addu $a2, $t9, $t3 +/* 09ED9C 7F06A26C 24C60003 */ addiu $a2, $a2, 3 +/* 09EDA0 7F06A270 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EDA4 7F06A274 24070001 */ li $a3, 1 +/* 09EDA8 7F06A278 AFA20068 */ sw $v0, 0x68($sp) +/* 09EDAC 7F06A27C 8FAC0050 */ lw $t4, 0x50($sp) +.L7F06A280: +/* 09EDB0 7F06A280 8FA40064 */ lw $a0, 0x64($sp) +/* 09EDB4 7F06A284 1D800005 */ bgtz $t4, .L7F06A29C +/* 09EDB8 7F06A288 00000000 */ nop +/* 09EDBC 7F06A28C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EDC0 7F06A290 3C050040 */ lui $a1, 0x40 +/* 09EDC4 7F06A294 1040001F */ beqz $v0, .L7F06A314 +/* 09EDC8 7F06A298 00000000 */ nop +.L7F06A29C: +/* 09EDCC 7F06A29C 0C001145 */ jal get_video2_settings_ulx +/* 09EDD0 7F06A2A0 00000000 */ nop +/* 09EDD4 7F06A2A4 0C001149 */ jal get_video2_settings_uly +/* 09EDD8 7F06A2A8 A7A2002E */ sh $v0, 0x2e($sp) +/* 09EDDC 7F06A2AC 0C00112B */ jal get_video2_settings_height +/* 09EDE0 7F06A2B0 A7A20038 */ sh $v0, 0x38($sp) +/* 09EDE4 7F06A2B4 87AF002E */ lh $t7, 0x2e($sp) +/* 09EDE8 7F06A2B8 8FAA0058 */ lw $t2, 0x58($sp) +/* 09EDEC 7F06A2BC 8FAB003C */ lw $t3, 0x3c($sp) +/* 09EDF0 7F06A2C0 87AD0038 */ lh $t5, 0x38($sp) +/* 09EDF4 7F06A2C4 01EAC821 */ addu $t9, $t7, $t2 +/* 09EDF8 7F06A2C8 25690001 */ addiu $t1, $t3, 1 +/* 09EDFC 7F06A2CC 004D7021 */ addu $t6, $v0, $t5 +/* 09EE00 7F06A2D0 25D8FFEE */ addiu $t8, $t6, -0x12 +/* 09EE04 7F06A2D4 240F0001 */ li $t7, 1 +/* 09EE08 7F06A2D8 240C0002 */ li $t4, 2 +/* 09EE0C 7F06A2DC AFAC0014 */ sw $t4, 0x14($sp) +/* 09EE10 7F06A2E0 AFAF0018 */ sw $t7, 0x18($sp) +/* 09EE14 7F06A2E4 AFB80010 */ sw $t8, 0x10($sp) +/* 09EE18 7F06A2E8 8FA40068 */ lw $a0, 0x68($sp) +/* 09EE1C 7F06A2EC 8FA50050 */ lw $a1, 0x50($sp) +/* 09EE20 7F06A2F0 05210003 */ bgez $t1, .L7F06A300 +/* 09EE24 7F06A2F4 00094043 */ sra $t0, $t1, 1 +/* 09EE28 7F06A2F8 25210001 */ addiu $at, $t1, 1 +/* 09EE2C 7F06A2FC 00014043 */ sra $t0, $at, 1 +.L7F06A300: +/* 09EE30 7F06A300 03283023 */ subu $a2, $t9, $t0 +/* 09EE34 7F06A304 24C6FFFC */ addiu $a2, $a2, -4 +/* 09EE38 7F06A308 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EE3C 7F06A30C 00003825 */ move $a3, $zero +/* 09EE40 7F06A310 AFA20068 */ sw $v0, 0x68($sp) +.L7F06A314: +/* 09EE44 7F06A314 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09EE48 7F06A318 8FA40068 */ lw $a0, 0x68($sp) +/* 09EE4C 7F06A31C AFA20068 */ sw $v0, 0x68($sp) +.L7F06A320: +/* 09EE50 7F06A320 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06A324: +/* 09EE54 7F06A324 8FA20068 */ lw $v0, 0x68($sp) +/* 09EE58 7F06A328 27BD0068 */ addiu $sp, $sp, 0x68 +/* 09EE5C 7F06A32C 03E00008 */ jr $ra +/* 09EE60 7F06A330 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F06A334(s32 arg0) { + void *sp30; + s16 sp34; + s32 sp3C; + void *sp40; + s32 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + ? temp_ret; + ? temp_ret_2; + void *temp_v0; + s32 temp_s0; + s32 temp_v1; + s32 temp_a2; + s32 phi_s0; + s32 phi_v1; + s32 phi_t4; + s32 phi_s0_2; + s32 phi_t9; + s32 phi_s0_3; + s32 phi_s0_4; + + // Node 0 + sp54 = get_item_in_hand(1); + temp_ret = get_item_in_hand(0); + phi_s0_4 = arg0; + if (temp_ret != 0) + { + // Node 1 + sp50 = temp_ret; + temp_ret_2 = get_ammo_type_for_weapon(temp_ret); + sp4C = temp_ret_2; + phi_s0_4 = arg0; + if (temp_ret_2 != 0) + { + // Node 2 + phi_s0_4 = arg0; + if (pPlayer->unk894 != 7) + { + // Node 3 + phi_s0_4 = arg0; + if (pPlayer->unk894 != 7) + { + // Node 4 + phi_s0_4 = arg0; + if (bondwalkItemCheckBitflags(sp50, 0x80000) == 0) + { + // Node 5 + temp_v0 = ((sp4C * 0xc) + &ammo_related); + sp3C = 5; + sp30 = temp_v0; + sp40 = (void *) temp_v0->unk4; + get_ptr_item_statistics(sp50); + phi_s0 = arg0; + if (sp40 != 0) + { + // Node 6 + sp40 = (void *) (sp40 + globalbank_rdram_offset); + sp34 = get_video2_settings_uly(); + sp3C = (s32) sp40->unk4; + phi_s0 = set_rgba_redirect_generate_microcode(arg0, sp40, 0x43480000, 0x43340000, (f32) ((get_video2_settings_height() + sp34) + -0x14), 0, (f32) sp30->unk8, 1); + } + // Node 7 + temp_s0 = microcode_constructor(phi_s0); + if (bondwalkItemCheckBitflags(sp50, 0x400000) != 0) + { + // Node 8 + sp44 = 0; + temp_v1 = (pPlayer->unk89C + (pPlayer + (sp4C * 4))->unk1130); + phi_v1 = temp_v1; + if (sp54 == sp50) + { + // Node 9 + phi_v1 = (temp_v1 + pPlayer->unkC44); + } + // Node 10 + sp48 = (s32) phi_v1; + } + else + { + // Node 11 + sp44 = (s32) pPlayer->unk89C; + sp48 = (s32) (pPlayer + (sp4C * 4))->unk1130; + } + // Node 12 + phi_s0_2 = temp_s0; + if (bondwalkItemCheckBitflags(sp50, 0x400000) == 0) + { + // Node 13 + phi_t4 = (sp3C >> 1); + if (sp3C < 0) + { + // Node 14 + phi_t4 = ((s32) (sp3C + 1) >> 1); + } + // Node 15 + phi_s0_2 = display_ammo_total_in_a1(temp_s0, sp44, (0xc4 - phi_t4), 0, 0); + } + // Node 16 + if ((sp48 > 0) || (bondwalkItemCheckBitflags(sp50, 0x400000) != 0)) + { + // Node 18 + temp_a2 = (sp3C + 1); + phi_t9 = (temp_a2 >> 1); + if (temp_a2 < 0) + { + // Node 19 + phi_t9 = ((s32) (temp_a2 + 1) >> 1); + } + // Node 20 + phi_s0_3 = display_ammo_total_in_a1(phi_s0_2, sp48, (phi_t9 + 0xcb), 1, 0); + } + else + { + + } + // Node 21 + phi_s0_4 = combiner_bayer_lod_perspective(phi_s0_3); + } + } + } + } + } + // Node 22 + return phi_s0_4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06A334 +/* 09EE64 7F06A334 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 09EE68 7F06A338 AFB00028 */ sw $s0, 0x28($sp) +/* 09EE6C 7F06A33C 00808025 */ move $s0, $a0 +/* 09EE70 7F06A340 AFBF002C */ sw $ra, 0x2c($sp) +/* 09EE74 7F06A344 0FC17674 */ jal get_item_in_hand +/* 09EE78 7F06A348 24040001 */ li $a0, 1 +/* 09EE7C 7F06A34C AFA20054 */ sw $v0, 0x54($sp) +/* 09EE80 7F06A350 0FC17674 */ jal get_item_in_hand +/* 09EE84 7F06A354 00002025 */ move $a0, $zero +/* 09EE88 7F06A358 1040008E */ beqz $v0, .L7F06A594 +/* 09EE8C 7F06A35C 00402025 */ move $a0, $v0 +/* 09EE90 7F06A360 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09EE94 7F06A364 AFA20050 */ sw $v0, 0x50($sp) +/* 09EE98 7F06A368 1040008A */ beqz $v0, .L7F06A594 +/* 09EE9C 7F06A36C AFA2004C */ sw $v0, 0x4c($sp) +/* 09EEA0 7F06A370 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09EEA4 7F06A374 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09EEA8 7F06A378 24010006 */ li $at, 6 +/* 09EEAC 7F06A37C 8DC20894 */ lw $v0, 0x894($t6) +/* 09EEB0 7F06A380 10410084 */ beq $v0, $at, .L7F06A594 +/* 09EEB4 7F06A384 24010007 */ li $at, 7 +/* 09EEB8 7F06A388 10410082 */ beq $v0, $at, .L7F06A594 +/* 09EEBC 7F06A38C 8FA40050 */ lw $a0, 0x50($sp) +/* 09EEC0 7F06A390 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EEC4 7F06A394 3C050008 */ lui $a1, 8 +/* 09EEC8 7F06A398 1440007E */ bnez $v0, .L7F06A594 +/* 09EECC 7F06A39C 8FAF004C */ lw $t7, 0x4c($sp) +/* 09EED0 7F06A3A0 000FC080 */ sll $t8, $t7, 2 +/* 09EED4 7F06A3A4 030FC023 */ subu $t8, $t8, $t7 +/* 09EED8 7F06A3A8 3C198003 */ lui $t9, %hi(ammo_related) +/* 09EEDC 7F06A3AC 27395EF0 */ addiu $t9, %lo(ammo_related) # addiu $t9, $t9, 0x5ef0 +/* 09EEE0 7F06A3B0 0018C080 */ sll $t8, $t8, 2 +/* 09EEE4 7F06A3B4 03191021 */ addu $v0, $t8, $t9 +/* 09EEE8 7F06A3B8 8C480004 */ lw $t0, 4($v0) +/* 09EEEC 7F06A3BC 24090005 */ li $t1, 5 +/* 09EEF0 7F06A3C0 AFA9003C */ sw $t1, 0x3c($sp) +/* 09EEF4 7F06A3C4 AFA20030 */ sw $v0, 0x30($sp) +/* 09EEF8 7F06A3C8 8FA40050 */ lw $a0, 0x50($sp) +/* 09EEFC 7F06A3CC 0FC1722D */ jal get_ptr_item_statistics +/* 09EF00 7F06A3D0 AFA80040 */ sw $t0, 0x40($sp) +/* 09EF04 7F06A3D4 8FA30040 */ lw $v1, 0x40($sp) +/* 09EF08 7F06A3D8 3C0A8009 */ lui $t2, %hi(globalbank_rdram_offset) +/* 09EF0C 7F06A3DC 1060001C */ beqz $v1, .L7F06A450 +/* 09EF10 7F06A3E0 00000000 */ nop +/* 09EF14 7F06A3E4 8D4AD0B0 */ lw $t2, %lo(globalbank_rdram_offset)($t2) +/* 09EF18 7F06A3E8 006A1821 */ addu $v1, $v1, $t2 +/* 09EF1C 7F06A3EC 0C001149 */ jal get_video2_settings_uly +/* 09EF20 7F06A3F0 AFA30040 */ sw $v1, 0x40($sp) +/* 09EF24 7F06A3F4 0C00112B */ jal get_video2_settings_height +/* 09EF28 7F06A3F8 A7A20034 */ sh $v0, 0x34($sp) +/* 09EF2C 7F06A3FC 87AB0034 */ lh $t3, 0x34($sp) +/* 09EF30 7F06A400 8FAE0030 */ lw $t6, 0x30($sp) +/* 09EF34 7F06A404 AFA00014 */ sw $zero, 0x14($sp) +/* 09EF38 7F06A408 004B6021 */ addu $t4, $v0, $t3 +/* 09EF3C 7F06A40C 258DFFEC */ addiu $t5, $t4, -0x14 +/* 09EF40 7F06A410 448D2000 */ mtc1 $t5, $f4 +/* 09EF44 7F06A414 240F0001 */ li $t7, 1 +/* 09EF48 7F06A418 02002025 */ move $a0, $s0 +/* 09EF4C 7F06A41C 468021A0 */ cvt.s.w $f6, $f4 +/* 09EF50 7F06A420 8FA50040 */ lw $a1, 0x40($sp) +/* 09EF54 7F06A424 3C064348 */ lui $a2, 0x4348 +/* 09EF58 7F06A428 3C074334 */ lui $a3, 0x4334 +/* 09EF5C 7F06A42C E7A60010 */ swc1 $f6, 0x10($sp) +/* 09EF60 7F06A430 C5C80008 */ lwc1 $f8, 8($t6) +/* 09EF64 7F06A434 AFAF001C */ sw $t7, 0x1c($sp) +/* 09EF68 7F06A438 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09EF6C 7F06A43C E7A80018 */ swc1 $f8, 0x18($sp) +/* 09EF70 7F06A440 8FB80040 */ lw $t8, 0x40($sp) +/* 09EF74 7F06A444 00408025 */ move $s0, $v0 +/* 09EF78 7F06A448 93190004 */ lbu $t9, 4($t8) +/* 09EF7C 7F06A44C AFB9003C */ sw $t9, 0x3c($sp) +.L7F06A450: +/* 09EF80 7F06A450 0FC2B366 */ jal microcode_constructor +/* 09EF84 7F06A454 02002025 */ move $a0, $s0 +/* 09EF88 7F06A458 00408025 */ move $s0, $v0 +/* 09EF8C 7F06A45C 8FA40050 */ lw $a0, 0x50($sp) +/* 09EF90 7F06A460 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EF94 7F06A464 3C050040 */ lui $a1, 0x40 +/* 09EF98 7F06A468 10400011 */ beqz $v0, .L7F06A4B0 +/* 09EF9C 7F06A46C 3C050040 */ lui $a1, 0x40 +/* 09EFA0 7F06A470 8FA9004C */ lw $t1, 0x4c($sp) +/* 09EFA4 7F06A474 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EFA8 7F06A478 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EFAC 7F06A47C AFA00044 */ sw $zero, 0x44($sp) +/* 09EFB0 7F06A480 00095080 */ sll $t2, $t1, 2 +/* 09EFB4 7F06A484 8FAD0054 */ lw $t5, 0x54($sp) +/* 09EFB8 7F06A488 8FAE0050 */ lw $t6, 0x50($sp) +/* 09EFBC 7F06A48C 004A5821 */ addu $t3, $v0, $t2 +/* 09EFC0 7F06A490 8D6C1130 */ lw $t4, 0x1130($t3) +/* 09EFC4 7F06A494 8C48089C */ lw $t0, 0x89c($v0) +/* 09EFC8 7F06A498 15AE0003 */ bne $t5, $t6, .L7F06A4A8 +/* 09EFCC 7F06A49C 010C1821 */ addu $v1, $t0, $t4 +/* 09EFD0 7F06A4A0 8C4F0C44 */ lw $t7, 0xc44($v0) +/* 09EFD4 7F06A4A4 006F1821 */ addu $v1, $v1, $t7 +.L7F06A4A8: +/* 09EFD8 7F06A4A8 1000000A */ b .L7F06A4D4 +/* 09EFDC 7F06A4AC AFA30048 */ sw $v1, 0x48($sp) +.L7F06A4B0: +/* 09EFE0 7F06A4B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EFE4 7F06A4B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EFE8 7F06A4B8 8FB9004C */ lw $t9, 0x4c($sp) +/* 09EFEC 7F06A4BC 8C58089C */ lw $t8, 0x89c($v0) +/* 09EFF0 7F06A4C0 00194880 */ sll $t1, $t9, 2 +/* 09EFF4 7F06A4C4 00495021 */ addu $t2, $v0, $t1 +/* 09EFF8 7F06A4C8 AFB80044 */ sw $t8, 0x44($sp) +/* 09EFFC 7F06A4CC 8D4B1130 */ lw $t3, 0x1130($t2) +/* 09F000 7F06A4D0 AFAB0048 */ sw $t3, 0x48($sp) +.L7F06A4D4: +/* 09F004 7F06A4D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F008 7F06A4D8 8FA40050 */ lw $a0, 0x50($sp) +/* 09F00C 7F06A4DC 14400011 */ bnez $v0, .L7F06A524 +/* 09F010 7F06A4E0 02002025 */ move $a0, $s0 +/* 09F014 7F06A4E4 8FA8003C */ lw $t0, 0x3c($sp) +/* 09F018 7F06A4E8 240D00C4 */ li $t5, 196 +/* 09F01C 7F06A4EC 240E00B1 */ li $t6, 177 +/* 09F020 7F06A4F0 240F0002 */ li $t7, 2 +/* 09F024 7F06A4F4 AFAF0014 */ sw $t7, 0x14($sp) +/* 09F028 7F06A4F8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09F02C 7F06A4FC 8FA50044 */ lw $a1, 0x44($sp) +/* 09F030 7F06A500 05010003 */ bgez $t0, .L7F06A510 +/* 09F034 7F06A504 00086043 */ sra $t4, $t0, 1 +/* 09F038 7F06A508 25010001 */ addiu $at, $t0, 1 +/* 09F03C 7F06A50C 00016043 */ sra $t4, $at, 1 +.L7F06A510: +/* 09F040 7F06A510 01AC3023 */ subu $a2, $t5, $t4 +/* 09F044 7F06A514 00003825 */ move $a3, $zero +/* 09F048 7F06A518 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09F04C 7F06A51C AFA00018 */ sw $zero, 0x18($sp) +/* 09F050 7F06A520 00408025 */ move $s0, $v0 +.L7F06A524: +/* 09F054 7F06A524 8FB80048 */ lw $t8, 0x48($sp) +/* 09F058 7F06A528 8FA40050 */ lw $a0, 0x50($sp) +/* 09F05C 7F06A52C 5F000006 */ bgtzl $t8, .L7F06A548 +/* 09F060 7F06A530 8FA6003C */ lw $a2, 0x3c($sp) +/* 09F064 7F06A534 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F068 7F06A538 3C050040 */ lui $a1, 0x40 +/* 09F06C 7F06A53C 10400012 */ beqz $v0, .L7F06A588 +/* 09F070 7F06A540 00000000 */ nop +/* 09F074 7F06A544 8FA6003C */ lw $a2, 0x3c($sp) +.L7F06A548: +/* 09F078 7F06A548 240900B1 */ li $t1, 177 +/* 09F07C 7F06A54C 240A0002 */ li $t2, 2 +/* 09F080 7F06A550 24C60001 */ addiu $a2, $a2, 1 +/* 09F084 7F06A554 AFAA0014 */ sw $t2, 0x14($sp) +/* 09F088 7F06A558 AFA90010 */ sw $t1, 0x10($sp) +/* 09F08C 7F06A55C 02002025 */ move $a0, $s0 +/* 09F090 7F06A560 8FA50048 */ lw $a1, 0x48($sp) +/* 09F094 7F06A564 04C10003 */ bgez $a2, .L7F06A574 +/* 09F098 7F06A568 0006C843 */ sra $t9, $a2, 1 +/* 09F09C 7F06A56C 24C10001 */ addiu $at, $a2, 1 +/* 09F0A0 7F06A570 0001C843 */ sra $t9, $at, 1 +.L7F06A574: +/* 09F0A4 7F06A574 272600CB */ addiu $a2, $t9, 0xcb +/* 09F0A8 7F06A578 24070001 */ li $a3, 1 +/* 09F0AC 7F06A57C 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09F0B0 7F06A580 AFA00018 */ sw $zero, 0x18($sp) +/* 09F0B4 7F06A584 00408025 */ move $s0, $v0 +.L7F06A588: +/* 09F0B8 7F06A588 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09F0BC 7F06A58C 02002025 */ move $a0, $s0 +/* 09F0C0 7F06A590 00408025 */ move $s0, $v0 +.L7F06A594: +/* 09F0C4 7F06A594 8FBF002C */ lw $ra, 0x2c($sp) +/* 09F0C8 7F06A598 02001025 */ move $v0, $s0 +/* 09F0CC 7F06A59C 8FB00028 */ lw $s0, 0x28($sp) +/* 09F0D0 7F06A5A0 03E00008 */ jr $ra +/* 09F0D4 7F06A5A4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void *set_unset_bitflags(s32 arg0, s32 arg1) { + // Node 0 + if (arg1 != 0) + { + // Node 1 + // Error: I don't know how to handle not! + return; + } + // Node 2 + (void *)0x80080000->unk-5F50->unk1128 = (s32) ((void *)0x80080000->unk-5F50->unk1128 | arg0); + return (void *)0x80080000->unk-5F50; +} + +#else +GLOBAL_ASM( +.text +glabel set_unset_bitflags +/* 09F0D8 7F06A5A8 10A00008 */ beqz $a1, .L7F06A5CC +/* 09F0DC 7F06A5AC 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F0E0 7F06A5B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F0E4 7F06A5B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F0E8 7F06A5B8 00807827 */ not $t7, $a0 +/* 09F0EC 7F06A5BC 8C4E1128 */ lw $t6, 0x1128($v0) +/* 09F0F0 7F06A5C0 01CFC024 */ and $t8, $t6, $t7 +/* 09F0F4 7F06A5C4 03E00008 */ jr $ra +/* 09F0F8 7F06A5C8 AC581128 */ sw $t8, 0x1128($v0) + +.L7F06A5CC: +/* 09F0FC 7F06A5CC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F100 7F06A5D0 8C591128 */ lw $t9, 0x1128($v0) +/* 09F104 7F06A5D4 03244025 */ or $t0, $t9, $a0 +/* 09F108 7F06A5D8 AC481128 */ sw $t0, 0x1128($v0) +/* 09F10C 7F06A5DC 03E00008 */ jr $ra +/* 09F110 7F06A5E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F06A5E4(void *arg0) { + f32 sp44; + f32 sp48; + f32 sp4C; + f32 sp50; + ?32 sp54; + void *phi_return_reg; + + // Node 0 + phi_return_reg = pPlayer; + if (pPlayer->unk1128 == 0) + { + // Node 1 + phi_return_reg = pPlayer; + if (pPlayer->unk29C4 == 0) + { + // Node 2 + sp54 = (?32) *arg0; + likely_generate_DL_for_image_declaration(&sp54, crosshairimage, 4, 0, 0); + sp4C = (f32) pPlayer->unkFE8; + sp44 = 16.0f; + sp48 = 16.0f; + sp50 = (f32) pPlayer->unkFEC; + if (get_screen_ratio() == 1) + { + // Node 3 + sp44 = (f32) (sp44 * 0.75f); + } + // Node 4 + *arg0 = sp54; + phi_return_reg = display_image_at_on_screen_coord(&sp54, &sp4C, &sp44, 0x20, 0x20, 0, 0, 1, 0xff, 0xff, 0xff, 0x6e, (s32) (0 < crosshairimage->unk6), 0); + } + } + // Node 5 + return phi_return_reg; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06A5E4 +/* 09F114 7F06A5E4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F118 7F06A5E8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F11C 7F06A5EC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 09F120 7F06A5F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 09F124 7F06A5F4 AFA40058 */ sw $a0, 0x58($sp) +/* 09F128 7F06A5F8 8C4E1128 */ lw $t6, 0x1128($v0) +/* 09F12C 7F06A5FC 55C0003B */ bnezl $t6, .L7F06A6EC +/* 09F130 7F06A600 8FBF003C */ lw $ra, 0x3c($sp) +/* 09F134 7F06A604 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 09F138 7F06A608 3C058009 */ lui $a1, %hi(crosshairimage) +/* 09F13C 7F06A60C 24060004 */ li $a2, 4 +/* 09F140 7F06A610 15E00035 */ bnez $t7, .L7F06A6E8 +/* 09F144 7F06A614 00003825 */ move $a3, $zero +/* 09F148 7F06A618 8C990000 */ lw $t9, ($a0) +/* 09F14C 7F06A61C AFA00010 */ sw $zero, 0x10($sp) +/* 09F150 7F06A620 27A40054 */ addiu $a0, $sp, 0x54 +/* 09F154 7F06A624 8CA5D114 */ lw $a1, %lo(crosshairimage)($a1) +/* 09F158 7F06A628 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 09F15C 7F06A62C AFB90054 */ sw $t9, 0x54($sp) +/* 09F160 7F06A630 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F164 7F06A634 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F168 7F06A638 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09F16C 7F06A63C 44810000 */ mtc1 $at, $f0 +/* 09F170 7F06A640 C4440FE8 */ lwc1 $f4, 0xfe8($v0) +/* 09F174 7F06A644 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 09F178 7F06A648 C4460FEC */ lwc1 $f6, 0xfec($v0) +/* 09F17C 7F06A64C E7A00044 */ swc1 $f0, 0x44($sp) +/* 09F180 7F06A650 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09F184 7F06A654 0FC293B8 */ jal get_screen_ratio +/* 09F188 7F06A658 E7A60050 */ swc1 $f6, 0x50($sp) +/* 09F18C 7F06A65C 24010001 */ li $at, 1 +/* 09F190 7F06A660 14410006 */ bne $v0, $at, .L7F06A67C +/* 09F194 7F06A664 27A40054 */ addiu $a0, $sp, 0x54 +/* 09F198 7F06A668 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 09F19C 7F06A66C 44815000 */ mtc1 $at, $f10 +/* 09F1A0 7F06A670 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 09F1A4 7F06A674 460A4402 */ mul.s $f16, $f8, $f10 +/* 09F1A8 7F06A678 E7B00044 */ swc1 $f16, 0x44($sp) +.L7F06A67C: +/* 09F1AC 7F06A67C 3C0E8009 */ lui $t6, %hi(crosshairimage) +/* 09F1B0 7F06A680 8DCED114 */ lw $t6, %lo(crosshairimage)($t6) +/* 09F1B4 7F06A684 24080020 */ li $t0, 32 +/* 09F1B8 7F06A688 24090001 */ li $t1, 1 +/* 09F1BC 7F06A68C 240A00FF */ li $t2, 255 +/* 09F1C0 7F06A690 240B00FF */ li $t3, 255 +/* 09F1C4 7F06A694 240C00FF */ li $t4, 255 +/* 09F1C8 7F06A698 240D006E */ li $t5, 110 +/* 09F1CC 7F06A69C AFAD002C */ sw $t5, 0x2c($sp) +/* 09F1D0 7F06A6A0 AFAC0028 */ sw $t4, 0x28($sp) +/* 09F1D4 7F06A6A4 AFAB0024 */ sw $t3, 0x24($sp) +/* 09F1D8 7F06A6A8 AFAA0020 */ sw $t2, 0x20($sp) +/* 09F1DC 7F06A6AC AFA9001C */ sw $t1, 0x1c($sp) +/* 09F1E0 7F06A6B0 AFA80010 */ sw $t0, 0x10($sp) +/* 09F1E4 7F06A6B4 AFA00014 */ sw $zero, 0x14($sp) +/* 09F1E8 7F06A6B8 AFA00018 */ sw $zero, 0x18($sp) +/* 09F1EC 7F06A6BC 91CF0006 */ lbu $t7, 6($t6) +/* 09F1F0 7F06A6C0 AFA00034 */ sw $zero, 0x34($sp) +/* 09F1F4 7F06A6C4 27A5004C */ addiu $a1, $sp, 0x4c +/* 09F1F8 7F06A6C8 000FC02A */ slt $t8, $zero, $t7 +/* 09F1FC 7F06A6CC AFB80030 */ sw $t8, 0x30($sp) +/* 09F200 7F06A6D0 27A60044 */ addiu $a2, $sp, 0x44 +/* 09F204 7F06A6D4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 09F208 7F06A6D8 24070020 */ li $a3, 32 +/* 09F20C 7F06A6DC 8FB90054 */ lw $t9, 0x54($sp) +/* 09F210 7F06A6E0 8FA80058 */ lw $t0, 0x58($sp) +/* 09F214 7F06A6E4 AD190000 */ sw $t9, ($t0) +.L7F06A6E8: +/* 09F218 7F06A6E8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F06A6EC: +/* 09F21C 7F06A6EC 27BD0058 */ addiu $sp, $sp, 0x58 +/* 09F220 7F06A6F0 03E00008 */ jr $ra +/* 09F224 7F06A6F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void inc_curplayer_hitcount_with_weapon(s32 arg1) { + ? temp_ret; + void *temp_v0; + + // Node 0 + temp_ret = bondwalkItemCheckBitflags(0x10000); + if (temp_ret != 0) + { + // Node 1 + temp_v0 = (pPlayersPerm + (arg1 * 4)); + *temp_v0 = (s32) (*temp_v0 + 1); + } + // Node 2 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel inc_curplayer_hitcount_with_weapon +/* 09F228 7F06A6F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09F22C 7F06A6FC AFBF0014 */ sw $ra, 0x14($sp) +/* 09F230 7F06A700 AFA5001C */ sw $a1, 0x1c($sp) +/* 09F234 7F06A704 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F238 7F06A708 3C050001 */ lui $a1, 1 +/* 09F23C 7F06A70C 10400008 */ beqz $v0, .L7F06A730 +/* 09F240 7F06A710 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F244 7F06A714 8FAF001C */ lw $t7, 0x1c($sp) +/* 09F248 7F06A718 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F24C 7F06A71C 000FC080 */ sll $t8, $t7, 2 +/* 09F250 7F06A720 01D81021 */ addu $v0, $t6, $t8 +/* 09F254 7F06A724 8C590000 */ lw $t9, ($v0) +/* 09F258 7F06A728 27280001 */ addiu $t0, $t9, 1 +/* 09F25C 7F06A72C AC480000 */ sw $t0, ($v0) +.L7F06A730: +/* 09F260 7F06A730 8FBF0014 */ lw $ra, 0x14($sp) +/* 09F264 7F06A734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09F268 7F06A738 03E00008 */ jr $ra +/* 09F26C 7F06A73C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_shot_register(s32 arg0) { + // Node 0 + return *(pPlayersPerm + (arg0 * 4)); +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_shot_register +/* 09F270 7F06A740 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F274 7F06A744 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F278 7F06A748 00047880 */ sll $t7, $a0, 2 +/* 09F27C 7F06A74C 01CFC021 */ addu $t8, $t6, $t7 +/* 09F280 7F06A750 03E00008 */ jr $ra +/* 09F284 7F06A754 8F020000 */ lw $v0, ($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void inc_cur_civilian_casualties(void) +{ + pPlayersPerm->killed_civilians++ + +} +#else +GLOBAL_ASM( +.text +glabel inc_cur_civilian_casualties +/* 09F288 7F06A758 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 09F28C 7F06A75C 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 09F290 7F06A760 8C4E006C */ lw $t6, 0x6c($v0) +/* 09F294 7F06A764 25CF0001 */ addiu $t7, $t6, 1 +/* 09F298 7F06A768 03E00008 */ jr $ra +/* 09F29C 7F06A76C AC4F006C */ sw $t7, 0x6c($v0) +) +#endif + + + + + +#ifdef NONMATCHING +int get_civilian_casualties(void) +{ + return pPlayersPerm->killed_civilians; +} +#else +GLOBAL_ASM( +.text +glabel get_civilian_casualties +/* 09F2A0 7F06A770 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F2A4 7F06A774 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F2A8 7F06A778 03E00008 */ jr $ra +/* 09F2AC 7F06A77C 8DC2006C */ lw $v0, 0x6c($t6) +) +#endif + + + + + +#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 + pPlayersPerm->killcount = (s32) (pPlayersPerm->killcount + 1); + pPlayer->field_29F8 = (s32) (pPlayer->field_29F8 + 1); + temp_ret = get_num_players(); + phi_return_reg = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + sp34 = get_mission_timer(); + sprintf(&sp40, &aSD, get_textptr_for_textID(0x98da), pPlayersPerm->killcount); + display_string_in_lower_left_corner(&sp40); + if (pPlayersPerm->killcount >= 2) + { + // Node 2 + temp_v0 = (sp34 - pPlayer->last_kill_time); + if (pPlayersPerm->slowest2kills < temp_v0) + { + // Node 3 + pPlayersPerm->slowest2kills = temp_v0; + } + // Node 4 + if (temp_v0 < pPlayersPerm->fastest2kills) + { + // Node 5 + pPlayersPerm->fastest2kills = temp_v0; + } + } + // Node 6 + pPlayer->unk29F0 = (s32) pPlayer->unk29EC; + pPlayer->unk29EC = (s32) pPlayer->unk29E8; + pPlayer->unk29E8 = (s32) pPlayer->last_kill_time; + pPlayer->last_kill_time = sp34; + phi_a0 = 1; + if (-1 != pPlayer->unk29E8) + { + // Node 7 + phi_a0 = 1; + if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78) + { + // Node 8 + phi_a0 = 2; + if (-1 != pPlayer->unk29EC) + { + // Node 9 + phi_a0 = 2; + if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78) + { + // Node 10 + temp_a0 = (2 + 1); + phi_a0 = temp_a0; + if (-1 != pPlayer->unk29F0) + { + // Node 11 + phi_a0 = temp_a0; + if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78) + { + // Node 12 + phi_a0 = (temp_a0 + 1); + } + } + } + } + } + } + // Node 13 + phi_return_reg = pPlayer; + if (pPlayersPerm->most_killed_one_time < phi_a0) + { + // Node 14 + pPlayersPerm->most_killed_one_time = (s32) phi_a0; + phi_return_reg = pPlayer; + } + } + // Node 15 + return phi_return_reg; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_kills_display_text_in_MP +/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp) +/* 09F2C4 7F06A794 8C6E001C */ lw $t6, 0x1c($v1) +/* 09F2C8 7F06A798 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F2D0 7F06A7A0 25CF0001 */ addiu $t7, $t6, 1 +/* 09F2D4 7F06A7A4 AC6F001C */ sw $t7, 0x1c($v1) +/* 09F2D8 7F06A7A8 8E020000 */ lw $v0, ($s0) +/* 09F2DC 7F06A7AC 8C5829F8 */ lw $t8, 0x29f8($v0) +/* 09F2E0 7F06A7B0 27190001 */ addiu $t9, $t8, 1 +/* 09F2E4 7F06A7B4 0FC26919 */ jal get_num_players +/* 09F2E8 7F06A7B8 AC5929F8 */ sw $t9, 0x29f8($v0) +/* 09F2EC 7F06A7BC 28410002 */ slti $at, $v0, 2 +/* 09F2F0 7F06A7C0 54200054 */ bnezl $at, .L7F06A914 +/* 09F2F4 7F06A7C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F2F8 7F06A7C8 0FC22FEE */ jal get_mission_timer +/* 09F2FC 7F06A7CC 00000000 */ nop +/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) +/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID +/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 +/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD) +/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8 +/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F320 7F06A7F0 00403025 */ move $a2, $v0 +/* 09F324 7F06A7F4 0C002B25 */ jal sprintf +/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0) +/* 09F32C 7F06A7FC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1) +/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2 +/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860 +/* 09F348 7F06A818 8E020000 */ lw $v0, ($s0) +/* 09F34C 7F06A81C 8E0B0000 */ lw $t3, ($s0) +/* 09F350 7F06A820 8FAA0034 */ lw $t2, 0x34($sp) +/* 09F354 7F06A824 8C6D0048 */ lw $t5, 0x48($v1) +/* 09F358 7F06A828 8D6C29E4 */ lw $t4, 0x29e4($t3) +/* 09F35C 7F06A82C 014C1023 */ subu $v0, $t2, $t4 +/* 09F360 7F06A830 01A2082A */ slt $at, $t5, $v0 +/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C +/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1) +/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1) +/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1) +.L7F06A84C: +/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6 +/* 09F380 7F06A850 50200003 */ beql $at, $zero, .L7F06A860 +/* 09F384 7F06A854 8E020000 */ lw $v0, ($s0) +/* 09F388 7F06A858 AC620044 */ sw $v0, 0x44($v1) +/* 09F38C 7F06A85C 8E020000 */ lw $v0, ($s0) +.L7F06A860: +/* 09F390 7F06A860 2406FFFF */ li $a2, -1 +/* 09F394 7F06A864 24040001 */ li $a0, 1 +/* 09F398 7F06A868 8C4F29EC */ lw $t7, 0x29ec($v0) +/* 09F39C 7F06A86C AC4F29F0 */ sw $t7, 0x29f0($v0) +/* 09F3A0 7F06A870 8E020000 */ lw $v0, ($s0) +/* 09F3A4 7F06A874 8C5829E8 */ lw $t8, 0x29e8($v0) +/* 09F3A8 7F06A878 AC5829EC */ sw $t8, 0x29ec($v0) +/* 09F3AC 7F06A87C 8E020000 */ lw $v0, ($s0) +/* 09F3B0 7F06A880 8C5929E4 */ lw $t9, 0x29e4($v0) +/* 09F3B4 7F06A884 AC5929E8 */ sw $t9, 0x29e8($v0) +/* 09F3B8 7F06A888 8E090000 */ lw $t1, ($s0) +/* 09F3BC 7F06A88C 8FA80034 */ lw $t0, 0x34($sp) +/* 09F3C0 7F06A890 AD2829E4 */ sw $t0, 0x29e4($t1) +/* 09F3C4 7F06A894 8E020000 */ lw $v0, ($s0) +/* 09F3C8 7F06A898 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F3CC 7F06A89C 10C50015 */ beq $a2, $a1, .L7F06A8F4 +/* 09F3D0 7F06A8A0 00000000 */ nop +/* 09F3D4 7F06A8A4 8C4329E4 */ lw $v1, 0x29e4($v0) +/* 09F3D8 7F06A8A8 00655823 */ subu $t3, $v1, $a1 +/* 09F3DC 7F06A8AC 29610078 */ slti $at, $t3, 0x78 +/* 09F3E0 7F06A8B0 10200010 */ beqz $at, .L7F06A8F4 +/* 09F3E4 7F06A8B4 00000000 */ nop +/* 09F3E8 7F06A8B8 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F3EC 7F06A8BC 24040002 */ li $a0, 2 +/* 09F3F0 7F06A8C0 10C5000C */ beq $a2, $a1, .L7F06A8F4 +/* 09F3F4 7F06A8C4 00655023 */ subu $t2, $v1, $a1 +/* 09F3F8 7F06A8C8 29410078 */ slti $at, $t2, 0x78 +/* 09F3FC 7F06A8CC 10200009 */ beqz $at, .L7F06A8F4 +/* 09F400 7F06A8D0 00000000 */ nop +/* 09F404 7F06A8D4 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F408 7F06A8D8 24840001 */ addiu $a0, $a0, 1 +/* 09F40C 7F06A8DC 10C50005 */ beq $a2, $a1, .L7F06A8F4 +/* 09F410 7F06A8E0 00656023 */ subu $t4, $v1, $a1 +/* 09F414 7F06A8E4 29810078 */ slti $at, $t4, 0x78 +/* 09F418 7F06A8E8 10200002 */ beqz $at, .L7F06A8F4 +/* 09F41C 7F06A8EC 00000000 */ nop +/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1 +.L7F06A8F4: +/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1) +/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0 +/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914 +/* 09F438 7F06A908 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F43C 7F06A90C AC640058 */ sw $a0, 0x58($v1) +/* 09F440 7F06A910 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06A914: +/* 09F444 7F06A914 8FB00018 */ lw $s0, 0x18($sp) +/* 09F448 7F06A918 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F44C 7F06A91C 03E00008 */ jr $ra +/* 09F450 7F06A920 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_kills_display_text_in_MP +/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp) +/* 09F2C4 7F06A794 8C6E001C */ lw $t6, 0x1c($v1) +/* 09F2C8 7F06A798 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F2D0 7F06A7A0 25CF0001 */ addiu $t7, $t6, 1 +/* 09F2D4 7F06A7A4 AC6F001C */ sw $t7, 0x1c($v1) +/* 09F2D8 7F06A7A8 8E020000 */ lw $v0, ($s0) +/* 09F2DC 7F06A7AC 8C5829F8 */ lw $t8, 0x29f8($v0) +/* 09F2E0 7F06A7B0 27190001 */ addiu $t9, $t8, 1 +/* 09F2E4 7F06A7B4 0FC26919 */ jal get_num_players +/* 09F2E8 7F06A7B8 AC5929F8 */ sw $t9, 0x29f8($v0) +/* 09F2EC 7F06A7BC 28410002 */ slti $at, $v0, 2 +/* 09F2F0 7F06A7C0 54200054 */ bnezl $at, .L7F06A914 +/* 09F2F4 7F06A7C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F2F8 7F06A7C8 0FC22FEE */ jal get_mission_timer +/* 09F2FC 7F06A7CC 00000000 */ nop +/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) +/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID +/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 +/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD) +/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8 +/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F320 7F06A7F0 00403025 */ move $a2, $v0 +/* 09F324 7F06A7F4 0C002B25 */ jal sprintf +/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0) +/* 09F32C 7F06A7FC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1) +/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2 +/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860 +/* 09F348 7F06A818 8E020000 */ lw $v0, ($s0) +/* 09F34C 7F06A81C 8E0B0000 */ lw $t3, ($s0) +/* 09F350 7F06A820 8FAA0034 */ lw $t2, 0x34($sp) +/* 09F354 7F06A824 8C6D0048 */ lw $t5, 0x48($v1) +/* 09F358 7F06A828 8D6C29E4 */ lw $t4, 0x29e4($t3) +/* 09F35C 7F06A82C 014C1023 */ subu $v0, $t2, $t4 +/* 09F360 7F06A830 01A2082A */ slt $at, $t5, $v0 +/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C +/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1) +/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1) +/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1) +.L7F06A84C: +/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6 +/* 09F380 7F06A850 50200003 */ beql $at, $zero, .L7F06A860 +/* 09F384 7F06A854 8E020000 */ lw $v0, ($s0) +/* 09F388 7F06A858 AC620044 */ sw $v0, 0x44($v1) +/* 09F38C 7F06A85C 8E020000 */ lw $v0, ($s0) +.L7F06A860: +/* 09F390 7F06A860 2406FFFF */ li $a2, -1 +/* 09F394 7F06A864 24040001 */ li $a0, 1 +/* 09F398 7F06A868 8C4F29EC */ lw $t7, 0x29ec($v0) +/* 09F39C 7F06A86C AC4F29F0 */ sw $t7, 0x29f0($v0) +/* 09F3A0 7F06A870 8E020000 */ lw $v0, ($s0) +/* 09F3A4 7F06A874 8C5829E8 */ lw $t8, 0x29e8($v0) +/* 09F3A8 7F06A878 AC5829EC */ sw $t8, 0x29ec($v0) +/* 09F3AC 7F06A87C 8E020000 */ lw $v0, ($s0) +/* 09F3B0 7F06A880 8C5929E4 */ lw $t9, 0x29e4($v0) +/* 09F3B4 7F06A884 AC5929E8 */ sw $t9, 0x29e8($v0) +/* 09F3B8 7F06A888 8E090000 */ lw $t1, ($s0) +/* 09F3BC 7F06A88C 8FA80034 */ lw $t0, 0x34($sp) +/* 09F3C0 7F06A890 AD2829E4 */ sw $t0, 0x29e4($t1) +/* 09F3C4 7F06A894 8E020000 */ lw $v0, ($s0) +/* 09F3C8 7F06A898 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F3CC 7F06A89C 10C50015 */ beq $a2, $a1, .L7F06A8F4 +/* 09F3D0 7F06A8A0 00000000 */ nop +/* 09F3D4 7F06A8A4 8C4329E4 */ lw $v1, 0x29e4($v0) +/* 09F3D8 7F06A8A8 00655823 */ subu $t3, $v1, $a1 +/* 09F3DC 7F06A8AC 29610078 */ slti $at, $t3, 0x78 +/* 09F3E0 7F06A8B0 10200010 */ beqz $at, .L7F06A8F4 +/* 09F3E4 7F06A8B4 00000000 */ nop +/* 09F3E8 7F06A8B8 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F3EC 7F06A8BC 24040002 */ li $a0, 2 +/* 09F3F0 7F06A8C0 10C5000C */ beq $a2, $a1, .L7F06A8F4 +/* 09F3F4 7F06A8C4 00655023 */ subu $t2, $v1, $a1 +/* 09F3F8 7F06A8C8 29410078 */ slti $at, $t2, 0x78 +/* 09F3FC 7F06A8CC 10200009 */ beqz $at, .L7F06A8F4 +/* 09F400 7F06A8D0 00000000 */ nop +/* 09F404 7F06A8D4 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F408 7F06A8D8 24840001 */ addiu $a0, $a0, 1 +/* 09F40C 7F06A8DC 10C50005 */ beq $a2, $a1, .L7F06A8F4 +/* 09F410 7F06A8E0 00656023 */ subu $t4, $v1, $a1 +/* 09F414 7F06A8E4 29810078 */ slti $at, $t4, 0x78 +/* 09F418 7F06A8E8 10200002 */ beqz $at, .L7F06A8F4 +/* 09F41C 7F06A8EC 00000000 */ nop +/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1 +.L7F06A8F4: +/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1) +/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0 +/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914 +/* 09F438 7F06A908 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F43C 7F06A90C AC640058 */ sw $a0, 0x58($v1) +/* 09F440 7F06A910 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06A914: +/* 09F444 7F06A914 8FB00018 */ lw $s0, 0x18($sp) +/* 09F448 7F06A918 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F44C 7F06A91C 03E00008 */ jr $ra +/* 09F450 7F06A920 00000000 */ nop +) +#endif +#endif + +s32 get_curplay_killcount(void) { + return pPlayersPerm->kill_count; +} + +void increment_num_times_killed_MwtGC(void){ + pPlayersPerm->killed_gg_owner_count++; +} + +s32 get_times_killed_mwtgx(void) { + return pPlayersPerm->killed_gg_owner_count; +} + +#ifdef NONMATCHING +void increment_num_deaths(void) +{ + char acStack256 [256] + pPlayer->deathcount = (s32) (pPlayer->deathcount + 1); + if (get_num_players() >= 2) + { + if (pPlayer->deathcount == 1) + { + sprintf(acStack256, get_textptr_for_textID(0x98db)); + } + else + { + sprintf(acStack256, &aSDS, get_textptr_for_textID(0x98dc), pPlayer->deathcount, get_textptr_for_textID(0x98dd)); + } + display_string_in_lower_left_corner(acStack256); + } +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_deaths +/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F494 7F06A964 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 09F498 7F06A968 AFBF001C */ sw $ra, 0x1c($sp) +/* 09F49C 7F06A96C 8C4E29D8 */ lw $t6, 0x29d8($v0) +/* 09F4A0 7F06A970 25CF0001 */ addiu $t7, $t6, 1 +/* 09F4A4 7F06A974 0FC26919 */ jal get_num_players +/* 09F4A8 7F06A978 AC4F29D8 */ sw $t7, 0x29d8($v0) +/* 09F4AC 7F06A97C 28410002 */ slti $at, $v0, 2 +/* 09F4B0 7F06A980 1420001D */ bnez $at, .L7F06A9F8 +/* 09F4B4 7F06A984 3C188008 */ lui $t8, %hi(pPlayer) +/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09F4BC 7F06A98C 24010001 */ li $at, 1 +/* 09F4C0 7F06A990 8F1929D8 */ lw $t9, 0x29d8($t8) +/* 09F4C4 7F06A994 17210008 */ bne $t9, $at, .L7F06A9B8 +/* 09F4C8 7F06A998 00000000 */ nop +/* 09F4CC 7F06A99C 0FC30776 */ jal get_textptr_for_textID +/* 09F4D0 7F06A9A0 340498DB */ li $a0, 39131 +/* 09F4D4 7F06A9A4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F4D8 7F06A9A8 0C002B25 */ jal sprintf +/* 09F4DC 7F06A9AC 00402825 */ move $a1, $v0 +/* 09F4E0 7F06A9B0 1000000F */ b .L7F06A9F0 +/* 09F4E4 7F06A9B4 00000000 */ nop +.L7F06A9B8: +/* 09F4E8 7F06A9B8 0FC30776 */ jal get_textptr_for_textID +/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 +/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09F4F4 7F06A9C4 0FC30776 */ jal get_textptr_for_textID +/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 +/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(pPlayer) +/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 09F504 7F06A9D4 3C058005 */ lui $a1, %hi(aSDS) +/* 09F508 7F06A9D8 24A53C00 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, 0x3c00 +/* 09F50C 7F06A9DC 8D0729D8 */ lw $a3, 0x29d8($t0) +/* 09F510 7F06A9E0 AFA20010 */ sw $v0, 0x10($sp) +/* 09F514 7F06A9E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F518 7F06A9E8 0C002B25 */ jal sprintf +/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp) +.L7F06A9F0: +/* 09F520 7F06A9F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30 +.L7F06A9F8: +/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F52C 7F06A9FC 27BD0130 */ addiu $sp, $sp, 0x130 +/* 09F530 7F06AA00 03E00008 */ jr $ra +/* 09F534 7F06AA04 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_deaths +/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F494 7F06A964 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 09F498 7F06A968 AFBF001C */ sw $ra, 0x1c($sp) +/* 09F49C 7F06A96C 8C4E29D8 */ lw $t6, 0x29d8($v0) +/* 09F4A0 7F06A970 25CF0001 */ addiu $t7, $t6, 1 +/* 09F4A4 7F06A974 0FC26919 */ jal get_num_players +/* 09F4A8 7F06A978 AC4F29D8 */ sw $t7, 0x29d8($v0) +/* 09F4AC 7F06A97C 28410002 */ slti $at, $v0, 2 +/* 09F4B0 7F06A980 1420001D */ bnez $at, .L7F06A9F8 +/* 09F4B4 7F06A984 3C188008 */ lui $t8, %hi(pPlayer) +/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09F4BC 7F06A98C 24010001 */ li $at, 1 +/* 09F4C0 7F06A990 8F1929D8 */ lw $t9, 0x29d8($t8) +/* 09F4C4 7F06A994 17210008 */ bne $t9, $at, .L7F06A9B8 +/* 09F4C8 7F06A998 00000000 */ nop +/* 09F4CC 7F06A99C 0FC30776 */ jal get_textptr_for_textID +/* 09F4D0 7F06A9A0 340498DB */ li $a0, 39131 +/* 09F4D4 7F06A9A4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F4D8 7F06A9A8 0C002B25 */ jal sprintf +/* 09F4DC 7F06A9AC 00402825 */ move $a1, $v0 +/* 09F4E0 7F06A9B0 1000000F */ b .L7F06A9F0 +/* 09F4E4 7F06A9B4 00000000 */ nop +.L7F06A9B8: +/* 09F4E8 7F06A9B8 0FC30776 */ jal get_textptr_for_textID +/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 +/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09F4F4 7F06A9C4 0FC30776 */ jal get_textptr_for_textID +/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 +/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(pPlayer) +/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 09F504 7F06A9D4 3C058005 */ lui $a1, %hi(aSDS) +/* 09F508 7F06A9D8 24A53C00 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, 0x3c00 +/* 09F50C 7F06A9DC 8D0729D8 */ lw $a3, 0x29d8($t0) +/* 09F510 7F06A9E0 AFA20010 */ sw $v0, 0x10($sp) +/* 09F514 7F06A9E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F518 7F06A9E8 0C002B25 */ jal sprintf +/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp) +.L7F06A9F0: +/* 09F520 7F06A9F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30 +.L7F06A9F8: +/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F52C 7F06A9FC 27BD0130 */ addiu $sp, $sp, 0x130 +/* 09F530 7F06AA00 03E00008 */ jr $ra +/* 09F534 7F06AA04 00000000 */ nop +) +#endif +#endif + +s32 get_curplayer_numdeaths(void) { + return pPlayer->deathcount; +} + +#ifdef NONMATCHING +void *increment_num_suicides_display_MP(void) { + s32 sp34; + ? sp40; + void *temp_ret; + s32 temp_v1; + s32 temp_v1_2; + s32 phi_v1; + void *phi_return_reg; + + // Node 0 + pPlayer->num_suicides = (s32) (pPlayer->num_suicides + 1); + temp_ret = get_num_players(); + phi_return_reg = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + sp34 = get_mission_timer(); + sprintf(&sp40, &aSD_0, get_textptr_for_textID(0x98de), pPlayer->num_suicides); + display_string_in_lower_left_corner(&sp40); + if (pPlayersPerm->killcount >= 2) + { + // Node 2 + temp_v1 = (sp34 - pPlayer->last_kill_time); + if (pPlayersPerm->slowest2kills < temp_v1) + { + // Node 3 + pPlayersPerm->slowest2kills = temp_v1; + } + // Node 4 + if (temp_v1 < pPlayersPerm->fastest2kills) + { + // Node 5 + pPlayersPerm->fastest2kills = temp_v1; + } + } + // Node 6 + pPlayer->unk29F0 = (s32) pPlayer->unk29EC; + pPlayer->unk29EC = (s32) pPlayer->unk29E8; + pPlayer->unk29E8 = (s32) pPlayer->last_kill_time; + pPlayer->last_kill_time = sp34; + phi_v1 = 1; + if (-1 != pPlayer->unk29E8) + { + // Node 7 + phi_v1 = 1; + if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78) + { + // Node 8 + phi_v1 = 2; + if (-1 != pPlayer->unk29EC) + { + // Node 9 + phi_v1 = 2; + if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78) + { + // Node 10 + temp_v1_2 = (2 + 1); + phi_v1 = temp_v1_2; + if (-1 != pPlayer->unk29F0) + { + // Node 11 + phi_v1 = temp_v1_2; + if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78) + { + // Node 12 + phi_v1 = (temp_v1_2 + 1); + } + } + } + } + } + } + // Node 13 + phi_return_reg = pPlayersPerm; + if (pPlayersPerm->most_killed_one_time < phi_v1) + { + // Node 14 + pPlayersPerm->most_killed_one_time = (s32) phi_v1; + phi_return_reg = pPlayersPerm; + } + } + // Node 15 + return phi_return_reg; +} + +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_suicides_display_MP +/* 09F548 7F06AA18 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F54C 7F06AA1C AFB00018 */ sw $s0, 0x18($sp) +/* 09F550 7F06AA20 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F554 7F06AA24 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F558 7F06AA28 8E020000 */ lw $v0, ($s0) +/* 09F55C 7F06AA2C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F560 7F06AA30 8C4E29DC */ lw $t6, 0x29dc($v0) +/* 09F564 7F06AA34 25CF0001 */ addiu $t7, $t6, 1 +/* 09F568 7F06AA38 0FC26919 */ jal get_num_players +/* 09F56C 7F06AA3C AC4F29DC */ sw $t7, 0x29dc($v0) +/* 09F570 7F06AA40 28410002 */ slti $at, $v0, 2 +/* 09F574 7F06AA44 54200052 */ bnezl $at, .L7F06AB90 +/* 09F578 7F06AA48 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F57C 7F06AA4C 0FC22FEE */ jal get_mission_timer +/* 09F580 7F06AA50 00000000 */ nop +/* 09F584 7F06AA54 AFA20034 */ sw $v0, 0x34($sp) +/* 09F588 7F06AA58 0FC30776 */ jal get_textptr_for_textID +/* 09F58C 7F06AA5C 340498DE */ li $a0, 39134 +/* 09F590 7F06AA60 8E180000 */ lw $t8, ($s0) +/* 09F594 7F06AA64 3C058005 */ lui $a1, %hi(aSD_0) +/* 09F598 7F06AA68 24A53C0C */ addiu $a1, %lo(aSD_0) # addiu $a1, $a1, 0x3c0c +/* 09F59C 7F06AA6C 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0 +/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf +/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8) +/* 09F5AC 7F06AA7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm) +/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c +/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3) +/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0) +/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2 +/* 09F5C8 7F06AA98 54200011 */ bnezl $at, .L7F06AAE0 +/* 09F5CC 7F06AA9C 8E020000 */ lw $v0, ($s0) +/* 09F5D0 7F06AAA0 8E090000 */ lw $t1, ($s0) +/* 09F5D4 7F06AAA4 8FA80034 */ lw $t0, 0x34($sp) +/* 09F5D8 7F06AAA8 8C4B0048 */ lw $t3, 0x48($v0) +/* 09F5DC 7F06AAAC 8D2A29E4 */ lw $t2, 0x29e4($t1) +/* 09F5E0 7F06AAB0 010A1823 */ subu $v1, $t0, $t2 +/* 09F5E4 7F06AAB4 0163082A */ slt $at, $t3, $v1 +/* 09F5E8 7F06AAB8 50200004 */ beql $at, $zero, .L7F06AACC +/* 09F5EC 7F06AABC 8C4C0044 */ lw $t4, 0x44($v0) +/* 09F5F0 7F06AAC0 AC430048 */ sw $v1, 0x48($v0) +/* 09F5F4 7F06AAC4 8CE20000 */ lw $v0, ($a3) +/* 09F5F8 7F06AAC8 8C4C0044 */ lw $t4, 0x44($v0) +.L7F06AACC: +/* 09F5FC 7F06AACC 006C082A */ slt $at, $v1, $t4 +/* 09F600 7F06AAD0 50200003 */ beql $at, $zero, .L7F06AAE0 +/* 09F604 7F06AAD4 8E020000 */ lw $v0, ($s0) +/* 09F608 7F06AAD8 AC430044 */ sw $v1, 0x44($v0) +/* 09F60C 7F06AADC 8E020000 */ lw $v0, ($s0) +.L7F06AAE0: +/* 09F610 7F06AAE0 2406FFFF */ li $a2, -1 +/* 09F614 7F06AAE4 24030001 */ li $v1, 1 +/* 09F618 7F06AAE8 8C4D29EC */ lw $t5, 0x29ec($v0) +/* 09F61C 7F06AAEC AC4D29F0 */ sw $t5, 0x29f0($v0) +/* 09F620 7F06AAF0 8E020000 */ lw $v0, ($s0) +/* 09F624 7F06AAF4 8C4E29E8 */ lw $t6, 0x29e8($v0) +/* 09F628 7F06AAF8 AC4E29EC */ sw $t6, 0x29ec($v0) +/* 09F62C 7F06AAFC 8E020000 */ lw $v0, ($s0) +/* 09F630 7F06AB00 8C4F29E4 */ lw $t7, 0x29e4($v0) +/* 09F634 7F06AB04 AC4F29E8 */ sw $t7, 0x29e8($v0) +/* 09F638 7F06AB08 8E190000 */ lw $t9, ($s0) +/* 09F63C 7F06AB0C 8FB80034 */ lw $t8, 0x34($sp) +/* 09F640 7F06AB10 AF3829E4 */ sw $t8, 0x29e4($t9) +/* 09F644 7F06AB14 8E020000 */ lw $v0, ($s0) +/* 09F648 7F06AB18 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F64C 7F06AB1C 50C50016 */ beql $a2, $a1, .L7F06AB78 +/* 09F650 7F06AB20 8CE20000 */ lw $v0, ($a3) +/* 09F654 7F06AB24 8C4429E4 */ lw $a0, 0x29e4($v0) +/* 09F658 7F06AB28 00854823 */ subu $t1, $a0, $a1 +/* 09F65C 7F06AB2C 29210078 */ slti $at, $t1, 0x78 +/* 09F660 7F06AB30 50200011 */ beql $at, $zero, .L7F06AB78 +/* 09F664 7F06AB34 8CE20000 */ lw $v0, ($a3) +/* 09F668 7F06AB38 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F66C 7F06AB3C 24030002 */ li $v1, 2 +/* 09F670 7F06AB40 10C5000C */ beq $a2, $a1, .L7F06AB74 +/* 09F674 7F06AB44 00854023 */ subu $t0, $a0, $a1 +/* 09F678 7F06AB48 29010078 */ slti $at, $t0, 0x78 +/* 09F67C 7F06AB4C 5020000A */ beql $at, $zero, .L7F06AB78 +/* 09F680 7F06AB50 8CE20000 */ lw $v0, ($a3) +/* 09F684 7F06AB54 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F688 7F06AB58 24630001 */ addiu $v1, $v1, 1 +/* 09F68C 7F06AB5C 10C50005 */ beq $a2, $a1, .L7F06AB74 +/* 09F690 7F06AB60 00855023 */ subu $t2, $a0, $a1 +/* 09F694 7F06AB64 29410078 */ slti $at, $t2, 0x78 +/* 09F698 7F06AB68 50200003 */ beql $at, $zero, .L7F06AB78 +/* 09F69C 7F06AB6C 8CE20000 */ lw $v0, ($a3) +/* 09F6A0 7F06AB70 24630001 */ addiu $v1, $v1, 1 +.L7F06AB74: +/* 09F6A4 7F06AB74 8CE20000 */ lw $v0, ($a3) +.L7F06AB78: +/* 09F6A8 7F06AB78 8C4B0058 */ lw $t3, 0x58($v0) +/* 09F6AC 7F06AB7C 0163082A */ slt $at, $t3, $v1 +/* 09F6B0 7F06AB80 50200003 */ beql $at, $zero, .L7F06AB90 +/* 09F6B4 7F06AB84 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F6B8 7F06AB88 AC430058 */ sw $v1, 0x58($v0) +/* 09F6BC 7F06AB8C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06AB90: +/* 09F6C0 7F06AB90 8FB00018 */ lw $s0, 0x18($sp) +/* 09F6C4 7F06AB94 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F6C8 7F06AB98 03E00008 */ jr $ra +/* 09F6CC 7F06AB9C 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_suicides_display_MP +/* 09F548 7F06AA18 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F54C 7F06AA1C AFB00018 */ sw $s0, 0x18($sp) +/* 09F550 7F06AA20 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F554 7F06AA24 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F558 7F06AA28 8E020000 */ lw $v0, ($s0) +/* 09F55C 7F06AA2C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F560 7F06AA30 8C4E29DC */ lw $t6, 0x29dc($v0) +/* 09F564 7F06AA34 25CF0001 */ addiu $t7, $t6, 1 +/* 09F568 7F06AA38 0FC26919 */ jal get_num_players +/* 09F56C 7F06AA3C AC4F29DC */ sw $t7, 0x29dc($v0) +/* 09F570 7F06AA40 28410002 */ slti $at, $v0, 2 +/* 09F574 7F06AA44 54200052 */ bnezl $at, .L7F06AB90 +/* 09F578 7F06AA48 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F57C 7F06AA4C 0FC22FEE */ jal get_mission_timer +/* 09F580 7F06AA50 00000000 */ nop +/* 09F584 7F06AA54 AFA20034 */ sw $v0, 0x34($sp) +/* 09F588 7F06AA58 0FC30776 */ jal get_textptr_for_textID +/* 09F58C 7F06AA5C 340498DE */ li $a0, 39134 +/* 09F590 7F06AA60 8E180000 */ lw $t8, ($s0) +/* 09F594 7F06AA64 3C058005 */ lui $a1, %hi(aSD_0) +/* 09F598 7F06AA68 24A53C0C */ addiu $a1, %lo(aSD_0) # addiu $a1, $a1, 0x3c0c +/* 09F59C 7F06AA6C 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0 +/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf +/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8) +/* 09F5AC 7F06AA7C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm) +/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c +/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3) +/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0) +/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2 +/* 09F5C8 7F06AA98 54200011 */ bnezl $at, .L7F06AAE0 +/* 09F5CC 7F06AA9C 8E020000 */ lw $v0, ($s0) +/* 09F5D0 7F06AAA0 8E090000 */ lw $t1, ($s0) +/* 09F5D4 7F06AAA4 8FA80034 */ lw $t0, 0x34($sp) +/* 09F5D8 7F06AAA8 8C4B0048 */ lw $t3, 0x48($v0) +/* 09F5DC 7F06AAAC 8D2A29E4 */ lw $t2, 0x29e4($t1) +/* 09F5E0 7F06AAB0 010A1823 */ subu $v1, $t0, $t2 +/* 09F5E4 7F06AAB4 0163082A */ slt $at, $t3, $v1 +/* 09F5E8 7F06AAB8 50200004 */ beql $at, $zero, .L7F06AACC +/* 09F5EC 7F06AABC 8C4C0044 */ lw $t4, 0x44($v0) +/* 09F5F0 7F06AAC0 AC430048 */ sw $v1, 0x48($v0) +/* 09F5F4 7F06AAC4 8CE20000 */ lw $v0, ($a3) +/* 09F5F8 7F06AAC8 8C4C0044 */ lw $t4, 0x44($v0) +.L7F06AACC: +/* 09F5FC 7F06AACC 006C082A */ slt $at, $v1, $t4 +/* 09F600 7F06AAD0 50200003 */ beql $at, $zero, .L7F06AAE0 +/* 09F604 7F06AAD4 8E020000 */ lw $v0, ($s0) +/* 09F608 7F06AAD8 AC430044 */ sw $v1, 0x44($v0) +/* 09F60C 7F06AADC 8E020000 */ lw $v0, ($s0) +.L7F06AAE0: +/* 09F610 7F06AAE0 2406FFFF */ li $a2, -1 +/* 09F614 7F06AAE4 24030001 */ li $v1, 1 +/* 09F618 7F06AAE8 8C4D29EC */ lw $t5, 0x29ec($v0) +/* 09F61C 7F06AAEC AC4D29F0 */ sw $t5, 0x29f0($v0) +/* 09F620 7F06AAF0 8E020000 */ lw $v0, ($s0) +/* 09F624 7F06AAF4 8C4E29E8 */ lw $t6, 0x29e8($v0) +/* 09F628 7F06AAF8 AC4E29EC */ sw $t6, 0x29ec($v0) +/* 09F62C 7F06AAFC 8E020000 */ lw $v0, ($s0) +/* 09F630 7F06AB00 8C4F29E4 */ lw $t7, 0x29e4($v0) +/* 09F634 7F06AB04 AC4F29E8 */ sw $t7, 0x29e8($v0) +/* 09F638 7F06AB08 8E190000 */ lw $t9, ($s0) +/* 09F63C 7F06AB0C 8FB80034 */ lw $t8, 0x34($sp) +/* 09F640 7F06AB10 AF3829E4 */ sw $t8, 0x29e4($t9) +/* 09F644 7F06AB14 8E020000 */ lw $v0, ($s0) +/* 09F648 7F06AB18 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F64C 7F06AB1C 50C50016 */ beql $a2, $a1, .L7F06AB78 +/* 09F650 7F06AB20 8CE20000 */ lw $v0, ($a3) +/* 09F654 7F06AB24 8C4429E4 */ lw $a0, 0x29e4($v0) +/* 09F658 7F06AB28 00854823 */ subu $t1, $a0, $a1 +/* 09F65C 7F06AB2C 29210078 */ slti $at, $t1, 0x78 +/* 09F660 7F06AB30 50200011 */ beql $at, $zero, .L7F06AB78 +/* 09F664 7F06AB34 8CE20000 */ lw $v0, ($a3) +/* 09F668 7F06AB38 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F66C 7F06AB3C 24030002 */ li $v1, 2 +/* 09F670 7F06AB40 10C5000C */ beq $a2, $a1, .L7F06AB74 +/* 09F674 7F06AB44 00854023 */ subu $t0, $a0, $a1 +/* 09F678 7F06AB48 29010078 */ slti $at, $t0, 0x78 +/* 09F67C 7F06AB4C 5020000A */ beql $at, $zero, .L7F06AB78 +/* 09F680 7F06AB50 8CE20000 */ lw $v0, ($a3) +/* 09F684 7F06AB54 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F688 7F06AB58 24630001 */ addiu $v1, $v1, 1 +/* 09F68C 7F06AB5C 10C50005 */ beq $a2, $a1, .L7F06AB74 +/* 09F690 7F06AB60 00855023 */ subu $t2, $a0, $a1 +/* 09F694 7F06AB64 29410078 */ slti $at, $t2, 0x78 +/* 09F698 7F06AB68 50200003 */ beql $at, $zero, .L7F06AB78 +/* 09F69C 7F06AB6C 8CE20000 */ lw $v0, ($a3) +/* 09F6A0 7F06AB70 24630001 */ addiu $v1, $v1, 1 +.L7F06AB74: +/* 09F6A4 7F06AB74 8CE20000 */ lw $v0, ($a3) +.L7F06AB78: +/* 09F6A8 7F06AB78 8C4B0058 */ lw $t3, 0x58($v0) +/* 09F6AC 7F06AB7C 0163082A */ slt $at, $t3, $v1 +/* 09F6B0 7F06AB80 50200003 */ beql $at, $zero, .L7F06AB90 +/* 09F6B4 7F06AB84 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F6B8 7F06AB88 AC430058 */ sw $v1, 0x58($v0) +/* 09F6BC 7F06AB8C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06AB90: +/* 09F6C0 7F06AB90 8FB00018 */ lw $s0, 0x18($sp) +/* 09F6C4 7F06AB94 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F6C8 7F06AB98 03E00008 */ jr $ra +/* 09F6CC 7F06AB9C 00000000 */ nop +) +#endif +#endif + + +s32 get_curplayer_numsuicides(void) { + return pPlayer->num_suicides; +} diff --git a/src/game/bondwalk.h b/src/game/bondwalk.h new file mode 100644 index 0000000..c4bd69e --- /dev/null +++ b/src/game/bondwalk.h @@ -0,0 +1,76 @@ +#ifndef _BONDWALK_H_ +#define _BONDWALK_H_ +#include "ultra64.h" +#include "game/chrobjdata.h" +#include "bondconstants.h" + +struct weapon_stats +{ + f32 field_0; + f32 pos_x; + f32 pos_y; + f32 pos_z; + f32 field_10; + f32 field_14; + f32 field_18; + s32 ammotype; + s16 mag_size; + u8 automatic_firing_rate; + s8 single_firing_rate; + u8 objects_shoot_through; + u8 sound_trigger_rate; + u16 sound; + struct Gitemheader * ptr_cartridge_struct; + f32 destruction_amount; + f32 inaccuracy; + f32 zoom; + f32 field_38; + f32 field_3C; + f32 sway; + s32 recoilspeed; + f32 recoil_back; + f32 recoil_up; + f32 bolt_recoil_back; + f32 loudness; + f32 loudness2; + f32 field_5C; + f32 field_60; + f32 field_64; + f32 field_68; + u32 bitflags; +}; + +struct gitem_data_struct +{ + struct Gitemheader * item_header; + char * item_file_name; + s32 has_no_model; + struct weapon_stats * item_weapon_stats; + u16 upper_watch_text; + u16 lower_watch_text; + f32 watch_pos_x; + f32 watch_pos_y; + f32 watch_pos_z; + f32 x_rotation; + f32 y_rotation; + u16 weapon_of_choice_text; + u16 watch_equipment_text; + f32 equip_watch_x; + f32 equip_watch_y; + f32 equip_watch_z; +}; + +struct ejected_cart { + struct Gitemheader * header; + char * text; +}; + +f32 bondwalkGetItemField68(ITEM_IDS item); +u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask); + +void bondwalkFireBothHands(void); + +f32 sub_GAME_7F0649AC(s32 param_1); + +f32 sub_GAME_7F05DCB8(HANDEDNESS hand); +#endif diff --git a/src/game/bondwalk2.c b/src/game/bondwalk2.c new file mode 100644 index 0000000..1d27ab5 --- /dev/null +++ b/src/game/bondwalk2.c @@ -0,0 +1,611 @@ +#include "ultra64.h" + + + + +#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) + { + // Node 1 + if (0.0f < arg2->unk4) + { + // 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) + { + // Node 3 + phi_v0 = temp_v0; + if (temp_f10 >= 0) + { + // 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); + } + else + { + // Node 6 + *temp_v0 = 0xfc129a25; + temp_v0->unk4 = 0xff37ffff; + phi_v0 = (temp_v0 + 8); + } + } + // Node 7 + *arg0 = (void *) phi_v0; + phi_return_reg = sub_GAME_7F06ABB0(arg4, arg5, arg6, arg7); + } + } + // 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 + + + + diff --git a/src/game/cheat_buttons.c b/src/game/cheat_buttons.c new file mode 100644 index 0000000..a85ff99 --- /dev/null +++ b/src/game/cheat_buttons.c @@ -0,0 +1,3245 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/cheat_buttons.h" +//#include "game/chraicommands.h" /* needed for ai list commands, remove when moving global ai lists to chraicommands/chrai */ +// bss +char off_CODE_bss_80079E30[0x4C]; + + + +//D:8003F430 +u32 dword_D_8003F430[] = {0x320028, 0x2300120, 0x4100032, 0x280130, 0x340420}; +//D:8003F444 +u32 dword_D_8003F444[] = {0x4200011, 0x180120, 0x240018, 0x1200410, 0x2200031}; +//D:8003F458 +u32 dword_D_8003F458[] = {0x4300022, 0x210032, 0x4200024, 0x120031, 0x8100022}; +//D:8003F46C +u32 dword_D_8003F46C[] = {0x310810, 0x4100410, 0x310230, 0x4100810, 0x310210}; +//D:8003F480 +u32 dword_D_8003F480[] = {0x8200011, 0x140032, 0x2300130, 0x4100018, 0x110430}; +//D:8003F494 +u32 dword_D_8003F494[] = {0x1100220, 0x2200810, 0x4200014, 0x220031, 0x4200028}; +//D:8003F4A8 +u32 dword_D_8003F4A8[] = {0x140430, 0x1200018, 0x310810, 0x4200120, 0x120018}; +//D:8003F4BC +u32 dword_D_8003F4BC[] = {0x120038, 0x2300830, 0x8100022, 0x180024, 0x2300110}; +//D:8003F4D0 +u32 dword_D_8003F4D0[] = {0x280032, 0x8100021, 0x120120, 0x320021, 0x8200034}; +//D:8003F4E4 +u32 dword_D_8003F4E4[] = {0x380210, 0x140024, 0x8100420, 0x110120, 0x1300014}; +//D:8003F4F8 +u32 dword_D_8003F4F8[] = {0x380012, 0x2200018, 0x2200014, 0x210110, 0x380120}; +//D:8003F50C +u32 dword_D_8003F50C[] = {0x2300210, 0x280220, 0x180014, 0x110110, 0x4200012}; +//D:8003F520 +u32 dword_D_8003F520[] = {0x120038, 0x2200810, 0x2100820, 0x140120, 0x210430}; +//D:8003F534 +u32 dword_D_8003F534[] = {0x240110, 0x210012, 0x240230, 0x210830, 0x110820}; +//D:8003F548 +u32 dword_D_8003F548[] = {0x8200014, 0x2200410, 0x220031, 0x280110, 0x1100011}; +//D:8003F55C +u32 dword_D_8003F55C[] = {0x180420, 0x110220, 0x8300034, 0x110810, 0x340810}; +//D:8003F570 +u32 dword_D_8003F570[] = {0x240031, 0x110018, 0x120120, 0x380028, 0x4300021}; +//D:8003F584 +u32 dword_D_8003F584[] = {0x4200410, 0x380220, 0x1300022, 0x1100028, 0x2200024}; +//D:8003F598 +u32 dword_D_8003F598[] = {0x340034, 0x1200230, 0x2100011, 0x2300018, 0x140110}; +//D:8003F5AC +u32 dword_D_8003F5AC[] = {0x2100830, 0x340210, 0x310220, 0x1300034, 0x8200014}; +//D:8003F5C0 +u32 dword_D_8003F5C0[] = {0x320021, 0x8200034, 0x110014, 0x2100014, 0x180420}; +//D:8003F5D4 +u32 dword_D_8003F5D4[] = {0x4200420, 0x140021, 0x1300012, 0x4200022, 0x210820}; +//D:8003F5E8 +u32 dword_D_8003F5E8[] = {0x2100014, 0x110230, 0x1200014, 0x2200032, 0x8200028}; +//D:8003F5FC +u32 dword_D_8003F5FC[] = {0x140210, 0x8300110, 0x4100410, 0x8100012, 0x180230}; +//D:8003F610 +u32 dword_D_8003F610[] = {0x240410, 0x1200011, 0x140210, 0x2100018, 0x2100038}; +//D:8003F624 +u32 dword_D_8003F624[] = {0x4200014, 0x8300120, 0x180012, 0x8100022, 0x8200012}; +//D:8003F638 +u32 dword_D_8003F638[] = {0x380220, 0x4100420, 0x280420, 0x1100018, 0x220110}; +//D:8003F64C +u32 dword_D_8003F64C[] = {0x140210, 0x1200031, 0x4200038, 0x2200038, 0x1300022}; +//D:8003F660 +u32 dword_D_8003F660[] = {0x8300031, 0x4200110, 0x8100420, 0x2200021, 0x310220, 0x80304030, 0x80304030}; +//D:8003F67C +u32 dword_D_8003F67C[] = {0x8200008, 0x1100032, 0x8200014, 0x240034, 0x8300024}; +//D:8003F690 +u32 dword_D_8003F690[] = {0x2100420, 0x2000800, 0x4000012, 0x220230, 0x1300022}; +//D:8003F6A4 +u32 dword_D_8003F6A4[] = {0x8300001, 0x2100810, 0x8000110, 0x8000034, 0x4300032}; +//D:8003F6B8 +u32 dword_D_8003F6B8[] = {0x4100810, 0x1000034, 0x1200210, 0x2000400, 0x8000014}; +//D:8003F6CC +u32 dword_D_8003F6CC[] = {0x1100820, 0x4000400, 0x140220, 0x220810, 0x4100012}; +//D:8003F6E0 +u32 dword_D_8003F6E0[] = {0x4200024, 0x8300014, 0x2000410, 0x240800, 0x4100120}; +//D:8003F6F4 +u32 dword_D_8003F6F4[] = {0x8100004, 0x20008, 0x4200810, 0x20100, 0x2100110}; +//D:8003F708 +u32 dword_D_8003F708[] = {0x4300410, 0x240200, 0x120034, 0x1000400, 0x140110}; +//D:8003F71C +u32 dword_D_8003F71C[] = {0x120220, 0x8000130, 0x1000032, 0x320410, 0x2100012}; +//D:8003F730 +u32 dword_D_8003F730[] = {0x240022, 0x40001, 0x20130, 0x10830, 0x120220}; +//D:8003F744 +u32 dword_D_8003F744[] = {0x320034, 0x220012, 0x1100230, 0x1200200, 0x320420}; +//D:8003F758 +u32 dword_D_8003F758[] = {0x340002, 0x140004, 0x40034, 0x8300004, 0x8100820}; +//D:8003F76C +u32 dword_D_8003F76C[] = {0x2300230, 0x4300230, 0x10430, 0x4300420, 0x20008}; +//D:8003F780 +u32 dword_D_8003F780[] = {0x2200830, 0x1200830, 0x320230, 0x4300004, 0x1300230}; +//D:8003F794 +u32 dword_D_8003F794[] = {0x140120, 0x120110, 0x1300830, 0x4200210, 0x1200022}; +//D:8003F7A8 +u32 dword_D_8003F7A8[] = {0x220130, 0x10002, 0x2100024, 0x2300034, 0x8200001}; +//D:8003F7BC +u32 dword_D_8003F7BC[] = {0x8000100, 0x2200410, 0x8200022, 0x2200001, 0x80430}; +//D:8003F7D0 +u32 dword_D_8003F7D0[] = {0x1300430, 0x8200430, 0x80810, 0x1300220, 0x4000024}; +//D:8003F7E4 +u32 dword_D_8003F7E4[] = {0x1200032, 0x4200210, 0x4100120, 0x80100, 0x1100830}; +//D:8003F7F8 +u32 dword_D_8003F7F8[] = {0x4000200, 0x80100, 0x4200220}; + +//D:8003F804 +u32 D_8003F804 = 0x8200002; +//D:8003F808 +u32 D_8003F808 = 0x2000004; + +//D:8003F80C +struct struct_15 D_8003F80C[] = { + {1, 0xA, 0, 0, dword_D_8003F430, 0, 0x31}, + {2, 0xA, 0, 0, dword_D_8003F444, 0xB0000000, 6}, + {3, 0xA, 0, 0, dword_D_8003F458, 0xB0010000, 2}, + {4, 0xA, 0, 0, dword_D_8003F46C, 0, 0x16}, + {5, 0xA, 0, 0, dword_D_8003F480, 0, 0x16}, + {6, 0xA, 0, 0, dword_D_8003F494, 0, 0x34}, + {7, 0xA, 0, 0, dword_D_8003F4A8, 0xB0370000, 0x66}, + {8, 0, 0, 0, 0, 0, 0x16}, + {9, 0, 0, 0, 0, 0, 0x16}, + {0xA, 0xA, 0, 0, dword_D_8003F4BC, 0xB0040000, 0x62}, + {0xB, 0, 0, 0, 0, 0xB0060000, 0x66}, + {0xC, 0, 0, 0, 0, 0xB0070000, 0x26}, + {0xD, 0, 0, 0, 0, 0, 0x12}, + {0xE, 0, 0, 0, 0, 0xB0080000, 2}, + {0xF, 0, 0, 0, 0, 0xB0380000, 0x66}, + {0x10, 0, 0, 0, 0, 0, 0x16}, + {0x11, 0, 0, 0, 0, 0xB00A0000, 0x12}, + {0x12, 0, 0, 0, 0, 0xB00B0000, 0x12}, + {0x13, 0, 0, 0, 0, 0xB00C0000, 0x12}, + {0x14, 0, 0, 0, 0, 0xB00D0000, 0x12}, + {0x15, 0, 0, 0, 0, 0xB00E0000, 0x12}, + {0x16, 0xA, 0, 0, dword_D_8003F4D0, 0, 4}, + {0x17, 0, 0, 0, 0, 0xB0430000, 0x64}, + {0x18, 0, 0, 0, 0, 0xB0400000, 0x66}, + {0x19, 0, 0, 0, 0, 0, 0x20}, + {0x1A, 0, 0, 0, 0, 0xB0410000, 0x72}, + {0x1B, 0, 0, 0, 0, 0xB0420000, 0x72}, + {0x1C, 0, 0, 0, 0, 0xB0390000, 1}, + {0x1D, 0, 0, 0, 0, 0xB03A0000, 0x12}, + {0x1E, 0, 0, 0, 0, 0xB03B0000, 0x12}, + {0x1F, 0, 0, 0, 0, 0xB03C0000, 0x12}, + {0x20, 0, 0, 0, 0, 0xB03D0000, 0x12}, + {0x21, 0, 0, 0, 0, 0xB03E0000, 0x12}, + {0x22, 0, 0, 0, 0, 0xB03F0000, 0x12}, + {0x23, 0xA, 0, 0, dword_D_8003F67C, 0, 0x11}, + {0x24, 0xA, 0, 0, dword_D_8003F690, 0, 0x11}, + {0x25, 0xA, 0, 0, dword_D_8003F6A4, 0, 0x11}, + {0x26, 0xA, 0, 0, dword_D_8003F6B8, 0, 0x11}, + {0x27, 0xA, 0, 0, dword_D_8003F6CC, 0, 0x11}, + {0x28, 0xA, 0, 0, dword_D_8003F6E0, 0, 0x11}, + {0x29, 0xA, 0, 0, dword_D_8003F6F4, 0, 0x11}, + {0x2A, 0xA, 0, 0, dword_D_8003F708, 0, 0x11}, + {0x2B, 0xA, 0, 0, dword_D_8003F71C, 0, 0x11}, + {0x2C, 0xA, 0, 0, dword_D_8003F730, 0, 0x11}, + {0x2D, 0xA, 0, 0, dword_D_8003F744, 0, 0x11}, + {0x2E, 0xA, 0, 0, dword_D_8003F758, 0, 0x11}, + {0x2F, 0xA, 0, 0, dword_D_8003F76C, 0, 0x11}, + {0x30, 0xA, 0, 0, dword_D_8003F780, 0, 0x11}, + {0x31, 0xA, 0, 0, dword_D_8003F794, 0, 0x11}, + {0x32, 0xA, 0, 0, dword_D_8003F7A8, 0, 0x11}, + {0x33, 0xA, 0, 0, dword_D_8003F7BC, 0, 0x11}, + {0x34, 0xA, 0, 0, dword_D_8003F7D0, 0, 0x11}, + {0x35, 0xA, 0, 0, dword_D_8003F7E4, 0, 0x11}, + {0x36, 0xA, 0, 0, dword_D_8003F7F8, 0, 0x11}, + {0x37, 0xA, 0, 0, dword_D_8003F4E4, 0, 0x11}, + {0x38, 0xA, 0, 0, dword_D_8003F4F8, 0, 0x11}, + {0x39, 0xA, 0, 0, dword_D_8003F50C, 0, 0x11}, + {0x3A, 0xA, 0, 0, dword_D_8003F520, 0, 0x11}, + {0x3B, 0xA, 0, 0, dword_D_8003F534, 0, 0x11}, + {0x3C, 0xA, 0, 0, dword_D_8003F548, 0, 0x11}, + {0x3D, 0xA, 0, 0, dword_D_8003F55C, 0, 0x11}, + {0x3E, 0xA, 0, 0, dword_D_8003F570, 0, 0x11}, + {0x3F, 0xA, 0, 0, dword_D_8003F584, 0, 0x11}, + {0x40, 0xA, 0, 0, dword_D_8003F598, 0, 0x11}, + {0x41, 0xA, 0, 0, dword_D_8003F5AC, 0, 0x11}, + {0x42, 0xA, 0, 0, dword_D_8003F5C0, 0, 0x11}, + {0x43, 0xA, 0, 0, dword_D_8003F5D4, 0, 0x11}, + {0x44, 0xA, 0, 0, dword_D_8003F5E8, 0, 0x11}, + {0x45, 0xA, 0, 0, dword_D_8003F5FC, 0, 0x11}, + {0x46, 0xA, 0, 0, dword_D_8003F610, 0, 0x11}, + {0x47, 0xA, 0, 0, dword_D_8003F624, 0, 0x11}, + {0x48, 0xA, 0, 0, dword_D_8003F638, 0, 0x11}, + {0x49, 0xA, 0, 0, dword_D_8003F64C, 0, 0x11}, + {0x4A, 0xA, 0, 0, dword_D_8003F660, 0, 0x11}, + {0} +}; + +//D:8003FCBC +//u32 D_8003FCBC = 0; + + + + +// rodata + + + + + + + +#ifdef NONMATCHING +int cheatButton_7F091740(u16 param_1) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatButton_7F091740 +/* 0C6270 7F091740 AFA40000 */ sw $a0, ($sp) +/* 0C6274 7F091744 308EFFFF */ andi $t6, $a0, 0xffff +/* 0C6278 7F091748 01C02025 */ move $a0, $t6 +/* 0C627C 7F09174C 11C00009 */ beqz $t6, .L7F091774 +/* 0C6280 7F091750 00001825 */ move $v1, $zero +.L7F091754: +/* 0C6284 7F091754 308F0001 */ andi $t7, $a0, 1 +/* 0C6288 7F091758 11E00002 */ beqz $t7, .L7F091764 +/* 0C628C 7F09175C 00801025 */ move $v0, $a0 +/* 0C6290 7F091760 24630001 */ addiu $v1, $v1, 1 +.L7F091764: +/* 0C6294 7F091764 00022042 */ srl $a0, $v0, 1 +/* 0C6298 7F091768 3098FFFF */ andi $t8, $a0, 0xffff +/* 0C629C 7F09176C 1700FFF9 */ bnez $t8, .L7F091754 +/* 0C62A0 7F091770 03002025 */ move $a0, $t8 +.L7F091774: +/* 0C62A4 7F091774 03E00008 */ jr $ra +/* 0C62A8 7F091778 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void cheatButton_7F09177C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatButton_7F09177C +/* 0C62AC 7F09177C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C62B0 7F091780 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C62B4 7F091784 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C62B8 7F091788 AFB40028 */ sw $s4, 0x28($sp) +/* 0C62BC 7F09178C 3C118004 */ lui $s1, %hi(D_8003F80C) +/* 0C62C0 7F091790 AFB30024 */ sw $s3, 0x24($sp) +/* 0C62C4 7F091794 AFB20020 */ sw $s2, 0x20($sp) +/* 0C62C8 7F091798 AFB00018 */ sw $s0, 0x18($sp) +/* 0C62CC 7F09179C 2631F80C */ addiu $s1, %lo(D_8003F80C) # addiu $s1, $s1, -0x7f4 +/* 0C62D0 7F0917A0 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 0C62D4 7F0917A4 0000A025 */ move $s4, $zero +/* 0C62D8 7F0917A8 2401005A */ li $at, 90 +/* 0C62DC 7F0917AC 14410003 */ bne $v0, $at, .L7F0917BC +/* 0C62E0 7F0917B0 00000000 */ nop +/* 0C62E4 7F0917B4 10000008 */ b .L7F0917D8 +/* 0C62E8 7F0917B8 24130001 */ li $s3, 1 +.L7F0917BC: +/* 0C62EC 7F0917BC 0FC26919 */ jal get_num_players +/* 0C62F0 7F0917C0 00000000 */ nop +/* 0C62F4 7F0917C4 24010001 */ li $at, 1 +/* 0C62F8 7F0917C8 14410003 */ bne $v0, $at, .L7F0917D8 +/* 0C62FC 7F0917CC 24130004 */ li $s3, 4 +/* 0C6300 7F0917D0 10000001 */ b .L7F0917D8 +/* 0C6304 7F0917D4 24130002 */ li $s3, 2 +.L7F0917D8: +/* 0C6308 7F0917D8 3C0E8004 */ lui $t6, %hi(D_8003F80C) +/* 0C630C 7F0917DC 91CEF80C */ lbu $t6, %lo(D_8003F80C)($t6) +/* 0C6310 7F0917E0 3C128008 */ lui $s2, %hi(pPlayer) +/* 0C6314 7F0917E4 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0C6318 7F0917E8 11C0004C */ beqz $t6, .L7F09191C +/* 0C631C 7F0917EC 24100014 */ li $s0, 20 +/* 0C6320 7F0917F0 92250001 */ lbu $a1, 1($s1) +.L7F0917F4: +/* 0C6324 7F0917F4 58A00044 */ blezl $a1, .L7F091908 +/* 0C6328 7F0917F8 92280010 */ lbu $t0, 0x10($s1) +/* 0C632C 7F0917FC 8E460000 */ lw $a2, ($s2) +/* 0C6330 7F091800 90CF12B5 */ lbu $t7, 0x12b5($a2) +/* 0C6334 7F091804 01E5082A */ slt $at, $t7, $a1 +/* 0C6338 7F091808 5420003F */ bnezl $at, .L7F091908 +/* 0C633C 7F09180C 92280010 */ lbu $t0, 0x10($s1) +/* 0C6340 7F091810 8E38000C */ lw $t8, 0xc($s1) +/* 0C6344 7F091814 0313C824 */ and $t9, $t8, $s3 +/* 0C6348 7F091818 5320003B */ beql $t9, $zero, .L7F091908 +/* 0C634C 7F09181C 92280010 */ lbu $t0, 0x10($s1) +/* 0C6350 7F091820 90C812B4 */ lbu $t0, 0x12b4($a2) +/* 0C6354 7F091824 00002025 */ move $a0, $zero +/* 0C6358 7F091828 01054823 */ subu $t1, $t0, $a1 +/* 0C635C 7F09182C 252A0014 */ addiu $t2, $t1, 0x14 +/* 0C6360 7F091830 0150001A */ div $zero, $t2, $s0 +/* 0C6364 7F091834 00001010 */ mfhi $v0 +/* 0C6368 7F091838 16000002 */ bnez $s0, .L7F091844 +/* 0C636C 7F09183C 00000000 */ nop +/* 0C6370 7F091840 0007000D */ break 7 +.L7F091844: +/* 0C6374 7F091844 2401FFFF */ li $at, -1 +/* 0C6378 7F091848 16010004 */ bne $s0, $at, .L7F09185C +/* 0C637C 7F09184C 3C018000 */ lui $at, 0x8000 +/* 0C6380 7F091850 15410002 */ bne $t2, $at, .L7F09185C +/* 0C6384 7F091854 00000000 */ nop +/* 0C6388 7F091858 0006000D */ break 6 +.L7F09185C: +/* 0C638C 7F09185C 18A00018 */ blez $a1, .L7F0918C0 +/* 0C6390 7F091860 00000000 */ nop +/* 0C6394 7F091864 8E230004 */ lw $v1, 4($s1) +.L7F091868: +/* 0C6398 7F091868 00025840 */ sll $t3, $v0, 1 +/* 0C639C 7F09186C 00CB6021 */ addu $t4, $a2, $t3 +/* 0C63A0 7F091870 958D128C */ lhu $t5, 0x128c($t4) +/* 0C63A4 7F091874 946E0000 */ lhu $t6, ($v1) +/* 0C63A8 7F091878 244F0001 */ addiu $t7, $v0, 1 +/* 0C63AC 7F09187C 15AE0010 */ bne $t5, $t6, .L7F0918C0 +/* 0C63B0 7F091880 00000000 */ nop +/* 0C63B4 7F091884 01F0001A */ div $zero, $t7, $s0 +/* 0C63B8 7F091888 16000002 */ bnez $s0, .L7F091894 +/* 0C63BC 7F09188C 00000000 */ nop +/* 0C63C0 7F091890 0007000D */ break 7 +.L7F091894: +/* 0C63C4 7F091894 2401FFFF */ li $at, -1 +/* 0C63C8 7F091898 16010004 */ bne $s0, $at, .L7F0918AC +/* 0C63CC 7F09189C 3C018000 */ lui $at, 0x8000 +/* 0C63D0 7F0918A0 15E10002 */ bne $t7, $at, .L7F0918AC +/* 0C63D4 7F0918A4 00000000 */ nop +/* 0C63D8 7F0918A8 0006000D */ break 6 +.L7F0918AC: +/* 0C63DC 7F0918AC 24840001 */ addiu $a0, $a0, 1 +/* 0C63E0 7F0918B0 00001010 */ mfhi $v0 +/* 0C63E4 7F0918B4 0085082A */ slt $at, $a0, $a1 +/* 0C63E8 7F0918B8 1420FFEB */ bnez $at, .L7F091868 +/* 0C63EC 7F0918BC 24630002 */ addiu $v1, $v1, 2 +.L7F0918C0: +/* 0C63F0 7F0918C0 54850011 */ bnel $a0, $a1, .L7F091908 +/* 0C63F4 7F0918C4 92280010 */ lbu $t0, 0x10($s1) +/* 0C63F8 7F0918C8 A0C012B5 */ sb $zero, 0x12b5($a2) +/* 0C63FC 7F0918CC 0FC249EF */ jal cheatCheckIfOn +/* 0C6400 7F0918D0 92240000 */ lbu $a0, ($s1) +/* 0C6404 7F0918D4 10400005 */ beqz $v0, .L7F0918EC +/* 0C6408 7F0918D8 00000000 */ nop +/* 0C640C 7F0918DC 8E38000C */ lw $t8, 0xc($s1) +/* 0C6410 7F0918E0 33190010 */ andi $t9, $t8, 0x10 +/* 0C6414 7F0918E4 13200005 */ beqz $t9, .L7F0918FC +/* 0C6418 7F0918E8 00000000 */ nop +.L7F0918EC: +/* 0C641C 7F0918EC 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6420 7F0918F0 92240000 */ lbu $a0, ($s1) +/* 0C6424 7F0918F4 10000004 */ b .L7F091908 +/* 0C6428 7F0918F8 92280010 */ lbu $t0, 0x10($s1) +.L7F0918FC: +/* 0C642C 7F0918FC 0FC2490E */ jal cheatDisplayMessageActivateCheat +/* 0C6430 7F091900 92240000 */ lbu $a0, ($s1) +/* 0C6434 7F091904 92280010 */ lbu $t0, 0x10($s1) +.L7F091908: +/* 0C6438 7F091908 26310010 */ addiu $s1, $s1, 0x10 +/* 0C643C 7F09190C 51000004 */ beql $t0, $zero, .L7F091920 +/* 0C6440 7F091910 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C6444 7F091914 5280FFB7 */ beql $s4, $zero, .L7F0917F4 +/* 0C6448 7F091918 92250001 */ lbu $a1, 1($s1) +.L7F09191C: +/* 0C644C 7F09191C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F091920: +/* 0C6450 7F091920 8FB00018 */ lw $s0, 0x18($sp) +/* 0C6454 7F091924 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C6458 7F091928 8FB20020 */ lw $s2, 0x20($sp) +/* 0C645C 7F09192C 8FB30024 */ lw $s3, 0x24($sp) +/* 0C6460 7F091930 8FB40028 */ lw $s4, 0x28($sp) +/* 0C6464 7F091934 03E00008 */ jr $ra +/* 0C6468 7F091938 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void cheat_buttons_mp_related(void) + +} +#else +GLOBAL_ASM( +.text +glabel cheat_buttons_mp_related +/* 0C646C 7F09193C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C6470 7F091940 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6474 7F091944 0FC26C54 */ jal get_cur_playernum +/* 0C6478 7F091948 00000000 */ nop +/* 0C647C 7F09194C 00022600 */ sll $a0, $v0, 0x18 +/* 0C6480 7F091950 00047603 */ sra $t6, $a0, 0x18 +/* 0C6484 7F091954 01C02025 */ move $a0, $t6 +/* 0C6488 7F091958 0C0030C3 */ jal get_controller_buttons_held +/* 0C648C 7F09195C 3405FFFF */ li $a1, 65535 +/* 0C6490 7F091960 0FC26C54 */ jal get_cur_playernum +/* 0C6494 7F091964 A7A20026 */ sh $v0, 0x26($sp) +/* 0C6498 7F091968 00022600 */ sll $a0, $v0, 0x18 +/* 0C649C 7F09196C 00047E03 */ sra $t7, $a0, 0x18 +/* 0C64A0 7F091970 01E02025 */ move $a0, $t7 +/* 0C64A4 7F091974 0C0030EB */ jal get_controller_buttons_pressed +/* 0C64A8 7F091978 3405FFFF */ li $a1, 65535 +/* 0C64AC 7F09197C 97A30026 */ lhu $v1, 0x26($sp) +/* 0C64B0 7F091980 30780030 */ andi $t8, $v1, 0x30 +/* 0C64B4 7F091984 3306FFFF */ andi $a2, $t8, 0xffff +/* 0C64B8 7F091988 00C04827 */ not $t1, $a2 +/* 0C64BC 7F09198C 0300C827 */ not $t9, $t8 +/* 0C64C0 7F091990 00492824 */ and $a1, $v0, $t1 +/* 0C64C4 7F091994 30AAFFFF */ andi $t2, $a1, 0xffff +/* 0C64C8 7F091998 00794024 */ and $t0, $v1, $t9 +/* 0C64CC 7F09199C A7A80026 */ sh $t0, 0x26($sp) +/* 0C64D0 7F0919A0 11400028 */ beqz $t2, .L7F091A44 +/* 0C64D4 7F0919A4 A7A50024 */ sh $a1, 0x24($sp) +/* 0C64D8 7F0919A8 30A4FFFF */ andi $a0, $a1, 0xffff +/* 0C64DC 7F0919AC 0FC245D0 */ jal cheatButton_7F091740 +/* 0C64E0 7F0919B0 AFA60018 */ sw $a2, 0x18($sp) +/* 0C64E4 7F0919B4 24010001 */ li $at, 1 +/* 0C64E8 7F0919B8 1441001E */ bne $v0, $at, .L7F091A34 +/* 0C64EC 7F0919BC 8FA70018 */ lw $a3, 0x18($sp) +/* 0C64F0 7F0919C0 97A40026 */ lhu $a0, 0x26($sp) +/* 0C64F4 7F0919C4 0FC245D0 */ jal cheatButton_7F091740 +/* 0C64F8 7F0919C8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C64FC 7F0919CC 24010001 */ li $at, 1 +/* 0C6500 7F0919D0 14410018 */ bne $v0, $at, .L7F091A34 +/* 0C6504 7F0919D4 8FA70018 */ lw $a3, 0x18($sp) +/* 0C6508 7F0919D8 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C650C 7F0919DC 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0C6510 7F0919E0 8C820000 */ lw $v0, ($a0) +/* 0C6514 7F0919E4 97AB0024 */ lhu $t3, 0x24($sp) +/* 0C6518 7F0919E8 24010014 */ li $at, 20 +/* 0C651C 7F0919EC 904D12B4 */ lbu $t5, 0x12b4($v0) +/* 0C6520 7F0919F0 01676025 */ or $t4, $t3, $a3 +/* 0C6524 7F0919F4 000D7040 */ sll $t6, $t5, 1 +/* 0C6528 7F0919F8 004E7821 */ addu $t7, $v0, $t6 +/* 0C652C 7F0919FC A5EC128C */ sh $t4, 0x128c($t7) +/* 0C6530 7F091A00 8C820000 */ lw $v0, ($a0) +/* 0C6534 7F091A04 905812B4 */ lbu $t8, 0x12b4($v0) +/* 0C6538 7F091A08 27190001 */ addiu $t9, $t8, 1 +/* 0C653C 7F091A0C 0321001A */ div $zero, $t9, $at +/* 0C6540 7F091A10 00004010 */ mfhi $t0 +/* 0C6544 7F091A14 A04812B4 */ sb $t0, 0x12b4($v0) +/* 0C6548 7F091A18 8C820000 */ lw $v0, ($a0) +/* 0C654C 7F091A1C 904312B5 */ lbu $v1, 0x12b5($v0) +/* 0C6550 7F091A20 28610014 */ slti $at, $v1, 0x14 +/* 0C6554 7F091A24 10200007 */ beqz $at, .L7F091A44 +/* 0C6558 7F091A28 24690001 */ addiu $t1, $v1, 1 +/* 0C655C 7F091A2C 10000005 */ b .L7F091A44 +/* 0C6560 7F091A30 A04912B5 */ sb $t1, 0x12b5($v0) +.L7F091A34: +/* 0C6564 7F091A34 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C6568 7F091A38 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0C656C 7F091A3C 8C8A0000 */ lw $t2, ($a0) +/* 0C6570 7F091A40 A14012B5 */ sb $zero, 0x12b5($t2) +.L7F091A44: +/* 0C6574 7F091A44 0FC245DF */ jal cheatButton_7F09177C +/* 0C6578 7F091A48 00000000 */ nop +/* 0C657C 7F091A4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6580 7F091A50 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0C6584 7F091A54 03E00008 */ jr $ra +/* 0C6588 7F091A58 00000000 */ nop +) +#endif + + + + + + +u32 is_cheat_index_equal_to_1C(u32 cheatindex) +{ + if (cheatindex == 0x1c) { + return 1; + } + return 0; +} + + + + + + +#ifdef NONMATCHING +void cheatCheckIfMPCheat(void) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatCheckIfMPCheat +/* 0C65A8 7F091A78 00047100 */ sll $t6, $a0, 4 +/* 0C65AC 7F091A7C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C65B0 7F091A80 01EE7821 */ addu $t7, $t7, $t6 +/* 0C65B4 7F091A84 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C65B8 7F091A88 24010004 */ li $at, 4 +/* 0C65BC 7F091A8C 00001025 */ move $v0, $zero +/* 0C65C0 7F091A90 31F80004 */ andi $t8, $t7, 4 +/* 0C65C4 7F091A94 17010003 */ bne $t8, $at, .L7F091AA4 +/* 0C65C8 7F091A98 00000000 */ nop +/* 0C65CC 7F091A9C 03E00008 */ jr $ra +/* 0C65D0 7F091AA0 24020001 */ li $v0, 1 + +.L7F091AA4: +/* 0C65D4 7F091AA4 03E00008 */ jr $ra +/* 0C65D8 7F091AA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void turn_on_cheat_for_players(u32 cheatindex) +{ + u32 uVar1; + u32 playernum; + u32 numplayers; + u32 i; + + uVar1 = D_8003F80C[cheatindex]; + playernum = get_cur_playernum(); + numplayers = get_num_players(); + if (numplayers == 1) { + handle_cheats_turned_on(cheatindex); + } + else { + if ((uVar1 & 4) != 0) + { + if ((uVar1 & 0x20) == 0) + { + i = 0; + if (0 < (int)numplayers) + { + while (i != numplayers) + { + set_cur_player(i); + handle_cheats_turned_on(cheatindex); + i = i + 1; + }; + } + set_cur_player(playernum); + } + else + { + handle_cheats_turned_on(cheatindex); + } + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel turn_on_cheat_for_players +/* 0C65DC 7F091AAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C65E0 7F091AB0 AFB00018 */ sw $s0, 0x18($sp) +/* 0C65E4 7F091AB4 3C108004 */ lui $s0, %hi(D_8003F808) +/* 0C65E8 7F091AB8 00047100 */ sll $t6, $a0, 4 +/* 0C65EC 7F091ABC AFBF0024 */ sw $ra, 0x24($sp) +/* 0C65F0 7F091AC0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C65F4 7F091AC4 020E8021 */ addu $s0, $s0, $t6 +/* 0C65F8 7F091AC8 00809025 */ move $s2, $a0 +/* 0C65FC 7F091ACC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C6600 7F091AD0 0FC26C54 */ jal get_cur_playernum +/* 0C6604 7F091AD4 8E10F808 */ lw $s0, %lo(D_8003F808)($s0) +/* 0C6608 7F091AD8 0FC26919 */ jal get_num_players +/* 0C660C 7F091ADC AFA20028 */ sw $v0, 0x28($sp) +/* 0C6610 7F091AE0 24010001 */ li $at, 1 +/* 0C6614 7F091AE4 14410005 */ bne $v0, $at, .L7F091AFC +/* 0C6618 7F091AE8 00408825 */ move $s1, $v0 +/* 0C661C 7F091AEC 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6620 7F091AF0 02402025 */ move $a0, $s2 +/* 0C6624 7F091AF4 10000016 */ b .L7F091B50 +/* 0C6628 7F091AF8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091AFC: +/* 0C662C 7F091AFC 320F0004 */ andi $t7, $s0, 4 +/* 0C6630 7F091B00 11E00012 */ beqz $t7, .L7F091B4C +/* 0C6634 7F091B04 32180020 */ andi $t8, $s0, 0x20 +/* 0C6638 7F091B08 13000005 */ beqz $t8, .L7F091B20 +/* 0C663C 7F091B0C 00000000 */ nop +/* 0C6640 7F091B10 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6644 7F091B14 02402025 */ move $a0, $s2 +/* 0C6648 7F091B18 1000000D */ b .L7F091B50 +/* 0C664C 7F091B1C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091B20: +/* 0C6650 7F091B20 18400008 */ blez $v0, .L7F091B44 +/* 0C6654 7F091B24 00008025 */ move $s0, $zero +.L7F091B28: +/* 0C6658 7F091B28 0FC26C43 */ jal set_cur_player +/* 0C665C 7F091B2C 02002025 */ move $a0, $s0 +/* 0C6660 7F091B30 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6664 7F091B34 02402025 */ move $a0, $s2 +/* 0C6668 7F091B38 26100001 */ addiu $s0, $s0, 1 +/* 0C666C 7F091B3C 1611FFFA */ bne $s0, $s1, .L7F091B28 +/* 0C6670 7F091B40 00000000 */ nop +.L7F091B44: +/* 0C6674 7F091B44 0FC26C43 */ jal set_cur_player +/* 0C6678 7F091B48 8FA40028 */ lw $a0, 0x28($sp) +.L7F091B4C: +/* 0C667C 7F091B4C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091B50: +/* 0C6680 7F091B50 8FB00018 */ lw $s0, 0x18($sp) +/* 0C6684 7F091B54 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C6688 7F091B58 8FB20020 */ lw $s2, 0x20($sp) +/* 0C668C 7F091B5C 03E00008 */ jr $ra +/* 0C6690 7F091B60 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void handle_cheats_turned_on(CHEAT_IDS cheat) + +{ + uint uVar1; + bool bVar2; + PLAYER_ID playernum; + PLAYER_ID PVar4; + //ulonglong uVar3; + //BOOL BVar5; + //BOOL BVar6; + //BOOL BVar7; + //BOOL BVar8; + //BOOL BVar9; + //u8 *text; + s32 sVar10; + //int amount; + STAGENUM stageid; + STAGENUM SVar11; + //f32 fVar12; + f32 scale; + PLAYER_ID local_10; + + uVar1 = (&D_8003F808)[cheat * 4]; + playernum = get_cur_playernum(); + numplayers = get_num_players(); + if ((uVar1 & 0x10) == 0) { + if ((uVar1 & 0x20) == 0) { + cheatl_ARRAY_80079e30[cheat] = cheatl_ARRAY_80079e30[cheat] | (byte)(1 << (playernum & 0x1f)); + } + else { + cheatl_ARRAY_80079e30[cheat] = (char)(1 << (numplayers & 0x1f)) + -1; + } + } + switch(cheat) { + case CHEAT_EXTRA_MP_CHARS: + unlock_mp_chars(); + break; + case CHEAT_INVINCIBILITY: + if (get_bondata_invincible_flag() == 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb00f)); + set_bondata_invincible_flag(1); + } + break; + case CHEAT_ALLGUNS: + if (get_BONDdata_allguns_flag() == 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb010)); + set_BONDdata_allguns_flag(1); + } + break; + case CHEAT_MAXAMMO: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb011)); + set_max_ammo_for_cur_player(); + break; + case CHEAT_REMOVE_INVINCIBILITY: + bVar2 = false; + if (1 < (int)numplayers) { + local_10 = PLAYER1; + if (0 < (int)numplayers) { + do { + if (local_10 != playernum) { + set_cur_player(local_10); + if (get_bondata_invincible_flag() != 0) { + bVar2 = true; + set_bondata_invincible_flag(0); + } + } + set_cur_player(playernum); + local_10 = local_10 + PLAYER2; + } while (local_10 != numplayers); + } + if (bVar2) { + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + } + break; + case CHEAT_LINEMODE: + set_linemode_flag(1); + break; + case cheats_cheat_2x_health: + if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb012)); + pPlayer->bondhealth = 1.00000000; + pPlayer->actual_health = 2.00000000; + } + break; + case cheats_cheat_2x_armor: + if ((pPlayer->actual_armor == 1.00000000) || (pPlayer->bondarmour < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb013)); + pPlayer->bondarmour = 1.00000000; + pPlayer->actual_armor = 2.00000000; + } + break; + case cheats_cheat_invisibility: + if (get_invisible_to_guards_flag() != 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb014)); + set_invisible_to_guards_flag(0); + } + break; + case cheats_cheat_infinite_ammo: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb016)); + break; + case cheats_cheat_dk_mode: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb017)); + set_DKMode(1); + break; + case cheats_cheat_extra_weapons: + if (numplayers == PLAYER2) + { + give_cur_player_ammo(AMMO_MAGNUM, get_max_ammo_for_type(AMMO_MAGNUM)); + give_cur_player_ammo(AMMO_GGUN, get_max_ammo_for_type(AMMO_GGUN)); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + if (0 < (add_item_to_inventory(ITEM_RUGER) + add_item_to_inventory(ITEM_LASER) + add_item_to_inventory(ITEM_GOLDENGUN) + add_item_to_inventory(ITEM_SILVERWPPK) + add_item_to_inventory(ITEM_GOLDWPPK))) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb018)); + } + } + break; + case cheats_cheat_tiny_bond: + if ((numplayers == PLAYER2) && (pPlayersPerm->player_perspective_height == 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb019)); + pPlayersPerm->player_perspective_height = 0.50000000; + if (pPlayer->ptr_char_objectinstance != 0) + { + set_obj_instance_controller_scale(pPlayer->ptr_char_objectinstance,scale); + } + } + break; + case cheats_cheat_paintball: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01a)); + break; + case cheats_cheat_10x_health: + if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01b)); + pPlayer->bondhealth = 1.00000000; + pPlayer->actual_health = 10.00000000; + } + break; + case cheats_cheat_magnum: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_RUGER); + give_cur_player_ammo(AMMO_MAGNUM, get_max_ammo_for_type(AMMO_MAGNUM)); + } + break; + case cheats_cheat_laser: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_LASER); + } + break; + case cheats_cheat_goldengun: + if (numplayers == PLAYER2) { + add_item_to_inventory(ITEM_GOLDENGUN); + give_cur_player_ammo(AMMO_GGUN, get_max_ammo_for_type(AMMO_GGUN)); + } + break; + case cheats_cheat_silverpp7: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_SILVERWPPK); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_cheat_goldpp7: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_GOLDWPPK); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_cheat_invisibility_mp: + set_curplayer_fade(300.00000000, 0.5f); + break; + case cheats_cheat_fast: + if (get_debug_fast_bond_flag() == FALSE) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01d)); + set_debug_fast_bond_flag(TRUE); + } + break; + case cheats_debug_pos: + if (get_debug_testingmanpos_flag() == FALSE) + { + set_debug_testingmanpos_flag(TRUE); + } + break; + case cheats_debug_fast_ani: + if (get_animation_rate() < 4.00000000) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb034)); + animation_speed_related(4.00000000); + } + break; + case cheats_debug_slow_ani: + if (0.25000000 < get_animation_rate()) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb032)); + animation_speed_related(0.25000000); + } + break; + case cheats_debug_2x_rockets: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_ROCKETLAUNCH, ITEM_ROCKETLAUNCH); + give_cur_player_ammo(AMMO_ROCKETS, get_max_ammo_for_type(AMMO_ROCKETS)); + } + break; + case cheats_debug_2x_grenade_launch: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_GRENADELAUNCH, ITEM_GRENADELAUNCH); + give_cur_player_ammo(AMMO_GRENADEROUND, get_max_ammo_for_type(AMMO_GRENADEROUND)); + } + break; + case cheats_debug_2x_rcp90: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_FNP90, ITEM_FNP90); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_debug_2x_throwing_knife: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_THROWKNIFE, ITEM_THROWKNIFE); + give_cur_player_ammo(AMMO_KNIFE, get_max_ammo_for_type(AMMO_KNIFE)); + } + break; + case cheats_debug_2x_hunting_knife: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_KNIFE, ITEM_KNIFE); + } + break; + case cheats_debug_2x_laser: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_LASER, ITEM_LASER); + } + break; + case UNUSED_23: + case UNUSED_24: + case UNUSED_25: + case UNUSED_26: + case UNUSED_27: + case UNUSED_28: + case UNUSED_29: + case UNUSED_2A: + case UNUSED_2B: + case UNUSED_2C: + case UNUSED_2D: + case UNUSED_2E: + case UNUSED_2F: + case UNUSED_30: + case UNUSED_31: + case UNUSED_32: + case UNUSED_33: + case UNUSED_34: + case UNUSED_35: + case UNLOCK_CHEATS: + if ((-1 < selected_folder_num) && (selected_folder_num < 4)) { + proc_7F01E760(selected_folder_num,cheat + ~cheats_debug_2x_laser); + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + break; + case UNUSED_37: + case UNUSED_38: + case UNUSED_39: + case UNUSED_3A: + case UNUSED_3B: + case UNUSED_3C: + case UNUSED_3D: + case UNUSED_3E: + case UNUSED_3F: + case UNUSED_40: + case UNUSED_41: + case UNUSED_42: + case UNUSED_43: + case UNUSED_44: + case UNUSED_45: + case UNUSED_46: + case UNUSED_47: + case UNUSED_48: + case UNUSED_49: + case UNLOCK_STAGES: + SVar11 = cheat + ~UNLOCK_CHEATS; + if ((-1 < (int)selected_folder_num) && (amount = 0, (int)selected_folder_num < 4)) { + stageid = SP_STAGE_DAM; + if (0 < (int)SVar11) { + do { + sVar10 = isStageUnlockedAtDifficulty(selected_folder_num,stageid,DIFFICULTY_AGENT); + if (sVar10 == 3) { + amount = amount + 1; + } + stageid = stageid + SP_STAGE_FACILITY; + } while (stageid != SVar11); + } + if (SVar11 == amount + SP_STAGE_FACILITY) { + unlock_stage_in_folder_on_difficulty + (selected_folder_num,(longlong)(int)(cheat + ~UNUSED_37),0,99999999); + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + } + } + return; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel handle_cheats_turned_on +/* 0C6694 7F091B64 00047100 */ sll $t6, $a0, 4 +/* 0C6698 7F091B68 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C669C 7F091B6C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C66A0 7F091B70 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C66A4 7F091B74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C66A8 7F091B78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C66AC 7F091B7C AFA40040 */ sw $a0, 0x40($sp) +/* 0C66B0 7F091B80 0FC26C54 */ jal get_cur_playernum +/* 0C66B4 7F091B84 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C66B8 7F091B88 0FC26919 */ jal get_num_players +/* 0C66BC 7F091B8C AFA20038 */ sw $v0, 0x38($sp) +/* 0C66C0 7F091B90 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C66C4 7F091B94 8FA60040 */ lw $a2, 0x40($sp) +/* 0C66C8 7F091B98 AFA20034 */ sw $v0, 0x34($sp) +/* 0C66CC 7F091B9C 30780010 */ andi $t8, $v1, 0x10 +/* 0C66D0 7F091BA0 17000012 */ bnez $t8, .L7F091BEC +/* 0C66D4 7F091BA4 30790020 */ andi $t9, $v1, 0x20 +/* 0C66D8 7F091BA8 1720000A */ bnez $t9, .L7F091BD4 +/* 0C66DC 7F091BAC 8FA50038 */ lw $a1, 0x38($sp) +/* 0C66E0 7F091BB0 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) +/* 0C66E4 7F091BB4 25299E30 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x61d0 +/* 0C66E8 7F091BB8 00C91821 */ addu $v1, $a2, $t1 +/* 0C66EC 7F091BBC 906A0000 */ lbu $t2, ($v1) +/* 0C66F0 7F091BC0 240B0001 */ li $t3, 1 +/* 0C66F4 7F091BC4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C66F8 7F091BC8 014C6825 */ or $t5, $t2, $t4 +/* 0C66FC 7F091BCC 10000007 */ b .L7F091BEC +/* 0C6700 7F091BD0 A06D0000 */ sb $t5, ($v1) +.L7F091BD4: +/* 0C6704 7F091BD4 240E0001 */ li $t6, 1 +/* 0C6708 7F091BD8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C670C 7F091BDC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6710 7F091BE0 00260821 */ addu $at, $at, $a2 +/* 0C6714 7F091BE4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C6718 7F091BE8 A0389E30 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.L7F091BEC: +/* 0C671C 7F091BEC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C6720 7F091BF0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C6724 7F091BF4 1020020C */ beqz $at, .L7F092428 +/* 0C6728 7F091BF8 0019C880 */ sll $t9, $t9, 2 +/* 0C672C 7F091BFC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C6730 7F091C00 00390821 */ addu $at, $at, $t9 +/* 0C6734 7F091C04 8C3972B0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C6738 7F091C08 03200008 */ jr $t9 +/* 0C673C 7F091C0C 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C6740 7F091C10 0FC040A0 */ jal unlock_all_mp_chars +/* 0C6744 7F091C14 00000000 */ nop +/* 0C6748 7F091C18 10000204 */ b .L7F09242C +/* 0C674C 7F091C1C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C6750 7F091C20 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6754 7F091C24 00000000 */ nop +/* 0C6758 7F091C28 54400200 */ bnezl $v0, .L7F09242C +/* 0C675C 7F091C2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6760 7F091C30 0FC30776 */ jal get_textptr_for_textID +/* 0C6764 7F091C34 3404B00F */ li $a0, 45071 +/* 0C6768 7F091C38 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C676C 7F091C3C 00402025 */ move $a0, $v0 +/* 0C6770 7F091C40 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6774 7F091C44 24040001 */ li $a0, 1 +/* 0C6778 7F091C48 100001F8 */ b .L7F09242C +/* 0C677C 7F091C4C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C6780 7F091C50 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C6784 7F091C54 00000000 */ nop +/* 0C6788 7F091C58 544001F4 */ bnezl $v0, .L7F09242C +/* 0C678C 7F091C5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6790 7F091C60 0FC30776 */ jal get_textptr_for_textID +/* 0C6794 7F091C64 3404B010 */ li $a0, 45072 +/* 0C6798 7F091C68 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C679C 7F091C6C 00402025 */ move $a0, $v0 +/* 0C67A0 7F091C70 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C67A4 7F091C74 24040001 */ li $a0, 1 +/* 0C67A8 7F091C78 100001EC */ b .L7F09242C +/* 0C67AC 7F091C7C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C67B0 7F091C80 0FC30776 */ jal get_textptr_for_textID +/* 0C67B4 7F091C84 3404B011 */ li $a0, 45073 +/* 0C67B8 7F091C88 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C67BC 7F091C8C 00402025 */ move $a0, $v0 +/* 0C67C0 7F091C90 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0C67C4 7F091C94 00000000 */ nop +/* 0C67C8 7F091C98 100001E4 */ b .L7F09242C +/* 0C67CC 7F091C9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C67D0 7F091CA0 28410002 */ slti $at, $v0, 2 +/* 0C67D4 7F091CA4 142001E0 */ bnez $at, .L7F092428 +/* 0C67D8 7F091CA8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C67DC 7F091CAC 18400015 */ blez $v0, .L7F091D04 +/* 0C67E0 7F091CB0 AFA00030 */ sw $zero, 0x30($sp) +.L7F091CB4: +/* 0C67E4 7F091CB4 8FA50038 */ lw $a1, 0x38($sp) +/* 0C67E8 7F091CB8 8FA90030 */ lw $t1, 0x30($sp) +/* 0C67EC 7F091CBC 1125000A */ beq $t1, $a1, .L7F091CE8 +/* 0C67F0 7F091CC0 00000000 */ nop +/* 0C67F4 7F091CC4 0FC26C43 */ jal set_cur_player +/* 0C67F8 7F091CC8 01202025 */ move $a0, $t1 +/* 0C67FC 7F091CCC 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6800 7F091CD0 00000000 */ nop +/* 0C6804 7F091CD4 10400004 */ beqz $v0, .L7F091CE8 +/* 0C6808 7F091CD8 00002025 */ move $a0, $zero +/* 0C680C 7F091CDC 240B0001 */ li $t3, 1 +/* 0C6810 7F091CE0 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6814 7F091CE4 AFAB002C */ sw $t3, 0x2c($sp) +.L7F091CE8: +/* 0C6818 7F091CE8 0FC26C43 */ jal set_cur_player +/* 0C681C 7F091CEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C6820 7F091CF0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C6824 7F091CF4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C6828 7F091CF8 254C0001 */ addiu $t4, $t2, 1 +/* 0C682C 7F091CFC 158DFFED */ bne $t4, $t5, .L7F091CB4 +/* 0C6830 7F091D00 AFAC0030 */ sw $t4, 0x30($sp) +.L7F091D04: +/* 0C6834 7F091D04 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C6838 7F091D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C683C 7F091D0C 2405009F */ li $a1, 159 +/* 0C6840 7F091D10 11C001C5 */ beqz $t6, .L7F092428 +/* 0C6844 7F091D14 00003025 */ move $a2, $zero +/* 0C6848 7F091D18 0C002382 */ jal play_sfx_a1 +/* 0C684C 7F091D1C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6850 7F091D20 100001C2 */ b .L7F09242C +/* 0C6854 7F091D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C6858 7F091D28 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C685C 7F091D2C 24040001 */ li $a0, 1 +/* 0C6860 7F091D30 100001BE */ b .L7F09242C +/* 0C6864 7F091D34 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C6868 7F091D38 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C686C 7F091D3C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6870 7F091D40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6874 7F091D44 44812000 */ mtc1 $at, $f4 +/* 0C6878 7F091D48 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C687C 7F091D4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6880 7F091D50 46062032 */ c.eq.s $f4, $f6 +/* 0C6884 7F091D54 00000000 */ nop +/* 0C6888 7F091D58 45010008 */ bc1t .L7F091D7C +/* 0C688C 7F091D5C 00000000 */ nop +/* 0C6890 7F091D60 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C6894 7F091D64 44815000 */ mtc1 $at, $f10 +/* 0C6898 7F091D68 00000000 */ nop +/* 0C689C 7F091D6C 460A403C */ c.lt.s $f8, $f10 +/* 0C68A0 7F091D70 00000000 */ nop +/* 0C68A4 7F091D74 450201AD */ bc1fl .L7F09242C +/* 0C68A8 7F091D78 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091D7C: +/* 0C68AC 7F091D7C 0FC30776 */ jal get_textptr_for_textID +/* 0C68B0 7F091D80 3404B012 */ li $a0, 45074 +/* 0C68B4 7F091D84 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C68B8 7F091D88 00402025 */ move $a0, $v0 +/* 0C68BC 7F091D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68C0 7F091D90 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C68C4 7F091D94 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C68C8 7F091D98 44818000 */ mtc1 $at, $f16 +/* 0C68CC 7F091D9C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C68D0 7F091DA0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C68D4 7F091DA4 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C68D8 7F091DA8 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C68DC 7F091DAC 44819000 */ mtc1 $at, $f18 +/* 0C68E0 7F091DB0 1000019D */ b .L7F092428 +/* 0C68E4 7F091DB4 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C68E8 7F091DB8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C68EC 7F091DBC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C68F0 7F091DC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68F4 7F091DC4 44810000 */ mtc1 $at, $f0 +/* 0C68F8 7F091DC8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C68FC 7F091DCC 46040032 */ c.eq.s $f0, $f4 +/* 0C6900 7F091DD0 00000000 */ nop +/* 0C6904 7F091DD4 45010006 */ bc1t .L7F091DF0 +/* 0C6908 7F091DD8 00000000 */ nop +/* 0C690C 7F091DDC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C6910 7F091DE0 4600303C */ c.lt.s $f6, $f0 +/* 0C6914 7F091DE4 00000000 */ nop +/* 0C6918 7F091DE8 45020190 */ bc1fl .L7F09242C +/* 0C691C 7F091DEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091DF0: +/* 0C6920 7F091DF0 0FC30776 */ jal get_textptr_for_textID +/* 0C6924 7F091DF4 3404B013 */ li $a0, 45075 +/* 0C6928 7F091DF8 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C692C 7F091DFC 00402025 */ move $a0, $v0 +/* 0C6930 7F091E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6934 7F091E04 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6938 7F091E08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C693C 7F091E0C 44814000 */ mtc1 $at, $f8 +/* 0C6940 7F091E10 8C590000 */ lw $t9, ($v0) +/* 0C6944 7F091E14 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C6948 7F091E18 44815000 */ mtc1 $at, $f10 +/* 0C694C 7F091E1C E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C6950 7F091E20 8C490000 */ lw $t1, ($v0) +/* 0C6954 7F091E24 10000180 */ b .L7F092428 +/* 0C6958 7F091E28 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C695C 7F091E2C 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C6960 7F091E30 00000000 */ nop +/* 0C6964 7F091E34 5040017D */ beql $v0, $zero, .L7F09242C +/* 0C6968 7F091E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C696C 7F091E3C 0FC30776 */ jal get_textptr_for_textID +/* 0C6970 7F091E40 3404B014 */ li $a0, 45076 +/* 0C6974 7F091E44 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6978 7F091E48 00402025 */ move $a0, $v0 +/* 0C697C 7F091E4C 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C6980 7F091E50 00002025 */ move $a0, $zero +/* 0C6984 7F091E54 10000175 */ b .L7F09242C +/* 0C6988 7F091E58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C698C 7F091E5C 0FC30776 */ jal get_textptr_for_textID +/* 0C6990 7F091E60 3404B016 */ li $a0, 45078 +/* 0C6994 7F091E64 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6998 7F091E68 00402025 */ move $a0, $v0 +/* 0C699C 7F091E6C 1000016F */ b .L7F09242C +/* 0C69A0 7F091E70 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C69A4 7F091E74 0FC30776 */ jal get_textptr_for_textID +/* 0C69A8 7F091E78 3404B017 */ li $a0, 45079 +/* 0C69AC 7F091E7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C69B0 7F091E80 00402025 */ move $a0, $v0 +/* 0C69B4 7F091E84 0FC249FD */ jal set_DKMode +/* 0C69B8 7F091E88 24040001 */ li $a0, 1 +/* 0C69BC 7F091E8C 10000167 */ b .L7F09242C +/* 0C69C0 7F091E90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C69C4 7F091E94 24010001 */ li $at, 1 +/* 0C69C8 7F091E98 54410164 */ bnel $v0, $at, .L7F09242C +/* 0C69CC 7F091E9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C69D0 7F091EA0 0FC23122 */ jal add_item_to_inventory +/* 0C69D4 7F091EA4 24040012 */ li $a0, 18 +/* 0C69D8 7F091EA8 AFA20028 */ sw $v0, 0x28($sp) +/* 0C69DC 7F091EAC 0FC23122 */ jal add_item_to_inventory +/* 0C69E0 7F091EB0 24040016 */ li $a0, 22 +/* 0C69E4 7F091EB4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C69E8 7F091EB8 24040013 */ li $a0, 19 +/* 0C69EC 7F091EBC 01625021 */ addu $t2, $t3, $v0 +/* 0C69F0 7F091EC0 0FC23122 */ jal add_item_to_inventory +/* 0C69F4 7F091EC4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C69F8 7F091EC8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C69FC 7F091ECC 24040014 */ li $a0, 20 +/* 0C6A00 7F091ED0 01826821 */ addu $t5, $t4, $v0 +/* 0C6A04 7F091ED4 0FC23122 */ jal add_item_to_inventory +/* 0C6A08 7F091ED8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C6A0C 7F091EDC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C6A10 7F091EE0 24040015 */ li $a0, 21 +/* 0C6A14 7F091EE4 01C27821 */ addu $t7, $t6, $v0 +/* 0C6A18 7F091EE8 0FC23122 */ jal add_item_to_inventory +/* 0C6A1C 7F091EEC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C6A20 7F091EF0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C6A24 7F091EF4 2404000C */ li $a0, 12 +/* 0C6A28 7F091EF8 0302C821 */ addu $t9, $t8, $v0 +/* 0C6A2C 7F091EFC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A30 7F091F00 AFB90028 */ sw $t9, 0x28($sp) +/* 0C6A34 7F091F04 2404000C */ li $a0, 12 +/* 0C6A38 7F091F08 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A3C 7F091F0C 00402825 */ move $a1, $v0 +/* 0C6A40 7F091F10 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A44 7F091F14 2404000D */ li $a0, 13 +/* 0C6A48 7F091F18 2404000D */ li $a0, 13 +/* 0C6A4C 7F091F1C 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A50 7F091F20 00402825 */ move $a1, $v0 +/* 0C6A54 7F091F24 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A58 7F091F28 24040001 */ li $a0, 1 +/* 0C6A5C 7F091F2C 24040001 */ li $a0, 1 +/* 0C6A60 7F091F30 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A64 7F091F34 00402825 */ move $a1, $v0 +/* 0C6A68 7F091F38 8FA90028 */ lw $t1, 0x28($sp) +/* 0C6A6C 7F091F3C 5920013B */ blezl $t1, .L7F09242C +/* 0C6A70 7F091F40 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6A74 7F091F44 0FC30776 */ jal get_textptr_for_textID +/* 0C6A78 7F091F48 3404B018 */ li $a0, 45080 +/* 0C6A7C 7F091F4C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6A80 7F091F50 00402025 */ move $a0, $v0 +/* 0C6A84 7F091F54 10000135 */ b .L7F09242C +/* 0C6A88 7F091F58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C6A8C 7F091F5C 24010001 */ li $at, 1 +/* 0C6A90 7F091F60 14410131 */ bne $v0, $at, .L7F092428 +/* 0C6A94 7F091F64 3C0B8008 */ lui $t3, %hi(pPlayersPerm) +/* 0C6A98 7F091F68 8D6BA0B4 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C6A9C 7F091F6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6AA0 7F091F70 44818000 */ mtc1 $at, $f16 +/* 0C6AA4 7F091F74 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C6AA8 7F091F78 46128032 */ c.eq.s $f16, $f18 +/* 0C6AAC 7F091F7C 00000000 */ nop +/* 0C6AB0 7F091F80 4502012A */ bc1fl .L7F09242C +/* 0C6AB4 7F091F84 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AB8 7F091F88 0FC30776 */ jal get_textptr_for_textID +/* 0C6ABC 7F091F8C 3404B019 */ li $a0, 45081 +/* 0C6AC0 7F091F90 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6AC4 7F091F94 00402025 */ move $a0, $v0 +/* 0C6AC8 7F091F98 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C6ACC 7F091F9C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0C6AD0 7F091FA0 44810000 */ mtc1 $at, $f0 +/* 0C6AD4 7F091FA4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C6AD8 7F091FA8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0C6ADC 7F091FAC E5400064 */ swc1 $f0, 0x64($t2) +/* 0C6AE0 7F091FB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0C6AE4 7F091FB4 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C6AE8 7F091FB8 5080011C */ beql $a0, $zero, .L7F09242C +/* 0C6AEC 7F091FBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AF0 7F091FC0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C6AF4 7F091FC4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C6AF8 7F091FC8 44053000 */ mfc1 $a1, $f6 +/* 0C6AFC 7F091FCC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C6B00 7F091FD0 00000000 */ nop +/* 0C6B04 7F091FD4 10000115 */ b .L7F09242C +/* 0C6B08 7F091FD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C6B0C 7F091FDC 0FC30776 */ jal get_textptr_for_textID +/* 0C6B10 7F091FE0 3404B01A */ li $a0, 45082 +/* 0C6B14 7F091FE4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B18 7F091FE8 00402025 */ move $a0, $v0 +/* 0C6B1C 7F091FEC 1000010F */ b .L7F09242C +/* 0C6B20 7F091FF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C6B24 7F091FF4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B28 7F091FF8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6B2C 7F091FFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B30 7F092000 44810000 */ mtc1 $at, $f0 +/* 0C6B34 7F092004 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C6B38 7F092008 46080032 */ c.eq.s $f0, $f8 +/* 0C6B3C 7F09200C 00000000 */ nop +/* 0C6B40 7F092010 45010006 */ bc1t .L7F09202C +/* 0C6B44 7F092014 00000000 */ nop +/* 0C6B48 7F092018 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C6B4C 7F09201C 4600503C */ c.lt.s $f10, $f0 +/* 0C6B50 7F092020 00000000 */ nop +/* 0C6B54 7F092024 45020101 */ bc1fl .L7F09242C +/* 0C6B58 7F092028 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09202C: +/* 0C6B5C 7F09202C 0FC30776 */ jal get_textptr_for_textID +/* 0C6B60 7F092030 3404B01B */ li $a0, 45083 +/* 0C6B64 7F092034 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B68 7F092038 00402025 */ move $a0, $v0 +/* 0C6B6C 7F09203C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B70 7F092040 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6B74 7F092044 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B78 7F092048 44818000 */ mtc1 $at, $f16 +/* 0C6B7C 7F09204C 8C4D0000 */ lw $t5, ($v0) +/* 0C6B80 7F092050 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C6B84 7F092054 44819000 */ mtc1 $at, $f18 +/* 0C6B88 7F092058 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C6B8C 7F09205C 8C4E0000 */ lw $t6, ($v0) +/* 0C6B90 7F092060 100000F1 */ b .L7F092428 +/* 0C6B94 7F092064 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C6B98 7F092068 24010001 */ li $at, 1 +/* 0C6B9C 7F09206C 544100EF */ bnel $v0, $at, .L7F09242C +/* 0C6BA0 7F092070 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BA4 7F092074 0FC23122 */ jal add_item_to_inventory +/* 0C6BA8 7F092078 24040012 */ li $a0, 18 +/* 0C6BAC 7F09207C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BB0 7F092080 2404000C */ li $a0, 12 +/* 0C6BB4 7F092084 2404000C */ li $a0, 12 +/* 0C6BB8 7F092088 0FC1A44C */ jal give_cur_player_ammo +/* 0C6BBC 7F09208C 00402825 */ move $a1, $v0 +/* 0C6BC0 7F092090 100000E6 */ b .L7F09242C +/* 0C6BC4 7F092094 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C6BC8 7F092098 24010001 */ li $at, 1 +/* 0C6BCC 7F09209C 544100E3 */ bnel $v0, $at, .L7F09242C +/* 0C6BD0 7F0920A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BD4 7F0920A4 0FC23122 */ jal add_item_to_inventory +/* 0C6BD8 7F0920A8 24040016 */ li $a0, 22 +/* 0C6BDC 7F0920AC 100000DF */ b .L7F09242C +/* 0C6BE0 7F0920B0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C6BE4 7F0920B4 24010001 */ li $at, 1 +/* 0C6BE8 7F0920B8 544100DC */ bnel $v0, $at, .L7F09242C +/* 0C6BEC 7F0920BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BF0 7F0920C0 0FC23122 */ jal add_item_to_inventory +/* 0C6BF4 7F0920C4 24040013 */ li $a0, 19 +/* 0C6BF8 7F0920C8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BFC 7F0920CC 2404000D */ li $a0, 13 +/* 0C6C00 7F0920D0 2404000D */ li $a0, 13 +/* 0C6C04 7F0920D4 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C08 7F0920D8 00402825 */ move $a1, $v0 +/* 0C6C0C 7F0920DC 100000D3 */ b .L7F09242C +/* 0C6C10 7F0920E0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C6C14 7F0920E4 24010001 */ li $at, 1 +/* 0C6C18 7F0920E8 544100D0 */ bnel $v0, $at, .L7F09242C +/* 0C6C1C 7F0920EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C20 7F0920F0 0FC23122 */ jal add_item_to_inventory +/* 0C6C24 7F0920F4 24040014 */ li $a0, 20 +/* 0C6C28 7F0920F8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C2C 7F0920FC 24040001 */ li $a0, 1 +/* 0C6C30 7F092100 24040001 */ li $a0, 1 +/* 0C6C34 7F092104 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C38 7F092108 00402825 */ move $a1, $v0 +/* 0C6C3C 7F09210C 100000C7 */ b .L7F09242C +/* 0C6C40 7F092110 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C6C44 7F092114 24010001 */ li $at, 1 +/* 0C6C48 7F092118 544100C4 */ bnel $v0, $at, .L7F09242C +/* 0C6C4C 7F09211C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C50 7F092120 0FC23122 */ jal add_item_to_inventory +/* 0C6C54 7F092124 24040015 */ li $a0, 21 +/* 0C6C58 7F092128 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C5C 7F09212C 24040001 */ li $a0, 1 +/* 0C6C60 7F092130 24040001 */ li $a0, 1 +/* 0C6C64 7F092134 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C68 7F092138 00402825 */ move $a1, $v0 +/* 0C6C6C 7F09213C 100000BB */ b .L7F09242C +/* 0C6C70 7F092140 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C6C74 7F092144 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C6C78 7F092148 44816000 */ mtc1 $at, $f12 +/* 0C6C7C 7F09214C 3C018005 */ lui $at, %hi(finalamount) +/* 0C6C80 7F092150 0FC20284 */ jal set_curplayer_fade +/* 0C6C84 7F092154 C42E73D8 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C6C88 7F092158 100000B4 */ b .L7F09242C +/* 0C6C8C 7F09215C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C6C90 7F092160 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C6C94 7F092164 00000000 */ nop +/* 0C6C98 7F092168 544000B0 */ bnezl $v0, .L7F09242C +/* 0C6C9C 7F09216C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CA0 7F092170 0FC30776 */ jal get_textptr_for_textID +/* 0C6CA4 7F092174 3404B01D */ li $a0, 45085 +/* 0C6CA8 7F092178 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6CAC 7F09217C 00402025 */ move $a0, $v0 +/* 0C6CB0 7F092180 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C6CB4 7F092184 24040001 */ li $a0, 1 +/* 0C6CB8 7F092188 100000A8 */ b .L7F09242C +/* 0C6CBC 7F09218C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C6CC0 7F092190 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C6CC4 7F092194 00000000 */ nop +/* 0C6CC8 7F092198 544000A4 */ bnezl $v0, .L7F09242C +/* 0C6CCC 7F09219C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CD0 7F0921A0 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C6CD4 7F0921A4 24040001 */ li $a0, 1 +/* 0C6CD8 7F0921A8 100000A0 */ b .L7F09242C +/* 0C6CDC 7F0921AC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C6CE0 7F0921B0 0FC08179 */ jal get_animation_rate +/* 0C6CE4 7F0921B4 00000000 */ nop +/* 0C6CE8 7F0921B8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6CEC 7F0921BC 44812000 */ mtc1 $at, $f4 +/* 0C6CF0 7F0921C0 00000000 */ nop +/* 0C6CF4 7F0921C4 4604003C */ c.lt.s $f0, $f4 +/* 0C6CF8 7F0921C8 00000000 */ nop +/* 0C6CFC 7F0921CC 45020097 */ bc1fl .L7F09242C +/* 0C6D00 7F0921D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D04 7F0921D4 0FC30776 */ jal get_textptr_for_textID +/* 0C6D08 7F0921D8 3404B034 */ li $a0, 45108 +/* 0C6D0C 7F0921DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D10 7F0921E0 00402025 */ move $a0, $v0 +/* 0C6D14 7F0921E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6D18 7F0921E8 44816000 */ mtc1 $at, $f12 +/* 0C6D1C 7F0921EC 0FC08150 */ jal animation_speed_related +/* 0C6D20 7F0921F0 00000000 */ nop +/* 0C6D24 7F0921F4 1000008D */ b .L7F09242C +/* 0C6D28 7F0921F8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C6D2C 7F0921FC 0FC08179 */ jal get_animation_rate +/* 0C6D30 7F092200 00000000 */ nop +/* 0C6D34 7F092204 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D38 7F092208 44813000 */ mtc1 $at, $f6 +/* 0C6D3C 7F09220C 00000000 */ nop +/* 0C6D40 7F092210 4600303C */ c.lt.s $f6, $f0 +/* 0C6D44 7F092214 00000000 */ nop +/* 0C6D48 7F092218 45020084 */ bc1fl .L7F09242C +/* 0C6D4C 7F09221C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D50 7F092220 0FC30776 */ jal get_textptr_for_textID +/* 0C6D54 7F092224 3404B032 */ li $a0, 45106 +/* 0C6D58 7F092228 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D5C 7F09222C 00402025 */ move $a0, $v0 +/* 0C6D60 7F092230 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D64 7F092234 44816000 */ mtc1 $at, $f12 +/* 0C6D68 7F092238 0FC08150 */ jal animation_speed_related +/* 0C6D6C 7F09223C 00000000 */ nop +/* 0C6D70 7F092240 1000007A */ b .L7F09242C +/* 0C6D74 7F092244 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C6D78 7F092248 24010001 */ li $at, 1 +/* 0C6D7C 7F09224C 14410076 */ bne $v0, $at, .L7F092428 +/* 0C6D80 7F092250 24040019 */ li $a0, 25 +/* 0C6D84 7F092254 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6D88 7F092258 24050019 */ li $a1, 25 +/* 0C6D8C 7F09225C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6D90 7F092260 24040006 */ li $a0, 6 +/* 0C6D94 7F092264 24040006 */ li $a0, 6 +/* 0C6D98 7F092268 0FC1A44C */ jal give_cur_player_ammo +/* 0C6D9C 7F09226C 00402825 */ move $a1, $v0 +/* 0C6DA0 7F092270 1000006E */ b .L7F09242C +/* 0C6DA4 7F092274 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C6DA8 7F092278 24010001 */ li $at, 1 +/* 0C6DAC 7F09227C 1441006A */ bne $v0, $at, .L7F092428 +/* 0C6DB0 7F092280 24040018 */ li $a0, 24 +/* 0C6DB4 7F092284 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DB8 7F092288 24050018 */ li $a1, 24 +/* 0C6DBC 7F09228C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DC0 7F092290 2404000B */ li $a0, 11 +/* 0C6DC4 7F092294 2404000B */ li $a0, 11 +/* 0C6DC8 7F092298 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DCC 7F09229C 00402825 */ move $a1, $v0 +/* 0C6DD0 7F0922A0 10000062 */ b .L7F09242C +/* 0C6DD4 7F0922A4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C6DD8 7F0922A8 24010001 */ li $at, 1 +/* 0C6DDC 7F0922AC 1441005E */ bne $v0, $at, .L7F092428 +/* 0C6DE0 7F0922B0 2404000E */ li $a0, 14 +/* 0C6DE4 7F0922B4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DE8 7F0922B8 2405000E */ li $a1, 14 +/* 0C6DEC 7F0922BC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DF0 7F0922C0 24040001 */ li $a0, 1 +/* 0C6DF4 7F0922C4 24040001 */ li $a0, 1 +/* 0C6DF8 7F0922C8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DFC 7F0922CC 00402825 */ move $a1, $v0 +/* 0C6E00 7F0922D0 10000056 */ b .L7F09242C +/* 0C6E04 7F0922D4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C6E08 7F0922D8 24010001 */ li $at, 1 +/* 0C6E0C 7F0922DC 14410052 */ bne $v0, $at, .L7F092428 +/* 0C6E10 7F0922E0 24040003 */ li $a0, 3 +/* 0C6E14 7F0922E4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E18 7F0922E8 24050003 */ li $a1, 3 +/* 0C6E1C 7F0922EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6E20 7F0922F0 2404000A */ li $a0, 10 +/* 0C6E24 7F0922F4 2404000A */ li $a0, 10 +/* 0C6E28 7F0922F8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6E2C 7F0922FC 00402825 */ move $a1, $v0 +/* 0C6E30 7F092300 1000004A */ b .L7F09242C +/* 0C6E34 7F092304 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C6E38 7F092308 24010001 */ li $at, 1 +/* 0C6E3C 7F09230C 14410046 */ bne $v0, $at, .L7F092428 +/* 0C6E40 7F092310 24040002 */ li $a0, 2 +/* 0C6E44 7F092314 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E48 7F092318 24050002 */ li $a1, 2 +/* 0C6E4C 7F09231C 10000043 */ b .L7F09242C +/* 0C6E50 7F092320 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C6E54 7F092324 24010001 */ li $at, 1 +/* 0C6E58 7F092328 1441003F */ bne $v0, $at, .L7F092428 +/* 0C6E5C 7F09232C 24040016 */ li $a0, 22 +/* 0C6E60 7F092330 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E64 7F092334 24050016 */ li $a1, 22 +/* 0C6E68 7F092338 1000003C */ b .L7F09242C +/* 0C6E6C 7F09233C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C6E70 7F092340 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 0C6E74 7F092344 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C6E78 7F092348 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C6E7C 7F09234C 04800036 */ bltz $a0, .L7F092428 +/* 0C6E80 7F092350 28810004 */ slti $at, $a0, 4 +/* 0C6E84 7F092354 50200035 */ beql $at, $zero, .L7F09242C +/* 0C6E88 7F092358 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6E8C 7F09235C 0FC079D8 */ jal sub_GAME_7F01E760 +/* 0C6E90 7F092360 00000000 */ nop +/* 0C6E94 7F092364 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C6E98 7F092368 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6E9C 7F09236C 2405009F */ li $a1, 159 +/* 0C6EA0 7F092370 0C002382 */ jal play_sfx_a1 +/* 0C6EA4 7F092374 00003025 */ move $a2, $zero +/* 0C6EA8 7F092378 1000002C */ b .L7F09242C +/* 0C6EAC 7F09237C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C6EB0 7F092380 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EB4 7F092384 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EB8 7F092388 8C440000 */ lw $a0, ($v0) +/* 0C6EBC 7F09238C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C6EC0 7F092390 04800025 */ bltz $a0, .L7F092428 +/* 0C6EC4 7F092394 28810004 */ slti $at, $a0, 4 +/* 0C6EC8 7F092398 10200023 */ beqz $at, .L7F092428 +/* 0C6ECC 7F09239C 00001825 */ move $v1, $zero +/* 0C6ED0 7F0923A0 19000014 */ blez $t0, .L7F0923F4 +/* 0C6ED4 7F0923A4 00002825 */ move $a1, $zero +.L7F0923A8: +/* 0C6ED8 7F0923A8 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EDC 7F0923AC 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EE0 7F0923B0 8C440000 */ lw $a0, ($v0) +/* 0C6EE4 7F0923B4 00003025 */ move $a2, $zero +/* 0C6EE8 7F0923B8 AFA30018 */ sw $v1, 0x18($sp) +/* 0C6EEC 7F0923BC AFA5001C */ sw $a1, 0x1c($sp) +/* 0C6EF0 7F0923C0 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0C6EF4 7F0923C4 AFA80020 */ sw $t0, 0x20($sp) +/* 0C6EF8 7F0923C8 24010003 */ li $at, 3 +/* 0C6EFC 7F0923CC 8FA30018 */ lw $v1, 0x18($sp) +/* 0C6F00 7F0923D0 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C6F04 7F0923D4 14410002 */ bne $v0, $at, .L7F0923E0 +/* 0C6F08 7F0923D8 8FA80020 */ lw $t0, 0x20($sp) +/* 0C6F0C 7F0923DC 24630001 */ addiu $v1, $v1, 1 +.L7F0923E0: +/* 0C6F10 7F0923E0 24A50001 */ addiu $a1, $a1, 1 +/* 0C6F14 7F0923E4 14A8FFF0 */ bne $a1, $t0, .L7F0923A8 +/* 0C6F18 7F0923E8 00000000 */ nop +/* 0C6F1C 7F0923EC 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6F20 7F0923F0 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +.L7F0923F4: +/* 0C6F24 7F0923F4 246F0001 */ addiu $t7, $v1, 1 +/* 0C6F28 7F0923F8 150F000B */ bne $t0, $t7, .L7F092428 +/* 0C6F2C 7F0923FC 2505FFFF */ addiu $a1, $t0, -1 +/* 0C6F30 7F092400 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C6F34 7F092404 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C6F38 7F092408 8C440000 */ lw $a0, ($v0) +/* 0C6F3C 7F09240C 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 0C6F40 7F092410 00003025 */ move $a2, $zero +/* 0C6F44 7F092414 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C6F48 7F092418 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6F4C 7F09241C 2405009F */ li $a1, 159 +/* 0C6F50 7F092420 0C002382 */ jal play_sfx_a1 +/* 0C6F54 7F092424 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.L7F092428: +/* 0C6F58 7F092428 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09242C: +/* 0C6F5C 7F09242C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C6F60 7F092430 03E00008 */ jr $ra +/* 0C6F64 7F092434 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ + +.text +glabel handle_cheats_turned_on +/* 0C71B4 7F092644 00047100 */ sll $t6, $a0, 4 +/* 0C71B8 7F092648 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C71BC 7F09264C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C71C0 7F092650 8DEFF838 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C71C4 7F092654 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C71C8 7F092658 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C71CC 7F09265C AFA40040 */ sw $a0, 0x40($sp) +/* 0C71D0 7F092660 0FC26F3C */ jal get_cur_playernum +/* 0C71D4 7F092664 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C71D8 7F092668 0FC26C01 */ jal get_num_players +/* 0C71DC 7F09266C AFA20038 */ sw $v0, 0x38($sp) +/* 0C71E0 7F092670 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C71E4 7F092674 8FA60040 */ lw $a2, 0x40($sp) +/* 0C71E8 7F092678 AFA20034 */ sw $v0, 0x34($sp) +/* 0C71EC 7F09267C 30780010 */ andi $t8, $v1, 0x10 +/* 0C71F0 7F092680 17000012 */ bnez $t8, .Ljp7F0926CC +/* 0C71F4 7F092684 30790020 */ andi $t9, $v1, 0x20 +/* 0C71F8 7F092688 1720000A */ bnez $t9, .Ljp7F0926B4 +/* 0C71FC 7F09268C 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7200 7F092690 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) # $t1, 0x8008 +/* 0C7204 7F092694 25299EA0 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x6160 +/* 0C7208 7F092698 00C91821 */ addu $v1, $a2, $t1 +/* 0C720C 7F09269C 906A0000 */ lbu $t2, ($v1) +/* 0C7210 7F0926A0 240B0001 */ li $t3, 1 +/* 0C7214 7F0926A4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C7218 7F0926A8 014C6825 */ or $t5, $t2, $t4 +/* 0C721C 7F0926AC 10000007 */ b .Ljp7F0926CC +/* 0C7220 7F0926B0 A06D0000 */ sb $t5, ($v1) +.Ljp7F0926B4: +/* 0C7224 7F0926B4 240E0001 */ li $t6, 1 +/* 0C7228 7F0926B8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C722C 7F0926BC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C7230 7F0926C0 00260821 */ addu $at, $at, $a2 +/* 0C7234 7F0926C4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C7238 7F0926C8 A0389EA0 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.Ljp7F0926CC: +/* 0C723C 7F0926CC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C7240 7F0926D0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C7244 7F0926D4 10200234 */ beqz $at, .Ljp7F092FA8 +/* 0C7248 7F0926D8 0019C880 */ sll $t9, $t9, 2 +/* 0C724C 7F0926DC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C7250 7F0926E0 00390821 */ addu $at, $at, $t9 +/* 0C7254 7F0926E4 8C3972E0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C7258 7F0926E8 03200008 */ jr $t9 +/* 0C725C 7F0926EC 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C7260 7F0926F0 0FC040B0 */ jal unlock_all_mp_chars +/* 0C7264 7F0926F4 00000000 */ nop +/* 0C7268 7F0926F8 1000022C */ b .Ljp7F092FAC +/* 0C726C 7F0926FC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C7270 7F092700 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7274 7F092704 00000000 */ nop +/* 0C7278 7F092708 54400228 */ bnezl $v0, .Ljp7F092FAC +/* 0C727C 7F09270C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7280 7F092710 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7284 7F092714 3404B00F */ li $a0, 45071 +/* 0C7288 7F092718 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C728C 7F09271C 00402025 */ move $a0, $v0 +/* 0C7290 7F092720 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7294 7F092724 24040001 */ li $a0, 1 +/* 0C7298 7F092728 10000220 */ b .Ljp7F092FAC +/* 0C729C 7F09272C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C72A0 7F092730 0FC232CF */ jal get_BONDdata_allguns_flag +/* 0C72A4 7F092734 00000000 */ nop +/* 0C72A8 7F092738 5440021C */ bnezl $v0, .Ljp7F092FAC +/* 0C72AC 7F09273C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C72B0 7F092740 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72B4 7F092744 3404B010 */ li $a0, 45072 +/* 0C72B8 7F092748 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72BC 7F09274C 00402025 */ move $a0, $v0 +/* 0C72C0 7F092750 0FC232CB */ jal set_BONDdata_allguns_flag +/* 0C72C4 7F092754 24040001 */ li $a0, 1 +/* 0C72C8 7F092758 10000214 */ b .Ljp7F092FAC +/* 0C72CC 7F09275C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C72D0 7F092760 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72D4 7F092764 3404B011 */ li $a0, 45073 +/* 0C72D8 7F092768 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72DC 7F09276C 00402025 */ move $a0, $v0 +/* 0C72E0 7F092770 0FC1A637 */ jal set_max_ammo_for_cur_player +/* 0C72E4 7F092774 00000000 */ nop +/* 0C72E8 7F092778 1000020C */ b .Ljp7F092FAC +/* 0C72EC 7F09277C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C72F0 7F092780 28410002 */ slti $at, $v0, 2 +/* 0C72F4 7F092784 14200208 */ bnez $at, .Ljp7F092FA8 +/* 0C72F8 7F092788 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C72FC 7F09278C 18400015 */ blez $v0, .Ljp7F0927E4 +/* 0C7300 7F092790 AFA00030 */ sw $zero, 0x30($sp) +.Ljp7F092794: +/* 0C7304 7F092794 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7308 7F092798 8FA90030 */ lw $t1, 0x30($sp) +/* 0C730C 7F09279C 1125000A */ beq $t1, $a1, .Ljp7F0927C8 +/* 0C7310 7F0927A0 00000000 */ nop +/* 0C7314 7F0927A4 0FC26F2B */ jal set_cur_player +/* 0C7318 7F0927A8 01202025 */ move $a0, $t1 +/* 0C731C 7F0927AC 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7320 7F0927B0 00000000 */ nop +/* 0C7324 7F0927B4 10400004 */ beqz $v0, .Ljp7F0927C8 +/* 0C7328 7F0927B8 00002025 */ move $a0, $zero +/* 0C732C 7F0927BC 240B0001 */ li $t3, 1 +/* 0C7330 7F0927C0 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7334 7F0927C4 AFAB002C */ sw $t3, 0x2c($sp) +.Ljp7F0927C8: +/* 0C7338 7F0927C8 0FC26F2B */ jal set_cur_player +/* 0C733C 7F0927CC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C7340 7F0927D0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C7344 7F0927D4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C7348 7F0927D8 254C0001 */ addiu $t4, $t2, 1 +/* 0C734C 7F0927DC 158DFFED */ bne $t4, $t5, .Ljp7F092794 +/* 0C7350 7F0927E0 AFAC0030 */ sw $t4, 0x30($sp) +.Ljp7F0927E4: +/* 0C7354 7F0927E4 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C7358 7F0927E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C735C 7F0927EC 2405009F */ li $a1, 159 +/* 0C7360 7F0927F0 11C001ED */ beqz $t6, .Ljp7F092FA8 +/* 0C7364 7F0927F4 00003025 */ move $a2, $zero +/* 0C7368 7F0927F8 0C002386 */ jal play_sfx_a1 +/* 0C736C 7F0927FC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7370 7F092800 100001EA */ b .Ljp7F092FAC +/* 0C7374 7F092804 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C7378 7F092808 0FC246B2 */ jal set_debug_VisCVG_flag +/* 0C737C 7F09280C 24040001 */ li $a0, 1 +/* 0C7380 7F092810 100001E6 */ b .Ljp7F092FAC +/* 0C7384 7F092814 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C7388 7F092818 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C738C 7F09281C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7390 7F092820 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7394 7F092824 44812000 */ mtc1 $at, $f4 +/* 0C7398 7F092828 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C739C 7F09282C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73A0 7F092830 46062032 */ c.eq.s $f4, $f6 +/* 0C73A4 7F092834 00000000 */ nop +/* 0C73A8 7F092838 45010008 */ bc1t .Ljp7F09285C +/* 0C73AC 7F09283C 00000000 */ nop +/* 0C73B0 7F092840 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C73B4 7F092844 44815000 */ mtc1 $at, $f10 +/* 0C73B8 7F092848 00000000 */ nop +/* 0C73BC 7F09284C 460A403C */ c.lt.s $f8, $f10 +/* 0C73C0 7F092850 00000000 */ nop +/* 0C73C4 7F092854 450201D5 */ bc1fl .Ljp7F092FAC +/* 0C73C8 7F092858 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F09285C: +/* 0C73CC 7F09285C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C73D0 7F092860 3404B012 */ li $a0, 45074 +/* 0C73D4 7F092864 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C73D8 7F092868 00402025 */ move $a0, $v0 +/* 0C73DC 7F09286C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73E0 7F092870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0C73E4 7F092874 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0C73E8 7F092878 44818000 */ mtc1 $at, $f16 +/* 0C73EC 7F09287C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C73F0 7F092880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C73F4 7F092884 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C73F8 7F092888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C73FC 7F09288C 44819000 */ mtc1 $at, $f18 +/* 0C7400 7F092890 100001C5 */ b .Ljp7F092FA8 +/* 0C7404 7F092894 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C7408 7F092898 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C740C 7F09289C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7410 7F0928A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7414 7F0928A4 44810000 */ mtc1 $at, $f0 +/* 0C7418 7F0928A8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C741C 7F0928AC 46040032 */ c.eq.s $f0, $f4 +/* 0C7420 7F0928B0 00000000 */ nop +/* 0C7424 7F0928B4 45010006 */ bc1t .Ljp7F0928D0 +/* 0C7428 7F0928B8 00000000 */ nop +/* 0C742C 7F0928BC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C7430 7F0928C0 4600303C */ c.lt.s $f6, $f0 +/* 0C7434 7F0928C4 00000000 */ nop +/* 0C7438 7F0928C8 450201B8 */ bc1fl .Ljp7F092FAC +/* 0C743C 7F0928CC 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0928D0: +/* 0C7440 7F0928D0 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7444 7F0928D4 3404B013 */ li $a0, 45075 +/* 0C7448 7F0928D8 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C744C 7F0928DC 00402025 */ move $a0, $v0 +/* 0C7450 7F0928E0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7454 7F0928E4 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7458 7F0928E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C745C 7F0928EC 44814000 */ mtc1 $at, $f8 +/* 0C7460 7F0928F0 8C590000 */ lw $t9, ($v0) +/* 0C7464 7F0928F4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C7468 7F0928F8 44815000 */ mtc1 $at, $f10 +/* 0C746C 7F0928FC E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C7470 7F092900 8C490000 */ lw $t1, ($v0) +/* 0C7474 7F092904 100001A8 */ b .Ljp7F092FA8 +/* 0C7478 7F092908 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C747C 7F09290C 0FC229AB */ jal get_invisible_to_guards_flag +/* 0C7480 7F092910 00000000 */ nop +/* 0C7484 7F092914 504001A5 */ beql $v0, $zero, .Ljp7F092FAC +/* 0C7488 7F092918 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C748C 7F09291C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7490 7F092920 3404B014 */ li $a0, 45076 +/* 0C7494 7F092924 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7498 7F092928 00402025 */ move $a0, $v0 +/* 0C749C 7F09292C 0FC229A8 */ jal set_invisible_to_guards_flag +/* 0C74A0 7F092930 00002025 */ move $a0, $zero +/* 0C74A4 7F092934 1000019D */ b .Ljp7F092FAC +/* 0C74A8 7F092938 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C74AC 7F09293C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74B0 7F092940 3404B016 */ li $a0, 45078 +/* 0C74B4 7F092944 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74B8 7F092948 00402025 */ move $a0, $v0 +/* 0C74BC 7F09294C 10000197 */ b .Ljp7F092FAC +/* 0C74C0 7F092950 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C74C4 7F092954 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74C8 7F092958 3404B017 */ li $a0, 45079 +/* 0C74CC 7F09295C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74D0 7F092960 00402025 */ move $a0, $v0 +/* 0C74D4 7F092964 0FC24CDD */ jal set_DKMode +/* 0C74D8 7F092968 24040001 */ li $a0, 1 +/* 0C74DC 7F09296C 1000018F */ b .Ljp7F092FAC +/* 0C74E0 7F092970 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C74E4 7F092974 24010001 */ li $at, 1 +/* 0C74E8 7F092978 5441018C */ bnel $v0, $at, .Ljp7F092FAC +/* 0C74EC 7F09297C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C74F0 7F092980 0FC2335A */ jal add_item_to_inventory +/* 0C74F4 7F092984 24040012 */ li $a0, 18 +/* 0C74F8 7F092988 AFA20028 */ sw $v0, 0x28($sp) +/* 0C74FC 7F09298C 0FC2335A */ jal add_item_to_inventory +/* 0C7500 7F092990 24040016 */ li $a0, 22 +/* 0C7504 7F092994 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C7508 7F092998 24040013 */ li $a0, 19 +/* 0C750C 7F09299C 01625021 */ addu $t2, $t3, $v0 +/* 0C7510 7F0929A0 0FC2335A */ jal add_item_to_inventory +/* 0C7514 7F0929A4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C7518 7F0929A8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C751C 7F0929AC 24040014 */ li $a0, 20 +/* 0C7520 7F0929B0 01826821 */ addu $t5, $t4, $v0 +/* 0C7524 7F0929B4 0FC2335A */ jal add_item_to_inventory +/* 0C7528 7F0929B8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C752C 7F0929BC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C7530 7F0929C0 24040015 */ li $a0, 21 +/* 0C7534 7F0929C4 01C27821 */ addu $t7, $t6, $v0 +/* 0C7538 7F0929C8 0FC2335A */ jal add_item_to_inventory +/* 0C753C 7F0929CC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C7540 7F0929D0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C7544 7F0929D4 2404000C */ li $a0, 12 +/* 0C7548 7F0929D8 0302C821 */ addu $t9, $t8, $v0 +/* 0C754C 7F0929DC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7550 7F0929E0 AFB90028 */ sw $t9, 0x28($sp) +/* 0C7554 7F0929E4 2404000C */ li $a0, 12 +/* 0C7558 7F0929E8 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C755C 7F0929EC 00402825 */ move $a1, $v0 +/* 0C7560 7F0929F0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7564 7F0929F4 2404000D */ li $a0, 13 +/* 0C7568 7F0929F8 2404000D */ li $a0, 13 +/* 0C756C 7F0929FC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7570 7F092A00 00402825 */ move $a1, $v0 +/* 0C7574 7F092A04 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7578 7F092A08 24040001 */ li $a0, 1 +/* 0C757C 7F092A0C 24040001 */ li $a0, 1 +/* 0C7580 7F092A10 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7584 7F092A14 00402825 */ move $a1, $v0 +/* 0C7588 7F092A18 8FA90028 */ lw $t1, 0x28($sp) +/* 0C758C 7F092A1C 59200163 */ blezl $t1, .Ljp7F092FAC +/* 0C7590 7F092A20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7594 7F092A24 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7598 7F092A28 3404B018 */ li $a0, 45080 +/* 0C759C 7F092A2C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75A0 7F092A30 00402025 */ move $a0, $v0 +/* 0C75A4 7F092A34 1000015D */ b .Ljp7F092FAC +/* 0C75A8 7F092A38 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C75AC 7F092A3C 24010001 */ li $at, 1 +/* 0C75B0 7F092A40 14410159 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(pPlayersPerm) # $t3, 0x8008 +/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C75BC 7F092A4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C75C0 7F092A50 44818000 */ mtc1 $at, $f16 +/* 0C75C4 7F092A54 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C75C8 7F092A58 46128032 */ c.eq.s $f16, $f18 +/* 0C75CC 7F092A5C 00000000 */ nop +/* 0C75D0 7F092A60 45020152 */ bc1fl .Ljp7F092FAC +/* 0C75D4 7F092A64 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C75D8 7F092A68 0FC30AA2 */ jal get_textptr_for_textID +/* 0C75DC 7F092A6C 3404B019 */ li $a0, 45081 +/* 0C75E0 7F092A70 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75E4 7F092A74 00402025 */ move $a0, $v0 +/* 0C75E8 7F092A78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) # $t2, 0x8008 +/* 0C75F0 7F092A80 44810000 */ mtc1 $at, $f0 +/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C75F8 7F092A88 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0C75FC 7F092A8C E5400064 */ swc1 $f0, 0x64($t2) +/* 0C7600 7F092A90 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0C7604 7F092A94 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C7608 7F092A98 50800144 */ beql $a0, $zero, .Ljp7F092FAC +/* 0C760C 7F092A9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7610 7F092AA0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7614 7F092AA4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C7618 7F092AA8 44053000 */ mfc1 $a1, $f6 +/* 0C761C 7F092AAC 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0C7620 7F092AB0 00000000 */ nop +/* 0C7624 7F092AB4 1000013D */ b .Ljp7F092FAC +/* 0C7628 7F092AB8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C762C 7F092ABC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7630 7F092AC0 3404B01A */ li $a0, 45082 +/* 0C7634 7F092AC4 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7638 7F092AC8 00402025 */ move $a0, $v0 +/* 0C763C 7F092ACC 10000137 */ b .Ljp7F092FAC +/* 0C7640 7F092AD0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C7644 7F092AD4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7648 7F092AD8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C764C 7F092ADC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7650 7F092AE0 44810000 */ mtc1 $at, $f0 +/* 0C7654 7F092AE4 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C7658 7F092AE8 46080032 */ c.eq.s $f0, $f8 +/* 0C765C 7F092AEC 00000000 */ nop +/* 0C7660 7F092AF0 45010006 */ bc1t .Ljp7F092B0C +/* 0C7664 7F092AF4 00000000 */ nop +/* 0C7668 7F092AF8 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C766C 7F092AFC 4600503C */ c.lt.s $f10, $f0 +/* 0C7670 7F092B00 00000000 */ nop +/* 0C7674 7F092B04 45020129 */ bc1fl .Ljp7F092FAC +/* 0C7678 7F092B08 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092B0C: +/* 0C767C 7F092B0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7680 7F092B10 3404B01B */ li $a0, 45083 +/* 0C7684 7F092B14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7688 7F092B18 00402025 */ move $a0, $v0 +/* 0C768C 7F092B1C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7690 7F092B20 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7694 7F092B24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7698 7F092B28 44818000 */ mtc1 $at, $f16 +/* 0C769C 7F092B2C 8C4D0000 */ lw $t5, ($v0) +/* 0C76A0 7F092B30 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C76A4 7F092B34 44819000 */ mtc1 $at, $f18 +/* 0C76A8 7F092B38 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C76AC 7F092B3C 8C4E0000 */ lw $t6, ($v0) +/* 0C76B0 7F092B40 10000119 */ b .Ljp7F092FA8 +/* 0C76B4 7F092B44 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C76B8 7F092B48 24010001 */ li $at, 1 +/* 0C76BC 7F092B4C 54410117 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76C0 7F092B50 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76C4 7F092B54 0FC2335A */ jal add_item_to_inventory +/* 0C76C8 7F092B58 24040012 */ li $a0, 18 +/* 0C76CC 7F092B5C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C76D0 7F092B60 2404000C */ li $a0, 12 +/* 0C76D4 7F092B64 2404000C */ li $a0, 12 +/* 0C76D8 7F092B68 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C76DC 7F092B6C 00402825 */ move $a1, $v0 +/* 0C76E0 7F092B70 1000010E */ b .Ljp7F092FAC +/* 0C76E4 7F092B74 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C76E8 7F092B78 24010001 */ li $at, 1 +/* 0C76EC 7F092B7C 5441010B */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76F0 7F092B80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76F4 7F092B84 0FC2335A */ jal add_item_to_inventory +/* 0C76F8 7F092B88 24040016 */ li $a0, 22 +/* 0C76FC 7F092B8C 10000107 */ b .Ljp7F092FAC +/* 0C7700 7F092B90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C7704 7F092B94 24010001 */ li $at, 1 +/* 0C7708 7F092B98 54410104 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C770C 7F092B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7710 7F092BA0 0FC2335A */ jal add_item_to_inventory +/* 0C7714 7F092BA4 24040013 */ li $a0, 19 +/* 0C7718 7F092BA8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C771C 7F092BAC 2404000D */ li $a0, 13 +/* 0C7720 7F092BB0 2404000D */ li $a0, 13 +/* 0C7724 7F092BB4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7728 7F092BB8 00402825 */ move $a1, $v0 +/* 0C772C 7F092BBC 100000FB */ b .Ljp7F092FAC +/* 0C7730 7F092BC0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C7734 7F092BC4 24010001 */ li $at, 1 +/* 0C7738 7F092BC8 544100F8 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C773C 7F092BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7740 7F092BD0 0FC2335A */ jal add_item_to_inventory +/* 0C7744 7F092BD4 24040014 */ li $a0, 20 +/* 0C7748 7F092BD8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C774C 7F092BDC 24040001 */ li $a0, 1 +/* 0C7750 7F092BE0 24040001 */ li $a0, 1 +/* 0C7754 7F092BE4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7758 7F092BE8 00402825 */ move $a1, $v0 +/* 0C775C 7F092BEC 100000EF */ b .Ljp7F092FAC +/* 0C7760 7F092BF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C7764 7F092BF4 24010001 */ li $at, 1 +/* 0C7768 7F092BF8 544100EC */ bnel $v0, $at, .Ljp7F092FAC +/* 0C776C 7F092BFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7770 7F092C00 0FC2335A */ jal add_item_to_inventory +/* 0C7774 7F092C04 24040015 */ li $a0, 21 +/* 0C7778 7F092C08 0FC1A630 */ jal get_max_ammo_for_type +/* 0C777C 7F092C0C 24040001 */ li $a0, 1 +/* 0C7780 7F092C10 24040001 */ li $a0, 1 +/* 0C7784 7F092C14 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7788 7F092C18 00402825 */ move $a1, $v0 +/* 0C778C 7F092C1C 100000E3 */ b .Ljp7F092FAC +/* 0C7790 7F092C20 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C7794 7F092C24 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C7798 7F092C28 44816000 */ mtc1 $at, $f12 +/* 0C779C 7F092C2C 3C018005 */ lui $at, %hi(finalamount) # $at, 0x8005 +/* 0C77A0 7F092C30 0FC20408 */ jal set_curplayer_fade +/* 0C77A4 7F092C34 C42E7408 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C77A8 7F092C38 100000DC */ b .Ljp7F092FAC +/* 0C77AC 7F092C3C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C77B0 7F092C40 0FC246BE */ jal get_debug_fast_bond_flag +/* 0C77B4 7F092C44 00000000 */ nop +/* 0C77B8 7F092C48 544000D8 */ bnezl $v0, .Ljp7F092FAC +/* 0C77BC 7F092C4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77C0 7F092C50 0FC30AA2 */ jal get_textptr_for_textID +/* 0C77C4 7F092C54 3404B01D */ li $a0, 45085 +/* 0C77C8 7F092C58 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C77CC 7F092C5C 00402025 */ move $a0, $v0 +/* 0C77D0 7F092C60 0FC246C1 */ jal set_debug_fast_bond_flag +/* 0C77D4 7F092C64 24040001 */ li $a0, 1 +/* 0C77D8 7F092C68 100000D0 */ b .Ljp7F092FAC +/* 0C77DC 7F092C6C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C77E0 7F092C70 0FC2469A */ jal get_debug_testingmanpos_flag +/* 0C77E4 7F092C74 00000000 */ nop +/* 0C77E8 7F092C78 544000CC */ bnezl $v0, .Ljp7F092FAC +/* 0C77EC 7F092C7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77F0 7F092C80 0FC2469D */ jal set_debug_testingmanpos_flag +/* 0C77F4 7F092C84 24040001 */ li $a0, 1 +/* 0C77F8 7F092C88 100000C8 */ b .Ljp7F092FAC +/* 0C77FC 7F092C8C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C7800 7F092C90 0FC081E5 */ jal get_animation_rate +/* 0C7804 7F092C94 00000000 */ nop +/* 0C7808 7F092C98 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C780C 7F092C9C 44812000 */ mtc1 $at, $f4 +/* 0C7810 7F092CA0 00000000 */ nop +/* 0C7814 7F092CA4 4604003C */ c.lt.s $f0, $f4 +/* 0C7818 7F092CA8 00000000 */ nop +/* 0C781C 7F092CAC 450200BF */ bc1fl .Ljp7F092FAC +/* 0C7820 7F092CB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7824 7F092CB4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7828 7F092CB8 3404B034 */ li $a0, 45108 +/* 0C782C 7F092CBC 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7830 7F092CC0 00402025 */ move $a0, $v0 +/* 0C7834 7F092CC4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C7838 7F092CC8 44816000 */ mtc1 $at, $f12 +/* 0C783C 7F092CCC 0FC081BC */ jal animation_speed_related +/* 0C7840 7F092CD0 00000000 */ nop +/* 0C7844 7F092CD4 100000B5 */ b .Ljp7F092FAC +/* 0C7848 7F092CD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C784C 7F092CDC 0FC081E5 */ jal get_animation_rate +/* 0C7850 7F092CE0 00000000 */ nop +/* 0C7854 7F092CE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7858 7F092CE8 44813000 */ mtc1 $at, $f6 +/* 0C785C 7F092CEC 00000000 */ nop +/* 0C7860 7F092CF0 4600303C */ c.lt.s $f6, $f0 +/* 0C7864 7F092CF4 00000000 */ nop +/* 0C7868 7F092CF8 450200AC */ bc1fl .Ljp7F092FAC +/* 0C786C 7F092CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7870 7F092D00 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7874 7F092D04 3404B032 */ li $a0, 45106 +/* 0C7878 7F092D08 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C787C 7F092D0C 00402025 */ move $a0, $v0 +/* 0C7880 7F092D10 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7884 7F092D14 44816000 */ mtc1 $at, $f12 +/* 0C7888 7F092D18 0FC081BC */ jal animation_speed_related +/* 0C788C 7F092D1C 00000000 */ nop +/* 0C7890 7F092D20 100000A2 */ b .Ljp7F092FAC +/* 0C7894 7F092D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C7898 7F092D28 24010001 */ li $at, 1 +/* 0C789C 7F092D2C 5441009F */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78A0 7F092D30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78A4 7F092D34 0FC2335A */ jal add_item_to_inventory +/* 0C78A8 7F092D38 24040019 */ li $a0, 25 +/* 0C78AC 7F092D3C 24040019 */ li $a0, 25 +/* 0C78B0 7F092D40 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78B4 7F092D44 24050019 */ li $a1, 25 +/* 0C78B8 7F092D48 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78BC 7F092D4C 24040006 */ li $a0, 6 +/* 0C78C0 7F092D50 24040006 */ li $a0, 6 +/* 0C78C4 7F092D54 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C78C8 7F092D58 00402825 */ move $a1, $v0 +/* 0C78CC 7F092D5C 10000093 */ b .Ljp7F092FAC +/* 0C78D0 7F092D60 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C78D4 7F092D64 24010001 */ li $at, 1 +/* 0C78D8 7F092D68 54410090 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78DC 7F092D6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78E0 7F092D70 0FC2335A */ jal add_item_to_inventory +/* 0C78E4 7F092D74 24040018 */ li $a0, 24 +/* 0C78E8 7F092D78 24040018 */ li $a0, 24 +/* 0C78EC 7F092D7C 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78F0 7F092D80 24050018 */ li $a1, 24 +/* 0C78F4 7F092D84 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78F8 7F092D88 2404000B */ li $a0, 11 +/* 0C78FC 7F092D8C 2404000B */ li $a0, 11 +/* 0C7900 7F092D90 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7904 7F092D94 00402825 */ move $a1, $v0 +/* 0C7908 7F092D98 10000084 */ b .Ljp7F092FAC +/* 0C790C 7F092D9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C7910 7F092DA0 24010001 */ li $at, 1 +/* 0C7914 7F092DA4 54410081 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7918 7F092DA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C791C 7F092DAC 0FC2335A */ jal add_item_to_inventory +/* 0C7920 7F092DB0 2404000E */ li $a0, 14 +/* 0C7924 7F092DB4 2404000E */ li $a0, 14 +/* 0C7928 7F092DB8 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C792C 7F092DBC 2405000E */ li $a1, 14 +/* 0C7930 7F092DC0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7934 7F092DC4 24040001 */ li $a0, 1 +/* 0C7938 7F092DC8 24040001 */ li $a0, 1 +/* 0C793C 7F092DCC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7940 7F092DD0 00402825 */ move $a1, $v0 +/* 0C7944 7F092DD4 10000075 */ b .Ljp7F092FAC +/* 0C7948 7F092DD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C794C 7F092DDC 24010001 */ li $at, 1 +/* 0C7950 7F092DE0 54410072 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7954 7F092DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7958 7F092DE8 0FC2335A */ jal add_item_to_inventory +/* 0C795C 7F092DEC 24040003 */ li $a0, 3 +/* 0C7960 7F092DF0 24040003 */ li $a0, 3 +/* 0C7964 7F092DF4 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7968 7F092DF8 24050003 */ li $a1, 3 +/* 0C796C 7F092DFC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7970 7F092E00 2404000A */ li $a0, 10 +/* 0C7974 7F092E04 2404000A */ li $a0, 10 +/* 0C7978 7F092E08 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C797C 7F092E0C 00402825 */ move $a1, $v0 +/* 0C7980 7F092E10 10000066 */ b .Ljp7F092FAC +/* 0C7984 7F092E14 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C7988 7F092E18 24010001 */ li $at, 1 +/* 0C798C 7F092E1C 14410062 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C7990 7F092E20 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0C7994 7F092E24 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0C7998 7F092E28 11E00014 */ beqz $t7, .cheats_debug_2x_hunting_knife_en +/* 0C799C 7F092E2C 00000000 */ nop +/* 0C79A0 7F092E30 0FC2335A */ jal add_item_to_inventory +/* 0C79A4 7F092E34 24040019 */ li $a0, 25 +/* 0C79A8 7F092E38 0FC2335A */ jal add_item_to_inventory +/* 0C79AC 7F092E3C 24040011 */ li $a0, 17 +/* 0C79B0 7F092E40 24040011 */ li $a0, 17 +/* 0C79B4 7F092E44 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79B8 7F092E48 24050019 */ li $a1, 25 +/* 0C79BC 7F092E4C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79C0 7F092E50 24040006 */ li $a0, 6 +/* 0C79C4 7F092E54 24040006 */ li $a0, 6 +/* 0C79C8 7F092E58 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79CC 7F092E5C 00402825 */ move $a1, $v0 +/* 0C79D0 7F092E60 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79D4 7F092E64 24040003 */ li $a0, 3 +/* 0C79D8 7F092E68 24040003 */ li $a0, 3 +/* 0C79DC 7F092E6C 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79E0 7F092E70 00402825 */ move $a1, $v0 +/* 0C79E4 7F092E74 1000004D */ b .Ljp7F092FAC +/* 0C79E8 7F092E78 8FBF0014 */ lw $ra, 0x14($sp) +.cheats_debug_2x_hunting_knife_en: +/* 0C79EC 7F092E7C 0FC2335A */ jal add_item_to_inventory +/* 0C79F0 7F092E80 24040002 */ li $a0, 2 +/* 0C79F4 7F092E84 24040002 */ li $a0, 2 +/* 0C79F8 7F092E88 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79FC 7F092E8C 24050002 */ li $a1, 2 +/* 0C7A00 7F092E90 10000046 */ b .Ljp7F092FAC +/* 0C7A04 7F092E94 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C7A08 7F092E98 24010001 */ li $at, 1 +/* 0C7A0C 7F092E9C 54410043 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7A10 7F092EA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A14 7F092EA4 0FC2335A */ jal add_item_to_inventory +/* 0C7A18 7F092EA8 24040016 */ li $a0, 22 +/* 0C7A1C 7F092EAC 24040016 */ li $a0, 22 +/* 0C7A20 7F092EB0 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7A24 7F092EB4 24050016 */ li $a1, 22 +/* 0C7A28 7F092EB8 1000003C */ b .Ljp7F092FAC +/* 0C7A2C 7F092EBC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C7A30 7F092EC0 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 0C7A34 7F092EC4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C7A38 7F092EC8 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C7A3C 7F092ECC 04800036 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A40 7F092ED0 28810004 */ slti $at, $a0, 4 +/* 0C7A44 7F092ED4 50200035 */ beql $at, $zero, .Ljp7F092FAC +/* 0C7A48 7F092ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A4C 7F092EDC 0FC07A44 */ jal sub_GAME_7F01E760 +/* 0C7A50 7F092EE0 00000000 */ nop +/* 0C7A54 7F092EE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C7A58 7F092EE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7A5C 7F092EEC 2405009F */ li $a1, 159 +/* 0C7A60 7F092EF0 0C002386 */ jal play_sfx_a1 +/* 0C7A64 7F092EF4 00003025 */ move $a2, $zero +/* 0C7A68 7F092EF8 1000002C */ b .Ljp7F092FAC +/* 0C7A6C 7F092EFC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C7A70 7F092F00 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A74 7F092F04 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7A78 7F092F08 8C440000 */ lw $a0, ($v0) +/* 0C7A7C 7F092F0C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C7A80 7F092F10 04800025 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A84 7F092F14 28810004 */ slti $at, $a0, 4 +/* 0C7A88 7F092F18 10200023 */ beqz $at, .Ljp7F092FA8 +/* 0C7A8C 7F092F1C 00001825 */ move $v1, $zero +/* 0C7A90 7F092F20 19000014 */ blez $t0, .Ljp7F092F74 +/* 0C7A94 7F092F24 00002825 */ move $a1, $zero +.Ljp7F092F28: +/* 0C7A98 7F092F28 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A9C 7F092F2C 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7AA0 7F092F30 8C440000 */ lw $a0, ($v0) +/* 0C7AA4 7F092F34 00003025 */ move $a2, $zero +/* 0C7AA8 7F092F38 AFA30018 */ sw $v1, 0x18($sp) +/* 0C7AAC 7F092F3C AFA5001C */ sw $a1, 0x1c($sp) +/* 0C7AB0 7F092F40 0FC0791C */ jal isStageUnlockedAtDifficulty +/* 0C7AB4 7F092F44 AFA80020 */ sw $t0, 0x20($sp) +/* 0C7AB8 7F092F48 24010003 */ li $at, 3 +/* 0C7ABC 7F092F4C 8FA30018 */ lw $v1, 0x18($sp) +/* 0C7AC0 7F092F50 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C7AC4 7F092F54 14410002 */ bne $v0, $at, .Ljp7F092F60 +/* 0C7AC8 7F092F58 8FA80020 */ lw $t0, 0x20($sp) +/* 0C7ACC 7F092F5C 24630001 */ addiu $v1, $v1, 1 +.Ljp7F092F60: +/* 0C7AD0 7F092F60 24A50001 */ addiu $a1, $a1, 1 +/* 0C7AD4 7F092F64 14A8FFF0 */ bne $a1, $t0, .Ljp7F092F28 +/* 0C7AD8 7F092F68 00000000 */ nop +/* 0C7ADC 7F092F6C 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7AE0 7F092F70 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +.Ljp7F092F74: +/* 0C7AE4 7F092F74 24780001 */ addiu $t8, $v1, 1 +/* 0C7AE8 7F092F78 1518000B */ bne $t0, $t8, .Ljp7F092FA8 +/* 0C7AEC 7F092F7C 2505FFFF */ addiu $a1, $t0, -1 +/* 0C7AF0 7F092F80 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C7AF4 7F092F84 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C7AF8 7F092F88 8C440000 */ lw $a0, ($v0) +/* 0C7AFC 7F092F8C 0FC079EA */ jal unlock_stage_in_folder_on_difficulty +/* 0C7B00 7F092F90 00003025 */ move $a2, $zero +/* 0C7B04 7F092F94 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C7B08 7F092F98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7B0C 7F092F9C 2405009F */ li $a1, 159 +/* 0C7B10 7F092FA0 0C002386 */ jal play_sfx_a1 +/* 0C7B14 7F092FA4 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.Ljp7F092FA8: +/* 0C7B18 7F092FA8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092FAC: +/* 0C7B1C 7F092FAC 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C7B20 7F092FB0 03E00008 */ jr $ra +/* 0C7B24 7F092FB4 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void cheatDisplayMessageActivateCheat(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:800573DC*/ +glabel jpt_800573DC +.word cheat_button_default +.word cheat_button_invincibility +.word cheat_button_all_guns +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_line_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_unknown +.word cheat_button_infinite_ammo +.word cheat_button_dkmode +.word cheat_button_default +.word cheat_button_unknown_0 +.word cheat_button_paintball +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_mp_invis +.word cheat_button_default +.word cheat_button_fast_mode +.word cheat_button_debug_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ + +.text +glabel cheatDisplayMessageActivateCheat +/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4 +/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6 +/* 0C6F74 7F092444 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C6F78 7F092448 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C6F7C 7F09244C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6F80 7F092450 AFA40020 */ sw $a0, 0x20($sp) +/* 0C6F84 7F092454 0FC26C54 */ jal get_cur_playernum +/* 0C6F88 7F092458 AFAF001C */ sw $t7, 0x1c($sp) +/* 0C6F8C 7F09245C 0FC26919 */ jal get_num_players +/* 0C6F90 7F092460 AFA20018 */ sw $v0, 0x18($sp) +/* 0C6F94 7F092464 8FA3001C */ lw $v1, 0x1c($sp) +/* 0C6F98 7F092468 8FA40020 */ lw $a0, 0x20($sp) +/* 0C6F9C 7F09246C 30780010 */ andi $t8, $v1, 0x10 +/* 0C6FA0 7F092470 17000010 */ bnez $t8, .L7F0924B4 +/* 0C6FA4 7F092474 30790020 */ andi $t9, $v1, 0x20 +/* 0C6FA8 7F092478 1720000B */ bnez $t9, .L7F0924A8 +/* 0C6FAC 7F09247C 3C088008 */ lui $t0, %hi(off_CODE_bss_80079E30) +/* 0C6FB0 7F092480 8FAA0018 */ lw $t2, 0x18($sp) +/* 0C6FB4 7F092484 25089E30 */ addiu $t0, %lo(off_CODE_bss_80079E30) # addiu $t0, $t0, -0x61d0 +/* 0C6FB8 7F092488 00881821 */ addu $v1, $a0, $t0 +/* 0C6FBC 7F09248C 90690000 */ lbu $t1, ($v1) +/* 0C6FC0 7F092490 240B0001 */ li $t3, 1 +/* 0C6FC4 7F092494 014B6004 */ sllv $t4, $t3, $t2 +/* 0C6FC8 7F092498 01806827 */ not $t5, $t4 +/* 0C6FCC 7F09249C 012D7024 */ and $t6, $t1, $t5 +/* 0C6FD0 7F0924A0 10000004 */ b .L7F0924B4 +/* 0C6FD4 7F0924A4 A06E0000 */ sb $t6, ($v1) +.L7F0924A8: +/* 0C6FD8 7F0924A8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6FDC 7F0924AC 00240821 */ addu $at, $at, $a0 +/* 0C6FE0 7F0924B0 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +.L7F0924B4: +/* 0C6FE4 7F0924B4 248FFFFF */ addiu $t7, $a0, -1 +/* 0C6FE8 7F0924B8 2DE1004A */ sltiu $at, $t7, 0x4a +/* 0C6FEC 7F0924BC 1020007C */ beqz $at, .L7F0926B0 +/* 0C6FF0 7F0924C0 000F7880 */ sll $t7, $t7, 2 +/* 0C6FF4 7F0924C4 3C018005 */ lui $at, %hi(jpt_800573DC) +/* 0C6FF8 7F0924C8 002F0821 */ addu $at, $at, $t7 +/* 0C6FFC 7F0924CC 8C2F73DC */ lw $t7, %lo(jpt_800573DC)($at) +/* 0C7000 7F0924D0 01E00008 */ jr $t7 +/* 0C7004 7F0924D4 00000000 */ nop +cheat_button_invincibility: +/* 0C7008 7F0924D8 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C700C 7F0924DC 00000000 */ nop +/* 0C7010 7F0924E0 50400074 */ beql $v0, $zero, .L7F0926B4 +/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID +/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086 +/* 0C7020 7F0924F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7024 7F0924F4 00402025 */ move $a0, $v0 +/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C702C 7F0924FC 00002025 */ move $a0, $zero +/* 0C7030 7F092500 1000006C */ b .L7F0926B4 +/* 0C7034 7F092504 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_all_guns: +/* 0C7038 7F092508 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C703C 7F09250C 00000000 */ nop +/* 0C7040 7F092510 50400068 */ beql $v0, $zero, .L7F0926B4 +/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID +/* 0C704C 7F09251C 3404B01F */ li $a0, 45087 +/* 0C7050 7F092520 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7054 7F092524 00402025 */ move $a0, $v0 +/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C705C 7F09252C 00002025 */ move $a0, $zero +/* 0C7060 7F092530 10000060 */ b .L7F0926B4 +/* 0C7064 7F092534 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_line_mode: +/* 0C7068 7F092538 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C706C 7F09253C 00002025 */ move $a0, $zero +/* 0C7070 7F092540 1000005C */ b .L7F0926B4 +/* 0C7074 7F092544 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown: +/* 0C7078 7F092548 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C707C 7F09254C 00000000 */ nop +/* 0C7080 7F092550 54400058 */ bnezl $v0, .L7F0926B4 +/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID +/* 0C708C 7F09255C 3404B020 */ li $a0, 45088 +/* 0C7090 7F092560 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7094 7F092564 00402025 */ move $a0, $v0 +/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C709C 7F09256C 24040001 */ li $a0, 1 +/* 0C70A0 7F092570 10000050 */ b .L7F0926B4 +/* 0C70A4 7F092574 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_infinite_ammo: +/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID +/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090 +/* 0C70B0 7F092580 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70B4 7F092584 00402025 */ move $a0, $v0 +/* 0C70B8 7F092588 1000004A */ b .L7F0926B4 +/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_dkmode: +/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID +/* 0C70C4 7F092594 3404B023 */ li $a0, 45091 +/* 0C70C8 7F092598 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70CC 7F09259C 00402025 */ move $a0, $v0 +/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode +/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero +/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4 +/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown_0: +/* 0C70E0 7F0925B0 24010001 */ li $at, 1 +/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0 +/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm) +/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8) +/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4 +/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8) +/* 0C70FC 7F0925CC 46062032 */ c.eq.s $f4, $f6 +/* 0C7100 7F0925D0 00000000 */ nop +/* 0C7104 7F0925D4 45030037 */ bc1tl .L7F0926B4 +/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID +/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092 +/* 0C7114 7F0925E4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7118 7F0925E8 00402025 */ move $a0, $v0 +/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8 +/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9) +/* 0C7134 7F092604 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C7138 7F092608 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C713C 7F09260C 50800029 */ beql $a0, $zero, .L7F0926B4 +/* 0C7140 7F092610 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7144 7F092614 C4800014 */ lwc1 $f0, 0x14($a0) +/* 0C7148 7F092618 46000280 */ add.s $f10, $f0, $f0 +/* 0C714C 7F09261C 44055000 */ mfc1 $a1, $f10 +/* 0C7150 7F092620 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7154 7F092624 00000000 */ nop +/* 0C7158 7F092628 10000022 */ b .L7F0926B4 +/* 0C715C 7F09262C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_paintball: +/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID +/* 0C7164 7F092634 3404B025 */ li $a0, 45093 +/* 0C7168 7F092638 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C716C 7F09263C 00402025 */ move $a0, $v0 +/* 0C7170 7F092640 1000001C */ b .L7F0926B4 +/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_mp_invis: +/* 0C7178 7F092648 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C717C 7F09264C 44816000 */ mtc1 $at, $f12 +/* 0C7180 7F092650 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7184 7F092654 44817000 */ mtc1 $at, $f14 +/* 0C7188 7F092658 0FC20284 */ jal set_curplayer_fade +/* 0C718C 7F09265C 00000000 */ nop +/* 0C7190 7F092660 10000014 */ b .L7F0926B4 +/* 0C7194 7F092664 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_fast_mode: +/* 0C7198 7F092668 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C719C 7F09266C 00000000 */ nop +/* 0C71A0 7F092670 50400010 */ beql $v0, $zero, .L7F0926B4 +/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID +/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095 +/* 0C71B0 7F092680 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C71B4 7F092684 00402025 */ move $a0, $v0 +/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C71BC 7F09268C 00002025 */ move $a0, $zero +/* 0C71C0 7F092690 10000008 */ b .L7F0926B4 +/* 0C71C4 7F092694 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_debug_mode: +/* 0C71C8 7F092698 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C71CC 7F09269C 00000000 */ nop +/* 0C71D0 7F0926A0 50400004 */ beql $v0, $zero, .L7F0926B4 +/* 0C71D4 7F0926A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71D8 7F0926A8 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C71DC 7F0926AC 00002025 */ move $a0, $zero +cheat_button_default: +.L7F0926B0: +/* 0C71E0 7F0926B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0926B4: +/* 0C71E4 7F0926B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C71E8 7F0926B8 03E00008 */ jr $ra +/* 0C71EC 7F0926BC 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:800573DC*/ +glabel jpt_800573DC +.word cheat_button_default +.word cheat_button_invincibility +.word cheat_button_all_guns +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_line_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_unknown +.word cheat_button_infinite_ammo +.word cheat_button_dkmode +.word cheat_button_default +.word cheat_button_unknown_0 +.word cheat_button_paintball +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_mp_invis +.word cheat_button_default +.word cheat_button_fast_mode +.word cheat_button_debug_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ + +.text +glabel cheatDisplayMessageActivateCheat +/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4 +/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6 +/* 0C6F74 7F092444 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C6F78 7F092448 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C6F7C 7F09244C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6F80 7F092450 AFA40020 */ sw $a0, 0x20($sp) +/* 0C6F84 7F092454 0FC26C54 */ jal get_cur_playernum +/* 0C6F88 7F092458 AFAF001C */ sw $t7, 0x1c($sp) +/* 0C6F8C 7F09245C 0FC26919 */ jal get_num_players +/* 0C6F90 7F092460 AFA20018 */ sw $v0, 0x18($sp) +/* 0C6F94 7F092464 8FA3001C */ lw $v1, 0x1c($sp) +/* 0C6F98 7F092468 8FA40020 */ lw $a0, 0x20($sp) +/* 0C6F9C 7F09246C 30780010 */ andi $t8, $v1, 0x10 +/* 0C6FA0 7F092470 17000010 */ bnez $t8, .L7F0924B4 +/* 0C6FA4 7F092474 30790020 */ andi $t9, $v1, 0x20 +/* 0C6FA8 7F092478 1720000B */ bnez $t9, .L7F0924A8 +/* 0C6FAC 7F09247C 3C088008 */ lui $t0, %hi(off_CODE_bss_80079E30) +/* 0C6FB0 7F092480 8FAA0018 */ lw $t2, 0x18($sp) +/* 0C6FB4 7F092484 25089E30 */ addiu $t0, %lo(off_CODE_bss_80079E30) # addiu $t0, $t0, -0x61d0 +/* 0C6FB8 7F092488 00881821 */ addu $v1, $a0, $t0 +/* 0C6FBC 7F09248C 90690000 */ lbu $t1, ($v1) +/* 0C6FC0 7F092490 240B0001 */ li $t3, 1 +/* 0C6FC4 7F092494 014B6004 */ sllv $t4, $t3, $t2 +/* 0C6FC8 7F092498 01806827 */ not $t5, $t4 +/* 0C6FCC 7F09249C 012D7024 */ and $t6, $t1, $t5 +/* 0C6FD0 7F0924A0 10000004 */ b .L7F0924B4 +/* 0C6FD4 7F0924A4 A06E0000 */ sb $t6, ($v1) +.L7F0924A8: +/* 0C6FD8 7F0924A8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6FDC 7F0924AC 00240821 */ addu $at, $at, $a0 +/* 0C6FE0 7F0924B0 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +.L7F0924B4: +/* 0C6FE4 7F0924B4 248FFFFF */ addiu $t7, $a0, -1 +/* 0C6FE8 7F0924B8 2DE1004A */ sltiu $at, $t7, 0x4a +/* 0C6FEC 7F0924BC 1020007C */ beqz $at, .L7F0926B0 +/* 0C6FF0 7F0924C0 000F7880 */ sll $t7, $t7, 2 +/* 0C6FF4 7F0924C4 3C018005 */ lui $at, %hi(jpt_800573DC) +/* 0C6FF8 7F0924C8 002F0821 */ addu $at, $at, $t7 +/* 0C6FFC 7F0924CC 8C2F73DC */ lw $t7, %lo(jpt_800573DC)($at) +/* 0C7000 7F0924D0 01E00008 */ jr $t7 +/* 0C7004 7F0924D4 00000000 */ nop +cheat_button_invincibility: +/* 0C7008 7F0924D8 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C700C 7F0924DC 00000000 */ nop +/* 0C7010 7F0924E0 50400074 */ beql $v0, $zero, .L7F0926B4 +/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID +/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086 +/* 0C7020 7F0924F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7024 7F0924F4 00402025 */ move $a0, $v0 +/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C702C 7F0924FC 00002025 */ move $a0, $zero +/* 0C7030 7F092500 1000006C */ b .L7F0926B4 +/* 0C7034 7F092504 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_all_guns: +/* 0C7038 7F092508 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C703C 7F09250C 00000000 */ nop +/* 0C7040 7F092510 50400068 */ beql $v0, $zero, .L7F0926B4 +/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID +/* 0C704C 7F09251C 3404B01F */ li $a0, 45087 +/* 0C7050 7F092520 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7054 7F092524 00402025 */ move $a0, $v0 +/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C705C 7F09252C 00002025 */ move $a0, $zero +/* 0C7060 7F092530 10000060 */ b .L7F0926B4 +/* 0C7064 7F092534 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_line_mode: +/* 0C7068 7F092538 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C706C 7F09253C 00002025 */ move $a0, $zero +/* 0C7070 7F092540 1000005C */ b .L7F0926B4 +/* 0C7074 7F092544 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown: +/* 0C7078 7F092548 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C707C 7F09254C 00000000 */ nop +/* 0C7080 7F092550 54400058 */ bnezl $v0, .L7F0926B4 +/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID +/* 0C708C 7F09255C 3404B020 */ li $a0, 45088 +/* 0C7090 7F092560 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7094 7F092564 00402025 */ move $a0, $v0 +/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C709C 7F09256C 24040001 */ li $a0, 1 +/* 0C70A0 7F092570 10000050 */ b .L7F0926B4 +/* 0C70A4 7F092574 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_infinite_ammo: +/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID +/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090 +/* 0C70B0 7F092580 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C70B4 7F092584 00402025 */ move $a0, $v0 +/* 0C70B8 7F092588 1000004A */ b .L7F0926B4 +/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_dkmode: +/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID +/* 0C70C4 7F092594 3404B023 */ li $a0, 45091 +/* 0C70C8 7F092598 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C70CC 7F09259C 00402025 */ move $a0, $v0 +/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode +/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero +/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4 +/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown_0: +/* 0C70E0 7F0925B0 24010001 */ li $at, 1 +/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0 +/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm) +/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8) +/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4 +/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8) +/* 0C70FC 7F0925CC 46062032 */ c.eq.s $f4, $f6 +/* 0C7100 7F0925D0 00000000 */ nop +/* 0C7104 7F0925D4 45030037 */ bc1tl .L7F0926B4 +/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID +/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092 +/* 0C7114 7F0925E4 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7118 7F0925E8 00402025 */ move $a0, $v0 +/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8 +/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9) +/* 0C7134 7F092604 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C7138 7F092608 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C713C 7F09260C 50800029 */ beql $a0, $zero, .L7F0926B4 +/* 0C7140 7F092610 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7144 7F092614 C4800014 */ lwc1 $f0, 0x14($a0) +/* 0C7148 7F092618 46000280 */ add.s $f10, $f0, $f0 +/* 0C714C 7F09261C 44055000 */ mfc1 $a1, $f10 +/* 0C7150 7F092620 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7154 7F092624 00000000 */ nop +/* 0C7158 7F092628 10000022 */ b .L7F0926B4 +/* 0C715C 7F09262C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_paintball: +/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID +/* 0C7164 7F092634 3404B025 */ li $a0, 45093 +/* 0C7168 7F092638 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C716C 7F09263C 00402025 */ move $a0, $v0 +/* 0C7170 7F092640 1000001C */ b .L7F0926B4 +/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_mp_invis: +/* 0C7178 7F092648 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C717C 7F09264C 44816000 */ mtc1 $at, $f12 +/* 0C7180 7F092650 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7184 7F092654 44817000 */ mtc1 $at, $f14 +/* 0C7188 7F092658 0FC20284 */ jal set_curplayer_fade +/* 0C718C 7F09265C 00000000 */ nop +/* 0C7190 7F092660 10000014 */ b .L7F0926B4 +/* 0C7194 7F092664 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_fast_mode: +/* 0C7198 7F092668 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C719C 7F09266C 00000000 */ nop +/* 0C71A0 7F092670 50400010 */ beql $v0, $zero, .L7F0926B4 +/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID +/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095 +/* 0C71B0 7F092680 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C71B4 7F092684 00402025 */ move $a0, $v0 +/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C71BC 7F09268C 00002025 */ move $a0, $zero +/* 0C71C0 7F092690 10000008 */ b .L7F0926B4 +/* 0C71C4 7F092694 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_debug_mode: +/* 0C71C8 7F092698 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C71CC 7F09269C 00000000 */ nop +/* 0C71D0 7F0926A0 50400004 */ beql $v0, $zero, .L7F0926B4 +/* 0C71D4 7F0926A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71D8 7F0926A8 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C71DC 7F0926AC 00002025 */ move $a0, $zero +cheat_button_default: +.L7F0926B0: +/* 0C71E0 7F0926B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0926B4: +/* 0C71E4 7F0926B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C71E8 7F0926B8 03E00008 */ jr $ra +/* 0C71EC 7F0926BC 00000000 */ nop +) +#endif +#endif + + + + + +#ifdef NONMATCHING +void cheatDisableAllCheats(void) { + s32 sp30; + s32 temp_s4; + s32 temp_s0; + s32 temp_s3; + s32 phi_s3; + void *phi_s1; + s32 phi_s0; + + // Node 0 + temp_s4 = get_num_players(); + sp30 = get_cur_playernum(); + if (temp_s4 > 0) + { + // Node 1 + phi_s3 = 0; +loop_2: + // Node 2 + set_cur_player(phi_s3); + phi_s1 = &D_8003F80C+0x10; + phi_s0 = 1; +loop_3: + // Node 3 + if ((phi_s1->unk-4 & 0x40) != 0) + { + // Node 4 + if (cheatCheckIfOn(phi_s0) != 0) + { + // Node 5 + cheatDisplayMessageActivateCheat(phi_s0); + } + } + // Node 6 + temp_s0 = (phi_s0 + 1); + phi_s1 = (phi_s1 + 0x10); + phi_s0 = temp_s0; + if (temp_s0 != 0x4b) + { + goto loop_3; + } + // Node 7 + temp_s3 = (phi_s3 + 1); + phi_s3 = temp_s3; + if (temp_s3 != temp_s4) + { + goto loop_2; + } + } + // Node 8 + return set_cur_player(sp30); +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +.text +glabel cheatDisableAllCheats +/* 0C71F0 7F0926C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C71F4 7F0926C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C71F8 7F0926C8 AFB40028 */ sw $s4, 0x28($sp) +/* 0C71FC 7F0926CC AFB30024 */ sw $s3, 0x24($sp) +/* 0C7200 7F0926D0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C7204 7F0926D4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C7208 7F0926D8 0FC26919 */ jal get_num_players +/* 0C720C 7F0926DC AFB00018 */ sw $s0, 0x18($sp) +/* 0C7210 7F0926E0 0FC26C54 */ jal get_cur_playernum +/* 0C7214 7F0926E4 0040A025 */ move $s4, $v0 +/* 0C7218 7F0926E8 AFA20030 */ sw $v0, 0x30($sp) +/* 0C721C 7F0926EC 1A800017 */ blez $s4, .L7F09274C +/* 0C7220 7F0926F0 00009825 */ move $s3, $zero +/* 0C7224 7F0926F4 2412004B */ li $s2, 75 +.L7F0926F8: +/* 0C7228 7F0926F8 0FC26C43 */ jal set_cur_player +/* 0C722C 7F0926FC 02602025 */ move $a0, $s3 +/* 0C7230 7F092700 3C118004 */ lui $s1, %hi(D_8003F80C+0x10) +/* 0C7234 7F092704 2631F81C */ addiu $s1, %lo(D_8003F80C+0x10) # addiu $s1, $s1, -0x7e4 +/* 0C7238 7F092708 24100001 */ li $s0, 1 +.L7F09270C: +/* 0C723C 7F09270C 8E2EFFFC */ lw $t6, -4($s1) +/* 0C7240 7F092710 31CF0040 */ andi $t7, $t6, 0x40 +/* 0C7244 7F092714 51E00008 */ beql $t7, $zero, .L7F092738 +/* 0C7248 7F092718 26100001 */ addiu $s0, $s0, 1 +/* 0C724C 7F09271C 0FC249EF */ jal cheatCheckIfOn +/* 0C7250 7F092720 02002025 */ move $a0, $s0 +/* 0C7254 7F092724 50400004 */ beql $v0, $zero, .L7F092738 +/* 0C7258 7F092728 26100001 */ addiu $s0, $s0, 1 +/* 0C725C 7F09272C 0FC2490E */ jal cheatDisplayMessageActivateCheat +/* 0C7260 7F092730 02002025 */ move $a0, $s0 +/* 0C7264 7F092734 26100001 */ addiu $s0, $s0, 1 +.L7F092738: +/* 0C7268 7F092738 1612FFF4 */ bne $s0, $s2, .L7F09270C +/* 0C726C 7F09273C 26310010 */ addiu $s1, $s1, 0x10 +/* 0C7270 7F092740 26730001 */ addiu $s3, $s3, 1 +/* 0C7274 7F092744 1674FFEC */ bne $s3, $s4, .L7F0926F8 +/* 0C7278 7F092748 00000000 */ nop +.L7F09274C: +/* 0C727C 7F09274C 0FC26C43 */ jal set_cur_player +/* 0C7280 7F092750 8FA40030 */ lw $a0, 0x30($sp) +/* 0C7284 7F092754 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C7288 7F092758 8FB00018 */ lw $s0, 0x18($sp) +/* 0C728C 7F09275C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C7290 7F092760 8FB20020 */ lw $s2, 0x20($sp) +/* 0C7294 7F092764 8FB30024 */ lw $s3, 0x24($sp) +/* 0C7298 7F092768 8FB40028 */ lw $s4, 0x28($sp) +/* 0C729C 7F09276C 03E00008 */ jr $ra +/* 0C72A0 7F092770 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void cheatGetMenuTextPointer(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +.text +glabel cheatGetMenuTextPointer +/* 0C72A4 7F092774 00047100 */ sll $t6, $a0, 4 +/* 0C72A8 7F092778 3C028004 */ lui $v0, %hi(D_8003F804) +/* 0C72AC 7F09277C 004E1021 */ addu $v0, $v0, $t6 +/* 0C72B0 7F092780 9442F804 */ lhu $v0, %lo(D_8003F804)($v0) +/* 0C72B4 7F092784 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C72B8 7F092788 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C72BC 7F09278C 10400005 */ beqz $v0, .L7F0927A4 +/* 0C72C0 7F092790 00000000 */ nop +/* 0C72C4 7F092794 0FC30776 */ jal get_textptr_for_textID +/* 0C72C8 7F092798 00402025 */ move $a0, $v0 +/* 0C72CC 7F09279C 10000004 */ b .L7F0927B0 +/* 0C72D0 7F0927A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0927A4: +/* 0C72D4 7F0927A4 0FC30776 */ jal get_textptr_for_textID +/* 0C72D8 7F0927A8 3404B028 */ li $a0, 45096 +/* 0C72DC 7F0927AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0927B0: +/* 0C72E0 7F0927B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C72E4 7F0927B4 03E00008 */ jr $ra +/* 0C72E8 7F0927B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void cheatCheckIfOn(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*ugh hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default + +.text +glabel cheatCheckIfOn +/* 0C72EC 7F0927BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C72F0 7F0927C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C72F4 7F0927C4 0FC26C54 */ jal get_cur_playernum +/* 0C72F8 7F0927C8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C72FC 7F0927CC 8FAE0018 */ lw $t6, 0x18($sp) +/* 0C7300 7F0927D0 3C0F8008 */ lui $t7, %hi(off_CODE_bss_80079E30) +/* 0C7304 7F0927D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7308 7F0927D8 01EE7821 */ addu $t7, $t7, $t6 +/* 0C730C 7F0927DC 91EF9E30 */ lbu $t7, %lo(off_CODE_bss_80079E30)($t7) +/* 0C7310 7F0927E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C7314 7F0927E4 004F1007 */ srav $v0, $t7, $v0 +/* 0C7318 7F0927E8 30580001 */ andi $t8, $v0, 1 +/* 0C731C 7F0927EC 03E00008 */ jr $ra +/* 0C7320 7F0927F0 03001025 */ move $v0, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void set_DKMode(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80057504 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel set_DKMode +/* 0C7324 7F0927F4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7328 7F0927F8 AFB10024 */ sw $s1, 0x24($sp) +/* 0C732C 7F0927FC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C7330 7F092800 AFB00020 */ sw $s0, 0x20($sp) +/* 0C7334 7F092804 3C118003 */ lui $s1, %hi(ptr_guard_data) +/* 0C7338 7F092808 00808025 */ move $s0, $a0 +/* 0C733C 7F09280C AFB20028 */ sw $s2, 0x28($sp) +/* 0C7340 7F092810 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C7344 7F092814 0FC07D4C */ jal get_numguards +/* 0C7348 7F092818 8E31CC64 */ lw $s1, %lo(ptr_guard_data)($s1) +/* 0C734C 7F09281C 12000004 */ beqz $s0, .L7F092830 +/* 0C7350 7F092820 00409025 */ move $s2, $v0 +/* 0C7354 7F092824 3C018005 */ lui $at, %hi(D_80057504) +/* 0C7358 7F092828 10000004 */ b .L7F09283C +/* 0C735C 7F09282C C4347504 */ lwc1 $f20, %lo(D_80057504)($at) +.L7F092830: +/* 0C7360 7F092830 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0C7364 7F092834 4481A000 */ mtc1 $at, $f20 +/* 0C7368 7F092838 00000000 */ nop +.L7F09283C: +/* 0C736C 7F09283C 1840000C */ blez $v0, .L7F092870 +/* 0C7370 7F092840 00008025 */ move $s0, $zero +.L7F092844: +/* 0C7374 7F092844 8E24001C */ lw $a0, 0x1c($s1) +/* 0C7378 7F092848 50800007 */ beql $a0, $zero, .L7F092868 +/* 0C737C 7F09284C 26100001 */ addiu $s0, $s0, 1 +/* 0C7380 7F092850 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7384 7F092854 46142182 */ mul.s $f6, $f4, $f20 +/* 0C7388 7F092858 44053000 */ mfc1 $a1, $f6 +/* 0C738C 7F09285C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7390 7F092860 00000000 */ nop +/* 0C7394 7F092864 26100001 */ addiu $s0, $s0, 1 +.L7F092868: +/* 0C7398 7F092868 1612FFF6 */ bne $s0, $s2, .L7F092844 +/* 0C739C 7F09286C 263101DC */ addiu $s1, $s1, 0x1dc +.L7F092870: +/* 0C73A0 7F092870 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C73A4 7F092874 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C73A8 7F092878 8FB00020 */ lw $s0, 0x20($sp) +/* 0C73AC 7F09287C 8FB10024 */ lw $s1, 0x24($sp) +/* 0C73B0 7F092880 8FB20028 */ lw $s2, 0x28($sp) +/* 0C73B4 7F092884 03E00008 */ jr $ra +/* 0C73B8 7F092888 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80057504 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel set_DKMode +/* 0C7EE4 7F093374 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7EE8 7F093378 AFB00020 */ sw $s0, 0x20($sp) +/* 0C7EEC 7F09337C AFBF002C */ sw $ra, 0x2c($sp) +/* 0C7EF0 7F093380 AFB10024 */ sw $s1, 0x24($sp) +/* 0C7EF4 7F093384 3C108003 */ lui $s0, %hi(ptr_guard_data) # $s0, 0x8003 +/* 0C7EF8 7F093388 00808825 */ move $s1, $a0 +/* 0C7EFC 7F09338C AFB20028 */ sw $s2, 0x28($sp) +/* 0C7F00 7F093390 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C7F04 7F093394 0FC07DB8 */ jal get_numguards +/* 0C7F08 7F093398 8E10CCA4 */ lw $s0, %lo(ptr_guard_data)($s0) +/* 0C7F0C 7F09339C 12200004 */ beqz $s1, .L7F0933B0 +/* 0C7F10 7F0933A0 00409025 */ move $s2, $v0 +/* 0C7F14 7F0933A4 3C018005 */ lui $at, %hi(D_80057504) # $at, 0x8005 +/* 0C7F18 7F0933A8 10000004 */ b .L7F0933BC +/* 0C7F1C 7F0933AC C4347534 */ lwc1 $f20, %lo(D_80057504)($at) +.L7F0933B0: +/* 0C7F20 7F0933B0 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0C7F24 7F0933B4 4481A000 */ mtc1 $at, $f20 +/* 0C7F28 7F0933B8 00000000 */ nop +.L7F0933BC: +/* 0C7F2C 7F0933BC 18400012 */ blez $v0, .L7F093408 +/* 0C7F30 7F0933C0 00008825 */ move $s1, $zero +.L7F0933C4: +/* 0C7F34 7F0933C4 8E0E001C */ lw $t6, 0x1c($s0) +/* 0C7F38 7F0933C8 51C0000D */ beql $t6, $zero, .L7F093400 +/* 0C7F3C 7F0933CC 26310001 */ addiu $s1, $s1, 1 +/* 0C7F40 7F0933D0 8204000F */ lb $a0, 0xf($s0) +/* 0C7F44 7F0933D4 0FC0827B */ jal jp_only_7F0209EC +/* 0C7F48 7F0933D8 82050006 */ lb $a1, 6($s0) +/* 0C7F4C 7F0933DC 50400008 */ beql $v0, $zero, .L7F093400 +/* 0C7F50 7F0933E0 26310001 */ addiu $s1, $s1, 1 +/* 0C7F54 7F0933E4 8E04001C */ lw $a0, 0x1c($s0) +/* 0C7F58 7F0933E8 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7F5C 7F0933EC 46142182 */ mul.s $f6, $f4, $f20 +/* 0C7F60 7F0933F0 44053000 */ mfc1 $a1, $f6 +/* 0C7F64 7F0933F4 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0C7F68 7F0933F8 00000000 */ nop +/* 0C7F6C 7F0933FC 26310001 */ addiu $s1, $s1, 1 +.L7F093400: +/* 0C7F70 7F093400 1632FFF0 */ bne $s1, $s2, .L7F0933C4 +/* 0C7F74 7F093404 261001DC */ addiu $s0, $s0, 0x1dc +.L7F093408: +/* 0C7F78 7F093408 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C7F7C 7F09340C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C7F80 7F093410 8FB00020 */ lw $s0, 0x20($sp) +/* 0C7F84 7F093414 8FB10024 */ lw $s1, 0x24($sp) +/* 0C7F88 7F093418 8FB20028 */ lw $s2, 0x28($sp) +/* 0C7F8C 7F09341C 03E00008 */ jr $ra +/* 0C7F90 7F093420 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + +#endif + diff --git a/src/game/cheat_buttons.h b/src/game/cheat_buttons.h new file mode 100644 index 0000000..5e2b66a --- /dev/null +++ b/src/game/cheat_buttons.h @@ -0,0 +1,15 @@ +#ifndef _CHEAT_BUTTONS_H_ +#define _CHEAT_BUTTONS_H_ +#include "ultra64.h" + +struct struct_15 { + char anonymous_0; + char field_1; + char field_2; + char field_3; + void * anonymous_1; + int anonymous_2; + int anonymous_3; +}; + +#endif diff --git a/src/game/chr.c b/src/game/chr.c new file mode 100644 index 0000000..2fcf4f0 --- /dev/null +++ b/src/game/chr.c @@ -0,0 +1,7567 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/bondwalk.h" + +// data +f32 animation_rate = 0; +s32 D_8002C904 = 0; +s32 D_8002C908 = 0; +s32 D_8002C90C = 0; +s32 D_8002C910 = 0; + + +//D:8002C914 +struct animation_something D_8002C914 = {0,0,0,0,0,0,0,NULL,0,NULL,0}; +struct animation_something D_8002C940 = {1, 1, 0, 17.0, 3, 0, 34.0, D_8002CE54, 0, D_8002DF10, 0}; +struct animation_something D_8002C96C = {2, 1, 0, 17.0, 3, 0, 39.0, D_8002CEE0, 0, D_8002DF64, 0}; +struct animation_something D_8002C998 = {3, 1, 0, 21.0, 3, 0, 43.0, D_8002CF6C, 0, D_8002DFB8, 0}; +struct animation_something D_8002C9C4 = {4, 1, 0, 17.0, 3, 0, 34.0, D_8002D014, 0, D_8002E028, 0}; +struct animation_something D_8002C9F0 = {5, 1, 0, 17.0, 3, 0, 39.0, D_8002D0A0, 0, D_8002E07C, 0}; +struct animation_something D_8002CA1C = {6, 1, 0, 21.0, 3, 0, 43.0, D_8002D12C, 0, D_8002E0D0, 0}; +struct animation_something D_8002CA48 = {7, 1, 0, 21.0, 3, 0, 52.0, D_8002D1D4, 0, D_8002E140, 0}; +struct animation_something D_8002CA74 = {8, 1, 0, 21.0, 3, 0, 43.0, D_8002D3B0, 0, D_8002E23C, 0}; +struct animation_something D_8002CAA0 = {9, 1, 0, 17.0, 3, 0, 34.0, D_8002D6DC, 0, D_8002E300, 0}; +struct animation_something D_8002CACC = {0xA, 1, 0, 17.0, 3, 0, 43.0, D_8002D768, 0, D_8002E354, 0}; +struct animation_something D_8002CAF8 = {0xB, 1, 0, 21.0, 3, 0, 52.0, D_8002D7F4, 0, D_8002E3A8, 0}; +struct animation_something D_8002CB24 = {0xC, 1, 0, 17.0, 3, 0, 34.0, D_8002D880, 0, D_8002E418, 0}; +struct animation_something D_8002CB50 = {0xD, 1, 0, 17.0, 3, 0, 43.0, D_8002D90C, 0, D_8002E46C, 0}; +struct animation_something D_8002CB7C = {0xE, 1, 0, 21.0, 3, 0, 52.0, D_8002D998, 0, D_8002E4C0, 0}; +struct animation_something D_8002CBA8 = {0xF, 1, 0, 26.0, 3, 0, 60.0, D_8002DA24, 0, D_8002E530, 0}; +struct animation_something D_8002CBD4 = {0x64, 1, 0, 26.0, 0, 0, 0.0, D_8002DCE0, 0, D_8002E5BC, 0}; +struct animation_something D_8002CC00 = {0x6E, 1, 0, 21.0, 0, 0, 0.0, NULL, 0, NULL, 0}; +struct animation_something D_8002CC2C = {0xFFFFFFFF, 0, 0, 0.0, 0, 0, 0.0, NULL, 0, NULL, 0}; + + + +s32 D_8002CC58 = 0; +s32 show_patrols_flag = FALSE; +s32 player1_guardID = 0x1388; +s32 ptr_guard_data = 0; +s32 num_guards = 0; +s32 D_8002CC6C[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +s32 D_8002CCA8 = 0; +s32 D_8002CCAC = 0; +s32 D_8002CCB0 = 0; +s32 D_8002CCB4 = 0; +u8 D_8002CCB8 = 0x5A; + +u32 D_8002CCBC = 0; +u32 D_8002CCC0[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +s32 D_8002CCF8 = 0; +s32 D_8002CCFC = 0; +s32 num_bodies = 0; +s32 num_male_heads = 0; +s32 num_female_heads = 0; + +s32 list_of_bodies[] = { + BODY_Jungle_Commando,BODY_St_Petersburg_Guard,BODY_Russian_Soldier,BODY_Russian_Infantry, + BODY_Janus_Special_Forces,BODY_Tuxedo,BODY_Boris,BODY_Ourumov, + BODY_Trevelyan_Janus,BODY_Valentin_,BODY_Xenia,BODY_Baron_Samedi, + BODY_Jaws,BODY_Mayday,BODY_Oddjob,BODY_Natalya_Skirt, + BODY_Janus_Marine,BODY_Russian_Commandant,BODY_Siberian_Guard_1_Mishkin,BODY_Naval_Officer, + BODY_Siberian_Special_Forces,BODY_Special_Operations_Uniform,BODY_Formal_Wear,BODY_Jungle_Fatigues, + BODY_Unused_Female,BODY_Rosika,BODY_Scientist_2_Female,BODY_Civilian_1_Female, + BODY_Unused_Male_1,BODY_Unused_Male_2,BODY_Civilian_4,BODY_Civilian_2, + BODY_Civilian_3,BODY_Scientist_1_Male,BODY_Tuxedo,BODY_Tuxedo, + BODY_Tuxedo,BODY_Helicopter_Pilot,BODY_Siberian_Guard_2,BODY_Arctic_Commando, + BODY_Moonraker_Elite_1_Male,BODY_Moonraker_Elite_2_Female,-1, +}; + +s32 random_male_heads[] = { + HEAD_Male_Jim,HEAD_Male_Chris,HEAD_Male_Lee,HEAD_Male_Graeme,HEAD_Male_Steve_H, + HEAD_Male_Neil,HEAD_Male_Robin,HEAD_Male_Des,HEAD_Male_Grant,HEAD_Male_Dave_Dr_Doak, + HEAD_Male_Karl,HEAD_Male_Alan,HEAD_Male_Pete,HEAD_Male_Martin,HEAD_Male_Mark, + HEAD_Male_Duncan,HEAD_Male_Shaun,HEAD_Male_Dwayne,HEAD_Male_B,HEAD_Male_Steve_Ellis, + HEAD_Male_Joel,HEAD_Male_Scott,HEAD_Male_Joe_Altered,HEAD_Male_Ken,HEAD_Male_Joe, + -1 +}; + +s32 random_female_heads[] = { + HEAD_Female_Sally,HEAD_Female_Marion_Rosika,HEAD_Female_Mandy,HEAD_Female_Vivien, -1 +}; + +s32 current_random_body = 0; +s32 current_random_male_head = 0; +s32 current_random_female_head = 0; +f32 ai_accuracy_modifier = 1.0f; +f32 ai_damage_modifier = 1.0f; +f32 ai_health_modifier = 1.0f; +f32 ai_reaction_speed = 1.0f; +f32 setting_007_5 = 0.0f; + +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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {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}, + {0, 0, 0.5, 0.0, 0.0, 0.0, -1.0}, +}; + +u8 expl_forward[] = {0x0, 0x01, 0x02, 0x03, 0x4, 0x05, 0x00, 0x00}; +u8 expl_f_left[] = {0x7, 0x09, 0x0B, 0x00}; +u8 expl_f_right[] = {0x06, 0x08, 0x0A, 0x00}; +u8 expl_left[] = {0x0C, 0x0F, 0x11, 0x00}; +u8 expl_right[] = {0x0D, 0x0E, 0x10, 0x00}; +u8 expl_back[] = {0x14, 0x15, 0x16, 0x17}; +u8 expl_b_right[] = {0x12, 0x18, 0x00, 0x00}; +u8 expl_b_left[] = {0x13, 0x19, 0x00, 0x00}; + +struct explosion_animation explosion_animation_table[] = { + {expl_forward, 6}, + {expl_f_left, 3}, + {expl_left, 3}, + {expl_b_right, 2}, + {expl_back, 4}, + {expl_b_left, 2}, + {expl_right, 3}, + {expl_f_right, 3} +}; + +struct weapon_firing_animation_table rifle_firing_animation_group1[] = { + {0x214, 28.0, 0, 0, 0, -1.0, 23.0, 54.0, -1.0, -1.0, 18.0, 54.0, 0.87266463, -0.52359879, 1.0471976, -0.34906587, 1.6, 1.8}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_rifle_firing_animation_group1[] = { + &rifle_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group2[] = { + {0x144, 37.0, 0, 0, 0, -1.0, 30.0, 81.0, -1.0, -1.0, 25.0, 81.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 1.6, 1.75}, + {0x318, 27.0, 0, 0, 0, -1.0, 22.0, 61.0, -1.0, -1.0, 17.0, 61.0, 0.87266463, -0.2617994, 0.69813174, -0.69813174, 2.0, 1.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_rifle_firing_animation_group2[] = { + &rifle_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group5[] = { + {0x144, 37.0, 0, 0, 0, -1.0, 30.0, 81.0, -1.0, -1.0, 25.0, 81.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 1.6, 1.75}, + {0x318, 27.0, 0, 0, 0, -1.0, 22.0, 61.0, -1.0, -1.0, 17.0, 61.0, 0.87266463, -0.2617994, 0.69813174, -0.69813174, 2.0, 1.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_rifle_firing_animation_group5[] = { + &rifle_firing_animation_group5, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group3[] = { + {0x3C4, 19.0, 0, 1.5707964, 0, -1.0, 19.0, 61.0, -1.0, -1.0, 14.0, 61.0, 0.87266463, -0.34906587, 0.43633232, -1.0471976, 2.5, 2.5}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_rifle_firing_animation_group3[] = { + &rifle_firing_animation_group3, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group4[] = { + {0x814, 27.0, 0, 0, 0, -1.0, 39.0, 74.0, -1.0, -1.0, 34.0, 74.0, 0.87266463, -0.69813174, 0.78539819, -0.69813174, 1.5, 1.5}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_rifle_firing_animation_group4[] = { + &rifle_firing_animation_group4, + ((void *)-1) +}; + +void * ptr_rifle_firing_animation_groups[] = { + &ptr_rifle_firing_animation_group1, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group1 +}; + +struct weapon_firing_animation_table pistol_firing_animation_group1[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6484, 0.0, 0, 0, 17.0, 100.0, 25.0, 87.0, 30.0, 55.0, 20.0, 93.0, 0.87266463, -0.69813174, 0.69813174, -1.0471976, 0.0, 0.0}, + {0x6554, 0.0, 0, 0, 12.0, 64.0, 19.0, 51.0, 24.0, 46.0, 14.0, 58.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group1[] = { + &pistol_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group2[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group2[] = { + &pistol_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group3[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0x694C, 0.0, 0, 1.5707964, 7.0, 130.0, 45.0, 93.0, 56.0, 73.0, 26.0, 107.0, 0.87266463, -0.69813174, 0.34906587, -0.52359879, 0.0, 0.0}, + {0x6A18, 15.0, 0, 1.5707964, 5.0, 76.0, 20.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group3[] = { + &pistol_firing_animation_group3, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group6[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0x6738, 0.0, 0, 4.712389, 7.0, 139.0, 54.0, 105.0, 61.0, 88.0, 26.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0x6808, 19.0, 0, 4.712389, 4.0, 79.0, 21.0, 50.0, 26.0, 42.0, 10.0, 64.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group6[] = { + &pistol_firing_animation_group6, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group4[] = { + {0x6A18, 19.0, 0, 1.5707964, 5.0, 76.0, 20.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group4[] = { + &pistol_firing_animation_group4, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group5[] = { + {0x6808, 19.0, 0, 4.712389, 4.0, 79.0, 21.0, 50.0, 26.0, 42.0, 10.0, 64.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_pistol_firing_animation_group5[] = { + &pistol_firing_animation_group5, + ((void *)-1) +}; + +void * ptr_pistol_firing_animation_groups[] = { + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group1 +}; + +struct weapon_firing_animation_table doubles_firing_animation_group1[] = { + {0x8E1C, 26.0, 0, 0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_doubles_firing_animation_group1[] = { + doubles_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table doubles_firing_animation_group2[] = { + {0x8F2C, 26.0, 0, 1.5707964, 9.0, 112.0, 38.0, 87.0, -1.0, -1.0, 19.0, 98.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0x9194, 25.0, 0, 1.5707964, 10.0, 112.0, 32.0, 86.0, -1.0, -1.0, 19.0, 97.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_doubles_firing_animation_group2[] = { + doubles_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table doubles_firing_animation_group3[] = { + {0x9084, 39.0, 0, 4.712389, 22.0, 127.0, 44.0, 102.0, -1.0, -1.0, 28.0, 112.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0x92EC, 39.0, 0, 4.712389, 23.0, 130.0, 46.0, 100.0, -1.0, -1.0, 30.0, 110.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_doubles_firing_animation_group3[] = { + doubles_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_doubles_firing_animation_groups[] = { + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group1[] = { + {0x990, 27.0, 0, 0, 0, -1.0, 35.0, 75.0, -1.0, -1.0, 31.0, 75.0, 0.87266463, -0.69813174, 0.90757126, -0.69813174, 1.5, 1.5}, +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_groupA[] = { + {0xB84, 24.0, 0, 0, 0, -1.0, 46.0, 98.0, -1.0, -1.0, 41.0, 98.0, 0.87266463, -0.52359879, 1.134464, -0.69813174, 1.6, 1.6}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_rifle_firing_animation_group1[] = { + &crouched_rifle_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group2[] = { + {0xDB4, 26.0, 0, 0, 0, -1.0, 34.0, 87.0, -1.0, -1.0, 29.0, 87.0, 0.87266463, -0.52359879, 0.69813174, -0.95993108, 1.6, 2.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_rifle_firing_animation_group2[] = { + &crouched_rifle_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group3[] = { + {0x1028, 28.0, 0, 0, 0, -1.0, 36.0, 88.0, -1.0, -1.0, 31.0, 88.0, 0.87266463, -0.69813174, 0.87266463, -0.43633232, 1.6, 1.5}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_rifle_firing_animation_group3[] = { + &crouched_rifle_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_rifle_firing_animation_groups[] = { + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group1[] = { + {0x6C18, 25.0, 0, 0, 12.0, 132.0, 55.0, 87.0, 67.0, 87.0, 26.0, 111.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0x6D50, 26.0, 0, 0, 8.0, 89.0, 31.0, 63.0, 41.0, 51.0, 21.0, 80.0, 0.87266463, -0.69813174, 0.34906587, -1.134464, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_pistol_firing_animation_group1[] = { + &crouched_pistol_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group2[] = { + {0x71D0, 47.0, 0, 1.5707964, 7.0, 128.0, 33.0, 86.0,47.0, 74.0, 23.0, 106.0, 0.87266463, -0.52359879, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x7304, 18.0, 0, 1.5707964, 7.0, 78.0, 28.0, 52.0, 35.0, 45.0, 15.0, 66.0, 0.87266463, -0.087266468, 0.69813174, -0.78539819, 1.5, 1.0}, + {0x7430, 20.0, 0, 1.5707964, 13.0, 92.0, 37.0, 67.0, 42.0, 55.0, 25.0, 84.0, 0.87266463, -0.52359879, 0.34906587, -0.69813174, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_pistol_firing_animation_group2[] = { + &crouched_pistol_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group3[] = { + {0x6F08, 28.0, 0, 4.712389, 15.0, 124.0, 38.0, 97.0, 60.0, 84.0, 20.0, 106.0, 0.87266463, -0.69813174, 0.52359879, -0.87266463, 0.0, 0.0}, + {0x700C, 23.0, 0, 4.712389, 0, 85.0, 32.0, 38.0, 38.0, 60.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.61086529, -0.95993108, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_pistol_firing_animation_group3[] = { + &crouched_pistol_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_pistol_firing_animation_groups[] = { + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group1[] = { + {0x8698, 22.0, 0, 0, 10.0, 111.0, 34.0, 87.0, -1.0, -1.0, 17.0, 104.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0x8AAC, 25.0, 0, 0, 9.0, 92.0, 33.0, 62.0, -1.0, -1.0, 18.0, 69.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_doubles_firing_animation_group1[] = { + &crouched_doubles_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group2[] = { + {0x8800, 28.0, 0, 1.5707964, 15.0, 108.0, 34.0, 73.0, -1.0, -1.0, 17.0, 93.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x8BF0, 19.0, 0, 1.5707964, 3.0, 95.0, 30.0, 64.0, -1.0, -1.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 1.5, 1.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_doubles_firing_animation_group2[] = { + &crouched_doubles_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group3[] = { + {0x8978, 31.0, 0, 4.712389, 14.0, 111.0, 40.0, 83.0,-1.0, -1.0, 21.0, 94.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x8D28, 26.0, 0, 4.712389, 7.0, 89.0, 34.0, 60.0, -1.0, -1.0, 20.0, 68.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.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} +}; + +void * ptr_crouched_doubles_firing_animation_group3[] = { + &crouched_doubles_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_doubles_firing_animation_groups[] = { + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1 +}; + + +//stru_D_80030078 +struct weapon_firing_animation_table D_80030078 = {0x1334, 76.0, 0.0, 0.0, 20.0, -1.0, 98.0, 161.0, -1.0, -1.0, 93.0, 161.0, 0.87266463, -0.52359879, 0.69813174, -0.69813174, 1.7, 2.0}; +//stru_D_800300C0 +struct weapon_firing_animation_table D_800300C0 = {0x1578, 58.0, 0.0, 0.0, 10.0, -1.0, 77.0, 104.0, -1.0, -1.0, 72.0, 104.0, 0.87266463, -0.34906587, 0.61086529, -0.69813174, 1.55, 1.5}; +//stru_D_80030108 +struct weapon_firing_animation_table D_80030108 = {0x17B4, 61.0, 0.0, 0.0, 10.0, -1.0, 83.0, 128.0, -1.0, -1.0, 78.0, 128.0, 0.87266463, -0.52359879, 0.87266463, -0.52359879, 1.2, 1.3}; +//stru_D_80030150 +struct weapon_firing_animation_table D_80030150 = {0x3FA0, 63.0, 0.0, 0.0, 10.0, -1.0, 73.0, 114.0, -1.0, -1.0, 68.0, 114.0, 0.87266463, -0.52359879, 0.61086529, -0.61086529, 1.65, 1.5}; +//stru_D_80030198 +struct weapon_firing_animation_table D_80030198 = {0x1334, 76.0, 0.0, 0.0, 20.0, 76.0, 98.0, 161.0, -1.0, -1.0, 93.0, 161.0, 0.87266463, -0.52359879, 0.69813174, -0.69813174, 1.7, 2.0}; +//stru_D_800301E0 +struct weapon_firing_animation_table D_800301E0 = {0x1578, 58.0, 0.0, 0.0, 10.0, 63.0, 77.0, 104.0, -1.0, -1.0, 72.0, 104.0, 0.87266463, -0.34906587, 0.61086529, -0.69813174, 1.55, 1.5}; +//stru_D_80030228 +struct weapon_firing_animation_table D_80030228 = {0x17B4, 61.0, 0.0, 0.0, 10.0, 56.0, 83.0, 128.0, -1.0, -1.0, 78.0, 128.0, 0.87266463, -0.52359879, 0.87266463, -0.52359879, 1.2, 1.3}; +//stru_D_80030270 +struct weapon_firing_animation_table D_80030270 = {0x3FA0, 63.0, 0.0, 0.0, 10.0, 50.0, 73.0, 114.0, -1.0, -1.0, 68.0, 114.0, 0.87266463, -0.52359879, 0.61086529, -0.61086529, 1.65, 1.5}; +//stru_D_800302B8 +struct weapon_firing_animation_table D_800302B8 = {0x6554, 0.0, 0.0, 0.0, 7.0, 64.0, 19.0, 51.0, 24.0, 46.0, 14.0, 58.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}; +//stru_D_80030300 +struct weapon_firing_animation_table D_80030300 = {0x6A18, 0.0, 0.0, 1.5707964, 14.0, 76.0, 26.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}; +//stru_D_80030348 +struct weapon_firing_animation_table D_80030348 = {0x6D50, 26.0, 0.0, 0.0, 25.0, 89.0, 41.0, 63.0, 41.0, 51.0, 21.0, 80.0, 0.87266463, -0.69813174, 0.34906587, -1.134464, 0.0, 0.0}; +//stru_D_80030390 +struct weapon_firing_animation_table D_80030390 = {0x7304, 18.0, 0.0, 1.5707964, 11.0, 78.0, 33.0, 52.0, 35.0, 45.0, 15.0, 66.0, 0.87266463, -0.087266468, 0.69813174, -0.78539819, 1.5, 1.0}; +//stru_D_800303D8 +struct weapon_firing_animation_table D_800303D8 = {0x8E1C, 26.0, 0.0, 0.0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}; +//stru_D_80030420 +struct weapon_firing_animation_table D_80030420 = {0x8F2C, 26.0, 0.0, 1.5707964, 9.0, 112.0, 38.0, 87.0, -1.0, -1.0, 19.0, 98.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}; +//stru_D_80030468 +struct weapon_firing_animation_table D_80030468 = {0x8698, 22.0, 0.0, 0.0, 10.0, 11.0, 34.0, 87.0, -1.0, -1.0, 17.0, 104.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}; +//stru_D_800304B0 +struct weapon_firing_animation_table D_800304B0 = {0x8800, 28.0, 0.0, 1.5707964, 15.0, 108.0, 34.0, 73.0, -1.0, -1.0, 17.0, 93.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}; +//stru_D_800304F8 +struct weapon_firing_animation_table D_800304F8 = {0x8E1C, 26.0, 0.0, 0.0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}; +//stru_D_80030540 +struct weapon_firing_animation_table D_80030540 = {0x9194, 25.0, 0.0, 1.5707964, 10.0, 112.0, 32.0, 86.0, -1.0, -1.0, 19.0, 97.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}; +//stru_D_80030588 +struct weapon_firing_animation_table D_80030588 = {0x8AAC, 25.0, 0.0, 0.0, 9.0, 92.0, 33.0, 62.0, -1.0, -1.0, 18.0, 69.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}; +//stru_D_800305D0 +struct weapon_firing_animation_table D_800305D0 = {0x8BF0, 19.0, 0.0, 1.5707964, 3.0, 95.0, 30.0, 64.0, -1.0, -1.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 1.5, 1.0}; +//stru_D_80030618 +struct weapon_firing_animation_table D_80030618 = {0, 0.0, 0.0, 0.0, 0.0, -1.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}; + +//stru_D_80030660 +struct weapon_firing_animation_table D_80030660 = {0x4574, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 1.4, 1.3}; +//stru_D_800306A8 +struct weapon_firing_animation_table D_800306A8 = {0x45CC, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 1.1, 1.2}; +//stru_D_800306F0 +struct weapon_firing_animation_table D_800306F0 = {0x74A4, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030738 +struct weapon_firing_animation_table D_80030738 = {0x75EC, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030780 +struct weapon_firing_animation_table D_80030780 = {0x8274, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800307C8 +struct weapon_firing_animation_table D_800307C8 = {0x8340, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030810 +struct weapon_firing_animation_table D_80030810 = {0x82E0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030858 +struct weapon_firing_animation_table D_80030858 = {0x83A4, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800308A0 +struct weapon_firing_animation_table D_800308A0 = {0x76B8, 0.0, 0.0, 1.5707964, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800308E8 +struct weapon_firing_animation_table D_800308E8 = {0x7650, 0.0, 0.0, 4.712389, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030930 +struct weapon_firing_animation_table D_80030930 = {0, 0.0, 0.0, 0.0, 0.0, -1.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}; + +s32 objectiveregisters1 = 0; +s32 objectiveregisters2 = 0; +s32 objectiveregisters3 = 0; +s32 D_80030984 = 0; +s32 D_80030988 = 0; +s32 D_8003098C = 0; +s32 D_80030990 = 0; +s32 D_80030994 = 0; +s32 D_80030998 = 0; +s32 D_8003099C = 0; +s32 D_800309A0 = 0; +s32 D_800309A4 = 0; +s32 D_800309A8 = 0; +s32 D_800309AC = 0; +s32 D_800309B0 = 0; +s32 D_800309B4 = 0; +s32 D_800309B8 = 0; +s32 D_800309BC = 0; +s32 D_800309C0 = 0; +s32 D_800309C4 = 0; +s32 D_800309C8 = 0; +s32 D_800309CC = 0; +s32 D_800309D0 = 0; +s32 D_800309D4 = 0; +s32 D_800309D8 = 0; +s32 D_800309DC = 0; +s32 D_800309E0 = 0; +s32 D_800309E4 = 0; +s32 D_800309E8 = 0; +s32 D_800309EC = 0; +s32 D_800309F0 = 0; +s32 D_800309F4 = 0; + +s16 male_guard_yelps[] = { + 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0 +}; + +s16 female_guard_yelps[] = { + 0xD, 0xE, 0xF, 0 +}; + +s32 male_guard_yelp_counter = 0; +s32 female_guard_yelp_counter = 0; + +s16 metal_ricochet_SFX[] = {0xEF, 0x48, 0x49}; + + +s32 D_80030A44 = 0; +s32 D_80030A48 = 0; +s32 D_80030A4C = 0; + +s16 body_hit_SFX[] = {0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85}; + +s32 D_80030A68 = 0; + + + +s32 get_numguards(void){ + return num_guards; +} + +void get_ptr_allocated_block_for_vertices(int param_1) { + sub_GAME_7F0BD714(param_1 << 4); +} + +void set_show_patrols_flag(s32 flag){ + show_patrols_flag = flag; +} + +s32 get_show_patrols_flag(void){ + return show_patrols_flag; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F01F574(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01F574 +/* 0540A4 7F01F574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0540A8 7F01F578 AFBF001C */ sw $ra, 0x1c($sp) +/* 0540AC 7F01F57C AFB00018 */ sw $s0, 0x18($sp) +/* 0540B0 7F01F580 8C8E0014 */ lw $t6, 0x14($a0) +/* 0540B4 7F01F584 00808025 */ move $s0, $a0 +/* 0540B8 7F01F588 24840014 */ addiu $a0, $a0, 0x14 +/* 0540BC 7F01F58C 11C0000F */ beqz $t6, .L7F01F5CC +/* 0540C0 7F01F590 3C073F80 */ lui $a3, 0x3f80 +/* 0540C4 7F01F594 8E050008 */ lw $a1, 8($s0) +/* 0540C8 7F01F598 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0540CC 7F01F59C 8E060010 */ lw $a2, 0x10($s0) +/* 0540D0 7F01F5A0 04430008 */ bgezl $v0, .L7F01F5C4 +/* 0540D4 7F01F5A4 44800000 */ mtc1 $zero, $f0 +/* 0540D8 7F01F5A8 8E040014 */ lw $a0, 0x14($s0) +/* 0540DC 7F01F5AC 8E050008 */ lw $a1, 8($s0) +/* 0540E0 7F01F5B0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0540E4 7F01F5B4 8E060010 */ lw $a2, 0x10($s0) +/* 0540E8 7F01F5B8 10000007 */ b .L7F01F5D8 +/* 0540EC 7F01F5BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0540F0 7F01F5C0 44800000 */ mtc1 $zero, $f0 +.L7F01F5C4: +/* 0540F4 7F01F5C4 10000004 */ b .L7F01F5D8 +/* 0540F8 7F01F5C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F5CC: +/* 0540FC 7F01F5CC 44800000 */ mtc1 $zero, $f0 +/* 054100 7F01F5D0 00000000 */ nop +/* 054104 7F01F5D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F5D8: +/* 054108 7F01F5D8 8FB00018 */ lw $s0, 0x18($sp) +/* 05410C 7F01F5DC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 054110 7F01F5E0 03E00008 */ jr $ra +/* 054114 7F01F5E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void set_or_unset_GUARDdata_flag(GUARDdata *guard,s32 param_2){ + if (param_2 == 0) { + guard->special_bitflags = guard->special_bitflags | 0x100; + return; + } + guard->special_bitflags = guard->special_bitflags & 0xfeff; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_or_unset_GUARDdata_flag +/* 054118 7F01F5E8 50A00006 */ beql $a1, $zero, .L7F01F604 +/* 05411C 7F01F5EC 94980012 */ lhu $t8, 0x12($a0) +/* 054120 7F01F5F0 948E0012 */ lhu $t6, 0x12($a0) +/* 054124 7F01F5F4 31CFFEFF */ andi $t7, $t6, 0xfeff +/* 054128 7F01F5F8 03E00008 */ jr $ra +/* 05412C 7F01F5FC A48F0012 */ sh $t7, 0x12($a0) + +/* 054130 7F01F600 94980012 */ lhu $t8, 0x12($a0) +.L7F01F604: +/* 054134 7F01F604 37190100 */ ori $t9, $t8, 0x100 +/* 054138 7F01F608 A4990012 */ sh $t9, 0x12($a0) +/* 05413C 7F01F60C 03E00008 */ jr $ra +/* 054140 7F01F610 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01F614(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01F614 +/* 054144 7F01F614 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 054148 7F01F618 AFB10030 */ sw $s1, 0x30($sp) +/* 05414C 7F01F61C AFB0002C */ sw $s0, 0x2c($sp) +/* 054150 7F01F620 00C08025 */ move $s0, $a2 +/* 054154 7F01F624 00E08825 */ move $s1, $a3 +/* 054158 7F01F628 AFBF0034 */ sw $ra, 0x34($sp) +/* 05415C 7F01F62C AFA40098 */ sw $a0, 0x98($sp) +/* 054160 7F01F630 AFA5009C */ sw $a1, 0x9c($sp) +/* 054164 7F01F634 AFA00094 */ sw $zero, 0x94($sp) +/* 054168 7F01F638 AFA50090 */ sw $a1, 0x90($sp) +/* 05416C 7F01F63C 8C840018 */ lw $a0, 0x18($a0) +/* 054170 7F01F640 27A50084 */ addiu $a1, $sp, 0x84 +/* 054174 7F01F644 27A70088 */ addiu $a3, $sp, 0x88 +/* 054178 7F01F648 0FC08C58 */ jal sub_GAME_7F023160 +/* 05417C 7F01F64C 27A6008C */ addiu $a2, $sp, 0x8c +/* 054180 7F01F650 8FA40098 */ lw $a0, 0x98($sp) +/* 054184 7F01F654 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 054188 7F01F658 00002825 */ move $a1, $zero +/* 05418C 7F01F65C 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 054190 7F01F660 00000000 */ nop +/* 054194 7F01F664 C6240008 */ lwc1 $f4, 8($s1) +/* 054198 7F01F668 8E050000 */ lw $a1, ($s0) +/* 05419C 7F01F66C 8E060008 */ lw $a2, 8($s0) +/* 0541A0 7F01F670 8E270000 */ lw $a3, ($s1) +/* 0541A4 7F01F674 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0541A8 7F01F678 44818000 */ mtc1 $at, $f16 +/* 0541AC 7F01F67C C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0541B0 7F01F680 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0541B4 7F01F684 44805000 */ mtc1 $zero, $f10 +/* 0541B8 7F01F688 2418001F */ li $t8, 31 +/* 0541BC 7F01F68C AFB80014 */ sw $t8, 0x14($sp) +/* 0541C0 7F01F690 27A40090 */ addiu $a0, $sp, 0x90 +/* 0541C4 7F01F694 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0541C8 7F01F698 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0541CC 7F01F69C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0541D0 7F01F6A0 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0541D4 7F01F6A4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0541D8 7F01F6A8 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0541DC 7F01F6AC 10400016 */ beqz $v0, .L7F01F708 +/* 0541E0 7F01F6B0 27A40090 */ addiu $a0, $sp, 0x90 +/* 0541E4 7F01F6B4 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0541E8 7F01F6B8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0541EC 7F01F6BC 8E250000 */ lw $a1, ($s1) +/* 0541F0 7F01F6C0 8E260008 */ lw $a2, 8($s1) +/* 0541F4 7F01F6C4 2419001F */ li $t9, 31 +/* 0541F8 7F01F6C8 AFB90010 */ sw $t9, 0x10($sp) +/* 0541FC 7F01F6CC 8FA70084 */ lw $a3, 0x84($sp) +/* 054200 7F01F6D0 E7B20014 */ swc1 $f18, 0x14($sp) +/* 054204 7F01F6D4 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 054208 7F01F6D8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 05420C 7F01F6DC 0441000A */ bgez $v0, .L7F01F708 +/* 054210 7F01F6E0 8FA800A8 */ lw $t0, 0xa8($sp) +/* 054214 7F01F6E4 11000005 */ beqz $t0, .L7F01F6FC +/* 054218 7F01F6E8 8FA90098 */ lw $t1, 0x98($sp) +/* 05421C 7F01F6EC A1200009 */ sb $zero, 9($t1) +/* 054220 7F01F6F0 3C0A8005 */ lui $t2, %hi(global_timer) +/* 054224 7F01F6F4 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 054228 7F01F6F8 AD2A00CC */ sw $t2, 0xcc($t1) +.L7F01F6FC: +/* 05422C 7F01F6FC 8FAB0090 */ lw $t3, 0x90($sp) +/* 054230 7F01F700 10000135 */ b .L7F01FBD8 +/* 054234 7F01F704 AFAB0094 */ sw $t3, 0x94($sp) +.L7F01F708: +/* 054238 7F01F708 AFA0004C */ sw $zero, 0x4c($sp) +/* 05423C 7F01F70C 27A40078 */ addiu $a0, $sp, 0x78 +/* 054240 7F01F710 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 054244 7F01F714 27A5006C */ addiu $a1, $sp, 0x6c +/* 054248 7F01F718 50400130 */ beql $v0, $zero, .L7F01FBDC +/* 05424C 7F01F71C 8FA40098 */ lw $a0, 0x98($sp) +/* 054250 7F01F720 C6260000 */ lwc1 $f6, ($s1) +/* 054254 7F01F724 C6080000 */ lwc1 $f8, ($s0) +/* 054258 7F01F728 46083281 */ sub.s $f10, $f6, $f8 +/* 05425C 7F01F72C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 054260 7F01F730 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 054264 7F01F734 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 054268 7F01F738 C6120008 */ lwc1 $f18, 8($s0) +/* 05426C 7F01F73C C6300008 */ lwc1 $f16, 8($s1) +/* 054270 7F01F740 46083032 */ c.eq.s $f6, $f8 +/* 054274 7F01F744 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 054278 7F01F748 46128101 */ sub.s $f4, $f16, $f18 +/* 05427C 7F01F74C C7B00074 */ lwc1 $f16, 0x74($sp) +/* 054280 7F01F750 45000005 */ bc1f .L7F01F768 +/* 054284 7F01F754 E7A40068 */ swc1 $f4, 0x68($sp) +/* 054288 7F01F758 46105032 */ c.eq.s $f10, $f16 +/* 05428C 7F01F75C 00000000 */ nop +/* 054290 7F01F760 45030028 */ bc1tl .L7F01F804 +/* 054294 7F01F764 8FAE004C */ lw $t6, 0x4c($sp) +.L7F01F768: +/* 054298 7F01F768 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 05429C 7F01F76C C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0542A0 7F01F770 C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0542A4 7F01F774 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0542A8 7F01F778 46083081 */ sub.s $f2, $f6, $f8 +/* 0542AC 7F01F77C 240C0001 */ li $t4, 1 +/* 0542B0 7F01F780 AFAC004C */ sw $t4, 0x4c($sp) +/* 0542B4 7F01F784 46049001 */ sub.s $f0, $f18, $f4 +/* 0542B8 7F01F788 46021282 */ mul.s $f10, $f2, $f2 +/* 0542BC 7F01F78C E7A2005C */ swc1 $f2, 0x5c($sp) +/* 0542C0 7F01F790 46000402 */ mul.s $f16, $f0, $f0 +/* 0542C4 7F01F794 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0542C8 7F01F798 0C007DF8 */ jal sqrtf +/* 0542CC 7F01F79C 46105300 */ add.s $f12, $f10, $f16 +/* 0542D0 7F01F7A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0542D4 7F01F7A4 44819000 */ mtc1 $at, $f18 +/* 0542D8 7F01F7A8 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0542DC 7F01F7AC C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0542E0 7F01F7B0 46009083 */ div.s $f2, $f18, $f0 +/* 0542E4 7F01F7B4 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 0542E8 7F01F7B8 8FAD009C */ lw $t5, 0x9c($sp) +/* 0542EC 7F01F7BC 46022182 */ mul.s $f6, $f4, $f2 +/* 0542F0 7F01F7C0 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0542F4 7F01F7C4 46024282 */ mul.s $f10, $f8, $f2 +/* 0542F8 7F01F7C8 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0542FC 7F01F7CC 46105482 */ mul.s $f18, $f10, $f16 +/* 054300 7F01F7D0 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 054304 7F01F7D4 46062202 */ mul.s $f8, $f4, $f6 +/* 054308 7F01F7D8 C6040000 */ lwc1 $f4, ($s0) +/* 05430C 7F01F7DC 46089300 */ add.s $f12, $f18, $f8 +/* 054310 7F01F7E0 460C3402 */ mul.s $f16, $f6, $f12 +/* 054314 7F01F7E4 46048480 */ add.s $f18, $f16, $f4 +/* 054318 7F01F7E8 460C5202 */ mul.s $f8, $f10, $f12 +/* 05431C 7F01F7EC E7B20040 */ swc1 $f18, 0x40($sp) +/* 054320 7F01F7F0 C6060008 */ lwc1 $f6, 8($s0) +/* 054324 7F01F7F4 AFAD0090 */ sw $t5, 0x90($sp) +/* 054328 7F01F7F8 46064400 */ add.s $f16, $f8, $f6 +/* 05432C 7F01F7FC E7B00048 */ swc1 $f16, 0x48($sp) +/* 054330 7F01F800 8FAE004C */ lw $t6, 0x4c($sp) +.L7F01F804: +/* 054334 7F01F804 27A40090 */ addiu $a0, $sp, 0x90 +/* 054338 7F01F808 8FA70040 */ lw $a3, 0x40($sp) +/* 05433C 7F01F80C 11C00027 */ beqz $t6, .L7F01F8AC +/* 054340 7F01F810 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 054344 7F01F814 8E050000 */ lw $a1, ($s0) +/* 054348 7F01F818 8E060008 */ lw $a2, 8($s0) +/* 05434C 7F01F81C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054350 7F01F820 44813000 */ mtc1 $at, $f6 +/* 054354 7F01F824 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 054358 7F01F828 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 05435C 7F01F82C 44804000 */ mtc1 $zero, $f8 +/* 054360 7F01F830 240F001F */ li $t7, 31 +/* 054364 7F01F834 AFAF0014 */ sw $t7, 0x14($sp) +/* 054368 7F01F838 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05436C 7F01F83C E7B20018 */ swc1 $f18, 0x18($sp) +/* 054370 7F01F840 E7A60024 */ swc1 $f6, 0x24($sp) +/* 054374 7F01F844 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 054378 7F01F848 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05437C 7F01F84C E7A80020 */ swc1 $f8, 0x20($sp) +/* 054380 7F01F850 10400016 */ beqz $v0, .L7F01F8AC +/* 054384 7F01F854 27A40090 */ addiu $a0, $sp, 0x90 +/* 054388 7F01F858 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 05438C 7F01F85C C7A40088 */ lwc1 $f4, 0x88($sp) +/* 054390 7F01F860 2418001F */ li $t8, 31 +/* 054394 7F01F864 AFB80010 */ sw $t8, 0x10($sp) +/* 054398 7F01F868 8FA50040 */ lw $a1, 0x40($sp) +/* 05439C 7F01F86C 8FA60048 */ lw $a2, 0x48($sp) +/* 0543A0 7F01F870 8FA70084 */ lw $a3, 0x84($sp) +/* 0543A4 7F01F874 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0543A8 7F01F878 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0543AC 7F01F87C E7A40018 */ swc1 $f4, 0x18($sp) +/* 0543B0 7F01F880 0441000A */ bgez $v0, .L7F01F8AC +/* 0543B4 7F01F884 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0543B8 7F01F888 E6320000 */ swc1 $f18, ($s1) +/* 0543BC 7F01F88C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0543C0 7F01F890 24190002 */ li $t9, 2 +/* 0543C4 7F01F894 E62A0008 */ swc1 $f10, 8($s1) +/* 0543C8 7F01F898 8FA80098 */ lw $t0, 0x98($sp) +/* 0543CC 7F01F89C A1190009 */ sb $t9, 9($t0) +/* 0543D0 7F01F8A0 8FAA0090 */ lw $t2, 0x90($sp) +/* 0543D4 7F01F8A4 100000CC */ b .L7F01FBD8 +/* 0543D8 7F01F8A8 AFAA0094 */ sw $t2, 0x94($sp) +.L7F01F8AC: +/* 0543DC 7F01F8AC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0543E0 7F01F8B0 C6260000 */ lwc1 $f6, ($s1) +/* 0543E4 7F01F8B4 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0543E8 7F01F8B8 46064401 */ sub.s $f16, $f8, $f6 +/* 0543EC 7F01F8BC C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0543F0 7F01F8C0 E7B00054 */ swc1 $f16, 0x54($sp) +/* 0543F4 7F01F8C4 C6320008 */ lwc1 $f18, 8($s1) +/* 0543F8 7F01F8C8 46063002 */ mul.s $f0, $f6, $f6 +/* 0543FC 7F01F8CC 46122281 */ sub.s $f10, $f4, $f18 +/* 054400 7F01F8D0 460A5482 */ mul.s $f18, $f10, $f10 +/* 054404 7F01F8D4 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 054408 7F01F8D8 46108182 */ mul.s $f6, $f16, $f16 +/* 05440C 7F01F8DC C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 054410 7F01F8E0 46069280 */ add.s $f10, $f18, $f6 +/* 054414 7F01F8E4 4600503E */ c.le.s $f10, $f0 +/* 054418 7F01F8E8 00000000 */ nop +/* 05441C 7F01F8EC 45020058 */ bc1fl .L7F01FA50 +/* 054420 7F01F8F0 C6260000 */ lwc1 $f6, ($s1) +/* 054424 7F01F8F4 C6100000 */ lwc1 $f16, ($s0) +/* 054428 7F01F8F8 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 05442C 7F01F8FC 46104032 */ c.eq.s $f8, $f16 +/* 054430 7F01F900 00000000 */ nop +/* 054434 7F01F904 45020007 */ bc1fl .L7F01F924 +/* 054438 7F01F908 C60A0008 */ lwc1 $f10, 8($s0) +/* 05443C 7F01F90C C6120008 */ lwc1 $f18, 8($s0) +/* 054440 7F01F910 46122032 */ c.eq.s $f4, $f18 +/* 054444 7F01F914 00000000 */ nop +/* 054448 7F01F918 450300B0 */ bc1tl .L7F01FBDC +/* 05444C 7F01F91C 8FA40098 */ lw $a0, 0x98($sp) +/* 054450 7F01F920 C60A0008 */ lwc1 $f10, 8($s0) +.L7F01F924: +/* 054454 7F01F924 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 054458 7F01F928 460A3201 */ sub.s $f8, $f6, $f10 +/* 05445C 7F01F92C 46004407 */ neg.s $f16, $f8 +/* 054460 7F01F930 E7B00054 */ swc1 $f16, 0x54($sp) +/* 054464 7F01F934 C6120000 */ lwc1 $f18, ($s0) +/* 054468 7F01F938 46122181 */ sub.s $f6, $f4, $f18 +/* 05446C 7F01F93C 46063282 */ mul.s $f10, $f6, $f6 +/* 054470 7F01F940 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 054474 7F01F944 46108202 */ mul.s $f8, $f16, $f16 +/* 054478 7F01F948 0C007DF8 */ jal sqrtf +/* 05447C 7F01F94C 46085300 */ add.s $f12, $f10, $f8 +/* 054480 7F01F950 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054484 7F01F954 44812000 */ mtc1 $at, $f4 +/* 054488 7F01F958 C7B20054 */ lwc1 $f18, 0x54($sp) +/* 05448C 7F01F95C C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 054490 7F01F960 46002083 */ div.s $f2, $f4, $f0 +/* 054494 7F01F964 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 054498 7F01F968 8FA9009C */ lw $t1, 0x9c($sp) +/* 05449C 7F01F96C 240B001F */ li $t3, 31 +/* 0544A0 7F01F970 27A40090 */ addiu $a0, $sp, 0x90 +/* 0544A4 7F01F974 46029182 */ mul.s $f6, $f18, $f2 +/* 0544A8 7F01F978 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0544AC 7F01F97C 46028282 */ mul.s $f10, $f16, $f2 +/* 0544B0 7F01F980 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0544B4 7F01F984 46085102 */ mul.s $f4, $f10, $f8 +/* 0544B8 7F01F988 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0544BC 7F01F98C 46069402 */ mul.s $f16, $f18, $f6 +/* 0544C0 7F01F990 C6120000 */ lwc1 $f18, ($s0) +/* 0544C4 7F01F994 46102300 */ add.s $f12, $f4, $f16 +/* 0544C8 7F01F998 460C3202 */ mul.s $f8, $f6, $f12 +/* 0544CC 7F01F99C 46124100 */ add.s $f4, $f8, $f18 +/* 0544D0 7F01F9A0 460C5402 */ mul.s $f16, $f10, $f12 +/* 0544D4 7F01F9A4 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 0544D8 7F01F9A8 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0544DC 7F01F9AC E7A40040 */ swc1 $f4, 0x40($sp) +/* 0544E0 7F01F9B0 C6060008 */ lwc1 $f6, 8($s0) +/* 0544E4 7F01F9B4 AFA90090 */ sw $t1, 0x90($sp) +/* 0544E8 7F01F9B8 44072000 */ mfc1 $a3, $f4 +/* 0544EC 7F01F9BC 46068200 */ add.s $f8, $f16, $f6 +/* 0544F0 7F01F9C0 44813000 */ mtc1 $at, $f6 +/* 0544F4 7F01F9C4 44808000 */ mtc1 $zero, $f16 +/* 0544F8 7F01F9C8 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0544FC 7F01F9CC 8E060008 */ lw $a2, 8($s0) +/* 054500 7F01F9D0 8E050000 */ lw $a1, ($s0) +/* 054504 7F01F9D4 AFAB0014 */ sw $t3, 0x14($sp) +/* 054508 7F01F9D8 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05450C 7F01F9DC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 054510 7F01F9E0 E7B20018 */ swc1 $f18, 0x18($sp) +/* 054514 7F01F9E4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 054518 7F01F9E8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05451C 7F01F9EC E7B00020 */ swc1 $f16, 0x20($sp) +/* 054520 7F01F9F0 10400079 */ beqz $v0, .L7F01FBD8 +/* 054524 7F01F9F4 27A40090 */ addiu $a0, $sp, 0x90 +/* 054528 7F01F9F8 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 05452C 7F01F9FC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 054530 7F01FA00 240C001F */ li $t4, 31 +/* 054534 7F01FA04 AFAC0010 */ sw $t4, 0x10($sp) +/* 054538 7F01FA08 8FA50040 */ lw $a1, 0x40($sp) +/* 05453C 7F01FA0C 8FA60048 */ lw $a2, 0x48($sp) +/* 054540 7F01FA10 8FA70084 */ lw $a3, 0x84($sp) +/* 054544 7F01FA14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 054548 7F01FA18 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 05454C 7F01FA1C E7A80018 */ swc1 $f8, 0x18($sp) +/* 054550 7F01FA20 0441006D */ bgez $v0, .L7F01FBD8 +/* 054554 7F01FA24 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 054558 7F01FA28 E6320000 */ swc1 $f18, ($s1) +/* 05455C 7F01FA2C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 054560 7F01FA30 240D0002 */ li $t5, 2 +/* 054564 7F01FA34 E62A0008 */ swc1 $f10, 8($s1) +/* 054568 7F01FA38 8FAE0098 */ lw $t6, 0x98($sp) +/* 05456C 7F01FA3C A1CD0009 */ sb $t5, 9($t6) +/* 054570 7F01FA40 8FAF0090 */ lw $t7, 0x90($sp) +/* 054574 7F01FA44 10000064 */ b .L7F01FBD8 +/* 054578 7F01FA48 AFAF0094 */ sw $t7, 0x94($sp) +/* 05457C 7F01FA4C C6260000 */ lwc1 $f6, ($s1) +.L7F01FA50: +/* 054580 7F01FA50 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 054584 7F01FA54 46068101 */ sub.s $f4, $f16, $f6 +/* 054588 7F01FA58 E7A40054 */ swc1 $f4, 0x54($sp) +/* 05458C 7F01FA5C C6320008 */ lwc1 $f18, 8($s1) +/* 054590 7F01FA60 46124281 */ sub.s $f10, $f8, $f18 +/* 054594 7F01FA64 460A5182 */ mul.s $f6, $f10, $f10 +/* 054598 7F01FA68 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 05459C 7F01FA6C 46042482 */ mul.s $f18, $f4, $f4 +/* 0545A0 7F01FA70 46123280 */ add.s $f10, $f6, $f18 +/* 0545A4 7F01FA74 4600503E */ c.le.s $f10, $f0 +/* 0545A8 7F01FA78 00000000 */ nop +/* 0545AC 7F01FA7C 45020057 */ bc1fl .L7F01FBDC +/* 0545B0 7F01FA80 8FA40098 */ lw $a0, 0x98($sp) +/* 0545B4 7F01FA84 C6040000 */ lwc1 $f4, ($s0) +/* 0545B8 7F01FA88 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 0545BC 7F01FA8C 46048032 */ c.eq.s $f16, $f4 +/* 0545C0 7F01FA90 00000000 */ nop +/* 0545C4 7F01FA94 45020007 */ bc1fl .L7F01FAB4 +/* 0545C8 7F01FA98 C60A0008 */ lwc1 $f10, 8($s0) +/* 0545CC 7F01FA9C C6060008 */ lwc1 $f6, 8($s0) +/* 0545D0 7F01FAA0 46064032 */ c.eq.s $f8, $f6 +/* 0545D4 7F01FAA4 00000000 */ nop +/* 0545D8 7F01FAA8 4503004C */ bc1tl .L7F01FBDC +/* 0545DC 7F01FAAC 8FA40098 */ lw $a0, 0x98($sp) +/* 0545E0 7F01FAB0 C60A0008 */ lwc1 $f10, 8($s0) +.L7F01FAB4: +/* 0545E4 7F01FAB4 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0545E8 7F01FAB8 460A9401 */ sub.s $f16, $f18, $f10 +/* 0545EC 7F01FABC 46008107 */ neg.s $f4, $f16 +/* 0545F0 7F01FAC0 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0545F4 7F01FAC4 C6060000 */ lwc1 $f6, ($s0) +/* 0545F8 7F01FAC8 46064481 */ sub.s $f18, $f8, $f6 +/* 0545FC 7F01FACC 46129282 */ mul.s $f10, $f18, $f18 +/* 054600 7F01FAD0 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 054604 7F01FAD4 46042402 */ mul.s $f16, $f4, $f4 +/* 054608 7F01FAD8 0C007DF8 */ jal sqrtf +/* 05460C 7F01FADC 46105300 */ add.s $f12, $f10, $f16 +/* 054610 7F01FAE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054614 7F01FAE4 44814000 */ mtc1 $at, $f8 +/* 054618 7F01FAE8 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 05461C 7F01FAEC C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 054620 7F01FAF0 46004083 */ div.s $f2, $f8, $f0 +/* 054624 7F01FAF4 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 054628 7F01FAF8 8FB8009C */ lw $t8, 0x9c($sp) +/* 05462C 7F01FAFC 2419001F */ li $t9, 31 +/* 054630 7F01FB00 27A40090 */ addiu $a0, $sp, 0x90 +/* 054634 7F01FB04 46023482 */ mul.s $f18, $f6, $f2 +/* 054638 7F01FB08 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05463C 7F01FB0C 46022282 */ mul.s $f10, $f4, $f2 +/* 054640 7F01FB10 E7B20054 */ swc1 $f18, 0x54($sp) +/* 054644 7F01FB14 46105202 */ mul.s $f8, $f10, $f16 +/* 054648 7F01FB18 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 05464C 7F01FB1C 46123102 */ mul.s $f4, $f6, $f18 +/* 054650 7F01FB20 C6060000 */ lwc1 $f6, ($s0) +/* 054654 7F01FB24 46044300 */ add.s $f12, $f8, $f4 +/* 054658 7F01FB28 460C9402 */ mul.s $f16, $f18, $f12 +/* 05465C 7F01FB2C 46068200 */ add.s $f8, $f16, $f6 +/* 054660 7F01FB30 460C5102 */ mul.s $f4, $f10, $f12 +/* 054664 7F01FB34 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 054668 7F01FB38 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 05466C 7F01FB3C E7A80040 */ swc1 $f8, 0x40($sp) +/* 054670 7F01FB40 C6120008 */ lwc1 $f18, 8($s0) +/* 054674 7F01FB44 AFB80090 */ sw $t8, 0x90($sp) +/* 054678 7F01FB48 44074000 */ mfc1 $a3, $f8 +/* 05467C 7F01FB4C 46122400 */ add.s $f16, $f4, $f18 +/* 054680 7F01FB50 44819000 */ mtc1 $at, $f18 +/* 054684 7F01FB54 44802000 */ mtc1 $zero, $f4 +/* 054688 7F01FB58 E7B00048 */ swc1 $f16, 0x48($sp) +/* 05468C 7F01FB5C 8E060008 */ lw $a2, 8($s0) +/* 054690 7F01FB60 8E050000 */ lw $a1, ($s0) +/* 054694 7F01FB64 AFB90014 */ sw $t9, 0x14($sp) +/* 054698 7F01FB68 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05469C 7F01FB6C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0546A0 7F01FB70 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0546A4 7F01FB74 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0546A8 7F01FB78 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0546AC 7F01FB7C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0546B0 7F01FB80 10400015 */ beqz $v0, .L7F01FBD8 +/* 0546B4 7F01FB84 27A40090 */ addiu $a0, $sp, 0x90 +/* 0546B8 7F01FB88 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0546BC 7F01FB8C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0546C0 7F01FB90 2408001F */ li $t0, 31 +/* 0546C4 7F01FB94 AFA80010 */ sw $t0, 0x10($sp) +/* 0546C8 7F01FB98 8FA50040 */ lw $a1, 0x40($sp) +/* 0546CC 7F01FB9C 8FA60048 */ lw $a2, 0x48($sp) +/* 0546D0 7F01FBA0 8FA70084 */ lw $a3, 0x84($sp) +/* 0546D4 7F01FBA4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0546D8 7F01FBA8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0546DC 7F01FBAC E7B00018 */ swc1 $f16, 0x18($sp) +/* 0546E0 7F01FBB0 04410009 */ bgez $v0, .L7F01FBD8 +/* 0546E4 7F01FBB4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0546E8 7F01FBB8 E6260000 */ swc1 $f6, ($s1) +/* 0546EC 7F01FBBC C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0546F0 7F01FBC0 240A0002 */ li $t2, 2 +/* 0546F4 7F01FBC4 E62A0008 */ swc1 $f10, 8($s1) +/* 0546F8 7F01FBC8 8FA90098 */ lw $t1, 0x98($sp) +/* 0546FC 7F01FBCC A12A0009 */ sb $t2, 9($t1) +/* 054700 7F01FBD0 8FAB0090 */ lw $t3, 0x90($sp) +/* 054704 7F01FBD4 AFAB0094 */ sw $t3, 0x94($sp) +.L7F01FBD8: +/* 054708 7F01FBD8 8FA40098 */ lw $a0, 0x98($sp) +.L7F01FBDC: +/* 05470C 7F01FBDC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 054710 7F01FBE0 24050001 */ li $a1, 1 +/* 054714 7F01FBE4 8FAC0094 */ lw $t4, 0x94($sp) +/* 054718 7F01FBE8 8FAE0098 */ lw $t6, 0x98($sp) +/* 05471C 7F01FBEC 15800002 */ bnez $t4, .L7F01FBF8 +/* 054720 7F01FBF0 240D0001 */ li $t5, 1 +/* 054724 7F01FBF4 A1CD0009 */ sb $t5, 9($t6) +.L7F01FBF8: +/* 054728 7F01FBF8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05472C 7F01FBFC 8FA20094 */ lw $v0, 0x94($sp) +/* 054730 7F01FC00 8FB0002C */ lw $s0, 0x2c($sp) +/* 054734 7F01FC04 8FB10030 */ lw $s1, 0x30($sp) +/* 054738 7F01FC08 03E00008 */ jr $ra +/* 05473C 7F01FC0C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01FC10(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051D10 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D14 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D18 +.word 0x3f666666 /*0.89999998*/ +glabel D_80051D1C +.word 0x3dcccccd /*0.1*/ +glabel D_80051D20 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D24 +.word 0xbdcccccd /*-0.1*/ +glabel D_80051D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D30 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D34 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D38 +.word 0x3f5f66f3 /*0.87266463*/ +glabel D_80051D3C +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D40 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D48 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D58 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D5C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D60 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D64 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D68 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D6C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D70 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D74 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D78 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D7C +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D80 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D84 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D88 +.word 0x41aa6666 /*21.299999*/ + +.text +glabel sub_GAME_7F01FC10 +/* 054740 7F01FC10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 054744 7F01FC14 AFBF0024 */ sw $ra, 0x24($sp) +/* 054748 7F01FC18 AFB10020 */ sw $s1, 0x20($sp) +/* 05474C 7F01FC1C AFB0001C */ sw $s0, 0x1c($sp) +/* 054750 7F01FC20 AFA40038 */ sw $a0, 0x38($sp) +/* 054754 7F01FC24 AFA5003C */ sw $a1, 0x3c($sp) +/* 054758 7F01FC28 AFA70044 */ sw $a3, 0x44($sp) +/* 05475C 7F01FC2C 8C900004 */ lw $s0, 4($a0) +/* 054760 7F01FC30 AFA00030 */ sw $zero, 0x30($sp) +/* 054764 7F01FC34 44806000 */ mtc1 $zero, $f12 +/* 054768 7F01FC38 8E0F0018 */ lw $t7, 0x18($s0) +/* 05476C 7F01FC3C 00C08825 */ move $s1, $a2 +/* 054770 7F01FC40 00A01825 */ move $v1, $a1 +/* 054774 7F01FC44 8DF80014 */ lw $t8, 0x14($t7) +/* 054778 7F01FC48 46006386 */ mov.s $f14, $f12 +/* 05477C 7F01FC4C 530000CC */ beql $t8, $zero, .L7F01FF80 +/* 054780 7F01FC50 8FAD0044 */ lw $t5, 0x44($sp) +/* 054784 7F01FC54 82190007 */ lb $t9, 7($s0) +/* 054788 7F01FC58 24010004 */ li $at, 4 +/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10 +/* 054790 7F01FC60 00000000 */ nop +/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0) +/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2 +/* 0547A4 7F01FC74 00000000 */ nop +/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10 +/* 0547AC 7F01FC7C 00000000 */ nop +/* 0547B0 7F01FC80 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0547B4 7F01FC84 C4460000 */ lwc1 $f6, ($v0) +/* 0547B8 7F01FC88 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 0547BC 7F01FC8C 46062202 */ mul.s $f8, $f4, $f6 +/* 0547C0 7F01FC90 460A1481 */ sub.s $f18, $f2, $f10 +/* 0547C4 7F01FC94 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0547C8 7F01FC98 C4C60000 */ lwc1 $f6, ($a2) +/* 0547CC 7F01FC9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0547D0 7F01FCA0 46022003 */ div.s $f0, $f4, $f2 +/* 0547D4 7F01FCA4 C4C40004 */ lwc1 $f4, 4($a2) +/* 0547D8 7F01FCA8 46005202 */ mul.s $f8, $f10, $f0 +/* 0547DC 7F01FCAC 46083480 */ add.s $f18, $f6, $f8 +/* 0547E0 7F01FCB0 E4D20000 */ swc1 $f18, ($a2) +/* 0547E4 7F01FCB4 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0547E8 7F01FCB8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0547EC 7F01FCBC 46005182 */ mul.s $f6, $f10, $f0 +/* 0547F0 7F01FCC0 46062200 */ add.s $f8, $f4, $f6 +/* 0547F4 7F01FCC4 E4C80004 */ swc1 $f8, 4($a2) +/* 0547F8 7F01FCC8 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 0547FC 7F01FCCC 46005102 */ mul.s $f4, $f10, $f0 +/* 054800 7F01FCD0 46049180 */ add.s $f6, $f18, $f4 +/* 054804 7F01FCD4 E4C60008 */ swc1 $f6, 8($a2) +/* 054808 7F01FCD8 8FA80038 */ lw $t0, 0x38($sp) +/* 05480C 7F01FCDC C4480000 */ lwc1 $f8, ($v0) +/* 054810 7F01FCE0 C604003C */ lwc1 $f4, 0x3c($s0) +/* 054814 7F01FCE4 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 054818 7F01FCE8 460A4482 */ mul.s $f18, $f8, $f10 +/* 05481C 7F01FCEC C6080038 */ lwc1 $f8, 0x38($s0) +/* 054820 7F01FCF0 46122180 */ add.s $f6, $f4, $f18 +/* 054824 7F01FCF4 E606003C */ swc1 $f6, 0x3c($s0) +/* 054828 7F01FCF8 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 05482C 7F01FCFC 460A403C */ c.lt.s $f8, $f10 +/* 054830 7F01FD00 00000000 */ nop +/* 054834 7F01FD04 45000002 */ bc1f .L7F01FD10 +/* 054838 7F01FD08 00000000 */ nop +/* 05483C 7F01FD0C E60C0038 */ swc1 $f12, 0x38($s0) +.L7F01FD10: +/* 054840 7F01FD10 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 054844 7F01FD14 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 054848 7F01FD18 C4520000 */ lwc1 $f18, ($v0) +/* 05484C 7F01FD1C C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 054850 7F01FD20 C6280000 */ lwc1 $f8, ($s1) +/* 054854 7F01FD24 240A0001 */ li $t2, 1 +/* 054858 7F01FD28 46122182 */ mul.s $f6, $f4, $f18 +/* 05485C 7F01FD2C 02002025 */ move $a0, $s0 +/* 054860 7F01FD30 02203825 */ move $a3, $s1 +/* 054864 7F01FD34 46064280 */ add.s $f10, $f8, $f6 +/* 054868 7F01FD38 C6260008 */ lwc1 $f6, 8($s1) +/* 05486C 7F01FD3C E62A0000 */ swc1 $f10, ($s1) +/* 054870 7F01FD40 C4520000 */ lwc1 $f18, ($v0) +/* 054874 7F01FD44 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 054878 7F01FD48 46122202 */ mul.s $f8, $f4, $f18 +/* 05487C 7F01FD4C 46083280 */ add.s $f10, $f6, $f8 +/* 054880 7F01FD50 E62A0008 */ swc1 $f10, 8($s1) +/* 054884 7F01FD54 8E090018 */ lw $t1, 0x18($s0) +/* 054888 7F01FD58 8FA6003C */ lw $a2, 0x3c($sp) +/* 05488C 7F01FD5C 8D250014 */ lw $a1, 0x14($t1) +/* 054890 7F01FD60 AFA30028 */ sw $v1, 0x28($sp) +/* 054894 7F01FD64 0FC07D85 */ jal sub_GAME_7F01F614 +/* 054898 7F01FD68 AFAA0010 */ sw $t2, 0x10($sp) +/* 05489C 7F01FD6C 10400006 */ beqz $v0, .L7F01FD88 +/* 0548A0 7F01FD70 8FA30028 */ lw $v1, 0x28($sp) +/* 0548A4 7F01FD74 8E0B0018 */ lw $t3, 0x18($s0) +/* 0548A8 7F01FD78 240C0001 */ li $t4, 1 +/* 0548AC 7F01FD7C 02201825 */ move $v1, $s1 +/* 0548B0 7F01FD80 AD620014 */ sw $v0, 0x14($t3) +/* 0548B4 7F01FD84 AFAC0030 */ sw $t4, 0x30($sp) +.L7F01FD88: +/* 0548B8 7F01FD88 8E0D0014 */ lw $t5, 0x14($s0) +/* 0548BC 7F01FD8C 31AF1000 */ andi $t7, $t5, 0x1000 +/* 0548C0 7F01FD90 55E0007A */ bnezl $t7, .L7F01FF7C +/* 0548C4 7F01FD94 C60E00AC */ lwc1 $f14, 0xac($s0) +/* 0548C8 7F01FD98 8E180018 */ lw $t8, 0x18($s0) +/* 0548CC 7F01FD9C 8C650000 */ lw $a1, ($v1) +/* 0548D0 7F01FDA0 8C660008 */ lw $a2, 8($v1) +/* 0548D4 7F01FDA4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0548D8 7F01FDA8 8F040014 */ lw $a0, 0x14($t8) +/* 0548DC 7F01FDAC 8E190014 */ lw $t9, 0x14($s0) +/* 0548E0 7F01FDB0 44806000 */ mtc1 $zero, $f12 +/* 0548E4 7F01FDB4 46000386 */ mov.s $f14, $f0 +/* 0548E8 7F01FDB8 332E0001 */ andi $t6, $t9, 1 +/* 0548EC 7F01FDBC 11C00014 */ beqz $t6, .L7F01FE10 +/* 0548F0 7F01FDC0 E60000AC */ swc1 $f0, 0xac($s0) +/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp) +/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0) +/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0) +/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) +/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) +/* 054910 7F01FDE0 2401FFFE */ li $at, -2 +/* 054914 7F01FDE4 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054918 7F01FDE8 01215024 */ and $t2, $t1, $at +/* 05491C 7F01FDEC AE0A0014 */ sw $t2, 0x14($s0) +/* 054920 7F01FDF0 3C018005 */ lui $at, %hi(D_80051D10) +/* 054924 7F01FDF4 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 054928 7F01FDF8 C4241D10 */ lwc1 $f4, %lo(D_80051D10)($at) +/* 05492C 7F01FDFC 46041483 */ div.s $f18, $f2, $f4 +/* 054930 7F01FE00 E61200A4 */ swc1 $f18, 0xa4($s0) +/* 054934 7F01FE04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 054938 7F01FE08 10000055 */ b .L7F01FF60 +/* 05493C 7F01FE0C E4460038 */ swc1 $f6, 0x38($v0) +.L7F01FE10: +/* 054940 7F01FE10 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 054944 7F01FE14 260400A8 */ addiu $a0, $s0, 0xa8 +/* 054948 7F01FE18 260500B4 */ addiu $a1, $s0, 0xb4 +/* 05494C 7F01FE1C 46086032 */ c.eq.s $f12, $f8 +/* 054950 7F01FE20 3C068005 */ lui $a2, %hi(global_timer_delta) +/* 054954 7F01FE24 45000007 */ bc1f .L7F01FE44 +/* 054958 7F01FE28 00000000 */ nop +/* 05495C 7F01FE2C C60200AC */ lwc1 $f2, 0xac($s0) +/* 054960 7F01FE30 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054964 7F01FE34 4600103C */ c.lt.s $f2, $f0 +/* 054968 7F01FE38 00000000 */ nop +/* 05496C 7F01FE3C 45020013 */ bc1fl .L7F01FE8C +/* 054970 7F01FE40 4602003E */ c.le.s $f0, $f2 +.L7F01FE44: +/* 054974 7F01FE44 8CC68378 */ lw $a2, %lo(global_timer_delta)($a2) +/* 054978 7F01FE48 0FC15F51 */ jal sub_GAME_7F057D44 +/* 05497C 7F01FE4C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054980 7F01FE50 C60200AC */ lwc1 $f2, 0xac($s0) +/* 054984 7F01FE54 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054988 7F01FE58 44806000 */ mtc1 $zero, $f12 +/* 05498C 7F01FE5C C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054990 7F01FE60 4602003E */ c.le.s $f0, $f2 +/* 054994 7F01FE64 3C018005 */ lui $at, %hi(D_80051D14) +/* 054998 7F01FE68 45020008 */ bc1fl .L7F01FE8C +/* 05499C 7F01FE6C 4602003E */ c.le.s $f0, $f2 +/* 0549A0 7F01FE70 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 0549A4 7F01FE74 C42A1D14 */ lwc1 $f10, %lo(D_80051D14)($at) +/* 0549A8 7F01FE78 E60C00B4 */ swc1 $f12, 0xb4($s0) +/* 0549AC 7F01FE7C C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 0549B0 7F01FE80 460A1103 */ div.s $f4, $f2, $f10 +/* 0549B4 7F01FE84 E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0549B8 7F01FE88 4602003E */ c.le.s $f0, $f2 +.L7F01FE8C: +/* 0549BC 7F01FE8C 3C038005 */ lui $v1, %hi(clock_timer) +/* 0549C0 7F01FE90 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0549C4 7F01FE94 45020033 */ bc1fl .L7F01FF64 +/* 0549C8 7F01FE98 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0549CC 7F01FE9C 8C6B0000 */ lw $t3, ($v1) +/* 0549D0 7F01FEA0 00001025 */ move $v0, $zero +/* 0549D4 7F01FEA4 3C018005 */ lui $at, %hi(D_80051D18) +/* 0549D8 7F01FEA8 19600011 */ blez $t3, .L7F01FEF0 +/* 0549DC 7F01FEAC 00000000 */ nop +/* 0549E0 7F01FEB0 C4201D18 */ lwc1 $f0, %lo(D_80051D18)($at) +/* 0549E4 7F01FEB4 C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEB8: +/* 0549E8 7F01FEB8 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 0549EC 7F01FEBC 24420001 */ addiu $v0, $v0, 1 +/* 0549F0 7F01FEC0 46009182 */ mul.s $f6, $f18, $f0 +/* 0549F4 7F01FEC4 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 0549F8 7F01FEC8 46005102 */ mul.s $f4, $f10, $f0 +/* 0549FC 7F01FECC 46023200 */ add.s $f8, $f6, $f2 +/* 054A00 7F01FED0 46009182 */ mul.s $f6, $f18, $f0 +/* 054A04 7F01FED4 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 054A08 7F01FED8 E60800A4 */ swc1 $f8, 0xa4($s0) +/* 054A0C 7F01FEDC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 054A10 7F01FEE0 8C6C0000 */ lw $t4, ($v1) +/* 054A14 7F01FEE4 004C082A */ slt $at, $v0, $t4 +/* 054A18 7F01FEE8 5420FFF3 */ bnezl $at, .L7F01FEB8 +/* 054A1C 7F01FEEC C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEF0: +/* 054A20 7F01FEF0 3C018005 */ lui $at, %hi(D_80051D1C) +/* 054A24 7F01FEF4 C4221D1C */ lwc1 $f2, %lo(D_80051D1C)($at) +/* 054A28 7F01FEF8 3C018005 */ lui $at, %hi(D_80051D20) +/* 054A2C 7F01FEFC C42A1D20 */ lwc1 $f10, %lo(D_80051D20)($at) +/* 054A30 7F01FF00 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 054A34 7F01FF04 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 054A38 7F01FF08 3C018005 */ lui $at, %hi(D_80051D24) +/* 054A3C 7F01FF0C 460A4102 */ mul.s $f4, $f8, $f10 +/* 054A40 7F01FF10 4602003C */ c.lt.s $f0, $f2 +/* 054A44 7F01FF14 00000000 */ nop +/* 054A48 7F01FF18 45000011 */ bc1f .L7F01FF60 +/* 054A4C 7F01FF1C E60400A8 */ swc1 $f4, 0xa8($s0) +/* 054A50 7F01FF20 C4301D24 */ lwc1 $f16, %lo(D_80051D24)($at) +/* 054A54 7F01FF24 4600803C */ c.lt.s $f16, $f0 +/* 054A58 7F01FF28 00000000 */ nop +/* 054A5C 7F01FF2C 4502000D */ bc1fl .L7F01FF64 +/* 054A60 7F01FF30 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A64 7F01FF34 C60000B8 */ lwc1 $f0, 0xb8($s0) +/* 054A68 7F01FF38 4602003C */ c.lt.s $f0, $f2 +/* 054A6C 7F01FF3C 00000000 */ nop +/* 054A70 7F01FF40 45020008 */ bc1fl .L7F01FF64 +/* 054A74 7F01FF44 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A78 7F01FF48 4600803C */ c.lt.s $f16, $f0 +/* 054A7C 7F01FF4C 00000000 */ nop +/* 054A80 7F01FF50 45020004 */ bc1fl .L7F01FF64 +/* 054A84 7F01FF54 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A88 7F01FF58 E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 054A8C 7F01FF5C E60C00B0 */ swc1 $f12, 0xb0($s0) +.L7F01FF60: +/* 054A90 7F01FF60 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F01FF64: +/* 054A94 7F01FF64 C6320004 */ lwc1 $f18, 4($s1) +/* 054A98 7F01FF68 460E3201 */ sub.s $f8, $f6, $f14 +/* 054A9C 7F01FF6C 46089280 */ add.s $f10, $f18, $f8 +/* 054AA0 7F01FF70 10000002 */ b .L7F01FF7C +/* 054AA4 7F01FF74 E62A0004 */ swc1 $f10, 4($s1) +/* 054AA8 7F01FF78 C60E00AC */ lwc1 $f14, 0xac($s0) +.L7F01FF7C: +/* 054AAC 7F01FF7C 8FAD0044 */ lw $t5, 0x44($sp) +.L7F01FF80: +/* 054AB0 7F01FF80 24020001 */ li $v0, 1 +/* 054AB4 7F01FF84 E5AE0000 */ swc1 $f14, ($t5) +/* 054AB8 7F01FF88 8FAF0030 */ lw $t7, 0x30($sp) +/* 054ABC 7F01FF8C 8FB8003C */ lw $t8, 0x3c($sp) +/* 054AC0 7F01FF90 55E00007 */ bnezl $t7, .L7F01FFB0 +/* 054AC4 7F01FF94 8FBF0024 */ lw $ra, 0x24($sp) +/* 054AC8 7F01FF98 C7040000 */ lwc1 $f4, ($t8) +/* 054ACC 7F01FF9C E6240000 */ swc1 $f4, ($s1) +/* 054AD0 7F01FFA0 8FB9003C */ lw $t9, 0x3c($sp) +/* 054AD4 7F01FFA4 C7260008 */ lwc1 $f6, 8($t9) +/* 054AD8 7F01FFA8 E6260008 */ swc1 $f6, 8($s1) +/* 054ADC 7F01FFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01FFB0: +/* 054AE0 7F01FFB0 8FB0001C */ lw $s0, 0x1c($sp) +/* 054AE4 7F01FFB4 8FB10020 */ lw $s1, 0x20($sp) +/* 054AE8 7F01FFB8 03E00008 */ jr $ra +/* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051D10 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D14 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D18 +.word 0x3f666666 /*0.89999998*/ +glabel D_80051D1C +.word 0x3dcccccd /*0.1*/ +glabel D_80051D20 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D24 +.word 0xbdcccccd /*-0.1*/ +glabel D_80051D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D30 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D34 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D38 +.word 0x3f5f66f3 /*0.87266463*/ +glabel D_80051D3C +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D40 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D48 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D54 +.word 0x40c90fdb /*6.2831855*/ + +glabel D_jp80051D88 +.word 0x3f4ccccd + +glabel D_80051D58 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D5C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D60 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D64 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D68 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D6C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D70 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D74 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D78 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D7C +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D80 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D84 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D88 +.word 0x41aa6666 /*21.299999*/ + +/*.word 0x0*/ +.text +glabel sub_GAME_7F01FC10 +/* 054740 7F01FC10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 054744 7F01FC14 AFBF0024 */ sw $ra, 0x24($sp) +/* 054748 7F01FC18 AFB10020 */ sw $s1, 0x20($sp) +/* 05474C 7F01FC1C AFB0001C */ sw $s0, 0x1c($sp) +/* 054750 7F01FC20 AFA40038 */ sw $a0, 0x38($sp) +/* 054754 7F01FC24 AFA5003C */ sw $a1, 0x3c($sp) +/* 054758 7F01FC28 AFA70044 */ sw $a3, 0x44($sp) +/* 05475C 7F01FC2C 8C900004 */ lw $s0, 4($a0) +/* 054760 7F01FC30 AFA00030 */ sw $zero, 0x30($sp) +/* 054764 7F01FC34 44806000 */ mtc1 $zero, $f12 +/* 054768 7F01FC38 8E0F0018 */ lw $t7, 0x18($s0) +/* 05476C 7F01FC3C 00C08825 */ move $s1, $a2 +/* 054770 7F01FC40 00A01825 */ move $v1, $a1 +/* 054774 7F01FC44 8DF80014 */ lw $t8, 0x14($t7) +/* 054778 7F01FC48 46006386 */ mov.s $f14, $f12 +/* 05477C 7F01FC4C 530000CC */ beql $t8, $zero, .L7F01FF80 +/* 054780 7F01FC50 8FAD0044 */ lw $t5, 0x44($sp) +/* 054784 7F01FC54 82190007 */ lb $t9, 7($s0) +/* 054788 7F01FC58 24010004 */ li $at, 4 +/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10 +/* 054790 7F01FC60 00000000 */ nop +/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0) +/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2 +/* 0547A4 7F01FC74 00000000 */ nop +/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10 +/* 0547AC 7F01FC7C 00000000 */ nop +/* 0547B0 7F01FC80 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0547B4 7F01FC84 C4460000 */ lwc1 $f6, ($v0) +/* 0547B8 7F01FC88 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 0547BC 7F01FC8C 46062202 */ mul.s $f8, $f4, $f6 +/* 0547C0 7F01FC90 460A1481 */ sub.s $f18, $f2, $f10 +/* 0547C4 7F01FC94 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0547C8 7F01FC98 C4C60000 */ lwc1 $f6, ($a2) +/* 0547CC 7F01FC9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0547D0 7F01FCA0 46022003 */ div.s $f0, $f4, $f2 +/* 0547D4 7F01FCA4 C4C40004 */ lwc1 $f4, 4($a2) +/* 0547D8 7F01FCA8 46005202 */ mul.s $f8, $f10, $f0 +/* 0547DC 7F01FCAC 46083480 */ add.s $f18, $f6, $f8 +/* 0547E0 7F01FCB0 E4D20000 */ swc1 $f18, ($a2) +/* 0547E4 7F01FCB4 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0547E8 7F01FCB8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0547EC 7F01FCBC 46005182 */ mul.s $f6, $f10, $f0 +/* 0547F0 7F01FCC0 46062200 */ add.s $f8, $f4, $f6 +/* 0547F4 7F01FCC4 E4C80004 */ swc1 $f8, 4($a2) +/* 0547F8 7F01FCC8 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 0547FC 7F01FCCC 46005102 */ mul.s $f4, $f10, $f0 +/* 054800 7F01FCD0 46049180 */ add.s $f6, $f18, $f4 +/* 054804 7F01FCD4 E4C60008 */ swc1 $f6, 8($a2) +/* 054808 7F01FCD8 8FA80038 */ lw $t0, 0x38($sp) +/* 05480C 7F01FCDC C4480000 */ lwc1 $f8, ($v0) +/* 054810 7F01FCE0 C604003C */ lwc1 $f4, 0x3c($s0) +/* 054814 7F01FCE4 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 054818 7F01FCE8 460A4482 */ mul.s $f18, $f8, $f10 +/* 05481C 7F01FCEC C6080038 */ lwc1 $f8, 0x38($s0) +/* 054820 7F01FCF0 46122180 */ add.s $f6, $f4, $f18 +/* 054824 7F01FCF4 E606003C */ swc1 $f6, 0x3c($s0) +/* 054828 7F01FCF8 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 05482C 7F01FCFC 460A403C */ c.lt.s $f8, $f10 +/* 054830 7F01FD00 00000000 */ nop +/* 054834 7F01FD04 45000002 */ bc1f .L7F01FD10 +/* 054838 7F01FD08 00000000 */ nop +/* 05483C 7F01FD0C E60C0038 */ swc1 $f12, 0x38($s0) +.L7F01FD10: +/* 054840 7F01FD10 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 054844 7F01FD14 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 054848 7F01FD18 C4520000 */ lwc1 $f18, ($v0) +/* 05484C 7F01FD1C C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 054850 7F01FD20 C6280000 */ lwc1 $f8, ($s1) +/* 054854 7F01FD24 240A0001 */ li $t2, 1 +/* 054858 7F01FD28 46122182 */ mul.s $f6, $f4, $f18 +/* 05485C 7F01FD2C 02002025 */ move $a0, $s0 +/* 054860 7F01FD30 02203825 */ move $a3, $s1 +/* 054864 7F01FD34 46064280 */ add.s $f10, $f8, $f6 +/* 054868 7F01FD38 C6260008 */ lwc1 $f6, 8($s1) +/* 05486C 7F01FD3C E62A0000 */ swc1 $f10, ($s1) +/* 054870 7F01FD40 C4520000 */ lwc1 $f18, ($v0) +/* 054874 7F01FD44 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 054878 7F01FD48 46122202 */ mul.s $f8, $f4, $f18 +/* 05487C 7F01FD4C 46083280 */ add.s $f10, $f6, $f8 +/* 054880 7F01FD50 E62A0008 */ swc1 $f10, 8($s1) +/* 054884 7F01FD54 8E090018 */ lw $t1, 0x18($s0) +/* 054888 7F01FD58 8FA6003C */ lw $a2, 0x3c($sp) +/* 05488C 7F01FD5C 8D250014 */ lw $a1, 0x14($t1) +/* 054890 7F01FD60 AFA30028 */ sw $v1, 0x28($sp) +/* 054894 7F01FD64 0FC07D85 */ jal sub_GAME_7F01F614 +/* 054898 7F01FD68 AFAA0010 */ sw $t2, 0x10($sp) +/* 05489C 7F01FD6C 10400006 */ beqz $v0, .L7F01FD88 +/* 0548A0 7F01FD70 8FA30028 */ lw $v1, 0x28($sp) +/* 0548A4 7F01FD74 8E0B0018 */ lw $t3, 0x18($s0) +/* 0548A8 7F01FD78 240C0001 */ li $t4, 1 +/* 0548AC 7F01FD7C 02201825 */ move $v1, $s1 +/* 0548B0 7F01FD80 AD620014 */ sw $v0, 0x14($t3) +/* 0548B4 7F01FD84 AFAC0030 */ sw $t4, 0x30($sp) +.L7F01FD88: +/* 0548B8 7F01FD88 8E0D0014 */ lw $t5, 0x14($s0) +/* 0548BC 7F01FD8C 31AF1000 */ andi $t7, $t5, 0x1000 +/* 0548C0 7F01FD90 55E0007A */ bnezl $t7, .L7F01FF7C +/* 0548C4 7F01FD94 C60E00AC */ lwc1 $f14, 0xac($s0) +/* 0548C8 7F01FD98 8E180018 */ lw $t8, 0x18($s0) +/* 0548CC 7F01FD9C 8C650000 */ lw $a1, ($v1) +/* 0548D0 7F01FDA0 8C660008 */ lw $a2, 8($v1) +/* 0548D4 7F01FDA4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0548D8 7F01FDA8 8F040014 */ lw $a0, 0x14($t8) +/* 0548DC 7F01FDAC 8E190014 */ lw $t9, 0x14($s0) +/* 0548E0 7F01FDB0 44806000 */ mtc1 $zero, $f12 +/* 0548E4 7F01FDB4 46000386 */ mov.s $f14, $f0 +/* 0548E8 7F01FDB8 332E0001 */ andi $t6, $t9, 1 +/* 0548EC 7F01FDBC 11C00014 */ beqz $t6, .L7F01FE10 +/* 0548F0 7F01FDC0 E60000AC */ swc1 $f0, 0xac($s0) +/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp) +/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0) +/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0) +/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) +/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) +/* 054910 7F01FDE0 2401FFFE */ li $at, -2 +/* 054914 7F01FDE4 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054918 7F01FDE8 01215024 */ and $t2, $t1, $at +/* 05491C 7F01FDEC AE0A0014 */ sw $t2, 0x14($s0) +/* 054920 7F01FDF0 3C018005 */ lui $at, %hi(D_80051D10) +/* 054924 7F01FDF4 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 054928 7F01FDF8 C4241D10 */ lwc1 $f4, %lo(D_80051D10)($at) +/* 05492C 7F01FDFC 46041483 */ div.s $f18, $f2, $f4 +/* 054930 7F01FE00 E61200A4 */ swc1 $f18, 0xa4($s0) +/* 054934 7F01FE04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 054938 7F01FE08 10000055 */ b .L7F01FF60 +/* 05493C 7F01FE0C E4460038 */ swc1 $f6, 0x38($v0) +.L7F01FE10: +/* 054940 7F01FE10 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 054944 7F01FE14 260400A8 */ addiu $a0, $s0, 0xa8 +/* 054948 7F01FE18 260500B4 */ addiu $a1, $s0, 0xb4 +/* 05494C 7F01FE1C 46086032 */ c.eq.s $f12, $f8 +/* 054950 7F01FE20 3C068005 */ lui $a2, %hi(global_timer_delta) +/* 054954 7F01FE24 45000007 */ bc1f .L7F01FE44 +/* 054958 7F01FE28 00000000 */ nop +/* 05495C 7F01FE2C C60200AC */ lwc1 $f2, 0xac($s0) +/* 054960 7F01FE30 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054964 7F01FE34 4600103C */ c.lt.s $f2, $f0 +/* 054968 7F01FE38 00000000 */ nop +/* 05496C 7F01FE3C 45020013 */ bc1fl .L7F01FE8C +/* 054970 7F01FE40 4602003E */ c.le.s $f0, $f2 +.L7F01FE44: +/* 054974 7F01FE44 8CC68378 */ lw $a2, %lo(global_timer_delta)($a2) +/* 054978 7F01FE48 0FC15F51 */ jal sub_GAME_7F057D44 +/* 05497C 7F01FE4C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054980 7F01FE50 C60200AC */ lwc1 $f2, 0xac($s0) +/* 054984 7F01FE54 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054988 7F01FE58 44806000 */ mtc1 $zero, $f12 +/* 05498C 7F01FE5C C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054990 7F01FE60 4602003E */ c.le.s $f0, $f2 +/* 054994 7F01FE64 3C018005 */ lui $at, %hi(D_80051D14) +/* 054998 7F01FE68 45020008 */ bc1fl .L7F01FE8C +/* 05499C 7F01FE6C 4602003E */ c.le.s $f0, $f2 +/* 0549A0 7F01FE70 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 0549A4 7F01FE74 C42A1D14 */ lwc1 $f10, %lo(D_80051D14)($at) +/* 0549A8 7F01FE78 E60C00B4 */ swc1 $f12, 0xb4($s0) +/* 0549AC 7F01FE7C C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 0549B0 7F01FE80 460A1103 */ div.s $f4, $f2, $f10 +/* 0549B4 7F01FE84 E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0549B8 7F01FE88 4602003E */ c.le.s $f0, $f2 +.L7F01FE8C: +/* 0549BC 7F01FE8C 3C038005 */ lui $v1, %hi(clock_timer) +/* 0549C0 7F01FE90 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0549C4 7F01FE94 45020033 */ bc1fl .L7F01FF64 +/* 0549C8 7F01FE98 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0549CC 7F01FE9C 8C6B0000 */ lw $t3, ($v1) +/* 0549D0 7F01FEA0 00001025 */ move $v0, $zero +/* 0549D4 7F01FEA4 3C018005 */ lui $at, %hi(D_80051D18) +/* 0549D8 7F01FEA8 19600011 */ blez $t3, .L7F01FEF0 +/* 0549DC 7F01FEAC 00000000 */ nop +/* 0549E0 7F01FEB0 C4201D18 */ lwc1 $f0, %lo(D_80051D18)($at) +/* 0549E4 7F01FEB4 C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEB8: +/* 0549E8 7F01FEB8 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 0549EC 7F01FEBC 24420001 */ addiu $v0, $v0, 1 +/* 0549F0 7F01FEC0 46009182 */ mul.s $f6, $f18, $f0 +/* 0549F4 7F01FEC4 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 0549F8 7F01FEC8 46005102 */ mul.s $f4, $f10, $f0 +/* 0549FC 7F01FECC 46023200 */ add.s $f8, $f6, $f2 +/* 054A00 7F01FED0 46009182 */ mul.s $f6, $f18, $f0 +/* 054A04 7F01FED4 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 054A08 7F01FED8 E60800A4 */ swc1 $f8, 0xa4($s0) +/* 054A0C 7F01FEDC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 054A10 7F01FEE0 8C6C0000 */ lw $t4, ($v1) +/* 054A14 7F01FEE4 004C082A */ slt $at, $v0, $t4 +/* 054A18 7F01FEE8 5420FFF3 */ bnezl $at, .L7F01FEB8 +/* 054A1C 7F01FEEC C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEF0: +/* 054A20 7F01FEF0 3C018005 */ lui $at, %hi(D_80051D1C) +/* 054A24 7F01FEF4 C4221D1C */ lwc1 $f2, %lo(D_80051D1C)($at) +/* 054A28 7F01FEF8 3C018005 */ lui $at, %hi(D_80051D20) +/* 054A2C 7F01FEFC C42A1D20 */ lwc1 $f10, %lo(D_80051D20)($at) +/* 054A30 7F01FF00 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 054A34 7F01FF04 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 054A38 7F01FF08 3C018005 */ lui $at, %hi(D_80051D24) +/* 054A3C 7F01FF0C 460A4102 */ mul.s $f4, $f8, $f10 +/* 054A40 7F01FF10 4602003C */ c.lt.s $f0, $f2 +/* 054A44 7F01FF14 00000000 */ nop +/* 054A48 7F01FF18 45000011 */ bc1f .L7F01FF60 +/* 054A4C 7F01FF1C E60400A8 */ swc1 $f4, 0xa8($s0) +/* 054A50 7F01FF20 C4301D24 */ lwc1 $f16, %lo(D_80051D24)($at) +/* 054A54 7F01FF24 4600803C */ c.lt.s $f16, $f0 +/* 054A58 7F01FF28 00000000 */ nop +/* 054A5C 7F01FF2C 4502000D */ bc1fl .L7F01FF64 +/* 054A60 7F01FF30 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A64 7F01FF34 C60000B8 */ lwc1 $f0, 0xb8($s0) +/* 054A68 7F01FF38 4602003C */ c.lt.s $f0, $f2 +/* 054A6C 7F01FF3C 00000000 */ nop +/* 054A70 7F01FF40 45020008 */ bc1fl .L7F01FF64 +/* 054A74 7F01FF44 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A78 7F01FF48 4600803C */ c.lt.s $f16, $f0 +/* 054A7C 7F01FF4C 00000000 */ nop +/* 054A80 7F01FF50 45020004 */ bc1fl .L7F01FF64 +/* 054A84 7F01FF54 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A88 7F01FF58 E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 054A8C 7F01FF5C E60C00B0 */ swc1 $f12, 0xb0($s0) +.L7F01FF60: +/* 054A90 7F01FF60 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F01FF64: +/* 054A94 7F01FF64 C6320004 */ lwc1 $f18, 4($s1) +/* 054A98 7F01FF68 460E3201 */ sub.s $f8, $f6, $f14 +/* 054A9C 7F01FF6C 46089280 */ add.s $f10, $f18, $f8 +/* 054AA0 7F01FF70 10000002 */ b .L7F01FF7C +/* 054AA4 7F01FF74 E62A0004 */ swc1 $f10, 4($s1) +/* 054AA8 7F01FF78 C60E00AC */ lwc1 $f14, 0xac($s0) +.L7F01FF7C: +/* 054AAC 7F01FF7C 8FAD0044 */ lw $t5, 0x44($sp) +.L7F01FF80: +/* 054AB0 7F01FF80 24020001 */ li $v0, 1 +/* 054AB4 7F01FF84 E5AE0000 */ swc1 $f14, ($t5) +/* 054AB8 7F01FF88 8FAF0030 */ lw $t7, 0x30($sp) +/* 054ABC 7F01FF8C 8FB8003C */ lw $t8, 0x3c($sp) +/* 054AC0 7F01FF90 55E00007 */ bnezl $t7, .L7F01FFB0 +/* 054AC4 7F01FF94 8FBF0024 */ lw $ra, 0x24($sp) +/* 054AC8 7F01FF98 C7040000 */ lwc1 $f4, ($t8) +/* 054ACC 7F01FF9C E6240000 */ swc1 $f4, ($s1) +/* 054AD0 7F01FFA0 8FB9003C */ lw $t9, 0x3c($sp) +/* 054AD4 7F01FFA4 C7260008 */ lwc1 $f6, 8($t9) +/* 054AD8 7F01FFA8 E6260008 */ swc1 $f6, 8($s1) +/* 054ADC 7F01FFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01FFB0: +/* 054AE0 7F01FFB0 8FB0001C */ lw $s0, 0x1c($sp) +/* 054AE4 7F01FFB4 8FB10020 */ lw $s1, 0x20($sp) +/* 054AE8 7F01FFB8 03E00008 */ jr $ra +/* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif +#endif + + +#ifdef NONMATCHING +void get_next_available_guardID(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_next_available_guardID +/* 054AF0 7F01FFC0 3C048003 */ lui $a0, %hi(num_guards) +/* 054AF4 7F01FFC4 8C84CC68 */ lw $a0, %lo(num_guards)($a0) +/* 054AF8 7F01FFC8 00001825 */ move $v1, $zero +/* 054AFC 7F01FFCC 00001025 */ move $v0, $zero +/* 054B00 7F01FFD0 1880000F */ blez $a0, .L7F020010 +/* 054B04 7F01FFD4 3C058003 */ lui $a1, %hi(ptr_guard_data) +/* 054B08 7F01FFD8 00043100 */ sll $a2, $a0, 4 +/* 054B0C 7F01FFDC 00C43023 */ subu $a2, $a2, $a0 +/* 054B10 7F01FFE0 000630C0 */ sll $a2, $a2, 3 +/* 054B14 7F01FFE4 00C43023 */ subu $a2, $a2, $a0 +/* 054B18 7F01FFE8 00063080 */ sll $a2, $a2, 2 +/* 054B1C 7F01FFEC 8CA5CC64 */ lw $a1, %lo(ptr_guard_data)($a1) +.L7F01FFF0: +/* 054B20 7F01FFF0 8CAE001C */ lw $t6, 0x1c($a1) +/* 054B24 7F01FFF4 244201DC */ addiu $v0, $v0, 0x1dc +/* 054B28 7F01FFF8 0046082A */ slt $at, $v0, $a2 +/* 054B2C 7F01FFFC 15C00002 */ bnez $t6, .L7F020008 +/* 054B30 7F020000 00000000 */ nop +/* 054B34 7F020004 24630001 */ addiu $v1, $v1, 1 +.L7F020008: +/* 054B38 7F020008 1420FFF9 */ bnez $at, .L7F01FFF0 +/* 054B3C 7F02000C 24A501DC */ addiu $a1, $a1, 0x1dc +.L7F020010: +/* 054B40 7F020010 03E00008 */ jr $ra +/* 054B44 7F020014 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020018(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020018 +/* 054B48 7F020018 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 054B4C 7F02001C AFBF0014 */ sw $ra, 0x14($sp) +/* 054B50 7F020020 AFA40018 */ sw $a0, 0x18($sp) +/* 054B54 7F020024 0FC074BA */ jal get_007_health_mod +/* 054B58 7F020028 AFA5001C */ sw $a1, 0x1c($sp) +/* 054B5C 7F02002C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 054B60 7F020030 8FAE0018 */ lw $t6, 0x18($sp) +/* 054B64 7F020034 46040182 */ mul.s $f6, $f0, $f4 +/* 054B68 7F020038 E5C60100 */ swc1 $f6, 0x100($t6) +/* 054B6C 7F02003C 8FBF0014 */ lw $ra, 0x14($sp) +/* 054B70 7F020040 27BD0018 */ addiu $sp, $sp, 0x18 +/* 054B74 7F020044 03E00008 */ jr $ra +/* 054B78 7F020048 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02004C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02004C +/* 054B7C 7F02004C 03E00008 */ jr $ra +/* 054B80 7F020050 C4800100 */ lwc1 $f0, 0x100($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020054(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020054 +/* 054B84 7F020054 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 054B88 7F020058 AFBF0014 */ sw $ra, 0x14($sp) +/* 054B8C 7F02005C AFA40018 */ sw $a0, 0x18($sp) +/* 054B90 7F020060 0FC074BA */ jal get_007_health_mod +/* 054B94 7F020064 AFA5001C */ sw $a1, 0x1c($sp) +/* 054B98 7F020068 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 054B9C 7F02006C 8FA20018 */ lw $v0, 0x18($sp) +/* 054BA0 7F020070 46003202 */ mul.s $f8, $f6, $f0 +/* 054BA4 7F020074 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 054BA8 7F020078 46082281 */ sub.s $f10, $f4, $f8 +/* 054BAC 7F02007C E44A00FC */ swc1 $f10, 0xfc($v0) +/* 054BB0 7F020080 8FBF0014 */ lw $ra, 0x14($sp) +/* 054BB4 7F020084 27BD0018 */ addiu $sp, $sp, 0x18 +/* 054BB8 7F020088 03E00008 */ jr $ra +/* 054BBC 7F02008C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020090 +/* 054BC0 7F020090 44806000 */ mtc1 $zero, $f12 +/* 054BC4 7F020094 C48200FC */ lwc1 $f2, 0xfc($a0) +/* 054BC8 7F020098 460C103C */ c.lt.s $f2, $f12 +/* 054BCC 7F02009C 00000000 */ nop +/* 054BD0 7F0200A0 45020004 */ bc1fl .L7F0200B4 +/* 054BD4 7F0200A4 46006006 */ mov.s $f0, $f12 +/* 054BD8 7F0200A8 03E00008 */ jr $ra +/* 054BDC 7F0200AC 46001007 */ neg.s $f0, $f2 + +/* 054BE0 7F0200B0 46006006 */ mov.s $f0, $f12 +.L7F0200B4: +/* 054BE4 7F0200B4 03E00008 */ jr $ra +/* 054BE8 7F0200B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void init_GUARDdata_with_set_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_GUARDdata_with_set_values +/* 054BEC 7F0200BC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 054BF0 7F0200C0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 054BF4 7F0200C4 4487A000 */ mtc1 $a3, $f20 +/* 054BF8 7F0200C8 3C078003 */ lui $a3, %hi(num_guards) +/* 054BFC 7F0200CC 8CE7CC68 */ lw $a3, %lo(num_guards)($a3) +/* 054C00 7F0200D0 AFB30028 */ sw $s3, 0x28($sp) +/* 054C04 7F0200D4 AFB20024 */ sw $s2, 0x24($sp) +/* 054C08 7F0200D8 AFB10020 */ sw $s1, 0x20($sp) +/* 054C0C 7F0200DC AFB0001C */ sw $s0, 0x1c($sp) +/* 054C10 7F0200E0 00808825 */ move $s1, $a0 +/* 054C14 7F0200E4 00A09025 */ move $s2, $a1 +/* 054C18 7F0200E8 00C09825 */ move $s3, $a2 +/* 054C1C 7F0200EC AFBF002C */ sw $ra, 0x2c($sp) +/* 054C20 7F0200F0 00008025 */ move $s0, $zero +/* 054C24 7F0200F4 18E0000E */ blez $a3, .L7F020130 +/* 054C28 7F0200F8 00001025 */ move $v0, $zero +/* 054C2C 7F0200FC 3C058003 */ lui $a1, %hi(ptr_guard_data) +/* 054C30 7F020100 8CA5CC64 */ lw $a1, %lo(ptr_guard_data)($a1) +/* 054C34 7F020104 00002025 */ move $a0, $zero +/* 054C38 7F020108 00A01825 */ move $v1, $a1 +.L7F02010C: +/* 054C3C 7F02010C 8C6E001C */ lw $t6, 0x1c($v1) +/* 054C40 7F020110 24420001 */ addiu $v0, $v0, 1 +/* 054C44 7F020114 0047082A */ slt $at, $v0, $a3 +/* 054C48 7F020118 15C00003 */ bnez $t6, .L7F020128 +/* 054C4C 7F02011C 246301DC */ addiu $v1, $v1, 0x1dc +/* 054C50 7F020120 10000003 */ b .L7F020130 +/* 054C54 7F020124 00858021 */ addu $s0, $a0, $a1 +.L7F020128: +/* 054C58 7F020128 1420FFF8 */ bnez $at, .L7F02010C +/* 054C5C 7F02012C 248401DC */ addiu $a0, $a0, 0x1dc +.L7F020130: +/* 054C60 7F020130 240F0003 */ li $t7, 3 +/* 054C64 7F020134 A22F0000 */ sb $t7, ($s1) +/* 054C68 7F020138 AE300004 */ sw $s0, 4($s1) +/* 054C6C 7F02013C C6640000 */ lwc1 $f4, ($s3) +/* 054C70 7F020140 3C057F02 */ lui $a1, %hi(sub_GAME_7F01FC10) # $a1, 0x7f02 +/* 054C74 7F020144 24A5FC10 */ addiu $a1, %lo(sub_GAME_7F01FC10) # addiu $a1, $a1, -0x3f0 +/* 054C78 7F020148 E6240008 */ swc1 $f4, 8($s1) +/* 054C7C 7F02014C C6660004 */ lwc1 $f6, 4($s3) +/* 054C80 7F020150 02402025 */ move $a0, $s2 +/* 054C84 7F020154 E626000C */ swc1 $f6, 0xc($s1) +/* 054C88 7F020158 C6680008 */ lwc1 $f8, 8($s3) +/* 054C8C 7F02015C E6280010 */ swc1 $f8, 0x10($s1) +/* 054C90 7F020160 8FB80040 */ lw $t8, 0x40($sp) +/* 054C94 7F020164 0FC1BFD7 */ jal sub_GAME_7F06FF5C +/* 054C98 7F020168 AE380014 */ sw $t8, 0x14($s1) +/* 054C9C 7F02016C 2419000A */ li $t9, 10 +/* 054CA0 7F020170 A6590000 */ sh $t9, ($s2) +/* 054CA4 7F020174 AE500004 */ sw $s0, 4($s2) +/* 054CA8 7F020178 02402025 */ move $a0, $s2 +/* 054CAC 7F02017C 0FC1B303 */ jal setsuboffset +/* 054CB0 7F020180 02602825 */ move $a1, $s3 +/* 054CB4 7F020184 4405A000 */ mfc1 $a1, $f20 +/* 054CB8 7F020188 0FC1B34F */ jal setsubroty +/* 054CBC 7F02018C 02402025 */ move $a0, $s2 +/* 054CC0 7F020190 4480A000 */ mtc1 $zero, $f20 +/* 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 +/* 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 +/* 054CE0 7F0201B0 8C480000 */ lw $t0, ($v0) +/* 054CE4 7F0201B4 3C0B8005 */ lui $t3, %hi(global_timer) +/* 054CE8 7F0201B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 054CEC 7F0201BC A6080000 */ sh $t0, ($s0) +/* 054CF0 7F0201C0 8C490000 */ lw $t1, ($v0) +/* 054CF4 7F0201C4 44815000 */ mtc1 $at, $f10 +/* 054CF8 7F0201C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054CFC 7F0201CC 252A0001 */ addiu $t2, $t1, 1 +/* 054D00 7F0201D0 AC4A0000 */ sw $t2, ($v0) +/* 054D04 7F0201D4 A2000006 */ sb $zero, 6($s0) +/* 054D08 7F0201D8 A200000F */ sb $zero, 0xf($s0) +/* 054D0C 7F0201DC AE110018 */ sw $s1, 0x18($s0) +/* 054D10 7F0201E0 AE12001C */ sw $s2, 0x1c($s0) +/* 054D14 7F0201E4 AE000020 */ sw $zero, 0x20($s0) +/* 054D18 7F0201E8 A200000B */ sb $zero, 0xb($s0) +/* 054D1C 7F0201EC AE0000C8 */ sw $zero, 0xc8($s0) +/* 054D20 7F0201F0 A2000009 */ sb $zero, 9($s0) +/* 054D24 7F0201F4 8D6B837C */ lw $t3, %lo(global_timer)($t3) +/* 054D28 7F0201F8 44818000 */ mtc1 $at, $f16 +/* 054D2C 7F0201FC AE0000D4 */ sw $zero, 0xd4($s0) +/* 054D30 7F020200 E61400D8 */ swc1 $f20, 0xd8($s0) +/* 054D34 7F020204 E61400DC */ swc1 $f20, 0xdc($s0) +/* 054D38 7F020208 E61400E0 */ swc1 $f20, 0xe0($s0) +/* 054D3C 7F02020C AE0000E4 */ sw $zero, 0xe4($s0) +/* 054D40 7F020210 AE0000E8 */ sw $zero, 0xe8($s0) +/* 054D44 7F020214 AE0000F0 */ sw $zero, 0xf0($s0) +/* 054D48 7F020218 A200000A */ sb $zero, 0xa($s0) +/* 054D4C 7F02021C E614013C */ swc1 $f20, 0x13c($s0) +/* 054D50 7F020220 E61400FC */ swc1 $f20, 0xfc($s0) +/* 054D54 7F020224 E60A00D0 */ swc1 $f10, 0xd0($s0) +/* 054D58 7F020228 AE0B00CC */ sw $t3, 0xcc($s0) +/* 054D5C 7F02022C 0FC074BA */ jal get_007_health_mod +/* 054D60 7F020230 E61000EC */ swc1 $f16, 0xec($s0) +/* 054D64 7F020234 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 054D68 7F020238 44819000 */ mtc1 $at, $f18 +/* 054D6C 7F02023C 02202025 */ move $a0, $s1 +/* 054D70 7F020240 260500F8 */ addiu $a1, $s0, 0xf8 +/* 054D74 7F020244 46120102 */ mul.s $f4, $f0, $f18 +/* 054D78 7F020248 0FC10027 */ jal set_color_shading_from_tile +/* 054D7C 7F02024C E6040100 */ swc1 $f4, 0x100($s0) +/* 054D80 7F020250 920C00F8 */ lbu $t4, 0xf8($s0) +/* 054D84 7F020254 920D00F9 */ lbu $t5, 0xf9($s0) +/* 054D88 7F020258 920E00FA */ lbu $t6, 0xfa($s0) +/* 054D8C 7F02025C 920F00FB */ lbu $t7, 0xfb($s0) +/* 054D90 7F020260 241800FF */ li $t8, 255 +/* 054D94 7F020264 24190001 */ li $t9, 1 +/* 054D98 7F020268 A218000C */ sb $t8, 0xc($s0) +/* 054D9C 7F02026C AE000168 */ sw $zero, 0x168($s0) +/* 054DA0 7F020270 AE00016C */ sw $zero, 0x16c($s0) +/* 054DA4 7F020274 AE000170 */ sw $zero, 0x170($s0) +/* 054DA8 7F020278 AE000174 */ sw $zero, 0x174($s0) +/* 054DAC 7F02027C AE000178 */ sw $zero, 0x178($s0) +/* 054DB0 7F020280 AE00017C */ sw $zero, 0x17c($s0) +/* 054DB4 7F020284 AE190014 */ sw $t9, 0x14($s0) +/* 054DB8 7F020288 A6000012 */ sh $zero, 0x12($s0) +/* 054DBC 7F02028C E61400A4 */ swc1 $f20, 0xa4($s0) +/* 054DC0 7F020290 E61400A8 */ swc1 $f20, 0xa8($s0) +/* 054DC4 7F020294 E61400AC */ swc1 $f20, 0xac($s0) +/* 054DC8 7F020298 E61400B0 */ swc1 $f20, 0xb0($s0) +/* 054DCC 7F02029C E61400B4 */ swc1 $f20, 0xb4($s0) +/* 054DD0 7F0202A0 E61400B8 */ swc1 $f20, 0xb8($s0) +/* 054DD4 7F0202A4 A20C00F4 */ sb $t4, 0xf4($s0) +/* 054DD8 7F0202A8 A20D00F5 */ sb $t5, 0xf5($s0) +/* 054DDC 7F0202AC A20E00F6 */ sb $t6, 0xf6($s0) +/* 054DE0 7F0202B0 A20F00F7 */ sb $t7, 0xf7($s0) +/* 054DE4 7F0202B4 C6660000 */ lwc1 $f6, ($s3) +/* 054DE8 7F0202B8 2402FFFF */ li $v0, -1 +/* 054DEC 7F0202BC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 054DF0 7F0202C0 E60600BC */ swc1 $f6, 0xbc($s0) +/* 054DF4 7F0202C4 C6680004 */ lwc1 $f8, 4($s3) +/* 054DF8 7F0202C8 44818000 */ mtc1 $at, $f16 +/* 054DFC 7F0202CC 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 054E00 7F0202D0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 054E04 7F0202D4 C66A0008 */ lwc1 $f10, 8($s3) +/* 054E08 7F0202D8 A2000007 */ sb $zero, 7($s0) +/* 054E0C 7F0202DC A2000008 */ sb $zero, 8($s0) +/* 054E10 7F0202E0 E60A00C4 */ swc1 $f10, 0xc4($s0) +/* 054E14 7F0202E4 8FA80044 */ lw $t0, 0x44($sp) +/* 054E18 7F0202E8 44819000 */ mtc1 $at, $f18 +/* 054E1C 7F0202EC 26250008 */ addiu $a1, $s1, 8 +/* 054E20 7F0202F0 A6000108 */ sh $zero, 0x108($s0) +/* 054E24 7F0202F4 A602010A */ sh $v0, 0x10a($s0) +/* 054E28 7F0202F8 A200010C */ sb $zero, 0x10c($s0) +/* 054E2C 7F0202FC A200010D */ sb $zero, 0x10d($s0) +/* 054E30 7F020300 A200010E */ sb $zero, 0x10e($s0) +/* 054E34 7F020304 A200010F */ sb $zero, 0x10f($s0) +/* 054E38 7F020308 AE000110 */ sw $zero, 0x110($s0) +/* 054E3C 7F02030C A6020114 */ sh $v0, 0x114($s0) +/* 054E40 7F020310 A6020118 */ sh $v0, 0x118($s0) +/* 054E44 7F020314 A602011A */ sh $v0, 0x11a($s0) +/* 054E48 7F020318 A6020116 */ sh $v0, 0x116($s0) +/* 054E4C 7F02031C A2020180 */ sb $v0, 0x180($s0) +/* 054E50 7F020320 A20201AC */ sb $v0, 0x1ac($s0) +/* 054E54 7F020324 A2000004 */ sb $zero, 4($s0) +/* 054E58 7F020328 A2000005 */ sb $zero, 5($s0) +/* 054E5C 7F02032C A2000010 */ sb $zero, 0x10($s0) +/* 054E60 7F020330 A2000002 */ sb $zero, 2($s0) +/* 054E64 7F020334 A2000003 */ sb $zero, 3($s0) +/* 054E68 7F020338 A200000D */ sb $zero, 0xd($s0) +/* 054E6C 7F02033C A2020011 */ sb $v0, 0x11($s0) +/* 054E70 7F020340 E6140140 */ swc1 $f20, 0x140($s0) +/* 054E74 7F020344 E6140144 */ swc1 $f20, 0x144($s0) +/* 054E78 7F020348 E6140148 */ swc1 $f20, 0x148($s0) +/* 054E7C 7F02034C E614014C */ swc1 $f20, 0x14c($s0) +/* 054E80 7F020350 E6140150 */ swc1 $f20, 0x150($s0) +/* 054E84 7F020354 E6140154 */ swc1 $f20, 0x154($s0) +/* 054E88 7F020358 E6140158 */ swc1 $f20, 0x158($s0) +/* 054E8C 7F02035C E614015C */ swc1 $f20, 0x15c($s0) +/* 054E90 7F020360 A200000E */ sb $zero, 0xe($s0) +/* 054E94 7F020364 AE000160 */ sw $zero, 0x160($s0) +/* 054E98 7F020368 AE000164 */ sw $zero, 0x164($s0) +/* 054E9C 7F02036C AE0001D8 */ sw $zero, 0x1d8($s0) +/* 054EA0 7F020370 00A03025 */ move $a2, $a1 +/* 054EA4 7F020374 02402025 */ move $a0, $s2 +/* 054EA8 7F020378 260700AC */ addiu $a3, $s0, 0xac +/* 054EAC 7F02037C E6100024 */ swc1 $f16, 0x24($s0) +/* 054EB0 7F020380 AE080104 */ sw $t0, 0x104($s0) +/* 054EB4 7F020384 0FC07F04 */ jal sub_GAME_7F01FC10 +/* 054EB8 7F020388 E6120028 */ swc1 $f18, 0x28($s0) +/* 054EBC 7F02038C 0FC08365 */ jal sub_GAME_7F020D94 +/* 054EC0 7F020390 02002025 */ move $a0, $s0 +/* 054EC4 7F020394 8FBF002C */ lw $ra, 0x2c($sp) +/* 054EC8 7F020398 02201025 */ move $v0, $s1 +/* 054ECC 7F02039C 8FB10020 */ lw $s1, 0x20($sp) +/* 054ED0 7F0203A0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 054ED4 7F0203A4 8FB0001C */ lw $s0, 0x1c($sp) +/* 054ED8 7F0203A8 8FB20024 */ lw $s2, 0x24($sp) +/* 054EDC 7F0203AC 8FB30028 */ lw $s3, 0x28($sp) +/* 054EE0 7F0203B0 03E00008 */ jr $ra +/* 054EE4 7F0203B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void replace_GUARDdata_with_actual_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel replace_GUARDdata_with_actual_values +/* 054EE8 7F0203B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 054EEC 7F0203BC AFBF001C */ sw $ra, 0x1c($sp) +/* 054EF0 7F0203C0 AFA40020 */ sw $a0, 0x20($sp) +/* 054EF4 7F0203C4 AFA50024 */ sw $a1, 0x24($sp) +/* 054EF8 7F0203C8 AFA60028 */ sw $a2, 0x28($sp) +/* 054EFC 7F0203CC 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 054F00 7F0203D0 AFA7002C */ sw $a3, 0x2c($sp) +/* 054F04 7F0203D4 1040000A */ beqz $v0, .L7F020400 +/* 054F08 7F0203D8 00402025 */ move $a0, $v0 +/* 054F0C 7F0203DC 8FAE002C */ lw $t6, 0x2c($sp) +/* 054F10 7F0203E0 8FAF0030 */ lw $t7, 0x30($sp) +/* 054F14 7F0203E4 8FA50020 */ lw $a1, 0x20($sp) +/* 054F18 7F0203E8 8FA60024 */ lw $a2, 0x24($sp) +/* 054F1C 7F0203EC 8FA70028 */ lw $a3, 0x28($sp) +/* 054F20 7F0203F0 AFAE0010 */ sw $t6, 0x10($sp) +/* 054F24 7F0203F4 0FC0802F */ jal init_GUARDdata_with_set_values +/* 054F28 7F0203F8 AFAF0014 */ sw $t7, 0x14($sp) +/* 054F2C 7F0203FC 00402025 */ move $a0, $v0 +.L7F020400: +/* 054F30 7F020400 8FBF001C */ lw $ra, 0x1c($sp) +/* 054F34 7F020404 27BD0020 */ addiu $sp, $sp, 0x20 +/* 054F38 7F020408 00801025 */ move $v0, $a0 +/* 054F3C 7F02040C 03E00008 */ jr $ra +/* 054F40 7F020410 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void disable_sounds_attached_to_player_then_something(void) { + +} +#else +GLOBAL_ASM( +.text +glabel disable_sounds_attached_to_player_then_something +/* 054F44 7F020414 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 054F48 7F020418 AFBF0024 */ sw $ra, 0x24($sp) +/* 054F4C 7F02041C AFB20020 */ sw $s2, 0x20($sp) +/* 054F50 7F020420 AFB1001C */ sw $s1, 0x1c($sp) +/* 054F54 7F020424 AFB00018 */ sw $s0, 0x18($sp) +/* 054F58 7F020428 8C920004 */ lw $s2, 4($a0) +/* 054F5C 7F02042C 00808025 */ move $s0, $a0 +/* 054F60 7F020430 8E4E001C */ lw $t6, 0x1c($s2) +/* 054F64 7F020434 AFAE0028 */ sw $t6, 0x28($sp) +/* 054F68 7F020438 8E450168 */ lw $a1, 0x168($s2) +/* 054F6C 7F02043C 50A00008 */ beql $a1, $zero, .L7F020460 +/* 054F70 7F020440 8E44016C */ lw $a0, 0x16c($s2) +/* 054F74 7F020444 0C00237C */ jal sfxGetArg0Unk3F +/* 054F78 7F020448 00A02025 */ move $a0, $a1 +/* 054F7C 7F02044C 50400004 */ beql $v0, $zero, .L7F020460 +/* 054F80 7F020450 8E44016C */ lw $a0, 0x16c($s2) +/* 054F84 7F020454 0C002408 */ jal sfxDeactivate +/* 054F88 7F020458 8E440168 */ lw $a0, 0x168($s2) +/* 054F8C 7F02045C 8E44016C */ lw $a0, 0x16c($s2) +.L7F020460: +/* 054F90 7F020460 50800008 */ beql $a0, $zero, .L7F020484 +/* 054F94 7F020464 8E440170 */ lw $a0, 0x170($s2) +/* 054F98 7F020468 0C00237C */ jal sfxGetArg0Unk3F +/* 054F9C 7F02046C 00000000 */ nop +/* 054FA0 7F020470 50400004 */ beql $v0, $zero, .L7F020484 +/* 054FA4 7F020474 8E440170 */ lw $a0, 0x170($s2) +/* 054FA8 7F020478 0C002408 */ jal sfxDeactivate +/* 054FAC 7F02047C 8E44016C */ lw $a0, 0x16c($s2) +/* 054FB0 7F020480 8E440170 */ lw $a0, 0x170($s2) +.L7F020484: +/* 054FB4 7F020484 50800008 */ beql $a0, $zero, .L7F0204A8 +/* 054FB8 7F020488 8E440174 */ lw $a0, 0x174($s2) +/* 054FBC 7F02048C 0C00237C */ jal sfxGetArg0Unk3F +/* 054FC0 7F020490 00000000 */ nop +/* 054FC4 7F020494 50400004 */ beql $v0, $zero, .L7F0204A8 +/* 054FC8 7F020498 8E440174 */ lw $a0, 0x174($s2) +/* 054FCC 7F02049C 0C002408 */ jal sfxDeactivate +/* 054FD0 7F0204A0 8E440170 */ lw $a0, 0x170($s2) +/* 054FD4 7F0204A4 8E440174 */ lw $a0, 0x174($s2) +.L7F0204A8: +/* 054FD8 7F0204A8 10800007 */ beqz $a0, .L7F0204C8 +/* 054FDC 7F0204AC 00000000 */ nop +/* 054FE0 7F0204B0 0C00237C */ jal sfxGetArg0Unk3F +/* 054FE4 7F0204B4 00000000 */ nop +/* 054FE8 7F0204B8 10400003 */ beqz $v0, .L7F0204C8 +/* 054FEC 7F0204BC 00000000 */ nop +/* 054FF0 7F0204C0 0C002408 */ jal sfxDeactivate +/* 054FF4 7F0204C4 8E440174 */ lw $a0, 0x174($s2) +.L7F0204C8: +/* 054FF8 7F0204C8 0FC1437A */ jal sub_GAME_7F050DE8 +/* 054FFC 7F0204CC 8FA40028 */ lw $a0, 0x28($sp) +/* 055000 7F0204D0 0FC0F863 */ jal sub_GAME_7F03E18C +/* 055004 7F0204D4 02002025 */ move $a0, $s0 +/* 055008 7F0204D8 8E040020 */ lw $a0, 0x20($s0) +/* 05500C 7F0204DC 10800009 */ beqz $a0, .L7F020504 +/* 055010 7F0204E0 00000000 */ nop +.L7F0204E4: +/* 055014 7F0204E4 8C910004 */ lw $s1, 4($a0) +/* 055018 7F0204E8 0FC13011 */ jal sub_GAME_7F04C044 +/* 05501C 7F0204EC 8C900024 */ lw $s0, 0x24($a0) +/* 055020 7F0204F0 02202025 */ move $a0, $s1 +/* 055024 7F0204F4 0FC10409 */ jal sub_GAME_7F041024 +/* 055028 7F0204F8 24050001 */ li $a1, 1 +/* 05502C 7F0204FC 1600FFF9 */ bnez $s0, .L7F0204E4 +/* 055030 7F020500 02002025 */ move $a0, $s0 +.L7F020504: +/* 055034 7F020504 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 055038 7F020508 8FA40028 */ lw $a0, 0x28($sp) +/* 05503C 7F02050C 8E440020 */ lw $a0, 0x20($s2) +/* 055040 7F020510 240FFFFF */ li $t7, -1 +/* 055044 7F020514 AE40001C */ sw $zero, 0x1c($s2) +/* 055048 7F020518 10800003 */ beqz $a0, .L7F020528 +/* 05504C 7F02051C A64F0000 */ sh $t7, ($s2) +/* 055050 7F020520 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 055054 7F020524 00000000 */ nop +.L7F020528: +/* 055058 7F020528 8FBF0024 */ lw $ra, 0x24($sp) +/* 05505C 7F02052C 8FB00018 */ lw $s0, 0x18($sp) +/* 055060 7F020530 8FB1001C */ lw $s1, 0x1c($sp) +/* 055064 7F020534 8FB20020 */ lw $s2, 0x20($sp) +/* 055068 7F020538 03E00008 */ jr $ra +/* 05506C 7F02053C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void animation_speed_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel animation_speed_related +/* 055070 7F020540 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 055074 7F020544 AFB30028 */ sw $s3, 0x28($sp) +/* 055078 7F020548 3C138003 */ lui $s3, %hi(animation_rate) +/* 05507C 7F02054C 2673C900 */ addiu $s3, %lo(animation_rate) # addiu $s3, $s3, -0x3700 +/* 055080 7F020550 E66C0000 */ swc1 $f12, ($s3) +/* 055084 7F020554 3C028003 */ lui $v0, %hi(num_guards) +/* 055088 7F020558 8C42CC68 */ lw $v0, %lo(num_guards)($v0) +/* 05508C 7F02055C AFB10020 */ sw $s1, 0x20($sp) +/* 055090 7F020560 AFBF002C */ sw $ra, 0x2c($sp) +/* 055094 7F020564 AFB20024 */ sw $s2, 0x24($sp) +/* 055098 7F020568 AFB0001C */ sw $s0, 0x1c($sp) +/* 05509C 7F02056C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0550A0 7F020570 18400014 */ blez $v0, .L7F0205C4 +/* 0550A4 7F020574 00008825 */ move $s1, $zero +/* 0550A8 7F020578 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 0550AC 7F02057C 3C128003 */ lui $s2, %hi(ptr_guard_data) +/* 0550B0 7F020580 4481A000 */ mtc1 $at, $f20 +/* 0550B4 7F020584 2652CC64 */ addiu $s2, %lo(ptr_guard_data) # addiu $s2, $s2, -0x339c +/* 0550B8 7F020588 00008025 */ move $s0, $zero +.L7F02058C: +/* 0550BC 7F02058C 8E4E0000 */ lw $t6, ($s2) +/* 0550C0 7F020590 01D07821 */ addu $t7, $t6, $s0 +/* 0550C4 7F020594 8DE4001C */ lw $a0, 0x1c($t7) +/* 0550C8 7F020598 50800007 */ beql $a0, $zero, .L7F0205B8 +/* 0550CC 7F02059C 26310001 */ addiu $s1, $s1, 1 +/* 0550D0 7F0205A0 4406A000 */ mfc1 $a2, $f20 +/* 0550D4 7F0205A4 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 0550D8 7F0205A8 8E650000 */ lw $a1, ($s3) +/* 0550DC 7F0205AC 3C028003 */ lui $v0, %hi(num_guards) +/* 0550E0 7F0205B0 8C42CC68 */ lw $v0, %lo(num_guards)($v0) +/* 0550E4 7F0205B4 26310001 */ addiu $s1, $s1, 1 +.L7F0205B8: +/* 0550E8 7F0205B8 0222082A */ slt $at, $s1, $v0 +/* 0550EC 7F0205BC 1420FFF3 */ bnez $at, .L7F02058C +/* 0550F0 7F0205C0 261001DC */ addiu $s0, $s0, 0x1dc +.L7F0205C4: +/* 0550F4 7F0205C4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0550F8 7F0205C8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0550FC 7F0205CC 8FB0001C */ lw $s0, 0x1c($sp) +/* 055100 7F0205D0 8FB10020 */ lw $s1, 0x20($sp) +/* 055104 7F0205D4 8FB20024 */ lw $s2, 0x24($sp) +/* 055108 7F0205D8 8FB30028 */ lw $s3, 0x28($sp) +/* 05510C 7F0205DC 03E00008 */ jr $ra +/* 055110 7F0205E0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +f32 get_animation_rate(void) { + return animation_rate; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0205F0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0205F0 +/* 055120 7F0205F0 8082000E */ lb $v0, 0xe($a0) +/* 055124 7F0205F4 28410002 */ slti $at, $v0, 2 +/* 055128 7F0205F8 5420002D */ bnezl $at, .L7F0206B0 +/* 05512C 7F0205FC C4920150 */ lwc1 $f18, 0x150($a0) +/* 055130 7F020600 44823000 */ mtc1 $v0, $f6 +/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055138 7F020608 44811000 */ mtc1 $at, $f2 +/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6 +/* 055140 7F020610 3C018005 */ lui $at, %hi(global_timer_delta) +/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8 +/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0 +/* 055150 7F020620 00000000 */ nop +/* 055154 7F020624 45020003 */ bc1fl .L7F020634 +/* 055158 7F020628 C4820140 */ lwc1 $f2, 0x140($a0) +/* 05515C 7F02062C 46001006 */ mov.s $f0, $f2 +/* 055160 7F020630 C4820140 */ lwc1 $f2, 0x140($a0) +.L7F020634: +/* 055164 7F020634 C48A0150 */ lwc1 $f10, 0x150($a0) +/* 055168 7F020638 C48C0144 */ lwc1 $f12, 0x144($a0) +/* 05516C 7F02063C C4880154 */ lwc1 $f8, 0x154($a0) +/* 055170 7F020640 46025481 */ sub.s $f18, $f10, $f2 +/* 055174 7F020644 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055178 7F020648 C490014C */ lwc1 $f16, 0x14c($a0) +/* 05517C 7F02064C 460C4281 */ sub.s $f10, $f8, $f12 +/* 055180 7F020650 46009182 */ mul.s $f6, $f18, $f0 +/* 055184 7F020654 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 055188 7F020658 808E000E */ lb $t6, 0xe($a0) +/* 05518C 7F02065C 46005482 */ mul.s $f18, $f10, $f0 +/* 055190 7F020660 46061100 */ add.s $f4, $f2, $f6 +/* 055194 7F020664 46126180 */ add.s $f6, $f12, $f18 +/* 055198 7F020668 E4840140 */ swc1 $f4, 0x140($a0) +/* 05519C 7F02066C C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551A0 7F020670 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551A4 7F020674 460E2201 */ sub.s $f8, $f4, $f14 +/* 0551A8 7F020678 C486015C */ lwc1 $f6, 0x15c($a0) +/* 0551AC 7F02067C 46103101 */ sub.s $f4, $f6, $f16 +/* 0551B0 7F020680 46004282 */ mul.s $f10, $f8, $f0 +/* 0551B4 7F020684 00000000 */ nop +/* 0551B8 7F020688 46002202 */ mul.s $f8, $f4, $f0 +/* 0551BC 7F02068C 460A7480 */ add.s $f18, $f14, $f10 +/* 0551C0 7F020690 46088280 */ add.s $f10, $f16, $f8 +/* 0551C4 7F020694 E4920148 */ swc1 $f18, 0x148($a0) +/* 0551C8 7F020698 E48A014C */ swc1 $f10, 0x14c($a0) +/* 0551CC 7F02069C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0551D0 7F0206A0 01CFC023 */ subu $t8, $t6, $t7 +/* 0551D4 7F0206A4 03E00008 */ jr $ra +/* 0551D8 7F0206A8 A098000E */ sb $t8, 0xe($a0) + +/* 0551DC 7F0206AC C4920150 */ lwc1 $f18, 0x150($a0) +.L7F0206B0: +/* 0551E0 7F0206B0 C4860154 */ lwc1 $f6, 0x154($a0) +/* 0551E4 7F0206B4 C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551E8 7F0206B8 C488015C */ lwc1 $f8, 0x15c($a0) +/* 0551EC 7F0206BC E4920140 */ swc1 $f18, 0x140($a0) +/* 0551F0 7F0206C0 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551F4 7F0206C4 E4840148 */ swc1 $f4, 0x148($a0) +/* 0551F8 7F0206C8 E488014C */ swc1 $f8, 0x14c($a0) +/* 0551FC 7F0206CC 03E00008 */ jr $ra +/* 055200 7F0206D0 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0205F0 +/* 055120 7F0205F0 8082000E */ lb $v0, 0xe($a0) +/* 055124 7F0205F4 28410002 */ slti $at, $v0, 2 +/* 055128 7F0205F8 5420002D */ bnezl $at, .L7F0206B0 +/* 05512C 7F0205FC C4920150 */ lwc1 $f18, 0x150($a0) +/* 055130 7F020600 44823000 */ mtc1 $v0, $f6 +/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055138 7F020608 44811000 */ mtc1 $at, $f2 +/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6 +/* 055140 7F020610 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(jp_global_timer_delta)($at) +/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8 +/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0 +/* 055150 7F020620 00000000 */ nop +/* 055154 7F020624 45020003 */ bc1fl .L7F020634 +/* 055158 7F020628 C4820140 */ lwc1 $f2, 0x140($a0) +/* 05515C 7F02062C 46001006 */ mov.s $f0, $f2 +/* 055160 7F020630 C4820140 */ lwc1 $f2, 0x140($a0) +.L7F020634: +/* 055164 7F020634 C48A0150 */ lwc1 $f10, 0x150($a0) +/* 055168 7F020638 C48C0144 */ lwc1 $f12, 0x144($a0) +/* 05516C 7F02063C C4880154 */ lwc1 $f8, 0x154($a0) +/* 055170 7F020640 46025481 */ sub.s $f18, $f10, $f2 +/* 055174 7F020644 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055178 7F020648 C490014C */ lwc1 $f16, 0x14c($a0) +/* 05517C 7F02064C 460C4281 */ sub.s $f10, $f8, $f12 +/* 055180 7F020650 46009182 */ mul.s $f6, $f18, $f0 +/* 055184 7F020654 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 055188 7F020658 808E000E */ lb $t6, 0xe($a0) +/* 05518C 7F02065C 46005482 */ mul.s $f18, $f10, $f0 +/* 055190 7F020660 46061100 */ add.s $f4, $f2, $f6 +/* 055194 7F020664 46126180 */ add.s $f6, $f12, $f18 +/* 055198 7F020668 E4840140 */ swc1 $f4, 0x140($a0) +/* 05519C 7F02066C C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551A0 7F020670 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551A4 7F020674 460E2201 */ sub.s $f8, $f4, $f14 +/* 0551A8 7F020678 C486015C */ lwc1 $f6, 0x15c($a0) +/* 0551AC 7F02067C 46103101 */ sub.s $f4, $f6, $f16 +/* 0551B0 7F020680 46004282 */ mul.s $f10, $f8, $f0 +/* 0551B4 7F020684 00000000 */ nop +/* 0551B8 7F020688 46002202 */ mul.s $f8, $f4, $f0 +/* 0551BC 7F02068C 460A7480 */ add.s $f18, $f14, $f10 +/* 0551C0 7F020690 46088280 */ add.s $f10, $f16, $f8 +/* 0551C4 7F020694 E4920148 */ swc1 $f18, 0x148($a0) +/* 0551C8 7F020698 E48A014C */ swc1 $f10, 0x14c($a0) +/* 0551CC 7F02069C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0551D0 7F0206A0 01CFC023 */ subu $t8, $t6, $t7 +/* 0551D4 7F0206A4 03E00008 */ jr $ra +/* 0551D8 7F0206A8 A098000E */ sb $t8, 0xe($a0) + +/* 0551DC 7F0206AC C4920150 */ lwc1 $f18, 0x150($a0) +.L7F0206B0: +/* 0551E0 7F0206B0 C4860154 */ lwc1 $f6, 0x154($a0) +/* 0551E4 7F0206B4 C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551E8 7F0206B8 C488015C */ lwc1 $f8, 0x15c($a0) +/* 0551EC 7F0206BC E4920140 */ swc1 $f18, 0x140($a0) +/* 0551F0 7F0206C0 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551F4 7F0206C4 E4840148 */ swc1 $f4, 0x148($a0) +/* 0551F8 7F0206C8 E488014C */ swc1 $f8, 0x14c($a0) +/* 0551FC 7F0206CC 03E00008 */ jr $ra +/* 055200 7F0206D0 00000000 */ nop +) +#endif +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0206D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0206D4 +/* 055204 7F0206D4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 055208 7F0206D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05520C 7F0206DC 808E0011 */ lb $t6, 0x11($a0) +/* 055210 7F0206E0 05C30029 */ bgezl $t6, .L7F020788 +/* 055214 7F0206E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 055218 7F0206E8 94980012 */ lhu $t8, 0x12($a0) +/* 05521C 7F0206EC 240F0001 */ li $t7, 1 +/* 055220 7F0206F0 A08F0011 */ sb $t7, 0x11($a0) +/* 055224 7F0206F4 33190FFF */ andi $t9, $t8, 0xfff +/* 055228 7F0206F8 A4990012 */ sh $t9, 0x12($a0) +/* 05522C 7F0206FC 0C002914 */ jal get_random_value +/* 055230 7F020700 AFA40018 */ sw $a0, 0x18($sp) +/* 055234 7F020704 24010003 */ li $at, 3 +/* 055238 7F020708 0041001B */ divu $zero, $v0, $at +/* 05523C 7F02070C 00001810 */ mfhi $v1 +/* 055240 7F020710 8FA40018 */ lw $a0, 0x18($sp) +/* 055244 7F020714 14600005 */ bnez $v1, .L7F02072C +/* 055248 7F020718 24010001 */ li $at, 1 +/* 05524C 7F02071C 94880012 */ lhu $t0, 0x12($a0) +/* 055250 7F020720 35091000 */ ori $t1, $t0, 0x1000 +/* 055254 7F020724 10000006 */ b .L7F020740 +/* 055258 7F020728 A4890012 */ sh $t1, 0x12($a0) +.L7F02072C: +/* 05525C 7F02072C 14610004 */ bne $v1, $at, .L7F020740 +/* 055260 7F020730 00000000 */ nop +/* 055264 7F020734 948A0012 */ lhu $t2, 0x12($a0) +/* 055268 7F020738 354B2000 */ ori $t3, $t2, 0x2000 +/* 05526C 7F02073C A48B0012 */ sh $t3, 0x12($a0) +.L7F020740: +/* 055270 7F020740 0C002914 */ jal get_random_value +/* 055274 7F020744 AFA40018 */ sw $a0, 0x18($sp) +/* 055278 7F020748 24010003 */ li $at, 3 +/* 05527C 7F02074C 0041001B */ divu $zero, $v0, $at +/* 055280 7F020750 00001810 */ mfhi $v1 +/* 055284 7F020754 8FA40018 */ lw $a0, 0x18($sp) +/* 055288 7F020758 14600005 */ bnez $v1, .L7F020770 +/* 05528C 7F02075C 24010001 */ li $at, 1 +/* 055290 7F020760 948C0012 */ lhu $t4, 0x12($a0) +/* 055294 7F020764 358D4000 */ ori $t5, $t4, 0x4000 +/* 055298 7F020768 10000006 */ b .L7F020784 +/* 05529C 7F02076C A48D0012 */ sh $t5, 0x12($a0) +.L7F020770: +/* 0552A0 7F020770 54610005 */ bnel $v1, $at, .L7F020788 +/* 0552A4 7F020774 8FBF0014 */ lw $ra, 0x14($sp) +/* 0552A8 7F020778 948E0012 */ lhu $t6, 0x12($a0) +/* 0552AC 7F02077C 35CF8000 */ ori $t7, $t6, 0x8000 +/* 0552B0 7F020780 A48F0012 */ sh $t7, 0x12($a0) +.L7F020784: +/* 0552B4 7F020784 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020788: +/* 0552B8 7F020788 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0552BC 7F02078C 03E00008 */ jr $ra +/* 0552C0 7F020790 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020794(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020794 +/* 0552C4 7F020794 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0552C8 7F020798 AFBF0014 */ sw $ra, 0x14($sp) +/* 0552CC 7F02079C 808E0011 */ lb $t6, 0x11($a0) +/* 0552D0 7F0207A0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0552D4 7F0207A4 44810000 */ mtc1 $at, $f0 +/* 0552D8 7F0207A8 448E2000 */ mtc1 $t6, $f4 +/* 0552DC 7F0207AC 3C018005 */ lui $at, %hi(D_80051D2C) +/* 0552E0 7F0207B0 468020A0 */ cvt.s.w $f2, $f4 +/* 0552E4 7F0207B4 4600103C */ c.lt.s $f2, $f0 +/* 0552E8 7F0207B8 00000000 */ nop +/* 0552EC 7F0207BC 4502000D */ bc1fl .L7F0207F4 +/* 0552F0 7F0207C0 46001481 */ sub.s $f18, $f2, $f0 +/* 0552F4 7F0207C4 3C018005 */ lui $at, %hi(D_80051D28) +/* 0552F8 7F0207C8 C4261D28 */ lwc1 $f6, %lo(D_80051D28)($at) +/* 0552FC 7F0207CC 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 055300 7F0207D0 44815000 */ mtc1 $at, $f10 +/* 055304 7F0207D4 46061202 */ mul.s $f8, $f2, $f6 +/* 055308 7F0207D8 00000000 */ nop +/* 05530C 7F0207DC 460A4402 */ mul.s $f16, $f8, $f10 +/* 055310 7F0207E0 0FC15FAB */ jal sinf +/* 055314 7F0207E4 46008303 */ div.s $f12, $f16, $f0 +/* 055318 7F0207E8 1000000F */ b .L7F020828 +/* 05531C 7F0207EC 46000086 */ mov.s $f2, $f0 +/* 055320 7F0207F0 46001481 */ sub.s $f18, $f2, $f0 +.L7F0207F4: +/* 055324 7F0207F4 C4241D2C */ lwc1 $f4, %lo(D_80051D2C)($at) +/* 055328 7F0207F8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05532C 7F0207FC 44814000 */ mtc1 $at, $f8 +/* 055330 7F020800 46049182 */ mul.s $f6, $f18, $f4 +/* 055334 7F020804 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 055338 7F020808 44818000 */ mtc1 $at, $f16 +/* 05533C 7F02080C 46083282 */ mul.s $f10, $f6, $f8 +/* 055340 7F020810 0FC15FAB */ jal sinf +/* 055344 7F020814 46105303 */ div.s $f12, $f10, $f16 +/* 055348 7F020818 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05534C 7F02081C 44819000 */ mtc1 $at, $f18 +/* 055350 7F020820 00000000 */ nop +/* 055354 7F020824 46009081 */ sub.s $f2, $f18, $f0 +.L7F020828: +/* 055358 7F020828 8FBF0014 */ lw $ra, 0x14($sp) +/* 05535C 7F02082C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 055360 7F020830 46001006 */ mov.s $f0, $f2 +/* 055364 7F020834 03E00008 */ jr $ra +/* 055368 7F020838 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +#ifdef NONMATCHING +void jp_only_7F0209EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel jp_only_7F0209EC +/* 05555C 7F0209EC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 055560 7F0209F0 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 055564 7F0209F4 24010006 */ li $at, 6 +/* 055568 7F0209F8 15C00003 */ bnez $t6, .L7F020A08 +/* 05556C 7F0209FC 00000000 */ nop +/* 055570 7F020A00 03E00008 */ jr $ra +/* 055574 7F020A04 24020001 */ li $v0, 1 + +.L7F020A08: +/* 055578 7F020A08 10810026 */ beq $a0, $at, .L7F020AA4 +/* 05557C 7F020A0C 00001025 */ move $v0, $zero +/* 055580 7F020A10 24010007 */ li $at, 7 +/* 055584 7F020A14 10810023 */ beq $a0, $at, .L7F020AA4 +/* 055588 7F020A18 24010008 */ li $at, 8 +/* 05558C 7F020A1C 10810021 */ beq $a0, $at, .L7F020AA4 +/* 055590 7F020A20 24010009 */ li $at, 9 +/* 055594 7F020A24 1081001F */ beq $a0, $at, .L7F020AA4 +/* 055598 7F020A28 2401000A */ li $at, 10 +/* 05559C 7F020A2C 1081001D */ beq $a0, $at, .L7F020AA4 +/* 0555A0 7F020A30 2401000B */ li $at, 11 +/* 0555A4 7F020A34 1081001B */ beq $a0, $at, .L7F020AA4 +/* 0555A8 7F020A38 2401000C */ li $at, 12 +/* 0555AC 7F020A3C 10810019 */ beq $a0, $at, .L7F020AA4 +/* 0555B0 7F020A40 2401000D */ li $at, 13 +/* 0555B4 7F020A44 10810017 */ beq $a0, $at, .L7F020AA4 +/* 0555B8 7F020A48 2401000E */ li $at, 14 +/* 0555BC 7F020A4C 10810015 */ beq $a0, $at, .L7F020AA4 +/* 0555C0 7F020A50 2401000F */ li $at, 15 +/* 0555C4 7F020A54 10810013 */ beq $a0, $at, .L7F020AA4 +/* 0555C8 7F020A58 24010010 */ li $at, 16 +/* 0555CC 7F020A5C 10810011 */ beq $a0, $at, .L7F020AA4 +/* 0555D0 7F020A60 2401004F */ li $at, 79 +/* 0555D4 7F020A64 1081000F */ beq $a0, $at, .L7F020AA4 +/* 0555D8 7F020A68 2401004A */ li $at, 74 +/* 0555DC 7F020A6C 10A1000D */ beq $a1, $at, .L7F020AA4 +/* 0555E0 7F020A70 2401004B */ li $at, 75 +/* 0555E4 7F020A74 10A1000B */ beq $a1, $at, .L7F020AA4 +/* 0555E8 7F020A78 2401004C */ li $at, 76 +/* 0555EC 7F020A7C 10A10009 */ beq $a1, $at, .L7F020AA4 +/* 0555F0 7F020A80 2401004D */ li $at, 77 +/* 0555F4 7F020A84 10A10007 */ beq $a1, $at, .L7F020AA4 +/* 0555F8 7F020A88 2401004E */ li $at, 78 +/* 0555FC 7F020A8C 10A10005 */ beq $a1, $at, .L7F020AA4 +/* 055600 7F020A90 24010045 */ li $at, 69 +/* 055604 7F020A94 10A10003 */ beq $a1, $at, .L7F020AA4 +/* 055608 7F020A98 00000000 */ nop +/* 05560C 7F020A9C 03E00008 */ jr $ra +/* 055610 7F020AA0 24020001 */ li $v0, 1 + +.L7F020AA4: +/* 055614 7F020AA4 03E00008 */ jr $ra +/* 055618 7F020AA8 00000000 */ nop +) +#endif +#endif + +#ifdef NONMATCHING +void sub_GAME_7F02083C(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F02083C +/* 05536C 7F02083C 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 055370 7F020840 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055374 7F020844 44812000 */ mtc1 $at, $f4 +/* 055378 7F020848 AFBF0014 */ sw $ra, 0x14($sp) +/* 05537C 7F02084C 00803025 */ move $a2, $a0 +/* 055380 7F020850 AFA5009C */ sw $a1, 0x9c($sp) +/* 055384 7F020854 AFA60098 */ sw $a2, 0x98($sp) +/* 055388 7F020858 2404000C */ li $a0, 12 +/* 05538C 7F02085C 0FC249EF */ jal cheatCheckIfOn +/* 055390 7F020860 E7A40094 */ swc1 $f4, 0x94($sp) +/* 055394 7F020864 1040000E */ beqz $v0, .L7F0208A0 +/* 055398 7F020868 8FA60098 */ lw $a2, 0x98($sp) +/* 05539C 7F02086C 14C00005 */ bnez $a2, .L7F020884 +/* 0553A0 7F020870 24030002 */ li $v1, 2 +/* 0553A4 7F020874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0553A8 7F020878 44813000 */ mtc1 $at, $f6 +/* 0553AC 7F02087C 10000008 */ b .L7F0208A0 +/* 0553B0 7F020880 E7A60094 */ swc1 $f6, 0x94($sp) +.L7F020884: +/* 0553B4 7F020884 10C30002 */ beq $a2, $v1, .L7F020890 +/* 0553B8 7F020888 24050003 */ li $a1, 3 +/* 0553BC 7F02088C 14C50004 */ bne $a2, $a1, .L7F0208A0 +.L7F020890: +/* 0553C0 7F020890 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0553C4 7F020894 44814000 */ mtc1 $at, $f8 +/* 0553C8 7F020898 00000000 */ nop +/* 0553CC 7F02089C E7A80094 */ swc1 $f8, 0x94($sp) +.L7F0208A0: +/* 0553D0 7F0208A0 24030002 */ li $v1, 2 +/* 0553D4 7F0208A4 10C30007 */ beq $a2, $v1, .L7F0208C4 +/* 0553D8 7F0208A8 24050003 */ li $a1, 3 +/* 0553DC 7F0208AC 10C50005 */ beq $a2, $a1, .L7F0208C4 +/* 0553E0 7F0208B0 24070001 */ li $a3, 1 +/* 0553E4 7F0208B4 50C70004 */ beql $a2, $a3, .L7F0208C8 +/* 0553E8 7F0208B8 44809000 */ mtc1 $zero, $f18 +/* 0553EC 7F0208BC 54C00132 */ bnezl $a2, .L7F020D88 +/* 0553F0 7F0208C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0208C4: +/* 0553F4 7F0208C4 44809000 */ mtc1 $zero, $f18 +.L7F0208C8: +/* 0553F8 7F0208C8 24070001 */ li $a3, 1 +/* 0553FC 7F0208CC 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069B60) +/* 055400 7F0208D0 46009386 */ mov.s $f14, $f18 +/* 055404 7F0208D4 46009306 */ mov.s $f12, $f18 +/* 055408 7F0208D8 14C50004 */ bne $a2, $a1, .L7F0208EC +/* 05540C 7F0208DC E7B20088 */ swc1 $f18, 0x88($sp) +/* 055410 7F0208E0 8DCE9B60 */ lw $t6, %lo(dword_CODE_bss_80069B60)($t6) +/* 055414 7F0208E4 10000043 */ b .L7F0209F4 +/* 055418 7F0208E8 C5CE0144 */ lwc1 $f14, 0x144($t6) +.L7F0208EC: +/* 05541C 7F0208EC 14C30004 */ bne $a2, $v1, .L7F020900 +/* 055420 7F0208F0 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80069B60) +/* 055424 7F0208F4 8DEF9B60 */ lw $t7, %lo(dword_CODE_bss_80069B60)($t7) +/* 055428 7F0208F8 1000003E */ b .L7F0209F4 +/* 05542C 7F0208FC C5EE0140 */ lwc1 $f14, 0x140($t7) +.L7F020900: +/* 055430 7F020900 14C7001C */ bne $a2, $a3, .L7F020974 +/* 055434 7F020904 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055438 7F020908 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05543C 7F02090C 3C018005 */ lui $at, %hi(D_80051D30) +/* 055440 7F020910 94980012 */ lhu $t8, 0x12($a0) +/* 055444 7F020914 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055448 7F020918 33190400 */ andi $t9, $t8, 0x400 +/* 05544C 7F02091C 13200013 */ beqz $t9, .L7F02096C +/* 055450 7F020920 00000000 */ nop +/* 055454 7F020924 C4201D30 */ lwc1 $f0, %lo(D_80051D30)($at) +/* 055458 7F020928 3C018005 */ lui $at, %hi(D_80051D34) +/* 05545C 7F02092C 460E003C */ c.lt.s $f0, $f14 +/* 055460 7F020930 00000000 */ nop +/* 055464 7F020934 45000003 */ bc1f .L7F020944 +/* 055468 7F020938 00000000 */ nop +/* 05546C 7F02093C 1000000B */ b .L7F02096C +/* 055470 7F020940 46007381 */ sub.s $f14, $f14, $f0 +.L7F020944: +/* 055474 7F020944 C4201D34 */ lwc1 $f0, %lo(D_80051D34)($at) +/* 055478 7F020948 3C018005 */ lui $at, %hi(D_80051D38) +/* 05547C 7F02094C 4600703C */ c.lt.s $f14, $f0 +/* 055480 7F020950 00000000 */ nop +/* 055484 7F020954 45020005 */ bc1fl .L7F02096C +/* 055488 7F020958 46009386 */ mov.s $f14, $f18 +/* 05548C 7F02095C C42A1D38 */ lwc1 $f10, %lo(D_80051D38)($at) +/* 055490 7F020960 10000002 */ b .L7F02096C +/* 055494 7F020964 460A7380 */ add.s $f14, $f14, $f10 +/* 055498 7F020968 46009386 */ mov.s $f14, $f18 +.L7F02096C: +/* 05549C 7F02096C 10000021 */ b .L7F0209F4 +/* 0554A0 7F020970 C48C014C */ lwc1 $f12, 0x14c($a0) +.L7F020974: +/* 0554A4 7F020974 14C0001F */ bnez $a2, .L7F0209F4 +/* 0554A8 7F020978 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0554AC 7F02097C 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0554B0 7F020980 94820012 */ lhu $v0, 0x12($a0) +/* 0554B4 7F020984 30480400 */ andi $t0, $v0, 0x400 +/* 0554B8 7F020988 51000014 */ beql $t0, $zero, .L7F0209DC +/* 0554BC 7F02098C 8C89001C */ lw $t1, 0x1c($a0) +/* 0554C0 7F020990 11000018 */ beqz $t0, .L7F0209F4 +/* 0554C4 7F020994 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 0554C8 7F020998 3C018005 */ lui $at, %hi(D_80051D3C) +/* 0554CC 7F02099C C4201D3C */ lwc1 $f0, %lo(D_80051D3C)($at) +/* 0554D0 7F0209A0 3C018005 */ lui $at, %hi(D_80051D40) +/* 0554D4 7F0209A4 460E003C */ c.lt.s $f0, $f14 +/* 0554D8 7F0209A8 00000000 */ nop +/* 0554DC 7F0209AC 45000003 */ bc1f .L7F0209BC +/* 0554E0 7F0209B0 00000000 */ nop +/* 0554E4 7F0209B4 1000000F */ b .L7F0209F4 +/* 0554E8 7F0209B8 46000386 */ mov.s $f14, $f0 +.L7F0209BC: +/* 0554EC 7F0209BC C4201D40 */ lwc1 $f0, %lo(D_80051D40)($at) +/* 0554F0 7F0209C0 4600703C */ c.lt.s $f14, $f0 +/* 0554F4 7F0209C4 00000000 */ nop +/* 0554F8 7F0209C8 4500000A */ bc1f .L7F0209F4 +/* 0554FC 7F0209CC 00000000 */ nop +/* 055500 7F0209D0 10000008 */ b .L7F0209F4 +/* 055504 7F0209D4 46000386 */ mov.s $f14, $f0 +/* 055508 7F0209D8 8C89001C */ lw $t1, 0x1c($a0) +.L7F0209DC: +/* 05550C 7F0209DC 812A0024 */ lb $t2, 0x24($t1) +/* 055510 7F0209E0 51400004 */ beql $t2, $zero, .L7F0209F4 +/* 055514 7F0209E4 C48E0144 */ lwc1 $f14, 0x144($a0) +/* 055518 7F0209E8 10000002 */ b .L7F0209F4 +/* 05551C 7F0209EC C48E0140 */ lwc1 $f14, 0x140($a0) +/* 055520 7F0209F0 C48E0144 */ lwc1 $f14, 0x144($a0) +.L7F0209F4: +/* 055524 7F0209F4 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055528 7F0209F8 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05552C 7F0209FC 808B0011 */ lb $t3, 0x11($a0) +/* 055530 7F020A00 05620055 */ bltzl $t3, .L7F020B58 +/* 055534 7F020A04 46127032 */ c.eq.s $f14, $f18 +/* 055538 7F020A08 50C50004 */ beql $a2, $a1, .L7F020A1C +/* 05553C 7F020A0C E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055540 7F020A10 14C3001D */ bne $a2, $v1, .L7F020A88 +/* 055544 7F020A14 00000000 */ nop +/* 055548 7F020A18 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020A1C: +/* 05554C 7F020A1C 0FC081E5 */ jal sub_GAME_7F020794 +/* 055550 7F020A20 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055554 7F020A24 3C018005 */ lui $at, %hi(D_80051D44) +/* 055558 7F020A28 C4241D44 */ lwc1 $f4, %lo(D_80051D44)($at) +/* 05555C 7F020A2C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 055560 7F020A30 44814000 */ mtc1 $at, $f8 +/* 055564 7F020A34 46040182 */ mul.s $f6, $f0, $f4 +/* 055568 7F020A38 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 05556C 7F020A3C 44812000 */ mtc1 $at, $f4 +/* 055570 7F020A40 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055574 7F020A44 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 055578 7F020A48 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 05557C 7F020A4C 44809000 */ mtc1 $zero, $f18 +/* 055580 7F020A50 46083282 */ mul.s $f10, $f6, $f8 +/* 055584 7F020A54 94820012 */ lhu $v0, 0x12($a0) +/* 055588 7F020A58 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 05558C 7F020A5C 304C1000 */ andi $t4, $v0, 0x1000 +/* 055590 7F020A60 304D2000 */ andi $t5, $v0, 0x2000 +/* 055594 7F020A64 46045083 */ div.s $f2, $f10, $f4 +/* 055598 7F020A68 11800003 */ beqz $t4, .L7F020A78 +/* 05559C 7F020A6C 46027381 */ sub.s $f14, $f14, $f2 +/* 0555A0 7F020A70 10000038 */ b .L7F020B54 +/* 0555A4 7F020A74 46026301 */ sub.s $f12, $f12, $f2 +.L7F020A78: +/* 0555A8 7F020A78 51A00037 */ beql $t5, $zero, .L7F020B58 +/* 0555AC 7F020A7C 46127032 */ c.eq.s $f14, $f18 +/* 0555B0 7F020A80 10000034 */ b .L7F020B54 +/* 0555B4 7F020A84 46026300 */ add.s $f12, $f12, $f2 +.L7F020A88: +/* 0555B8 7F020A88 54C70033 */ bnel $a2, $a3, .L7F020B58 +/* 0555BC 7F020A8C 46127032 */ c.eq.s $f14, $f18 +/* 0555C0 7F020A90 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0555C4 7F020A94 0FC081E5 */ jal sub_GAME_7F020794 +/* 0555C8 7F020A98 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0555CC 7F020A9C 3C018005 */ lui $at, %hi(D_80051D48) +/* 0555D0 7F020AA0 C4261D48 */ lwc1 $f6, %lo(D_80051D48)($at) +/* 0555D4 7F020AA4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0555D8 7F020AA8 44814000 */ mtc1 $at, $f8 +/* 0555DC 7F020AAC 46060402 */ mul.s $f16, $f0, $f6 +/* 0555E0 7F020AB0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0555E4 7F020AB4 44812000 */ mtc1 $at, $f4 +/* 0555E8 7F020AB8 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0555EC 7F020ABC 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0555F0 7F020AC0 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0555F4 7F020AC4 44809000 */ mtc1 $zero, $f18 +/* 0555F8 7F020AC8 46088282 */ mul.s $f10, $f16, $f8 +/* 0555FC 7F020ACC 94820012 */ lhu $v0, 0x12($a0) +/* 055600 7F020AD0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055604 7F020AD4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055608 7F020AD8 304E1000 */ andi $t6, $v0, 0x1000 +/* 05560C 7F020ADC 304F2000 */ andi $t7, $v0, 0x2000 +/* 055610 7F020AE0 30584000 */ andi $t8, $v0, 0x4000 +/* 055614 7F020AE4 46045083 */ div.s $f2, $f10, $f4 +/* 055618 7F020AE8 30598000 */ andi $t9, $v0, 0x8000 +/* 05561C 7F020AEC 11C00003 */ beqz $t6, .L7F020AFC +/* 055620 7F020AF0 46027380 */ add.s $f14, $f14, $f2 +/* 055624 7F020AF4 10000004 */ b .L7F020B08 +/* 055628 7F020AF8 46026300 */ add.s $f12, $f12, $f2 +.L7F020AFC: +/* 05562C 7F020AFC 11E00002 */ beqz $t7, .L7F020B08 +/* 055630 7F020B00 00000000 */ nop +/* 055634 7F020B04 46026301 */ sub.s $f12, $f12, $f2 +.L7F020B08: +/* 055638 7F020B08 13000009 */ beqz $t8, .L7F020B30 +/* 05563C 7F020B0C 00000000 */ nop +/* 055640 7F020B10 44813000 */ mtc1 $at, $f6 +/* 055644 7F020B14 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055648 7F020B18 44815000 */ mtc1 $at, $f10 +/* 05564C 7F020B1C 46068202 */ mul.s $f8, $f16, $f6 +/* 055650 7F020B20 460A4103 */ div.s $f4, $f8, $f10 +/* 055654 7F020B24 46049180 */ add.s $f6, $f18, $f4 +/* 055658 7F020B28 1000000A */ b .L7F020B54 +/* 05565C 7F020B2C E7A60088 */ swc1 $f6, 0x88($sp) +.L7F020B30: +/* 055660 7F020B30 13200008 */ beqz $t9, .L7F020B54 +/* 055664 7F020B34 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055668 7F020B38 44814000 */ mtc1 $at, $f8 +/* 05566C 7F020B3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055670 7F020B40 44812000 */ mtc1 $at, $f4 +/* 055674 7F020B44 46088282 */ mul.s $f10, $f16, $f8 +/* 055678 7F020B48 46045183 */ div.s $f6, $f10, $f4 +/* 05567C 7F020B4C 46069201 */ sub.s $f8, $f18, $f6 +/* 055680 7F020B50 E7A80088 */ swc1 $f8, 0x88($sp) +.L7F020B54: +/* 055684 7F020B54 46127032 */ c.eq.s $f14, $f18 +.L7F020B58: +/* 055688 7F020B58 00000000 */ nop +/* 05568C 7F020B5C 45020011 */ bc1fl .L7F020BA4 +/* 055690 7F020B60 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055694 7F020B64 46126032 */ c.eq.s $f12, $f18 +/* 055698 7F020B68 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 05569C 7F020B6C 4502000D */ bc1fl .L7F020BA4 +/* 0556A0 7F020B70 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556A4 7F020B74 46125032 */ c.eq.s $f10, $f18 +/* 0556A8 7F020B78 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0556AC 7F020B7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0556B0 7F020B80 45020008 */ bc1fl .L7F020BA4 +/* 0556B4 7F020B84 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556B8 7F020B88 44813000 */ mtc1 $at, $f6 +/* 0556BC 7F020B8C 00000000 */ nop +/* 0556C0 7F020B90 46062032 */ c.eq.s $f4, $f6 +/* 0556C4 7F020B94 00000000 */ nop +/* 0556C8 7F020B98 4503007B */ bc1tl .L7F020D88 +/* 0556CC 7F020B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0556D0 7F020BA0 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BA4: +/* 0556D4 7F020BA4 0FC0B064 */ jal sub_GAME_7F02C190 +/* 0556D8 7F020BA8 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0556DC 7F020BAC C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0556E0 7F020BB0 44809000 */ mtc1 $zero, $f18 +/* 0556E4 7F020BB4 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0556E8 7F020BB8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 0556EC 7F020BBC 4612703C */ c.lt.s $f14, $f18 +/* 0556F0 7F020BC0 3C018005 */ lui $at, %hi(D_80051D4C) +/* 0556F4 7F020BC4 45000003 */ bc1f .L7F020BD4 +/* 0556F8 7F020BC8 00000000 */ nop +/* 0556FC 7F020BCC 10000003 */ b .L7F020BDC +/* 055700 7F020BD0 46007387 */ neg.s $f14, $f14 +.L7F020BD4: +/* 055704 7F020BD4 C4281D4C */ lwc1 $f8, %lo(D_80051D4C)($at) +/* 055708 7F020BD8 460E4381 */ sub.s $f14, $f8, $f14 +.L7F020BDC: +/* 05570C 7F020BDC 4612603C */ c.lt.s $f12, $f18 +/* 055710 7F020BE0 3C018005 */ lui $at, %hi(D_80051D50) +/* 055714 7F020BE4 45020004 */ bc1fl .L7F020BF8 +/* 055718 7F020BE8 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05571C 7F020BEC C42A1D50 */ lwc1 $f10, %lo(D_80051D50)($at) +/* 055720 7F020BF0 460A6300 */ add.s $f12, $f12, $f10 +/* 055724 7F020BF4 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BF8: +/* 055728 7F020BF8 0FC1E111 */ jal sub_GAME_7F078444 +/* 05572C 7F020BFC E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055730 7F020C00 00402025 */ move $a0, $v0 +/* 055734 7F020C04 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055738 7F020C08 8FA5009C */ lw $a1, 0x9c($sp) +/* 05573C 7F020C0C 8FA2009C */ lw $v0, 0x9c($sp) +/* 055740 7F020C10 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055744 7F020C14 44809000 */ mtc1 $zero, $f18 +/* 055748 7F020C18 C4440030 */ lwc1 $f4, 0x30($v0) +/* 05574C 7F020C1C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055750 7F020C20 46127032 */ c.eq.s $f14, $f18 +/* 055754 7F020C24 E7A40074 */ swc1 $f4, 0x74($sp) +/* 055758 7F020C28 C4460034 */ lwc1 $f6, 0x34($v0) +/* 05575C 7F020C2C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055760 7F020C30 E7A60078 */ swc1 $f6, 0x78($sp) +/* 055764 7F020C34 C4480038 */ lwc1 $f8, 0x38($v0) +/* 055768 7F020C38 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 05576C 7F020C3C E4520030 */ swc1 $f18, 0x30($v0) +/* 055770 7F020C40 E4520034 */ swc1 $f18, 0x34($v0) +/* 055774 7F020C44 45000006 */ bc1f .L7F020C60 +/* 055778 7F020C48 E4520038 */ swc1 $f18, 0x38($v0) +/* 05577C 7F020C4C C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055780 7F020C50 46125032 */ c.eq.s $f10, $f18 +/* 055784 7F020C54 00000000 */ nop +/* 055788 7F020C58 45010030 */ bc1t .L7F020D1C +/* 05578C 7F020C5C 00000000 */ nop +.L7F020C60: +/* 055790 7F020C60 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 055794 7F020C64 3C018005 */ lui $at, %hi(D_80051D54) +/* 055798 7F020C68 46046301 */ sub.s $f12, $f12, $f4 +/* 05579C 7F020C6C 4612603C */ c.lt.s $f12, $f18 +/* 0557A0 7F020C70 00000000 */ nop +/* 0557A4 7F020C74 45000003 */ bc1f .L7F020C84 +/* 0557A8 7F020C78 00000000 */ nop +/* 0557AC 7F020C7C C4261D54 */ lwc1 $f6, %lo(D_80051D54)($at) +/* 0557B0 7F020C80 46066300 */ add.s $f12, $f12, $f6 +.L7F020C84: +/* 0557B4 7F020C84 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0557B8 7F020C88 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0557BC 7F020C8C 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557C0 7F020C90 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557C4 7F020C94 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557C8 7F020C98 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0557CC 7F020C9C 44809000 */ mtc1 $zero, $f18 +/* 0557D0 7F020CA0 27A50030 */ addiu $a1, $sp, 0x30 +/* 0557D4 7F020CA4 46127032 */ c.eq.s $f14, $f18 +/* 0557D8 7F020CA8 00000000 */ nop +/* 0557DC 7F020CAC 45030009 */ bc1tl .L7F020CD4 +/* 0557E0 7F020CB0 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0557E4 7F020CB4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0557E8 7F020CB8 46007306 */ mov.s $f12, $f14 +/* 0557EC 7F020CBC 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557F0 7F020CC0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557F4 7F020CC4 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557F8 7F020CC8 44809000 */ mtc1 $zero, $f18 +/* 0557FC 7F020CCC 00000000 */ nop +/* 055800 7F020CD0 C7A80088 */ lwc1 $f8, 0x88($sp) +.L7F020CD4: +/* 055804 7F020CD4 27A50030 */ addiu $a1, $sp, 0x30 +/* 055808 7F020CD8 46124032 */ c.eq.s $f8, $f18 +/* 05580C 7F020CDC 00000000 */ nop +/* 055810 7F020CE0 45030007 */ bc1tl .L7F020D00 +/* 055814 7F020CE4 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 055818 7F020CE8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 05581C 7F020CEC 46004306 */ mov.s $f12, $f8 +/* 055820 7F020CF0 27A40030 */ addiu $a0, $sp, 0x30 +/* 055824 7F020CF4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055828 7F020CF8 8FA5009C */ lw $a1, 0x9c($sp) +/* 05582C 7F020CFC C7AC0070 */ lwc1 $f12, 0x70($sp) +.L7F020D00: +/* 055830 7F020D00 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055834 7F020D04 27A50030 */ addiu $a1, $sp, 0x30 +/* 055838 7F020D08 27A40030 */ addiu $a0, $sp, 0x30 +/* 05583C 7F020D0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055840 7F020D10 8FA5009C */ lw $a1, 0x9c($sp) +/* 055844 7F020D14 10000007 */ b .L7F020D34 +/* 055848 7F020D18 3C013F80 */ lui $at, 0x3f80 +.L7F020D1C: +/* 05584C 7F020D1C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055850 7F020D20 27A50030 */ addiu $a1, $sp, 0x30 +/* 055854 7F020D24 27A40030 */ addiu $a0, $sp, 0x30 +/* 055858 7F020D28 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 05585C 7F020D2C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055860 7F020D30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F020D34: +/* 055864 7F020D34 44812000 */ mtc1 $at, $f4 +/* 055868 7F020D38 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 05586C 7F020D3C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055870 7F020D40 46045032 */ c.eq.s $f10, $f4 +/* 055874 7F020D44 00000000 */ nop +/* 055878 7F020D48 45030004 */ bc1tl .L7F020D5C +/* 05587C 7F020D4C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 055880 7F020D50 0FC1629F */ jal matrix_scalar_multiply +/* 055884 7F020D54 46005306 */ mov.s $f12, $f10 +/* 055888 7F020D58 C7A60074 */ lwc1 $f6, 0x74($sp) +.L7F020D5C: +/* 05588C 7F020D5C 8FA8009C */ lw $t0, 0x9c($sp) +/* 055890 7F020D60 E5060030 */ swc1 $f6, 0x30($t0) +/* 055894 7F020D64 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 055898 7F020D68 E5080034 */ swc1 $f8, 0x34($t0) +/* 05589C 7F020D6C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0558A0 7F020D70 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0558A4 7F020D74 E5040038 */ swc1 $f4, 0x38($t0) +/* 0558A8 7F020D78 00402025 */ move $a0, $v0 +/* 0558AC 7F020D7C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0558B0 7F020D80 8FA5009C */ lw $a1, 0x9c($sp) +/* 0558B4 7F020D84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020D88: +/* 0558B8 7F020D88 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0558BC 7F020D8C 03E00008 */ jr $ra +/* 0558C0 7F020D90 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F02083C +/* 05561C 7F020AAC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 055620 7F020AB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055624 7F020AB4 44812000 */ mtc1 $at, $f4 +/* 055628 7F020AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05562C 7F020ABC 00803825 */ move $a3, $a0 +/* 055630 7F020AC0 AFA5009C */ sw $a1, 0x9c($sp) +/* 055634 7F020AC4 AFA70098 */ sw $a3, 0x98($sp) +/* 055638 7F020AC8 2404000C */ li $a0, 12 +/* 05563C 7F020ACC 0FC24CCF */ jal cheatCheckIfOn +/* 055640 7F020AD0 E7A40094 */ swc1 $f4, 0x94($sp) +/* 055644 7F020AD4 1040001C */ beqz $v0, .L7F020B48 +/* 055648 7F020AD8 8FA70098 */ lw $a3, 0x98($sp) +/* 05564C 7F020ADC 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 055650 7F020AE0 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 055654 7F020AE4 80C4000F */ lb $a0, 0xf($a2) +/* 055658 7F020AE8 80C50006 */ lb $a1, 6($a2) +/* 05565C 7F020AEC 0FC0827B */ jal jp_only_7F0209EC +/* 055660 7F020AF0 AFA70098 */ sw $a3, 0x98($sp) +/* 055664 7F020AF4 10400014 */ beqz $v0, .L7F020B48 +/* 055668 7F020AF8 8FA70098 */ lw $a3, 0x98($sp) +/* 05566C 7F020AFC 14E00005 */ bnez $a3, .L7F020B14 +/* 055670 7F020B00 24030002 */ li $v1, 2 +/* 055674 7F020B04 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 055678 7F020B08 44813000 */ mtc1 $at, $f6 +/* 05567C 7F020B0C 1000000E */ b .L7F020B48 +/* 055680 7F020B10 E7A60094 */ swc1 $f6, 0x94($sp) +.L7F020B14: +/* 055684 7F020B14 10E30002 */ beq $a3, $v1, .L7F020B20 +/* 055688 7F020B18 24050003 */ li $a1, 3 +/* 05568C 7F020B1C 14E5000A */ bne $a3, $a1, .L7F020B48 +.L7F020B20: +/* 055690 7F020B20 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069B60) # $t6, 0x8007 +/* 055694 7F020B24 8DCE9BA0 */ lw $t6, %lo(dword_CODE_bss_80069B60)($t6) +/* 055698 7F020B28 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 05569C 7F020B2C 8DCF0014 */ lw $t7, 0x14($t6) +/* 0556A0 7F020B30 000FC100 */ sll $t8, $t7, 4 +/* 0556A4 7F020B34 07020005 */ bltzl $t8, .L7F020B4C +/* 0556A8 7F020B38 24030002 */ li $v1, 2 +/* 0556AC 7F020B3C 44814000 */ mtc1 $at, $f8 +/* 0556B0 7F020B40 00000000 */ nop +/* 0556B4 7F020B44 E7A80094 */ swc1 $f8, 0x94($sp) +.L7F020B48: +/* 0556B8 7F020B48 24030002 */ li $v1, 2 +.L7F020B4C: +/* 0556BC 7F020B4C 10E30007 */ beq $a3, $v1, .L7F020B6C +/* 0556C0 7F020B50 24050003 */ li $a1, 3 +/* 0556C4 7F020B54 10E50005 */ beq $a3, $a1, .L7F020B6C +/* 0556C8 7F020B58 24040001 */ li $a0, 1 +/* 0556CC 7F020B5C 50E40004 */ beql $a3, $a0, .L7F020B70 +/* 0556D0 7F020B60 44809000 */ mtc1 $zero, $f18 +/* 0556D4 7F020B64 54E0012E */ bnezl $a3, .L7F021020 +/* 0556D8 7F020B68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020B6C: +/* 0556DC 7F020B6C 44809000 */ mtc1 $zero, $f18 +.L7F020B70: +/* 0556E0 7F020B70 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 0556E4 7F020B74 24040001 */ li $a0, 1 +/* 0556E8 7F020B78 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 0556EC 7F020B7C 46009386 */ mov.s $f14, $f18 +/* 0556F0 7F020B80 46009306 */ mov.s $f12, $f18 +/* 0556F4 7F020B84 14E50003 */ bne $a3, $a1, .L7F020B94 +/* 0556F8 7F020B88 E7B20088 */ swc1 $f18, 0x88($sp) +/* 0556FC 7F020B8C 10000040 */ b .L7F020C90 +/* 055700 7F020B90 C4CE0144 */ lwc1 $f14, 0x144($a2) +.L7F020B94: +/* 055704 7F020B94 14E30003 */ bne $a3, $v1, .L7F020BA4 +/* 055708 7F020B98 00000000 */ nop +/* 05570C 7F020B9C 1000003C */ b .L7F020C90 +/* 055710 7F020BA0 C4CE0140 */ lwc1 $f14, 0x140($a2) +.L7F020BA4: +/* 055714 7F020BA4 14E4001B */ bne $a3, $a0, .L7F020C14 +/* 055718 7F020BA8 00000000 */ nop +/* 05571C 7F020BAC 94D90012 */ lhu $t9, 0x12($a2) +/* 055720 7F020BB0 C4CE0148 */ lwc1 $f14, 0x148($a2) +/* 055724 7F020BB4 3C018005 */ lui $at, %hi(D_80051D30) # $at, 0x8005 +/* 055728 7F020BB8 33280400 */ andi $t0, $t9, 0x400 +/* 05572C 7F020BBC 11000013 */ beqz $t0, .L7F020C0C +/* 055730 7F020BC0 00000000 */ nop +/* 055734 7F020BC4 C4201D60 */ lwc1 $f0, %lo(D_80051D30)($at) +/* 055738 7F020BC8 3C018005 */ lui $at, %hi(D_80051D34) # $at, 0x8005 +/* 05573C 7F020BCC 460E003C */ c.lt.s $f0, $f14 +/* 055740 7F020BD0 00000000 */ nop +/* 055744 7F020BD4 45000003 */ bc1f .L7F020BE4 +/* 055748 7F020BD8 00000000 */ nop +/* 05574C 7F020BDC 1000000B */ b .L7F020C0C +/* 055750 7F020BE0 46007381 */ sub.s $f14, $f14, $f0 +.L7F020BE4: +/* 055754 7F020BE4 C4201D64 */ lwc1 $f0, %lo(D_80051D34)($at) +/* 055758 7F020BE8 3C018005 */ lui $at, %hi(D_80051D38) # $at, 0x8005 +/* 05575C 7F020BEC 4600703C */ c.lt.s $f14, $f0 +/* 055760 7F020BF0 00000000 */ nop +/* 055764 7F020BF4 45020005 */ bc1fl .L7F020C0C +/* 055768 7F020BF8 46009386 */ mov.s $f14, $f18 +/* 05576C 7F020BFC C42A1D68 */ lwc1 $f10, %lo(D_80051D38)($at) +/* 055770 7F020C00 10000002 */ b .L7F020C0C +/* 055774 7F020C04 460A7380 */ add.s $f14, $f14, $f10 +/* 055778 7F020C08 46009386 */ mov.s $f14, $f18 +.L7F020C0C: +/* 05577C 7F020C0C 10000020 */ b .L7F020C90 +/* 055780 7F020C10 C4CC014C */ lwc1 $f12, 0x14c($a2) +.L7F020C14: +/* 055784 7F020C14 54E0001F */ bnezl $a3, .L7F020C94 +/* 055788 7F020C18 80CC0011 */ lb $t4, 0x11($a2) +/* 05578C 7F020C1C 94C20012 */ lhu $v0, 0x12($a2) +/* 055790 7F020C20 30490400 */ andi $t1, $v0, 0x400 +/* 055794 7F020C24 51200014 */ beql $t1, $zero, .L7F020C78 +/* 055798 7F020C28 8CCA001C */ lw $t2, 0x1c($a2) +/* 05579C 7F020C2C 11200018 */ beqz $t1, .L7F020C90 +/* 0557A0 7F020C30 C4CE0148 */ lwc1 $f14, 0x148($a2) +/* 0557A4 7F020C34 3C018005 */ lui $at, %hi(D_80051D3C) # $at, 0x8005 +/* 0557A8 7F020C38 C4201D6C */ lwc1 $f0, %lo(D_80051D3C)($at) +/* 0557AC 7F020C3C 3C018005 */ lui $at, %hi(D_80051D40) # $at, 0x8005 +/* 0557B0 7F020C40 460E003C */ c.lt.s $f0, $f14 +/* 0557B4 7F020C44 00000000 */ nop +/* 0557B8 7F020C48 45000003 */ bc1f .L7F020C58 +/* 0557BC 7F020C4C 00000000 */ nop +/* 0557C0 7F020C50 1000000F */ b .L7F020C90 +/* 0557C4 7F020C54 46000386 */ mov.s $f14, $f0 +.L7F020C58: +/* 0557C8 7F020C58 C4201D70 */ lwc1 $f0, %lo(D_80051D40)($at) +/* 0557CC 7F020C5C 4600703C */ c.lt.s $f14, $f0 +/* 0557D0 7F020C60 00000000 */ nop +/* 0557D4 7F020C64 4502000B */ bc1fl .L7F020C94 +/* 0557D8 7F020C68 80CC0011 */ lb $t4, 0x11($a2) +/* 0557DC 7F020C6C 10000008 */ b .L7F020C90 +/* 0557E0 7F020C70 46000386 */ mov.s $f14, $f0 +/* 0557E4 7F020C74 8CCA001C */ lw $t2, 0x1c($a2) +.L7F020C78: +/* 0557E8 7F020C78 814B0024 */ lb $t3, 0x24($t2) +/* 0557EC 7F020C7C 51600004 */ beql $t3, $zero, .L7F020C90 +/* 0557F0 7F020C80 C4CE0144 */ lwc1 $f14, 0x144($a2) +/* 0557F4 7F020C84 10000002 */ b .L7F020C90 +/* 0557F8 7F020C88 C4CE0140 */ lwc1 $f14, 0x140($a2) +/* 0557FC 7F020C8C C4CE0144 */ lwc1 $f14, 0x144($a2) +.L7F020C90: +/* 055800 7F020C90 80CC0011 */ lb $t4, 0x11($a2) +.L7F020C94: +/* 055804 7F020C94 05820056 */ bltzl $t4, .L7F020DF0 +/* 055808 7F020C98 46127032 */ c.eq.s $f14, $f18 +/* 05580C 7F020C9C 50E50004 */ beql $a3, $a1, .L7F020CB0 +/* 055810 7F020CA0 00C02025 */ move $a0, $a2 +/* 055814 7F020CA4 14E3001E */ bne $a3, $v1, .L7F020D20 +/* 055818 7F020CA8 00000000 */ nop +/* 05581C 7F020CAC 00C02025 */ move $a0, $a2 +.L7F020CB0: +/* 055820 7F020CB0 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055824 7F020CB4 0FC08251 */ jal sub_GAME_7F020794 +/* 055828 7F020CB8 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 05582C 7F020CBC 3C018005 */ lui $at, %hi(D_80051D44) # $at, 0x8005 +/* 055830 7F020CC0 C4241D74 */ lwc1 $f4, %lo(D_80051D44)($at) +/* 055834 7F020CC4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 055838 7F020CC8 44814000 */ mtc1 $at, $f8 +/* 05583C 7F020CCC 46040182 */ mul.s $f6, $f0, $f4 +/* 055840 7F020CD0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055844 7F020CD4 44812000 */ mtc1 $at, $f4 +/* 055848 7F020CD8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 05584C 7F020CDC 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 055850 7F020CE0 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055854 7F020CE4 44809000 */ mtc1 $zero, $f18 +/* 055858 7F020CE8 46083282 */ mul.s $f10, $f6, $f8 +/* 05585C 7F020CEC 94C20012 */ lhu $v0, 0x12($a2) +/* 055860 7F020CF0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055864 7F020CF4 304D1000 */ andi $t5, $v0, 0x1000 +/* 055868 7F020CF8 304E2000 */ andi $t6, $v0, 0x2000 +/* 05586C 7F020CFC 46045083 */ div.s $f2, $f10, $f4 +/* 055870 7F020D00 11A00003 */ beqz $t5, .L7F020D10 +/* 055874 7F020D04 46027381 */ sub.s $f14, $f14, $f2 +/* 055878 7F020D08 10000038 */ b .L7F020DEC +/* 05587C 7F020D0C 46026301 */ sub.s $f12, $f12, $f2 +.L7F020D10: +/* 055880 7F020D10 51C00037 */ beql $t6, $zero, .L7F020DF0 +/* 055884 7F020D14 46127032 */ c.eq.s $f14, $f18 +/* 055888 7F020D18 10000034 */ b .L7F020DEC +/* 05588C 7F020D1C 46026300 */ add.s $f12, $f12, $f2 +.L7F020D20: +/* 055890 7F020D20 14E40032 */ bne $a3, $a0, .L7F020DEC +/* 055894 7F020D24 00C02025 */ move $a0, $a2 +/* 055898 7F020D28 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05589C 7F020D2C 0FC08251 */ jal sub_GAME_7F020794 +/* 0558A0 7F020D30 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0558A4 7F020D34 3C018005 */ lui $at, %hi(D_80051D48) # $at, 0x8005 +/* 0558A8 7F020D38 C4261D78 */ lwc1 $f6, %lo(D_80051D48)($at) +/* 0558AC 7F020D3C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0558B0 7F020D40 44814000 */ mtc1 $at, $f8 +/* 0558B4 7F020D44 46060402 */ mul.s $f16, $f0, $f6 +/* 0558B8 7F020D48 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0558BC 7F020D4C 44812000 */ mtc1 $at, $f4 +/* 0558C0 7F020D50 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 0558C4 7F020D54 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 0558C8 7F020D58 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0558CC 7F020D5C 44809000 */ mtc1 $zero, $f18 +/* 0558D0 7F020D60 46088282 */ mul.s $f10, $f16, $f8 +/* 0558D4 7F020D64 94C20012 */ lhu $v0, 0x12($a2) +/* 0558D8 7F020D68 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0558DC 7F020D6C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0558E0 7F020D70 304F1000 */ andi $t7, $v0, 0x1000 +/* 0558E4 7F020D74 30582000 */ andi $t8, $v0, 0x2000 +/* 0558E8 7F020D78 30594000 */ andi $t9, $v0, 0x4000 +/* 0558EC 7F020D7C 46045083 */ div.s $f2, $f10, $f4 +/* 0558F0 7F020D80 30488000 */ andi $t0, $v0, 0x8000 +/* 0558F4 7F020D84 11E00003 */ beqz $t7, .L7F020D94 +/* 0558F8 7F020D88 46027380 */ add.s $f14, $f14, $f2 +/* 0558FC 7F020D8C 10000004 */ b .L7F020DA0 +/* 055900 7F020D90 46026300 */ add.s $f12, $f12, $f2 +.L7F020D94: +/* 055904 7F020D94 13000002 */ beqz $t8, .L7F020DA0 +/* 055908 7F020D98 00000000 */ nop +/* 05590C 7F020D9C 46026301 */ sub.s $f12, $f12, $f2 +.L7F020DA0: +/* 055910 7F020DA0 13200009 */ beqz $t9, .L7F020DC8 +/* 055914 7F020DA4 00000000 */ nop +/* 055918 7F020DA8 44813000 */ mtc1 $at, $f6 +/* 05591C 7F020DAC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055920 7F020DB0 44815000 */ mtc1 $at, $f10 +/* 055924 7F020DB4 46068202 */ mul.s $f8, $f16, $f6 +/* 055928 7F020DB8 460A4103 */ div.s $f4, $f8, $f10 +/* 05592C 7F020DBC 46049180 */ add.s $f6, $f18, $f4 +/* 055930 7F020DC0 1000000A */ b .L7F020DEC +/* 055934 7F020DC4 E7A60088 */ swc1 $f6, 0x88($sp) +.L7F020DC8: +/* 055938 7F020DC8 11000008 */ beqz $t0, .L7F020DEC +/* 05593C 7F020DCC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055940 7F020DD0 44814000 */ mtc1 $at, $f8 +/* 055944 7F020DD4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055948 7F020DD8 44812000 */ mtc1 $at, $f4 +/* 05594C 7F020DDC 46088282 */ mul.s $f10, $f16, $f8 +/* 055950 7F020DE0 46045183 */ div.s $f6, $f10, $f4 +/* 055954 7F020DE4 46069201 */ sub.s $f8, $f18, $f6 +/* 055958 7F020DE8 E7A80088 */ swc1 $f8, 0x88($sp) +.L7F020DEC: +/* 05595C 7F020DEC 46127032 */ c.eq.s $f14, $f18 +.L7F020DF0: +/* 055960 7F020DF0 00C02025 */ move $a0, $a2 +/* 055964 7F020DF4 45020011 */ bc1fl .L7F020E3C +/* 055968 7F020DF8 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05596C 7F020DFC 46126032 */ c.eq.s $f12, $f18 +/* 055970 7F020E00 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055974 7F020E04 4502000D */ bc1fl .L7F020E3C +/* 055978 7F020E08 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05597C 7F020E0C 46125032 */ c.eq.s $f10, $f18 +/* 055980 7F020E10 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 055984 7F020E14 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055988 7F020E18 45020008 */ bc1fl .L7F020E3C +/* 05598C 7F020E1C E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055990 7F020E20 44813000 */ mtc1 $at, $f6 +/* 055994 7F020E24 00000000 */ nop +/* 055998 7F020E28 46062032 */ c.eq.s $f4, $f6 +/* 05599C 7F020E2C 00000000 */ nop +/* 0559A0 7F020E30 4503007B */ bc1tl .L7F021020 +/* 0559A4 7F020E34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0559A8 7F020E38 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020E3C: +/* 0559AC 7F020E3C 0FC0B126 */ jal sub_GAME_7F02C190 +/* 0559B0 7F020E40 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0559B4 7F020E44 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0559B8 7F020E48 44809000 */ mtc1 $zero, $f18 +/* 0559BC 7F020E4C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0559C0 7F020E50 E7A00070 */ swc1 $f0, 0x70($sp) +/* 0559C4 7F020E54 4612703C */ c.lt.s $f14, $f18 +/* 0559C8 7F020E58 3C018005 */ lui $at, %hi(D_80051D4C) # $at, 0x8005 +/* 0559CC 7F020E5C 45000003 */ bc1f .L7F020E6C +/* 0559D0 7F020E60 00000000 */ nop +/* 0559D4 7F020E64 10000003 */ b .L7F020E74 +/* 0559D8 7F020E68 46007387 */ neg.s $f14, $f14 +.L7F020E6C: +/* 0559DC 7F020E6C C4281D7C */ lwc1 $f8, %lo(D_80051D4C)($at) +/* 0559E0 7F020E70 460E4381 */ sub.s $f14, $f8, $f14 +.L7F020E74: +/* 0559E4 7F020E74 4612603C */ c.lt.s $f12, $f18 +/* 0559E8 7F020E78 3C018005 */ lui $at, %hi(D_80051D50) # $at, 0x8005 +/* 0559EC 7F020E7C 45020004 */ bc1fl .L7F020E90 +/* 0559F0 7F020E80 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0559F4 7F020E84 C42A1D80 */ lwc1 $f10, %lo(D_80051D50)($at) +/* 0559F8 7F020E88 460A6300 */ add.s $f12, $f12, $f10 +/* 0559FC 7F020E8C E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020E90: +/* 055A00 7F020E90 0FC1E28D */ jal sub_GAME_7F078444 +/* 055A04 7F020E94 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055A08 7F020E98 00402025 */ move $a0, $v0 +/* 055A0C 7F020E9C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055A10 7F020EA0 8FA5009C */ lw $a1, 0x9c($sp) +/* 055A14 7F020EA4 8FA2009C */ lw $v0, 0x9c($sp) +/* 055A18 7F020EA8 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055A1C 7F020EAC 44809000 */ mtc1 $zero, $f18 +/* 055A20 7F020EB0 C4440030 */ lwc1 $f4, 0x30($v0) +/* 055A24 7F020EB4 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055A28 7F020EB8 46127032 */ c.eq.s $f14, $f18 +/* 055A2C 7F020EBC E7A40074 */ swc1 $f4, 0x74($sp) +/* 055A30 7F020EC0 C4460034 */ lwc1 $f6, 0x34($v0) +/* 055A34 7F020EC4 27A50030 */ addiu $a1, $sp, 0x30 +/* 055A38 7F020EC8 E7A60078 */ swc1 $f6, 0x78($sp) +/* 055A3C 7F020ECC C4480038 */ lwc1 $f8, 0x38($v0) +/* 055A40 7F020ED0 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 055A44 7F020ED4 E4520030 */ swc1 $f18, 0x30($v0) +/* 055A48 7F020ED8 E4520034 */ swc1 $f18, 0x34($v0) +/* 055A4C 7F020EDC 45000006 */ bc1f .L7F020EF8 +/* 055A50 7F020EE0 E4520038 */ swc1 $f18, 0x38($v0) +/* 055A54 7F020EE4 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055A58 7F020EE8 46125032 */ c.eq.s $f10, $f18 +/* 055A5C 7F020EEC 00000000 */ nop +/* 055A60 7F020EF0 45010030 */ bc1t .L7F020FB4 +/* 055A64 7F020EF4 00000000 */ nop +.L7F020EF8: +/* 055A68 7F020EF8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 055A6C 7F020EFC 3C018005 */ lui $at, %hi(D_80051D54) # $at, 0x8005 +/* 055A70 7F020F00 46046301 */ sub.s $f12, $f12, $f4 +/* 055A74 7F020F04 4612603C */ c.lt.s $f12, $f18 +/* 055A78 7F020F08 00000000 */ nop +/* 055A7C 7F020F0C 45000003 */ bc1f .L7F020F1C +/* 055A80 7F020F10 00000000 */ nop +/* 055A84 7F020F14 C4261D84 */ lwc1 $f6, %lo(D_80051D54)($at) +/* 055A88 7F020F18 46066300 */ add.s $f12, $f12, $f6 +.L7F020F1C: +/* 055A8C 7F020F1C 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055A90 7F020F20 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055A94 7F020F24 27A40030 */ addiu $a0, $sp, 0x30 +/* 055A98 7F020F28 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055A9C 7F020F2C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055AA0 7F020F30 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055AA4 7F020F34 44809000 */ mtc1 $zero, $f18 +/* 055AA8 7F020F38 27A50030 */ addiu $a1, $sp, 0x30 +/* 055AAC 7F020F3C 46127032 */ c.eq.s $f14, $f18 +/* 055AB0 7F020F40 00000000 */ nop +/* 055AB4 7F020F44 45030009 */ bc1tl .L7F020F6C +/* 055AB8 7F020F48 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 055ABC 7F020F4C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 055AC0 7F020F50 46007306 */ mov.s $f12, $f14 +/* 055AC4 7F020F54 27A40030 */ addiu $a0, $sp, 0x30 +/* 055AC8 7F020F58 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055ACC 7F020F5C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055AD0 7F020F60 44809000 */ mtc1 $zero, $f18 +/* 055AD4 7F020F64 00000000 */ nop +/* 055AD8 7F020F68 C7A80088 */ lwc1 $f8, 0x88($sp) +.L7F020F6C: +/* 055ADC 7F020F6C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055AE0 7F020F70 46124032 */ c.eq.s $f8, $f18 +/* 055AE4 7F020F74 00000000 */ nop +/* 055AE8 7F020F78 45030007 */ bc1tl .L7F020F98 +/* 055AEC 7F020F7C C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 055AF0 7F020F80 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 055AF4 7F020F84 46004306 */ mov.s $f12, $f8 +/* 055AF8 7F020F88 27A40030 */ addiu $a0, $sp, 0x30 +/* 055AFC 7F020F8C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B00 7F020F90 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B04 7F020F94 C7AC0070 */ lwc1 $f12, 0x70($sp) +.L7F020F98: +/* 055B08 7F020F98 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055B0C 7F020F9C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055B10 7F020FA0 27A40030 */ addiu $a0, $sp, 0x30 +/* 055B14 7F020FA4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B18 7F020FA8 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B1C 7F020FAC 10000007 */ b .L7F020FCC +/* 055B20 7F020FB0 3C013F80 */ lui $at, 0x3f80 +.L7F020FB4: +/* 055B24 7F020FB4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055B28 7F020FB8 27A50030 */ addiu $a1, $sp, 0x30 +/* 055B2C 7F020FBC 27A40030 */ addiu $a0, $sp, 0x30 +/* 055B30 7F020FC0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B34 7F020FC4 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B38 7F020FC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F020FCC: +/* 055B3C 7F020FCC 44812000 */ mtc1 $at, $f4 +/* 055B40 7F020FD0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 055B44 7F020FD4 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B48 7F020FD8 46045032 */ c.eq.s $f10, $f4 +/* 055B4C 7F020FDC 00000000 */ nop +/* 055B50 7F020FE0 45030004 */ bc1tl .L7F020FF4 +/* 055B54 7F020FE4 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 055B58 7F020FE8 0FC163E7 */ jal matrix_scalar_multiply +/* 055B5C 7F020FEC 46005306 */ mov.s $f12, $f10 +/* 055B60 7F020FF0 C7A60074 */ lwc1 $f6, 0x74($sp) +.L7F020FF4: +/* 055B64 7F020FF4 8FA9009C */ lw $t1, 0x9c($sp) +/* 055B68 7F020FF8 E5260030 */ swc1 $f6, 0x30($t1) +/* 055B6C 7F020FFC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 055B70 7F021000 E5280034 */ swc1 $f8, 0x34($t1) +/* 055B74 7F021004 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 055B78 7F021008 0FC1E26D */ jal get_BONDdata_field_10CC +/* 055B7C 7F02100C E5240038 */ swc1 $f4, 0x38($t1) +/* 055B80 7F021010 00402025 */ move $a0, $v0 +/* 055B84 7F021014 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B88 7F021018 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B8C 7F02101C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F021020: +/* 055B90 7F021020 27BD0098 */ addiu $sp, $sp, 0x98 +/* 055B94 7F021024 03E00008 */ jr $ra +/* 055B98 7F021028 00000000 */ nop + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F020D94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020D94 +/* 0558C4 7F020D94 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0558C8 7F020D98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0558CC 7F020D9C 00802825 */ move $a1, $a0 +/* 0558D0 7F020DA0 8C840018 */ lw $a0, 0x18($a0) +/* 0558D4 7F020DA4 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0558D8 7F020DA8 44810000 */ mtc1 $at, $f0 +/* 0558DC 7F020DAC C4840008 */ lwc1 $f4, 8($a0) +/* 0558E0 7F020DB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0558E4 7F020DB4 44815000 */ mtc1 $at, $f10 +/* 0558E8 7F020DB8 46002181 */ sub.s $f6, $f4, $f0 +/* 0558EC 7F020DBC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0558F0 7F020DC0 E7A60028 */ swc1 $f6, 0x28($sp) +/* 0558F4 7F020DC4 C4A800AC */ lwc1 $f8, 0xac($a1) +/* 0558F8 7F020DC8 460A4401 */ sub.s $f16, $f8, $f10 +/* 0558FC 7F020DCC E7B0002C */ swc1 $f16, 0x2c($sp) +/* 055900 7F020DD0 C4920010 */ lwc1 $f18, 0x10($a0) +/* 055904 7F020DD4 44818000 */ mtc1 $at, $f16 +/* 055908 7F020DD8 46009101 */ sub.s $f4, $f18, $f0 +/* 05590C 7F020DDC E7A40030 */ swc1 $f4, 0x30($sp) +/* 055910 7F020DE0 C4860008 */ lwc1 $f6, 8($a0) +/* 055914 7F020DE4 46003200 */ add.s $f8, $f6, $f0 +/* 055918 7F020DE8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 05591C 7F020DEC C48A000C */ lwc1 $f10, 0xc($a0) +/* 055920 7F020DF0 46105480 */ add.s $f18, $f10, $f16 +/* 055924 7F020DF4 E7B20020 */ swc1 $f18, 0x20($sp) +/* 055928 7F020DF8 C4840010 */ lwc1 $f4, 0x10($a0) +/* 05592C 7F020DFC AFA40034 */ sw $a0, 0x34($sp) +/* 055930 7F020E00 46002180 */ add.s $f6, $f4, $f0 +/* 055934 7F020E04 0FC0F863 */ jal sub_GAME_7F03E18C +/* 055938 7F020E08 E7A60024 */ swc1 $f6, 0x24($sp) +/* 05593C 7F020E0C 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 055940 7F020E10 44810000 */ mtc1 $at, $f0 +/* 055944 7F020E14 8FA40034 */ lw $a0, 0x34($sp) +/* 055948 7F020E18 27A50028 */ addiu $a1, $sp, 0x28 +/* 05594C 7F020E1C 44070000 */ mfc1 $a3, $f0 +/* 055950 7F020E20 0FC0F89F */ jal sub_GAME_7F03E27C +/* 055954 7F020E24 27A6001C */ addiu $a2, $sp, 0x1c +/* 055958 7F020E28 0FC0F884 */ jal sub_GAME_7F03E210 +/* 05595C 7F020E2C 8FA40034 */ lw $a0, 0x34($sp) +/* 055960 7F020E30 8FBF0014 */ lw $ra, 0x14($sp) +/* 055964 7F020E34 27BD0038 */ addiu $sp, $sp, 0x38 +/* 055968 7F020E38 03E00008 */ jr $ra +/* 05596C 7F020E3C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020E40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020E40 +/* 055970 7F020E40 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 055974 7F020E44 AFBF001C */ sw $ra, 0x1c($sp) +/* 055978 7F020E48 AFB10018 */ sw $s1, 0x18($sp) +/* 05597C 7F020E4C AFB00014 */ sw $s0, 0x14($sp) +/* 055980 7F020E50 AFA5002C */ sw $a1, 0x2c($sp) +/* 055984 7F020E54 8C8E0018 */ lw $t6, 0x18($a0) +/* 055988 7F020E58 8C90001C */ lw $s0, 0x1c($a0) +/* 05598C 7F020E5C 00808825 */ move $s1, $a0 +/* 055990 7F020E60 AFAE0020 */ sw $t6, 0x20($sp) +/* 055994 7F020E64 948F0012 */ lhu $t7, 0x12($a0) +/* 055998 7F020E68 02002025 */ move $a0, $s0 +/* 05599C 7F020E6C 31F80800 */ andi $t8, $t7, 0x800 +/* 0559A0 7F020E70 17000014 */ bnez $t8, .L7F020EC4 +/* 0559A4 7F020E74 00000000 */ nop +/* 0559A8 7F020E78 0FC1B2E6 */ jal getsuboffset +/* 0559AC 7F020E7C 262500BC */ addiu $a1, $s1, 0xbc +/* 0559B0 7F020E80 02002025 */ move $a0, $s0 +/* 0559B4 7F020E84 8FA5002C */ lw $a1, 0x2c($sp) +/* 0559B8 7F020E88 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 0559BC 7F020E8C 24060001 */ li $a2, 1 +/* 0559C0 7F020E90 0FC1B5AC */ jal subcalcpos +/* 0559C4 7F020E94 02002025 */ move $a0, $s0 +/* 0559C8 7F020E98 8FA40020 */ lw $a0, 0x20($sp) +/* 0559CC 7F020E9C 0FC10027 */ jal set_color_shading_from_tile +/* 0559D0 7F020EA0 262500F8 */ addiu $a1, $s1, 0xf8 +/* 0559D4 7F020EA4 8FA50020 */ lw $a1, 0x20($sp) +/* 0559D8 7F020EA8 02002025 */ move $a0, $s0 +/* 0559DC 7F020EAC 0FC1B2E6 */ jal getsuboffset +/* 0559E0 7F020EB0 24A50008 */ addiu $a1, $a1, 8 +/* 0559E4 7F020EB4 0FC08365 */ jal sub_GAME_7F020D94 +/* 0559E8 7F020EB8 02202025 */ move $a0, $s1 +/* 0559EC 7F020EBC 10000008 */ b .L7F020EE0 +/* 0559F0 7F020EC0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F020EC4: +/* 0559F4 7F020EC4 0FC1B5AC */ jal subcalcpos +/* 0559F8 7F020EC8 02002025 */ move $a0, $s0 +/* 0559FC 7F020ECC 8FA50020 */ lw $a1, 0x20($sp) +/* 055A00 7F020ED0 02002025 */ move $a0, $s0 +/* 055A04 7F020ED4 0FC1B2E6 */ jal getsuboffset +/* 055A08 7F020ED8 24A50008 */ addiu $a1, $a1, 8 +/* 055A0C 7F020EDC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F020EE0: +/* 055A10 7F020EE0 8FB00014 */ lw $s0, 0x14($sp) +/* 055A14 7F020EE4 8FB10018 */ lw $s1, 0x18($sp) +/* 055A18 7F020EE8 03E00008 */ jr $ra +/* 055A1C 7F020EEC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020EF0(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F020EF0 +/* 055A20 7F020EF0 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 055A24 7F020EF4 3C0F8003 */ lui $t7, %hi(D_8002CC6C) +/* 055A28 7F020EF8 25EFCC6C */ addiu $t7, %lo(D_8002CC6C) # addiu $t7, $t7, -0x3394 +/* 055A2C 7F020EFC AFBF0024 */ sw $ra, 0x24($sp) +/* 055A30 7F020F00 AFB00020 */ sw $s0, 0x20($sp) +/* 055A34 7F020F04 AFA40158 */ sw $a0, 0x158($sp) +/* 055A38 7F020F08 25E8003C */ addiu $t0, $t7, 0x3c +/* 055A3C 7F020F0C 27AE0118 */ addiu $t6, $sp, 0x118 +.L7F020F10: +/* 055A40 7F020F10 8DE10000 */ lw $at, ($t7) +/* 055A44 7F020F14 25EF000C */ addiu $t7, $t7, 0xc +/* 055A48 7F020F18 25CE000C */ addiu $t6, $t6, 0xc +/* 055A4C 7F020F1C ADC1FFF4 */ sw $at, -0xc($t6) +/* 055A50 7F020F20 8DE1FFF8 */ lw $at, -8($t7) +/* 055A54 7F020F24 ADC1FFF8 */ sw $at, -8($t6) +/* 055A58 7F020F28 8DE1FFFC */ lw $at, -4($t7) +/* 055A5C 7F020F2C 15E8FFF8 */ bne $t7, $t0, .L7F020F10 +/* 055A60 7F020F30 ADC1FFFC */ sw $at, -4($t6) +/* 055A64 7F020F34 8DE10000 */ lw $at, ($t7) +/* 055A68 7F020F38 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 055A6C 7F020F3C 240B0001 */ li $t3, 1 +/* 055A70 7F020F40 ADC10000 */ sw $at, ($t6) +/* 055A74 7F020F44 8FA90158 */ lw $t1, 0x158($sp) +/* 055A78 7F020F48 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 055A7C 7F020F4C 3C188003 */ lui $t8, %hi(D_8002C904) +/* 055A80 7F020F50 8D300004 */ lw $s0, 4($t1) +/* 055A84 7F020F54 8E0A001C */ lw $t2, 0x1c($s0) +/* 055A88 7F020F58 AFAB0108 */ sw $t3, 0x108($sp) +/* 055A8C 7F020F5C AFAC0104 */ sw $t4, 0x104($sp) +/* 055A90 7F020F60 AFAA0110 */ sw $t2, 0x110($sp) +/* 055A94 7F020F64 8E020014 */ lw $v0, 0x14($s0) +/* 055A98 7F020F68 304D0400 */ andi $t5, $v0, 0x400 +/* 055A9C 7F020F6C 11A00003 */ beqz $t5, .L7F020F7C +/* 055AA0 7F020F70 0002CB40 */ sll $t9, $v0, 0xd +/* 055AA4 7F020F74 07230035 */ bgezl $t9, .L7F02104C +/* 055AA8 7F020F78 96180012 */ lhu $t8, 0x12($s0) +.L7F020F7C: +/* 055AAC 7F020F7C 8F18C904 */ lw $t8, %lo(D_8002C904)($t8) +/* 055AB0 7F020F80 3C088003 */ lui $t0, %hi(D_8002C908) +/* 055AB4 7F020F84 1300001E */ beqz $t8, .L7F021000 +/* 055AB8 7F020F88 00000000 */ nop +/* 055ABC 7F020F8C 8D08C908 */ lw $t0, %lo(D_8002C908)($t0) +/* 055AC0 7F020F90 3C0E8003 */ lui $t6, %hi(animation_table_ptrs1) +/* 055AC4 7F020F94 24010001 */ li $at, 1 +/* 055AC8 7F020F98 00087880 */ sll $t7, $t0, 2 +/* 055ACC 7F020F9C 01CF7021 */ addu $t6, $t6, $t7 +/* 055AD0 7F020FA0 8DCE9D6C */ lw $t6, %lo(animation_table_ptrs1)($t6) +/* 055AD4 7F020FA4 11C1001D */ beq $t6, $at, .L7F02101C +/* 055AD8 7F020FA8 00000000 */ nop +/* 055ADC 7F020FAC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 055AE0 7F020FB0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AE4 7F020FB4 3C098003 */ lui $t1, %hi(D_8002C908) +/* 055AE8 7F020FB8 8D29C908 */ lw $t1, %lo(D_8002C908)($t1) +/* 055AEC 7F020FBC 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 055AF0 7F020FC0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AF4 7F020FC4 00095080 */ sll $t2, $t1, 2 +/* 055AF8 7F020FC8 00AA2821 */ addu $a1, $a1, $t2 +/* 055AFC 7F020FCC 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 055B00 7F020FD0 00003025 */ move $a2, $zero +/* 055B04 7F020FD4 10450011 */ beq $v0, $a1, .L7F02101C +/* 055B08 7F020FD8 00000000 */ nop +/* 055B0C 7F020FDC 44800000 */ mtc1 $zero, $f0 +/* 055B10 7F020FE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 055B14 7F020FE4 44812000 */ mtc1 $at, $f4 +/* 055B18 7F020FE8 44070000 */ mfc1 $a3, $f0 +/* 055B1C 7F020FEC E7A00014 */ swc1 $f0, 0x14($sp) +/* 055B20 7F020FF0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 055B24 7F020FF4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 055B28 7F020FF8 10000008 */ b .L7F02101C +/* 055B2C 7F020FFC 00000000 */ nop +.L7F021000: +/* 055B30 7F021000 0FC0C9AF */ jal manage_actions +/* 055B34 7F021004 02002025 */ move $a0, $s0 +/* 055B38 7F021008 8E0B001C */ lw $t3, 0x1c($s0) +/* 055B3C 7F02100C 15600003 */ bnez $t3, .L7F02101C +/* 055B40 7F021010 00000000 */ nop +/* 055B44 7F021014 100002BD */ b .L7F021B0C +/* 055B48 7F021018 24020001 */ li $v0, 1 +.L7F02101C: +/* 055B4C 7F02101C 3C0C8003 */ lui $t4, %hi(D_8002C90C) +/* 055B50 7F021020 8D8CC90C */ lw $t4, %lo(D_8002C90C)($t4) +/* 055B54 7F021024 3C0D8003 */ lui $t5, %hi(D_8002C910) +/* 055B58 7F021028 51800008 */ beql $t4, $zero, .L7F02104C +/* 055B5C 7F02102C 96180012 */ lhu $t8, 0x12($s0) +/* 055B60 7F021030 8DADC910 */ lw $t5, %lo(D_8002C910)($t5) +/* 055B64 7F021034 AFA00104 */ sw $zero, 0x104($sp) +/* 055B68 7F021038 24190001 */ li $t9, 1 +/* 055B6C 7F02103C 51A00003 */ beql $t5, $zero, .L7F02104C +/* 055B70 7F021040 96180012 */ lhu $t8, 0x12($s0) +/* 055B74 7F021044 AFB90104 */ sw $t9, 0x104($sp) +/* 055B78 7F021048 96180012 */ lhu $t8, 0x12($s0) +.L7F02104C: +/* 055B7C 7F02104C 33080020 */ andi $t0, $t8, 0x20 +/* 055B80 7F021050 51000006 */ beql $t0, $zero, .L7F02106C +/* 055B84 7F021054 8E020160 */ lw $v0, 0x160($s0) +/* 055B88 7F021058 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 055B8C 7F02105C 8FA40158 */ lw $a0, 0x158($sp) +/* 055B90 7F021060 100002AA */ b .L7F021B0C +/* 055B94 7F021064 24020001 */ li $v0, 1 +/* 055B98 7F021068 8E020160 */ lw $v0, 0x160($s0) +.L7F02106C: +/* 055B9C 7F02106C 50400009 */ beql $v0, $zero, .L7F021094 +/* 055BA0 7F021070 8E020164 */ lw $v0, 0x164($s0) +/* 055BA4 7F021074 8C440004 */ lw $a0, 4($v0) +/* 055BA8 7F021078 8C8F0064 */ lw $t7, 0x64($a0) +/* 055BAC 7F02107C 31EE0004 */ andi $t6, $t7, 4 +/* 055BB0 7F021080 51C00004 */ beql $t6, $zero, .L7F021094 +/* 055BB4 7F021084 8E020164 */ lw $v0, 0x164($s0) +/* 055BB8 7F021088 0FC10409 */ jal sub_GAME_7F041024 +/* 055BBC 7F02108C 24050001 */ li $a1, 1 +/* 055BC0 7F021090 8E020164 */ lw $v0, 0x164($s0) +.L7F021094: +/* 055BC4 7F021094 50400009 */ beql $v0, $zero, .L7F0210BC +/* 055BC8 7F021098 8E020014 */ lw $v0, 0x14($s0) +/* 055BCC 7F02109C 8C440004 */ lw $a0, 4($v0) +/* 055BD0 7F0210A0 8C890064 */ lw $t1, 0x64($a0) +/* 055BD4 7F0210A4 312A0004 */ andi $t2, $t1, 4 +/* 055BD8 7F0210A8 51400004 */ beql $t2, $zero, .L7F0210BC +/* 055BDC 7F0210AC 8E020014 */ lw $v0, 0x14($s0) +/* 055BE0 7F0210B0 0FC10409 */ jal sub_GAME_7F041024 +/* 055BE4 7F0210B4 24050001 */ li $a1, 1 +/* 055BE8 7F0210B8 8E020014 */ lw $v0, 0x14($s0) +.L7F0210BC: +/* 055BEC 7F0210BC 8FAC0158 */ lw $t4, 0x158($sp) +/* 055BF0 7F0210C0 304B0400 */ andi $t3, $v0, 0x400 +/* 055BF4 7F0210C4 51600005 */ beql $t3, $zero, .L7F0210DC +/* 055BF8 7F0210C8 918D0000 */ lbu $t5, ($t4) +/* 055BFC 7F0210CC AFA0010C */ sw $zero, 0x10c($sp) +/* 055C00 7F0210D0 100000BD */ b .L7F0213C8 +/* 055C04 7F0210D4 82030007 */ lb $v1, 7($s0) +/* 055C08 7F0210D8 918D0000 */ lbu $t5, ($t4) +.L7F0210DC: +/* 055C0C 7F0210DC 24010006 */ li $at, 6 +/* 055C10 7F0210E0 55A1000D */ bnel $t5, $at, .L7F021118 +/* 055C14 7F0210E4 00027A00 */ sll $t7, $v0, 8 +/* 055C18 7F0210E8 0FC26C57 */ jal sub_GAME_7F09B15C +/* 055C1C 7F0210EC 01802025 */ move $a0, $t4 +/* 055C20 7F0210F0 0002C880 */ sll $t9, $v0, 2 +/* 055C24 7F0210F4 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 055C28 7F0210F8 0319C021 */ addu $t8, $t8, $t9 +/* 055C2C 7F0210FC 8F189EE0 */ lw $t8, %lo(ptr_BONDdata_p1)($t8) +/* 055C30 7F021100 24010001 */ li $at, 1 +/* 055C34 7F021104 8F080000 */ lw $t0, ($t8) +/* 055C38 7F021108 51010005 */ beql $t0, $at, .L7F021120 +/* 055C3C 7F02110C 240E0001 */ li $t6, 1 +/* 055C40 7F021110 8E020014 */ lw $v0, 0x14($s0) +/* 055C44 7F021114 00027A00 */ sll $t7, $v0, 8 +.L7F021118: +/* 055C48 7F021118 05E10017 */ bgez $t7, .L7F021178 +/* 055C4C 7F02111C 240E0001 */ li $t6, 1 +.L7F021120: +/* 055C50 7F021120 AFAE010C */ sw $t6, 0x10c($sp) +/* 055C54 7F021124 82090007 */ lb $t1, 7($s0) +/* 055C58 7F021128 24010003 */ li $at, 3 +/* 055C5C 7F02112C 02002025 */ move $a0, $s0 +/* 055C60 7F021130 1521000D */ bne $t1, $at, .L7F021168 +/* 055C64 7F021134 00000000 */ nop +/* 055C68 7F021138 8E0A002C */ lw $t2, 0x2c($s0) +/* 055C6C 7F02113C 1540000A */ bnez $t2, .L7F021168 +/* 055C70 7F021140 00000000 */ nop +/* 055C74 7F021144 8E0B003C */ lw $t3, 0x3c($s0) +/* 055C78 7F021148 8FA50104 */ lw $a1, 0x104($sp) +/* 055C7C 7F02114C 00003025 */ move $a2, $zero +/* 055C80 7F021150 11600005 */ beqz $t3, .L7F021168 +/* 055C84 7F021154 00000000 */ nop +/* 055C88 7F021158 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055C8C 7F02115C 8FA40110 */ lw $a0, 0x110($sp) +/* 055C90 7F021160 10000003 */ b .L7F021170 +/* 055C94 7F021164 00000000 */ nop +.L7F021168: +/* 055C98 7F021168 0FC08390 */ jal sub_GAME_7F020E40 +/* 055C9C 7F02116C 8FA50104 */ lw $a1, 0x104($sp) +.L7F021170: +/* 055CA0 7F021170 10000095 */ b .L7F0213C8 +/* 055CA4 7F021174 82030007 */ lb $v1, 7($s0) +.L7F021178: +/* 055CA8 7F021178 82030007 */ lb $v1, 7($s0) +/* 055CAC 7F02117C 2406000E */ li $a2, 14 +/* 055CB0 7F021180 2401000F */ li $at, 15 +/* 055CB4 7F021184 10C30003 */ beq $a2, $v1, .L7F021194 +/* 055CB8 7F021188 00000000 */ nop +/* 055CBC 7F02118C 54610041 */ bnel $v1, $at, .L7F021294 +/* 055CC0 7F021190 24010003 */ li $at, 3 +.L7F021194: +/* 055CC4 7F021194 54C30005 */ bnel $a2, $v1, .L7F0211AC +/* 055CC8 7F021198 2401000F */ li $at, 15 +/* 055CCC 7F02119C 820D0038 */ lb $t5, 0x38($s0) +/* 055CD0 7F0211A0 24010006 */ li $at, 6 +/* 055CD4 7F0211A4 11A10007 */ beq $t5, $at, .L7F0211C4 +/* 055CD8 7F0211A8 2401000F */ li $at, 15 +.L7F0211AC: +/* 055CDC 7F0211AC 1461001E */ bne $v1, $at, .L7F021228 +/* 055CE0 7F0211B0 02002025 */ move $a0, $s0 +/* 055CE4 7F0211B4 820C005C */ lb $t4, 0x5c($s0) +/* 055CE8 7F0211B8 24010006 */ li $at, 6 +/* 055CEC 7F0211BC 1581001A */ bne $t4, $at, .L7F021228 +/* 055CF0 7F0211C0 00000000 */ nop +.L7F0211C4: +/* 055CF4 7F0211C4 0FC1B403 */ jal getinstsize +/* 055CF8 7F0211C8 8FA40110 */ lw $a0, 0x110($sp) +/* 055CFC 7F0211CC 8FA40158 */ lw $a0, 0x158($sp) +/* 055D00 7F0211D0 44060000 */ mfc1 $a2, $f0 +/* 055D04 7F0211D4 24070001 */ li $a3, 1 +/* 055D08 7F0211D8 24850008 */ addiu $a1, $a0, 8 +/* 055D0C 7F0211DC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D10 7F0211E0 AFA50030 */ sw $a1, 0x30($sp) +/* 055D14 7F0211E4 10400028 */ beqz $v0, .L7F021288 +/* 055D18 7F0211E8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D1C 7F0211EC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D20 7F0211F0 0FC1B2E6 */ jal getsuboffset +/* 055D24 7F0211F4 260500BC */ addiu $a1, $s0, 0xbc +/* 055D28 7F0211F8 0FC1B5AC */ jal subcalcpos +/* 055D2C 7F0211FC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D30 7F021200 8FA40158 */ lw $a0, 0x158($sp) +/* 055D34 7F021204 0FC10027 */ jal set_color_shading_from_tile +/* 055D38 7F021208 260500F8 */ addiu $a1, $s0, 0xf8 +/* 055D3C 7F02120C 8FA40110 */ lw $a0, 0x110($sp) +/* 055D40 7F021210 0FC1B2E6 */ jal getsuboffset +/* 055D44 7F021214 8FA50030 */ lw $a1, 0x30($sp) +/* 055D48 7F021218 0FC08365 */ jal sub_GAME_7F020D94 +/* 055D4C 7F02121C 02002025 */ move $a0, $s0 +/* 055D50 7F021220 10000019 */ b .L7F021288 +/* 055D54 7F021224 00000000 */ nop +.L7F021228: +/* 055D58 7F021228 0FC08390 */ jal sub_GAME_7F020E40 +/* 055D5C 7F02122C 8FA50104 */ lw $a1, 0x104($sp) +/* 055D60 7F021230 0FC1B403 */ jal getinstsize +/* 055D64 7F021234 8FA40110 */ lw $a0, 0x110($sp) +/* 055D68 7F021238 8FA40158 */ lw $a0, 0x158($sp) +/* 055D6C 7F02123C 44060000 */ mfc1 $a2, $f0 +/* 055D70 7F021240 24070001 */ li $a3, 1 +/* 055D74 7F021244 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D78 7F021248 24850008 */ addiu $a1, $a0, 8 +/* 055D7C 7F02124C 1040000E */ beqz $v0, .L7F021288 +/* 055D80 7F021250 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D84 7F021254 82030007 */ lb $v1, 7($s0) +/* 055D88 7F021258 2401000E */ li $at, 14 +/* 055D8C 7F02125C 3C088005 */ lui $t0, %hi(global_timer) +/* 055D90 7F021260 54610005 */ bnel $v1, $at, .L7F021278 +/* 055D94 7F021264 2401000F */ li $at, 15 +/* 055D98 7F021268 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 055D9C 7F02126C 10000006 */ b .L7F021288 +/* 055DA0 7F021270 AE080078 */ sw $t0, 0x78($s0) +/* 055DA4 7F021274 2401000F */ li $at, 15 +.L7F021278: +/* 055DA8 7F021278 14610003 */ bne $v1, $at, .L7F021288 +/* 055DAC 7F02127C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 055DB0 7F021280 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 055DB4 7F021284 AE0F009C */ sw $t7, 0x9c($s0) +.L7F021288: +/* 055DB8 7F021288 1000004F */ b .L7F0213C8 +/* 055DBC 7F02128C 82030007 */ lb $v1, 7($s0) +/* 055DC0 7F021290 24010003 */ li $at, 3 +.L7F021294: +/* 055DC4 7F021294 5461001C */ bnel $v1, $at, .L7F021308 +/* 055DC8 7F021298 24010001 */ li $at, 1 +/* 055DCC 7F02129C 8E0E002C */ lw $t6, 0x2c($s0) +/* 055DD0 7F0212A0 55C00019 */ bnezl $t6, .L7F021308 +/* 055DD4 7F0212A4 24010001 */ li $at, 1 +/* 055DD8 7F0212A8 0FC1B403 */ jal getinstsize +/* 055DDC 7F0212AC 8FA40110 */ lw $a0, 0x110($sp) +/* 055DE0 7F0212B0 8FA40158 */ lw $a0, 0x158($sp) +/* 055DE4 7F0212B4 44060000 */ mfc1 $a2, $f0 +/* 055DE8 7F0212B8 24070001 */ li $a3, 1 +/* 055DEC 7F0212BC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055DF0 7F0212C0 24850008 */ addiu $a1, $a0, 8 +/* 055DF4 7F0212C4 10400009 */ beqz $v0, .L7F0212EC +/* 055DF8 7F0212C8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055DFC 7F0212CC 8E0A003C */ lw $t2, 0x3c($s0) +/* 055E00 7F0212D0 02002025 */ move $a0, $s0 +/* 055E04 7F0212D4 55400006 */ bnezl $t2, .L7F0212F0 +/* 055E08 7F0212D8 8FA40110 */ lw $a0, 0x110($sp) +/* 055E0C 7F0212DC 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E10 7F0212E0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E14 7F0212E4 10000005 */ b .L7F0212FC +/* 055E18 7F0212E8 00000000 */ nop +.L7F0212EC: +/* 055E1C 7F0212EC 8FA40110 */ lw $a0, 0x110($sp) +.L7F0212F0: +/* 055E20 7F0212F0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E24 7F0212F4 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055E28 7F0212F8 00003025 */ move $a2, $zero +.L7F0212FC: +/* 055E2C 7F0212FC 10000032 */ b .L7F0213C8 +/* 055E30 7F021300 82030007 */ lb $v1, 7($s0) +/* 055E34 7F021304 24010001 */ li $at, 1 +.L7F021308: +/* 055E38 7F021308 1461001C */ bne $v1, $at, .L7F02137C +/* 055E3C 7F02130C 30484000 */ andi $t0, $v0, 0x4000 +/* 055E40 7F021310 0FC1B403 */ jal getinstsize +/* 055E44 7F021314 8FA40110 */ lw $a0, 0x110($sp) +/* 055E48 7F021318 8FA40158 */ lw $a0, 0x158($sp) +/* 055E4C 7F02131C 44060000 */ mfc1 $a2, $f0 +/* 055E50 7F021320 24070001 */ li $a3, 1 +/* 055E54 7F021324 0FC1535B */ jal sub_GAME_7F054D6C +/* 055E58 7F021328 24850008 */ addiu $a1, $a0, 8 +/* 055E5C 7F02132C 14400005 */ bnez $v0, .L7F021344 +/* 055E60 7F021330 AFA2010C */ sw $v0, 0x10c($sp) +/* 055E64 7F021334 8E0D0014 */ lw $t5, 0x14($s0) +/* 055E68 7F021338 8FB90110 */ lw $t9, 0x110($sp) +/* 055E6C 7F02133C 31AC0001 */ andi $t4, $t5, 1 +/* 055E70 7F021340 11800005 */ beqz $t4, .L7F021358 +.L7F021344: +/* 055E74 7F021344 02002025 */ move $a0, $s0 +/* 055E78 7F021348 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E7C 7F02134C 8FA50104 */ lw $a1, 0x104($sp) +/* 055E80 7F021350 10000008 */ b .L7F021374 +/* 055E84 7F021354 00000000 */ nop +.L7F021358: +/* 055E88 7F021358 8F380054 */ lw $t8, 0x54($t9) +/* 055E8C 7F02135C 03202025 */ move $a0, $t9 +/* 055E90 7F021360 8FA50104 */ lw $a1, 0x104($sp) +/* 055E94 7F021364 13000003 */ beqz $t8, .L7F021374 +/* 055E98 7F021368 00000000 */ nop +/* 055E9C 7F02136C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EA0 7F021370 00003025 */ move $a2, $zero +.L7F021374: +/* 055EA4 7F021374 10000014 */ b .L7F0213C8 +/* 055EA8 7F021378 82030007 */ lb $v1, 7($s0) +.L7F02137C: +/* 055EAC 7F02137C 11000007 */ beqz $t0, .L7F02139C +/* 055EB0 7F021380 02002025 */ move $a0, $s0 +/* 055EB4 7F021384 8FA40110 */ lw $a0, 0x110($sp) +/* 055EB8 7F021388 8FA50104 */ lw $a1, 0x104($sp) +/* 055EBC 7F02138C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EC0 7F021390 00003025 */ move $a2, $zero +/* 055EC4 7F021394 10000003 */ b .L7F0213A4 +/* 055EC8 7F021398 00000000 */ nop +.L7F02139C: +/* 055ECC 7F02139C 0FC08390 */ jal sub_GAME_7F020E40 +/* 055ED0 7F0213A0 8FA50104 */ lw $a1, 0x104($sp) +.L7F0213A4: +/* 055ED4 7F0213A4 0FC1B403 */ jal getinstsize +/* 055ED8 7F0213A8 8FA40110 */ lw $a0, 0x110($sp) +/* 055EDC 7F0213AC 8FA40158 */ lw $a0, 0x158($sp) +/* 055EE0 7F0213B0 44060000 */ mfc1 $a2, $f0 +/* 055EE4 7F0213B4 24070001 */ li $a3, 1 +/* 055EE8 7F0213B8 0FC1535B */ jal sub_GAME_7F054D6C +/* 055EEC 7F0213BC 24850008 */ addiu $a1, $a0, 8 +/* 055EF0 7F0213C0 AFA2010C */ sw $v0, 0x10c($sp) +/* 055EF4 7F0213C4 82030007 */ lb $v1, 7($s0) +.L7F0213C8: +/* 055EF8 7F0213C8 24010001 */ li $at, 1 +/* 055EFC 7F0213CC 14610009 */ bne $v1, $at, .L7F0213F4 +/* 055F00 7F0213D0 8FAE0110 */ lw $t6, 0x110($sp) +/* 055F04 7F0213D4 8DC90054 */ lw $t1, 0x54($t6) +/* 055F08 7F0213D8 8FAA0158 */ lw $t2, 0x158($sp) +/* 055F0C 7F0213DC 55200006 */ bnezl $t1, .L7F0213F8 +/* 055F10 7F0213E0 960D0012 */ lhu $t5, 0x12($s0) +/* 055F14 7F0213E4 914B0000 */ lbu $t3, ($t2) +/* 055F18 7F0213E8 24010006 */ li $at, 6 +/* 055F1C 7F0213EC 15610004 */ bne $t3, $at, .L7F021400 +/* 055F20 7F0213F0 00000000 */ nop +.L7F0213F4: +/* 055F24 7F0213F4 960D0012 */ lhu $t5, 0x12($s0) +.L7F0213F8: +/* 055F28 7F0213F8 35AC0200 */ ori $t4, $t5, 0x200 +/* 055F2C 7F0213FC A60C0012 */ sh $t4, 0x12($s0) +.L7F021400: +/* 055F30 7F021400 0FC0817C */ jal sub_GAME_7F0205F0 +/* 055F34 7F021404 02002025 */ move $a0, $s0 +/* 055F38 7F021408 8E040020 */ lw $a0, 0x20($s0) +/* 055F3C 7F02140C 50800005 */ beql $a0, $zero, .L7F021424 +/* 055F40 7F021410 8FB8010C */ lw $t8, 0x10c($sp) +/* 055F44 7F021414 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 055F48 7F021418 00000000 */ nop +/* 055F4C 7F02141C AE000020 */ sw $zero, 0x20($s0) +/* 055F50 7F021420 8FB8010C */ lw $t8, 0x10c($sp) +.L7F021424: +/* 055F54 7F021424 261900F8 */ addiu $t9, $s0, 0xf8 +/* 055F58 7F021428 53000182 */ beql $t8, $zero, .L7F021A34 +/* 055F5C 7F02142C 8E020160 */ lw $v0, 0x160($s0) +/* 055F60 7F021430 0FC24412 */ jal get_debug_chrnum_flag +/* 055F64 7F021434 AFB90030 */ sw $t9, 0x30($sp) +/* 055F68 7F021438 8FA20158 */ lw $v0, 0x158($sp) +/* 055F6C 7F02143C 2404000C */ li $a0, 12 +/* 055F70 7F021440 90480001 */ lbu $t0, 1($v0) +/* 055F74 7F021444 350F0002 */ ori $t7, $t0, 2 +/* 055F78 7F021448 A04F0001 */ sb $t7, 1($v0) +/* 055F7C 7F02144C 8E0E0014 */ lw $t6, 0x14($s0) +/* 055F80 7F021450 35C90008 */ ori $t1, $t6, 8 +/* 055F84 7F021454 0FC249EF */ jal cheatCheckIfOn +/* 055F88 7F021458 AE090014 */ sw $t1, 0x14($s0) +/* 055F8C 7F02145C 10400004 */ beqz $v0, .L7F021470 +/* 055F90 7F021460 3C013EA0 */ li $at, 0x3EA00000 # 0.312500 +/* 055F94 7F021464 44816000 */ mtc1 $at, $f12 +/* 055F98 7F021468 0FC1B103 */ jal set_float_80036088 +/* 055F9C 7F02146C 00000000 */ nop +.L7F021470: +/* 055FA0 7F021470 3C0A7F02 */ lui $t2, %hi(sub_GAME_7F02083C) # $t2, 0x7f02 +/* 055FA4 7F021474 254A083C */ addiu $t2, %lo(sub_GAME_7F02083C) # addiu $t2, $t2, 0x83c +/* 055FA8 7F021478 3C018003 */ lui $at, %hi(D_80036090) +/* 055FAC 7F02147C AC2A6090 */ sw $t2, %lo(D_80036090)($at) +/* 055FB0 7F021480 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) +/* 055FB4 7F021484 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 055FB8 7F021488 AC309B60 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at) +/* 055FBC 7F02148C 8FAB0110 */ lw $t3, 0x110($sp) +/* 055FC0 7F021490 AFA20118 */ sw $v0, 0x118($sp) +/* 055FC4 7F021494 8D6D0008 */ lw $t5, 8($t3) +/* 055FC8 7F021498 85A4000E */ lh $a0, 0xe($t5) +/* 055FCC 7F02149C 00046180 */ sll $t4, $a0, 6 +/* 055FD0 7F0214A0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 055FD4 7F0214A4 01802025 */ move $a0, $t4 +/* 055FD8 7F0214A8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) +/* 055FDC 7F0214AC 24A59B60 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x64a0 +/* 055FE0 7F0214B0 8CA30000 */ lw $v1, ($a1) +/* 055FE4 7F0214B4 AFA20128 */ sw $v0, 0x128($sp) +/* 055FE8 7F0214B8 80640011 */ lb $a0, 0x11($v1) +/* 055FEC 7F0214BC 0480000B */ bltz $a0, .L7F0214EC +/* 055FF0 7F0214C0 3C188005 */ lui $t8, %hi(clock_timer) +/* 055FF4 7F0214C4 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 055FF8 7F0214C8 240FFFFF */ li $t7, -1 +/* 055FFC 7F0214CC 0098C821 */ addu $t9, $a0, $t8 +/* 056000 7F0214D0 A0790011 */ sb $t9, 0x11($v1) +/* 056004 7F0214D4 8CA30000 */ lw $v1, ($a1) +/* 056008 7F0214D8 80680011 */ lb $t0, 0x11($v1) +/* 05600C 7F0214DC 2901001E */ slti $at, $t0, 0x1e +/* 056010 7F0214E0 54200003 */ bnezl $at, .L7F0214F0 +/* 056014 7F0214E4 27A40118 */ addiu $a0, $sp, 0x118 +/* 056018 7F0214E8 A06F0011 */ sb $t7, 0x11($v1) +.L7F0214EC: +/* 05601C 7F0214EC 27A40118 */ addiu $a0, $sp, 0x118 +.L7F0214F0: +/* 056020 7F0214F0 0FC1BCBE */ jal subcalcmatrices +/* 056024 7F0214F4 8FA50110 */ lw $a1, 0x110($sp) +/* 056028 7F0214F8 3C018003 */ lui $at, %hi(D_80036090) +/* 05602C 7F0214FC AC206090 */ sw $zero, %lo(D_80036090)($at) +/* 056030 7F021500 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056034 7F021504 44816000 */ mtc1 $at, $f12 +/* 056038 7F021508 0FC1B103 */ jal set_float_80036088 +/* 05603C 7F02150C 00000000 */ nop +/* 056040 7F021510 260400F4 */ addiu $a0, $s0, 0xf4 +/* 056044 7F021514 0FC100C4 */ jal update_color_shading +/* 056048 7F021518 8FA50030 */ lw $a1, 0x30($sp) +/* 05604C 7F02151C 0FC1B1DA */ jal sub_GAME_7F06C768 +/* 056050 7F021520 8FA40110 */ lw $a0, 0x110($sp) +/* 056054 7F021524 8FAE0158 */ lw $t6, 0x158($sp) +/* 056058 7F021528 00002025 */ move $a0, $zero +/* 05605C 7F02152C E5C00018 */ swc1 $f0, 0x18($t6) +/* 056060 7F021530 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 056064 7F021534 8FA50110 */ lw $a1, 0x110($sp) +/* 056068 7F021538 AE020020 */ sw $v0, 0x20($s0) +/* 05606C 7F02153C 26060020 */ addiu $a2, $s0, 0x20 +/* 056070 7F021540 AFA60030 */ sw $a2, 0x30($sp) +/* 056074 7F021544 8FA40158 */ lw $a0, 0x158($sp) +/* 056078 7F021548 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05607C 7F02154C 00002825 */ move $a1, $zero +/* 056080 7F021550 8FA60030 */ lw $a2, 0x30($sp) +/* 056084 7F021554 8FA40158 */ lw $a0, 0x158($sp) +/* 056088 7F021558 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05608C 7F02155C 24050001 */ li $a1, 1 +/* 056090 7F021560 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056094 7F021564 5040011A */ beql $v0, $zero, .L7F0219D0 +/* 056098 7F021568 8FAD0110 */ lw $t5, 0x110($sp) +/* 05609C 7F02156C 8C470004 */ lw $a3, 4($v0) +/* 0560A0 7F021570 90490001 */ lbu $t1, 1($v0) +/* 0560A4 7F021574 00003025 */ move $a2, $zero +/* 0560A8 7F021578 8CE30014 */ lw $v1, 0x14($a3) +/* 0560AC 7F02157C 352A0002 */ ori $t2, $t1, 2 +/* 0560B0 7F021580 A04A0001 */ sb $t2, 1($v0) +/* 0560B4 7F021584 8C65001C */ lw $a1, 0x1c($v1) +/* 0560B8 7F021588 8FA40110 */ lw $a0, 0x110($sp) +/* 0560BC 7F02158C AFA70100 */ sw $a3, 0x100($sp) +/* 0560C0 7F021590 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0560C4 7F021594 AFA300FC */ sw $v1, 0xfc($sp) +/* 0560C8 7F021598 8FAB00FC */ lw $t3, 0xfc($sp) +/* 0560CC 7F02159C AFA20118 */ sw $v0, 0x118($sp) +/* 0560D0 7F0215A0 8D6D0008 */ lw $t5, 8($t3) +/* 0560D4 7F0215A4 85A4000E */ lh $a0, 0xe($t5) +/* 0560D8 7F0215A8 00046180 */ sll $t4, $a0, 6 +/* 0560DC 7F0215AC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0560E0 7F0215B0 01802025 */ move $a0, $t4 +/* 0560E4 7F0215B4 AFA20128 */ sw $v0, 0x128($sp) +/* 0560E8 7F0215B8 27A40118 */ addiu $a0, $sp, 0x118 +/* 0560EC 7F0215BC 0FC1BC92 */ jal instcalcmatrices +/* 0560F0 7F0215C0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0560F4 7F0215C4 82020006 */ lb $v0, 6($s0) +/* 0560F8 7F0215C8 2841002A */ slti $at, $v0, 0x2a +/* 0560FC 7F0215CC 142000F2 */ bnez $at, .L7F021998 +/* 056100 7F0215D0 28410046 */ slti $at, $v0, 0x46 +/* 056104 7F0215D4 102000F0 */ beqz $at, .L7F021998 +/* 056108 7F0215D8 3C198003 */ lui $t9, %hi(D_8002CCAC) +/* 05610C 7F0215DC 2739CCAC */ addiu $t9, %lo(D_8002CCAC) # addiu $t9, $t9, -0x3354 +/* 056110 7F0215E0 8F210000 */ lw $at, ($t9) +/* 056114 7F0215E4 27B800F0 */ addiu $t8, $sp, 0xf0 +/* 056118 7F0215E8 8F2F0004 */ lw $t7, 4($t9) +/* 05611C 7F0215EC AF010000 */ sw $at, ($t8) +/* 056120 7F0215F0 8F210008 */ lw $at, 8($t9) +/* 056124 7F0215F4 AF0F0004 */ sw $t7, 4($t8) +/* 056128 7F0215F8 AF010008 */ sw $at, 8($t8) +/* 05612C 7F0215FC 0FC149A1 */ jal get_hat_model +/* 056130 7F021600 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 056134 7F021604 AFA20060 */ sw $v0, 0x60($sp) +/* 056138 7F021608 82040006 */ lb $a0, 6($s0) +/* 05613C 7F02160C 00024880 */ sll $t1, $v0, 2 +/* 056140 7F021610 01224823 */ subu $t1, $t1, $v0 +/* 056144 7F021614 2484FFD6 */ addiu $a0, $a0, -0x2a +/* 056148 7F021618 000470C0 */ sll $t6, $a0, 3 +/* 05614C 7F02161C 01C47021 */ addu $t6, $t6, $a0 +/* 056150 7F021620 000E7100 */ sll $t6, $t6, 4 +/* 056154 7F021624 000948C0 */ sll $t1, $t1, 3 +/* 056158 7F021628 3C0B8004 */ lui $t3, %hi(headHat_array_8003E464) +/* 05615C 7F02162C 256BE464 */ addiu $t3, %lo(headHat_array_8003E464) # addiu $t3, $t3, -0x1b9c +/* 056160 7F021630 01C95021 */ addu $t2, $t6, $t1 +/* 056164 7F021634 014B1821 */ addu $v1, $t2, $t3 +/* 056168 7F021638 0FC243BF */ jal get_debug_render_raster +/* 05616C 7F02163C AFA30058 */ sw $v1, 0x58($sp) +/* 056170 7F021640 144000AA */ bnez $v0, .L7F0218EC +/* 056174 7F021644 8FA30058 */ lw $v1, 0x58($sp) +/* 056178 7F021648 AFA00054 */ sw $zero, 0x54($sp) +/* 05617C 7F02164C 00002025 */ move $a0, $zero +/* 056180 7F021650 24050020 */ li $a1, 32 +/* 056184 7F021654 0C0030C3 */ jal get_controller_buttons_held +/* 056188 7F021658 AFA30058 */ sw $v1, 0x58($sp) +/* 05618C 7F02165C 1040004F */ beqz $v0, .L7F02179C +/* 056190 7F021660 8FA30058 */ lw $v1, 0x58($sp) +/* 056194 7F021664 00002025 */ move $a0, $zero +/* 056198 7F021668 34058000 */ li $a1, 32768 +/* 05619C 7F02166C 0C0030C3 */ jal get_controller_buttons_held +/* 0561A0 7F021670 AFA30058 */ sw $v1, 0x58($sp) +/* 0561A4 7F021674 10400008 */ beqz $v0, .L7F021698 +/* 0561A8 7F021678 8FA30058 */ lw $v1, 0x58($sp) +/* 0561AC 7F02167C 3C018005 */ lui $at, %hi(D_80051D58) +/* 0561B0 7F021680 C4281D58 */ lwc1 $f8, %lo(D_80051D58)($at) +/* 0561B4 7F021684 C4660008 */ lwc1 $f6, 8($v1) +/* 0561B8 7F021688 240D0001 */ li $t5, 1 +/* 0561BC 7F02168C 46083281 */ sub.s $f10, $f6, $f8 +/* 0561C0 7F021690 E46A0008 */ swc1 $f10, 8($v1) +/* 0561C4 7F021694 AFAD0054 */ sw $t5, 0x54($sp) +.L7F021698: +/* 0561C8 7F021698 00002025 */ move $a0, $zero +/* 0561CC 7F02169C 24054000 */ li $a1, 16384 +/* 0561D0 7F0216A0 0C0030C3 */ jal get_controller_buttons_held +/* 0561D4 7F0216A4 AFA30058 */ sw $v1, 0x58($sp) +/* 0561D8 7F0216A8 10400008 */ beqz $v0, .L7F0216CC +/* 0561DC 7F0216AC 8FA30058 */ lw $v1, 0x58($sp) +/* 0561E0 7F0216B0 3C018005 */ lui $at, %hi(D_80051D5C) +/* 0561E4 7F0216B4 C4321D5C */ lwc1 $f18, %lo(D_80051D5C)($at) +/* 0561E8 7F0216B8 C4700008 */ lwc1 $f16, 8($v1) +/* 0561EC 7F0216BC 240C0001 */ li $t4, 1 +/* 0561F0 7F0216C0 46128100 */ add.s $f4, $f16, $f18 +/* 0561F4 7F0216C4 E4640008 */ swc1 $f4, 8($v1) +/* 0561F8 7F0216C8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0216CC: +/* 0561FC 7F0216CC 00002025 */ move $a0, $zero +/* 056200 7F0216D0 24050004 */ li $a1, 4 +/* 056204 7F0216D4 0C0030C3 */ jal get_controller_buttons_held +/* 056208 7F0216D8 AFA30058 */ sw $v1, 0x58($sp) +/* 05620C 7F0216DC 10400008 */ beqz $v0, .L7F021700 +/* 056210 7F0216E0 8FA30058 */ lw $v1, 0x58($sp) +/* 056214 7F0216E4 3C018005 */ lui $at, %hi(D_80051D60) +/* 056218 7F0216E8 C4281D60 */ lwc1 $f8, %lo(D_80051D60)($at) +/* 05621C 7F0216EC C4660004 */ lwc1 $f6, 4($v1) +/* 056220 7F0216F0 24080001 */ li $t0, 1 +/* 056224 7F0216F4 46083281 */ sub.s $f10, $f6, $f8 +/* 056228 7F0216F8 E46A0004 */ swc1 $f10, 4($v1) +/* 05622C 7F0216FC AFA80054 */ sw $t0, 0x54($sp) +.L7F021700: +/* 056230 7F021700 00002025 */ move $a0, $zero +/* 056234 7F021704 24050008 */ li $a1, 8 +/* 056238 7F021708 0C0030C3 */ jal get_controller_buttons_held +/* 05623C 7F02170C AFA30058 */ sw $v1, 0x58($sp) +/* 056240 7F021710 10400008 */ beqz $v0, .L7F021734 +/* 056244 7F021714 8FA30058 */ lw $v1, 0x58($sp) +/* 056248 7F021718 3C018005 */ lui $at, %hi(D_80051D64) +/* 05624C 7F02171C C4321D64 */ lwc1 $f18, %lo(D_80051D64)($at) +/* 056250 7F021720 C4700004 */ lwc1 $f16, 4($v1) +/* 056254 7F021724 24180001 */ li $t8, 1 +/* 056258 7F021728 46128100 */ add.s $f4, $f16, $f18 +/* 05625C 7F02172C E4640004 */ swc1 $f4, 4($v1) +/* 056260 7F021730 AFB80054 */ sw $t8, 0x54($sp) +.L7F021734: +/* 056264 7F021734 00002025 */ move $a0, $zero +/* 056268 7F021738 24050002 */ li $a1, 2 +/* 05626C 7F02173C 0C0030C3 */ jal get_controller_buttons_held +/* 056270 7F021740 AFA30058 */ sw $v1, 0x58($sp) +/* 056274 7F021744 10400008 */ beqz $v0, .L7F021768 +/* 056278 7F021748 8FA30058 */ lw $v1, 0x58($sp) +/* 05627C 7F02174C 3C018005 */ lui $at, %hi(D_80051D68) +/* 056280 7F021750 C4281D68 */ lwc1 $f8, %lo(D_80051D68)($at) +/* 056284 7F021754 C4660000 */ lwc1 $f6, ($v1) +/* 056288 7F021758 24190001 */ li $t9, 1 +/* 05628C 7F02175C 46083281 */ sub.s $f10, $f6, $f8 +/* 056290 7F021760 E46A0000 */ swc1 $f10, ($v1) +/* 056294 7F021764 AFB90054 */ sw $t9, 0x54($sp) +.L7F021768: +/* 056298 7F021768 00002025 */ move $a0, $zero +/* 05629C 7F02176C 24050001 */ li $a1, 1 +/* 0562A0 7F021770 0C0030C3 */ jal get_controller_buttons_held +/* 0562A4 7F021774 AFA30058 */ sw $v1, 0x58($sp) +/* 0562A8 7F021778 10400008 */ beqz $v0, .L7F02179C +/* 0562AC 7F02177C 8FA30058 */ lw $v1, 0x58($sp) +/* 0562B0 7F021780 3C018005 */ lui $at, %hi(D_80051D6C) +/* 0562B4 7F021784 C4321D6C */ lwc1 $f18, %lo(D_80051D6C)($at) +/* 0562B8 7F021788 C4700000 */ lwc1 $f16, ($v1) +/* 0562BC 7F02178C 240F0001 */ li $t7, 1 +/* 0562C0 7F021790 46128100 */ add.s $f4, $f16, $f18 +/* 0562C4 7F021794 E4640000 */ swc1 $f4, ($v1) +/* 0562C8 7F021798 AFAF0054 */ sw $t7, 0x54($sp) +.L7F02179C: +/* 0562CC 7F02179C 00002025 */ move $a0, $zero +/* 0562D0 7F0217A0 24050010 */ li $a1, 16 +/* 0562D4 7F0217A4 0C0030C3 */ jal get_controller_buttons_held +/* 0562D8 7F0217A8 AFA30058 */ sw $v1, 0x58($sp) +/* 0562DC 7F0217AC 1040004F */ beqz $v0, .L7F0218EC +/* 0562E0 7F0217B0 8FA30058 */ lw $v1, 0x58($sp) +/* 0562E4 7F0217B4 00002025 */ move $a0, $zero +/* 0562E8 7F0217B8 34058000 */ li $a1, 32768 +/* 0562EC 7F0217BC 0C0030C3 */ jal get_controller_buttons_held +/* 0562F0 7F0217C0 AFA30058 */ sw $v1, 0x58($sp) +/* 0562F4 7F0217C4 10400008 */ beqz $v0, .L7F0217E8 +/* 0562F8 7F0217C8 8FA30058 */ lw $v1, 0x58($sp) +/* 0562FC 7F0217CC 3C018005 */ lui $at, %hi(D_80051D70) +/* 056300 7F0217D0 C4281D70 */ lwc1 $f8, %lo(D_80051D70)($at) +/* 056304 7F0217D4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 056308 7F0217D8 240E0001 */ li $t6, 1 +/* 05630C 7F0217DC 46083282 */ mul.s $f10, $f6, $f8 +/* 056310 7F0217E0 E46A0014 */ swc1 $f10, 0x14($v1) +/* 056314 7F0217E4 AFAE0054 */ sw $t6, 0x54($sp) +.L7F0217E8: +/* 056318 7F0217E8 00002025 */ move $a0, $zero +/* 05631C 7F0217EC 24054000 */ li $a1, 16384 +/* 056320 7F0217F0 0C0030C3 */ jal get_controller_buttons_held +/* 056324 7F0217F4 AFA30058 */ sw $v1, 0x58($sp) +/* 056328 7F0217F8 10400008 */ beqz $v0, .L7F02181C +/* 05632C 7F0217FC 8FA30058 */ lw $v1, 0x58($sp) +/* 056330 7F021800 3C018005 */ lui $at, %hi(D_80051D74) +/* 056334 7F021804 C4321D74 */ lwc1 $f18, %lo(D_80051D74)($at) +/* 056338 7F021808 C4700014 */ lwc1 $f16, 0x14($v1) +/* 05633C 7F02180C 24090001 */ li $t1, 1 +/* 056340 7F021810 46128102 */ mul.s $f4, $f16, $f18 +/* 056344 7F021814 E4640014 */ swc1 $f4, 0x14($v1) +/* 056348 7F021818 AFA90054 */ sw $t1, 0x54($sp) +.L7F02181C: +/* 05634C 7F02181C 00002025 */ move $a0, $zero +/* 056350 7F021820 24050004 */ li $a1, 4 +/* 056354 7F021824 0C0030C3 */ jal get_controller_buttons_held +/* 056358 7F021828 AFA30058 */ sw $v1, 0x58($sp) +/* 05635C 7F02182C 10400008 */ beqz $v0, .L7F021850 +/* 056360 7F021830 8FA30058 */ lw $v1, 0x58($sp) +/* 056364 7F021834 3C018005 */ lui $at, %hi(D_80051D78) +/* 056368 7F021838 C4281D78 */ lwc1 $f8, %lo(D_80051D78)($at) +/* 05636C 7F02183C C4660010 */ lwc1 $f6, 0x10($v1) +/* 056370 7F021840 240A0001 */ li $t2, 1 +/* 056374 7F021844 46083282 */ mul.s $f10, $f6, $f8 +/* 056378 7F021848 E46A0010 */ swc1 $f10, 0x10($v1) +/* 05637C 7F02184C AFAA0054 */ sw $t2, 0x54($sp) +.L7F021850: +/* 056380 7F021850 00002025 */ move $a0, $zero +/* 056384 7F021854 24050008 */ li $a1, 8 +/* 056388 7F021858 0C0030C3 */ jal get_controller_buttons_held +/* 05638C 7F02185C AFA30058 */ sw $v1, 0x58($sp) +/* 056390 7F021860 10400008 */ beqz $v0, .L7F021884 +/* 056394 7F021864 8FA30058 */ lw $v1, 0x58($sp) +/* 056398 7F021868 3C018005 */ lui $at, %hi(D_80051D7C) +/* 05639C 7F02186C C4321D7C */ lwc1 $f18, %lo(D_80051D7C)($at) +/* 0563A0 7F021870 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0563A4 7F021874 240B0001 */ li $t3, 1 +/* 0563A8 7F021878 46128102 */ mul.s $f4, $f16, $f18 +/* 0563AC 7F02187C E4640010 */ swc1 $f4, 0x10($v1) +/* 0563B0 7F021880 AFAB0054 */ sw $t3, 0x54($sp) +.L7F021884: +/* 0563B4 7F021884 00002025 */ move $a0, $zero +/* 0563B8 7F021888 24050002 */ li $a1, 2 +/* 0563BC 7F02188C 0C0030C3 */ jal get_controller_buttons_held +/* 0563C0 7F021890 AFA30058 */ sw $v1, 0x58($sp) +/* 0563C4 7F021894 10400008 */ beqz $v0, .L7F0218B8 +/* 0563C8 7F021898 8FA30058 */ lw $v1, 0x58($sp) +/* 0563CC 7F02189C 3C018005 */ lui $at, %hi(D_80051D80) +/* 0563D0 7F0218A0 C4281D80 */ lwc1 $f8, %lo(D_80051D80)($at) +/* 0563D4 7F0218A4 C466000C */ lwc1 $f6, 0xc($v1) +/* 0563D8 7F0218A8 240D0001 */ li $t5, 1 +/* 0563DC 7F0218AC 46083282 */ mul.s $f10, $f6, $f8 +/* 0563E0 7F0218B0 E46A000C */ swc1 $f10, 0xc($v1) +/* 0563E4 7F0218B4 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0218B8: +/* 0563E8 7F0218B8 00002025 */ move $a0, $zero +/* 0563EC 7F0218BC 24050001 */ li $a1, 1 +/* 0563F0 7F0218C0 0C0030C3 */ jal get_controller_buttons_held +/* 0563F4 7F0218C4 AFA30058 */ sw $v1, 0x58($sp) +/* 0563F8 7F0218C8 10400008 */ beqz $v0, .L7F0218EC +/* 0563FC 7F0218CC 8FA30058 */ lw $v1, 0x58($sp) +/* 056400 7F0218D0 3C018005 */ lui $at, %hi(D_80051D84) +/* 056404 7F0218D4 C4321D84 */ lwc1 $f18, %lo(D_80051D84)($at) +/* 056408 7F0218D8 C470000C */ lwc1 $f16, 0xc($v1) +/* 05640C 7F0218DC 240C0001 */ li $t4, 1 +/* 056410 7F0218E0 46128102 */ mul.s $f4, $f16, $f18 +/* 056414 7F0218E4 E464000C */ swc1 $f4, 0xc($v1) +/* 056418 7F0218E8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0218EC: +/* 05641C 7F0218EC 3C018005 */ lui $at, %hi(D_80051D88) +/* 056420 7F0218F0 C4201D88 */ lwc1 $f0, %lo(D_80051D88)($at) +/* 056424 7F0218F4 C4660000 */ lwc1 $f6, ($v1) +/* 056428 7F0218F8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 05642C 7F0218FC 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056430 7F021900 46003202 */ mul.s $f8, $f6, $f0 +/* 056434 7F021904 E7A800F0 */ swc1 $f8, 0xf0($sp) +/* 056438 7F021908 C46A0004 */ lwc1 $f10, 4($v1) +/* 05643C 7F02190C 46005402 */ mul.s $f16, $f10, $f0 +/* 056440 7F021910 E7B000F4 */ swc1 $f16, 0xf4($sp) +/* 056444 7F021914 C4720008 */ lwc1 $f18, 8($v1) +/* 056448 7F021918 46009102 */ mul.s $f4, $f18, $f0 +/* 05644C 7F02191C E7A400F8 */ swc1 $f4, 0xf8($sp) +/* 056450 7F021920 C466000C */ lwc1 $f6, 0xc($v1) +/* 056454 7F021924 E7A600EC */ swc1 $f6, 0xec($sp) +/* 056458 7F021928 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05645C 7F02192C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 056460 7F021930 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 056464 7F021934 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 056468 7F021938 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 05646C 7F02193C C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 056470 7F021940 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 056474 7F021944 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056478 7F021948 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 05647C 7F02194C 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 056480 7F021950 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056484 7F021954 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 056488 7F021958 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 05648C 7F02195C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056490 7F021960 8FA800FC */ lw $t0, 0xfc($sp) +/* 056494 7F021964 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056498 7F021968 27A60064 */ addiu $a2, $sp, 0x64 +/* 05649C 7F02196C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0564A0 7F021970 8D04000C */ lw $a0, 0xc($t0) +/* 0564A4 7F021974 8FB800FC */ lw $t8, 0xfc($sp) +/* 0564A8 7F021978 27A40064 */ addiu $a0, $sp, 0x64 +/* 0564AC 7F02197C 0FC16008 */ jal matrix_4x4_copy +/* 0564B0 7F021980 8F05000C */ lw $a1, 0xc($t8) +/* 0564B4 7F021984 8FB90060 */ lw $t9, 0x60($sp) +/* 0564B8 7F021988 24010002 */ li $at, 2 +/* 0564BC 7F02198C 57210003 */ bnel $t9, $at, .L7F02199C +/* 0564C0 7F021990 960F0012 */ lhu $t7, 0x12($s0) +/* 0564C4 7F021994 AFA00108 */ sw $zero, 0x108($sp) +.L7F021998: +/* 0564C8 7F021998 960F0012 */ lhu $t7, 0x12($s0) +.L7F02199C: +/* 0564CC 7F02199C 8FA90100 */ lw $t1, 0x100($sp) +/* 0564D0 7F0219A0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0564D4 7F0219A4 31EE0001 */ andi $t6, $t7, 1 +/* 0564D8 7F0219A8 11C00005 */ beqz $t6, .L7F0219C0 +/* 0564DC 7F0219AC 00000000 */ nop +/* 0564E0 7F0219B0 8D2A0064 */ lw $t2, 0x64($t1) +/* 0564E4 7F0219B4 314B0080 */ andi $t3, $t2, 0x80 +/* 0564E8 7F0219B8 55600005 */ bnezl $t3, .L7F0219D0 +/* 0564EC 7F0219BC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219C0: +/* 0564F0 7F0219C0 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 0564F4 7F0219C4 8E040020 */ lw $a0, 0x20($s0) +/* 0564F8 7F0219C8 AE020020 */ sw $v0, 0x20($s0) +/* 0564FC 7F0219CC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219D0: +/* 056500 7F0219D0 8DAC0008 */ lw $t4, 8($t5) +/* 056504 7F0219D4 8D880008 */ lw $t0, 8($t4) +/* 056508 7F0219D8 8D050010 */ lw $a1, 0x10($t0) +/* 05650C 7F0219DC 10A0000E */ beqz $a1, .L7F021A18 +/* 056510 7F0219E0 00000000 */ nop +/* 056514 7F0219E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056518 7F0219E8 01A02025 */ move $a0, $t5 +/* 05651C 7F0219EC 8C430000 */ lw $v1, ($v0) +/* 056520 7F0219F0 10600009 */ beqz $v1, .L7F021A18 +/* 056524 7F0219F4 00000000 */ nop +/* 056528 7F0219F8 8C780008 */ lw $t8, 8($v1) +/* 05652C 7F0219FC 8F050004 */ lw $a1, 4($t8) +/* 056530 7F021A00 10A00005 */ beqz $a1, .L7F021A18 +/* 056534 7F021A04 00000000 */ nop +/* 056538 7F021A08 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 05653C 7F021A0C 8FA40110 */ lw $a0, 0x110($sp) +/* 056540 7F021A10 8FB90108 */ lw $t9, 0x108($sp) +/* 056544 7F021A14 AC590000 */ sw $t9, ($v0) +.L7F021A18: +/* 056548 7F021A18 0FC1ACA7 */ jal sub_GAME_7F06B29C +/* 05654C 7F021A1C 8E040020 */ lw $a0, 0x20($s0) +/* 056550 7F021A20 0FC1AECA */ jal sub_GAME_7F06BB28 +/* 056554 7F021A24 8E040020 */ lw $a0, 0x20($s0) +/* 056558 7F021A28 10000020 */ b .L7F021AAC +/* 05655C 7F021A2C AE020020 */ sw $v0, 0x20($s0) +/* 056560 7F021A30 8E020160 */ lw $v0, 0x160($s0) +.L7F021A34: +/* 056564 7F021A34 50400005 */ beql $v0, $zero, .L7F021A4C +/* 056568 7F021A38 8E020164 */ lw $v0, 0x164($s0) +/* 05656C 7F021A3C 904F0001 */ lbu $t7, 1($v0) +/* 056570 7F021A40 31EEFFFD */ andi $t6, $t7, 0xfffd +/* 056574 7F021A44 A04E0001 */ sb $t6, 1($v0) +/* 056578 7F021A48 8E020164 */ lw $v0, 0x164($s0) +.L7F021A4C: +/* 05657C 7F021A4C 2403FFFD */ li $v1, -3 +/* 056580 7F021A50 50400005 */ beql $v0, $zero, .L7F021A68 +/* 056584 7F021A54 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056588 7F021A58 90490001 */ lbu $t1, 1($v0) +/* 05658C 7F021A5C 01235024 */ and $t2, $t1, $v1 +/* 056590 7F021A60 A04A0001 */ sb $t2, 1($v0) +/* 056594 7F021A64 8E0201D8 */ lw $v0, 0x1d8($s0) +.L7F021A68: +/* 056598 7F021A68 50400005 */ beql $v0, $zero, .L7F021A80 +/* 05659C 7F021A6C 8FA80158 */ lw $t0, 0x158($sp) +/* 0565A0 7F021A70 904B0001 */ lbu $t3, 1($v0) +/* 0565A4 7F021A74 01636024 */ and $t4, $t3, $v1 +/* 0565A8 7F021A78 A04C0001 */ sb $t4, 1($v0) +/* 0565AC 7F021A7C 8FA80158 */ lw $t0, 0x158($sp) +.L7F021A80: +/* 0565B0 7F021A80 910D0001 */ lbu $t5, 1($t0) +/* 0565B4 7F021A84 01A3C024 */ and $t8, $t5, $v1 +/* 0565B8 7F021A88 A1180001 */ sb $t8, 1($t0) +/* 0565BC 7F021A8C 921900F8 */ lbu $t9, 0xf8($s0) +/* 0565C0 7F021A90 920F00F9 */ lbu $t7, 0xf9($s0) +/* 0565C4 7F021A94 920E00FA */ lbu $t6, 0xfa($s0) +/* 0565C8 7F021A98 920900FB */ lbu $t1, 0xfb($s0) +/* 0565CC 7F021A9C A21900F4 */ sb $t9, 0xf4($s0) +/* 0565D0 7F021AA0 A20F00F5 */ sb $t7, 0xf5($s0) +/* 0565D4 7F021AA4 A20E00F6 */ sb $t6, 0xf6($s0) +/* 0565D8 7F021AA8 A20900F7 */ sb $t1, 0xf7($s0) +.L7F021AAC: +/* 0565DC 7F021AAC 8E0A0014 */ lw $t2, 0x14($s0) +/* 0565E0 7F021AB0 314B0400 */ andi $t3, $t2, 0x400 +/* 0565E4 7F021AB4 55600015 */ bnezl $t3, .L7F021B0C +/* 0565E8 7F021AB8 00001025 */ move $v0, $zero +/* 0565EC 7F021ABC 96020012 */ lhu $v0, 0x12($s0) +/* 0565F0 7F021AC0 8FAD0158 */ lw $t5, 0x158($sp) +/* 0565F4 7F021AC4 304C0001 */ andi $t4, $v0, 1 +/* 0565F8 7F021AC8 1180000D */ beqz $t4, .L7F021B00 +/* 0565FC 7F021ACC 00000000 */ nop +/* 056600 7F021AD0 8DA40020 */ lw $a0, 0x20($t5) +/* 056604 7F021AD4 50800009 */ beql $a0, $zero, .L7F021AFC +/* 056608 7F021AD8 3058FFFE */ andi $t8, $v0, 0xfffe +/* 05660C 7F021ADC 8C830024 */ lw $v1, 0x24($a0) +.L7F021AE0: +/* 056610 7F021AE0 0FC1304C */ jal sub_GAME_7F04C130 +/* 056614 7F021AE4 AFA3003C */ sw $v1, 0x3c($sp) +/* 056618 7F021AE8 8FA4003C */ lw $a0, 0x3c($sp) +/* 05661C 7F021AEC 5480FFFC */ bnezl $a0, .L7F021AE0 +/* 056620 7F021AF0 8C830024 */ lw $v1, 0x24($a0) +/* 056624 7F021AF4 96020012 */ lhu $v0, 0x12($s0) +/* 056628 7F021AF8 3058FFFE */ andi $t8, $v0, 0xfffe +.L7F021AFC: +/* 05662C 7F021AFC A6180012 */ sh $t8, 0x12($s0) +.L7F021B00: +/* 056630 7F021B00 0FC0B89B */ jal sub_GAME_7F02E26C +/* 056634 7F021B04 02002025 */ move $a0, $s0 +/* 056638 7F021B08 00001025 */ move $v0, $zero +.L7F021B0C: +/* 05663C 7F021B0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 056640 7F021B10 8FB00020 */ lw $s0, 0x20($sp) +/* 056644 7F021B14 27BD0158 */ addiu $sp, $sp, 0x158 +/* 056648 7F021B18 03E00008 */ jr $ra +/* 05664C 7F021B1C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F020EF0 +/* 055CF8 7F021188 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 055CFC 7F02118C 3C0F8003 */ lui $t7, %hi(D_8002CC6C) # $t7, 0x8003 +/* 055D00 7F021190 25EFCCAC */ addiu $t7, %lo(D_8002CC6C) # addiu $t7, $t7, -0x3354 +/* 055D04 7F021194 AFBF0024 */ sw $ra, 0x24($sp) +/* 055D08 7F021198 AFB00020 */ sw $s0, 0x20($sp) +/* 055D0C 7F02119C AFA40158 */ sw $a0, 0x158($sp) +/* 055D10 7F0211A0 25E8003C */ addiu $t0, $t7, 0x3c +/* 055D14 7F0211A4 27AE0118 */ addiu $t6, $sp, 0x118 +.Ljp7F0211A8: +/* 055D18 7F0211A8 8DE10000 */ lw $at, ($t7) +/* 055D1C 7F0211AC 25EF000C */ addiu $t7, $t7, 0xc +/* 055D20 7F0211B0 25CE000C */ addiu $t6, $t6, 0xc +/* 055D24 7F0211B4 ADC1FFF4 */ sw $at, -0xc($t6) +/* 055D28 7F0211B8 8DE1FFF8 */ lw $at, -8($t7) +/* 055D2C 7F0211BC ADC1FFF8 */ sw $at, -8($t6) +/* 055D30 7F0211C0 8DE1FFFC */ lw $at, -4($t7) +/* 055D34 7F0211C4 15E8FFF8 */ bne $t7, $t0, .Ljp7F0211A8 +/* 055D38 7F0211C8 ADC1FFFC */ sw $at, -4($t6) +/* 055D3C 7F0211CC 8DE10000 */ lw $at, ($t7) +/* 055D40 7F0211D0 3C0C8005 */ lui $t4, %hi(clock_timer) # $t4, 0x8005 +/* 055D44 7F0211D4 240B0001 */ li $t3, 1 +/* 055D48 7F0211D8 ADC10000 */ sw $at, ($t6) +/* 055D4C 7F0211DC 8FA90158 */ lw $t1, 0x158($sp) +/* 055D50 7F0211E0 8D8C83A4 */ lw $t4, %lo(clock_timer)($t4) +/* 055D54 7F0211E4 3C188003 */ lui $t8, %hi(D_8002C904) # $t8, 0x8003 +/* 055D58 7F0211E8 8D300004 */ lw $s0, 4($t1) +/* 055D5C 7F0211EC 8E0A001C */ lw $t2, 0x1c($s0) +/* 055D60 7F0211F0 AFAB0108 */ sw $t3, 0x108($sp) +/* 055D64 7F0211F4 AFAC0104 */ sw $t4, 0x104($sp) +/* 055D68 7F0211F8 AFAA0110 */ sw $t2, 0x110($sp) +/* 055D6C 7F0211FC 8E020014 */ lw $v0, 0x14($s0) +/* 055D70 7F021200 304D0400 */ andi $t5, $v0, 0x400 +/* 055D74 7F021204 11A00003 */ beqz $t5, .Ljp7F021214 +/* 055D78 7F021208 0002CB40 */ sll $t9, $v0, 0xd +/* 055D7C 7F02120C 07230035 */ bgezl $t9, .Ljp7F0212E4 +/* 055D80 7F021210 96180012 */ lhu $t8, 0x12($s0) +.Ljp7F021214: +/* 055D84 7F021214 8F18C944 */ lw $t8, %lo(D_8002C904)($t8) +/* 055D88 7F021218 3C088003 */ lui $t0, %hi(D_8002C908) # $t0, 0x8003 +/* 055D8C 7F02121C 1300001E */ beqz $t8, .Ljp7F021298 +/* 055D90 7F021220 00000000 */ nop +/* 055D94 7F021224 8D08C948 */ lw $t0, %lo(D_8002C908)($t0) +/* 055D98 7F021228 3C0E8003 */ lui $t6, %hi(animation_table_ptrs1) +/* 055D9C 7F02122C 24010001 */ li $at, 1 +/* 055DA0 7F021230 00087880 */ sll $t7, $t0, 2 +/* 055DA4 7F021234 01CF7021 */ addu $t6, $t6, $t7 +/* 055DA8 7F021238 8DCE9DAC */ lw $t6, %lo(animation_table_ptrs1)($t6) +/* 055DAC 7F02123C 11C1001D */ beq $t6, $at, .Ljp7F0212B4 +/* 055DB0 7F021240 00000000 */ nop +/* 055DB4 7F021244 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 055DB8 7F021248 8FA40110 */ lw $a0, 0x110($sp) +/* 055DBC 7F02124C 3C098003 */ lui $t1, %hi(D_8002C908) # $t1, 0x8003 +/* 055DC0 7F021250 8D29C948 */ lw $t1, %lo(D_8002C908)($t1) +/* 055DC4 7F021254 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 055DC8 7F021258 8FA40110 */ lw $a0, 0x110($sp) +/* 055DCC 7F02125C 00095080 */ sll $t2, $t1, 2 +/* 055DD0 7F021260 00AA2821 */ addu $a1, $a1, $t2 +/* 055DD4 7F021264 8CA59DAC */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 055DD8 7F021268 00003025 */ move $a2, $zero +/* 055DDC 7F02126C 10450011 */ beq $v0, $a1, .Ljp7F0212B4 +/* 055DE0 7F021270 00000000 */ nop +/* 055DE4 7F021274 44800000 */ mtc1 $zero, $f0 +/* 055DE8 7F021278 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 055DEC 7F02127C 44812000 */ mtc1 $at, $f4 +/* 055DF0 7F021280 44070000 */ mfc1 $a3, $f0 +/* 055DF4 7F021284 E7A00014 */ swc1 $f0, 0x14($sp) +/* 055DF8 7F021288 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 055DFC 7F02128C E7A40010 */ swc1 $f4, 0x10($sp) +/* 055E00 7F021290 10000008 */ b .Ljp7F0212B4 +/* 055E04 7F021294 00000000 */ nop +.Ljp7F021298: +/* 055E08 7F021298 0FC0CA6F */ jal manage_actions +/* 055E0C 7F02129C 02002025 */ move $a0, $s0 +/* 055E10 7F0212A0 8E0B001C */ lw $t3, 0x1c($s0) +/* 055E14 7F0212A4 15600003 */ bnez $t3, .Ljp7F0212B4 +/* 055E18 7F0212A8 00000000 */ nop +/* 055E1C 7F0212AC 100002D1 */ b .Ljp7F021DF4 +/* 055E20 7F0212B0 24020001 */ li $v0, 1 +.Ljp7F0212B4: +/* 055E24 7F0212B4 3C0C8003 */ lui $t4, %hi(D_8002C90C) # $t4, 0x8003 +/* 055E28 7F0212B8 8D8CC94C */ lw $t4, %lo(D_8002C90C)($t4) +/* 055E2C 7F0212BC 3C0D8003 */ lui $t5, %hi(D_8002C910) # $t5, 0x8003 +/* 055E30 7F0212C0 51800008 */ beql $t4, $zero, .Ljp7F0212E4 +/* 055E34 7F0212C4 96180012 */ lhu $t8, 0x12($s0) +/* 055E38 7F0212C8 8DADC950 */ lw $t5, %lo(D_8002C910)($t5) +/* 055E3C 7F0212CC AFA00104 */ sw $zero, 0x104($sp) +/* 055E40 7F0212D0 24190001 */ li $t9, 1 +/* 055E44 7F0212D4 51A00003 */ beql $t5, $zero, .Ljp7F0212E4 +/* 055E48 7F0212D8 96180012 */ lhu $t8, 0x12($s0) +/* 055E4C 7F0212DC AFB90104 */ sw $t9, 0x104($sp) +/* 055E50 7F0212E0 96180012 */ lhu $t8, 0x12($s0) +.Ljp7F0212E4: +/* 055E54 7F0212E4 33080020 */ andi $t0, $t8, 0x20 +/* 055E58 7F0212E8 51000006 */ beql $t0, $zero, .Ljp7F021304 +/* 055E5C 7F0212EC 8E020160 */ lw $v0, 0x160($s0) +/* 055E60 7F0212F0 0FC08171 */ jal disable_sounds_attached_to_player_then_something +/* 055E64 7F0212F4 8FA40158 */ lw $a0, 0x158($sp) +/* 055E68 7F0212F8 100002BE */ b .Ljp7F021DF4 +/* 055E6C 7F0212FC 24020001 */ li $v0, 1 +/* 055E70 7F021300 8E020160 */ lw $v0, 0x160($s0) +.Ljp7F021304: +/* 055E74 7F021304 50400009 */ beql $v0, $zero, .Ljp7F02132C +/* 055E78 7F021308 8E020164 */ lw $v0, 0x164($s0) +/* 055E7C 7F02130C 8C440004 */ lw $a0, 4($v0) +/* 055E80 7F021310 8C8F0064 */ lw $t7, 0x64($a0) +/* 055E84 7F021314 31EE0004 */ andi $t6, $t7, 4 +/* 055E88 7F021318 51C00004 */ beql $t6, $zero, .Ljp7F02132C +/* 055E8C 7F02131C 8E020164 */ lw $v0, 0x164($s0) +/* 055E90 7F021320 0FC104C9 */ jal sub_GAME_7F041024 +/* 055E94 7F021324 24050001 */ li $a1, 1 +/* 055E98 7F021328 8E020164 */ lw $v0, 0x164($s0) +.Ljp7F02132C: +/* 055E9C 7F02132C 50400009 */ beql $v0, $zero, .Ljp7F021354 +/* 055EA0 7F021330 8E020014 */ lw $v0, 0x14($s0) +/* 055EA4 7F021334 8C440004 */ lw $a0, 4($v0) +/* 055EA8 7F021338 8C890064 */ lw $t1, 0x64($a0) +/* 055EAC 7F02133C 312A0004 */ andi $t2, $t1, 4 +/* 055EB0 7F021340 51400004 */ beql $t2, $zero, .Ljp7F021354 +/* 055EB4 7F021344 8E020014 */ lw $v0, 0x14($s0) +/* 055EB8 7F021348 0FC104C9 */ jal sub_GAME_7F041024 +/* 055EBC 7F02134C 24050001 */ li $a1, 1 +/* 055EC0 7F021350 8E020014 */ lw $v0, 0x14($s0) +.Ljp7F021354: +/* 055EC4 7F021354 8FAC0158 */ lw $t4, 0x158($sp) +/* 055EC8 7F021358 304B0400 */ andi $t3, $v0, 0x400 +/* 055ECC 7F02135C 51600005 */ beql $t3, $zero, .Ljp7F021374 +/* 055ED0 7F021360 918D0000 */ lbu $t5, ($t4) +/* 055ED4 7F021364 AFA0010C */ sw $zero, 0x10c($sp) +/* 055ED8 7F021368 100000BD */ b .Ljp7F021660 +/* 055EDC 7F02136C 82030007 */ lb $v1, 7($s0) +/* 055EE0 7F021370 918D0000 */ lbu $t5, ($t4) +.Ljp7F021374: +/* 055EE4 7F021374 24010006 */ li $at, 6 +/* 055EE8 7F021378 55A1000D */ bnel $t5, $at, .Ljp7F0213B0 +/* 055EEC 7F02137C 00027A00 */ sll $t7, $v0, 8 +/* 055EF0 7F021380 0FC26F3F */ jal sub_GAME_7F09B15C +/* 055EF4 7F021384 01802025 */ move $a0, $t4 +/* 055EF8 7F021388 0002C880 */ sll $t9, $v0, 2 +/* 055EFC 7F02138C 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 055F00 7F021390 0319C021 */ addu $t8, $t8, $t9 +/* 055F04 7F021394 8F189F50 */ lw $t8, %lo(ptr_BONDdata_p1)($t8) +/* 055F08 7F021398 24010001 */ li $at, 1 +/* 055F0C 7F02139C 8F080000 */ lw $t0, ($t8) +/* 055F10 7F0213A0 51010005 */ beql $t0, $at, .Ljp7F0213B8 +/* 055F14 7F0213A4 240E0001 */ li $t6, 1 +/* 055F18 7F0213A8 8E020014 */ lw $v0, 0x14($s0) +/* 055F1C 7F0213AC 00027A00 */ sll $t7, $v0, 8 +.Ljp7F0213B0: +/* 055F20 7F0213B0 05E10017 */ bgez $t7, .Ljp7F021410 +/* 055F24 7F0213B4 240E0001 */ li $t6, 1 +.Ljp7F0213B8: +/* 055F28 7F0213B8 AFAE010C */ sw $t6, 0x10c($sp) +/* 055F2C 7F0213BC 82090007 */ lb $t1, 7($s0) +/* 055F30 7F0213C0 24010003 */ li $at, 3 +/* 055F34 7F0213C4 02002025 */ move $a0, $s0 +/* 055F38 7F0213C8 1521000D */ bne $t1, $at, .Ljp7F021400 +/* 055F3C 7F0213CC 00000000 */ nop +/* 055F40 7F0213D0 8E0A002C */ lw $t2, 0x2c($s0) +/* 055F44 7F0213D4 1540000A */ bnez $t2, .Ljp7F021400 +/* 055F48 7F0213D8 00000000 */ nop +/* 055F4C 7F0213DC 8E0B003C */ lw $t3, 0x3c($s0) +/* 055F50 7F0213E0 8FA50104 */ lw $a1, 0x104($sp) +/* 055F54 7F0213E4 00003025 */ move $a2, $zero +/* 055F58 7F0213E8 11600005 */ beqz $t3, .Ljp7F021400 +/* 055F5C 7F0213EC 00000000 */ nop +/* 055F60 7F0213F0 0FC1C437 */ jal sub_GAME_7F070AEC +/* 055F64 7F0213F4 8FA40110 */ lw $a0, 0x110($sp) +/* 055F68 7F0213F8 10000003 */ b .Ljp7F021408 +/* 055F6C 7F0213FC 00000000 */ nop +.Ljp7F021400: +/* 055F70 7F021400 0FC08436 */ jal sub_GAME_7F020E40 +/* 055F74 7F021404 8FA50104 */ lw $a1, 0x104($sp) +.Ljp7F021408: +/* 055F78 7F021408 10000095 */ b .Ljp7F021660 +/* 055F7C 7F02140C 82030007 */ lb $v1, 7($s0) +.Ljp7F021410: +/* 055F80 7F021410 82030007 */ lb $v1, 7($s0) +/* 055F84 7F021414 2406000E */ li $a2, 14 +/* 055F88 7F021418 2401000F */ li $at, 15 +/* 055F8C 7F02141C 10C30003 */ beq $a2, $v1, .Ljp7F02142C +/* 055F90 7F021420 00000000 */ nop +/* 055F94 7F021424 54610041 */ bnel $v1, $at, .Ljp7F02152C +/* 055F98 7F021428 24010003 */ li $at, 3 +.Ljp7F02142C: +/* 055F9C 7F02142C 54C30005 */ bnel $a2, $v1, .Ljp7F021444 +/* 055FA0 7F021430 2401000F */ li $at, 15 +/* 055FA4 7F021434 820D0038 */ lb $t5, 0x38($s0) +/* 055FA8 7F021438 24010006 */ li $at, 6 +/* 055FAC 7F02143C 11A10007 */ beq $t5, $at, .Ljp7F02145C +/* 055FB0 7F021440 2401000F */ li $at, 15 +.Ljp7F021444: +/* 055FB4 7F021444 1461001E */ bne $v1, $at, .Ljp7F0214C0 +/* 055FB8 7F021448 02002025 */ move $a0, $s0 +/* 055FBC 7F02144C 820C005C */ lb $t4, 0x5c($s0) +/* 055FC0 7F021450 24010006 */ li $at, 6 +/* 055FC4 7F021454 1581001A */ bne $t4, $at, .Ljp7F0214C0 +/* 055FC8 7F021458 00000000 */ nop +.Ljp7F02145C: +/* 055FCC 7F02145C 0FC1B57F */ jal getinstsize +/* 055FD0 7F021460 8FA40110 */ lw $a0, 0x110($sp) +/* 055FD4 7F021464 8FA40158 */ lw $a0, 0x158($sp) +/* 055FD8 7F021468 44060000 */ mfc1 $a2, $f0 +/* 055FDC 7F02146C 24070001 */ li $a3, 1 +/* 055FE0 7F021470 24850008 */ addiu $a1, $a0, 8 +/* 055FE4 7F021474 0FC1549A */ jal sub_GAME_7F054D6C +/* 055FE8 7F021478 AFA50030 */ sw $a1, 0x30($sp) +/* 055FEC 7F02147C 10400028 */ beqz $v0, .Ljp7F021520 +/* 055FF0 7F021480 AFA2010C */ sw $v0, 0x10c($sp) +/* 055FF4 7F021484 8FA40110 */ lw $a0, 0x110($sp) +/* 055FF8 7F021488 0FC1B462 */ jal getsuboffset +/* 055FFC 7F02148C 260500BC */ addiu $a1, $s0, 0xbc +/* 056000 7F021490 0FC1B728 */ jal subcalcpos +/* 056004 7F021494 8FA40110 */ lw $a0, 0x110($sp) +/* 056008 7F021498 8FA40158 */ lw $a0, 0x158($sp) +/* 05600C 7F02149C 0FC100E7 */ jal set_color_shading_from_tile +/* 056010 7F0214A0 260500F8 */ addiu $a1, $s0, 0xf8 +/* 056014 7F0214A4 8FA40110 */ lw $a0, 0x110($sp) +/* 056018 7F0214A8 0FC1B462 */ jal getsuboffset +/* 05601C 7F0214AC 8FA50030 */ lw $a1, 0x30($sp) +/* 056020 7F0214B0 0FC0840B */ jal sub_GAME_7F020D94 +/* 056024 7F0214B4 02002025 */ move $a0, $s0 +/* 056028 7F0214B8 10000019 */ b .Ljp7F021520 +/* 05602C 7F0214BC 00000000 */ nop +.Ljp7F0214C0: +/* 056030 7F0214C0 0FC08436 */ jal sub_GAME_7F020E40 +/* 056034 7F0214C4 8FA50104 */ lw $a1, 0x104($sp) +/* 056038 7F0214C8 0FC1B57F */ jal getinstsize +/* 05603C 7F0214CC 8FA40110 */ lw $a0, 0x110($sp) +/* 056040 7F0214D0 8FA40158 */ lw $a0, 0x158($sp) +/* 056044 7F0214D4 44060000 */ mfc1 $a2, $f0 +/* 056048 7F0214D8 24070001 */ li $a3, 1 +/* 05604C 7F0214DC 0FC1549A */ jal sub_GAME_7F054D6C +/* 056050 7F0214E0 24850008 */ addiu $a1, $a0, 8 +/* 056054 7F0214E4 1040000E */ beqz $v0, .Ljp7F021520 +/* 056058 7F0214E8 AFA2010C */ sw $v0, 0x10c($sp) +/* 05605C 7F0214EC 82030007 */ lb $v1, 7($s0) +/* 056060 7F0214F0 2401000E */ li $at, 14 +/* 056064 7F0214F4 3C088005 */ lui $t0, %hi(global_timer) # $t0, 0x8005 +/* 056068 7F0214F8 54610005 */ bnel $v1, $at, .Ljp7F021510 +/* 05606C 7F0214FC 2401000F */ li $at, 15 +/* 056070 7F021500 8D0883AC */ lw $t0, %lo(global_timer)($t0) +/* 056074 7F021504 10000006 */ b .Ljp7F021520 +/* 056078 7F021508 AE080078 */ sw $t0, 0x78($s0) +/* 05607C 7F02150C 2401000F */ li $at, 15 +.Ljp7F021510: +/* 056080 7F021510 14610003 */ bne $v1, $at, .Ljp7F021520 +/* 056084 7F021514 3C0F8005 */ lui $t7, %hi(global_timer) # $t7, 0x8005 +/* 056088 7F021518 8DEF83AC */ lw $t7, %lo(global_timer)($t7) +/* 05608C 7F02151C AE0F009C */ sw $t7, 0x9c($s0) +.Ljp7F021520: +/* 056090 7F021520 1000004F */ b .Ljp7F021660 +/* 056094 7F021524 82030007 */ lb $v1, 7($s0) +/* 056098 7F021528 24010003 */ li $at, 3 +.Ljp7F02152C: +/* 05609C 7F02152C 5461001C */ bnel $v1, $at, .Ljp7F0215A0 +/* 0560A0 7F021530 24010001 */ li $at, 1 +/* 0560A4 7F021534 8E0E002C */ lw $t6, 0x2c($s0) +/* 0560A8 7F021538 55C00019 */ bnezl $t6, .Ljp7F0215A0 +/* 0560AC 7F02153C 24010001 */ li $at, 1 +/* 0560B0 7F021540 0FC1B57F */ jal getinstsize +/* 0560B4 7F021544 8FA40110 */ lw $a0, 0x110($sp) +/* 0560B8 7F021548 8FA40158 */ lw $a0, 0x158($sp) +/* 0560BC 7F02154C 44060000 */ mfc1 $a2, $f0 +/* 0560C0 7F021550 24070001 */ li $a3, 1 +/* 0560C4 7F021554 0FC1549A */ jal sub_GAME_7F054D6C +/* 0560C8 7F021558 24850008 */ addiu $a1, $a0, 8 +/* 0560CC 7F02155C 10400009 */ beqz $v0, .Ljp7F021584 +/* 0560D0 7F021560 AFA2010C */ sw $v0, 0x10c($sp) +/* 0560D4 7F021564 8E0A003C */ lw $t2, 0x3c($s0) +/* 0560D8 7F021568 02002025 */ move $a0, $s0 +/* 0560DC 7F02156C 55400006 */ bnezl $t2, .Ljp7F021588 +/* 0560E0 7F021570 8FA40110 */ lw $a0, 0x110($sp) +/* 0560E4 7F021574 0FC08436 */ jal sub_GAME_7F020E40 +/* 0560E8 7F021578 8FA50104 */ lw $a1, 0x104($sp) +/* 0560EC 7F02157C 10000005 */ b .Ljp7F021594 +/* 0560F0 7F021580 00000000 */ nop +.Ljp7F021584: +/* 0560F4 7F021584 8FA40110 */ lw $a0, 0x110($sp) +.Ljp7F021588: +/* 0560F8 7F021588 8FA50104 */ lw $a1, 0x104($sp) +/* 0560FC 7F02158C 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056100 7F021590 00003025 */ move $a2, $zero +.Ljp7F021594: +/* 056104 7F021594 10000032 */ b .Ljp7F021660 +/* 056108 7F021598 82030007 */ lb $v1, 7($s0) +/* 05610C 7F02159C 24010001 */ li $at, 1 +.Ljp7F0215A0: +/* 056110 7F0215A0 1461001C */ bne $v1, $at, .Ljp7F021614 +/* 056114 7F0215A4 30484000 */ andi $t0, $v0, 0x4000 +/* 056118 7F0215A8 0FC1B57F */ jal getinstsize +/* 05611C 7F0215AC 8FA40110 */ lw $a0, 0x110($sp) +/* 056120 7F0215B0 8FA40158 */ lw $a0, 0x158($sp) +/* 056124 7F0215B4 44060000 */ mfc1 $a2, $f0 +/* 056128 7F0215B8 24070001 */ li $a3, 1 +/* 05612C 7F0215BC 0FC1549A */ jal sub_GAME_7F054D6C +/* 056130 7F0215C0 24850008 */ addiu $a1, $a0, 8 +/* 056134 7F0215C4 14400005 */ bnez $v0, .Ljp7F0215DC +/* 056138 7F0215C8 AFA2010C */ sw $v0, 0x10c($sp) +/* 05613C 7F0215CC 8E0D0014 */ lw $t5, 0x14($s0) +/* 056140 7F0215D0 8FB90110 */ lw $t9, 0x110($sp) +/* 056144 7F0215D4 31AC0001 */ andi $t4, $t5, 1 +/* 056148 7F0215D8 11800005 */ beqz $t4, .Ljp7F0215F0 +.Ljp7F0215DC: +/* 05614C 7F0215DC 02002025 */ move $a0, $s0 +/* 056150 7F0215E0 0FC08436 */ jal sub_GAME_7F020E40 +/* 056154 7F0215E4 8FA50104 */ lw $a1, 0x104($sp) +/* 056158 7F0215E8 10000008 */ b .Ljp7F02160C +/* 05615C 7F0215EC 00000000 */ nop +.Ljp7F0215F0: +/* 056160 7F0215F0 8F380054 */ lw $t8, 0x54($t9) +/* 056164 7F0215F4 03202025 */ move $a0, $t9 +/* 056168 7F0215F8 8FA50104 */ lw $a1, 0x104($sp) +/* 05616C 7F0215FC 13000003 */ beqz $t8, .Ljp7F02160C +/* 056170 7F021600 00000000 */ nop +/* 056174 7F021604 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056178 7F021608 00003025 */ move $a2, $zero +.Ljp7F02160C: +/* 05617C 7F02160C 10000014 */ b .Ljp7F021660 +/* 056180 7F021610 82030007 */ lb $v1, 7($s0) +.Ljp7F021614: +/* 056184 7F021614 11000007 */ beqz $t0, .Ljp7F021634 +/* 056188 7F021618 02002025 */ move $a0, $s0 +/* 05618C 7F02161C 8FA40110 */ lw $a0, 0x110($sp) +/* 056190 7F021620 8FA50104 */ lw $a1, 0x104($sp) +/* 056194 7F021624 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056198 7F021628 00003025 */ move $a2, $zero +/* 05619C 7F02162C 10000003 */ b .Ljp7F02163C +/* 0561A0 7F021630 00000000 */ nop +.Ljp7F021634: +/* 0561A4 7F021634 0FC08436 */ jal sub_GAME_7F020E40 +/* 0561A8 7F021638 8FA50104 */ lw $a1, 0x104($sp) +.Ljp7F02163C: +/* 0561AC 7F02163C 0FC1B57F */ jal getinstsize +/* 0561B0 7F021640 8FA40110 */ lw $a0, 0x110($sp) +/* 0561B4 7F021644 8FA40158 */ lw $a0, 0x158($sp) +/* 0561B8 7F021648 44060000 */ mfc1 $a2, $f0 +/* 0561BC 7F02164C 24070001 */ li $a3, 1 +/* 0561C0 7F021650 0FC1549A */ jal sub_GAME_7F054D6C +/* 0561C4 7F021654 24850008 */ addiu $a1, $a0, 8 +/* 0561C8 7F021658 AFA2010C */ sw $v0, 0x10c($sp) +/* 0561CC 7F02165C 82030007 */ lb $v1, 7($s0) +.Ljp7F021660: +/* 0561D0 7F021660 24010001 */ li $at, 1 +/* 0561D4 7F021664 14610009 */ bne $v1, $at, .Ljp7F02168C +/* 0561D8 7F021668 8FAE0110 */ lw $t6, 0x110($sp) +/* 0561DC 7F02166C 8DC90054 */ lw $t1, 0x54($t6) +/* 0561E0 7F021670 8FAA0158 */ lw $t2, 0x158($sp) +/* 0561E4 7F021674 55200006 */ bnezl $t1, .Ljp7F021690 +/* 0561E8 7F021678 960D0012 */ lhu $t5, 0x12($s0) +/* 0561EC 7F02167C 914B0000 */ lbu $t3, ($t2) +/* 0561F0 7F021680 24010006 */ li $at, 6 +/* 0561F4 7F021684 15610004 */ bne $t3, $at, .Ljp7F021698 +/* 0561F8 7F021688 00000000 */ nop +.Ljp7F02168C: +/* 0561FC 7F02168C 960D0012 */ lhu $t5, 0x12($s0) +.Ljp7F021690: +/* 056200 7F021690 35AC0200 */ ori $t4, $t5, 0x200 +/* 056204 7F021694 A60C0012 */ sh $t4, 0x12($s0) +.Ljp7F021698: +/* 056208 7F021698 0FC081E8 */ jal sub_GAME_7F0205F0 +/* 05620C 7F02169C 02002025 */ move $a0, $s0 +/* 056210 7F0216A0 8E040020 */ lw $a0, 0x20($s0) +/* 056214 7F0216A4 50800005 */ beql $a0, $zero, .Ljp7F0216BC +/* 056218 7F0216A8 8FB8010C */ lw $t8, 0x10c($sp) +/* 05621C 7F0216AC 0FC1AE0E */ jal sub_GAME_7F06B248 +/* 056220 7F0216B0 00000000 */ nop +/* 056224 7F0216B4 AE000020 */ sw $zero, 0x20($s0) +/* 056228 7F0216B8 8FB8010C */ lw $t8, 0x10c($sp) +.Ljp7F0216BC: +/* 05622C 7F0216BC 261900F8 */ addiu $t9, $s0, 0xf8 +/* 056230 7F0216C0 53000196 */ beql $t8, $zero, .Ljp7F021D1C +/* 056234 7F0216C4 8E020160 */ lw $v0, 0x160($s0) +/* 056238 7F0216C8 0FC246CA */ jal get_debug_chrnum_flag +/* 05623C 7F0216CC AFB9002C */ sw $t9, 0x2c($sp) +/* 056240 7F0216D0 8FA20158 */ lw $v0, 0x158($sp) +/* 056244 7F0216D4 2404000C */ li $a0, 12 +/* 056248 7F0216D8 90480001 */ lbu $t0, 1($v0) +/* 05624C 7F0216DC 350F0002 */ ori $t7, $t0, 2 +/* 056250 7F0216E0 A04F0001 */ sb $t7, 1($v0) +/* 056254 7F0216E4 8E0E0014 */ lw $t6, 0x14($s0) +/* 056258 7F0216E8 35C90008 */ ori $t1, $t6, 8 +/* 05625C 7F0216EC 0FC24CCF */ jal cheatCheckIfOn +/* 056260 7F0216F0 AE090014 */ sw $t1, 0x14($s0) +/* 056264 7F0216F4 10400018 */ beqz $v0, .Ljp7F021758 +/* 056268 7F0216F8 00000000 */ nop +/* 05626C 7F0216FC 8204000F */ lb $a0, 0xf($s0) +/* 056270 7F021700 0FC0827B */ jal jp_only_7F0209EC +/* 056274 7F021704 82050006 */ lb $a1, 6($s0) +/* 056278 7F021708 10400013 */ beqz $v0, .Ljp7F021758 +/* 05627C 7F02170C 3C013EA0 */ li $at, 0x3EA00000 # 0.312500 +/* 056280 7F021710 44816000 */ mtc1 $at, $f12 +/* 056284 7F021714 0FC1B27F */ jal set_float_80036088 +/* 056288 7F021718 00000000 */ nop +/* 05628C 7F02171C 8E020014 */ lw $v0, 0x14($s0) +/* 056290 7F021720 3C01EFFF */ lui $at, (0xEFFFFFFF >> 16) # lui $at, 0xefff +/* 056294 7F021724 3421FFFF */ ori $at, (0xEFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 056298 7F021728 000250C0 */ sll $t2, $v0, 3 +/* 05629C 7F02172C 0541000A */ bgez $t2, .Ljp7F021758 +/* 0562A0 7F021730 00415824 */ and $t3, $v0, $at +/* 0562A4 7F021734 8E04001C */ lw $a0, 0x1c($s0) +/* 0562A8 7F021738 AE0B0014 */ sw $t3, 0x14($s0) +/* 0562AC 7F02173C 3C018005 */ lui $at, %hi(D_jp80051D88) # $at, 0x8005 +/* 0562B0 7F021740 C4281D88 */ lwc1 $f8, %lo(D_jp80051D88)($at) +/* 0562B4 7F021744 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0562B8 7F021748 46083283 */ div.s $f10, $f6, $f8 +/* 0562BC 7F02174C 44055000 */ mfc1 $a1, $f10 +/* 0562C0 7F021750 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0562C4 7F021754 00000000 */ nop +.Ljp7F021758: +/* 0562C8 7F021758 3C0D7F02 */ lui $t5, %hi(sub_GAME_7F02083C) # $t5, 0x7f02 +/* 0562CC 7F02175C 25AD0AAC */ addiu $t5, %lo(sub_GAME_7F02083C) # addiu $t5, $t5, 0xaac +/* 0562D0 7F021760 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003 +/* 0562D4 7F021764 AC2D60D0 */ sw $t5, %lo(D_80036090)($at) +/* 0562D8 7F021768 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) # $at, 0x8007 +/* 0562DC 7F02176C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 0562E0 7F021770 AC309BA0 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at) +/* 0562E4 7F021774 8FAC0110 */ lw $t4, 0x110($sp) +/* 0562E8 7F021778 AFA20118 */ sw $v0, 0x118($sp) +/* 0562EC 7F02177C 8D980008 */ lw $t8, 8($t4) +/* 0562F0 7F021780 8704000E */ lh $a0, 0xe($t8) +/* 0562F4 7F021784 0004C980 */ sll $t9, $a0, 6 +/* 0562F8 7F021788 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0562FC 7F02178C 03202025 */ move $a0, $t9 +/* 056300 7F021790 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) # $a1, 0x8007 +/* 056304 7F021794 24A59BA0 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x6460 +/* 056308 7F021798 8CA30000 */ lw $v1, ($a1) +/* 05630C 7F02179C AFA20128 */ sw $v0, 0x128($sp) +/* 056310 7F0217A0 80640011 */ lb $a0, 0x11($v1) +/* 056314 7F0217A4 0480000B */ bltz $a0, .Ljp7F0217D4 +/* 056318 7F0217A8 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 05631C 7F0217AC 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 056320 7F0217B0 2409FFFF */ li $t1, -1 +/* 056324 7F0217B4 00887821 */ addu $t7, $a0, $t0 +/* 056328 7F0217B8 A06F0011 */ sb $t7, 0x11($v1) +/* 05632C 7F0217BC 8CA30000 */ lw $v1, ($a1) +/* 056330 7F0217C0 806E0011 */ lb $t6, 0x11($v1) +/* 056334 7F0217C4 29C1001E */ slti $at, $t6, 0x1e +/* 056338 7F0217C8 54200003 */ bnezl $at, .Ljp7F0217D8 +/* 05633C 7F0217CC 27A40118 */ addiu $a0, $sp, 0x118 +/* 056340 7F0217D0 A0690011 */ sb $t1, 0x11($v1) +.Ljp7F0217D4: +/* 056344 7F0217D4 27A40118 */ addiu $a0, $sp, 0x118 +.Ljp7F0217D8: +/* 056348 7F0217D8 0FC1BE3A */ jal subcalcmatrices +/* 05634C 7F0217DC 8FA50110 */ lw $a1, 0x110($sp) +/* 056350 7F0217E0 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003 +/* 056354 7F0217E4 AC2060D0 */ sw $zero, %lo(D_80036090)($at) +/* 056358 7F0217E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05635C 7F0217EC 44816000 */ mtc1 $at, $f12 +/* 056360 7F0217F0 0FC1B27F */ jal set_float_80036088 +/* 056364 7F0217F4 00000000 */ nop +/* 056368 7F0217F8 260400F4 */ addiu $a0, $s0, 0xf4 +/* 05636C 7F0217FC 0FC10184 */ jal update_color_shading +/* 056370 7F021800 8FA5002C */ lw $a1, 0x2c($sp) +/* 056374 7F021804 0FC1B356 */ jal sub_GAME_7F06C768 +/* 056378 7F021808 8FA40110 */ lw $a0, 0x110($sp) +/* 05637C 7F02180C 8FAA0158 */ lw $t2, 0x158($sp) +/* 056380 7F021810 00002025 */ move $a0, $zero +/* 056384 7F021814 E5400018 */ swc1 $f0, 0x18($t2) +/* 056388 7F021818 0FC1ADC4 */ jal sub_GAME_7F06B120 +/* 05638C 7F02181C 8FA50110 */ lw $a1, 0x110($sp) +/* 056390 7F021820 AE020020 */ sw $v0, 0x20($s0) +/* 056394 7F021824 26060020 */ addiu $a2, $s0, 0x20 +/* 056398 7F021828 AFA60030 */ sw $a2, 0x30($sp) +/* 05639C 7F02182C 8FA40158 */ lw $a0, 0x158($sp) +/* 0563A0 7F021830 0FC14A3D */ jal sub_GAME_7F0523F8 +/* 0563A4 7F021834 00002825 */ move $a1, $zero +/* 0563A8 7F021838 8FA60030 */ lw $a2, 0x30($sp) +/* 0563AC 7F02183C 8FA40158 */ lw $a0, 0x158($sp) +/* 0563B0 7F021840 0FC14A3D */ jal sub_GAME_7F0523F8 +/* 0563B4 7F021844 24050001 */ li $a1, 1 +/* 0563B8 7F021848 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 0563BC 7F02184C 5040011A */ beql $v0, $zero, .Ljp7F021CB8 +/* 0563C0 7F021850 8FB80110 */ lw $t8, 0x110($sp) +/* 0563C4 7F021854 8C470004 */ lw $a3, 4($v0) +/* 0563C8 7F021858 904B0001 */ lbu $t3, 1($v0) +/* 0563CC 7F02185C 00003025 */ move $a2, $zero +/* 0563D0 7F021860 8CE30014 */ lw $v1, 0x14($a3) +/* 0563D4 7F021864 356D0002 */ ori $t5, $t3, 2 +/* 0563D8 7F021868 A04D0001 */ sb $t5, 1($v0) +/* 0563DC 7F02186C 8C65001C */ lw $a1, 0x1c($v1) +/* 0563E0 7F021870 8FA40110 */ lw $a0, 0x110($sp) +/* 0563E4 7F021874 AFA70100 */ sw $a3, 0x100($sp) +/* 0563E8 7F021878 0FC1B314 */ jal sub_GAME_7F06C660 +/* 0563EC 7F02187C AFA300FC */ sw $v1, 0xfc($sp) +/* 0563F0 7F021880 8FAC00FC */ lw $t4, 0xfc($sp) +/* 0563F4 7F021884 AFA20118 */ sw $v0, 0x118($sp) +/* 0563F8 7F021888 8D980008 */ lw $t8, 8($t4) +/* 0563FC 7F02188C 8704000E */ lh $a0, 0xe($t8) +/* 056400 7F021890 0004C980 */ sll $t9, $a0, 6 +/* 056404 7F021894 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 056408 7F021898 03202025 */ move $a0, $t9 +/* 05640C 7F02189C AFA20128 */ sw $v0, 0x128($sp) +/* 056410 7F0218A0 27A40118 */ addiu $a0, $sp, 0x118 +/* 056414 7F0218A4 0FC1BE0E */ jal instcalcmatrices +/* 056418 7F0218A8 8FA500FC */ lw $a1, 0xfc($sp) +/* 05641C 7F0218AC 82020006 */ lb $v0, 6($s0) +/* 056420 7F0218B0 2841002A */ slti $at, $v0, 0x2a +/* 056424 7F0218B4 142000F2 */ bnez $at, .Ljp7F021C80 +/* 056428 7F0218B8 28410046 */ slti $at, $v0, 0x46 +/* 05642C 7F0218BC 102000F0 */ beqz $at, .Ljp7F021C80 +/* 056430 7F0218C0 3C0F8003 */ lui $t7, %hi(D_8002CCAC) # $t7, 0x8003 +/* 056434 7F0218C4 25EFCCEC */ addiu $t7, %lo(D_8002CCAC) # addiu $t7, $t7, -0x3314 +/* 056438 7F0218C8 8DE10000 */ lw $at, ($t7) +/* 05643C 7F0218CC 27A800F0 */ addiu $t0, $sp, 0xf0 +/* 056440 7F0218D0 8DE90004 */ lw $t1, 4($t7) +/* 056444 7F0218D4 AD010000 */ sw $at, ($t0) +/* 056448 7F0218D8 8DE10008 */ lw $at, 8($t7) +/* 05644C 7F0218DC AD090004 */ sw $t1, 4($t0) +/* 056450 7F0218E0 AD010008 */ sw $at, 8($t0) +/* 056454 7F0218E4 0FC14AE0 */ jal get_hat_model +/* 056458 7F0218E8 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 05645C 7F0218EC AFA20060 */ sw $v0, 0x60($sp) +/* 056460 7F0218F0 82040006 */ lb $a0, 6($s0) +/* 056464 7F0218F4 00025880 */ sll $t3, $v0, 2 +/* 056468 7F0218F8 01625823 */ subu $t3, $t3, $v0 +/* 05646C 7F0218FC 2484FFD6 */ addiu $a0, $a0, -0x2a +/* 056470 7F021900 000450C0 */ sll $t2, $a0, 3 +/* 056474 7F021904 01445021 */ addu $t2, $t2, $a0 +/* 056478 7F021908 000A5100 */ sll $t2, $t2, 4 +/* 05647C 7F02190C 000B58C0 */ sll $t3, $t3, 3 +/* 056480 7F021910 3C0C8004 */ lui $t4, %hi(headHat_array_8003E464) # $t4, 0x8004 +/* 056484 7F021914 258CE494 */ addiu $t4, %lo(headHat_array_8003E464) # addiu $t4, $t4, -0x1b6c +/* 056488 7F021918 014B6821 */ addu $t5, $t2, $t3 +/* 05648C 7F02191C 01AC1821 */ addu $v1, $t5, $t4 +/* 056490 7F021920 0FC24677 */ jal get_debug_render_raster +/* 056494 7F021924 AFA30058 */ sw $v1, 0x58($sp) +/* 056498 7F021928 144000AA */ bnez $v0, .Ljp7F021BD4 +/* 05649C 7F02192C 8FA30058 */ lw $v1, 0x58($sp) +/* 0564A0 7F021930 AFA00054 */ sw $zero, 0x54($sp) +/* 0564A4 7F021934 00002025 */ move $a0, $zero +/* 0564A8 7F021938 24050020 */ li $a1, 32 +/* 0564AC 7F02193C 0C0030DC */ jal get_controller_buttons_held +/* 0564B0 7F021940 AFA30058 */ sw $v1, 0x58($sp) +/* 0564B4 7F021944 1040004F */ beqz $v0, .Ljp7F021A84 +/* 0564B8 7F021948 8FA30058 */ lw $v1, 0x58($sp) +/* 0564BC 7F02194C 00002025 */ move $a0, $zero +/* 0564C0 7F021950 34058000 */ li $a1, 32768 +/* 0564C4 7F021954 0C0030DC */ jal get_controller_buttons_held +/* 0564C8 7F021958 AFA30058 */ sw $v1, 0x58($sp) +/* 0564CC 7F02195C 10400008 */ beqz $v0, .Ljp7F021980 +/* 0564D0 7F021960 8FA30058 */ lw $v1, 0x58($sp) +/* 0564D4 7F021964 3C018005 */ lui $at, %hi(D_80051D58) # $at, 0x8005 +/* 0564D8 7F021968 C4321D8C */ lwc1 $f18, %lo(D_80051D58)($at) +/* 0564DC 7F02196C C4700008 */ lwc1 $f16, 8($v1) +/* 0564E0 7F021970 24180001 */ li $t8, 1 +/* 0564E4 7F021974 46128101 */ sub.s $f4, $f16, $f18 +/* 0564E8 7F021978 E4640008 */ swc1 $f4, 8($v1) +/* 0564EC 7F02197C AFB80054 */ sw $t8, 0x54($sp) +.Ljp7F021980: +/* 0564F0 7F021980 00002025 */ move $a0, $zero +/* 0564F4 7F021984 24054000 */ li $a1, 16384 +/* 0564F8 7F021988 0C0030DC */ jal get_controller_buttons_held +/* 0564FC 7F02198C AFA30058 */ sw $v1, 0x58($sp) +/* 056500 7F021990 10400008 */ beqz $v0, .Ljp7F0219B4 +/* 056504 7F021994 8FA30058 */ lw $v1, 0x58($sp) +/* 056508 7F021998 3C018005 */ lui $at, %hi(D_80051D5C) # $at, 0x8005 +/* 05650C 7F02199C C4281D90 */ lwc1 $f8, %lo(D_80051D5C)($at) +/* 056510 7F0219A0 C4660008 */ lwc1 $f6, 8($v1) +/* 056514 7F0219A4 24190001 */ li $t9, 1 +/* 056518 7F0219A8 46083280 */ add.s $f10, $f6, $f8 +/* 05651C 7F0219AC E46A0008 */ swc1 $f10, 8($v1) +/* 056520 7F0219B0 AFB90054 */ sw $t9, 0x54($sp) +.Ljp7F0219B4: +/* 056524 7F0219B4 00002025 */ move $a0, $zero +/* 056528 7F0219B8 24050004 */ li $a1, 4 +/* 05652C 7F0219BC 0C0030DC */ jal get_controller_buttons_held +/* 056530 7F0219C0 AFA30058 */ sw $v1, 0x58($sp) +/* 056534 7F0219C4 10400008 */ beqz $v0, .Ljp7F0219E8 +/* 056538 7F0219C8 8FA30058 */ lw $v1, 0x58($sp) +/* 05653C 7F0219CC 3C018005 */ lui $at, %hi(D_80051D60) # $at, 0x8005 +/* 056540 7F0219D0 C4321D94 */ lwc1 $f18, %lo(D_80051D60)($at) +/* 056544 7F0219D4 C4700004 */ lwc1 $f16, 4($v1) +/* 056548 7F0219D8 240E0001 */ li $t6, 1 +/* 05654C 7F0219DC 46128101 */ sub.s $f4, $f16, $f18 +/* 056550 7F0219E0 E4640004 */ swc1 $f4, 4($v1) +/* 056554 7F0219E4 AFAE0054 */ sw $t6, 0x54($sp) +.Ljp7F0219E8: +/* 056558 7F0219E8 00002025 */ move $a0, $zero +/* 05655C 7F0219EC 24050008 */ li $a1, 8 +/* 056560 7F0219F0 0C0030DC */ jal get_controller_buttons_held +/* 056564 7F0219F4 AFA30058 */ sw $v1, 0x58($sp) +/* 056568 7F0219F8 10400008 */ beqz $v0, .Ljp7F021A1C +/* 05656C 7F0219FC 8FA30058 */ lw $v1, 0x58($sp) +/* 056570 7F021A00 3C018005 */ lui $at, %hi(D_80051D64) # $at, 0x8005 +/* 056574 7F021A04 C4281D98 */ lwc1 $f8, %lo(D_80051D64)($at) +/* 056578 7F021A08 C4660004 */ lwc1 $f6, 4($v1) +/* 05657C 7F021A0C 24080001 */ li $t0, 1 +/* 056580 7F021A10 46083280 */ add.s $f10, $f6, $f8 +/* 056584 7F021A14 E46A0004 */ swc1 $f10, 4($v1) +/* 056588 7F021A18 AFA80054 */ sw $t0, 0x54($sp) +.Ljp7F021A1C: +/* 05658C 7F021A1C 00002025 */ move $a0, $zero +/* 056590 7F021A20 24050002 */ li $a1, 2 +/* 056594 7F021A24 0C0030DC */ jal get_controller_buttons_held +/* 056598 7F021A28 AFA30058 */ sw $v1, 0x58($sp) +/* 05659C 7F021A2C 10400008 */ beqz $v0, .Ljp7F021A50 +/* 0565A0 7F021A30 8FA30058 */ lw $v1, 0x58($sp) +/* 0565A4 7F021A34 3C018005 */ lui $at, %hi(D_80051D68) # $at, 0x8005 +/* 0565A8 7F021A38 C4321D9C */ lwc1 $f18, %lo(D_80051D68)($at) +/* 0565AC 7F021A3C C4700000 */ lwc1 $f16, ($v1) +/* 0565B0 7F021A40 240F0001 */ li $t7, 1 +/* 0565B4 7F021A44 46128101 */ sub.s $f4, $f16, $f18 +/* 0565B8 7F021A48 E4640000 */ swc1 $f4, ($v1) +/* 0565BC 7F021A4C AFAF0054 */ sw $t7, 0x54($sp) +.Ljp7F021A50: +/* 0565C0 7F021A50 00002025 */ move $a0, $zero +/* 0565C4 7F021A54 24050001 */ li $a1, 1 +/* 0565C8 7F021A58 0C0030DC */ jal get_controller_buttons_held +/* 0565CC 7F021A5C AFA30058 */ sw $v1, 0x58($sp) +/* 0565D0 7F021A60 10400008 */ beqz $v0, .Ljp7F021A84 +/* 0565D4 7F021A64 8FA30058 */ lw $v1, 0x58($sp) +/* 0565D8 7F021A68 3C018005 */ lui $at, %hi(D_80051D6C) # $at, 0x8005 +/* 0565DC 7F021A6C C4281DA0 */ lwc1 $f8, %lo(D_80051D6C)($at) +/* 0565E0 7F021A70 C4660000 */ lwc1 $f6, ($v1) +/* 0565E4 7F021A74 24090001 */ li $t1, 1 +/* 0565E8 7F021A78 46083280 */ add.s $f10, $f6, $f8 +/* 0565EC 7F021A7C E46A0000 */ swc1 $f10, ($v1) +/* 0565F0 7F021A80 AFA90054 */ sw $t1, 0x54($sp) +.Ljp7F021A84: +/* 0565F4 7F021A84 00002025 */ move $a0, $zero +/* 0565F8 7F021A88 24050010 */ li $a1, 16 +/* 0565FC 7F021A8C 0C0030DC */ jal get_controller_buttons_held +/* 056600 7F021A90 AFA30058 */ sw $v1, 0x58($sp) +/* 056604 7F021A94 1040004F */ beqz $v0, .Ljp7F021BD4 +/* 056608 7F021A98 8FA30058 */ lw $v1, 0x58($sp) +/* 05660C 7F021A9C 00002025 */ move $a0, $zero +/* 056610 7F021AA0 34058000 */ li $a1, 32768 +/* 056614 7F021AA4 0C0030DC */ jal get_controller_buttons_held +/* 056618 7F021AA8 AFA30058 */ sw $v1, 0x58($sp) +/* 05661C 7F021AAC 10400008 */ beqz $v0, .Ljp7F021AD0 +/* 056620 7F021AB0 8FA30058 */ lw $v1, 0x58($sp) +/* 056624 7F021AB4 3C018005 */ lui $at, %hi(D_80051D70) # $at, 0x8005 +/* 056628 7F021AB8 C4321DA4 */ lwc1 $f18, %lo(D_80051D70)($at) +/* 05662C 7F021ABC C4700014 */ lwc1 $f16, 0x14($v1) +/* 056630 7F021AC0 240A0001 */ li $t2, 1 +/* 056634 7F021AC4 46128102 */ mul.s $f4, $f16, $f18 +/* 056638 7F021AC8 E4640014 */ swc1 $f4, 0x14($v1) +/* 05663C 7F021ACC AFAA0054 */ sw $t2, 0x54($sp) +.Ljp7F021AD0: +/* 056640 7F021AD0 00002025 */ move $a0, $zero +/* 056644 7F021AD4 24054000 */ li $a1, 16384 +/* 056648 7F021AD8 0C0030DC */ jal get_controller_buttons_held +/* 05664C 7F021ADC AFA30058 */ sw $v1, 0x58($sp) +/* 056650 7F021AE0 10400008 */ beqz $v0, .Ljp7F021B04 +/* 056654 7F021AE4 8FA30058 */ lw $v1, 0x58($sp) +/* 056658 7F021AE8 3C018005 */ lui $at, %hi(D_80051D74) # $at, 0x8005 +/* 05665C 7F021AEC C4281DA8 */ lwc1 $f8, %lo(D_80051D74)($at) +/* 056660 7F021AF0 C4660014 */ lwc1 $f6, 0x14($v1) +/* 056664 7F021AF4 240B0001 */ li $t3, 1 +/* 056668 7F021AF8 46083282 */ mul.s $f10, $f6, $f8 +/* 05666C 7F021AFC E46A0014 */ swc1 $f10, 0x14($v1) +/* 056670 7F021B00 AFAB0054 */ sw $t3, 0x54($sp) +.Ljp7F021B04: +/* 056674 7F021B04 00002025 */ move $a0, $zero +/* 056678 7F021B08 24050004 */ li $a1, 4 +/* 05667C 7F021B0C 0C0030DC */ jal get_controller_buttons_held +/* 056680 7F021B10 AFA30058 */ sw $v1, 0x58($sp) +/* 056684 7F021B14 10400008 */ beqz $v0, .Ljp7F021B38 +/* 056688 7F021B18 8FA30058 */ lw $v1, 0x58($sp) +/* 05668C 7F021B1C 3C018005 */ lui $at, %hi(D_80051D78) # $at, 0x8005 +/* 056690 7F021B20 C4321DAC */ lwc1 $f18, %lo(D_80051D78)($at) +/* 056694 7F021B24 C4700010 */ lwc1 $f16, 0x10($v1) +/* 056698 7F021B28 240D0001 */ li $t5, 1 +/* 05669C 7F021B2C 46128102 */ mul.s $f4, $f16, $f18 +/* 0566A0 7F021B30 E4640010 */ swc1 $f4, 0x10($v1) +/* 0566A4 7F021B34 AFAD0054 */ sw $t5, 0x54($sp) +.Ljp7F021B38: +/* 0566A8 7F021B38 00002025 */ move $a0, $zero +/* 0566AC 7F021B3C 24050008 */ li $a1, 8 +/* 0566B0 7F021B40 0C0030DC */ jal get_controller_buttons_held +/* 0566B4 7F021B44 AFA30058 */ sw $v1, 0x58($sp) +/* 0566B8 7F021B48 10400008 */ beqz $v0, .Ljp7F021B6C +/* 0566BC 7F021B4C 8FA30058 */ lw $v1, 0x58($sp) +/* 0566C0 7F021B50 3C018005 */ lui $at, %hi(D_80051D7C) # $at, 0x8005 +/* 0566C4 7F021B54 C4281DB0 */ lwc1 $f8, %lo(D_80051D7C)($at) +/* 0566C8 7F021B58 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0566CC 7F021B5C 240C0001 */ li $t4, 1 +/* 0566D0 7F021B60 46083282 */ mul.s $f10, $f6, $f8 +/* 0566D4 7F021B64 E46A0010 */ swc1 $f10, 0x10($v1) +/* 0566D8 7F021B68 AFAC0054 */ sw $t4, 0x54($sp) +.Ljp7F021B6C: +/* 0566DC 7F021B6C 00002025 */ move $a0, $zero +/* 0566E0 7F021B70 24050002 */ li $a1, 2 +/* 0566E4 7F021B74 0C0030DC */ jal get_controller_buttons_held +/* 0566E8 7F021B78 AFA30058 */ sw $v1, 0x58($sp) +/* 0566EC 7F021B7C 10400008 */ beqz $v0, .Ljp7F021BA0 +/* 0566F0 7F021B80 8FA30058 */ lw $v1, 0x58($sp) +/* 0566F4 7F021B84 3C018005 */ lui $at, %hi(D_80051D80) # $at, 0x8005 +/* 0566F8 7F021B88 C4321DB4 */ lwc1 $f18, %lo(D_80051D80)($at) +/* 0566FC 7F021B8C C470000C */ lwc1 $f16, 0xc($v1) +/* 056700 7F021B90 24180001 */ li $t8, 1 +/* 056704 7F021B94 46128102 */ mul.s $f4, $f16, $f18 +/* 056708 7F021B98 E464000C */ swc1 $f4, 0xc($v1) +/* 05670C 7F021B9C AFB80054 */ sw $t8, 0x54($sp) +.Ljp7F021BA0: +/* 056710 7F021BA0 00002025 */ move $a0, $zero +/* 056714 7F021BA4 24050001 */ li $a1, 1 +/* 056718 7F021BA8 0C0030DC */ jal get_controller_buttons_held +/* 05671C 7F021BAC AFA30058 */ sw $v1, 0x58($sp) +/* 056720 7F021BB0 10400008 */ beqz $v0, .Ljp7F021BD4 +/* 056724 7F021BB4 8FA30058 */ lw $v1, 0x58($sp) +/* 056728 7F021BB8 3C018005 */ lui $at, %hi(D_80051D84) # $at, 0x8005 +/* 05672C 7F021BBC C4281DB8 */ lwc1 $f8, %lo(D_80051D84)($at) +/* 056730 7F021BC0 C466000C */ lwc1 $f6, 0xc($v1) +/* 056734 7F021BC4 24190001 */ li $t9, 1 +/* 056738 7F021BC8 46083282 */ mul.s $f10, $f6, $f8 +/* 05673C 7F021BCC E46A000C */ swc1 $f10, 0xc($v1) +/* 056740 7F021BD0 AFB90054 */ sw $t9, 0x54($sp) +.Ljp7F021BD4: +/* 056744 7F021BD4 3C018005 */ lui $at, %hi(D_80051D88) # $at, 0x8005 +/* 056748 7F021BD8 C4201DBC */ lwc1 $f0, %lo(D_80051D88)($at) +/* 05674C 7F021BDC C4700000 */ lwc1 $f16, ($v1) +/* 056750 7F021BE0 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 056754 7F021BE4 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056758 7F021BE8 46008482 */ mul.s $f18, $f16, $f0 +/* 05675C 7F021BEC E7B200F0 */ swc1 $f18, 0xf0($sp) +/* 056760 7F021BF0 C4640004 */ lwc1 $f4, 4($v1) +/* 056764 7F021BF4 46002182 */ mul.s $f6, $f4, $f0 +/* 056768 7F021BF8 E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 05676C 7F021BFC C4680008 */ lwc1 $f8, 8($v1) +/* 056770 7F021C00 46004282 */ mul.s $f10, $f8, $f0 +/* 056774 7F021C04 E7AA00F8 */ swc1 $f10, 0xf8($sp) +/* 056778 7F021C08 C470000C */ lwc1 $f16, 0xc($v1) +/* 05677C 7F021C0C E7B000EC */ swc1 $f16, 0xec($sp) +/* 056780 7F021C10 C4720010 */ lwc1 $f18, 0x10($v1) +/* 056784 7F021C14 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 056788 7F021C18 C4640014 */ lwc1 $f4, 0x14($v1) +/* 05678C 7F021C1C 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 056790 7F021C20 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 056794 7F021C24 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 056798 7F021C28 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 05679C 7F021C2C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567A0 7F021C30 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0567A4 7F021C34 0FC163C1 */ jal matrix_column_2_scalar_multiply +/* 0567A8 7F021C38 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567AC 7F021C3C C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0567B0 7F021C40 0FC163DB */ jal matrix_column_3_scalar_multiply_2 +/* 0567B4 7F021C44 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567B8 7F021C48 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0567BC 7F021C4C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567C0 7F021C50 27A60064 */ addiu $a2, $sp, 0x64 +/* 0567C4 7F021C54 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 0567C8 7F021C58 8DC4000C */ lw $a0, 0xc($t6) +/* 0567CC 7F021C5C 8FA800FC */ lw $t0, 0xfc($sp) +/* 0567D0 7F021C60 27A40064 */ addiu $a0, $sp, 0x64 +/* 0567D4 7F021C64 0FC16150 */ jal matrix_4x4_copy +/* 0567D8 7F021C68 8D05000C */ lw $a1, 0xc($t0) +/* 0567DC 7F021C6C 8FAF0060 */ lw $t7, 0x60($sp) +/* 0567E0 7F021C70 24010002 */ li $at, 2 +/* 0567E4 7F021C74 55E10003 */ bnel $t7, $at, .Ljp7F021C84 +/* 0567E8 7F021C78 96090012 */ lhu $t1, 0x12($s0) +/* 0567EC 7F021C7C AFA00108 */ sw $zero, 0x108($sp) +.Ljp7F021C80: +/* 0567F0 7F021C80 96090012 */ lhu $t1, 0x12($s0) +.Ljp7F021C84: +/* 0567F4 7F021C84 8FAB0100 */ lw $t3, 0x100($sp) +/* 0567F8 7F021C88 8FA500FC */ lw $a1, 0xfc($sp) +/* 0567FC 7F021C8C 312A0001 */ andi $t2, $t1, 1 +/* 056800 7F021C90 11400005 */ beqz $t2, .Ljp7F021CA8 +/* 056804 7F021C94 00000000 */ nop +/* 056808 7F021C98 8D6D0064 */ lw $t5, 0x64($t3) +/* 05680C 7F021C9C 31AC0080 */ andi $t4, $t5, 0x80 +/* 056810 7F021CA0 55800005 */ bnezl $t4, .Ljp7F021CB8 +/* 056814 7F021CA4 8FB80110 */ lw $t8, 0x110($sp) +.Ljp7F021CA8: +/* 056818 7F021CA8 0FC1ADC4 */ jal sub_GAME_7F06B120 +/* 05681C 7F021CAC 8E040020 */ lw $a0, 0x20($s0) +/* 056820 7F021CB0 AE020020 */ sw $v0, 0x20($s0) +/* 056824 7F021CB4 8FB80110 */ lw $t8, 0x110($sp) +.Ljp7F021CB8: +/* 056828 7F021CB8 8F190008 */ lw $t9, 8($t8) +/* 05682C 7F021CBC 8F2E0008 */ lw $t6, 8($t9) +/* 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 +/* 056840 7F021CD0 03002025 */ move $a0, $t8 +/* 056844 7F021CD4 8C430000 */ lw $v1, ($v0) +/* 056848 7F021CD8 10600009 */ beqz $v1, .Ljp7F021D00 +/* 05684C 7F021CDC 00000000 */ nop +/* 056850 7F021CE0 8C680008 */ lw $t0, 8($v1) +/* 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 +/* 056864 7F021CF4 8FA40110 */ lw $a0, 0x110($sp) +/* 056868 7F021CF8 8FAF0108 */ lw $t7, 0x108($sp) +/* 05686C 7F021CFC AC4F0000 */ sw $t7, ($v0) +.Ljp7F021D00: +/* 056870 7F021D00 0FC1AE23 */ jal sub_GAME_7F06B29C +/* 056874 7F021D04 8E040020 */ lw $a0, 0x20($s0) +/* 056878 7F021D08 0FC1B046 */ jal sub_GAME_7F06BB28 +/* 05687C 7F021D0C 8E040020 */ lw $a0, 0x20($s0) +/* 056880 7F021D10 10000020 */ b .Ljp7F021D94 +/* 056884 7F021D14 AE020020 */ sw $v0, 0x20($s0) +/* 056888 7F021D18 8E020160 */ lw $v0, 0x160($s0) +.Ljp7F021D1C: +/* 05688C 7F021D1C 50400005 */ beql $v0, $zero, .Ljp7F021D34 +/* 056890 7F021D20 8E020164 */ lw $v0, 0x164($s0) +/* 056894 7F021D24 90490001 */ lbu $t1, 1($v0) +/* 056898 7F021D28 312AFFFD */ andi $t2, $t1, 0xfffd +/* 05689C 7F021D2C A04A0001 */ sb $t2, 1($v0) +/* 0568A0 7F021D30 8E020164 */ lw $v0, 0x164($s0) +.Ljp7F021D34: +/* 0568A4 7F021D34 2403FFFD */ li $v1, -3 +/* 0568A8 7F021D38 50400005 */ beql $v0, $zero, .Ljp7F021D50 +/* 0568AC 7F021D3C 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 0568B0 7F021D40 904B0001 */ lbu $t3, 1($v0) +/* 0568B4 7F021D44 01636824 */ and $t5, $t3, $v1 +/* 0568B8 7F021D48 A04D0001 */ sb $t5, 1($v0) +/* 0568BC 7F021D4C 8E0201D8 */ lw $v0, 0x1d8($s0) +.Ljp7F021D50: +/* 0568C0 7F021D50 50400005 */ beql $v0, $zero, .Ljp7F021D68 +/* 0568C4 7F021D54 8FAE0158 */ lw $t6, 0x158($sp) +/* 0568C8 7F021D58 904C0001 */ lbu $t4, 1($v0) +/* 0568CC 7F021D5C 0183C824 */ and $t9, $t4, $v1 +/* 0568D0 7F021D60 A0590001 */ sb $t9, 1($v0) +/* 0568D4 7F021D64 8FAE0158 */ lw $t6, 0x158($sp) +.Ljp7F021D68: +/* 0568D8 7F021D68 91D80001 */ lbu $t8, 1($t6) +/* 0568DC 7F021D6C 03034024 */ and $t0, $t8, $v1 +/* 0568E0 7F021D70 A1C80001 */ sb $t0, 1($t6) +/* 0568E4 7F021D74 920F00F8 */ lbu $t7, 0xf8($s0) +/* 0568E8 7F021D78 920900F9 */ lbu $t1, 0xf9($s0) +/* 0568EC 7F021D7C 920A00FA */ lbu $t2, 0xfa($s0) +/* 0568F0 7F021D80 920B00FB */ lbu $t3, 0xfb($s0) +/* 0568F4 7F021D84 A20F00F4 */ sb $t7, 0xf4($s0) +/* 0568F8 7F021D88 A20900F5 */ sb $t1, 0xf5($s0) +/* 0568FC 7F021D8C A20A00F6 */ sb $t2, 0xf6($s0) +/* 056900 7F021D90 A20B00F7 */ sb $t3, 0xf7($s0) +.Ljp7F021D94: +/* 056904 7F021D94 8E0D0014 */ lw $t5, 0x14($s0) +/* 056908 7F021D98 31AC0400 */ andi $t4, $t5, 0x400 +/* 05690C 7F021D9C 55800015 */ bnezl $t4, .Ljp7F021DF4 +/* 056910 7F021DA0 00001025 */ move $v0, $zero +/* 056914 7F021DA4 96020012 */ lhu $v0, 0x12($s0) +/* 056918 7F021DA8 8FB80158 */ lw $t8, 0x158($sp) +/* 05691C 7F021DAC 30590001 */ andi $t9, $v0, 1 +/* 056920 7F021DB0 1320000D */ beqz $t9, .Ljp7F021DE8 +/* 056924 7F021DB4 00000000 */ nop +/* 056928 7F021DB8 8F040020 */ lw $a0, 0x20($t8) +/* 05692C 7F021DBC 50800009 */ beql $a0, $zero, .Ljp7F021DE4 +/* 056930 7F021DC0 3048FFFE */ andi $t0, $v0, 0xfffe +/* 056934 7F021DC4 8C830024 */ lw $v1, 0x24($a0) +.Ljp7F021DC8: +/* 056938 7F021DC8 0FC1314D */ jal sub_GAME_7F04C130 +/* 05693C 7F021DCC AFA3003C */ sw $v1, 0x3c($sp) +/* 056940 7F021DD0 8FA4003C */ lw $a0, 0x3c($sp) +/* 056944 7F021DD4 5480FFFC */ bnezl $a0, .Ljp7F021DC8 +/* 056948 7F021DD8 8C830024 */ lw $v1, 0x24($a0) +/* 05694C 7F021DDC 96020012 */ lhu $v0, 0x12($s0) +/* 056950 7F021DE0 3048FFFE */ andi $t0, $v0, 0xfffe +.Ljp7F021DE4: +/* 056954 7F021DE4 A6080012 */ sh $t0, 0x12($s0) +.Ljp7F021DE8: +/* 056958 7F021DE8 0FC0B95D */ jal sub_GAME_7F02E26C +/* 05695C 7F021DEC 02002025 */ move $a0, $s0 +/* 056960 7F021DF0 00001025 */ move $v0, $zero +.Ljp7F021DF4: +/* 056964 7F021DF4 8FBF0024 */ lw $ra, 0x24($sp) +/* 056968 7F021DF8 8FB00020 */ lw $s0, 0x20($sp) +/* 05696C 7F021DFC 27BD0158 */ addiu $sp, $sp, 0x158 +/* 056970 7F021E00 03E00008 */ jr $ra +/* 056974 7F021E04 00000000 */ nop + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F021B20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021B20 +/* 056650 7F021B20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 056654 7F021B24 AFBF001C */ sw $ra, 0x1c($sp) +/* 056658 7F021B28 AFB10018 */ sw $s1, 0x18($sp) +/* 05665C 7F021B2C AFB00014 */ sw $s0, 0x14($sp) +/* 056660 7F021B30 8C8E0018 */ lw $t6, 0x18($a0) +/* 056664 7F021B34 00808825 */ move $s1, $a0 +/* 056668 7F021B38 8DD00020 */ lw $s0, 0x20($t6) +/* 05666C 7F021B3C 52000016 */ beql $s0, $zero, .L7F021B98 +/* 056670 7F021B40 962A0012 */ lhu $t2, 0x12($s1) +/* 056674 7F021B44 8E2F01D8 */ lw $t7, 0x1d8($s1) +.L7F021B48: +/* 056678 7F021B48 520F0010 */ beql $s0, $t7, .L7F021B8C +/* 05667C 7F021B4C 8E100024 */ lw $s0, 0x24($s0) +/* 056680 7F021B50 8E380164 */ lw $t8, 0x164($s1) +/* 056684 7F021B54 5218000D */ beql $s0, $t8, .L7F021B8C +/* 056688 7F021B58 8E100024 */ lw $s0, 0x24($s0) +/* 05668C 7F021B5C 8E390160 */ lw $t9, 0x160($s1) +/* 056690 7F021B60 5219000A */ beql $s0, $t9, .L7F021B8C +/* 056694 7F021B64 8E100024 */ lw $s0, 0x24($s0) +/* 056698 7F021B68 8E020004 */ lw $v0, 4($s0) +/* 05669C 7F021B6C 02002025 */ move $a0, $s0 +/* 0566A0 7F021B70 8C480008 */ lw $t0, 8($v0) +/* 0566A4 7F021B74 31092000 */ andi $t1, $t0, 0x2000 +/* 0566A8 7F021B78 55200004 */ bnezl $t1, .L7F021B8C +/* 0566AC 7F021B7C 8E100024 */ lw $s0, 0x24($s0) +/* 0566B0 7F021B80 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 0566B4 7F021B84 24050001 */ li $a1, 1 +/* 0566B8 7F021B88 8E100024 */ lw $s0, 0x24($s0) +.L7F021B8C: +/* 0566BC 7F021B8C 5600FFEE */ bnezl $s0, .L7F021B48 +/* 0566C0 7F021B90 8E2F01D8 */ lw $t7, 0x1d8($s1) +/* 0566C4 7F021B94 962A0012 */ lhu $t2, 0x12($s1) +.L7F021B98: +/* 0566C8 7F021B98 354B0001 */ ori $t3, $t2, 1 +/* 0566CC 7F021B9C A62B0012 */ sh $t3, 0x12($s1) +/* 0566D0 7F021BA0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0566D4 7F021BA4 8FB10018 */ lw $s1, 0x18($sp) +/* 0566D8 7F021BA8 8FB00014 */ lw $s0, 0x14($sp) +/* 0566DC 7F021BAC 03E00008 */ jr $ra +/* 0566E0 7F021BB0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BB4 +/* 0566E4 7F021BB4 908E0000 */ lbu $t6, ($a0) +/* 0566E8 7F021BB8 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 0566EC 7F021BBC 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 0566F0 7F021BC0 A04E0000 */ sb $t6, ($v0) +/* 0566F4 7F021BC4 908F0001 */ lbu $t7, 1($a0) +/* 0566F8 7F021BC8 A04F0001 */ sb $t7, 1($v0) +/* 0566FC 7F021BCC 90980002 */ lbu $t8, 2($a0) +/* 056700 7F021BD0 03E00008 */ jr $ra +/* 056704 7F021BD4 A0580002 */ sb $t8, 2($v0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BD8 +/* 056708 7F021BD8 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 05670C 7F021BDC 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 056710 7F021BE0 904E0000 */ lbu $t6, ($v0) +/* 056714 7F021BE4 A08E0000 */ sb $t6, ($a0) +/* 056718 7F021BE8 904F0001 */ lbu $t7, 1($v0) +/* 05671C 7F021BEC A08F0001 */ sb $t7, 1($a0) +/* 056720 7F021BF0 90580002 */ lbu $t8, 2($v0) +/* 056724 7F021BF4 03E00008 */ jr $ra +/* 056728 7F021BF8 A0980002 */ sb $t8, 2($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BFC +/* 05672C 7F021BFC 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 056730 7F021C00 AFBF0024 */ sw $ra, 0x24($sp) +/* 056734 7F021C04 AFB00020 */ sw $s0, 0x20($sp) +/* 056738 7F021C08 AFA400D8 */ sw $a0, 0xd8($sp) +/* 05673C 7F021C0C AFA500DC */ sw $a1, 0xdc($sp) +/* 056740 7F021C10 AFA600E0 */ sw $a2, 0xe0($sp) +/* 056744 7F021C14 8C900004 */ lw $s0, 4($a0) +/* 056748 7F021C18 920F000C */ lbu $t7, 0xc($s0) +/* 05674C 7F021C1C 8E07001C */ lw $a3, 0x1c($s0) +/* 056750 7F021C20 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 056754 7F021C24 8E180014 */ lw $t8, 0x14($s0) +/* 056758 7F021C28 0018C940 */ sll $t9, $t8, 5 +/* 05675C 7F021C2C 07220010 */ bltzl $t9, .L7F021C70 +/* 056760 7F021C30 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 056764 7F021C34 0FC1B403 */ jal getinstsize +/* 056768 7F021C38 00E02025 */ move $a0, $a3 +/* 05676C 7F021C3C 44050000 */ mfc1 $a1, $f0 +/* 056770 7F021C40 0FC152E0 */ jal sub_GAME_7F054B80 +/* 056774 7F021C44 8FA400D8 */ lw $a0, 0xd8($sp) +/* 056778 7F021C48 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 05677C 7F021C4C 448A2000 */ mtc1 $t2, $f4 +/* 056780 7F021C50 00000000 */ nop +/* 056784 7F021C54 468021A0 */ cvt.s.w $f6, $f4 +/* 056788 7F021C58 46003202 */ mul.s $f8, $f6, $f0 +/* 05678C 7F021C5C 4600428D */ trunc.w.s $f10, $f8 +/* 056790 7F021C60 440C5000 */ mfc1 $t4, $f10 +/* 056794 7F021C64 00000000 */ nop +/* 056798 7F021C68 AFAC00B4 */ sw $t4, 0xb4($sp) +/* 05679C 7F021C6C 8FAD00B4 */ lw $t5, 0xb4($sp) +.L7F021C70: +/* 0567A0 7F021C70 8FB800E0 */ lw $t8, 0xe0($sp) +/* 0567A4 7F021C74 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0567A8 7F021C78 29A100FF */ slti $at, $t5, 0xff +/* 0567AC 7F021C7C 14200006 */ bnez $at, .L7F021C98 +/* 0567B0 7F021C80 00000000 */ nop +/* 0567B4 7F021C84 8E0E0014 */ lw $t6, 0x14($s0) +/* 0567B8 7F021C88 8FAA00E0 */ lw $t2, 0xe0($sp) +/* 0567BC 7F021C8C 000E7B80 */ sll $t7, $t6, 0xe +/* 0567C0 7F021C90 05E10007 */ bgez $t7, .L7F021CB0 +/* 0567C4 7F021C94 00000000 */ nop +.L7F021C98: +/* 0567C8 7F021C98 17000003 */ bnez $t8, .L7F021CA8 +/* 0567CC 7F021C9C 24190003 */ li $t9, 3 +/* 0567D0 7F021CA0 100000F0 */ b .L7F022064 +/* 0567D4 7F021CA4 8FA200DC */ lw $v0, 0xdc($sp) +.L7F021CA8: +/* 0567D8 7F021CA8 10000007 */ b .L7F021CC8 +/* 0567DC 7F021CAC AFB900B8 */ sw $t9, 0xb8($sp) +.L7F021CB0: +/* 0567E0 7F021CB0 15400004 */ bnez $t2, .L7F021CC4 +/* 0567E4 7F021CB4 240C0002 */ li $t4, 2 +/* 0567E8 7F021CB8 240B0001 */ li $t3, 1 +/* 0567EC 7F021CBC 10000002 */ b .L7F021CC8 +/* 0567F0 7F021CC0 AFAB00B8 */ sw $t3, 0xb8($sp) +.L7F021CC4: +/* 0567F4 7F021CC4 AFAC00B8 */ sw $t4, 0xb8($sp) +.L7F021CC8: +/* 0567F8 7F021CC8 0FC2ECE9 */ jal if_sky_present_convert_values +/* 0567FC 7F021CCC 8FA400D8 */ lw $a0, 0xd8($sp) +/* 056800 7F021CD0 104000DD */ beqz $v0, .L7F022048 +/* 056804 7F021CD4 AFA200BC */ sw $v0, 0xbc($sp) +/* 056808 7F021CD8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 05680C 7F021CDC 3C0F8003 */ lui $t7, %hi(D_8002CCBC) +/* 056810 7F021CE0 25EFCCBC */ addiu $t7, %lo(D_8002CCBC) # addiu $t7, $t7, -0x3344 +/* 056814 7F021CE4 19A000D8 */ blez $t5, .L7F022048 +/* 056818 7F021CE8 27AE0070 */ addiu $t6, $sp, 0x70 +/* 05681C 7F021CEC 25F9003C */ addiu $t9, $t7, 0x3c +.L7F021CF0: +/* 056820 7F021CF0 8DE10000 */ lw $at, ($t7) +/* 056824 7F021CF4 25EF000C */ addiu $t7, $t7, 0xc +/* 056828 7F021CF8 25CE000C */ addiu $t6, $t6, 0xc +/* 05682C 7F021CFC ADC1FFF4 */ sw $at, -0xc($t6) +/* 056830 7F021D00 8DE1FFF8 */ lw $at, -8($t7) +/* 056834 7F021D04 ADC1FFF8 */ sw $at, -8($t6) +/* 056838 7F021D08 8DE1FFFC */ lw $at, -4($t7) +/* 05683C 7F021D0C 15F9FFF8 */ bne $t7, $t9, .L7F021CF0 +/* 056840 7F021D10 ADC1FFFC */ sw $at, -4($t6) +/* 056844 7F021D14 8DE10000 */ lw $at, ($t7) +/* 056848 7F021D18 240A0050 */ li $t2, 80 +/* 05684C 7F021D1C 00003825 */ move $a3, $zero +/* 056850 7F021D20 ADC10000 */ sw $at, ($t6) +/* 056854 7F021D24 AFAA004C */ sw $t2, 0x4c($sp) +/* 056858 7F021D28 8E020160 */ lw $v0, 0x160($s0) +/* 05685C 7F021D2C 8E030164 */ lw $v1, 0x164($s0) +/* 056860 7F021D30 8E0601D8 */ lw $a2, 0x1d8($s0) +/* 056864 7F021D34 00004025 */ move $t0, $zero +/* 056868 7F021D38 10400002 */ beqz $v0, .L7F021D44 +/* 05686C 7F021D3C 00004825 */ move $t1, $zero +/* 056870 7F021D40 8C470004 */ lw $a3, 4($v0) +.L7F021D44: +/* 056874 7F021D44 10600002 */ beqz $v1, .L7F021D50 +/* 056878 7F021D48 8FA400D8 */ lw $a0, 0xd8($sp) +/* 05687C 7F021D4C 8C680004 */ lw $t0, 4($v1) +.L7F021D50: +/* 056880 7F021D50 10C00002 */ beqz $a2, .L7F021D5C +/* 056884 7F021D54 27A50060 */ addiu $a1, $sp, 0x60 +/* 056888 7F021D58 8CC90004 */ lw $t1, 4($a2) +.L7F021D5C: +/* 05688C 7F021D5C AFA20048 */ sw $v0, 0x48($sp) +/* 056890 7F021D60 AFA30044 */ sw $v1, 0x44($sp) +/* 056894 7F021D64 AFA60040 */ sw $a2, 0x40($sp) +/* 056898 7F021D68 AFA7003C */ sw $a3, 0x3c($sp) +/* 05689C 7F021D6C AFA80038 */ sw $t0, 0x38($sp) +/* 0568A0 7F021D70 0FC15299 */ jal sub_GAME_7F054A64 +/* 0568A4 7F021D74 AFA90034 */ sw $t1, 0x34($sp) +/* 0568A8 7F021D78 1840000D */ blez $v0, .L7F021DB0 +/* 0568AC 7F021D7C 00000000 */ nop +/* 0568B0 7F021D80 8E0B0014 */ lw $t3, 0x14($s0) +/* 0568B4 7F021D84 8FA400DC */ lw $a0, 0xdc($sp) +/* 0568B8 7F021D88 8FA50060 */ lw $a1, 0x60($sp) +/* 0568BC 7F021D8C 000B6200 */ sll $t4, $t3, 8 +/* 0568C0 7F021D90 05800007 */ bltz $t4, .L7F021DB0 +/* 0568C4 7F021D94 8FA60064 */ lw $a2, 0x64($sp) +/* 0568C8 7F021D98 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0568CC 7F021D9C 8FA70068 */ lw $a3, 0x68($sp) +/* 0568D0 7F021DA0 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0568D4 7F021DA4 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0568D8 7F021DA8 10000004 */ b .L7F021DBC +/* 0568DC 7F021DAC 8FAD00B8 */ lw $t5, 0xb8($sp) +.L7F021DB0: +/* 0568E0 7F021DB0 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0568E4 7F021DB4 8FA400DC */ lw $a0, 0xdc($sp) +/* 0568E8 7F021DB8 8FAD00B8 */ lw $t5, 0xb8($sp) +.L7F021DBC: +/* 0568EC 7F021DBC 24180001 */ li $t8, 1 +/* 0568F0 7F021DC0 AFB80074 */ sw $t8, 0x74($sp) +/* 0568F4 7F021DC4 AFA2007C */ sw $v0, 0x7c($sp) +/* 0568F8 7F021DC8 AFAD0078 */ sw $t5, 0x78($sp) +/* 0568FC 7F021DCC 8E190014 */ lw $t9, 0x14($s0) +/* 056900 7F021DD0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 056904 7F021DD4 24010001 */ li $at, 1 +/* 056908 7F021DD8 332F2000 */ andi $t7, $t9, 0x2000 +/* 05690C 7F021DDC 11E00003 */ beqz $t7, .L7F021DEC +/* 056910 7F021DE0 00000000 */ nop +/* 056914 7F021DE4 1000000E */ b .L7F021E20 +/* 056918 7F021DE8 AFA0004C */ sw $zero, 0x4c($sp) +.L7F021DEC: +/* 05691C 7F021DEC 15C1000C */ bne $t6, $at, .L7F021E20 +/* 056920 7F021DF0 C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 056924 7F021DF4 240A0050 */ li $t2, 80 +/* 056928 7F021DF8 448A4000 */ mtc1 $t2, $f8 +/* 05692C 7F021DFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056930 7F021E00 44819000 */ mtc1 $at, $f18 +/* 056934 7F021E04 468042A0 */ cvt.s.w $f10, $f8 +/* 056938 7F021E08 46049181 */ sub.s $f6, $f18, $f4 +/* 05693C 7F021E0C 460A3402 */ mul.s $f16, $f6, $f10 +/* 056940 7F021E10 4600848D */ trunc.w.s $f18, $f16 +/* 056944 7F021E14 440C9000 */ mfc1 $t4, $f18 +/* 056948 7F021E18 00000000 */ nop +/* 05694C 7F021E1C AFAC004C */ sw $t4, 0x4c($sp) +.L7F021E20: +/* 056950 7F021E20 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 056954 7F021E24 8FA4004C */ lw $a0, 0x4c($sp) +/* 056958 7F021E28 920D00F4 */ lbu $t5, 0xf4($s0) +/* 05695C 7F021E2C 27A40050 */ addiu $a0, $sp, 0x50 +/* 056960 7F021E30 8FA500BC */ lw $a1, 0xbc($sp) +/* 056964 7F021E34 AFAD0050 */ sw $t5, 0x50($sp) +/* 056968 7F021E38 921800F5 */ lbu $t8, 0xf5($s0) +/* 05696C 7F021E3C 27A600C0 */ addiu $a2, $sp, 0xc0 +/* 056970 7F021E40 AFB80054 */ sw $t8, 0x54($sp) +/* 056974 7F021E44 921900F6 */ lbu $t9, 0xf6($s0) +/* 056978 7F021E48 AFB90058 */ sw $t9, 0x58($sp) +/* 05697C 7F021E4C 920F00F7 */ lbu $t7, 0xf7($s0) +/* 056980 7F021E50 0FC100E1 */ jal sub_GAME_7F040384 +/* 056984 7F021E54 AFAF005C */ sw $t7, 0x5c($sp) +/* 056988 7F021E58 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 05698C 7F021E5C 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 056990 7F021E60 904E0002 */ lbu $t6, 2($v0) +/* 056994 7F021E64 904B0000 */ lbu $t3, ($v0) +/* 056998 7F021E68 90580001 */ lbu $t8, 1($v0) +/* 05699C 7F021E6C 000E5200 */ sll $t2, $t6, 8 +/* 0569A0 7F021E70 8FAE0050 */ lw $t6, 0x50($sp) +/* 0569A4 7F021E74 000B6600 */ sll $t4, $t3, 0x18 +/* 0569A8 7F021E78 8FAF005C */ lw $t7, 0x5c($sp) +/* 0569AC 7F021E7C 014C6825 */ or $t5, $t2, $t4 +/* 0569B0 7F021E80 0018CC00 */ sll $t9, $t8, 0x10 +/* 0569B4 7F021E84 8FAC0054 */ lw $t4, 0x54($sp) +/* 0569B8 7F021E88 01B91825 */ or $v1, $t5, $t9 +/* 0569BC 7F021E8C 000E5E00 */ sll $t3, $t6, 0x18 +/* 0569C0 7F021E90 8FB90058 */ lw $t9, 0x58($sp) +/* 0569C4 7F021E94 01EB5025 */ or $t2, $t7, $t3 +/* 0569C8 7F021E98 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 0569CC 7F021E9C 000CC400 */ sll $t8, $t4, 0x10 +/* 0569D0 7F021EA0 01586825 */ or $t5, $t2, $t8 +/* 0569D4 7F021EA4 00197200 */ sll $t6, $t9, 8 +/* 0569D8 7F021EA8 01AE7825 */ or $t7, $t5, $t6 +/* 0569DC 7F021EAC 296100FF */ slti $at, $t3, 0xff +/* 0569E0 7F021EB0 10200007 */ beqz $at, .L7F021ED0 +/* 0569E4 7F021EB4 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 0569E8 7F021EB8 93AA00B7 */ lbu $t2, 0xb7($sp) +/* 0569EC 7F021EBC 240C0008 */ li $t4, 8 +/* 0569F0 7F021EC0 AFAC00A0 */ sw $t4, 0xa0($sp) +/* 0569F4 7F021EC4 006A1825 */ or $v1, $v1, $t2 +/* 0569F8 7F021EC8 10000004 */ b .L7F021EDC +/* 0569FC 7F021ECC AFA300A4 */ sw $v1, 0xa4($sp) +.L7F021ED0: +/* 056A00 7F021ED0 24180007 */ li $t8, 7 +/* 056A04 7F021ED4 AFA300A4 */ sw $v1, 0xa4($sp) +/* 056A08 7F021ED8 AFB800A0 */ sw $t8, 0xa0($sp) +.L7F021EDC: +/* 056A0C 7F021EDC 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 056A10 7F021EE0 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 056A14 7F021EE4 27A40070 */ addiu $a0, $sp, 0x70 +/* 056A18 7F021EE8 8C590034 */ lw $t9, 0x34($v0) +/* 056A1C 7F021EEC 272D0001 */ addiu $t5, $t9, 1 +/* 056A20 7F021EF0 AC4D0034 */ sw $t5, 0x34($v0) +/* 056A24 7F021EF4 0FC1AF03 */ jal drawjointlist +/* 056A28 7F021EF8 8E050020 */ lw $a1, 0x20($s0) +/* 056A2C 7F021EFC 8FAF003C */ lw $t7, 0x3c($sp) +/* 056A30 7F021F00 8FAE007C */ lw $t6, 0x7c($sp) +/* 056A34 7F021F04 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056A38 7F021F08 11E0000B */ beqz $t7, .L7F021F38 +/* 056A3C 7F021F0C AFAE00DC */ sw $t6, 0xdc($sp) +/* 056A40 7F021F10 91EB0002 */ lbu $t3, 2($t7) +/* 056A44 7F021F14 240C0001 */ li $t4, 1 +/* 056A48 7F021F18 00CC5004 */ sllv $t2, $t4, $a2 +/* 056A4C 7F021F1C 315800FF */ andi $t8, $t2, 0xff +/* 056A50 7F021F20 0178C824 */ and $t9, $t3, $t8 +/* 056A54 7F021F24 13200004 */ beqz $t9, .L7F021F38 +/* 056A58 7F021F28 01C02025 */ move $a0, $t6 +/* 056A5C 7F021F2C 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056A60 7F021F30 8FA50048 */ lw $a1, 0x48($sp) +/* 056A64 7F021F34 AFA200DC */ sw $v0, 0xdc($sp) +.L7F021F38: +/* 056A68 7F021F38 8FAD0038 */ lw $t5, 0x38($sp) +/* 056A6C 7F021F3C 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056A70 7F021F40 240C0001 */ li $t4, 1 +/* 056A74 7F021F44 51A0000C */ beql $t5, $zero, .L7F021F78 +/* 056A78 7F021F48 8FB90034 */ lw $t9, 0x34($sp) +/* 056A7C 7F021F4C 91AF0002 */ lbu $t7, 2($t5) +/* 056A80 7F021F50 00CC5004 */ sllv $t2, $t4, $a2 +/* 056A84 7F021F54 314B00FF */ andi $t3, $t2, 0xff +/* 056A88 7F021F58 01EBC024 */ and $t8, $t7, $t3 +/* 056A8C 7F021F5C 13000005 */ beqz $t8, .L7F021F74 +/* 056A90 7F021F60 8FA400DC */ lw $a0, 0xdc($sp) +/* 056A94 7F021F64 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056A98 7F021F68 8FA50044 */ lw $a1, 0x44($sp) +/* 056A9C 7F021F6C AFA200DC */ sw $v0, 0xdc($sp) +/* 056AA0 7F021F70 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F021F74: +/* 056AA4 7F021F74 8FB90034 */ lw $t9, 0x34($sp) +.L7F021F78: +/* 056AA8 7F021F78 240D0001 */ li $t5, 1 +/* 056AAC 7F021F7C 1320000B */ beqz $t9, .L7F021FAC +/* 056AB0 7F021F80 00000000 */ nop +/* 056AB4 7F021F84 932E0002 */ lbu $t6, 2($t9) +/* 056AB8 7F021F88 00CD6004 */ sllv $t4, $t5, $a2 +/* 056ABC 7F021F8C 318A00FF */ andi $t2, $t4, 0xff +/* 056AC0 7F021F90 01CA7824 */ and $t7, $t6, $t2 +/* 056AC4 7F021F94 11E00005 */ beqz $t7, .L7F021FAC +/* 056AC8 7F021F98 8FA400DC */ lw $a0, 0xdc($sp) +/* 056ACC 7F021F9C 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056AD0 7F021FA0 8FA50040 */ lw $a1, 0x40($sp) +/* 056AD4 7F021FA4 AFA200DC */ sw $v0, 0xdc($sp) +/* 056AD8 7F021FA8 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F021FAC: +/* 056ADC 7F021FAC 50C00027 */ beql $a2, $zero, .L7F02204C +/* 056AE0 7F021FB0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056AE4 7F021FB4 8E02001C */ lw $v0, 0x1c($s0) +/* 056AE8 7F021FB8 8C4B0008 */ lw $t3, 8($v0) +/* 056AEC 7F021FBC 8C44000C */ lw $a0, 0xc($v0) +/* 056AF0 7F021FC0 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056AF4 7F021FC4 8565000E */ lh $a1, 0xe($t3) +/* 056AF8 7F021FC8 8FB8003C */ lw $t8, 0x3c($sp) +/* 056AFC 7F021FCC 5300000B */ beql $t8, $zero, .L7F021FFC +/* 056B00 7F021FD0 8FAE0038 */ lw $t6, 0x38($sp) +/* 056B04 7F021FD4 8F190064 */ lw $t9, 0x64($t8) +/* 056B08 7F021FD8 332D0800 */ andi $t5, $t9, 0x800 +/* 056B0C 7F021FDC 55A00007 */ bnezl $t5, .L7F021FFC +/* 056B10 7F021FE0 8FAE0038 */ lw $t6, 0x38($sp) +/* 056B14 7F021FE4 8F020014 */ lw $v0, 0x14($t8) +/* 056B18 7F021FE8 8C4C0008 */ lw $t4, 8($v0) +/* 056B1C 7F021FEC 8C44000C */ lw $a0, 0xc($v0) +/* 056B20 7F021FF0 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B24 7F021FF4 8585000E */ lh $a1, 0xe($t4) +/* 056B28 7F021FF8 8FAE0038 */ lw $t6, 0x38($sp) +.L7F021FFC: +/* 056B2C 7F021FFC 51C0000B */ beql $t6, $zero, .L7F02202C +/* 056B30 7F022000 8FB90034 */ lw $t9, 0x34($sp) +/* 056B34 7F022004 8DCA0064 */ lw $t2, 0x64($t6) +/* 056B38 7F022008 314F0800 */ andi $t7, $t2, 0x800 +/* 056B3C 7F02200C 55E00007 */ bnezl $t7, .L7F02202C +/* 056B40 7F022010 8FB90034 */ lw $t9, 0x34($sp) +/* 056B44 7F022014 8DC20014 */ lw $v0, 0x14($t6) +/* 056B48 7F022018 8C4B0008 */ lw $t3, 8($v0) +/* 056B4C 7F02201C 8C44000C */ lw $a0, 0xc($v0) +/* 056B50 7F022020 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B54 7F022024 8565000E */ lh $a1, 0xe($t3) +/* 056B58 7F022028 8FB90034 */ lw $t9, 0x34($sp) +.L7F02202C: +/* 056B5C 7F02202C 53200007 */ beql $t9, $zero, .L7F02204C +/* 056B60 7F022030 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056B64 7F022034 8F220014 */ lw $v0, 0x14($t9) +/* 056B68 7F022038 8C4D0008 */ lw $t5, 8($v0) +/* 056B6C 7F02203C 8C44000C */ lw $a0, 0xc($v0) +/* 056B70 7F022040 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B74 7F022044 85A5000E */ lh $a1, 0xe($t5) +.L7F022048: +/* 056B78 7F022048 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F02204C: +/* 056B7C 7F02204C 50C00005 */ beql $a2, $zero, .L7F022064 +/* 056B80 7F022050 8FA200DC */ lw $v0, 0xdc($sp) +/* 056B84 7F022054 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 056B88 7F022058 8E040020 */ lw $a0, 0x20($s0) +/* 056B8C 7F02205C AE000020 */ sw $zero, 0x20($s0) +/* 056B90 7F022060 8FA200DC */ lw $v0, 0xdc($sp) +.L7F022064: +/* 056B94 7F022064 8FBF0024 */ lw $ra, 0x24($sp) +/* 056B98 7F022068 8FB00020 */ lw $s0, 0x20($sp) +/* 056B9C 7F02206C 27BD00D8 */ addiu $sp, $sp, 0xd8 +/* 056BA0 7F022070 03E00008 */ jr $ra +/* 056BA4 7F022074 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022078(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022078 +/* 056BA8 7F022078 3C0B8003 */ lui $t3, %hi(D_8002C914) +/* 056BAC 7F02207C 256BC914 */ addiu $t3, %lo(D_8002C914) # addiu $t3, $t3, -0x36ec +/* 056BB0 7F022080 8D6E0000 */ lw $t6, ($t3) +/* 056BB4 7F022084 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 056BB8 7F022088 2409FFFF */ li $t1, -1 +/* 056BBC 7F02208C AFBF001C */ sw $ra, 0x1c($sp) +/* 056BC0 7F022090 AFB00018 */ sw $s0, 0x18($sp) +/* 056BC4 7F022094 AFA40050 */ sw $a0, 0x50($sp) +/* 056BC8 7F022098 AFA7005C */ sw $a3, 0x5c($sp) +/* 056BCC 7F02209C 00005025 */ move $t2, $zero +/* 056BD0 7F0220A0 112E000D */ beq $t1, $t6, .L7F0220D8 +/* 056BD4 7F0220A4 00004025 */ move $t0, $zero +/* 056BD8 7F0220A8 3C0F8003 */ lui $t7, %hi(D_8002C914) +/* 056BDC 7F0220AC 25E2C914 */ addiu $v0, $t7, %lo(D_8002C914) +/* 056BE0 7F0220B0 8C430000 */ lw $v1, ($v0) +.L7F0220B4: +/* 056BE4 7F0220B4 54A30004 */ bnel $a1, $v1, .L7F0220C8 +/* 056BE8 7F0220B8 8C43002C */ lw $v1, 0x2c($v0) +/* 056BEC 7F0220BC 10000006 */ b .L7F0220D8 +/* 056BF0 7F0220C0 01005025 */ move $t2, $t0 +/* 056BF4 7F0220C4 8C43002C */ lw $v1, 0x2c($v0) +.L7F0220C8: +/* 056BF8 7F0220C8 25080001 */ addiu $t0, $t0, 1 +/* 056BFC 7F0220CC 2442002C */ addiu $v0, $v0, 0x2c +/* 056C00 7F0220D0 1523FFF8 */ bne $t1, $v1, .L7F0220B4 +/* 056C04 7F0220D4 00000000 */ nop +.L7F0220D8: +/* 056C08 7F0220D8 000AC080 */ sll $t8, $t2, 2 +/* 056C0C 7F0220DC 030AC023 */ subu $t8, $t8, $t2 +/* 056C10 7F0220E0 0018C080 */ sll $t8, $t8, 2 +/* 056C14 7F0220E4 030AC023 */ subu $t8, $t8, $t2 +/* 056C18 7F0220E8 0018C080 */ sll $t8, $t8, 2 +/* 056C1C 7F0220EC 01788021 */ addu $s0, $t3, $t8 +/* 056C20 7F0220F0 8E190010 */ lw $t9, 0x10($s0) +/* 056C24 7F0220F4 5320002C */ beql $t9, $zero, .L7F0221A8 +/* 056C28 7F0220F8 8E050004 */ lw $a1, 4($s0) +/* 056C2C 7F0220FC 0C002914 */ jal get_random_value +/* 056C30 7F022100 AFA60058 */ sw $a2, 0x58($sp) +/* 056C34 7F022104 304C0004 */ andi $t4, $v0, 4 +/* 056C38 7F022108 15800026 */ bnez $t4, .L7F0221A4 +/* 056C3C 7F02210C 8FA60058 */ lw $a2, 0x58($sp) +/* 056C40 7F022110 C4C20000 */ lwc1 $f2, ($a2) +/* 056C44 7F022114 C4CE0004 */ lwc1 $f14, 4($a2) +/* 056C48 7F022118 C4C00008 */ lwc1 $f0, 8($a2) +/* 056C4C 7F02211C 46021102 */ mul.s $f4, $f2, $f2 +/* 056C50 7F022120 AFA60058 */ sw $a2, 0x58($sp) +/* 056C54 7F022124 460E7182 */ mul.s $f6, $f14, $f14 +/* 056C58 7F022128 46062200 */ add.s $f8, $f4, $f6 +/* 056C5C 7F02212C 46000282 */ mul.s $f10, $f0, $f0 +/* 056C60 7F022130 0C007DF8 */ jal sqrtf +/* 056C64 7F022134 46085300 */ add.s $f12, $f10, $f8 +/* 056C68 7F022138 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 056C6C 7F02213C 44818000 */ mtc1 $at, $f16 +/* 056C70 7F022140 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056C74 7F022144 44812000 */ mtc1 $at, $f4 +/* 056C78 7F022148 46008483 */ div.s $f18, $f16, $f0 +/* 056C7C 7F02214C 8FA60058 */ lw $a2, 0x58($sp) +/* 056C80 7F022150 C4C60000 */ lwc1 $f6, ($a2) +/* 056C84 7F022154 46049080 */ add.s $f2, $f18, $f4 +/* 056C88 7F022158 46023282 */ mul.s $f10, $f6, $f2 +/* 056C8C 7F02215C E7AA003C */ swc1 $f10, 0x3c($sp) +/* 056C90 7F022160 C4C80004 */ lwc1 $f8, 4($a2) +/* 056C94 7F022164 46024402 */ mul.s $f16, $f8, $f2 +/* 056C98 7F022168 E7B00040 */ swc1 $f16, 0x40($sp) +/* 056C9C 7F02216C C4D20008 */ lwc1 $f18, 8($a2) +/* 056CA0 7F022170 46029102 */ mul.s $f4, $f18, $f2 +/* 056CA4 7F022174 0FC1E111 */ jal sub_GAME_7F078444 +/* 056CA8 7F022178 E7A40044 */ swc1 $f4, 0x44($sp) +/* 056CAC 7F02217C 00402025 */ move $a0, $v0 +/* 056CB0 7F022180 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 056CB4 7F022184 27A5003C */ addiu $a1, $sp, 0x3c +/* 056CB8 7F022188 8FAD0050 */ lw $t5, 0x50($sp) +/* 056CBC 7F02218C 27A4003C */ addiu $a0, $sp, 0x3c +/* 056CC0 7F022190 8E050010 */ lw $a1, 0x10($s0) +/* 056CC4 7F022194 8DAE0014 */ lw $t6, 0x14($t5) +/* 056CC8 7F022198 8E060018 */ lw $a2, 0x18($s0) +/* 056CCC 7F02219C 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 056CD0 7F0221A0 91C70003 */ lbu $a3, 3($t6) +.L7F0221A4: +/* 056CD4 7F0221A4 8E050004 */ lw $a1, 4($s0) +.L7F0221A8: +/* 056CD8 7F0221A8 8FAF0050 */ lw $t7, 0x50($sp) +/* 056CDC 7F0221AC 50A00007 */ beql $a1, $zero, .L7F0221CC +/* 056CE0 7F0221B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 056CE4 7F0221B4 8DF80014 */ lw $t8, 0x14($t7) +/* 056CE8 7F0221B8 8FA4005C */ lw $a0, 0x5c($sp) +/* 056CEC 7F0221BC 8E06000C */ lw $a2, 0xc($s0) +/* 056CF0 7F0221C0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 056CF4 7F0221C4 93070003 */ lbu $a3, 3($t8) +/* 056CF8 7F0221C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0221CC: +/* 056CFC 7F0221CC 8FB00018 */ lw $s0, 0x18($sp) +/* 056D00 7F0221D0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 056D04 7F0221D4 03E00008 */ jr $ra +/* 056D08 7F0221D8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0221DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0221DC +/* 056D0C 7F0221DC 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 056D10 7F0221E0 AFBF0034 */ sw $ra, 0x34($sp) +/* 056D14 7F0221E4 AFB60030 */ sw $s6, 0x30($sp) +/* 056D18 7F0221E8 AFB5002C */ sw $s5, 0x2c($sp) +/* 056D1C 7F0221EC AFB40028 */ sw $s4, 0x28($sp) +/* 056D20 7F0221F0 AFB30024 */ sw $s3, 0x24($sp) +/* 056D24 7F0221F4 AFB20020 */ sw $s2, 0x20($sp) +/* 056D28 7F0221F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 056D2C 7F0221FC AFB00018 */ sw $s0, 0x18($sp) +/* 056D30 7F022200 AFA500B4 */ sw $a1, 0xb4($sp) +/* 056D34 7F022204 C4E40000 */ lwc1 $f4, ($a3) +/* 056D38 7F022208 3C117FFF */ lui $s1, (0x7FFFFFFF >> 16) # lui $s1, 0x7fff +/* 056D3C 7F02220C 00C09025 */ move $s2, $a2 +/* 056D40 7F022210 4600218D */ trunc.w.s $f6, $f4 +/* 056D44 7F022214 0080B025 */ move $s6, $a0 +/* 056D48 7F022218 0000A025 */ move $s4, $zero +/* 056D4C 7F02221C 0000A825 */ move $s5, $zero +/* 056D50 7F022220 440F3000 */ mfc1 $t7, $f6 +/* 056D54 7F022224 3631FFFF */ ori $s1, (0x7FFFFFFF & 0xFFFF) # ori $s1, $s1, 0xffff +/* 056D58 7F022228 00C08025 */ move $s0, $a2 +/* 056D5C 7F02222C AFAF00A4 */ sw $t7, 0xa4($sp) +/* 056D60 7F022230 C4E80004 */ lwc1 $f8, 4($a3) +/* 056D64 7F022234 4600428D */ trunc.w.s $f10, $f8 +/* 056D68 7F022238 44195000 */ mfc1 $t9, $f10 +/* 056D6C 7F02223C 00000000 */ nop +/* 056D70 7F022240 AFB900A8 */ sw $t9, 0xa8($sp) +/* 056D74 7F022244 C4F00008 */ lwc1 $f16, 8($a3) +/* 056D78 7F022248 4600848D */ trunc.w.s $f18, $f16 +/* 056D7C 7F02224C 440B9000 */ mfc1 $t3, $f18 +/* 056D80 7F022250 10C0005B */ beqz $a2, .L7F0223C0 +/* 056D84 7F022254 AFAB00AC */ sw $t3, 0xac($sp) +/* 056D88 7F022258 96130000 */ lhu $s3, ($s0) +.L7F02225C: +/* 056D8C 7F02225C 24010008 */ li $at, 8 +/* 056D90 7F022260 02C02025 */ move $a0, $s6 +/* 056D94 7F022264 326C00FF */ andi $t4, $s3, 0xff +/* 056D98 7F022268 11810030 */ beq $t4, $at, .L7F02232C +/* 056D9C 7F02226C 01809825 */ move $s3, $t4 +/* 056DA0 7F022270 24010012 */ li $at, 18 +/* 056DA4 7F022274 11810031 */ beq $t4, $at, .L7F02233C +/* 056DA8 7F022278 02C02025 */ move $a0, $s6 +/* 056DAC 7F02227C 24010017 */ li $at, 23 +/* 056DB0 7F022280 11810032 */ beq $t4, $at, .L7F02234C +/* 056DB4 7F022284 02C02025 */ move $a0, $s6 +/* 056DB8 7F022288 24010018 */ li $at, 24 +/* 056DBC 7F02228C 15810032 */ bne $t4, $at, .L7F022358 +/* 056DC0 7F022290 8E090014 */ lw $t1, 0x14($s0) +/* 056DC4 7F022294 8E020004 */ lw $v0, 4($s0) +/* 056DC8 7F022298 00003025 */ move $a2, $zero +/* 056DCC 7F02229C 8448000E */ lh $t0, 0xe($v0) +/* 056DD0 7F0222A0 1900002D */ blez $t0, .L7F022358 +/* 056DD4 7F0222A4 00000000 */ nop +/* 056DD8 7F0222A8 8C450010 */ lw $a1, 0x10($v0) +.L7F0222AC: +/* 056DDC 7F0222AC 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 056DE0 7F0222B0 84AE0000 */ lh $t6, ($a1) +/* 056DE4 7F0222B4 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 056DE8 7F0222B8 84B80002 */ lh $t8, 2($a1) +/* 056DEC 7F0222BC 01AE1023 */ subu $v0, $t5, $t6 +/* 056DF0 7F0222C0 00420019 */ multu $v0, $v0 +/* 056DF4 7F0222C4 01F81823 */ subu $v1, $t7, $t8 +/* 056DF8 7F0222C8 8FB900AC */ lw $t9, 0xac($sp) +/* 056DFC 7F0222CC 84AA0004 */ lh $t2, 4($a1) +/* 056E00 7F0222D0 032A2023 */ subu $a0, $t9, $t2 +/* 056E04 7F0222D4 00005812 */ mflo $t3 +/* 056E08 7F0222D8 00000000 */ nop +/* 056E0C 7F0222DC 00000000 */ nop +/* 056E10 7F0222E0 00630019 */ multu $v1, $v1 +/* 056E14 7F0222E4 00006012 */ mflo $t4 +/* 056E18 7F0222E8 016C6821 */ addu $t5, $t3, $t4 +/* 056E1C 7F0222EC 00000000 */ nop +/* 056E20 7F0222F0 00840019 */ multu $a0, $a0 +/* 056E24 7F0222F4 00007012 */ mflo $t6 +/* 056E28 7F0222F8 01AE3821 */ addu $a3, $t5, $t6 +/* 056E2C 7F0222FC 00F1082A */ slt $at, $a3, $s1 +/* 056E30 7F022300 50200005 */ beql $at, $zero, .L7F022318 +/* 056E34 7F022304 24C60001 */ addiu $a2, $a2, 1 +/* 056E38 7F022308 00E08825 */ move $s1, $a3 +/* 056E3C 7F02230C 0200A025 */ move $s4, $s0 +/* 056E40 7F022310 00C0A825 */ move $s5, $a2 +/* 056E44 7F022314 24C60001 */ addiu $a2, $a2, 1 +.L7F022318: +/* 056E48 7F022318 00C8082A */ slt $at, $a2, $t0 +/* 056E4C 7F02231C 1420FFE3 */ bnez $at, .L7F0222AC +/* 056E50 7F022320 24A50010 */ addiu $a1, $a1, 0x10 +/* 056E54 7F022324 1000000C */ b .L7F022358 +/* 056E58 7F022328 00000000 */ nop +.L7F02232C: +/* 056E5C 7F02232C 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 056E60 7F022330 02002825 */ move $a1, $s0 +/* 056E64 7F022334 10000008 */ b .L7F022358 +/* 056E68 7F022338 8E090014 */ lw $t1, 0x14($s0) +.L7F02233C: +/* 056E6C 7F02233C 0FC1BA6F */ jal process_12_handle_switch +/* 056E70 7F022340 02002825 */ move $a1, $s0 +/* 056E74 7F022344 10000004 */ b .L7F022358 +/* 056E78 7F022348 8E090014 */ lw $t1, 0x14($s0) +.L7F02234C: +/* 056E7C 7F02234C 0FC1BA82 */ jal process_17_pointer_to_head +/* 056E80 7F022350 02002825 */ move $a1, $s0 +/* 056E84 7F022354 8E090014 */ lw $t1, 0x14($s0) +.L7F022358: +/* 056E88 7F022358 11200009 */ beqz $t1, .L7F022380 +/* 056E8C 7F02235C 00000000 */ nop +/* 056E90 7F022360 12120005 */ beq $s0, $s2, .L7F022378 +/* 056E94 7F022364 2401000A */ li $at, 10 +/* 056E98 7F022368 12610005 */ beq $s3, $at, .L7F022380 +/* 056E9C 7F02236C 24010011 */ li $at, 17 +/* 056EA0 7F022370 12610003 */ beq $s3, $at, .L7F022380 +/* 056EA4 7F022374 00000000 */ nop +.L7F022378: +/* 056EA8 7F022378 1000000F */ b .L7F0223B8 +/* 056EAC 7F02237C 01208025 */ move $s0, $t1 +.L7F022380: +/* 056EB0 7F022380 1200000D */ beqz $s0, .L7F0223B8 +/* 056EB4 7F022384 00000000 */ nop +.L7F022388: +/* 056EB8 7F022388 56120004 */ bnel $s0, $s2, .L7F02239C +/* 056EBC 7F02238C 8E02000C */ lw $v0, 0xc($s0) +/* 056EC0 7F022390 10000009 */ b .L7F0223B8 +/* 056EC4 7F022394 00008025 */ move $s0, $zero +/* 056EC8 7F022398 8E02000C */ lw $v0, 0xc($s0) +.L7F02239C: +/* 056ECC 7F02239C 50400004 */ beql $v0, $zero, .L7F0223B0 +/* 056ED0 7F0223A0 8E100008 */ lw $s0, 8($s0) +/* 056ED4 7F0223A4 10000004 */ b .L7F0223B8 +/* 056ED8 7F0223A8 00408025 */ move $s0, $v0 +/* 056EDC 7F0223AC 8E100008 */ lw $s0, 8($s0) +.L7F0223B0: +/* 056EE0 7F0223B0 1600FFF5 */ bnez $s0, .L7F022388 +/* 056EE4 7F0223B4 00000000 */ nop +.L7F0223B8: +/* 056EE8 7F0223B8 5600FFA8 */ bnezl $s0, .L7F02225C +/* 056EEC 7F0223BC 96130000 */ lhu $s3, ($s0) +.L7F0223C0: +/* 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 +/* 056F00 7F0223D0 02802825 */ move $a1, $s4 +/* 056F04 7F0223D4 0040A025 */ move $s4, $v0 +/* 056F08 7F0223D8 00008825 */ move $s1, $zero +/* 056F0C 7F0223DC 00009825 */ move $s3, $zero +/* 056F10 7F0223E0 0C002914 */ jal get_random_value +/* 056F14 7F0223E4 AFA00060 */ sw $zero, 0x60($sp) +/* 056F18 7F0223E8 24010032 */ li $at, 50 +/* 056F1C 7F0223EC 0041001B */ divu $zero, $v0, $at +/* 056F20 7F0223F0 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 056F24 7F0223F4 00001810 */ mfhi $v1 +/* 056F28 7F0223F8 24630014 */ addiu $v1, $v1, 0x14 +/* 056F2C 7F0223FC 24010008 */ li $at, 8 +/* 056F30 7F022400 15E10002 */ bne $t7, $at, .L7F02240C +/* 056F34 7F022404 00609025 */ move $s2, $v1 +/* 056F38 7F022408 24720064 */ addiu $s2, $v1, 0x64 +.L7F02240C: +/* 056F3C 7F02240C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 056F40 7F022410 2401000F */ li $at, 15 +/* 056F44 7F022414 02C02025 */ move $a0, $s6 +/* 056F48 7F022418 57010003 */ bnel $t8, $at, .L7F022428 +/* 056F4C 7F02241C 8E190010 */ lw $t9, 0x10($s0) +/* 056F50 7F022420 26520032 */ addiu $s2, $s2, 0x32 +/* 056F54 7F022424 8E190010 */ lw $t9, 0x10($s0) +.L7F022428: +/* 056F58 7F022428 00154100 */ sll $t0, $s5, 4 +/* 056F5C 7F02242C 03285021 */ addu $t2, $t9, $t0 +/* 056F60 7F022430 8D420008 */ lw $v0, 8($t2) +/* 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 +/* 056F74 7F022444 AFA8003C */ sw $t0, 0x3c($sp) +/* 056F78 7F022448 8FA8003C */ lw $t0, 0x3c($sp) +/* 056F7C 7F02244C 8E0B0010 */ lw $t3, 0x10($s0) +/* 056F80 7F022450 00409825 */ move $s3, $v0 +/* 056F84 7F022454 01686021 */ addu $t4, $t3, $t0 +/* 056F88 7F022458 858D000C */ lh $t5, 0xc($t4) +/* 056F8C 7F02245C AFAD0060 */ sw $t5, 0x60($sp) +.L7F022460: +/* 056F90 7F022460 8E0E0008 */ lw $t6, 8($s0) +/* 056F94 7F022464 8E8F0000 */ lw $t7, ($s4) +/* 056F98 7F022468 3405CCCC */ li $a1, 52428 +/* 056F9C 7F02246C 00003025 */ move $a2, $zero +/* 056FA0 7F022470 15CF001D */ bne $t6, $t7, .L7F0224E8 +/* 056FA4 7F022474 00003825 */ move $a3, $zero +/* 056FA8 7F022478 8604000C */ lh $a0, 0xc($s0) +/* 056FAC 7F02247C 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 056FB0 7F022480 AFA8003C */ sw $t0, 0x3c($sp) +/* 056FB4 7F022484 10400018 */ beqz $v0, .L7F0224E8 +/* 056FB8 7F022488 8FA8003C */ lw $t0, 0x3c($sp) +/* 056FBC 7F02248C AE820000 */ sw $v0, ($s4) +/* 056FC0 7F022490 8618000C */ lh $t8, 0xc($s0) +/* 056FC4 7F022494 00001825 */ move $v1, $zero +/* 056FC8 7F022498 00002025 */ move $a0, $zero +/* 056FCC 7F02249C 1B000012 */ blez $t8, .L7F0224E8 +/* 056FD0 7F0224A0 00402825 */ move $a1, $v0 +/* 056FD4 7F0224A4 8E190008 */ lw $t9, 8($s0) +.L7F0224A8: +/* 056FD8 7F0224A8 24630001 */ addiu $v1, $v1, 1 +/* 056FDC 7F0224AC 24A50010 */ addiu $a1, $a1, 0x10 +/* 056FE0 7F0224B0 03245021 */ addu $t2, $t9, $a0 +/* 056FE4 7F0224B4 8D410000 */ lw $at, ($t2) +/* 056FE8 7F0224B8 24840010 */ addiu $a0, $a0, 0x10 +/* 056FEC 7F0224BC ACA1FFF0 */ sw $at, -0x10($a1) +/* 056FF0 7F0224C0 8D4C0004 */ lw $t4, 4($t2) +/* 056FF4 7F0224C4 ACACFFF4 */ sw $t4, -0xc($a1) +/* 056FF8 7F0224C8 8D410008 */ lw $at, 8($t2) +/* 056FFC 7F0224CC ACA1FFF8 */ sw $at, -8($a1) +/* 057000 7F0224D0 8D4C000C */ lw $t4, 0xc($t2) +/* 057004 7F0224D4 ACACFFFC */ sw $t4, -4($a1) +/* 057008 7F0224D8 860D000C */ lh $t5, 0xc($s0) +/* 05700C 7F0224DC 006D082A */ slt $at, $v1, $t5 +/* 057010 7F0224E0 5420FFF1 */ bnezl $at, .L7F0224A8 +/* 057014 7F0224E4 8E190008 */ lw $t9, 8($s0) +.L7F0224E8: +/* 057018 7F0224E8 52600024 */ beql $s3, $zero, .L7F02257C +/* 05701C 7F0224EC 8E0E0008 */ lw $t6, 8($s0) +/* 057020 7F0224F0 8E2E0008 */ lw $t6, 8($s1) +/* 057024 7F0224F4 8E6F0000 */ lw $t7, ($s3) +/* 057028 7F0224F8 3405CCCC */ li $a1, 52428 +/* 05702C 7F0224FC 00003025 */ move $a2, $zero +/* 057030 7F022500 15CF001D */ bne $t6, $t7, .L7F022578 +/* 057034 7F022504 00003825 */ move $a3, $zero +/* 057038 7F022508 8624000C */ lh $a0, 0xc($s1) +/* 05703C 7F02250C 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 057040 7F022510 AFA8003C */ sw $t0, 0x3c($sp) +/* 057044 7F022514 10400018 */ beqz $v0, .L7F022578 +/* 057048 7F022518 8FA8003C */ lw $t0, 0x3c($sp) +/* 05704C 7F02251C AE620000 */ sw $v0, ($s3) +/* 057050 7F022520 8638000C */ lh $t8, 0xc($s1) +/* 057054 7F022524 00001825 */ move $v1, $zero +/* 057058 7F022528 00002025 */ move $a0, $zero +/* 05705C 7F02252C 1B000012 */ blez $t8, .L7F022578 +/* 057060 7F022530 00402825 */ move $a1, $v0 +/* 057064 7F022534 8E390008 */ lw $t9, 8($s1) +.L7F022538: +/* 057068 7F022538 24630001 */ addiu $v1, $v1, 1 +/* 05706C 7F02253C 24A50010 */ addiu $a1, $a1, 0x10 +/* 057070 7F022540 03245821 */ addu $t3, $t9, $a0 +/* 057074 7F022544 8D610000 */ lw $at, ($t3) +/* 057078 7F022548 24840010 */ addiu $a0, $a0, 0x10 +/* 05707C 7F02254C ACA1FFF0 */ sw $at, -0x10($a1) +/* 057080 7F022550 8D6C0004 */ lw $t4, 4($t3) +/* 057084 7F022554 ACACFFF4 */ sw $t4, -0xc($a1) +/* 057088 7F022558 8D610008 */ lw $at, 8($t3) +/* 05708C 7F02255C ACA1FFF8 */ sw $at, -8($a1) +/* 057090 7F022560 8D6C000C */ lw $t4, 0xc($t3) +/* 057094 7F022564 ACACFFFC */ sw $t4, -4($a1) +/* 057098 7F022568 862D000C */ lh $t5, 0xc($s1) +/* 05709C 7F02256C 006D082A */ slt $at, $v1, $t5 +/* 0570A0 7F022570 5420FFF1 */ bnezl $at, .L7F022538 +/* 0570A4 7F022574 8E390008 */ lw $t9, 8($s1) +.L7F022578: +/* 0570A8 7F022578 8E0E0008 */ lw $t6, 8($s0) +.L7F02257C: +/* 0570AC 7F02257C 8E8F0000 */ lw $t7, ($s4) +/* 0570B0 7F022580 11CF0010 */ beq $t6, $t7, .L7F0225C4 +/* 0570B4 7F022584 00000000 */ nop +/* 0570B8 7F022588 8E180010 */ lw $t8, 0x10($s0) +/* 0570BC 7F02258C 0308C821 */ addu $t9, $t8, $t0 +/* 0570C0 7F022590 87220006 */ lh $v0, 6($t9) +/* 0570C4 7F022594 0440000B */ bltz $v0, .L7F0225C4 +/* 0570C8 7F022598 00000000 */ nop +/* 0570CC 7F02259C 8E8A0000 */ lw $t2, ($s4) +.L7F0225A0: +/* 0570D0 7F0225A0 00025900 */ sll $t3, $v0, 4 +/* 0570D4 7F0225A4 00027040 */ sll $t6, $v0, 1 +/* 0570D8 7F0225A8 014B6021 */ addu $t4, $t2, $t3 +/* 0570DC 7F0225AC A192000F */ sb $s2, 0xf($t4) +/* 0570E0 7F0225B0 8E0D0014 */ lw $t5, 0x14($s0) +/* 0570E4 7F0225B4 01AE7821 */ addu $t7, $t5, $t6 +/* 0570E8 7F0225B8 85E20000 */ lh $v0, ($t7) +/* 0570EC 7F0225BC 0443FFF8 */ bgezl $v0, .L7F0225A0 +/* 0570F0 7F0225C0 8E8A0000 */ lw $t2, ($s4) +.L7F0225C4: +/* 0570F4 7F0225C4 52600017 */ beql $s3, $zero, .L7F022624 +/* 0570F8 7F0225C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0570FC 7F0225CC 8E380008 */ lw $t8, 8($s1) +/* 057100 7F0225D0 8E790000 */ lw $t9, ($s3) +/* 057104 7F0225D4 8FAB0060 */ lw $t3, 0x60($sp) +/* 057108 7F0225D8 53190012 */ beql $t8, $t9, .L7F022624 +/* 05710C 7F0225DC 8FBF0034 */ lw $ra, 0x34($sp) +/* 057110 7F0225E0 8E2A0010 */ lw $t2, 0x10($s1) +/* 057114 7F0225E4 000B6100 */ sll $t4, $t3, 4 +/* 057118 7F0225E8 014C6821 */ addu $t5, $t2, $t4 +/* 05711C 7F0225EC 85A20006 */ lh $v0, 6($t5) +/* 057120 7F0225F0 0442000C */ bltzl $v0, .L7F022624 +/* 057124 7F0225F4 8FBF0034 */ lw $ra, 0x34($sp) +/* 057128 7F0225F8 8E6E0000 */ lw $t6, ($s3) +.L7F0225FC: +/* 05712C 7F0225FC 00027900 */ sll $t7, $v0, 4 +/* 057130 7F022600 00025840 */ sll $t3, $v0, 1 +/* 057134 7F022604 01CFC021 */ addu $t8, $t6, $t7 +/* 057138 7F022608 A312000F */ sb $s2, 0xf($t8) +/* 05713C 7F02260C 8E390014 */ lw $t9, 0x14($s1) +/* 057140 7F022610 032B5021 */ addu $t2, $t9, $t3 +/* 057144 7F022614 85420000 */ lh $v0, ($t2) +/* 057148 7F022618 0443FFF8 */ bgezl $v0, .L7F0225FC +/* 05714C 7F02261C 8E6E0000 */ lw $t6, ($s3) +.L7F022620: +/* 057150 7F022620 8FBF0034 */ lw $ra, 0x34($sp) +.L7F022624: +/* 057154 7F022624 8FB00018 */ lw $s0, 0x18($sp) +/* 057158 7F022628 8FB1001C */ lw $s1, 0x1c($sp) +/* 05715C 7F02262C 8FB20020 */ lw $s2, 0x20($sp) +/* 057160 7F022630 8FB30024 */ lw $s3, 0x24($sp) +/* 057164 7F022634 8FB40028 */ lw $s4, 0x28($sp) +/* 057168 7F022638 8FB5002C */ lw $s5, 0x2c($sp) +/* 05716C 7F02263C 8FB60030 */ lw $s6, 0x30($sp) +/* 057170 7F022640 03E00008 */ jr $ra +/* 057174 7F022644 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022648(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022648 +/* 057178 7F022648 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 05717C 7F02264C AFBF0044 */ sw $ra, 0x44($sp) +/* 057180 7F022650 AFB20040 */ sw $s2, 0x40($sp) +/* 057184 7F022654 AFB1003C */ sw $s1, 0x3c($sp) +/* 057188 7F022658 AFB00038 */ sw $s0, 0x38($sp) +/* 05718C 7F02265C AFA400F0 */ sw $a0, 0xf0($sp) +/* 057190 7F022660 8C820004 */ lw $v0, 4($a0) +/* 057194 7F022664 24010005 */ li $at, 5 +/* 057198 7F022668 00A09025 */ move $s2, $a1 +/* 05719C 7F02266C 804F0007 */ lb $t7, 7($v0) +/* 0571A0 7F022670 51E100BE */ beql $t7, $at, .L7F02296C +/* 0571A4 7F022674 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571A8 7F022678 8C50001C */ lw $s0, 0x1c($v0) +/* 0571AC 7F02267C AFA200EC */ sw $v0, 0xec($sp) +/* 0571B0 7F022680 0FC1B403 */ jal getinstsize +/* 0571B4 7F022684 02002025 */ move $a0, $s0 +/* 0571B8 7F022688 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0571BC 7F02268C E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 0571C0 7F022690 90580001 */ lbu $t8, 1($v0) +/* 0571C4 7F022694 33190002 */ andi $t9, $t8, 2 +/* 0571C8 7F022698 532000B4 */ beql $t9, $zero, .L7F02296C +/* 0571CC 7F02269C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571D0 7F0226A0 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0571D4 7F0226A4 C6480034 */ lwc1 $f8, 0x34($s2) +/* 0571D8 7F0226A8 00008825 */ move $s1, $zero +/* 0571DC 7F0226AC 46002181 */ sub.s $f6, $f4, $f0 +/* 0571E0 7F0226B0 02002025 */ move $a0, $s0 +/* 0571E4 7F0226B4 4608303C */ c.lt.s $f6, $f8 +/* 0571E8 7F0226B8 00000000 */ nop +/* 0571EC 7F0226BC 450200AB */ bc1fl .L7F02296C +/* 0571F0 7F0226C0 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571F4 7F0226C4 AFA000DC */ sw $zero, 0xdc($sp) +/* 0571F8 7F0226C8 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0571FC 7F0226CC AFA000D4 */ sw $zero, 0xd4($sp) +/* 057200 7F0226D0 0FC1B1A8 */ jal getsubmatrix +/* 057204 7F0226D4 AFA0009C */ sw $zero, 0x9c($sp) +/* 057208 7F0226D8 44806000 */ mtc1 $zero, $f12 +/* 05720C 7F0226DC AFA20098 */ sw $v0, 0x98($sp) +/* 057210 7F0226E0 00002825 */ move $a1, $zero +/* 057214 7F0226E4 8FA600EC */ lw $a2, 0xec($sp) +.L7F0226E8: +/* 057218 7F0226E8 8CC30160 */ lw $v1, 0x160($a2) +/* 05721C 7F0226EC 50600012 */ beql $v1, $zero, .L7F022738 +/* 057220 7F0226F0 24A50004 */ addiu $a1, $a1, 4 +/* 057224 7F0226F4 8C620004 */ lw $v0, 4($v1) +/* 057228 7F0226F8 8C440014 */ lw $a0, 0x14($v0) +/* 05722C 7F0226FC E7AC0094 */ swc1 $f12, 0x94($sp) +/* 057230 7F022700 AFA60050 */ sw $a2, 0x50($sp) +/* 057234 7F022704 0FC1B403 */ jal getinstsize +/* 057238 7F022708 AFA50054 */ sw $a1, 0x54($sp) +/* 05723C 7F02270C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 057240 7F022710 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 057244 7F022714 8FA50054 */ lw $a1, 0x54($sp) +/* 057248 7F022718 460A0082 */ mul.s $f2, $f0, $f10 +/* 05724C 7F02271C 8FA60050 */ lw $a2, 0x50($sp) +/* 057250 7F022720 4602603C */ c.lt.s $f12, $f2 +/* 057254 7F022724 00000000 */ nop +/* 057258 7F022728 45020003 */ bc1fl .L7F022738 +/* 05725C 7F02272C 24A50004 */ addiu $a1, $a1, 4 +/* 057260 7F022730 46001306 */ mov.s $f12, $f2 +/* 057264 7F022734 24A50004 */ addiu $a1, $a1, 4 +.L7F022738: +/* 057268 7F022738 24010008 */ li $at, 8 +/* 05726C 7F02273C 14A1FFEA */ bne $a1, $at, .L7F0226E8 +/* 057270 7F022740 24C60004 */ addiu $a2, $a2, 4 +/* 057274 7F022744 C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 057278 7F022748 8FA60098 */ lw $a2, 0x98($sp) +/* 05727C 7F02274C 2650000C */ addiu $s0, $s2, 0xc +/* 057280 7F022750 460C0000 */ add.s $f0, $f0, $f12 +/* 057284 7F022754 02002825 */ move $a1, $s0 +/* 057288 7F022758 02402025 */ move $a0, $s2 +/* 05728C 7F02275C 24C60030 */ addiu $a2, $a2, 0x30 +/* 057290 7F022760 44070000 */ mfc1 $a3, $f0 +/* 057294 7F022764 0FC1041D */ jal sub_GAME_7F041074 +/* 057298 7F022768 00000000 */ nop +/* 05729C 7F02276C 10400003 */ beqz $v0, .L7F02277C +/* 0572A0 7F022770 24080001 */ li $t0, 1 +/* 0572A4 7F022774 AFA800D4 */ sw $t0, 0xd4($sp) +/* 0572A8 7F022778 24110001 */ li $s1, 1 +.L7F02277C: +/* 0572AC 7F02277C 12200028 */ beqz $s1, .L7F022820 +/* 0572B0 7F022780 8FA900EC */ lw $t1, 0xec($sp) +/* 0572B4 7F022784 8D2A0020 */ lw $t2, 0x20($t1) +/* 0572B8 7F022788 27AB00D8 */ addiu $t3, $sp, 0xd8 +/* 0572BC 7F02278C AFAB0010 */ sw $t3, 0x10($sp) +/* 0572C0 7F022790 27A40080 */ addiu $a0, $sp, 0x80 +/* 0572C4 7F022794 02402825 */ move $a1, $s2 +/* 0572C8 7F022798 02003025 */ move $a2, $s0 +/* 0572CC 7F02279C 27A700DC */ addiu $a3, $sp, 0xdc +/* 0572D0 7F0227A0 0FC1B004 */ jal sub_GAME_7F06C010 +/* 0572D4 7F0227A4 AFAA0080 */ sw $t2, 0x80($sp) +/* 0572D8 7F0227A8 24010064 */ li $at, 100 +/* 0572DC 7F0227AC 10410003 */ beq $v0, $at, .L7F0227BC +/* 0572E0 7F0227B0 00408825 */ move $s1, $v0 +/* 0572E4 7F0227B4 2401006E */ li $at, 110 +/* 0572E8 7F0227B8 14410019 */ bne $v0, $at, .L7F022820 +.L7F0227BC: +/* 0572EC 7F0227BC 27AC00A4 */ addiu $t4, $sp, 0xa4 +.L7F0227C0: +/* 0572F0 7F0227C0 27AD00A0 */ addiu $t5, $sp, 0xa0 +/* 0572F4 7F0227C4 27AE009C */ addiu $t6, $sp, 0x9c +/* 0572F8 7F0227C8 AFAE0018 */ sw $t6, 0x18($sp) +/* 0572FC 7F0227CC AFAD0014 */ sw $t5, 0x14($sp) +/* 057300 7F0227D0 AFAC0010 */ sw $t4, 0x10($sp) +/* 057304 7F0227D4 8FA400DC */ lw $a0, 0xdc($sp) +/* 057308 7F0227D8 8FA500D8 */ lw $a1, 0xd8($sp) +/* 05730C 7F0227DC 02403025 */ move $a2, $s2 +/* 057310 7F0227E0 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 057314 7F0227E4 02003825 */ move $a3, $s0 +/* 057318 7F0227E8 1440000D */ bnez $v0, .L7F022820 +/* 05731C 7F0227EC 27A40080 */ addiu $a0, $sp, 0x80 +/* 057320 7F0227F0 27AF00D8 */ addiu $t7, $sp, 0xd8 +/* 057324 7F0227F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 057328 7F0227F8 02402825 */ move $a1, $s2 +/* 05732C 7F0227FC 02003025 */ move $a2, $s0 +/* 057330 7F022800 0FC1AF80 */ jal probably_damage_detail_blood_effect_related +/* 057334 7F022804 27A700DC */ addiu $a3, $sp, 0xdc +/* 057338 7F022808 24010064 */ li $at, 100 +/* 05733C 7F02280C 1041FFEB */ beq $v0, $at, .L7F0227BC +/* 057340 7F022810 00408825 */ move $s1, $v0 +/* 057344 7F022814 2401006E */ li $at, 110 +/* 057348 7F022818 5041FFE9 */ beql $v0, $at, .L7F0227C0 +/* 05734C 7F02281C 27AC00A4 */ addiu $t4, $sp, 0xa4 +.L7F022820: +/* 057350 7F022820 5A200041 */ blezl $s1, .L7F022928 +/* 057354 7F022824 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 057358 7F022828 C650000C */ lwc1 $f16, 0xc($s2) +/* 05735C 7F02282C E7B00074 */ swc1 $f16, 0x74($sp) +/* 057360 7F022830 C6520010 */ lwc1 $f18, 0x10($s2) +/* 057364 7F022834 E7B20078 */ swc1 $f18, 0x78($sp) +/* 057368 7F022838 C6440014 */ lwc1 $f4, 0x14($s2) +/* 05736C 7F02283C 0FC1E111 */ jal sub_GAME_7F078444 +/* 057370 7F022840 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 057374 7F022844 00402025 */ move $a0, $v0 +/* 057378 7F022848 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 05737C 7F02284C 27A50074 */ addiu $a1, $sp, 0x74 +/* 057380 7F022850 8FA400DC */ lw $a0, 0xdc($sp) +/* 057384 7F022854 8FA500D8 */ lw $a1, 0xd8($sp) +/* 057388 7F022858 0FC1B198 */ jal sub_GAME_7F06C660 +/* 05738C 7F02285C 00003025 */ move $a2, $zero +/* 057390 7F022860 C4460030 */ lwc1 $f6, 0x30($v0) +/* 057394 7F022864 C6480000 */ lwc1 $f8, ($s2) +/* 057398 7F022868 46083281 */ sub.s $f10, $f6, $f8 +/* 05739C 7F02286C E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0573A0 7F022870 C6520004 */ lwc1 $f18, 4($s2) +/* 0573A4 7F022874 C4500034 */ lwc1 $f16, 0x34($v0) +/* 0573A8 7F022878 46128101 */ sub.s $f4, $f16, $f18 +/* 0573AC 7F02287C C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0573B0 7F022880 E7A40064 */ swc1 $f4, 0x64($sp) +/* 0573B4 7F022884 C6480008 */ lwc1 $f8, 8($s2) +/* 0573B8 7F022888 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0573BC 7F02288C 46108482 */ mul.s $f18, $f16, $f16 +/* 0573C0 7F022890 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0573C4 7F022894 46083281 */ sub.s $f10, $f6, $f8 +/* 0573C8 7F022898 46042182 */ mul.s $f6, $f4, $f4 +/* 0573CC 7F02289C E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0573D0 7F0228A0 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0573D4 7F0228A4 460A5402 */ mul.s $f16, $f10, $f10 +/* 0573D8 7F0228A8 46069200 */ add.s $f8, $f18, $f6 +/* 0573DC 7F0228AC 0C007DF8 */ jal sqrtf +/* 0573E0 7F0228B0 46088300 */ add.s $f12, $f16, $f8 +/* 0573E4 7F0228B4 C6440014 */ lwc1 $f4, 0x14($s2) +/* 0573E8 7F0228B8 C6460008 */ lwc1 $f6, 8($s2) +/* 0573EC 7F0228BC C64A0034 */ lwc1 $f10, 0x34($s2) +/* 0573F0 7F0228C0 46002482 */ mul.s $f18, $f4, $f0 +/* 0573F4 7F0228C4 02402025 */ move $a0, $s2 +/* 0573F8 7F0228C8 8FA500F0 */ lw $a1, 0xf0($sp) +/* 0573FC 7F0228CC 02203825 */ move $a3, $s1 +/* 057400 7F0228D0 8FB800D8 */ lw $t8, 0xd8($sp) +/* 057404 7F0228D4 27B900A4 */ addiu $t9, $sp, 0xa4 +/* 057408 7F0228D8 240B0001 */ li $t3, 1 +/* 05740C 7F0228DC 46069080 */ add.s $f2, $f18, $f6 +/* 057410 7F0228E0 46001087 */ neg.s $f2, $f2 +/* 057414 7F0228E4 460A103C */ c.lt.s $f2, $f10 +/* 057418 7F0228E8 00000000 */ nop +/* 05741C 7F0228EC 4502000E */ bc1fl .L7F022928 +/* 057420 7F0228F0 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 057424 7F0228F4 8FA800A0 */ lw $t0, 0xa0($sp) +/* 057428 7F0228F8 8FA9009C */ lw $t1, 0x9c($sp) +/* 05742C 7F0228FC 8FAA00DC */ lw $t2, 0xdc($sp) +/* 057430 7F022900 44061000 */ mfc1 $a2, $f2 +/* 057434 7F022904 AFB80010 */ sw $t8, 0x10($sp) +/* 057438 7F022908 AFB90014 */ sw $t9, 0x14($sp) +/* 05743C 7F02290C AFAB0024 */ sw $t3, 0x24($sp) +/* 057440 7F022910 AFA00028 */ sw $zero, 0x28($sp) +/* 057444 7F022914 AFA80018 */ sw $t0, 0x18($sp) +/* 057448 7F022918 AFA9001C */ sw $t1, 0x1c($sp) +/* 05744C 7F02291C 0FC0EE70 */ jal sub_GAME_7F03B9C0 +/* 057450 7F022920 AFAA0020 */ sw $t2, 0x20($sp) +/* 057454 7F022924 8FAC00D4 */ lw $t4, 0xd4($sp) +.L7F022928: +/* 057458 7F022928 8FAD00F0 */ lw $t5, 0xf0($sp) +/* 05745C 7F02292C 5180000F */ beql $t4, $zero, .L7F02296C +/* 057460 7F022930 8FBF0044 */ lw $ra, 0x44($sp) +/* 057464 7F022934 C6500034 */ lwc1 $f16, 0x34($s2) +/* 057468 7F022938 C5A80018 */ lwc1 $f8, 0x18($t5) +/* 05746C 7F02293C 8FAE00EC */ lw $t6, 0xec($sp) +/* 057470 7F022940 4610403E */ c.le.s $f8, $f16 +/* 057474 7F022944 00000000 */ nop +/* 057478 7F022948 45020008 */ bc1fl .L7F02296C +/* 05747C 7F02294C 8FBF0044 */ lw $ra, 0x44($sp) +/* 057480 7F022950 8DCF0014 */ lw $t7, 0x14($t6) +/* 057484 7F022954 81D9000A */ lb $t9, 0xa($t6) +/* 057488 7F022958 35F80004 */ ori $t8, $t7, 4 +/* 05748C 7F02295C 27280001 */ addiu $t0, $t9, 1 +/* 057490 7F022960 ADD80014 */ sw $t8, 0x14($t6) +/* 057494 7F022964 A1C8000A */ sb $t0, 0xa($t6) +/* 057498 7F022968 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02296C: +/* 05749C 7F02296C 8FB00038 */ lw $s0, 0x38($sp) +/* 0574A0 7F022970 8FB1003C */ lw $s1, 0x3c($sp) +/* 0574A4 7F022974 8FB20040 */ lw $s2, 0x40($sp) +/* 0574A8 7F022978 03E00008 */ jr $ra +/* 0574AC 7F02297C 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022980(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022980 +/* 0574B0 7F022980 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0574B4 7F022984 AFBF004C */ sw $ra, 0x4c($sp) +/* 0574B8 7F022988 AFB60048 */ sw $s6, 0x48($sp) +/* 0574BC 7F02298C AFB50044 */ sw $s5, 0x44($sp) +/* 0574C0 7F022990 AFB40040 */ sw $s4, 0x40($sp) +/* 0574C4 7F022994 AFB3003C */ sw $s3, 0x3c($sp) +/* 0574C8 7F022998 AFB20038 */ sw $s2, 0x38($sp) +/* 0574CC 7F02299C AFB10034 */ sw $s1, 0x34($sp) +/* 0574D0 7F0229A0 AFB00030 */ sw $s0, 0x30($sp) +/* 0574D4 7F0229A4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0574D8 7F0229A8 C4A40000 */ lwc1 $f4, ($a1) +/* 0574DC 7F0229AC C486000C */ lwc1 $f6, 0xc($a0) +/* 0574E0 7F0229B0 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 0574E4 7F0229B4 C4920000 */ lwc1 $f18, ($a0) +/* 0574E8 7F0229B8 46062202 */ mul.s $f8, $f4, $f6 +/* 0574EC 7F0229BC 8CAE0004 */ lw $t6, 4($a1) +/* 0574F0 7F0229C0 00A08825 */ move $s1, $a1 +/* 0574F4 7F0229C4 0080A025 */ move $s4, $a0 +/* 0574F8 7F0229C8 8DD60004 */ lw $s6, 4($t6) +/* 0574FC 7F0229CC 460A4403 */ div.s $f16, $f8, $f10 +/* 057500 7F0229D0 46109101 */ sub.s $f4, $f18, $f16 +/* 057504 7F0229D4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 057508 7F0229D8 C4A60000 */ lwc1 $f6, ($a1) +/* 05750C 7F0229DC C4880010 */ lwc1 $f8, 0x10($a0) +/* 057510 7F0229E0 C4920014 */ lwc1 $f18, 0x14($a0) +/* 057514 7F0229E4 C4840004 */ lwc1 $f4, 4($a0) +/* 057518 7F0229E8 46083282 */ mul.s $f10, $f6, $f8 +/* 05751C 7F0229EC 46125403 */ div.s $f16, $f10, $f18 +/* 057520 7F0229F0 46102181 */ sub.s $f6, $f4, $f16 +/* 057524 7F0229F4 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 057528 7F0229F8 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 05752C 7F0229FC C4AA0000 */ lwc1 $f10, ($a1) +/* 057530 7F022A00 C4880008 */ lwc1 $f8, 8($a0) +/* 057534 7F022A04 46042402 */ mul.s $f16, $f4, $f4 +/* 057538 7F022A08 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 05753C 7F022A0C 460A4481 */ sub.s $f18, $f8, $f10 +/* 057540 7F022A10 46063202 */ mul.s $f8, $f6, $f6 +/* 057544 7F022A14 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 057548 7F022A18 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 05754C 7F022A1C 46129102 */ mul.s $f4, $f18, $f18 +/* 057550 7F022A20 46088280 */ add.s $f10, $f16, $f8 +/* 057554 7F022A24 0C007DF8 */ jal sqrtf +/* 057558 7F022A28 460A2300 */ add.s $f12, $f4, $f10 +/* 05755C 7F022A2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 057560 7F022A30 44813000 */ mtc1 $at, $f6 +/* 057564 7F022A34 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 057568 7F022A38 44818000 */ mtc1 $at, $f16 +/* 05756C 7F022A3C C7B20098 */ lwc1 $f18, 0x98($sp) +/* 057570 7F022A40 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 057574 7F022A44 46008203 */ div.s $f8, $f16, $f0 +/* 057578 7F022A48 46083081 */ sub.s $f2, $f6, $f8 +/* 05757C 7F022A4C C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 057580 7F022A50 46029102 */ mul.s $f4, $f18, $f2 +/* 057584 7F022A54 00000000 */ nop +/* 057588 7F022A58 46025402 */ mul.s $f16, $f10, $f2 +/* 05758C 7F022A5C 00000000 */ nop +/* 057590 7F022A60 46023202 */ mul.s $f8, $f6, $f2 +/* 057594 7F022A64 E7A400A8 */ swc1 $f4, 0xa8($sp) +/* 057598 7F022A68 E7B000AC */ swc1 $f16, 0xac($sp) +/* 05759C 7F022A6C 0FC1E111 */ jal sub_GAME_7F078444 +/* 0575A0 7F022A70 E7A800B0 */ swc1 $f8, 0xb0($sp) +/* 0575A4 7F022A74 27B000A8 */ addiu $s0, $sp, 0xa8 +/* 0575A8 7F022A78 02002825 */ move $a1, $s0 +/* 0575AC 7F022A7C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0575B0 7F022A80 00402025 */ move $a0, $v0 +/* 0575B4 7F022A84 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 0575B8 7F022A88 02002025 */ move $a0, $s0 +/* 0575BC 7F022A8C 8E840018 */ lw $a0, 0x18($s4) +/* 0575C0 7F022A90 8E250004 */ lw $a1, 4($s1) +/* 0575C4 7F022A94 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 0575C8 7F022A98 2406FFFF */ li $a2, -1 +/* 0575CC 7F022A9C 8E240004 */ lw $a0, 4($s1) +/* 0575D0 7F022AA0 8E250008 */ lw $a1, 8($s1) +/* 0575D4 7F022AA4 27A60098 */ addiu $a2, $sp, 0x98 +/* 0575D8 7F022AA8 0FC0881E */ jal sub_GAME_7F022078 +/* 0575DC 7F022AAC 02003825 */ move $a3, $s0 +/* 0575E0 7F022AB0 8E250008 */ lw $a1, 8($s1) +/* 0575E4 7F022AB4 8E870018 */ lw $a3, 0x18($s4) +/* 0575E8 7F022AB8 240F0001 */ li $t7, 1 +/* 0575EC 7F022ABC AFAF0010 */ sw $t7, 0x10($sp) +/* 0575F0 7F022AC0 02C02025 */ move $a0, $s6 +/* 0575F4 7F022AC4 0FC09C9F */ jal handles_shot_actors +/* 0575F8 7F022AC8 26860028 */ addiu $a2, $s4, 0x28 +/* 0575FC 7F022ACC 504000C9 */ beql $v0, $zero, .L7F022DF4 +/* 057600 7F022AD0 8FBF004C */ lw $ra, 0x4c($sp) +/* 057604 7F022AD4 8E220008 */ lw $v0, 8($s1) +/* 057608 7F022AD8 24010064 */ li $at, 100 +/* 05760C 7F022ADC 3C158005 */ lui $s5, %hi(D_8004E86C) +/* 057610 7F022AE0 14410057 */ bne $v0, $at, .L7F022C40 +/* 057614 7F022AE4 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 +/* 057618 7F022AE8 00009025 */ move $s2, $zero +/* 05761C 7F022AEC 02C09825 */ move $s3, $s6 +.L7F022AF0: +/* 057620 7F022AF0 8E700160 */ lw $s0, 0x160($s3) +/* 057624 7F022AF4 5200004D */ beql $s0, $zero, .L7F022C2C +/* 057628 7F022AF8 26520004 */ addiu $s2, $s2, 4 +/* 05762C 7F022AFC 8E030004 */ lw $v1, 4($s0) +/* 057630 7F022B00 8E380048 */ lw $t8, 0x48($s1) +/* 057634 7F022B04 8C790014 */ lw $t9, 0x14($v1) +/* 057638 7F022B08 57190048 */ bnel $t8, $t9, .L7F022C2C +/* 05763C 7F022B0C 26520004 */ addiu $s2, $s2, 4 +/* 057640 7F022B10 80620080 */ lb $v0, 0x80($v1) +/* 057644 7F022B14 2401001A */ li $at, 26 +/* 057648 7F022B18 02002025 */ move $a0, $s0 +/* 05764C 7F022B1C 1041000D */ beq $v0, $at, .L7F022B54 +/* 057650 7F022B20 24010057 */ li $at, 87 +/* 057654 7F022B24 1041000B */ beq $v0, $at, .L7F022B54 +/* 057658 7F022B28 24010056 */ li $at, 86 +/* 05765C 7F022B2C 10410009 */ beq $v0, $at, .L7F022B54 +/* 057660 7F022B30 2401001B */ li $at, 27 +/* 057664 7F022B34 10410007 */ beq $v0, $at, .L7F022B54 +/* 057668 7F022B38 24010021 */ li $at, 33 +/* 05766C 7F022B3C 10410005 */ beq $v0, $at, .L7F022B54 +/* 057670 7F022B40 2401001D */ li $at, 29 +/* 057674 7F022B44 10410003 */ beq $v0, $at, .L7F022B54 +/* 057678 7F022B48 2401001C */ li $at, 28 +/* 05767C 7F022B4C 54410013 */ bnel $v0, $at, .L7F022B9C +/* 057680 7F022B50 8622003A */ lh $v0, 0x3a($s1) +.L7F022B54: +/* 057684 7F022B54 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 057688 7F022B58 24050001 */ li $a1, 1 +/* 05768C 7F022B5C 96C90012 */ lhu $t1, 0x12($s6) +/* 057690 7F022B60 352A0001 */ ori $t2, $t1, 1 +/* 057694 7F022B64 A6CA0012 */ sh $t2, 0x12($s6) +/* 057698 7F022B68 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 05769C 7F022B6C 8E840018 */ lw $a0, 0x18($s4) +/* 0576A0 7F022B70 0FC26C54 */ jal get_cur_playernum +/* 0576A4 7F022B74 46000506 */ mov.s $f20, $f0 +/* 0576A8 7F022B78 8E040004 */ lw $a0, 4($s0) +/* 0576AC 7F022B7C 4405A000 */ mfc1 $a1, $f20 +/* 0576B0 7F022B80 8E870018 */ lw $a3, 0x18($s4) +/* 0576B4 7F022B84 AFA20010 */ sw $v0, 0x10($sp) +/* 0576B8 7F022B88 0FC13842 */ jal maybe_detonate_object +/* 0576BC 7F022B8C 27A60098 */ addiu $a2, $sp, 0x98 +/* 0576C0 7F022B90 10000026 */ b .L7F022C2C +/* 0576C4 7F022B94 26520004 */ addiu $s2, $s2, 4 +/* 0576C8 7F022B98 8622003A */ lh $v0, 0x3a($s1) +.L7F022B9C: +/* 0576CC 7F022B9C 26240010 */ addiu $a0, $s1, 0x10 +/* 0576D0 7F022BA0 2625001C */ addiu $a1, $s1, 0x1c +/* 0576D4 7F022BA4 04410003 */ bgez $v0, .L7F022BB4 +/* 0576D8 7F022BA8 000258C0 */ sll $t3, $v0, 3 +/* 0576DC 7F022BAC 10000008 */ b .L7F022BD0 +/* 0576E0 7F022BB0 8EA30000 */ lw $v1, ($s5) +.L7F022BB4: +/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(image_entries) +/* 0576E8 7F022BB8 018B6021 */ addu $t4, $t4, $t3 +/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(image_entries)($t4) +/* 0576F0 7F022BC0 318D000F */ andi $t5, $t4, 0xf +/* 0576F4 7F022BC4 000D7080 */ sll $t6, $t5, 2 +/* 0576F8 7F022BC8 02AE7821 */ addu $t7, $s5, $t6 +/* 0576FC 7F022BCC 8DE30000 */ lw $v1, ($t7) +.L7F022BD0: +/* 057700 7F022BD0 AFA30088 */ sw $v1, 0x88($sp) +/* 057704 7F022BD4 AFA40054 */ sw $a0, 0x54($sp) +/* 057708 7F022BD8 0C002914 */ jal get_random_value +/* 05770C 7F022BDC AFA50050 */ sw $a1, 0x50($sp) +/* 057710 7F022BE0 8FA30088 */ lw $v1, 0x88($sp) +/* 057714 7F022BE4 8FA40054 */ lw $a0, 0x54($sp) +/* 057718 7F022BE8 8FA50050 */ lw $a1, 0x50($sp) +/* 05771C 7F022BEC 8478000A */ lh $t8, 0xa($v1) +/* 057720 7F022BF0 8C790004 */ lw $t9, 4($v1) +/* 057724 7F022BF4 24070001 */ li $a3, 1 +/* 057728 7F022BF8 0058001B */ divu $zero, $v0, $t8 +/* 05772C 7F022BFC 00004010 */ mfhi $t0 +/* 057730 7F022C00 03284821 */ addu $t1, $t9, $t0 +/* 057734 7F022C04 91260000 */ lbu $a2, ($t1) +/* 057738 7F022C08 AFB00010 */ sw $s0, 0x10($sp) +/* 05773C 7F022C0C 8E2A0040 */ lw $t2, 0x40($s1) +/* 057740 7F022C10 17000002 */ bnez $t8, .L7F022C1C +/* 057744 7F022C14 00000000 */ nop +/* 057748 7F022C18 0007000D */ break 7 +.L7F022C1C: +/* 05774C 7F022C1C AFA00018 */ sw $zero, 0x18($sp) +/* 057750 7F022C20 0FC28423 */ jal sub_GAME_7F0A108C +/* 057754 7F022C24 AFAA0014 */ sw $t2, 0x14($sp) +/* 057758 7F022C28 26520004 */ addiu $s2, $s2, 4 +.L7F022C2C: +/* 05775C 7F022C2C 24010008 */ li $at, 8 +/* 057760 7F022C30 1641FFAF */ bne $s2, $at, .L7F022AF0 +/* 057764 7F022C34 26730004 */ addiu $s3, $s3, 4 +/* 057768 7F022C38 1000006E */ b .L7F022DF4 +/* 05776C 7F022C3C 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022C40: +/* 057770 7F022C40 2401006E */ li $at, 110 +/* 057774 7F022C44 14410027 */ bne $v0, $at, .L7F022CE4 +/* 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) +/* 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 +/* 057794 7F022C64 10000009 */ b .L7F022C8C +/* 057798 7F022C68 8EB00000 */ lw $s0, ($s5) +.L7F022C6C: +/* 05779C 7F022C6C 018B6021 */ addu $t4, $t4, $t3 +/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(image_entries)($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 +/* 0577B0 7F022C80 000D7080 */ sll $t6, $t5, 2 +/* 0577B4 7F022C84 02AE7821 */ addu $t7, $s5, $t6 +/* 0577B8 7F022C88 8DF00000 */ lw $s0, ($t7) +.L7F022C8C: +/* 0577BC 7F022C8C 0C002914 */ jal get_random_value +/* 0577C0 7F022C90 00000000 */ nop +/* 0577C4 7F022C94 8618000A */ lh $t8, 0xa($s0) +/* 0577C8 7F022C98 8E190004 */ lw $t9, 4($s0) +/* 0577CC 7F022C9C 8ECA01D8 */ lw $t2, 0x1d8($s6) +/* 0577D0 7F022CA0 0058001B */ divu $zero, $v0, $t8 +/* 0577D4 7F022CA4 00001810 */ mfhi $v1 +/* 0577D8 7F022CA8 03234821 */ addu $t1, $t9, $v1 +/* 0577DC 7F022CAC 91260000 */ lbu $a2, ($t1) +/* 0577E0 7F022CB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0577E4 7F022CB4 8E2B0040 */ lw $t3, 0x40($s1) +/* 0577E8 7F022CB8 17000002 */ bnez $t8, .L7F022CC4 +/* 0577EC 7F022CBC 00000000 */ nop +/* 0577F0 7F022CC0 0007000D */ break 7 +.L7F022CC4: +/* 0577F4 7F022CC4 AFA00018 */ sw $zero, 0x18($sp) +/* 0577F8 7F022CC8 26240010 */ addiu $a0, $s1, 0x10 +/* 0577FC 7F022CCC 2625001C */ addiu $a1, $s1, 0x1c +/* 057800 7F022CD0 24070001 */ li $a3, 1 +/* 057804 7F022CD4 0FC28423 */ jal sub_GAME_7F0A108C +/* 057808 7F022CD8 AFAB0014 */ sw $t3, 0x14($sp) +/* 05780C 7F022CDC 10000045 */ b .L7F022DF4 +/* 057810 7F022CE0 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022CE4: +/* 057814 7F022CE4 8E240048 */ lw $a0, 0x48($s1) +/* 057818 7F022CE8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 05781C 7F022CEC 8E25000C */ lw $a1, 0xc($s1) +/* 057820 7F022CF0 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 057824 7F022CF4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 057828 7F022CF8 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 05782C 7F022CFC E7B20070 */ swc1 $f18, 0x70($sp) +/* 057830 7F022D00 E7A40074 */ swc1 $f4, 0x74($sp) +/* 057834 7F022D04 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 057838 7F022D08 C4500030 */ lwc1 $f16, 0x30($v0) +/* 05783C 7F022D0C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 057840 7F022D10 4481A000 */ mtc1 $at, $f20 +/* 057844 7F022D14 46109181 */ sub.s $f6, $f18, $f16 +/* 057848 7F022D18 00408025 */ move $s0, $v0 +/* 05784C 7F022D1C 46143202 */ mul.s $f8, $f6, $f20 +/* 057850 7F022D20 46089400 */ add.s $f16, $f18, $f8 +/* 057854 7F022D24 E7B00070 */ swc1 $f16, 0x70($sp) +/* 057858 7F022D28 C4460034 */ lwc1 $f6, 0x34($v0) +/* 05785C 7F022D2C 46062481 */ sub.s $f18, $f4, $f6 +/* 057860 7F022D30 46149202 */ mul.s $f8, $f18, $f20 +/* 057864 7F022D34 46082400 */ add.s $f16, $f4, $f8 +/* 057868 7F022D38 E7B00074 */ swc1 $f16, 0x74($sp) +/* 05786C 7F022D3C C4460038 */ lwc1 $f6, 0x38($v0) +/* 057870 7F022D40 46065481 */ sub.s $f18, $f10, $f6 +/* 057874 7F022D44 46149102 */ mul.s $f4, $f18, $f20 +/* 057878 7F022D48 46045200 */ add.s $f8, $f10, $f4 +/* 05787C 7F022D4C E7A80078 */ swc1 $f8, 0x78($sp) +/* 057880 7F022D50 8E25000C */ lw $a1, 0xc($s1) +/* 057884 7F022D54 0FC1B3A4 */ jal getjointsize +/* 057888 7F022D58 8E240048 */ lw $a0, 0x48($s1) +/* 05788C 7F022D5C 46140402 */ mul.s $f16, $f0, $f20 +/* 057890 7F022D60 C686000C */ lwc1 $f6, 0xc($s4) +/* 057894 7F022D64 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 057898 7F022D68 46068482 */ mul.s $f18, $f16, $f6 +/* 05789C 7F022D6C 46125101 */ sub.s $f4, $f10, $f18 +/* 0578A0 7F022D70 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0578A4 7F022D74 8E25000C */ lw $a1, 0xc($s1) +/* 0578A8 7F022D78 0FC1B3A4 */ jal getjointsize +/* 0578AC 7F022D7C 8E240048 */ lw $a0, 0x48($s1) +/* 0578B0 7F022D80 46140202 */ mul.s $f8, $f0, $f20 +/* 0578B4 7F022D84 C6900010 */ lwc1 $f16, 0x10($s4) +/* 0578B8 7F022D88 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0578BC 7F022D8C 46104182 */ mul.s $f6, $f8, $f16 +/* 0578C0 7F022D90 46065481 */ sub.s $f18, $f10, $f6 +/* 0578C4 7F022D94 E7B20074 */ swc1 $f18, 0x74($sp) +/* 0578C8 7F022D98 8E25000C */ lw $a1, 0xc($s1) +/* 0578CC 7F022D9C 0FC1B3A4 */ jal getjointsize +/* 0578D0 7F022DA0 8E240048 */ lw $a0, 0x48($s1) +/* 0578D4 7F022DA4 46140102 */ mul.s $f4, $f0, $f20 +/* 0578D8 7F022DA8 C6880014 */ lwc1 $f8, 0x14($s4) +/* 0578DC 7F022DAC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0578E0 7F022DB0 27B200B4 */ addiu $s2, $sp, 0xb4 +/* 0578E4 7F022DB4 02402825 */ move $a1, $s2 +/* 0578E8 7F022DB8 02002025 */ move $a0, $s0 +/* 0578EC 7F022DBC 46082402 */ mul.s $f16, $f4, $f8 +/* 0578F0 7F022DC0 46105181 */ sub.s $f6, $f10, $f16 +/* 0578F4 7F022DC4 0FC16799 */ jal sub_GAME_7F059E64 +/* 0578F8 7F022DC8 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0578FC 7F022DCC 27B00070 */ addiu $s0, $sp, 0x70 +/* 057900 7F022DD0 02002825 */ move $a1, $s0 +/* 057904 7F022DD4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 057908 7F022DD8 02402025 */ move $a0, $s2 +/* 05790C 7F022DDC 8E240048 */ lw $a0, 0x48($s1) +/* 057910 7F022DE0 8E250008 */ lw $a1, 8($s1) +/* 057914 7F022DE4 8E26000C */ lw $a2, 0xc($s1) +/* 057918 7F022DE8 0FC08877 */ jal sub_GAME_7F0221DC +/* 05791C 7F022DEC 02003825 */ move $a3, $s0 +/* 057920 7F022DF0 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022DF4: +/* 057924 7F022DF4 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 057928 7F022DF8 8FB00030 */ lw $s0, 0x30($sp) +/* 05792C 7F022DFC 8FB10034 */ lw $s1, 0x34($sp) +/* 057930 7F022E00 8FB20038 */ lw $s2, 0x38($sp) +/* 057934 7F022E04 8FB3003C */ lw $s3, 0x3c($sp) +/* 057938 7F022E08 8FB40040 */ lw $s4, 0x40($sp) +/* 05793C 7F022E0C 8FB50044 */ lw $s5, 0x44($sp) +/* 057940 7F022E10 8FB60048 */ lw $s6, 0x48($sp) +/* 057944 7F022E14 03E00008 */ jr $ra +/* 057948 7F022E18 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E1C +/* 05794C 7F022E1C 03E00008 */ jr $ra +/* 057950 7F022E20 E7AC0000 */ swc1 $f12, ($sp) +) +#endif + + + + +void sub_GAME_7F022E24(s32 param_1){ + D_8002C904 = param_1; + return; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F022E30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E30 +/* 057960 7F022E30 3C038003 */ lui $v1, %hi(D_8002C908) +/* 057964 7F022E34 2463C908 */ addiu $v1, %lo(D_8002C908) # addiu $v1, $v1, -0x36f8 +/* 057968 7F022E38 8C6E0000 */ lw $t6, ($v1) +/* 05796C 7F022E3C 3C048003 */ lui $a0, %hi(animation_table_ptrs1) +/* 057970 7F022E40 24849D6C */ addiu $a0, %lo(animation_table_ptrs1) # addiu $a0, $a0, -0x6294 +/* 057974 7F022E44 25CFFFFF */ addiu $t7, $t6, -1 +/* 057978 7F022E48 05E1000F */ bgez $t7, .L7F022E88 +/* 05797C 7F022E4C AC6F0000 */ sw $t7, ($v1) +/* 057980 7F022E50 0000C880 */ sll $t9, $zero, 2 +/* 057984 7F022E54 00994021 */ addu $t0, $a0, $t9 +/* 057988 7F022E58 8D090004 */ lw $t1, 4($t0) +/* 05798C 7F022E5C AC600000 */ sw $zero, ($v1) +/* 057990 7F022E60 00001025 */ move $v0, $zero +/* 057994 7F022E64 11200008 */ beqz $t1, .L7F022E88 +/* 057998 7F022E68 244A0001 */ addiu $t2, $v0, 1 +.L7F022E6C: +/* 05799C 7F022E6C 000A5880 */ sll $t3, $t2, 2 +/* 0579A0 7F022E70 008B6021 */ addu $t4, $a0, $t3 +/* 0579A4 7F022E74 8D8D0004 */ lw $t5, 4($t4) +/* 0579A8 7F022E78 AC6A0000 */ sw $t2, ($v1) +/* 0579AC 7F022E7C 01401025 */ move $v0, $t2 +/* 0579B0 7F022E80 55A0FFFA */ bnezl $t5, .L7F022E6C +/* 0579B4 7F022E84 244A0001 */ addiu $t2, $v0, 1 +.L7F022E88: +/* 0579B8 7F022E88 03E00008 */ jr $ra +/* 0579BC 7F022E8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022E90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E90 +/* 0579C0 7F022E90 3C028003 */ lui $v0, %hi(D_8002C908) +/* 0579C4 7F022E94 2442C908 */ addiu $v0, %lo(D_8002C908) # addiu $v0, $v0, -0x36f8 +/* 0579C8 7F022E98 8C4E0000 */ lw $t6, ($v0) +/* 0579CC 7F022E9C 3C088003 */ lui $t0, %hi(animation_table_ptrs1) +/* 0579D0 7F022EA0 25CF0001 */ addiu $t7, $t6, 1 +/* 0579D4 7F022EA4 000FC880 */ sll $t9, $t7, 2 +/* 0579D8 7F022EA8 AC4F0000 */ sw $t7, ($v0) +/* 0579DC 7F022EAC 01194021 */ addu $t0, $t0, $t9 +/* 0579E0 7F022EB0 8D089D6C */ lw $t0, %lo(animation_table_ptrs1)($t0) +/* 0579E4 7F022EB4 15000002 */ bnez $t0, .L7F022EC0 +/* 0579E8 7F022EB8 00000000 */ nop +/* 0579EC 7F022EBC AC400000 */ sw $zero, ($v0) +.L7F022EC0: +/* 0579F0 7F022EC0 03E00008 */ jr $ra +/* 0579F4 7F022EC4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022EC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022EC8 +/* 0579F8 7F022EC8 3C038003 */ lui $v1, %hi(D_8002C90C) +/* 0579FC 7F022ECC 2463C90C */ addiu $v1, %lo(D_8002C90C) # addiu $v1, $v1, -0x36f4 +/* 057A00 7F022ED0 8C620000 */ lw $v0, ($v1) +/* 057A04 7F022ED4 2C4E0001 */ sltiu $t6, $v0, 1 +/* 057A08 7F022ED8 03E00008 */ jr $ra +/* 057A0C 7F022EDC AC6E0000 */ sw $t6, ($v1) +) +#endif + + + +void sub_GAME_7F022EE0(s32 param_1){ + D_8002C910 = param_1; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F022EEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022EEC +/* 057A1C 7F022EEC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 057A20 7F022EF0 AFB40038 */ sw $s4, 0x38($sp) +/* 057A24 7F022EF4 3C148003 */ lui $s4, %hi(num_guards) +/* 057A28 7F022EF8 2694CC68 */ addiu $s4, %lo(num_guards) # addiu $s4, $s4, -0x3398 +/* 057A2C 7F022EFC 8E8E0000 */ lw $t6, ($s4) +/* 057A30 7F022F00 AFB20030 */ sw $s2, 0x30($sp) +/* 057A34 7F022F04 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 057A38 7F022F08 46006586 */ mov.s $f22, $f12 +/* 057A3C 7F022F0C AFBF003C */ sw $ra, 0x3c($sp) +/* 057A40 7F022F10 AFB30034 */ sw $s3, 0x34($sp) +/* 057A44 7F022F14 AFB1002C */ sw $s1, 0x2c($sp) +/* 057A48 7F022F18 AFB00028 */ sw $s0, 0x28($sp) +/* 057A4C 7F022F1C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 057A50 7F022F20 19C0001F */ blez $t6, .L7F022FA0 +/* 057A54 7F022F24 00009025 */ move $s2, $zero +/* 057A58 7F022F28 3C138003 */ lui $s3, %hi(ptr_guard_data) +/* 057A5C 7F022F2C 2673CC64 */ addiu $s3, %lo(ptr_guard_data) # addiu $s3, $s3, -0x339c +/* 057A60 7F022F30 00008825 */ move $s1, $zero +/* 057A64 7F022F34 8E700000 */ lw $s0, ($s3) +.L7F022F38: +/* 057A68 7F022F38 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 057A6C 7F022F3C 02117821 */ addu $t7, $s0, $s1 +/* 057A70 7F022F40 8DF8001C */ lw $t8, 0x1c($t7) +/* 057A74 7F022F44 53000011 */ beql $t8, $zero, .L7F022F8C +/* 057A78 7F022F48 8E880000 */ lw $t0, ($s4) +/* 057A7C 7F022F4C 44812000 */ mtc1 $at, $f4 +/* 057A80 7F022F50 02302021 */ addu $a0, $s1, $s0 +/* 057A84 7F022F54 4604B502 */ mul.s $f20, $f22, $f4 +/* 057A88 7F022F58 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 057A8C 7F022F5C 00000000 */ nop +/* 057A90 7F022F60 8E700000 */ lw $s0, ($s3) +/* 057A94 7F022F64 0211C821 */ addu $t9, $s0, $s1 +/* 057A98 7F022F68 C72600EC */ lwc1 $f6, 0xec($t9) +/* 057A9C 7F022F6C 46143202 */ mul.s $f8, $f6, $f20 +/* 057AA0 7F022F70 4608003C */ c.lt.s $f0, $f8 +/* 057AA4 7F022F74 00000000 */ nop +/* 057AA8 7F022F78 45020004 */ bc1fl .L7F022F8C +/* 057AAC 7F022F7C 8E880000 */ lw $t0, ($s4) +/* 057AB0 7F022F80 0FC0A700 */ jal sub_GAME_7F029C00 +/* 057AB4 7F022F84 02302021 */ addu $a0, $s1, $s0 +/* 057AB8 7F022F88 8E880000 */ lw $t0, ($s4) +.L7F022F8C: +/* 057ABC 7F022F8C 26520001 */ addiu $s2, $s2, 1 +/* 057AC0 7F022F90 263101DC */ addiu $s1, $s1, 0x1dc +/* 057AC4 7F022F94 0248082A */ slt $at, $s2, $t0 +/* 057AC8 7F022F98 5420FFE7 */ bnezl $at, .L7F022F38 +/* 057ACC 7F022F9C 8E700000 */ lw $s0, ($s3) +.L7F022FA0: +/* 057AD0 7F022FA0 8FBF003C */ lw $ra, 0x3c($sp) +/* 057AD4 7F022FA4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 057AD8 7F022FA8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 057ADC 7F022FAC 8FB00028 */ lw $s0, 0x28($sp) +/* 057AE0 7F022FB0 8FB1002C */ lw $s1, 0x2c($sp) +/* 057AE4 7F022FB4 8FB20030 */ lw $s2, 0x30($sp) +/* 057AE8 7F022FB8 8FB30034 */ lw $s3, 0x34($sp) +/* 057AEC 7F022FBC 8FB40038 */ lw $s4, 0x38($sp) +/* 057AF0 7F022FC0 03E00008 */ jr $ra +/* 057AF4 7F022FC4 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void check_if_guardnum_loaded_get_ptr_GUARDdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_guardnum_loaded_get_ptr_GUARDdata +/* 057AF8 7F022FC8 3C038003 */ lui $v1, %hi(num_guards) +/* 057AFC 7F022FCC 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 057B00 7F022FD0 00803825 */ move $a3, $a0 +/* 057B04 7F022FD4 3C048003 */ lui $a0, %hi(ptr_guard_data) +/* 057B08 7F022FD8 18600011 */ blez $v1, .L7F023020 +/* 057B0C 7F022FDC 00001025 */ move $v0, $zero +/* 057B10 7F022FE0 8C84CC64 */ lw $a0, %lo(ptr_guard_data)($a0) +/* 057B14 7F022FE4 00002825 */ move $a1, $zero +/* 057B18 7F022FE8 00803025 */ move $a2, $a0 +.L7F022FEC: +/* 057B1C 7F022FEC 8CCE001C */ lw $t6, 0x1c($a2) +/* 057B20 7F022FF0 24420001 */ addiu $v0, $v0, 1 +/* 057B24 7F022FF4 0043082A */ slt $at, $v0, $v1 +/* 057B28 7F022FF8 51C00007 */ beql $t6, $zero, .L7F023018 +/* 057B2C 7F022FFC 24A501DC */ addiu $a1, $a1, 0x1dc +/* 057B30 7F023000 84CF0000 */ lh $t7, ($a2) +/* 057B34 7F023004 54EF0004 */ bnel $a3, $t7, .L7F023018 +/* 057B38 7F023008 24A501DC */ addiu $a1, $a1, 0x1dc +/* 057B3C 7F02300C 03E00008 */ jr $ra +/* 057B40 7F023010 00A41021 */ addu $v0, $a1, $a0 + +/* 057B44 7F023014 24A501DC */ addiu $a1, $a1, 0x1dc +.L7F023018: +/* 057B48 7F023018 1420FFF4 */ bnez $at, .L7F022FEC +/* 057B4C 7F02301C 24C601DC */ addiu $a2, $a2, 0x1dc +.L7F023020: +/* 057B50 7F023020 00001025 */ move $v0, $zero +/* 057B54 7F023024 03E00008 */ jr $ra +/* 057B58 7F023028 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void something_with_weaponpos_of_guarddata_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_weaponpos_of_guarddata_hand +/* 057B5C 7F02302C 00057080 */ sll $t6, $a1, 2 +/* 057B60 7F023030 008E7821 */ addu $t7, $a0, $t6 +/* 057B64 7F023034 03E00008 */ jr $ra +/* 057B68 7F023038 8DE20160 */ lw $v0, 0x160($t7) +) +#endif + + + +#ifdef NONMATCHING +void is_weapon_in_guarddata_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel is_weapon_in_guarddata_hand +/* 057B6C 7F02303C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057B70 7F023040 00057080 */ sll $t6, $a1, 2 +/* 057B74 7F023044 AFBF0014 */ sw $ra, 0x14($sp) +/* 057B78 7F023048 008E7821 */ addu $t7, $a0, $t6 +/* 057B7C 7F02304C 8DE30160 */ lw $v1, 0x160($t7) +/* 057B80 7F023050 5060000A */ beql $v1, $zero, .L7F02307C +/* 057B84 7F023054 8FBF0014 */ lw $ra, 0x14($sp) +/* 057B88 7F023058 8C620004 */ lw $v0, 4($v1) +/* 057B8C 7F02305C 24050200 */ li $a1, 512 +/* 057B90 7F023060 80440080 */ lb $a0, 0x80($v0) +/* 057B94 7F023064 0FC1782D */ jal bondwalkItemCheckBitflags +/* 057B98 7F023068 AFA3001C */ sw $v1, 0x1c($sp) +/* 057B9C 7F02306C 14400002 */ bnez $v0, .L7F023078 +/* 057BA0 7F023070 8FA3001C */ lw $v1, 0x1c($sp) +/* 057BA4 7F023074 00001825 */ move $v1, $zero +.L7F023078: +/* 057BA8 7F023078 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02307C: +/* 057BAC 7F02307C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057BB0 7F023080 00601025 */ move $v0, $v1 +/* 057BB4 7F023084 03E00008 */ jr $ra +/* 057BB8 7F023088 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02308C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02308C +/* 057BBC 7F02308C 8C820004 */ lw $v0, 4($a0) +/* 057BC0 7F023090 24080004 */ li $t0, 4 +/* 057BC4 7F023094 24010005 */ li $at, 5 +/* 057BC8 7F023098 80430007 */ lb $v1, 7($v0) +/* 057BCC 7F02309C 5103002E */ beql $t0, $v1, .L7F023158 +/* 057BD0 7F0230A0 ACC00000 */ sw $zero, ($a2) +/* 057BD4 7F0230A4 5061002C */ beql $v1, $at, .L7F023158 +/* 057BD8 7F0230A8 ACC00000 */ sw $zero, ($a2) +/* 057BDC 7F0230AC 8C4E0014 */ lw $t6, 0x14($v0) +/* 057BE0 7F0230B0 3C010001 */ lui $at, (0x00010400 >> 16) # lui $at, 1 +/* 057BE4 7F0230B4 34210400 */ ori $at, (0x00010400 & 0xFFFF) # ori $at, $at, 0x400 +/* 057BE8 7F0230B8 01C17824 */ and $t7, $t6, $at +/* 057BEC 7F0230BC 55E00026 */ bnezl $t7, .L7F023158 +/* 057BF0 7F0230C0 ACC00000 */ sw $zero, ($a2) +/* 057BF4 7F0230C4 94580012 */ lhu $t8, 0x12($v0) +/* 057BF8 7F0230C8 2449011C */ addiu $t1, $v0, 0x11c +/* 057BFC 7F0230CC 33190100 */ andi $t9, $t8, 0x100 +/* 057C00 7F0230D0 57200021 */ bnezl $t9, .L7F023158 +/* 057C04 7F0230D4 ACC00000 */ sw $zero, ($a2) +/* 057C08 7F0230D8 ACC80000 */ sw $t0, ($a2) +/* 057C0C 7F0230DC ACA90000 */ sw $t1, ($a1) +/* 057C10 7F0230E0 C4840008 */ lwc1 $f4, 8($a0) +/* 057C14 7F0230E4 C4400024 */ lwc1 $f0, 0x24($v0) +/* 057C18 7F0230E8 46002180 */ add.s $f6, $f4, $f0 +/* 057C1C 7F0230EC E446011C */ swc1 $f6, 0x11c($v0) +/* 057C20 7F0230F0 C4880010 */ lwc1 $f8, 0x10($a0) +/* 057C24 7F0230F4 E4480120 */ swc1 $f8, 0x120($v0) +/* 057C28 7F0230F8 C48A0008 */ lwc1 $f10, 8($a0) +/* 057C2C 7F0230FC E44A0124 */ swc1 $f10, 0x124($v0) +/* 057C30 7F023100 C4900010 */ lwc1 $f16, 0x10($a0) +/* 057C34 7F023104 46008480 */ add.s $f18, $f16, $f0 +/* 057C38 7F023108 E4520128 */ swc1 $f18, 0x128($v0) +/* 057C3C 7F02310C C4840008 */ lwc1 $f4, 8($a0) +/* 057C40 7F023110 46002181 */ sub.s $f6, $f4, $f0 +/* 057C44 7F023114 C44400AC */ lwc1 $f4, 0xac($v0) +/* 057C48 7F023118 E446012C */ swc1 $f6, 0x12c($v0) +/* 057C4C 7F02311C C4880010 */ lwc1 $f8, 0x10($a0) +/* 057C50 7F023120 E4480130 */ swc1 $f8, 0x130($v0) +/* 057C54 7F023124 C48A0008 */ lwc1 $f10, 8($a0) +/* 057C58 7F023128 E44A0134 */ swc1 $f10, 0x134($v0) +/* 057C5C 7F02312C C4900010 */ lwc1 $f16, 0x10($a0) +/* 057C60 7F023130 8FA30010 */ lw $v1, 0x10($sp) +/* 057C64 7F023134 46008481 */ sub.s $f18, $f16, $f0 +/* 057C68 7F023138 E4520138 */ swc1 $f18, 0x138($v0) +/* 057C6C 7F02313C E4640000 */ swc1 $f4, ($v1) +/* 057C70 7F023140 C4480028 */ lwc1 $f8, 0x28($v0) +/* 057C74 7F023144 C4660000 */ lwc1 $f6, ($v1) +/* 057C78 7F023148 46083280 */ add.s $f10, $f6, $f8 +/* 057C7C 7F02314C 03E00008 */ jr $ra +/* 057C80 7F023150 E4EA0000 */ swc1 $f10, ($a3) + +/* 057C84 7F023154 ACC00000 */ sw $zero, ($a2) +.L7F023158: +/* 057C88 7F023158 03E00008 */ jr $ra +/* 057C8C 7F02315C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023160(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023160 +/* 057C90 7F023160 8C820004 */ lw $v0, 4($a0) +/* 057C94 7F023164 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 057C98 7F023168 44810000 */ mtc1 $at, $f0 +/* 057C9C 7F02316C C4440024 */ lwc1 $f4, 0x24($v0) +/* 057CA0 7F023170 E4A40000 */ swc1 $f4, ($a1) +/* 057CA4 7F023174 C4460028 */ lwc1 $f6, 0x28($v0) +/* 057CA8 7F023178 46003201 */ sub.s $f8, $f6, $f0 +/* 057CAC 7F02317C E4C80000 */ swc1 $f8, ($a2) +/* 057CB0 7F023180 03E00008 */ jr $ra +/* 057CB4 7F023184 E4E00000 */ swc1 $f0, ($a3) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023188(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023188 +/* 057CB8 7F023188 8C820004 */ lw $v0, 4($a0) +/* 057CBC 7F02318C 03E00008 */ jr $ra +/* 057CC0 7F023190 C44000AC */ lwc1 $f0, 0xac($v0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023194(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023194 +/* 057CC4 7F023194 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057CC8 7F023198 AFBF001C */ sw $ra, 0x1c($sp) +/* 057CCC 7F02319C AFA50024 */ sw $a1, 0x24($sp) +/* 057CD0 7F0231A0 AFA7002C */ sw $a3, 0x2c($sp) +/* 057CD4 7F0231A4 908E0001 */ lbu $t6, 1($a0) +/* 057CD8 7F0231A8 8C830004 */ lw $v1, 4($a0) +/* 057CDC 7F0231AC 31CF0002 */ andi $t7, $t6, 2 +/* 057CE0 7F0231B0 51E00033 */ beql $t7, $zero, .L7F023280 +/* 057CE4 7F0231B4 00001025 */ move $v0, $zero +/* 057CE8 7F0231B8 80620007 */ lb $v0, 7($v1) +/* 057CEC 7F0231BC 24010004 */ li $at, 4 +/* 057CF0 7F0231C0 1041002E */ beq $v0, $at, .L7F02327C +/* 057CF4 7F0231C4 24010005 */ li $at, 5 +/* 057CF8 7F0231C8 5041002D */ beql $v0, $at, .L7F023280 +/* 057CFC 7F0231CC 00001025 */ move $v0, $zero +/* 057D00 7F0231D0 8C780014 */ lw $t8, 0x14($v1) +/* 057D04 7F0231D4 33190800 */ andi $t9, $t8, 0x800 +/* 057D08 7F0231D8 57200029 */ bnezl $t9, .L7F023280 +/* 057D0C 7F0231DC 00001025 */ move $v0, $zero +/* 057D10 7F0231E0 8C64001C */ lw $a0, 0x1c($v1) +/* 057D14 7F0231E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 057D18 7F0231E8 44817000 */ mtc1 $at, $f14 +/* 057D1C 7F0231EC 8C82000C */ lw $v0, 0xc($a0) +/* 057D20 7F0231F0 44806000 */ mtc1 $zero, $f12 +/* 057D24 7F0231F4 24480040 */ addiu $t0, $v0, 0x40 +/* 057D28 7F0231F8 C5000038 */ lwc1 $f0, 0x38($t0) +/* 057D2C 7F0231FC C4440038 */ lwc1 $f4, 0x38($v0) +/* 057D30 7F023200 46002181 */ sub.s $f6, $f4, $f0 +/* 057D34 7F023204 460E3202 */ mul.s $f8, $f6, $f14 +/* 057D38 7F023208 46004280 */ add.s $f10, $f8, $f0 +/* 057D3C 7F02320C 460C503C */ c.lt.s $f10, $f12 +/* 057D40 7F023210 E4AA0008 */ swc1 $f10, 8($a1) +/* 057D44 7F023214 4502001A */ bc1fl .L7F023280 +/* 057D48 7F023218 00001025 */ move $v0, $zero +/* 057D4C 7F02321C C5000030 */ lwc1 $f0, 0x30($t0) +/* 057D50 7F023220 C4500030 */ lwc1 $f16, 0x30($v0) +/* 057D54 7F023224 46008481 */ sub.s $f18, $f16, $f0 +/* 057D58 7F023228 460E9102 */ mul.s $f4, $f18, $f14 +/* 057D5C 7F02322C 46002180 */ add.s $f6, $f4, $f0 +/* 057D60 7F023230 E4A60000 */ swc1 $f6, ($a1) +/* 057D64 7F023234 C4480034 */ lwc1 $f8, 0x34($v0) +/* 057D68 7F023238 C5020034 */ lwc1 $f2, 0x34($t0) +/* 057D6C 7F02323C 46024281 */ sub.s $f10, $f8, $f2 +/* 057D70 7F023240 460E5402 */ mul.s $f16, $f10, $f14 +/* 057D74 7F023244 46028480 */ add.s $f18, $f16, $f2 +/* 057D78 7F023248 E4B20004 */ swc1 $f18, 4($a1) +/* 057D7C 7F02324C 8FAB002C */ lw $t3, 0x2c($sp) +/* 057D80 7F023250 24C50004 */ addiu $a1, $a2, 4 +/* 057D84 7F023254 E56C0004 */ swc1 $f12, 4($t3) +/* 057D88 7F023258 E56C0000 */ swc1 $f12, ($t3) +/* 057D8C 7F02325C E4CC0000 */ swc1 $f12, ($a2) +/* 057D90 7F023260 E4CC0004 */ swc1 $f12, 4($a2) +/* 057D94 7F023264 8FAC002C */ lw $t4, 0x2c($sp) +/* 057D98 7F023268 25870004 */ addiu $a3, $t4, 4 +/* 057D9C 7F02326C 0FC0FE43 */ jal sub_GAME_7F03F90C +/* 057DA0 7F023270 AFAC0010 */ sw $t4, 0x10($sp) +/* 057DA4 7F023274 10000002 */ b .L7F023280 +/* 057DA8 7F023278 24020001 */ li $v0, 1 +.L7F02327C: +/* 057DAC 7F02327C 00001025 */ move $v0, $zero +.L7F023280: +/* 057DB0 7F023280 8FBF001C */ lw $ra, 0x1c($sp) +/* 057DB4 7F023284 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057DB8 7F023288 03E00008 */ jr $ra +/* 057DBC 7F02328C 00000000 */ nop +) +#endif + +//filesplit diff --git a/src/game/chr.h b/src/game/chr.h new file mode 100644 index 0000000..e82007a --- /dev/null +++ b/src/game/chr.h @@ -0,0 +1,190 @@ +#ifndef _CHR_H_ +#define _CHR_H_ +#include "ultra64.h" +#include "bondgame.h" + +struct animation_something +{ + s32 anonymous_0; + s32 field_4; + s32 field_8; + f32 field_C; + s32 field_10; + s32 field_14; + f32 field_18; + struct struck_animation_table *field_1C; + s32 field_20; + struct struck_animation_table *field_24; + s32 field_28; +}; + +struct struck_animation_table +{ + void *anonymous_0; + s32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + s32 anonymous_4; + f32 sfx1_timer_60; + f32 sfx2_timer_60; +}; + +struct explosion_death_animation +{ + s32 anonymous_0; + s32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + f32 anonymous_4; + f32 anonymous_5; + f32 anonymous_6; +}; + +struct explosion_animation +{ + void *explosion_death_animation; + s32 count; +}; + +struct weapon_firing_animation_table +{ + s32 anonymous_0; + f32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + f32 anonymous_4; + f32 anonymous_5; + f32 anonymous_6; + f32 anonymous_7; + f32 anonymous_8; + f32 anonymous_9; + f32 anonymous_10; + f32 anonymous_11; + f32 anonymous_12; + f32 anonymous_13; + f32 anonymous_14; + f32 anonymous_15; + f32 anonymous_16; + f32 anonymous_17; +}; + + +extern struct animation_something D_8002C914; + + +extern struct struck_animation_table D_8002CE54[]; +extern struct struck_animation_table D_8002DF10[]; +extern struct struck_animation_table D_8002CEE0[]; +extern struct struck_animation_table D_8002DF64[]; +extern struct struck_animation_table D_8002CF6C[]; +extern struct struck_animation_table D_8002DFB8[]; +extern struct struck_animation_table D_8002D014[]; +extern struct struck_animation_table D_8002E028[]; +extern struct struck_animation_table D_8002D0A0[]; +extern struct struck_animation_table D_8002E07C[]; +extern struct struck_animation_table D_8002D12C[]; +extern struct struck_animation_table D_8002E0D0[]; +extern struct struck_animation_table D_8002D1D4[]; +extern struct struck_animation_table D_8002E140[]; +extern struct struck_animation_table D_8002D3B0[]; +extern struct struck_animation_table D_8002E23C[]; +extern struct struck_animation_table D_8002D6DC[]; +extern struct struck_animation_table D_8002E300[]; +extern struct struck_animation_table D_8002D768[]; +extern struct struck_animation_table D_8002E354[]; +extern struct struck_animation_table D_8002D7F4[]; +extern struct struck_animation_table D_8002E3A8[]; +extern struct struck_animation_table D_8002D880[]; +extern struct struck_animation_table D_8002E418[]; +extern struct struck_animation_table D_8002D90C[]; +extern struct struck_animation_table D_8002E46C[]; +extern struct struck_animation_table D_8002D998[]; +extern struct struck_animation_table D_8002E4C0[]; +extern struct struck_animation_table D_8002DA24[]; +extern struct struck_animation_table D_8002E530[]; +extern struct struck_animation_table D_8002DCE0[]; +extern struct struck_animation_table D_8002E5BC[]; + +extern struct weapon_firing_animation_table rifle_firing_animation_group1[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group2[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group5[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group3[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group4[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group1[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group2[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group3[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group6[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group4[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group5[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group1[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group2[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_groupA[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group3[]; + + +extern struct weapon_firing_animation_table D_80030078; +extern struct weapon_firing_animation_table D_800300C0; +extern struct weapon_firing_animation_table D_80030108; +extern struct weapon_firing_animation_table D_80030150; +extern struct weapon_firing_animation_table D_80030198; +extern struct weapon_firing_animation_table D_800301E0; +extern struct weapon_firing_animation_table D_80030228; +extern struct weapon_firing_animation_table D_80030270; +extern struct weapon_firing_animation_table D_800302B8; +extern struct weapon_firing_animation_table D_80030300; +extern struct weapon_firing_animation_table D_80030348; +extern struct weapon_firing_animation_table D_80030390; +extern struct weapon_firing_animation_table D_800303D8; +extern struct weapon_firing_animation_table D_80030420; +extern struct weapon_firing_animation_table D_80030468; +extern struct weapon_firing_animation_table D_800304B0; +extern struct weapon_firing_animation_table D_800304F8; +extern struct weapon_firing_animation_table D_80030540; +extern struct weapon_firing_animation_table D_80030588; +extern struct weapon_firing_animation_table D_800305D0; +extern struct weapon_firing_animation_table D_80030618; +extern struct weapon_firing_animation_table D_80030660; +extern struct weapon_firing_animation_table D_800306A8; +extern struct weapon_firing_animation_table D_800306F0; +extern struct weapon_firing_animation_table D_80030738; +extern struct weapon_firing_animation_table D_80030780; +extern struct weapon_firing_animation_table D_800307C8; +extern struct weapon_firing_animation_table D_80030810; +extern struct weapon_firing_animation_table D_80030858; +extern struct weapon_firing_animation_table D_800308A0; +extern struct weapon_firing_animation_table D_800308E8; +extern struct weapon_firing_animation_table D_80030930; + +extern f32 animation_rate; +extern s32 D_8002C904; +extern s32 D_8002C908; +extern s32 D_8002C90C; +extern s32 D_8002C910; + +extern s32 D_8002CC58; +extern s32 show_patrols_flag; +extern s32 player1_guardID; +extern s32 ptr_guard_data; +extern s32 num_guards; +extern s32 D_8002CC6C[]; +extern s32 D_8002CCA8; +extern s32 D_8002CCAC; +extern s32 D_8002CCB0; +extern s32 D_8002CCB4; +extern u8 D_8002CCB8; +extern s32 num_bodies; +extern s32 num_male_heads; +extern s32 num_female_heads; +extern s32 list_of_bodies[]; +extern s32 random_male_heads[]; +extern s32 random_female_heads[]; +#endif diff --git a/src/game/chr2.c b/src/game/chr2.c new file mode 100644 index 0000000..40a8f7e --- /dev/null +++ b/src/game/chr2.c @@ -0,0 +1,23191 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/bondwalk.h" + +#ifdef NONMATCHING +void load_body_head_if_not_loaded(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_body_head_if_not_loaded +/* 057DC0 7F023290 00047080 */ sll $t6, $a0, 2 +/* 057DC4 7F023294 01C47021 */ addu $t6, $t6, $a0 +/* 057DC8 7F023298 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 057DCC 7F02329C 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 057DD0 7F0232A0 000E7080 */ sll $t6, $t6, 2 +/* 057DD4 7F0232A4 01CF1021 */ addu $v0, $t6, $t7 +/* 057DD8 7F0232A8 8C460000 */ lw $a2, ($v0) +/* 057DDC 7F0232AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 057DE0 7F0232B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 057DE4 7F0232B4 8CD80000 */ lw $t8, ($a2) +/* 057DE8 7F0232B8 00C02025 */ move $a0, $a2 +/* 057DEC 7F0232BC 57000006 */ bnezl $t8, .L7F0232D8 +/* 057DF0 7F0232C0 00001025 */ move $v0, $zero +/* 057DF4 7F0232C4 0FC1D953 */ jal load_object_into_memory +/* 057DF8 7F0232C8 8C450004 */ lw $a1, 4($v0) +/* 057DFC 7F0232CC 10000002 */ b .L7F0232D8 +/* 057E00 7F0232D0 24020001 */ li $v0, 1 +/* 057E04 7F0232D4 00001025 */ move $v0, $zero +.L7F0232D8: +/* 057E08 7F0232D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 057E0C 7F0232DC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 057E10 7F0232E0 03E00008 */ jr $ra +/* 057E14 7F0232E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void maybe_load_models_for_guards(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051D90 +.word 0x3dccccce /*0.10000001*/ +glabel D_80051D94 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80051D98 +.word 0x0 +glabel D_80051D9C +.word 0x0 +.text +glabel maybe_load_models_for_guards +/* 057E18 7F0232E8 00047880 */ sll $t7, $a0, 2 +/* 057E1C 7F0232EC 01E47821 */ addu $t7, $t7, $a0 +/* 057E20 7F0232F0 3C188004 */ lui $t8, %hi(c_item_entries) +/* 057E24 7F0232F4 2718DE10 */ addiu $t8, %lo(c_item_entries) # addiu $t8, $t8, -0x21f0 +/* 057E28 7F0232F8 000F7880 */ sll $t7, $t7, 2 +/* 057E2C 7F0232FC 01F81021 */ addu $v0, $t7, $t8 +/* 057E30 7F023300 3C018005 */ lui $at, %hi(D_80051D90) +/* 057E34 7F023304 C4261D90 */ lwc1 $f6, %lo(D_80051D90)($at) +/* 057E38 7F023308 C4440008 */ lwc1 $f4, 8($v0) +/* 057E3C 7F02330C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 057E40 7F023310 C44A000C */ lwc1 $f10, 0xc($v0) +/* 057E44 7F023314 46062202 */ mul.s $f8, $f4, $f6 +/* 057E48 7F023318 AFBF001C */ sw $ra, 0x1c($sp) +/* 057E4C 7F02331C AFB10018 */ sw $s1, 0x18($sp) +/* 057E50 7F023320 AFB00014 */ sw $s0, 0x14($sp) +/* 057E54 7F023324 AFA40038 */ sw $a0, 0x38($sp) +/* 057E58 7F023328 00C08025 */ move $s0, $a2 +/* 057E5C 7F02332C 00E08825 */ move $s1, $a3 +/* 057E60 7F023330 AFA5003C */ sw $a1, 0x3c($sp) +/* 057E64 7F023334 E7A80034 */ swc1 $f8, 0x34($sp) +/* 057E68 7F023338 AFA0002C */ sw $zero, 0x2c($sp) +/* 057E6C 7F02333C 2404000C */ li $a0, 12 +/* 057E70 7F023340 AFA20024 */ sw $v0, 0x24($sp) +/* 057E74 7F023344 0FC249EF */ jal cheatCheckIfOn +/* 057E78 7F023348 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 057E7C 7F02334C 10400005 */ beqz $v0, .L7F023364 +/* 057E80 7F023350 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 057E84 7F023354 3C018005 */ lui $at, %hi(D_80051D94) +/* 057E88 7F023358 C4321D94 */ lwc1 $f18, %lo(D_80051D94)($at) +/* 057E8C 7F02335C 46128102 */ mul.s $f4, $f16, $f18 +/* 057E90 7F023360 E7A40034 */ swc1 $f4, 0x34($sp) +.L7F023364: +/* 057E94 7F023364 8E190000 */ lw $t9, ($s0) +/* 057E98 7F023368 8FA80024 */ lw $t0, 0x24($sp) +/* 057E9C 7F02336C 17200003 */ bnez $t9, .L7F02337C +/* 057EA0 7F023370 02002025 */ move $a0, $s0 +/* 057EA4 7F023374 0FC1D953 */ jal load_object_into_memory +/* 057EA8 7F023378 8D050004 */ lw $a1, 4($t0) +.L7F02337C: +/* 057EAC 7F02337C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057EB0 7F023380 02002025 */ move $a0, $s0 +/* 057EB4 7F023384 8FA90024 */ lw $t1, 0x24($sp) +/* 057EB8 7F023388 8FA2003C */ lw $v0, 0x3c($sp) +/* 057EBC 7F02338C 912A0011 */ lbu $t2, 0x11($t1) +/* 057EC0 7F023390 55400018 */ bnezl $t2, .L7F0233F4 +/* 057EC4 7F023394 8FA9004C */ lw $t1, 0x4c($sp) +/* 057EC8 7F023398 04420016 */ bltzl $v0, .L7F0233F4 +/* 057ECC 7F02339C 8FA9004C */ lw $t1, 0x4c($sp) +/* 057ED0 7F0233A0 8E0B0008 */ lw $t3, 8($s0) +/* 057ED4 7F0233A4 8D6C0010 */ lw $t4, 0x10($t3) +/* 057ED8 7F0233A8 11800011 */ beqz $t4, .L7F0233F0 +/* 057EDC 7F0233AC AFAC002C */ sw $t4, 0x2c($sp) +/* 057EE0 7F0233B0 8E2E0000 */ lw $t6, ($s1) +/* 057EE4 7F0233B4 00027880 */ sll $t7, $v0, 2 +/* 057EE8 7F0233B8 01E27821 */ addu $t7, $t7, $v0 +/* 057EEC 7F0233BC 15C00006 */ bnez $t6, .L7F0233D8 +/* 057EF0 7F0233C0 02202025 */ move $a0, $s1 +/* 057EF4 7F0233C4 000F7880 */ sll $t7, $t7, 2 +/* 057EF8 7F0233C8 3C058004 */ lui $a1, %hi(c_item_entries+4) +/* 057EFC 7F0233CC 00AF2821 */ addu $a1, $a1, $t7 +/* 057F00 7F0233D0 0FC1D953 */ jal load_object_into_memory +/* 057F04 7F0233D4 8CA5DE14 */ lw $a1, %lo(c_item_entries+4)($a1) +.L7F0233D8: +/* 057F08 7F0233D8 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057F0C 7F0233DC 02202025 */ move $a0, $s1 +/* 057F10 7F0233E0 86180014 */ lh $t8, 0x14($s0) +/* 057F14 7F0233E4 86390014 */ lh $t9, 0x14($s1) +/* 057F18 7F0233E8 03194021 */ addu $t0, $t8, $t9 +/* 057F1C 7F0233EC A6080014 */ sh $t0, 0x14($s0) +.L7F0233F0: +/* 057F20 7F0233F0 8FA9004C */ lw $t1, 0x4c($sp) +.L7F0233F4: +/* 057F24 7F0233F4 55200005 */ bnezl $t1, .L7F02340C +/* 057F28 7F0233F8 8FAA004C */ lw $t2, 0x4c($sp) +/* 057F2C 7F0233FC 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 057F30 7F023400 02002025 */ move $a0, $s0 +/* 057F34 7F023404 AFA2004C */ sw $v0, 0x4c($sp) +/* 057F38 7F023408 8FAA004C */ lw $t2, 0x4c($sp) +.L7F02340C: +/* 057F3C 7F02340C 11400020 */ beqz $t2, .L7F023490 +/* 057F40 7F023410 01402025 */ move $a0, $t2 +/* 057F44 7F023414 0FC1B39E */ jal set_obj_instance_controller_scale +/* 057F48 7F023418 8FA50034 */ lw $a1, 0x34($sp) +/* 057F4C 7F02341C 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F50 7F023420 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 057F54 7F023424 8FA50030 */ lw $a1, 0x30($sp) +/* 057F58 7F023428 12200019 */ beqz $s1, .L7F023490 +/* 057F5C 7F02342C 8FAB0024 */ lw $t3, 0x24($sp) +/* 057F60 7F023430 916C0011 */ lbu $t4, 0x11($t3) +/* 057F64 7F023434 55800017 */ bnezl $t4, .L7F023494 +/* 057F68 7F023438 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F6C 7F02343C 860D0014 */ lh $t5, 0x14($s0) +/* 057F70 7F023440 862E0014 */ lh $t6, 0x14($s1) +/* 057F74 7F023444 02203025 */ move $a2, $s1 +/* 057F78 7F023448 01AE7823 */ subu $t7, $t5, $t6 +/* 057F7C 7F02344C A60F0014 */ sh $t7, 0x14($s0) +/* 057F80 7F023450 8FA5002C */ lw $a1, 0x2c($sp) +/* 057F84 7F023454 0FC1B0ED */ jal sub_GAME_7F06C3B4 +/* 057F88 7F023458 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F8C 7F02345C 8FB80048 */ lw $t8, 0x48($sp) +/* 057F90 7F023460 5700000C */ bnezl $t8, .L7F023494 +/* 057F94 7F023464 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F98 7F023468 8639000C */ lh $t9, 0xc($s1) +/* 057F9C 7F02346C 5B200009 */ blezl $t9, .L7F023494 +/* 057FA0 7F023470 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FA4 7F023474 8E280008 */ lw $t0, 8($s1) +/* 057FA8 7F023478 8D050000 */ lw $a1, ($t0) +/* 057FAC 7F02347C 50A00005 */ beql $a1, $zero, .L7F023494 +/* 057FB0 7F023480 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FB4 7F023484 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 057FB8 7F023488 8FA4004C */ lw $a0, 0x4c($sp) +/* 057FBC 7F02348C AC400000 */ sw $zero, ($v0) +.L7F023490: +/* 057FC0 7F023490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F023494: +/* 057FC4 7F023494 8FA2004C */ lw $v0, 0x4c($sp) +/* 057FC8 7F023498 8FB00014 */ lw $s0, 0x14($sp) +/* 057FCC 7F02349C 8FB10018 */ lw $s1, 0x18($sp) +/* 057FD0 7F0234A0 03E00008 */ jr $ra +/* 057FD4 7F0234A4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051D90 +.word 0x3dccccce /*0.10000001*/ +glabel D_80051D94 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80051D98 +.word 0x0 +glabel D_80051D9C +.word 0x0 +.text +glabel maybe_load_models_for_guards +/* 058148 7F0235D8 00047880 */ sll $t7, $a0, 2 +/* 05814C 7F0235DC 01E47821 */ addu $t7, $t7, $a0 +/* 058150 7F0235E0 3C188004 */ lui $t8, %hi(c_item_entries) # $t8, 0x8004 +/* 058154 7F0235E4 2718DE40 */ addiu $t8, %lo(c_item_entries) # addiu $t8, $t8, -0x21c0 +/* 058158 7F0235E8 000F7880 */ sll $t7, $t7, 2 +/* 05815C 7F0235EC 01F81021 */ addu $v0, $t7, $t8 +/* 058160 7F0235F0 3C018005 */ lui $at, %hi(D_80051D90) # $at, 0x8005 +/* 058164 7F0235F4 C4261DC0 */ lwc1 $f6, %lo(D_80051D90)($at) +/* 058168 7F0235F8 C4440008 */ lwc1 $f4, 8($v0) +/* 05816C 7F0235FC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058170 7F023600 C44A000C */ lwc1 $f10, 0xc($v0) +/* 058174 7F023604 46062202 */ mul.s $f8, $f4, $f6 +/* 058178 7F023608 AFBF001C */ sw $ra, 0x1c($sp) +/* 05817C 7F02360C AFB10018 */ sw $s1, 0x18($sp) +/* 058180 7F023610 AFB00014 */ sw $s0, 0x14($sp) +/* 058184 7F023614 AFA40038 */ sw $a0, 0x38($sp) +/* 058188 7F023618 00C08025 */ move $s0, $a2 +/* 05818C 7F02361C 00E08825 */ move $s1, $a3 +/* 058190 7F023620 AFA5003C */ sw $a1, 0x3c($sp) +/* 058194 7F023624 E7A80034 */ swc1 $f8, 0x34($sp) +/* 058198 7F023628 AFA0002C */ sw $zero, 0x2c($sp) +/* 05819C 7F02362C 2404000C */ li $a0, 12 +/* 0581A0 7F023630 AFA20024 */ sw $v0, 0x24($sp) +/* 0581A4 7F023634 0FC24CCF */ jal cheatCheckIfOn +/* 0581A8 7F023638 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0581AC 7F02363C 10400009 */ beqz $v0, .Ljp7F023664 +/* 0581B0 7F023640 8FA40038 */ lw $a0, 0x38($sp) +/* 0581B4 7F023644 0FC0827B */ jal jp_only_7F0209EC +/* 0581B8 7F023648 8FA5003C */ lw $a1, 0x3c($sp) +/* 0581BC 7F02364C 10400005 */ beqz $v0, .Ljp7F023664 +/* 0581C0 7F023650 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 0581C4 7F023654 3C018005 */ lui $at, %hi(D_80051D94) # $at, 0x8005 +/* 0581C8 7F023658 C4321DC4 */ lwc1 $f18, %lo(D_80051D94)($at) +/* 0581CC 7F02365C 46128102 */ mul.s $f4, $f16, $f18 +/* 0581D0 7F023660 E7A40034 */ swc1 $f4, 0x34($sp) +.Ljp7F023664: +/* 0581D4 7F023664 8E190000 */ lw $t9, ($s0) +/* 0581D8 7F023668 8FA80024 */ lw $t0, 0x24($sp) +/* 0581DC 7F02366C 17200003 */ bnez $t9, .Ljp7F02367C +/* 0581E0 7F023670 02002025 */ move $a0, $s0 +/* 0581E4 7F023674 0FC1DACF */ jal load_object_into_memory +/* 0581E8 7F023678 8D050004 */ lw $a1, 4($t0) +.Ljp7F02367C: +/* 0581EC 7F02367C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0581F0 7F023680 02002025 */ move $a0, $s0 +/* 0581F4 7F023684 8FA90024 */ lw $t1, 0x24($sp) +/* 0581F8 7F023688 8FAB003C */ lw $t3, 0x3c($sp) +/* 0581FC 7F02368C 912A0011 */ lbu $t2, 0x11($t1) +/* 058200 7F023690 55400018 */ bnezl $t2, .Ljp7F0236F4 +/* 058204 7F023694 8FAA004C */ lw $t2, 0x4c($sp) +/* 058208 7F023698 05620016 */ bltzl $t3, .Ljp7F0236F4 +/* 05820C 7F02369C 8FAA004C */ lw $t2, 0x4c($sp) +/* 058210 7F0236A0 8E0C0008 */ lw $t4, 8($s0) +/* 058214 7F0236A4 8D8D0010 */ lw $t5, 0x10($t4) +/* 058218 7F0236A8 11A00011 */ beqz $t5, .Ljp7F0236F0 +/* 05821C 7F0236AC AFAD002C */ sw $t5, 0x2c($sp) +/* 058220 7F0236B0 8E2F0000 */ lw $t7, ($s1) +/* 058224 7F0236B4 000BC080 */ sll $t8, $t3, 2 +/* 058228 7F0236B8 030BC021 */ addu $t8, $t8, $t3 +/* 05822C 7F0236BC 15E00006 */ bnez $t7, .Ljp7F0236D8 +/* 058230 7F0236C0 02202025 */ move $a0, $s1 +/* 058234 7F0236C4 0018C080 */ sll $t8, $t8, 2 +/* 058238 7F0236C8 3C058004 */ lui $a1, %hi(c_item_entries+4) +/* 05823C 7F0236CC 00B82821 */ addu $a1, $a1, $t8 +/* 058240 7F0236D0 0FC1DACF */ jal load_object_into_memory +/* 058244 7F0236D4 8CA5DE44 */ lw $a1, %lo(c_item_entries+4)($a1) +.Ljp7F0236D8: +/* 058248 7F0236D8 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 05824C 7F0236DC 02202025 */ move $a0, $s1 +/* 058250 7F0236E0 86190014 */ lh $t9, 0x14($s0) +/* 058254 7F0236E4 86280014 */ lh $t0, 0x14($s1) +/* 058258 7F0236E8 03284821 */ addu $t1, $t9, $t0 +/* 05825C 7F0236EC A6090014 */ sh $t1, 0x14($s0) +.Ljp7F0236F0: +/* 058260 7F0236F0 8FAA004C */ lw $t2, 0x4c($sp) +.Ljp7F0236F4: +/* 058264 7F0236F4 55400005 */ bnezl $t2, .Ljp7F02370C +/* 058268 7F0236F8 8FAC004C */ lw $t4, 0x4c($sp) +/* 05826C 7F0236FC 0FC1B20B */ jal get_aircraft_obj_instance_controller +/* 058270 7F023700 02002025 */ move $a0, $s0 +/* 058274 7F023704 AFA2004C */ sw $v0, 0x4c($sp) +/* 058278 7F023708 8FAC004C */ lw $t4, 0x4c($sp) +.Ljp7F02370C: +/* 05827C 7F02370C 11800020 */ beqz $t4, .Ljp7F023790 +/* 058280 7F023710 01802025 */ move $a0, $t4 +/* 058284 7F023714 0FC1B51A */ jal set_obj_instance_controller_scale +/* 058288 7F023718 8FA50034 */ lw $a1, 0x34($sp) +/* 05828C 7F02371C 8FA4004C */ lw $a0, 0x4c($sp) +/* 058290 7F023720 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 058294 7F023724 8FA50030 */ lw $a1, 0x30($sp) +/* 058298 7F023728 12200019 */ beqz $s1, .Ljp7F023790 +/* 05829C 7F02372C 8FAD0024 */ lw $t5, 0x24($sp) +/* 0582A0 7F023730 91AE0011 */ lbu $t6, 0x11($t5) +/* 0582A4 7F023734 55C00017 */ bnezl $t6, .Ljp7F023794 +/* 0582A8 7F023738 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582AC 7F02373C 860F0014 */ lh $t7, 0x14($s0) +/* 0582B0 7F023740 862B0014 */ lh $t3, 0x14($s1) +/* 0582B4 7F023744 02203025 */ move $a2, $s1 +/* 0582B8 7F023748 01EBC023 */ subu $t8, $t7, $t3 +/* 0582BC 7F02374C A6180014 */ sh $t8, 0x14($s0) +/* 0582C0 7F023750 8FA5002C */ lw $a1, 0x2c($sp) +/* 0582C4 7F023754 0FC1B269 */ jal sub_GAME_7F06C3B4 +/* 0582C8 7F023758 8FA4004C */ lw $a0, 0x4c($sp) +/* 0582CC 7F02375C 8FB90048 */ lw $t9, 0x48($sp) +/* 0582D0 7F023760 5720000C */ bnezl $t9, .Ljp7F023794 +/* 0582D4 7F023764 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582D8 7F023768 8628000C */ lh $t0, 0xc($s1) +/* 0582DC 7F02376C 59000009 */ blezl $t0, .Ljp7F023794 +/* 0582E0 7F023770 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582E4 7F023774 8E290008 */ lw $t1, 8($s1) +/* 0582E8 7F023778 8D250000 */ lw $a1, ($t1) +/* 0582EC 7F02377C 50A00005 */ beql $a1, $zero, .Ljp7F023794 +/* 0582F0 7F023780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582F4 7F023784 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0582F8 7F023788 8FA4004C */ lw $a0, 0x4c($sp) +/* 0582FC 7F02378C AC400000 */ sw $zero, ($v0) +.Ljp7F023790: +/* 058300 7F023790 8FBF001C */ lw $ra, 0x1c($sp) +.Ljp7F023794: +/* 058304 7F023794 8FA2004C */ lw $v0, 0x4c($sp) +/* 058308 7F023798 8FB00014 */ lw $s0, 0x14($sp) +/* 05830C 7F02379C 8FB10018 */ lw $s1, 0x18($sp) +/* 058310 7F0237A0 03E00008 */ jr $ra +/* 058314 7F0237A4 27BD0038 */ addiu $sp, $sp, 0x38 + +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0234A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0234A8 +/* 057FD8 7F0234A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057FDC 7F0234AC 8FAE0030 */ lw $t6, 0x30($sp) +/* 057FE0 7F0234B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 057FE4 7F0234B4 AFA00014 */ sw $zero, 0x14($sp) +/* 057FE8 7F0234B8 0FC08CBA */ jal maybe_load_models_for_guards +/* 057FEC 7F0234BC AFAE0010 */ sw $t6, 0x10($sp) +/* 057FF0 7F0234C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FF4 7F0234C4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057FF8 7F0234C8 03E00008 */ jr $ra +/* 057FFC 7F0234CC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void retrieve_header_for_body_and_head(void) { + +} +#else +GLOBAL_ASM( +.text +glabel retrieve_header_for_body_and_head +/* 058000 7F0234D0 00047080 */ sll $t6, $a0, 2 +/* 058004 7F0234D4 01C47021 */ addu $t6, $t6, $a0 +/* 058008 7F0234D8 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 05800C 7F0234DC 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 058010 7F0234E0 000E7080 */ sll $t6, $t6, 2 +/* 058014 7F0234E4 01CF3821 */ addu $a3, $t6, $t7 +/* 058018 7F0234E8 8CF80000 */ lw $t8, ($a3) +/* 05801C 7F0234EC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058020 7F0234F0 30D90001 */ andi $t9, $a2, 1 +/* 058024 7F0234F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 058028 7F0234F8 AFA00028 */ sw $zero, 0x28($sp) +/* 05802C 7F0234FC 00001825 */ move $v1, $zero +/* 058030 7F023500 13200003 */ beqz $t9, .L7F023510 +/* 058034 7F023504 AFB8002C */ sw $t8, 0x2c($sp) +/* 058038 7F023508 1000000E */ b .L7F023544 +/* 05803C 7F02350C 24030001 */ li $v1, 1 +.L7F023510: +/* 058040 7F023510 30C80002 */ andi $t0, $a2, 2 +/* 058044 7F023514 1100000B */ beqz $t0, .L7F023544 +/* 058048 7F023518 00000000 */ nop +/* 05804C 7F02351C AFA40030 */ sw $a0, 0x30($sp) +/* 058050 7F023520 AFA50034 */ sw $a1, 0x34($sp) +/* 058054 7F023524 0C002914 */ jal get_random_value +/* 058058 7F023528 AFA70020 */ sw $a3, 0x20($sp) +/* 05805C 7F02352C 30430001 */ andi $v1, $v0, 1 +/* 058060 7F023530 2C690001 */ sltiu $t1, $v1, 1 +/* 058064 7F023534 01201825 */ move $v1, $t1 +/* 058068 7F023538 8FA40030 */ lw $a0, 0x30($sp) +/* 05806C 7F02353C 8FA50034 */ lw $a1, 0x34($sp) +/* 058070 7F023540 8FA70020 */ lw $a3, 0x20($sp) +.L7F023544: +/* 058074 7F023544 04A2000B */ bltzl $a1, .L7F023574 +/* 058078 7F023548 8FA6002C */ lw $a2, 0x2c($sp) +/* 05807C 7F02354C 90EA0011 */ lbu $t2, 0x11($a3) +/* 058080 7F023550 00055880 */ sll $t3, $a1, 2 +/* 058084 7F023554 01655821 */ addu $t3, $t3, $a1 +/* 058088 7F023558 15400005 */ bnez $t2, .L7F023570 +/* 05808C 7F02355C 000B5880 */ sll $t3, $t3, 2 +/* 058090 7F023560 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 058094 7F023564 018B6021 */ addu $t4, $t4, $t3 +/* 058098 7F023568 8D8CDE10 */ lw $t4, %lo(c_item_entries)($t4) +/* 05809C 7F02356C AFAC0028 */ sw $t4, 0x28($sp) +.L7F023570: +/* 0580A0 7F023570 8FA6002C */ lw $a2, 0x2c($sp) +.L7F023574: +/* 0580A4 7F023574 8FA70028 */ lw $a3, 0x28($sp) +/* 0580A8 7F023578 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 0580AC 7F02357C AFA30010 */ sw $v1, 0x10($sp) +/* 0580B0 7F023580 8FBF001C */ lw $ra, 0x1c($sp) +/* 0580B4 7F023584 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0580B8 7F023588 03E00008 */ jr $ra +/* 0580BC 7F02358C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_current_random_body(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_current_random_body +/* 0580C0 7F023590 3C0E8003 */ lui $t6, %hi(current_random_body) +/* 0580C4 7F023594 8DCECE34 */ lw $t6, %lo(current_random_body)($t6) +/* 0580C8 7F023598 3C028003 */ lui $v0, %hi(list_of_bodies) +/* 0580CC 7F02359C 000E7880 */ sll $t7, $t6, 2 +/* 0580D0 7F0235A0 004F1021 */ addu $v0, $v0, $t7 +/* 0580D4 7F0235A4 03E00008 */ jr $ra +/* 0580D8 7F0235A8 8C42CD0C */ lw $v0, %lo(list_of_bodies)($v0) +) +#endif + + + +#ifdef NONMATCHING +void select_psuedorandom_heads(void) { + +} +#else +GLOBAL_ASM( +.text +glabel select_psuedorandom_heads +/* 0580DC 7F0235AC 00047080 */ sll $t6, $a0, 2 +/* 0580E0 7F0235B0 01C47021 */ addu $t6, $t6, $a0 +/* 0580E4 7F0235B4 000E7080 */ sll $t6, $t6, 2 +/* 0580E8 7F0235B8 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 0580EC 7F0235BC 01EE7821 */ addu $t7, $t7, $t6 +/* 0580F0 7F0235C0 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 0580F4 7F0235C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0580F8 7F0235C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0580FC 7F0235CC 11E0001A */ beqz $t7, .L7F023638 +/* 058100 7F0235D0 3C0B8003 */ lui $t3, %hi(current_random_female_head) +/* 058104 7F0235D4 0C002914 */ jal get_random_value +/* 058108 7F0235D8 00000000 */ nop +/* 05810C 7F0235DC 3C188003 */ lui $t8, %hi(current_random_male_head) +/* 058110 7F0235E0 8F18CE38 */ lw $t8, %lo(current_random_male_head)($t8) +/* 058114 7F0235E4 30590003 */ andi $t9, $v0, 3 +/* 058118 7F0235E8 3C098003 */ lui $t1, %hi(num_male_heads) +/* 05811C 7F0235EC 8D29CD04 */ lw $t1, %lo(num_male_heads)($t1) +/* 058120 7F0235F0 03194021 */ addu $t0, $t8, $t9 +/* 058124 7F0235F4 0109001A */ div $zero, $t0, $t1 +/* 058128 7F0235F8 00001810 */ mfhi $v1 +/* 05812C 7F0235FC 00035080 */ sll $t2, $v1, 2 +/* 058130 7F023600 3C038003 */ lui $v1, %hi(random_male_heads) +/* 058134 7F023604 006A1821 */ addu $v1, $v1, $t2 +/* 058138 7F023608 15200002 */ bnez $t1, .L7F023614 +/* 05813C 7F02360C 00000000 */ nop +/* 058140 7F023610 0007000D */ break 7 +.L7F023614: +/* 058144 7F023614 2401FFFF */ li $at, -1 +/* 058148 7F023618 15210004 */ bne $t1, $at, .L7F02362C +/* 05814C 7F02361C 3C018000 */ lui $at, 0x8000 +/* 058150 7F023620 15010002 */ bne $t0, $at, .L7F02362C +/* 058154 7F023624 00000000 */ nop +/* 058158 7F023628 0006000D */ break 6 +.L7F02362C: +/* 05815C 7F02362C 8C63CDB8 */ lw $v1, %lo(random_male_heads)($v1) +/* 058160 7F023630 10000007 */ b .L7F023650 +/* 058164 7F023634 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023638: +/* 058168 7F023638 8D6BCE3C */ lw $t3, %lo(current_random_female_head)($t3) +/* 05816C 7F02363C 3C038003 */ lui $v1, %hi(random_female_heads) +/* 058170 7F023640 000B6080 */ sll $t4, $t3, 2 +/* 058174 7F023644 006C1821 */ addu $v1, $v1, $t4 +/* 058178 7F023648 8C63CE20 */ lw $v1, %lo(random_female_heads)($v1) +/* 05817C 7F02364C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023650: +/* 058180 7F023650 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058184 7F023654 00601025 */ move $v0, $v1 +/* 058188 7F023658 03E00008 */ jr $ra +/* 05818C 7F02365C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_random_head(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_random_head +/* 058190 7F023660 00047080 */ sll $t6, $a0, 2 +/* 058194 7F023664 01C47021 */ addu $t6, $t6, $a0 +/* 058198 7F023668 000E7080 */ sll $t6, $t6, 2 +/* 05819C 7F02366C 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 0581A0 7F023670 01EE7821 */ addu $t7, $t7, $t6 +/* 0581A4 7F023674 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 0581A8 7F023678 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0581AC 7F02367C AFBF0014 */ sw $ra, 0x14($sp) +/* 0581B0 7F023680 11E00010 */ beqz $t7, .L7F0236C4 +/* 0581B4 7F023684 00000000 */ nop +/* 0581B8 7F023688 0C002914 */ jal get_random_value +/* 0581BC 7F02368C 00000000 */ nop +/* 0581C0 7F023690 3C188003 */ lui $t8, %hi(num_male_heads) +/* 0581C4 7F023694 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) +/* 0581C8 7F023698 3C038003 */ lui $v1, %hi(random_male_heads) +/* 0581CC 7F02369C 0058001B */ divu $zero, $v0, $t8 +/* 0581D0 7F0236A0 0000C810 */ mfhi $t9 +/* 0581D4 7F0236A4 00194080 */ sll $t0, $t9, 2 +/* 0581D8 7F0236A8 00681821 */ addu $v1, $v1, $t0 +/* 0581DC 7F0236AC 17000002 */ bnez $t8, .L7F0236B8 +/* 0581E0 7F0236B0 00000000 */ nop +/* 0581E4 7F0236B4 0007000D */ break 7 +.L7F0236B8: +/* 0581E8 7F0236B8 8C63CDB8 */ lw $v1, %lo(random_male_heads)($v1) +/* 0581EC 7F0236BC 1000000F */ b .L7F0236FC +/* 0581F0 7F0236C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0236C4: +/* 0581F4 7F0236C4 0C002914 */ jal get_random_value +/* 0581F8 7F0236C8 00000000 */ nop +/* 0581FC 7F0236CC 3C098003 */ lui $t1, %hi(num_female_heads) +/* 058200 7F0236D0 8D29CD08 */ lw $t1, %lo(num_female_heads)($t1) +/* 058204 7F0236D4 3C038003 */ lui $v1, %hi(random_female_heads) +/* 058208 7F0236D8 0049001B */ divu $zero, $v0, $t1 +/* 05820C 7F0236DC 00005010 */ mfhi $t2 +/* 058210 7F0236E0 000A5880 */ sll $t3, $t2, 2 +/* 058214 7F0236E4 006B1821 */ addu $v1, $v1, $t3 +/* 058218 7F0236E8 8C63CE20 */ lw $v1, %lo(random_female_heads)($v1) +/* 05821C 7F0236EC 15200002 */ bnez $t1, .L7F0236F8 +/* 058220 7F0236F0 00000000 */ nop +/* 058224 7F0236F4 0007000D */ break 7 +.L7F0236F8: +/* 058228 7F0236F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0236FC: +/* 05822C 7F0236FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058230 7F023700 00601025 */ move $v0, $v1 +/* 058234 7F023704 03E00008 */ jr $ra +/* 058238 7F023708 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void expand_09_characters(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_09_characters +/* 05823C 7F02370C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 058240 7F023710 AFBF0024 */ sw $ra, 0x24($sp) +/* 058244 7F023714 AFB00020 */ sw $s0, 0x20($sp) +/* 058248 7F023718 AFA40060 */ sw $a0, 0x60($sp) +/* 05824C 7F02371C AFA60068 */ sw $a2, 0x68($sp) +/* 058250 7F023720 94AE0006 */ lhu $t6, 6($a1) +/* 058254 7F023724 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 058258 7F023728 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05825C 7F02372C 000E7880 */ sll $t7, $t6, 2 +/* 058260 7F023730 01EE7823 */ subu $t7, $t7, $t6 +/* 058264 7F023734 000F7880 */ sll $t7, $t7, 2 +/* 058268 7F023738 01EE7823 */ subu $t7, $t7, $t6 +/* 05826C 7F02373C 000F7880 */ sll $t7, $t7, 2 +/* 058270 7F023740 00A08025 */ move $s0, $a1 +/* 058274 7F023744 01F82021 */ addu $a0, $t7, $t8 +/* 058278 7F023748 8C850028 */ lw $a1, 0x28($a0) +/* 05827C 7F02374C 27B90054 */ addiu $t9, $sp, 0x54 +/* 058280 7F023750 AFB90010 */ sw $t9, 0x10($sp) +/* 058284 7F023754 AFA4005C */ sw $a0, 0x5c($sp) +/* 058288 7F023758 3C0641A0 */ lui $a2, 0x41a0 +/* 05828C 7F02375C 0FC15A14 */ jal sub_GAME_7F056850 +/* 058290 7F023760 27A70048 */ addiu $a3, $sp, 0x48 +/* 058294 7F023764 10400065 */ beqz $v0, .L7F0238FC +/* 058298 7F023768 2408FFFF */ li $t0, -1 +/* 05829C 7F02376C AFA80030 */ sw $t0, 0x30($sp) +/* 0582A0 7F023770 96020008 */ lhu $v0, 8($s0) +/* 0582A4 7F023774 3401FFFF */ li $at, 65535 +/* 0582A8 7F023778 54410006 */ bnel $v0, $at, .L7F023794 +/* 0582AC 7F02377C AFA20034 */ sw $v0, 0x34($sp) +/* 0582B0 7F023780 0FC08D64 */ jal get_current_random_body +/* 0582B4 7F023784 00000000 */ nop +/* 0582B8 7F023788 10000002 */ b .L7F023794 +/* 0582BC 7F02378C AFA20034 */ sw $v0, 0x34($sp) +/* 0582C0 7F023790 AFA20034 */ sw $v0, 0x34($sp) +.L7F023794: +/* 0582C4 7F023794 8FA90034 */ lw $t1, 0x34($sp) +/* 0582C8 7F023798 3C0B8004 */ lui $t3, %hi(c_item_entries+17) +/* 0582CC 7F02379C 00095080 */ sll $t2, $t1, 2 +/* 0582D0 7F0237A0 01495021 */ addu $t2, $t2, $t1 +/* 0582D4 7F0237A4 000A5080 */ sll $t2, $t2, 2 +/* 0582D8 7F0237A8 016A5821 */ addu $t3, $t3, $t2 +/* 0582DC 7F0237AC 916BDE21 */ lbu $t3, %lo(c_item_entries+17)($t3) +/* 0582E0 7F0237B0 5560000A */ bnezl $t3, .L7F0237DC +/* 0582E4 7F0237B4 8FA40034 */ lw $a0, 0x34($sp) +/* 0582E8 7F0237B8 86020016 */ lh $v0, 0x16($s0) +/* 0582EC 7F0237BC 04400003 */ bltz $v0, .L7F0237CC +/* 0582F0 7F0237C0 00000000 */ nop +/* 0582F4 7F0237C4 10000004 */ b .L7F0237D8 +/* 0582F8 7F0237C8 AFA20030 */ sw $v0, 0x30($sp) +.L7F0237CC: +/* 0582FC 7F0237CC 0FC08D6B */ jal select_psuedorandom_heads +/* 058300 7F0237D0 8FA40034 */ lw $a0, 0x34($sp) +/* 058304 7F0237D4 AFA20030 */ sw $v0, 0x30($sp) +.L7F0237D8: +/* 058308 7F0237D8 8FA40034 */ lw $a0, 0x34($sp) +.L7F0237DC: +/* 05830C 7F0237DC 8FA50030 */ lw $a1, 0x30($sp) +/* 058310 7F0237E0 0FC08D34 */ jal retrieve_header_for_body_and_head +/* 058314 7F0237E4 96060014 */ lhu $a2, 0x14($s0) +/* 058318 7F0237E8 10400044 */ beqz $v0, .L7F0238FC +/* 05831C 7F0237EC AFA20038 */ sw $v0, 0x38($sp) +/* 058320 7F0237F0 8FA2005C */ lw $v0, 0x5c($sp) +/* 058324 7F0237F4 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 058328 7F0237F8 0FC16A8C */ jal atan2f +/* 05832C 7F0237FC C44E0020 */ lwc1 $f14, 0x20($v0) +/* 058330 7F023800 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 058334 7F023804 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 058338 7F023808 9604000A */ lhu $a0, 0xa($s0) +/* 05833C 7F02380C 8FA40038 */ lw $a0, 0x38($sp) +/* 058340 7F023810 27A50048 */ addiu $a1, $sp, 0x48 +/* 058344 7F023814 8FA6003C */ lw $a2, 0x3c($sp) +/* 058348 7F023818 8FA70054 */ lw $a3, 0x54($sp) +/* 05834C 7F02381C 0FC080EE */ jal replace_GUARDdata_with_actual_values +/* 058350 7F023820 AFA20010 */ sw $v0, 0x10($sp) +/* 058354 7F023824 10400035 */ beqz $v0, .L7F0238FC +/* 058358 7F023828 00402025 */ move $a0, $v0 +/* 05835C 7F02382C 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 058360 7F023830 AFA20044 */ sw $v0, 0x44($sp) +/* 058364 7F023834 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 058368 7F023838 8FA40044 */ lw $a0, 0x44($sp) +/* 05836C 7F02383C 8FAC0044 */ lw $t4, 0x44($sp) +/* 058370 7F023840 960D0004 */ lhu $t5, 4($s0) +/* 058374 7F023844 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 058378 7F023848 8D820004 */ lw $v0, 4($t4) +/* 05837C 7F02384C A44D0000 */ sh $t5, ($v0) +/* 058380 7F023850 960E0010 */ lhu $t6, 0x10($s0) +/* 058384 7F023854 448E2000 */ mtc1 $t6, $f4 +/* 058388 7F023858 05C10004 */ bgez $t6, .L7F02386C +/* 05838C 7F02385C 468021A0 */ cvt.s.w $f6, $f4 +/* 058390 7F023860 44814000 */ mtc1 $at, $f8 +/* 058394 7F023864 00000000 */ nop +/* 058398 7F023868 46083180 */ add.s $f6, $f6, $f8 +.L7F02386C: +/* 05839C 7F02386C 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0583A0 7F023870 44815000 */ mtc1 $at, $f10 +/* 0583A4 7F023874 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0583A8 7F023878 460A3403 */ div.s $f16, $f6, $f10 +/* 0583AC 7F02387C E45000EC */ swc1 $f16, 0xec($v0) +/* 0583B0 7F023880 960F0012 */ lhu $t7, 0x12($s0) +/* 0583B4 7F023884 448F9000 */ mtc1 $t7, $f18 +/* 0583B8 7F023888 05E10004 */ bgez $t7, .L7F02389C +/* 0583BC 7F02388C 46809120 */ cvt.s.w $f4, $f18 +/* 0583C0 7F023890 44814000 */ mtc1 $at, $f8 +/* 0583C4 7F023894 00000000 */ nop +/* 0583C8 7F023898 46082100 */ add.s $f4, $f4, $f8 +.L7F02389C: +/* 0583CC 7F02389C E44400D0 */ swc1 $f4, 0xd0($v0) +/* 0583D0 7F0238A0 9618000C */ lhu $t8, 0xc($s0) +/* 0583D4 7F0238A4 A4580114 */ sh $t8, 0x114($v0) +/* 0583D8 7F0238A8 9619000E */ lhu $t9, 0xe($s0) +/* 0583DC 7F0238AC A4590116 */ sh $t9, 0x116($v0) +/* 0583E0 7F0238B0 8FA80030 */ lw $t0, 0x30($sp) +/* 0583E4 7F0238B4 A0480006 */ sb $t0, 6($v0) +/* 0583E8 7F0238B8 8FA90034 */ lw $t1, 0x34($sp) +/* 0583EC 7F0238BC A049000F */ sb $t1, 0xf($v0) +/* 0583F0 7F0238C0 96030014 */ lhu $v1, 0x14($s0) +/* 0583F4 7F0238C4 306A0004 */ andi $t2, $v1, 4 +/* 0583F8 7F0238C8 51400006 */ beql $t2, $zero, .L7F0238E4 +/* 0583FC 7F0238CC 306D0008 */ andi $t5, $v1, 8 +/* 058400 7F0238D0 8C4B0014 */ lw $t3, 0x14($v0) +/* 058404 7F0238D4 356C0002 */ ori $t4, $t3, 2 +/* 058408 7F0238D8 AC4C0014 */ sw $t4, 0x14($v0) +/* 05840C 7F0238DC 96030014 */ lhu $v1, 0x14($s0) +/* 058410 7F0238E0 306D0008 */ andi $t5, $v1, 8 +.L7F0238E4: +/* 058414 7F0238E4 51A00005 */ beql $t5, $zero, .L7F0238FC +/* 058418 7F0238E8 AE020018 */ sw $v0, 0x18($s0) +/* 05841C 7F0238EC 8C4E0014 */ lw $t6, 0x14($v0) +/* 058420 7F0238F0 35CF0010 */ ori $t7, $t6, 0x10 +/* 058424 7F0238F4 AC4F0014 */ sw $t7, 0x14($v0) +/* 058428 7F0238F8 AE020018 */ sw $v0, 0x18($s0) +.L7F0238FC: +/* 05842C 7F0238FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 058430 7F023900 8FB00020 */ lw $s0, 0x20($sp) +/* 058434 7F023904 27BD0060 */ addiu $sp, $sp, 0x60 +/* 058438 7F023908 03E00008 */ jr $ra +/* 05843C 7F02390C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_item_held_like_pistol(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_item_held_like_pistol +/* 058440 7F023910 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 058444 7F023914 10800007 */ beqz $a0, .L7F023934 +/* 058448 7F023918 AFBF0014 */ sw $ra, 0x14($sp) +/* 05844C 7F02391C 8C820004 */ lw $v0, 4($a0) +/* 058450 7F023920 24050100 */ li $a1, 256 +/* 058454 7F023924 0FC1782D */ jal bondwalkItemCheckBitflags +/* 058458 7F023928 80440080 */ lb $a0, 0x80($v0) +/* 05845C 7F02392C 10000003 */ b .L7F02393C +/* 058460 7F023930 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023934: +/* 058464 7F023934 00001025 */ move $v0, $zero +/* 058468 7F023938 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02393C: +/* 05846C 7F02393C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058470 7F023940 03E00008 */ jr $ra +/* 058474 7F023944 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023948(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023948 +/* 058478 7F023948 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05847C 7F02394C AFBF0024 */ sw $ra, 0x24($sp) +/* 058480 7F023950 AFB00020 */ sw $s0, 0x20($sp) +/* 058484 7F023954 AFA50034 */ sw $a1, 0x34($sp) +/* 058488 7F023958 00808025 */ move $s0, $a0 +/* 05848C 7F02395C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058490 7F023960 24050001 */ li $a1, 1 +/* 058494 7F023964 AFA2002C */ sw $v0, 0x2c($sp) +/* 058498 7F023968 02002025 */ move $a0, $s0 +/* 05849C 7F02396C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0584A0 7F023970 00002825 */ move $a1, $zero +/* 0584A4 7F023974 8FA4002C */ lw $a0, 0x2c($sp) +/* 0584A8 7F023978 AFA20028 */ sw $v0, 0x28($sp) +/* 0584AC 7F02397C 10800003 */ beqz $a0, .L7F02398C +/* 0584B0 7F023980 00000000 */ nop +/* 0584B4 7F023984 1440000D */ bnez $v0, .L7F0239BC +/* 0584B8 7F023988 00000000 */ nop +.L7F02398C: +/* 0584BC 7F02398C 14800003 */ bnez $a0, .L7F02399C +/* 0584C0 7F023990 00000000 */ nop +/* 0584C4 7F023994 10400009 */ beqz $v0, .L7F0239BC +/* 0584C8 7F023998 00000000 */ nop +.L7F02399C: +/* 0584CC 7F02399C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0584D0 7F0239A0 00000000 */ nop +/* 0584D4 7F0239A4 14400005 */ bnez $v0, .L7F0239BC +/* 0584D8 7F0239A8 00000000 */ nop +/* 0584DC 7F0239AC 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0584E0 7F0239B0 8FA40028 */ lw $a0, 0x28($sp) +/* 0584E4 7F0239B4 10400017 */ beqz $v0, .L7F023A14 +/* 0584E8 7F0239B8 8FB80028 */ lw $t8, 0x28($sp) +.L7F0239BC: +/* 0584EC 7F0239BC 0C002914 */ jal get_random_value +/* 0584F0 7F0239C0 00000000 */ nop +/* 0584F4 7F0239C4 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 0584F8 7F0239C8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0584FC 7F0239CC 44812000 */ mtc1 $at, $f4 +/* 058500 7F0239D0 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 058504 7F0239D4 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 058508 7F0239D8 3C0F0001 */ lui $t7, %hi(0x00008194) # $t7, 1 +/* 05850C 7F0239DC 25EF8194 */ addiu $t7, %lo(0x00008194) # addiu $t7, $t7, -0x7e6c +/* 058510 7F0239E0 8E04001C */ lw $a0, 0x1c($s0) +/* 058514 7F0239E4 30460001 */ andi $a2, $v0, 1 +/* 058518 7F0239E8 24070000 */ li $a3, 0 +/* 05851C 7F0239EC E7A40010 */ swc1 $f4, 0x10($sp) +/* 058520 7F0239F0 01CF2821 */ addu $a1, $t6, $t7 +/* 058524 7F0239F4 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058528 7F0239F8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05852C 7F0239FC 8E04001C */ lw $a0, 0x1c($s0) +/* 058530 7F023A00 24050000 */ li $a1, 0 +/* 058534 7F023A04 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 058538 7F023A08 3C064180 */ lui $a2, 0x4180 +/* 05853C 7F023A0C 1000001D */ b .L7F023A84 +/* 058540 7F023A10 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A14: +/* 058544 7F023A14 17000003 */ bnez $t8, .L7F023A24 +/* 058548 7F023A18 8FB9002C */ lw $t9, 0x2c($sp) +/* 05854C 7F023A1C 53200019 */ beql $t9, $zero, .L7F023A84 +/* 058550 7F023A20 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A24: +/* 058554 7F023A24 8FA6002C */ lw $a2, 0x2c($sp) +/* 058558 7F023A28 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05855C 7F023A2C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 058560 7F023A30 44814000 */ mtc1 $at, $f8 +/* 058564 7F023A34 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 058568 7F023A38 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 05856C 7F023A3C 3C090000 */ lui $t1, %hi(0x0000001C) # $t1, 0 +/* 058570 7F023A40 2529001C */ addiu $t1, %lo(0x0000001C) # addiu $t1, $t1, 0x1c +/* 058574 7F023A44 8E04001C */ lw $a0, 0x1c($s0) +/* 058578 7F023A48 0006502B */ sltu $t2, $zero, $a2 +/* 05857C 7F023A4C 01403025 */ move $a2, $t2 +/* 058580 7F023A50 24070000 */ li $a3, 0 +/* 058584 7F023A54 E7A80010 */ swc1 $f8, 0x10($sp) +/* 058588 7F023A58 01092821 */ addu $a1, $t0, $t1 +/* 05858C 7F023A5C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058590 7F023A60 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 058594 7F023A64 8E04001C */ lw $a0, 0x1c($s0) +/* 058598 7F023A68 24050000 */ li $a1, 0 +/* 05859C 7F023A6C 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0585A0 7F023A70 3C064180 */ lui $a2, 0x4180 +/* 0585A4 7F023A74 8E04001C */ lw $a0, 0x1c($s0) +/* 0585A8 7F023A78 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0585AC 7F023A7C 3C0542F0 */ lui $a1, 0x42f0 +/* 0585B0 7F023A80 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A84: +/* 0585B4 7F023A84 8FB00020 */ lw $s0, 0x20($sp) +/* 0585B8 7F023A88 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0585BC 7F023A8C 03E00008 */ jr $ra +/* 0585C0 7F023A90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023A94(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F023A94 +/* 0585C4 7F023A94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0585C8 7F023A98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0585CC 7F023A9C AFA5001C */ sw $a1, 0x1c($sp) +/* 0585D0 7F023AA0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0585D4 7F023AA4 AFA40018 */ sw $a0, 0x18($sp) +/* 0585D8 7F023AA8 8FA40018 */ lw $a0, 0x18($sp) +/* 0585DC 7F023AAC 240E0001 */ li $t6, 1 +/* 0585E0 7F023AB0 240F0002 */ li $t7, 2 +/* 0585E4 7F023AB4 A08E0007 */ sb $t6, 7($a0) +/* 0585E8 7F023AB8 AC80002C */ sw $zero, 0x2c($a0) +/* 0585EC 7F023ABC AC800030 */ sw $zero, 0x30($a0) +/* 0585F0 7F023AC0 AC800034 */ sw $zero, 0x34($a0) +/* 0585F4 7F023AC4 AC800038 */ sw $zero, 0x38($a0) +/* 0585F8 7F023AC8 AC8F003C */ sw $t7, 0x3c($a0) +/* 0585FC 7F023ACC 0C002914 */ jal get_random_value +/* 058600 7F023AD0 AC800040 */ sw $zero, 0x40($a0) +/* 058604 7F023AD4 24010078 */ li $at, 120 +/* 058608 7F023AD8 0041001B */ divu $zero, $v0, $at +/* 05860C 7F023ADC 8FA40018 */ lw $a0, 0x18($sp) +/* 058610 7F023AE0 0000C010 */ mfhi $t8 +/* 058614 7F023AE4 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 058618 7F023AE8 8C88001C */ lw $t0, 0x1c($a0) +/* 05861C 7F023AEC 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058620 7F023AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058624 7F023AF4 AC990044 */ sw $t9, 0x44($a0) +/* 058628 7F023AF8 44812000 */ mtc1 $at, $f4 +/* 05862C 7F023AFC C50200A4 */ lwc1 $f2, 0xa4($t0) +/* 058630 7F023B00 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 058634 7F023B04 46006006 */ mov.s $f0, $f12 +/* 058638 7F023B08 46022032 */ c.eq.s $f4, $f2 +/* 05863C 7F023B0C 00000000 */ nop +/* 058640 7F023B10 45030003 */ bc1tl .L7F023B20 +/* 058644 7F023B14 44811000 */ mtc1 $at, $f2 +/* 058648 7F023B18 46026003 */ div.s $f0, $f12, $f2 +/* 05864C 7F023B1C 44811000 */ mtc1 $at, $f2 +.L7F023B20: +/* 058650 7F023B20 00000000 */ nop +/* 058654 7F023B24 4600103C */ c.lt.s $f2, $f0 +/* 058658 7F023B28 00000000 */ nop +/* 05865C 7F023B2C 45020003 */ bc1fl .L7F023B3C +/* 058660 7F023B30 4600018D */ trunc.w.s $f6, $f0 +/* 058664 7F023B34 46001006 */ mov.s $f0, $f2 +/* 058668 7F023B38 4600018D */ trunc.w.s $f6, $f0 +.L7F023B3C: +/* 05866C 7F023B3C 44056000 */ mfc1 $a1, $f12 +/* 058670 7F023B40 440A3000 */ mfc1 $t2, $f6 +/* 058674 7F023B44 0FC08E52 */ jal sub_GAME_7F023948 +/* 058678 7F023B48 A08A0008 */ sb $t2, 8($a0) +/* 05867C 7F023B4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 058680 7F023B50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058684 7F023B54 03E00008 */ jr $ra +/* 058688 7F023B58 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F023A94 +/* 058904 7F023D94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 058908 7F023D98 AFBF0014 */ sw $ra, 0x14($sp) +/* 05890C 7F023D9C AFA5001C */ sw $a1, 0x1c($sp) +/* 058910 7F023DA0 0FC0B523 */ jal sub_GAME_7F02D184 +/* 058914 7F023DA4 AFA40018 */ sw $a0, 0x18($sp) +/* 058918 7F023DA8 8FA40018 */ lw $a0, 0x18($sp) +/* 05891C 7F023DAC 240E0001 */ li $t6, 1 +/* 058920 7F023DB0 240F0002 */ li $t7, 2 +/* 058924 7F023DB4 A08E0007 */ sb $t6, 7($a0) +/* 058928 7F023DB8 AC80002C */ sw $zero, 0x2c($a0) +/* 05892C 7F023DBC AC800030 */ sw $zero, 0x30($a0) +/* 058930 7F023DC0 AC800034 */ sw $zero, 0x34($a0) +/* 058934 7F023DC4 AC800038 */ sw $zero, 0x38($a0) +/* 058938 7F023DC8 AC8F003C */ sw $t7, 0x3c($a0) +/* 05893C 7F023DCC 0C002918 */ jal get_random_value +/* 058940 7F023DD0 AC800040 */ sw $zero, 0x40($a0) +/* 058944 7F023DD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058948 7F023DD8 44817000 */ mtc1 $at, $f14 +/* 05894C 7F023DDC 24010078 */ li $at, 120 +/* 058950 7F023DE0 0041001B */ divu $zero, $v0, $at +/* 058954 7F023DE4 8FA40018 */ lw $a0, 0x18($sp) +/* 058958 7F023DE8 0000C010 */ mfhi $t8 +/* 05895C 7F023DEC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 058960 7F023DF0 8C88001C */ lw $t0, 0x1c($a0) +/* 058964 7F023DF4 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058968 7F023DF8 AC990044 */ sw $t9, 0x44($a0) +/* 05896C 7F023DFC C50200A4 */ lwc1 $f2, 0xa4($t0) +/* 058970 7F023E00 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 058974 7F023E04 46006006 */ mov.s $f0, $f12 +/* 058978 7F023E08 46027032 */ c.eq.s $f14, $f2 +/* 05897C 7F023E0C 00000000 */ nop +/* 058980 7F023E10 45030005 */ bc1tl .L7F023E28 +/* 058984 7F023E14 44811000 */ mtc1 $at, $f2 +/* 058988 7F023E18 46027103 */ div.s $f4, $f14, $f2 +/* 05898C 7F023E1C 46046002 */ mul.s $f0, $f12, $f4 +/* 058990 7F023E20 00000000 */ nop +/* 058994 7F023E24 44811000 */ mtc1 $at, $f2 +.L7F023E28: +/* 058998 7F023E28 00000000 */ nop +/* 05899C 7F023E2C 4600103C */ c.lt.s $f2, $f0 +/* 0589A0 7F023E30 00000000 */ nop +/* 0589A4 7F023E34 45020003 */ bc1fl .L7F023E44 +/* 0589A8 7F023E38 4600018D */ trunc.w.s $f6, $f0 +/* 0589AC 7F023E3C 46001006 */ mov.s $f0, $f2 +/* 0589B0 7F023E40 4600018D */ trunc.w.s $f6, $f0 +.L7F023E44: +/* 0589B4 7F023E44 44056000 */ mfc1 $a1, $f12 +/* 0589B8 7F023E48 440A3000 */ mfc1 $t2, $f6 +/* 0589BC 7F023E4C 0FC08F12 */ jal sub_GAME_7F023948 +/* 0589C0 7F023E50 A08A0008 */ sb $t2, 8($a0) +/* 0589C4 7F023E54 8FBF0014 */ lw $ra, 0x14($sp) +/* 0589C8 7F023E58 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0589CC 7F023E5C 03E00008 */ jr $ra +/* 0589D0 7F023E60 00000000 */ nop + +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F023B5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023B5C +/* 05868C 7F023B5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058690 7F023B60 AFBF0014 */ sw $ra, 0x14($sp) +/* 058694 7F023B64 AFA50024 */ sw $a1, 0x24($sp) +/* 058698 7F023B68 AFA60028 */ sw $a2, 0x28($sp) +/* 05869C 7F023B6C 808E0003 */ lb $t6, 3($a0) +/* 0586A0 7F023B70 448E2000 */ mtc1 $t6, $f4 +/* 0586A4 7F023B74 00000000 */ nop +/* 0586A8 7F023B78 468020A0 */ cvt.s.w $f2, $f4 +/* 0586AC 7F023B7C 0FC074AC */ jal get_007_reaction_speed +/* 0586B0 7F023B80 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0586B4 7F023B84 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0586B8 7F023B88 44816000 */ mtc1 $at, $f12 +/* 0586BC 7F023B8C C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0586C0 7F023B90 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0586C4 7F023B94 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0586C8 7F023B98 46026181 */ sub.s $f6, $f12, $f2 +/* 0586CC 7F023B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0586D0 7F023BA0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0586D4 7F023BA4 460E5401 */ sub.s $f16, $f10, $f14 +/* 0586D8 7F023BA8 46060202 */ mul.s $f8, $f0, $f6 +/* 0586DC 7F023BAC 46024080 */ add.s $f2, $f8, $f2 +/* 0586E0 7F023BB0 46028482 */ mul.s $f18, $f16, $f2 +/* 0586E4 7F023BB4 460C9103 */ div.s $f4, $f18, $f12 +/* 0586E8 7F023BB8 03E00008 */ jr $ra +/* 0586EC 7F023BBC 460E2000 */ add.s $f0, $f4, $f14 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023BC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023BC0 +/* 0586F0 7F023BC0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0586F4 7F023BC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0586F8 7F023BC8 AFA50024 */ sw $a1, 0x24($sp) +/* 0586FC 7F023BCC 80830003 */ lb $v1, 3($a0) +/* 058700 7F023BD0 0FC074AC */ jal get_007_reaction_speed +/* 058704 7F023BD4 AFA3001C */ sw $v1, 0x1c($sp) +/* 058708 7F023BD8 8FA3001C */ lw $v1, 0x1c($sp) +/* 05870C 7F023BDC 24040064 */ li $a0, 100 +/* 058710 7F023BE0 8FA80024 */ lw $t0, 0x24($sp) +/* 058714 7F023BE4 00837023 */ subu $t6, $a0, $v1 +/* 058718 7F023BE8 448E2000 */ mtc1 $t6, $f4 +/* 05871C 7F023BEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 058720 7F023BF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 058724 7F023BF4 468021A0 */ cvt.s.w $f6, $f4 +/* 058728 7F023BF8 46060202 */ mul.s $f8, $f0, $f6 +/* 05872C 7F023BFC 4600428D */ trunc.w.s $f10, $f8 +/* 058730 7F023C00 44185000 */ mfc1 $t8, $f10 +/* 058734 7F023C04 00000000 */ nop +/* 058738 7F023C08 03031821 */ addu $v1, $t8, $v1 +/* 05873C 7F023C0C 0083C823 */ subu $t9, $a0, $v1 +/* 058740 7F023C10 03280019 */ multu $t9, $t0 +/* 058744 7F023C14 00004812 */ mflo $t1 +/* 058748 7F023C18 00000000 */ nop +/* 05874C 7F023C1C 00000000 */ nop +/* 058750 7F023C20 0124001A */ div $zero, $t1, $a0 +/* 058754 7F023C24 00001012 */ mflo $v0 +/* 058758 7F023C28 14800002 */ bnez $a0, .L7F023C34 +/* 05875C 7F023C2C 00000000 */ nop +/* 058760 7F023C30 0007000D */ break 7 +.L7F023C34: +/* 058764 7F023C34 2401FFFF */ li $at, -1 +/* 058768 7F023C38 14810004 */ bne $a0, $at, .L7F023C4C +/* 05876C 7F023C3C 3C018000 */ lui $at, 0x8000 +/* 058770 7F023C40 15210002 */ bne $t1, $at, .L7F023C4C +/* 058774 7F023C44 00000000 */ nop +/* 058778 7F023C48 0006000D */ break 6 +.L7F023C4C: +/* 05877C 7F023C4C 03E00008 */ jr $ra +/* 058780 7F023C50 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023C54(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023C54 +/* 058784 7F023C54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058788 7F023C58 AFBF0014 */ sw $ra, 0x14($sp) +/* 05878C 7F023C5C AFA50024 */ sw $a1, 0x24($sp) +/* 058790 7F023C60 AFA60028 */ sw $a2, 0x28($sp) +/* 058794 7F023C64 808E000D */ lb $t6, 0xd($a0) +/* 058798 7F023C68 448E2000 */ mtc1 $t6, $f4 +/* 05879C 7F023C6C 00000000 */ nop +/* 0587A0 7F023C70 468020A0 */ cvt.s.w $f2, $f4 +/* 0587A4 7F023C74 0FC074AC */ jal get_007_reaction_speed +/* 0587A8 7F023C78 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0587AC 7F023C7C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0587B0 7F023C80 44816000 */ mtc1 $at, $f12 +/* 0587B4 7F023C84 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0587B8 7F023C88 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0587BC 7F023C8C C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0587C0 7F023C90 46026181 */ sub.s $f6, $f12, $f2 +/* 0587C4 7F023C94 8FBF0014 */ lw $ra, 0x14($sp) +/* 0587C8 7F023C98 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0587CC 7F023C9C 460E5401 */ sub.s $f16, $f10, $f14 +/* 0587D0 7F023CA0 46060202 */ mul.s $f8, $f0, $f6 +/* 0587D4 7F023CA4 46024080 */ add.s $f2, $f8, $f2 +/* 0587D8 7F023CA8 46028482 */ mul.s $f18, $f16, $f2 +/* 0587DC 7F023CAC 460C9103 */ div.s $f4, $f18, $f12 +/* 0587E0 7F023CB0 03E00008 */ jr $ra +/* 0587E4 7F023CB4 460E2000 */ add.s $f0, $f4, $f14 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023CB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023CB8 +/* 0587E8 7F023CB8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0587EC 7F023CBC AFBF0024 */ sw $ra, 0x24($sp) +/* 0587F0 7F023CC0 AFB00020 */ sw $s0, 0x20($sp) +/* 0587F4 7F023CC4 808E0007 */ lb $t6, 7($a0) +/* 0587F8 7F023CC8 24010002 */ li $at, 2 +/* 0587FC 7F023CCC 00808025 */ move $s0, $a0 +/* 058800 7F023CD0 15C10049 */ bne $t6, $at, .L7F023DF8 +/* 058804 7F023CD4 3C054180 */ lui $a1, 0x4180 +/* 058808 7F023CD8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05880C 7F023CDC 00000000 */ nop +/* 058810 7F023CE0 24020001 */ li $v0, 1 +/* 058814 7F023CE4 240F0002 */ li $t7, 2 +/* 058818 7F023CE8 A2020007 */ sb $v0, 7($s0) +/* 05881C 7F023CEC AE02002C */ sw $v0, 0x2c($s0) +/* 058820 7F023CF0 AE000030 */ sw $zero, 0x30($s0) +/* 058824 7F023CF4 AE000034 */ sw $zero, 0x34($s0) +/* 058828 7F023CF8 AE000038 */ sw $zero, 0x38($s0) +/* 05882C 7F023CFC AE0F003C */ sw $t7, 0x3c($s0) +/* 058830 7F023D00 0C002914 */ jal get_random_value +/* 058834 7F023D04 AE000040 */ sw $zero, 0x40($s0) +/* 058838 7F023D08 24010078 */ li $at, 120 +/* 05883C 7F023D0C 0041001B */ divu $zero, $v0, $at +/* 058840 7F023D10 0000C010 */ mfhi $t8 +/* 058844 7F023D14 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058848 7F023D18 AE190044 */ sw $t9, 0x44($s0) +/* 05884C 7F023D1C A2000008 */ sb $zero, 8($s0) +/* 058850 7F023D20 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 058854 7F023D24 8E04001C */ lw $a0, 0x1c($s0) +/* 058858 7F023D28 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05885C 7F023D2C 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 058860 7F023D30 3C030000 */ lui $v1, %hi(0x00006C18) # $v1, 0 +/* 058864 7F023D34 24636C18 */ addiu $v1, %lo(0x00006C18) # addiu $v1, $v1, 0x6c18 +/* 058868 7F023D38 00684821 */ addu $t1, $v1, $t0 +/* 05886C 7F023D3C 14490018 */ bne $v0, $t1, .L7F023DA0 +/* 058870 7F023D40 02002025 */ move $a0, $s0 +/* 058874 7F023D44 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058878 7F023D48 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05887C 7F023D4C 02002025 */ move $a0, $s0 +/* 058880 7F023D50 3C053F00 */ lui $a1, 0x3f00 +/* 058884 7F023D54 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058888 7F023D58 AFA30028 */ sw $v1, 0x28($sp) +/* 05888C 7F023D5C 8E04001C */ lw $a0, 0x1c($s0) +/* 058890 7F023D60 3C0A8007 */ lui $t2, %hi(ptr_animation_table) +/* 058894 7F023D64 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058898 7F023D68 44812000 */ mtc1 $at, $f4 +/* 05889C 7F023D6C 8D4A9538 */ lw $t2, %lo(ptr_animation_table)($t2) +/* 0588A0 7F023D70 8FA30028 */ lw $v1, 0x28($sp) +/* 0588A4 7F023D74 80860024 */ lb $a2, 0x24($a0) +/* 0588A8 7F023D78 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0588AC 7F023D7C 3C0742DA */ lui $a3, 0x42da +/* 0588B0 7F023D80 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0588B4 7F023D84 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0588B8 7F023D88 006A2821 */ addu $a1, $v1, $t2 +/* 0588BC 7F023D8C 8E04001C */ lw $a0, 0x1c($s0) +/* 0588C0 7F023D90 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0588C4 7F023D94 3C05430C */ lui $a1, 0x430c +/* 0588C8 7F023D98 1000001A */ b .L7F023E04 +/* 0588CC 7F023D9C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023DA0: +/* 0588D0 7F023DA0 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0588D4 7F023DA4 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0588D8 7F023DA8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0588DC 7F023DAC 3C053F00 */ lui $a1, 0x3f00 +/* 0588E0 7F023DB0 8E04001C */ lw $a0, 0x1c($s0) +/* 0588E4 7F023DB4 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0588E8 7F023DB8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0588EC 7F023DBC 44813000 */ mtc1 $at, $f6 +/* 0588F0 7F023DC0 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0588F4 7F023DC4 3C0C0000 */ lui $t4, %hi(0x00000B84) # $t4, 0 +/* 0588F8 7F023DC8 258C0B84 */ addiu $t4, %lo(0x00000B84) # addiu $t4, $t4, 0xb84 +/* 0588FC 7F023DCC 80860024 */ lb $a2, 0x24($a0) +/* 058900 7F023DD0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058904 7F023DD4 3C0742F0 */ lui $a3, 0x42f0 +/* 058908 7F023DD8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05890C 7F023DDC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058910 7F023DE0 016C2821 */ addu $a1, $t3, $t4 +/* 058914 7F023DE4 8E04001C */ lw $a0, 0x1c($s0) +/* 058918 7F023DE8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05891C 7F023DEC 3C054317 */ lui $a1, 0x4317 +/* 058920 7F023DF0 10000004 */ b .L7F023E04 +/* 058924 7F023DF4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023DF8: +/* 058928 7F023DF8 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 05892C 7F023DFC 02002025 */ move $a0, $s0 +/* 058930 7F023E00 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023E04: +/* 058934 7F023E04 8FB00020 */ lw $s0, 0x20($sp) +/* 058938 7F023E08 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05893C 7F023E0C 03E00008 */ jr $ra +/* 058940 7F023E10 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023E14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023E14 +/* 058944 7F023E14 44856000 */ mtc1 $a1, $f12 +/* 058948 7F023E18 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05894C 7F023E1C AFBF0014 */ sw $ra, 0x14($sp) +/* 058950 7F023E20 44056000 */ mfc1 $a1, $f12 +/* 058954 7F023E24 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 058958 7F023E28 AFA40018 */ sw $a0, 0x18($sp) +/* 05895C 7F023E2C 8FAF0018 */ lw $t7, 0x18($sp) +/* 058960 7F023E30 240E0001 */ li $t6, 1 +/* 058964 7F023E34 ADEE0040 */ sw $t6, 0x40($t7) +/* 058968 7F023E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 05896C 7F023E3C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058970 7F023E40 03E00008 */ jr $ra +/* 058974 7F023E44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023E48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023E48 +/* 058978 7F023E48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05897C 7F023E4C AFBF0014 */ sw $ra, 0x14($sp) +/* 058980 7F023E50 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 058984 7F023E54 AFA40018 */ sw $a0, 0x18($sp) +/* 058988 7F023E58 8FAF0018 */ lw $t7, 0x18($sp) +/* 05898C 7F023E5C 240E0001 */ li $t6, 1 +/* 058990 7F023E60 ADEE0040 */ sw $t6, 0x40($t7) +/* 058994 7F023E64 8FBF0014 */ lw $ra, 0x14($sp) +/* 058998 7F023E68 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05899C 7F023E6C 03E00008 */ jr $ra +/* 0589A0 7F023E70 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_kneel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_kneel +/* 0589A4 7F023E74 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0589A8 7F023E78 AFBF0024 */ sw $ra, 0x24($sp) +/* 0589AC 7F023E7C AFB00020 */ sw $s0, 0x20($sp) +/* 0589B0 7F023E80 00808025 */ move $s0, $a0 +/* 0589B4 7F023E84 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0589B8 7F023E88 24050001 */ li $a1, 1 +/* 0589BC 7F023E8C AFA20034 */ sw $v0, 0x34($sp) +/* 0589C0 7F023E90 02002025 */ move $a0, $s0 +/* 0589C4 7F023E94 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0589C8 7F023E98 00002825 */ move $a1, $zero +/* 0589CC 7F023E9C AFA20030 */ sw $v0, 0x30($sp) +/* 0589D0 7F023EA0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0589D4 7F023EA4 02002025 */ move $a0, $s0 +/* 0589D8 7F023EA8 8FA40034 */ lw $a0, 0x34($sp) +/* 0589DC 7F023EAC 8FAE0030 */ lw $t6, 0x30($sp) +/* 0589E0 7F023EB0 10800003 */ beqz $a0, .L7F023EC0 +/* 0589E4 7F023EB4 00000000 */ nop +/* 0589E8 7F023EB8 15C0000D */ bnez $t6, .L7F023EF0 +/* 0589EC 7F023EBC 00000000 */ nop +.L7F023EC0: +/* 0589F0 7F023EC0 14800003 */ bnez $a0, .L7F023ED0 +/* 0589F4 7F023EC4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0589F8 7F023EC8 11E00009 */ beqz $t7, .L7F023EF0 +/* 0589FC 7F023ECC 00000000 */ nop +.L7F023ED0: +/* 058A00 7F023ED0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 058A04 7F023ED4 00000000 */ nop +/* 058A08 7F023ED8 14400005 */ bnez $v0, .L7F023EF0 +/* 058A0C 7F023EDC 00000000 */ nop +/* 058A10 7F023EE0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 058A14 7F023EE4 8FA40030 */ lw $a0, 0x30($sp) +/* 058A18 7F023EE8 1040001C */ beqz $v0, .L7F023F5C +/* 058A1C 7F023EEC 8FA90030 */ lw $t1, 0x30($sp) +.L7F023EF0: +/* 058A20 7F023EF0 0C002914 */ jal get_random_value +/* 058A24 7F023EF4 00000000 */ nop +/* 058A28 7F023EF8 30580001 */ andi $t8, $v0, 1 +/* 058A2C 7F023EFC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058A30 7F023F00 AFB8002C */ sw $t8, 0x2c($sp) +/* 058A34 7F023F04 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058A38 7F023F08 02002025 */ move $a0, $s0 +/* 058A3C 7F023F0C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058A40 7F023F10 3C053F00 */ lui $a1, 0x3f00 +/* 058A44 7F023F14 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 058A48 7F023F18 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058A4C 7F023F1C 44812000 */ mtc1 $at, $f4 +/* 058A50 7F023F20 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 058A54 7F023F24 3C080000 */ lui $t0, %hi(0x00006C18) # $t0, 0 +/* 058A58 7F023F28 25086C18 */ addiu $t0, %lo(0x00006C18) # addiu $t0, $t0, 0x6c18 +/* 058A5C 7F023F2C 8E04001C */ lw $a0, 0x1c($s0) +/* 058A60 7F023F30 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058A64 7F023F34 8FA6002C */ lw $a2, 0x2c($sp) +/* 058A68 7F023F38 24070000 */ li $a3, 0 +/* 058A6C 7F023F3C E7A40014 */ swc1 $f4, 0x14($sp) +/* 058A70 7F023F40 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058A74 7F023F44 03282821 */ addu $a1, $t9, $t0 +/* 058A78 7F023F48 8E04001C */ lw $a0, 0x1c($s0) +/* 058A7C 7F023F4C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058A80 7F023F50 3C0541E0 */ lui $a1, 0x41e0 +/* 058A84 7F023F54 1000001C */ b .L7F023FC8 +/* 058A88 7F023F58 240E0002 */ li $t6, 2 +.L7F023F5C: +/* 058A8C 7F023F5C 15200002 */ bnez $t1, .L7F023F68 +/* 058A90 7F023F60 8FAA0034 */ lw $t2, 0x34($sp) +/* 058A94 7F023F64 11400017 */ beqz $t2, .L7F023FC4 +.L7F023F68: +/* 058A98 7F023F68 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058A9C 7F023F6C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058AA0 7F023F70 02002025 */ move $a0, $s0 +/* 058AA4 7F023F74 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058AA8 7F023F78 3C053F00 */ lui $a1, 0x3f00 +/* 058AAC 7F023F7C 8FA60034 */ lw $a2, 0x34($sp) +/* 058AB0 7F023F80 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 058AB4 7F023F84 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058AB8 7F023F88 44813000 */ mtc1 $at, $f6 +/* 058ABC 7F023F8C 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 058AC0 7F023F90 3C0C0000 */ lui $t4, %hi(0x00000B84) # $t4, 0 +/* 058AC4 7F023F94 258C0B84 */ addiu $t4, %lo(0x00000B84) # addiu $t4, $t4, 0xb84 +/* 058AC8 7F023F98 8E04001C */ lw $a0, 0x1c($s0) +/* 058ACC 7F023F9C 0006682B */ sltu $t5, $zero, $a2 +/* 058AD0 7F023FA0 01A03025 */ move $a2, $t5 +/* 058AD4 7F023FA4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058AD8 7F023FA8 24070000 */ li $a3, 0 +/* 058ADC 7F023FAC E7A60014 */ swc1 $f6, 0x14($sp) +/* 058AE0 7F023FB0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058AE4 7F023FB4 016C2821 */ addu $a1, $t3, $t4 +/* 058AE8 7F023FB8 8E04001C */ lw $a0, 0x1c($s0) +/* 058AEC 7F023FBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058AF0 7F023FC0 3C0541D8 */ lui $a1, 0x41d8 +.L7F023FC4: +/* 058AF4 7F023FC4 240E0002 */ li $t6, 2 +.L7F023FC8: +/* 058AF8 7F023FC8 A20E0007 */ sb $t6, 7($s0) +/* 058AFC 7F023FCC A2000008 */ sb $zero, 8($s0) +/* 058B00 7F023FD0 8FBF0024 */ lw $ra, 0x24($sp) +/* 058B04 7F023FD4 8FB00020 */ lw $s0, 0x20($sp) +/* 058B08 7F023FD8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058B0C 7F023FDC 03E00008 */ jr $ra +/* 058B10 7F023FE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void perform_animation_for_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel perform_animation_for_actor +/* 058B14 7F023FE4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058B18 7F023FE8 AFB10020 */ sw $s1, 0x20($sp) +/* 058B1C 7F023FEC 93B10043 */ lbu $s1, 0x43($sp) +/* 058B20 7F023FF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 058B24 7F023FF4 AFB0001C */ sw $s0, 0x1c($sp) +/* 058B28 7F023FF8 44810000 */ mtc1 $at, $f0 +/* 058B2C 7F023FFC 322E0080 */ andi $t6, $s1, 0x80 +/* 058B30 7F024000 00808025 */ move $s0, $a0 +/* 058B34 7F024004 AFBF0024 */ sw $ra, 0x24($sp) +/* 058B38 7F024008 AFA50034 */ sw $a1, 0x34($sp) +/* 058B3C 7F02400C AFA60038 */ sw $a2, 0x38($sp) +/* 058B40 7F024010 11C00004 */ beqz $t6, .L7F024024 +/* 058B44 7F024014 AFA7003C */ sw $a3, 0x3c($sp) +/* 058B48 7F024018 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 058B4C 7F02401C 44810000 */ mtc1 $at, $f0 +/* 058B50 7F024020 00000000 */ nop +.L7F024024: +/* 058B54 7F024024 02002025 */ move $a0, $s0 +/* 058B58 7F024028 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058B5C 7F02402C E7A00028 */ swc1 $f0, 0x28($sp) +/* 058B60 7F024030 8FA80038 */ lw $t0, 0x38($sp) +/* 058B64 7F024034 8FA90044 */ lw $t1, 0x44($sp) +/* 058B68 7F024038 8FAF0034 */ lw $t7, 0x34($sp) +/* 058B6C 7F02403C 44882000 */ mtc1 $t0, $f4 +/* 058B70 7F024040 44893000 */ mtc1 $t1, $f6 +/* 058B74 7F024044 C7A00028 */ lwc1 $f0, 0x28($sp) +/* 058B78 7F024048 46802120 */ cvt.s.w $f4, $f4 +/* 058B7C 7F02404C 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 058B80 7F024050 32260001 */ andi $a2, $s1, 1 +/* 058B84 7F024054 000FC080 */ sll $t8, $t7, 2 +/* 058B88 7F024058 00B82821 */ addu $a1, $a1, $t8 +/* 058B8C 7F02405C 46803220 */ cvt.s.w $f8, $f6 +/* 058B90 7F024060 0006C82B */ sltu $t9, $zero, $a2 +/* 058B94 7F024064 44072000 */ mfc1 $a3, $f4 +/* 058B98 7F024068 8E04001C */ lw $a0, 0x1c($s0) +/* 058B9C 7F02406C 03203025 */ move $a2, $t9 +/* 058BA0 7F024070 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 058BA4 7F024074 E7A80014 */ swc1 $f8, 0x14($sp) +/* 058BA8 7F024078 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058BAC 7F02407C E7A00010 */ swc1 $f0, 0x10($sp) +/* 058BB0 7F024080 8FA2003C */ lw $v0, 0x3c($sp) +/* 058BB4 7F024084 04420008 */ bltzl $v0, .L7F0240A8 +/* 058BB8 7F024088 322A0020 */ andi $t2, $s1, 0x20 +/* 058BBC 7F02408C 44825000 */ mtc1 $v0, $f10 +/* 058BC0 7F024090 8E04001C */ lw $a0, 0x1c($s0) +/* 058BC4 7F024094 468052A0 */ cvt.s.w $f10, $f10 +/* 058BC8 7F024098 44055000 */ mfc1 $a1, $f10 +/* 058BCC 7F02409C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058BD0 7F0240A0 00000000 */ nop +/* 058BD4 7F0240A4 322A0020 */ andi $t2, $s1, 0x20 +.L7F0240A8: +/* 058BD8 7F0240A8 5140000A */ beql $t2, $zero, .L7F0240D4 +/* 058BDC 7F0240AC 8E0B0014 */ lw $t3, 0x14($s0) +/* 058BE0 7F0240B0 8E04001C */ lw $a0, 0x1c($s0) +/* 058BE4 7F0240B4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 058BE8 7F0240B8 44819000 */ mtc1 $at, $f18 +/* 058BEC 7F0240BC C49000B8 */ lwc1 $f16, 0xb8($a0) +/* 058BF0 7F0240C0 46128102 */ mul.s $f4, $f16, $f18 +/* 058BF4 7F0240C4 44052000 */ mfc1 $a1, $f4 +/* 058BF8 7F0240C8 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 058BFC 7F0240CC 00000000 */ nop +/* 058C00 7F0240D0 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0240D4: +/* 058C04 7F0240D4 3C01FDFF */ lui $at, (0xFDFFFFFF >> 16) # lui $at, 0xfdff +/* 058C08 7F0240D8 3421FFFF */ ori $at, (0xFDFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 058C0C 7F0240DC 01616024 */ and $t4, $t3, $at +/* 058C10 7F0240E0 AE0C0014 */ sw $t4, 0x14($s0) +/* 058C14 7F0240E4 322E0002 */ andi $t6, $s1, 2 +/* 058C18 7F0240E8 32380004 */ andi $t8, $s1, 4 +/* 058C1C 7F0240EC 32280008 */ andi $t0, $s1, 8 +/* 058C20 7F0240F0 32220010 */ andi $v0, $s1, 0x10 +/* 058C24 7F0240F4 322B0040 */ andi $t3, $s1, 0x40 +/* 058C28 7F0240F8 240D0003 */ li $t5, 3 +/* 058C2C 7F0240FC 000E782B */ sltu $t7, $zero, $t6 +/* 058C30 7F024100 0018C82B */ sltu $t9, $zero, $t8 +/* 058C34 7F024104 0008482B */ sltu $t1, $zero, $t0 +/* 058C38 7F024108 0002502B */ sltu $t2, $zero, $v0 +/* 058C3C 7F02410C 000B602B */ sltu $t4, $zero, $t3 +/* 058C40 7F024110 A20D0007 */ sb $t5, 7($s0) +/* 058C44 7F024114 AE0F002C */ sw $t7, 0x2c($s0) +/* 058C48 7F024118 AE190030 */ sw $t9, 0x30($s0) +/* 058C4C 7F02411C AE090034 */ sw $t1, 0x34($s0) +/* 058C50 7F024120 AE0A0038 */ sw $t2, 0x38($s0) +/* 058C54 7F024124 11400004 */ beqz $t2, .L7F024138 +/* 058C58 7F024128 AE0C003C */ sw $t4, 0x3c($s0) +/* 058C5C 7F02412C 8FAD0044 */ lw $t5, 0x44($sp) +/* 058C60 7F024130 10000002 */ b .L7F02413C +/* 058C64 7F024134 A20D0008 */ sb $t5, 8($s0) +.L7F024138: +/* 058C68 7F024138 A2000008 */ sb $zero, 8($s0) +.L7F02413C: +/* 058C6C 7F02413C 8FBF0024 */ lw $ra, 0x24($sp) +/* 058C70 7F024140 8FB0001C */ lw $s0, 0x1c($sp) +/* 058C74 7F024144 8FB10020 */ lw $s1, 0x20($sp) +/* 058C78 7F024148 03E00008 */ jr $ra +/* 058C7C 7F02414C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024150(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024150 +/* 058C80 7F024150 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058C84 7F024154 AFBF0024 */ sw $ra, 0x24($sp) +/* 058C88 7F024158 AFB00020 */ sw $s0, 0x20($sp) +/* 058C8C 7F02415C 00808025 */ move $s0, $a0 +/* 058C90 7F024160 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058C94 7F024164 24050001 */ li $a1, 1 +/* 058C98 7F024168 02002025 */ move $a0, $s0 +/* 058C9C 7F02416C 00002825 */ move $a1, $zero +/* 058CA0 7F024170 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058CA4 7F024174 AFA20034 */ sw $v0, 0x34($sp) +/* 058CA8 7F024178 8FA30034 */ lw $v1, 0x34($sp) +/* 058CAC 7F02417C 00003025 */ move $a2, $zero +/* 058CB0 7F024180 10600005 */ beqz $v1, .L7F024198 +/* 058CB4 7F024184 00000000 */ nop +/* 058CB8 7F024188 14400003 */ bnez $v0, .L7F024198 +/* 058CBC 7F02418C 00000000 */ nop +/* 058CC0 7F024190 1000000C */ b .L7F0241C4 +/* 058CC4 7F024194 24060001 */ li $a2, 1 +.L7F024198: +/* 058CC8 7F024198 10600003 */ beqz $v1, .L7F0241A8 +/* 058CCC 7F02419C 00000000 */ nop +/* 058CD0 7F0241A0 14400005 */ bnez $v0, .L7F0241B8 +/* 058CD4 7F0241A4 00000000 */ nop +.L7F0241A8: +/* 058CD8 7F0241A8 54600007 */ bnezl $v1, .L7F0241C8 +/* 058CDC 7F0241AC 02002025 */ move $a0, $s0 +/* 058CE0 7F0241B0 54400005 */ bnezl $v0, .L7F0241C8 +/* 058CE4 7F0241B4 02002025 */ move $a0, $s0 +.L7F0241B8: +/* 058CE8 7F0241B8 0C002914 */ jal get_random_value +/* 058CEC 7F0241BC 00000000 */ nop +/* 058CF0 7F0241C0 30460001 */ andi $a2, $v0, 1 +.L7F0241C4: +/* 058CF4 7F0241C4 02002025 */ move $a0, $s0 +.L7F0241C8: +/* 058CF8 7F0241C8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058CFC 7F0241CC AFA6002C */ sw $a2, 0x2c($sp) +/* 058D00 7F0241D0 8FA6002C */ lw $a2, 0x2c($sp) +/* 058D04 7F0241D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058D08 7F0241D8 44812000 */ mtc1 $at, $f4 +/* 058D0C 7F0241DC 240E0013 */ li $t6, 19 +/* 058D10 7F0241E0 A20E0007 */ sb $t6, 7($s0) +/* 058D14 7F0241E4 A2000008 */ sb $zero, 8($s0) +/* 058D18 7F0241E8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058D1C 7F0241EC 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 058D20 7F0241F0 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 058D24 7F0241F4 44813000 */ mtc1 $at, $f6 +/* 058D28 7F0241F8 3C180000 */ lui $t8, %hi(0x00005744) # $t8, 0 +/* 058D2C 7F0241FC 27185744 */ addiu $t8, %lo(0x00005744) # addiu $t8, $t8, 0x5744 +/* 058D30 7F024200 8E04001C */ lw $a0, 0x1c($s0) +/* 058D34 7F024204 3C074220 */ lui $a3, 0x4220 +/* 058D38 7F024208 E7A40010 */ swc1 $f4, 0x10($sp) +/* 058D3C 7F02420C 01F82821 */ addu $a1, $t7, $t8 +/* 058D40 7F024210 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058D44 7F024214 E7A60014 */ swc1 $f6, 0x14($sp) +/* 058D48 7F024218 8E04001C */ lw $a0, 0x1c($s0) +/* 058D4C 7F02421C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058D50 7F024220 3C0542A4 */ lui $a1, 0x42a4 +/* 058D54 7F024224 8FBF0024 */ lw $ra, 0x24($sp) +/* 058D58 7F024228 8FB00020 */ lw $s0, 0x20($sp) +/* 058D5C 7F02422C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058D60 7F024230 03E00008 */ jr $ra +/* 058D64 7F024234 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void throw_weapon_in_guard_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel throw_weapon_in_guard_hand +/* 058D68 7F024238 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 058D6C 7F02423C AFBF0024 */ sw $ra, 0x24($sp) +/* 058D70 7F024240 AFB00020 */ sw $s0, 0x20($sp) +/* 058D74 7F024244 00808025 */ move $s0, $a0 +/* 058D78 7F024248 AFA5002C */ sw $a1, 0x2c($sp) +/* 058D7C 7F02424C AFA60030 */ sw $a2, 0x30($sp) +/* 058D80 7F024250 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058D84 7F024254 AFA70034 */ sw $a3, 0x34($sp) +/* 058D88 7F024258 240E0014 */ li $t6, 20 +/* 058D8C 7F02425C A20E0007 */ sb $t6, 7($s0) +/* 058D90 7F024260 A2000008 */ sb $zero, 8($s0) +/* 058D94 7F024264 8FAF0034 */ lw $t7, 0x34($sp) +/* 058D98 7F024268 02002025 */ move $a0, $s0 +/* 058D9C 7F02426C 3C053F00 */ lui $a1, 0x3f00 +/* 058DA0 7F024270 11E00017 */ beqz $t7, .L7F0242D0 +/* 058DA4 7F024274 3C063F4C */ lui $a2, 0x3f4c +/* 058DA8 7F024278 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058DAC 7F02427C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058DB0 7F024280 02002025 */ move $a0, $s0 +/* 058DB4 7F024284 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058DB8 7F024288 3C053F00 */ lui $a1, 0x3f00 +/* 058DBC 7F02428C 8FA60030 */ lw $a2, 0x30($sp) +/* 058DC0 7F024290 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 058DC4 7F024294 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058DC8 7F024298 44812000 */ mtc1 $at, $f4 +/* 058DCC 7F02429C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 058DD0 7F0242A0 3C190000 */ lui $t9, %hi(0x00005964) # $t9, 0 +/* 058DD4 7F0242A4 27395964 */ addiu $t9, %lo(0x00005964) # addiu $t9, $t9, 0x5964 +/* 058DD8 7F0242A8 8E04001C */ lw $a0, 0x1c($s0) +/* 058DDC 7F0242AC 0006402B */ sltu $t0, $zero, $a2 +/* 058DE0 7F0242B0 01003025 */ move $a2, $t0 +/* 058DE4 7F0242B4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058DE8 7F0242B8 24070000 */ li $a3, 0 +/* 058DEC 7F0242BC E7A40014 */ swc1 $f4, 0x14($sp) +/* 058DF0 7F0242C0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058DF4 7F0242C4 03192821 */ addu $a1, $t8, $t9 +/* 058DF8 7F0242C8 10000013 */ b .L7F024318 +/* 058DFC 7F0242CC 8E04001C */ lw $a0, 0x1c($s0) +.L7F0242D0: +/* 058E00 7F0242D0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058E04 7F0242D4 34C6CCCD */ ori $a2, $a2, 0xcccd +/* 058E08 7F0242D8 8FA60030 */ lw $a2, 0x30($sp) +/* 058E0C 7F0242DC 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 058E10 7F0242E0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058E14 7F0242E4 44813000 */ mtc1 $at, $f6 +/* 058E18 7F0242E8 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 058E1C 7F0242EC 3C0A0000 */ lui $t2, %hi(0x00005964) # $t2, 0 +/* 058E20 7F0242F0 254A5964 */ addiu $t2, %lo(0x00005964) # addiu $t2, $t2, 0x5964 +/* 058E24 7F0242F4 8E04001C */ lw $a0, 0x1c($s0) +/* 058E28 7F0242F8 0006582B */ sltu $t3, $zero, $a2 +/* 058E2C 7F0242FC 01603025 */ move $a2, $t3 +/* 058E30 7F024300 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058E34 7F024304 3C0742A8 */ lui $a3, 0x42a8 +/* 058E38 7F024308 E7A60014 */ swc1 $f6, 0x14($sp) +/* 058E3C 7F02430C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058E40 7F024310 012A2821 */ addu $a1, $t1, $t2 +/* 058E44 7F024314 8E04001C */ lw $a0, 0x1c($s0) +.L7F024318: +/* 058E48 7F024318 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058E4C 7F02431C 3C054341 */ lui $a1, 0x4341 +/* 058E50 7F024320 8FBF0024 */ lw $ra, 0x24($sp) +/* 058E54 7F024324 8FB00020 */ lw $s0, 0x20($sp) +/* 058E58 7F024328 27BD0028 */ addiu $sp, $sp, 0x28 +/* 058E5C 7F02432C 03E00008 */ jr $ra +/* 058E60 7F024330 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024334 +/* 058E64 7F024334 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058E68 7F024338 AFBF0024 */ sw $ra, 0x24($sp) +/* 058E6C 7F02433C AFB00020 */ sw $s0, 0x20($sp) +/* 058E70 7F024340 AFA5003C */ sw $a1, 0x3c($sp) +/* 058E74 7F024344 00808025 */ move $s0, $a0 +/* 058E78 7F024348 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058E7C 7F02434C 24050001 */ li $a1, 1 +/* 058E80 7F024350 02002025 */ move $a0, $s0 +/* 058E84 7F024354 00002825 */ move $a1, $zero +/* 058E88 7F024358 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058E8C 7F02435C AFA20034 */ sw $v0, 0x34($sp) +/* 058E90 7F024360 8FA30034 */ lw $v1, 0x34($sp) +/* 058E94 7F024364 AFA0002C */ sw $zero, 0x2c($sp) +/* 058E98 7F024368 10600005 */ beqz $v1, .L7F024380 +/* 058E9C 7F02436C 00000000 */ nop +/* 058EA0 7F024370 14400003 */ bnez $v0, .L7F024380 +/* 058EA4 7F024374 240E0001 */ li $t6, 1 +/* 058EA8 7F024378 1000000D */ b .L7F0243B0 +/* 058EAC 7F02437C AFAE002C */ sw $t6, 0x2c($sp) +.L7F024380: +/* 058EB0 7F024380 10600003 */ beqz $v1, .L7F024390 +/* 058EB4 7F024384 00000000 */ nop +/* 058EB8 7F024388 14400005 */ bnez $v0, .L7F0243A0 +/* 058EBC 7F02438C 00000000 */ nop +.L7F024390: +/* 058EC0 7F024390 54600008 */ bnezl $v1, .L7F0243B4 +/* 058EC4 7F024394 3C053F19 */ lui $a1, 0x3f19 +/* 058EC8 7F024398 54400006 */ bnezl $v0, .L7F0243B4 +/* 058ECC 7F02439C 3C053F19 */ lui $a1, 0x3f19 +.L7F0243A0: +/* 058ED0 7F0243A0 0C002914 */ jal get_random_value +/* 058ED4 7F0243A4 00000000 */ nop +/* 058ED8 7F0243A8 304F0001 */ andi $t7, $v0, 1 +/* 058EDC 7F0243AC AFAF002C */ sw $t7, 0x2c($sp) +.L7F0243B0: +/* 058EE0 7F0243B0 3C053F19 */ lui $a1, (0x3F19999A >> 16) # lui $a1, 0x3f19 +.L7F0243B4: +/* 058EE4 7F0243B4 3C063F75 */ lui $a2, (0x3F75C290 >> 16) # lui $a2, 0x3f75 +/* 058EE8 7F0243B8 34C6C290 */ ori $a2, (0x3F75C290 & 0xFFFF) # ori $a2, $a2, 0xc290 +/* 058EEC 7F0243BC 34A5999A */ ori $a1, (0x3F19999A & 0xFFFF) # ori $a1, $a1, 0x999a +/* 058EF0 7F0243C0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058EF4 7F0243C4 02002025 */ move $a0, $s0 +/* 058EF8 7F0243C8 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 058EFC 7F0243CC 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 058F00 7F0243D0 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 058F04 7F0243D4 3C190000 */ lui $t9, %hi(0x00005D10) # $t9, 0 +/* 058F08 7F0243D8 27395D10 */ addiu $t9, %lo(0x00005D10) # addiu $t9, $t9, 0x5d10 +/* 058F0C 7F0243DC 8E04001C */ lw $a0, 0x1c($s0) +/* 058F10 7F0243E0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058F14 7F0243E4 8FA6002C */ lw $a2, 0x2c($sp) +/* 058F18 7F0243E8 3C074120 */ lui $a3, 0x4120 +/* 058F1C 7F0243EC 03192821 */ addu $a1, $t8, $t9 +/* 058F20 7F0243F0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058F24 7F0243F4 E7A40014 */ swc1 $f4, 0x14($sp) +/* 058F28 7F0243F8 8E04001C */ lw $a0, 0x1c($s0) +/* 058F2C 7F0243FC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058F30 7F024400 3C054250 */ lui $a1, 0x4250 +/* 058F34 7F024404 8FBF0024 */ lw $ra, 0x24($sp) +/* 058F38 7F024408 8FB00020 */ lw $s0, 0x20($sp) +/* 058F3C 7F02440C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058F40 7F024410 03E00008 */ jr $ra +/* 058F44 7F024414 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_shuffle_feet(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DA0 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DA4 +.word 0x40c37a15 /*6.1086526*/ +.text +glabel actor_shuffle_feet +/* 058F48 7F024418 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058F4C 7F02441C AFBF001C */ sw $ra, 0x1c($sp) +/* 058F50 7F024420 AFB00018 */ sw $s0, 0x18($sp) +/* 058F54 7F024424 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 058F58 7F024428 00808025 */ move $s0, $a0 +/* 058F5C 7F02442C 3C018005 */ lui $at, %hi(D_80051DA0) +/* 058F60 7F024430 C4241DA0 */ lwc1 $f4, %lo(D_80051DA0)($at) +/* 058F64 7F024434 3C018005 */ lui $at, %hi(D_80051DA4) +/* 058F68 7F024438 02002025 */ move $a0, $s0 +/* 058F6C 7F02443C 4604003C */ c.lt.s $f0, $f4 +/* 058F70 7F024440 00000000 */ nop +/* 058F74 7F024444 45010006 */ bc1t .L7F024460 +/* 058F78 7F024448 00000000 */ nop +/* 058F7C 7F02444C C4261DA4 */ lwc1 $f6, %lo(D_80051DA4)($at) +/* 058F80 7F024450 4600303C */ c.lt.s $f6, $f0 +/* 058F84 7F024454 00000000 */ nop +/* 058F88 7F024458 45000009 */ bc1f .L7F024480 +/* 058F8C 7F02445C 00000000 */ nop +.L7F024460: +/* 058F90 7F024460 0FC090CD */ jal sub_GAME_7F024334 +/* 058F94 7F024464 3C054180 */ lui $a1, 0x4180 +/* 058F98 7F024468 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058F9C 7F02446C 02002025 */ move $a0, $s0 +/* 058FA0 7F024470 240E0012 */ li $t6, 18 +/* 058FA4 7F024474 A20E0007 */ sb $t6, 7($s0) +/* 058FA8 7F024478 10000007 */ b .L7F024498 +/* 058FAC 7F02447C A2000008 */ sb $zero, 8($s0) +.L7F024480: +/* 058FB0 7F024480 0FC0A717 */ jal check_if_actor_stationary +/* 058FB4 7F024484 02002025 */ move $a0, $s0 +/* 058FB8 7F024488 54400004 */ bnezl $v0, .L7F02449C +/* 058FBC 7F02448C 8FBF001C */ lw $ra, 0x1c($sp) +/* 058FC0 7F024490 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 058FC4 7F024494 02002025 */ move $a0, $s0 +.L7F024498: +/* 058FC8 7F024498 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02449C: +/* 058FCC 7F02449C 8FB00018 */ lw $s0, 0x18($sp) +/* 058FD0 7F0244A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 058FD4 7F0244A4 03E00008 */ jr $ra +/* 058FD8 7F0244A8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_fawn_on_shoulder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_fawn_on_shoulder +/* 058FDC 7F0244AC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058FE0 7F0244B0 AFBF0024 */ sw $ra, 0x24($sp) +/* 058FE4 7F0244B4 AFB00020 */ sw $s0, 0x20($sp) +/* 058FE8 7F0244B8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058FEC 7F0244BC 00808025 */ move $s0, $a0 +/* 058FF0 7F0244C0 240E0012 */ li $t6, 18 +/* 058FF4 7F0244C4 A20E0007 */ sb $t6, 7($s0) +/* 058FF8 7F0244C8 0C002914 */ jal get_random_value +/* 058FFC 7F0244CC A2000008 */ sb $zero, 8($s0) +/* 059000 7F0244D0 3C053EB3 */ lui $a1, (0x3EB33333 >> 16) # lui $a1, 0x3eb3 +/* 059004 7F0244D4 3C063F0F */ lui $a2, (0x3F0F5C29 >> 16) # lui $a2, 0x3f0f +/* 059008 7F0244D8 34C65C29 */ ori $a2, (0x3F0F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 05900C 7F0244DC 34A53333 */ ori $a1, (0x3EB33333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 059010 7F0244E0 AFA20028 */ sw $v0, 0x28($sp) +/* 059014 7F0244E4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059018 7F0244E8 02002025 */ move $a0, $s0 +/* 05901C 7F0244EC 8FA60028 */ lw $a2, 0x28($sp) +/* 059020 7F0244F0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059024 7F0244F4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059028 7F0244F8 44812000 */ mtc1 $at, $f4 +/* 05902C 7F0244FC 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059030 7F024500 3C180000 */ lui $t8, %hi(0x00004384) # $t8, 0 +/* 059034 7F024504 27184384 */ addiu $t8, %lo(0x00004384) # addiu $t8, $t8, 0x4384 +/* 059038 7F024508 8E04001C */ lw $a0, 0x1c($s0) +/* 05903C 7F02450C 30D90001 */ andi $t9, $a2, 1 +/* 059040 7F024510 03203025 */ move $a2, $t9 +/* 059044 7F024514 E7A00010 */ swc1 $f0, 0x10($sp) +/* 059048 7F024518 24070000 */ li $a3, 0 +/* 05904C 7F02451C E7A40014 */ swc1 $f4, 0x14($sp) +/* 059050 7F024520 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059054 7F024524 01F82821 */ addu $a1, $t7, $t8 +/* 059058 7F024528 8E04001C */ lw $a0, 0x1c($s0) +/* 05905C 7F02452C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059060 7F024530 3C0540E0 */ lui $a1, 0x40e0 +/* 059064 7F024534 8FBF0024 */ lw $ra, 0x24($sp) +/* 059068 7F024538 8FB00020 */ lw $s0, 0x20($sp) +/* 05906C 7F02453C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059070 7F024540 03E00008 */ jr $ra +/* 059074 7F024544 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_look_flustered(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DA8 +.word 0x3f19999a /*0.60000002*/ +.text +glabel actor_look_flustered +/* 059078 7F024548 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05907C 7F02454C AFBF0024 */ sw $ra, 0x24($sp) +/* 059080 7F024550 AFB00020 */ sw $s0, 0x20($sp) +/* 059084 7F024554 0C002914 */ jal get_random_value +/* 059088 7F024558 00808025 */ move $s0, $a0 +/* 05908C 7F02455C 24010003 */ li $at, 3 +/* 059090 7F024560 0041001B */ divu $zero, $v0, $at +/* 059094 7F024564 00007010 */ mfhi $t6 +/* 059098 7F024568 AFAE002C */ sw $t6, 0x2c($sp) +/* 05909C 7F02456C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0590A0 7F024570 02002025 */ move $a0, $s0 +/* 0590A4 7F024574 240F0012 */ li $t7, 18 +/* 0590A8 7F024578 A20F0007 */ sb $t7, 7($s0) +/* 0590AC 7F02457C 0C002914 */ jal get_random_value +/* 0590B0 7F024580 A2000008 */ sb $zero, 8($s0) +/* 0590B4 7F024584 3C018005 */ lui $at, %hi(D_80051DA8) +/* 0590B8 7F024588 C4241DA8 */ lwc1 $f4, %lo(D_80051DA8)($at) +/* 0590BC 7F02458C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0590C0 7F024590 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0590C4 7F024594 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0590C8 7F024598 44813000 */ mtc1 $at, $f6 +/* 0590CC 7F02459C 3C190000 */ lui $t9, %hi(0x00005EF0) # $t9, 0 +/* 0590D0 7F0245A0 27395EF0 */ addiu $t9, %lo(0x00005EF0) # addiu $t9, $t9, 0x5ef0 +/* 0590D4 7F0245A4 8E04001C */ lw $a0, 0x1c($s0) +/* 0590D8 7F0245A8 30460001 */ andi $a2, $v0, 1 +/* 0590DC 7F0245AC 3C074188 */ lui $a3, 0x4188 +/* 0590E0 7F0245B0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0590E4 7F0245B4 03192821 */ addu $a1, $t8, $t9 +/* 0590E8 7F0245B8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0590EC 7F0245BC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0590F0 7F0245C0 8FA2002C */ lw $v0, 0x2c($sp) +/* 0590F4 7F0245C4 02002025 */ move $a0, $s0 +/* 0590F8 7F0245C8 3C054218 */ lui $a1, 0x4218 +/* 0590FC 7F0245CC 14400008 */ bnez $v0, .L7F0245F0 +/* 059100 7F0245D0 24010001 */ li $at, 1 +/* 059104 7F0245D4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059108 7F0245D8 3C064100 */ lui $a2, 0x4100 +/* 05910C 7F0245DC 44050000 */ mfc1 $a1, $f0 +/* 059110 7F0245E0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059114 7F0245E4 8E04001C */ lw $a0, 0x1c($s0) +/* 059118 7F0245E8 10000013 */ b .L7F024638 +/* 05911C 7F0245EC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0245F0: +/* 059120 7F0245F0 1441000A */ bne $v0, $at, .L7F02461C +/* 059124 7F0245F4 02002025 */ move $a0, $s0 +/* 059128 7F0245F8 02002025 */ move $a0, $s0 +/* 05912C 7F0245FC 3C054284 */ lui $a1, 0x4284 +/* 059130 7F024600 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059134 7F024604 3C064100 */ lui $a2, 0x4100 +/* 059138 7F024608 44050000 */ mfc1 $a1, $f0 +/* 05913C 7F02460C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059140 7F024610 8E04001C */ lw $a0, 0x1c($s0) +/* 059144 7F024614 10000008 */ b .L7F024638 +/* 059148 7F024618 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02461C: +/* 05914C 7F02461C 3C0542C0 */ lui $a1, 0x42c0 +/* 059150 7F024620 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059154 7F024624 3C064100 */ lui $a2, 0x4100 +/* 059158 7F024628 44050000 */ mfc1 $a1, $f0 +/* 05915C 7F02462C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059160 7F024630 8E04001C */ lw $a0, 0x1c($s0) +/* 059164 7F024634 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024638: +/* 059168 7F024638 8FB00020 */ lw $s0, 0x20($sp) +/* 05916C 7F02463C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059170 7F024640 03E00008 */ jr $ra +/* 059174 7F024644 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_throw_weapon_surrender(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_throw_weapon_surrender +/* 059178 7F024648 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05917C 7F02464C AFBF0024 */ sw $ra, 0x24($sp) +/* 059180 7F024650 AFB00020 */ sw $s0, 0x20($sp) +/* 059184 7F024654 808E0007 */ lb $t6, 7($a0) +/* 059188 7F024658 24010010 */ li $at, 16 +/* 05918C 7F02465C 00808025 */ move $s0, $a0 +/* 059190 7F024660 51C10051 */ beql $t6, $at, .L7F0247A8 +/* 059194 7F024664 8FBF0024 */ lw $ra, 0x24($sp) +/* 059198 7F024668 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05919C 7F02466C 24050001 */ li $a1, 1 +/* 0591A0 7F024670 AFA2002C */ sw $v0, 0x2c($sp) +/* 0591A4 7F024674 02002025 */ move $a0, $s0 +/* 0591A8 7F024678 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0591AC 7F02467C 00002825 */ move $a1, $zero +/* 0591B0 7F024680 AFA20028 */ sw $v0, 0x28($sp) +/* 0591B4 7F024684 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0591B8 7F024688 02002025 */ move $a0, $s0 +/* 0591BC 7F02468C 240F0010 */ li $t7, 16 +/* 0591C0 7F024690 A20F0007 */ sb $t7, 7($s0) +/* 0591C4 7F024694 8FB80028 */ lw $t8, 0x28($sp) +/* 0591C8 7F024698 8FB9002C */ lw $t9, 0x2c($sp) +/* 0591CC 7F02469C 17000003 */ bnez $t8, .L7F0246AC +/* 0591D0 7F0246A0 00000000 */ nop +/* 0591D4 7F0246A4 13200026 */ beqz $t9, .L7F024740 +/* 0591D8 7F0246A8 00000000 */ nop +.L7F0246AC: +/* 0591DC 7F0246AC 0C002914 */ jal get_random_value +/* 0591E0 7F0246B0 00000000 */ nop +/* 0591E4 7F0246B4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0591E8 7F0246B8 44812000 */ mtc1 $at, $f4 +/* 0591EC 7F0246BC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0591F0 7F0246C0 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 0591F4 7F0246C4 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 0591F8 7F0246C8 44813000 */ mtc1 $at, $f6 +/* 0591FC 7F0246CC 3C090000 */ lui $t1, %hi(0x00004504) # $t1, 0 +/* 059200 7F0246D0 25294504 */ addiu $t1, %lo(0x00004504) # addiu $t1, $t1, 0x4504 +/* 059204 7F0246D4 8E04001C */ lw $a0, 0x1c($s0) +/* 059208 7F0246D8 30460001 */ andi $a2, $v0, 1 +/* 05920C 7F0246DC 24070000 */ li $a3, 0 +/* 059210 7F0246E0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 059214 7F0246E4 01092821 */ addu $a1, $t0, $t1 +/* 059218 7F0246E8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05921C 7F0246EC E7A60014 */ swc1 $f6, 0x14($sp) +/* 059220 7F0246F0 8E04001C */ lw $a0, 0x1c($s0) +/* 059224 7F0246F4 3C054220 */ lui $a1, 0x4220 +/* 059228 7F0246F8 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 05922C 7F0246FC 3C064180 */ lui $a2, 0x4180 +/* 059230 7F024700 240A0010 */ li $t2, 16 +/* 059234 7F024704 A20A0008 */ sb $t2, 8($s0) +/* 059238 7F024708 8FAB002C */ lw $t3, 0x2c($sp) +/* 05923C 7F02470C 11600003 */ beqz $t3, .L7F02471C +/* 059240 7F024710 01602025 */ move $a0, $t3 +/* 059244 7F024714 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 059248 7F024718 24050002 */ li $a1, 2 +.L7F02471C: +/* 05924C 7F02471C 8FA40028 */ lw $a0, 0x28($sp) +/* 059250 7F024720 50800004 */ beql $a0, $zero, .L7F024734 +/* 059254 7F024724 960C0012 */ lhu $t4, 0x12($s0) +/* 059258 7F024728 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05925C 7F02472C 24050002 */ li $a1, 2 +/* 059260 7F024730 960C0012 */ lhu $t4, 0x12($s0) +.L7F024734: +/* 059264 7F024734 358D0001 */ ori $t5, $t4, 1 +/* 059268 7F024738 10000018 */ b .L7F02479C +/* 05926C 7F02473C A60D0012 */ sh $t5, 0x12($s0) +.L7F024740: +/* 059270 7F024740 0C002914 */ jal get_random_value +/* 059274 7F024744 00000000 */ nop +/* 059278 7F024748 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05927C 7F02474C 44814000 */ mtc1 $at, $f8 +/* 059280 7F024750 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059284 7F024754 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 059288 7F024758 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05928C 7F02475C 44815000 */ mtc1 $at, $f10 +/* 059290 7F024760 3C0F0000 */ lui $t7, %hi(0x00004384) # $t7, 0 +/* 059294 7F024764 25EF4384 */ addiu $t7, %lo(0x00004384) # addiu $t7, $t7, 0x4384 +/* 059298 7F024768 8E04001C */ lw $a0, 0x1c($s0) +/* 05929C 7F02476C 30460001 */ andi $a2, $v0, 1 +/* 0592A0 7F024770 24070000 */ li $a3, 0 +/* 0592A4 7F024774 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0592A8 7F024778 01CF2821 */ addu $a1, $t6, $t7 +/* 0592AC 7F02477C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0592B0 7F024780 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0592B4 7F024784 8E04001C */ lw $a0, 0x1c($s0) +/* 0592B8 7F024788 3C0541F0 */ lui $a1, 0x41f0 +/* 0592BC 7F02478C 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0592C0 7F024790 3C064180 */ lui $a2, 0x4180 +/* 0592C4 7F024794 24180010 */ li $t8, 16 +/* 0592C8 7F024798 A2180008 */ sb $t8, 8($s0) +.L7F02479C: +/* 0592CC 7F02479C 0FC086C8 */ jal sub_GAME_7F021B20 +/* 0592D0 7F0247A0 02002025 */ move $a0, $s0 +/* 0592D4 7F0247A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0247A8: +/* 0592D8 7F0247A8 8FB00020 */ lw $s0, 0x20($sp) +/* 0592DC 7F0247AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0592E0 7F0247B0 03E00008 */ jr $ra +/* 0592E4 7F0247B4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_fade_away(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_fade_away +/* 0592E8 7F0247B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0592EC 7F0247BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0592F0 7F0247C0 808E0007 */ lb $t6, 7($a0) +/* 0592F4 7F0247C4 24010005 */ li $at, 5 +/* 0592F8 7F0247C8 51C1000A */ beql $t6, $at, .L7F0247F4 +/* 0592FC 7F0247CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 059300 7F0247D0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059304 7F0247D4 AFA40018 */ sw $a0, 0x18($sp) +/* 059308 7F0247D8 8FA40018 */ lw $a0, 0x18($sp) +/* 05930C 7F0247DC 240F0005 */ li $t7, 5 +/* 059310 7F0247E0 2418FFFF */ li $t8, -1 +/* 059314 7F0247E4 A08F0007 */ sb $t7, 7($a0) +/* 059318 7F0247E8 AC98002C */ sw $t8, 0x2c($a0) +/* 05931C 7F0247EC A0800008 */ sb $zero, 8($a0) +/* 059320 7F0247F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0247F4: +/* 059324 7F0247F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 059328 7F0247F8 03E00008 */ jr $ra +/* 05932C 7F0247FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024800(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024800 +/* 059330 7F024800 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 059334 7F024804 AFBF0024 */ sw $ra, 0x24($sp) +/* 059338 7F024808 AFB00020 */ sw $s0, 0x20($sp) +/* 05933C 7F02480C AFA5003C */ sw $a1, 0x3c($sp) +/* 059340 7F024810 00808025 */ move $s0, $a0 +/* 059344 7F024814 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059348 7F024818 24050001 */ li $a1, 1 +/* 05934C 7F02481C AFA20034 */ sw $v0, 0x34($sp) +/* 059350 7F024820 02002025 */ move $a0, $s0 +/* 059354 7F024824 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059358 7F024828 00002825 */ move $a1, $zero +/* 05935C 7F02482C 8FA40034 */ lw $a0, 0x34($sp) +/* 059360 7F024830 AFA20030 */ sw $v0, 0x30($sp) +/* 059364 7F024834 AFA0002C */ sw $zero, 0x2c($sp) +/* 059368 7F024838 1080000A */ beqz $a0, .L7F024864 +/* 05936C 7F02483C 00001825 */ move $v1, $zero +/* 059370 7F024840 10400008 */ beqz $v0, .L7F024864 +/* 059374 7F024844 00000000 */ nop +/* 059378 7F024848 0C002914 */ jal get_random_value +/* 05937C 7F02484C 00000000 */ nop +/* 059380 7F024850 304E0001 */ andi $t6, $v0, 1 +/* 059384 7F024854 0C002914 */ jal get_random_value +/* 059388 7F024858 AFAE002C */ sw $t6, 0x2c($sp) +/* 05938C 7F02485C 10000013 */ b .L7F0248AC +/* 059390 7F024860 30430001 */ andi $v1, $v0, 1 +.L7F024864: +/* 059394 7F024864 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059398 7F024868 AFA30028 */ sw $v1, 0x28($sp) +/* 05939C 7F02486C 1440000F */ bnez $v0, .L7F0248AC +/* 0593A0 7F024870 8FA30028 */ lw $v1, 0x28($sp) +/* 0593A4 7F024874 8FA40030 */ lw $a0, 0x30($sp) +/* 0593A8 7F024878 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0593AC 7F02487C AFA30028 */ sw $v1, 0x28($sp) +/* 0593B0 7F024880 1440000A */ bnez $v0, .L7F0248AC +/* 0593B4 7F024884 8FA30028 */ lw $v1, 0x28($sp) +/* 0593B8 7F024888 8FA20034 */ lw $v0, 0x34($sp) +/* 0593BC 7F02488C 8FAF0030 */ lw $t7, 0x30($sp) +/* 0593C0 7F024890 14400003 */ bnez $v0, .L7F0248A0 +/* 0593C4 7F024894 0002C02B */ sltu $t8, $zero, $v0 +/* 0593C8 7F024898 51E00005 */ beql $t7, $zero, .L7F0248B0 +/* 0593CC 7F02489C 02002025 */ move $a0, $s0 +.L7F0248A0: +/* 0593D0 7F0248A0 0C002914 */ jal get_random_value +/* 0593D4 7F0248A4 AFB8002C */ sw $t8, 0x2c($sp) +/* 0593D8 7F0248A8 30430001 */ andi $v1, $v0, 1 +.L7F0248AC: +/* 0593DC 7F0248AC 02002025 */ move $a0, $s0 +.L7F0248B0: +/* 0593E0 7F0248B0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0593E4 7F0248B4 AFA30028 */ sw $v1, 0x28($sp) +/* 0593E8 7F0248B8 8FA30028 */ lw $v1, 0x28($sp) +/* 0593EC 7F0248BC 2419000B */ li $t9, 11 +/* 0593F0 7F0248C0 A2190007 */ sb $t9, 7($s0) +/* 0593F4 7F0248C4 14600033 */ bnez $v1, .L7F024994 +/* 0593F8 7F0248C8 A2000008 */ sb $zero, 8($s0) +/* 0593FC 7F0248CC 8FA8003C */ lw $t0, 0x3c($sp) +/* 059400 7F0248D0 3C053F0C */ lui $a1, (0x3F0CCCCD >> 16) # lui $a1, 0x3f0c +/* 059404 7F0248D4 34A5CCCD */ ori $a1, (0x3F0CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 059408 7F0248D8 11000019 */ beqz $t0, .L7F024940 +/* 05940C 7F0248DC 02002025 */ move $a0, $s0 +/* 059410 7F0248E0 3C053F0C */ lui $a1, (0x3F0CCCCD >> 16) # lui $a1, 0x3f0c +/* 059414 7F0248E4 3C063F61 */ lui $a2, (0x3F6147AF >> 16) # lui $a2, 0x3f61 +/* 059418 7F0248E8 34C647AF */ ori $a2, (0x3F6147AF & 0xFFFF) # ori $a2, $a2, 0x47af +/* 05941C 7F0248EC 34A5CCCD */ ori $a1, (0x3F0CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 059420 7F0248F0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059424 7F0248F4 02002025 */ move $a0, $s0 +/* 059428 7F0248F8 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05942C 7F0248FC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059430 7F024900 44812000 */ mtc1 $at, $f4 +/* 059434 7F024904 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 059438 7F024908 3C0A0000 */ lui $t2, %hi(0x00003D9C) # $t2, 0 +/* 05943C 7F02490C 254A3D9C */ addiu $t2, %lo(0x00003D9C) # addiu $t2, $t2, 0x3d9c +/* 059440 7F024910 8E04001C */ lw $a0, 0x1c($s0) +/* 059444 7F024914 E7A00010 */ swc1 $f0, 0x10($sp) +/* 059448 7F024918 00003025 */ move $a2, $zero +/* 05944C 7F02491C 3C0740A0 */ lui $a3, 0x40a0 +/* 059450 7F024920 E7A40014 */ swc1 $f4, 0x14($sp) +/* 059454 7F024924 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059458 7F024928 012A2821 */ addu $a1, $t1, $t2 +/* 05945C 7F02492C 8E04001C */ lw $a0, 0x1c($s0) +/* 059460 7F024930 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059464 7F024934 3C0541D8 */ lui $a1, 0x41d8 +/* 059468 7F024938 1000004E */ b .L7F024A74 +/* 05946C 7F02493C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024940: +/* 059470 7F024940 3C063F61 */ lui $a2, (0x3F6147AF >> 16) # lui $a2, 0x3f61 +/* 059474 7F024944 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059478 7F024948 34C647AF */ ori $a2, (0x3F6147AF & 0xFFFF) # ori $a2, $a2, 0x47af +/* 05947C 7F02494C 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 059480 7F024950 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059484 7F024954 44813000 */ mtc1 $at, $f6 +/* 059488 7F024958 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05948C 7F02495C 3C0C0000 */ lui $t4, %hi(0x00003D9C) # $t4, 0 +/* 059490 7F024960 258C3D9C */ addiu $t4, %lo(0x00003D9C) # addiu $t4, $t4, 0x3d9c +/* 059494 7F024964 8E04001C */ lw $a0, 0x1c($s0) +/* 059498 7F024968 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05949C 7F02496C 24060001 */ li $a2, 1 +/* 0594A0 7F024970 3C0740A0 */ lui $a3, 0x40a0 +/* 0594A4 7F024974 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0594A8 7F024978 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0594AC 7F02497C 016C2821 */ addu $a1, $t3, $t4 +/* 0594B0 7F024980 8E04001C */ lw $a0, 0x1c($s0) +/* 0594B4 7F024984 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0594B8 7F024988 3C0541D8 */ lui $a1, 0x41d8 +/* 0594BC 7F02498C 10000039 */ b .L7F024A74 +/* 0594C0 7F024990 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024994: +/* 0594C4 7F024994 8FA2003C */ lw $v0, 0x3c($sp) +/* 0594C8 7F024998 8FAD002C */ lw $t5, 0x2c($sp) +/* 0594CC 7F02499C 10400003 */ beqz $v0, .L7F0249AC +/* 0594D0 7F0249A0 00000000 */ nop +/* 0594D4 7F0249A4 51A00005 */ beql $t5, $zero, .L7F0249BC +/* 0594D8 7F0249A8 3C053F33 */ lui $a1, 0x3f33 +.L7F0249AC: +/* 0594DC 7F0249AC 1440001A */ bnez $v0, .L7F024A18 +/* 0594E0 7F0249B0 8FAE002C */ lw $t6, 0x2c($sp) +/* 0594E4 7F0249B4 11C00018 */ beqz $t6, .L7F024A18 +/* 0594E8 7F0249B8 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +.L7F0249BC: +/* 0594EC 7F0249BC 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 0594F0 7F0249C0 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 0594F4 7F0249C4 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 0594F8 7F0249C8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0594FC 7F0249CC 02002025 */ move $a0, $s0 +/* 059500 7F0249D0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059504 7F0249D4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059508 7F0249D8 44814000 */ mtc1 $at, $f8 +/* 05950C 7F0249DC 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059510 7F0249E0 3C180000 */ lui $t8, %hi(0x00005554) # $t8, 0 +/* 059514 7F0249E4 27185554 */ addiu $t8, %lo(0x00005554) # addiu $t8, $t8, 0x5554 +/* 059518 7F0249E8 8E04001C */ lw $a0, 0x1c($s0) +/* 05951C 7F0249EC E7A00010 */ swc1 $f0, 0x10($sp) +/* 059520 7F0249F0 8FA6002C */ lw $a2, 0x2c($sp) +/* 059524 7F0249F4 3C0740A0 */ lui $a3, 0x40a0 +/* 059528 7F0249F8 E7A80014 */ swc1 $f8, 0x14($sp) +/* 05952C 7F0249FC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059530 7F024A00 01F82821 */ addu $a1, $t7, $t8 +/* 059534 7F024A04 8E04001C */ lw $a0, 0x1c($s0) +/* 059538 7F024A08 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05953C 7F024A0C 3C054208 */ lui $a1, 0x4208 +/* 059540 7F024A10 10000018 */ b .L7F024A74 +/* 059544 7F024A14 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024A18: +/* 059548 7F024A18 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +/* 05954C 7F024A1C 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 059550 7F024A20 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 059554 7F024A24 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 059558 7F024A28 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05955C 7F024A2C 02002025 */ move $a0, $s0 +/* 059560 7F024A30 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 059564 7F024A34 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059568 7F024A38 44815000 */ mtc1 $at, $f10 +/* 05956C 7F024A3C 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 059570 7F024A40 3C080000 */ lui $t0, %hi(0x000054A0) # $t0, 0 +/* 059574 7F024A44 250854A0 */ addiu $t0, %lo(0x000054A0) # addiu $t0, $t0, 0x54a0 +/* 059578 7F024A48 8E04001C */ lw $a0, 0x1c($s0) +/* 05957C 7F024A4C E7A00010 */ swc1 $f0, 0x10($sp) +/* 059580 7F024A50 8FA6002C */ lw $a2, 0x2c($sp) +/* 059584 7F024A54 3C0740A0 */ lui $a3, 0x40a0 +/* 059588 7F024A58 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05958C 7F024A5C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059590 7F024A60 03282821 */ addu $a1, $t9, $t0 +/* 059594 7F024A64 8E04001C */ lw $a0, 0x1c($s0) +/* 059598 7F024A68 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05959C 7F024A6C 3C054200 */ lui $a1, 0x4200 +/* 0595A0 7F024A70 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024A74: +/* 0595A4 7F024A74 8FB00020 */ lw $s0, 0x20($sp) +/* 0595A8 7F024A78 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0595AC 7F024A7C 03E00008 */ jr $ra +/* 0595B0 7F024A80 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024A84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024A84 +/* 0595B4 7F024A84 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0595B8 7F024A88 AFBF0024 */ sw $ra, 0x24($sp) +/* 0595BC 7F024A8C AFB00020 */ sw $s0, 0x20($sp) +/* 0595C0 7F024A90 AFA5003C */ sw $a1, 0x3c($sp) +/* 0595C4 7F024A94 00808025 */ move $s0, $a0 +/* 0595C8 7F024A98 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0595CC 7F024A9C 24050001 */ li $a1, 1 +/* 0595D0 7F024AA0 02002025 */ move $a0, $s0 +/* 0595D4 7F024AA4 00002825 */ move $a1, $zero +/* 0595D8 7F024AA8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0595DC 7F024AAC AFA20034 */ sw $v0, 0x34($sp) +/* 0595E0 7F024AB0 8FA60034 */ lw $a2, 0x34($sp) +/* 0595E4 7F024AB4 00402825 */ move $a1, $v0 +/* 0595E8 7F024AB8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0595EC 7F024ABC 10C00005 */ beqz $a2, .L7F024AD4 +/* 0595F0 7F024AC0 00000000 */ nop +/* 0595F4 7F024AC4 14400003 */ bnez $v0, .L7F024AD4 +/* 0595F8 7F024AC8 240E0001 */ li $t6, 1 +/* 0595FC 7F024ACC 10000015 */ b .L7F024B24 +/* 059600 7F024AD0 AFAE002C */ sw $t6, 0x2c($sp) +.L7F024AD4: +/* 059604 7F024AD4 10C00003 */ beqz $a2, .L7F024AE4 +/* 059608 7F024AD8 00000000 */ nop +/* 05960C 7F024ADC 1440000D */ bnez $v0, .L7F024B14 +/* 059610 7F024AE0 00000000 */ nop +.L7F024AE4: +/* 059614 7F024AE4 14C00003 */ bnez $a2, .L7F024AF4 +/* 059618 7F024AE8 00C02025 */ move $a0, $a2 +/* 05961C 7F024AEC 10400009 */ beqz $v0, .L7F024B14 +/* 059620 7F024AF0 00000000 */ nop +.L7F024AF4: +/* 059624 7F024AF4 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059628 7F024AF8 AFA50030 */ sw $a1, 0x30($sp) +/* 05962C 7F024AFC 14400005 */ bnez $v0, .L7F024B14 +/* 059630 7F024B00 8FA50030 */ lw $a1, 0x30($sp) +/* 059634 7F024B04 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059638 7F024B08 00A02025 */ move $a0, $a1 +/* 05963C 7F024B0C 10400005 */ beqz $v0, .L7F024B24 +/* 059640 7F024B10 00000000 */ nop +.L7F024B14: +/* 059644 7F024B14 0C002914 */ jal get_random_value +/* 059648 7F024B18 00000000 */ nop +/* 05964C 7F024B1C 304F0001 */ andi $t7, $v0, 1 +/* 059650 7F024B20 AFAF002C */ sw $t7, 0x2c($sp) +.L7F024B24: +/* 059654 7F024B24 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059658 7F024B28 02002025 */ move $a0, $s0 +/* 05965C 7F024B2C 8FA2003C */ lw $v0, 0x3c($sp) +/* 059660 7F024B30 2418000C */ li $t8, 12 +/* 059664 7F024B34 A2180007 */ sb $t8, 7($s0) +/* 059668 7F024B38 10400004 */ beqz $v0, .L7F024B4C +/* 05966C 7F024B3C A2000008 */ sb $zero, 8($s0) +/* 059670 7F024B40 8FB9002C */ lw $t9, 0x2c($sp) +/* 059674 7F024B44 13200005 */ beqz $t9, .L7F024B5C +/* 059678 7F024B48 00000000 */ nop +.L7F024B4C: +/* 05967C 7F024B4C 14400035 */ bnez $v0, .L7F024C24 +/* 059680 7F024B50 8FA8002C */ lw $t0, 0x2c($sp) +/* 059684 7F024B54 11000033 */ beqz $t0, .L7F024C24 +/* 059688 7F024B58 00000000 */ nop +.L7F024B5C: +/* 05968C 7F024B5C 0C002914 */ jal get_random_value +/* 059690 7F024B60 00000000 */ nop +/* 059694 7F024B64 30490001 */ andi $t1, $v0, 1 +/* 059698 7F024B68 11200018 */ beqz $t1, .L7F024BCC +/* 05969C 7F024B6C 02002025 */ move $a0, $s0 +/* 0596A0 7F024B70 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0596A4 7F024B74 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0596A8 7F024B78 02002025 */ move $a0, $s0 +/* 0596AC 7F024B7C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0596B0 7F024B80 3C053F00 */ lui $a1, 0x3f00 +/* 0596B4 7F024B84 3C0A8007 */ lui $t2, %hi(ptr_animation_table) +/* 0596B8 7F024B88 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0596BC 7F024B8C 44812000 */ mtc1 $at, $f4 +/* 0596C0 7F024B90 8D4A9538 */ lw $t2, %lo(ptr_animation_table)($t2) +/* 0596C4 7F024B94 3C0B0000 */ lui $t3, %hi(0x000047BC) # $t3, 0 +/* 0596C8 7F024B98 256B47BC */ addiu $t3, %lo(0x000047BC) # addiu $t3, $t3, 0x47bc +/* 0596CC 7F024B9C 8E04001C */ lw $a0, 0x1c($s0) +/* 0596D0 7F024BA0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0596D4 7F024BA4 8FA6002C */ lw $a2, 0x2c($sp) +/* 0596D8 7F024BA8 3C0740A0 */ lui $a3, 0x40a0 +/* 0596DC 7F024BAC E7A40014 */ swc1 $f4, 0x14($sp) +/* 0596E0 7F024BB0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0596E4 7F024BB4 014B2821 */ addu $a1, $t2, $t3 +/* 0596E8 7F024BB8 8E04001C */ lw $a0, 0x1c($s0) +/* 0596EC 7F024BBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0596F0 7F024BC0 3C054244 */ lui $a1, 0x4244 +/* 0596F4 7F024BC4 10000048 */ b .L7F024CE8 +/* 0596F8 7F024BC8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024BCC: +/* 0596FC 7F024BCC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 059700 7F024BD0 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 059704 7F024BD4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059708 7F024BD8 3C053F00 */ lui $a1, 0x3f00 +/* 05970C 7F024BDC 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 059710 7F024BE0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059714 7F024BE4 44813000 */ mtc1 $at, $f6 +/* 059718 7F024BE8 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05971C 7F024BEC 3C0D0000 */ lui $t5, %hi(0x00004A40) # $t5, 0 +/* 059720 7F024BF0 25AD4A40 */ addiu $t5, %lo(0x00004A40) # addiu $t5, $t5, 0x4a40 +/* 059724 7F024BF4 8E04001C */ lw $a0, 0x1c($s0) +/* 059728 7F024BF8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05972C 7F024BFC 8FA6002C */ lw $a2, 0x2c($sp) +/* 059730 7F024C00 3C074302 */ lui $a3, 0x4302 +/* 059734 7F024C04 E7A60014 */ swc1 $f6, 0x14($sp) +/* 059738 7F024C08 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05973C 7F024C0C 018D2821 */ addu $a1, $t4, $t5 +/* 059740 7F024C10 8E04001C */ lw $a0, 0x1c($s0) +/* 059744 7F024C14 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059748 7F024C18 3C05432D */ lui $a1, 0x432d +/* 05974C 7F024C1C 10000032 */ b .L7F024CE8 +/* 059750 7F024C20 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024C24: +/* 059754 7F024C24 0C002914 */ jal get_random_value +/* 059758 7F024C28 00000000 */ nop +/* 05975C 7F024C2C 304E0001 */ andi $t6, $v0, 1 +/* 059760 7F024C30 11C00018 */ beqz $t6, .L7F024C94 +/* 059764 7F024C34 02002025 */ move $a0, $s0 +/* 059768 7F024C38 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 05976C 7F024C3C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 059770 7F024C40 02002025 */ move $a0, $s0 +/* 059774 7F024C44 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059778 7F024C48 3C053F00 */ lui $a1, 0x3f00 +/* 05977C 7F024C4C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059780 7F024C50 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059784 7F024C54 44814000 */ mtc1 $at, $f8 +/* 059788 7F024C58 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05978C 7F024C5C 3C180000 */ lui $t8, %hi(0x00004A40) # $t8, 0 +/* 059790 7F024C60 27184A40 */ addiu $t8, %lo(0x00004A40) # addiu $t8, $t8, 0x4a40 +/* 059794 7F024C64 8E04001C */ lw $a0, 0x1c($s0) +/* 059798 7F024C68 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05979C 7F024C6C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0597A0 7F024C70 3C0741A0 */ lui $a3, 0x41a0 +/* 0597A4 7F024C74 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0597A8 7F024C78 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0597AC 7F024C7C 01F82821 */ addu $a1, $t7, $t8 +/* 0597B0 7F024C80 8E04001C */ lw $a0, 0x1c($s0) +/* 0597B4 7F024C84 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0597B8 7F024C88 3C05427C */ lui $a1, 0x427c +/* 0597BC 7F024C8C 10000016 */ b .L7F024CE8 +/* 0597C0 7F024C90 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024C94: +/* 0597C4 7F024C94 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0597C8 7F024C98 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0597CC 7F024C9C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0597D0 7F024CA0 3C053F00 */ lui $a1, 0x3f00 +/* 0597D4 7F024CA4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 0597D8 7F024CA8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0597DC 7F024CAC 44815000 */ mtc1 $at, $f10 +/* 0597E0 7F024CB0 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 0597E4 7F024CB4 3C080000 */ lui $t0, %hi(0x000047BC) # $t0, 0 +/* 0597E8 7F024CB8 250847BC */ addiu $t0, %lo(0x000047BC) # addiu $t0, $t0, 0x47bc +/* 0597EC 7F024CBC 8E04001C */ lw $a0, 0x1c($s0) +/* 0597F0 7F024CC0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0597F4 7F024CC4 8FA6002C */ lw $a2, 0x2c($sp) +/* 0597F8 7F024CC8 3C0742B6 */ lui $a3, 0x42b6 +/* 0597FC 7F024CCC E7AA0014 */ swc1 $f10, 0x14($sp) +/* 059800 7F024CD0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059804 7F024CD4 03282821 */ addu $a1, $t9, $t0 +/* 059808 7F024CD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05980C 7F024CDC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059810 7F024CE0 3C054308 */ lui $a1, 0x4308 +/* 059814 7F024CE4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024CE8: +/* 059818 7F024CE8 8FB00020 */ lw $s0, 0x20($sp) +/* 05981C 7F024CEC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 059820 7F024CF0 03E00008 */ jr $ra +/* 059824 7F024CF4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024CF8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024CF8 +/* 059828 7F024CF8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 05982C 7F024CFC AFBF0024 */ sw $ra, 0x24($sp) +/* 059830 7F024D00 AFB00020 */ sw $s0, 0x20($sp) +/* 059834 7F024D04 8C820018 */ lw $v0, 0x18($a0) +/* 059838 7F024D08 C4A60000 */ lwc1 $f6, ($a1) +/* 05983C 7F024D0C C4AA0008 */ lwc1 $f10, 8($a1) +/* 059840 7F024D10 C4440008 */ lwc1 $f4, 8($v0) +/* 059844 7F024D14 C4480010 */ lwc1 $f8, 0x10($v0) +/* 059848 7F024D18 00808025 */ move $s0, $a0 +/* 05984C 7F024D1C 46062001 */ sub.s $f0, $f4, $f6 +/* 059850 7F024D20 AFA5004C */ sw $a1, 0x4c($sp) +/* 059854 7F024D24 460A4081 */ sub.s $f2, $f8, $f10 +/* 059858 7F024D28 46000402 */ mul.s $f16, $f0, $f0 +/* 05985C 7F024D2C 00000000 */ nop +/* 059860 7F024D30 46021482 */ mul.s $f18, $f2, $f2 +/* 059864 7F024D34 0C007DF8 */ jal sqrtf +/* 059868 7F024D38 46128300 */ add.s $f12, $f16, $f18 +/* 05986C 7F024D3C E7A00038 */ swc1 $f0, 0x38($sp) +/* 059870 7F024D40 02002025 */ move $a0, $s0 +/* 059874 7F024D44 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059878 7F024D48 24050001 */ li $a1, 1 +/* 05987C 7F024D4C 02002025 */ move $a0, $s0 +/* 059880 7F024D50 00002825 */ move $a1, $zero +/* 059884 7F024D54 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059888 7F024D58 AFA20034 */ sw $v0, 0x34($sp) +/* 05988C 7F024D5C 8FA70034 */ lw $a3, 0x34($sp) +/* 059890 7F024D60 240E0001 */ li $t6, 1 +/* 059894 7F024D64 00402825 */ move $a1, $v0 +/* 059898 7F024D68 10E00003 */ beqz $a3, .L7F024D78 +/* 05989C 7F024D6C AFAE002C */ sw $t6, 0x2c($sp) +/* 0598A0 7F024D70 14400005 */ bnez $v0, .L7F024D88 +/* 0598A4 7F024D74 00000000 */ nop +.L7F024D78: +/* 0598A8 7F024D78 14E00007 */ bnez $a3, .L7F024D98 +/* 0598AC 7F024D7C 00E02025 */ move $a0, $a3 +/* 0598B0 7F024D80 54400006 */ bnezl $v0, .L7F024D9C +/* 0598B4 7F024D84 AFA50030 */ sw $a1, 0x30($sp) +.L7F024D88: +/* 0598B8 7F024D88 0C002914 */ jal get_random_value +/* 0598BC 7F024D8C AFA0002C */ sw $zero, 0x2c($sp) +/* 0598C0 7F024D90 10000010 */ b .L7F024DD4 +/* 0598C4 7F024D94 30460001 */ andi $a2, $v0, 1 +.L7F024D98: +/* 0598C8 7F024D98 AFA50030 */ sw $a1, 0x30($sp) +.L7F024D9C: +/* 0598CC 7F024D9C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0598D0 7F024DA0 AFA70034 */ sw $a3, 0x34($sp) +/* 0598D4 7F024DA4 8FA50030 */ lw $a1, 0x30($sp) +/* 0598D8 7F024DA8 14400006 */ bnez $v0, .L7F024DC4 +/* 0598DC 7F024DAC 8FA70034 */ lw $a3, 0x34($sp) +/* 0598E0 7F024DB0 00A02025 */ move $a0, $a1 +/* 0598E4 7F024DB4 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0598E8 7F024DB8 AFA70034 */ sw $a3, 0x34($sp) +/* 0598EC 7F024DBC 10400004 */ beqz $v0, .L7F024DD0 +/* 0598F0 7F024DC0 8FA70034 */ lw $a3, 0x34($sp) +.L7F024DC4: +/* 0598F4 7F024DC4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0598F8 7F024DC8 10000002 */ b .L7F024DD4 +/* 0598FC 7F024DCC 0007302B */ sltu $a2, $zero, $a3 +.L7F024DD0: +/* 059900 7F024DD0 0007302B */ sltu $a2, $zero, $a3 +.L7F024DD4: +/* 059904 7F024DD4 02002025 */ move $a0, $s0 +/* 059908 7F024DD8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05990C 7F024DDC AFA60028 */ sw $a2, 0x28($sp) +/* 059910 7F024DE0 8FA2004C */ lw $v0, 0x4c($sp) +/* 059914 7F024DE4 8FA60028 */ lw $a2, 0x28($sp) +/* 059918 7F024DE8 240F000D */ li $t7, 13 +/* 05991C 7F024DEC A20F0007 */ sb $t7, 7($s0) +/* 059920 7F024DF0 C4440000 */ lwc1 $f4, ($v0) +/* 059924 7F024DF4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 059928 7F024DF8 44800000 */ mtc1 $zero, $f0 +/* 05992C 7F024DFC E604002C */ swc1 $f4, 0x2c($s0) +/* 059930 7F024E00 C4460004 */ lwc1 $f6, 4($v0) +/* 059934 7F024E04 44815000 */ mtc1 $at, $f10 +/* 059938 7F024E08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05993C 7F024E0C E6060030 */ swc1 $f6, 0x30($s0) +/* 059940 7F024E10 C4480008 */ lwc1 $f8, 8($v0) +/* 059944 7F024E14 A2000008 */ sb $zero, 8($s0) +/* 059948 7F024E18 E6000040 */ swc1 $f0, 0x40($s0) +/* 05994C 7F024E1C E60A0038 */ swc1 $f10, 0x38($s0) +/* 059950 7F024E20 E6080034 */ swc1 $f8, 0x34($s0) +/* 059954 7F024E24 8FB8002C */ lw $t8, 0x2c($sp) +/* 059958 7F024E28 5300001B */ beql $t8, $zero, .L7F024E98 +/* 05995C 7F024E2C 44811000 */ mtc1 $at, $f2 +/* 059960 7F024E30 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059964 7F024E34 44811000 */ mtc1 $at, $f2 +/* 059968 7F024E38 3C018003 */ lui $at, %hi(D_80030988) # -0.000000 +/* 05996C 7F024E3C C4320988 */ lwc1 $f18, %lo(D_80030988)($at) +/* 059970 7F024E40 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 059974 7F024E44 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059978 7F024E48 46029102 */ mul.s $f4, $f18, $f2 +/* 05997C 7F024E4C 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 059980 7F024E50 44815000 */ mtc1 $at, $f10 +/* 059984 7F024E54 3C0A0000 */ lui $t2, %hi(0x000040D4) # $t2, 0 +/* 059988 7F024E58 254A40D4 */ addiu $t2, %lo(0x000040D4) # addiu $t2, $t2, 0x40d4 +/* 05998C 7F024E5C 8E04001C */ lw $a0, 0x1c($s0) +/* 059990 7F024E60 44070000 */ mfc1 $a3, $f0 +/* 059994 7F024E64 46048183 */ div.s $f6, $f16, $f4 +/* 059998 7F024E68 4600320D */ trunc.w.s $f8, $f6 +/* 05999C 7F024E6C 44084000 */ mfc1 $t0, $f8 +/* 0599A0 7F024E70 00000000 */ nop +/* 0599A4 7F024E74 AE08003C */ sw $t0, 0x3c($s0) +/* 0599A8 7F024E78 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 0599AC 7F024E7C E7A20010 */ swc1 $f2, 0x10($sp) +/* 0599B0 7F024E80 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0599B4 7F024E84 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0599B8 7F024E88 012A2821 */ addu $a1, $t1, $t2 +/* 0599BC 7F024E8C 10000018 */ b .L7F024EF0 +/* 0599C0 7F024E90 8FBF0024 */ lw $ra, 0x24($sp) +/* 0599C4 7F024E94 44811000 */ mtc1 $at, $f2 +.L7F024E98: +/* 0599C8 7F024E98 3C018003 */ lui $at, %hi(D_80030994) +/* 0599CC 7F024E9C C4300994 */ lwc1 $f16, %lo(D_80030994)($at) +/* 0599D0 7F024EA0 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 0599D4 7F024EA4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0599D8 7F024EA8 46028102 */ mul.s $f4, $f16, $f2 +/* 0599DC 7F024EAC 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 0599E0 7F024EB0 44815000 */ mtc1 $at, $f10 +/* 0599E4 7F024EB4 3C0E0000 */ lui $t6, %hi(0x0000777C) # $t6, 0 +/* 0599E8 7F024EB8 25CE777C */ addiu $t6, %lo(0x0000777C) # addiu $t6, $t6, 0x777c +/* 0599EC 7F024EBC 8E04001C */ lw $a0, 0x1c($s0) +/* 0599F0 7F024EC0 44070000 */ mfc1 $a3, $f0 +/* 0599F4 7F024EC4 46049183 */ div.s $f6, $f18, $f4 +/* 0599F8 7F024EC8 4600320D */ trunc.w.s $f8, $f6 +/* 0599FC 7F024ECC 440C4000 */ mfc1 $t4, $f8 +/* 059A00 7F024ED0 00000000 */ nop +/* 059A04 7F024ED4 AE0C003C */ sw $t4, 0x3c($s0) +/* 059A08 7F024ED8 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 059A0C 7F024EDC E7A20010 */ swc1 $f2, 0x10($sp) +/* 059A10 7F024EE0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 059A14 7F024EE4 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059A18 7F024EE8 01AE2821 */ addu $a1, $t5, $t6 +/* 059A1C 7F024EEC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024EF0: +/* 059A20 7F024EF0 8FB00020 */ lw $s0, 0x20($sp) +/* 059A24 7F024EF4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 059A28 7F024EF8 03E00008 */ jr $ra +/* 059A2C 7F024EFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024F00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024F00 +/* 059A30 7F024F00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 059A34 7F024F04 AFBF0024 */ sw $ra, 0x24($sp) +/* 059A38 7F024F08 AFB00020 */ sw $s0, 0x20($sp) +/* 059A3C 7F024F0C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059A40 7F024F10 00808025 */ move $s0, $a0 +/* 059A44 7F024F14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059A48 7F024F18 44812000 */ mtc1 $at, $f4 +/* 059A4C 7F024F1C 240E0016 */ li $t6, 22 +/* 059A50 7F024F20 A20E0007 */ sb $t6, 7($s0) +/* 059A54 7F024F24 A2000008 */ sb $zero, 8($s0) +/* 059A58 7F024F28 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059A5C 7F024F2C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059A60 7F024F30 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059A64 7F024F34 44813000 */ mtc1 $at, $f6 +/* 059A68 7F024F38 3C180000 */ lui $t8, %hi(0x00002F94) # $t8, 0 +/* 059A6C 7F024F3C 27182F94 */ addiu $t8, %lo(0x00002F94) # addiu $t8, $t8, 0x2f94 +/* 059A70 7F024F40 8E04001C */ lw $a0, 0x1c($s0) +/* 059A74 7F024F44 00003025 */ move $a2, $zero +/* 059A78 7F024F48 3C074120 */ lui $a3, 0x4120 +/* 059A7C 7F024F4C E7A40010 */ swc1 $f4, 0x10($sp) +/* 059A80 7F024F50 01F82821 */ addu $a1, $t7, $t8 +/* 059A84 7F024F54 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059A88 7F024F58 E7A60014 */ swc1 $f6, 0x14($sp) +/* 059A8C 7F024F5C 8E04001C */ lw $a0, 0x1c($s0) +/* 059A90 7F024F60 3C054120 */ lui $a1, 0x4120 +/* 059A94 7F024F64 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 059A98 7F024F68 3C064180 */ lui $a2, 0x4180 +/* 059A9C 7F024F6C 8E04001C */ lw $a0, 0x1c($s0) +/* 059AA0 7F024F70 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059AA4 7F024F74 3C054220 */ lui $a1, 0x4220 +/* 059AA8 7F024F78 8FBF0024 */ lw $ra, 0x24($sp) +/* 059AAC 7F024F7C 8FB00020 */ lw $s0, 0x20($sp) +/* 059AB0 7F024F80 27BD0028 */ addiu $sp, $sp, 0x28 +/* 059AB4 7F024F84 03E00008 */ jr $ra +/* 059AB8 7F024F88 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024F8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024F8C +/* 059ABC 7F024F8C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 059AC0 7F024F90 AFBF0014 */ sw $ra, 0x14($sp) +/* 059AC4 7F024F94 8C8E004C */ lw $t6, 0x4c($a0) +/* 059AC8 7F024F98 8C86001C */ lw $a2, 0x1c($a0) +/* 059ACC 7F024F9C 8C82002C */ lw $v0, 0x2c($a0) +/* 059AD0 7F024FA0 31CF0020 */ andi $t7, $t6, 0x20 +/* 059AD4 7F024FA4 51E00017 */ beql $t7, $zero, .L7F025004 +/* 059AD8 7F024FA8 80980036 */ lb $t8, 0x36($a0) +/* 059ADC 7F024FAC 44801000 */ mtc1 $zero, $f2 +/* 059AE0 7F024FB0 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059AE4 7F024FB4 00C02025 */ move $a0, $a2 +/* 059AE8 7F024FB8 4600103E */ c.le.s $f2, $f0 +/* 059AEC 7F024FBC 00000000 */ nop +/* 059AF0 7F024FC0 4500000B */ bc1f .L7F024FF0 +/* 059AF4 7F024FC4 00000000 */ nop +/* 059AF8 7F024FC8 C4440018 */ lwc1 $f4, 0x18($v0) +/* 059AFC 7F024FCC 4604003C */ c.lt.s $f0, $f4 +/* 059B00 7F024FD0 00000000 */ nop +/* 059B04 7F024FD4 45000006 */ bc1f .L7F024FF0 +/* 059B08 7F024FD8 00000000 */ nop +/* 059B0C 7F024FDC 44050000 */ mfc1 $a1, $f0 +/* 059B10 7F024FE0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B14 7F024FE4 00C02025 */ move $a0, $a2 +/* 059B18 7F024FE8 10000031 */ b .L7F0250B0 +/* 059B1C 7F024FEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F024FF0: +/* 059B20 7F024FF0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B24 7F024FF4 8C450018 */ lw $a1, 0x18($v0) +/* 059B28 7F024FF8 1000002D */ b .L7F0250B0 +/* 059B2C 7F024FFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 059B30 7F025000 80980036 */ lb $t8, 0x36($a0) +.L7F025004: +/* 059B34 7F025004 53000012 */ beql $t8, $zero, .L7F025050 +/* 059B38 7F025008 44801000 */ mtc1 $zero, $f2 +/* 059B3C 7F02500C 44801000 */ mtc1 $zero, $f2 +/* 059B40 7F025010 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059B44 7F025014 00C02025 */ move $a0, $a2 +/* 059B48 7F025018 4600103E */ c.le.s $f2, $f0 +/* 059B4C 7F02501C 00000000 */ nop +/* 059B50 7F025020 45000006 */ bc1f .L7F02503C +/* 059B54 7F025024 00000000 */ nop +/* 059B58 7F025028 44050000 */ mfc1 $a1, $f0 +/* 059B5C 7F02502C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B60 7F025030 00C02025 */ move $a0, $a2 +/* 059B64 7F025034 1000001E */ b .L7F0250B0 +/* 059B68 7F025038 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02503C: +/* 059B6C 7F02503C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B70 7F025040 8C450018 */ lw $a1, 0x18($v0) +/* 059B74 7F025044 1000001A */ b .L7F0250B0 +/* 059B78 7F025048 8FBF0014 */ lw $ra, 0x14($sp) +/* 059B7C 7F02504C 44801000 */ mtc1 $zero, $f2 +.L7F025050: +/* 059B80 7F025050 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059B84 7F025054 4600103E */ c.le.s $f2, $f0 +/* 059B88 7F025058 00000000 */ nop +/* 059B8C 7F02505C 45020007 */ bc1fl .L7F02507C +/* 059B90 7F025060 C4400014 */ lwc1 $f0, 0x14($v0) +/* 059B94 7F025064 44050000 */ mfc1 $a1, $f0 +/* 059B98 7F025068 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B9C 7F02506C 00C02025 */ move $a0, $a2 +/* 059BA0 7F025070 1000000F */ b .L7F0250B0 +/* 059BA4 7F025074 8FBF0014 */ lw $ra, 0x14($sp) +/* 059BA8 7F025078 C4400014 */ lwc1 $f0, 0x14($v0) +.L7F02507C: +/* 059BAC 7F02507C 00C02025 */ move $a0, $a2 +/* 059BB0 7F025080 4600103E */ c.le.s $f2, $f0 +/* 059BB4 7F025084 00000000 */ nop +/* 059BB8 7F025088 45000006 */ bc1f .L7F0250A4 +/* 059BBC 7F02508C 00000000 */ nop +/* 059BC0 7F025090 44050000 */ mfc1 $a1, $f0 +/* 059BC4 7F025094 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059BC8 7F025098 00C02025 */ move $a0, $a2 +/* 059BCC 7F02509C 10000004 */ b .L7F0250B0 +/* 059BD0 7F0250A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250A4: +/* 059BD4 7F0250A4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059BD8 7F0250A8 3C05BF80 */ lui $a1, 0xbf80 +/* 059BDC 7F0250AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250B0: +/* 059BE0 7F0250B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 059BE4 7F0250B4 03E00008 */ jr $ra +/* 059BE8 7F0250B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0250BC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DAC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DB0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0250BC +/* 059BEC 7F0250BC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 059BF0 7F0250C0 30AE0002 */ andi $t6, $a1, 2 +/* 059BF4 7F0250C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 059BF8 7F0250C8 11C00004 */ beqz $t6, .L7F0250DC +/* 059BFC 7F0250CC AFA40030 */ sw $a0, 0x30($sp) +/* 059C00 7F0250D0 44800000 */ mtc1 $zero, $f0 +/* 059C04 7F0250D4 10000022 */ b .L7F025160 +/* 059C08 7F0250D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250DC: +/* 059C0C 7F0250DC 30AF0010 */ andi $t7, $a1, 0x10 +/* 059C10 7F0250E0 11E00019 */ beqz $t7, .L7F025148 +/* 059C14 7F0250E4 8FA40030 */ lw $a0, 0x30($sp) +/* 059C18 7F0250E8 44862000 */ mtc1 $a2, $f4 +/* 059C1C 7F0250EC 3C018005 */ lui $at, %hi(D_80051DAC) +/* 059C20 7F0250F0 C4281DAC */ lwc1 $f8, %lo(D_80051DAC)($at) +/* 059C24 7F0250F4 468021A0 */ cvt.s.w $f6, $f4 +/* 059C28 7F0250F8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 059C2C 7F0250FC 44818000 */ mtc1 $at, $f16 +/* 059C30 7F025100 8FB80030 */ lw $t8, 0x30($sp) +/* 059C34 7F025104 46083282 */ mul.s $f10, $f6, $f8 +/* 059C38 7F025108 8F04001C */ lw $a0, 0x1c($t8) +/* 059C3C 7F02510C 46105303 */ div.s $f12, $f10, $f16 +/* 059C40 7F025110 0FC1B320 */ jal getsubroty +/* 059C44 7F025114 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 059C48 7F025118 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 059C4C 7F02511C 44809000 */ mtc1 $zero, $f18 +/* 059C50 7F025120 3C018005 */ lui $at, %hi(D_80051DB0) +/* 059C54 7F025124 46006081 */ sub.s $f2, $f12, $f0 +/* 059C58 7F025128 4612103C */ c.lt.s $f2, $f18 +/* 059C5C 7F02512C 00000000 */ nop +/* 059C60 7F025130 45000003 */ bc1f .L7F025140 +/* 059C64 7F025134 00000000 */ nop +/* 059C68 7F025138 C4241DB0 */ lwc1 $f4, %lo(D_80051DB0)($at) +/* 059C6C 7F02513C 46041080 */ add.s $f2, $f2, $f4 +.L7F025140: +/* 059C70 7F025140 10000006 */ b .L7F02515C +/* 059C74 7F025144 46001006 */ mov.s $f0, $f2 +.L7F025148: +/* 059C78 7F025148 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 059C7C 7F02514C 27A70028 */ addiu $a3, $sp, 0x28 +/* 059C80 7F025150 8FA40030 */ lw $a0, 0x30($sp) +/* 059C84 7F025154 0FC0CAF6 */ jal get_distance_actor_to_position +/* 059C88 7F025158 00402825 */ move $a1, $v0 +.L7F02515C: +/* 059C8C 7F02515C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F025160: +/* 059C90 7F025160 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059C94 7F025164 03E00008 */ jr $ra +/* 059C98 7F025168 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02516C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DB4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DB8 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02516C +/* 059C9C 7F02516C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 059CA0 7F025170 AFBF003C */ sw $ra, 0x3c($sp) +/* 059CA4 7F025174 AFB70038 */ sw $s7, 0x38($sp) +/* 059CA8 7F025178 AFB60034 */ sw $s6, 0x34($sp) +/* 059CAC 7F02517C AFB50030 */ sw $s5, 0x30($sp) +/* 059CB0 7F025180 AFB4002C */ sw $s4, 0x2c($sp) +/* 059CB4 7F025184 AFB30028 */ sw $s3, 0x28($sp) +/* 059CB8 7F025188 AFB20024 */ sw $s2, 0x24($sp) +/* 059CBC 7F02518C AFB10020 */ sw $s1, 0x20($sp) +/* 059CC0 7F025190 AFB0001C */ sw $s0, 0x1c($sp) +/* 059CC4 7F025194 AFA60098 */ sw $a2, 0x98($sp) +/* 059CC8 7F025198 AFA7009C */ sw $a3, 0x9c($sp) +/* 059CCC 7F02519C 8C8E001C */ lw $t6, 0x1c($a0) +/* 059CD0 7F0251A0 3C188003 */ lui $t8, %hi(D_800309A8) +/* 059CD4 7F0251A4 271809A8 */ addiu $t8, %lo(D_800309A8) # addiu $t8, $t8, 0x9a8 +/* 059CD8 7F0251A8 AFAE008C */ sw $t6, 0x8c($sp) +/* 059CDC 7F0251AC 8F0A0004 */ lw $t2, 4($t8) +/* 059CE0 7F0251B0 8F010000 */ lw $at, ($t8) +/* 059CE4 7F0251B4 27AF0060 */ addiu $t7, $sp, 0x60 +/* 059CE8 7F0251B8 3C0C8003 */ lui $t4, %hi(D_800309B0) +/* 059CEC 7F0251BC 258C09B0 */ addiu $t4, %lo(D_800309B0) # addiu $t4, $t4, 0x9b0 +/* 059CF0 7F0251C0 ADEA0004 */ sw $t2, 4($t7) +/* 059CF4 7F0251C4 ADE10000 */ sw $at, ($t7) +/* 059CF8 7F0251C8 8D890004 */ lw $t1, 4($t4) +/* 059CFC 7F0251CC 8D810000 */ lw $at, ($t4) +/* 059D00 7F0251D0 27AB0058 */ addiu $t3, $sp, 0x58 +/* 059D04 7F0251D4 24190008 */ li $t9, 8 +/* 059D08 7F0251D8 AD690004 */ sw $t1, 4($t3) +/* 059D0C 7F0251DC AD610000 */ sw $at, ($t3) +/* 059D10 7F0251E0 00A08825 */ move $s1, $a1 +/* 059D14 7F0251E4 A0990007 */ sb $t9, 7($a0) +/* 059D18 7F0251E8 0080A025 */ move $s4, $a0 +/* 059D1C 7F0251EC 24160001 */ li $s6, 1 +/* 059D20 7F0251F0 0000B825 */ move $s7, $zero +/* 059D24 7F0251F4 8FA600A4 */ lw $a2, 0xa4($sp) +/* 059D28 7F0251F8 0FC0942F */ jal sub_GAME_7F0250BC +/* 059D2C 7F0251FC 8FA500A0 */ lw $a1, 0xa0($sp) +/* 059D30 7F025200 8FAF0098 */ lw $t7, 0x98($sp) +/* 059D34 7F025204 3C018005 */ lui $at, %hi(D_80051DB8) +/* 059D38 7F025208 11E0000F */ beqz $t7, .L7F025248 +/* 059D3C 7F02520C 00000000 */ nop +/* 059D40 7F025210 3C018005 */ lui $at, %hi(D_80051DB4) +/* 059D44 7F025214 C4221DB4 */ lwc1 $f2, %lo(D_80051DB4)($at) +/* 059D48 7F025218 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 059D4C 7F02521C 44813000 */ mtc1 $at, $f6 +/* 059D50 7F025220 46001101 */ sub.s $f4, $f2, $f0 +/* 059D54 7F025224 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059D58 7F025228 44818000 */ mtc1 $at, $f16 +/* 059D5C 7F02522C 46062202 */ mul.s $f8, $f4, $f6 +/* 059D60 7F025230 46024283 */ div.s $f10, $f8, $f2 +/* 059D64 7F025234 46105480 */ add.s $f18, $f10, $f16 +/* 059D68 7F025238 4600910D */ trunc.w.s $f4, $f18 +/* 059D6C 7F02523C 44102000 */ mfc1 $s0, $f4 +/* 059D70 7F025240 1000000D */ b .L7F025278 +/* 059D74 7F025244 2A010020 */ slti $at, $s0, 0x20 +.L7F025248: +/* 059D78 7F025248 C4221DB8 */ lwc1 $f2, %lo(D_80051DB8)($at) +/* 059D7C 7F02524C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 059D80 7F025250 44813000 */ mtc1 $at, $f6 +/* 059D84 7F025254 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059D88 7F025258 44818000 */ mtc1 $at, $f16 +/* 059D8C 7F02525C 46060202 */ mul.s $f8, $f0, $f6 +/* 059D90 7F025260 46024283 */ div.s $f10, $f8, $f2 +/* 059D94 7F025264 46105480 */ add.s $f18, $f10, $f16 +/* 059D98 7F025268 4600910D */ trunc.w.s $f4, $f18 +/* 059D9C 7F02526C 44102000 */ mfc1 $s0, $f4 +/* 059DA0 7F025270 00000000 */ nop +/* 059DA4 7F025274 2A010020 */ slti $at, $s0, 0x20 +.L7F025278: +/* 059DA8 7F025278 14200002 */ bnez $at, .L7F025284 +/* 059DAC 7F02527C 00000000 */ nop +/* 059DB0 7F025280 00008025 */ move $s0, $zero +.L7F025284: +/* 059DB4 7F025284 0C002914 */ jal get_random_value +/* 059DB8 7F025288 00000000 */ nop +/* 059DBC 7F02528C 00107080 */ sll $t6, $s0, 2 +/* 059DC0 7F025290 022E6821 */ addu $t5, $s1, $t6 +/* 059DC4 7F025294 8DA30000 */ lw $v1, ($t5) +/* 059DC8 7F025298 24080048 */ li $t0, 72 +/* 059DCC 7F02529C 8E8C0014 */ lw $t4, 0x14($s4) +/* 059DD0 7F0252A0 8C650004 */ lw $a1, 4($v1) +/* 059DD4 7F0252A4 8C660000 */ lw $a2, ($v1) +/* 059DD8 7F0252A8 31890020 */ andi $t1, $t4, 0x20 +/* 059DDC 7F0252AC 0045001B */ divu $zero, $v0, $a1 +/* 059DE0 7F0252B0 00002010 */ mfhi $a0 +/* 059DE4 7F0252B4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 059DE8 7F0252B8 14A00002 */ bnez $a1, .L7F0252C4 +/* 059DEC 7F0252BC 00000000 */ nop +/* 059DF0 7F0252C0 0007000D */ break 7 +.L7F0252C4: +/* 059DF4 7F0252C4 00880019 */ multu $a0, $t0 +/* 059DF8 7F0252C8 3C0F0000 */ lui $t7, %hi(0x00000318) # $t7, 0 +/* 059DFC 7F0252CC 00008825 */ move $s1, $zero +/* 059E00 7F0252D0 00009025 */ move $s2, $zero +/* 059E04 7F0252D4 8FB3009C */ lw $s3, 0x9c($sp) +/* 059E08 7F0252D8 24150001 */ li $s5, 1 +/* 059E0C 7F0252DC 00005812 */ mflo $t3 +/* 059E10 7F0252E0 00CB3821 */ addu $a3, $a2, $t3 +/* 059E14 7F0252E4 51200017 */ beql $t1, $zero, .L7F025344 +/* 059E18 7F0252E8 AFA70080 */ sw $a3, 0x80($sp) +/* 059E1C 7F0252EC 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 059E20 7F0252F0 8CEA0000 */ lw $t2, ($a3) +/* 059E24 7F0252F4 25EF0318 */ addiu $t7, %lo(0x00000318) # addiu $t7, $t7, 0x318 +/* 059E28 7F0252F8 032FC021 */ addu $t8, $t9, $t7 +/* 059E2C 7F0252FC 170A0010 */ bne $t8, $t2, .L7F025340 +/* 059E30 7F025300 248E0001 */ addiu $t6, $a0, 1 +/* 059E34 7F025304 01C5001A */ div $zero, $t6, $a1 +/* 059E38 7F025308 00006810 */ mfhi $t5 +/* 059E3C 7F02530C 14A00002 */ bnez $a1, .L7F025318 +/* 059E40 7F025310 00000000 */ nop +/* 059E44 7F025314 0007000D */ break 7 +.L7F025318: +/* 059E48 7F025318 2401FFFF */ li $at, -1 +/* 059E4C 7F02531C 14A10004 */ bne $a1, $at, .L7F025330 +/* 059E50 7F025320 3C018000 */ lui $at, 0x8000 +/* 059E54 7F025324 15C10002 */ bne $t6, $at, .L7F025330 +/* 059E58 7F025328 00000000 */ nop +/* 059E5C 7F02532C 0006000D */ break 6 +.L7F025330: +/* 059E60 7F025330 01A80019 */ multu $t5, $t0 +/* 059E64 7F025334 00005812 */ mflo $t3 +/* 059E68 7F025338 01663821 */ addu $a3, $t3, $a2 +/* 059E6C 7F02533C 00000000 */ nop +.L7F025340: +/* 059E70 7F025340 AFA70080 */ sw $a3, 0x80($sp) +.L7F025344: +/* 059E74 7F025344 8E6C0000 */ lw $t4, ($s3) +/* 059E78 7F025348 02802025 */ move $a0, $s4 +/* 059E7C 7F02534C 5180001A */ beql $t4, $zero, .L7F0253B8 +/* 059E80 7F025350 26310001 */ addiu $s1, $s1, 1 +/* 059E84 7F025354 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059E88 7F025358 02202825 */ move $a1, $s1 +/* 059E8C 7F02535C 8C500004 */ lw $s0, 4($v0) +/* 059E90 7F025360 0FC177F3 */ jal get_automatic_firing_rate +/* 059E94 7F025364 82040080 */ lb $a0, 0x80($s0) +/* 059E98 7F025368 04410008 */ bgez $v0, .L7F02538C +/* 059E9C 7F02536C 03B24821 */ addu $t1, $sp, $s2 +/* 059EA0 7F025370 AD350060 */ sw $s5, 0x60($t1) +/* 059EA4 7F025374 82020080 */ lb $v0, 0x80($s0) +/* 059EA8 7F025378 24010016 */ li $at, 22 +/* 059EAC 7F02537C 54410007 */ bnel $v0, $at, .L7F02539C +/* 059EB0 7F025380 24010019 */ li $at, 25 +/* 059EB4 7F025384 10000004 */ b .L7F025398 +/* 059EB8 7F025388 0000B025 */ move $s6, $zero +.L7F02538C: +/* 059EBC 7F02538C 0000B025 */ move $s6, $zero +/* 059EC0 7F025390 02A0B825 */ move $s7, $s5 +/* 059EC4 7F025394 82020080 */ lb $v0, 0x80($s0) +.L7F025398: +/* 059EC8 7F025398 24010019 */ li $at, 25 +.L7F02539C: +/* 059ECC 7F02539C 10410004 */ beq $v0, $at, .L7F0253B0 +/* 059ED0 7F0253A0 03B2C821 */ addu $t9, $sp, $s2 +/* 059ED4 7F0253A4 24010018 */ li $at, 24 +/* 059ED8 7F0253A8 54410003 */ bnel $v0, $at, .L7F0253B8 +/* 059EDC 7F0253AC 26310001 */ addiu $s1, $s1, 1 +.L7F0253B0: +/* 059EE0 7F0253B0 AF350058 */ sw $s5, 0x58($t9) +/* 059EE4 7F0253B4 26310001 */ addiu $s1, $s1, 1 +.L7F0253B8: +/* 059EE8 7F0253B8 24010002 */ li $at, 2 +/* 059EEC 7F0253BC 26520004 */ addiu $s2, $s2, 4 +/* 059EF0 7F0253C0 1621FFE0 */ bne $s1, $at, .L7F025344 +/* 059EF4 7F0253C4 26730004 */ addiu $s3, $s3, 4 +/* 059EF8 7F0253C8 A2950030 */ sb $s5, 0x30($s4) +/* 059EFC 7F0253CC 8FAF0080 */ lw $t7, 0x80($sp) +/* 059F00 7F0253D0 A2800031 */ sb $zero, 0x31($s4) +/* 059F04 7F0253D4 0C002914 */ jal get_random_value +/* 059F08 7F0253D8 AE8F002C */ sw $t7, 0x2c($s4) +/* 059F0C 7F0253DC 30580001 */ andi $t8, $v0, 1 +/* 059F10 7F0253E0 A2980032 */ sb $t8, 0x32($s4) +/* 059F14 7F0253E4 8FAA009C */ lw $t2, 0x9c($sp) +/* 059F18 7F0253E8 8D4E0004 */ lw $t6, 4($t2) +/* 059F1C 7F0253EC A28E0039 */ sb $t6, 0x39($s4) +/* 059F20 7F0253F0 8FAD009C */ lw $t5, 0x9c($sp) +/* 059F24 7F0253F4 8DAB0000 */ lw $t3, ($t5) +/* 059F28 7F0253F8 A28B0038 */ sb $t3, 0x38($s4) +/* 059F2C 7F0253FC 8FAC0064 */ lw $t4, 0x64($sp) +/* 059F30 7F025400 A28C003B */ sb $t4, 0x3b($s4) +/* 059F34 7F025404 8FA90060 */ lw $t1, 0x60($sp) +/* 059F38 7F025408 A289003A */ sb $t1, 0x3a($s4) +/* 059F3C 7F02540C 8FB9005C */ lw $t9, 0x5c($sp) +/* 059F40 7F025410 A299003D */ sb $t9, 0x3d($s4) +/* 059F44 7F025414 8FAF0058 */ lw $t7, 0x58($sp) +/* 059F48 7F025418 A2960036 */ sb $s6, 0x36($s4) +/* 059F4C 7F02541C A2970037 */ sb $s7, 0x37($s4) +/* 059F50 7F025420 AE800040 */ sw $zero, 0x40($s4) +/* 059F54 7F025424 A2800033 */ sb $zero, 0x33($s4) +/* 059F58 7F025428 A28F003C */ sb $t7, 0x3c($s4) +/* 059F5C 7F02542C 8FB8005C */ lw $t8, 0x5c($sp) +/* 059F60 7F025430 8FAA0058 */ lw $t2, 0x58($sp) +/* 059F64 7F025434 8FAE005C */ lw $t6, 0x5c($sp) +/* 059F68 7F025438 17000003 */ bnez $t8, .L7F025448 +/* 059F6C 7F02543C 00000000 */ nop +/* 059F70 7F025440 11400009 */ beqz $t2, .L7F025468 +/* 059F74 7F025444 8FAC00A0 */ lw $t4, 0xa0($sp) +.L7F025448: +/* 059F78 7F025448 11C00005 */ beqz $t6, .L7F025460 +/* 059F7C 7F02544C 8FAD0058 */ lw $t5, 0x58($sp) +/* 059F80 7F025450 11A00003 */ beqz $t5, .L7F025460 +/* 059F84 7F025454 240B0002 */ li $t3, 2 +/* 059F88 7F025458 1000001B */ b .L7F0254C8 +/* 059F8C 7F02545C A28B0034 */ sb $t3, 0x34($s4) +.L7F025460: +/* 059F90 7F025460 10000019 */ b .L7F0254C8 +/* 059F94 7F025464 A2950034 */ sb $s5, 0x34($s4) +.L7F025468: +/* 059F98 7F025468 31890080 */ andi $t1, $t4, 0x80 +/* 059F9C 7F02546C 11200003 */ beqz $t1, .L7F02547C +/* 059FA0 7F025470 00000000 */ nop +/* 059FA4 7F025474 10000006 */ b .L7F025490 +/* 059FA8 7F025478 A2950034 */ sb $s5, 0x34($s4) +.L7F02547C: +/* 059FAC 7F02547C 0C002914 */ jal get_random_value +/* 059FB0 7F025480 00000000 */ nop +/* 059FB4 7F025484 30590003 */ andi $t9, $v0, 3 +/* 059FB8 7F025488 272F0002 */ addiu $t7, $t9, 2 +/* 059FBC 7F02548C A28F0034 */ sb $t7, 0x34($s4) +.L7F025490: +/* 059FC0 7F025490 8FB8009C */ lw $t8, 0x9c($sp) +/* 059FC4 7F025494 8F0A0000 */ lw $t2, ($t8) +/* 059FC8 7F025498 5140000C */ beql $t2, $zero, .L7F0254CC +/* 059FCC 7F02549C 8FB900A0 */ lw $t9, 0xa0($sp) +/* 059FD0 7F0254A0 8F0E0004 */ lw $t6, 4($t8) +/* 059FD4 7F0254A4 51C00009 */ beql $t6, $zero, .L7F0254CC +/* 059FD8 7F0254A8 8FB900A0 */ lw $t9, 0xa0($sp) +/* 059FDC 7F0254AC 0C002914 */ jal get_random_value +/* 059FE0 7F0254B0 00000000 */ nop +/* 059FE4 7F0254B4 828D0034 */ lb $t5, 0x34($s4) +/* 059FE8 7F0254B8 304B0003 */ andi $t3, $v0, 3 +/* 059FEC 7F0254BC 01AB6021 */ addu $t4, $t5, $t3 +/* 059FF0 7F0254C0 25890002 */ addiu $t1, $t4, 2 +/* 059FF4 7F0254C4 A2890034 */ sb $t1, 0x34($s4) +.L7F0254C8: +/* 059FF8 7F0254C8 8FB900A0 */ lw $t9, 0xa0($sp) +.L7F0254CC: +/* 059FFC 7F0254CC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 05A000 7F0254D0 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05A004 7F0254D4 AE99004C */ sw $t9, 0x4c($s4) +/* 05A008 7F0254D8 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 05A00C 7F0254DC 02802025 */ move $a0, $s4 +/* 05A010 7F0254E0 3C053F00 */ lui $a1, 0x3f00 +/* 05A014 7F0254E4 AE8F0050 */ sw $t7, 0x50($s4) +/* 05A018 7F0254E8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 05A01C 7F0254EC AE800058 */ sw $zero, 0x58($s4) +/* 05A020 7F0254F0 AE800044 */ sw $zero, 0x44($s4) +/* 05A024 7F0254F4 AE800048 */ sw $zero, 0x48($s4) +/* 05A028 7F0254F8 A2800008 */ sb $zero, 8($s4) +/* 05A02C 7F0254FC 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05A030 7F025500 AE8A0054 */ sw $t2, 0x54($s4) +/* 05A034 7F025504 8FA20080 */ lw $v0, 0x80($sp) +/* 05A038 7F025508 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05A03C 7F02550C 44813000 */ mtc1 $at, $f6 +/* 05A040 7F025510 8C450000 */ lw $a1, ($v0) +/* 05A044 7F025514 8C470010 */ lw $a3, 0x10($v0) +/* 05A048 7F025518 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05A04C 7F02551C 8FA4008C */ lw $a0, 0x8c($sp) +/* 05A050 7F025520 8FA60098 */ lw $a2, 0x98($sp) +/* 05A054 7F025524 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05A058 7F025528 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05A05C 7F02552C 0FC093E3 */ jal sub_GAME_7F024F8C +/* 05A060 7F025530 02802025 */ move $a0, $s4 +/* 05A064 7F025534 8FBF003C */ lw $ra, 0x3c($sp) +/* 05A068 7F025538 8FB0001C */ lw $s0, 0x1c($sp) +/* 05A06C 7F02553C 8FB10020 */ lw $s1, 0x20($sp) +/* 05A070 7F025540 8FB20024 */ lw $s2, 0x24($sp) +/* 05A074 7F025544 8FB30028 */ lw $s3, 0x28($sp) +/* 05A078 7F025548 8FB4002C */ lw $s4, 0x2c($sp) +/* 05A07C 7F02554C 8FB50030 */ lw $s5, 0x30($sp) +/* 05A080 7F025550 8FB60034 */ lw $s6, 0x34($sp) +/* 05A084 7F025554 8FB70038 */ lw $s7, 0x38($sp) +/* 05A088 7F025558 03E00008 */ jr $ra +/* 05A08C 7F02555C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F025560(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F025560 +/* 05A090 7F025560 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05A094 7F025564 AFBF0024 */ sw $ra, 0x24($sp) +/* 05A098 7F025568 AFA50054 */ sw $a1, 0x54($sp) +/* 05A09C 7F02556C AFA40050 */ sw $a0, 0x50($sp) +/* 05A0A0 7F025570 AFA60058 */ sw $a2, 0x58($sp) +/* 05A0A4 7F025574 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A0A8 7F025578 24050001 */ li $a1, 1 +/* 05A0AC 7F02557C AFA2004C */ sw $v0, 0x4c($sp) +/* 05A0B0 7F025580 8FA40050 */ lw $a0, 0x50($sp) +/* 05A0B4 7F025584 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A0B8 7F025588 00002825 */ move $a1, $zero +/* 05A0BC 7F02558C 3C0F8003 */ lui $t7, %hi(D_800309B8) +/* 05A0C0 7F025590 25EF09B8 */ addiu $t7, %lo(D_800309B8) # addiu $t7, $t7, 0x9b8 +/* 05A0C4 7F025594 8FA4004C */ lw $a0, 0x4c($sp) +/* 05A0C8 7F025598 8DE10000 */ lw $at, ($t7) +/* 05A0CC 7F02559C 8DE80004 */ lw $t0, 4($t7) +/* 05A0D0 7F0255A0 27AE0038 */ addiu $t6, $sp, 0x38 +/* 05A0D4 7F0255A4 00402825 */ move $a1, $v0 +/* 05A0D8 7F0255A8 ADC10000 */ sw $at, ($t6) +/* 05A0DC 7F0255AC 1080002C */ beqz $a0, .L7F025660 +/* 05A0E0 7F0255B0 ADC80004 */ sw $t0, 4($t6) +/* 05A0E4 7F0255B4 1040002A */ beqz $v0, .L7F025660 +/* 05A0E8 7F0255B8 00000000 */ nop +/* 05A0EC 7F0255BC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A0F0 7F0255C0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A0F4 7F0255C4 24050001 */ li $a1, 1 +/* 05A0F8 7F0255C8 AFA20034 */ sw $v0, 0x34($sp) +/* 05A0FC 7F0255CC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A100 7F0255D0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A104 7F0255D4 00002825 */ move $a1, $zero +/* 05A108 7F0255D8 8FA90034 */ lw $t1, 0x34($sp) +/* 05A10C 7F0255DC 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A110 7F0255E0 2C460001 */ sltiu $a2, $v0, 1 +/* 05A114 7F0255E4 1120001A */ beqz $t1, .L7F025650 +/* 05A118 7F0255E8 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A11C 7F0255EC 50400019 */ beql $v0, $zero, .L7F025654 +/* 05A120 7F0255F0 2CD90001 */ sltiu $t9, $a2, 1 +/* 05A124 7F0255F4 0C002914 */ jal get_random_value +/* 05A128 7F0255F8 00000000 */ nop +/* 05A12C 7F0255FC 30460001 */ andi $a2, $v0, 1 +/* 05A130 7F025600 0C002914 */ jal get_random_value +/* 05A134 7F025604 AFA60044 */ sw $a2, 0x44($sp) +/* 05A138 7F025608 24010003 */ li $at, 3 +/* 05A13C 7F02560C 0041001B */ divu $zero, $v0, $at +/* 05A140 7F025610 00005010 */ mfhi $t2 +/* 05A144 7F025614 8FA60044 */ lw $a2, 0x44($sp) +/* 05A148 7F025618 15400007 */ bnez $t2, .L7F025638 +/* 05A14C 7F02561C 3C058003 */ lui $a1, %hi(ptr_doubles_firing_animation_groups) +/* 05A150 7F025620 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A154 7F025624 2CCB0001 */ sltiu $t3, $a2, 1 +/* 05A158 7F025628 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A15C 7F02562C AFA6003C */ sw $a2, 0x3c($sp) +/* 05A160 7F025630 10000022 */ b .L7F0256BC +/* 05A164 7F025634 AFAB0038 */ sw $t3, 0x38($sp) +.L7F025638: +/* 05A168 7F025638 240C0001 */ li $t4, 1 +/* 05A16C 7F02563C 240D0001 */ li $t5, 1 +/* 05A170 7F025640 24A5F6E0 */ addiu $a1, $a1, %lo(ptr_doubles_firing_animation_groups) +/* 05A174 7F025644 AFAC003C */ sw $t4, 0x3c($sp) +/* 05A178 7F025648 1000001C */ b .L7F0256BC +/* 05A17C 7F02564C AFAD0038 */ sw $t5, 0x38($sp) +.L7F025650: +/* 05A180 7F025650 2CD90001 */ sltiu $t9, $a2, 1 +.L7F025654: +/* 05A184 7F025654 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A188 7F025658 10000018 */ b .L7F0256BC +/* 05A18C 7F02565C AFB90038 */ sw $t9, 0x38($sp) +.L7F025660: +/* 05A190 7F025660 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A194 7F025664 AFA50048 */ sw $a1, 0x48($sp) +/* 05A198 7F025668 14400005 */ bnez $v0, .L7F025680 +/* 05A19C 7F02566C 8FA50048 */ lw $a1, 0x48($sp) +/* 05A1A0 7F025670 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A1A4 7F025674 00A02025 */ move $a0, $a1 +/* 05A1A8 7F025678 5040000A */ beql $v0, $zero, .L7F0256A4 +/* 05A1AC 7F02567C 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025680: +/* 05A1B0 7F025680 8FA2004C */ lw $v0, 0x4c($sp) +/* 05A1B4 7F025684 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A1B8 7F025688 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A1BC 7F02568C 0002302B */ sltu $a2, $zero, $v0 +/* 05A1C0 7F025690 2CCE0001 */ sltiu $t6, $a2, 1 +/* 05A1C4 7F025694 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A1C8 7F025698 10000008 */ b .L7F0256BC +/* 05A1CC 7F02569C AFAE0038 */ sw $t6, 0x38($sp) +/* 05A1D0 7F0256A0 8FA2004C */ lw $v0, 0x4c($sp) +.L7F0256A4: +/* 05A1D4 7F0256A4 3C058003 */ lui $a1, %hi(ptr_rifle_firing_animation_groups) +/* 05A1D8 7F0256A8 24A5ED28 */ addiu $a1, %lo(ptr_rifle_firing_animation_groups) # addiu $a1, $a1, -0x12d8 +/* 05A1DC 7F0256AC 0002302B */ sltu $a2, $zero, $v0 +/* 05A1E0 7F0256B0 2CC80001 */ sltiu $t0, $a2, 1 +/* 05A1E4 7F0256B4 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A1E8 7F0256B8 AFA80038 */ sw $t0, 0x38($sp) +.L7F0256BC: +/* 05A1EC 7F0256BC 8FA90054 */ lw $t1, 0x54($sp) +/* 05A1F0 7F0256C0 8FAA0058 */ lw $t2, 0x58($sp) +/* 05A1F4 7F0256C4 240B0001 */ li $t3, 1 +/* 05A1F8 7F0256C8 AFAB0018 */ sw $t3, 0x18($sp) +/* 05A1FC 7F0256CC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A200 7F0256D0 27A70038 */ addiu $a3, $sp, 0x38 +/* 05A204 7F0256D4 AFA90010 */ sw $t1, 0x10($sp) +/* 05A208 7F0256D8 0FC0945B */ jal sub_GAME_7F02516C +/* 05A20C 7F0256DC AFAA0014 */ sw $t2, 0x14($sp) +/* 05A210 7F0256E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05A214 7F0256E4 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05A218 7F0256E8 03E00008 */ jr $ra +/* 05A21C 7F0256EC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0256F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0256F0 +/* 05A220 7F0256F0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05A224 7F0256F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 05A228 7F0256F8 AFA50054 */ sw $a1, 0x54($sp) +/* 05A22C 7F0256FC AFA40050 */ sw $a0, 0x50($sp) +/* 05A230 7F025700 AFA60058 */ sw $a2, 0x58($sp) +/* 05A234 7F025704 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A238 7F025708 24050001 */ li $a1, 1 +/* 05A23C 7F02570C AFA2004C */ sw $v0, 0x4c($sp) +/* 05A240 7F025710 8FA40050 */ lw $a0, 0x50($sp) +/* 05A244 7F025714 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A248 7F025718 00002825 */ move $a1, $zero +/* 05A24C 7F02571C 3C0F8003 */ lui $t7, %hi(D_800309C0) +/* 05A250 7F025720 25EF09C0 */ addiu $t7, %lo(D_800309C0) # addiu $t7, $t7, 0x9c0 +/* 05A254 7F025724 8FA4004C */ lw $a0, 0x4c($sp) +/* 05A258 7F025728 8DE10000 */ lw $at, ($t7) +/* 05A25C 7F02572C 8DE80004 */ lw $t0, 4($t7) +/* 05A260 7F025730 27AE0038 */ addiu $t6, $sp, 0x38 +/* 05A264 7F025734 00402825 */ move $a1, $v0 +/* 05A268 7F025738 ADC10000 */ sw $at, ($t6) +/* 05A26C 7F02573C 1080002C */ beqz $a0, .L7F0257F0 +/* 05A270 7F025740 ADC80004 */ sw $t0, 4($t6) +/* 05A274 7F025744 1040002A */ beqz $v0, .L7F0257F0 +/* 05A278 7F025748 00000000 */ nop +/* 05A27C 7F02574C 8FA40050 */ lw $a0, 0x50($sp) +/* 05A280 7F025750 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A284 7F025754 24050001 */ li $a1, 1 +/* 05A288 7F025758 AFA20034 */ sw $v0, 0x34($sp) +/* 05A28C 7F02575C 8FA40050 */ lw $a0, 0x50($sp) +/* 05A290 7F025760 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A294 7F025764 00002825 */ move $a1, $zero +/* 05A298 7F025768 8FA90034 */ lw $t1, 0x34($sp) +/* 05A29C 7F02576C 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A2A0 7F025770 2C460001 */ sltiu $a2, $v0, 1 +/* 05A2A4 7F025774 1120001A */ beqz $t1, .L7F0257E0 +/* 05A2A8 7F025778 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A2AC 7F02577C 50400019 */ beql $v0, $zero, .L7F0257E4 +/* 05A2B0 7F025780 2CD90001 */ sltiu $t9, $a2, 1 +/* 05A2B4 7F025784 0C002914 */ jal get_random_value +/* 05A2B8 7F025788 00000000 */ nop +/* 05A2BC 7F02578C 30460001 */ andi $a2, $v0, 1 +/* 05A2C0 7F025790 0C002914 */ jal get_random_value +/* 05A2C4 7F025794 AFA60044 */ sw $a2, 0x44($sp) +/* 05A2C8 7F025798 24010003 */ li $at, 3 +/* 05A2CC 7F02579C 0041001B */ divu $zero, $v0, $at +/* 05A2D0 7F0257A0 00005010 */ mfhi $t2 +/* 05A2D4 7F0257A4 8FA60044 */ lw $a2, 0x44($sp) +/* 05A2D8 7F0257A8 15400007 */ bnez $t2, .L7F0257C8 +/* 05A2DC 7F0257AC 3C058003 */ lui $a1, %hi(ptr_crouched_doubles_firing_animation_groups) +/* 05A2E0 7F0257B0 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A2E4 7F0257B4 2CCB0001 */ sltiu $t3, $a2, 1 +/* 05A2E8 7F0257B8 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A2EC 7F0257BC AFA6003C */ sw $a2, 0x3c($sp) +/* 05A2F0 7F0257C0 10000022 */ b .L7F02584C +/* 05A2F4 7F0257C4 AFAB0038 */ sw $t3, 0x38($sp) +.L7F0257C8: +/* 05A2F8 7F0257C8 240C0001 */ li $t4, 1 +/* 05A2FC 7F0257CC 240D0001 */ li $t5, 1 +/* 05A300 7F0257D0 24A5FFF8 */ addiu $a1, $a1, %lo(ptr_crouched_doubles_firing_animation_groups) +/* 05A304 7F0257D4 AFAC003C */ sw $t4, 0x3c($sp) +/* 05A308 7F0257D8 1000001C */ b .L7F02584C +/* 05A30C 7F0257DC AFAD0038 */ sw $t5, 0x38($sp) +.L7F0257E0: +/* 05A310 7F0257E0 2CD90001 */ sltiu $t9, $a2, 1 +.L7F0257E4: +/* 05A314 7F0257E4 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A318 7F0257E8 10000018 */ b .L7F02584C +/* 05A31C 7F0257EC AFB90038 */ sw $t9, 0x38($sp) +.L7F0257F0: +/* 05A320 7F0257F0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A324 7F0257F4 AFA50048 */ sw $a1, 0x48($sp) +/* 05A328 7F0257F8 14400005 */ bnez $v0, .L7F025810 +/* 05A32C 7F0257FC 8FA50048 */ lw $a1, 0x48($sp) +/* 05A330 7F025800 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A334 7F025804 00A02025 */ move $a0, $a1 +/* 05A338 7F025808 5040000A */ beql $v0, $zero, .L7F025834 +/* 05A33C 7F02580C 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025810: +/* 05A340 7F025810 8FA2004C */ lw $v0, 0x4c($sp) +/* 05A344 7F025814 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A348 7F025818 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A34C 7F02581C 0002302B */ sltu $a2, $zero, $v0 +/* 05A350 7F025820 2CCE0001 */ sltiu $t6, $a2, 1 +/* 05A354 7F025824 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A358 7F025828 10000008 */ b .L7F02584C +/* 05A35C 7F02582C AFAE0038 */ sw $t6, 0x38($sp) +/* 05A360 7F025830 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025834: +/* 05A364 7F025834 3C058003 */ lui $a1, %hi(ptr_crouched_rifle_firing_animation_groups) +/* 05A368 7F025838 24A5F970 */ addiu $a1, %lo(ptr_crouched_rifle_firing_animation_groups) # addiu $a1, $a1, -0x690 +/* 05A36C 7F02583C 0002302B */ sltu $a2, $zero, $v0 +/* 05A370 7F025840 2CC80001 */ sltiu $t0, $a2, 1 +/* 05A374 7F025844 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A378 7F025848 AFA80038 */ sw $t0, 0x38($sp) +.L7F02584C: +/* 05A37C 7F02584C 8FA90054 */ lw $t1, 0x54($sp) +/* 05A380 7F025850 8FAA0058 */ lw $t2, 0x58($sp) +/* 05A384 7F025854 8FA40050 */ lw $a0, 0x50($sp) +/* 05A388 7F025858 27A70038 */ addiu $a3, $sp, 0x38 +/* 05A38C 7F02585C AFA00018 */ sw $zero, 0x18($sp) +/* 05A390 7F025860 AFA90010 */ sw $t1, 0x10($sp) +/* 05A394 7F025864 0FC0945B */ jal sub_GAME_7F02516C +/* 05A398 7F025868 AFAA0014 */ sw $t2, 0x14($sp) +/* 05A39C 7F02586C 8FBF0024 */ lw $ra, 0x24($sp) +/* 05A3A0 7F025870 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05A3A4 7F025874 03E00008 */ jr $ra +/* 05A3A8 7F025878 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02587C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02587C +/* 05A3AC 7F02587C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 05A3B0 7F025880 AFB20024 */ sw $s2, 0x24($sp) +/* 05A3B4 7F025884 00A09025 */ move $s2, $a1 +/* 05A3B8 7F025888 AFBF0034 */ sw $ra, 0x34($sp) +/* 05A3BC 7F02588C AFB50030 */ sw $s5, 0x30($sp) +/* 05A3C0 7F025890 0080A825 */ move $s5, $a0 +/* 05A3C4 7F025894 AFB4002C */ sw $s4, 0x2c($sp) +/* 05A3C8 7F025898 AFB30028 */ sw $s3, 0x28($sp) +/* 05A3CC 7F02589C AFB10020 */ sw $s1, 0x20($sp) +/* 05A3D0 7F0258A0 AFB0001C */ sw $s0, 0x1c($sp) +/* 05A3D4 7F0258A4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A3D8 7F0258A8 24050001 */ li $a1, 1 +/* 05A3DC 7F0258AC 00408025 */ move $s0, $v0 +/* 05A3E0 7F0258B0 02A02025 */ move $a0, $s5 +/* 05A3E4 7F0258B4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A3E8 7F0258B8 00002825 */ move $a1, $zero +/* 05A3EC 7F0258BC 3C0F8003 */ lui $t7, %hi(D_800309C8) +/* 05A3F0 7F0258C0 25EF09C8 */ addiu $t7, %lo(D_800309C8) # addiu $t7, $t7, 0x9c8 +/* 05A3F4 7F0258C4 8DE10000 */ lw $at, ($t7) +/* 05A3F8 7F0258C8 8DE80004 */ lw $t0, 4($t7) +/* 05A3FC 7F0258CC 27AE0070 */ addiu $t6, $sp, 0x70 +/* 05A400 7F0258D0 3C0A8003 */ lui $t2, %hi(D_800309D0) +/* 05A404 7F0258D4 254A09D0 */ addiu $t2, %lo(D_800309D0) # addiu $t2, $t2, 0x9d0 +/* 05A408 7F0258D8 ADC10000 */ sw $at, ($t6) +/* 05A40C 7F0258DC ADC80004 */ sw $t0, 4($t6) +/* 05A410 7F0258E0 8D4D0004 */ lw $t5, 4($t2) +/* 05A414 7F0258E4 8D410000 */ lw $at, ($t2) +/* 05A418 7F0258E8 27A90068 */ addiu $t1, $sp, 0x68 +/* 05A41C 7F0258EC 3C188003 */ lui $t8, %hi(D_800309D8) +/* 05A420 7F0258F0 271809D8 */ addiu $t8, %lo(D_800309D8) # addiu $t8, $t8, 0x9d8 +/* 05A424 7F0258F4 AD2D0004 */ sw $t5, 4($t1) +/* 05A428 7F0258F8 AD210000 */ sw $at, ($t1) +/* 05A42C 7F0258FC 8F080004 */ lw $t0, 4($t8) +/* 05A430 7F025900 8F010000 */ lw $at, ($t8) +/* 05A434 7F025904 27B90060 */ addiu $t9, $sp, 0x60 +/* 05A438 7F025908 00408825 */ move $s1, $v0 +/* 05A43C 7F02590C AF280004 */ sw $t0, 4($t9) +/* 05A440 7F025910 12000045 */ beqz $s0, .L7F025A28 +/* 05A444 7F025914 AF210000 */ sw $at, ($t9) +/* 05A448 7F025918 10400043 */ beqz $v0, .L7F025A28 +/* 05A44C 7F02591C 02A02025 */ move $a0, $s5 +/* 05A450 7F025920 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A454 7F025924 24050001 */ li $a1, 1 +/* 05A458 7F025928 00408025 */ move $s0, $v0 +/* 05A45C 7F02592C 02A02025 */ move $a0, $s5 +/* 05A460 7F025930 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A464 7F025934 00002825 */ move $a1, $zero +/* 05A468 7F025938 1200000D */ beqz $s0, .L7F025970 +/* 05A46C 7F02593C 00001825 */ move $v1, $zero +/* 05A470 7F025940 5040000C */ beql $v0, $zero, .L7F025974 +/* 05A474 7F025944 2C4B0001 */ sltiu $t3, $v0, 1 +/* 05A478 7F025948 0C002914 */ jal get_random_value +/* 05A47C 7F02594C 00000000 */ nop +/* 05A480 7F025950 304C0001 */ andi $t4, $v0, 1 +/* 05A484 7F025954 0C002914 */ jal get_random_value +/* 05A488 7F025958 AFAC0078 */ sw $t4, 0x78($sp) +/* 05A48C 7F02595C 24010003 */ li $at, 3 +/* 05A490 7F025960 0041001B */ divu $zero, $v0, $at +/* 05A494 7F025964 00001810 */ mfhi $v1 +/* 05A498 7F025968 10000003 */ b .L7F025978 +/* 05A49C 7F02596C 00000000 */ nop +.L7F025970: +/* 05A4A0 7F025970 2C4B0001 */ sltiu $t3, $v0, 1 +.L7F025974: +/* 05A4A4 7F025974 AFAB0078 */ sw $t3, 0x78($sp) +.L7F025978: +/* 05A4A8 7F025978 14600013 */ bnez $v1, .L7F0259C8 +/* 05A4AC 7F02597C 24140001 */ li $s4, 1 +/* 05A4B0 7F025980 12400005 */ beqz $s2, .L7F025998 +/* 05A4B4 7F025984 3C0A8003 */ lui $t2, %hi(D_800306F0) +/* 05A4B8 7F025988 3C098003 */ lui $t1, %hi(D_80030738) +/* 05A4BC 7F02598C 25290738 */ addiu $t1, %lo(D_80030738) # addiu $t1, $t1, 0x738 +/* 05A4C0 7F025990 10000003 */ b .L7F0259A0 +/* 05A4C4 7F025994 AFA90084 */ sw $t1, 0x84($sp) +.L7F025998: +/* 05A4C8 7F025998 254A06F0 */ addiu $t2, %lo(D_800306F0) # addiu $t2, $t2, 0x6f0 +/* 05A4CC 7F02599C AFAA0084 */ sw $t2, 0x84($sp) +.L7F0259A0: +/* 05A4D0 7F0259A0 8FAD0078 */ lw $t5, 0x78($sp) +/* 05A4D4 7F0259A4 240F0001 */ li $t7, 1 +/* 05A4D8 7F0259A8 24020001 */ li $v0, 1 +/* 05A4DC 7F0259AC 11A00003 */ beqz $t5, .L7F0259BC +/* 05A4E0 7F0259B0 24140001 */ li $s4, 1 +/* 05A4E4 7F0259B4 10000048 */ b .L7F025AD8 +/* 05A4E8 7F0259B8 AFAF0074 */ sw $t7, 0x74($sp) +.L7F0259BC: +/* 05A4EC 7F0259BC AFA20070 */ sw $v0, 0x70($sp) +/* 05A4F0 7F0259C0 10000045 */ b .L7F025AD8 +/* 05A4F4 7F0259C4 24140001 */ li $s4, 1 +.L7F0259C8: +/* 05A4F8 7F0259C8 1474000C */ bne $v1, $s4, .L7F0259FC +/* 05A4FC 7F0259CC 00000000 */ nop +/* 05A500 7F0259D0 12400005 */ beqz $s2, .L7F0259E8 +/* 05A504 7F0259D4 3C198003 */ lui $t9, %hi(D_80030780) +/* 05A508 7F0259D8 3C0E8003 */ lui $t6, %hi(D_800307C8) +/* 05A50C 7F0259DC 25CE07C8 */ addiu $t6, %lo(D_800307C8) # addiu $t6, $t6, 0x7c8 +/* 05A510 7F0259E0 10000003 */ b .L7F0259F0 +/* 05A514 7F0259E4 AFAE0084 */ sw $t6, 0x84($sp) +.L7F0259E8: +/* 05A518 7F0259E8 27390780 */ addiu $t9, %lo(D_80030780) # addiu $t9, $t9, 0x780 +/* 05A51C 7F0259EC AFB90084 */ sw $t9, 0x84($sp) +.L7F0259F0: +/* 05A520 7F0259F0 AFB40074 */ sw $s4, 0x74($sp) +/* 05A524 7F0259F4 10000038 */ b .L7F025AD8 +/* 05A528 7F0259F8 AFB40070 */ sw $s4, 0x70($sp) +.L7F0259FC: +/* 05A52C 7F0259FC 12400005 */ beqz $s2, .L7F025A14 +/* 05A530 7F025A00 3C088003 */ lui $t0, %hi(D_80030810) +/* 05A534 7F025A04 3C188003 */ lui $t8, %hi(D_80030858) +/* 05A538 7F025A08 27180858 */ addiu $t8, %lo(D_80030858) # addiu $t8, $t8, 0x858 +/* 05A53C 7F025A0C 10000003 */ b .L7F025A1C +/* 05A540 7F025A10 AFB80084 */ sw $t8, 0x84($sp) +.L7F025A14: +/* 05A544 7F025A14 25080810 */ addiu $t0, %lo(D_80030810) # addiu $t0, $t0, 0x810 +/* 05A548 7F025A18 AFA80084 */ sw $t0, 0x84($sp) +.L7F025A1C: +/* 05A54C 7F025A1C AFB40074 */ sw $s4, 0x74($sp) +/* 05A550 7F025A20 1000002D */ b .L7F025AD8 +/* 05A554 7F025A24 AFB40070 */ sw $s4, 0x70($sp) +.L7F025A28: +/* 05A558 7F025A28 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A55C 7F025A2C 02002025 */ move $a0, $s0 +/* 05A560 7F025A30 54400005 */ bnezl $v0, .L7F025A48 +/* 05A564 7F025A34 0010102B */ sltu $v0, $zero, $s0 +/* 05A568 7F025A38 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A56C 7F025A3C 02202025 */ move $a0, $s1 +/* 05A570 7F025A40 10400013 */ beqz $v0, .L7F025A90 +/* 05A574 7F025A44 0010102B */ sltu $v0, $zero, $s0 +.L7F025A48: +/* 05A578 7F025A48 12400005 */ beqz $s2, .L7F025A60 +/* 05A57C 7F025A4C AFA20078 */ sw $v0, 0x78($sp) +/* 05A580 7F025A50 3C0C8003 */ lui $t4, %hi(D_80030738) +/* 05A584 7F025A54 258C0738 */ addiu $t4, %lo(D_80030738) # addiu $t4, $t4, 0x738 +/* 05A588 7F025A58 10000004 */ b .L7F025A6C +/* 05A58C 7F025A5C AFAC0084 */ sw $t4, 0x84($sp) +.L7F025A60: +/* 05A590 7F025A60 3C0B8003 */ lui $t3, %hi(D_800306F0) +/* 05A594 7F025A64 256B06F0 */ addiu $t3, %lo(D_800306F0) # addiu $t3, $t3, 0x6f0 +/* 05A598 7F025A68 AFAB0084 */ sw $t3, 0x84($sp) +.L7F025A6C: +/* 05A59C 7F025A6C 10400004 */ beqz $v0, .L7F025A80 +/* 05A5A0 7F025A70 24090001 */ li $t1, 1 +/* 05A5A4 7F025A74 AFA90074 */ sw $t1, 0x74($sp) +/* 05A5A8 7F025A78 10000017 */ b .L7F025AD8 +/* 05A5AC 7F025A7C 24140001 */ li $s4, 1 +.L7F025A80: +/* 05A5B0 7F025A80 24020001 */ li $v0, 1 +/* 05A5B4 7F025A84 AFA20070 */ sw $v0, 0x70($sp) +/* 05A5B8 7F025A88 10000013 */ b .L7F025AD8 +/* 05A5BC 7F025A8C 24140001 */ li $s4, 1 +.L7F025A90: +/* 05A5C0 7F025A90 0010102B */ sltu $v0, $zero, $s0 +/* 05A5C4 7F025A94 12400005 */ beqz $s2, .L7F025AAC +/* 05A5C8 7F025A98 AFA20078 */ sw $v0, 0x78($sp) +/* 05A5CC 7F025A9C 3C0A8003 */ lui $t2, %hi(D_800306A8) +/* 05A5D0 7F025AA0 254A06A8 */ addiu $t2, %lo(D_800306A8) # addiu $t2, $t2, 0x6a8 +/* 05A5D4 7F025AA4 10000004 */ b .L7F025AB8 +/* 05A5D8 7F025AA8 AFAA0084 */ sw $t2, 0x84($sp) +.L7F025AAC: +/* 05A5DC 7F025AAC 3C0D8003 */ lui $t5, %hi(D_80030660) +/* 05A5E0 7F025AB0 25AD0660 */ addiu $t5, %lo(D_80030660) # addiu $t5, $t5, 0x660 +/* 05A5E4 7F025AB4 AFAD0084 */ sw $t5, 0x84($sp) +.L7F025AB8: +/* 05A5E8 7F025AB8 10400005 */ beqz $v0, .L7F025AD0 +/* 05A5EC 7F025ABC 24140001 */ li $s4, 1 +/* 05A5F0 7F025AC0 240F0001 */ li $t7, 1 +/* 05A5F4 7F025AC4 AFAF0074 */ sw $t7, 0x74($sp) +/* 05A5F8 7F025AC8 10000003 */ b .L7F025AD8 +/* 05A5FC 7F025ACC 24140001 */ li $s4, 1 +.L7F025AD0: +/* 05A600 7F025AD0 24020001 */ li $v0, 1 +/* 05A604 7F025AD4 AFA20070 */ sw $v0, 0x70($sp) +.L7F025AD8: +/* 05A608 7F025AD8 00008825 */ move $s1, $zero +/* 05A60C 7F025ADC 00009025 */ move $s2, $zero +/* 05A610 7F025AE0 27B30070 */ addiu $s3, $sp, 0x70 +.L7F025AE4: +/* 05A614 7F025AE4 8E6E0000 */ lw $t6, ($s3) +/* 05A618 7F025AE8 02A02025 */ move $a0, $s5 +/* 05A61C 7F025AEC 51C00012 */ beql $t6, $zero, .L7F025B38 +/* 05A620 7F025AF0 26310001 */ addiu $s1, $s1, 1 +/* 05A624 7F025AF4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A628 7F025AF8 02202825 */ move $a1, $s1 +/* 05A62C 7F025AFC 8C500004 */ lw $s0, 4($v0) +/* 05A630 7F025B00 0FC177F3 */ jal get_automatic_firing_rate +/* 05A634 7F025B04 82040080 */ lb $a0, 0x80($s0) +/* 05A638 7F025B08 04410002 */ bgez $v0, .L7F025B14 +/* 05A63C 7F025B0C 03B2C821 */ addu $t9, $sp, $s2 +/* 05A640 7F025B10 AF340068 */ sw $s4, 0x68($t9) +.L7F025B14: +/* 05A644 7F025B14 82020080 */ lb $v0, 0x80($s0) +/* 05A648 7F025B18 24010019 */ li $at, 25 +/* 05A64C 7F025B1C 03B2C021 */ addu $t8, $sp, $s2 +/* 05A650 7F025B20 10410003 */ beq $v0, $at, .L7F025B30 +/* 05A654 7F025B24 24010018 */ li $at, 24 +/* 05A658 7F025B28 54410003 */ bnel $v0, $at, .L7F025B38 +/* 05A65C 7F025B2C 26310001 */ addiu $s1, $s1, 1 +.L7F025B30: +/* 05A660 7F025B30 AF140060 */ sw $s4, 0x60($t8) +/* 05A664 7F025B34 26310001 */ addiu $s1, $s1, 1 +.L7F025B38: +/* 05A668 7F025B38 24010002 */ li $at, 2 +/* 05A66C 7F025B3C 26520004 */ addiu $s2, $s2, 4 +/* 05A670 7F025B40 1621FFE8 */ bne $s1, $at, .L7F025AE4 +/* 05A674 7F025B44 26730004 */ addiu $s3, $s3, 4 +/* 05A678 7F025B48 24080009 */ li $t0, 9 +/* 05A67C 7F025B4C A2A80007 */ sb $t0, 7($s5) +/* 05A680 7F025B50 0C002914 */ jal get_random_value +/* 05A684 7F025B54 AEA00030 */ sw $zero, 0x30($s5) +/* 05A688 7F025B58 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 05A68C 7F025B5C 44812000 */ mtc1 $at, $f4 +/* 05A690 7F025B60 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 05A694 7F025B64 C426CE4C */ lwc1 $f6, %lo(ai_reaction_speed)($at) +/* 05A698 7F025B68 AEA00038 */ sw $zero, 0x38($s5) +/* 05A69C 7F025B6C 46062202 */ mul.s $f8, $f4, $f6 +/* 05A6A0 7F025B70 4600428D */ trunc.w.s $f10, $f8 +/* 05A6A4 7F025B74 440B5000 */ mfc1 $t3, $f10 +/* 05A6A8 7F025B78 00000000 */ nop +/* 05A6AC 7F025B7C 004B001B */ divu $zero, $v0, $t3 +/* 05A6B0 7F025B80 00004810 */ mfhi $t1 +/* 05A6B4 7F025B84 252A0078 */ addiu $t2, $t1, 0x78 +/* 05A6B8 7F025B88 AEAA0034 */ sw $t2, 0x34($s5) +/* 05A6BC 7F025B8C 8FAD0084 */ lw $t5, 0x84($sp) +/* 05A6C0 7F025B90 15600002 */ bnez $t3, .L7F025B9C +/* 05A6C4 7F025B94 00000000 */ nop +/* 05A6C8 7F025B98 0007000D */ break 7 +.L7F025B9C: +/* 05A6CC 7F025B9C AEA00040 */ sw $zero, 0x40($s5) +/* 05A6D0 7F025BA0 0C002914 */ jal get_random_value +/* 05A6D4 7F025BA4 AEAD003C */ sw $t5, 0x3c($s5) +/* 05A6D8 7F025BA8 304F0001 */ andi $t7, $v0, 1 +/* 05A6DC 7F025BAC AEAF0044 */ sw $t7, 0x44($s5) +/* 05A6E0 7F025BB0 8FAE0074 */ lw $t6, 0x74($sp) +/* 05A6E4 7F025BB4 44808000 */ mtc1 $zero, $f16 +/* 05A6E8 7F025BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05A6EC 7F025BBC A2AE0049 */ sb $t6, 0x49($s5) +/* 05A6F0 7F025BC0 8FB90070 */ lw $t9, 0x70($sp) +/* 05A6F4 7F025BC4 44819000 */ mtc1 $at, $f18 +/* 05A6F8 7F025BC8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05A6FC 7F025BCC A2B90048 */ sb $t9, 0x48($s5) +/* 05A700 7F025BD0 8FB8006C */ lw $t8, 0x6c($sp) +/* 05A704 7F025BD4 44812000 */ mtc1 $at, $f4 +/* 05A708 7F025BD8 8EA4001C */ lw $a0, 0x1c($s5) +/* 05A70C 7F025BDC A2B8004B */ sb $t8, 0x4b($s5) +/* 05A710 7F025BE0 8FA80068 */ lw $t0, 0x68($sp) +/* 05A714 7F025BE4 A2A8004A */ sb $t0, 0x4a($s5) +/* 05A718 7F025BE8 8FAC0064 */ lw $t4, 0x64($sp) +/* 05A71C 7F025BEC A2AC004D */ sb $t4, 0x4d($s5) +/* 05A720 7F025BF0 8FAB0060 */ lw $t3, 0x60($sp) +/* 05A724 7F025BF4 A2A00008 */ sb $zero, 8($s5) +/* 05A728 7F025BF8 E6B00054 */ swc1 $f16, 0x54($s5) +/* 05A72C 7F025BFC A2AB004C */ sb $t3, 0x4c($s5) +/* 05A730 7F025C00 8FA90084 */ lw $t1, 0x84($sp) +/* 05A734 7F025C04 8FA60078 */ lw $a2, 0x78($sp) +/* 05A738 7F025C08 8D250000 */ lw $a1, ($t1) +/* 05A73C 7F025C0C 8D270010 */ lw $a3, 0x10($t1) +/* 05A740 7F025C10 E7B20010 */ swc1 $f18, 0x10($sp) +/* 05A744 7F025C14 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05A748 7F025C18 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05A74C 7F025C1C 8FBF0034 */ lw $ra, 0x34($sp) +/* 05A750 7F025C20 8FB0001C */ lw $s0, 0x1c($sp) +/* 05A754 7F025C24 8FB10020 */ lw $s1, 0x20($sp) +/* 05A758 7F025C28 8FB20024 */ lw $s2, 0x24($sp) +/* 05A75C 7F025C2C 8FB30028 */ lw $s3, 0x28($sp) +/* 05A760 7F025C30 8FB4002C */ lw $s4, 0x2c($sp) +/* 05A764 7F025C34 8FB50030 */ lw $s5, 0x30($sp) +/* 05A768 7F025C38 03E00008 */ jr $ra +/* 05A76C 7F025C3C 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F025C40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F025C40 +/* 05A770 7F025C40 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 05A774 7F025C44 AFBF002C */ sw $ra, 0x2c($sp) +/* 05A778 7F025C48 AFB30028 */ sw $s3, 0x28($sp) +/* 05A77C 7F025C4C AFB20024 */ sw $s2, 0x24($sp) +/* 05A780 7F025C50 AFB10020 */ sw $s1, 0x20($sp) +/* 05A784 7F025C54 AFB0001C */ sw $s0, 0x1c($sp) +/* 05A788 7F025C58 AFA50094 */ sw $a1, 0x94($sp) +/* 05A78C 7F025C5C 8C8E001C */ lw $t6, 0x1c($a0) +/* 05A790 7F025C60 00809025 */ move $s2, $a0 +/* 05A794 7F025C64 24050001 */ li $a1, 1 +/* 05A798 7F025C68 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A79C 7F025C6C AFAE008C */ sw $t6, 0x8c($sp) +/* 05A7A0 7F025C70 00408025 */ move $s0, $v0 +/* 05A7A4 7F025C74 02402025 */ move $a0, $s2 +/* 05A7A8 7F025C78 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A7AC 7F025C7C 00002825 */ move $a1, $zero +/* 05A7B0 7F025C80 3C188003 */ lui $t8, %hi(D_800309E0) +/* 05A7B4 7F025C84 AFA00078 */ sw $zero, 0x78($sp) +/* 05A7B8 7F025C88 271809E0 */ addiu $t8, %lo(D_800309E0) # addiu $t8, $t8, 0x9e0 +/* 05A7BC 7F025C8C 8F010000 */ lw $at, ($t8) +/* 05A7C0 7F025C90 8F090004 */ lw $t1, 4($t8) +/* 05A7C4 7F025C94 27AF0064 */ addiu $t7, $sp, 0x64 +/* 05A7C8 7F025C98 3C0B8003 */ lui $t3, %hi(D_800309E8) +/* 05A7CC 7F025C9C ADE10000 */ sw $at, ($t7) +/* 05A7D0 7F025CA0 ADE90004 */ sw $t1, 4($t7) +/* 05A7D4 7F025CA4 AFA0005C */ sw $zero, 0x5c($sp) +/* 05A7D8 7F025CA8 256B09E8 */ addiu $t3, %lo(D_800309E8) # addiu $t3, $t3, 0x9e8 +/* 05A7DC 7F025CAC 8D610000 */ lw $at, ($t3) +/* 05A7E0 7F025CB0 8D6E0004 */ lw $t6, 4($t3) +/* 05A7E4 7F025CB4 27AA0054 */ addiu $t2, $sp, 0x54 +/* 05A7E8 7F025CB8 3C198003 */ lui $t9, %hi(D_800309F0) +/* 05A7EC 7F025CBC 273909F0 */ addiu $t9, %lo(D_800309F0) # addiu $t9, $t9, 0x9f0 +/* 05A7F0 7F025CC0 AD410000 */ sw $at, ($t2) +/* 05A7F4 7F025CC4 AD4E0004 */ sw $t6, 4($t2) +/* 05A7F8 7F025CC8 8F290004 */ lw $t1, 4($t9) +/* 05A7FC 7F025CCC 8F210000 */ lw $at, ($t9) +/* 05A800 7F025CD0 27A8004C */ addiu $t0, $sp, 0x4c +/* 05A804 7F025CD4 00408825 */ move $s1, $v0 +/* 05A808 7F025CD8 24130001 */ li $s3, 1 +/* 05A80C 7F025CDC AD090004 */ sw $t1, 4($t0) +/* 05A810 7F025CE0 12000029 */ beqz $s0, .L7F025D88 +/* 05A814 7F025CE4 AD010000 */ sw $at, ($t0) +/* 05A818 7F025CE8 10400027 */ beqz $v0, .L7F025D88 +/* 05A81C 7F025CEC 02402025 */ move $a0, $s2 +/* 05A820 7F025CF0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A824 7F025CF4 24050001 */ li $a1, 1 +/* 05A828 7F025CF8 00408025 */ move $s0, $v0 +/* 05A82C 7F025CFC 02402025 */ move $a0, $s2 +/* 05A830 7F025D00 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A834 7F025D04 00002825 */ move $a1, $zero +/* 05A838 7F025D08 12000018 */ beqz $s0, .L7F025D6C +/* 05A83C 7F025D0C 2C430001 */ sltiu $v1, $v0, 1 +/* 05A840 7F025D10 50400017 */ beql $v0, $zero, .L7F025D70 +/* 05A844 7F025D14 24080001 */ li $t0, 1 +/* 05A848 7F025D18 0C002914 */ jal get_random_value +/* 05A84C 7F025D1C 00000000 */ nop +/* 05A850 7F025D20 304D0001 */ andi $t5, $v0, 1 +/* 05A854 7F025D24 240C0001 */ li $t4, 1 +/* 05A858 7F025D28 AFAD007C */ sw $t5, 0x7c($sp) +/* 05A85C 7F025D2C 0C002914 */ jal get_random_value +/* 05A860 7F025D30 AFAC0078 */ sw $t4, 0x78($sp) +/* 05A864 7F025D34 24010003 */ li $at, 3 +/* 05A868 7F025D38 0041001B */ divu $zero, $v0, $at +/* 05A86C 7F025D3C 00005010 */ mfhi $t2 +/* 05A870 7F025D40 24180001 */ li $t8, 1 +/* 05A874 7F025D44 15400006 */ bnez $t2, .L7F025D60 +/* 05A878 7F025D48 240F0001 */ li $t7, 1 +/* 05A87C 7F025D4C 8FAB007C */ lw $t3, 0x7c($sp) +/* 05A880 7F025D50 2D6E0001 */ sltiu $t6, $t3, 1 +/* 05A884 7F025D54 AFAE0064 */ sw $t6, 0x64($sp) +/* 05A888 7F025D58 1000001F */ b .L7F025DD8 +/* 05A88C 7F025D5C AFAB0068 */ sw $t3, 0x68($sp) +.L7F025D60: +/* 05A890 7F025D60 AFB80068 */ sw $t8, 0x68($sp) +/* 05A894 7F025D64 1000001C */ b .L7F025DD8 +/* 05A898 7F025D68 AFAF0064 */ sw $t7, 0x64($sp) +.L7F025D6C: +/* 05A89C 7F025D6C 24080001 */ li $t0, 1 +.L7F025D70: +/* 05A8A0 7F025D70 2C790001 */ sltiu $t9, $v1, 1 +/* 05A8A4 7F025D74 AFA3007C */ sw $v1, 0x7c($sp) +/* 05A8A8 7F025D78 AFA80078 */ sw $t0, 0x78($sp) +/* 05A8AC 7F025D7C AFA30068 */ sw $v1, 0x68($sp) +/* 05A8B0 7F025D80 10000015 */ b .L7F025DD8 +/* 05A8B4 7F025D84 AFB90064 */ sw $t9, 0x64($sp) +.L7F025D88: +/* 05A8B8 7F025D88 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A8BC 7F025D8C 02002025 */ move $a0, $s0 +/* 05A8C0 7F025D90 54400005 */ bnezl $v0, .L7F025DA8 +/* 05A8C4 7F025D94 0010102B */ sltu $v0, $zero, $s0 +/* 05A8C8 7F025D98 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A8CC 7F025D9C 02202025 */ move $a0, $s1 +/* 05A8D0 7F025DA0 10400008 */ beqz $v0, .L7F025DC4 +/* 05A8D4 7F025DA4 0010102B */ sltu $v0, $zero, $s0 +.L7F025DA8: +/* 05A8D8 7F025DA8 24090001 */ li $t1, 1 +/* 05A8DC 7F025DAC 2C4D0001 */ sltiu $t5, $v0, 1 +/* 05A8E0 7F025DB0 AFA2007C */ sw $v0, 0x7c($sp) +/* 05A8E4 7F025DB4 AFA90078 */ sw $t1, 0x78($sp) +/* 05A8E8 7F025DB8 AFA20068 */ sw $v0, 0x68($sp) +/* 05A8EC 7F025DBC 10000006 */ b .L7F025DD8 +/* 05A8F0 7F025DC0 AFAD0064 */ sw $t5, 0x64($sp) +.L7F025DC4: +/* 05A8F4 7F025DC4 0010102B */ sltu $v0, $zero, $s0 +/* 05A8F8 7F025DC8 2C4C0001 */ sltiu $t4, $v0, 1 +/* 05A8FC 7F025DCC AFA2007C */ sw $v0, 0x7c($sp) +/* 05A900 7F025DD0 AFA20068 */ sw $v0, 0x68($sp) +/* 05A904 7F025DD4 AFAC0064 */ sw $t4, 0x64($sp) +.L7F025DD8: +/* 05A908 7F025DD8 8FA20094 */ lw $v0, 0x94($sp) +/* 05A90C 7F025DDC 8FAA007C */ lw $t2, 0x7c($sp) +/* 05A910 7F025DE0 10400003 */ beqz $v0, .L7F025DF0 +/* 05A914 7F025DE4 00000000 */ nop +/* 05A918 7F025DE8 11400005 */ beqz $t2, .L7F025E00 +/* 05A91C 7F025DEC 00000000 */ nop +.L7F025DF0: +/* 05A920 7F025DF0 1440000F */ bnez $v0, .L7F025E30 +/* 05A924 7F025DF4 8FAB007C */ lw $t3, 0x7c($sp) +/* 05A928 7F025DF8 1160000D */ beqz $t3, .L7F025E30 +/* 05A92C 7F025DFC 00000000 */ nop +.L7F025E00: +/* 05A930 7F025E00 0C002914 */ jal get_random_value +/* 05A934 7F025E04 00000000 */ nop +/* 05A938 7F025E08 304E0001 */ andi $t6, $v0, 1 +/* 05A93C 7F025E0C 11C00005 */ beqz $t6, .L7F025E24 +/* 05A940 7F025E10 3C0F8003 */ lui $t7, %hi(D_80030108) +/* 05A944 7F025E14 3C188003 */ lui $t8, %hi(D_80030078) +/* 05A948 7F025E18 27180078 */ addiu $t8, %lo(D_80030078) # addiu $t8, $t8, 0x78 +/* 05A94C 7F025E1C 1000000F */ b .L7F025E5C +/* 05A950 7F025E20 AFB80088 */ sw $t8, 0x88($sp) +.L7F025E24: +/* 05A954 7F025E24 25EF0108 */ addiu $t7, %lo(D_80030108) # addiu $t7, $t7, 0x108 +/* 05A958 7F025E28 1000000C */ b .L7F025E5C +/* 05A95C 7F025E2C AFAF0088 */ sw $t7, 0x88($sp) +.L7F025E30: +/* 05A960 7F025E30 0C002914 */ jal get_random_value +/* 05A964 7F025E34 00000000 */ nop +/* 05A968 7F025E38 30480001 */ andi $t0, $v0, 1 +/* 05A96C 7F025E3C 11000005 */ beqz $t0, .L7F025E54 +/* 05A970 7F025E40 3C098003 */ lui $t1, %hi(D_80030150) +/* 05A974 7F025E44 3C198003 */ lui $t9, %hi(D_800300C0) +/* 05A978 7F025E48 273900C0 */ addiu $t9, %lo(D_800300C0) # addiu $t9, $t9, 0xc0 +/* 05A97C 7F025E4C 10000003 */ b .L7F025E5C +/* 05A980 7F025E50 AFB90088 */ sw $t9, 0x88($sp) +.L7F025E54: +/* 05A984 7F025E54 25290150 */ addiu $t1, %lo(D_80030150) # addiu $t1, $t1, 0x150 +/* 05A988 7F025E58 AFA90088 */ sw $t1, 0x88($sp) +.L7F025E5C: +/* 05A98C 7F025E5C 8FAD0078 */ lw $t5, 0x78($sp) +/* 05A990 7F025E60 00008025 */ move $s0, $zero +/* 05A994 7F025E64 00003025 */ move $a2, $zero +/* 05A998 7F025E68 11A00004 */ beqz $t5, .L7F025E7C +/* 05A99C 7F025E6C 27A70064 */ addiu $a3, $sp, 0x64 +/* 05A9A0 7F025E70 8FAC0088 */ lw $t4, 0x88($sp) +/* 05A9A4 7F025E74 258A0120 */ addiu $t2, $t4, 0x120 +/* 05A9A8 7F025E78 AFAA0088 */ sw $t2, 0x88($sp) +.L7F025E7C: +/* 05A9AC 7F025E7C 24110001 */ li $s1, 1 +.L7F025E80: +/* 05A9B0 7F025E80 8CEB0000 */ lw $t3, ($a3) +/* 05A9B4 7F025E84 02402025 */ move $a0, $s2 +/* 05A9B8 7F025E88 02002825 */ move $a1, $s0 +/* 05A9BC 7F025E8C 5160001F */ beql $t3, $zero, .L7F025F0C +/* 05A9C0 7F025E90 26100001 */ addiu $s0, $s0, 1 +/* 05A9C4 7F025E94 AFA60038 */ sw $a2, 0x38($sp) +/* 05A9C8 7F025E98 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A9CC 7F025E9C AFA70034 */ sw $a3, 0x34($sp) +/* 05A9D0 7F025EA0 8C430004 */ lw $v1, 4($v0) +/* 05A9D4 7F025EA4 80640080 */ lb $a0, 0x80($v1) +/* 05A9D8 7F025EA8 0FC177F3 */ jal get_automatic_firing_rate +/* 05A9DC 7F025EAC AFA30070 */ sw $v1, 0x70($sp) +/* 05A9E0 7F025EB0 8FA30070 */ lw $v1, 0x70($sp) +/* 05A9E4 7F025EB4 8FA60038 */ lw $a2, 0x38($sp) +/* 05A9E8 7F025EB8 04410009 */ bgez $v0, .L7F025EE0 +/* 05A9EC 7F025EBC 8FA70034 */ lw $a3, 0x34($sp) +/* 05A9F0 7F025EC0 03A67021 */ addu $t6, $sp, $a2 +/* 05A9F4 7F025EC4 ADD10054 */ sw $s1, 0x54($t6) +/* 05A9F8 7F025EC8 80620080 */ lb $v0, 0x80($v1) +/* 05A9FC 7F025ECC 24010016 */ li $at, 22 +/* 05AA00 7F025ED0 54410007 */ bnel $v0, $at, .L7F025EF0 +/* 05AA04 7F025ED4 24010019 */ li $at, 25 +/* 05AA08 7F025ED8 10000004 */ b .L7F025EEC +/* 05AA0C 7F025EDC 00009825 */ move $s3, $zero +.L7F025EE0: +/* 05AA10 7F025EE0 AFB1005C */ sw $s1, 0x5c($sp) +/* 05AA14 7F025EE4 00009825 */ move $s3, $zero +/* 05AA18 7F025EE8 80620080 */ lb $v0, 0x80($v1) +.L7F025EEC: +/* 05AA1C 7F025EEC 24010019 */ li $at, 25 +.L7F025EF0: +/* 05AA20 7F025EF0 10410004 */ beq $v0, $at, .L7F025F04 +/* 05AA24 7F025EF4 03A6C021 */ addu $t8, $sp, $a2 +/* 05AA28 7F025EF8 24010018 */ li $at, 24 +/* 05AA2C 7F025EFC 54410003 */ bnel $v0, $at, .L7F025F0C +/* 05AA30 7F025F00 26100001 */ addiu $s0, $s0, 1 +.L7F025F04: +/* 05AA34 7F025F04 AF11004C */ sw $s1, 0x4c($t8) +/* 05AA38 7F025F08 26100001 */ addiu $s0, $s0, 1 +.L7F025F0C: +/* 05AA3C 7F025F0C 24010002 */ li $at, 2 +/* 05AA40 7F025F10 24C60004 */ addiu $a2, $a2, 4 +/* 05AA44 7F025F14 1601FFDA */ bne $s0, $at, .L7F025E80 +/* 05AA48 7F025F18 24E70004 */ addiu $a3, $a3, 4 +/* 05AA4C 7F025F1C 240F000A */ li $t7, 10 +/* 05AA50 7F025F20 A24F0007 */ sb $t7, 7($s2) +/* 05AA54 7F025F24 8FA80088 */ lw $t0, 0x88($sp) +/* 05AA58 7F025F28 A2400031 */ sb $zero, 0x31($s2) +/* 05AA5C 7F025F2C 0C002914 */ jal get_random_value +/* 05AA60 7F025F30 AE48002C */ sw $t0, 0x2c($s2) +/* 05AA64 7F025F34 30590001 */ andi $t9, $v0, 1 +/* 05AA68 7F025F38 A2590032 */ sb $t9, 0x32($s2) +/* 05AA6C 7F025F3C 8FA90068 */ lw $t1, 0x68($sp) +/* 05AA70 7F025F40 A2490039 */ sb $t1, 0x39($s2) +/* 05AA74 7F025F44 8FAD0064 */ lw $t5, 0x64($sp) +/* 05AA78 7F025F48 A24D0038 */ sb $t5, 0x38($s2) +/* 05AA7C 7F025F4C 8FAC0058 */ lw $t4, 0x58($sp) +/* 05AA80 7F025F50 A24C003B */ sb $t4, 0x3b($s2) +/* 05AA84 7F025F54 8FAA0054 */ lw $t2, 0x54($sp) +/* 05AA88 7F025F58 A24A003A */ sb $t2, 0x3a($s2) +/* 05AA8C 7F025F5C 8FAB0050 */ lw $t3, 0x50($sp) +/* 05AA90 7F025F60 A24B003D */ sb $t3, 0x3d($s2) +/* 05AA94 7F025F64 8FAE004C */ lw $t6, 0x4c($sp) +/* 05AA98 7F025F68 A2530036 */ sb $s3, 0x36($s2) +/* 05AA9C 7F025F6C A24E003C */ sb $t6, 0x3c($s2) +/* 05AAA0 7F025F70 8FB8005C */ lw $t8, 0x5c($sp) +/* 05AAA4 7F025F74 A2580037 */ sb $t8, 0x37($s2) +/* 05AAA8 7F025F78 8FAF0078 */ lw $t7, 0x78($sp) +/* 05AAAC 7F025F7C AE400040 */ sw $zero, 0x40($s2) +/* 05AAB0 7F025F80 A2400033 */ sb $zero, 0x33($s2) +/* 05AAB4 7F025F84 A2510030 */ sb $s1, 0x30($s2) +/* 05AAB8 7F025F88 A24F0035 */ sb $t7, 0x35($s2) +/* 05AABC 7F025F8C 8FA80050 */ lw $t0, 0x50($sp) +/* 05AAC0 7F025F90 8FB9004C */ lw $t9, 0x4c($sp) +/* 05AAC4 7F025F94 8FA90050 */ lw $t1, 0x50($sp) +/* 05AAC8 7F025F98 15000003 */ bnez $t0, .L7F025FA8 +/* 05AACC 7F025F9C 00000000 */ nop +/* 05AAD0 7F025FA0 13200009 */ beqz $t9, .L7F025FC8 +/* 05AAD4 7F025FA4 00000000 */ nop +.L7F025FA8: +/* 05AAD8 7F025FA8 11200005 */ beqz $t1, .L7F025FC0 +/* 05AADC 7F025FAC 8FAD004C */ lw $t5, 0x4c($sp) +/* 05AAE0 7F025FB0 11A00003 */ beqz $t5, .L7F025FC0 +/* 05AAE4 7F025FB4 240C0002 */ li $t4, 2 +/* 05AAE8 7F025FB8 10000015 */ b .L7F026010 +/* 05AAEC 7F025FBC A24C0034 */ sb $t4, 0x34($s2) +.L7F025FC0: +/* 05AAF0 7F025FC0 10000013 */ b .L7F026010 +/* 05AAF4 7F025FC4 A2510034 */ sb $s1, 0x34($s2) +.L7F025FC8: +/* 05AAF8 7F025FC8 0C002914 */ jal get_random_value +/* 05AAFC 7F025FCC 00000000 */ nop +/* 05AB00 7F025FD0 304A0003 */ andi $t2, $v0, 3 +/* 05AB04 7F025FD4 254B0002 */ addiu $t3, $t2, 2 +/* 05AB08 7F025FD8 A24B0034 */ sb $t3, 0x34($s2) +/* 05AB0C 7F025FDC 8FAE0064 */ lw $t6, 0x64($sp) +/* 05AB10 7F025FE0 8FB80068 */ lw $t8, 0x68($sp) +/* 05AB14 7F025FE4 51C0000B */ beql $t6, $zero, .L7F026014 +/* 05AB18 7F025FE8 3C063F4C */ lui $a2, 0x3f4c +/* 05AB1C 7F025FEC 53000009 */ beql $t8, $zero, .L7F026014 +/* 05AB20 7F025FF0 3C063F4C */ lui $a2, 0x3f4c +/* 05AB24 7F025FF4 0C002914 */ jal get_random_value +/* 05AB28 7F025FF8 00000000 */ nop +/* 05AB2C 7F025FFC 824F0034 */ lb $t7, 0x34($s2) +/* 05AB30 7F026000 30480003 */ andi $t0, $v0, 3 +/* 05AB34 7F026004 01E8C821 */ addu $t9, $t7, $t0 +/* 05AB38 7F026008 27290002 */ addiu $t1, $t9, 2 +/* 05AB3C 7F02600C A2490034 */ sb $t1, 0x34($s2) +.L7F026010: +/* 05AB40 7F026010 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +.L7F026014: +/* 05AB44 7F026014 AE51004C */ sw $s1, 0x4c($s2) +/* 05AB48 7F026018 AE400050 */ sw $zero, 0x50($s2) +/* 05AB4C 7F02601C AE510054 */ sw $s1, 0x54($s2) +/* 05AB50 7F026020 AE400058 */ sw $zero, 0x58($s2) +/* 05AB54 7F026024 AE400044 */ sw $zero, 0x44($s2) +/* 05AB58 7F026028 AE400048 */ sw $zero, 0x48($s2) +/* 05AB5C 7F02602C A2400008 */ sb $zero, 8($s2) +/* 05AB60 7F026030 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05AB64 7F026034 02402025 */ move $a0, $s2 +/* 05AB68 7F026038 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05AB6C 7F02603C 3C053F00 */ lui $a1, 0x3f00 +/* 05AB70 7F026040 8FAD0088 */ lw $t5, 0x88($sp) +/* 05AB74 7F026044 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05AB78 7F026048 44812000 */ mtc1 $at, $f4 +/* 05AB7C 7F02604C 8DA50000 */ lw $a1, ($t5) +/* 05AB80 7F026050 8DA70010 */ lw $a3, 0x10($t5) +/* 05AB84 7F026054 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05AB88 7F026058 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AB8C 7F02605C 8FA6007C */ lw $a2, 0x7c($sp) +/* 05AB90 7F026060 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05AB94 7F026064 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05AB98 7F026068 8FAC0078 */ lw $t4, 0x78($sp) +/* 05AB9C 7F02606C 5580002A */ bnezl $t4, .L7F026118 +/* 05ABA0 7F026070 8FBF002C */ lw $ra, 0x2c($sp) +/* 05ABA4 7F026074 12600013 */ beqz $s3, .L7F0260C4 +/* 05ABA8 7F026078 8FAE0088 */ lw $t6, 0x88($sp) +/* 05ABAC 7F02607C 8FAA0088 */ lw $t2, 0x88($sp) +/* 05ABB0 7F026080 44801000 */ mtc1 $zero, $f2 +/* 05ABB4 7F026084 8FAB0088 */ lw $t3, 0x88($sp) +/* 05ABB8 7F026088 C5400024 */ lwc1 $f0, 0x24($t2) +/* 05ABBC 7F02608C 4600103E */ c.le.s $f2, $f0 +/* 05ABC0 7F026090 00000000 */ nop +/* 05ABC4 7F026094 45020007 */ bc1fl .L7F0260B4 +/* 05ABC8 7F026098 8FA4008C */ lw $a0, 0x8c($sp) +/* 05ABCC 7F02609C 44050000 */ mfc1 $a1, $f0 +/* 05ABD0 7F0260A0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05ABD4 7F0260A4 8FA4008C */ lw $a0, 0x8c($sp) +/* 05ABD8 7F0260A8 1000001B */ b .L7F026118 +/* 05ABDC 7F0260AC 8FBF002C */ lw $ra, 0x2c($sp) +/* 05ABE0 7F0260B0 8FA4008C */ lw $a0, 0x8c($sp) +.L7F0260B4: +/* 05ABE4 7F0260B4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05ABE8 7F0260B8 8D65001C */ lw $a1, 0x1c($t3) +/* 05ABEC 7F0260BC 10000016 */ b .L7F026118 +/* 05ABF0 7F0260C0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0260C4: +/* 05ABF4 7F0260C4 44801000 */ mtc1 $zero, $f2 +/* 05ABF8 7F0260C8 C5C00020 */ lwc1 $f0, 0x20($t6) +/* 05ABFC 7F0260CC 8FB80088 */ lw $t8, 0x88($sp) +/* 05AC00 7F0260D0 4600103E */ c.le.s $f2, $f0 +/* 05AC04 7F0260D4 00000000 */ nop +/* 05AC08 7F0260D8 45020007 */ bc1fl .L7F0260F8 +/* 05AC0C 7F0260DC C7000014 */ lwc1 $f0, 0x14($t8) +/* 05AC10 7F0260E0 44050000 */ mfc1 $a1, $f0 +/* 05AC14 7F0260E4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05AC18 7F0260E8 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AC1C 7F0260EC 1000000A */ b .L7F026118 +/* 05AC20 7F0260F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05AC24 7F0260F4 C7000014 */ lwc1 $f0, 0x14($t8) +.L7F0260F8: +/* 05AC28 7F0260F8 4600103E */ c.le.s $f2, $f0 +/* 05AC2C 7F0260FC 00000000 */ nop +/* 05AC30 7F026100 45020005 */ bc1fl .L7F026118 +/* 05AC34 7F026104 8FBF002C */ lw $ra, 0x2c($sp) +/* 05AC38 7F026108 44050000 */ mfc1 $a1, $f0 +/* 05AC3C 7F02610C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05AC40 7F026110 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AC44 7F026114 8FBF002C */ lw $ra, 0x2c($sp) +.L7F026118: +/* 05AC48 7F026118 8FB0001C */ lw $s0, 0x1c($sp) +/* 05AC4C 7F02611C 8FB10020 */ lw $s1, 0x20($sp) +/* 05AC50 7F026120 8FB20024 */ lw $s2, 0x24($sp) +/* 05AC54 7F026124 8FB30028 */ lw $s3, 0x28($sp) +/* 05AC58 7F026128 03E00008 */ jr $ra +/* 05AC5C 7F02612C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026130(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026130 +/* 05AC60 7F026130 C48C0000 */ lwc1 $f12, ($a0) +/* 05AC64 7F026134 C4A40000 */ lwc1 $f4, ($a1) +/* 05AC68 7F026138 C4900008 */ lwc1 $f16, 8($a0) +/* 05AC6C 7F02613C C4A60008 */ lwc1 $f6, 8($a1) +/* 05AC70 7F026140 460C2381 */ sub.s $f14, $f4, $f12 +/* 05AC74 7F026144 C4E80000 */ lwc1 $f8, ($a3) +/* 05AC78 7F026148 C4E20008 */ lwc1 $f2, 8($a3) +/* 05AC7C 7F02614C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05AC80 7F026150 46103481 */ sub.s $f18, $f6, $f16 +/* 05AC84 7F026154 E7A80000 */ swc1 $f8, ($sp) +/* 05AC88 7F026158 460E1282 */ mul.s $f10, $f2, $f14 +/* 05AC8C 7F02615C C7A40000 */ lwc1 $f4, ($sp) +/* 05AC90 7F026160 44804000 */ mtc1 $zero, $f8 +/* 05AC94 7F026164 46049182 */ mul.s $f6, $f18, $f4 +/* 05AC98 7F026168 46065001 */ sub.s $f0, $f10, $f6 +/* 05AC9C 7F02616C 46080032 */ c.eq.s $f0, $f8 +/* 05ACA0 7F026170 C7A80000 */ lwc1 $f8, ($sp) +/* 05ACA4 7F026174 4503001B */ bc1tl .L7F0261E4 +/* 05ACA8 7F026178 44802000 */ mtc1 $zero, $f4 +/* 05ACAC 7F02617C C4CA0000 */ lwc1 $f10, ($a2) +/* 05ACB0 7F026180 8FA20030 */ lw $v0, 0x30($sp) +/* 05ACB4 7F026184 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05ACB8 7F026188 C7A60014 */ lwc1 $f6, 0x14($sp) +/* 05ACBC 7F02618C 460C3201 */ sub.s $f8, $f6, $f12 +/* 05ACC0 7F026190 46089282 */ mul.s $f10, $f18, $f8 +/* 05ACC4 7F026194 C4C80008 */ lwc1 $f8, 8($a2) +/* 05ACC8 7F026198 46088201 */ sub.s $f8, $f16, $f8 +/* 05ACCC 7F02619C 460E4202 */ mul.s $f8, $f8, $f14 +/* 05ACD0 7F0261A0 46085280 */ add.s $f10, $f10, $f8 +/* 05ACD4 7F0261A4 46005083 */ div.s $f2, $f10, $f0 +/* 05ACD8 7F0261A8 46022202 */ mul.s $f8, $f4, $f2 +/* 05ACDC 7F0261AC 46064280 */ add.s $f10, $f8, $f6 +/* 05ACE0 7F0261B0 E44A0000 */ swc1 $f10, ($v0) +/* 05ACE4 7F0261B4 C4E40004 */ lwc1 $f4, 4($a3) +/* 05ACE8 7F0261B8 C4C60004 */ lwc1 $f6, 4($a2) +/* 05ACEC 7F0261BC 46022202 */ mul.s $f8, $f4, $f2 +/* 05ACF0 7F0261C0 46064280 */ add.s $f10, $f8, $f6 +/* 05ACF4 7F0261C4 E44A0004 */ swc1 $f10, 4($v0) +/* 05ACF8 7F0261C8 C4E40008 */ lwc1 $f4, 8($a3) +/* 05ACFC 7F0261CC C4C60008 */ lwc1 $f6, 8($a2) +/* 05AD00 7F0261D0 46022202 */ mul.s $f8, $f4, $f2 +/* 05AD04 7F0261D4 46064280 */ add.s $f10, $f8, $f6 +/* 05AD08 7F0261D8 1000001A */ b .L7F026244 +/* 05AD0C 7F0261DC E44A0008 */ swc1 $f10, 8($v0) +/* 05AD10 7F0261E0 44802000 */ mtc1 $zero, $f4 +.L7F0261E4: +/* 05AD14 7F0261E4 8FA20030 */ lw $v0, 0x30($sp) +/* 05AD18 7F0261E8 46082032 */ c.eq.s $f4, $f8 +/* 05AD1C 7F0261EC 00000000 */ nop +/* 05AD20 7F0261F0 45020010 */ bc1fl .L7F026234 +/* 05AD24 7F0261F4 E44C0000 */ swc1 $f12, ($v0) +/* 05AD28 7F0261F8 44803000 */ mtc1 $zero, $f6 +/* 05AD2C 7F0261FC 00000000 */ nop +/* 05AD30 7F026200 46023032 */ c.eq.s $f6, $f2 +/* 05AD34 7F026204 00000000 */ nop +/* 05AD38 7F026208 4502000A */ bc1fl .L7F026234 +/* 05AD3C 7F02620C E44C0000 */ swc1 $f12, ($v0) +/* 05AD40 7F026210 8FA20030 */ lw $v0, 0x30($sp) +/* 05AD44 7F026214 C4CA0000 */ lwc1 $f10, ($a2) +/* 05AD48 7F026218 E44A0000 */ swc1 $f10, ($v0) +/* 05AD4C 7F02621C C4C40004 */ lwc1 $f4, 4($a2) +/* 05AD50 7F026220 E4440004 */ swc1 $f4, 4($v0) +/* 05AD54 7F026224 C4C80008 */ lwc1 $f8, 8($a2) +/* 05AD58 7F026228 10000006 */ b .L7F026244 +/* 05AD5C 7F02622C E4480008 */ swc1 $f8, 8($v0) +/* 05AD60 7F026230 E44C0000 */ swc1 $f12, ($v0) +.L7F026234: +/* 05AD64 7F026234 C4860004 */ lwc1 $f6, 4($a0) +/* 05AD68 7F026238 E4460004 */ swc1 $f6, 4($v0) +/* 05AD6C 7F02623C C48A0008 */ lwc1 $f10, 8($a0) +/* 05AD70 7F026240 E44A0008 */ swc1 $f10, 8($v0) +.L7F026244: +/* 05AD74 7F026244 03E00008 */ jr $ra +/* 05AD78 7F026248 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02624C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02624C +/* 05AD7C 7F02624C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05AD80 7F026250 AFBF001C */ sw $ra, 0x1c($sp) +/* 05AD84 7F026254 AFA40038 */ sw $a0, 0x38($sp) +/* 05AD88 7F026258 AFA5003C */ sw $a1, 0x3c($sp) +/* 05AD8C 7F02625C AFA60040 */ sw $a2, 0x40($sp) +/* 05AD90 7F026260 27A50020 */ addiu $a1, $sp, 0x20 +/* 05AD94 7F026264 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 05AD98 7F026268 27A4002C */ addiu $a0, $sp, 0x2c +/* 05AD9C 7F02626C 8FAE0040 */ lw $t6, 0x40($sp) +/* 05ADA0 7F026270 27A4002C */ addiu $a0, $sp, 0x2c +/* 05ADA4 7F026274 27A50020 */ addiu $a1, $sp, 0x20 +/* 05ADA8 7F026278 8FA60038 */ lw $a2, 0x38($sp) +/* 05ADAC 7F02627C 8FA7003C */ lw $a3, 0x3c($sp) +/* 05ADB0 7F026280 0FC0984C */ jal sub_GAME_7F026130 +/* 05ADB4 7F026284 AFAE0010 */ sw $t6, 0x10($sp) +/* 05ADB8 7F026288 8FBF001C */ lw $ra, 0x1c($sp) +/* 05ADBC 7F02628C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05ADC0 7F026290 03E00008 */ jr $ra +/* 05ADC4 7F026294 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026298(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026298 +/* 05ADC8 7F026298 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05ADCC 7F02629C AFBF0014 */ sw $ra, 0x14($sp) +/* 05ADD0 7F0262A0 AFA40038 */ sw $a0, 0x38($sp) +/* 05ADD4 7F0262A4 AFA5003C */ sw $a1, 0x3c($sp) +/* 05ADD8 7F0262A8 27A50020 */ addiu $a1, $sp, 0x20 +/* 05ADDC 7F0262AC 27A4002C */ addiu $a0, $sp, 0x2c +/* 05ADE0 7F0262B0 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 05ADE4 7F0262B4 AFA60040 */ sw $a2, 0x40($sp) +/* 05ADE8 7F0262B8 8FA30038 */ lw $v1, 0x38($sp) +/* 05ADEC 7F0262BC C7A40020 */ lwc1 $f4, 0x20($sp) +/* 05ADF0 7F0262C0 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 05ADF4 7F0262C4 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05ADF8 7F0262C8 C46A0008 */ lwc1 $f10, 8($v1) +/* 05ADFC 7F0262CC 8FA2003C */ lw $v0, 0x3c($sp) +/* 05AE00 7F0262D0 46062381 */ sub.s $f14, $f4, $f6 +/* 05AE04 7F0262D4 C4640000 */ lwc1 $f4, ($v1) +/* 05AE08 7F0262D8 C4420000 */ lwc1 $f2, ($v0) +/* 05AE0C 7F0262DC 460A4401 */ sub.s $f16, $f8, $f10 +/* 05AE10 7F0262E0 C44C0008 */ lwc1 $f12, 8($v0) +/* 05AE14 7F0262E4 8FA60040 */ lw $a2, 0x40($sp) +/* 05AE18 7F0262E8 46043281 */ sub.s $f10, $f6, $f4 +/* 05AE1C 7F0262EC 46101482 */ mul.s $f18, $f2, $f16 +/* 05AE20 7F0262F0 00000000 */ nop +/* 05AE24 7F0262F4 460A6402 */ mul.s $f16, $f12, $f10 +/* 05AE28 7F0262F8 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 05AE2C 7F0262FC 46109101 */ sub.s $f4, $f18, $f16 +/* 05AE30 7F026300 46085481 */ sub.s $f18, $f10, $f8 +/* 05AE34 7F026304 46029402 */ mul.s $f16, $f18, $f2 +/* 05AE38 7F026308 00000000 */ nop +/* 05AE3C 7F02630C 460E6282 */ mul.s $f10, $f12, $f14 +/* 05AE40 7F026310 46105201 */ sub.s $f8, $f10, $f16 +/* 05AE44 7F026314 46082003 */ div.s $f0, $f4, $f8 +/* 05AE48 7F026318 46007482 */ mul.s $f18, $f14, $f0 +/* 05AE4C 7F02631C 46069280 */ add.s $f10, $f18, $f6 +/* 05AE50 7F026320 E4CA0000 */ swc1 $f10, ($a2) +/* 05AE54 7F026324 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 05AE58 7F026328 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 05AE5C 7F02632C 46048201 */ sub.s $f8, $f16, $f4 +/* 05AE60 7F026330 46004482 */ mul.s $f18, $f8, $f0 +/* 05AE64 7F026334 46049180 */ add.s $f6, $f18, $f4 +/* 05AE68 7F026338 E4C60004 */ swc1 $f6, 4($a2) +/* 05AE6C 7F02633C C7B00034 */ lwc1 $f16, 0x34($sp) +/* 05AE70 7F026340 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 05AE74 7F026344 46105201 */ sub.s $f8, $f10, $f16 +/* 05AE78 7F026348 46004482 */ mul.s $f18, $f8, $f0 +/* 05AE7C 7F02634C 46109100 */ add.s $f4, $f18, $f16 +/* 05AE80 7F026350 E4C40008 */ swc1 $f4, 8($a2) +/* 05AE84 7F026354 8FBF0014 */ lw $ra, 0x14($sp) +/* 05AE88 7F026358 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05AE8C 7F02635C 03E00008 */ jr $ra +/* 05AE90 7F026360 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026364(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026364 +/* 05AE94 7F026364 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05AE98 7F026368 AFBF0034 */ sw $ra, 0x34($sp) +/* 05AE9C 7F02636C AFB00030 */ sw $s0, 0x30($sp) +/* 05AEA0 7F026370 AFA5006C */ sw $a1, 0x6c($sp) +/* 05AEA4 7F026374 AFA60070 */ sw $a2, 0x70($sp) +/* 05AEA8 7F026378 AFA70074 */ sw $a3, 0x74($sp) +/* 05AEAC 7F02637C 8C8E0014 */ lw $t6, 0x14($a0) +/* 05AEB0 7F026380 00808025 */ move $s0, $a0 +/* 05AEB4 7F026384 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 05AEB8 7F026388 AFAE0050 */ sw $t6, 0x50($sp) +/* 05AEBC 7F02638C 8C8F0004 */ lw $t7, 4($a0) +/* 05AEC0 7F026390 0FC15FAB */ jal sinf +/* 05AEC4 7F026394 AFAF004C */ sw $t7, 0x4c($sp) +/* 05AEC8 7F026398 44802000 */ mtc1 $zero, $f4 +/* 05AECC 7F02639C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 05AED0 7F0263A0 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 05AED4 7F0263A4 0FC15FA8 */ jal cosf +/* 05AED8 7F0263A8 E7A40060 */ swc1 $f4, 0x60($sp) +/* 05AEDC 7F0263AC C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 05AEE0 7F0263B0 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 05AEE4 7F0263B4 E7A00064 */ swc1 $f0, 0x64($sp) +/* 05AEE8 7F0263B8 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 05AEEC 7F0263BC 460C3202 */ mul.s $f8, $f6, $f12 +/* 05AEF0 7F0263C0 C60A0008 */ lwc1 $f10, 8($s0) +/* 05AEF4 7F0263C4 C6040010 */ lwc1 $f4, 0x10($s0) +/* 05AEF8 7F0263C8 460C8482 */ mul.s $f18, $f16, $f12 +/* 05AEFC 7F0263CC 8FA4004C */ lw $a0, 0x4c($sp) +/* 05AF00 7F0263D0 00002825 */ move $a1, $zero +/* 05AF04 7F0263D4 460A4080 */ add.s $f2, $f8, $f10 +/* 05AF08 7F0263D8 46049380 */ add.s $f14, $f18, $f4 +/* 05AF0C 7F0263DC E7A20058 */ swc1 $f2, 0x58($sp) +/* 05AF10 7F0263E0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05AF14 7F0263E4 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 05AF18 7F0263E8 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 05AF1C 7F0263EC 00000000 */ nop +/* 05AF20 7F0263F0 8E050008 */ lw $a1, 8($s0) +/* 05AF24 7F0263F4 8E060010 */ lw $a2, 0x10($s0) +/* 05AF28 7F0263F8 C7A20058 */ lwc1 $f2, 0x58($sp) +/* 05AF2C 7F0263FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05AF30 7F026400 C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 05AF34 7F026404 44818000 */ mtc1 $at, $f16 +/* 05AF38 7F026408 8FB80074 */ lw $t8, 0x74($sp) +/* 05AF3C 7F02640C C7A60078 */ lwc1 $f6, 0x78($sp) +/* 05AF40 7F026410 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 05AF44 7F026414 44805000 */ mtc1 $zero, $f10 +/* 05AF48 7F026418 44071000 */ mfc1 $a3, $f2 +/* 05AF4C 7F02641C 27A40050 */ addiu $a0, $sp, 0x50 +/* 05AF50 7F026420 E7AE0010 */ swc1 $f14, 0x10($sp) +/* 05AF54 7F026424 AFB80014 */ sw $t8, 0x14($sp) +/* 05AF58 7F026428 E7B00024 */ swc1 $f16, 0x24($sp) +/* 05AF5C 7F02642C E7A60018 */ swc1 $f6, 0x18($sp) +/* 05AF60 7F026430 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 05AF64 7F026434 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05AF68 7F026438 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 05AF6C 7F02643C 10400003 */ beqz $v0, .L7F02644C +/* 05AF70 7F026440 26040008 */ addiu $a0, $s0, 8 +/* 05AF74 7F026444 10000010 */ b .L7F026488 +/* 05AF78 7F026448 C7A20070 */ lwc1 $f2, 0x70($sp) +.L7F02644C: +/* 05AF7C 7F02644C 27A5005C */ addiu $a1, $sp, 0x5c +/* 05AF80 7F026450 0FC09893 */ jal sub_GAME_7F02624C +/* 05AF84 7F026454 27A6003C */ addiu $a2, $sp, 0x3c +/* 05AF88 7F026458 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 05AF8C 7F02645C C6040008 */ lwc1 $f4, 8($s0) +/* 05AF90 7F026460 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 05AF94 7F026464 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05AF98 7F026468 46049081 */ sub.s $f2, $f18, $f4 +/* 05AF9C 7F02646C 46083381 */ sub.s $f14, $f6, $f8 +/* 05AFA0 7F026470 46021282 */ mul.s $f10, $f2, $f2 +/* 05AFA4 7F026474 00000000 */ nop +/* 05AFA8 7F026478 460E7402 */ mul.s $f16, $f14, $f14 +/* 05AFAC 7F02647C 0C007DF8 */ jal sqrtf +/* 05AFB0 7F026480 46105300 */ add.s $f12, $f10, $f16 +/* 05AFB4 7F026484 46000086 */ mov.s $f2, $f0 +.L7F026488: +/* 05AFB8 7F026488 8FA4004C */ lw $a0, 0x4c($sp) +/* 05AFBC 7F02648C 24050001 */ li $a1, 1 +/* 05AFC0 7F026490 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05AFC4 7F026494 E7A20048 */ swc1 $f2, 0x48($sp) +/* 05AFC8 7F026498 8FBF0034 */ lw $ra, 0x34($sp) +/* 05AFCC 7F02649C C7A20048 */ lwc1 $f2, 0x48($sp) +/* 05AFD0 7F0264A0 8FB00030 */ lw $s0, 0x30($sp) +/* 05AFD4 7F0264A4 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05AFD8 7F0264A8 03E00008 */ jr $ra +/* 05AFDC 7F0264AC 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0264B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0264B0 +/* 05AFE0 7F0264B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05AFE4 7F0264B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 05AFE8 7F0264B8 AFA50034 */ sw $a1, 0x34($sp) +/* 05AFEC 7F0264BC AFA60038 */ sw $a2, 0x38($sp) +/* 05AFF0 7F0264C0 AFA40030 */ sw $a0, 0x30($sp) +/* 05AFF4 7F0264C4 27A6002C */ addiu $a2, $sp, 0x2c +/* 05AFF8 7F0264C8 27A50024 */ addiu $a1, $sp, 0x24 +/* 05AFFC 7F0264CC 0FC08C58 */ jal sub_GAME_7F023160 +/* 05B000 7F0264D0 27A70028 */ addiu $a3, $sp, 0x28 +/* 05B004 7F0264D4 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 05B008 7F0264D8 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 05B00C 7F0264DC 8FA40030 */ lw $a0, 0x30($sp) +/* 05B010 7F0264E0 8FA50034 */ lw $a1, 0x34($sp) +/* 05B014 7F0264E4 8FA60038 */ lw $a2, 0x38($sp) +/* 05B018 7F0264E8 2407001F */ li $a3, 31 +/* 05B01C 7F0264EC E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B020 7F0264F0 0FC098D9 */ jal sub_GAME_7F026364 +/* 05B024 7F0264F4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B028 7F0264F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 05B02C 7F0264FC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05B030 7F026500 03E00008 */ jr $ra +/* 05B034 7F026504 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void triggered_on_shot_hit(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DBC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80051DC0 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80051DC4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DC8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80051DCC +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DD0 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DD4 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051DD8 +.word 0x407b53d2 /*3.926991*/ +.text +glabel triggered_on_shot_hit +/* 05B038 7F026508 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 05B03C 7F02650C 240E0001 */ li $t6, 1 +/* 05B040 7F026510 AFBF002C */ sw $ra, 0x2c($sp) +/* 05B044 7F026514 AFB00028 */ sw $s0, 0x28($sp) +/* 05B048 7F026518 AFA500A4 */ sw $a1, 0xa4($sp) +/* 05B04C 7F02651C AFAE009C */ sw $t6, 0x9c($sp) +/* 05B050 7F026520 8C820018 */ lw $v0, 0x18($a0) +/* 05B054 7F026524 44866000 */ mtc1 $a2, $f12 +/* 05B058 7F026528 24010006 */ li $at, 6 +/* 05B05C 7F02652C AFA20098 */ sw $v0, 0x98($sp) +/* 05B060 7F026530 8C8F001C */ lw $t7, 0x1c($a0) +/* 05B064 7F026534 AFA00090 */ sw $zero, 0x90($sp) +/* 05B068 7F026538 AFA00088 */ sw $zero, 0x88($sp) +/* 05B06C 7F02653C AFAF0094 */ sw $t7, 0x94($sp) +/* 05B070 7F026540 90580000 */ lbu $t8, ($v0) +/* 05B074 7F026544 00808025 */ move $s0, $a0 +/* 05B078 7F026548 57010009 */ bnel $t8, $at, .L7F026570 +/* 05B07C 7F02654C 82020007 */ lb $v0, 7($s0) +/* 05B080 7F026550 AFA700AC */ sw $a3, 0xac($sp) +/* 05B084 7F026554 0FC26919 */ jal get_num_players +/* 05B088 7F026558 E7AC00A8 */ swc1 $f12, 0xa8($sp) +/* 05B08C 7F02655C 28410002 */ slti $at, $v0, 2 +/* 05B090 7F026560 8FA700AC */ lw $a3, 0xac($sp) +/* 05B094 7F026564 1020026D */ beqz $at, .L7F026F1C +/* 05B098 7F026568 C7AC00A8 */ lwc1 $f12, 0xa8($sp) +/* 05B09C 7F02656C 82020007 */ lb $v0, 7($s0) +.L7F026570: +/* 05B0A0 7F026570 3C098005 */ lui $t1, %hi(global_timer) +/* 05B0A4 7F026574 3C0B8003 */ lui $t3, %hi(D_8002C914) +/* 05B0A8 7F026578 38590006 */ xori $t9, $v0, 6 +/* 05B0AC 7F02657C 2F220001 */ sltiu $v0, $t9, 1 +/* 05B0B0 7F026580 10400005 */ beqz $v0, .L7F026598 +/* 05B0B4 7F026584 3C0C8003 */ lui $t4, %hi(D_8002C914) +/* 05B0B8 7F026588 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 05B0BC 7F02658C 8E0A0030 */ lw $t2, 0x30($s0) +/* 05B0C0 7F026590 012A1026 */ xor $v0, $t1, $t2 +/* 05B0C4 7F026594 2C420001 */ sltiu $v0, $v0, 1 +.L7F026598: +/* 05B0C8 7F026598 8D6BC914 */ lw $t3, %lo(D_8002C914)($t3) +/* 05B0CC 7F02659C 2405FFFF */ li $a1, -1 +/* 05B0D0 7F0265A0 AFA20084 */ sw $v0, 0x84($sp) +/* 05B0D4 7F0265A4 10AB000C */ beq $a1, $t3, .L7F0265D8 +/* 05B0D8 7F0265A8 00002025 */ move $a0, $zero +/* 05B0DC 7F0265AC 2582C914 */ addiu $v0, $t4, %lo(D_8002C914) +/* 05B0E0 7F0265B0 8C430000 */ lw $v1, ($v0) +.L7F0265B4: +/* 05B0E4 7F0265B4 54E30004 */ bnel $a3, $v1, .L7F0265C8 +/* 05B0E8 7F0265B8 8C43002C */ lw $v1, 0x2c($v0) +/* 05B0EC 7F0265BC 10000006 */ b .L7F0265D8 +/* 05B0F0 7F0265C0 AFA40088 */ sw $a0, 0x88($sp) +/* 05B0F4 7F0265C4 8C43002C */ lw $v1, 0x2c($v0) +.L7F0265C8: +/* 05B0F8 7F0265C8 24840001 */ addiu $a0, $a0, 1 +/* 05B0FC 7F0265CC 2442002C */ addiu $v0, $v0, 0x2c +/* 05B100 7F0265D0 14A3FFF8 */ bne $a1, $v1, .L7F0265B4 +/* 05B104 7F0265D4 00000000 */ nop +.L7F0265D8: +/* 05B108 7F0265D8 C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05B10C 7F0265DC C6060100 */ lwc1 $f6, 0x100($s0) +/* 05B110 7F0265E0 24010007 */ li $at, 7 +/* 05B114 7F0265E4 4604303E */ c.le.s $f6, $f4 +/* 05B118 7F0265E8 00000000 */ nop +/* 05B11C 7F0265EC 45000115 */ bc1f .L7F026A44 +/* 05B120 7F0265F0 00000000 */ nop +/* 05B124 7F0265F4 3C018005 */ lui $at, %hi(D_80051DBC) +/* 05B128 7F0265F8 C4281DBC */ lwc1 $f8, %lo(D_80051DBC)($at) +/* 05B12C 7F0265FC 3C018005 */ lui $at, %hi(D_80051DC0) +/* 05B130 7F026600 4608603C */ c.lt.s $f12, $f8 +/* 05B134 7F026604 00000000 */ nop +/* 05B138 7F026608 45010006 */ bc1t .L7F026624 +/* 05B13C 7F02660C 00000000 */ nop +/* 05B140 7F026610 C42A1DC0 */ lwc1 $f10, %lo(D_80051DC0)($at) +/* 05B144 7F026614 460C503C */ c.lt.s $f10, $f12 +/* 05B148 7F026618 00000000 */ nop +/* 05B14C 7F02661C 45020075 */ bc1fl .L7F0267F4 +/* 05B150 7F026620 8FAC0090 */ lw $t4, 0x90($sp) +.L7F026624: +/* 05B154 7F026624 0C002914 */ jal get_random_value +/* 05B158 7F026628 00000000 */ nop +/* 05B15C 7F02662C 24010014 */ li $at, 20 +/* 05B160 7F026630 0041001B */ divu $zero, $v0, $at +/* 05B164 7F026634 00006810 */ mfhi $t5 +/* 05B168 7F026638 55A0006E */ bnezl $t5, .L7F0267F4 +/* 05B16C 7F02663C 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B170 7F026640 0FC1B320 */ jal getsubroty +/* 05B174 7F026644 8FA40094 */ lw $a0, 0x94($sp) +/* 05B178 7F026648 3C018005 */ lui $at, %hi(D_80051DC4) +/* 05B17C 7F02664C C4321DC4 */ lwc1 $f18, %lo(D_80051DC4)($at) +/* 05B180 7F026650 3C018005 */ lui $at, %hi(D_80051DC8) +/* 05B184 7F026654 C4241DC8 */ lwc1 $f4, %lo(D_80051DC8)($at) +/* 05B188 7F026658 3C018005 */ lui $at, %hi(D_80051DCC) +/* 05B18C 7F02665C C4261DCC */ lwc1 $f6, %lo(D_80051DCC)($at) +/* 05B190 7F026660 46040080 */ add.s $f2, $f0, $f4 +/* 05B194 7F026664 3C018005 */ lui $at, %hi(D_80051DD0) +/* 05B198 7F026668 C4281DD0 */ lwc1 $f8, %lo(D_80051DD0)($at) +/* 05B19C 7F02666C 3C064316 */ lui $a2, 0x4316 +/* 05B1A0 7F026670 46061300 */ add.s $f12, $f2, $f6 +/* 05B1A4 7F026674 46081381 */ sub.s $f14, $f2, $f8 +/* 05B1A8 7F026678 46006406 */ mov.s $f16, $f12 +/* 05B1AC 7F02667C 460C903E */ c.le.s $f18, $f12 +/* 05B1B0 7F026680 E7AE0070 */ swc1 $f14, 0x70($sp) +/* 05B1B4 7F026684 45020003 */ bc1fl .L7F026694 +/* 05B1B8 7F026688 460E903E */ c.le.s $f18, $f14 +/* 05B1BC 7F02668C 46126401 */ sub.s $f16, $f12, $f18 +/* 05B1C0 7F026690 460E903E */ c.le.s $f18, $f14 +.L7F026694: +/* 05B1C4 7F026694 44058000 */ mfc1 $a1, $f16 +/* 05B1C8 7F026698 45000003 */ bc1f .L7F0266A8 +/* 05B1CC 7F02669C 00000000 */ nop +/* 05B1D0 7F0266A0 46127281 */ sub.s $f10, $f14, $f18 +/* 05B1D4 7F0266A4 E7AA0070 */ swc1 $f10, 0x70($sp) +.L7F0266A8: +/* 05B1D8 7F0266A8 0FC0992C */ jal sub_GAME_7F0264B0 +/* 05B1DC 7F0266AC 8FA40098 */ lw $a0, 0x98($sp) +/* 05B1E0 7F0266B0 8FA40098 */ lw $a0, 0x98($sp) +/* 05B1E4 7F0266B4 8FA50070 */ lw $a1, 0x70($sp) +/* 05B1E8 7F0266B8 3C064316 */ lui $a2, 0x4316 +/* 05B1EC 7F0266BC 0FC0992C */ jal sub_GAME_7F0264B0 +/* 05B1F0 7F0266C0 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 05B1F4 7F0266C4 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 05B1F8 7F0266C8 44816000 */ mtc1 $at, $f12 +/* 05B1FC 7F0266CC C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 05B200 7F0266D0 460C103C */ c.lt.s $f2, $f12 +/* 05B204 7F0266D4 00000000 */ nop +/* 05B208 7F0266D8 45020046 */ bc1fl .L7F0267F4 +/* 05B20C 7F0266DC 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B210 7F0266E0 460C003C */ c.lt.s $f0, $f12 +/* 05B214 7F0266E4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 05B218 7F0266E8 45020042 */ bc1fl .L7F0267F4 +/* 05B21C 7F0266EC 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B220 7F0266F0 46001301 */ sub.s $f12, $f2, $f0 +/* 05B224 7F0266F4 44812000 */ mtc1 $at, $f4 +/* 05B228 7F0266F8 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 05B22C 7F0266FC 4604603C */ c.lt.s $f12, $f4 +/* 05B230 7F026700 00000000 */ nop +/* 05B234 7F026704 4502003B */ bc1fl .L7F0267F4 +/* 05B238 7F026708 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B23C 7F02670C 44813000 */ mtc1 $at, $f6 +/* 05B240 7F026710 00000000 */ nop +/* 05B244 7F026714 460C303C */ c.lt.s $f6, $f12 +/* 05B248 7F026718 00000000 */ nop +/* 05B24C 7F02671C 45020035 */ bc1fl .L7F0267F4 +/* 05B250 7F026720 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B254 7F026724 0C002914 */ jal get_random_value +/* 05B258 7F026728 00000000 */ nop +/* 05B25C 7F02672C 304E0001 */ andi $t6, $v0, 1 +/* 05B260 7F026730 000E78C0 */ sll $t7, $t6, 3 +/* 05B264 7F026734 01EE7823 */ subu $t7, $t7, $t6 +/* 05B268 7F026738 3C188003 */ lui $t8, %hi(D_8002DEBC) +/* 05B26C 7F02673C 2718DEBC */ addiu $t8, %lo(D_8002DEBC) # addiu $t8, $t8, -0x2144 +/* 05B270 7F026740 000F7880 */ sll $t7, $t7, 2 +/* 05B274 7F026744 01F81821 */ addu $v1, $t7, $t8 +/* 05B278 7F026748 AFA30064 */ sw $v1, 0x64($sp) +/* 05B27C 7F02674C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B280 7F026750 02002025 */ move $a0, $s0 +/* 05B284 7F026754 8FA30064 */ lw $v1, 0x64($sp) +/* 05B288 7F026758 24190004 */ li $t9, 4 +/* 05B28C 7F02675C A2190007 */ sb $t9, 7($s0) +/* 05B290 7F026760 AE00002C */ sw $zero, 0x2c($s0) +/* 05B294 7F026764 C4680014 */ lwc1 $f8, 0x14($v1) +/* 05B298 7F026768 44800000 */ mtc1 $zero, $f0 +/* 05B29C 7F02676C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B2A0 7F026770 E6080030 */ swc1 $f8, 0x30($s0) +/* 05B2A4 7F026774 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 05B2A8 7F026778 A2000008 */ sb $zero, 8($s0) +/* 05B2AC 7F02677C E6000038 */ swc1 $f0, 0x38($s0) +/* 05B2B0 7F026780 E60A0034 */ swc1 $f10, 0x34($s0) +/* 05B2B4 7F026784 8FA90084 */ lw $t1, 0x84($sp) +/* 05B2B8 7F026788 44813000 */ mtc1 $at, $f6 +/* 05B2BC 7F02678C C464000C */ lwc1 $f4, 0xc($v1) +/* 05B2C0 7F026790 8C660004 */ lw $a2, 4($v1) +/* 05B2C4 7F026794 8C650000 */ lw $a1, ($v1) +/* 05B2C8 7F026798 44070000 */ mfc1 $a3, $f0 +/* 05B2CC 7F02679C 2D2A0001 */ sltiu $t2, $t1, 1 +/* 05B2D0 7F0267A0 AFAA0018 */ sw $t2, 0x18($sp) +/* 05B2D4 7F0267A4 8FA40094 */ lw $a0, 0x94($sp) +/* 05B2D8 7F0267A8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B2DC 7F0267AC 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B2E0 7F0267B0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B2E4 7F0267B4 8FA30064 */ lw $v1, 0x64($sp) +/* 05B2E8 7F0267B8 44804000 */ mtc1 $zero, $f8 +/* 05B2EC 7F0267BC C4600008 */ lwc1 $f0, 8($v1) +/* 05B2F0 7F0267C0 4600403E */ c.le.s $f8, $f0 +/* 05B2F4 7F0267C4 00000000 */ nop +/* 05B2F8 7F0267C8 45020005 */ bc1fl .L7F0267E0 +/* 05B2FC 7F0267CC 3C014120 */ lui $at, 0x4120 +/* 05B300 7F0267D0 44050000 */ mfc1 $a1, $f0 +/* 05B304 7F0267D4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B308 7F0267D8 8FA40094 */ lw $a0, 0x94($sp) +/* 05B30C 7F0267DC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0267E0: +/* 05B310 7F0267E0 44815000 */ mtc1 $at, $f10 +/* 05B314 7F0267E4 240B0001 */ li $t3, 1 +/* 05B318 7F0267E8 E60A0024 */ swc1 $f10, 0x24($s0) +/* 05B31C 7F0267EC AFAB0090 */ sw $t3, 0x90($sp) +/* 05B320 7F0267F0 8FAC0090 */ lw $t4, 0x90($sp) +.L7F0267F4: +/* 05B324 7F0267F4 8FAD0088 */ lw $t5, 0x88($sp) +/* 05B328 7F0267F8 3C0F8003 */ lui $t7, %hi(D_8002C914) +/* 05B32C 7F0267FC 15800085 */ bnez $t4, .L7F026A14 +/* 05B330 7F026800 000D7080 */ sll $t6, $t5, 2 +/* 05B334 7F026804 01CD7023 */ subu $t6, $t6, $t5 +/* 05B338 7F026808 000E7080 */ sll $t6, $t6, 2 +/* 05B33C 7F02680C 01CD7023 */ subu $t6, $t6, $t5 +/* 05B340 7F026810 000E7080 */ sll $t6, $t6, 2 +/* 05B344 7F026814 25EFC914 */ addiu $t7, %lo(D_8002C914) # addiu $t7, $t7, -0x36ec +/* 05B348 7F026818 01CF3021 */ addu $a2, $t6, $t7 +/* 05B34C 7F02681C 8CD8001C */ lw $t8, 0x1c($a2) +/* 05B350 7F026820 1300007C */ beqz $t8, .L7F026A14 +/* 05B354 7F026824 00000000 */ nop +/* 05B358 7F026828 8CD90020 */ lw $t9, 0x20($a2) +/* 05B35C 7F02682C 8FA90084 */ lw $t1, 0x84($sp) +/* 05B360 7F026830 240B0001 */ li $t3, 1 +/* 05B364 7F026834 1B200077 */ blez $t9, .L7F026A14 +/* 05B368 7F026838 2D2A0001 */ sltiu $t2, $t1, 1 +/* 05B36C 7F02683C AFAA0034 */ sw $t2, 0x34($sp) +/* 05B370 7F026840 AFAB0090 */ sw $t3, 0x90($sp) +/* 05B374 7F026844 0C002914 */ jal get_random_value +/* 05B378 7F026848 AFA60030 */ sw $a2, 0x30($sp) +/* 05B37C 7F02684C 8FA60030 */ lw $a2, 0x30($sp) +/* 05B380 7F026850 02002025 */ move $a0, $s0 +/* 05B384 7F026854 8CCC0020 */ lw $t4, 0x20($a2) +/* 05B388 7F026858 8CCD001C */ lw $t5, 0x1c($a2) +/* 05B38C 7F02685C 004C001B */ divu $zero, $v0, $t4 +/* 05B390 7F026860 00001810 */ mfhi $v1 +/* 05B394 7F026864 000370C0 */ sll $t6, $v1, 3 +/* 05B398 7F026868 01C37023 */ subu $t6, $t6, $v1 +/* 05B39C 7F02686C 000E7080 */ sll $t6, $t6, 2 +/* 05B3A0 7F026870 15800002 */ bnez $t4, .L7F02687C +/* 05B3A4 7F026874 00000000 */ nop +/* 05B3A8 7F026878 0007000D */ break 7 +.L7F02687C: +/* 05B3AC 7F02687C 01AE4021 */ addu $t0, $t5, $t6 +/* 05B3B0 7F026880 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B3B4 7F026884 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B3B8 7F026888 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B3BC 7F02688C 240F0004 */ li $t7, 4 +/* 05B3C0 7F026890 A20F0007 */ sb $t7, 7($s0) +/* 05B3C4 7F026894 AE00002C */ sw $zero, 0x2c($s0) +/* 05B3C8 7F026898 C5040014 */ lwc1 $f4, 0x14($t0) +/* 05B3CC 7F02689C 44800000 */ mtc1 $zero, $f0 +/* 05B3D0 7F0268A0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B3D4 7F0268A4 E6040030 */ swc1 $f4, 0x30($s0) +/* 05B3D8 7F0268A8 C5060018 */ lwc1 $f6, 0x18($t0) +/* 05B3DC 7F0268AC A2000008 */ sb $zero, 8($s0) +/* 05B3E0 7F0268B0 E6000038 */ swc1 $f0, 0x38($s0) +/* 05B3E4 7F0268B4 E6060034 */ swc1 $f6, 0x34($s0) +/* 05B3E8 7F0268B8 8FB80034 */ lw $t8, 0x34($sp) +/* 05B3EC 7F0268BC 44815000 */ mtc1 $at, $f10 +/* 05B3F0 7F0268C0 C508000C */ lwc1 $f8, 0xc($t0) +/* 05B3F4 7F0268C4 8D060004 */ lw $a2, 4($t0) +/* 05B3F8 7F0268C8 8D050000 */ lw $a1, ($t0) +/* 05B3FC 7F0268CC 44070000 */ mfc1 $a3, $f0 +/* 05B400 7F0268D0 8FA40094 */ lw $a0, 0x94($sp) +/* 05B404 7F0268D4 AFB80018 */ sw $t8, 0x18($sp) +/* 05B408 7F0268D8 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05B40C 7F0268DC 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B410 7F0268E0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05B414 7F0268E4 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B418 7F0268E8 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 05B41C 7F0268EC 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 05B420 7F0268F0 8D0B0000 */ lw $t3, ($t0) +/* 05B424 7F0268F4 3C090000 */ lui $t1, %hi(0x00002E64) # $t1, 0 +/* 05B428 7F0268F8 25292E64 */ addiu $t1, %lo(0x00002E64) # addiu $t1, $t1, 0x2e64 +/* 05B42C 7F0268FC 03295021 */ addu $t2, $t9, $t1 +/* 05B430 7F026900 554B000F */ bnel $t2, $t3, .L7F026940 +/* 05B434 7F026904 C5000008 */ lwc1 $f0, 8($t0) +/* 05B438 7F026908 0C002914 */ jal get_random_value +/* 05B43C 7F02690C AFA8005C */ sw $t0, 0x5c($sp) +/* 05B440 7F026910 24010064 */ li $at, 100 +/* 05B444 7F026914 0041001B */ divu $zero, $v0, $at +/* 05B448 7F026918 00006010 */ mfhi $t4 +/* 05B44C 7F02691C 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B450 7F026920 11800006 */ beqz $t4, .L7F02693C +/* 05B454 7F026924 8FA40094 */ lw $a0, 0x94($sp) +/* 05B458 7F026928 3C054371 */ lui $a1, 0x4371 +/* 05B45C 7F02692C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B460 7F026930 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B464 7F026934 1000000C */ b .L7F026968 +/* 05B468 7F026938 8FA8005C */ lw $t0, 0x5c($sp) +.L7F02693C: +/* 05B46C 7F02693C C5000008 */ lwc1 $f0, 8($t0) +.L7F026940: +/* 05B470 7F026940 44802000 */ mtc1 $zero, $f4 +/* 05B474 7F026944 8FA40094 */ lw $a0, 0x94($sp) +/* 05B478 7F026948 4600203E */ c.le.s $f4, $f0 +/* 05B47C 7F02694C 00000000 */ nop +/* 05B480 7F026950 45020006 */ bc1fl .L7F02696C +/* 05B484 7F026954 8FA400B0 */ lw $a0, 0xb0($sp) +/* 05B488 7F026958 44050000 */ mfc1 $a1, $f0 +/* 05B48C 7F02695C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B490 7F026960 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B494 7F026964 8FA8005C */ lw $t0, 0x5c($sp) +.L7F026968: +/* 05B498 7F026968 8FA400B0 */ lw $a0, 0xb0($sp) +.L7F02696C: +/* 05B49C 7F02696C 0FC177EA */ jal bondwalkGetItemField68 +/* 05B4A0 7F026970 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B4A4 7F026974 44806000 */ mtc1 $zero, $f12 +/* 05B4A8 7F026978 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B4AC 7F02697C 46000086 */ mov.s $f2, $f0 +/* 05B4B0 7F026980 460C003E */ c.le.s $f0, $f12 +/* 05B4B4 7F026984 00000000 */ nop +/* 05B4B8 7F026988 45020009 */ bc1fl .L7F0269B0 +/* 05B4BC 7F02698C 8D0F0010 */ lw $t7, 0x10($t0) +/* 05B4C0 7F026990 8E0D0014 */ lw $t5, 0x14($s0) +/* 05B4C4 7F026994 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 05B4C8 7F026998 31AE8000 */ andi $t6, $t5, 0x8000 +/* 05B4CC 7F02699C 51C00004 */ beql $t6, $zero, .L7F0269B0 +/* 05B4D0 7F0269A0 8D0F0010 */ lw $t7, 0x10($t0) +/* 05B4D4 7F0269A4 44811000 */ mtc1 $at, $f2 +/* 05B4D8 7F0269A8 00000000 */ nop +/* 05B4DC 7F0269AC 8D0F0010 */ lw $t7, 0x10($t0) +.L7F0269B0: +/* 05B4E0 7F0269B0 11E00018 */ beqz $t7, .L7F026A14 +/* 05B4E4 7F0269B4 00000000 */ nop +/* 05B4E8 7F0269B8 4602603C */ c.lt.s $f12, $f2 +/* 05B4EC 7F0269BC 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 05B4F0 7F0269C0 45000014 */ bc1f .L7F026A14 +/* 05B4F4 7F0269C4 00000000 */ nop +/* 05B4F8 7F0269C8 44813000 */ mtc1 $at, $f6 +/* 05B4FC 7F0269CC 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 05B500 7F0269D0 44815000 */ mtc1 $at, $f10 +/* 05B504 7F0269D4 46061202 */ mul.s $f8, $f2, $f6 +/* 05B508 7F0269D8 E60C003C */ swc1 $f12, 0x3c($s0) +/* 05B50C 7F0269DC 460A4103 */ div.s $f4, $f8, $f10 +/* 05B510 7F0269E0 E6040038 */ swc1 $f4, 0x38($s0) +/* 05B514 7F0269E4 8FB800A4 */ lw $t8, 0xa4($sp) +/* 05B518 7F0269E8 C7060000 */ lwc1 $f6, ($t8) +/* 05B51C 7F0269EC 46023202 */ mul.s $f8, $f6, $f2 +/* 05B520 7F0269F0 E6080040 */ swc1 $f8, 0x40($s0) +/* 05B524 7F0269F4 8FB900A4 */ lw $t9, 0xa4($sp) +/* 05B528 7F0269F8 C72A0004 */ lwc1 $f10, 4($t9) +/* 05B52C 7F0269FC 46025102 */ mul.s $f4, $f10, $f2 +/* 05B530 7F026A00 E6040044 */ swc1 $f4, 0x44($s0) +/* 05B534 7F026A04 8FA900A4 */ lw $t1, 0xa4($sp) +/* 05B538 7F026A08 C5260008 */ lwc1 $f6, 8($t1) +/* 05B53C 7F026A0C 46023202 */ mul.s $f8, $f6, $f2 +/* 05B540 7F026A10 E6080048 */ swc1 $f8, 0x48($s0) +.L7F026A14: +/* 05B544 7F026A14 0FC086C8 */ jal sub_GAME_7F021B20 +/* 05B548 7F026A18 02002025 */ move $a0, $s0 +/* 05B54C 7F026A1C 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 05B550 7F026A20 00000000 */ nop +/* 05B554 7F026A24 8E0A0014 */ lw $t2, 0x14($s0) +/* 05B558 7F026A28 000A5AC0 */ sll $t3, $t2, 0xb +/* 05B55C 7F026A2C 0563011C */ bgezl $t3, .L7F026EA0 +/* 05B560 7F026A30 8FAC009C */ lw $t4, 0x9c($sp) +/* 05B564 7F026A34 0FC1A9D6 */ jal inc_cur_civilian_casualties +/* 05B568 7F026A38 00000000 */ nop +/* 05B56C 7F026A3C 10000118 */ b .L7F026EA0 +/* 05B570 7F026A40 8FAC009C */ lw $t4, 0x9c($sp) +.L7F026A44: +/* 05B574 7F026A44 14E100A0 */ bne $a3, $at, .L7F026CC8 +/* 05B578 7F026A48 3C018005 */ lui $at, %hi(D_80051DD4) +/* 05B57C 7F026A4C C42A1DD4 */ lwc1 $f10, %lo(D_80051DD4)($at) +/* 05B580 7F026A50 3C018005 */ lui $at, %hi(D_80051DD8) +/* 05B584 7F026A54 460C503C */ c.lt.s $f10, $f12 +/* 05B588 7F026A58 00000000 */ nop +/* 05B58C 7F026A5C 4502009B */ bc1fl .L7F026CCC +/* 05B590 7F026A60 8FB80090 */ lw $t8, 0x90($sp) +/* 05B594 7F026A64 C4241DD8 */ lwc1 $f4, %lo(D_80051DD8)($at) +/* 05B598 7F026A68 4604603C */ c.lt.s $f12, $f4 +/* 05B59C 7F026A6C 00000000 */ nop +/* 05B5A0 7F026A70 45020096 */ bc1fl .L7F026CCC +/* 05B5A4 7F026A74 8FB80090 */ lw $t8, 0x90($sp) +/* 05B5A8 7F026A78 0C002914 */ jal get_random_value +/* 05B5AC 7F026A7C 00000000 */ nop +/* 05B5B0 7F026A80 24010005 */ li $at, 5 +/* 05B5B4 7F026A84 0041001B */ divu $zero, $v0, $at +/* 05B5B8 7F026A88 00006010 */ mfhi $t4 +/* 05B5BC 7F026A8C 2D810002 */ sltiu $at, $t4, 2 +/* 05B5C0 7F026A90 5020008E */ beql $at, $zero, .L7F026CCC +/* 05B5C4 7F026A94 8FB80090 */ lw $t8, 0x90($sp) +/* 05B5C8 7F026A98 0C002914 */ jal get_random_value +/* 05B5CC 7F026A9C 00000000 */ nop +/* 05B5D0 7F026AA0 24010005 */ li $at, 5 +/* 05B5D4 7F026AA4 0041001B */ divu $zero, $v0, $at +/* 05B5D8 7F026AA8 00006810 */ mfhi $t5 +/* 05B5DC 7F026AAC AFAD0054 */ sw $t5, 0x54($sp) +/* 05B5E0 7F026AB0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B5E4 7F026AB4 02002025 */ move $a0, $s0 +/* 05B5E8 7F026AB8 240E0006 */ li $t6, 6 +/* 05B5EC 7F026ABC A20E0007 */ sb $t6, 7($s0) +/* 05B5F0 7F026AC0 AE00002C */ sw $zero, 0x2c($s0) +/* 05B5F4 7F026AC4 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05B5F8 7F026AC8 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05B5FC 7F026ACC A2000008 */ sb $zero, 8($s0) +/* 05B600 7F026AD0 0C002914 */ jal get_random_value +/* 05B604 7F026AD4 AE0F0030 */ sw $t7, 0x30($s0) +/* 05B608 7F026AD8 30580001 */ andi $t8, $v0, 1 +/* 05B60C 7F026ADC 1300003D */ beqz $t8, .L7F026BD4 +/* 05B610 7F026AE0 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 05B614 7F026AE4 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 05B618 7F026AE8 3C090000 */ lui $t1, %hi(0x00004CE0) # $t1, 0 +/* 05B61C 7F026AEC 25294CE0 */ addiu $t1, %lo(0x00004CE0) # addiu $t1, $t1, 0x4ce0 +/* 05B620 7F026AF0 03295021 */ addu $t2, $t9, $t1 +/* 05B624 7F026AF4 0C002914 */ jal get_random_value +/* 05B628 7F026AF8 AFAA0080 */ sw $t2, 0x80($sp) +/* 05B62C 7F026AFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05B630 7F026B00 44813000 */ mtc1 $at, $f6 +/* 05B634 7F026B04 8FAB0084 */ lw $t3, 0x84($sp) +/* 05B638 7F026B08 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B63C 7F026B0C 44814000 */ mtc1 $at, $f8 +/* 05B640 7F026B10 2D6C0001 */ sltiu $t4, $t3, 1 +/* 05B644 7F026B14 AFAC0018 */ sw $t4, 0x18($sp) +/* 05B648 7F026B18 8FA40094 */ lw $a0, 0x94($sp) +/* 05B64C 7F026B1C 8FA50080 */ lw $a1, 0x80($sp) +/* 05B650 7F026B20 30460001 */ andi $a2, $v0, 1 +/* 05B654 7F026B24 3C074120 */ lui $a3, 0x4120 +/* 05B658 7F026B28 E7A60010 */ swc1 $f6, 0x10($sp) +/* 05B65C 7F026B2C 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B660 7F026B30 E7A80014 */ swc1 $f8, 0x14($sp) +/* 05B664 7F026B34 8FA20054 */ lw $v0, 0x54($sp) +/* 05B668 7F026B38 02002025 */ move $a0, $s0 +/* 05B66C 7F026B3C 3C054208 */ lui $a1, 0x4208 +/* 05B670 7F026B40 2C410002 */ sltiu $at, $v0, 2 +/* 05B674 7F026B44 50200009 */ beql $at, $zero, .L7F026B6C +/* 05B678 7F026B48 2C410004 */ sltiu $at, $v0, 4 +/* 05B67C 7F026B4C 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B680 7F026B50 3C064100 */ lui $a2, 0x4100 +/* 05B684 7F026B54 44050000 */ mfc1 $a1, $f0 +/* 05B688 7F026B58 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B68C 7F026B5C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B690 7F026B60 10000058 */ b .L7F026CC4 +/* 05B694 7F026B64 240F0001 */ li $t7, 1 +/* 05B698 7F026B68 2C410004 */ sltiu $at, $v0, 4 +.L7F026B6C: +/* 05B69C 7F026B6C 1020000A */ beqz $at, .L7F026B98 +/* 05B6A0 7F026B70 8FAD0080 */ lw $t5, 0x80($sp) +/* 05B6A4 7F026B74 02002025 */ move $a0, $s0 +/* 05B6A8 7F026B78 3C05428E */ lui $a1, 0x428e +/* 05B6AC 7F026B7C 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B6B0 7F026B80 3C064100 */ lui $a2, 0x4100 +/* 05B6B4 7F026B84 44050000 */ mfc1 $a1, $f0 +/* 05B6B8 7F026B88 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B6BC 7F026B8C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B6C0 7F026B90 1000004C */ b .L7F026CC4 +/* 05B6C4 7F026B94 240F0001 */ li $t7, 1 +.L7F026B98: +/* 05B6C8 7F026B98 95AE0004 */ lhu $t6, 4($t5) +/* 05B6CC 7F026B9C 02002025 */ move $a0, $s0 +/* 05B6D0 7F026BA0 3C064100 */ lui $a2, 0x4100 +/* 05B6D4 7F026BA4 25CFFFFF */ addiu $t7, $t6, -1 +/* 05B6D8 7F026BA8 448F5000 */ mtc1 $t7, $f10 +/* 05B6DC 7F026BAC 00000000 */ nop +/* 05B6E0 7F026BB0 468052A0 */ cvt.s.w $f10, $f10 +/* 05B6E4 7F026BB4 44055000 */ mfc1 $a1, $f10 +/* 05B6E8 7F026BB8 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B6EC 7F026BBC 00000000 */ nop +/* 05B6F0 7F026BC0 44050000 */ mfc1 $a1, $f0 +/* 05B6F4 7F026BC4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B6F8 7F026BC8 8FA40094 */ lw $a0, 0x94($sp) +/* 05B6FC 7F026BCC 1000003D */ b .L7F026CC4 +/* 05B700 7F026BD0 240F0001 */ li $t7, 1 +.L7F026BD4: +/* 05B704 7F026BD4 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05B708 7F026BD8 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05B70C 7F026BDC 3C190000 */ lui $t9, %hi(0x00004F14) # $t9, 0 +/* 05B710 7F026BE0 27394F14 */ addiu $t9, %lo(0x00004F14) # addiu $t9, $t9, 0x4f14 +/* 05B714 7F026BE4 03194821 */ addu $t1, $t8, $t9 +/* 05B718 7F026BE8 0C002914 */ jal get_random_value +/* 05B71C 7F026BEC AFA90080 */ sw $t1, 0x80($sp) +/* 05B720 7F026BF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05B724 7F026BF4 44812000 */ mtc1 $at, $f4 +/* 05B728 7F026BF8 8FAA0084 */ lw $t2, 0x84($sp) +/* 05B72C 7F026BFC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B730 7F026C00 44813000 */ mtc1 $at, $f6 +/* 05B734 7F026C04 2D4B0001 */ sltiu $t3, $t2, 1 +/* 05B738 7F026C08 AFAB0018 */ sw $t3, 0x18($sp) +/* 05B73C 7F026C0C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B740 7F026C10 8FA50080 */ lw $a1, 0x80($sp) +/* 05B744 7F026C14 30460001 */ andi $a2, $v0, 1 +/* 05B748 7F026C18 24070000 */ li $a3, 0 +/* 05B74C 7F026C1C E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B750 7F026C20 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B754 7F026C24 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B758 7F026C28 8FA20054 */ lw $v0, 0x54($sp) +/* 05B75C 7F026C2C 02002025 */ move $a0, $s0 +/* 05B760 7F026C30 3C054214 */ lui $a1, 0x4214 +/* 05B764 7F026C34 2C410002 */ sltiu $at, $v0, 2 +/* 05B768 7F026C38 50200009 */ beql $at, $zero, .L7F026C60 +/* 05B76C 7F026C3C 2C410004 */ sltiu $at, $v0, 4 +/* 05B770 7F026C40 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B774 7F026C44 3C064100 */ lui $a2, 0x4100 +/* 05B778 7F026C48 44050000 */ mfc1 $a1, $f0 +/* 05B77C 7F026C4C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B780 7F026C50 8FA40094 */ lw $a0, 0x94($sp) +/* 05B784 7F026C54 1000001B */ b .L7F026CC4 +/* 05B788 7F026C58 240F0001 */ li $t7, 1 +/* 05B78C 7F026C5C 2C410004 */ sltiu $at, $v0, 4 +.L7F026C60: +/* 05B790 7F026C60 1020000A */ beqz $at, .L7F026C8C +/* 05B794 7F026C64 8FAC0080 */ lw $t4, 0x80($sp) +/* 05B798 7F026C68 02002025 */ move $a0, $s0 +/* 05B79C 7F026C6C 3C05428C */ lui $a1, 0x428c +/* 05B7A0 7F026C70 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B7A4 7F026C74 3C064100 */ lui $a2, 0x4100 +/* 05B7A8 7F026C78 44050000 */ mfc1 $a1, $f0 +/* 05B7AC 7F026C7C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B7B0 7F026C80 8FA40094 */ lw $a0, 0x94($sp) +/* 05B7B4 7F026C84 1000000F */ b .L7F026CC4 +/* 05B7B8 7F026C88 240F0001 */ li $t7, 1 +.L7F026C8C: +/* 05B7BC 7F026C8C 958D0004 */ lhu $t5, 4($t4) +/* 05B7C0 7F026C90 02002025 */ move $a0, $s0 +/* 05B7C4 7F026C94 3C064100 */ lui $a2, 0x4100 +/* 05B7C8 7F026C98 25AEFFFF */ addiu $t6, $t5, -1 +/* 05B7CC 7F026C9C 448E4000 */ mtc1 $t6, $f8 +/* 05B7D0 7F026CA0 00000000 */ nop +/* 05B7D4 7F026CA4 46804220 */ cvt.s.w $f8, $f8 +/* 05B7D8 7F026CA8 44054000 */ mfc1 $a1, $f8 +/* 05B7DC 7F026CAC 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B7E0 7F026CB0 00000000 */ nop +/* 05B7E4 7F026CB4 44050000 */ mfc1 $a1, $f0 +/* 05B7E8 7F026CB8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B7EC 7F026CBC 8FA40094 */ lw $a0, 0x94($sp) +/* 05B7F0 7F026CC0 240F0001 */ li $t7, 1 +.L7F026CC4: +/* 05B7F4 7F026CC4 AFAF0090 */ sw $t7, 0x90($sp) +.L7F026CC8: +/* 05B7F8 7F026CC8 8FB80090 */ lw $t8, 0x90($sp) +.L7F026CCC: +/* 05B7FC 7F026CCC 8FB90088 */ lw $t9, 0x88($sp) +/* 05B800 7F026CD0 3C0A8003 */ lui $t2, %hi(D_8002C914) +/* 05B804 7F026CD4 17000070 */ bnez $t8, .L7F026E98 +/* 05B808 7F026CD8 00194880 */ sll $t1, $t9, 2 +/* 05B80C 7F026CDC 01394823 */ subu $t1, $t1, $t9 +/* 05B810 7F026CE0 00094880 */ sll $t1, $t1, 2 +/* 05B814 7F026CE4 01394823 */ subu $t1, $t1, $t9 +/* 05B818 7F026CE8 00094880 */ sll $t1, $t1, 2 +/* 05B81C 7F026CEC 254AC914 */ addiu $t2, %lo(D_8002C914) # addiu $t2, $t2, -0x36ec +/* 05B820 7F026CF0 012A3021 */ addu $a2, $t1, $t2 +/* 05B824 7F026CF4 8CCB0024 */ lw $t3, 0x24($a2) +/* 05B828 7F026CF8 51600068 */ beql $t3, $zero, .L7F026E9C +/* 05B82C 7F026CFC AFA0009C */ sw $zero, 0x9c($sp) +/* 05B830 7F026D00 8CCC0028 */ lw $t4, 0x28($a2) +/* 05B834 7F026D04 02002025 */ move $a0, $s0 +/* 05B838 7F026D08 24050001 */ li $a1, 1 +/* 05B83C 7F026D0C 19800062 */ blez $t4, .L7F026E98 +/* 05B840 7F026D10 8FAD0084 */ lw $t5, 0x84($sp) +/* 05B844 7F026D14 2DAE0001 */ sltiu $t6, $t5, 1 +/* 05B848 7F026D18 240F0001 */ li $t7, 1 +/* 05B84C 7F026D1C AFAF0090 */ sw $t7, 0x90($sp) +/* 05B850 7F026D20 AFAE0034 */ sw $t6, 0x34($sp) +/* 05B854 7F026D24 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05B858 7F026D28 AFA60030 */ sw $a2, 0x30($sp) +/* 05B85C 7F026D2C AFA20050 */ sw $v0, 0x50($sp) +/* 05B860 7F026D30 02002025 */ move $a0, $s0 +/* 05B864 7F026D34 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05B868 7F026D38 00002825 */ move $a1, $zero +/* 05B86C 7F026D3C 8FA60030 */ lw $a2, 0x30($sp) +/* 05B870 7F026D40 3C188003 */ lui $t8, %hi(D_8002CAA0) +/* 05B874 7F026D44 2718CAA0 */ addiu $t8, %lo(D_8002CAA0) # addiu $t8, $t8, -0x3560 +/* 05B878 7F026D48 14D80007 */ bne $a2, $t8, .L7F026D68 +/* 05B87C 7F026D4C 8FB90050 */ lw $t9, 0x50($sp) +/* 05B880 7F026D50 13200005 */ beqz $t9, .L7F026D68 +/* 05B884 7F026D54 2409000A */ li $t1, 10 +/* 05B888 7F026D58 3C068003 */ lui $a2, %hi(D_8002CACC) +/* 05B88C 7F026D5C 24C6CACC */ addiu $a2, %lo(D_8002CACC) # addiu $a2, $a2, -0x3534 +/* 05B890 7F026D60 1000000A */ b .L7F026D8C +/* 05B894 7F026D64 AFA90088 */ sw $t1, 0x88($sp) +.L7F026D68: +/* 05B898 7F026D68 3C0A8003 */ lui $t2, %hi(D_8002CB24) +/* 05B89C 7F026D6C 254ACB24 */ addiu $t2, %lo(D_8002CB24) # addiu $t2, $t2, -0x34dc +/* 05B8A0 7F026D70 14CA0006 */ bne $a2, $t2, .L7F026D8C +/* 05B8A4 7F026D74 00000000 */ nop +/* 05B8A8 7F026D78 10400004 */ beqz $v0, .L7F026D8C +/* 05B8AC 7F026D7C 240B000D */ li $t3, 13 +/* 05B8B0 7F026D80 3C068003 */ lui $a2, %hi(D_8002CB50) +/* 05B8B4 7F026D84 24C6CB50 */ addiu $a2, %lo(D_8002CB50) # addiu $a2, $a2, -0x34b0 +/* 05B8B8 7F026D88 AFAB0088 */ sw $t3, 0x88($sp) +.L7F026D8C: +/* 05B8BC 7F026D8C 0C002914 */ jal get_random_value +/* 05B8C0 7F026D90 AFA60030 */ sw $a2, 0x30($sp) +/* 05B8C4 7F026D94 8FA60030 */ lw $a2, 0x30($sp) +/* 05B8C8 7F026D98 02002025 */ move $a0, $s0 +/* 05B8CC 7F026D9C 8CCC0028 */ lw $t4, 0x28($a2) +/* 05B8D0 7F026DA0 8CCD0024 */ lw $t5, 0x24($a2) +/* 05B8D4 7F026DA4 004C001B */ divu $zero, $v0, $t4 +/* 05B8D8 7F026DA8 00002810 */ mfhi $a1 +/* 05B8DC 7F026DAC 000570C0 */ sll $t6, $a1, 3 +/* 05B8E0 7F026DB0 01C57023 */ subu $t6, $t6, $a1 +/* 05B8E4 7F026DB4 000E7080 */ sll $t6, $t6, 2 +/* 05B8E8 7F026DB8 15800002 */ bnez $t4, .L7F026DC4 +/* 05B8EC 7F026DBC 00000000 */ nop +/* 05B8F0 7F026DC0 0007000D */ break 7 +.L7F026DC4: +/* 05B8F4 7F026DC4 01AE1821 */ addu $v1, $t5, $t6 +/* 05B8F8 7F026DC8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B8FC 7F026DCC AFA30044 */ sw $v1, 0x44($sp) +/* 05B900 7F026DD0 8FA30044 */ lw $v1, 0x44($sp) +/* 05B904 7F026DD4 240F0006 */ li $t7, 6 +/* 05B908 7F026DD8 A20F0007 */ sb $t7, 7($s0) +/* 05B90C 7F026DDC AE00002C */ sw $zero, 0x2c($s0) +/* 05B910 7F026DE0 3C188005 */ lui $t8, %hi(global_timer) +/* 05B914 7F026DE4 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 05B918 7F026DE8 A2000008 */ sb $zero, 8($s0) +/* 05B91C 7F026DEC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B920 7F026DF0 AE180030 */ sw $t8, 0x30($s0) +/* 05B924 7F026DF4 8FB90034 */ lw $t9, 0x34($sp) +/* 05B928 7F026DF8 44812000 */ mtc1 $at, $f4 +/* 05B92C 7F026DFC C46A000C */ lwc1 $f10, 0xc($v1) +/* 05B930 7F026E00 8C660004 */ lw $a2, 4($v1) +/* 05B934 7F026E04 8C650000 */ lw $a1, ($v1) +/* 05B938 7F026E08 8FA40094 */ lw $a0, 0x94($sp) +/* 05B93C 7F026E0C 24070000 */ li $a3, 0 +/* 05B940 7F026E10 AFB90018 */ sw $t9, 0x18($sp) +/* 05B944 7F026E14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05B948 7F026E18 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B94C 7F026E1C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05B950 7F026E20 8FA30044 */ lw $v1, 0x44($sp) +/* 05B954 7F026E24 44803000 */ mtc1 $zero, $f6 +/* 05B958 7F026E28 02002025 */ move $a0, $s0 +/* 05B95C 7F026E2C C4600008 */ lwc1 $f0, 8($v1) +/* 05B960 7F026E30 4600303E */ c.le.s $f6, $f0 +/* 05B964 7F026E34 00000000 */ nop +/* 05B968 7F026E38 4502000A */ bc1fl .L7F026E64 +/* 05B96C 7F026E3C 8C690000 */ lw $t1, ($v1) +/* 05B970 7F026E40 44050000 */ mfc1 $a1, $f0 +/* 05B974 7F026E44 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B978 7F026E48 3C064100 */ lui $a2, 0x4100 +/* 05B97C 7F026E4C 44050000 */ mfc1 $a1, $f0 +/* 05B980 7F026E50 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B984 7F026E54 8FA40094 */ lw $a0, 0x94($sp) +/* 05B988 7F026E58 10000010 */ b .L7F026E9C +/* 05B98C 7F026E5C AFA0009C */ sw $zero, 0x9c($sp) +/* 05B990 7F026E60 8C690000 */ lw $t1, ($v1) +.L7F026E64: +/* 05B994 7F026E64 02002025 */ move $a0, $s0 +/* 05B998 7F026E68 3C064100 */ lui $a2, 0x4100 +/* 05B99C 7F026E6C 952A0004 */ lhu $t2, 4($t1) +/* 05B9A0 7F026E70 254BFFFF */ addiu $t3, $t2, -1 +/* 05B9A4 7F026E74 448B4000 */ mtc1 $t3, $f8 +/* 05B9A8 7F026E78 00000000 */ nop +/* 05B9AC 7F026E7C 46804220 */ cvt.s.w $f8, $f8 +/* 05B9B0 7F026E80 44054000 */ mfc1 $a1, $f8 +/* 05B9B4 7F026E84 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B9B8 7F026E88 00000000 */ nop +/* 05B9BC 7F026E8C 44050000 */ mfc1 $a1, $f0 +/* 05B9C0 7F026E90 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B9C4 7F026E94 8FA40094 */ lw $a0, 0x94($sp) +.L7F026E98: +/* 05B9C8 7F026E98 AFA0009C */ sw $zero, 0x9c($sp) +.L7F026E9C: +/* 05B9CC 7F026E9C 8FAC009C */ lw $t4, 0x9c($sp) +.L7F026EA0: +/* 05B9D0 7F026EA0 8FAD0090 */ lw $t5, 0x90($sp) +/* 05B9D4 7F026EA4 5180001E */ beql $t4, $zero, .L7F026F20 +/* 05B9D8 7F026EA8 8FBF002C */ lw $ra, 0x2c($sp) +/* 05B9DC 7F026EAC 51A0001C */ beql $t5, $zero, .L7F026F20 +/* 05B9E0 7F026EB0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05B9E4 7F026EB4 8E040160 */ lw $a0, 0x160($s0) +/* 05B9E8 7F026EB8 5080000C */ beql $a0, $zero, .L7F026EEC +/* 05B9EC 7F026EBC 8E040164 */ lw $a0, 0x164($s0) +/* 05B9F0 7F026EC0 8C8E0004 */ lw $t6, 4($a0) +/* 05B9F4 7F026EC4 8DCF0008 */ lw $t7, 8($t6) +/* 05B9F8 7F026EC8 31F82000 */ andi $t8, $t7, 0x2000 +/* 05B9FC 7F026ECC 57000007 */ bnezl $t8, .L7F026EEC +/* 05BA00 7F026ED0 8E040164 */ lw $a0, 0x164($s0) +/* 05BA04 7F026ED4 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BA08 7F026ED8 24050001 */ li $a1, 1 +/* 05BA0C 7F026EDC 96190012 */ lhu $t9, 0x12($s0) +/* 05BA10 7F026EE0 37290001 */ ori $t1, $t9, 1 +/* 05BA14 7F026EE4 A6090012 */ sh $t1, 0x12($s0) +/* 05BA18 7F026EE8 8E040164 */ lw $a0, 0x164($s0) +.L7F026EEC: +/* 05BA1C 7F026EEC 5080000C */ beql $a0, $zero, .L7F026F20 +/* 05BA20 7F026EF0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05BA24 7F026EF4 8C8A0004 */ lw $t2, 4($a0) +/* 05BA28 7F026EF8 8D4B0008 */ lw $t3, 8($t2) +/* 05BA2C 7F026EFC 316C2000 */ andi $t4, $t3, 0x2000 +/* 05BA30 7F026F00 55800007 */ bnezl $t4, .L7F026F20 +/* 05BA34 7F026F04 8FBF002C */ lw $ra, 0x2c($sp) +/* 05BA38 7F026F08 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BA3C 7F026F0C 24050001 */ li $a1, 1 +/* 05BA40 7F026F10 960D0012 */ lhu $t5, 0x12($s0) +/* 05BA44 7F026F14 35AE0001 */ ori $t6, $t5, 1 +/* 05BA48 7F026F18 A60E0012 */ sh $t6, 0x12($s0) +.L7F026F1C: +/* 05BA4C 7F026F1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F026F20: +/* 05BA50 7F026F20 8FB00028 */ lw $s0, 0x28($sp) +/* 05BA54 7F026F24 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 05BA58 7F026F28 03E00008 */ jr $ra +/* 05BA5C 7F026F2C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026F30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026F30 +/* 05BA60 7F026F30 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05BA64 7F026F34 AFBF0014 */ sw $ra, 0x14($sp) +/* 05BA68 7F026F38 AFA50024 */ sw $a1, 0x24($sp) +/* 05BA6C 7F026F3C 80820007 */ lb $v0, 7($a0) +/* 05BA70 7F026F40 2401000A */ li $at, 10 +/* 05BA74 7F026F44 00803025 */ move $a2, $a0 +/* 05BA78 7F026F48 1441003C */ bne $v0, $at, .L7F02703C +/* 05BA7C 7F026F4C 00001825 */ move $v1, $zero +/* 05BA80 7F026F50 808E0035 */ lb $t6, 0x35($a0) +/* 05BA84 7F026F54 51C00027 */ beql $t6, $zero, .L7F026FF4 +/* 05BA88 7F026F58 8CCA002C */ lw $t2, 0x2c($a2) +/* 05BA8C 7F026F5C 8C82002C */ lw $v0, 0x2c($a0) +/* 05BA90 7F026F60 3C0F8003 */ lui $t7, %hi(D_80030198) +/* 05BA94 7F026F64 25EF0198 */ addiu $t7, %lo(D_80030198) # addiu $t7, $t7, 0x198 +/* 05BA98 7F026F68 11E2000A */ beq $t7, $v0, .L7F026F94 +/* 05BA9C 7F026F6C 3C188003 */ lui $t8, %hi(D_800301E0) +/* 05BAA0 7F026F70 271801E0 */ addiu $t8, %lo(D_800301E0) # addiu $t8, $t8, 0x1e0 +/* 05BAA4 7F026F74 13020007 */ beq $t8, $v0, .L7F026F94 +/* 05BAA8 7F026F78 3C198003 */ lui $t9, %hi(D_80030228) +/* 05BAAC 7F026F7C 27390228 */ addiu $t9, %lo(D_80030228) # addiu $t9, $t9, 0x228 +/* 05BAB0 7F026F80 13220004 */ beq $t9, $v0, .L7F026F94 +/* 05BAB4 7F026F84 3C088003 */ lui $t0, %hi(D_80030270) +/* 05BAB8 7F026F88 25080270 */ addiu $t0, %lo(D_80030270) # addiu $t0, $t0, 0x270 +/* 05BABC 7F026F8C 55020030 */ bnel $t0, $v0, .L7F027050 +/* 05BAC0 7F026F90 8FBF0014 */ lw $ra, 0x14($sp) +.L7F026F94: +/* 05BAC4 7F026F94 C4400004 */ lwc1 $f0, 4($v0) +/* 05BAC8 7F026F98 C44C0014 */ lwc1 $f12, 0x14($v0) +/* 05BACC 7F026F9C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05BAD0 7F026FA0 44812000 */ mtc1 $at, $f4 +/* 05BAD4 7F026FA4 4600603C */ c.lt.s $f12, $f0 +/* 05BAD8 7F026FA8 46040081 */ sub.s $f2, $f0, $f4 +/* 05BADC 7F026FAC 45020003 */ bc1fl .L7F026FBC +/* 05BAE0 7F026FB0 8CC4001C */ lw $a0, 0x1c($a2) +/* 05BAE4 7F026FB4 46006086 */ mov.s $f2, $f12 +/* 05BAE8 7F026FB8 8CC4001C */ lw $a0, 0x1c($a2) +.L7F026FBC: +/* 05BAEC 7F026FBC E7A20018 */ swc1 $f2, 0x18($sp) +/* 05BAF0 7F026FC0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05BAF4 7F026FC4 AFA3001C */ sw $v1, 0x1c($sp) +/* 05BAF8 7F026FC8 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 05BAFC 7F026FCC 8FA3001C */ lw $v1, 0x1c($sp) +/* 05BB00 7F026FD0 8FA90024 */ lw $t1, 0x24($sp) +/* 05BB04 7F026FD4 4602003C */ c.lt.s $f0, $f2 +/* 05BB08 7F026FD8 00000000 */ nop +/* 05BB0C 7F026FDC 4502001C */ bc1fl .L7F027050 +/* 05BB10 7F026FE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB14 7F026FE4 E5220000 */ swc1 $f2, ($t1) +/* 05BB18 7F026FE8 10000018 */ b .L7F02704C +/* 05BB1C 7F026FEC 24030001 */ li $v1, 1 +/* 05BB20 7F026FF0 8CCA002C */ lw $t2, 0x2c($a2) +.L7F026FF4: +/* 05BB24 7F026FF4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05BB28 7F026FF8 44814000 */ mtc1 $at, $f8 +/* 05BB2C 7F026FFC C5460004 */ lwc1 $f6, 4($t2) +/* 05BB30 7F027000 8CC4001C */ lw $a0, 0x1c($a2) +/* 05BB34 7F027004 AFA3001C */ sw $v1, 0x1c($sp) +/* 05BB38 7F027008 46083081 */ sub.s $f2, $f6, $f8 +/* 05BB3C 7F02700C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05BB40 7F027010 E7A20018 */ swc1 $f2, 0x18($sp) +/* 05BB44 7F027014 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 05BB48 7F027018 8FA3001C */ lw $v1, 0x1c($sp) +/* 05BB4C 7F02701C 8FAB0024 */ lw $t3, 0x24($sp) +/* 05BB50 7F027020 4602003C */ c.lt.s $f0, $f2 +/* 05BB54 7F027024 00000000 */ nop +/* 05BB58 7F027028 45020009 */ bc1fl .L7F027050 +/* 05BB5C 7F02702C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB60 7F027030 E5620000 */ swc1 $f2, ($t3) +/* 05BB64 7F027034 10000005 */ b .L7F02704C +/* 05BB68 7F027038 24030001 */ li $v1, 1 +.L7F02703C: +/* 05BB6C 7F02703C 24010007 */ li $at, 7 +/* 05BB70 7F027040 54410003 */ bnel $v0, $at, .L7F027050 +/* 05BB74 7F027044 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB78 7F027048 24030001 */ li $v1, 1 +.L7F02704C: +/* 05BB7C 7F02704C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F027050: +/* 05BB80 7F027050 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05BB84 7F027054 00601025 */ move $v0, $v1 +/* 05BB88 7F027058 03E00008 */ jr $ra +/* 05BB8C 7F02705C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void play_sound_for_shot_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel play_sound_for_shot_actor +/* 05BB90 7F027060 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05BB94 7F027064 AFBF0014 */ sw $ra, 0x14($sp) +/* 05BB98 7F027068 AFA40068 */ sw $a0, 0x68($sp) +/* 05BB9C 7F02706C 8C850018 */ lw $a1, 0x18($a0) +/* 05BBA0 7F027070 24010006 */ li $at, 6 +/* 05BBA4 7F027074 00001825 */ move $v1, $zero +/* 05BBA8 7F027078 90AF0000 */ lbu $t7, ($a1) +/* 05BBAC 7F02707C 00A02025 */ move $a0, $a1 +/* 05BBB0 7F027080 55E1000C */ bnel $t7, $at, .L7F0270B4 +/* 05BBB4 7F027084 8FA90068 */ lw $t1, 0x68($sp) +/* 05BBB8 7F027088 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05BBBC 7F02708C AFA00060 */ sw $zero, 0x60($sp) +/* 05BBC0 7F027090 0002C080 */ sll $t8, $v0, 2 +/* 05BBC4 7F027094 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1) +/* 05BBC8 7F027098 0338C821 */ addu $t9, $t9, $t8 +/* 05BBCC 7F02709C 8F399EE0 */ lw $t9, %lo(ptr_BONDdata_p1)($t9) +/* 05BBD0 7F0270A0 8FA30060 */ lw $v1, 0x60($sp) +/* 05BBD4 7F0270A4 8F2800D8 */ lw $t0, 0xd8($t9) +/* 05BBD8 7F0270A8 55000071 */ bnezl $t0, .L7F027270 +/* 05BBDC 7F0270AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BBE0 7F0270B0 8FA90068 */ lw $t1, 0x68($sp) +.L7F0270B4: +/* 05BBE4 7F0270B4 24010006 */ li $at, 6 +/* 05BBE8 7F0270B8 8FB90068 */ lw $t9, 0x68($sp) +/* 05BBEC 7F0270BC 8D2A0018 */ lw $t2, 0x18($t1) +/* 05BBF0 7F0270C0 914B0000 */ lbu $t3, ($t2) +/* 05BBF4 7F0270C4 5561001D */ bnel $t3, $at, .L7F02713C +/* 05BBF8 7F0270C8 8328000F */ lb $t0, 0xf($t9) +/* 05BBFC 7F0270CC 0FC26919 */ jal get_num_players +/* 05BC00 7F0270D0 AFA30060 */ sw $v1, 0x60($sp) +/* 05BC04 7F0270D4 24010001 */ li $at, 1 +/* 05BC08 7F0270D8 1441000D */ bne $v0, $at, .L7F027110 +/* 05BC0C 7F0270DC 8FA30060 */ lw $v1, 0x60($sp) +/* 05BC10 7F0270E0 8FAC0068 */ lw $t4, 0x68($sp) +/* 05BC14 7F0270E4 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 05BC18 7F0270E8 818D000F */ lb $t5, 0xf($t4) +/* 05BC1C 7F0270EC 000D7080 */ sll $t6, $t5, 2 +/* 05BC20 7F0270F0 01CD7021 */ addu $t6, $t6, $t5 +/* 05BC24 7F0270F4 000E7080 */ sll $t6, $t6, 2 +/* 05BC28 7F0270F8 01EE7821 */ addu $t7, $t7, $t6 +/* 05BC2C 7F0270FC 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 05BC30 7F027100 11E00017 */ beqz $t7, .L7F027160 +/* 05BC34 7F027104 00000000 */ nop +/* 05BC38 7F027108 10000015 */ b .L7F027160 +/* 05BC3C 7F02710C 24030001 */ li $v1, 1 +.L7F027110: +/* 05BC40 7F027110 8FB80068 */ lw $t8, 0x68($sp) +/* 05BC44 7F027114 8F040018 */ lw $a0, 0x18($t8) +/* 05BC48 7F027118 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05BC4C 7F02711C AFA30060 */ sw $v1, 0x60($sp) +/* 05BC50 7F027120 0FC040C3 */ jal get_player_mp_char_gender +/* 05BC54 7F027124 00402025 */ move $a0, $v0 +/* 05BC58 7F027128 1040000D */ beqz $v0, .L7F027160 +/* 05BC5C 7F02712C 8FA30060 */ lw $v1, 0x60($sp) +/* 05BC60 7F027130 1000000B */ b .L7F027160 +/* 05BC64 7F027134 24030001 */ li $v1, 1 +/* 05BC68 7F027138 8328000F */ lb $t0, 0xf($t9) +.L7F02713C: +/* 05BC6C 7F02713C 3C0A8004 */ lui $t2, %hi(c_item_entries+16) +/* 05BC70 7F027140 00084880 */ sll $t1, $t0, 2 +/* 05BC74 7F027144 01284821 */ addu $t1, $t1, $t0 +/* 05BC78 7F027148 00094880 */ sll $t1, $t1, 2 +/* 05BC7C 7F02714C 01495021 */ addu $t2, $t2, $t1 +/* 05BC80 7F027150 914ADE20 */ lbu $t2, %lo(c_item_entries+16)($t2) +/* 05BC84 7F027154 11400002 */ beqz $t2, .L7F027160 +/* 05BC88 7F027158 00000000 */ nop +/* 05BC8C 7F02715C 24030001 */ li $v1, 1 +.L7F027160: +/* 05BC90 7F027160 10600025 */ beqz $v1, .L7F0271F8 +/* 05BC94 7F027164 3C088003 */ lui $t0, %hi(female_guard_yelps) +/* 05BC98 7F027168 3C0B8003 */ lui $t3, %hi(male_guard_yelps) +/* 05BC9C 7F02716C 27A20028 */ addiu $v0, $sp, 0x28 +/* 05BCA0 7F027170 256B09F8 */ addiu $t3, %lo(male_guard_yelps) # addiu $t3, $t3, 0x9f8 +/* 05BCA4 7F027174 256D0030 */ addiu $t5, $t3, 0x30 +/* 05BCA8 7F027178 00407025 */ move $t6, $v0 +.L7F02717C: +/* 05BCAC 7F02717C 8D610000 */ lw $at, ($t3) +/* 05BCB0 7F027180 256B000C */ addiu $t3, $t3, 0xc +/* 05BCB4 7F027184 25CE000C */ addiu $t6, $t6, 0xc +/* 05BCB8 7F027188 ADC1FFF4 */ sw $at, -0xc($t6) +/* 05BCBC 7F02718C 8D61FFF8 */ lw $at, -8($t3) +/* 05BCC0 7F027190 ADC1FFF8 */ sw $at, -8($t6) +/* 05BCC4 7F027194 8D61FFFC */ lw $at, -4($t3) +/* 05BCC8 7F027198 156DFFF8 */ bne $t3, $t5, .L7F02717C +/* 05BCCC 7F02719C ADC1FFFC */ sw $at, -4($t6) +/* 05BCD0 7F0271A0 95610000 */ lhu $at, ($t3) +/* 05BCD4 7F0271A4 3C0F8003 */ lui $t7, %hi(male_guard_yelp_counter) +/* 05BCD8 7F0271A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BCDC 7F0271AC A5C10000 */ sh $at, ($t6) +/* 05BCE0 7F0271B0 8DEF0A34 */ lw $t7, %lo(male_guard_yelp_counter)($t7) +/* 05BCE4 7F0271B4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BCE8 7F0271B8 00003025 */ move $a2, $zero +/* 05BCEC 7F0271BC 000FC040 */ sll $t8, $t7, 1 +/* 05BCF0 7F0271C0 0058C821 */ addu $t9, $v0, $t8 +/* 05BCF4 7F0271C4 0C002382 */ jal play_sfx_a1 +/* 05BCF8 7F0271C8 87250000 */ lh $a1, ($t9) +/* 05BCFC 7F0271CC 3C038003 */ lui $v1, %hi(male_guard_yelp_counter) +/* 05BD00 7F0271D0 8C630A34 */ lw $v1, %lo(male_guard_yelp_counter)($v1) +/* 05BD04 7F0271D4 3C018003 */ lui $at, %hi(male_guard_yelp_counter) +/* 05BD08 7F0271D8 00402025 */ move $a0, $v0 +/* 05BD0C 7F0271DC 24630001 */ addiu $v1, $v1, 1 +/* 05BD10 7F0271E0 AC230A34 */ sw $v1, %lo(male_guard_yelp_counter)($at) +/* 05BD14 7F0271E4 28610019 */ slti $at, $v1, 0x19 +/* 05BD18 7F0271E8 1420001C */ bnez $at, .L7F02725C +/* 05BD1C 7F0271EC 3C018003 */ lui $at, %hi(male_guard_yelp_counter) +/* 05BD20 7F0271F0 1000001A */ b .L7F02725C +/* 05BD24 7F0271F4 AC200A34 */ sw $zero, %lo(male_guard_yelp_counter)($at) +.L7F0271F8: +/* 05BD28 7F0271F8 25080A2C */ addiu $t0, %lo(female_guard_yelps) # addiu $t0, $t0, 0xa2c +/* 05BD2C 7F0271FC 8D010000 */ lw $at, ($t0) +/* 05BD30 7F027200 27A20020 */ addiu $v0, $sp, 0x20 +/* 05BD34 7F027204 3C0D8003 */ lui $t5, %hi(female_guard_yelp_counter) +/* 05BD38 7F027208 AC410000 */ sw $at, ($v0) +/* 05BD3C 7F02720C 95010004 */ lhu $at, 4($t0) +/* 05BD40 7F027210 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BD44 7F027214 00003025 */ move $a2, $zero +/* 05BD48 7F027218 A4410004 */ sh $at, 4($v0) +/* 05BD4C 7F02721C 8DAD0A38 */ lw $t5, %lo(female_guard_yelp_counter)($t5) +/* 05BD50 7F027220 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BD54 7F027224 000D5840 */ sll $t3, $t5, 1 +/* 05BD58 7F027228 004B7021 */ addu $t6, $v0, $t3 +/* 05BD5C 7F02722C 0C002382 */ jal play_sfx_a1 +/* 05BD60 7F027230 85C50000 */ lh $a1, ($t6) +/* 05BD64 7F027234 3C038003 */ lui $v1, %hi(female_guard_yelp_counter) +/* 05BD68 7F027238 8C630A38 */ lw $v1, %lo(female_guard_yelp_counter)($v1) +/* 05BD6C 7F02723C 3C018003 */ lui $at, %hi(female_guard_yelp_counter) +/* 05BD70 7F027240 00402025 */ move $a0, $v0 +/* 05BD74 7F027244 24630001 */ addiu $v1, $v1, 1 +/* 05BD78 7F027248 AC230A38 */ sw $v1, %lo(female_guard_yelp_counter)($at) +/* 05BD7C 7F02724C 28610003 */ slti $at, $v1, 3 +/* 05BD80 7F027250 14200002 */ bnez $at, .L7F02725C +/* 05BD84 7F027254 3C018003 */ lui $at, %hi(female_guard_yelp_counter) +/* 05BD88 7F027258 AC200A38 */ sw $zero, %lo(female_guard_yelp_counter)($at) +.L7F02725C: +/* 05BD8C 7F02725C 8FAF0068 */ lw $t7, 0x68($sp) +/* 05BD90 7F027260 8DE50018 */ lw $a1, 0x18($t7) +/* 05BD94 7F027264 0FC14E84 */ jal sub_GAME_7F053A10 +/* 05BD98 7F027268 24A50008 */ addiu $a1, $a1, 8 +/* 05BD9C 7F02726C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F027270: +/* 05BDA0 7F027270 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05BDA4 7F027274 03E00008 */ jr $ra +/* 05BDA8 7F027278 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void handles_shot_actors(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DDC +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051DE0 +.word 0x40a78d36 /*5.2359877*/ +glabel D_80051DE4 +.word 0x40060a92 /*2.0943952*/ +glabel D_80051DE8 +.word 0x40860a92 /*4.1887903*/ +.text +glabel handles_shot_actors +/* 05BDAC 7F02727C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05BDB0 7F027280 AFBF0024 */ sw $ra, 0x24($sp) +/* 05BDB4 7F027284 AFB00020 */ sw $s0, 0x20($sp) +/* 05BDB8 7F027288 AFA5006C */ sw $a1, 0x6c($sp) +/* 05BDBC 7F02728C AFA60070 */ sw $a2, 0x70($sp) +/* 05BDC0 7F027290 AFA70074 */ sw $a3, 0x74($sp) +/* 05BDC4 7F027294 8C8E0018 */ lw $t6, 0x18($a0) +/* 05BDC8 7F027298 2401006E */ li $at, 110 +/* 05BDCC 7F02729C 00808025 */ move $s0, $a0 +/* 05BDD0 7F0272A0 14A1002A */ bne $a1, $at, .L7F02734C +/* 05BDD4 7F0272A4 AFAE0060 */ sw $t6, 0x60($sp) +/* 05BDD8 7F0272A8 8C8401D8 */ lw $a0, 0x1d8($a0) +/* 05BDDC 7F0272AC 50800028 */ beql $a0, $zero, .L7F027350 +/* 05BDE0 7F0272B0 8FAF0078 */ lw $t7, 0x78($sp) +/* 05BDE4 7F0272B4 0FC149A1 */ jal get_hat_model +/* 05BDE8 7F0272B8 00000000 */ nop +/* 05BDEC 7F0272BC 24010005 */ li $at, 5 +/* 05BDF0 7F0272C0 14410003 */ bne $v0, $at, .L7F0272D0 +/* 05BDF4 7F0272C4 24180008 */ li $t8, 8 +/* 05BDF8 7F0272C8 10000020 */ b .L7F02734C +/* 05BDFC 7F0272CC AFB8006C */ sw $t8, 0x6c($sp) +.L7F0272D0: +/* 05BE00 7F0272D0 24010003 */ li $at, 3 +/* 05BE04 7F0272D4 10410008 */ beq $v0, $at, .L7F0272F8 +/* 05BE08 7F0272D8 3C0A8003 */ lui $t2, %hi(metal_ricochet_SFX) +/* 05BE0C 7F0272DC 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 05BE10 7F0272E0 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BE14 7F0272E4 24050004 */ li $a1, 4 +/* 05BE18 7F0272E8 96190012 */ lhu $t9, 0x12($s0) +/* 05BE1C 7F0272EC 37280001 */ ori $t0, $t9, 1 +/* 05BE20 7F0272F0 10000016 */ b .L7F02734C +/* 05BE24 7F0272F4 A6080012 */ sh $t0, 0x12($s0) +.L7F0272F8: +/* 05BE28 7F0272F8 254A0A3C */ addiu $t2, %lo(metal_ricochet_SFX) # addiu $t2, $t2, 0xa3c +/* 05BE2C 7F0272FC 8D410000 */ lw $at, ($t2) +/* 05BE30 7F027300 27A90054 */ addiu $t1, $sp, 0x54 +/* 05BE34 7F027304 AD210000 */ sw $at, ($t1) +/* 05BE38 7F027308 95410004 */ lhu $at, 4($t2) +/* 05BE3C 7F02730C 0C002914 */ jal get_random_value +/* 05BE40 7F027310 A5210004 */ sh $at, 4($t1) +/* 05BE44 7F027314 24010003 */ li $at, 3 +/* 05BE48 7F027318 0041001B */ divu $zero, $v0, $at +/* 05BE4C 7F02731C 00006810 */ mfhi $t5 +/* 05BE50 7F027320 000D7040 */ sll $t6, $t5, 1 +/* 05BE54 7F027324 03AE2821 */ addu $a1, $sp, $t6 +/* 05BE58 7F027328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BE5C 7F02732C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BE60 7F027330 84A50054 */ lh $a1, 0x54($a1) +/* 05BE64 7F027334 0C002382 */ jal play_sfx_a1 +/* 05BE68 7F027338 00003025 */ move $a2, $zero +/* 05BE6C 7F02733C 8E050018 */ lw $a1, 0x18($s0) +/* 05BE70 7F027340 00402025 */ move $a0, $v0 +/* 05BE74 7F027344 0FC14E84 */ jal sub_GAME_7F053A10 +/* 05BE78 7F027348 24A50008 */ addiu $a1, $a1, 8 +.L7F02734C: +/* 05BE7C 7F02734C 8FAF0078 */ lw $t7, 0x78($sp) +.L7F027350: +/* 05BE80 7F027350 8FB8006C */ lw $t8, 0x6c($sp) +/* 05BE84 7F027354 51E00025 */ beql $t7, $zero, .L7F0273EC +/* 05BE88 7F027358 8E0B0014 */ lw $t3, 0x14($s0) +/* 05BE8C 7F02735C 13000022 */ beqz $t8, .L7F0273E8 +/* 05BE90 7F027360 24010007 */ li $at, 7 +/* 05BE94 7F027364 1301001A */ beq $t8, $at, .L7F0273D0 +/* 05BE98 7F027368 8FA40074 */ lw $a0, 0x74($sp) +/* 05BE9C 7F02736C 24010008 */ li $at, 8 +/* 05BEA0 7F027370 1301000B */ beq $t8, $at, .L7F0273A0 +/* 05BEA4 7F027374 24050001 */ li $a1, 1 +/* 05BEA8 7F027378 2401000F */ li $at, 15 +/* 05BEAC 7F02737C 13010014 */ beq $t8, $at, .L7F0273D0 +/* 05BEB0 7F027380 24010064 */ li $at, 100 +/* 05BEB4 7F027384 1301000A */ beq $t8, $at, .L7F0273B0 +/* 05BEB8 7F027388 8FA40074 */ lw $a0, 0x74($sp) +/* 05BEBC 7F02738C 2401006E */ li $at, 110 +/* 05BEC0 7F027390 1301000B */ beq $t8, $at, .L7F0273C0 +/* 05BEC4 7F027394 8FA40074 */ lw $a0, 0x74($sp) +/* 05BEC8 7F027398 10000011 */ b .L7F0273E0 +/* 05BECC 7F02739C 8FA40074 */ lw $a0, 0x74($sp) +.L7F0273A0: +/* 05BED0 7F0273A0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BED4 7F0273A4 8FA40074 */ lw $a0, 0x74($sp) +/* 05BED8 7F0273A8 10000010 */ b .L7F0273EC +/* 05BEDC 7F0273AC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273B0: +/* 05BEE0 7F0273B0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BEE4 7F0273B4 24050004 */ li $a1, 4 +/* 05BEE8 7F0273B8 1000000C */ b .L7F0273EC +/* 05BEEC 7F0273BC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273C0: +/* 05BEF0 7F0273C0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BEF4 7F0273C4 24050005 */ li $a1, 5 +/* 05BEF8 7F0273C8 10000008 */ b .L7F0273EC +/* 05BEFC 7F0273CC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273D0: +/* 05BF00 7F0273D0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BF04 7F0273D4 24050002 */ li $a1, 2 +/* 05BF08 7F0273D8 10000004 */ b .L7F0273EC +/* 05BF0C 7F0273DC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273E0: +/* 05BF10 7F0273E0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BF14 7F0273E4 24050003 */ li $a1, 3 +.L7F0273E8: +/* 05BF18 7F0273E8 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273EC: +/* 05BF1C 7F0273EC 8219000B */ lb $t9, 0xb($s0) +/* 05BF20 7F0273F0 3C010020 */ lui $at, 0x20 +/* 05BF24 7F0273F4 01614825 */ or $t1, $t3, $at +/* 05BF28 7F0273F8 312C0010 */ andi $t4, $t1, 0x10 +/* 05BF2C 7F0273FC 27280001 */ addiu $t0, $t9, 1 +/* 05BF30 7F027400 A208000B */ sb $t0, 0xb($s0) +/* 05BF34 7F027404 11800005 */ beqz $t4, .L7F02741C +/* 05BF38 7F027408 AE090014 */ sw $t1, 0x14($s0) +/* 05BF3C 7F02740C 0FC081B5 */ jal sub_GAME_7F0206D4 +/* 05BF40 7F027410 02002025 */ move $a0, $s0 +/* 05BF44 7F027414 100000F6 */ b .L7F0277F0 +/* 05BF48 7F027418 00001025 */ move $v0, $zero +.L7F02741C: +/* 05BF4C 7F02741C 82020007 */ lb $v0, 7($s0) +/* 05BF50 7F027420 24010004 */ li $at, 4 +/* 05BF54 7F027424 104100F1 */ beq $v0, $at, .L7F0277EC +/* 05BF58 7F027428 24010005 */ li $at, 5 +/* 05BF5C 7F02742C 504100F0 */ beql $v0, $at, .L7F0277F0 +/* 05BF60 7F027430 24020001 */ li $v0, 1 +/* 05BF64 7F027434 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 05BF68 7F027438 8FA40074 */ lw $a0, 0x74($sp) +/* 05BF6C 7F02743C 8FAD0078 */ lw $t5, 0x78($sp) +/* 05BF70 7F027440 46000086 */ mov.s $f2, $f0 +/* 05BF74 7F027444 51A0000B */ beql $t5, $zero, .L7F027474 +/* 05BF78 7F027448 8FA20070 */ lw $v0, 0x70($sp) +/* 05BF7C 7F02744C 0FC26919 */ jal get_num_players +/* 05BF80 7F027450 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05BF84 7F027454 24010001 */ li $at, 1 +/* 05BF88 7F027458 14410005 */ bne $v0, $at, .L7F027470 +/* 05BF8C 7F02745C C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05BF90 7F027460 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 05BF94 7F027464 C424CE48 */ lwc1 $f4, %lo(ai_health_modifier)($at) +/* 05BF98 7F027468 46041082 */ mul.s $f2, $f2, $f4 +/* 05BF9C 7F02746C 00000000 */ nop +.L7F027470: +/* 05BFA0 7F027470 8FA20070 */ lw $v0, 0x70($sp) +.L7F027474: +/* 05BFA4 7F027474 8FAE0060 */ lw $t6, 0x60($sp) +/* 05BFA8 7F027478 02002025 */ move $a0, $s0 +/* 05BFAC 7F02747C C4480000 */ lwc1 $f8, ($v0) +/* 05BFB0 7F027480 C5C60008 */ lwc1 $f6, 8($t6) +/* 05BFB4 7F027484 27A50044 */ addiu $a1, $sp, 0x44 +/* 05BFB8 7F027488 46083281 */ sub.s $f10, $f6, $f8 +/* 05BFBC 7F02748C E7AA0044 */ swc1 $f10, 0x44($sp) +/* 05BFC0 7F027490 C4520004 */ lwc1 $f18, 4($v0) +/* 05BFC4 7F027494 C5D0000C */ lwc1 $f16, 0xc($t6) +/* 05BFC8 7F027498 46128101 */ sub.s $f4, $f16, $f18 +/* 05BFCC 7F02749C E7A40048 */ swc1 $f4, 0x48($sp) +/* 05BFD0 7F0274A0 C4480008 */ lwc1 $f8, 8($v0) +/* 05BFD4 7F0274A4 C5C60010 */ lwc1 $f6, 0x10($t6) +/* 05BFD8 7F0274A8 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05BFDC 7F0274AC 46083281 */ sub.s $f10, $f6, $f8 +/* 05BFE0 7F0274B0 0FC0CAF6 */ jal get_distance_actor_to_position +/* 05BFE4 7F0274B4 E7AA004C */ swc1 $f10, 0x4c($sp) +/* 05BFE8 7F0274B8 8FAF006C */ lw $t7, 0x6c($sp) +/* 05BFEC 7F0274BC 240100C8 */ li $at, 200 +/* 05BFF0 7F0274C0 24030001 */ li $v1, 1 +/* 05BFF4 7F0274C4 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05BFF8 7F0274C8 15E10008 */ bne $t7, $at, .L7F0274EC +/* 05BFFC 7F0274CC E7A00040 */ swc1 $f0, 0x40($sp) +/* 05C000 7F0274D0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C004 7F0274D4 44818000 */ mtc1 $at, $f16 +/* 05C008 7F0274D8 2418000F */ li $t8, 15 +/* 05C00C 7F0274DC AFB8006C */ sw $t8, 0x6c($sp) +/* 05C010 7F0274E0 46101082 */ mul.s $f2, $f2, $f16 +/* 05C014 7F0274E4 1000000B */ b .L7F027514 +/* 05C018 7F0274E8 8FAB0074 */ lw $t3, 0x74($sp) +.L7F0274EC: +/* 05C01C 7F0274EC 8FB9006C */ lw $t9, 0x6c($sp) +/* 05C020 7F0274F0 240100C9 */ li $at, 201 +/* 05C024 7F0274F4 17210006 */ bne $t9, $at, .L7F027510 +/* 05C028 7F0274F8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05C02C 7F0274FC 44819000 */ mtc1 $at, $f18 +/* 05C030 7F027500 2408000F */ li $t0, 15 +/* 05C034 7F027504 AFA8006C */ sw $t0, 0x6c($sp) +/* 05C038 7F027508 46121082 */ mul.s $f2, $f2, $f18 +/* 05C03C 7F02750C 00000000 */ nop +.L7F027510: +/* 05C040 7F027510 8FAB0074 */ lw $t3, 0x74($sp) +.L7F027514: +/* 05C044 7F027514 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C048 7F027518 8FAC006C */ lw $t4, 0x6c($sp) +/* 05C04C 7F02751C 55630039 */ bnel $t3, $v1, .L7F027604 +/* 05C050 7F027520 24010008 */ li $at, 8 +/* 05C054 7F027524 82020007 */ lb $v0, 7($s0) +/* 05C058 7F027528 2401000E */ li $at, 14 +/* 05C05C 7F02752C 50620035 */ beql $v1, $v0, .L7F027604 +/* 05C060 7F027530 24010008 */ li $at, 8 +/* 05C064 7F027534 10410032 */ beq $v0, $at, .L7F027600 +/* 05C068 7F027538 24010010 */ li $at, 16 +/* 05C06C 7F02753C 10410030 */ beq $v0, $at, .L7F027600 +/* 05C070 7F027540 24010003 */ li $at, 3 +/* 05C074 7F027544 1041002E */ beq $v0, $at, .L7F027600 +/* 05C078 7F027548 2401000F */ li $at, 15 +/* 05C07C 7F02754C 14410003 */ bne $v0, $at, .L7F02755C +/* 05C080 7F027550 00000000 */ nop +/* 05C084 7F027554 92090059 */ lbu $t1, 0x59($s0) +/* 05C088 7F027558 11200029 */ beqz $t1, .L7F027600 +.L7F02755C: +/* 05C08C 7F02755C 3C018005 */ lui $at, %hi(D_80051DDC) +/* 05C090 7F027560 C4241DDC */ lwc1 $f4, %lo(D_80051DDC)($at) +/* 05C094 7F027564 3C018005 */ lui $at, %hi(D_80051DE0) +/* 05C098 7F027568 4604003C */ c.lt.s $f0, $f4 +/* 05C09C 7F02756C 00000000 */ nop +/* 05C0A0 7F027570 45030008 */ bc1tl .L7F027594 +/* 05C0A4 7F027574 3C013E00 */ lui $at, 0x3e00 +/* 05C0A8 7F027578 C4261DE0 */ lwc1 $f6, %lo(D_80051DE0)($at) +/* 05C0AC 7F02757C 3C018005 */ lui $at, %hi(D_80051DE4) +/* 05C0B0 7F027580 4600303C */ c.lt.s $f6, $f0 +/* 05C0B4 7F027584 00000000 */ nop +/* 05C0B8 7F027588 45000007 */ bc1f .L7F0275A8 +/* 05C0BC 7F02758C 00000000 */ nop +/* 05C0C0 7F027590 3C013E00 */ li $at, 0x3E000000 # 0.125000 +.L7F027594: +/* 05C0C4 7F027594 44814000 */ mtc1 $at, $f8 +/* 05C0C8 7F027598 00000000 */ nop +/* 05C0CC 7F02759C 46081082 */ mul.s $f2, $f2, $f8 +/* 05C0D0 7F0275A0 10000018 */ b .L7F027604 +/* 05C0D4 7F0275A4 24010008 */ li $at, 8 +.L7F0275A8: +/* 05C0D8 7F0275A8 C42A1DE4 */ lwc1 $f10, %lo(D_80051DE4)($at) +/* 05C0DC 7F0275AC 3C018005 */ lui $at, %hi(D_80051DE8) +/* 05C0E0 7F0275B0 460A003C */ c.lt.s $f0, $f10 +/* 05C0E4 7F0275B4 00000000 */ nop +/* 05C0E8 7F0275B8 45030008 */ bc1tl .L7F0275DC +/* 05C0EC 7F0275BC 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05C0F0 7F0275C0 C4301DE8 */ lwc1 $f16, %lo(D_80051DE8)($at) +/* 05C0F4 7F0275C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C0F8 7F0275C8 4600803C */ c.lt.s $f16, $f0 +/* 05C0FC 7F0275CC 00000000 */ nop +/* 05C100 7F0275D0 45020008 */ bc1fl .L7F0275F4 +/* 05C104 7F0275D4 44812000 */ mtc1 $at, $f4 +/* 05C108 7F0275D8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F0275DC: +/* 05C10C 7F0275DC 44819000 */ mtc1 $at, $f18 +/* 05C110 7F0275E0 00000000 */ nop +/* 05C114 7F0275E4 46121082 */ mul.s $f2, $f2, $f18 +/* 05C118 7F0275E8 10000006 */ b .L7F027604 +/* 05C11C 7F0275EC 24010008 */ li $at, 8 +/* 05C120 7F0275F0 44812000 */ mtc1 $at, $f4 +.L7F0275F4: +/* 05C124 7F0275F4 00000000 */ nop +/* 05C128 7F0275F8 46041082 */ mul.s $f2, $f2, $f4 +/* 05C12C 7F0275FC 00000000 */ nop +.L7F027600: +/* 05C130 7F027600 24010008 */ li $at, 8 +.L7F027604: +/* 05C134 7F027604 15410006 */ bne $t2, $at, .L7F027620 +/* 05C138 7F027608 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 05C13C 7F02760C 44813000 */ mtc1 $at, $f6 +/* 05C140 7F027610 00000000 */ nop +/* 05C144 7F027614 46061082 */ mul.s $f2, $f2, $f6 +/* 05C148 7F027618 10000012 */ b .L7F027664 +/* 05C14C 7F02761C 8E0F0018 */ lw $t7, 0x18($s0) +.L7F027620: +/* 05C150 7F027620 2401000F */ li $at, 15 +/* 05C154 7F027624 15810003 */ bne $t4, $at, .L7F027634 +/* 05C158 7F027628 8FAD006C */ lw $t5, 0x6c($sp) +/* 05C15C 7F02762C 1000000C */ b .L7F027660 +/* 05C160 7F027630 46021080 */ add.s $f2, $f2, $f2 +.L7F027634: +/* 05C164 7F027634 24010064 */ li $at, 100 +/* 05C168 7F027638 15A10004 */ bne $t5, $at, .L7F02764C +/* 05C16C 7F02763C 8FAE006C */ lw $t6, 0x6c($sp) +/* 05C170 7F027640 44801000 */ mtc1 $zero, $f2 +/* 05C174 7F027644 10000007 */ b .L7F027664 +/* 05C178 7F027648 8E0F0018 */ lw $t7, 0x18($s0) +.L7F02764C: +/* 05C17C 7F02764C 2401006E */ li $at, 110 +/* 05C180 7F027650 55C10004 */ bnel $t6, $at, .L7F027664 +/* 05C184 7F027654 8E0F0018 */ lw $t7, 0x18($s0) +/* 05C188 7F027658 44801000 */ mtc1 $zero, $f2 +/* 05C18C 7F02765C 00000000 */ nop +.L7F027660: +/* 05C190 7F027660 8E0F0018 */ lw $t7, 0x18($s0) +.L7F027664: +/* 05C194 7F027664 24010006 */ li $at, 6 +/* 05C198 7F027668 91F80000 */ lbu $t8, ($t7) +/* 05C19C 7F02766C 57010018 */ bnel $t8, $at, .L7F0276D0 +/* 05C1A0 7F027670 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 05C1A4 7F027674 0FC26C54 */ jal get_cur_playernum +/* 05C1A8 7F027678 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05C1AC 7F02767C AFA20038 */ sw $v0, 0x38($sp) +/* 05C1B0 7F027680 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05C1B4 7F027684 8E040018 */ lw $a0, 0x18($s0) +/* 05C1B8 7F027688 0FC26C43 */ jal set_cur_player +/* 05C1BC 7F02768C 00402025 */ move $a0, $v0 +/* 05C1C0 7F027690 8FB90070 */ lw $t9, 0x70($sp) +/* 05C1C4 7F027694 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 05C1C8 7F027698 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05C1CC 7F02769C 44814000 */ mtc1 $at, $f8 +/* 05C1D0 7F0276A0 24080001 */ li $t0, 1 +/* 05C1D4 7F0276A4 C72E0000 */ lwc1 $f14, ($t9) +/* 05C1D8 7F0276A8 8F260008 */ lw $a2, 8($t9) +/* 05C1DC 7F0276AC 46081302 */ mul.s $f12, $f2, $f8 +/* 05C1E0 7F0276B0 AFA80010 */ sw $t0, 0x10($sp) +/* 05C1E4 7F0276B4 0FC22647 */ jal record_damage_kills +/* 05C1E8 7F0276B8 8FA70038 */ lw $a3, 0x38($sp) +/* 05C1EC 7F0276BC 0FC26C43 */ jal set_cur_player +/* 05C1F0 7F0276C0 8FA40038 */ lw $a0, 0x38($sp) +/* 05C1F4 7F0276C4 1000001A */ b .L7F027730 +/* 05C1F8 7F0276C8 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C1FC 7F0276CC C60A00FC */ lwc1 $f10, 0xfc($s0) +.L7F0276D0: +/* 05C200 7F0276D0 44802000 */ mtc1 $zero, $f4 +/* 05C204 7F0276D4 8E0B0014 */ lw $t3, 0x14($s0) +/* 05C208 7F0276D8 46025400 */ add.s $f16, $f10, $f2 +/* 05C20C 7F0276DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C210 7F0276E0 35690100 */ ori $t1, $t3, 0x100 +/* 05C214 7F0276E4 AE090014 */ sw $t1, 0x14($s0) +/* 05C218 7F0276E8 E61000FC */ swc1 $f16, 0xfc($s0) +/* 05C21C 7F0276EC C61200FC */ lwc1 $f18, 0xfc($s0) +/* 05C220 7F0276F0 02002025 */ move $a0, $s0 +/* 05C224 7F0276F4 4604903C */ c.lt.s $f18, $f4 +/* 05C228 7F0276F8 00000000 */ nop +/* 05C22C 7F0276FC 4502000C */ bc1fl .L7F027730 +/* 05C230 7F027700 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C234 7F027704 44813000 */ mtc1 $at, $f6 +/* 05C238 7F027708 27A50034 */ addiu $a1, $sp, 0x34 +/* 05C23C 7F02770C 0FC09BCC */ jal sub_GAME_7F026F30 +/* 05C240 7F027710 E7A60034 */ swc1 $f6, 0x34($sp) +/* 05C244 7F027714 54400006 */ bnezl $v0, .L7F027730 +/* 05C248 7F027718 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C24C 7F02771C 0FC081B5 */ jal sub_GAME_7F0206D4 +/* 05C250 7F027720 02002025 */ move $a0, $s0 +/* 05C254 7F027724 10000032 */ b .L7F0277F0 +/* 05C258 7F027728 00001025 */ move $v0, $zero +/* 05C25C 7F02772C 8FAA006C */ lw $t2, 0x6c($sp) +.L7F027730: +/* 05C260 7F027730 2401006E */ li $at, 110 +/* 05C264 7F027734 1141002D */ beq $t2, $at, .L7F0277EC +/* 05C268 7F027738 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C26C 7F02773C 44814000 */ mtc1 $at, $f8 +/* 05C270 7F027740 02002025 */ move $a0, $s0 +/* 05C274 7F027744 0FC09C18 */ jal play_sound_for_shot_actor +/* 05C278 7F027748 E7A80030 */ swc1 $f8, 0x30($sp) +/* 05C27C 7F02774C 02002025 */ move $a0, $s0 +/* 05C280 7F027750 0FC09BCC */ jal sub_GAME_7F026F30 +/* 05C284 7F027754 27A50030 */ addiu $a1, $sp, 0x30 +/* 05C288 7F027758 1040001E */ beqz $v0, .L7F0277D4 +/* 05C28C 7F02775C 02002025 */ move $a0, $s0 +/* 05C290 7F027760 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 05C294 7F027764 44808000 */ mtc1 $zero, $f16 +/* 05C298 7F027768 00000000 */ nop +/* 05C29C 7F02776C 460A803E */ c.le.s $f16, $f10 +/* 05C2A0 7F027770 00000000 */ nop +/* 05C2A4 7F027774 45020005 */ bc1fl .L7F02778C +/* 05C2A8 7F027778 240C0007 */ li $t4, 7 +/* 05C2AC 7F02777C 44055000 */ mfc1 $a1, $f10 +/* 05C2B0 7F027780 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05C2B4 7F027784 8E04001C */ lw $a0, 0x1c($s0) +/* 05C2B8 7F027788 240C0007 */ li $t4, 7 +.L7F02778C: +/* 05C2BC 7F02778C A20C0007 */ sb $t4, 7($s0) +/* 05C2C0 7F027790 8FAD0070 */ lw $t5, 0x70($sp) +/* 05C2C4 7F027794 C5B20000 */ lwc1 $f18, ($t5) +/* 05C2C8 7F027798 E612002C */ swc1 $f18, 0x2c($s0) +/* 05C2CC 7F02779C 8FAE0070 */ lw $t6, 0x70($sp) +/* 05C2D0 7F0277A0 C5C40004 */ lwc1 $f4, 4($t6) +/* 05C2D4 7F0277A4 E6040030 */ swc1 $f4, 0x30($s0) +/* 05C2D8 7F0277A8 8FAF0070 */ lw $t7, 0x70($sp) +/* 05C2DC 7F0277AC C5E60008 */ lwc1 $f6, 8($t7) +/* 05C2E0 7F0277B0 E6060034 */ swc1 $f6, 0x34($s0) +/* 05C2E4 7F0277B4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 05C2E8 7F0277B8 E6080038 */ swc1 $f8, 0x38($s0) +/* 05C2EC 7F0277BC 8FB8006C */ lw $t8, 0x6c($sp) +/* 05C2F0 7F0277C0 AE18003C */ sw $t8, 0x3c($s0) +/* 05C2F4 7F0277C4 8FB90074 */ lw $t9, 0x74($sp) +/* 05C2F8 7F0277C8 A2000008 */ sb $zero, 8($s0) +/* 05C2FC 7F0277CC 10000007 */ b .L7F0277EC +/* 05C300 7F0277D0 AE190040 */ sw $t9, 0x40($s0) +.L7F0277D4: +/* 05C304 7F0277D4 8FA80074 */ lw $t0, 0x74($sp) +/* 05C308 7F0277D8 8FA50070 */ lw $a1, 0x70($sp) +/* 05C30C 7F0277DC 8FA60040 */ lw $a2, 0x40($sp) +/* 05C310 7F0277E0 8FA7006C */ lw $a3, 0x6c($sp) +/* 05C314 7F0277E4 0FC09942 */ jal triggered_on_shot_hit +/* 05C318 7F0277E8 AFA80010 */ sw $t0, 0x10($sp) +.L7F0277EC: +/* 05C31C 7F0277EC 24020001 */ li $v0, 1 +.L7F0277F0: +/* 05C320 7F0277F0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05C324 7F0277F4 8FB00020 */ lw $s0, 0x20($sp) +/* 05C328 7F0277F8 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05C32C 7F0277FC 03E00008 */ jr $ra +/* 05C330 7F027800 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027804(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DF0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F027804 +/* 05C334 7F027804 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 05C338 7F027808 AFBF0024 */ sw $ra, 0x24($sp) +/* 05C33C 7F02780C AFB00020 */ sw $s0, 0x20($sp) +/* 05C340 7F027810 AFA60060 */ sw $a2, 0x60($sp) +/* 05C344 7F027814 AFA70064 */ sw $a3, 0x64($sp) +/* 05C348 7F027818 80830007 */ lb $v1, 7($a0) +/* 05C34C 7F02781C 24010005 */ li $at, 5 +/* 05C350 7F027820 00808025 */ move $s0, $a0 +/* 05C354 7F027824 8C86001C */ lw $a2, 0x1c($a0) +/* 05C358 7F027828 10610004 */ beq $v1, $at, .L7F02783C +/* 05C35C 7F02782C 8C820018 */ lw $v0, 0x18($a0) +/* 05C360 7F027830 24010004 */ li $at, 4 +/* 05C364 7F027834 54610004 */ bnel $v1, $at, .L7F027848 +/* 05C368 7F027838 8E0E0014 */ lw $t6, 0x14($s0) +.L7F02783C: +/* 05C36C 7F02783C 100000E8 */ b .L7F027BE0 +/* 05C370 7F027840 00001025 */ move $v0, $zero +/* 05C374 7F027844 8E0E0014 */ lw $t6, 0x14($s0) +.L7F027848: +/* 05C378 7F027848 3C010020 */ lui $at, 0x20 +/* 05C37C 7F02784C 01C11825 */ or $v1, $t6, $at +/* 05C380 7F027850 30780010 */ andi $t8, $v1, 0x10 +/* 05C384 7F027854 13000003 */ beqz $t8, .L7F027864 +/* 05C388 7F027858 AE030014 */ sw $v1, 0x14($s0) +/* 05C38C 7F02785C 100000E0 */ b .L7F027BE0 +/* 05C390 7F027860 00001025 */ move $v0, $zero +.L7F027864: +/* 05C394 7F027864 8219000B */ lb $t9, 0xb($s0) +/* 05C398 7F027868 C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05C39C 7F02786C 44805000 */ mtc1 $zero, $f10 +/* 05C3A0 7F027870 27280001 */ addiu $t0, $t9, 1 +/* 05C3A4 7F027874 A208000B */ sb $t0, 0xb($s0) +/* 05C3A8 7F027878 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05C3AC 7F02787C 34690100 */ ori $t1, $v1, 0x100 +/* 05C3B0 7F027880 AE090014 */ sw $t1, 0x14($s0) +/* 05C3B4 7F027884 46062200 */ add.s $f8, $f4, $f6 +/* 05C3B8 7F027888 E60800FC */ swc1 $f8, 0xfc($s0) +/* 05C3BC 7F02788C C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05C3C0 7F027890 4604503C */ c.lt.s $f10, $f4 +/* 05C3C4 7F027894 00000000 */ nop +/* 05C3C8 7F027898 450200D1 */ bc1fl .L7F027BE0 +/* 05C3CC 7F02789C 00001025 */ move $v0, $zero +/* 05C3D0 7F0278A0 C6060100 */ lwc1 $f6, 0x100($s0) +/* 05C3D4 7F0278A4 00C02025 */ move $a0, $a2 +/* 05C3D8 7F0278A8 E60600FC */ swc1 $f6, 0xfc($s0) +/* 05C3DC 7F0278AC AFA60054 */ sw $a2, 0x54($sp) +/* 05C3E0 7F0278B0 AFA5005C */ sw $a1, 0x5c($sp) +/* 05C3E4 7F0278B4 0FC1B320 */ jal getsubroty +/* 05C3E8 7F0278B8 AFA20050 */ sw $v0, 0x50($sp) +/* 05C3EC 7F0278BC 8FA20050 */ lw $v0, 0x50($sp) +/* 05C3F0 7F0278C0 8FA5005C */ lw $a1, 0x5c($sp) +/* 05C3F4 7F0278C4 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 05C3F8 7F0278C8 C4440010 */ lwc1 $f4, 0x10($v0) +/* 05C3FC 7F0278CC C4480008 */ lwc1 $f8, 8($v0) +/* 05C400 7F0278D0 C4A60008 */ lwc1 $f6, 8($a1) +/* 05C404 7F0278D4 C4AA0000 */ lwc1 $f10, ($a1) +/* 05C408 7F0278D8 46062381 */ sub.s $f14, $f4, $f6 +/* 05C40C 7F0278DC 0FC16A8C */ jal atan2f +/* 05C410 7F0278E0 460A4301 */ sub.s $f12, $f8, $f10 +/* 05C414 7F0278E4 8FA20050 */ lw $v0, 0x50($sp) +/* 05C418 7F0278E8 8FA5005C */ lw $a1, 0x5c($sp) +/* 05C41C 7F0278EC 44801000 */ mtc1 $zero, $f2 +/* 05C420 7F0278F0 C4480008 */ lwc1 $f8, 8($v0) +/* 05C424 7F0278F4 C4AA0000 */ lwc1 $f10, ($a1) +/* 05C428 7F0278F8 46000406 */ mov.s $f16, $f0 +/* 05C42C 7F0278FC 460A4101 */ sub.s $f4, $f8, $f10 +/* 05C430 7F027900 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 05C434 7F027904 C446000C */ lwc1 $f6, 0xc($v0) +/* 05C438 7F027908 C4A80004 */ lwc1 $f8, 4($a1) +/* 05C43C 7F02790C 46083281 */ sub.s $f10, $f6, $f8 +/* 05C440 7F027910 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05C444 7F027914 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 05C448 7F027918 C4440010 */ lwc1 $f4, 0x10($v0) +/* 05C44C 7F02791C C4A60008 */ lwc1 $f6, 8($a1) +/* 05C450 7F027920 460A1032 */ c.eq.s $f2, $f10 +/* 05C454 7F027924 46062201 */ sub.s $f8, $f4, $f6 +/* 05C458 7F027928 4500000E */ bc1f .L7F027964 +/* 05C45C 7F02792C E7A80034 */ swc1 $f8, 0x34($sp) +/* 05C460 7F027930 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 05C464 7F027934 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 05C468 7F027938 460E1032 */ c.eq.s $f2, $f14 +/* 05C46C 7F02793C 00000000 */ nop +/* 05C470 7F027940 45020009 */ bc1fl .L7F027968 +/* 05C474 7F027944 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 05C478 7F027948 46121032 */ c.eq.s $f2, $f18 +/* 05C47C 7F02794C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05C480 7F027950 45020005 */ bc1fl .L7F027968 +/* 05C484 7F027954 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 05C488 7F027958 44819000 */ mtc1 $at, $f18 +/* 05C48C 7F02795C 00000000 */ nop +/* 05C490 7F027960 E7B20034 */ swc1 $f18, 0x34($sp) +.L7F027964: +/* 05C494 7F027964 C7A0002C */ lwc1 $f0, 0x2c($sp) +.L7F027968: +/* 05C498 7F027968 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 05C49C 7F02796C C7B20034 */ lwc1 $f18, 0x34($sp) +/* 05C4A0 7F027970 46000102 */ mul.s $f4, $f0, $f0 +/* 05C4A4 7F027974 E7B00048 */ swc1 $f16, 0x48($sp) +/* 05C4A8 7F027978 460E7182 */ mul.s $f6, $f14, $f14 +/* 05C4AC 7F02797C 46062200 */ add.s $f8, $f4, $f6 +/* 05C4B0 7F027980 46129282 */ mul.s $f10, $f18, $f18 +/* 05C4B4 7F027984 0C007DF8 */ jal sqrtf +/* 05C4B8 7F027988 46085300 */ add.s $f12, $f10, $f8 +/* 05C4BC 7F02798C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 05C4C0 7F027990 44812000 */ mtc1 $at, $f4 +/* 05C4C4 7F027994 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05C4C8 7F027998 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 05C4CC 7F02799C C7B00048 */ lwc1 $f16, 0x48($sp) +/* 05C4D0 7F0279A0 46062282 */ mul.s $f10, $f4, $f6 +/* 05C4D4 7F0279A4 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 05C4D8 7F0279A8 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 05C4DC 7F0279AC 4612803C */ c.lt.s $f16, $f18 +/* 05C4E0 7F0279B0 46005083 */ div.s $f2, $f10, $f0 +/* 05C4E4 7F0279B4 46128381 */ sub.s $f14, $f16, $f18 +/* 05C4E8 7F0279B8 46007306 */ mov.s $f12, $f14 +/* 05C4EC 7F0279BC 46024102 */ mul.s $f4, $f8, $f2 +/* 05C4F0 7F0279C0 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05C4F4 7F0279C4 46023282 */ mul.s $f10, $f6, $f2 +/* 05C4F8 7F0279C8 00000000 */ nop +/* 05C4FC 7F0279CC 46024182 */ mul.s $f6, $f8, $f2 +/* 05C500 7F0279D0 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 05C504 7F0279D4 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05C508 7F0279D8 E7A60034 */ swc1 $f6, 0x34($sp) +/* 05C50C 7F0279DC E60400B0 */ swc1 $f4, 0xb0($s0) +/* 05C510 7F0279E0 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 05C514 7F0279E4 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 05C518 7F0279E8 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05C51C 7F0279EC 45000004 */ bc1f .L7F027A00 +/* 05C520 7F0279F0 E60800B8 */ swc1 $f8, 0xb8($s0) +/* 05C524 7F0279F4 3C018005 */ lui $at, %hi(D_80051DEC) +/* 05C528 7F0279F8 C4261DEC */ lwc1 $f6, %lo(D_80051DEC)($at) +/* 05C52C 7F0279FC 46067300 */ add.s $f12, $f14, $f6 +.L7F027A00: +/* 05C530 7F027A00 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05C534 7F027A04 44812000 */ mtc1 $at, $f4 +/* 05C538 7F027A08 3C018005 */ lui $at, %hi(D_80051DF0) +/* 05C53C 7F027A0C C4281DF0 */ lwc1 $f8, %lo(D_80051DF0)($at) +/* 05C540 7F027A10 46046282 */ mul.s $f10, $f12, $f4 +/* 05C544 7F027A14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C548 7F027A18 44812000 */ mtc1 $at, $f4 +/* 05C54C 7F027A1C 46085183 */ div.s $f6, $f10, $f8 +/* 05C550 7F027A20 46043280 */ add.s $f10, $f6, $f4 +/* 05C554 7F027A24 4600520D */ trunc.w.s $f8, $f10 +/* 05C558 7F027A28 44074000 */ mfc1 $a3, $f8 +/* 05C55C 7F027A2C 00000000 */ nop +/* 05C560 7F027A30 28E10008 */ slti $at, $a3, 8 +/* 05C564 7F027A34 14200002 */ bnez $at, .L7F027A40 +/* 05C568 7F027A38 00000000 */ nop +/* 05C56C 7F027A3C 00003825 */ move $a3, $zero +.L7F027A40: +/* 05C570 7F027A40 0C002914 */ jal get_random_value +/* 05C574 7F027A44 AFA70040 */ sw $a3, 0x40($sp) +/* 05C578 7F027A48 8FA70040 */ lw $a3, 0x40($sp) +/* 05C57C 7F027A4C 3C0C8003 */ lui $t4, %hi(explosion_animation_table) +/* 05C580 7F027A50 258CE960 */ addiu $t4, %lo(explosion_animation_table) # addiu $t4, $t4, -0x16a0 +/* 05C584 7F027A54 000758C0 */ sll $t3, $a3, 3 +/* 05C588 7F027A58 016C2821 */ addu $a1, $t3, $t4 +/* 05C58C 7F027A5C 8CAD0004 */ lw $t5, 4($a1) +/* 05C590 7F027A60 8CAE0000 */ lw $t6, ($a1) +/* 05C594 7F027A64 3C088003 */ lui $t0, %hi(D_8002E648) +/* 05C598 7F027A68 004D001B */ divu $zero, $v0, $t5 +/* 05C59C 7F027A6C 00003010 */ mfhi $a2 +/* 05C5A0 7F027A70 01C67821 */ addu $t7, $t6, $a2 +/* 05C5A4 7F027A74 81F80000 */ lb $t8, ($t7) +/* 05C5A8 7F027A78 2508E648 */ addiu $t0, %lo(D_8002E648) # addiu $t0, $t0, -0x19b8 +/* 05C5AC 7F027A7C 15A00002 */ bnez $t5, .L7F027A88 +/* 05C5B0 7F027A80 00000000 */ nop +/* 05C5B4 7F027A84 0007000D */ break 7 +.L7F027A88: +/* 05C5B8 7F027A88 0018C8C0 */ sll $t9, $t8, 3 +/* 05C5BC 7F027A8C 0338C823 */ subu $t9, $t9, $t8 +/* 05C5C0 7F027A90 0019C880 */ sll $t9, $t9, 2 +/* 05C5C4 7F027A94 03281821 */ addu $v1, $t9, $t0 +/* 05C5C8 7F027A98 AFA30038 */ sw $v1, 0x38($sp) +/* 05C5CC 7F027A9C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05C5D0 7F027AA0 02002025 */ move $a0, $s0 +/* 05C5D4 7F027AA4 8FA30038 */ lw $v1, 0x38($sp) +/* 05C5D8 7F027AA8 24090004 */ li $t1, 4 +/* 05C5DC 7F027AAC A2090007 */ sb $t1, 7($s0) +/* 05C5E0 7F027AB0 AE00002C */ sw $zero, 0x2c($s0) +/* 05C5E4 7F027AB4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 05C5E8 7F027AB8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C5EC 7F027ABC 44812000 */ mtc1 $at, $f4 +/* 05C5F0 7F027AC0 44805000 */ mtc1 $zero, $f10 +/* 05C5F4 7F027AC4 E6060030 */ swc1 $f6, 0x30($s0) +/* 05C5F8 7F027AC8 A2000008 */ sb $zero, 8($s0) +/* 05C5FC 7F027ACC E6040034 */ swc1 $f4, 0x34($s0) +/* 05C600 7F027AD0 E60A0038 */ swc1 $f10, 0x38($s0) +/* 05C604 7F027AD4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05C608 7F027AD8 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 05C60C 7F027ADC 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05C610 7F027AE0 44813000 */ mtc1 $at, $f6 +/* 05C614 7F027AE4 C4680008 */ lwc1 $f8, 8($v1) +/* 05C618 7F027AE8 8C6A0000 */ lw $t2, ($v1) +/* 05C61C 7F027AEC 8C67000C */ lw $a3, 0xc($v1) +/* 05C620 7F027AF0 8C660004 */ lw $a2, 4($v1) +/* 05C624 7F027AF4 8FA40054 */ lw $a0, 0x54($sp) +/* 05C628 7F027AF8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05C62C 7F027AFC E7A80010 */ swc1 $f8, 0x10($sp) +/* 05C630 7F027B00 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05C634 7F027B04 014B2821 */ addu $a1, $t2, $t3 +/* 05C638 7F027B08 8FA30038 */ lw $v1, 0x38($sp) +/* 05C63C 7F027B0C 44802000 */ mtc1 $zero, $f4 +/* 05C640 7F027B10 C4600018 */ lwc1 $f0, 0x18($v1) +/* 05C644 7F027B14 4600203E */ c.le.s $f4, $f0 +/* 05C648 7F027B18 00000000 */ nop +/* 05C64C 7F027B1C 45020005 */ bc1fl .L7F027B34 +/* 05C650 7F027B20 8FAC0064 */ lw $t4, 0x64($sp) +/* 05C654 7F027B24 44050000 */ mfc1 $a1, $f0 +/* 05C658 7F027B28 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05C65C 7F027B2C 8FA40054 */ lw $a0, 0x54($sp) +/* 05C660 7F027B30 8FAC0064 */ lw $t4, 0x64($sp) +.L7F027B34: +/* 05C664 7F027B34 11800003 */ beqz $t4, .L7F027B44 +/* 05C668 7F027B38 00000000 */ nop +/* 05C66C 7F027B3C 0FC09C18 */ jal play_sound_for_shot_actor +/* 05C670 7F027B40 02002025 */ move $a0, $s0 +.L7F027B44: +/* 05C674 7F027B44 0FC086C8 */ jal sub_GAME_7F021B20 +/* 05C678 7F027B48 02002025 */ move $a0, $s0 +/* 05C67C 7F027B4C 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 05C680 7F027B50 00000000 */ nop +/* 05C684 7F027B54 8E0D0014 */ lw $t5, 0x14($s0) +/* 05C688 7F027B58 000D72C0 */ sll $t6, $t5, 0xb +/* 05C68C 7F027B5C 05C30004 */ bgezl $t6, .L7F027B70 +/* 05C690 7F027B60 8E040160 */ lw $a0, 0x160($s0) +/* 05C694 7F027B64 0FC1A9D6 */ jal inc_cur_civilian_casualties +/* 05C698 7F027B68 00000000 */ nop +/* 05C69C 7F027B6C 8E040160 */ lw $a0, 0x160($s0) +.L7F027B70: +/* 05C6A0 7F027B70 5080000C */ beql $a0, $zero, .L7F027BA4 +/* 05C6A4 7F027B74 8E040164 */ lw $a0, 0x164($s0) +/* 05C6A8 7F027B78 8C8F0004 */ lw $t7, 4($a0) +/* 05C6AC 7F027B7C 8DF80008 */ lw $t8, 8($t7) +/* 05C6B0 7F027B80 33192000 */ andi $t9, $t8, 0x2000 +/* 05C6B4 7F027B84 57200007 */ bnezl $t9, .L7F027BA4 +/* 05C6B8 7F027B88 8E040164 */ lw $a0, 0x164($s0) +/* 05C6BC 7F027B8C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05C6C0 7F027B90 24050001 */ li $a1, 1 +/* 05C6C4 7F027B94 96080012 */ lhu $t0, 0x12($s0) +/* 05C6C8 7F027B98 35090001 */ ori $t1, $t0, 1 +/* 05C6CC 7F027B9C A6090012 */ sh $t1, 0x12($s0) +/* 05C6D0 7F027BA0 8E040164 */ lw $a0, 0x164($s0) +.L7F027BA4: +/* 05C6D4 7F027BA4 1080000B */ beqz $a0, .L7F027BD4 +/* 05C6D8 7F027BA8 00000000 */ nop +/* 05C6DC 7F027BAC 8C8A0004 */ lw $t2, 4($a0) +/* 05C6E0 7F027BB0 8D4B0008 */ lw $t3, 8($t2) +/* 05C6E4 7F027BB4 316C2000 */ andi $t4, $t3, 0x2000 +/* 05C6E8 7F027BB8 15800006 */ bnez $t4, .L7F027BD4 +/* 05C6EC 7F027BBC 00000000 */ nop +/* 05C6F0 7F027BC0 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05C6F4 7F027BC4 24050001 */ li $a1, 1 +/* 05C6F8 7F027BC8 960D0012 */ lhu $t5, 0x12($s0) +/* 05C6FC 7F027BCC 35AE0001 */ ori $t6, $t5, 1 +/* 05C700 7F027BD0 A60E0012 */ sh $t6, 0x12($s0) +.L7F027BD4: +/* 05C704 7F027BD4 10000002 */ b .L7F027BE0 +/* 05C708 7F027BD8 24020001 */ li $v0, 1 +/* 05C70C 7F027BDC 00001025 */ move $v0, $zero +.L7F027BE0: +/* 05C710 7F027BE0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05C714 7F027BE4 8FB00020 */ lw $s0, 0x20($sp) +/* 05C718 7F027BE8 27BD0058 */ addiu $sp, $sp, 0x58 +/* 05C71C 7F027BEC 03E00008 */ jr $ra +/* 05C720 7F027BF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_ptrpreset_in_table_matching_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptrpreset_in_table_matching_tile +/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($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(ptr_0xxxpresets) +/* 05C744 7F027C14 05C0000F */ bltz $t6, .L7F027C54 +/* 05C748 7F027C18 2407002C */ li $a3, 44 +/* 05C74C 7F027C1C 8C440000 */ lw $a0, ($v0) +/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(ptr_0xxxpresets)($a1) +.L7F027C24: +/* 05C754 7F027C24 00870019 */ multu $a0, $a3 +/* 05C758 7F027C28 00007812 */ mflo $t7 +/* 05C75C 7F027C2C 01E51021 */ addu $v0, $t7, $a1 +/* 05C760 7F027C30 8C580028 */ lw $t8, 0x28($v0) +/* 05C764 7F027C34 54D80004 */ bnel $a2, $t8, .L7F027C48 +/* 05C768 7F027C38 8C640010 */ lw $a0, 0x10($v1) +/* 05C76C 7F027C3C 03E00008 */ jr $ra +/* 05C770 7F027C40 00601025 */ move $v0, $v1 + +/* 05C774 7F027C44 8C640010 */ lw $a0, 0x10($v1) +.L7F027C48: +/* 05C778 7F027C48 24630010 */ addiu $v1, $v1, 0x10 +/* 05C77C 7F027C4C 0481FFF5 */ bgez $a0, .L7F027C24 +/* 05C780 7F027C50 00000000 */ nop +.L7F027C54: +/* 05C784 7F027C54 00001025 */ move $v0, $zero +.L7F027C58: +/* 05C788 7F027C58 03E00008 */ jr $ra +/* 05C78C 7F027C5C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_any_path_preset_lies_on_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_any_path_preset_lies_on_tile +/* 05C790 7F027C60 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05C794 7F027C64 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C798 7F027C68 0FC09EFD */ jal get_ptrpreset_in_table_matching_tile +/* 05C79C 7F027C6C 00000000 */ nop +/* 05C7A0 7F027C70 8FBF0014 */ lw $ra, 0x14($sp) +/* 05C7A4 7F027C74 0002702B */ sltu $t6, $zero, $v0 +/* 05C7A8 7F027C78 01C01025 */ move $v0, $t6 +/* 05C7AC 7F027C7C 03E00008 */ jr $ra +/* 05C7B0 7F027C80 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027C84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027C84 +/* 05C7B4 7F027C84 8CAE0000 */ lw $t6, ($a1) +/* 05C7B8 7F027C88 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05C7BC 7F027C8C 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05C7C0 7F027C90 000E7880 */ sll $t7, $t6, 2 +/* 05C7C4 7F027C94 01EE7823 */ subu $t7, $t7, $t6 +/* 05C7C8 7F027C98 000F7880 */ sll $t7, $t7, 2 +/* 05C7CC 7F027C9C 01EE7823 */ subu $t7, $t7, $t6 +/* 05C7D0 7F027CA0 000F7880 */ sll $t7, $t7, 2 +/* 05C7D4 7F027CA4 01F81021 */ addu $v0, $t7, $t8 +/* 05C7D8 7F027CA8 C4440000 */ lwc1 $f4, ($v0) +/* 05C7DC 7F027CAC C4860000 */ lwc1 $f6, ($a0) +/* 05C7E0 7F027CB0 C4480008 */ lwc1 $f8, 8($v0) +/* 05C7E4 7F027CB4 C48A0008 */ lwc1 $f10, 8($a0) +/* 05C7E8 7F027CB8 46062081 */ sub.s $f2, $f4, $f6 +/* 05C7EC 7F027CBC 460A4301 */ sub.s $f12, $f8, $f10 +/* 05C7F0 7F027CC0 46021402 */ mul.s $f16, $f2, $f2 +/* 05C7F4 7F027CC4 00000000 */ nop +/* 05C7F8 7F027CC8 460C6482 */ mul.s $f18, $f12, $f12 +/* 05C7FC 7F027CCC 03E00008 */ jr $ra +/* 05C800 7F027CD0 46128000 */ add.s $f0, $f16, $f18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027CD4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027CD4 +/* 05C804 7F027CD4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05C808 7F027CD8 AFB40030 */ sw $s4, 0x30($sp) +/* 05C80C 7F027CDC 0080A025 */ move $s4, $a0 +/* 05C810 7F027CE0 00A02025 */ move $a0, $a1 +/* 05C814 7F027CE4 AFBF0034 */ sw $ra, 0x34($sp) +/* 05C818 7F027CE8 AFB3002C */ sw $s3, 0x2c($sp) +/* 05C81C 7F027CEC 3C057F02 */ lui $a1, %hi(check_if_any_path_preset_lies_on_tile) # $a1, 0x7f02 +/* 05C820 7F027CF0 AFB20028 */ sw $s2, 0x28($sp) +/* 05C824 7F027CF4 AFB10024 */ sw $s1, 0x24($sp) +/* 05C828 7F027CF8 AFB00020 */ sw $s0, 0x20($sp) +/* 05C82C 7F027CFC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 05C830 7F027D00 00009825 */ move $s3, $zero +/* 05C834 7F027D04 0FC2C9C6 */ jal sub_GAME_7F0B2718 +/* 05C838 7F027D08 24A57C60 */ addiu $a1, %lo(check_if_any_path_preset_lies_on_tile) # addiu $a1, $a1, 0x7c60 +/* 05C83C 7F027D0C 1040001E */ beqz $v0, .L7F027D88 +/* 05C840 7F027D10 00402025 */ move $a0, $v0 +/* 05C844 7F027D14 0FC09EFD */ jal get_ptrpreset_in_table_matching_tile +/* 05C848 7F027D18 00000000 */ nop +/* 05C84C 7F027D1C 1040001A */ beqz $v0, .L7F027D88 +/* 05C850 7F027D20 00409825 */ move $s3, $v0 +/* 05C854 7F027D24 02802025 */ move $a0, $s4 +/* 05C858 7F027D28 0FC09F21 */ jal sub_GAME_7F027C84 +/* 05C85C 7F027D2C 00402825 */ move $a1, $v0 +/* 05C860 7F027D30 8E710004 */ lw $s1, 4($s3) +/* 05C864 7F027D34 3C128007 */ lui $s2, %hi(ptr_setup_path_tbl) +/* 05C868 7F027D38 46000506 */ mov.s $f20, $f0 +/* 05C86C 7F027D3C 8E220000 */ lw $v0, ($s1) +/* 05C870 7F027D40 26525D00 */ addiu $s2, %lo(ptr_setup_path_tbl) # addiu $s2, $s2, 0x5d00 +/* 05C874 7F027D44 04420011 */ bltzl $v0, .L7F027D8C +/* 05C878 7F027D48 8FBF0034 */ lw $ra, 0x34($sp) +/* 05C87C 7F027D4C 8E4F0000 */ lw $t7, ($s2) +.L7F027D50: +/* 05C880 7F027D50 00027100 */ sll $t6, $v0, 4 +/* 05C884 7F027D54 02802025 */ move $a0, $s4 +/* 05C888 7F027D58 01CF8021 */ addu $s0, $t6, $t7 +/* 05C88C 7F027D5C 0FC09F21 */ jal sub_GAME_7F027C84 +/* 05C890 7F027D60 02002825 */ move $a1, $s0 +/* 05C894 7F027D64 4614003C */ c.lt.s $f0, $f20 +/* 05C898 7F027D68 00000000 */ nop +/* 05C89C 7F027D6C 45020003 */ bc1fl .L7F027D7C +/* 05C8A0 7F027D70 8E220004 */ lw $v0, 4($s1) +/* 05C8A4 7F027D74 02009825 */ move $s3, $s0 +/* 05C8A8 7F027D78 8E220004 */ lw $v0, 4($s1) +.L7F027D7C: +/* 05C8AC 7F027D7C 26310004 */ addiu $s1, $s1, 4 +/* 05C8B0 7F027D80 0443FFF3 */ bgezl $v0, .L7F027D50 +/* 05C8B4 7F027D84 8E4F0000 */ lw $t7, ($s2) +.L7F027D88: +/* 05C8B8 7F027D88 8FBF0034 */ lw $ra, 0x34($sp) +.L7F027D8C: +/* 05C8BC 7F027D8C 02601025 */ move $v0, $s3 +/* 05C8C0 7F027D90 8FB3002C */ lw $s3, 0x2c($sp) +/* 05C8C4 7F027D94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 05C8C8 7F027D98 8FB00020 */ lw $s0, 0x20($sp) +/* 05C8CC 7F027D9C 8FB10024 */ lw $s1, 0x24($sp) +/* 05C8D0 7F027DA0 8FB20028 */ lw $s2, 0x28($sp) +/* 05C8D4 7F027DA4 8FB40030 */ lw $s4, 0x30($sp) +/* 05C8D8 7F027DA8 03E00008 */ jr $ra +/* 05C8DC 7F027DAC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027DB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027DB0 +/* 05C8E0 7F027DB0 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 05C8E4 7F027DB4 AFBF0034 */ sw $ra, 0x34($sp) +/* 05C8E8 7F027DB8 AFB20030 */ sw $s2, 0x30($sp) +/* 05C8EC 7F027DBC AFB1002C */ sw $s1, 0x2c($sp) +/* 05C8F0 7F027DC0 AFB00028 */ sw $s0, 0x28($sp) +/* 05C8F4 7F027DC4 AFA600A0 */ sw $a2, 0xa0($sp) +/* 05C8F8 7F027DC8 8C820018 */ lw $v0, 0x18($a0) +/* 05C8FC 7F027DCC 00A08025 */ move $s0, $a1 +/* 05C900 7F027DD0 C6040000 */ lwc1 $f4, ($s0) +/* 05C904 7F027DD4 8C450008 */ lw $a1, 8($v0) +/* 05C908 7F027DD8 8C440014 */ lw $a0, 0x14($v0) +/* 05C90C 7F027DDC 8C460010 */ lw $a2, 0x10($v0) +/* 05C910 7F027DE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05C914 7F027DE4 C6060008 */ lwc1 $f6, 8($s0) +/* 05C918 7F027DE8 27AE0048 */ addiu $t6, $sp, 0x48 +/* 05C91C 7F027DEC 240F0014 */ li $t7, 20 +/* 05C920 7F027DF0 AFAF001C */ sw $t7, 0x1c($sp) +/* 05C924 7F027DF4 AFAE0018 */ sw $t6, 0x18($sp) +/* 05C928 7F027DF8 27A700A0 */ addiu $a3, $sp, 0xa0 +/* 05C92C 7F027DFC 0FC2C343 */ jal sub_GAME_7F0B0D0C +/* 05C930 7F027E00 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05C934 7F027E04 18400011 */ blez $v0, .L7F027E4C +/* 05C938 7F027E08 00409025 */ move $s2, $v0 +/* 05C93C 7F027E0C 28410014 */ slti $at, $v0, 0x14 +/* 05C940 7F027E10 1020000E */ beqz $at, .L7F027E4C +/* 05C944 7F027E14 00000000 */ nop +/* 05C948 7F027E18 1840000E */ blez $v0, .L7F027E54 +/* 05C94C 7F027E1C 00008025 */ move $s0, $zero +/* 05C950 7F027E20 27B10048 */ addiu $s1, $sp, 0x48 +.L7F027E24: +/* 05C954 7F027E24 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 05C958 7F027E28 8E240000 */ lw $a0, ($s1) +/* 05C95C 7F027E2C 10400003 */ beqz $v0, .L7F027E3C +/* 05C960 7F027E30 26100001 */ addiu $s0, $s0, 1 +/* 05C964 7F027E34 10000008 */ b .L7F027E58 +/* 05C968 7F027E38 00001025 */ move $v0, $zero +.L7F027E3C: +/* 05C96C 7F027E3C 1612FFF9 */ bne $s0, $s2, .L7F027E24 +/* 05C970 7F027E40 26310004 */ addiu $s1, $s1, 4 +/* 05C974 7F027E44 10000004 */ b .L7F027E58 +/* 05C978 7F027E48 24020001 */ li $v0, 1 +.L7F027E4C: +/* 05C97C 7F027E4C 10000002 */ b .L7F027E58 +/* 05C980 7F027E50 00001025 */ move $v0, $zero +.L7F027E54: +/* 05C984 7F027E54 24020001 */ li $v0, 1 +.L7F027E58: +/* 05C988 7F027E58 8FBF0034 */ lw $ra, 0x34($sp) +/* 05C98C 7F027E5C 8FB00028 */ lw $s0, 0x28($sp) +/* 05C990 7F027E60 8FB1002C */ lw $s1, 0x2c($sp) +/* 05C994 7F027E64 8FB20030 */ lw $s2, 0x30($sp) +/* 05C998 7F027E68 03E00008 */ jr $ra +/* 05C99C 7F027E6C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027E70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027E70 +/* 05C9A0 7F027E70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05C9A4 7F027E74 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C9A8 7F027E78 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 05C9AC 7F027E7C 8CA60028 */ lw $a2, 0x28($a1) +/* 05C9B0 7F027E80 8FBF0014 */ lw $ra, 0x14($sp) +/* 05C9B4 7F027E84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05C9B8 7F027E88 03E00008 */ jr $ra +/* 05C9BC 7F027E8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027E90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027E90 +/* 05C9C0 7F027E90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05C9C4 7F027E94 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C9C8 7F027E98 AFA40028 */ sw $a0, 0x28($sp) +/* 05C9CC 7F027E9C AFA5002C */ sw $a1, 0x2c($sp) +/* 05C9D0 7F027EA0 8C820018 */ lw $v0, 0x18($a0) +/* 05C9D4 7F027EA4 C4C40000 */ lwc1 $f4, ($a2) +/* 05C9D8 7F027EA8 C4C80008 */ lwc1 $f8, 8($a2) +/* 05C9DC 7F027EAC C4460008 */ lwc1 $f6, 8($v0) +/* 05C9E0 7F027EB0 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05C9E4 7F027EB4 46062301 */ sub.s $f12, $f4, $f6 +/* 05C9E8 7F027EB8 460A4381 */ sub.s $f14, $f8, $f10 +/* 05C9EC 7F027EBC E7AC0020 */ swc1 $f12, 0x20($sp) +/* 05C9F0 7F027EC0 0FC16A8C */ jal atan2f +/* 05C9F4 7F027EC4 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 05C9F8 7F027EC8 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 05C9FC 7F027ECC C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 05CA00 7F027ED0 8FA2002C */ lw $v0, 0x2c($sp) +/* 05CA04 7F027ED4 46021482 */ mul.s $f18, $f2, $f2 +/* 05CA08 7F027ED8 44808000 */ mtc1 $zero, $f16 +/* 05CA0C 7F027EDC E7A00018 */ swc1 $f0, 0x18($sp) +/* 05CA10 7F027EE0 460E7102 */ mul.s $f4, $f14, $f14 +/* 05CA14 7F027EE4 240F0006 */ li $t7, 6 +/* 05CA18 7F027EE8 A04F0000 */ sb $t7, ($v0) +/* 05CA1C 7F027EEC E4500038 */ swc1 $f16, 0x38($v0) +/* 05CA20 7F027EF0 0C007DF8 */ jal sqrtf +/* 05CA24 7F027EF4 46049300 */ add.s $f12, $f18, $f4 +/* 05CA28 7F027EF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 05CA2C 7F027EFC E700003C */ swc1 $f0, 0x3c($t8) +/* 05CA30 7F027F00 8FB90028 */ lw $t9, 0x28($sp) +/* 05CA34 7F027F04 8FA50018 */ lw $a1, 0x18($sp) +/* 05CA38 7F027F08 0FC1B34F */ jal setsubroty +/* 05CA3C 7F027F0C 8F24001C */ lw $a0, 0x1c($t9) +/* 05CA40 7F027F10 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CA44 7F027F14 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CA48 7F027F18 03E00008 */ jr $ra +/* 05CA4C 7F027F1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027F20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027F20 +/* 05CA50 7F027F20 908E0058 */ lbu $t6, 0x58($a0) +/* 05CA54 7F027F24 000E7880 */ sll $t7, $t6, 2 +/* 05CA58 7F027F28 008FC021 */ addu $t8, $a0, $t7 +/* 05CA5C 7F027F2C 8F020040 */ lw $v0, 0x40($t8) +/* 05CA60 7F027F30 50400014 */ beql $v0, $zero, .L7F027F84 +/* 05CA64 7F027F34 C48A002C */ lwc1 $f10, 0x2c($a0) +/* 05CA68 7F027F38 8C590000 */ lw $t9, ($v0) +/* 05CA6C 7F027F3C 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 05CA70 7F027F40 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 05CA74 7F027F44 00194080 */ sll $t0, $t9, 2 +/* 05CA78 7F027F48 01194023 */ subu $t0, $t0, $t9 +/* 05CA7C 7F027F4C 00084080 */ sll $t0, $t0, 2 +/* 05CA80 7F027F50 01194023 */ subu $t0, $t0, $t9 +/* 05CA84 7F027F54 00084080 */ sll $t0, $t0, 2 +/* 05CA88 7F027F58 01091821 */ addu $v1, $t0, $t1 +/* 05CA8C 7F027F5C C4640000 */ lwc1 $f4, ($v1) +/* 05CA90 7F027F60 E4A40000 */ swc1 $f4, ($a1) +/* 05CA94 7F027F64 C4660004 */ lwc1 $f6, 4($v1) +/* 05CA98 7F027F68 E4A60004 */ swc1 $f6, 4($a1) +/* 05CA9C 7F027F6C C4680008 */ lwc1 $f8, 8($v1) +/* 05CAA0 7F027F70 E4A80008 */ swc1 $f8, 8($a1) +/* 05CAA4 7F027F74 8C6A0028 */ lw $t2, 0x28($v1) +/* 05CAA8 7F027F78 03E00008 */ jr $ra +/* 05CAAC 7F027F7C ACCA0000 */ sw $t2, ($a2) + +/* 05CAB0 7F027F80 C48A002C */ lwc1 $f10, 0x2c($a0) +.L7F027F84: +/* 05CAB4 7F027F84 E4AA0000 */ swc1 $f10, ($a1) +/* 05CAB8 7F027F88 C4900030 */ lwc1 $f16, 0x30($a0) +/* 05CABC 7F027F8C E4B00004 */ swc1 $f16, 4($a1) +/* 05CAC0 7F027F90 C4920034 */ lwc1 $f18, 0x34($a0) +/* 05CAC4 7F027F94 E4B20008 */ swc1 $f18, 8($a1) +/* 05CAC8 7F027F98 8C8B0038 */ lw $t3, 0x38($a0) +/* 05CACC 7F027F9C ACCB0000 */ sw $t3, ($a2) +/* 05CAD0 7F027FA0 03E00008 */ jr $ra +/* 05CAD4 7F027FA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027FA8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DF4 +.word 0x411fffff /*9.999999*/ +.text +glabel sub_GAME_7F027FA8 +/* 05CAD8 7F027FA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05CADC 7F027FAC AFB10020 */ sw $s1, 0x20($sp) +/* 05CAE0 7F027FB0 00808825 */ move $s1, $a0 +/* 05CAE4 7F027FB4 AFBF0024 */ sw $ra, 0x24($sp) +/* 05CAE8 7F027FB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 05CAEC 7F027FBC F7B40010 */ sdc1 $f20, 0x10($sp) +/* 05CAF0 7F027FC0 3C018003 */ lui $at, %hi(D_80030984) +/* 05CAF4 7F027FC4 C4340984 */ lwc1 $f20, %lo(D_80030984)($at) +/* 05CAF8 7F027FC8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CAFC 7F027FCC 8C84001C */ lw $a0, 0x1c($a0) +/* 05CB00 7F027FD0 3C108007 */ lui $s0, %hi(ptr_animation_table) +/* 05CB04 7F027FD4 26109538 */ addiu $s0, %lo(ptr_animation_table) # addiu $s0, $s0, -0x6ac8 +/* 05CB08 7F027FD8 8E0E0000 */ lw $t6, ($s0) +/* 05CB0C 7F027FDC 3C0F0000 */ lui $t7, %hi(0x00004070) # $t7, 0 +/* 05CB10 7F027FE0 25EF4070 */ addiu $t7, %lo(0x00004070) # addiu $t7, $t7, 0x4070 +/* 05CB14 7F027FE4 01CFC021 */ addu $t8, $t6, $t7 +/* 05CB18 7F027FE8 14580003 */ bne $v0, $t8, .L7F027FF8 +/* 05CB1C 7F027FEC 3C018003 */ lui $at, %hi(D_8003098C) +/* 05CB20 7F027FF0 10000047 */ b .L7F028110 +/* 05CB24 7F027FF4 C434098C */ lwc1 $f20, %lo(D_8003098C)($at) +.L7F027FF8: +/* 05CB28 7F027FF8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB2C 7F027FFC 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB30 7F028000 8E190000 */ lw $t9, ($s0) +/* 05CB34 7F028004 3C080000 */ lui $t0, %hi(0x000040D4) # $t0, 0 +/* 05CB38 7F028008 250840D4 */ addiu $t0, %lo(0x000040D4) # addiu $t0, $t0, 0x40d4 +/* 05CB3C 7F02800C 03284821 */ addu $t1, $t9, $t0 +/* 05CB40 7F028010 14490003 */ bne $v0, $t1, .L7F028020 +/* 05CB44 7F028014 3C018003 */ lui $at, %hi(D_80030988) +/* 05CB48 7F028018 1000003D */ b .L7F028110 +/* 05CB4C 7F02801C C4340988 */ lwc1 $f20, %lo(D_80030988)($at) +.L7F028020: +/* 05CB50 7F028020 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB54 7F028024 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB58 7F028028 8E0A0000 */ lw $t2, ($s0) +/* 05CB5C 7F02802C 3C030000 */ lui $v1, %hi(0x000077D4) # $v1, 0 +/* 05CB60 7F028030 246377D4 */ addiu $v1, %lo(0x000077D4) # addiu $v1, $v1, 0x77d4 +/* 05CB64 7F028034 006A5821 */ addu $t3, $v1, $t2 +/* 05CB68 7F028038 144B0003 */ bne $v0, $t3, .L7F028048 +/* 05CB6C 7F02803C 3C018003 */ lui $at, %hi(D_80030998) +/* 05CB70 7F028040 10000033 */ b .L7F028110 +/* 05CB74 7F028044 C4340998 */ lwc1 $f20, %lo(D_80030998)($at) +.L7F028048: +/* 05CB78 7F028048 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB7C 7F02804C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB80 7F028050 AFA30028 */ sw $v1, 0x28($sp) +/* 05CB84 7F028054 8E0C0000 */ lw $t4, ($s0) +/* 05CB88 7F028058 3C0D0000 */ lui $t5, %hi(0x0000777C) # $t5, 0 +/* 05CB8C 7F02805C 25AD777C */ addiu $t5, %lo(0x0000777C) # addiu $t5, $t5, 0x777c +/* 05CB90 7F028060 018D7021 */ addu $t6, $t4, $t5 +/* 05CB94 7F028064 144E0003 */ bne $v0, $t6, .L7F028074 +/* 05CB98 7F028068 3C018003 */ lui $at, %hi(D_80030994) +/* 05CB9C 7F02806C 10000028 */ b .L7F028110 +/* 05CBA0 7F028070 C4340994 */ lwc1 $f20, %lo(D_80030994)($at) +.L7F028074: +/* 05CBA4 7F028074 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBA8 7F028078 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBAC 7F02807C 8E0F0000 */ lw $t7, ($s0) +/* 05CBB0 7F028080 3C180001 */ lui $t8, %hi(0x00008204) # $t8, 1 +/* 05CBB4 7F028084 27188204 */ addiu $t8, %lo(0x00008204) # addiu $t8, $t8, -0x7dfc +/* 05CBB8 7F028088 01F8C821 */ addu $t9, $t7, $t8 +/* 05CBBC 7F02808C 14590003 */ bne $v0, $t9, .L7F02809C +/* 05CBC0 7F028090 3C018003 */ lui $at, %hi(D_80030990) +/* 05CBC4 7F028094 1000001E */ b .L7F028110 +/* 05CBC8 7F028098 C4340990 */ lwc1 $f20, %lo(D_80030990)($at) +.L7F02809C: +/* 05CBCC 7F02809C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBD0 7F0280A0 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBD4 7F0280A4 8FA80028 */ lw $t0, 0x28($sp) +/* 05CBD8 7F0280A8 8E090000 */ lw $t1, ($s0) +/* 05CBDC 7F0280AC 3C018003 */ lui $at, %hi(D_800309A4) +/* 05CBE0 7F0280B0 01095021 */ addu $t2, $t0, $t1 +/* 05CBE4 7F0280B4 144A0003 */ bne $v0, $t2, .L7F0280C4 +/* 05CBE8 7F0280B8 00000000 */ nop +/* 05CBEC 7F0280BC 10000014 */ b .L7F028110 +/* 05CBF0 7F0280C0 C43409A4 */ lwc1 $f20, %lo(D_800309A4)($at) +.L7F0280C4: +/* 05CBF4 7F0280C4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBF8 7F0280C8 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBFC 7F0280CC 8E0B0000 */ lw $t3, ($s0) +/* 05CC00 7F0280D0 3C0C0001 */ lui $t4, %hi(0x00008520) # $t4, 1 +/* 05CC04 7F0280D4 258C8520 */ addiu $t4, %lo(0x00008520) # addiu $t4, $t4, -0x7ae0 +/* 05CC08 7F0280D8 016C6821 */ addu $t5, $t3, $t4 +/* 05CC0C 7F0280DC 144D0003 */ bne $v0, $t5, .L7F0280EC +/* 05CC10 7F0280E0 3C018003 */ lui $at, %hi(D_800309A0) +/* 05CC14 7F0280E4 1000000A */ b .L7F028110 +/* 05CC18 7F0280E8 C43409A0 */ lwc1 $f20, %lo(D_800309A0)($at) +.L7F0280EC: +/* 05CC1C 7F0280EC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CC20 7F0280F0 8E24001C */ lw $a0, 0x1c($s1) +/* 05CC24 7F0280F4 8E0E0000 */ lw $t6, ($s0) +/* 05CC28 7F0280F8 3C0F0001 */ lui $t7, %hi(0x000084C4) # $t7, 1 +/* 05CC2C 7F0280FC 25EF84C4 */ addiu $t7, %lo(0x000084C4) # addiu $t7, $t7, -0x7b3c +/* 05CC30 7F028100 01CFC021 */ addu $t8, $t6, $t7 +/* 05CC34 7F028104 14580002 */ bne $v0, $t8, .L7F028110 +/* 05CC38 7F028108 3C018003 */ lui $at, %hi(D_8003099C) +/* 05CC3C 7F02810C C434099C */ lwc1 $f20, %lo(D_8003099C)($at) +.L7F028110: +/* 05CC40 7F028110 8E39001C */ lw $t9, 0x1c($s1) +/* 05CC44 7F028114 3C018005 */ lui $at, %hi(D_80051DF4) +/* 05CC48 7F028118 C4281DF4 */ lwc1 $f8, %lo(D_80051DF4)($at) +/* 05CC4C 7F02811C C7240014 */ lwc1 $f4, 0x14($t9) +/* 05CC50 7F028120 8FBF0024 */ lw $ra, 0x24($sp) +/* 05CC54 7F028124 8FB10020 */ lw $s1, 0x20($sp) +/* 05CC58 7F028128 46142182 */ mul.s $f6, $f4, $f20 +/* 05CC5C 7F02812C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 05CC60 7F028130 8FB0001C */ lw $s0, 0x1c($sp) +/* 05CC64 7F028134 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05CC68 7F028138 46083002 */ mul.s $f0, $f6, $f8 +/* 05CC6C 7F02813C 03E00008 */ jr $ra +/* 05CC70 7F028140 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028144(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028144 +/* 05CC74 7F028144 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05CC78 7F028148 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CC7C 7F02814C AFA40038 */ sw $a0, 0x38($sp) +/* 05CC80 7F028150 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 05CC84 7F028154 8C84001C */ lw $a0, 0x1c($a0) +/* 05CC88 7F028158 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05CC8C 7F02815C 8FA40038 */ lw $a0, 0x38($sp) +/* 05CC90 7F028160 27A50020 */ addiu $a1, $sp, 0x20 +/* 05CC94 7F028164 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05CC98 7F028168 27A6001C */ addiu $a2, $sp, 0x1c +/* 05CC9C 7F02816C 8FA40038 */ lw $a0, 0x38($sp) +/* 05CCA0 7F028170 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 05CCA4 7F028174 44800000 */ mtc1 $zero, $f0 +/* 05CCA8 7F028178 8C820018 */ lw $v0, 0x18($a0) +/* 05CCAC 7F02817C C7A80028 */ lwc1 $f8, 0x28($sp) +/* 05CCB0 7F028180 C4460008 */ lwc1 $f6, 8($v0) +/* 05CCB4 7F028184 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05CCB8 7F028188 46062081 */ sub.s $f2, $f4, $f6 +/* 05CCBC 7F02818C 460A4301 */ sub.s $f12, $f8, $f10 +/* 05CCC0 7F028190 4600103C */ c.lt.s $f2, $f0 +/* 05CCC4 7F028194 00000000 */ nop +/* 05CCC8 7F028198 45020003 */ bc1fl .L7F0281A8 +/* 05CCCC 7F02819C 4600603C */ c.lt.s $f12, $f0 +/* 05CCD0 7F0281A0 46001087 */ neg.s $f2, $f2 +/* 05CCD4 7F0281A4 4600603C */ c.lt.s $f12, $f0 +.L7F0281A8: +/* 05CCD8 7F0281A8 00000000 */ nop +/* 05CCDC 7F0281AC 45020003 */ bc1fl .L7F0281BC +/* 05CCE0 7F0281B0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 05CCE4 7F0281B4 46006307 */ neg.s $f12, $f12 +/* 05CCE8 7F0281B8 E7A20034 */ swc1 $f2, 0x34($sp) +.L7F0281BC: +/* 05CCEC 7F0281BC 0FC09FEA */ jal sub_GAME_7F027FA8 +/* 05CCF0 7F0281C0 E7AC0030 */ swc1 $f12, 0x30($sp) +/* 05CCF4 7F0281C4 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 05CCF8 7F0281C8 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 05CCFC 7F0281CC C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 05CD00 7F0281D0 46120102 */ mul.s $f4, $f0, $f18 +/* 05CD04 7F0281D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CD08 7F0281D8 460C1400 */ add.s $f16, $f2, $f12 +/* 05CD0C 7F0281DC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05CD10 7F0281E0 46048183 */ div.s $f6, $f16, $f4 +/* 05CD14 7F0281E4 4600320D */ trunc.w.s $f8, $f6 +/* 05CD18 7F0281E8 44024000 */ mfc1 $v0, $f8 +/* 05CD1C 7F0281EC 03E00008 */ jr $ra +/* 05CD20 7F0281F0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0281F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0281F4 +/* 05CD24 7F0281F4 03E00008 */ jr $ra +/* 05CD28 7F0281F8 A480005A */ sh $zero, 0x5a($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0281FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0281FC +/* 05CD2C 7F0281FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CD30 7F028200 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CD34 7F028204 808E005C */ lb $t6, 0x5c($a0) +/* 05CD38 7F028208 24010006 */ li $at, 6 +/* 05CD3C 7F02820C 51C1001C */ beql $t6, $at, .L7F028280 +/* 05CD40 7F028210 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CD44 7F028214 9482005A */ lhu $v0, 0x5a($a0) +/* 05CD48 7F028218 3C038005 */ lui $v1, %hi(clock_timer+2) +/* 05CD4C 7F02821C 1440000C */ bnez $v0, .L7F028250 +/* 05CD50 7F028220 00000000 */ nop +/* 05CD54 7F028224 0FC0A051 */ jal sub_GAME_7F028144 +/* 05CD58 7F028228 AFA40018 */ sw $a0, 0x18($sp) +/* 05CD5C 7F02822C 00021840 */ sll $v1, $v0, 1 +/* 05CD60 7F028230 2465012C */ addiu $a1, $v1, 0x12c +/* 05CD64 7F028234 3C010001 */ lui $at, 1 +/* 05CD68 7F028238 00A1082A */ slt $at, $a1, $at +/* 05CD6C 7F02823C 14200002 */ bnez $at, .L7F028248 +/* 05CD70 7F028240 8FA40018 */ lw $a0, 0x18($sp) +/* 05CD74 7F028244 3405FFFF */ li $a1, 65535 +.L7F028248: +/* 05CD78 7F028248 1000000C */ b .L7F02827C +/* 05CD7C 7F02824C A485005A */ sh $a1, 0x5a($a0) +.L7F028250: +/* 05CD80 7F028250 94638376 */ lhu $v1, %lo(clock_timer+2)($v1) +/* 05CD84 7F028254 2485002C */ addiu $a1, $a0, 0x2c +/* 05CD88 7F028258 0062082A */ slt $at, $v1, $v0 +/* 05CD8C 7F02825C 14200006 */ bnez $at, .L7F028278 +/* 05CD90 7F028260 00437823 */ subu $t7, $v0, $v1 +/* 05CD94 7F028264 8C860038 */ lw $a2, 0x38($a0) +/* 05CD98 7F028268 0FC0A377 */ jal plot_course_for_actor +/* 05CD9C 7F02826C 90870059 */ lbu $a3, 0x59($a0) +/* 05CDA0 7F028270 10000003 */ b .L7F028280 +/* 05CDA4 7F028274 8FBF0014 */ lw $ra, 0x14($sp) +.L7F028278: +/* 05CDA8 7F028278 A48F005A */ sh $t7, 0x5a($a0) +.L7F02827C: +/* 05CDAC 7F02827C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F028280: +/* 05CDB0 7F028280 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05CDB4 7F028284 03E00008 */ jr $ra +/* 05CDB8 7F028288 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02828C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02828C +/* 05CDBC 7F02828C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05CDC0 7F028290 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CDC4 7F028294 27A5001C */ addiu $a1, $sp, 0x1c +/* 05CDC8 7F028298 27A60018 */ addiu $a2, $sp, 0x18 +/* 05CDCC 7F02829C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05CDD0 7F0282A0 AFA40028 */ sw $a0, 0x28($sp) +/* 05CDD4 7F0282A4 8FA40028 */ lw $a0, 0x28($sp) +/* 05CDD8 7F0282A8 A080005C */ sb $zero, 0x5c($a0) +/* 05CDDC 7F0282AC A080005D */ sb $zero, 0x5d($a0) +/* 05CDE0 7F0282B0 A080005E */ sb $zero, 0x5e($a0) +/* 05CDE4 7F0282B4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 05CDE8 7F0282B8 E4840060 */ swc1 $f4, 0x60($a0) +/* 05CDEC 7F0282BC C7A60020 */ lwc1 $f6, 0x20($sp) +/* 05CDF0 7F0282C0 E4860064 */ swc1 $f6, 0x64($a0) +/* 05CDF4 7F0282C4 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 05CDF8 7F0282C8 0FC0A07D */ jal sub_GAME_7F0281F4 +/* 05CDFC 7F0282CC E4880068 */ swc1 $f8, 0x68($a0) +/* 05CE00 7F0282D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CE04 7F0282D4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CE08 7F0282D8 03E00008 */ jr $ra +/* 05CE0C 7F0282DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0282E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0282E0 +/* 05CE10 7F0282E0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05CE14 7F0282E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 05CE18 7F0282E8 AFB00018 */ sw $s0, 0x18($sp) +/* 05CE1C 7F0282EC 90820058 */ lbu $v0, 0x58($a0) +/* 05CE20 7F0282F0 00808025 */ move $s0, $a0 +/* 05CE24 7F0282F4 24190001 */ li $t9, 1 +/* 05CE28 7F0282F8 28410003 */ slti $at, $v0, 3 +/* 05CE2C 7F0282FC 10200004 */ beqz $at, .L7F028310 +/* 05CE30 7F028300 00027880 */ sll $t7, $v0, 2 +/* 05CE34 7F028304 244E0001 */ addiu $t6, $v0, 1 +/* 05CE38 7F028308 10000008 */ b .L7F02832C +/* 05CE3C 7F02830C A08E0058 */ sb $t6, 0x58($a0) +.L7F028310: +/* 05CE40 7F028310 020FC021 */ addu $t8, $s0, $t7 +/* 05CE44 7F028314 8F040040 */ lw $a0, 0x40($t8) +/* 05CE48 7F028318 A2190058 */ sb $t9, 0x58($s0) +/* 05CE4C 7F02831C 8E05003C */ lw $a1, 0x3c($s0) +/* 05CE50 7F028320 26060040 */ addiu $a2, $s0, 0x40 +/* 05CE54 7F028324 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 05CE58 7F028328 24070006 */ li $a3, 6 +.L7F02832C: +/* 05CE5C 7F02832C 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05CE60 7F028330 02002025 */ move $a0, $s0 +/* 05CE64 7F028334 8FBF001C */ lw $ra, 0x1c($sp) +/* 05CE68 7F028338 8FB00018 */ lw $s0, 0x18($sp) +/* 05CE6C 7F02833C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05CE70 7F028340 03E00008 */ jr $ra +/* 05CE74 7F028344 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028348(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028348 +/* 05CE78 7F028348 8C830030 */ lw $v1, 0x30($a0) +/* 05CE7C 7F02834C 04C10004 */ bgez $a2, .L7F028360 +/* 05CE80 7F028350 8CA70000 */ lw $a3, ($a1) +/* 05CE84 7F028354 2CEE0001 */ sltiu $t6, $a3, 1 +/* 05CE88 7F028358 01C03825 */ move $a3, $t6 +/* 05CE8C 7F02835C 00063023 */ negu $a2, $a2 +.L7F028360: +/* 05CE90 7F028360 58C00024 */ blezl $a2, .L7F0283F4 +/* 05CE94 7F028364 ACA70000 */ sw $a3, ($a1) +.L7F028368: +/* 05CE98 7F028368 10E00012 */ beqz $a3, .L7F0283B4 +/* 05CE9C 7F02836C 24C6FFFF */ addiu $a2, $a2, -1 +/* 05CEA0 7F028370 8C82002C */ lw $v0, 0x2c($a0) +/* 05CEA4 7F028374 24630001 */ addiu $v1, $v1, 1 +/* 05CEA8 7F028378 0003C080 */ sll $t8, $v1, 2 +/* 05CEAC 7F02837C 8C4F0000 */ lw $t7, ($v0) +/* 05CEB0 7F028380 01F8C821 */ addu $t9, $t7, $t8 +/* 05CEB4 7F028384 8F280000 */ lw $t0, ($t9) +/* 05CEB8 7F028388 05010017 */ bgez $t0, .L7F0283E8 +/* 05CEBC 7F02838C 00000000 */ nop +/* 05CEC0 7F028390 90490005 */ lbu $t1, 5($v0) +/* 05CEC4 7F028394 2463FFFE */ addiu $v1, $v1, -2 +/* 05CEC8 7F028398 312A0001 */ andi $t2, $t1, 1 +/* 05CECC 7F02839C 11400003 */ beqz $t2, .L7F0283AC +/* 05CED0 7F0283A0 00000000 */ nop +/* 05CED4 7F0283A4 10000010 */ b .L7F0283E8 +/* 05CED8 7F0283A8 00001825 */ move $v1, $zero +.L7F0283AC: +/* 05CEDC 7F0283AC 1000000E */ b .L7F0283E8 +/* 05CEE0 7F0283B0 00003825 */ move $a3, $zero +.L7F0283B4: +/* 05CEE4 7F0283B4 2463FFFF */ addiu $v1, $v1, -1 +/* 05CEE8 7F0283B8 0461000B */ bgez $v1, .L7F0283E8 +/* 05CEEC 7F0283BC 00000000 */ nop +/* 05CEF0 7F0283C0 8C82002C */ lw $v0, 0x2c($a0) +/* 05CEF4 7F0283C4 24030001 */ li $v1, 1 +/* 05CEF8 7F0283C8 904B0005 */ lbu $t3, 5($v0) +/* 05CEFC 7F0283CC 316C0001 */ andi $t4, $t3, 1 +/* 05CF00 7F0283D0 51800005 */ beql $t4, $zero, .L7F0283E8 +/* 05CF04 7F0283D4 24070001 */ li $a3, 1 +/* 05CF08 7F0283D8 94430006 */ lhu $v1, 6($v0) +/* 05CF0C 7F0283DC 10000002 */ b .L7F0283E8 +/* 05CF10 7F0283E0 2463FFFF */ addiu $v1, $v1, -1 +/* 05CF14 7F0283E4 24070001 */ li $a3, 1 +.L7F0283E8: +/* 05CF18 7F0283E8 1CC0FFDF */ bgtz $a2, .L7F028368 +/* 05CF1C 7F0283EC 00000000 */ nop +/* 05CF20 7F0283F0 ACA70000 */ sw $a3, ($a1) +.L7F0283F4: +/* 05CF24 7F0283F4 03E00008 */ jr $ra +/* 05CF28 7F0283F8 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0283FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0283FC +/* 05CF2C 7F0283FC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05CF30 7F028400 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CF34 7F028404 8C8E0034 */ lw $t6, 0x34($a0) +/* 05CF38 7F028408 00A03025 */ move $a2, $a1 +/* 05CF3C 7F02840C 27A50020 */ addiu $a1, $sp, 0x20 +/* 05CF40 7F028410 AFA40028 */ sw $a0, 0x28($sp) +/* 05CF44 7F028414 0FC0A0D2 */ jal sub_GAME_7F028348 +/* 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(ptr_setup_path_tbl) +/* 05CF58 7F028428 8CEF002C */ lw $t7, 0x2c($a3) +/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 05CF60 7F028430 8CAA0000 */ lw $t2, ($a1) +/* 05CF64 7F028434 8DF80000 */ lw $t8, ($t7) +/* 05CF68 7F028438 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CF6C 7F02843C 8CAD0018 */ lw $t5, 0x18($a1) +/* 05CF70 7F028440 03191821 */ addu $v1, $t8, $t9 +/* 05CF74 7F028444 8C680000 */ lw $t0, ($v1) +/* 05CF78 7F028448 00084900 */ sll $t1, $t0, 4 +/* 05CF7C 7F02844C 012A2021 */ addu $a0, $t1, $t2 +/* 05CF80 7F028450 8C8B0000 */ lw $t3, ($a0) +/* 05CF84 7F028454 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CF88 7F028458 000B6080 */ sll $t4, $t3, 2 +/* 05CF8C 7F02845C 018B6023 */ subu $t4, $t4, $t3 +/* 05CF90 7F028460 000C6080 */ sll $t4, $t4, 2 +/* 05CF94 7F028464 018B6023 */ subu $t4, $t4, $t3 +/* 05CF98 7F028468 000C6080 */ sll $t4, $t4, 2 +/* 05CF9C 7F02846C 03E00008 */ jr $ra +/* 05CFA0 7F028470 018D1021 */ addu $v0, $t4, $t5 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028474(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028474 +/* 05CFA4 7F028474 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CFA8 7F028478 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CFAC 7F02847C 0FC0A0FF */ jal sub_GAME_7F0283FC +/* 05CFB0 7F028480 00002825 */ move $a1, $zero +/* 05CFB4 7F028484 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CFB8 7F028488 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05CFBC 7F02848C 03E00008 */ jr $ra +/* 05CFC0 7F028490 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028494(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028494 +/* 05CFC4 7F028494 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CFC8 7F028498 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CFCC 7F02849C 0FC0A11D */ jal sub_GAME_7F028474 +/* 05CFD0 7F0284A0 AFA40018 */ sw $a0, 0x18($sp) +/* 05CFD4 7F0284A4 8FA40018 */ lw $a0, 0x18($sp) +/* 05CFD8 7F0284A8 A0800038 */ sb $zero, 0x38($a0) +/* 05CFDC 7F0284AC A0800039 */ sb $zero, 0x39($a0) +/* 05CFE0 7F0284B0 A080003A */ sb $zero, 0x3a($a0) +/* 05CFE4 7F0284B4 C4440000 */ lwc1 $f4, ($v0) +/* 05CFE8 7F0284B8 E484003C */ swc1 $f4, 0x3c($a0) +/* 05CFEC 7F0284BC C4460004 */ lwc1 $f6, 4($v0) +/* 05CFF0 7F0284C0 E4860040 */ swc1 $f6, 0x40($a0) +/* 05CFF4 7F0284C4 C4480008 */ lwc1 $f8, 8($v0) +/* 05CFF8 7F0284C8 E4880044 */ swc1 $f8, 0x44($a0) +/* 05CFFC 7F0284CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D000 7F0284D0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D004 7F0284D4 03E00008 */ jr $ra +/* 05D008 7F0284D8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0284DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0284DC +/* 05D00C 7F0284DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05D010 7F0284E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D014 7F0284E4 AFA40018 */ sw $a0, 0x18($sp) +/* 05D018 7F0284E8 24850034 */ addiu $a1, $a0, 0x34 +/* 05D01C 7F0284EC 0FC0A0D2 */ jal sub_GAME_7F028348 +/* 05D020 7F0284F0 24060001 */ li $a2, 1 +/* 05D024 7F0284F4 8FA40018 */ lw $a0, 0x18($sp) +/* 05D028 7F0284F8 0FC0A125 */ jal sub_GAME_7F028494 +/* 05D02C 7F0284FC AC820030 */ sw $v0, 0x30($a0) +/* 05D030 7F028500 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D034 7F028504 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D038 7F028508 03E00008 */ jr $ra +/* 05D03C 7F02850C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028510(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028510 +/* 05D040 7F028510 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 05D044 7F028514 AFBF0034 */ sw $ra, 0x34($sp) +/* 05D048 7F028518 AFB60030 */ sw $s6, 0x30($sp) +/* 05D04C 7F02851C AFB5002C */ sw $s5, 0x2c($sp) +/* 05D050 7F028520 AFB40028 */ sw $s4, 0x28($sp) +/* 05D054 7F028524 AFB30024 */ sw $s3, 0x24($sp) +/* 05D058 7F028528 AFB20020 */ sw $s2, 0x20($sp) +/* 05D05C 7F02852C AFB1001C */ sw $s1, 0x1c($sp) +/* 05D060 7F028530 AFB00018 */ sw $s0, 0x18($sp) +/* 05D064 7F028534 90AE0003 */ lbu $t6, 3($a1) +/* 05D068 7F028538 00808825 */ move $s1, $a0 +/* 05D06C 7F02853C 240FFFFF */ li $t7, -1 +/* 05D070 7F028540 AFAF0054 */ sw $t7, 0x54($sp) +/* 05D074 7F028544 27A40050 */ addiu $a0, $sp, 0x50 +/* 05D078 7F028548 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 05D07C 7F02854C AFAE0050 */ sw $t6, 0x50($sp) +/* 05D080 7F028550 3C108007 */ lui $s0, %hi(ptr_list_object_lookup_indices) +/* 05D084 7F028554 8E109C30 */ lw $s0, %lo(ptr_list_object_lookup_indices)($s0) +/* 05D088 7F028558 3C138007 */ lui $s3, %hi(pos_data_entry) +/* 05D08C 7F02855C 26739C38 */ addiu $s3, %lo(pos_data_entry) # addiu $s3, $s3, -0x63c8 +/* 05D090 7F028560 86020000 */ lh $v0, ($s0) +/* 05D094 7F028564 27B60040 */ addiu $s6, $sp, 0x40 +/* 05D098 7F028568 27B50044 */ addiu $s5, $sp, 0x44 +/* 05D09C 7F02856C 04400019 */ bltz $v0, .L7F0285D4 +/* 05D0A0 7F028570 24140001 */ li $s4, 1 +/* 05D0A4 7F028574 24120034 */ li $s2, 52 +.L7F028578: +/* 05D0A8 7F028578 00520019 */ multu $v0, $s2 +/* 05D0AC 7F02857C 02A02825 */ move $a1, $s5 +/* 05D0B0 7F028580 0000C012 */ mflo $t8 +/* 05D0B4 7F028584 03132021 */ addu $a0, $t8, $s3 +/* 05D0B8 7F028588 90990000 */ lbu $t9, ($a0) +/* 05D0BC 7F02858C 5699000E */ bnel $s4, $t9, .L7F0285C8 +/* 05D0C0 7F028590 86020002 */ lh $v0, 2($s0) +/* 05D0C4 7F028594 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 05D0C8 7F028598 02C03025 */ move $a2, $s6 +/* 05D0CC 7F02859C 8FA60040 */ lw $a2, 0x40($sp) +/* 05D0D0 7F0285A0 02202025 */ move $a0, $s1 +/* 05D0D4 7F0285A4 58C00008 */ blezl $a2, .L7F0285C8 +/* 05D0D8 7F0285A8 86020002 */ lh $v0, 2($s0) +/* 05D0DC 7F0285AC 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 05D0E0 7F0285B0 8FA50044 */ lw $a1, 0x44($sp) +/* 05D0E4 7F0285B4 50400004 */ beql $v0, $zero, .L7F0285C8 +/* 05D0E8 7F0285B8 86020002 */ lh $v0, 2($s0) +/* 05D0EC 7F0285BC 10000006 */ b .L7F0285D8 +/* 05D0F0 7F0285C0 00001025 */ move $v0, $zero +/* 05D0F4 7F0285C4 86020002 */ lh $v0, 2($s0) +.L7F0285C8: +/* 05D0F8 7F0285C8 26100002 */ addiu $s0, $s0, 2 +/* 05D0FC 7F0285CC 0441FFEA */ bgez $v0, .L7F028578 +/* 05D100 7F0285D0 00000000 */ nop +.L7F0285D4: +/* 05D104 7F0285D4 24020001 */ li $v0, 1 +.L7F0285D8: +/* 05D108 7F0285D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05D10C 7F0285DC 8FB00018 */ lw $s0, 0x18($sp) +/* 05D110 7F0285E0 8FB1001C */ lw $s1, 0x1c($sp) +/* 05D114 7F0285E4 8FB20020 */ lw $s2, 0x20($sp) +/* 05D118 7F0285E8 8FB30024 */ lw $s3, 0x24($sp) +/* 05D11C 7F0285EC 8FB40028 */ lw $s4, 0x28($sp) +/* 05D120 7F0285F0 8FB5002C */ lw $s5, 0x2c($sp) +/* 05D124 7F0285F4 8FB60030 */ lw $s6, 0x30($sp) +/* 05D128 7F0285F8 03E00008 */ jr $ra +/* 05D12C 7F0285FC 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028600 +/* 05D130 7F028600 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05D134 7F028604 AFBF002C */ sw $ra, 0x2c($sp) +/* 05D138 7F028608 AFB00028 */ sw $s0, 0x28($sp) +/* 05D13C 7F02860C AFA5006C */ sw $a1, 0x6c($sp) +/* 05D140 7F028610 AFA60070 */ sw $a2, 0x70($sp) +/* 05D144 7F028614 AFA70074 */ sw $a3, 0x74($sp) +/* 05D148 7F028618 A0800009 */ sb $zero, 9($a0) +/* 05D14C 7F02861C 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05D150 7F028620 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05D154 7F028624 00808025 */ move $s0, $a0 +/* 05D158 7F028628 AC8E00CC */ sw $t6, 0xcc($a0) +/* 05D15C 7F02862C 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 05D160 7F028630 8C84001C */ lw $a0, 0x1c($a0) +/* 05D164 7F028634 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 05D168 7F028638 3C018005 */ lui $at, %hi(global_timer_delta) +/* 05D16C 7F02863C C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 05D170 7F028640 46002182 */ mul.s $f6, $f4, $f0 +/* 05D174 7F028644 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D178 7F028648 02002025 */ move $a0, $s0 +/* 05D17C 7F02864C C4500038 */ lwc1 $f16, 0x38($v0) +/* 05D180 7F028650 46083282 */ mul.s $f10, $f6, $f8 +/* 05D184 7F028654 C446003C */ lwc1 $f6, 0x3c($v0) +/* 05D188 7F028658 460A8480 */ add.s $f18, $f16, $f10 +/* 05D18C 7F02865C E4520038 */ swc1 $f18, 0x38($v0) +/* 05D190 7F028660 C4440038 */ lwc1 $f4, 0x38($v0) +/* 05D194 7F028664 4604303E */ c.le.s $f6, $f4 +/* 05D198 7F028668 00000000 */ nop +/* 05D19C 7F02866C 45020085 */ bc1fl .L7F028884 +/* 05D1A0 7F028670 8FBF002C */ lw $ra, 0x2c($sp) +/* 05D1A4 7F028674 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05D1A8 7F028678 00002825 */ move $a1, $zero +/* 05D1AC 7F02867C 8FA20074 */ lw $v0, 0x74($sp) +/* 05D1B0 7F028680 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05D1B4 7F028684 44818000 */ mtc1 $at, $f16 +/* 05D1B8 7F028688 44804000 */ mtc1 $zero, $f8 +/* 05D1BC 7F02868C 8E070024 */ lw $a3, 0x24($s0) +/* 05D1C0 7F028690 8C450000 */ lw $a1, ($v0) +/* 05D1C4 7F028694 8C460008 */ lw $a2, 8($v0) +/* 05D1C8 7F028698 240F001F */ li $t7, 31 +/* 05D1CC 7F02869C AFAF0010 */ sw $t7, 0x10($sp) +/* 05D1D0 7F0286A0 27A40078 */ addiu $a0, $sp, 0x78 +/* 05D1D4 7F0286A4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 05D1D8 7F0286A8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 05D1DC 7F0286AC E7A80014 */ swc1 $f8, 0x14($sp) +/* 05D1E0 7F0286B0 0441005D */ bgez $v0, .L7F028828 +/* 05D1E4 7F0286B4 8FA60074 */ lw $a2, 0x74($sp) +/* 05D1E8 7F0286B8 00C02025 */ move $a0, $a2 +/* 05D1EC 7F0286BC 0FC0A144 */ jal sub_GAME_7F028510 +/* 05D1F0 7F0286C0 8FA50078 */ lw $a1, 0x78($sp) +/* 05D1F4 7F0286C4 10400058 */ beqz $v0, .L7F028828 +/* 05D1F8 7F0286C8 8FA60074 */ lw $a2, 0x74($sp) +/* 05D1FC 7F0286CC 8E030018 */ lw $v1, 0x18($s0) +/* 05D200 7F0286D0 8FB80078 */ lw $t8, 0x78($sp) +/* 05D204 7F0286D4 00C02825 */ move $a1, $a2 +/* 05D208 7F0286D8 AC780014 */ sw $t8, 0x14($v1) +/* 05D20C 7F0286DC C4CA0000 */ lwc1 $f10, ($a2) +/* 05D210 7F0286E0 E46A0008 */ swc1 $f10, 8($v1) +/* 05D214 7F0286E4 C4D20004 */ lwc1 $f18, 4($a2) +/* 05D218 7F0286E8 E472000C */ swc1 $f18, 0xc($v1) +/* 05D21C 7F0286EC C4C40008 */ lwc1 $f4, 8($a2) +/* 05D220 7F0286F0 E4640010 */ swc1 $f4, 0x10($v1) +/* 05D224 7F0286F4 8E190014 */ lw $t9, 0x14($s0) +/* 05D228 7F0286F8 8E04001C */ lw $a0, 0x1c($s0) +/* 05D22C 7F0286FC 37280001 */ ori $t0, $t9, 1 +/* 05D230 7F028700 AE080014 */ sw $t0, 0x14($s0) +/* 05D234 7F028704 0FC1B303 */ jal setsuboffset +/* 05D238 7F028708 AFA30064 */ sw $v1, 0x64($sp) +/* 05D23C 7F02870C 8FA30064 */ lw $v1, 0x64($sp) +/* 05D240 7F028710 8E04001C */ lw $a0, 0x1c($s0) +/* 05D244 7F028714 260700AC */ addiu $a3, $s0, 0xac +/* 05D248 7F028718 24650008 */ addiu $a1, $v1, 8 +/* 05D24C 7F02871C 0FC07F04 */ jal sub_GAME_7F01FC10 +/* 05D250 7F028720 00A03025 */ move $a2, $a1 +/* 05D254 7F028724 0FC08365 */ jal sub_GAME_7F020D94 +/* 05D258 7F028728 02002025 */ move $a0, $s0 +/* 05D25C 7F02872C 82020007 */ lb $v0, 7($s0) +/* 05D260 7F028730 2401000E */ li $at, 14 +/* 05D264 7F028734 8FA30064 */ lw $v1, 0x64($sp) +/* 05D268 7F028738 5441000C */ bnel $v0, $at, .L7F02876C +/* 05D26C 7F02873C 2401000F */ li $at, 15 +/* 05D270 7F028740 0FC0A137 */ jal sub_GAME_7F0284DC +/* 05D274 7F028744 02002025 */ move $a0, $s0 +/* 05D278 7F028748 0FC0A11D */ jal sub_GAME_7F028474 +/* 05D27C 7F02874C 02002025 */ move $a0, $s0 +/* 05D280 7F028750 02002025 */ move $a0, $s0 +/* 05D284 7F028754 8FA5006C */ lw $a1, 0x6c($sp) +/* 05D288 7F028758 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05D28C 7F02875C 00403025 */ move $a2, $v0 +/* 05D290 7F028760 10000045 */ b .L7F028878 +/* 05D294 7F028764 02002025 */ move $a0, $s0 +/* 05D298 7F028768 2401000F */ li $at, 15 +.L7F02876C: +/* 05D29C 7F02876C 54410042 */ bnel $v0, $at, .L7F028878 +/* 05D2A0 7F028770 02002025 */ move $a0, $s0 +/* 05D2A4 7F028774 92020058 */ lbu $v0, 0x58($s0) +/* 05D2A8 7F028778 00024880 */ sll $t1, $v0, 2 +/* 05D2AC 7F02877C 02095021 */ addu $t2, $s0, $t1 +/* 05D2B0 7F028780 8D4B0040 */ lw $t3, 0x40($t2) +/* 05D2B4 7F028784 1560001C */ bnez $t3, .L7F0287F8 +/* 05D2B8 7F028788 00000000 */ nop +/* 05D2BC 7F02878C 18400016 */ blez $v0, .L7F0287E8 +/* 05D2C0 7F028790 00026080 */ sll $t4, $v0, 2 +/* 05D2C4 7F028794 020C6821 */ addu $t5, $s0, $t4 +/* 05D2C8 7F028798 8DA4003C */ lw $a0, 0x3c($t5) +/* 05D2CC 7F02879C 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05D2D0 7F0287A0 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05D2D4 7F0287A4 8C8E0000 */ lw $t6, ($a0) +/* 05D2D8 7F0287A8 C4660008 */ lwc1 $f6, 8($v1) +/* 05D2DC 7F0287AC C4700010 */ lwc1 $f16, 0x10($v1) +/* 05D2E0 7F0287B0 000E7880 */ sll $t7, $t6, 2 +/* 05D2E4 7F0287B4 01EE7823 */ subu $t7, $t7, $t6 +/* 05D2E8 7F0287B8 000F7880 */ sll $t7, $t7, 2 +/* 05D2EC 7F0287BC 01EE7823 */ subu $t7, $t7, $t6 +/* 05D2F0 7F0287C0 000F7880 */ sll $t7, $t7, 2 +/* 05D2F4 7F0287C4 01F81021 */ addu $v0, $t7, $t8 +/* 05D2F8 7F0287C8 C4480000 */ lwc1 $f8, ($v0) +/* 05D2FC 7F0287CC C44A0008 */ lwc1 $f10, 8($v0) +/* 05D300 7F0287D0 46083301 */ sub.s $f12, $f6, $f8 +/* 05D304 7F0287D4 0FC16A8C */ jal atan2f +/* 05D308 7F0287D8 460A8381 */ sub.s $f14, $f16, $f10 +/* 05D30C 7F0287DC 44050000 */ mfc1 $a1, $f0 +/* 05D310 7F0287E0 0FC1B34F */ jal setsubroty +/* 05D314 7F0287E4 8E04001C */ lw $a0, 0x1c($s0) +.L7F0287E8: +/* 05D318 7F0287E8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 05D31C 7F0287EC 02002025 */ move $a0, $s0 +/* 05D320 7F0287F0 10000021 */ b .L7F028878 +/* 05D324 7F0287F4 02002025 */ move $a0, $s0 +.L7F0287F8: +/* 05D328 7F0287F8 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 05D32C 7F0287FC 02002025 */ move $a0, $s0 +/* 05D330 7F028800 02002025 */ move $a0, $s0 +/* 05D334 7F028804 27A50040 */ addiu $a1, $sp, 0x40 +/* 05D338 7F028808 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05D33C 7F02880C 27A6003C */ addiu $a2, $sp, 0x3c +/* 05D340 7F028810 02002025 */ move $a0, $s0 +/* 05D344 7F028814 8FA5006C */ lw $a1, 0x6c($sp) +/* 05D348 7F028818 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05D34C 7F02881C 27A60040 */ addiu $a2, $sp, 0x40 +/* 05D350 7F028820 10000015 */ b .L7F028878 +/* 05D354 7F028824 02002025 */ move $a0, $s0 +.L7F028828: +/* 05D358 7F028828 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D35C 7F02882C 2401000E */ li $at, 14 +/* 05D360 7F028830 3C088005 */ lui $t0, %hi(global_timer) +/* 05D364 7F028834 C452003C */ lwc1 $f18, 0x3c($v0) +/* 05D368 7F028838 3C098005 */ lui $t1, %hi(global_timer) +/* 05D36C 7F02883C E4520038 */ swc1 $f18, 0x38($v0) +/* 05D370 7F028840 82190007 */ lb $t9, 7($s0) +/* 05D374 7F028844 17210007 */ bne $t9, $at, .L7F028864 +/* 05D378 7F028848 00000000 */ nop +/* 05D37C 7F02884C 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 05D380 7F028850 02002025 */ move $a0, $s0 +/* 05D384 7F028854 0FC0A125 */ jal sub_GAME_7F028494 +/* 05D388 7F028858 AE080078 */ sw $t0, 0x78($s0) +/* 05D38C 7F02885C 10000006 */ b .L7F028878 +/* 05D390 7F028860 02002025 */ move $a0, $s0 +.L7F028864: +/* 05D394 7F028864 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 05D398 7F028868 02002025 */ move $a0, $s0 +/* 05D39C 7F02886C 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05D3A0 7F028870 AE09009C */ sw $t1, 0x9c($s0) +/* 05D3A4 7F028874 02002025 */ move $a0, $s0 +.L7F028878: +/* 05D3A8 7F028878 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05D3AC 7F02887C 24050001 */ li $a1, 1 +/* 05D3B0 7F028880 8FBF002C */ lw $ra, 0x2c($sp) +.L7F028884: +/* 05D3B4 7F028884 8FB00028 */ lw $s0, 0x28($sp) +/* 05D3B8 7F028888 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05D3BC 7F02888C 03E00008 */ jr $ra +/* 05D3C0 7F028890 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028894(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028894 +/* 05D3C4 7F028894 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05D3C8 7F028898 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D3CC 7F02889C 80820007 */ lb $v0, 7($a0) +/* 05D3D0 7F0288A0 2401000E */ li $at, 14 +/* 05D3D4 7F0288A4 00A03825 */ move $a3, $a1 +/* 05D3D8 7F0288A8 5441002F */ bnel $v0, $at, .L7F028968 +/* 05D3DC 7F0288AC 2401000F */ li $at, 15 +/* 05D3E0 7F0288B0 808E0038 */ lb $t6, 0x38($a0) +/* 05D3E4 7F0288B4 24010006 */ li $at, 6 +/* 05D3E8 7F0288B8 55C1002B */ bnel $t6, $at, .L7F028968 +/* 05D3EC 7F0288BC 2401000F */ li $at, 15 +/* 05D3F0 7F0288C0 AFA40040 */ sw $a0, 0x40($sp) +/* 05D3F4 7F0288C4 0FC0A11D */ jal sub_GAME_7F028474 +/* 05D3F8 7F0288C8 AFA50044 */ sw $a1, 0x44($sp) +/* 05D3FC 7F0288CC 8FA40040 */ lw $a0, 0x40($sp) +/* 05D400 7F0288D0 8FA70044 */ lw $a3, 0x44($sp) +/* 05D404 7F0288D4 C4900070 */ lwc1 $f16, 0x70($a0) +/* 05D408 7F0288D8 C4920074 */ lwc1 $f18, 0x74($a0) +/* 05D40C 7F0288DC 4610903E */ c.le.s $f18, $f16 +/* 05D410 7F0288E0 00000000 */ nop +/* 05D414 7F0288E4 45020009 */ bc1fl .L7F02890C +/* 05D418 7F0288E8 46128003 */ div.s $f0, $f16, $f18 +/* 05D41C 7F0288EC C4440000 */ lwc1 $f4, ($v0) +/* 05D420 7F0288F0 E4E40000 */ swc1 $f4, ($a3) +/* 05D424 7F0288F4 C4460004 */ lwc1 $f6, 4($v0) +/* 05D428 7F0288F8 E4E60004 */ swc1 $f6, 4($a3) +/* 05D42C 7F0288FC C4480008 */ lwc1 $f8, 8($v0) +/* 05D430 7F028900 10000052 */ b .L7F028A4C +/* 05D434 7F028904 E4E80008 */ swc1 $f8, 8($a3) +/* 05D438 7F028908 46128003 */ div.s $f0, $f16, $f18 +.L7F02890C: +/* 05D43C 7F02890C 8C8F0018 */ lw $t7, 0x18($a0) +/* 05D440 7F028910 C44A0000 */ lwc1 $f10, ($v0) +/* 05D444 7F028914 C5E20008 */ lwc1 $f2, 8($t7) +/* 05D448 7F028918 46025101 */ sub.s $f4, $f10, $f2 +/* 05D44C 7F02891C 46002182 */ mul.s $f6, $f4, $f0 +/* 05D450 7F028920 46023200 */ add.s $f8, $f6, $f2 +/* 05D454 7F028924 E4E80000 */ swc1 $f8, ($a3) +/* 05D458 7F028928 8C980018 */ lw $t8, 0x18($a0) +/* 05D45C 7F02892C C44A0004 */ lwc1 $f10, 4($v0) +/* 05D460 7F028930 C70C000C */ lwc1 $f12, 0xc($t8) +/* 05D464 7F028934 460C5101 */ sub.s $f4, $f10, $f12 +/* 05D468 7F028938 46002182 */ mul.s $f6, $f4, $f0 +/* 05D46C 7F02893C 460C3200 */ add.s $f8, $f6, $f12 +/* 05D470 7F028940 E4E80004 */ swc1 $f8, 4($a3) +/* 05D474 7F028944 8C990018 */ lw $t9, 0x18($a0) +/* 05D478 7F028948 C44A0008 */ lwc1 $f10, 8($v0) +/* 05D47C 7F02894C C72E0010 */ lwc1 $f14, 0x10($t9) +/* 05D480 7F028950 460E5101 */ sub.s $f4, $f10, $f14 +/* 05D484 7F028954 46002182 */ mul.s $f6, $f4, $f0 +/* 05D488 7F028958 460E3200 */ add.s $f8, $f6, $f14 +/* 05D48C 7F02895C 1000003B */ b .L7F028A4C +/* 05D490 7F028960 E4E80008 */ swc1 $f8, 8($a3) +/* 05D494 7F028964 2401000F */ li $at, 15 +.L7F028968: +/* 05D498 7F028968 54410030 */ bnel $v0, $at, .L7F028A2C +/* 05D49C 7F02896C 8C8C0018 */ lw $t4, 0x18($a0) +/* 05D4A0 7F028970 8088005C */ lb $t0, 0x5c($a0) +/* 05D4A4 7F028974 24010006 */ li $at, 6 +/* 05D4A8 7F028978 27A5002C */ addiu $a1, $sp, 0x2c +/* 05D4AC 7F02897C 1501002A */ bne $t0, $at, .L7F028A28 +/* 05D4B0 7F028980 27A60028 */ addiu $a2, $sp, 0x28 +/* 05D4B4 7F028984 AFA40040 */ sw $a0, 0x40($sp) +/* 05D4B8 7F028988 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05D4BC 7F02898C AFA70044 */ sw $a3, 0x44($sp) +/* 05D4C0 7F028990 8FA40040 */ lw $a0, 0x40($sp) +/* 05D4C4 7F028994 8FA70044 */ lw $a3, 0x44($sp) +/* 05D4C8 7F028998 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 05D4CC 7F02899C C4900094 */ lwc1 $f16, 0x94($a0) +/* 05D4D0 7F0289A0 C4920098 */ lwc1 $f18, 0x98($a0) +/* 05D4D4 7F0289A4 4610903E */ c.le.s $f18, $f16 +/* 05D4D8 7F0289A8 00000000 */ nop +/* 05D4DC 7F0289AC 45020008 */ bc1fl .L7F0289D0 +/* 05D4E0 7F0289B0 46128003 */ div.s $f0, $f16, $f18 +/* 05D4E4 7F0289B4 E4EA0000 */ swc1 $f10, ($a3) +/* 05D4E8 7F0289B8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 05D4EC 7F0289BC E4E40004 */ swc1 $f4, 4($a3) +/* 05D4F0 7F0289C0 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 05D4F4 7F0289C4 10000021 */ b .L7F028A4C +/* 05D4F8 7F0289C8 E4E60008 */ swc1 $f6, 8($a3) +/* 05D4FC 7F0289CC 46128003 */ div.s $f0, $f16, $f18 +.L7F0289D0: +/* 05D500 7F0289D0 8C890018 */ lw $t1, 0x18($a0) +/* 05D504 7F0289D4 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 05D508 7F0289D8 C5220008 */ lwc1 $f2, 8($t1) +/* 05D50C 7F0289DC 46024281 */ sub.s $f10, $f8, $f2 +/* 05D510 7F0289E0 46005102 */ mul.s $f4, $f10, $f0 +/* 05D514 7F0289E4 46022180 */ add.s $f6, $f4, $f2 +/* 05D518 7F0289E8 E4E60000 */ swc1 $f6, ($a3) +/* 05D51C 7F0289EC 8C8A0018 */ lw $t2, 0x18($a0) +/* 05D520 7F0289F0 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 05D524 7F0289F4 C54C000C */ lwc1 $f12, 0xc($t2) +/* 05D528 7F0289F8 460C4281 */ sub.s $f10, $f8, $f12 +/* 05D52C 7F0289FC 46005102 */ mul.s $f4, $f10, $f0 +/* 05D530 7F028A00 460C2180 */ add.s $f6, $f4, $f12 +/* 05D534 7F028A04 E4E60004 */ swc1 $f6, 4($a3) +/* 05D538 7F028A08 8C8B0018 */ lw $t3, 0x18($a0) +/* 05D53C 7F028A0C C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05D540 7F028A10 C56E0010 */ lwc1 $f14, 0x10($t3) +/* 05D544 7F028A14 460E4281 */ sub.s $f10, $f8, $f14 +/* 05D548 7F028A18 46005102 */ mul.s $f4, $f10, $f0 +/* 05D54C 7F028A1C 460E2180 */ add.s $f6, $f4, $f14 +/* 05D550 7F028A20 1000000A */ b .L7F028A4C +/* 05D554 7F028A24 E4E60008 */ swc1 $f6, 8($a3) +.L7F028A28: +/* 05D558 7F028A28 8C8C0018 */ lw $t4, 0x18($a0) +.L7F028A2C: +/* 05D55C 7F028A2C C5880008 */ lwc1 $f8, 8($t4) +/* 05D560 7F028A30 E4E80000 */ swc1 $f8, ($a3) +/* 05D564 7F028A34 8C8D0018 */ lw $t5, 0x18($a0) +/* 05D568 7F028A38 C5AA000C */ lwc1 $f10, 0xc($t5) +/* 05D56C 7F028A3C E4EA0004 */ swc1 $f10, 4($a3) +/* 05D570 7F028A40 8C8E0018 */ lw $t6, 0x18($a0) +/* 05D574 7F028A44 C5C40010 */ lwc1 $f4, 0x10($t6) +/* 05D578 7F028A48 E4E40008 */ swc1 $f4, 8($a3) +.L7F028A4C: +/* 05D57C 7F028A4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D580 7F028A50 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05D584 7F028A54 03E00008 */ jr $ra +/* 05D588 7F028A58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_sound_at_range(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_sound_at_range +/* 05D58C 7F028A5C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05D590 7F028A60 AFBF001C */ sw $ra, 0x1c($sp) +/* 05D594 7F028A64 AFA50034 */ sw $a1, 0x34($sp) +/* 05D598 7F028A68 AFA40030 */ sw $a0, 0x30($sp) +/* 05D59C 7F028A6C AFA60038 */ sw $a2, 0x38($sp) +/* 05D5A0 7F028A70 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05D5A4 7F028A74 24050001 */ li $a1, 1 +/* 05D5A8 7F028A78 8FA40030 */ lw $a0, 0x30($sp) +/* 05D5AC 7F028A7C 00002825 */ move $a1, $zero +/* 05D5B0 7F028A80 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05D5B4 7F028A84 AFA2002C */ sw $v0, 0x2c($sp) +/* 05D5B8 7F028A88 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D5BC 7F028A8C 00402825 */ move $a1, $v0 +/* 05D5C0 7F028A90 10E00003 */ beqz $a3, .L7F028AA0 +/* 05D5C4 7F028A94 00000000 */ nop +/* 05D5C8 7F028A98 14400005 */ bnez $v0, .L7F028AB0 +/* 05D5CC 7F028A9C 00000000 */ nop +.L7F028AA0: +/* 05D5D0 7F028AA0 14E00009 */ bnez $a3, .L7F028AC8 +/* 05D5D4 7F028AA4 00E02025 */ move $a0, $a3 +/* 05D5D8 7F028AA8 54400008 */ bnezl $v0, .L7F028ACC +/* 05D5DC 7F028AAC AFA50028 */ sw $a1, 0x28($sp) +.L7F028AB0: +/* 05D5E0 7F028AB0 0C002914 */ jal get_random_value +/* 05D5E4 7F028AB4 AFA00020 */ sw $zero, 0x20($sp) +/* 05D5E8 7F028AB8 8FA30020 */ lw $v1, 0x20($sp) +/* 05D5EC 7F028ABC 8FA80030 */ lw $t0, 0x30($sp) +/* 05D5F0 7F028AC0 10000013 */ b .L7F028B10 +/* 05D5F4 7F028AC4 30460001 */ andi $a2, $v0, 1 +.L7F028AC8: +/* 05D5F8 7F028AC8 AFA50028 */ sw $a1, 0x28($sp) +.L7F028ACC: +/* 05D5FC 7F028ACC 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05D600 7F028AD0 AFA7002C */ sw $a3, 0x2c($sp) +/* 05D604 7F028AD4 8FA50028 */ lw $a1, 0x28($sp) +/* 05D608 7F028AD8 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D60C 7F028ADC 14400007 */ bnez $v0, .L7F028AFC +/* 05D610 7F028AE0 8FA80030 */ lw $t0, 0x30($sp) +/* 05D614 7F028AE4 00A02025 */ move $a0, $a1 +/* 05D618 7F028AE8 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05D61C 7F028AEC AFA7002C */ sw $a3, 0x2c($sp) +/* 05D620 7F028AF0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D624 7F028AF4 10400004 */ beqz $v0, .L7F028B08 +/* 05D628 7F028AF8 8FA80030 */ lw $t0, 0x30($sp) +.L7F028AFC: +/* 05D62C 7F028AFC 00001825 */ move $v1, $zero +/* 05D630 7F028B00 10000003 */ b .L7F028B10 +/* 05D634 7F028B04 0007302B */ sltu $a2, $zero, $a3 +.L7F028B08: +/* 05D638 7F028B08 24030001 */ li $v1, 1 +/* 05D63C 7F028B0C 0007302B */ sltu $a2, $zero, $a3 +.L7F028B10: +/* 05D640 7F028B10 10600036 */ beqz $v1, .L7F028BEC +/* 05D644 7F028B14 8FAB0038 */ lw $t3, 0x38($sp) +/* 05D648 7F028B18 8FA20034 */ lw $v0, 0x34($sp) +/* 05D64C 7F028B1C 24010002 */ li $at, 2 +/* 05D650 7F028B20 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 05D654 7F028B24 1441000F */ bne $v0, $at, .L7F028B64 +/* 05D658 7F028B28 3C0F0000 */ lui $t7, %hi(0x00004070) # $t7, 0 +/* 05D65C 7F028B2C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D660 7F028B30 44812000 */ mtc1 $at, $f4 +/* 05D664 7F028B34 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D668 7F028B38 44813000 */ mtc1 $at, $f6 +/* 05D66C 7F028B3C 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05D670 7F028B40 8D04001C */ lw $a0, 0x1c($t0) +/* 05D674 7F028B44 25EF4070 */ addiu $t7, %lo(0x00004070) # addiu $t7, $t7, 0x4070 +/* 05D678 7F028B48 24070000 */ li $a3, 0 +/* 05D67C 7F028B4C E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D680 7F028B50 01CF2821 */ addu $a1, $t6, $t7 +/* 05D684 7F028B54 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D688 7F028B58 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D68C 7F028B5C 1000008D */ b .L7F028D94 +/* 05D690 7F028B60 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028B64: +/* 05D694 7F028B64 24010001 */ li $at, 1 +/* 05D698 7F028B68 14410011 */ bne $v0, $at, .L7F028BB0 +/* 05D69C 7F028B6C 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05D6A0 7F028B70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D6A4 7F028B74 44814000 */ mtc1 $at, $f8 +/* 05D6A8 7F028B78 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D6AC 7F028B7C 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05D6B0 7F028B80 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05D6B4 7F028B84 44815000 */ mtc1 $at, $f10 +/* 05D6B8 7F028B88 3C190000 */ lui $t9, %hi(0x000040D4) # $t9, 0 +/* 05D6BC 7F028B8C 273940D4 */ addiu $t9, %lo(0x000040D4) # addiu $t9, $t9, 0x40d4 +/* 05D6C0 7F028B90 8D04001C */ lw $a0, 0x1c($t0) +/* 05D6C4 7F028B94 24070000 */ li $a3, 0 +/* 05D6C8 7F028B98 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D6CC 7F028B9C 03192821 */ addu $a1, $t8, $t9 +/* 05D6D0 7F028BA0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D6D4 7F028BA4 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D6D8 7F028BA8 1000007A */ b .L7F028D94 +/* 05D6DC 7F028BAC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028BB0: +/* 05D6E0 7F028BB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D6E4 7F028BB4 44818000 */ mtc1 $at, $f16 +/* 05D6E8 7F028BB8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D6EC 7F028BBC 44819000 */ mtc1 $at, $f18 +/* 05D6F0 7F028BC0 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 05D6F4 7F028BC4 3C0A0000 */ lui $t2, %hi(0x00004018) # $t2, 0 +/* 05D6F8 7F028BC8 254A4018 */ addiu $t2, %lo(0x00004018) # addiu $t2, $t2, 0x4018 +/* 05D6FC 7F028BCC 8D04001C */ lw $a0, 0x1c($t0) +/* 05D700 7F028BD0 24070000 */ li $a3, 0 +/* 05D704 7F028BD4 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D708 7F028BD8 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D70C 7F028BDC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D710 7F028BE0 012A2821 */ addu $a1, $t1, $t2 +/* 05D714 7F028BE4 1000006B */ b .L7F028D94 +/* 05D718 7F028BE8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028BEC: +/* 05D71C 7F028BEC 11600036 */ beqz $t3, .L7F028CC8 +/* 05D720 7F028BF0 8FA20034 */ lw $v0, 0x34($sp) +/* 05D724 7F028BF4 8FA20034 */ lw $v0, 0x34($sp) +/* 05D728 7F028BF8 24010002 */ li $at, 2 +/* 05D72C 7F028BFC 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 05D730 7F028C00 1441000F */ bne $v0, $at, .L7F028C40 +/* 05D734 7F028C04 3C0D0000 */ lui $t5, %hi(0x000077D4) # $t5, 0 +/* 05D738 7F028C08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D73C 7F028C0C 44812000 */ mtc1 $at, $f4 +/* 05D740 7F028C10 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D744 7F028C14 44813000 */ mtc1 $at, $f6 +/* 05D748 7F028C18 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05D74C 7F028C1C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D750 7F028C20 25AD77D4 */ addiu $t5, %lo(0x000077D4) # addiu $t5, $t5, 0x77d4 +/* 05D754 7F028C24 24070000 */ li $a3, 0 +/* 05D758 7F028C28 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D75C 7F028C2C 018D2821 */ addu $a1, $t4, $t5 +/* 05D760 7F028C30 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D764 7F028C34 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D768 7F028C38 10000056 */ b .L7F028D94 +/* 05D76C 7F028C3C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028C40: +/* 05D770 7F028C40 24010001 */ li $at, 1 +/* 05D774 7F028C44 14410011 */ bne $v0, $at, .L7F028C8C +/* 05D778 7F028C48 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05D77C 7F028C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D780 7F028C50 44814000 */ mtc1 $at, $f8 +/* 05D784 7F028C54 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D788 7F028C58 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 05D78C 7F028C5C 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05D790 7F028C60 44815000 */ mtc1 $at, $f10 +/* 05D794 7F028C64 3C0F0000 */ lui $t7, %hi(0x0000777C) # $t7, 0 +/* 05D798 7F028C68 25EF777C */ addiu $t7, %lo(0x0000777C) # addiu $t7, $t7, 0x777c +/* 05D79C 7F028C6C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D7A0 7F028C70 24070000 */ li $a3, 0 +/* 05D7A4 7F028C74 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D7A8 7F028C78 01CF2821 */ addu $a1, $t6, $t7 +/* 05D7AC 7F028C7C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D7B0 7F028C80 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D7B4 7F028C84 10000043 */ b .L7F028D94 +/* 05D7B8 7F028C88 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028C8C: +/* 05D7BC 7F028C8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D7C0 7F028C90 44818000 */ mtc1 $at, $f16 +/* 05D7C4 7F028C94 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D7C8 7F028C98 44819000 */ mtc1 $at, $f18 +/* 05D7CC 7F028C9C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05D7D0 7F028CA0 3C190001 */ lui $t9, %hi(0x00008204) # $t9, 1 +/* 05D7D4 7F028CA4 27398204 */ addiu $t9, %lo(0x00008204) # addiu $t9, $t9, -0x7dfc +/* 05D7D8 7F028CA8 8D04001C */ lw $a0, 0x1c($t0) +/* 05D7DC 7F028CAC 24070000 */ li $a3, 0 +/* 05D7E0 7F028CB0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D7E4 7F028CB4 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D7E8 7F028CB8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D7EC 7F028CBC 03192821 */ addu $a1, $t8, $t9 +/* 05D7F0 7F028CC0 10000034 */ b .L7F028D94 +/* 05D7F4 7F028CC4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028CC8: +/* 05D7F8 7F028CC8 24010002 */ li $at, 2 +/* 05D7FC 7F028CCC 14410010 */ bne $v0, $at, .L7F028D10 +/* 05D800 7F028CD0 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05D804 7F028CD4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D808 7F028CD8 44812000 */ mtc1 $at, $f4 +/* 05D80C 7F028CDC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D810 7F028CE0 44813000 */ mtc1 $at, $f6 +/* 05D814 7F028CE4 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 05D818 7F028CE8 3C0A0000 */ lui $t2, %hi(0x000077D4) # $t2, 0 +/* 05D81C 7F028CEC 254A77D4 */ addiu $t2, %lo(0x000077D4) # addiu $t2, $t2, 0x77d4 +/* 05D820 7F028CF0 8D04001C */ lw $a0, 0x1c($t0) +/* 05D824 7F028CF4 24070000 */ li $a3, 0 +/* 05D828 7F028CF8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D82C 7F028CFC E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D830 7F028D00 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D834 7F028D04 012A2821 */ addu $a1, $t1, $t2 +/* 05D838 7F028D08 10000022 */ b .L7F028D94 +/* 05D83C 7F028D0C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D10: +/* 05D840 7F028D10 24010001 */ li $at, 1 +/* 05D844 7F028D14 14410011 */ bne $v0, $at, .L7F028D5C +/* 05D848 7F028D18 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 05D84C 7F028D1C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D850 7F028D20 44814000 */ mtc1 $at, $f8 +/* 05D854 7F028D24 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D858 7F028D28 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 05D85C 7F028D2C 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05D860 7F028D30 44815000 */ mtc1 $at, $f10 +/* 05D864 7F028D34 3C0C0001 */ lui $t4, %hi(0x00008520) # $t4, 1 +/* 05D868 7F028D38 258C8520 */ addiu $t4, %lo(0x00008520) # addiu $t4, $t4, -0x7ae0 +/* 05D86C 7F028D3C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D870 7F028D40 24070000 */ li $a3, 0 +/* 05D874 7F028D44 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D878 7F028D48 016C2821 */ addu $a1, $t3, $t4 +/* 05D87C 7F028D4C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D880 7F028D50 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D884 7F028D54 1000000F */ b .L7F028D94 +/* 05D888 7F028D58 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D5C: +/* 05D88C 7F028D5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D890 7F028D60 44818000 */ mtc1 $at, $f16 +/* 05D894 7F028D64 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D898 7F028D68 44819000 */ mtc1 $at, $f18 +/* 05D89C 7F028D6C 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 05D8A0 7F028D70 3C0E0001 */ lui $t6, %hi(0x000084C4) # $t6, 1 +/* 05D8A4 7F028D74 25CE84C4 */ addiu $t6, %lo(0x000084C4) # addiu $t6, $t6, -0x7b3c +/* 05D8A8 7F028D78 8D04001C */ lw $a0, 0x1c($t0) +/* 05D8AC 7F028D7C 24070000 */ li $a3, 0 +/* 05D8B0 7F028D80 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D8B4 7F028D84 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D8B8 7F028D88 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D8BC 7F028D8C 01AE2821 */ addu $a1, $t5, $t6 +/* 05D8C0 7F028D90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D94: +/* 05D8C4 7F028D94 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05D8C8 7F028D98 03E00008 */ jr $ra +/* 05D8CC 7F028D9C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void play_hit_soundeffect_and_proper_volume(void) { + +} +#else +GLOBAL_ASM( +.text +glabel play_hit_soundeffect_and_proper_volume +/* 05D8D0 7F028DA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05D8D4 7F028DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D8D8 7F028DA8 808E000F */ lb $t6, 0xf($a0) +/* 05D8DC 7F028DAC 3C068004 */ lui $a2, %hi(c_item_entries+16) +/* 05D8E0 7F028DB0 90850059 */ lbu $a1, 0x59($a0) +/* 05D8E4 7F028DB4 000E7880 */ sll $t7, $t6, 2 +/* 05D8E8 7F028DB8 01EE7821 */ addu $t7, $t7, $t6 +/* 05D8EC 7F028DBC 000F7880 */ sll $t7, $t7, 2 +/* 05D8F0 7F028DC0 00CF3021 */ addu $a2, $a2, $t7 +/* 05D8F4 7F028DC4 0FC0A297 */ jal get_sound_at_range +/* 05D8F8 7F028DC8 90C6DE20 */ lbu $a2, %lo(c_item_entries+16)($a2) +/* 05D8FC 7F028DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D900 7F028DD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D904 7F028DD4 03E00008 */ jr $ra +/* 05D908 7F028DD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void plot_course_for_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel plot_course_for_actor +/* 05D90C 7F028DDC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05D910 7F028DE0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05D914 7F028DE4 AFB00018 */ sw $s0, 0x18($sp) +/* 05D918 7F028DE8 AFA5006C */ sw $a1, 0x6c($sp) +/* 05D91C 7F028DEC AFA60070 */ sw $a2, 0x70($sp) +/* 05D920 7F028DF0 AFA70074 */ sw $a3, 0x74($sp) +/* 05D924 7F028DF4 80820007 */ lb $v0, 7($a0) +/* 05D928 7F028DF8 00808025 */ move $s0, $a0 +/* 05D92C 7F028DFC 8C830018 */ lw $v1, 0x18($a0) +/* 05D930 7F028E00 384E000F */ xori $t6, $v0, 0xf +/* 05D934 7F028E04 2DC20001 */ sltiu $v0, $t6, 1 +/* 05D938 7F028E08 10400004 */ beqz $v0, .L7F028E1C +/* 05D93C 7F028E0C 93AF0077 */ lbu $t7, 0x77($sp) +/* 05D940 7F028E10 90980059 */ lbu $t8, 0x59($a0) +/* 05D944 7F028E14 01F81026 */ xor $v0, $t7, $t8 +/* 05D948 7F028E18 2C420001 */ sltiu $v0, $v0, 1 +.L7F028E1C: +/* 05D94C 7F028E1C 8C650014 */ lw $a1, 0x14($v1) +/* 05D950 7F028E20 AFA30064 */ sw $v1, 0x64($sp) +/* 05D954 7F028E24 AFA20028 */ sw $v0, 0x28($sp) +/* 05D958 7F028E28 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 05D95C 7F028E2C 24640008 */ addiu $a0, $v1, 8 +/* 05D960 7F028E30 AFA20060 */ sw $v0, 0x60($sp) +/* 05D964 7F028E34 8FA4006C */ lw $a0, 0x6c($sp) +/* 05D968 7F028E38 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 05D96C 7F028E3C 8FA50070 */ lw $a1, 0x70($sp) +/* 05D970 7F028E40 8FA40060 */ lw $a0, 0x60($sp) +/* 05D974 7F028E44 00402825 */ move $a1, $v0 +/* 05D978 7F028E48 50800053 */ beql $a0, $zero, .L7F028F98 +/* 05D97C 7F028E4C 00001025 */ move $v0, $zero +/* 05D980 7F028E50 10400050 */ beqz $v0, .L7F028F94 +/* 05D984 7F028E54 27A60044 */ addiu $a2, $sp, 0x44 +/* 05D988 7F028E58 24070006 */ li $a3, 6 +/* 05D98C 7F028E5C 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 05D990 7F028E60 AFA2005C */ sw $v0, 0x5c($sp) +/* 05D994 7F028E64 28410002 */ slti $at, $v0, 2 +/* 05D998 7F028E68 5420004B */ bnezl $at, .L7F028F98 +/* 05D99C 7F028E6C 00001025 */ move $v0, $zero +/* 05D9A0 7F028E70 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05D9A4 7F028E74 02002025 */ move $a0, $s0 +/* 05D9A8 7F028E78 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D9AC 7F028E7C 2419000F */ li $t9, 15 +/* 05D9B0 7F028E80 A2190007 */ sb $t9, 7($s0) +/* 05D9B4 7F028E84 C4440000 */ lwc1 $f4, ($v0) +/* 05D9B8 7F028E88 44805000 */ mtc1 $zero, $f10 +/* 05D9BC 7F028E8C E604002C */ swc1 $f4, 0x2c($s0) +/* 05D9C0 7F028E90 C4460004 */ lwc1 $f6, 4($v0) +/* 05D9C4 7F028E94 E6060030 */ swc1 $f6, 0x30($s0) +/* 05D9C8 7F028E98 C4480008 */ lwc1 $f8, 8($v0) +/* 05D9CC 7F028E9C E6080034 */ swc1 $f8, 0x34($s0) +/* 05D9D0 7F028EA0 8FA80070 */ lw $t0, 0x70($sp) +/* 05D9D4 7F028EA4 AE080038 */ sw $t0, 0x38($s0) +/* 05D9D8 7F028EA8 8FA9005C */ lw $t1, 0x5c($sp) +/* 05D9DC 7F028EAC A2000058 */ sb $zero, 0x58($s0) +/* 05D9E0 7F028EB0 AE09003C */ sw $t1, 0x3c($s0) +/* 05D9E4 7F028EB4 8FAA0074 */ lw $t2, 0x74($sp) +/* 05D9E8 7F028EB8 E60A00A0 */ swc1 $f10, 0xa0($s0) +/* 05D9EC 7F028EBC 0C002914 */ jal get_random_value +/* 05D9F0 7F028EC0 A20A0059 */ sb $t2, 0x59($s0) +/* 05D9F4 7F028EC4 24010064 */ li $at, 100 +/* 05D9F8 7F028EC8 0041001B */ divu $zero, $v0, $at +/* 05D9FC 7F028ECC 00005810 */ mfhi $t3 +/* 05DA00 7F028ED0 240CFFFF */ li $t4, -1 +/* 05DA04 7F028ED4 AE0B0084 */ sw $t3, 0x84($s0) +/* 05DA08 7F028ED8 A200005F */ sb $zero, 0x5f($s0) +/* 05DA0C 7F028EDC AE0C009C */ sw $t4, 0x9c($s0) +/* 05DA10 7F028EE0 8FAD0044 */ lw $t5, 0x44($sp) +/* 05DA14 7F028EE4 24050002 */ li $a1, 2 +/* 05DA18 7F028EE8 27A60044 */ addiu $a2, $sp, 0x44 +/* 05DA1C 7F028EEC AE0D0040 */ sw $t5, 0x40($s0) +/* 05DA20 7F028EF0 8FAE0048 */ lw $t6, 0x48($sp) +/* 05DA24 7F028EF4 00052080 */ sll $a0, $a1, 2 +/* 05DA28 7F028EF8 00C41821 */ addu $v1, $a2, $a0 +/* 05DA2C 7F028EFC AE0E0044 */ sw $t6, 0x44($s0) +/* 05DA30 7F028F00 8C6F0000 */ lw $t7, ($v1) +/* 05DA34 7F028F04 02041021 */ addu $v0, $s0, $a0 +/* 05DA38 7F028F08 02002025 */ move $a0, $s0 +/* 05DA3C 7F028F0C AC4F0040 */ sw $t7, 0x40($v0) +/* 05DA40 7F028F10 8C780004 */ lw $t8, 4($v1) +/* 05DA44 7F028F14 AC580044 */ sw $t8, 0x44($v0) +/* 05DA48 7F028F18 8C790008 */ lw $t9, 8($v1) +/* 05DA4C 7F028F1C AC590048 */ sw $t9, 0x48($v0) +/* 05DA50 7F028F20 8C68000C */ lw $t0, 0xc($v1) +/* 05DA54 7F028F24 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05DA58 7F028F28 AC48004C */ sw $t0, 0x4c($v0) +/* 05DA5C 7F028F2C A2000008 */ sb $zero, 8($s0) +/* 05DA60 7F028F30 8FA90028 */ lw $t1, 0x28($sp) +/* 05DA64 7F028F34 55200004 */ bnezl $t1, .L7F028F48 +/* 05DA68 7F028F38 02002025 */ move $a0, $s0 +/* 05DA6C 7F028F3C 0FC0A368 */ jal play_hit_soundeffect_and_proper_volume +/* 05DA70 7F028F40 02002025 */ move $a0, $s0 +/* 05DA74 7F028F44 02002025 */ move $a0, $s0 +.L7F028F48: +/* 05DA78 7F028F48 27A50034 */ addiu $a1, $sp, 0x34 +/* 05DA7C 7F028F4C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05DA80 7F028F50 27A60030 */ addiu $a2, $sp, 0x30 +/* 05DA84 7F028F54 8FAA0064 */ lw $t2, 0x64($sp) +/* 05DA88 7F028F58 02002025 */ move $a0, $s0 +/* 05DA8C 7F028F5C 27A50034 */ addiu $a1, $sp, 0x34 +/* 05DA90 7F028F60 914B0001 */ lbu $t3, 1($t2) +/* 05DA94 7F028F64 316C0002 */ andi $t4, $t3, 2 +/* 05DA98 7F028F68 15800008 */ bnez $t4, .L7F028F8C +/* 05DA9C 7F028F6C 00000000 */ nop +/* 05DAA0 7F028F70 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 05DAA4 7F028F74 8FA60030 */ lw $a2, 0x30($sp) +/* 05DAA8 7F028F78 10400004 */ beqz $v0, .L7F028F8C +/* 05DAAC 7F028F7C 02002025 */ move $a0, $s0 +/* 05DAB0 7F028F80 2605005C */ addiu $a1, $s0, 0x5c +/* 05DAB4 7F028F84 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05DAB8 7F028F88 27A60034 */ addiu $a2, $sp, 0x34 +.L7F028F8C: +/* 05DABC 7F028F8C 10000002 */ b .L7F028F98 +/* 05DAC0 7F028F90 24020001 */ li $v0, 1 +.L7F028F94: +/* 05DAC4 7F028F94 00001025 */ move $v0, $zero +.L7F028F98: +/* 05DAC8 7F028F98 8FBF001C */ lw $ra, 0x1c($sp) +/* 05DACC 7F028F9C 8FB00018 */ lw $s0, 0x18($sp) +/* 05DAD0 7F028FA0 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05DAD4 7F028FA4 03E00008 */ jr $ra +/* 05DAD8 7F028FA8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028FAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028FAC +/* 05DADC 7F028FAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05DAE0 7F028FB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05DAE4 7F028FB4 AFA40030 */ sw $a0, 0x30($sp) +/* 05DAE8 7F028FB8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05DAEC 7F028FBC 24050001 */ li $a1, 1 +/* 05DAF0 7F028FC0 8FA40030 */ lw $a0, 0x30($sp) +/* 05DAF4 7F028FC4 00002825 */ move $a1, $zero +/* 05DAF8 7F028FC8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05DAFC 7F028FCC AFA2002C */ sw $v0, 0x2c($sp) +/* 05DB00 7F028FD0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05DB04 7F028FD4 00402825 */ move $a1, $v0 +/* 05DB08 7F028FD8 10E00003 */ beqz $a3, .L7F028FE8 +/* 05DB0C 7F028FDC 00000000 */ nop +/* 05DB10 7F028FE0 14400005 */ bnez $v0, .L7F028FF8 +/* 05DB14 7F028FE4 00000000 */ nop +.L7F028FE8: +/* 05DB18 7F028FE8 14E00008 */ bnez $a3, .L7F02900C +/* 05DB1C 7F028FEC 00E02025 */ move $a0, $a3 +/* 05DB20 7F028FF0 54400007 */ bnezl $v0, .L7F029010 +/* 05DB24 7F028FF4 AFA50028 */ sw $a1, 0x28($sp) +.L7F028FF8: +/* 05DB28 7F028FF8 0C002914 */ jal get_random_value +/* 05DB2C 7F028FFC AFA00020 */ sw $zero, 0x20($sp) +/* 05DB30 7F029000 8FA30020 */ lw $v1, 0x20($sp) +/* 05DB34 7F029004 10000011 */ b .L7F02904C +/* 05DB38 7F029008 30460001 */ andi $a2, $v0, 1 +.L7F02900C: +/* 05DB3C 7F02900C AFA50028 */ sw $a1, 0x28($sp) +.L7F029010: +/* 05DB40 7F029010 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05DB44 7F029014 AFA7002C */ sw $a3, 0x2c($sp) +/* 05DB48 7F029018 8FA50028 */ lw $a1, 0x28($sp) +/* 05DB4C 7F02901C 14400006 */ bnez $v0, .L7F029038 +/* 05DB50 7F029020 8FA7002C */ lw $a3, 0x2c($sp) +/* 05DB54 7F029024 00A02025 */ move $a0, $a1 +/* 05DB58 7F029028 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05DB5C 7F02902C AFA7002C */ sw $a3, 0x2c($sp) +/* 05DB60 7F029030 10400004 */ beqz $v0, .L7F029044 +/* 05DB64 7F029034 8FA7002C */ lw $a3, 0x2c($sp) +.L7F029038: +/* 05DB68 7F029038 00001825 */ move $v1, $zero +/* 05DB6C 7F02903C 10000003 */ b .L7F02904C +/* 05DB70 7F029040 0007302B */ sltu $a2, $zero, $a3 +.L7F029044: +/* 05DB74 7F029044 24030001 */ li $v1, 1 +/* 05DB78 7F029048 0007302B */ sltu $a2, $zero, $a3 +.L7F02904C: +/* 05DB7C 7F02904C 10600012 */ beqz $v1, .L7F029098 +/* 05DB80 7F029050 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05DB84 7F029054 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05DB88 7F029058 44812000 */ mtc1 $at, $f4 +/* 05DB8C 7F02905C 8FAE0030 */ lw $t6, 0x30($sp) +/* 05DB90 7F029060 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05DB94 7F029064 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 05DB98 7F029068 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05DB9C 7F02906C 44813000 */ mtc1 $at, $f6 +/* 05DBA0 7F029070 3C180000 */ lui $t8, %hi(0x00004018) # $t8, 0 +/* 05DBA4 7F029074 27184018 */ addiu $t8, %lo(0x00004018) # addiu $t8, $t8, 0x4018 +/* 05DBA8 7F029078 8DC4001C */ lw $a0, 0x1c($t6) +/* 05DBAC 7F02907C 24070000 */ li $a3, 0 +/* 05DBB0 7F029080 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05DBB4 7F029084 01F82821 */ addu $a1, $t7, $t8 +/* 05DBB8 7F029088 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05DBBC 7F02908C E7A60014 */ swc1 $f6, 0x14($sp) +/* 05DBC0 7F029090 10000016 */ b .L7F0290EC +/* 05DBC4 7F029094 8FBF001C */ lw $ra, 0x1c($sp) +.L7F029098: +/* 05DBC8 7F029098 44814000 */ mtc1 $at, $f8 +/* 05DBCC 7F02909C 3C018003 */ lui $at, %hi(D_80030984) +/* 05DBD0 7F0290A0 C42A0984 */ lwc1 $f10, %lo(D_80030984)($at) +/* 05DBD4 7F0290A4 3C018003 */ lui $at, %hi(D_80030990) +/* 05DBD8 7F0290A8 C4320990 */ lwc1 $f18, %lo(D_80030990)($at) +/* 05DBDC 7F0290AC 460A4402 */ mul.s $f16, $f8, $f10 +/* 05DBE0 7F0290B0 8FB90030 */ lw $t9, 0x30($sp) +/* 05DBE4 7F0290B4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05DBE8 7F0290B8 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05DBEC 7F0290BC 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 05DBF0 7F0290C0 44812000 */ mtc1 $at, $f4 +/* 05DBF4 7F0290C4 3C090001 */ lui $t1, %hi(0x00008204) # $t1, 1 +/* 05DBF8 7F0290C8 46128003 */ div.s $f0, $f16, $f18 +/* 05DBFC 7F0290CC 25298204 */ addiu $t1, %lo(0x00008204) # addiu $t1, $t1, -0x7dfc +/* 05DC00 7F0290D0 8F24001C */ lw $a0, 0x1c($t9) +/* 05DC04 7F0290D4 24070000 */ li $a3, 0 +/* 05DC08 7F0290D8 01092821 */ addu $a1, $t0, $t1 +/* 05DC0C 7F0290DC E7A40014 */ swc1 $f4, 0x14($sp) +/* 05DC10 7F0290E0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05DC14 7F0290E4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05DC18 7F0290E8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0290EC: +/* 05DC1C 7F0290EC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05DC20 7F0290F0 03E00008 */ jr $ra +/* 05DC24 7F0290F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void set_actor_on_path(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DF8 +.word 0x461c4000 /*10000.0*/ +.text +glabel set_actor_on_path +/* 05DC28 7F0290F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05DC2C 7F0290FC AFBF001C */ sw $ra, 0x1c($sp) +/* 05DC30 7F029100 AFB00018 */ sw $s0, 0x18($sp) +/* 05DC34 7F029104 AFA5002C */ sw $a1, 0x2c($sp) +/* 05DC38 7F029108 8CA80000 */ lw $t0, ($a1) +/* 05DC3C 7F02910C 00808025 */ move $s0, $a0 +/* 05DC40 7F029110 240CFFFF */ li $t4, -1 +/* 05DC44 7F029114 8D0F0000 */ lw $t7, ($t0) +/* 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(ptr_setup_path_tbl) +/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 05DC5C 7F02912C 3C018005 */ lui $at, %hi(D_80051DF8) +/* 05DC60 7F029130 C42C1DF8 */ lwc1 $f12, %lo(D_80051DF8)($at) +/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(ptr_setup_path_tbl)($t1) +/* 05DC6C 7F02913C 240B002C */ li $t3, 44 +/* 05DC70 7F029140 0006C080 */ sll $t8, $a2, 2 +.L7F029144: +/* 05DC74 7F029144 01181021 */ addu $v0, $t0, $t8 +/* 05DC78 7F029148 8C590000 */ lw $t9, ($v0) +/* 05DC7C 7F02914C 00196900 */ sll $t5, $t9, 4 +/* 05DC80 7F029150 01A91821 */ addu $v1, $t5, $t1 +/* 05DC84 7F029154 8C6E0000 */ lw $t6, ($v1) +/* 05DC88 7F029158 01CB0019 */ multu $t6, $t3 +/* 05DC8C 7F02915C 00007812 */ mflo $t7 +/* 05DC90 7F029160 01EA2021 */ addu $a0, $t7, $t2 +/* 05DC94 7F029164 8C850028 */ lw $a1, 0x28($a0) +/* 05DC98 7F029168 50A00015 */ beql $a1, $zero, .L7F0291C0 +/* 05DC9C 7F02916C 24C60001 */ addiu $a2, $a2, 1 +/* 05DCA0 7F029170 8CF80014 */ lw $t8, 0x14($a3) +/* 05DCA4 7F029174 57050012 */ bnel $t8, $a1, .L7F0291C0 +/* 05DCA8 7F029178 24C60001 */ addiu $a2, $a2, 1 +/* 05DCAC 7F02917C C4840000 */ lwc1 $f4, ($a0) +/* 05DCB0 7F029180 C4E60008 */ lwc1 $f6, 8($a3) +/* 05DCB4 7F029184 C4880008 */ lwc1 $f8, 8($a0) +/* 05DCB8 7F029188 C4EA0010 */ lwc1 $f10, 0x10($a3) +/* 05DCBC 7F02918C 46062001 */ sub.s $f0, $f4, $f6 +/* 05DCC0 7F029190 460A4081 */ sub.s $f2, $f8, $f10 +/* 05DCC4 7F029194 46000402 */ mul.s $f16, $f0, $f0 +/* 05DCC8 7F029198 00000000 */ nop +/* 05DCCC 7F02919C 46021482 */ mul.s $f18, $f2, $f2 +/* 05DCD0 7F0291A0 46128100 */ add.s $f4, $f16, $f18 +/* 05DCD4 7F0291A4 460C203C */ c.lt.s $f4, $f12 +/* 05DCD8 7F0291A8 00000000 */ nop +/* 05DCDC 7F0291AC 45000003 */ bc1f .L7F0291BC +/* 05DCE0 7F0291B0 00000000 */ nop +/* 05DCE4 7F0291B4 10000007 */ b .L7F0291D4 +/* 05DCE8 7F0291B8 00C06025 */ move $t4, $a2 +.L7F0291BC: +/* 05DCEC 7F0291BC 24C60001 */ addiu $a2, $a2, 1 +.L7F0291C0: +/* 05DCF0 7F0291C0 0006C880 */ sll $t9, $a2, 2 +/* 05DCF4 7F0291C4 01196821 */ addu $t5, $t0, $t9 +/* 05DCF8 7F0291C8 8DAE0000 */ lw $t6, ($t5) +/* 05DCFC 7F0291CC 05C3FFDD */ bgezl $t6, .L7F029144 +/* 05DD00 7F0291D0 0006C080 */ sll $t8, $a2, 2 +.L7F0291D4: +/* 05DD04 7F0291D4 05810002 */ bgez $t4, .L7F0291E0 +/* 05DD08 7F0291D8 02002025 */ move $a0, $s0 +/* 05DD0C 7F0291DC 00006025 */ move $t4, $zero +.L7F0291E0: +/* 05DD10 7F0291E0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05DD14 7F0291E4 AFAC0020 */ sw $t4, 0x20($sp) +/* 05DD18 7F0291E8 8FAC0020 */ lw $t4, 0x20($sp) +/* 05DD1C 7F0291EC 240F000E */ li $t7, 14 +/* 05DD20 7F0291F0 A20F0007 */ sb $t7, 7($s0) +/* 05DD24 7F0291F4 8FB8002C */ lw $t8, 0x2c($sp) +/* 05DD28 7F0291F8 24190001 */ li $t9, 1 +/* 05DD2C 7F0291FC AE190034 */ sw $t9, 0x34($s0) +/* 05DD30 7F029200 AE0C0030 */ sw $t4, 0x30($s0) +/* 05DD34 7F029204 0C002914 */ jal get_random_value +/* 05DD38 7F029208 AE18002C */ sw $t8, 0x2c($s0) +/* 05DD3C 7F02920C 24010064 */ li $at, 100 +/* 05DD40 7F029210 0041001B */ divu $zero, $v0, $at +/* 05DD44 7F029214 44803000 */ mtc1 $zero, $f6 +/* 05DD48 7F029218 00006810 */ mfhi $t5 +/* 05DD4C 7F02921C 240EFFFF */ li $t6, -1 +/* 05DD50 7F029220 AE0D0060 */ sw $t5, 0x60($s0) +/* 05DD54 7F029224 A200003B */ sb $zero, 0x3b($s0) +/* 05DD58 7F029228 AE0E0078 */ sw $t6, 0x78($s0) +/* 05DD5C 7F02922C 02002025 */ move $a0, $s0 +/* 05DD60 7F029230 0FC0A125 */ jal sub_GAME_7F028494 +/* 05DD64 7F029234 E606007C */ swc1 $f6, 0x7c($s0) +/* 05DD68 7F029238 A2000008 */ sb $zero, 8($s0) +/* 05DD6C 7F02923C 0FC0A3EB */ jal sub_GAME_7F028FAC +/* 05DD70 7F029240 02002025 */ move $a0, $s0 +/* 05DD74 7F029244 0FC0A11D */ jal sub_GAME_7F028474 +/* 05DD78 7F029248 02002025 */ move $a0, $s0 +/* 05DD7C 7F02924C 8E0F0018 */ lw $t7, 0x18($s0) +/* 05DD80 7F029250 02002025 */ move $a0, $s0 +/* 05DD84 7F029254 00402825 */ move $a1, $v0 +/* 05DD88 7F029258 91F80001 */ lbu $t8, 1($t7) +/* 05DD8C 7F02925C 33190002 */ andi $t9, $t8, 2 +/* 05DD90 7F029260 57200009 */ bnezl $t9, .L7F029288 +/* 05DD94 7F029264 8FBF001C */ lw $ra, 0x1c($sp) +/* 05DD98 7F029268 0FC09F9C */ jal sub_GAME_7F027E70 +/* 05DD9C 7F02926C AFA20024 */ sw $v0, 0x24($sp) +/* 05DDA0 7F029270 10400004 */ beqz $v0, .L7F029284 +/* 05DDA4 7F029274 8FA60024 */ lw $a2, 0x24($sp) +/* 05DDA8 7F029278 02002025 */ move $a0, $s0 +/* 05DDAC 7F02927C 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05DDB0 7F029280 26050038 */ addiu $a1, $s0, 0x38 +.L7F029284: +/* 05DDB4 7F029284 8FBF001C */ lw $ra, 0x1c($sp) +.L7F029288: +/* 05DDB8 7F029288 8FB00018 */ lw $s0, 0x18($sp) +/* 05DDBC 7F02928C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05DDC0 7F029290 03E00008 */ jr $ra +/* 05DDC4 7F029294 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void update_GUARDdata_timer_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel update_GUARDdata_timer_to_current +/* 05DDC8 7F029298 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05DDCC 7F02929C 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05DDD0 7F0292A0 03E00008 */ jr $ra +/* 05DDD4 7F0292A4 AC8E00E8 */ sw $t6, 0xe8($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0292A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0292A8 +/* 05DDD8 7F0292A8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05DDDC 7F0292AC 240E0001 */ li $t6, 1 +/* 05DDE0 7F0292B0 AFBF0034 */ sw $ra, 0x34($sp) +/* 05DDE4 7F0292B4 AFB00030 */ sw $s0, 0x30($sp) +/* 05DDE8 7F0292B8 AFA60058 */ sw $a2, 0x58($sp) +/* 05DDEC 7F0292BC AFA0004C */ sw $zero, 0x4c($sp) +/* 05DDF0 7F0292C0 AFAE0048 */ sw $t6, 0x48($sp) +/* 05DDF4 7F0292C4 808F0007 */ lb $t7, 7($a0) +/* 05DDF8 7F0292C8 24010008 */ li $at, 8 +/* 05DDFC 7F0292CC 00A08025 */ move $s0, $a1 +/* 05DE00 7F0292D0 15E10003 */ bne $t7, $at, .L7F0292E0 +/* 05DE04 7F0292D4 24090001 */ li $t1, 1 +/* 05DE08 7F0292D8 8C98004C */ lw $t8, 0x4c($a0) +/* 05DE0C 7F0292DC AFB80048 */ sw $t8, 0x48($sp) +.L7F0292E0: +/* 05DE10 7F0292E0 8FB90048 */ lw $t9, 0x48($sp) +/* 05DE14 7F0292E4 8FAA0058 */ lw $t2, 0x58($sp) +/* 05DE18 7F0292E8 27A70040 */ addiu $a3, $sp, 0x40 +/* 05DE1C 7F0292EC 33280002 */ andi $t0, $t9, 2 +/* 05DE20 7F0292F0 51000004 */ beql $t0, $zero, .L7F029304 +/* 05DE24 7F0292F4 AFAA0044 */ sw $t2, 0x44($sp) +/* 05DE28 7F0292F8 1000006B */ b .L7F0294A8 +/* 05DE2C 7F0292FC AFA9004C */ sw $t1, 0x4c($sp) +/* 05DE30 7F029300 AFAA0044 */ sw $t2, 0x44($sp) +.L7F029304: +/* 05DE34 7F029304 8C860050 */ lw $a2, 0x50($a0) +/* 05DE38 7F029308 AFA40050 */ sw $a0, 0x50($sp) +/* 05DE3C 7F02930C 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 05DE40 7F029310 8FA50048 */ lw $a1, 0x48($sp) +/* 05DE44 7F029314 8FA40050 */ lw $a0, 0x50($sp) +/* 05DE48 7F029318 00002825 */ move $a1, $zero +/* 05DE4C 7F02931C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05DE50 7F029320 AFA2003C */ sw $v0, 0x3c($sp) +/* 05DE54 7F029324 8FA20048 */ lw $v0, 0x48($sp) +/* 05DE58 7F029328 8FA3003C */ lw $v1, 0x3c($sp) +/* 05DE5C 7F02932C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05DE60 7F029330 304B0001 */ andi $t3, $v0, 1 +/* 05DE64 7F029334 11600029 */ beqz $t3, .L7F0293DC +/* 05DE68 7F029338 30480004 */ andi $t0, $v0, 4 +/* 05DE6C 7F02933C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05DE70 7F029340 00002825 */ move $a1, $zero +/* 05DE74 7F029344 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05DE78 7F029348 0FC2280F */ jal sub_GAME_7F08A03C +/* 05DE7C 7F02934C AFA3003C */ sw $v1, 0x3c($sp) +/* 05DE80 7F029350 0FC227DD */ jal get_invisible_to_guards_flag +/* 05DE84 7F029354 00000000 */ nop +/* 05DE88 7F029358 10400019 */ beqz $v0, .L7F0293C0 +/* 05DE8C 7F02935C 8FA3003C */ lw $v1, 0x3c($sp) +/* 05DE90 7F029360 C4640008 */ lwc1 $f4, 8($v1) +/* 05DE94 7F029364 8E050000 */ lw $a1, ($s0) +/* 05DE98 7F029368 8E060008 */ lw $a2, 8($s0) +/* 05DE9C 7F02936C 8C670000 */ lw $a3, ($v1) +/* 05DEA0 7F029370 240D011B */ li $t5, 283 +/* 05DEA4 7F029374 AFAD0014 */ sw $t5, 0x14($sp) +/* 05DEA8 7F029378 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05DEAC 7F02937C C6000004 */ lwc1 $f0, 4($s0) +/* 05DEB0 7F029380 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DEB4 7F029384 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DEB8 7F029388 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DEBC 7F02938C C4620004 */ lwc1 $f2, 4($v1) +/* 05DEC0 7F029390 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DEC4 7F029394 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DEC8 7F029398 E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DECC 7F02939C 10400008 */ beqz $v0, .L7F0293C0 +/* 05DED0 7F0293A0 8FAE0044 */ lw $t6, 0x44($sp) +/* 05DED4 7F0293A4 8FAF0040 */ lw $t7, 0x40($sp) +/* 05DED8 7F0293A8 15CF0005 */ bne $t6, $t7, .L7F0293C0 +/* 05DEDC 7F0293AC 00000000 */ nop +/* 05DEE0 7F0293B0 0FC0A4A6 */ jal update_GUARDdata_timer_to_current +/* 05DEE4 7F0293B4 8FA40050 */ lw $a0, 0x50($sp) +/* 05DEE8 7F0293B8 24180001 */ li $t8, 1 +/* 05DEEC 7F0293BC AFB8004C */ sw $t8, 0x4c($sp) +.L7F0293C0: +/* 05DEF0 7F0293C0 3C198008 */ lui $t9, %hi(pPlayer) +/* 05DEF4 7F0293C4 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 05DEF8 7F0293C8 24050001 */ li $a1, 1 +/* 05DEFC 7F0293CC 0FC2280F */ jal sub_GAME_7F08A03C +/* 05DF00 7F0293D0 8F2400A8 */ lw $a0, 0xa8($t9) +/* 05DF04 7F0293D4 10000032 */ b .L7F0294A0 +/* 05DF08 7F0293D8 8FA40050 */ lw $a0, 0x50($sp) +.L7F0293DC: +/* 05DF0C 7F0293DC 11000018 */ beqz $t0, .L7F029440 +/* 05DF10 7F0293E0 304D0008 */ andi $t5, $v0, 8 +/* 05DF14 7F0293E4 C4660008 */ lwc1 $f6, 8($v1) +/* 05DF18 7F0293E8 8E050000 */ lw $a1, ($s0) +/* 05DF1C 7F0293EC 8E060008 */ lw $a2, 8($s0) +/* 05DF20 7F0293F0 8C670000 */ lw $a3, ($v1) +/* 05DF24 7F0293F4 24090117 */ li $t1, 279 +/* 05DF28 7F0293F8 AFA90014 */ sw $t1, 0x14($sp) +/* 05DF2C 7F0293FC E7A60010 */ swc1 $f6, 0x10($sp) +/* 05DF30 7F029400 C6000004 */ lwc1 $f0, 4($s0) +/* 05DF34 7F029404 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DF38 7F029408 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DF3C 7F02940C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DF40 7F029410 C4620004 */ lwc1 $f2, 4($v1) +/* 05DF44 7F029414 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DF48 7F029418 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DF4C 7F02941C E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DF50 7F029420 1040001E */ beqz $v0, .L7F02949C +/* 05DF54 7F029424 8FAA0044 */ lw $t2, 0x44($sp) +/* 05DF58 7F029428 8FAB0040 */ lw $t3, 0x40($sp) +/* 05DF5C 7F02942C 240C0001 */ li $t4, 1 +/* 05DF60 7F029430 554B001B */ bnel $t2, $t3, .L7F0294A0 +/* 05DF64 7F029434 8FA40050 */ lw $a0, 0x50($sp) +/* 05DF68 7F029438 10000018 */ b .L7F02949C +/* 05DF6C 7F02943C AFAC004C */ sw $t4, 0x4c($sp) +.L7F029440: +/* 05DF70 7F029440 11A00016 */ beqz $t5, .L7F02949C +/* 05DF74 7F029444 240E011F */ li $t6, 287 +/* 05DF78 7F029448 C4680008 */ lwc1 $f8, 8($v1) +/* 05DF7C 7F02944C 8E050000 */ lw $a1, ($s0) +/* 05DF80 7F029450 8E060008 */ lw $a2, 8($s0) +/* 05DF84 7F029454 8C670000 */ lw $a3, ($v1) +/* 05DF88 7F029458 AFAE0014 */ sw $t6, 0x14($sp) +/* 05DF8C 7F02945C E7A80010 */ swc1 $f8, 0x10($sp) +/* 05DF90 7F029460 C6000004 */ lwc1 $f0, 4($s0) +/* 05DF94 7F029464 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DF98 7F029468 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DF9C 7F02946C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DFA0 7F029470 C4620004 */ lwc1 $f2, 4($v1) +/* 05DFA4 7F029474 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DFA8 7F029478 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DFAC 7F02947C E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DFB0 7F029480 10400006 */ beqz $v0, .L7F02949C +/* 05DFB4 7F029484 8FAF0044 */ lw $t7, 0x44($sp) +/* 05DFB8 7F029488 8FB80040 */ lw $t8, 0x40($sp) +/* 05DFBC 7F02948C 24190001 */ li $t9, 1 +/* 05DFC0 7F029490 55F80003 */ bnel $t7, $t8, .L7F0294A0 +/* 05DFC4 7F029494 8FA40050 */ lw $a0, 0x50($sp) +/* 05DFC8 7F029498 AFB9004C */ sw $t9, 0x4c($sp) +.L7F02949C: +/* 05DFCC 7F02949C 8FA40050 */ lw $a0, 0x50($sp) +.L7F0294A0: +/* 05DFD0 7F0294A0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05DFD4 7F0294A4 24050001 */ li $a1, 1 +.L7F0294A8: +/* 05DFD8 7F0294A8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05DFDC 7F0294AC 8FA2004C */ lw $v0, 0x4c($sp) +/* 05DFE0 7F0294B0 8FB00030 */ lw $s0, 0x30($sp) +/* 05DFE4 7F0294B4 03E00008 */ jr $ra +/* 05DFE8 7F0294B8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0294BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0294BC +/* 05DFEC 7F0294BC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05DFF0 7F0294C0 AFBF0034 */ sw $ra, 0x34($sp) +/* 05DFF4 7F0294C4 AFB00030 */ sw $s0, 0x30($sp) +/* 05DFF8 7F0294C8 00808025 */ move $s0, $a0 +/* 05DFFC 7F0294CC 0FC227DD */ jal get_invisible_to_guards_flag +/* 05E000 7F0294D0 AFA0004C */ sw $zero, 0x4c($sp) +/* 05E004 7F0294D4 5040003A */ beql $v0, $zero, .L7F0295C0 +/* 05E008 7F0294D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05E00C 7F0294DC 8E0E0018 */ lw $t6, 0x18($s0) +/* 05E010 7F0294E0 0FC225E6 */ jal get_curplayer_positiondata +/* 05E014 7F0294E4 AFAE0048 */ sw $t6, 0x48($sp) +/* 05E018 7F0294E8 AFA20044 */ sw $v0, 0x44($sp) +/* 05E01C 7F0294EC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 05E020 7F0294F0 44813000 */ mtc1 $at, $f6 +/* 05E024 7F0294F4 C6040028 */ lwc1 $f4, 0x28($s0) +/* 05E028 7F0294F8 02002025 */ move $a0, $s0 +/* 05E02C 7F0294FC 00002825 */ move $a1, $zero +/* 05E030 7F029500 46062201 */ sub.s $f8, $f4, $f6 +/* 05E034 7F029504 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E038 7F029508 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 05E03C 7F02950C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 05E040 7F029510 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 05E044 7F029514 00002825 */ move $a1, $zero +/* 05E048 7F029518 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E04C 7F02951C 8DE400A8 */ lw $a0, 0xa8($t7) +/* 05E050 7F029520 8FA20048 */ lw $v0, 0x48($sp) +/* 05E054 7F029524 8FA30044 */ lw $v1, 0x44($sp) +/* 05E058 7F029528 C7A0003C */ lwc1 $f0, 0x3c($sp) +/* 05E05C 7F02952C 8C580014 */ lw $t8, 0x14($v0) +/* 05E060 7F029530 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E064 7F029534 44819000 */ mtc1 $at, $f18 +/* 05E068 7F029538 AFB80040 */ sw $t8, 0x40($sp) +/* 05E06C 7F02953C C46A0010 */ lwc1 $f10, 0x10($v1) +/* 05E070 7F029540 8C460010 */ lw $a2, 0x10($v0) +/* 05E074 7F029544 8C450008 */ lw $a1, 8($v0) +/* 05E078 7F029548 8C670008 */ lw $a3, 8($v1) +/* 05E07C 7F02954C 44808000 */ mtc1 $zero, $f16 +/* 05E080 7F029550 2419011B */ li $t9, 283 +/* 05E084 7F029554 AFB90014 */ sw $t9, 0x14($sp) +/* 05E088 7F029558 27A40040 */ addiu $a0, $sp, 0x40 +/* 05E08C 7F02955C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E090 7F029560 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E094 7F029564 E7B20024 */ swc1 $f18, 0x24($sp) +/* 05E098 7F029568 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05E09C 7F02956C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E0A0 7F029570 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05E0A4 7F029574 10400009 */ beqz $v0, .L7F02959C +/* 05E0A8 7F029578 8FA90044 */ lw $t1, 0x44($sp) +/* 05E0AC 7F02957C 8FA80040 */ lw $t0, 0x40($sp) +/* 05E0B0 7F029580 8D2A0014 */ lw $t2, 0x14($t1) +/* 05E0B4 7F029584 550A0006 */ bnel $t0, $t2, .L7F0295A0 +/* 05E0B8 7F029588 02002025 */ move $a0, $s0 +/* 05E0BC 7F02958C 0FC0A4A6 */ jal update_GUARDdata_timer_to_current +/* 05E0C0 7F029590 02002025 */ move $a0, $s0 +/* 05E0C4 7F029594 240B0001 */ li $t3, 1 +/* 05E0C8 7F029598 AFAB004C */ sw $t3, 0x4c($sp) +.L7F02959C: +/* 05E0CC 7F02959C 02002025 */ move $a0, $s0 +.L7F0295A0: +/* 05E0D0 7F0295A0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E0D4 7F0295A4 24050001 */ li $a1, 1 +/* 05E0D8 7F0295A8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05E0DC 7F0295AC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05E0E0 7F0295B0 24050001 */ li $a1, 1 +/* 05E0E4 7F0295B4 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E0E8 7F0295B8 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05E0EC 7F0295BC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0295C0: +/* 05E0F0 7F0295C0 8FA2004C */ lw $v0, 0x4c($sp) +/* 05E0F4 7F0295C4 8FB00030 */ lw $s0, 0x30($sp) +/* 05E0F8 7F0295C8 03E00008 */ jr $ra +/* 05E0FC 7F0295CC 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void check_if_position_in_same_room(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_position_in_same_room +/* 05E100 7F0295D0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05E104 7F0295D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 05E108 7F0295D8 AFA50044 */ sw $a1, 0x44($sp) +/* 05E10C 7F0295DC AFA60048 */ sw $a2, 0x48($sp) +/* 05E110 7F0295E0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 05E114 7F0295E4 44813000 */ mtc1 $at, $f6 +/* 05E118 7F0295E8 C4840028 */ lwc1 $f4, 0x28($a0) +/* 05E11C 7F0295EC 8C820018 */ lw $v0, 0x18($a0) +/* 05E120 7F0295F0 AFA00030 */ sw $zero, 0x30($sp) +/* 05E124 7F0295F4 46062001 */ sub.s $f0, $f4, $f6 +/* 05E128 7F0295F8 AFA40040 */ sw $a0, 0x40($sp) +/* 05E12C 7F0295FC 00002825 */ move $a1, $zero +/* 05E130 7F029600 AFA2003C */ sw $v0, 0x3c($sp) +/* 05E134 7F029604 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E138 7F029608 E7A00034 */ swc1 $f0, 0x34($sp) +/* 05E13C 7F02960C 8FA2003C */ lw $v0, 0x3c($sp) +/* 05E140 7F029610 8FA30044 */ lw $v1, 0x44($sp) +/* 05E144 7F029614 C7A00034 */ lwc1 $f0, 0x34($sp) +/* 05E148 7F029618 8C4E0014 */ lw $t6, 0x14($v0) +/* 05E14C 7F02961C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E150 7F029620 44818000 */ mtc1 $at, $f16 +/* 05E154 7F029624 AFAE0038 */ sw $t6, 0x38($sp) +/* 05E158 7F029628 C4680008 */ lwc1 $f8, 8($v1) +/* 05E15C 7F02962C 8C460010 */ lw $a2, 0x10($v0) +/* 05E160 7F029630 8C450008 */ lw $a1, 8($v0) +/* 05E164 7F029634 8C670000 */ lw $a3, ($v1) +/* 05E168 7F029638 44805000 */ mtc1 $zero, $f10 +/* 05E16C 7F02963C 240F0113 */ li $t7, 275 +/* 05E170 7F029640 AFAF0014 */ sw $t7, 0x14($sp) +/* 05E174 7F029644 27A40038 */ addiu $a0, $sp, 0x38 +/* 05E178 7F029648 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E17C 7F02964C E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E180 7F029650 E7B00024 */ swc1 $f16, 0x24($sp) +/* 05E184 7F029654 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05E188 7F029658 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E18C 7F02965C E7AA0020 */ swc1 $f10, 0x20($sp) +/* 05E190 7F029660 10400007 */ beqz $v0, .L7F029680 +/* 05E194 7F029664 24050001 */ li $a1, 1 +/* 05E198 7F029668 8FB80038 */ lw $t8, 0x38($sp) +/* 05E19C 7F02966C 8FB90048 */ lw $t9, 0x48($sp) +/* 05E1A0 7F029670 24080001 */ li $t0, 1 +/* 05E1A4 7F029674 17190002 */ bne $t8, $t9, .L7F029680 +/* 05E1A8 7F029678 00000000 */ nop +/* 05E1AC 7F02967C AFA80030 */ sw $t0, 0x30($sp) +.L7F029680: +/* 05E1B0 7F029680 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E1B4 7F029684 8FA40040 */ lw $a0, 0x40($sp) +/* 05E1B8 7F029688 8FBF002C */ lw $ra, 0x2c($sp) +/* 05E1BC 7F02968C 8FA20030 */ lw $v0, 0x30($sp) +/* 05E1C0 7F029690 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05E1C4 7F029694 03E00008 */ jr $ra +/* 05E1C8 7F029698 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02969C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DFC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E00 +.word 0x3fdf66f3 /*1.7453293*/ +glabel D_80051E04 +.word 0x4091361e /*4.5378561*/ +.text +glabel sub_GAME_7F02969C +/* 05E1CC 7F02969C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05E1D0 7F0296A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E1D4 7F0296A4 AFA40020 */ sw $a0, 0x20($sp) +/* 05E1D8 7F0296A8 AFA50024 */ sw $a1, 0x24($sp) +/* 05E1DC 7F0296AC AFA60028 */ sw $a2, 0x28($sp) +/* 05E1E0 7F0296B0 0FC1B320 */ jal getsubroty +/* 05E1E4 7F0296B4 8C84001C */ lw $a0, 0x1c($a0) +/* 05E1E8 7F0296B8 8FAF0020 */ lw $t7, 0x20($sp) +/* 05E1EC 7F0296BC 8FA30024 */ lw $v1, 0x24($sp) +/* 05E1F0 7F0296C0 8DE20018 */ lw $v0, 0x18($t7) +/* 05E1F4 7F0296C4 C4640000 */ lwc1 $f4, ($v1) +/* 05E1F8 7F0296C8 C4680008 */ lwc1 $f8, 8($v1) +/* 05E1FC 7F0296CC C4460008 */ lwc1 $f6, 8($v0) +/* 05E200 7F0296D0 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05E204 7F0296D4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E208 7F0296D8 46062301 */ sub.s $f12, $f4, $f6 +/* 05E20C 7F0296DC 0FC16A8C */ jal atan2f +/* 05E210 7F0296E0 460A4381 */ sub.s $f14, $f8, $f10 +/* 05E214 7F0296E4 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 05E218 7F0296E8 3C018005 */ lui $at, %hi(D_80051DFC) +/* 05E21C 7F0296EC 8FA40020 */ lw $a0, 0x20($sp) +/* 05E220 7F0296F0 4610003C */ c.lt.s $f0, $f16 +/* 05E224 7F0296F4 8FA50024 */ lw $a1, 0x24($sp) +/* 05E228 7F0296F8 46100301 */ sub.s $f12, $f0, $f16 +/* 05E22C 7F0296FC 45000003 */ bc1f .L7F02970C +/* 05E230 7F029700 46006086 */ mov.s $f2, $f12 +/* 05E234 7F029704 C4321DFC */ lwc1 $f18, %lo(D_80051DFC)($at) +/* 05E238 7F029708 46126080 */ add.s $f2, $f12, $f18 +.L7F02970C: +/* 05E23C 7F02970C 3C018005 */ lui $at, %hi(D_80051E00) +/* 05E240 7F029710 C4241E00 */ lwc1 $f4, %lo(D_80051E00)($at) +/* 05E244 7F029714 3C018005 */ lui $at, %hi(D_80051E04) +/* 05E248 7F029718 4604103C */ c.lt.s $f2, $f4 +/* 05E24C 7F02971C 00000000 */ nop +/* 05E250 7F029720 45010007 */ bc1t .L7F029740 +/* 05E254 7F029724 00000000 */ nop +/* 05E258 7F029728 C4261E04 */ lwc1 $f6, %lo(D_80051E04)($at) +/* 05E25C 7F02972C 00001025 */ move $v0, $zero +/* 05E260 7F029730 4602303C */ c.lt.s $f6, $f2 +/* 05E264 7F029734 00000000 */ nop +/* 05E268 7F029738 45000005 */ bc1f .L7F029750 +/* 05E26C 7F02973C 00000000 */ nop +.L7F029740: +/* 05E270 7F029740 0FC0A574 */ jal check_if_position_in_same_room +/* 05E274 7F029744 8FA60028 */ lw $a2, 0x28($sp) +/* 05E278 7F029748 10000002 */ b .L7F029754 +/* 05E27C 7F02974C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F029750: +/* 05E280 7F029750 8FBF0014 */ lw $ra, 0x14($sp) +.L7F029754: +/* 05E284 7F029754 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05E288 7F029758 03E00008 */ jr $ra +/* 05E28C 7F02975C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029760(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029760 +/* 05E290 7F029760 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05E294 7F029764 AFBF002C */ sw $ra, 0x2c($sp) +/* 05E298 7F029768 8C8E0018 */ lw $t6, 0x18($a0) +/* 05E29C 7F02976C 0FC225E6 */ jal get_curplayer_positiondata +/* 05E2A0 7F029770 AFAE003C */ sw $t6, 0x3c($sp) +/* 05E2A4 7F029774 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 05E2A8 7F029778 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 05E2AC 7F02977C AFA00030 */ sw $zero, 0x30($sp) +/* 05E2B0 7F029780 00002825 */ move $a1, $zero +/* 05E2B4 7F029784 8DE400A8 */ lw $a0, 0xa8($t7) +/* 05E2B8 7F029788 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E2BC 7F02978C AFA20038 */ sw $v0, 0x38($sp) +/* 05E2C0 7F029790 8FA30038 */ lw $v1, 0x38($sp) +/* 05E2C4 7F029794 8FA2003C */ lw $v0, 0x3c($sp) +/* 05E2C8 7F029798 24190013 */ li $t9, 19 +/* 05E2CC 7F02979C 8C780014 */ lw $t8, 0x14($v1) +/* 05E2D0 7F0297A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E2D4 7F0297A4 44814000 */ mtc1 $at, $f8 +/* 05E2D8 7F0297A8 AFB80034 */ sw $t8, 0x34($sp) +/* 05E2DC 7F0297AC C4440010 */ lwc1 $f4, 0x10($v0) +/* 05E2E0 7F0297B0 8C660010 */ lw $a2, 0x10($v1) +/* 05E2E4 7F0297B4 8C650008 */ lw $a1, 8($v1) +/* 05E2E8 7F0297B8 8C470008 */ lw $a3, 8($v0) +/* 05E2EC 7F0297BC AFB90014 */ sw $t9, 0x14($sp) +/* 05E2F0 7F0297C0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05E2F4 7F0297C4 C460000C */ lwc1 $f0, 0xc($v1) +/* 05E2F8 7F0297C8 44803000 */ mtc1 $zero, $f6 +/* 05E2FC 7F0297CC 27A40034 */ addiu $a0, $sp, 0x34 +/* 05E300 7F0297D0 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E304 7F0297D4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E308 7F0297D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E30C 7F0297DC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E310 7F0297E0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E314 7F0297E4 10400008 */ beqz $v0, .L7F029808 +/* 05E318 7F0297E8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05E31C 7F0297EC 8FA9003C */ lw $t1, 0x3c($sp) +/* 05E320 7F0297F0 8FA80034 */ lw $t0, 0x34($sp) +/* 05E324 7F0297F4 240B0001 */ li $t3, 1 +/* 05E328 7F0297F8 8D2A0014 */ lw $t2, 0x14($t1) +/* 05E32C 7F0297FC 150A0002 */ bne $t0, $t2, .L7F029808 +/* 05E330 7F029800 00000000 */ nop +/* 05E334 7F029804 AFAB0030 */ sw $t3, 0x30($sp) +.L7F029808: +/* 05E338 7F029808 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05E33C 7F02980C 24050001 */ li $a1, 1 +/* 05E340 7F029810 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E344 7F029814 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05E348 7F029818 8FBF002C */ lw $ra, 0x2c($sp) +/* 05E34C 7F02981C 8FA20030 */ lw $v0, 0x30($sp) +/* 05E350 7F029820 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05E354 7F029824 03E00008 */ jr $ra +/* 05E358 7F029828 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02982C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E08 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F02982C +/* 05E35C 7F02982C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 05E360 7F029830 AFBF0044 */ sw $ra, 0x44($sp) +/* 05E364 7F029834 AFB00040 */ sw $s0, 0x40($sp) +/* 05E368 7F029838 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 05E36C 7F02983C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 05E370 7F029840 AFA50084 */ sw $a1, 0x84($sp) +/* 05E374 7F029844 AFA60088 */ sw $a2, 0x88($sp) +/* 05E378 7F029848 8C820004 */ lw $v0, 4($a0) +/* 05E37C 7F02984C C4C40000 */ lwc1 $f4, ($a2) +/* 05E380 7F029850 3C018005 */ lui $at, %hi(D_80051E08) +/* 05E384 7F029854 C4400024 */ lwc1 $f0, 0x24($v0) +/* 05E388 7F029858 C4221E08 */ lwc1 $f2, %lo(D_80051E08)($at) +/* 05E38C 7F02985C C4C80008 */ lwc1 $f8, 8($a2) +/* 05E390 7F029860 46002182 */ mul.s $f6, $f4, $f0 +/* 05E394 7F029864 00808025 */ move $s0, $a0 +/* 05E398 7F029868 AFA0005C */ sw $zero, 0x5c($sp) +/* 05E39C 7F02986C 27A60058 */ addiu $a2, $sp, 0x58 +/* 05E3A0 7F029870 27A50050 */ addiu $a1, $sp, 0x50 +/* 05E3A4 7F029874 27A70054 */ addiu $a3, $sp, 0x54 +/* 05E3A8 7F029878 AFA2007C */ sw $v0, 0x7c($sp) +/* 05E3AC 7F02987C 46023502 */ mul.s $f20, $f6, $f2 +/* 05E3B0 7F029880 00000000 */ nop +/* 05E3B4 7F029884 46004282 */ mul.s $f10, $f8, $f0 +/* 05E3B8 7F029888 00000000 */ nop +/* 05E3BC 7F02988C 46025582 */ mul.s $f22, $f10, $f2 +/* 05E3C0 7F029890 0FC08C58 */ jal sub_GAME_7F023160 +/* 05E3C4 7F029894 00000000 */ nop +/* 05E3C8 7F029898 8FA4007C */ lw $a0, 0x7c($sp) +/* 05E3CC 7F02989C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E3D0 7F0298A0 00002825 */ move $a1, $zero +/* 05E3D4 7F0298A4 8FA20084 */ lw $v0, 0x84($sp) +/* 05E3D8 7F0298A8 C6100008 */ lwc1 $f16, 8($s0) +/* 05E3DC 7F0298AC C6120010 */ lwc1 $f18, 0x10($s0) +/* 05E3E0 7F0298B0 C4440000 */ lwc1 $f4, ($v0) +/* 05E3E4 7F0298B4 46168000 */ add.s $f0, $f16, $f22 +/* 05E3E8 7F0298B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E3EC 7F0298BC 2418001F */ li $t8, 31 +/* 05E3F0 7F0298C0 46162180 */ add.s $f6, $f4, $f22 +/* 05E3F4 7F0298C4 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 05E3F8 7F0298C8 44070000 */ mfc1 $a3, $f0 +/* 05E3FC 7F0298CC 46149081 */ sub.s $f2, $f18, $f20 +/* 05E400 7F0298D0 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E404 7F0298D4 46143200 */ add.s $f8, $f6, $f20 +/* 05E408 7F0298D8 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 05E40C 7F0298DC E7A80070 */ swc1 $f8, 0x70($sp) +/* 05E410 7F0298E0 C44A0008 */ lwc1 $f10, 8($v0) +/* 05E414 7F0298E4 44804000 */ mtc1 $zero, $f8 +/* 05E418 7F0298E8 46145401 */ sub.s $f16, $f10, $f20 +/* 05E41C 7F0298EC 44815000 */ mtc1 $at, $f10 +/* 05E420 7F0298F0 46168480 */ add.s $f18, $f16, $f22 +/* 05E424 7F0298F4 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 05E428 7F0298F8 8E0F0014 */ lw $t7, 0x14($s0) +/* 05E42C 7F0298FC AFAF0068 */ sw $t7, 0x68($sp) +/* 05E430 7F029900 8E060010 */ lw $a2, 0x10($s0) +/* 05E434 7F029904 8E050008 */ lw $a1, 8($s0) +/* 05E438 7F029908 E7A20074 */ swc1 $f2, 0x74($sp) +/* 05E43C 7F02990C E7A00078 */ swc1 $f0, 0x78($sp) +/* 05E440 7F029910 AFB80014 */ sw $t8, 0x14($sp) +/* 05E444 7F029914 E7A20010 */ swc1 $f2, 0x10($sp) +/* 05E448 7F029918 E7A40018 */ swc1 $f4, 0x18($sp) +/* 05E44C 7F02991C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 05E450 7F029920 E7A80020 */ swc1 $f8, 0x20($sp) +/* 05E454 7F029924 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E458 7F029928 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 05E45C 7F02992C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 05E460 7F029930 1040004E */ beqz $v0, .L7F029A6C +/* 05E464 7F029934 C7A20074 */ lwc1 $f2, 0x74($sp) +/* 05E468 7F029938 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E46C 7F02993C 44814000 */ mtc1 $at, $f8 +/* 05E470 7F029940 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 05E474 7F029944 C7B20058 */ lwc1 $f18, 0x58($sp) +/* 05E478 7F029948 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 05E47C 7F02994C 44803000 */ mtc1 $zero, $f6 +/* 05E480 7F029950 44050000 */ mfc1 $a1, $f0 +/* 05E484 7F029954 44061000 */ mfc1 $a2, $f2 +/* 05E488 7F029958 2419001F */ li $t9, 31 +/* 05E48C 7F02995C AFB90014 */ sw $t9, 0x14($sp) +/* 05E490 7F029960 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E494 7F029964 8FA70070 */ lw $a3, 0x70($sp) +/* 05E498 7F029968 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05E49C 7F02996C E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E4A0 7F029970 E7B20018 */ swc1 $f18, 0x18($sp) +/* 05E4A4 7F029974 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 05E4A8 7F029978 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E4AC 7F02997C E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E4B0 7F029980 1040003A */ beqz $v0, .L7F029A6C +/* 05E4B4 7F029984 8FA80084 */ lw $t0, 0x84($sp) +/* 05E4B8 7F029988 C5120000 */ lwc1 $f18, ($t0) +/* 05E4BC 7F02998C C60A0008 */ lwc1 $f10, 8($s0) +/* 05E4C0 7F029990 C6100010 */ lwc1 $f16, 0x10($s0) +/* 05E4C4 7F029994 46169101 */ sub.s $f4, $f18, $f22 +/* 05E4C8 7F029998 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E4CC 7F02999C C7B20058 */ lwc1 $f18, 0x58($sp) +/* 05E4D0 7F0299A0 46165001 */ sub.s $f0, $f10, $f22 +/* 05E4D4 7F0299A4 240A001F */ li $t2, 31 +/* 05E4D8 7F0299A8 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E4DC 7F0299AC 46142180 */ add.s $f6, $f4, $f20 +/* 05E4E0 7F0299B0 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 05E4E4 7F0299B4 44070000 */ mfc1 $a3, $f0 +/* 05E4E8 7F0299B8 46148080 */ add.s $f2, $f16, $f20 +/* 05E4EC 7F0299BC E7A60070 */ swc1 $f6, 0x70($sp) +/* 05E4F0 7F0299C0 C5080008 */ lwc1 $f8, 8($t0) +/* 05E4F4 7F0299C4 44803000 */ mtc1 $zero, $f6 +/* 05E4F8 7F0299C8 46144280 */ add.s $f10, $f8, $f20 +/* 05E4FC 7F0299CC 44814000 */ mtc1 $at, $f8 +/* 05E500 7F0299D0 46165400 */ add.s $f16, $f10, $f22 +/* 05E504 7F0299D4 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 05E508 7F0299D8 8E090014 */ lw $t1, 0x14($s0) +/* 05E50C 7F0299DC AFA90068 */ sw $t1, 0x68($sp) +/* 05E510 7F0299E0 8E060010 */ lw $a2, 0x10($s0) +/* 05E514 7F0299E4 8E050008 */ lw $a1, 8($s0) +/* 05E518 7F0299E8 E7A20074 */ swc1 $f2, 0x74($sp) +/* 05E51C 7F0299EC E7A00078 */ swc1 $f0, 0x78($sp) +/* 05E520 7F0299F0 AFAA0014 */ sw $t2, 0x14($sp) +/* 05E524 7F0299F4 E7A20010 */ swc1 $f2, 0x10($sp) +/* 05E528 7F0299F8 E7B20018 */ swc1 $f18, 0x18($sp) +/* 05E52C 7F0299FC E7A4001C */ swc1 $f4, 0x1c($sp) +/* 05E530 7F029A00 E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E534 7F029A04 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E538 7F029A08 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E53C 7F029A0C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 05E540 7F029A10 10400016 */ beqz $v0, .L7F029A6C +/* 05E544 7F029A14 C7A20074 */ lwc1 $f2, 0x74($sp) +/* 05E548 7F029A18 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E54C 7F029A1C 44813000 */ mtc1 $at, $f6 +/* 05E550 7F029A20 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 05E554 7F029A24 C7B00058 */ lwc1 $f16, 0x58($sp) +/* 05E558 7F029A28 C7B20054 */ lwc1 $f18, 0x54($sp) +/* 05E55C 7F029A2C 44802000 */ mtc1 $zero, $f4 +/* 05E560 7F029A30 44050000 */ mfc1 $a1, $f0 +/* 05E564 7F029A34 44061000 */ mfc1 $a2, $f2 +/* 05E568 7F029A38 240B001F */ li $t3, 31 +/* 05E56C 7F029A3C AFAB0014 */ sw $t3, 0x14($sp) +/* 05E570 7F029A40 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E574 7F029A44 8FA70070 */ lw $a3, 0x70($sp) +/* 05E578 7F029A48 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05E57C 7F029A4C E7A60024 */ swc1 $f6, 0x24($sp) +/* 05E580 7F029A50 E7B00018 */ swc1 $f16, 0x18($sp) +/* 05E584 7F029A54 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 05E588 7F029A58 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E58C 7F029A5C E7A40020 */ swc1 $f4, 0x20($sp) +/* 05E590 7F029A60 10400002 */ beqz $v0, .L7F029A6C +/* 05E594 7F029A64 240C0001 */ li $t4, 1 +/* 05E598 7F029A68 AFAC005C */ sw $t4, 0x5c($sp) +.L7F029A6C: +/* 05E59C 7F029A6C 8FA4007C */ lw $a0, 0x7c($sp) +/* 05E5A0 7F029A70 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E5A4 7F029A74 24050001 */ li $a1, 1 +/* 05E5A8 7F029A78 8FBF0044 */ lw $ra, 0x44($sp) +/* 05E5AC 7F029A7C 8FA2005C */ lw $v0, 0x5c($sp) +/* 05E5B0 7F029A80 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 05E5B4 7F029A84 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 05E5B8 7F029A88 8FB00040 */ lw $s0, 0x40($sp) +/* 05E5BC 7F029A8C 03E00008 */ jr $ra +/* 05E5C0 7F029A90 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029A94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029A94 +/* 05E5C4 7F029A94 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05E5C8 7F029A98 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E5CC 7F029A9C AFA5002C */ sw $a1, 0x2c($sp) +/* 05E5D0 7F029AA0 44866000 */ mtc1 $a2, $f12 +/* 05E5D4 7F029AA4 C4A40000 */ lwc1 $f4, ($a1) +/* 05E5D8 7F029AA8 C4880008 */ lwc1 $f8, 8($a0) +/* 05E5DC 7F029AAC 00A03025 */ move $a2, $a1 +/* 05E5E0 7F029AB0 460C2182 */ mul.s $f6, $f4, $f12 +/* 05E5E4 7F029AB4 46083280 */ add.s $f10, $f6, $f8 +/* 05E5E8 7F029AB8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05E5EC 7F029ABC C490000C */ lwc1 $f16, 0xc($a0) +/* 05E5F0 7F029AC0 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05E5F4 7F029AC4 C4B20008 */ lwc1 $f18, 8($a1) +/* 05E5F8 7F029AC8 C4860010 */ lwc1 $f6, 0x10($a0) +/* 05E5FC 7F029ACC 27A5001C */ addiu $a1, $sp, 0x1c +/* 05E600 7F029AD0 460C9102 */ mul.s $f4, $f18, $f12 +/* 05E604 7F029AD4 46062200 */ add.s $f8, $f4, $f6 +/* 05E608 7F029AD8 0FC0A60B */ jal sub_GAME_7F02982C +/* 05E60C 7F029ADC E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E610 7F029AE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E614 7F029AE4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05E618 7F029AE8 03E00008 */ jr $ra +/* 05E61C 7F029AEC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029AF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029AF0 +/* 05E620 7F029AF0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05E624 7F029AF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E628 7F029AF8 C4860008 */ lwc1 $f6, 8($a0) +/* 05E62C 7F029AFC C4A40000 */ lwc1 $f4, ($a1) +/* 05E630 7F029B00 44800000 */ mtc1 $zero, $f0 +/* 05E634 7F029B04 46062201 */ sub.s $f8, $f4, $f6 +/* 05E638 7F029B08 E7A00028 */ swc1 $f0, 0x28($sp) +/* 05E63C 7F029B0C E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E640 7F029B10 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 05E644 7F029B14 C4900010 */ lwc1 $f16, 0x10($a0) +/* 05E648 7F029B18 C4AA0008 */ lwc1 $f10, 8($a1) +/* 05E64C 7F029B1C 46040032 */ c.eq.s $f0, $f4 +/* 05E650 7F029B20 46105481 */ sub.s $f18, $f10, $f16 +/* 05E654 7F029B24 45000008 */ bc1f .L7F029B48 +/* 05E658 7F029B28 E7B2002C */ swc1 $f18, 0x2c($sp) +/* 05E65C 7F029B2C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 05E660 7F029B30 46020032 */ c.eq.s $f0, $f2 +/* 05E664 7F029B34 00000000 */ nop +/* 05E668 7F029B38 45020004 */ bc1fl .L7F029B4C +/* 05E66C 7F029B3C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 05E670 7F029B40 10000017 */ b .L7F029BA0 +/* 05E674 7F029B44 24020001 */ li $v0, 1 +.L7F029B48: +/* 05E678 7F029B48 C7A2002C */ lwc1 $f2, 0x2c($sp) +.L7F029B4C: +/* 05E67C 7F029B4C C7A00024 */ lwc1 $f0, 0x24($sp) +/* 05E680 7F029B50 AFA40030 */ sw $a0, 0x30($sp) +/* 05E684 7F029B54 46021182 */ mul.s $f6, $f2, $f2 +/* 05E688 7F029B58 AFA50034 */ sw $a1, 0x34($sp) +/* 05E68C 7F029B5C 46000202 */ mul.s $f8, $f0, $f0 +/* 05E690 7F029B60 0C007DF8 */ jal sqrtf +/* 05E694 7F029B64 46083300 */ add.s $f12, $f6, $f8 +/* 05E698 7F029B68 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E69C 7F029B6C 44815000 */ mtc1 $at, $f10 +/* 05E6A0 7F029B70 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 05E6A4 7F029B74 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 05E6A8 7F029B78 46005083 */ div.s $f2, $f10, $f0 +/* 05E6AC 7F029B7C 8FA40030 */ lw $a0, 0x30($sp) +/* 05E6B0 7F029B80 8FA50034 */ lw $a1, 0x34($sp) +/* 05E6B4 7F029B84 27A60024 */ addiu $a2, $sp, 0x24 +/* 05E6B8 7F029B88 46028482 */ mul.s $f18, $f16, $f2 +/* 05E6BC 7F029B8C 00000000 */ nop +/* 05E6C0 7F029B90 46022182 */ mul.s $f6, $f4, $f2 +/* 05E6C4 7F029B94 E7B20024 */ swc1 $f18, 0x24($sp) +/* 05E6C8 7F029B98 0FC0A60B */ jal sub_GAME_7F02982C +/* 05E6CC 7F029B9C E7A6002C */ swc1 $f6, 0x2c($sp) +.L7F029BA0: +/* 05E6D0 7F029BA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E6D4 7F029BA4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05E6D8 7F029BA8 03E00008 */ jr $ra +/* 05E6DC 7F029BAC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029BB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029BB0 +/* 05E6E0 7F029BB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05E6E4 7F029BB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E6E8 7F029BB8 0FC225E6 */ jal get_curplayer_positiondata +/* 05E6EC 7F029BBC AFA40018 */ sw $a0, 0x18($sp) +/* 05E6F0 7F029BC0 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05E6F4 7F029BC4 8FA40018 */ lw $a0, 0x18($sp) +/* 05E6F8 7F029BC8 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05E6FC 7F029BCC AC8E00D4 */ sw $t6, 0xd4($a0) +/* 05E700 7F029BD0 C4440008 */ lwc1 $f4, 8($v0) +/* 05E704 7F029BD4 E48400D8 */ swc1 $f4, 0xd8($a0) +/* 05E708 7F029BD8 C446000C */ lwc1 $f6, 0xc($v0) +/* 05E70C 7F029BDC E48600DC */ swc1 $f6, 0xdc($a0) +/* 05E710 7F029BE0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 05E714 7F029BE4 E48800E0 */ swc1 $f8, 0xe0($a0) +/* 05E718 7F029BE8 8C4F0014 */ lw $t7, 0x14($v0) +/* 05E71C 7F029BEC AC8F00E4 */ sw $t7, 0xe4($a0) +/* 05E720 7F029BF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E724 7F029BF4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05E728 7F029BF8 03E00008 */ jr $ra +/* 05E72C 7F029BFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029C00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029C00 +/* 05E730 7F029C00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05E734 7F029C04 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E738 7F029C08 0FC225E6 */ jal get_curplayer_positiondata +/* 05E73C 7F029C0C AFA40018 */ sw $a0, 0x18($sp) +/* 05E740 7F029C10 8FA40018 */ lw $a0, 0x18($sp) +/* 05E744 7F029C14 3C188005 */ lui $t8, %hi(global_timer) +/* 05E748 7F029C18 948E0012 */ lhu $t6, 0x12($a0) +/* 05E74C 7F029C1C 35CF0002 */ ori $t7, $t6, 2 +/* 05E750 7F029C20 A48F0012 */ sh $t7, 0x12($a0) +/* 05E754 7F029C24 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 05E758 7F029C28 AC9800F0 */ sw $t8, 0xf0($a0) +/* 05E75C 7F029C2C C4440008 */ lwc1 $f4, 8($v0) +/* 05E760 7F029C30 E48400D8 */ swc1 $f4, 0xd8($a0) +/* 05E764 7F029C34 C446000C */ lwc1 $f6, 0xc($v0) +/* 05E768 7F029C38 E48600DC */ swc1 $f6, 0xdc($a0) +/* 05E76C 7F029C3C C4480010 */ lwc1 $f8, 0x10($v0) +/* 05E770 7F029C40 E48800E0 */ swc1 $f8, 0xe0($a0) +/* 05E774 7F029C44 8C590014 */ lw $t9, 0x14($v0) +/* 05E778 7F029C48 AC9900E4 */ sw $t9, 0xe4($a0) +/* 05E77C 7F029C4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E780 7F029C50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05E784 7F029C54 03E00008 */ jr $ra +/* 05E788 7F029C58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_stationary(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_stationary +/* 05E78C 7F029C5C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05E790 7F029C60 AFBF001C */ sw $ra, 0x1c($sp) +/* 05E794 7F029C64 AFB00018 */ sw $s0, 0x18($sp) +/* 05E798 7F029C68 80820007 */ lb $v0, 7($a0) +/* 05E79C 7F029C6C 24010001 */ li $at, 1 +/* 05E7A0 7F029C70 00808025 */ move $s0, $a0 +/* 05E7A4 7F029C74 5441000A */ bnel $v0, $at, .L7F029CA0 +/* 05E7A8 7F029C78 24010003 */ li $at, 3 +/* 05E7AC 7F029C7C 8C8E002C */ lw $t6, 0x2c($a0) +/* 05E7B0 7F029C80 55C00007 */ bnezl $t6, .L7F029CA0 +/* 05E7B4 7F029C84 24010003 */ li $at, 3 +/* 05E7B8 7F029C88 8C8F0038 */ lw $t7, 0x38($a0) +/* 05E7BC 7F029C8C 55E00004 */ bnezl $t7, .L7F029CA0 +/* 05E7C0 7F029C90 24010003 */ li $at, 3 +/* 05E7C4 7F029C94 10000031 */ b .L7F029D5C +/* 05E7C8 7F029C98 24020001 */ li $v0, 1 +/* 05E7CC 7F029C9C 24010003 */ li $at, 3 +.L7F029CA0: +/* 05E7D0 7F029CA0 54410029 */ bnel $v0, $at, .L7F029D48 +/* 05E7D4 7F029CA4 2401000E */ li $at, 14 +/* 05E7D8 7F029CA8 8E180034 */ lw $t8, 0x34($s0) +/* 05E7DC 7F029CAC 17000023 */ bnez $t8, .L7F029D3C +/* 05E7E0 7F029CB0 00000000 */ nop +/* 05E7E4 7F029CB4 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 05E7E8 7F029CB8 8E04001C */ lw $a0, 0x1c($s0) +/* 05E7EC 7F029CBC 44802000 */ mtc1 $zero, $f4 +/* 05E7F0 7F029CC0 00000000 */ nop +/* 05E7F4 7F029CC4 4600203E */ c.le.s $f4, $f0 +/* 05E7F8 7F029CC8 00000000 */ nop +/* 05E7FC 7F029CCC 4500000B */ bc1f .L7F029CFC +/* 05E800 7F029CD0 00000000 */ nop +/* 05E804 7F029CD4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05E808 7F029CD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05E80C 7F029CDC E7A00024 */ swc1 $f0, 0x24($sp) +/* 05E810 7F029CE0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 05E814 7F029CE4 8E04001C */ lw $a0, 0x1c($s0) +/* 05E818 7F029CE8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 05E81C 7F029CEC 4606003E */ c.le.s $f0, $f6 +/* 05E820 7F029CF0 00000000 */ nop +/* 05E824 7F029CF4 45010011 */ bc1t .L7F029D3C +/* 05E828 7F029CF8 00000000 */ nop +.L7F029CFC: +/* 05E82C 7F029CFC 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 05E830 7F029D00 8E04001C */ lw $a0, 0x1c($s0) +/* 05E834 7F029D04 44804000 */ mtc1 $zero, $f8 +/* 05E838 7F029D08 00000000 */ nop +/* 05E83C 7F029D0C 4608003C */ c.lt.s $f0, $f8 +/* 05E840 7F029D10 00000000 */ nop +/* 05E844 7F029D14 45020011 */ bc1fl .L7F029D5C +/* 05E848 7F029D18 00001025 */ move $v0, $zero +/* 05E84C 7F029D1C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05E850 7F029D20 8E04001C */ lw $a0, 0x1c($s0) +/* 05E854 7F029D24 44805000 */ mtc1 $zero, $f10 +/* 05E858 7F029D28 00000000 */ nop +/* 05E85C 7F029D2C 460A003E */ c.le.s $f0, $f10 +/* 05E860 7F029D30 00000000 */ nop +/* 05E864 7F029D34 45020009 */ bc1fl .L7F029D5C +/* 05E868 7F029D38 00001025 */ move $v0, $zero +.L7F029D3C: +/* 05E86C 7F029D3C 10000007 */ b .L7F029D5C +/* 05E870 7F029D40 24020001 */ li $v0, 1 +/* 05E874 7F029D44 2401000E */ li $at, 14 +.L7F029D48: +/* 05E878 7F029D48 54410004 */ bnel $v0, $at, .L7F029D5C +/* 05E87C 7F029D4C 00001025 */ move $v0, $zero +/* 05E880 7F029D50 10000002 */ b .L7F029D5C +/* 05E884 7F029D54 24020001 */ li $v0, 1 +/* 05E888 7F029D58 00001025 */ move $v0, $zero +.L7F029D5C: +/* 05E88C 7F029D5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 05E890 7F029D60 8FB00018 */ lw $s0, 0x18($sp) +/* 05E894 7F029D64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05E898 7F029D68 03E00008 */ jr $ra +/* 05E89C 7F029D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029D70(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E10 +.word 0x3ff5be0b /*1.9198622*/ +glabel D_80051E14 +.word 0x408ba058 /*4.3633232*/ +glabel D_80051E18 +.word 0x471c4000 /*40000.0*/ +glabel D_80051E1C +.word 0x3ff5be0b /*1.9198622*/ +glabel D_80051E20 +.word 0x408ba058 /*4.3633232*/ +glabel D_80051E24 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E28 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80051E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E34 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F029D70 +/* 05E8A0 7F029D70 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 05E8A4 7F029D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E8A8 7F029D78 AFA40058 */ sw $a0, 0x58($sp) +/* 05E8AC 7F029D7C 8C830018 */ lw $v1, 0x18($a0) +/* 05E8B0 7F029D80 0FC225E6 */ jal get_curplayer_positiondata +/* 05E8B4 7F029D84 AFA30054 */ sw $v1, 0x54($sp) +/* 05E8B8 7F029D88 8FAF0058 */ lw $t7, 0x58($sp) +/* 05E8BC 7F029D8C 8DE4001C */ lw $a0, 0x1c($t7) +/* 05E8C0 7F029D90 0FC1B320 */ jal getsubroty +/* 05E8C4 7F029D94 AFA20050 */ sw $v0, 0x50($sp) +/* 05E8C8 7F029D98 8FA30054 */ lw $v1, 0x54($sp) +/* 05E8CC 7F029D9C 8FA50050 */ lw $a1, 0x50($sp) +/* 05E8D0 7F029DA0 C4660008 */ lwc1 $f6, 8($v1) +/* 05E8D4 7F029DA4 C4A40008 */ lwc1 $f4, 8($a1) +/* 05E8D8 7F029DA8 C46A000C */ lwc1 $f10, 0xc($v1) +/* 05E8DC 7F029DAC C4A8000C */ lwc1 $f8, 0xc($a1) +/* 05E8E0 7F029DB0 46062301 */ sub.s $f12, $f4, $f6 +/* 05E8E4 7F029DB4 460A4101 */ sub.s $f4, $f8, $f10 +/* 05E8E8 7F029DB8 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 05E8EC 7F029DBC C4680010 */ lwc1 $f8, 0x10($v1) +/* 05E8F0 7F029DC0 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 05E8F4 7F029DC4 E7A00044 */ swc1 $f0, 0x44($sp) +/* 05E8F8 7F029DC8 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 05E8FC 7F029DCC 46083381 */ sub.s $f14, $f6, $f8 +/* 05E900 7F029DD0 0FC16A8C */ jal atan2f +/* 05E904 7F029DD4 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 05E908 7F029DD8 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 05E90C 7F029DDC C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 05E910 7F029DE0 00001825 */ move $v1, $zero +/* 05E914 7F029DE4 4610003C */ c.lt.s $f0, $f16 +/* 05E918 7F029DE8 3C018005 */ lui $at, %hi(D_80051E0C) +/* 05E91C 7F029DEC 46100301 */ sub.s $f12, $f0, $f16 +/* 05E920 7F029DF0 8FA40058 */ lw $a0, 0x58($sp) +/* 05E924 7F029DF4 45000003 */ bc1f .L7F029E04 +/* 05E928 7F029DF8 46006086 */ mov.s $f2, $f12 +/* 05E92C 7F029DFC C42A1E0C */ lwc1 $f10, %lo(D_80051E0C)($at) +/* 05E930 7F029E00 460A6080 */ add.s $f2, $f12, $f10 +.L7F029E04: +/* 05E934 7F029E04 AFA3002C */ sw $v1, 0x2c($sp) +/* 05E938 7F029E08 E7A20030 */ swc1 $f2, 0x30($sp) +/* 05E93C 7F029E0C 0FC0CADA */ jal sub_GAME_7F032B68 +/* 05E940 7F029E10 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 05E944 7F029E14 8FA3002C */ lw $v1, 0x2c($sp) +/* 05E948 7F029E18 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05E94C 7F029E1C 10400003 */ beqz $v0, .L7F029E2C +/* 05E950 7F029E20 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 05E954 7F029E24 10000078 */ b .L7F02A008 +/* 05E958 7F029E28 24030001 */ li $v1, 1 +.L7F029E2C: +/* 05E95C 7F029E2C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05E960 7F029E30 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 05E964 7F029E34 8FB80058 */ lw $t8, 0x58($sp) +/* 05E968 7F029E38 46042182 */ mul.s $f6, $f4, $f4 +/* 05E96C 7F029E3C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 05E970 7F029E40 C70000D0 */ lwc1 $f0, 0xd0($t8) +/* 05E974 7F029E44 46129202 */ mul.s $f8, $f18, $f18 +/* 05E978 7F029E48 44818000 */ mtc1 $at, $f16 +/* 05E97C 7F029E4C 3C018005 */ lui $at, %hi(D_80051E10) +/* 05E980 7F029E50 460E7102 */ mul.s $f4, $f14, $f14 +/* 05E984 7F029E54 46064280 */ add.s $f10, $f8, $f6 +/* 05E988 7F029E58 46000202 */ mul.s $f8, $f0, $f0 +/* 05E98C 7F029E5C 46045300 */ add.s $f12, $f10, $f4 +/* 05E990 7F029E60 46104182 */ mul.s $f6, $f8, $f16 +/* 05E994 7F029E64 00000000 */ nop +/* 05E998 7F029E68 46103282 */ mul.s $f10, $f6, $f16 +/* 05E99C 7F029E6C 460A603C */ c.lt.s $f12, $f10 +/* 05E9A0 7F029E70 00000000 */ nop +/* 05E9A4 7F029E74 4500000B */ bc1f .L7F029EA4 +/* 05E9A8 7F029E78 00000000 */ nop +/* 05E9AC 7F029E7C C4241E10 */ lwc1 $f4, %lo(D_80051E10)($at) +/* 05E9B0 7F029E80 3C018005 */ lui $at, %hi(D_80051E14) +/* 05E9B4 7F029E84 4604103C */ c.lt.s $f2, $f4 +/* 05E9B8 7F029E88 00000000 */ nop +/* 05E9BC 7F029E8C 45030018 */ bc1tl .L7F029EF0 +/* 05E9C0 7F029E90 AFA3002C */ sw $v1, 0x2c($sp) +/* 05E9C4 7F029E94 C4281E14 */ lwc1 $f8, %lo(D_80051E14)($at) +/* 05E9C8 7F029E98 4602403C */ c.lt.s $f8, $f2 +/* 05E9CC 7F029E9C 00000000 */ nop +/* 05E9D0 7F029EA0 45010012 */ bc1t .L7F029EEC +.L7F029EA4: +/* 05E9D4 7F029EA4 3C018005 */ lui $at, %hi(D_80051E18) +/* 05E9D8 7F029EA8 C4261E18 */ lwc1 $f6, %lo(D_80051E18)($at) +/* 05E9DC 7F029EAC 3C018005 */ lui $at, %hi(D_80051E1C) +/* 05E9E0 7F029EB0 4606603C */ c.lt.s $f12, $f6 +/* 05E9E4 7F029EB4 00000000 */ nop +/* 05E9E8 7F029EB8 45000053 */ bc1f .L7F02A008 +/* 05E9EC 7F029EBC 00000000 */ nop +/* 05E9F0 7F029EC0 C42A1E1C */ lwc1 $f10, %lo(D_80051E1C)($at) +/* 05E9F4 7F029EC4 3C018005 */ lui $at, %hi(D_80051E20) +/* 05E9F8 7F029EC8 460A103C */ c.lt.s $f2, $f10 +/* 05E9FC 7F029ECC 00000000 */ nop +/* 05EA00 7F029ED0 45030007 */ bc1tl .L7F029EF0 +/* 05EA04 7F029ED4 AFA3002C */ sw $v1, 0x2c($sp) +/* 05EA08 7F029ED8 C4241E20 */ lwc1 $f4, %lo(D_80051E20)($at) +/* 05EA0C 7F029EDC 4602203C */ c.lt.s $f4, $f2 +/* 05EA10 7F029EE0 00000000 */ nop +/* 05EA14 7F029EE4 45000048 */ bc1f .L7F02A008 +/* 05EA18 7F029EE8 00000000 */ nop +.L7F029EEC: +/* 05EA1C 7F029EEC AFA3002C */ sw $v1, 0x2c($sp) +.L7F029EF0: +/* 05EA20 7F029EF0 E7A20030 */ swc1 $f2, 0x30($sp) +/* 05EA24 7F029EF4 0FC2E9D1 */ jal square_near_fog_value +/* 05EA28 7F029EF8 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 05EA2C 7F029EFC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 05EA30 7F029F00 8FA3002C */ lw $v1, 0x2c($sp) +/* 05EA34 7F029F04 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05EA38 7F029F08 4600603C */ c.lt.s $f12, $f0 +/* 05EA3C 7F029F0C 00000000 */ nop +/* 05EA40 7F029F10 4500003D */ bc1f .L7F02A008 +/* 05EA44 7F029F14 00000000 */ nop +/* 05EA48 7F029F18 0C007DF8 */ jal sqrtf +/* 05EA4C 7F029F1C E7A20030 */ swc1 $f2, 0x30($sp) +/* 05EA50 7F029F20 3C018005 */ lui $at, %hi(D_80051E24) +/* 05EA54 7F029F24 C42C1E24 */ lwc1 $f12, %lo(D_80051E24)($at) +/* 05EA58 7F029F28 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 05EA5C 7F029F2C 44814000 */ mtc1 $at, $f8 +/* 05EA60 7F029F30 3C01467A */ li $at, 0x467A0000 # 16000.000000 +/* 05EA64 7F029F34 44815000 */ mtc1 $at, $f10 +/* 05EA68 7F029F38 46080182 */ mul.s $f6, $f0, $f8 +/* 05EA6C 7F029F3C C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05EA70 7F029F40 3C018005 */ lui $at, %hi(D_80051E28) +/* 05EA74 7F029F44 4602603C */ c.lt.s $f12, $f2 +/* 05EA78 7F029F48 460A3103 */ div.s $f4, $f6, $f10 +/* 05EA7C 7F029F4C 4600220D */ trunc.w.s $f8, $f4 +/* 05EA80 7F029F50 44054000 */ mfc1 $a1, $f8 +/* 05EA84 7F029F54 4500001F */ bc1f .L7F029FD4 +/* 05EA88 7F029F58 00000000 */ nop +/* 05EA8C 7F029F5C C4261E28 */ lwc1 $f6, %lo(D_80051E28)($at) +/* 05EA90 7F029F60 3C018005 */ lui $at, %hi(D_80051E2C) +/* 05EA94 7F029F64 4606103C */ c.lt.s $f2, $f6 +/* 05EA98 7F029F68 00000000 */ nop +/* 05EA9C 7F029F6C 45000019 */ bc1f .L7F029FD4 +/* 05EAA0 7F029F70 00000000 */ nop +/* 05EAA4 7F029F74 C42A1E2C */ lwc1 $f10, %lo(D_80051E2C)($at) +/* 05EAA8 7F029F78 46001006 */ mov.s $f0, $f2 +/* 05EAAC 7F029F7C 3C018005 */ lui $at, %hi(D_80051E30) +/* 05EAB0 7F029F80 4602503C */ c.lt.s $f10, $f2 +/* 05EAB4 7F029F84 00000000 */ nop +/* 05EAB8 7F029F88 45020004 */ bc1fl .L7F029F9C +/* 05EABC 7F029F8C 460C0001 */ sub.s $f0, $f0, $f12 +/* 05EAC0 7F029F90 C4241E30 */ lwc1 $f4, %lo(D_80051E30)($at) +/* 05EAC4 7F029F94 46022001 */ sub.s $f0, $f4, $f2 +/* 05EAC8 7F029F98 460C0001 */ sub.s $f0, $f0, $f12 +.L7F029F9C: +/* 05EACC 7F029F9C 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 05EAD0 7F029FA0 44814000 */ mtc1 $at, $f8 +/* 05EAD4 7F029FA4 3C018005 */ lui $at, %hi(D_80051E34) +/* 05EAD8 7F029FA8 C42A1E34 */ lwc1 $f10, %lo(D_80051E34)($at) +/* 05EADC 7F029FAC 46080182 */ mul.s $f6, $f0, $f8 +/* 05EAE0 7F029FB0 460A3103 */ div.s $f4, $f6, $f10 +/* 05EAE4 7F029FB4 4600220D */ trunc.w.s $f8, $f4 +/* 05EAE8 7F029FB8 44094000 */ mfc1 $t1, $f8 +/* 05EAEC 7F029FBC 00000000 */ nop +/* 05EAF0 7F029FC0 252A0001 */ addiu $t2, $t1, 1 +/* 05EAF4 7F029FC4 00AA0019 */ multu $a1, $t2 +/* 05EAF8 7F029FC8 00002812 */ mflo $a1 +/* 05EAFC 7F029FCC 00000000 */ nop +/* 05EB00 7F029FD0 00000000 */ nop +.L7F029FD4: +/* 05EB04 7F029FD4 0FC08EF0 */ jal sub_GAME_7F023BC0 +/* 05EB08 7F029FD8 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB0C 7F029FDC 24450001 */ addiu $a1, $v0, 1 +/* 05EB10 7F029FE0 0C002914 */ jal get_random_value +/* 05EB14 7F029FE4 AFA50024 */ sw $a1, 0x24($sp) +/* 05EB18 7F029FE8 8FA50024 */ lw $a1, 0x24($sp) +/* 05EB1C 7F029FEC 0045001B */ divu $zero, $v0, $a1 +/* 05EB20 7F029FF0 00001810 */ mfhi $v1 +/* 05EB24 7F029FF4 2C6B0001 */ sltiu $t3, $v1, 1 +/* 05EB28 7F029FF8 01601825 */ move $v1, $t3 +/* 05EB2C 7F029FFC 14A00002 */ bnez $a1, .L7F02A008 +/* 05EB30 7F02A000 00000000 */ nop +/* 05EB34 7F02A004 0007000D */ break 7 +.L7F02A008: +/* 05EB38 7F02A008 10600004 */ beqz $v1, .L7F02A01C +/* 05EB3C 7F02A00C 00000000 */ nop +/* 05EB40 7F02A010 0FC0A52F */ jal sub_GAME_7F0294BC +/* 05EB44 7F02A014 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB48 7F02A018 00401825 */ move $v1, $v0 +.L7F02A01C: +/* 05EB4C 7F02A01C 10600004 */ beqz $v1, .L7F02A030 +/* 05EB50 7F02A020 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB54 7F02A024 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 05EB58 7F02A028 AFA3002C */ sw $v1, 0x2c($sp) +/* 05EB5C 7F02A02C 8FA3002C */ lw $v1, 0x2c($sp) +.L7F02A030: +/* 05EB60 7F02A030 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EB64 7F02A034 27BD0058 */ addiu $sp, $sp, 0x58 +/* 05EB68 7F02A038 00601025 */ move $v0, $v1 +/* 05EB6C 7F02A03C 03E00008 */ jr $ra +/* 05EB70 7F02A040 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A044 +/* 05EB74 7F02A044 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05EB78 7F02A048 AFBF0014 */ sw $ra, 0x14($sp) +/* 05EB7C 7F02A04C AFA5002C */ sw $a1, 0x2c($sp) +/* 05EB80 7F02A050 8C830018 */ lw $v1, 0x18($a0) +/* 05EB84 7F02A054 AFA60030 */ sw $a2, 0x30($sp) +/* 05EB88 7F02A058 0FC225E6 */ jal get_curplayer_positiondata +/* 05EB8C 7F02A05C AFA30024 */ sw $v1, 0x24($sp) +/* 05EB90 7F02A060 8FA30024 */ lw $v1, 0x24($sp) +/* 05EB94 7F02A064 C4440008 */ lwc1 $f4, 8($v0) +/* 05EB98 7F02A068 C4480010 */ lwc1 $f8, 0x10($v0) +/* 05EB9C 7F02A06C C4660008 */ lwc1 $f6, 8($v1) +/* 05EBA0 7F02A070 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 05EBA4 7F02A074 46062081 */ sub.s $f2, $f4, $f6 +/* 05EBA8 7F02A078 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EBAC 7F02A07C 46021402 */ mul.s $f16, $f2, $f2 +/* 05EBB0 7F02A080 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 05EBB4 7F02A084 460E7482 */ mul.s $f18, $f14, $f14 +/* 05EBB8 7F02A088 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 05EBBC 7F02A08C 0C007DF8 */ jal sqrtf +/* 05EBC0 7F02A090 46128300 */ add.s $f12, $f16, $f18 +/* 05EBC4 7F02A094 8FAE002C */ lw $t6, 0x2c($sp) +/* 05EBC8 7F02A098 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 05EBCC 7F02A09C C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 05EBD0 7F02A0A0 8FA60030 */ lw $a2, 0x30($sp) +/* 05EBD4 7F02A0A4 46001083 */ div.s $f2, $f2, $f0 +/* 05EBD8 7F02A0A8 11C00007 */ beqz $t6, .L7F02A0C8 +/* 05EBDC 7F02A0AC 46007383 */ div.s $f14, $f14, $f0 +/* 05EBE0 7F02A0B0 44802000 */ mtc1 $zero, $f4 +/* 05EBE4 7F02A0B4 46001187 */ neg.s $f6, $f2 +/* 05EBE8 7F02A0B8 E4CE0000 */ swc1 $f14, ($a2) +/* 05EBEC 7F02A0BC E4C60008 */ swc1 $f6, 8($a2) +/* 05EBF0 7F02A0C0 10000006 */ b .L7F02A0DC +/* 05EBF4 7F02A0C4 E4C40004 */ swc1 $f4, 4($a2) +.L7F02A0C8: +/* 05EBF8 7F02A0C8 44805000 */ mtc1 $zero, $f10 +/* 05EBFC 7F02A0CC 46007207 */ neg.s $f8, $f14 +/* 05EC00 7F02A0D0 E4C20008 */ swc1 $f2, 8($a2) +/* 05EC04 7F02A0D4 E4C80000 */ swc1 $f8, ($a2) +/* 05EC08 7F02A0D8 E4CA0004 */ swc1 $f10, 4($a2) +.L7F02A0DC: +/* 05EC0C 7F02A0DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EC10 7F02A0E0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05EC14 7F02A0E4 03E00008 */ jr $ra +/* 05EC18 7F02A0E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A0EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A0EC +/* 05EC1C 7F02A0EC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05EC20 7F02A0F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05EC24 7F02A0F4 AFA60040 */ sw $a2, 0x40($sp) +/* 05EC28 7F02A0F8 8C870018 */ lw $a3, 0x18($a0) +/* 05EC2C 7F02A0FC 27A60028 */ addiu $a2, $sp, 0x28 +/* 05EC30 7F02A100 0FC0A811 */ jal sub_GAME_7F02A044 +/* 05EC34 7F02A104 AFA70034 */ sw $a3, 0x34($sp) +/* 05EC38 7F02A108 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 05EC3C 7F02A10C C7A40028 */ lwc1 $f4, 0x28($sp) +/* 05EC40 7F02A110 8FA40034 */ lw $a0, 0x34($sp) +/* 05EC44 7F02A114 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 05EC48 7F02A118 46002182 */ mul.s $f6, $f4, $f0 +/* 05EC4C 7F02A11C C4880008 */ lwc1 $f8, 8($a0) +/* 05EC50 7F02A120 27A5001C */ addiu $a1, $sp, 0x1c +/* 05EC54 7F02A124 46009102 */ mul.s $f4, $f18, $f0 +/* 05EC58 7F02A128 27A60028 */ addiu $a2, $sp, 0x28 +/* 05EC5C 7F02A12C 46083280 */ add.s $f10, $f6, $f8 +/* 05EC60 7F02A130 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05EC64 7F02A134 C490000C */ lwc1 $f16, 0xc($a0) +/* 05EC68 7F02A138 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05EC6C 7F02A13C C4860010 */ lwc1 $f6, 0x10($a0) +/* 05EC70 7F02A140 46062200 */ add.s $f8, $f4, $f6 +/* 05EC74 7F02A144 0FC0A60B */ jal sub_GAME_7F02982C +/* 05EC78 7F02A148 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05EC7C 7F02A14C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EC80 7F02A150 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05EC84 7F02A154 03E00008 */ jr $ra +/* 05EC88 7F02A158 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A15C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A15C +/* 05EC8C 7F02A15C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05EC90 7F02A160 AFBF001C */ sw $ra, 0x1c($sp) +/* 05EC94 7F02A164 AFB00018 */ sw $s0, 0x18($sp) +/* 05EC98 7F02A168 AFA5002C */ sw $a1, 0x2c($sp) +/* 05EC9C 7F02A16C 00C08025 */ move $s0, $a2 +/* 05ECA0 7F02A170 0FC1B320 */ jal getsubroty +/* 05ECA4 7F02A174 8C84001C */ lw $a0, 0x1c($a0) +/* 05ECA8 7F02A178 8FAE002C */ lw $t6, 0x2c($sp) +/* 05ECAC 7F02A17C 46000306 */ mov.s $f12, $f0 +/* 05ECB0 7F02A180 11C0000B */ beqz $t6, .L7F02A1B0 +/* 05ECB4 7F02A184 00000000 */ nop +/* 05ECB8 7F02A188 0FC15FA8 */ jal cosf +/* 05ECBC 7F02A18C E7AC0024 */ swc1 $f12, 0x24($sp) +/* 05ECC0 7F02A190 44802000 */ mtc1 $zero, $f4 +/* 05ECC4 7F02A194 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 05ECC8 7F02A198 E6000000 */ swc1 $f0, ($s0) +/* 05ECCC 7F02A19C 0FC15FAB */ jal sinf +/* 05ECD0 7F02A1A0 E6040004 */ swc1 $f4, 4($s0) +/* 05ECD4 7F02A1A4 46000187 */ neg.s $f6, $f0 +/* 05ECD8 7F02A1A8 1000000A */ b .L7F02A1D4 +/* 05ECDC 7F02A1AC E6060008 */ swc1 $f6, 8($s0) +.L7F02A1B0: +/* 05ECE0 7F02A1B0 0FC15FA8 */ jal cosf +/* 05ECE4 7F02A1B4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 05ECE8 7F02A1B8 44805000 */ mtc1 $zero, $f10 +/* 05ECEC 7F02A1BC 46000207 */ neg.s $f8, $f0 +/* 05ECF0 7F02A1C0 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 05ECF4 7F02A1C4 E6080000 */ swc1 $f8, ($s0) +/* 05ECF8 7F02A1C8 0FC15FAB */ jal sinf +/* 05ECFC 7F02A1CC E60A0004 */ swc1 $f10, 4($s0) +/* 05ED00 7F02A1D0 E6000008 */ swc1 $f0, 8($s0) +.L7F02A1D4: +/* 05ED04 7F02A1D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 05ED08 7F02A1D8 8FB00018 */ lw $s0, 0x18($sp) +/* 05ED0C 7F02A1DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05ED10 7F02A1E0 03E00008 */ jr $ra +/* 05ED14 7F02A1E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A1E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A1E8 +/* 05ED18 7F02A1E8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05ED1C 7F02A1EC AFBF0014 */ sw $ra, 0x14($sp) +/* 05ED20 7F02A1F0 AFA60040 */ sw $a2, 0x40($sp) +/* 05ED24 7F02A1F4 8C870018 */ lw $a3, 0x18($a0) +/* 05ED28 7F02A1F8 27A60028 */ addiu $a2, $sp, 0x28 +/* 05ED2C 7F02A1FC 0FC0A857 */ jal sub_GAME_7F02A15C +/* 05ED30 7F02A200 AFA70034 */ sw $a3, 0x34($sp) +/* 05ED34 7F02A204 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 05ED38 7F02A208 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 05ED3C 7F02A20C 8FA40034 */ lw $a0, 0x34($sp) +/* 05ED40 7F02A210 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 05ED44 7F02A214 46002182 */ mul.s $f6, $f4, $f0 +/* 05ED48 7F02A218 C4880008 */ lwc1 $f8, 8($a0) +/* 05ED4C 7F02A21C 27A5001C */ addiu $a1, $sp, 0x1c +/* 05ED50 7F02A220 46009102 */ mul.s $f4, $f18, $f0 +/* 05ED54 7F02A224 27A60028 */ addiu $a2, $sp, 0x28 +/* 05ED58 7F02A228 46083280 */ add.s $f10, $f6, $f8 +/* 05ED5C 7F02A22C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05ED60 7F02A230 C490000C */ lwc1 $f16, 0xc($a0) +/* 05ED64 7F02A234 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05ED68 7F02A238 C4860010 */ lwc1 $f6, 0x10($a0) +/* 05ED6C 7F02A23C 46062200 */ add.s $f8, $f4, $f6 +/* 05ED70 7F02A240 0FC0A60B */ jal sub_GAME_7F02982C +/* 05ED74 7F02A244 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05ED78 7F02A248 8FBF0014 */ lw $ra, 0x14($sp) +/* 05ED7C 7F02A24C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05ED80 7F02A250 03E00008 */ jr $ra +/* 05ED84 7F02A254 00000000 */ nop +) +#endif + + + +s32 true_if_actor_dying_fading_limping_shot(PCHRdata chr) { + s8 currentaction = chr->actiontype; + + if ((currentaction == ACT_DIE) || (currentaction == ACT_DEAD) || (currentaction == ACT_PREARGH) || (currentaction == ACT_ARGH) && !(chr->chrflags & CHRFLAG_00000200)) + return 0; + return 1; +} + + + +s32 true_if_actor_dying_fading(PCHRdata chr) { + s8 currentaction = chr->actiontype; + + return ((currentaction == ACT_DIE) || (currentaction == ACT_DEAD)); +} + + + +#ifdef NONMATCHING +void actor_steps_sideways(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E38 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E3C +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E40 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E44 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051E48 +.word 0x407b53d2 /*3.926991*/ +.text +glabel actor_steps_sideways +/* 05EDF8 7F02A2C8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05EDFC 7F02A2CC AFBF001C */ sw $ra, 0x1c($sp) +/* 05EE00 7F02A2D0 AFB00018 */ sw $s0, 0x18($sp) +/* 05EE04 7F02A2D4 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05EE08 7F02A2D8 00808025 */ move $s0, $a0 +/* 05EE0C 7F02A2DC 5040004D */ beql $v0, $zero, .L7F02A414 +/* 05EE10 7F02A2E0 00001025 */ move $v0, $zero +/* 05EE14 7F02A2E4 8E0E0018 */ lw $t6, 0x18($s0) +/* 05EE18 7F02A2E8 0FC225E6 */ jal get_curplayer_positiondata +/* 05EE1C 7F02A2EC AFAE004C */ sw $t6, 0x4c($sp) +/* 05EE20 7F02A2F0 8E04001C */ lw $a0, 0x1c($s0) +/* 05EE24 7F02A2F4 0FC1B320 */ jal getsubroty +/* 05EE28 7F02A2F8 AFA20048 */ sw $v0, 0x48($sp) +/* 05EE2C 7F02A2FC 8FA2004C */ lw $v0, 0x4c($sp) +/* 05EE30 7F02A300 8FA30048 */ lw $v1, 0x48($sp) +/* 05EE34 7F02A304 C4460008 */ lwc1 $f6, 8($v0) +/* 05EE38 7F02A308 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05EE3C 7F02A30C C4640008 */ lwc1 $f4, 8($v1) +/* 05EE40 7F02A310 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05EE44 7F02A314 E7A00040 */ swc1 $f0, 0x40($sp) +/* 05EE48 7F02A318 46062301 */ sub.s $f12, $f4, $f6 +/* 05EE4C 7F02A31C 0FC16A8C */ jal atan2f +/* 05EE50 7F02A320 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EE54 7F02A324 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 05EE58 7F02A328 3C018005 */ lui $at, %hi(D_80051E38) +/* 05EE5C 7F02A32C 4610003C */ c.lt.s $f0, $f16 +/* 05EE60 7F02A330 46100301 */ sub.s $f12, $f0, $f16 +/* 05EE64 7F02A334 45000003 */ bc1f .L7F02A344 +/* 05EE68 7F02A338 46006086 */ mov.s $f2, $f12 +/* 05EE6C 7F02A33C C4321E38 */ lwc1 $f18, %lo(D_80051E38)($at) +/* 05EE70 7F02A340 46126080 */ add.s $f2, $f12, $f18 +.L7F02A344: +/* 05EE74 7F02A344 3C018005 */ lui $at, %hi(D_80051E3C) +/* 05EE78 7F02A348 C4241E3C */ lwc1 $f4, %lo(D_80051E3C)($at) +/* 05EE7C 7F02A34C 3C018005 */ lui $at, %hi(D_80051E40) +/* 05EE80 7F02A350 4604103C */ c.lt.s $f2, $f4 +/* 05EE84 7F02A354 00000000 */ nop +/* 05EE88 7F02A358 45010012 */ bc1t .L7F02A3A4 +/* 05EE8C 7F02A35C 00000000 */ nop +/* 05EE90 7F02A360 C4261E40 */ lwc1 $f6, %lo(D_80051E40)($at) +/* 05EE94 7F02A364 3C018005 */ lui $at, %hi(D_80051E44) +/* 05EE98 7F02A368 4602303C */ c.lt.s $f6, $f2 +/* 05EE9C 7F02A36C 00000000 */ nop +/* 05EEA0 7F02A370 4501000C */ bc1t .L7F02A3A4 +/* 05EEA4 7F02A374 00000000 */ nop +/* 05EEA8 7F02A378 C4281E44 */ lwc1 $f8, %lo(D_80051E44)($at) +/* 05EEAC 7F02A37C 3C018005 */ lui $at, %hi(D_80051E48) +/* 05EEB0 7F02A380 4602403C */ c.lt.s $f8, $f2 +/* 05EEB4 7F02A384 00000000 */ nop +/* 05EEB8 7F02A388 45020022 */ bc1fl .L7F02A414 +/* 05EEBC 7F02A38C 00001025 */ move $v0, $zero +/* 05EEC0 7F02A390 C42A1E48 */ lwc1 $f10, %lo(D_80051E48)($at) +/* 05EEC4 7F02A394 460A103C */ c.lt.s $f2, $f10 +/* 05EEC8 7F02A398 00000000 */ nop +/* 05EECC 7F02A39C 4502001D */ bc1fl .L7F02A414 +/* 05EED0 7F02A3A0 00001025 */ move $v0, $zero +.L7F02A3A4: +/* 05EED4 7F02A3A4 0C002914 */ jal get_random_value +/* 05EED8 7F02A3A8 00000000 */ nop +/* 05EEDC 7F02A3AC 30450001 */ andi $a1, $v0, 1 +/* 05EEE0 7F02A3B0 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05EEE4 7F02A3B4 01E02825 */ move $a1, $t7 +/* 05EEE8 7F02A3B8 AFAF002C */ sw $t7, 0x2c($sp) +/* 05EEEC 7F02A3BC 02002025 */ move $a0, $s0 +/* 05EEF0 7F02A3C0 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05EEF4 7F02A3C4 3C0642C8 */ lui $a2, 0x42c8 +/* 05EEF8 7F02A3C8 10400006 */ beqz $v0, .L7F02A3E4 +/* 05EEFC 7F02A3CC 8FA7002C */ lw $a3, 0x2c($sp) +/* 05EF00 7F02A3D0 02002025 */ move $a0, $s0 +/* 05EF04 7F02A3D4 0FC09200 */ jal sub_GAME_7F024800 +/* 05EF08 7F02A3D8 00E02825 */ move $a1, $a3 +/* 05EF0C 7F02A3DC 1000000D */ b .L7F02A414 +/* 05EF10 7F02A3E0 24020001 */ li $v0, 1 +.L7F02A3E4: +/* 05EF14 7F02A3E4 2CE50001 */ sltiu $a1, $a3, 1 +/* 05EF18 7F02A3E8 AFA50024 */ sw $a1, 0x24($sp) +/* 05EF1C 7F02A3EC 02002025 */ move $a0, $s0 +/* 05EF20 7F02A3F0 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05EF24 7F02A3F4 3C0642C8 */ lui $a2, 0x42c8 +/* 05EF28 7F02A3F8 10400005 */ beqz $v0, .L7F02A410 +/* 05EF2C 7F02A3FC 8FA50024 */ lw $a1, 0x24($sp) +/* 05EF30 7F02A400 0FC09200 */ jal sub_GAME_7F024800 +/* 05EF34 7F02A404 02002025 */ move $a0, $s0 +/* 05EF38 7F02A408 10000002 */ b .L7F02A414 +/* 05EF3C 7F02A40C 24020001 */ li $v0, 1 +.L7F02A410: +/* 05EF40 7F02A410 00001025 */ move $v0, $zero +.L7F02A414: +/* 05EF44 7F02A414 8FBF001C */ lw $ra, 0x1c($sp) +/* 05EF48 7F02A418 8FB00018 */ lw $s0, 0x18($sp) +/* 05EF4C 7F02A41C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05EF50 7F02A420 03E00008 */ jr $ra +/* 05EF54 7F02A424 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_hops_sideways(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E50 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E54 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E58 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051E5C +.word 0x407b53d2 /*3.926991*/ +.text +glabel actor_hops_sideways +/* 05EF58 7F02A428 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05EF5C 7F02A42C AFBF001C */ sw $ra, 0x1c($sp) +/* 05EF60 7F02A430 AFB00018 */ sw $s0, 0x18($sp) +/* 05EF64 7F02A434 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05EF68 7F02A438 00808025 */ move $s0, $a0 +/* 05EF6C 7F02A43C 5040004D */ beql $v0, $zero, .L7F02A574 +/* 05EF70 7F02A440 00001025 */ move $v0, $zero +/* 05EF74 7F02A444 8E0E0018 */ lw $t6, 0x18($s0) +/* 05EF78 7F02A448 0FC225E6 */ jal get_curplayer_positiondata +/* 05EF7C 7F02A44C AFAE004C */ sw $t6, 0x4c($sp) +/* 05EF80 7F02A450 8E04001C */ lw $a0, 0x1c($s0) +/* 05EF84 7F02A454 0FC1B320 */ jal getsubroty +/* 05EF88 7F02A458 AFA20048 */ sw $v0, 0x48($sp) +/* 05EF8C 7F02A45C 8FA2004C */ lw $v0, 0x4c($sp) +/* 05EF90 7F02A460 8FA30048 */ lw $v1, 0x48($sp) +/* 05EF94 7F02A464 C4460008 */ lwc1 $f6, 8($v0) +/* 05EF98 7F02A468 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05EF9C 7F02A46C C4640008 */ lwc1 $f4, 8($v1) +/* 05EFA0 7F02A470 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05EFA4 7F02A474 E7A00040 */ swc1 $f0, 0x40($sp) +/* 05EFA8 7F02A478 46062301 */ sub.s $f12, $f4, $f6 +/* 05EFAC 7F02A47C 0FC16A8C */ jal atan2f +/* 05EFB0 7F02A480 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EFB4 7F02A484 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 05EFB8 7F02A488 3C018005 */ lui $at, %hi(D_80051E4C) +/* 05EFBC 7F02A48C 4610003C */ c.lt.s $f0, $f16 +/* 05EFC0 7F02A490 46100301 */ sub.s $f12, $f0, $f16 +/* 05EFC4 7F02A494 45000003 */ bc1f .L7F02A4A4 +/* 05EFC8 7F02A498 46006086 */ mov.s $f2, $f12 +/* 05EFCC 7F02A49C C4321E4C */ lwc1 $f18, %lo(D_80051E4C)($at) +/* 05EFD0 7F02A4A0 46126080 */ add.s $f2, $f12, $f18 +.L7F02A4A4: +/* 05EFD4 7F02A4A4 3C018005 */ lui $at, %hi(D_80051E50) +/* 05EFD8 7F02A4A8 C4241E50 */ lwc1 $f4, %lo(D_80051E50)($at) +/* 05EFDC 7F02A4AC 3C018005 */ lui $at, %hi(D_80051E54) +/* 05EFE0 7F02A4B0 4604103C */ c.lt.s $f2, $f4 +/* 05EFE4 7F02A4B4 00000000 */ nop +/* 05EFE8 7F02A4B8 45010012 */ bc1t .L7F02A504 +/* 05EFEC 7F02A4BC 00000000 */ nop +/* 05EFF0 7F02A4C0 C4261E54 */ lwc1 $f6, %lo(D_80051E54)($at) +/* 05EFF4 7F02A4C4 3C018005 */ lui $at, %hi(D_80051E58) +/* 05EFF8 7F02A4C8 4602303C */ c.lt.s $f6, $f2 +/* 05EFFC 7F02A4CC 00000000 */ nop +/* 05F000 7F02A4D0 4501000C */ bc1t .L7F02A504 +/* 05F004 7F02A4D4 00000000 */ nop +/* 05F008 7F02A4D8 C4281E58 */ lwc1 $f8, %lo(D_80051E58)($at) +/* 05F00C 7F02A4DC 3C018005 */ lui $at, %hi(D_80051E5C) +/* 05F010 7F02A4E0 4602403C */ c.lt.s $f8, $f2 +/* 05F014 7F02A4E4 00000000 */ nop +/* 05F018 7F02A4E8 45020022 */ bc1fl .L7F02A574 +/* 05F01C 7F02A4EC 00001025 */ move $v0, $zero +/* 05F020 7F02A4F0 C42A1E5C */ lwc1 $f10, %lo(D_80051E5C)($at) +/* 05F024 7F02A4F4 460A103C */ c.lt.s $f2, $f10 +/* 05F028 7F02A4F8 00000000 */ nop +/* 05F02C 7F02A4FC 4502001D */ bc1fl .L7F02A574 +/* 05F030 7F02A500 00001025 */ move $v0, $zero +.L7F02A504: +/* 05F034 7F02A504 0C002914 */ jal get_random_value +/* 05F038 7F02A508 00000000 */ nop +/* 05F03C 7F02A50C 30450001 */ andi $a1, $v0, 1 +/* 05F040 7F02A510 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05F044 7F02A514 01E02825 */ move $a1, $t7 +/* 05F048 7F02A518 AFAF002C */ sw $t7, 0x2c($sp) +/* 05F04C 7F02A51C 02002025 */ move $a0, $s0 +/* 05F050 7F02A520 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05F054 7F02A524 3C064348 */ lui $a2, 0x4348 +/* 05F058 7F02A528 10400006 */ beqz $v0, .L7F02A544 +/* 05F05C 7F02A52C 8FA7002C */ lw $a3, 0x2c($sp) +/* 05F060 7F02A530 02002025 */ move $a0, $s0 +/* 05F064 7F02A534 0FC092A1 */ jal sub_GAME_7F024A84 +/* 05F068 7F02A538 00E02825 */ move $a1, $a3 +/* 05F06C 7F02A53C 1000000D */ b .L7F02A574 +/* 05F070 7F02A540 24020001 */ li $v0, 1 +.L7F02A544: +/* 05F074 7F02A544 2CE50001 */ sltiu $a1, $a3, 1 +/* 05F078 7F02A548 AFA50024 */ sw $a1, 0x24($sp) +/* 05F07C 7F02A54C 02002025 */ move $a0, $s0 +/* 05F080 7F02A550 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05F084 7F02A554 3C064348 */ lui $a2, 0x4348 +/* 05F088 7F02A558 10400005 */ beqz $v0, .L7F02A570 +/* 05F08C 7F02A55C 8FA50024 */ lw $a1, 0x24($sp) +/* 05F090 7F02A560 0FC092A1 */ jal sub_GAME_7F024A84 +/* 05F094 7F02A564 02002025 */ move $a0, $s0 +/* 05F098 7F02A568 10000002 */ b .L7F02A574 +/* 05F09C 7F02A56C 24020001 */ li $v0, 1 +.L7F02A570: +/* 05F0A0 7F02A570 00001025 */ move $v0, $zero +.L7F02A574: +/* 05F0A4 7F02A574 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F0A8 7F02A578 8FB00018 */ lw $s0, 0x18($sp) +/* 05F0AC 7F02A57C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05F0B0 7F02A580 03E00008 */ jr $ra +/* 05F0B4 7F02A584 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_runs_sideways(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_runs_sideways +/* 05F0B8 7F02A588 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05F0BC 7F02A58C AFBF0024 */ sw $ra, 0x24($sp) +/* 05F0C0 7F02A590 AFB10020 */ sw $s1, 0x20($sp) +/* 05F0C4 7F02A594 00808825 */ move $s1, $a0 +/* 05F0C8 7F02A598 AFB0001C */ sw $s0, 0x1c($sp) +/* 05F0CC 7F02A59C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F0D0 7F02A5A0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 05F0D4 7F02A5A4 10400050 */ beqz $v0, .L7F02A6E8 +/* 05F0D8 7F02A5A8 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05F0DC 7F02A5AC 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05F0E0 7F02A5B0 8E2F00C8 */ lw $t7, 0xc8($s1) +/* 05F0E4 7F02A5B4 01CFC023 */ subu $t8, $t6, $t7 +/* 05F0E8 7F02A5B8 2B0100B5 */ slti $at, $t8, 0xb5 +/* 05F0EC 7F02A5BC 5420004B */ bnezl $at, .L7F02A6EC +/* 05F0F0 7F02A5C0 00001025 */ move $v0, $zero +/* 05F0F4 7F02A5C4 0C002914 */ jal get_random_value +/* 05F0F8 7F02A5C8 8E300018 */ lw $s0, 0x18($s1) +/* 05F0FC 7F02A5CC 44822000 */ mtc1 $v0, $f4 +/* 05F100 7F02A5D0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 05F104 7F02A5D4 44810000 */ mtc1 $at, $f0 +/* 05F108 7F02A5D8 04410005 */ bgez $v0, .L7F02A5F0 +/* 05F10C 7F02A5DC 468021A0 */ cvt.s.w $f6, $f4 +/* 05F110 7F02A5E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 05F114 7F02A5E4 44814000 */ mtc1 $at, $f8 +/* 05F118 7F02A5E8 00000000 */ nop +/* 05F11C 7F02A5EC 46083180 */ add.s $f6, $f6, $f8 +.L7F02A5F0: +/* 05F120 7F02A5F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 05F124 7F02A5F4 44815000 */ mtc1 $at, $f10 +/* 05F128 7F02A5F8 00000000 */ nop +/* 05F12C 7F02A5FC 460A3402 */ mul.s $f16, $f6, $f10 +/* 05F130 7F02A600 00000000 */ nop +/* 05F134 7F02A604 46008482 */ mul.s $f18, $f16, $f0 +/* 05F138 7F02A608 0C002914 */ jal get_random_value +/* 05F13C 7F02A60C 46009500 */ add.s $f20, $f18, $f0 +/* 05F140 7F02A610 30450001 */ andi $a1, $v0, 1 +/* 05F144 7F02A614 2CB90001 */ sltiu $t9, $a1, 1 +/* 05F148 7F02A618 03202825 */ move $a1, $t9 +/* 05F14C 7F02A61C 02202025 */ move $a0, $s1 +/* 05F150 7F02A620 0FC0A811 */ jal sub_GAME_7F02A044 +/* 05F154 7F02A624 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F158 7F02A628 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05F15C 7F02A62C C6060008 */ lwc1 $f6, 8($s0) +/* 05F160 7F02A630 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 05F164 7F02A634 46142202 */ mul.s $f8, $f4, $f20 +/* 05F168 7F02A638 02002025 */ move $a0, $s0 +/* 05F16C 7F02A63C 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F170 7F02A640 46149102 */ mul.s $f4, $f18, $f20 +/* 05F174 7F02A644 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F178 7F02A648 46064280 */ add.s $f10, $f8, $f6 +/* 05F17C 7F02A64C E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05F180 7F02A650 C610000C */ lwc1 $f16, 0xc($s0) +/* 05F184 7F02A654 E7B00034 */ swc1 $f16, 0x34($sp) +/* 05F188 7F02A658 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05F18C 7F02A65C 46082180 */ add.s $f6, $f4, $f8 +/* 05F190 7F02A660 0FC0A60B */ jal sub_GAME_7F02982C +/* 05F194 7F02A664 E7A60038 */ swc1 $f6, 0x38($sp) +/* 05F198 7F02A668 10400006 */ beqz $v0, .L7F02A684 +/* 05F19C 7F02A66C C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 05F1A0 7F02A670 02202025 */ move $a0, $s1 +/* 05F1A4 7F02A674 0FC0933E */ jal sub_GAME_7F024CF8 +/* 05F1A8 7F02A678 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F1AC 7F02A67C 1000001B */ b .L7F02A6EC +/* 05F1B0 7F02A680 24020001 */ li $v0, 1 +.L7F02A684: +/* 05F1B4 7F02A684 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 05F1B8 7F02A688 46005407 */ neg.s $f16, $f10 +/* 05F1BC 7F02A68C 02002025 */ move $a0, $s0 +/* 05F1C0 7F02A690 46148202 */ mul.s $f8, $f16, $f20 +/* 05F1C4 7F02A694 46009107 */ neg.s $f4, $f18 +/* 05F1C8 7F02A698 E7B0003C */ swc1 $f16, 0x3c($sp) +/* 05F1CC 7F02A69C E7A40044 */ swc1 $f4, 0x44($sp) +/* 05F1D0 7F02A6A0 C6060008 */ lwc1 $f6, 8($s0) +/* 05F1D4 7F02A6A4 46142402 */ mul.s $f16, $f4, $f20 +/* 05F1D8 7F02A6A8 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F1DC 7F02A6AC 46064280 */ add.s $f10, $f8, $f6 +/* 05F1E0 7F02A6B0 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F1E4 7F02A6B4 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05F1E8 7F02A6B8 C612000C */ lwc1 $f18, 0xc($s0) +/* 05F1EC 7F02A6BC E7B20034 */ swc1 $f18, 0x34($sp) +/* 05F1F0 7F02A6C0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05F1F4 7F02A6C4 46088180 */ add.s $f6, $f16, $f8 +/* 05F1F8 7F02A6C8 0FC0A60B */ jal sub_GAME_7F02982C +/* 05F1FC 7F02A6CC E7A60038 */ swc1 $f6, 0x38($sp) +/* 05F200 7F02A6D0 10400005 */ beqz $v0, .L7F02A6E8 +/* 05F204 7F02A6D4 02202025 */ move $a0, $s1 +/* 05F208 7F02A6D8 0FC0933E */ jal sub_GAME_7F024CF8 +/* 05F20C 7F02A6DC 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F210 7F02A6E0 10000002 */ b .L7F02A6EC +/* 05F214 7F02A6E4 24020001 */ li $v0, 1 +.L7F02A6E8: +/* 05F218 7F02A6E8 00001025 */ move $v0, $zero +.L7F02A6EC: +/* 05F21C 7F02A6EC 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F220 7F02A6F0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 05F224 7F02A6F4 8FB0001C */ lw $s0, 0x1c($sp) +/* 05F228 7F02A6F8 8FB10020 */ lw $s1, 0x20($sp) +/* 05F22C 7F02A6FC 03E00008 */ jr $ra +/* 05F230 7F02A700 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void actor_walks_and_fires(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E60 +.word 0x49742400 /*1000000.0*/ +.text +glabel actor_walks_and_fires +/* 05F234 7F02A704 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05F238 7F02A708 AFBF001C */ sw $ra, 0x1c($sp) +/* 05F23C 7F02A70C AFB00018 */ sw $s0, 0x18($sp) +/* 05F240 7F02A710 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F244 7F02A714 00808025 */ move $s0, $a0 +/* 05F248 7F02A718 50400032 */ beql $v0, $zero, .L7F02A7E4 +/* 05F24C 7F02A71C 00001025 */ move $v0, $zero +/* 05F250 7F02A720 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F254 7F02A724 0FC225E6 */ jal get_curplayer_positiondata +/* 05F258 7F02A728 AFAE0024 */ sw $t6, 0x24($sp) +/* 05F25C 7F02A72C 02002025 */ move $a0, $s0 +/* 05F260 7F02A730 00002825 */ move $a1, $zero +/* 05F264 7F02A734 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F268 7F02A738 AFA20020 */ sw $v0, 0x20($sp) +/* 05F26C 7F02A73C 14400007 */ bnez $v0, .L7F02A75C +/* 05F270 7F02A740 8FA30020 */ lw $v1, 0x20($sp) +/* 05F274 7F02A744 02002025 */ move $a0, $s0 +/* 05F278 7F02A748 24050001 */ li $a1, 1 +/* 05F27C 7F02A74C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F280 7F02A750 AFA30020 */ sw $v1, 0x20($sp) +/* 05F284 7F02A754 10400022 */ beqz $v0, .L7F02A7E0 +/* 05F288 7F02A758 8FA30020 */ lw $v1, 0x20($sp) +.L7F02A75C: +/* 05F28C 7F02A75C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05F290 7F02A760 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05F294 7F02A764 8E1800C8 */ lw $t8, 0xc8($s0) +/* 05F298 7F02A768 8FA20024 */ lw $v0, 0x24($sp) +/* 05F29C 7F02A76C 01F8C823 */ subu $t9, $t7, $t8 +/* 05F2A0 7F02A770 2B2100B5 */ slti $at, $t9, 0xb5 +/* 05F2A4 7F02A774 5420001B */ bnezl $at, .L7F02A7E4 +/* 05F2A8 7F02A778 00001025 */ move $v0, $zero +/* 05F2AC 7F02A77C C4640008 */ lwc1 $f4, 8($v1) +/* 05F2B0 7F02A780 C4460008 */ lwc1 $f6, 8($v0) +/* 05F2B4 7F02A784 C468000C */ lwc1 $f8, 0xc($v1) +/* 05F2B8 7F02A788 C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F2BC 7F02A78C 46062001 */ sub.s $f0, $f4, $f6 +/* 05F2C0 7F02A790 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F2C4 7F02A794 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F2C8 7F02A798 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F2CC 7F02A79C 46000102 */ mul.s $f4, $f0, $f0 +/* 05F2D0 7F02A7A0 3C018005 */ lui $at, %hi(D_80051E60) +/* 05F2D4 7F02A7A4 46128301 */ sub.s $f12, $f16, $f18 +/* 05F2D8 7F02A7A8 46021182 */ mul.s $f6, $f2, $f2 +/* 05F2DC 7F02A7AC C4321E60 */ lwc1 $f18, %lo(D_80051E60)($at) +/* 05F2E0 7F02A7B0 02002025 */ move $a0, $s0 +/* 05F2E4 7F02A7B4 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F2E8 7F02A7B8 46062200 */ add.s $f8, $f4, $f6 +/* 05F2EC 7F02A7BC 460A4400 */ add.s $f16, $f8, $f10 +/* 05F2F0 7F02A7C0 4610903E */ c.le.s $f18, $f16 +/* 05F2F4 7F02A7C4 00000000 */ nop +/* 05F2F8 7F02A7C8 45020006 */ bc1fl .L7F02A7E4 +/* 05F2FC 7F02A7CC 00001025 */ move $v0, $zero +/* 05F300 7F02A7D0 0FC0961F */ jal sub_GAME_7F02587C +/* 05F304 7F02A7D4 00002825 */ move $a1, $zero +/* 05F308 7F02A7D8 10000002 */ b .L7F02A7E4 +/* 05F30C 7F02A7DC 24020001 */ li $v0, 1 +.L7F02A7E0: +/* 05F310 7F02A7E0 00001025 */ move $v0, $zero +.L7F02A7E4: +/* 05F314 7F02A7E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F318 7F02A7E8 8FB00018 */ lw $s0, 0x18($sp) +/* 05F31C 7F02A7EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05F320 7F02A7F0 03E00008 */ jr $ra +/* 05F324 7F02A7F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_runs_and_fires(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E64 +.word 0x49742400 /*1000000.0*/ +.text +glabel actor_runs_and_fires +/* 05F328 7F02A7F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05F32C 7F02A7FC AFBF001C */ sw $ra, 0x1c($sp) +/* 05F330 7F02A800 AFB00018 */ sw $s0, 0x18($sp) +/* 05F334 7F02A804 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F338 7F02A808 00808025 */ move $s0, $a0 +/* 05F33C 7F02A80C 50400032 */ beql $v0, $zero, .L7F02A8D8 +/* 05F340 7F02A810 00001025 */ move $v0, $zero +/* 05F344 7F02A814 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F348 7F02A818 0FC225E6 */ jal get_curplayer_positiondata +/* 05F34C 7F02A81C AFAE0024 */ sw $t6, 0x24($sp) +/* 05F350 7F02A820 02002025 */ move $a0, $s0 +/* 05F354 7F02A824 00002825 */ move $a1, $zero +/* 05F358 7F02A828 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F35C 7F02A82C AFA20020 */ sw $v0, 0x20($sp) +/* 05F360 7F02A830 14400007 */ bnez $v0, .L7F02A850 +/* 05F364 7F02A834 8FA30020 */ lw $v1, 0x20($sp) +/* 05F368 7F02A838 02002025 */ move $a0, $s0 +/* 05F36C 7F02A83C 24050001 */ li $a1, 1 +/* 05F370 7F02A840 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F374 7F02A844 AFA30020 */ sw $v1, 0x20($sp) +/* 05F378 7F02A848 10400022 */ beqz $v0, .L7F02A8D4 +/* 05F37C 7F02A84C 8FA30020 */ lw $v1, 0x20($sp) +.L7F02A850: +/* 05F380 7F02A850 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05F384 7F02A854 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05F388 7F02A858 8E1800C8 */ lw $t8, 0xc8($s0) +/* 05F38C 7F02A85C 8FA20024 */ lw $v0, 0x24($sp) +/* 05F390 7F02A860 01F8C823 */ subu $t9, $t7, $t8 +/* 05F394 7F02A864 2B2100B5 */ slti $at, $t9, 0xb5 +/* 05F398 7F02A868 5420001B */ bnezl $at, .L7F02A8D8 +/* 05F39C 7F02A86C 00001025 */ move $v0, $zero +/* 05F3A0 7F02A870 C4640008 */ lwc1 $f4, 8($v1) +/* 05F3A4 7F02A874 C4460008 */ lwc1 $f6, 8($v0) +/* 05F3A8 7F02A878 C468000C */ lwc1 $f8, 0xc($v1) +/* 05F3AC 7F02A87C C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F3B0 7F02A880 46062001 */ sub.s $f0, $f4, $f6 +/* 05F3B4 7F02A884 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F3B8 7F02A888 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F3BC 7F02A88C 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F3C0 7F02A890 46000102 */ mul.s $f4, $f0, $f0 +/* 05F3C4 7F02A894 3C018005 */ lui $at, %hi(D_80051E64) +/* 05F3C8 7F02A898 46128301 */ sub.s $f12, $f16, $f18 +/* 05F3CC 7F02A89C 46021182 */ mul.s $f6, $f2, $f2 +/* 05F3D0 7F02A8A0 C4321E64 */ lwc1 $f18, %lo(D_80051E64)($at) +/* 05F3D4 7F02A8A4 02002025 */ move $a0, $s0 +/* 05F3D8 7F02A8A8 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F3DC 7F02A8AC 46062200 */ add.s $f8, $f4, $f6 +/* 05F3E0 7F02A8B0 460A4400 */ add.s $f16, $f8, $f10 +/* 05F3E4 7F02A8B4 4610903E */ c.le.s $f18, $f16 +/* 05F3E8 7F02A8B8 00000000 */ nop +/* 05F3EC 7F02A8BC 45020006 */ bc1fl .L7F02A8D8 +/* 05F3F0 7F02A8C0 00001025 */ move $v0, $zero +/* 05F3F4 7F02A8C4 0FC0961F */ jal sub_GAME_7F02587C +/* 05F3F8 7F02A8C8 24050001 */ li $a1, 1 +/* 05F3FC 7F02A8CC 10000002 */ b .L7F02A8D8 +/* 05F400 7F02A8D0 24020001 */ li $v0, 1 +.L7F02A8D4: +/* 05F404 7F02A8D4 00001025 */ move $v0, $zero +.L7F02A8D8: +/* 05F408 7F02A8D8 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F40C 7F02A8DC 8FB00018 */ lw $s0, 0x18($sp) +/* 05F410 7F02A8E0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05F414 7F02A8E4 03E00008 */ jr $ra +/* 05F418 7F02A8E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_rolls_fires_crouched(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E68 +.word 0x471c4000 /*40000.0*/ +.text +glabel actor_rolls_fires_crouched +/* 05F41C 7F02A8EC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 05F420 7F02A8F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05F424 7F02A8F4 AFB00018 */ sw $s0, 0x18($sp) +/* 05F428 7F02A8F8 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F42C 7F02A8FC 00808025 */ move $s0, $a0 +/* 05F430 7F02A900 50400041 */ beql $v0, $zero, .L7F02AA08 +/* 05F434 7F02A904 00001025 */ move $v0, $zero +/* 05F438 7F02A908 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F43C 7F02A90C 0FC225E6 */ jal get_curplayer_positiondata +/* 05F440 7F02A910 AFAE0044 */ sw $t6, 0x44($sp) +/* 05F444 7F02A914 02002025 */ move $a0, $s0 +/* 05F448 7F02A918 00002825 */ move $a1, $zero +/* 05F44C 7F02A91C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F450 7F02A920 AFA20040 */ sw $v0, 0x40($sp) +/* 05F454 7F02A924 14400007 */ bnez $v0, .L7F02A944 +/* 05F458 7F02A928 8FA30040 */ lw $v1, 0x40($sp) +/* 05F45C 7F02A92C 02002025 */ move $a0, $s0 +/* 05F460 7F02A930 24050001 */ li $a1, 1 +/* 05F464 7F02A934 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F468 7F02A938 AFA30040 */ sw $v1, 0x40($sp) +/* 05F46C 7F02A93C 10400031 */ beqz $v0, .L7F02AA04 +/* 05F470 7F02A940 8FA30040 */ lw $v1, 0x40($sp) +.L7F02A944: +/* 05F474 7F02A944 8FA20044 */ lw $v0, 0x44($sp) +/* 05F478 7F02A948 C4640008 */ lwc1 $f4, 8($v1) +/* 05F47C 7F02A94C C468000C */ lwc1 $f8, 0xc($v1) +/* 05F480 7F02A950 C4460008 */ lwc1 $f6, 8($v0) +/* 05F484 7F02A954 C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F488 7F02A958 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F48C 7F02A95C 46062001 */ sub.s $f0, $f4, $f6 +/* 05F490 7F02A960 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F494 7F02A964 3C018005 */ lui $at, %hi(D_80051E68) +/* 05F498 7F02A968 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F49C 7F02A96C 46000102 */ mul.s $f4, $f0, $f0 +/* 05F4A0 7F02A970 46128301 */ sub.s $f12, $f16, $f18 +/* 05F4A4 7F02A974 46021182 */ mul.s $f6, $f2, $f2 +/* 05F4A8 7F02A978 C4321E68 */ lwc1 $f18, %lo(D_80051E68)($at) +/* 05F4AC 7F02A97C 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F4B0 7F02A980 46062200 */ add.s $f8, $f4, $f6 +/* 05F4B4 7F02A984 460A4400 */ add.s $f16, $f8, $f10 +/* 05F4B8 7F02A988 4610903E */ c.le.s $f18, $f16 +/* 05F4BC 7F02A98C 00000000 */ nop +/* 05F4C0 7F02A990 4502001D */ bc1fl .L7F02AA08 +/* 05F4C4 7F02A994 00001025 */ move $v0, $zero +/* 05F4C8 7F02A998 0C002914 */ jal get_random_value +/* 05F4CC 7F02A99C 00000000 */ nop +/* 05F4D0 7F02A9A0 30450001 */ andi $a1, $v0, 1 +/* 05F4D4 7F02A9A4 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05F4D8 7F02A9A8 01E02825 */ move $a1, $t7 +/* 05F4DC 7F02A9AC AFAF002C */ sw $t7, 0x2c($sp) +/* 05F4E0 7F02A9B0 02002025 */ move $a0, $s0 +/* 05F4E4 7F02A9B4 0FC0A83B */ jal sub_GAME_7F02A0EC +/* 05F4E8 7F02A9B8 3C064348 */ lui $a2, 0x4348 +/* 05F4EC 7F02A9BC 10400006 */ beqz $v0, .L7F02A9D8 +/* 05F4F0 7F02A9C0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05F4F4 7F02A9C4 02002025 */ move $a0, $s0 +/* 05F4F8 7F02A9C8 0FC09710 */ jal sub_GAME_7F025C40 +/* 05F4FC 7F02A9CC 00E02825 */ move $a1, $a3 +/* 05F500 7F02A9D0 1000000D */ b .L7F02AA08 +/* 05F504 7F02A9D4 24020001 */ li $v0, 1 +.L7F02A9D8: +/* 05F508 7F02A9D8 2CE50001 */ sltiu $a1, $a3, 1 +/* 05F50C 7F02A9DC AFA50024 */ sw $a1, 0x24($sp) +/* 05F510 7F02A9E0 02002025 */ move $a0, $s0 +/* 05F514 7F02A9E4 0FC0A83B */ jal sub_GAME_7F02A0EC +/* 05F518 7F02A9E8 3C064348 */ lui $a2, 0x4348 +/* 05F51C 7F02A9EC 10400005 */ beqz $v0, .L7F02AA04 +/* 05F520 7F02A9F0 8FA50024 */ lw $a1, 0x24($sp) +/* 05F524 7F02A9F4 0FC09710 */ jal sub_GAME_7F025C40 +/* 05F528 7F02A9F8 02002025 */ move $a0, $s0 +/* 05F52C 7F02A9FC 10000002 */ b .L7F02AA08 +/* 05F530 7F02AA00 24020001 */ li $v0, 1 +.L7F02AA04: +/* 05F534 7F02AA04 00001025 */ move $v0, $zero +.L7F02AA08: +/* 05F538 7F02AA08 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F53C 7F02AA0C 8FB00018 */ lw $s0, 0x18($sp) +/* 05F540 7F02AA10 27BD0048 */ addiu $sp, $sp, 0x48 +/* 05F544 7F02AA14 03E00008 */ jr $ra +/* 05F548 7F02AA18 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_aim_at_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_aim_at_actor +/* 05F54C 7F02AA1C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F550 7F02AA20 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F554 7F02AA24 AFA40018 */ sw $a0, 0x18($sp) +/* 05F558 7F02AA28 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F55C 7F02AA2C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F560 7F02AA30 AFA60020 */ sw $a2, 0x20($sp) +/* 05F564 7F02AA34 1040000F */ beqz $v0, .L7F02AA74 +/* 05F568 7F02AA38 8FA40018 */ lw $a0, 0x18($sp) +/* 05F56C 7F02AA3C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F570 7F02AA40 00002825 */ move $a1, $zero +/* 05F574 7F02AA44 14400005 */ bnez $v0, .L7F02AA5C +/* 05F578 7F02AA48 8FA40018 */ lw $a0, 0x18($sp) +/* 05F57C 7F02AA4C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F580 7F02AA50 24050001 */ li $a1, 1 +/* 05F584 7F02AA54 50400008 */ beql $v0, $zero, .L7F02AA78 +/* 05F588 7F02AA58 00001025 */ move $v0, $zero +.L7F02AA5C: +/* 05F58C 7F02AA5C 8FA40018 */ lw $a0, 0x18($sp) +/* 05F590 7F02AA60 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F594 7F02AA64 0FC09558 */ jal sub_GAME_7F025560 +/* 05F598 7F02AA68 8FA60020 */ lw $a2, 0x20($sp) +/* 05F59C 7F02AA6C 10000002 */ b .L7F02AA78 +/* 05F5A0 7F02AA70 24020001 */ li $v0, 1 +.L7F02AA74: +/* 05F5A4 7F02AA74 00001025 */ move $v0, $zero +.L7F02AA78: +/* 05F5A8 7F02AA78 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F5AC 7F02AA7C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F5B0 7F02AA80 03E00008 */ jr $ra +/* 05F5B4 7F02AA84 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_kneel_aim_at_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_kneel_aim_at_actor +/* 05F5B8 7F02AA88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F5BC 7F02AA8C AFBF0014 */ sw $ra, 0x14($sp) +/* 05F5C0 7F02AA90 AFA40018 */ sw $a0, 0x18($sp) +/* 05F5C4 7F02AA94 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F5C8 7F02AA98 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F5CC 7F02AA9C AFA60020 */ sw $a2, 0x20($sp) +/* 05F5D0 7F02AAA0 1040000F */ beqz $v0, .L7F02AAE0 +/* 05F5D4 7F02AAA4 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5D8 7F02AAA8 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F5DC 7F02AAAC 00002825 */ move $a1, $zero +/* 05F5E0 7F02AAB0 14400005 */ bnez $v0, .L7F02AAC8 +/* 05F5E4 7F02AAB4 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5E8 7F02AAB8 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F5EC 7F02AABC 24050001 */ li $a1, 1 +/* 05F5F0 7F02AAC0 50400008 */ beql $v0, $zero, .L7F02AAE4 +/* 05F5F4 7F02AAC4 00001025 */ move $v0, $zero +.L7F02AAC8: +/* 05F5F8 7F02AAC8 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5FC 7F02AACC 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F600 7F02AAD0 0FC095BC */ jal sub_GAME_7F0256F0 +/* 05F604 7F02AAD4 8FA60020 */ lw $a2, 0x20($sp) +/* 05F608 7F02AAD8 10000002 */ b .L7F02AAE4 +/* 05F60C 7F02AADC 24020001 */ li $v0, 1 +.L7F02AAE0: +/* 05F610 7F02AAE0 00001025 */ move $v0, $zero +.L7F02AAE4: +/* 05F614 7F02AAE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F618 7F02AAE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F61C 7F02AAEC 03E00008 */ jr $ra +/* 05F620 7F02AAF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02AAF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02AAF4 +/* 05F624 7F02AAF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F628 7F02AAF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F62C 7F02AAFC 808E0007 */ lb $t6, 7($a0) +/* 05F630 7F02AB00 24010008 */ li $at, 8 +/* 05F634 7F02AB04 00001025 */ move $v0, $zero +/* 05F638 7F02AB08 15C1000A */ bne $t6, $at, .L7F02AB34 +/* 05F63C 7F02AB0C 00000000 */ nop +/* 05F640 7F02AB10 8C8F004C */ lw $t7, 0x4c($a0) +/* 05F644 7F02AB14 31F80060 */ andi $t8, $t7, 0x60 +/* 05F648 7F02AB18 13000006 */ beqz $t8, .L7F02AB34 +/* 05F64C 7F02AB1C 00000000 */ nop +/* 05F650 7F02AB20 AC85004C */ sw $a1, 0x4c($a0) +/* 05F654 7F02AB24 0FC093E3 */ jal sub_GAME_7F024F8C +/* 05F658 7F02AB28 AC860050 */ sw $a2, 0x50($a0) +/* 05F65C 7F02AB2C 10000001 */ b .L7F02AB34 +/* 05F660 7F02AB30 24020001 */ li $v0, 1 +.L7F02AB34: +/* 05F664 7F02AB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F668 7F02AB38 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F66C 7F02AB3C 03E00008 */ jr $ra +/* 05F670 7F02AB40 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_set_actor_standing_still(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_set_actor_standing_still +/* 05F674 7F02AB44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F678 7F02AB48 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F67C 7F02AB4C AFA5001C */ sw $a1, 0x1c($sp) +/* 05F680 7F02AB50 AFA60020 */ sw $a2, 0x20($sp) +/* 05F684 7F02AB54 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F688 7F02AB58 AFA40018 */ sw $a0, 0x18($sp) +/* 05F68C 7F02AB5C 10400010 */ beqz $v0, .L7F02ABA0 +/* 05F690 7F02AB60 8FA40018 */ lw $a0, 0x18($sp) +/* 05F694 7F02AB64 808E0007 */ lb $t6, 7($a0) +/* 05F698 7F02AB68 24010001 */ li $at, 1 +/* 05F69C 7F02AB6C 51C10005 */ beql $t6, $at, .L7F02AB84 +/* 05F6A0 7F02AB70 8FAF001C */ lw $t7, 0x1c($sp) +/* 05F6A4 7F02AB74 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 05F6A8 7F02AB78 AFA40018 */ sw $a0, 0x18($sp) +/* 05F6AC 7F02AB7C 8FA40018 */ lw $a0, 0x18($sp) +/* 05F6B0 7F02AB80 8FAF001C */ lw $t7, 0x1c($sp) +.L7F02AB84: +/* 05F6B4 7F02AB84 24020001 */ li $v0, 1 +/* 05F6B8 7F02AB88 AC8F0030 */ sw $t7, 0x30($a0) +/* 05F6BC 7F02AB8C 8FB80020 */ lw $t8, 0x20($sp) +/* 05F6C0 7F02AB90 AC800038 */ sw $zero, 0x38($a0) +/* 05F6C4 7F02AB94 AC800040 */ sw $zero, 0x40($a0) +/* 05F6C8 7F02AB98 10000002 */ b .L7F02ABA4 +/* 05F6CC 7F02AB9C AC980034 */ sw $t8, 0x34($a0) +.L7F02ABA0: +/* 05F6D0 7F02ABA0 00001025 */ move $v0, $zero +.L7F02ABA4: +/* 05F6D4 7F02ABA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F6D8 7F02ABA8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F6DC 7F02ABAC 03E00008 */ jr $ra +/* 05F6E0 7F02ABB0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_moves_to_preset_at_speed(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E6C +.word 0x3f8ccccd /*1.1*/ +.text +glabel actor_moves_to_preset_at_speed +/* 05F6E4 7F02ABB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05F6E8 7F02ABB8 AFB10020 */ sw $s1, 0x20($sp) +/* 05F6EC 7F02ABBC AFB0001C */ sw $s0, 0x1c($sp) +/* 05F6F0 7F02ABC0 00A08025 */ move $s0, $a1 +/* 05F6F4 7F02ABC4 00808825 */ move $s1, $a0 +/* 05F6F8 7F02ABC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 05F6FC 7F02ABCC 04A0005B */ bltz $a1, .L7F02AD3C +/* 05F700 7F02ABD0 AFA60048 */ sw $a2, 0x48($sp) +/* 05F704 7F02ABD4 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F708 7F02ABD8 00000000 */ nop +/* 05F70C 7F02ABDC 10400057 */ beqz $v0, .L7F02AD3C +/* 05F710 7F02ABE0 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 05F714 7F02ABE4 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 05F718 7F02ABE8 02202025 */ move $a0, $s1 +/* 05F71C 7F02ABEC 29C1000A */ slti $at, $t6, 0xa +/* 05F720 7F02ABF0 50200053 */ beql $at, $zero, .L7F02AD40 +/* 05F724 7F02ABF4 00001025 */ move $v0, $zero +/* 05F728 7F02ABF8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 05F72C 7F02ABFC 02002825 */ move $a1, $s0 +/* 05F730 7F02AC00 28412710 */ slti $at, $v0, 0x2710 +/* 05F734 7F02AC04 1020000A */ beqz $at, .L7F02AC30 +/* 05F738 7F02AC08 0002C900 */ sll $t9, $v0, 4 +/* 05F73C 7F02AC0C 00027880 */ sll $t7, $v0, 2 +/* 05F740 7F02AC10 01E27823 */ subu $t7, $t7, $v0 +/* 05F744 7F02AC14 000F7880 */ sll $t7, $t7, 2 +/* 05F748 7F02AC18 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05F74C 7F02AC1C 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05F750 7F02AC20 01E27823 */ subu $t7, $t7, $v0 +/* 05F754 7F02AC24 000F7880 */ sll $t7, $t7, 2 +/* 05F758 7F02AC28 10000009 */ b .L7F02AC50 +/* 05F75C 7F02AC2C 01F88021 */ addu $s0, $t7, $t8 +.L7F02AC30: +/* 05F760 7F02AC30 3C088007 */ lui $t0, %hi(ptr_2xxxpresets) +/* 05F764 7F02AC34 8D085D1C */ lw $t0, %lo(ptr_2xxxpresets)($t0) +/* 05F768 7F02AC38 0322C821 */ addu $t9, $t9, $v0 +/* 05F76C 7F02AC3C 0019C880 */ sll $t9, $t9, 2 +/* 05F770 7F02AC40 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 05F774 7F02AC44 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 05F778 7F02AC48 03288021 */ addu $s0, $t9, $t0 +/* 05F77C 7F02AC4C 02018021 */ addu $s0, $s0, $at +.L7F02AC50: +/* 05F780 7F02AC50 8E090028 */ lw $t1, 0x28($s0) +/* 05F784 7F02AC54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05F788 7F02AC58 11200038 */ beqz $t1, .L7F02AD3C +/* 05F78C 7F02AC5C AFA90028 */ sw $t1, 0x28($sp) +/* 05F790 7F02AC60 C6040010 */ lwc1 $f4, 0x10($s0) +/* 05F794 7F02AC64 44813000 */ mtc1 $at, $f6 +/* 05F798 7F02AC68 3C018005 */ lui $at, %hi(D_80051E6C) +/* 05F79C 7F02AC6C 02202025 */ move $a0, $s1 +/* 05F7A0 7F02AC70 4606203C */ c.lt.s $f4, $f6 +/* 05F7A4 7F02AC74 02002825 */ move $a1, $s0 +/* 05F7A8 7F02AC78 8FA60028 */ lw $a2, 0x28($sp) +/* 05F7AC 7F02AC7C 45000029 */ bc1f .L7F02AD24 +/* 05F7B0 7F02AC80 00000000 */ nop +/* 05F7B4 7F02AC84 AFA90038 */ sw $t1, 0x38($sp) +/* 05F7B8 7F02AC88 C4201E6C */ lwc1 $f0, %lo(D_80051E6C)($at) +/* 05F7BC 7F02AC8C C62A0024 */ lwc1 $f10, 0x24($s1) +/* 05F7C0 7F02AC90 C608000C */ lwc1 $f8, 0xc($s0) +/* 05F7C4 7F02AC94 C6040000 */ lwc1 $f4, ($s0) +/* 05F7C8 7F02AC98 46005402 */ mul.s $f16, $f10, $f0 +/* 05F7CC 7F02AC9C 27A40038 */ addiu $a0, $sp, 0x38 +/* 05F7D0 7F02ACA0 46104482 */ mul.s $f18, $f8, $f16 +/* 05F7D4 7F02ACA4 46049180 */ add.s $f6, $f18, $f4 +/* 05F7D8 7F02ACA8 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 05F7DC 7F02ACAC C6280024 */ lwc1 $f8, 0x24($s1) +/* 05F7E0 7F02ACB0 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 05F7E4 7F02ACB4 C6040004 */ lwc1 $f4, 4($s0) +/* 05F7E8 7F02ACB8 46004402 */ mul.s $f16, $f8, $f0 +/* 05F7EC 7F02ACBC 44073000 */ mfc1 $a3, $f6 +/* 05F7F0 7F02ACC0 46105482 */ mul.s $f18, $f10, $f16 +/* 05F7F4 7F02ACC4 46049200 */ add.s $f8, $f18, $f4 +/* 05F7F8 7F02ACC8 E7A80030 */ swc1 $f8, 0x30($sp) +/* 05F7FC 7F02ACCC C6300024 */ lwc1 $f16, 0x24($s1) +/* 05F800 7F02ACD0 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 05F804 7F02ACD4 C6080008 */ lwc1 $f8, 8($s0) +/* 05F808 7F02ACD8 46008482 */ mul.s $f18, $f16, $f0 +/* 05F80C 7F02ACDC 00000000 */ nop +/* 05F810 7F02ACE0 46125102 */ mul.s $f4, $f10, $f18 +/* 05F814 7F02ACE4 46082400 */ add.s $f16, $f4, $f8 +/* 05F818 7F02ACE8 E7B00034 */ swc1 $f16, 0x34($sp) +/* 05F81C 7F02ACEC 8E060008 */ lw $a2, 8($s0) +/* 05F820 7F02ACF0 8E050000 */ lw $a1, ($s0) +/* 05F824 7F02ACF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 05F828 7F02ACF8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05F82C 7F02ACFC 1040000F */ beqz $v0, .L7F02AD3C +/* 05F830 7F02AD00 02202025 */ move $a0, $s1 +/* 05F834 7F02AD04 27A5002C */ addiu $a1, $sp, 0x2c +/* 05F838 7F02AD08 8FA60038 */ lw $a2, 0x38($sp) +/* 05F83C 7F02AD0C 0FC0A377 */ jal plot_course_for_actor +/* 05F840 7F02AD10 8FA70048 */ lw $a3, 0x48($sp) +/* 05F844 7F02AD14 5040000A */ beql $v0, $zero, .L7F02AD40 +/* 05F848 7F02AD18 00001025 */ move $v0, $zero +/* 05F84C 7F02AD1C 10000008 */ b .L7F02AD40 +/* 05F850 7F02AD20 24020001 */ li $v0, 1 +.L7F02AD24: +/* 05F854 7F02AD24 0FC0A377 */ jal plot_course_for_actor +/* 05F858 7F02AD28 8FA70048 */ lw $a3, 0x48($sp) +/* 05F85C 7F02AD2C 50400004 */ beql $v0, $zero, .L7F02AD40 +/* 05F860 7F02AD30 00001025 */ move $v0, $zero +/* 05F864 7F02AD34 10000002 */ b .L7F02AD40 +/* 05F868 7F02AD38 24020001 */ li $v0, 1 +.L7F02AD3C: +/* 05F86C 7F02AD3C 00001025 */ move $v0, $zero +.L7F02AD40: +/* 05F870 7F02AD40 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F874 7F02AD44 8FB0001C */ lw $s0, 0x1c($sp) +/* 05F878 7F02AD48 8FB10020 */ lw $s1, 0x20($sp) +/* 05F87C 7F02AD4C 03E00008 */ jr $ra +/* 05F880 7F02AD50 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void if_actor_able_set_on_path(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_actor_able_set_on_path +/* 05F884 7F02AD54 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F888 7F02AD58 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F88C 7F02AD5C 10A00009 */ beqz $a1, .L7F02AD84 +/* 05F890 7F02AD60 AFA40018 */ sw $a0, 0x18($sp) +/* 05F894 7F02AD64 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F898 7F02AD68 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F89C 7F02AD6C 10400005 */ beqz $v0, .L7F02AD84 +/* 05F8A0 7F02AD70 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F8A4 7F02AD74 0FC0A43E */ jal set_actor_on_path +/* 05F8A8 7F02AD78 8FA40018 */ lw $a0, 0x18($sp) +/* 05F8AC 7F02AD7C 10000002 */ b .L7F02AD88 +/* 05F8B0 7F02AD80 24020001 */ li $v0, 1 +.L7F02AD84: +/* 05F8B4 7F02AD84 00001025 */ move $v0, $zero +.L7F02AD88: +/* 05F8B8 7F02AD88 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F8BC 7F02AD8C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F8C0 7F02AD90 03E00008 */ jr $ra +/* 05F8C4 7F02AD94 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02AD98(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E70 +.word 0x3eb2b8c3 /*0.34906587*/ +glabel D_80051E74 +.word 0x40bde44f /*5.9341197*/ +glabel D_80051E78 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E7C +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E80 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E84 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E88 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E8C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02AD98 +/* 05F8C8 7F02AD98 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 05F8CC 7F02AD9C AFBF0024 */ sw $ra, 0x24($sp) +/* 05F8D0 7F02ADA0 AFB00020 */ sw $s0, 0x20($sp) +/* 05F8D4 7F02ADA4 808E0008 */ lb $t6, 8($a0) +/* 05F8D8 7F02ADA8 00808025 */ move $s0, $a0 +/* 05F8DC 7F02ADAC 5DC001C8 */ bgtzl $t6, .L7F02B4D0 +/* 05F8E0 7F02ADB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F8E4 7F02ADB4 8C8F002C */ lw $t7, 0x2c($a0) +/* 05F8E8 7F02ADB8 51E00012 */ beql $t7, $zero, .L7F02AE04 +/* 05F8EC 7F02ADBC 8E050030 */ lw $a1, 0x30($s0) +/* 05F8F0 7F02ADC0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05F8F4 7F02ADC4 8C84001C */ lw $a0, 0x1c($a0) +/* 05F8F8 7F02ADC8 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 05F8FC 7F02ADCC 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 05F900 7F02ADD0 8E04001C */ lw $a0, 0x1c($s0) +/* 05F904 7F02ADD4 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05F908 7F02ADD8 02002025 */ move $a0, $s0 +/* 05F90C 7F02ADDC 4604003E */ c.le.s $f0, $f4 +/* 05F910 7F02ADE0 00000000 */ nop +/* 05F914 7F02ADE4 45000004 */ bc1f .L7F02ADF8 +/* 05F918 7F02ADE8 00000000 */ nop +/* 05F91C 7F02ADEC 0FC08E52 */ jal sub_GAME_7F023948 +/* 05F920 7F02ADF0 3C054100 */ lui $a1, 0x4100 +/* 05F924 7F02ADF4 AE00002C */ sw $zero, 0x2c($s0) +.L7F02ADF8: +/* 05F928 7F02ADF8 100001B4 */ b .L7F02B4CC +/* 05F92C 7F02ADFC A2000008 */ sb $zero, 8($s0) +/* 05F930 7F02AE00 8E050030 */ lw $a1, 0x30($s0) +.L7F02AE04: +/* 05F934 7F02AE04 18A00095 */ blez $a1, .L7F02B05C +/* 05F938 7F02AE08 00000000 */ nop +/* 05F93C 7F02AE0C 8E180038 */ lw $t8, 0x38($s0) +/* 05F940 7F02AE10 02002025 */ move $a0, $s0 +/* 05F944 7F02AE14 1300001C */ beqz $t8, .L7F02AE88 +/* 05F948 7F02AE18 00000000 */ nop +/* 05F94C 7F02AE1C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05F950 7F02AE20 8E04001C */ lw $a0, 0x1c($s0) +/* 05F954 7F02AE24 94590004 */ lhu $t9, 4($v0) +/* 05F958 7F02AE28 44804000 */ mtc1 $zero, $f8 +/* 05F95C 7F02AE2C 8E05003C */ lw $a1, 0x3c($s0) +/* 05F960 7F02AE30 272CFFFF */ addiu $t4, $t9, -1 +/* 05F964 7F02AE34 448C3000 */ mtc1 $t4, $f6 +/* 05F968 7F02AE38 02002025 */ move $a0, $s0 +/* 05F96C 7F02AE3C 3C073F80 */ lui $a3, 0x3f80 +/* 05F970 7F02AE40 46803020 */ cvt.s.w $f0, $f6 +/* 05F974 7F02AE44 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05F978 7F02AE48 44060000 */ mfc1 $a2, $f0 +/* 05F97C 7F02AE4C 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 05F980 7F02AE50 00000000 */ nop +/* 05F984 7F02AE54 24030001 */ li $v1, 1 +/* 05F988 7F02AE58 1043007E */ beq $v0, $v1, .L7F02B054 +/* 05F98C 7F02AE5C AE02003C */ sw $v0, 0x3c($s0) +/* 05F990 7F02AE60 02002025 */ move $a0, $s0 +/* 05F994 7F02AE64 0FC08E52 */ jal sub_GAME_7F023948 +/* 05F998 7F02AE68 3C054100 */ lui $a1, 0x4100 +/* 05F99C 7F02AE6C 8E0D0030 */ lw $t5, 0x30($s0) +/* 05F9A0 7F02AE70 AE000038 */ sw $zero, 0x38($s0) +/* 05F9A4 7F02AE74 31AE0010 */ andi $t6, $t5, 0x10 +/* 05F9A8 7F02AE78 11C00076 */ beqz $t6, .L7F02B054 +/* 05F9AC 7F02AE7C 00000000 */ nop +/* 05F9B0 7F02AE80 10000074 */ b .L7F02B054 +/* 05F9B4 7F02AE84 AE000030 */ sw $zero, 0x30($s0) +.L7F02AE88: +/* 05F9B8 7F02AE88 0FC0942F */ jal sub_GAME_7F0250BC +/* 05F9BC 7F02AE8C 8E060034 */ lw $a2, 0x34($s0) +/* 05F9C0 7F02AE90 3C018005 */ lui $at, %hi(D_80051E70) +/* 05F9C4 7F02AE94 C42A1E70 */ lwc1 $f10, %lo(D_80051E70)($at) +/* 05F9C8 7F02AE98 3C018005 */ lui $at, %hi(D_80051E74) +/* 05F9CC 7F02AE9C 4600503C */ c.lt.s $f10, $f0 +/* 05F9D0 7F02AEA0 00000000 */ nop +/* 05F9D4 7F02AEA4 45020067 */ bc1fl .L7F02B044 +/* 05F9D8 7F02AEA8 8E180030 */ lw $t8, 0x30($s0) +/* 05F9DC 7F02AEAC C4301E74 */ lwc1 $f16, %lo(D_80051E74)($at) +/* 05F9E0 7F02AEB0 02002025 */ move $a0, $s0 +/* 05F9E4 7F02AEB4 4610003C */ c.lt.s $f0, $f16 +/* 05F9E8 7F02AEB8 00000000 */ nop +/* 05F9EC 7F02AEBC 45020061 */ bc1fl .L7F02B044 +/* 05F9F0 7F02AEC0 8E180030 */ lw $t8, 0x30($s0) +/* 05F9F4 7F02AEC4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05F9F8 7F02AEC8 24050001 */ li $a1, 1 +/* 05F9FC 7F02AECC AFA200A0 */ sw $v0, 0xa0($sp) +/* 05FA00 7F02AED0 02002025 */ move $a0, $s0 +/* 05FA04 7F02AED4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05FA08 7F02AED8 00002825 */ move $a1, $zero +/* 05FA0C 7F02AEDC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 05FA10 7F02AEE0 24030001 */ li $v1, 1 +/* 05FA14 7F02AEE4 AFA2009C */ sw $v0, 0x9c($sp) +/* 05FA18 7F02AEE8 AE030038 */ sw $v1, 0x38($s0) +/* 05FA1C 7F02AEEC 10800003 */ beqz $a0, .L7F02AEFC +/* 05FA20 7F02AEF0 AE03003C */ sw $v1, 0x3c($s0) +/* 05FA24 7F02AEF4 1440000D */ bnez $v0, .L7F02AF2C +/* 05FA28 7F02AEF8 00000000 */ nop +.L7F02AEFC: +/* 05FA2C 7F02AEFC 14800003 */ bnez $a0, .L7F02AF0C +/* 05FA30 7F02AF00 00000000 */ nop +/* 05FA34 7F02AF04 10400009 */ beqz $v0, .L7F02AF2C +/* 05FA38 7F02AF08 00000000 */ nop +.L7F02AF0C: +/* 05FA3C 7F02AF0C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05FA40 7F02AF10 00000000 */ nop +/* 05FA44 7F02AF14 14400005 */ bnez $v0, .L7F02AF2C +/* 05FA48 7F02AF18 00000000 */ nop +/* 05FA4C 7F02AF1C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05FA50 7F02AF20 8FA4009C */ lw $a0, 0x9c($sp) +/* 05FA54 7F02AF24 10400022 */ beqz $v0, .L7F02AFB0 +/* 05FA58 7F02AF28 8FAE009C */ lw $t6, 0x9c($sp) +.L7F02AF2C: +/* 05FA5C 7F02AF2C 0C002914 */ jal get_random_value +/* 05FA60 7F02AF30 00000000 */ nop +/* 05FA64 7F02AF34 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05FA68 7F02AF38 44819000 */ mtc1 $at, $f18 +/* 05FA6C 7F02AF3C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05FA70 7F02AF40 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 05FA74 7F02AF44 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05FA78 7F02AF48 44812000 */ mtc1 $at, $f4 +/* 05FA7C 7F02AF4C 8E04001C */ lw $a0, 0x1c($s0) +/* 05FA80 7F02AF50 3C030001 */ lui $v1, %hi(0x00008204) # $v1, 1 +/* 05FA84 7F02AF54 24638204 */ addiu $v1, %lo(0x00008204) # addiu $v1, $v1, -0x7dfc +/* 05FA88 7F02AF58 AFA30034 */ sw $v1, 0x34($sp) +/* 05FA8C 7F02AF5C 30460001 */ andi $a2, $v0, 1 +/* 05FA90 7F02AF60 24070000 */ li $a3, 0 +/* 05FA94 7F02AF64 E7B20010 */ swc1 $f18, 0x10($sp) +/* 05FA98 7F02AF68 006F2821 */ addu $a1, $v1, $t7 +/* 05FA9C 7F02AF6C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05FAA0 7F02AF70 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05FAA4 7F02AF74 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05FAA8 7F02AF78 8FA30034 */ lw $v1, 0x34($sp) +/* 05FAAC 7F02AF7C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05FAB0 7F02AF80 8E04001C */ lw $a0, 0x1c($s0) +/* 05FAB4 7F02AF84 0078C821 */ addu $t9, $v1, $t8 +/* 05FAB8 7F02AF88 972C0004 */ lhu $t4, 4($t9) +/* 05FABC 7F02AF8C 258DFFFF */ addiu $t5, $t4, -1 +/* 05FAC0 7F02AF90 448D3000 */ mtc1 $t5, $f6 +/* 05FAC4 7F02AF94 00000000 */ nop +/* 05FAC8 7F02AF98 468031A0 */ cvt.s.w $f6, $f6 +/* 05FACC 7F02AF9C 44053000 */ mfc1 $a1, $f6 +/* 05FAD0 7F02AFA0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05FAD4 7F02AFA4 00000000 */ nop +/* 05FAD8 7F02AFA8 1000002A */ b .L7F02B054 +/* 05FADC 7F02AFAC 00000000 */ nop +.L7F02AFB0: +/* 05FAE0 7F02AFB0 15C00002 */ bnez $t6, .L7F02AFBC +/* 05FAE4 7F02AFB4 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 05FAE8 7F02AFB8 11E00026 */ beqz $t7, .L7F02B054 +.L7F02AFBC: +/* 05FAEC 7F02AFBC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05FAF0 7F02AFC0 44814000 */ mtc1 $at, $f8 +/* 05FAF4 7F02AFC4 8FA600A0 */ lw $a2, 0xa0($sp) +/* 05FAF8 7F02AFC8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05FAFC 7F02AFCC 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05FB00 7F02AFD0 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05FB04 7F02AFD4 44815000 */ mtc1 $at, $f10 +/* 05FB08 7F02AFD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05FB0C 7F02AFDC 3C020000 */ lui $v0, %hi(0x00004018) # $v0, 0 +/* 05FB10 7F02AFE0 24424018 */ addiu $v0, %lo(0x00004018) # addiu $v0, $v0, 0x4018 +/* 05FB14 7F02AFE4 0006C82B */ sltu $t9, $zero, $a2 +/* 05FB18 7F02AFE8 03203025 */ move $a2, $t9 +/* 05FB1C 7F02AFEC AFA20034 */ sw $v0, 0x34($sp) +/* 05FB20 7F02AFF0 24070000 */ li $a3, 0 +/* 05FB24 7F02AFF4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05FB28 7F02AFF8 00582821 */ addu $a1, $v0, $t8 +/* 05FB2C 7F02AFFC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05FB30 7F02B000 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05FB34 7F02B004 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 05FB38 7F02B008 8FA20034 */ lw $v0, 0x34($sp) +/* 05FB3C 7F02B00C 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05FB40 7F02B010 8E04001C */ lw $a0, 0x1c($s0) +/* 05FB44 7F02B014 004C6821 */ addu $t5, $v0, $t4 +/* 05FB48 7F02B018 95AE0004 */ lhu $t6, 4($t5) +/* 05FB4C 7F02B01C 25CFFFFF */ addiu $t7, $t6, -1 +/* 05FB50 7F02B020 448F8000 */ mtc1 $t7, $f16 +/* 05FB54 7F02B024 00000000 */ nop +/* 05FB58 7F02B028 46808420 */ cvt.s.w $f16, $f16 +/* 05FB5C 7F02B02C 44058000 */ mfc1 $a1, $f16 +/* 05FB60 7F02B030 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05FB64 7F02B034 00000000 */ nop +/* 05FB68 7F02B038 10000006 */ b .L7F02B054 +/* 05FB6C 7F02B03C 00000000 */ nop +/* 05FB70 7F02B040 8E180030 */ lw $t8, 0x30($s0) +.L7F02B044: +/* 05FB74 7F02B044 33190010 */ andi $t9, $t8, 0x10 +/* 05FB78 7F02B048 13200002 */ beqz $t9, .L7F02B054 +/* 05FB7C 7F02B04C 00000000 */ nop +/* 05FB80 7F02B050 AE000030 */ sw $zero, 0x30($s0) +.L7F02B054: +/* 05FB84 7F02B054 1000011D */ b .L7F02B4CC +/* 05FB88 7F02B058 A2000008 */ sb $zero, 8($s0) +.L7F02B05C: +/* 05FB8C 7F02B05C 0C002914 */ jal get_random_value +/* 05FB90 7F02B060 00000000 */ nop +/* 05FB94 7F02B064 24010005 */ li $at, 5 +/* 05FB98 7F02B068 0041001B */ divu $zero, $v0, $at +/* 05FB9C 7F02B06C 8E0E0040 */ lw $t6, 0x40($s0) +/* 05FBA0 7F02B070 00006010 */ mfhi $t4 +/* 05FBA4 7F02B074 258D000E */ addiu $t5, $t4, 0xe +/* 05FBA8 7F02B078 11C00114 */ beqz $t6, .L7F02B4CC +/* 05FBAC 7F02B07C A20D0008 */ sb $t5, 8($s0) +/* 05FBB0 7F02B080 8E0F0014 */ lw $t7, 0x14($s0) +/* 05FBB4 7F02B084 31F80080 */ andi $t8, $t7, 0x80 +/* 05FBB8 7F02B088 53000004 */ beql $t8, $zero, .L7F02B09C +/* 05FBBC 7F02B08C 8E190044 */ lw $t9, 0x44($s0) +/* 05FBC0 7F02B090 1000010E */ b .L7F02B4CC +/* 05FBC4 7F02B094 AE000040 */ sw $zero, 0x40($s0) +/* 05FBC8 7F02B098 8E190044 */ lw $t9, 0x44($s0) +.L7F02B09C: +/* 05FBCC 7F02B09C 820C0008 */ lb $t4, 8($s0) +/* 05FBD0 7F02B0A0 032C6823 */ subu $t5, $t9, $t4 +/* 05FBD4 7F02B0A4 05A10109 */ bgez $t5, .L7F02B4CC +/* 05FBD8 7F02B0A8 AE0D0044 */ sw $t5, 0x44($s0) +/* 05FBDC 7F02B0AC 0FC1B320 */ jal getsubroty +/* 05FBE0 7F02B0B0 8E04001C */ lw $a0, 0x1c($s0) +/* 05FBE4 7F02B0B4 3C018005 */ lui $at, %hi(D_80051E78) +/* 05FBE8 7F02B0B8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 05FBEC 7F02B0BC 46000086 */ mov.s $f2, $f0 +/* 05FBF0 7F02B0C0 C42C1E78 */ lwc1 $f12, %lo(D_80051E78)($at) +/* 05FBF4 7F02B0C4 27A20074 */ addiu $v0, $sp, 0x74 +.L7F02B0C8: +/* 05FBF8 7F02B0C8 3C018005 */ lui $at, %hi(D_80051E7C) +/* 05FBFC 7F02B0CC C4321E7C */ lwc1 $f18, %lo(D_80051E7C)($at) +/* 05FC00 7F02B0D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05FC04 7F02B0D4 44813000 */ mtc1 $at, $f6 +/* 05FC08 7F02B0D8 46121080 */ add.s $f2, $f2, $f18 +/* 05FC0C 7F02B0DC 44802000 */ mtc1 $zero, $f4 +/* 05FC10 7F02B0E0 3C06447A */ lui $a2, %hi(0x447A0001) # $a2, 0x447a +/* 05FC14 7F02B0E4 00003825 */ move $a3, $zero +/* 05FC18 7F02B0E8 4602603E */ c.le.s $f12, $f2 +/* 05FC1C 7F02B0EC 00000000 */ nop +/* 05FC20 7F02B0F0 45020003 */ bc1fl .L7F02B100 +/* 05FC24 7F02B0F4 8E040018 */ lw $a0, 0x18($s0) +/* 05FC28 7F02B0F8 460C1081 */ sub.s $f2, $f2, $f12 +/* 05FC2C 7F02B0FC 8E040018 */ lw $a0, 0x18($s0) +.L7F02B100: +/* 05FC30 7F02B100 44051000 */ mfc1 $a1, $f2 +/* 05FC34 7F02B104 E7A2006C */ swc1 $f2, 0x6c($sp) +/* 05FC38 7F02B108 AFA20034 */ sw $v0, 0x34($sp) +/* 05FC3C 7F02B10C E7A60014 */ swc1 $f6, 0x14($sp) +/* 05FC40 7F02B110 0FC098D9 */ jal sub_GAME_7F026364 +/* 05FC44 7F02B114 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05FC48 7F02B118 8FA20034 */ lw $v0, 0x34($sp) +/* 05FC4C 7F02B11C 3C018005 */ lui $at, %hi(D_80051E80) +/* 05FC50 7F02B120 27AF0094 */ addiu $t7, $sp, 0x94 +/* 05FC54 7F02B124 C42C1E80 */ lwc1 $f12, %lo(D_80051E80)($at) +/* 05FC58 7F02B128 24420004 */ addiu $v0, $v0, 4 +/* 05FC5C 7F02B12C 004F082B */ sltu $at, $v0, $t7 +/* 05FC60 7F02B130 C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 05FC64 7F02B134 1420FFE4 */ bnez $at, .L7F02B0C8 +/* 05FC68 7F02B138 E440FFFC */ swc1 $f0, -4($v0) +/* 05FC6C 7F02B13C 00003025 */ move $a2, $zero +/* 05FC70 7F02B140 27AA0044 */ addiu $t2, $sp, 0x44 +.L7F02B144: +/* 05FC74 7F02B144 AD460000 */ sw $a2, ($t2) +/* 05FC78 7F02B148 24C60001 */ addiu $a2, %lo(0x447A0001) # addiu $a2, $a2, 1 +/* 05FC7C 7F02B14C 28C10008 */ slti $at, $a2, 8 +/* 05FC80 7F02B150 1420FFFC */ bnez $at, .L7F02B144 +/* 05FC84 7F02B154 254A0004 */ addiu $t2, $t2, 4 +/* 05FC88 7F02B158 00003025 */ move $a2, $zero +/* 05FC8C 7F02B15C 27AA0044 */ addiu $t2, $sp, 0x44 +/* 05FC90 7F02B160 27A80044 */ addiu $t0, $sp, 0x44 +/* 05FC94 7F02B164 24070008 */ li $a3, 8 +/* 05FC98 7F02B168 27A40074 */ addiu $a0, $sp, 0x74 +.L7F02B16C: +/* 05FC9C 7F02B16C 24CB0001 */ addiu $t3, $a2, 1 +/* 05FCA0 7F02B170 29610008 */ slti $at, $t3, 8 +/* 05FCA4 7F02B174 00C02825 */ move $a1, $a2 +/* 05FCA8 7F02B178 1020005B */ beqz $at, .L7F02B2E8 +/* 05FCAC 7F02B17C 01601025 */ move $v0, $t3 +/* 05FCB0 7F02B180 00EB4823 */ subu $t1, $a3, $t3 +/* 05FCB4 7F02B184 31380003 */ andi $t8, $t1, 3 +/* 05FCB8 7F02B188 13000016 */ beqz $t8, .L7F02B1E4 +/* 05FCBC 7F02B18C 030B3021 */ addu $a2, $t8, $t3 +/* 05FCC0 7F02B190 0002C880 */ sll $t9, $v0, 2 +/* 05FCC4 7F02B194 01191821 */ addu $v1, $t0, $t9 +.L7F02B198: +/* 05FCC8 7F02B198 8C6C0000 */ lw $t4, ($v1) +/* 05FCCC 7F02B19C 00057880 */ sll $t7, $a1, 2 +/* 05FCD0 7F02B1A0 010FC021 */ addu $t8, $t0, $t7 +/* 05FCD4 7F02B1A4 8F190000 */ lw $t9, ($t8) +/* 05FCD8 7F02B1A8 000C6880 */ sll $t5, $t4, 2 +/* 05FCDC 7F02B1AC 008D7021 */ addu $t6, $a0, $t5 +/* 05FCE0 7F02B1B0 00196080 */ sll $t4, $t9, 2 +/* 05FCE4 7F02B1B4 008C6821 */ addu $t5, $a0, $t4 +/* 05FCE8 7F02B1B8 C5AA0000 */ lwc1 $f10, ($t5) +/* 05FCEC 7F02B1BC C5C80000 */ lwc1 $f8, ($t6) +/* 05FCF0 7F02B1C0 460A403C */ c.lt.s $f8, $f10 +/* 05FCF4 7F02B1C4 00000000 */ nop +/* 05FCF8 7F02B1C8 45020003 */ bc1fl .L7F02B1D8 +/* 05FCFC 7F02B1CC 24420001 */ addiu $v0, $v0, 1 +/* 05FD00 7F02B1D0 00402825 */ move $a1, $v0 +/* 05FD04 7F02B1D4 24420001 */ addiu $v0, $v0, 1 +.L7F02B1D8: +/* 05FD08 7F02B1D8 14C2FFEF */ bne $a2, $v0, .L7F02B198 +/* 05FD0C 7F02B1DC 24630004 */ addiu $v1, $v1, 4 +/* 05FD10 7F02B1E0 10470041 */ beq $v0, $a3, .L7F02B2E8 +.L7F02B1E4: +/* 05FD14 7F02B1E4 00027080 */ sll $t6, $v0, 2 +/* 05FD18 7F02B1E8 010E1821 */ addu $v1, $t0, $t6 +.L7F02B1EC: +/* 05FD1C 7F02B1EC 00057880 */ sll $t7, $a1, 2 +/* 05FD20 7F02B1F0 010FC021 */ addu $t8, $t0, $t7 +/* 05FD24 7F02B1F4 8F190000 */ lw $t9, ($t8) +/* 05FD28 7F02B1F8 8C6E0000 */ lw $t6, ($v1) +/* 05FD2C 7F02B1FC 00196080 */ sll $t4, $t9, 2 +/* 05FD30 7F02B200 000E7880 */ sll $t7, $t6, 2 +/* 05FD34 7F02B204 008FC021 */ addu $t8, $a0, $t7 +/* 05FD38 7F02B208 008C6821 */ addu $t5, $a0, $t4 +/* 05FD3C 7F02B20C C5A00000 */ lwc1 $f0, ($t5) +/* 05FD40 7F02B210 C7100000 */ lwc1 $f16, ($t8) +/* 05FD44 7F02B214 0002C880 */ sll $t9, $v0, 2 +/* 05FD48 7F02B218 01196021 */ addu $t4, $t0, $t9 +/* 05FD4C 7F02B21C 4600803C */ c.lt.s $f16, $f0 +/* 05FD50 7F02B220 00000000 */ nop +/* 05FD54 7F02B224 45020007 */ bc1fl .L7F02B244 +/* 05FD58 7F02B228 8C780004 */ lw $t8, 4($v1) +/* 05FD5C 7F02B22C 8D8D0000 */ lw $t5, ($t4) +/* 05FD60 7F02B230 00402825 */ move $a1, $v0 +/* 05FD64 7F02B234 000D7080 */ sll $t6, $t5, 2 +/* 05FD68 7F02B238 008E7821 */ addu $t7, $a0, $t6 +/* 05FD6C 7F02B23C C5E00000 */ lwc1 $f0, ($t7) +/* 05FD70 7F02B240 8C780004 */ lw $t8, 4($v1) +.L7F02B244: +/* 05FD74 7F02B244 0018C880 */ sll $t9, $t8, 2 +/* 05FD78 7F02B248 00996021 */ addu $t4, $a0, $t9 +/* 05FD7C 7F02B24C C5920000 */ lwc1 $f18, ($t4) +/* 05FD80 7F02B250 4600903C */ c.lt.s $f18, $f0 +/* 05FD84 7F02B254 00000000 */ nop +/* 05FD88 7F02B258 45020009 */ bc1fl .L7F02B280 +/* 05FD8C 7F02B25C 8C6C0008 */ lw $t4, 8($v1) +/* 05FD90 7F02B260 24450001 */ addiu $a1, $v0, 1 +/* 05FD94 7F02B264 00056880 */ sll $t5, $a1, 2 +/* 05FD98 7F02B268 010D7021 */ addu $t6, $t0, $t5 +/* 05FD9C 7F02B26C 8DCF0000 */ lw $t7, ($t6) +/* 05FDA0 7F02B270 000FC080 */ sll $t8, $t7, 2 +/* 05FDA4 7F02B274 0098C821 */ addu $t9, $a0, $t8 +/* 05FDA8 7F02B278 C7200000 */ lwc1 $f0, ($t9) +/* 05FDAC 7F02B27C 8C6C0008 */ lw $t4, 8($v1) +.L7F02B280: +/* 05FDB0 7F02B280 000C6880 */ sll $t5, $t4, 2 +/* 05FDB4 7F02B284 008D7021 */ addu $t6, $a0, $t5 +/* 05FDB8 7F02B288 C5C40000 */ lwc1 $f4, ($t6) +/* 05FDBC 7F02B28C 4600203C */ c.lt.s $f4, $f0 +/* 05FDC0 7F02B290 00000000 */ nop +/* 05FDC4 7F02B294 45020009 */ bc1fl .L7F02B2BC +/* 05FDC8 7F02B298 8C6E000C */ lw $t6, 0xc($v1) +/* 05FDCC 7F02B29C 24450002 */ addiu $a1, $v0, 2 +/* 05FDD0 7F02B2A0 00057880 */ sll $t7, $a1, 2 +/* 05FDD4 7F02B2A4 010FC021 */ addu $t8, $t0, $t7 +/* 05FDD8 7F02B2A8 8F190000 */ lw $t9, ($t8) +/* 05FDDC 7F02B2AC 00196080 */ sll $t4, $t9, 2 +/* 05FDE0 7F02B2B0 008C6821 */ addu $t5, $a0, $t4 +/* 05FDE4 7F02B2B4 C5A00000 */ lwc1 $f0, ($t5) +/* 05FDE8 7F02B2B8 8C6E000C */ lw $t6, 0xc($v1) +.L7F02B2BC: +/* 05FDEC 7F02B2BC 000E7880 */ sll $t7, $t6, 2 +/* 05FDF0 7F02B2C0 008FC021 */ addu $t8, $a0, $t7 +/* 05FDF4 7F02B2C4 C7060000 */ lwc1 $f6, ($t8) +/* 05FDF8 7F02B2C8 4600303C */ c.lt.s $f6, $f0 +/* 05FDFC 7F02B2CC 00000000 */ nop +/* 05FE00 7F02B2D0 45020003 */ bc1fl .L7F02B2E0 +/* 05FE04 7F02B2D4 24420004 */ addiu $v0, $v0, 4 +/* 05FE08 7F02B2D8 24450003 */ addiu $a1, $v0, 3 +/* 05FE0C 7F02B2DC 24420004 */ addiu $v0, $v0, 4 +.L7F02B2E0: +/* 05FE10 7F02B2E0 1447FFC2 */ bne $v0, $a3, .L7F02B1EC +/* 05FE14 7F02B2E4 24630010 */ addiu $v1, $v1, 0x10 +.L7F02B2E8: +/* 05FE18 7F02B2E8 0005C880 */ sll $t9, $a1, 2 +/* 05FE1C 7F02B2EC 01191821 */ addu $v1, $t0, $t9 +/* 05FE20 7F02B2F0 8C6C0000 */ lw $t4, ($v1) +/* 05FE24 7F02B2F4 8D420000 */ lw $v0, ($t2) +/* 05FE28 7F02B2F8 29610007 */ slti $at, $t3, 7 +/* 05FE2C 7F02B2FC AD4C0000 */ sw $t4, ($t2) +/* 05FE30 7F02B300 01603025 */ move $a2, $t3 +/* 05FE34 7F02B304 254A0004 */ addiu $t2, $t2, 4 +/* 05FE38 7F02B308 1420FF98 */ bnez $at, .L7F02B16C +/* 05FE3C 7F02B30C AC620000 */ sw $v0, ($v1) +/* 05FE40 7F02B310 3C0143F5 */ li $at, 0x43F50000 # 490.000000 +/* 05FE44 7F02B314 44815000 */ mtc1 $at, $f10 +/* 05FE48 7F02B318 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 05FE4C 7F02B31C 8FA60054 */ lw $a2, 0x54($sp) +/* 05FE50 7F02B320 2405FFFF */ li $a1, -1 +/* 05FE54 7F02B324 460A403C */ c.lt.s $f8, $f10 +/* 05FE58 7F02B328 00066880 */ sll $t5, $a2, 2 +/* 05FE5C 7F02B32C 008D7021 */ addu $t6, $a0, $t5 +/* 05FE60 7F02B330 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 05FE64 7F02B334 45000046 */ bc1f .L7F02B450 +/* 05FE68 7F02B338 00000000 */ nop +/* 05FE6C 7F02B33C C5D00000 */ lwc1 $f16, ($t6) +/* 05FE70 7F02B340 44819000 */ mtc1 $at, $f18 +/* 05FE74 7F02B344 8FA20044 */ lw $v0, 0x44($sp) +/* 05FE78 7F02B348 4612803C */ c.lt.s $f16, $f18 +/* 05FE7C 7F02B34C 00000000 */ nop +/* 05FE80 7F02B350 45000003 */ bc1f .L7F02B360 +/* 05FE84 7F02B354 00000000 */ nop +/* 05FE88 7F02B358 1000003D */ b .L7F02B450 +/* 05FE8C 7F02B35C 24050007 */ li $a1, 7 +.L7F02B360: +/* 05FE90 7F02B360 10400005 */ beqz $v0, .L7F02B378 +/* 05FE94 7F02B364 8FAF0048 */ lw $t7, 0x48($sp) +/* 05FE98 7F02B368 11E00003 */ beqz $t7, .L7F02B378 +/* 05FE9C 7F02B36C 8FB8004C */ lw $t8, 0x4c($sp) +/* 05FEA0 7F02B370 17000022 */ bnez $t8, .L7F02B3FC +/* 05FEA4 7F02B374 24030001 */ li $v1, 1 +.L7F02B378: +/* 05FEA8 7F02B378 8FB90050 */ lw $t9, 0x50($sp) +/* 05FEAC 7F02B37C 24030004 */ li $v1, 4 +/* 05FEB0 7F02B380 10790003 */ beq $v1, $t9, .L7F02B390 +/* 05FEB4 7F02B384 00000000 */ nop +/* 05FEB8 7F02B388 14660012 */ bne $v1, $a2, .L7F02B3D4 +/* 05FEBC 7F02B38C 00000000 */ nop +.L7F02B390: +/* 05FEC0 7F02B390 0C002914 */ jal get_random_value +/* 05FEC4 7F02B394 00000000 */ nop +/* 05FEC8 7F02B398 3C018005 */ lui $at, %hi(D_80051E84) +/* 05FECC 7F02B39C C42C1E84 */ lwc1 $f12, %lo(D_80051E84)($at) +/* 05FED0 7F02B3A0 24010003 */ li $at, 3 +/* 05FED4 7F02B3A4 0041001B */ divu $zero, $v0, $at +/* 05FED8 7F02B3A8 00006010 */ mfhi $t4 +/* 05FEDC 7F02B3AC 24030004 */ li $v1, 4 +/* 05FEE0 7F02B3B0 15800008 */ bnez $t4, .L7F02B3D4 +/* 05FEE4 7F02B3B4 27A80044 */ addiu $t0, $sp, 0x44 +/* 05FEE8 7F02B3B8 8FAD0050 */ lw $t5, 0x50($sp) +/* 05FEEC 7F02B3BC 146D0003 */ bne $v1, $t5, .L7F02B3CC +/* 05FEF0 7F02B3C0 00000000 */ nop +/* 05FEF4 7F02B3C4 10000022 */ b .L7F02B450 +/* 05FEF8 7F02B3C8 24050003 */ li $a1, 3 +.L7F02B3CC: +/* 05FEFC 7F02B3CC 10000020 */ b .L7F02B450 +/* 05FF00 7F02B3D0 24050004 */ li $a1, 4 +.L7F02B3D4: +/* 05FF04 7F02B3D4 0C002914 */ jal get_random_value +/* 05FF08 7F02B3D8 00000000 */ nop +/* 05FF0C 7F02B3DC 3C018005 */ lui $at, %hi(D_80051E88) +/* 05FF10 7F02B3E0 C42C1E88 */ lwc1 $f12, %lo(D_80051E88)($at) +/* 05FF14 7F02B3E4 24010003 */ li $at, 3 +/* 05FF18 7F02B3E8 0041001B */ divu $zero, $v0, $at +/* 05FF1C 7F02B3EC 00002810 */ mfhi $a1 +/* 05FF20 7F02B3F0 24A50005 */ addiu $a1, $a1, 5 +/* 05FF24 7F02B3F4 10000016 */ b .L7F02B450 +/* 05FF28 7F02B3F8 27A80044 */ addiu $t0, $sp, 0x44 +.L7F02B3FC: +/* 05FF2C 7F02B3FC 10620003 */ beq $v1, $v0, .L7F02B40C +/* 05FF30 7F02B400 24010007 */ li $at, 7 +/* 05FF34 7F02B404 14410012 */ bne $v0, $at, .L7F02B450 +/* 05FF38 7F02B408 00000000 */ nop +.L7F02B40C: +/* 05FF3C 7F02B40C 8FAE0058 */ lw $t6, 0x58($sp) +/* 05FF40 7F02B410 8FAF005C */ lw $t7, 0x5c($sp) +/* 05FF44 7F02B414 11C0000E */ beqz $t6, .L7F02B450 +/* 05FF48 7F02B418 00000000 */ nop +/* 05FF4C 7F02B41C 11E0000C */ beqz $t7, .L7F02B450 +/* 05FF50 7F02B420 8FB80060 */ lw $t8, 0x60($sp) +/* 05FF54 7F02B424 1300000A */ beqz $t8, .L7F02B450 +/* 05FF58 7F02B428 00000000 */ nop +/* 05FF5C 7F02B42C 0C002914 */ jal get_random_value +/* 05FF60 7F02B430 00000000 */ nop +/* 05FF64 7F02B434 3C018005 */ lui $at, %hi(D_80051E8C) +/* 05FF68 7F02B438 C42C1E8C */ lwc1 $f12, %lo(D_80051E8C)($at) +/* 05FF6C 7F02B43C 24010003 */ li $at, 3 +/* 05FF70 7F02B440 0041001B */ divu $zero, $v0, $at +/* 05FF74 7F02B444 00002810 */ mfhi $a1 +/* 05FF78 7F02B448 24A50005 */ addiu $a1, $a1, 5 +/* 05FF7C 7F02B44C 27A80044 */ addiu $t0, $sp, 0x44 +.L7F02B450: +/* 05FF80 7F02B450 04A0001D */ bltz $a1, .L7F02B4C8 +/* 05FF84 7F02B454 0005C880 */ sll $t9, $a1, 2 +/* 05FF88 7F02B458 01196021 */ addu $t4, $t0, $t9 +/* 05FF8C 7F02B45C 8D860000 */ lw $a2, ($t4) +/* 05FF90 7F02B460 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 05FF94 7F02B464 44815000 */ mtc1 $at, $f10 +/* 05FF98 7F02B468 44862000 */ mtc1 $a2, $f4 +/* 05FF9C 7F02B46C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 05FFA0 7F02B470 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 05FFA4 7F02B474 468021A0 */ cvt.s.w $f6, $f4 +/* 05FFA8 7F02B478 44812000 */ mtc1 $at, $f4 +/* 05FFAC 7F02B47C 460C3202 */ mul.s $f8, $f6, $f12 +/* 05FFB0 7F02B480 00000000 */ nop +/* 05FFB4 7F02B484 460A4402 */ mul.s $f16, $f8, $f10 +/* 05FFB8 7F02B488 46128000 */ add.s $f0, $f16, $f18 +/* 05FFBC 7F02B48C 4600603E */ c.le.s $f12, $f0 +/* 05FFC0 7F02B490 46000086 */ mov.s $f2, $f0 +/* 05FFC4 7F02B494 45000002 */ bc1f .L7F02B4A0 +/* 05FFC8 7F02B498 00000000 */ nop +/* 05FFCC 7F02B49C 460C0081 */ sub.s $f2, $f0, $f12 +.L7F02B4A0: +/* 05FFD0 7F02B4A0 46041182 */ mul.s $f6, $f2, $f4 +/* 05FFD4 7F02B4A4 02002025 */ move $a0, $s0 +/* 05FFD8 7F02B4A8 24050010 */ li $a1, 16 +/* 05FFDC 7F02B4AC 460C3203 */ div.s $f8, $f6, $f12 +/* 05FFE0 7F02B4B0 4600428D */ trunc.w.s $f10, $f8 +/* 05FFE4 7F02B4B4 44065000 */ mfc1 $a2, $f10 +/* 05FFE8 7F02B4B8 0FC0AAD1 */ jal check_set_actor_standing_still +/* 05FFEC 7F02B4BC 00000000 */ nop +/* 05FFF0 7F02B4C0 10000003 */ b .L7F02B4D0 +/* 05FFF4 7F02B4C4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B4C8: +/* 05FFF8 7F02B4C8 AE000040 */ sw $zero, 0x40($s0) +.L7F02B4CC: +/* 05FFFC 7F02B4CC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B4D0: +/* 060000 7F02B4D0 8FB00020 */ lw $s0, 0x20($sp) +/* 060004 7F02B4D4 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 060008 7F02B4D8 03E00008 */ jr $ra +/* 06000C 7F02B4DC 00000000 */ nop +) +#endif + + + +void actor_reset_sleep(PCHRdata actor) { + actor->sleep = 0; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F02B4E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02B4E8 +/* 060018 7F02B4E8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 06001C 7F02B4EC AFBF001C */ sw $ra, 0x1c($sp) +/* 060020 7F02B4F0 AFB00018 */ sw $s0, 0x18($sp) +/* 060024 7F02B4F4 8C8E0030 */ lw $t6, 0x30($a0) +/* 060028 7F02B4F8 00808025 */ move $s0, $a0 +/* 06002C 7F02B4FC 15C0000D */ bnez $t6, .L7F02B534 +/* 060030 7F02B500 00000000 */ nop +/* 060034 7F02B504 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060038 7F02B508 8C84001C */ lw $a0, 0x1c($a0) +/* 06003C 7F02B50C E7A00020 */ swc1 $f0, 0x20($sp) +/* 060040 7F02B510 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060044 7F02B514 8E04001C */ lw $a0, 0x1c($s0) +/* 060048 7F02B518 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 06004C 7F02B51C 4604003E */ c.le.s $f0, $f4 +/* 060050 7F02B520 00000000 */ nop +/* 060054 7F02B524 45000003 */ bc1f .L7F02B534 +/* 060058 7F02B528 00000000 */ nop +/* 06005C 7F02B52C 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 060060 7F02B530 02002025 */ move $a0, $s0 +.L7F02B534: +/* 060064 7F02B534 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060068 7F02B538 8E04001C */ lw $a0, 0x1c($s0) +/* 06006C 7F02B53C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 060070 7F02B540 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 060074 7F02B544 3C180001 */ lui $t8, %hi(0x0000B9A8) # $t8, 1 +/* 060078 7F02B548 2718B9A8 */ addiu $t8, %lo(0x0000B9A8) # addiu $t8, $t8, -0x4658 +/* 06007C 7F02B54C 01F8C821 */ addu $t9, $t7, $t8 +/* 060080 7F02B550 54590028 */ bnel $v0, $t9, .L7F02B5F4 +/* 060084 7F02B554 820E0008 */ lb $t6, 8($s0) +/* 060088 7F02B558 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06008C 7F02B55C 8E04001C */ lw $a0, 0x1c($s0) +/* 060090 7F02B560 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 060094 7F02B564 44813000 */ mtc1 $at, $f6 +/* 060098 7F02B568 00000000 */ nop +/* 06009C 7F02B56C 4600303E */ c.le.s $f6, $f0 +/* 0600A0 7F02B570 00000000 */ nop +/* 0600A4 7F02B574 4502001F */ bc1fl .L7F02B5F4 +/* 0600A8 7F02B578 820E0008 */ lb $t6, 8($s0) +/* 0600AC 7F02B57C 8E080014 */ lw $t0, 0x14($s0) +/* 0600B0 7F02B580 3C0A8005 */ lui $t2, %hi(D_80048380) +/* 0600B4 7F02B584 00084980 */ sll $t1, $t0, 6 +/* 0600B8 7F02B588 0522001A */ bltzl $t1, .L7F02B5F4 +/* 0600BC 7F02B58C 820E0008 */ lb $t6, 8($s0) +/* 0600C0 7F02B590 8D4A8380 */ lw $t2, %lo(D_80048380)($t2) +/* 0600C4 7F02B594 314B0001 */ andi $t3, $t2, 1 +/* 0600C8 7F02B598 55600012 */ bnezl $t3, .L7F02B5E4 +/* 0600CC 7F02B59C 8E0C0014 */ lw $t4, 0x14($s0) +/* 0600D0 7F02B5A0 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 0600D4 7F02B5A4 02002025 */ move $a0, $s0 +/* 0600D8 7F02B5A8 3C014448 */ li $at, 0x44480000 # 800.000000 +/* 0600DC 7F02B5AC 44814000 */ mtc1 $at, $f8 +/* 0600E0 7F02B5B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0600E4 7F02B5B4 24050101 */ li $a1, 257 +/* 0600E8 7F02B5B8 4608003C */ c.lt.s $f0, $f8 +/* 0600EC 7F02B5BC 00003025 */ move $a2, $zero +/* 0600F0 7F02B5C0 45020008 */ bc1fl .L7F02B5E4 +/* 0600F4 7F02B5C4 8E0C0014 */ lw $t4, 0x14($s0) +/* 0600F8 7F02B5C8 0C002382 */ jal play_sfx_a1 +/* 0600FC 7F02B5CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060100 7F02B5D0 8E050018 */ lw $a1, 0x18($s0) +/* 060104 7F02B5D4 00402025 */ move $a0, $v0 +/* 060108 7F02B5D8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06010C 7F02B5DC 24A50008 */ addiu $a1, $a1, 8 +/* 060110 7F02B5E0 8E0C0014 */ lw $t4, 0x14($s0) +.L7F02B5E4: +/* 060114 7F02B5E4 3C010200 */ lui $at, 0x200 +/* 060118 7F02B5E8 01816825 */ or $t5, $t4, $at +/* 06011C 7F02B5EC AE0D0014 */ sw $t5, 0x14($s0) +/* 060120 7F02B5F0 820E0008 */ lb $t6, 8($s0) +.L7F02B5F4: +/* 060124 7F02B5F4 5DC0000C */ bgtzl $t6, .L7F02B628 +/* 060128 7F02B5F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 06012C 7F02B5FC 8E0F0038 */ lw $t7, 0x38($s0) +/* 060130 7F02B600 51E00009 */ beql $t7, $zero, .L7F02B628 +/* 060134 7F02B604 8FBF001C */ lw $ra, 0x1c($sp) +/* 060138 7F02B608 0C002914 */ jal get_random_value +/* 06013C 7F02B60C 00000000 */ nop +/* 060140 7F02B610 24010005 */ li $at, 5 +/* 060144 7F02B614 0041001B */ divu $zero, $v0, $at +/* 060148 7F02B618 0000C010 */ mfhi $t8 +/* 06014C 7F02B61C 2719000E */ addiu $t9, $t8, 0xe +/* 060150 7F02B620 A2190008 */ sb $t9, 8($s0) +/* 060154 7F02B624 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02B628: +/* 060158 7F02B628 8FB00018 */ lw $s0, 0x18($sp) +/* 06015C 7F02B62C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060160 7F02B630 03E00008 */ jr $ra +/* 060164 7F02B634 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02B638(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02B638 +/* 060168 7F02B638 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 06016C 7F02B63C AFBF0024 */ sw $ra, 0x24($sp) +/* 060170 7F02B640 AFB00020 */ sw $s0, 0x20($sp) +/* 060174 7F02B644 808E0008 */ lb $t6, 8($a0) +/* 060178 7F02B648 00808025 */ move $s0, $a0 +/* 06017C 7F02B64C 240F0010 */ li $t7, 16 +/* 060180 7F02B650 5DC00044 */ bgtzl $t6, .L7F02B764 +/* 060184 7F02B654 8FBF0024 */ lw $ra, 0x24($sp) +/* 060188 7F02B658 8C84001C */ lw $a0, 0x1c($a0) +/* 06018C 7F02B65C A20F0008 */ sb $t7, 8($s0) +/* 060190 7F02B660 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060194 7F02B664 AFA4003C */ sw $a0, 0x3c($sp) +/* 060198 7F02B668 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 06019C 7F02B66C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0601A0 7F02B670 3C190000 */ lui $t9, %hi(0x00004504) # $t9, 0 +/* 0601A4 7F02B674 27394504 */ addiu $t9, %lo(0x00004504) # addiu $t9, $t9, 0x4504 +/* 0601A8 7F02B678 03194021 */ addu $t0, $t8, $t9 +/* 0601AC 7F02B67C 54480039 */ bnel $v0, $t0, .L7F02B764 +/* 0601B0 7F02B680 8FBF0024 */ lw $ra, 0x24($sp) +/* 0601B4 7F02B684 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0601B8 7F02B688 8FA4003C */ lw $a0, 0x3c($sp) +/* 0601BC 7F02B68C 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0601C0 7F02B690 44812000 */ mtc1 $at, $f4 +/* 0601C4 7F02B694 3C0A8003 */ lui $t2, %hi(D_80030A44) +/* 0601C8 7F02B698 254A0A44 */ addiu $t2, %lo(D_80030A44) # addiu $t2, $t2, 0xa44 +/* 0601CC 7F02B69C 4600203E */ c.le.s $f4, $f0 +/* 0601D0 7F02B6A0 00000000 */ nop +/* 0601D4 7F02B6A4 4502002F */ bc1fl .L7F02B764 +/* 0601D8 7F02B6A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0601DC 7F02B6AC 8D410000 */ lw $at, ($t2) +/* 0601E0 7F02B6B0 27A90030 */ addiu $t1, $sp, 0x30 +/* 0601E4 7F02B6B4 8D4C0004 */ lw $t4, 4($t2) +/* 0601E8 7F02B6B8 AD210000 */ sw $at, ($t1) +/* 0601EC 7F02B6BC 8D410008 */ lw $at, 8($t2) +/* 0601F0 7F02B6C0 AD2C0004 */ sw $t4, 4($t1) +/* 0601F4 7F02B6C4 AD210008 */ sw $at, 8($t1) +/* 0601F8 7F02B6C8 0FC1B320 */ jal getsubroty +/* 0601FC 7F02B6CC 8FA4003C */ lw $a0, 0x3c($sp) +/* 060200 7F02B6D0 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 060204 7F02B6D4 0FC15FAB */ jal sinf +/* 060208 7F02B6D8 46000306 */ mov.s $f12, $f0 +/* 06020C 7F02B6DC 46000187 */ neg.s $f6, $f0 +/* 060210 7F02B6E0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 060214 7F02B6E4 0FC15FA8 */ jal cosf +/* 060218 7F02B6E8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 06021C 7F02B6EC 46000207 */ neg.s $f8, $f0 +/* 060220 7F02B6F0 27A50030 */ addiu $a1, $sp, 0x30 +/* 060224 7F02B6F4 E7A80038 */ swc1 $f8, 0x38($sp) +/* 060228 7F02B6F8 8E040018 */ lw $a0, 0x18($s0) +/* 06022C 7F02B6FC 0FC0A6A5 */ jal sub_GAME_7F029A94 +/* 060230 7F02B700 3C0641A0 */ lui $a2, 0x41a0 +/* 060234 7F02B704 54400017 */ bnezl $v0, .L7F02B764 +/* 060238 7F02B708 8FBF0024 */ lw $ra, 0x24($sp) +/* 06023C 7F02B70C 0C002914 */ jal get_random_value +/* 060240 7F02B710 00000000 */ nop +/* 060244 7F02B714 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 060248 7F02B718 44815000 */ mtc1 $at, $f10 +/* 06024C 7F02B71C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 060250 7F02B720 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 060254 7F02B724 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 060258 7F02B728 44818000 */ mtc1 $at, $f16 +/* 06025C 7F02B72C 3C0E0000 */ lui $t6, %hi(0x00004384) # $t6, 0 +/* 060260 7F02B730 25CE4384 */ addiu $t6, %lo(0x00004384) # addiu $t6, $t6, 0x4384 +/* 060264 7F02B734 8E04001C */ lw $a0, 0x1c($s0) +/* 060268 7F02B738 30460001 */ andi $a2, $v0, 1 +/* 06026C 7F02B73C 3C0741F0 */ lui $a3, 0x41f0 +/* 060270 7F02B740 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 060274 7F02B744 01AE2821 */ addu $a1, $t5, $t6 +/* 060278 7F02B748 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06027C 7F02B74C E7B00014 */ swc1 $f16, 0x14($sp) +/* 060280 7F02B750 8E04001C */ lw $a0, 0x1c($s0) +/* 060284 7F02B754 3C0541F0 */ lui $a1, 0x41f0 +/* 060288 7F02B758 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 06028C 7F02B75C 3C064180 */ lui $a2, 0x4180 +/* 060290 7F02B760 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B764: +/* 060294 7F02B764 8FB00020 */ lw $s0, 0x20($sp) +/* 060298 7F02B768 27BD0040 */ addiu $sp, $sp, 0x40 +/* 06029C 7F02B76C 03E00008 */ jr $ra +/* 0602A0 7F02B770 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void manage_guard_fade(void) { + +} +#else +GLOBAL_ASM( +.text +glabel manage_guard_fade +/* 0602A4 7F02B774 8C82002C */ lw $v0, 0x2c($a0) +/* 0602A8 7F02B778 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0602AC 7F02B77C 0442001E */ bltzl $v0, .L7F02B7F8 +/* 0602B0 7F02B780 AC80002C */ sw $zero, 0x2c($a0) +/* 0602B4 7F02B784 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0602B8 7F02B788 2403005A */ li $v1, 90 +/* 0602BC 7F02B78C 004E7821 */ addu $t7, $v0, $t6 +/* 0602C0 7F02B790 29E1005A */ slti $at, $t7, 0x5a +/* 0602C4 7F02B794 AC8F002C */ sw $t7, 0x2c($a0) +/* 0602C8 7F02B798 14200005 */ bnez $at, .L7F02B7B0 +/* 0602CC 7F02B79C 01E01025 */ move $v0, $t7 +/* 0602D0 7F02B7A0 94980012 */ lhu $t8, 0x12($a0) +/* 0602D4 7F02B7A4 37190020 */ ori $t9, $t8, 0x20 +/* 0602D8 7F02B7A8 03E00008 */ jr $ra +/* 0602DC 7F02B7AC A4990012 */ sh $t9, 0x12($a0) + +.L7F02B7B0: +/* 0602E0 7F02B7B0 00624023 */ subu $t0, $v1, $v0 +/* 0602E4 7F02B7B4 00084A00 */ sll $t1, $t0, 8 +/* 0602E8 7F02B7B8 01284823 */ subu $t1, $t1, $t0 +/* 0602EC 7F02B7BC 0123001A */ div $zero, $t1, $v1 +/* 0602F0 7F02B7C0 00005012 */ mflo $t2 +/* 0602F4 7F02B7C4 A08A000C */ sb $t2, 0xc($a0) +/* 0602F8 7F02B7C8 14600002 */ bnez $v1, .L7F02B7D4 +/* 0602FC 7F02B7CC 00000000 */ nop +/* 060300 7F02B7D0 0007000D */ break 7 +.L7F02B7D4: +/* 060304 7F02B7D4 2401FFFF */ li $at, -1 +/* 060308 7F02B7D8 14610004 */ bne $v1, $at, .L7F02B7EC +/* 06030C 7F02B7DC 3C018000 */ lui $at, 0x8000 +/* 060310 7F02B7E0 15210002 */ bne $t1, $at, .L7F02B7EC +/* 060314 7F02B7E4 00000000 */ nop +/* 060318 7F02B7E8 0006000D */ break 6 +.L7F02B7EC: +/* 06031C 7F02B7EC 03E00008 */ jr $ra +/* 060320 7F02B7F0 00000000 */ nop + +/* 060324 7F02B7F4 AC80002C */ sw $zero, 0x2c($a0) +.L7F02B7F8: +/* 060328 7F02B7F8 03E00008 */ jr $ra +/* 06032C 7F02B7FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02B800(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E90 +.word 0x4a742400 /*4000000.0*/ +.text +glabel sub_GAME_7F02B800 +/* 060330 7F02B800 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060334 7F02B804 AFBF003C */ sw $ra, 0x3c($sp) +/* 060338 7F02B808 AFB70038 */ sw $s7, 0x38($sp) +/* 06033C 7F02B80C AFB4002C */ sw $s4, 0x2c($sp) +/* 060340 7F02B810 AFB30028 */ sw $s3, 0x28($sp) +/* 060344 7F02B814 AFB20024 */ sw $s2, 0x24($sp) +/* 060348 7F02B818 0080A025 */ move $s4, $a0 +/* 06034C 7F02B81C 00A0B825 */ move $s7, $a1 +/* 060350 7F02B820 AFB60034 */ sw $s6, 0x34($sp) +/* 060354 7F02B824 AFB50030 */ sw $s5, 0x30($sp) +/* 060358 7F02B828 AFB10020 */ sw $s1, 0x20($sp) +/* 06035C 7F02B82C AFB0001C */ sw $s0, 0x1c($sp) +/* 060360 7F02B830 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 060364 7F02B834 00009825 */ move $s3, $zero +/* 060368 7F02B838 0FC07D4C */ jal get_numguards +/* 06036C 7F02B83C 00009025 */ move $s2, $zero +/* 060370 7F02B840 82830007 */ lb $v1, 7($s4) +/* 060374 7F02B844 24010006 */ li $at, 6 +/* 060378 7F02B848 0040B025 */ move $s6, $v0 +/* 06037C 7F02B84C 14610003 */ bne $v1, $at, .L7F02B85C +/* 060380 7F02B850 3C158003 */ lui $s5, %hi(ptr_guard_data) +/* 060384 7F02B854 10000005 */ b .L7F02B86C +/* 060388 7F02B858 8E93002C */ lw $s3, 0x2c($s4) +.L7F02B85C: +/* 06038C 7F02B85C 24010004 */ li $at, 4 +/* 060390 7F02B860 54610003 */ bnel $v1, $at, .L7F02B870 +/* 060394 7F02B864 0262082A */ slt $at, $s3, $v0 +/* 060398 7F02B868 8E93002C */ lw $s3, 0x2c($s4) +.L7F02B86C: +/* 06039C 7F02B86C 0262082A */ slt $at, $s3, $v0 +.L7F02B870: +/* 0603A0 7F02B870 10200036 */ beqz $at, .L7F02B94C +/* 0603A4 7F02B874 00138900 */ sll $s1, $s3, 4 +/* 0603A8 7F02B878 02338823 */ subu $s1, $s1, $s3 +/* 0603AC 7F02B87C 001188C0 */ sll $s1, $s1, 3 +/* 0603B0 7F02B880 02338823 */ subu $s1, $s1, $s3 +/* 0603B4 7F02B884 3C018005 */ lui $at, %hi(D_80051E90) +/* 0603B8 7F02B888 C4341E90 */ lwc1 $f20, %lo(D_80051E90)($at) +/* 0603BC 7F02B88C 00118880 */ sll $s1, $s1, 2 +/* 0603C0 7F02B890 26B5CC64 */ addiu $s5, %lo(ptr_guard_data) # addiu $s5, $s5, -0x339c +/* 0603C4 7F02B894 8EAE0000 */ lw $t6, ($s5) +.L7F02B898: +/* 0603C8 7F02B898 022E8021 */ addu $s0, $s1, $t6 +/* 0603CC 7F02B89C 8E0F001C */ lw $t7, 0x1c($s0) +/* 0603D0 7F02B8A0 51E00024 */ beql $t7, $zero, .L7F02B934 +/* 0603D4 7F02B8A4 26730001 */ addiu $s3, $s3, 1 +/* 0603D8 7F02B8A8 8E020018 */ lw $v0, 0x18($s0) +/* 0603DC 7F02B8AC 8E830018 */ lw $v1, 0x18($s4) +/* 0603E0 7F02B8B0 02002025 */ move $a0, $s0 +/* 0603E4 7F02B8B4 C4440008 */ lwc1 $f4, 8($v0) +/* 0603E8 7F02B8B8 C4660008 */ lwc1 $f6, 8($v1) +/* 0603EC 7F02B8BC C448000C */ lwc1 $f8, 0xc($v0) +/* 0603F0 7F02B8C0 C46A000C */ lwc1 $f10, 0xc($v1) +/* 0603F4 7F02B8C4 46062001 */ sub.s $f0, $f4, $f6 +/* 0603F8 7F02B8C8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0603FC 7F02B8CC C4720010 */ lwc1 $f18, 0x10($v1) +/* 060400 7F02B8D0 460A4081 */ sub.s $f2, $f8, $f10 +/* 060404 7F02B8D4 46000102 */ mul.s $f4, $f0, $f0 +/* 060408 7F02B8D8 24650008 */ addiu $a1, $v1, 8 +/* 06040C 7F02B8DC 46128301 */ sub.s $f12, $f16, $f18 +/* 060410 7F02B8E0 46021182 */ mul.s $f6, $f2, $f2 +/* 060414 7F02B8E4 46062200 */ add.s $f8, $f4, $f6 +/* 060418 7F02B8E8 460C6282 */ mul.s $f10, $f12, $f12 +/* 06041C 7F02B8EC 460A4400 */ add.s $f16, $f8, $f10 +/* 060420 7F02B8F0 4614803C */ c.lt.s $f16, $f20 +/* 060424 7F02B8F4 00000000 */ nop +/* 060428 7F02B8F8 4502000E */ bc1fl .L7F02B934 +/* 06042C 7F02B8FC 26730001 */ addiu $s3, $s3, 1 +/* 060430 7F02B900 26520001 */ addiu $s2, $s2, 1 +/* 060434 7F02B904 0FC0A5A7 */ jal sub_GAME_7F02969C +/* 060438 7F02B908 8C660014 */ lw $a2, 0x14($v1) +/* 06043C 7F02B90C 50400009 */ beql $v0, $zero, .L7F02B934 +/* 060440 7F02B910 26730001 */ addiu $s3, $s3, 1 +/* 060444 7F02B914 56E00005 */ bnezl $s7, .L7F02B92C +/* 060448 7F02B918 86990000 */ lh $t9, ($s4) +/* 06044C 7F02B91C 86980000 */ lh $t8, ($s4) +/* 060450 7F02B920 10000003 */ b .L7F02B930 +/* 060454 7F02B924 A6180118 */ sh $t8, 0x118($s0) +/* 060458 7F02B928 86990000 */ lh $t9, ($s4) +.L7F02B92C: +/* 06045C 7F02B92C A619011A */ sh $t9, 0x11a($s0) +.L7F02B930: +/* 060460 7F02B930 26730001 */ addiu $s3, $s3, 1 +.L7F02B934: +/* 060464 7F02B934 0276082A */ slt $at, $s3, $s6 +/* 060468 7F02B938 10200004 */ beqz $at, .L7F02B94C +/* 06046C 7F02B93C 263101DC */ addiu $s1, $s1, 0x1dc +/* 060470 7F02B940 2A410004 */ slti $at, $s2, 4 +/* 060474 7F02B944 5420FFD4 */ bnezl $at, .L7F02B898 +/* 060478 7F02B948 8EAE0000 */ lw $t6, ($s5) +.L7F02B94C: +/* 06047C 7F02B94C 82830007 */ lb $v1, 7($s4) +/* 060480 7F02B950 24010006 */ li $at, 6 +/* 060484 7F02B954 54610004 */ bnel $v1, $at, .L7F02B968 +/* 060488 7F02B958 24010004 */ li $at, 4 +/* 06048C 7F02B95C 10000005 */ b .L7F02B974 +/* 060490 7F02B960 AE93002C */ sw $s3, 0x2c($s4) +/* 060494 7F02B964 24010004 */ li $at, 4 +.L7F02B968: +/* 060498 7F02B968 54610003 */ bnel $v1, $at, .L7F02B978 +/* 06049C 7F02B96C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0604A0 7F02B970 AE93002C */ sw $s3, 0x2c($s4) +.L7F02B974: +/* 0604A4 7F02B974 8FBF003C */ lw $ra, 0x3c($sp) +.L7F02B978: +/* 0604A8 7F02B978 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0604AC 7F02B97C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0604B0 7F02B980 8FB10020 */ lw $s1, 0x20($sp) +/* 0604B4 7F02B984 8FB20024 */ lw $s2, 0x24($sp) +/* 0604B8 7F02B988 8FB30028 */ lw $s3, 0x28($sp) +/* 0604BC 7F02B98C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0604C0 7F02B990 8FB50030 */ lw $s5, 0x30($sp) +/* 0604C4 7F02B994 8FB60034 */ lw $s6, 0x34($sp) +/* 0604C8 7F02B998 8FB70038 */ lw $s7, 0x38($sp) +/* 0604CC 7F02B99C 03E00008 */ jr $ra +/* 0604D0 7F02B9A0 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void guard_body_hit_sfx(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E94 +.word 0x3e99999a /*0.30000001*/ +.text +glabel guard_body_hit_sfx +/* 0604D4 7F02B9A4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0604D8 7F02B9A8 3C0F8003 */ lui $t7, %hi(body_hit_SFX) +/* 0604DC 7F02B9AC AFBF0024 */ sw $ra, 0x24($sp) +/* 0604E0 7F02B9B0 AFB10020 */ sw $s1, 0x20($sp) +/* 0604E4 7F02B9B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0604E8 7F02B9B8 25EF0A50 */ addiu $t7, %lo(body_hit_SFX) # addiu $t7, $t7, 0xa50 +/* 0604EC 7F02B9BC 8DE10000 */ lw $at, ($t7) +/* 0604F0 7F02B9C0 8C91001C */ lw $s1, 0x1c($a0) +/* 0604F4 7F02B9C4 27AE0038 */ addiu $t6, $sp, 0x38 +/* 0604F8 7F02B9C8 ADC10000 */ sw $at, ($t6) +/* 0604FC 7F02B9CC 8DE10008 */ lw $at, 8($t7) +/* 060500 7F02B9D0 8DE80004 */ lw $t0, 4($t7) +/* 060504 7F02B9D4 44803000 */ mtc1 $zero, $f6 +/* 060508 7F02B9D8 ADC10008 */ sw $at, 8($t6) +/* 06050C 7F02B9DC 8DE10010 */ lw $at, 0x10($t7) +/* 060510 7F02B9E0 ADC80004 */ sw $t0, 4($t6) +/* 060514 7F02B9E4 8DE8000C */ lw $t0, 0xc($t7) +/* 060518 7F02B9E8 ADC10010 */ sw $at, 0x10($t6) +/* 06051C 7F02B9EC 95E10014 */ lhu $at, 0x14($t7) +/* 060520 7F02B9F0 ADC8000C */ sw $t0, 0xc($t6) +/* 060524 7F02B9F4 00808025 */ move $s0, $a0 +/* 060528 7F02B9F8 A5C10014 */ sh $at, 0x14($t6) +/* 06052C 7F02B9FC C4840030 */ lwc1 $f4, 0x30($a0) +/* 060530 7F02BA00 4604303E */ c.le.s $f6, $f4 +/* 060534 7F02BA04 00000000 */ nop +/* 060538 7F02BA08 45020023 */ bc1fl .L7F02BA98 +/* 06053C 7F02BA0C C6100034 */ lwc1 $f16, 0x34($s0) +/* 060540 7F02BA10 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060544 7F02BA14 02202025 */ move $a0, $s1 +/* 060548 7F02BA18 C6080030 */ lwc1 $f8, 0x30($s0) +/* 06054C 7F02BA1C 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060550 7F02BA20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060554 7F02BA24 4600403E */ c.le.s $f8, $f0 +/* 060558 7F02BA28 00000000 */ nop +/* 06055C 7F02BA2C 4502001A */ bc1fl .L7F02BA98 +/* 060560 7F02BA30 C6100034 */ lwc1 $f16, 0x34($s0) +/* 060564 7F02BA34 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060568 7F02BA38 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 06056C 7F02BA3C 00003025 */ move $a2, $zero +/* 060570 7F02BA40 00024840 */ sll $t1, $v0, 1 +/* 060574 7F02BA44 03A92821 */ addu $a1, $sp, $t1 +/* 060578 7F02BA48 0C002382 */ jal play_sfx_a1 +/* 06057C 7F02BA4C 84A50038 */ lh $a1, 0x38($a1) +/* 060580 7F02BA50 8E050018 */ lw $a1, 0x18($s0) +/* 060584 7F02BA54 00402025 */ move $a0, $v0 +/* 060588 7F02BA58 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06058C 7F02BA5C 24A50008 */ addiu $a1, $a1, 8 +/* 060590 7F02BA60 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060594 7F02BA64 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060598 7F02BA68 3C018003 */ lui $at, %hi(D_80030A68) +/* 06059C 7F02BA6C 24420001 */ addiu $v0, $v0, 1 +/* 0605A0 7F02BA70 AC220A68 */ sw $v0, %lo(D_80030A68)($at) +/* 0605A4 7F02BA74 2841000B */ slti $at, $v0, 0xb +/* 0605A8 7F02BA78 14200002 */ bnez $at, .L7F02BA84 +/* 0605AC 7F02BA7C 3C018003 */ lui $at, %hi(D_80030A68) +/* 0605B0 7F02BA80 AC200A68 */ sw $zero, %lo(D_80030A68)($at) +.L7F02BA84: +/* 0605B4 7F02BA84 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0605B8 7F02BA88 44815000 */ mtc1 $at, $f10 +/* 0605BC 7F02BA8C 00000000 */ nop +/* 0605C0 7F02BA90 E60A0030 */ swc1 $f10, 0x30($s0) +/* 0605C4 7F02BA94 C6100034 */ lwc1 $f16, 0x34($s0) +.L7F02BA98: +/* 0605C8 7F02BA98 44809000 */ mtc1 $zero, $f18 +/* 0605CC 7F02BA9C 00000000 */ nop +/* 0605D0 7F02BAA0 4610903E */ c.le.s $f18, $f16 +/* 0605D4 7F02BAA4 00000000 */ nop +/* 0605D8 7F02BAA8 45000022 */ bc1f .L7F02BB34 +/* 0605DC 7F02BAAC 00000000 */ nop +/* 0605E0 7F02BAB0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0605E4 7F02BAB4 02202025 */ move $a0, $s1 +/* 0605E8 7F02BAB8 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0605EC 7F02BABC 3C028003 */ lui $v0, %hi(D_80030A68) +/* 0605F0 7F02BAC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0605F4 7F02BAC4 4600203E */ c.le.s $f4, $f0 +/* 0605F8 7F02BAC8 00000000 */ nop +/* 0605FC 7F02BACC 45000019 */ bc1f .L7F02BB34 +/* 060600 7F02BAD0 00000000 */ nop +/* 060604 7F02BAD4 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060608 7F02BAD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 06060C 7F02BADC 00003025 */ move $a2, $zero +/* 060610 7F02BAE0 00025040 */ sll $t2, $v0, 1 +/* 060614 7F02BAE4 03AA2821 */ addu $a1, $sp, $t2 +/* 060618 7F02BAE8 0C002382 */ jal play_sfx_a1 +/* 06061C 7F02BAEC 84A50038 */ lh $a1, 0x38($a1) +/* 060620 7F02BAF0 8E050018 */ lw $a1, 0x18($s0) +/* 060624 7F02BAF4 00402025 */ move $a0, $v0 +/* 060628 7F02BAF8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06062C 7F02BAFC 24A50008 */ addiu $a1, $a1, 8 +/* 060630 7F02BB00 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060634 7F02BB04 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060638 7F02BB08 3C018003 */ lui $at, %hi(D_80030A68) +/* 06063C 7F02BB0C 24420001 */ addiu $v0, $v0, 1 +/* 060640 7F02BB10 AC220A68 */ sw $v0, %lo(D_80030A68)($at) +/* 060644 7F02BB14 2841000B */ slti $at, $v0, 0xb +/* 060648 7F02BB18 14200002 */ bnez $at, .L7F02BB24 +/* 06064C 7F02BB1C 3C018003 */ lui $at, %hi(D_80030A68) +/* 060650 7F02BB20 AC200A68 */ sw $zero, %lo(D_80030A68)($at) +.L7F02BB24: +/* 060654 7F02BB24 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 060658 7F02BB28 44813000 */ mtc1 $at, $f6 +/* 06065C 7F02BB2C 00000000 */ nop +/* 060660 7F02BB30 E6060034 */ swc1 $f6, 0x34($s0) +.L7F02BB34: +/* 060664 7F02BB34 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060668 7F02BB38 02202025 */ move $a0, $s1 +/* 06066C 7F02BB3C E7A00034 */ swc1 $f0, 0x34($sp) +/* 060670 7F02BB40 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060674 7F02BB44 02202025 */ move $a0, $s1 +/* 060678 7F02BB48 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 06067C 7F02BB4C 4608003E */ c.le.s $f0, $f8 +/* 060680 7F02BB50 00000000 */ nop +/* 060684 7F02BB54 45020043 */ bc1fl .L7F02BC64 +/* 060688 7F02BB58 02002025 */ move $a0, $s0 +/* 06068C 7F02BB5C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060690 7F02BB60 02202025 */ move $a0, $s1 +/* 060694 7F02BB64 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 060698 7F02BB68 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 06069C 7F02BB6C 3C0C0000 */ lui $t4, %hi(0x0000540C) # $t4, 0 +/* 0606A0 7F02BB70 258C540C */ addiu $t4, %lo(0x0000540C) # addiu $t4, $t4, 0x540c +/* 0606A4 7F02BB74 016C6821 */ addu $t5, $t3, $t4 +/* 0606A8 7F02BB78 144D0037 */ bne $v0, $t5, .L7F02BC58 +/* 0606AC 7F02BB7C 00000000 */ nop +/* 0606B0 7F02BB80 0FC1BD6D */ jal sub_GAME_7F06F5B4 +/* 0606B4 7F02BB84 02202025 */ move $a0, $s1 +/* 0606B8 7F02BB88 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0606BC 7F02BB8C 44810000 */ mtc1 $at, $f0 +/* 0606C0 7F02BB90 3C018005 */ lui $at, %hi(D_80051E94) +/* 0606C4 7F02BB94 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 0606C8 7F02BB98 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 0606CC 7F02BB9C C42A1E94 */ lwc1 $f10, %lo(D_80051E94)($at) +/* 0606D0 7F02BBA0 3C100000 */ lui $s0, %hi(0x00005684) # $s0, 0 +/* 0606D4 7F02BBA4 26105684 */ addiu $s0, %lo(0x00005684) # addiu $s0, $s0, 0x5684 +/* 0606D8 7F02BBA8 02192821 */ addu $a1, $s0, $t9 +/* 0606DC 7F02BBAC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0606E0 7F02BBB0 94B80004 */ lhu $t8, 4($a1) +/* 0606E4 7F02BBB4 44070000 */ mfc1 $a3, $f0 +/* 0606E8 7F02BBB8 02202025 */ move $a0, $s1 +/* 0606EC 7F02BBBC 44988000 */ mtc1 $t8, $f16 +/* 0606F0 7F02BBC0 2C460001 */ sltiu $a2, $v0, 1 +/* 0606F4 7F02BBC4 07010005 */ bgez $t8, .L7F02BBDC +/* 0606F8 7F02BBC8 468084A0 */ cvt.s.w $f18, $f16 +/* 0606FC 7F02BBCC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 060700 7F02BBD0 44812000 */ mtc1 $at, $f4 +/* 060704 7F02BBD4 00000000 */ nop +/* 060708 7F02BBD8 46049480 */ add.s $f18, $f18, $f4 +.L7F02BBDC: +/* 06070C 7F02BBDC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 060710 7F02BBE0 44813000 */ mtc1 $at, $f6 +/* 060714 7F02BBE4 00000000 */ nop +/* 060718 7F02BBE8 46069201 */ sub.s $f8, $f18, $f6 +/* 06071C 7F02BBEC 46004281 */ sub.s $f10, $f8, $f0 +/* 060720 7F02BBF0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 060724 7F02BBF4 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 060728 7F02BBF8 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 06072C 7F02BBFC 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 060730 7F02BC00 02202025 */ move $a0, $s1 +/* 060734 7F02BC04 3C053F00 */ lui $a1, 0x3f00 +/* 060738 7F02BC08 020E7821 */ addu $t7, $s0, $t6 +/* 06073C 7F02BC0C 95E80004 */ lhu $t0, 4($t7) +/* 060740 7F02BC10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 060744 7F02BC14 44888000 */ mtc1 $t0, $f16 +/* 060748 7F02BC18 05010004 */ bgez $t0, .L7F02BC2C +/* 06074C 7F02BC1C 46808120 */ cvt.s.w $f4, $f16 +/* 060750 7F02BC20 44819000 */ mtc1 $at, $f18 +/* 060754 7F02BC24 00000000 */ nop +/* 060758 7F02BC28 46122100 */ add.s $f4, $f4, $f18 +.L7F02BC2C: +/* 06075C 7F02BC2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 060760 7F02BC30 44813000 */ mtc1 $at, $f6 +/* 060764 7F02BC34 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 060768 7F02BC38 44815000 */ mtc1 $at, $f10 +/* 06076C 7F02BC3C 46062201 */ sub.s $f8, $f4, $f6 +/* 060770 7F02BC40 460A4401 */ sub.s $f16, $f8, $f10 +/* 060774 7F02BC44 44068000 */ mfc1 $a2, $f16 +/* 060778 7F02BC48 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06077C 7F02BC4C 00000000 */ nop +/* 060780 7F02BC50 10000007 */ b .L7F02BC70 +/* 060784 7F02BC54 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BC58: +/* 060788 7F02BC58 0FC091EE */ jal actor_fade_away +/* 06078C 7F02BC5C 02002025 */ move $a0, $s0 +/* 060790 7F02BC60 02002025 */ move $a0, $s0 +.L7F02BC64: +/* 060794 7F02BC64 0FC0AE00 */ jal sub_GAME_7F02B800 +/* 060798 7F02BC68 24050001 */ li $a1, 1 +/* 06079C 7F02BC6C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BC70: +/* 0607A0 7F02BC70 8FB0001C */ lw $s0, 0x1c($sp) +/* 0607A4 7F02BC74 8FB10020 */ lw $s1, 0x20($sp) +/* 0607A8 7F02BC78 03E00008 */ jr $ra +/* 0607AC 7F02BC7C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BC80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BC80 +/* 0607B0 7F02BC80 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0607B4 7F02BC84 AFB00018 */ sw $s0, 0x18($sp) +/* 0607B8 7F02BC88 00808025 */ move $s0, $a0 +/* 0607BC 7F02BC8C AFBF001C */ sw $ra, 0x1c($sp) +/* 0607C0 7F02BC90 8C84001C */ lw $a0, 0x1c($a0) +/* 0607C4 7F02BC94 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0607C8 7F02BC98 AFA40024 */ sw $a0, 0x24($sp) +/* 0607CC 7F02BC9C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0607D0 7F02BCA0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0607D4 7F02BCA4 8FA40024 */ lw $a0, 0x24($sp) +/* 0607D8 7F02BCA8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0607DC 7F02BCAC 4604003E */ c.le.s $f0, $f4 +/* 0607E0 7F02BCB0 00000000 */ nop +/* 0607E4 7F02BCB4 45020013 */ bc1fl .L7F02BD04 +/* 0607E8 7F02BCB8 02002025 */ move $a0, $s0 +/* 0607EC 7F02BCBC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0607F0 7F02BCC0 02002025 */ move $a0, $s0 +/* 0607F4 7F02BCC4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0607F8 7F02BCC8 8FA40024 */ lw $a0, 0x24($sp) +/* 0607FC 7F02BCCC 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 060800 7F02BCD0 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 060804 7F02BCD4 3C0F0000 */ lui $t7, %hi(0x0000540C) # $t7, 0 +/* 060808 7F02BCD8 25EF540C */ addiu $t7, %lo(0x0000540C) # addiu $t7, $t7, 0x540c +/* 06080C 7F02BCDC 01CFC021 */ addu $t8, $t6, $t7 +/* 060810 7F02BCE0 14580005 */ bne $v0, $t8, .L7F02BCF8 +/* 060814 7F02BCE4 02002025 */ move $a0, $s0 +/* 060818 7F02BCE8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 06081C 7F02BCEC 3C0541D0 */ lui $a1, 0x41d0 +/* 060820 7F02BCF0 10000004 */ b .L7F02BD04 +/* 060824 7F02BCF4 02002025 */ move $a0, $s0 +.L7F02BCF8: +/* 060828 7F02BCF8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 06082C 7F02BCFC 02002025 */ move $a0, $s0 +/* 060830 7F02BD00 02002025 */ move $a0, $s0 +.L7F02BD04: +/* 060834 7F02BD04 0FC0AE00 */ jal sub_GAME_7F02B800 +/* 060838 7F02BD08 00002825 */ move $a1, $zero +/* 06083C 7F02BD0C 8FBF001C */ lw $ra, 0x1c($sp) +/* 060840 7F02BD10 8FB00018 */ lw $s0, 0x18($sp) +/* 060844 7F02BD14 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060848 7F02BD18 03E00008 */ jr $ra +/* 06084C 7F02BD1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BD20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BD20 +/* 060850 7F02BD20 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060854 7F02BD24 AFB00020 */ sw $s0, 0x20($sp) +/* 060858 7F02BD28 00808025 */ move $s0, $a0 +/* 06085C 7F02BD2C AFBF0024 */ sw $ra, 0x24($sp) +/* 060860 7F02BD30 8C84001C */ lw $a0, 0x1c($a0) +/* 060864 7F02BD34 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060868 7F02BD38 AFA4003C */ sw $a0, 0x3c($sp) +/* 06086C 7F02BD3C 8FA4003C */ lw $a0, 0x3c($sp) +/* 060870 7F02BD40 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060874 7F02BD44 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 060878 7F02BD48 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 06087C 7F02BD4C 4604003E */ c.le.s $f0, $f4 +/* 060880 7F02BD50 00000000 */ nop +/* 060884 7F02BD54 4502000F */ bc1fl .L7F02BD94 +/* 060888 7F02BD58 8FBF0024 */ lw $ra, 0x24($sp) +/* 06088C 7F02BD5C C606002C */ lwc1 $f6, 0x2c($s0) +/* 060890 7F02BD60 02002025 */ move $a0, $s0 +/* 060894 7F02BD64 27A50030 */ addiu $a1, $sp, 0x30 +/* 060898 7F02BD68 E7A60030 */ swc1 $f6, 0x30($sp) +/* 06089C 7F02BD6C C6080030 */ lwc1 $f8, 0x30($s0) +/* 0608A0 7F02BD70 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0608A4 7F02BD74 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0608A8 7F02BD78 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0608AC 7F02BD7C 8E0E0040 */ lw $t6, 0x40($s0) +/* 0608B0 7F02BD80 8E07003C */ lw $a3, 0x3c($s0) +/* 0608B4 7F02BD84 8E060038 */ lw $a2, 0x38($s0) +/* 0608B8 7F02BD88 0FC09942 */ jal triggered_on_shot_hit +/* 0608BC 7F02BD8C AFAE0010 */ sw $t6, 0x10($sp) +/* 0608C0 7F02BD90 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BD94: +/* 0608C4 7F02BD94 8FB00020 */ lw $s0, 0x20($sp) +/* 0608C8 7F02BD98 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0608CC 7F02BD9C 03E00008 */ jr $ra +/* 0608D0 7F02BDA0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BDA4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BDA4 +/* 0608D4 7F02BDA4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0608D8 7F02BDA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0608DC 7F02BDAC AFA40020 */ sw $a0, 0x20($sp) +/* 0608E0 7F02BDB0 8C84001C */ lw $a0, 0x1c($a0) +/* 0608E4 7F02BDB4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0608E8 7F02BDB8 AFA4001C */ sw $a0, 0x1c($sp) +/* 0608EC 7F02BDBC 8FA4001C */ lw $a0, 0x1c($sp) +/* 0608F0 7F02BDC0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0608F4 7F02BDC4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0608F8 7F02BDC8 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0608FC 7F02BDCC 4604003E */ c.le.s $f0, $f4 +/* 060900 7F02BDD0 00000000 */ nop +/* 060904 7F02BDD4 45020007 */ bc1fl .L7F02BDF4 +/* 060908 7F02BDD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 06090C 7F02BDDC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 060910 7F02BDE0 8FA40020 */ lw $a0, 0x20($sp) +/* 060914 7F02BDE4 8FA40020 */ lw $a0, 0x20($sp) +/* 060918 7F02BDE8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 06091C 7F02BDEC 3C054120 */ lui $a1, 0x4120 +/* 060920 7F02BDF0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BDF4: +/* 060924 7F02BDF4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060928 7F02BDF8 03E00008 */ jr $ra +/* 06092C 7F02BDFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BE00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BE00 +/* 060930 7F02BE00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 060934 7F02BE04 AFBF0014 */ sw $ra, 0x14($sp) +/* 060938 7F02BE08 AFA40020 */ sw $a0, 0x20($sp) +/* 06093C 7F02BE0C 8C84001C */ lw $a0, 0x1c($a0) +/* 060940 7F02BE10 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060944 7F02BE14 AFA4001C */ sw $a0, 0x1c($sp) +/* 060948 7F02BE18 8FA4001C */ lw $a0, 0x1c($sp) +/* 06094C 7F02BE1C 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060950 7F02BE20 E7A00018 */ swc1 $f0, 0x18($sp) +/* 060954 7F02BE24 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 060958 7F02BE28 4604003E */ c.le.s $f0, $f4 +/* 06095C 7F02BE2C 00000000 */ nop +/* 060960 7F02BE30 45020006 */ bc1fl .L7F02BE4C +/* 060964 7F02BE34 8FBF0014 */ lw $ra, 0x14($sp) +/* 060968 7F02BE38 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 06096C 7F02BE3C 8FA40020 */ lw $a0, 0x20($sp) +/* 060970 7F02BE40 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060974 7F02BE44 8FA40020 */ lw $a0, 0x20($sp) +/* 060978 7F02BE48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BE4C: +/* 06097C 7F02BE4C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060980 7F02BE50 03E00008 */ jr $ra +/* 060984 7F02BE54 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BE58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BE58 +/* 060988 7F02BE58 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06098C 7F02BE5C AFBF0014 */ sw $ra, 0x14($sp) +/* 060990 7F02BE60 AFA40020 */ sw $a0, 0x20($sp) +/* 060994 7F02BE64 8C84001C */ lw $a0, 0x1c($a0) +/* 060998 7F02BE68 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06099C 7F02BE6C AFA4001C */ sw $a0, 0x1c($sp) +/* 0609A0 7F02BE70 8FA4001C */ lw $a0, 0x1c($sp) +/* 0609A4 7F02BE74 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0609A8 7F02BE78 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0609AC 7F02BE7C C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0609B0 7F02BE80 4604003E */ c.le.s $f0, $f4 +/* 0609B4 7F02BE84 00000000 */ nop +/* 0609B8 7F02BE88 45020004 */ bc1fl .L7F02BE9C +/* 0609BC 7F02BE8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0609C0 7F02BE90 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 0609C4 7F02BE94 8FA40020 */ lw $a0, 0x20($sp) +/* 0609C8 7F02BE98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BE9C: +/* 0609CC 7F02BE9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0609D0 7F02BEA0 03E00008 */ jr $ra +/* 0609D4 7F02BEA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BEA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BEA8 +/* 0609D8 7F02BEA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0609DC 7F02BEAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0609E0 7F02BEB0 AFA40020 */ sw $a0, 0x20($sp) +/* 0609E4 7F02BEB4 8C84001C */ lw $a0, 0x1c($a0) +/* 0609E8 7F02BEB8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0609EC 7F02BEBC AFA4001C */ sw $a0, 0x1c($sp) +/* 0609F0 7F02BEC0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0609F4 7F02BEC4 44812000 */ mtc1 $at, $f4 +/* 0609F8 7F02BEC8 00000000 */ nop +/* 0609FC 7F02BECC 4600203E */ c.le.s $f4, $f0 +/* 060A00 7F02BED0 00000000 */ nop +/* 060A04 7F02BED4 45000003 */ bc1f .L7F02BEE4 +/* 060A08 7F02BED8 00000000 */ nop +/* 060A0C 7F02BEDC 0FC15772 */ jal start_alarm +/* 060A10 7F02BEE0 00000000 */ nop +.L7F02BEE4: +/* 060A14 7F02BEE4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060A18 7F02BEE8 8FA4001C */ lw $a0, 0x1c($sp) +/* 060A1C 7F02BEEC E7A00018 */ swc1 $f0, 0x18($sp) +/* 060A20 7F02BEF0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060A24 7F02BEF4 8FA4001C */ lw $a0, 0x1c($sp) +/* 060A28 7F02BEF8 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 060A2C 7F02BEFC 4606003E */ c.le.s $f0, $f6 +/* 060A30 7F02BF00 00000000 */ nop +/* 060A34 7F02BF04 45020004 */ bc1fl .L7F02BF18 +/* 060A38 7F02BF08 8FBF0014 */ lw $ra, 0x14($sp) +/* 060A3C 7F02BF0C 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060A40 7F02BF10 8FA40020 */ lw $a0, 0x20($sp) +/* 060A44 7F02BF14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BF18: +/* 060A48 7F02BF18 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060A4C 7F02BF1C 03E00008 */ jr $ra +/* 060A50 7F02BF20 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BF24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BF24 +/* 060A54 7F02BF24 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 060A58 7F02BF28 AFBF001C */ sw $ra, 0x1c($sp) +/* 060A5C 7F02BF2C AFB00018 */ sw $s0, 0x18($sp) +/* 060A60 7F02BF30 AFA40028 */ sw $a0, 0x28($sp) +/* 060A64 7F02BF34 8C90001C */ lw $s0, 0x1c($a0) +/* 060A68 7F02BF38 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060A6C 7F02BF3C 02002025 */ move $a0, $s0 +/* 060A70 7F02BF40 E7A00020 */ swc1 $f0, 0x20($sp) +/* 060A74 7F02BF44 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060A78 7F02BF48 02002025 */ move $a0, $s0 +/* 060A7C 7F02BF4C C7A40020 */ lwc1 $f4, 0x20($sp) +/* 060A80 7F02BF50 4604003E */ c.le.s $f0, $f4 +/* 060A84 7F02BF54 00000000 */ nop +/* 060A88 7F02BF58 4502001E */ bc1fl .L7F02BFD4 +/* 060A8C 7F02BF5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 060A90 7F02BF60 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060A94 7F02BF64 02002025 */ move $a0, $s0 +/* 060A98 7F02BF68 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 060A9C 7F02BF6C 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 060AA0 7F02BF70 3C180000 */ lui $t8, %hi(0x00004384) # $t8, 0 +/* 060AA4 7F02BF74 27184384 */ addiu $t8, %lo(0x00004384) # addiu $t8, $t8, 0x4384 +/* 060AA8 7F02BF78 01F8C821 */ addu $t9, $t7, $t8 +/* 060AAC 7F02BF7C 14590005 */ bne $v0, $t9, .L7F02BF94 +/* 060AB0 7F02BF80 8FA40028 */ lw $a0, 0x28($sp) +/* 060AB4 7F02BF84 0FC08F85 */ jal sub_GAME_7F023E14 +/* 060AB8 7F02BF88 3C0541D0 */ lui $a1, 0x41d0 +/* 060ABC 7F02BF8C 10000011 */ b .L7F02BFD4 +/* 060AC0 7F02BF90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BF94: +/* 060AC4 7F02BF94 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060AC8 7F02BF98 02002025 */ move $a0, $s0 +/* 060ACC 7F02BF9C 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 060AD0 7F02BFA0 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 060AD4 7F02BFA4 3C090000 */ lui $t1, %hi(0x00005D10) # $t1, 0 +/* 060AD8 7F02BFA8 25295D10 */ addiu $t1, %lo(0x00005D10) # addiu $t1, $t1, 0x5d10 +/* 060ADC 7F02BFAC 01095021 */ addu $t2, $t0, $t1 +/* 060AE0 7F02BFB0 144A0005 */ bne $v0, $t2, .L7F02BFC8 +/* 060AE4 7F02BFB4 8FA40028 */ lw $a0, 0x28($sp) +/* 060AE8 7F02BFB8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 060AEC 7F02BFBC 3C0541D0 */ lui $a1, 0x41d0 +/* 060AF0 7F02BFC0 10000004 */ b .L7F02BFD4 +/* 060AF4 7F02BFC4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BFC8: +/* 060AF8 7F02BFC8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060AFC 7F02BFCC 8FA40028 */ lw $a0, 0x28($sp) +/* 060B00 7F02BFD0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BFD4: +/* 060B04 7F02BFD4 8FB00018 */ lw $s0, 0x18($sp) +/* 060B08 7F02BFD8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060B0C 7F02BFDC 03E00008 */ jr $ra +/* 060B10 7F02BFE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BFE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BFE4 +/* 060B14 7F02BFE4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060B18 7F02BFE8 AFBF001C */ sw $ra, 0x1c($sp) +/* 060B1C 7F02BFEC AFB00018 */ sw $s0, 0x18($sp) +/* 060B20 7F02BFF0 00808025 */ move $s0, $a0 +/* 060B24 7F02BFF4 AFA50044 */ sw $a1, 0x44($sp) +/* 060B28 7F02BFF8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 060B2C 7F02BFFC AFA60048 */ sw $a2, 0x48($sp) +/* 060B30 7F02C000 8C430004 */ lw $v1, 4($v0) +/* 060B34 7F02C004 80640080 */ lb $a0, 0x80($v1) +/* 060B38 7F02C008 AFA00034 */ sw $zero, 0x34($sp) +/* 060B3C 7F02C00C 0FC177FC */ jal get_sound_trigger_rate +/* 060B40 7F02C010 AFA30038 */ sw $v1, 0x38($sp) +/* 060B44 7F02C014 8FA30038 */ lw $v1, 0x38($sp) +/* 060B48 7F02C018 A3A20033 */ sb $v0, 0x33($sp) +/* 060B4C 7F02C01C 0FC17805 */ jal bondwalkItemGetSound +/* 060B50 7F02C020 80640080 */ lb $a0, 0x80($v1) +/* 060B54 7F02C024 8FAE0048 */ lw $t6, 0x48($sp) +/* 060B58 7F02C028 8FA50034 */ lw $a1, 0x34($sp) +/* 060B5C 7F02C02C A7A20030 */ sh $v0, 0x30($sp) +/* 060B60 7F02C030 11C00012 */ beqz $t6, .L7F02C07C +/* 060B64 7F02C034 93AF0033 */ lbu $t7, 0x33($sp) +/* 060B68 7F02C038 59E00010 */ blezl $t7, .L7F02C07C +/* 060B6C 7F02C03C 24050001 */ li $a1, 1 +/* 060B70 7F02C040 96180012 */ lhu $t8, 0x12($s0) +/* 060B74 7F02C044 8FA80044 */ lw $t0, 0x44($sp) +/* 060B78 7F02C048 3C0C8005 */ lui $t4, %hi(global_timer) +/* 060B7C 7F02C04C 33190080 */ andi $t9, $t8, 0x80 +/* 060B80 7F02C050 1720000A */ bnez $t9, .L7F02C07C +/* 060B84 7F02C054 00084880 */ sll $t1, $t0, 2 +/* 060B88 7F02C058 02095021 */ addu $t2, $s0, $t1 +/* 060B8C 7F02C05C 8D4B0178 */ lw $t3, 0x178($t2) +/* 060B90 7F02C060 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 060B94 7F02C064 016C082A */ slt $at, $t3, $t4 +/* 060B98 7F02C068 10200004 */ beqz $at, .L7F02C07C +/* 060B9C 7F02C06C 00000000 */ nop +/* 060BA0 7F02C070 10000002 */ b .L7F02C07C +/* 060BA4 7F02C074 24050001 */ li $a1, 1 +/* 060BA8 7F02C078 24050001 */ li $a1, 1 +.L7F02C07C: +/* 060BAC 7F02C07C 10A0003F */ beqz $a1, .L7F02C17C +/* 060BB0 7F02C080 8FAD0044 */ lw $t5, 0x44($sp) +/* 060BB4 7F02C084 000D70C0 */ sll $t6, $t5, 3 +/* 060BB8 7F02C088 020E1821 */ addu $v1, $s0, $t6 +/* 060BBC 7F02C08C 8C640168 */ lw $a0, 0x168($v1) +/* 060BC0 7F02C090 5080000A */ beql $a0, $zero, .L7F02C0BC +/* 060BC4 7F02C094 8C64016C */ lw $a0, 0x16c($v1) +/* 060BC8 7F02C098 0C00237C */ jal sfxGetArg0Unk3F +/* 060BCC 7F02C09C AFA30028 */ sw $v1, 0x28($sp) +/* 060BD0 7F02C0A0 10400005 */ beqz $v0, .L7F02C0B8 +/* 060BD4 7F02C0A4 8FA30028 */ lw $v1, 0x28($sp) +/* 060BD8 7F02C0A8 8C640168 */ lw $a0, 0x168($v1) +/* 060BDC 7F02C0AC 0C002408 */ jal sfxDeactivate +/* 060BE0 7F02C0B0 AFA30028 */ sw $v1, 0x28($sp) +/* 060BE4 7F02C0B4 8FA30028 */ lw $v1, 0x28($sp) +.L7F02C0B8: +/* 060BE8 7F02C0B8 8C64016C */ lw $a0, 0x16c($v1) +.L7F02C0BC: +/* 060BEC 7F02C0BC 5080000A */ beql $a0, $zero, .L7F02C0E8 +/* 060BF0 7F02C0C0 97AF0030 */ lhu $t7, 0x30($sp) +/* 060BF4 7F02C0C4 0C00237C */ jal sfxGetArg0Unk3F +/* 060BF8 7F02C0C8 AFA30028 */ sw $v1, 0x28($sp) +/* 060BFC 7F02C0CC 10400005 */ beqz $v0, .L7F02C0E4 +/* 060C00 7F02C0D0 8FA30028 */ lw $v1, 0x28($sp) +/* 060C04 7F02C0D4 8C64016C */ lw $a0, 0x16c($v1) +/* 060C08 7F02C0D8 0C002408 */ jal sfxDeactivate +/* 060C0C 7F02C0DC AFA30028 */ sw $v1, 0x28($sp) +/* 060C10 7F02C0E0 8FA30028 */ lw $v1, 0x28($sp) +.L7F02C0E4: +/* 060C14 7F02C0E4 97AF0030 */ lhu $t7, 0x30($sp) +.L7F02C0E8: +/* 060C18 7F02C0E8 51E00025 */ beql $t7, $zero, .L7F02C180 +/* 060C1C 7F02C0EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 060C20 7F02C0F0 8C780168 */ lw $t8, 0x168($v1) +/* 060C24 7F02C0F4 00003025 */ move $a2, $zero +/* 060C28 7F02C0F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060C2C 7F02C0FC 17000003 */ bnez $t8, .L7F02C10C +/* 060C30 7F02C100 87A50030 */ lh $a1, 0x30($sp) +/* 060C34 7F02C104 10000005 */ b .L7F02C11C +/* 060C38 7F02C108 24660168 */ addiu $a2, $v1, 0x168 +.L7F02C10C: +/* 060C3C 7F02C10C 8C79016C */ lw $t9, 0x16c($v1) +/* 060C40 7F02C110 17200002 */ bnez $t9, .L7F02C11C +/* 060C44 7F02C114 00000000 */ nop +/* 060C48 7F02C118 2466016C */ addiu $a2, $v1, 0x16c +.L7F02C11C: +/* 060C4C 7F02C11C 10C00017 */ beqz $a2, .L7F02C17C +/* 060C50 7F02C120 93A80033 */ lbu $t0, 0x33($sp) +/* 060C54 7F02C124 8FA90044 */ lw $t1, 0x44($sp) +/* 060C58 7F02C128 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060C5C 7F02C12C AFA80028 */ sw $t0, 0x28($sp) +/* 060C60 7F02C130 00095080 */ sll $t2, $t1, 2 +/* 060C64 7F02C134 020A5821 */ addu $t3, $s0, $t2 +/* 060C68 7F02C138 AFAB0024 */ sw $t3, 0x24($sp) +/* 060C6C 7F02C13C 0C002382 */ jal play_sfx_a1 +/* 060C70 7F02C140 AFA6002C */ sw $a2, 0x2c($sp) +/* 060C74 7F02C144 8FA6002C */ lw $a2, 0x2c($sp) +/* 060C78 7F02C148 8E050018 */ lw $a1, 0x18($s0) +/* 060C7C 7F02C14C 8CC40000 */ lw $a0, ($a2) +/* 060C80 7F02C150 0FC14E84 */ jal sub_GAME_7F053A10 +/* 060C84 7F02C154 24A50008 */ addiu $a1, $a1, 8 +/* 060C88 7F02C158 3C0C8005 */ lui $t4, %hi(global_timer) +/* 060C8C 7F02C15C 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 060C90 7F02C160 8FAD0028 */ lw $t5, 0x28($sp) +/* 060C94 7F02C164 8FAF0024 */ lw $t7, 0x24($sp) +/* 060C98 7F02C168 018D7021 */ addu $t6, $t4, $t5 +/* 060C9C 7F02C16C ADEE0178 */ sw $t6, 0x178($t7) +/* 060CA0 7F02C170 96180012 */ lhu $t8, 0x12($s0) +/* 060CA4 7F02C174 37190080 */ ori $t9, $t8, 0x80 +/* 060CA8 7F02C178 A6190012 */ sh $t9, 0x12($s0) +.L7F02C17C: +/* 060CAC 7F02C17C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02C180: +/* 060CB0 7F02C180 8FB00018 */ lw $s0, 0x18($sp) +/* 060CB4 7F02C184 27BD0040 */ addiu $sp, $sp, 0x40 +/* 060CB8 7F02C188 03E00008 */ jr $ra +/* 060CBC 7F02C18C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C190(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E98 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02C190 +/* 060CC0 7F02C190 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 060CC4 7F02C194 AFBF0014 */ sw $ra, 0x14($sp) +/* 060CC8 7F02C198 00802825 */ move $a1, $a0 +/* 060CCC 7F02C19C 8C84001C */ lw $a0, 0x1c($a0) +/* 060CD0 7F02C1A0 0FC1B320 */ jal getsubroty +/* 060CD4 7F02C1A4 AFA50018 */ sw $a1, 0x18($sp) +/* 060CD8 7F02C1A8 8FA50018 */ lw $a1, 0x18($sp) +/* 060CDC 7F02C1AC 3C018005 */ lui $at, %hi(D_80051E98) +/* 060CE0 7F02C1B0 C42E1E98 */ lwc1 $f14, %lo(D_80051E98)($at) +/* 060CE4 7F02C1B4 C4A4014C */ lwc1 $f4, 0x14c($a1) +/* 060CE8 7F02C1B8 44808000 */ mtc1 $zero, $f16 +/* 060CEC 7F02C1BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 060CF0 7F02C1C0 46040080 */ add.s $f2, $f0, $f4 +/* 060CF4 7F02C1C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 060CF8 7F02C1C8 46008306 */ mov.s $f12, $f16 +/* 060CFC 7F02C1CC 4602703E */ c.le.s $f14, $f2 +/* 060D00 7F02C1D0 00000000 */ nop +/* 060D04 7F02C1D4 45020004 */ bc1fl .L7F02C1E8 +/* 060D08 7F02C1D8 4610103C */ c.lt.s $f2, $f16 +/* 060D0C 7F02C1DC 10000006 */ b .L7F02C1F8 +/* 060D10 7F02C1E0 460E1081 */ sub.s $f2, $f2, $f14 +/* 060D14 7F02C1E4 4610103C */ c.lt.s $f2, $f16 +.L7F02C1E8: +/* 060D18 7F02C1E8 00000000 */ nop +/* 060D1C 7F02C1EC 45020003 */ bc1fl .L7F02C1FC +/* 060D20 7F02C1F0 80A20007 */ lb $v0, 7($a1) +/* 060D24 7F02C1F4 460E1080 */ add.s $f2, $f2, $f14 +.L7F02C1F8: +/* 060D28 7F02C1F8 80A20007 */ lb $v0, 7($a1) +.L7F02C1FC: +/* 060D2C 7F02C1FC 24010008 */ li $at, 8 +/* 060D30 7F02C200 10410003 */ beq $v0, $at, .L7F02C210 +/* 060D34 7F02C204 2401000A */ li $at, 10 +/* 060D38 7F02C208 54410005 */ bnel $v0, $at, .L7F02C220 +/* 060D3C 7F02C20C 24010019 */ li $at, 25 +.L7F02C210: +/* 060D40 7F02C210 8CAE002C */ lw $t6, 0x2c($a1) +/* 060D44 7F02C214 10000008 */ b .L7F02C238 +/* 060D48 7F02C218 C5CC000C */ lwc1 $f12, 0xc($t6) +/* 060D4C 7F02C21C 24010019 */ li $at, 25 +.L7F02C220: +/* 060D50 7F02C220 54410006 */ bnel $v0, $at, .L7F02C23C +/* 060D54 7F02C224 46106032 */ c.eq.s $f12, $f16 +/* 060D58 7F02C228 8CA2002C */ lw $v0, 0x2c($a1) +/* 060D5C 7F02C22C 50400003 */ beql $v0, $zero, .L7F02C23C +/* 060D60 7F02C230 46106032 */ c.eq.s $f12, $f16 +/* 060D64 7F02C234 C44C000C */ lwc1 $f12, 0xc($v0) +.L7F02C238: +/* 060D68 7F02C238 46106032 */ c.eq.s $f12, $f16 +.L7F02C23C: +/* 060D6C 7F02C23C 00000000 */ nop +/* 060D70 7F02C240 4501000C */ bc1t .L7F02C274 +/* 060D74 7F02C244 00000000 */ nop +/* 060D78 7F02C248 8CAF001C */ lw $t7, 0x1c($a1) +/* 060D7C 7F02C24C 81F80024 */ lb $t8, 0x24($t7) +/* 060D80 7F02C250 53000003 */ beql $t8, $zero, .L7F02C260 +/* 060D84 7F02C254 460C1080 */ add.s $f2, $f2, $f12 +/* 060D88 7F02C258 460C7301 */ sub.s $f12, $f14, $f12 +/* 060D8C 7F02C25C 460C1080 */ add.s $f2, $f2, $f12 +.L7F02C260: +/* 060D90 7F02C260 4602703E */ c.le.s $f14, $f2 +/* 060D94 7F02C264 00000000 */ nop +/* 060D98 7F02C268 45000002 */ bc1f .L7F02C274 +/* 060D9C 7F02C26C 00000000 */ nop +/* 060DA0 7F02C270 460E1081 */ sub.s $f2, $f2, $f14 +.L7F02C274: +/* 060DA4 7F02C274 03E00008 */ jr $ra +/* 060DA8 7F02C278 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C27C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E9C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02C27C +/* 060DAC 7F02C27C C4840144 */ lwc1 $f4, 0x144($a0) +/* 060DB0 7F02C280 C4860148 */ lwc1 $f6, 0x148($a0) +/* 060DB4 7F02C284 44804000 */ mtc1 $zero, $f8 +/* 060DB8 7F02C288 3C018005 */ lui $at, %hi(D_80051E9C) +/* 060DBC 7F02C28C 46062080 */ add.s $f2, $f4, $f6 +/* 060DC0 7F02C290 4608103C */ c.lt.s $f2, $f8 +/* 060DC4 7F02C294 00000000 */ nop +/* 060DC8 7F02C298 45000003 */ bc1f .L7F02C2A8 +/* 060DCC 7F02C29C 00000000 */ nop +/* 060DD0 7F02C2A0 C42A1E9C */ lwc1 $f10, %lo(D_80051E9C)($at) +/* 060DD4 7F02C2A4 460A1080 */ add.s $f2, $f2, $f10 +.L7F02C2A8: +/* 060DD8 7F02C2A8 03E00008 */ jr $ra +/* 060DDC 7F02C2AC 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C2B0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051EA0 +.word 0x3d80adfd /*0.062831856*/ +glabel D_80051EA4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EA8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EAC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C2B0 +/* 060DE0 7F02C2B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 060DE4 7F02C2B4 AFA7003C */ sw $a3, 0x3c($sp) +/* 060DE8 7F02C2B8 24010002 */ li $at, 2 +/* 060DEC 7F02C2BC 00803825 */ move $a3, $a0 +/* 060DF0 7F02C2C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 060DF4 7F02C2C4 AFA40030 */ sw $a0, 0x30($sp) +/* 060DF8 7F02C2C8 AFA50034 */ sw $a1, 0x34($sp) +/* 060DFC 7F02C2CC 10A10077 */ beq $a1, $at, .L7F02C4AC +/* 060E00 7F02C2D0 AFA60038 */ sw $a2, 0x38($sp) +/* 060E04 7F02C2D4 8C84001C */ lw $a0, 0x1c($a0) +/* 060E08 7F02C2D8 AFA70030 */ sw $a3, 0x30($sp) +/* 060E0C 7F02C2DC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060E10 7F02C2E0 AFA4002C */ sw $a0, 0x2c($sp) +/* 060E14 7F02C2E4 E7A00028 */ swc1 $f0, 0x28($sp) +/* 060E18 7F02C2E8 0FC1B320 */ jal getsubroty +/* 060E1C 7F02C2EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0) +/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at) +/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6 +/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp) +/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp) +/* 060E40 7F02C310 24010008 */ li $at, 8 +/* 060E44 7F02C314 C5E400A4 */ lwc1 $f4, 0xa4($t7) +/* 060E48 7F02C318 80E20007 */ lb $v0, 7($a3) +/* 060E4C 7F02C31C 46000306 */ mov.s $f12, $f0 +/* 060E50 7F02C320 460A4482 */ mul.s $f18, $f8, $f10 +/* 060E54 7F02C324 00E02025 */ move $a0, $a3 +/* 060E58 7F02C328 46049382 */ mul.s $f14, $f18, $f4 +/* 060E5C 7F02C32C 5441000A */ bnel $v0, $at, .L7F02C358 +/* 060E60 7F02C330 24010001 */ li $at, 1 +/* 060E64 7F02C334 8CE5004C */ lw $a1, 0x4c($a3) +/* 060E68 7F02C338 8CE60050 */ lw $a2, 0x50($a3) +/* 060E6C 7F02C33C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E70 7F02C340 0FC0942F */ jal sub_GAME_7F0250BC +/* 060E74 7F02C344 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060E78 7F02C348 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060E7C 7F02C34C 10000015 */ b .L7F02C3A4 +/* 060E80 7F02C350 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 060E84 7F02C354 24010001 */ li $at, 1 +.L7F02C358: +/* 060E88 7F02C358 14410009 */ bne $v0, $at, .L7F02C380 +/* 060E8C 7F02C35C 00E02025 */ move $a0, $a3 +/* 060E90 7F02C360 8CE50030 */ lw $a1, 0x30($a3) +/* 060E94 7F02C364 8CE60034 */ lw $a2, 0x34($a3) +/* 060E98 7F02C368 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E9C 7F02C36C 0FC0942F */ jal sub_GAME_7F0250BC +/* 060EA0 7F02C370 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EA4 7F02C374 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060EA8 7F02C378 1000000A */ b .L7F02C3A4 +/* 060EAC 7F02C37C C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C380: +/* 060EB0 7F02C380 AFA70030 */ sw $a3, 0x30($sp) +/* 060EB4 7F02C384 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EB8 7F02C388 0FC225E6 */ jal get_curplayer_positiondata +/* 060EBC 7F02C38C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060EC0 7F02C390 8FA40030 */ lw $a0, 0x30($sp) +/* 060EC4 7F02C394 0FC0CAF6 */ jal get_distance_actor_to_position +/* 060EC8 7F02C398 24450008 */ addiu $a1, $v0, 8 +/* 060ECC 7F02C39C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060ED0 7F02C3A0 C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C3A4: +/* 060ED4 7F02C3A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 060ED8 7F02C3A8 44808000 */ mtc1 $zero, $f16 +/* 060EDC 7F02C3AC 3C018005 */ lui $at, %hi(D_80051EA4) +/* 060EE0 7F02C3B0 46060081 */ sub.s $f2, $f0, $f6 +/* 060EE4 7F02C3B4 4610103C */ c.lt.s $f2, $f16 +/* 060EE8 7F02C3B8 00000000 */ nop +/* 060EEC 7F02C3BC 45020004 */ bc1fl .L7F02C3D0 +/* 060EF0 7F02C3C0 460E103C */ c.lt.s $f2, $f14 +/* 060EF4 7F02C3C4 C4201EA4 */ lwc1 $f0, %lo(D_80051EA4)($at) +/* 060EF8 7F02C3C8 46001080 */ add.s $f2, $f2, $f0 +/* 060EFC 7F02C3CC 460E103C */ c.lt.s $f2, $f14 +.L7F02C3D0: +/* 060F00 7F02C3D0 3C018005 */ lui $at, %hi(D_80051EA8) +/* 060F04 7F02C3D4 C4201EA8 */ lwc1 $f0, %lo(D_80051EA8)($at) +/* 060F08 7F02C3D8 45030008 */ bc1tl .L7F02C3FC +/* 060F0C 7F02C3DC 46026300 */ add.s $f12, $f12, $f2 +/* 060F10 7F02C3E0 460E0201 */ sub.s $f8, $f0, $f14 +/* 060F14 7F02C3E4 3C018005 */ lui $at, %hi(D_80051EAC) +/* 060F18 7F02C3E8 4602403C */ c.lt.s $f8, $f2 +/* 060F1C 7F02C3EC 00000000 */ nop +/* 060F20 7F02C3F0 4500000D */ bc1f .L7F02C428 +/* 060F24 7F02C3F4 00000000 */ nop +/* 060F28 7F02C3F8 46026300 */ add.s $f12, $f12, $f2 +.L7F02C3FC: +/* 060F2C 7F02C3FC 460C003E */ c.le.s $f0, $f12 +/* 060F30 7F02C400 00000000 */ nop +/* 060F34 7F02C404 45020003 */ bc1fl .L7F02C414 +/* 060F38 7F02C408 44056000 */ mfc1 $a1, $f12 +/* 060F3C 7F02C40C 46006301 */ sub.s $f12, $f12, $f0 +/* 060F40 7F02C410 44056000 */ mfc1 $a1, $f12 +.L7F02C414: +/* 060F44 7F02C414 0FC1B34F */ jal setsubroty +/* 060F48 7F02C418 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F4C 7F02C41C 24180003 */ li $t8, 3 +/* 060F50 7F02C420 1000001A */ b .L7F02C48C +/* 060F54 7F02C424 AFB80034 */ sw $t8, 0x34($sp) +.L7F02C428: +/* 060F58 7F02C428 C42A1EAC */ lwc1 $f10, %lo(D_80051EAC)($at) +/* 060F5C 7F02C42C 460A103C */ c.lt.s $f2, $f10 +/* 060F60 7F02C430 00000000 */ nop +/* 060F64 7F02C434 4502000D */ bc1fl .L7F02C46C +/* 060F68 7F02C438 460E6301 */ sub.s $f12, $f12, $f14 +/* 060F6C 7F02C43C 460E6300 */ add.s $f12, $f12, $f14 +/* 060F70 7F02C440 460C003E */ c.le.s $f0, $f12 +/* 060F74 7F02C444 00000000 */ nop +/* 060F78 7F02C448 45020003 */ bc1fl .L7F02C458 +/* 060F7C 7F02C44C 44056000 */ mfc1 $a1, $f12 +/* 060F80 7F02C450 46006301 */ sub.s $f12, $f12, $f0 +/* 060F84 7F02C454 44056000 */ mfc1 $a1, $f12 +.L7F02C458: +/* 060F88 7F02C458 0FC1B34F */ jal setsubroty +/* 060F8C 7F02C45C 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F90 7F02C460 1000000B */ b .L7F02C490 +/* 060F94 7F02C464 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 060F98 7F02C468 460E6301 */ sub.s $f12, $f12, $f14 +.L7F02C46C: +/* 060F9C 7F02C46C 4610603C */ c.lt.s $f12, $f16 +/* 060FA0 7F02C470 00000000 */ nop +/* 060FA4 7F02C474 45020003 */ bc1fl .L7F02C484 +/* 060FA8 7F02C478 44056000 */ mfc1 $a1, $f12 +/* 060FAC 7F02C47C 46006300 */ add.s $f12, $f12, $f0 +/* 060FB0 7F02C480 44056000 */ mfc1 $a1, $f12 +.L7F02C484: +/* 060FB4 7F02C484 0FC1B34F */ jal setsubroty +/* 060FB8 7F02C488 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02C48C: +/* 060FBC 7F02C48C C7B20028 */ lwc1 $f18, 0x28($sp) +.L7F02C490: +/* 060FC0 7F02C490 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 060FC4 7F02C494 24190002 */ li $t9, 2 +/* 060FC8 7F02C498 4612203E */ c.le.s $f4, $f18 +/* 060FCC 7F02C49C 00000000 */ nop +/* 060FD0 7F02C4A0 45020003 */ bc1fl .L7F02C4B0 +/* 060FD4 7F02C4A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 060FD8 7F02C4A8 AFB90034 */ sw $t9, 0x34($sp) +.L7F02C4AC: +/* 060FDC 7F02C4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02C4B0: +/* 060FE0 7F02C4B0 8FA20034 */ lw $v0, 0x34($sp) +/* 060FE4 7F02C4B4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 060FE8 7F02C4B8 03E00008 */ jr $ra +/* 060FEC 7F02C4BC 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051EA0 +.word 0x3d80adfd /*0.062831856*/ +glabel D_80051EA4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EA8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EAC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C2B0 +/* 060DE0 7F02C2B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 060DE4 7F02C2B4 AFA7003C */ sw $a3, 0x3c($sp) +/* 060DE8 7F02C2B8 24010002 */ li $at, 2 +/* 060DEC 7F02C2BC 00803825 */ move $a3, $a0 +/* 060DF0 7F02C2C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 060DF4 7F02C2C4 AFA40030 */ sw $a0, 0x30($sp) +/* 060DF8 7F02C2C8 AFA50034 */ sw $a1, 0x34($sp) +/* 060DFC 7F02C2CC 10A10077 */ beq $a1, $at, .L7F02C4AC +/* 060E00 7F02C2D0 AFA60038 */ sw $a2, 0x38($sp) +/* 060E04 7F02C2D4 8C84001C */ lw $a0, 0x1c($a0) +/* 060E08 7F02C2D8 AFA70030 */ sw $a3, 0x30($sp) +/* 060E0C 7F02C2DC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060E10 7F02C2E0 AFA4002C */ sw $a0, 0x2c($sp) +/* 060E14 7F02C2E4 E7A00028 */ swc1 $f0, 0x28($sp) +/* 060E18 7F02C2E8 0FC1B320 */ jal getsubroty +/* 060E1C 7F02C2EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0) +/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at) +/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6 +/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp) +/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp) +/* 060E40 7F02C310 24010008 */ li $at, 8 +/* 060E44 7F02C314 C5E400A4 */ lwc1 $f4, 0xa4($t7) +/* 060E48 7F02C318 80E20007 */ lb $v0, 7($a3) +/* 060E4C 7F02C31C 46000306 */ mov.s $f12, $f0 +/* 060E50 7F02C320 460A4482 */ mul.s $f18, $f8, $f10 +/* 060E54 7F02C324 00E02025 */ move $a0, $a3 +/* 060E58 7F02C328 46049382 */ mul.s $f14, $f18, $f4 +/* 060E5C 7F02C32C 5441000A */ bnel $v0, $at, .L7F02C358 +/* 060E60 7F02C330 24010001 */ li $at, 1 +/* 060E64 7F02C334 8CE5004C */ lw $a1, 0x4c($a3) +/* 060E68 7F02C338 8CE60050 */ lw $a2, 0x50($a3) +/* 060E6C 7F02C33C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E70 7F02C340 0FC0942F */ jal sub_GAME_7F0250BC +/* 060E74 7F02C344 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060E78 7F02C348 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060E7C 7F02C34C 10000015 */ b .L7F02C3A4 +/* 060E80 7F02C350 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 060E84 7F02C354 24010001 */ li $at, 1 +.L7F02C358: +/* 060E88 7F02C358 14410009 */ bne $v0, $at, .L7F02C380 +/* 060E8C 7F02C35C 00E02025 */ move $a0, $a3 +/* 060E90 7F02C360 8CE50030 */ lw $a1, 0x30($a3) +/* 060E94 7F02C364 8CE60034 */ lw $a2, 0x34($a3) +/* 060E98 7F02C368 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E9C 7F02C36C 0FC0942F */ jal sub_GAME_7F0250BC +/* 060EA0 7F02C370 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EA4 7F02C374 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060EA8 7F02C378 1000000A */ b .L7F02C3A4 +/* 060EAC 7F02C37C C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C380: +/* 060EB0 7F02C380 AFA70030 */ sw $a3, 0x30($sp) +/* 060EB4 7F02C384 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EB8 7F02C388 0FC225E6 */ jal get_curplayer_positiondata +/* 060EBC 7F02C38C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060EC0 7F02C390 8FA40030 */ lw $a0, 0x30($sp) +/* 060EC4 7F02C394 0FC0CAF6 */ jal get_distance_actor_to_position +/* 060EC8 7F02C398 24450008 */ addiu $a1, $v0, 8 +/* 060ECC 7F02C39C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060ED0 7F02C3A0 C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C3A4: +/* 060ED4 7F02C3A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 060ED8 7F02C3A8 44808000 */ mtc1 $zero, $f16 +/* 060EDC 7F02C3AC 3C018005 */ lui $at, %hi(D_80051EA4) +/* 060EE0 7F02C3B0 46060081 */ sub.s $f2, $f0, $f6 +/* 060EE4 7F02C3B4 4610103C */ c.lt.s $f2, $f16 +/* 060EE8 7F02C3B8 00000000 */ nop +/* 060EEC 7F02C3BC 45020004 */ bc1fl .L7F02C3D0 +/* 060EF0 7F02C3C0 460E103C */ c.lt.s $f2, $f14 +/* 060EF4 7F02C3C4 C4201EA4 */ lwc1 $f0, %lo(D_80051EA4)($at) +/* 060EF8 7F02C3C8 46001080 */ add.s $f2, $f2, $f0 +/* 060EFC 7F02C3CC 460E103C */ c.lt.s $f2, $f14 +.L7F02C3D0: +/* 060F00 7F02C3D0 3C018005 */ lui $at, %hi(D_80051EA8) +/* 060F04 7F02C3D4 C4201EA8 */ lwc1 $f0, %lo(D_80051EA8)($at) +/* 060F08 7F02C3D8 45030008 */ bc1tl .L7F02C3FC +/* 060F0C 7F02C3DC 46026300 */ add.s $f12, $f12, $f2 +/* 060F10 7F02C3E0 460E0201 */ sub.s $f8, $f0, $f14 +/* 060F14 7F02C3E4 3C018005 */ lui $at, %hi(D_80051EAC) +/* 060F18 7F02C3E8 4602403C */ c.lt.s $f8, $f2 +/* 060F1C 7F02C3EC 00000000 */ nop +/* 060F20 7F02C3F0 4500000D */ bc1f .L7F02C428 +/* 060F24 7F02C3F4 00000000 */ nop +/* 060F28 7F02C3F8 46026300 */ add.s $f12, $f12, $f2 +.L7F02C3FC: +/* 060F2C 7F02C3FC 460C003E */ c.le.s $f0, $f12 +/* 060F30 7F02C400 00000000 */ nop +/* 060F34 7F02C404 45020003 */ bc1fl .L7F02C414 +/* 060F38 7F02C408 44056000 */ mfc1 $a1, $f12 +/* 060F3C 7F02C40C 46006301 */ sub.s $f12, $f12, $f0 +/* 060F40 7F02C410 44056000 */ mfc1 $a1, $f12 +.L7F02C414: +/* 060F44 7F02C414 0FC1B34F */ jal setsubroty +/* 060F48 7F02C418 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F4C 7F02C41C 24180003 */ li $t8, 3 +/* 060F50 7F02C420 1000001A */ b .L7F02C48C +/* 060F54 7F02C424 AFB80034 */ sw $t8, 0x34($sp) +.L7F02C428: +/* 060F58 7F02C428 C42A1EAC */ lwc1 $f10, %lo(D_80051EAC)($at) +/* 060F5C 7F02C42C 460A103C */ c.lt.s $f2, $f10 +/* 060F60 7F02C430 00000000 */ nop +/* 060F64 7F02C434 4502000D */ bc1fl .L7F02C46C +/* 060F68 7F02C438 460E6301 */ sub.s $f12, $f12, $f14 +/* 060F6C 7F02C43C 460E6300 */ add.s $f12, $f12, $f14 +/* 060F70 7F02C440 460C003E */ c.le.s $f0, $f12 +/* 060F74 7F02C444 00000000 */ nop +/* 060F78 7F02C448 45020003 */ bc1fl .L7F02C458 +/* 060F7C 7F02C44C 44056000 */ mfc1 $a1, $f12 +/* 060F80 7F02C450 46006301 */ sub.s $f12, $f12, $f0 +/* 060F84 7F02C454 44056000 */ mfc1 $a1, $f12 +.L7F02C458: +/* 060F88 7F02C458 0FC1B34F */ jal setsubroty +/* 060F8C 7F02C45C 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F90 7F02C460 1000000B */ b .L7F02C490 +/* 060F94 7F02C464 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 060F98 7F02C468 460E6301 */ sub.s $f12, $f12, $f14 +.L7F02C46C: +/* 060F9C 7F02C46C 4610603C */ c.lt.s $f12, $f16 +/* 060FA0 7F02C470 00000000 */ nop +/* 060FA4 7F02C474 45020003 */ bc1fl .L7F02C484 +/* 060FA8 7F02C478 44056000 */ mfc1 $a1, $f12 +/* 060FAC 7F02C47C 46006300 */ add.s $f12, $f12, $f0 +/* 060FB0 7F02C480 44056000 */ mfc1 $a1, $f12 +.L7F02C484: +/* 060FB4 7F02C484 0FC1B34F */ jal setsubroty +/* 060FB8 7F02C488 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02C48C: +/* 060FBC 7F02C48C C7B20028 */ lwc1 $f18, 0x28($sp) +.L7F02C490: +/* 060FC0 7F02C490 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 060FC4 7F02C494 24190002 */ li $t9, 2 +/* 060FC8 7F02C498 4612203E */ c.le.s $f4, $f18 +/* 060FCC 7F02C49C 00000000 */ nop +/* 060FD0 7F02C4A0 45020003 */ bc1fl .L7F02C4B0 +/* 060FD4 7F02C4A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 060FD8 7F02C4A8 AFB90034 */ sw $t9, 0x34($sp) +.L7F02C4AC: +/* 060FDC 7F02C4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02C4B0: +/* 060FE0 7F02C4B0 8FA20034 */ lw $v0, 0x34($sp) +/* 060FE4 7F02C4B4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 060FE8 7F02C4B8 03E00008 */ jr $ra +/* 060FEC 7F02C4BC 00000000 */ nop +) +#endif +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F02C4C0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051EB0 +.word 0x481c4000 /*160000.0*/ +glabel D_80051EB4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EB8 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EBC +.word 0x3dcccccd /*0.1*/ +glabel D_80051EC0 +.word 0x3e19999a /*0.15000001*/ +glabel D_80051EC4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EC8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051ECC +.word 0x3ccccccd /*0.025*/ +glabel D_80051ED0 +.word 0x49742400 /*1000000.0*/ +glabel D_80051ED4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051ED8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EDC +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EE0 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EE4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EE8 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EEC +.word 0x3dcccccd /*0.1*/ +glabel D_80051EF0 +.word 0x3e19999a /*0.15000001*/ +glabel D_80051EF4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EF8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EFC +.word 0x40490fdb /*3.1415927*/ +glabel D_80051F00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F04 +.word 0x49742400 /*1000000.0*/ +glabel D_80051F08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F14 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F18 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F24 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F28 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C4C0 +/* 060FF0 7F02C4C0 27BDFE98 */ addiu $sp, $sp, -0x168 +/* 060FF4 7F02C4C4 44808000 */ mtc1 $zero, $f16 +/* 060FF8 7F02C4C8 240E0001 */ li $t6, 1 +/* 060FFC 7F02C4CC AFBF001C */ sw $ra, 0x1c($sp) +/* 061000 7F02C4D0 AFA5016C */ sw $a1, 0x16c($sp) +/* 061004 7F02C4D4 AFA60170 */ sw $a2, 0x170($sp) +/* 061008 7F02C4D8 AFA70174 */ sw $a3, 0x174($sp) +/* 06100C 7F02C4DC AFAE0154 */ sw $t6, 0x154($sp) +/* 061010 7F02C4E0 E7B00164 */ swc1 $f16, 0x164($sp) +/* 061014 7F02C4E4 80820007 */ lb $v0, 7($a0) +/* 061018 7F02C4E8 24010008 */ li $at, 8 +/* 06101C 7F02C4EC 24080001 */ li $t0, 1 +/* 061020 7F02C4F0 14410004 */ bne $v0, $at, .L7F02C504 +/* 061024 7F02C4F4 00001825 */ move $v1, $zero +/* 061028 7F02C4F8 8C88004C */ lw $t0, 0x4c($a0) +/* 06102C 7F02C4FC 10000006 */ b .L7F02C518 +/* 061030 7F02C500 8C830050 */ lw $v1, 0x50($a0) +.L7F02C504: +/* 061034 7F02C504 24010001 */ li $at, 1 +/* 061038 7F02C508 54410004 */ bnel $v0, $at, .L7F02C51C +/* 06103C 7F02C50C 310F0002 */ andi $t7, $t0, 2 +/* 061040 7F02C510 8C880030 */ lw $t0, 0x30($a0) +/* 061044 7F02C514 8C830034 */ lw $v1, 0x34($a0) +.L7F02C518: +/* 061048 7F02C518 310F0002 */ andi $t7, $t0, 2 +.L7F02C51C: +/* 06104C 7F02C51C 15E002B8 */ bnez $t7, .L7F02D000 +/* 061050 7F02C520 AFA40168 */ sw $a0, 0x168($sp) +/* 061054 7F02C524 AFA30158 */ sw $v1, 0x158($sp) +/* 061058 7F02C528 AFA40168 */ sw $a0, 0x168($sp) +/* 06105C 7F02C52C AFA8015C */ sw $t0, 0x15c($sp) +/* 061060 7F02C530 0FC225E6 */ jal get_curplayer_positiondata +/* 061064 7F02C534 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061068 7F02C538 8FA60168 */ lw $a2, 0x168($sp) +/* 06106C 7F02C53C 24590008 */ addiu $t9, $v0, 8 +/* 061070 7F02C540 8FAA015C */ lw $t2, 0x15c($sp) +/* 061074 7F02C544 8CD80018 */ lw $t8, 0x18($a2) +/* 061078 7F02C548 AFB90134 */ sw $t9, 0x134($sp) +/* 06107C 7F02C54C 314B0001 */ andi $t3, $t2, 1 +/* 061080 7F02C550 AFB8013C */ sw $t8, 0x13c($sp) +/* 061084 7F02C554 C4440008 */ lwc1 $f4, 8($v0) +/* 061088 7F02C558 C7060008 */ lwc1 $f6, 8($t8) +/* 06108C 7F02C55C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061090 7F02C560 240E0001 */ li $t6, 1 +/* 061094 7F02C564 46062201 */ sub.s $f8, $f4, $f6 +/* 061098 7F02C568 314C0040 */ andi $t4, $t2, 0x40 +/* 06109C 7F02C56C E7A80150 */ swc1 $f8, 0x150($sp) +/* 0610A0 7F02C570 C44A000C */ lwc1 $f10, 0xc($v0) +/* 0610A4 7F02C574 C712000C */ lwc1 $f18, 0xc($t8) +/* 0610A8 7F02C578 46125101 */ sub.s $f4, $f10, $f18 +/* 0610AC 7F02C57C C7B20150 */ lwc1 $f18, 0x150($sp) +/* 0610B0 7F02C580 E7A4014C */ swc1 $f4, 0x14c($sp) +/* 0610B4 7F02C584 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0610B8 7F02C588 C7080010 */ lwc1 $f8, 0x10($t8) +/* 0610BC 7F02C58C 46129102 */ mul.s $f4, $f18, $f18 +/* 0610C0 7F02C590 AFAB0028 */ sw $t3, 0x28($sp) +/* 0610C4 7F02C594 46083281 */ sub.s $f10, $f6, $f8 +/* 0610C8 7F02C598 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 0610CC 7F02C59C 46063202 */ mul.s $f8, $f6, $f6 +/* 0610D0 7F02C5A0 E7AA0148 */ swc1 $f10, 0x148($sp) +/* 0610D4 7F02C5A4 C7B20148 */ lwc1 $f18, 0x148($sp) +/* 0610D8 7F02C5A8 46129182 */ mul.s $f6, $f18, $f18 +/* 0610DC 7F02C5AC 46082280 */ add.s $f10, $f4, $f8 +/* 0610E0 7F02C5B0 46065080 */ add.s $f2, $f10, $f6 +/* 0610E4 7F02C5B4 1160000E */ beqz $t3, .L7F02C5F0 +/* 0610E8 7F02C5B8 E7A20144 */ swc1 $f2, 0x144($sp) +/* 0610EC 7F02C5BC 11800004 */ beqz $t4, .L7F02C5D0 +/* 0610F0 7F02C5C0 00C02025 */ move $a0, $a2 +/* 0610F4 7F02C5C4 240D0001 */ li $t5, 1 +/* 0610F8 7F02C5C8 1000000A */ b .L7F02C5F4 +/* 0610FC 7F02C5CC AFAD0138 */ sw $t5, 0x138($sp) +.L7F02C5D0: +/* 061100 7F02C5D0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061104 7F02C5D4 0FC0A52F */ jal sub_GAME_7F0294BC +/* 061108 7F02C5D8 E7B00160 */ swc1 $f16, 0x160($sp) +/* 06110C 7F02C5DC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 061110 7F02C5E0 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061114 7F02C5E4 AFA20138 */ sw $v0, 0x138($sp) +/* 061118 7F02C5E8 10000002 */ b .L7F02C5F4 +/* 06111C 7F02C5EC 8FA60168 */ lw $a2, 0x168($sp) +.L7F02C5F0: +/* 061120 7F02C5F0 AFAE0138 */ sw $t6, 0x138($sp) +.L7F02C5F4: +/* 061124 7F02C5F4 8FAF0028 */ lw $t7, 0x28($sp) +/* 061128 7F02C5F8 3C048008 */ lui $a0, %hi(pPlayer) +/* 06112C 7F02C5FC 27A50120 */ addiu $a1, $sp, 0x120 +/* 061130 7F02C600 51E00137 */ beql $t7, $zero, .L7F02CAE0 +/* 061134 7F02C604 8CC4001C */ lw $a0, 0x1c($a2) +/* 061138 7F02C608 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 06113C 7F02C60C E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061140 7F02C610 0FC225E0 */ jal sub_GAME_7F089780 +/* 061144 7F02C614 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061148 7F02C618 8FB80168 */ lw $t8, 0x168($sp) +/* 06114C 7F02C61C E7A00130 */ swc1 $f0, 0x130($sp) +/* 061150 7F02C620 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 061154 7F02C624 8F190014 */ lw $t9, 0x14($t8) +/* 061158 7F02C628 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06115C 7F02C62C 3C018005 */ lui $at, %hi(D_80051EB0) +/* 061160 7F02C630 33290020 */ andi $t1, $t9, 0x20 +/* 061164 7F02C634 11200085 */ beqz $t1, .L7F02C84C +/* 061168 7F02C638 00000000 */ nop +/* 06116C 7F02C63C 3C018005 */ lui $at, %hi(D_80051EB0) +/* 061170 7F02C640 C4241EB0 */ lwc1 $f4, %lo(D_80051EB0)($at) +/* 061174 7F02C644 8FAA0134 */ lw $t2, 0x134($sp) +/* 061178 7F02C648 4604103C */ c.lt.s $f2, $f4 +/* 06117C 7F02C64C 00000000 */ nop +/* 061180 7F02C650 45000063 */ bc1f .L7F02C7E0 +/* 061184 7F02C654 00000000 */ nop +/* 061188 7F02C658 46000200 */ add.s $f8, $f0, $f0 +/* 06118C 7F02C65C C54C0004 */ lwc1 $f12, 4($t2) +/* 061190 7F02C660 8FAB013C */ lw $t3, 0x13c($sp) +/* 061194 7F02C664 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061198 7F02C668 46086481 */ sub.s $f18, $f12, $f8 +/* 06119C 7F02C66C C562000C */ lwc1 $f2, 0xc($t3) +/* 0611A0 7F02C670 4612103C */ c.lt.s $f2, $f18 +/* 0611A4 7F02C674 00000000 */ nop +/* 0611A8 7F02C678 4502001D */ bc1fl .L7F02C6F0 +/* 0611AC 7F02C67C 44812000 */ mtc1 $at, $f4 +/* 0611B0 7F02C680 0C002914 */ jal get_random_value +/* 0611B4 7F02C684 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0611B8 7F02C688 44825000 */ mtc1 $v0, $f10 +/* 0611BC 7F02C68C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0611C0 7F02C690 04410005 */ bgez $v0, .L7F02C6A8 +/* 0611C4 7F02C694 468051A0 */ cvt.s.w $f6, $f10 +/* 0611C8 7F02C698 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0611CC 7F02C69C 44812000 */ mtc1 $at, $f4 +/* 0611D0 7F02C6A0 00000000 */ nop +/* 0611D4 7F02C6A4 46043180 */ add.s $f6, $f6, $f4 +.L7F02C6A8: +/* 0611D8 7F02C6A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0611DC 7F02C6AC 44814000 */ mtc1 $at, $f8 +/* 0611E0 7F02C6B0 3C018005 */ lui $at, %hi(D_80051EB4) +/* 0611E4 7F02C6B4 C42A1EB4 */ lwc1 $f10, %lo(D_80051EB4)($at) +/* 0611E8 7F02C6B8 46083482 */ mul.s $f18, $f6, $f8 +/* 0611EC 7F02C6BC C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0611F0 7F02C6C0 3C018005 */ lui $at, %hi(D_80051EB8) +/* 0611F4 7F02C6C4 46125102 */ mul.s $f4, $f10, $f18 +/* 0611F8 7F02C6C8 C42A1EB8 */ lwc1 $f10, %lo(D_80051EB8)($at) +/* 0611FC 7F02C6CC 46062202 */ mul.s $f8, $f4, $f6 +/* 061200 7F02C6D0 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061204 7F02C6D4 46085480 */ add.s $f18, $f10, $f8 +/* 061208 7F02C6D8 C7AA014C */ lwc1 $f10, 0x14c($sp) +/* 06120C 7F02C6DC 46122182 */ mul.s $f6, $f4, $f18 +/* 061210 7F02C6E0 46065201 */ sub.s $f8, $f10, $f6 +/* 061214 7F02C6E4 10000113 */ b .L7F02CB34 +/* 061218 7F02C6E8 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06121C 7F02C6EC 44812000 */ mtc1 $at, $f4 +.L7F02C6F0: +/* 061220 7F02C6F0 00000000 */ nop +/* 061224 7F02C6F4 46040482 */ mul.s $f18, $f0, $f4 +/* 061228 7F02C6F8 46126281 */ sub.s $f10, $f12, $f18 +/* 06122C 7F02C6FC 4602503C */ c.lt.s $f10, $f2 +/* 061230 7F02C700 00000000 */ nop +/* 061234 7F02C704 4500001C */ bc1f .L7F02C778 +/* 061238 7F02C708 00000000 */ nop +/* 06123C 7F02C70C 0C002914 */ jal get_random_value +/* 061240 7F02C710 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061244 7F02C714 44823000 */ mtc1 $v0, $f6 +/* 061248 7F02C718 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06124C 7F02C71C 04410005 */ bgez $v0, .L7F02C734 +/* 061250 7F02C720 46803220 */ cvt.s.w $f8, $f6 +/* 061254 7F02C724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 061258 7F02C728 44812000 */ mtc1 $at, $f4 +/* 06125C 7F02C72C 00000000 */ nop +/* 061260 7F02C730 46044200 */ add.s $f8, $f8, $f4 +.L7F02C734: +/* 061264 7F02C734 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 061268 7F02C738 44819000 */ mtc1 $at, $f18 +/* 06126C 7F02C73C 3C018005 */ lui $at, %hi(D_80051EBC) +/* 061270 7F02C740 C4261EBC */ lwc1 $f6, %lo(D_80051EBC)($at) +/* 061274 7F02C744 46124282 */ mul.s $f10, $f8, $f18 +/* 061278 7F02C748 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 06127C 7F02C74C 3C018005 */ lui $at, %hi(D_80051EC0) +/* 061280 7F02C750 460A3102 */ mul.s $f4, $f6, $f10 +/* 061284 7F02C754 C4261EC0 */ lwc1 $f6, %lo(D_80051EC0)($at) +/* 061288 7F02C758 46082482 */ mul.s $f18, $f4, $f8 +/* 06128C 7F02C75C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061290 7F02C760 46123280 */ add.s $f10, $f6, $f18 +/* 061294 7F02C764 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 061298 7F02C768 460A2202 */ mul.s $f8, $f4, $f10 +/* 06129C 7F02C76C 46083481 */ sub.s $f18, $f6, $f8 +/* 0612A0 7F02C770 100000F0 */ b .L7F02CB34 +/* 0612A4 7F02C774 E7B2014C */ swc1 $f18, 0x14c($sp) +.L7F02C778: +/* 0612A8 7F02C778 0C002914 */ jal get_random_value +/* 0612AC 7F02C77C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0612B0 7F02C780 44822000 */ mtc1 $v0, $f4 +/* 0612B4 7F02C784 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0612B8 7F02C788 04410005 */ bgez $v0, .L7F02C7A0 +/* 0612BC 7F02C78C 468022A0 */ cvt.s.w $f10, $f4 +/* 0612C0 7F02C790 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0612C4 7F02C794 44813000 */ mtc1 $at, $f6 +/* 0612C8 7F02C798 00000000 */ nop +/* 0612CC 7F02C79C 46065280 */ add.s $f10, $f10, $f6 +.L7F02C7A0: +/* 0612D0 7F02C7A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0612D4 7F02C7A4 44814000 */ mtc1 $at, $f8 +/* 0612D8 7F02C7A8 3C018005 */ lui $at, %hi(D_80051EC4) +/* 0612DC 7F02C7AC C4241EC4 */ lwc1 $f4, %lo(D_80051EC4)($at) +/* 0612E0 7F02C7B0 46085482 */ mul.s $f18, $f10, $f8 +/* 0612E4 7F02C7B4 C7AA0178 */ lwc1 $f10, 0x178($sp) +/* 0612E8 7F02C7B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0612EC 7F02C7BC 46049182 */ mul.s $f6, $f18, $f4 +/* 0612F0 7F02C7C0 44819000 */ mtc1 $at, $f18 +/* 0612F4 7F02C7C4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0612F8 7F02C7C8 460A3202 */ mul.s $f8, $f6, $f10 +/* 0612FC 7F02C7CC 44813000 */ mtc1 $at, $f6 +/* 061300 7F02C7D0 46124100 */ add.s $f4, $f8, $f18 +/* 061304 7F02C7D4 46062282 */ mul.s $f10, $f4, $f6 +/* 061308 7F02C7D8 100000D6 */ b .L7F02CB34 +/* 06130C 7F02C7DC E7AA014C */ swc1 $f10, 0x14c($sp) +.L7F02C7E0: +/* 061310 7F02C7E0 0C002914 */ jal get_random_value +/* 061314 7F02C7E4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061318 7F02C7E8 44824000 */ mtc1 $v0, $f8 +/* 06131C 7F02C7EC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061320 7F02C7F0 04410005 */ bgez $v0, .L7F02C808 +/* 061324 7F02C7F4 468044A0 */ cvt.s.w $f18, $f8 +/* 061328 7F02C7F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06132C 7F02C7FC 44812000 */ mtc1 $at, $f4 +/* 061330 7F02C800 00000000 */ nop +/* 061334 7F02C804 46049480 */ add.s $f18, $f18, $f4 +.L7F02C808: +/* 061338 7F02C808 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 06133C 7F02C80C 44813000 */ mtc1 $at, $f6 +/* 061340 7F02C810 3C018005 */ lui $at, %hi(D_80051EC8) +/* 061344 7F02C814 C4281EC8 */ lwc1 $f8, %lo(D_80051EC8)($at) +/* 061348 7F02C818 46069282 */ mul.s $f10, $f18, $f6 +/* 06134C 7F02C81C C7B20178 */ lwc1 $f18, 0x178($sp) +/* 061350 7F02C820 3C018005 */ lui $at, %hi(D_80051ED0) +/* 061354 7F02C824 460A4102 */ mul.s $f4, $f8, $f10 +/* 061358 7F02C828 C4281ECC */ lwc1 $f8, %lo(D_80051ECC)($at) +/* 06135C 7F02C82C 46122182 */ mul.s $f6, $f4, $f18 +/* 061360 7F02C830 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061364 7F02C834 46064281 */ sub.s $f10, $f8, $f6 +/* 061368 7F02C838 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06136C 7F02C83C 460A2482 */ mul.s $f18, $f4, $f10 +/* 061370 7F02C840 46124180 */ add.s $f6, $f8, $f18 +/* 061374 7F02C844 100000BB */ b .L7F02CB34 +/* 061378 7F02C848 E7A6014C */ swc1 $f6, 0x14c($sp) +.L7F02C84C: +/* 06137C 7F02C84C C4241ED0 */ lwc1 $f4, %lo(D_80051ED0)($at) +/* 061380 7F02C850 8FAE0134 */ lw $t6, 0x134($sp) +/* 061384 7F02C854 4602203C */ c.lt.s $f4, $f2 +/* 061388 7F02C858 00000000 */ nop +/* 06138C 7F02C85C 45020040 */ bc1fl .L7F02C960 +/* 061390 7F02C860 C5CC0004 */ lwc1 $f12, 4($t6) +/* 061394 7F02C864 0C002914 */ jal get_random_value +/* 061398 7F02C868 E7B00160 */ swc1 $f16, 0x160($sp) +/* 06139C 7F02C86C 24010003 */ li $at, 3 +/* 0613A0 7F02C870 0041001B */ divu $zero, $v0, $at +/* 0613A4 7F02C874 00006010 */ mfhi $t4 +/* 0613A8 7F02C878 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0613AC 7F02C87C 1580001C */ bnez $t4, .L7F02C8F0 +/* 0613B0 7F02C880 00000000 */ nop +/* 0613B4 7F02C884 0C002914 */ jal get_random_value +/* 0613B8 7F02C888 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0613BC 7F02C88C 44825000 */ mtc1 $v0, $f10 +/* 0613C0 7F02C890 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0613C4 7F02C894 04410005 */ bgez $v0, .L7F02C8AC +/* 0613C8 7F02C898 46805220 */ cvt.s.w $f8, $f10 +/* 0613CC 7F02C89C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0613D0 7F02C8A0 44819000 */ mtc1 $at, $f18 +/* 0613D4 7F02C8A4 00000000 */ nop +/* 0613D8 7F02C8A8 46124200 */ add.s $f8, $f8, $f18 +.L7F02C8AC: +/* 0613DC 7F02C8AC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0613E0 7F02C8B0 44813000 */ mtc1 $at, $f6 +/* 0613E4 7F02C8B4 3C018005 */ lui $at, %hi(D_80051ED4) +/* 0613E8 7F02C8B8 C42A1ED4 */ lwc1 $f10, %lo(D_80051ED4)($at) +/* 0613EC 7F02C8BC 46064102 */ mul.s $f4, $f8, $f6 +/* 0613F0 7F02C8C0 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0613F4 7F02C8C4 3C018005 */ lui $at, %hi(D_80051ED8) +/* 0613F8 7F02C8C8 46045482 */ mul.s $f18, $f10, $f4 +/* 0613FC 7F02C8CC C42A1ED8 */ lwc1 $f10, %lo(D_80051ED8)($at) +/* 061400 7F02C8D0 46089182 */ mul.s $f6, $f18, $f8 +/* 061404 7F02C8D4 C7B20130 */ lwc1 $f18, 0x130($sp) +/* 061408 7F02C8D8 46065100 */ add.s $f4, $f10, $f6 +/* 06140C 7F02C8DC C7AA014C */ lwc1 $f10, 0x14c($sp) +/* 061410 7F02C8E0 46049202 */ mul.s $f8, $f18, $f4 +/* 061414 7F02C8E4 46085180 */ add.s $f6, $f10, $f8 +/* 061418 7F02C8E8 10000092 */ b .L7F02CB34 +/* 06141C 7F02C8EC E7A6014C */ swc1 $f6, 0x14c($sp) +.L7F02C8F0: +/* 061420 7F02C8F0 0C002914 */ jal get_random_value +/* 061424 7F02C8F4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061428 7F02C8F8 44829000 */ mtc1 $v0, $f18 +/* 06142C 7F02C8FC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061430 7F02C900 04410005 */ bgez $v0, .L7F02C918 +/* 061434 7F02C904 46809120 */ cvt.s.w $f4, $f18 +/* 061438 7F02C908 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06143C 7F02C90C 44815000 */ mtc1 $at, $f10 +/* 061440 7F02C910 00000000 */ nop +/* 061444 7F02C914 460A2100 */ add.s $f4, $f4, $f10 +.L7F02C918: +/* 061448 7F02C918 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 06144C 7F02C91C 44814000 */ mtc1 $at, $f8 +/* 061450 7F02C920 3C018005 */ lui $at, %hi(D_80051EDC) +/* 061454 7F02C924 C4321EDC */ lwc1 $f18, %lo(D_80051EDC)($at) +/* 061458 7F02C928 46082182 */ mul.s $f6, $f4, $f8 +/* 06145C 7F02C92C C7A40178 */ lwc1 $f4, 0x178($sp) +/* 061460 7F02C930 3C018005 */ lui $at, %hi(D_80051EE0) +/* 061464 7F02C934 46069282 */ mul.s $f10, $f18, $f6 +/* 061468 7F02C938 C4321EE0 */ lwc1 $f18, %lo(D_80051EE0)($at) +/* 06146C 7F02C93C 46045202 */ mul.s $f8, $f10, $f4 +/* 061470 7F02C940 C7AA0130 */ lwc1 $f10, 0x130($sp) +/* 061474 7F02C944 46089180 */ add.s $f6, $f18, $f8 +/* 061478 7F02C948 C7B2014C */ lwc1 $f18, 0x14c($sp) +/* 06147C 7F02C94C 46065102 */ mul.s $f4, $f10, $f6 +/* 061480 7F02C950 46049201 */ sub.s $f8, $f18, $f4 +/* 061484 7F02C954 10000077 */ b .L7F02CB34 +/* 061488 7F02C958 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06148C 7F02C95C C5CC0004 */ lwc1 $f12, 4($t6) +.L7F02C960: +/* 061490 7F02C960 8FAD013C */ lw $t5, 0x13c($sp) +/* 061494 7F02C964 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061498 7F02C968 46006281 */ sub.s $f10, $f12, $f0 +/* 06149C 7F02C96C C5A2000C */ lwc1 $f2, 0xc($t5) +/* 0614A0 7F02C970 460A103C */ c.lt.s $f2, $f10 +/* 0614A4 7F02C974 00000000 */ nop +/* 0614A8 7F02C978 4502001D */ bc1fl .L7F02C9F0 +/* 0614AC 7F02C97C 44812000 */ mtc1 $at, $f4 +/* 0614B0 7F02C980 0C002914 */ jal get_random_value +/* 0614B4 7F02C984 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0614B8 7F02C988 44823000 */ mtc1 $v0, $f6 +/* 0614BC 7F02C98C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0614C0 7F02C990 04410005 */ bgez $v0, .L7F02C9A8 +/* 0614C4 7F02C994 468034A0 */ cvt.s.w $f18, $f6 +/* 0614C8 7F02C998 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0614CC 7F02C99C 44812000 */ mtc1 $at, $f4 +/* 0614D0 7F02C9A0 00000000 */ nop +/* 0614D4 7F02C9A4 46049480 */ add.s $f18, $f18, $f4 +.L7F02C9A8: +/* 0614D8 7F02C9A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0614DC 7F02C9AC 44814000 */ mtc1 $at, $f8 +/* 0614E0 7F02C9B0 3C018005 */ lui $at, %hi(D_80051EE4) +/* 0614E4 7F02C9B4 C4261EE4 */ lwc1 $f6, %lo(D_80051EE4)($at) +/* 0614E8 7F02C9B8 46089282 */ mul.s $f10, $f18, $f8 +/* 0614EC 7F02C9BC C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0614F0 7F02C9C0 3C018005 */ lui $at, %hi(D_80051EE8) +/* 0614F4 7F02C9C4 460A3102 */ mul.s $f4, $f6, $f10 +/* 0614F8 7F02C9C8 C4261EE8 */ lwc1 $f6, %lo(D_80051EE8)($at) +/* 0614FC 7F02C9CC 46122202 */ mul.s $f8, $f4, $f18 +/* 061500 7F02C9D0 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061504 7F02C9D4 46083280 */ add.s $f10, $f6, $f8 +/* 061508 7F02C9D8 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 06150C 7F02C9DC 460A2482 */ mul.s $f18, $f4, $f10 +/* 061510 7F02C9E0 46123201 */ sub.s $f8, $f6, $f18 +/* 061514 7F02C9E4 10000053 */ b .L7F02CB34 +/* 061518 7F02C9E8 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06151C 7F02C9EC 44812000 */ mtc1 $at, $f4 +.L7F02C9F0: +/* 061520 7F02C9F0 00000000 */ nop +/* 061524 7F02C9F4 46040282 */ mul.s $f10, $f0, $f4 +/* 061528 7F02C9F8 460A6181 */ sub.s $f6, $f12, $f10 +/* 06152C 7F02C9FC 4602303C */ c.lt.s $f6, $f2 +/* 061530 7F02CA00 00000000 */ nop +/* 061534 7F02CA04 4500001C */ bc1f .L7F02CA78 +/* 061538 7F02CA08 00000000 */ nop +/* 06153C 7F02CA0C 0C002914 */ jal get_random_value +/* 061540 7F02CA10 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061544 7F02CA14 44829000 */ mtc1 $v0, $f18 +/* 061548 7F02CA18 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06154C 7F02CA1C 04410005 */ bgez $v0, .L7F02CA34 +/* 061550 7F02CA20 46809220 */ cvt.s.w $f8, $f18 +/* 061554 7F02CA24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 061558 7F02CA28 44812000 */ mtc1 $at, $f4 +/* 06155C 7F02CA2C 00000000 */ nop +/* 061560 7F02CA30 46044200 */ add.s $f8, $f8, $f4 +.L7F02CA34: +/* 061564 7F02CA34 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 061568 7F02CA38 44815000 */ mtc1 $at, $f10 +/* 06156C 7F02CA3C 3C018005 */ lui $at, %hi(D_80051EEC) +/* 061570 7F02CA40 C4321EEC */ lwc1 $f18, %lo(D_80051EEC)($at) +/* 061574 7F02CA44 460A4182 */ mul.s $f6, $f8, $f10 +/* 061578 7F02CA48 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 06157C 7F02CA4C 3C018005 */ lui $at, %hi(D_80051EF0) +/* 061580 7F02CA50 46069102 */ mul.s $f4, $f18, $f6 +/* 061584 7F02CA54 C4321EF0 */ lwc1 $f18, %lo(D_80051EF0)($at) +/* 061588 7F02CA58 46082282 */ mul.s $f10, $f4, $f8 +/* 06158C 7F02CA5C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061590 7F02CA60 460A9180 */ add.s $f6, $f18, $f10 +/* 061594 7F02CA64 C7B2014C */ lwc1 $f18, 0x14c($sp) +/* 061598 7F02CA68 46062202 */ mul.s $f8, $f4, $f6 +/* 06159C 7F02CA6C 46089281 */ sub.s $f10, $f18, $f8 +/* 0615A0 7F02CA70 10000030 */ b .L7F02CB34 +/* 0615A4 7F02CA74 E7AA014C */ swc1 $f10, 0x14c($sp) +.L7F02CA78: +/* 0615A8 7F02CA78 0C002914 */ jal get_random_value +/* 0615AC 7F02CA7C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0615B0 7F02CA80 44822000 */ mtc1 $v0, $f4 +/* 0615B4 7F02CA84 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0615B8 7F02CA88 04410005 */ bgez $v0, .L7F02CAA0 +/* 0615BC 7F02CA8C 468021A0 */ cvt.s.w $f6, $f4 +/* 0615C0 7F02CA90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0615C4 7F02CA94 44819000 */ mtc1 $at, $f18 +/* 0615C8 7F02CA98 00000000 */ nop +/* 0615CC 7F02CA9C 46123180 */ add.s $f6, $f6, $f18 +.L7F02CAA0: +/* 0615D0 7F02CAA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0615D4 7F02CAA4 44814000 */ mtc1 $at, $f8 +/* 0615D8 7F02CAA8 3C018005 */ lui $at, %hi(D_80051EF4) +/* 0615DC 7F02CAAC C4241EF4 */ lwc1 $f4, %lo(D_80051EF4)($at) +/* 0615E0 7F02CAB0 46083282 */ mul.s $f10, $f6, $f8 +/* 0615E4 7F02CAB4 C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0615E8 7F02CAB8 3C018005 */ lui $at, %hi(D_80051EF8) +/* 0615EC 7F02CABC 46045482 */ mul.s $f18, $f10, $f4 +/* 0615F0 7F02CAC0 C42A1EF8 */ lwc1 $f10, %lo(D_80051EF8)($at) +/* 0615F4 7F02CAC4 46069202 */ mul.s $f8, $f18, $f6 +/* 0615F8 7F02CAC8 C7B20130 */ lwc1 $f18, 0x130($sp) +/* 0615FC 7F02CACC 460A4101 */ sub.s $f4, $f8, $f10 +/* 061600 7F02CAD0 46122182 */ mul.s $f6, $f4, $f18 +/* 061604 7F02CAD4 10000017 */ b .L7F02CB34 +/* 061608 7F02CAD8 E7A6014C */ swc1 $f6, 0x14c($sp) +/* 06160C 7F02CADC 8CC4001C */ lw $a0, 0x1c($a2) +.L7F02CAE0: +/* 061610 7F02CAE0 0FC1B2E6 */ jal getsuboffset +/* 061614 7F02CAE4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061618 7F02CAE8 8FA40168 */ lw $a0, 0x168($sp) +/* 06161C 7F02CAEC 8FA5015C */ lw $a1, 0x15c($sp) +/* 061620 7F02CAF0 8FA60158 */ lw $a2, 0x158($sp) +/* 061624 7F02CAF4 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 061628 7F02CAF8 27A7012C */ addiu $a3, $sp, 0x12c +/* 06162C 7F02CAFC AFA20134 */ sw $v0, 0x134($sp) +/* 061630 7F02CB00 C4480000 */ lwc1 $f8, ($v0) +/* 061634 7F02CB04 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 061638 7F02CB08 C7A60124 */ lwc1 $f6, 0x124($sp) +/* 06163C 7F02CB0C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061640 7F02CB10 460A4101 */ sub.s $f4, $f8, $f10 +/* 061644 7F02CB14 E7A40150 */ swc1 $f4, 0x150($sp) +/* 061648 7F02CB18 C4520004 */ lwc1 $f18, 4($v0) +/* 06164C 7F02CB1C C7A40128 */ lwc1 $f4, 0x128($sp) +/* 061650 7F02CB20 46069201 */ sub.s $f8, $f18, $f6 +/* 061654 7F02CB24 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 061658 7F02CB28 C44A0008 */ lwc1 $f10, 8($v0) +/* 06165C 7F02CB2C 46045481 */ sub.s $f18, $f10, $f4 +/* 061660 7F02CB30 E7B20148 */ swc1 $f18, 0x148($sp) +.L7F02CB34: +/* 061664 7F02CB34 8FAF015C */ lw $t7, 0x15c($sp) +/* 061668 7F02CB38 C7A60150 */ lwc1 $f6, 0x150($sp) +/* 06166C 7F02CB3C C7AA0148 */ lwc1 $f10, 0x148($sp) +/* 061670 7F02CB40 31F80100 */ andi $t8, $t7, 0x100 +/* 061674 7F02CB44 57000015 */ bnezl $t8, .L7F02CB9C +/* 061678 7F02CB48 8FB90138 */ lw $t9, 0x138($sp) +/* 06167C 7F02CB4C 46063202 */ mul.s $f8, $f6, $f6 +/* 061680 7F02CB50 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061684 7F02CB54 460A5102 */ mul.s $f4, $f10, $f10 +/* 061688 7F02CB58 0C007DF8 */ jal sqrtf +/* 06168C 7F02CB5C 46044300 */ add.s $f12, $f8, $f4 +/* 061690 7F02CB60 C7AC014C */ lwc1 $f12, 0x14c($sp) +/* 061694 7F02CB64 0FC16A8C */ jal atan2f +/* 061698 7F02CB68 46000386 */ mov.s $f14, $f0 +/* 06169C 7F02CB6C 3C018005 */ lui $at, %hi(D_80051EFC) +/* 0616A0 7F02CB70 C4321EFC */ lwc1 $f18, %lo(D_80051EFC)($at) +/* 0616A4 7F02CB74 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0616A8 7F02CB78 E7A00164 */ swc1 $f0, 0x164($sp) +/* 0616AC 7F02CB7C 4600903E */ c.le.s $f18, $f0 +/* 0616B0 7F02CB80 3C018005 */ lui $at, %hi(D_80051F00) +/* 0616B4 7F02CB84 45020005 */ bc1fl .L7F02CB9C +/* 0616B8 7F02CB88 8FB90138 */ lw $t9, 0x138($sp) +/* 0616BC 7F02CB8C C4261F00 */ lwc1 $f6, %lo(D_80051F00)($at) +/* 0616C0 7F02CB90 46060281 */ sub.s $f10, $f0, $f6 +/* 0616C4 7F02CB94 E7AA0164 */ swc1 $f10, 0x164($sp) +/* 0616C8 7F02CB98 8FB90138 */ lw $t9, 0x138($sp) +.L7F02CB9C: +/* 0616CC 7F02CB9C 53200119 */ beql $t9, $zero, .L7F02D004 +/* 0616D0 7F02CBA0 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 0616D4 7F02CBA4 0FC0B064 */ jal sub_GAME_7F02C190 +/* 0616D8 7F02CBA8 8FA40168 */ lw $a0, 0x168($sp) +/* 0616DC 7F02CBAC 8FA90174 */ lw $t1, 0x174($sp) +/* 0616E0 7F02CBB0 E7A00118 */ swc1 $f0, 0x118($sp) +/* 0616E4 7F02CBB4 00002825 */ move $a1, $zero +/* 0616E8 7F02CBB8 11200005 */ beqz $t1, .L7F02CBD0 +/* 0616EC 7F02CBBC 8FA40168 */ lw $a0, 0x168($sp) +/* 0616F0 7F02CBC0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0616F4 7F02CBC4 8FA40168 */ lw $a0, 0x168($sp) +/* 0616F8 7F02CBC8 10000003 */ b .L7F02CBD8 +/* 0616FC 7F02CBCC 00000000 */ nop +.L7F02CBD0: +/* 061700 7F02CBD0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061704 7F02CBD4 24050001 */ li $a1, 1 +.L7F02CBD8: +/* 061708 7F02CBD8 50400075 */ beql $v0, $zero, .L7F02CDB0 +/* 06170C 7F02CBDC C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061710 7F02CBE0 904B0001 */ lbu $t3, 1($v0) +/* 061714 7F02CBE4 C7A80144 */ lwc1 $f8, 0x144($sp) +/* 061718 7F02CBE8 3C018005 */ lui $at, %hi(D_80051F04) +/* 06171C 7F02CBEC 316A0002 */ andi $t2, $t3, 2 +/* 061720 7F02CBF0 5140006F */ beql $t2, $zero, .L7F02CDB0 +/* 061724 7F02CBF4 C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061728 7F02CBF8 C4241F04 */ lwc1 $f4, %lo(D_80051F04)($at) +/* 06172C 7F02CBFC 4604403C */ c.lt.s $f8, $f4 +/* 061730 7F02CC00 00000000 */ nop +/* 061734 7F02CC04 4502006A */ bc1fl .L7F02CDB0 +/* 061738 7F02CC08 C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 06173C 7F02CC0C 8C430004 */ lw $v1, 4($v0) +/* 061740 7F02CC10 00002025 */ move $a0, $zero +/* 061744 7F02CC14 00003025 */ move $a2, $zero +/* 061748 7F02CC18 8C670014 */ lw $a3, 0x14($v1) +/* 06174C 7F02CC1C 8CEC0008 */ lw $t4, 8($a3) +/* 061750 7F02CC20 8D850008 */ lw $a1, 8($t4) +/* 061754 7F02CC24 8CAD0000 */ lw $t5, ($a1) +/* 061758 7F02CC28 11A00025 */ beqz $t5, .L7F02CCC0 +/* 06175C 7F02CC2C AFAD0024 */ sw $t5, 0x24($sp) +/* 061760 7F02CC30 00E02025 */ move $a0, $a3 +/* 061764 7F02CC34 01A02825 */ move $a1, $t5 +/* 061768 7F02CC38 0FC1B198 */ jal sub_GAME_7F06C660 +/* 06176C 7F02CC3C AFA70110 */ sw $a3, 0x110($sp) +/* 061770 7F02CC40 8FA70110 */ lw $a3, 0x110($sp) +/* 061774 7F02CC44 00402025 */ move $a0, $v0 +/* 061778 7F02CC48 27A500BC */ addiu $a1, $sp, 0xbc +/* 06177C 7F02CC4C 8CEF0008 */ lw $t7, 8($a3) +/* 061780 7F02CC50 8DF80008 */ lw $t8, 8($t7) +/* 061784 7F02CC54 8F190000 */ lw $t9, ($t8) +/* 061788 7F02CC58 8F290004 */ lw $t1, 4($t9) +/* 06178C 7F02CC5C 0FC1639E */ jal sub_GAME_7F058E78 +/* 061790 7F02CC60 AFA900B8 */ sw $t1, 0xb8($sp) +/* 061794 7F02CC64 0FC1E115 */ jal sub_GAME_7F078454 +/* 061798 7F02CC68 00000000 */ nop +/* 06179C 7F02CC6C 00402025 */ move $a0, $v0 +/* 0617A0 7F02CC70 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0617A4 7F02CC74 27A500BC */ addiu $a1, $sp, 0xbc +/* 0617A8 7F02CC78 8FA200B8 */ lw $v0, 0xb8($sp) +/* 0617AC 7F02CC7C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0617B0 7F02CC80 27A500AC */ addiu $a1, $sp, 0xac +/* 0617B4 7F02CC84 C4520000 */ lwc1 $f18, ($v0) +/* 0617B8 7F02CC88 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0617BC 7F02CC8C C4460004 */ lwc1 $f6, 4($v0) +/* 0617C0 7F02CC90 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 0617C4 7F02CC94 C44A0008 */ lwc1 $f10, 8($v0) +/* 0617C8 7F02CC98 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0617CC 7F02CC9C E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0617D0 7F02CCA0 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 0617D4 7F02CCA4 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0617D8 7F02CCA8 C7B200B4 */ lwc1 $f18, 0xb4($sp) +/* 0617DC 7F02CCAC 24040001 */ li $a0, 1 +/* 0617E0 7F02CCB0 E7A80104 */ swc1 $f8, 0x104($sp) +/* 0617E4 7F02CCB4 E7A40108 */ swc1 $f4, 0x108($sp) +/* 0617E8 7F02CCB8 10000017 */ b .L7F02CD18 +/* 0617EC 7F02CCBC E7B2010C */ swc1 $f18, 0x10c($sp) +.L7F02CCC0: +/* 0617F0 7F02CCC0 8CAB0004 */ lw $t3, 4($a1) +/* 0617F4 7F02CCC4 00003025 */ move $a2, $zero +/* 0617F8 7F02CCC8 11600013 */ beqz $t3, .L7F02CD18 +/* 0617FC 7F02CCCC AFAB0024 */ sw $t3, 0x24($sp) +/* 061800 7F02CCD0 00E02025 */ move $a0, $a3 +/* 061804 7F02CCD4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 061808 7F02CCD8 01602825 */ move $a1, $t3 +/* 06180C 7F02CCDC 00402025 */ move $a0, $v0 +/* 061810 7F02CCE0 0FC1639E */ jal sub_GAME_7F058E78 +/* 061814 7F02CCE4 27A50068 */ addiu $a1, $sp, 0x68 +/* 061818 7F02CCE8 0FC1E115 */ jal sub_GAME_7F078454 +/* 06181C 7F02CCEC 00000000 */ nop +/* 061820 7F02CCF0 00402025 */ move $a0, $v0 +/* 061824 7F02CCF4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 061828 7F02CCF8 27A50068 */ addiu $a1, $sp, 0x68 +/* 06182C 7F02CCFC C7A60098 */ lwc1 $f6, 0x98($sp) +/* 061830 7F02CD00 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 061834 7F02CD04 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 061838 7F02CD08 24040001 */ li $a0, 1 +/* 06183C 7F02CD0C E7A60104 */ swc1 $f6, 0x104($sp) +/* 061840 7F02CD10 E7AA0108 */ swc1 $f10, 0x108($sp) +/* 061844 7F02CD14 E7A8010C */ swc1 $f8, 0x10c($sp) +.L7F02CD18: +/* 061848 7F02CD18 50800025 */ beql $a0, $zero, .L7F02CDB0 +/* 06184C 7F02CD1C C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061850 7F02CD20 0FC15FAB */ jal sinf +/* 061854 7F02CD24 C7AC0118 */ lwc1 $f12, 0x118($sp) +/* 061858 7F02CD28 44802000 */ mtc1 $zero, $f4 +/* 06185C 7F02CD2C E7A00050 */ swc1 $f0, 0x50($sp) +/* 061860 7F02CD30 C7AC0118 */ lwc1 $f12, 0x118($sp) +/* 061864 7F02CD34 0FC15FA8 */ jal cosf +/* 061868 7F02CD38 E7A40054 */ swc1 $f4, 0x54($sp) +/* 06186C 7F02CD3C 8FAC013C */ lw $t4, 0x13c($sp) +/* 061870 7F02CD40 E7A00058 */ swc1 $f0, 0x58($sp) +/* 061874 7F02CD44 C7A60148 */ lwc1 $f6, 0x148($sp) +/* 061878 7F02CD48 C5920008 */ lwc1 $f18, 8($t4) +/* 06187C 7F02CD4C 27AD005C */ addiu $t5, $sp, 0x5c +/* 061880 7F02CD50 27A50044 */ addiu $a1, $sp, 0x44 +/* 061884 7F02CD54 46069281 */ sub.s $f10, $f18, $f6 +/* 061888 7F02CD58 C7B20150 */ lwc1 $f18, 0x150($sp) +/* 06188C 7F02CD5C 27A60104 */ addiu $a2, $sp, 0x104 +/* 061890 7F02CD60 27A70050 */ addiu $a3, $sp, 0x50 +/* 061894 7F02CD64 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 061898 7F02CD68 C588000C */ lwc1 $f8, 0xc($t4) +/* 06189C 7F02CD6C 25840008 */ addiu $a0, $t4, 8 +/* 0618A0 7F02CD70 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0618A4 7F02CD74 C5840010 */ lwc1 $f4, 0x10($t4) +/* 0618A8 7F02CD78 AFAD0010 */ sw $t5, 0x10($sp) +/* 0618AC 7F02CD7C 46122180 */ add.s $f6, $f4, $f18 +/* 0618B0 7F02CD80 0FC0984C */ jal sub_GAME_7F026130 +/* 0618B4 7F02CD84 E7A6004C */ swc1 $f6, 0x4c($sp) +/* 0618B8 7F02CD88 8FAE0134 */ lw $t6, 0x134($sp) +/* 0618BC 7F02CD8C C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0618C0 7F02CD90 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0618C4 7F02CD94 C5CA0000 */ lwc1 $f10, ($t6) +/* 0618C8 7F02CD98 46085101 */ sub.s $f4, $f10, $f8 +/* 0618CC 7F02CD9C E7A40150 */ swc1 $f4, 0x150($sp) +/* 0618D0 7F02CDA0 C5D20008 */ lwc1 $f18, 8($t6) +/* 0618D4 7F02CDA4 46069281 */ sub.s $f10, $f18, $f6 +/* 0618D8 7F02CDA8 E7AA0148 */ swc1 $f10, 0x148($sp) +/* 0618DC 7F02CDAC C7AC0150 */ lwc1 $f12, 0x150($sp) +.L7F02CDB0: +/* 0618E0 7F02CDB0 0FC16A8C */ jal atan2f +/* 0618E4 7F02CDB4 C7AE0148 */ lwc1 $f14, 0x148($sp) +/* 0618E8 7F02CDB8 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 0618EC 7F02CDBC 3C018005 */ lui $at, %hi(D_80051F08) +/* 0618F0 7F02CDC0 8FAF0168 */ lw $t7, 0x168($sp) +/* 0618F4 7F02CDC4 4608003C */ c.lt.s $f0, $f8 +/* 0618F8 7F02CDC8 46080081 */ sub.s $f2, $f0, $f8 +/* 0618FC 7F02CDCC 45000003 */ bc1f .L7F02CDDC +/* 061900 7F02CDD0 46001406 */ mov.s $f16, $f2 +/* 061904 7F02CDD4 C4241F08 */ lwc1 $f4, %lo(D_80051F08)($at) +/* 061908 7F02CDD8 46041400 */ add.s $f16, $f2, $f4 +.L7F02CDDC: +/* 06190C 7F02CDDC 8DE4001C */ lw $a0, 0x1c($t7) +/* 061910 7F02CDE0 8C980008 */ lw $t8, 8($a0) +/* 061914 7F02CDE4 8F050000 */ lw $a1, ($t8) +/* 061918 7F02CDE8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 06191C 7F02CDEC E7B00160 */ swc1 $f16, 0x160($sp) +/* 061920 7F02CDF0 44801000 */ mtc1 $zero, $f2 +/* 061924 7F02CDF4 C440005C */ lwc1 $f0, 0x5c($v0) +/* 061928 7F02CDF8 8FA9015C */ lw $t1, 0x15c($sp) +/* 06192C 7F02CDFC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061930 7F02CE00 4600103C */ c.lt.s $f2, $f0 +/* 061934 7F02CE04 8FB90028 */ lw $t9, 0x28($sp) +/* 061938 7F02CE08 312B0060 */ andi $t3, $t1, 0x60 +/* 06193C 7F02CE0C 45000012 */ bc1f .L7F02CE58 +/* 061940 7F02CE10 00000000 */ nop +/* 061944 7F02CE14 C4520058 */ lwc1 $f18, 0x58($v0) +/* 061948 7F02CE18 3C018005 */ lui $at, %hi(D_80051F0C) +/* 06194C 7F02CE1C 46120182 */ mul.s $f6, $f0, $f18 +/* 061950 7F02CE20 46068401 */ sub.s $f16, $f16, $f6 +/* 061954 7F02CE24 4602803C */ c.lt.s $f16, $f2 +/* 061958 7F02CE28 00000000 */ nop +/* 06195C 7F02CE2C 45000003 */ bc1f .L7F02CE3C +/* 061960 7F02CE30 00000000 */ nop +/* 061964 7F02CE34 C4201F0C */ lwc1 $f0, %lo(D_80051F0C)($at) +/* 061968 7F02CE38 46008400 */ add.s $f16, $f16, $f0 +.L7F02CE3C: +/* 06196C 7F02CE3C 3C018005 */ lui $at, %hi(D_80051F10) +/* 061970 7F02CE40 C4201F10 */ lwc1 $f0, %lo(D_80051F10)($at) +/* 061974 7F02CE44 4610003E */ c.le.s $f0, $f16 +/* 061978 7F02CE48 00000000 */ nop +/* 06197C 7F02CE4C 45000002 */ bc1f .L7F02CE58 +/* 061980 7F02CE50 00000000 */ nop +/* 061984 7F02CE54 46008401 */ sub.s $f16, $f16, $f0 +.L7F02CE58: +/* 061988 7F02CE58 3C018005 */ lui $at, %hi(D_80051F14) +/* 06198C 7F02CE5C 13200035 */ beqz $t9, .L7F02CF34 +/* 061990 7F02CE60 C4201F14 */ lwc1 $f0, %lo(D_80051F14)($at) +/* 061994 7F02CE64 15600033 */ bnez $t3, .L7F02CF34 +/* 061998 7F02CE68 3C0A8005 */ lui $t2, %hi(global_timer) +/* 06199C 7F02CE6C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 0619A0 7F02CE70 8FAC0168 */ lw $t4, 0x168($sp) +/* 0619A4 7F02CE74 2401003C */ li $at, 60 +/* 0619A8 7F02CE78 448A5000 */ mtc1 $t2, $f10 +/* 0619AC 7F02CE7C 8D8D001C */ lw $t5, 0x1c($t4) +/* 0619B0 7F02CE80 85980000 */ lh $t8, ($t4) +/* 0619B4 7F02CE84 46805220 */ cvt.s.w $f8, $f10 +/* 0619B8 7F02CE88 C5A400A4 */ lwc1 $f4, 0xa4($t5) +/* 0619BC 7F02CE8C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0619C0 7F02CE90 46044482 */ mul.s $f18, $f8, $f4 +/* 0619C4 7F02CE94 4600918D */ trunc.w.s $f6, $f18 +/* 0619C8 7F02CE98 440F3000 */ mfc1 $t7, $f6 +/* 0619CC 7F02CE9C 00000000 */ nop +/* 0619D0 7F02CEA0 01F8C821 */ addu $t9, $t7, $t8 +/* 0619D4 7F02CEA4 0321001A */ div $zero, $t9, $at +/* 0619D8 7F02CEA8 00004810 */ mfhi $t1 +/* 0619DC 7F02CEAC 44895000 */ mtc1 $t1, $f10 +/* 0619E0 7F02CEB0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0619E4 7F02CEB4 44819000 */ mtc1 $at, $f18 +/* 0619E8 7F02CEB8 46805220 */ cvt.s.w $f8, $f10 +/* 0619EC 7F02CEBC 46004102 */ mul.s $f4, $f8, $f0 +/* 0619F0 7F02CEC0 0FC15FAB */ jal sinf +/* 0619F4 7F02CEC4 46122303 */ div.s $f12, $f4, $f18 +/* 0619F8 7F02CEC8 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0619FC 7F02CECC 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061A00 7F02CED0 C7AC0144 */ lwc1 $f12, 0x144($sp) +/* 061A04 7F02CED4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061A08 7F02CED8 44813000 */ mtc1 $at, $f6 +/* 061A0C 7F02CEDC C7A80030 */ lwc1 $f8, 0x30($sp) +/* 061A10 7F02CEE0 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061A14 7F02CEE4 46060282 */ mul.s $f10, $f0, $f6 +/* 061A18 7F02CEE8 44809000 */ mtc1 $zero, $f18 +/* 061A1C 7F02CEEC 3C018005 */ lui $at, %hi(D_80051F18) +/* 061A20 7F02CEF0 46085102 */ mul.s $f4, $f10, $f8 +/* 061A24 7F02CEF4 46048400 */ add.s $f16, $f16, $f4 +/* 061A28 7F02CEF8 4612803C */ c.lt.s $f16, $f18 +/* 061A2C 7F02CEFC 00000000 */ nop +/* 061A30 7F02CF00 45000003 */ bc1f .L7F02CF10 +/* 061A34 7F02CF04 00000000 */ nop +/* 061A38 7F02CF08 C4261F18 */ lwc1 $f6, %lo(D_80051F18)($at) +/* 061A3C 7F02CF0C 46068400 */ add.s $f16, $f16, $f6 +.L7F02CF10: +/* 061A40 7F02CF10 3C018005 */ lui $at, %hi(D_80051F1C) +/* 061A44 7F02CF14 C42A1F1C */ lwc1 $f10, %lo(D_80051F1C)($at) +/* 061A48 7F02CF18 3C018005 */ lui $at, %hi(D_80051F20) +/* 061A4C 7F02CF1C 4610503E */ c.le.s $f10, $f16 +/* 061A50 7F02CF20 00000000 */ nop +/* 061A54 7F02CF24 45000003 */ bc1f .L7F02CF34 +/* 061A58 7F02CF28 00000000 */ nop +/* 061A5C 7F02CF2C C4281F20 */ lwc1 $f8, %lo(D_80051F20)($at) +/* 061A60 7F02CF30 46088401 */ sub.s $f16, $f16, $f8 +.L7F02CF34: +/* 061A64 7F02CF34 3C018005 */ lui $at, %hi(D_80051F24) +/* 061A68 7F02CF38 C4201F24 */ lwc1 $f0, %lo(D_80051F24)($at) +/* 061A6C 7F02CF3C 3C018005 */ lui $at, %hi(D_80051F28) +/* 061A70 7F02CF40 C4241F28 */ lwc1 $f4, %lo(D_80051F28)($at) +/* 061A74 7F02CF44 8FAB0168 */ lw $t3, 0x168($sp) +/* 061A78 7F02CF48 8FA2016C */ lw $v0, 0x16c($sp) +/* 061A7C 7F02CF4C 4610203E */ c.le.s $f4, $f16 +/* 061A80 7F02CF50 00000000 */ nop +/* 061A84 7F02CF54 45020003 */ bc1fl .L7F02CF64 +/* 061A88 7F02CF58 8D6A001C */ lw $t2, 0x1c($t3) +/* 061A8C 7F02CF5C 46008401 */ sub.s $f16, $f16, $f0 +/* 061A90 7F02CF60 8D6A001C */ lw $t2, 0x1c($t3) +.L7F02CF64: +/* 061A94 7F02CF64 C572014C */ lwc1 $f18, 0x14c($t3) +/* 061A98 7F02CF68 814D0024 */ lb $t5, 0x24($t2) +/* 061A9C 7F02CF6C 46128400 */ add.s $f16, $f16, $f18 +/* 061AA0 7F02CF70 51A00015 */ beql $t5, $zero, .L7F02CFC8 +/* 061AA4 7F02CF74 C4400038 */ lwc1 $f0, 0x38($v0) +/* 061AA8 7F02CF78 8FA2016C */ lw $v0, 0x16c($sp) +/* 061AAC 7F02CF7C C4400038 */ lwc1 $f0, 0x38($v0) +/* 061AB0 7F02CF80 46000007 */ neg.s $f0, $f0 +/* 061AB4 7F02CF84 4600803C */ c.lt.s $f16, $f0 +/* 061AB8 7F02CF88 00000000 */ nop +/* 061ABC 7F02CF8C 45020005 */ bc1fl .L7F02CFA4 +/* 061AC0 7F02CF90 C440003C */ lwc1 $f0, 0x3c($v0) +/* 061AC4 7F02CF94 46000406 */ mov.s $f16, $f0 +/* 061AC8 7F02CF98 10000019 */ b .L7F02D000 +/* 061ACC 7F02CF9C AFA00154 */ sw $zero, 0x154($sp) +/* 061AD0 7F02CFA0 C440003C */ lwc1 $f0, 0x3c($v0) +.L7F02CFA4: +/* 061AD4 7F02CFA4 46000007 */ neg.s $f0, $f0 +/* 061AD8 7F02CFA8 4610003C */ c.lt.s $f0, $f16 +/* 061ADC 7F02CFAC 00000000 */ nop +/* 061AE0 7F02CFB0 45020014 */ bc1fl .L7F02D004 +/* 061AE4 7F02CFB4 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 061AE8 7F02CFB8 46000406 */ mov.s $f16, $f0 +/* 061AEC 7F02CFBC 10000010 */ b .L7F02D000 +/* 061AF0 7F02CFC0 AFA00154 */ sw $zero, 0x154($sp) +/* 061AF4 7F02CFC4 C4400038 */ lwc1 $f0, 0x38($v0) +.L7F02CFC8: +/* 061AF8 7F02CFC8 4610003C */ c.lt.s $f0, $f16 +/* 061AFC 7F02CFCC 00000000 */ nop +/* 061B00 7F02CFD0 45020005 */ bc1fl .L7F02CFE8 +/* 061B04 7F02CFD4 C440003C */ lwc1 $f0, 0x3c($v0) +/* 061B08 7F02CFD8 46000406 */ mov.s $f16, $f0 +/* 061B0C 7F02CFDC 10000008 */ b .L7F02D000 +/* 061B10 7F02CFE0 AFA00154 */ sw $zero, 0x154($sp) +/* 061B14 7F02CFE4 C440003C */ lwc1 $f0, 0x3c($v0) +.L7F02CFE8: +/* 061B18 7F02CFE8 4600803C */ c.lt.s $f16, $f0 +/* 061B1C 7F02CFEC 00000000 */ nop +/* 061B20 7F02CFF0 45020004 */ bc1fl .L7F02D004 +/* 061B24 7F02CFF4 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 061B28 7F02CFF8 46000406 */ mov.s $f16, $f0 +/* 061B2C 7F02CFFC AFA00154 */ sw $zero, 0x154($sp) +.L7F02D000: +/* 061B30 7F02D000 C7A60164 */ lwc1 $f6, 0x164($sp) +.L7F02D004: +/* 061B34 7F02D004 8FA40168 */ lw $a0, 0x168($sp) +/* 061B38 7F02D008 8FA5016C */ lw $a1, 0x16c($sp) +/* 061B3C 7F02D00C 8FA60170 */ lw $a2, 0x170($sp) +/* 061B40 7F02D010 8FA70174 */ lw $a3, 0x174($sp) +/* 061B44 7F02D014 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061B48 7F02D018 0FC0B412 */ jal sub_GAME_7F02D048 +/* 061B4C 7F02D01C E7A60010 */ swc1 $f6, 0x10($sp) +/* 061B50 7F02D020 8FAE0168 */ lw $t6, 0x168($sp) +/* 061B54 7F02D024 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061B58 7F02D028 240C000A */ li $t4, 10 +/* 061B5C 7F02D02C A1CC000E */ sb $t4, 0xe($t6) +/* 061B60 7F02D030 E5D0015C */ swc1 $f16, 0x15c($t6) +/* 061B64 7F02D034 8FBF001C */ lw $ra, 0x1c($sp) +/* 061B68 7F02D038 8FA20154 */ lw $v0, 0x154($sp) +/* 061B6C 7F02D03C 27BD0168 */ addiu $sp, $sp, 0x168 +/* 061B70 7F02D040 03E00008 */ jr $ra +/* 061B74 7F02D044 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D048(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D048 +/* 061B78 7F02D048 44808000 */ mtc1 $zero, $f16 +/* 061B7C 7F02D04C C7AE0010 */ lwc1 $f14, 0x10($sp) +/* 061B80 7F02D050 46008006 */ mov.s $f0, $f16 +/* 061B84 7F02D054 46008086 */ mov.s $f2, $f16 +/* 061B88 7F02D058 10A0001B */ beqz $a1, .L7F02D0C8 +/* 061B8C 7F02D05C 46007306 */ mov.s $f12, $f14 +/* 061B90 7F02D060 C4A00030 */ lwc1 $f0, 0x30($a1) +/* 061B94 7F02D064 460E003C */ c.lt.s $f0, $f14 +/* 061B98 7F02D068 00000000 */ nop +/* 061B9C 7F02D06C 45020005 */ bc1fl .L7F02D084 +/* 061BA0 7F02D070 C4A00034 */ lwc1 $f0, 0x34($a1) +/* 061BA4 7F02D074 46007081 */ sub.s $f2, $f14, $f0 +/* 061BA8 7F02D078 10000008 */ b .L7F02D09C +/* 061BAC 7F02D07C 46000306 */ mov.s $f12, $f0 +/* 061BB0 7F02D080 C4A00034 */ lwc1 $f0, 0x34($a1) +.L7F02D084: +/* 061BB4 7F02D084 4600703C */ c.lt.s $f14, $f0 +/* 061BB8 7F02D088 00000000 */ nop +/* 061BBC 7F02D08C 45020004 */ bc1fl .L7F02D0A0 +/* 061BC0 7F02D090 460C803C */ c.lt.s $f16, $f12 +/* 061BC4 7F02D094 46007081 */ sub.s $f2, $f14, $f0 +/* 061BC8 7F02D098 46000306 */ mov.s $f12, $f0 +.L7F02D09C: +/* 061BCC 7F02D09C 460C803C */ c.lt.s $f16, $f12 +.L7F02D0A0: +/* 061BD0 7F02D0A0 00000000 */ nop +/* 061BD4 7F02D0A4 45020006 */ bc1fl .L7F02D0C0 +/* 061BD8 7F02D0A8 C4A60044 */ lwc1 $f6, 0x44($a1) +/* 061BDC 7F02D0AC C4A40040 */ lwc1 $f4, 0x40($a1) +/* 061BE0 7F02D0B0 460C2002 */ mul.s $f0, $f4, $f12 +/* 061BE4 7F02D0B4 10000004 */ b .L7F02D0C8 +/* 061BE8 7F02D0B8 00000000 */ nop +/* 061BEC 7F02D0BC C4A60044 */ lwc1 $f6, 0x44($a1) +.L7F02D0C0: +/* 061BF0 7F02D0C0 460C3002 */ mul.s $f0, $f6, $f12 +/* 061BF4 7F02D0C4 00000000 */ nop +.L7F02D0C8: +/* 061BF8 7F02D0C8 50E00008 */ beql $a3, $zero, .L7F02D0EC +/* 061BFC 7F02D0CC E4800154 */ swc1 $f0, 0x154($a0) +/* 061C00 7F02D0D0 10C00003 */ beqz $a2, .L7F02D0E0 +/* 061C04 7F02D0D4 E48C0154 */ swc1 $f12, 0x154($a0) +/* 061C08 7F02D0D8 10000005 */ b .L7F02D0F0 +/* 061C0C 7F02D0DC E48C0150 */ swc1 $f12, 0x150($a0) +.L7F02D0E0: +/* 061C10 7F02D0E0 10000003 */ b .L7F02D0F0 +/* 061C14 7F02D0E4 E4800150 */ swc1 $f0, 0x150($a0) +/* 061C18 7F02D0E8 E4800154 */ swc1 $f0, 0x154($a0) +.L7F02D0EC: +/* 061C1C 7F02D0EC E48C0150 */ swc1 $f12, 0x150($a0) +.L7F02D0F0: +/* 061C20 7F02D0F0 03E00008 */ jr $ra +/* 061C24 7F02D0F4 E4820158 */ swc1 $f2, 0x158($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D0F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D0F8 +/* 061C28 7F02D0F8 44800000 */ mtc1 $zero, $f0 +/* 061C2C 7F02D0FC 240E000A */ li $t6, 10 +/* 061C30 7F02D100 A08E000E */ sb $t6, 0xe($a0) +/* 061C34 7F02D104 E4800154 */ swc1 $f0, 0x154($a0) +/* 061C38 7F02D108 E4800150 */ swc1 $f0, 0x150($a0) +/* 061C3C 7F02D10C E4800158 */ swc1 $f0, 0x158($a0) +/* 061C40 7F02D110 03E00008 */ jr $ra +/* 061C44 7F02D114 E480015C */ swc1 $f0, 0x15c($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D118(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D118 +/* 061C48 7F02D118 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061C4C 7F02D11C AFBF0014 */ sw $ra, 0x14($sp) +/* 061C50 7F02D120 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061C54 7F02D124 AFA60020 */ sw $a2, 0x20($sp) +/* 061C58 7F02D128 10400003 */ beqz $v0, .L7F02D138 +/* 061C5C 7F02D12C 00402025 */ move $a0, $v0 +/* 061C60 7F02D130 0FC1495D */ jal sub_GAME_7F052574 +/* 061C64 7F02D134 8FA50020 */ lw $a1, 0x20($sp) +.L7F02D138: +/* 061C68 7F02D138 8FBF0014 */ lw $ra, 0x14($sp) +/* 061C6C 7F02D13C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061C70 7F02D140 03E00008 */ jr $ra +/* 061C74 7F02D144 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D148(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D148 +/* 061C78 7F02D148 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061C7C 7F02D14C AFBF0014 */ sw $ra, 0x14($sp) +/* 061C80 7F02D150 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061C84 7F02D154 00000000 */ nop +/* 061C88 7F02D158 10400005 */ beqz $v0, .L7F02D170 +/* 061C8C 7F02D15C 00402025 */ move $a0, $v0 +/* 061C90 7F02D160 0FC14981 */ jal sub_GAME_7F052604 +/* 061C94 7F02D164 00000000 */ nop +/* 061C98 7F02D168 10000003 */ b .L7F02D178 +/* 061C9C 7F02D16C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D170: +/* 061CA0 7F02D170 00001025 */ move $v0, $zero +/* 061CA4 7F02D174 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D178: +/* 061CA8 7F02D178 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061CAC 7F02D17C 03E00008 */ jr $ra +/* 061CB0 7F02D180 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D184(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D184 +/* 061CB4 7F02D184 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061CB8 7F02D188 AFBF0014 */ sw $ra, 0x14($sp) +/* 061CBC 7F02D18C AFA40018 */ sw $a0, 0x18($sp) +/* 061CC0 7F02D190 00002825 */ move $a1, $zero +/* 061CC4 7F02D194 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061CC8 7F02D198 00003025 */ move $a2, $zero +/* 061CCC 7F02D19C 8FA40018 */ lw $a0, 0x18($sp) +/* 061CD0 7F02D1A0 24050001 */ li $a1, 1 +/* 061CD4 7F02D1A4 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061CD8 7F02D1A8 00003025 */ move $a2, $zero +/* 061CDC 7F02D1AC 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 061CE0 7F02D1B0 8FA40018 */ lw $a0, 0x18($sp) +/* 061CE4 7F02D1B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 061CE8 7F02D1B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061CEC 7F02D1BC 03E00008 */ jr $ra +/* 061CF0 7F02D1C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D1C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D1C4 +/* 061CF4 7F02D1C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061CF8 7F02D1C8 10C0000C */ beqz $a2, .L7F02D1FC +/* 061CFC 7F02D1CC AFBF0014 */ sw $ra, 0x14($sp) +/* 061D00 7F02D1D0 24010001 */ li $at, 1 +/* 061D04 7F02D1D4 54A10006 */ bnel $a1, $at, .L7F02D1F0 +/* 061D08 7F02D1D8 94980012 */ lhu $t8, 0x12($a0) +/* 061D0C 7F02D1DC 948E0012 */ lhu $t6, 0x12($a0) +/* 061D10 7F02D1E0 35CF0004 */ ori $t7, $t6, 4 +/* 061D14 7F02D1E4 1000000F */ b .L7F02D224 +/* 061D18 7F02D1E8 A48F0012 */ sh $t7, 0x12($a0) +/* 061D1C 7F02D1EC 94980012 */ lhu $t8, 0x12($a0) +.L7F02D1F0: +/* 061D20 7F02D1F0 37190008 */ ori $t9, $t8, 8 +/* 061D24 7F02D1F4 1000000B */ b .L7F02D224 +/* 061D28 7F02D1F8 A4990012 */ sh $t9, 0x12($a0) +.L7F02D1FC: +/* 061D2C 7F02D1FC 24010001 */ li $at, 1 +/* 061D30 7F02D200 54A10006 */ bnel $a1, $at, .L7F02D21C +/* 061D34 7F02D204 948A0012 */ lhu $t2, 0x12($a0) +/* 061D38 7F02D208 94880012 */ lhu $t0, 0x12($a0) +/* 061D3C 7F02D20C 3109FFFB */ andi $t1, $t0, 0xfffb +/* 061D40 7F02D210 10000004 */ b .L7F02D224 +/* 061D44 7F02D214 A4890012 */ sh $t1, 0x12($a0) +/* 061D48 7F02D218 948A0012 */ lhu $t2, 0x12($a0) +.L7F02D21C: +/* 061D4C 7F02D21C 314BFFF7 */ andi $t3, $t2, 0xfff7 +/* 061D50 7F02D220 A48B0012 */ sh $t3, 0x12($a0) +.L7F02D224: +/* 061D54 7F02D224 54C00004 */ bnezl $a2, .L7F02D238 +/* 061D58 7F02D228 8FBF0014 */ lw $ra, 0x14($sp) +/* 061D5C 7F02D22C 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061D60 7F02D230 00003025 */ move $a2, $zero +/* 061D64 7F02D234 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D238: +/* 061D68 7F02D238 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061D6C 7F02D23C 03E00008 */ jr $ra +/* 061D70 7F02D240 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D244(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051F2C +.word 0x4a1c4000 /*2560000.0*/ +glabel D_80051F30 +.word 0x3c99a5b7 /*0.018755777*/ +glabel D_80051F34 +.word 0x491c4000 /*640000.0*/ +glabel D_80051F38 +.word 0x3d1a1b7b /*0.037623864*/ +glabel D_80051F3C +.word 0x481c4000 /*160000.0*/ +glabel D_80051F40 +.word 0x3d9930a7 /*0.074799828*/ +glabel D_80051F44 +.word 0x471c4000 /*40000.0*/ +glabel D_80051F48 +.word 0x3e1930a7 /*0.14959966*/ +glabel D_80051F4C +.word 0x3e80adfd /*0.25132743*/ +.text +glabel sub_GAME_7F02D244 +/* 061D74 7F02D244 3C018005 */ lui $at, %hi(D_80051F2C) +/* 061D78 7F02D248 C4241F2C */ lwc1 $f4, %lo(D_80051F2C)($at) +/* 061D7C 7F02D24C 3C018005 */ lui $at, %hi(D_80051F34) +/* 061D80 7F02D250 460C203C */ c.lt.s $f4, $f12 +/* 061D84 7F02D254 00000000 */ nop +/* 061D88 7F02D258 45000004 */ bc1f .L7F02D26C +/* 061D8C 7F02D25C 00000000 */ nop +/* 061D90 7F02D260 3C018005 */ lui $at, %hi(D_80051F30) +/* 061D94 7F02D264 03E00008 */ jr $ra +/* 061D98 7F02D268 C4201F30 */ lwc1 $f0, %lo(D_80051F30)($at) + +.L7F02D26C: +/* 061D9C 7F02D26C C4261F34 */ lwc1 $f6, %lo(D_80051F34)($at) +/* 061DA0 7F02D270 3C018005 */ lui $at, %hi(D_80051F3C) +/* 061DA4 7F02D274 460C303C */ c.lt.s $f6, $f12 +/* 061DA8 7F02D278 00000000 */ nop +/* 061DAC 7F02D27C 45000004 */ bc1f .L7F02D290 +/* 061DB0 7F02D280 00000000 */ nop +/* 061DB4 7F02D284 3C018005 */ lui $at, %hi(D_80051F38) +/* 061DB8 7F02D288 03E00008 */ jr $ra +/* 061DBC 7F02D28C C4201F38 */ lwc1 $f0, %lo(D_80051F38)($at) + +.L7F02D290: +/* 061DC0 7F02D290 C4281F3C */ lwc1 $f8, %lo(D_80051F3C)($at) +/* 061DC4 7F02D294 3C018005 */ lui $at, %hi(D_80051F44) +/* 061DC8 7F02D298 460C403C */ c.lt.s $f8, $f12 +/* 061DCC 7F02D29C 00000000 */ nop +/* 061DD0 7F02D2A0 45000004 */ bc1f .L7F02D2B4 +/* 061DD4 7F02D2A4 00000000 */ nop +/* 061DD8 7F02D2A8 3C018005 */ lui $at, %hi(D_80051F40) +/* 061DDC 7F02D2AC 03E00008 */ jr $ra +/* 061DE0 7F02D2B0 C4201F40 */ lwc1 $f0, %lo(D_80051F40)($at) + +.L7F02D2B4: +/* 061DE4 7F02D2B4 C42A1F44 */ lwc1 $f10, %lo(D_80051F44)($at) +/* 061DE8 7F02D2B8 3C018005 */ lui $at, %hi(D_80051F4C) +/* 061DEC 7F02D2BC 460C503C */ c.lt.s $f10, $f12 +/* 061DF0 7F02D2C0 00000000 */ nop +/* 061DF4 7F02D2C4 45000004 */ bc1f .L7F02D2D8 +/* 061DF8 7F02D2C8 00000000 */ nop +/* 061DFC 7F02D2CC 3C018005 */ lui $at, %hi(D_80051F48) +/* 061E00 7F02D2D0 03E00008 */ jr $ra +/* 061E04 7F02D2D4 C4201F48 */ lwc1 $f0, %lo(D_80051F48)($at) + +.L7F02D2D8: +/* 061E08 7F02D2D8 C4201F4C */ lwc1 $f0, %lo(D_80051F4C)($at) +/* 061E0C 7F02D2DC 03E00008 */ jr $ra +/* 061E10 7F02D2E0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D2E4(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051F50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F58 +.word 0x3e23d70a /*0.16*/ +glabel D_80051F5C +.word 0x41200419 /*10.001*/ +.text +glabel sub_GAME_7F02D2E4 +/* 061E14 7F02D2E4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 061E18 7F02D2E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 061E1C 7F02D2EC AFA40060 */ sw $a0, 0x60($sp) +/* 061E20 7F02D2F0 AFA50064 */ sw $a1, 0x64($sp) +/* 061E24 7F02D2F4 AFA60068 */ sw $a2, 0x68($sp) +/* 061E28 7F02D2F8 0FC225E6 */ jal get_curplayer_positiondata +/* 061E2C 7F02D2FC AFA7006C */ sw $a3, 0x6c($sp) +/* 061E30 7F02D300 8FAE0060 */ lw $t6, 0x60($sp) +/* 061E34 7F02D304 C4440008 */ lwc1 $f4, 8($v0) +/* 061E38 7F02D308 C448000C */ lwc1 $f8, 0xc($v0) +/* 061E3C 7F02D30C 8DC30018 */ lw $v1, 0x18($t6) +/* 061E40 7F02D310 C4660008 */ lwc1 $f6, 8($v1) +/* 061E44 7F02D314 C46A000C */ lwc1 $f10, 0xc($v1) +/* 061E48 7F02D318 46062301 */ sub.s $f12, $f4, $f6 +/* 061E4C 7F02D31C 460A4101 */ sub.s $f4, $f8, $f10 +/* 061E50 7F02D320 E7A40050 */ swc1 $f4, 0x50($sp) +/* 061E54 7F02D324 C4460010 */ lwc1 $f6, 0x10($v0) +/* 061E58 7F02D328 C4680010 */ lwc1 $f8, 0x10($v1) +/* 061E5C 7F02D32C E7AC0054 */ swc1 $f12, 0x54($sp) +/* 061E60 7F02D330 46083381 */ sub.s $f14, $f6, $f8 +/* 061E64 7F02D334 0FC16A8C */ jal atan2f +/* 061E68 7F02D338 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 061E6C 7F02D33C E7A00048 */ swc1 $f0, 0x48($sp) +/* 061E70 7F02D340 0FC0B064 */ jal sub_GAME_7F02C190 +/* 061E74 7F02D344 8FA40060 */ lw $a0, 0x60($sp) +/* 061E78 7F02D348 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 061E7C 7F02D34C C7B20050 */ lwc1 $f18, 0x50($sp) +/* 061E80 7F02D350 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 061E84 7F02D354 46108102 */ mul.s $f4, $f16, $f16 +/* 061E88 7F02D358 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 061E8C 7F02D35C 46005081 */ sub.s $f2, $f10, $f0 +/* 061E90 7F02D360 46129182 */ mul.s $f6, $f18, $f18 +/* 061E94 7F02D364 E7A00044 */ swc1 $f0, 0x44($sp) +/* 061E98 7F02D368 460E7282 */ mul.s $f10, $f14, $f14 +/* 061E9C 7F02D36C E7A20040 */ swc1 $f2, 0x40($sp) +/* 061EA0 7F02D370 46062200 */ add.s $f8, $f4, $f6 +/* 061EA4 7F02D374 460A4300 */ add.s $f12, $f8, $f10 +/* 061EA8 7F02D378 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061EAC 7F02D37C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 061EB0 7F02D380 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 061EB4 7F02D384 44802000 */ mtc1 $zero, $f4 +/* 061EB8 7F02D388 3C018005 */ lui $at, %hi(D_80051F50) +/* 061EBC 7F02D38C 8FAF0064 */ lw $t7, 0x64($sp) +/* 061EC0 7F02D390 4604103C */ c.lt.s $f2, $f4 +/* 061EC4 7F02D394 00000000 */ nop +/* 061EC8 7F02D398 45020004 */ bc1fl .L7F02D3AC +/* 061ECC 7F02D39C 4600103C */ c.lt.s $f2, $f0 +/* 061ED0 7F02D3A0 C4261F50 */ lwc1 $f6, %lo(D_80051F50)($at) +/* 061ED4 7F02D3A4 46061080 */ add.s $f2, $f2, $f6 +/* 061ED8 7F02D3A8 4600103C */ c.lt.s $f2, $f0 +.L7F02D3AC: +/* 061EDC 7F02D3AC 00001025 */ move $v0, $zero +/* 061EE0 7F02D3B0 3C018005 */ lui $at, %hi(D_80051F54) +/* 061EE4 7F02D3B4 45000002 */ bc1f .L7F02D3C0 +/* 061EE8 7F02D3B8 00000000 */ nop +/* 061EEC 7F02D3BC 24020001 */ li $v0, 1 +.L7F02D3C0: +/* 061EF0 7F02D3C0 14400009 */ bnez $v0, .L7F02D3E8 +/* 061EF4 7F02D3C4 00401825 */ move $v1, $v0 +/* 061EF8 7F02D3C8 C4281F54 */ lwc1 $f8, %lo(D_80051F54)($at) +/* 061EFC 7F02D3CC 00001825 */ move $v1, $zero +/* 061F00 7F02D3D0 46004281 */ sub.s $f10, $f8, $f0 +/* 061F04 7F02D3D4 4602503C */ c.lt.s $f10, $f2 +/* 061F08 7F02D3D8 00000000 */ nop +/* 061F0C 7F02D3DC 45020003 */ bc1fl .L7F02D3EC +/* 061F10 7F02D3E0 ADE30000 */ sw $v1, ($t7) +/* 061F14 7F02D3E4 24030001 */ li $v1, 1 +.L7F02D3E8: +/* 061F18 7F02D3E8 ADE30000 */ sw $v1, ($t7) +.L7F02D3EC: +/* 061F1C 7F02D3EC 8FB80068 */ lw $t8, 0x68($sp) +/* 061F20 7F02D3F0 AF000000 */ sw $zero, ($t8) +/* 061F24 7F02D3F4 0FC227A9 */ jal check_if_bond_is_invincible +/* 061F28 7F02D3F8 AFA30024 */ sw $v1, 0x24($sp) +/* 061F2C 7F02D3FC 14400088 */ bnez $v0, .L7F02D620 +/* 061F30 7F02D400 8FA30024 */ lw $v1, 0x24($sp) +/* 061F34 7F02D404 50600087 */ beql $v1, $zero, .L7F02D624 +/* 061F38 7F02D408 8FBF0014 */ lw $ra, 0x14($sp) +/* 061F3C 7F02D40C 0C007DF8 */ jal sqrtf +/* 061F40 7F02D410 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 061F44 7F02D414 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12 +/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58) +/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at) +/* 061F54 7F02D424 3C018005 */ lui $at, %hi(global_timer_delta) +/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0 +/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp) +/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6 +/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450 +/* 061F6C 7F02D43C 83220002 */ lb $v0, 2($t9) +/* 061F70 7F02D440 46006203 */ div.s $f8, $f12, $f0 +/* 061F74 7F02D444 46081082 */ mul.s $f2, $f2, $f8 +/* 061F78 7F02D448 00000000 */ nop +/* 061F7C 7F02D44C 83220002 */ lb $v0, 2($t9) +.L7F02D450: +/* 061F80 7F02D450 1840000C */ blez $v0, .L7F02D484 +/* 061F84 7F02D454 00000000 */ nop +/* 061F88 7F02D458 44825000 */ mtc1 $v0, $f10 +/* 061F8C 7F02D45C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 061F90 7F02D460 44813000 */ mtc1 $at, $f6 +/* 061F94 7F02D464 46805120 */ cvt.s.w $f4, $f10 +/* 061F98 7F02D468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061F9C 7F02D46C 44815000 */ mtc1 $at, $f10 +/* 061FA0 7F02D470 46062203 */ div.s $f8, $f4, $f6 +/* 061FA4 7F02D474 46085100 */ add.s $f4, $f10, $f8 +/* 061FA8 7F02D478 46041082 */ mul.s $f2, $f2, $f4 +/* 061FAC 7F02D47C 1000000F */ b .L7F02D4BC +/* 061FB0 7F02D480 00000000 */ nop +.L7F02D484: +/* 061FB4 7F02D484 0441000D */ bgez $v0, .L7F02D4BC +/* 061FB8 7F02D488 2841FF9D */ slti $at, $v0, -0x63 +/* 061FBC 7F02D48C 10200004 */ beqz $at, .L7F02D4A0 +/* 061FC0 7F02D490 24480064 */ addiu $t0, $v0, 0x64 +/* 061FC4 7F02D494 44801000 */ mtc1 $zero, $f2 +/* 061FC8 7F02D498 10000008 */ b .L7F02D4BC +/* 061FCC 7F02D49C 00000000 */ nop +.L7F02D4A0: +/* 061FD0 7F02D4A0 44883000 */ mtc1 $t0, $f6 +/* 061FD4 7F02D4A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 061FD8 7F02D4A8 44814000 */ mtc1 $at, $f8 +/* 061FDC 7F02D4AC 468032A0 */ cvt.s.w $f10, $f6 +/* 061FE0 7F02D4B0 46085103 */ div.s $f4, $f10, $f8 +/* 061FE4 7F02D4B4 46041082 */ mul.s $f2, $f2, $f4 +/* 061FE8 7F02D4B8 00000000 */ nop +.L7F02D4BC: +/* 061FEC 7F02D4BC 0FC074D8 */ jal get_007_accuracy_mod +/* 061FF0 7F02D4C0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061FF4 7F02D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061FF8 7F02D4C8 44813000 */ mtc1 $at, $f6 +/* 061FFC 7F02D4CC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062000 7F02D4D0 4606003E */ c.le.s $f0, $f6 +/* 062004 7F02D4D4 00000000 */ nop +/* 062008 7F02D4D8 45000007 */ bc1f .L7F02D4F8 +/* 06200C 7F02D4DC 00000000 */ nop +/* 062010 7F02D4E0 0FC074D8 */ jal get_007_accuracy_mod +/* 062014 7F02D4E4 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062018 7F02D4E8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 06201C 7F02D4EC 46001082 */ mul.s $f2, $f2, $f0 +/* 062020 7F02D4F0 1000000C */ b .L7F02D524 +/* 062024 7F02D4F4 00000000 */ nop +.L7F02D4F8: +/* 062028 7F02D4F8 0FC074D8 */ jal get_007_accuracy_mod +/* 06202C 7F02D4FC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062030 7F02D500 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 062034 7F02D504 44815000 */ mtc1 $at, $f10 +/* 062038 7F02D508 3C018005 */ lui $at, %hi(D_80051F5C) +/* 06203C 7F02D50C C4281F5C */ lwc1 $f8, %lo(D_80051F5C)($at) +/* 062040 7F02D510 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062044 7F02D514 46004101 */ sub.s $f4, $f8, $f0 +/* 062048 7F02D518 46045183 */ div.s $f6, $f10, $f4 +/* 06204C 7F02D51C 46061082 */ mul.s $f2, $f2, $f6 +/* 062050 7F02D520 00000000 */ nop +.L7F02D524: +/* 062054 7F02D524 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) +/* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 +/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 +/* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062074 7F02D544 46021080 */ add.s $f2, $f2, $f2 +.L7F02D548: +/* 062078 7F02D548 8FA4006C */ lw $a0, 0x6c($sp) +/* 06207C 7F02D54C 2401000F */ li $at, 15 +/* 062080 7F02D550 8FA20060 */ lw $v0, 0x60($sp) +/* 062084 7F02D554 10810003 */ beq $a0, $at, .L7F02D564 +/* 062088 7F02D558 24010010 */ li $at, 16 +/* 06208C 7F02D55C 54810003 */ bnel $a0, $at, .L7F02D56C +/* 062090 7F02D560 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D564: +/* 062094 7F02D564 46021080 */ add.s $f2, $f2, $f2 +/* 062098 7F02D568 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D56C: +/* 06209C 7F02D56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0620A0 7F02D570 44814000 */ mtc1 $at, $f8 +/* 0620A4 7F02D574 46025100 */ add.s $f4, $f10, $f2 +/* 0620A8 7F02D578 E444013C */ swc1 $f4, 0x13c($v0) +/* 0620AC 7F02D57C C446013C */ lwc1 $f6, 0x13c($v0) +/* 0620B0 7F02D580 4606403E */ c.le.s $f8, $f6 +/* 0620B4 7F02D584 00000000 */ nop +/* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 +/* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C4 7F02D594 00000000 */ nop +/* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod +/* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0620D0 7F02D5A0 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0620D4 7F02D5A4 44815000 */ mtc1 $at, $f10 +/* 0620D8 7F02D5A8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0620DC 7F02D5AC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0620E0 7F02D5B0 C428CE44 */ lwc1 $f8, %lo(ai_damage_modifier)($at) +/* 0620E4 7F02D5B4 46045182 */ mul.s $f6, $f10, $f4 +/* 0620E8 7F02D5B8 8FA9006C */ lw $t1, 0x6c($sp) +/* 0620EC 7F02D5BC 2401000F */ li $at, 15 +/* 0620F0 7F02D5C0 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0620F4 7F02D5C4 2406FFFF */ li $a2, -1 +/* 0620F8 7F02D5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0620FC 7F02D5CC 00000000 */ nop +/* 062100 7F02D5D0 460A0302 */ mul.s $f12, $f0, $f10 +/* 062104 7F02D5D4 11210003 */ beq $t1, $at, .L7F02D5E4 +/* 062108 7F02D5D8 00000000 */ nop +/* 06210C 7F02D5DC 24010010 */ li $at, 16 +/* 062110 7F02D5E0 15210005 */ bne $t1, $at, .L7F02D5F8 +.L7F02D5E4: +/* 062114 7F02D5E4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 062118 7F02D5E8 44812000 */ mtc1 $at, $f4 +/* 06211C 7F02D5EC 00000000 */ nop +/* 062120 7F02D5F0 46046302 */ mul.s $f12, $f12, $f4 +/* 062124 7F02D5F4 00000000 */ nop +.L7F02D5F8: +/* 062128 7F02D5F8 0FC22793 */ jal sub_GAME_7F089E4C +/* 06212C 7F02D5FC 24070001 */ li $a3, 1 +/* 062130 7F02D600 44803000 */ mtc1 $zero, $f6 +/* 062134 7F02D604 8FAA0060 */ lw $t2, 0x60($sp) +/* 062138 7F02D608 0FC227A9 */ jal check_if_bond_is_invincible +/* 06213C 7F02D60C E546013C */ swc1 $f6, 0x13c($t2) +/* 062140 7F02D610 10400003 */ beqz $v0, .L7F02D620 +/* 062144 7F02D614 8FAC0068 */ lw $t4, 0x68($sp) +/* 062148 7F02D618 240B0001 */ li $t3, 1 +/* 06214C 7F02D61C AD8B0000 */ sw $t3, ($t4) +.L7F02D620: +/* 062150 7F02D620 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D624: +/* 062154 7F02D624 27BD0060 */ addiu $sp, $sp, 0x60 +/* 062158 7F02D628 03E00008 */ jr $ra +/* 06215C 7F02D62C 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051F50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F58 +.word 0x3e23d70a /*0.16*/ +glabel D_80051F5C +.word 0x41200419 /*10.001*/ +.text +glabel sub_GAME_7F02D2E4 +/* 061E14 7F02D2E4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 061E18 7F02D2E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 061E1C 7F02D2EC AFA40060 */ sw $a0, 0x60($sp) +/* 061E20 7F02D2F0 AFA50064 */ sw $a1, 0x64($sp) +/* 061E24 7F02D2F4 AFA60068 */ sw $a2, 0x68($sp) +/* 061E28 7F02D2F8 0FC225E6 */ jal get_curplayer_positiondata +/* 061E2C 7F02D2FC AFA7006C */ sw $a3, 0x6c($sp) +/* 061E30 7F02D300 8FAE0060 */ lw $t6, 0x60($sp) +/* 061E34 7F02D304 C4440008 */ lwc1 $f4, 8($v0) +/* 061E38 7F02D308 C448000C */ lwc1 $f8, 0xc($v0) +/* 061E3C 7F02D30C 8DC30018 */ lw $v1, 0x18($t6) +/* 061E40 7F02D310 C4660008 */ lwc1 $f6, 8($v1) +/* 061E44 7F02D314 C46A000C */ lwc1 $f10, 0xc($v1) +/* 061E48 7F02D318 46062301 */ sub.s $f12, $f4, $f6 +/* 061E4C 7F02D31C 460A4101 */ sub.s $f4, $f8, $f10 +/* 061E50 7F02D320 E7A40050 */ swc1 $f4, 0x50($sp) +/* 061E54 7F02D324 C4460010 */ lwc1 $f6, 0x10($v0) +/* 061E58 7F02D328 C4680010 */ lwc1 $f8, 0x10($v1) +/* 061E5C 7F02D32C E7AC0054 */ swc1 $f12, 0x54($sp) +/* 061E60 7F02D330 46083381 */ sub.s $f14, $f6, $f8 +/* 061E64 7F02D334 0FC16A8C */ jal atan2f +/* 061E68 7F02D338 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 061E6C 7F02D33C E7A00048 */ swc1 $f0, 0x48($sp) +/* 061E70 7F02D340 0FC0B064 */ jal sub_GAME_7F02C190 +/* 061E74 7F02D344 8FA40060 */ lw $a0, 0x60($sp) +/* 061E78 7F02D348 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 061E7C 7F02D34C C7B20050 */ lwc1 $f18, 0x50($sp) +/* 061E80 7F02D350 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 061E84 7F02D354 46108102 */ mul.s $f4, $f16, $f16 +/* 061E88 7F02D358 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 061E8C 7F02D35C 46005081 */ sub.s $f2, $f10, $f0 +/* 061E90 7F02D360 46129182 */ mul.s $f6, $f18, $f18 +/* 061E94 7F02D364 E7A00044 */ swc1 $f0, 0x44($sp) +/* 061E98 7F02D368 460E7282 */ mul.s $f10, $f14, $f14 +/* 061E9C 7F02D36C E7A20040 */ swc1 $f2, 0x40($sp) +/* 061EA0 7F02D370 46062200 */ add.s $f8, $f4, $f6 +/* 061EA4 7F02D374 460A4300 */ add.s $f12, $f8, $f10 +/* 061EA8 7F02D378 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061EAC 7F02D37C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 061EB0 7F02D380 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 061EB4 7F02D384 44802000 */ mtc1 $zero, $f4 +/* 061EB8 7F02D388 3C018005 */ lui $at, %hi(D_80051F50) +/* 061EBC 7F02D38C 8FAF0064 */ lw $t7, 0x64($sp) +/* 061EC0 7F02D390 4604103C */ c.lt.s $f2, $f4 +/* 061EC4 7F02D394 00000000 */ nop +/* 061EC8 7F02D398 45020004 */ bc1fl .L7F02D3AC +/* 061ECC 7F02D39C 4600103C */ c.lt.s $f2, $f0 +/* 061ED0 7F02D3A0 C4261F50 */ lwc1 $f6, %lo(D_80051F50)($at) +/* 061ED4 7F02D3A4 46061080 */ add.s $f2, $f2, $f6 +/* 061ED8 7F02D3A8 4600103C */ c.lt.s $f2, $f0 +.L7F02D3AC: +/* 061EDC 7F02D3AC 00001025 */ move $v0, $zero +/* 061EE0 7F02D3B0 3C018005 */ lui $at, %hi(D_80051F54) +/* 061EE4 7F02D3B4 45000002 */ bc1f .L7F02D3C0 +/* 061EE8 7F02D3B8 00000000 */ nop +/* 061EEC 7F02D3BC 24020001 */ li $v0, 1 +.L7F02D3C0: +/* 061EF0 7F02D3C0 14400009 */ bnez $v0, .L7F02D3E8 +/* 061EF4 7F02D3C4 00401825 */ move $v1, $v0 +/* 061EF8 7F02D3C8 C4281F54 */ lwc1 $f8, %lo(D_80051F54)($at) +/* 061EFC 7F02D3CC 00001825 */ move $v1, $zero +/* 061F00 7F02D3D0 46004281 */ sub.s $f10, $f8, $f0 +/* 061F04 7F02D3D4 4602503C */ c.lt.s $f10, $f2 +/* 061F08 7F02D3D8 00000000 */ nop +/* 061F0C 7F02D3DC 45020003 */ bc1fl .L7F02D3EC +/* 061F10 7F02D3E0 ADE30000 */ sw $v1, ($t7) +/* 061F14 7F02D3E4 24030001 */ li $v1, 1 +.L7F02D3E8: +/* 061F18 7F02D3E8 ADE30000 */ sw $v1, ($t7) +.L7F02D3EC: +/* 061F1C 7F02D3EC 8FB80068 */ lw $t8, 0x68($sp) +/* 061F20 7F02D3F0 AF000000 */ sw $zero, ($t8) +/* 061F24 7F02D3F4 0FC227A9 */ jal check_if_bond_is_invincible +/* 061F28 7F02D3F8 AFA30024 */ sw $v1, 0x24($sp) +/* 061F2C 7F02D3FC 14400088 */ bnez $v0, .L7F02D620 +/* 061F30 7F02D400 8FA30024 */ lw $v1, 0x24($sp) +/* 061F34 7F02D404 50600087 */ beql $v1, $zero, .L7F02D624 +/* 061F38 7F02D408 8FBF0014 */ lw $ra, 0x14($sp) +/* 061F3C 7F02D40C 0C007DF8 */ jal sqrtf +/* 061F40 7F02D410 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 061F44 7F02D414 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12 +/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58) +/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at) +/* 061F54 7F02D424 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0 +/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at) +/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp) +/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6 +/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450 +/* 061F6C 7F02D43C 83220002 */ lb $v0, 2($t9) +/* 061F70 7F02D440 46006203 */ div.s $f8, $f12, $f0 +/* 061F74 7F02D444 46081082 */ mul.s $f2, $f2, $f8 +/* 061F78 7F02D448 00000000 */ nop +/* 061F7C 7F02D44C 83220002 */ lb $v0, 2($t9) +.L7F02D450: +/* 061F80 7F02D450 1840000C */ blez $v0, .L7F02D484 +/* 061F84 7F02D454 00000000 */ nop +/* 061F88 7F02D458 44825000 */ mtc1 $v0, $f10 +/* 061F8C 7F02D45C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 061F90 7F02D460 44813000 */ mtc1 $at, $f6 +/* 061F94 7F02D464 46805120 */ cvt.s.w $f4, $f10 +/* 061F98 7F02D468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061F9C 7F02D46C 44815000 */ mtc1 $at, $f10 +/* 061FA0 7F02D470 46062203 */ div.s $f8, $f4, $f6 +/* 061FA4 7F02D474 46085100 */ add.s $f4, $f10, $f8 +/* 061FA8 7F02D478 46041082 */ mul.s $f2, $f2, $f4 +/* 061FAC 7F02D47C 1000000F */ b .L7F02D4BC +/* 061FB0 7F02D480 00000000 */ nop +.L7F02D484: +/* 061FB4 7F02D484 0441000D */ bgez $v0, .L7F02D4BC +/* 061FB8 7F02D488 2841FF9D */ slti $at, $v0, -0x63 +/* 061FBC 7F02D48C 10200004 */ beqz $at, .L7F02D4A0 +/* 061FC0 7F02D490 24480064 */ addiu $t0, $v0, 0x64 +/* 061FC4 7F02D494 44801000 */ mtc1 $zero, $f2 +/* 061FC8 7F02D498 10000008 */ b .L7F02D4BC +/* 061FCC 7F02D49C 00000000 */ nop +.L7F02D4A0: +/* 061FD0 7F02D4A0 44883000 */ mtc1 $t0, $f6 +/* 061FD4 7F02D4A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 061FD8 7F02D4A8 44814000 */ mtc1 $at, $f8 +/* 061FDC 7F02D4AC 468032A0 */ cvt.s.w $f10, $f6 +/* 061FE0 7F02D4B0 46085103 */ div.s $f4, $f10, $f8 +/* 061FE4 7F02D4B4 46041082 */ mul.s $f2, $f2, $f4 +/* 061FE8 7F02D4B8 00000000 */ nop +.L7F02D4BC: +/* 061FEC 7F02D4BC 0FC074D8 */ jal get_007_accuracy_mod +/* 061FF0 7F02D4C0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061FF4 7F02D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061FF8 7F02D4C8 44813000 */ mtc1 $at, $f6 +/* 061FFC 7F02D4CC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062000 7F02D4D0 4606003E */ c.le.s $f0, $f6 +/* 062004 7F02D4D4 00000000 */ nop +/* 062008 7F02D4D8 45000007 */ bc1f .L7F02D4F8 +/* 06200C 7F02D4DC 00000000 */ nop +/* 062010 7F02D4E0 0FC074D8 */ jal get_007_accuracy_mod +/* 062014 7F02D4E4 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062018 7F02D4E8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 06201C 7F02D4EC 46001082 */ mul.s $f2, $f2, $f0 +/* 062020 7F02D4F0 1000000C */ b .L7F02D524 +/* 062024 7F02D4F4 00000000 */ nop +.L7F02D4F8: +/* 062028 7F02D4F8 0FC074D8 */ jal get_007_accuracy_mod +/* 06202C 7F02D4FC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062030 7F02D500 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 062034 7F02D504 44815000 */ mtc1 $at, $f10 +/* 062038 7F02D508 3C018005 */ lui $at, %hi(D_80051F5C) +/* 06203C 7F02D50C C4281F5C */ lwc1 $f8, %lo(D_80051F5C)($at) +/* 062040 7F02D510 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062044 7F02D514 46004101 */ sub.s $f4, $f8, $f0 +/* 062048 7F02D518 46045183 */ div.s $f6, $f10, $f4 +/* 06204C 7F02D51C 46061082 */ mul.s $f2, $f2, $f6 +/* 062050 7F02D520 00000000 */ nop +.L7F02D524: +/* 062054 7F02D524 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) +/* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 +/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 +/* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062074 7F02D544 46021080 */ add.s $f2, $f2, $f2 +.L7F02D548: +/* 062078 7F02D548 8FA4006C */ lw $a0, 0x6c($sp) +/* 06207C 7F02D54C 2401000F */ li $at, 15 +/* 062080 7F02D550 8FA20060 */ lw $v0, 0x60($sp) +/* 062084 7F02D554 10810003 */ beq $a0, $at, .L7F02D564 +/* 062088 7F02D558 24010010 */ li $at, 16 +/* 06208C 7F02D55C 54810003 */ bnel $a0, $at, .L7F02D56C +/* 062090 7F02D560 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D564: +/* 062094 7F02D564 46021080 */ add.s $f2, $f2, $f2 +/* 062098 7F02D568 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D56C: +/* 06209C 7F02D56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0620A0 7F02D570 44814000 */ mtc1 $at, $f8 +/* 0620A4 7F02D574 46025100 */ add.s $f4, $f10, $f2 +/* 0620A8 7F02D578 E444013C */ swc1 $f4, 0x13c($v0) +/* 0620AC 7F02D57C C446013C */ lwc1 $f6, 0x13c($v0) +/* 0620B0 7F02D580 4606403E */ c.le.s $f8, $f6 +/* 0620B4 7F02D584 00000000 */ nop +/* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 +/* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C4 7F02D594 00000000 */ nop +/* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod +/* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0620D0 7F02D5A0 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0620D4 7F02D5A4 44815000 */ mtc1 $at, $f10 +/* 0620D8 7F02D5A8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0620DC 7F02D5AC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0620E0 7F02D5B0 C428CE44 */ lwc1 $f8, %lo(ai_damage_modifier)($at) +/* 0620E4 7F02D5B4 46045182 */ mul.s $f6, $f10, $f4 +/* 0620E8 7F02D5B8 8FA9006C */ lw $t1, 0x6c($sp) +/* 0620EC 7F02D5BC 2401000F */ li $at, 15 +/* 0620F0 7F02D5C0 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0620F4 7F02D5C4 2406FFFF */ li $a2, -1 +/* 0620F8 7F02D5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0620FC 7F02D5CC 00000000 */ nop +/* 062100 7F02D5D0 460A0302 */ mul.s $f12, $f0, $f10 +/* 062104 7F02D5D4 11210003 */ beq $t1, $at, .L7F02D5E4 +/* 062108 7F02D5D8 00000000 */ nop +/* 06210C 7F02D5DC 24010010 */ li $at, 16 +/* 062110 7F02D5E0 15210005 */ bne $t1, $at, .L7F02D5F8 +.L7F02D5E4: +/* 062114 7F02D5E4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 062118 7F02D5E8 44812000 */ mtc1 $at, $f4 +/* 06211C 7F02D5EC 00000000 */ nop +/* 062120 7F02D5F0 46046302 */ mul.s $f12, $f12, $f4 +/* 062124 7F02D5F4 00000000 */ nop +.L7F02D5F8: +/* 062128 7F02D5F8 0FC22793 */ jal sub_GAME_7F089E4C +/* 06212C 7F02D5FC 24070001 */ li $a3, 1 +/* 062130 7F02D600 44803000 */ mtc1 $zero, $f6 +/* 062134 7F02D604 8FAA0060 */ lw $t2, 0x60($sp) +/* 062138 7F02D608 0FC227A9 */ jal check_if_bond_is_invincible +/* 06213C 7F02D60C E546013C */ swc1 $f6, 0x13c($t2) +/* 062140 7F02D610 10400003 */ beqz $v0, .L7F02D620 +/* 062144 7F02D614 8FAC0068 */ lw $t4, 0x68($sp) +/* 062148 7F02D618 240B0001 */ li $t3, 1 +/* 06214C 7F02D61C AD8B0000 */ sw $t3, ($t4) +.L7F02D620: +/* 062150 7F02D620 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D624: +/* 062154 7F02D624 27BD0060 */ addiu $sp, $sp, 0x60 +/* 062158 7F02D628 03E00008 */ jr $ra +/* 06215C 7F02D62C 00000000 */ nop +) +#endif +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F02D630(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D630 +/* 062160 7F02D630 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 062164 7F02D634 AFBF001C */ sw $ra, 0x1c($sp) +/* 062168 7F02D638 AFB00018 */ sw $s0, 0x18($sp) +/* 06216C 7F02D63C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 062170 7F02D640 00C08025 */ move $s0, $a2 +/* 062174 7F02D644 10400036 */ beqz $v0, .L7F02D720 +/* 062178 7F02D648 00003025 */ move $a2, $zero +/* 06217C 7F02D64C 904E0001 */ lbu $t6, 1($v0) +/* 062180 7F02D650 8C430004 */ lw $v1, 4($v0) +/* 062184 7F02D654 31CF0002 */ andi $t7, $t6, 2 +/* 062188 7F02D658 11E00031 */ beqz $t7, .L7F02D720 +/* 06218C 7F02D65C 8C640014 */ lw $a0, 0x14($v1) +/* 062190 7F02D660 8C980008 */ lw $t8, 8($a0) +/* 062194 7F02D664 8F020008 */ lw $v0, 8($t8) +/* 062198 7F02D668 8C450000 */ lw $a1, ($v0) +/* 06219C 7F02D66C 50A0001B */ beql $a1, $zero, .L7F02D6DC +/* 0621A0 7F02D670 8C450004 */ lw $a1, 4($v0) +/* 0621A4 7F02D674 00003025 */ move $a2, $zero +/* 0621A8 7F02D678 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0621AC 7F02D67C AFA400BC */ sw $a0, 0xbc($sp) +/* 0621B0 7F02D680 8FA400BC */ lw $a0, 0xbc($sp) +/* 0621B4 7F02D684 AFA200B4 */ sw $v0, 0xb4($sp) +/* 0621B8 7F02D688 8C990008 */ lw $t9, 8($a0) +/* 0621BC 7F02D68C 8F280008 */ lw $t0, 8($t9) +/* 0621C0 7F02D690 8D090000 */ lw $t1, ($t0) +/* 0621C4 7F02D694 8D230004 */ lw $v1, 4($t1) +/* 0621C8 7F02D698 C4640000 */ lwc1 $f4, ($v1) +/* 0621CC 7F02D69C E6040000 */ swc1 $f4, ($s0) +/* 0621D0 7F02D6A0 C4660004 */ lwc1 $f6, 4($v1) +/* 0621D4 7F02D6A4 E6060004 */ swc1 $f6, 4($s0) +/* 0621D8 7F02D6A8 C4680008 */ lwc1 $f8, 8($v1) +/* 0621DC 7F02D6AC 0FC1E111 */ jal sub_GAME_7F078444 +/* 0621E0 7F02D6B0 E6080008 */ swc1 $f8, 8($s0) +/* 0621E4 7F02D6B4 00402025 */ move $a0, $v0 +/* 0621E8 7F02D6B8 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0621EC 7F02D6BC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0621F0 7F02D6C0 27A60074 */ addiu $a2, $sp, 0x74 +/* 0621F4 7F02D6C4 27A40074 */ addiu $a0, $sp, 0x74 +/* 0621F8 7F02D6C8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0621FC 7F02D6CC 02002825 */ move $a1, $s0 +/* 062200 7F02D6D0 10000013 */ b .L7F02D720 +/* 062204 7F02D6D4 24060001 */ li $a2, 1 +/* 062208 7F02D6D8 8C450004 */ lw $a1, 4($v0) +.L7F02D6DC: +/* 06220C 7F02D6DC 50A00011 */ beql $a1, $zero, .L7F02D724 +/* 062210 7F02D6E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 062214 7F02D6E4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 062218 7F02D6E8 00003025 */ move $a2, $zero +/* 06221C 7F02D6EC 0FC1E111 */ jal sub_GAME_7F078444 +/* 062220 7F02D6F0 AFA2006C */ sw $v0, 0x6c($sp) +/* 062224 7F02D6F4 00402025 */ move $a0, $v0 +/* 062228 7F02D6F8 8FA5006C */ lw $a1, 0x6c($sp) +/* 06222C 7F02D6FC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 062230 7F02D700 27A6002C */ addiu $a2, $sp, 0x2c +/* 062234 7F02D704 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 062238 7F02D708 24060001 */ li $a2, 1 +/* 06223C 7F02D70C E60A0000 */ swc1 $f10, ($s0) +/* 062240 7F02D710 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 062244 7F02D714 E6100004 */ swc1 $f16, 4($s0) +/* 062248 7F02D718 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 06224C 7F02D71C E6120008 */ swc1 $f18, 8($s0) +.L7F02D720: +/* 062250 7F02D720 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02D724: +/* 062254 7F02D724 8FB00018 */ lw $s0, 0x18($sp) +/* 062258 7F02D728 27BD00C8 */ addiu $sp, $sp, 0xc8 +/* 06225C 7F02D72C 03E00008 */ jr $ra +/* 062260 7F02D730 00C01025 */ move $v0, $a2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D734(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051F60 +.word 0x481c4000 /*160000.0*/ +glabel D_80051F64 +.word 0x3f8e38e3 /*1.111111*/ +glabel D_80051F68 +.word 0x481c4000 /*160000.0*/ +glabel D_80051F6C +.word 0x42055555 /*33.333332*/ +glabel D_80051F70 +.word 0x3e99999a /*0.30000001*/ +glabel D_80051F74 +.word 0x3e088888 /*0.13333333*/ +glabel D_80051F78 +.word 0x461c4000 /*10000.0*/ +glabel jpt_80051F7C + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile +.text +glabel sub_GAME_7F02D734 +/* 062264 7F02D734 27BDFD78 */ addiu $sp, $sp, -0x288 +/* 062268 7F02D738 AFBF002C */ sw $ra, 0x2c($sp) +/* 06226C 7F02D73C AFA5028C */ sw $a1, 0x28c($sp) +/* 062270 7F02D740 8C8E0018 */ lw $t6, 0x18($a0) +/* 062274 7F02D744 AFA40288 */ sw $a0, 0x288($sp) +/* 062278 7F02D748 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06227C 7F02D74C AFAE0284 */ sw $t6, 0x284($sp) +/* 062280 7F02D750 504002C3 */ beql $v0, $zero, .L7F02E260 +/* 062284 7F02D754 8FBF002C */ lw $ra, 0x2c($sp) +/* 062288 7F02D758 AFA0027C */ sw $zero, 0x27c($sp) +/* 06228C 7F02D75C AFA00278 */ sw $zero, 0x278($sp) +/* 062290 7F02D760 8C4F0004 */ lw $t7, 4($v0) +/* 062294 7F02D764 0FC225E6 */ jal get_curplayer_positiondata +/* 062298 7F02D768 AFAF0274 */ sw $t7, 0x274($sp) +/* 06229C 7F02D76C 8FA50288 */ lw $a1, 0x288($sp) +/* 0622A0 7F02D770 AFA20270 */ sw $v0, 0x270($sp) +/* 0622A4 7F02D774 24010008 */ li $at, 8 +/* 0622A8 7F02D778 80B80007 */ lb $t8, 7($a1) +/* 0622AC 7F02D77C 24030001 */ li $v1, 1 +/* 0622B0 7F02D780 3C0A8005 */ lui $t2, %hi(global_timer) +/* 0622B4 7F02D784 57010003 */ bnel $t8, $at, .L7F02D794 +/* 0622B8 7F02D788 30790001 */ andi $t9, $v1, 1 +/* 0622BC 7F02D78C 8CA3004C */ lw $v1, 0x4c($a1) +/* 0622C0 7F02D790 30790001 */ andi $t9, $v1, 1 +.L7F02D794: +/* 0622C4 7F02D794 1320000C */ beqz $t9, .L7F02D7C8 +/* 0622C8 7F02D798 AFB90044 */ sw $t9, 0x44($sp) +/* 0622CC 7F02D79C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 0622D0 7F02D7A0 8CA900E8 */ lw $t1, 0xe8($a1) +/* 0622D4 7F02D7A4 8FAC0274 */ lw $t4, 0x274($sp) +/* 0622D8 7F02D7A8 254BFF88 */ addiu $t3, $t2, -0x78 +/* 0622DC 7F02D7AC 012B082A */ slt $at, $t1, $t3 +/* 0622E0 7F02D7B0 50200006 */ beql $at, $zero, .L7F02D7CC +/* 0622E4 7F02D7B4 8FAD028C */ lw $t5, 0x28c($sp) +/* 0622E8 7F02D7B8 0FC177F3 */ jal get_automatic_firing_rate +/* 0622EC 7F02D7BC 81840080 */ lb $a0, 0x80($t4) +/* 0622F0 7F02D7C0 044102A2 */ bgez $v0, .L7F02E24C +/* 0622F4 7F02D7C4 8FA50288 */ lw $a1, 0x288($sp) +.L7F02D7C8: +/* 0622F8 7F02D7C8 8FAD028C */ lw $t5, 0x28c($sp) +.L7F02D7CC: +/* 0622FC 7F02D7CC AFA00268 */ sw $zero, 0x268($sp) +/* 062300 7F02D7D0 AFA00264 */ sw $zero, 0x264($sp) +/* 062304 7F02D7D4 00AD1021 */ addu $v0, $a1, $t5 +/* 062308 7F02D7D8 904E0004 */ lbu $t6, 4($v0) +/* 06230C 7F02D7DC 25CF0001 */ addiu $t7, $t6, 1 +/* 062310 7F02D7E0 A04F0004 */ sb $t7, 4($v0) +/* 062314 7F02D7E4 8FB80274 */ lw $t8, 0x274($sp) +/* 062318 7F02D7E8 83040080 */ lb $a0, 0x80($t8) +/* 06231C 7F02D7EC 0FC177F3 */ jal get_automatic_firing_rate +/* 062320 7F02D7F0 AFA20040 */ sw $v0, 0x40($sp) +/* 062324 7F02D7F4 04410006 */ bgez $v0, .L7F02D810 +/* 062328 7F02D7F8 8FAA0274 */ lw $t2, 0x274($sp) +/* 06232C 7F02D7FC 24190001 */ li $t9, 1 +/* 062330 7F02D800 24080001 */ li $t0, 1 +/* 062334 7F02D804 AFB90268 */ sw $t9, 0x268($sp) +/* 062338 7F02D808 10000031 */ b .L7F02D8D0 +/* 06233C 7F02D80C AFA80264 */ sw $t0, 0x264($sp) +.L7F02D810: +/* 062340 7F02D810 0FC177F3 */ jal get_automatic_firing_rate +/* 062344 7F02D814 81440080 */ lb $a0, 0x80($t2) +/* 062348 7F02D818 8FA90040 */ lw $t1, 0x40($sp) +/* 06234C 7F02D81C 240D0001 */ li $t5, 1 +/* 062350 7F02D820 912B0004 */ lbu $t3, 4($t1) +/* 062354 7F02D824 0162001A */ div $zero, $t3, $v0 +/* 062358 7F02D828 00006010 */ mfhi $t4 +/* 06235C 7F02D82C 14400002 */ bnez $v0, .L7F02D838 +/* 062360 7F02D830 00000000 */ nop +/* 062364 7F02D834 0007000D */ break 7 +.L7F02D838: +/* 062368 7F02D838 2401FFFF */ li $at, -1 +/* 06236C 7F02D83C 14410004 */ bne $v0, $at, .L7F02D850 +/* 062370 7F02D840 3C018000 */ lui $at, 0x8000 +/* 062374 7F02D844 15610002 */ bne $t3, $at, .L7F02D850 +/* 062378 7F02D848 00000000 */ nop +/* 06237C 7F02D84C 0006000D */ break 6 +.L7F02D850: +/* 062380 7F02D850 5580001E */ bnezl $t4, .L7F02D8CC +/* 062384 7F02D854 240C0001 */ li $t4, 1 +/* 062388 7F02D858 8FAE0274 */ lw $t6, 0x274($sp) +/* 06238C 7F02D85C AFAD0268 */ sw $t5, 0x268($sp) +/* 062390 7F02D860 0FC177F3 */ jal get_automatic_firing_rate +/* 062394 7F02D864 81C40080 */ lb $a0, 0x80($t6) +/* 062398 7F02D868 8FAF0040 */ lw $t7, 0x40($sp) +/* 06239C 7F02D86C 0002C840 */ sll $t9, $v0, 1 +/* 0623A0 7F02D870 8FAA0274 */ lw $t2, 0x274($sp) +/* 0623A4 7F02D874 91F80004 */ lbu $t8, 4($t7) +/* 0623A8 7F02D878 240B0001 */ li $t3, 1 +/* 0623AC 7F02D87C 0319001A */ div $zero, $t8, $t9 +/* 0623B0 7F02D880 17200002 */ bnez $t9, .L7F02D88C +/* 0623B4 7F02D884 00000000 */ nop +/* 0623B8 7F02D888 0007000D */ break 7 +.L7F02D88C: +/* 0623BC 7F02D88C 2401FFFF */ li $at, -1 +/* 0623C0 7F02D890 17210004 */ bne $t9, $at, .L7F02D8A4 +/* 0623C4 7F02D894 3C018000 */ lui $at, 0x8000 +/* 0623C8 7F02D898 17010002 */ bne $t8, $at, .L7F02D8A4 +/* 0623CC 7F02D89C 00000000 */ nop +/* 0623D0 7F02D8A0 0006000D */ break 6 +.L7F02D8A4: +/* 0623D4 7F02D8A4 00004010 */ mfhi $t0 +/* 0623D8 7F02D8A8 24010016 */ li $at, 22 +/* 0623DC 7F02D8AC 11000004 */ beqz $t0, .L7F02D8C0 +/* 0623E0 7F02D8B0 00000000 */ nop +/* 0623E4 7F02D8B4 81490080 */ lb $t1, 0x80($t2) +/* 0623E8 7F02D8B8 55210006 */ bnel $t1, $at, .L7F02D8D4 +/* 0623EC 7F02D8BC 8FAD0268 */ lw $t5, 0x268($sp) +.L7F02D8C0: +/* 0623F0 7F02D8C0 10000003 */ b .L7F02D8D0 +/* 0623F4 7F02D8C4 AFAB0264 */ sw $t3, 0x264($sp) +/* 0623F8 7F02D8C8 240C0001 */ li $t4, 1 +.L7F02D8CC: +/* 0623FC 7F02D8CC AFAC0278 */ sw $t4, 0x278($sp) +.L7F02D8D0: +/* 062400 7F02D8D0 8FAD0268 */ lw $t5, 0x268($sp) +.L7F02D8D4: +/* 062404 7F02D8D4 51A00254 */ beql $t5, $zero, .L7F02E228 +/* 062408 7F02D8D8 8FA2027C */ lw $v0, 0x27c($sp) +/* 06240C 7F02D8DC AFA00254 */ sw $zero, 0x254($sp) +/* 062410 7F02D8E0 0FC0B064 */ jal sub_GAME_7F02C190 +/* 062414 7F02D8E4 8FA40288 */ lw $a0, 0x288($sp) +/* 062418 7F02D8E8 E7A00250 */ swc1 $f0, 0x250($sp) +/* 06241C 7F02D8EC 0FC0B09F */ jal sub_GAME_7F02C27C +/* 062420 7F02D8F0 8FA40288 */ lw $a0, 0x288($sp) +/* 062424 7F02D8F4 8FAE0284 */ lw $t6, 0x284($sp) +/* 062428 7F02D8F8 E7A0024C */ swc1 $f0, 0x24c($sp) +/* 06242C 7F02D8FC 24180001 */ li $t8, 1 +/* 062430 7F02D900 8DCF0014 */ lw $t7, 0x14($t6) +/* 062434 7F02D904 AFB8027C */ sw $t8, 0x27c($sp) +/* 062438 7F02D908 8FA40288 */ lw $a0, 0x288($sp) +/* 06243C 7F02D90C 8FA5028C */ lw $a1, 0x28c($sp) +/* 062440 7F02D910 27A60240 */ addiu $a2, $sp, 0x240 +/* 062444 7F02D914 0FC0B58C */ jal sub_GAME_7F02D630 +/* 062448 7F02D918 AFAF023C */ sw $t7, 0x23c($sp) +/* 06244C 7F02D91C 54400032 */ bnezl $v0, .L7F02D9E8 +/* 062450 7F02D920 8FA80284 */ lw $t0, 0x284($sp) +/* 062454 7F02D924 8FA20284 */ lw $v0, 0x284($sp) +/* 062458 7F02D928 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 06245C 7F02D92C 44814000 */ mtc1 $at, $f8 +/* 062460 7F02D930 C4440008 */ lwc1 $f4, 8($v0) +/* 062464 7F02D934 8FB9028C */ lw $t9, 0x28c($sp) +/* 062468 7F02D938 24010001 */ li $at, 1 +/* 06246C 7F02D93C E7A40240 */ swc1 $f4, 0x240($sp) +/* 062470 7F02D940 C446000C */ lwc1 $f6, 0xc($v0) +/* 062474 7F02D944 46083280 */ add.s $f10, $f6, $f8 +/* 062478 7F02D948 E7AA0244 */ swc1 $f10, 0x244($sp) +/* 06247C 7F02D94C C4440010 */ lwc1 $f4, 0x10($v0) +/* 062480 7F02D950 17210013 */ bne $t9, $at, .L7F02D9A0 +/* 062484 7F02D954 E7A40248 */ swc1 $f4, 0x248($sp) +/* 062488 7F02D958 0FC15FA8 */ jal cosf +/* 06248C 7F02D95C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 062490 7F02D960 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 062494 7F02D964 44814000 */ mtc1 $at, $f8 +/* 062498 7F02D968 C7A60240 */ lwc1 $f6, 0x240($sp) +/* 06249C 7F02D96C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624A0 7F02D970 46080282 */ mul.s $f10, $f0, $f8 +/* 0624A4 7F02D974 460A3100 */ add.s $f4, $f6, $f10 +/* 0624A8 7F02D978 0FC15FAB */ jal sinf +/* 0624AC 7F02D97C E7A40240 */ swc1 $f4, 0x240($sp) +/* 0624B0 7F02D980 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0624B4 7F02D984 44813000 */ mtc1 $at, $f6 +/* 0624B8 7F02D988 46000207 */ neg.s $f8, $f0 +/* 0624BC 7F02D98C C7A40248 */ lwc1 $f4, 0x248($sp) +/* 0624C0 7F02D990 46064282 */ mul.s $f10, $f8, $f6 +/* 0624C4 7F02D994 460A2200 */ add.s $f8, $f4, $f10 +/* 0624C8 7F02D998 10000012 */ b .L7F02D9E4 +/* 0624CC 7F02D99C E7A80248 */ swc1 $f8, 0x248($sp) +.L7F02D9A0: +/* 0624D0 7F02D9A0 0FC15FA8 */ jal cosf +/* 0624D4 7F02D9A4 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624D8 7F02D9A8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0624DC 7F02D9AC 44812000 */ mtc1 $at, $f4 +/* 0624E0 7F02D9B0 46000187 */ neg.s $f6, $f0 +/* 0624E4 7F02D9B4 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 0624E8 7F02D9B8 46043282 */ mul.s $f10, $f6, $f4 +/* 0624EC 7F02D9BC C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624F0 7F02D9C0 460A4180 */ add.s $f6, $f8, $f10 +/* 0624F4 7F02D9C4 0FC15FAB */ jal sinf +/* 0624F8 7F02D9C8 E7A60240 */ swc1 $f6, 0x240($sp) +/* 0624FC 7F02D9CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 062500 7F02D9D0 44814000 */ mtc1 $at, $f8 +/* 062504 7F02D9D4 C7A40248 */ lwc1 $f4, 0x248($sp) +/* 062508 7F02D9D8 46080282 */ mul.s $f10, $f0, $f8 +/* 06250C 7F02D9DC 460A2180 */ add.s $f6, $f4, $f10 +/* 062510 7F02D9E0 E7A60248 */ swc1 $f6, 0x248($sp) +.L7F02D9E4: +/* 062514 7F02D9E4 8FA80284 */ lw $t0, 0x284($sp) +.L7F02D9E8: +/* 062518 7F02D9E8 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 06251C 7F02D9EC 8FA90288 */ lw $t1, 0x288($sp) +/* 062520 7F02D9F0 8D050008 */ lw $a1, 8($t0) +/* 062524 7F02D9F4 8D060010 */ lw $a2, 0x10($t0) +/* 062528 7F02D9F8 240A0002 */ li $t2, 2 +/* 06252C 7F02D9FC AFAA0014 */ sw $t2, 0x14($sp) +/* 062530 7F02DA00 E7A80010 */ swc1 $f8, 0x10($sp) +/* 062534 7F02DA04 C7A40244 */ lwc1 $f4, 0x244($sp) +/* 062538 7F02DA08 C52A00AC */ lwc1 $f10, 0xac($t1) +/* 06253C 7F02DA0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 062540 7F02DA10 44814000 */ mtc1 $at, $f8 +/* 062544 7F02DA14 460A2001 */ sub.s $f0, $f4, $f10 +/* 062548 7F02DA18 44803000 */ mtc1 $zero, $f6 +/* 06254C 7F02DA1C 27A4023C */ addiu $a0, $sp, 0x23c +/* 062550 7F02DA20 8FA70240 */ lw $a3, 0x240($sp) +/* 062554 7F02DA24 E7A00018 */ swc1 $f0, 0x18($sp) +/* 062558 7F02DA28 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 06255C 7F02DA2C E7A80024 */ swc1 $f8, 0x24($sp) +/* 062560 7F02DA30 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 062564 7F02DA34 E7A60020 */ swc1 $f6, 0x20($sp) +/* 062568 7F02DA38 10400003 */ beqz $v0, .L7F02DA48 +/* 06256C 7F02DA3C 8FAB023C */ lw $t3, 0x23c($sp) +/* 062570 7F02DA40 10000006 */ b .L7F02DA5C +/* 062574 7F02DA44 AFAB0238 */ sw $t3, 0x238($sp) +.L7F02DA48: +/* 062578 7F02DA48 8FA20040 */ lw $v0, 0x40($sp) +/* 06257C 7F02DA4C 904C0004 */ lbu $t4, 4($v0) +/* 062580 7F02DA50 258DFFFF */ addiu $t5, $t4, -1 +/* 062584 7F02DA54 A04D0004 */ sb $t5, 4($v0) +/* 062588 7F02DA58 AFA0027C */ sw $zero, 0x27c($sp) +.L7F02DA5C: +/* 06258C 7F02DA5C 8FAE027C */ lw $t6, 0x27c($sp) +/* 062590 7F02DA60 240F0001 */ li $t7, 1 +/* 062594 7F02DA64 27A50240 */ addiu $a1, $sp, 0x240 +/* 062598 7F02DA68 51C001EF */ beql $t6, $zero, .L7F02E228 +/* 06259C 7F02DA6C 8FA2027C */ lw $v0, 0x27c($sp) +/* 0625A0 7F02DA70 AFA00234 */ sw $zero, 0x234($sp) +/* 0625A4 7F02DA74 AFA00230 */ sw $zero, 0x230($sp) +/* 0625A8 7F02DA78 AFAF022C */ sw $t7, 0x22c($sp) +/* 0625AC 7F02DA7C 8FA40288 */ lw $a0, 0x288($sp) +/* 0625B0 7F02DA80 0FC0A4AA */ jal sub_GAME_7F0292A8 +/* 0625B4 7F02DA84 8FA60238 */ lw $a2, 0x238($sp) +/* 0625B8 7F02DA88 AFA2021C */ sw $v0, 0x21c($sp) +/* 0625BC 7F02DA8C 0FC15FA8 */ jal cosf +/* 0625C0 7F02DA90 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625C4 7F02DA94 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0625C8 7F02DA98 0FC15FAB */ jal sinf +/* 0625CC 7F02DA9C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0625D0 7F02DAA0 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0625D4 7F02DAA4 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625D8 7F02DAA8 46040282 */ mul.s $f10, $f0, $f4 +/* 0625DC 7F02DAAC 0FC15FAB */ jal sinf +/* 0625E0 7F02DAB0 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0625E4 7F02DAB4 E7A00224 */ swc1 $f0, 0x224($sp) +/* 0625E8 7F02DAB8 0FC15FA8 */ jal cosf +/* 0625EC 7F02DABC C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625F0 7F02DAC0 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0625F4 7F02DAC4 0FC15FA8 */ jal cosf +/* 0625F8 7F02DAC8 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0625FC 7F02DACC C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 062600 7F02DAD0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 062604 7F02DAD4 44811000 */ mtc1 $at, $f2 +/* 062608 7F02DAD8 46060482 */ mul.s $f18, $f0, $f6 +/* 06260C 7F02DADC C7A80220 */ lwc1 $f8, 0x220($sp) +/* 062610 7F02DAE0 C7AA0240 */ lwc1 $f10, 0x240($sp) +/* 062614 7F02DAE4 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 062618 7F02DAE8 46024102 */ mul.s $f4, $f8, $f2 +/* 06261C 7F02DAEC C7A80224 */ lwc1 $f8, 0x224($sp) +/* 062620 7F02DAF0 8FA40288 */ lw $a0, 0x288($sp) +/* 062624 7F02DAF4 E7B20228 */ swc1 $f18, 0x228($sp) +/* 062628 7F02DAF8 00002825 */ move $a1, $zero +/* 06262C 7F02DAFC 460A2180 */ add.s $f6, $f4, $f10 +/* 062630 7F02DB00 46024102 */ mul.s $f4, $f8, $f2 +/* 062634 7F02DB04 00000000 */ nop +/* 062638 7F02DB08 46029282 */ mul.s $f10, $f18, $f2 +/* 06263C 7F02DB0C E7A60258 */ swc1 $f6, 0x258($sp) +/* 062640 7F02DB10 C7A60248 */ lwc1 $f6, 0x248($sp) +/* 062644 7F02DB14 460C2380 */ add.s $f14, $f4, $f12 +/* 062648 7F02DB18 46065200 */ add.s $f8, $f10, $f6 +/* 06264C 7F02DB1C E7AE025C */ swc1 $f14, 0x25c($sp) +/* 062650 7F02DB20 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 062654 7F02DB24 E7A80260 */ swc1 $f8, 0x260($sp) +/* 062658 7F02DB28 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 06265C 7F02DB2C 00000000 */ nop +/* 062660 7F02DB30 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 062664 7F02DB34 C7AE025C */ lwc1 $f14, 0x25c($sp) +/* 062668 7F02DB38 8FB80238 */ lw $t8, 0x238($sp) +/* 06266C 7F02DB3C C7A40260 */ lwc1 $f4, 0x260($sp) +/* 062670 7F02DB40 2419001B */ li $t9, 27 +/* 062674 7F02DB44 AFB90014 */ sw $t9, 0x14($sp) +/* 062678 7F02DB48 27A4023C */ addiu $a0, $sp, 0x23c +/* 06267C 7F02DB4C 8FA50240 */ lw $a1, 0x240($sp) +/* 062680 7F02DB50 8FA60248 */ lw $a2, 0x248($sp) +/* 062684 7F02DB54 8FA70258 */ lw $a3, 0x258($sp) +/* 062688 7F02DB58 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 06268C 7F02DB5C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 062690 7F02DB60 E7AE0020 */ swc1 $f14, 0x20($sp) +/* 062694 7F02DB64 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 062698 7F02DB68 AFB8023C */ sw $t8, 0x23c($sp) +/* 06269C 7F02DB6C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0626A0 7F02DB70 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0626A4 7F02DB74 14400017 */ bnez $v0, .L7F02DBD4 +/* 0626A8 7F02DB78 27A40240 */ addiu $a0, $sp, 0x240 +/* 0626AC 7F02DB7C 27A50220 */ addiu $a1, $sp, 0x220 +/* 0626B0 7F02DB80 0FC09893 */ jal sub_GAME_7F02624C +/* 0626B4 7F02DB84 27A60258 */ addiu $a2, $sp, 0x258 +/* 0626B8 7F02DB88 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0626BC 7F02DB8C 44810000 */ mtc1 $at, $f0 +/* 0626C0 7F02DB90 C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0626C4 7F02DB94 C7AA0258 */ lwc1 $f10, 0x258($sp) +/* 0626C8 7F02DB98 C7B20228 */ lwc1 $f18, 0x228($sp) +/* 0626CC 7F02DB9C 46060202 */ mul.s $f8, $f0, $f6 +/* 0626D0 7F02DBA0 C7A60224 */ lwc1 $f6, 0x224($sp) +/* 0626D4 7F02DBA4 C7AE025C */ lwc1 $f14, 0x25c($sp) +/* 0626D8 7F02DBA8 8FA8023C */ lw $t0, 0x23c($sp) +/* 0626DC 7F02DBAC AFA80254 */ sw $t0, 0x254($sp) +/* 0626E0 7F02DBB0 46085101 */ sub.s $f4, $f10, $f8 +/* 0626E4 7F02DBB4 46060282 */ mul.s $f10, $f0, $f6 +/* 0626E8 7F02DBB8 C7A80260 */ lwc1 $f8, 0x260($sp) +/* 0626EC 7F02DBBC E7A40258 */ swc1 $f4, 0x258($sp) +/* 0626F0 7F02DBC0 46120102 */ mul.s $f4, $f0, $f18 +/* 0626F4 7F02DBC4 460A7381 */ sub.s $f14, $f14, $f10 +/* 0626F8 7F02DBC8 46044181 */ sub.s $f6, $f8, $f4 +/* 0626FC 7F02DBCC E7AE025C */ swc1 $f14, 0x25c($sp) +/* 062700 7F02DBD0 E7A60260 */ swc1 $f6, 0x260($sp) +.L7F02DBD4: +/* 062704 7F02DBD4 8FA40288 */ lw $a0, 0x288($sp) +/* 062708 7F02DBD8 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 06270C 7F02DBDC 24050001 */ li $a1, 1 +/* 062710 7F02DBE0 C7AA0258 */ lwc1 $f10, 0x258($sp) +/* 062714 7F02DBE4 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 062718 7F02DBE8 C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 06271C 7F02DBEC C7A60244 */ lwc1 $f6, 0x244($sp) +/* 062720 7F02DBF0 46085081 */ sub.s $f2, $f10, $f8 +/* 062724 7F02DBF4 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 062728 7F02DBF8 C7AA0260 */ lwc1 $f10, 0x260($sp) +/* 06272C 7F02DBFC 46062381 */ sub.s $f14, $f4, $f6 +/* 062730 7F02DC00 46021102 */ mul.s $f4, $f2, $f2 +/* 062734 7F02DC04 8FAA0274 */ lw $t2, 0x274($sp) +/* 062738 7F02DC08 46085481 */ sub.s $f18, $f10, $f8 +/* 06273C 7F02DC0C 460E7182 */ mul.s $f6, $f14, $f14 +/* 062740 7F02DC10 24010019 */ li $at, 25 +/* 062744 7F02DC14 46129202 */ mul.s $f8, $f18, $f18 +/* 062748 7F02DC18 46062280 */ add.s $f10, $f4, $f6 +/* 06274C 7F02DC1C 46085100 */ add.s $f4, $f10, $f8 +/* 062750 7F02DC20 E7A4020C */ swc1 $f4, 0x20c($sp) +/* 062754 7F02DC24 81470080 */ lb $a3, 0x80($t2) +/* 062758 7F02DC28 54E1006F */ bnel $a3, $at, .L7F02DDE8 +/* 06275C 7F02DC2C 24010018 */ li $at, 24 +/* 062760 7F02DC30 46021282 */ mul.s $f10, $f2, $f2 +/* 062764 7F02DC34 3C018005 */ lui $at, %hi(D_80051F60) +/* 062768 7F02DC38 C4261F60 */ lwc1 $f6, %lo(D_80051F60)($at) +/* 06276C 7F02DC3C 460E7202 */ mul.s $f8, $f14, $f14 +/* 062770 7F02DC40 240400CA */ li $a0, 202 +/* 062774 7F02DC44 46085100 */ add.s $f4, $f10, $f8 +/* 062778 7F02DC48 46129282 */ mul.s $f10, $f18, $f18 +/* 06277C 7F02DC4C 460A2200 */ add.s $f8, $f4, $f10 +/* 062780 7F02DC50 4608303C */ c.lt.s $f6, $f8 +/* 062784 7F02DC54 00000000 */ nop +/* 062788 7F02DC58 45000060 */ bc1f .L7F02DDDC +/* 06278C 7F02DC5C 00000000 */ nop +/* 062790 7F02DC60 0FC1481B */ jal create_new_item_instance_of_model +/* 062794 7F02DC64 24050056 */ li $a1, 86 +/* 062798 7F02DC68 1040016E */ beqz $v0, .L7F02E224 +/* 06279C 7F02DC6C AFA20208 */ sw $v0, 0x208($sp) +/* 0627A0 7F02DC70 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0627A4 7F02DC74 27A401C8 */ addiu $a0, $sp, 0x1c8 +/* 0627A8 7F02DC78 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0627AC 7F02DC7C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0627B0 7F02DC80 27A5016C */ addiu $a1, $sp, 0x16c +/* 0627B4 7F02DC84 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0627B8 7F02DC88 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0627BC 7F02DC8C 27A5012C */ addiu $a1, $sp, 0x12c +/* 0627C0 7F02DC90 27A4012C */ addiu $a0, $sp, 0x12c +/* 0627C4 7F02DC94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0627C8 7F02DC98 27A5016C */ addiu $a1, $sp, 0x16c +/* 0627CC 7F02DC9C 3C018005 */ lui $at, %hi(D_80051F64) +/* 0627D0 7F02DCA0 C4221F64 */ lwc1 $f2, %lo(D_80051F64)($at) +/* 0627D4 7F02DCA4 C7A40220 */ lwc1 $f4, 0x220($sp) +/* 0627D8 7F02DCA8 C7AA0224 */ lwc1 $f10, 0x224($sp) +/* 0627DC 7F02DCAC C7B20228 */ lwc1 $f18, 0x228($sp) +/* 0627E0 7F02DCB0 46022302 */ mul.s $f12, $f4, $f2 +/* 0627E4 7F02DCB4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0627E8 7F02DCB8 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0627EC 7F02DCBC 46025382 */ mul.s $f14, $f10, $f2 +/* 0627F0 7F02DCC0 8FAC0284 */ lw $t4, 0x284($sp) +/* 0627F4 7F02DCC4 27A901BC */ addiu $t1, $sp, 0x1bc +/* 0627F8 7F02DCC8 46029402 */ mul.s $f16, $f18, $f2 +/* 0627FC 7F02DCCC 27AB01C8 */ addiu $t3, $sp, 0x1c8 +/* 062800 7F02DCD0 AFAB0014 */ sw $t3, 0x14($sp) +/* 062804 7F02DCD4 46006182 */ mul.s $f6, $f12, $f0 +/* 062808 7F02DCD8 AFA90010 */ sw $t1, 0x10($sp) +/* 06280C 7F02DCDC E7AE01B0 */ swc1 $f14, 0x1b0($sp) +/* 062810 7F02DCE0 46007202 */ mul.s $f8, $f14, $f0 +/* 062814 7F02DCE4 E7B001B4 */ swc1 $f16, 0x1b4($sp) +/* 062818 7F02DCE8 E7AC01AC */ swc1 $f12, 0x1ac($sp) +/* 06281C 7F02DCEC 46008102 */ mul.s $f4, $f16, $f0 +/* 062820 7F02DCF0 E7A601BC */ swc1 $f6, 0x1bc($sp) +/* 062824 7F02DCF4 8FA40208 */ lw $a0, 0x208($sp) +/* 062828 7F02DCF8 27A50240 */ addiu $a1, $sp, 0x240 +/* 06282C 7F02DCFC E7A801C0 */ swc1 $f8, 0x1c0($sp) +/* 062830 7F02DD00 8FA60238 */ lw $a2, 0x238($sp) +/* 062834 7F02DD04 27A7016C */ addiu $a3, $sp, 0x16c +/* 062838 7F02DD08 E7A401C4 */ swc1 $f4, 0x1c4($sp) +/* 06283C 7F02DD0C 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 062840 7F02DD10 AFAC0018 */ sw $t4, 0x18($sp) +/* 062844 7F02DD14 8FA30208 */ lw $v1, 0x208($sp) +/* 062848 7F02DD18 8C6D0064 */ lw $t5, 0x64($v1) +/* 06284C 7F02DD1C 31AE0080 */ andi $t6, $t5, 0x80 +/* 062850 7F02DD20 51C00141 */ beql $t6, $zero, .L7F02E228 +/* 062854 7F02DD24 8FA2027C */ lw $v0, 0x27c($sp) +/* 062858 7F02DD28 8C62006C */ lw $v0, 0x6c($v1) +/* 06285C 7F02DD2C 2419FFFF */ li $t9, -1 +/* 062860 7F02DD30 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 062864 7F02DD34 8C4F0000 */ lw $t7, ($v0) +/* 062868 7F02DD38 24050001 */ li $a1, 1 +/* 06286C 7F02DD3C 35F80080 */ ori $t8, $t7, 0x80 +/* 062870 7F02DD40 AC580000 */ sw $t8, ($v0) +/* 062874 7F02DD44 8C62006C */ lw $v0, 0x6c($v1) +/* 062878 7F02DD48 A4790082 */ sh $t9, 0x82($v1) +/* 06287C 7F02DD4C 8C480000 */ lw $t0, ($v0) +/* 062880 7F02DD50 350A0020 */ ori $t2, $t0, 0x20 +/* 062884 7F02DD54 AC4A0000 */ sw $t2, ($v0) +/* 062888 7F02DD58 8C69006C */ lw $t1, 0x6c($v1) +/* 06288C 7F02DD5C C46A005C */ lwc1 $f10, 0x5c($v1) +/* 062890 7F02DD60 E52A00B0 */ swc1 $f10, 0xb0($t1) +/* 062894 7F02DD64 8C62006C */ lw $v0, 0x6c($v1) +/* 062898 7F02DD68 C4460008 */ lwc1 $f6, 8($v0) +/* 06289C 7F02DD6C E44600B4 */ swc1 $f6, 0xb4($v0) +/* 0628A0 7F02DD70 8C6B006C */ lw $t3, 0x6c($v1) +/* 0628A4 7F02DD74 C7A801AC */ lwc1 $f8, 0x1ac($sp) +/* 0628A8 7F02DD78 E5680010 */ swc1 $f8, 0x10($t3) +/* 0628AC 7F02DD7C 8C6C006C */ lw $t4, 0x6c($v1) +/* 0628B0 7F02DD80 C7A401B0 */ lwc1 $f4, 0x1b0($sp) +/* 0628B4 7F02DD84 E5840014 */ swc1 $f4, 0x14($t4) +/* 0628B8 7F02DD88 8C6D006C */ lw $t5, 0x6c($v1) +/* 0628BC 7F02DD8C C7AA01B4 */ lwc1 $f10, 0x1b4($sp) +/* 0628C0 7F02DD90 E5AA0018 */ swc1 $f10, 0x18($t5) +/* 0628C4 7F02DD94 8C62006C */ lw $v0, 0x6c($v1) +/* 0628C8 7F02DD98 8C4E0098 */ lw $t6, 0x98($v0) +/* 0628CC 7F02DD9C 24460098 */ addiu $a2, $v0, 0x98 +/* 0628D0 7F02DDA0 55C00006 */ bnezl $t6, .L7F02DDBC +/* 0628D4 7F02DDA4 8C4F009C */ lw $t7, 0x9c($v0) +/* 0628D8 7F02DDA8 0C002382 */ jal play_sfx_a1 +/* 0628DC 7F02DDAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0628E0 7F02DDB0 1000011D */ b .L7F02E228 +/* 0628E4 7F02DDB4 8FA2027C */ lw $v0, 0x27c($sp) +/* 0628E8 7F02DDB8 8C4F009C */ lw $t7, 0x9c($v0) +.L7F02DDBC: +/* 0628EC 7F02DDBC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0628F0 7F02DDC0 24050001 */ li $a1, 1 +/* 0628F4 7F02DDC4 15E00117 */ bnez $t7, .L7F02E224 +/* 0628F8 7F02DDC8 2446009C */ addiu $a2, $v0, 0x9c +/* 0628FC 7F02DDCC 0C002382 */ jal play_sfx_a1 +/* 062900 7F02DDD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 062904 7F02DDD4 10000114 */ b .L7F02E228 +/* 062908 7F02DDD8 8FA2027C */ lw $v0, 0x27c($sp) +.L7F02DDDC: +/* 06290C 7F02DDDC 10000111 */ b .L7F02E224 +/* 062910 7F02DDE0 AFA0027C */ sw $zero, 0x27c($sp) +/* 062914 7F02DDE4 24010018 */ li $at, 24 +.L7F02DDE8: +/* 062918 7F02DDE8 14E10048 */ bne $a3, $at, .L7F02DF0C +/* 06291C 7F02DDEC 8FB80044 */ lw $t8, 0x44($sp) +/* 062920 7F02DDF0 46021202 */ mul.s $f8, $f2, $f2 +/* 062924 7F02DDF4 3C018005 */ lui $at, %hi(D_80051F68) +/* 062928 7F02DDF8 C4261F68 */ lwc1 $f6, %lo(D_80051F68)($at) +/* 06292C 7F02DDFC 460E7102 */ mul.s $f4, $f14, $f14 +/* 062930 7F02DE00 240400CB */ li $a0, 203 +/* 062934 7F02DE04 46044280 */ add.s $f10, $f8, $f4 +/* 062938 7F02DE08 46129202 */ mul.s $f8, $f18, $f18 +/* 06293C 7F02DE0C 46085100 */ add.s $f4, $f10, $f8 +/* 062940 7F02DE10 4604303C */ c.lt.s $f6, $f4 +/* 062944 7F02DE14 00000000 */ nop +/* 062948 7F02DE18 4500003A */ bc1f .L7F02DF04 +/* 06294C 7F02DE1C 00000000 */ nop +/* 062950 7F02DE20 0FC1481B */ jal create_new_item_instance_of_model +/* 062954 7F02DE24 24050057 */ li $a1, 87 +/* 062958 7F02DE28 104000FE */ beqz $v0, .L7F02E224 +/* 06295C 7F02DE2C AFA20128 */ sw $v0, 0x128($sp) +/* 062960 7F02DE30 0FC15FF4 */ jal matrix_4x4_set_identity +/* 062964 7F02DE34 27A400E8 */ addiu $a0, $sp, 0xe8 +/* 062968 7F02DE38 3C018005 */ lui $at, %hi(D_80051F6C) +/* 06296C 7F02DE3C C4201F6C */ lwc1 $f0, %lo(D_80051F6C)($at) +/* 062970 7F02DE40 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 062974 7F02DE44 C7A60224 */ lwc1 $f6, 0x224($sp) +/* 062978 7F02DE48 C7B20228 */ lwc1 $f18, 0x228($sp) +/* 06297C 7F02DE4C 46005202 */ mul.s $f8, $f10, $f0 +/* 062980 7F02DE50 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 062984 7F02DE54 27A5009C */ addiu $a1, $sp, 0x9c +/* 062988 7F02DE58 46003102 */ mul.s $f4, $f6, $f0 +/* 06298C 7F02DE5C 00000000 */ nop +/* 062990 7F02DE60 46009282 */ mul.s $f10, $f18, $f0 +/* 062994 7F02DE64 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 062998 7F02DE68 E7A400E0 */ swc1 $f4, 0xe0($sp) +/* 06299C 7F02DE6C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0629A0 7F02DE70 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0629A4 7F02DE74 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0629A8 7F02DE78 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0629AC 7F02DE7C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0629B0 7F02DE80 27A4005C */ addiu $a0, $sp, 0x5c +/* 0629B4 7F02DE84 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0629B8 7F02DE88 27A5009C */ addiu $a1, $sp, 0x9c +/* 0629BC 7F02DE8C 8FA40128 */ lw $a0, 0x128($sp) +/* 0629C0 7F02DE90 241800B4 */ li $t8, 180 +/* 0629C4 7F02DE94 27B900DC */ addiu $t9, $sp, 0xdc +/* 0629C8 7F02DE98 A4980082 */ sh $t8, 0x82($a0) +/* 0629CC 7F02DE9C 8FAA0284 */ lw $t2, 0x284($sp) +/* 0629D0 7F02DEA0 27A800E8 */ addiu $t0, $sp, 0xe8 +/* 0629D4 7F02DEA4 AFA80014 */ sw $t0, 0x14($sp) +/* 0629D8 7F02DEA8 AFB90010 */ sw $t9, 0x10($sp) +/* 0629DC 7F02DEAC 8FA60238 */ lw $a2, 0x238($sp) +/* 0629E0 7F02DEB0 27A50240 */ addiu $a1, $sp, 0x240 +/* 0629E4 7F02DEB4 27A7009C */ addiu $a3, $sp, 0x9c +/* 0629E8 7F02DEB8 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 0629EC 7F02DEBC AFAA0018 */ sw $t2, 0x18($sp) +/* 0629F0 7F02DEC0 8FA20128 */ lw $v0, 0x128($sp) +/* 0629F4 7F02DEC4 3C018005 */ lui $at, %hi(D_80051F70) +/* 0629F8 7F02DEC8 8C490064 */ lw $t1, 0x64($v0) +/* 0629FC 7F02DECC 312B0080 */ andi $t3, $t1, 0x80 +/* 062A00 7F02DED0 516000D5 */ beql $t3, $zero, .L7F02E228 +/* 062A04 7F02DED4 8FA2027C */ lw $v0, 0x27c($sp) +/* 062A08 7F02DED8 C4281F70 */ lwc1 $f8, %lo(D_80051F70)($at) +/* 062A0C 7F02DEDC 8C4C006C */ lw $t4, 0x6c($v0) +/* 062A10 7F02DEE0 3C018005 */ lui $at, %hi(D_80051F74) +/* 062A14 7F02DEE4 240E003C */ li $t6, 60 +/* 062A18 7F02DEE8 E588008C */ swc1 $f8, 0x8c($t4) +/* 062A1C 7F02DEEC 8C4D006C */ lw $t5, 0x6c($v0) +/* 062A20 7F02DEF0 C4261F74 */ lwc1 $f6, %lo(D_80051F74)($at) +/* 062A24 7F02DEF4 E5A60094 */ swc1 $f6, 0x94($t5) +/* 062A28 7F02DEF8 8C4F006C */ lw $t7, 0x6c($v0) +/* 062A2C 7F02DEFC 100000C9 */ b .L7F02E224 +/* 062A30 7F02DF00 ADEE00BC */ sw $t6, 0xbc($t7) +.L7F02DF04: +/* 062A34 7F02DF04 100000C7 */ b .L7F02E224 +/* 062A38 7F02DF08 AFA0027C */ sw $zero, 0x27c($sp) +.L7F02DF0C: +/* 062A3C 7F02DF0C 13000036 */ beqz $t8, .L7F02DFE8 +/* 062A40 7F02DF10 8FB9021C */ lw $t9, 0x21c($sp) +/* 062A44 7F02DF14 13200034 */ beqz $t9, .L7F02DFE8 +/* 062A48 7F02DF18 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 062A4C 7F02DF1C 8FA80270 */ lw $t0, 0x270($sp) +/* 062A50 7F02DF20 C7AA0240 */ lwc1 $f10, 0x240($sp) +/* 062A54 7F02DF24 44811000 */ mtc1 $at, $f2 +/* 062A58 7F02DF28 C5040008 */ lwc1 $f4, 8($t0) +/* 062A5C 7F02DF2C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 062A60 7F02DF30 8FA40288 */ lw $a0, 0x288($sp) +/* 062A64 7F02DF34 460A2201 */ sub.s $f8, $f4, $f10 +/* 062A68 7F02DF38 46023102 */ mul.s $f4, $f6, $f2 +/* 062A6C 7F02DF3C C7A60244 */ lwc1 $f6, 0x244($sp) +/* 062A70 7F02DF40 C50A000C */ lwc1 $f10, 0xc($t0) +/* 062A74 7F02DF44 27A50234 */ addiu $a1, $sp, 0x234 +/* 062A78 7F02DF48 46044001 */ sub.s $f0, $f8, $f4 +/* 062A7C 7F02DF4C C7A40224 */ lwc1 $f4, 0x224($sp) +/* 062A80 7F02DF50 46065201 */ sub.s $f8, $f10, $f6 +/* 062A84 7F02DF54 46022282 */ mul.s $f10, $f4, $f2 +/* 062A88 7F02DF58 C7A40248 */ lwc1 $f4, 0x248($sp) +/* 062A8C 7F02DF5C C5060010 */ lwc1 $f6, 0x10($t0) +/* 062A90 7F02DF60 460A4301 */ sub.s $f12, $f8, $f10 +/* 062A94 7F02DF64 C7AA0228 */ lwc1 $f10, 0x228($sp) +/* 062A98 7F02DF68 46043201 */ sub.s $f8, $f6, $f4 +/* 062A9C 7F02DF6C 46025182 */ mul.s $f6, $f10, $f2 +/* 062AA0 7F02DF70 C7A4020C */ lwc1 $f4, 0x20c($sp) +/* 062AA4 7F02DF74 46000282 */ mul.s $f10, $f0, $f0 +/* 062AA8 7F02DF78 46064401 */ sub.s $f16, $f8, $f6 +/* 062AAC 7F02DF7C 460C6202 */ mul.s $f8, $f12, $f12 +/* 062AB0 7F02DF80 46085180 */ add.s $f6, $f10, $f8 +/* 062AB4 7F02DF84 46108282 */ mul.s $f10, $f16, $f16 +/* 062AB8 7F02DF88 460A3200 */ add.s $f8, $f6, $f10 +/* 062ABC 7F02DF8C 4604403E */ c.le.s $f8, $f4 +/* 062AC0 7F02DF90 00000000 */ nop +/* 062AC4 7F02DF94 45020020 */ bc1fl .L7F02E018 +/* 062AC8 7F02DF98 8FA80230 */ lw $t0, 0x230($sp) +/* 062ACC 7F02DF9C 0FC0B4B9 */ jal sub_GAME_7F02D2E4 +/* 062AD0 7F02DFA0 27A60230 */ addiu $a2, $sp, 0x230 +/* 062AD4 7F02DFA4 8FAA0230 */ lw $t2, 0x230($sp) +/* 062AD8 7F02DFA8 8FAB0234 */ lw $t3, 0x234($sp) +/* 062ADC 7F02DFAC 8FAC0288 */ lw $t4, 0x288($sp) +/* 062AE0 7F02DFB0 2D490001 */ sltiu $t1, $t2, 1 +/* 062AE4 7F02DFB4 11600017 */ beqz $t3, .L7F02E014 +/* 062AE8 7F02DFB8 AFA9022C */ sw $t1, 0x22c($sp) +/* 062AEC 7F02DFBC 81820007 */ lb $v0, 7($t4) +/* 062AF0 7F02DFC0 24010008 */ li $at, 8 +/* 062AF4 7F02DFC4 3C0D8005 */ lui $t5, %hi(global_timer) +/* 062AF8 7F02DFC8 10410004 */ beq $v0, $at, .L7F02DFDC +/* 062AFC 7F02DFCC 8FAE0288 */ lw $t6, 0x288($sp) +/* 062B00 7F02DFD0 2401000A */ li $at, 10 +/* 062B04 7F02DFD4 54410010 */ bnel $v0, $at, .L7F02E018 +/* 062B08 7F02DFD8 8FA80230 */ lw $t0, 0x230($sp) +.L7F02DFDC: +/* 062B0C 7F02DFDC 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 062B10 7F02DFE0 1000000C */ b .L7F02E014 +/* 062B14 7F02DFE4 ADCD0048 */ sw $t5, 0x48($t6) +.L7F02DFE8: +/* 062B18 7F02DFE8 8FAF0288 */ lw $t7, 0x288($sp) +/* 062B1C 7F02DFEC 24010008 */ li $at, 8 +/* 062B20 7F02DFF0 3C188005 */ lui $t8, %hi(global_timer) +/* 062B24 7F02DFF4 81E20007 */ lb $v0, 7($t7) +/* 062B28 7F02DFF8 8FB90288 */ lw $t9, 0x288($sp) +/* 062B2C 7F02DFFC 10410003 */ beq $v0, $at, .L7F02E00C +/* 062B30 7F02E000 2401000A */ li $at, 10 +/* 062B34 7F02E004 54410004 */ bnel $v0, $at, .L7F02E018 +/* 062B38 7F02E008 8FA80230 */ lw $t0, 0x230($sp) +.L7F02E00C: +/* 062B3C 7F02E00C 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 062B40 7F02E010 AF380048 */ sw $t8, 0x48($t9) +.L7F02E014: +/* 062B44 7F02E014 8FA80230 */ lw $t0, 0x230($sp) +.L7F02E018: +/* 062B48 7F02E018 8FA50270 */ lw $a1, 0x270($sp) +/* 062B4C 7F02E01C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA04) +/* 062B50 7F02E020 1100000F */ beqz $t0, .L7F02E060 +/* 062B54 7F02E024 00000000 */ nop +/* 062B58 7F02E028 C4A60008 */ lwc1 $f6, 8($a1) +/* 062B5C 7F02E02C 8FAB0274 */ lw $t3, 0x274($sp) +/* 062B60 7F02E030 2406FFFF */ li $a2, -1 +/* 062B64 7F02E034 E7A60258 */ swc1 $f6, 0x258($sp) +/* 062B68 7F02E038 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 062B6C 7F02E03C E7AA025C */ swc1 $f10, 0x25c($sp) +/* 062B70 7F02E040 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 062B74 7F02E044 E7A40260 */ swc1 $f4, 0x260($sp) +/* 062B78 7F02E048 8CA90014 */ lw $t1, 0x14($a1) +/* 062B7C 7F02E04C AFA90254 */ sw $t1, 0x254($sp) +/* 062B80 7F02E050 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 062B84 7F02E054 81640080 */ lb $a0, 0x80($t3) +/* 062B88 7F02E058 10000012 */ b .L7F02E0A4 +/* 062B8C 7F02E05C 8FAC022C */ lw $t4, 0x22c($sp) +.L7F02E060: +/* 062B90 7F02E060 8C63BA04 */ lw $v1, %lo(dword_CODE_bss_8007BA04)($v1) +/* 062B94 7F02E064 C7A8020C */ lwc1 $f8, 0x20c($sp) +/* 062B98 7F02E068 10600006 */ beqz $v1, .L7F02E084 +/* 062B9C 7F02E06C 00000000 */ nop +/* 062BA0 7F02E070 90620000 */ lbu $v0, ($v1) +/* 062BA4 7F02E074 24010003 */ li $at, 3 +/* 062BA8 7F02E078 10410009 */ beq $v0, $at, .L7F02E0A0 +/* 062BAC 7F02E07C 24010006 */ li $at, 6 +/* 062BB0 7F02E080 10410007 */ beq $v0, $at, .L7F02E0A0 +.L7F02E084: +/* 062BB4 7F02E084 3C018005 */ lui $at, %hi(D_80051F78) +/* 062BB8 7F02E088 C4261F78 */ lwc1 $f6, %lo(D_80051F78)($at) +/* 062BBC 7F02E08C 4606403C */ c.lt.s $f8, $f6 +/* 062BC0 7F02E090 00000000 */ nop +/* 062BC4 7F02E094 45020003 */ bc1fl .L7F02E0A4 +/* 062BC8 7F02E098 8FAC022C */ lw $t4, 0x22c($sp) +/* 062BCC 7F02E09C AFA0022C */ sw $zero, 0x22c($sp) +.L7F02E0A0: +/* 062BD0 7F02E0A0 8FAC022C */ lw $t4, 0x22c($sp) +.L7F02E0A4: +/* 062BD4 7F02E0A4 8FAD0254 */ lw $t5, 0x254($sp) +/* 062BD8 7F02E0A8 5180003D */ beql $t4, $zero, .L7F02E1A0 +/* 062BDC 7F02E0AC 8FAC0264 */ lw $t4, 0x264($sp) +/* 062BE0 7F02E0B0 11A00005 */ beqz $t5, .L7F02E0C8 +/* 062BE4 7F02E0B4 27A40258 */ addiu $a0, $sp, 0x258 +/* 062BE8 7F02E0B8 24050001 */ li $a1, 1 +/* 062BEC 7F02E0BC 3C0641D0 */ lui $a2, 0x41d0 +/* 062BF0 7F02E0C0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 062BF4 7F02E0C4 91A70003 */ lbu $a3, 3($t5) +.L7F02E0C8: +/* 062BF8 7F02E0C8 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007BA04) +/* 062BFC 7F02E0CC 8CA5BA04 */ lw $a1, %lo(dword_CODE_bss_8007BA04)($a1) +/* 062C00 7F02E0D0 8FAE0274 */ lw $t6, 0x274($sp) +/* 062C04 7F02E0D4 2406FFFF */ li $a2, -1 +/* 062C08 7F02E0D8 10A0002D */ beqz $a1, .L7F02E190 +/* 062C0C 7F02E0DC 81C70080 */ lb $a3, 0x80($t6) +/* 062C10 7F02E0E0 00E02025 */ move $a0, $a3 +/* 062C14 7F02E0E4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 062C18 7F02E0E8 2406FFFF */ li $a2, -1 +/* 062C1C 7F02E0EC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA04) +/* 062C20 7F02E0F0 8C63BA04 */ lw $v1, %lo(dword_CODE_bss_8007BA04)($v1) +/* 062C24 7F02E0F4 24010003 */ li $at, 3 +/* 062C28 7F02E0F8 8FAF0288 */ lw $t7, 0x288($sp) +/* 062C2C 7F02E0FC 90620000 */ lbu $v0, ($v1) +/* 062C30 7F02E100 5441000F */ bnel $v0, $at, .L7F02E140 +/* 062C34 7F02E104 24010001 */ li $at, 1 +/* 062C38 7F02E108 8DF80014 */ lw $t8, 0x14($t7) +/* 062C3C 7F02E10C 2405000F */ li $a1, 15 +/* 062C40 7F02E110 8FA80274 */ lw $t0, 0x274($sp) +/* 062C44 7F02E114 33190040 */ andi $t9, $t8, 0x40 +/* 062C48 7F02E118 53200021 */ beql $t9, $zero, .L7F02E1A0 +/* 062C4C 7F02E11C 8FAC0264 */ lw $t4, 0x264($sp) +/* 062C50 7F02E120 8C640004 */ lw $a0, 4($v1) +/* 062C54 7F02E124 81070080 */ lb $a3, 0x80($t0) +/* 062C58 7F02E128 AFA00010 */ sw $zero, 0x10($sp) +/* 062C5C 7F02E12C 0FC09C9F */ jal handles_shot_actors +/* 062C60 7F02E130 27A60220 */ addiu $a2, $sp, 0x220 +/* 062C64 7F02E134 1000001A */ b .L7F02E1A0 +/* 062C68 7F02E138 8FAC0264 */ lw $t4, 0x264($sp) +/* 062C6C 7F02E13C 24010001 */ li $at, 1 +.L7F02E140: +/* 062C70 7F02E140 10410004 */ beq $v0, $at, .L7F02E154 +/* 062C74 7F02E144 8FA90274 */ lw $t1, 0x274($sp) +/* 062C78 7F02E148 24010004 */ li $at, 4 +/* 062C7C 7F02E14C 54410014 */ bnel $v0, $at, .L7F02E1A0 +/* 062C80 7F02E150 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E154: +/* 062C84 7F02E154 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 062C88 7F02E158 81240080 */ lb $a0, 0x80($t1) +/* 062C8C 7F02E15C 0FC26C54 */ jal get_cur_playernum +/* 062C90 7F02E160 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 062C94 7F02E164 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007BA04) +/* 062C98 7F02E168 8D6BBA04 */ lw $t3, %lo(dword_CODE_bss_8007BA04)($t3) +/* 062C9C 7F02E16C 8FAA0274 */ lw $t2, 0x274($sp) +/* 062CA0 7F02E170 8FA5004C */ lw $a1, 0x4c($sp) +/* 062CA4 7F02E174 8D640004 */ lw $a0, 4($t3) +/* 062CA8 7F02E178 81470080 */ lb $a3, 0x80($t2) +/* 062CAC 7F02E17C AFA20010 */ sw $v0, 0x10($sp) +/* 062CB0 7F02E180 0FC13833 */ jal sub_GAME_7F04E0CC +/* 062CB4 7F02E184 27A60258 */ addiu $a2, $sp, 0x258 +/* 062CB8 7F02E188 10000005 */ b .L7F02E1A0 +/* 062CBC 7F02E18C 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E190: +/* 062CC0 7F02E190 00E02025 */ move $a0, $a3 +/* 062CC4 7F02E194 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 062CC8 7F02E198 27A50258 */ addiu $a1, $sp, 0x258 +/* 062CCC 7F02E19C 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E1A0: +/* 062CD0 7F02E1A0 8FAD0274 */ lw $t5, 0x274($sp) +/* 062CD4 7F02E1A4 51800010 */ beql $t4, $zero, .L7F02E1E8 +/* 062CD8 7F02E1A8 8FB90264 */ lw $t9, 0x264($sp) +/* 062CDC 7F02E1AC 81AE0080 */ lb $t6, 0x80($t5) +/* 062CE0 7F02E1B0 25CFFFFC */ addiu $t7, $t6, -4 +/* 062CE4 7F02E1B4 2DE10013 */ sltiu $at, $t7, 0x13 +/* 062CE8 7F02E1B8 10200009 */ beqz $at, .L7F02E1E0 +/* 062CEC 7F02E1BC 000F7880 */ sll $t7, $t7, 2 +/* 062CF0 7F02E1C0 3C018005 */ lui $at, %hi(jpt_80051F7C) +/* 062CF4 7F02E1C4 002F0821 */ addu $at, $at, $t7 +/* 062CF8 7F02E1C8 8C2F1F7C */ lw $t7, %lo(jpt_80051F7C)($at) +/* 062CFC 7F02E1CC 01E00008 */ jr $t7 +/* 062D00 7F02E1D0 00000000 */ nop +weapon_guard_fires_bullet_projectile: +/* 062D04 7F02E1D4 24180001 */ li $t8, 1 +/* 062D08 7F02E1D8 10000002 */ b .L7F02E1E4 +/* 062D0C 7F02E1DC AFB80264 */ sw $t8, 0x264($sp) +weapon_guard_fires_bullet_no_projectile: +.L7F02E1E0: +/* 062D10 7F02E1E0 AFA00264 */ sw $zero, 0x264($sp) +.L7F02E1E4: +/* 062D14 7F02E1E4 8FB90264 */ lw $t9, 0x264($sp) +.L7F02E1E8: +/* 062D18 7F02E1E8 8FA9028C */ lw $t1, 0x28c($sp) +/* 062D1C 7F02E1EC 8FA80288 */ lw $t0, 0x288($sp) +/* 062D20 7F02E1F0 1320000C */ beqz $t9, .L7F02E224 +/* 062D24 7F02E1F4 00095880 */ sll $t3, $t1, 2 +/* 062D28 7F02E1F8 01695823 */ subu $t3, $t3, $t1 +/* 062D2C 7F02E1FC 000B5880 */ sll $t3, $t3, 2 +/* 062D30 7F02E200 01695823 */ subu $t3, $t3, $t1 +/* 062D34 7F02E204 8FAA0274 */ lw $t2, 0x274($sp) +/* 062D38 7F02E208 000B5880 */ sll $t3, $t3, 2 +/* 062D3C 7F02E20C 010B2021 */ addu $a0, $t0, $t3 +/* 062D40 7F02E210 24840180 */ addiu $a0, $a0, 0x180 +/* 062D44 7F02E214 27A60240 */ addiu $a2, $sp, 0x240 +/* 062D48 7F02E218 27A70258 */ addiu $a3, $sp, 0x258 +/* 062D4C 7F02E21C 0FC18652 */ jal sub_GAME_7F061948 +/* 062D50 7F02E220 81450080 */ lb $a1, 0x80($t2) +.L7F02E224: +/* 062D54 7F02E224 8FA2027C */ lw $v0, 0x27c($sp) +.L7F02E228: +/* 062D58 7F02E228 8FA40288 */ lw $a0, 0x288($sp) +/* 062D5C 7F02E22C 0002302B */ sltu $a2, $zero, $v0 +/* 062D60 7F02E230 14C00004 */ bnez $a2, .L7F02E244 +/* 062D64 7F02E234 00000000 */ nop +/* 062D68 7F02E238 8FA60278 */ lw $a2, 0x278($sp) +/* 062D6C 7F02E23C 0006682B */ sltu $t5, $zero, $a2 +/* 062D70 7F02E240 01A03025 */ move $a2, $t5 +.L7F02E244: +/* 062D74 7F02E244 0FC0AFF9 */ jal sub_GAME_7F02BFE4 +/* 062D78 7F02E248 8FA5028C */ lw $a1, 0x28c($sp) +.L7F02E24C: +/* 062D7C 7F02E24C 8FA40288 */ lw $a0, 0x288($sp) +/* 062D80 7F02E250 8FA5028C */ lw $a1, 0x28c($sp) +/* 062D84 7F02E254 0FC0B446 */ jal sub_GAME_7F02D118 +/* 062D88 7F02E258 8FA6027C */ lw $a2, 0x27c($sp) +/* 062D8C 7F02E25C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02E260: +/* 062D90 7F02E260 27BD0288 */ addiu $sp, $sp, 0x288 +/* 062D94 7F02E264 03E00008 */ jr $ra +/* 062D98 7F02E268 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E26C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E26C +/* 062D9C 7F02E26C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 062DA0 7F02E270 AFBF0014 */ sw $ra, 0x14($sp) +/* 062DA4 7F02E274 948E0012 */ lhu $t6, 0x12($a0) +/* 062DA8 7F02E278 00002825 */ move $a1, $zero +/* 062DAC 7F02E27C 31CFFF7F */ andi $t7, $t6, 0xff7f +/* 062DB0 7F02E280 31E2FFFF */ andi $v0, $t7, 0xffff +/* 062DB4 7F02E284 30580008 */ andi $t8, $v0, 8 +/* 062DB8 7F02E288 13000008 */ beqz $t8, .L7F02E2AC +/* 062DBC 7F02E28C A48F0012 */ sh $t7, 0x12($a0) +/* 062DC0 7F02E290 0FC0B5CD */ jal sub_GAME_7F02D734 +/* 062DC4 7F02E294 AFA40018 */ sw $a0, 0x18($sp) +/* 062DC8 7F02E298 8FA40018 */ lw $a0, 0x18($sp) +/* 062DCC 7F02E29C 94990012 */ lhu $t9, 0x12($a0) +/* 062DD0 7F02E2A0 3328FFF7 */ andi $t0, $t9, 0xfff7 +/* 062DD4 7F02E2A4 3102FFFF */ andi $v0, $t0, 0xffff +/* 062DD8 7F02E2A8 A4880012 */ sh $t0, 0x12($a0) +.L7F02E2AC: +/* 062DDC 7F02E2AC 30490004 */ andi $t1, $v0, 4 +/* 062DE0 7F02E2B0 11200007 */ beqz $t1, .L7F02E2D0 +/* 062DE4 7F02E2B4 24050001 */ li $a1, 1 +/* 062DE8 7F02E2B8 0FC0B5CD */ jal sub_GAME_7F02D734 +/* 062DEC 7F02E2BC AFA40018 */ sw $a0, 0x18($sp) +/* 062DF0 7F02E2C0 8FA40018 */ lw $a0, 0x18($sp) +/* 062DF4 7F02E2C4 948A0012 */ lhu $t2, 0x12($a0) +/* 062DF8 7F02E2C8 314BFFFB */ andi $t3, $t2, 0xfffb +/* 062DFC 7F02E2CC A48B0012 */ sh $t3, 0x12($a0) +.L7F02E2D0: +/* 062E00 7F02E2D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 062E04 7F02E2D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 062E08 7F02E2D8 03E00008 */ jr $ra +/* 062E0C 7F02E2DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E2E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E2E0 +/* 062E10 7F02E2E0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 062E14 7F02E2E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 062E18 7F02E2E8 8C82002C */ lw $v0, 0x2c($a0) +/* 062E1C 7F02E2EC 3C0E8003 */ lui $t6, %hi(D_80030108) +/* 062E20 7F02E2F0 25CE0108 */ addiu $t6, %lo(D_80030108) # addiu $t6, $t6, 0x108 +/* 062E24 7F02E2F4 11C20004 */ beq $t6, $v0, .L7F02E308 +/* 062E28 7F02E2F8 3C0F8003 */ lui $t7, %hi(D_80030150) +/* 062E2C 7F02E2FC 25EF0150 */ addiu $t7, %lo(D_80030150) # addiu $t7, $t7, 0x150 +/* 062E30 7F02E300 55E20029 */ bnel $t7, $v0, .L7F02E3A8 +/* 062E34 7F02E304 00001025 */ move $v0, $zero +.L7F02E308: +/* 062E38 7F02E308 8C82001C */ lw $v0, 0x1c($a0) +/* 062E3C 7F02E30C 3C088003 */ lui $t0, %hi(D_800300C0) +/* 062E40 7F02E310 24190002 */ li $t9, 2 +/* 062E44 7F02E314 80580024 */ lb $t8, 0x24($v0) +/* 062E48 7F02E318 250800C0 */ addiu $t0, %lo(D_800300C0) # addiu $t0, $t0, 0xc0 +/* 062E4C 7F02E31C 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +/* 062E50 7F02E320 AFB80024 */ sw $t8, 0x24($sp) +/* 062E54 7F02E324 A0990030 */ sb $t9, 0x30($a0) +/* 062E58 7F02E328 AC88002C */ sw $t0, 0x2c($a0) +/* 062E5C 7F02E32C A0800008 */ sb $zero, 8($a0) +/* 062E60 7F02E330 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 062E64 7F02E334 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 062E68 7F02E338 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 062E6C 7F02E33C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062E70 7F02E340 AFA2002C */ sw $v0, 0x2c($sp) +/* 062E74 7F02E344 3C0141B0 */ li $at, 0x41B00000 # 22.000000 +/* 062E78 7F02E348 44812000 */ mtc1 $at, $f4 +/* 062E7C 7F02E34C 3C058003 */ lui $a1, %hi(D_800300C0) +/* 062E80 7F02E350 3C078003 */ lui $a3, %hi(D_800300C0+0x1C) +/* 062E84 7F02E354 8CE700DC */ lw $a3, %lo(D_800300C0+0x1C)($a3) +/* 062E88 7F02E358 8CA500C0 */ lw $a1, %lo(D_800300C0)($a1) +/* 062E8C 7F02E35C 8FA4002C */ lw $a0, 0x2c($sp) +/* 062E90 7F02E360 8FA60024 */ lw $a2, 0x24($sp) +/* 062E94 7F02E364 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062E98 7F02E368 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062E9C 7F02E36C E7A40014 */ swc1 $f4, 0x14($sp) +/* 062EA0 7F02E370 3C018003 */ lui $at, %hi(D_800300C0+0x14) +/* 062EA4 7F02E374 C42000D4 */ lwc1 $f0, %lo(D_800300C0+0x14)($at) +/* 062EA8 7F02E378 44803000 */ mtc1 $zero, $f6 +/* 062EAC 7F02E37C 00000000 */ nop +/* 062EB0 7F02E380 4600303E */ c.le.s $f6, $f0 +/* 062EB4 7F02E384 00000000 */ nop +/* 062EB8 7F02E388 45000004 */ bc1f .L7F02E39C +/* 062EBC 7F02E38C 00000000 */ nop +/* 062EC0 7F02E390 44050000 */ mfc1 $a1, $f0 +/* 062EC4 7F02E394 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 062EC8 7F02E398 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02E39C: +/* 062ECC 7F02E39C 10000002 */ b .L7F02E3A8 +/* 062ED0 7F02E3A0 24020001 */ li $v0, 1 +/* 062ED4 7F02E3A4 00001025 */ move $v0, $zero +.L7F02E3A8: +/* 062ED8 7F02E3A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 062EDC 7F02E3AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 062EE0 7F02E3B0 03E00008 */ jr $ra +/* 062EE4 7F02E3B4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E3B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E3B8 +/* 062EE8 7F02E3B8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 062EEC 7F02E3BC AFBF0024 */ sw $ra, 0x24($sp) +/* 062EF0 7F02E3C0 AFB10020 */ sw $s1, 0x20($sp) +/* 062EF4 7F02E3C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 062EF8 7F02E3C8 8C8E002C */ lw $t6, 0x2c($a0) +/* 062EFC 7F02E3CC 44802000 */ mtc1 $zero, $f4 +/* 062F00 7F02E3D0 00808825 */ move $s1, $a0 +/* 062F04 7F02E3D4 C5C60024 */ lwc1 $f6, 0x24($t6) +/* 062F08 7F02E3D8 8C90001C */ lw $s0, 0x1c($a0) +/* 062F0C 7F02E3DC 4606203C */ c.lt.s $f4, $f6 +/* 062F10 7F02E3E0 00000000 */ nop +/* 062F14 7F02E3E4 45000015 */ bc1f .L7F02E43C +/* 062F18 7F02E3E8 00000000 */ nop +/* 062F1C 7F02E3EC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 062F20 7F02E3F0 02002025 */ move $a0, $s0 +/* 062F24 7F02E3F4 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 062F28 7F02E3F8 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 062F2C 7F02E3FC AFA2002C */ sw $v0, 0x2c($sp) +/* 062F30 7F02E400 02202025 */ move $a0, $s1 +/* 062F34 7F02E404 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062F38 7F02E408 3C053F00 */ lui $a1, 0x3f00 +/* 062F3C 7F02E40C 8E2F002C */ lw $t7, 0x2c($s1) +/* 062F40 7F02E410 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 062F44 7F02E414 44814000 */ mtc1 $at, $f8 +/* 062F48 7F02E418 82060024 */ lb $a2, 0x24($s0) +/* 062F4C 7F02E41C 8DE70024 */ lw $a3, 0x24($t7) +/* 062F50 7F02E420 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062F54 7F02E424 02002025 */ move $a0, $s0 +/* 062F58 7F02E428 8FA5002C */ lw $a1, 0x2c($sp) +/* 062F5C 7F02E42C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062F60 7F02E430 E7A80014 */ swc1 $f8, 0x14($sp) +/* 062F64 7F02E434 10000014 */ b .L7F02E488 +/* 062F68 7F02E438 8E39002C */ lw $t9, 0x2c($s1) +.L7F02E43C: +/* 062F6C 7F02E43C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 062F70 7F02E440 02002025 */ move $a0, $s0 +/* 062F74 7F02E444 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 062F78 7F02E448 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 062F7C 7F02E44C AFA2002C */ sw $v0, 0x2c($sp) +/* 062F80 7F02E450 02202025 */ move $a0, $s1 +/* 062F84 7F02E454 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062F88 7F02E458 3C053F00 */ lui $a1, 0x3f00 +/* 062F8C 7F02E45C 8E38002C */ lw $t8, 0x2c($s1) +/* 062F90 7F02E460 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 062F94 7F02E464 44815000 */ mtc1 $at, $f10 +/* 062F98 7F02E468 82060024 */ lb $a2, 0x24($s0) +/* 062F9C 7F02E46C 8F07001C */ lw $a3, 0x1c($t8) +/* 062FA0 7F02E470 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062FA4 7F02E474 02002025 */ move $a0, $s0 +/* 062FA8 7F02E478 8FA5002C */ lw $a1, 0x2c($sp) +/* 062FAC 7F02E47C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062FB0 7F02E480 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 062FB4 7F02E484 8E39002C */ lw $t9, 0x2c($s1) +.L7F02E488: +/* 062FB8 7F02E488 44808000 */ mtc1 $zero, $f16 +/* 062FBC 7F02E48C C7200014 */ lwc1 $f0, 0x14($t9) +/* 062FC0 7F02E490 4600803E */ c.le.s $f16, $f0 +/* 062FC4 7F02E494 00000000 */ nop +/* 062FC8 7F02E498 45020005 */ bc1fl .L7F02E4B0 +/* 062FCC 7F02E49C 8FBF0024 */ lw $ra, 0x24($sp) +/* 062FD0 7F02E4A0 44050000 */ mfc1 $a1, $f0 +/* 062FD4 7F02E4A4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 062FD8 7F02E4A8 02002025 */ move $a0, $s0 +/* 062FDC 7F02E4AC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02E4B0: +/* 062FE0 7F02E4B0 8FB0001C */ lw $s0, 0x1c($sp) +/* 062FE4 7F02E4B4 8FB10020 */ lw $s1, 0x20($sp) +/* 062FE8 7F02E4B8 03E00008 */ jr $ra +/* 062FEC 7F02E4BC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E4C0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051FC8 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02E4C0 +/* 062FF0 7F02E4C0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 062FF4 7F02E4C4 AFBF0044 */ sw $ra, 0x44($sp) +/* 062FF8 7F02E4C8 AFB30040 */ sw $s3, 0x40($sp) +/* 062FFC 7F02E4CC AFB2003C */ sw $s2, 0x3c($sp) +/* 063000 7F02E4D0 AFB10038 */ sw $s1, 0x38($sp) +/* 063004 7F02E4D4 AFB00034 */ sw $s0, 0x34($sp) +/* 063008 7F02E4D8 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 06300C 7F02E4DC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 063010 7F02E4E0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 063014 7F02E4E4 8C93001C */ lw $s3, 0x1c($a0) +/* 063018 7F02E4E8 00808025 */ move $s0, $a0 +/* 06301C 7F02E4EC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063020 7F02E4F0 02602025 */ move $a0, $s3 +/* 063024 7F02E4F4 8E0F0044 */ lw $t7, 0x44($s0) +/* 063028 7F02E4F8 8E0E0048 */ lw $t6, 0x48($s0) +/* 06302C 7F02E4FC 46000506 */ mov.s $f20, $f0 +/* 063030 7F02E500 25F8FFE2 */ addiu $t8, $t7, -0x1e +/* 063034 7F02E504 01D8082A */ slt $at, $t6, $t8 +/* 063038 7F02E508 5020004B */ beql $at, $zero, .L7F02E638 +/* 06303C 7F02E50C 3C013F00 */ lui $at, 0x3f00 +/* 063040 7F02E510 8E790054 */ lw $t9, 0x54($s3) +/* 063044 7F02E514 57200048 */ bnezl $t9, .L7F02E638 +/* 063048 7F02E518 3C013F00 */ lui $at, 0x3f00 +/* 06304C 7F02E51C 8E05002C */ lw $a1, 0x2c($s0) +/* 063050 7F02E520 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 063054 7F02E524 44813000 */ mtc1 $at, $f6 +/* 063058 7F02E528 C4A40018 */ lwc1 $f4, 0x18($a1) +/* 06305C 7F02E52C 46062200 */ add.s $f8, $f4, $f6 +/* 063060 7F02E530 4600403C */ c.lt.s $f8, $f0 +/* 063064 7F02E534 00000000 */ nop +/* 063068 7F02E538 4502003F */ bc1fl .L7F02E638 +/* 06306C 7F02E53C 3C013F00 */ lui $at, 0x3f00 +/* 063070 7F02E540 C4AA001C */ lwc1 $f10, 0x1c($a1) +/* 063074 7F02E544 460A003C */ c.lt.s $f0, $f10 +/* 063078 7F02E548 00000000 */ nop +/* 06307C 7F02E54C 4502003A */ bc1fl .L7F02E638 +/* 063080 7F02E550 3C013F00 */ lui $at, 0x3f00 +/* 063084 7F02E554 4480B000 */ mtc1 $zero, $f22 +/* 063088 7F02E558 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 06308C 7F02E55C 4616103C */ c.lt.s $f2, $f22 +/* 063090 7F02E560 00000000 */ nop +/* 063094 7F02E564 45030006 */ bc1tl .L7F02E580 +/* 063098 7F02E568 82080036 */ lb $t0, 0x36($s0) +/* 06309C 7F02E56C 4602003C */ c.lt.s $f0, $f2 +/* 0630A0 7F02E570 00000000 */ nop +/* 0630A4 7F02E574 45020030 */ bc1fl .L7F02E638 +/* 0630A8 7F02E578 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0630AC 7F02E57C 82080036 */ lb $t0, 0x36($s0) +.L7F02E580: +/* 0630B0 7F02E580 15000024 */ bnez $t0, .L7F02E614 +/* 0630B4 7F02E584 00000000 */ nop +/* 0630B8 7F02E588 0FC0B8B8 */ jal sub_GAME_7F02E2E0 +/* 0630BC 7F02E58C 02002025 */ move $a0, $s0 +/* 0630C0 7F02E590 1440001E */ bnez $v0, .L7F02E60C +/* 0630C4 7F02E594 00000000 */ nop +/* 0630C8 7F02E598 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0630CC 7F02E59C 02602025 */ move $a0, $s3 +/* 0630D0 7F02E5A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0630D4 7F02E5A4 4481C000 */ mtc1 $at, $f24 +/* 0630D8 7F02E5A8 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0630DC 7F02E5AC 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0630E0 7F02E5B0 4405C000 */ mfc1 $a1, $f24 +/* 0630E4 7F02E5B4 00408825 */ move $s1, $v0 +/* 0630E8 7F02E5B8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0630EC 7F02E5BC 02002025 */ move $a0, $s0 +/* 0630F0 7F02E5C0 8E09002C */ lw $t1, 0x2c($s0) +/* 0630F4 7F02E5C4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0630F8 7F02E5C8 44818000 */ mtc1 $at, $f16 +/* 0630FC 7F02E5CC 82660024 */ lb $a2, 0x24($s3) +/* 063100 7F02E5D0 8D27001C */ lw $a3, 0x1c($t1) +/* 063104 7F02E5D4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063108 7F02E5D8 02602025 */ move $a0, $s3 +/* 06310C 7F02E5DC 02202825 */ move $a1, $s1 +/* 063110 7F02E5E0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063114 7F02E5E4 E7B00014 */ swc1 $f16, 0x14($sp) +/* 063118 7F02E5E8 8E0A002C */ lw $t2, 0x2c($s0) +/* 06311C 7F02E5EC C5400014 */ lwc1 $f0, 0x14($t2) +/* 063120 7F02E5F0 4600B03E */ c.le.s $f22, $f0 +/* 063124 7F02E5F4 00000000 */ nop +/* 063128 7F02E5F8 45000004 */ bc1f .L7F02E60C +/* 06312C 7F02E5FC 00000000 */ nop +/* 063130 7F02E600 44050000 */ mfc1 $a1, $f0 +/* 063134 7F02E604 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063138 7F02E608 02602025 */ move $a0, $s3 +.L7F02E60C: +/* 06313C 7F02E60C 10000004 */ b .L7F02E620 +/* 063140 7F02E610 820B0034 */ lb $t3, 0x34($s0) +.L7F02E614: +/* 063144 7F02E614 0FC0B8EE */ jal sub_GAME_7F02E3B8 +/* 063148 7F02E618 02002025 */ move $a0, $s0 +/* 06314C 7F02E61C 820B0034 */ lb $t3, 0x34($s0) +.L7F02E620: +/* 063150 7F02E620 02602025 */ move $a0, $s3 +/* 063154 7F02E624 256C0001 */ addiu $t4, $t3, 1 +/* 063158 7F02E628 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06315C 7F02E62C A20C0033 */ sb $t4, 0x33($s0) +/* 063160 7F02E630 46000506 */ mov.s $f20, $f0 +/* 063164 7F02E634 3C013F00 */ li $at, 0x3F000000 # 0.500000 +.L7F02E638: +/* 063168 7F02E638 4481C000 */ mtc1 $at, $f24 +/* 06316C 7F02E63C 4480B000 */ mtc1 $zero, $f22 +/* 063170 7F02E640 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063174 7F02E644 02602025 */ move $a0, $s3 +/* 063178 7F02E648 4614003E */ c.le.s $f0, $f20 +/* 06317C 7F02E64C 00000000 */ nop +/* 063180 7F02E650 45020076 */ bc1fl .L7F02E82C +/* 063184 7F02E654 8E02004C */ lw $v0, 0x4c($s0) +/* 063188 7F02E658 820D0037 */ lb $t5, 0x37($s0) +/* 06318C 7F02E65C 15A00006 */ bnez $t5, .L7F02E678 +/* 063190 7F02E660 00000000 */ nop +/* 063194 7F02E664 82030034 */ lb $v1, 0x34($s0) +/* 063198 7F02E668 82020033 */ lb $v0, 0x33($s0) +/* 06319C 7F02E66C 0062082A */ slt $at, $v1, $v0 +/* 0631A0 7F02E670 1020000F */ beqz $at, .L7F02E6B0 +/* 0631A4 7F02E674 00000000 */ nop +.L7F02E678: +/* 0631A8 7F02E678 0FC0B8B8 */ jal sub_GAME_7F02E2E0 +/* 0631AC 7F02E67C 02002025 */ move $a0, $s0 +/* 0631B0 7F02E680 14400066 */ bnez $v0, .L7F02E81C +/* 0631B4 7F02E684 00000000 */ nop +/* 0631B8 7F02E688 8E0F004C */ lw $t7, 0x4c($s0) +/* 0631BC 7F02E68C 31EE0001 */ andi $t6, $t7, 1 +/* 0631C0 7F02E690 11C00003 */ beqz $t6, .L7F02E6A0 +/* 0631C4 7F02E694 00000000 */ nop +/* 0631C8 7F02E698 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0631CC 7F02E69C 02002025 */ move $a0, $s0 +.L7F02E6A0: +/* 0631D0 7F02E6A0 0FC08F92 */ jal sub_GAME_7F023E48 +/* 0631D4 7F02E6A4 02002025 */ move $a0, $s0 +/* 0631D8 7F02E6A8 1000014B */ b .L7F02EBD8 +/* 0631DC 7F02E6AC 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02E6B0: +/* 0631E0 7F02E6B0 14620006 */ bne $v1, $v0, .L7F02E6CC +/* 0631E4 7F02E6B4 24580001 */ addiu $t8, $v0, 1 +/* 0631E8 7F02E6B8 A2180033 */ sb $t8, 0x33($s0) +/* 0631EC 7F02E6BC 0FC0B8EE */ jal sub_GAME_7F02E3B8 +/* 0631F0 7F02E6C0 02002025 */ move $a0, $s0 +/* 0631F4 7F02E6C4 10000055 */ b .L7F02E81C +/* 0631F8 7F02E6C8 00000000 */ nop +.L7F02E6CC: +/* 0631FC 7F02E6CC 82190031 */ lb $t9, 0x31($s0) +/* 063200 7F02E6D0 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 063204 7F02E6D4 02602025 */ move $a0, $s3 +/* 063208 7F02E6D8 13200050 */ beqz $t9, .L7F02E81C +/* 06320C 7F02E6DC 00000000 */ nop +/* 063210 7F02E6E0 82080036 */ lb $t0, 0x36($s0) +/* 063214 7F02E6E4 4600C306 */ mov.s $f12, $f24 +/* 063218 7F02E6E8 51000014 */ beql $t0, $zero, .L7F02E73C +/* 06321C 7F02E6EC 8E05002C */ lw $a1, 0x2c($s0) +/* 063220 7F02E6F0 8E05002C */ lw $a1, 0x2c($s0) +/* 063224 7F02E6F4 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063228 7F02E6F8 4600B03C */ c.lt.s $f22, $f0 +/* 06322C 7F02E6FC 00000000 */ nop +/* 063230 7F02E700 45020004 */ bc1fl .L7F02E714 +/* 063234 7F02E704 C4AE0018 */ lwc1 $f14, 0x18($a1) +/* 063238 7F02E708 10000002 */ b .L7F02E714 +/* 06323C 7F02E70C 46000386 */ mov.s $f14, $f0 +/* 063240 7F02E710 C4AE0018 */ lwc1 $f14, 0x18($a1) +.L7F02E714: +/* 063244 7F02E714 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 063248 7F02E718 4602B03C */ c.lt.s $f22, $f2 +/* 06324C 7F02E71C 00000000 */ nop +/* 063250 7F02E720 45000003 */ bc1f .L7F02E730 +/* 063254 7F02E724 00000000 */ nop +/* 063258 7F02E728 1000000D */ b .L7F02E760 +/* 06325C 7F02E72C 46001506 */ mov.s $f20, $f2 +.L7F02E730: +/* 063260 7F02E730 1000000B */ b .L7F02E760 +/* 063264 7F02E734 C4B4001C */ lwc1 $f20, 0x1c($a1) +/* 063268 7F02E738 8E05002C */ lw $a1, 0x2c($s0) +.L7F02E73C: +/* 06326C 7F02E73C C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063270 7F02E740 C4AE0018 */ lwc1 $f14, 0x18($a1) +/* 063274 7F02E744 4600B03C */ c.lt.s $f22, $f0 +/* 063278 7F02E748 00000000 */ nop +/* 06327C 7F02E74C 45020004 */ bc1fl .L7F02E760 +/* 063280 7F02E750 C4B4001C */ lwc1 $f20, 0x1c($a1) +/* 063284 7F02E754 10000002 */ b .L7F02E760 +/* 063288 7F02E758 46000506 */ mov.s $f20, $f0 +/* 06328C 7F02E75C C4B4001C */ lwc1 $f20, 0x1c($a1) +.L7F02E760: +/* 063290 7F02E760 460EA001 */ sub.s $f0, $f20, $f14 +/* 063294 7F02E764 44811000 */ mtc1 $at, $f2 +/* 063298 7F02E768 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 06329C 7F02E76C 4602003C */ c.lt.s $f0, $f2 +/* 0632A0 7F02E770 00000000 */ nop +/* 0632A4 7F02E774 45020005 */ bc1fl .L7F02E78C +/* 0632A8 7F02E778 44812000 */ mtc1 $at, $f4 +/* 0632AC 7F02E77C 46180482 */ mul.s $f18, $f0, $f24 +/* 0632B0 7F02E780 1000000D */ b .L7F02E7B8 +/* 0632B4 7F02E784 46029303 */ div.s $f12, $f18, $f2 +/* 0632B8 7F02E788 44812000 */ mtc1 $at, $f4 +.L7F02E78C: +/* 0632BC 7F02E78C 00000000 */ nop +/* 0632C0 7F02E790 4600203C */ c.lt.s $f4, $f0 +/* 0632C4 7F02E794 00000000 */ nop +/* 0632C8 7F02E798 45020008 */ bc1fl .L7F02E7BC +/* 0632CC 7F02E79C 8209003A */ lb $t1, 0x3a($s0) +/* 0632D0 7F02E7A0 46180182 */ mul.s $f6, $f0, $f24 +/* 0632D4 7F02E7A4 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 0632D8 7F02E7A8 44814000 */ mtc1 $at, $f8 +/* 0632DC 7F02E7AC 00000000 */ nop +/* 0632E0 7F02E7B0 46083302 */ mul.s $f12, $f6, $f8 +/* 0632E4 7F02E7B4 00000000 */ nop +.L7F02E7B8: +/* 0632E8 7F02E7B8 8209003A */ lb $t1, 0x3a($s0) +.L7F02E7BC: +/* 0632EC 7F02E7BC 51200006 */ beql $t1, $zero, .L7F02E7D8 +/* 0632F0 7F02E7C0 A2000031 */ sb $zero, 0x31($s0) +/* 0632F4 7F02E7C4 820A003B */ lb $t2, 0x3b($s0) +/* 0632F8 7F02E7C8 51400003 */ beql $t2, $zero, .L7F02E7D8 +/* 0632FC 7F02E7CC A2000031 */ sb $zero, 0x31($s0) +/* 063300 7F02E7D0 460C6300 */ add.s $f12, $f12, $f12 +/* 063304 7F02E7D4 A2000031 */ sb $zero, 0x31($s0) +.L7F02E7D8: +/* 063308 7F02E7D8 E7AE005C */ swc1 $f14, 0x5c($sp) +/* 06330C 7F02E7DC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063310 7F02E7E0 E7AC0060 */ swc1 $f12, 0x60($sp) +/* 063314 7F02E7E4 C7AE005C */ lwc1 $f14, 0x5c($sp) +/* 063318 7F02E7E8 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 06331C 7F02E7EC 44815000 */ mtc1 $at, $f10 +/* 063320 7F02E7F0 C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 063324 7F02E7F4 82660024 */ lb $a2, 0x24($s3) +/* 063328 7F02E7F8 44077000 */ mfc1 $a3, $f14 +/* 06332C 7F02E7FC 02602025 */ move $a0, $s3 +/* 063330 7F02E800 00402825 */ move $a1, $v0 +/* 063334 7F02E804 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 063338 7F02E808 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06333C 7F02E80C E7AC0010 */ swc1 $f12, 0x10($sp) +/* 063340 7F02E810 4405A000 */ mfc1 $a1, $f20 +/* 063344 7F02E814 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063348 7F02E818 02602025 */ move $a0, $s3 +.L7F02E81C: +/* 06334C 7F02E81C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063350 7F02E820 02602025 */ move $a0, $s3 +/* 063354 7F02E824 46000506 */ mov.s $f20, $f0 +/* 063358 7F02E828 8E02004C */ lw $v0, 0x4c($s0) +.L7F02E82C: +/* 06335C 7F02E82C 304B0040 */ andi $t3, $v0, 0x40 +/* 063360 7F02E830 5560002B */ bnezl $t3, .L7F02E8E0 +/* 063364 7F02E834 8E05002C */ lw $a1, 0x2c($s0) +/* 063368 7F02E838 8E05002C */ lw $a1, 0x2c($s0) +/* 06336C 7F02E83C 304C0020 */ andi $t4, $v0, 0x20 +/* 063370 7F02E840 02602025 */ move $a0, $s3 +/* 063374 7F02E844 C4A2000C */ lwc1 $f2, 0xc($a1) +/* 063378 7F02E848 1180000F */ beqz $t4, .L7F02E888 +/* 06337C 7F02E84C C4AC0004 */ lwc1 $f12, 4($a1) +/* 063380 7F02E850 E7A20050 */ swc1 $f2, 0x50($sp) +/* 063384 7F02E854 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063388 7F02E858 E7AC004C */ swc1 $f12, 0x4c($sp) +/* 06338C 7F02E85C C7AC004C */ lwc1 $f12, 0x4c($sp) +/* 063390 7F02E860 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 063394 7F02E864 02602025 */ move $a0, $s3 +/* 063398 7F02E868 460C003C */ c.lt.s $f0, $f12 +/* 06339C 7F02E86C 00000000 */ nop +/* 0633A0 7F02E870 45020006 */ bc1fl .L7F02E88C +/* 0633A4 7F02E874 826D0024 */ lb $t5, 0x24($s3) +/* 0633A8 7F02E878 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0633AC 7F02E87C E7A20050 */ swc1 $f2, 0x50($sp) +/* 0633B0 7F02E880 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0633B4 7F02E884 46000306 */ mov.s $f12, $f0 +.L7F02E888: +/* 0633B8 7F02E888 826D0024 */ lb $t5, 0x24($s3) +.L7F02E88C: +/* 0633BC 7F02E88C 02002025 */ move $a0, $s0 +/* 0633C0 7F02E890 3C053F80 */ lui $a1, 0x3f80 +/* 0633C4 7F02E894 11A00004 */ beqz $t5, .L7F02E8A8 +/* 0633C8 7F02E898 3C063FCC */ lui $a2, (0x3FCCCCCD >> 16) # lui $a2, 0x3fcc +/* 0633CC 7F02E89C 3C018005 */ lui $at, %hi(D_80051FC8) +/* 0633D0 7F02E8A0 C4301FC8 */ lwc1 $f16, %lo(D_80051FC8)($at) +/* 0633D4 7F02E8A4 46028081 */ sub.s $f2, $f16, $f2 +.L7F02E8A8: +/* 0633D8 7F02E8A8 34C6CCCD */ ori $a2, (0x3FCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0633DC 7F02E8AC E7A20050 */ swc1 $f2, 0x50($sp) +/* 0633E0 7F02E8B0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0633E4 7F02E8B4 E7AC004C */ swc1 $f12, 0x4c($sp) +/* 0633E8 7F02E8B8 C7AC004C */ lwc1 $f12, 0x4c($sp) +/* 0633EC 7F02E8BC C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0633F0 7F02E8C0 82050030 */ lb $a1, 0x30($s0) +/* 0633F4 7F02E8C4 44070000 */ mfc1 $a3, $f0 +/* 0633F8 7F02E8C8 44066000 */ mfc1 $a2, $f12 +/* 0633FC 7F02E8CC 02002025 */ move $a0, $s0 +/* 063400 7F02E8D0 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 063404 7F02E8D4 E7A20010 */ swc1 $f2, 0x10($sp) +/* 063408 7F02E8D8 A2020030 */ sb $v0, 0x30($s0) +/* 06340C 7F02E8DC 8E05002C */ lw $a1, 0x2c($s0) +.L7F02E8E0: +/* 063410 7F02E8E0 C4B20028 */ lwc1 $f18, 0x28($a1) +/* 063414 7F02E8E4 4614903C */ c.lt.s $f18, $f20 +/* 063418 7F02E8E8 00000000 */ nop +/* 06341C 7F02E8EC 4500000F */ bc1f .L7F02E92C +/* 063420 7F02E8F0 00000000 */ nop +/* 063424 7F02E8F4 C4A4002C */ lwc1 $f4, 0x2c($a1) +/* 063428 7F02E8F8 02002025 */ move $a0, $s0 +/* 06342C 7F02E8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 063430 7F02E900 4604A03C */ c.lt.s $f20, $f4 +/* 063434 7F02E904 00000000 */ nop +/* 063438 7F02E908 45000008 */ bc1f .L7F02E92C +/* 06343C 7F02E90C 00000000 */ nop +/* 063440 7F02E910 44813000 */ mtc1 $at, $f6 +/* 063444 7F02E914 82060039 */ lb $a2, 0x39($s0) +/* 063448 7F02E918 82070038 */ lb $a3, 0x38($s0) +/* 06344C 7F02E91C 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 063450 7F02E920 E7A60010 */ swc1 $f6, 0x10($sp) +/* 063454 7F02E924 10000004 */ b .L7F02E938 +/* 063458 7F02E928 00008825 */ move $s1, $zero +.L7F02E92C: +/* 06345C 7F02E92C 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 063460 7F02E930 02002025 */ move $a0, $s0 +/* 063464 7F02E934 00008825 */ move $s1, $zero +.L7F02E938: +/* 063468 7F02E938 02009025 */ move $s2, $s0 +.L7F02E93C: +/* 06346C 7F02E93C 824F0038 */ lb $t7, 0x38($s2) +/* 063470 7F02E940 02002025 */ move $a0, $s0 +/* 063474 7F02E944 02202825 */ move $a1, $s1 +/* 063478 7F02E948 11E0009C */ beqz $t7, .L7F02EBBC +/* 06347C 7F02E94C 00000000 */ nop +/* 063480 7F02E950 824E003A */ lb $t6, 0x3a($s2) +/* 063484 7F02E954 55C00064 */ bnezl $t6, .L7F02EAE8 +/* 063488 7F02E958 82090031 */ lb $t1, 0x31($s0) +/* 06348C 7F02E95C 8E05002C */ lw $a1, 0x2c($s0) +/* 063490 7F02E960 02002025 */ move $a0, $s0 +/* 063494 7F02E964 00003025 */ move $a2, $zero +/* 063498 7F02E968 C4A80018 */ lwc1 $f8, 0x18($a1) +/* 06349C 7F02E96C 4614403E */ c.le.s $f8, $f20 +/* 0634A0 7F02E970 00000000 */ nop +/* 0634A4 7F02E974 45000040 */ bc1f .L7F02EA78 +/* 0634A8 7F02E978 00000000 */ nop +/* 0634AC 7F02E97C C4AA001C */ lwc1 $f10, 0x1c($a1) +/* 0634B0 7F02E980 02202825 */ move $a1, $s1 +/* 0634B4 7F02E984 460AA03C */ c.lt.s $f20, $f10 +/* 0634B8 7F02E988 00000000 */ nop +/* 0634BC 7F02E98C 4500003A */ bc1f .L7F02EA78 +/* 0634C0 7F02E990 00000000 */ nop +/* 0634C4 7F02E994 02002025 */ move $a0, $s0 +/* 0634C8 7F02E998 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0634CC 7F02E99C 24060001 */ li $a2, 1 +/* 0634D0 7F02E9A0 82190007 */ lb $t9, 7($s0) +/* 0634D4 7F02E9A4 3C188005 */ lui $t8, %hi(global_timer) +/* 0634D8 7F02E9A8 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 0634DC 7F02E9AC 2401000A */ li $at, 10 +/* 0634E0 7F02E9B0 1721002B */ bne $t9, $at, .L7F02EA60 +/* 0634E4 7F02E9B4 AE180044 */ sw $t8, 0x44($s0) +/* 0634E8 7F02E9B8 8E05002C */ lw $a1, 0x2c($s0) +/* 0634EC 7F02E9BC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0634F0 7F02E9C0 44812000 */ mtc1 $at, $f4 +/* 0634F4 7F02E9C4 C4B0001C */ lwc1 $f16, 0x1c($a1) +/* 0634F8 7F02E9C8 C4B20018 */ lwc1 $f18, 0x18($a1) +/* 0634FC 7F02E9CC 46128001 */ sub.s $f0, $f16, $f18 +/* 063500 7F02E9D0 4604003C */ c.lt.s $f0, $f4 +/* 063504 7F02E9D4 00000000 */ nop +/* 063508 7F02E9D8 4502001C */ bc1fl .L7F02EA4C +/* 06350C 7F02E9DC 4405C000 */ mfc1 $a1, $f24 +/* 063510 7F02E9E0 4600018D */ trunc.w.s $f6, $f0 +/* 063514 7F02E9E4 8E080040 */ lw $t0, 0x40($s0) +/* 063518 7F02E9E8 240C003C */ li $t4, 60 +/* 06351C 7F02E9EC 02602025 */ move $a0, $s3 +/* 063520 7F02E9F0 440A3000 */ mfc1 $t2, $f6 +/* 063524 7F02E9F4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 063528 7F02E9F8 000A5840 */ sll $t3, $t2, 1 +/* 06352C 7F02E9FC 018B6823 */ subu $t5, $t4, $t3 +/* 063530 7F02EA00 010D082A */ slt $at, $t0, $t5 +/* 063534 7F02EA04 54200008 */ bnezl $at, .L7F02EA28 +/* 063538 7F02EA08 4406B000 */ mfc1 $a2, $f22 +/* 06353C 7F02EA0C 4405C000 */ mfc1 $a1, $f24 +/* 063540 7F02EA10 4406B000 */ mfc1 $a2, $f22 +/* 063544 7F02EA14 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063548 7F02EA18 02602025 */ move $a0, $s3 +/* 06354C 7F02EA1C 1000006A */ b .L7F02EBC8 +/* 063550 7F02EA20 26310001 */ addiu $s1, $s1, 1 +/* 063554 7F02EA24 4406B000 */ mfc1 $a2, $f22 +.L7F02EA28: +/* 063558 7F02EA28 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06355C 7F02EA2C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 063560 7F02EA30 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 063564 7F02EA34 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 063568 7F02EA38 8E0F0040 */ lw $t7, 0x40($s0) +/* 06356C 7F02EA3C 01EEC021 */ addu $t8, $t7, $t6 +/* 063570 7F02EA40 10000060 */ b .L7F02EBC4 +/* 063574 7F02EA44 AE180040 */ sw $t8, 0x40($s0) +/* 063578 7F02EA48 4405C000 */ mfc1 $a1, $f24 +.L7F02EA4C: +/* 06357C 7F02EA4C 4406B000 */ mfc1 $a2, $f22 +/* 063580 7F02EA50 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063584 7F02EA54 02602025 */ move $a0, $s3 +/* 063588 7F02EA58 1000005B */ b .L7F02EBC8 +/* 06358C 7F02EA5C 26310001 */ addiu $s1, $s1, 1 +.L7F02EA60: +/* 063590 7F02EA60 4405C000 */ mfc1 $a1, $f24 +/* 063594 7F02EA64 4406B000 */ mfc1 $a2, $f22 +/* 063598 7F02EA68 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06359C 7F02EA6C 02602025 */ move $a0, $s3 +/* 0635A0 7F02EA70 10000055 */ b .L7F02EBC8 +/* 0635A4 7F02EA74 26310001 */ addiu $s1, $s1, 1 +.L7F02EA78: +/* 0635A8 7F02EA78 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0635AC 7F02EA7C 02202825 */ move $a1, $s1 +/* 0635B0 7F02EA80 82190007 */ lb $t9, 7($s0) +/* 0635B4 7F02EA84 2401000A */ li $at, 10 +/* 0635B8 7F02EA88 02002025 */ move $a0, $s0 +/* 0635BC 7F02EA8C 1721000C */ bne $t9, $at, .L7F02EAC0 +/* 0635C0 7F02EA90 3C063F4C */ lui $a2, 0x3f4c +/* 0635C4 7F02EA94 4405C000 */ mfc1 $a1, $f24 +/* 0635C8 7F02EA98 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0635CC 7F02EA9C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0635D0 7F02EAA0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0635D4 7F02EAA4 02002025 */ move $a0, $s0 +/* 0635D8 7F02EAA8 44050000 */ mfc1 $a1, $f0 +/* 0635DC 7F02EAAC 4406B000 */ mfc1 $a2, $f22 +/* 0635E0 7F02EAB0 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0635E4 7F02EAB4 02602025 */ move $a0, $s3 +/* 0635E8 7F02EAB8 10000043 */ b .L7F02EBC8 +/* 0635EC 7F02EABC 26310001 */ addiu $s1, $s1, 1 +.L7F02EAC0: +/* 0635F0 7F02EAC0 4405C000 */ mfc1 $a1, $f24 +/* 0635F4 7F02EAC4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0635F8 7F02EAC8 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0635FC 7F02EACC 44050000 */ mfc1 $a1, $f0 +/* 063600 7F02EAD0 4406B000 */ mfc1 $a2, $f22 +/* 063604 7F02EAD4 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063608 7F02EAD8 02602025 */ move $a0, $s3 +/* 06360C 7F02EADC 1000003A */ b .L7F02EBC8 +/* 063610 7F02EAE0 26310001 */ addiu $s1, $s1, 1 +/* 063614 7F02EAE4 82090031 */ lb $t1, 0x31($s0) +.L7F02EAE8: +/* 063618 7F02EAE8 02002025 */ move $a0, $s0 +/* 06361C 7F02EAEC 00003025 */ move $a2, $zero +/* 063620 7F02EAF0 1520002E */ bnez $t1, .L7F02EBAC +/* 063624 7F02EAF4 00000000 */ nop +/* 063628 7F02EAF8 82020032 */ lb $v0, 0x32($s0) +/* 06362C 7F02EAFC 12220004 */ beq $s1, $v0, .L7F02EB10 +/* 063630 7F02EB00 02025021 */ addu $t2, $s0, $v0 +/* 063634 7F02EB04 814C003A */ lb $t4, 0x3a($t2) +/* 063638 7F02EB08 15800028 */ bnez $t4, .L7F02EBAC +/* 06363C 7F02EB0C 00000000 */ nop +.L7F02EB10: +/* 063640 7F02EB10 8E05002C */ lw $a1, 0x2c($s0) +/* 063644 7F02EB14 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063648 7F02EB18 4600B03E */ c.le.s $f22, $f0 +/* 06364C 7F02EB1C 00000000 */ nop +/* 063650 7F02EB20 4502000B */ bc1fl .L7F02EB50 +/* 063654 7F02EB24 4616003C */ c.lt.s $f0, $f22 +/* 063658 7F02EB28 4614003E */ c.le.s $f0, $f20 +/* 06365C 7F02EB2C 00000000 */ nop +/* 063660 7F02EB30 45020007 */ bc1fl .L7F02EB50 +/* 063664 7F02EB34 4616003C */ c.lt.s $f0, $f22 +/* 063668 7F02EB38 C4A80024 */ lwc1 $f8, 0x24($a1) +/* 06366C 7F02EB3C 4608A03E */ c.le.s $f20, $f8 +/* 063670 7F02EB40 00000000 */ nop +/* 063674 7F02EB44 4503000B */ bc1tl .L7F02EB74 +/* 063678 7F02EB48 82080033 */ lb $t0, 0x33($s0) +/* 06367C 7F02EB4C 4616003C */ c.lt.s $f0, $f22 +.L7F02EB50: +/* 063680 7F02EB50 00000000 */ nop +/* 063684 7F02EB54 45000015 */ bc1f .L7F02EBAC +/* 063688 7F02EB58 00000000 */ nop +/* 06368C 7F02EB5C C4AA0018 */ lwc1 $f10, 0x18($a1) +/* 063690 7F02EB60 4614503E */ c.le.s $f10, $f20 +/* 063694 7F02EB64 00000000 */ nop +/* 063698 7F02EB68 45000010 */ bc1f .L7F02EBAC +/* 06369C 7F02EB6C 00000000 */ nop +/* 0636A0 7F02EB70 82080033 */ lb $t0, 0x33($s0) +.L7F02EB74: +/* 0636A4 7F02EB74 24060001 */ li $a2, 1 +/* 0636A8 7F02EB78 00C25823 */ subu $t3, $a2, $v0 +/* 0636AC 7F02EB7C 250D0001 */ addiu $t5, $t0, 1 +/* 0636B0 7F02EB80 A2060031 */ sb $a2, 0x31($s0) +/* 0636B4 7F02EB84 A20B0032 */ sb $t3, 0x32($s0) +/* 0636B8 7F02EB88 A20D0033 */ sb $t5, 0x33($s0) +/* 0636BC 7F02EB8C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 0636C0 7F02EB90 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 0636C4 7F02EB94 02002025 */ move $a0, $s0 +/* 0636C8 7F02EB98 02202825 */ move $a1, $s1 +/* 0636CC 7F02EB9C 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636D0 7F02EBA0 AE0F0044 */ sw $t7, 0x44($s0) +/* 0636D4 7F02EBA4 10000008 */ b .L7F02EBC8 +/* 0636D8 7F02EBA8 26310001 */ addiu $s1, $s1, 1 +.L7F02EBAC: +/* 0636DC 7F02EBAC 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636E0 7F02EBB0 02202825 */ move $a1, $s1 +/* 0636E4 7F02EBB4 10000004 */ b .L7F02EBC8 +/* 0636E8 7F02EBB8 26310001 */ addiu $s1, $s1, 1 +.L7F02EBBC: +/* 0636EC 7F02EBBC 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636F0 7F02EBC0 00003025 */ move $a2, $zero +.L7F02EBC4: +/* 0636F4 7F02EBC4 26310001 */ addiu $s1, $s1, 1 +.L7F02EBC8: +/* 0636F8 7F02EBC8 24010002 */ li $at, 2 +/* 0636FC 7F02EBCC 1621FF5B */ bne $s1, $at, .L7F02E93C +/* 063700 7F02EBD0 26520001 */ addiu $s2, $s2, 1 +/* 063704 7F02EBD4 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02EBD8: +/* 063708 7F02EBD8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 06370C 7F02EBDC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 063710 7F02EBE0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 063714 7F02EBE4 8FB00034 */ lw $s0, 0x34($sp) +/* 063718 7F02EBE8 8FB10038 */ lw $s1, 0x38($sp) +/* 06371C 7F02EBEC 8FB2003C */ lw $s2, 0x3c($sp) +/* 063720 7F02EBF0 8FB30040 */ lw $s3, 0x40($sp) +/* 063724 7F02EBF4 03E00008 */ jr $ra +/* 063728 7F02EBF8 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02EBFC(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051FCC +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F02EBFC +/* 06372C 7F02EBFC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 063730 7F02EC00 AFBF0024 */ sw $ra, 0x24($sp) +/* 063734 7F02EC04 AFB10020 */ sw $s1, 0x20($sp) +/* 063738 7F02EC08 AFB0001C */ sw $s0, 0x1c($sp) +/* 06373C 7F02EC0C 8C91001C */ lw $s1, 0x1c($a0) +/* 063740 7F02EC10 00808025 */ move $s0, $a0 +/* 063744 7F02EC14 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063748 7F02EC18 02202025 */ move $a0, $s1 +/* 06374C 7F02EC1C 8E020058 */ lw $v0, 0x58($s0) +/* 063750 7F02EC20 46000086 */ mov.s $f2, $f0 +/* 063754 7F02EC24 24010001 */ li $at, 1 +/* 063758 7F02EC28 5040004E */ beql $v0, $zero, .L7F02ED64 +/* 06375C 7F02EC2C 8E02004C */ lw $v0, 0x4c($s0) +/* 063760 7F02EC30 1441002D */ bne $v0, $at, .L7F02ECE8 +/* 063764 7F02EC34 02202025 */ move $a0, $s1 +/* 063768 7F02EC38 8E02002C */ lw $v0, 0x2c($s0) +/* 06376C 7F02EC3C 44802000 */ mtc1 $zero, $f4 +/* 063770 7F02EC40 C4400024 */ lwc1 $f0, 0x24($v0) +/* 063774 7F02EC44 4600203E */ c.le.s $f4, $f0 +/* 063778 7F02EC48 00000000 */ nop +/* 06377C 7F02EC4C 45020004 */ bc1fl .L7F02EC60 +/* 063780 7F02EC50 C442001C */ lwc1 $f2, 0x1c($v0) +/* 063784 7F02EC54 10000002 */ b .L7F02EC60 +/* 063788 7F02EC58 46000086 */ mov.s $f2, $f0 +/* 06378C 7F02EC5C C442001C */ lwc1 $f2, 0x1c($v0) +.L7F02EC60: +/* 063790 7F02EC60 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063794 7F02EC64 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063798 7F02EC68 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06379C 7F02EC6C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0637A0 7F02EC70 AFA2002C */ sw $v0, 0x2c($sp) +/* 0637A4 7F02EC74 02002025 */ move $a0, $s0 +/* 0637A8 7F02EC78 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0637AC 7F02EC7C 3C053F00 */ lui $a1, 0x3f00 +/* 0637B0 7F02EC80 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 0637B4 7F02EC84 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0637B8 7F02EC88 44813000 */ mtc1 $at, $f6 +/* 0637BC 7F02EC8C 82260024 */ lb $a2, 0x24($s1) +/* 0637C0 7F02EC90 44071000 */ mfc1 $a3, $f2 +/* 0637C4 7F02EC94 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0637C8 7F02EC98 02202025 */ move $a0, $s1 +/* 0637CC 7F02EC9C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0637D0 7F02ECA0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0637D4 7F02ECA4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0637D8 7F02ECA8 8E0E002C */ lw $t6, 0x2c($s0) +/* 0637DC 7F02ECAC 44804000 */ mtc1 $zero, $f8 +/* 0637E0 7F02ECB0 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 0637E4 7F02ECB4 4600403E */ c.le.s $f8, $f0 +/* 0637E8 7F02ECB8 00000000 */ nop +/* 0637EC 7F02ECBC 45020005 */ bc1fl .L7F02ECD4 +/* 0637F0 7F02ECC0 240F0002 */ li $t7, 2 +/* 0637F4 7F02ECC4 44050000 */ mfc1 $a1, $f0 +/* 0637F8 7F02ECC8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0637FC 7F02ECCC 02202025 */ move $a0, $s1 +/* 063800 7F02ECD0 240F0002 */ li $t7, 2 +.L7F02ECD4: +/* 063804 7F02ECD4 AE0F0058 */ sw $t7, 0x58($s0) +/* 063808 7F02ECD8 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 06380C 7F02ECDC 02002025 */ move $a0, $s0 +/* 063810 7F02ECE0 1000007B */ b .L7F02EED0 +/* 063814 7F02ECE4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ECE8: +/* 063818 7F02ECE8 24010002 */ li $at, 2 +/* 06381C 7F02ECEC 1441001C */ bne $v0, $at, .L7F02ED60 +/* 063820 7F02ECF0 02202025 */ move $a0, $s1 +/* 063824 7F02ECF4 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063828 7F02ECF8 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06382C 7F02ECFC C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063830 7F02ED00 4602003E */ c.le.s $f0, $f2 +/* 063834 7F02ED04 00000000 */ nop +/* 063838 7F02ED08 45020071 */ bc1fl .L7F02EED0 +/* 06383C 7F02ED0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 063840 7F02ED10 8E18004C */ lw $t8, 0x4c($s0) +/* 063844 7F02ED14 8E0A0054 */ lw $t2, 0x54($s0) +/* 063848 7F02ED18 2401FFBF */ li $at, -65 +/* 06384C 7F02ED1C 37190020 */ ori $t9, $t8, 0x20 +/* 063850 7F02ED20 AE19004C */ sw $t9, 0x4c($s0) +/* 063854 7F02ED24 03214824 */ and $t1, $t9, $at +/* 063858 7F02ED28 11400007 */ beqz $t2, .L7F02ED48 +/* 06385C 7F02ED2C AE09004C */ sw $t1, 0x4c($s0) +/* 063860 7F02ED30 02002025 */ move $a0, $s0 +/* 063864 7F02ED34 01202825 */ move $a1, $t1 +/* 063868 7F02ED38 0FC09558 */ jal sub_GAME_7F025560 +/* 06386C 7F02ED3C 8E060050 */ lw $a2, 0x50($s0) +/* 063870 7F02ED40 10000063 */ b .L7F02EED0 +/* 063874 7F02ED44 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED48: +/* 063878 7F02ED48 02002025 */ move $a0, $s0 +/* 06387C 7F02ED4C 8E05004C */ lw $a1, 0x4c($s0) +/* 063880 7F02ED50 0FC095BC */ jal sub_GAME_7F0256F0 +/* 063884 7F02ED54 8E060050 */ lw $a2, 0x50($s0) +/* 063888 7F02ED58 1000005D */ b .L7F02EED0 +/* 06388C 7F02ED5C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED60: +/* 063890 7F02ED60 8E02004C */ lw $v0, 0x4c($s0) +.L7F02ED64: +/* 063894 7F02ED64 304B0020 */ andi $t3, $v0, 0x20 +/* 063898 7F02ED68 1160001C */ beqz $t3, .L7F02EDDC +/* 06389C 7F02ED6C 304C0040 */ andi $t4, $v0, 0x40 +/* 0638A0 7F02ED70 1180000D */ beqz $t4, .L7F02EDA8 +/* 0638A4 7F02ED74 02202025 */ move $a0, $s1 +/* 0638A8 7F02ED78 3C018005 */ lui $at, %hi(D_80051FCC) +/* 0638AC 7F02ED7C C42A1FCC */ lwc1 $f10, %lo(D_80051FCC)($at) +/* 0638B0 7F02ED80 8E05002C */ lw $a1, 0x2c($s0) +/* 0638B4 7F02ED84 82060039 */ lb $a2, 0x39($s0) +/* 0638B8 7F02ED88 82070038 */ lb $a3, 0x38($s0) +/* 0638BC 7F02ED8C 02002025 */ move $a0, $s0 +/* 0638C0 7F02ED90 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 0638C4 7F02ED94 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0638C8 7F02ED98 1440004C */ bnez $v0, .L7F02EECC +/* 0638CC 7F02ED9C 240D0001 */ li $t5, 1 +/* 0638D0 7F02EDA0 1000004A */ b .L7F02EECC +/* 0638D4 7F02EDA4 AE0D0058 */ sw $t5, 0x58($s0) +.L7F02EDA8: +/* 0638D8 7F02EDA8 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0638DC 7F02EDAC E7A20038 */ swc1 $f2, 0x38($sp) +/* 0638E0 7F02EDB0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0638E4 7F02EDB4 4602003E */ c.le.s $f0, $f2 +/* 0638E8 7F02EDB8 00000000 */ nop +/* 0638EC 7F02EDBC 45020008 */ bc1fl .L7F02EDE0 +/* 0638F0 7F02EDC0 82190036 */ lb $t9, 0x36($s0) +/* 0638F4 7F02EDC4 8E0E004C */ lw $t6, 0x4c($s0) +/* 0638F8 7F02EDC8 24180002 */ li $t8, 2 +/* 0638FC 7F02EDCC A2180030 */ sb $t8, 0x30($s0) +/* 063900 7F02EDD0 35CF0040 */ ori $t7, $t6, 0x40 +/* 063904 7F02EDD4 1000003D */ b .L7F02EECC +/* 063908 7F02EDD8 AE0F004C */ sw $t7, 0x4c($s0) +.L7F02EDDC: +/* 06390C 7F02EDDC 82190036 */ lb $t9, 0x36($s0) +.L7F02EDE0: +/* 063910 7F02EDE0 17200038 */ bnez $t9, .L7F02EEC4 +/* 063914 7F02EDE4 00000000 */ nop +/* 063918 7F02EDE8 8E08002C */ lw $t0, 0x2c($s0) +/* 06391C 7F02EDEC 44808000 */ mtc1 $zero, $f16 +/* 063920 7F02EDF0 C5000024 */ lwc1 $f0, 0x24($t0) +/* 063924 7F02EDF4 4600803C */ c.lt.s $f16, $f0 +/* 063928 7F02EDF8 00000000 */ nop +/* 06392C 7F02EDFC 45000031 */ bc1f .L7F02EEC4 +/* 063930 7F02EE00 00000000 */ nop +/* 063934 7F02EE04 4600103E */ c.le.s $f2, $f0 +/* 063938 7F02EE08 02202025 */ move $a0, $s1 +/* 06393C 7F02EE0C 4500002D */ bc1f .L7F02EEC4 +/* 063940 7F02EE10 00000000 */ nop +/* 063944 7F02EE14 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063948 7F02EE18 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06394C 7F02EE1C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063950 7F02EE20 4602003E */ c.le.s $f0, $f2 +/* 063954 7F02EE24 00000000 */ nop +/* 063958 7F02EE28 45000026 */ bc1f .L7F02EEC4 +/* 06395C 7F02EE2C 00000000 */ nop +/* 063960 7F02EE30 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063964 7F02EE34 02202025 */ move $a0, $s1 +/* 063968 7F02EE38 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06396C 7F02EE3C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063970 7F02EE40 AFA2002C */ sw $v0, 0x2c($sp) +/* 063974 7F02EE44 02002025 */ move $a0, $s0 +/* 063978 7F02EE48 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 06397C 7F02EE4C 3C053F00 */ lui $a1, 0x3f00 +/* 063980 7F02EE50 8E09002C */ lw $t1, 0x2c($s0) +/* 063984 7F02EE54 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063988 7F02EE58 44819000 */ mtc1 $at, $f18 +/* 06398C 7F02EE5C 82260024 */ lb $a2, 0x24($s1) +/* 063990 7F02EE60 8D270024 */ lw $a3, 0x24($t1) +/* 063994 7F02EE64 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063998 7F02EE68 02202025 */ move $a0, $s1 +/* 06399C 7F02EE6C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0639A0 7F02EE70 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0639A4 7F02EE74 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0639A8 7F02EE78 820A0037 */ lb $t2, 0x37($s0) +/* 0639AC 7F02EE7C 5140000E */ beql $t2, $zero, .L7F02EEB8 +/* 0639B0 7F02EE80 8E0C002C */ lw $t4, 0x2c($s0) +/* 0639B4 7F02EE84 8E0B002C */ lw $t3, 0x2c($s0) +/* 0639B8 7F02EE88 44802000 */ mtc1 $zero, $f4 +/* 0639BC 7F02EE8C C5600014 */ lwc1 $f0, 0x14($t3) +/* 0639C0 7F02EE90 4600203E */ c.le.s $f4, $f0 +/* 0639C4 7F02EE94 00000000 */ nop +/* 0639C8 7F02EE98 4500000A */ bc1f .L7F02EEC4 +/* 0639CC 7F02EE9C 00000000 */ nop +/* 0639D0 7F02EEA0 44050000 */ mfc1 $a1, $f0 +/* 0639D4 7F02EEA4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639D8 7F02EEA8 02202025 */ move $a0, $s1 +/* 0639DC 7F02EEAC 10000005 */ b .L7F02EEC4 +/* 0639E0 7F02EEB0 00000000 */ nop +/* 0639E4 7F02EEB4 8E0C002C */ lw $t4, 0x2c($s0) +.L7F02EEB8: +/* 0639E8 7F02EEB8 02202025 */ move $a0, $s1 +/* 0639EC 7F02EEBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639F0 7F02EEC0 8D85001C */ lw $a1, 0x1c($t4) +.L7F02EEC4: +/* 0639F4 7F02EEC4 0FC0B930 */ jal sub_GAME_7F02E4C0 +/* 0639F8 7F02EEC8 02002025 */ move $a0, $s0 +.L7F02EECC: +/* 0639FC 7F02EECC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02EED0: +/* 063A00 7F02EED0 8FB0001C */ lw $s0, 0x1c($sp) +/* 063A04 7F02EED4 8FB10020 */ lw $s1, 0x20($sp) +/* 063A08 7F02EED8 03E00008 */ jr $ra +/* 063A0C 7F02EEDC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051FCC +.word 0x3e4ccccd /*0.2*/ + +.text +glabel sub_GAME_7F02EBFC +/* 063A74 7F02EF04 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 063A78 7F02EF08 AFBF0024 */ sw $ra, 0x24($sp) +/* 063A7C 7F02EF0C AFB10020 */ sw $s1, 0x20($sp) +/* 063A80 7F02EF10 AFB0001C */ sw $s0, 0x1c($sp) +/* 063A84 7F02EF14 8C91001C */ lw $s1, 0x1c($a0) +/* 063A88 7F02EF18 00808025 */ move $s0, $a0 +/* 063A8C 7F02EF1C 0FC1BEEB */ jal sub_GAME_7F06F5BC +/* 063A90 7F02EF20 02202025 */ move $a0, $s1 +/* 063A94 7F02EF24 8E020058 */ lw $v0, 0x58($s0) +/* 063A98 7F02EF28 46000086 */ mov.s $f2, $f0 +/* 063A9C 7F02EF2C 24010001 */ li $at, 1 +/* 063AA0 7F02EF30 5040004C */ beql $v0, $zero, .Ljp7F02F064 +/* 063AA4 7F02EF34 8E02004C */ lw $v0, 0x4c($s0) +/* 063AA8 7F02EF38 1441002D */ bne $v0, $at, .Ljp7F02EFF0 +/* 063AAC 7F02EF3C 02202025 */ move $a0, $s1 +/* 063AB0 7F02EF40 8E02002C */ lw $v0, 0x2c($s0) +/* 063AB4 7F02EF44 44802000 */ mtc1 $zero, $f4 +/* 063AB8 7F02EF48 C4400024 */ lwc1 $f0, 0x24($v0) +/* 063ABC 7F02EF4C 4600203E */ c.le.s $f4, $f0 +/* 063AC0 7F02EF50 00000000 */ nop +/* 063AC4 7F02EF54 45020004 */ bc1fl .Ljp7F02EF68 +/* 063AC8 7F02EF58 C442001C */ lwc1 $f2, 0x1c($v0) +/* 063ACC 7F02EF5C 10000002 */ b .Ljp7F02EF68 +/* 063AD0 7F02EF60 46000086 */ mov.s $f2, $f0 +/* 063AD4 7F02EF64 C442001C */ lwc1 $f2, 0x1c($v0) +.Ljp7F02EF68: +/* 063AD8 7F02EF68 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 063ADC 7F02EF6C E7A20034 */ swc1 $f2, 0x34($sp) +/* 063AE0 7F02EF70 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063AE4 7F02EF74 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063AE8 7F02EF78 AFA2002C */ sw $v0, 0x2c($sp) +/* 063AEC 7F02EF7C 02002025 */ move $a0, $s0 +/* 063AF0 7F02EF80 0FC08F99 */ jal sub_GAME_7F023B5C +/* 063AF4 7F02EF84 3C053F00 */ lui $a1, 0x3f00 +/* 063AF8 7F02EF88 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063AFC 7F02EF8C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063B00 7F02EF90 44813000 */ mtc1 $at, $f6 +/* 063B04 7F02EF94 82260024 */ lb $a2, 0x24($s1) +/* 063B08 7F02EF98 44071000 */ mfc1 $a3, $f2 +/* 063B0C 7F02EF9C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063B10 7F02EFA0 02202025 */ move $a0, $s1 +/* 063B14 7F02EFA4 8FA5002C */ lw $a1, 0x2c($sp) +/* 063B18 7F02EFA8 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 063B1C 7F02EFAC E7A60014 */ swc1 $f6, 0x14($sp) +/* 063B20 7F02EFB0 8E0E002C */ lw $t6, 0x2c($s0) +/* 063B24 7F02EFB4 44804000 */ mtc1 $zero, $f8 +/* 063B28 7F02EFB8 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 063B2C 7F02EFBC 4600403E */ c.le.s $f8, $f0 +/* 063B30 7F02EFC0 00000000 */ nop +/* 063B34 7F02EFC4 45020005 */ bc1fl .Ljp7F02EFDC +/* 063B38 7F02EFC8 240F0002 */ li $t7, 2 +/* 063B3C 7F02EFCC 44050000 */ mfc1 $a1, $f0 +/* 063B40 7F02EFD0 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063B44 7F02EFD4 02202025 */ move $a0, $s1 +/* 063B48 7F02EFD8 240F0002 */ li $t7, 2 +.Ljp7F02EFDC: +/* 063B4C 7F02EFDC AE0F0058 */ sw $t7, 0x58($s0) +/* 063B50 7F02EFE0 0FC0B500 */ jal sub_GAME_7F02D0F8 +/* 063B54 7F02EFE4 02002025 */ move $a0, $s0 +/* 063B58 7F02EFE8 10000079 */ b .Ljp7F02F1D0 +/* 063B5C 7F02EFEC 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02EFF0: +/* 063B60 7F02EFF0 24010002 */ li $at, 2 +/* 063B64 7F02EFF4 1441001A */ bne $v0, $at, .Ljp7F02F060 +/* 063B68 7F02EFF8 02202025 */ move $a0, $s1 +/* 063B6C 7F02EFFC 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063B70 7F02F000 E7A20038 */ swc1 $f2, 0x38($sp) +/* 063B74 7F02F004 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063B78 7F02F008 4602003E */ c.le.s $f0, $f2 +/* 063B7C 7F02F00C 00000000 */ nop +/* 063B80 7F02F010 4502006F */ bc1fl .Ljp7F02F1D0 +/* 063B84 7F02F014 8FBF0024 */ lw $ra, 0x24($sp) +/* 063B88 7F02F018 8E18004C */ lw $t8, 0x4c($s0) +/* 063B8C 7F02F01C 8E080054 */ lw $t0, 0x54($s0) +/* 063B90 7F02F020 2401FFBF */ li $at, -65 +/* 063B94 7F02F024 0301C824 */ and $t9, $t8, $at +/* 063B98 7F02F028 11000007 */ beqz $t0, .Ljp7F02F048 +/* 063B9C 7F02F02C AE19004C */ sw $t9, 0x4c($s0) +/* 063BA0 7F02F030 02002025 */ move $a0, $s0 +/* 063BA4 7F02F034 03202825 */ move $a1, $t9 +/* 063BA8 7F02F038 0FC0961A */ jal sub_GAME_7F025560 +/* 063BAC 7F02F03C 8E060050 */ lw $a2, 0x50($s0) +/* 063BB0 7F02F040 10000063 */ b .Ljp7F02F1D0 +/* 063BB4 7F02F044 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F048: +/* 063BB8 7F02F048 02002025 */ move $a0, $s0 +/* 063BBC 7F02F04C 8E05004C */ lw $a1, 0x4c($s0) +/* 063BC0 7F02F050 0FC0967E */ jal sub_GAME_7F0256F0 +/* 063BC4 7F02F054 8E060050 */ lw $a2, 0x50($s0) +/* 063BC8 7F02F058 1000005D */ b .Ljp7F02F1D0 +/* 063BCC 7F02F05C 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F060: +/* 063BD0 7F02F060 8E02004C */ lw $v0, 0x4c($s0) +.Ljp7F02F064: +/* 063BD4 7F02F064 30490020 */ andi $t1, $v0, 0x20 +/* 063BD8 7F02F068 1120001C */ beqz $t1, .Ljp7F02F0DC +/* 063BDC 7F02F06C 304A0040 */ andi $t2, $v0, 0x40 +/* 063BE0 7F02F070 1140000D */ beqz $t2, .Ljp7F02F0A8 +/* 063BE4 7F02F074 02202025 */ move $a0, $s1 +/* 063BE8 7F02F078 3C018005 */ lui $at, %hi(D_80051FCC) # $at, 0x8005 +/* 063BEC 7F02F07C C42A1FFC */ lwc1 $f10, %lo(D_80051FCC)($at) +/* 063BF0 7F02F080 8E05002C */ lw $a1, 0x2c($s0) +/* 063BF4 7F02F084 82060039 */ lb $a2, 0x39($s0) +/* 063BF8 7F02F088 82070038 */ lb $a3, 0x38($s0) +/* 063BFC 7F02F08C 02002025 */ move $a0, $s0 +/* 063C00 7F02F090 0FC0B1F2 */ jal sub_GAME_7F02C4C0 +/* 063C04 7F02F094 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 063C08 7F02F098 1440004C */ bnez $v0, .Ljp7F02F1CC +/* 063C0C 7F02F09C 240B0001 */ li $t3, 1 +/* 063C10 7F02F0A0 1000004A */ b .Ljp7F02F1CC +/* 063C14 7F02F0A4 AE0B0058 */ sw $t3, 0x58($s0) +.Ljp7F02F0A8: +/* 063C18 7F02F0A8 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063C1C 7F02F0AC E7A20038 */ swc1 $f2, 0x38($sp) +/* 063C20 7F02F0B0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063C24 7F02F0B4 4602003E */ c.le.s $f0, $f2 +/* 063C28 7F02F0B8 00000000 */ nop +/* 063C2C 7F02F0BC 45020008 */ bc1fl .Ljp7F02F0E0 +/* 063C30 7F02F0C0 820F0036 */ lb $t7, 0x36($s0) +/* 063C34 7F02F0C4 8E0C004C */ lw $t4, 0x4c($s0) +/* 063C38 7F02F0C8 240E0002 */ li $t6, 2 +/* 063C3C 7F02F0CC A20E0030 */ sb $t6, 0x30($s0) +/* 063C40 7F02F0D0 358D0040 */ ori $t5, $t4, 0x40 +/* 063C44 7F02F0D4 1000003D */ b .Ljp7F02F1CC +/* 063C48 7F02F0D8 AE0D004C */ sw $t5, 0x4c($s0) +.Ljp7F02F0DC: +/* 063C4C 7F02F0DC 820F0036 */ lb $t7, 0x36($s0) +.Ljp7F02F0E0: +/* 063C50 7F02F0E0 15E00038 */ bnez $t7, .Ljp7F02F1C4 +/* 063C54 7F02F0E4 00000000 */ nop +/* 063C58 7F02F0E8 8E18002C */ lw $t8, 0x2c($s0) +/* 063C5C 7F02F0EC 44808000 */ mtc1 $zero, $f16 +/* 063C60 7F02F0F0 C7000024 */ lwc1 $f0, 0x24($t8) +/* 063C64 7F02F0F4 4600803C */ c.lt.s $f16, $f0 +/* 063C68 7F02F0F8 00000000 */ nop +/* 063C6C 7F02F0FC 45000031 */ bc1f .Ljp7F02F1C4 +/* 063C70 7F02F100 00000000 */ nop +/* 063C74 7F02F104 4600103E */ c.le.s $f2, $f0 +/* 063C78 7F02F108 02202025 */ move $a0, $s1 +/* 063C7C 7F02F10C 4500002D */ bc1f .Ljp7F02F1C4 +/* 063C80 7F02F110 00000000 */ nop +/* 063C84 7F02F114 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063C88 7F02F118 E7A20038 */ swc1 $f2, 0x38($sp) +/* 063C8C 7F02F11C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063C90 7F02F120 4602003E */ c.le.s $f0, $f2 +/* 063C94 7F02F124 00000000 */ nop +/* 063C98 7F02F128 45000026 */ bc1f .Ljp7F02F1C4 +/* 063C9C 7F02F12C 00000000 */ nop +/* 063CA0 7F02F130 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 063CA4 7F02F134 02202025 */ move $a0, $s1 +/* 063CA8 7F02F138 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063CAC 7F02F13C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063CB0 7F02F140 AFA2002C */ sw $v0, 0x2c($sp) +/* 063CB4 7F02F144 02002025 */ move $a0, $s0 +/* 063CB8 7F02F148 0FC08F99 */ jal sub_GAME_7F023B5C +/* 063CBC 7F02F14C 3C053F00 */ lui $a1, 0x3f00 +/* 063CC0 7F02F150 8E19002C */ lw $t9, 0x2c($s0) +/* 063CC4 7F02F154 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063CC8 7F02F158 44819000 */ mtc1 $at, $f18 +/* 063CCC 7F02F15C 82260024 */ lb $a2, 0x24($s1) +/* 063CD0 7F02F160 8F270024 */ lw $a3, 0x24($t9) +/* 063CD4 7F02F164 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063CD8 7F02F168 02202025 */ move $a0, $s1 +/* 063CDC 7F02F16C 8FA5002C */ lw $a1, 0x2c($sp) +/* 063CE0 7F02F170 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 063CE4 7F02F174 E7B20014 */ swc1 $f18, 0x14($sp) +/* 063CE8 7F02F178 82080037 */ lb $t0, 0x37($s0) +/* 063CEC 7F02F17C 5100000E */ beql $t0, $zero, .Ljp7F02F1B8 +/* 063CF0 7F02F180 8E0A002C */ lw $t2, 0x2c($s0) +/* 063CF4 7F02F184 8E09002C */ lw $t1, 0x2c($s0) +/* 063CF8 7F02F188 44802000 */ mtc1 $zero, $f4 +/* 063CFC 7F02F18C C5200014 */ lwc1 $f0, 0x14($t1) +/* 063D00 7F02F190 4600203E */ c.le.s $f4, $f0 +/* 063D04 7F02F194 00000000 */ nop +/* 063D08 7F02F198 4500000A */ bc1f .Ljp7F02F1C4 +/* 063D0C 7F02F19C 00000000 */ nop +/* 063D10 7F02F1A0 44050000 */ mfc1 $a1, $f0 +/* 063D14 7F02F1A4 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063D18 7F02F1A8 02202025 */ move $a0, $s1 +/* 063D1C 7F02F1AC 10000005 */ b .Ljp7F02F1C4 +/* 063D20 7F02F1B0 00000000 */ nop +/* 063D24 7F02F1B4 8E0A002C */ lw $t2, 0x2c($s0) +.Ljp7F02F1B8: +/* 063D28 7F02F1B8 02202025 */ move $a0, $s1 +/* 063D2C 7F02F1BC 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063D30 7F02F1C0 8D45001C */ lw $a1, 0x1c($t2) +.Ljp7F02F1C4: +/* 063D34 7F02F1C4 0FC0B9F2 */ jal sub_GAME_7F02E4C0 +/* 063D38 7F02F1C8 02002025 */ move $a0, $s0 +.Ljp7F02F1CC: +/* 063D3C 7F02F1CC 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F1D0: +/* 063D40 7F02F1D0 8FB0001C */ lw $s0, 0x1c($sp) +/* 063D44 7F02F1D4 8FB10020 */ lw $s1, 0x20($sp) +/* 063D48 7F02F1D8 03E00008 */ jr $ra +/* 063D4C 7F02F1DC 27BD0040 */ addiu $sp, $sp, 0x40 + +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F02EEE0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02EEE0 +/* 063A10 7F02EEE0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 063A14 7F02EEE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 063A18 7F02EEE8 AFA40048 */ sw $a0, 0x48($sp) +/* 063A1C 7F02EEEC 808F0035 */ lb $t7, 0x35($a0) +/* 063A20 7F02EEF0 11E0013B */ beqz $t7, .L7F02F3E0 +/* 063A24 7F02EEF4 00000000 */ nop +/* 063A28 7F02EEF8 8C84001C */ lw $a0, 0x1c($a0) +/* 063A2C 7F02EEFC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063A30 7F02EF00 AFA40044 */ sw $a0, 0x44($sp) +/* 063A34 7F02EF04 8FA70048 */ lw $a3, 0x48($sp) +/* 063A38 7F02EF08 3C188003 */ lui $t8, %hi(D_80030198) +/* 063A3C 7F02EF0C 27180198 */ addiu $t8, %lo(D_80030198) # addiu $t8, $t8, 0x198 +/* 063A40 7F02EF10 8CE2002C */ lw $v0, 0x2c($a3) +/* 063A44 7F02EF14 3C198003 */ lui $t9, %hi(D_800301E0) +/* 063A48 7F02EF18 46000306 */ mov.s $f12, $f0 +/* 063A4C 7F02EF1C 13020009 */ beq $t8, $v0, .L7F02EF44 +/* 063A50 7F02EF20 273901E0 */ addiu $t9, %lo(D_800301E0) # addiu $t9, $t9, 0x1e0 +/* 063A54 7F02EF24 13220007 */ beq $t9, $v0, .L7F02EF44 +/* 063A58 7F02EF28 3C088003 */ lui $t0, %hi(D_80030228) +/* 063A5C 7F02EF2C 25080228 */ addiu $t0, %lo(D_80030228) # addiu $t0, $t0, 0x228 +/* 063A60 7F02EF30 11020004 */ beq $t0, $v0, .L7F02EF44 +/* 063A64 7F02EF34 3C098003 */ lui $t1, %hi(D_80030270) +/* 063A68 7F02EF38 25290270 */ addiu $t1, %lo(D_80030270) # addiu $t1, $t1, 0x270 +/* 063A6C 7F02EF3C 152200C7 */ bne $t1, $v0, .L7F02F25C +/* 063A70 7F02EF40 3C188003 */ lui $t8, %hi(D_800302B8) +.L7F02EF44: +/* 063A74 7F02EF44 C4440014 */ lwc1 $f4, 0x14($v0) +/* 063A78 7F02EF48 8FAA0044 */ lw $t2, 0x44($sp) +/* 063A7C 7F02EF4C 4600203E */ c.le.s $f4, $f0 +/* 063A80 7F02EF50 00000000 */ nop +/* 063A84 7F02EF54 450000BF */ bc1f .L7F02F254 +/* 063A88 7F02EF58 00000000 */ nop +/* 063A8C 7F02EF5C 814B0024 */ lb $t3, 0x24($t2) +/* 063A90 7F02EF60 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063A94 7F02EF64 44811000 */ mtc1 $at, $f2 +/* 063A98 7F02EF68 AFAB0038 */ sw $t3, 0x38($sp) +/* 063A9C 7F02EF6C 80EC0039 */ lb $t4, 0x39($a3) +/* 063AA0 7F02EF70 24430120 */ addiu $v1, $v0, 0x120 +/* 063AA4 7F02EF74 11800010 */ beqz $t4, .L7F02EFB8 +/* 063AA8 7F02EF78 00000000 */ nop +/* 063AAC 7F02EF7C 80ED0038 */ lb $t5, 0x38($a3) +/* 063AB0 7F02EF80 11A0000D */ beqz $t5, .L7F02EFB8 +/* 063AB4 7F02EF84 00000000 */ nop +/* 063AB8 7F02EF88 AFA3003C */ sw $v1, 0x3c($sp) +/* 063ABC 7F02EF8C 0C002914 */ jal get_random_value +/* 063AC0 7F02EF90 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063AC4 7F02EF94 304F0001 */ andi $t7, $v0, 1 +/* 063AC8 7F02EF98 8FA3003C */ lw $v1, 0x3c($sp) +/* 063ACC 7F02EF9C 15E00004 */ bnez $t7, .L7F02EFB0 +/* 063AD0 7F02EFA0 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063AD4 7F02EFA4 24630120 */ addiu $v1, $v1, 0x120 +/* 063AD8 7F02EFA8 10000003 */ b .L7F02EFB8 +/* 063ADC 7F02EFAC 8FA70048 */ lw $a3, 0x48($sp) +.L7F02EFB0: +/* 063AE0 7F02EFB0 24630240 */ addiu $v1, $v1, 0x240 +/* 063AE4 7F02EFB4 8FA70048 */ lw $a3, 0x48($sp) +.L7F02EFB8: +/* 063AE8 7F02EFB8 3C028003 */ lui $v0, %hi(D_80030078) +/* 063AEC 7F02EFBC 24420078 */ addiu $v0, %lo(D_80030078) # addiu $v0, $v0, 0x78 +/* 063AF0 7F02EFC0 244E0240 */ addiu $t6, $v0, 0x240 +/* 063AF4 7F02EFC4 146E0005 */ bne $v1, $t6, .L7F02EFDC +/* 063AF8 7F02EFC8 00E02025 */ move $a0, $a3 +/* 063AFC 7F02EFCC 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B00 7F02EFD0 44811000 */ mtc1 $at, $f2 +/* 063B04 7F02EFD4 10000043 */ b .L7F02F0E4 +/* 063B08 7F02EFD8 24190002 */ li $t9, 2 +.L7F02EFDC: +/* 063B0C 7F02EFDC 24580288 */ addiu $t8, $v0, 0x288 +/* 063B10 7F02EFE0 14780005 */ bne $v1, $t8, .L7F02EFF8 +/* 063B14 7F02EFE4 245902D0 */ addiu $t9, $v0, 0x2d0 +/* 063B18 7F02EFE8 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B1C 7F02EFEC 44811000 */ mtc1 $at, $f2 +/* 063B20 7F02EFF0 1000003C */ b .L7F02F0E4 +/* 063B24 7F02EFF4 24190002 */ li $t9, 2 +.L7F02EFF8: +/* 063B28 7F02EFF8 14790005 */ bne $v1, $t9, .L7F02F010 +/* 063B2C 7F02EFFC 24480318 */ addiu $t0, $v0, 0x318 +/* 063B30 7F02F000 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063B34 7F02F004 44811000 */ mtc1 $at, $f2 +/* 063B38 7F02F008 10000036 */ b .L7F02F0E4 +/* 063B3C 7F02F00C 24190002 */ li $t9, 2 +.L7F02F010: +/* 063B40 7F02F010 14680005 */ bne $v1, $t0, .L7F02F028 +/* 063B44 7F02F014 24490360 */ addiu $t1, $v0, 0x360 +/* 063B48 7F02F018 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063B4C 7F02F01C 44811000 */ mtc1 $at, $f2 +/* 063B50 7F02F020 10000030 */ b .L7F02F0E4 +/* 063B54 7F02F024 24190002 */ li $t9, 2 +.L7F02F028: +/* 063B58 7F02F028 14690005 */ bne $v1, $t1, .L7F02F040 +/* 063B5C 7F02F02C 244A03A8 */ addiu $t2, $v0, 0x3a8 +/* 063B60 7F02F030 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B64 7F02F034 44811000 */ mtc1 $at, $f2 +/* 063B68 7F02F038 1000002A */ b .L7F02F0E4 +/* 063B6C 7F02F03C 24190002 */ li $t9, 2 +.L7F02F040: +/* 063B70 7F02F040 146A0005 */ bne $v1, $t2, .L7F02F058 +/* 063B74 7F02F044 244B03F0 */ addiu $t3, $v0, 0x3f0 +/* 063B78 7F02F048 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 063B7C 7F02F04C 44811000 */ mtc1 $at, $f2 +/* 063B80 7F02F050 10000024 */ b .L7F02F0E4 +/* 063B84 7F02F054 24190002 */ li $t9, 2 +.L7F02F058: +/* 063B88 7F02F058 146B0005 */ bne $v1, $t3, .L7F02F070 +/* 063B8C 7F02F05C 244C0438 */ addiu $t4, $v0, 0x438 +/* 063B90 7F02F060 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063B94 7F02F064 44811000 */ mtc1 $at, $f2 +/* 063B98 7F02F068 1000001E */ b .L7F02F0E4 +/* 063B9C 7F02F06C 24190002 */ li $t9, 2 +.L7F02F070: +/* 063BA0 7F02F070 146C0005 */ bne $v1, $t4, .L7F02F088 +/* 063BA4 7F02F074 244D0480 */ addiu $t5, $v0, 0x480 +/* 063BA8 7F02F078 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063BAC 7F02F07C 44811000 */ mtc1 $at, $f2 +/* 063BB0 7F02F080 10000018 */ b .L7F02F0E4 +/* 063BB4 7F02F084 24190002 */ li $t9, 2 +.L7F02F088: +/* 063BB8 7F02F088 146D0005 */ bne $v1, $t5, .L7F02F0A0 +/* 063BBC 7F02F08C 244F04C8 */ addiu $t7, $v0, 0x4c8 +/* 063BC0 7F02F090 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063BC4 7F02F094 44811000 */ mtc1 $at, $f2 +/* 063BC8 7F02F098 10000012 */ b .L7F02F0E4 +/* 063BCC 7F02F09C 24190002 */ li $t9, 2 +.L7F02F0A0: +/* 063BD0 7F02F0A0 146F0005 */ bne $v1, $t7, .L7F02F0B8 +/* 063BD4 7F02F0A4 244E0510 */ addiu $t6, $v0, 0x510 +/* 063BD8 7F02F0A8 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 063BDC 7F02F0AC 44811000 */ mtc1 $at, $f2 +/* 063BE0 7F02F0B0 1000000C */ b .L7F02F0E4 +/* 063BE4 7F02F0B4 24190002 */ li $t9, 2 +.L7F02F0B8: +/* 063BE8 7F02F0B8 146E0005 */ bne $v1, $t6, .L7F02F0D0 +/* 063BEC 7F02F0BC 24580558 */ addiu $t8, $v0, 0x558 +/* 063BF0 7F02F0C0 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063BF4 7F02F0C4 44811000 */ mtc1 $at, $f2 +/* 063BF8 7F02F0C8 10000006 */ b .L7F02F0E4 +/* 063BFC 7F02F0CC 24190002 */ li $t9, 2 +.L7F02F0D0: +/* 063C00 7F02F0D0 14780003 */ bne $v1, $t8, .L7F02F0E0 +/* 063C04 7F02F0D4 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063C08 7F02F0D8 44811000 */ mtc1 $at, $f2 +/* 063C0C 7F02F0DC 00000000 */ nop +.L7F02F0E0: +/* 063C10 7F02F0E0 24190002 */ li $t9, 2 +.L7F02F0E4: +/* 063C14 7F02F0E4 A0F90030 */ sb $t9, 0x30($a3) +/* 063C18 7F02F0E8 ACE3002C */ sw $v1, 0x2c($a3) +/* 063C1C 7F02F0EC A0E00008 */ sb $zero, 8($a3) +/* 063C20 7F02F0F0 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063C24 7F02F0F4 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063C28 7F02F0F8 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063C2C 7F02F0FC AFA3003C */ sw $v1, 0x3c($sp) +/* 063C30 7F02F100 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 063C34 7F02F104 3C053F00 */ lui $a1, 0x3f00 +/* 063C38 7F02F108 8FA3003C */ lw $v1, 0x3c($sp) +/* 063C3C 7F02F10C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063C40 7F02F110 8FA40044 */ lw $a0, 0x44($sp) +/* 063C44 7F02F114 8C650000 */ lw $a1, ($v1) +/* 063C48 7F02F118 8C670010 */ lw $a3, 0x10($v1) +/* 063C4C 7F02F11C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063C50 7F02F120 8FA60038 */ lw $a2, 0x38($sp) +/* 063C54 7F02F124 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063C58 7F02F128 E7A20014 */ swc1 $f2, 0x14($sp) +/* 063C5C 7F02F12C 8FA80048 */ lw $t0, 0x48($sp) +/* 063C60 7F02F130 8FA3003C */ lw $v1, 0x3c($sp) +/* 063C64 7F02F134 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063C68 7F02F138 81090036 */ lb $t1, 0x36($t0) +/* 063C6C 7F02F13C 51200014 */ beql $t1, $zero, .L7F02F190 +/* 063C70 7F02F140 C4600020 */ lwc1 $f0, 0x20($v1) +/* 063C74 7F02F144 C4600024 */ lwc1 $f0, 0x24($v1) +/* 063C78 7F02F148 44803000 */ mtc1 $zero, $f6 +/* 063C7C 7F02F14C 8FA40044 */ lw $a0, 0x44($sp) +/* 063C80 7F02F150 4600303E */ c.le.s $f6, $f0 +/* 063C84 7F02F154 00000000 */ nop +/* 063C88 7F02F158 45020008 */ bc1fl .L7F02F17C +/* 063C8C 7F02F15C 8C65001C */ lw $a1, 0x1c($v1) +/* 063C90 7F02F160 44050000 */ mfc1 $a1, $f0 +/* 063C94 7F02F164 8FA40044 */ lw $a0, 0x44($sp) +/* 063C98 7F02F168 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063C9C 7F02F16C E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CA0 7F02F170 1000001D */ b .L7F02F1E8 +/* 063CA4 7F02F174 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CA8 7F02F178 8C65001C */ lw $a1, 0x1c($v1) +.L7F02F17C: +/* 063CAC 7F02F17C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063CB0 7F02F180 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CB4 7F02F184 10000018 */ b .L7F02F1E8 +/* 063CB8 7F02F188 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CBC 7F02F18C C4600020 */ lwc1 $f0, 0x20($v1) +.L7F02F190: +/* 063CC0 7F02F190 44804000 */ mtc1 $zero, $f8 +/* 063CC4 7F02F194 8FA40044 */ lw $a0, 0x44($sp) +/* 063CC8 7F02F198 4600403E */ c.le.s $f8, $f0 +/* 063CCC 7F02F19C 00000000 */ nop +/* 063CD0 7F02F1A0 45020007 */ bc1fl .L7F02F1C0 +/* 063CD4 7F02F1A4 C4600014 */ lwc1 $f0, 0x14($v1) +/* 063CD8 7F02F1A8 44050000 */ mfc1 $a1, $f0 +/* 063CDC 7F02F1AC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063CE0 7F02F1B0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CE4 7F02F1B4 1000000C */ b .L7F02F1E8 +/* 063CE8 7F02F1B8 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CEC 7F02F1BC C4600014 */ lwc1 $f0, 0x14($v1) +.L7F02F1C0: +/* 063CF0 7F02F1C0 44805000 */ mtc1 $zero, $f10 +/* 063CF4 7F02F1C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063CF8 7F02F1C8 4600503E */ c.le.s $f10, $f0 +/* 063CFC 7F02F1CC 00000000 */ nop +/* 063D00 7F02F1D0 45020006 */ bc1fl .L7F02F1EC +/* 063D04 7F02F1D4 8FAA0048 */ lw $t2, 0x48($sp) +/* 063D08 7F02F1D8 44050000 */ mfc1 $a1, $f0 +/* 063D0C 7F02F1DC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063D10 7F02F1E0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063D14 7F02F1E4 C7A20034 */ lwc1 $f2, 0x34($sp) +.L7F02F1E8: +/* 063D18 7F02F1E8 8FAA0048 */ lw $t2, 0x48($sp) +.L7F02F1EC: +/* 063D1C 7F02F1EC 44808000 */ mtc1 $zero, $f16 +/* 063D20 7F02F1F0 8FA40044 */ lw $a0, 0x44($sp) +/* 063D24 7F02F1F4 8D4B002C */ lw $t3, 0x2c($t2) +/* 063D28 7F02F1F8 C572000C */ lwc1 $f18, 0xc($t3) +/* 063D2C 7F02F1FC 46128032 */ c.eq.s $f16, $f18 +/* 063D30 7F02F200 00000000 */ nop +/* 063D34 7F02F204 45010013 */ bc1t .L7F02F254 +/* 063D38 7F02F208 00000000 */ nop +/* 063D3C 7F02F20C 8C8C0008 */ lw $t4, 8($a0) +/* 063D40 7F02F210 8D850000 */ lw $a1, ($t4) +/* 063D44 7F02F214 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 063D48 7F02F218 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063D4C 7F02F21C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063D50 7F02F220 E442005C */ swc1 $f2, 0x5c($v0) +/* 063D54 7F02F224 8FAD0048 */ lw $t5, 0x48($sp) +/* 063D58 7F02F228 8DAF002C */ lw $t7, 0x2c($t5) +/* 063D5C 7F02F22C C5E4000C */ lwc1 $f4, 0xc($t7) +/* 063D60 7F02F230 46002187 */ neg.s $f6, $f4 +/* 063D64 7F02F234 46023203 */ div.s $f8, $f6, $f2 +/* 063D68 7F02F238 E4480058 */ swc1 $f8, 0x58($v0) +/* 063D6C 7F02F23C 8FAE0038 */ lw $t6, 0x38($sp) +/* 063D70 7F02F240 11C00004 */ beqz $t6, .L7F02F254 +/* 063D74 7F02F244 00000000 */ nop +/* 063D78 7F02F248 C44A0058 */ lwc1 $f10, 0x58($v0) +/* 063D7C 7F02F24C 46005407 */ neg.s $f16, $f10 +/* 063D80 7F02F250 E4500058 */ swc1 $f16, 0x58($v0) +.L7F02F254: +/* 063D84 7F02F254 10000062 */ b .L7F02F3E0 +/* 063D88 7F02F258 00000000 */ nop +.L7F02F25C: +/* 063D8C 7F02F25C 271802B8 */ addiu $t8, $t8, %lo(D_800302B8) +/* 063D90 7F02F260 13020022 */ beq $t8, $v0, .L7F02F2EC +/* 063D94 7F02F264 3C198003 */ lui $t9, %hi(D_80030300) +/* 063D98 7F02F268 27390300 */ addiu $t9, %lo(D_80030300) # addiu $t9, $t9, 0x300 +/* 063D9C 7F02F26C 1322001F */ beq $t9, $v0, .L7F02F2EC +/* 063DA0 7F02F270 3C088003 */ lui $t0, %hi(D_80030348) +/* 063DA4 7F02F274 25080348 */ addiu $t0, %lo(D_80030348) # addiu $t0, $t0, 0x348 +/* 063DA8 7F02F278 1102001C */ beq $t0, $v0, .L7F02F2EC +/* 063DAC 7F02F27C 3C098003 */ lui $t1, %hi(D_80030390) +/* 063DB0 7F02F280 25290390 */ addiu $t1, %lo(D_80030390) # addiu $t1, $t1, 0x390 +/* 063DB4 7F02F284 11220019 */ beq $t1, $v0, .L7F02F2EC +/* 063DB8 7F02F288 3C0A8003 */ lui $t2, %hi(D_800303D8) +/* 063DBC 7F02F28C 254A03D8 */ addiu $t2, %lo(D_800303D8) # addiu $t2, $t2, 0x3d8 +/* 063DC0 7F02F290 11420016 */ beq $t2, $v0, .L7F02F2EC +/* 063DC4 7F02F294 3C0B8003 */ lui $t3, %hi(D_80030420) +/* 063DC8 7F02F298 256B0420 */ addiu $t3, %lo(D_80030420) # addiu $t3, $t3, 0x420 +/* 063DCC 7F02F29C 11620013 */ beq $t3, $v0, .L7F02F2EC +/* 063DD0 7F02F2A0 3C0C8003 */ lui $t4, %hi(D_80030468) +/* 063DD4 7F02F2A4 258C0468 */ addiu $t4, %lo(D_80030468) # addiu $t4, $t4, 0x468 +/* 063DD8 7F02F2A8 11820010 */ beq $t4, $v0, .L7F02F2EC +/* 063DDC 7F02F2AC 3C0D8003 */ lui $t5, %hi(D_800304B0) +/* 063DE0 7F02F2B0 25AD04B0 */ addiu $t5, %lo(D_800304B0) # addiu $t5, $t5, 0x4b0 +/* 063DE4 7F02F2B4 11A2000D */ beq $t5, $v0, .L7F02F2EC +/* 063DE8 7F02F2B8 3C0F8003 */ lui $t7, %hi(D_800304F8) +/* 063DEC 7F02F2BC 25EF04F8 */ addiu $t7, %lo(D_800304F8) # addiu $t7, $t7, 0x4f8 +/* 063DF0 7F02F2C0 11E2000A */ beq $t7, $v0, .L7F02F2EC +/* 063DF4 7F02F2C4 3C0E8003 */ lui $t6, %hi(D_80030540) +/* 063DF8 7F02F2C8 25CE0540 */ addiu $t6, %lo(D_80030540) # addiu $t6, $t6, 0x540 +/* 063DFC 7F02F2CC 11C20007 */ beq $t6, $v0, .L7F02F2EC +/* 063E00 7F02F2D0 3C188003 */ lui $t8, %hi(D_80030588) +/* 063E04 7F02F2D4 27180588 */ addiu $t8, %lo(D_80030588) # addiu $t8, $t8, 0x588 +/* 063E08 7F02F2D8 13020004 */ beq $t8, $v0, .L7F02F2EC +/* 063E0C 7F02F2DC 3C198003 */ lui $t9, %hi(D_800305D0) +/* 063E10 7F02F2E0 273905D0 */ addiu $t9, %lo(D_800305D0) # addiu $t9, $t9, 0x5d0 +/* 063E14 7F02F2E4 1722003E */ bne $t9, $v0, .L7F02F3E0 +/* 063E18 7F02F2E8 00000000 */ nop +.L7F02F2EC: +/* 063E1C 7F02F2EC 80E80036 */ lb $t0, 0x36($a3) +/* 063E20 7F02F2F0 1500003B */ bnez $t0, .L7F02F3E0 +/* 063E24 7F02F2F4 00000000 */ nop +/* 063E28 7F02F2F8 C4420024 */ lwc1 $f2, 0x24($v0) +/* 063E2C 7F02F2FC 44809000 */ mtc1 $zero, $f18 +/* 063E30 7F02F300 00000000 */ nop +/* 063E34 7F02F304 4602903C */ c.lt.s $f18, $f2 +/* 063E38 7F02F308 00000000 */ nop +/* 063E3C 7F02F30C 45000034 */ bc1f .L7F02F3E0 +/* 063E40 7F02F310 00000000 */ nop +/* 063E44 7F02F314 4602003E */ c.le.s $f0, $f2 +/* 063E48 7F02F318 8FA40044 */ lw $a0, 0x44($sp) +/* 063E4C 7F02F31C 45000030 */ bc1f .L7F02F3E0 +/* 063E50 7F02F320 00000000 */ nop +/* 063E54 7F02F324 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063E58 7F02F328 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 063E5C 7F02F32C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 063E60 7F02F330 460C003E */ c.le.s $f0, $f12 +/* 063E64 7F02F334 00000000 */ nop +/* 063E68 7F02F338 45000029 */ bc1f .L7F02F3E0 +/* 063E6C 7F02F33C 00000000 */ nop +/* 063E70 7F02F340 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063E74 7F02F344 8FA40044 */ lw $a0, 0x44($sp) +/* 063E78 7F02F348 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063E7C 7F02F34C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063E80 7F02F350 AFA20024 */ sw $v0, 0x24($sp) +/* 063E84 7F02F354 8FA40048 */ lw $a0, 0x48($sp) +/* 063E88 7F02F358 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 063E8C 7F02F35C 3C053F00 */ lui $a1, 0x3f00 +/* 063E90 7F02F360 8FAA0048 */ lw $t2, 0x48($sp) +/* 063E94 7F02F364 8FA40044 */ lw $a0, 0x44($sp) +/* 063E98 7F02F368 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063E9C 7F02F36C 8D4B002C */ lw $t3, 0x2c($t2) +/* 063EA0 7F02F370 44812000 */ mtc1 $at, $f4 +/* 063EA4 7F02F374 80860024 */ lb $a2, 0x24($a0) +/* 063EA8 7F02F378 8D670024 */ lw $a3, 0x24($t3) +/* 063EAC 7F02F37C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063EB0 7F02F380 8FA50024 */ lw $a1, 0x24($sp) +/* 063EB4 7F02F384 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063EB8 7F02F388 E7A40014 */ swc1 $f4, 0x14($sp) +/* 063EBC 7F02F38C 8FAC0048 */ lw $t4, 0x48($sp) +/* 063EC0 7F02F390 8FAE0048 */ lw $t6, 0x48($sp) +/* 063EC4 7F02F394 818D0037 */ lb $t5, 0x37($t4) +/* 063EC8 7F02F398 51A0000E */ beql $t5, $zero, .L7F02F3D4 +/* 063ECC 7F02F39C 8DD8002C */ lw $t8, 0x2c($t6) +/* 063ED0 7F02F3A0 8D8F002C */ lw $t7, 0x2c($t4) +/* 063ED4 7F02F3A4 44803000 */ mtc1 $zero, $f6 +/* 063ED8 7F02F3A8 C5E00014 */ lwc1 $f0, 0x14($t7) +/* 063EDC 7F02F3AC 4600303E */ c.le.s $f6, $f0 +/* 063EE0 7F02F3B0 00000000 */ nop +/* 063EE4 7F02F3B4 4500000A */ bc1f .L7F02F3E0 +/* 063EE8 7F02F3B8 00000000 */ nop +/* 063EEC 7F02F3BC 44050000 */ mfc1 $a1, $f0 +/* 063EF0 7F02F3C0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063EF4 7F02F3C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063EF8 7F02F3C8 10000005 */ b .L7F02F3E0 +/* 063EFC 7F02F3CC 00000000 */ nop +/* 063F00 7F02F3D0 8DD8002C */ lw $t8, 0x2c($t6) +.L7F02F3D4: +/* 063F04 7F02F3D4 8FA40044 */ lw $a0, 0x44($sp) +/* 063F08 7F02F3D8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063F0C 7F02F3DC 8F05001C */ lw $a1, 0x1c($t8) +.L7F02F3E0: +/* 063F10 7F02F3E0 0FC0B930 */ jal sub_GAME_7F02E4C0 +/* 063F14 7F02F3E4 8FA40048 */ lw $a0, 0x48($sp) +/* 063F18 7F02F3E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 063F1C 7F02F3EC 27BD0048 */ addiu $sp, $sp, 0x48 +/* 063F20 7F02F3F0 03E00008 */ jr $ra +/* 063F24 7F02F3F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F3F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F3F8 +/* 063F28 7F02F3F8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 063F2C 7F02F3FC AFB00020 */ sw $s0, 0x20($sp) +/* 063F30 7F02F400 00808025 */ move $s0, $a0 +/* 063F34 7F02F404 AFBF0024 */ sw $ra, 0x24($sp) +/* 063F38 7F02F408 8C84001C */ lw $a0, 0x1c($a0) +/* 063F3C 7F02F40C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063F40 7F02F410 AFA40044 */ sw $a0, 0x44($sp) +/* 063F44 7F02F414 8FAE0044 */ lw $t6, 0x44($sp) +/* 063F48 7F02F418 46000086 */ mov.s $f2, $f0 +/* 063F4C 7F02F41C 00003025 */ move $a2, $zero +/* 063F50 7F02F420 81CF0024 */ lb $t7, 0x24($t6) +/* 063F54 7F02F424 02002025 */ move $a0, $s0 +/* 063F58 7F02F428 11E00003 */ beqz $t7, .L7F02F438 +/* 063F5C 7F02F42C 00000000 */ nop +/* 063F60 7F02F430 10000001 */ b .L7F02F438 +/* 063F64 7F02F434 24060001 */ li $a2, 1 +.L7F02F438: +/* 063F68 7F02F438 00C02825 */ move $a1, $a2 +/* 063F6C 7F02F43C AFA6003C */ sw $a2, 0x3c($sp) +/* 063F70 7F02F440 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 063F74 7F02F444 E7A20040 */ swc1 $f2, 0x40($sp) +/* 063F78 7F02F448 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 063F7C 7F02F44C C7A20040 */ lwc1 $f2, 0x40($sp) +/* 063F80 7F02F450 44812000 */ mtc1 $at, $f4 +/* 063F84 7F02F454 8FA6003C */ lw $a2, 0x3c($sp) +/* 063F88 7F02F458 4602203E */ c.le.s $f4, $f2 +/* 063F8C 7F02F45C 00000000 */ nop +/* 063F90 7F02F460 45020009 */ bc1fl .L7F02F488 +/* 063F94 7F02F464 3C014274 */ lui $at, 0x4274 +/* 063F98 7F02F468 50400007 */ beql $v0, $zero, .L7F02F488 +/* 063F9C 7F02F46C 3C014274 */ li $at, 0x42740000 # 61.000000 +/* 063FA0 7F02F470 8C430004 */ lw $v1, 4($v0) +/* 063FA4 7F02F474 2401F7FF */ li $at, -2049 +/* 063FA8 7F02F478 8C780064 */ lw $t8, 0x64($v1) +/* 063FAC 7F02F47C 0301C824 */ and $t9, $t8, $at +/* 063FB0 7F02F480 AC790064 */ sw $t9, 0x64($v1) +/* 063FB4 7F02F484 3C014274 */ li $at, 0x42740000 # 61.000000 +.L7F02F488: +/* 063FB8 7F02F488 44813000 */ mtc1 $at, $f6 +/* 063FBC 7F02F48C 3C0142EE */ li $at, 0x42EE0000 # 119.000000 +/* 063FC0 7F02F490 44814000 */ mtc1 $at, $f8 +/* 063FC4 7F02F494 4602303E */ c.le.s $f6, $f2 +/* 063FC8 7F02F498 00000000 */ nop +/* 063FCC 7F02F49C 45020007 */ bc1fl .L7F02F4BC +/* 063FD0 7F02F4A0 4602403E */ c.le.s $f8, $f2 +/* 063FD4 7F02F4A4 50400005 */ beql $v0, $zero, .L7F02F4BC +/* 063FD8 7F02F4A8 4602403E */ c.le.s $f8, $f2 +/* 063FDC 7F02F4AC 8C430004 */ lw $v1, 4($v0) +/* 063FE0 7F02F4B0 240800B4 */ li $t0, 180 +/* 063FE4 7F02F4B4 A4680082 */ sh $t0, 0x82($v1) +/* 063FE8 7F02F4B8 4602403E */ c.le.s $f8, $f2 +.L7F02F4BC: +/* 063FEC 7F02F4BC 00000000 */ nop +/* 063FF0 7F02F4C0 4502000D */ bc1fl .L7F02F4F8 +/* 063FF4 7F02F4C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063FF8 7F02F4C8 1040000A */ beqz $v0, .L7F02F4F4 +/* 063FFC 7F02F4CC 00064880 */ sll $t1, $a2, 2 +/* 064000 7F02F4D0 02095021 */ addu $t2, $s0, $t1 +/* 064004 7F02F4D4 8D440160 */ lw $a0, 0x160($t2) +/* 064008 7F02F4D8 E7A20040 */ swc1 $f2, 0x40($sp) +/* 06400C 7F02F4DC 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 064010 7F02F4E0 24050003 */ li $a1, 3 +/* 064014 7F02F4E4 960B0012 */ lhu $t3, 0x12($s0) +/* 064018 7F02F4E8 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 06401C 7F02F4EC 356C0001 */ ori $t4, $t3, 1 +/* 064020 7F02F4F0 A60C0012 */ sh $t4, 0x12($s0) +.L7F02F4F4: +/* 064024 7F02F4F4 8FA40044 */ lw $a0, 0x44($sp) +.L7F02F4F8: +/* 064028 7F02F4F8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06402C 7F02F4FC E7A20040 */ swc1 $f2, 0x40($sp) +/* 064030 7F02F500 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 064034 7F02F504 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064038 7F02F508 8FA40044 */ lw $a0, 0x44($sp) +/* 06403C 7F02F50C C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 064040 7F02F510 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 064044 7F02F514 3C0142AE */ li $at, 0x42AE0000 # 87.000000 +/* 064048 7F02F518 460A003E */ c.le.s $f0, $f10 +/* 06404C 7F02F51C 00000000 */ nop +/* 064050 7F02F520 45020006 */ bc1fl .L7F02F53C +/* 064054 7F02F524 44818000 */ mtc1 $at, $f16 +/* 064058 7F02F528 0FC08F92 */ jal sub_GAME_7F023E48 +/* 06405C 7F02F52C 02002025 */ move $a0, $s0 +/* 064060 7F02F530 10000018 */ b .L7F02F594 +/* 064064 7F02F534 8FBF0024 */ lw $ra, 0x24($sp) +/* 064068 7F02F538 44818000 */ mtc1 $at, $f16 +.L7F02F53C: +/* 06406C 7F02F53C 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 064070 7F02F540 4602803E */ c.le.s $f16, $f2 +/* 064074 7F02F544 00000000 */ nop +/* 064078 7F02F548 45020012 */ bc1fl .L7F02F594 +/* 06407C 7F02F54C 8FBF0024 */ lw $ra, 0x24($sp) +/* 064080 7F02F550 44819000 */ mtc1 $at, $f18 +/* 064084 7F02F554 02002025 */ move $a0, $s0 +/* 064088 7F02F558 3C053F80 */ lui $a1, 0x3f80 +/* 06408C 7F02F55C 4612103E */ c.le.s $f2, $f18 +/* 064090 7F02F560 3C063FCC */ lui $a2, (0x3FCCCCCD >> 16) # lui $a2, 0x3fcc +/* 064094 7F02F564 4502000B */ bc1fl .L7F02F594 +/* 064098 7F02F568 8FBF0024 */ lw $ra, 0x24($sp) +/* 06409C 7F02F56C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0640A0 7F02F570 34C6CCCD */ ori $a2, (0x3FCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0640A4 7F02F574 44802000 */ mtc1 $zero, $f4 +/* 0640A8 7F02F578 44070000 */ mfc1 $a3, $f0 +/* 0640AC 7F02F57C 02002025 */ move $a0, $s0 +/* 0640B0 7F02F580 24050001 */ li $a1, 1 +/* 0640B4 7F02F584 3C0642DC */ lui $a2, 0x42dc +/* 0640B8 7F02F588 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 0640BC 7F02F58C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0640C0 7F02F590 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02F594: +/* 0640C4 7F02F594 8FB00020 */ lw $s0, 0x20($sp) +/* 0640C8 7F02F598 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0640CC 7F02F59C 03E00008 */ jr $ra +/* 0640D0 7F02F5A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F5A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F5A4 +/* 0640D4 7F02F5A4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0640D8 7F02F5A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0640DC 7F02F5AC AFB00020 */ sw $s0, 0x20($sp) +/* 0640E0 7F02F5B0 AFA40030 */ sw $a0, 0x30($sp) +/* 0640E4 7F02F5B4 8C90001C */ lw $s0, 0x1c($a0) +/* 0640E8 7F02F5B8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0640EC 7F02F5BC 02002025 */ move $a0, $s0 +/* 0640F0 7F02F5C0 3C0142AC */ li $at, 0x42AC0000 # 86.000000 +/* 0640F4 7F02F5C4 44812000 */ mtc1 $at, $f4 +/* 0640F8 7F02F5C8 46000086 */ mov.s $f2, $f0 +/* 0640FC 7F02F5CC 02002025 */ move $a0, $s0 +/* 064100 7F02F5D0 4604003C */ c.lt.s $f0, $f4 +/* 064104 7F02F5D4 00000000 */ nop +/* 064108 7F02F5D8 4502001D */ bc1fl .L7F02F650 +/* 06410C 7F02F5DC 02002025 */ move $a0, $s0 +/* 064110 7F02F5E0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064114 7F02F5E4 E7A20028 */ swc1 $f2, 0x28($sp) +/* 064118 7F02F5E8 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 06411C 7F02F5EC 4602003E */ c.le.s $f0, $f2 +/* 064120 7F02F5F0 00000000 */ nop +/* 064124 7F02F5F4 45020016 */ bc1fl .L7F02F650 +/* 064128 7F02F5F8 02002025 */ move $a0, $s0 +/* 06412C 7F02F5FC 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 064130 7F02F600 02002025 */ move $a0, $s0 +/* 064134 7F02F604 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 064138 7F02F608 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 06413C 7F02F60C 44813000 */ mtc1 $at, $f6 +/* 064140 7F02F610 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 064144 7F02F614 3C180000 */ lui $t8, %hi(0x00006254) # $t8, 0 +/* 064148 7F02F618 27186254 */ addiu $t8, %lo(0x00006254) # addiu $t8, $t8, 0x6254 +/* 06414C 7F02F61C 02002025 */ move $a0, $s0 +/* 064150 7F02F620 00003025 */ move $a2, $zero +/* 064154 7F02F624 3C0742AC */ lui $a3, 0x42ac +/* 064158 7F02F628 E7A00010 */ swc1 $f0, 0x10($sp) +/* 06415C 7F02F62C 01F82821 */ addu $a1, $t7, $t8 +/* 064160 7F02F630 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 064164 7F02F634 E7A60014 */ swc1 $f6, 0x14($sp) +/* 064168 7F02F638 02002025 */ move $a0, $s0 +/* 06416C 7F02F63C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 064170 7F02F640 3C054303 */ lui $a1, 0x4303 +/* 064174 7F02F644 1000000C */ b .L7F02F678 +/* 064178 7F02F648 8FBF0024 */ lw $ra, 0x24($sp) +/* 06417C 7F02F64C 02002025 */ move $a0, $s0 +.L7F02F650: +/* 064180 7F02F650 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064184 7F02F654 E7A20028 */ swc1 $f2, 0x28($sp) +/* 064188 7F02F658 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 06418C 7F02F65C 4602003E */ c.le.s $f0, $f2 +/* 064190 7F02F660 00000000 */ nop +/* 064194 7F02F664 45020004 */ bc1fl .L7F02F678 +/* 064198 7F02F668 8FBF0024 */ lw $ra, 0x24($sp) +/* 06419C 7F02F66C 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 0641A0 7F02F670 8FA40030 */ lw $a0, 0x30($sp) +/* 0641A4 7F02F674 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02F678: +/* 0641A8 7F02F678 8FB00020 */ lw $s0, 0x20($sp) +/* 0641AC 7F02F67C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0641B0 7F02F680 03E00008 */ jr $ra +/* 0641B4 7F02F684 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F688(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F688 +/* 0641B8 7F02F688 03E00008 */ jr $ra +/* 0641BC 7F02F68C AFA40000 */ sw $a0, ($sp) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F690(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051FD0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051FD4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80051FD8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051FDC +.word 0x3e9930a7 /*0.29919931*/ +glabel D_80051FE0 +.word 0x3c751aa5 /*0.014959966*/ +glabel D_80051FE4 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80051FE8 +.word 0x3ca0d97c /*0.019634955*/ +glabel D_80051FEC +.word 0x3fa0d97c /*1.2566371*/ +glabel D_80051FF0 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80051FF4 +.word 0x3e490fdb /*0.19634955*/ +glabel D_80051FF8 +.word 0x3c751aa5 /*0.014959966*/ +glabel D_80051FFC +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80052000 +.word 0x3c20d97c /*0.0098174773*/ +glabel D_80052004 +.word 0x3fa0d97c /*1.2566371*/ +glabel D_80052008 +.word 0x3d490fdb /*0.049087387*/ +glabel D_8005200C +.word 0x3e00adfd /*0.12566371*/ +glabel D_80052010 +.word 0x3c20d97c /*0.0098174773*/ +.text +glabel sub_GAME_7F02F690 +/* 0641C0 7F02F690 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0641C4 7F02F694 AFBF001C */ sw $ra, 0x1c($sp) +/* 0641C8 7F02F698 AFA60058 */ sw $a2, 0x58($sp) +/* 0641CC 7F02F69C AFA7005C */ sw $a3, 0x5c($sp) +/* 0641D0 7F02F6A0 8C8E001C */ lw $t6, 0x1c($a0) +/* 0641D4 7F02F6A4 8C820018 */ lw $v0, 0x18($a0) +/* 0641D8 7F02F6A8 AFAE0048 */ sw $t6, 0x48($sp) +/* 0641DC 7F02F6AC C4A40000 */ lwc1 $f4, ($a1) +/* 0641E0 7F02F6B0 C4A80008 */ lwc1 $f8, 8($a1) +/* 0641E4 7F02F6B4 C4460008 */ lwc1 $f6, 8($v0) +/* 0641E8 7F02F6B8 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0641EC 7F02F6BC 46062301 */ sub.s $f12, $f4, $f6 +/* 0641F0 7F02F6C0 0FC16A8C */ jal atan2f +/* 0641F4 7F02F6C4 460A4381 */ sub.s $f14, $f8, $f10 +/* 0641F8 7F02F6C8 8FA40048 */ lw $a0, 0x48($sp) +/* 0641FC 7F02F6CC 0FC1B320 */ jal getsubroty +/* 064200 7F02F6D0 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 064204 7F02F6D4 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 064208 7F02F6D8 E7A00038 */ swc1 $f0, 0x38($sp) +/* 06420C 7F02F6DC 00001825 */ move $v1, $zero +/* 064210 7F02F6E0 4600703C */ c.lt.s $f14, $f0 +/* 064214 7F02F6E4 3C018005 */ lui $at, %hi(D_80051FD0) +/* 064218 7F02F6E8 46007301 */ sub.s $f12, $f14, $f0 +/* 06421C 7F02F6EC 8FA20058 */ lw $v0, 0x58($sp) +/* 064220 7F02F6F0 8FAF0048 */ lw $t7, 0x48($sp) +/* 064224 7F02F6F4 45000003 */ bc1f .L7F02F704 +/* 064228 7F02F6F8 46006086 */ mov.s $f2, $f12 +/* 06422C 7F02F6FC C4301FD0 */ lwc1 $f16, %lo(D_80051FD0)($at) +/* 064230 7F02F700 46106080 */ add.s $f2, $f12, $f16 +.L7F02F704: +/* 064234 7F02F704 3C018005 */ lui $at, %hi(D_80051FD4) +/* 064238 7F02F708 C4321FD4 */ lwc1 $f18, %lo(D_80051FD4)($at) +/* 06423C 7F02F70C 46001006 */ mov.s $f0, $f2 +/* 064240 7F02F710 3C018005 */ lui $at, %hi(D_80051FD8) +/* 064244 7F02F714 4602903C */ c.lt.s $f18, $f2 +/* 064248 7F02F718 00000000 */ nop +/* 06424C 7F02F71C 45020004 */ bc1fl .L7F02F730 +/* 064250 7F02F720 24010002 */ li $at, 2 +/* 064254 7F02F724 C4241FD8 */ lwc1 $f4, %lo(D_80051FD8)($at) +/* 064258 7F02F728 46022001 */ sub.s $f0, $f4, $f2 +/* 06425C 7F02F72C 24010002 */ li $at, 2 +.L7F02F730: +/* 064260 7F02F730 14410005 */ bne $v0, $at, .L7F02F748 +/* 064264 7F02F734 3C018005 */ lui $at, %hi(D_80051FDC) +/* 064268 7F02F738 C42C1FDC */ lwc1 $f12, %lo(D_80051FDC)($at) +/* 06426C 7F02F73C 3C018005 */ lui $at, %hi(D_80051FE0) +/* 064270 7F02F740 10000030 */ b .L7F02F804 +/* 064274 7F02F744 C4201FE0 */ lwc1 $f0, %lo(D_80051FE0)($at) +.L7F02F748: +/* 064278 7F02F748 24010001 */ li $at, 1 +/* 06427C 7F02F74C 14410017 */ bne $v0, $at, .L7F02F7AC +/* 064280 7F02F750 3C018005 */ lui $at, %hi(D_80051FE4) +/* 064284 7F02F754 C4261FE4 */ lwc1 $f6, %lo(D_80051FE4)($at) +/* 064288 7F02F758 3C018005 */ lui $at, %hi(D_80051FEC) +/* 06428C 7F02F75C 4606003C */ c.lt.s $f0, $f6 +/* 064290 7F02F760 00000000 */ nop +/* 064294 7F02F764 45000004 */ bc1f .L7F02F778 +/* 064298 7F02F768 00000000 */ nop +/* 06429C 7F02F76C 3C018005 */ lui $at, %hi(D_80051FE8) +/* 0642A0 7F02F770 1000000B */ b .L7F02F7A0 +/* 0642A4 7F02F774 C42C1FE8 */ lwc1 $f12, %lo(D_80051FE8)($at) +.L7F02F778: +/* 0642A8 7F02F778 C4281FEC */ lwc1 $f8, %lo(D_80051FEC)($at) +/* 0642AC 7F02F77C 3C018005 */ lui $at, %hi(D_80051FF4) +/* 0642B0 7F02F780 4608003C */ c.lt.s $f0, $f8 +/* 0642B4 7F02F784 00000000 */ nop +/* 0642B8 7F02F788 45000004 */ bc1f .L7F02F79C +/* 0642BC 7F02F78C 00000000 */ nop +/* 0642C0 7F02F790 3C018005 */ lui $at, %hi(D_80051FF0) +/* 0642C4 7F02F794 10000002 */ b .L7F02F7A0 +/* 0642C8 7F02F798 C42C1FF0 */ lwc1 $f12, %lo(D_80051FF0)($at) +.L7F02F79C: +/* 0642CC 7F02F79C C42C1FF4 */ lwc1 $f12, %lo(D_80051FF4)($at) +.L7F02F7A0: +/* 0642D0 7F02F7A0 3C018005 */ lui $at, %hi(D_80051FF8) +/* 0642D4 7F02F7A4 10000017 */ b .L7F02F804 +/* 0642D8 7F02F7A8 C4201FF8 */ lwc1 $f0, %lo(D_80051FF8)($at) +.L7F02F7AC: +/* 0642DC 7F02F7AC 3C018005 */ lui $at, %hi(D_80051FFC) +/* 0642E0 7F02F7B0 C42A1FFC */ lwc1 $f10, %lo(D_80051FFC)($at) +/* 0642E4 7F02F7B4 3C018005 */ lui $at, %hi(D_80052004) +/* 0642E8 7F02F7B8 460A003C */ c.lt.s $f0, $f10 +/* 0642EC 7F02F7BC 00000000 */ nop +/* 0642F0 7F02F7C0 45000004 */ bc1f .L7F02F7D4 +/* 0642F4 7F02F7C4 00000000 */ nop +/* 0642F8 7F02F7C8 3C018005 */ lui $at, %hi(D_80052000) +/* 0642FC 7F02F7CC 1000000B */ b .L7F02F7FC +/* 064300 7F02F7D0 C42C2000 */ lwc1 $f12, %lo(D_80052000)($at) +.L7F02F7D4: +/* 064304 7F02F7D4 C4302004 */ lwc1 $f16, %lo(D_80052004)($at) +/* 064308 7F02F7D8 3C018005 */ lui $at, %hi(D_8005200C) +/* 06430C 7F02F7DC 4610003C */ c.lt.s $f0, $f16 +/* 064310 7F02F7E0 00000000 */ nop +/* 064314 7F02F7E4 45000004 */ bc1f .L7F02F7F8 +/* 064318 7F02F7E8 00000000 */ nop +/* 06431C 7F02F7EC 3C018005 */ lui $at, %hi(D_80052008) +/* 064320 7F02F7F0 10000002 */ b .L7F02F7FC +/* 064324 7F02F7F4 C42C2008 */ lwc1 $f12, %lo(D_80052008)($at) +.L7F02F7F8: +/* 064328 7F02F7F8 C42C200C */ lwc1 $f12, %lo(D_8005200C)($at) +.L7F02F7FC: +/* 06432C 7F02F7FC 3C018005 */ lui $at, %hi(D_80052010) +/* 064330 7F02F800 C4202010 */ lwc1 $f0, %lo(D_80052010)($at) +.L7F02F804: +/* 064334 7F02F804 C5E200A4 */ lwc1 $f2, 0xa4($t7) +/* 064338 7F02F808 44057000 */ mfc1 $a1, $f14 +/* 06433C 7F02F80C E7AE003C */ swc1 $f14, 0x3c($sp) +/* 064340 7F02F810 46026302 */ mul.s $f12, $f12, $f2 +/* 064344 7F02F814 AFA30024 */ sw $v1, 0x24($sp) +/* 064348 7F02F818 27A40038 */ addiu $a0, $sp, 0x38 +/* 06434C 7F02F81C 46020002 */ mul.s $f0, $f0, $f2 +/* 064350 7F02F820 8FA6005C */ lw $a2, 0x5c($sp) +/* 064354 7F02F824 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 064358 7F02F828 46000480 */ add.s $f18, $f0, $f0 +/* 06435C 7F02F82C 44070000 */ mfc1 $a3, $f0 +/* 064360 7F02F830 0FC10C43 */ jal sub_GAME_7F04310C +/* 064364 7F02F834 E7B20010 */ swc1 $f18, 0x10($sp) +/* 064368 7F02F838 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 06436C 7F02F83C C7A40038 */ lwc1 $f4, 0x38($sp) +/* 064370 7F02F840 8FA30024 */ lw $v1, 0x24($sp) +/* 064374 7F02F844 8FB8005C */ lw $t8, 0x5c($sp) +/* 064378 7F02F848 460E2032 */ c.eq.s $f4, $f14 +/* 06437C 7F02F84C 00000000 */ nop +/* 064380 7F02F850 45020005 */ bc1fl .L7F02F868 +/* 064384 7F02F854 8FA40048 */ lw $a0, 0x48($sp) +/* 064388 7F02F858 44803000 */ mtc1 $zero, $f6 +/* 06438C 7F02F85C 24030001 */ li $v1, 1 +/* 064390 7F02F860 E7060000 */ swc1 $f6, ($t8) +/* 064394 7F02F864 8FA40048 */ lw $a0, 0x48($sp) +.L7F02F868: +/* 064398 7F02F868 8FA50038 */ lw $a1, 0x38($sp) +/* 06439C 7F02F86C 0FC1B34F */ jal setsubroty +/* 0643A0 7F02F870 AFA30024 */ sw $v1, 0x24($sp) +/* 0643A4 7F02F874 8FBF001C */ lw $ra, 0x1c($sp) +/* 0643A8 7F02F878 8FA20024 */ lw $v0, 0x24($sp) +/* 0643AC 7F02F87C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0643B0 7F02F880 03E00008 */ jr $ra +/* 0643B4 7F02F884 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F888(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F888 +/* 0643B8 7F02F888 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0643BC 7F02F88C AFBF002C */ sw $ra, 0x2c($sp) +/* 0643C0 7F02F890 AFB00020 */ sw $s0, 0x20($sp) +/* 0643C4 7F02F894 AFB20028 */ sw $s2, 0x28($sp) +/* 0643C8 7F02F898 AFB10024 */ sw $s1, 0x24($sp) +/* 0643CC 7F02F89C 00808025 */ move $s0, $a0 +/* 0643D0 7F02F8A0 8C91001C */ lw $s1, 0x1c($a0) +/* 0643D4 7F02F8A4 0FC225E6 */ jal get_curplayer_positiondata +/* 0643D8 7F02F8A8 8C920018 */ lw $s2, 0x18($a0) +/* 0643DC 7F02F8AC 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0643E0 7F02F8B0 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0643E4 7F02F8B4 8E0E0030 */ lw $t6, 0x30($s0) +/* 0643E8 7F02F8B8 3C048005 */ lui $a0, %hi(global_timer) +/* 0643EC 7F02F8BC 82080009 */ lb $t0, 9($s0) +/* 0643F0 7F02F8C0 01CFC021 */ addu $t8, $t6, $t7 +/* 0643F4 7F02F8C4 2484837C */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c84 +/* 0643F8 7F02F8C8 AE180030 */ sw $t8, 0x30($s0) +/* 0643FC 7F02F8CC 8C990000 */ lw $t9, ($a0) +/* 064400 7F02F8D0 24010001 */ li $at, 1 +/* 064404 7F02F8D4 00401825 */ move $v1, $v0 +/* 064408 7F02F8D8 1101000B */ beq $t0, $at, .L7F02F908 +/* 06440C 7F02F8DC AE1900C8 */ sw $t9, 0xc8($s0) +/* 064410 7F02F8E0 8C8A0000 */ lw $t2, ($a0) +/* 064414 7F02F8E4 8E0900CC */ lw $t1, 0xcc($s0) +/* 064418 7F02F8E8 254BFFC4 */ addiu $t3, $t2, -0x3c +/* 06441C 7F02F8EC 012B082A */ slt $at, $t1, $t3 +/* 064420 7F02F8F0 14200005 */ bnez $at, .L7F02F908 +/* 064424 7F02F8F4 00000000 */ nop +/* 064428 7F02F8F8 8E0C0034 */ lw $t4, 0x34($s0) +/* 06442C 7F02F8FC 0198082A */ slt $at, $t4, $t8 +/* 064430 7F02F900 50200035 */ beql $at, $zero, .L7F02F9D8 +/* 064434 7F02F904 C4520008 */ lwc1 $f18, 8($v0) +.L7F02F908: +/* 064438 7F02F908 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06443C 7F02F90C 02202025 */ move $a0, $s1 +/* 064440 7F02F910 E7A00034 */ swc1 $f0, 0x34($sp) +/* 064444 7F02F914 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064448 7F02F918 02202025 */ move $a0, $s1 +/* 06444C 7F02F91C 944E0004 */ lhu $t6, 4($v0) +/* 064450 7F02F920 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064454 7F02F924 02202025 */ move $a0, $s1 +/* 064458 7F02F928 448E2000 */ mtc1 $t6, $f4 +/* 06445C 7F02F92C 24050000 */ li $a1, 0 +/* 064460 7F02F930 05C10004 */ bgez $t6, .L7F02F944 +/* 064464 7F02F934 468021A0 */ cvt.s.w $f6, $f4 +/* 064468 7F02F938 44814000 */ mtc1 $at, $f8 +/* 06446C 7F02F93C 00000000 */ nop +/* 064470 7F02F940 46083180 */ add.s $f6, $f6, $f8 +.L7F02F944: +/* 064474 7F02F944 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064478 7F02F948 44815000 */ mtc1 $at, $f10 +/* 06447C 7F02F94C C7B20034 */ lwc1 $f18, 0x34($sp) +/* 064480 7F02F950 460A3402 */ mul.s $f16, $f6, $f10 +/* 064484 7F02F954 4612803C */ c.lt.s $f16, $f18 +/* 064488 7F02F958 00000000 */ nop +/* 06448C 7F02F95C 45000005 */ bc1f .L7F02F974 +/* 064490 7F02F960 00000000 */ nop +/* 064494 7F02F964 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064498 7F02F968 3C064180 */ lui $a2, 0x4180 +/* 06449C 7F02F96C 10000013 */ b .L7F02F9BC +/* 0644A0 7F02F970 00000000 */ nop +.L7F02F974: +/* 0644A4 7F02F974 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0644A8 7F02F978 02202025 */ move $a0, $s1 +/* 0644AC 7F02F97C 944F0004 */ lhu $t7, 4($v0) +/* 0644B0 7F02F980 02202025 */ move $a0, $s1 +/* 0644B4 7F02F984 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0644B8 7F02F988 448F2000 */ mtc1 $t7, $f4 +/* 0644BC 7F02F98C 05E10004 */ bgez $t7, .L7F02F9A0 +/* 0644C0 7F02F990 46802220 */ cvt.s.w $f8, $f4 +/* 0644C4 7F02F994 44813000 */ mtc1 $at, $f6 +/* 0644C8 7F02F998 00000000 */ nop +/* 0644CC 7F02F99C 46064200 */ add.s $f8, $f8, $f6 +.L7F02F9A0: +/* 0644D0 7F02F9A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0644D4 7F02F9A4 44815000 */ mtc1 $at, $f10 +/* 0644D8 7F02F9A8 3C064180 */ lui $a2, 0x4180 +/* 0644DC 7F02F9AC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0644E0 7F02F9B0 44058000 */ mfc1 $a1, $f16 +/* 0644E4 7F02F9B4 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 0644E8 7F02F9B8 00000000 */ nop +.L7F02F9BC: +/* 0644EC 7F02F9BC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0644F0 7F02F9C0 02002025 */ move $a0, $s0 +/* 0644F4 7F02F9C4 0FC08F92 */ jal sub_GAME_7F023E48 +/* 0644F8 7F02F9C8 02002025 */ move $a0, $s0 +/* 0644FC 7F02F9CC 10000094 */ b .L7F02FC20 +/* 064500 7F02F9D0 8FBF002C */ lw $ra, 0x2c($sp) +/* 064504 7F02F9D4 C4520008 */ lwc1 $f18, 8($v0) +.L7F02F9D8: +/* 064508 7F02F9D8 C6440008 */ lwc1 $f4, 8($s2) +/* 06450C 7F02F9DC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 064510 7F02F9E0 44816000 */ mtc1 $at, $f12 +/* 064514 7F02F9E4 46049001 */ sub.s $f0, $f18, $f4 +/* 064518 7F02F9E8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 06451C 7F02F9EC C6480010 */ lwc1 $f8, 0x10($s2) +/* 064520 7F02F9F0 3C01C396 */ li $at, 0xC3960000 # -300.000000 +/* 064524 7F02F9F4 460C003C */ c.lt.s $f0, $f12 +/* 064528 7F02F9F8 02002025 */ move $a0, $s0 +/* 06452C 7F02F9FC 24650008 */ addiu $a1, $v1, 8 +/* 064530 7F02FA00 00003025 */ move $a2, $zero +/* 064534 7F02FA04 45000015 */ bc1f .L7F02FA5C +/* 064538 7F02FA08 46083081 */ sub.s $f2, $f6, $f8 +/* 06453C 7F02FA0C 44817000 */ mtc1 $at, $f14 +/* 064540 7F02FA10 00000000 */ nop +/* 064544 7F02FA14 4600703C */ c.lt.s $f14, $f0 +/* 064548 7F02FA18 00000000 */ nop +/* 06454C 7F02FA1C 4500000F */ bc1f .L7F02FA5C +/* 064550 7F02FA20 00000000 */ nop +/* 064554 7F02FA24 460C103C */ c.lt.s $f2, $f12 +/* 064558 7F02FA28 00000000 */ nop +/* 06455C 7F02FA2C 4500000B */ bc1f .L7F02FA5C +/* 064560 7F02FA30 00000000 */ nop +/* 064564 7F02FA34 4602703C */ c.lt.s $f14, $f2 +/* 064568 7F02FA38 00000000 */ nop +/* 06456C 7F02FA3C 45000007 */ bc1f .L7F02FA5C +/* 064570 7F02FA40 00000000 */ nop +/* 064574 7F02FA44 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 064578 7F02FA48 02002025 */ move $a0, $s0 +/* 06457C 7F02FA4C 0FC08F92 */ jal sub_GAME_7F023E48 +/* 064580 7F02FA50 02002025 */ move $a0, $s0 +/* 064584 7F02FA54 10000072 */ b .L7F02FC20 +/* 064588 7F02FA58 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FA5C: +/* 06458C 7F02FA5C 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 064590 7F02FA60 26070054 */ addiu $a3, $s0, 0x54 +/* 064594 7F02FA64 10400002 */ beqz $v0, .L7F02FA70 +/* 064598 7F02FA68 24180001 */ li $t8, 1 +/* 06459C 7F02FA6C AE180038 */ sw $t8, 0x38($s0) +.L7F02FA70: +/* 0645A0 7F02FA70 8E190030 */ lw $t9, 0x30($s0) +/* 0645A4 7F02FA74 02002025 */ move $a0, $s0 +/* 0645A8 7F02FA78 2B210015 */ slti $at, $t9, 0x15 +/* 0645AC 7F02FA7C 14200009 */ bnez $at, .L7F02FAA4 +/* 0645B0 7F02FA80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0645B4 7F02FA84 44815000 */ mtc1 $at, $f10 +/* 0645B8 7F02FA88 8E05003C */ lw $a1, 0x3c($s0) +/* 0645BC 7F02FA8C 82060049 */ lb $a2, 0x49($s0) +/* 0645C0 7F02FA90 82070048 */ lb $a3, 0x48($s0) +/* 0645C4 7F02FA94 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 0645C8 7F02FA98 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0645CC 7F02FA9C 10000004 */ b .L7F02FAB0 +/* 0645D0 7F02FAA0 8E080038 */ lw $t0, 0x38($s0) +.L7F02FAA4: +/* 0645D4 7F02FAA4 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 0645D8 7F02FAA8 02002025 */ move $a0, $s0 +/* 0645DC 7F02FAAC 8E080038 */ lw $t0, 0x38($s0) +.L7F02FAB0: +/* 0645E0 7F02FAB0 02002025 */ move $a0, $s0 +/* 0645E4 7F02FAB4 24050001 */ li $a1, 1 +/* 0645E8 7F02FAB8 11000052 */ beqz $t0, .L7F02FC04 +/* 0645EC 7F02FABC 00000000 */ nop +/* 0645F0 7F02FAC0 8E0A0030 */ lw $t2, 0x30($s0) +/* 0645F4 7F02FAC4 00008825 */ move $s1, $zero +/* 0645F8 7F02FAC8 02009025 */ move $s2, $s0 +/* 0645FC 7F02FACC 2941001F */ slti $at, $t2, 0x1f +/* 064600 7F02FAD0 1420004C */ bnez $at, .L7F02FC04 +/* 064604 7F02FAD4 00000000 */ nop +.L7F02FAD8: +/* 064608 7F02FAD8 82490048 */ lb $t1, 0x48($s2) +/* 06460C 7F02FADC 02002025 */ move $a0, $s0 +/* 064610 7F02FAE0 02202825 */ move $a1, $s1 +/* 064614 7F02FAE4 1120003F */ beqz $t1, .L7F02FBE4 +/* 064618 7F02FAE8 00000000 */ nop +/* 06461C 7F02FAEC 824B004A */ lb $t3, 0x4a($s2) +/* 064620 7F02FAF0 02002025 */ move $a0, $s0 +/* 064624 7F02FAF4 02202825 */ move $a1, $s1 +/* 064628 7F02FAF8 55600006 */ bnezl $t3, .L7F02FB14 +/* 06462C 7F02FAFC 8E020030 */ lw $v0, 0x30($s0) +/* 064630 7F02FB00 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064634 7F02FB04 24060001 */ li $a2, 1 +/* 064638 7F02FB08 10000039 */ b .L7F02FBF0 +/* 06463C 7F02FB0C 26310001 */ addiu $s1, $s1, 1 +/* 064640 7F02FB10 8E020030 */ lw $v0, 0x30($s0) +.L7F02FB14: +/* 064644 7F02FB14 8E0C0040 */ lw $t4, 0x40($s0) +/* 064648 7F02FB18 02002025 */ move $a0, $s0 +/* 06464C 7F02FB1C 02202825 */ move $a1, $s1 +/* 064650 7F02FB20 0182082A */ slt $at, $t4, $v0 +/* 064654 7F02FB24 1020002B */ beqz $at, .L7F02FBD4 +/* 064658 7F02FB28 00000000 */ nop +/* 06465C 7F02FB2C 8E030044 */ lw $v1, 0x44($s0) +/* 064660 7F02FB30 00117823 */ negu $t7, $s1 +/* 064664 7F02FB34 020FC021 */ addu $t8, $s0, $t7 +/* 064668 7F02FB38 12230004 */ beq $s1, $v1, .L7F02FB4C +/* 06466C 7F02FB3C 02036821 */ addu $t5, $s0, $v1 +/* 064670 7F02FB40 81AE004A */ lb $t6, 0x4a($t5) +/* 064674 7F02FB44 15C00023 */ bnez $t6, .L7F02FBD4 +/* 064678 7F02FB48 00000000 */ nop +.L7F02FB4C: +/* 06467C 7F02FB4C AE020040 */ sw $v0, 0x40($s0) +/* 064680 7F02FB50 8319004B */ lb $t9, 0x4b($t8) +/* 064684 7F02FB54 240A0001 */ li $t2, 1 +/* 064688 7F02FB58 02002025 */ move $a0, $s0 +/* 06468C 7F02FB5C 5320000C */ beql $t9, $zero, .L7F02FB90 +/* 064690 7F02FB60 824D004C */ lb $t5, 0x4c($s2) +/* 064694 7F02FB64 8248004C */ lb $t0, 0x4c($s2) +/* 064698 7F02FB68 2449005A */ addiu $t1, $v0, 0x5a +/* 06469C 7F02FB6C 51000004 */ beql $t0, $zero, .L7F02FB80 +/* 0646A0 7F02FB70 8E0B0040 */ lw $t3, 0x40($s0) +/* 0646A4 7F02FB74 1000000F */ b .L7F02FBB4 +/* 0646A8 7F02FB78 AE090040 */ sw $t1, 0x40($s0) +/* 0646AC 7F02FB7C 8E0B0040 */ lw $t3, 0x40($s0) +.L7F02FB80: +/* 0646B0 7F02FB80 256C0014 */ addiu $t4, $t3, 0x14 +/* 0646B4 7F02FB84 1000000B */ b .L7F02FBB4 +/* 0646B8 7F02FB88 AE0C0040 */ sw $t4, 0x40($s0) +/* 0646BC 7F02FB8C 824D004C */ lb $t5, 0x4c($s2) +.L7F02FB90: +/* 0646C0 7F02FB90 51A00006 */ beql $t5, $zero, .L7F02FBAC +/* 0646C4 7F02FB94 8E180040 */ lw $t8, 0x40($s0) +/* 0646C8 7F02FB98 8E0E0040 */ lw $t6, 0x40($s0) +/* 0646CC 7F02FB9C 25CF00B4 */ addiu $t7, $t6, 0xb4 +/* 0646D0 7F02FBA0 10000004 */ b .L7F02FBB4 +/* 0646D4 7F02FBA4 AE0F0040 */ sw $t7, 0x40($s0) +/* 0646D8 7F02FBA8 8E180040 */ lw $t8, 0x40($s0) +.L7F02FBAC: +/* 0646DC 7F02FBAC 27190028 */ addiu $t9, $t8, 0x28 +/* 0646E0 7F02FBB0 AE190040 */ sw $t9, 0x40($s0) +.L7F02FBB4: +/* 0646E4 7F02FBB4 8E080044 */ lw $t0, 0x44($s0) +/* 0646E8 7F02FBB8 02202825 */ move $a1, $s1 +/* 0646EC 7F02FBBC 24060001 */ li $a2, 1 +/* 0646F0 7F02FBC0 01484823 */ subu $t1, $t2, $t0 +/* 0646F4 7F02FBC4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0646F8 7F02FBC8 AE090044 */ sw $t1, 0x44($s0) +/* 0646FC 7F02FBCC 10000008 */ b .L7F02FBF0 +/* 064700 7F02FBD0 26310001 */ addiu $s1, $s1, 1 +.L7F02FBD4: +/* 064704 7F02FBD4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064708 7F02FBD8 00003025 */ move $a2, $zero +/* 06470C 7F02FBDC 10000004 */ b .L7F02FBF0 +/* 064710 7F02FBE0 26310001 */ addiu $s1, $s1, 1 +.L7F02FBE4: +/* 064714 7F02FBE4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064718 7F02FBE8 00003025 */ move $a2, $zero +/* 06471C 7F02FBEC 26310001 */ addiu $s1, $s1, 1 +.L7F02FBF0: +/* 064720 7F02FBF0 24010002 */ li $at, 2 +/* 064724 7F02FBF4 1621FFB8 */ bne $s1, $at, .L7F02FAD8 +/* 064728 7F02FBF8 26520001 */ addiu $s2, $s2, 1 +/* 06472C 7F02FBFC 10000008 */ b .L7F02FC20 +/* 064730 7F02FC00 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FC04: +/* 064734 7F02FC04 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064738 7F02FC08 00003025 */ move $a2, $zero +/* 06473C 7F02FC0C 02002025 */ move $a0, $s0 +/* 064740 7F02FC10 00002825 */ move $a1, $zero +/* 064744 7F02FC14 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064748 7F02FC18 00003025 */ move $a2, $zero +/* 06474C 7F02FC1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FC20: +/* 064750 7F02FC20 8FB00020 */ lw $s0, 0x20($sp) +/* 064754 7F02FC24 8FB10024 */ lw $s1, 0x24($sp) +/* 064758 7F02FC28 8FB20028 */ lw $s2, 0x28($sp) +/* 06475C 7F02FC2C 03E00008 */ jr $ra +/* 064760 7F02FC30 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FC34(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FC34 +/* 064764 7F02FC34 C4C40000 */ lwc1 $f4, ($a2) +/* 064768 7F02FC38 C4860000 */ lwc1 $f6, ($a0) +/* 06476C 7F02FC3C 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 064770 7F02FC40 44808000 */ mtc1 $zero, $f16 +/* 064774 7F02FC44 46062201 */ sub.s $f8, $f4, $f6 +/* 064778 7F02FC48 44876000 */ mtc1 $a3, $f12 +/* 06477C 7F02FC4C E7A80004 */ swc1 $f8, 4($sp) +/* 064780 7F02FC50 C4840008 */ lwc1 $f4, 8($a0) +/* 064784 7F02FC54 C4CA0008 */ lwc1 $f10, 8($a2) +/* 064788 7F02FC58 46045181 */ sub.s $f6, $f10, $f4 +/* 06478C 7F02FC5C E7A6000C */ swc1 $f6, 0xc($sp) +/* 064790 7F02FC60 C4A00000 */ lwc1 $f0, ($a1) +/* 064794 7F02FC64 C7AA000C */ lwc1 $f10, 0xc($sp) +/* 064798 7F02FC68 46008032 */ c.eq.s $f16, $f0 +/* 06479C 7F02FC6C 00000000 */ nop +/* 0647A0 7F02FC70 45020015 */ bc1fl .L7F02FCC8 +/* 0647A4 7F02FC74 C4A20008 */ lwc1 $f2, 8($a1) +/* 0647A8 7F02FC78 C4A80008 */ lwc1 $f8, 8($a1) +/* 0647AC 7F02FC7C C7A2000C */ lwc1 $f2, 0xc($sp) +/* 0647B0 7F02FC80 46088032 */ c.eq.s $f16, $f8 +/* 0647B4 7F02FC84 00000000 */ nop +/* 0647B8 7F02FC88 4502000F */ bc1fl .L7F02FCC8 +/* 0647BC 7F02FC8C C4A20008 */ lwc1 $f2, 8($a1) +/* 0647C0 7F02FC90 46021282 */ mul.s $f10, $f2, $f2 +/* 0647C4 7F02FC94 C7A00004 */ lwc1 $f0, 4($sp) +/* 0647C8 7F02FC98 00001025 */ move $v0, $zero +/* 0647CC 7F02FC9C 46000102 */ mul.s $f4, $f0, $f0 +/* 0647D0 7F02FCA0 46045180 */ add.s $f6, $f10, $f4 +/* 0647D4 7F02FCA4 460C6202 */ mul.s $f8, $f12, $f12 +/* 0647D8 7F02FCA8 4608303E */ c.le.s $f6, $f8 +/* 0647DC 7F02FCAC 00000000 */ nop +/* 0647E0 7F02FCB0 45000025 */ bc1f .L7F02FD48 +/* 0647E4 7F02FCB4 00000000 */ nop +/* 0647E8 7F02FCB8 24020001 */ li $v0, 1 +/* 0647EC 7F02FCBC 10000022 */ b .L7F02FD48 +/* 0647F0 7F02FCC0 00000000 */ nop +/* 0647F4 7F02FCC4 C4A20008 */ lwc1 $f2, 8($a1) +.L7F02FCC8: +/* 0647F8 7F02FCC8 C7A80004 */ lwc1 $f8, 4($sp) +/* 0647FC 7F02FCCC 00001025 */ move $v0, $zero +/* 064800 7F02FCD0 46025102 */ mul.s $f4, $f10, $f2 +/* 064804 7F02FCD4 00000000 */ nop +/* 064808 7F02FCD8 46080182 */ mul.s $f6, $f0, $f8 +/* 06480C 7F02FCDC 46062380 */ add.s $f14, $f4, $f6 +/* 064810 7F02FCE0 460E803C */ c.lt.s $f16, $f14 +/* 064814 7F02FCE4 00000000 */ nop +/* 064818 7F02FCE8 45000017 */ bc1f .L7F02FD48 +/* 06481C 7F02FCEC 00000000 */ nop +/* 064820 7F02FCF0 46021102 */ mul.s $f4, $f2, $f2 +/* 064824 7F02FCF4 00000000 */ nop +/* 064828 7F02FCF8 46000182 */ mul.s $f6, $f0, $f0 +/* 06482C 7F02FCFC 46062400 */ add.s $f16, $f4, $f6 +/* 064830 7F02FD00 460A5102 */ mul.s $f4, $f10, $f10 +/* 064834 7F02FD04 00000000 */ nop +/* 064838 7F02FD08 46084182 */ mul.s $f6, $f8, $f8 +/* 06483C 7F02FD0C 00000000 */ nop +/* 064840 7F02FD10 460E7282 */ mul.s $f10, $f14, $f14 +/* 064844 7F02FD14 00000000 */ nop +/* 064848 7F02FD18 460C6202 */ mul.s $f8, $f12, $f12 +/* 06484C 7F02FD1C 46062480 */ add.s $f18, $f4, $f6 +/* 064850 7F02FD20 46089101 */ sub.s $f4, $f18, $f8 +/* 064854 7F02FD24 46102182 */ mul.s $f6, $f4, $f16 +/* 064858 7F02FD28 460A303E */ c.le.s $f6, $f10 +/* 06485C 7F02FD2C 00000000 */ nop +/* 064860 7F02FD30 45000003 */ bc1f .L7F02FD40 +/* 064864 7F02FD34 00000000 */ nop +/* 064868 7F02FD38 10000003 */ b .L7F02FD48 +/* 06486C 7F02FD3C 24020001 */ li $v0, 1 +.L7F02FD40: +/* 064870 7F02FD40 10000001 */ b .L7F02FD48 +/* 064874 7F02FD44 00001025 */ move $v0, $zero +.L7F02FD48: +/* 064878 7F02FD48 03E00008 */ jr $ra +/* 06487C 7F02FD4C 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FD50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FD50 +/* 064880 7F02FD50 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 064884 7F02FD54 AFBF001C */ sw $ra, 0x1c($sp) +/* 064888 7F02FD58 AFB00018 */ sw $s0, 0x18($sp) +/* 06488C 7F02FD5C 44876000 */ mtc1 $a3, $f12 +/* 064890 7F02FD60 C4C00000 */ lwc1 $f0, ($a2) +/* 064894 7F02FD64 C4900000 */ lwc1 $f16, ($a0) +/* 064898 7F02FD68 00A08025 */ move $s0, $a1 +/* 06489C 7F02FD6C 460C0081 */ sub.s $f2, $f0, $f12 +/* 0648A0 7F02FD70 4602803E */ c.le.s $f16, $f2 +/* 0648A4 7F02FD74 00000000 */ nop +/* 0648A8 7F02FD78 45020009 */ bc1fl .L7F02FDA0 +/* 0648AC 7F02FD7C 460C0080 */ add.s $f2, $f0, $f12 +/* 0648B0 7F02FD80 C4A40000 */ lwc1 $f4, ($a1) +/* 0648B4 7F02FD84 4602203E */ c.le.s $f4, $f2 +/* 0648B8 7F02FD88 00000000 */ nop +/* 0648BC 7F02FD8C 45020004 */ bc1fl .L7F02FDA0 +/* 0648C0 7F02FD90 460C0080 */ add.s $f2, $f0, $f12 +/* 0648C4 7F02FD94 10000033 */ b .L7F02FE64 +/* 0648C8 7F02FD98 00001025 */ move $v0, $zero +/* 0648CC 7F02FD9C 460C0080 */ add.s $f2, $f0, $f12 +.L7F02FDA0: +/* 0648D0 7F02FDA0 4610103E */ c.le.s $f2, $f16 +/* 0648D4 7F02FDA4 00000000 */ nop +/* 0648D8 7F02FDA8 45020009 */ bc1fl .L7F02FDD0 +/* 0648DC 7F02FDAC C4C00008 */ lwc1 $f0, 8($a2) +/* 0648E0 7F02FDB0 C6060000 */ lwc1 $f6, ($s0) +/* 0648E4 7F02FDB4 4606103E */ c.le.s $f2, $f6 +/* 0648E8 7F02FDB8 00000000 */ nop +/* 0648EC 7F02FDBC 45020004 */ bc1fl .L7F02FDD0 +/* 0648F0 7F02FDC0 C4C00008 */ lwc1 $f0, 8($a2) +/* 0648F4 7F02FDC4 10000027 */ b .L7F02FE64 +/* 0648F8 7F02FDC8 00001025 */ move $v0, $zero +/* 0648FC 7F02FDCC C4C00008 */ lwc1 $f0, 8($a2) +.L7F02FDD0: +/* 064900 7F02FDD0 C48E0008 */ lwc1 $f14, 8($a0) +/* 064904 7F02FDD4 460C0081 */ sub.s $f2, $f0, $f12 +/* 064908 7F02FDD8 4602703E */ c.le.s $f14, $f2 +/* 06490C 7F02FDDC 00000000 */ nop +/* 064910 7F02FDE0 45020009 */ bc1fl .L7F02FE08 +/* 064914 7F02FDE4 460C0080 */ add.s $f2, $f0, $f12 +/* 064918 7F02FDE8 C6080008 */ lwc1 $f8, 8($s0) +/* 06491C 7F02FDEC 4602403E */ c.le.s $f8, $f2 +/* 064920 7F02FDF0 00000000 */ nop +/* 064924 7F02FDF4 45020004 */ bc1fl .L7F02FE08 +/* 064928 7F02FDF8 460C0080 */ add.s $f2, $f0, $f12 +/* 06492C 7F02FDFC 10000019 */ b .L7F02FE64 +/* 064930 7F02FE00 00001025 */ move $v0, $zero +/* 064934 7F02FE04 460C0080 */ add.s $f2, $f0, $f12 +.L7F02FE08: +/* 064938 7F02FE08 460E103E */ c.le.s $f2, $f14 +/* 06493C 7F02FE0C 00000000 */ nop +/* 064940 7F02FE10 45020009 */ bc1fl .L7F02FE38 +/* 064944 7F02FE14 C6120000 */ lwc1 $f18, ($s0) +/* 064948 7F02FE18 C60A0008 */ lwc1 $f10, 8($s0) +/* 06494C 7F02FE1C 460A103E */ c.le.s $f2, $f10 +/* 064950 7F02FE20 00000000 */ nop +/* 064954 7F02FE24 45020004 */ bc1fl .L7F02FE38 +/* 064958 7F02FE28 C6120000 */ lwc1 $f18, ($s0) +/* 06495C 7F02FE2C 1000000D */ b .L7F02FE64 +/* 064960 7F02FE30 00001025 */ move $v0, $zero +/* 064964 7F02FE34 C6120000 */ lwc1 $f18, ($s0) +.L7F02FE38: +/* 064968 7F02FE38 44803000 */ mtc1 $zero, $f6 +/* 06496C 7F02FE3C 44076000 */ mfc1 $a3, $f12 +/* 064970 7F02FE40 46109101 */ sub.s $f4, $f18, $f16 +/* 064974 7F02FE44 E7A60038 */ swc1 $f6, 0x38($sp) +/* 064978 7F02FE48 27A50034 */ addiu $a1, $sp, 0x34 +/* 06497C 7F02FE4C E7A40034 */ swc1 $f4, 0x34($sp) +/* 064980 7F02FE50 C48A0008 */ lwc1 $f10, 8($a0) +/* 064984 7F02FE54 C6080008 */ lwc1 $f8, 8($s0) +/* 064988 7F02FE58 460A4481 */ sub.s $f18, $f8, $f10 +/* 06498C 7F02FE5C 0FC0BF0D */ jal sub_GAME_7F02FC34 +/* 064990 7F02FE60 E7B2003C */ swc1 $f18, 0x3c($sp) +.L7F02FE64: +/* 064994 7F02FE64 8FBF001C */ lw $ra, 0x1c($sp) +/* 064998 7F02FE68 8FB00018 */ lw $s0, 0x18($sp) +/* 06499C 7F02FE6C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0649A0 7F02FE70 03E00008 */ jr $ra +/* 0649A4 7F02FE74 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FE78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FE78 +/* 0649A8 7F02FE78 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0649AC 7F02FE7C AFBF001C */ sw $ra, 0x1c($sp) +/* 0649B0 7F02FE80 AFB10018 */ sw $s1, 0x18($sp) +/* 0649B4 7F02FE84 AFB00014 */ sw $s0, 0x14($sp) +/* 0649B8 7F02FE88 3C038005 */ lui $v1, %hi(global_timer) +/* 0649BC 7F02FE8C 808F0009 */ lb $t7, 9($a0) +/* 0649C0 7F02FE90 2463837C */ addiu $v1, %lo(global_timer) # addiu $v1, $v1, -0x7c84 +/* 0649C4 7F02FE94 8C6E0000 */ lw $t6, ($v1) +/* 0649C8 7F02FE98 24010001 */ li $at, 1 +/* 0649CC 7F02FE9C 00808025 */ move $s0, $a0 +/* 0649D0 7F02FEA0 8C820018 */ lw $v0, 0x18($a0) +/* 0649D4 7F02FEA4 8C91001C */ lw $s1, 0x1c($a0) +/* 0649D8 7F02FEA8 11E1000E */ beq $t7, $at, .L7F02FEE4 +/* 0649DC 7F02FEAC AC8E00C8 */ sw $t6, 0xc8($a0) +/* 0649E0 7F02FEB0 8C790000 */ lw $t9, ($v1) +/* 0649E4 7F02FEB4 8C9800CC */ lw $t8, 0xcc($a0) +/* 0649E8 7F02FEB8 248400BC */ addiu $a0, $a0, 0xbc +/* 0649EC 7F02FEBC 2728FFC4 */ addiu $t0, $t9, -0x3c +/* 0649F0 7F02FEC0 0308082A */ slt $at, $t8, $t0 +/* 0649F4 7F02FEC4 14200007 */ bnez $at, .L7F02FEE4 +/* 0649F8 7F02FEC8 24450008 */ addiu $a1, $v0, 8 +/* 0649FC 7F02FECC 2606002C */ addiu $a2, $s0, 0x2c +/* 064A00 7F02FED0 8E070038 */ lw $a3, 0x38($s0) +/* 064A04 7F02FED4 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 064A08 7F02FED8 AFA60020 */ sw $a2, 0x20($sp) +/* 064A0C 7F02FEDC 10400068 */ beqz $v0, .L7F030080 +/* 064A10 7F02FEE0 02002025 */ move $a0, $s0 +.L7F02FEE4: +/* 064A14 7F02FEE4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A18 7F02FEE8 02202025 */ move $a0, $s1 +/* 064A1C 7F02FEEC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 064A20 7F02FEF0 02202025 */ move $a0, $s1 +/* 064A24 7F02FEF4 44803000 */ mtc1 $zero, $f6 +/* 064A28 7F02FEF8 44802000 */ mtc1 $zero, $f4 +/* 064A2C 7F02FEFC 02202025 */ move $a0, $s1 +/* 064A30 7F02FF00 4606003C */ c.lt.s $f0, $f6 +/* 064A34 7F02FF04 46040081 */ sub.s $f2, $f0, $f4 +/* 064A38 7F02FF08 4502000E */ bc1fl .L7F02FF44 +/* 064A3C 7F02FF0C 02202025 */ move $a0, $s1 +/* 064A40 7F02FF10 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A44 7F02FF14 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064A48 7F02FF18 94490004 */ lhu $t1, 4($v0) +/* 064A4C 7F02FF1C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064A50 7F02FF20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064A54 7F02FF24 44894000 */ mtc1 $t1, $f8 +/* 064A58 7F02FF28 05210004 */ bgez $t1, .L7F02FF3C +/* 064A5C 7F02FF2C 468042A0 */ cvt.s.w $f10, $f8 +/* 064A60 7F02FF30 44818000 */ mtc1 $at, $f16 +/* 064A64 7F02FF34 00000000 */ nop +/* 064A68 7F02FF38 46105280 */ add.s $f10, $f10, $f16 +.L7F02FF3C: +/* 064A6C 7F02FF3C 460A1080 */ add.s $f2, $f2, $f10 +/* 064A70 7F02FF40 02202025 */ move $a0, $s1 +.L7F02FF44: +/* 064A74 7F02FF44 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A78 7F02FF48 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064A7C 7F02FF4C 944A0004 */ lhu $t2, 4($v0) +/* 064A80 7F02FF50 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064A84 7F02FF54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064A88 7F02FF58 448A9000 */ mtc1 $t2, $f18 +/* 064A8C 7F02FF5C 05410004 */ bgez $t2, .L7F02FF70 +/* 064A90 7F02FF60 46809120 */ cvt.s.w $f4, $f18 +/* 064A94 7F02FF64 44813000 */ mtc1 $at, $f6 +/* 064A98 7F02FF68 00000000 */ nop +/* 064A9C 7F02FF6C 46062100 */ add.s $f4, $f4, $f6 +.L7F02FF70: +/* 064AA0 7F02FF70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064AA4 7F02FF74 44814000 */ mtc1 $at, $f8 +/* 064AA8 7F02FF78 00000000 */ nop +/* 064AAC 7F02FF7C 46082402 */ mul.s $f16, $f4, $f8 +/* 064AB0 7F02FF80 4602803C */ c.lt.s $f16, $f2 +/* 064AB4 7F02FF84 00000000 */ nop +/* 064AB8 7F02FF88 45000014 */ bc1f .L7F02FFDC +/* 064ABC 7F02FF8C 00000000 */ nop +/* 064AC0 7F02FF90 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064AC4 7F02FF94 02202025 */ move $a0, $s1 +/* 064AC8 7F02FF98 944B0004 */ lhu $t3, 4($v0) +/* 064ACC 7F02FF9C 44802000 */ mtc1 $zero, $f4 +/* 064AD0 7F02FFA0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064AD4 7F02FFA4 448B5000 */ mtc1 $t3, $f10 +/* 064AD8 7F02FFA8 05610004 */ bgez $t3, .L7F02FFBC +/* 064ADC 7F02FFAC 468054A0 */ cvt.s.w $f18, $f10 +/* 064AE0 7F02FFB0 44813000 */ mtc1 $at, $f6 +/* 064AE4 7F02FFB4 00000000 */ nop +/* 064AE8 7F02FFB8 46069480 */ add.s $f18, $f18, $f6 +.L7F02FFBC: +/* 064AEC 7F02FFBC 46049081 */ sub.s $f2, $f18, $f4 +/* 064AF0 7F02FFC0 02202025 */ move $a0, $s1 +/* 064AF4 7F02FFC4 3C064180 */ lui $a2, 0x4180 +/* 064AF8 7F02FFC8 44051000 */ mfc1 $a1, $f2 +/* 064AFC 7F02FFCC 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064B00 7F02FFD0 00000000 */ nop +/* 064B04 7F02FFD4 10000026 */ b .L7F030070 +/* 064B08 7F02FFD8 00000000 */ nop +.L7F02FFDC: +/* 064B0C 7F02FFDC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064B10 7F02FFE0 02202025 */ move $a0, $s1 +/* 064B14 7F02FFE4 944C0004 */ lhu $t4, 4($v0) +/* 064B18 7F02FFE8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064B1C 7F02FFEC 02202025 */ move $a0, $s1 +/* 064B20 7F02FFF0 448C4000 */ mtc1 $t4, $f8 +/* 064B24 7F02FFF4 05810004 */ bgez $t4, .L7F030008 +/* 064B28 7F02FFF8 46804420 */ cvt.s.w $f16, $f8 +/* 064B2C 7F02FFFC 44815000 */ mtc1 $at, $f10 +/* 064B30 7F030000 00000000 */ nop +/* 064B34 7F030004 460A8400 */ add.s $f16, $f16, $f10 +.L7F030008: +/* 064B38 7F030008 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064B3C 7F03000C 44813000 */ mtc1 $at, $f6 +/* 064B40 7F030010 44802000 */ mtc1 $zero, $f4 +/* 064B44 7F030014 44804000 */ mtc1 $zero, $f8 +/* 064B48 7F030018 46068482 */ mul.s $f18, $f16, $f6 +/* 064B4C 7F03001C 46049081 */ sub.s $f2, $f18, $f4 +/* 064B50 7F030020 4608103C */ c.lt.s $f2, $f8 +/* 064B54 7F030024 00000000 */ nop +/* 064B58 7F030028 4502000E */ bc1fl .L7F030064 +/* 064B5C 7F03002C 44051000 */ mfc1 $a1, $f2 +/* 064B60 7F030030 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064B64 7F030034 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064B68 7F030038 944D0004 */ lhu $t5, 4($v0) +/* 064B6C 7F03003C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064B70 7F030040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064B74 7F030044 448D5000 */ mtc1 $t5, $f10 +/* 064B78 7F030048 05A10004 */ bgez $t5, .L7F03005C +/* 064B7C 7F03004C 46805420 */ cvt.s.w $f16, $f10 +/* 064B80 7F030050 44813000 */ mtc1 $at, $f6 +/* 064B84 7F030054 00000000 */ nop +/* 064B88 7F030058 46068400 */ add.s $f16, $f16, $f6 +.L7F03005C: +/* 064B8C 7F03005C 46101080 */ add.s $f2, $f2, $f16 +/* 064B90 7F030060 44051000 */ mfc1 $a1, $f2 +.L7F030064: +/* 064B94 7F030064 02202025 */ move $a0, $s1 +/* 064B98 7F030068 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064B9C 7F03006C 3C064180 */ lui $a2, 0x4180 +.L7F030070: +/* 064BA0 7F030070 0FC08F92 */ jal sub_GAME_7F023E48 +/* 064BA4 7F030074 02002025 */ move $a0, $s0 +/* 064BA8 7F030078 10000027 */ b .L7F030118 +/* 064BAC 7F03007C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F030080: +/* 064BB0 7F030080 8FA50020 */ lw $a1, 0x20($sp) +/* 064BB4 7F030084 24060001 */ li $a2, 1 +/* 064BB8 7F030088 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 064BBC 7F03008C 26070040 */ addiu $a3, $s0, 0x40 +/* 064BC0 7F030090 8E03003C */ lw $v1, 0x3c($s0) +/* 064BC4 7F030094 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 064BC8 7F030098 3C018003 */ lui $at, %hi(D_80030988) +/* 064BCC 7F03009C 18600005 */ blez $v1, .L7F0300B4 +/* 064BD0 7F0300A0 00000000 */ nop +/* 064BD4 7F0300A4 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 064BD8 7F0300A8 006E7823 */ subu $t7, $v1, $t6 +/* 064BDC 7F0300AC 10000019 */ b .L7F030114 +/* 064BE0 7F0300B0 AE0F003C */ sw $t7, 0x3c($s0) +.L7F0300B4: +/* 064BE4 7F0300B4 C4320988 */ lwc1 $f18, %lo(D_80030988)($at) +/* 064BE8 7F0300B8 02202025 */ move $a0, $s1 +/* 064BEC 7F0300BC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064BF0 7F0300C0 E7B2002C */ swc1 $f18, 0x2c($sp) +/* 064BF4 7F0300C4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 064BF8 7F0300C8 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 064BFC 7F0300CC 3C180000 */ lui $t8, %hi(0x0000777C) # $t8, 0 +/* 064C00 7F0300D0 2718777C */ addiu $t8, %lo(0x0000777C) # addiu $t8, $t8, 0x777c +/* 064C04 7F0300D4 03384021 */ addu $t0, $t9, $t8 +/* 064C08 7F0300D8 14480003 */ bne $v0, $t0, .L7F0300E8 +/* 064C0C 7F0300DC 3C018003 */ lui $at, %hi(D_80030994) +/* 064C10 7F0300E0 C4240994 */ lwc1 $f4, %lo(D_80030994)($at) +/* 064C14 7F0300E4 E7A4002C */ swc1 $f4, 0x2c($sp) +.L7F0300E8: +/* 064C18 7F0300E8 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 064C1C 7F0300EC 02202025 */ move $a0, $s1 +/* 064C20 7F0300F0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 064C24 7F0300F4 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 064C28 7F0300F8 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 064C2C 7F0300FC C6120038 */ lwc1 $f18, 0x38($s0) +/* 064C30 7F030100 460A4182 */ mul.s $f6, $f8, $f10 +/* 064C34 7F030104 00000000 */ nop +/* 064C38 7F030108 46003402 */ mul.s $f16, $f6, $f0 +/* 064C3C 7F03010C 46109100 */ add.s $f4, $f18, $f16 +/* 064C40 7F030110 E6040038 */ swc1 $f4, 0x38($s0) +.L7F030114: +/* 064C44 7F030114 8FBF001C */ lw $ra, 0x1c($sp) +.L7F030118: +/* 064C48 7F030118 8FB00014 */ lw $s0, 0x14($sp) +/* 064C4C 7F03011C 8FB10018 */ lw $s1, 0x18($sp) +/* 064C50 7F030120 03E00008 */ jr $ra +/* 064C54 7F030124 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F030128(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F030128 +/* 064C58 7F030128 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 064C5C 7F03012C AFBF002C */ sw $ra, 0x2c($sp) +/* 064C60 7F030130 AFA40048 */ sw $a0, 0x48($sp) +/* 064C64 7F030134 AFA5004C */ sw $a1, 0x4c($sp) +/* 064C68 7F030138 AFA60050 */ sw $a2, 0x50($sp) +/* 064C6C 7F03013C AFA70054 */ sw $a3, 0x54($sp) +/* 064C70 7F030140 AFA60044 */ sw $a2, 0x44($sp) +/* 064C74 7F030144 AFA00040 */ sw $zero, 0x40($sp) +/* 064C78 7F030148 8C840018 */ lw $a0, 0x18($a0) +/* 064C7C 7F03014C 27A6003C */ addiu $a2, $sp, 0x3c +/* 064C80 7F030150 27A70038 */ addiu $a3, $sp, 0x38 +/* 064C84 7F030154 0FC08C58 */ jal sub_GAME_7F023160 +/* 064C88 7F030158 27A50034 */ addiu $a1, $sp, 0x34 +/* 064C8C 7F03015C 8FA40048 */ lw $a0, 0x48($sp) +/* 064C90 7F030160 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064C94 7F030164 00002825 */ move $a1, $zero +/* 064C98 7F030168 8FA2004C */ lw $v0, 0x4c($sp) +/* 064C9C 7F03016C 8FA30054 */ lw $v1, 0x54($sp) +/* 064CA0 7F030170 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064CA4 7F030174 8C450000 */ lw $a1, ($v0) +/* 064CA8 7F030178 C4640008 */ lwc1 $f4, 8($v1) +/* 064CAC 7F03017C 8C460008 */ lw $a2, 8($v0) +/* 064CB0 7F030180 8C670000 */ lw $a3, ($v1) +/* 064CB4 7F030184 44818000 */ mtc1 $at, $f16 +/* 064CB8 7F030188 8FB8005C */ lw $t8, 0x5c($sp) +/* 064CBC 7F03018C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 064CC0 7F030190 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 064CC4 7F030194 44805000 */ mtc1 $zero, $f10 +/* 064CC8 7F030198 27A40044 */ addiu $a0, $sp, 0x44 +/* 064CCC 7F03019C E7A40010 */ swc1 $f4, 0x10($sp) +/* 064CD0 7F0301A0 AFB80014 */ sw $t8, 0x14($sp) +/* 064CD4 7F0301A4 E7B00024 */ swc1 $f16, 0x24($sp) +/* 064CD8 7F0301A8 E7A60018 */ swc1 $f6, 0x18($sp) +/* 064CDC 7F0301AC E7A8001C */ swc1 $f8, 0x1c($sp) +/* 064CE0 7F0301B0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064CE4 7F0301B4 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 064CE8 7F0301B8 10400009 */ beqz $v0, .L7F0301E0 +/* 064CEC 7F0301BC 24050001 */ li $a1, 1 +/* 064CF0 7F0301C0 8FA20058 */ lw $v0, 0x58($sp) +/* 064CF4 7F0301C4 8FB90044 */ lw $t9, 0x44($sp) +/* 064CF8 7F0301C8 24080001 */ li $t0, 1 +/* 064CFC 7F0301CC 50400004 */ beql $v0, $zero, .L7F0301E0 +/* 064D00 7F0301D0 AFA80040 */ sw $t0, 0x40($sp) +/* 064D04 7F0301D4 17220002 */ bne $t9, $v0, .L7F0301E0 +/* 064D08 7F0301D8 00000000 */ nop +/* 064D0C 7F0301DC AFA80040 */ sw $t0, 0x40($sp) +.L7F0301E0: +/* 064D10 7F0301E0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064D14 7F0301E4 8FA40048 */ lw $a0, 0x48($sp) +/* 064D18 7F0301E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 064D1C 7F0301EC 8FA20040 */ lw $v0, 0x40($sp) +/* 064D20 7F0301F0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 064D24 7F0301F4 03E00008 */ jr $ra +/* 064D28 7F0301F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0301FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0301FC +/* 064D2C 7F0301FC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 064D30 7F030200 AFB10048 */ sw $s1, 0x48($sp) +/* 064D34 7F030204 AFB00044 */ sw $s0, 0x44($sp) +/* 064D38 7F030208 00A08025 */ move $s0, $a1 +/* 064D3C 7F03020C 00E08825 */ move $s1, $a3 +/* 064D40 7F030210 AFBF004C */ sw $ra, 0x4c($sp) +/* 064D44 7F030214 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 064D48 7F030218 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 064D4C 7F03021C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 064D50 7F030220 AFA40088 */ sw $a0, 0x88($sp) +/* 064D54 7F030224 AFA60090 */ sw $a2, 0x90($sp) +/* 064D58 7F030228 AFA00068 */ sw $zero, 0x68($sp) +/* 064D5C 7F03022C 8C840018 */ lw $a0, 0x18($a0) +/* 064D60 7F030230 27A60064 */ addiu $a2, $sp, 0x64 +/* 064D64 7F030234 27A70060 */ addiu $a3, $sp, 0x60 +/* 064D68 7F030238 0FC08C58 */ jal sub_GAME_7F023160 +/* 064D6C 7F03023C 27A5005C */ addiu $a1, $sp, 0x5c +/* 064D70 7F030240 C6240000 */ lwc1 $f4, ($s1) +/* 064D74 7F030244 C6060000 */ lwc1 $f6, ($s0) +/* 064D78 7F030248 4480C000 */ mtc1 $zero, $f24 +/* 064D7C 7F03024C 46062201 */ sub.s $f8, $f4, $f6 +/* 064D80 7F030250 E7B8007C */ swc1 $f24, 0x7c($sp) +/* 064D84 7F030254 E7A80078 */ swc1 $f8, 0x78($sp) +/* 064D88 7F030258 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 064D8C 7F03025C C6120008 */ lwc1 $f18, 8($s0) +/* 064D90 7F030260 C62A0008 */ lwc1 $f10, 8($s1) +/* 064D94 7F030264 4606C032 */ c.eq.s $f24, $f6 +/* 064D98 7F030268 46125101 */ sub.s $f4, $f10, $f18 +/* 064D9C 7F03026C 45000009 */ bc1f .L7F030294 +/* 064DA0 7F030270 E7A40080 */ swc1 $f4, 0x80($sp) +/* 064DA4 7F030274 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DA8 7F030278 240F0001 */ li $t7, 1 +/* 064DAC 7F03027C 4610C032 */ c.eq.s $f24, $f16 +/* 064DB0 7F030280 00000000 */ nop +/* 064DB4 7F030284 45020004 */ bc1fl .L7F030298 +/* 064DB8 7F030288 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DBC 7F03028C 1000007E */ b .L7F030488 +/* 064DC0 7F030290 AFAF0068 */ sw $t7, 0x68($sp) +.L7F030294: +/* 064DC4 7F030294 C7B00080 */ lwc1 $f16, 0x80($sp) +.L7F030298: +/* 064DC8 7F030298 C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 064DCC 7F03029C 46108202 */ mul.s $f8, $f16, $f16 +/* 064DD0 7F0302A0 00000000 */ nop +/* 064DD4 7F0302A4 460E7282 */ mul.s $f10, $f14, $f14 +/* 064DD8 7F0302A8 0C007DF8 */ jal sqrtf +/* 064DDC 7F0302AC 460A4300 */ add.s $f12, $f8, $f10 +/* 064DE0 7F0302B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064DE4 7F0302B4 44819000 */ mtc1 $at, $f18 +/* 064DE8 7F0302B8 C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 064DEC 7F0302BC C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DF0 7F0302C0 46009083 */ div.s $f2, $f18, $f0 +/* 064DF4 7F0302C4 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 064DF8 7F0302C8 8FA40088 */ lw $a0, 0x88($sp) +/* 064DFC 7F0302CC 00002825 */ move $a1, $zero +/* 064E00 7F0302D0 46027382 */ mul.s $f14, $f14, $f2 +/* 064E04 7F0302D4 00000000 */ nop +/* 064E08 7F0302D8 46028402 */ mul.s $f16, $f16, $f2 +/* 064E0C 7F0302DC 00000000 */ nop +/* 064E10 7F0302E0 460C7502 */ mul.s $f20, $f14, $f12 +/* 064E14 7F0302E4 E7AE0078 */ swc1 $f14, 0x78($sp) +/* 064E18 7F0302E8 460C8582 */ mul.s $f22, $f16, $f12 +/* 064E1C 7F0302EC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064E20 7F0302F0 E7B00080 */ swc1 $f16, 0x80($sp) +/* 064E24 7F0302F4 8FB80090 */ lw $t8, 0x90($sp) +/* 064E28 7F0302F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064E2C 7F0302FC 44819000 */ mtc1 $at, $f18 +/* 064E30 7F030300 AFB80084 */ sw $t8, 0x84($sp) +/* 064E34 7F030304 C6000000 */ lwc1 $f0, ($s0) +/* 064E38 7F030308 C6020008 */ lwc1 $f2, 8($s0) +/* 064E3C 7F03030C 8FB9009C */ lw $t9, 0x9c($sp) +/* 064E40 7F030310 46160100 */ add.s $f4, $f0, $f22 +/* 064E44 7F030314 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 064E48 7F030318 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 064E4C 7F03031C 46141181 */ sub.s $f6, $f2, $f20 +/* 064E50 7F030320 44072000 */ mfc1 $a3, $f4 +/* 064E54 7F030324 44050000 */ mfc1 $a1, $f0 +/* 064E58 7F030328 44061000 */ mfc1 $a2, $f2 +/* 064E5C 7F03032C E7A60010 */ swc1 $f6, 0x10($sp) +/* 064E60 7F030330 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064E64 7F030334 27A40084 */ addiu $a0, $sp, 0x84 +/* 064E68 7F030338 E7B20024 */ swc1 $f18, 0x24($sp) +/* 064E6C 7F03033C AFB90014 */ sw $t9, 0x14($sp) +/* 064E70 7F030340 E7A80018 */ swc1 $f8, 0x18($sp) +/* 064E74 7F030344 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064E78 7F030348 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 064E7C 7F03034C 1040004B */ beqz $v0, .L7F03047C +/* 064E80 7F030350 27A40084 */ addiu $a0, $sp, 0x84 +/* 064E84 7F030354 C6040000 */ lwc1 $f4, ($s0) +/* 064E88 7F030358 C6080008 */ lwc1 $f8, 8($s0) +/* 064E8C 7F03035C C6320000 */ lwc1 $f18, ($s1) +/* 064E90 7F030360 46162180 */ add.s $f6, $f4, $f22 +/* 064E94 7F030364 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064E98 7F030368 8FA8009C */ lw $t0, 0x9c($sp) +/* 064E9C 7F03036C 46144281 */ sub.s $f10, $f8, $f20 +/* 064EA0 7F030370 44053000 */ mfc1 $a1, $f6 +/* 064EA4 7F030374 C6260008 */ lwc1 $f6, 8($s1) +/* 064EA8 7F030378 46169100 */ add.s $f4, $f18, $f22 +/* 064EAC 7F03037C 44065000 */ mfc1 $a2, $f10 +/* 064EB0 7F030380 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 064EB4 7F030384 46143201 */ sub.s $f8, $f6, $f20 +/* 064EB8 7F030388 44072000 */ mfc1 $a3, $f4 +/* 064EBC 7F03038C 44812000 */ mtc1 $at, $f4 +/* 064EC0 7F030390 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 064EC4 7F030394 E7A80010 */ swc1 $f8, 0x10($sp) +/* 064EC8 7F030398 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064ECC 7F03039C AFA80014 */ sw $t0, 0x14($sp) +/* 064ED0 7F0303A0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 064ED4 7F0303A4 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 064ED8 7F0303A8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064EDC 7F0303AC E7A40024 */ swc1 $f4, 0x24($sp) +/* 064EE0 7F0303B0 10400032 */ beqz $v0, .L7F03047C +/* 064EE4 7F0303B4 8FA90090 */ lw $t1, 0x90($sp) +/* 064EE8 7F0303B8 AFA90084 */ sw $t1, 0x84($sp) +/* 064EEC 7F0303BC C6000000 */ lwc1 $f0, ($s0) +/* 064EF0 7F0303C0 C6020008 */ lwc1 $f2, 8($s0) +/* 064EF4 7F0303C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064EF8 7F0303C8 46160181 */ sub.s $f6, $f0, $f22 +/* 064EFC 7F0303CC 44812000 */ mtc1 $at, $f4 +/* 064F00 7F0303D0 8FAA009C */ lw $t2, 0x9c($sp) +/* 064F04 7F0303D4 46141200 */ add.s $f8, $f2, $f20 +/* 064F08 7F0303D8 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 064F0C 7F0303DC C7B20060 */ lwc1 $f18, 0x60($sp) +/* 064F10 7F0303E0 44073000 */ mfc1 $a3, $f6 +/* 064F14 7F0303E4 44050000 */ mfc1 $a1, $f0 +/* 064F18 7F0303E8 44061000 */ mfc1 $a2, $f2 +/* 064F1C 7F0303EC E7A80010 */ swc1 $f8, 0x10($sp) +/* 064F20 7F0303F0 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064F24 7F0303F4 27A40084 */ addiu $a0, $sp, 0x84 +/* 064F28 7F0303F8 AFAA0014 */ sw $t2, 0x14($sp) +/* 064F2C 7F0303FC E7A40024 */ swc1 $f4, 0x24($sp) +/* 064F30 7F030400 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 064F34 7F030404 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064F38 7F030408 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 064F3C 7F03040C 1040001B */ beqz $v0, .L7F03047C +/* 064F40 7F030410 27A40084 */ addiu $a0, $sp, 0x84 +/* 064F44 7F030414 C6060000 */ lwc1 $f6, ($s0) +/* 064F48 7F030418 C60A0008 */ lwc1 $f10, 8($s0) +/* 064F4C 7F03041C C6240000 */ lwc1 $f4, ($s1) +/* 064F50 7F030420 46163201 */ sub.s $f8, $f6, $f22 +/* 064F54 7F030424 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064F58 7F030428 8FAB009C */ lw $t3, 0x9c($sp) +/* 064F5C 7F03042C 46145480 */ add.s $f18, $f10, $f20 +/* 064F60 7F030430 44054000 */ mfc1 $a1, $f8 +/* 064F64 7F030434 C6280008 */ lwc1 $f8, 8($s1) +/* 064F68 7F030438 46162181 */ sub.s $f6, $f4, $f22 +/* 064F6C 7F03043C 44069000 */ mfc1 $a2, $f18 +/* 064F70 7F030440 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 064F74 7F030444 46144280 */ add.s $f10, $f8, $f20 +/* 064F78 7F030448 44073000 */ mfc1 $a3, $f6 +/* 064F7C 7F03044C 44813000 */ mtc1 $at, $f6 +/* 064F80 7F030450 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 064F84 7F030454 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 064F88 7F030458 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064F8C 7F03045C AFAB0014 */ sw $t3, 0x14($sp) +/* 064F90 7F030460 E7B20018 */ swc1 $f18, 0x18($sp) +/* 064F94 7F030464 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 064F98 7F030468 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064F9C 7F03046C E7A60024 */ swc1 $f6, 0x24($sp) +/* 064FA0 7F030470 10400002 */ beqz $v0, .L7F03047C +/* 064FA4 7F030474 240C0001 */ li $t4, 1 +/* 064FA8 7F030478 AFAC0068 */ sw $t4, 0x68($sp) +.L7F03047C: +/* 064FAC 7F03047C 8FA40088 */ lw $a0, 0x88($sp) +/* 064FB0 7F030480 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064FB4 7F030484 24050001 */ li $a1, 1 +.L7F030488: +/* 064FB8 7F030488 8FBF004C */ lw $ra, 0x4c($sp) +/* 064FBC 7F03048C 8FA20068 */ lw $v0, 0x68($sp) +/* 064FC0 7F030490 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 064FC4 7F030494 D7B60030 */ ldc1 $f22, 0x30($sp) +/* 064FC8 7F030498 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 064FCC 7F03049C 8FB00044 */ lw $s0, 0x44($sp) +/* 064FD0 7F0304A0 8FB10048 */ lw $s1, 0x48($sp) +/* 064FD4 7F0304A4 03E00008 */ jr $ra +/* 064FD8 7F0304A8 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0304AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0304AC +/* 064FDC 7F0304AC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 064FE0 7F0304B0 AFBF002C */ sw $ra, 0x2c($sp) +/* 064FE4 7F0304B4 AFA40048 */ sw $a0, 0x48($sp) +/* 064FE8 7F0304B8 AFA5004C */ sw $a1, 0x4c($sp) +/* 064FEC 7F0304BC AFA60050 */ sw $a2, 0x50($sp) +/* 064FF0 7F0304C0 AFA70054 */ sw $a3, 0x54($sp) +/* 064FF4 7F0304C4 AFA60044 */ sw $a2, 0x44($sp) +/* 064FF8 7F0304C8 AFA00040 */ sw $zero, 0x40($sp) +/* 064FFC 7F0304CC 8C840018 */ lw $a0, 0x18($a0) +/* 065000 7F0304D0 27A6003C */ addiu $a2, $sp, 0x3c +/* 065004 7F0304D4 27A70038 */ addiu $a3, $sp, 0x38 +/* 065008 7F0304D8 0FC08C58 */ jal sub_GAME_7F023160 +/* 06500C 7F0304DC 27A50034 */ addiu $a1, $sp, 0x34 +/* 065010 7F0304E0 8FA40048 */ lw $a0, 0x48($sp) +/* 065014 7F0304E4 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065018 7F0304E8 00002825 */ move $a1, $zero +/* 06501C 7F0304EC 8FA20054 */ lw $v0, 0x54($sp) +/* 065020 7F0304F0 8FA3004C */ lw $v1, 0x4c($sp) +/* 065024 7F0304F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065028 7F0304F8 C4440008 */ lwc1 $f4, 8($v0) +/* 06502C 7F0304FC 8C470000 */ lw $a3, ($v0) +/* 065030 7F030500 8C650000 */ lw $a1, ($v1) +/* 065034 7F030504 8C660008 */ lw $a2, 8($v1) +/* 065038 7F030508 44818000 */ mtc1 $at, $f16 +/* 06503C 7F03050C 8FB80060 */ lw $t8, 0x60($sp) +/* 065040 7F030510 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 065044 7F030514 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 065048 7F030518 44805000 */ mtc1 $zero, $f10 +/* 06504C 7F03051C 27A40044 */ addiu $a0, $sp, 0x44 +/* 065050 7F030520 E7A40010 */ swc1 $f4, 0x10($sp) +/* 065054 7F030524 AFB80014 */ sw $t8, 0x14($sp) +/* 065058 7F030528 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06505C 7F03052C E7A60018 */ swc1 $f6, 0x18($sp) +/* 065060 7F030530 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065064 7F030534 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065068 7F030538 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06506C 7F03053C 10400020 */ beqz $v0, .L7F0305C0 +/* 065070 7F030540 8FB90044 */ lw $t9, 0x44($sp) +/* 065074 7F030544 8FA20058 */ lw $v0, 0x58($sp) +/* 065078 7F030548 8FA80054 */ lw $t0, 0x54($sp) +/* 06507C 7F03054C AFB90030 */ sw $t9, 0x30($sp) +/* 065080 7F030550 C4520008 */ lwc1 $f18, 8($v0) +/* 065084 7F030554 8C470000 */ lw $a3, ($v0) +/* 065088 7F030558 8D060008 */ lw $a2, 8($t0) +/* 06508C 7F03055C 8D050000 */ lw $a1, ($t0) +/* 065090 7F030560 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065094 7F030564 44815000 */ mtc1 $at, $f10 +/* 065098 7F030568 8FA90060 */ lw $t1, 0x60($sp) +/* 06509C 7F03056C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0650A0 7F030570 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0650A4 7F030574 44804000 */ mtc1 $zero, $f8 +/* 0650A8 7F030578 27A40030 */ addiu $a0, $sp, 0x30 +/* 0650AC 7F03057C E7B20010 */ swc1 $f18, 0x10($sp) +/* 0650B0 7F030580 AFA90014 */ sw $t1, 0x14($sp) +/* 0650B4 7F030584 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0650B8 7F030588 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0650BC 7F03058C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0650C0 7F030590 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0650C4 7F030594 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0650C8 7F030598 5040000A */ beql $v0, $zero, .L7F0305C4 +/* 0650CC 7F03059C 8FA40048 */ lw $a0, 0x48($sp) +/* 0650D0 7F0305A0 8FA2005C */ lw $v0, 0x5c($sp) +/* 0650D4 7F0305A4 8FAA0030 */ lw $t2, 0x30($sp) +/* 0650D8 7F0305A8 240B0001 */ li $t3, 1 +/* 0650DC 7F0305AC 50400004 */ beql $v0, $zero, .L7F0305C0 +/* 0650E0 7F0305B0 AFAB0040 */ sw $t3, 0x40($sp) +/* 0650E4 7F0305B4 55420003 */ bnel $t2, $v0, .L7F0305C4 +/* 0650E8 7F0305B8 8FA40048 */ lw $a0, 0x48($sp) +/* 0650EC 7F0305BC AFAB0040 */ sw $t3, 0x40($sp) +.L7F0305C0: +/* 0650F0 7F0305C0 8FA40048 */ lw $a0, 0x48($sp) +.L7F0305C4: +/* 0650F4 7F0305C4 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0650F8 7F0305C8 24050001 */ li $a1, 1 +/* 0650FC 7F0305CC 8FBF002C */ lw $ra, 0x2c($sp) +/* 065100 7F0305D0 8FA20040 */ lw $v0, 0x40($sp) +/* 065104 7F0305D4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 065108 7F0305D8 03E00008 */ jr $ra +/* 06510C 7F0305DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0305E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0305E0 +/* 065110 7F0305E0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 065114 7F0305E4 AFB10030 */ sw $s1, 0x30($sp) +/* 065118 7F0305E8 AFB0002C */ sw $s0, 0x2c($sp) +/* 06511C 7F0305EC 00E08025 */ move $s0, $a3 +/* 065120 7F0305F0 00808825 */ move $s1, $a0 +/* 065124 7F0305F4 AFBF0034 */ sw $ra, 0x34($sp) +/* 065128 7F0305F8 AFA50054 */ sw $a1, 0x54($sp) +/* 06512C 7F0305FC AFA60058 */ sw $a2, 0x58($sp) +/* 065130 7F030600 AFA6004C */ sw $a2, 0x4c($sp) +/* 065134 7F030604 AFA00048 */ sw $zero, 0x48($sp) +/* 065138 7F030608 8C840018 */ lw $a0, 0x18($a0) +/* 06513C 7F03060C 27A60044 */ addiu $a2, $sp, 0x44 +/* 065140 7F030610 27A5003C */ addiu $a1, $sp, 0x3c +/* 065144 7F030614 0FC08C58 */ jal sub_GAME_7F023160 +/* 065148 7F030618 27A70040 */ addiu $a3, $sp, 0x40 +/* 06514C 7F03061C 02202025 */ move $a0, $s1 +/* 065150 7F030620 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065154 7F030624 00002825 */ move $a1, $zero +/* 065158 7F030628 8FA20054 */ lw $v0, 0x54($sp) +/* 06515C 7F03062C C6040008 */ lwc1 $f4, 8($s0) +/* 065160 7F030630 8E070000 */ lw $a3, ($s0) +/* 065164 7F030634 8C450000 */ lw $a1, ($v0) +/* 065168 7F030638 8C460008 */ lw $a2, 8($v0) +/* 06516C 7F03063C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065170 7F030640 44818000 */ mtc1 $at, $f16 +/* 065174 7F030644 8FAF0068 */ lw $t7, 0x68($sp) +/* 065178 7F030648 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 06517C 7F03064C C7A80040 */ lwc1 $f8, 0x40($sp) +/* 065180 7F030650 44805000 */ mtc1 $zero, $f10 +/* 065184 7F030654 27A4004C */ addiu $a0, $sp, 0x4c +/* 065188 7F030658 E7A40010 */ swc1 $f4, 0x10($sp) +/* 06518C 7F03065C AFAF0014 */ sw $t7, 0x14($sp) +/* 065190 7F030660 E7B00024 */ swc1 $f16, 0x24($sp) +/* 065194 7F030664 E7A60018 */ swc1 $f6, 0x18($sp) +/* 065198 7F030668 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06519C 7F03066C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0651A0 7F030670 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0651A4 7F030674 1040002C */ beqz $v0, .L7F030728 +/* 0651A8 7F030678 8FB8004C */ lw $t8, 0x4c($sp) +/* 0651AC 7F03067C 8FA20060 */ lw $v0, 0x60($sp) +/* 0651B0 7F030680 AFB80038 */ sw $t8, 0x38($sp) +/* 0651B4 7F030684 8E060008 */ lw $a2, 8($s0) +/* 0651B8 7F030688 C4520008 */ lwc1 $f18, 8($v0) +/* 0651BC 7F03068C 8E050000 */ lw $a1, ($s0) +/* 0651C0 7F030690 8C470000 */ lw $a3, ($v0) +/* 0651C4 7F030694 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0651C8 7F030698 44815000 */ mtc1 $at, $f10 +/* 0651CC 7F03069C 8FB90068 */ lw $t9, 0x68($sp) +/* 0651D0 7F0306A0 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0651D4 7F0306A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0651D8 7F0306A8 44804000 */ mtc1 $zero, $f8 +/* 0651DC 7F0306AC 27A40038 */ addiu $a0, $sp, 0x38 +/* 0651E0 7F0306B0 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0651E4 7F0306B4 AFB90014 */ sw $t9, 0x14($sp) +/* 0651E8 7F0306B8 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0651EC 7F0306BC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0651F0 7F0306C0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0651F4 7F0306C4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0651F8 7F0306C8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0651FC 7F0306CC 10400016 */ beqz $v0, .L7F030728 +/* 065200 7F0306D0 02202025 */ move $a0, $s1 +/* 065204 7F0306D4 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 065208 7F0306D8 8FA80068 */ lw $t0, 0x68($sp) +/* 06520C 7F0306DC 8FA50054 */ lw $a1, 0x54($sp) +/* 065210 7F0306E0 8FA60058 */ lw $a2, 0x58($sp) +/* 065214 7F0306E4 02003825 */ move $a3, $s0 +/* 065218 7F0306E8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 06521C 7F0306EC 0FC0C07F */ jal sub_GAME_7F0301FC +/* 065220 7F0306F0 AFA80014 */ sw $t0, 0x14($sp) +/* 065224 7F0306F4 1040000C */ beqz $v0, .L7F030728 +/* 065228 7F0306F8 02202025 */ move $a0, $s1 +/* 06522C 7F0306FC C7B20064 */ lwc1 $f18, 0x64($sp) +/* 065230 7F030700 8FA90068 */ lw $t1, 0x68($sp) +/* 065234 7F030704 02002825 */ move $a1, $s0 +/* 065238 7F030708 8FA6004C */ lw $a2, 0x4c($sp) +/* 06523C 7F03070C 8FA70060 */ lw $a3, 0x60($sp) +/* 065240 7F030710 E7B20010 */ swc1 $f18, 0x10($sp) +/* 065244 7F030714 0FC0C07F */ jal sub_GAME_7F0301FC +/* 065248 7F030718 AFA90014 */ sw $t1, 0x14($sp) +/* 06524C 7F03071C 10400002 */ beqz $v0, .L7F030728 +/* 065250 7F030720 240A0001 */ li $t2, 1 +/* 065254 7F030724 AFAA0048 */ sw $t2, 0x48($sp) +.L7F030728: +/* 065258 7F030728 02202025 */ move $a0, $s1 +/* 06525C 7F03072C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065260 7F030730 24050001 */ li $a1, 1 +/* 065264 7F030734 8FBF0034 */ lw $ra, 0x34($sp) +/* 065268 7F030738 8FA20048 */ lw $v0, 0x48($sp) +/* 06526C 7F03073C 8FB0002C */ lw $s0, 0x2c($sp) +/* 065270 7F030740 8FB10030 */ lw $s1, 0x30($sp) +/* 065274 7F030744 03E00008 */ jr $ra +/* 065278 7F030748 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03074C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03074C +/* 06527C 7F03074C C4A40000 */ lwc1 $f4, ($a1) +/* 065280 7F030750 C4860000 */ lwc1 $f6, ($a0) +/* 065284 7F030754 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 065288 7F030758 44800000 */ mtc1 $zero, $f0 +/* 06528C 7F03075C 46062201 */ sub.s $f8, $f4, $f6 +/* 065290 7F030760 E7A8000C */ swc1 $f8, 0xc($sp) +/* 065294 7F030764 C4900004 */ lwc1 $f16, 4($a0) +/* 065298 7F030768 C4AA0004 */ lwc1 $f10, 4($a1) +/* 06529C 7F03076C 46105481 */ sub.s $f18, $f10, $f16 +/* 0652A0 7F030770 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0652A4 7F030774 C4860008 */ lwc1 $f6, 8($a0) +/* 0652A8 7F030778 C4A40008 */ lwc1 $f4, 8($a1) +/* 0652AC 7F03077C 46062201 */ sub.s $f8, $f4, $f6 +/* 0652B0 7F030780 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0652B4 7F030784 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0652B8 7F030788 E7A00004 */ swc1 $f0, 4($sp) +/* 0652BC 7F03078C C7A40014 */ lwc1 $f4, 0x14($sp) +/* 0652C0 7F030790 46005407 */ neg.s $f16, $f10 +/* 0652C4 7F030794 E7B00000 */ swc1 $f16, ($sp) +/* 0652C8 7F030798 C4D20000 */ lwc1 $f18, ($a2) +/* 0652CC 7F03079C C7AA0000 */ lwc1 $f10, ($sp) +/* 0652D0 7F0307A0 C7B0000C */ lwc1 $f16, 0xc($sp) +/* 0652D4 7F0307A4 E7B20008 */ swc1 $f18, 8($sp) +/* 0652D8 7F0307A8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0652DC 7F0307AC 46062202 */ mul.s $f8, $f4, $f6 +/* 0652E0 7F0307B0 00000000 */ nop +/* 0652E4 7F0307B4 46105482 */ mul.s $f18, $f10, $f16 +/* 0652E8 7F0307B8 46124100 */ add.s $f4, $f8, $f18 +/* 0652EC 7F0307BC 4604003C */ c.lt.s $f0, $f4 +/* 0652F0 7F0307C0 00000000 */ nop +/* 0652F4 7F0307C4 45010013 */ bc1t .L7F030814 +/* 0652F8 7F0307C8 00000000 */ nop +/* 0652FC 7F0307CC C4860000 */ lwc1 $f6, ($a0) +/* 065300 7F0307D0 E7A6000C */ swc1 $f6, 0xc($sp) +/* 065304 7F0307D4 C48A0004 */ lwc1 $f10, 4($a0) +/* 065308 7F0307D8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06530C 7F0307DC C4900008 */ lwc1 $f16, 8($a0) +/* 065310 7F0307E0 E7B00014 */ swc1 $f16, 0x14($sp) +/* 065314 7F0307E4 C4A80000 */ lwc1 $f8, ($a1) +/* 065318 7F0307E8 E4880000 */ swc1 $f8, ($a0) +/* 06531C 7F0307EC C4B20004 */ lwc1 $f18, 4($a1) +/* 065320 7F0307F0 E4920004 */ swc1 $f18, 4($a0) +/* 065324 7F0307F4 C4A40008 */ lwc1 $f4, 8($a1) +/* 065328 7F0307F8 E4840008 */ swc1 $f4, 8($a0) +/* 06532C 7F0307FC C7A6000C */ lwc1 $f6, 0xc($sp) +/* 065330 7F030800 E4A60000 */ swc1 $f6, ($a1) +/* 065334 7F030804 C7AA0010 */ lwc1 $f10, 0x10($sp) +/* 065338 7F030808 E4AA0004 */ swc1 $f10, 4($a1) +/* 06533C 7F03080C C7B00014 */ lwc1 $f16, 0x14($sp) +/* 065340 7F030810 E4B00008 */ swc1 $f16, 8($a1) +.L7F030814: +/* 065344 7F030814 03E00008 */ jr $ra +/* 065348 7F030818 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03081C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052014 +.word 0x3f733333 /*0.94999999*/ +glabel D_80052018 +.word 0x3f733333 /*0.94999999*/ +glabel D_8005201C +.word 0x3f99999a /*1.2*/ +glabel D_80052020 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F03081C +/* 06534C 7F03081C 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 065350 7F030820 AFB00030 */ sw $s0, 0x30($sp) +/* 065354 7F030824 00A08025 */ move $s0, $a1 +/* 065358 7F030828 AFBF0034 */ sw $ra, 0x34($sp) +/* 06535C 7F03082C AFA400B0 */ sw $a0, 0xb0($sp) +/* 065360 7F030830 AFA600B8 */ sw $a2, 0xb8($sp) +/* 065364 7F030834 AFA700BC */ sw $a3, 0xbc($sp) +/* 065368 7F030838 AFA00088 */ sw $zero, 0x88($sp) +/* 06536C 7F03083C AFA00084 */ sw $zero, 0x84($sp) +/* 065370 7F030840 AFA00050 */ sw $zero, 0x50($sp) +/* 065374 7F030844 8C840018 */ lw $a0, 0x18($a0) +/* 065378 7F030848 27A70048 */ addiu $a3, $sp, 0x48 +/* 06537C 7F03084C 27A6004C */ addiu $a2, $sp, 0x4c +/* 065380 7F030850 0FC08C58 */ jal sub_GAME_7F023160 +/* 065384 7F030854 27A50044 */ addiu $a1, $sp, 0x44 +/* 065388 7F030858 8FA200BC */ lw $v0, 0xbc($sp) +/* 06538C 7F03085C C6060000 */ lwc1 $f6, ($s0) +/* 065390 7F030860 44800000 */ mtc1 $zero, $f0 +/* 065394 7F030864 C4440000 */ lwc1 $f4, ($v0) +/* 065398 7F030868 E7A000A4 */ swc1 $f0, 0xa4($sp) +/* 06539C 7F03086C 46062201 */ sub.s $f8, $f4, $f6 +/* 0653A0 7F030870 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0653A4 7F030874 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0653A8 7F030878 C6040008 */ lwc1 $f4, 8($s0) +/* 0653AC 7F03087C C44A0008 */ lwc1 $f10, 8($v0) +/* 0653B0 7F030880 46080032 */ c.eq.s $f0, $f8 +/* 0653B4 7F030884 46045181 */ sub.s $f6, $f10, $f4 +/* 0653B8 7F030888 45000008 */ bc1f .L7F0308AC +/* 0653BC 7F03088C E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0653C0 7F030890 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0653C4 7F030894 46120032 */ c.eq.s $f0, $f18 +/* 0653C8 7F030898 00000000 */ nop +/* 0653CC 7F03089C 45020004 */ bc1fl .L7F0308B0 +/* 0653D0 7F0308A0 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0653D4 7F0308A4 1000012D */ b .L7F030D5C +/* 0653D8 7F0308A8 24020001 */ li $v0, 1 +.L7F0308AC: +/* 0653DC 7F0308AC C7B200A8 */ lwc1 $f18, 0xa8($sp) +.L7F0308B0: +/* 0653E0 7F0308B0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0653E4 7F0308B4 46129282 */ mul.s $f10, $f18, $f18 +/* 0653E8 7F0308B8 00000000 */ nop +/* 0653EC 7F0308BC 46108102 */ mul.s $f4, $f16, $f16 +/* 0653F0 7F0308C0 0C007DF8 */ jal sqrtf +/* 0653F4 7F0308C4 46045300 */ add.s $f12, $f10, $f4 +/* 0653F8 7F0308C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0653FC 7F0308CC 44813000 */ mtc1 $at, $f6 +/* 065400 7F0308D0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 065404 7F0308D4 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 065408 7F0308D8 46003083 */ div.s $f2, $f6, $f0 +/* 06540C 7F0308DC C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 065410 7F0308E0 3C018005 */ lui $at, %hi(D_80052014) +/* 065414 7F0308E4 C42A2014 */ lwc1 $f10, %lo(D_80052014)($at) +/* 065418 7F0308E8 3C018005 */ lui $at, %hi(D_80052018) +/* 06541C 7F0308EC C4262018 */ lwc1 $f6, %lo(D_80052018)($at) +/* 065420 7F0308F0 3C018005 */ lui $at, %hi(D_8005201C) +/* 065424 7F0308F4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 065428 7F0308F8 00002825 */ move $a1, $zero +/* 06542C 7F0308FC 46028402 */ mul.s $f16, $f16, $f2 +/* 065430 7F030900 00000000 */ nop +/* 065434 7F030904 46029482 */ mul.s $f18, $f18, $f2 +/* 065438 7F030908 00000000 */ nop +/* 06543C 7F03090C 46088302 */ mul.s $f12, $f16, $f8 +/* 065440 7F030910 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 065444 7F030914 E7B200A8 */ swc1 $f18, 0xa8($sp) +/* 065448 7F030918 460A6102 */ mul.s $f4, $f12, $f10 +/* 06544C 7F03091C 00000000 */ nop +/* 065450 7F030920 46089382 */ mul.s $f14, $f18, $f8 +/* 065454 7F030924 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 065458 7F030928 C424201C */ lwc1 $f4, %lo(D_8005201C)($at) +/* 06545C 7F03092C 3C018005 */ lui $at, %hi(D_80052020) +/* 065460 7F030930 46067282 */ mul.s $f10, $f14, $f6 +/* 065464 7F030934 C4262020 */ lwc1 $f6, %lo(D_80052020)($at) +/* 065468 7F030938 46046202 */ mul.s $f8, $f12, $f4 +/* 06546C 7F03093C E7AA0098 */ swc1 $f10, 0x98($sp) +/* 065470 7F030940 46067282 */ mul.s $f10, $f14, $f6 +/* 065474 7F030944 E7A80094 */ swc1 $f8, 0x94($sp) +/* 065478 7F030948 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 06547C 7F03094C E7AA0090 */ swc1 $f10, 0x90($sp) +/* 065480 7F030950 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 065484 7F030954 00000000 */ nop +/* 065488 7F030958 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 06548C 7F03095C C7A40098 */ lwc1 $f4, 0x98($sp) +/* 065490 7F030960 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 065494 7F030964 AFAF00AC */ sw $t7, 0xac($sp) +/* 065498 7F030968 C6020008 */ lwc1 $f2, 8($s0) +/* 06549C 7F03096C C6000000 */ lwc1 $f0, ($s0) +/* 0654A0 7F030970 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0654A4 7F030974 46061281 */ sub.s $f10, $f2, $f6 +/* 0654A8 7F030978 44803000 */ mtc1 $zero, $f6 +/* 0654AC 7F03097C 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0654B0 7F030980 46040200 */ add.s $f8, $f0, $f4 +/* 0654B4 7F030984 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0654B8 7F030988 44815000 */ mtc1 $at, $f10 +/* 0654BC 7F03098C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0654C0 7F030990 44074000 */ mfc1 $a3, $f8 +/* 0654C4 7F030994 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0654C8 7F030998 44061000 */ mfc1 $a2, $f2 +/* 0654CC 7F03099C 44050000 */ mfc1 $a1, $f0 +/* 0654D0 7F0309A0 27A400AC */ addiu $a0, $sp, 0xac +/* 0654D4 7F0309A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0654D8 7F0309A8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0654DC 7F0309AC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0654E0 7F0309B0 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0654E4 7F0309B4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0654E8 7F0309B8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0654EC 7F0309BC 10400026 */ beqz $v0, .L7F030A58 +/* 0654F0 7F0309C0 27A400AC */ addiu $a0, $sp, 0xac +/* 0654F4 7F0309C4 8FA200BC */ lw $v0, 0xbc($sp) +/* 0654F8 7F0309C8 C7B200C8 */ lwc1 $f18, 0xc8($sp) +/* 0654FC 7F0309CC C6100000 */ lwc1 $f16, ($s0) +/* 065500 7F0309D0 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 065504 7F0309D4 C60C0008 */ lwc1 $f12, 8($s0) +/* 065508 7F0309D8 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 06550C 7F0309DC 460E8380 */ add.s $f14, $f16, $f14 +/* 065510 7F0309E0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 065514 7F0309E4 C4480000 */ lwc1 $f8, ($v0) +/* 065518 7F0309E8 460A6281 */ sub.s $f10, $f12, $f10 +/* 06551C 7F0309EC 46128402 */ mul.s $f16, $f16, $f18 +/* 065520 7F0309F0 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 065524 7F0309F4 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 065528 7F0309F8 C4440008 */ lwc1 $f4, 8($v0) +/* 06552C 7F0309FC C7A20094 */ lwc1 $f2, 0x94($sp) +/* 065530 7F030A00 46123482 */ mul.s $f18, $f6, $f18 +/* 065534 7F030A04 460C4300 */ add.s $f12, $f8, $f12 +/* 065538 7F030A08 44057000 */ mfc1 $a1, $f14 +/* 06553C 7F030A0C 44065000 */ mfc1 $a2, $f10 +/* 065540 7F030A10 8FB900D0 */ lw $t9, 0xd0($sp) +/* 065544 7F030A14 46022081 */ sub.s $f2, $f4, $f2 +/* 065548 7F030A18 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 06554C 7F030A1C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065550 7F030A20 460C8300 */ add.s $f12, $f16, $f12 +/* 065554 7F030A24 44808000 */ mtc1 $zero, $f16 +/* 065558 7F030A28 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06555C 7F030A2C 46029080 */ add.s $f2, $f18, $f2 +/* 065560 7F030A30 44076000 */ mfc1 $a3, $f12 +/* 065564 7F030A34 44816000 */ mtc1 $at, $f12 +/* 065568 7F030A38 E7A40018 */ swc1 $f4, 0x18($sp) +/* 06556C 7F030A3C E7A20010 */ swc1 $f2, 0x10($sp) +/* 065570 7F030A40 AFB90014 */ sw $t9, 0x14($sp) +/* 065574 7F030A44 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065578 7F030A48 E7B00020 */ swc1 $f16, 0x20($sp) +/* 06557C 7F030A4C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065580 7F030A50 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065584 7F030A54 14400009 */ bnez $v0, .L7F030A7C +.L7F030A58: +/* 065588 7F030A58 24080001 */ li $t0, 1 +/* 06558C 7F030A5C AFA80088 */ sw $t0, 0x88($sp) +/* 065590 7F030A60 27A40078 */ addiu $a0, $sp, 0x78 +/* 065594 7F030A64 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065598 7F030A68 27A5006C */ addiu $a1, $sp, 0x6c +/* 06559C 7F030A6C 27A40078 */ addiu $a0, $sp, 0x78 +/* 0655A0 7F030A70 27A5006C */ addiu $a1, $sp, 0x6c +/* 0655A4 7F030A74 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0655A8 7F030A78 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030A7C: +/* 0655AC 7F030A7C 8FA900B8 */ lw $t1, 0xb8($sp) +/* 0655B0 7F030A80 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0655B4 7F030A84 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0655B8 7F030A88 AFA900AC */ sw $t1, 0xac($sp) +/* 0655BC 7F030A8C C6020008 */ lwc1 $f2, 8($s0) +/* 0655C0 7F030A90 C6000000 */ lwc1 $f0, ($s0) +/* 0655C4 7F030A94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0655C8 7F030A98 46041180 */ add.s $f6, $f2, $f4 +/* 0655CC 7F030A9C 44802000 */ mtc1 $zero, $f4 +/* 0655D0 7F030AA0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0655D4 7F030AA4 460A0201 */ sub.s $f8, $f0, $f10 +/* 0655D8 7F030AA8 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0655DC 7F030AAC 44813000 */ mtc1 $at, $f6 +/* 0655E0 7F030AB0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0655E4 7F030AB4 44074000 */ mfc1 $a3, $f8 +/* 0655E8 7F030AB8 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0655EC 7F030ABC 44061000 */ mfc1 $a2, $f2 +/* 0655F0 7F030AC0 44050000 */ mfc1 $a1, $f0 +/* 0655F4 7F030AC4 27A400AC */ addiu $a0, $sp, 0xac +/* 0655F8 7F030AC8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0655FC 7F030ACC E7A40020 */ swc1 $f4, 0x20($sp) +/* 065600 7F030AD0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 065604 7F030AD4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 065608 7F030AD8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 06560C 7F030ADC E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065610 7F030AE0 10400026 */ beqz $v0, .L7F030B7C +/* 065614 7F030AE4 27A400AC */ addiu $a0, $sp, 0xac +/* 065618 7F030AE8 8FA200BC */ lw $v0, 0xbc($sp) +/* 06561C 7F030AEC C6120008 */ lwc1 $f18, 8($s0) +/* 065620 7F030AF0 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 065624 7F030AF4 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 065628 7F030AF8 C7AC00C8 */ lwc1 $f12, 0xc8($sp) +/* 06562C 7F030AFC 46109400 */ add.s $f16, $f18, $f16 +/* 065630 7F030B00 C4520000 */ lwc1 $f18, ($v0) +/* 065634 7F030B04 460C7382 */ mul.s $f14, $f14, $f12 +/* 065638 7F030B08 C60A0000 */ lwc1 $f10, ($s0) +/* 06563C 7F030B0C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 065640 7F030B10 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 065644 7F030B14 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 065648 7F030B18 46085201 */ sub.s $f8, $f10, $f8 +/* 06564C 7F030B1C C44A0008 */ lwc1 $f10, 8($v0) +/* 065650 7F030B20 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 065654 7F030B24 46069181 */ sub.s $f6, $f18, $f6 +/* 065658 7F030B28 460C2302 */ mul.s $f12, $f4, $f12 +/* 06565C 7F030B2C 44054000 */ mfc1 $a1, $f8 +/* 065660 7F030B30 46025080 */ add.s $f2, $f10, $f2 +/* 065664 7F030B34 44068000 */ mfc1 $a2, $f16 +/* 065668 7F030B38 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 06566C 7F030B3C 46067180 */ add.s $f6, $f14, $f6 +/* 065670 7F030B40 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 065674 7F030B44 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 065678 7F030B48 46026080 */ add.s $f2, $f12, $f2 +/* 06567C 7F030B4C 44073000 */ mfc1 $a3, $f6 +/* 065680 7F030B50 44803000 */ mtc1 $zero, $f6 +/* 065684 7F030B54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065688 7F030B58 44816000 */ mtc1 $at, $f12 +/* 06568C 7F030B5C E7A20010 */ swc1 $f2, 0x10($sp) +/* 065690 7F030B60 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 065694 7F030B64 AFAB0014 */ sw $t3, 0x14($sp) +/* 065698 7F030B68 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 06569C 7F030B6C E7A60020 */ swc1 $f6, 0x20($sp) +/* 0656A0 7F030B70 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0656A4 7F030B74 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0656A8 7F030B78 14400009 */ bnez $v0, .L7F030BA0 +.L7F030B7C: +/* 0656AC 7F030B7C 240C0001 */ li $t4, 1 +/* 0656B0 7F030B80 AFAC0084 */ sw $t4, 0x84($sp) +/* 0656B4 7F030B84 27A40060 */ addiu $a0, $sp, 0x60 +/* 0656B8 7F030B88 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0656BC 7F030B8C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0656C0 7F030B90 27A40060 */ addiu $a0, $sp, 0x60 +/* 0656C4 7F030B94 27A50054 */ addiu $a1, $sp, 0x54 +/* 0656C8 7F030B98 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0656CC 7F030B9C 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030BA0: +/* 0656D0 7F030BA0 8FAD0088 */ lw $t5, 0x88($sp) +/* 0656D4 7F030BA4 8FAE0084 */ lw $t6, 0x84($sp) +/* 0656D8 7F030BA8 8FAF0088 */ lw $t7, 0x88($sp) +/* 0656DC 7F030BAC 11A00019 */ beqz $t5, .L7F030C14 +/* 0656E0 7F030BB0 00000000 */ nop +/* 0656E4 7F030BB4 11C00017 */ beqz $t6, .L7F030C14 +/* 0656E8 7F030BB8 27A40078 */ addiu $a0, $sp, 0x78 +/* 0656EC 7F030BBC 27A50060 */ addiu $a1, $sp, 0x60 +/* 0656F0 7F030BC0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0656F4 7F030BC4 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0656F8 7F030BC8 27A4006C */ addiu $a0, $sp, 0x6c +/* 0656FC 7F030BCC 27A50054 */ addiu $a1, $sp, 0x54 +/* 065700 7F030BD0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065704 7F030BD4 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 065708 7F030BD8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 06570C 7F030BDC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 065710 7F030BE0 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065714 7F030BE4 E48A0000 */ swc1 $f10, ($a0) +/* 065718 7F030BE8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 06571C 7F030BEC E4880004 */ swc1 $f8, 4($a0) +/* 065720 7F030BF0 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065724 7F030BF4 E4860008 */ swc1 $f6, 8($a0) +/* 065728 7F030BF8 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06572C 7F030BFC E4A40000 */ swc1 $f4, ($a1) +/* 065730 7F030C00 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 065734 7F030C04 E4AA0004 */ swc1 $f10, 4($a1) +/* 065738 7F030C08 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 06573C 7F030C0C 1000004F */ b .L7F030D4C +/* 065740 7F030C10 E4A80008 */ swc1 $f8, 8($a1) +.L7F030C14: +/* 065744 7F030C14 11E00010 */ beqz $t7, .L7F030C58 +/* 065748 7F030C18 8FB80084 */ lw $t8, 0x84($sp) +/* 06574C 7F030C1C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065750 7F030C20 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065754 7F030C24 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065758 7F030C28 E4860000 */ swc1 $f6, ($a0) +/* 06575C 7F030C2C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 065760 7F030C30 E4840004 */ swc1 $f4, 4($a0) +/* 065764 7F030C34 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 065768 7F030C38 E48A0008 */ swc1 $f10, 8($a0) +/* 06576C 7F030C3C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 065770 7F030C40 E4A80000 */ swc1 $f8, ($a1) +/* 065774 7F030C44 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065778 7F030C48 E4A60004 */ swc1 $f6, 4($a1) +/* 06577C 7F030C4C C7A40074 */ lwc1 $f4, 0x74($sp) +/* 065780 7F030C50 1000003E */ b .L7F030D4C +/* 065784 7F030C54 E4A40008 */ swc1 $f4, 8($a1) +.L7F030C58: +/* 065788 7F030C58 13000010 */ beqz $t8, .L7F030C9C +/* 06578C 7F030C5C 8FA200BC */ lw $v0, 0xbc($sp) +/* 065790 7F030C60 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065794 7F030C64 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 065798 7F030C68 8FA500C4 */ lw $a1, 0xc4($sp) +/* 06579C 7F030C6C E48A0000 */ swc1 $f10, ($a0) +/* 0657A0 7F030C70 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0657A4 7F030C74 E4880004 */ swc1 $f8, 4($a0) +/* 0657A8 7F030C78 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0657AC 7F030C7C E4860008 */ swc1 $f6, 8($a0) +/* 0657B0 7F030C80 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0657B4 7F030C84 E4A40000 */ swc1 $f4, ($a1) +/* 0657B8 7F030C88 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0657BC 7F030C8C E4AA0004 */ swc1 $f10, 4($a1) +/* 0657C0 7F030C90 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0657C4 7F030C94 1000002D */ b .L7F030D4C +/* 0657C8 7F030C98 E4A80008 */ swc1 $f8, 8($a1) +.L7F030C9C: +/* 0657CC 7F030C9C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0657D0 7F030CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0657D4 7F030CA4 8FA800D0 */ lw $t0, 0xd0($sp) +/* 0657D8 7F030CA8 AFB900AC */ sw $t9, 0xac($sp) +/* 0657DC 7F030CAC C4460008 */ lwc1 $f6, 8($v0) +/* 0657E0 7F030CB0 8C470000 */ lw $a3, ($v0) +/* 0657E4 7F030CB4 8E060008 */ lw $a2, 8($s0) +/* 0657E8 7F030CB8 8E050000 */ lw $a1, ($s0) +/* 0657EC 7F030CBC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0657F0 7F030CC0 44813000 */ mtc1 $at, $f6 +/* 0657F4 7F030CC4 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0657F8 7F030CC8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0657FC 7F030CCC 44804000 */ mtc1 $zero, $f8 +/* 065800 7F030CD0 27A400AC */ addiu $a0, $sp, 0xac +/* 065804 7F030CD4 AFA80014 */ sw $t0, 0x14($sp) +/* 065808 7F030CD8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 06580C 7F030CDC E7A60024 */ swc1 $f6, 0x24($sp) +/* 065810 7F030CE0 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065814 7F030CE4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065818 7F030CE8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 06581C 7F030CEC 10400010 */ beqz $v0, .L7F030D30 +/* 065820 7F030CF0 27A400AC */ addiu $a0, $sp, 0xac +/* 065824 7F030CF4 8FA900BC */ lw $t1, 0xbc($sp) +/* 065828 7F030CF8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 06582C 7F030CFC C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065830 7F030D00 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065834 7F030D04 8D250000 */ lw $a1, ($t1) +/* 065838 7F030D08 8D260008 */ lw $a2, 8($t1) +/* 06583C 7F030D0C 8FA700CC */ lw $a3, 0xcc($sp) +/* 065840 7F030D10 AFAA0010 */ sw $t2, 0x10($sp) +/* 065844 7F030D14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 065848 7F030D18 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 06584C 7F030D1C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 065850 7F030D20 04410003 */ bgez $v0, .L7F030D30 +/* 065854 7F030D24 240B0001 */ li $t3, 1 +/* 065858 7F030D28 10000008 */ b .L7F030D4C +/* 06585C 7F030D2C AFAB0050 */ sw $t3, 0x50($sp) +.L7F030D30: +/* 065860 7F030D30 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065864 7F030D34 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065868 7F030D38 8FA500C4 */ lw $a1, 0xc4($sp) +/* 06586C 7F030D3C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065870 7F030D40 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065874 7F030D44 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065878 7F030D48 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030D4C: +/* 06587C 7F030D4C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 065880 7F030D50 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065884 7F030D54 24050001 */ li $a1, 1 +/* 065888 7F030D58 8FA20050 */ lw $v0, 0x50($sp) +.L7F030D5C: +/* 06588C 7F030D5C 8FBF0034 */ lw $ra, 0x34($sp) +/* 065890 7F030D60 8FB00030 */ lw $s0, 0x30($sp) +/* 065894 7F030D64 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 065898 7F030D68 03E00008 */ jr $ra +/* 06589C 7F030D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F030D70(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052024 +.word 0x3f733333 /*0.94999999*/ +glabel D_80052028 +.word 0x3f733333 /*0.94999999*/ +glabel D_8005202C +.word 0x3f99999a /*1.2*/ +glabel D_80052030 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F030D70 +/* 0658A0 7F030D70 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0658A4 7F030D74 AFB00030 */ sw $s0, 0x30($sp) +/* 0658A8 7F030D78 00A08025 */ move $s0, $a1 +/* 0658AC 7F030D7C AFBF0034 */ sw $ra, 0x34($sp) +/* 0658B0 7F030D80 AFA400B8 */ sw $a0, 0xb8($sp) +/* 0658B4 7F030D84 AFA600C0 */ sw $a2, 0xc0($sp) +/* 0658B8 7F030D88 AFA700C4 */ sw $a3, 0xc4($sp) +/* 0658BC 7F030D8C AFA00090 */ sw $zero, 0x90($sp) +/* 0658C0 7F030D90 AFA0008C */ sw $zero, 0x8c($sp) +/* 0658C4 7F030D94 AFA00058 */ sw $zero, 0x58($sp) +/* 0658C8 7F030D98 8C840018 */ lw $a0, 0x18($a0) +/* 0658CC 7F030D9C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0658D0 7F030DA0 27A6004C */ addiu $a2, $sp, 0x4c +/* 0658D4 7F030DA4 0FC08C58 */ jal sub_GAME_7F023160 +/* 0658D8 7F030DA8 27A50044 */ addiu $a1, $sp, 0x44 +/* 0658DC 7F030DAC 8FA200C4 */ lw $v0, 0xc4($sp) +/* 0658E0 7F030DB0 C6060000 */ lwc1 $f6, ($s0) +/* 0658E4 7F030DB4 44800000 */ mtc1 $zero, $f0 +/* 0658E8 7F030DB8 C4440000 */ lwc1 $f4, ($v0) +/* 0658EC 7F030DBC E7A000AC */ swc1 $f0, 0xac($sp) +/* 0658F0 7F030DC0 46062201 */ sub.s $f8, $f4, $f6 +/* 0658F4 7F030DC4 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0658F8 7F030DC8 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0658FC 7F030DCC C6040008 */ lwc1 $f4, 8($s0) +/* 065900 7F030DD0 C44A0008 */ lwc1 $f10, 8($v0) +/* 065904 7F030DD4 46080032 */ c.eq.s $f0, $f8 +/* 065908 7F030DD8 46045181 */ sub.s $f6, $f10, $f4 +/* 06590C 7F030DDC 45000008 */ bc1f .L7F030E00 +/* 065910 7F030DE0 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 065914 7F030DE4 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 065918 7F030DE8 46120032 */ c.eq.s $f0, $f18 +/* 06591C 7F030DEC 00000000 */ nop +/* 065920 7F030DF0 45020004 */ bc1fl .L7F030E04 +/* 065924 7F030DF4 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 065928 7F030DF8 1000013F */ b .L7F0312F8 +/* 06592C 7F030DFC 24020001 */ li $v0, 1 +.L7F030E00: +/* 065930 7F030E00 C7B200B0 */ lwc1 $f18, 0xb0($sp) +.L7F030E04: +/* 065934 7F030E04 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065938 7F030E08 46129282 */ mul.s $f10, $f18, $f18 +/* 06593C 7F030E0C 00000000 */ nop +/* 065940 7F030E10 46108102 */ mul.s $f4, $f16, $f16 +/* 065944 7F030E14 0C007DF8 */ jal sqrtf +/* 065948 7F030E18 46045300 */ add.s $f12, $f10, $f4 +/* 06594C 7F030E1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065950 7F030E20 44813000 */ mtc1 $at, $f6 +/* 065954 7F030E24 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065958 7F030E28 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 06595C 7F030E2C 46003083 */ div.s $f2, $f6, $f0 +/* 065960 7F030E30 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 065964 7F030E34 3C018005 */ lui $at, %hi(D_80052024) +/* 065968 7F030E38 C42A2024 */ lwc1 $f10, %lo(D_80052024)($at) +/* 06596C 7F030E3C 3C018005 */ lui $at, %hi(D_80052028) +/* 065970 7F030E40 C4262028 */ lwc1 $f6, %lo(D_80052028)($at) +/* 065974 7F030E44 3C018005 */ lui $at, %hi(D_8005202C) +/* 065978 7F030E48 8FA400B8 */ lw $a0, 0xb8($sp) +/* 06597C 7F030E4C 00002825 */ move $a1, $zero +/* 065980 7F030E50 46028402 */ mul.s $f16, $f16, $f2 +/* 065984 7F030E54 00000000 */ nop +/* 065988 7F030E58 46029482 */ mul.s $f18, $f18, $f2 +/* 06598C 7F030E5C 00000000 */ nop +/* 065990 7F030E60 46088302 */ mul.s $f12, $f16, $f8 +/* 065994 7F030E64 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 065998 7F030E68 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 06599C 7F030E6C 460A6102 */ mul.s $f4, $f12, $f10 +/* 0659A0 7F030E70 00000000 */ nop +/* 0659A4 7F030E74 46089382 */ mul.s $f14, $f18, $f8 +/* 0659A8 7F030E78 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 0659AC 7F030E7C C424202C */ lwc1 $f4, %lo(D_8005202C)($at) +/* 0659B0 7F030E80 3C018005 */ lui $at, %hi(D_80052030) +/* 0659B4 7F030E84 46067282 */ mul.s $f10, $f14, $f6 +/* 0659B8 7F030E88 C4262030 */ lwc1 $f6, %lo(D_80052030)($at) +/* 0659BC 7F030E8C 46046202 */ mul.s $f8, $f12, $f4 +/* 0659C0 7F030E90 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0659C4 7F030E94 46067282 */ mul.s $f10, $f14, $f6 +/* 0659C8 7F030E98 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0659CC 7F030E9C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0659D0 7F030EA0 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0659D4 7F030EA4 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0659D8 7F030EA8 00000000 */ nop +/* 0659DC 7F030EAC 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0659E0 7F030EB0 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0659E4 7F030EB4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0659E8 7F030EB8 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 0659EC 7F030EBC C6020008 */ lwc1 $f2, 8($s0) +/* 0659F0 7F030EC0 C6000000 */ lwc1 $f0, ($s0) +/* 0659F4 7F030EC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0659F8 7F030EC8 46061281 */ sub.s $f10, $f2, $f6 +/* 0659FC 7F030ECC 44803000 */ mtc1 $zero, $f6 +/* 065A00 7F030ED0 8FB800D8 */ lw $t8, 0xd8($sp) +/* 065A04 7F030ED4 46040200 */ add.s $f8, $f0, $f4 +/* 065A08 7F030ED8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 065A0C 7F030EDC 44815000 */ mtc1 $at, $f10 +/* 065A10 7F030EE0 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065A14 7F030EE4 44074000 */ mfc1 $a3, $f8 +/* 065A18 7F030EE8 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 065A1C 7F030EEC 44061000 */ mfc1 $a2, $f2 +/* 065A20 7F030EF0 44050000 */ mfc1 $a1, $f0 +/* 065A24 7F030EF4 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065A28 7F030EF8 AFB80014 */ sw $t8, 0x14($sp) +/* 065A2C 7F030EFC E7A60020 */ swc1 $f6, 0x20($sp) +/* 065A30 7F030F00 E7A40018 */ swc1 $f4, 0x18($sp) +/* 065A34 7F030F04 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 065A38 7F030F08 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065A3C 7F030F0C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065A40 7F030F10 10400026 */ beqz $v0, .L7F030FAC +/* 065A44 7F030F14 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065A48 7F030F18 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065A4C 7F030F1C C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 065A50 7F030F20 C6100000 */ lwc1 $f16, ($s0) +/* 065A54 7F030F24 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 065A58 7F030F28 C60C0008 */ lwc1 $f12, 8($s0) +/* 065A5C 7F030F2C C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 065A60 7F030F30 460E8380 */ add.s $f14, $f16, $f14 +/* 065A64 7F030F34 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065A68 7F030F38 C4480000 */ lwc1 $f8, ($v0) +/* 065A6C 7F030F3C 460A6281 */ sub.s $f10, $f12, $f10 +/* 065A70 7F030F40 46128402 */ mul.s $f16, $f16, $f18 +/* 065A74 7F030F44 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 065A78 7F030F48 C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 065A7C 7F030F4C C4440008 */ lwc1 $f4, 8($v0) +/* 065A80 7F030F50 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 065A84 7F030F54 46123482 */ mul.s $f18, $f6, $f18 +/* 065A88 7F030F58 460C4300 */ add.s $f12, $f8, $f12 +/* 065A8C 7F030F5C 44057000 */ mfc1 $a1, $f14 +/* 065A90 7F030F60 44065000 */ mfc1 $a2, $f10 +/* 065A94 7F030F64 8FB900D8 */ lw $t9, 0xd8($sp) +/* 065A98 7F030F68 46022081 */ sub.s $f2, $f4, $f2 +/* 065A9C 7F030F6C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065AA0 7F030F70 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065AA4 7F030F74 460C8300 */ add.s $f12, $f16, $f12 +/* 065AA8 7F030F78 44808000 */ mtc1 $zero, $f16 +/* 065AAC 7F030F7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065AB0 7F030F80 46029080 */ add.s $f2, $f18, $f2 +/* 065AB4 7F030F84 44076000 */ mfc1 $a3, $f12 +/* 065AB8 7F030F88 44816000 */ mtc1 $at, $f12 +/* 065ABC 7F030F8C E7A40018 */ swc1 $f4, 0x18($sp) +/* 065AC0 7F030F90 E7A20010 */ swc1 $f2, 0x10($sp) +/* 065AC4 7F030F94 AFB90014 */ sw $t9, 0x14($sp) +/* 065AC8 7F030F98 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065ACC 7F030F9C E7B00020 */ swc1 $f16, 0x20($sp) +/* 065AD0 7F030FA0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065AD4 7F030FA4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065AD8 7F030FA8 1440000C */ bnez $v0, .L7F030FDC +.L7F030FAC: +/* 065ADC 7F030FAC 24080001 */ li $t0, 1 +/* 065AE0 7F030FB0 AFA80090 */ sw $t0, 0x90($sp) +/* 065AE4 7F030FB4 27A40080 */ addiu $a0, $sp, 0x80 +/* 065AE8 7F030FB8 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065AEC 7F030FBC 27A50074 */ addiu $a1, $sp, 0x74 +/* 065AF0 7F030FC0 27A40080 */ addiu $a0, $sp, 0x80 +/* 065AF4 7F030FC4 27A50074 */ addiu $a1, $sp, 0x74 +/* 065AF8 7F030FC8 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065AFC 7F030FCC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 065B00 7F030FD0 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 065B04 7F030FD4 C42ABA00 */ lwc1 $f10, %lo(flt_CODE_bss_8007BA00)($at) +/* 065B08 7F030FD8 E7AA0054 */ swc1 $f10, 0x54($sp) +.L7F030FDC: +/* 065B0C 7F030FDC 8FA900C0 */ lw $t1, 0xc0($sp) +/* 065B10 7F030FE0 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065B14 7F030FE4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 065B18 7F030FE8 AFA900B4 */ sw $t1, 0xb4($sp) +/* 065B1C 7F030FEC C6020008 */ lwc1 $f2, 8($s0) +/* 065B20 7F030FF0 C6000000 */ lwc1 $f0, ($s0) +/* 065B24 7F030FF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065B28 7F030FF8 46061280 */ add.s $f10, $f2, $f6 +/* 065B2C 7F030FFC 44803000 */ mtc1 $zero, $f6 +/* 065B30 7F031000 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 065B34 7F031004 46080101 */ sub.s $f4, $f0, $f8 +/* 065B38 7F031008 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 065B3C 7F03100C 44815000 */ mtc1 $at, $f10 +/* 065B40 7F031010 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065B44 7F031014 44072000 */ mfc1 $a3, $f4 +/* 065B48 7F031018 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065B4C 7F03101C 44061000 */ mfc1 $a2, $f2 +/* 065B50 7F031020 44050000 */ mfc1 $a1, $f0 +/* 065B54 7F031024 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065B58 7F031028 AFAA0014 */ sw $t2, 0x14($sp) +/* 065B5C 7F03102C E7A60020 */ swc1 $f6, 0x20($sp) +/* 065B60 7F031030 E7A80018 */ swc1 $f8, 0x18($sp) +/* 065B64 7F031034 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 065B68 7F031038 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065B6C 7F03103C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 065B70 7F031040 10400026 */ beqz $v0, .L7F0310DC +/* 065B74 7F031044 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065B78 7F031048 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065B7C 7F03104C C6120008 */ lwc1 $f18, 8($s0) +/* 065B80 7F031050 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 065B84 7F031054 C7AE00A8 */ lwc1 $f14, 0xa8($sp) +/* 065B88 7F031058 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 065B8C 7F03105C 46109400 */ add.s $f16, $f18, $f16 +/* 065B90 7F031060 C4520000 */ lwc1 $f18, ($v0) +/* 065B94 7F031064 460C7382 */ mul.s $f14, $f14, $f12 +/* 065B98 7F031068 C60A0000 */ lwc1 $f10, ($s0) +/* 065B9C 7F03106C C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065BA0 7F031070 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 065BA4 7F031074 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 065BA8 7F031078 46085201 */ sub.s $f8, $f10, $f8 +/* 065BAC 7F03107C C44A0008 */ lwc1 $f10, 8($v0) +/* 065BB0 7F031080 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 065BB4 7F031084 46069181 */ sub.s $f6, $f18, $f6 +/* 065BB8 7F031088 460C2302 */ mul.s $f12, $f4, $f12 +/* 065BBC 7F03108C 44054000 */ mfc1 $a1, $f8 +/* 065BC0 7F031090 46025080 */ add.s $f2, $f10, $f2 +/* 065BC4 7F031094 44068000 */ mfc1 $a2, $f16 +/* 065BC8 7F031098 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 065BCC 7F03109C 46067180 */ add.s $f6, $f14, $f6 +/* 065BD0 7F0310A0 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 065BD4 7F0310A4 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 065BD8 7F0310A8 46026080 */ add.s $f2, $f12, $f2 +/* 065BDC 7F0310AC 44073000 */ mfc1 $a3, $f6 +/* 065BE0 7F0310B0 44803000 */ mtc1 $zero, $f6 +/* 065BE4 7F0310B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065BE8 7F0310B8 44816000 */ mtc1 $at, $f12 +/* 065BEC 7F0310BC E7A20010 */ swc1 $f2, 0x10($sp) +/* 065BF0 7F0310C0 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 065BF4 7F0310C4 AFAB0014 */ sw $t3, 0x14($sp) +/* 065BF8 7F0310C8 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 065BFC 7F0310CC E7A60020 */ swc1 $f6, 0x20($sp) +/* 065C00 7F0310D0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065C04 7F0310D4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065C08 7F0310D8 1440000C */ bnez $v0, .L7F03110C +.L7F0310DC: +/* 065C0C 7F0310DC 240C0001 */ li $t4, 1 +/* 065C10 7F0310E0 AFAC008C */ sw $t4, 0x8c($sp) +/* 065C14 7F0310E4 27A40068 */ addiu $a0, $sp, 0x68 +/* 065C18 7F0310E8 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065C1C 7F0310EC 27A5005C */ addiu $a1, $sp, 0x5c +/* 065C20 7F0310F0 27A40068 */ addiu $a0, $sp, 0x68 +/* 065C24 7F0310F4 27A5005C */ addiu $a1, $sp, 0x5c +/* 065C28 7F0310F8 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065C2C 7F0310FC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 065C30 7F031100 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 065C34 7F031104 C428BA00 */ lwc1 $f8, %lo(flt_CODE_bss_8007BA00)($at) +/* 065C38 7F031108 E7A80050 */ swc1 $f8, 0x50($sp) +.L7F03110C: +/* 065C3C 7F03110C 8FAD0090 */ lw $t5, 0x90($sp) +/* 065C40 7F031110 8FAE008C */ lw $t6, 0x8c($sp) +/* 065C44 7F031114 8FAF0090 */ lw $t7, 0x90($sp) +/* 065C48 7F031118 11A00025 */ beqz $t5, .L7F0311B0 +/* 065C4C 7F03111C 00000000 */ nop +/* 065C50 7F031120 11C00023 */ beqz $t6, .L7F0311B0 +/* 065C54 7F031124 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 065C58 7F031128 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 065C5C 7F03112C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065C60 7F031130 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065C64 7F031134 460A203C */ c.lt.s $f4, $f10 +/* 065C68 7F031138 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 065C6C 7F03113C 45020010 */ bc1fl .L7F031180 +/* 065C70 7F031140 8FA500CC */ lw $a1, 0xcc($sp) +/* 065C74 7F031144 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065C78 7F031148 8FA500CC */ lw $a1, 0xcc($sp) +/* 065C7C 7F03114C E4860000 */ swc1 $f6, ($a0) +/* 065C80 7F031150 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 065C84 7F031154 E4880004 */ swc1 $f8, 4($a0) +/* 065C88 7F031158 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 065C8C 7F03115C E4840008 */ swc1 $f4, 8($a0) +/* 065C90 7F031160 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 065C94 7F031164 E4AA0000 */ swc1 $f10, ($a1) +/* 065C98 7F031168 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065C9C 7F03116C E4A60004 */ swc1 $f6, 4($a1) +/* 065CA0 7F031170 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 065CA4 7F031174 1000005C */ b .L7F0312E8 +/* 065CA8 7F031178 E4A80008 */ swc1 $f8, 8($a1) +/* 065CAC 7F03117C 8FA500CC */ lw $a1, 0xcc($sp) +.L7F031180: +/* 065CB0 7F031180 E4840000 */ swc1 $f4, ($a0) +/* 065CB4 7F031184 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 065CB8 7F031188 E48A0004 */ swc1 $f10, 4($a0) +/* 065CBC 7F03118C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065CC0 7F031190 E4860008 */ swc1 $f6, 8($a0) +/* 065CC4 7F031194 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 065CC8 7F031198 E4A80000 */ swc1 $f8, ($a1) +/* 065CCC 7F03119C C7A40060 */ lwc1 $f4, 0x60($sp) +/* 065CD0 7F0311A0 E4A40004 */ swc1 $f4, 4($a1) +/* 065CD4 7F0311A4 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 065CD8 7F0311A8 1000004F */ b .L7F0312E8 +/* 065CDC 7F0311AC E4AA0008 */ swc1 $f10, 8($a1) +.L7F0311B0: +/* 065CE0 7F0311B0 11E00010 */ beqz $t7, .L7F0311F4 +/* 065CE4 7F0311B4 8FB8008C */ lw $t8, 0x8c($sp) +/* 065CE8 7F0311B8 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065CEC 7F0311BC C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065CF0 7F0311C0 8FA500CC */ lw $a1, 0xcc($sp) +/* 065CF4 7F0311C4 E4860000 */ swc1 $f6, ($a0) +/* 065CF8 7F0311C8 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 065CFC 7F0311CC E4880004 */ swc1 $f8, 4($a0) +/* 065D00 7F0311D0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 065D04 7F0311D4 E4840008 */ swc1 $f4, 8($a0) +/* 065D08 7F0311D8 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 065D0C 7F0311DC E4AA0000 */ swc1 $f10, ($a1) +/* 065D10 7F0311E0 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065D14 7F0311E4 E4A60004 */ swc1 $f6, 4($a1) +/* 065D18 7F0311E8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 065D1C 7F0311EC 1000003E */ b .L7F0312E8 +/* 065D20 7F0311F0 E4A80008 */ swc1 $f8, 8($a1) +.L7F0311F4: +/* 065D24 7F0311F4 13000010 */ beqz $t8, .L7F031238 +/* 065D28 7F0311F8 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065D2C 7F0311FC 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065D30 7F031200 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 065D34 7F031204 8FA500CC */ lw $a1, 0xcc($sp) +/* 065D38 7F031208 E4840000 */ swc1 $f4, ($a0) +/* 065D3C 7F03120C C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 065D40 7F031210 E48A0004 */ swc1 $f10, 4($a0) +/* 065D44 7F031214 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065D48 7F031218 E4860008 */ swc1 $f6, 8($a0) +/* 065D4C 7F03121C C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 065D50 7F031220 E4A80000 */ swc1 $f8, ($a1) +/* 065D54 7F031224 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 065D58 7F031228 E4A40004 */ swc1 $f4, 4($a1) +/* 065D5C 7F03122C C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 065D60 7F031230 1000002D */ b .L7F0312E8 +/* 065D64 7F031234 E4AA0008 */ swc1 $f10, 8($a1) +.L7F031238: +/* 065D68 7F031238 8FB900C0 */ lw $t9, 0xc0($sp) +/* 065D6C 7F03123C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065D70 7F031240 8FA800D8 */ lw $t0, 0xd8($sp) +/* 065D74 7F031244 AFB900B4 */ sw $t9, 0xb4($sp) +/* 065D78 7F031248 C4460008 */ lwc1 $f6, 8($v0) +/* 065D7C 7F03124C 8C470000 */ lw $a3, ($v0) +/* 065D80 7F031250 8E060008 */ lw $a2, 8($s0) +/* 065D84 7F031254 8E050000 */ lw $a1, ($s0) +/* 065D88 7F031258 E7A60010 */ swc1 $f6, 0x10($sp) +/* 065D8C 7F03125C 44813000 */ mtc1 $at, $f6 +/* 065D90 7F031260 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065D94 7F031264 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065D98 7F031268 44805000 */ mtc1 $zero, $f10 +/* 065D9C 7F03126C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065DA0 7F031270 AFA80014 */ sw $t0, 0x14($sp) +/* 065DA4 7F031274 E7A80018 */ swc1 $f8, 0x18($sp) +/* 065DA8 7F031278 E7A60024 */ swc1 $f6, 0x24($sp) +/* 065DAC 7F03127C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 065DB0 7F031280 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065DB4 7F031284 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 065DB8 7F031288 10400010 */ beqz $v0, .L7F0312CC +/* 065DBC 7F03128C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065DC0 7F031290 8FA900C4 */ lw $t1, 0xc4($sp) +/* 065DC4 7F031294 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 065DC8 7F031298 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065DCC 7F03129C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065DD0 7F0312A0 8D250000 */ lw $a1, ($t1) +/* 065DD4 7F0312A4 8D260008 */ lw $a2, 8($t1) +/* 065DD8 7F0312A8 8FA700D4 */ lw $a3, 0xd4($sp) +/* 065DDC 7F0312AC AFAA0010 */ sw $t2, 0x10($sp) +/* 065DE0 7F0312B0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 065DE4 7F0312B4 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 065DE8 7F0312B8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 065DEC 7F0312BC 04410003 */ bgez $v0, .L7F0312CC +/* 065DF0 7F0312C0 240B0001 */ li $t3, 1 +/* 065DF4 7F0312C4 10000008 */ b .L7F0312E8 +/* 065DF8 7F0312C8 AFAB0058 */ sw $t3, 0x58($sp) +.L7F0312CC: +/* 065DFC 7F0312CC 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065E00 7F0312D0 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065E04 7F0312D4 8FA500CC */ lw $a1, 0xcc($sp) +/* 065E08 7F0312D8 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065E0C 7F0312DC 8FA500CC */ lw $a1, 0xcc($sp) +/* 065E10 7F0312E0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065E14 7F0312E4 27A600A8 */ addiu $a2, $sp, 0xa8 +.L7F0312E8: +/* 065E18 7F0312E8 8FA400B8 */ lw $a0, 0xb8($sp) +/* 065E1C 7F0312EC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065E20 7F0312F0 24050001 */ li $a1, 1 +/* 065E24 7F0312F4 8FA20058 */ lw $v0, 0x58($sp) +.L7F0312F8: +/* 065E28 7F0312F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 065E2C 7F0312FC 8FB00030 */ lw $s0, 0x30($sp) +/* 065E30 7F031300 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 065E34 7F031304 03E00008 */ jr $ra +/* 065E38 7F031308 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03130C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052034 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052038 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F03130C +/* 065E3C 7F03130C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 065E40 7F031310 AFBF0034 */ sw $ra, 0x34($sp) +/* 065E44 7F031314 AFB00030 */ sw $s0, 0x30($sp) +/* 065E48 7F031318 AFA40080 */ sw $a0, 0x80($sp) +/* 065E4C 7F03131C AFA60088 */ sw $a2, 0x88($sp) +/* 065E50 7F031320 00A08025 */ move $s0, $a1 +/* 065E54 7F031324 10C00004 */ beqz $a2, .L7F031338 +/* 065E58 7F031328 8C820018 */ lw $v0, 0x18($a0) +/* 065E5C 7F03132C AFA5004C */ sw $a1, 0x4c($sp) +/* 065E60 7F031330 10000003 */ b .L7F031340 +/* 065E64 7F031334 AFA70048 */ sw $a3, 0x48($sp) +.L7F031338: +/* 065E68 7F031338 AFA7004C */ sw $a3, 0x4c($sp) +/* 065E6C 7F03133C AFB00048 */ sw $s0, 0x48($sp) +.L7F031340: +/* 065E70 7F031340 C6040000 */ lwc1 $f4, ($s0) +/* 065E74 7F031344 C4460008 */ lwc1 $f6, 8($v0) +/* 065E78 7F031348 44805000 */ mtc1 $zero, $f10 +/* 065E7C 7F03134C 46062201 */ sub.s $f8, $f4, $f6 +/* 065E80 7F031350 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 065E84 7F031354 E7A80070 */ swc1 $f8, 0x70($sp) +/* 065E88 7F031358 C4460010 */ lwc1 $f6, 0x10($v0) +/* 065E8C 7F03135C C6040008 */ lwc1 $f4, 8($s0) +/* 065E90 7F031360 AFA2007C */ sw $v0, 0x7c($sp) +/* 065E94 7F031364 46062201 */ sub.s $f8, $f4, $f6 +/* 065E98 7F031368 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065E9C 7F03136C E7A80078 */ swc1 $f8, 0x78($sp) +/* 065EA0 7F031370 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 065EA4 7F031374 460A5102 */ mul.s $f4, $f10, $f10 +/* 065EA8 7F031378 00000000 */ nop +/* 065EAC 7F03137C 46063202 */ mul.s $f8, $f6, $f6 +/* 065EB0 7F031380 0C007DF8 */ jal sqrtf +/* 065EB4 7F031384 46082300 */ add.s $f12, $f4, $f8 +/* 065EB8 7F031388 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065EBC 7F03138C 44818000 */ mtc1 $at, $f16 +/* 065EC0 7F031390 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 065EC4 7F031394 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065EC8 7F031398 46008383 */ div.s $f14, $f16, $f0 +/* 065ECC 7F03139C C7A40078 */ lwc1 $f4, 0x78($sp) +/* 065ED0 7F0313A0 3C018005 */ lui $at, %hi(D_80052034) +/* 065ED4 7F0313A4 460E9082 */ mul.s $f2, $f18, $f14 +/* 065ED8 7F0313A8 00000000 */ nop +/* 065EDC 7F0313AC 46025182 */ mul.s $f6, $f10, $f2 +/* 065EE0 7F0313B0 4602803C */ c.lt.s $f16, $f2 +/* 065EE4 7F0313B4 46022202 */ mul.s $f8, $f4, $f2 +/* 065EE8 7F0313B8 E7A60070 */ swc1 $f6, 0x70($sp) +/* 065EEC 7F0313BC 45000003 */ bc1f .L7F0313CC +/* 065EF0 7F0313C0 E7A80078 */ swc1 $f8, 0x78($sp) +/* 065EF4 7F0313C4 10000005 */ b .L7F0313DC +/* 065EF8 7F0313C8 C42C2034 */ lwc1 $f12, %lo(D_80052034)($at) +.L7F0313CC: +/* 065EFC 7F0313CC 460E9302 */ mul.s $f12, $f18, $f14 +/* 065F00 7F0313D0 0FC16B2C */ jal acosf +/* 065F04 7F0313D4 00000000 */ nop +/* 065F08 7F0313D8 46000306 */ mov.s $f12, $f0 +.L7F0313DC: +/* 065F0C 7F0313DC 8FB80088 */ lw $t8, 0x88($sp) +/* 065F10 7F0313E0 17000009 */ bnez $t8, .L7F031408 +/* 065F14 7F0313E4 00000000 */ nop +/* 065F18 7F0313E8 44805000 */ mtc1 $zero, $f10 +/* 065F1C 7F0313EC 3C018005 */ lui $at, %hi(D_80052038) +/* 065F20 7F0313F0 460A6032 */ c.eq.s $f12, $f10 +/* 065F24 7F0313F4 00000000 */ nop +/* 065F28 7F0313F8 45010003 */ bc1t .L7F031408 +/* 065F2C 7F0313FC 00000000 */ nop +/* 065F30 7F031400 C4262038 */ lwc1 $f6, %lo(D_80052038)($at) +/* 065F34 7F031404 460C3301 */ sub.s $f12, $f6, $f12 +.L7F031408: +/* 065F38 7F031408 0FC15FA8 */ jal cosf +/* 065F3C 7F03140C E7AC005C */ swc1 $f12, 0x5c($sp) +/* 065F40 7F031410 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F44 7F031414 0FC15FAB */ jal sinf +/* 065F48 7F031418 E7A00040 */ swc1 $f0, 0x40($sp) +/* 065F4C 7F03141C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 065F50 7F031420 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065F54 7F031424 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F58 7F031428 46002207 */ neg.s $f8, $f4 +/* 065F5C 7F03142C C7A40078 */ lwc1 $f4, 0x78($sp) +/* 065F60 7F031430 460A4182 */ mul.s $f6, $f8, $f10 +/* 065F64 7F031434 00000000 */ nop +/* 065F68 7F031438 46002202 */ mul.s $f8, $f4, $f0 +/* 065F6C 7F03143C 44802000 */ mtc1 $zero, $f4 +/* 065F70 7F031440 00000000 */ nop +/* 065F74 7F031444 E7A40054 */ swc1 $f4, 0x54($sp) +/* 065F78 7F031448 46064280 */ add.s $f10, $f8, $f6 +/* 065F7C 7F03144C 0FC15FAB */ jal sinf +/* 065F80 7F031450 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 065F84 7F031454 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F88 7F031458 0FC15FA8 */ jal cosf +/* 065F8C 7F03145C E7A00040 */ swc1 $f0, 0x40($sp) +/* 065F90 7F031460 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 065F94 7F031464 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065F98 7F031468 8FA2007C */ lw $v0, 0x7c($sp) +/* 065F9C 7F03146C 46004187 */ neg.s $f6, $f8 +/* 065FA0 7F031470 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 065FA4 7F031474 460A3102 */ mul.s $f4, $f6, $f10 +/* 065FA8 7F031478 8FB9004C */ lw $t9, 0x4c($sp) +/* 065FAC 7F03147C 8FA80048 */ lw $t0, 0x48($sp) +/* 065FB0 7F031480 46004182 */ mul.s $f6, $f8, $f0 +/* 065FB4 7F031484 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 065FB8 7F031488 8FA40080 */ lw $a0, 0x80($sp) +/* 065FBC 7F03148C 8FA900A4 */ lw $t1, 0xa4($sp) +/* 065FC0 7F031490 24450008 */ addiu $a1, $v0, 8 +/* 065FC4 7F031494 27A70064 */ addiu $a3, $sp, 0x64 +/* 065FC8 7F031498 46062281 */ sub.s $f10, $f4, $f6 +/* 065FCC 7F03149C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 065FD0 7F0314A0 C6040000 */ lwc1 $f4, ($s0) +/* 065FD4 7F0314A4 46044180 */ add.s $f6, $f8, $f4 +/* 065FD8 7F0314A8 E7A60064 */ swc1 $f6, 0x64($sp) +/* 065FDC 7F0314AC C6080004 */ lwc1 $f8, 4($s0) +/* 065FE0 7F0314B0 E7A80068 */ swc1 $f8, 0x68($sp) +/* 065FE4 7F0314B4 C6040008 */ lwc1 $f4, 8($s0) +/* 065FE8 7F0314B8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065FEC 7F0314BC 46045180 */ add.s $f6, $f10, $f4 +/* 065FF0 7F0314C0 E7A6006C */ swc1 $f6, 0x6c($sp) +/* 065FF4 7F0314C4 8C460014 */ lw $a2, 0x14($v0) +/* 065FF8 7F0314C8 AFB90010 */ sw $t9, 0x10($sp) +/* 065FFC 7F0314CC AFA80014 */ sw $t0, 0x14($sp) +/* 066000 7F0314D0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 066004 7F0314D4 C48A0024 */ lwc1 $f10, 0x24($a0) +/* 066008 7F0314D8 AFA5003C */ sw $a1, 0x3c($sp) +/* 06600C 7F0314DC AFA90020 */ sw $t1, 0x20($sp) +/* 066010 7F0314E0 0FC0C207 */ jal sub_GAME_7F03081C +/* 066014 7F0314E4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 066018 7F0314E8 10400028 */ beqz $v0, .L7F03158C +/* 06601C 7F0314EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 066020 7F0314F0 8FAA0094 */ lw $t2, 0x94($sp) +/* 066024 7F0314F4 8FA40080 */ lw $a0, 0x80($sp) +/* 066028 7F0314F8 8FAB007C */ lw $t3, 0x7c($sp) +/* 06602C 7F0314FC 1140000A */ beqz $t2, .L7F031528 +/* 066030 7F031500 27A70064 */ addiu $a3, $sp, 0x64 +/* 066034 7F031504 8FAC0098 */ lw $t4, 0x98($sp) +/* 066038 7F031508 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 06603C 7F03150C 8D660014 */ lw $a2, 0x14($t3) +/* 066040 7F031510 AFA00014 */ sw $zero, 0x14($sp) +/* 066044 7F031514 AFAC0010 */ sw $t4, 0x10($sp) +/* 066048 7F031518 0FC0C12B */ jal sub_GAME_7F0304AC +/* 06604C 7F03151C AFAD0018 */ sw $t5, 0x18($sp) +/* 066050 7F031520 5040001B */ beql $v0, $zero, .L7F031590 +/* 066054 7F031524 00001025 */ move $v0, $zero +.L7F031528: +/* 066058 7F031528 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 06605C 7F03152C 8FA2009C */ lw $v0, 0x9c($sp) +/* 066060 7F031530 24180001 */ li $t8, 1 +/* 066064 7F031534 51C0000D */ beql $t6, $zero, .L7F03156C +/* 066068 7F031538 A0580002 */ sb $t8, 2($v0) +/* 06606C 7F03153C 8FA2009C */ lw $v0, 0x9c($sp) +/* 066070 7F031540 240F0001 */ li $t7, 1 +/* 066074 7F031544 A04F0003 */ sb $t7, 3($v0) +/* 066078 7F031548 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 06607C 7F03154C E444002C */ swc1 $f4, 0x2c($v0) +/* 066080 7F031550 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 066084 7F031554 E4460030 */ swc1 $f6, 0x30($v0) +/* 066088 7F031558 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 06608C 7F03155C E4480034 */ swc1 $f8, 0x34($v0) +/* 066090 7F031560 1000000B */ b .L7F031590 +/* 066094 7F031564 24020001 */ li $v0, 1 +/* 066098 7F031568 A0580002 */ sb $t8, 2($v0) +.L7F03156C: +/* 06609C 7F03156C C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0660A0 7F031570 E44A0004 */ swc1 $f10, 4($v0) +/* 0660A4 7F031574 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0660A8 7F031578 E4440008 */ swc1 $f4, 8($v0) +/* 0660AC 7F03157C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0660B0 7F031580 E446000C */ swc1 $f6, 0xc($v0) +/* 0660B4 7F031584 10000002 */ b .L7F031590 +/* 0660B8 7F031588 24020001 */ li $v0, 1 +.L7F03158C: +/* 0660BC 7F03158C 00001025 */ move $v0, $zero +.L7F031590: +/* 0660C0 7F031590 8FBF0034 */ lw $ra, 0x34($sp) +/* 0660C4 7F031594 8FB00030 */ lw $s0, 0x30($sp) +/* 0660C8 7F031598 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0660CC 7F03159C 03E00008 */ jr $ra +/* 0660D0 7F0315A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0315A4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005203C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052040 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052044 +.word 0x3f99999a /*1.2*/ +glabel D_80052048 +.word 0x3f866666 /*1.05*/ +glabel D_8005204C +.word 0x3f99999a /*1.2*/ +glabel D_80052050 +.word 0x3f866666 /*1.05*/ +glabel D_80052054 +.word 0x3f99999a /*1.2*/ +glabel D_80052058 +.word 0x3f866666 /*1.05*/ +glabel D_8005205C +.word 0x3f8ccccd /*1.1*/ +glabel D_80052060 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052064 +.word 0x471c4000 /*40000.0*/ +.text +glabel sub_GAME_7F0315A4 +/* 0660D4 7F0315A4 27BDFEF0 */ addiu $sp, $sp, -0x110 +/* 0660D8 7F0315A8 AFBF0084 */ sw $ra, 0x84($sp) +/* 0660DC 7F0315AC AFB70080 */ sw $s7, 0x80($sp) +/* 0660E0 7F0315B0 AFB6007C */ sw $s6, 0x7c($sp) +/* 0660E4 7F0315B4 AFB50078 */ sw $s5, 0x78($sp) +/* 0660E8 7F0315B8 AFB40074 */ sw $s4, 0x74($sp) +/* 0660EC 7F0315BC AFB30070 */ sw $s3, 0x70($sp) +/* 0660F0 7F0315C0 AFB2006C */ sw $s2, 0x6c($sp) +/* 0660F4 7F0315C4 AFB10068 */ sw $s1, 0x68($sp) +/* 0660F8 7F0315C8 AFB00064 */ sw $s0, 0x64($sp) +/* 0660FC 7F0315CC F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 066100 7F0315D0 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 066104 7F0315D4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 066108 7F0315D8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 06610C 7F0315DC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 066110 7F0315E0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 066114 7F0315E4 AFA60118 */ sw $a2, 0x118($sp) +/* 066118 7F0315E8 948E0012 */ lhu $t6, 0x12($a0) +/* 06611C 7F0315EC 00E08025 */ move $s0, $a3 +/* 066120 7F0315F0 00809025 */ move $s2, $a0 +/* 066124 7F0315F4 31CF0010 */ andi $t7, $t6, 0x10 +/* 066128 7F0315F8 00A0A025 */ move $s4, $a1 +/* 06612C 7F0315FC 8C910018 */ lw $s1, 0x18($a0) +/* 066130 7F031600 11E00002 */ beqz $t7, .L7F03160C +/* 066134 7F031604 3416801D */ li $s6, 32797 +/* 066138 7F031608 2416001F */ li $s6, 31 +.L7F03160C: +/* 06613C 7F03160C 3C018005 */ lui $at, %hi(D_8005203C) +/* 066140 7F031610 C43E203C */ lwc1 $f30, %lo(D_8005203C)($at) +/* 066144 7F031614 3C018005 */ lui $at, %hi(D_80052040) +/* 066148 7F031618 4480E000 */ mtc1 $zero, $f28 +/* 06614C 7F03161C C43A2040 */ lwc1 $f26, %lo(D_80052040)($at) +/* 066150 7F031620 AFA000F0 */ sw $zero, 0xf0($sp) +/* 066154 7F031624 24170001 */ li $s7, 1 +/* 066158 7F031628 24150004 */ li $s5, 4 +/* 06615C 7F03162C 27B300F4 */ addiu $s3, $sp, 0xf4 +.L7F031630: +/* 066160 7F031630 82020000 */ lb $v0, ($s0) +/* 066164 7F031634 24010002 */ li $at, 2 +/* 066168 7F031638 50400004 */ beql $v0, $zero, .L7F03164C +/* 06616C 7F03163C C6840000 */ lwc1 $f4, ($s4) +/* 066170 7F031640 1441002D */ bne $v0, $at, .L7F0316F8 +/* 066174 7F031644 00000000 */ nop +/* 066178 7F031648 C6840000 */ lwc1 $f4, ($s4) +.L7F03164C: +/* 06617C 7F03164C 26180010 */ addiu $t8, $s0, 0x10 +/* 066180 7F031650 2619001C */ addiu $t9, $s0, 0x1c +/* 066184 7F031654 E7A40100 */ swc1 $f4, 0x100($sp) +/* 066188 7F031658 C6860004 */ lwc1 $f6, 4($s4) +/* 06618C 7F03165C 24080010 */ li $t0, 16 +/* 066190 7F031660 02402025 */ move $a0, $s2 +/* 066194 7F031664 E7A60104 */ swc1 $f6, 0x104($sp) +/* 066198 7F031668 C6880008 */ lwc1 $f8, 8($s4) +/* 06619C 7F03166C 26250008 */ addiu $a1, $s1, 8 +/* 0661A0 7F031670 27A70100 */ addiu $a3, $sp, 0x100 +/* 0661A4 7F031674 E7A80108 */ swc1 $f8, 0x108($sp) +/* 0661A8 7F031678 8E260014 */ lw $a2, 0x14($s1) +/* 0661AC 7F03167C AFB90014 */ sw $t9, 0x14($sp) +/* 0661B0 7F031680 AFB80010 */ sw $t8, 0x10($sp) +/* 0661B4 7F031684 C6400024 */ lwc1 $f0, 0x24($s2) +/* 0661B8 7F031688 AFA80020 */ sw $t0, 0x20($sp) +/* 0661BC 7F03168C 46000287 */ neg.s $f10, $f0 +/* 0661C0 7F031690 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0661C4 7F031694 0FC0C207 */ jal sub_GAME_7F03081C +/* 0661C8 7F031698 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0661CC 7F03169C 5040000B */ beql $v0, $zero, .L7F0316CC +/* 0661D0 7F0316A0 82020000 */ lb $v0, ($s0) +/* 0661D4 7F0316A4 A2170002 */ sb $s7, 2($s0) +/* 0661D8 7F0316A8 C7B20100 */ lwc1 $f18, 0x100($sp) +/* 0661DC 7F0316AC E6120004 */ swc1 $f18, 4($s0) +/* 0661E0 7F0316B0 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 0661E4 7F0316B4 E6040008 */ swc1 $f4, 8($s0) +/* 0661E8 7F0316B8 C7A60108 */ lwc1 $f6, 0x108($sp) +/* 0661EC 7F0316BC A2150000 */ sb $s5, ($s0) +/* 0661F0 7F0316C0 1000019B */ b .L7F031D30 +/* 0661F4 7F0316C4 E606000C */ swc1 $f6, 0xc($s0) +/* 0661F8 7F0316C8 82020000 */ lb $v0, ($s0) +.L7F0316CC: +/* 0661FC 7F0316CC 24010002 */ li $at, 2 +/* 066200 7F0316D0 14400004 */ bnez $v0, .L7F0316E4 +/* 066204 7F0316D4 00000000 */ nop +/* 066208 7F0316D8 A2170000 */ sb $s7, ($s0) +/* 06620C 7F0316DC 10000194 */ b .L7F031D30 +/* 066210 7F0316E0 A2000001 */ sb $zero, 1($s0) +.L7F0316E4: +/* 066214 7F0316E4 14410192 */ bne $v0, $at, .L7F031D30 +/* 066218 7F0316E8 24090003 */ li $t1, 3 +/* 06621C 7F0316EC A2090000 */ sb $t1, ($s0) +/* 066220 7F0316F0 1000018F */ b .L7F031D30 +/* 066224 7F0316F4 A2000001 */ sb $zero, 1($s0) +.L7F0316F8: +/* 066228 7F0316F8 16E20035 */ bne $s7, $v0, .L7F0317D0 +/* 06622C 7F0316FC 24010003 */ li $at, 3 +/* 066230 7F031700 3C018005 */ lui $at, %hi(D_80052044) +/* 066234 7F031704 C42A2044 */ lwc1 $f10, %lo(D_80052044)($at) +/* 066238 7F031708 C6480024 */ lwc1 $f8, 0x24($s2) +/* 06623C 7F03170C 3C018005 */ lui $at, %hi(D_80052048) +/* 066240 7F031710 C4242048 */ lwc1 $f4, %lo(D_80052048)($at) +/* 066244 7F031714 460A4482 */ mul.s $f18, $f8, $f10 +/* 066248 7F031718 240A0010 */ li $t2, 16 +/* 06624C 7F03171C AFAA0024 */ sw $t2, 0x24($sp) +/* 066250 7F031720 AFA00028 */ sw $zero, 0x28($sp) +/* 066254 7F031724 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 066258 7F031728 AFB0001C */ sw $s0, 0x1c($sp) +/* 06625C 7F03172C AFB40018 */ sw $s4, 0x18($sp) +/* 066260 7F031730 46049002 */ mul.s $f0, $f18, $f4 +/* 066264 7F031734 AFB70014 */ sw $s7, 0x14($sp) +/* 066268 7F031738 02402025 */ move $a0, $s2 +/* 06626C 7F03173C 26050010 */ addiu $a1, $s0, 0x10 +/* 066270 7F031740 02E03025 */ move $a2, $s7 +/* 066274 7F031744 02603825 */ move $a3, $s3 +/* 066278 7F031748 E7A00010 */ swc1 $f0, 0x10($sp) +/* 06627C 7F03174C 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066280 7F031750 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 066284 7F031754 10400003 */ beqz $v0, .L7F031764 +/* 066288 7F031758 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 06628C 7F03175C 10000174 */ b .L7F031D30 +/* 066290 7F031760 A2150000 */ sb $s5, ($s0) +.L7F031764: +/* 066294 7F031764 240B0010 */ li $t3, 16 +/* 066298 7F031768 AFAB0024 */ sw $t3, 0x24($sp) +/* 06629C 7F03176C 02402025 */ move $a0, $s2 +/* 0662A0 7F031770 2605001C */ addiu $a1, $s0, 0x1c +/* 0662A4 7F031774 00003025 */ move $a2, $zero +/* 0662A8 7F031778 02603825 */ move $a3, $s3 +/* 0662AC 7F03177C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0662B0 7F031780 AFB70014 */ sw $s7, 0x14($sp) +/* 0662B4 7F031784 AFB40018 */ sw $s4, 0x18($sp) +/* 0662B8 7F031788 AFB0001C */ sw $s0, 0x1c($sp) +/* 0662BC 7F03178C E7BC0020 */ swc1 $f28, 0x20($sp) +/* 0662C0 7F031790 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0662C4 7F031794 AFA00028 */ sw $zero, 0x28($sp) +/* 0662C8 7F031798 50400004 */ beql $v0, $zero, .L7F0317AC +/* 0662CC 7F03179C 820C0001 */ lb $t4, 1($s0) +/* 0662D0 7F0317A0 10000163 */ b .L7F031D30 +/* 0662D4 7F0317A4 A2150000 */ sb $s5, ($s0) +/* 0662D8 7F0317A8 820C0001 */ lb $t4, 1($s0) +.L7F0317AC: +/* 0662DC 7F0317AC 240F0002 */ li $t7, 2 +/* 0662E0 7F0317B0 258D0001 */ addiu $t5, $t4, 1 +/* 0662E4 7F0317B4 A20D0001 */ sb $t5, 1($s0) +/* 0662E8 7F0317B8 820E0001 */ lb $t6, 1($s0) +/* 0662EC 7F0317BC 29C10006 */ slti $at, $t6, 6 +/* 0662F0 7F0317C0 5420015C */ bnezl $at, .L7F031D34 +/* 0662F4 7F0317C4 8FA800F0 */ lw $t0, 0xf0($sp) +/* 0662F8 7F0317C8 10000159 */ b .L7F031D30 +/* 0662FC 7F0317CC A20F0000 */ sb $t7, ($s0) +.L7F0317D0: +/* 066300 7F0317D0 1441003F */ bne $v0, $at, .L7F0318D0 +/* 066304 7F0317D4 3C018005 */ lui $at, %hi(D_8005204C) +/* 066308 7F0317D8 C428204C */ lwc1 $f8, %lo(D_8005204C)($at) +/* 06630C 7F0317DC C6460024 */ lwc1 $f6, 0x24($s2) +/* 066310 7F0317E0 3C018005 */ lui $at, %hi(D_80052050) +/* 066314 7F0317E4 C4322050 */ lwc1 $f18, %lo(D_80052050)($at) +/* 066318 7F0317E8 46083282 */ mul.s $f10, $f6, $f8 +/* 06631C 7F0317EC 24180010 */ li $t8, 16 +/* 066320 7F0317F0 AFB80024 */ sw $t8, 0x24($sp) +/* 066324 7F0317F4 AFA00028 */ sw $zero, 0x28($sp) +/* 066328 7F0317F8 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 06632C 7F0317FC AFB0001C */ sw $s0, 0x1c($sp) +/* 066330 7F031800 AFA00018 */ sw $zero, 0x18($sp) +/* 066334 7F031804 46125002 */ mul.s $f0, $f10, $f18 +/* 066338 7F031808 AFA00014 */ sw $zero, 0x14($sp) +/* 06633C 7F03180C 02402025 */ move $a0, $s2 +/* 066340 7F031810 26050010 */ addiu $a1, $s0, 0x10 +/* 066344 7F031814 02E03025 */ move $a2, $s7 +/* 066348 7F031818 02603825 */ move $a3, $s3 +/* 06634C 7F03181C E7A00010 */ swc1 $f0, 0x10($sp) +/* 066350 7F031820 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066354 7F031824 E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 066358 7F031828 10400003 */ beqz $v0, .L7F031838 +/* 06635C 7F03182C C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 066360 7F031830 1000013F */ b .L7F031D30 +/* 066364 7F031834 A2150000 */ sb $s5, ($s0) +.L7F031838: +/* 066368 7F031838 24190010 */ li $t9, 16 +/* 06636C 7F03183C AFB90024 */ sw $t9, 0x24($sp) +/* 066370 7F031840 02402025 */ move $a0, $s2 +/* 066374 7F031844 2605001C */ addiu $a1, $s0, 0x1c +/* 066378 7F031848 00003025 */ move $a2, $zero +/* 06637C 7F03184C 02603825 */ move $a3, $s3 +/* 066380 7F031850 E7A00010 */ swc1 $f0, 0x10($sp) +/* 066384 7F031854 AFA00014 */ sw $zero, 0x14($sp) +/* 066388 7F031858 AFA00018 */ sw $zero, 0x18($sp) +/* 06638C 7F03185C AFB0001C */ sw $s0, 0x1c($sp) +/* 066390 7F031860 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 066394 7F031864 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066398 7F031868 AFA00028 */ sw $zero, 0x28($sp) +/* 06639C 7F03186C 50400004 */ beql $v0, $zero, .L7F031880 +/* 0663A0 7F031870 82080001 */ lb $t0, 1($s0) +/* 0663A4 7F031874 1000012E */ b .L7F031D30 +/* 0663A8 7F031878 A2150000 */ sb $s5, ($s0) +/* 0663AC 7F03187C 82080001 */ lb $t0, 1($s0) +.L7F031880: +/* 0663B0 7F031880 25090001 */ addiu $t1, $t0, 1 +/* 0663B4 7F031884 A2090001 */ sb $t1, 1($s0) +/* 0663B8 7F031888 820A0001 */ lb $t2, 1($s0) +/* 0663BC 7F03188C 29410006 */ slti $at, $t2, 6 +/* 0663C0 7F031890 54200128 */ bnezl $at, .L7F031D34 +/* 0663C4 7F031894 8FA800F0 */ lw $t0, 0xf0($sp) +/* 0663C8 7F031898 A2000002 */ sb $zero, 2($s0) +/* 0663CC 7F03189C 820B0002 */ lb $t3, 2($s0) +/* 0663D0 7F0318A0 A20B0003 */ sb $t3, 3($s0) +/* 0663D4 7F0318A4 C6800000 */ lwc1 $f0, ($s4) +/* 0663D8 7F0318A8 E6000004 */ swc1 $f0, 4($s0) +/* 0663DC 7F0318AC E600002C */ swc1 $f0, 0x2c($s0) +/* 0663E0 7F0318B0 C6800004 */ lwc1 $f0, 4($s4) +/* 0663E4 7F0318B4 E6000008 */ swc1 $f0, 8($s0) +/* 0663E8 7F0318B8 E6000030 */ swc1 $f0, 0x30($s0) +/* 0663EC 7F0318BC C6800008 */ lwc1 $f0, 8($s4) +/* 0663F0 7F0318C0 A2000000 */ sb $zero, ($s0) +/* 0663F4 7F0318C4 E600000C */ swc1 $f0, 0xc($s0) +/* 0663F8 7F0318C8 10000119 */ b .L7F031D30 +/* 0663FC 7F0318CC E6000034 */ swc1 $f0, 0x34($s0) +.L7F0318D0: +/* 066400 7F0318D0 16A2001D */ bne $s5, $v0, .L7F031948 +/* 066404 7F0318D4 24010005 */ li $at, 5 +/* 066408 7F0318D8 8E260014 */ lw $a2, 0x14($s1) +/* 06640C 7F0318DC 260C0010 */ addiu $t4, $s0, 0x10 +/* 066410 7F0318E0 260D001C */ addiu $t5, $s0, 0x1c +/* 066414 7F0318E4 AFAD0014 */ sw $t5, 0x14($sp) +/* 066418 7F0318E8 AFAC0010 */ sw $t4, 0x10($sp) +/* 06641C 7F0318EC C6400024 */ lwc1 $f0, 0x24($s2) +/* 066420 7F0318F0 AFB60020 */ sw $s6, 0x20($sp) +/* 066424 7F0318F4 02402025 */ move $a0, $s2 +/* 066428 7F0318F8 46000107 */ neg.s $f4, $f0 +/* 06642C 7F0318FC 26250008 */ addiu $a1, $s1, 8 +/* 066430 7F031900 E7A40018 */ swc1 $f4, 0x18($sp) +/* 066434 7F031904 26070004 */ addiu $a3, $s0, 4 +/* 066438 7F031908 0FC0C35C */ jal sub_GAME_7F030D70 +/* 06643C 7F03190C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 066440 7F031910 1040000A */ beqz $v0, .L7F03193C +/* 066444 7F031914 240E0005 */ li $t6, 5 +/* 066448 7F031918 C6060004 */ lwc1 $f6, 4($s0) +/* 06644C 7F03191C C6080008 */ lwc1 $f8, 8($s0) +/* 066450 7F031920 C60A000C */ lwc1 $f10, 0xc($s0) +/* 066454 7F031924 A2170003 */ sb $s7, 3($s0) +/* 066458 7F031928 A2000000 */ sb $zero, ($s0) +/* 06645C 7F03192C E606002C */ swc1 $f6, 0x2c($s0) +/* 066460 7F031930 E6080030 */ swc1 $f8, 0x30($s0) +/* 066464 7F031934 100000FE */ b .L7F031D30 +/* 066468 7F031938 E60A0034 */ swc1 $f10, 0x34($s0) +.L7F03193C: +/* 06646C 7F03193C A20E0000 */ sb $t6, ($s0) +/* 066470 7F031940 100000FB */ b .L7F031D30 +/* 066474 7F031944 A2000001 */ sb $zero, 1($s0) +.L7F031948: +/* 066478 7F031948 144100F9 */ bne $v0, $at, .L7F031D30 +/* 06647C 7F03194C 3C018005 */ lui $at, %hi(D_80052054) +/* 066480 7F031950 C4242054 */ lwc1 $f4, %lo(D_80052054)($at) +/* 066484 7F031954 C6520024 */ lwc1 $f18, 0x24($s2) +/* 066488 7F031958 3C018005 */ lui $at, %hi(D_80052058) +/* 06648C 7F03195C C4282058 */ lwc1 $f8, %lo(D_80052058)($at) +/* 066490 7F031960 46049182 */ mul.s $f6, $f18, $f4 +/* 066494 7F031964 C604000C */ lwc1 $f4, 0xc($s0) +/* 066498 7F031968 C6320008 */ lwc1 $f18, 8($s1) +/* 06649C 7F03196C C60A0004 */ lwc1 $f10, 4($s0) +/* 0664A0 7F031970 46125301 */ sub.s $f12, $f10, $f18 +/* 0664A4 7F031974 46083602 */ mul.s $f24, $f6, $f8 +/* 0664A8 7F031978 C6260010 */ lwc1 $f6, 0x10($s1) +/* 0664AC 7F03197C 0FC16A8C */ jal atan2f +/* 0664B0 7F031980 46062381 */ sub.s $f14, $f4, $f6 +/* 0664B4 7F031984 C6160010 */ lwc1 $f22, 0x10($s0) +/* 0664B8 7F031988 C6320008 */ lwc1 $f18, 8($s1) +/* 0664BC 7F03198C C6100018 */ lwc1 $f16, 0x18($s0) +/* 0664C0 7F031990 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0664C4 7F031994 4612B301 */ sub.s $f12, $f22, $f18 +/* 0664C8 7F031998 46000506 */ mov.s $f20, $f0 +/* 0664CC 7F03199C 0FC16A8C */ jal atan2f +/* 0664D0 7F0319A0 460A8381 */ sub.s $f14, $f16, $f10 +/* 0664D4 7F0319A4 4600A581 */ sub.s $f22, $f20, $f0 +/* 0664D8 7F0319A8 C612001C */ lwc1 $f18, 0x1c($s0) +/* 0664DC 7F0319AC C6300008 */ lwc1 $f16, 8($s1) +/* 0664E0 7F0319B0 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0664E4 7F0319B4 C6280010 */ lwc1 $f8, 0x10($s1) +/* 0664E8 7F0319B8 46109301 */ sub.s $f12, $f18, $f16 +/* 0664EC 7F0319BC E7B600D4 */ swc1 $f22, 0xd4($sp) +/* 0664F0 7F0319C0 0FC16A8C */ jal atan2f +/* 0664F4 7F0319C4 46085381 */ sub.s $f14, $f10, $f8 +/* 0664F8 7F0319C8 C7B000D4 */ lwc1 $f16, 0xd4($sp) +/* 0664FC 7F0319CC 4600A301 */ sub.s $f12, $f20, $f0 +/* 066500 7F0319D0 02603825 */ move $a3, $s3 +/* 066504 7F0319D4 02402025 */ move $a0, $s2 +/* 066508 7F0319D8 461C803C */ c.lt.s $f16, $f28 +/* 06650C 7F0319DC 46006086 */ mov.s $f2, $f12 +/* 066510 7F0319E0 2605001C */ addiu $a1, $s0, 0x1c +/* 066514 7F0319E4 00003025 */ move $a2, $zero +/* 066518 7F0319E8 45000002 */ bc1f .L7F0319F4 +/* 06651C 7F0319EC 3C018005 */ lui $at, %hi(D_80052060) +/* 066520 7F0319F0 461A8400 */ add.s $f16, $f16, $f26 +.L7F0319F4: +/* 066524 7F0319F4 4610F03E */ c.le.s $f30, $f16 +/* 066528 7F0319F8 00000000 */ nop +/* 06652C 7F0319FC 45020003 */ bc1fl .L7F031A0C +/* 066530 7F031A00 461C803C */ c.lt.s $f16, $f28 +/* 066534 7F031A04 461A8401 */ sub.s $f16, $f16, $f26 +/* 066538 7F031A08 461C803C */ c.lt.s $f16, $f28 +.L7F031A0C: +/* 06653C 7F031A0C 00000000 */ nop +/* 066540 7F031A10 45020003 */ bc1fl .L7F031A20 +/* 066544 7F031A14 461C603C */ c.lt.s $f12, $f28 +/* 066548 7F031A18 46008407 */ neg.s $f16, $f16 +/* 06654C 7F031A1C 461C603C */ c.lt.s $f12, $f28 +.L7F031A20: +/* 066550 7F031A20 00000000 */ nop +/* 066554 7F031A24 45020003 */ bc1fl .L7F031A34 +/* 066558 7F031A28 4602F03E */ c.le.s $f30, $f2 +/* 06655C 7F031A2C 461A6080 */ add.s $f2, $f12, $f26 +/* 066560 7F031A30 4602F03E */ c.le.s $f30, $f2 +.L7F031A34: +/* 066564 7F031A34 00000000 */ nop +/* 066568 7F031A38 45020003 */ bc1fl .L7F031A48 +/* 06656C 7F031A3C 461C103C */ c.lt.s $f2, $f28 +/* 066570 7F031A40 461A1081 */ sub.s $f2, $f2, $f26 +/* 066574 7F031A44 461C103C */ c.lt.s $f2, $f28 +.L7F031A48: +/* 066578 7F031A48 00000000 */ nop +/* 06657C 7F031A4C 45020003 */ bc1fl .L7F031A5C +/* 066580 7F031A50 4602803C */ c.lt.s $f16, $f2 +/* 066584 7F031A54 46001087 */ neg.s $f2, $f2 +/* 066588 7F031A58 4602803C */ c.lt.s $f16, $f2 +.L7F031A5C: +/* 06658C 7F031A5C 00000000 */ nop +/* 066590 7F031A60 45000057 */ bc1f .L7F031BC0 +/* 066594 7F031A64 00000000 */ nop +/* 066598 7F031A68 3C018005 */ lui $at, %hi(D_80052060) +/* 06659C 7F031A6C C424205C */ lwc1 $f4, %lo(D_8005205C)($at) +/* 0665A0 7F031A70 02402025 */ move $a0, $s2 +/* 0665A4 7F031A74 26050010 */ addiu $a1, $s0, 0x10 +/* 0665A8 7F031A78 4604C582 */ mul.s $f22, $f24, $f4 +/* 0665AC 7F031A7C 02E03025 */ move $a2, $s7 +/* 0665B0 7F031A80 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0665B4 7F031A84 AFA00014 */ sw $zero, 0x14($sp) +/* 0665B8 7F031A88 AFA00018 */ sw $zero, 0x18($sp) +/* 0665BC 7F031A8C AFB0001C */ sw $s0, 0x1c($sp) +/* 0665C0 7F031A90 AFB60024 */ sw $s6, 0x24($sp) +/* 0665C4 7F031A94 E7B60020 */ swc1 $f22, 0x20($sp) +/* 0665C8 7F031A98 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0665CC 7F031A9C AFB70028 */ sw $s7, 0x28($sp) +/* 0665D0 7F031AA0 50400004 */ beql $v0, $zero, .L7F031AB4 +/* 0665D4 7F031AA4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0665D8 7F031AA8 100000A5 */ b .L7F031D40 +/* 0665DC 7F031AAC A2000000 */ sb $zero, ($s0) +/* 0665E0 7F031AB0 C6060010 */ lwc1 $f6, 0x10($s0) +.L7F031AB4: +/* 0665E4 7F031AB4 C6280008 */ lwc1 $f8, 8($s1) +/* 0665E8 7F031AB8 C60A0018 */ lwc1 $f10, 0x18($s0) +/* 0665EC 7F031ABC C6320010 */ lwc1 $f18, 0x10($s1) +/* 0665F0 7F031AC0 46083301 */ sub.s $f12, $f6, $f8 +/* 0665F4 7F031AC4 0FC16A8C */ jal atan2f +/* 0665F8 7F031AC8 46125381 */ sub.s $f14, $f10, $f18 +/* 0665FC 7F031ACC 4600A481 */ sub.s $f18, $f20, $f0 +/* 066600 7F031AD0 C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 066604 7F031AD4 C62A0008 */ lwc1 $f10, 8($s1) +/* 066608 7F031AD8 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 06660C 7F031ADC C6260010 */ lwc1 $f6, 0x10($s1) +/* 066610 7F031AE0 460A8301 */ sub.s $f12, $f16, $f10 +/* 066614 7F031AE4 E7B200C4 */ swc1 $f18, 0xc4($sp) +/* 066618 7F031AE8 0FC16A8C */ jal atan2f +/* 06661C 7F031AEC 46064381 */ sub.s $f14, $f8, $f6 +/* 066620 7F031AF0 C7B000C4 */ lwc1 $f16, 0xc4($sp) +/* 066624 7F031AF4 4600A301 */ sub.s $f12, $f20, $f0 +/* 066628 7F031AF8 02402025 */ move $a0, $s2 +/* 06662C 7F031AFC 02602825 */ move $a1, $s3 +/* 066630 7F031B00 461C803C */ c.lt.s $f16, $f28 +/* 066634 7F031B04 46006086 */ mov.s $f2, $f12 +/* 066638 7F031B08 00003025 */ move $a2, $zero +/* 06663C 7F031B0C 02603825 */ move $a3, $s3 +/* 066640 7F031B10 45020003 */ bc1fl .L7F031B20 +/* 066644 7F031B14 4610F03E */ c.le.s $f30, $f16 +/* 066648 7F031B18 461A8400 */ add.s $f16, $f16, $f26 +/* 06664C 7F031B1C 4610F03E */ c.le.s $f30, $f16 +.L7F031B20: +/* 066650 7F031B20 00000000 */ nop +/* 066654 7F031B24 45020003 */ bc1fl .L7F031B34 +/* 066658 7F031B28 461C803C */ c.lt.s $f16, $f28 +/* 06665C 7F031B2C 461A8401 */ sub.s $f16, $f16, $f26 +/* 066660 7F031B30 461C803C */ c.lt.s $f16, $f28 +.L7F031B34: +/* 066664 7F031B34 00000000 */ nop +/* 066668 7F031B38 45020003 */ bc1fl .L7F031B48 +/* 06666C 7F031B3C 461C603C */ c.lt.s $f12, $f28 +/* 066670 7F031B40 46008407 */ neg.s $f16, $f16 +/* 066674 7F031B44 461C603C */ c.lt.s $f12, $f28 +.L7F031B48: +/* 066678 7F031B48 00000000 */ nop +/* 06667C 7F031B4C 45020003 */ bc1fl .L7F031B5C +/* 066680 7F031B50 4602F03E */ c.le.s $f30, $f2 +/* 066684 7F031B54 461A6080 */ add.s $f2, $f12, $f26 +/* 066688 7F031B58 4602F03E */ c.le.s $f30, $f2 +.L7F031B5C: +/* 06668C 7F031B5C 00000000 */ nop +/* 066690 7F031B60 45020003 */ bc1fl .L7F031B70 +/* 066694 7F031B64 461C103C */ c.lt.s $f2, $f28 +/* 066698 7F031B68 461A1081 */ sub.s $f2, $f2, $f26 +/* 06669C 7F031B6C 461C103C */ c.lt.s $f2, $f28 +.L7F031B70: +/* 0666A0 7F031B70 00000000 */ nop +/* 0666A4 7F031B74 45020003 */ bc1fl .L7F031B84 +/* 0666A8 7F031B78 4610103C */ c.lt.s $f2, $f16 +/* 0666AC 7F031B7C 46001087 */ neg.s $f2, $f2 +/* 0666B0 7F031B80 4610103C */ c.lt.s $f2, $f16 +.L7F031B84: +/* 0666B4 7F031B84 00000000 */ nop +/* 0666B8 7F031B88 45020061 */ bc1fl .L7F031D10 +/* 0666BC 7F031B8C 820F0001 */ lb $t7, 1($s0) +/* 0666C0 7F031B90 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0666C4 7F031B94 AFA00014 */ sw $zero, 0x14($sp) +/* 0666C8 7F031B98 AFA00018 */ sw $zero, 0x18($sp) +/* 0666CC 7F031B9C AFB0001C */ sw $s0, 0x1c($sp) +/* 0666D0 7F031BA0 E7B60020 */ swc1 $f22, 0x20($sp) +/* 0666D4 7F031BA4 AFB60024 */ sw $s6, 0x24($sp) +/* 0666D8 7F031BA8 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0666DC 7F031BAC AFB70028 */ sw $s7, 0x28($sp) +/* 0666E0 7F031BB0 50400057 */ beql $v0, $zero, .L7F031D10 +/* 0666E4 7F031BB4 820F0001 */ lb $t7, 1($s0) +/* 0666E8 7F031BB8 10000061 */ b .L7F031D40 +/* 0666EC 7F031BBC A2000000 */ sb $zero, ($s0) +.L7F031BC0: +/* 0666F0 7F031BC0 C4322060 */ lwc1 $f18, %lo(D_80052060)($at) +/* 0666F4 7F031BC4 02603825 */ move $a3, $s3 +/* 0666F8 7F031BC8 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0666FC 7F031BCC 4612C582 */ mul.s $f22, $f24, $f18 +/* 066700 7F031BD0 AFA00014 */ sw $zero, 0x14($sp) +/* 066704 7F031BD4 AFA00018 */ sw $zero, 0x18($sp) +/* 066708 7F031BD8 AFB0001C */ sw $s0, 0x1c($sp) +/* 06670C 7F031BDC AFB60024 */ sw $s6, 0x24($sp) +/* 066710 7F031BE0 AFB70028 */ sw $s7, 0x28($sp) +/* 066714 7F031BE4 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066718 7F031BE8 E7B60020 */ swc1 $f22, 0x20($sp) +/* 06671C 7F031BEC 50400004 */ beql $v0, $zero, .L7F031C00 +/* 066720 7F031BF0 C604001C */ lwc1 $f4, 0x1c($s0) +/* 066724 7F031BF4 10000052 */ b .L7F031D40 +/* 066728 7F031BF8 A2000000 */ sb $zero, ($s0) +/* 06672C 7F031BFC C604001C */ lwc1 $f4, 0x1c($s0) +.L7F031C00: +/* 066730 7F031C00 C6260008 */ lwc1 $f6, 8($s1) +/* 066734 7F031C04 C6080024 */ lwc1 $f8, 0x24($s0) +/* 066738 7F031C08 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 06673C 7F031C0C 46062301 */ sub.s $f12, $f4, $f6 +/* 066740 7F031C10 0FC16A8C */ jal atan2f +/* 066744 7F031C14 460A4381 */ sub.s $f14, $f8, $f10 +/* 066748 7F031C18 4600A481 */ sub.s $f18, $f20, $f0 +/* 06674C 7F031C1C C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 066750 7F031C20 C62A0008 */ lwc1 $f10, 8($s1) +/* 066754 7F031C24 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 066758 7F031C28 C6260010 */ lwc1 $f6, 0x10($s1) +/* 06675C 7F031C2C 460A8301 */ sub.s $f12, $f16, $f10 +/* 066760 7F031C30 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 066764 7F031C34 0FC16A8C */ jal atan2f +/* 066768 7F031C38 46064381 */ sub.s $f14, $f8, $f6 +/* 06676C 7F031C3C C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 066770 7F031C40 4600A301 */ sub.s $f12, $f20, $f0 +/* 066774 7F031C44 02402025 */ move $a0, $s2 +/* 066778 7F031C48 02602825 */ move $a1, $s3 +/* 06677C 7F031C4C 461C803C */ c.lt.s $f16, $f28 +/* 066780 7F031C50 46006086 */ mov.s $f2, $f12 +/* 066784 7F031C54 02E03025 */ move $a2, $s7 +/* 066788 7F031C58 02603825 */ move $a3, $s3 +/* 06678C 7F031C5C 45020003 */ bc1fl .L7F031C6C +/* 066790 7F031C60 4610F03E */ c.le.s $f30, $f16 +/* 066794 7F031C64 461A8400 */ add.s $f16, $f16, $f26 +/* 066798 7F031C68 4610F03E */ c.le.s $f30, $f16 +.L7F031C6C: +/* 06679C 7F031C6C 00000000 */ nop +/* 0667A0 7F031C70 45020003 */ bc1fl .L7F031C80 +/* 0667A4 7F031C74 461C803C */ c.lt.s $f16, $f28 +/* 0667A8 7F031C78 461A8401 */ sub.s $f16, $f16, $f26 +/* 0667AC 7F031C7C 461C803C */ c.lt.s $f16, $f28 +.L7F031C80: +/* 0667B0 7F031C80 00000000 */ nop +/* 0667B4 7F031C84 45020003 */ bc1fl .L7F031C94 +/* 0667B8 7F031C88 461C603C */ c.lt.s $f12, $f28 +/* 0667BC 7F031C8C 46008407 */ neg.s $f16, $f16 +/* 0667C0 7F031C90 461C603C */ c.lt.s $f12, $f28 +.L7F031C94: +/* 0667C4 7F031C94 00000000 */ nop +/* 0667C8 7F031C98 45020003 */ bc1fl .L7F031CA8 +/* 0667CC 7F031C9C 4602F03E */ c.le.s $f30, $f2 +/* 0667D0 7F031CA0 461A6080 */ add.s $f2, $f12, $f26 +/* 0667D4 7F031CA4 4602F03E */ c.le.s $f30, $f2 +.L7F031CA8: +/* 0667D8 7F031CA8 00000000 */ nop +/* 0667DC 7F031CAC 45020003 */ bc1fl .L7F031CBC +/* 0667E0 7F031CB0 461C103C */ c.lt.s $f2, $f28 +/* 0667E4 7F031CB4 461A1081 */ sub.s $f2, $f2, $f26 +/* 0667E8 7F031CB8 461C103C */ c.lt.s $f2, $f28 +.L7F031CBC: +/* 0667EC 7F031CBC 00000000 */ nop +/* 0667F0 7F031CC0 45020003 */ bc1fl .L7F031CD0 +/* 0667F4 7F031CC4 4610103C */ c.lt.s $f2, $f16 +/* 0667F8 7F031CC8 46001087 */ neg.s $f2, $f2 +/* 0667FC 7F031CCC 4610103C */ c.lt.s $f2, $f16 +.L7F031CD0: +/* 066800 7F031CD0 00000000 */ nop +/* 066804 7F031CD4 4502000E */ bc1fl .L7F031D10 +/* 066808 7F031CD8 820F0001 */ lb $t7, 1($s0) +/* 06680C 7F031CDC E7B80010 */ swc1 $f24, 0x10($sp) +/* 066810 7F031CE0 AFA00014 */ sw $zero, 0x14($sp) +/* 066814 7F031CE4 AFA00018 */ sw $zero, 0x18($sp) +/* 066818 7F031CE8 AFB0001C */ sw $s0, 0x1c($sp) +/* 06681C 7F031CEC E7B60020 */ swc1 $f22, 0x20($sp) +/* 066820 7F031CF0 AFB60024 */ sw $s6, 0x24($sp) +/* 066824 7F031CF4 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066828 7F031CF8 AFB70028 */ sw $s7, 0x28($sp) +/* 06682C 7F031CFC 50400004 */ beql $v0, $zero, .L7F031D10 +/* 066830 7F031D00 820F0001 */ lb $t7, 1($s0) +/* 066834 7F031D04 1000000E */ b .L7F031D40 +/* 066838 7F031D08 A2000000 */ sb $zero, ($s0) +/* 06683C 7F031D0C 820F0001 */ lb $t7, 1($s0) +.L7F031D10: +/* 066840 7F031D10 25F80001 */ addiu $t8, $t7, 1 +/* 066844 7F031D14 A2180001 */ sb $t8, 1($s0) +/* 066848 7F031D18 82190001 */ lb $t9, 1($s0) +/* 06684C 7F031D1C 2B210006 */ slti $at, $t9, 6 +/* 066850 7F031D20 54200004 */ bnezl $at, .L7F031D34 +/* 066854 7F031D24 8FA800F0 */ lw $t0, 0xf0($sp) +/* 066858 7F031D28 A2000003 */ sb $zero, 3($s0) +/* 06685C 7F031D2C A2000000 */ sb $zero, ($s0) +.L7F031D30: +/* 066860 7F031D30 8FA800F0 */ lw $t0, 0xf0($sp) +.L7F031D34: +/* 066864 7F031D34 25090001 */ addiu $t1, $t0, 1 +/* 066868 7F031D38 1537FE3D */ bne $t1, $s7, .L7F031630 +/* 06686C 7F031D3C AFA900F0 */ sw $t1, 0xf0($sp) +.L7F031D40: +/* 066870 7F031D40 820A0003 */ lb $t2, 3($s0) +/* 066874 7F031D44 240D5000 */ li $t5, 20480 +/* 066878 7F031D48 55400008 */ bnezl $t2, .L7F031D6C +/* 06687C 7F031D4C 8E0B0028 */ lw $t3, 0x28($s0) +/* 066880 7F031D50 C60A0004 */ lwc1 $f10, 4($s0) +/* 066884 7F031D54 C6120008 */ lwc1 $f18, 8($s0) +/* 066888 7F031D58 C604000C */ lwc1 $f4, 0xc($s0) +/* 06688C 7F031D5C E60A002C */ swc1 $f10, 0x2c($s0) +/* 066890 7F031D60 E6120030 */ swc1 $f18, 0x30($s0) +/* 066894 7F031D64 E6040034 */ swc1 $f4, 0x34($s0) +/* 066898 7F031D68 8E0B0028 */ lw $t3, 0x28($s0) +.L7F031D6C: +/* 06689C 7F031D6C 2401000A */ li $at, 10 +/* 0668A0 7F031D70 0161001A */ div $zero, $t3, $at +/* 0668A4 7F031D74 00006010 */ mfhi $t4 +/* 0668A8 7F031D78 55800072 */ bnezl $t4, .L7F031F44 +/* 0668AC 7F031D7C 824E0007 */ lb $t6, 7($s2) +/* 0668B0 7F031D80 C6060034 */ lwc1 $f6, 0x34($s0) +/* 0668B4 7F031D84 8E240014 */ lw $a0, 0x14($s1) +/* 0668B8 7F031D88 8E250008 */ lw $a1, 8($s1) +/* 0668BC 7F031D8C 8E260010 */ lw $a2, 0x10($s1) +/* 0668C0 7F031D90 8E07002C */ lw $a3, 0x2c($s0) +/* 0668C4 7F031D94 AFAD0014 */ sw $t5, 0x14($sp) +/* 0668C8 7F031D98 0FC2C504 */ jal sub_GAME_7F0B1410 +/* 0668CC 7F031D9C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0668D0 7F031DA0 10400042 */ beqz $v0, .L7F031EAC +/* 0668D4 7F031DA4 00409825 */ move $s3, $v0 +/* 0668D8 7F031DA8 8C430004 */ lw $v1, 4($v0) +/* 0668DC 7F031DAC 8C6E000C */ lw $t6, 0xc($v1) +/* 0668E0 7F031DB0 000E7880 */ sll $t7, $t6, 2 +/* 0668E4 7F031DB4 05E2003D */ bltzl $t7, .L7F031EAC +/* 0668E8 7F031DB8 00009825 */ move $s3, $zero +/* 0668EC 7F031DBC C4480008 */ lwc1 $f8, 8($v0) +/* 0668F0 7F031DC0 C62A0008 */ lwc1 $f10, 8($s1) +/* 0668F4 7F031DC4 C452000C */ lwc1 $f18, 0xc($v0) +/* 0668F8 7F031DC8 C624000C */ lwc1 $f4, 0xc($s1) +/* 0668FC 7F031DCC 460A4001 */ sub.s $f0, $f8, $f10 +/* 066900 7F031DD0 C6280010 */ lwc1 $f8, 0x10($s1) +/* 066904 7F031DD4 C4460010 */ lwc1 $f6, 0x10($v0) +/* 066908 7F031DD8 46049081 */ sub.s $f2, $f18, $f4 +/* 06690C 7F031DDC 46000282 */ mul.s $f10, $f0, $f0 +/* 066910 7F031DE0 3C018005 */ lui $at, %hi(D_80052064) +/* 066914 7F031DE4 46083301 */ sub.s $f12, $f6, $f8 +/* 066918 7F031DE8 46021482 */ mul.s $f18, $f2, $f2 +/* 06691C 7F031DEC 02402025 */ move $a0, $s2 +/* 066920 7F031DF0 460C6182 */ mul.s $f6, $f12, $f12 +/* 066924 7F031DF4 46125100 */ add.s $f4, $f10, $f18 +/* 066928 7F031DF8 C42A2064 */ lwc1 $f10, %lo(D_80052064)($at) +/* 06692C 7F031DFC 46062200 */ add.s $f8, $f4, $f6 +/* 066930 7F031E00 460A403C */ c.lt.s $f8, $f10 +/* 066934 7F031E04 00000000 */ nop +/* 066938 7F031E08 45000025 */ bc1f .L7F031EA0 +/* 06693C 7F031E0C 00000000 */ nop +/* 066940 7F031E10 0FC0A07D */ jal sub_GAME_7F0281F4 +/* 066944 7F031E14 00000000 */ nop +/* 066948 7F031E18 02202025 */ move $a0, $s1 +/* 06694C 7F031E1C 0FC156DE */ jal sub_GAME_7F055B78 +/* 066950 7F031E20 8E650004 */ lw $a1, 4($s3) +/* 066954 7F031E24 8E640004 */ lw $a0, 4($s3) +/* 066958 7F031E28 0FC15262 */ jal set_door_state +/* 06695C 7F031E2C 02E02825 */ move $a1, $s7 +/* 066960 7F031E30 96580012 */ lhu $t8, 0x12($s2) +/* 066964 7F031E34 33190010 */ andi $t9, $t8, 0x10 +/* 066968 7F031E38 1720001C */ bnez $t9, .L7F031EAC +/* 06696C 7F031E3C 00000000 */ nop +/* 066970 7F031E40 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066974 7F031E44 8E44001C */ lw $a0, 0x1c($s2) +/* 066978 7F031E48 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 06697C 7F031E4C 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 066980 7F031E50 3C090001 */ lui $t1, %hi(0x00008194) # $t1, 1 +/* 066984 7F031E54 25298194 */ addiu $t1, %lo(0x00008194) # addiu $t1, $t1, -0x7e6c +/* 066988 7F031E58 01095021 */ addu $t2, $t0, $t1 +/* 06698C 7F031E5C 104A0013 */ beq $v0, $t2, .L7F031EAC +/* 066990 7F031E60 00000000 */ nop +/* 066994 7F031E64 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066998 7F031E68 8E44001C */ lw $a0, 0x1c($s2) +/* 06699C 7F031E6C 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0669A0 7F031E70 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0669A4 7F031E74 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 0669A8 7F031E78 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 0669AC 7F031E7C 016C6821 */ addu $t5, $t3, $t4 +/* 0669B0 7F031E80 104D000A */ beq $v0, $t5, .L7F031EAC +/* 0669B4 7F031E84 02402025 */ move $a0, $s2 +/* 0669B8 7F031E88 0FC08E52 */ jal sub_GAME_7F023948 +/* 0669BC 7F031E8C 3C054180 */ lui $a1, 0x4180 +/* 0669C0 7F031E90 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0669C4 7F031E94 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0669C8 7F031E98 10000004 */ b .L7F031EAC +/* 0669CC 7F031E9C AE4E00CC */ sw $t6, 0xcc($s2) +.L7F031EA0: +/* 0669D0 7F031EA0 10000002 */ b .L7F031EAC +/* 0669D4 7F031EA4 00009825 */ move $s3, $zero +/* 0669D8 7F031EA8 00009825 */ move $s3, $zero +.L7F031EAC: +/* 0669DC 7F031EAC 12600005 */ beqz $s3, .L7F031EC4 +/* 0669E0 7F031EB0 3C110001 */ lui $s1, %hi(0x00008194) # $s1, 1 +/* 0669E4 7F031EB4 964F0012 */ lhu $t7, 0x12($s2) +/* 0669E8 7F031EB8 31F80010 */ andi $t8, $t7, 0x10 +/* 0669EC 7F031EBC 53000021 */ beql $t8, $zero, .L7F031F44 +/* 0669F0 7F031EC0 824E0007 */ lb $t6, 7($s2) +.L7F031EC4: +/* 0669F4 7F031EC4 8E44001C */ lw $a0, 0x1c($s2) +/* 0669F8 7F031EC8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0669FC 7F031ECC 26318194 */ addiu $s1, %lo(0x00008194) # addiu $s1, $s1, -0x7e6c +/* 066A00 7F031ED0 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 066A04 7F031ED4 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 066A08 7F031ED8 02394021 */ addu $t0, $s1, $t9 +/* 066A0C 7F031EDC 10480009 */ beq $v0, $t0, .L7F031F04 +/* 066A10 7F031EE0 3C110000 */ lui $s1, %hi(0x0000001C) # $s1, 0 +/* 066A14 7F031EE4 8E44001C */ lw $a0, 0x1c($s2) +/* 066A18 7F031EE8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066A1C 7F031EEC 2631001C */ addiu $s1, %lo(0x0000001C) # addiu $s1, $s1, 0x1c +/* 066A20 7F031EF0 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 066A24 7F031EF4 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 066A28 7F031EF8 02295021 */ addu $t2, $s1, $t1 +/* 066A2C 7F031EFC 144A000B */ bne $v0, $t2, .L7F031F2C +/* 066A30 7F031F00 00000000 */ nop +.L7F031F04: +/* 066A34 7F031F04 824B0007 */ lb $t3, 7($s2) +/* 066A38 7F031F08 2401000E */ li $at, 14 +/* 066A3C 7F031F0C 15610005 */ bne $t3, $at, .L7F031F24 +/* 066A40 7F031F10 00000000 */ nop +/* 066A44 7F031F14 0FC0A3EB */ jal sub_GAME_7F028FAC +/* 066A48 7F031F18 02402025 */ move $a0, $s2 +/* 066A4C 7F031F1C 10000003 */ b .L7F031F2C +/* 066A50 7F031F20 00000000 */ nop +.L7F031F24: +/* 066A54 7F031F24 0FC0A368 */ jal play_hit_soundeffect_and_proper_volume +/* 066A58 7F031F28 02402025 */ move $a0, $s2 +.L7F031F2C: +/* 066A5C 7F031F2C 56600005 */ bnezl $s3, .L7F031F44 +/* 066A60 7F031F30 824E0007 */ lb $t6, 7($s2) +/* 066A64 7F031F34 964C0012 */ lhu $t4, 0x12($s2) +/* 066A68 7F031F38 318DFFEF */ andi $t5, $t4, 0xffef +/* 066A6C 7F031F3C A64D0012 */ sh $t5, 0x12($s2) +/* 066A70 7F031F40 824E0007 */ lb $t6, 7($s2) +.L7F031F44: +/* 066A74 7F031F44 2401000E */ li $at, 14 +/* 066A78 7F031F48 02402025 */ move $a0, $s2 +/* 066A7C 7F031F4C 15C10008 */ bne $t6, $at, .L7F031F70 +/* 066A80 7F031F50 2605002C */ addiu $a1, $s0, 0x2c +/* 066A84 7F031F54 02402025 */ move $a0, $s2 +/* 066A88 7F031F58 2605002C */ addiu $a1, $s0, 0x2c +/* 066A8C 7F031F5C 00003025 */ move $a2, $zero +/* 066A90 7F031F60 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 066A94 7F031F64 2647007C */ addiu $a3, $s2, 0x7c +/* 066A98 7F031F68 10000037 */ b .L7F032048 +/* 066A9C 7F031F6C 8FBF0084 */ lw $ra, 0x84($sp) +.L7F031F70: +/* 066AA0 7F031F70 92460059 */ lbu $a2, 0x59($s2) +/* 066AA4 7F031F74 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 066AA8 7F031F78 264700A0 */ addiu $a3, $s2, 0xa0 +/* 066AAC 7F031F7C 92430059 */ lbu $v1, 0x59($s2) +/* 066AB0 7F031F80 24010002 */ li $at, 2 +/* 066AB4 7F031F84 1461001D */ bne $v1, $at, .L7F031FFC +/* 066AB8 7F031F88 00000000 */ nop +/* 066ABC 7F031F8C C65200A0 */ lwc1 $f18, 0xa0($s2) +/* 066AC0 7F031F90 3C053E80 */ lui $a1, 0x3e80 +/* 066AC4 7F031F94 4612E032 */ c.eq.s $f28, $f18 +/* 066AC8 7F031F98 00000000 */ nop +/* 066ACC 7F031F9C 45030007 */ bc1tl .L7F031FBC +/* 066AD0 7F031FA0 8E4F0014 */ lw $t7, 0x14($s2) +/* 066AD4 7F031FA4 4406E000 */ mfc1 $a2, $f28 +/* 066AD8 7F031FA8 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066ADC 7F031FAC 8E44001C */ lw $a0, 0x1c($s2) +/* 066AE0 7F031FB0 10000025 */ b .L7F032048 +/* 066AE4 7F031FB4 8FBF0084 */ lw $ra, 0x84($sp) +/* 066AE8 7F031FB8 8E4F0014 */ lw $t7, 0x14($s2) +.L7F031FBC: +/* 066AEC 7F031FBC 3C053F00 */ lui $a1, 0x3f00 +/* 066AF0 7F031FC0 000FC300 */ sll $t8, $t7, 0xc +/* 066AF4 7F031FC4 07030009 */ bgezl $t8, .L7F031FEC +/* 066AF8 7F031FC8 4406E000 */ mfc1 $a2, $f28 +/* 066AFC 7F031FCC 3C053F26 */ lui $a1, (0x3F266666 >> 16) # lui $a1, 0x3f26 +/* 066B00 7F031FD0 4406E000 */ mfc1 $a2, $f28 +/* 066B04 7F031FD4 34A56666 */ ori $a1, (0x3F266666 & 0xFFFF) # ori $a1, $a1, 0x6666 +/* 066B08 7F031FD8 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B0C 7F031FDC 8E44001C */ lw $a0, 0x1c($s2) +/* 066B10 7F031FE0 10000019 */ b .L7F032048 +/* 066B14 7F031FE4 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B18 7F031FE8 4406E000 */ mfc1 $a2, $f28 +.L7F031FEC: +/* 066B1C 7F031FEC 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B20 7F031FF0 8E44001C */ lw $a0, 0x1c($s2) +/* 066B24 7F031FF4 10000014 */ b .L7F032048 +/* 066B28 7F031FF8 8FBF0084 */ lw $ra, 0x84($sp) +.L7F031FFC: +/* 066B2C 7F031FFC 56E30012 */ bnel $s7, $v1, .L7F032048 +/* 066B30 7F032000 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B34 7F032004 C64400A0 */ lwc1 $f4, 0xa0($s2) +/* 066B38 7F032008 3C053F00 */ lui $a1, 0x3f00 +/* 066B3C 7F03200C 4604E032 */ c.eq.s $f28, $f4 +/* 066B40 7F032010 00000000 */ nop +/* 066B44 7F032014 45030009 */ bc1tl .L7F03203C +/* 066B48 7F032018 4406E000 */ mfc1 $a2, $f28 +/* 066B4C 7F03201C 3C053ECC */ lui $a1, (0x3ECCCCCD >> 16) # lui $a1, 0x3ecc +/* 066B50 7F032020 4406E000 */ mfc1 $a2, $f28 +/* 066B54 7F032024 34A5CCCD */ ori $a1, (0x3ECCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 066B58 7F032028 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B5C 7F03202C 8E44001C */ lw $a0, 0x1c($s2) +/* 066B60 7F032030 10000005 */ b .L7F032048 +/* 066B64 7F032034 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B68 7F032038 4406E000 */ mfc1 $a2, $f28 +.L7F03203C: +/* 066B6C 7F03203C 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B70 7F032040 8E44001C */ lw $a0, 0x1c($s2) +/* 066B74 7F032044 8FBF0084 */ lw $ra, 0x84($sp) +.L7F032048: +/* 066B78 7F032048 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 066B7C 7F03204C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 066B80 7F032050 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 066B84 7F032054 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 066B88 7F032058 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 066B8C 7F03205C D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 066B90 7F032060 8FB00064 */ lw $s0, 0x64($sp) +/* 066B94 7F032064 8FB10068 */ lw $s1, 0x68($sp) +/* 066B98 7F032068 8FB2006C */ lw $s2, 0x6c($sp) +/* 066B9C 7F03206C 8FB30070 */ lw $s3, 0x70($sp) +/* 066BA0 7F032070 8FB40074 */ lw $s4, 0x74($sp) +/* 066BA4 7F032074 8FB50078 */ lw $s5, 0x78($sp) +/* 066BA8 7F032078 8FB6007C */ lw $s6, 0x7c($sp) +/* 066BAC 7F03207C 8FB70080 */ lw $s7, 0x80($sp) +/* 066BB0 7F032080 03E00008 */ jr $ra +/* 066BB4 7F032084 27BD0110 */ addiu $sp, $sp, 0x110 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032088(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052068 +.word 0x3f99999a /*1.2*/ +glabel D_8005206C +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F032088 +/* 066BB8 7F032088 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 066BBC 7F03208C AFBF0024 */ sw $ra, 0x24($sp) +/* 066BC0 7F032090 AFB00020 */ sw $s0, 0x20($sp) +/* 066BC4 7F032094 8C8E0018 */ lw $t6, 0x18($a0) +/* 066BC8 7F032098 AFA00074 */ sw $zero, 0x74($sp) +/* 066BCC 7F03209C 3C198005 */ lui $t9, %hi(global_timer) +/* 066BD0 7F0320A0 AFAE0078 */ sw $t6, 0x78($sp) +/* 066BD4 7F0320A4 8C8F0084 */ lw $t7, 0x84($a0) +/* 066BD8 7F0320A8 3C098005 */ lui $t1, %hi(global_timer) +/* 066BDC 7F0320AC 8C8800CC */ lw $t0, 0xcc($a0) +/* 066BE0 7F0320B0 25F80001 */ addiu $t8, $t7, 1 +/* 066BE4 7F0320B4 AC980084 */ sw $t8, 0x84($a0) +/* 066BE8 7F0320B8 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 066BEC 7F0320BC 00808025 */ move $s0, $a0 +/* 066BF0 7F0320C0 2605002C */ addiu $a1, $s0, 0x2c +/* 066BF4 7F0320C4 AC9900C8 */ sw $t9, 0xc8($a0) +/* 066BF8 7F0320C8 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 066BFC 7F0320CC 252AFFC4 */ addiu $t2, $t1, -0x3c +/* 066C00 7F0320D0 010A082A */ slt $at, $t0, $t2 +/* 066C04 7F0320D4 10200004 */ beqz $at, .L7F0320E8 +/* 066C08 7F0320D8 00000000 */ nop +/* 066C0C 7F0320DC 8E060038 */ lw $a2, 0x38($s0) +/* 066C10 7F0320E0 0FC0A377 */ jal plot_course_for_actor +/* 066C14 7F0320E4 92070059 */ lbu $a3, 0x59($s0) +.L7F0320E8: +/* 066C18 7F0320E8 0FC0A07F */ jal sub_GAME_7F0281FC +/* 066C1C 7F0320EC 02002025 */ move $a0, $s0 +/* 066C20 7F0320F0 820B005C */ lb $t3, 0x5c($s0) +/* 066C24 7F0320F4 24010006 */ li $at, 6 +/* 066C28 7F0320F8 3C0C8005 */ lui $t4, %hi(global_timer) +/* 066C2C 7F0320FC 11610015 */ beq $t3, $at, .L7F032154 +/* 066C30 7F032100 00000000 */ nop +/* 066C34 7F032104 8E0D009C */ lw $t5, 0x9c($s0) +/* 066C38 7F032108 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 066C3C 7F03210C 02002025 */ move $a0, $s0 +/* 066C40 7F032110 25AE00B4 */ addiu $t6, $t5, 0xb4 +/* 066C44 7F032114 01CC082A */ slt $at, $t6, $t4 +/* 066C48 7F032118 1020000E */ beqz $at, .L7F032154 +/* 066C4C 7F03211C 27A50068 */ addiu $a1, $sp, 0x68 +/* 066C50 7F032120 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 066C54 7F032124 27A60064 */ addiu $a2, $sp, 0x64 +/* 066C58 7F032128 02002025 */ move $a0, $s0 +/* 066C5C 7F03212C 27A50068 */ addiu $a1, $sp, 0x68 +/* 066C60 7F032130 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 066C64 7F032134 8FA60064 */ lw $a2, 0x64($sp) +/* 066C68 7F032138 10400006 */ beqz $v0, .L7F032154 +/* 066C6C 7F03213C 240F0001 */ li $t7, 1 +/* 066C70 7F032140 AFAF0074 */ sw $t7, 0x74($sp) +/* 066C74 7F032144 02002025 */ move $a0, $s0 +/* 066C78 7F032148 2605005C */ addiu $a1, $s0, 0x5c +/* 066C7C 7F03214C 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 066C80 7F032150 27A60068 */ addiu $a2, $sp, 0x68 +.L7F032154: +/* 066C84 7F032154 3C188003 */ lui $t8, %hi(setting_007_5) +/* 066C88 7F032158 8F18CE50 */ lw $t8, %lo(setting_007_5)($t8) +/* 066C8C 7F03215C 2B01000A */ slti $at, $t8, 0xa +/* 066C90 7F032160 54200006 */ bnezl $at, .L7F03217C +/* 066C94 7F032164 8219005C */ lb $t9, 0x5c($s0) +/* 066C98 7F032168 0FC08F92 */ jal sub_GAME_7F023E48 +/* 066C9C 7F03216C 02002025 */ move $a0, $s0 +/* 066CA0 7F032170 100000F1 */ b .L7F032538 +/* 066CA4 7F032174 8FBF0024 */ lw $ra, 0x24($sp) +/* 066CA8 7F032178 8219005C */ lb $t9, 0x5c($s0) +.L7F03217C: +/* 066CAC 7F03217C 24010006 */ li $at, 6 +/* 066CB0 7F032180 02002025 */ move $a0, $s0 +/* 066CB4 7F032184 17210024 */ bne $t9, $at, .L7F032218 +/* 066CB8 7F032188 27A50058 */ addiu $a1, $sp, 0x58 +/* 066CBC 7F03218C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 066CC0 7F032190 27A60054 */ addiu $a2, $sp, 0x54 +/* 066CC4 7F032194 8FA90074 */ lw $t1, 0x74($sp) +/* 066CC8 7F032198 8FA80078 */ lw $t0, 0x78($sp) +/* 066CCC 7F03219C 55200012 */ bnezl $t1, .L7F0321E8 +/* 066CD0 7F0321A0 260C005C */ addiu $t4, $s0, 0x5c +/* 066CD4 7F0321A4 910A0001 */ lbu $t2, 1($t0) +/* 066CD8 7F0321A8 02002025 */ move $a0, $s0 +/* 066CDC 7F0321AC 27A50058 */ addiu $a1, $sp, 0x58 +/* 066CE0 7F0321B0 314B0002 */ andi $t3, $t2, 2 +/* 066CE4 7F0321B4 15600005 */ bnez $t3, .L7F0321CC +/* 066CE8 7F0321B8 00000000 */ nop +/* 066CEC 7F0321BC 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 066CF0 7F0321C0 8FA60054 */ lw $a2, 0x54($sp) +/* 066CF4 7F0321C4 54400008 */ bnezl $v0, .L7F0321E8 +/* 066CF8 7F0321C8 260C005C */ addiu $t4, $s0, 0x5c +.L7F0321CC: +/* 066CFC 7F0321CC 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 066D00 7F0321D0 02002025 */ move $a0, $s0 +/* 066D04 7F0321D4 3C0D8005 */ lui $t5, %hi(global_timer) +/* 066D08 7F0321D8 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 066D0C 7F0321DC 100000D5 */ b .L7F032534 +/* 066D10 7F0321E0 AE0D009C */ sw $t5, 0x9c($s0) +/* 066D14 7F0321E4 260C005C */ addiu $t4, $s0, 0x5c +.L7F0321E8: +/* 066D18 7F0321E8 AFAC0034 */ sw $t4, 0x34($sp) +/* 066D1C 7F0321EC 0FC09FEA */ jal sub_GAME_7F027FA8 +/* 066D20 7F0321F0 02002025 */ move $a0, $s0 +/* 066D24 7F0321F4 8FAE0054 */ lw $t6, 0x54($sp) +/* 066D28 7F0321F8 44060000 */ mfc1 $a2, $f0 +/* 066D2C 7F0321FC 02002025 */ move $a0, $s0 +/* 066D30 7F032200 8FA50034 */ lw $a1, 0x34($sp) +/* 066D34 7F032204 27A70058 */ addiu $a3, $sp, 0x58 +/* 066D38 7F032208 0FC0A180 */ jal sub_GAME_7F028600 +/* 066D3C 7F03220C AFAE0010 */ sw $t6, 0x10($sp) +/* 066D40 7F032210 100000C9 */ b .L7F032538 +/* 066D44 7F032214 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032218: +/* 066D48 7F032218 920F0058 */ lbu $t7, 0x58($s0) +/* 066D4C 7F03221C 8FA50078 */ lw $a1, 0x78($sp) +/* 066D50 7F032220 00001825 */ move $v1, $zero +/* 066D54 7F032224 000FC080 */ sll $t8, $t7, 2 +/* 066D58 7F032228 0218C821 */ addu $t9, $s0, $t8 +/* 066D5C 7F03222C 8F220040 */ lw $v0, 0x40($t9) +/* 066D60 7F032230 260400BC */ addiu $a0, $s0, 0xbc +/* 066D64 7F032234 2606002C */ addiu $a2, $s0, 0x2c +/* 066D68 7F032238 10400015 */ beqz $v0, .L7F032290 +/* 066D6C 7F03223C 24A50008 */ addiu $a1, $a1, 8 +/* 066D70 7F032240 8C490000 */ lw $t1, ($v0) +/* 066D74 7F032244 8FA50078 */ lw $a1, 0x78($sp) +/* 066D78 7F032248 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 066D7C 7F03224C 00094080 */ sll $t0, $t1, 2 +/* 066D80 7F032250 01094023 */ subu $t0, $t0, $t1 +/* 066D84 7F032254 00084080 */ sll $t0, $t0, 2 +/* 066D88 7F032258 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 066D8C 7F03225C 01094023 */ subu $t0, $t0, $t1 +/* 066D90 7F032260 00084080 */ sll $t0, $t0, 2 +/* 066D94 7F032264 24A50008 */ addiu $a1, $a1, 8 +/* 066D98 7F032268 AFA5002C */ sw $a1, 0x2c($sp) +/* 066D9C 7F03226C AFA0004C */ sw $zero, 0x4c($sp) +/* 066DA0 7F032270 260400BC */ addiu $a0, $s0, 0xbc +/* 066DA4 7F032274 3C0741F0 */ lui $a3, 0x41f0 +/* 066DA8 7F032278 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 066DAC 7F03227C 010A3021 */ addu $a2, $t0, $t2 +/* 066DB0 7F032280 1040000D */ beqz $v0, .L7F0322B8 +/* 066DB4 7F032284 8FA3004C */ lw $v1, 0x4c($sp) +/* 066DB8 7F032288 1000000B */ b .L7F0322B8 +/* 066DBC 7F03228C 24030001 */ li $v1, 1 +.L7F032290: +/* 066DC0 7F032290 3C0741F0 */ lui $a3, 0x41f0 +/* 066DC4 7F032294 AFA3004C */ sw $v1, 0x4c($sp) +/* 066DC8 7F032298 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 066DCC 7F03229C AFA5002C */ sw $a1, 0x2c($sp) +/* 066DD0 7F0322A0 10400005 */ beqz $v0, .L7F0322B8 +/* 066DD4 7F0322A4 8FA3004C */ lw $v1, 0x4c($sp) +/* 066DD8 7F0322A8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 066DDC 7F0322AC 02002025 */ move $a0, $s0 +/* 066DE0 7F0322B0 100000A1 */ b .L7F032538 +/* 066DE4 7F0322B4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0322B8: +/* 066DE8 7F0322B8 260B005C */ addiu $t3, $s0, 0x5c +/* 066DEC 7F0322BC 10600003 */ beqz $v1, .L7F0322CC +/* 066DF0 7F0322C0 AFAB0034 */ sw $t3, 0x34($sp) +/* 066DF4 7F0322C4 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066DF8 7F0322C8 02002025 */ move $a0, $s0 +.L7F0322CC: +/* 066DFC 7F0322CC 8E0D0084 */ lw $t5, 0x84($s0) +/* 066E00 7F0322D0 2401000A */ li $at, 10 +/* 066E04 7F0322D4 01A1001A */ div $zero, $t5, $at +/* 066E08 7F0322D8 00006010 */ mfhi $t4 +/* 066E0C 7F0322DC 24010005 */ li $at, 5 +/* 066E10 7F0322E0 5581003F */ bnel $t4, $at, .L7F0323E0 +/* 066E14 7F0322E4 8E190084 */ lw $t9, 0x84($s0) +/* 066E18 7F0322E8 92030058 */ lbu $v1, 0x58($s0) +/* 066E1C 7F0322EC 00037080 */ sll $t6, $v1, 2 +/* 066E20 7F0322F0 020E7821 */ addu $t7, $s0, $t6 +/* 066E24 7F0322F4 8DE20040 */ lw $v0, 0x40($t7) +/* 066E28 7F0322F8 0003C080 */ sll $t8, $v1, 2 +/* 066E2C 7F0322FC 02182021 */ addu $a0, $s0, $t8 +/* 066E30 7F032300 50400037 */ beql $v0, $zero, .L7F0323E0 +/* 066E34 7F032304 8E190084 */ lw $t9, 0x84($s0) +/* 066E38 7F032308 8C820044 */ lw $v0, 0x44($a0) +/* 066E3C 7F03230C 240E0010 */ li $t6, 16 +/* 066E40 7F032310 50400033 */ beql $v0, $zero, .L7F0323E0 +/* 066E44 7F032314 8E190084 */ lw $t9, 0x84($s0) +/* 066E48 7F032318 8C820048 */ lw $v0, 0x48($a0) +/* 066E4C 7F03231C 260B002C */ addiu $t3, $s0, 0x2c +/* 066E50 7F032320 02002025 */ move $a0, $s0 +/* 066E54 7F032324 5040000F */ beql $v0, $zero, .L7F032364 +/* 066E58 7F032328 AFAB0080 */ sw $t3, 0x80($sp) +/* 066E5C 7F03232C 8C590000 */ lw $t9, ($v0) +/* 066E60 7F032330 3C088007 */ lui $t0, %hi(ptr_0xxxpresets) +/* 066E64 7F032334 8D085D18 */ lw $t0, %lo(ptr_0xxxpresets)($t0) +/* 066E68 7F032338 00194880 */ sll $t1, $t9, 2 +/* 066E6C 7F03233C 01394823 */ subu $t1, $t1, $t9 +/* 066E70 7F032340 00094880 */ sll $t1, $t1, 2 +/* 066E74 7F032344 01394823 */ subu $t1, $t1, $t9 +/* 066E78 7F032348 00094880 */ sll $t1, $t1, 2 +/* 066E7C 7F03234C 01281821 */ addu $v1, $t1, $t0 +/* 066E80 7F032350 AFA30080 */ sw $v1, 0x80($sp) +/* 066E84 7F032354 8C6A0028 */ lw $t2, 0x28($v1) +/* 066E88 7F032358 10000004 */ b .L7F03236C +/* 066E8C 7F03235C AFAA007C */ sw $t2, 0x7c($sp) +/* 066E90 7F032360 AFAB0080 */ sw $t3, 0x80($sp) +.L7F032364: +/* 066E94 7F032364 8E060038 */ lw $a2, 0x38($s0) +/* 066E98 7F032368 AFA6007C */ sw $a2, 0x7c($sp) +.L7F03236C: +/* 066E9C 7F03236C 8FAD0078 */ lw $t5, 0x78($sp) +/* 066EA0 7F032370 8FAC007C */ lw $t4, 0x7c($sp) +/* 066EA4 7F032374 8FA5002C */ lw $a1, 0x2c($sp) +/* 066EA8 7F032378 8DA60014 */ lw $a2, 0x14($t5) +/* 066EAC 7F03237C AFAE0014 */ sw $t6, 0x14($sp) +/* 066EB0 7F032380 8FA70080 */ lw $a3, 0x80($sp) +/* 066EB4 7F032384 0FC0C04A */ jal sub_GAME_7F030128 +/* 066EB8 7F032388 AFAC0010 */ sw $t4, 0x10($sp) +/* 066EBC 7F03238C 10400013 */ beqz $v0, .L7F0323DC +/* 066EC0 7F032390 3C018005 */ lui $at, %hi(D_80052068) +/* 066EC4 7F032394 C6040024 */ lwc1 $f4, 0x24($s0) +/* 066EC8 7F032398 C4262068 */ lwc1 $f6, %lo(D_80052068)($at) +/* 066ECC 7F03239C 8FAF0078 */ lw $t7, 0x78($sp) +/* 066ED0 7F0323A0 24180010 */ li $t8, 16 +/* 066ED4 7F0323A4 46062202 */ mul.s $f8, $f4, $f6 +/* 066ED8 7F0323A8 8DE60014 */ lw $a2, 0x14($t7) +/* 066EDC 7F0323AC AFB80014 */ sw $t8, 0x14($sp) +/* 066EE0 7F0323B0 02002025 */ move $a0, $s0 +/* 066EE4 7F0323B4 8FA5002C */ lw $a1, 0x2c($sp) +/* 066EE8 7F0323B8 8FA70080 */ lw $a3, 0x80($sp) +/* 066EEC 7F0323BC 0FC0C07F */ jal sub_GAME_7F0301FC +/* 066EF0 7F0323C0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 066EF4 7F0323C4 50400006 */ beql $v0, $zero, .L7F0323E0 +/* 066EF8 7F0323C8 8E190084 */ lw $t9, 0x84($s0) +/* 066EFC 7F0323CC 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066F00 7F0323D0 02002025 */ move $a0, $s0 +/* 066F04 7F0323D4 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066F08 7F0323D8 02002025 */ move $a0, $s0 +.L7F0323DC: +/* 066F0C 7F0323DC 8E190084 */ lw $t9, 0x84($s0) +.L7F0323E0: +/* 066F10 7F0323E0 2401000A */ li $at, 10 +/* 066F14 7F0323E4 0321001A */ div $zero, $t9, $at +/* 066F18 7F0323E8 00004810 */ mfhi $t1 +/* 066F1C 7F0323EC 55200039 */ bnezl $t1, .L7F0324D4 +/* 066F20 7F0323F0 920C0058 */ lbu $t4, 0x58($s0) +/* 066F24 7F0323F4 92030058 */ lbu $v1, 0x58($s0) +/* 066F28 7F0323F8 02002025 */ move $a0, $s0 +/* 066F2C 7F0323FC 00034080 */ sll $t0, $v1, 2 +/* 066F30 7F032400 02085021 */ addu $t2, $s0, $t0 +/* 066F34 7F032404 8D420040 */ lw $v0, 0x40($t2) +/* 066F38 7F032408 00035880 */ sll $t3, $v1, 2 +/* 066F3C 7F03240C 020B6821 */ addu $t5, $s0, $t3 +/* 066F40 7F032410 1040002F */ beqz $v0, .L7F0324D0 +/* 066F44 7F032414 240A0010 */ li $t2, 16 +/* 066F48 7F032418 8DA20044 */ lw $v0, 0x44($t5) +/* 066F4C 7F03241C 2619002C */ addiu $t9, $s0, 0x2c +/* 066F50 7F032420 5040000F */ beql $v0, $zero, .L7F032460 +/* 066F54 7F032424 AFB90080 */ sw $t9, 0x80($sp) +/* 066F58 7F032428 8C4C0000 */ lw $t4, ($v0) +/* 066F5C 7F03242C 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 066F60 7F032430 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 066F64 7F032434 000C7080 */ sll $t6, $t4, 2 +/* 066F68 7F032438 01CC7023 */ subu $t6, $t6, $t4 +/* 066F6C 7F03243C 000E7080 */ sll $t6, $t6, 2 +/* 066F70 7F032440 01CC7023 */ subu $t6, $t6, $t4 +/* 066F74 7F032444 000E7080 */ sll $t6, $t6, 2 +/* 066F78 7F032448 01CF1821 */ addu $v1, $t6, $t7 +/* 066F7C 7F03244C AFA30080 */ sw $v1, 0x80($sp) +/* 066F80 7F032450 8C780028 */ lw $t8, 0x28($v1) +/* 066F84 7F032454 10000004 */ b .L7F032468 +/* 066F88 7F032458 AFB8007C */ sw $t8, 0x7c($sp) +/* 066F8C 7F03245C AFB90080 */ sw $t9, 0x80($sp) +.L7F032460: +/* 066F90 7F032460 8E060038 */ lw $a2, 0x38($s0) +/* 066F94 7F032464 AFA6007C */ sw $a2, 0x7c($sp) +.L7F032468: +/* 066F98 7F032468 8FA90078 */ lw $t1, 0x78($sp) +/* 066F9C 7F03246C 8FA8007C */ lw $t0, 0x7c($sp) +/* 066FA0 7F032470 8FA5002C */ lw $a1, 0x2c($sp) +/* 066FA4 7F032474 8D260014 */ lw $a2, 0x14($t1) +/* 066FA8 7F032478 AFAA0014 */ sw $t2, 0x14($sp) +/* 066FAC 7F03247C 8FA70080 */ lw $a3, 0x80($sp) +/* 066FB0 7F032480 0FC0C04A */ jal sub_GAME_7F030128 +/* 066FB4 7F032484 AFA80010 */ sw $t0, 0x10($sp) +/* 066FB8 7F032488 10400011 */ beqz $v0, .L7F0324D0 +/* 066FBC 7F03248C 3C018005 */ lui $at, %hi(D_8005206C) +/* 066FC0 7F032490 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 066FC4 7F032494 C430206C */ lwc1 $f16, %lo(D_8005206C)($at) +/* 066FC8 7F032498 8FAB0078 */ lw $t3, 0x78($sp) +/* 066FCC 7F03249C 240D0010 */ li $t5, 16 +/* 066FD0 7F0324A0 46105482 */ mul.s $f18, $f10, $f16 +/* 066FD4 7F0324A4 8D660014 */ lw $a2, 0x14($t3) +/* 066FD8 7F0324A8 AFAD0014 */ sw $t5, 0x14($sp) +/* 066FDC 7F0324AC 02002025 */ move $a0, $s0 +/* 066FE0 7F0324B0 8FA5002C */ lw $a1, 0x2c($sp) +/* 066FE4 7F0324B4 8FA70080 */ lw $a3, 0x80($sp) +/* 066FE8 7F0324B8 0FC0C07F */ jal sub_GAME_7F0301FC +/* 066FEC 7F0324BC E7B20010 */ swc1 $f18, 0x10($sp) +/* 066FF0 7F0324C0 50400004 */ beql $v0, $zero, .L7F0324D4 +/* 066FF4 7F0324C4 920C0058 */ lbu $t4, 0x58($s0) +/* 066FF8 7F0324C8 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066FFC 7F0324CC 02002025 */ move $a0, $s0 +.L7F0324D0: +/* 067000 7F0324D0 920C0058 */ lbu $t4, 0x58($s0) +.L7F0324D4: +/* 067004 7F0324D4 2608002C */ addiu $t0, $s0, 0x2c +/* 067008 7F0324D8 02002025 */ move $a0, $s0 +/* 06700C 7F0324DC 000C7080 */ sll $t6, $t4, 2 +/* 067010 7F0324E0 020E7821 */ addu $t7, $s0, $t6 +/* 067014 7F0324E4 8DE20040 */ lw $v0, 0x40($t7) +/* 067018 7F0324E8 5040000E */ beql $v0, $zero, .L7F032524 +/* 06701C 7F0324EC AFA80080 */ sw $t0, 0x80($sp) +/* 067020 7F0324F0 8C580000 */ lw $t8, ($v0) +/* 067024 7F0324F4 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 067028 7F0324F8 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 06702C 7F0324FC 0018C880 */ sll $t9, $t8, 2 +/* 067030 7F032500 0338C823 */ subu $t9, $t9, $t8 +/* 067034 7F032504 0019C880 */ sll $t9, $t9, 2 +/* 067038 7F032508 0338C823 */ subu $t9, $t9, $t8 +/* 06703C 7F03250C 0019C880 */ sll $t9, $t9, 2 +/* 067040 7F032510 03291821 */ addu $v1, $t9, $t1 +/* 067044 7F032514 AFA30080 */ sw $v1, 0x80($sp) +/* 067048 7F032518 10000003 */ b .L7F032528 +/* 06704C 7F03251C 8C660028 */ lw $a2, 0x28($v1) +/* 067050 7F032520 AFA80080 */ sw $t0, 0x80($sp) +.L7F032524: +/* 067054 7F032524 8E060038 */ lw $a2, 0x38($s0) +.L7F032528: +/* 067058 7F032528 8FA50080 */ lw $a1, 0x80($sp) +/* 06705C 7F03252C 0FC0C569 */ jal sub_GAME_7F0315A4 +/* 067060 7F032530 8FA70034 */ lw $a3, 0x34($sp) +.L7F032534: +/* 067064 7F032534 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032538: +/* 067068 7F032538 8FB00020 */ lw $s0, 0x20($sp) +/* 06706C 7F03253C 27BD0088 */ addiu $sp, $sp, 0x88 +/* 067070 7F032540 03E00008 */ jr $ra +/* 067074 7F032544 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032548(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032548 +/* 067078 7F032548 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 06707C 7F03254C AFBF0024 */ sw $ra, 0x24($sp) +/* 067080 7F032550 AFB10020 */ sw $s1, 0x20($sp) +/* 067084 7F032554 AFB0001C */ sw $s0, 0x1c($sp) +/* 067088 7F032558 8C8E0018 */ lw $t6, 0x18($a0) +/* 06708C 7F03255C 00808025 */ move $s0, $a0 +/* 067090 7F032560 0FC0A11D */ jal sub_GAME_7F028474 +/* 067094 7F032564 AFAE003C */ sw $t6, 0x3c($sp) +/* 067098 7F032568 AFA00034 */ sw $zero, 0x34($sp) +/* 06709C 7F03256C 8E0F0060 */ lw $t7, 0x60($s0) +/* 0670A0 7F032570 82080038 */ lb $t0, 0x38($s0) +/* 0670A4 7F032574 3C198005 */ lui $t9, %hi(global_timer) +/* 0670A8 7F032578 25F80001 */ addiu $t8, $t7, 1 +/* 0670AC 7F03257C AE180060 */ sw $t8, 0x60($s0) +/* 0670B0 7F032580 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 0670B4 7F032584 24010006 */ li $at, 6 +/* 0670B8 7F032588 00408825 */ move $s1, $v0 +/* 0670BC 7F03258C 11010012 */ beq $t0, $at, .L7F0325D8 +/* 0670C0 7F032590 AE1900C8 */ sw $t9, 0xc8($s0) +/* 0670C4 7F032594 8E0A0078 */ lw $t2, 0x78($s0) +/* 0670C8 7F032598 3C098005 */ lui $t1, %hi(global_timer) +/* 0670CC 7F03259C 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 0670D0 7F0325A0 254B00B4 */ addiu $t3, $t2, 0xb4 +/* 0670D4 7F0325A4 02002025 */ move $a0, $s0 +/* 0670D8 7F0325A8 0169082A */ slt $at, $t3, $t1 +/* 0670DC 7F0325AC 5020000B */ beql $at, $zero, .L7F0325DC +/* 0670E0 7F0325B0 820D0038 */ lb $t5, 0x38($s0) +/* 0670E4 7F0325B4 0FC09F9C */ jal sub_GAME_7F027E70 +/* 0670E8 7F0325B8 00402825 */ move $a1, $v0 +/* 0670EC 7F0325BC 10400006 */ beqz $v0, .L7F0325D8 +/* 0670F0 7F0325C0 240C0001 */ li $t4, 1 +/* 0670F4 7F0325C4 AFAC0034 */ sw $t4, 0x34($sp) +/* 0670F8 7F0325C8 02002025 */ move $a0, $s0 +/* 0670FC 7F0325CC 26050038 */ addiu $a1, $s0, 0x38 +/* 067100 7F0325D0 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 067104 7F0325D4 02203025 */ move $a2, $s1 +.L7F0325D8: +/* 067108 7F0325D8 820D0038 */ lb $t5, 0x38($s0) +.L7F0325DC: +/* 06710C 7F0325DC 24010006 */ li $at, 6 +/* 067110 7F0325E0 26090038 */ addiu $t1, $s0, 0x38 +/* 067114 7F0325E4 15A1001E */ bne $t5, $at, .L7F032660 +/* 067118 7F0325E8 260400BC */ addiu $a0, $s0, 0xbc +/* 06711C 7F0325EC 8FAE0034 */ lw $t6, 0x34($sp) +/* 067120 7F0325F0 8FAF003C */ lw $t7, 0x3c($sp) +/* 067124 7F0325F4 55C00011 */ bnezl $t6, .L7F03263C +/* 067128 7F0325F8 8E2A0028 */ lw $t2, 0x28($s1) +/* 06712C 7F0325FC 91F80001 */ lbu $t8, 1($t7) +/* 067130 7F032600 02002025 */ move $a0, $s0 +/* 067134 7F032604 33190002 */ andi $t9, $t8, 2 +/* 067138 7F032608 17200004 */ bnez $t9, .L7F03261C +/* 06713C 7F03260C 00000000 */ nop +/* 067140 7F032610 0FC09F9C */ jal sub_GAME_7F027E70 +/* 067144 7F032614 02202825 */ move $a1, $s1 +/* 067148 7F032618 14400007 */ bnez $v0, .L7F032638 +.L7F03261C: +/* 06714C 7F03261C 3C088005 */ lui $t0, %hi(global_timer) +/* 067150 7F032620 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 067154 7F032624 02002025 */ move $a0, $s0 +/* 067158 7F032628 0FC0A125 */ jal sub_GAME_7F028494 +/* 06715C 7F03262C AE080078 */ sw $t0, 0x78($s0) +/* 067160 7F032630 1000001E */ b .L7F0326AC +/* 067164 7F032634 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032638: +/* 067168 7F032638 8E2A0028 */ lw $t2, 0x28($s1) +.L7F03263C: +/* 06716C 7F03263C 3C068003 */ lui $a2, %hi(D_80030984) +/* 067170 7F032640 8CC60984 */ lw $a2, %lo(D_80030984)($a2) +/* 067174 7F032644 02002025 */ move $a0, $s0 +/* 067178 7F032648 26050038 */ addiu $a1, $s0, 0x38 +/* 06717C 7F03264C 02203825 */ move $a3, $s1 +/* 067180 7F032650 0FC0A180 */ jal sub_GAME_7F028600 +/* 067184 7F032654 AFAA0010 */ sw $t2, 0x10($sp) +/* 067188 7F032658 10000014 */ b .L7F0326AC +/* 06718C 7F03265C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032660: +/* 067190 7F032660 8FA5003C */ lw $a1, 0x3c($sp) +/* 067194 7F032664 AFA9002C */ sw $t1, 0x2c($sp) +/* 067198 7F032668 02203025 */ move $a2, $s1 +/* 06719C 7F03266C 3C0741F0 */ lui $a3, 0x41f0 +/* 0671A0 7F032670 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 0671A4 7F032674 24A50008 */ addiu $a1, $a1, 8 +/* 0671A8 7F032678 50400007 */ beql $v0, $zero, .L7F032698 +/* 0671AC 7F03267C 02002025 */ move $a0, $s0 +/* 0671B0 7F032680 0FC0A137 */ jal sub_GAME_7F0284DC +/* 0671B4 7F032684 02002025 */ move $a0, $s0 +/* 0671B8 7F032688 0FC0A11D */ jal sub_GAME_7F028474 +/* 0671BC 7F03268C 02002025 */ move $a0, $s0 +/* 0671C0 7F032690 00408825 */ move $s1, $v0 +/* 0671C4 7F032694 02002025 */ move $a0, $s0 +.L7F032698: +/* 0671C8 7F032698 02202825 */ move $a1, $s1 +/* 0671CC 7F03269C 8E260028 */ lw $a2, 0x28($s1) +/* 0671D0 7F0326A0 0FC0C569 */ jal sub_GAME_7F0315A4 +/* 0671D4 7F0326A4 8FA7002C */ lw $a3, 0x2c($sp) +/* 0671D8 7F0326A8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0326AC: +/* 0671DC 7F0326AC 8FB0001C */ lw $s0, 0x1c($sp) +/* 0671E0 7F0326B0 8FB10020 */ lw $s1, 0x20($sp) +/* 0671E4 7F0326B4 03E00008 */ jr $ra +/* 0671E8 7F0326B8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void manage_actions(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_80052070 + .word .L7F032788 + .word .L7F032798 + .word .L7F0327A8 + .word .L7F0327B8 + .word .L7F032808 + .word .L7F0327C8 + .word .L7F0327D8 + .word .L7F032818 + .word .L7F032828 + .word .L7F032838 + .word .L7F0327E8 + .word .L7F0327F8 + .word .L7F032848 + .word .L7F032858 + .word .L7F032868 + .word .L7F032878 + .word def_7F032780 + .word .L7F032898 + .word .L7F0328A8 + .word .L7F0328B8 + .word def_7F032780 + .word .L7F032888 + .word .L7F0328C8 + .word .L7F0328D8 +.text +glabel manage_actions +/* 0671EC 7F0326BC 3C028005 */ lui $v0, %hi(clock_timer) +/* 0671F0 7F0326C0 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0671F4 7F0326C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0671F8 7F0326C8 AFB00018 */ sw $s0, 0x18($sp) +/* 0671FC 7F0326CC 00808025 */ move $s0, $a0 +/* 067200 7F0326D0 1840008D */ blez $v0, .L7F032908 +/* 067204 7F0326D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 067208 7F0326D8 808E0007 */ lb $t6, 7($a0) +/* 06720C 7F0326DC 55C0000A */ bnezl $t6, .L7F032708 +/* 067210 7F0326E0 96190012 */ lhu $t9, 0x12($s0) +/* 067214 7F0326E4 8C8F0014 */ lw $t7, 0x14($a0) +/* 067218 7F0326E8 24050000 */ li $a1, 0 +/* 06721C 7F0326EC 35F80001 */ ori $t8, $t7, 1 +/* 067220 7F0326F0 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 067224 7F0326F4 AC980014 */ sw $t8, 0x14($a0) +/* 067228 7F0326F8 A2000008 */ sb $zero, 8($s0) +/* 06722C 7F0326FC 3C028005 */ lui $v0, %hi(clock_timer) +/* 067230 7F032700 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 067234 7F032704 96190012 */ lhu $t9, 0x12($s0) +.L7F032708: +/* 067238 7F032708 02002025 */ move $a0, $s0 +/* 06723C 7F03270C 24050003 */ li $a1, 3 +/* 067240 7F032710 33280040 */ andi $t0, $t9, 0x40 +/* 067244 7F032714 51000007 */ beql $t0, $zero, .L7F032734 +/* 067248 7F032718 820B0008 */ lb $t3, 8($s0) +/* 06724C 7F03271C 8E090110 */ lw $t1, 0x110($s0) +/* 067250 7F032720 01225021 */ addu $t2, $t1, $v0 +/* 067254 7F032724 AE0A0110 */ sw $t2, 0x110($s0) +/* 067258 7F032728 3C028005 */ lui $v0, %hi(clock_timer) +/* 06725C 7F03272C 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 067260 7F032730 820B0008 */ lb $t3, 8($s0) +.L7F032734: +/* 067264 7F032734 01626023 */ subu $t4, $t3, $v0 +/* 067268 7F032738 A20C0008 */ sb $t4, 8($s0) +/* 06726C 7F03273C 820D0008 */ lb $t5, 8($s0) +/* 067270 7F032740 05A00005 */ bltz $t5, .L7F032758 +/* 067274 7F032744 00000000 */ nop +/* 067278 7F032748 8E0E0014 */ lw $t6, 0x14($s0) +/* 06727C 7F03274C 000E7B40 */ sll $t7, $t6, 0xd +/* 067280 7F032750 05E3006E */ bgezl $t7, .L7F03290C +/* 067284 7F032754 8FBF001C */ lw $ra, 0x1c($sp) +.L7F032758: +/* 067288 7F032758 0FC0D521 */ jal parse_handle_actionblocks +/* 06728C 7F03275C A2000008 */ sb $zero, 8($s0) +/* 067290 7F032760 82180007 */ lb $t8, 7($s0) +/* 067294 7F032764 2719FFFF */ addiu $t9, $t8, -1 +/* 067298 7F032768 2F210018 */ sltiu $at, $t9, 0x18 +/* 06729C 7F03276C 1020005C */ beqz $at, .L7F0328E0 +/* 0672A0 7F032770 0019C880 */ sll $t9, $t9, 2 +/* 0672A4 7F032774 3C018005 */ lui $at, %hi(jpt_80052070) +/* 0672A8 7F032778 00390821 */ addu $at, $at, $t9 +/* 0672AC 7F03277C 8C392070 */ lw $t9, %lo(jpt_80052070)($at) +/* 0672B0 7F032780 03200008 */ jr $t9 +/* 0672B4 7F032784 00000000 */ nop +.L7F032788: +/* 0672B8 7F032788 0FC0AB66 */ jal sub_GAME_7F02AD98 +/* 0672BC 7F03278C 02002025 */ move $a0, $s0 +/* 0672C0 7F032790 10000054 */ b .L7F0328E4 +/* 0672C4 7F032794 8E080014 */ lw $t0, 0x14($s0) +.L7F032798: +/* 0672C8 7F032798 0FC0AD38 */ jal actor_reset_sleep +/* 0672CC 7F03279C 02002025 */ move $a0, $s0 +/* 0672D0 7F0327A0 10000050 */ b .L7F0328E4 +/* 0672D4 7F0327A4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327A8: +/* 0672D8 7F0327A8 0FC0AD3A */ jal sub_GAME_7F02B4E8 +/* 0672DC 7F0327AC 02002025 */ move $a0, $s0 +/* 0672E0 7F0327B0 1000004C */ b .L7F0328E4 +/* 0672E4 7F0327B4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327B8: +/* 0672E8 7F0327B8 0FC0AE69 */ jal guard_body_hit_sfx +/* 0672EC 7F0327BC 02002025 */ move $a0, $s0 +/* 0672F0 7F0327C0 10000048 */ b .L7F0328E4 +/* 0672F4 7F0327C4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327C8: +/* 0672F8 7F0327C8 0FC0AF20 */ jal sub_GAME_7F02BC80 +/* 0672FC 7F0327CC 02002025 */ move $a0, $s0 +/* 067300 7F0327D0 10000044 */ b .L7F0328E4 +/* 067304 7F0327D4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327D8: +/* 067308 7F0327D8 0FC0AF48 */ jal sub_GAME_7F02BD20 +/* 06730C 7F0327DC 02002025 */ move $a0, $s0 +/* 067310 7F0327E0 10000040 */ b .L7F0328E4 +/* 067314 7F0327E4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327E8: +/* 067318 7F0327E8 0FC0AF69 */ jal sub_GAME_7F02BDA4 +/* 06731C 7F0327EC 02002025 */ move $a0, $s0 +/* 067320 7F0327F0 1000003C */ b .L7F0328E4 +/* 067324 7F0327F4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327F8: +/* 067328 7F0327F8 0FC0AF80 */ jal sub_GAME_7F02BE00 +/* 06732C 7F0327FC 02002025 */ move $a0, $s0 +/* 067330 7F032800 10000038 */ b .L7F0328E4 +/* 067334 7F032804 8E080014 */ lw $t0, 0x14($s0) +.L7F032808: +/* 067338 7F032808 0FC0ADDD */ jal manage_guard_fade +/* 06733C 7F03280C 02002025 */ move $a0, $s0 +/* 067340 7F032810 10000034 */ b .L7F0328E4 +/* 067344 7F032814 8E080014 */ lw $t0, 0x14($s0) +.L7F032818: +/* 067348 7F032818 0FC0BAFF */ jal sub_GAME_7F02EBFC +/* 06734C 7F03281C 02002025 */ move $a0, $s0 +/* 067350 7F032820 10000030 */ b .L7F0328E4 +/* 067354 7F032824 8E080014 */ lw $t0, 0x14($s0) +.L7F032828: +/* 067358 7F032828 0FC0BE22 */ jal sub_GAME_7F02F888 +/* 06735C 7F03282C 02002025 */ move $a0, $s0 +/* 067360 7F032830 1000002C */ b .L7F0328E4 +/* 067364 7F032834 8E080014 */ lw $t0, 0x14($s0) +.L7F032838: +/* 067368 7F032838 0FC0BBB8 */ jal sub_GAME_7F02EEE0 +/* 06736C 7F03283C 02002025 */ move $a0, $s0 +/* 067370 7F032840 10000028 */ b .L7F0328E4 +/* 067374 7F032844 8E080014 */ lw $t0, 0x14($s0) +.L7F032848: +/* 067378 7F032848 0FC0BF9E */ jal sub_GAME_7F02FE78 +/* 06737C 7F03284C 02002025 */ move $a0, $s0 +/* 067380 7F032850 10000024 */ b .L7F0328E4 +/* 067384 7F032854 8E080014 */ lw $t0, 0x14($s0) +.L7F032858: +/* 067388 7F032858 0FC0C952 */ jal sub_GAME_7F032548 +/* 06738C 7F03285C 02002025 */ move $a0, $s0 +/* 067390 7F032860 10000020 */ b .L7F0328E4 +/* 067394 7F032864 8E080014 */ lw $t0, 0x14($s0) +.L7F032868: +/* 067398 7F032868 0FC0C822 */ jal sub_GAME_7F032088 +/* 06739C 7F03286C 02002025 */ move $a0, $s0 +/* 0673A0 7F032870 1000001C */ b .L7F0328E4 +/* 0673A4 7F032874 8E080014 */ lw $t0, 0x14($s0) +.L7F032878: +/* 0673A8 7F032878 0FC0AD8E */ jal sub_GAME_7F02B638 +/* 0673AC 7F03287C 02002025 */ move $a0, $s0 +/* 0673B0 7F032880 10000018 */ b .L7F0328E4 +/* 0673B4 7F032884 8E080014 */ lw $t0, 0x14($s0) +.L7F032888: +/* 0673B8 7F032888 0FC0AF96 */ jal sub_GAME_7F02BE58 +/* 0673BC 7F03288C 02002025 */ move $a0, $s0 +/* 0673C0 7F032890 10000014 */ b .L7F0328E4 +/* 0673C4 7F032894 8E080014 */ lw $t0, 0x14($s0) +.L7F032898: +/* 0673C8 7F032898 0FC0AFC9 */ jal sub_GAME_7F02BF24 +/* 0673CC 7F03289C 02002025 */ move $a0, $s0 +/* 0673D0 7F0328A0 10000010 */ b .L7F0328E4 +/* 0673D4 7F0328A4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328A8: +/* 0673D8 7F0328A8 0FC0AFAA */ jal sub_GAME_7F02BEA8 +/* 0673DC 7F0328AC 02002025 */ move $a0, $s0 +/* 0673E0 7F0328B0 1000000C */ b .L7F0328E4 +/* 0673E4 7F0328B4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328B8: +/* 0673E8 7F0328B8 0FC0BCFE */ jal sub_GAME_7F02F3F8 +/* 0673EC 7F0328BC 02002025 */ move $a0, $s0 +/* 0673F0 7F0328C0 10000008 */ b .L7F0328E4 +/* 0673F4 7F0328C4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328C8: +/* 0673F8 7F0328C8 0FC0BD69 */ jal sub_GAME_7F02F5A4 +/* 0673FC 7F0328CC 02002025 */ move $a0, $s0 +/* 067400 7F0328D0 10000004 */ b .L7F0328E4 +/* 067404 7F0328D4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328D8: +/* 067408 7F0328D8 0FC0BDA2 */ jal sub_GAME_7F02F688 +/* 06740C 7F0328DC 02002025 */ move $a0, $s0 +def_7F032780: +.L7F0328E0: +/* 067410 7F0328E0 8E080014 */ lw $t0, 0x14($s0) +.L7F0328E4: +/* 067414 7F0328E4 960A0012 */ lhu $t2, 0x12($s0) +/* 067418 7F0328E8 2402FFFF */ li $v0, -1 +/* 06741C 7F0328EC 2401FFFB */ li $at, -5 +/* 067420 7F0328F0 01014824 */ and $t1, $t0, $at +/* 067424 7F0328F4 314BFDFD */ andi $t3, $t2, 0xfdfd +/* 067428 7F0328F8 AE090014 */ sw $t1, 0x14($s0) +/* 06742C 7F0328FC A60B0012 */ sh $t3, 0x12($s0) +/* 067430 7F032900 A6020118 */ sh $v0, 0x118($s0) +/* 067434 7F032904 A602011A */ sh $v0, 0x11a($s0) +.L7F032908: +/* 067438 7F032908 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03290C: +/* 06743C 7F03290C 8FB00018 */ lw $s0, 0x18($sp) +/* 067440 7F032910 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067444 7F032914 03E00008 */ jr $ra +/* 067448 7F032918 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03291C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03291C +/* 06744C 7F03291C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 067450 7F032920 AFBF001C */ sw $ra, 0x1c($sp) +/* 067454 7F032924 0FC07D4C */ jal get_numguards +/* 067458 7F032928 AFB00018 */ sw $s0, 0x18($sp) +/* 06745C 7F03292C 3C0E8003 */ lui $t6, %hi(objectiveregisters3) +/* 067460 7F032930 8DCE0980 */ lw $t6, %lo(objectiveregisters3)($t6) +/* 067464 7F032934 00405825 */ move $t3, $v0 +/* 067468 7F032938 00001825 */ move $v1, $zero +/* 06746C 7F03293C 19C00010 */ blez $t6, .L7F032980 +/* 067470 7F032940 00008025 */ move $s0, $zero +.L7F032944: +/* 067474 7F032944 3C0F8003 */ lui $t7, %hi(objectiveregisters2) +/* 067478 7F032948 8DEF097C */ lw $t7, %lo(objectiveregisters2)($t7) +/* 06747C 7F03294C AFA30024 */ sw $v1, 0x24($sp) +/* 067480 7F032950 AFAB0020 */ sw $t3, 0x20($sp) +/* 067484 7F032954 0FC0C9AF */ jal manage_actions +/* 067488 7F032958 020F2021 */ addu $a0, $s0, $t7 +/* 06748C 7F03295C 8FA30024 */ lw $v1, 0x24($sp) +/* 067490 7F032960 3C188003 */ lui $t8, %hi(objectiveregisters3) +/* 067494 7F032964 8F180980 */ lw $t8, %lo(objectiveregisters3)($t8) +/* 067498 7F032968 24630001 */ addiu $v1, $v1, 1 +/* 06749C 7F03296C 261001DC */ addiu $s0, $s0, 0x1dc +/* 0674A0 7F032970 0078082A */ slt $at, $v1, $t8 +/* 0674A4 7F032974 1420FFF3 */ bnez $at, .L7F032944 +/* 0674A8 7F032978 8FAB0020 */ lw $t3, 0x20($sp) +/* 0674AC 7F03297C 00001825 */ move $v1, $zero +.L7F032980: +/* 0674B0 7F032980 3C048003 */ lui $a0, %hi(setting_007_5) +/* 0674B4 7F032984 2484CE50 */ addiu $a0, %lo(setting_007_5) # addiu $a0, $a0, -0x31b0 +/* 0674B8 7F032988 19600072 */ blez $t3, .L7F032B54 +/* 0674BC 7F03298C AC800000 */ sw $zero, ($a0) +/* 0674C0 7F032990 31620003 */ andi $v0, $t3, 3 +/* 0674C4 7F032994 1040001D */ beqz $v0, .L7F032A0C +/* 0674C8 7F032998 00403825 */ move $a3, $v0 +/* 0674CC 7F03299C 0003C900 */ sll $t9, $v1, 4 +/* 0674D0 7F0329A0 0323C823 */ subu $t9, $t9, $v1 +/* 0674D4 7F0329A4 3C0C8003 */ lui $t4, %hi(ptr_guard_data) +/* 0674D8 7F0329A8 8D8CCC64 */ lw $t4, %lo(ptr_guard_data)($t4) +/* 0674DC 7F0329AC 0019C8C0 */ sll $t9, $t9, 3 +/* 0674E0 7F0329B0 0323C823 */ subu $t9, $t9, $v1 +/* 0674E4 7F0329B4 0019C880 */ sll $t9, $t9, 2 +/* 0674E8 7F0329B8 3C068005 */ lui $a2, %hi(global_timer) +/* 0674EC 7F0329BC 24C6837C */ addiu $a2, %lo(global_timer) # addiu $a2, $a2, -0x7c84 +/* 0674F0 7F0329C0 032C2821 */ addu $a1, $t9, $t4 +.L7F0329C4: +/* 0674F4 7F0329C4 8CAD001C */ lw $t5, 0x1c($a1) +/* 0674F8 7F0329C8 24630001 */ addiu $v1, $v1, 1 +/* 0674FC 7F0329CC 11A0000C */ beqz $t5, .L7F032A00 +/* 067500 7F0329D0 00000000 */ nop +/* 067504 7F0329D4 8CA200D4 */ lw $v0, 0xd4($a1) +/* 067508 7F0329D8 18400009 */ blez $v0, .L7F032A00 +/* 06750C 7F0329DC 00000000 */ nop +/* 067510 7F0329E0 8CCE0000 */ lw $t6, ($a2) +/* 067514 7F0329E4 01C27823 */ subu $t7, $t6, $v0 +/* 067518 7F0329E8 29E10078 */ slti $at, $t7, 0x78 +/* 06751C 7F0329EC 10200004 */ beqz $at, .L7F032A00 +/* 067520 7F0329F0 00000000 */ nop +/* 067524 7F0329F4 8C980000 */ lw $t8, ($a0) +/* 067528 7F0329F8 27190001 */ addiu $t9, $t8, 1 +/* 06752C 7F0329FC AC990000 */ sw $t9, ($a0) +.L7F032A00: +/* 067530 7F032A00 14E3FFF0 */ bne $a3, $v1, .L7F0329C4 +/* 067534 7F032A04 24A501DC */ addiu $a1, $a1, 0x1dc +/* 067538 7F032A08 106B0052 */ beq $v1, $t3, .L7F032B54 +.L7F032A0C: +/* 06753C 7F032A0C 00038100 */ sll $s0, $v1, 4 +/* 067540 7F032A10 02038023 */ subu $s0, $s0, $v1 +/* 067544 7F032A14 3C0C8003 */ lui $t4, %hi(ptr_guard_data) +/* 067548 7F032A18 8D8CCC64 */ lw $t4, %lo(ptr_guard_data)($t4) +/* 06754C 7F032A1C 001080C0 */ sll $s0, $s0, 3 +/* 067550 7F032A20 02038023 */ subu $s0, $s0, $v1 +/* 067554 7F032A24 00108080 */ sll $s0, $s0, 2 +/* 067558 7F032A28 000B5100 */ sll $t2, $t3, 4 +/* 06755C 7F032A2C 014B5023 */ subu $t2, $t2, $t3 +/* 067560 7F032A30 020C2821 */ addu $a1, $s0, $t4 +/* 067564 7F032A34 000A50C0 */ sll $t2, $t2, 3 +/* 067568 7F032A38 014B5023 */ subu $t2, $t2, $t3 +/* 06756C 7F032A3C 3C068005 */ lui $a2, %hi(global_timer) +/* 067570 7F032A40 24C6837C */ addiu $a2, %lo(global_timer) # addiu $a2, $a2, -0x7c84 +/* 067574 7F032A44 000A5080 */ sll $t2, $t2, 2 +/* 067578 7F032A48 24A701DC */ addiu $a3, $a1, 0x1dc +/* 06757C 7F032A4C 24A803B8 */ addiu $t0, $a1, 0x3b8 +/* 067580 7F032A50 24A90594 */ addiu $t1, $a1, 0x594 +.L7F032A54: +/* 067584 7F032A54 8CAD001C */ lw $t5, 0x1c($a1) +/* 067588 7F032A58 26100770 */ addiu $s0, $s0, 0x770 +/* 06758C 7F032A5C 51A0000D */ beql $t5, $zero, .L7F032A94 +/* 067590 7F032A60 8CEC001C */ lw $t4, 0x1c($a3) +/* 067594 7F032A64 8CA200D4 */ lw $v0, 0xd4($a1) +/* 067598 7F032A68 5840000A */ blezl $v0, .L7F032A94 +/* 06759C 7F032A6C 8CEC001C */ lw $t4, 0x1c($a3) +/* 0675A0 7F032A70 8CCE0000 */ lw $t6, ($a2) +/* 0675A4 7F032A74 01C27823 */ subu $t7, $t6, $v0 +/* 0675A8 7F032A78 29E10078 */ slti $at, $t7, 0x78 +/* 0675AC 7F032A7C 50200005 */ beql $at, $zero, .L7F032A94 +/* 0675B0 7F032A80 8CEC001C */ lw $t4, 0x1c($a3) +/* 0675B4 7F032A84 8C980000 */ lw $t8, ($a0) +/* 0675B8 7F032A88 27190001 */ addiu $t9, $t8, 1 +/* 0675BC 7F032A8C AC990000 */ sw $t9, ($a0) +/* 0675C0 7F032A90 8CEC001C */ lw $t4, 0x1c($a3) +.L7F032A94: +/* 0675C4 7F032A94 00E01025 */ move $v0, $a3 +/* 0675C8 7F032A98 24E70770 */ addiu $a3, $a3, 0x770 +/* 0675CC 7F032A9C 1180000C */ beqz $t4, .L7F032AD0 +/* 0675D0 7F032AA0 24A50770 */ addiu $a1, $a1, 0x770 +/* 0675D4 7F032AA4 8C4300D4 */ lw $v1, 0xd4($v0) +/* 0675D8 7F032AA8 5860000A */ blezl $v1, .L7F032AD4 +/* 0675DC 7F032AAC 8D19001C */ lw $t9, 0x1c($t0) +/* 0675E0 7F032AB0 8CCD0000 */ lw $t5, ($a2) +/* 0675E4 7F032AB4 01A37023 */ subu $t6, $t5, $v1 +/* 0675E8 7F032AB8 29C10078 */ slti $at, $t6, 0x78 +/* 0675EC 7F032ABC 50200005 */ beql $at, $zero, .L7F032AD4 +/* 0675F0 7F032AC0 8D19001C */ lw $t9, 0x1c($t0) +/* 0675F4 7F032AC4 8C8F0000 */ lw $t7, ($a0) +/* 0675F8 7F032AC8 25F80001 */ addiu $t8, $t7, 1 +/* 0675FC 7F032ACC AC980000 */ sw $t8, ($a0) +.L7F032AD0: +/* 067600 7F032AD0 8D19001C */ lw $t9, 0x1c($t0) +.L7F032AD4: +/* 067604 7F032AD4 01001025 */ move $v0, $t0 +/* 067608 7F032AD8 25080770 */ addiu $t0, $t0, 0x770 +/* 06760C 7F032ADC 5320000D */ beql $t9, $zero, .L7F032B14 +/* 067610 7F032AE0 8D38001C */ lw $t8, 0x1c($t1) +/* 067614 7F032AE4 8C4300D4 */ lw $v1, 0xd4($v0) +/* 067618 7F032AE8 5860000A */ blezl $v1, .L7F032B14 +/* 06761C 7F032AEC 8D38001C */ lw $t8, 0x1c($t1) +/* 067620 7F032AF0 8CCC0000 */ lw $t4, ($a2) +/* 067624 7F032AF4 01836823 */ subu $t5, $t4, $v1 +/* 067628 7F032AF8 29A10078 */ slti $at, $t5, 0x78 +/* 06762C 7F032AFC 50200005 */ beql $at, $zero, .L7F032B14 +/* 067630 7F032B00 8D38001C */ lw $t8, 0x1c($t1) +/* 067634 7F032B04 8C8E0000 */ lw $t6, ($a0) +/* 067638 7F032B08 25CF0001 */ addiu $t7, $t6, 1 +/* 06763C 7F032B0C AC8F0000 */ sw $t7, ($a0) +/* 067640 7F032B10 8D38001C */ lw $t8, 0x1c($t1) +.L7F032B14: +/* 067644 7F032B14 01201025 */ move $v0, $t1 +/* 067648 7F032B18 1300000C */ beqz $t8, .L7F032B4C +/* 06764C 7F032B1C 00000000 */ nop +/* 067650 7F032B20 8C4300D4 */ lw $v1, 0xd4($v0) +/* 067654 7F032B24 18600009 */ blez $v1, .L7F032B4C +/* 067658 7F032B28 00000000 */ nop +/* 06765C 7F032B2C 8CD90000 */ lw $t9, ($a2) +/* 067660 7F032B30 03236023 */ subu $t4, $t9, $v1 +/* 067664 7F032B34 29810078 */ slti $at, $t4, 0x78 +/* 067668 7F032B38 10200004 */ beqz $at, .L7F032B4C +/* 06766C 7F032B3C 00000000 */ nop +/* 067670 7F032B40 8C8D0000 */ lw $t5, ($a0) +/* 067674 7F032B44 25AE0001 */ addiu $t6, $t5, 1 +/* 067678 7F032B48 AC8E0000 */ sw $t6, ($a0) +.L7F032B4C: +/* 06767C 7F032B4C 160AFFC1 */ bne $s0, $t2, .L7F032A54 +/* 067680 7F032B50 25290770 */ addiu $t1, $t1, 0x770 +.L7F032B54: +/* 067684 7F032B54 8FBF001C */ lw $ra, 0x1c($sp) +/* 067688 7F032B58 8FB00018 */ lw $s0, 0x18($sp) +/* 06768C 7F032B5C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 067690 7F032B60 03E00008 */ jr $ra +/* 067694 7F032B64 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032B68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032B68 +/* 067698 7F032B68 8C8200D4 */ lw $v0, 0xd4($a0) +/* 06769C 7F032B6C 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0676A0 7F032B70 58400009 */ blezl $v0, .L7F032B98 +/* 0676A4 7F032B74 00001025 */ move $v0, $zero +/* 0676A8 7F032B78 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0676AC 7F032B7C 01C27823 */ subu $t7, $t6, $v0 +/* 0676B0 7F032B80 29E10258 */ slti $at, $t7, 0x258 +/* 0676B4 7F032B84 50200004 */ beql $at, $zero, .L7F032B98 +/* 0676B8 7F032B88 00001025 */ move $v0, $zero +/* 0676BC 7F032B8C 03E00008 */ jr $ra +/* 0676C0 7F032B90 24020001 */ li $v0, 1 + +/* 0676C4 7F032B94 00001025 */ move $v0, $zero +.L7F032B98: +/* 0676C8 7F032B98 03E00008 */ jr $ra +/* 0676CC 7F032B9C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032BA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032BA0 +/* 0676D0 7F032BA0 8C8200F0 */ lw $v0, 0xf0($a0) +/* 0676D4 7F032BA4 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0676D8 7F032BA8 58400009 */ blezl $v0, .L7F032BD0 +/* 0676DC 7F032BAC 00001025 */ move $v0, $zero +/* 0676E0 7F032BB0 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0676E4 7F032BB4 01C27823 */ subu $t7, $t6, $v0 +/* 0676E8 7F032BB8 29E10258 */ slti $at, $t7, 0x258 +/* 0676EC 7F032BBC 50200004 */ beql $at, $zero, .L7F032BD0 +/* 0676F0 7F032BC0 00001025 */ move $v0, $zero +/* 0676F4 7F032BC4 03E00008 */ jr $ra +/* 0676F8 7F032BC8 24020001 */ li $v0, 1 + +/* 0676FC 7F032BCC 00001025 */ move $v0, $zero +.L7F032BD0: +/* 067700 7F032BD0 03E00008 */ jr $ra +/* 067704 7F032BD4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_actor_to_position(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel get_distance_actor_to_position +/* 067708 7F032BD8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06770C 7F032BDC AFBF0014 */ sw $ra, 0x14($sp) +/* 067710 7F032BE0 AFA40020 */ sw $a0, 0x20($sp) +/* 067714 7F032BE4 AFA50024 */ sw $a1, 0x24($sp) +/* 067718 7F032BE8 0FC1B320 */ jal getsubroty +/* 06771C 7F032BEC 8C84001C */ lw $a0, 0x1c($a0) +/* 067720 7F032BF0 8FAF0020 */ lw $t7, 0x20($sp) +/* 067724 7F032BF4 8FA30024 */ lw $v1, 0x24($sp) +/* 067728 7F032BF8 8DE20018 */ lw $v0, 0x18($t7) +/* 06772C 7F032BFC C4640000 */ lwc1 $f4, ($v1) +/* 067730 7F032C00 C4680008 */ lwc1 $f8, 8($v1) +/* 067734 7F032C04 C4460008 */ lwc1 $f6, 8($v0) +/* 067738 7F032C08 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 06773C 7F032C0C E7A00018 */ swc1 $f0, 0x18($sp) +/* 067740 7F032C10 46062301 */ sub.s $f12, $f4, $f6 +/* 067744 7F032C14 0FC16A8C */ jal atan2f +/* 067748 7F032C18 460A4381 */ sub.s $f14, $f8, $f10 +/* 06774C 7F032C1C C7A20018 */ lwc1 $f2, 0x18($sp) +/* 067750 7F032C20 8FBF0014 */ lw $ra, 0x14($sp) +/* 067754 7F032C24 3C018005 */ lui $at, %hi(D_800520D0) +/* 067758 7F032C28 4602003C */ c.lt.s $f0, $f2 +/* 06775C 7F032C2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067760 7F032C30 46020381 */ sub.s $f14, $f0, $f2 +/* 067764 7F032C34 45000003 */ bc1f .L7F032C44 +/* 067768 7F032C38 46007306 */ mov.s $f12, $f14 +/* 06776C 7F032C3C C43020D0 */ lwc1 $f16, %lo(D_800520D0)($at) +/* 067770 7F032C40 46107300 */ add.s $f12, $f14, $f16 +.L7F032C44: +/* 067774 7F032C44 03E00008 */ jr $ra +/* 067778 7F032C48 46006006 */ mov.s $f0, $f12 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032C4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032C4C +/* 06777C 7F032C4C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067780 7F032C50 AFBF0014 */ sw $ra, 0x14($sp) +/* 067784 7F032C54 0FC225E6 */ jal get_curplayer_positiondata +/* 067788 7F032C58 AFA40018 */ sw $a0, 0x18($sp) +/* 06778C 7F032C5C 8FA40018 */ lw $a0, 0x18($sp) +/* 067790 7F032C60 0FC0CAF6 */ jal get_distance_actor_to_position +/* 067794 7F032C64 24450008 */ addiu $a1, $v0, 8 +/* 067798 7F032C68 8FBF0014 */ lw $ra, 0x14($sp) +/* 06779C 7F032C6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0677A0 7F032C70 03E00008 */ jr $ra +/* 0677A4 7F032C74 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032C78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032C78 +/* 0677A8 7F032C78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0677AC 7F032C7C 30AE0004 */ andi $t6, $a1, 4 +/* 0677B0 7F032C80 AFBF0014 */ sw $ra, 0x14($sp) +/* 0677B4 7F032C84 11C00012 */ beqz $t6, .L7F032CD0 +/* 0677B8 7F032C88 AFA70024 */ sw $a3, 0x24($sp) +/* 0677BC 7F032C8C 00C02825 */ move $a1, $a2 +/* 0677C0 7F032C90 0FC0CC10 */ jal get_handle_for_guard_id +/* 0677C4 7F032C94 AFA40018 */ sw $a0, 0x18($sp) +/* 0677C8 7F032C98 8FA40018 */ lw $a0, 0x18($sp) +/* 0677CC 7F032C9C 10400004 */ beqz $v0, .L7F032CB0 +/* 0677D0 7F032CA0 00401825 */ move $v1, $v0 +/* 0677D4 7F032CA4 8C4F0018 */ lw $t7, 0x18($v0) +/* 0677D8 7F032CA8 55E00003 */ bnezl $t7, .L7F032CB8 +/* 0677DC 7F032CAC 8C980018 */ lw $t8, 0x18($a0) +.L7F032CB0: +/* 0677E0 7F032CB0 00801825 */ move $v1, $a0 +/* 0677E4 7F032CB4 8C980018 */ lw $t8, 0x18($a0) +.L7F032CB8: +/* 0677E8 7F032CB8 8FA80024 */ lw $t0, 0x24($sp) +/* 0677EC 7F032CBC 8F190014 */ lw $t9, 0x14($t8) +/* 0677F0 7F032CC0 AD190000 */ sw $t9, ($t0) +/* 0677F4 7F032CC4 8C620018 */ lw $v0, 0x18($v1) +/* 0677F8 7F032CC8 10000025 */ b .L7F032D60 +/* 0677FC 7F032CCC 24420008 */ addiu $v0, $v0, 8 +.L7F032CD0: +/* 067800 7F032CD0 30A90008 */ andi $t1, $a1, 8 +/* 067804 7F032CD4 1120001C */ beqz $t1, .L7F032D48 +/* 067808 7F032CD8 00000000 */ nop +/* 06780C 7F032CDC 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067810 7F032CE0 00C02825 */ move $a1, $a2 +/* 067814 7F032CE4 28412710 */ slti $at, $v0, 0x2710 +/* 067818 7F032CE8 1020000A */ beqz $at, .L7F032D14 +/* 06781C 7F032CEC 8FAF0024 */ lw $t7, 0x24($sp) +/* 067820 7F032CF0 00025080 */ sll $t2, $v0, 2 +/* 067824 7F032CF4 01425023 */ subu $t2, $t2, $v0 +/* 067828 7F032CF8 000A5080 */ sll $t2, $t2, 2 +/* 06782C 7F032CFC 3C0B8007 */ lui $t3, %hi(ptr_0xxxpresets) +/* 067830 7F032D00 8D6B5D18 */ lw $t3, %lo(ptr_0xxxpresets)($t3) +/* 067834 7F032D04 01425023 */ subu $t2, $t2, $v0 +/* 067838 7F032D08 000A5080 */ sll $t2, $t2, 2 +/* 06783C 7F032D0C 1000000A */ b .L7F032D38 +/* 067840 7F032D10 014B1821 */ addu $v1, $t2, $t3 +.L7F032D14: +/* 067844 7F032D14 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) +/* 067848 7F032D18 8DAD5D1C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 06784C 7F032D1C 00026100 */ sll $t4, $v0, 4 +/* 067850 7F032D20 01826021 */ addu $t4, $t4, $v0 +/* 067854 7F032D24 000C6080 */ sll $t4, $t4, 2 +/* 067858 7F032D28 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06785C 7F032D2C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067860 7F032D30 018D1821 */ addu $v1, $t4, $t5 +/* 067864 7F032D34 00611821 */ addu $v1, $v1, $at +.L7F032D38: +/* 067868 7F032D38 8C6E0028 */ lw $t6, 0x28($v1) +/* 06786C 7F032D3C 00601025 */ move $v0, $v1 +/* 067870 7F032D40 10000007 */ b .L7F032D60 +/* 067874 7F032D44 ADEE0000 */ sw $t6, ($t7) +.L7F032D48: +/* 067878 7F032D48 0FC225E6 */ jal get_curplayer_positiondata +/* 06787C 7F032D4C 00000000 */ nop +/* 067880 7F032D50 8C580014 */ lw $t8, 0x14($v0) +/* 067884 7F032D54 8FB90024 */ lw $t9, 0x24($sp) +/* 067888 7F032D58 24420008 */ addiu $v0, $v0, 8 +/* 06788C 7F032D5C AF380000 */ sw $t8, ($t9) +.L7F032D60: +/* 067890 7F032D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 067894 7F032D64 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067898 7F032D68 03E00008 */ jr $ra +/* 06789C 7F032D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_angle_between_actor_cur_player(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel get_angle_between_actor_cur_player +/* 0678A0 7F032D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0678A4 7F032D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 0678A8 7F032D78 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0678AC 7F032D7C AFA40020 */ sw $a0, 0x20($sp) +/* 0678B0 7F032D80 8FAE0020 */ lw $t6, 0x20($sp) +/* 0678B4 7F032D84 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0678B8 7F032D88 8DC30018 */ lw $v1, 0x18($t6) +/* 0678BC 7F032D8C 0FC225E6 */ jal get_curplayer_positiondata +/* 0678C0 7F032D90 AFA30018 */ sw $v1, 0x18($sp) +/* 0678C4 7F032D94 8FA30018 */ lw $v1, 0x18($sp) +/* 0678C8 7F032D98 C4460008 */ lwc1 $f6, 8($v0) +/* 0678CC 7F032D9C C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0678D0 7F032DA0 C4640008 */ lwc1 $f4, 8($v1) +/* 0678D4 7F032DA4 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0678D8 7F032DA8 46062301 */ sub.s $f12, $f4, $f6 +/* 0678DC 7F032DAC 0FC16A8C */ jal atan2f +/* 0678E0 7F032DB0 460A4381 */ sub.s $f14, $f8, $f10 +/* 0678E4 7F032DB4 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0678E8 7F032DB8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0678EC 7F032DBC 3C018005 */ lui $at, %hi(D_800520D4) +/* 0678F0 7F032DC0 460E003C */ c.lt.s $f0, $f14 +/* 0678F4 7F032DC4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0678F8 7F032DC8 460E0301 */ sub.s $f12, $f0, $f14 +/* 0678FC 7F032DCC 45000003 */ bc1f .L7F032DDC +/* 067900 7F032DD0 46006086 */ mov.s $f2, $f12 +/* 067904 7F032DD4 C43020D4 */ lwc1 $f16, %lo(D_800520D4)($at) +/* 067908 7F032DD8 46106080 */ add.s $f2, $f12, $f16 +.L7F032DDC: +/* 06790C 7F032DDC 03E00008 */ jr $ra +/* 067910 7F032DE0 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032DE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032DE4 +/* 067914 7F032DE4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067918 7F032DE8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06791C 7F032DEC 8C830018 */ lw $v1, 0x18($a0) +/* 067920 7F032DF0 0FC225E6 */ jal get_curplayer_positiondata +/* 067924 7F032DF4 AFA3001C */ sw $v1, 0x1c($sp) +/* 067928 7F032DF8 8FA3001C */ lw $v1, 0x1c($sp) +/* 06792C 7F032DFC C4440008 */ lwc1 $f4, 8($v0) +/* 067930 7F032E00 C448000C */ lwc1 $f8, 0xc($v0) +/* 067934 7F032E04 C4660008 */ lwc1 $f6, 8($v1) +/* 067938 7F032E08 C46A000C */ lwc1 $f10, 0xc($v1) +/* 06793C 7F032E0C C4500010 */ lwc1 $f16, 0x10($v0) +/* 067940 7F032E10 46062001 */ sub.s $f0, $f4, $f6 +/* 067944 7F032E14 C4720010 */ lwc1 $f18, 0x10($v1) +/* 067948 7F032E18 460A4081 */ sub.s $f2, $f8, $f10 +/* 06794C 7F032E1C 46000102 */ mul.s $f4, $f0, $f0 +/* 067950 7F032E20 46128381 */ sub.s $f14, $f16, $f18 +/* 067954 7F032E24 46021182 */ mul.s $f6, $f2, $f2 +/* 067958 7F032E28 46062200 */ add.s $f8, $f4, $f6 +/* 06795C 7F032E2C 460E7282 */ mul.s $f10, $f14, $f14 +/* 067960 7F032E30 0C007DF8 */ jal sqrtf +/* 067964 7F032E34 460A4300 */ add.s $f12, $f8, $f10 +/* 067968 7F032E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 06796C 7F032E3C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067970 7F032E40 03E00008 */ jr $ra +/* 067974 7F032E44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032E48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032E48 +/* 067978 7F032E48 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06797C 7F032E4C AFBF0014 */ sw $ra, 0x14($sp) +/* 067980 7F032E50 8C860018 */ lw $a2, 0x18($a0) +/* 067984 7F032E54 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067988 7F032E58 AFA6001C */ sw $a2, 0x1c($sp) +/* 06798C 7F032E5C 28412710 */ slti $at, $v0, 0x2710 +/* 067990 7F032E60 1020000A */ beqz $at, .L7F032E8C +/* 067994 7F032E64 8FA6001C */ lw $a2, 0x1c($sp) +/* 067998 7F032E68 00027080 */ sll $t6, $v0, 2 +/* 06799C 7F032E6C 01C27023 */ subu $t6, $t6, $v0 +/* 0679A0 7F032E70 000E7080 */ sll $t6, $t6, 2 +/* 0679A4 7F032E74 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 0679A8 7F032E78 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0679AC 7F032E7C 01C27023 */ subu $t6, $t6, $v0 +/* 0679B0 7F032E80 000E7080 */ sll $t6, $t6, 2 +/* 0679B4 7F032E84 1000000A */ b .L7F032EB0 +/* 0679B8 7F032E88 01CF1821 */ addu $v1, $t6, $t7 +.L7F032E8C: +/* 0679BC 7F032E8C 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 0679C0 7F032E90 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 0679C4 7F032E94 0002C100 */ sll $t8, $v0, 4 +/* 0679C8 7F032E98 0302C021 */ addu $t8, $t8, $v0 +/* 0679CC 7F032E9C 0018C080 */ sll $t8, $t8, 2 +/* 0679D0 7F032EA0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0679D4 7F032EA4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0679D8 7F032EA8 03191821 */ addu $v1, $t8, $t9 +/* 0679DC 7F032EAC 00611821 */ addu $v1, $v1, $at +.L7F032EB0: +/* 0679E0 7F032EB0 C4640000 */ lwc1 $f4, ($v1) +/* 0679E4 7F032EB4 C4C60008 */ lwc1 $f6, 8($a2) +/* 0679E8 7F032EB8 C4680004 */ lwc1 $f8, 4($v1) +/* 0679EC 7F032EBC C4CA000C */ lwc1 $f10, 0xc($a2) +/* 0679F0 7F032EC0 46062001 */ sub.s $f0, $f4, $f6 +/* 0679F4 7F032EC4 C4700008 */ lwc1 $f16, 8($v1) +/* 0679F8 7F032EC8 C4D20010 */ lwc1 $f18, 0x10($a2) +/* 0679FC 7F032ECC 460A4081 */ sub.s $f2, $f8, $f10 +/* 067A00 7F032ED0 46000102 */ mul.s $f4, $f0, $f0 +/* 067A04 7F032ED4 46128381 */ sub.s $f14, $f16, $f18 +/* 067A08 7F032ED8 46021182 */ mul.s $f6, $f2, $f2 +/* 067A0C 7F032EDC 46062200 */ add.s $f8, $f4, $f6 +/* 067A10 7F032EE0 460E7282 */ mul.s $f10, $f14, $f14 +/* 067A14 7F032EE4 0C007DF8 */ jal sqrtf +/* 067A18 7F032EE8 460A4300 */ add.s $f12, $f8, $f10 +/* 067A1C 7F032EEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 067A20 7F032EF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067A24 7F032EF4 03E00008 */ jr $ra +/* 067A28 7F032EF8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_room_for_preset_loaded(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_room_for_preset_loaded +/* 067A2C 7F032EFC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067A30 7F032F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 067A34 7F032F04 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067A38 7F032F08 00000000 */ nop +/* 067A3C 7F032F0C 28412710 */ slti $at, $v0, 0x2710 +/* 067A40 7F032F10 1020000A */ beqz $at, .L7F032F3C +/* 067A44 7F032F14 0002C100 */ sll $t8, $v0, 4 +/* 067A48 7F032F18 00027080 */ sll $t6, $v0, 2 +/* 067A4C 7F032F1C 01C27023 */ subu $t6, $t6, $v0 +/* 067A50 7F032F20 000E7080 */ sll $t6, $t6, 2 +/* 067A54 7F032F24 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 067A58 7F032F28 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 067A5C 7F032F2C 01C27023 */ subu $t6, $t6, $v0 +/* 067A60 7F032F30 000E7080 */ sll $t6, $t6, 2 +/* 067A64 7F032F34 10000009 */ b .L7F032F5C +/* 067A68 7F032F38 01CF1821 */ addu $v1, $t6, $t7 +.L7F032F3C: +/* 067A6C 7F032F3C 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 067A70 7F032F40 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 067A74 7F032F44 0302C021 */ addu $t8, $t8, $v0 +/* 067A78 7F032F48 0018C080 */ sll $t8, $t8, 2 +/* 067A7C 7F032F4C 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 067A80 7F032F50 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067A84 7F032F54 03191821 */ addu $v1, $t8, $t9 +/* 067A88 7F032F58 00611821 */ addu $v1, $v1, $at +.L7F032F5C: +/* 067A8C 7F032F5C 8C640028 */ lw $a0, 0x28($v1) +/* 067A90 7F032F60 00001025 */ move $v0, $zero +/* 067A94 7F032F64 10800007 */ beqz $a0, .L7F032F84 +/* 067A98 7F032F68 00000000 */ nop +/* 067A9C 7F032F6C 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 067AA0 7F032F70 00000000 */ nop +/* 067AA4 7F032F74 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 067AA8 7F032F78 00402025 */ move $a0, $v0 +/* 067AAC 7F032F7C 10000002 */ b .L7F032F88 +/* 067AB0 7F032F80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F032F84: +/* 067AB4 7F032F84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F032F88: +/* 067AB8 7F032F88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067ABC 7F032F8C 03E00008 */ jr $ra +/* 067AC0 7F032F90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032F94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032F94 +/* 067AC4 7F032F94 24012328 */ li $at, 9000 +/* 067AC8 7F032F98 14A10002 */ bne $a1, $at, .L7F032FA4 +/* 067ACC 7F032F9C 00000000 */ nop +/* 067AD0 7F032FA0 84850114 */ lh $a1, 0x114($a0) +.L7F032FA4: +/* 067AD4 7F032FA4 03E00008 */ jr $ra +/* 067AD8 7F032FA8 00A01025 */ move $v0, $a1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032FAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032FAC +/* 067ADC 7F032FAC 240100FA */ li $at, 250 +/* 067AE0 7F032FB0 54A10004 */ bnel $a1, $at, .L7F032FC4 +/* 067AE4 7F032FB4 240100FB */ li $at, 251 +/* 067AE8 7F032FB8 03E00008 */ jr $ra +/* 067AEC 7F032FBC 84820118 */ lh $v0, 0x118($a0) + +/* 067AF0 7F032FC0 240100FB */ li $at, 251 +.L7F032FC4: +/* 067AF4 7F032FC4 54A10004 */ bnel $a1, $at, .L7F032FD8 +/* 067AF8 7F032FC8 240100FC */ li $at, 252 +/* 067AFC 7F032FCC 03E00008 */ jr $ra +/* 067B00 7F032FD0 8482011A */ lh $v0, 0x11a($a0) + +/* 067B04 7F032FD4 240100FC */ li $at, 252 +.L7F032FD8: +/* 067B08 7F032FD8 54A10004 */ bnel $a1, $at, .L7F032FEC +/* 067B0C 7F032FDC 240100FD */ li $at, 253 +/* 067B10 7F032FE0 03E00008 */ jr $ra +/* 067B14 7F032FE4 84820116 */ lh $v0, 0x116($a0) + +/* 067B18 7F032FE8 240100FD */ li $at, 253 +.L7F032FEC: +/* 067B1C 7F032FEC 54A10004 */ bnel $a1, $at, .L7F033000 +/* 067B20 7F032FF0 240100F9 */ li $at, 249 +/* 067B24 7F032FF4 03E00008 */ jr $ra +/* 067B28 7F032FF8 84820000 */ lh $v0, ($a0) + +/* 067B2C 7F032FFC 240100F9 */ li $at, 249 +.L7F033000: +/* 067B30 7F033000 54A10005 */ bnel $a1, $at, .L7F033018 +/* 067B34 7F033004 240100F8 */ li $at, 248 +/* 067B38 7F033008 84850000 */ lh $a1, ($a0) +/* 067B3C 7F03300C 03E00008 */ jr $ra +/* 067B40 7F033010 24A22710 */ addiu $v0, $a1, 0x2710 + +/* 067B44 7F033014 240100F8 */ li $at, 248 +.L7F033018: +/* 067B48 7F033018 14A10007 */ bne $a1, $at, .L7F033038 +/* 067B4C 7F03301C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 067B50 7F033020 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 067B54 7F033024 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 067B58 7F033028 8DE20004 */ lw $v0, 4($t7) +/* 067B5C 7F03302C 10400002 */ beqz $v0, .L7F033038 +/* 067B60 7F033030 00000000 */ nop +/* 067B64 7F033034 84450000 */ lh $a1, ($v0) +.L7F033038: +/* 067B68 7F033038 03E00008 */ jr $ra +/* 067B6C 7F03303C 00A01025 */ move $v0, $a1 +) +#endif + + + +#ifdef NONMATCHING +void get_handle_for_guard_id(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_handle_for_guard_id +/* 067B70 7F033040 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067B74 7F033044 AFBF0014 */ sw $ra, 0x14($sp) +/* 067B78 7F033048 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 067B7C 7F03304C 00000000 */ nop +/* 067B80 7F033050 00402025 */ move $a0, $v0 +/* 067B84 7F033054 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 067B88 7F033058 AFA2001C */ sw $v0, 0x1c($sp) +/* 067B8C 7F03305C 8FA6001C */ lw $a2, 0x1c($sp) +/* 067B90 7F033060 14400013 */ bnez $v0, .L7F0330B0 +/* 067B94 7F033064 00404025 */ move $t0, $v0 +/* 067B98 7F033068 3C058003 */ lui $a1, %hi(objectiveregisters3) +/* 067B9C 7F03306C 8CA50980 */ lw $a1, %lo(objectiveregisters3)($a1) +/* 067BA0 7F033070 00001025 */ move $v0, $zero +/* 067BA4 7F033074 3C078003 */ lui $a3, %hi(objectiveregisters2) +/* 067BA8 7F033078 58A0000E */ blezl $a1, .L7F0330B4 +/* 067BAC 7F03307C 8FBF0014 */ lw $ra, 0x14($sp) +/* 067BB0 7F033080 8CE7097C */ lw $a3, %lo(objectiveregisters2)($a3) +/* 067BB4 7F033084 00002025 */ move $a0, $zero +/* 067BB8 7F033088 00E01825 */ move $v1, $a3 +.L7F03308C: +/* 067BBC 7F03308C 846E0000 */ lh $t6, ($v1) +/* 067BC0 7F033090 24420001 */ addiu $v0, $v0, 1 +/* 067BC4 7F033094 0045082A */ slt $at, $v0, $a1 +/* 067BC8 7F033098 14CE0003 */ bne $a2, $t6, .L7F0330A8 +/* 067BCC 7F03309C 246301DC */ addiu $v1, $v1, 0x1dc +/* 067BD0 7F0330A0 10000003 */ b .L7F0330B0 +/* 067BD4 7F0330A4 00874021 */ addu $t0, $a0, $a3 +.L7F0330A8: +/* 067BD8 7F0330A8 1420FFF8 */ bnez $at, .L7F03308C +/* 067BDC 7F0330AC 248401DC */ addiu $a0, $a0, 0x1dc +.L7F0330B0: +/* 067BE0 7F0330B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0330B4: +/* 067BE4 7F0330B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067BE8 7F0330B8 01001025 */ move $v0, $t0 +/* 067BEC 7F0330BC 03E00008 */ jr $ra +/* 067BF0 7F0330C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_between_actor_and_actorID(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_distance_between_actor_and_actorID +/* 067BF4 7F0330C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067BF8 7F0330C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 067BFC 7F0330CC 8C830018 */ lw $v1, 0x18($a0) +/* 067C00 7F0330D0 0FC0CC10 */ jal get_handle_for_guard_id +/* 067C04 7F0330D4 AFA3001C */ sw $v1, 0x1c($sp) +/* 067C08 7F0330D8 44801000 */ mtc1 $zero, $f2 +/* 067C0C 7F0330DC 10400018 */ beqz $v0, .L7F033140 +/* 067C10 7F0330E0 8FA3001C */ lw $v1, 0x1c($sp) +/* 067C14 7F0330E4 8C4E001C */ lw $t6, 0x1c($v0) +/* 067C18 7F0330E8 51C00016 */ beql $t6, $zero, .L7F033144 +/* 067C1C 7F0330EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 067C20 7F0330F0 8C4F0018 */ lw $t7, 0x18($v0) +/* 067C24 7F0330F4 51E00013 */ beql $t7, $zero, .L7F033144 +/* 067C28 7F0330F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 067C2C 7F0330FC 8C420018 */ lw $v0, 0x18($v0) +/* 067C30 7F033100 C4660008 */ lwc1 $f6, 8($v1) +/* 067C34 7F033104 C46A000C */ lwc1 $f10, 0xc($v1) +/* 067C38 7F033108 C4440008 */ lwc1 $f4, 8($v0) +/* 067C3C 7F03310C C448000C */ lwc1 $f8, 0xc($v0) +/* 067C40 7F033110 C4720010 */ lwc1 $f18, 0x10($v1) +/* 067C44 7F033114 46062001 */ sub.s $f0, $f4, $f6 +/* 067C48 7F033118 C4500010 */ lwc1 $f16, 0x10($v0) +/* 067C4C 7F03311C 460A4081 */ sub.s $f2, $f8, $f10 +/* 067C50 7F033120 46000102 */ mul.s $f4, $f0, $f0 +/* 067C54 7F033124 46128381 */ sub.s $f14, $f16, $f18 +/* 067C58 7F033128 46021182 */ mul.s $f6, $f2, $f2 +/* 067C5C 7F03312C 46062200 */ add.s $f8, $f4, $f6 +/* 067C60 7F033130 460E7282 */ mul.s $f10, $f14, $f14 +/* 067C64 7F033134 0C007DF8 */ jal sqrtf +/* 067C68 7F033138 460A4300 */ add.s $f12, $f8, $f10 +/* 067C6C 7F03313C 46000086 */ mov.s $f2, $f0 +.L7F033140: +/* 067C70 7F033140 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033144: +/* 067C74 7F033144 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067C78 7F033148 46001006 */ mov.s $f0, $f2 +/* 067C7C 7F03314C 03E00008 */ jr $ra +/* 067C80 7F033150 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_between_actor_and_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_distance_between_actor_and_preset +/* 067C84 7F033154 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067C88 7F033158 AFBF0014 */ sw $ra, 0x14($sp) +/* 067C8C 7F03315C AFA40020 */ sw $a0, 0x20($sp) +/* 067C90 7F033160 0FC225E6 */ jal get_curplayer_positiondata +/* 067C94 7F033164 AFA50024 */ sw $a1, 0x24($sp) +/* 067C98 7F033168 8FA40020 */ lw $a0, 0x20($sp) +/* 067C9C 7F03316C 8FA50024 */ lw $a1, 0x24($sp) +/* 067CA0 7F033170 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067CA4 7F033174 AFA2001C */ sw $v0, 0x1c($sp) +/* 067CA8 7F033178 28412710 */ slti $at, $v0, 0x2710 +/* 067CAC 7F03317C 1020000A */ beqz $at, .L7F0331A8 +/* 067CB0 7F033180 8FA6001C */ lw $a2, 0x1c($sp) +/* 067CB4 7F033184 00027080 */ sll $t6, $v0, 2 +/* 067CB8 7F033188 01C27023 */ subu $t6, $t6, $v0 +/* 067CBC 7F03318C 000E7080 */ sll $t6, $t6, 2 +/* 067CC0 7F033190 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 067CC4 7F033194 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 067CC8 7F033198 01C27023 */ subu $t6, $t6, $v0 +/* 067CCC 7F03319C 000E7080 */ sll $t6, $t6, 2 +/* 067CD0 7F0331A0 1000000A */ b .L7F0331CC +/* 067CD4 7F0331A4 01CF1821 */ addu $v1, $t6, $t7 +.L7F0331A8: +/* 067CD8 7F0331A8 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 067CDC 7F0331AC 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 067CE0 7F0331B0 0002C100 */ sll $t8, $v0, 4 +/* 067CE4 7F0331B4 0302C021 */ addu $t8, $t8, $v0 +/* 067CE8 7F0331B8 0018C080 */ sll $t8, $t8, 2 +/* 067CEC 7F0331BC 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 067CF0 7F0331C0 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067CF4 7F0331C4 03191821 */ addu $v1, $t8, $t9 +/* 067CF8 7F0331C8 00611821 */ addu $v1, $v1, $at +.L7F0331CC: +/* 067CFC 7F0331CC C4640000 */ lwc1 $f4, ($v1) +/* 067D00 7F0331D0 C4C60008 */ lwc1 $f6, 8($a2) +/* 067D04 7F0331D4 C4680004 */ lwc1 $f8, 4($v1) +/* 067D08 7F0331D8 C4CA000C */ lwc1 $f10, 0xc($a2) +/* 067D0C 7F0331DC 46062001 */ sub.s $f0, $f4, $f6 +/* 067D10 7F0331E0 C4700008 */ lwc1 $f16, 8($v1) +/* 067D14 7F0331E4 C4D20010 */ lwc1 $f18, 0x10($a2) +/* 067D18 7F0331E8 460A4081 */ sub.s $f2, $f8, $f10 +/* 067D1C 7F0331EC 46000102 */ mul.s $f4, $f0, $f0 +/* 067D20 7F0331F0 46128381 */ sub.s $f14, $f16, $f18 +/* 067D24 7F0331F4 46021182 */ mul.s $f6, $f2, $f2 +/* 067D28 7F0331F8 46062200 */ add.s $f8, $f4, $f6 +/* 067D2C 7F0331FC 460E7282 */ mul.s $f10, $f14, $f14 +/* 067D30 7F033200 0C007DF8 */ jal sqrtf +/* 067D34 7F033204 460A4300 */ add.s $f12, $f8, $f10 +/* 067D38 7F033208 8FBF0014 */ lw $ra, 0x14($sp) +/* 067D3C 7F03320C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067D40 7F033210 03E00008 */ jr $ra +/* 067D44 7F033214 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033218(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033218 +/* 067D48 7F033218 AFA50004 */ sw $a1, 4($sp) +/* 067D4C 7F03321C 908F010E */ lbu $t7, 0x10e($a0) +/* 067D50 7F033220 01E5C025 */ or $t8, $t7, $a1 +/* 067D54 7F033224 03E00008 */ jr $ra +/* 067D58 7F033228 A098010E */ sb $t8, 0x10e($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03322C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03322C +/* 067D5C 7F03322C AFA50004 */ sw $a1, 4($sp) +/* 067D60 7F033230 908F010E */ lbu $t7, 0x10e($a0) +/* 067D64 7F033234 00A0C027 */ not $t8, $a1 +/* 067D68 7F033238 01F8C824 */ and $t9, $t7, $t8 +/* 067D6C 7F03323C 03E00008 */ jr $ra +/* 067D70 7F033240 A099010E */ sb $t9, 0x10e($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033244(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033244 +/* 067D74 7F033244 AFA50004 */ sw $a1, 4($sp) +/* 067D78 7F033248 908F010E */ lbu $t7, 0x10e($a0) +/* 067D7C 7F03324C 30AE00FF */ andi $t6, $a1, 0xff +/* 067D80 7F033250 01EE1024 */ and $v0, $t7, $t6 +/* 067D84 7F033254 0002C02B */ sltu $t8, $zero, $v0 +/* 067D88 7F033258 03E00008 */ jr $ra +/* 067D8C 7F03325C 03001025 */ move $v0, $t8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033260(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033260 +/* 067D90 7F033260 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067D94 7F033264 AFBF0014 */ sw $ra, 0x14($sp) +/* 067D98 7F033268 0FC0CC10 */ jal get_handle_for_guard_id +/* 067D9C 7F03326C AFA60020 */ sw $a2, 0x20($sp) +/* 067DA0 7F033270 10400003 */ beqz $v0, .L7F033280 +/* 067DA4 7F033274 00402025 */ move $a0, $v0 +/* 067DA8 7F033278 0FC0CC86 */ jal sub_GAME_7F033218 +/* 067DAC 7F03327C 93A50023 */ lbu $a1, 0x23($sp) +.L7F033280: +/* 067DB0 7F033280 8FBF0014 */ lw $ra, 0x14($sp) +/* 067DB4 7F033284 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067DB8 7F033288 03E00008 */ jr $ra +/* 067DBC 7F03328C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033290(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033290 +/* 067DC0 7F033290 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067DC4 7F033294 AFBF0014 */ sw $ra, 0x14($sp) +/* 067DC8 7F033298 0FC0CC10 */ jal get_handle_for_guard_id +/* 067DCC 7F03329C AFA60020 */ sw $a2, 0x20($sp) +/* 067DD0 7F0332A0 10400003 */ beqz $v0, .L7F0332B0 +/* 067DD4 7F0332A4 00402025 */ move $a0, $v0 +/* 067DD8 7F0332A8 0FC0CC8B */ jal sub_GAME_7F03322C +/* 067DDC 7F0332AC 93A50023 */ lbu $a1, 0x23($sp) +.L7F0332B0: +/* 067DE0 7F0332B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 067DE4 7F0332B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067DE8 7F0332B8 03E00008 */ jr $ra +/* 067DEC 7F0332BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0332C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0332C0 +/* 067DF0 7F0332C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067DF4 7F0332C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067DF8 7F0332C8 0FC0CC10 */ jal get_handle_for_guard_id +/* 067DFC 7F0332CC AFA60020 */ sw $a2, 0x20($sp) +/* 067E00 7F0332D0 10400005 */ beqz $v0, .L7F0332E8 +/* 067E04 7F0332D4 00402025 */ move $a0, $v0 +/* 067E08 7F0332D8 0FC0CC91 */ jal sub_GAME_7F033244 +/* 067E0C 7F0332DC 93A50023 */ lbu $a1, 0x23($sp) +/* 067E10 7F0332E0 10000003 */ b .L7F0332F0 +/* 067E14 7F0332E4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0332E8: +/* 067E18 7F0332E8 00001025 */ move $v0, $zero +/* 067E1C 7F0332EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0332F0: +/* 067E20 7F0332F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067E24 7F0332F4 03E00008 */ jr $ra +/* 067E28 7F0332F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void toggle_objective_bitflags(void) { + +} +#else +GLOBAL_ASM( +.text +glabel toggle_objective_bitflags +/* 067E2C 7F0332FC 3C028003 */ lui $v0, %hi(objectiveregisters1) +/* 067E30 7F033300 24420978 */ addiu $v0, %lo(objectiveregisters1) # addiu $v0, $v0, 0x978 +/* 067E34 7F033304 8C4E0000 */ lw $t6, ($v0) +/* 067E38 7F033308 AFA40000 */ sw $a0, ($sp) +/* 067E3C 7F03330C 01C57825 */ or $t7, $t6, $a1 +/* 067E40 7F033310 03E00008 */ jr $ra +/* 067E44 7F033314 AC4F0000 */ sw $t7, ($v0) +) +#endif + + + +#ifdef NONMATCHING +void untoggle_objective_bitflags(void) { + +} +#else +GLOBAL_ASM( +.text +glabel untoggle_objective_bitflags +/* 067E48 7F033318 3C028003 */ lui $v0, %hi(objectiveregisters1) +/* 067E4C 7F03331C 24420978 */ addiu $v0, %lo(objectiveregisters1) # addiu $v0, $v0, 0x978 +/* 067E50 7F033320 8C4F0000 */ lw $t7, ($v0) +/* 067E54 7F033324 00A07027 */ not $t6, $a1 +/* 067E58 7F033328 AFA40000 */ sw $a0, ($sp) +/* 067E5C 7F03332C 01CFC024 */ and $t8, $t6, $t7 +/* 067E60 7F033330 03E00008 */ jr $ra +/* 067E64 7F033334 AC580000 */ sw $t8, ($v0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_objective_bitflags_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_objective_bitflags_set +/* 067E68 7F033338 3C0E8003 */ lui $t6, %hi(objectiveregisters1) +/* 067E6C 7F03333C 8DCE0978 */ lw $t6, %lo(objectiveregisters1)($t6) +/* 067E70 7F033340 AFA40000 */ sw $a0, ($sp) +/* 067E74 7F033344 01C51024 */ and $v0, $t6, $a1 +/* 067E78 7F033348 0002782B */ sltu $t7, $zero, $v0 +/* 067E7C 7F03334C 03E00008 */ jr $ra +/* 067E80 7F033350 01E01025 */ move $v0, $t7 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_02_flag_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_02_flag_set +/* 067E84 7F033354 94820012 */ lhu $v0, 0x12($a0) +/* 067E88 7F033358 304E0002 */ andi $t6, $v0, 2 +/* 067E8C 7F03335C 03E00008 */ jr $ra +/* 067E90 7F033360 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_surrender(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_surrender +/* 067E94 7F033364 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067E98 7F033368 AFBF0014 */ sw $ra, 0x14($sp) +/* 067E9C 7F03336C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 067EA0 7F033370 AFA40018 */ sw $a0, 0x18($sp) +/* 067EA4 7F033374 50400006 */ beql $v0, $zero, .L7F033390 +/* 067EA8 7F033378 00001025 */ move $v0, $zero +/* 067EAC 7F03337C 0FC09192 */ jal actor_throw_weapon_surrender +/* 067EB0 7F033380 8FA40018 */ lw $a0, 0x18($sp) +/* 067EB4 7F033384 10000002 */ b .L7F033390 +/* 067EB8 7F033388 24020001 */ li $v0, 1 +/* 067EBC 7F03338C 00001025 */ move $v0, $zero +.L7F033390: +/* 067EC0 7F033390 8FBF0014 */ lw $ra, 0x14($sp) +/* 067EC4 7F033394 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067EC8 7F033398 03E00008 */ jr $ra +/* 067ECC 7F03339C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0333A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0333A0 +/* 067ED0 7F0333A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067ED4 7F0333A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067ED8 7F0333A8 0FC091EE */ jal actor_fade_away +/* 067EDC 7F0333AC 00000000 */ nop +/* 067EE0 7F0333B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 067EE4 7F0333B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067EE8 7F0333B8 24020001 */ li $v0, 1 +/* 067EEC 7F0333BC 03E00008 */ jr $ra +/* 067EF0 7F0333C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void reset_and_start_loop_counter(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_and_start_loop_counter +/* 067EF4 7F0333C4 948E0012 */ lhu $t6, 0x12($a0) +/* 067EF8 7F0333C8 AC800110 */ sw $zero, 0x110($a0) +/* 067EFC 7F0333CC 35CF0040 */ ori $t7, $t6, 0x40 +/* 067F00 7F0333D0 03E00008 */ jr $ra +/* 067F04 7F0333D4 A48F0012 */ sh $t7, 0x12($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_loop_counter_time_in_seconds(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_loop_counter_time_in_seconds +/* 067F08 7F0333D8 8C8E0110 */ lw $t6, 0x110($a0) +/* 067F0C 7F0333DC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 067F10 7F0333E0 44814000 */ mtc1 $at, $f8 +/* 067F14 7F0333E4 448E2000 */ mtc1 $t6, $f4 +/* 067F18 7F0333E8 00000000 */ nop +/* 067F1C 7F0333EC 468021A0 */ cvt.s.w $f6, $f4 +/* 067F20 7F0333F0 03E00008 */ jr $ra +/* 067F24 7F0333F4 46083003 */ div.s $f0, $f6, $f8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0333F8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D8 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F0333F8 +/* 067F28 7F0333F8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 067F2C 7F0333FC AFBF0014 */ sw $ra, 0x14($sp) +/* 067F30 7F033400 0FC0A5D8 */ jal sub_GAME_7F029760 +/* 067F34 7F033404 AFA40048 */ sw $a0, 0x48($sp) +/* 067F38 7F033408 1040001C */ beqz $v0, .L7F03347C +/* 067F3C 7F03340C 8FAE0048 */ lw $t6, 0x48($sp) +/* 067F40 7F033410 8DC4001C */ lw $a0, 0x1c($t6) +/* 067F44 7F033414 0FC1B403 */ jal getinstsize +/* 067F48 7F033418 AFA40044 */ sw $a0, 0x44($sp) +/* 067F4C 7F03341C 3C018005 */ lui $at, %hi(D_800520D8) +/* 067F50 7F033420 C42420D8 */ lwc1 $f4, %lo(D_800520D8)($at) +/* 067F54 7F033424 27A40038 */ addiu $a0, $sp, 0x38 +/* 067F58 7F033428 27A5002C */ addiu $a1, $sp, 0x2c +/* 067F5C 7F03342C 46040182 */ mul.s $f6, $f0, $f4 +/* 067F60 7F033430 0FC1A064 */ jal sub_GAME_7F068190 +/* 067F64 7F033434 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 067F68 7F033438 8FA40044 */ lw $a0, 0x44($sp) +/* 067F6C 7F03343C 0FC1B2E6 */ jal getsuboffset +/* 067F70 7F033440 27A50020 */ addiu $a1, $sp, 0x20 +/* 067F74 7F033444 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 067F78 7F033448 00000000 */ nop +/* 067F7C 7F03344C 00402025 */ move $a0, $v0 +/* 067F80 7F033450 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 067F84 7F033454 27A50020 */ addiu $a1, $sp, 0x20 +/* 067F88 7F033458 27A40038 */ addiu $a0, $sp, 0x38 +/* 067F8C 7F03345C 27A5002C */ addiu $a1, $sp, 0x2c +/* 067F90 7F033460 27A60020 */ addiu $a2, $sp, 0x20 +/* 067F94 7F033464 0FC1041D */ jal sub_GAME_7F041074 +/* 067F98 7F033468 8FA7001C */ lw $a3, 0x1c($sp) +/* 067F9C 7F03346C 50400004 */ beql $v0, $zero, .L7F033480 +/* 067FA0 7F033470 00001025 */ move $v0, $zero +/* 067FA4 7F033474 10000002 */ b .L7F033480 +/* 067FA8 7F033478 24020001 */ li $v0, 1 +.L7F03347C: +/* 067FAC 7F03347C 00001025 */ move $v0, $zero +.L7F033480: +/* 067FB0 7F033480 8FBF0014 */ lw $ra, 0x14($sp) +/* 067FB4 7F033484 27BD0048 */ addiu $sp, $sp, 0x48 +/* 067FB8 7F033488 03E00008 */ jr $ra +/* 067FBC 7F03348C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_invisible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_invisible +/* 067FC0 7F033490 8C820014 */ lw $v0, 0x14($a0) +/* 067FC4 7F033494 304E0004 */ andi $t6, $v0, 4 +/* 067FC8 7F033498 03E00008 */ jr $ra +/* 067FCC 7F03349C 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void actor_move_to_curplayer_at_speed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_move_to_curplayer_at_speed +/* 067FD0 7F0334A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067FD4 7F0334A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067FD8 7F0334A8 AFA40018 */ sw $a0, 0x18($sp) +/* 067FDC 7F0334AC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 067FE0 7F0334B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 067FE4 7F0334B4 10400010 */ beqz $v0, .L7F0334F8 +/* 067FE8 7F0334B8 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 067FEC 7F0334BC 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 067FF0 7F0334C0 29C1000A */ slti $at, $t6, 0xa +/* 067FF4 7F0334C4 5020000D */ beql $at, $zero, .L7F0334FC +/* 067FF8 7F0334C8 00001025 */ move $v0, $zero +/* 067FFC 7F0334CC 0FC225E6 */ jal get_curplayer_positiondata +/* 068000 7F0334D0 00000000 */ nop +/* 068004 7F0334D4 8FA40018 */ lw $a0, 0x18($sp) +/* 068008 7F0334D8 24450008 */ addiu $a1, $v0, 8 +/* 06800C 7F0334DC 8C460014 */ lw $a2, 0x14($v0) +/* 068010 7F0334E0 0FC0A377 */ jal plot_course_for_actor +/* 068014 7F0334E4 8FA7001C */ lw $a3, 0x1c($sp) +/* 068018 7F0334E8 50400004 */ beql $v0, $zero, .L7F0334FC +/* 06801C 7F0334EC 00001025 */ move $v0, $zero +/* 068020 7F0334F0 10000002 */ b .L7F0334FC +/* 068024 7F0334F4 24020001 */ li $v0, 1 +.L7F0334F8: +/* 068028 7F0334F8 00001025 */ move $v0, $zero +.L7F0334FC: +/* 06802C 7F0334FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 068030 7F033500 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068034 7F033504 03E00008 */ jr $ra +/* 068038 7F033508 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_move_to_actorID_at_speed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_move_to_actorID_at_speed +/* 06803C 7F03350C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068040 7F033510 AFBF0014 */ sw $ra, 0x14($sp) +/* 068044 7F033514 AFA40018 */ sw $a0, 0x18($sp) +/* 068048 7F033518 AFA5001C */ sw $a1, 0x1c($sp) +/* 06804C 7F03351C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068050 7F033520 AFA60020 */ sw $a2, 0x20($sp) +/* 068054 7F033524 1040001A */ beqz $v0, .L7F033590 +/* 068058 7F033528 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 06805C 7F03352C 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 068060 7F033530 8FA40018 */ lw $a0, 0x18($sp) +/* 068064 7F033534 29C1000A */ slti $at, $t6, 0xa +/* 068068 7F033538 50200016 */ beql $at, $zero, .L7F033594 +/* 06806C 7F03353C 00001025 */ move $v0, $zero +/* 068070 7F033540 0FC0CC10 */ jal get_handle_for_guard_id +/* 068074 7F033544 8FA5001C */ lw $a1, 0x1c($sp) +/* 068078 7F033548 50400012 */ beql $v0, $zero, .L7F033594 +/* 06807C 7F03354C 00001025 */ move $v0, $zero +/* 068080 7F033550 8C4F001C */ lw $t7, 0x1c($v0) +/* 068084 7F033554 51E0000F */ beql $t7, $zero, .L7F033594 +/* 068088 7F033558 00001025 */ move $v0, $zero +/* 06808C 7F03355C 8C580018 */ lw $t8, 0x18($v0) +/* 068090 7F033560 5300000C */ beql $t8, $zero, .L7F033594 +/* 068094 7F033564 00001025 */ move $v0, $zero +/* 068098 7F033568 8C420018 */ lw $v0, 0x18($v0) +/* 06809C 7F03356C 8FA40018 */ lw $a0, 0x18($sp) +/* 0680A0 7F033570 8FA70020 */ lw $a3, 0x20($sp) +/* 0680A4 7F033574 24450008 */ addiu $a1, $v0, 8 +/* 0680A8 7F033578 0FC0A377 */ jal plot_course_for_actor +/* 0680AC 7F03357C 8C460014 */ lw $a2, 0x14($v0) +/* 0680B0 7F033580 50400004 */ beql $v0, $zero, .L7F033594 +/* 0680B4 7F033584 00001025 */ move $v0, $zero +/* 0680B8 7F033588 10000002 */ b .L7F033594 +/* 0680BC 7F03358C 24020001 */ li $v0, 1 +.L7F033590: +/* 0680C0 7F033590 00001025 */ move $v0, $zero +.L7F033594: +/* 0680C4 7F033594 8FBF0014 */ lw $ra, 0x14($sp) +/* 0680C8 7F033598 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0680CC 7F03359C 03E00008 */ jr $ra +/* 0680D0 7F0335A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_times_actor_shot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_times_actor_shot +/* 0680D4 7F0335A4 03E00008 */ jr $ra +/* 0680D8 7F0335A8 8082000B */ lb $v0, 0xb($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_num_shots_near_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_num_shots_near_actor +/* 0680DC 7F0335AC 03E00008 */ jr $ra +/* 0680E0 7F0335B0 8082000A */ lb $v0, 0xa($a0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_FA_target_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_FA_target_set +/* 0680E4 7F0335B4 84820118 */ lh $v0, 0x118($a0) +/* 0680E8 7F0335B8 284E0000 */ slti $t6, $v0, 0 +/* 0680EC 7F0335BC 03E00008 */ jr $ra +/* 0680F0 7F0335C0 39C20001 */ xori $v0, $t6, 1 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_FB_target_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_FB_target_set +/* 0680F4 7F0335C4 8482011A */ lh $v0, 0x11a($a0) +/* 0680F8 7F0335C8 284E0000 */ slti $t6, $v0, 0 +/* 0680FC 7F0335CC 03E00008 */ jr $ra +/* 068100 7F0335D0 39C20001 */ xori $v0, $t6, 1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0335D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0335D4 +/* 068104 7F0335D4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068108 7F0335D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06810C 7F0335DC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068110 7F0335E0 AFA40018 */ sw $a0, 0x18($sp) +/* 068114 7F0335E4 50400006 */ beql $v0, $zero, .L7F033600 +/* 068118 7F0335E8 00001025 */ move $v0, $zero +/* 06811C 7F0335EC 0FC08F92 */ jal sub_GAME_7F023E48 +/* 068120 7F0335F0 8FA40018 */ lw $a0, 0x18($sp) +/* 068124 7F0335F4 10000002 */ b .L7F033600 +/* 068128 7F0335F8 24020001 */ li $v0, 1 +/* 06812C 7F0335FC 00001025 */ move $v0, $zero +.L7F033600: +/* 068130 7F033600 8FBF0014 */ lw $ra, 0x14($sp) +/* 068134 7F033604 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068138 7F033608 03E00008 */ jr $ra +/* 06813C 7F03360C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_shuffle_feet(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_shuffle_feet +/* 068140 7F033610 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068144 7F033614 AFBF0014 */ sw $ra, 0x14($sp) +/* 068148 7F033618 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 06814C 7F03361C AFA40018 */ sw $a0, 0x18($sp) +/* 068150 7F033620 50400006 */ beql $v0, $zero, .L7F03363C +/* 068154 7F033624 00001025 */ move $v0, $zero +/* 068158 7F033628 0FC09106 */ jal actor_shuffle_feet +/* 06815C 7F03362C 8FA40018 */ lw $a0, 0x18($sp) +/* 068160 7F033630 10000002 */ b .L7F03363C +/* 068164 7F033634 24020001 */ li $v0, 1 +/* 068168 7F033638 00001025 */ move $v0, $zero +.L7F03363C: +/* 06816C 7F03363C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068170 7F033640 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068174 7F033644 03E00008 */ jr $ra +/* 068178 7F033648 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_fawn_on_shoulder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_fawn_on_shoulder +/* 06817C 7F03364C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068180 7F033650 AFBF0014 */ sw $ra, 0x14($sp) +/* 068184 7F033654 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068188 7F033658 AFA40018 */ sw $a0, 0x18($sp) +/* 06818C 7F03365C 50400006 */ beql $v0, $zero, .L7F033678 +/* 068190 7F033660 00001025 */ move $v0, $zero +/* 068194 7F033664 0FC0912B */ jal actor_fawn_on_shoulder +/* 068198 7F033668 8FA40018 */ lw $a0, 0x18($sp) +/* 06819C 7F03366C 10000002 */ b .L7F033678 +/* 0681A0 7F033670 24020001 */ li $v0, 1 +/* 0681A4 7F033674 00001025 */ move $v0, $zero +.L7F033678: +/* 0681A8 7F033678 8FBF0014 */ lw $ra, 0x14($sp) +/* 0681AC 7F03367C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0681B0 7F033680 03E00008 */ jr $ra +/* 0681B4 7F033684 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_look_flustered(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_look_flustered +/* 0681B8 7F033688 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0681BC 7F03368C AFBF0014 */ sw $ra, 0x14($sp) +/* 0681C0 7F033690 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 0681C4 7F033694 AFA40018 */ sw $a0, 0x18($sp) +/* 0681C8 7F033698 50400006 */ beql $v0, $zero, .L7F0336B4 +/* 0681CC 7F03369C 00001025 */ move $v0, $zero +/* 0681D0 7F0336A0 0FC09152 */ jal actor_look_flustered +/* 0681D4 7F0336A4 8FA40018 */ lw $a0, 0x18($sp) +/* 0681D8 7F0336A8 10000002 */ b .L7F0336B4 +/* 0681DC 7F0336AC 24020001 */ li $v0, 1 +/* 0681E0 7F0336B0 00001025 */ move $v0, $zero +.L7F0336B4: +/* 0681E4 7F0336B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0681E8 7F0336B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0681EC 7F0336BC 03E00008 */ jr $ra +/* 0681F0 7F0336C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_kneel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_kneel +/* 0681F4 7F0336C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0681F8 7F0336C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0681FC 7F0336CC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068200 7F0336D0 AFA40018 */ sw $a0, 0x18($sp) +/* 068204 7F0336D4 50400006 */ beql $v0, $zero, .L7F0336F0 +/* 068208 7F0336D8 00001025 */ move $v0, $zero +/* 06820C 7F0336DC 0FC08F9D */ jal actor_kneel +/* 068210 7F0336E0 8FA40018 */ lw $a0, 0x18($sp) +/* 068214 7F0336E4 10000002 */ b .L7F0336F0 +/* 068218 7F0336E8 24020001 */ li $v0, 1 +/* 06821C 7F0336EC 00001025 */ move $v0, $zero +.L7F0336F0: +/* 068220 7F0336F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 068224 7F0336F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068228 7F0336F8 03E00008 */ jr $ra +/* 06822C 7F0336FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_perform_animation(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_perform_animation +/* 068230 7F033700 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068234 7F033704 AFBF001C */ sw $ra, 0x1c($sp) +/* 068238 7F033708 AFA40020 */ sw $a0, 0x20($sp) +/* 06823C 7F03370C AFA50024 */ sw $a1, 0x24($sp) +/* 068240 7F033710 AFA60028 */ sw $a2, 0x28($sp) +/* 068244 7F033714 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068248 7F033718 AFA7002C */ sw $a3, 0x2c($sp) +/* 06824C 7F03371C 1040000B */ beqz $v0, .L7F03374C +/* 068250 7F033720 8FA40020 */ lw $a0, 0x20($sp) +/* 068254 7F033724 93AE0033 */ lbu $t6, 0x33($sp) +/* 068258 7F033728 8FAF0034 */ lw $t7, 0x34($sp) +/* 06825C 7F03372C 8FA50024 */ lw $a1, 0x24($sp) +/* 068260 7F033730 8FA60028 */ lw $a2, 0x28($sp) +/* 068264 7F033734 8FA7002C */ lw $a3, 0x2c($sp) +/* 068268 7F033738 AFAE0010 */ sw $t6, 0x10($sp) +/* 06826C 7F03373C 0FC08FF9 */ jal perform_animation_for_actor +/* 068270 7F033740 AFAF0014 */ sw $t7, 0x14($sp) +/* 068274 7F033744 10000002 */ b .L7F033750 +/* 068278 7F033748 24020001 */ li $v0, 1 +.L7F03374C: +/* 06827C 7F03374C 00001025 */ move $v0, $zero +.L7F033750: +/* 068280 7F033750 8FBF001C */ lw $ra, 0x1c($sp) +/* 068284 7F033754 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068288 7F033758 03E00008 */ jr $ra +/* 06828C 7F03375C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void alarm_timer_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alarm_timer_related +/* 068290 7F033760 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068294 7F033764 AFBF0014 */ sw $ra, 0x14($sp) +/* 068298 7F033768 0FC15794 */ jal is_alarm_on +/* 06829C 7F03376C AFA40018 */ sw $a0, 0x18($sp) +/* 0682A0 7F033770 8FBF0014 */ lw $ra, 0x14($sp) +/* 0682A4 7F033774 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0682A8 7F033778 03E00008 */ jr $ra +/* 0682AC 7F03377C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033780(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800520E0 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_800520E4 +.word 0x4096cbe4 /*4.712389*/ +.text +glabel sub_GAME_7F033780 +/* 0682B0 7F033780 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0682B4 7F033784 AFBF0014 */ sw $ra, 0x14($sp) +/* 0682B8 7F033788 AFA60020 */ sw $a2, 0x20($sp) +/* 0682BC 7F03378C 8C8E0000 */ lw $t6, ($a0) +/* 0682C0 7F033790 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 0682C4 7F033794 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0682C8 7F033798 000E7880 */ sll $t7, $t6, 2 +/* 0682CC 7F03379C 01EE7823 */ subu $t7, $t7, $t6 +/* 0682D0 7F0337A0 000F7880 */ sll $t7, $t7, 2 +/* 0682D4 7F0337A4 01EE7823 */ subu $t7, $t7, $t6 +/* 0682D8 7F0337A8 000F7880 */ sll $t7, $t7, 2 +/* 0682DC 7F0337AC 01F81021 */ addu $v0, $t7, $t8 +/* 0682E0 7F0337B0 C4440000 */ lwc1 $f4, ($v0) +/* 0682E4 7F0337B4 C4A60000 */ lwc1 $f6, ($a1) +/* 0682E8 7F0337B8 C4480008 */ lwc1 $f8, 8($v0) +/* 0682EC 7F0337BC C4AA0008 */ lwc1 $f10, 8($a1) +/* 0682F0 7F0337C0 46062301 */ sub.s $f12, $f4, $f6 +/* 0682F4 7F0337C4 0FC16A8C */ jal atan2f +/* 0682F8 7F0337C8 460A4381 */ sub.s $f14, $f8, $f10 +/* 0682FC 7F0337CC C7AE0020 */ lwc1 $f14, 0x20($sp) +/* 068300 7F0337D0 3C018005 */ lui $at, %hi(D_800520DC) +/* 068304 7F0337D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 068308 7F0337D8 4600703C */ c.lt.s $f14, $f0 +/* 06830C 7F0337DC 46007301 */ sub.s $f12, $f14, $f0 +/* 068310 7F0337E0 45000003 */ bc1f .L7F0337F0 +/* 068314 7F0337E4 46006086 */ mov.s $f2, $f12 +/* 068318 7F0337E8 C43020DC */ lwc1 $f16, %lo(D_800520DC)($at) +/* 06831C 7F0337EC 46106080 */ add.s $f2, $f12, $f16 +.L7F0337F0: +/* 068320 7F0337F0 3C018005 */ lui $at, %hi(D_800520E0) +/* 068324 7F0337F4 C43220E0 */ lwc1 $f18, %lo(D_800520E0)($at) +/* 068328 7F0337F8 3C018005 */ lui $at, %hi(D_800520E4) +/* 06832C 7F0337FC 4612103C */ c.lt.s $f2, $f18 +/* 068330 7F033800 00000000 */ nop +/* 068334 7F033804 45010007 */ bc1t .L7F033824 +/* 068338 7F033808 00000000 */ nop +/* 06833C 7F03380C C42420E4 */ lwc1 $f4, %lo(D_800520E4)($at) +/* 068340 7F033810 00001025 */ move $v0, $zero +/* 068344 7F033814 4602203C */ c.lt.s $f4, $f2 +/* 068348 7F033818 00000000 */ nop +/* 06834C 7F03381C 45000003 */ bc1f .L7F03382C +/* 068350 7F033820 00000000 */ nop +.L7F033824: +/* 068354 7F033824 10000001 */ b .L7F03382C +/* 068358 7F033828 24020001 */ li $v0, 1 +.L7F03382C: +/* 06835C 7F03382C 03E00008 */ jr $ra +/* 068360 7F033830 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033834(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520E8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800520EC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_800520F0 +.word 0x4096cbe4 /*4.712389*/ +glabel D_800520F4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F033834 +/* 068364 7F033834 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 068368 7F033838 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 06836C 7F03383C 4486A000 */ mtc1 $a2, $f20 +/* 068370 7F033840 AFBF0034 */ sw $ra, 0x34($sp) +/* 068374 7F033844 AFB40030 */ sw $s4, 0x30($sp) +/* 068378 7F033848 AFB00020 */ sw $s0, 0x20($sp) +/* 06837C 7F03384C 30F000FF */ andi $s0, $a3, 0xff +/* 068380 7F033850 0080A025 */ move $s4, $a0 +/* 068384 7F033854 AFB3002C */ sw $s3, 0x2c($sp) +/* 068388 7F033858 AFB20028 */ sw $s2, 0x28($sp) +/* 06838C 7F03385C AFB10024 */ sw $s1, 0x24($sp) +/* 068390 7F033860 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068394 7F033864 AFA70044 */ sw $a3, 0x44($sp) +/* 068398 7F033868 10400041 */ beqz $v0, .L7F033970 +/* 06839C 7F03386C 00409825 */ move $s3, $v0 +/* 0683A0 7F033870 24010001 */ li $at, 1 +/* 0683A4 7F033874 1201000A */ beq $s0, $at, .L7F0338A0 +/* 0683A8 7F033878 02602025 */ move $a0, $s3 +/* 0683AC 7F03387C 24010002 */ li $at, 2 +/* 0683B0 7F033880 1201000B */ beq $s0, $at, .L7F0338B0 +/* 0683B4 7F033884 24010004 */ li $at, 4 +/* 0683B8 7F033888 1201000D */ beq $s0, $at, .L7F0338C0 +/* 0683BC 7F03388C 24010008 */ li $at, 8 +/* 0683C0 7F033890 1201000E */ beq $s0, $at, .L7F0338CC +/* 0683C4 7F033894 00000000 */ nop +/* 0683C8 7F033898 1000000C */ b .L7F0338CC +/* 0683CC 7F03389C 00000000 */ nop +.L7F0338A0: +/* 0683D0 7F0338A0 3C018005 */ lui $at, %hi(D_800520E8) +/* 0683D4 7F0338A4 C42420E8 */ lwc1 $f4, %lo(D_800520E8)($at) +/* 0683D8 7F0338A8 10000008 */ b .L7F0338CC +/* 0683DC 7F0338AC 4604A500 */ add.s $f20, $f20, $f4 +.L7F0338B0: +/* 0683E0 7F0338B0 3C018005 */ lui $at, %hi(D_800520EC) +/* 0683E4 7F0338B4 C42620EC */ lwc1 $f6, %lo(D_800520EC)($at) +/* 0683E8 7F0338B8 10000004 */ b .L7F0338CC +/* 0683EC 7F0338BC 4606A500 */ add.s $f20, $f20, $f6 +.L7F0338C0: +/* 0683F0 7F0338C0 3C018005 */ lui $at, %hi(D_800520F0) +/* 0683F4 7F0338C4 C42820F0 */ lwc1 $f8, %lo(D_800520F0)($at) +/* 0683F8 7F0338C8 4608A500 */ add.s $f20, $f20, $f8 +.L7F0338CC: +/* 0683FC 7F0338CC 3C018005 */ lui $at, %hi(D_800520F4) +/* 068400 7F0338D0 C42020F4 */ lwc1 $f0, %lo(D_800520F4)($at) +/* 068404 7F0338D4 4614003E */ c.le.s $f0, $f20 +/* 068408 7F0338D8 00000000 */ nop +/* 06840C 7F0338DC 45020003 */ bc1fl .L7F0338EC +/* 068410 7F0338E0 4406A000 */ mfc1 $a2, $f20 +/* 068414 7F0338E4 4600A501 */ sub.s $f20, $f20, $f0 +/* 068418 7F0338E8 4406A000 */ mfc1 $a2, $f20 +.L7F0338EC: +/* 06841C 7F0338EC 0FC0CDE0 */ jal sub_GAME_7F033780 +/* 068420 7F0338F0 02802825 */ move $a1, $s4 +/* 068424 7F0338F4 50400004 */ beql $v0, $zero, .L7F033908 +/* 068428 7F0338F8 8E6E0004 */ lw $t6, 4($s3) +/* 06842C 7F0338FC 1000001D */ b .L7F033974 +/* 068430 7F033900 8E620000 */ lw $v0, ($s3) +/* 068434 7F033904 8E6E0004 */ lw $t6, 4($s3) +.L7F033908: +/* 068438 7F033908 3C128007 */ lui $s2, %hi(ptr_setup_path_tbl) +/* 06843C 7F03390C 26525D00 */ addiu $s2, %lo(ptr_setup_path_tbl) # addiu $s2, $s2, 0x5d00 +/* 068440 7F033910 8DD10000 */ lw $s1, ($t6) +/* 068444 7F033914 00008025 */ move $s0, $zero +/* 068448 7F033918 06220016 */ bltzl $s1, .L7F033974 +/* 06844C 7F03391C 2402FFFF */ li $v0, -1 +/* 068450 7F033920 8E580000 */ lw $t8, ($s2) +.L7F033924: +/* 068454 7F033924 00117900 */ sll $t7, $s1, 4 +/* 068458 7F033928 4406A000 */ mfc1 $a2, $f20 +/* 06845C 7F03392C 02802825 */ move $a1, $s4 +/* 068460 7F033930 0FC0CDE0 */ jal sub_GAME_7F033780 +/* 068464 7F033934 01F82021 */ addu $a0, $t7, $t8 +/* 068468 7F033938 50400007 */ beql $v0, $zero, .L7F033958 +/* 06846C 7F03393C 8E6A0004 */ lw $t2, 4($s3) +/* 068470 7F033940 8E590000 */ lw $t9, ($s2) +/* 068474 7F033944 00114100 */ sll $t0, $s1, 4 +/* 068478 7F033948 03284821 */ addu $t1, $t9, $t0 +/* 06847C 7F03394C 10000009 */ b .L7F033974 +/* 068480 7F033950 8D220000 */ lw $v0, ($t1) +/* 068484 7F033954 8E6A0004 */ lw $t2, 4($s3) +.L7F033958: +/* 068488 7F033958 26100001 */ addiu $s0, $s0, 1 +/* 06848C 7F03395C 00105880 */ sll $t3, $s0, 2 +/* 068490 7F033960 014B6021 */ addu $t4, $t2, $t3 +/* 068494 7F033964 8D910000 */ lw $s1, ($t4) +/* 068498 7F033968 0623FFEE */ bgezl $s1, .L7F033924 +/* 06849C 7F03396C 8E580000 */ lw $t8, ($s2) +.L7F033970: +/* 0684A0 7F033970 2402FFFF */ li $v0, -1 +.L7F033974: +/* 0684A4 7F033974 8FBF0034 */ lw $ra, 0x34($sp) +/* 0684A8 7F033978 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0684AC 7F03397C 8FB00020 */ lw $s0, 0x20($sp) +/* 0684B0 7F033980 8FB10024 */ lw $s1, 0x24($sp) +/* 0684B4 7F033984 8FB20028 */ lw $s2, 0x28($sp) +/* 0684B8 7F033988 8FB3002C */ lw $s3, 0x2c($sp) +/* 0684BC 7F03398C 8FB40030 */ lw $s4, 0x30($sp) +/* 0684C0 7F033990 03E00008 */ jr $ra +/* 0684C4 7F033994 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void check_2328_preset_set_with_method(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_2328_preset_set_with_method +/* 0684C8 7F033998 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0684CC 7F03399C AFB00014 */ sw $s0, 0x14($sp) +/* 0684D0 7F0339A0 30B000FF */ andi $s0, $a1, 0xff +/* 0684D4 7F0339A4 AFB10018 */ sw $s1, 0x18($sp) +/* 0684D8 7F0339A8 24010010 */ li $at, 16 +/* 0684DC 7F0339AC 00808825 */ move $s1, $a0 +/* 0684E0 7F0339B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0684E4 7F0339B4 AFA5004C */ sw $a1, 0x4c($sp) +/* 0684E8 7F0339B8 12010004 */ beq $s0, $at, .L7F0339CC +/* 0684EC 7F0339BC 02003025 */ move $a2, $s0 +/* 0684F0 7F0339C0 24010020 */ li $at, 32 +/* 0684F4 7F0339C4 16010026 */ bne $s0, $at, .L7F033A60 +/* 0684F8 7F0339C8 00000000 */ nop +.L7F0339CC: +/* 0684FC 7F0339CC 8E300018 */ lw $s0, 0x18($s1) +/* 068500 7F0339D0 0FC225E6 */ jal get_curplayer_positiondata +/* 068504 7F0339D4 AFA60020 */ sw $a2, 0x20($sp) +/* 068508 7F0339D8 8E050014 */ lw $a1, 0x14($s0) +/* 06850C 7F0339DC AFA20040 */ sw $v0, 0x40($sp) +/* 068510 7F0339E0 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068514 7F0339E4 26040008 */ addiu $a0, $s0, 8 +/* 068518 7F0339E8 8FA30040 */ lw $v1, 0x40($sp) +/* 06851C 7F0339EC 00408025 */ move $s0, $v0 +/* 068520 7F0339F0 24640008 */ addiu $a0, $v1, 8 +/* 068524 7F0339F4 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068528 7F0339F8 8C650014 */ lw $a1, 0x14($v1) +/* 06852C 7F0339FC 8FA60020 */ lw $a2, 0x20($sp) +/* 068530 7F033A00 12000024 */ beqz $s0, .L7F033A94 +/* 068534 7F033A04 00402825 */ move $a1, $v0 +/* 068538 7F033A08 10400022 */ beqz $v0, .L7F033A94 +/* 06853C 7F033A0C 24010010 */ li $at, 16 +/* 068540 7F033A10 14C1000B */ bne $a2, $at, .L7F033A40 +/* 068544 7F033A14 02002025 */ move $a0, $s0 +/* 068548 7F033A18 27A6002C */ addiu $a2, $sp, 0x2c +/* 06854C 7F033A1C 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 068550 7F033A20 24070003 */ li $a3, 3 +/* 068554 7F033A24 28410003 */ slti $at, $v0, 3 +/* 068558 7F033A28 1420001A */ bnez $at, .L7F033A94 +/* 06855C 7F033A2C 8FAE0030 */ lw $t6, 0x30($sp) +/* 068560 7F033A30 8DCF0000 */ lw $t7, ($t6) +/* 068564 7F033A34 24020001 */ li $v0, 1 +/* 068568 7F033A38 10000017 */ b .L7F033A98 +/* 06856C 7F033A3C A62F0114 */ sh $t7, 0x114($s1) +.L7F033A40: +/* 068570 7F033A40 0FC23EE4 */ jal sub_GAME_7F08FB90 +/* 068574 7F033A44 02002025 */ move $a0, $s0 +/* 068578 7F033A48 50400013 */ beql $v0, $zero, .L7F033A98 +/* 06857C 7F033A4C 00001025 */ move $v0, $zero +/* 068580 7F033A50 8C580000 */ lw $t8, ($v0) +/* 068584 7F033A54 24020001 */ li $v0, 1 +/* 068588 7F033A58 1000000F */ b .L7F033A98 +/* 06858C 7F033A5C A6380114 */ sh $t8, 0x114($s1) +.L7F033A60: +/* 068590 7F033A60 0FC1B320 */ jal getsubroty +/* 068594 7F033A64 8E24001C */ lw $a0, 0x1c($s1) +/* 068598 7F033A68 8E220018 */ lw $v0, 0x18($s1) +/* 06859C 7F033A6C 44060000 */ mfc1 $a2, $f0 +/* 0685A0 7F033A70 320700FF */ andi $a3, $s0, 0xff +/* 0685A4 7F033A74 24440008 */ addiu $a0, $v0, 8 +/* 0685A8 7F033A78 0FC0CE0D */ jal sub_GAME_7F033834 +/* 0685AC 7F033A7C 8C450014 */ lw $a1, 0x14($v0) +/* 0685B0 7F033A80 04420005 */ bltzl $v0, .L7F033A98 +/* 0685B4 7F033A84 00001025 */ move $v0, $zero +/* 0685B8 7F033A88 A6220114 */ sh $v0, 0x114($s1) +/* 0685BC 7F033A8C 10000002 */ b .L7F033A98 +/* 0685C0 7F033A90 24020001 */ li $v0, 1 +.L7F033A94: +/* 0685C4 7F033A94 00001025 */ move $v0, $zero +.L7F033A98: +/* 0685C8 7F033A98 8FBF001C */ lw $ra, 0x1c($sp) +/* 0685CC 7F033A9C 8FB00014 */ lw $s0, 0x14($sp) +/* 0685D0 7F033AA0 8FB10018 */ lw $s1, 0x18($sp) +/* 0685D4 7F033AA4 03E00008 */ jr $ra +/* 0685D8 7F033AA8 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033AAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033AAC +/* 0685DC 7F033AAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0685E0 7F033AB0 30A700FF */ andi $a3, $a1, 0xff +/* 0685E4 7F033AB4 24010010 */ li $at, 16 +/* 0685E8 7F033AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0685EC 7F033ABC AFA40020 */ sw $a0, 0x20($sp) +/* 0685F0 7F033AC0 AFA50024 */ sw $a1, 0x24($sp) +/* 0685F4 7F033AC4 10E10004 */ beq $a3, $at, .L7F033AD8 +/* 0685F8 7F033AC8 00E01025 */ move $v0, $a3 +/* 0685FC 7F033ACC 24010020 */ li $at, 32 +/* 068600 7F033AD0 14410006 */ bne $v0, $at, .L7F033AEC +/* 068604 7F033AD4 00000000 */ nop +.L7F033AD8: +/* 068608 7F033AD8 8FA40020 */ lw $a0, 0x20($sp) +/* 06860C 7F033ADC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 068610 7F033AE0 30E500FF */ andi $a1, $a3, 0xff +/* 068614 7F033AE4 10000011 */ b .L7F033B2C +/* 068618 7F033AE8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033AEC: +/* 06861C 7F033AEC 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 068620 7F033AF0 A3A70027 */ sb $a3, 0x27($sp) +/* 068624 7F033AF4 0FC225E6 */ jal get_curplayer_positiondata +/* 068628 7F033AF8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 06862C 7F033AFC 93A70027 */ lbu $a3, 0x27($sp) +/* 068630 7F033B00 24440008 */ addiu $a0, $v0, 8 +/* 068634 7F033B04 8C450014 */ lw $a1, 0x14($v0) +/* 068638 7F033B08 0FC0CE0D */ jal sub_GAME_7F033834 +/* 06863C 7F033B0C 8FA6001C */ lw $a2, 0x1c($sp) +/* 068640 7F033B10 04400004 */ bltz $v0, .L7F033B24 +/* 068644 7F033B14 8FAE0020 */ lw $t6, 0x20($sp) +/* 068648 7F033B18 A5C20114 */ sh $v0, 0x114($t6) +/* 06864C 7F033B1C 10000002 */ b .L7F033B28 +/* 068650 7F033B20 24020001 */ li $v0, 1 +.L7F033B24: +/* 068654 7F033B24 00001025 */ move $v0, $zero +.L7F033B28: +/* 068658 7F033B28 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033B2C: +/* 06865C 7F033B2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068660 7F033B30 03E00008 */ jr $ra +/* 068664 7F033B34 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033B38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033B38 +/* 068668 7F033B38 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 06866C 7F033B3C 44856000 */ mtc1 $a1, $f12 +/* 068670 7F033B40 AFBF0064 */ sw $ra, 0x64($sp) +/* 068674 7F033B44 AFB5005C */ sw $s5, 0x5c($sp) +/* 068678 7F033B48 0080A825 */ move $s5, $a0 +/* 06867C 7F033B4C AFB60060 */ sw $s6, 0x60($sp) +/* 068680 7F033B50 AFB40058 */ sw $s4, 0x58($sp) +/* 068684 7F033B54 AFB30054 */ sw $s3, 0x54($sp) +/* 068688 7F033B58 AFB20050 */ sw $s2, 0x50($sp) +/* 06868C 7F033B5C AFB1004C */ sw $s1, 0x4c($sp) +/* 068690 7F033B60 AFB00048 */ sw $s0, 0x48($sp) +/* 068694 7F033B64 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 068698 7F033B68 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 06869C 7F033B6C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0686A0 7F033B70 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0686A4 7F033B74 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0686A8 7F033B78 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0686AC 7F033B7C 0FC07D4C */ jal get_numguards +/* 0686B0 7F033B80 E7AC006C */ swc1 $f12, 0x6c($sp) +/* 0686B4 7F033B84 8EA30018 */ lw $v1, 0x18($s5) +/* 0686B8 7F033B88 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0686BC 7F033B8C 0040A025 */ move $s4, $v0 +/* 0686C0 7F033B90 C4600008 */ lwc1 $f0, 8($v1) +/* 0686C4 7F033B94 C462000C */ lwc1 $f2, 0xc($v1) +/* 0686C8 7F033B98 C46E0010 */ lwc1 $f14, 0x10($v1) +/* 0686CC 7F033B9C 8C6E0014 */ lw $t6, 0x14($v1) +/* 0686D0 7F033BA0 00008825 */ move $s1, $zero +/* 0686D4 7F033BA4 460C0501 */ sub.s $f20, $f0, $f12 +/* 0686D8 7F033BA8 91D30003 */ lbu $s3, 3($t6) +/* 0686DC 7F033BAC 460C0580 */ add.s $f22, $f0, $f12 +/* 0686E0 7F033BB0 460C1601 */ sub.s $f24, $f2, $f12 +/* 0686E4 7F033BB4 460C1680 */ add.s $f26, $f2, $f12 +/* 0686E8 7F033BB8 460C7701 */ sub.s $f28, $f14, $f12 +/* 0686EC 7F033BBC 1840003C */ blez $v0, .L7F033CB0 +/* 0686F0 7F033BC0 460C7780 */ add.s $f30, $f14, $f12 +/* 0686F4 7F033BC4 3C168003 */ lui $s6, %hi(ptr_guard_data) +/* 0686F8 7F033BC8 26D6CC64 */ addiu $s6, %lo(ptr_guard_data) # addiu $s6, $s6, -0x339c +/* 0686FC 7F033BCC 00009025 */ move $s2, $zero +.L7F033BD0: +/* 068700 7F033BD0 8ECF0000 */ lw $t7, ($s6) +/* 068704 7F033BD4 024F8021 */ addu $s0, $s2, $t7 +/* 068708 7F033BD8 52150032 */ beql $s0, $s5, .L7F033CA4 +/* 06870C 7F033BDC 26310001 */ addiu $s1, $s1, 1 +/* 068710 7F033BE0 8E18001C */ lw $t8, 0x1c($s0) +/* 068714 7F033BE4 5300002F */ beql $t8, $zero, .L7F033CA4 +/* 068718 7F033BE8 26310001 */ addiu $s1, $s1, 1 +/* 06871C 7F033BEC 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 068720 7F033BF0 02002025 */ move $a0, $s0 +/* 068724 7F033BF4 5440002B */ bnezl $v0, .L7F033CA4 +/* 068728 7F033BF8 26310001 */ addiu $s1, $s1, 1 +/* 06872C 7F033BFC 8E030018 */ lw $v1, 0x18($s0) +/* 068730 7F033C00 24620008 */ addiu $v0, $v1, 8 +/* 068734 7F033C04 C4400000 */ lwc1 $f0, ($v0) +/* 068738 7F033C08 4600A03E */ c.le.s $f20, $f0 +/* 06873C 7F033C0C 00000000 */ nop +/* 068740 7F033C10 45020024 */ bc1fl .L7F033CA4 +/* 068744 7F033C14 26310001 */ addiu $s1, $s1, 1 +/* 068748 7F033C18 4616003E */ c.le.s $f0, $f22 +/* 06874C 7F033C1C 00000000 */ nop +/* 068750 7F033C20 45020020 */ bc1fl .L7F033CA4 +/* 068754 7F033C24 26310001 */ addiu $s1, $s1, 1 +/* 068758 7F033C28 C4400004 */ lwc1 $f0, 4($v0) +/* 06875C 7F033C2C 4600C03E */ c.le.s $f24, $f0 +/* 068760 7F033C30 00000000 */ nop +/* 068764 7F033C34 4502001B */ bc1fl .L7F033CA4 +/* 068768 7F033C38 26310001 */ addiu $s1, $s1, 1 +/* 06876C 7F033C3C 461A003E */ c.le.s $f0, $f26 +/* 068770 7F033C40 00000000 */ nop +/* 068774 7F033C44 45020017 */ bc1fl .L7F033CA4 +/* 068778 7F033C48 26310001 */ addiu $s1, $s1, 1 +/* 06877C 7F033C4C C4400008 */ lwc1 $f0, 8($v0) +/* 068780 7F033C50 4600E03E */ c.le.s $f28, $f0 +/* 068784 7F033C54 00000000 */ nop +/* 068788 7F033C58 45020012 */ bc1fl .L7F033CA4 +/* 06878C 7F033C5C 26310001 */ addiu $s1, $s1, 1 +/* 068790 7F033C60 461E003E */ c.le.s $f0, $f30 +/* 068794 7F033C64 00000000 */ nop +/* 068798 7F033C68 4502000E */ bc1fl .L7F033CA4 +/* 06879C 7F033C6C 26310001 */ addiu $s1, $s1, 1 +/* 0687A0 7F033C70 8C790014 */ lw $t9, 0x14($v1) +/* 0687A4 7F033C74 93250003 */ lbu $a1, 3($t9) +/* 0687A8 7F033C78 52650006 */ beql $s3, $a1, .L7F033C94 +/* 0687AC 7F033C7C 86080000 */ lh $t0, ($s0) +/* 0687B0 7F033C80 0FC2E3F4 */ jal sub_GAME_7F0B8FD0 +/* 0687B4 7F033C84 02602025 */ move $a0, $s3 +/* 0687B8 7F033C88 50400006 */ beql $v0, $zero, .L7F033CA4 +/* 0687BC 7F033C8C 26310001 */ addiu $s1, $s1, 1 +/* 0687C0 7F033C90 86080000 */ lh $t0, ($s0) +.L7F033C94: +/* 0687C4 7F033C94 24020001 */ li $v0, 1 +/* 0687C8 7F033C98 10000006 */ b .L7F033CB4 +/* 0687CC 7F033C9C A6A80116 */ sh $t0, 0x116($s5) +/* 0687D0 7F033CA0 26310001 */ addiu $s1, $s1, 1 +.L7F033CA4: +/* 0687D4 7F033CA4 0234082A */ slt $at, $s1, $s4 +/* 0687D8 7F033CA8 1420FFC9 */ bnez $at, .L7F033BD0 +/* 0687DC 7F033CAC 265201DC */ addiu $s2, $s2, 0x1dc +.L7F033CB0: +/* 0687E0 7F033CB0 00001025 */ move $v0, $zero +.L7F033CB4: +/* 0687E4 7F033CB4 8FBF0064 */ lw $ra, 0x64($sp) +/* 0687E8 7F033CB8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0687EC 7F033CBC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0687F0 7F033CC0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0687F4 7F033CC4 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0687F8 7F033CC8 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0687FC 7F033CCC D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 068800 7F033CD0 8FB00048 */ lw $s0, 0x48($sp) +/* 068804 7F033CD4 8FB1004C */ lw $s1, 0x4c($sp) +/* 068808 7F033CD8 8FB20050 */ lw $s2, 0x50($sp) +/* 06880C 7F033CDC 8FB30054 */ lw $s3, 0x54($sp) +/* 068810 7F033CE0 8FB40058 */ lw $s4, 0x58($sp) +/* 068814 7F033CE4 8FB5005C */ lw $s5, 0x5c($sp) +/* 068818 7F033CE8 8FB60060 */ lw $s6, 0x60($sp) +/* 06881C 7F033CEC 03E00008 */ jr $ra +/* 068820 7F033CF0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033CF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033CF4 +/* 068824 7F033CF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068828 7F033CF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06882C 7F033CFC 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 068830 7F033D00 AFA40018 */ sw $a0, 0x18($sp) +/* 068834 7F033D04 8FAE0018 */ lw $t6, 0x18($sp) +/* 068838 7F033D08 A5C20116 */ sh $v0, 0x116($t6) +/* 06883C 7F033D0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068840 7F033D10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068844 7F033D14 03E00008 */ jr $ra +/* 068848 7F033D18 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D1C +/* 06884C 7F033D1C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068850 7F033D20 AFBF0014 */ sw $ra, 0x14($sp) +/* 068854 7F033D24 AFA40020 */ sw $a0, 0x20($sp) +/* 068858 7F033D28 0FC0CC10 */ jal get_handle_for_guard_id +/* 06885C 7F033D2C AFA60028 */ sw $a2, 0x28($sp) +/* 068860 7F033D30 10400006 */ beqz $v0, .L7F033D4C +/* 068864 7F033D34 8FA40020 */ lw $a0, 0x20($sp) +/* 068868 7F033D38 8FA50028 */ lw $a1, 0x28($sp) +/* 06886C 7F033D3C 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 068870 7F033D40 AFA2001C */ sw $v0, 0x1c($sp) +/* 068874 7F033D44 8FA3001C */ lw $v1, 0x1c($sp) +/* 068878 7F033D48 A4620116 */ sh $v0, 0x116($v1) +.L7F033D4C: +/* 06887C 7F033D4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068880 7F033D50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068884 7F033D54 03E00008 */ jr $ra +/* 068888 7F033D58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D5C +/* 06888C 7F033D5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068890 7F033D60 AFBF0014 */ sw $ra, 0x14($sp) +/* 068894 7F033D64 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068898 7F033D68 AFA40018 */ sw $a0, 0x18($sp) +/* 06889C 7F033D6C 8FAE0018 */ lw $t6, 0x18($sp) +/* 0688A0 7F033D70 A5C20114 */ sh $v0, 0x114($t6) +/* 0688A4 7F033D74 8FBF0014 */ lw $ra, 0x14($sp) +/* 0688A8 7F033D78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0688AC 7F033D7C 03E00008 */ jr $ra +/* 0688B0 7F033D80 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D84 +/* 0688B4 7F033D84 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0688B8 7F033D88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0688BC 7F033D8C AFA40020 */ sw $a0, 0x20($sp) +/* 0688C0 7F033D90 0FC0CC10 */ jal get_handle_for_guard_id +/* 0688C4 7F033D94 AFA60028 */ sw $a2, 0x28($sp) +/* 0688C8 7F033D98 10400006 */ beqz $v0, .L7F033DB4 +/* 0688CC 7F033D9C 8FA40020 */ lw $a0, 0x20($sp) +/* 0688D0 7F033DA0 8FA50028 */ lw $a1, 0x28($sp) +/* 0688D4 7F033DA4 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 0688D8 7F033DA8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0688DC 7F033DAC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0688E0 7F033DB0 A4620114 */ sh $v0, 0x114($v1) +.L7F033DB4: +/* 0688E4 7F033DB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0688E8 7F033DB8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0688EC 7F033DBC 03E00008 */ jr $ra +/* 0688F0 7F033DC0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033DC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033DC4 +/* 0688F4 7F033DC4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0688F8 7F033DC8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0688FC 7F033DCC AFB10028 */ sw $s1, 0x28($sp) +/* 068900 7F033DD0 AFB00024 */ sw $s0, 0x24($sp) +/* 068904 7F033DD4 0FC225E6 */ jal get_curplayer_positiondata +/* 068908 7F033DD8 AFA40060 */ sw $a0, 0x60($sp) +/* 06890C 7F033DDC 8FAE0060 */ lw $t6, 0x60($sp) +/* 068910 7F033DE0 00408825 */ move $s1, $v0 +/* 068914 7F033DE4 8DD00018 */ lw $s0, 0x18($t6) +/* 068918 7F033DE8 8E0F0014 */ lw $t7, 0x14($s0) +/* 06891C 7F033DEC 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 068920 7F033DF0 AFAF0054 */ sw $t7, 0x54($sp) +/* 068924 7F033DF4 C6240010 */ lwc1 $f4, 0x10($s1) +/* 068928 7F033DF8 8E050008 */ lw $a1, 8($s0) +/* 06892C 7F033DFC 8E060010 */ lw $a2, 0x10($s0) +/* 068930 7F033E00 8E270008 */ lw $a3, 8($s1) +/* 068934 7F033E04 27A40054 */ addiu $a0, $sp, 0x54 +/* 068938 7F033E08 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06893C 7F033E0C E7A40010 */ swc1 $f4, 0x10($sp) +/* 068940 7F033E10 10400003 */ beqz $v0, .L7F033E20 +/* 068944 7F033E14 27A40048 */ addiu $a0, $sp, 0x48 +/* 068948 7F033E18 1000001F */ b .L7F033E98 +/* 06894C 7F033E1C 00001025 */ move $v0, $zero +.L7F033E20: +/* 068950 7F033E20 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 068954 7F033E24 27A5003C */ addiu $a1, $sp, 0x3c +/* 068958 7F033E28 8E060014 */ lw $a2, 0x14($s0) +/* 06895C 7F033E2C 26230008 */ addiu $v1, $s1, 8 +/* 068960 7F033E30 AFA30010 */ sw $v1, 0x10($sp) +/* 068964 7F033E34 8E380014 */ lw $t8, 0x14($s1) +/* 068968 7F033E38 26050008 */ addiu $a1, $s0, 8 +/* 06896C 7F033E3C AFA50038 */ sw $a1, 0x38($sp) +/* 068970 7F033E40 AFA30034 */ sw $v1, 0x34($sp) +/* 068974 7F033E44 AFA00018 */ sw $zero, 0x18($sp) +/* 068978 7F033E48 8FA40060 */ lw $a0, 0x60($sp) +/* 06897C 7F033E4C 27A70048 */ addiu $a3, $sp, 0x48 +/* 068980 7F033E50 0FC0C12B */ jal sub_GAME_7F0304AC +/* 068984 7F033E54 AFB80014 */ sw $t8, 0x14($sp) +/* 068988 7F033E58 8FA30034 */ lw $v1, 0x34($sp) +/* 06898C 7F033E5C 1440000B */ bnez $v0, .L7F033E8C +/* 068990 7F033E60 8FA50038 */ lw $a1, 0x38($sp) +/* 068994 7F033E64 8E060014 */ lw $a2, 0x14($s0) +/* 068998 7F033E68 AFA30010 */ sw $v1, 0x10($sp) +/* 06899C 7F033E6C 8E390014 */ lw $t9, 0x14($s1) +/* 0689A0 7F033E70 AFA00018 */ sw $zero, 0x18($sp) +/* 0689A4 7F033E74 8FA40060 */ lw $a0, 0x60($sp) +/* 0689A8 7F033E78 27A7003C */ addiu $a3, $sp, 0x3c +/* 0689AC 7F033E7C 0FC0C12B */ jal sub_GAME_7F0304AC +/* 0689B0 7F033E80 AFB90014 */ sw $t9, 0x14($sp) +/* 0689B4 7F033E84 50400004 */ beql $v0, $zero, .L7F033E98 +/* 0689B8 7F033E88 00001025 */ move $v0, $zero +.L7F033E8C: +/* 0689BC 7F033E8C 10000002 */ b .L7F033E98 +/* 0689C0 7F033E90 24020001 */ li $v0, 1 +/* 0689C4 7F033E94 00001025 */ move $v0, $zero +.L7F033E98: +/* 0689C8 7F033E98 8FBF002C */ lw $ra, 0x2c($sp) +/* 0689CC 7F033E9C 8FB00024 */ lw $s0, 0x24($sp) +/* 0689D0 7F033EA0 8FB10028 */ lw $s1, 0x28($sp) +/* 0689D4 7F033EA4 03E00008 */ jr $ra +/* 0689D8 7F033EA8 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033EAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033EAC +/* 0689DC 7F033EAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0689E0 7F033EB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0689E4 7F033EB4 AFA40030 */ sw $a0, 0x30($sp) +/* 0689E8 7F033EB8 240E0001 */ li $t6, 1 +/* 0689EC 7F033EBC AFA50034 */ sw $a1, 0x34($sp) +/* 0689F0 7F033EC0 AFAE002C */ sw $t6, 0x2c($sp) +/* 0689F4 7F033EC4 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0689F8 7F033EC8 00A02025 */ move $a0, $a1 +/* 0689FC 7F033ECC 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 068A00 7F033ED0 00402025 */ move $a0, $v0 +/* 068A04 7F033ED4 10400017 */ beqz $v0, .L7F033F34 +/* 068A08 7F033ED8 8FA40030 */ lw $a0, 0x30($sp) +/* 068A0C 7F033EDC 0FC2ECB2 */ jal sub_GAME_7F0BB2C8 +/* 068A10 7F033EE0 24050000 */ li $a1, 0 +/* 068A14 7F033EE4 50400014 */ beql $v0, $zero, .L7F033F38 +/* 068A18 7F033EE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 068A1C 7F033EEC 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 068A20 7F033EF0 8FA40034 */ lw $a0, 0x34($sp) +/* 068A24 7F033EF4 00402025 */ move $a0, $v0 +/* 068A28 7F033EF8 0FC2CF03 */ jal sub_GAME_7F0B3C0C +/* 068A2C 7F033EFC 27A5001C */ addiu $a1, $sp, 0x1c +/* 068A30 7F033F00 10400008 */ beqz $v0, .L7F033F24 +/* 068A34 7F033F04 8FA40030 */ lw $a0, 0x30($sp) +/* 068A38 7F033F08 8FA40030 */ lw $a0, 0x30($sp) +/* 068A3C 7F033F0C 3C054348 */ lui $a1, 0x4348 +/* 068A40 7F033F10 0FC1E2FD */ jal sub_GAME_7F078BF4 +/* 068A44 7F033F14 27A6001C */ addiu $a2, $sp, 0x1c +/* 068A48 7F033F18 2C4F0001 */ sltiu $t7, $v0, 1 +/* 068A4C 7F033F1C 10000005 */ b .L7F033F34 +/* 068A50 7F033F20 AFAF002C */ sw $t7, 0x2c($sp) +.L7F033F24: +/* 068A54 7F033F24 0FC1E296 */ jal sub_GAME_7F078A58 +/* 068A58 7F033F28 3C054348 */ lui $a1, 0x4348 +/* 068A5C 7F033F2C 2C580001 */ sltiu $t8, $v0, 1 +/* 068A60 7F033F30 AFB8002C */ sw $t8, 0x2c($sp) +.L7F033F34: +/* 068A64 7F033F34 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033F38: +/* 068A68 7F033F38 8FA2002C */ lw $v0, 0x2c($sp) +/* 068A6C 7F033F3C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068A70 7F033F40 03E00008 */ jr $ra +/* 068A74 7F033F44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033F48(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520F8 +.word 0x3f490fdb /*0.78539819*/ +glabel D_800520FC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F033F48 +/* 068A78 7F033F48 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 068A7C 7F033F4C AFBF007C */ sw $ra, 0x7c($sp) +/* 068A80 7F033F50 AFB60078 */ sw $s6, 0x78($sp) +/* 068A84 7F033F54 AFB50074 */ sw $s5, 0x74($sp) +/* 068A88 7F033F58 AFB40070 */ sw $s4, 0x70($sp) +/* 068A8C 7F033F5C AFB3006C */ sw $s3, 0x6c($sp) +/* 068A90 7F033F60 AFB20068 */ sw $s2, 0x68($sp) +/* 068A94 7F033F64 AFB10064 */ sw $s1, 0x64($sp) +/* 068A98 7F033F68 AFB00060 */ sw $s0, 0x60($sp) +/* 068A9C 7F033F6C F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 068AA0 7F033F70 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 068AA4 7F033F74 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 068AA8 7F033F78 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 068AAC 7F033F7C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 068AB0 7F033F80 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 068AB4 7F033F84 8CAE0000 */ lw $t6, ($a1) +/* 068AB8 7F033F88 00808025 */ move $s0, $a0 +/* 068ABC 7F033F8C 4486A000 */ mtc1 $a2, $f20 +/* 068AC0 7F033F90 AFAE0088 */ sw $t6, 0x88($sp) +/* 068AC4 7F033F94 00A0A825 */ move $s5, $a1 +/* 068AC8 7F033F98 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 068ACC 7F033F9C 4481C000 */ mtc1 $at, $f24 +/* 068AD0 7F033FA0 4480B000 */ mtc1 $zero, $f22 +/* 068AD4 7F033FA4 8E050000 */ lw $a1, ($s0) +/* 068AD8 7F033FA8 8E060008 */ lw $a2, 8($s0) +/* 068ADC 7F033FAC 27B20088 */ addiu $s2, $sp, 0x88 +/* 068AE0 7F033FB0 00E0B025 */ move $s6, $a3 +/* 068AE4 7F033FB4 240F001F */ li $t7, 31 +/* 068AE8 7F033FB8 AFAF0010 */ sw $t7, 0x10($sp) +/* 068AEC 7F033FBC 3C0741A0 */ lui $a3, 0x41a0 +/* 068AF0 7F033FC0 02402025 */ move $a0, $s2 +/* 068AF4 7F033FC4 E7B80018 */ swc1 $f24, 0x18($sp) +/* 068AF8 7F033FC8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 068AFC 7F033FCC E7B60014 */ swc1 $f22, 0x14($sp) +/* 068B00 7F033FD0 04410009 */ bgez $v0, .L7F033FF8 +/* 068B04 7F033FD4 00000000 */ nop +/* 068B08 7F033FD8 16C00005 */ bnez $s6, .L7F033FF0 +/* 068B0C 7F033FDC 02002025 */ move $a0, $s0 +/* 068B10 7F033FE0 0FC0CFAB */ jal sub_GAME_7F033EAC +/* 068B14 7F033FE4 8EA50000 */ lw $a1, ($s5) +/* 068B18 7F033FE8 10400003 */ beqz $v0, .L7F033FF8 +/* 068B1C 7F033FEC 00000000 */ nop +.L7F033FF0: +/* 068B20 7F033FF0 1000004A */ b .L7F03411C +/* 068B24 7F033FF4 24020001 */ li $v0, 1 +.L7F033FF8: +/* 068B28 7F033FF8 3C018005 */ lui $at, %hi(D_800520F8) +/* 068B2C 7F033FFC C43E20F8 */ lwc1 $f30, %lo(D_800520F8)($at) +/* 068B30 7F034000 3C018005 */ lui $at, %hi(D_800520FC) +/* 068B34 7F034004 C43C20FC */ lwc1 $f28, %lo(D_800520FC)($at) +/* 068B38 7F034008 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 068B3C 7F03400C 4481D000 */ mtc1 $at, $f26 +/* 068B40 7F034010 00008825 */ move $s1, $zero +/* 068B44 7F034014 24140008 */ li $s4, 8 +/* 068B48 7F034018 27B3008C */ addiu $s3, $sp, 0x8c +.L7F03401C: +/* 068B4C 7F03401C 0FC15FAB */ jal sinf +/* 068B50 7F034020 4600A306 */ mov.s $f12, $f20 +/* 068B54 7F034024 461A0102 */ mul.s $f4, $f0, $f26 +/* 068B58 7F034028 C6060000 */ lwc1 $f6, ($s0) +/* 068B5C 7F03402C 4600A306 */ mov.s $f12, $f20 +/* 068B60 7F034030 46062200 */ add.s $f8, $f4, $f6 +/* 068B64 7F034034 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 068B68 7F034038 C60A0004 */ lwc1 $f10, 4($s0) +/* 068B6C 7F03403C 0FC15FA8 */ jal cosf +/* 068B70 7F034040 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 068B74 7F034044 461A0402 */ mul.s $f16, $f0, $f26 +/* 068B78 7F034048 C6120008 */ lwc1 $f18, 8($s0) +/* 068B7C 7F03404C 24190013 */ li $t9, 19 +/* 068B80 7F034050 02402025 */ move $a0, $s2 +/* 068B84 7F034054 8FA7008C */ lw $a3, 0x8c($sp) +/* 068B88 7F034058 46128100 */ add.s $f4, $f16, $f18 +/* 068B8C 7F03405C E7A40094 */ swc1 $f4, 0x94($sp) +/* 068B90 7F034060 8EB80000 */ lw $t8, ($s5) +/* 068B94 7F034064 AFB80088 */ sw $t8, 0x88($sp) +/* 068B98 7F034068 8E060008 */ lw $a2, 8($s0) +/* 068B9C 7F03406C 8E050000 */ lw $a1, ($s0) +/* 068BA0 7F034070 E7B80024 */ swc1 $f24, 0x24($sp) +/* 068BA4 7F034074 E7B60020 */ swc1 $f22, 0x20($sp) +/* 068BA8 7F034078 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 068BAC 7F03407C E7B60018 */ swc1 $f22, 0x18($sp) +/* 068BB0 7F034080 AFB90014 */ sw $t9, 0x14($sp) +/* 068BB4 7F034084 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 068BB8 7F034088 E7A40010 */ swc1 $f4, 0x10($sp) +/* 068BBC 7F03408C 10400019 */ beqz $v0, .L7F0340F4 +/* 068BC0 7F034090 02402025 */ move $a0, $s2 +/* 068BC4 7F034094 2408001F */ li $t0, 31 +/* 068BC8 7F034098 AFA80010 */ sw $t0, 0x10($sp) +/* 068BCC 7F03409C 8FA5008C */ lw $a1, 0x8c($sp) +/* 068BD0 7F0340A0 8FA60094 */ lw $a2, 0x94($sp) +/* 068BD4 7F0340A4 3C0741A0 */ lui $a3, 0x41a0 +/* 068BD8 7F0340A8 E7B60014 */ swc1 $f22, 0x14($sp) +/* 068BDC 7F0340AC 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 068BE0 7F0340B0 E7B80018 */ swc1 $f24, 0x18($sp) +/* 068BE4 7F0340B4 0441000F */ bgez $v0, .L7F0340F4 +/* 068BE8 7F0340B8 02602025 */ move $a0, $s3 +/* 068BEC 7F0340BC 56C00006 */ bnezl $s6, .L7F0340D8 +/* 068BF0 7F0340C0 8FA90088 */ lw $t1, 0x88($sp) +/* 068BF4 7F0340C4 0FC0CFAB */ jal sub_GAME_7F033EAC +/* 068BF8 7F0340C8 8FA50088 */ lw $a1, 0x88($sp) +/* 068BFC 7F0340CC 5040000A */ beql $v0, $zero, .L7F0340F8 +/* 068C00 7F0340D0 461EA500 */ add.s $f20, $f20, $f30 +/* 068C04 7F0340D4 8FA90088 */ lw $t1, 0x88($sp) +.L7F0340D8: +/* 068C08 7F0340D8 24020001 */ li $v0, 1 +/* 068C0C 7F0340DC AEA90000 */ sw $t1, ($s5) +/* 068C10 7F0340E0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 068C14 7F0340E4 E6060000 */ swc1 $f6, ($s0) +/* 068C18 7F0340E8 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 068C1C 7F0340EC 1000000B */ b .L7F03411C +/* 068C20 7F0340F0 E6080008 */ swc1 $f8, 8($s0) +.L7F0340F4: +/* 068C24 7F0340F4 461EA500 */ add.s $f20, $f20, $f30 +.L7F0340F8: +/* 068C28 7F0340F8 26310001 */ addiu $s1, $s1, 1 +/* 068C2C 7F0340FC 4614E03E */ c.le.s $f28, $f20 +/* 068C30 7F034100 00000000 */ nop +/* 068C34 7F034104 45000002 */ bc1f .L7F034110 +/* 068C38 7F034108 00000000 */ nop +/* 068C3C 7F03410C 461CA501 */ sub.s $f20, $f20, $f28 +.L7F034110: +/* 068C40 7F034110 1634FFC2 */ bne $s1, $s4, .L7F03401C +/* 068C44 7F034114 00000000 */ nop +/* 068C48 7F034118 00001025 */ move $v0, $zero +.L7F03411C: +/* 068C4C 7F03411C 8FBF007C */ lw $ra, 0x7c($sp) +/* 068C50 7F034120 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 068C54 7F034124 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 068C58 7F034128 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 068C5C 7F03412C D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 068C60 7F034130 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 068C64 7F034134 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 068C68 7F034138 8FB00060 */ lw $s0, 0x60($sp) +/* 068C6C 7F03413C 8FB10064 */ lw $s1, 0x64($sp) +/* 068C70 7F034140 8FB20068 */ lw $s2, 0x68($sp) +/* 068C74 7F034144 8FB3006C */ lw $s3, 0x6c($sp) +/* 068C78 7F034148 8FB40070 */ lw $s4, 0x70($sp) +/* 068C7C 7F03414C 8FB50074 */ lw $s5, 0x74($sp) +/* 068C80 7F034150 8FB60078 */ lw $s6, 0x78($sp) +/* 068C84 7F034154 03E00008 */ jr $ra +/* 068C88 7F034158 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void actionblock_guard_constructor_BDBE(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actionblock_guard_constructor_BDBE +/* 068C8C 7F03415C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 068C90 7F034160 AFBF001C */ sw $ra, 0x1c($sp) +/* 068C94 7F034164 AFA40040 */ sw $a0, 0x40($sp) +/* 068C98 7F034168 AFA50044 */ sw $a1, 0x44($sp) +/* 068C9C 7F03416C AFA60048 */ sw $a2, 0x48($sp) +/* 068CA0 7F034170 0FC07FF0 */ jal get_next_available_guardID +/* 068CA4 7F034174 AFA7004C */ sw $a3, 0x4c($sp) +/* 068CA8 7F034178 28410003 */ slti $at, $v0, 3 +/* 068CAC 7F03417C 14200031 */ bnez $at, .L7F034244 +/* 068CB0 7F034180 8FA30048 */ lw $v1, 0x48($sp) +/* 068CB4 7F034184 8FAE0044 */ lw $t6, 0x44($sp) +/* 068CB8 7F034188 05C30006 */ bgezl $t6, .L7F0341A4 +/* 068CBC 7F03418C C4640000 */ lwc1 $f4, ($v1) +/* 068CC0 7F034190 0FC08D6B */ jal select_psuedorandom_heads +/* 068CC4 7F034194 8FA40040 */ lw $a0, 0x40($sp) +/* 068CC8 7F034198 8FA30048 */ lw $v1, 0x48($sp) +/* 068CCC 7F03419C AFA20044 */ sw $v0, 0x44($sp) +/* 068CD0 7F0341A0 C4640000 */ lwc1 $f4, ($v1) +.L7F0341A4: +/* 068CD4 7F0341A4 8FA70058 */ lw $a3, 0x58($sp) +/* 068CD8 7F0341A8 8FAF004C */ lw $t7, 0x4c($sp) +/* 068CDC 7F0341AC E7A40030 */ swc1 $f4, 0x30($sp) +/* 068CE0 7F0341B0 C4660004 */ lwc1 $f6, 4($v1) +/* 068CE4 7F0341B4 30F80010 */ andi $t8, $a3, 0x10 +/* 068CE8 7F0341B8 0018382B */ sltu $a3, $zero, $t8 +/* 068CEC 7F0341BC E7A60034 */ swc1 $f6, 0x34($sp) +/* 068CF0 7F0341C0 C4680008 */ lwc1 $f8, 8($v1) +/* 068CF4 7F0341C4 27A40030 */ addiu $a0, $sp, 0x30 +/* 068CF8 7F0341C8 27A50028 */ addiu $a1, $sp, 0x28 +/* 068CFC 7F0341CC 8FA60050 */ lw $a2, 0x50($sp) +/* 068D00 7F0341D0 AFAF0028 */ sw $t7, 0x28($sp) +/* 068D04 7F0341D4 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 068D08 7F0341D8 E7A80038 */ swc1 $f8, 0x38($sp) +/* 068D0C 7F0341DC 10400019 */ beqz $v0, .L7F034244 +/* 068D10 7F0341E0 8FA40040 */ lw $a0, 0x40($sp) +/* 068D14 7F0341E4 8FA50044 */ lw $a1, 0x44($sp) +/* 068D18 7F0341E8 0FC08D34 */ jal retrieve_header_for_body_and_head +/* 068D1C 7F0341EC 8FA60058 */ lw $a2, 0x58($sp) +/* 068D20 7F0341F0 10400014 */ beqz $v0, .L7F034244 +/* 068D24 7F0341F4 00402025 */ move $a0, $v0 +/* 068D28 7F0341F8 8FA80054 */ lw $t0, 0x54($sp) +/* 068D2C 7F0341FC 27A50030 */ addiu $a1, $sp, 0x30 +/* 068D30 7F034200 8FA60050 */ lw $a2, 0x50($sp) +/* 068D34 7F034204 8FA70028 */ lw $a3, 0x28($sp) +/* 068D38 7F034208 0FC080EE */ jal replace_GUARDdata_with_actual_values +/* 068D3C 7F03420C AFA80010 */ sw $t0, 0x10($sp) +/* 068D40 7F034210 1040000C */ beqz $v0, .L7F034244 +/* 068D44 7F034214 00402025 */ move $a0, $v0 +/* 068D48 7F034218 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 068D4C 7F03421C AFA2003C */ sw $v0, 0x3c($sp) +/* 068D50 7F034220 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 068D54 7F034224 8FA4003C */ lw $a0, 0x3c($sp) +/* 068D58 7F034228 8FA2003C */ lw $v0, 0x3c($sp) +/* 068D5C 7F03422C 8FA90044 */ lw $t1, 0x44($sp) +/* 068D60 7F034230 8C430004 */ lw $v1, 4($v0) +/* 068D64 7F034234 A0690006 */ sb $t1, 6($v1) +/* 068D68 7F034238 8FAA0040 */ lw $t2, 0x40($sp) +/* 068D6C 7F03423C 10000002 */ b .L7F034248 +/* 068D70 7F034240 A06A000F */ sb $t2, 0xf($v1) +.L7F034244: +/* 068D74 7F034244 00001025 */ move $v0, $zero +.L7F034248: +/* 068D78 7F034248 8FBF001C */ lw $ra, 0x1c($sp) +/* 068D7C 7F03424C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 068D80 7F034250 03E00008 */ jr $ra +/* 068D84 7F034254 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void guard_constructor_BD(void) { + +} +#else +GLOBAL_ASM( +.text +glabel guard_constructor_BD +/* 068D88 7F034258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 068D8C 7F03425C AFBF0024 */ sw $ra, 0x24($sp) +/* 068D90 7F034260 AFA50034 */ sw $a1, 0x34($sp) +/* 068D94 7F034264 AFA60038 */ sw $a2, 0x38($sp) +/* 068D98 7F034268 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068D9C 7F03426C 00E02825 */ move $a1, $a3 +/* 068DA0 7F034270 28412710 */ slti $at, $v0, 0x2710 +/* 068DA4 7F034274 1020000A */ beqz $at, .L7F0342A0 +/* 068DA8 7F034278 0002C100 */ sll $t8, $v0, 4 +/* 068DAC 7F03427C 00027080 */ sll $t6, $v0, 2 +/* 068DB0 7F034280 01C27023 */ subu $t6, $t6, $v0 +/* 068DB4 7F034284 000E7080 */ sll $t6, $t6, 2 +/* 068DB8 7F034288 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068DBC 7F03428C 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068DC0 7F034290 01C27023 */ subu $t6, $t6, $v0 +/* 068DC4 7F034294 000E7080 */ sll $t6, $t6, 2 +/* 068DC8 7F034298 10000009 */ b .L7F0342C0 +/* 068DCC 7F03429C 01CF3021 */ addu $a2, $t6, $t7 +.L7F0342A0: +/* 068DD0 7F0342A0 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068DD4 7F0342A4 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068DD8 7F0342A8 0302C021 */ addu $t8, $t8, $v0 +/* 068DDC 7F0342AC 0018C080 */ sll $t8, $t8, 2 +/* 068DE0 7F0342B0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068DE4 7F0342B4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068DE8 7F0342B8 03193021 */ addu $a2, $t8, $t9 +/* 068DEC 7F0342BC 00C13021 */ addu $a2, $a2, $at +.L7F0342C0: +/* 068DF0 7F0342C0 C4CC0018 */ lwc1 $f12, 0x18($a2) +/* 068DF4 7F0342C4 C4CE0020 */ lwc1 $f14, 0x20($a2) +/* 068DF8 7F0342C8 0FC16A8C */ jal atan2f +/* 068DFC 7F0342CC AFA6002C */ sw $a2, 0x2c($sp) +/* 068E00 7F0342D0 8FA6002C */ lw $a2, 0x2c($sp) +/* 068E04 7F0342D4 8FA80040 */ lw $t0, 0x40($sp) +/* 068E08 7F0342D8 8FA90044 */ lw $t1, 0x44($sp) +/* 068E0C 7F0342DC 8CC70028 */ lw $a3, 0x28($a2) +/* 068E10 7F0342E0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 068E14 7F0342E4 8FA40034 */ lw $a0, 0x34($sp) +/* 068E18 7F0342E8 8FA50038 */ lw $a1, 0x38($sp) +/* 068E1C 7F0342EC AFA80014 */ sw $t0, 0x14($sp) +/* 068E20 7F0342F0 0FC0D057 */ jal actionblock_guard_constructor_BDBE +/* 068E24 7F0342F4 AFA90018 */ sw $t1, 0x18($sp) +/* 068E28 7F0342F8 8FBF0024 */ lw $ra, 0x24($sp) +/* 068E2C 7F0342FC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068E30 7F034300 03E00008 */ jr $ra +/* 068E34 7F034304 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void guard_constructor_BE(void) { + +} +#else +GLOBAL_ASM( +.text +glabel guard_constructor_BE +/* 068E38 7F034308 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 068E3C 7F03430C AFBF0024 */ sw $ra, 0x24($sp) +/* 068E40 7F034310 AFA50034 */ sw $a1, 0x34($sp) +/* 068E44 7F034314 AFA60038 */ sw $a2, 0x38($sp) +/* 068E48 7F034318 0FC0CC10 */ jal get_handle_for_guard_id +/* 068E4C 7F03431C 00E02825 */ move $a1, $a3 +/* 068E50 7F034320 8C4E0014 */ lw $t6, 0x14($v0) +/* 068E54 7F034324 31CF0008 */ andi $t7, $t6, 8 +/* 068E58 7F034328 55E00013 */ bnezl $t7, .L7F034378 +/* 068E5C 7F03432C 00001025 */ move $v0, $zero +/* 068E60 7F034330 8C44001C */ lw $a0, 0x1c($v0) +/* 068E64 7F034334 0FC1B320 */ jal getsubroty +/* 068E68 7F034338 AFA2002C */ sw $v0, 0x2c($sp) +/* 068E6C 7F03433C 8FA3002C */ lw $v1, 0x2c($sp) +/* 068E70 7F034340 8FB80040 */ lw $t8, 0x40($sp) +/* 068E74 7F034344 8FB90044 */ lw $t9, 0x44($sp) +/* 068E78 7F034348 8C620018 */ lw $v0, 0x18($v1) +/* 068E7C 7F03434C 8FA40034 */ lw $a0, 0x34($sp) +/* 068E80 7F034350 8FA50038 */ lw $a1, 0x38($sp) +/* 068E84 7F034354 8C470014 */ lw $a3, 0x14($v0) +/* 068E88 7F034358 E7A00010 */ swc1 $f0, 0x10($sp) +/* 068E8C 7F03435C AFB80014 */ sw $t8, 0x14($sp) +/* 068E90 7F034360 AFB90018 */ sw $t9, 0x18($sp) +/* 068E94 7F034364 0FC0D057 */ jal actionblock_guard_constructor_BDBE +/* 068E98 7F034368 24460008 */ addiu $a2, $v0, 8 +/* 068E9C 7F03436C 10000003 */ b .L7F03437C +/* 068EA0 7F034370 8FBF0024 */ lw $ra, 0x24($sp) +/* 068EA4 7F034374 00001025 */ move $v0, $zero +.L7F034378: +/* 068EA8 7F034378 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03437C: +/* 068EAC 7F03437C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068EB0 7F034380 03E00008 */ jr $ra +/* 068EB4 7F034384 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actorID_is_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actorID_is_at_preset +/* 068EB8 7F034388 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068EBC 7F03438C AFBF0014 */ sw $ra, 0x14($sp) +/* 068EC0 7F034390 AFA40020 */ sw $a0, 0x20($sp) +/* 068EC4 7F034394 0FC0CC10 */ jal get_handle_for_guard_id +/* 068EC8 7F034398 AFA60028 */ sw $a2, 0x28($sp) +/* 068ECC 7F03439C 8FA40020 */ lw $a0, 0x20($sp) +/* 068ED0 7F0343A0 8FA50028 */ lw $a1, 0x28($sp) +/* 068ED4 7F0343A4 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068ED8 7F0343A8 AFA20018 */ sw $v0, 0x18($sp) +/* 068EDC 7F0343AC 28412710 */ slti $at, $v0, 0x2710 +/* 068EE0 7F0343B0 1020000A */ beqz $at, .L7F0343DC +/* 068EE4 7F0343B4 8FA60018 */ lw $a2, 0x18($sp) +/* 068EE8 7F0343B8 00027080 */ sll $t6, $v0, 2 +/* 068EEC 7F0343BC 01C27023 */ subu $t6, $t6, $v0 +/* 068EF0 7F0343C0 000E7080 */ sll $t6, $t6, 2 +/* 068EF4 7F0343C4 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068EF8 7F0343C8 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068EFC 7F0343CC 01C27023 */ subu $t6, $t6, $v0 +/* 068F00 7F0343D0 000E7080 */ sll $t6, $t6, 2 +/* 068F04 7F0343D4 1000000A */ b .L7F034400 +/* 068F08 7F0343D8 01CF1821 */ addu $v1, $t6, $t7 +.L7F0343DC: +/* 068F0C 7F0343DC 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068F10 7F0343E0 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068F14 7F0343E4 0002C100 */ sll $t8, $v0, 4 +/* 068F18 7F0343E8 0302C021 */ addu $t8, $t8, $v0 +/* 068F1C 7F0343EC 0018C080 */ sll $t8, $t8, 2 +/* 068F20 7F0343F0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068F24 7F0343F4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068F28 7F0343F8 03191821 */ addu $v1, $t8, $t9 +/* 068F2C 7F0343FC 00611821 */ addu $v1, $v1, $at +.L7F034400: +/* 068F30 7F034400 8C620028 */ lw $v0, 0x28($v1) +/* 068F34 7F034404 8FBF0014 */ lw $ra, 0x14($sp) +/* 068F38 7F034408 5040000E */ beql $v0, $zero, .L7F034444 +/* 068F3C 7F03440C 00001025 */ move $v0, $zero +/* 068F40 7F034410 50C0000C */ beql $a2, $zero, .L7F034444 +/* 068F44 7F034414 00001025 */ move $v0, $zero +/* 068F48 7F034418 8CC30018 */ lw $v1, 0x18($a2) +/* 068F4C 7F03441C 50600009 */ beql $v1, $zero, .L7F034444 +/* 068F50 7F034420 00001025 */ move $v0, $zero +/* 068F54 7F034424 8C680014 */ lw $t0, 0x14($v1) +/* 068F58 7F034428 904A0003 */ lbu $t2, 3($v0) +/* 068F5C 7F03442C 91090003 */ lbu $t1, 3($t0) +/* 068F60 7F034430 552A0004 */ bnel $t1, $t2, .L7F034444 +/* 068F64 7F034434 00001025 */ move $v0, $zero +/* 068F68 7F034438 10000002 */ b .L7F034444 +/* 068F6C 7F03443C 24020001 */ li $v0, 1 +/* 068F70 7F034440 00001025 */ move $v0, $zero +.L7F034444: +/* 068F74 7F034444 03E00008 */ jr $ra +/* 068F78 7F034448 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_is_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_is_at_preset +/* 068F7C 7F03444C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068F80 7F034450 AFBF0014 */ sw $ra, 0x14($sp) +/* 068F84 7F034454 AFA40020 */ sw $a0, 0x20($sp) +/* 068F88 7F034458 0FC225E6 */ jal get_curplayer_positiondata +/* 068F8C 7F03445C AFA50024 */ sw $a1, 0x24($sp) +/* 068F90 7F034460 AFA2001C */ sw $v0, 0x1c($sp) +/* 068F94 7F034464 8FA40020 */ lw $a0, 0x20($sp) +/* 068F98 7F034468 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068F9C 7F03446C 8FA50024 */ lw $a1, 0x24($sp) +/* 068FA0 7F034470 28412710 */ slti $at, $v0, 0x2710 +/* 068FA4 7F034474 1020000A */ beqz $at, .L7F0344A0 +/* 068FA8 7F034478 8FBF0014 */ lw $ra, 0x14($sp) +/* 068FAC 7F03447C 00027080 */ sll $t6, $v0, 2 +/* 068FB0 7F034480 01C27023 */ subu $t6, $t6, $v0 +/* 068FB4 7F034484 000E7080 */ sll $t6, $t6, 2 +/* 068FB8 7F034488 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068FBC 7F03448C 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068FC0 7F034490 01C27023 */ subu $t6, $t6, $v0 +/* 068FC4 7F034494 000E7080 */ sll $t6, $t6, 2 +/* 068FC8 7F034498 1000000A */ b .L7F0344C4 +/* 068FCC 7F03449C 01CF1821 */ addu $v1, $t6, $t7 +.L7F0344A0: +/* 068FD0 7F0344A0 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068FD4 7F0344A4 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068FD8 7F0344A8 0002C100 */ sll $t8, $v0, 4 +/* 068FDC 7F0344AC 0302C021 */ addu $t8, $t8, $v0 +/* 068FE0 7F0344B0 0018C080 */ sll $t8, $t8, 2 +/* 068FE4 7F0344B4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068FE8 7F0344B8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068FEC 7F0344BC 03191821 */ addu $v1, $t8, $t9 +/* 068FF0 7F0344C0 00611821 */ addu $v1, $v1, $at +.L7F0344C4: +/* 068FF4 7F0344C4 8C620028 */ lw $v0, 0x28($v1) +/* 068FF8 7F0344C8 8FA8001C */ lw $t0, 0x1c($sp) +/* 068FFC 7F0344CC 50400009 */ beql $v0, $zero, .L7F0344F4 +/* 069000 7F0344D0 00001025 */ move $v0, $zero +/* 069004 7F0344D4 8D090014 */ lw $t1, 0x14($t0) +/* 069008 7F0344D8 904B0003 */ lbu $t3, 3($v0) +/* 06900C 7F0344DC 912A0003 */ lbu $t2, 3($t1) +/* 069010 7F0344E0 554B0004 */ bnel $t2, $t3, .L7F0344F4 +/* 069014 7F0344E4 00001025 */ move $v0, $zero +/* 069018 7F0344E8 10000002 */ b .L7F0344F4 +/* 06901C 7F0344EC 24020001 */ li $v0, 1 +/* 069020 7F0344F0 00001025 */ move $v0, $zero +.L7F0344F4: +/* 069024 7F0344F4 03E00008 */ jr $ra +/* 069028 7F0344F8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void removed_animation_routine_27(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_animation_routine_27 +/* 06902C 7F0344FC AFA40000 */ sw $a0, ($sp) +/* 069030 7F034500 03E00008 */ jr $ra +/* 069034 7F034504 00001025 */ move $v0, $zero +) +#endif + + + +#ifdef NONMATCHING +void removed_animation_routine_2B(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_animation_routine_2B +/* 069038 7F034508 AFA40000 */ sw $a0, ($sp) +/* 06903C 7F03450C 03E00008 */ jr $ra +/* 069040 7F034510 00001025 */ move $v0, $zero +) +#endif + + + +#ifdef NONMATCHING +? sub_GAME_7F034514(s32 arg0, s32 arg1) +{ + s32 temp_ret; + + arg1 = sub_GAME_7F032F94(); + if (true_if_actor_dying_fading_limping_shot(arg0) != 0) + { + temp_ret = scan_position_data_table_for_normal_object_at_preset(arg1); + if (temp_ret != 0) + { + if (check_if_object_has_not_been_destroyed(temp_ret) != 0) + { + sub_GAME_7F024150(arg0); + return 1; + } + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F034514 +/* 069044 7F034514 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 069048 7F034518 AFBF0014 */ sw $ra, 0x14($sp) +/* 06904C 7F03451C 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 069050 7F034520 AFA40018 */ sw $a0, 0x18($sp) +/* 069054 7F034524 AFA2001C */ sw $v0, 0x1c($sp) +/* 069058 7F034528 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 06905C 7F03452C 8FA40018 */ lw $a0, 0x18($sp) +/* 069060 7F034530 5040000E */ beql $v0, $zero, .L7F03456C +/* 069064 7F034534 00001025 */ move $v0, $zero +/* 069068 7F034538 0FC0FE91 */ jal scan_position_data_table_for_normal_object_at_preset +/* 06906C 7F03453C 8FA4001C */ lw $a0, 0x1c($sp) +/* 069070 7F034540 10400009 */ beqz $v0, .L7F034568 +/* 069074 7F034544 00402025 */ move $a0, $v0 +/* 069078 7F034548 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06907C 7F03454C 00000000 */ nop +/* 069080 7F034550 50400006 */ beql $v0, $zero, .L7F03456C +/* 069084 7F034554 00001025 */ move $v0, $zero +/* 069088 7F034558 0FC09054 */ jal sub_GAME_7F024150 +/* 06908C 7F03455C 8FA40018 */ lw $a0, 0x18($sp) +/* 069090 7F034560 10000002 */ b .L7F03456C +/* 069094 7F034564 24020001 */ li $v0, 1 +.L7F034568: +/* 069098 7F034568 00001025 */ move $v0, $zero +.L7F03456C: +/* 06909C 7F03456C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0690A0 7F034570 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0690A4 7F034574 03E00008 */ jr $ra +/* 0690A8 7F034578 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? actor_draws_throws_grenade_at_player_if_possible(void *arg0) +{ + s32 sp24; + s32 sp20; + s32 temp_ret; + s32 temp_ret_2; + void *temp_v1; + ? phi_a3; + ? phi_a2; + + if ((u32) (get_random_value() % 0xffU) >= (u32) arg0->unk10) + { + return 0; + } + if (sub_GAME_7F032DE4(arg0) < 10.0f) + { + return 0; + } + if (true_if_actor_dying_fading_limping_shot(arg0) != 0) + { + sp24 = something_with_weaponpos_of_guarddata_hand(arg0, 1); + temp_ret = something_with_weaponpos_of_guarddata_hand(arg0, 0); + sp20 = temp_ret; + if (temp_ret != 0) + { + if (temp_ret->unk4->unk80 == 0x1a) + { + throw_weapon_in_guard_hand(arg0, temp_ret, 0, 0); + return 1; + } + } + if (sp24 != 0) + { + if (sp24->unk4->unk80 == 0x1a) + { + throw_weapon_in_guard_hand(arg0, sp24, 1, 0); + return 1; + } + } + if ((sp24 == 0) || (temp_ret == 0)) + { + phi_a3 = 0; + if (temp_ret != 0) + { + phi_a3 = 0x10000000; + } + temp_ret_2 = actor_draws_weapon_with_model(arg0, 0xc4, 0x1a, phi_a3); + if (temp_ret_2 != 0) + { + temp_v1 = temp_ret_2->unk4; + temp_v1->unk64 = (s32) (temp_v1->unk64 | 0x800); + phi_a2 = 1; + if (sp20 == 0) + { + phi_a2 = 0; + } + throw_weapon_in_guard_hand(arg0, temp_ret_2, phi_a2, 1); + return 1; + } + } + else + { + + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel actor_draws_throws_grenade_at_player_if_possible +/* 0690AC 7F03457C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0690B0 7F034580 AFBF001C */ sw $ra, 0x1c($sp) +/* 0690B4 7F034584 AFB00018 */ sw $s0, 0x18($sp) +/* 0690B8 7F034588 0C002914 */ jal get_random_value +/* 0690BC 7F03458C 00808025 */ move $s0, $a0 +/* 0690C0 7F034590 240100FF */ li $at, 255 +/* 0690C4 7F034594 0041001B */ divu $zero, $v0, $at +/* 0690C8 7F034598 920F0010 */ lbu $t7, 0x10($s0) +/* 0690CC 7F03459C 00007010 */ mfhi $t6 +/* 0690D0 7F0345A0 01CF082B */ sltu $at, $t6, $t7 +/* 0690D4 7F0345A4 14200003 */ bnez $at, .L7F0345B4 +/* 0690D8 7F0345A8 00000000 */ nop +/* 0690DC 7F0345AC 1000004E */ b .L7F0346E8 +/* 0690E0 7F0345B0 00001025 */ move $v0, $zero +.L7F0345B4: +/* 0690E4 7F0345B4 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 0690E8 7F0345B8 02002025 */ move $a0, $s0 +/* 0690EC 7F0345BC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0690F0 7F0345C0 44812000 */ mtc1 $at, $f4 +/* 0690F4 7F0345C4 00000000 */ nop +/* 0690F8 7F0345C8 4604003C */ c.lt.s $f0, $f4 +/* 0690FC 7F0345CC 00000000 */ nop +/* 069100 7F0345D0 45000003 */ bc1f .L7F0345E0 +/* 069104 7F0345D4 00000000 */ nop +/* 069108 7F0345D8 10000043 */ b .L7F0346E8 +/* 06910C 7F0345DC 00001025 */ move $v0, $zero +.L7F0345E0: +/* 069110 7F0345E0 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 069114 7F0345E4 02002025 */ move $a0, $s0 +/* 069118 7F0345E8 1040003E */ beqz $v0, .L7F0346E4 +/* 06911C 7F0345EC 02002025 */ move $a0, $s0 +/* 069120 7F0345F0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 069124 7F0345F4 24050001 */ li $a1, 1 +/* 069128 7F0345F8 AFA20024 */ sw $v0, 0x24($sp) +/* 06912C 7F0345FC 02002025 */ move $a0, $s0 +/* 069130 7F034600 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 069134 7F034604 00002825 */ move $a1, $zero +/* 069138 7F034608 8FA50024 */ lw $a1, 0x24($sp) +/* 06913C 7F03460C 1040000D */ beqz $v0, .L7F034644 +/* 069140 7F034610 AFA20020 */ sw $v0, 0x20($sp) +/* 069144 7F034614 8C430004 */ lw $v1, 4($v0) +/* 069148 7F034618 2401001A */ li $at, 26 +/* 06914C 7F03461C 02002025 */ move $a0, $s0 +/* 069150 7F034620 80780080 */ lb $t8, 0x80($v1) +/* 069154 7F034624 00003025 */ move $a2, $zero +/* 069158 7F034628 00003825 */ move $a3, $zero +/* 06915C 7F03462C 17010005 */ bne $t8, $at, .L7F034644 +/* 069160 7F034630 00000000 */ nop +/* 069164 7F034634 0FC0908E */ jal throw_weapon_in_guard_hand +/* 069168 7F034638 00402825 */ move $a1, $v0 +/* 06916C 7F03463C 1000002A */ b .L7F0346E8 +/* 069170 7F034640 24020001 */ li $v0, 1 +.L7F034644: +/* 069174 7F034644 10A0000C */ beqz $a1, .L7F034678 +/* 069178 7F034648 00000000 */ nop +/* 06917C 7F03464C 8CA30004 */ lw $v1, 4($a1) +/* 069180 7F034650 2401001A */ li $at, 26 +/* 069184 7F034654 02002025 */ move $a0, $s0 +/* 069188 7F034658 80790080 */ lb $t9, 0x80($v1) +/* 06918C 7F03465C 24060001 */ li $a2, 1 +/* 069190 7F034660 17210005 */ bne $t9, $at, .L7F034678 +/* 069194 7F034664 00000000 */ nop +/* 069198 7F034668 0FC0908E */ jal throw_weapon_in_guard_hand +/* 06919C 7F03466C 00003825 */ move $a3, $zero +/* 0691A0 7F034670 1000001D */ b .L7F0346E8 +/* 0691A4 7F034674 24020001 */ li $v0, 1 +.L7F034678: +/* 0691A8 7F034678 10A00003 */ beqz $a1, .L7F034688 +/* 0691AC 7F03467C 02002025 */ move $a0, $s0 +/* 0691B0 7F034680 54400019 */ bnezl $v0, .L7F0346E8 +/* 0691B4 7F034684 00001025 */ move $v0, $zero +.L7F034688: +/* 0691B8 7F034688 10400002 */ beqz $v0, .L7F034694 +/* 0691BC 7F03468C 00003825 */ move $a3, $zero +/* 0691C0 7F034690 3C071000 */ lui $a3, 0x1000 +.L7F034694: +/* 0691C4 7F034694 240500C4 */ li $a1, 196 +/* 0691C8 7F034698 0FC148F5 */ jal actor_draws_weapon_with_model +/* 0691CC 7F03469C 2406001A */ li $a2, 26 +/* 0691D0 7F0346A0 10400010 */ beqz $v0, .L7F0346E4 +/* 0691D4 7F0346A4 00402825 */ move $a1, $v0 +/* 0691D8 7F0346A8 8C430004 */ lw $v1, 4($v0) +/* 0691DC 7F0346AC 02002025 */ move $a0, $s0 +/* 0691E0 7F0346B0 24060001 */ li $a2, 1 +/* 0691E4 7F0346B4 8C680064 */ lw $t0, 0x64($v1) +/* 0691E8 7F0346B8 35090800 */ ori $t1, $t0, 0x800 +/* 0691EC 7F0346BC AC690064 */ sw $t1, 0x64($v1) +/* 0691F0 7F0346C0 8FAA0020 */ lw $t2, 0x20($sp) +/* 0691F4 7F0346C4 15400003 */ bnez $t2, .L7F0346D4 +/* 0691F8 7F0346C8 00000000 */ nop +/* 0691FC 7F0346CC 10000001 */ b .L7F0346D4 +/* 069200 7F0346D0 00003025 */ move $a2, $zero +.L7F0346D4: +/* 069204 7F0346D4 0FC0908E */ jal throw_weapon_in_guard_hand +/* 069208 7F0346D8 24070001 */ li $a3, 1 +/* 06920C 7F0346DC 10000002 */ b .L7F0346E8 +/* 069210 7F0346E0 24020001 */ li $v0, 1 +.L7F0346E4: +/* 069214 7F0346E4 00001025 */ move $v0, $zero +.L7F0346E8: +/* 069218 7F0346E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 06921C 7F0346EC 8FB00018 */ lw $s0, 0x18($sp) +/* 069220 7F0346F0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 069224 7F0346F4 03E00008 */ jr $ra +/* 069228 7F0346F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? actor_drops_itemtype_setting_timer(void *arg0, s32 arg1, s32 arg2) +{ + s32 sp1C; + s32 temp_ret; + void *temp_a0; + + temp_ret = create_new_item_instance_of_model(arg1, arg2 & 0xff); + if (temp_ret != 0) + { + if (temp_ret->unk10 != 0) + { + temp_a0 = temp_ret->unk14; + sp1C = temp_ret; + set_obj_instance_controller_scale(temp_a0, temp_a0->unk14); + sub_GAME_7F03A5A4(sp1C->unk10, arg0->unk18); + sp1C->unk82 = (u16)0xb4; + sub_GAME_7F04BFD0(sp1C->unk10, 1); + arg0->unk12 = (s16) (arg0->unk12 | 1); + return 1; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel actor_drops_itemtype_setting_timer +/* 06922C 7F0346FC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069230 7F034700 AFA40020 */ sw $a0, 0x20($sp) +/* 069234 7F034704 AFBF0014 */ sw $ra, 0x14($sp) +/* 069238 7F034708 30CE00FF */ andi $t6, $a2, 0xff +/* 06923C 7F03470C 00A02025 */ move $a0, $a1 +/* 069240 7F034710 AFA60028 */ sw $a2, 0x28($sp) +/* 069244 7F034714 0FC1481B */ jal create_new_item_instance_of_model +/* 069248 7F034718 01C02825 */ move $a1, $t6 +/* 06924C 7F03471C 5040001A */ beql $v0, $zero, .L7F034788 +/* 069250 7F034720 00001025 */ move $v0, $zero +/* 069254 7F034724 8C4F0010 */ lw $t7, 0x10($v0) +/* 069258 7F034728 51E00017 */ beql $t7, $zero, .L7F034788 +/* 06925C 7F03472C 00001025 */ move $v0, $zero +/* 069260 7F034730 8C440014 */ lw $a0, 0x14($v0) +/* 069264 7F034734 8C850014 */ lw $a1, 0x14($a0) +/* 069268 7F034738 0FC1B39E */ jal set_obj_instance_controller_scale +/* 06926C 7F03473C AFA2001C */ sw $v0, 0x1c($sp) +/* 069270 7F034740 8FA3001C */ lw $v1, 0x1c($sp) +/* 069274 7F034744 8FB80020 */ lw $t8, 0x20($sp) +/* 069278 7F034748 8C640010 */ lw $a0, 0x10($v1) +/* 06927C 7F03474C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 069280 7F034750 8F050018 */ lw $a1, 0x18($t8) +/* 069284 7F034754 8FA3001C */ lw $v1, 0x1c($sp) +/* 069288 7F034758 241900B4 */ li $t9, 180 +/* 06928C 7F03475C 24050001 */ li $a1, 1 +/* 069290 7F034760 A4790082 */ sh $t9, 0x82($v1) +/* 069294 7F034764 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 069298 7F034768 8C640010 */ lw $a0, 0x10($v1) +/* 06929C 7F03476C 8FA80020 */ lw $t0, 0x20($sp) +/* 0692A0 7F034770 24020001 */ li $v0, 1 +/* 0692A4 7F034774 95090012 */ lhu $t1, 0x12($t0) +/* 0692A8 7F034778 352A0001 */ ori $t2, $t1, 1 +/* 0692AC 7F03477C 10000002 */ b .L7F034788 +/* 0692B0 7F034780 A50A0012 */ sh $t2, 0x12($t0) +/* 0692B4 7F034784 00001025 */ move $v0, $zero +.L7F034788: +/* 0692B8 7F034788 8FBF0014 */ lw $ra, 0x14($sp) +/* 0692BC 7F03478C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0692C0 7F034790 03E00008 */ jr $ra +/* 0692C4 7F034794 00000000 */ nop +) +#endif + + diff --git a/src/game/chrai.c b/src/game/chrai.c new file mode 100644 index 0000000..7f4662a --- /dev/null +++ b/src/game/chrai.c @@ -0,0 +1,21577 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/chrai.h" +#include "snd.h" +#include "music.h" +#include "game/lvl_text.h" +// bss +//CODE.bss:80069B70 +struct sfx_register_struct sfx_related[8]; +//CODE.bss:80069C30 +void * ptr_list_object_lookup_indices; +//CODE.bss:80069C34 +u32 num_obj_position_data_entries; + +//CODE.bss:80069C38 +u8 pos_data_entry[0x24]; +//CODE.bss:80069C5C +u8 dword_CODE_bss_80069C5C; +u8 dword_CODE_bss_80069C5D; +u8 dword_CODE_bss_80069C5E; +u8 dword_CODE_bss_80069C5F; +u8 dword_CODE_bss_80069C60; +u8 dword_CODE_bss_80069C61; +u8 dword_CODE_bss_80069C62; +u8 dword_CODE_bss_80069C63; +u8 dword_CODE_bss_80069C64; +u8 dword_CODE_bss_80069C65; +u8 dword_CODE_bss_80069C66; +u8 dword_CODE_bss_80069C67; +u8 dword_CODE_bss_80069C68; +u8 dword_CODE_bss_80069C69; +u8 dword_CODE_bss_80069C6A; +u8 dword_CODE_bss_80069C6B; +//CODE.bss:80069C6C +u8 dword_CODE_bss_80069C6C; +u8 dword_CODE_bss_80069C6D; +u8 dword_CODE_bss_80069C6E; +u8 dword_CODE_bss_80069C6F; +u8 dword_CODE_bss_80069C70[0x20]; +//CODE.bss:80069C90 +u8 dword_CODE_bss_80069C90[0xC]; +//CODE.bss:80069C94 +//u8 dword_CODE_bss_80069C94[8]; +//CODE.bss:80069CA0 +u8 dword_CODE_bss_80069CA0[0x24]; +//CODE.bss:80069CC4 +u32 dword_CODE_bss_80069CC4; +u32 dword_CODE_bss_80069CC8; +u32 dword_CODE_bss_80069CCC; +u32 dword_CODE_bss_80069CD0; +//CODE.bss:80069CD4 +u32 dword_CODE_bss_80069CD4; +u32 dword_CODE_bss_80069CD8; +u32 dword_CODE_bss_80069CDC; +u8 dword_CODE_bss_80069CE0[0x28]; +//CODE.bss:80069D08 +u8 dword_CODE_bss_80069D08[0x34]; +//CODE.bss:80069D3C +u8 dword_CODE_bss_80069D3C; +u8 dword_CODE_bss_80069D3D; +u8 dword_CODE_bss_80069D3E; +u8 dword_CODE_bss_80069D3F; +u8 dword_CODE_bss_80069D40[0x30]; +//CODE.bss:80069D70 +u8 dword_CODE_bss_80069D70[0x34]; +//CODE.bss:80069DA4 +u8 dword_CODE_bss_80069DA4; +u8 dword_CODE_bss_80069DA5; +u8 dword_CODE_bss_80069DA6; +u8 dword_CODE_bss_80069DA7; +u8 dword_CODE_bss_80069DA8[0x7870]; +//CODE.bss:80071618 +void *ptr_room_lookup_buffer_maybe; +//CODE.bss:8007161C +u32 dword_CODE_bss_8007161C; + +//CODE.bss:80071620 +char dword_CODE_bss_80071620[0x94]; +//CODE.bss:800716B4 +char dword_CODE_bss_800716B4; +char dword_CODE_bss_800716B5; +char dword_CODE_bss_800716B6; +char dword_CODE_bss_800716B7; +char dword_CODE_bss_800716B8[0x738]; +//CODE.bss:80071DF0 +u32 dword_CODE_bss_80071DF0; +//CODE.bss:80071DF4 +u32 dword_CODE_bss_80071DF4; +//CODE.bss:80071DF8 +u32 dword_CODE_bss_80071DF8; +//CODE.bss:80071DFC +u32 dword_CODE_bss_80071DFC; +//CODE.bss:80071E00 +char temp_mine_table[0x78]; + +//CODE.bss:80071E78 +f32 gas_damage_flag; +//CODE.bss:80071E7C +u32 gas_cutoff_flag; +//CODE.bss:80071E80 +char ProjectileData_start_address[0xFF0]; +//CODE.bss:80072E70 +char dword_CODE_bss_80072E70[0x500]; +//CODE.bss:80073370 +char dword_CODE_bss_80073370[0xA50]; +//CODE.bss:80073DC0 +char dword_CODE_bss_80073DC0[0x1270]; +//CODE.bss:80075030 +char dword_CODE_bss_80075030[0xB40]; +//CODE.bss:80075B70 +u32 objinst; +//CODE.bss:80075B74 +u32 dword_CODE_bss_80075B74; +//CODE.bss:80075B78 +f32 flt_CODE_bss_80075B78; +//CODE.bss:80075B7C +f32 flt_CODE_bss_80075B7C; +//CODE.bss:80075B80 +f32 flt_CODE_bss_80075B80; +//CODE.bss:80075B84 +f32 flt_CODE_bss_80075B84; +//CODE.bss:80075B88 +f32 flt_CODE_bss_80075B88; +//CODE.bss:80075B8C +f32 flt_CODE_bss_80075B8C; +//CODE.bss:80075B90 +f32 flt_CODE_bss_80075B90; +//CODE.bss:80075B94 +f32 flt_CODE_bss_80075B94; +//CODE.bss:80075B98 +char dword_CODE_bss_80075B98[0x6C]; +//CODE.bss:80075C04 +u32 dword_CODE_bss_80075C04; +u32 dword_CODE_bss_80075C08; +u32 dword_CODE_bss_80075C0C; +//CODE.bss:80075C10 +char dword_CODE_bss_80075C10[0x78]; +//CODE.bss:80075C88 +char dword_CODE_bss_80075C88[0x78]; + +//CODE.bss:80075D00 +void * ptr_setup_path_tbl; +//CODE.bss:80075D04 +void * ptr_setup_path_link; +//CODE.bss:80075D08 +void * ptr_setup_intro; +//CODE.bss:80075D0C +struct object_standard * ptr_setup_objects; +//CODE.bss:80075D10 +void * ptr_setup_path_sets; +//CODE.bss:80075D14 +void * ptr_setup_actions; +//CODE.bss:80075D18 +void * ptr_0xxxpresets; +//CODE.bss:80075D1C +void * ptr_2xxxpresets; +//CODE.bss:80075D20 +u32 dword_CODE_bss_80075D20; +//CODE.bss:80075D24 +u32 dword_CODE_bss_80075D24; +//CODE.bss:80075D28 +u32 dword_CODE_bss_80075D28; + + +//data +s32 D_80030A70 = 0; +s32 D_80030A74 = 0; +s32 D_80030A78 = 0; +s32 D_80030A7C = 0; +s32 D_80030A80 = 0; +s32 D_80030A84 = 0; +s32 D_80030A88 = 0; +s32 D_80030A8C = 0; +s32 D_80030A90 = 0; +s32 D_80030A94 = 0; +s32 D_80030A98 = 0; +s32 D_80030A9C = 0; +s32 *ptr_obj_pos_list_current_entry = 0; +s32 *ptr_obj_pos_list_first_entry = 0; +s32 *ptr_obj_pos_list_final_entry = 0; +f32 difficulty = 1.0; +s32 D_80030AB0 = 0; +s32 D_80030AB4 = 0; +s32 D_80030AB8 = 0; +s32 D_80030ABC = 0; + + + + + + +#ifdef NONMATCHING +void set_sound_effect_source_to_location(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_sound_effect_source_to_location +/* 0692D0 7F0347A0 00047080 */ sll $t6, $a0, 2 +/* 0692D4 7F0347A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0692D8 7F0347A8 01C47023 */ subu $t6, $t6, $a0 +/* 0692DC 7F0347AC 3C0F8007 */ lui $t7, %hi(sfx_related) +/* 0692E0 7F0347B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0692E4 7F0347B4 25EF9B70 */ addiu $t7, %lo(sfx_related) # addiu $t7, $t7, -0x6490 +/* 0692E8 7F0347B8 000E70C0 */ sll $t6, $t6, 3 +/* 0692EC 7F0347BC 01CF8021 */ addu $s0, $t6, $t7 +/* 0692F0 7F0347C0 8E050000 */ lw $a1, ($s0) +/* 0692F4 7F0347C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0692F8 7F0347C8 50A00041 */ beql $a1, $zero, .L7F0348D0 +/* 0692FC 7F0347CC AE000004 */ sw $zero, 4($s0) +/* 069300 7F0347D0 0C00237C */ jal sfxGetArg0Unk3F +/* 069304 7F0347D4 00A02025 */ move $a0, $a1 +/* 069308 7F0347D8 5040003D */ beql $v0, $zero, .L7F0348D0 +/* 06930C 7F0347DC AE000004 */ sw $zero, 4($s0) +/* 069310 7F0347E0 8E040010 */ lw $a0, 0x10($s0) +/* 069314 7F0347E4 50800006 */ beql $a0, $zero, .L7F034800 +/* 069318 7F0347E8 8E020014 */ lw $v0, 0x14($s0) +/* 06931C 7F0347EC 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 069320 7F0347F0 00000000 */ nop +/* 069324 7F0347F4 1000000A */ b .L7F034820 +/* 069328 7F0347F8 AE02000C */ sw $v0, 0xc($s0) +/* 06932C 7F0347FC 8E020014 */ lw $v0, 0x14($s0) +.L7F034800: +/* 069330 7F034800 50400008 */ beql $v0, $zero, .L7F034824 +/* 069334 7F034804 8E030008 */ lw $v1, 8($s0) +/* 069338 7F034808 8C580010 */ lw $t8, 0x10($v0) +/* 06933C 7F03480C 53000005 */ beql $t8, $zero, .L7F034824 +/* 069340 7F034810 8E030008 */ lw $v1, 8($s0) +/* 069344 7F034814 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 069348 7F034818 24440058 */ addiu $a0, $v0, 0x58 +/* 06934C 7F03481C AE02000C */ sw $v0, 0xc($s0) +.L7F034820: +/* 069350 7F034820 8E030008 */ lw $v1, 8($s0) +.L7F034824: +/* 069354 7F034824 8E05000C */ lw $a1, 0xc($s0) +/* 069358 7F034828 3C048005 */ lui $a0, %hi(clock_timer) +/* 06935C 7F03482C 04600018 */ bltz $v1, .L7F034890 +/* 069360 7F034830 00A03025 */ move $a2, $a1 +/* 069364 7F034834 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 069368 7F034838 0083082A */ slt $at, $a0, $v1 +/* 06936C 7F03483C 10200013 */ beqz $at, .L7F03488C +/* 069370 7F034840 00645023 */ subu $t2, $v1, $a0 +/* 069374 7F034844 8E020004 */ lw $v0, 4($s0) +/* 069378 7F034848 00A2C823 */ subu $t9, $a1, $v0 +/* 06937C 7F03484C 03240019 */ multu $t9, $a0 +/* 069380 7F034850 00004012 */ mflo $t0 +/* 069384 7F034854 00000000 */ nop +/* 069388 7F034858 00000000 */ nop +/* 06938C 7F03485C 0103001A */ div $zero, $t0, $v1 +/* 069390 7F034860 00004812 */ mflo $t1 +/* 069394 7F034864 01223021 */ addu $a2, $t1, $v0 +/* 069398 7F034868 14600002 */ bnez $v1, .L7F034874 +/* 06939C 7F03486C 00000000 */ nop +/* 0693A0 7F034870 0007000D */ break 7 +.L7F034874: +/* 0693A4 7F034874 2401FFFF */ li $at, -1 +/* 0693A8 7F034878 14610004 */ bne $v1, $at, .L7F03488C +/* 0693AC 7F03487C 3C018000 */ lui $at, 0x8000 +/* 0693B0 7F034880 15010002 */ bne $t0, $at, .L7F03488C +/* 0693B4 7F034884 00000000 */ nop +/* 0693B8 7F034888 0006000D */ break 6 +.L7F03488C: +/* 0693BC 7F03488C AE0A0008 */ sw $t2, 8($s0) +.L7F034890: +/* 0693C0 7F034890 0FC2FF01 */ jal get_controls_locked_flag +/* 0693C4 7F034894 AFA60024 */ sw $a2, 0x24($sp) +/* 0693C8 7F034898 10400002 */ beqz $v0, .L7F0348A4 +/* 0693CC 7F03489C 8FA60024 */ lw $a2, 0x24($sp) +/* 0693D0 7F0348A0 00003025 */ move $a2, $zero +.L7F0348A4: +/* 0693D4 7F0348A4 8E0B0004 */ lw $t3, 4($s0) +/* 0693D8 7F0348A8 24050008 */ li $a1, 8 +/* 0693DC 7F0348AC 50CB0009 */ beql $a2, $t3, .L7F0348D4 +/* 0693E0 7F0348B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0693E4 7F0348B4 8E040000 */ lw $a0, ($s0) +/* 0693E8 7F0348B8 0C002461 */ jal sfx_c_70009184 +/* 0693EC 7F0348BC AFA60024 */ sw $a2, 0x24($sp) +/* 0693F0 7F0348C0 8FA60024 */ lw $a2, 0x24($sp) +/* 0693F4 7F0348C4 10000002 */ b .L7F0348D0 +/* 0693F8 7F0348C8 AE060004 */ sw $a2, 4($s0) +/* 0693FC 7F0348CC AE000004 */ sw $zero, 4($s0) +.L7F0348D0: +/* 069400 7F0348D0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0348D4: +/* 069404 7F0348D4 8FB00018 */ lw $s0, 0x18($sp) +/* 069408 7F0348D8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 06940C 7F0348DC 03E00008 */ jr $ra +/* 069410 7F0348E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void loop_set_sound_effect_all_slots(void) { + +} +#else +GLOBAL_ASM( +.text +glabel loop_set_sound_effect_all_slots +/* 069414 7F0348E4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069418 7F0348E8 AFB10018 */ sw $s1, 0x18($sp) +/* 06941C 7F0348EC AFB00014 */ sw $s0, 0x14($sp) +/* 069420 7F0348F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 069424 7F0348F4 00008025 */ move $s0, $zero +/* 069428 7F0348F8 24110008 */ li $s1, 8 +.L7F0348FC: +/* 06942C 7F0348FC 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 069430 7F034900 02002025 */ move $a0, $s0 +/* 069434 7F034904 26100001 */ addiu $s0, $s0, 1 +/* 069438 7F034908 1611FFFC */ bne $s0, $s1, .L7F0348FC +/* 06943C 7F03490C 00000000 */ nop +/* 069440 7F034910 8FBF001C */ lw $ra, 0x1c($sp) +/* 069444 7F034914 8FB00014 */ lw $s0, 0x14($sp) +/* 069448 7F034918 8FB10018 */ lw $s1, 0x18($sp) +/* 06944C 7F03491C 03E00008 */ jr $ra +/* 069450 7F034920 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void set_sound_effect_to_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_sound_effect_to_slot +/* 069454 7F034924 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069458 7F034928 AFBF0014 */ sw $ra, 0x14($sp) +/* 06945C 7F03492C AFA50024 */ sw $a1, 0x24($sp) +/* 069460 7F034930 0480001A */ bltz $a0, .L7F03499C +/* 069464 7F034934 00003025 */ move $a2, $zero +/* 069468 7F034938 28810008 */ slti $at, $a0, 8 +/* 06946C 7F03493C 10200017 */ beqz $at, .L7F03499C +/* 069470 7F034940 00047080 */ sll $t6, $a0, 2 +/* 069474 7F034944 01C47023 */ subu $t6, $t6, $a0 +/* 069478 7F034948 3C0F8007 */ lui $t7, %hi(sfx_related) +/* 06947C 7F03494C 25EF9B70 */ addiu $t7, %lo(sfx_related) # addiu $t7, $t7, -0x6490 +/* 069480 7F034950 000E70C0 */ sll $t6, $t6, 3 +/* 069484 7F034954 01CF1821 */ addu $v1, $t6, $t7 +/* 069488 7F034958 8C650000 */ lw $a1, ($v1) +/* 06948C 7F03495C 10A00007 */ beqz $a1, .L7F03497C +/* 069490 7F034960 00A02025 */ move $a0, $a1 +/* 069494 7F034964 AFA30018 */ sw $v1, 0x18($sp) +/* 069498 7F034968 0C00237C */ jal sfxGetArg0Unk3F +/* 06949C 7F03496C AFA0001C */ sw $zero, 0x1c($sp) +/* 0694A0 7F034970 8FA30018 */ lw $v1, 0x18($sp) +/* 0694A4 7F034974 14400009 */ bnez $v0, .L7F03499C +/* 0694A8 7F034978 8FA6001C */ lw $a2, 0x1c($sp) +.L7F03497C: +/* 0694AC 7F03497C 24027FFF */ li $v0, 32767 +/* 0694B0 7F034980 2418FFFF */ li $t8, -1 +/* 0694B4 7F034984 00603025 */ move $a2, $v1 +/* 0694B8 7F034988 AC62000C */ sw $v0, 0xc($v1) +/* 0694BC 7F03498C AC620004 */ sw $v0, 4($v1) +/* 0694C0 7F034990 AC780008 */ sw $t8, 8($v1) +/* 0694C4 7F034994 AC600010 */ sw $zero, 0x10($v1) +/* 0694C8 7F034998 AC600014 */ sw $zero, 0x14($v1) +.L7F03499C: +/* 0694CC 7F03499C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0694D0 7F0349A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0694D4 7F0349A4 0C002382 */ jal play_sfx_a1 +/* 0694D8 7F0349A8 87A50026 */ lh $a1, 0x26($sp) +/* 0694DC 7F0349AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0694E0 7F0349B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0694E4 7F0349B4 03E00008 */ jr $ra +/* 0694E8 7F0349B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0349BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0349BC +/* 0694EC 7F0349BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0694F0 7F0349C0 0480000A */ bltz $a0, .L7F0349EC +/* 0694F4 7F0349C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0694F8 7F0349C8 28810008 */ slti $at, $a0, 8 +/* 0694FC 7F0349CC 10200007 */ beqz $at, .L7F0349EC +/* 069500 7F0349D0 00047080 */ sll $t6, $a0, 2 +/* 069504 7F0349D4 01C47023 */ subu $t6, $t6, $a0 +/* 069508 7F0349D8 000E70C0 */ sll $t6, $t6, 3 +/* 06950C 7F0349DC 3C048007 */ lui $a0, %hi(sfx_related) +/* 069510 7F0349E0 008E2021 */ addu $a0, $a0, $t6 +/* 069514 7F0349E4 0C002408 */ jal sfxDeactivate +/* 069518 7F0349E8 8C849B70 */ lw $a0, %lo(sfx_related)($a0) +.L7F0349EC: +/* 06951C 7F0349EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 069520 7F0349F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 069524 7F0349F4 03E00008 */ jr $ra +/* 069528 7F0349F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +/* + +* Trev's Original Assumption + + +enum ActionCommands +{ + GotoLabel, + GotoLabelFromTop, + Label, + Yield, + End, + JAL, + +}; +u8 get_length_of_action_block(CurrentActionByte) { + enum ActionCommands Action = byte(CurrentActionByte) + switch(Action) + { + case GotoLabel: + return 2; + case GotoLabelFromTop: + return 2; + ... + case 252: + return 1; + default: + return 1; + } +} +*/ + +/* +* With New macro commands +- SUGESTION: Prefix all AI commands with AI +*/ +u8 get_length_of_action_block(u8 *CurrentActionByte) +{ + switch (CurrentActionByte) + { + case goto_next_ID: + return goto_next_LENGTH; + case goto_first_ID: + return goto_first_LENGTH; + case label_ID: + return label_LENGTH; + case ai_sleep_ID: + return ai_sleep_LENGTH; + case ai_list_end_ID: + return ai_list_end_LENGTH; + case jump_to_ai_list_ID: + return jump_to_ai_list_LENGTH; + case set_return_ai_list_ID: + return set_return_ai_list_LENGTH; + case jump_to_return_ai_list_ID: + return jump_to_return_ai_list_LENGTH; + case guard_animation_stop_ID: + return guard_animation_stop_LENGTH; + case guard_kneel_ID: + return guard_kneel_LENGTH; + case guard_play_animation_ID: + return guard_play_animation_LENGTH; + case if_guard_playing_animation_ID: + return if_guard_playing_animation_LENGTH; + case guard_points_at_bond_ID: + return guard_points_at_bond_LENGTH; + case guard_looks_around_self_ID: + return guard_looks_around_self_LENGTH; + case guard_try_sidestepping_ID: + return guard_try_sidestepping_LENGTH; + case guard_try_hopping_sideways_ID: + return guard_try_hopping_sideways_LENGTH; + case guard_try_running_to_side_ID: + return guard_try_running_to_side_LENGTH; + case guard_try_firing_walk_ID: + return guard_try_firing_walk_LENGTH; + case guard_try_firing_run_ID: + return guard_try_firing_run_LENGTH; + case guard_try_firing_roll_ID: + return guard_try_firing_roll_LENGTH; + case guard_try_fire_or_aim_at_target_ID: + return guard_try_fire_or_aim_at_target_LENGTH; + case guard_try_fire_or_aim_at_target_kneel_ID: + return guard_try_fire_or_aim_at_target_kneel_LENGTH; + case guard_try_fire_or_aim_at_target_update_ID: + return guard_try_fire_or_aim_at_target_update_LENGTH; + case guard_try_facing_target_ID: + return guard_try_facing_target_LENGTH; + case chr_hit_body_part_with_item_damage_ID: + return chr_hit_body_part_with_item_damage_LENGTH; + case chr_hit_chr_body_part_with_held_item_ID: + return chr_hit_chr_body_part_with_held_item_LENGTH; + case guard_try_throwing_grenade_ID: + return guard_try_throwing_grenade_LENGTH; + case guard_try_dropping_item_ID: + return guard_try_dropping_item_LENGTH; + case guard_runs_to_pad_ID: + return guard_runs_to_pad_LENGTH; + case guard_runs_to_padpreset_ID: + return guard_runs_to_padpreset_LENGTH; + case guard_walks_to_pad_ID: + return guard_walks_to_pad_LENGTH; + case guard_sprints_to_pad_ID: + return guard_sprints_to_pad_LENGTH; + case guard_start_patrol_ID: + return guard_start_patrol_LENGTH; + case guard_surrenders_ID: + return guard_surrenders_LENGTH; + case guard_remove_fade_ID: + return guard_remove_fade_LENGTH; + case chr_remove_instant_ID: + return chr_remove_instant_LENGTH; + case guard_try_triggering_alarm_at_pad_ID: + return guard_try_triggering_alarm_at_pad_LENGTH; + case alarm_on_ID: + return alarm_on_LENGTH; + case alarm_off_ID: + return alarm_off_LENGTH; + case removed_command27_ID: + return removed_command27_LENGTH; + case guard_try_running_to_bond_position_ID: + return guard_try_running_to_bond_position_LENGTH; + case guard_try_walking_to_bond_position_ID: + return guard_try_walking_to_bond_position_LENGTH; + case guard_try_sprinting_to_bond_position_ID: + return guard_try_sprinting_to_bond_position_LENGTH; + case removed_command2B_ID: + return removed_command2B_LENGTH; + case guard_try_running_to_chr_position_ID: + return guard_try_running_to_chr_position_LENGTH; + case guard_try_walking_to_chr_position_ID: + return guard_try_walking_to_chr_position_LENGTH; + case guard_try_sprinting_to_chr_position_ID: + return guard_try_sprinting_to_chr_position_LENGTH; + case if_guard_has_stopped_moving_ID: + return if_guard_has_stopped_moving_LENGTH; + case if_chr_dying_or_dead_ID: + return if_chr_dying_or_dead_LENGTH; + case if_chr_does_not_exist_ID: + return if_chr_does_not_exist_LENGTH; + case if_guard_sees_bond_ID: + return if_guard_sees_bond_LENGTH; + case random_generate_ID: + return random_generate_LENGTH; + case if_random_seed_less_than_ID: + return if_random_seed_less_than_LENGTH; + case if_random_seed_greater_than_ID: + return if_random_seed_greater_than_LENGTH; + case if_alarm_is_on_unused_ID: + return if_alarm_is_on_unused_LENGTH; + case if_alarm_is_on_ID: + return if_alarm_is_on_LENGTH; + case if_gas_is_leaking_ID: + return if_gas_is_leaking_LENGTH; + case if_guard_heard_bond_ID: + return if_guard_heard_bond_LENGTH; + case if_guard_see_another_guard_shot_ID: + return if_guard_see_another_guard_shot_LENGTH; + case if_guard_see_another_guard_die_ID: + return if_guard_see_another_guard_die_LENGTH; + case if_guard_and_bond_within_line_of_sight_ID: + return if_guard_and_bond_within_line_of_sight_LENGTH; + case if_guard_and_bond_within_partial_line_of_sight_ID: + return if_guard_and_bond_within_partial_line_of_sight_LENGTH; + case if_guard_was_shot_within_last_10_secs_ID: + return if_guard_was_shot_within_last_10_secs_LENGTH; + case if_guard_heard_bond_within_last_10_secs_ID: + return if_guard_heard_bond_within_last_10_secs_LENGTH; + case if_guard_in_room_with_chr_ID: + return if_guard_in_room_with_chr_LENGTH; + case if_guard_is_on_screen_ID: + return if_guard_is_on_screen_LENGTH; + case if_guard_has_not_been_seen_ID: + return if_guard_has_not_been_seen_LENGTH; + case if_guard_room_containing_self_is_on_screen_ID: + return if_guard_room_containing_self_is_on_screen_LENGTH; + case if_room_containing_pad_is_on_screen_ID: + return if_room_containing_pad_is_on_screen_LENGTH; + case if_guard_is_targeted_by_bond_ID: + return if_guard_is_targeted_by_bond_LENGTH; + case if_guard_shot_from_bond_missed_ID: + return if_guard_shot_from_bond_missed_LENGTH; + case if_guard_counter_clockwise_direction_to_bond_less_than_ID: + return if_guard_counter_clockwise_direction_to_bond_less_than_LENGTH; + case if_guard_counter_clockwise_direction_to_bond_greater_than_ID: + return if_guard_counter_clockwise_direction_to_bond_greater_than_LENGTH; + case if_guard_counter_clockwise_direction_from_bond_less_than_ID: + return if_guard_counter_clockwise_direction_from_bond_less_than_LENGTH; + case if_guard_counter_clockwise_direction_from_bond_greater_than_ID: + return if_guard_counter_clockwise_direction_from_bond_greater_than_LENGTH; + case if_guard_distance_to_bond_less_than_ID: + return if_guard_distance_to_bond_less_than_LENGTH; + case if_guard_distance_to_bond_greater_than_ID: + return if_guard_distance_to_bond_greater_than_LENGTH; + case if_chr_distance_to_pad_less_than_ID: + return if_chr_distance_to_pad_less_than_LENGTH; + case if_chr_distance_to_pad_greater_than_ID: + return if_chr_distance_to_pad_greater_than_LENGTH; + case if_guard_distance_to_chr_less_than_ID: + return if_guard_distance_to_chr_less_than_LENGTH; + case if_guard_distance_to_chr_greater_than_ID: + return if_guard_distance_to_chr_greater_than_LENGTH; + case guard_try_setting_chr_preset_to_guard_within_distance_ID: + return guard_try_setting_chr_preset_to_guard_within_distance_LENGTH; + case if_bond_distance_to_pad_less_than_ID: + return if_bond_distance_to_pad_less_than_LENGTH; + case if_bond_distance_to_pad_greater_than_ID: + return if_bond_distance_to_pad_greater_than_LENGTH; + case if_chr_in_room_with_pad_ID: + return if_chr_in_room_with_pad_LENGTH; + case if_bond_in_room_with_pad_ID: + return if_bond_in_room_with_pad_LENGTH; + case if_bond_collected_object_ID: + return if_bond_collected_object_LENGTH; + case if_item_is_stationary_within_level_ID: + return if_item_is_stationary_within_level_LENGTH; + case if_item_is_attached_to_object_ID: + return if_item_is_attached_to_object_LENGTH; + case if_bond_has_item_equipped_ID: + return if_bond_has_item_equipped_LENGTH; + case if_object_exists_ID: + return if_object_exists_LENGTH; + case if_object_not_destroyed_ID: + return if_object_not_destroyed_LENGTH; + case if_object_was_activated_ID: + return if_object_was_activated_LENGTH; + case if_bond_used_gadget_on_object_ID: + return if_bond_used_gadget_on_object_LENGTH; + case object_activate_ID: + return object_activate_LENGTH; + case object_destroy_ID: + return object_destroy_LENGTH; + case object_detach_from_chr_ID: + return object_detach_from_chr_LENGTH; + case chr_drop_all_concealed_items_ID: + return chr_drop_all_concealed_items_LENGTH; + case chr_drop_all_held_items_ID: + return chr_drop_all_held_items_LENGTH; + case bond_collect_object_ID: + return bond_collect_object_LENGTH; + case chr_equip_object_ID: + return chr_equip_object_LENGTH; + case object_move_to_pad_ID: + return object_move_to_pad_LENGTH; + case door_open_ID: + return door_open_LENGTH; + case door_close_ID: + return door_close_LENGTH; + case if_door_state_equal_ID: + return if_door_state_equal_LENGTH; + case if_door_has_been_opened_before_ID: + return if_door_has_been_opened_before_LENGTH; + case door_set_lock_ID: + return door_set_lock_LENGTH; + case door_unset_lock_ID: + return door_unset_lock_LENGTH; + case if_door_lock_equal_ID: + return if_door_lock_equal_LENGTH; + case if_objective_num_complete_ID: + return if_objective_num_complete_LENGTH; + case if_game_difficulty_less_than_ID: + return if_game_difficulty_less_than_LENGTH; + case if_game_difficulty_greater_than_ID: + return if_game_difficulty_greater_than_LENGTH; + case if_mission_time_less_than_ID: + return if_mission_time_less_than_LENGTH; + case if_mission_time_greater_than_ID: + return if_mission_time_greater_than_LENGTH; + case if_system_power_time_less_than_ID: + return if_system_power_time_less_than_LENGTH; + case if_system_power_time_greater_than_ID: + return if_system_power_time_greater_than_LENGTH; + case if_level_id_less_than_ID: + return if_level_id_less_than_LENGTH; + case if_level_id_greater_than_ID: + return if_level_id_greater_than_LENGTH; + case if_guard_hits_less_than_ID: + return if_guard_hits_less_than_LENGTH; + case if_guard_hits_greater_than_ID: + return if_guard_hits_greater_than_LENGTH; + case if_guard_hits_missed_less_than_ID: + return if_guard_hits_missed_less_than_LENGTH; + case if_guard_hits_missed_greater_than_ID: + return if_guard_hits_missed_greater_than_LENGTH; + case if_chr_health_less_than_ID: + return if_chr_health_less_than_LENGTH; + case if_chr_health_greater_than_ID: + return if_chr_health_greater_than_LENGTH; + case if_chr_was_damaged_since_last_check_ID: + return if_chr_was_damaged_since_last_check_LENGTH; + case if_bond_health_less_than_ID: + return if_bond_health_less_than_LENGTH; + case if_bond_health_greater_than_ID: + return if_bond_health_greater_than_LENGTH; + case local_byte_1_set_ID: + return local_byte_1_set_LENGTH; + case local_byte_1_add_ID: + return local_byte_1_add_LENGTH; + case local_byte_1_subtract_ID: + return local_byte_1_subtract_LENGTH; + case if_local_byte_1_less_than_ID: + return if_local_byte_1_less_than_LENGTH; + case if_local_byte_1_less_than_random_seed_ID: + return if_local_byte_1_less_than_random_seed_LENGTH; + case local_byte_2_set_ID: + return local_byte_2_set_LENGTH; + case local_byte_2_add_ID: + return local_byte_2_add_LENGTH; + case local_byte_2_subtract_ID: + return local_byte_2_subtract_LENGTH; + case if_local_byte_2_less_than_ID: + return if_local_byte_2_less_than_LENGTH; + case if_local_byte_2_less_than_random_seed_ID: + return if_local_byte_2_less_than_random_seed_LENGTH; + case guard_set_hearing_scale_ID: + return guard_set_hearing_scale_LENGTH; + case guard_set_vision_range_ID: + return guard_set_vision_range_LENGTH; + case guard_set_grenade_probability_ID: + return guard_set_grenade_probability_LENGTH; + case guard_set_chr_num_ID: + return guard_set_chr_num_LENGTH; + case guard_set_health_total_ID: + return guard_set_health_total_LENGTH; + case guard_set_armour_ID: + return guard_set_armour_LENGTH; + case guard_set_speed_rating_ID: + return guard_set_speed_rating_LENGTH; + case guard_set_argh_rating_ID: + return guard_set_argh_rating_LENGTH; + case guard_set_accuracy_rating_ID: + return guard_set_accuracy_rating_LENGTH; + case guard_bitfield_set_on_ID: + return guard_bitfield_set_on_LENGTH; + case guard_bitfield_set_off_ID: + return guard_bitfield_set_off_LENGTH; + case if_guard_bitfield_is_set_on_ID: + return if_guard_bitfield_is_set_on_LENGTH; + case chr_bitfield_set_on_ID: + return chr_bitfield_set_on_LENGTH; + case chr_bitfield_set_off_ID: + return chr_bitfield_set_off_LENGTH; + case if_chr_bitfield_is_set_on_ID: + return if_chr_bitfield_is_set_on_LENGTH; + case guard_flags_set_on_ID: + return guard_flags_set_on_LENGTH; + case guard_flags_set_off_ID: + return guard_flags_set_off_LENGTH; + case if_guard_flags_is_set_on_ID: + return if_guard_flags_is_set_on_LENGTH; + case chr_flags_set_on_ID: + return chr_flags_set_on_LENGTH; + case chr_flags_set_off_ID: + return chr_flags_set_off_LENGTH; + case if_chr_flags_is_set_on_ID: + return if_chr_flags_is_set_on_LENGTH; + case object_flags_1_set_on_ID: + return object_flags_1_set_on_LENGTH; + case object_flags_1_set_off_ID: + return object_flags_1_set_off_LENGTH; + case if_object_flags_1_is_set_on_ID: + return if_object_flags_1_is_set_on_LENGTH; + case object_flags_2_set_on_ID: + return object_flags_2_set_on_LENGTH; + case object_flags_2_set_off_ID: + return object_flags_2_set_off_LENGTH; + case if_object_flags_2_is_set_on_ID: + return if_object_flags_2_is_set_on_LENGTH; + case guard_set_chr_preset_ID: + return guard_set_chr_preset_LENGTH; + case chr_set_chr_preset_ID: + return chr_set_chr_preset_LENGTH; + case guard_set_pad_preset_ID: + return guard_set_pad_preset_LENGTH; + case chr_set_pad_preset_ID: + return chr_set_pad_preset_LENGTH; + case debug_log_ID: + for (int i = 0; currentaction[i] < debug_log_LENGTH; i++) + { + if (currentaction[i] == debug_log_end) + return i; + } + return debug_log_LENGTH; + case local_timer_reset_start_ID: + return local_timer_reset_start_LENGTH; + case local_timer_reset_ID: + return local_timer_reset_LENGTH; + case local_timer_stop_ID: + return local_timer_stop_LENGTH; + case local_timer_start_ID: + return local_timer_start_LENGTH; + case if_local_timer_has_stopped_ID: + return if_local_timer_has_stopped_LENGTH; + case if_local_timer_less_than_ID: + return if_local_timer_less_than_LENGTH; + case if_local_timer_greater_than_ID: + return if_local_timer_greater_than_LENGTH; + case hud_countdown_show_ID: + return hud_countdown_show_LENGTH; + case hud_countdown_hide_ID: + return hud_countdown_hide_LENGTH; + case hud_countdown_set_ID: + return hud_countdown_set_LENGTH; + case hud_countdown_stop_ID: + return hud_countdown_stop_LENGTH; + case hud_countdown_start_ID: + return hud_countdown_start_LENGTH; + case if_hud_countdown_has_stopped_ID: + return if_hud_countdown_has_stopped_LENGTH; + case if_hud_countdown_less_than_ID: + return if_hud_countdown_less_than_LENGTH; + case if_hud_countdown_greater_than_ID: + return if_hud_countdown_greater_than_LENGTH; + case chr_try_spawning_at_pad_ID: + return chr_try_spawning_at_pad_LENGTH; + case chr_try_spawning_next_to_unseen_chr_ID: + return chr_try_spawning_next_to_unseen_chr_LENGTH; + case guard_try_spawning_item_ID: + return guard_try_spawning_item_LENGTH; + case guard_try_spawning_hat_ID: + return guard_try_spawning_hat_LENGTH; + case chr_try_spawning_clone_ID: + return chr_try_spawning_clone_LENGTH; + case text_print_bottom_ID: + return text_print_bottom_LENGTH; + case text_print_top_ID: + return text_print_top_LENGTH; + case sfx_play_ID: + return sfx_play_LENGTH; + case sfx_emit_from_object_ID: + return sfx_emit_from_object_LENGTH; + case sfx_emit_from_pad_ID: + return sfx_emit_from_pad_LENGTH; + case sfx_set_channel_volume_ID: + return sfx_set_channel_volume_LENGTH; + case sfx_fade_channel_volume_ID: + return sfx_fade_channel_volume_LENGTH; + case sfx_stop_channel_ID: + return sfx_stop_channel_LENGTH; + case if_sfx_channel_volume_less_than_ID: + return if_sfx_channel_volume_less_than_LENGTH; + case vehicle_start_path_ID: + return vehicle_start_path_LENGTH; + case vehicle_speed_ID: + return vehicle_speed_LENGTH; + case aircraft_rotor_speed_ID: + return aircraft_rotor_speed_LENGTH; + case if_camera_is_in_intro_ID: + return if_camera_is_in_intro_LENGTH; + case if_camera_is_in_bond_swirl_ID: + return if_camera_is_in_bond_swirl_LENGTH; + case tv_change_screen_bank_ID: + return tv_change_screen_bank_LENGTH; + case if_bond_in_tank_ID: + return if_bond_in_tank_LENGTH; + case exit_level_ID: + return exit_level_LENGTH; + case camera_return_to_bond_ID: + return camera_return_to_bond_LENGTH; + case camera_look_at_bond_from_pad_ID: + return camera_look_at_bond_from_pad_LENGTH; + case camera_switch_ID: + return camera_switch_LENGTH; + case if_bond_y_pos_less_than_ID: + return if_bond_y_pos_less_than_LENGTH; + case hud_hide_and_lock_controls_ID: + return hud_hide_and_lock_controls_LENGTH; + case hud_show_all_ID: + return hud_show_all_LENGTH; + case chr_try_teleporting_to_pad_ID: + return chr_try_teleporting_to_pad_LENGTH; + case screen_fade_to_black_ID: + return screen_fade_to_black_LENGTH; + case screen_fade_from_black_ID: + return screen_fade_from_black_LENGTH; + case if_screen_fade_completed_ID: + return if_screen_fade_completed_LENGTH; + case chr_hide_all_ID: + return chr_hide_all_LENGTH; + case chr_show_all_ID: + return chr_show_all_LENGTH; + case door_open_instant_ID: + return door_open_instant_LENGTH; + case chr_remove_item_in_hand_ID: + return chr_remove_item_in_hand_LENGTH; + case if_number_of_active_players_less_than_ID: + return if_number_of_active_players_less_than_LENGTH; + case if_bond_item_total_ammo_less_than_ID: + return if_bond_item_total_ammo_less_than_LENGTH; + case bond_equip_item_ID: + return bond_equip_item_LENGTH; + case bond_equip_item_cinema_ID: + return bond_equip_item_cinema_LENGTH; + case bond_set_locked_velocity_ID: + return bond_set_locked_velocity_LENGTH; + case if_object_in_room_with_pad_ID: + return if_object_in_room_with_pad_LENGTH; + case if_guard_is_firing_and_unknown_flag_ID: + return if_guard_is_firing_and_unknown_flag_LENGTH; + case if_guard_is_firing_ID: + return if_guard_is_firing_LENGTH; + case gas_leak_and_switch_fog_ID: + return gas_leak_and_switch_fog_LENGTH; + case mission_time_stop_and_exit_level_on_button_input_ID: + return mission_time_stop_and_exit_level_on_button_input_LENGTH; + case if_bond_is_dead_ID: + return if_bond_is_dead_LENGTH; + case bond_disable_damage_and_pickups_ID: + return bond_disable_damage_and_pickups_LENGTH; + case bond_hide_weapons_ID: + return bond_hide_weapons_LENGTH; + case camera_orbit_pad_ID: + return camera_orbit_pad_LENGTH; + case credits_roll_ID: + return credits_roll_LENGTH; + case if_credits_has_completed_ID: + return if_credits_has_completed_LENGTH; + case if_objective_all_completed_ID: + return if_objective_all_completed_LENGTH; + case if_folder_actor_is_equal_ID: + return if_folder_actor_is_equal_LENGTH; + case if_bond_damage_and_pickups_disabled_ID: + return if_bond_damage_and_pickups_disabled_LENGTH; + case music_xtrack_play_ID: + return music_xtrack_play_LENGTH; + case music_xtrack_stop_ID: + return music_xtrack_stop_LENGTH; + case trigger_explosions_around_bond_ID: + return trigger_explosions_around_bond_LENGTH; + case if_killed_civilians_greater_than_ID: + return if_killed_civilians_greater_than_LENGTH; + case if_chr_was_shot_since_last_check_ID: + return if_chr_was_shot_since_last_check_LENGTH; + case bond_killed_in_action_ID: + return bond_killed_in_action_LENGTH; + case guard_raises_arms_ID: + return guard_raises_arms_LENGTH; + case gas_leak_and_fade_fog_ID: + return gas_leak_and_fade_fog_LENGTH; + case object_rocket_launch_ID: + return object_rocket_launch_LENGTH; + + default: + return 1; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*80052100*/ +glabel jpt_actionblock_lengths +.word action00_length +.word action01_length +.word locret_CODE_7F034A34 +.word locret_CODE_7F034A3C +.word locret_CODE_7F034A44 +.word locret_CODE_7F034A4C +.word locret_CODE_7F034A54 +.word locret_CODE_7F034A5C +.word locret_CODE_7F034A64 +.word locret_CODE_7F034A6C +.word locret_CODE_7F034A74 +.word locret_CODE_7F034A7C +.word locret_CODE_7F034A84 +.word locret_CODE_7F034A8C +.word locret_CODE_7F034A94 +.word locret_CODE_7F034A9C +.word locret_CODE_7F034AA4 +.word locret_CODE_7F034AAC +.word locret_CODE_7F034AB4 +.word locret_CODE_7F034ABC +.word locret_CODE_7F034AC4 +.word locret_CODE_7F034ACC +.word locret_CODE_7F034AE4 +.word locret_CODE_7F034AEC +.word locret_CODE_7F034AF4 +.word locret_CODE_7F034AFC +.word locret_CODE_7F034B04 +.word locret_CODE_7F034B0C +.word locret_CODE_7F034B14 +.word locret_CODE_7F034B1C +.word locret_CODE_7F034B24 +.word locret_CODE_7F034B2C +.word locret_CODE_7F034B34 +.word locret_CODE_7F034B3C +.word locret_CODE_7F034B44 +.word locret_CODE_7F034B4C +.word locret_CODE_7F034B54 +.word locret_CODE_7F034B5C +.word locret_CODE_7F034B64 +.word locret_CODE_7F034B6C +.word locret_CODE_7F034B74 +.word locret_CODE_7F034B7C +.word locret_CODE_7F034B84 +.word locret_CODE_7F034B8C +.word locret_CODE_7F034B94 +.word locret_CODE_7F034B9C +.word locret_CODE_7F034BA4 +.word locret_CODE_7F034BAC +.word locret_CODE_7F034BB4 +.word locret_CODE_7F034BBC +.word locret_CODE_7F034BC4 +.word locret_CODE_7F034BCC +.word locret_CODE_7F034BD4 +.word locret_CODE_7F034BDC +.word locret_CODE_7F034BE4 +.word locret_CODE_7F034BEC +.word locret_CODE_7F034BF4 +.word locret_CODE_7F034BFC +.word locret_CODE_7F034C04 +.word locret_CODE_7F034C0C +.word locret_CODE_7F034C14 +.word locret_CODE_7F034C1C +.word locret_CODE_7F034C24 +.word locret_CODE_7F034C2C +.word locret_CODE_7F034C34 +.word locret_CODE_7F034C3C +.word locret_CODE_7F034C44 +.word locret_CODE_7F034C4C +.word locret_CODE_7F034C54 +.word locret_CODE_7F034C5C +.word locret_CODE_7F034C64 +.word locret_CODE_7F034C6C +.word locret_CODE_7F034C74 +.word locret_CODE_7F034C7C +.word locret_CODE_7F034C84 +.word locret_CODE_7F034C8C +.word locret_CODE_7F034C94 +.word locret_CODE_7F034C9C +.word locret_CODE_7F034CA4 +.word locret_CODE_7F034CAC +.word locret_CODE_7F034CB4 +.word locret_CODE_7F034CBC +.word locret_CODE_7F034CC4 +.word locret_CODE_7F034CCC +.word locret_CODE_7F034CD4 +.word locret_CODE_7F034CDC +.word locret_CODE_7F034CE4 +.word locret_CODE_7F034CEC +.word locret_CODE_7F034CF4 +.word locret_CODE_7F034CFC +.word locret_CODE_7F034D04 +.word locret_CODE_7F034D0C +.word locret_CODE_7F034D14 +.word locret_CODE_7F034D1C +.word locret_CODE_7F034D24 +.word locret_CODE_7F034D2C +.word locret_CODE_7F034D34 +.word locret_CODE_7F034D3C +.word locret_CODE_7F034D44 +.word locret_CODE_7F034D4C +.word locret_CODE_7F034D54 +.word locret_CODE_7F034D5C +.word locret_CODE_7F034D64 +.word locret_CODE_7F034D6C +.word locret_CODE_7F034D74 +.word locret_CODE_7F034D7C +.word locret_CODE_7F034D84 +.word locret_CODE_7F034D8C +.word locret_CODE_7F034D94 +.word locret_CODE_7F034D9C +.word locret_CODE_7F034DA4 +.word locret_CODE_7F034DAC +.word locret_CODE_7F034DB4 +.word locret_CODE_7F034DBC +.word locret_CODE_7F034DC4 +.word locret_CODE_7F034DCC +.word locret_CODE_7F034DD4 +.word locret_CODE_7F034DDC +.word locret_CODE_7F034DE4 +.word locret_CODE_7F034DEC +.word locret_CODE_7F034DF4 +.word locret_CODE_7F034DFC +.word locret_CODE_7F034E04 +.word locret_CODE_7F034E0C +.word locret_CODE_7F034E14 +.word locret_CODE_7F034E1C +.word locret_CODE_7F034E24 +.word locret_CODE_7F034E2C +.word locret_CODE_7F034E34 +.word locret_CODE_7F034E3C +.word locret_CODE_7F034E44 +.word locret_CODE_7F034E4C +.word locret_CODE_7F034E54 +.word locret_CODE_7F034E5C +.word locret_CODE_7F034E64 +.word locret_CODE_7F034E6C +.word locret_CODE_7F034E74 +.word locret_CODE_7F034E7C +.word locret_CODE_7F034E84 +.word locret_CODE_7F034E8C +.word locret_CODE_7F034E94 +.word locret_CODE_7F034E9C +.word locret_CODE_7F034EA4 +.word locret_CODE_7F034EAC +.word locret_CODE_7F034EB4 +.word locret_CODE_7F034EBC +.word locret_CODE_7F034EC4 +.word locret_CODE_7F034ECC +.word locret_CODE_7F034ED4 +.word locret_CODE_7F034EDC +.word locret_CODE_7F034EE4 +.word locret_CODE_7F034EEC +.word locret_CODE_7F034EF4 +.word locret_CODE_7F034EFC +.word locret_CODE_7F034F04 +.word locret_CODE_7F034F0C +.word locret_CODE_7F034F14 +.word locret_CODE_7F034F1C +.word locret_CODE_7F034F24 +.word locret_CODE_7F034F2C +.word locret_CODE_7F034F34 +.word locret_CODE_7F034F3C +.word locret_CODE_7F034F44 +.word locret_CODE_7F034F4C +.word locret_CODE_7F034F54 +.word locret_CODE_7F034F5C +.word locret_CODE_7F034F64 +.word locret_CODE_7F034F6C +.word locret_CODE_7F034F74 +.word locret_CODE_7F034F7C +.word locret_CODE_7F034F84 +.word locret_CODE_7F034F8C +.word locret_CODE_7F034F94 +.word actionAD_length +/*HACK FIXME */ +/*.word locret_CODE_7F034F9C*/ +/*.word locret_CODE_7F034FA4*/ +/*.word locret_CODE_7F034FAC*/ +/*.word locret_CODE_7F034FB4*/ +/*.word locret_CODE_7F034FBC*/ +/*.word locret_CODE_7F034FC4*/ +/*.word locret_CODE_7F034FCC*/ +/*.word locret_CODE_7F034FD4*/ +/*.word locret_CODE_7F034FDC*/ +/*.word locret_CODE_7F034FE4*/ +/*.word locret_CODE_7F034FEC*/ +/*.word locret_CODE_7F034FF4*/ +/*.word locret_CODE_7F034FFC*/ +/*.word locret_CODE_7F035004*/ +/*.word locret_CODE_7F03500C*/ +/*.word locret_CODE_7F035014*/ +/*.word locret_CODE_7F03501C*/ +/*.word locret_CODE_7F035024*/ +/*.word locret_CODE_7F03502C*/ +/*.word locret_CODE_7F035034*/ +/*.word locret_CODE_7F03503C*/ +/*.word locret_CODE_7F035044*/ +/*.word locret_CODE_7F03504C*/ +/*.word locret_CODE_7F035054*/ +/*.word locret_CODE_7F03505C*/ +/*.word locret_CODE_7F035064*/ +/*.word locret_CODE_7F03506C*/ +/*.word locret_CODE_7F035074*/ +/*.word locret_CODE_7F03507C*/ +/*.word locret_CODE_7F035084*/ +/*.word locret_CODE_7F03508C*/ +/*.word locret_CODE_7F035094*/ +/*.word locret_CODE_7F03509C*/ +/*.word locret_CODE_7F0350A4*/ +/*.word locret_CODE_7F0350AC*/ +/*.word locret_CODE_7F0350B4*/ +/*.word locret_CODE_7F0350BC*/ +/*.word locret_CODE_7F0350C4*/ +/*.word locret_CODE_7F0350CC*/ +/*.word locret_CODE_7F0350D4*/ +/*.word locret_CODE_7F0350DC*/ +/*.word locret_CODE_7F0350E4*/ +/*.word locret_CODE_7F0350EC*/ +/*.word locret_CODE_7F0350F4*/ +/*.word locret_CODE_7F0350FC*/ +/*.word locret_CODE_7F035104*/ +/*.word locret_CODE_7F03510C*/ +/*.word locret_CODE_7F035114*/ +/*.word locret_CODE_7F03511C*/ +/*.word locret_CODE_7F035124*/ +/*.word locret_CODE_7F03512C*/ +/*.word locret_CODE_7F035134*/ +/*.word locret_CODE_7F03513C*/ +/*.word locret_CODE_7F035144*/ +/*.word locret_CODE_7F03514C*/ +/*.word locret_CODE_7F035154*/ +/*.word locret_CODE_7F03515C*/ +/*.word locret_CODE_7F034ADC*/ +/*.word locret_CODE_7F034AD4*/ +/*.word locret_CODE_7F035164*/ +/*.word locret_CODE_7F03516C*/ +/*.word locret_CODE_7F035174*/ +/*.word locret_CODE_7F03517C*/ +/*.word locret_CODE_7F035184*/ +/*.word locret_CODE_7F03518C*/ +/*.word locret_CODE_7F035194*/ +/*.word locret_CODE_7F03519C*/ +/*.word locret_CODE_7F0351A4*/ +/*.word locret_CODE_7F0351AC*/ +/*.word locret_CODE_7F0351B4*/ +/*.word locret_CODE_7F0351BC*/ +/*.word locret_CODE_7F0351C4*/ +/*.word locret_CODE_7F0351CC*/ +/*.word locret_CODE_7F0351D4*/ +/*.word locret_CODE_7F0351DC*/ +/*.word locret_CODE_7F0351E4*/ +/*.word locret_CODE_7F0351EC*/ +/*.word locret_CODE_7F0351F4*/ +/*.word actionFC_length*/ +.text +glabel get_length_of_action_block #(CurrentActionByte) +/* 06952C 7F0349FC 00851021 */ addu $v0, $a0, $a1 #v0 = CurrentActionByte +/* 069530 7F034A00 904E0000 */ lbu $t6, ($v0) #t6= Action = byte(v0) +/* 069534 7F034A04 2DC100FD */ sltiu $at, $t6, 0xfd #if not Action less than AI_CMDS_TOTAL +/* 069538 7F034A08 1020020B */ beqz $at, ActionLengthSwitchElse # Action << 2 +/* 06953C 7F034A0C 000E7080 */ sll $t6, $t6, 2 # return 1 //goto ActionLengthSwitchElse +/* 069540 7F034A10 3C018005 */ lui $at, %hi(jpt_actionblock_lengths) #else +/* 069544 7F034A14 002E0821 */ addu $at, $at, $t6 # at = 8005 + t6 +/* 069548 7F034A18 8C2E2100 */ lw $t6, %lo(jpt_actionblock_lengths)($at) # Switch Action +/* 06954C 7F034A1C 01C00008 */ jr $t6 # jump to address held at 80052100+at = Select Case t6 +/* 069550 7F034A20 00000000 */ nop +action00_length: +/* 069554 7F034A24 03E00008 */ jr $ra +/* 069558 7F034A28 24020002 */ li $v0, 2 #return 2 +action01_length: +/* 06955C 7F034A2C 03E00008 */ jr $ra +/* 069560 7F034A30 24020002 */ li $v0, 2 +locret_CODE_7F034A34: +/* 069564 7F034A34 03E00008 */ jr $ra +/* 069568 7F034A38 24020002 */ li $v0, 2 +locret_CODE_7F034A3C: +/* 06956C 7F034A3C 03E00008 */ jr $ra +/* 069570 7F034A40 24020001 */ li $v0, 1 +locret_CODE_7F034A44: +/* 069574 7F034A44 03E00008 */ jr $ra +/* 069578 7F034A48 24020001 */ li $v0, 1 +locret_CODE_7F034A4C: +/* 06957C 7F034A4C 03E00008 */ jr $ra +/* 069580 7F034A50 24020004 */ li $v0, 4 +locret_CODE_7F034A54: +/* 069584 7F034A54 03E00008 */ jr $ra +/* 069588 7F034A58 24020003 */ li $v0, 3 +locret_CODE_7F034A5C: +/* 06958C 7F034A5C 03E00008 */ jr $ra +/* 069590 7F034A60 24020001 */ li $v0, 1 +locret_CODE_7F034A64: +/* 069594 7F034A64 03E00008 */ jr $ra +/* 069598 7F034A68 24020001 */ li $v0, 1 +locret_CODE_7F034A6C: +/* 06959C 7F034A6C 03E00008 */ jr $ra +/* 0695A0 7F034A70 24020001 */ li $v0, 1 +locret_CODE_7F034A74: +/* 0695A4 7F034A74 03E00008 */ jr $ra +/* 0695A8 7F034A78 24020009 */ li $v0, 9 +locret_CODE_7F034A7C: +/* 0695AC 7F034A7C 03E00008 */ jr $ra +/* 0695B0 7F034A80 24020002 */ li $v0, 2 +locret_CODE_7F034A84: +/* 0695B4 7F034A84 03E00008 */ jr $ra +/* 0695B8 7F034A88 24020001 */ li $v0, 1 +locret_CODE_7F034A8C: +/* 0695BC 7F034A8C 03E00008 */ jr $ra +/* 0695C0 7F034A90 24020001 */ li $v0, 1 +locret_CODE_7F034A94: +/* 0695C4 7F034A94 03E00008 */ jr $ra +/* 0695C8 7F034A98 24020002 */ li $v0, 2 +locret_CODE_7F034A9C: +/* 0695CC 7F034A9C 03E00008 */ jr $ra +/* 0695D0 7F034AA0 24020002 */ li $v0, 2 +locret_CODE_7F034AA4: +/* 0695D4 7F034AA4 03E00008 */ jr $ra +/* 0695D8 7F034AA8 24020002 */ li $v0, 2 +locret_CODE_7F034AAC: +/* 0695DC 7F034AAC 03E00008 */ jr $ra +/* 0695E0 7F034AB0 24020002 */ li $v0, 2 +locret_CODE_7F034AB4: +/* 0695E4 7F034AB4 03E00008 */ jr $ra +/* 0695E8 7F034AB8 24020002 */ li $v0, 2 +locret_CODE_7F034ABC: +/* 0695EC 7F034ABC 03E00008 */ jr $ra +/* 0695F0 7F034AC0 24020002 */ li $v0, 2 +locret_CODE_7F034AC4: +/* 0695F4 7F034AC4 03E00008 */ jr $ra +/* 0695F8 7F034AC8 24020006 */ li $v0, 6 +locret_CODE_7F034ACC: +/* 0695FC 7F034ACC 03E00008 */ jr $ra +/* 069600 7F034AD0 24020006 */ li $v0, 6 +locret_CODE_7F034AD4: +/* 069604 7F034AD4 03E00008 */ jr $ra +/* 069608 7F034AD8 24020002 */ li $v0, 2 +locret_CODE_7F034ADC: +/* 06960C 7F034ADC 03E00008 */ jr $ra +/* 069610 7F034AE0 24020002 */ li $v0, 2 +locret_CODE_7F034AE4: +/* 069614 7F034AE4 03E00008 */ jr $ra +/* 069618 7F034AE8 24020006 */ li $v0, 6 +locret_CODE_7F034AEC: +/* 06961C 7F034AEC 03E00008 */ jr $ra +/* 069620 7F034AF0 24020006 */ li $v0, 6 +locret_CODE_7F034AF4: +/* 069624 7F034AF4 03E00008 */ jr $ra +/* 069628 7F034AF8 24020004 */ li $v0, 4 +locret_CODE_7F034AFC: +/* 06962C 7F034AFC 03E00008 */ jr $ra +/* 069630 7F034B00 24020004 */ li $v0, 4 +locret_CODE_7F034B04: +/* 069634 7F034B04 03E00008 */ jr $ra +/* 069638 7F034B08 24020002 */ li $v0, 2 +locret_CODE_7F034B0C: +/* 06963C 7F034B0C 03E00008 */ jr $ra +/* 069640 7F034B10 24020005 */ li $v0, 5 +locret_CODE_7F034B14: +/* 069644 7F034B14 03E00008 */ jr $ra +/* 069648 7F034B18 24020003 */ li $v0, 3 +locret_CODE_7F034B1C: +/* 06964C 7F034B1C 03E00008 */ jr $ra +/* 069650 7F034B20 24020001 */ li $v0, 1 +locret_CODE_7F034B24: +/* 069654 7F034B24 03E00008 */ jr $ra +/* 069658 7F034B28 24020003 */ li $v0, 3 +locret_CODE_7F034B2C: +/* 06965C 7F034B2C 03E00008 */ jr $ra +/* 069660 7F034B30 24020003 */ li $v0, 3 +locret_CODE_7F034B34: +/* 069664 7F034B34 03E00008 */ jr $ra +/* 069668 7F034B38 24020002 */ li $v0, 2 +locret_CODE_7F034B3C: +/* 06966C 7F034B3C 03E00008 */ jr $ra +/* 069670 7F034B40 24020001 */ li $v0, 1 +locret_CODE_7F034B44: +/* 069674 7F034B44 03E00008 */ jr $ra +/* 069678 7F034B48 24020001 */ li $v0, 1 +locret_CODE_7F034B4C: +/* 06967C 7F034B4C 03E00008 */ jr $ra +/* 069680 7F034B50 24020002 */ li $v0, 2 +locret_CODE_7F034B54: +/* 069684 7F034B54 03E00008 */ jr $ra +/* 069688 7F034B58 24020004 */ li $v0, 4 +locret_CODE_7F034B5C: +/* 06968C 7F034B5C 03E00008 */ jr $ra +/* 069690 7F034B60 24020001 */ li $v0, 1 +locret_CODE_7F034B64: +/* 069694 7F034B64 03E00008 */ jr $ra +/* 069698 7F034B68 24020001 */ li $v0, 1 +locret_CODE_7F034B6C: +/* 06969C 7F034B6C 03E00008 */ jr $ra +/* 0696A0 7F034B70 24020002 */ li $v0, 2 +locret_CODE_7F034B74: +/* 0696A4 7F034B74 03E00008 */ jr $ra +/* 0696A8 7F034B78 24020002 */ li $v0, 2 +locret_CODE_7F034B7C: +/* 0696AC 7F034B7C 03E00008 */ jr $ra +/* 0696B0 7F034B80 24020002 */ li $v0, 2 +locret_CODE_7F034B84: +/* 0696B4 7F034B84 03E00008 */ jr $ra +/* 0696B8 7F034B88 24020002 */ li $v0, 2 +locret_CODE_7F034B8C: +/* 0696BC 7F034B8C 03E00008 */ jr $ra +/* 0696C0 7F034B90 24020002 */ li $v0, 2 +locret_CODE_7F034B94: +/* 0696C4 7F034B94 03E00008 */ jr $ra +/* 0696C8 7F034B98 24020003 */ li $v0, 3 +locret_CODE_7F034B9C: +/* 0696CC 7F034B9C 03E00008 */ jr $ra +/* 0696D0 7F034BA0 24020003 */ li $v0, 3 +locret_CODE_7F034BA4: +/* 0696D4 7F034BA4 03E00008 */ jr $ra +/* 0696D8 7F034BA8 24020003 */ li $v0, 3 +locret_CODE_7F034BAC: +/* 0696DC 7F034BAC 03E00008 */ jr $ra +/* 0696E0 7F034BB0 24020002 */ li $v0, 2 +locret_CODE_7F034BB4: +/* 0696E4 7F034BB4 03E00008 */ jr $ra +/* 0696E8 7F034BB8 24020003 */ li $v0, 3 +locret_CODE_7F034BBC: +/* 0696EC 7F034BBC 03E00008 */ jr $ra +/* 0696F0 7F034BC0 24020003 */ li $v0, 3 +locret_CODE_7F034BC4: +/* 0696F4 7F034BC4 03E00008 */ jr $ra +/* 0696F8 7F034BC8 24020002 */ li $v0, 2 +locret_CODE_7F034BCC: +/* 0696FC 7F034BCC 03E00008 */ jr $ra +/* 069700 7F034BD0 24020001 */ li $v0, 1 +locret_CODE_7F034BD4: +/* 069704 7F034BD4 03E00008 */ jr $ra +/* 069708 7F034BD8 24020003 */ li $v0, 3 +locret_CODE_7F034BDC: +/* 06970C 7F034BDC 03E00008 */ jr $ra +/* 069710 7F034BE0 24020003 */ li $v0, 3 +locret_CODE_7F034BE4: +/* 069714 7F034BE4 03E00008 */ jr $ra +/* 069718 7F034BE8 24020002 */ li $v0, 2 +locret_CODE_7F034BEC: +/* 06971C 7F034BEC 03E00008 */ jr $ra +/* 069720 7F034BF0 24020002 */ li $v0, 2 +locret_CODE_7F034BF4: +/* 069724 7F034BF4 03E00008 */ jr $ra +/* 069728 7F034BF8 24020002 */ li $v0, 2 +locret_CODE_7F034BFC: +/* 06972C 7F034BFC 03E00008 */ jr $ra +/* 069730 7F034C00 24020002 */ li $v0, 2 +locret_CODE_7F034C04: +/* 069734 7F034C04 03E00008 */ jr $ra +/* 069738 7F034C08 24020002 */ li $v0, 2 +locret_CODE_7F034C0C: +/* 06973C 7F034C0C 03E00008 */ jr $ra +/* 069740 7F034C10 24020002 */ li $v0, 2 +locret_CODE_7F034C14: +/* 069744 7F034C14 03E00008 */ jr $ra +/* 069748 7F034C18 24020002 */ li $v0, 2 +locret_CODE_7F034C1C: +/* 06974C 7F034C1C 03E00008 */ jr $ra +/* 069750 7F034C20 24020002 */ li $v0, 2 +locret_CODE_7F034C24: +/* 069754 7F034C24 03E00008 */ jr $ra +/* 069758 7F034C28 24020002 */ li $v0, 2 +locret_CODE_7F034C2C: +/* 06975C 7F034C2C 03E00008 */ jr $ra +/* 069760 7F034C30 24020002 */ li $v0, 2 +locret_CODE_7F034C34: +/* 069764 7F034C34 03E00008 */ jr $ra +/* 069768 7F034C38 24020003 */ li $v0, 3 +locret_CODE_7F034C3C: +/* 06976C 7F034C3C 03E00008 */ jr $ra +/* 069770 7F034C40 24020002 */ li $v0, 2 +locret_CODE_7F034C44: +/* 069774 7F034C44 03E00008 */ jr $ra +/* 069778 7F034C48 24020002 */ li $v0, 2 +locret_CODE_7F034C4C: +/* 06977C 7F034C4C 03E00008 */ jr $ra +/* 069780 7F034C50 24020002 */ li $v0, 2 +locret_CODE_7F034C54: +/* 069784 7F034C54 03E00008 */ jr $ra +/* 069788 7F034C58 24020004 */ li $v0, 4 +locret_CODE_7F034C5C: +/* 06978C 7F034C5C 03E00008 */ jr $ra +/* 069790 7F034C60 24020002 */ li $v0, 2 +locret_CODE_7F034C64: +/* 069794 7F034C64 03E00008 */ jr $ra +/* 069798 7F034C68 24020002 */ li $v0, 2 +locret_CODE_7F034C6C: +/* 06979C 7F034C6C 03E00008 */ jr $ra +/* 0697A0 7F034C70 24020003 */ li $v0, 3 +locret_CODE_7F034C74: +/* 0697A4 7F034C74 03E00008 */ jr $ra +/* 0697A8 7F034C78 24020003 */ li $v0, 3 +locret_CODE_7F034C7C: +/* 0697AC 7F034C7C 03E00008 */ jr $ra +/* 0697B0 7F034C80 24020003 */ li $v0, 3 +locret_CODE_7F034C84: +/* 0697B4 7F034C84 03E00008 */ jr $ra +/* 0697B8 7F034C88 24020003 */ li $v0, 3 +locret_CODE_7F034C8C: +/* 0697BC 7F034C8C 03E00008 */ jr $ra +/* 0697C0 7F034C90 24020004 */ li $v0, 4 +locret_CODE_7F034C94: +/* 0697C4 7F034C94 03E00008 */ jr $ra +/* 0697C8 7F034C98 24020004 */ li $v0, 4 +locret_CODE_7F034C9C: +/* 0697CC 7F034C9C 03E00008 */ jr $ra +/* 0697D0 7F034CA0 24020007 */ li $v0, 7 +locret_CODE_7F034CA4: +/* 0697D4 7F034CA4 03E00008 */ jr $ra +/* 0697D8 7F034CA8 24020007 */ li $v0, 7 +locret_CODE_7F034CAC: +/* 0697DC 7F034CAC 03E00008 */ jr $ra +/* 0697E0 7F034CB0 24020005 */ li $v0, 5 +locret_CODE_7F034CB4: +/* 0697E4 7F034CB4 03E00008 */ jr $ra +/* 0697E8 7F034CB8 24020005 */ li $v0, 5 +locret_CODE_7F034CBC: +/* 0697EC 7F034CBC 03E00008 */ jr $ra +/* 0697F0 7F034CC0 24020004 */ li $v0, 4 +locret_CODE_7F034CC4: +/* 0697F4 7F034CC4 03E00008 */ jr $ra +/* 0697F8 7F034CC8 24020006 */ li $v0, 6 +locret_CODE_7F034CCC: +/* 0697FC 7F034CCC 03E00008 */ jr $ra +/* 069800 7F034CD0 24020006 */ li $v0, 6 +locret_CODE_7F034CD4: +/* 069804 7F034CD4 03E00008 */ jr $ra +/* 069808 7F034CD8 24020005 */ li $v0, 5 +locret_CODE_7F034CDC: +/* 06980C 7F034CDC 03E00008 */ jr $ra +/* 069810 7F034CE0 24020004 */ li $v0, 4 +locret_CODE_7F034CE4: +/* 069814 7F034CE4 03E00008 */ jr $ra +/* 069818 7F034CE8 24020003 */ li $v0, 3 +locret_CODE_7F034CEC: +/* 06981C 7F034CEC 03E00008 */ jr $ra +/* 069820 7F034CF0 24020003 */ li $v0, 3 +locret_CODE_7F034CF4: +/* 069824 7F034CF4 03E00008 */ jr $ra +/* 069828 7F034CF8 24020004 */ li $v0, 4 +locret_CODE_7F034CFC: +/* 06982C 7F034CFC 03E00008 */ jr $ra +/* 069830 7F034D00 24020003 */ li $v0, 3 +locret_CODE_7F034D04: +/* 069834 7F034D04 03E00008 */ jr $ra +/* 069838 7F034D08 24020003 */ li $v0, 3 +locret_CODE_7F034D0C: +/* 06983C 7F034D0C 03E00008 */ jr $ra +/* 069840 7F034D10 24020003 */ li $v0, 3 +locret_CODE_7F034D14: +/* 069844 7F034D14 03E00008 */ jr $ra +/* 069848 7F034D18 24020003 */ li $v0, 3 +locret_CODE_7F034D1C: +/* 06984C 7F034D1C 03E00008 */ jr $ra +/* 069850 7F034D20 24020003 */ li $v0, 3 +locret_CODE_7F034D24: +/* 069854 7F034D24 03E00008 */ jr $ra +/* 069858 7F034D28 24020002 */ li $v0, 2 +locret_CODE_7F034D2C: +/* 06985C 7F034D2C 03E00008 */ jr $ra +/* 069860 7F034D30 24020002 */ li $v0, 2 +locret_CODE_7F034D34: +/* 069864 7F034D34 03E00008 */ jr $ra +/* 069868 7F034D38 24020002 */ li $v0, 2 +locret_CODE_7F034D3C: +/* 06986C 7F034D3C 03E00008 */ jr $ra +/* 069870 7F034D40 24020002 */ li $v0, 2 +locret_CODE_7F034D44: +/* 069874 7F034D44 03E00008 */ jr $ra +/* 069878 7F034D48 24020002 */ li $v0, 2 +locret_CODE_7F034D4C: +/* 06987C 7F034D4C 03E00008 */ jr $ra +/* 069880 7F034D50 24020002 */ li $v0, 2 +locret_CODE_7F034D54: +/* 069884 7F034D54 03E00008 */ jr $ra +/* 069888 7F034D58 24020003 */ li $v0, 3 +locret_CODE_7F034D5C: +/* 06988C 7F034D5C 03E00008 */ jr $ra +/* 069890 7F034D60 24020004 */ li $v0, 4 +locret_CODE_7F034D64: +/* 069894 7F034D64 03E00008 */ jr $ra +/* 069898 7F034D68 24020002 */ li $v0, 2 +locret_CODE_7F034D6C: +/* 06989C 7F034D6C 03E00008 */ jr $ra +/* 0698A0 7F034D70 24020002 */ li $v0, 2 +locret_CODE_7F034D74: +/* 0698A4 7F034D74 03E00008 */ jr $ra +/* 0698A8 7F034D78 24020004 */ li $v0, 4 +locret_CODE_7F034D7C: +/* 0698AC 7F034D7C 03E00008 */ jr $ra +/* 0698B0 7F034D80 24020003 */ li $v0, 3 +locret_CODE_7F034D84: +/* 0698B4 7F034D84 03E00008 */ jr $ra +/* 0698B8 7F034D88 24020003 */ li $v0, 3 +locret_CODE_7F034D8C: +/* 0698BC 7F034D8C 03E00008 */ jr $ra +/* 0698C0 7F034D90 24020003 */ li $v0, 3 +locret_CODE_7F034D94: +/* 0698C4 7F034D94 03E00008 */ jr $ra +/* 0698C8 7F034D98 24020004 */ li $v0, 4 +locret_CODE_7F034D9C: +/* 0698CC 7F034D9C 03E00008 */ jr $ra +/* 0698D0 7F034DA0 24020003 */ li $v0, 3 +locret_CODE_7F034DA4: +/* 0698D4 7F034DA4 03E00008 */ jr $ra +/* 0698D8 7F034DA8 24020003 */ li $v0, 3 +locret_CODE_7F034DAC: +/* 0698DC 7F034DAC 03E00008 */ jr $ra +/* 0698E0 7F034DB0 24020003 */ li $v0, 3 +locret_CODE_7F034DB4: +/* 0698E4 7F034DB4 03E00008 */ jr $ra +/* 0698E8 7F034DB8 24020003 */ li $v0, 3 +locret_CODE_7F034DBC: +/* 0698EC 7F034DBC 03E00008 */ jr $ra +/* 0698F0 7F034DC0 24020003 */ li $v0, 3 +locret_CODE_7F034DC4: +/* 0698F4 7F034DC4 03E00008 */ jr $ra +/* 0698F8 7F034DC8 24020004 */ li $v0, 4 +locret_CODE_7F034DCC: +/* 0698FC 7F034DCC 03E00008 */ jr $ra +/* 069900 7F034DD0 24020004 */ li $v0, 4 +locret_CODE_7F034DD4: +/* 069904 7F034DD4 03E00008 */ jr $ra +/* 069908 7F034DD8 24020004 */ li $v0, 4 +locret_CODE_7F034DDC: +/* 06990C 7F034DDC 03E00008 */ jr $ra +/* 069910 7F034DE0 24020004 */ li $v0, 4 +locret_CODE_7F034DE4: +/* 069914 7F034DE4 03E00008 */ jr $ra +/* 069918 7F034DE8 24020003 */ li $v0, 3 +locret_CODE_7F034DEC: +/* 06991C 7F034DEC 03E00008 */ jr $ra +/* 069920 7F034DF0 24020003 */ li $v0, 3 +locret_CODE_7F034DF4: +/* 069924 7F034DF4 03E00008 */ jr $ra +/* 069928 7F034DF8 24020003 */ li $v0, 3 +locret_CODE_7F034DFC: +/* 06992C 7F034DFC 03E00008 */ jr $ra +/* 069930 7F034E00 24020003 */ li $v0, 3 +locret_CODE_7F034E04: +/* 069934 7F034E04 03E00008 */ jr $ra +/* 069938 7F034E08 24020003 */ li $v0, 3 +locret_CODE_7F034E0C: +/* 06993C 7F034E0C 03E00008 */ jr $ra +/* 069940 7F034E10 24020003 */ li $v0, 3 +locret_CODE_7F034E14: +/* 069944 7F034E14 03E00008 */ jr $ra +/* 069948 7F034E18 24020004 */ li $v0, 4 +locret_CODE_7F034E1C: +/* 06994C 7F034E1C 03E00008 */ jr $ra +/* 069950 7F034E20 24020004 */ li $v0, 4 +locret_CODE_7F034E24: +/* 069954 7F034E24 03E00008 */ jr $ra +/* 069958 7F034E28 24020003 */ li $v0, 3 +locret_CODE_7F034E2C: +/* 06995C 7F034E2C 03E00008 */ jr $ra +/* 069960 7F034E30 24020003 */ li $v0, 3 +locret_CODE_7F034E34: +/* 069964 7F034E34 03E00008 */ jr $ra +/* 069968 7F034E38 24020003 */ li $v0, 3 +locret_CODE_7F034E3C: +/* 06996C 7F034E3C 03E00008 */ jr $ra +/* 069970 7F034E40 24020002 */ li $v0, 2 +locret_CODE_7F034E44: +/* 069974 7F034E44 03E00008 */ jr $ra +/* 069978 7F034E48 24020002 */ li $v0, 2 +locret_CODE_7F034E4C: +/* 06997C 7F034E4C 03E00008 */ jr $ra +/* 069980 7F034E50 24020002 */ li $v0, 2 +locret_CODE_7F034E54: +/* 069984 7F034E54 03E00008 */ jr $ra +/* 069988 7F034E58 24020003 */ li $v0, 3 +locret_CODE_7F034E5C: +/* 06998C 7F034E5C 03E00008 */ jr $ra +/* 069990 7F034E60 24020002 */ li $v0, 2 +locret_CODE_7F034E64: +/* 069994 7F034E64 03E00008 */ jr $ra +/* 069998 7F034E68 24020002 */ li $v0, 2 +locret_CODE_7F034E6C: +/* 06999C 7F034E6C 03E00008 */ jr $ra +/* 0699A0 7F034E70 24020002 */ li $v0, 2 +locret_CODE_7F034E74: +/* 0699A4 7F034E74 03E00008 */ jr $ra +/* 0699A8 7F034E78 24020002 */ li $v0, 2 +locret_CODE_7F034E7C: +/* 0699AC 7F034E7C 03E00008 */ jr $ra +/* 0699B0 7F034E80 24020003 */ li $v0, 3 +locret_CODE_7F034E84: +/* 0699B4 7F034E84 03E00008 */ jr $ra +/* 0699B8 7F034E88 24020002 */ li $v0, 2 +locret_CODE_7F034E8C: +/* 0699BC 7F034E8C 03E00008 */ jr $ra +/* 0699C0 7F034E90 24020003 */ li $v0, 3 +locret_CODE_7F034E94: +/* 0699C4 7F034E94 03E00008 */ jr $ra +/* 0699C8 7F034E98 24020002 */ li $v0, 2 +locret_CODE_7F034E9C: +/* 0699CC 7F034E9C 03E00008 */ jr $ra +/* 0699D0 7F034EA0 24020002 */ li $v0, 2 +locret_CODE_7F034EA4: +/* 0699D4 7F034EA4 03E00008 */ jr $ra +/* 0699D8 7F034EA8 24020002 */ li $v0, 2 +locret_CODE_7F034EAC: +/* 0699DC 7F034EAC 03E00008 */ jr $ra +/* 0699E0 7F034EB0 24020003 */ li $v0, 3 +locret_CODE_7F034EB4: +/* 0699E4 7F034EB4 03E00008 */ jr $ra +/* 0699E8 7F034EB8 24020003 */ li $v0, 3 +locret_CODE_7F034EBC: +/* 0699EC 7F034EBC 03E00008 */ jr $ra +/* 0699F0 7F034EC0 24020002 */ li $v0, 2 +locret_CODE_7F034EC4: +/* 0699F4 7F034EC4 03E00008 */ jr $ra +/* 0699F8 7F034EC8 24020002 */ li $v0, 2 +locret_CODE_7F034ECC: +/* 0699FC 7F034ECC 03E00008 */ jr $ra +/* 069A00 7F034ED0 24020002 */ li $v0, 2 +locret_CODE_7F034ED4: +/* 069A04 7F034ED4 03E00008 */ jr $ra +/* 069A08 7F034ED8 24020002 */ li $v0, 2 +locret_CODE_7F034EDC: +/* 069A0C 7F034EDC 03E00008 */ jr $ra +/* 069A10 7F034EE0 24020002 */ li $v0, 2 +locret_CODE_7F034EE4: +/* 069A14 7F034EE4 03E00008 */ jr $ra +/* 069A18 7F034EE8 24020003 */ li $v0, 3 +locret_CODE_7F034EEC: +/* 069A1C 7F034EEC 03E00008 */ jr $ra +/* 069A20 7F034EF0 24020003 */ li $v0, 3 +locret_CODE_7F034EF4: +/* 069A24 7F034EF4 03E00008 */ jr $ra +/* 069A28 7F034EF8 24020003 */ li $v0, 3 +locret_CODE_7F034EFC: +/* 069A2C 7F034EFC 03E00008 */ jr $ra +/* 069A30 7F034F00 24020004 */ li $v0, 4 +locret_CODE_7F034F04: +/* 069A34 7F034F04 03E00008 */ jr $ra +/* 069A38 7F034F08 24020005 */ li $v0, 5 +locret_CODE_7F034F0C: +/* 069A3C 7F034F0C 03E00008 */ jr $ra +/* 069A40 7F034F10 24020005 */ li $v0, 5 +locret_CODE_7F034F14: +/* 069A44 7F034F14 03E00008 */ jr $ra +/* 069A48 7F034F18 24020006 */ li $v0, 6 +locret_CODE_7F034F1C: +/* 069A4C 7F034F1C 03E00008 */ jr $ra +/* 069A50 7F034F20 24020005 */ li $v0, 5 +locret_CODE_7F034F24: +/* 069A54 7F034F24 03E00008 */ jr $ra +/* 069A58 7F034F28 24020005 */ li $v0, 5 +locret_CODE_7F034F2C: +/* 069A5C 7F034F2C 03E00008 */ jr $ra +/* 069A60 7F034F30 24020006 */ li $v0, 6 +locret_CODE_7F034F34: +/* 069A64 7F034F34 03E00008 */ jr $ra +/* 069A68 7F034F38 24020006 */ li $v0, 6 +locret_CODE_7F034F3C: +/* 069A6C 7F034F3C 03E00008 */ jr $ra +/* 069A70 7F034F40 24020006 */ li $v0, 6 +locret_CODE_7F034F44: +/* 069A74 7F034F44 03E00008 */ jr $ra +/* 069A78 7F034F48 24020007 */ li $v0, 7 +locret_CODE_7F034F4C: +/* 069A7C 7F034F4C 03E00008 */ jr $ra +/* 069A80 7F034F50 24020006 */ li $v0, 6 +locret_CODE_7F034F54: +/* 069A84 7F034F54 03E00008 */ jr $ra +/* 069A88 7F034F58 24020006 */ li $v0, 6 +locret_CODE_7F034F5C: +/* 069A8C 7F034F5C 03E00008 */ jr $ra +/* 069A90 7F034F60 24020007 */ li $v0, 7 +locret_CODE_7F034F64: +/* 069A94 7F034F64 03E00008 */ jr $ra +/* 069A98 7F034F68 24020006 */ li $v0, 6 +locret_CODE_7F034F6C: +/* 069A9C 7F034F6C 03E00008 */ jr $ra +/* 069AA0 7F034F70 24020006 */ li $v0, 6 +locret_CODE_7F034F74: +/* 069AA4 7F034F74 03E00008 */ jr $ra +/* 069AA8 7F034F78 24020007 */ li $v0, 7 +locret_CODE_7F034F7C: +/* 069AAC 7F034F7C 03E00008 */ jr $ra +/* 069AB0 7F034F80 24020002 */ li $v0, 2 +locret_CODE_7F034F84: +/* 069AB4 7F034F84 03E00008 */ jr $ra +/* 069AB8 7F034F88 24020003 */ li $v0, 3 +locret_CODE_7F034F8C: +/* 069ABC 7F034F8C 03E00008 */ jr $ra +/* 069AC0 7F034F90 24020003 */ li $v0, 3 +locret_CODE_7F034F94: +/* 069AC4 7F034F94 03E00008 */ jr $ra +/* 069AC8 7F034F98 24020004 */ li $v0, 4 +locret_CODE_7F034F9C: +/* 069ACC 7F034F9C 03E00008 */ jr $ra +/* 069AD0 7F034FA0 24020001 */ li $v0, 1 +locret_CODE_7F034FA4: +/* 069AD4 7F034FA4 03E00008 */ jr $ra +/* 069AD8 7F034FA8 24020001 */ li $v0, 1 +locret_CODE_7F034FAC: +/* 069ADC 7F034FAC 03E00008 */ jr $ra +/* 069AE0 7F034FB0 24020001 */ li $v0, 1 +locret_CODE_7F034FB4: +/* 069AE4 7F034FB4 03E00008 */ jr $ra +/* 069AE8 7F034FB8 24020001 */ li $v0, 1 +locret_CODE_7F034FBC: +/* 069AEC 7F034FBC 03E00008 */ jr $ra +/* 069AF0 7F034FC0 24020002 */ li $v0, 2 +locret_CODE_7F034FC4: +/* 069AF4 7F034FC4 03E00008 */ jr $ra +/* 069AF8 7F034FC8 24020005 */ li $v0, 5 +locret_CODE_7F034FCC: +/* 069AFC 7F034FCC 03E00008 */ jr $ra +/* 069B00 7F034FD0 24020005 */ li $v0, 5 +locret_CODE_7F034FD4: +/* 069B04 7F034FD4 03E00008 */ jr $ra +/* 069B08 7F034FD8 24020001 */ li $v0, 1 +locret_CODE_7F034FDC: +/* 069B0C 7F034FDC 03E00008 */ jr $ra +/* 069B10 7F034FE0 24020001 */ li $v0, 1 +locret_CODE_7F034FE4: +/* 069B14 7F034FE4 03E00008 */ jr $ra +/* 069B18 7F034FE8 24020003 */ li $v0, 3 +locret_CODE_7F034FEC: +/* 069B1C 7F034FEC 03E00008 */ jr $ra +/* 069B20 7F034FF0 24020001 */ li $v0, 1 +locret_CODE_7F034FF4: +/* 069B24 7F034FF4 03E00008 */ jr $ra +/* 069B28 7F034FF8 24020001 */ li $v0, 1 +locret_CODE_7F034FFC: +/* 069B2C 7F034FFC 03E00008 */ jr $ra +/* 069B30 7F035000 24020002 */ li $v0, 2 +locret_CODE_7F035004: +/* 069B34 7F035004 03E00008 */ jr $ra +/* 069B38 7F035008 24020004 */ li $v0, 4 +locret_CODE_7F03500C: +/* 069B3C 7F03500C 03E00008 */ jr $ra +/* 069B40 7F035010 24020004 */ li $v0, 4 +locret_CODE_7F035014: +/* 069B44 7F035014 03E00008 */ jr $ra +/* 069B48 7F035018 2402000C */ li $v0, 12 +locret_CODE_7F03501C: +/* 069B4C 7F03501C 03E00008 */ jr $ra +/* 069B50 7F035020 2402000B */ li $v0, 11 +locret_CODE_7F035024: +/* 069B54 7F035024 03E00008 */ jr $ra +/* 069B58 7F035028 24020009 */ li $v0, 9 +locret_CODE_7F03502C: +/* 069B5C 7F03502C 03E00008 */ jr $ra +/* 069B60 7F035030 24020008 */ li $v0, 8 +locret_CODE_7F035034: +/* 069B64 7F035034 03E00008 */ jr $ra +/* 069B68 7F035038 24020005 */ li $v0, 5 +locret_CODE_7F03503C: +/* 069B6C 7F03503C 03E00008 */ jr $ra +/* 069B70 7F035040 24020003 */ li $v0, 3 +locret_CODE_7F035044: +/* 069B74 7F035044 03E00008 */ jr $ra +/* 069B78 7F035048 24020003 */ li $v0, 3 +locret_CODE_7F03504C: +/* 069B7C 7F03504C 03E00008 */ jr $ra +/* 069B80 7F035050 24020004 */ li $v0, 4 +locret_CODE_7F035054: +/* 069B84 7F035054 03E00008 */ jr $ra +/* 069B88 7F035058 24020005 */ li $v0, 5 +locret_CODE_7F03505C: +/* 069B8C 7F03505C 03E00008 */ jr $ra +/* 069B90 7F035060 24020006 */ li $v0, 6 +locret_CODE_7F035064: +/* 069B94 7F035064 03E00008 */ jr $ra +/* 069B98 7F035068 24020006 */ li $v0, 6 +locret_CODE_7F03506C: +/* 069B9C 7F03506C 03E00008 */ jr $ra +/* 069BA0 7F035070 24020006 */ li $v0, 6 +locret_CODE_7F035074: +/* 069BA4 7F035074 03E00008 */ jr $ra +/* 069BA8 7F035078 24020002 */ li $v0, 2 +locret_CODE_7F03507C: +/* 069BAC 7F03507C 03E00008 */ jr $ra +/* 069BB0 7F035080 24020005 */ li $v0, 5 +locret_CODE_7F035084: +/* 069BB4 7F035084 03E00008 */ jr $ra +/* 069BB8 7F035088 24020002 */ li $v0, 2 +locret_CODE_7F03508C: +/* 069BBC 7F03508C 03E00008 */ jr $ra +/* 069BC0 7F035090 24020005 */ li $v0, 5 +locret_CODE_7F035094: +/* 069BC4 7F035094 03E00008 */ jr $ra +/* 069BC8 7F035098 24020005 */ li $v0, 5 +locret_CODE_7F03509C: +/* 069BCC 7F03509C 03E00008 */ jr $ra +/* 069BD0 7F0350A0 24020002 */ li $v0, 2 +locret_CODE_7F0350A4: +/* 069BD4 7F0350A4 03E00008 */ jr $ra +/* 069BD8 7F0350A8 24020002 */ li $v0, 2 +locret_CODE_7F0350AC: +/* 069BDC 7F0350AC 03E00008 */ jr $ra +/* 069BE0 7F0350B0 24020004 */ li $v0, 4 +locret_CODE_7F0350B4: +/* 069BE4 7F0350B4 03E00008 */ jr $ra +/* 069BE8 7F0350B8 24020002 */ li $v0, 2 +locret_CODE_7F0350BC: +/* 069BEC 7F0350BC 03E00008 */ jr $ra +/* 069BF0 7F0350C0 24020001 */ li $v0, 1 +locret_CODE_7F0350C4: +/* 069BF4 7F0350C4 03E00008 */ jr $ra +/* 069BF8 7F0350C8 24020001 */ li $v0, 1 +locret_CODE_7F0350CC: +/* 069BFC 7F0350CC 03E00008 */ jr $ra +/* 069C00 7F0350D0 24020003 */ li $v0, 3 +locret_CODE_7F0350D4: +/* 069C04 7F0350D4 03E00008 */ jr $ra +/* 069C08 7F0350D8 24020006 */ li $v0, 6 +locret_CODE_7F0350DC: +/* 069C0C 7F0350DC 03E00008 */ jr $ra +/* 069C10 7F0350E0 24020004 */ li $v0, 4 +locret_CODE_7F0350E4: +/* 069C14 7F0350E4 03E00008 */ jr $ra +/* 069C18 7F0350E8 24020002 */ li $v0, 2 +locret_CODE_7F0350EC: +/* 069C1C 7F0350EC 03E00008 */ jr $ra +/* 069C20 7F0350F0 24020001 */ li $v0, 1 +locret_CODE_7F0350F4: +/* 069C24 7F0350F4 03E00008 */ jr $ra +/* 069C28 7F0350F8 24020005 */ li $v0, 5 +locret_CODE_7F0350FC: +/* 069C2C 7F0350FC 03E00008 */ jr $ra +/* 069C30 7F035100 24020001 */ li $v0, 1 +locret_CODE_7F035104: +/* 069C34 7F035104 03E00008 */ jr $ra +/* 069C38 7F035108 24020001 */ li $v0, 1 +locret_CODE_7F03510C: +/* 069C3C 7F03510C 03E00008 */ jr $ra +/* 069C40 7F035110 24020002 */ li $v0, 2 +locret_CODE_7F035114: +/* 069C44 7F035114 03E00008 */ jr $ra +/* 069C48 7F035118 24020001 */ li $v0, 1 +locret_CODE_7F03511C: +/* 069C4C 7F03511C 03E00008 */ jr $ra +/* 069C50 7F035120 24020001 */ li $v0, 1 +locret_CODE_7F035124: +/* 069C54 7F035124 03E00008 */ jr $ra +/* 069C58 7F035128 24020002 */ li $v0, 2 +locret_CODE_7F03512C: +/* 069C5C 7F03512C 03E00008 */ jr $ra +/* 069C60 7F035130 24020003 */ li $v0, 3 +locret_CODE_7F035134: +/* 069C64 7F035134 03E00008 */ jr $ra +/* 069C68 7F035138 24020003 */ li $v0, 3 +locret_CODE_7F03513C: +/* 069C6C 7F03513C 03E00008 */ jr $ra +/* 069C70 7F035140 24020004 */ li $v0, 4 +locret_CODE_7F035144: +/* 069C74 7F035144 03E00008 */ jr $ra +/* 069C78 7F035148 24020002 */ li $v0, 2 +locret_CODE_7F03514C: +/* 069C7C 7F03514C 03E00008 */ jr $ra +/* 069C80 7F035150 24020002 */ li $v0, 2 +locret_CODE_7F035154: +/* 069C84 7F035154 03E00008 */ jr $ra +/* 069C88 7F035158 24020003 */ li $v0, 3 +locret_CODE_7F03515C: +/* 069C8C 7F03515C 03E00008 */ jr $ra +/* 069C90 7F035160 24020005 */ li $v0, 5 +locret_CODE_7F035164: +/* 069C94 7F035164 03E00008 */ jr $ra +/* 069C98 7F035168 24020001 */ li $v0, 1 +locret_CODE_7F03516C: +/* 069C9C 7F03516C 03E00008 */ jr $ra +/* 069CA0 7F035170 24020001 */ li $v0, 1 +locret_CODE_7F035174: +/* 069CA4 7F035174 03E00008 */ jr $ra +/* 069CA8 7F035178 24020002 */ li $v0, 2 +locret_CODE_7F03517C: +/* 069CAC 7F03517C 03E00008 */ jr $ra +/* 069CB0 7F035180 24020001 */ li $v0, 1 +locret_CODE_7F035184: +/* 069CB4 7F035184 03E00008 */ jr $ra +/* 069CB8 7F035188 24020001 */ li $v0, 1 +locret_CODE_7F03518C: +/* 069CBC 7F03518C 03E00008 */ jr $ra +/* 069CC0 7F035190 2402000D */ li $v0, 13 +locret_CODE_7F035194: +/* 069CC4 7F035194 03E00008 */ jr $ra +/* 069CC8 7F035198 24020001 */ li $v0, 1 +locret_CODE_7F03519C: +/* 069CCC 7F03519C 03E00008 */ jr $ra +/* 069CD0 7F0351A0 24020002 */ li $v0, 2 +locret_CODE_7F0351A4: +/* 069CD4 7F0351A4 03E00008 */ jr $ra +/* 069CD8 7F0351A8 24020002 */ li $v0, 2 +locret_CODE_7F0351AC: +/* 069CDC 7F0351AC 03E00008 */ jr $ra +/* 069CE0 7F0351B0 24020003 */ li $v0, 3 +locret_CODE_7F0351B4: +/* 069CE4 7F0351B4 03E00008 */ jr $ra +/* 069CE8 7F0351B8 24020002 */ li $v0, 2 +locret_CODE_7F0351BC: +/* 069CEC 7F0351BC 03E00008 */ jr $ra +/* 069CF0 7F0351C0 24020004 */ li $v0, 4 +locret_CODE_7F0351C4: +/* 069CF4 7F0351C4 03E00008 */ jr $ra +/* 069CF8 7F0351C8 24020002 */ li $v0, 2 +locret_CODE_7F0351CC: +/* 069CFC 7F0351CC 03E00008 */ jr $ra +/* 069D00 7F0351D0 24020001 */ li $v0, 1 +locret_CODE_7F0351D4: +/* 069D04 7F0351D4 03E00008 */ jr $ra +/* 069D08 7F0351D8 24020003 */ li $v0, 3 +locret_CODE_7F0351DC: +/* 069D0C 7F0351DC 03E00008 */ jr $ra +/* 069D10 7F0351E0 24020003 */ li $v0, 3 +locret_CODE_7F0351E4: +/* 069D14 7F0351E4 03E00008 */ jr $ra +/* 069D18 7F0351E8 24020001 */ li $v0, 1 +locret_CODE_7F0351EC: +/* 069D1C 7F0351EC 03E00008 */ jr $ra +/* 069D20 7F0351F0 24020001 */ li $v0, 1 +locret_CODE_7F0351F4: +/* 069D24 7F0351F4 03E00008 */ jr $ra +/* 069D28 7F0351F8 24020001 */ li $v0, 1 +actionFC_length: +/* 069D2C 7F0351FC 03E00008 */ jr $ra +/* 069D30 7F035200 24020002 */ li $v0, 2 + +actionAD_length: +/* 069D34 7F035204 904F0001 */ lbu $t7, 1($v0) +/* 069D38 7F035208 24A30001 */ addiu $v1, $a1, 1 +/* 069D3C 7F03520C 00831021 */ addu $v0, $a0, $v1 +/* 069D40 7F035210 51E00007 */ beql $t7, $zero, .L7F035230 +/* 069D44 7F035214 00651023 */ subu $v0, $v1, $a1 +/* 069D48 7F035218 90580001 */ lbu $t8, 1($v0) +.L7F03521C: +/* 069D4C 7F03521C 24630001 */ addiu $v1, $v1, 1 +/* 069D50 7F035220 24420001 */ addiu $v0, $v0, 1 +/* 069D54 7F035224 5700FFFD */ bnezl $t8, .L7F03521C +/* 069D58 7F035228 90580001 */ lbu $t8, 1($v0) +/* 069D5C 7F03522C 00651023 */ subu $v0, $v1, $a1 +.L7F035230: +/* 069D60 7F035230 03E00008 */ jr $ra +/* 069D64 7F035234 24420001 */ addiu $v0, $v0, 1 + +invalid_type: +ActionLengthSwitchElse: +/* 069D68 7F035238 24020001 */ li $v0, 1 +/* 069D6C 7F03523C 03E00008 */ jr $ra +/* 069D70 7F035240 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F035244(void) +{ + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F034F9C +.word locret_CODE_7F034FA4 +.word locret_CODE_7F034FAC +.word locret_CODE_7F034FB4 +.word locret_CODE_7F034FBC +.word locret_CODE_7F034FC4 +.word locret_CODE_7F034FCC +.word locret_CODE_7F034FD4 +.word locret_CODE_7F034FDC +.word locret_CODE_7F034FE4 +.word locret_CODE_7F034FEC +.word locret_CODE_7F034FF4 +.word locret_CODE_7F034FFC +.word locret_CODE_7F035004 + +.text +glabel sub_GAME_7F035244 +/* 069D74 7F035244 3C088007 */ lui $t0, %hi(ptr_setup_path_tbl) +/* 069D78 7F035248 25085D00 */ addiu $t0, %lo(ptr_setup_path_tbl) # addiu $t0, $t0, 0x5d00 +/* 069D7C 7F03524C 8D020014 */ lw $v0, 0x14($t0) #v0 = ptr_setup_actions +/* 069D80 7F035250 00A03825 */ move $a3, $a1 +/* 069D84 7F035254 3C198003 */ lui $t9, %hi(D_8003744C) +/* 069D88 7F035258 10400013 */ beqz $v0, .L7F0352A8 +/* 069D8C 7F03525C 00000000 */ nop +/* 069D90 7F035260 8C4E0000 */ lw $t6, ($v0) +/* 069D94 7F035264 00001825 */ move $v1, $zero +/* 069D98 7F035268 00402825 */ move $a1, $v0 +/* 069D9C 7F03526C 11C0000E */ beqz $t6, .L7F0352A8 +/* 069DA0 7F035270 00000000 */ nop +/* 069DA4 7F035274 8C460000 */ lw $a2, ($v0) +.L7F035278: +/* 069DA8 7F035278 54860007 */ bnel $a0, $a2, .L7F035298 +/* 069DAC 7F03527C 8CA60008 */ lw $a2, 8($a1) +/* 069DB0 7F035280 ACE00000 */ sw $zero, ($a3) +/* 069DB4 7F035284 8D0F0014 */ lw $t7, 0x14($t0) +/* 069DB8 7F035288 01E3C021 */ addu $t8, $t7, $v1 +/* 069DBC 7F03528C 03E00008 */ jr $ra +/* 069DC0 7F035290 8F020004 */ lw $v0, 4($t8) + +/* 069DC4 7F035294 8CA60008 */ lw $a2, 8($a1) +.L7F035298: +/* 069DC8 7F035298 24630008 */ addiu $v1, $v1, 8 +/* 069DCC 7F03529C 24A50008 */ addiu $a1, $a1, 8 +/* 069DD0 7F0352A0 14C0FFF5 */ bnez $a2, .L7F035278 +/* 069DD4 7F0352A4 00000000 */ nop +.L7F0352A8: +/* 069DD8 7F0352A8 8F39744C */ lw $t9, %lo(D_8003744C)($t9) +/* 069DDC 7F0352AC 3C098003 */ lui $t1, %hi(D_8003744C) +/* 069DE0 7F0352B0 2523744C */ addiu $v1, $t1, %lo(D_8003744C) +/* 069DE4 7F0352B4 1320000B */ beqz $t9, .L7F0352E4 +/* 069DE8 7F0352B8 240A0001 */ li $t2, 1 +/* 069DEC 7F0352BC 8C620000 */ lw $v0, ($v1) +.L7F0352C0: +/* 069DF0 7F0352C0 54820005 */ bnel $a0, $v0, .L7F0352D8 +/* 069DF4 7F0352C4 8C620008 */ lw $v0, 8($v1) +/* 069DF8 7F0352C8 ACEA0000 */ sw $t2, ($a3) +/* 069DFC 7F0352CC 03E00008 */ jr $ra +/* 069E00 7F0352D0 8C620004 */ lw $v0, 4($v1) + +/* 069E04 7F0352D4 8C620008 */ lw $v0, 8($v1) +.L7F0352D8: +/* 069E08 7F0352D8 24630008 */ addiu $v1, $v1, 8 +/* 069E0C 7F0352DC 1440FFF8 */ bnez $v0, .L7F0352C0 +/* 069E10 7F0352E0 00000000 */ nop +.L7F0352E4: +/* 069E14 7F0352E4 2402FFFF */ li $v0, -1 +/* 069E18 7F0352E8 03E00008 */ jr $ra +/* 069E1C 7F0352EC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +/* MIPS-2-C + +s32 true_if_sucessfully_performing_action(s32 arg0, s32 arg1, s32 arg2) +{ + ? sp3C; + void *temp_v0; + s32 phi_s0; + + // Node 0 + phi_s0 = arg1; +loop_1: + // Node 1 + temp_v0 = arg0 + phi_s0; + if (2 == temp_v0->unk0) + { + // Node 2 + if ((arg2 & 0xff) == temp_v0->unk1) + { + // Node 3 + return phi_s0; + } +block_6: + // Node 6 + phi_s0 = phi_s0 + get_length_of_action_block(arg0, phi_s0); + goto loop_1; + } + // Node 4 + if (4 != temp_v0->unk0) + { + goto block_6; + } + // Node 5 + sub_GAME_7F035244(arg0, &sp3C); + return 0; +}*/ +bool true_if_sucessfully_performing_action(s32 arg0, s32 arg1, s32 arg2) +{ + /* Closest ASM I could get (though not using right tools since still cant get to work... ill try again this weekend)*/ + u8 *v0; //struct + int s0 = arg1; + int s1 = arg0; + + do + { + v0 = arg0 + s0; + if (v0->unk0 == label_ID) + { + if ((arg2 & 255) == v0->unk1) //strip lower byte? + { + return arg1; //exit loop and return + } + + } + if (v0->unk0 == ai_list_end_ID) + { + break; + } + s0 += get_length_of_action_block(arg0, arg1); + } + while (v0->unk0 != 4); + + sub_GAME_7F035244(s1, &v0 + 0x3c); + return 0; +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F03500C +.word locret_CODE_7F035014 +.word locret_CODE_7F03501C +.word locret_CODE_7F035024 +.word locret_CODE_7F03502C +.word locret_CODE_7F035034 +.word locret_CODE_7F03503C +.word locret_CODE_7F035044 +.word locret_CODE_7F03504C +.word locret_CODE_7F035054 +.word locret_CODE_7F03505C +.word locret_CODE_7F035064 +.word locret_CODE_7F03506C + +.text +glabel true_if_sucessfully_performing_action +/* 069E20 7F0352F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 069E24 7F0352F4 AFB40028 */ sw $s4, 0x28($sp) +/* 069E28 7F0352F8 AFB30024 */ sw $s3, 0x24($sp) +/* 069E2C 7F0352FC AFB20020 */ sw $s2, 0x20($sp) +/* 069E30 7F035300 AFB1001C */ sw $s1, 0x1c($sp) +/* 069E34 7F035304 AFB00018 */ sw $s0, 0x18($sp) +/* 069E38 7F035308 00A08025 */ move $s0, $a1 # Args 1,0 to save 0,1 +/* 069E3C 7F03530C 00808825 */ move $s1, $a0 +/* 069E40 7F035310 30D200FF */ andi $s2, $a2, 0xff # save 2 = Arg 2 AND 255 - convert to lower byte? +/* 069E44 7F035314 AFBF002C */ sw $ra, 0x2c($sp) +/* 069E48 7F035318 AFA60050 */ sw $a2, 0x50($sp) # save a bunch of stuff +/* 069E4C 7F03531C 24130002 */ li $s3, 2 +/* 069E50 7F035320 24140004 */ li $s4, 4 +.L7F035324: /* Begining*/ +/* 069E54 7F035324 02301021 */ addu $v0, $s1, $s0 # *v0 = a0 + a1 # command+commandLength? +/* 069E58 7F035328 90430000 */ lbu $v1, ($v0) # v1 = Byte(v0) +/* 069E5C 7F03532C 02202025 */ move $a0, $s1 +/* 069E60 7F035330 16630006 */ bne $s3, $v1, .L7F03534C # goto not2 if not v1 = label_ID +/* 069E64 7F035334 00000000 */ nop +/* 069E68 7F035338 904E0001 */ lbu $t6, 1($v0) # t6 = byte(v0[4]) +/* 069E6C 7F03533C 164E000A */ bne $s2, $t6, .L7F035368 # goto AICMDlength if not s2 = t6 +/* 069E70 7F035340 00000000 */ nop +/* 069E74 7F035344 1000000C */ b .L7F035378 # save 0 = v0 goto return +/* 069E78 7F035348 02001025 */ move $v0, $s0 +.L7F03534C: /* Not2*/ +/* 069E7C 7F03534C 16830006 */ bne $s4, $v1, .L7F035368 # goto AICMDlength if not v1 = ai_list_end_ID +/* 069E80 7F035350 00000000 */ nop +/* 069E84 7F035354 02202025 */ move $a0, $s1 +/* 069E88 7F035358 0FC0D491 */ jal sub_GAME_7F035244 +/* 069E8C 7F03535C 27A5003C */ addiu $a1, $sp, 0x3c +/* 069E90 7F035360 10000005 */ b .L7F035378 # goto return +/* 069E94 7F035364 00001025 */ move $v0, $zero +.L7F035368: /* AICMDlength*/ +/* 069E98 7F035368 0FC0D27F */ jal get_length_of_action_block +/* 069E9C 7F03536C 02002825 */ move $a1, $s0 +/* 069EA0 7F035370 1000FFEC */ b .L7F035324 # goto begining +/* 069EA4 7F035374 02028021 */ addu $s0, $s0, $v0 +.L7F035378: /* return*/ +/* 069EA8 7F035378 8FBF002C */ lw $ra, 0x2c($sp) +/* 069EAC 7F03537C 8FB00018 */ lw $s0, 0x18($sp) +/* 069EB0 7F035380 8FB1001C */ lw $s1, 0x1c($sp) +/* 069EB4 7F035384 8FB20020 */ lw $s2, 0x20($sp) +/* 069EB8 7F035388 8FB30024 */ lw $s3, 0x24($sp) +/* 069EBC 7F03538C 8FB40028 */ lw $s4, 0x28($sp) +/* 069EC0 7F035390 03E00008 */ jr $ra +/* 069EC4 7F035394 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +//LoadNext_PrevActionBlock +void LoadNext_PrevActionBlock(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035074 +.word locret_CODE_7F03507C +.word locret_CODE_7F035084 +.word locret_CODE_7F03508C +.word locret_CODE_7F035094 +.word locret_CODE_7F03509C +.word locret_CODE_7F0350A4 +.word locret_CODE_7F0350AC +.word locret_CODE_7F0350B4 +.word locret_CODE_7F0350BC +.word locret_CODE_7F0350C4 +.word locret_CODE_7F0350CC + +.text +glabel LoadNext_PrevActionBlock +/* 069EC8 7F035398 28810401 */ slti $at, $a0, 0x401 +/* 069ECC 7F03539C 14200014 */ bnez $at, .L7F0353F0 +/* 069ED0 7F0353A0 3C198003 */ lui $t9, %hi(D_8003744C) +/* 069ED4 7F0353A4 3C028007 */ lui $v0, %hi(ptr_setup_actions) +/* 069ED8 7F0353A8 8C425D14 */ lw $v0, %lo(ptr_setup_actions)($v0) +/* 069EDC 7F0353AC 5040001F */ beql $v0, $zero, .L7F03542C #if <= 0 return +/* 069EE0 7F0353B0 00001025 */ move $v0, $zero +/* 069EE4 7F0353B4 8C4E0000 */ lw $t6, ($v0) +/* 069EE8 7F0353B8 00401825 */ move $v1, $v0 +/* 069EEC 7F0353BC 51C0001B */ beql $t6, $zero, .L7F03542C +/* 069EF0 7F0353C0 00001025 */ move $v0, $zero +/* 069EF4 7F0353C4 8C6F0004 */ lw $t7, 4($v1) +.L7F0353C8: +/* 069EF8 7F0353C8 548F0004 */ bnel $a0, $t7, .L7F0353DC +/* 069EFC 7F0353CC 8C780008 */ lw $t8, 8($v1) +/* 069F00 7F0353D0 03E00008 */ jr $ra +/* 069F04 7F0353D4 8C620000 */ lw $v0, ($v1) + +/* 069F08 7F0353D8 8C780008 */ lw $t8, 8($v1) +.L7F0353DC: +/* 069F0C 7F0353DC 24630008 */ addiu $v1, $v1, 8 +/* 069F10 7F0353E0 5700FFF9 */ bnezl $t8, .L7F0353C8 +/* 069F14 7F0353E4 8C6F0004 */ lw $t7, 4($v1) +/* 069F18 7F0353E8 10000010 */ b .L7F03542C +/* 069F1C 7F0353EC 00001025 */ move $v0, $zero +.L7F0353F0: +/* 069F20 7F0353F0 8F39744C */ lw $t9, %lo(D_8003744C)($t9) +/* 069F24 7F0353F4 3C038003 */ lui $v1, %hi(D_8003744C) +/* 069F28 7F0353F8 2463744C */ addiu $v1, %lo(D_8003744C) # addiu $v1, $v1, 0x744c +/* 069F2C 7F0353FC 5320000B */ beql $t9, $zero, .L7F03542C +/* 069F30 7F035400 00001025 */ move $v0, $zero +/* 069F34 7F035404 8C680004 */ lw $t0, 4($v1) +.L7F035408: +/* 069F38 7F035408 54880004 */ bnel $a0, $t0, .L7F03541C +/* 069F3C 7F03540C 8C690008 */ lw $t1, 8($v1) +/* 069F40 7F035410 03E00008 */ jr $ra +/* 069F44 7F035414 8C620000 */ lw $v0, ($v1) + +/* 069F48 7F035418 8C690008 */ lw $t1, 8($v1) +.L7F03541C: +/* 069F4C 7F03541C 24630008 */ addiu $v1, $v1, 8 +/* 069F50 7F035420 5520FFF9 */ bnezl $t1, .L7F035408 +/* 069F54 7F035424 8C680004 */ lw $t0, 4($v1) +/* 069F58 7F035428 00001025 */ move $v0, $zero +.L7F03542C: +/* 069F5C 7F03542C 03E00008 */ jr $ra +/* 069F60 7F035430 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_ptr_path_for_pathnum(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F0350D4 +.word locret_CODE_7F0350DC +.word locret_CODE_7F0350E4 +.word locret_CODE_7F0350EC +.word locret_CODE_7F0350F4 +.word locret_CODE_7F0350FC + +.text +glabel get_ptr_path_for_pathnum +/* 069F64 7F035434 3C058007 */ lui $a1, %hi(ptr_setup_path_sets) +/* 069F68 7F035438 8CA55D10 */ lw $a1, %lo(ptr_setup_path_sets)($a1) +/* 069F6C 7F03543C 00001825 */ move $v1, $zero +/* 069F70 7F035440 8CAE0000 */ lw $t6, ($a1) +/* 069F74 7F035444 00A01025 */ move $v0, $a1 +/* 069F78 7F035448 51C0000C */ beql $t6, $zero, .L7F03547C +/* 069F7C 7F03544C 00001025 */ move $v0, $zero +/* 069F80 7F035450 904F0004 */ lbu $t7, 4($v0) +.L7F035454: +/* 069F84 7F035454 148F0003 */ bne $a0, $t7, .L7F035464 +/* 069F88 7F035458 0003C0C0 */ sll $t8, $v1, 3 +/* 069F8C 7F03545C 03E00008 */ jr $ra +/* 069F90 7F035460 03051021 */ addu $v0, $t8, $a1 + +.L7F035464: +/* 069F94 7F035464 8C590008 */ lw $t9, 8($v0) +/* 069F98 7F035468 24630001 */ addiu $v1, $v1, 1 +/* 069F9C 7F03546C 24420008 */ addiu $v0, $v0, 8 +/* 069FA0 7F035470 5720FFF8 */ bnezl $t9, .L7F035454 +/* 069FA4 7F035474 904F0004 */ lbu $t7, 4($v0) +/* 069FA8 7F035478 00001025 */ move $v0, $zero +.L7F03547C: +/* 069FAC 7F03547C 03E00008 */ jr $ra +/* 069FB0 7F035480 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void parse_handle_actionblocks(*s1, 1, 0) // s1 = AIListp, 1 = true? (a1 is always set to 1) a2 set to 0 within block +{ + s7 = 0; + if (a1 != ai_sleep) + { + if (a1 == 1) + { + if (s1[3] > 39) + { + if (s1[3] = 40) + { + returnval1 = s1; + } + } + a2 = s1; + } + } + + if (s7 == 0) + { + if (a2 == 0) + { + if (v1 != 0) + { + s2 = v1[336]; + s6 = v1[320]; + } + } + else + { + s2 = a2[336]; + s6 = a2[320]; + } + } + else + { + s2 = s7[432]; + s6 = s7[416]; + } + + if (s6 != 0) + { + //10 * something + //60 * something + + do + { + if (cmd < AI_CMDS_TOTAL) + { + switch Byte(cmd) + case 0: + NextStatement = +2; + true_if_sucessfully_performing_action(); + break; + //... + } + else + { + //cmd << 2; + cmdpos += get_length_of_action_block(cmd) //GetAICmdLen(Cmd) + } + } + while (action != 4) + } +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035104 +.word locret_CODE_7F03510C +.word locret_CODE_7F035114 +.word locret_CODE_7F03511C +.word locret_CODE_7F035124 +.word locret_CODE_7F03512C +.word locret_CODE_7F035134 +.word locret_CODE_7F03513C +.word locret_CODE_7F035144 +.word locret_CODE_7F03514C +.word locret_CODE_7F035154 +.word locret_CODE_7F03515C +.word locret_CODE_7F034ADC +.word locret_CODE_7F034AD4 +.word locret_CODE_7F035164 +.word locret_CODE_7F03516C +.word locret_CODE_7F035174 +.word locret_CODE_7F03517C +.word locret_CODE_7F035184 +.word locret_CODE_7F03518C +.word locret_CODE_7F035194 +.word locret_CODE_7F03519C +.word locret_CODE_7F0351A4 +.word locret_CODE_7F0351AC +.word locret_CODE_7F0351B4 +.word locret_CODE_7F0351BC +.word locret_CODE_7F0351C4 +.word locret_CODE_7F0351CC +.word locret_CODE_7F0351D4 +.word locret_CODE_7F0351DC +.word locret_CODE_7F0351E4 +.word locret_CODE_7F0351EC +.word locret_CODE_7F0351F4 +.word actionFC_length +.late_rodata +glabel D_800524F4 +.word 0x40c90fdb /*6.2831855*/ +/*D:800524F8*/ +glabel jpt_800524F8 +.word Action00_GoToLabel +.word Action01_GoToLabelFromTop +.word Action02_Label +.word action03_Leave_The_Routine_When_Return_Continue_From_Spot_1 +.word Action04_End_1 +.word action05_Jump_To_Function_4 +.word action06_Set_Return_Subroutine_for_0007_Command_3 +.word action07_Jump_to_Return_Subroutine_1 +.word action08_Reset_Animation_1 +.word action09_Guard_Kneels_1 +.word action0A_Animation_9 +.word action0B_If_Guard_WastingTime_SwatFlies_RVL_2 +.word action0C_Guard_Gestures_1 +.word action0D_Guard_Looks_Around_When_Shot_At_1 +.word action0E_Guard_Steps_Sideways_RVL_2 +.word action0F_Guard_Hops_Sideways_RVL_2 +.word action10_Guard_Runs_Sideways_RVL_2 +.word action11_Guard_Walks_Firing_RVL_2 +.word action12_Guard_Runs_Firing_RVL_2 +.word action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2 +.word action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6 +.word action17_Guard_Constantly_Angles_To_Face_RVL_6 +.word action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4 +.word action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4 +.word action1A_Guard_Throws_Grenade_RVL_2 +.word action1B_Drop_Weapon_Inventory_num_RVL_5 +.word action1C_Guard_Jogs_To_Preset_3 +.word action1D_Guard_Jogs_To_Predefined_Preset_2328_1 +.word action1E_Guard_Walks_To_Preset_3 +.word action1F_Guard_Runs__To_Preset_3 +.word action20_Activate_Path_2 +.word action21_Guard_Surrenders_1 +.word action22_Guard_Set_To_Move_Fades_And_Disappear_1 +.word action23_Eliminate_Guard_ID_2 +.word action24_Activate_Object_At_Preset_RVL_If_Successful_4 +.word action25_Sound_Alarm_1 +.word action26_Turn_Off_Alarm_1 +.word action27_Return_False_Invalid_Type_2 +.word action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2B_Return_False_Invalid_Type_2 +.word action2C_Jog_To_Character_Position_RVL_On_Arrival_3 +.word action2D_Walk_To_Character_Position_RVL_On_Arrival_3 +.word action2E_Run_To_Character_Position_RVL_On_Arrival_3 +.word action2F_When_Guard_Stops_Moving_RVL_2 +.word action30_Detect_If_Guard_Killed_RVL_If_So_3 +.word action31_If_GuardID_Finish_DeathAnimation_RVL_3 +.word action32_If_Bond_In_Sight_RVL_2 +.word action33_Seed_Random_Byte_1 +.word action34_If_Seeded_Byte_LTV_Go_Into_RVL_3 +.word action35_If_Seeded_Byte_GTV_Go_Into_RVL_3 +.word action36_If_Alarm_Activated_RVL_Plus_Stack_2 +.word action37_If_Alarm_Activated_RVL_2 +.word action38_If_Toxic_Gas_Released_RVL_2 +.word action39_If_Guard_Heard_Gunfire_RVL_2 +.word action3A_If_Bond_Shoots_Another_Guard_RVL_2 +.word action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2 +.word action3C_If_Guard_In_Firing_Range_RVL_2 +.word action3D___Unused___Unknown___2 +.word action3E_If_Shot_Current_Guard_RVL_2 +.word action3F_If_Heard_Bond_RVL_2 +.word action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3 +.word action41_If_Guard_Has_Been_On_Screen_RVL_2 +.word action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2 +.word action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2 +.word action44_If_Room_Containing_Preset_Is_Loaded_RVL_4 +.word action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2 +.word action46_If_Fired_A_Shot_RVL_2 +.word action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3 +.word action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3 +.word action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3 +.word action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3 +.word action4B_RVL_If_In_Proximity_Of_Bond_4 +.word action4C_RVL_If_Not_In_Proximity_Of_Bond_4 +.word action4D_When_Guard_In_Proximity_Of_Preset_RVL_7 +.word action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7 +.word action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5 +.word action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5 +.word action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4 +.word action52_GoIntoRVLIf_In_Units_Of_Preset_6 +.word action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6 +.word action54_GoIntoRVLIf_Guard_Is_At_Preset_5 +.word action55_GoIntoRVLIf_Entered_Room_with_Preset_4 +.word action56_GoIntoRVLIf_16_Object_num_Collected_3 +.word action57_GoIntoRVLIf_Specified_Weapon_Deposited_3 +.word action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4 +.word action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3 +.word action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3 +.word action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3 +.word action5C_GoIntoRVLIf_16_Object_num_Activated_3 +.word action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3 +.word action5E_16_Object_Activates_2 +.word action5F_16_Object_Explodes_2 +.word action60_Guard_Drops_16_Object_num_2 +.word action61_Kill_Guard_num_2 +.word action62_Guard_num_Throws_Equipment_2 +.word action63_Guard_Gives_Bond_16_Object_num_2 +.word action64_Type_16_Object_Equipped_On_Guard_3 +.word action65_Object_Moved_To_Preset_4 +.word action66_Open_Door_2 +.word action67_Close_Door_2 +.word action68_Check_Door_Status_RVL_If_Met_4 +.word action69_If_16_Object_Is_Valid_Door_RVL_3 +.word action6A_Set_Bits_To_Lock_On_Type_16_Door_3 +.word action6B_Unset_Bits_To_Lock_On_Type_16_Door_3 +.word action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4 +.word action6D_If_Objective_num_Complete_RVL_3 +.word action6E_If_Guard_2328_Preset_RVL_3 +.word action6F_If_Guard_2328_Preset_Set_RVL_3 +.word action70_Go_Into_RVL_Difficulty_LTV_3 +.word action71_GoIntoRVLIf_Difficulty_GTV_3 +.word action72_Go_To_RVL_If_Time_LTV_4 +.word action73_Go_To_RVL_If_Time_GTV_4 +.word action74_Go_To_RVL_If_Power_On_Time_LTV_4 +.word action75_Go_To_RVL_If_Power_On_Time_GTV_4 +.word action76_Go_To_RVL_If_Stage_Number_LTV_3 +.word action77_Go_To_RVL_If_Stage_Number_GTV_3 +.word action78_Go_To_RVL_If_Guard_Shot_LTV_3 +.word action79_Go_To_RVL_If_Guard_Shot_GTV_3 +.word action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3 +.word action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3 +.word action7C_If_Guard_Health_Below_Value_RVL_4 +.word action7D_If_Guard_Health_Above_Value_RVL_4 +.word action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3 +.word action7F_If_Health_Below_Value_RVL_3 +.word action80_If_Health_Above_Value_RVL_3 +.word action81_Set_User_Byte_num1_2 +.word action82_Add_Value_To_User_Byte_num1_Max_To_FF_2 +.word action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2 +.word action84_If_Value_GreaterThan_User_Byte_num1_RVL_3 +.word action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2 +.word action86_Set_User_Byte_num2_2 +.word action87_Add_Value_To_User_Byte_num2_Max_To_FF_2 +.word action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2 +.word action89_If_Value_GreaterThan_User_Byte_num2_RVL_3 +.word action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2 +.word action8B_Set_Guard_Hearing_Distance_3 +.word action8C_Set_Guard_Visible_Distance_2 +.word action8D_Set_Guard_Grenade_Probability_2 +.word action8E_Set_Guard_ID_2 +.word action8F_Set_Guard_Health_3 +.word action90_Set_Guard_Armor_Amount_3 +.word action91_Set_Character_Reaction_Speed_2 +.word action92_Set_Character_Injury_Recovery_Speed_2 +.word action93_Set_Character_Accuracy_2 +.word action94_Mask_Guard_Type_With_Value_2 +.word action95_Unmask_Guard_Type_With_Value_2 +.word action96_If_Guard_Type_Value_Is_Set_RVL_3 +.word action97_Mask_Guard_Type_Flags_With_Value_3 +.word action98_Unmask_Guard_Type_Flags_With_Value_3 +.word action99_If_Guard_Type_Flags_Set_RVL_4 +.word action9A_Set_Objective_Bits_5 +.word action9B_Unset_Objective_Value_5 +.word action9C_Check_If_Objective_Value_Return_Loop_If_So_6 +.word action9D_Set_Guard_Bit_Tags_5 +.word action9E_Unset_Guard_Bit_Tags_5 +.word action9F_Check_Guard_Bits_If_Same_RVL_6 +.word actionA0_Set_Guard_ID_Bits_6 +.word actionA1_Unset_Guard_ID_Bits_6 +.word actionA2_Check_Guard_Bits_If_Same_RVL_7 +.word actionA3_Set_State_Bits_16_Type_Object_6 +.word actionA4_Unset_State_Bits_16_Type_Object_6 +.word actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7 +.word actionA6_Set_16_Object_States_More_6 +.word actionA7_Unset_16_Object_States_More_6 +.word actionA8_Check_16_Object_States_More_If_Same_RVL_7 +.word actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2 +.word actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3 +.word actionAB_Set_Current_Guards_2328_Value_To_Preset_3 +.word actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4 +.word actionAD_Debug_Comment_20 +.word actionAE_Reset_Cycle_Counter_And_Enable_It_1 +.word actionAF_Reset_Cycle_Counter_1 +.word actionB0_Disable_Cycle_Counter_1 +.word actionB1_Enable_Cycle_Counter_1 +.word actionB2_Check_Cycle_Counter_Enable_Status_2 +.word actionB3_If_Cycle_Counter_LTV_RVL_5 +.word actionB4_If_Cycle_Counter_GTV_RVL_5 +.word actionB5_Show_Timer_1 +.word actionB6_Hide_Timer_Silent_Countdown_1 +.word actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3 +.word actionB8_Stop_Timer_1 +.word actionB9_Start_Timer_1 +.word actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2 +.word actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4 +.word actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4 +.word actionBD_Spawn_Guard_C +.word actionBE_Respawn_Guard_with_ID_B +.word actionBF_Spawn_Weapon_9 +.word actionC0_Spawn_Hat_8 +.word actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5 +.word actionC2_Display_Text_Preset_Bottom_Screen_3 +.word actionC3_Display_Text_Preset_Top_Screen_3 +.word actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4 +.word actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5 +.word actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6 +.word actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6 +.word actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6 +.word actionC9_Shut_Off_Sound_In_Slot_Number_2 +.word actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5 +.word actionCB_Set_Object_Path_27_Type_Object_2 +.word actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5 +.word actionCD_Set_Speed_Aircraft_Rotor_5 +.word actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2 +.word actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2 +.word actionD0_Change_Animation_Type_Of_Type_16_Monitor_4 +.word actionD1_If_Bond_In_Tank_RVL_2 +.word actionD2_Exit_Level_1 +.word actionD3_Return_From_Camera_Scene_1 +.word actionD4_Camera_Looks_At_Bond_From_Preset_3 +.word actionD5_Go_To_Camera_Position_6 +.word actionD6_If_Less_Than_Elevation_RVL_4 +.word actionD7_Disable_Text_Variable_2 +.word actionD8_Enable_All_On_Screen_Displays_1 +.word actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5 +.word actionDA_Fade_Out_From_Cut_Scene_1 +.word actionDB_Fade_In_From_Black_Reset_DA_1 +.word actionDC_RVL_When_Fade_Complete_2 +.word actionDD_Remove_All_Guards_1 +.word actionDE_Bring_Removed_Guards_Back_1 +.word actionDF_Open_Type_16_Door_Used_Cut_Scenes_2 +.word actionE0_Guard_ID_Draws_Weapon_num_3 +.word actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3 +.word actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4 +.word actionE3_Draw_Weapon_From_Inventory_In_Game_2 +.word actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2 +.word actionE5_Set_Bonds_Speed_3 +.word actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5 +.word actionE7_If_Guard_Moving_And_Shooting_RVL_2 +.word actionE8_If_Guard_Is_Shooting_RVL_2 +.word actionE9_Instantly_Switch_Sky_To_Sky_2_1 +.word actionEA_Stop_Game_Time_1 +.word actionEB_If_Key_Pressed_RVL_2 +.word actionEC_Disable_Player_Pickups_1 +.word actionED_Hide_First_Person_Display_1 +.word actionEE_Cuba_Circular_Camera_Aim_D +.word actionEF_Trigger_Credits_1 +.word actionF0_RVL_If_Credits_Completed_2 +.word actionF1_If_All_Objectives_Complete_RVL_2 +.word actionF2_Check_Current_Folder_Bond_RVL_3 +.word actionF3_If_Player_Pickups_Disabled_RVL_2 +.word actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4 +.word actionF5_Turn_Off_Music_In_Slot_num_0_3_2 +.word actionF6_Trigger_Explosions_Around_Bond_1 +.word actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3 +.word actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3 +.word actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1 +.word actionFA_Guard_Fawns_On_Shoulder_1 +.word actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_ +.word actionFC_Launch_Shuttle_2 + +glabel D_800528EC +.word 0x3dcccccd /*0.1*/ +glabel D_800528F0 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F4 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F8 +.word 0x3dcccccd /*0.1*/ + +glabel jpt_800528FC +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C + +glabel D_80052974 +.word 0x3c888888 /*0.016666666*/ +glabel D_80052978 +.word 0x3e955555 /*0.29166666*/ +.word 0 + +.text +glabel parse_handle_actionblocks +/* 069FB4 7F035484 27BDF848 */ addiu $sp, $sp, -0x7b8 +/* 069FB8 7F035488 AFB7006C */ sw $s7, 0x6c($sp) +/* 069FBC 7F03548C AFB60068 */ sw $s6, 0x68($sp) #free s2 for CurrentActionByte ? +/* 069FC0 7F035490 24010003 */ li $at, 3 #ai_sleep +/* 069FC4 7F035494 AFBF0074 */ sw $ra, 0x74($sp) +/* 069FC8 7F035498 AFBE0070 */ sw $fp, 0x70($sp) +/* 069FCC 7F03549C AFB50064 */ sw $s5, 0x64($sp) +/* 069FD0 7F0354A0 AFB40060 */ sw $s4, 0x60($sp) +/* 069FD4 7F0354A4 AFB3005C */ sw $s3, 0x5c($sp) +/* 069FD8 7F0354A8 AFB20058 */ sw $s2, 0x58($sp) #free s2 for CurrentActionByteSize ? +/* 069FDC 7F0354AC AFB10054 */ sw $s1, 0x54($sp) +/* 069FE0 7F0354B0 AFB00050 */ sw $s0, 0x50($sp) +/* 069FE4 7F0354B4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 069FE8 7F0354B8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 069FEC 7F0354BC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 069FF0 7F0354C0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 069FF4 7F0354C4 0000B825 */ move $s7, $zero +/* 069FF8 7F0354C8 00003025 */ move $a2, $zero +/* 069FFC 7F0354CC 00001825 */ move $v1, $zero +/* 06A000 7F0354D0 14A10003 */ bne $a1, $at, .L7F0354E0 +/* 06A004 7F0354D4 0000B025 */ move $s6, $zero +/* 06A008 7F0354D8 1000000E */ b .L7F035514 +/* 06A00C 7F0354DC 0080B825 */ move $s7, $a0 +.L7F0354E0: +/* 06A010 7F0354E0 24010001 */ li $at, 1 +/* 06A014 7F0354E4 14A1000B */ bne $a1, $at, .L7F035514 +/* 06A018 7F0354E8 00000000 */ nop +/* 06A01C 7F0354EC 90820003 */ lbu $v0, 3($a0) +/* 06A020 7F0354F0 24010027 */ li $at, 39 +/* 06A024 7F0354F4 54410004 */ bnel $v0, $at, .L7F035508 +/* 06A028 7F0354F8 24010028 */ li $at, 40 +/* 06A02C 7F0354FC 10000005 */ b .L7F035514 +/* 06A030 7F035500 00803025 */ move $a2, $a0 +/* 06A034 7F035504 24010028 */ li $at, 40 +.L7F035508: +/* 06A038 7F035508 14410002 */ bne $v0, $at, .L7F035514 +/* 06A03C 7F03550C 00000000 */ nop +/* 06A040 7F035510 00801825 */ move $v1, $a0 +.L7F035514: +/* 06A044 7F035514 12E00005 */ beqz $s7, .L7F03552C +/* 06A048 7F035518 3C018005 */ lui $at, %hi(D_800524F4) +/* 06A04C 7F03551C 96F20108 */ lhu $s2, 0x108($s7) # Load Size of command +/* 06A050 7F035520 8EF60104 */ lw $s6, 0x104($s7) # load command +/* 06A054 7F035524 1000000C */ b .L7F035558 +/* 06A058 7F035528 AFB207A4 */ sw $s2, 0x7a4($sp) # save command size +.L7F03552C: +/* 06A05C 7F03552C 10C00005 */ beqz $a2, .L7F035544 +/* 06A060 7F035530 00000000 */ nop +/* 06A064 7F035534 94D20084 */ lhu $s2, 0x84($a2) +/* 06A068 7F035538 8CD60080 */ lw $s6, 0x80($a2) +/* 06A06C 7F03553C 10000006 */ b .L7F035558 +/* 06A070 7F035540 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035544: +/* 06A074 7F035544 10600004 */ beqz $v1, .L7F035558 +/* 06A078 7F035548 00000000 */ nop +/* 06A07C 7F03554C 94720084 */ lhu $s2, 0x84($v1) +/* 06A080 7F035550 8C760080 */ lw $s6, 0x80($v1) +/* 06A084 7F035554 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035558: +/* 06A088 7F035558 12C01329 */ beqz $s6, Action04_End_1 +/* 06A08C 7F03555C 8FB207A4 */ lw $s2, 0x7a4($sp) +/* 06A090 7F035560 C43A24F4 */ lwc1 $f26, %lo(D_800524F4)($at) +/* 06A094 7F035564 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 06A098 7F035568 4481C000 */ mtc1 $at, $f24 +/* 06A09C 7F03556C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 06A0A0 7F035570 3C1E8003 */ lui $fp, %hi(ptr_guard_data) +/* 06A0A4 7F035574 4481B000 */ mtc1 $at, $f22 +/* 06A0A8 7F035578 4480A000 */ mtc1 $zero, $f20 +/* 06A0AC 7F03557C 27DECC64 */ addiu $fp, %lo(ptr_guard_data) # addiu $fp, $fp, -0x339c +/* 06A0B0 7F035580 02D28821 */ addu $s1, $s6, $s2 +/* 06A0B4 7F035584 AFA307AC */ sw $v1, 0x7ac($sp) +/* 06A0B8 7F035588 AFA607B0 */ sw $a2, 0x7b0($sp) +GetByteS1_ParseCommandByte_SwitchCase: /*GetCommandByte(cmd)*/ +/* 06A0BC 7F03558C 922E0000 */ lbu $t6, ($s1) #t6 = byte(s1) +ParseCommandByte_SwitchCase: +/* 06A0C0 7F035590 02C02025 */ move $a0, $s6 +/* 06A0C4 7F035594 2DC100FD */ sltiu $at, $t6, 0xfd # if Cmd !< AI_CMDS_TOTAL then +/* 06A0C8 7F035598 10201314 */ beqz $at, GetCmdLength # Cmd<<2 goto GetCmdLength +/* 06A0CC 7F03559C 000E7080 */ sll $t6, $t6, 2 +/* 06A0D0 7F0355A0 3C018005 */ lui $at, %hi(jpt_800524F8) +/* 06A0D4 7F0355A4 002E0821 */ addu $at, $at, $t6 # else //get cmd +/* 06A0D8 7F0355A8 8C2E24F8 */ lw $t6, %lo(jpt_800524F8)($at) # switch t6(look up table for switch 0x800524f8) +/* 06A0DC 7F0355AC 01C00008 */ jr $t6 # return cmd +/* 06A0E0 7F0355B0 00000000 */ nop +Action00_GoToLabel: #case 0 +/* 06A0E4 7F0355B4 02C02025 */ move $a0, $s6 +/* 06A0E8 7F0355B8 02402825 */ move $a1, $s2 +/* 06A0EC 7F0355BC 0FC0D4BC */ jal true_if_sucessfully_performing_action #(command, commandsize, nextcommand[4]) +/* 06A0F0 7F0355C0 92260001 */ lbu $a2, 1($s1) +/* 06A0F4 7F0355C4 00409025 */ move $s2, $v0 +/* 06A0F8 7F0355C8 1000FFF0 */ b GetByteS1_ParseCommandByte_SwitchCase # GetCommandByte(currcmd + currcmdLength); +/* 06A0FC 7F0355CC 02C28821 */ addu $s1, $s6, $v0 +Action01_GoToLabelFromTop: #case 1 +/* 06A100 7F0355D0 02C02025 */ move $a0, $s6 +/* 06A104 7F0355D4 00002825 */ move $a1, $zero +/* 06A108 7F0355D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A10C 7F0355DC 92260001 */ lbu $a2, 1($s1) +/* 06A110 7F0355E0 00409025 */ move $s2, $v0 +/* 06A114 7F0355E4 1000FFE9 */ b GetByteS1_ParseCommandByte_SwitchCase #break +/* 06A118 7F0355E8 02C28821 */ addu $s1, $s6, $v0 +Action02_Label: #case 2 +/* 06A11C 7F0355EC 26520002 */ addiu $s2, $s2, 2 # s2++ PC ? # CurrentActionByte += 2 +/* 06A120 7F0355F0 1000FFE6 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 +=2; goto 58c +/* 06A124 7F0355F4 26310002 */ addiu $s1, $s1, 2 +action03_Leave_The_Routine_When_Return_Continue_From_Spot_1: +/* 06A128 7F0355F8 12E00004 */ beqz $s7, .L7F03560C # s2++ PC? +/* 06A12C 7F0355FC 26520001 */ addiu $s2, $s2, 1 # if s7 = 0 goto 0c If actionblock not initilised else ? +/* 06A130 7F035600 AEF60104 */ sw $s6, 0x104($s7) # s7.104 = s6 +/* 06A134 7F035604 100012FE */ b Action04_End_1 # s7.108 = u16(s2) +/* 06A138 7F035608 A6F20108 */ sh $s2, 0x108($s7) # goto end1 (load return addr) +.L7F03560C: +/* 06A13C 7F03560C 8FAF07B0 */ lw $t7, 0x7b0($sp) +/* 06A140 7F035610 8FB807AC */ lw $t8, 0x7ac($sp) +/* 06A144 7F035614 11E00004 */ beqz $t7, .L7F035628 # if t7 = 0 goto 28 +/* 06A148 7F035618 00000000 */ nop +/* 06A14C 7F03561C ADF60080 */ sw $s6, 0x80($t7) #else t7.80 = s6 +/* 06A150 7F035620 100012F7 */ b Action04_End_1 # t7.84 = u16(s2) +/* 06A154 7F035624 A5F20084 */ sh $s2, 0x84($t7) # end1 (load return addr) +.L7F035628: +/* 06A158 7F035628 530012F6 */ beql $t8, $zero, Action04_End_2 # load return addr (same as end1 (sp.74)) +/* 06A15C 7F03562C 8FBF0074 */ lw $ra, 0x74($sp) # if t8 = 0 goto end2 (skip return addr) +/* 06A160 7F035630 AF160080 */ sw $s6, 0x80($t8) # else t8.80 = s6 +/* 06A164 7F035634 100012F2 */ b Action04_End_1 # t8.84 = u16(s2) +/* 06A168 7F035638 A7120084 */ sh $s2, 0x84($t8) # end1(load return addr) +action05_Jump_To_Function_4: +/* 06A16C 7F03563C 92390002 */ lbu $t9, 2($s1) +/* 06A170 7F035640 922A0003 */ lbu $t2, 3($s1) +/* 06A174 7F035644 92250001 */ lbu $a1, 1($s1) +/* 06A178 7F035648 00194A00 */ sll $t1, $t9, 8 +/* 06A17C 7F03564C 012A1825 */ or $v1, $t1, $t2 +/* 06A180 7F035650 306BFFFF */ andi $t3, $v1, 0xffff +/* 06A184 7F035654 240100FD */ li $at, 253 +/* 06A188 7F035658 14A10007 */ bne $a1, $at, .L7F035678 +/* 06A18C 7F03565C 01601825 */ move $v1, $t3 +/* 06A190 7F035660 01602025 */ move $a0, $t3 +/* 06A194 7F035664 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A198 7F035668 00009025 */ move $s2, $zero +/* 06A19C 7F03566C 0040B025 */ move $s6, $v0 +/* 06A1A0 7F035670 1000FFC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1A4 7F035674 00408825 */ move $s1, $v0 +.L7F035678: +/* 06A1A8 7F035678 02E02025 */ move $a0, $s7 +/* 06A1AC 7F03567C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A1B0 7F035680 A7A30792 */ sh $v1, 0x792($sp) +/* 06A1B4 7F035684 97A30792 */ lhu $v1, 0x792($sp) +/* 06A1B8 7F035688 10400006 */ beqz $v0, .L7F0356A4 +/* 06A1BC 7F03568C 00408025 */ move $s0, $v0 +/* 06A1C0 7F035690 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A1C4 7F035694 00602025 */ move $a0, $v1 +/* 06A1C8 7F035698 AE020104 */ sw $v0, 0x104($s0) +/* 06A1CC 7F03569C A6000108 */ sh $zero, 0x108($s0) +/* 06A1D0 7F0356A0 A2000008 */ sb $zero, 8($s0) +.L7F0356A4: +/* 06A1D4 7F0356A4 26520004 */ addiu $s2, $s2, 4 +/* 06A1D8 7F0356A8 1000FFB8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1DC 7F0356AC 26310004 */ addiu $s1, $s1, 4 +action06_Set_Return_Subroutine_for_0007_Command_3: +/* 06A1E0 7F0356B0 922C0001 */ lbu $t4, 1($s1) +/* 06A1E4 7F0356B4 922E0002 */ lbu $t6, 2($s1) +/* 06A1E8 7F0356B8 8FB807B0 */ lw $t8, 0x7b0($sp) +/* 06A1EC 7F0356BC 000C6A00 */ sll $t5, $t4, 8 +/* 06A1F0 7F0356C0 01AE1025 */ or $v0, $t5, $t6 +/* 06A1F4 7F0356C4 304FFFFF */ andi $t7, $v0, 0xffff +/* 06A1F8 7F0356C8 12E00005 */ beqz $s7, .L7F0356E0 +/* 06A1FC 7F0356CC 01E01025 */ move $v0, $t7 +/* 06A200 7F0356D0 A6EF010A */ sh $t7, 0x10a($s7) +/* 06A204 7F0356D4 26520003 */ addiu $s2, $s2, 3 +/* 06A208 7F0356D8 1000FFAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A20C 7F0356DC 26310003 */ addiu $s1, $s1, 3 +.L7F0356E0: +/* 06A210 7F0356E0 13000005 */ beqz $t8, .L7F0356F8 +/* 06A214 7F0356E4 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06A218 7F0356E8 A7020086 */ sh $v0, 0x86($t8) +/* 06A21C 7F0356EC 26520003 */ addiu $s2, $s2, 3 +/* 06A220 7F0356F0 1000FFA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A224 7F0356F4 26310003 */ addiu $s1, $s1, 3 +.L7F0356F8: +/* 06A228 7F0356F8 13200002 */ beqz $t9, .L7F035704 +/* 06A22C 7F0356FC 26520003 */ addiu $s2, $s2, 3 +/* 06A230 7F035700 A7220086 */ sh $v0, 0x86($t9) +.L7F035704: +/* 06A234 7F035704 1000FFA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A238 7F035708 26310003 */ addiu $s1, $s1, 3 +action07_Jump_to_Return_Subroutine_1: +/* 06A23C 7F03570C 12E00006 */ beqz $s7, .L7F035728 +/* 06A240 7F035710 00009025 */ move $s2, $zero +/* 06A244 7F035714 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A248 7F035718 86E4010A */ lh $a0, 0x10a($s7) +/* 06A24C 7F03571C 0040B025 */ move $s6, $v0 +/* 06A250 7F035720 1000FF9A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A254 7F035724 00408825 */ move $s1, $v0 +.L7F035728: +/* 06A258 7F035728 8FA907B0 */ lw $t1, 0x7b0($sp) +/* 06A25C 7F03572C 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A260 7F035730 11200006 */ beqz $t1, .L7F03574C +/* 06A264 7F035734 00000000 */ nop +/* 06A268 7F035738 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A26C 7F03573C 85240086 */ lh $a0, 0x86($t1) +/* 06A270 7F035740 0040B025 */ move $s6, $v0 +/* 06A274 7F035744 1000FF91 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A278 7F035748 00408825 */ move $s1, $v0 +.L7F03574C: +/* 06A27C 7F03574C 11400004 */ beqz $t2, .L7F035760 +/* 06A280 7F035750 00000000 */ nop +/* 06A284 7F035754 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A288 7F035758 85440086 */ lh $a0, 0x86($t2) +/* 06A28C 7F03575C 0040B025 */ move $s6, $v0 +.L7F035760: +/* 06A290 7F035760 1000FF8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A294 7F035764 02C08825 */ move $s1, $s6 +action08_Reset_Animation_1: +/* 06A298 7F035768 0FC0CD75 */ jal sub_GAME_7F0335D4 +/* 06A29C 7F03576C 02E02025 */ move $a0, $s7 +/* 06A2A0 7F035770 26520001 */ addiu $s2, $s2, 1 +/* 06A2A4 7F035774 1000FF85 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2A8 7F035778 26310001 */ addiu $s1, $s1, 1 +action09_Guard_Kneels_1: +/* 06A2AC 7F03577C 0FC0CDB1 */ jal check_if_able_to_then_kneel +/* 06A2B0 7F035780 02E02025 */ move $a0, $s7 +/* 06A2B4 7F035784 26520001 */ addiu $s2, $s2, 1 +/* 06A2B8 7F035788 1000FF80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2BC 7F03578C 26310001 */ addiu $s1, $s1, 1 +action0A_Animation_9: +/* 06A2C0 7F035790 922B0001 */ lbu $t3, 1($s1) +/* 06A2C4 7F035794 922D0002 */ lbu $t5, 2($s1) +/* 06A2C8 7F035798 3401FFFF */ li $at, 65535 +/* 06A2CC 7F03579C 000B6200 */ sll $t4, $t3, 8 +/* 06A2D0 7F0357A0 018D7025 */ or $t6, $t4, $t5 +/* 06A2D4 7F0357A4 AFAE077C */ sw $t6, 0x77c($sp) +/* 06A2D8 7F0357A8 922F0003 */ lbu $t7, 3($s1) +/* 06A2DC 7F0357AC 92290005 */ lbu $t1, 5($s1) +/* 06A2E0 7F0357B0 92390004 */ lbu $t9, 4($s1) +/* 06A2E4 7F0357B4 922B0006 */ lbu $t3, 6($s1) +/* 06A2E8 7F0357B8 000FC200 */ sll $t8, $t7, 8 +/* 06A2EC 7F0357BC 00095200 */ sll $t2, $t1, 8 +/* 06A2F0 7F0357C0 03198025 */ or $s0, $t8, $t9 +/* 06A2F4 7F0357C4 014B6025 */ or $t4, $t2, $t3 +/* 06A2F8 7F0357C8 16010002 */ bne $s0, $at, .L7F0357D4 +/* 06A2FC 7F0357CC AFAC0774 */ sw $t4, 0x774($sp) +/* 06A300 7F0357D0 00008025 */ move $s0, $zero +.L7F0357D4: +/* 06A304 7F0357D4 8FB30774 */ lw $s3, 0x774($sp) +/* 06A308 7F0357D8 3401FFFF */ li $at, 65535 +/* 06A30C 7F0357DC 02E02025 */ move $a0, $s7 +/* 06A310 7F0357E0 16610002 */ bne $s3, $at, .L7F0357EC +/* 06A314 7F0357E4 8FAF07AC */ lw $t7, 0x7ac($sp) +/* 06A318 7F0357E8 2413FFFF */ li $s3, -1 +.L7F0357EC: +/* 06A31C 7F0357EC 12E0000C */ beqz $s7, .L7F035820 +/* 06A320 7F0357F0 00000000 */ nop +/* 06A324 7F0357F4 922D0007 */ lbu $t5, 7($s1) +/* 06A328 7F0357F8 8FA5077C */ lw $a1, 0x77c($sp) +/* 06A32C 7F0357FC 02003025 */ move $a2, $s0 +/* 06A330 7F035800 AFAD0010 */ sw $t5, 0x10($sp) +/* 06A334 7F035804 922E0008 */ lbu $t6, 8($s1) +/* 06A338 7F035808 02603825 */ move $a3, $s3 +/* 06A33C 7F03580C 0FC0CDC0 */ jal check_if_able_to_then_perform_animation +/* 06A340 7F035810 AFAE0014 */ sw $t6, 0x14($sp) +/* 06A344 7F035814 26520009 */ addiu $s2, $s2, 9 +/* 06A348 7F035818 1000FF5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A34C 7F03581C 26310009 */ addiu $s1, $s1, 9 +.L7F035820: +/* 06A350 7F035820 11E0001B */ beqz $t7, .L7F035890 +/* 06A354 7F035824 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 06A358 7F035828 44813000 */ mtc1 $at, $f6 +/* 06A35C 7F03582C 8DE40014 */ lw $a0, 0x14($t7) +/* 06A360 7F035830 44902000 */ mtc1 $s0, $f4 +/* 06A364 7F035834 E7A60010 */ swc1 $f6, 0x10($sp) +/* 06A368 7F035838 92290008 */ lbu $t1, 8($s1) +/* 06A36C 7F03583C 46802120 */ cvt.s.w $f4, $f4 +/* 06A370 7F035840 8FB8077C */ lw $t8, 0x77c($sp) +/* 06A374 7F035844 44894000 */ mtc1 $t1, $f8 +/* 06A378 7F035848 3C058003 */ lui $a1, %hi(animation_table_ptrs2) +/* 06A37C 7F03584C 0018C880 */ sll $t9, $t8, 2 +/* 06A380 7F035850 468042A0 */ cvt.s.w $f10, $f8 +/* 06A384 7F035854 00B92821 */ addu $a1, $a1, $t9 +/* 06A388 7F035858 44072000 */ mfc1 $a3, $f4 +/* 06A38C 7F03585C 8CA5A04C */ lw $a1, %lo(animation_table_ptrs2)($a1) +/* 06A390 7F035860 00003025 */ move $a2, $zero +/* 06A394 7F035864 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06A398 7F035868 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 06A39C 7F03586C 06620009 */ bltzl $s3, .L7F035894 +/* 06A3A0 7F035870 26520009 */ addiu $s2, $s2, 9 +/* 06A3A4 7F035874 44938000 */ mtc1 $s3, $f16 +/* 06A3A8 7F035878 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A3AC 7F03587C 46808420 */ cvt.s.w $f16, $f16 +/* 06A3B0 7F035880 8D440014 */ lw $a0, 0x14($t2) +/* 06A3B4 7F035884 44058000 */ mfc1 $a1, $f16 +/* 06A3B8 7F035888 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 06A3BC 7F03588C 00000000 */ nop +.L7F035890: +/* 06A3C0 7F035890 26520009 */ addiu $s2, $s2, 9 +.L7F035894: +/* 06A3C4 7F035894 1000FF3D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3C8 7F035898 26310009 */ addiu $s1, $s1, 9 +action0B_If_Guard_WastingTime_SwatFlies_RVL_2: +/* 06A3CC 7F03589C 82EB0007 */ lb $t3, 7($s7) +/* 06A3D0 7F0358A0 24010003 */ li $at, 3 +/* 06A3D4 7F0358A4 02C02025 */ move $a0, $s6 +/* 06A3D8 7F0358A8 15610006 */ bne $t3, $at, .L7F0358C4 +/* 06A3DC 7F0358AC 02402825 */ move $a1, $s2 +/* 06A3E0 7F0358B0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A3E4 7F0358B4 92260001 */ lbu $a2, 1($s1) +/* 06A3E8 7F0358B8 00409025 */ move $s2, $v0 +/* 06A3EC 7F0358BC 1000FF33 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3F0 7F0358C0 02C28821 */ addu $s1, $s6, $v0 +.L7F0358C4: +/* 06A3F4 7F0358C4 26520002 */ addiu $s2, $s2, 2 +/* 06A3F8 7F0358C8 1000FF30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3FC 7F0358CC 26310002 */ addiu $s1, $s1, 2 +action0C_Guard_Gestures_1: +/* 06A400 7F0358D0 0FC0CD84 */ jal check_if_able_to_then_shuffle_feet +/* 06A404 7F0358D4 02E02025 */ move $a0, $s7 +/* 06A408 7F0358D8 26520001 */ addiu $s2, $s2, 1 +/* 06A40C 7F0358DC 1000FF2B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A410 7F0358E0 26310001 */ addiu $s1, $s1, 1 +action0D_Guard_Looks_Around_When_Shot_At_1: +/* 06A414 7F0358E4 0FC0CDA2 */ jal check_if_able_to_then_look_flustered +/* 06A418 7F0358E8 02E02025 */ move $a0, $s7 +/* 06A41C 7F0358EC 26520001 */ addiu $s2, $s2, 1 +/* 06A420 7F0358F0 1000FF26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A424 7F0358F4 26310001 */ addiu $s1, $s1, 1 +action2F_When_Guard_Stops_Moving_RVL_2: +/* 06A428 7F0358F8 0FC0A717 */ jal check_if_actor_stationary +/* 06A42C 7F0358FC 02E02025 */ move $a0, $s7 +/* 06A430 7F035900 10400007 */ beqz $v0, .L7F035920 +/* 06A434 7F035904 02C02025 */ move $a0, $s6 +/* 06A438 7F035908 02402825 */ move $a1, $s2 +/* 06A43C 7F03590C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A440 7F035910 92260001 */ lbu $a2, 1($s1) +/* 06A444 7F035914 00409025 */ move $s2, $v0 +/* 06A448 7F035918 1000FF1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A44C 7F03591C 02C28821 */ addu $s1, $s6, $v0 +.L7F035920: +/* 06A450 7F035920 26520002 */ addiu $s2, $s2, 2 +/* 06A454 7F035924 1000FF19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A458 7F035928 26310002 */ addiu $s1, $s1, 2 +action30_Detect_If_Guard_Killed_RVL_If_So_3: +/* 06A45C 7F03592C 02E02025 */ move $a0, $s7 +/* 06A460 7F035930 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A464 7F035934 92250001 */ lbu $a1, 1($s1) +/* 06A468 7F035938 10400004 */ beqz $v0, .L7F03594C +/* 06A46C 7F03593C 00402025 */ move $a0, $v0 +/* 06A470 7F035940 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 06A474 7F035944 00000000 */ nop +/* 06A478 7F035948 10400007 */ beqz $v0, .L7F035968 +.L7F03594C: +/* 06A47C 7F03594C 02C02025 */ move $a0, $s6 +/* 06A480 7F035950 02402825 */ move $a1, $s2 +/* 06A484 7F035954 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A488 7F035958 92260002 */ lbu $a2, 2($s1) +/* 06A48C 7F03595C 00409025 */ move $s2, $v0 +/* 06A490 7F035960 1000FF0A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A494 7F035964 02C28821 */ addu $s1, $s6, $v0 +.L7F035968: +/* 06A498 7F035968 26520003 */ addiu $s2, $s2, 3 +/* 06A49C 7F03596C 1000FF07 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4A0 7F035970 26310003 */ addiu $s1, $s1, 3 +action31_If_GuardID_Finish_DeathAnimation_RVL_3: +/* 06A4A4 7F035974 02E02025 */ move $a0, $s7 +/* 06A4A8 7F035978 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A4AC 7F03597C 92250001 */ lbu $a1, 1($s1) +/* 06A4B0 7F035980 10400003 */ beqz $v0, .L7F035990 +/* 06A4B4 7F035984 02C02025 */ move $a0, $s6 +/* 06A4B8 7F035988 8C4C001C */ lw $t4, 0x1c($v0) +/* 06A4BC 7F03598C 15800006 */ bnez $t4, .L7F0359A8 +.L7F035990: +/* 06A4C0 7F035990 02402825 */ move $a1, $s2 +/* 06A4C4 7F035994 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4C8 7F035998 92260002 */ lbu $a2, 2($s1) +/* 06A4CC 7F03599C 00409025 */ move $s2, $v0 +/* 06A4D0 7F0359A0 1000FEFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4D4 7F0359A4 02C28821 */ addu $s1, $s6, $v0 +.L7F0359A8: +/* 06A4D8 7F0359A8 26520003 */ addiu $s2, $s2, 3 +/* 06A4DC 7F0359AC 1000FEF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4E0 7F0359B0 26310003 */ addiu $s1, $s1, 3 +action32_If_Bond_In_Sight_RVL_2: +/* 06A4E4 7F0359B4 0FC0A75C */ jal sub_GAME_7F029D70 +/* 06A4E8 7F0359B8 02E02025 */ move $a0, $s7 +/* 06A4EC 7F0359BC 10400007 */ beqz $v0, .L7F0359DC +/* 06A4F0 7F0359C0 02C02025 */ move $a0, $s6 +/* 06A4F4 7F0359C4 02402825 */ move $a1, $s2 +/* 06A4F8 7F0359C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4FC 7F0359CC 92260001 */ lbu $a2, 1($s1) +/* 06A500 7F0359D0 00409025 */ move $s2, $v0 +/* 06A504 7F0359D4 1000FEED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A508 7F0359D8 02C28821 */ addu $s1, $s6, $v0 +.L7F0359DC: +/* 06A50C 7F0359DC 26520002 */ addiu $s2, $s2, 2 +/* 06A510 7F0359E0 1000FEEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A514 7F0359E4 26310002 */ addiu $s1, $s1, 2 +action0E_Guard_Steps_Sideways_RVL_2: +/* 06A518 7F0359E8 0FC0A8B2 */ jal actor_steps_sideways +/* 06A51C 7F0359EC 02E02025 */ move $a0, $s7 +/* 06A520 7F0359F0 10400007 */ beqz $v0, .L7F035A10 +/* 06A524 7F0359F4 02C02025 */ move $a0, $s6 +/* 06A528 7F0359F8 02402825 */ move $a1, $s2 +/* 06A52C 7F0359FC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A530 7F035A00 92260001 */ lbu $a2, 1($s1) +/* 06A534 7F035A04 00409025 */ move $s2, $v0 +/* 06A538 7F035A08 1000FEE0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A53C 7F035A0C 02C28821 */ addu $s1, $s6, $v0 +.L7F035A10: +/* 06A540 7F035A10 26520002 */ addiu $s2, $s2, 2 +/* 06A544 7F035A14 1000FEDD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A548 7F035A18 26310002 */ addiu $s1, $s1, 2 +action0F_Guard_Hops_Sideways_RVL_2: +/* 06A54C 7F035A1C 0FC0A90A */ jal actor_hops_sideways +/* 06A550 7F035A20 02E02025 */ move $a0, $s7 +/* 06A554 7F035A24 10400007 */ beqz $v0, .L7F035A44 +/* 06A558 7F035A28 02C02025 */ move $a0, $s6 +/* 06A55C 7F035A2C 02402825 */ move $a1, $s2 +/* 06A560 7F035A30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A564 7F035A34 92260001 */ lbu $a2, 1($s1) +/* 06A568 7F035A38 00409025 */ move $s2, $v0 +/* 06A56C 7F035A3C 1000FED3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A570 7F035A40 02C28821 */ addu $s1, $s6, $v0 +.L7F035A44: +/* 06A574 7F035A44 26520002 */ addiu $s2, $s2, 2 +/* 06A578 7F035A48 1000FED0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A57C 7F035A4C 26310002 */ addiu $s1, $s1, 2 +action10_Guard_Runs_Sideways_RVL_2: +/* 06A580 7F035A50 0FC0A962 */ jal actor_runs_sideways +/* 06A584 7F035A54 02E02025 */ move $a0, $s7 +/* 06A588 7F035A58 10400007 */ beqz $v0, .L7F035A78 +/* 06A58C 7F035A5C 02C02025 */ move $a0, $s6 +/* 06A590 7F035A60 02402825 */ move $a1, $s2 +/* 06A594 7F035A64 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A598 7F035A68 92260001 */ lbu $a2, 1($s1) +/* 06A59C 7F035A6C 00409025 */ move $s2, $v0 +/* 06A5A0 7F035A70 1000FEC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5A4 7F035A74 02C28821 */ addu $s1, $s6, $v0 +.L7F035A78: +/* 06A5A8 7F035A78 26520002 */ addiu $s2, $s2, 2 +/* 06A5AC 7F035A7C 1000FEC3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5B0 7F035A80 26310002 */ addiu $s1, $s1, 2 +action11_Guard_Walks_Firing_RVL_2: +/* 06A5B4 7F035A84 0FC0A9C1 */ jal actor_walks_and_fires +/* 06A5B8 7F035A88 02E02025 */ move $a0, $s7 +/* 06A5BC 7F035A8C 10400007 */ beqz $v0, .L7F035AAC +/* 06A5C0 7F035A90 02C02025 */ move $a0, $s6 +/* 06A5C4 7F035A94 02402825 */ move $a1, $s2 +/* 06A5C8 7F035A98 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A5CC 7F035A9C 92260001 */ lbu $a2, 1($s1) +/* 06A5D0 7F035AA0 00409025 */ move $s2, $v0 +/* 06A5D4 7F035AA4 1000FEB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5D8 7F035AA8 02C28821 */ addu $s1, $s6, $v0 +.L7F035AAC: +/* 06A5DC 7F035AAC 26520002 */ addiu $s2, $s2, 2 +/* 06A5E0 7F035AB0 1000FEB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5E4 7F035AB4 26310002 */ addiu $s1, $s1, 2 +action12_Guard_Runs_Firing_RVL_2: +/* 06A5E8 7F035AB8 0FC0A9FE */ jal actor_runs_and_fires +/* 06A5EC 7F035ABC 02E02025 */ move $a0, $s7 +/* 06A5F0 7F035AC0 10400007 */ beqz $v0, .L7F035AE0 +/* 06A5F4 7F035AC4 02C02025 */ move $a0, $s6 +/* 06A5F8 7F035AC8 02402825 */ move $a1, $s2 +/* 06A5FC 7F035ACC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A600 7F035AD0 92260001 */ lbu $a2, 1($s1) +/* 06A604 7F035AD4 00409025 */ move $s2, $v0 +/* 06A608 7F035AD8 1000FEAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A60C 7F035ADC 02C28821 */ addu $s1, $s6, $v0 +.L7F035AE0: +/* 06A610 7F035AE0 26520002 */ addiu $s2, $s2, 2 +/* 06A614 7F035AE4 1000FEA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A618 7F035AE8 26310002 */ addiu $s1, $s1, 2 +action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2: +/* 06A61C 7F035AEC 0FC0AA3B */ jal actor_rolls_fires_crouched +/* 06A620 7F035AF0 02E02025 */ move $a0, $s7 +/* 06A624 7F035AF4 10400007 */ beqz $v0, .L7F035B14 +/* 06A628 7F035AF8 02C02025 */ move $a0, $s6 +/* 06A62C 7F035AFC 02402825 */ move $a1, $s2 +/* 06A630 7F035B00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A634 7F035B04 92260001 */ lbu $a2, 1($s1) +/* 06A638 7F035B08 00409025 */ move $s2, $v0 +/* 06A63C 7F035B0C 1000FE9F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A640 7F035B10 02C28821 */ addu $s1, $s6, $v0 +.L7F035B14: +/* 06A644 7F035B14 26520002 */ addiu $s2, $s2, 2 +/* 06A648 7F035B18 1000FE9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A64C 7F035B1C 26310002 */ addiu $s1, $s1, 2 +action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A650 7F035B20 922D0003 */ lbu $t5, 3($s1) +/* 06A654 7F035B24 92380001 */ lbu $t8, 1($s1) +/* 06A658 7F035B28 922F0004 */ lbu $t7, 4($s1) +/* 06A65C 7F035B2C 92290002 */ lbu $t1, 2($s1) +/* 06A660 7F035B30 000D7200 */ sll $t6, $t5, 8 +/* 06A664 7F035B34 0018CA00 */ sll $t9, $t8, 8 +/* 06A668 7F035B38 02E02025 */ move $a0, $s7 +/* 06A66C 7F035B3C 01CF3025 */ or $a2, $t6, $t7 +/* 06A670 7F035B40 0FC0AA87 */ jal actor_aim_at_actor +/* 06A674 7F035B44 03292825 */ or $a1, $t9, $t1 +/* 06A678 7F035B48 10400007 */ beqz $v0, .L7F035B68 +/* 06A67C 7F035B4C 02C02025 */ move $a0, $s6 +/* 06A680 7F035B50 02402825 */ move $a1, $s2 +/* 06A684 7F035B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A688 7F035B58 92260005 */ lbu $a2, 5($s1) +/* 06A68C 7F035B5C 00409025 */ move $s2, $v0 +/* 06A690 7F035B60 1000FE8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A694 7F035B64 02C28821 */ addu $s1, $s6, $v0 +.L7F035B68: +/* 06A698 7F035B68 26520006 */ addiu $s2, $s2, 6 +/* 06A69C 7F035B6C 1000FE87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6A0 7F035B70 26310006 */ addiu $s1, $s1, 6 +action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A6A4 7F035B74 922A0003 */ lbu $t2, 3($s1) +/* 06A6A8 7F035B78 922D0001 */ lbu $t5, 1($s1) +/* 06A6AC 7F035B7C 922C0004 */ lbu $t4, 4($s1) +/* 06A6B0 7F035B80 922F0002 */ lbu $t7, 2($s1) +/* 06A6B4 7F035B84 000A5A00 */ sll $t3, $t2, 8 +/* 06A6B8 7F035B88 000D7200 */ sll $t6, $t5, 8 +/* 06A6BC 7F035B8C 02E02025 */ move $a0, $s7 +/* 06A6C0 7F035B90 016C3025 */ or $a2, $t3, $t4 +/* 06A6C4 7F035B94 0FC0AAA2 */ jal actor_kneel_aim_at_actor +/* 06A6C8 7F035B98 01CF2825 */ or $a1, $t6, $t7 +/* 06A6CC 7F035B9C 10400007 */ beqz $v0, .L7F035BBC +/* 06A6D0 7F035BA0 02C02025 */ move $a0, $s6 +/* 06A6D4 7F035BA4 02402825 */ move $a1, $s2 +/* 06A6D8 7F035BA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A6DC 7F035BAC 92260005 */ lbu $a2, 5($s1) +/* 06A6E0 7F035BB0 00409025 */ move $s2, $v0 +/* 06A6E4 7F035BB4 1000FE75 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6E8 7F035BB8 02C28821 */ addu $s1, $s6, $v0 +.L7F035BBC: +/* 06A6EC 7F035BBC 26520006 */ addiu $s2, $s2, 6 +/* 06A6F0 7F035BC0 1000FE72 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6F4 7F035BC4 26310006 */ addiu $s1, $s1, 6 +actionE7_If_Guard_Moving_And_Shooting_RVL_2: +/* 06A6F8 7F035BC8 82F80007 */ lb $t8, 7($s7) +/* 06A6FC 7F035BCC 24010008 */ li $at, 8 +/* 06A700 7F035BD0 57010010 */ bnel $t8, $at, .L7F035C14 +/* 06A704 7F035BD4 26520002 */ addiu $s2, $s2, 2 +/* 06A708 7F035BD8 8EF90058 */ lw $t9, 0x58($s7) +/* 06A70C 7F035BDC 5720000D */ bnezl $t9, .L7F035C14 +/* 06A710 7F035BE0 26520002 */ addiu $s2, $s2, 2 +/* 06A714 7F035BE4 8EE9004C */ lw $t1, 0x4c($s7) +/* 06A718 7F035BE8 02C02025 */ move $a0, $s6 +/* 06A71C 7F035BEC 02402825 */ move $a1, $s2 +/* 06A720 7F035BF0 312A0040 */ andi $t2, $t1, 0x40 +/* 06A724 7F035BF4 51400007 */ beql $t2, $zero, .L7F035C14 +/* 06A728 7F035BF8 26520002 */ addiu $s2, $s2, 2 +/* 06A72C 7F035BFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A730 7F035C00 92260001 */ lbu $a2, 1($s1) +/* 06A734 7F035C04 00409025 */ move $s2, $v0 +/* 06A738 7F035C08 1000FE60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A73C 7F035C0C 02C28821 */ addu $s1, $s6, $v0 +/* 06A740 7F035C10 26520002 */ addiu $s2, $s2, 2 +.L7F035C14: +/* 06A744 7F035C14 1000FE5D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A748 7F035C18 26310002 */ addiu $s1, $s1, 2 +actionE8_If_Guard_Is_Shooting_RVL_2: +/* 06A74C 7F035C1C 82EB0007 */ lb $t3, 7($s7) +/* 06A750 7F035C20 24010008 */ li $at, 8 +/* 06A754 7F035C24 02C02025 */ move $a0, $s6 +/* 06A758 7F035C28 15610006 */ bne $t3, $at, .L7F035C44 +/* 06A75C 7F035C2C 02402825 */ move $a1, $s2 +/* 06A760 7F035C30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A764 7F035C34 92260001 */ lbu $a2, 1($s1) +/* 06A768 7F035C38 00409025 */ move $s2, $v0 +/* 06A76C 7F035C3C 1000FE53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A770 7F035C40 02C28821 */ addu $s1, $s6, $v0 +.L7F035C44: +/* 06A774 7F035C44 26520002 */ addiu $s2, $s2, 2 +/* 06A778 7F035C48 1000FE50 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A77C 7F035C4C 26310002 */ addiu $s1, $s1, 2 +action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: +/* 06A780 7F035C50 922C0003 */ lbu $t4, 3($s1) +/* 06A784 7F035C54 922F0001 */ lbu $t7, 1($s1) +/* 06A788 7F035C58 922E0004 */ lbu $t6, 4($s1) +/* 06A78C 7F035C5C 92390002 */ lbu $t9, 2($s1) +/* 06A790 7F035C60 000C6A00 */ sll $t5, $t4, 8 +/* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 +/* 06A798 7F035C68 02E02025 */ move $a0, $s7 +/* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 +/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 +/* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 +/* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 +/* 06A7B0 7F035C80 02402825 */ move $a1, $s2 +/* 06A7B4 7F035C84 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A7B8 7F035C88 92260005 */ lbu $a2, 5($s1) +/* 06A7BC 7F035C8C 00409025 */ move $s2, $v0 +/* 06A7C0 7F035C90 1000FE3E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7C4 7F035C94 02C28821 */ addu $s1, $s6, $v0 +.L7F035C98: +/* 06A7C8 7F035C98 26520006 */ addiu $s2, $s2, 6 +/* 06A7CC 7F035C9C 1000FE3B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7D0 7F035CA0 26310006 */ addiu $s1, $s1, 6 +action17_Guard_Constantly_Angles_To_Face_RVL_6: +/* 06A7D4 7F035CA4 92290003 */ lbu $t1, 3($s1) +/* 06A7D8 7F035CA8 922C0001 */ lbu $t4, 1($s1) +/* 06A7DC 7F035CAC 922B0004 */ lbu $t3, 4($s1) +/* 06A7E0 7F035CB0 922E0002 */ lbu $t6, 2($s1) +/* 06A7E4 7F035CB4 00095200 */ sll $t2, $t1, 8 +/* 06A7E8 7F035CB8 000C6A00 */ sll $t5, $t4, 8 +/* 06A7EC 7F035CBC 02E02025 */ move $a0, $s7 +/* 06A7F0 7F035CC0 014B3025 */ or $a2, $t2, $t3 +/* 06A7F4 7F035CC4 0FC0AAD1 */ jal check_set_actor_standing_still +/* 06A7F8 7F035CC8 01AE2825 */ or $a1, $t5, $t6 +/* 06A7FC 7F035CCC 10400007 */ beqz $v0, .L7F035CEC +/* 06A800 7F035CD0 02C02025 */ move $a0, $s6 +/* 06A804 7F035CD4 02402825 */ move $a1, $s2 +/* 06A808 7F035CD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A80C 7F035CDC 92260005 */ lbu $a2, 5($s1) +/* 06A810 7F035CE0 00409025 */ move $s2, $v0 +/* 06A814 7F035CE4 1000FE29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A818 7F035CE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035CEC: +/* 06A81C 7F035CEC 26520006 */ addiu $s2, $s2, 6 +/* 06A820 7F035CF0 1000FE26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A824 7F035CF4 26310006 */ addiu $s1, $s1, 6 +action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4: +/* 06A828 7F035CF8 02E02025 */ move $a0, $s7 +/* 06A82C 7F035CFC 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A830 7F035D00 92250001 */ lbu $a1, 1($s1) +/* 06A834 7F035D04 3C188003 */ lui $t8, %hi(D_80030A70) +/* 06A838 7F035D08 27180A70 */ addiu $t8, %lo(D_80030A70) # addiu $t8, $t8, 0xa70 +/* 06A83C 7F035D0C 8F010000 */ lw $at, ($t8) +/* 06A840 7F035D10 27AF06F4 */ addiu $t7, $sp, 0x6f4 +/* 06A844 7F035D14 8F090004 */ lw $t1, 4($t8) +/* 06A848 7F035D18 ADE10000 */ sw $at, ($t7) +/* 06A84C 7F035D1C 8F010008 */ lw $at, 8($t8) +/* 06A850 7F035D20 00402025 */ move $a0, $v0 +/* 06A854 7F035D24 ADE90004 */ sw $t1, 4($t7) +/* 06A858 7F035D28 10400009 */ beqz $v0, .L7F035D50 +/* 06A85C 7F035D2C ADE10008 */ sw $at, 8($t7) +/* 06A860 7F035D30 8C4A0018 */ lw $t2, 0x18($v0) +/* 06A864 7F035D34 51400007 */ beql $t2, $zero, .L7F035D54 +/* 06A868 7F035D38 26520004 */ addiu $s2, $s2, 4 +/* 06A86C 7F035D3C 82250002 */ lb $a1, 2($s1) +/* 06A870 7F035D40 92270003 */ lbu $a3, 3($s1) +/* 06A874 7F035D44 AFA00010 */ sw $zero, 0x10($sp) +/* 06A878 7F035D48 0FC09C9F */ jal handles_shot_actors +/* 06A87C 7F035D4C 27A606F4 */ addiu $a2, $sp, 0x6f4 +.L7F035D50: +/* 06A880 7F035D50 26520004 */ addiu $s2, $s2, 4 +.L7F035D54: +/* 06A884 7F035D54 1000FE0D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A888 7F035D58 26310004 */ addiu $s1, $s1, 4 +action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4: +/* 06A88C 7F035D5C 02E02025 */ move $a0, $s7 +/* 06A890 7F035D60 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A894 7F035D64 92250001 */ lbu $a1, 1($s1) +/* 06A898 7F035D68 00408025 */ move $s0, $v0 +/* 06A89C 7F035D6C 02E02025 */ move $a0, $s7 +/* 06A8A0 7F035D70 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A8A4 7F035D74 92250002 */ lbu $a1, 2($s1) +/* 06A8A8 7F035D78 1200003C */ beqz $s0, .L7F035E6C +/* 06A8AC 7F035D7C AFA206E8 */ sw $v0, 0x6e8($sp) +/* 06A8B0 7F035D80 1040003A */ beqz $v0, .L7F035E6C +/* 06A8B4 7F035D84 00409825 */ move $s3, $v0 +/* 06A8B8 7F035D88 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A8BC 7F035D8C 51600038 */ beql $t3, $zero, .L7F035E70 +/* 06A8C0 7F035D90 26520004 */ addiu $s2, $s2, 4 +/* 06A8C4 7F035D94 8C4C0018 */ lw $t4, 0x18($v0) +/* 06A8C8 7F035D98 02002025 */ move $a0, $s0 +/* 06A8CC 7F035D9C 51800034 */ beql $t4, $zero, .L7F035E70 +/* 06A8D0 7F035DA0 26520004 */ addiu $s2, $s2, 4 +/* 06A8D4 7F035DA4 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A8D8 7F035DA8 00002825 */ move $a1, $zero +/* 06A8DC 7F035DAC 3C0E8003 */ lui $t6, %hi(D_80030A7C) +/* 06A8E0 7F035DB0 25CE0A7C */ addiu $t6, %lo(D_80030A7C) # addiu $t6, $t6, 0xa7c +/* 06A8E4 7F035DB4 8DC10000 */ lw $at, ($t6) +/* 06A8E8 7F035DB8 27AD06D4 */ addiu $t5, $sp, 0x6d4 +/* 06A8EC 7F035DBC 8DCF0004 */ lw $t7, 4($t6) +/* 06A8F0 7F035DC0 ADA10000 */ sw $at, ($t5) +/* 06A8F4 7F035DC4 8DC10008 */ lw $at, 8($t6) +/* 06A8F8 7F035DC8 00401825 */ move $v1, $v0 +/* 06A8FC 7F035DCC ADAF0004 */ sw $t7, 4($t5) +/* 06A900 7F035DD0 14400005 */ bnez $v0, .L7F035DE8 +/* 06A904 7F035DD4 ADA10008 */ sw $at, 8($t5) +/* 06A908 7F035DD8 02002025 */ move $a0, $s0 +/* 06A90C 7F035DDC 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A910 7F035DE0 24050001 */ li $a1, 1 +/* 06A914 7F035DE4 00401825 */ move $v1, $v0 +.L7F035DE8: +/* 06A918 7F035DE8 50400021 */ beql $v0, $zero, .L7F035E70 +/* 06A91C 7F035DEC 26520004 */ addiu $s2, $s2, 4 +/* 06A920 7F035DF0 8E780018 */ lw $t8, 0x18($s3) +/* 06A924 7F035DF4 8E090018 */ lw $t1, 0x18($s0) +/* 06A928 7F035DF8 27A406D4 */ addiu $a0, $sp, 0x6d4 +/* 06A92C 7F035DFC C7120008 */ lwc1 $f18, 8($t8) +/* 06A930 7F035E00 C5240008 */ lwc1 $f4, 8($t1) +/* 06A934 7F035E04 27A506D8 */ addiu $a1, $sp, 0x6d8 +/* 06A938 7F035E08 27A606DC */ addiu $a2, $sp, 0x6dc +/* 06A93C 7F035E0C 46049181 */ sub.s $f6, $f18, $f4 +/* 06A940 7F035E10 E7A606D4 */ swc1 $f6, 0x6d4($sp) +/* 06A944 7F035E14 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A948 7F035E18 8E6A0018 */ lw $t2, 0x18($s3) +/* 06A94C 7F035E1C C56A000C */ lwc1 $f10, 0xc($t3) +/* 06A950 7F035E20 C548000C */ lwc1 $f8, 0xc($t2) +/* 06A954 7F035E24 460A4401 */ sub.s $f16, $f8, $f10 +/* 06A958 7F035E28 E7B006D8 */ swc1 $f16, 0x6d8($sp) +/* 06A95C 7F035E2C 8E190018 */ lw $t9, 0x18($s0) +/* 06A960 7F035E30 8E6C0018 */ lw $t4, 0x18($s3) +/* 06A964 7F035E34 C7240010 */ lwc1 $f4, 0x10($t9) +/* 06A968 7F035E38 C5920010 */ lwc1 $f18, 0x10($t4) +/* 06A96C 7F035E3C AFA306E4 */ sw $v1, 0x6e4($sp) +/* 06A970 7F035E40 46049181 */ sub.s $f6, $f18, $f4 +/* 06A974 7F035E44 0C007DD4 */ jal guNormalize +/* 06A978 7F035E48 E7A606DC */ swc1 $f6, 0x6dc($sp) +/* 06A97C 7F035E4C 8FA306E4 */ lw $v1, 0x6e4($sp) +/* 06A980 7F035E50 82250003 */ lb $a1, 3($s1) +/* 06A984 7F035E54 02602025 */ move $a0, $s3 +/* 06A988 7F035E58 8C620004 */ lw $v0, 4($v1) +/* 06A98C 7F035E5C 27A606D4 */ addiu $a2, $sp, 0x6d4 +/* 06A990 7F035E60 80470080 */ lb $a3, 0x80($v0) +/* 06A994 7F035E64 0FC09C9F */ jal handles_shot_actors +/* 06A998 7F035E68 AFA00010 */ sw $zero, 0x10($sp) +.L7F035E6C: +/* 06A99C 7F035E6C 26520004 */ addiu $s2, $s2, 4 +.L7F035E70: +/* 06A9A0 7F035E70 1000FDC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9A4 7F035E74 26310004 */ addiu $s1, $s1, 4 +action1A_Guard_Throws_Grenade_RVL_2: +/* 06A9A8 7F035E78 0FC0D15F */ jal actor_draws_throws_grenade_at_player_if_possible +/* 06A9AC 7F035E7C 02E02025 */ move $a0, $s7 +/* 06A9B0 7F035E80 10400007 */ beqz $v0, .L7F035EA0 +/* 06A9B4 7F035E84 02C02025 */ move $a0, $s6 +/* 06A9B8 7F035E88 02402825 */ move $a1, $s2 +/* 06A9BC 7F035E8C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A9C0 7F035E90 92260001 */ lbu $a2, 1($s1) +/* 06A9C4 7F035E94 00409025 */ move $s2, $v0 +/* 06A9C8 7F035E98 1000FDBC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9CC 7F035E9C 02C28821 */ addu $s1, $s6, $v0 +.L7F035EA0: +/* 06A9D0 7F035EA0 26520002 */ addiu $s2, $s2, 2 +/* 06A9D4 7F035EA4 1000FDB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9D8 7F035EA8 26310002 */ addiu $s1, $s1, 2 +action1B_Drop_Weapon_Inventory_num_RVL_5: +/* 06A9DC 7F035EAC 922D0001 */ lbu $t5, 1($s1) +/* 06A9E0 7F035EB0 922F0002 */ lbu $t7, 2($s1) +/* 06A9E4 7F035EB4 02E02025 */ move $a0, $s7 +/* 06A9E8 7F035EB8 000D7200 */ sll $t6, $t5, 8 +/* 06A9EC 7F035EBC 01CF1025 */ or $v0, $t6, $t7 +/* 06A9F0 7F035EC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06A9F4 7F035EC4 0FC0D1BF */ jal actor_drops_itemtype_setting_timer +/* 06A9F8 7F035EC8 92260003 */ lbu $a2, 3($s1) +/* 06A9FC 7F035ECC 10400007 */ beqz $v0, .L7F035EEC +/* 06AA00 7F035ED0 02C02025 */ move $a0, $s6 +/* 06AA04 7F035ED4 02402825 */ move $a1, $s2 +/* 06AA08 7F035ED8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AA0C 7F035EDC 92260004 */ lbu $a2, 4($s1) +/* 06AA10 7F035EE0 00409025 */ move $s2, $v0 +/* 06AA14 7F035EE4 1000FDA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA18 7F035EE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035EEC: +/* 06AA1C 7F035EEC 26520005 */ addiu $s2, $s2, 5 +/* 06AA20 7F035EF0 1000FDA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA24 7F035EF4 26310005 */ addiu $s1, $s1, 5 +action21_Guard_Surrenders_1: +/* 06AA28 7F035EF8 0FC0CCD9 */ jal check_if_able_to_then_surrender +/* 06AA2C 7F035EFC 02E02025 */ move $a0, $s7 +/* 06AA30 7F035F00 26520001 */ addiu $s2, $s2, 1 +/* 06AA34 7F035F04 1000FDA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA38 7F035F08 26310001 */ addiu $s1, $s1, 1 +action22_Guard_Set_To_Move_Fades_And_Disappear_1: +/* 06AA3C 7F035F0C 0FC0CCE8 */ jal sub_GAME_7F0333A0 +/* 06AA40 7F035F10 02E02025 */ move $a0, $s7 +/* 06AA44 7F035F14 26520001 */ addiu $s2, $s2, 1 +/* 06AA48 7F035F18 1000FD9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA4C 7F035F1C 26310001 */ addiu $s1, $s1, 1 +action23_Eliminate_Guard_ID_2: +/* 06AA50 7F035F20 02E02025 */ move $a0, $s7 +/* 06AA54 7F035F24 0FC0CC10 */ jal get_handle_for_guard_id +/* 06AA58 7F035F28 92250001 */ lbu $a1, 1($s1) +/* 06AA5C 7F035F2C 10400007 */ beqz $v0, .L7F035F4C +/* 06AA60 7F035F30 26520002 */ addiu $s2, $s2, 2 +/* 06AA64 7F035F34 8C490018 */ lw $t1, 0x18($v0) +/* 06AA68 7F035F38 11200004 */ beqz $t1, .L7F035F4C +/* 06AA6C 7F035F3C 00000000 */ nop +/* 06AA70 7F035F40 944A0012 */ lhu $t2, 0x12($v0) +/* 06AA74 7F035F44 354B0020 */ ori $t3, $t2, 0x20 +/* 06AA78 7F035F48 A44B0012 */ sh $t3, 0x12($v0) +.L7F035F4C: +/* 06AA7C 7F035F4C 1000FD8F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA80 7F035F50 26310002 */ addiu $s1, $s1, 2 +action24_Activate_Object_At_Preset_RVL_If_Successful_4: +/* 06AA84 7F035F54 922C0001 */ lbu $t4, 1($s1) +/* 06AA88 7F035F58 922D0002 */ lbu $t5, 2($s1) +/* 06AA8C 7F035F5C 02E02025 */ move $a0, $s7 +/* 06AA90 7F035F60 000CCA00 */ sll $t9, $t4, 8 +/* 06AA94 7F035F64 032D1025 */ or $v0, $t9, $t5 +/* 06AA98 7F035F68 0FC0D145 */ jal sub_GAME_7F034514 +/* 06AA9C 7F035F6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AAA0 7F035F70 10400007 */ beqz $v0, .L7F035F90 +/* 06AAA4 7F035F74 02C02025 */ move $a0, $s6 +/* 06AAA8 7F035F78 02402825 */ move $a1, $s2 +/* 06AAAC 7F035F7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AAB0 7F035F80 92260003 */ lbu $a2, 3($s1) +/* 06AAB4 7F035F84 00409025 */ move $s2, $v0 +/* 06AAB8 7F035F88 1000FD80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AABC 7F035F8C 02C28821 */ addu $s1, $s6, $v0 +.L7F035F90: +/* 06AAC0 7F035F90 26520004 */ addiu $s2, $s2, 4 +/* 06AAC4 7F035F94 1000FD7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAC8 7F035F98 26310004 */ addiu $s1, $s1, 4 +action25_Sound_Alarm_1: +/* 06AACC 7F035F9C 0FC15772 */ jal start_alarm +/* 06AAD0 7F035FA0 00000000 */ nop +/* 06AAD4 7F035FA4 26520001 */ addiu $s2, $s2, 1 +/* 06AAD8 7F035FA8 1000FD78 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AADC 7F035FAC 26310001 */ addiu $s1, $s1, 1 +action26_Turn_Off_Alarm_1: +/* 06AAE0 7F035FB0 0FC1578B */ jal stop_alarm +/* 06AAE4 7F035FB4 00000000 */ nop +/* 06AAE8 7F035FB8 26520001 */ addiu $s2, $s2, 1 +/* 06AAEC 7F035FBC 1000FD73 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAF0 7F035FC0 26310001 */ addiu $s1, $s1, 1 +action27_Return_False_Invalid_Type_2: +/* 06AAF4 7F035FC4 0FC0D13F */ jal removed_animation_routine_27 +/* 06AAF8 7F035FC8 02E02025 */ move $a0, $s7 +/* 06AAFC 7F035FCC 10400007 */ beqz $v0, .L7F035FEC +/* 06AB00 7F035FD0 02C02025 */ move $a0, $s6 +/* 06AB04 7F035FD4 02402825 */ move $a1, $s2 +/* 06AB08 7F035FD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB0C 7F035FDC 92260001 */ lbu $a2, 1($s1) +/* 06AB10 7F035FE0 00409025 */ move $s2, $v0 +/* 06AB14 7F035FE4 1000FD69 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB18 7F035FE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035FEC: +/* 06AB1C 7F035FEC 26520002 */ addiu $s2, $s2, 2 +/* 06AB20 7F035FF0 1000FD66 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB24 7F035FF4 26310002 */ addiu $s1, $s1, 2 +action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB28 7F035FF8 02E02025 */ move $a0, $s7 +/* 06AB2C 7F035FFC 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB30 7F036000 24050001 */ li $a1, 1 +/* 06AB34 7F036004 10400007 */ beqz $v0, .L7F036024 +/* 06AB38 7F036008 02C02025 */ move $a0, $s6 +/* 06AB3C 7F03600C 02402825 */ move $a1, $s2 +/* 06AB40 7F036010 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB44 7F036014 92260001 */ lbu $a2, 1($s1) +/* 06AB48 7F036018 00409025 */ move $s2, $v0 +/* 06AB4C 7F03601C 1000FD5B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB50 7F036020 02C28821 */ addu $s1, $s6, $v0 +.L7F036024: +/* 06AB54 7F036024 26520002 */ addiu $s2, $s2, 2 +/* 06AB58 7F036028 1000FD58 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB5C 7F03602C 26310002 */ addiu $s1, $s1, 2 +action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB60 7F036030 02E02025 */ move $a0, $s7 +/* 06AB64 7F036034 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB68 7F036038 00002825 */ move $a1, $zero +/* 06AB6C 7F03603C 10400007 */ beqz $v0, .L7F03605C +/* 06AB70 7F036040 02C02025 */ move $a0, $s6 +/* 06AB74 7F036044 02402825 */ move $a1, $s2 +/* 06AB78 7F036048 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB7C 7F03604C 92260001 */ lbu $a2, 1($s1) +/* 06AB80 7F036050 00409025 */ move $s2, $v0 +/* 06AB84 7F036054 1000FD4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB88 7F036058 02C28821 */ addu $s1, $s6, $v0 +.L7F03605C: +/* 06AB8C 7F03605C 26520002 */ addiu $s2, $s2, 2 +/* 06AB90 7F036060 1000FD4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB94 7F036064 26310002 */ addiu $s1, $s1, 2 +action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB98 7F036068 02E02025 */ move $a0, $s7 +/* 06AB9C 7F03606C 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06ABA0 7F036070 24050002 */ li $a1, 2 +/* 06ABA4 7F036074 10400007 */ beqz $v0, .L7F036094 +/* 06ABA8 7F036078 02C02025 */ move $a0, $s6 +/* 06ABAC 7F03607C 02402825 */ move $a1, $s2 +/* 06ABB0 7F036080 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABB4 7F036084 92260001 */ lbu $a2, 1($s1) +/* 06ABB8 7F036088 00409025 */ move $s2, $v0 +/* 06ABBC 7F03608C 1000FD3F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABC0 7F036090 02C28821 */ addu $s1, $s6, $v0 +.L7F036094: +/* 06ABC4 7F036094 26520002 */ addiu $s2, $s2, 2 +/* 06ABC8 7F036098 1000FD3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABCC 7F03609C 26310002 */ addiu $s1, $s1, 2 +action2B_Return_False_Invalid_Type_2: +/* 06ABD0 7F0360A0 0FC0D142 */ jal removed_animation_routine_2B +/* 06ABD4 7F0360A4 02E02025 */ move $a0, $s7 +/* 06ABD8 7F0360A8 10400007 */ beqz $v0, .L7F0360C8 +/* 06ABDC 7F0360AC 02C02025 */ move $a0, $s6 +/* 06ABE0 7F0360B0 02402825 */ move $a1, $s2 +/* 06ABE4 7F0360B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABE8 7F0360B8 92260001 */ lbu $a2, 1($s1) +/* 06ABEC 7F0360BC 00409025 */ move $s2, $v0 +/* 06ABF0 7F0360C0 1000FD32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABF4 7F0360C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0360C8: +/* 06ABF8 7F0360C8 26520002 */ addiu $s2, $s2, 2 +/* 06ABFC 7F0360CC 1000FD2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC00 7F0360D0 26310002 */ addiu $s1, $s1, 2 +action2C_Jog_To_Character_Position_RVL_On_Arrival_3: +/* 06AC04 7F0360D4 02E02025 */ move $a0, $s7 +/* 06AC08 7F0360D8 92250001 */ lbu $a1, 1($s1) +/* 06AC0C 7F0360DC 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC10 7F0360E0 24060001 */ li $a2, 1 +/* 06AC14 7F0360E4 10400007 */ beqz $v0, .L7F036104 +/* 06AC18 7F0360E8 02C02025 */ move $a0, $s6 +/* 06AC1C 7F0360EC 02402825 */ move $a1, $s2 +/* 06AC20 7F0360F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC24 7F0360F4 92260002 */ lbu $a2, 2($s1) +/* 06AC28 7F0360F8 00409025 */ move $s2, $v0 +/* 06AC2C 7F0360FC 1000FD23 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC30 7F036100 02C28821 */ addu $s1, $s6, $v0 +.L7F036104: +/* 06AC34 7F036104 26520003 */ addiu $s2, $s2, 3 +/* 06AC38 7F036108 1000FD20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC3C 7F03610C 26310003 */ addiu $s1, $s1, 3 +action2D_Walk_To_Character_Position_RVL_On_Arrival_3: +/* 06AC40 7F036110 02E02025 */ move $a0, $s7 +/* 06AC44 7F036114 92250001 */ lbu $a1, 1($s1) +/* 06AC48 7F036118 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC4C 7F03611C 00003025 */ move $a2, $zero +/* 06AC50 7F036120 10400007 */ beqz $v0, .L7F036140 +/* 06AC54 7F036124 02C02025 */ move $a0, $s6 +/* 06AC58 7F036128 02402825 */ move $a1, $s2 +/* 06AC5C 7F03612C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC60 7F036130 92260002 */ lbu $a2, 2($s1) +/* 06AC64 7F036134 00409025 */ move $s2, $v0 +/* 06AC68 7F036138 1000FD14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC6C 7F03613C 02C28821 */ addu $s1, $s6, $v0 +.L7F036140: +/* 06AC70 7F036140 26520003 */ addiu $s2, $s2, 3 +/* 06AC74 7F036144 1000FD11 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC78 7F036148 26310003 */ addiu $s1, $s1, 3 +action2E_Run_To_Character_Position_RVL_On_Arrival_3: +/* 06AC7C 7F03614C 02E02025 */ move $a0, $s7 +/* 06AC80 7F036150 92250001 */ lbu $a1, 1($s1) +/* 06AC84 7F036154 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC88 7F036158 24060002 */ li $a2, 2 +/* 06AC8C 7F03615C 10400007 */ beqz $v0, .L7F03617C +/* 06AC90 7F036160 02C02025 */ move $a0, $s6 +/* 06AC94 7F036164 02402825 */ move $a1, $s2 +/* 06AC98 7F036168 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC9C 7F03616C 92260002 */ lbu $a2, 2($s1) +/* 06ACA0 7F036170 00409025 */ move $s2, $v0 +/* 06ACA4 7F036174 1000FD05 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACA8 7F036178 02C28821 */ addu $s1, $s6, $v0 +.L7F03617C: +/* 06ACAC 7F03617C 26520003 */ addiu $s2, $s2, 3 +/* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 +action33_Seed_Random_Byte_1: +/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACBC 7F03618C 00000000 */ nop +/* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) +/* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 +/* 06ACC8 7F036198 1000FCFC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACCC 7F03619C 26310001 */ addiu $s1, $s1, 1 +action34_If_Seeded_Byte_LTV_Go_Into_RVL_3: +/* 06ACD0 7F0361A0 92F8010F */ lbu $t8, 0x10f($s7) +/* 06ACD4 7F0361A4 92290001 */ lbu $t1, 1($s1) +/* 06ACD8 7F0361A8 02C02025 */ move $a0, $s6 +/* 06ACDC 7F0361AC 02402825 */ move $a1, $s2 +/* 06ACE0 7F0361B0 0309082A */ slt $at, $t8, $t1 +/* 06ACE4 7F0361B4 50200007 */ beql $at, $zero, .L7F0361D4 +/* 06ACE8 7F0361B8 26520003 */ addiu $s2, $s2, 3 +/* 06ACEC 7F0361BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ACF0 7F0361C0 92260002 */ lbu $a2, 2($s1) +/* 06ACF4 7F0361C4 00409025 */ move $s2, $v0 +/* 06ACF8 7F0361C8 1000FCF0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACFC 7F0361CC 02C28821 */ addu $s1, $s6, $v0 +/* 06AD00 7F0361D0 26520003 */ addiu $s2, $s2, 3 +.L7F0361D4: +/* 06AD04 7F0361D4 1000FCED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD08 7F0361D8 26310003 */ addiu $s1, $s1, 3 +action35_If_Seeded_Byte_GTV_Go_Into_RVL_3: +/* 06AD0C 7F0361DC 922A0001 */ lbu $t2, 1($s1) +/* 06AD10 7F0361E0 92EB010F */ lbu $t3, 0x10f($s7) +/* 06AD14 7F0361E4 02C02025 */ move $a0, $s6 +/* 06AD18 7F0361E8 02402825 */ move $a1, $s2 +/* 06AD1C 7F0361EC 014B082A */ slt $at, $t2, $t3 +/* 06AD20 7F0361F0 50200007 */ beql $at, $zero, .L7F036210 +/* 06AD24 7F0361F4 26520003 */ addiu $s2, $s2, 3 +/* 06AD28 7F0361F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AD2C 7F0361FC 92260002 */ lbu $a2, 2($s1) +/* 06AD30 7F036200 00409025 */ move $s2, $v0 +/* 06AD34 7F036204 1000FCE1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD38 7F036208 02C28821 */ addu $s1, $s6, $v0 +/* 06AD3C 7F03620C 26520003 */ addiu $s2, $s2, 3 +.L7F036210: +/* 06AD40 7F036210 1000FCDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD44 7F036214 26310003 */ addiu $s1, $s1, 3 +action1C_Guard_Jogs_To_Preset_3: +/* 06AD48 7F036218 922C0001 */ lbu $t4, 1($s1) +/* 06AD4C 7F03621C 922D0002 */ lbu $t5, 2($s1) +/* 06AD50 7F036220 02E02025 */ move $a0, $s7 +/* 06AD54 7F036224 000CCA00 */ sll $t9, $t4, 8 +/* 06AD58 7F036228 032D1025 */ or $v0, $t9, $t5 +/* 06AD5C 7F03622C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AD60 7F036230 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD64 7F036234 24060001 */ li $a2, 1 +/* 06AD68 7F036238 26520003 */ addiu $s2, $s2, 3 +/* 06AD6C 7F03623C 1000FCD3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD70 7F036240 26310003 */ addiu $s1, $s1, 3 +action1D_Guard_Jogs_To_Predefined_Preset_2328_1: +/* 06AD74 7F036244 02E02025 */ move $a0, $s7 +/* 06AD78 7F036248 86E50114 */ lh $a1, 0x114($s7) +/* 06AD7C 7F03624C 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD80 7F036250 24060001 */ li $a2, 1 +/* 06AD84 7F036254 26520001 */ addiu $s2, $s2, 1 +/* 06AD88 7F036258 1000FCCC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD8C 7F03625C 26310001 */ addiu $s1, $s1, 1 +action1E_Guard_Walks_To_Preset_3: +/* 06AD90 7F036260 922F0001 */ lbu $t7, 1($s1) +/* 06AD94 7F036264 92290002 */ lbu $t1, 2($s1) +/* 06AD98 7F036268 02E02025 */ move $a0, $s7 +/* 06AD9C 7F03626C 000FC200 */ sll $t8, $t7, 8 +/* 06ADA0 7F036270 03091025 */ or $v0, $t8, $t1 +/* 06ADA4 7F036274 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADA8 7F036278 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADAC 7F03627C 00003025 */ move $a2, $zero +/* 06ADB0 7F036280 26520003 */ addiu $s2, $s2, 3 +/* 06ADB4 7F036284 1000FCC1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADB8 7F036288 26310003 */ addiu $s1, $s1, 3 +action1F_Guard_Runs__To_Preset_3: +/* 06ADBC 7F03628C 922B0001 */ lbu $t3, 1($s1) +/* 06ADC0 7F036290 92390002 */ lbu $t9, 2($s1) +/* 06ADC4 7F036294 02E02025 */ move $a0, $s7 +/* 06ADC8 7F036298 000B6200 */ sll $t4, $t3, 8 +/* 06ADCC 7F03629C 01991025 */ or $v0, $t4, $t9 +/* 06ADD0 7F0362A0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADD4 7F0362A4 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADD8 7F0362A8 24060002 */ li $a2, 2 +/* 06ADDC 7F0362AC 26520003 */ addiu $s2, $s2, 3 +/* 06ADE0 7F0362B0 1000FCB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADE4 7F0362B4 26310003 */ addiu $s1, $s1, 3 +action20_Activate_Path_2: +/* 06ADE8 7F0362B8 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06ADEC 7F0362BC 92240001 */ lbu $a0, 1($s1) +/* 06ADF0 7F0362C0 02E02025 */ move $a0, $s7 +/* 06ADF4 7F0362C4 0FC0AB55 */ jal if_actor_able_set_on_path +/* 06ADF8 7F0362C8 00402825 */ move $a1, $v0 +/* 06ADFC 7F0362CC 26520002 */ addiu $s2, $s2, 2 +/* 06AE00 7F0362D0 1000FCAE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE04 7F0362D4 26310002 */ addiu $s1, $s1, 2 +action36_If_Alarm_Activated_RVL_Plus_Stack_2: +/* 06AE08 7F0362D8 0FC0CDD8 */ jal alarm_timer_related +/* 06AE0C 7F0362DC 02E02025 */ move $a0, $s7 +/* 06AE10 7F0362E0 10400007 */ beqz $v0, .L7F036300 +/* 06AE14 7F0362E4 02C02025 */ move $a0, $s6 +/* 06AE18 7F0362E8 02402825 */ move $a1, $s2 +/* 06AE1C 7F0362EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE20 7F0362F0 92260001 */ lbu $a2, 1($s1) +/* 06AE24 7F0362F4 00409025 */ move $s2, $v0 +/* 06AE28 7F0362F8 1000FCA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE2C 7F0362FC 02C28821 */ addu $s1, $s6, $v0 +.L7F036300: +/* 06AE30 7F036300 26520002 */ addiu $s2, $s2, 2 +/* 06AE34 7F036304 1000FCA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE38 7F036308 26310002 */ addiu $s1, $s1, 2 +action37_If_Alarm_Activated_RVL_2: +/* 06AE3C 7F03630C 0FC15794 */ jal is_alarm_on +/* 06AE40 7F036310 00000000 */ nop +/* 06AE44 7F036314 10400007 */ beqz $v0, .L7F036334 +/* 06AE48 7F036318 02C02025 */ move $a0, $s6 +/* 06AE4C 7F03631C 02402825 */ move $a1, $s2 +/* 06AE50 7F036320 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE54 7F036324 92260001 */ lbu $a2, 1($s1) +/* 06AE58 7F036328 00409025 */ move $s2, $v0 +/* 06AE5C 7F03632C 1000FC97 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE60 7F036330 02C28821 */ addu $s1, $s6, $v0 +.L7F036334: +/* 06AE64 7F036334 26520002 */ addiu $s2, $s2, 2 +/* 06AE68 7F036338 1000FC94 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE6C 7F03633C 26310002 */ addiu $s1, $s1, 2 +action38_If_Toxic_Gas_Released_RVL_2: +/* 06AE70 7F036340 0FC157CE */ jal check_if_toxic_gas_activated +/* 06AE74 7F036344 00000000 */ nop +/* 06AE78 7F036348 10400007 */ beqz $v0, .L7F036368 +/* 06AE7C 7F03634C 02C02025 */ move $a0, $s6 +/* 06AE80 7F036350 02402825 */ move $a1, $s2 +/* 06AE84 7F036354 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE88 7F036358 92260001 */ lbu $a2, 1($s1) +/* 06AE8C 7F03635C 00409025 */ move $s2, $v0 +/* 06AE90 7F036360 1000FC8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE94 7F036364 02C28821 */ addu $s1, $s6, $v0 +.L7F036368: +/* 06AE98 7F036368 26520002 */ addiu $s2, $s2, 2 +/* 06AE9C 7F03636C 1000FC87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEA0 7F036370 26310002 */ addiu $s1, $s1, 2 +action39_If_Guard_Heard_Gunfire_RVL_2: +/* 06AEA4 7F036374 0FC0CCD5 */ jal check_if_actor_02_flag_set +/* 06AEA8 7F036378 02E02025 */ move $a0, $s7 +/* 06AEAC 7F03637C 10400007 */ beqz $v0, .L7F03639C +/* 06AEB0 7F036380 02C02025 */ move $a0, $s6 +/* 06AEB4 7F036384 02402825 */ move $a1, $s2 +/* 06AEB8 7F036388 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEBC 7F03638C 92260001 */ lbu $a2, 1($s1) +/* 06AEC0 7F036390 00409025 */ move $s2, $v0 +/* 06AEC4 7F036394 1000FC7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEC8 7F036398 02C28821 */ addu $s1, $s6, $v0 +.L7F03639C: +/* 06AECC 7F03639C 26520002 */ addiu $s2, $s2, 2 +/* 06AED0 7F0363A0 1000FC7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AED4 7F0363A4 26310002 */ addiu $s1, $s1, 2 +action3A_If_Bond_Shoots_Another_Guard_RVL_2: +/* 06AED8 7F0363A8 0FC0CD6D */ jal check_if_actor_FA_target_set +/* 06AEDC 7F0363AC 02E02025 */ move $a0, $s7 +/* 06AEE0 7F0363B0 10400007 */ beqz $v0, .L7F0363D0 +/* 06AEE4 7F0363B4 02C02025 */ move $a0, $s6 +/* 06AEE8 7F0363B8 02402825 */ move $a1, $s2 +/* 06AEEC 7F0363BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEF0 7F0363C0 92260001 */ lbu $a2, 1($s1) +/* 06AEF4 7F0363C4 00409025 */ move $s2, $v0 +/* 06AEF8 7F0363C8 1000FC70 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEFC 7F0363CC 02C28821 */ addu $s1, $s6, $v0 +.L7F0363D0: +/* 06AF00 7F0363D0 26520002 */ addiu $s2, $s2, 2 +/* 06AF04 7F0363D4 1000FC6D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF08 7F0363D8 26310002 */ addiu $s1, $s1, 2 +action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2: +/* 06AF0C 7F0363DC 0FC0CD71 */ jal check_if_actor_FB_target_set +/* 06AF10 7F0363E0 02E02025 */ move $a0, $s7 +/* 06AF14 7F0363E4 10400007 */ beqz $v0, .L7F036404 +/* 06AF18 7F0363E8 02C02025 */ move $a0, $s6 +/* 06AF1C 7F0363EC 02402825 */ move $a1, $s2 +/* 06AF20 7F0363F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF24 7F0363F4 92260001 */ lbu $a2, 1($s1) +/* 06AF28 7F0363F8 00409025 */ move $s2, $v0 +/* 06AF2C 7F0363FC 1000FC63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF30 7F036400 02C28821 */ addu $s1, $s6, $v0 +.L7F036404: +/* 06AF34 7F036404 26520002 */ addiu $s2, $s2, 2 +/* 06AF38 7F036408 1000FC60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF3C 7F03640C 26310002 */ addiu $s1, $s1, 2 +action3C_If_Guard_In_Firing_Range_RVL_2: +/* 06AF40 7F036410 0FC0A52F */ jal sub_GAME_7F0294BC +/* 06AF44 7F036414 02E02025 */ move $a0, $s7 +/* 06AF48 7F036418 10400007 */ beqz $v0, .L7F036438 +/* 06AF4C 7F03641C 02C02025 */ move $a0, $s6 +/* 06AF50 7F036420 02402825 */ move $a1, $s2 +/* 06AF54 7F036424 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF58 7F036428 92260001 */ lbu $a2, 1($s1) +/* 06AF5C 7F03642C 00409025 */ move $s2, $v0 +/* 06AF60 7F036430 1000FC56 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF64 7F036434 02C28821 */ addu $s1, $s6, $v0 +.L7F036438: +/* 06AF68 7F036438 26520002 */ addiu $s2, $s2, 2 +/* 06AF6C 7F03643C 1000FC53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF70 7F036440 26310002 */ addiu $s1, $s1, 2 +action3D___Unused___Unknown___2: +/* 06AF74 7F036444 0FC0CF71 */ jal sub_GAME_7F033DC4 +/* 06AF78 7F036448 02E02025 */ move $a0, $s7 +/* 06AF7C 7F03644C 10400007 */ beqz $v0, .L7F03646C +/* 06AF80 7F036450 02C02025 */ move $a0, $s6 +/* 06AF84 7F036454 02402825 */ move $a1, $s2 +/* 06AF88 7F036458 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF8C 7F03645C 92260001 */ lbu $a2, 1($s1) +/* 06AF90 7F036460 00409025 */ move $s2, $v0 +/* 06AF94 7F036464 1000FC49 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF98 7F036468 02C28821 */ addu $s1, $s6, $v0 +.L7F03646C: +/* 06AF9C 7F03646C 26520002 */ addiu $s2, $s2, 2 +/* 06AFA0 7F036470 1000FC46 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFA4 7F036474 26310002 */ addiu $s1, $s1, 2 +action3E_If_Shot_Current_Guard_RVL_2: +/* 06AFA8 7F036478 0FC0CADA */ jal sub_GAME_7F032B68 +/* 06AFAC 7F03647C 02E02025 */ move $a0, $s7 +/* 06AFB0 7F036480 10400007 */ beqz $v0, .L7F0364A0 +/* 06AFB4 7F036484 02C02025 */ move $a0, $s6 +/* 06AFB8 7F036488 02402825 */ move $a1, $s2 +/* 06AFBC 7F03648C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFC0 7F036490 92260001 */ lbu $a2, 1($s1) +/* 06AFC4 7F036494 00409025 */ move $s2, $v0 +/* 06AFC8 7F036498 1000FC3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFCC 7F03649C 02C28821 */ addu $s1, $s6, $v0 +.L7F0364A0: +/* 06AFD0 7F0364A0 26520002 */ addiu $s2, $s2, 2 +/* 06AFD4 7F0364A4 1000FC39 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFD8 7F0364A8 26310002 */ addiu $s1, $s1, 2 +action3F_If_Heard_Bond_RVL_2: +/* 06AFDC 7F0364AC 0FC0CAE8 */ jal sub_GAME_7F032BA0 +/* 06AFE0 7F0364B0 02E02025 */ move $a0, $s7 +/* 06AFE4 7F0364B4 10400007 */ beqz $v0, .L7F0364D4 +/* 06AFE8 7F0364B8 02C02025 */ move $a0, $s6 +/* 06AFEC 7F0364BC 02402825 */ move $a1, $s2 +/* 06AFF0 7F0364C0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFF4 7F0364C4 92260001 */ lbu $a2, 1($s1) +/* 06AFF8 7F0364C8 00409025 */ move $s2, $v0 +/* 06AFFC 7F0364CC 1000FC2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B000 7F0364D0 02C28821 */ addu $s1, $s6, $v0 +.L7F0364D4: +/* 06B004 7F0364D4 26520002 */ addiu $s2, $s2, 2 +/* 06B008 7F0364D8 1000FC2C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B00C 7F0364DC 26310002 */ addiu $s1, $s1, 2 +action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3: +/* 06B010 7F0364E0 02E02025 */ move $a0, $s7 +/* 06B014 7F0364E4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B018 7F0364E8 92250001 */ lbu $a1, 1($s1) +/* 06B01C 7F0364EC 50400012 */ beql $v0, $zero, .L7F036538 +/* 06B020 7F0364F0 26520003 */ addiu $s2, $s2, 3 +/* 06B024 7F0364F4 8C4E0018 */ lw $t6, 0x18($v0) +/* 06B028 7F0364F8 51C0000F */ beql $t6, $zero, .L7F036538 +/* 06B02C 7F0364FC 26520003 */ addiu $s2, $s2, 3 +/* 06B030 7F036500 8C420018 */ lw $v0, 0x18($v0) +/* 06B034 7F036504 02E02025 */ move $a0, $s7 +/* 06B038 7F036508 24450008 */ addiu $a1, $v0, 8 +/* 06B03C 7F03650C 0FC0A574 */ jal check_if_position_in_same_room +/* 06B040 7F036510 8C460014 */ lw $a2, 0x14($v0) +/* 06B044 7F036514 10400007 */ beqz $v0, .L7F036534 +/* 06B048 7F036518 02C02025 */ move $a0, $s6 +/* 06B04C 7F03651C 02402825 */ move $a1, $s2 +/* 06B050 7F036520 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B054 7F036524 92260002 */ lbu $a2, 2($s1) +/* 06B058 7F036528 00409025 */ move $s2, $v0 +/* 06B05C 7F03652C 1000FC17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B060 7F036530 02C28821 */ addu $s1, $s6, $v0 +.L7F036534: +/* 06B064 7F036534 26520003 */ addiu $s2, $s2, 3 +.L7F036538: +/* 06B068 7F036538 1000FC14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B06C 7F03653C 26310003 */ addiu $s1, $s1, 3 +action41_If_Guard_Has_Been_On_Screen_RVL_2: +/* 06B070 7F036540 8EEF0014 */ lw $t7, 0x14($s7) +/* 06B074 7F036544 02C02025 */ move $a0, $s6 +/* 06B078 7F036548 02402825 */ move $a1, $s2 +/* 06B07C 7F03654C 31F80008 */ andi $t8, $t7, 8 +/* 06B080 7F036550 57000007 */ bnezl $t8, .L7F036570 +/* 06B084 7F036554 26520002 */ addiu $s2, $s2, 2 +/* 06B088 7F036558 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B08C 7F03655C 92260001 */ lbu $a2, 1($s1) +/* 06B090 7F036560 00409025 */ move $s2, $v0 +/* 06B094 7F036564 1000FC09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B098 7F036568 02C28821 */ addu $s1, $s6, $v0 +/* 06B09C 7F03656C 26520002 */ addiu $s2, $s2, 2 +.L7F036570: +/* 06B0A0 7F036570 1000FC06 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0A4 7F036574 26310002 */ addiu $s1, $s1, 2 +action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2: +/* 06B0A8 7F036578 8EE90018 */ lw $t1, 0x18($s7) +/* 06B0AC 7F03657C 02C02025 */ move $a0, $s6 +/* 06B0B0 7F036580 02402825 */ move $a1, $s2 +/* 06B0B4 7F036584 912A0001 */ lbu $t2, 1($t1) +/* 06B0B8 7F036588 314B0002 */ andi $t3, $t2, 2 +/* 06B0BC 7F03658C 51600007 */ beql $t3, $zero, .L7F0365AC +/* 06B0C0 7F036590 26520002 */ addiu $s2, $s2, 2 +/* 06B0C4 7F036594 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B0C8 7F036598 92260001 */ lbu $a2, 1($s1) +/* 06B0CC 7F03659C 00409025 */ move $s2, $v0 +/* 06B0D0 7F0365A0 1000FBFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0D4 7F0365A4 02C28821 */ addu $s1, $s6, $v0 +/* 06B0D8 7F0365A8 26520002 */ addiu $s2, $s2, 2 +.L7F0365AC: +/* 06B0DC 7F0365AC 1000FBF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0E0 7F0365B0 26310002 */ addiu $s1, $s1, 2 +action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2: +/* 06B0E4 7F0365B4 8EEC0018 */ lw $t4, 0x18($s7) +/* 06B0E8 7F0365B8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06B0EC 7F0365BC 8D840014 */ lw $a0, 0x14($t4) +/* 06B0F0 7F0365C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06B0F4 7F0365C4 00402025 */ move $a0, $v0 +/* 06B0F8 7F0365C8 10400007 */ beqz $v0, .L7F0365E8 +/* 06B0FC 7F0365CC 02C02025 */ move $a0, $s6 +/* 06B100 7F0365D0 02402825 */ move $a1, $s2 +/* 06B104 7F0365D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B108 7F0365D8 92260001 */ lbu $a2, 1($s1) +/* 06B10C 7F0365DC 00409025 */ move $s2, $v0 +/* 06B110 7F0365E0 1000FBEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B114 7F0365E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0365E8: +/* 06B118 7F0365E8 26520002 */ addiu $s2, $s2, 2 +/* 06B11C 7F0365EC 1000FBE7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B120 7F0365F0 26310002 */ addiu $s1, $s1, 2 +action44_If_Room_Containing_Preset_Is_Loaded_RVL_4: +/* 06B124 7F0365F4 92390001 */ lbu $t9, 1($s1) +/* 06B128 7F0365F8 922E0002 */ lbu $t6, 2($s1) +/* 06B12C 7F0365FC 02E02025 */ move $a0, $s7 +/* 06B130 7F036600 00196A00 */ sll $t5, $t9, 8 +/* 06B134 7F036604 01AE1025 */ or $v0, $t5, $t6 +/* 06B138 7F036608 0FC0CBBF */ jal check_if_room_for_preset_loaded +/* 06B13C 7F03660C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B140 7F036610 10400007 */ beqz $v0, .L7F036630 +/* 06B144 7F036614 02C02025 */ move $a0, $s6 +/* 06B148 7F036618 02402825 */ move $a1, $s2 +/* 06B14C 7F03661C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B150 7F036620 92260003 */ lbu $a2, 3($s1) +/* 06B154 7F036624 00409025 */ move $s2, $v0 +/* 06B158 7F036628 1000FBD8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B15C 7F03662C 02C28821 */ addu $s1, $s6, $v0 +.L7F036630: +/* 06B160 7F036630 26520004 */ addiu $s2, $s2, 4 +/* 06B164 7F036634 1000FBD5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B168 7F036638 26310004 */ addiu $s1, $s1, 4 +action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2: +/* 06B16C 7F03663C 0FC0CCFE */ jal sub_GAME_7F0333F8 +/* 06B170 7F036640 02E02025 */ move $a0, $s7 +/* 06B174 7F036644 10400007 */ beqz $v0, .L7F036664 +/* 06B178 7F036648 02C02025 */ move $a0, $s6 +/* 06B17C 7F03664C 02402825 */ move $a1, $s2 +/* 06B180 7F036650 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B184 7F036654 92260001 */ lbu $a2, 1($s1) +/* 06B188 7F036658 00409025 */ move $s2, $v0 +/* 06B18C 7F03665C 1000FBCB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B190 7F036660 02C28821 */ addu $s1, $s6, $v0 +.L7F036664: +/* 06B194 7F036664 26520002 */ addiu $s2, $s2, 2 +/* 06B198 7F036668 1000FBC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B19C 7F03666C 26310002 */ addiu $s1, $s1, 2 +action46_If_Fired_A_Shot_RVL_2: +/* 06B1A0 7F036670 0FC0CD24 */ jal check_if_actor_invisible +/* 06B1A4 7F036674 02E02025 */ move $a0, $s7 +/* 06B1A8 7F036678 10400007 */ beqz $v0, .L7F036698 +/* 06B1AC 7F03667C 02C02025 */ move $a0, $s6 +/* 06B1B0 7F036680 02402825 */ move $a1, $s2 +/* 06B1B4 7F036684 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B1B8 7F036688 92260001 */ lbu $a2, 1($s1) +/* 06B1BC 7F03668C 00409025 */ move $s2, $v0 +/* 06B1C0 7F036690 1000FBBE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1C4 7F036694 02C28821 */ addu $s1, $s6, $v0 +.L7F036698: +/* 06B1C8 7F036698 26520002 */ addiu $s2, $s2, 2 +/* 06B1CC 7F03669C 1000FBBB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1D0 7F0366A0 26310002 */ addiu $s1, $s1, 2 +action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3: +/* 06B1D4 7F0366A4 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B1D8 7F0366A8 02E02025 */ move $a0, $s7 +/* 06B1DC 7F0366AC 92380001 */ lbu $t8, 1($s1) +/* 06B1E0 7F0366B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B1E4 7F0366B4 02C02025 */ move $a0, $s6 +/* 06B1E8 7F0366B8 44984000 */ mtc1 $t8, $f8 +/* 06B1EC 7F0366BC 02402825 */ move $a1, $s2 +/* 06B1F0 7F0366C0 07010004 */ bgez $t8, .L7F0366D4 +/* 06B1F4 7F0366C4 468042A0 */ cvt.s.w $f10, $f8 +/* 06B1F8 7F0366C8 44818000 */ mtc1 $at, $f16 +/* 06B1FC 7F0366CC 00000000 */ nop +/* 06B200 7F0366D0 46105280 */ add.s $f10, $f10, $f16 +.L7F0366D4: +/* 06B204 7F0366D4 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B208 7F0366D8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B20C 7F0366DC 44812000 */ mtc1 $at, $f4 +/* 06B210 7F0366E0 00000000 */ nop +/* 06B214 7F0366E4 46049182 */ mul.s $f6, $f18, $f4 +/* 06B218 7F0366E8 4606003C */ c.lt.s $f0, $f6 +/* 06B21C 7F0366EC 00000000 */ nop +/* 06B220 7F0366F0 45020007 */ bc1fl .L7F036710 +/* 06B224 7F0366F4 26520003 */ addiu $s2, $s2, 3 +/* 06B228 7F0366F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B22C 7F0366FC 92260002 */ lbu $a2, 2($s1) +/* 06B230 7F036700 00409025 */ move $s2, $v0 +/* 06B234 7F036704 1000FBA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B238 7F036708 02C28821 */ addu $s1, $s6, $v0 +/* 06B23C 7F03670C 26520003 */ addiu $s2, $s2, 3 +.L7F036710: +/* 06B240 7F036710 1000FB9E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B244 7F036714 26310003 */ addiu $s1, $s1, 3 +action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3: +/* 06B248 7F036718 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B24C 7F03671C 02E02025 */ move $a0, $s7 +/* 06B250 7F036720 92290001 */ lbu $t1, 1($s1) +/* 06B254 7F036724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B258 7F036728 02C02025 */ move $a0, $s6 +/* 06B25C 7F03672C 44894000 */ mtc1 $t1, $f8 +/* 06B260 7F036730 02402825 */ move $a1, $s2 +/* 06B264 7F036734 05210004 */ bgez $t1, .L7F036748 +/* 06B268 7F036738 46804420 */ cvt.s.w $f16, $f8 +/* 06B26C 7F03673C 44815000 */ mtc1 $at, $f10 +/* 06B270 7F036740 00000000 */ nop +/* 06B274 7F036744 460A8400 */ add.s $f16, $f16, $f10 +.L7F036748: +/* 06B278 7F036748 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B27C 7F03674C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B280 7F036750 44812000 */ mtc1 $at, $f4 +/* 06B284 7F036754 00000000 */ nop +/* 06B288 7F036758 46049182 */ mul.s $f6, $f18, $f4 +/* 06B28C 7F03675C 4600303C */ c.lt.s $f6, $f0 +/* 06B290 7F036760 00000000 */ nop +/* 06B294 7F036764 45020007 */ bc1fl .L7F036784 +/* 06B298 7F036768 26520003 */ addiu $s2, $s2, 3 +/* 06B29C 7F03676C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B2A0 7F036770 92260002 */ lbu $a2, 2($s1) +/* 06B2A4 7F036774 00409025 */ move $s2, $v0 +/* 06B2A8 7F036778 1000FB84 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2AC 7F03677C 02C28821 */ addu $s1, $s6, $v0 +/* 06B2B0 7F036780 26520003 */ addiu $s2, $s2, 3 +.L7F036784: +/* 06B2B4 7F036784 1000FB81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2B8 7F036788 26310003 */ addiu $s1, $s1, 3 +action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3: +/* 06B2BC 7F03678C 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B2C0 7F036790 02E02025 */ move $a0, $s7 +/* 06B2C4 7F036794 922A0001 */ lbu $t2, 1($s1) +/* 06B2C8 7F036798 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B2CC 7F03679C 02C02025 */ move $a0, $s6 +/* 06B2D0 7F0367A0 448A4000 */ mtc1 $t2, $f8 +/* 06B2D4 7F0367A4 02402825 */ move $a1, $s2 +/* 06B2D8 7F0367A8 05410004 */ bgez $t2, .L7F0367BC +/* 06B2DC 7F0367AC 468042A0 */ cvt.s.w $f10, $f8 +/* 06B2E0 7F0367B0 44818000 */ mtc1 $at, $f16 +/* 06B2E4 7F0367B4 00000000 */ nop +/* 06B2E8 7F0367B8 46105280 */ add.s $f10, $f10, $f16 +.L7F0367BC: +/* 06B2EC 7F0367BC 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B2F0 7F0367C0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B2F4 7F0367C4 44812000 */ mtc1 $at, $f4 +/* 06B2F8 7F0367C8 00000000 */ nop +/* 06B2FC 7F0367CC 46049182 */ mul.s $f6, $f18, $f4 +/* 06B300 7F0367D0 4606003C */ c.lt.s $f0, $f6 +/* 06B304 7F0367D4 00000000 */ nop +/* 06B308 7F0367D8 45020007 */ bc1fl .L7F0367F8 +/* 06B30C 7F0367DC 26520003 */ addiu $s2, $s2, 3 +/* 06B310 7F0367E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B314 7F0367E4 92260002 */ lbu $a2, 2($s1) +/* 06B318 7F0367E8 00409025 */ move $s2, $v0 +/* 06B31C 7F0367EC 1000FB67 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B320 7F0367F0 02C28821 */ addu $s1, $s6, $v0 +/* 06B324 7F0367F4 26520003 */ addiu $s2, $s2, 3 +.L7F0367F8: +/* 06B328 7F0367F8 1000FB64 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B32C 7F0367FC 26310003 */ addiu $s1, $s1, 3 +action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3: +/* 06B330 7F036800 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B334 7F036804 02E02025 */ move $a0, $s7 +/* 06B338 7F036808 922B0001 */ lbu $t3, 1($s1) +/* 06B33C 7F03680C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B340 7F036810 02C02025 */ move $a0, $s6 +/* 06B344 7F036814 448B4000 */ mtc1 $t3, $f8 +/* 06B348 7F036818 02402825 */ move $a1, $s2 +/* 06B34C 7F03681C 05610004 */ bgez $t3, .L7F036830 +/* 06B350 7F036820 46804420 */ cvt.s.w $f16, $f8 +/* 06B354 7F036824 44815000 */ mtc1 $at, $f10 +/* 06B358 7F036828 00000000 */ nop +/* 06B35C 7F03682C 460A8400 */ add.s $f16, $f16, $f10 +.L7F036830: +/* 06B360 7F036830 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B364 7F036834 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B368 7F036838 44812000 */ mtc1 $at, $f4 +/* 06B36C 7F03683C 00000000 */ nop +/* 06B370 7F036840 46049182 */ mul.s $f6, $f18, $f4 +/* 06B374 7F036844 4600303C */ c.lt.s $f6, $f0 +/* 06B378 7F036848 00000000 */ nop +/* 06B37C 7F03684C 45020007 */ bc1fl .L7F03686C +/* 06B380 7F036850 26520003 */ addiu $s2, $s2, 3 +/* 06B384 7F036854 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B388 7F036858 92260002 */ lbu $a2, 2($s1) +/* 06B38C 7F03685C 00409025 */ move $s2, $v0 +/* 06B390 7F036860 1000FB4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B394 7F036864 02C28821 */ addu $s1, $s6, $v0 +/* 06B398 7F036868 26520003 */ addiu $s2, $s2, 3 +.L7F03686C: +/* 06B39C 7F03686C 1000FB47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3A0 7F036870 26310003 */ addiu $s1, $s1, 3 +action4B_RVL_If_In_Proximity_Of_Bond_4: +/* 06B3A4 7F036874 922C0001 */ lbu $t4, 1($s1) +/* 06B3A8 7F036878 922D0002 */ lbu $t5, 2($s1) +/* 06B3AC 7F03687C 02E02025 */ move $a0, $s7 +/* 06B3B0 7F036880 000CCA00 */ sll $t9, $t4, 8 +/* 06B3B4 7F036884 032D7025 */ or $t6, $t9, $t5 +/* 06B3B8 7F036888 448E4000 */ mtc1 $t6, $f8 +/* 06B3BC 7F03688C 00000000 */ nop +/* 06B3C0 7F036890 468042A0 */ cvt.s.w $f10, $f8 +/* 06B3C4 7F036894 46185402 */ mul.s $f16, $f10, $f24 +/* 06B3C8 7F036898 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B3CC 7F03689C E7B005FC */ swc1 $f16, 0x5fc($sp) +/* 06B3D0 7F0368A0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 06B3D4 7F0368A4 02C02025 */ move $a0, $s6 +/* 06B3D8 7F0368A8 02402825 */ move $a1, $s2 +/* 06B3DC 7F0368AC 4612003C */ c.lt.s $f0, $f18 +/* 06B3E0 7F0368B0 00000000 */ nop +/* 06B3E4 7F0368B4 45020007 */ bc1fl .L7F0368D4 +/* 06B3E8 7F0368B8 26520004 */ addiu $s2, $s2, 4 +/* 06B3EC 7F0368BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B3F0 7F0368C0 92260003 */ lbu $a2, 3($s1) +/* 06B3F4 7F0368C4 00409025 */ move $s2, $v0 +/* 06B3F8 7F0368C8 1000FB30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3FC 7F0368CC 02C28821 */ addu $s1, $s6, $v0 +/* 06B400 7F0368D0 26520004 */ addiu $s2, $s2, 4 +.L7F0368D4: +/* 06B404 7F0368D4 1000FB2D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B408 7F0368D8 26310004 */ addiu $s1, $s1, 4 +action4C_RVL_If_Not_In_Proximity_Of_Bond_4: +/* 06B40C 7F0368DC 922F0001 */ lbu $t7, 1($s1) +/* 06B410 7F0368E0 92290002 */ lbu $t1, 2($s1) +/* 06B414 7F0368E4 02E02025 */ move $a0, $s7 +/* 06B418 7F0368E8 000FC200 */ sll $t8, $t7, 8 +/* 06B41C 7F0368EC 03095025 */ or $t2, $t8, $t1 +/* 06B420 7F0368F0 448A2000 */ mtc1 $t2, $f4 +/* 06B424 7F0368F4 00000000 */ nop +/* 06B428 7F0368F8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B42C 7F0368FC 46183202 */ mul.s $f8, $f6, $f24 +/* 06B430 7F036900 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B434 7F036904 E7A805F4 */ swc1 $f8, 0x5f4($sp) +/* 06B438 7F036908 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 06B43C 7F03690C 02C02025 */ move $a0, $s6 +/* 06B440 7F036910 02402825 */ move $a1, $s2 +/* 06B444 7F036914 4600503C */ c.lt.s $f10, $f0 +/* 06B448 7F036918 00000000 */ nop +/* 06B44C 7F03691C 45020007 */ bc1fl .L7F03693C +/* 06B450 7F036920 26520004 */ addiu $s2, $s2, 4 +/* 06B454 7F036924 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B458 7F036928 92260003 */ lbu $a2, 3($s1) +/* 06B45C 7F03692C 00409025 */ move $s2, $v0 +/* 06B460 7F036930 1000FB16 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B464 7F036934 02C28821 */ addu $s1, $s6, $v0 +/* 06B468 7F036938 26520004 */ addiu $s2, $s2, 4 +.L7F03693C: +/* 06B46C 7F03693C 1000FB13 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B470 7F036940 26310004 */ addiu $s1, $s1, 4 +action4D_When_Guard_In_Proximity_Of_Preset_RVL_7: +/* 06B474 7F036944 02E02025 */ move $a0, $s7 +/* 06B478 7F036948 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B47C 7F03694C 92250001 */ lbu $a1, 1($s1) +/* 06B480 7F036950 922E0002 */ lbu $t6, 2($s1) +/* 06B484 7F036954 92380003 */ lbu $t8, 3($s1) +/* 06B488 7F036958 922B0004 */ lbu $t3, 4($s1) +/* 06B48C 7F03695C 000E7A00 */ sll $t7, $t6, 8 +/* 06B490 7F036960 01F84825 */ or $t1, $t7, $t8 +/* 06B494 7F036964 44898000 */ mtc1 $t1, $f16 +/* 06B498 7F036968 92390005 */ lbu $t9, 5($s1) +/* 06B49C 7F03696C 000B6200 */ sll $t4, $t3, 8 +/* 06B4A0 7F036970 468084A0 */ cvt.s.w $f18, $f16 +/* 06B4A4 7F036974 01991825 */ or $v1, $t4, $t9 +/* 06B4A8 7F036978 306DFFFF */ andi $t5, $v1, 0xffff +/* 06B4AC 7F03697C 00402025 */ move $a0, $v0 +/* 06B4B0 7F036980 01A02825 */ move $a1, $t5 +/* 06B4B4 7F036984 46189082 */ mul.s $f2, $f18, $f24 +/* 06B4B8 7F036988 50400010 */ beql $v0, $zero, .L7F0369CC +/* 06B4BC 7F03698C 26520007 */ addiu $s2, $s2, 7 +/* 06B4C0 7F036990 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B4C4 7F036994 E7A205E4 */ swc1 $f2, 0x5e4($sp) +/* 06B4C8 7F036998 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 06B4CC 7F03699C 02C02025 */ move $a0, $s6 +/* 06B4D0 7F0369A0 02402825 */ move $a1, $s2 +/* 06B4D4 7F0369A4 4602003C */ c.lt.s $f0, $f2 +/* 06B4D8 7F0369A8 00000000 */ nop +/* 06B4DC 7F0369AC 45020007 */ bc1fl .L7F0369CC +/* 06B4E0 7F0369B0 26520007 */ addiu $s2, $s2, 7 +/* 06B4E4 7F0369B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B4E8 7F0369B8 92260006 */ lbu $a2, 6($s1) +/* 06B4EC 7F0369BC 00409025 */ move $s2, $v0 +/* 06B4F0 7F0369C0 1000FAF2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B4F4 7F0369C4 02C28821 */ addu $s1, $s6, $v0 +/* 06B4F8 7F0369C8 26520007 */ addiu $s2, $s2, 7 +.L7F0369CC: +/* 06B4FC 7F0369CC 1000FAEF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B500 7F0369D0 26310007 */ addiu $s1, $s1, 7 +action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7: +/* 06B504 7F0369D4 02E02025 */ move $a0, $s7 +/* 06B508 7F0369D8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B50C 7F0369DC 92250001 */ lbu $a1, 1($s1) +/* 06B510 7F0369E0 922D0002 */ lbu $t5, 2($s1) +/* 06B514 7F0369E4 922F0003 */ lbu $t7, 3($s1) +/* 06B518 7F0369E8 922A0004 */ lbu $t2, 4($s1) +/* 06B51C 7F0369EC 000D7200 */ sll $t6, $t5, 8 +/* 06B520 7F0369F0 01CFC025 */ or $t8, $t6, $t7 +/* 06B524 7F0369F4 44982000 */ mtc1 $t8, $f4 +/* 06B528 7F0369F8 922C0005 */ lbu $t4, 5($s1) +/* 06B52C 7F0369FC 000A5A00 */ sll $t3, $t2, 8 +/* 06B530 7F036A00 468021A0 */ cvt.s.w $f6, $f4 +/* 06B534 7F036A04 016C1825 */ or $v1, $t3, $t4 +/* 06B538 7F036A08 3079FFFF */ andi $t9, $v1, 0xffff +/* 06B53C 7F036A0C 00402025 */ move $a0, $v0 +/* 06B540 7F036A10 03202825 */ move $a1, $t9 +/* 06B544 7F036A14 46183082 */ mul.s $f2, $f6, $f24 +/* 06B548 7F036A18 50400010 */ beql $v0, $zero, .L7F036A5C +/* 06B54C 7F036A1C 26520007 */ addiu $s2, $s2, 7 +/* 06B550 7F036A20 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B554 7F036A24 E7A205D4 */ swc1 $f2, 0x5d4($sp) +/* 06B558 7F036A28 C7A205D4 */ lwc1 $f2, 0x5d4($sp) +/* 06B55C 7F036A2C 02C02025 */ move $a0, $s6 +/* 06B560 7F036A30 02402825 */ move $a1, $s2 +/* 06B564 7F036A34 4600103C */ c.lt.s $f2, $f0 +/* 06B568 7F036A38 00000000 */ nop +/* 06B56C 7F036A3C 45020007 */ bc1fl .L7F036A5C +/* 06B570 7F036A40 26520007 */ addiu $s2, $s2, 7 +/* 06B574 7F036A44 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B578 7F036A48 92260006 */ lbu $a2, 6($s1) +/* 06B57C 7F036A4C 00409025 */ move $s2, $v0 +/* 06B580 7F036A50 1000FACE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B584 7F036A54 02C28821 */ addu $s1, $s6, $v0 +/* 06B588 7F036A58 26520007 */ addiu $s2, $s2, 7 +.L7F036A5C: +/* 06B58C 7F036A5C 1000FACB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B590 7F036A60 26310007 */ addiu $s1, $s1, 7 +action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5: +/* 06B594 7F036A64 92290001 */ lbu $t1, 1($s1) +/* 06B598 7F036A68 922B0002 */ lbu $t3, 2($s1) +/* 06B59C 7F036A6C 02E02025 */ move $a0, $s7 +/* 06B5A0 7F036A70 00095200 */ sll $t2, $t1, 8 +/* 06B5A4 7F036A74 014B6025 */ or $t4, $t2, $t3 +/* 06B5A8 7F036A78 448C4000 */ mtc1 $t4, $f8 +/* 06B5AC 7F036A7C 00000000 */ nop +/* 06B5B0 7F036A80 468042A0 */ cvt.s.w $f10, $f8 +/* 06B5B4 7F036A84 46185402 */ mul.s $f16, $f10, $f24 +/* 06B5B8 7F036A88 E7B005CC */ swc1 $f16, 0x5cc($sp) +/* 06B5BC 7F036A8C 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B5C0 7F036A90 92250003 */ lbu $a1, 3($s1) +/* 06B5C4 7F036A94 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 06B5C8 7F036A98 02C02025 */ move $a0, $s6 +/* 06B5CC 7F036A9C 02402825 */ move $a1, $s2 +/* 06B5D0 7F036AA0 4612003C */ c.lt.s $f0, $f18 +/* 06B5D4 7F036AA4 00000000 */ nop +/* 06B5D8 7F036AA8 45020007 */ bc1fl .L7F036AC8 +/* 06B5DC 7F036AAC 26520005 */ addiu $s2, $s2, 5 +/* 06B5E0 7F036AB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B5E4 7F036AB4 92260004 */ lbu $a2, 4($s1) +/* 06B5E8 7F036AB8 00409025 */ move $s2, $v0 +/* 06B5EC 7F036ABC 1000FAB3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5F0 7F036AC0 02C28821 */ addu $s1, $s6, $v0 +/* 06B5F4 7F036AC4 26520005 */ addiu $s2, $s2, 5 +.L7F036AC8: +/* 06B5F8 7F036AC8 1000FAB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5FC 7F036ACC 26310005 */ addiu $s1, $s1, 5 +action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5: +/* 06B600 7F036AD0 92390001 */ lbu $t9, 1($s1) +/* 06B604 7F036AD4 922E0002 */ lbu $t6, 2($s1) +/* 06B608 7F036AD8 02E02025 */ move $a0, $s7 +/* 06B60C 7F036ADC 00196A00 */ sll $t5, $t9, 8 +/* 06B610 7F036AE0 01AE7825 */ or $t7, $t5, $t6 +/* 06B614 7F036AE4 448F2000 */ mtc1 $t7, $f4 +/* 06B618 7F036AE8 00000000 */ nop +/* 06B61C 7F036AEC 468021A0 */ cvt.s.w $f6, $f4 +/* 06B620 7F036AF0 46183202 */ mul.s $f8, $f6, $f24 +/* 06B624 7F036AF4 E7A805C4 */ swc1 $f8, 0x5c4($sp) +/* 06B628 7F036AF8 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B62C 7F036AFC 92250003 */ lbu $a1, 3($s1) +/* 06B630 7F036B00 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 06B634 7F036B04 02C02025 */ move $a0, $s6 +/* 06B638 7F036B08 02402825 */ move $a1, $s2 +/* 06B63C 7F036B0C 4600503C */ c.lt.s $f10, $f0 +/* 06B640 7F036B10 00000000 */ nop +/* 06B644 7F036B14 45020007 */ bc1fl .L7F036B34 +/* 06B648 7F036B18 26520005 */ addiu $s2, $s2, 5 +/* 06B64C 7F036B1C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B650 7F036B20 92260004 */ lbu $a2, 4($s1) +/* 06B654 7F036B24 00409025 */ move $s2, $v0 +/* 06B658 7F036B28 1000FA98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B65C 7F036B2C 02C28821 */ addu $s1, $s6, $v0 +/* 06B660 7F036B30 26520005 */ addiu $s2, $s2, 5 +.L7F036B34: +/* 06B664 7F036B34 1000FA95 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B668 7F036B38 26310005 */ addiu $s1, $s1, 5 +action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4: +/* 06B66C 7F036B3C 92380001 */ lbu $t8, 1($s1) +/* 06B670 7F036B40 922A0002 */ lbu $t2, 2($s1) +/* 06B674 7F036B44 02E02025 */ move $a0, $s7 +/* 06B678 7F036B48 00184A00 */ sll $t1, $t8, 8 +/* 06B67C 7F036B4C 012A5825 */ or $t3, $t1, $t2 +/* 06B680 7F036B50 448B8000 */ mtc1 $t3, $f16 +/* 06B684 7F036B54 00000000 */ nop +/* 06B688 7F036B58 468084A0 */ cvt.s.w $f18, $f16 +/* 06B68C 7F036B5C 46189002 */ mul.s $f0, $f18, $f24 +/* 06B690 7F036B60 44050000 */ mfc1 $a1, $f0 +/* 06B694 7F036B64 0FC0CECE */ jal sub_GAME_7F033B38 +/* 06B698 7F036B68 00000000 */ nop +/* 06B69C 7F036B6C 10400007 */ beqz $v0, .L7F036B8C +/* 06B6A0 7F036B70 02C02025 */ move $a0, $s6 +/* 06B6A4 7F036B74 02402825 */ move $a1, $s2 +/* 06B6A8 7F036B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B6AC 7F036B7C 92260003 */ lbu $a2, 3($s1) +/* 06B6B0 7F036B80 00409025 */ move $s2, $v0 +/* 06B6B4 7F036B84 1000FA81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6B8 7F036B88 02C28821 */ addu $s1, $s6, $v0 +.L7F036B8C: +/* 06B6BC 7F036B8C 26520004 */ addiu $s2, $s2, 4 +/* 06B6C0 7F036B90 1000FA7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6C4 7F036B94 26310004 */ addiu $s1, $s1, 4 +action52_GoIntoRVLIf_In_Units_Of_Preset_6: +/* 06B6C8 7F036B98 922F0001 */ lbu $t7, 1($s1) +/* 06B6CC 7F036B9C 92290002 */ lbu $t1, 2($s1) +/* 06B6D0 7F036BA0 922C0003 */ lbu $t4, 3($s1) +/* 06B6D4 7F036BA4 000FC200 */ sll $t8, $t7, 8 +/* 06B6D8 7F036BA8 03095025 */ or $t2, $t8, $t1 +/* 06B6DC 7F036BAC 448A2000 */ mtc1 $t2, $f4 +/* 06B6E0 7F036BB0 922D0004 */ lbu $t5, 4($s1) +/* 06B6E4 7F036BB4 000CCA00 */ sll $t9, $t4, 8 +/* 06B6E8 7F036BB8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B6EC 7F036BBC 032D1025 */ or $v0, $t9, $t5 +/* 06B6F0 7F036BC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B6F4 7F036BC4 02E02025 */ move $a0, $s7 +/* 06B6F8 7F036BC8 46183202 */ mul.s $f8, $f6, $f24 +/* 06B6FC 7F036BCC 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B700 7F036BD0 E7A805B0 */ swc1 $f8, 0x5b0($sp) +/* 06B704 7F036BD4 C7AA05B0 */ lwc1 $f10, 0x5b0($sp) +/* 06B708 7F036BD8 02C02025 */ move $a0, $s6 +/* 06B70C 7F036BDC 02402825 */ move $a1, $s2 +/* 06B710 7F036BE0 460A003C */ c.lt.s $f0, $f10 +/* 06B714 7F036BE4 00000000 */ nop +/* 06B718 7F036BE8 45020007 */ bc1fl .L7F036C08 +/* 06B71C 7F036BEC 26520006 */ addiu $s2, $s2, 6 +/* 06B720 7F036BF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B724 7F036BF4 92260005 */ lbu $a2, 5($s1) +/* 06B728 7F036BF8 00409025 */ move $s2, $v0 +/* 06B72C 7F036BFC 1000FA63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B730 7F036C00 02C28821 */ addu $s1, $s6, $v0 +/* 06B734 7F036C04 26520006 */ addiu $s2, $s2, 6 +.L7F036C08: +/* 06B738 7F036C08 1000FA60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B73C 7F036C0C 26310006 */ addiu $s1, $s1, 6 +action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6: +/* 06B740 7F036C10 922E0001 */ lbu $t6, 1($s1) +/* 06B744 7F036C14 92380002 */ lbu $t8, 2($s1) +/* 06B748 7F036C18 922B0003 */ lbu $t3, 3($s1) +/* 06B74C 7F036C1C 000E7A00 */ sll $t7, $t6, 8 +/* 06B750 7F036C20 01F84825 */ or $t1, $t7, $t8 +/* 06B754 7F036C24 44898000 */ mtc1 $t1, $f16 +/* 06B758 7F036C28 92390004 */ lbu $t9, 4($s1) +/* 06B75C 7F036C2C 000B6200 */ sll $t4, $t3, 8 +/* 06B760 7F036C30 468084A0 */ cvt.s.w $f18, $f16 +/* 06B764 7F036C34 01991025 */ or $v0, $t4, $t9 +/* 06B768 7F036C38 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B76C 7F036C3C 02E02025 */ move $a0, $s7 +/* 06B770 7F036C40 46189102 */ mul.s $f4, $f18, $f24 +/* 06B774 7F036C44 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B778 7F036C48 E7A405A4 */ swc1 $f4, 0x5a4($sp) +/* 06B77C 7F036C4C C7A605A4 */ lwc1 $f6, 0x5a4($sp) +/* 06B780 7F036C50 02C02025 */ move $a0, $s6 +/* 06B784 7F036C54 02402825 */ move $a1, $s2 +/* 06B788 7F036C58 4600303C */ c.lt.s $f6, $f0 +/* 06B78C 7F036C5C 00000000 */ nop +/* 06B790 7F036C60 45020007 */ bc1fl .L7F036C80 +/* 06B794 7F036C64 26520006 */ addiu $s2, $s2, 6 +/* 06B798 7F036C68 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B79C 7F036C6C 92260005 */ lbu $a2, 5($s1) +/* 06B7A0 7F036C70 00409025 */ move $s2, $v0 +/* 06B7A4 7F036C74 1000FA45 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7A8 7F036C78 02C28821 */ addu $s1, $s6, $v0 +/* 06B7AC 7F036C7C 26520006 */ addiu $s2, $s2, 6 +.L7F036C80: +/* 06B7B0 7F036C80 1000FA42 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7B4 7F036C84 26310006 */ addiu $s1, $s1, 6 +action54_GoIntoRVLIf_Guard_Is_At_Preset_5: +/* 06B7B8 7F036C88 922A0002 */ lbu $t2, 2($s1) +/* 06B7BC 7F036C8C 922C0003 */ lbu $t4, 3($s1) +/* 06B7C0 7F036C90 02E02025 */ move $a0, $s7 +/* 06B7C4 7F036C94 000A5A00 */ sll $t3, $t2, 8 +/* 06B7C8 7F036C98 016C1025 */ or $v0, $t3, $t4 +/* 06B7CC 7F036C9C 3046FFFF */ andi $a2, $v0, 0xffff +/* 06B7D0 7F036CA0 0FC0D0E2 */ jal check_if_actorID_is_at_preset +/* 06B7D4 7F036CA4 92250001 */ lbu $a1, 1($s1) +/* 06B7D8 7F036CA8 10400007 */ beqz $v0, .L7F036CC8 +/* 06B7DC 7F036CAC 02C02025 */ move $a0, $s6 +/* 06B7E0 7F036CB0 02402825 */ move $a1, $s2 +/* 06B7E4 7F036CB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B7E8 7F036CB8 92260004 */ lbu $a2, 4($s1) +/* 06B7EC 7F036CBC 00409025 */ move $s2, $v0 +/* 06B7F0 7F036CC0 1000FA32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7F4 7F036CC4 02C28821 */ addu $s1, $s6, $v0 +.L7F036CC8: +/* 06B7F8 7F036CC8 26520005 */ addiu $s2, $s2, 5 +/* 06B7FC 7F036CCC 1000FA2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B800 7F036CD0 26310005 */ addiu $s1, $s1, 5 +action55_GoIntoRVLIf_Entered_Room_with_Preset_4: +/* 06B804 7F036CD4 922D0001 */ lbu $t5, 1($s1) +/* 06B808 7F036CD8 922F0002 */ lbu $t7, 2($s1) +/* 06B80C 7F036CDC 02E02025 */ move $a0, $s7 +/* 06B810 7F036CE0 000D7200 */ sll $t6, $t5, 8 +/* 06B814 7F036CE4 01CF1025 */ or $v0, $t6, $t7 +/* 06B818 7F036CE8 0FC0D113 */ jal check_if_actor_is_at_preset +/* 06B81C 7F036CEC 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B820 7F036CF0 10400007 */ beqz $v0, .L7F036D10 +/* 06B824 7F036CF4 02C02025 */ move $a0, $s6 +/* 06B828 7F036CF8 02402825 */ move $a1, $s2 +/* 06B82C 7F036CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B830 7F036D00 92260003 */ lbu $a2, 3($s1) +/* 06B834 7F036D04 00409025 */ move $s2, $v0 +/* 06B838 7F036D08 1000FA20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B83C 7F036D0C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D10: +/* 06B840 7F036D10 26520004 */ addiu $s2, $s2, 4 +/* 06B844 7F036D14 1000FA1D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B848 7F036D18 26310004 */ addiu $s1, $s1, 4 +action56_GoIntoRVLIf_16_Object_num_Collected_3: +/* 06B84C 7F036D1C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B850 7F036D20 92240001 */ lbu $a0, 1($s1) +/* 06B854 7F036D24 5040000F */ beql $v0, $zero, .L7F036D64 +/* 06B858 7F036D28 26520003 */ addiu $s2, $s2, 3 +/* 06B85C 7F036D2C 8C490010 */ lw $t1, 0x10($v0) +/* 06B860 7F036D30 5120000C */ beql $t1, $zero, .L7F036D64 +/* 06B864 7F036D34 26520003 */ addiu $s2, $s2, 3 +/* 06B868 7F036D38 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 06B86C 7F036D3C 8C440010 */ lw $a0, 0x10($v0) +/* 06B870 7F036D40 10400007 */ beqz $v0, .L7F036D60 +/* 06B874 7F036D44 02C02025 */ move $a0, $s6 +/* 06B878 7F036D48 02402825 */ move $a1, $s2 +/* 06B87C 7F036D4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B880 7F036D50 92260002 */ lbu $a2, 2($s1) +/* 06B884 7F036D54 00409025 */ move $s2, $v0 +/* 06B888 7F036D58 1000FA0C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B88C 7F036D5C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D60: +/* 06B890 7F036D60 26520003 */ addiu $s2, $s2, 3 +.L7F036D64: +/* 06B894 7F036D64 1000FA09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B898 7F036D68 26310003 */ addiu $s1, $s1, 3 +action57_GoIntoRVLIf_Specified_Weapon_Deposited_3: +/* 06B89C 7F036D6C 0FC146BB */ jal check_if_item_deposited +/* 06B8A0 7F036D70 92240001 */ lbu $a0, 1($s1) +/* 06B8A4 7F036D74 10400007 */ beqz $v0, .L7F036D94 +/* 06B8A8 7F036D78 02C02025 */ move $a0, $s6 +/* 06B8AC 7F036D7C 02402825 */ move $a1, $s2 +/* 06B8B0 7F036D80 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B8B4 7F036D84 92260002 */ lbu $a2, 2($s1) +/* 06B8B8 7F036D88 00409025 */ move $s2, $v0 +/* 06B8BC 7F036D8C 1000F9FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8C0 7F036D90 02C28821 */ addu $s1, $s6, $v0 +.L7F036D94: +/* 06B8C4 7F036D94 26520003 */ addiu $s2, $s2, 3 +/* 06B8C8 7F036D98 1000F9FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8CC 7F036D9C 26310003 */ addiu $s1, $s1, 3 +action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4: +/* 06B8D0 7F036DA0 92240002 */ lbu $a0, 2($s1) +/* 06B8D4 7F036DA4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B8D8 7F036DA8 00008025 */ move $s0, $zero +/* 06B8DC 7F036DAC 10400015 */ beqz $v0, .L7F036E04 +/* 06B8E0 7F036DB0 02402825 */ move $a1, $s2 +/* 06B8E4 7F036DB4 8C440010 */ lw $a0, 0x10($v0) +/* 06B8E8 7F036DB8 10800012 */ beqz $a0, .L7F036E04 +/* 06B8EC 7F036DBC 00000000 */ nop +/* 06B8F0 7F036DC0 8C830020 */ lw $v1, 0x20($a0) +/* 06B8F4 7F036DC4 1060000F */ beqz $v1, .L7F036E04 +/* 06B8F8 7F036DC8 00000000 */ nop +/* 06B8FC 7F036DCC 906A0000 */ lbu $t2, ($v1) +.L7F036DD0: +/* 06B900 7F036DD0 24010004 */ li $at, 4 +/* 06B904 7F036DD4 55410009 */ bnel $t2, $at, .L7F036DFC +/* 06B908 7F036DD8 8C630024 */ lw $v1, 0x24($v1) +/* 06B90C 7F036DDC 8C620004 */ lw $v0, 4($v1) +/* 06B910 7F036DE0 922B0001 */ lbu $t3, 1($s1) +/* 06B914 7F036DE4 804C0080 */ lb $t4, 0x80($v0) +/* 06B918 7F036DE8 556C0004 */ bnel $t3, $t4, .L7F036DFC +/* 06B91C 7F036DEC 8C630024 */ lw $v1, 0x24($v1) +/* 06B920 7F036DF0 10000004 */ b .L7F036E04 +/* 06B924 7F036DF4 24100001 */ li $s0, 1 +/* 06B928 7F036DF8 8C630024 */ lw $v1, 0x24($v1) +.L7F036DFC: +/* 06B92C 7F036DFC 5460FFF4 */ bnezl $v1, .L7F036DD0 +/* 06B930 7F036E00 906A0000 */ lbu $t2, ($v1) +.L7F036E04: +/* 06B934 7F036E04 12000006 */ beqz $s0, .L7F036E20 +/* 06B938 7F036E08 02C02025 */ move $a0, $s6 +/* 06B93C 7F036E0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B940 7F036E10 92260003 */ lbu $a2, 3($s1) +/* 06B944 7F036E14 00409025 */ move $s2, $v0 +/* 06B948 7F036E18 1000F9DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B94C 7F036E1C 02C28821 */ addu $s1, $s6, $v0 +.L7F036E20: +/* 06B950 7F036E20 26520004 */ addiu $s2, $s2, 4 +/* 06B954 7F036E24 1000F9D9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B958 7F036E28 26310004 */ addiu $s1, $s1, 4 +action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3: +/* 06B95C 7F036E2C 0FC17674 */ jal get_item_in_hand +/* 06B960 7F036E30 00002025 */ move $a0, $zero +/* 06B964 7F036E34 92390001 */ lbu $t9, 1($s1) +/* 06B968 7F036E38 50590006 */ beql $v0, $t9, .L7F036E54 +/* 06B96C 7F036E3C 02C02025 */ move $a0, $s6 +/* 06B970 7F036E40 0FC17674 */ jal get_item_in_hand +/* 06B974 7F036E44 24040001 */ li $a0, 1 +/* 06B978 7F036E48 922D0001 */ lbu $t5, 1($s1) +/* 06B97C 7F036E4C 144D0007 */ bne $v0, $t5, .L7F036E6C +/* 06B980 7F036E50 02C02025 */ move $a0, $s6 +.L7F036E54: +/* 06B984 7F036E54 02402825 */ move $a1, $s2 +/* 06B988 7F036E58 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B98C 7F036E5C 92260002 */ lbu $a2, 2($s1) +/* 06B990 7F036E60 00409025 */ move $s2, $v0 +/* 06B994 7F036E64 1000F9C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B998 7F036E68 02C28821 */ addu $s1, $s6, $v0 +.L7F036E6C: +/* 06B99C 7F036E6C 26520003 */ addiu $s2, $s2, 3 +/* 06B9A0 7F036E70 1000F9C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9A4 7F036E74 26310003 */ addiu $s1, $s1, 3 +action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3: +/* 06B9A8 7F036E78 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9AC 7F036E7C 92240001 */ lbu $a0, 1($s1) +/* 06B9B0 7F036E80 5040000C */ beql $v0, $zero, .L7F036EB4 +/* 06B9B4 7F036E84 26520003 */ addiu $s2, $s2, 3 +/* 06B9B8 7F036E88 8C4E0010 */ lw $t6, 0x10($v0) +/* 06B9BC 7F036E8C 02C02025 */ move $a0, $s6 +/* 06B9C0 7F036E90 02402825 */ move $a1, $s2 +/* 06B9C4 7F036E94 51C00007 */ beql $t6, $zero, .L7F036EB4 +/* 06B9C8 7F036E98 26520003 */ addiu $s2, $s2, 3 +/* 06B9CC 7F036E9C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B9D0 7F036EA0 92260002 */ lbu $a2, 2($s1) +/* 06B9D4 7F036EA4 00409025 */ move $s2, $v0 +/* 06B9D8 7F036EA8 1000F9B8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9DC 7F036EAC 02C28821 */ addu $s1, $s6, $v0 +/* 06B9E0 7F036EB0 26520003 */ addiu $s2, $s2, 3 +.L7F036EB4: +/* 06B9E4 7F036EB4 1000F9B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9E8 7F036EB8 26310003 */ addiu $s1, $s1, 3 +action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3: +/* 06B9EC 7F036EBC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9F0 7F036EC0 92240001 */ lbu $a0, 1($s1) +/* 06B9F4 7F036EC4 1040000E */ beqz $v0, .L7F036F00 +/* 06B9F8 7F036EC8 00402025 */ move $a0, $v0 +/* 06B9FC 7F036ECC 8C4F0010 */ lw $t7, 0x10($v0) +/* 06BA00 7F036ED0 51E0000C */ beql $t7, $zero, .L7F036F04 +/* 06BA04 7F036ED4 26520003 */ addiu $s2, $s2, 3 +/* 06BA08 7F036ED8 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06BA0C 7F036EDC 00000000 */ nop +/* 06BA10 7F036EE0 10400007 */ beqz $v0, .L7F036F00 +/* 06BA14 7F036EE4 02C02025 */ move $a0, $s6 +/* 06BA18 7F036EE8 02402825 */ move $a1, $s2 +/* 06BA1C 7F036EEC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA20 7F036EF0 92260002 */ lbu $a2, 2($s1) +/* 06BA24 7F036EF4 00409025 */ move $s2, $v0 +/* 06BA28 7F036EF8 1000F9A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA2C 7F036EFC 02C28821 */ addu $s1, $s6, $v0 +.L7F036F00: +/* 06BA30 7F036F00 26520003 */ addiu $s2, $s2, 3 +.L7F036F04: +/* 06BA34 7F036F04 1000F9A1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA38 7F036F08 26310003 */ addiu $s1, $s1, 3 +action5C_GoIntoRVLIf_16_Object_num_Activated_3: +/* 06BA3C 7F036F0C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BA40 7F036F10 92240001 */ lbu $a0, 1($s1) +/* 06BA44 7F036F14 50400014 */ beql $v0, $zero, .L7F036F68 +/* 06BA48 7F036F18 26520003 */ addiu $s2, $s2, 3 +/* 06BA4C 7F036F1C 8C580010 */ lw $t8, 0x10($v0) +/* 06BA50 7F036F20 53000011 */ beql $t8, $zero, .L7F036F68 +/* 06BA54 7F036F24 26520003 */ addiu $s2, $s2, 3 +/* 06BA58 7F036F28 8C490064 */ lw $t1, 0x64($v0) +/* 06BA5C 7F036F2C 2401BFFF */ li $at, -16385 +/* 06BA60 7F036F30 312A4000 */ andi $t2, $t1, 0x4000 +/* 06BA64 7F036F34 5140000C */ beql $t2, $zero, .L7F036F68 +/* 06BA68 7F036F38 26520003 */ addiu $s2, $s2, 3 +/* 06BA6C 7F036F3C 8C4B0064 */ lw $t3, 0x64($v0) +/* 06BA70 7F036F40 02C02025 */ move $a0, $s6 +/* 06BA74 7F036F44 02402825 */ move $a1, $s2 +/* 06BA78 7F036F48 01616024 */ and $t4, $t3, $at +/* 06BA7C 7F036F4C AC4C0064 */ sw $t4, 0x64($v0) +/* 06BA80 7F036F50 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA84 7F036F54 92260002 */ lbu $a2, 2($s1) +/* 06BA88 7F036F58 00409025 */ move $s2, $v0 +/* 06BA8C 7F036F5C 1000F98B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA90 7F036F60 02C28821 */ addu $s1, $s6, $v0 +/* 06BA94 7F036F64 26520003 */ addiu $s2, $s2, 3 +.L7F036F68: +/* 06BA98 7F036F68 1000F988 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA9C 7F036F6C 26310003 */ addiu $s1, $s1, 3 +action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3: +/* 06BAA0 7F036F70 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BAA4 7F036F74 92240001 */ lbu $a0, 1($s1) +/* 06BAA8 7F036F78 50400013 */ beql $v0, $zero, .L7F036FC8 +/* 06BAAC 7F036F7C 26520003 */ addiu $s2, $s2, 3 +/* 06BAB0 7F036F80 8C590010 */ lw $t9, 0x10($v0) +/* 06BAB4 7F036F84 53200010 */ beql $t9, $zero, .L7F036FC8 +/* 06BAB8 7F036F88 26520003 */ addiu $s2, $s2, 3 +/* 06BABC 7F036F8C 904D0002 */ lbu $t5, 2($v0) +/* 06BAC0 7F036F90 31AE0040 */ andi $t6, $t5, 0x40 +/* 06BAC4 7F036F94 51C0000C */ beql $t6, $zero, .L7F036FC8 +/* 06BAC8 7F036F98 26520003 */ addiu $s2, $s2, 3 +/* 06BACC 7F036F9C 904F0002 */ lbu $t7, 2($v0) +/* 06BAD0 7F036FA0 02C02025 */ move $a0, $s6 +/* 06BAD4 7F036FA4 02402825 */ move $a1, $s2 +/* 06BAD8 7F036FA8 31F8FFBF */ andi $t8, $t7, 0xffbf +/* 06BADC 7F036FAC A0580002 */ sb $t8, 2($v0) +/* 06BAE0 7F036FB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BAE4 7F036FB4 92260002 */ lbu $a2, 2($s1) +/* 06BAE8 7F036FB8 00409025 */ move $s2, $v0 +/* 06BAEC 7F036FBC 1000F973 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAF0 7F036FC0 02C28821 */ addu $s1, $s6, $v0 +/* 06BAF4 7F036FC4 26520003 */ addiu $s2, $s2, 3 +.L7F036FC8: +/* 06BAF8 7F036FC8 1000F970 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAFC 7F036FCC 26310003 */ addiu $s1, $s1, 3 +action5E_16_Object_Activates_2: +/* 06BB00 7F036FD0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB04 7F036FD4 92240001 */ lbu $a0, 1($s1) +/* 06BB08 7F036FD8 10400014 */ beqz $v0, .L7F03702C +/* 06BB0C 7F036FDC 00402825 */ move $a1, $v0 +/* 06BB10 7F036FE0 8C440010 */ lw $a0, 0x10($v0) +/* 06BB14 7F036FE4 50800012 */ beql $a0, $zero, .L7F037030 +/* 06BB18 7F036FE8 26520002 */ addiu $s2, $s2, 2 +/* 06BB1C 7F036FEC 90830000 */ lbu $v1, ($a0) +/* 06BB20 7F036FF0 24010002 */ li $at, 2 +/* 06BB24 7F036FF4 54610007 */ bnel $v1, $at, .L7F037014 +/* 06BB28 7F036FF8 24010001 */ li $at, 1 +/* 06BB2C 7F036FFC 0FC15667 */ jal sub_GAME_7F05599C +/* 06BB30 7F037000 8C440010 */ lw $a0, 0x10($v0) +/* 06BB34 7F037004 26520002 */ addiu $s2, $s2, 2 +/* 06BB38 7F037008 1000F960 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB3C 7F03700C 26310002 */ addiu $s1, $s1, 2 +/* 06BB40 7F037010 24010001 */ li $at, 1 +.L7F037014: +/* 06BB44 7F037014 10610003 */ beq $v1, $at, .L7F037024 +/* 06BB48 7F037018 24010004 */ li $at, 4 +/* 06BB4C 7F03701C 54610004 */ bnel $v1, $at, .L7F037030 +/* 06BB50 7F037020 26520002 */ addiu $s2, $s2, 2 +.L7F037024: +/* 06BB54 7F037024 0FC13C5C */ jal sub_GAME_7F04F170 +/* 06BB58 7F037028 8CA40010 */ lw $a0, 0x10($a1) +.L7F03702C: +/* 06BB5C 7F03702C 26520002 */ addiu $s2, $s2, 2 +.L7F037030: +/* 06BB60 7F037030 1000F956 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB64 7F037034 26310002 */ addiu $s1, $s1, 2 +action5F_16_Object_Explodes_2: +/* 06BB68 7F037038 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB6C 7F03703C 92240001 */ lbu $a0, 1($s1) +/* 06BB70 7F037040 10400019 */ beqz $v0, .L7F0370A8 +/* 06BB74 7F037044 00408025 */ move $s0, $v0 +/* 06BB78 7F037048 8C490010 */ lw $t1, 0x10($v0) +/* 06BB7C 7F03704C 51200017 */ beql $t1, $zero, .L7F0370AC +/* 06BB80 7F037050 26520002 */ addiu $s2, $s2, 2 +/* 06BB84 7F037054 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 06BB88 7F037058 00402025 */ move $a0, $v0 +/* 06BB8C 7F03705C 54400013 */ bnezl $v0, .L7F0370AC +/* 06BB90 7F037060 26520002 */ addiu $s2, $s2, 2 +/* 06BB94 7F037064 C6080074 */ lwc1 $f8, 0x74($s0) +/* 06BB98 7F037068 C60A0070 */ lwc1 $f10, 0x70($s0) +/* 06BB9C 7F03706C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06BBA0 7F037070 44819000 */ mtc1 $at, $f18 +/* 06BBA4 7F037074 460A4401 */ sub.s $f16, $f8, $f10 +/* 06BBA8 7F037078 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 06BBAC 7F03707C 44813000 */ mtc1 $at, $f6 +/* 06BBB0 7F037080 240AFFFF */ li $t2, -1 +/* 06BBB4 7F037084 46128100 */ add.s $f4, $f16, $f18 +/* 06BBB8 7F037088 AFAA0010 */ sw $t2, 0x10($sp) +/* 06BBBC 7F03708C 02002025 */ move $a0, $s0 +/* 06BBC0 7F037090 26060058 */ addiu $a2, $s0, 0x58 +/* 06BBC4 7F037094 46062003 */ div.s $f0, $f4, $f6 +/* 06BBC8 7F037098 2407001D */ li $a3, 29 +/* 06BBCC 7F03709C 44050000 */ mfc1 $a1, $f0 +/* 06BBD0 7F0370A0 0FC13842 */ jal maybe_detonate_object +/* 06BBD4 7F0370A4 00000000 */ nop +.L7F0370A8: +/* 06BBD8 7F0370A8 26520002 */ addiu $s2, $s2, 2 +.L7F0370AC: +/* 06BBDC 7F0370AC 1000F937 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BBE0 7F0370B0 26310002 */ addiu $s1, $s1, 2 +action60_Guard_Drops_16_Object_num_2: +/* 06BBE4 7F0370B4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BBE8 7F0370B8 92240001 */ lbu $a0, 1($s1) +/* 06BBEC 7F0370BC 10400013 */ beqz $v0, .L7F03710C +/* 06BBF0 7F0370C0 00403025 */ move $a2, $v0 +/* 06BBF4 7F0370C4 8C440010 */ lw $a0, 0x10($v0) +/* 06BBF8 7F0370C8 50800011 */ beql $a0, $zero, .L7F037110 +/* 06BBFC 7F0370CC 26520002 */ addiu $s2, $s2, 2 +/* 06BC00 7F0370D0 8C83001C */ lw $v1, 0x1c($a0) +/* 06BC04 7F0370D4 5060000E */ beql $v1, $zero, .L7F037110 +/* 06BC08 7F0370D8 26520002 */ addiu $s2, $s2, 2 +/* 06BC0C 7F0370DC 906B0000 */ lbu $t3, ($v1) +/* 06BC10 7F0370E0 24010003 */ li $at, 3 +/* 06BC14 7F0370E4 5561000A */ bnel $t3, $at, .L7F037110 +/* 06BC18 7F0370E8 26520002 */ addiu $s2, $s2, 2 +/* 06BC1C 7F0370EC 8C440010 */ lw $a0, 0x10($v0) +/* 06BC20 7F0370F0 24050002 */ li $a1, 2 +/* 06BC24 7F0370F4 8C8C001C */ lw $t4, 0x1c($a0) +/* 06BC28 7F0370F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BC2C 7F0370FC 8D900004 */ lw $s0, 4($t4) +/* 06BC30 7F037100 96190012 */ lhu $t9, 0x12($s0) +/* 06BC34 7F037104 372D0001 */ ori $t5, $t9, 1 +/* 06BC38 7F037108 A60D0012 */ sh $t5, 0x12($s0) +.L7F03710C: +/* 06BC3C 7F03710C 26520002 */ addiu $s2, $s2, 2 +.L7F037110: +/* 06BC40 7F037110 1000F91E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC44 7F037114 26310002 */ addiu $s1, $s1, 2 +action61_Kill_Guard_num_2: +/* 06BC48 7F037118 02E02025 */ move $a0, $s7 +/* 06BC4C 7F03711C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC50 7F037120 92250001 */ lbu $a1, 1($s1) +/* 06BC54 7F037124 10400006 */ beqz $v0, .L7F037140 +/* 06BC58 7F037128 00402025 */ move $a0, $v0 +/* 06BC5C 7F03712C 8C4E0018 */ lw $t6, 0x18($v0) +/* 06BC60 7F037130 51C00004 */ beql $t6, $zero, .L7F037144 +/* 06BC64 7F037134 26520002 */ addiu $s2, $s2, 2 +/* 06BC68 7F037138 0FC086C8 */ jal sub_GAME_7F021B20 +/* 06BC6C 7F03713C 00000000 */ nop +.L7F037140: +/* 06BC70 7F037140 26520002 */ addiu $s2, $s2, 2 +.L7F037144: +/* 06BC74 7F037144 1000F911 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC78 7F037148 26310002 */ addiu $s1, $s1, 2 +action62_Guard_num_Throws_Equipment_2: +/* 06BC7C 7F03714C 02E02025 */ move $a0, $s7 +/* 06BC80 7F037150 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC84 7F037154 92250001 */ lbu $a1, 1($s1) +/* 06BC88 7F037158 10400015 */ beqz $v0, .L7F0371B0 +/* 06BC8C 7F03715C 00408025 */ move $s0, $v0 +/* 06BC90 7F037160 8C4F0018 */ lw $t7, 0x18($v0) +/* 06BC94 7F037164 51E00013 */ beql $t7, $zero, .L7F0371B4 +/* 06BC98 7F037168 26520002 */ addiu $s2, $s2, 2 +/* 06BC9C 7F03716C 8C580160 */ lw $t8, 0x160($v0) +/* 06BCA0 7F037170 24050001 */ li $a1, 1 +/* 06BCA4 7F037174 53000007 */ beql $t8, $zero, .L7F037194 +/* 06BCA8 7F037178 8E040164 */ lw $a0, 0x164($s0) +/* 06BCAC 7F03717C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCB0 7F037180 8C440160 */ lw $a0, 0x160($v0) +/* 06BCB4 7F037184 96090012 */ lhu $t1, 0x12($s0) +/* 06BCB8 7F037188 352A0001 */ ori $t2, $t1, 1 +/* 06BCBC 7F03718C A60A0012 */ sh $t2, 0x12($s0) +/* 06BCC0 7F037190 8E040164 */ lw $a0, 0x164($s0) +.L7F037194: +/* 06BCC4 7F037194 50800007 */ beql $a0, $zero, .L7F0371B4 +/* 06BCC8 7F037198 26520002 */ addiu $s2, $s2, 2 +/* 06BCCC 7F03719C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCD0 7F0371A0 24050001 */ li $a1, 1 +/* 06BCD4 7F0371A4 960B0012 */ lhu $t3, 0x12($s0) +/* 06BCD8 7F0371A8 356C0001 */ ori $t4, $t3, 1 +/* 06BCDC 7F0371AC A60C0012 */ sh $t4, 0x12($s0) +.L7F0371B0: +/* 06BCE0 7F0371B0 26520002 */ addiu $s2, $s2, 2 +.L7F0371B4: +/* 06BCE4 7F0371B4 1000F8F5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BCE8 7F0371B8 26310002 */ addiu $s1, $s1, 2 +action63_Guard_Gives_Bond_16_Object_num_2: +/* 06BCEC 7F0371BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BCF0 7F0371C0 92240001 */ lbu $a0, 1($s1) +/* 06BCF4 7F0371C4 1040000A */ beqz $v0, .L7F0371F0 +/* 06BCF8 7F0371C8 00408025 */ move $s0, $v0 +/* 06BCFC 7F0371CC 8C590010 */ lw $t9, 0x10($v0) +/* 06BD00 7F0371D0 00002825 */ move $a1, $zero +/* 06BD04 7F0371D4 53200007 */ beql $t9, $zero, .L7F0371F4 +/* 06BD08 7F0371D8 26520002 */ addiu $s2, $s2, 2 +/* 06BD0C 7F0371DC 0FC14094 */ jal collect_or_interact_object +/* 06BD10 7F0371E0 8C440010 */ lw $a0, 0x10($v0) +/* 06BD14 7F0371E4 8E040010 */ lw $a0, 0x10($s0) +/* 06BD18 7F0371E8 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 06BD1C 7F0371EC 00402825 */ move $a1, $v0 +.L7F0371F0: +/* 06BD20 7F0371F0 26520002 */ addiu $s2, $s2, 2 +.L7F0371F4: +/* 06BD24 7F0371F4 1000F8E5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BD28 7F0371F8 26310002 */ addiu $s1, $s1, 2 +action64_Type_16_Object_Equipped_On_Guard_3: +/* 06BD2C 7F0371FC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BD30 7F037200 92240001 */ lbu $a0, 1($s1) +/* 06BD34 7F037204 00408025 */ move $s0, $v0 +/* 06BD38 7F037208 02E02025 */ move $a0, $s7 +/* 06BD3C 7F03720C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BD40 7F037210 92250002 */ lbu $a1, 2($s1) +/* 06BD44 7F037214 1200001F */ beqz $s0, .L7F037294 +/* 06BD48 7F037218 00409825 */ move $s3, $v0 +/* 06BD4C 7F03721C 8E040010 */ lw $a0, 0x10($s0) +/* 06BD50 7F037220 5080001D */ beql $a0, $zero, .L7F037298 +/* 06BD54 7F037224 26520003 */ addiu $s2, $s2, 3 +/* 06BD58 7F037228 5040001B */ beql $v0, $zero, .L7F037298 +/* 06BD5C 7F03722C 26520003 */ addiu $s2, $s2, 3 +/* 06BD60 7F037230 8C8D001C */ lw $t5, 0x1c($a0) +/* 06BD64 7F037234 11A00005 */ beqz $t5, .L7F03724C +/* 06BD68 7F037238 00000000 */ nop +/* 06BD6C 7F03723C 0FC13011 */ jal sub_GAME_7F04C044 +/* 06BD70 7F037240 00000000 */ nop +/* 06BD74 7F037244 10000008 */ b .L7F037268 +/* 06BD78 7F037248 920E0003 */ lbu $t6, 3($s0) +.L7F03724C: +/* 06BD7C 7F03724C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 06BD80 7F037250 00000000 */ nop +/* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 +/* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) +/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) +/* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) +.L7F037268: +/* 06BD98 7F037268 24010008 */ li $at, 8 +/* 06BD9C 7F03726C 02002025 */ move $a0, $s0 +/* 06BDA0 7F037270 55C10006 */ bnel $t6, $at, .L7F03728C +/* 06BDA4 7F037274 8E040010 */ lw $a0, 0x10($s0) +/* 06BDA8 7F037278 0FC14787 */ jal sub_GAME_7F051E1C +/* 06BDAC 7F03727C 02602825 */ move $a1, $s3 +/* 06BDB0 7F037280 54400005 */ bnezl $v0, .L7F037298 +/* 06BDB4 7F037284 26520003 */ addiu $s2, $s2, 3 +/* 06BDB8 7F037288 8E040010 */ lw $a0, 0x10($s0) +.L7F03728C: +/* 06BDBC 7F03728C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 06BDC0 7F037290 8E650018 */ lw $a1, 0x18($s3) +.L7F037294: +/* 06BDC4 7F037294 26520003 */ addiu $s2, $s2, 3 +.L7F037298: +/* 06BDC8 7F037298 1000F8BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BDCC 7F03729C 26310003 */ addiu $s1, $s1, 3 +action65_Object_Moved_To_Preset_4: +/* 06BDD0 7F0372A0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BDD4 7F0372A4 92240001 */ lbu $a0, 1($s1) +/* 06BDD8 7F0372A8 AFA20500 */ sw $v0, 0x500($sp) +/* 06BDDC 7F0372AC 922F0002 */ lbu $t7, 2($s1) +/* 06BDE0 7F0372B0 92290003 */ lbu $t1, 3($s1) +/* 06BDE4 7F0372B4 000FC200 */ sll $t8, $t7, 8 +/* 06BDE8 7F0372B8 03091825 */ or $v1, $t8, $t1 +/* 06BDEC 7F0372BC 1040003C */ beqz $v0, .L7F0373B0 +/* 06BDF0 7F0372C0 306AFFFF */ andi $t2, $v1, 0xffff +/* 06BDF4 7F0372C4 8C4B0010 */ lw $t3, 0x10($v0) +/* 06BDF8 7F0372C8 00409825 */ move $s3, $v0 +/* 06BDFC 7F0372CC 29412710 */ slti $at, $t2, 0x2710 +/* 06BE00 7F0372D0 51600038 */ beql $t3, $zero, .L7F0373B4 +/* 06BE04 7F0372D4 26520004 */ addiu $s2, $s2, 4 +/* 06BE08 7F0372D8 1020000A */ beqz $at, .L7F037304 +/* 06BE0C 7F0372DC 01401025 */ move $v0, $t2 +/* 06BE10 7F0372E0 000A6080 */ sll $t4, $t2, 2 +/* 06BE14 7F0372E4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE18 7F0372E8 000C6080 */ sll $t4, $t4, 2 +/* 06BE1C 7F0372EC 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06BE20 7F0372F0 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06BE24 7F0372F4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE28 7F0372F8 000C6080 */ sll $t4, $t4, 2 +/* 06BE2C 7F0372FC 1000000A */ b .L7F037328 +/* 06BE30 7F037300 01998021 */ addu $s0, $t4, $t9 +.L7F037304: +/* 06BE34 7F037304 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 06BE38 7F037308 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 06BE3C 7F03730C 00026900 */ sll $t5, $v0, 4 +/* 06BE40 7F037310 01A26821 */ addu $t5, $t5, $v0 +/* 06BE44 7F037314 000D6880 */ sll $t5, $t5, 2 +/* 06BE48 7F037318 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06BE4C 7F03731C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06BE50 7F037320 01AE8021 */ addu $s0, $t5, $t6 +/* 06BE54 7F037324 02018021 */ addu $s0, $s0, $at +.L7F037328: +/* 06BE58 7F037328 C6080018 */ lwc1 $f8, 0x18($s0) +/* 06BE5C 7F03732C 4405A000 */ mfc1 $a1, $f20 +/* 06BE60 7F037330 4406A000 */ mfc1 $a2, $f20 +/* 06BE64 7F037334 46004287 */ neg.s $f10, $f8 +/* 06BE68 7F037338 4407A000 */ mfc1 $a3, $f20 +/* 06BE6C 7F03733C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06BE70 7F037340 C610001C */ lwc1 $f16, 0x1c($s0) +/* 06BE74 7F037344 27A404B8 */ addiu $a0, $sp, 0x4b8 +/* 06BE78 7F037348 46008487 */ neg.s $f18, $f16 +/* 06BE7C 7F03734C E7B20014 */ swc1 $f18, 0x14($sp) +/* 06BE80 7F037350 C6040020 */ lwc1 $f4, 0x20($s0) +/* 06BE84 7F037354 46002187 */ neg.s $f6, $f4 +/* 06BE88 7F037358 E7A60018 */ swc1 $f6, 0x18($sp) +/* 06BE8C 7F03735C C608000C */ lwc1 $f8, 0xc($s0) +/* 06BE90 7F037360 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06BE94 7F037364 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 06BE98 7F037368 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06BE9C 7F03736C C6100014 */ lwc1 $f16, 0x14($s0) +/* 06BEA0 7F037370 0FC16642 */ jal sub_GAME_7F059908 +/* 06BEA4 7F037374 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06BEA8 7F037378 8E620014 */ lw $v0, 0x14($s3) +/* 06BEAC 7F03737C 27A504B8 */ addiu $a1, $sp, 0x4b8 +/* 06BEB0 7F037380 50400004 */ beql $v0, $zero, .L7F037394 +/* 06BEB4 7F037384 8E070028 */ lw $a3, 0x28($s0) +/* 06BEB8 7F037388 0FC1629F */ jal matrix_scalar_multiply +/* 06BEBC 7F03738C C44C0014 */ lwc1 $f12, 0x14($v0) +/* 06BEC0 7F037390 8E070028 */ lw $a3, 0x28($s0) +.L7F037394: +/* 06BEC4 7F037394 AFB00010 */ sw $s0, 0x10($sp) +/* 06BEC8 7F037398 02602025 */ move $a0, $s3 +/* 06BECC 7F03739C 02002825 */ move $a1, $s0 +/* 06BED0 7F0373A0 0FC10223 */ jal sub_GAME_7F04088C +/* 06BED4 7F0373A4 27A604B8 */ addiu $a2, $sp, 0x4b8 +/* 06BED8 7F0373A8 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 06BEDC 7F0373AC 02602025 */ move $a0, $s3 +.L7F0373B0: +/* 06BEE0 7F0373B0 26520004 */ addiu $s2, $s2, 4 +.L7F0373B4: +/* 06BEE4 7F0373B4 1000F875 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BEE8 7F0373B8 26310004 */ addiu $s1, $s1, 4 +action66_Open_Door_2: +/* 06BEEC 7F0373BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BEF0 7F0373C0 92240001 */ lbu $a0, 1($s1) +/* 06BEF4 7F0373C4 1040000B */ beqz $v0, .L7F0373F4 +/* 06BEF8 7F0373C8 00403025 */ move $a2, $v0 +/* 06BEFC 7F0373CC 8C440010 */ lw $a0, 0x10($v0) +/* 06BF00 7F0373D0 50800009 */ beql $a0, $zero, .L7F0373F8 +/* 06BF04 7F0373D4 26520002 */ addiu $s2, $s2, 2 +/* 06BF08 7F0373D8 908F0000 */ lbu $t7, ($a0) +/* 06BF0C 7F0373DC 24010002 */ li $at, 2 +/* 06BF10 7F0373E0 00402025 */ move $a0, $v0 +/* 06BF14 7F0373E4 55E10004 */ bnel $t7, $at, .L7F0373F8 +/* 06BF18 7F0373E8 26520002 */ addiu $s2, $s2, 2 +/* 06BF1C 7F0373EC 0FC15262 */ jal set_door_state +/* 06BF20 7F0373F0 24050001 */ li $a1, 1 +.L7F0373F4: +/* 06BF24 7F0373F4 26520002 */ addiu $s2, $s2, 2 +.L7F0373F8: +/* 06BF28 7F0373F8 1000F864 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF2C 7F0373FC 26310002 */ addiu $s1, $s1, 2 +action67_Close_Door_2: +/* 06BF30 7F037400 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF34 7F037404 92240001 */ lbu $a0, 1($s1) +/* 06BF38 7F037408 1040000B */ beqz $v0, .L7F037438 +/* 06BF3C 7F03740C 00403025 */ move $a2, $v0 +/* 06BF40 7F037410 8C440010 */ lw $a0, 0x10($v0) +/* 06BF44 7F037414 50800009 */ beql $a0, $zero, .L7F03743C +/* 06BF48 7F037418 26520002 */ addiu $s2, $s2, 2 +/* 06BF4C 7F03741C 90980000 */ lbu $t8, ($a0) +/* 06BF50 7F037420 24010002 */ li $at, 2 +/* 06BF54 7F037424 00402025 */ move $a0, $v0 +/* 06BF58 7F037428 57010004 */ bnel $t8, $at, .L7F03743C +/* 06BF5C 7F03742C 26520002 */ addiu $s2, $s2, 2 +/* 06BF60 7F037430 0FC15262 */ jal set_door_state +/* 06BF64 7F037434 24050002 */ li $a1, 2 +.L7F037438: +/* 06BF68 7F037438 26520002 */ addiu $s2, $s2, 2 +.L7F03743C: +/* 06BF6C 7F03743C 1000F853 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF70 7F037440 26310002 */ addiu $s1, $s1, 2 +action68_Check_Door_Status_RVL_If_Met_4: +/* 06BF74 7F037444 92240001 */ lbu $a0, 1($s1) +/* 06BF78 7F037448 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF7C 7F03744C 00008025 */ move $s0, $zero +/* 06BF80 7F037450 10400027 */ beqz $v0, .L7F0374F0 +/* 06BF84 7F037454 02C02025 */ move $a0, $s6 +/* 06BF88 7F037458 8C490010 */ lw $t1, 0x10($v0) +/* 06BF8C 7F03745C 11200024 */ beqz $t1, .L7F0374F0 +/* 06BF90 7F037460 00000000 */ nop +/* 06BF94 7F037464 904A0003 */ lbu $t2, 3($v0) +/* 06BF98 7F037468 24010001 */ li $at, 1 +/* 06BF9C 7F03746C 15410020 */ bne $t2, $at, .L7F0374F0 +/* 06BFA0 7F037470 00000000 */ nop +/* 06BFA4 7F037474 804300BC */ lb $v1, 0xbc($v0) +/* 06BFA8 7F037478 24010001 */ li $at, 1 +/* 06BFAC 7F03747C 1460000E */ bnez $v1, .L7F0374B8 +/* 06BFB0 7F037480 00000000 */ nop +/* 06BFB4 7F037484 C45200B4 */ lwc1 $f18, 0xb4($v0) +/* 06BFB8 7F037488 4614903E */ c.le.s $f18, $f20 +/* 06BFBC 7F03748C 00000000 */ nop +/* 06BFC0 7F037490 45020006 */ bc1fl .L7F0374AC +/* 06BFC4 7F037494 92300002 */ lbu $s0, 2($s1) +/* 06BFC8 7F037498 92300002 */ lbu $s0, 2($s1) +/* 06BFCC 7F03749C 320B0001 */ andi $t3, $s0, 1 +/* 06BFD0 7F0374A0 10000013 */ b .L7F0374F0 +/* 06BFD4 7F0374A4 000B802B */ sltu $s0, $zero, $t3 +/* 06BFD8 7F0374A8 92300002 */ lbu $s0, 2($s1) +.L7F0374AC: +/* 06BFDC 7F0374AC 32190002 */ andi $t9, $s0, 2 +/* 06BFE0 7F0374B0 1000000F */ b .L7F0374F0 +/* 06BFE4 7F0374B4 0019802B */ sltu $s0, $zero, $t9 +.L7F0374B8: +/* 06BFE8 7F0374B8 10610003 */ beq $v1, $at, .L7F0374C8 +/* 06BFEC 7F0374BC 24010003 */ li $at, 3 +/* 06BFF0 7F0374C0 54610006 */ bnel $v1, $at, .L7F0374DC +/* 06BFF4 7F0374C4 24010002 */ li $at, 2 +.L7F0374C8: +/* 06BFF8 7F0374C8 92300002 */ lbu $s0, 2($s1) +/* 06BFFC 7F0374CC 320E0008 */ andi $t6, $s0, 8 +/* 06C000 7F0374D0 10000007 */ b .L7F0374F0 +/* 06C004 7F0374D4 000E802B */ sltu $s0, $zero, $t6 +/* 06C008 7F0374D8 24010002 */ li $at, 2 +.L7F0374DC: +/* 06C00C 7F0374DC 14610004 */ bne $v1, $at, .L7F0374F0 +/* 06C010 7F0374E0 00000000 */ nop +/* 06C014 7F0374E4 92300002 */ lbu $s0, 2($s1) +/* 06C018 7F0374E8 32180004 */ andi $t8, $s0, 4 +/* 06C01C 7F0374EC 0018802B */ sltu $s0, $zero, $t8 +.L7F0374F0: +/* 06C020 7F0374F0 12000006 */ beqz $s0, .L7F03750C +/* 06C024 7F0374F4 02402825 */ move $a1, $s2 +/* 06C028 7F0374F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C02C 7F0374FC 92260003 */ lbu $a2, 3($s1) +/* 06C030 7F037500 00409025 */ move $s2, $v0 +/* 06C034 7F037504 1000F821 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C038 7F037508 02C28821 */ addu $s1, $s6, $v0 +.L7F03750C: +/* 06C03C 7F03750C 26520004 */ addiu $s2, $s2, 4 +/* 06C040 7F037510 1000F81E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C044 7F037514 26310004 */ addiu $s1, $s1, 4 +action69_If_16_Object_Is_Valid_Door_RVL_3: +/* 06C048 7F037518 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C04C 7F03751C 92240001 */ lbu $a0, 1($s1) +/* 06C050 7F037520 50400014 */ beql $v0, $zero, .L7F037574 +/* 06C054 7F037524 26520003 */ addiu $s2, $s2, 3 +/* 06C058 7F037528 8C4A0010 */ lw $t2, 0x10($v0) +/* 06C05C 7F03752C 51400011 */ beql $t2, $zero, .L7F037574 +/* 06C060 7F037530 26520003 */ addiu $s2, $s2, 3 +/* 06C064 7F037534 904B0003 */ lbu $t3, 3($v0) +/* 06C068 7F037538 24010001 */ li $at, 1 +/* 06C06C 7F03753C 5561000D */ bnel $t3, $at, .L7F037574 +/* 06C070 7F037540 26520003 */ addiu $s2, $s2, 3 +/* 06C074 7F037544 8C4C0064 */ lw $t4, 0x64($v0) +/* 06C078 7F037548 02C02025 */ move $a0, $s6 +/* 06C07C 7F03754C 02402825 */ move $a1, $s2 +/* 06C080 7F037550 31990200 */ andi $t9, $t4, 0x200 +/* 06C084 7F037554 53200007 */ beql $t9, $zero, .L7F037574 +/* 06C088 7F037558 26520003 */ addiu $s2, $s2, 3 +/* 06C08C 7F03755C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C090 7F037560 92260002 */ lbu $a2, 2($s1) +/* 06C094 7F037564 00409025 */ move $s2, $v0 +/* 06C098 7F037568 1000F808 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C09C 7F03756C 02C28821 */ addu $s1, $s6, $v0 +/* 06C0A0 7F037570 26520003 */ addiu $s2, $s2, 3 +.L7F037574: +/* 06C0A4 7F037574 1000F805 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0A8 7F037578 26310003 */ addiu $s1, $s1, 3 +action6A_Set_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0AC 7F03757C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0B0 7F037580 92240001 */ lbu $a0, 1($s1) +/* 06C0B4 7F037584 1040000C */ beqz $v0, .L7F0375B8 +/* 06C0B8 7F037588 26520003 */ addiu $s2, $s2, 3 +/* 06C0BC 7F03758C 8C440010 */ lw $a0, 0x10($v0) +/* 06C0C0 7F037590 10800009 */ beqz $a0, .L7F0375B8 +/* 06C0C4 7F037594 00000000 */ nop +/* 06C0C8 7F037598 908D0000 */ lbu $t5, ($a0) +/* 06C0CC 7F03759C 24010002 */ li $at, 2 +/* 06C0D0 7F0375A0 15A10005 */ bne $t5, $at, .L7F0375B8 +/* 06C0D4 7F0375A4 00000000 */ nop +/* 06C0D8 7F0375A8 92230002 */ lbu $v1, 2($s1) +/* 06C0DC 7F0375AC 8C4E009C */ lw $t6, 0x9c($v0) +/* 06C0E0 7F0375B0 01C37825 */ or $t7, $t6, $v1 +/* 06C0E4 7F0375B4 AC4F009C */ sw $t7, 0x9c($v0) +.L7F0375B8: +/* 06C0E8 7F0375B8 1000F7F4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0EC 7F0375BC 26310003 */ addiu $s1, $s1, 3 +action6B_Unset_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0F0 7F0375C0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0F4 7F0375C4 92240001 */ lbu $a0, 1($s1) +/* 06C0F8 7F0375C8 1040000D */ beqz $v0, .L7F037600 +/* 06C0FC 7F0375CC 26520003 */ addiu $s2, $s2, 3 +/* 06C100 7F0375D0 8C440010 */ lw $a0, 0x10($v0) +/* 06C104 7F0375D4 1080000A */ beqz $a0, .L7F037600 +/* 06C108 7F0375D8 00000000 */ nop +/* 06C10C 7F0375DC 90980000 */ lbu $t8, ($a0) +/* 06C110 7F0375E0 24010002 */ li $at, 2 +/* 06C114 7F0375E4 17010006 */ bne $t8, $at, .L7F037600 +/* 06C118 7F0375E8 00000000 */ nop +/* 06C11C 7F0375EC 92230002 */ lbu $v1, 2($s1) +/* 06C120 7F0375F0 8C49009C */ lw $t1, 0x9c($v0) +/* 06C124 7F0375F4 00605027 */ not $t2, $v1 +/* 06C128 7F0375F8 012A5824 */ and $t3, $t1, $t2 +/* 06C12C 7F0375FC AC4B009C */ sw $t3, 0x9c($v0) +.L7F037600: +/* 06C130 7F037600 1000F7E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C134 7F037604 26310003 */ addiu $s1, $s1, 3 +action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4: +/* 06C138 7F037608 92240001 */ lbu $a0, 1($s1) +/* 06C13C 7F03760C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C140 7F037610 00008025 */ move $s0, $zero +/* 06C144 7F037614 1040000E */ beqz $v0, .L7F037650 +/* 06C148 7F037618 02402825 */ move $a1, $s2 +/* 06C14C 7F03761C 8C440010 */ lw $a0, 0x10($v0) +/* 06C150 7F037620 1080000B */ beqz $a0, .L7F037650 +/* 06C154 7F037624 00000000 */ nop +/* 06C158 7F037628 908C0000 */ lbu $t4, ($a0) +/* 06C15C 7F03762C 24010002 */ li $at, 2 +/* 06C160 7F037630 15810007 */ bne $t4, $at, .L7F037650 +/* 06C164 7F037634 00000000 */ nop +/* 06C168 7F037638 92230002 */ lbu $v1, 2($s1) +/* 06C16C 7F03763C 8C59009C */ lw $t9, 0x9c($v0) +/* 06C170 7F037640 03236824 */ and $t5, $t9, $v1 +/* 06C174 7F037644 146D0002 */ bne $v1, $t5, .L7F037650 +/* 06C178 7F037648 00000000 */ nop +/* 06C17C 7F03764C 24100001 */ li $s0, 1 +.L7F037650: +/* 06C180 7F037650 12000006 */ beqz $s0, .L7F03766C +/* 06C184 7F037654 02C02025 */ move $a0, $s6 +/* 06C188 7F037658 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C18C 7F03765C 92260003 */ lbu $a2, 3($s1) +/* 06C190 7F037660 00409025 */ move $s2, $v0 +/* 06C194 7F037664 1000F7C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C198 7F037668 02C28821 */ addu $s1, $s6, $v0 +.L7F03766C: +/* 06C19C 7F03766C 26520004 */ addiu $s2, $s2, 4 +/* 06C1A0 7F037670 1000F7C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1A4 7F037674 26310004 */ addiu $s1, $s1, 4 +action6D_If_Objective_num_Complete_RVL_3: +/* 06C1A8 7F037678 0FC15C6A */ jal add_objective +/* 06C1AC 7F03767C 00000000 */ nop +/* 06C1B0 7F037680 92250001 */ lbu $a1, 1($s1) +/* 06C1B4 7F037684 00A2082A */ slt $at, $a1, $v0 +/* 06C1B8 7F037688 5020000D */ beql $at, $zero, .L7F0376C0 +/* 06C1BC 7F03768C 26520003 */ addiu $s2, $s2, 3 +/* 06C1C0 7F037690 0FC15C8E */ jal get_status_of_objective +/* 06C1C4 7F037694 00A02025 */ move $a0, $a1 +/* 06C1C8 7F037698 24010001 */ li $at, 1 +/* 06C1CC 7F03769C 14410007 */ bne $v0, $at, .L7F0376BC +/* 06C1D0 7F0376A0 02C02025 */ move $a0, $s6 +/* 06C1D4 7F0376A4 02402825 */ move $a1, $s2 +/* 06C1D8 7F0376A8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C1DC 7F0376AC 92260002 */ lbu $a2, 2($s1) +/* 06C1E0 7F0376B0 00409025 */ move $s2, $v0 +/* 06C1E4 7F0376B4 1000F7B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1E8 7F0376B8 02C28821 */ addu $s1, $s6, $v0 +.L7F0376BC: +/* 06C1EC 7F0376BC 26520003 */ addiu $s2, $s2, 3 +.L7F0376C0: +/* 06C1F0 7F0376C0 1000F7B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1F4 7F0376C4 26310003 */ addiu $s1, $s1, 3 +action6E_If_Guard_2328_Preset_RVL_3: +/* 06C1F8 7F0376C8 02E02025 */ move $a0, $s7 +/* 06C1FC 7F0376CC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 06C200 7F0376D0 92250001 */ lbu $a1, 1($s1) +/* 06C204 7F0376D4 10400007 */ beqz $v0, .L7F0376F4 +/* 06C208 7F0376D8 02C02025 */ move $a0, $s6 +/* 06C20C 7F0376DC 02402825 */ move $a1, $s2 +/* 06C210 7F0376E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C214 7F0376E4 92260002 */ lbu $a2, 2($s1) +/* 06C218 7F0376E8 00409025 */ move $s2, $v0 +/* 06C21C 7F0376EC 1000F7A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C220 7F0376F0 02C28821 */ addu $s1, $s6, $v0 +.L7F0376F4: +/* 06C224 7F0376F4 26520003 */ addiu $s2, $s2, 3 +/* 06C228 7F0376F8 1000F7A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C22C 7F0376FC 26310003 */ addiu $s1, $s1, 3 +action6F_If_Guard_2328_Preset_Set_RVL_3: +/* 06C230 7F037700 02E02025 */ move $a0, $s7 +/* 06C234 7F037704 0FC0CEAB */ jal sub_GAME_7F033AAC +/* 06C238 7F037708 92250001 */ lbu $a1, 1($s1) +/* 06C23C 7F03770C 10400007 */ beqz $v0, .L7F03772C +/* 06C240 7F037710 02C02025 */ move $a0, $s6 +/* 06C244 7F037714 02402825 */ move $a1, $s2 +/* 06C248 7F037718 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C24C 7F03771C 92260002 */ lbu $a2, 2($s1) +/* 06C250 7F037720 00409025 */ move $s2, $v0 +/* 06C254 7F037724 1000F799 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C258 7F037728 02C28821 */ addu $s1, $s6, $v0 +.L7F03772C: +/* 06C25C 7F03772C 26520003 */ addiu $s2, $s2, 3 +/* 06C260 7F037730 1000F796 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C264 7F037734 26310003 */ addiu $s1, $s1, 3 +action78_Go_To_RVL_If_Guard_Shot_LTV_3: +/* 06C268 7F037738 0FC0CD69 */ jal get_times_actor_shot +/* 06C26C 7F03773C 02E02025 */ move $a0, $s7 +/* 06C270 7F037740 922E0001 */ lbu $t6, 1($s1) +/* 06C274 7F037744 02C02025 */ move $a0, $s6 +/* 06C278 7F037748 02402825 */ move $a1, $s2 +/* 06C27C 7F03774C 004E082A */ slt $at, $v0, $t6 +/* 06C280 7F037750 50200007 */ beql $at, $zero, .L7F037770 +/* 06C284 7F037754 26520003 */ addiu $s2, $s2, 3 +/* 06C288 7F037758 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C28C 7F03775C 92260002 */ lbu $a2, 2($s1) +/* 06C290 7F037760 00409025 */ move $s2, $v0 +/* 06C294 7F037764 1000F789 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C298 7F037768 02C28821 */ addu $s1, $s6, $v0 +/* 06C29C 7F03776C 26520003 */ addiu $s2, $s2, 3 +.L7F037770: +/* 06C2A0 7F037770 1000F786 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2A4 7F037774 26310003 */ addiu $s1, $s1, 3 +action79_Go_To_RVL_If_Guard_Shot_GTV_3: +/* 06C2A8 7F037778 0FC0CD69 */ jal get_times_actor_shot +/* 06C2AC 7F03777C 02E02025 */ move $a0, $s7 +/* 06C2B0 7F037780 922F0001 */ lbu $t7, 1($s1) +/* 06C2B4 7F037784 02C02025 */ move $a0, $s6 +/* 06C2B8 7F037788 02402825 */ move $a1, $s2 +/* 06C2BC 7F03778C 01E2082A */ slt $at, $t7, $v0 +/* 06C2C0 7F037790 50200007 */ beql $at, $zero, .L7F0377B0 +/* 06C2C4 7F037794 26520003 */ addiu $s2, $s2, 3 +/* 06C2C8 7F037798 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C2CC 7F03779C 92260002 */ lbu $a2, 2($s1) +/* 06C2D0 7F0377A0 00409025 */ move $s2, $v0 +/* 06C2D4 7F0377A4 1000F779 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2D8 7F0377A8 02C28821 */ addu $s1, $s6, $v0 +/* 06C2DC 7F0377AC 26520003 */ addiu $s2, $s2, 3 +.L7F0377B0: +/* 06C2E0 7F0377B0 1000F776 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2E4 7F0377B4 26310003 */ addiu $s1, $s1, 3 +action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3: +/* 06C2E8 7F0377B8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C2EC 7F0377BC 02E02025 */ move $a0, $s7 +/* 06C2F0 7F0377C0 92380001 */ lbu $t8, 1($s1) +/* 06C2F4 7F0377C4 02C02025 */ move $a0, $s6 +/* 06C2F8 7F0377C8 02402825 */ move $a1, $s2 +/* 06C2FC 7F0377CC 0058082A */ slt $at, $v0, $t8 +/* 06C300 7F0377D0 50200007 */ beql $at, $zero, .L7F0377F0 +/* 06C304 7F0377D4 26520003 */ addiu $s2, $s2, 3 +/* 06C308 7F0377D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C30C 7F0377DC 92260002 */ lbu $a2, 2($s1) +/* 06C310 7F0377E0 00409025 */ move $s2, $v0 +/* 06C314 7F0377E4 1000F769 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C318 7F0377E8 02C28821 */ addu $s1, $s6, $v0 +/* 06C31C 7F0377EC 26520003 */ addiu $s2, $s2, 3 +.L7F0377F0: +/* 06C320 7F0377F0 1000F766 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C324 7F0377F4 26310003 */ addiu $s1, $s1, 3 +action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3: +/* 06C328 7F0377F8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C32C 7F0377FC 02E02025 */ move $a0, $s7 +/* 06C330 7F037800 92290001 */ lbu $t1, 1($s1) +/* 06C334 7F037804 02C02025 */ move $a0, $s6 +/* 06C338 7F037808 02402825 */ move $a1, $s2 +/* 06C33C 7F03780C 0122082A */ slt $at, $t1, $v0 +/* 06C340 7F037810 50200007 */ beql $at, $zero, .L7F037830 +/* 06C344 7F037814 26520003 */ addiu $s2, $s2, 3 +/* 06C348 7F037818 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C34C 7F03781C 92260002 */ lbu $a2, 2($s1) +/* 06C350 7F037820 00409025 */ move $s2, $v0 +/* 06C354 7F037824 1000F759 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C358 7F037828 02C28821 */ addu $s1, $s6, $v0 +/* 06C35C 7F03782C 26520003 */ addiu $s2, $s2, 3 +.L7F037830: +/* 06C360 7F037830 1000F756 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C364 7F037834 26310003 */ addiu $s1, $s1, 3 +action7C_If_Guard_Health_Below_Value_RVL_4: +/* 06C368 7F037838 922A0002 */ lbu $t2, 2($s1) +/* 06C36C 7F03783C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C370 7F037840 448A2000 */ mtc1 $t2, $f4 +/* 06C374 7F037844 05410004 */ bgez $t2, .L7F037858 +/* 06C378 7F037848 468021A0 */ cvt.s.w $f6, $f4 +/* 06C37C 7F03784C 44814000 */ mtc1 $at, $f8 +/* 06C380 7F037850 00000000 */ nop +/* 06C384 7F037854 46083180 */ add.s $f6, $f6, $f8 +.L7F037858: +/* 06C388 7F037858 3C018005 */ lui $at, %hi(D_800528EC) +/* 06C38C 7F03785C C42A28EC */ lwc1 $f10, %lo(D_800528EC)($at) +/* 06C390 7F037860 02E02025 */ move $a0, $s7 +/* 06C394 7F037864 460A3402 */ mul.s $f16, $f6, $f10 +/* 06C398 7F037868 E7B00438 */ swc1 $f16, 0x438($sp) +/* 06C39C 7F03786C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C3A0 7F037870 92250001 */ lbu $a1, 1($s1) +/* 06C3A4 7F037874 50400011 */ beql $v0, $zero, .L7F0378BC +/* 06C3A8 7F037878 26520004 */ addiu $s2, $s2, 4 +/* 06C3AC 7F03787C C4520100 */ lwc1 $f18, 0x100($v0) +/* 06C3B0 7F037880 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 06C3B4 7F037884 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 06C3B8 7F037888 02C02025 */ move $a0, $s6 +/* 06C3BC 7F03788C 46049201 */ sub.s $f8, $f18, $f4 +/* 06C3C0 7F037890 02402825 */ move $a1, $s2 +/* 06C3C4 7F037894 4606403C */ c.lt.s $f8, $f6 +/* 06C3C8 7F037898 00000000 */ nop +/* 06C3CC 7F03789C 45020007 */ bc1fl .L7F0378BC +/* 06C3D0 7F0378A0 26520004 */ addiu $s2, $s2, 4 +/* 06C3D4 7F0378A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C3D8 7F0378A8 92260003 */ lbu $a2, 3($s1) +/* 06C3DC 7F0378AC 00409025 */ move $s2, $v0 +/* 06C3E0 7F0378B0 1000F736 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3E4 7F0378B4 02C28821 */ addu $s1, $s6, $v0 +/* 06C3E8 7F0378B8 26520004 */ addiu $s2, $s2, 4 +.L7F0378BC: +/* 06C3EC 7F0378BC 1000F733 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3F0 7F0378C0 26310004 */ addiu $s1, $s1, 4 +action7D_If_Guard_Health_Above_Value_RVL_4: +/* 06C3F4 7F0378C4 922B0002 */ lbu $t3, 2($s1) +/* 06C3F8 7F0378C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C3FC 7F0378CC 448B5000 */ mtc1 $t3, $f10 +/* 06C400 7F0378D0 05610004 */ bgez $t3, .L7F0378E4 +/* 06C404 7F0378D4 46805420 */ cvt.s.w $f16, $f10 +/* 06C408 7F0378D8 44819000 */ mtc1 $at, $f18 +/* 06C40C 7F0378DC 00000000 */ nop +/* 06C410 7F0378E0 46128400 */ add.s $f16, $f16, $f18 +.L7F0378E4: +/* 06C414 7F0378E4 3C018005 */ lui $at, %hi(D_800528F0) +/* 06C418 7F0378E8 C42428F0 */ lwc1 $f4, %lo(D_800528F0)($at) +/* 06C41C 7F0378EC 02E02025 */ move $a0, $s7 +/* 06C420 7F0378F0 46048202 */ mul.s $f8, $f16, $f4 +/* 06C424 7F0378F4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 06C428 7F0378F8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C42C 7F0378FC 92250001 */ lbu $a1, 1($s1) +/* 06C430 7F037900 50400011 */ beql $v0, $zero, .L7F037948 +/* 06C434 7F037904 26520004 */ addiu $s2, $s2, 4 +/* 06C438 7F037908 C44A0100 */ lwc1 $f10, 0x100($v0) +/* 06C43C 7F03790C C45200FC */ lwc1 $f18, 0xfc($v0) +/* 06C440 7F037910 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 06C444 7F037914 02C02025 */ move $a0, $s6 +/* 06C448 7F037918 46125401 */ sub.s $f16, $f10, $f18 +/* 06C44C 7F03791C 02402825 */ move $a1, $s2 +/* 06C450 7F037920 4610303C */ c.lt.s $f6, $f16 +/* 06C454 7F037924 00000000 */ nop +/* 06C458 7F037928 45020007 */ bc1fl .L7F037948 +/* 06C45C 7F03792C 26520004 */ addiu $s2, $s2, 4 +/* 06C460 7F037930 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C464 7F037934 92260003 */ lbu $a2, 3($s1) +/* 06C468 7F037938 00409025 */ move $s2, $v0 +/* 06C46C 7F03793C 1000F713 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C470 7F037940 02C28821 */ addu $s1, $s6, $v0 +/* 06C474 7F037944 26520004 */ addiu $s2, $s2, 4 +.L7F037948: +/* 06C478 7F037948 1000F710 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C47C 7F03794C 26310004 */ addiu $s1, $s1, 4 +action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3: +/* 06C480 7F037950 02E02025 */ move $a0, $s7 +/* 06C484 7F037954 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C488 7F037958 92250001 */ lbu $a1, 1($s1) +/* 06C48C 7F03795C 50400011 */ beql $v0, $zero, .L7F0379A4 +/* 06C490 7F037960 26520003 */ addiu $s2, $s2, 3 +/* 06C494 7F037964 8C4C0014 */ lw $t4, 0x14($v0) +/* 06C498 7F037968 2401FEFF */ li $at, -257 +/* 06C49C 7F03796C 31990100 */ andi $t9, $t4, 0x100 +/* 06C4A0 7F037970 5320000C */ beql $t9, $zero, .L7F0379A4 +/* 06C4A4 7F037974 26520003 */ addiu $s2, $s2, 3 +/* 06C4A8 7F037978 8C4D0014 */ lw $t5, 0x14($v0) +/* 06C4AC 7F03797C 02C02025 */ move $a0, $s6 +/* 06C4B0 7F037980 02402825 */ move $a1, $s2 +/* 06C4B4 7F037984 01A17024 */ and $t6, $t5, $at +/* 06C4B8 7F037988 AC4E0014 */ sw $t6, 0x14($v0) +/* 06C4BC 7F03798C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C4C0 7F037990 92260002 */ lbu $a2, 2($s1) +/* 06C4C4 7F037994 00409025 */ move $s2, $v0 +/* 06C4C8 7F037998 1000F6FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4CC 7F03799C 02C28821 */ addu $s1, $s6, $v0 +/* 06C4D0 7F0379A0 26520003 */ addiu $s2, $s2, 3 +.L7F0379A4: +/* 06C4D4 7F0379A4 1000F6F9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4D8 7F0379A8 26310003 */ addiu $s1, $s1, 3 +action7F_If_Health_Below_Value_RVL_3: +/* 06C4DC 7F0379AC 922F0001 */ lbu $t7, 1($s1) +/* 06C4E0 7F0379B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C4E4 7F0379B4 448F2000 */ mtc1 $t7, $f4 +/* 06C4E8 7F0379B8 05E10004 */ bgez $t7, .L7F0379CC +/* 06C4EC 7F0379BC 46802220 */ cvt.s.w $f8, $f4 +/* 06C4F0 7F0379C0 44815000 */ mtc1 $at, $f10 +/* 06C4F4 7F0379C4 00000000 */ nop +/* 06C4F8 7F0379C8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0379CC: +/* 06C4FC 7F0379CC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C500 7F0379D0 44819000 */ mtc1 $at, $f18 +/* 06C504 7F0379D4 00000000 */ nop +/* 06C508 7F0379D8 46124183 */ div.s $f6, $f8, $f18 +/* 06C50C 7F0379DC 0FC228BB */ jal get_BONDdata_watch_health +/* 06C510 7F0379E0 E7A60418 */ swc1 $f6, 0x418($sp) +/* 06C514 7F0379E4 C7B00418 */ lwc1 $f16, 0x418($sp) +/* 06C518 7F0379E8 02C02025 */ move $a0, $s6 +/* 06C51C 7F0379EC 02402825 */ move $a1, $s2 +/* 06C520 7F0379F0 4610003C */ c.lt.s $f0, $f16 +/* 06C524 7F0379F4 00000000 */ nop +/* 06C528 7F0379F8 45020007 */ bc1fl .L7F037A18 +/* 06C52C 7F0379FC 26520003 */ addiu $s2, $s2, 3 +/* 06C530 7F037A00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C534 7F037A04 92260002 */ lbu $a2, 2($s1) +/* 06C538 7F037A08 00409025 */ move $s2, $v0 +/* 06C53C 7F037A0C 1000F6DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C540 7F037A10 02C28821 */ addu $s1, $s6, $v0 +/* 06C544 7F037A14 26520003 */ addiu $s2, $s2, 3 +.L7F037A18: +/* 06C548 7F037A18 1000F6DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C54C 7F037A1C 26310003 */ addiu $s1, $s1, 3 +action80_If_Health_Above_Value_RVL_3: +/* 06C550 7F037A20 92380001 */ lbu $t8, 1($s1) +/* 06C554 7F037A24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C558 7F037A28 44982000 */ mtc1 $t8, $f4 +/* 06C55C 7F037A2C 07010004 */ bgez $t8, .L7F037A40 +/* 06C560 7F037A30 468022A0 */ cvt.s.w $f10, $f4 +/* 06C564 7F037A34 44814000 */ mtc1 $at, $f8 +/* 06C568 7F037A38 00000000 */ nop +/* 06C56C 7F037A3C 46085280 */ add.s $f10, $f10, $f8 +.L7F037A40: +/* 06C570 7F037A40 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C574 7F037A44 44819000 */ mtc1 $at, $f18 +/* 06C578 7F037A48 00000000 */ nop +/* 06C57C 7F037A4C 46125183 */ div.s $f6, $f10, $f18 +/* 06C580 7F037A50 0FC228BB */ jal get_BONDdata_watch_health +/* 06C584 7F037A54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 06C588 7F037A58 C7B00410 */ lwc1 $f16, 0x410($sp) +/* 06C58C 7F037A5C 02C02025 */ move $a0, $s6 +/* 06C590 7F037A60 02402825 */ move $a1, $s2 +/* 06C594 7F037A64 4600803C */ c.lt.s $f16, $f0 +/* 06C598 7F037A68 00000000 */ nop +/* 06C59C 7F037A6C 45020007 */ bc1fl .L7F037A8C +/* 06C5A0 7F037A70 26520003 */ addiu $s2, $s2, 3 +/* 06C5A4 7F037A74 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5A8 7F037A78 92260002 */ lbu $a2, 2($s1) +/* 06C5AC 7F037A7C 00409025 */ move $s2, $v0 +/* 06C5B0 7F037A80 1000F6C2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5B4 7F037A84 02C28821 */ addu $s1, $s6, $v0 +/* 06C5B8 7F037A88 26520003 */ addiu $s2, $s2, 3 +.L7F037A8C: +/* 06C5BC 7F037A8C 1000F6BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5C0 7F037A90 26310003 */ addiu $s1, $s1, 3 +action70_Go_Into_RVL_Difficulty_LTV_3: +/* 06C5C4 7F037A94 0FC2FF04 */ jal get_current_difficulty +/* 06C5C8 7F037A98 00000000 */ nop +/* 06C5CC 7F037A9C 92290001 */ lbu $t1, 1($s1) +/* 06C5D0 7F037AA0 02C02025 */ move $a0, $s6 +/* 06C5D4 7F037AA4 02402825 */ move $a1, $s2 +/* 06C5D8 7F037AA8 0049082A */ slt $at, $v0, $t1 +/* 06C5DC 7F037AAC 50200007 */ beql $at, $zero, .L7F037ACC +/* 06C5E0 7F037AB0 26520003 */ addiu $s2, $s2, 3 +/* 06C5E4 7F037AB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5E8 7F037AB8 92260002 */ lbu $a2, 2($s1) +/* 06C5EC 7F037ABC 00409025 */ move $s2, $v0 +/* 06C5F0 7F037AC0 1000F6B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5F4 7F037AC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C5F8 7F037AC8 26520003 */ addiu $s2, $s2, 3 +.L7F037ACC: +/* 06C5FC 7F037ACC 1000F6AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C600 7F037AD0 26310003 */ addiu $s1, $s1, 3 +action71_GoIntoRVLIf_Difficulty_GTV_3: +/* 06C604 7F037AD4 0FC2FF04 */ jal get_current_difficulty +/* 06C608 7F037AD8 00000000 */ nop +/* 06C60C 7F037ADC 922A0001 */ lbu $t2, 1($s1) +/* 06C610 7F037AE0 02C02025 */ move $a0, $s6 +/* 06C614 7F037AE4 02402825 */ move $a1, $s2 +/* 06C618 7F037AE8 0142082A */ slt $at, $t2, $v0 +/* 06C61C 7F037AEC 50200007 */ beql $at, $zero, .L7F037B0C +/* 06C620 7F037AF0 26520003 */ addiu $s2, $s2, 3 +/* 06C624 7F037AF4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C628 7F037AF8 92260002 */ lbu $a2, 2($s1) +/* 06C62C 7F037AFC 00409025 */ move $s2, $v0 +/* 06C630 7F037B00 1000F6A2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C634 7F037B04 02C28821 */ addu $s1, $s6, $v0 +/* 06C638 7F037B08 26520003 */ addiu $s2, $s2, 3 +.L7F037B0C: +/* 06C63C 7F037B0C 1000F69F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C640 7F037B10 26310003 */ addiu $s1, $s1, 3 +action72_Go_To_RVL_If_Time_LTV_4: +/* 06C644 7F037B14 922B0001 */ lbu $t3, 1($s1) +/* 06C648 7F037B18 92390002 */ lbu $t9, 2($s1) +/* 06C64C 7F037B1C 000B6200 */ sll $t4, $t3, 8 +/* 06C650 7F037B20 01996825 */ or $t5, $t4, $t9 +/* 06C654 7F037B24 448D2000 */ mtc1 $t5, $f4 +/* 06C658 7F037B28 00000000 */ nop +/* 06C65C 7F037B2C 46802220 */ cvt.s.w $f8, $f4 +/* 06C660 7F037B30 0FC2FF10 */ jal get_cur_mp_sec +/* 06C664 7F037B34 E7A80400 */ swc1 $f8, 0x400($sp) +/* 06C668 7F037B38 C7AA0400 */ lwc1 $f10, 0x400($sp) +/* 06C66C 7F037B3C 02C02025 */ move $a0, $s6 +/* 06C670 7F037B40 02402825 */ move $a1, $s2 +/* 06C674 7F037B44 460A003C */ c.lt.s $f0, $f10 +/* 06C678 7F037B48 00000000 */ nop +/* 06C67C 7F037B4C 45020007 */ bc1fl .L7F037B6C +/* 06C680 7F037B50 26520004 */ addiu $s2, $s2, 4 +/* 06C684 7F037B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C688 7F037B58 92260003 */ lbu $a2, 3($s1) +/* 06C68C 7F037B5C 00409025 */ move $s2, $v0 +/* 06C690 7F037B60 1000F68A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C694 7F037B64 02C28821 */ addu $s1, $s6, $v0 +/* 06C698 7F037B68 26520004 */ addiu $s2, $s2, 4 +.L7F037B6C: +/* 06C69C 7F037B6C 1000F687 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6A0 7F037B70 26310004 */ addiu $s1, $s1, 4 +action73_Go_To_RVL_If_Time_GTV_4: +/* 06C6A4 7F037B74 922E0001 */ lbu $t6, 1($s1) +/* 06C6A8 7F037B78 92380002 */ lbu $t8, 2($s1) +/* 06C6AC 7F037B7C 000E7A00 */ sll $t7, $t6, 8 +/* 06C6B0 7F037B80 01F84825 */ or $t1, $t7, $t8 +/* 06C6B4 7F037B84 44899000 */ mtc1 $t1, $f18 +/* 06C6B8 7F037B88 00000000 */ nop +/* 06C6BC 7F037B8C 468091A0 */ cvt.s.w $f6, $f18 +/* 06C6C0 7F037B90 0FC2FF10 */ jal get_cur_mp_sec +/* 06C6C4 7F037B94 E7A603F8 */ swc1 $f6, 0x3f8($sp) +/* 06C6C8 7F037B98 C7B003F8 */ lwc1 $f16, 0x3f8($sp) +/* 06C6CC 7F037B9C 02C02025 */ move $a0, $s6 +/* 06C6D0 7F037BA0 02402825 */ move $a1, $s2 +/* 06C6D4 7F037BA4 4600803C */ c.lt.s $f16, $f0 +/* 06C6D8 7F037BA8 00000000 */ nop +/* 06C6DC 7F037BAC 45020007 */ bc1fl .L7F037BCC +/* 06C6E0 7F037BB0 26520004 */ addiu $s2, $s2, 4 +/* 06C6E4 7F037BB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C6E8 7F037BB8 92260003 */ lbu $a2, 3($s1) +/* 06C6EC 7F037BBC 00409025 */ move $s2, $v0 +/* 06C6F0 7F037BC0 1000F672 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6F4 7F037BC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C6F8 7F037BC8 26520004 */ addiu $s2, $s2, 4 +.L7F037BCC: +/* 06C6FC 7F037BCC 1000F66F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C700 7F037BD0 26310004 */ addiu $s1, $s1, 4 +action74_Go_To_RVL_If_Power_On_Time_LTV_4: +/* 06C704 7F037BD4 922A0001 */ lbu $t2, 1($s1) +/* 06C708 7F037BD8 922C0002 */ lbu $t4, 2($s1) +/* 06C70C 7F037BDC 000A5A00 */ sll $t3, $t2, 8 +/* 06C710 7F037BE0 016CC825 */ or $t9, $t3, $t4 +/* 06C714 7F037BE4 44992000 */ mtc1 $t9, $f4 +/* 06C718 7F037BE8 00000000 */ nop +/* 06C71C 7F037BEC 46802220 */ cvt.s.w $f8, $f4 +/* 06C720 7F037BF0 46164282 */ mul.s $f10, $f8, $f22 +/* 06C724 7F037BF4 0FC2FF13 */ jal get_cur_mp_min +/* 06C728 7F037BF8 E7AA03F0 */ swc1 $f10, 0x3f0($sp) +/* 06C72C 7F037BFC C7B203F0 */ lwc1 $f18, 0x3f0($sp) +/* 06C730 7F037C00 02C02025 */ move $a0, $s6 +/* 06C734 7F037C04 02402825 */ move $a1, $s2 +/* 06C738 7F037C08 4612003C */ c.lt.s $f0, $f18 +/* 06C73C 7F037C0C 00000000 */ nop +/* 06C740 7F037C10 45020007 */ bc1fl .L7F037C30 +/* 06C744 7F037C14 26520004 */ addiu $s2, $s2, 4 +/* 06C748 7F037C18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C74C 7F037C1C 92260003 */ lbu $a2, 3($s1) +/* 06C750 7F037C20 00409025 */ move $s2, $v0 +/* 06C754 7F037C24 1000F659 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C758 7F037C28 02C28821 */ addu $s1, $s6, $v0 +/* 06C75C 7F037C2C 26520004 */ addiu $s2, $s2, 4 +.L7F037C30: +/* 06C760 7F037C30 1000F656 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C764 7F037C34 26310004 */ addiu $s1, $s1, 4 +action75_Go_To_RVL_If_Power_On_Time_GTV_4: +/* 06C768 7F037C38 922D0001 */ lbu $t5, 1($s1) +/* 06C76C 7F037C3C 922F0002 */ lbu $t7, 2($s1) +/* 06C770 7F037C40 000D7200 */ sll $t6, $t5, 8 +/* 06C774 7F037C44 01CFC025 */ or $t8, $t6, $t7 +/* 06C778 7F037C48 44983000 */ mtc1 $t8, $f6 +/* 06C77C 7F037C4C 00000000 */ nop +/* 06C780 7F037C50 46803420 */ cvt.s.w $f16, $f6 +/* 06C784 7F037C54 46168102 */ mul.s $f4, $f16, $f22 +/* 06C788 7F037C58 0FC2FF13 */ jal get_cur_mp_min +/* 06C78C 7F037C5C E7A403E8 */ swc1 $f4, 0x3e8($sp) +/* 06C790 7F037C60 C7A803E8 */ lwc1 $f8, 0x3e8($sp) +/* 06C794 7F037C64 02C02025 */ move $a0, $s6 +/* 06C798 7F037C68 02402825 */ move $a1, $s2 +/* 06C79C 7F037C6C 4600403C */ c.lt.s $f8, $f0 +/* 06C7A0 7F037C70 00000000 */ nop +/* 06C7A4 7F037C74 45020007 */ bc1fl .L7F037C94 +/* 06C7A8 7F037C78 26520004 */ addiu $s2, $s2, 4 +/* 06C7AC 7F037C7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7B0 7F037C80 92260003 */ lbu $a2, 3($s1) +/* 06C7B4 7F037C84 00409025 */ move $s2, $v0 +/* 06C7B8 7F037C88 1000F640 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7BC 7F037C8C 02C28821 */ addu $s1, $s6, $v0 +/* 06C7C0 7F037C90 26520004 */ addiu $s2, $s2, 4 +.L7F037C94: +/* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 +action76_Go_To_RVL_If_Stage_Number_LTV_3: +/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7D0 7F037CA0 00000000 */ nop +/* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) +/* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 +/* 06C7DC 7F037CAC 02402825 */ move $a1, $s2 +/* 06C7E0 7F037CB0 0049082A */ slt $at, $v0, $t1 +/* 06C7E4 7F037CB4 50200007 */ beql $at, $zero, .L7F037CD4 +/* 06C7E8 7F037CB8 26520003 */ addiu $s2, $s2, 3 +/* 06C7EC 7F037CBC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7F0 7F037CC0 92260002 */ lbu $a2, 2($s1) +/* 06C7F4 7F037CC4 00409025 */ move $s2, $v0 +/* 06C7F8 7F037CC8 1000F630 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7FC 7F037CCC 02C28821 */ addu $s1, $s6, $v0 +/* 06C800 7F037CD0 26520003 */ addiu $s2, $s2, 3 +.L7F037CD4: +/* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 +action77_Go_To_RVL_If_Stage_Number_GTV_3: +/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C810 7F037CE0 00000000 */ nop +/* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) +/* 06C818 7F037CE8 02C02025 */ move $a0, $s6 +/* 06C81C 7F037CEC 02402825 */ move $a1, $s2 +/* 06C820 7F037CF0 0142082A */ slt $at, $t2, $v0 +/* 06C824 7F037CF4 50200007 */ beql $at, $zero, .L7F037D14 +/* 06C828 7F037CF8 26520003 */ addiu $s2, $s2, 3 +/* 06C82C 7F037CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C830 7F037D00 92260002 */ lbu $a2, 2($s1) +/* 06C834 7F037D04 00409025 */ move $s2, $v0 +/* 06C838 7F037D08 1000F620 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C83C 7F037D0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C840 7F037D10 26520003 */ addiu $s2, $s2, 3 +.L7F037D14: +/* 06C844 7F037D14 1000F61D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C848 7F037D18 26310003 */ addiu $s1, $s1, 3 +action81_Set_User_Byte_num1_2: +/* 06C84C 7F037D1C 922B0001 */ lbu $t3, 1($s1) +/* 06C850 7F037D20 26520002 */ addiu $s2, $s2, 2 +/* 06C854 7F037D24 26310002 */ addiu $s1, $s1, 2 +/* 06C858 7F037D28 1000F618 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C85C 7F037D2C A2EB010C */ sb $t3, 0x10c($s7) +action82_Add_Value_To_User_Byte_num1_Max_To_FF_2: +/* 06C860 7F037D30 92250001 */ lbu $a1, 1($s1) +/* 06C864 7F037D34 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C868 7F037D38 240C00FF */ li $t4, 255 +/* 06C86C 7F037D3C 0185C823 */ subu $t9, $t4, $a1 +/* 06C870 7F037D40 0322082A */ slt $at, $t9, $v0 +/* 06C874 7F037D44 10200006 */ beqz $at, .L7F037D60 +/* 06C878 7F037D48 00457021 */ addu $t6, $v0, $a1 +/* 06C87C 7F037D4C 240D00FF */ li $t5, 255 +/* 06C880 7F037D50 A2ED010C */ sb $t5, 0x10c($s7) +/* 06C884 7F037D54 26520002 */ addiu $s2, $s2, 2 +/* 06C888 7F037D58 1000F60C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C88C 7F037D5C 26310002 */ addiu $s1, $s1, 2 +.L7F037D60: +/* 06C890 7F037D60 A2EE010C */ sb $t6, 0x10c($s7) +/* 06C894 7F037D64 26520002 */ addiu $s2, $s2, 2 +/* 06C898 7F037D68 1000F608 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C89C 7F037D6C 26310002 */ addiu $s1, $s1, 2 +action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2: +/* 06C8A0 7F037D70 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C8A4 7F037D74 92250001 */ lbu $a1, 1($s1) +/* 06C8A8 7F037D78 0045082A */ slt $at, $v0, $a1 +/* 06C8AC 7F037D7C 10200005 */ beqz $at, .L7F037D94 +/* 06C8B0 7F037D80 00457823 */ subu $t7, $v0, $a1 +/* 06C8B4 7F037D84 A2E0010C */ sb $zero, 0x10c($s7) +/* 06C8B8 7F037D88 26520002 */ addiu $s2, $s2, 2 +/* 06C8BC 7F037D8C 1000F5FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8C0 7F037D90 26310002 */ addiu $s1, $s1, 2 +.L7F037D94: +/* 06C8C4 7F037D94 A2EF010C */ sb $t7, 0x10c($s7) +/* 06C8C8 7F037D98 26520002 */ addiu $s2, $s2, 2 +/* 06C8CC 7F037D9C 1000F5FB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8D0 7F037DA0 26310002 */ addiu $s1, $s1, 2 +action84_If_Value_GreaterThan_User_Byte_num1_RVL_3: +/* 06C8D4 7F037DA4 92F8010C */ lbu $t8, 0x10c($s7) +/* 06C8D8 7F037DA8 92290001 */ lbu $t1, 1($s1) +/* 06C8DC 7F037DAC 02C02025 */ move $a0, $s6 +/* 06C8E0 7F037DB0 02402825 */ move $a1, $s2 +/* 06C8E4 7F037DB4 0309082A */ slt $at, $t8, $t1 +/* 06C8E8 7F037DB8 50200007 */ beql $at, $zero, .L7F037DD8 +/* 06C8EC 7F037DBC 26520003 */ addiu $s2, $s2, 3 +/* 06C8F0 7F037DC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C8F4 7F037DC4 92260002 */ lbu $a2, 2($s1) +/* 06C8F8 7F037DC8 00409025 */ move $s2, $v0 +/* 06C8FC 7F037DCC 1000F5EF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C900 7F037DD0 02C28821 */ addu $s1, $s6, $v0 +/* 06C904 7F037DD4 26520003 */ addiu $s2, $s2, 3 +.L7F037DD8: +/* 06C908 7F037DD8 1000F5EC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C90C 7F037DDC 26310003 */ addiu $s1, $s1, 3 +action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2: +/* 06C910 7F037DE0 92EA010C */ lbu $t2, 0x10c($s7) +/* 06C914 7F037DE4 92EB010F */ lbu $t3, 0x10f($s7) +/* 06C918 7F037DE8 02C02025 */ move $a0, $s6 +/* 06C91C 7F037DEC 02402825 */ move $a1, $s2 +/* 06C920 7F037DF0 014B082A */ slt $at, $t2, $t3 +/* 06C924 7F037DF4 50200007 */ beql $at, $zero, .L7F037E14 +/* 06C928 7F037DF8 26520002 */ addiu $s2, $s2, 2 +/* 06C92C 7F037DFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C930 7F037E00 92260001 */ lbu $a2, 1($s1) +/* 06C934 7F037E04 00409025 */ move $s2, $v0 +/* 06C938 7F037E08 1000F5E0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C93C 7F037E0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C940 7F037E10 26520002 */ addiu $s2, $s2, 2 +.L7F037E14: +/* 06C944 7F037E14 1000F5DD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C948 7F037E18 26310002 */ addiu $s1, $s1, 2 +action86_Set_User_Byte_num2_2: +/* 06C94C 7F037E1C 922C0001 */ lbu $t4, 1($s1) +/* 06C950 7F037E20 26520002 */ addiu $s2, $s2, 2 +/* 06C954 7F037E24 26310002 */ addiu $s1, $s1, 2 +/* 06C958 7F037E28 1000F5D8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C95C 7F037E2C A2EC010D */ sb $t4, 0x10d($s7) +action87_Add_Value_To_User_Byte_num2_Max_To_FF_2: +/* 06C960 7F037E30 92250001 */ lbu $a1, 1($s1) +/* 06C964 7F037E34 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C968 7F037E38 241900FF */ li $t9, 255 +/* 06C96C 7F037E3C 03256823 */ subu $t5, $t9, $a1 +/* 06C970 7F037E40 01A2082A */ slt $at, $t5, $v0 +/* 06C974 7F037E44 10200006 */ beqz $at, .L7F037E60 +/* 06C978 7F037E48 00457821 */ addu $t7, $v0, $a1 +/* 06C97C 7F037E4C 240E00FF */ li $t6, 255 +/* 06C980 7F037E50 A2EE010D */ sb $t6, 0x10d($s7) +/* 06C984 7F037E54 26520002 */ addiu $s2, $s2, 2 +/* 06C988 7F037E58 1000F5CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C98C 7F037E5C 26310002 */ addiu $s1, $s1, 2 +.L7F037E60: +/* 06C990 7F037E60 A2EF010D */ sb $t7, 0x10d($s7) +/* 06C994 7F037E64 26520002 */ addiu $s2, $s2, 2 +/* 06C998 7F037E68 1000F5C8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C99C 7F037E6C 26310002 */ addiu $s1, $s1, 2 +action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2: +/* 06C9A0 7F037E70 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C9A4 7F037E74 92250001 */ lbu $a1, 1($s1) +/* 06C9A8 7F037E78 0045082A */ slt $at, $v0, $a1 +/* 06C9AC 7F037E7C 10200005 */ beqz $at, .L7F037E94 +/* 06C9B0 7F037E80 0045C023 */ subu $t8, $v0, $a1 +/* 06C9B4 7F037E84 A2E0010D */ sb $zero, 0x10d($s7) +/* 06C9B8 7F037E88 26520002 */ addiu $s2, $s2, 2 +/* 06C9BC 7F037E8C 1000F5BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9C0 7F037E90 26310002 */ addiu $s1, $s1, 2 +.L7F037E94: +/* 06C9C4 7F037E94 A2F8010D */ sb $t8, 0x10d($s7) +/* 06C9C8 7F037E98 26520002 */ addiu $s2, $s2, 2 +/* 06C9CC 7F037E9C 1000F5BB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9D0 7F037EA0 26310002 */ addiu $s1, $s1, 2 +action89_If_Value_GreaterThan_User_Byte_num2_RVL_3: +/* 06C9D4 7F037EA4 92E9010D */ lbu $t1, 0x10d($s7) +/* 06C9D8 7F037EA8 922A0001 */ lbu $t2, 1($s1) +/* 06C9DC 7F037EAC 02C02025 */ move $a0, $s6 +/* 06C9E0 7F037EB0 02402825 */ move $a1, $s2 +/* 06C9E4 7F037EB4 012A082A */ slt $at, $t1, $t2 +/* 06C9E8 7F037EB8 50200007 */ beql $at, $zero, .L7F037ED8 +/* 06C9EC 7F037EBC 26520003 */ addiu $s2, $s2, 3 +/* 06C9F0 7F037EC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C9F4 7F037EC4 92260002 */ lbu $a2, 2($s1) +/* 06C9F8 7F037EC8 00409025 */ move $s2, $v0 +/* 06C9FC 7F037ECC 1000F5AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA00 7F037ED0 02C28821 */ addu $s1, $s6, $v0 +/* 06CA04 7F037ED4 26520003 */ addiu $s2, $s2, 3 +.L7F037ED8: +/* 06CA08 7F037ED8 1000F5AC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA0C 7F037EDC 26310003 */ addiu $s1, $s1, 3 +action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2: +/* 06CA10 7F037EE0 92EB010D */ lbu $t3, 0x10d($s7) +/* 06CA14 7F037EE4 92EC010F */ lbu $t4, 0x10f($s7) +/* 06CA18 7F037EE8 02C02025 */ move $a0, $s6 +/* 06CA1C 7F037EEC 02402825 */ move $a1, $s2 +/* 06CA20 7F037EF0 016C082A */ slt $at, $t3, $t4 +/* 06CA24 7F037EF4 50200007 */ beql $at, $zero, .L7F037F14 +/* 06CA28 7F037EF8 26520002 */ addiu $s2, $s2, 2 +/* 06CA2C 7F037EFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CA30 7F037F00 92260001 */ lbu $a2, 1($s1) +/* 06CA34 7F037F04 00409025 */ move $s2, $v0 +/* 06CA38 7F037F08 1000F5A0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA3C 7F037F0C 02C28821 */ addu $s1, $s6, $v0 +/* 06CA40 7F037F10 26520002 */ addiu $s2, $s2, 2 +.L7F037F14: +/* 06CA44 7F037F14 1000F59D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA48 7F037F18 26310002 */ addiu $s1, $s1, 2 +action8B_Set_Guard_Hearing_Distance_3: +/* 06CA4C 7F037F1C 92390001 */ lbu $t9, 1($s1) +/* 06CA50 7F037F20 922E0002 */ lbu $t6, 2($s1) +/* 06CA54 7F037F24 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 06CA58 7F037F28 00196A00 */ sll $t5, $t9, 8 +/* 06CA5C 7F037F2C 01AE7825 */ or $t7, $t5, $t6 +/* 06CA60 7F037F30 448F5000 */ mtc1 $t7, $f10 +/* 06CA64 7F037F34 44813000 */ mtc1 $at, $f6 +/* 06CA68 7F037F38 26520003 */ addiu $s2, $s2, 3 +/* 06CA6C 7F037F3C 468054A0 */ cvt.s.w $f18, $f10 +/* 06CA70 7F037F40 26310003 */ addiu $s1, $s1, 3 +/* 06CA74 7F037F44 46069003 */ div.s $f0, $f18, $f6 +/* 06CA78 7F037F48 1000F590 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA7C 7F037F4C E6E000EC */ swc1 $f0, 0xec($s7) +action8C_Set_Guard_Visible_Distance_2: +/* 06CA80 7F037F50 92380001 */ lbu $t8, 1($s1) +/* 06CA84 7F037F54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06CA88 7F037F58 26520002 */ addiu $s2, $s2, 2 +/* 06CA8C 7F037F5C 44988000 */ mtc1 $t8, $f16 +/* 06CA90 7F037F60 26310002 */ addiu $s1, $s1, 2 +/* 06CA94 7F037F64 07010004 */ bgez $t8, .L7F037F78 +/* 06CA98 7F037F68 46808120 */ cvt.s.w $f4, $f16 +/* 06CA9C 7F037F6C 44814000 */ mtc1 $at, $f8 +/* 06CAA0 7F037F70 00000000 */ nop +/* 06CAA4 7F037F74 46082100 */ add.s $f4, $f4, $f8 +.L7F037F78: +/* 06CAA8 7F037F78 1000F584 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAAC 7F037F7C E6E400D0 */ swc1 $f4, 0xd0($s7) +action8D_Set_Guard_Grenade_Probability_2: +/* 06CAB0 7F037F80 92290001 */ lbu $t1, 1($s1) +/* 06CAB4 7F037F84 26520002 */ addiu $s2, $s2, 2 +/* 06CAB8 7F037F88 26310002 */ addiu $s1, $s1, 2 +/* 06CABC 7F037F8C 1000F57F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAC0 7F037F90 A2E90010 */ sb $t1, 0x10($s7) +action8E_Set_Guard_ID_2: +/* 06CAC4 7F037F94 922A0001 */ lbu $t2, 1($s1) +/* 06CAC8 7F037F98 26520002 */ addiu $s2, $s2, 2 +/* 06CACC 7F037F9C 26310002 */ addiu $s1, $s1, 2 +/* 06CAD0 7F037FA0 1000F57A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAD4 7F037FA4 A6EA0000 */ sh $t2, ($s7) +action8F_Set_Guard_Health_3: +/* 06CAD8 7F037FA8 922B0001 */ lbu $t3, 1($s1) +/* 06CADC 7F037FAC 92390002 */ lbu $t9, 2($s1) +/* 06CAE0 7F037FB0 3C018005 */ lui $at, %hi(D_800528F4) +/* 06CAE4 7F037FB4 000B6200 */ sll $t4, $t3, 8 +/* 06CAE8 7F037FB8 01996825 */ or $t5, $t4, $t9 +/* 06CAEC 7F037FBC 448D5000 */ mtc1 $t5, $f10 +/* 06CAF0 7F037FC0 C42628F4 */ lwc1 $f6, %lo(D_800528F4)($at) +/* 06CAF4 7F037FC4 02E02025 */ move $a0, $s7 +/* 06CAF8 7F037FC8 468054A0 */ cvt.s.w $f18, $f10 +/* 06CAFC 7F037FCC 46069002 */ mul.s $f0, $f18, $f6 +/* 06CB00 7F037FD0 44050000 */ mfc1 $a1, $f0 +/* 06CB04 7F037FD4 0FC08006 */ jal sub_GAME_7F020018 +/* 06CB08 7F037FD8 00000000 */ nop +/* 06CB0C 7F037FDC 26520003 */ addiu $s2, $s2, 3 +/* 06CB10 7F037FE0 1000F56A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB14 7F037FE4 26310003 */ addiu $s1, $s1, 3 +action90_Set_Guard_Armor_Amount_3: +/* 06CB18 7F037FE8 922E0001 */ lbu $t6, 1($s1) +/* 06CB1C 7F037FEC 92380002 */ lbu $t8, 2($s1) +/* 06CB20 7F037FF0 3C018005 */ lui $at, %hi(D_800528F8) +/* 06CB24 7F037FF4 000E7A00 */ sll $t7, $t6, 8 +/* 06CB28 7F037FF8 01F84825 */ or $t1, $t7, $t8 +/* 06CB2C 7F037FFC 44898000 */ mtc1 $t1, $f16 +/* 06CB30 7F038000 C42428F8 */ lwc1 $f4, %lo(D_800528F8)($at) +/* 06CB34 7F038004 02E02025 */ move $a0, $s7 +/* 06CB38 7F038008 46808220 */ cvt.s.w $f8, $f16 +/* 06CB3C 7F03800C 46044002 */ mul.s $f0, $f8, $f4 +/* 06CB40 7F038010 44050000 */ mfc1 $a1, $f0 +/* 06CB44 7F038014 0FC08015 */ jal sub_GAME_7F020054 +/* 06CB48 7F038018 00000000 */ nop +/* 06CB4C 7F03801C 26520003 */ addiu $s2, $s2, 3 +/* 06CB50 7F038020 1000F55A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB54 7F038024 26310003 */ addiu $s1, $s1, 3 +action91_Set_Character_Reaction_Speed_2: +/* 06CB58 7F038028 822A0001 */ lb $t2, 1($s1) +/* 06CB5C 7F03802C 26520002 */ addiu $s2, $s2, 2 +/* 06CB60 7F038030 26310002 */ addiu $s1, $s1, 2 +/* 06CB64 7F038034 1000F555 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB68 7F038038 A2EA0003 */ sb $t2, 3($s7) +action92_Set_Character_Injury_Recovery_Speed_2: +/* 06CB6C 7F03803C 822B0001 */ lb $t3, 1($s1) +/* 06CB70 7F038040 26520002 */ addiu $s2, $s2, 2 +/* 06CB74 7F038044 26310002 */ addiu $s1, $s1, 2 +/* 06CB78 7F038048 1000F550 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB7C 7F03804C A2EB000D */ sb $t3, 0xd($s7) +action93_Set_Character_Accuracy_2: +/* 06CB80 7F038050 822C0001 */ lb $t4, 1($s1) +/* 06CB84 7F038054 26520002 */ addiu $s2, $s2, 2 +/* 06CB88 7F038058 26310002 */ addiu $s1, $s1, 2 +/* 06CB8C 7F03805C 1000F54B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB90 7F038060 A2EC0002 */ sb $t4, 2($s7) +action94_Mask_Guard_Type_With_Value_2: +/* 06CB94 7F038064 02E02025 */ move $a0, $s7 +/* 06CB98 7F038068 0FC0CC86 */ jal sub_GAME_7F033218 +/* 06CB9C 7F03806C 92250001 */ lbu $a1, 1($s1) +/* 06CBA0 7F038070 26520002 */ addiu $s2, $s2, 2 +/* 06CBA4 7F038074 1000F545 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBA8 7F038078 26310002 */ addiu $s1, $s1, 2 +action95_Unmask_Guard_Type_With_Value_2: +/* 06CBAC 7F03807C 02E02025 */ move $a0, $s7 +/* 06CBB0 7F038080 0FC0CC8B */ jal sub_GAME_7F03322C +/* 06CBB4 7F038084 92250001 */ lbu $a1, 1($s1) +/* 06CBB8 7F038088 26520002 */ addiu $s2, $s2, 2 +/* 06CBBC 7F03808C 1000F53F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBC0 7F038090 26310002 */ addiu $s1, $s1, 2 +action96_If_Guard_Type_Value_Is_Set_RVL_3: +/* 06CBC4 7F038094 02E02025 */ move $a0, $s7 +/* 06CBC8 7F038098 0FC0CC91 */ jal sub_GAME_7F033244 +/* 06CBCC 7F03809C 92250001 */ lbu $a1, 1($s1) +/* 06CBD0 7F0380A0 10400007 */ beqz $v0, .L7F0380C0 +/* 06CBD4 7F0380A4 02C02025 */ move $a0, $s6 +/* 06CBD8 7F0380A8 02402825 */ move $a1, $s2 +/* 06CBDC 7F0380AC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CBE0 7F0380B0 92260002 */ lbu $a2, 2($s1) +/* 06CBE4 7F0380B4 00409025 */ move $s2, $v0 +/* 06CBE8 7F0380B8 1000F534 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBEC 7F0380BC 02C28821 */ addu $s1, $s6, $v0 +.L7F0380C0: +/* 06CBF0 7F0380C0 26520003 */ addiu $s2, $s2, 3 +/* 06CBF4 7F0380C4 1000F531 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBF8 7F0380C8 26310003 */ addiu $s1, $s1, 3 +action97_Mask_Guard_Type_Flags_With_Value_3: +/* 06CBFC 7F0380CC 02E02025 */ move $a0, $s7 +/* 06CC00 7F0380D0 92250001 */ lbu $a1, 1($s1) +/* 06CC04 7F0380D4 0FC0CC98 */ jal sub_GAME_7F033260 +/* 06CC08 7F0380D8 92260002 */ lbu $a2, 2($s1) +/* 06CC0C 7F0380DC 26520003 */ addiu $s2, $s2, 3 +/* 06CC10 7F0380E0 1000F52A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC14 7F0380E4 26310003 */ addiu $s1, $s1, 3 +action98_Unmask_Guard_Type_Flags_With_Value_3: +/* 06CC18 7F0380E8 02E02025 */ move $a0, $s7 +/* 06CC1C 7F0380EC 92250001 */ lbu $a1, 1($s1) +/* 06CC20 7F0380F0 0FC0CCA4 */ jal sub_GAME_7F033290 +/* 06CC24 7F0380F4 92260002 */ lbu $a2, 2($s1) +/* 06CC28 7F0380F8 26520003 */ addiu $s2, $s2, 3 +/* 06CC2C 7F0380FC 1000F523 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC30 7F038100 26310003 */ addiu $s1, $s1, 3 +action99_If_Guard_Type_Flags_Set_RVL_4: +/* 06CC34 7F038104 02E02025 */ move $a0, $s7 +/* 06CC38 7F038108 92250001 */ lbu $a1, 1($s1) +/* 06CC3C 7F03810C 0FC0CCB0 */ jal sub_GAME_7F0332C0 +/* 06CC40 7F038110 92260002 */ lbu $a2, 2($s1) +/* 06CC44 7F038114 10400007 */ beqz $v0, .L7F038134 +/* 06CC48 7F038118 02C02025 */ move $a0, $s6 +/* 06CC4C 7F03811C 02402825 */ move $a1, $s2 +/* 06CC50 7F038120 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CC54 7F038124 92260003 */ lbu $a2, 3($s1) +/* 06CC58 7F038128 00409025 */ move $s2, $v0 +/* 06CC5C 7F03812C 1000F517 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC60 7F038130 02C28821 */ addu $s1, $s6, $v0 +.L7F038134: +/* 06CC64 7F038134 26520004 */ addiu $s2, $s2, 4 +/* 06CC68 7F038138 1000F514 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC6C 7F03813C 26310004 */ addiu $s1, $s1, 4 +action9A_Set_Objective_Bits_5: +/* 06CC70 7F038140 92390001 */ lbu $t9, 1($s1) +/* 06CC74 7F038144 922E0002 */ lbu $t6, 2($s1) +/* 06CC78 7F038148 92290003 */ lbu $t1, 3($s1) +/* 06CC7C 7F03814C 00196E00 */ sll $t5, $t9, 0x18 +/* 06CC80 7F038150 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CC84 7F038154 922C0004 */ lbu $t4, 4($s1) +/* 06CC88 7F038158 01AFC025 */ or $t8, $t5, $t7 +/* 06CC8C 7F03815C 00095200 */ sll $t2, $t1, 8 +/* 06CC90 7F038160 030A5825 */ or $t3, $t8, $t2 +/* 06CC94 7F038164 02E02025 */ move $a0, $s7 +/* 06CC98 7F038168 0FC0CCBF */ jal toggle_objective_bitflags +/* 06CC9C 7F03816C 016C2825 */ or $a1, $t3, $t4 +/* 06CCA0 7F038170 26520005 */ addiu $s2, $s2, 5 +/* 06CCA4 7F038174 1000F505 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCA8 7F038178 26310005 */ addiu $s1, $s1, 5 +action9B_Unset_Objective_Value_5: +/* 06CCAC 7F03817C 92390001 */ lbu $t9, 1($s1) +/* 06CCB0 7F038180 922D0002 */ lbu $t5, 2($s1) +/* 06CCB4 7F038184 92380003 */ lbu $t8, 3($s1) +/* 06CCB8 7F038188 00197600 */ sll $t6, $t9, 0x18 +/* 06CCBC 7F03818C 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CCC0 7F038190 922C0004 */ lbu $t4, 4($s1) +/* 06CCC4 7F038194 01CF4825 */ or $t1, $t6, $t7 +/* 06CCC8 7F038198 00185200 */ sll $t2, $t8, 8 +/* 06CCCC 7F03819C 012A5825 */ or $t3, $t1, $t2 +/* 06CCD0 7F0381A0 02E02025 */ move $a0, $s7 +/* 06CCD4 7F0381A4 0FC0CCC6 */ jal untoggle_objective_bitflags +/* 06CCD8 7F0381A8 016C2825 */ or $a1, $t3, $t4 +/* 06CCDC 7F0381AC 26520005 */ addiu $s2, $s2, 5 +/* 06CCE0 7F0381B0 1000F4F6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCE4 7F0381B4 26310005 */ addiu $s1, $s1, 5 +action9C_Check_If_Objective_Value_Return_Loop_If_So_6: +/* 06CCE8 7F0381B8 92390001 */ lbu $t9, 1($s1) +/* 06CCEC 7F0381BC 922E0002 */ lbu $t6, 2($s1) +/* 06CCF0 7F0381C0 92290003 */ lbu $t1, 3($s1) +/* 06CCF4 7F0381C4 00196E00 */ sll $t5, $t9, 0x18 +/* 06CCF8 7F0381C8 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CCFC 7F0381CC 922C0004 */ lbu $t4, 4($s1) +/* 06CD00 7F0381D0 01AFC025 */ or $t8, $t5, $t7 +/* 06CD04 7F0381D4 00095200 */ sll $t2, $t1, 8 +/* 06CD08 7F0381D8 030A5825 */ or $t3, $t8, $t2 +/* 06CD0C 7F0381DC 02E02025 */ move $a0, $s7 +/* 06CD10 7F0381E0 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 06CD14 7F0381E4 016C2825 */ or $a1, $t3, $t4 +/* 06CD18 7F0381E8 10400007 */ beqz $v0, .L7F038208 +/* 06CD1C 7F0381EC 02C02025 */ move $a0, $s6 +/* 06CD20 7F0381F0 02402825 */ move $a1, $s2 +/* 06CD24 7F0381F4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CD28 7F0381F8 92260005 */ lbu $a2, 5($s1) +/* 06CD2C 7F0381FC 00409025 */ move $s2, $v0 +/* 06CD30 7F038200 1000F4E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD34 7F038204 02C28821 */ addu $s1, $s6, $v0 +.L7F038208: +/* 06CD38 7F038208 26520006 */ addiu $s2, $s2, 6 +/* 06CD3C 7F03820C 1000F4DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD40 7F038210 26310006 */ addiu $s1, $s1, 6 +action9D_Set_Guard_Bit_Tags_5: +/* 06CD44 7F038214 92390001 */ lbu $t9, 1($s1) +/* 06CD48 7F038218 922D0002 */ lbu $t5, 2($s1) +/* 06CD4C 7F03821C 92380003 */ lbu $t8, 3($s1) +/* 06CD50 7F038220 00197600 */ sll $t6, $t9, 0x18 +/* 06CD54 7F038224 922C0004 */ lbu $t4, 4($s1) +/* 06CD58 7F038228 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CD5C 7F03822C 8EF90014 */ lw $t9, 0x14($s7) +/* 06CD60 7F038230 01CF4825 */ or $t1, $t6, $t7 +/* 06CD64 7F038234 00185200 */ sll $t2, $t8, 8 +/* 06CD68 7F038238 012A5825 */ or $t3, $t1, $t2 +/* 06CD6C 7F03823C 016C1025 */ or $v0, $t3, $t4 +/* 06CD70 7F038240 03226825 */ or $t5, $t9, $v0 +/* 06CD74 7F038244 AEED0014 */ sw $t5, 0x14($s7) +/* 06CD78 7F038248 26520005 */ addiu $s2, $s2, 5 +/* 06CD7C 7F03824C 1000F4CF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD80 7F038250 26310005 */ addiu $s1, $s1, 5 +action9E_Unset_Guard_Bit_Tags_5: +/* 06CD84 7F038254 922E0001 */ lbu $t6, 1($s1) +/* 06CD88 7F038258 92380002 */ lbu $t8, 2($s1) +/* 06CD8C 7F03825C 922B0003 */ lbu $t3, 3($s1) +/* 06CD90 7F038260 922D0004 */ lbu $t5, 4($s1) +/* 06CD94 7F038264 000E7E00 */ sll $t7, $t6, 0x18 +/* 06CD98 7F038268 00184C00 */ sll $t1, $t8, 0x10 +/* 06CD9C 7F03826C 01E95025 */ or $t2, $t7, $t1 +/* 06CDA0 7F038270 000B6200 */ sll $t4, $t3, 8 +/* 06CDA4 7F038274 8EEE0014 */ lw $t6, 0x14($s7) +/* 06CDA8 7F038278 014CC825 */ or $t9, $t2, $t4 +/* 06CDAC 7F03827C 032D1025 */ or $v0, $t9, $t5 +/* 06CDB0 7F038280 0040C027 */ not $t8, $v0 +/* 06CDB4 7F038284 01D87824 */ and $t7, $t6, $t8 +/* 06CDB8 7F038288 AEEF0014 */ sw $t7, 0x14($s7) +/* 06CDBC 7F03828C 26520005 */ addiu $s2, $s2, 5 +/* 06CDC0 7F038290 1000F4BE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CDC4 7F038294 26310005 */ addiu $s1, $s1, 5 +action9F_Check_Guard_Bits_If_Same_RVL_6: +/* 06CDC8 7F038298 92290001 */ lbu $t1, 1($s1) +/* 06CDCC 7F03829C 922A0002 */ lbu $t2, 2($s1) +/* 06CDD0 7F0382A0 922D0003 */ lbu $t5, 3($s1) +/* 06CDD4 7F0382A4 00095E00 */ sll $t3, $t1, 0x18 +/* 06CDD8 7F0382A8 922F0004 */ lbu $t7, 4($s1) +/* 06CDDC 7F0382AC 000A6400 */ sll $t4, $t2, 0x10 +/* 06CDE0 7F0382B0 8EE90014 */ lw $t1, 0x14($s7) +/* 06CDE4 7F0382B4 016CC825 */ or $t9, $t3, $t4 +/* 06CDE8 7F0382B8 000D7200 */ sll $t6, $t5, 8 +/* 06CDEC 7F0382BC 032EC025 */ or $t8, $t9, $t6 +/* 06CDF0 7F0382C0 030F1025 */ or $v0, $t8, $t7 +/* 06CDF4 7F0382C4 01225024 */ and $t2, $t1, $v0 +/* 06CDF8 7F0382C8 144A0007 */ bne $v0, $t2, .L7F0382E8 +/* 06CDFC 7F0382CC 02C02025 */ move $a0, $s6 +/* 06CE00 7F0382D0 02402825 */ move $a1, $s2 +/* 06CE04 7F0382D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CE08 7F0382D8 92260005 */ lbu $a2, 5($s1) +/* 06CE0C 7F0382DC 00409025 */ move $s2, $v0 +/* 06CE10 7F0382E0 1000F4AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE14 7F0382E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0382E8: +/* 06CE18 7F0382E8 26520006 */ addiu $s2, $s2, 6 +/* 06CE1C 7F0382EC 1000F4A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE20 7F0382F0 26310006 */ addiu $s1, $s1, 6 +actionA0_Set_Guard_ID_Bits_6: +/* 06CE24 7F0382F4 922B0002 */ lbu $t3, 2($s1) +/* 06CE28 7F0382F8 922D0003 */ lbu $t5, 3($s1) +/* 06CE2C 7F0382FC 92380004 */ lbu $t8, 4($s1) +/* 06CE30 7F038300 000B6600 */ sll $t4, $t3, 0x18 +/* 06CE34 7F038304 000DCC00 */ sll $t9, $t5, 0x10 +/* 06CE38 7F038308 922A0005 */ lbu $t2, 5($s1) +/* 06CE3C 7F03830C 01997025 */ or $t6, $t4, $t9 +/* 06CE40 7F038310 00187A00 */ sll $t7, $t8, 8 +/* 06CE44 7F038314 01CF4825 */ or $t1, $t6, $t7 +/* 06CE48 7F038318 02E02025 */ move $a0, $s7 +/* 06CE4C 7F03831C 92250001 */ lbu $a1, 1($s1) +/* 06CE50 7F038320 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CE54 7F038324 012A8025 */ or $s0, $t1, $t2 +/* 06CE58 7F038328 10400004 */ beqz $v0, .L7F03833C +/* 06CE5C 7F03832C 26520006 */ addiu $s2, $s2, 6 +/* 06CE60 7F038330 8C4B0014 */ lw $t3, 0x14($v0) +/* 06CE64 7F038334 01706825 */ or $t5, $t3, $s0 +/* 06CE68 7F038338 AC4D0014 */ sw $t5, 0x14($v0) +.L7F03833C: +/* 06CE6C 7F03833C 1000F493 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE70 7F038340 26310006 */ addiu $s1, $s1, 6 +actionA1_Unset_Guard_ID_Bits_6: +/* 06CE74 7F038344 922C0002 */ lbu $t4, 2($s1) +/* 06CE78 7F038348 92380003 */ lbu $t8, 3($s1) +/* 06CE7C 7F03834C 92290004 */ lbu $t1, 4($s1) +/* 06CE80 7F038350 000CCE00 */ sll $t9, $t4, 0x18 +/* 06CE84 7F038354 00187400 */ sll $t6, $t8, 0x10 +/* 06CE88 7F038358 922D0005 */ lbu $t5, 5($s1) +/* 06CE8C 7F03835C 032E7825 */ or $t7, $t9, $t6 +/* 06CE90 7F038360 00095200 */ sll $t2, $t1, 8 +/* 06CE94 7F038364 01EA5825 */ or $t3, $t7, $t2 +/* 06CE98 7F038368 02E02025 */ move $a0, $s7 +/* 06CE9C 7F03836C 92250001 */ lbu $a1, 1($s1) +/* 06CEA0 7F038370 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEA4 7F038374 016D8025 */ or $s0, $t3, $t5 +/* 06CEA8 7F038378 10400005 */ beqz $v0, .L7F038390 +/* 06CEAC 7F03837C 26520006 */ addiu $s2, $s2, 6 +/* 06CEB0 7F038380 8C4C0014 */ lw $t4, 0x14($v0) +/* 06CEB4 7F038384 0200C027 */ not $t8, $s0 +/* 06CEB8 7F038388 0198C824 */ and $t9, $t4, $t8 +/* 06CEBC 7F03838C AC590014 */ sw $t9, 0x14($v0) +.L7F038390: +/* 06CEC0 7F038390 1000F47E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CEC4 7F038394 26310006 */ addiu $s1, $s1, 6 +actionA2_Check_Guard_Bits_If_Same_RVL_7: +/* 06CEC8 7F038398 922E0002 */ lbu $t6, 2($s1) +/* 06CECC 7F03839C 922F0003 */ lbu $t7, 3($s1) +/* 06CED0 7F0383A0 922D0004 */ lbu $t5, 4($s1) +/* 06CED4 7F0383A4 000E4E00 */ sll $t1, $t6, 0x18 +/* 06CED8 7F0383A8 000F5400 */ sll $t2, $t7, 0x10 +/* 06CEDC 7F0383AC 92390005 */ lbu $t9, 5($s1) +/* 06CEE0 7F0383B0 012A5825 */ or $t3, $t1, $t2 +/* 06CEE4 7F0383B4 000D6200 */ sll $t4, $t5, 8 +/* 06CEE8 7F0383B8 016CC025 */ or $t8, $t3, $t4 +/* 06CEEC 7F0383BC 02E02025 */ move $a0, $s7 +/* 06CEF0 7F0383C0 92250001 */ lbu $a1, 1($s1) +/* 06CEF4 7F0383C4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEF8 7F0383C8 03198025 */ or $s0, $t8, $t9 +/* 06CEFC 7F0383CC 5040000D */ beql $v0, $zero, .L7F038404 +/* 06CF00 7F0383D0 26520007 */ addiu $s2, $s2, 7 +/* 06CF04 7F0383D4 8C4E0014 */ lw $t6, 0x14($v0) +/* 06CF08 7F0383D8 02C02025 */ move $a0, $s6 +/* 06CF0C 7F0383DC 02402825 */ move $a1, $s2 +/* 06CF10 7F0383E0 01D07824 */ and $t7, $t6, $s0 +/* 06CF14 7F0383E4 560F0007 */ bnel $s0, $t7, .L7F038404 +/* 06CF18 7F0383E8 26520007 */ addiu $s2, $s2, 7 +/* 06CF1C 7F0383EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CF20 7F0383F0 92260006 */ lbu $a2, 6($s1) +/* 06CF24 7F0383F4 00409025 */ move $s2, $v0 +/* 06CF28 7F0383F8 1000F464 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF2C 7F0383FC 02C28821 */ addu $s1, $s6, $v0 +/* 06CF30 7F038400 26520007 */ addiu $s2, $s2, 7 +.L7F038404: +/* 06CF34 7F038404 1000F461 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF38 7F038408 26310007 */ addiu $s1, $s1, 7 +actionA3_Set_State_Bits_16_Type_Object_6: +/* 06CF3C 7F03840C 92290002 */ lbu $t1, 2($s1) +/* 06CF40 7F038410 922D0003 */ lbu $t5, 3($s1) +/* 06CF44 7F038414 92380004 */ lbu $t8, 4($s1) +/* 06CF48 7F038418 00095600 */ sll $t2, $t1, 0x18 +/* 06CF4C 7F03841C 000D5C00 */ sll $t3, $t5, 0x10 +/* 06CF50 7F038420 922F0005 */ lbu $t7, 5($s1) +/* 06CF54 7F038424 014B6025 */ or $t4, $t2, $t3 +/* 06CF58 7F038428 0018CA00 */ sll $t9, $t8, 8 +/* 06CF5C 7F03842C 01997025 */ or $t6, $t4, $t9 +/* 06CF60 7F038430 92240001 */ lbu $a0, 1($s1) +/* 06CF64 7F038434 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CF68 7F038438 01CF8025 */ or $s0, $t6, $t7 +/* 06CF6C 7F03843C 10400007 */ beqz $v0, .L7F03845C +/* 06CF70 7F038440 26520006 */ addiu $s2, $s2, 6 +/* 06CF74 7F038444 8C490010 */ lw $t1, 0x10($v0) +/* 06CF78 7F038448 11200004 */ beqz $t1, .L7F03845C +/* 06CF7C 7F03844C 00000000 */ nop +/* 06CF80 7F038450 8C4D0008 */ lw $t5, 8($v0) +/* 06CF84 7F038454 01B05025 */ or $t2, $t5, $s0 +/* 06CF88 7F038458 AC4A0008 */ sw $t2, 8($v0) +.L7F03845C: +/* 06CF8C 7F03845C 1000F44B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF90 7F038460 26310006 */ addiu $s1, $s1, 6 +actionA4_Unset_State_Bits_16_Type_Object_6: +/* 06CF94 7F038464 922B0002 */ lbu $t3, 2($s1) +/* 06CF98 7F038468 922C0003 */ lbu $t4, 3($s1) +/* 06CF9C 7F03846C 922F0004 */ lbu $t7, 4($s1) +/* 06CFA0 7F038470 000BC600 */ sll $t8, $t3, 0x18 +/* 06CFA4 7F038474 000CCC00 */ sll $t9, $t4, 0x10 +/* 06CFA8 7F038478 922A0005 */ lbu $t2, 5($s1) +/* 06CFAC 7F03847C 03197025 */ or $t6, $t8, $t9 +/* 06CFB0 7F038480 000F4A00 */ sll $t1, $t7, 8 +/* 06CFB4 7F038484 01C96825 */ or $t5, $t6, $t1 +/* 06CFB8 7F038488 92240001 */ lbu $a0, 1($s1) +/* 06CFBC 7F03848C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CFC0 7F038490 01AA8025 */ or $s0, $t5, $t2 +/* 06CFC4 7F038494 10400008 */ beqz $v0, .L7F0384B8 +/* 06CFC8 7F038498 26520006 */ addiu $s2, $s2, 6 +/* 06CFCC 7F03849C 8C4B0010 */ lw $t3, 0x10($v0) +/* 06CFD0 7F0384A0 11600005 */ beqz $t3, .L7F0384B8 +/* 06CFD4 7F0384A4 00000000 */ nop +/* 06CFD8 7F0384A8 8C4C0008 */ lw $t4, 8($v0) +/* 06CFDC 7F0384AC 0200C027 */ not $t8, $s0 +/* 06CFE0 7F0384B0 0198C824 */ and $t9, $t4, $t8 +/* 06CFE4 7F0384B4 AC590008 */ sw $t9, 8($v0) +.L7F0384B8: +/* 06CFE8 7F0384B8 1000F434 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CFEC 7F0384BC 26310006 */ addiu $s1, $s1, 6 +actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7: +/* 06CFF0 7F0384C0 922F0002 */ lbu $t7, 2($s1) +/* 06CFF4 7F0384C4 92290003 */ lbu $t1, 3($s1) +/* 06CFF8 7F0384C8 922B0004 */ lbu $t3, 4($s1) +/* 06CFFC 7F0384CC 000F7600 */ sll $t6, $t7, 0x18 +/* 06D000 7F0384D0 00096C00 */ sll $t5, $t1, 0x10 +/* 06D004 7F0384D4 92390005 */ lbu $t9, 5($s1) +/* 06D008 7F0384D8 01CD5025 */ or $t2, $t6, $t5 +/* 06D00C 7F0384DC 000B6200 */ sll $t4, $t3, 8 +/* 06D010 7F0384E0 014CC025 */ or $t8, $t2, $t4 +/* 06D014 7F0384E4 92240001 */ lbu $a0, 1($s1) +/* 06D018 7F0384E8 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D01C 7F0384EC 03198025 */ or $s0, $t8, $t9 +/* 06D020 7F0384F0 50400010 */ beql $v0, $zero, .L7F038534 +/* 06D024 7F0384F4 26520007 */ addiu $s2, $s2, 7 +/* 06D028 7F0384F8 8C4F0010 */ lw $t7, 0x10($v0) +/* 06D02C 7F0384FC 51E0000D */ beql $t7, $zero, .L7F038534 +/* 06D030 7F038500 26520007 */ addiu $s2, $s2, 7 +/* 06D034 7F038504 8C490008 */ lw $t1, 8($v0) +/* 06D038 7F038508 02C02025 */ move $a0, $s6 +/* 06D03C 7F03850C 02402825 */ move $a1, $s2 +/* 06D040 7F038510 01307024 */ and $t6, $t1, $s0 +/* 06D044 7F038514 560E0007 */ bnel $s0, $t6, .L7F038534 +/* 06D048 7F038518 26520007 */ addiu $s2, $s2, 7 +/* 06D04C 7F03851C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D050 7F038520 92260006 */ lbu $a2, 6($s1) +/* 06D054 7F038524 00409025 */ move $s2, $v0 +/* 06D058 7F038528 1000F418 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D05C 7F03852C 02C28821 */ addu $s1, $s6, $v0 +/* 06D060 7F038530 26520007 */ addiu $s2, $s2, 7 +.L7F038534: +/* 06D064 7F038534 1000F415 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D068 7F038538 26310007 */ addiu $s1, $s1, 7 +actionA6_Set_16_Object_States_More_6: +/* 06D06C 7F03853C 922D0002 */ lbu $t5, 2($s1) +/* 06D070 7F038540 922A0003 */ lbu $t2, 3($s1) +/* 06D074 7F038544 92390004 */ lbu $t9, 4($s1) +/* 06D078 7F038548 000D5E00 */ sll $t3, $t5, 0x18 +/* 06D07C 7F03854C 000A6400 */ sll $t4, $t2, 0x10 +/* 06D080 7F038550 922E0005 */ lbu $t6, 5($s1) +/* 06D084 7F038554 016CC025 */ or $t8, $t3, $t4 +/* 06D088 7F038558 00197A00 */ sll $t7, $t9, 8 +/* 06D08C 7F03855C 030F4825 */ or $t1, $t8, $t7 +/* 06D090 7F038560 92240001 */ lbu $a0, 1($s1) +/* 06D094 7F038564 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D098 7F038568 012E8025 */ or $s0, $t1, $t6 +/* 06D09C 7F03856C 10400007 */ beqz $v0, .L7F03858C +/* 06D0A0 7F038570 26520006 */ addiu $s2, $s2, 6 +/* 06D0A4 7F038574 8C4D0010 */ lw $t5, 0x10($v0) +/* 06D0A8 7F038578 11A00004 */ beqz $t5, .L7F03858C +/* 06D0AC 7F03857C 00000000 */ nop +/* 06D0B0 7F038580 8C4A000C */ lw $t2, 0xc($v0) +/* 06D0B4 7F038584 01505825 */ or $t3, $t2, $s0 +/* 06D0B8 7F038588 AC4B000C */ sw $t3, 0xc($v0) +.L7F03858C: +/* 06D0BC 7F03858C 1000F3FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D0C0 7F038590 26310006 */ addiu $s1, $s1, 6 +actionA7_Unset_16_Object_States_More_6: +/* 06D0C4 7F038594 922C0002 */ lbu $t4, 2($s1) +/* 06D0C8 7F038598 92380003 */ lbu $t8, 3($s1) +/* 06D0CC 7F03859C 922E0004 */ lbu $t6, 4($s1) +/* 06D0D0 7F0385A0 000CCE00 */ sll $t9, $t4, 0x18 +/* 06D0D4 7F0385A4 00187C00 */ sll $t7, $t8, 0x10 +/* 06D0D8 7F0385A8 922B0005 */ lbu $t3, 5($s1) +/* 06D0DC 7F0385AC 032F4825 */ or $t1, $t9, $t7 +/* 06D0E0 7F0385B0 000E6A00 */ sll $t5, $t6, 8 +/* 06D0E4 7F0385B4 012D5025 */ or $t2, $t1, $t5 +/* 06D0E8 7F0385B8 92240001 */ lbu $a0, 1($s1) +/* 06D0EC 7F0385BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D0F0 7F0385C0 014B8025 */ or $s0, $t2, $t3 +/* 06D0F4 7F0385C4 10400008 */ beqz $v0, .L7F0385E8 +/* 06D0F8 7F0385C8 26520006 */ addiu $s2, $s2, 6 +/* 06D0FC 7F0385CC 8C4C0010 */ lw $t4, 0x10($v0) +/* 06D100 7F0385D0 11800005 */ beqz $t4, .L7F0385E8 +/* 06D104 7F0385D4 00000000 */ nop +/* 06D108 7F0385D8 8C58000C */ lw $t8, 0xc($v0) +/* 06D10C 7F0385DC 0200C827 */ not $t9, $s0 +/* 06D110 7F0385E0 03197824 */ and $t7, $t8, $t9 +/* 06D114 7F0385E4 AC4F000C */ sw $t7, 0xc($v0) +.L7F0385E8: +/* 06D118 7F0385E8 1000F3E8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D11C 7F0385EC 26310006 */ addiu $s1, $s1, 6 +actionA8_Check_16_Object_States_More_If_Same_RVL_7: +/* 06D120 7F0385F0 922E0002 */ lbu $t6, 2($s1) +/* 06D124 7F0385F4 922D0003 */ lbu $t5, 3($s1) +/* 06D128 7F0385F8 922C0004 */ lbu $t4, 4($s1) +/* 06D12C 7F0385FC 000E4E00 */ sll $t1, $t6, 0x18 +/* 06D130 7F038600 000D5400 */ sll $t2, $t5, 0x10 +/* 06D134 7F038604 922F0005 */ lbu $t7, 5($s1) +/* 06D138 7F038608 012A5825 */ or $t3, $t1, $t2 +/* 06D13C 7F03860C 000CC200 */ sll $t8, $t4, 8 +/* 06D140 7F038610 0178C825 */ or $t9, $t3, $t8 +/* 06D144 7F038614 92240001 */ lbu $a0, 1($s1) +/* 06D148 7F038618 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D14C 7F03861C 032F8025 */ or $s0, $t9, $t7 +/* 06D150 7F038620 50400010 */ beql $v0, $zero, .L7F038664 +/* 06D154 7F038624 26520007 */ addiu $s2, $s2, 7 +/* 06D158 7F038628 8C4E0010 */ lw $t6, 0x10($v0) +/* 06D15C 7F03862C 51C0000D */ beql $t6, $zero, .L7F038664 +/* 06D160 7F038630 26520007 */ addiu $s2, $s2, 7 +/* 06D164 7F038634 8C4D000C */ lw $t5, 0xc($v0) +/* 06D168 7F038638 02C02025 */ move $a0, $s6 +/* 06D16C 7F03863C 02402825 */ move $a1, $s2 +/* 06D170 7F038640 01B04824 */ and $t1, $t5, $s0 +/* 06D174 7F038644 56090007 */ bnel $s0, $t1, .L7F038664 +/* 06D178 7F038648 26520007 */ addiu $s2, $s2, 7 +/* 06D17C 7F03864C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D180 7F038650 92260006 */ lbu $a2, 6($s1) +/* 06D184 7F038654 00409025 */ move $s2, $v0 +/* 06D188 7F038658 1000F3CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D18C 7F03865C 02C28821 */ addu $s1, $s6, $v0 +/* 06D190 7F038660 26520007 */ addiu $s2, $s2, 7 +.L7F038664: +/* 06D194 7F038664 1000F3C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D198 7F038668 26310007 */ addiu $s1, $s1, 7 +actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2: +/* 06D19C 7F03866C 02E02025 */ move $a0, $s7 +/* 06D1A0 7F038670 0FC0CF3D */ jal sub_GAME_7F033CF4 +/* 06D1A4 7F038674 92250001 */ lbu $a1, 1($s1) +/* 06D1A8 7F038678 26520002 */ addiu $s2, $s2, 2 +/* 06D1AC 7F03867C 1000F3C3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1B0 7F038680 26310002 */ addiu $s1, $s1, 2 +actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3: +/* 06D1B4 7F038684 02E02025 */ move $a0, $s7 +/* 06D1B8 7F038688 92250001 */ lbu $a1, 1($s1) +/* 06D1BC 7F03868C 0FC0CF47 */ jal sub_GAME_7F033D1C +/* 06D1C0 7F038690 92260002 */ lbu $a2, 2($s1) +/* 06D1C4 7F038694 26520003 */ addiu $s2, $s2, 3 +/* 06D1C8 7F038698 1000F3BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1CC 7F03869C 26310003 */ addiu $s1, $s1, 3 +actionAB_Set_Current_Guards_2328_Value_To_Preset_3: +/* 06D1D0 7F0386A0 922A0001 */ lbu $t2, 1($s1) +/* 06D1D4 7F0386A4 922B0002 */ lbu $t3, 2($s1) +/* 06D1D8 7F0386A8 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06D1DC 7F0386AC 000A6200 */ sll $t4, $t2, 8 +/* 06D1E0 7F0386B0 018B1025 */ or $v0, $t4, $t3 +/* 06D1E4 7F0386B4 3058FFFF */ andi $t8, $v0, 0xffff +/* 06D1E8 7F0386B8 12E00007 */ beqz $s7, .L7F0386D8 +/* 06D1EC 7F0386BC 03001025 */ move $v0, $t8 +/* 06D1F0 7F0386C0 02E02025 */ move $a0, $s7 +/* 06D1F4 7F0386C4 0FC0CF57 */ jal sub_GAME_7F033D5C +/* 06D1F8 7F0386C8 03002825 */ move $a1, $t8 +/* 06D1FC 7F0386CC 26520003 */ addiu $s2, $s2, 3 +/* 06D200 7F0386D0 1000F3AE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D204 7F0386D4 26310003 */ addiu $s1, $s1, 3 +.L7F0386D8: +/* 06D208 7F0386D8 13200002 */ beqz $t9, .L7F0386E4 +/* 06D20C 7F0386DC 26520003 */ addiu $s2, $s2, 3 +/* 06D210 7F0386E0 A7220006 */ sh $v0, 6($t9) +.L7F0386E4: +/* 06D214 7F0386E4 1000F3A9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D218 7F0386E8 26310003 */ addiu $s1, $s1, 3 +actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4: +/* 06D21C 7F0386EC 922F0002 */ lbu $t7, 2($s1) +/* 06D220 7F0386F0 922D0003 */ lbu $t5, 3($s1) +/* 06D224 7F0386F4 02E02025 */ move $a0, $s7 +/* 06D228 7F0386F8 000F7200 */ sll $t6, $t7, 8 +/* 06D22C 7F0386FC 01CD1025 */ or $v0, $t6, $t5 +/* 06D230 7F038700 3046FFFF */ andi $a2, $v0, 0xffff +/* 06D234 7F038704 0FC0CF61 */ jal sub_GAME_7F033D84 +/* 06D238 7F038708 92250001 */ lbu $a1, 1($s1) +/* 06D23C 7F03870C 26520004 */ addiu $s2, $s2, 4 +/* 06D240 7F038710 1000F39E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D244 7F038714 26310004 */ addiu $s1, $s1, 4 +actionAD_Debug_Comment_20: +/* 06D248 7F038718 02C02025 */ move $a0, $s6 +/* 06D24C 7F03871C 0FC0D27F */ jal get_length_of_action_block +/* 06D250 7F038720 02402825 */ move $a1, $s2 +/* 06D254 7F038724 02429021 */ addu $s2, $s2, $v0 +/* 06D258 7F038728 1000F398 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D25C 7F03872C 02D28821 */ addu $s1, $s6, $s2 +actionAE_Reset_Cycle_Counter_And_Enable_It_1: +/* 06D260 7F038730 0FC0CCF1 */ jal reset_and_start_loop_counter +/* 06D264 7F038734 02E02025 */ move $a0, $s7 +/* 06D268 7F038738 26520001 */ addiu $s2, $s2, 1 +/* 06D26C 7F03873C 1000F393 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D270 7F038740 26310001 */ addiu $s1, $s1, 1 +actionAF_Reset_Cycle_Counter_1: +/* 06D274 7F038744 AEE00110 */ sw $zero, 0x110($s7) +/* 06D278 7F038748 26520001 */ addiu $s2, $s2, 1 +/* 06D27C 7F03874C 1000F38F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D280 7F038750 26310001 */ addiu $s1, $s1, 1 +actionB0_Disable_Cycle_Counter_1: +/* 06D284 7F038754 96EA0012 */ lhu $t2, 0x12($s7) +/* 06D288 7F038758 26520001 */ addiu $s2, $s2, 1 +/* 06D28C 7F03875C 26310001 */ addiu $s1, $s1, 1 +/* 06D290 7F038760 314CFFBF */ andi $t4, $t2, 0xffbf +/* 06D294 7F038764 1000F389 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D298 7F038768 A6EC0012 */ sh $t4, 0x12($s7) +actionB1_Enable_Cycle_Counter_1: +/* 06D29C 7F03876C 96EB0012 */ lhu $t3, 0x12($s7) +/* 06D2A0 7F038770 26520001 */ addiu $s2, $s2, 1 +/* 06D2A4 7F038774 26310001 */ addiu $s1, $s1, 1 +/* 06D2A8 7F038778 35780040 */ ori $t8, $t3, 0x40 +/* 06D2AC 7F03877C 1000F383 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2B0 7F038780 A6F80012 */ sh $t8, 0x12($s7) +actionB2_Check_Cycle_Counter_Enable_Status_2: +/* 06D2B4 7F038784 96F90012 */ lhu $t9, 0x12($s7) +/* 06D2B8 7F038788 02C02025 */ move $a0, $s6 +/* 06D2BC 7F03878C 02402825 */ move $a1, $s2 +/* 06D2C0 7F038790 332F0040 */ andi $t7, $t9, 0x40 +/* 06D2C4 7F038794 55E00007 */ bnezl $t7, .L7F0387B4 +/* 06D2C8 7F038798 26520002 */ addiu $s2, $s2, 2 +/* 06D2CC 7F03879C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D2D0 7F0387A0 92260001 */ lbu $a2, 1($s1) +/* 06D2D4 7F0387A4 00409025 */ move $s2, $v0 +/* 06D2D8 7F0387A8 1000F378 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2DC 7F0387AC 02C28821 */ addu $s1, $s6, $v0 +/* 06D2E0 7F0387B0 26520002 */ addiu $s2, $s2, 2 +.L7F0387B4: +/* 06D2E4 7F0387B4 1000F375 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2E8 7F0387B8 26310002 */ addiu $s1, $s1, 2 +actionB3_If_Cycle_Counter_LTV_RVL_5: +/* 06D2EC 7F0387BC 922E0001 */ lbu $t6, 1($s1) +/* 06D2F0 7F0387C0 92290002 */ lbu $t1, 2($s1) +/* 06D2F4 7F0387C4 922B0003 */ lbu $t3, 3($s1) +/* 06D2F8 7F0387C8 000E6C00 */ sll $t5, $t6, 0x10 +/* 06D2FC 7F0387CC 00095200 */ sll $t2, $t1, 8 +/* 06D300 7F0387D0 01AA6025 */ or $t4, $t5, $t2 +/* 06D304 7F0387D4 018BC025 */ or $t8, $t4, $t3 +/* 06D308 7F0387D8 44985000 */ mtc1 $t8, $f10 +/* 06D30C 7F0387DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D310 7F0387E0 07010004 */ bgez $t8, .L7F0387F4 +/* 06D314 7F0387E4 468054A0 */ cvt.s.w $f18, $f10 +/* 06D318 7F0387E8 44813000 */ mtc1 $at, $f6 +/* 06D31C 7F0387EC 00000000 */ nop +/* 06D320 7F0387F0 46069480 */ add.s $f18, $f18, $f6 +.L7F0387F4: +/* 06D324 7F0387F4 46169403 */ div.s $f16, $f18, $f22 +/* 06D328 7F0387F8 02E02025 */ move $a0, $s7 +/* 06D32C 7F0387FC 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D330 7F038800 E7B002B0 */ swc1 $f16, 0x2b0($sp) +/* 06D334 7F038804 C7A802B0 */ lwc1 $f8, 0x2b0($sp) +/* 06D338 7F038808 02C02025 */ move $a0, $s6 +/* 06D33C 7F03880C 02402825 */ move $a1, $s2 +/* 06D340 7F038810 4608003C */ c.lt.s $f0, $f8 +/* 06D344 7F038814 00000000 */ nop +/* 06D348 7F038818 45020007 */ bc1fl .L7F038838 +/* 06D34C 7F03881C 26520005 */ addiu $s2, $s2, 5 +/* 06D350 7F038820 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D354 7F038824 92260004 */ lbu $a2, 4($s1) +/* 06D358 7F038828 00409025 */ move $s2, $v0 +/* 06D35C 7F03882C 1000F357 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D360 7F038830 02C28821 */ addu $s1, $s6, $v0 +/* 06D364 7F038834 26520005 */ addiu $s2, $s2, 5 +.L7F038838: +/* 06D368 7F038838 1000F354 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D36C 7F03883C 26310005 */ addiu $s1, $s1, 5 +actionB4_If_Cycle_Counter_GTV_RVL_5: +/* 06D370 7F038840 92390001 */ lbu $t9, 1($s1) +/* 06D374 7F038844 922E0002 */ lbu $t6, 2($s1) +/* 06D378 7F038848 922A0003 */ lbu $t2, 3($s1) +/* 06D37C 7F03884C 00197C00 */ sll $t7, $t9, 0x10 +/* 06D380 7F038850 000E4A00 */ sll $t1, $t6, 8 +/* 06D384 7F038854 01E96825 */ or $t5, $t7, $t1 +/* 06D388 7F038858 01AA6025 */ or $t4, $t5, $t2 +/* 06D38C 7F03885C 448C2000 */ mtc1 $t4, $f4 +/* 06D390 7F038860 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D394 7F038864 05810004 */ bgez $t4, .L7F038878 +/* 06D398 7F038868 468022A0 */ cvt.s.w $f10, $f4 +/* 06D39C 7F03886C 44813000 */ mtc1 $at, $f6 +/* 06D3A0 7F038870 00000000 */ nop +/* 06D3A4 7F038874 46065280 */ add.s $f10, $f10, $f6 +.L7F038878: +/* 06D3A8 7F038878 46165483 */ div.s $f18, $f10, $f22 +/* 06D3AC 7F03887C 02E02025 */ move $a0, $s7 +/* 06D3B0 7F038880 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D3B4 7F038884 E7B202A8 */ swc1 $f18, 0x2a8($sp) +/* 06D3B8 7F038888 C7B002A8 */ lwc1 $f16, 0x2a8($sp) +/* 06D3BC 7F03888C 02C02025 */ move $a0, $s6 +/* 06D3C0 7F038890 02402825 */ move $a1, $s2 +/* 06D3C4 7F038894 4600803C */ c.lt.s $f16, $f0 +/* 06D3C8 7F038898 00000000 */ nop +/* 06D3CC 7F03889C 45020007 */ bc1fl .L7F0388BC +/* 06D3D0 7F0388A0 26520005 */ addiu $s2, $s2, 5 +/* 06D3D4 7F0388A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D3D8 7F0388A8 92260004 */ lbu $a2, 4($s1) +/* 06D3DC 7F0388AC 00409025 */ move $s2, $v0 +/* 06D3E0 7F0388B0 1000F336 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3E4 7F0388B4 02C28821 */ addu $s1, $s6, $v0 +/* 06D3E8 7F0388B8 26520005 */ addiu $s2, $s2, 5 +.L7F0388BC: +/* 06D3EC 7F0388BC 1000F333 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3F0 7F0388C0 26310005 */ addiu $s1, $s1, 5 +actionB5_Show_Timer_1: +/* 06D3F4 7F0388C4 24040001 */ li $a0, 1 +/* 06D3F8 7F0388C8 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D3FC 7F0388CC 24050001 */ li $a1, 1 +/* 06D400 7F0388D0 26520001 */ addiu $s2, $s2, 1 +/* 06D404 7F0388D4 1000F32D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D408 7F0388D8 26310001 */ addiu $s1, $s1, 1 +actionB6_Hide_Timer_Silent_Countdown_1: +/* 06D40C 7F0388DC 24040001 */ li $a0, 1 +/* 06D410 7F0388E0 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D414 7F0388E4 00002825 */ move $a1, $zero +/* 06D418 7F0388E8 26520001 */ addiu $s2, $s2, 1 +/* 06D41C 7F0388EC 1000F327 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D420 7F0388F0 26310001 */ addiu $s1, $s1, 1 +actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3: +/* 06D424 7F0388F4 922B0001 */ lbu $t3, 1($s1) +/* 06D428 7F0388F8 92390002 */ lbu $t9, 2($s1) +/* 06D42C 7F0388FC 000BC200 */ sll $t8, $t3, 8 +/* 06D430 7F038900 03197025 */ or $t6, $t8, $t9 +/* 06D434 7F038904 448E4000 */ mtc1 $t6, $f8 +/* 06D438 7F038908 00000000 */ nop +/* 06D43C 7F03890C 46804020 */ cvt.s.w $f0, $f8 +/* 06D440 7F038910 46160302 */ mul.s $f12, $f0, $f22 +/* 06D444 7F038914 0FC1586C */ jal set_clock_time +/* 06D448 7F038918 00000000 */ nop +/* 06D44C 7F03891C 26520003 */ addiu $s2, $s2, 3 +/* 06D450 7F038920 1000F31A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D454 7F038924 26310003 */ addiu $s1, $s1, 3 +actionB8_Stop_Timer_1: +/* 06D458 7F038928 0FC15872 */ jal set_clock_enable +/* 06D45C 7F03892C 00002025 */ move $a0, $zero +/* 06D460 7F038930 26520001 */ addiu $s2, $s2, 1 +/* 06D464 7F038934 1000F315 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D468 7F038938 26310001 */ addiu $s1, $s1, 1 +actionB9_Start_Timer_1: +/* 06D46C 7F03893C 0FC15872 */ jal set_clock_enable +/* 06D470 7F038940 24040001 */ li $a0, 1 +/* 06D474 7F038944 26520001 */ addiu $s2, $s2, 1 +/* 06D478 7F038948 1000F310 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D47C 7F03894C 26310001 */ addiu $s1, $s1, 1 +actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2: +/* 06D480 7F038950 0FC15875 */ jal get_clock_enable +/* 06D484 7F038954 00000000 */ nop +/* 06D488 7F038958 14400007 */ bnez $v0, .L7F038978 +/* 06D48C 7F03895C 02C02025 */ move $a0, $s6 +/* 06D490 7F038960 02402825 */ move $a1, $s2 +/* 06D494 7F038964 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D498 7F038968 92260001 */ lbu $a2, 1($s1) +/* 06D49C 7F03896C 00409025 */ move $s2, $v0 +/* 06D4A0 7F038970 1000F306 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4A4 7F038974 02C28821 */ addu $s1, $s6, $v0 +.L7F038978: +/* 06D4A8 7F038978 26520002 */ addiu $s2, $s2, 2 +/* 06D4AC 7F03897C 1000F303 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4B0 7F038980 26310002 */ addiu $s1, $s1, 2 +actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4: +/* 06D4B4 7F038984 922F0001 */ lbu $t7, 1($s1) +/* 06D4B8 7F038988 922D0002 */ lbu $t5, 2($s1) +/* 06D4BC 7F03898C 000F4A00 */ sll $t1, $t7, 8 +/* 06D4C0 7F038990 012D5025 */ or $t2, $t1, $t5 +/* 06D4C4 7F038994 448A2000 */ mtc1 $t2, $f4 +/* 06D4C8 7F038998 00000000 */ nop +/* 06D4CC 7F03899C 468021A0 */ cvt.s.w $f6, $f4 +/* 06D4D0 7F0389A0 0FC1586F */ jal get_clock_time +/* 06D4D4 7F0389A4 E7A60294 */ swc1 $f6, 0x294($sp) +/* 06D4D8 7F0389A8 C7AA0294 */ lwc1 $f10, 0x294($sp) +/* 06D4DC 7F0389AC 02C02025 */ move $a0, $s6 +/* 06D4E0 7F0389B0 02402825 */ move $a1, $s2 +/* 06D4E4 7F0389B4 46165482 */ mul.s $f18, $f10, $f22 +/* 06D4E8 7F0389B8 4612003C */ c.lt.s $f0, $f18 +/* 06D4EC 7F0389BC 00000000 */ nop +/* 06D4F0 7F0389C0 45020007 */ bc1fl .L7F0389E0 +/* 06D4F4 7F0389C4 26520004 */ addiu $s2, $s2, 4 +/* 06D4F8 7F0389C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D4FC 7F0389CC 92260003 */ lbu $a2, 3($s1) +/* 06D500 7F0389D0 00409025 */ move $s2, $v0 +/* 06D504 7F0389D4 1000F2ED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D508 7F0389D8 02C28821 */ addu $s1, $s6, $v0 +/* 06D50C 7F0389DC 26520004 */ addiu $s2, $s2, 4 +.L7F0389E0: +/* 06D510 7F0389E0 1000F2EA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D514 7F0389E4 26310004 */ addiu $s1, $s1, 4 +actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4: +/* 06D518 7F0389E8 922C0001 */ lbu $t4, 1($s1) +/* 06D51C 7F0389EC 92380002 */ lbu $t8, 2($s1) +/* 06D520 7F0389F0 000C5A00 */ sll $t3, $t4, 8 +/* 06D524 7F0389F4 0178C825 */ or $t9, $t3, $t8 +/* 06D528 7F0389F8 44998000 */ mtc1 $t9, $f16 +/* 06D52C 7F0389FC 00000000 */ nop +/* 06D530 7F038A00 46808220 */ cvt.s.w $f8, $f16 +/* 06D534 7F038A04 0FC1586F */ jal get_clock_time +/* 06D538 7F038A08 E7A8028C */ swc1 $f8, 0x28c($sp) +/* 06D53C 7F038A0C C7A4028C */ lwc1 $f4, 0x28c($sp) +/* 06D540 7F038A10 02C02025 */ move $a0, $s6 +/* 06D544 7F038A14 02402825 */ move $a1, $s2 +/* 06D548 7F038A18 46162182 */ mul.s $f6, $f4, $f22 +/* 06D54C 7F038A1C 4600303C */ c.lt.s $f6, $f0 +/* 06D550 7F038A20 00000000 */ nop +/* 06D554 7F038A24 45020007 */ bc1fl .L7F038A44 +/* 06D558 7F038A28 26520004 */ addiu $s2, $s2, 4 +/* 06D55C 7F038A2C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D560 7F038A30 92260003 */ lbu $a2, 3($s1) +/* 06D564 7F038A34 00409025 */ move $s2, $v0 +/* 06D568 7F038A38 1000F2D4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D56C 7F038A3C 02C28821 */ addu $s1, $s6, $v0 +/* 06D570 7F038A40 26520004 */ addiu $s2, $s2, 4 +.L7F038A44: +/* 06D574 7F038A44 1000F2D1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D578 7F038A48 26310004 */ addiu $s1, $s1, 4 +actionBD_Spawn_Guard_C: +/* 06D57C 7F038A4C 922E0003 */ lbu $t6, 3($s1) +/* 06D580 7F038A50 92290004 */ lbu $t1, 4($s1) +/* 06D584 7F038A54 922A0007 */ lbu $t2, 7($s1) +/* 06D588 7F038A58 000E7A00 */ sll $t7, $t6, 8 +/* 06D58C 7F038A5C 922B0008 */ lbu $t3, 8($s1) +/* 06D590 7F038A60 01E98025 */ or $s0, $t7, $t1 +/* 06D594 7F038A64 922E0009 */ lbu $t6, 9($s1) +/* 06D598 7F038A68 320DFFFF */ andi $t5, $s0, 0xffff +/* 06D59C 7F038A6C 01A08025 */ move $s0, $t5 +/* 06D5A0 7F038A70 922D000A */ lbu $t5, 0xa($s1) +/* 06D5A4 7F038A74 000A6600 */ sll $t4, $t2, 0x18 +/* 06D5A8 7F038A78 000BC400 */ sll $t8, $t3, 0x10 +/* 06D5AC 7F038A7C 0198C825 */ or $t9, $t4, $t8 +/* 06D5B0 7F038A80 000E7A00 */ sll $t7, $t6, 8 +/* 06D5B4 7F038A84 032F4825 */ or $t1, $t9, $t7 +/* 06D5B8 7F038A88 012D5025 */ or $t2, $t1, $t5 +/* 06D5BC 7F038A8C AFAA0280 */ sw $t2, 0x280($sp) +/* 06D5C0 7F038A90 922B0005 */ lbu $t3, 5($s1) +/* 06D5C4 7F038A94 92380006 */ lbu $t8, 6($s1) +/* 06D5C8 7F038A98 000B6200 */ sll $t4, $t3, 8 +/* 06D5CC 7F038A9C 01981025 */ or $v0, $t4, $t8 +/* 06D5D0 7F038AA0 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D5D4 7F038AA4 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D5D8 7F038AA8 8FB90280 */ lw $t9, 0x280($sp) +/* 06D5DC 7F038AAC 92250001 */ lbu $a1, 1($s1) +/* 06D5E0 7F038AB0 82260002 */ lb $a2, 2($s1) +/* 06D5E4 7F038AB4 AFA20010 */ sw $v0, 0x10($sp) +/* 06D5E8 7F038AB8 02E02025 */ move $a0, $s7 +/* 06D5EC 7F038ABC 02003825 */ move $a3, $s0 +/* 06D5F0 7F038AC0 0FC0D096 */ jal guard_constructor_BD +/* 06D5F4 7F038AC4 AFB90014 */ sw $t9, 0x14($sp) +/* 06D5F8 7F038AC8 10400007 */ beqz $v0, .L7F038AE8 +/* 06D5FC 7F038ACC 02C02025 */ move $a0, $s6 +/* 06D600 7F038AD0 02402825 */ move $a1, $s2 +/* 06D604 7F038AD4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D608 7F038AD8 9226000B */ lbu $a2, 0xb($s1) +/* 06D60C 7F038ADC 00409025 */ move $s2, $v0 +/* 06D610 7F038AE0 1000F2AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D614 7F038AE4 02C28821 */ addu $s1, $s6, $v0 +.L7F038AE8: +/* 06D618 7F038AE8 2652000C */ addiu $s2, $s2, 0xc +/* 06D61C 7F038AEC 1000F2A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D620 7F038AF0 2631000C */ addiu $s1, $s1, 0xc +actionBE_Respawn_Guard_with_ID_B: +/* 06D624 7F038AF4 922F0006 */ lbu $t7, 6($s1) +/* 06D628 7F038AF8 922D0007 */ lbu $t5, 7($s1) +/* 06D62C 7F038AFC 922C0008 */ lbu $t4, 8($s1) +/* 06D630 7F038B00 000F4E00 */ sll $t1, $t7, 0x18 +/* 06D634 7F038B04 000D5400 */ sll $t2, $t5, 0x10 +/* 06D638 7F038B08 922F0004 */ lbu $t7, 4($s1) +/* 06D63C 7F038B0C 012A5825 */ or $t3, $t1, $t2 +/* 06D640 7F038B10 92290005 */ lbu $t1, 5($s1) +/* 06D644 7F038B14 92390009 */ lbu $t9, 9($s1) +/* 06D648 7F038B18 000CC200 */ sll $t8, $t4, 8 +/* 06D64C 7F038B1C 000F6A00 */ sll $t5, $t7, 8 +/* 06D650 7F038B20 01787025 */ or $t6, $t3, $t8 +/* 06D654 7F038B24 01A91025 */ or $v0, $t5, $t1 +/* 06D658 7F038B28 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D65C 7F038B2C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D660 7F038B30 01D98025 */ or $s0, $t6, $t9 +/* 06D664 7F038B34 92250001 */ lbu $a1, 1($s1) +/* 06D668 7F038B38 82260002 */ lb $a2, 2($s1) +/* 06D66C 7F038B3C 92270003 */ lbu $a3, 3($s1) +/* 06D670 7F038B40 AFB00014 */ sw $s0, 0x14($sp) +/* 06D674 7F038B44 AFA20010 */ sw $v0, 0x10($sp) +/* 06D678 7F038B48 0FC0D0C2 */ jal guard_constructor_BE +/* 06D67C 7F038B4C 02E02025 */ move $a0, $s7 +/* 06D680 7F038B50 10400007 */ beqz $v0, .L7F038B70 +/* 06D684 7F038B54 02C02025 */ move $a0, $s6 +/* 06D688 7F038B58 02402825 */ move $a1, $s2 +/* 06D68C 7F038B5C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D690 7F038B60 9226000A */ lbu $a2, 0xa($s1) +/* 06D694 7F038B64 00409025 */ move $s2, $v0 +/* 06D698 7F038B68 1000F288 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D69C 7F038B6C 02C28821 */ addu $s1, $s6, $v0 +.L7F038B70: +/* 06D6A0 7F038B70 2652000B */ addiu $s2, $s2, 0xb +/* 06D6A4 7F038B74 1000F285 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D6A8 7F038B78 2631000B */ addiu $s1, $s1, 0xb +actionBF_Spawn_Weapon_9: +/* 06D6AC 7F038B7C 922C0004 */ lbu $t4, 4($s1) +/* 06D6B0 7F038B80 92380005 */ lbu $t8, 5($s1) +/* 06D6B4 7F038B84 922F0006 */ lbu $t7, 6($s1) +/* 06D6B8 7F038B88 000C5E00 */ sll $t3, $t4, 0x18 +/* 06D6BC 7F038B8C 922C0001 */ lbu $t4, 1($s1) +/* 06D6C0 7F038B90 00187400 */ sll $t6, $t8, 0x10 +/* 06D6C4 7F038B94 016EC825 */ or $t9, $t3, $t6 +/* 06D6C8 7F038B98 922A0007 */ lbu $t2, 7($s1) +/* 06D6CC 7F038B9C 922B0002 */ lbu $t3, 2($s1) +/* 06D6D0 7F038BA0 000F6A00 */ sll $t5, $t7, 8 +/* 06D6D4 7F038BA4 032D4825 */ or $t1, $t9, $t5 +/* 06D6D8 7F038BA8 000CC200 */ sll $t8, $t4, 8 +/* 06D6DC 7F038BAC 00001825 */ move $v1, $zero +/* 06D6E0 7F038BB0 012A8025 */ or $s0, $t1, $t2 +/* 06D6E4 7F038BB4 12E00027 */ beqz $s7, .L7F038C54 +/* 06D6E8 7F038BB8 030B9825 */ or $s3, $t8, $t3 +/* 06D6EC 7F038BBC 8EEE0018 */ lw $t6, 0x18($s7) +/* 06D6F0 7F038BC0 11C00024 */ beqz $t6, .L7F038C54 +/* 06D6F4 7F038BC4 00000000 */ nop +/* 06D6F8 7F038BC8 8EEF001C */ lw $t7, 0x1c($s7) +/* 06D6FC 7F038BCC 11E00021 */ beqz $t7, .L7F038C54 +/* 06D700 7F038BD0 00000000 */ nop +/* 06D704 7F038BD4 0FC249EF */ jal cheatCheckIfOn +/* 06D708 7F038BD8 2404001C */ li $a0, 28 +/* 06D70C 7F038BDC 50400018 */ beql $v0, $zero, .L7F038C40 +/* 06D710 7F038BE0 02E02025 */ move $a0, $s7 +/* 06D714 7F038BE4 92260003 */ lbu $a2, 3($s1) +/* 06D718 7F038BE8 24D9FFFE */ addiu $t9, $a2, -2 +/* 06D71C 7F038BEC 2F21001E */ sltiu $at, $t9, 0x1e +/* 06D720 7F038BF0 1020000C */ beqz $at, .L7F038C24 +/* 06D724 7F038BF4 0019C880 */ sll $t9, $t9, 2 +/* 06D728 7F038BF8 3C018005 */ lui $at, %hi(jpt_800528FC) +/* 06D72C 7F038BFC 00390821 */ addu $at, $at, $t9 +/* 06D730 7F038C00 8C3928FC */ lw $t9, %lo(jpt_800528FC)($at) +.L7F038C04: +/* 06D734 7F038C04 03200008 */ jr $t9 +/* 06D738 7F038C08 00000000 */ nop +loc_CODE_7F038C0C: +/* 06D73C 7F038C0C 02E02025 */ move $a0, $s7 +/* 06D740 7F038C10 240500D3 */ li $a1, 211 +/* 06D744 7F038C14 24060019 */ li $a2, 25 +/* 06D748 7F038C18 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D74C 7F038C1C 02003825 */ move $a3, $s0 +/* 06D750 7F038C20 92260003 */ lbu $a2, 3($s1) +.L7F038C24: +/* 06D754 7F038C24 02E02025 */ move $a0, $s7 +/* 06D758 7F038C28 02602825 */ move $a1, $s3 +/* 06D75C 7F038C2C 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D760 7F038C30 02003825 */ move $a3, $s0 +/* 06D764 7F038C34 10000007 */ b .L7F038C54 +/* 06D768 7F038C38 00401825 */ move $v1, $v0 +/* 06D76C 7F038C3C 02E02025 */ move $a0, $s7 +.L7F038C40: +/* 06D770 7F038C40 02602825 */ move $a1, $s3 +/* 06D774 7F038C44 92260003 */ lbu $a2, 3($s1) +/* 06D778 7F038C48 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D77C 7F038C4C 02003825 */ move $a3, $s0 +/* 06D780 7F038C50 00401825 */ move $v1, $v0 +.L7F038C54: +/* 06D784 7F038C54 10600007 */ beqz $v1, .L7F038C74 +/* 06D788 7F038C58 02C02025 */ move $a0, $s6 +/* 06D78C 7F038C5C 02402825 */ move $a1, $s2 +/* 06D790 7F038C60 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D794 7F038C64 92260008 */ lbu $a2, 8($s1) +/* 06D798 7F038C68 00409025 */ move $s2, $v0 +/* 06D79C 7F038C6C 1000F247 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7A0 7F038C70 02C28821 */ addu $s1, $s6, $v0 +.L7F038C74: +/* 06D7A4 7F038C74 26520009 */ addiu $s2, $s2, 9 +/* 06D7A8 7F038C78 1000F244 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7AC 7F038C7C 26310009 */ addiu $s1, $s1, 9 +actionC0_Spawn_Hat_8: +/* 06D7B0 7F038C80 922D0003 */ lbu $t5, 3($s1) +/* 06D7B4 7F038C84 922A0004 */ lbu $t2, 4($s1) +/* 06D7B8 7F038C88 922B0005 */ lbu $t3, 5($s1) +/* 06D7BC 7F038C8C 000D4E00 */ sll $t1, $t5, 0x18 +/* 06D7C0 7F038C90 922D0001 */ lbu $t5, 1($s1) +/* 06D7C4 7F038C94 000A6400 */ sll $t4, $t2, 0x10 +/* 06D7C8 7F038C98 012CC025 */ or $t8, $t1, $t4 +/* 06D7CC 7F038C9C 92390006 */ lbu $t9, 6($s1) +/* 06D7D0 7F038CA0 92290002 */ lbu $t1, 2($s1) +/* 06D7D4 7F038CA4 000B7200 */ sll $t6, $t3, 8 +/* 06D7D8 7F038CA8 030E7825 */ or $t7, $t8, $t6 +/* 06D7DC 7F038CAC 000D5200 */ sll $t2, $t5, 8 +/* 06D7E0 7F038CB0 00001825 */ move $v1, $zero +/* 06D7E4 7F038CB4 01F93025 */ or $a2, $t7, $t9 +/* 06D7E8 7F038CB8 12E0000A */ beqz $s7, .L7F038CE4 +/* 06D7EC 7F038CBC 01492825 */ or $a1, $t2, $t1 +/* 06D7F0 7F038CC0 8EEC0018 */ lw $t4, 0x18($s7) +/* 06D7F4 7F038CC4 11800007 */ beqz $t4, .L7F038CE4 +/* 06D7F8 7F038CC8 00000000 */ nop +/* 06D7FC 7F038CCC 8EEB001C */ lw $t3, 0x1c($s7) +/* 06D800 7F038CD0 11600004 */ beqz $t3, .L7F038CE4 +/* 06D804 7F038CD4 00000000 */ nop +/* 06D808 7F038CD8 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D80C 7F038CDC 02E02025 */ move $a0, $s7 +/* 06D810 7F038CE0 00401825 */ move $v1, $v0 +.L7F038CE4: +/* 06D814 7F038CE4 10600007 */ beqz $v1, .L7F038D04 +/* 06D818 7F038CE8 02C02025 */ move $a0, $s6 +/* 06D81C 7F038CEC 02402825 */ move $a1, $s2 +/* 06D820 7F038CF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D824 7F038CF4 92260007 */ lbu $a2, 7($s1) +/* 06D828 7F038CF8 00409025 */ move $s2, $v0 +/* 06D82C 7F038CFC 1000F223 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D830 7F038D00 02C28821 */ addu $s1, $s6, $v0 +.L7F038D04: +/* 06D834 7F038D04 26520008 */ addiu $s2, $s2, 8 +/* 06D838 7F038D08 1000F220 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D83C 7F038D0C 26310008 */ addiu $s1, $s1, 8 +actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5: +/* 06D840 7F038D10 92380002 */ lbu $t8, 2($s1) +/* 06D844 7F038D14 922F0003 */ lbu $t7, 3($s1) +/* 06D848 7F038D18 AFA0020C */ sw $zero, 0x20c($sp) +/* 06D84C 7F038D1C 00187200 */ sll $t6, $t8, 8 +/* 06D850 7F038D20 01CF1025 */ or $v0, $t6, $t7 +/* 06D854 7F038D24 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D858 7F038D28 AFA00210 */ sw $zero, 0x210($sp) +/* 06D85C 7F038D2C AFA00234 */ sw $zero, 0x234($sp) +/* 06D860 7F038D30 00009825 */ move $s3, $zero +/* 06D864 7F038D34 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D868 7F038D38 0000A025 */ move $s4, $zero +/* 06D86C 7F038D3C 00408025 */ move $s0, $v0 +/* 06D870 7F038D40 02E02025 */ move $a0, $s7 +/* 06D874 7F038D44 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D878 7F038D48 92250001 */ lbu $a1, 1($s1) +/* 06D87C 7F038D4C 10400051 */ beqz $v0, .L7F038E94 +/* 06D880 7F038D50 0040A825 */ move $s5, $v0 +/* 06D884 7F038D54 8C4D0014 */ lw $t5, 0x14($v0) +/* 06D888 7F038D58 02E02025 */ move $a0, $s7 +/* 06D88C 7F038D5C 31AA0002 */ andi $t2, $t5, 2 +/* 06D890 7F038D60 5140004D */ beql $t2, $zero, .L7F038E98 +/* 06D894 7F038D64 8FA90234 */ lw $t1, 0x234($sp) +/* 06D898 7F038D68 8045000F */ lb $a1, 0xf($v0) +/* 06D89C 7F038D6C 84470000 */ lh $a3, ($v0) +/* 06D8A0 7F038D70 AFA00014 */ sw $zero, 0x14($sp) +/* 06D8A4 7F038D74 AFB00010 */ sw $s0, 0x10($sp) +/* 06D8A8 7F038D78 0FC0D0C2 */ jal guard_constructor_BE +/* 06D8AC 7F038D7C 2406FFFF */ li $a2, -1 +/* 06D8B0 7F038D80 50400045 */ beql $v0, $zero, .L7F038E98 +/* 06D8B4 7F038D84 8FA90234 */ lw $t1, 0x234($sp) +/* 06D8B8 7F038D88 8C490004 */ lw $t1, 4($v0) +/* 06D8BC 7F038D8C 02E02025 */ move $a0, $s7 +/* 06D8C0 7F038D90 AFA90218 */ sw $t1, 0x218($sp) +/* 06D8C4 7F038D94 86B00000 */ lh $s0, ($s5) +/* 06D8C8 7F038D98 26102710 */ addiu $s0, $s0, 0x2710 +/* 06D8CC 7F038D9C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D8D0 7F038DA0 02002825 */ move $a1, $s0 +/* 06D8D4 7F038DA4 14400003 */ bnez $v0, .L7F038DB4 +/* 06D8D8 7F038DA8 02A02025 */ move $a0, $s5 +/* 06D8DC 7F038DAC 8FAC0218 */ lw $t4, 0x218($sp) +/* 06D8E0 7F038DB0 A5900000 */ sh $s0, ($t4) +.L7F038DB4: +/* 06D8E4 7F038DB4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D8E8 7F038DB8 00002825 */ move $a1, $zero +/* 06D8EC 7F038DBC 5040000C */ beql $v0, $zero, .L7F038DF0 +/* 06D8F0 7F038DC0 02A02025 */ move $a0, $s5 +/* 06D8F4 7F038DC4 8C540004 */ lw $s4, 4($v0) +/* 06D8F8 7F038DC8 8FA40218 */ lw $a0, 0x218($sp) +/* 06D8FC 7F038DCC 00003825 */ move $a3, $zero +/* 06D900 7F038DD0 86850004 */ lh $a1, 4($s4) +/* 06D904 7F038DD4 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D908 7F038DD8 82860080 */ lb $a2, 0x80($s4) +/* 06D90C 7F038DDC 50400004 */ beql $v0, $zero, .L7F038DF0 +/* 06D910 7F038DE0 02A02025 */ move $a0, $s5 +/* 06D914 7F038DE4 8C4B0004 */ lw $t3, 4($v0) +/* 06D918 7F038DE8 AFAB020C */ sw $t3, 0x20c($sp) +/* 06D91C 7F038DEC 02A02025 */ move $a0, $s5 +.L7F038DF0: +/* 06D920 7F038DF0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D924 7F038DF4 24050001 */ li $a1, 1 +/* 06D928 7F038DF8 1040000B */ beqz $v0, .L7F038E28 +/* 06D92C 7F038DFC 00000000 */ nop +/* 06D930 7F038E00 8C530004 */ lw $s3, 4($v0) +/* 06D934 7F038E04 8FA40218 */ lw $a0, 0x218($sp) +/* 06D938 7F038E08 3C071000 */ lui $a3, 0x1000 +/* 06D93C 7F038E0C 86650004 */ lh $a1, 4($s3) +/* 06D940 7F038E10 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D944 7F038E14 82660080 */ lb $a2, 0x80($s3) +/* 06D948 7F038E18 10400003 */ beqz $v0, .L7F038E28 +/* 06D94C 7F038E1C 00000000 */ nop +/* 06D950 7F038E20 8C580004 */ lw $t8, 4($v0) +/* 06D954 7F038E24 AFB80210 */ sw $t8, 0x210($sp) +.L7F038E28: +/* 06D958 7F038E28 52600011 */ beql $s3, $zero, .L7F038E70 +/* 06D95C 7F038E2C 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D960 7F038E30 1280000E */ beqz $s4, .L7F038E6C +/* 06D964 7F038E34 8FAE0210 */ lw $t6, 0x210($sp) +/* 06D968 7F038E38 11C0000C */ beqz $t6, .L7F038E6C +/* 06D96C 7F038E3C 8FAF020C */ lw $t7, 0x20c($sp) +/* 06D970 7F038E40 51E0000B */ beql $t7, $zero, .L7F038E70 +/* 06D974 7F038E44 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D978 7F038E48 8E790084 */ lw $t9, 0x84($s3) +/* 06D97C 7F038E4C 56990008 */ bnel $s4, $t9, .L7F038E70 +/* 06D980 7F038E50 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D984 7F038E54 8E8D0084 */ lw $t5, 0x84($s4) +/* 06D988 7F038E58 01C02025 */ move $a0, $t6 +/* 06D98C 7F038E5C 566D0004 */ bnel $s3, $t5, .L7F038E70 +/* 06D990 7F038E60 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D994 7F038E64 0FC1475D */ jal link_objects +/* 06D998 7F038E68 01E02825 */ move $a1, $t7 +.L7F038E6C: +/* 06D99C 7F038E6C 8EA301D8 */ lw $v1, 0x1d8($s5) +.L7F038E70: +/* 06D9A0 7F038E70 8FA40218 */ lw $a0, 0x218($sp) +/* 06D9A4 7F038E74 50600006 */ beql $v1, $zero, .L7F038E90 +/* 06D9A8 7F038E78 240A0001 */ li $t2, 1 +/* 06D9AC 7F038E7C 8C620004 */ lw $v0, 4($v1) +/* 06D9B0 7F038E80 00003025 */ move $a2, $zero +/* 06D9B4 7F038E84 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D9B8 7F038E88 84450004 */ lh $a1, 4($v0) +/* 06D9BC 7F038E8C 240A0001 */ li $t2, 1 +.L7F038E90: +/* 06D9C0 7F038E90 AFAA0234 */ sw $t2, 0x234($sp) +.L7F038E94: +/* 06D9C4 7F038E94 8FA90234 */ lw $t1, 0x234($sp) +.L7F038E98: +/* 06D9C8 7F038E98 02C02025 */ move $a0, $s6 +/* 06D9CC 7F038E9C 02402825 */ move $a1, $s2 +/* 06D9D0 7F038EA0 51200007 */ beql $t1, $zero, .L7F038EC0 +/* 06D9D4 7F038EA4 26520005 */ addiu $s2, $s2, 5 +/* 06D9D8 7F038EA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D9DC 7F038EAC 92260004 */ lbu $a2, 4($s1) +/* 06D9E0 7F038EB0 00409025 */ move $s2, $v0 +/* 06D9E4 7F038EB4 1000F1B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9E8 7F038EB8 02C28821 */ addu $s1, $s6, $v0 +/* 06D9EC 7F038EBC 26520005 */ addiu $s2, $s2, 5 +.L7F038EC0: +/* 06D9F0 7F038EC0 1000F1B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9F4 7F038EC4 26310005 */ addiu $s1, $s1, 5 +actionC2_Display_Text_Preset_Bottom_Screen_3: +/* 06D9F8 7F038EC8 922C0001 */ lbu $t4, 1($s1) +/* 06D9FC 7F038ECC 92380002 */ lbu $t8, 2($s1) +/* 06DA00 7F038ED0 000C5A00 */ sll $t3, $t4, 8 +/* 06DA04 7F038ED4 0FC30776 */ jal get_textptr_for_textID +/* 06DA08 7F038ED8 01782025 */ or $a0, $t3, $t8 +/* 06DA0C 7F038EDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 06DA10 7F038EE0 00402025 */ move $a0, $v0 +/* 06DA14 7F038EE4 26520003 */ addiu $s2, $s2, 3 +/* 06DA18 7F038EE8 1000F1A8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA1C 7F038EEC 26310003 */ addiu $s1, $s1, 3 +actionC3_Display_Text_Preset_Top_Screen_3: +/* 06DA20 7F038EF0 92390001 */ lbu $t9, 1($s1) +/* 06DA24 7F038EF4 922E0002 */ lbu $t6, 2($s1) +/* 06DA28 7F038EF8 00196A00 */ sll $t5, $t9, 8 +/* 06DA2C 7F038EFC 0FC30776 */ jal get_textptr_for_textID +/* 06DA30 7F038F00 01AE2025 */ or $a0, $t5, $t6 +/* 06DA34 7F038F04 0FC22A57 */ jal display_string_at_top_of_screen +/* 06DA38 7F038F08 00402025 */ move $a0, $v0 +/* 06DA3C 7F038F0C 26520003 */ addiu $s2, $s2, 3 +/* 06DA40 7F038F10 1000F19E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA44 7F038F14 26310003 */ addiu $s1, $s1, 3 +actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4: +/* 06DA48 7F038F18 922F0001 */ lbu $t7, 1($s1) +/* 06DA4C 7F038F1C 92290002 */ lbu $t1, 2($s1) +/* 06DA50 7F038F20 82240003 */ lb $a0, 3($s1) +/* 06DA54 7F038F24 000F5200 */ sll $t2, $t7, 8 +/* 06DA58 7F038F28 01492825 */ or $a1, $t2, $t1 +/* 06DA5C 7F038F2C 00056400 */ sll $t4, $a1, 0x10 +/* 06DA60 7F038F30 0FC0D249 */ jal set_sound_effect_to_slot +/* 06DA64 7F038F34 000C2C03 */ sra $a1, $t4, 0x10 +/* 06DA68 7F038F38 26520004 */ addiu $s2, $s2, 4 +/* 06DA6C 7F038F3C 1000F193 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA70 7F038F40 26310004 */ addiu $s1, $s1, 4 +actionC9_Shut_Off_Sound_In_Slot_Number_2: +/* 06DA74 7F038F44 0FC0D26F */ jal sub_GAME_7F0349BC +/* 06DA78 7F038F48 82240001 */ lb $a0, 1($s1) +/* 06DA7C 7F038F4C 26520002 */ addiu $s2, $s2, 2 +/* 06DA80 7F038F50 1000F18E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA84 7F038F54 26310002 */ addiu $s1, $s1, 2 +actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6: +/* 06DA88 7F038F58 92380002 */ lbu $t8, 2($s1) +/* 06DA8C 7F038F5C 922D0003 */ lbu $t5, 3($s1) +/* 06DA90 7F038F60 922A0004 */ lbu $t2, 4($s1) +/* 06DA94 7F038F64 922C0005 */ lbu $t4, 5($s1) +/* 06DA98 7F038F68 82230001 */ lb $v1, 1($s1) +/* 06DA9C 7F038F6C 0018CA00 */ sll $t9, $t8, 8 +/* 06DAA0 7F038F70 032D2025 */ or $a0, $t9, $t5 +/* 06DAA4 7F038F74 000A4A00 */ sll $t1, $t2, 8 +/* 06DAA8 7F038F78 00047400 */ sll $t6, $a0, 0x10 +/* 06DAAC 7F038F7C 012C2825 */ or $a1, $t1, $t4 +/* 06DAB0 7F038F80 000E2403 */ sra $a0, $t6, 0x10 +/* 06DAB4 7F038F84 0460001D */ bltz $v1, .L7F038FFC +/* 06DAB8 7F038F88 30ABFFFF */ andi $t3, $a1, 0xffff +/* 06DABC 7F038F8C 28610008 */ slti $at, $v1, 8 +/* 06DAC0 7F038F90 1020001A */ beqz $at, .L7F038FFC +/* 06DAC4 7F038F94 24070018 */ li $a3, 24 +/* 06DAC8 7F038F98 00670019 */ multu $v1, $a3 +/* 06DACC 7F038F9C 3C068007 */ lui $a2, %hi(sfx_related) +/* 06DAD0 7F038FA0 24C69B70 */ addiu $a2, %lo(sfx_related) # addiu $a2, $a2, -0x6490 +/* 06DAD4 7F038FA4 01601025 */ move $v0, $t3 +/* 06DAD8 7F038FA8 0000C012 */ mflo $t8 +/* 06DADC 7F038FAC 00D8C821 */ addu $t9, $a2, $t8 +/* 06DAE0 7F038FB0 AF2B0008 */ sw $t3, 8($t9) +/* 06DAE4 7F038FB4 822D0001 */ lb $t5, 1($s1) +/* 06DAE8 7F038FB8 01A70019 */ multu $t5, $a3 +/* 06DAEC 7F038FBC 00007012 */ mflo $t6 +/* 06DAF0 7F038FC0 00CE7821 */ addu $t7, $a2, $t6 +/* 06DAF4 7F038FC4 ADE4000C */ sw $a0, 0xc($t7) +/* 06DAF8 7F038FC8 822A0001 */ lb $t2, 1($s1) +/* 06DAFC 7F038FCC 01470019 */ multu $t2, $a3 +/* 06DB00 7F038FD0 00004812 */ mflo $t1 +/* 06DB04 7F038FD4 00C96021 */ addu $t4, $a2, $t1 +/* 06DB08 7F038FD8 AD800010 */ sw $zero, 0x10($t4) +/* 06DB0C 7F038FDC 822B0001 */ lb $t3, 1($s1) +/* 06DB10 7F038FE0 01670019 */ multu $t3, $a3 +/* 06DB14 7F038FE4 0000C012 */ mflo $t8 +/* 06DB18 7F038FE8 00D8C821 */ addu $t9, $a2, $t8 +/* 06DB1C 7F038FEC 14400003 */ bnez $v0, .L7F038FFC +/* 06DB20 7F038FF0 AF200014 */ sw $zero, 0x14($t9) +/* 06DB24 7F038FF4 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DB28 7F038FF8 82240001 */ lb $a0, 1($s1) +.L7F038FFC: +/* 06DB2C 7F038FFC 26520006 */ addiu $s2, $s2, 6 +/* 06DB30 7F039000 1000F162 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DB34 7F039004 26310006 */ addiu $s1, $s1, 6 +actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6: +/* 06DB38 7F039008 922D0002 */ lbu $t5, 2($s1) +/* 06DB3C 7F03900C 922F0003 */ lbu $t7, 3($s1) +/* 06DB40 7F039010 92290004 */ lbu $t1, 4($s1) +/* 06DB44 7F039014 922B0005 */ lbu $t3, 5($s1) +/* 06DB48 7F039018 000D7200 */ sll $t6, $t5, 8 +/* 06DB4C 7F03901C 82230001 */ lb $v1, 1($s1) +/* 06DB50 7F039020 01CF5025 */ or $t2, $t6, $t7 +/* 06DB54 7F039024 448A5000 */ mtc1 $t2, $f10 +/* 06DB58 7F039028 00096200 */ sll $t4, $t1, 8 +/* 06DB5C 7F03902C 018B1025 */ or $v0, $t4, $t3 +/* 06DB60 7F039030 3058FFFF */ andi $t8, $v0, 0xffff +/* 06DB64 7F039034 04600020 */ bltz $v1, .L7F0390B8 +/* 06DB68 7F039038 46805320 */ cvt.s.w $f12, $f10 +/* 06DB6C 7F03903C 28610008 */ slti $at, $v1, 8 +/* 06DB70 7F039040 1020001D */ beqz $at, .L7F0390B8 +/* 06DB74 7F039044 0003C880 */ sll $t9, $v1, 2 +/* 06DB78 7F039048 0323C823 */ subu $t9, $t9, $v1 +/* 06DB7C 7F03904C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DB80 7F039050 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DB84 7F039054 00390821 */ addu $at, $at, $t9 +/* 06DB88 7F039058 AC389B78 */ sw $t8, %lo(sfx_related+8)($at) +/* 06DB8C 7F03905C 0FC14E6E */ jal sub_GAME_7F0539B8 +/* 06DB90 7F039060 03008025 */ move $s0, $t8 +/* 06DB94 7F039064 822D0001 */ lb $t5, 1($s1) +/* 06DB98 7F039068 24040018 */ li $a0, 24 +/* 06DB9C 7F03906C 3C038007 */ lui $v1, %hi(sfx_related) +/* 06DBA0 7F039070 01A40019 */ multu $t5, $a0 +/* 06DBA4 7F039074 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +/* 06DBA8 7F039078 00007012 */ mflo $t6 +/* 06DBAC 7F03907C 006E7821 */ addu $t7, $v1, $t6 +/* 06DBB0 7F039080 ADE2000C */ sw $v0, 0xc($t7) +/* 06DBB4 7F039084 822A0001 */ lb $t2, 1($s1) +/* 06DBB8 7F039088 01440019 */ multu $t2, $a0 +/* 06DBBC 7F03908C 00004812 */ mflo $t1 +/* 06DBC0 7F039090 00696021 */ addu $t4, $v1, $t1 +/* 06DBC4 7F039094 AD800010 */ sw $zero, 0x10($t4) +/* 06DBC8 7F039098 822B0001 */ lb $t3, 1($s1) +/* 06DBCC 7F03909C 01640019 */ multu $t3, $a0 +/* 06DBD0 7F0390A0 0000C012 */ mflo $t8 +/* 06DBD4 7F0390A4 0078C821 */ addu $t9, $v1, $t8 +/* 06DBD8 7F0390A8 16000003 */ bnez $s0, .L7F0390B8 +/* 06DBDC 7F0390AC AF200014 */ sw $zero, 0x14($t9) +/* 06DBE0 7F0390B0 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DBE4 7F0390B4 82240001 */ lb $a0, 1($s1) +.L7F0390B8: +/* 06DBE8 7F0390B8 26520006 */ addiu $s2, $s2, 6 +/* 06DBEC 7F0390BC 1000F133 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DBF0 7F0390C0 26310006 */ addiu $s1, $s1, 6 +actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5: +/* 06DBF4 7F0390C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DBF8 7F0390C8 92240002 */ lbu $a0, 2($s1) +/* 06DBFC 7F0390CC 922D0003 */ lbu $t5, 3($s1) +/* 06DC00 7F0390D0 922F0004 */ lbu $t7, 4($s1) +/* 06DC04 7F0390D4 82230001 */ lb $v1, 1($s1) +/* 06DC08 7F0390D8 000D7200 */ sll $t6, $t5, 8 +/* 06DC0C 7F0390DC 01CF2825 */ or $a1, $t6, $t7 +/* 06DC10 7F0390E0 0460001C */ bltz $v1, .L7F039154 +/* 06DC14 7F0390E4 30AAFFFF */ andi $t2, $a1, 0xffff +/* 06DC18 7F0390E8 28610008 */ slti $at, $v1, 8 +/* 06DC1C 7F0390EC 5020001A */ beql $at, $zero, .L7F039158 +/* 06DC20 7F0390F0 26520005 */ addiu $s2, $s2, 5 +/* 06DC24 7F0390F4 10400017 */ beqz $v0, .L7F039154 +/* 06DC28 7F0390F8 00034880 */ sll $t1, $v1, 2 +/* 06DC2C 7F0390FC 01234823 */ subu $t1, $t1, $v1 +/* 06DC30 7F039100 000948C0 */ sll $t1, $t1, 3 +/* 06DC34 7F039104 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DC38 7F039108 00290821 */ addu $at, $at, $t1 +/* 06DC3C 7F03910C AC2A9B78 */ sw $t2, %lo(sfx_related+8)($at) +/* 06DC40 7F039110 822C0001 */ lb $t4, 1($s1) +/* 06DC44 7F039114 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DC48 7F039118 000C5880 */ sll $t3, $t4, 2 +/* 06DC4C 7F03911C 016C5823 */ subu $t3, $t3, $t4 +/* 06DC50 7F039120 000B58C0 */ sll $t3, $t3, 3 +/* 06DC54 7F039124 002B0821 */ addu $at, $at, $t3 +/* 06DC58 7F039128 AC209B80 */ sw $zero, %lo(sfx_related+16)($at) +/* 06DC5C 7F03912C 82380001 */ lb $t8, 1($s1) +/* 06DC60 7F039130 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DC64 7F039134 0018C880 */ sll $t9, $t8, 2 +/* 06DC68 7F039138 0338C823 */ subu $t9, $t9, $t8 +/* 06DC6C 7F03913C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DC70 7F039140 00390821 */ addu $at, $at, $t9 +/* 06DC74 7F039144 15400003 */ bnez $t2, .L7F039154 +/* 06DC78 7F039148 AC229B84 */ sw $v0, %lo(sfx_related+20)($at) +/* 06DC7C 7F03914C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DC80 7F039150 82240001 */ lb $a0, 1($s1) +.L7F039154: +/* 06DC84 7F039154 26520005 */ addiu $s2, $s2, 5 +.L7F039158: +/* 06DC88 7F039158 1000F10C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DC8C 7F03915C 26310005 */ addiu $s1, $s1, 5 +actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6: +/* 06DC90 7F039160 922D0002 */ lbu $t5, 2($s1) +/* 06DC94 7F039164 922F0003 */ lbu $t7, 3($s1) +/* 06DC98 7F039168 92290004 */ lbu $t1, 4($s1) +/* 06DC9C 7F03916C 922B0005 */ lbu $t3, 5($s1) +/* 06DCA0 7F039170 000D7200 */ sll $t6, $t5, 8 +/* 06DCA4 7F039174 01CF1025 */ or $v0, $t6, $t7 +/* 06DCA8 7F039178 00096200 */ sll $t4, $t1, 8 +/* 06DCAC 7F03917C 304AFFFF */ andi $t2, $v0, 0xffff +/* 06DCB0 7F039180 018B2825 */ or $a1, $t4, $t3 +/* 06DCB4 7F039184 30B8FFFF */ andi $t8, $a1, 0xffff +/* 06DCB8 7F039188 29412710 */ slti $at, $t2, 0x2710 +/* 06DCBC 7F03918C 03002825 */ move $a1, $t8 +/* 06DCC0 7F039190 1020000A */ beqz $at, .L7F0391BC +/* 06DCC4 7F039194 01401825 */ move $v1, $t2 +/* 06DCC8 7F039198 000AC880 */ sll $t9, $t2, 2 +/* 06DCCC 7F03919C 032AC823 */ subu $t9, $t9, $t2 +/* 06DCD0 7F0391A0 0019C880 */ sll $t9, $t9, 2 +/* 06DCD4 7F0391A4 3C0D8007 */ lui $t5, %hi(ptr_0xxxpresets) +/* 06DCD8 7F0391A8 8DAD5D18 */ lw $t5, %lo(ptr_0xxxpresets)($t5) +/* 06DCDC 7F0391AC 032AC823 */ subu $t9, $t9, $t2 +/* 06DCE0 7F0391B0 0019C880 */ sll $t9, $t9, 2 +/* 06DCE4 7F0391B4 1000000A */ b .L7F0391E0 +/* 06DCE8 7F0391B8 032D2021 */ addu $a0, $t9, $t5 +.L7F0391BC: +/* 06DCEC 7F0391BC 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06DCF0 7F0391C0 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06DCF4 7F0391C4 00037100 */ sll $t6, $v1, 4 +/* 06DCF8 7F0391C8 01C37021 */ addu $t6, $t6, $v1 +/* 06DCFC 7F0391CC 000E7080 */ sll $t6, $t6, 2 +/* 06DD00 7F0391D0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06DD04 7F0391D4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06DD08 7F0391D8 01CF2021 */ addu $a0, $t6, $t7 +/* 06DD0C 7F0391DC 00812021 */ addu $a0, $a0, $at +.L7F0391E0: +/* 06DD10 7F0391E0 82230001 */ lb $v1, 1($s1) +/* 06DD14 7F0391E4 0460001B */ bltz $v1, .L7F039254 +/* 06DD18 7F0391E8 28610008 */ slti $at, $v1, 8 +/* 06DD1C 7F0391EC 5020001A */ beql $at, $zero, .L7F039258 +/* 06DD20 7F0391F0 26520006 */ addiu $s2, $s2, 6 +/* 06DD24 7F0391F4 10800017 */ beqz $a0, .L7F039254 +/* 06DD28 7F0391F8 00035080 */ sll $t2, $v1, 2 +/* 06DD2C 7F0391FC 01435023 */ subu $t2, $t2, $v1 +/* 06DD30 7F039200 000A50C0 */ sll $t2, $t2, 3 +/* 06DD34 7F039204 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DD38 7F039208 002A0821 */ addu $at, $at, $t2 +/* 06DD3C 7F03920C AC259B78 */ sw $a1, %lo(sfx_related+8)($at) +/* 06DD40 7F039210 82290001 */ lb $t1, 1($s1) +/* 06DD44 7F039214 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DD48 7F039218 00096080 */ sll $t4, $t1, 2 +/* 06DD4C 7F03921C 01896023 */ subu $t4, $t4, $t1 +/* 06DD50 7F039220 000C60C0 */ sll $t4, $t4, 3 +/* 06DD54 7F039224 002C0821 */ addu $at, $at, $t4 +/* 06DD58 7F039228 AC249B80 */ sw $a0, %lo(sfx_related+16)($at) +/* 06DD5C 7F03922C 822B0001 */ lb $t3, 1($s1) +/* 06DD60 7F039230 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DD64 7F039234 000BC080 */ sll $t8, $t3, 2 +/* 06DD68 7F039238 030BC023 */ subu $t8, $t8, $t3 +/* 06DD6C 7F03923C 0018C0C0 */ sll $t8, $t8, 3 +/* 06DD70 7F039240 00380821 */ addu $at, $at, $t8 +/* 06DD74 7F039244 14A00003 */ bnez $a1, .L7F039254 +/* 06DD78 7F039248 AC209B84 */ sw $zero, %lo(sfx_related+20)($at) +/* 06DD7C 7F03924C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DD80 7F039250 82240001 */ lb $a0, 1($s1) +.L7F039254: +/* 06DD84 7F039254 26520006 */ addiu $s2, $s2, 6 +.L7F039258: +/* 06DD88 7F039258 1000F0CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DD8C 7F03925C 26310006 */ addiu $s1, $s1, 6 +actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5: +/* 06DD90 7F039260 92390002 */ lbu $t9, 2($s1) +/* 06DD94 7F039264 922E0003 */ lbu $t6, 3($s1) +/* 06DD98 7F039268 82230001 */ lb $v1, 1($s1) +/* 06DD9C 7F03926C 00196A00 */ sll $t5, $t9, 8 +/* 06DDA0 7F039270 01AE1025 */ or $v0, $t5, $t6 +/* 06DDA4 7F039274 00027C00 */ sll $t7, $v0, 0x10 +/* 06DDA8 7F039278 04600013 */ bltz $v1, .L7F0392C8 +/* 06DDAC 7F03927C 000F5403 */ sra $t2, $t7, 0x10 +/* 06DDB0 7F039280 28610008 */ slti $at, $v1, 8 +/* 06DDB4 7F039284 10200010 */ beqz $at, .L7F0392C8 +/* 06DDB8 7F039288 00034880 */ sll $t1, $v1, 2 +/* 06DDBC 7F03928C 01234823 */ subu $t1, $t1, $v1 +/* 06DDC0 7F039290 000948C0 */ sll $t1, $t1, 3 +/* 06DDC4 7F039294 3C0C8007 */ lui $t4, %hi(sfx_related+4) +/* 06DDC8 7F039298 01896021 */ addu $t4, $t4, $t1 +/* 06DDCC 7F03929C 8D8C9B74 */ lw $t4, %lo(sfx_related+4)($t4) +/* 06DDD0 7F0392A0 02C02025 */ move $a0, $s6 +/* 06DDD4 7F0392A4 02402825 */ move $a1, $s2 +/* 06DDD8 7F0392A8 018A082A */ slt $at, $t4, $t2 +/* 06DDDC 7F0392AC 50200007 */ beql $at, $zero, .L7F0392CC +/* 06DDE0 7F0392B0 26520005 */ addiu $s2, $s2, 5 +/* 06DDE4 7F0392B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DDE8 7F0392B8 92260004 */ lbu $a2, 4($s1) +/* 06DDEC 7F0392BC 00409025 */ move $s2, $v0 +/* 06DDF0 7F0392C0 1000F0B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DDF4 7F0392C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0392C8: +/* 06DDF8 7F0392C8 26520005 */ addiu $s2, $s2, 5 +.L7F0392CC: +/* 06DDFC 7F0392CC 1000F0AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE00 7F0392D0 26310005 */ addiu $s1, $s1, 5 +actionCB_Set_Object_Path_27_Type_Object_2: +/* 06DE04 7F0392D4 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06DE08 7F0392D8 92240001 */ lbu $a0, 1($s1) +/* 06DE0C 7F0392DC 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE10 7F0392E0 26520002 */ addiu $s2, $s2, 2 +/* 06DE14 7F0392E4 11600003 */ beqz $t3, .L7F0392F4 +/* 06DE18 7F0392E8 00000000 */ nop +/* 06DE1C 7F0392EC AD6200A4 */ sw $v0, 0xa4($t3) +/* 06DE20 7F0392F0 AD6000A8 */ sw $zero, 0xa8($t3) +.L7F0392F4: +/* 06DE24 7F0392F4 1000F0A5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE28 7F0392F8 26310002 */ addiu $s1, $s1, 2 +actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5: +/* 06DE2C 7F0392FC 922F0001 */ lbu $t7, 1($s1) +/* 06DE30 7F039300 92290002 */ lbu $t1, 2($s1) +/* 06DE34 7F039304 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 06DE38 7F039308 000F5200 */ sll $t2, $t7, 8 +/* 06DE3C 7F03930C 01496025 */ or $t4, $t2, $t1 +/* 06DE40 7F039310 448C8000 */ mtc1 $t4, $f16 +/* 06DE44 7F039314 44812000 */ mtc1 $at, $f4 +/* 06DE48 7F039318 92380003 */ lbu $t8, 3($s1) +/* 06DE4C 7F03931C 46808220 */ cvt.s.w $f8, $f16 +/* 06DE50 7F039320 922D0004 */ lbu $t5, 4($s1) +/* 06DE54 7F039324 0018CA00 */ sll $t9, $t8, 8 +/* 06DE58 7F039328 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE5C 7F03932C 3C014670 */ li $at, 0x46700000 # 15360.000000 +/* 06DE60 7F039330 032D7025 */ or $t6, $t9, $t5 +/* 06DE64 7F039334 46044182 */ mul.s $f6, $f8, $f4 +/* 06DE68 7F039338 448E9000 */ mtc1 $t6, $f18 +/* 06DE6C 7F03933C 44815000 */ mtc1 $at, $f10 +/* 06DE70 7F039340 26520005 */ addiu $s2, $s2, 5 +/* 06DE74 7F039344 46809020 */ cvt.s.w $f0, $f18 +/* 06DE78 7F039348 11600003 */ beqz $t3, .L7F039358 +/* 06DE7C 7F03934C 460A3083 */ div.s $f2, $f6, $f10 +/* 06DE80 7F039350 E5620094 */ swc1 $f2, 0x94($t3) +/* 06DE84 7F039354 E5600098 */ swc1 $f0, 0x98($t3) +.L7F039358: +/* 06DE88 7F039358 1000F08C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE8C 7F03935C 26310005 */ addiu $s1, $s1, 5 +actionCD_Set_Speed_Aircraft_Rotor_5: +/* 06DE90 7F039360 922F0001 */ lbu $t7, 1($s1) +/* 06DE94 7F039364 92290002 */ lbu $t1, 2($s1) +/* 06DE98 7F039368 92380003 */ lbu $t8, 3($s1) +/* 06DE9C 7F03936C 000F5200 */ sll $t2, $t7, 8 +/* 06DEA0 7F039370 01496025 */ or $t4, $t2, $t1 +/* 06DEA4 7F039374 448C8000 */ mtc1 $t4, $f16 +/* 06DEA8 7F039378 922D0004 */ lbu $t5, 4($s1) +/* 06DEAC 7F03937C 0018CA00 */ sll $t9, $t8, 8 +/* 06DEB0 7F039380 46808220 */ cvt.s.w $f8, $f16 +/* 06DEB4 7F039384 8FAB07AC */ lw $t3, 0x7ac($sp) +/* 06DEB8 7F039388 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 06DEBC 7F03938C 032D7025 */ or $t6, $t9, $t5 +/* 06DEC0 7F039390 448E9000 */ mtc1 $t6, $f18 +/* 06DEC4 7F039394 44813000 */ mtc1 $at, $f6 +/* 06DEC8 7F039398 461A4102 */ mul.s $f4, $f8, $f26 +/* 06DECC 7F03939C 26520005 */ addiu $s2, $s2, 5 +/* 06DED0 7F0393A0 46809020 */ cvt.s.w $f0, $f18 +/* 06DED4 7F0393A4 11600003 */ beqz $t3, .L7F0393B4 +/* 06DED8 7F0393A8 46062083 */ div.s $f2, $f4, $f6 +/* 06DEDC 7F0393AC E5620090 */ swc1 $f2, 0x90($t3) +/* 06DEE0 7F0393B0 E5600094 */ swc1 $f0, 0x94($t3) +.L7F0393B4: +/* 06DEE4 7F0393B4 1000F075 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DEE8 7F0393B8 26310005 */ addiu $s1, $s1, 5 +actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2: +/* 06DEEC 7F0393BC 0FC1E94A */ jal get_camera_mode +/* 06DEF0 7F0393C0 00000000 */ nop +/* 06DEF4 7F0393C4 24010001 */ li $at, 1 +/* 06DEF8 7F0393C8 50410006 */ beql $v0, $at, .L7F0393E4 +/* 06DEFC 7F0393CC 02C02025 */ move $a0, $s6 +/* 06DF00 7F0393D0 0FC1E94A */ jal get_camera_mode +/* 06DF04 7F0393D4 00000000 */ nop +/* 06DF08 7F0393D8 24010002 */ li $at, 2 +/* 06DF0C 7F0393DC 14410007 */ bne $v0, $at, .L7F0393FC +/* 06DF10 7F0393E0 02C02025 */ move $a0, $s6 +.L7F0393E4: +/* 06DF14 7F0393E4 02402825 */ move $a1, $s2 +/* 06DF18 7F0393E8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF1C 7F0393EC 92260001 */ lbu $a2, 1($s1) +/* 06DF20 7F0393F0 00409025 */ move $s2, $v0 +/* 06DF24 7F0393F4 1000F065 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF28 7F0393F8 02C28821 */ addu $s1, $s6, $v0 +.L7F0393FC: +/* 06DF2C 7F0393FC 26520002 */ addiu $s2, $s2, 2 +/* 06DF30 7F039400 1000F062 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF34 7F039404 26310002 */ addiu $s1, $s1, 2 +actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2: +/* 06DF38 7F039408 0FC1E94A */ jal get_camera_mode +/* 06DF3C 7F03940C 00000000 */ nop +/* 06DF40 7F039410 24010003 */ li $at, 3 +/* 06DF44 7F039414 14410007 */ bne $v0, $at, .L7F039434 +/* 06DF48 7F039418 02C02025 */ move $a0, $s6 +/* 06DF4C 7F03941C 02402825 */ move $a1, $s2 +/* 06DF50 7F039420 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF54 7F039424 92260001 */ lbu $a2, 1($s1) +/* 06DF58 7F039428 00409025 */ move $s2, $v0 +/* 06DF5C 7F03942C 1000F057 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF60 7F039430 02C28821 */ addu $s1, $s6, $v0 +.L7F039434: +/* 06DF64 7F039434 26520002 */ addiu $s2, $s2, 2 +/* 06DF68 7F039438 1000F054 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF6C 7F03943C 26310002 */ addiu $s1, $s1, 2 +actionD0_Change_Animation_Type_Of_Type_16_Monitor_4: +/* 06DF70 7F039440 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DF74 7F039444 92240001 */ lbu $a0, 1($s1) +/* 06DF78 7F039448 1040001D */ beqz $v0, .L7F0394C0 +/* 06DF7C 7F03944C 00403025 */ move $a2, $v0 +/* 06DF80 7F039450 8C580010 */ lw $t8, 0x10($v0) +/* 06DF84 7F039454 5300001B */ beql $t8, $zero, .L7F0394C4 +/* 06DF88 7F039458 26520004 */ addiu $s2, $s2, 4 +/* 06DF8C 7F03945C 90430003 */ lbu $v1, 3($v0) +/* 06DF90 7F039460 2401000A */ li $at, 10 +/* 06DF94 7F039464 24440080 */ addiu $a0, $v0, 0x80 +/* 06DF98 7F039468 54610007 */ bnel $v1, $at, .L7F039488 +/* 06DF9C 7F03946C 2401000B */ li $at, 11 +/* 06DFA0 7F039470 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFA4 7F039474 92250003 */ lbu $a1, 3($s1) +/* 06DFA8 7F039478 26520004 */ addiu $s2, $s2, 4 +/* 06DFAC 7F03947C 1000F043 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFB0 7F039480 26310004 */ addiu $s1, $s1, 4 +/* 06DFB4 7F039484 2401000B */ li $at, 11 +.L7F039488: +/* 06DFB8 7F039488 5461000E */ bnel $v1, $at, .L7F0394C4 +/* 06DFBC 7F03948C 26520004 */ addiu $s2, $s2, 4 +/* 06DFC0 7F039490 92220002 */ lbu $v0, 2($s1) +/* 06DFC4 7F039494 28410004 */ slti $at, $v0, 4 +/* 06DFC8 7F039498 10200009 */ beqz $at, .L7F0394C0 +/* 06DFCC 7F03949C 0002C8C0 */ sll $t9, $v0, 3 +/* 06DFD0 7F0394A0 0322C823 */ subu $t9, $t9, $v0 +/* 06DFD4 7F0394A4 0019C880 */ sll $t9, $t9, 2 +/* 06DFD8 7F0394A8 0322C821 */ addu $t9, $t9, $v0 +/* 06DFDC 7F0394AC 0019C880 */ sll $t9, $t9, 2 +/* 06DFE0 7F0394B0 00D92021 */ addu $a0, $a2, $t9 +/* 06DFE4 7F0394B4 24840080 */ addiu $a0, $a0, 0x80 +/* 06DFE8 7F0394B8 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFEC 7F0394BC 92250003 */ lbu $a1, 3($s1) +.L7F0394C0: +/* 06DFF0 7F0394C0 26520004 */ addiu $s2, $s2, 4 +.L7F0394C4: +/* 06DFF4 7F0394C4 1000F031 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFF8 7F0394C8 26310004 */ addiu $s1, $s1, 4 +actionD1_If_Bond_In_Tank_RVL_2: +/* 06DFFC 7F0394CC 0FC1F39E */ jal get_intank_flag +/* 06E000 7F0394D0 00000000 */ nop +/* 06E004 7F0394D4 24010001 */ li $at, 1 +/* 06E008 7F0394D8 14410007 */ bne $v0, $at, .L7F0394F8 +/* 06E00C 7F0394DC 02C02025 */ move $a0, $s6 +/* 06E010 7F0394E0 02402825 */ move $a1, $s2 +/* 06E014 7F0394E4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E018 7F0394E8 92260001 */ lbu $a2, 1($s1) +/* 06E01C 7F0394EC 00409025 */ move $s2, $v0 +/* 06E020 7F0394F0 1000F026 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E024 7F0394F4 02C28821 */ addu $s1, $s6, $v0 +.L7F0394F8: +/* 06E028 7F0394F8 26520002 */ addiu $s2, $s2, 2 +/* 06E02C 7F0394FC 1000F023 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E030 7F039500 26310002 */ addiu $s1, $s1, 2 +actionD2_Exit_Level_1: +/* 06E034 7F039504 3C0D8003 */ lui $t5, %hi(camera_8003642C) +/* 06E038 7F039508 8DAD642C */ lw $t5, %lo(camera_8003642C)($t5) +/* 06E03C 7F03950C 3C0E8003 */ lui $t6, %hi(camera_80036434) +/* 06E040 7F039510 11A0000A */ beqz $t5, .L7F03953C +/* 06E044 7F039514 00000000 */ nop +/* 06E048 7F039518 8DCE6434 */ lw $t6, %lo(camera_80036434)($t6) +/* 06E04C 7F03951C 240F0001 */ li $t7, 1 +/* 06E050 7F039520 3C018003 */ lui $at, %hi(camera_80036434) +/* 06E054 7F039524 55C00008 */ bnezl $t6, .L7F039548 +/* 06E058 7F039528 26520001 */ addiu $s2, $s2, 1 +/* 06E05C 7F03952C AC2F6434 */ sw $t7, %lo(camera_80036434)($at) +/* 06E060 7F039530 26520001 */ addiu $s2, $s2, 1 +/* 06E064 7F039534 1000F015 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E068 7F039538 26310001 */ addiu $s1, $s1, 1 +.L7F03953C: +/* 06E06C 7F03953C 0C001A5A */ jal return_to_title_from_level_end +/* 06E070 7F039540 00000000 */ nop +/* 06E074 7F039544 26520001 */ addiu $s2, $s2, 1 +.L7F039548: +/* 06E078 7F039548 1000F010 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E07C 7F03954C 26310001 */ addiu $s1, $s1, 1 +actionD3_Return_From_Camera_Scene_1: +/* 06E080 7F039550 0FC1EA6E */ jal set_camera_mode +/* 06E084 7F039554 24040008 */ li $a0, 8 +/* 06E088 7F039558 26520001 */ addiu $s2, $s2, 1 +/* 06E08C 7F03955C 1000F00B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E090 7F039560 26310001 */ addiu $s1, $s1, 1 +actionD4_Camera_Looks_At_Bond_From_Preset_3: +/* 06E094 7F039564 922A0001 */ lbu $t2, 1($s1) +/* 06E098 7F039568 922C0002 */ lbu $t4, 2($s1) +/* 06E09C 7F03956C 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06E0A0 7F039570 000A4A00 */ sll $t1, $t2, 8 +/* 06E0A4 7F039574 012C1025 */ or $v0, $t1, $t4 +/* 06E0A8 7F039578 304BFFFF */ andi $t3, $v0, 0xffff +/* 06E0AC 7F03957C 29612710 */ slti $at, $t3, 0x2710 +/* 06E0B0 7F039580 1020000C */ beqz $at, .L7F0395B4 +/* 06E0B4 7F039584 01601825 */ move $v1, $t3 +/* 06E0B8 7F039588 000BC080 */ sll $t8, $t3, 2 +/* 06E0BC 7F03958C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0C0 7F039590 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06E0C4 7F039594 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06E0C8 7F039598 0018C080 */ sll $t8, $t8, 2 +/* 06E0CC 7F03959C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0D0 7F0395A0 0018C080 */ sll $t8, $t8, 2 +/* 06E0D4 7F0395A4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E0D8 7F0395A8 03196821 */ addu $t5, $t8, $t9 +/* 06E0DC 7F0395AC 1000000B */ b .L7F0395DC +/* 06E0E0 7F0395B0 AC2D99F8 */ sw $t5, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395B4: +/* 06E0E4 7F0395B4 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06E0E8 7F0395B8 00037100 */ sll $t6, $v1, 4 +/* 06E0EC 7F0395BC 01C37021 */ addu $t6, $t6, $v1 +/* 06E0F0 7F0395C0 000E7080 */ sll $t6, $t6, 2 +/* 06E0F4 7F0395C4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E0F8 7F0395C8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E0FC 7F0395CC 01CF5021 */ addu $t2, $t6, $t7 +/* 06E100 7F0395D0 01414821 */ addu $t1, $t2, $at +/* 06E104 7F0395D4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E108 7F0395D8 AC2999F8 */ sw $t1, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395DC: +/* 06E10C 7F0395DC 0FC1EA6E */ jal set_camera_mode +/* 06E110 7F0395E0 24040007 */ li $a0, 7 +/* 06E114 7F0395E4 26520003 */ addiu $s2, $s2, 3 +/* 06E118 7F0395E8 1000EFE8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E11C 7F0395EC 26310003 */ addiu $s1, $s1, 3 +actionD5_Go_To_Camera_Position_6: +/* 06E120 7F0395F0 0FC15C20 */ jal sub_GAME_7F057080 +/* 06E124 7F0395F4 92240001 */ lbu $a0, 1($s1) +/* 06E128 7F0395F8 1040001A */ beqz $v0, .L7F039664 +/* 06E12C 7F0395FC 00408025 */ move $s0, $v0 +/* 06E130 7F039600 0FC15AC7 */ jal check_if_object_type_has_been_loaded +/* 06E134 7F039604 00402025 */ move $a0, $v0 +/* 06E138 7F039608 04420017 */ bltzl $v0, .L7F039668 +/* 06E13C 7F03960C 26520006 */ addiu $s2, $s2, 6 +/* 06E140 7F039610 860C0006 */ lh $t4, 6($s0) +/* 06E144 7F039614 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 06E148 7F039618 01822021 */ addu $a0, $t4, $v0 +/* 06E14C 7F03961C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E150 7F039620 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E154 7F039624 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E158 7F039628 AC2299FC */ sw $v0, %lo(dword_CODE_bss_800799FC)($at) +/* 06E15C 7F03962C 922B0002 */ lbu $t3, 2($s1) +/* 06E160 7F039630 92390003 */ lbu $t9, 3($s1) +/* 06E164 7F039634 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A18) +/* 06E168 7F039638 000BC200 */ sll $t8, $t3, 8 +/* 06E16C 7F03963C 03196825 */ or $t5, $t8, $t9 +/* 06E170 7F039640 AC2D9A18 */ sw $t5, %lo(dword_CODE_bss_80079A18)($at) +/* 06E174 7F039644 922E0004 */ lbu $t6, 4($s1) +/* 06E178 7F039648 922A0005 */ lbu $t2, 5($s1) +/* 06E17C 7F03964C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A1C) +/* 06E180 7F039650 000E7A00 */ sll $t7, $t6, 8 +/* 06E184 7F039654 01EA4825 */ or $t1, $t7, $t2 +/* 06E188 7F039658 AC299A1C */ sw $t1, %lo(dword_CODE_bss_80079A1C)($at) +/* 06E18C 7F03965C 0FC1EA6E */ jal set_camera_mode +/* 06E190 7F039660 24040007 */ li $a0, 7 +.L7F039664: +/* 06E194 7F039664 26520006 */ addiu $s2, $s2, 6 +.L7F039668: +/* 06E198 7F039668 1000EFC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E19C 7F03966C 26310006 */ addiu $s1, $s1, 6 +actionD6_If_Less_Than_Elevation_RVL_4: +/* 06E1A0 7F039670 922C0001 */ lbu $t4, 1($s1) +/* 06E1A4 7F039674 92380002 */ lbu $t8, 2($s1) +/* 06E1A8 7F039678 000C5A00 */ sll $t3, $t4, 8 +/* 06E1AC 7F03967C 0178C825 */ or $t9, $t3, $t8 +/* 06E1B0 7F039680 00196C00 */ sll $t5, $t9, 0x10 +/* 06E1B4 7F039684 000D7403 */ sra $t6, $t5, 0x10 +/* 06E1B8 7F039688 448E5000 */ mtc1 $t6, $f10 +/* 06E1BC 7F03968C 00000000 */ nop +/* 06E1C0 7F039690 468054A0 */ cvt.s.w $f18, $f10 +/* 06E1C4 7F039694 0FC225E6 */ jal get_curplayer_positiondata +/* 06E1C8 7F039698 E7B2014C */ swc1 $f18, 0x14c($sp) +/* 06E1CC 7F03969C C450000C */ lwc1 $f16, 0xc($v0) +/* 06E1D0 7F0396A0 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06E1D4 7F0396A4 02C02025 */ move $a0, $s6 +/* 06E1D8 7F0396A8 02402825 */ move $a1, $s2 +/* 06E1DC 7F0396AC 4608803C */ c.lt.s $f16, $f8 +/* 06E1E0 7F0396B0 00000000 */ nop +/* 06E1E4 7F0396B4 45020007 */ bc1fl .L7F0396D4 +/* 06E1E8 7F0396B8 26520004 */ addiu $s2, $s2, 4 +/* 06E1EC 7F0396BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E1F0 7F0396C0 92260003 */ lbu $a2, 3($s1) +/* 06E1F4 7F0396C4 00409025 */ move $s2, $v0 +/* 06E1F8 7F0396C8 1000EFB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E1FC 7F0396CC 02C28821 */ addu $s1, $s6, $v0 +/* 06E200 7F0396D0 26520004 */ addiu $s2, $s2, 4 +.L7F0396D4: +/* 06E204 7F0396D4 1000EFAD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E208 7F0396D8 26310004 */ addiu $s1, $s1, 4 +actionD7_Disable_Text_Variable_2: +/* 06E20C 7F0396DC 24040004 */ li $a0, 4 +/* 06E210 7F0396E0 0FC1A96A */ jal set_unset_bitflags +/* 06E214 7F0396E4 00002825 */ move $a1, $zero +/* 06E218 7F0396E8 24040002 */ li $a0, 2 +/* 06E21C 7F0396EC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E220 7F0396F0 00002825 */ move $a1, $zero +/* 06E224 7F0396F4 92250001 */ lbu $a1, 1($s1) +/* 06E228 7F0396F8 30AF0002 */ andi $t7, $a1, 2 +/* 06E22C 7F0396FC 55E00005 */ bnezl $t7, .L7F039714 +/* 06E230 7F039700 30AA0001 */ andi $t2, $a1, 1 +/* 06E234 7F039704 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 06E238 7F039708 24040002 */ li $a0, 2 +/* 06E23C 7F03970C 92250001 */ lbu $a1, 1($s1) +/* 06E240 7F039710 30AA0001 */ andi $t2, $a1, 1 +.L7F039714: +/* 06E244 7F039714 55400005 */ bnezl $t2, .L7F03972C +/* 06E248 7F039718 30A90004 */ andi $t1, $a1, 4 +/* 06E24C 7F03971C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 06E250 7F039720 24040002 */ li $a0, 2 +/* 06E254 7F039724 92250001 */ lbu $a1, 1($s1) +/* 06E258 7F039728 30A90004 */ andi $t1, $a1, 4 +.L7F03972C: +/* 06E25C 7F03972C 15200003 */ bnez $t1, .L7F03973C +/* 06E260 7F039730 24040010 */ li $a0, 16 +/* 06E264 7F039734 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E268 7F039738 00002825 */ move $a1, $zero +.L7F03973C: +/* 06E26C 7F03973C 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E270 7F039740 AC2064B0 */ sw $zero, %lo(D_800364B0)($at) +/* 06E274 7F039744 26520002 */ addiu $s2, $s2, 2 +/* 06E278 7F039748 1000EF90 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E27C 7F03974C 26310002 */ addiu $s1, $s1, 2 +actionD8_Enable_All_On_Screen_Displays_1: +/* 06E280 7F039750 24040004 */ li $a0, 4 +/* 06E284 7F039754 0FC1A96A */ jal set_unset_bitflags +/* 06E288 7F039758 24050001 */ li $a1, 1 +/* 06E28C 7F03975C 24040002 */ li $a0, 2 +/* 06E290 7F039760 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E294 7F039764 24050001 */ li $a1, 1 +/* 06E298 7F039768 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 06E29C 7F03976C 24040002 */ li $a0, 2 +/* 06E2A0 7F039770 0FC22A4A */ jal sub_GAME_7F08A928 +/* 06E2A4 7F039774 24040002 */ li $a0, 2 +/* 06E2A8 7F039778 24040010 */ li $a0, 16 +/* 06E2AC 7F03977C 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E2B0 7F039780 24050001 */ li $a1, 1 +/* 06E2B4 7F039784 240C0001 */ li $t4, 1 +/* 06E2B8 7F039788 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E2BC 7F03978C AC2C64B0 */ sw $t4, %lo(D_800364B0)($at) +/* 06E2C0 7F039790 26520001 */ addiu $s2, $s2, 1 +/* 06E2C4 7F039794 1000EF7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E2C8 7F039798 26310001 */ addiu $s1, $s1, 1 +actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5: +/* 06E2CC 7F03979C 922B0002 */ lbu $t3, 2($s1) +/* 06E2D0 7F0397A0 92390003 */ lbu $t9, 3($s1) +/* 06E2D4 7F0397A4 02E02025 */ move $a0, $s7 +/* 06E2D8 7F0397A8 000BC200 */ sll $t8, $t3, 8 +/* 06E2DC 7F0397AC 92250001 */ lbu $a1, 1($s1) +/* 06E2E0 7F0397B0 0000A025 */ move $s4, $zero +/* 06E2E4 7F0397B4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E2E8 7F0397B8 03199825 */ or $s3, $t8, $t9 +/* 06E2EC 7F0397BC 1040005E */ beqz $v0, .L7F039938 +/* 06E2F0 7F0397C0 00408025 */ move $s0, $v0 +/* 06E2F4 7F0397C4 02E02025 */ move $a0, $s7 +/* 06E2F8 7F0397C8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 06E2FC 7F0397CC 02602825 */ move $a1, $s3 +/* 06E300 7F0397D0 28412710 */ slti $at, $v0, 0x2710 +/* 06E304 7F0397D4 1020000A */ beqz $at, .L7F039800 +/* 06E308 7F0397D8 00027900 */ sll $t7, $v0, 4 +/* 06E30C 7F0397DC 00026880 */ sll $t5, $v0, 2 +/* 06E310 7F0397E0 01A26823 */ subu $t5, $t5, $v0 +/* 06E314 7F0397E4 000D6880 */ sll $t5, $t5, 2 +/* 06E318 7F0397E8 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 06E31C 7F0397EC 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 06E320 7F0397F0 01A26823 */ subu $t5, $t5, $v0 +/* 06E324 7F0397F4 000D6880 */ sll $t5, $t5, 2 +/* 06E328 7F0397F8 10000009 */ b .L7F039820 +/* 06E32C 7F0397FC 01AE1821 */ addu $v1, $t5, $t6 +.L7F039800: +/* 06E330 7F039800 3C0A8007 */ lui $t2, %hi(ptr_2xxxpresets) +/* 06E334 7F039804 8D4A5D1C */ lw $t2, %lo(ptr_2xxxpresets)($t2) +/* 06E338 7F039808 01E27821 */ addu $t7, $t7, $v0 +/* 06E33C 7F03980C 000F7880 */ sll $t7, $t7, 2 +/* 06E340 7F039810 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E344 7F039814 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E348 7F039818 01EA1821 */ addu $v1, $t7, $t2 +/* 06E34C 7F03981C 00611821 */ addu $v1, $v1, $at +.L7F039820: +/* 06E350 7F039820 C46C0018 */ lwc1 $f12, 0x18($v1) +/* 06E354 7F039824 C46E0020 */ lwc1 $f14, 0x20($v1) +/* 06E358 7F039828 0FC16A8C */ jal atan2f +/* 06E35C 7F03982C AFA30134 */ sw $v1, 0x134($sp) +/* 06E360 7F039830 8FA30134 */ lw $v1, 0x134($sp) +/* 06E364 7F039834 E7A00130 */ swc1 $f0, 0x130($sp) +/* 06E368 7F039838 00002825 */ move $a1, $zero +/* 06E36C 7F03983C C4640000 */ lwc1 $f4, ($v1) +/* 06E370 7F039840 E7A40124 */ swc1 $f4, 0x124($sp) +/* 06E374 7F039844 C4660004 */ lwc1 $f6, 4($v1) +/* 06E378 7F039848 E7A60128 */ swc1 $f6, 0x128($sp) +/* 06E37C 7F03984C C46A0008 */ lwc1 $f10, 8($v1) +/* 06E380 7F039850 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 06E384 7F039854 8C690028 */ lw $t1, 0x28($v1) +/* 06E388 7F039858 AFA90120 */ sw $t1, 0x120($sp) +/* 06E38C 7F03985C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E390 7F039860 8E040018 */ lw $a0, 0x18($s0) +/* 06E394 7F039864 27A40124 */ addiu $a0, $sp, 0x124 +/* 06E398 7F039868 27A50120 */ addiu $a1, $sp, 0x120 +/* 06E39C 7F03986C 8FA60130 */ lw $a2, 0x130($sp) +/* 06E3A0 7F039870 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 06E3A4 7F039874 24070001 */ li $a3, 1 +/* 06E3A8 7F039878 1040002C */ beqz $v0, .L7F03992C +/* 06E3AC 7F03987C C7B20124 */ lwc1 $f18, 0x124($sp) +/* 06E3B0 7F039880 8E0C0018 */ lw $t4, 0x18($s0) +/* 06E3B4 7F039884 E5920008 */ swc1 $f18, 8($t4) +/* 06E3B8 7F039888 8E0B0018 */ lw $t3, 0x18($s0) +/* 06E3BC 7F03988C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 06E3C0 7F039890 E570000C */ swc1 $f16, 0xc($t3) +/* 06E3C4 7F039894 8E180018 */ lw $t8, 0x18($s0) +/* 06E3C8 7F039898 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 06E3CC 7F03989C E7080010 */ swc1 $f8, 0x10($t8) +/* 06E3D0 7F0398A0 8E0D0018 */ lw $t5, 0x18($s0) +/* 06E3D4 7F0398A4 8FB90120 */ lw $t9, 0x120($sp) +/* 06E3D8 7F0398A8 ADB90014 */ sw $t9, 0x14($t5) +/* 06E3DC 7F0398AC 8E0E0014 */ lw $t6, 0x14($s0) +/* 06E3E0 7F0398B0 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3E4 7F0398B4 35CF0001 */ ori $t7, $t6, 1 +/* 06E3E8 7F0398B8 AE0F0014 */ sw $t7, 0x14($s0) +/* 06E3EC 7F0398BC 0FC1B34F */ jal setsubroty +/* 06E3F0 7F0398C0 8FA50130 */ lw $a1, 0x130($sp) +/* 06E3F4 7F0398C4 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3F8 7F0398C8 0FC1B303 */ jal setsuboffset +/* 06E3FC 7F0398CC 27A50124 */ addiu $a1, $sp, 0x124 +/* 06E400 7F0398D0 0FC08365 */ jal sub_GAME_7F020D94 +/* 06E404 7F0398D4 02002025 */ move $a0, $s0 +/* 06E408 7F0398D8 3C028008 */ lui $v0, %hi(pPlayer) +/* 06E40C 7F0398DC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 06E410 7F0398E0 8E090018 */ lw $t1, 0x18($s0) +/* 06E414 7F0398E4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 06E418 7F0398E8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 06E41C 7F0398EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 06E420 7F0398F0 24140001 */ li $s4, 1 +/* 06E424 7F0398F4 1549000D */ bne $t2, $t1, .L7F03992C +/* 06E428 7F0398F8 00000000 */ nop +/* 06E42C 7F0398FC E444048C */ swc1 $f4, 0x48c($v0) +/* 06E430 7F039900 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 06E434 7F039904 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 06E438 7F039908 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 06E43C 7F03990C 3C198008 */ lui $t9, %hi(pPlayer) +/* 06E440 7F039910 E5860490 */ swc1 $f6, 0x490($t4) +/* 06E444 7F039914 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 06E448 7F039918 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 06E44C 7F03991C E56A0494 */ swc1 $f10, 0x494($t3) +/* 06E450 7F039920 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 06E454 7F039924 8FB80120 */ lw $t8, 0x120($sp) +/* 06E458 7F039928 AF380488 */ sw $t8, 0x488($t9) +.L7F03992C: +/* 06E45C 7F03992C 8E040018 */ lw $a0, 0x18($s0) +/* 06E460 7F039930 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E464 7F039934 24050001 */ li $a1, 1 +.L7F039938: +/* 06E468 7F039938 12800007 */ beqz $s4, .L7F039958 +/* 06E46C 7F03993C 02C02025 */ move $a0, $s6 +/* 06E470 7F039940 02402825 */ move $a1, $s2 +/* 06E474 7F039944 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E478 7F039948 92260004 */ lbu $a2, 4($s1) +/* 06E47C 7F03994C 00409025 */ move $s2, $v0 +/* 06E480 7F039950 1000EF0E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E484 7F039954 02C28821 */ addu $s1, $s6, $v0 +.L7F039958: +/* 06E488 7F039958 26520005 */ addiu $s2, $s2, 5 +/* 06E48C 7F03995C 1000EF0B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E490 7F039960 26310005 */ addiu $s1, $s1, 5 +actionDA_Fade_Out_From_Cut_Scene_1: +/* 06E494 7F039964 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E498 7F039968 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E49C 7F03996C 24010002 */ li $at, 2 +/* 06E4A0 7F039970 00002025 */ move $a0, $zero +/* 06E4A4 7F039974 11A10008 */ beq $t5, $at, .L7F039998 +/* 06E4A8 7F039978 00002825 */ move $a1, $zero +/* 06E4AC 7F03997C 4407A000 */ mfc1 $a3, $f20 +/* 06E4B0 7F039980 0FC201EC */ jal set_rgba_tint +/* 06E4B4 7F039984 00003025 */ move $a2, $zero +/* 06E4B8 7F039988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E4BC 7F03998C 44817000 */ mtc1 $at, $f14 +/* 06E4C0 7F039990 0FC20216 */ jal fade_to_over_seconds +/* 06E4C4 7F039994 4600B306 */ mov.s $f12, $f22 +.L7F039998: +/* 06E4C8 7F039998 26520001 */ addiu $s2, $s2, 1 +/* 06E4CC 7F03999C 1000EEFB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E4D0 7F0399A0 26310001 */ addiu $s1, $s1, 1 +actionDB_Fade_In_From_Black_Reset_DA_1: +/* 06E4D4 7F0399A4 3C0E8003 */ lui $t6, %hi(stop_time_flag) +/* 06E4D8 7F0399A8 8DCE64A0 */ lw $t6, %lo(stop_time_flag)($t6) +/* 06E4DC 7F0399AC 24010002 */ li $at, 2 +/* 06E4E0 7F0399B0 00002025 */ move $a0, $zero +/* 06E4E4 7F0399B4 11C10007 */ beq $t6, $at, .L7F0399D4 +/* 06E4E8 7F0399B8 00002825 */ move $a1, $zero +/* 06E4EC 7F0399BC 00003025 */ move $a2, $zero +/* 06E4F0 7F0399C0 0FC201EC */ jal set_rgba_tint +/* 06E4F4 7F0399C4 3C073F80 */ li $a3, 0x3F800000 # 1.000000 +/* 06E4F8 7F0399C8 4600B306 */ mov.s $f12, $f22 +/* 06E4FC 7F0399CC 0FC20216 */ jal fade_to_over_seconds +/* 06E500 7F0399D0 4600A386 */ mov.s $f14, $f20 +.L7F0399D4: +/* 06E504 7F0399D4 26520001 */ addiu $s2, $s2, 1 +/* 06E508 7F0399D8 1000EEEC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E50C 7F0399DC 26310001 */ addiu $s1, $s1, 1 +actionDC_RVL_When_Fade_Complete_2: +/* 06E510 7F0399E0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E514 7F0399E4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E518 7F0399E8 02C02025 */ move $a0, $s6 +/* 06E51C 7F0399EC 02402825 */ move $a1, $s2 +/* 06E520 7F0399F0 C5F203E4 */ lwc1 $f18, 0x3e4($t7) +/* 06E524 7F0399F4 4614903C */ c.lt.s $f18, $f20 +/* 06E528 7F0399F8 00000000 */ nop +/* 06E52C 7F0399FC 45020007 */ bc1fl .L7F039A1C +/* 06E530 7F039A00 26520002 */ addiu $s2, $s2, 2 +/* 06E534 7F039A04 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E538 7F039A08 92260001 */ lbu $a2, 1($s1) +/* 06E53C 7F039A0C 00409025 */ move $s2, $v0 +/* 06E540 7F039A10 1000EEDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E544 7F039A14 02C28821 */ addu $s1, $s6, $v0 +/* 06E548 7F039A18 26520002 */ addiu $s2, $s2, 2 +.L7F039A1C: +/* 06E54C 7F039A1C 1000EEDB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E550 7F039A20 26310002 */ addiu $s1, $s1, 2 +actionDD_Remove_All_Guards_1: +/* 06E554 7F039A24 0FC07D4C */ jal get_numguards +/* 06E558 7F039A28 00000000 */ nop +/* 06E55C 7F039A2C 2443FFFF */ addiu $v1, $v0, -1 +/* 06E560 7F039A30 04600011 */ bltz $v1, .L7F039A78 +/* 06E564 7F039A34 26520001 */ addiu $s2, $s2, 1 +/* 06E568 7F039A38 00031100 */ sll $v0, $v1, 4 +/* 06E56C 7F039A3C 00431023 */ subu $v0, $v0, $v1 +/* 06E570 7F039A40 000210C0 */ sll $v0, $v0, 3 +/* 06E574 7F039A44 00431023 */ subu $v0, $v0, $v1 +/* 06E578 7F039A48 00021080 */ sll $v0, $v0, 2 +/* 06E57C 7F039A4C 8FCA0000 */ lw $t2, ($fp) +.L7F039A50: +/* 06E580 7F039A50 01421821 */ addu $v1, $t2, $v0 +/* 06E584 7F039A54 8C69001C */ lw $t1, 0x1c($v1) +/* 06E588 7F039A58 2442FE24 */ addiu $v0, $v0, -0x1dc +/* 06E58C 7F039A5C 11200004 */ beqz $t1, .L7F039A70 +/* 06E590 7F039A60 00000000 */ nop +/* 06E594 7F039A64 8C6C0014 */ lw $t4, 0x14($v1) +/* 06E598 7F039A68 358B0400 */ ori $t3, $t4, 0x400 +/* 06E59C 7F039A6C AC6B0014 */ sw $t3, 0x14($v1) +.L7F039A70: +/* 06E5A0 7F039A70 0443FFF7 */ bgezl $v0, .L7F039A50 +/* 06E5A4 7F039A74 8FCA0000 */ lw $t2, ($fp) +.L7F039A78: +/* 06E5A8 7F039A78 1000EEC4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E5AC 7F039A7C 26310001 */ addiu $s1, $s1, 1 +actionDE_Bring_Removed_Guards_Back_1: +/* 06E5B0 7F039A80 0FC07D4C */ jal get_numguards +/* 06E5B4 7F039A84 00000000 */ nop +/* 06E5B8 7F039A88 2443FFFF */ addiu $v1, $v0, -1 +/* 06E5BC 7F039A8C 0460000E */ bltz $v1, .L7F039AC8 +/* 06E5C0 7F039A90 00602025 */ move $a0, $v1 +/* 06E5C4 7F039A94 00031900 */ sll $v1, $v1, 4 +/* 06E5C8 7F039A98 00641823 */ subu $v1, $v1, $a0 +/* 06E5CC 7F039A9C 000318C0 */ sll $v1, $v1, 3 +/* 06E5D0 7F039AA0 00641823 */ subu $v1, $v1, $a0 +/* 06E5D4 7F039AA4 00031880 */ sll $v1, $v1, 2 +/* 06E5D8 7F039AA8 2404FBFF */ li $a0, -1025 +.L7F039AAC: +/* 06E5DC 7F039AAC 8FD80000 */ lw $t8, ($fp) +/* 06E5E0 7F039AB0 03031021 */ addu $v0, $t8, $v1 +/* 06E5E4 7F039AB4 8C590014 */ lw $t9, 0x14($v0) +/* 06E5E8 7F039AB8 2463FE24 */ addiu $v1, $v1, -0x1dc +/* 06E5EC 7F039ABC 03246824 */ and $t5, $t9, $a0 +/* 06E5F0 7F039AC0 0461FFFA */ bgez $v1, .L7F039AAC +/* 06E5F4 7F039AC4 AC4D0014 */ sw $t5, 0x14($v0) +.L7F039AC8: +/* 06E5F8 7F039AC8 26520001 */ addiu $s2, $s2, 1 +/* 06E5FC 7F039ACC 1000EEAF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E600 7F039AD0 26310001 */ addiu $s1, $s1, 1 +actionDF_Open_Type_16_Door_Used_Cut_Scenes_2: +/* 06E604 7F039AD4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E608 7F039AD8 92240001 */ lbu $a0, 1($s1) +/* 06E60C 7F039ADC 10400011 */ beqz $v0, .L7F039B24 +/* 06E610 7F039AE0 00402025 */ move $a0, $v0 +/* 06E614 7F039AE4 8C4E0010 */ lw $t6, 0x10($v0) +/* 06E618 7F039AE8 51C0000F */ beql $t6, $zero, .L7F039B28 +/* 06E61C 7F039AEC 26520002 */ addiu $s2, $s2, 2 +/* 06E620 7F039AF0 C4500084 */ lwc1 $f16, 0x84($v0) +/* 06E624 7F039AF4 E45400B8 */ swc1 $f20, 0xb8($v0) +/* 06E628 7F039AF8 3C0F8005 */ lui $t7, %hi(global_timer) +/* 06E62C 7F039AFC E45000B4 */ swc1 $f16, 0xb4($v0) +/* 06E630 7F039B00 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 06E634 7F039B04 A04000BC */ sb $zero, 0xbc($v0) +/* 06E638 7F039B08 AC4F00EC */ sw $t7, 0xec($v0) +/* 06E63C 7F039B0C 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 06E640 7F039B10 AFA2010C */ sw $v0, 0x10c($sp) +/* 06E644 7F039B14 0FC14D66 */ jal sub_GAME_7F053598 +/* 06E648 7F039B18 8FA4010C */ lw $a0, 0x10c($sp) +/* 06E64C 7F039B1C 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 06E650 7F039B20 8FA4010C */ lw $a0, 0x10c($sp) +.L7F039B24: +/* 06E654 7F039B24 26520002 */ addiu $s2, $s2, 2 +.L7F039B28: +/* 06E658 7F039B28 1000EE98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E65C 7F039B2C 26310002 */ addiu $s1, $s1, 2 +actionE0_Guard_ID_Draws_Weapon_num_3: +/* 06E660 7F039B30 02E02025 */ move $a0, $s7 +/* 06E664 7F039B34 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E668 7F039B38 92250001 */ lbu $a1, 1($s1) +/* 06E66C 7F039B3C 10400003 */ beqz $v0, .L7F039B4C +/* 06E670 7F039B40 00402025 */ move $a0, $v0 +/* 06E674 7F039B44 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 06E678 7F039B48 92250002 */ lbu $a1, 2($s1) +.L7F039B4C: +/* 06E67C 7F039B4C 26520003 */ addiu $s2, $s2, 3 +/* 06E680 7F039B50 1000EE8E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E684 7F039B54 26310003 */ addiu $s1, $s1, 3 +actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3: +/* 06E688 7F039B58 0FC26919 */ jal get_num_players +/* 06E68C 7F039B5C 00000000 */ nop +/* 06E690 7F039B60 822A0001 */ lb $t2, 1($s1) +/* 06E694 7F039B64 02C02025 */ move $a0, $s6 +/* 06E698 7F039B68 02402825 */ move $a1, $s2 +/* 06E69C 7F039B6C 004A082A */ slt $at, $v0, $t2 +/* 06E6A0 7F039B70 50200007 */ beql $at, $zero, .L7F039B90 +/* 06E6A4 7F039B74 26520003 */ addiu $s2, $s2, 3 +/* 06E6A8 7F039B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6AC 7F039B7C 92260002 */ lbu $a2, 2($s1) +/* 06E6B0 7F039B80 00409025 */ move $s2, $v0 +/* 06E6B4 7F039B84 1000EE81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6B8 7F039B88 02C28821 */ addu $s1, $s6, $v0 +/* 06E6BC 7F039B8C 26520003 */ addiu $s2, $s2, 3 +.L7F039B90: +/* 06E6C0 7F039B90 1000EE7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6C4 7F039B94 26310003 */ addiu $s1, $s1, 3 +actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4: +/* 06E6C8 7F039B98 0FC1A496 */ jal check_cur_player_ammo_amount_total +/* 06E6CC 7F039B9C 82240001 */ lb $a0, 1($s1) +/* 06E6D0 7F039BA0 82290002 */ lb $t1, 2($s1) +/* 06E6D4 7F039BA4 02C02025 */ move $a0, $s6 +/* 06E6D8 7F039BA8 02402825 */ move $a1, $s2 +/* 06E6DC 7F039BAC 0049082A */ slt $at, $v0, $t1 +/* 06E6E0 7F039BB0 50200007 */ beql $at, $zero, .L7F039BD0 +/* 06E6E4 7F039BB4 26520004 */ addiu $s2, $s2, 4 +/* 06E6E8 7F039BB8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6EC 7F039BBC 92260003 */ lbu $a2, 3($s1) +/* 06E6F0 7F039BC0 00409025 */ move $s2, $v0 +/* 06E6F4 7F039BC4 1000EE71 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6F8 7F039BC8 02C28821 */ addu $s1, $s6, $v0 +/* 06E6FC 7F039BCC 26520004 */ addiu $s2, $s2, 4 +.L7F039BD0: +/* 06E700 7F039BD0 1000EE6E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E704 7F039BD4 26310004 */ addiu $s1, $s1, 4 +actionE3_Draw_Weapon_From_Inventory_In_Game_2: +/* 06E708 7F039BD8 00002025 */ move $a0, $zero +/* 06E70C 7F039BDC 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E710 7F039BE0 82250001 */ lb $a1, 1($s1) +/* 06E714 7F039BE4 24040001 */ li $a0, 1 +/* 06E718 7F039BE8 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E71C 7F039BEC 00002825 */ move $a1, $zero +/* 06E720 7F039BF0 26520002 */ addiu $s2, $s2, 2 +/* 06E724 7F039BF4 1000EE65 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E728 7F039BF8 26310002 */ addiu $s1, $s1, 2 +actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2: +/* 06E72C 7F039BFC 00002025 */ move $a0, $zero +/* 06E730 7F039C00 0FC176D5 */ jal remove_hands_item +/* 06E734 7F039C04 82250001 */ lb $a1, 1($s1) +/* 06E738 7F039C08 24040001 */ li $a0, 1 +/* 06E73C 7F039C0C 0FC176D5 */ jal remove_hands_item +/* 06E740 7F039C10 00002825 */ move $a1, $zero +/* 06E744 7F039C14 26520002 */ addiu $s2, $s2, 2 +/* 06E748 7F039C18 1000EE5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E74C 7F039C1C 26310002 */ addiu $s1, $s1, 2 +actionE5_Set_Bonds_Speed_3: +/* 06E750 7F039C20 822C0001 */ lb $t4, 1($s1) +/* 06E754 7F039C24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 06E758 7F039C28 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 06E75C 7F039C2C 448C4000 */ mtc1 $t4, $f8 +/* 06E760 7F039C30 E4540004 */ swc1 $f20, 4($v0) +/* 06E764 7F039C34 26520003 */ addiu $s2, $s2, 3 +/* 06E768 7F039C38 46804120 */ cvt.s.w $f4, $f8 +/* 06E76C 7F039C3C 26310003 */ addiu $s1, $s1, 3 +/* 06E770 7F039C40 E4440000 */ swc1 $f4, ($v0) +/* 06E774 7F039C44 822BFFFF */ lb $t3, -1($s1) +/* 06E778 7F039C48 448B3000 */ mtc1 $t3, $f6 +/* 06E77C 7F039C4C 00000000 */ nop +/* 06E780 7F039C50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E784 7F039C54 1000EE4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E788 7F039C58 E44A0008 */ swc1 $f10, 8($v0) +actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5: +/* 06E78C 7F039C5C 92380002 */ lbu $t8, 2($s1) +/* 06E790 7F039C60 922D0003 */ lbu $t5, 3($s1) +/* 06E794 7F039C64 92240001 */ lbu $a0, 1($s1) +/* 06E798 7F039C68 0018CA00 */ sll $t9, $t8, 8 +/* 06E79C 7F039C6C 032D8025 */ or $s0, $t9, $t5 +/* 06E7A0 7F039C70 320EFFFF */ andi $t6, $s0, 0xffff +/* 06E7A4 7F039C74 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E7A8 7F039C78 01C08025 */ move $s0, $t6 +/* 06E7AC 7F039C7C 2A012710 */ slti $at, $s0, 0x2710 +/* 06E7B0 7F039C80 1020000A */ beqz $at, .L7F039CAC +/* 06E7B4 7F039C84 02001825 */ move $v1, $s0 +/* 06E7B8 7F039C88 00037880 */ sll $t7, $v1, 2 +/* 06E7BC 7F039C8C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7C0 7F039C90 000F7880 */ sll $t7, $t7, 2 +/* 06E7C4 7F039C94 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 06E7C8 7F039C98 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 06E7CC 7F039C9C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7D0 7F039CA0 000F7880 */ sll $t7, $t7, 2 +/* 06E7D4 7F039CA4 1000000A */ b .L7F039CD0 +/* 06E7D8 7F039CA8 01EA2021 */ addu $a0, $t7, $t2 +.L7F039CAC: +/* 06E7DC 7F039CAC 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 06E7E0 7F039CB0 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 06E7E4 7F039CB4 00034900 */ sll $t1, $v1, 4 +/* 06E7E8 7F039CB8 01234821 */ addu $t1, $t1, $v1 +/* 06E7EC 7F039CBC 00094880 */ sll $t1, $t1, 2 +/* 06E7F0 7F039CC0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E7F4 7F039CC4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E7F8 7F039CC8 012C2021 */ addu $a0, $t1, $t4 +/* 06E7FC 7F039CCC 00812021 */ addu $a0, $a0, $at +.L7F039CD0: +/* 06E800 7F039CD0 8C830028 */ lw $v1, 0x28($a0) +/* 06E804 7F039CD4 50600013 */ beql $v1, $zero, .L7F039D24 +/* 06E808 7F039CD8 26520005 */ addiu $s2, $s2, 5 +/* 06E80C 7F039CDC 50400011 */ beql $v0, $zero, .L7F039D24 +/* 06E810 7F039CE0 26520005 */ addiu $s2, $s2, 5 +/* 06E814 7F039CE4 8C440010 */ lw $a0, 0x10($v0) +/* 06E818 7F039CE8 5080000E */ beql $a0, $zero, .L7F039D24 +/* 06E81C 7F039CEC 26520005 */ addiu $s2, $s2, 5 +/* 06E820 7F039CF0 8C8B0014 */ lw $t3, 0x14($a0) +/* 06E824 7F039CF4 90790003 */ lbu $t9, 3($v1) +/* 06E828 7F039CF8 02C02025 */ move $a0, $s6 +/* 06E82C 7F039CFC 91780003 */ lbu $t8, 3($t3) +/* 06E830 7F039D00 02402825 */ move $a1, $s2 +/* 06E834 7F039D04 57190007 */ bnel $t8, $t9, .L7F039D24 +/* 06E838 7F039D08 26520005 */ addiu $s2, $s2, 5 +/* 06E83C 7F039D0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E840 7F039D10 92260004 */ lbu $a2, 4($s1) +/* 06E844 7F039D14 00409025 */ move $s2, $v0 +/* 06E848 7F039D18 1000EE1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E84C 7F039D1C 02C28821 */ addu $s1, $s6, $v0 +/* 06E850 7F039D20 26520005 */ addiu $s2, $s2, 5 +.L7F039D24: +/* 06E854 7F039D24 1000EE19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E858 7F039D28 26310005 */ addiu $s1, $s1, 5 +actionE9_Instantly_Switch_Sky_To_Sky_2_1: +/* 06E85C 7F039D2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E860 7F039D30 44816000 */ mtc1 $at, $f12 +/* 06E864 7F039D34 0FC2EB2A */ jal switch_to_solosky2 +/* 06E868 7F039D38 00000000 */ nop +/* 06E86C 7F039D3C 26520001 */ addiu $s2, $s2, 1 +/* 06E870 7F039D40 1000EE12 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E874 7F039D44 26310001 */ addiu $s1, $s1, 1 +actionEA_Stop_Game_Time_1: +/* 06E878 7F039D48 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E87C 7F039D4C 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E880 7F039D50 240E0001 */ li $t6, 1 +/* 06E884 7F039D54 3C018003 */ lui $at, %hi(stop_time_flag) +/* 06E888 7F039D58 15A00002 */ bnez $t5, .L7F039D64 +/* 06E88C 7F039D5C 26520001 */ addiu $s2, $s2, 1 +/* 06E890 7F039D60 AC2E64A0 */ sw $t6, %lo(stop_time_flag)($at) +.L7F039D64: +/* 06E894 7F039D64 1000EE09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E898 7F039D68 26310001 */ addiu $s1, $s1, 1 +actionEB_If_Key_Pressed_RVL_2: +/* 06E89C 7F039D6C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E8A0 7F039D70 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E8A4 7F039D74 02C02025 */ move $a0, $s6 +/* 06E8A8 7F039D78 02402825 */ move $a1, $s2 +/* 06E8AC 7F039D7C 8DEA00D8 */ lw $t2, 0xd8($t7) +/* 06E8B0 7F039D80 51400007 */ beql $t2, $zero, .L7F039DA0 +/* 06E8B4 7F039D84 26520002 */ addiu $s2, $s2, 2 +/* 06E8B8 7F039D88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E8BC 7F039D8C 92260001 */ lbu $a2, 1($s1) +/* 06E8C0 7F039D90 00409025 */ move $s2, $v0 +/* 06E8C4 7F039D94 1000EDFD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8C8 7F039D98 02C28821 */ addu $s1, $s6, $v0 +/* 06E8CC 7F039D9C 26520002 */ addiu $s2, $s2, 2 +.L7F039DA0: +/* 06E8D0 7F039DA0 1000EDFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8D4 7F039DA4 26310002 */ addiu $s1, $s1, 2 +actionEC_Disable_Player_Pickups_1: +/* 06E8D8 7F039DA8 24090001 */ li $t1, 1 +/* 06E8DC 7F039DAC 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 06E8E0 7F039DB0 AC2964B4 */ sw $t1, %lo(disable_player_pickups_flag)($at) +/* 06E8E4 7F039DB4 26520001 */ addiu $s2, $s2, 1 +/* 06E8E8 7F039DB8 1000EDF4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8EC 7F039DBC 26310001 */ addiu $s1, $s1, 1 +actionED_Hide_First_Person_Display_1: +/* 06E8F0 7F039DC0 0FC173D7 */ jal remove_item_in_hand +/* 06E8F4 7F039DC4 00002025 */ move $a0, $zero +/* 06E8F8 7F039DC8 0FC173D7 */ jal remove_item_in_hand +/* 06E8FC 7F039DCC 24040001 */ li $a0, 1 +/* 06E900 7F039DD0 26520001 */ addiu $s2, $s2, 1 +/* 06E904 7F039DD4 1000EDED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E908 7F039DD8 26310001 */ addiu $s1, $s1, 1 +actionEE_Cuba_Circular_Camera_Aim_D: +/* 06E90C 7F039DDC 92390003 */ lbu $t9, 3($s1) +/* 06E910 7F039DE0 922E0004 */ lbu $t6, 4($s1) +/* 06E914 7F039DE4 922C0001 */ lbu $t4, 1($s1) +/* 06E918 7F039DE8 00196A00 */ sll $t5, $t9, 8 +/* 06E91C 7F039DEC 01AE1825 */ or $v1, $t5, $t6 +/* 06E920 7F039DF0 00037C00 */ sll $t7, $v1, 0x10 +/* 06E924 7F039DF4 922D0007 */ lbu $t5, 7($s1) +/* 06E928 7F039DF8 000F1C03 */ sra $v1, $t7, 0x10 +/* 06E92C 7F039DFC 922F0008 */ lbu $t7, 8($s1) +/* 06E930 7F039E00 92380002 */ lbu $t8, 2($s1) +/* 06E934 7F039E04 000D7200 */ sll $t6, $t5, 8 +/* 06E938 7F039E08 9239000B */ lbu $t9, 0xb($s1) +/* 06E93C 7F039E0C 01CF3025 */ or $a2, $t6, $t7 +/* 06E940 7F039E10 922E000C */ lbu $t6, 0xc($s1) +/* 06E944 7F039E14 000C5A00 */ sll $t3, $t4, 8 +/* 06E948 7F039E18 92290005 */ lbu $t1, 5($s1) +/* 06E94C 7F039E1C 01781025 */ or $v0, $t3, $t8 +/* 06E950 7F039E20 922B0006 */ lbu $t3, 6($s1) +/* 06E954 7F039E24 00196A00 */ sll $t5, $t9, 8 +/* 06E958 7F039E28 01AE4025 */ or $t0, $t5, $t6 +/* 06E95C 7F039E2C 44889000 */ mtc1 $t0, $f18 +/* 06E960 7F039E30 00096200 */ sll $t4, $t1, 8 +/* 06E964 7F039E34 018B2825 */ or $a1, $t4, $t3 +/* 06E968 7F039E38 0005C400 */ sll $t8, $a1, 0x10 +/* 06E96C 7F039E3C 46809420 */ cvt.s.w $f16, $f18 +/* 06E970 7F039E40 00182C03 */ sra $a1, $t8, 0x10 +/* 06E974 7F039E44 44853000 */ mtc1 $a1, $f6 +/* 06E978 7F039E48 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06E97C 7F039E4C 44810000 */ mtc1 $at, $f0 +/* 06E980 7F039E50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E984 7F039E54 461A8202 */ mul.s $f8, $f16, $f26 +/* 06E988 7F039E58 922A0009 */ lbu $t2, 9($s1) +/* 06E98C 7F039E5C 922C000A */ lbu $t4, 0xa($s1) +/* 06E990 7F039E60 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E994 7F039E64 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E998 7F039E68 461A5482 */ mul.s $f18, $f10, $f26 +/* 06E99C 7F039E6C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E9A0 7F039E70 AC2099FC */ sw $zero, %lo(dword_CODE_bss_800799FC)($at) +/* 06E9A4 7F039E74 000A4A00 */ sll $t1, $t2, 8 +/* 06E9A8 7F039E78 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A00) +/* 06E9AC 7F039E7C 012C3825 */ or $a3, $t1, $t4 +/* 06E9B0 7F039E80 46004103 */ div.s $f4, $f8, $f0 +/* 06E9B4 7F039E84 44824000 */ mtc1 $v0, $f8 +/* 06E9B8 7F039E88 44833000 */ mtc1 $v1, $f6 +/* 06E9BC 7F039E8C 00075C00 */ sll $t3, $a3, 0x10 +/* 06E9C0 7F039E90 000B3C03 */ sra $a3, $t3, 0x10 +/* 06E9C4 7F039E94 468032A0 */ cvt.s.w $f10, $f6 +/* 06E9C8 7F039E98 24040007 */ li $a0, 7 +/* 06E9CC 7F039E9C 46009403 */ div.s $f16, $f18, $f0 +/* 06E9D0 7F039EA0 E4249A00 */ swc1 $f4, %lo(flt_CODE_bss_80079A00)($at) +/* 06E9D4 7F039EA4 44879000 */ mtc1 $a3, $f18 +/* 06E9D8 7F039EA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 06E9DC 7F039EAC 46804120 */ cvt.s.w $f4, $f8 +/* 06E9E0 7F039EB0 E4309A04 */ swc1 $f16, %lo(flt_CODE_bss_80079A04)($at) +/* 06E9E4 7F039EB4 46809420 */ cvt.s.w $f16, $f18 +/* 06E9E8 7F039EB8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 06E9EC 7F039EBC E4249A08 */ swc1 $f4, %lo(flt_CODE_bss_80079A08)($at) +/* 06E9F0 7F039EC0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 06E9F4 7F039EC4 E42A9A0C */ swc1 $f10, %lo(flt_CODE_bss_80079A0C)($at) +/* 06E9F8 7F039EC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 06E9FC 7F039ECC E4309A10 */ swc1 $f16, %lo(flt_CODE_bss_80079A10)($at) +/* 06EA00 7F039ED0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A14) +/* 06EA04 7F039ED4 0FC1EA6E */ jal set_camera_mode +/* 06EA08 7F039ED8 AC269A14 */ sw $a2, %lo(dword_CODE_bss_80079A14)($at) +/* 06EA0C 7F039EDC 2652000D */ addiu $s2, $s2, 0xd +/* 06EA10 7F039EE0 1000EDAA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA14 7F039EE4 2631000D */ addiu $s1, $s1, 0xd +actionEF_Trigger_Credits_1: +/* 06EA18 7F039EE8 240F0001 */ li $t7, 1 +/* 06EA1C 7F039EEC 3C018003 */ lui $at, %hi(D_8003643C) +/* 06EA20 7F039EF0 AC2F643C */ sw $t7, %lo(D_8003643C)($at) +/* 06EA24 7F039EF4 26520001 */ addiu $s2, $s2, 1 +/* 06EA28 7F039EF8 1000EDA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA2C 7F039EFC 26310001 */ addiu $s1, $s1, 1 +actionF0_RVL_If_Credits_Completed_2: +/* 06EA30 7F039F00 3C0A8003 */ lui $t2, %hi(D_8003643C) +/* 06EA34 7F039F04 8D4A643C */ lw $t2, %lo(D_8003643C)($t2) +/* 06EA38 7F039F08 24010002 */ li $at, 2 +/* 06EA3C 7F039F0C 02C02025 */ move $a0, $s6 +/* 06EA40 7F039F10 15410006 */ bne $t2, $at, .L7F039F2C +/* 06EA44 7F039F14 02402825 */ move $a1, $s2 +/* 06EA48 7F039F18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA4C 7F039F1C 92260001 */ lbu $a2, 1($s1) +/* 06EA50 7F039F20 00409025 */ move $s2, $v0 +/* 06EA54 7F039F24 1000ED99 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA58 7F039F28 02C28821 */ addu $s1, $s6, $v0 +.L7F039F2C: +/* 06EA5C 7F039F2C 26520002 */ addiu $s2, $s2, 2 +/* 06EA60 7F039F30 1000ED96 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA64 7F039F34 26310002 */ addiu $s1, $s1, 2 +actionF1_If_All_Objectives_Complete_RVL_2: +/* 06EA68 7F039F38 0FC15D2E */ jal check_objectives_complete +/* 06EA6C 7F039F3C 00000000 */ nop +/* 06EA70 7F039F40 10400007 */ beqz $v0, .L7F039F60 +/* 06EA74 7F039F44 02C02025 */ move $a0, $s6 +/* 06EA78 7F039F48 02402825 */ move $a1, $s2 +/* 06EA7C 7F039F4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA80 7F039F50 92260001 */ lbu $a2, 1($s1) +/* 06EA84 7F039F54 00409025 */ move $s2, $v0 +/* 06EA88 7F039F58 1000ED8C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA8C 7F039F5C 02C28821 */ addu $s1, $s6, $v0 +.L7F039F60: +/* 06EA90 7F039F60 26520002 */ addiu $s2, $s2, 2 +/* 06EA94 7F039F64 1000ED89 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA98 7F039F68 26310002 */ addiu $s1, $s1, 2 +actionF2_Check_Current_Folder_Bond_RVL_3: +/* 06EA9C 7F039F6C 0FC0755B */ jal getSelectedFolderBond +/* 06EAA0 7F039F70 00000000 */ nop +/* 06EAA4 7F039F74 82290001 */ lb $t1, 1($s1) +/* 06EAA8 7F039F78 02C02025 */ move $a0, $s6 +/* 06EAAC 7F039F7C 02402825 */ move $a1, $s2 +/* 06EAB0 7F039F80 54490007 */ bnel $v0, $t1, .L7F039FA0 +/* 06EAB4 7F039F84 26520003 */ addiu $s2, $s2, 3 +/* 06EAB8 7F039F88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EABC 7F039F8C 92260002 */ lbu $a2, 2($s1) +/* 06EAC0 7F039F90 00409025 */ move $s2, $v0 +/* 06EAC4 7F039F94 1000ED7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAC8 7F039F98 02C28821 */ addu $s1, $s6, $v0 +/* 06EACC 7F039F9C 26520003 */ addiu $s2, $s2, 3 +.L7F039FA0: +/* 06EAD0 7F039FA0 1000ED7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAD4 7F039FA4 26310003 */ addiu $s1, $s1, 3 +actionF3_If_Player_Pickups_Disabled_RVL_2: +/* 06EAD8 7F039FA8 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 06EADC 7F039FAC 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 06EAE0 7F039FB0 02C02025 */ move $a0, $s6 +/* 06EAE4 7F039FB4 02402825 */ move $a1, $s2 +/* 06EAE8 7F039FB8 51800007 */ beql $t4, $zero, .L7F039FD8 +/* 06EAEC 7F039FBC 26520002 */ addiu $s2, $s2, 2 +/* 06EAF0 7F039FC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EAF4 7F039FC4 92260001 */ lbu $a2, 1($s1) +/* 06EAF8 7F039FC8 00409025 */ move $s2, $v0 +/* 06EAFC 7F039FCC 1000ED6F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB00 7F039FD0 02C28821 */ addu $s1, $s6, $v0 +/* 06EB04 7F039FD4 26520002 */ addiu $s2, $s2, 2 +.L7F039FD8: +/* 06EB08 7F039FD8 1000ED6C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB0C 7F039FDC 26310002 */ addiu $s1, $s1, 2 +actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4: +/* 06EB10 7F039FE0 02201025 */ move $v0, $s1 +/* 06EB14 7F039FE4 26310004 */ addiu $s1, $s1, 4 +/* 06EB18 7F039FE8 26520004 */ addiu $s2, $s2, 4 +/* 06EB1C 7F039FEC 80440001 */ lb $a0, 1($v0) +/* 06EB20 7F039FF0 90450002 */ lbu $a1, 2($v0) +/* 06EB24 7F039FF4 0FC3053F */ jal set_musicslot_time +/* 06EB28 7F039FF8 90460003 */ lbu $a2, 3($v0) +/* 06EB2C 7F039FFC 1000ED64 */ b ParseCommandByte_SwitchCase +/* 06EB30 7F03A000 922E0000 */ lbu $t6, ($s1) +actionF5_Turn_Off_Music_In_Slot_num_0_3_2: +/* 06EB34 7F03A004 02201025 */ move $v0, $s1 +/* 06EB38 7F03A008 26310002 */ addiu $s1, $s1, 2 +/* 06EB3C 7F03A00C 26520002 */ addiu $s2, $s2, 2 +/* 06EB40 7F03A010 0FC30556 */ jal reset_music_in_slot +/* 06EB44 7F03A014 80440001 */ lb $a0, 1($v0) +/* 06EB48 7F03A018 1000ED5D */ b ParseCommandByte_SwitchCase +/* 06EB4C 7F03A01C 922E0000 */ lbu $t6, ($s1) +actionF6_Trigger_Explosions_Around_Bond_1: +/* 06EB50 7F03A020 0FC22FF1 */ jal trigger_explosions_around_player +/* 06EB54 7F03A024 00002025 */ move $a0, $zero +/* 06EB58 7F03A028 26520001 */ addiu $s2, $s2, 1 +/* 06EB5C 7F03A02C 1000ED57 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB60 7F03A030 26310001 */ addiu $s1, $s1, 1 +actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3: +/* 06EB64 7F03A034 0FC1A9DC */ jal get_civilian_casualties +/* 06EB68 7F03A038 00000000 */ nop +/* 06EB6C 7F03A03C 922B0001 */ lbu $t3, 1($s1) +/* 06EB70 7F03A040 02C02025 */ move $a0, $s6 +/* 06EB74 7F03A044 02402825 */ move $a1, $s2 +/* 06EB78 7F03A048 0162082A */ slt $at, $t3, $v0 +/* 06EB7C 7F03A04C 50200007 */ beql $at, $zero, .L7F03A06C +/* 06EB80 7F03A050 26520003 */ addiu $s2, $s2, 3 +/* 06EB84 7F03A054 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EB88 7F03A058 92260002 */ lbu $a2, 2($s1) +/* 06EB8C 7F03A05C 00409025 */ move $s2, $v0 +/* 06EB90 7F03A060 1000ED4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB94 7F03A064 02C28821 */ addu $s1, $s6, $v0 +/* 06EB98 7F03A068 26520003 */ addiu $s2, $s2, 3 +.L7F03A06C: +/* 06EB9C 7F03A06C 1000ED47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBA0 7F03A070 26310003 */ addiu $s1, $s1, 3 +actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3: +/* 06EBA4 7F03A074 02E02025 */ move $a0, $s7 +/* 06EBA8 7F03A078 0FC0CC10 */ jal get_handle_for_guard_id +/* 06EBAC 7F03A07C 92250001 */ lbu $a1, 1($s1) +/* 06EBB0 7F03A080 50400012 */ beql $v0, $zero, .L7F03A0CC +/* 06EBB4 7F03A084 26520003 */ addiu $s2, $s2, 3 +/* 06EBB8 7F03A088 8C580014 */ lw $t8, 0x14($v0) +/* 06EBBC 7F03A08C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf +/* 06EBC0 7F03A090 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 06EBC4 7F03A094 0018CA80 */ sll $t9, $t8, 0xa +/* 06EBC8 7F03A098 0723000C */ bgezl $t9, .L7F03A0CC +/* 06EBCC 7F03A09C 26520003 */ addiu $s2, $s2, 3 +/* 06EBD0 7F03A0A0 8C4D0014 */ lw $t5, 0x14($v0) +/* 06EBD4 7F03A0A4 02C02025 */ move $a0, $s6 +/* 06EBD8 7F03A0A8 02402825 */ move $a1, $s2 +/* 06EBDC 7F03A0AC 01A17024 */ and $t6, $t5, $at +/* 06EBE0 7F03A0B0 AC4E0014 */ sw $t6, 0x14($v0) +/* 06EBE4 7F03A0B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EBE8 7F03A0B8 92260002 */ lbu $a2, 2($s1) +/* 06EBEC 7F03A0BC 00409025 */ move $s2, $v0 +/* 06EBF0 7F03A0C0 1000ED32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBF4 7F03A0C4 02C28821 */ addu $s1, $s6, $v0 +/* 06EBF8 7F03A0C8 26520003 */ addiu $s2, $s2, 3 +.L7F03A0CC: +/* 06EBFC 7F03A0CC 1000ED2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC00 7F03A0D0 26310003 */ addiu $s1, $s1, 3 +actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1: +/* 06EC04 7F03A0D4 240F0001 */ li $t7, 1 +/* 06EC08 7F03A0D8 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 06EC0C 7F03A0DC AC2FA928 */ sw $t7, %lo(mission_kia_flag)($at) +/* 06EC10 7F03A0E0 26520001 */ addiu $s2, $s2, 1 +/* 06EC14 7F03A0E4 1000ED29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC18 7F03A0E8 26310001 */ addiu $s1, $s1, 1 +actionFA_Guard_Fawns_On_Shoulder_1: +/* 06EC1C 7F03A0EC 0FC0CD93 */ jal check_if_able_to_then_fawn_on_shoulder +/* 06EC20 7F03A0F0 02E02025 */ move $a0, $s7 +/* 06EC24 7F03A0F4 26520001 */ addiu $s2, $s2, 1 +/* 06EC28 7F03A0F8 1000ED24 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC2C 7F03A0FC 26310001 */ addiu $s1, $s1, 1 +actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_: +/* 06EC30 7F03A100 3C0A8003 */ lui $t2, %hi(D_80030A88) +/* 06EC34 7F03A104 254A0A88 */ addiu $t2, %lo(D_80030A88) # addiu $t2, $t2, 0xa88 +/* 06EC38 7F03A108 8D410000 */ lw $at, ($t2) +/* 06EC3C 7F03A10C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06EC40 7F03A110 AC810000 */ sw $at, ($a0) +/* 06EC44 7F03A114 8D4B0004 */ lw $t3, 4($t2) +/* 06EC48 7F03A118 AC8B0004 */ sw $t3, 4($a0) +/* 06EC4C 7F03A11C 8D410008 */ lw $at, 8($t2) +/* 06EC50 7F03A120 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 06EC54 7F03A124 AC810008 */ sw $at, 8($a0) +/* 06EC58 7F03A128 26520001 */ addiu $s2, $s2, 1 +/* 06EC5C 7F03A12C 1000ED17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC60 7F03A130 26310001 */ addiu $s1, $s1, 1 +actionFC_Launch_Shuttle_2: +/* 06EC64 7F03A134 0FC15C30 */ jal get_handle_to_tagged_object +/* 06EC68 7F03A138 92240001 */ lbu $a0, 1($s1) +/* 06EC6C 7F03A13C 50400029 */ beql $v0, $zero, .L7F03A1E4 +/* 06EC70 7F03A140 26520002 */ addiu $s2, $s2, 2 +/* 06EC74 7F03A144 8C580010 */ lw $t8, 0x10($v0) +/* 06EC78 7F03A148 53000026 */ beql $t8, $zero, .L7F03A1E4 +/* 06EC7C 7F03A14C 26520002 */ addiu $s2, $s2, 2 +/* 06EC80 7F03A150 8C440010 */ lw $a0, 0x10($v0) +/* 06EC84 7F03A154 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 06EC88 7F03A158 AFA20088 */ sw $v0, 0x88($sp) +/* 06EC8C 7F03A15C 8FA30088 */ lw $v1, 0x88($sp) +/* 06EC90 7F03A160 8C790064 */ lw $t9, 0x64($v1) +/* 06EC94 7F03A164 332D0080 */ andi $t5, $t9, 0x80 +/* 06EC98 7F03A168 51A0001E */ beql $t5, $zero, .L7F03A1E4 +/* 06EC9C 7F03A16C 26520002 */ addiu $s2, $s2, 2 +/* 06ECA0 7F03A170 8C62006C */ lw $v0, 0x6c($v1) +/* 06ECA4 7F03A174 8C4E0000 */ lw $t6, ($v0) +/* 06ECA8 7F03A178 35CF0601 */ ori $t7, $t6, 0x601 +/* 06ECAC 7F03A17C AC4F0000 */ sw $t7, ($v0) +/* 06ECB0 7F03A180 8C640010 */ lw $a0, 0x10($v1) +/* 06ECB4 7F03A184 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 06ECB8 7F03A188 AFA30088 */ sw $v1, 0x88($sp) +/* 06ECBC 7F03A18C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECC0 7F03A190 8C64006C */ lw $a0, 0x6c($v1) +/* 06ECC4 7F03A194 0FC15FF4 */ jal matrix_4x4_set_identity +/* 06ECC8 7F03A198 24840020 */ addiu $a0, $a0, 0x20 +/* 06ECCC 7F03A19C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECD0 7F03A1A0 3C018005 */ lui $at, %hi(D_80052974) +/* 06ECD4 7F03A1A4 8C6C006C */ lw $t4, 0x6c($v1) +/* 06ECD8 7F03A1A8 E5940004 */ swc1 $f20, 4($t4) +/* 06ECDC 7F03A1AC C4282974 */ lwc1 $f8, %lo(D_80052974)($at) +/* 06ECE0 7F03A1B0 8C69006C */ lw $t1, 0x6c($v1) +/* 06ECE4 7F03A1B4 3C018005 */ lui $at, %hi(D_80052978) +/* 06ECE8 7F03A1B8 E5280008 */ swc1 $f8, 8($t1) +/* 06ECEC 7F03A1BC 8C6A006C */ lw $t2, 0x6c($v1) +/* 06ECF0 7F03A1C0 E554000C */ swc1 $f20, 0xc($t2) +/* 06ECF4 7F03A1C4 8C6B006C */ lw $t3, 0x6c($v1) +/* 06ECF8 7F03A1C8 E5740010 */ swc1 $f20, 0x10($t3) +/* 06ECFC 7F03A1CC C4242978 */ lwc1 $f4, %lo(D_80052978)($at) +/* 06ED00 7F03A1D0 8C78006C */ lw $t8, 0x6c($v1) +/* 06ED04 7F03A1D4 E7040014 */ swc1 $f4, 0x14($t8) +/* 06ED08 7F03A1D8 8C79006C */ lw $t9, 0x6c($v1) +/* 06ED0C 7F03A1DC E7340018 */ swc1 $f20, 0x18($t9) +/* 06ED10 7F03A1E0 26520002 */ addiu $s2, $s2, 2 +.L7F03A1E4: +/* 06ED14 7F03A1E4 1000ECE9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ED18 7F03A1E8 26310002 */ addiu $s1, $s1, 2 +GetCmdLength: +/* 06ED1C 7F03A1EC 0FC0D27F */ jal get_length_of_action_block +/* 06ED20 7F03A1F0 02402825 */ move $a1, $s2 # +/* 06ED24 7F03A1F4 02429021 */ addu $s2, $s2, $v0 # CurrentActionByte += get_length_of_action_block(CurrentActionByte) +/* 06ED28 7F03A1F8 1000ECE4 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 = CurrentActionByte + s6 +/* 06ED2C 7F03A1FC 02D28821 */ addu $s1, $s6, $s2 # goto 58c + +Action04_End_1: +/* 06ED30 7F03A200 8FBF0074 */ lw $ra, 0x74($sp) +Action04_End_2: +/* 06ED34 7F03A204 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 06ED38 7F03A208 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 06ED3C 7F03A20C D7B80040 */ ldc1 $f24, 0x40($sp) +/* 06ED40 7F03A210 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 06ED44 7F03A214 8FB00050 */ lw $s0, 0x50($sp) +/* 06ED48 7F03A218 8FB10054 */ lw $s1, 0x54($sp) +/* 06ED4C 7F03A21C 8FB20058 */ lw $s2, 0x58($sp) #load s2 with value before entering actionblock +/* 06ED50 7F03A220 8FB3005C */ lw $s3, 0x5c($sp) +/* 06ED54 7F03A224 8FB40060 */ lw $s4, 0x60($sp) +/* 06ED58 7F03A228 8FB50064 */ lw $s5, 0x64($sp) +/* 06ED5C 7F03A22C 8FB60068 */ lw $s6, 0x68($sp) +/* 06ED60 7F03A230 8FB7006C */ lw $s7, 0x6c($sp) +/* 06ED64 7F03A234 8FBE0070 */ lw $fp, 0x70($sp) +/* 06ED68 7F03A238 03E00008 */ jr $ra +/* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035104 +.word locret_CODE_7F03510C +.word locret_CODE_7F035114 +.word locret_CODE_7F03511C +.word locret_CODE_7F035124 +.word locret_CODE_7F03512C +.word locret_CODE_7F035134 +.word locret_CODE_7F03513C +.word locret_CODE_7F035144 +.word locret_CODE_7F03514C +.word locret_CODE_7F035154 +.word locret_CODE_7F03515C +.word locret_CODE_7F034ADC +.word locret_CODE_7F034AD4 +.word locret_CODE_7F035164 +.word locret_CODE_7F03516C +.word locret_CODE_7F035174 +.word locret_CODE_7F03517C +.word locret_CODE_7F035184 +.word locret_CODE_7F03518C +.word locret_CODE_7F035194 +.word locret_CODE_7F03519C +.word locret_CODE_7F0351A4 +.word locret_CODE_7F0351AC +.word locret_CODE_7F0351B4 +.word locret_CODE_7F0351BC +.word locret_CODE_7F0351C4 +.word locret_CODE_7F0351CC +.word locret_CODE_7F0351D4 +.word locret_CODE_7F0351DC +.word locret_CODE_7F0351E4 +.word locret_CODE_7F0351EC +.word locret_CODE_7F0351F4 +.word actionFC_length +.late_rodata +glabel D_800524F4 +.word 0x40c90fdb /*6.2831855*/ +/*D:800524F8*/ +glabel jpt_800524F8 +.word Action00_GoToLabel +.word Action01_GoToLabelFromTop +.word Action02_Label +.word action03_Leave_The_Routine_When_Return_Continue_From_Spot_1 +.word Action04_End_1 +.word action05_Jump_To_Function_4 +.word action06_Set_Return_Subroutine_for_0007_Command_3 +.word action07_Jump_to_Return_Subroutine_1 +.word action08_Reset_Animation_1 +.word action09_Guard_Kneels_1 +.word action0A_Animation_9 +.word action0B_If_Guard_WastingTime_SwatFlies_RVL_2 +.word action0C_Guard_Gestures_1 +.word action0D_Guard_Looks_Around_When_Shot_At_1 +.word action0E_Guard_Steps_Sideways_RVL_2 +.word action0F_Guard_Hops_Sideways_RVL_2 +.word action10_Guard_Runs_Sideways_RVL_2 +.word action11_Guard_Walks_Firing_RVL_2 +.word action12_Guard_Runs_Firing_RVL_2 +.word action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2 +.word action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6 +.word action17_Guard_Constantly_Angles_To_Face_RVL_6 +.word action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4 +.word action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4 +.word action1A_Guard_Throws_Grenade_RVL_2 +.word action1B_Drop_Weapon_Inventory_num_RVL_5 +.word action1C_Guard_Jogs_To_Preset_3 +.word action1D_Guard_Jogs_To_Predefined_Preset_2328_1 +.word action1E_Guard_Walks_To_Preset_3 +.word action1F_Guard_Runs__To_Preset_3 +.word action20_Activate_Path_2 +.word action21_Guard_Surrenders_1 +.word action22_Guard_Set_To_Move_Fades_And_Disappear_1 +.word action23_Eliminate_Guard_ID_2 +.word action24_Activate_Object_At_Preset_RVL_If_Successful_4 +.word action25_Sound_Alarm_1 +.word action26_Turn_Off_Alarm_1 +.word action27_Return_False_Invalid_Type_2 +.word action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2B_Return_False_Invalid_Type_2 +.word action2C_Jog_To_Character_Position_RVL_On_Arrival_3 +.word action2D_Walk_To_Character_Position_RVL_On_Arrival_3 +.word action2E_Run_To_Character_Position_RVL_On_Arrival_3 +.word action2F_When_Guard_Stops_Moving_RVL_2 +.word action30_Detect_If_Guard_Killed_RVL_If_So_3 +.word action31_If_GuardID_Finish_DeathAnimation_RVL_3 +.word action32_If_Bond_In_Sight_RVL_2 +.word action33_Seed_Random_Byte_1 +.word action34_If_Seeded_Byte_LTV_Go_Into_RVL_3 +.word action35_If_Seeded_Byte_GTV_Go_Into_RVL_3 +.word action36_If_Alarm_Activated_RVL_Plus_Stack_2 +.word action37_If_Alarm_Activated_RVL_2 +.word action38_If_Toxic_Gas_Released_RVL_2 +.word action39_If_Guard_Heard_Gunfire_RVL_2 +.word action3A_If_Bond_Shoots_Another_Guard_RVL_2 +.word action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2 +.word action3C_If_Guard_In_Firing_Range_RVL_2 +.word action3D___Unused___Unknown___2 +.word action3E_If_Shot_Current_Guard_RVL_2 +.word action3F_If_Heard_Bond_RVL_2 +.word action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3 +.word action41_If_Guard_Has_Been_On_Screen_RVL_2 +.word action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2 +.word action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2 +.word action44_If_Room_Containing_Preset_Is_Loaded_RVL_4 +.word action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2 +.word action46_If_Fired_A_Shot_RVL_2 +.word action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3 +.word action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3 +.word action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3 +.word action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3 +.word action4B_RVL_If_In_Proximity_Of_Bond_4 +.word action4C_RVL_If_Not_In_Proximity_Of_Bond_4 +.word action4D_When_Guard_In_Proximity_Of_Preset_RVL_7 +.word action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7 +.word action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5 +.word action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5 +.word action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4 +.word action52_GoIntoRVLIf_In_Units_Of_Preset_6 +.word action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6 +.word action54_GoIntoRVLIf_Guard_Is_At_Preset_5 +.word action55_GoIntoRVLIf_Entered_Room_with_Preset_4 +.word action56_GoIntoRVLIf_16_Object_num_Collected_3 +.word action57_GoIntoRVLIf_Specified_Weapon_Deposited_3 +.word action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4 +.word action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3 +.word action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3 +.word action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3 +.word action5C_GoIntoRVLIf_16_Object_num_Activated_3 +.word action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3 +.word action5E_16_Object_Activates_2 +.word action5F_16_Object_Explodes_2 +.word action60_Guard_Drops_16_Object_num_2 +.word action61_Kill_Guard_num_2 +.word action62_Guard_num_Throws_Equipment_2 +.word action63_Guard_Gives_Bond_16_Object_num_2 +.word action64_Type_16_Object_Equipped_On_Guard_3 +.word action65_Object_Moved_To_Preset_4 +.word action66_Open_Door_2 +.word action67_Close_Door_2 +.word action68_Check_Door_Status_RVL_If_Met_4 +.word action69_If_16_Object_Is_Valid_Door_RVL_3 +.word action6A_Set_Bits_To_Lock_On_Type_16_Door_3 +.word action6B_Unset_Bits_To_Lock_On_Type_16_Door_3 +.word action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4 +.word action6D_If_Objective_num_Complete_RVL_3 +.word action6E_If_Guard_2328_Preset_RVL_3 +.word action6F_If_Guard_2328_Preset_Set_RVL_3 +.word action70_Go_Into_RVL_Difficulty_LTV_3 +.word action71_GoIntoRVLIf_Difficulty_GTV_3 +.word action72_Go_To_RVL_If_Time_LTV_4 +.word action73_Go_To_RVL_If_Time_GTV_4 +.word action74_Go_To_RVL_If_Power_On_Time_LTV_4 +.word action75_Go_To_RVL_If_Power_On_Time_GTV_4 +.word action76_Go_To_RVL_If_Stage_Number_LTV_3 +.word action77_Go_To_RVL_If_Stage_Number_GTV_3 +.word action78_Go_To_RVL_If_Guard_Shot_LTV_3 +.word action79_Go_To_RVL_If_Guard_Shot_GTV_3 +.word action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3 +.word action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3 +.word action7C_If_Guard_Health_Below_Value_RVL_4 +.word action7D_If_Guard_Health_Above_Value_RVL_4 +.word action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3 +.word action7F_If_Health_Below_Value_RVL_3 +.word action80_If_Health_Above_Value_RVL_3 +.word action81_Set_User_Byte_num1_2 +.word action82_Add_Value_To_User_Byte_num1_Max_To_FF_2 +.word action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2 +.word action84_If_Value_GreaterThan_User_Byte_num1_RVL_3 +.word action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2 +.word action86_Set_User_Byte_num2_2 +.word action87_Add_Value_To_User_Byte_num2_Max_To_FF_2 +.word action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2 +.word action89_If_Value_GreaterThan_User_Byte_num2_RVL_3 +.word action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2 +.word action8B_Set_Guard_Hearing_Distance_3 +.word action8C_Set_Guard_Visible_Distance_2 +.word action8D_Set_Guard_Grenade_Probability_2 +.word action8E_Set_Guard_ID_2 +.word action8F_Set_Guard_Health_3 +.word action90_Set_Guard_Armor_Amount_3 +.word action91_Set_Character_Reaction_Speed_2 +.word action92_Set_Character_Injury_Recovery_Speed_2 +.word action93_Set_Character_Accuracy_2 +.word action94_Mask_Guard_Type_With_Value_2 +.word action95_Unmask_Guard_Type_With_Value_2 +.word action96_If_Guard_Type_Value_Is_Set_RVL_3 +.word action97_Mask_Guard_Type_Flags_With_Value_3 +.word action98_Unmask_Guard_Type_Flags_With_Value_3 +.word action99_If_Guard_Type_Flags_Set_RVL_4 +.word action9A_Set_Objective_Bits_5 +.word action9B_Unset_Objective_Value_5 +.word action9C_Check_If_Objective_Value_Return_Loop_If_So_6 +.word action9D_Set_Guard_Bit_Tags_5 +.word action9E_Unset_Guard_Bit_Tags_5 +.word action9F_Check_Guard_Bits_If_Same_RVL_6 +.word actionA0_Set_Guard_ID_Bits_6 +.word actionA1_Unset_Guard_ID_Bits_6 +.word actionA2_Check_Guard_Bits_If_Same_RVL_7 +.word actionA3_Set_State_Bits_16_Type_Object_6 +.word actionA4_Unset_State_Bits_16_Type_Object_6 +.word actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7 +.word actionA6_Set_16_Object_States_More_6 +.word actionA7_Unset_16_Object_States_More_6 +.word actionA8_Check_16_Object_States_More_If_Same_RVL_7 +.word actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2 +.word actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3 +.word actionAB_Set_Current_Guards_2328_Value_To_Preset_3 +.word actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4 +.word actionAD_Debug_Comment_20 +.word actionAE_Reset_Cycle_Counter_And_Enable_It_1 +.word actionAF_Reset_Cycle_Counter_1 +.word actionB0_Disable_Cycle_Counter_1 +.word actionB1_Enable_Cycle_Counter_1 +.word actionB2_Check_Cycle_Counter_Enable_Status_2 +.word actionB3_If_Cycle_Counter_LTV_RVL_5 +.word actionB4_If_Cycle_Counter_GTV_RVL_5 +.word actionB5_Show_Timer_1 +.word actionB6_Hide_Timer_Silent_Countdown_1 +.word actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3 +.word actionB8_Stop_Timer_1 +.word actionB9_Start_Timer_1 +.word actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2 +.word actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4 +.word actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4 +.word actionBD_Spawn_Guard_C +.word actionBE_Respawn_Guard_with_ID_B +.word actionBF_Spawn_Weapon_9 +.word actionC0_Spawn_Hat_8 +.word actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5 +.word actionC2_Display_Text_Preset_Bottom_Screen_3 +.word actionC3_Display_Text_Preset_Top_Screen_3 +.word actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4 +.word actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5 +.word actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6 +.word actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6 +.word actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6 +.word actionC9_Shut_Off_Sound_In_Slot_Number_2 +.word actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5 +.word actionCB_Set_Object_Path_27_Type_Object_2 +.word actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5 +.word actionCD_Set_Speed_Aircraft_Rotor_5 +.word actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2 +.word actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2 +.word actionD0_Change_Animation_Type_Of_Type_16_Monitor_4 +.word actionD1_If_Bond_In_Tank_RVL_2 +.word actionD2_Exit_Level_1 +.word actionD3_Return_From_Camera_Scene_1 +.word actionD4_Camera_Looks_At_Bond_From_Preset_3 +.word actionD5_Go_To_Camera_Position_6 +.word actionD6_If_Less_Than_Elevation_RVL_4 +.word actionD7_Disable_Text_Variable_2 +.word actionD8_Enable_All_On_Screen_Displays_1 +.word actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5 +.word actionDA_Fade_Out_From_Cut_Scene_1 +.word actionDB_Fade_In_From_Black_Reset_DA_1 +.word actionDC_RVL_When_Fade_Complete_2 +.word actionDD_Remove_All_Guards_1 +.word actionDE_Bring_Removed_Guards_Back_1 +.word actionDF_Open_Type_16_Door_Used_Cut_Scenes_2 +.word actionE0_Guard_ID_Draws_Weapon_num_3 +.word actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3 +.word actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4 +.word actionE3_Draw_Weapon_From_Inventory_In_Game_2 +.word actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2 +.word actionE5_Set_Bonds_Speed_3 +.word actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5 +.word actionE7_If_Guard_Moving_And_Shooting_RVL_2 +.word actionE8_If_Guard_Is_Shooting_RVL_2 +.word actionE9_Instantly_Switch_Sky_To_Sky_2_1 +.word actionEA_Stop_Game_Time_1 +.word actionEB_If_Key_Pressed_RVL_2 +.word actionEC_Disable_Player_Pickups_1 +.word actionED_Hide_First_Person_Display_1 +.word actionEE_Cuba_Circular_Camera_Aim_D +.word actionEF_Trigger_Credits_1 +.word actionF0_RVL_If_Credits_Completed_2 +.word actionF1_If_All_Objectives_Complete_RVL_2 +.word actionF2_Check_Current_Folder_Bond_RVL_3 +.word actionF3_If_Player_Pickups_Disabled_RVL_2 +.word actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4 +.word actionF5_Turn_Off_Music_In_Slot_num_0_3_2 +.word actionF6_Trigger_Explosions_Around_Bond_1 +.word actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3 +.word actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3 +.word actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1 +.word actionFA_Guard_Fawns_On_Shoulder_1 +.word actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_ +.word actionFC_Launch_Shuttle_2 + +glabel D_800528EC +.word 0x3dcccccd /*0.1*/ +glabel D_800528F0 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F4 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F8 +.word 0x3dcccccd /*0.1*/ + +glabel jpt_800528FC +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C + +glabel D_80052974 +.word 0x3c888888 /*0.016666666*/ +glabel D_80052978 +.word 0x3e955555 /*0.29166666*/ +.word 0 + +.text +glabel parse_handle_actionblocks +/* 069FB4 7F035484 27BDF848 */ addiu $sp, $sp, -0x7b8 +/* 069FB8 7F035488 AFB7006C */ sw $s7, 0x6c($sp) +/* 069FBC 7F03548C AFB60068 */ sw $s6, 0x68($sp) #free s2 for CurrentActionByte ? +/* 069FC0 7F035490 24010003 */ li $at, 3 #ai_sleep +/* 069FC4 7F035494 AFBF0074 */ sw $ra, 0x74($sp) +/* 069FC8 7F035498 AFBE0070 */ sw $fp, 0x70($sp) +/* 069FCC 7F03549C AFB50064 */ sw $s5, 0x64($sp) +/* 069FD0 7F0354A0 AFB40060 */ sw $s4, 0x60($sp) +/* 069FD4 7F0354A4 AFB3005C */ sw $s3, 0x5c($sp) +/* 069FD8 7F0354A8 AFB20058 */ sw $s2, 0x58($sp) #free s2 for CurrentActionByteSize ? +/* 069FDC 7F0354AC AFB10054 */ sw $s1, 0x54($sp) +/* 069FE0 7F0354B0 AFB00050 */ sw $s0, 0x50($sp) +/* 069FE4 7F0354B4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 069FE8 7F0354B8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 069FEC 7F0354BC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 069FF0 7F0354C0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 069FF4 7F0354C4 0000B825 */ move $s7, $zero +/* 069FF8 7F0354C8 00003025 */ move $a2, $zero +/* 069FFC 7F0354CC 00001825 */ move $v1, $zero +/* 06A000 7F0354D0 14A10003 */ bne $a1, $at, .L7F0354E0 +/* 06A004 7F0354D4 0000B025 */ move $s6, $zero +/* 06A008 7F0354D8 1000000E */ b .L7F035514 +/* 06A00C 7F0354DC 0080B825 */ move $s7, $a0 +.L7F0354E0: +/* 06A010 7F0354E0 24010001 */ li $at, 1 +/* 06A014 7F0354E4 14A1000B */ bne $a1, $at, .L7F035514 +/* 06A018 7F0354E8 00000000 */ nop +/* 06A01C 7F0354EC 90820003 */ lbu $v0, 3($a0) +/* 06A020 7F0354F0 24010027 */ li $at, 39 +/* 06A024 7F0354F4 54410004 */ bnel $v0, $at, .L7F035508 +/* 06A028 7F0354F8 24010028 */ li $at, 40 +/* 06A02C 7F0354FC 10000005 */ b .L7F035514 +/* 06A030 7F035500 00803025 */ move $a2, $a0 +/* 06A034 7F035504 24010028 */ li $at, 40 +.L7F035508: +/* 06A038 7F035508 14410002 */ bne $v0, $at, .L7F035514 +/* 06A03C 7F03550C 00000000 */ nop +/* 06A040 7F035510 00801825 */ move $v1, $a0 +.L7F035514: +/* 06A044 7F035514 12E00005 */ beqz $s7, .L7F03552C +/* 06A048 7F035518 3C018005 */ lui $at, %hi(D_800524F4) +/* 06A04C 7F03551C 96F20108 */ lhu $s2, 0x108($s7) # Load Size of command +/* 06A050 7F035520 8EF60104 */ lw $s6, 0x104($s7) # load command +/* 06A054 7F035524 1000000C */ b .L7F035558 +/* 06A058 7F035528 AFB207A4 */ sw $s2, 0x7a4($sp) # save command size +.L7F03552C: +/* 06A05C 7F03552C 10C00005 */ beqz $a2, .L7F035544 +/* 06A060 7F035530 00000000 */ nop +/* 06A064 7F035534 94D20084 */ lhu $s2, 0x84($a2) +/* 06A068 7F035538 8CD60080 */ lw $s6, 0x80($a2) +/* 06A06C 7F03553C 10000006 */ b .L7F035558 +/* 06A070 7F035540 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035544: +/* 06A074 7F035544 10600004 */ beqz $v1, .L7F035558 +/* 06A078 7F035548 00000000 */ nop +/* 06A07C 7F03554C 94720084 */ lhu $s2, 0x84($v1) +/* 06A080 7F035550 8C760080 */ lw $s6, 0x80($v1) +/* 06A084 7F035554 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035558: +/* 06A088 7F035558 12C01329 */ beqz $s6, Action04_End_1 +/* 06A08C 7F03555C 8FB207A4 */ lw $s2, 0x7a4($sp) +/* 06A090 7F035560 C43A24F4 */ lwc1 $f26, %lo(D_800524F4)($at) +/* 06A094 7F035564 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 06A098 7F035568 4481C000 */ mtc1 $at, $f24 +/* 06A09C 7F03556C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 06A0A0 7F035570 3C1E8003 */ lui $fp, %hi(ptr_guard_data) +/* 06A0A4 7F035574 4481B000 */ mtc1 $at, $f22 +/* 06A0A8 7F035578 4480A000 */ mtc1 $zero, $f20 +/* 06A0AC 7F03557C 27DECC64 */ addiu $fp, %lo(ptr_guard_data) # addiu $fp, $fp, -0x339c +/* 06A0B0 7F035580 02D28821 */ addu $s1, $s6, $s2 +/* 06A0B4 7F035584 AFA307AC */ sw $v1, 0x7ac($sp) +/* 06A0B8 7F035588 AFA607B0 */ sw $a2, 0x7b0($sp) +GetByteS1_ParseCommandByte_SwitchCase: /*GetCommandByte(cmd)*/ +/* 06A0BC 7F03558C 922E0000 */ lbu $t6, ($s1) #t6 = byte(s1) +ParseCommandByte_SwitchCase: +/* 06A0C0 7F035590 02C02025 */ move $a0, $s6 +/* 06A0C4 7F035594 2DC100FD */ sltiu $at, $t6, 0xfd # if Cmd !< AI_CMDS_TOTAL then +/* 06A0C8 7F035598 10201314 */ beqz $at, GetCmdLength # Cmd<<2 goto GetCmdLength +/* 06A0CC 7F03559C 000E7080 */ sll $t6, $t6, 2 +/* 06A0D0 7F0355A0 3C018005 */ lui $at, %hi(jpt_800524F8) +/* 06A0D4 7F0355A4 002E0821 */ addu $at, $at, $t6 # else //get cmd +/* 06A0D8 7F0355A8 8C2E24F8 */ lw $t6, %lo(jpt_800524F8)($at) # switch t6(look up table for switch 0x800524f8) +/* 06A0DC 7F0355AC 01C00008 */ jr $t6 # return cmd +/* 06A0E0 7F0355B0 00000000 */ nop +Action00_GoToLabel: #case 0 +/* 06A0E4 7F0355B4 02C02025 */ move $a0, $s6 +/* 06A0E8 7F0355B8 02402825 */ move $a1, $s2 +/* 06A0EC 7F0355BC 0FC0D4BC */ jal true_if_sucessfully_performing_action #(command, commandsize, nextcommand[4]) +/* 06A0F0 7F0355C0 92260001 */ lbu $a2, 1($s1) +/* 06A0F4 7F0355C4 00409025 */ move $s2, $v0 +/* 06A0F8 7F0355C8 1000FFF0 */ b GetByteS1_ParseCommandByte_SwitchCase # GetCommandByte(currcmd + currcmdLength); +/* 06A0FC 7F0355CC 02C28821 */ addu $s1, $s6, $v0 +Action01_GoToLabelFromTop: #case 1 +/* 06A100 7F0355D0 02C02025 */ move $a0, $s6 +/* 06A104 7F0355D4 00002825 */ move $a1, $zero +/* 06A108 7F0355D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A10C 7F0355DC 92260001 */ lbu $a2, 1($s1) +/* 06A110 7F0355E0 00409025 */ move $s2, $v0 +/* 06A114 7F0355E4 1000FFE9 */ b GetByteS1_ParseCommandByte_SwitchCase #break +/* 06A118 7F0355E8 02C28821 */ addu $s1, $s6, $v0 +Action02_Label: #case 2 +/* 06A11C 7F0355EC 26520002 */ addiu $s2, $s2, 2 # s2++ PC ? # CurrentActionByte += 2 +/* 06A120 7F0355F0 1000FFE6 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 +=2; goto 58c +/* 06A124 7F0355F4 26310002 */ addiu $s1, $s1, 2 +action03_Leave_The_Routine_When_Return_Continue_From_Spot_1: +/* 06A128 7F0355F8 12E00004 */ beqz $s7, .L7F03560C # s2++ PC? +/* 06A12C 7F0355FC 26520001 */ addiu $s2, $s2, 1 # if s7 = 0 goto 0c If actionblock not initilised else ? +/* 06A130 7F035600 AEF60104 */ sw $s6, 0x104($s7) # s7.104 = s6 +/* 06A134 7F035604 100012FE */ b Action04_End_1 # s7.108 = u16(s2) +/* 06A138 7F035608 A6F20108 */ sh $s2, 0x108($s7) # goto end1 (load return addr) +.L7F03560C: +/* 06A13C 7F03560C 8FAF07B0 */ lw $t7, 0x7b0($sp) +/* 06A140 7F035610 8FB807AC */ lw $t8, 0x7ac($sp) +/* 06A144 7F035614 11E00004 */ beqz $t7, .L7F035628 # if t7 = 0 goto 28 +/* 06A148 7F035618 00000000 */ nop +/* 06A14C 7F03561C ADF60080 */ sw $s6, 0x80($t7) #else t7.80 = s6 +/* 06A150 7F035620 100012F7 */ b Action04_End_1 # t7.84 = u16(s2) +/* 06A154 7F035624 A5F20084 */ sh $s2, 0x84($t7) # end1 (load return addr) +.L7F035628: +/* 06A158 7F035628 530012F6 */ beql $t8, $zero, Action04_End_2 # load return addr (same as end1 (sp.74)) +/* 06A15C 7F03562C 8FBF0074 */ lw $ra, 0x74($sp) # if t8 = 0 goto end2 (skip return addr) +/* 06A160 7F035630 AF160080 */ sw $s6, 0x80($t8) # else t8.80 = s6 +/* 06A164 7F035634 100012F2 */ b Action04_End_1 # t8.84 = u16(s2) +/* 06A168 7F035638 A7120084 */ sh $s2, 0x84($t8) # end1(load return addr) +action05_Jump_To_Function_4: +/* 06A16C 7F03563C 92390002 */ lbu $t9, 2($s1) +/* 06A170 7F035640 922A0003 */ lbu $t2, 3($s1) +/* 06A174 7F035644 92250001 */ lbu $a1, 1($s1) +/* 06A178 7F035648 00194A00 */ sll $t1, $t9, 8 +/* 06A17C 7F03564C 012A1825 */ or $v1, $t1, $t2 +/* 06A180 7F035650 306BFFFF */ andi $t3, $v1, 0xffff +/* 06A184 7F035654 240100FD */ li $at, 253 +/* 06A188 7F035658 14A10007 */ bne $a1, $at, .L7F035678 +/* 06A18C 7F03565C 01601825 */ move $v1, $t3 +/* 06A190 7F035660 01602025 */ move $a0, $t3 +/* 06A194 7F035664 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A198 7F035668 00009025 */ move $s2, $zero +/* 06A19C 7F03566C 0040B025 */ move $s6, $v0 +/* 06A1A0 7F035670 1000FFC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1A4 7F035674 00408825 */ move $s1, $v0 +.L7F035678: +/* 06A1A8 7F035678 02E02025 */ move $a0, $s7 +/* 06A1AC 7F03567C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A1B0 7F035680 A7A30792 */ sh $v1, 0x792($sp) +/* 06A1B4 7F035684 97A30792 */ lhu $v1, 0x792($sp) +/* 06A1B8 7F035688 10400006 */ beqz $v0, .L7F0356A4 +/* 06A1BC 7F03568C 00408025 */ move $s0, $v0 +/* 06A1C0 7F035690 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A1C4 7F035694 00602025 */ move $a0, $v1 +/* 06A1C8 7F035698 AE020104 */ sw $v0, 0x104($s0) +/* 06A1CC 7F03569C A6000108 */ sh $zero, 0x108($s0) +/* 06A1D0 7F0356A0 A2000008 */ sb $zero, 8($s0) +.L7F0356A4: +/* 06A1D4 7F0356A4 26520004 */ addiu $s2, $s2, 4 +/* 06A1D8 7F0356A8 1000FFB8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1DC 7F0356AC 26310004 */ addiu $s1, $s1, 4 +action06_Set_Return_Subroutine_for_0007_Command_3: +/* 06A1E0 7F0356B0 922C0001 */ lbu $t4, 1($s1) +/* 06A1E4 7F0356B4 922E0002 */ lbu $t6, 2($s1) +/* 06A1E8 7F0356B8 8FB807B0 */ lw $t8, 0x7b0($sp) +/* 06A1EC 7F0356BC 000C6A00 */ sll $t5, $t4, 8 +/* 06A1F0 7F0356C0 01AE1025 */ or $v0, $t5, $t6 +/* 06A1F4 7F0356C4 304FFFFF */ andi $t7, $v0, 0xffff +/* 06A1F8 7F0356C8 12E00005 */ beqz $s7, .L7F0356E0 +/* 06A1FC 7F0356CC 01E01025 */ move $v0, $t7 +/* 06A200 7F0356D0 A6EF010A */ sh $t7, 0x10a($s7) +/* 06A204 7F0356D4 26520003 */ addiu $s2, $s2, 3 +/* 06A208 7F0356D8 1000FFAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A20C 7F0356DC 26310003 */ addiu $s1, $s1, 3 +.L7F0356E0: +/* 06A210 7F0356E0 13000005 */ beqz $t8, .L7F0356F8 +/* 06A214 7F0356E4 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06A218 7F0356E8 A7020086 */ sh $v0, 0x86($t8) +/* 06A21C 7F0356EC 26520003 */ addiu $s2, $s2, 3 +/* 06A220 7F0356F0 1000FFA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A224 7F0356F4 26310003 */ addiu $s1, $s1, 3 +.L7F0356F8: +/* 06A228 7F0356F8 13200002 */ beqz $t9, .L7F035704 +/* 06A22C 7F0356FC 26520003 */ addiu $s2, $s2, 3 +/* 06A230 7F035700 A7220086 */ sh $v0, 0x86($t9) +.L7F035704: +/* 06A234 7F035704 1000FFA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A238 7F035708 26310003 */ addiu $s1, $s1, 3 +action07_Jump_to_Return_Subroutine_1: +/* 06A23C 7F03570C 12E00006 */ beqz $s7, .L7F035728 +/* 06A240 7F035710 00009025 */ move $s2, $zero +/* 06A244 7F035714 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A248 7F035718 86E4010A */ lh $a0, 0x10a($s7) +/* 06A24C 7F03571C 0040B025 */ move $s6, $v0 +/* 06A250 7F035720 1000FF9A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A254 7F035724 00408825 */ move $s1, $v0 +.L7F035728: +/* 06A258 7F035728 8FA907B0 */ lw $t1, 0x7b0($sp) +/* 06A25C 7F03572C 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A260 7F035730 11200006 */ beqz $t1, .L7F03574C +/* 06A264 7F035734 00000000 */ nop +/* 06A268 7F035738 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A26C 7F03573C 85240086 */ lh $a0, 0x86($t1) +/* 06A270 7F035740 0040B025 */ move $s6, $v0 +/* 06A274 7F035744 1000FF91 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A278 7F035748 00408825 */ move $s1, $v0 +.L7F03574C: +/* 06A27C 7F03574C 11400004 */ beqz $t2, .L7F035760 +/* 06A280 7F035750 00000000 */ nop +/* 06A284 7F035754 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A288 7F035758 85440086 */ lh $a0, 0x86($t2) +/* 06A28C 7F03575C 0040B025 */ move $s6, $v0 +.L7F035760: +/* 06A290 7F035760 1000FF8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A294 7F035764 02C08825 */ move $s1, $s6 +action08_Reset_Animation_1: +/* 06A298 7F035768 0FC0CD75 */ jal sub_GAME_7F0335D4 +/* 06A29C 7F03576C 02E02025 */ move $a0, $s7 +/* 06A2A0 7F035770 26520001 */ addiu $s2, $s2, 1 +/* 06A2A4 7F035774 1000FF85 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2A8 7F035778 26310001 */ addiu $s1, $s1, 1 +action09_Guard_Kneels_1: +/* 06A2AC 7F03577C 0FC0CDB1 */ jal check_if_able_to_then_kneel +/* 06A2B0 7F035780 02E02025 */ move $a0, $s7 +/* 06A2B4 7F035784 26520001 */ addiu $s2, $s2, 1 +/* 06A2B8 7F035788 1000FF80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2BC 7F03578C 26310001 */ addiu $s1, $s1, 1 +action0A_Animation_9: +/* 06A2C0 7F035790 922B0001 */ lbu $t3, 1($s1) +/* 06A2C4 7F035794 922D0002 */ lbu $t5, 2($s1) +/* 06A2C8 7F035798 3401FFFF */ li $at, 65535 +/* 06A2CC 7F03579C 000B6200 */ sll $t4, $t3, 8 +/* 06A2D0 7F0357A0 018D7025 */ or $t6, $t4, $t5 +/* 06A2D4 7F0357A4 AFAE077C */ sw $t6, 0x77c($sp) +/* 06A2D8 7F0357A8 922F0003 */ lbu $t7, 3($s1) +/* 06A2DC 7F0357AC 92290005 */ lbu $t1, 5($s1) +/* 06A2E0 7F0357B0 92390004 */ lbu $t9, 4($s1) +/* 06A2E4 7F0357B4 922B0006 */ lbu $t3, 6($s1) +/* 06A2E8 7F0357B8 000FC200 */ sll $t8, $t7, 8 +/* 06A2EC 7F0357BC 00095200 */ sll $t2, $t1, 8 +/* 06A2F0 7F0357C0 03198025 */ or $s0, $t8, $t9 +/* 06A2F4 7F0357C4 014B6025 */ or $t4, $t2, $t3 +/* 06A2F8 7F0357C8 16010002 */ bne $s0, $at, .L7F0357D4 +/* 06A2FC 7F0357CC AFAC0774 */ sw $t4, 0x774($sp) +/* 06A300 7F0357D0 00008025 */ move $s0, $zero +.L7F0357D4: +/* 06A304 7F0357D4 8FB30774 */ lw $s3, 0x774($sp) +/* 06A308 7F0357D8 3401FFFF */ li $at, 65535 +/* 06A30C 7F0357DC 02E02025 */ move $a0, $s7 +/* 06A310 7F0357E0 16610002 */ bne $s3, $at, .L7F0357EC +/* 06A314 7F0357E4 8FAF07AC */ lw $t7, 0x7ac($sp) +/* 06A318 7F0357E8 2413FFFF */ li $s3, -1 +.L7F0357EC: +/* 06A31C 7F0357EC 12E0000C */ beqz $s7, .L7F035820 +/* 06A320 7F0357F0 00000000 */ nop +/* 06A324 7F0357F4 922D0007 */ lbu $t5, 7($s1) +/* 06A328 7F0357F8 8FA5077C */ lw $a1, 0x77c($sp) +/* 06A32C 7F0357FC 02003025 */ move $a2, $s0 +/* 06A330 7F035800 AFAD0010 */ sw $t5, 0x10($sp) +/* 06A334 7F035804 922E0008 */ lbu $t6, 8($s1) +/* 06A338 7F035808 02603825 */ move $a3, $s3 +/* 06A33C 7F03580C 0FC0CDC0 */ jal check_if_able_to_then_perform_animation +/* 06A340 7F035810 AFAE0014 */ sw $t6, 0x14($sp) +/* 06A344 7F035814 26520009 */ addiu $s2, $s2, 9 +/* 06A348 7F035818 1000FF5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A34C 7F03581C 26310009 */ addiu $s1, $s1, 9 +.L7F035820: +/* 06A350 7F035820 11E0001B */ beqz $t7, .L7F035890 +/* 06A354 7F035824 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 06A358 7F035828 44813000 */ mtc1 $at, $f6 +/* 06A35C 7F03582C 8DE40014 */ lw $a0, 0x14($t7) +/* 06A360 7F035830 44902000 */ mtc1 $s0, $f4 +/* 06A364 7F035834 E7A60010 */ swc1 $f6, 0x10($sp) +/* 06A368 7F035838 92290008 */ lbu $t1, 8($s1) +/* 06A36C 7F03583C 46802120 */ cvt.s.w $f4, $f4 +/* 06A370 7F035840 8FB8077C */ lw $t8, 0x77c($sp) +/* 06A374 7F035844 44894000 */ mtc1 $t1, $f8 +/* 06A378 7F035848 3C058003 */ lui $a1, %hi(animation_table_ptrs2) +/* 06A37C 7F03584C 0018C880 */ sll $t9, $t8, 2 +/* 06A380 7F035850 468042A0 */ cvt.s.w $f10, $f8 +/* 06A384 7F035854 00B92821 */ addu $a1, $a1, $t9 +/* 06A388 7F035858 44072000 */ mfc1 $a3, $f4 +/* 06A38C 7F03585C 8CA5A04C */ lw $a1, %lo(animation_table_ptrs2)($a1) +/* 06A390 7F035860 00003025 */ move $a2, $zero +/* 06A394 7F035864 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06A398 7F035868 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 06A39C 7F03586C 06620009 */ bltzl $s3, .L7F035894 +/* 06A3A0 7F035870 26520009 */ addiu $s2, $s2, 9 +/* 06A3A4 7F035874 44938000 */ mtc1 $s3, $f16 +/* 06A3A8 7F035878 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A3AC 7F03587C 46808420 */ cvt.s.w $f16, $f16 +/* 06A3B0 7F035880 8D440014 */ lw $a0, 0x14($t2) +/* 06A3B4 7F035884 44058000 */ mfc1 $a1, $f16 +/* 06A3B8 7F035888 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 06A3BC 7F03588C 00000000 */ nop +.L7F035890: +/* 06A3C0 7F035890 26520009 */ addiu $s2, $s2, 9 +.L7F035894: +/* 06A3C4 7F035894 1000FF3D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3C8 7F035898 26310009 */ addiu $s1, $s1, 9 +action0B_If_Guard_WastingTime_SwatFlies_RVL_2: +/* 06A3CC 7F03589C 82EB0007 */ lb $t3, 7($s7) +/* 06A3D0 7F0358A0 24010003 */ li $at, 3 +/* 06A3D4 7F0358A4 02C02025 */ move $a0, $s6 +/* 06A3D8 7F0358A8 15610006 */ bne $t3, $at, .L7F0358C4 +/* 06A3DC 7F0358AC 02402825 */ move $a1, $s2 +/* 06A3E0 7F0358B0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A3E4 7F0358B4 92260001 */ lbu $a2, 1($s1) +/* 06A3E8 7F0358B8 00409025 */ move $s2, $v0 +/* 06A3EC 7F0358BC 1000FF33 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3F0 7F0358C0 02C28821 */ addu $s1, $s6, $v0 +.L7F0358C4: +/* 06A3F4 7F0358C4 26520002 */ addiu $s2, $s2, 2 +/* 06A3F8 7F0358C8 1000FF30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3FC 7F0358CC 26310002 */ addiu $s1, $s1, 2 +action0C_Guard_Gestures_1: +/* 06A400 7F0358D0 0FC0CD84 */ jal check_if_able_to_then_shuffle_feet +/* 06A404 7F0358D4 02E02025 */ move $a0, $s7 +/* 06A408 7F0358D8 26520001 */ addiu $s2, $s2, 1 +/* 06A40C 7F0358DC 1000FF2B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A410 7F0358E0 26310001 */ addiu $s1, $s1, 1 +action0D_Guard_Looks_Around_When_Shot_At_1: +/* 06A414 7F0358E4 0FC0CDA2 */ jal check_if_able_to_then_look_flustered +/* 06A418 7F0358E8 02E02025 */ move $a0, $s7 +/* 06A41C 7F0358EC 26520001 */ addiu $s2, $s2, 1 +/* 06A420 7F0358F0 1000FF26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A424 7F0358F4 26310001 */ addiu $s1, $s1, 1 +action2F_When_Guard_Stops_Moving_RVL_2: +/* 06A428 7F0358F8 0FC0A717 */ jal check_if_actor_stationary +/* 06A42C 7F0358FC 02E02025 */ move $a0, $s7 +/* 06A430 7F035900 10400007 */ beqz $v0, .L7F035920 +/* 06A434 7F035904 02C02025 */ move $a0, $s6 +/* 06A438 7F035908 02402825 */ move $a1, $s2 +/* 06A43C 7F03590C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A440 7F035910 92260001 */ lbu $a2, 1($s1) +/* 06A444 7F035914 00409025 */ move $s2, $v0 +/* 06A448 7F035918 1000FF1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A44C 7F03591C 02C28821 */ addu $s1, $s6, $v0 +.L7F035920: +/* 06A450 7F035920 26520002 */ addiu $s2, $s2, 2 +/* 06A454 7F035924 1000FF19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A458 7F035928 26310002 */ addiu $s1, $s1, 2 +action30_Detect_If_Guard_Killed_RVL_If_So_3: +/* 06A45C 7F03592C 02E02025 */ move $a0, $s7 +/* 06A460 7F035930 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A464 7F035934 92250001 */ lbu $a1, 1($s1) +/* 06A468 7F035938 10400004 */ beqz $v0, .L7F03594C +/* 06A46C 7F03593C 00402025 */ move $a0, $v0 +/* 06A470 7F035940 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 06A474 7F035944 00000000 */ nop +/* 06A478 7F035948 10400007 */ beqz $v0, .L7F035968 +.L7F03594C: +/* 06A47C 7F03594C 02C02025 */ move $a0, $s6 +/* 06A480 7F035950 02402825 */ move $a1, $s2 +/* 06A484 7F035954 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A488 7F035958 92260002 */ lbu $a2, 2($s1) +/* 06A48C 7F03595C 00409025 */ move $s2, $v0 +/* 06A490 7F035960 1000FF0A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A494 7F035964 02C28821 */ addu $s1, $s6, $v0 +.L7F035968: +/* 06A498 7F035968 26520003 */ addiu $s2, $s2, 3 +/* 06A49C 7F03596C 1000FF07 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4A0 7F035970 26310003 */ addiu $s1, $s1, 3 +action31_If_GuardID_Finish_DeathAnimation_RVL_3: +/* 06A4A4 7F035974 02E02025 */ move $a0, $s7 +/* 06A4A8 7F035978 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A4AC 7F03597C 92250001 */ lbu $a1, 1($s1) +/* 06A4B0 7F035980 10400003 */ beqz $v0, .L7F035990 +/* 06A4B4 7F035984 02C02025 */ move $a0, $s6 +/* 06A4B8 7F035988 8C4C001C */ lw $t4, 0x1c($v0) +/* 06A4BC 7F03598C 15800006 */ bnez $t4, .L7F0359A8 +.L7F035990: +/* 06A4C0 7F035990 02402825 */ move $a1, $s2 +/* 06A4C4 7F035994 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4C8 7F035998 92260002 */ lbu $a2, 2($s1) +/* 06A4CC 7F03599C 00409025 */ move $s2, $v0 +/* 06A4D0 7F0359A0 1000FEFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4D4 7F0359A4 02C28821 */ addu $s1, $s6, $v0 +.L7F0359A8: +/* 06A4D8 7F0359A8 26520003 */ addiu $s2, $s2, 3 +/* 06A4DC 7F0359AC 1000FEF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4E0 7F0359B0 26310003 */ addiu $s1, $s1, 3 +action32_If_Bond_In_Sight_RVL_2: +/* 06A4E4 7F0359B4 0FC0A75C */ jal sub_GAME_7F029D70 +/* 06A4E8 7F0359B8 02E02025 */ move $a0, $s7 +/* 06A4EC 7F0359BC 10400007 */ beqz $v0, .L7F0359DC +/* 06A4F0 7F0359C0 02C02025 */ move $a0, $s6 +/* 06A4F4 7F0359C4 02402825 */ move $a1, $s2 +/* 06A4F8 7F0359C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4FC 7F0359CC 92260001 */ lbu $a2, 1($s1) +/* 06A500 7F0359D0 00409025 */ move $s2, $v0 +/* 06A504 7F0359D4 1000FEED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A508 7F0359D8 02C28821 */ addu $s1, $s6, $v0 +.L7F0359DC: +/* 06A50C 7F0359DC 26520002 */ addiu $s2, $s2, 2 +/* 06A510 7F0359E0 1000FEEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A514 7F0359E4 26310002 */ addiu $s1, $s1, 2 +action0E_Guard_Steps_Sideways_RVL_2: +/* 06A518 7F0359E8 0FC0A8B2 */ jal actor_steps_sideways +/* 06A51C 7F0359EC 02E02025 */ move $a0, $s7 +/* 06A520 7F0359F0 10400007 */ beqz $v0, .L7F035A10 +/* 06A524 7F0359F4 02C02025 */ move $a0, $s6 +/* 06A528 7F0359F8 02402825 */ move $a1, $s2 +/* 06A52C 7F0359FC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A530 7F035A00 92260001 */ lbu $a2, 1($s1) +/* 06A534 7F035A04 00409025 */ move $s2, $v0 +/* 06A538 7F035A08 1000FEE0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A53C 7F035A0C 02C28821 */ addu $s1, $s6, $v0 +.L7F035A10: +/* 06A540 7F035A10 26520002 */ addiu $s2, $s2, 2 +/* 06A544 7F035A14 1000FEDD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A548 7F035A18 26310002 */ addiu $s1, $s1, 2 +action0F_Guard_Hops_Sideways_RVL_2: +/* 06A54C 7F035A1C 0FC0A90A */ jal actor_hops_sideways +/* 06A550 7F035A20 02E02025 */ move $a0, $s7 +/* 06A554 7F035A24 10400007 */ beqz $v0, .L7F035A44 +/* 06A558 7F035A28 02C02025 */ move $a0, $s6 +/* 06A55C 7F035A2C 02402825 */ move $a1, $s2 +/* 06A560 7F035A30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A564 7F035A34 92260001 */ lbu $a2, 1($s1) +/* 06A568 7F035A38 00409025 */ move $s2, $v0 +/* 06A56C 7F035A3C 1000FED3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A570 7F035A40 02C28821 */ addu $s1, $s6, $v0 +.L7F035A44: +/* 06A574 7F035A44 26520002 */ addiu $s2, $s2, 2 +/* 06A578 7F035A48 1000FED0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A57C 7F035A4C 26310002 */ addiu $s1, $s1, 2 +action10_Guard_Runs_Sideways_RVL_2: +/* 06A580 7F035A50 0FC0A962 */ jal actor_runs_sideways +/* 06A584 7F035A54 02E02025 */ move $a0, $s7 +/* 06A588 7F035A58 10400007 */ beqz $v0, .L7F035A78 +/* 06A58C 7F035A5C 02C02025 */ move $a0, $s6 +/* 06A590 7F035A60 02402825 */ move $a1, $s2 +/* 06A594 7F035A64 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A598 7F035A68 92260001 */ lbu $a2, 1($s1) +/* 06A59C 7F035A6C 00409025 */ move $s2, $v0 +/* 06A5A0 7F035A70 1000FEC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5A4 7F035A74 02C28821 */ addu $s1, $s6, $v0 +.L7F035A78: +/* 06A5A8 7F035A78 26520002 */ addiu $s2, $s2, 2 +/* 06A5AC 7F035A7C 1000FEC3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5B0 7F035A80 26310002 */ addiu $s1, $s1, 2 +action11_Guard_Walks_Firing_RVL_2: +/* 06A5B4 7F035A84 0FC0A9C1 */ jal actor_walks_and_fires +/* 06A5B8 7F035A88 02E02025 */ move $a0, $s7 +/* 06A5BC 7F035A8C 10400007 */ beqz $v0, .L7F035AAC +/* 06A5C0 7F035A90 02C02025 */ move $a0, $s6 +/* 06A5C4 7F035A94 02402825 */ move $a1, $s2 +/* 06A5C8 7F035A98 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A5CC 7F035A9C 92260001 */ lbu $a2, 1($s1) +/* 06A5D0 7F035AA0 00409025 */ move $s2, $v0 +/* 06A5D4 7F035AA4 1000FEB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5D8 7F035AA8 02C28821 */ addu $s1, $s6, $v0 +.L7F035AAC: +/* 06A5DC 7F035AAC 26520002 */ addiu $s2, $s2, 2 +/* 06A5E0 7F035AB0 1000FEB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5E4 7F035AB4 26310002 */ addiu $s1, $s1, 2 +action12_Guard_Runs_Firing_RVL_2: +/* 06A5E8 7F035AB8 0FC0A9FE */ jal actor_runs_and_fires +/* 06A5EC 7F035ABC 02E02025 */ move $a0, $s7 +/* 06A5F0 7F035AC0 10400007 */ beqz $v0, .L7F035AE0 +/* 06A5F4 7F035AC4 02C02025 */ move $a0, $s6 +/* 06A5F8 7F035AC8 02402825 */ move $a1, $s2 +/* 06A5FC 7F035ACC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A600 7F035AD0 92260001 */ lbu $a2, 1($s1) +/* 06A604 7F035AD4 00409025 */ move $s2, $v0 +/* 06A608 7F035AD8 1000FEAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A60C 7F035ADC 02C28821 */ addu $s1, $s6, $v0 +.L7F035AE0: +/* 06A610 7F035AE0 26520002 */ addiu $s2, $s2, 2 +/* 06A614 7F035AE4 1000FEA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A618 7F035AE8 26310002 */ addiu $s1, $s1, 2 +action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2: +/* 06A61C 7F035AEC 0FC0AA3B */ jal actor_rolls_fires_crouched +/* 06A620 7F035AF0 02E02025 */ move $a0, $s7 +/* 06A624 7F035AF4 10400007 */ beqz $v0, .L7F035B14 +/* 06A628 7F035AF8 02C02025 */ move $a0, $s6 +/* 06A62C 7F035AFC 02402825 */ move $a1, $s2 +/* 06A630 7F035B00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A634 7F035B04 92260001 */ lbu $a2, 1($s1) +/* 06A638 7F035B08 00409025 */ move $s2, $v0 +/* 06A63C 7F035B0C 1000FE9F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A640 7F035B10 02C28821 */ addu $s1, $s6, $v0 +.L7F035B14: +/* 06A644 7F035B14 26520002 */ addiu $s2, $s2, 2 +/* 06A648 7F035B18 1000FE9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A64C 7F035B1C 26310002 */ addiu $s1, $s1, 2 +action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A650 7F035B20 922D0003 */ lbu $t5, 3($s1) +/* 06A654 7F035B24 92380001 */ lbu $t8, 1($s1) +/* 06A658 7F035B28 922F0004 */ lbu $t7, 4($s1) +/* 06A65C 7F035B2C 92290002 */ lbu $t1, 2($s1) +/* 06A660 7F035B30 000D7200 */ sll $t6, $t5, 8 +/* 06A664 7F035B34 0018CA00 */ sll $t9, $t8, 8 +/* 06A668 7F035B38 02E02025 */ move $a0, $s7 +/* 06A66C 7F035B3C 01CF3025 */ or $a2, $t6, $t7 +/* 06A670 7F035B40 0FC0AA87 */ jal actor_aim_at_actor +/* 06A674 7F035B44 03292825 */ or $a1, $t9, $t1 +/* 06A678 7F035B48 10400007 */ beqz $v0, .L7F035B68 +/* 06A67C 7F035B4C 02C02025 */ move $a0, $s6 +/* 06A680 7F035B50 02402825 */ move $a1, $s2 +/* 06A684 7F035B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A688 7F035B58 92260005 */ lbu $a2, 5($s1) +/* 06A68C 7F035B5C 00409025 */ move $s2, $v0 +/* 06A690 7F035B60 1000FE8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A694 7F035B64 02C28821 */ addu $s1, $s6, $v0 +.L7F035B68: +/* 06A698 7F035B68 26520006 */ addiu $s2, $s2, 6 +/* 06A69C 7F035B6C 1000FE87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6A0 7F035B70 26310006 */ addiu $s1, $s1, 6 +action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A6A4 7F035B74 922A0003 */ lbu $t2, 3($s1) +/* 06A6A8 7F035B78 922D0001 */ lbu $t5, 1($s1) +/* 06A6AC 7F035B7C 922C0004 */ lbu $t4, 4($s1) +/* 06A6B0 7F035B80 922F0002 */ lbu $t7, 2($s1) +/* 06A6B4 7F035B84 000A5A00 */ sll $t3, $t2, 8 +/* 06A6B8 7F035B88 000D7200 */ sll $t6, $t5, 8 +/* 06A6BC 7F035B8C 02E02025 */ move $a0, $s7 +/* 06A6C0 7F035B90 016C3025 */ or $a2, $t3, $t4 +/* 06A6C4 7F035B94 0FC0AAA2 */ jal actor_kneel_aim_at_actor +/* 06A6C8 7F035B98 01CF2825 */ or $a1, $t6, $t7 +/* 06A6CC 7F035B9C 10400007 */ beqz $v0, .L7F035BBC +/* 06A6D0 7F035BA0 02C02025 */ move $a0, $s6 +/* 06A6D4 7F035BA4 02402825 */ move $a1, $s2 +/* 06A6D8 7F035BA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A6DC 7F035BAC 92260005 */ lbu $a2, 5($s1) +/* 06A6E0 7F035BB0 00409025 */ move $s2, $v0 +/* 06A6E4 7F035BB4 1000FE75 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6E8 7F035BB8 02C28821 */ addu $s1, $s6, $v0 +.L7F035BBC: +/* 06A6EC 7F035BBC 26520006 */ addiu $s2, $s2, 6 +/* 06A6F0 7F035BC0 1000FE72 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6F4 7F035BC4 26310006 */ addiu $s1, $s1, 6 +actionE7_If_Guard_Moving_And_Shooting_RVL_2: +/* 06A6F8 7F035BC8 82F80007 */ lb $t8, 7($s7) +/* 06A6FC 7F035BCC 24010008 */ li $at, 8 +/* 06A700 7F035BD0 57010010 */ bnel $t8, $at, .L7F035C14 +/* 06A704 7F035BD4 26520002 */ addiu $s2, $s2, 2 +/* 06A708 7F035BD8 8EF90058 */ lw $t9, 0x58($s7) +/* 06A70C 7F035BDC 5720000D */ bnezl $t9, .L7F035C14 +/* 06A710 7F035BE0 26520002 */ addiu $s2, $s2, 2 +/* 06A714 7F035BE4 8EE9004C */ lw $t1, 0x4c($s7) +/* 06A718 7F035BE8 02C02025 */ move $a0, $s6 +/* 06A71C 7F035BEC 02402825 */ move $a1, $s2 +/* 06A720 7F035BF0 312A0040 */ andi $t2, $t1, 0x40 +/* 06A724 7F035BF4 51400007 */ beql $t2, $zero, .L7F035C14 +/* 06A728 7F035BF8 26520002 */ addiu $s2, $s2, 2 +/* 06A72C 7F035BFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A730 7F035C00 92260001 */ lbu $a2, 1($s1) +/* 06A734 7F035C04 00409025 */ move $s2, $v0 +/* 06A738 7F035C08 1000FE60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A73C 7F035C0C 02C28821 */ addu $s1, $s6, $v0 +/* 06A740 7F035C10 26520002 */ addiu $s2, $s2, 2 +.L7F035C14: +/* 06A744 7F035C14 1000FE5D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A748 7F035C18 26310002 */ addiu $s1, $s1, 2 +actionE8_If_Guard_Is_Shooting_RVL_2: +/* 06A74C 7F035C1C 82EB0007 */ lb $t3, 7($s7) +/* 06A750 7F035C20 24010008 */ li $at, 8 +/* 06A754 7F035C24 02C02025 */ move $a0, $s6 +/* 06A758 7F035C28 15610006 */ bne $t3, $at, .L7F035C44 +/* 06A75C 7F035C2C 02402825 */ move $a1, $s2 +/* 06A760 7F035C30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A764 7F035C34 92260001 */ lbu $a2, 1($s1) +/* 06A768 7F035C38 00409025 */ move $s2, $v0 +/* 06A76C 7F035C3C 1000FE53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A770 7F035C40 02C28821 */ addu $s1, $s6, $v0 +.L7F035C44: +/* 06A774 7F035C44 26520002 */ addiu $s2, $s2, 2 +/* 06A778 7F035C48 1000FE50 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A77C 7F035C4C 26310002 */ addiu $s1, $s1, 2 +action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: +/* 06A780 7F035C50 922C0003 */ lbu $t4, 3($s1) +/* 06A784 7F035C54 922F0001 */ lbu $t7, 1($s1) +/* 06A788 7F035C58 922E0004 */ lbu $t6, 4($s1) +/* 06A78C 7F035C5C 92390002 */ lbu $t9, 2($s1) +/* 06A790 7F035C60 000C6A00 */ sll $t5, $t4, 8 +/* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 +/* 06A798 7F035C68 02E02025 */ move $a0, $s7 +/* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 +/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 +/* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 +/* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 +/* 06A7B0 7F035C80 02402825 */ move $a1, $s2 +/* 06A7B4 7F035C84 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A7B8 7F035C88 92260005 */ lbu $a2, 5($s1) +/* 06A7BC 7F035C8C 00409025 */ move $s2, $v0 +/* 06A7C0 7F035C90 1000FE3E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7C4 7F035C94 02C28821 */ addu $s1, $s6, $v0 +.L7F035C98: +/* 06A7C8 7F035C98 26520006 */ addiu $s2, $s2, 6 +/* 06A7CC 7F035C9C 1000FE3B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7D0 7F035CA0 26310006 */ addiu $s1, $s1, 6 +action17_Guard_Constantly_Angles_To_Face_RVL_6: +/* 06A7D4 7F035CA4 92290003 */ lbu $t1, 3($s1) +/* 06A7D8 7F035CA8 922C0001 */ lbu $t4, 1($s1) +/* 06A7DC 7F035CAC 922B0004 */ lbu $t3, 4($s1) +/* 06A7E0 7F035CB0 922E0002 */ lbu $t6, 2($s1) +/* 06A7E4 7F035CB4 00095200 */ sll $t2, $t1, 8 +/* 06A7E8 7F035CB8 000C6A00 */ sll $t5, $t4, 8 +/* 06A7EC 7F035CBC 02E02025 */ move $a0, $s7 +/* 06A7F0 7F035CC0 014B3025 */ or $a2, $t2, $t3 +/* 06A7F4 7F035CC4 0FC0AAD1 */ jal check_set_actor_standing_still +/* 06A7F8 7F035CC8 01AE2825 */ or $a1, $t5, $t6 +/* 06A7FC 7F035CCC 10400007 */ beqz $v0, .L7F035CEC +/* 06A800 7F035CD0 02C02025 */ move $a0, $s6 +/* 06A804 7F035CD4 02402825 */ move $a1, $s2 +/* 06A808 7F035CD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A80C 7F035CDC 92260005 */ lbu $a2, 5($s1) +/* 06A810 7F035CE0 00409025 */ move $s2, $v0 +/* 06A814 7F035CE4 1000FE29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A818 7F035CE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035CEC: +/* 06A81C 7F035CEC 26520006 */ addiu $s2, $s2, 6 +/* 06A820 7F035CF0 1000FE26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A824 7F035CF4 26310006 */ addiu $s1, $s1, 6 +action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4: +/* 06A828 7F035CF8 02E02025 */ move $a0, $s7 +/* 06A82C 7F035CFC 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A830 7F035D00 92250001 */ lbu $a1, 1($s1) +/* 06A834 7F035D04 3C188003 */ lui $t8, %hi(D_80030A70) +/* 06A838 7F035D08 27180A70 */ addiu $t8, %lo(D_80030A70) # addiu $t8, $t8, 0xa70 +/* 06A83C 7F035D0C 8F010000 */ lw $at, ($t8) +/* 06A840 7F035D10 27AF06F4 */ addiu $t7, $sp, 0x6f4 +/* 06A844 7F035D14 8F090004 */ lw $t1, 4($t8) +/* 06A848 7F035D18 ADE10000 */ sw $at, ($t7) +/* 06A84C 7F035D1C 8F010008 */ lw $at, 8($t8) +/* 06A850 7F035D20 00402025 */ move $a0, $v0 +/* 06A854 7F035D24 ADE90004 */ sw $t1, 4($t7) +/* 06A858 7F035D28 10400009 */ beqz $v0, .L7F035D50 +/* 06A85C 7F035D2C ADE10008 */ sw $at, 8($t7) +/* 06A860 7F035D30 8C4A0018 */ lw $t2, 0x18($v0) +/* 06A864 7F035D34 51400007 */ beql $t2, $zero, .L7F035D54 +/* 06A868 7F035D38 26520004 */ addiu $s2, $s2, 4 +/* 06A86C 7F035D3C 82250002 */ lb $a1, 2($s1) +/* 06A870 7F035D40 92270003 */ lbu $a3, 3($s1) +/* 06A874 7F035D44 AFA00010 */ sw $zero, 0x10($sp) +/* 06A878 7F035D48 0FC09C9F */ jal handles_shot_actors +/* 06A87C 7F035D4C 27A606F4 */ addiu $a2, $sp, 0x6f4 +.L7F035D50: +/* 06A880 7F035D50 26520004 */ addiu $s2, $s2, 4 +.L7F035D54: +/* 06A884 7F035D54 1000FE0D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A888 7F035D58 26310004 */ addiu $s1, $s1, 4 +action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4: +/* 06A88C 7F035D5C 02E02025 */ move $a0, $s7 +/* 06A890 7F035D60 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A894 7F035D64 92250001 */ lbu $a1, 1($s1) +/* 06A898 7F035D68 00408025 */ move $s0, $v0 +/* 06A89C 7F035D6C 02E02025 */ move $a0, $s7 +/* 06A8A0 7F035D70 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A8A4 7F035D74 92250002 */ lbu $a1, 2($s1) +/* 06A8A8 7F035D78 1200003C */ beqz $s0, .L7F035E6C +/* 06A8AC 7F035D7C AFA206E8 */ sw $v0, 0x6e8($sp) +/* 06A8B0 7F035D80 1040003A */ beqz $v0, .L7F035E6C +/* 06A8B4 7F035D84 00409825 */ move $s3, $v0 +/* 06A8B8 7F035D88 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A8BC 7F035D8C 51600038 */ beql $t3, $zero, .L7F035E70 +/* 06A8C0 7F035D90 26520004 */ addiu $s2, $s2, 4 +/* 06A8C4 7F035D94 8C4C0018 */ lw $t4, 0x18($v0) +/* 06A8C8 7F035D98 02002025 */ move $a0, $s0 +/* 06A8CC 7F035D9C 51800034 */ beql $t4, $zero, .L7F035E70 +/* 06A8D0 7F035DA0 26520004 */ addiu $s2, $s2, 4 +/* 06A8D4 7F035DA4 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A8D8 7F035DA8 00002825 */ move $a1, $zero +/* 06A8DC 7F035DAC 3C0E8003 */ lui $t6, %hi(D_80030A7C) +/* 06A8E0 7F035DB0 25CE0A7C */ addiu $t6, %lo(D_80030A7C) # addiu $t6, $t6, 0xa7c +/* 06A8E4 7F035DB4 8DC10000 */ lw $at, ($t6) +/* 06A8E8 7F035DB8 27AD06D4 */ addiu $t5, $sp, 0x6d4 +/* 06A8EC 7F035DBC 8DCF0004 */ lw $t7, 4($t6) +/* 06A8F0 7F035DC0 ADA10000 */ sw $at, ($t5) +/* 06A8F4 7F035DC4 8DC10008 */ lw $at, 8($t6) +/* 06A8F8 7F035DC8 00401825 */ move $v1, $v0 +/* 06A8FC 7F035DCC ADAF0004 */ sw $t7, 4($t5) +/* 06A900 7F035DD0 14400005 */ bnez $v0, .L7F035DE8 +/* 06A904 7F035DD4 ADA10008 */ sw $at, 8($t5) +/* 06A908 7F035DD8 02002025 */ move $a0, $s0 +/* 06A90C 7F035DDC 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A910 7F035DE0 24050001 */ li $a1, 1 +/* 06A914 7F035DE4 00401825 */ move $v1, $v0 +.L7F035DE8: +/* 06A918 7F035DE8 50400021 */ beql $v0, $zero, .L7F035E70 +/* 06A91C 7F035DEC 26520004 */ addiu $s2, $s2, 4 +/* 06A920 7F035DF0 8E780018 */ lw $t8, 0x18($s3) +/* 06A924 7F035DF4 8E090018 */ lw $t1, 0x18($s0) +/* 06A928 7F035DF8 27A406D4 */ addiu $a0, $sp, 0x6d4 +/* 06A92C 7F035DFC C7120008 */ lwc1 $f18, 8($t8) +/* 06A930 7F035E00 C5240008 */ lwc1 $f4, 8($t1) +/* 06A934 7F035E04 27A506D8 */ addiu $a1, $sp, 0x6d8 +/* 06A938 7F035E08 27A606DC */ addiu $a2, $sp, 0x6dc +/* 06A93C 7F035E0C 46049181 */ sub.s $f6, $f18, $f4 +/* 06A940 7F035E10 E7A606D4 */ swc1 $f6, 0x6d4($sp) +/* 06A944 7F035E14 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A948 7F035E18 8E6A0018 */ lw $t2, 0x18($s3) +/* 06A94C 7F035E1C C56A000C */ lwc1 $f10, 0xc($t3) +/* 06A950 7F035E20 C548000C */ lwc1 $f8, 0xc($t2) +/* 06A954 7F035E24 460A4401 */ sub.s $f16, $f8, $f10 +/* 06A958 7F035E28 E7B006D8 */ swc1 $f16, 0x6d8($sp) +/* 06A95C 7F035E2C 8E190018 */ lw $t9, 0x18($s0) +/* 06A960 7F035E30 8E6C0018 */ lw $t4, 0x18($s3) +/* 06A964 7F035E34 C7240010 */ lwc1 $f4, 0x10($t9) +/* 06A968 7F035E38 C5920010 */ lwc1 $f18, 0x10($t4) +/* 06A96C 7F035E3C AFA306E4 */ sw $v1, 0x6e4($sp) +/* 06A970 7F035E40 46049181 */ sub.s $f6, $f18, $f4 +/* 06A974 7F035E44 0C007DD4 */ jal guNormalize +/* 06A978 7F035E48 E7A606DC */ swc1 $f6, 0x6dc($sp) +/* 06A97C 7F035E4C 8FA306E4 */ lw $v1, 0x6e4($sp) +/* 06A980 7F035E50 82250003 */ lb $a1, 3($s1) +/* 06A984 7F035E54 02602025 */ move $a0, $s3 +/* 06A988 7F035E58 8C620004 */ lw $v0, 4($v1) +/* 06A98C 7F035E5C 27A606D4 */ addiu $a2, $sp, 0x6d4 +/* 06A990 7F035E60 80470080 */ lb $a3, 0x80($v0) +/* 06A994 7F035E64 0FC09C9F */ jal handles_shot_actors +/* 06A998 7F035E68 AFA00010 */ sw $zero, 0x10($sp) +.L7F035E6C: +/* 06A99C 7F035E6C 26520004 */ addiu $s2, $s2, 4 +.L7F035E70: +/* 06A9A0 7F035E70 1000FDC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9A4 7F035E74 26310004 */ addiu $s1, $s1, 4 +action1A_Guard_Throws_Grenade_RVL_2: +/* 06A9A8 7F035E78 0FC0D15F */ jal actor_draws_throws_grenade_at_player_if_possible +/* 06A9AC 7F035E7C 02E02025 */ move $a0, $s7 +/* 06A9B0 7F035E80 10400007 */ beqz $v0, .L7F035EA0 +/* 06A9B4 7F035E84 02C02025 */ move $a0, $s6 +/* 06A9B8 7F035E88 02402825 */ move $a1, $s2 +/* 06A9BC 7F035E8C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A9C0 7F035E90 92260001 */ lbu $a2, 1($s1) +/* 06A9C4 7F035E94 00409025 */ move $s2, $v0 +/* 06A9C8 7F035E98 1000FDBC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9CC 7F035E9C 02C28821 */ addu $s1, $s6, $v0 +.L7F035EA0: +/* 06A9D0 7F035EA0 26520002 */ addiu $s2, $s2, 2 +/* 06A9D4 7F035EA4 1000FDB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9D8 7F035EA8 26310002 */ addiu $s1, $s1, 2 +action1B_Drop_Weapon_Inventory_num_RVL_5: +/* 06A9DC 7F035EAC 922D0001 */ lbu $t5, 1($s1) +/* 06A9E0 7F035EB0 922F0002 */ lbu $t7, 2($s1) +/* 06A9E4 7F035EB4 02E02025 */ move $a0, $s7 +/* 06A9E8 7F035EB8 000D7200 */ sll $t6, $t5, 8 +/* 06A9EC 7F035EBC 01CF1025 */ or $v0, $t6, $t7 +/* 06A9F0 7F035EC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06A9F4 7F035EC4 0FC0D1BF */ jal actor_drops_itemtype_setting_timer +/* 06A9F8 7F035EC8 92260003 */ lbu $a2, 3($s1) +/* 06A9FC 7F035ECC 10400007 */ beqz $v0, .L7F035EEC +/* 06AA00 7F035ED0 02C02025 */ move $a0, $s6 +/* 06AA04 7F035ED4 02402825 */ move $a1, $s2 +/* 06AA08 7F035ED8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AA0C 7F035EDC 92260004 */ lbu $a2, 4($s1) +/* 06AA10 7F035EE0 00409025 */ move $s2, $v0 +/* 06AA14 7F035EE4 1000FDA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA18 7F035EE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035EEC: +/* 06AA1C 7F035EEC 26520005 */ addiu $s2, $s2, 5 +/* 06AA20 7F035EF0 1000FDA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA24 7F035EF4 26310005 */ addiu $s1, $s1, 5 +action21_Guard_Surrenders_1: +/* 06AA28 7F035EF8 0FC0CCD9 */ jal check_if_able_to_then_surrender +/* 06AA2C 7F035EFC 02E02025 */ move $a0, $s7 +/* 06AA30 7F035F00 26520001 */ addiu $s2, $s2, 1 +/* 06AA34 7F035F04 1000FDA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA38 7F035F08 26310001 */ addiu $s1, $s1, 1 +action22_Guard_Set_To_Move_Fades_And_Disappear_1: +/* 06AA3C 7F035F0C 0FC0CCE8 */ jal sub_GAME_7F0333A0 +/* 06AA40 7F035F10 02E02025 */ move $a0, $s7 +/* 06AA44 7F035F14 26520001 */ addiu $s2, $s2, 1 +/* 06AA48 7F035F18 1000FD9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA4C 7F035F1C 26310001 */ addiu $s1, $s1, 1 +action23_Eliminate_Guard_ID_2: +/* 06AA50 7F035F20 02E02025 */ move $a0, $s7 +/* 06AA54 7F035F24 0FC0CC10 */ jal get_handle_for_guard_id +/* 06AA58 7F035F28 92250001 */ lbu $a1, 1($s1) +/* 06AA5C 7F035F2C 10400007 */ beqz $v0, .L7F035F4C +/* 06AA60 7F035F30 26520002 */ addiu $s2, $s2, 2 +/* 06AA64 7F035F34 8C490018 */ lw $t1, 0x18($v0) +/* 06AA68 7F035F38 11200004 */ beqz $t1, .L7F035F4C +/* 06AA6C 7F035F3C 00000000 */ nop +/* 06AA70 7F035F40 944A0012 */ lhu $t2, 0x12($v0) +/* 06AA74 7F035F44 354B0020 */ ori $t3, $t2, 0x20 +/* 06AA78 7F035F48 A44B0012 */ sh $t3, 0x12($v0) +.L7F035F4C: +/* 06AA7C 7F035F4C 1000FD8F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA80 7F035F50 26310002 */ addiu $s1, $s1, 2 +action24_Activate_Object_At_Preset_RVL_If_Successful_4: +/* 06AA84 7F035F54 922C0001 */ lbu $t4, 1($s1) +/* 06AA88 7F035F58 922D0002 */ lbu $t5, 2($s1) +/* 06AA8C 7F035F5C 02E02025 */ move $a0, $s7 +/* 06AA90 7F035F60 000CCA00 */ sll $t9, $t4, 8 +/* 06AA94 7F035F64 032D1025 */ or $v0, $t9, $t5 +/* 06AA98 7F035F68 0FC0D145 */ jal sub_GAME_7F034514 +/* 06AA9C 7F035F6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AAA0 7F035F70 10400007 */ beqz $v0, .L7F035F90 +/* 06AAA4 7F035F74 02C02025 */ move $a0, $s6 +/* 06AAA8 7F035F78 02402825 */ move $a1, $s2 +/* 06AAAC 7F035F7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AAB0 7F035F80 92260003 */ lbu $a2, 3($s1) +/* 06AAB4 7F035F84 00409025 */ move $s2, $v0 +/* 06AAB8 7F035F88 1000FD80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AABC 7F035F8C 02C28821 */ addu $s1, $s6, $v0 +.L7F035F90: +/* 06AAC0 7F035F90 26520004 */ addiu $s2, $s2, 4 +/* 06AAC4 7F035F94 1000FD7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAC8 7F035F98 26310004 */ addiu $s1, $s1, 4 +action25_Sound_Alarm_1: +/* 06AACC 7F035F9C 0FC15772 */ jal start_alarm +/* 06AAD0 7F035FA0 00000000 */ nop +/* 06AAD4 7F035FA4 26520001 */ addiu $s2, $s2, 1 +/* 06AAD8 7F035FA8 1000FD78 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AADC 7F035FAC 26310001 */ addiu $s1, $s1, 1 +action26_Turn_Off_Alarm_1: +/* 06AAE0 7F035FB0 0FC1578B */ jal stop_alarm +/* 06AAE4 7F035FB4 00000000 */ nop +/* 06AAE8 7F035FB8 26520001 */ addiu $s2, $s2, 1 +/* 06AAEC 7F035FBC 1000FD73 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAF0 7F035FC0 26310001 */ addiu $s1, $s1, 1 +action27_Return_False_Invalid_Type_2: +/* 06AAF4 7F035FC4 0FC0D13F */ jal removed_animation_routine_27 +/* 06AAF8 7F035FC8 02E02025 */ move $a0, $s7 +/* 06AAFC 7F035FCC 10400007 */ beqz $v0, .L7F035FEC +/* 06AB00 7F035FD0 02C02025 */ move $a0, $s6 +/* 06AB04 7F035FD4 02402825 */ move $a1, $s2 +/* 06AB08 7F035FD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB0C 7F035FDC 92260001 */ lbu $a2, 1($s1) +/* 06AB10 7F035FE0 00409025 */ move $s2, $v0 +/* 06AB14 7F035FE4 1000FD69 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB18 7F035FE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035FEC: +/* 06AB1C 7F035FEC 26520002 */ addiu $s2, $s2, 2 +/* 06AB20 7F035FF0 1000FD66 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB24 7F035FF4 26310002 */ addiu $s1, $s1, 2 +action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB28 7F035FF8 02E02025 */ move $a0, $s7 +/* 06AB2C 7F035FFC 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB30 7F036000 24050001 */ li $a1, 1 +/* 06AB34 7F036004 10400007 */ beqz $v0, .L7F036024 +/* 06AB38 7F036008 02C02025 */ move $a0, $s6 +/* 06AB3C 7F03600C 02402825 */ move $a1, $s2 +/* 06AB40 7F036010 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB44 7F036014 92260001 */ lbu $a2, 1($s1) +/* 06AB48 7F036018 00409025 */ move $s2, $v0 +/* 06AB4C 7F03601C 1000FD5B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB50 7F036020 02C28821 */ addu $s1, $s6, $v0 +.L7F036024: +/* 06AB54 7F036024 26520002 */ addiu $s2, $s2, 2 +/* 06AB58 7F036028 1000FD58 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB5C 7F03602C 26310002 */ addiu $s1, $s1, 2 +action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB60 7F036030 02E02025 */ move $a0, $s7 +/* 06AB64 7F036034 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB68 7F036038 00002825 */ move $a1, $zero +/* 06AB6C 7F03603C 10400007 */ beqz $v0, .L7F03605C +/* 06AB70 7F036040 02C02025 */ move $a0, $s6 +/* 06AB74 7F036044 02402825 */ move $a1, $s2 +/* 06AB78 7F036048 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB7C 7F03604C 92260001 */ lbu $a2, 1($s1) +/* 06AB80 7F036050 00409025 */ move $s2, $v0 +/* 06AB84 7F036054 1000FD4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB88 7F036058 02C28821 */ addu $s1, $s6, $v0 +.L7F03605C: +/* 06AB8C 7F03605C 26520002 */ addiu $s2, $s2, 2 +/* 06AB90 7F036060 1000FD4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB94 7F036064 26310002 */ addiu $s1, $s1, 2 +action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB98 7F036068 02E02025 */ move $a0, $s7 +/* 06AB9C 7F03606C 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06ABA0 7F036070 24050002 */ li $a1, 2 +/* 06ABA4 7F036074 10400007 */ beqz $v0, .L7F036094 +/* 06ABA8 7F036078 02C02025 */ move $a0, $s6 +/* 06ABAC 7F03607C 02402825 */ move $a1, $s2 +/* 06ABB0 7F036080 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABB4 7F036084 92260001 */ lbu $a2, 1($s1) +/* 06ABB8 7F036088 00409025 */ move $s2, $v0 +/* 06ABBC 7F03608C 1000FD3F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABC0 7F036090 02C28821 */ addu $s1, $s6, $v0 +.L7F036094: +/* 06ABC4 7F036094 26520002 */ addiu $s2, $s2, 2 +/* 06ABC8 7F036098 1000FD3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABCC 7F03609C 26310002 */ addiu $s1, $s1, 2 +action2B_Return_False_Invalid_Type_2: +/* 06ABD0 7F0360A0 0FC0D142 */ jal removed_animation_routine_2B +/* 06ABD4 7F0360A4 02E02025 */ move $a0, $s7 +/* 06ABD8 7F0360A8 10400007 */ beqz $v0, .L7F0360C8 +/* 06ABDC 7F0360AC 02C02025 */ move $a0, $s6 +/* 06ABE0 7F0360B0 02402825 */ move $a1, $s2 +/* 06ABE4 7F0360B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABE8 7F0360B8 92260001 */ lbu $a2, 1($s1) +/* 06ABEC 7F0360BC 00409025 */ move $s2, $v0 +/* 06ABF0 7F0360C0 1000FD32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABF4 7F0360C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0360C8: +/* 06ABF8 7F0360C8 26520002 */ addiu $s2, $s2, 2 +/* 06ABFC 7F0360CC 1000FD2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC00 7F0360D0 26310002 */ addiu $s1, $s1, 2 +action2C_Jog_To_Character_Position_RVL_On_Arrival_3: +/* 06AC04 7F0360D4 02E02025 */ move $a0, $s7 +/* 06AC08 7F0360D8 92250001 */ lbu $a1, 1($s1) +/* 06AC0C 7F0360DC 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC10 7F0360E0 24060001 */ li $a2, 1 +/* 06AC14 7F0360E4 10400007 */ beqz $v0, .L7F036104 +/* 06AC18 7F0360E8 02C02025 */ move $a0, $s6 +/* 06AC1C 7F0360EC 02402825 */ move $a1, $s2 +/* 06AC20 7F0360F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC24 7F0360F4 92260002 */ lbu $a2, 2($s1) +/* 06AC28 7F0360F8 00409025 */ move $s2, $v0 +/* 06AC2C 7F0360FC 1000FD23 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC30 7F036100 02C28821 */ addu $s1, $s6, $v0 +.L7F036104: +/* 06AC34 7F036104 26520003 */ addiu $s2, $s2, 3 +/* 06AC38 7F036108 1000FD20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC3C 7F03610C 26310003 */ addiu $s1, $s1, 3 +action2D_Walk_To_Character_Position_RVL_On_Arrival_3: +/* 06AC40 7F036110 02E02025 */ move $a0, $s7 +/* 06AC44 7F036114 92250001 */ lbu $a1, 1($s1) +/* 06AC48 7F036118 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC4C 7F03611C 00003025 */ move $a2, $zero +/* 06AC50 7F036120 10400007 */ beqz $v0, .L7F036140 +/* 06AC54 7F036124 02C02025 */ move $a0, $s6 +/* 06AC58 7F036128 02402825 */ move $a1, $s2 +/* 06AC5C 7F03612C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC60 7F036130 92260002 */ lbu $a2, 2($s1) +/* 06AC64 7F036134 00409025 */ move $s2, $v0 +/* 06AC68 7F036138 1000FD14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC6C 7F03613C 02C28821 */ addu $s1, $s6, $v0 +.L7F036140: +/* 06AC70 7F036140 26520003 */ addiu $s2, $s2, 3 +/* 06AC74 7F036144 1000FD11 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC78 7F036148 26310003 */ addiu $s1, $s1, 3 +action2E_Run_To_Character_Position_RVL_On_Arrival_3: +/* 06AC7C 7F03614C 02E02025 */ move $a0, $s7 +/* 06AC80 7F036150 92250001 */ lbu $a1, 1($s1) +/* 06AC84 7F036154 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC88 7F036158 24060002 */ li $a2, 2 +/* 06AC8C 7F03615C 10400007 */ beqz $v0, .L7F03617C +/* 06AC90 7F036160 02C02025 */ move $a0, $s6 +/* 06AC94 7F036164 02402825 */ move $a1, $s2 +/* 06AC98 7F036168 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC9C 7F03616C 92260002 */ lbu $a2, 2($s1) +/* 06ACA0 7F036170 00409025 */ move $s2, $v0 +/* 06ACA4 7F036174 1000FD05 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACA8 7F036178 02C28821 */ addu $s1, $s6, $v0 +.L7F03617C: +/* 06ACAC 7F03617C 26520003 */ addiu $s2, $s2, 3 +/* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 +action33_Seed_Random_Byte_1: +/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACBC 7F03618C 00000000 */ nop +/* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) +/* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 +/* 06ACC8 7F036198 1000FCFC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACCC 7F03619C 26310001 */ addiu $s1, $s1, 1 +action34_If_Seeded_Byte_LTV_Go_Into_RVL_3: +/* 06ACD0 7F0361A0 92F8010F */ lbu $t8, 0x10f($s7) +/* 06ACD4 7F0361A4 92290001 */ lbu $t1, 1($s1) +/* 06ACD8 7F0361A8 02C02025 */ move $a0, $s6 +/* 06ACDC 7F0361AC 02402825 */ move $a1, $s2 +/* 06ACE0 7F0361B0 0309082A */ slt $at, $t8, $t1 +/* 06ACE4 7F0361B4 50200007 */ beql $at, $zero, .L7F0361D4 +/* 06ACE8 7F0361B8 26520003 */ addiu $s2, $s2, 3 +/* 06ACEC 7F0361BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ACF0 7F0361C0 92260002 */ lbu $a2, 2($s1) +/* 06ACF4 7F0361C4 00409025 */ move $s2, $v0 +/* 06ACF8 7F0361C8 1000FCF0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACFC 7F0361CC 02C28821 */ addu $s1, $s6, $v0 +/* 06AD00 7F0361D0 26520003 */ addiu $s2, $s2, 3 +.L7F0361D4: +/* 06AD04 7F0361D4 1000FCED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD08 7F0361D8 26310003 */ addiu $s1, $s1, 3 +action35_If_Seeded_Byte_GTV_Go_Into_RVL_3: +/* 06AD0C 7F0361DC 922A0001 */ lbu $t2, 1($s1) +/* 06AD10 7F0361E0 92EB010F */ lbu $t3, 0x10f($s7) +/* 06AD14 7F0361E4 02C02025 */ move $a0, $s6 +/* 06AD18 7F0361E8 02402825 */ move $a1, $s2 +/* 06AD1C 7F0361EC 014B082A */ slt $at, $t2, $t3 +/* 06AD20 7F0361F0 50200007 */ beql $at, $zero, .L7F036210 +/* 06AD24 7F0361F4 26520003 */ addiu $s2, $s2, 3 +/* 06AD28 7F0361F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AD2C 7F0361FC 92260002 */ lbu $a2, 2($s1) +/* 06AD30 7F036200 00409025 */ move $s2, $v0 +/* 06AD34 7F036204 1000FCE1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD38 7F036208 02C28821 */ addu $s1, $s6, $v0 +/* 06AD3C 7F03620C 26520003 */ addiu $s2, $s2, 3 +.L7F036210: +/* 06AD40 7F036210 1000FCDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD44 7F036214 26310003 */ addiu $s1, $s1, 3 +action1C_Guard_Jogs_To_Preset_3: +/* 06AD48 7F036218 922C0001 */ lbu $t4, 1($s1) +/* 06AD4C 7F03621C 922D0002 */ lbu $t5, 2($s1) +/* 06AD50 7F036220 02E02025 */ move $a0, $s7 +/* 06AD54 7F036224 000CCA00 */ sll $t9, $t4, 8 +/* 06AD58 7F036228 032D1025 */ or $v0, $t9, $t5 +/* 06AD5C 7F03622C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AD60 7F036230 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD64 7F036234 24060001 */ li $a2, 1 +/* 06AD68 7F036238 26520003 */ addiu $s2, $s2, 3 +/* 06AD6C 7F03623C 1000FCD3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD70 7F036240 26310003 */ addiu $s1, $s1, 3 +action1D_Guard_Jogs_To_Predefined_Preset_2328_1: +/* 06AD74 7F036244 02E02025 */ move $a0, $s7 +/* 06AD78 7F036248 86E50114 */ lh $a1, 0x114($s7) +/* 06AD7C 7F03624C 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD80 7F036250 24060001 */ li $a2, 1 +/* 06AD84 7F036254 26520001 */ addiu $s2, $s2, 1 +/* 06AD88 7F036258 1000FCCC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD8C 7F03625C 26310001 */ addiu $s1, $s1, 1 +action1E_Guard_Walks_To_Preset_3: +/* 06AD90 7F036260 922F0001 */ lbu $t7, 1($s1) +/* 06AD94 7F036264 92290002 */ lbu $t1, 2($s1) +/* 06AD98 7F036268 02E02025 */ move $a0, $s7 +/* 06AD9C 7F03626C 000FC200 */ sll $t8, $t7, 8 +/* 06ADA0 7F036270 03091025 */ or $v0, $t8, $t1 +/* 06ADA4 7F036274 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADA8 7F036278 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADAC 7F03627C 00003025 */ move $a2, $zero +/* 06ADB0 7F036280 26520003 */ addiu $s2, $s2, 3 +/* 06ADB4 7F036284 1000FCC1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADB8 7F036288 26310003 */ addiu $s1, $s1, 3 +action1F_Guard_Runs__To_Preset_3: +/* 06ADBC 7F03628C 922B0001 */ lbu $t3, 1($s1) +/* 06ADC0 7F036290 92390002 */ lbu $t9, 2($s1) +/* 06ADC4 7F036294 02E02025 */ move $a0, $s7 +/* 06ADC8 7F036298 000B6200 */ sll $t4, $t3, 8 +/* 06ADCC 7F03629C 01991025 */ or $v0, $t4, $t9 +/* 06ADD0 7F0362A0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADD4 7F0362A4 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADD8 7F0362A8 24060002 */ li $a2, 2 +/* 06ADDC 7F0362AC 26520003 */ addiu $s2, $s2, 3 +/* 06ADE0 7F0362B0 1000FCB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADE4 7F0362B4 26310003 */ addiu $s1, $s1, 3 +action20_Activate_Path_2: +/* 06ADE8 7F0362B8 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06ADEC 7F0362BC 92240001 */ lbu $a0, 1($s1) +/* 06ADF0 7F0362C0 02E02025 */ move $a0, $s7 +/* 06ADF4 7F0362C4 0FC0AB55 */ jal if_actor_able_set_on_path +/* 06ADF8 7F0362C8 00402825 */ move $a1, $v0 +/* 06ADFC 7F0362CC 26520002 */ addiu $s2, $s2, 2 +/* 06AE00 7F0362D0 1000FCAE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE04 7F0362D4 26310002 */ addiu $s1, $s1, 2 +action36_If_Alarm_Activated_RVL_Plus_Stack_2: +/* 06AE08 7F0362D8 0FC0CDD8 */ jal alarm_timer_related +/* 06AE0C 7F0362DC 02E02025 */ move $a0, $s7 +/* 06AE10 7F0362E0 10400007 */ beqz $v0, .L7F036300 +/* 06AE14 7F0362E4 02C02025 */ move $a0, $s6 +/* 06AE18 7F0362E8 02402825 */ move $a1, $s2 +/* 06AE1C 7F0362EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE20 7F0362F0 92260001 */ lbu $a2, 1($s1) +/* 06AE24 7F0362F4 00409025 */ move $s2, $v0 +/* 06AE28 7F0362F8 1000FCA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE2C 7F0362FC 02C28821 */ addu $s1, $s6, $v0 +.L7F036300: +/* 06AE30 7F036300 26520002 */ addiu $s2, $s2, 2 +/* 06AE34 7F036304 1000FCA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE38 7F036308 26310002 */ addiu $s1, $s1, 2 +action37_If_Alarm_Activated_RVL_2: +/* 06AE3C 7F03630C 0FC15794 */ jal is_alarm_on +/* 06AE40 7F036310 00000000 */ nop +/* 06AE44 7F036314 10400007 */ beqz $v0, .L7F036334 +/* 06AE48 7F036318 02C02025 */ move $a0, $s6 +/* 06AE4C 7F03631C 02402825 */ move $a1, $s2 +/* 06AE50 7F036320 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE54 7F036324 92260001 */ lbu $a2, 1($s1) +/* 06AE58 7F036328 00409025 */ move $s2, $v0 +/* 06AE5C 7F03632C 1000FC97 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE60 7F036330 02C28821 */ addu $s1, $s6, $v0 +.L7F036334: +/* 06AE64 7F036334 26520002 */ addiu $s2, $s2, 2 +/* 06AE68 7F036338 1000FC94 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE6C 7F03633C 26310002 */ addiu $s1, $s1, 2 +action38_If_Toxic_Gas_Released_RVL_2: +/* 06AE70 7F036340 0FC157CE */ jal check_if_toxic_gas_activated +/* 06AE74 7F036344 00000000 */ nop +/* 06AE78 7F036348 10400007 */ beqz $v0, .L7F036368 +/* 06AE7C 7F03634C 02C02025 */ move $a0, $s6 +/* 06AE80 7F036350 02402825 */ move $a1, $s2 +/* 06AE84 7F036354 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE88 7F036358 92260001 */ lbu $a2, 1($s1) +/* 06AE8C 7F03635C 00409025 */ move $s2, $v0 +/* 06AE90 7F036360 1000FC8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE94 7F036364 02C28821 */ addu $s1, $s6, $v0 +.L7F036368: +/* 06AE98 7F036368 26520002 */ addiu $s2, $s2, 2 +/* 06AE9C 7F03636C 1000FC87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEA0 7F036370 26310002 */ addiu $s1, $s1, 2 +action39_If_Guard_Heard_Gunfire_RVL_2: +/* 06AEA4 7F036374 0FC0CCD5 */ jal check_if_actor_02_flag_set +/* 06AEA8 7F036378 02E02025 */ move $a0, $s7 +/* 06AEAC 7F03637C 10400007 */ beqz $v0, .L7F03639C +/* 06AEB0 7F036380 02C02025 */ move $a0, $s6 +/* 06AEB4 7F036384 02402825 */ move $a1, $s2 +/* 06AEB8 7F036388 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEBC 7F03638C 92260001 */ lbu $a2, 1($s1) +/* 06AEC0 7F036390 00409025 */ move $s2, $v0 +/* 06AEC4 7F036394 1000FC7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEC8 7F036398 02C28821 */ addu $s1, $s6, $v0 +.L7F03639C: +/* 06AECC 7F03639C 26520002 */ addiu $s2, $s2, 2 +/* 06AED0 7F0363A0 1000FC7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AED4 7F0363A4 26310002 */ addiu $s1, $s1, 2 +action3A_If_Bond_Shoots_Another_Guard_RVL_2: +/* 06AED8 7F0363A8 0FC0CD6D */ jal check_if_actor_FA_target_set +/* 06AEDC 7F0363AC 02E02025 */ move $a0, $s7 +/* 06AEE0 7F0363B0 10400007 */ beqz $v0, .L7F0363D0 +/* 06AEE4 7F0363B4 02C02025 */ move $a0, $s6 +/* 06AEE8 7F0363B8 02402825 */ move $a1, $s2 +/* 06AEEC 7F0363BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEF0 7F0363C0 92260001 */ lbu $a2, 1($s1) +/* 06AEF4 7F0363C4 00409025 */ move $s2, $v0 +/* 06AEF8 7F0363C8 1000FC70 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEFC 7F0363CC 02C28821 */ addu $s1, $s6, $v0 +.L7F0363D0: +/* 06AF00 7F0363D0 26520002 */ addiu $s2, $s2, 2 +/* 06AF04 7F0363D4 1000FC6D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF08 7F0363D8 26310002 */ addiu $s1, $s1, 2 +action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2: +/* 06AF0C 7F0363DC 0FC0CD71 */ jal check_if_actor_FB_target_set +/* 06AF10 7F0363E0 02E02025 */ move $a0, $s7 +/* 06AF14 7F0363E4 10400007 */ beqz $v0, .L7F036404 +/* 06AF18 7F0363E8 02C02025 */ move $a0, $s6 +/* 06AF1C 7F0363EC 02402825 */ move $a1, $s2 +/* 06AF20 7F0363F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF24 7F0363F4 92260001 */ lbu $a2, 1($s1) +/* 06AF28 7F0363F8 00409025 */ move $s2, $v0 +/* 06AF2C 7F0363FC 1000FC63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF30 7F036400 02C28821 */ addu $s1, $s6, $v0 +.L7F036404: +/* 06AF34 7F036404 26520002 */ addiu $s2, $s2, 2 +/* 06AF38 7F036408 1000FC60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF3C 7F03640C 26310002 */ addiu $s1, $s1, 2 +action3C_If_Guard_In_Firing_Range_RVL_2: +/* 06AF40 7F036410 0FC0A52F */ jal sub_GAME_7F0294BC +/* 06AF44 7F036414 02E02025 */ move $a0, $s7 +/* 06AF48 7F036418 10400007 */ beqz $v0, .L7F036438 +/* 06AF4C 7F03641C 02C02025 */ move $a0, $s6 +/* 06AF50 7F036420 02402825 */ move $a1, $s2 +/* 06AF54 7F036424 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF58 7F036428 92260001 */ lbu $a2, 1($s1) +/* 06AF5C 7F03642C 00409025 */ move $s2, $v0 +/* 06AF60 7F036430 1000FC56 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF64 7F036434 02C28821 */ addu $s1, $s6, $v0 +.L7F036438: +/* 06AF68 7F036438 26520002 */ addiu $s2, $s2, 2 +/* 06AF6C 7F03643C 1000FC53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF70 7F036440 26310002 */ addiu $s1, $s1, 2 +action3D___Unused___Unknown___2: +/* 06AF74 7F036444 0FC0CF71 */ jal sub_GAME_7F033DC4 +/* 06AF78 7F036448 02E02025 */ move $a0, $s7 +/* 06AF7C 7F03644C 10400007 */ beqz $v0, .L7F03646C +/* 06AF80 7F036450 02C02025 */ move $a0, $s6 +/* 06AF84 7F036454 02402825 */ move $a1, $s2 +/* 06AF88 7F036458 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF8C 7F03645C 92260001 */ lbu $a2, 1($s1) +/* 06AF90 7F036460 00409025 */ move $s2, $v0 +/* 06AF94 7F036464 1000FC49 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF98 7F036468 02C28821 */ addu $s1, $s6, $v0 +.L7F03646C: +/* 06AF9C 7F03646C 26520002 */ addiu $s2, $s2, 2 +/* 06AFA0 7F036470 1000FC46 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFA4 7F036474 26310002 */ addiu $s1, $s1, 2 +action3E_If_Shot_Current_Guard_RVL_2: +/* 06AFA8 7F036478 0FC0CADA */ jal sub_GAME_7F032B68 +/* 06AFAC 7F03647C 02E02025 */ move $a0, $s7 +/* 06AFB0 7F036480 10400007 */ beqz $v0, .L7F0364A0 +/* 06AFB4 7F036484 02C02025 */ move $a0, $s6 +/* 06AFB8 7F036488 02402825 */ move $a1, $s2 +/* 06AFBC 7F03648C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFC0 7F036490 92260001 */ lbu $a2, 1($s1) +/* 06AFC4 7F036494 00409025 */ move $s2, $v0 +/* 06AFC8 7F036498 1000FC3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFCC 7F03649C 02C28821 */ addu $s1, $s6, $v0 +.L7F0364A0: +/* 06AFD0 7F0364A0 26520002 */ addiu $s2, $s2, 2 +/* 06AFD4 7F0364A4 1000FC39 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFD8 7F0364A8 26310002 */ addiu $s1, $s1, 2 +action3F_If_Heard_Bond_RVL_2: +/* 06AFDC 7F0364AC 0FC0CAE8 */ jal sub_GAME_7F032BA0 +/* 06AFE0 7F0364B0 02E02025 */ move $a0, $s7 +/* 06AFE4 7F0364B4 10400007 */ beqz $v0, .L7F0364D4 +/* 06AFE8 7F0364B8 02C02025 */ move $a0, $s6 +/* 06AFEC 7F0364BC 02402825 */ move $a1, $s2 +/* 06AFF0 7F0364C0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFF4 7F0364C4 92260001 */ lbu $a2, 1($s1) +/* 06AFF8 7F0364C8 00409025 */ move $s2, $v0 +/* 06AFFC 7F0364CC 1000FC2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B000 7F0364D0 02C28821 */ addu $s1, $s6, $v0 +.L7F0364D4: +/* 06B004 7F0364D4 26520002 */ addiu $s2, $s2, 2 +/* 06B008 7F0364D8 1000FC2C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B00C 7F0364DC 26310002 */ addiu $s1, $s1, 2 +action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3: +/* 06B010 7F0364E0 02E02025 */ move $a0, $s7 +/* 06B014 7F0364E4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B018 7F0364E8 92250001 */ lbu $a1, 1($s1) +/* 06B01C 7F0364EC 50400012 */ beql $v0, $zero, .L7F036538 +/* 06B020 7F0364F0 26520003 */ addiu $s2, $s2, 3 +/* 06B024 7F0364F4 8C4E0018 */ lw $t6, 0x18($v0) +/* 06B028 7F0364F8 51C0000F */ beql $t6, $zero, .L7F036538 +/* 06B02C 7F0364FC 26520003 */ addiu $s2, $s2, 3 +/* 06B030 7F036500 8C420018 */ lw $v0, 0x18($v0) +/* 06B034 7F036504 02E02025 */ move $a0, $s7 +/* 06B038 7F036508 24450008 */ addiu $a1, $v0, 8 +/* 06B03C 7F03650C 0FC0A574 */ jal check_if_position_in_same_room +/* 06B040 7F036510 8C460014 */ lw $a2, 0x14($v0) +/* 06B044 7F036514 10400007 */ beqz $v0, .L7F036534 +/* 06B048 7F036518 02C02025 */ move $a0, $s6 +/* 06B04C 7F03651C 02402825 */ move $a1, $s2 +/* 06B050 7F036520 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B054 7F036524 92260002 */ lbu $a2, 2($s1) +/* 06B058 7F036528 00409025 */ move $s2, $v0 +/* 06B05C 7F03652C 1000FC17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B060 7F036530 02C28821 */ addu $s1, $s6, $v0 +.L7F036534: +/* 06B064 7F036534 26520003 */ addiu $s2, $s2, 3 +.L7F036538: +/* 06B068 7F036538 1000FC14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B06C 7F03653C 26310003 */ addiu $s1, $s1, 3 +action41_If_Guard_Has_Been_On_Screen_RVL_2: +/* 06B070 7F036540 8EEF0014 */ lw $t7, 0x14($s7) +/* 06B074 7F036544 02C02025 */ move $a0, $s6 +/* 06B078 7F036548 02402825 */ move $a1, $s2 +/* 06B07C 7F03654C 31F80008 */ andi $t8, $t7, 8 +/* 06B080 7F036550 57000007 */ bnezl $t8, .L7F036570 +/* 06B084 7F036554 26520002 */ addiu $s2, $s2, 2 +/* 06B088 7F036558 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B08C 7F03655C 92260001 */ lbu $a2, 1($s1) +/* 06B090 7F036560 00409025 */ move $s2, $v0 +/* 06B094 7F036564 1000FC09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B098 7F036568 02C28821 */ addu $s1, $s6, $v0 +/* 06B09C 7F03656C 26520002 */ addiu $s2, $s2, 2 +.L7F036570: +/* 06B0A0 7F036570 1000FC06 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0A4 7F036574 26310002 */ addiu $s1, $s1, 2 +action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2: +/* 06B0A8 7F036578 8EE90018 */ lw $t1, 0x18($s7) +/* 06B0AC 7F03657C 02C02025 */ move $a0, $s6 +/* 06B0B0 7F036580 02402825 */ move $a1, $s2 +/* 06B0B4 7F036584 912A0001 */ lbu $t2, 1($t1) +/* 06B0B8 7F036588 314B0002 */ andi $t3, $t2, 2 +/* 06B0BC 7F03658C 51600007 */ beql $t3, $zero, .L7F0365AC +/* 06B0C0 7F036590 26520002 */ addiu $s2, $s2, 2 +/* 06B0C4 7F036594 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B0C8 7F036598 92260001 */ lbu $a2, 1($s1) +/* 06B0CC 7F03659C 00409025 */ move $s2, $v0 +/* 06B0D0 7F0365A0 1000FBFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0D4 7F0365A4 02C28821 */ addu $s1, $s6, $v0 +/* 06B0D8 7F0365A8 26520002 */ addiu $s2, $s2, 2 +.L7F0365AC: +/* 06B0DC 7F0365AC 1000FBF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0E0 7F0365B0 26310002 */ addiu $s1, $s1, 2 +action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2: +/* 06B0E4 7F0365B4 8EEC0018 */ lw $t4, 0x18($s7) +/* 06B0E8 7F0365B8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06B0EC 7F0365BC 8D840014 */ lw $a0, 0x14($t4) +/* 06B0F0 7F0365C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06B0F4 7F0365C4 00402025 */ move $a0, $v0 +/* 06B0F8 7F0365C8 10400007 */ beqz $v0, .L7F0365E8 +/* 06B0FC 7F0365CC 02C02025 */ move $a0, $s6 +/* 06B100 7F0365D0 02402825 */ move $a1, $s2 +/* 06B104 7F0365D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B108 7F0365D8 92260001 */ lbu $a2, 1($s1) +/* 06B10C 7F0365DC 00409025 */ move $s2, $v0 +/* 06B110 7F0365E0 1000FBEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B114 7F0365E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0365E8: +/* 06B118 7F0365E8 26520002 */ addiu $s2, $s2, 2 +/* 06B11C 7F0365EC 1000FBE7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B120 7F0365F0 26310002 */ addiu $s1, $s1, 2 +action44_If_Room_Containing_Preset_Is_Loaded_RVL_4: +/* 06B124 7F0365F4 92390001 */ lbu $t9, 1($s1) +/* 06B128 7F0365F8 922E0002 */ lbu $t6, 2($s1) +/* 06B12C 7F0365FC 02E02025 */ move $a0, $s7 +/* 06B130 7F036600 00196A00 */ sll $t5, $t9, 8 +/* 06B134 7F036604 01AE1025 */ or $v0, $t5, $t6 +/* 06B138 7F036608 0FC0CBBF */ jal check_if_room_for_preset_loaded +/* 06B13C 7F03660C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B140 7F036610 10400007 */ beqz $v0, .L7F036630 +/* 06B144 7F036614 02C02025 */ move $a0, $s6 +/* 06B148 7F036618 02402825 */ move $a1, $s2 +/* 06B14C 7F03661C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B150 7F036620 92260003 */ lbu $a2, 3($s1) +/* 06B154 7F036624 00409025 */ move $s2, $v0 +/* 06B158 7F036628 1000FBD8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B15C 7F03662C 02C28821 */ addu $s1, $s6, $v0 +.L7F036630: +/* 06B160 7F036630 26520004 */ addiu $s2, $s2, 4 +/* 06B164 7F036634 1000FBD5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B168 7F036638 26310004 */ addiu $s1, $s1, 4 +action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2: +/* 06B16C 7F03663C 0FC0CCFE */ jal sub_GAME_7F0333F8 +/* 06B170 7F036640 02E02025 */ move $a0, $s7 +/* 06B174 7F036644 10400007 */ beqz $v0, .L7F036664 +/* 06B178 7F036648 02C02025 */ move $a0, $s6 +/* 06B17C 7F03664C 02402825 */ move $a1, $s2 +/* 06B180 7F036650 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B184 7F036654 92260001 */ lbu $a2, 1($s1) +/* 06B188 7F036658 00409025 */ move $s2, $v0 +/* 06B18C 7F03665C 1000FBCB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B190 7F036660 02C28821 */ addu $s1, $s6, $v0 +.L7F036664: +/* 06B194 7F036664 26520002 */ addiu $s2, $s2, 2 +/* 06B198 7F036668 1000FBC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B19C 7F03666C 26310002 */ addiu $s1, $s1, 2 +action46_If_Fired_A_Shot_RVL_2: +/* 06B1A0 7F036670 0FC0CD24 */ jal check_if_actor_invisible +/* 06B1A4 7F036674 02E02025 */ move $a0, $s7 +/* 06B1A8 7F036678 10400007 */ beqz $v0, .L7F036698 +/* 06B1AC 7F03667C 02C02025 */ move $a0, $s6 +/* 06B1B0 7F036680 02402825 */ move $a1, $s2 +/* 06B1B4 7F036684 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B1B8 7F036688 92260001 */ lbu $a2, 1($s1) +/* 06B1BC 7F03668C 00409025 */ move $s2, $v0 +/* 06B1C0 7F036690 1000FBBE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1C4 7F036694 02C28821 */ addu $s1, $s6, $v0 +.L7F036698: +/* 06B1C8 7F036698 26520002 */ addiu $s2, $s2, 2 +/* 06B1CC 7F03669C 1000FBBB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1D0 7F0366A0 26310002 */ addiu $s1, $s1, 2 +action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3: +/* 06B1D4 7F0366A4 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B1D8 7F0366A8 02E02025 */ move $a0, $s7 +/* 06B1DC 7F0366AC 92380001 */ lbu $t8, 1($s1) +/* 06B1E0 7F0366B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B1E4 7F0366B4 02C02025 */ move $a0, $s6 +/* 06B1E8 7F0366B8 44984000 */ mtc1 $t8, $f8 +/* 06B1EC 7F0366BC 02402825 */ move $a1, $s2 +/* 06B1F0 7F0366C0 07010004 */ bgez $t8, .L7F0366D4 +/* 06B1F4 7F0366C4 468042A0 */ cvt.s.w $f10, $f8 +/* 06B1F8 7F0366C8 44818000 */ mtc1 $at, $f16 +/* 06B1FC 7F0366CC 00000000 */ nop +/* 06B200 7F0366D0 46105280 */ add.s $f10, $f10, $f16 +.L7F0366D4: +/* 06B204 7F0366D4 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B208 7F0366D8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B20C 7F0366DC 44812000 */ mtc1 $at, $f4 +/* 06B210 7F0366E0 00000000 */ nop +/* 06B214 7F0366E4 46049182 */ mul.s $f6, $f18, $f4 +/* 06B218 7F0366E8 4606003C */ c.lt.s $f0, $f6 +/* 06B21C 7F0366EC 00000000 */ nop +/* 06B220 7F0366F0 45020007 */ bc1fl .L7F036710 +/* 06B224 7F0366F4 26520003 */ addiu $s2, $s2, 3 +/* 06B228 7F0366F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B22C 7F0366FC 92260002 */ lbu $a2, 2($s1) +/* 06B230 7F036700 00409025 */ move $s2, $v0 +/* 06B234 7F036704 1000FBA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B238 7F036708 02C28821 */ addu $s1, $s6, $v0 +/* 06B23C 7F03670C 26520003 */ addiu $s2, $s2, 3 +.L7F036710: +/* 06B240 7F036710 1000FB9E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B244 7F036714 26310003 */ addiu $s1, $s1, 3 +action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3: +/* 06B248 7F036718 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B24C 7F03671C 02E02025 */ move $a0, $s7 +/* 06B250 7F036720 92290001 */ lbu $t1, 1($s1) +/* 06B254 7F036724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B258 7F036728 02C02025 */ move $a0, $s6 +/* 06B25C 7F03672C 44894000 */ mtc1 $t1, $f8 +/* 06B260 7F036730 02402825 */ move $a1, $s2 +/* 06B264 7F036734 05210004 */ bgez $t1, .L7F036748 +/* 06B268 7F036738 46804420 */ cvt.s.w $f16, $f8 +/* 06B26C 7F03673C 44815000 */ mtc1 $at, $f10 +/* 06B270 7F036740 00000000 */ nop +/* 06B274 7F036744 460A8400 */ add.s $f16, $f16, $f10 +.L7F036748: +/* 06B278 7F036748 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B27C 7F03674C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B280 7F036750 44812000 */ mtc1 $at, $f4 +/* 06B284 7F036754 00000000 */ nop +/* 06B288 7F036758 46049182 */ mul.s $f6, $f18, $f4 +/* 06B28C 7F03675C 4600303C */ c.lt.s $f6, $f0 +/* 06B290 7F036760 00000000 */ nop +/* 06B294 7F036764 45020007 */ bc1fl .L7F036784 +/* 06B298 7F036768 26520003 */ addiu $s2, $s2, 3 +/* 06B29C 7F03676C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B2A0 7F036770 92260002 */ lbu $a2, 2($s1) +/* 06B2A4 7F036774 00409025 */ move $s2, $v0 +/* 06B2A8 7F036778 1000FB84 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2AC 7F03677C 02C28821 */ addu $s1, $s6, $v0 +/* 06B2B0 7F036780 26520003 */ addiu $s2, $s2, 3 +.L7F036784: +/* 06B2B4 7F036784 1000FB81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2B8 7F036788 26310003 */ addiu $s1, $s1, 3 +action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3: +/* 06B2BC 7F03678C 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B2C0 7F036790 02E02025 */ move $a0, $s7 +/* 06B2C4 7F036794 922A0001 */ lbu $t2, 1($s1) +/* 06B2C8 7F036798 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B2CC 7F03679C 02C02025 */ move $a0, $s6 +/* 06B2D0 7F0367A0 448A4000 */ mtc1 $t2, $f8 +/* 06B2D4 7F0367A4 02402825 */ move $a1, $s2 +/* 06B2D8 7F0367A8 05410004 */ bgez $t2, .L7F0367BC +/* 06B2DC 7F0367AC 468042A0 */ cvt.s.w $f10, $f8 +/* 06B2E0 7F0367B0 44818000 */ mtc1 $at, $f16 +/* 06B2E4 7F0367B4 00000000 */ nop +/* 06B2E8 7F0367B8 46105280 */ add.s $f10, $f10, $f16 +.L7F0367BC: +/* 06B2EC 7F0367BC 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B2F0 7F0367C0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B2F4 7F0367C4 44812000 */ mtc1 $at, $f4 +/* 06B2F8 7F0367C8 00000000 */ nop +/* 06B2FC 7F0367CC 46049182 */ mul.s $f6, $f18, $f4 +/* 06B300 7F0367D0 4606003C */ c.lt.s $f0, $f6 +/* 06B304 7F0367D4 00000000 */ nop +/* 06B308 7F0367D8 45020007 */ bc1fl .L7F0367F8 +/* 06B30C 7F0367DC 26520003 */ addiu $s2, $s2, 3 +/* 06B310 7F0367E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B314 7F0367E4 92260002 */ lbu $a2, 2($s1) +/* 06B318 7F0367E8 00409025 */ move $s2, $v0 +/* 06B31C 7F0367EC 1000FB67 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B320 7F0367F0 02C28821 */ addu $s1, $s6, $v0 +/* 06B324 7F0367F4 26520003 */ addiu $s2, $s2, 3 +.L7F0367F8: +/* 06B328 7F0367F8 1000FB64 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B32C 7F0367FC 26310003 */ addiu $s1, $s1, 3 +action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3: +/* 06B330 7F036800 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B334 7F036804 02E02025 */ move $a0, $s7 +/* 06B338 7F036808 922B0001 */ lbu $t3, 1($s1) +/* 06B33C 7F03680C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B340 7F036810 02C02025 */ move $a0, $s6 +/* 06B344 7F036814 448B4000 */ mtc1 $t3, $f8 +/* 06B348 7F036818 02402825 */ move $a1, $s2 +/* 06B34C 7F03681C 05610004 */ bgez $t3, .L7F036830 +/* 06B350 7F036820 46804420 */ cvt.s.w $f16, $f8 +/* 06B354 7F036824 44815000 */ mtc1 $at, $f10 +/* 06B358 7F036828 00000000 */ nop +/* 06B35C 7F03682C 460A8400 */ add.s $f16, $f16, $f10 +.L7F036830: +/* 06B360 7F036830 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B364 7F036834 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B368 7F036838 44812000 */ mtc1 $at, $f4 +/* 06B36C 7F03683C 00000000 */ nop +/* 06B370 7F036840 46049182 */ mul.s $f6, $f18, $f4 +/* 06B374 7F036844 4600303C */ c.lt.s $f6, $f0 +/* 06B378 7F036848 00000000 */ nop +/* 06B37C 7F03684C 45020007 */ bc1fl .L7F03686C +/* 06B380 7F036850 26520003 */ addiu $s2, $s2, 3 +/* 06B384 7F036854 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B388 7F036858 92260002 */ lbu $a2, 2($s1) +/* 06B38C 7F03685C 00409025 */ move $s2, $v0 +/* 06B390 7F036860 1000FB4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B394 7F036864 02C28821 */ addu $s1, $s6, $v0 +/* 06B398 7F036868 26520003 */ addiu $s2, $s2, 3 +.L7F03686C: +/* 06B39C 7F03686C 1000FB47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3A0 7F036870 26310003 */ addiu $s1, $s1, 3 +action4B_RVL_If_In_Proximity_Of_Bond_4: +/* 06B3A4 7F036874 922C0001 */ lbu $t4, 1($s1) +/* 06B3A8 7F036878 922D0002 */ lbu $t5, 2($s1) +/* 06B3AC 7F03687C 02E02025 */ move $a0, $s7 +/* 06B3B0 7F036880 000CCA00 */ sll $t9, $t4, 8 +/* 06B3B4 7F036884 032D7025 */ or $t6, $t9, $t5 +/* 06B3B8 7F036888 448E4000 */ mtc1 $t6, $f8 +/* 06B3BC 7F03688C 00000000 */ nop +/* 06B3C0 7F036890 468042A0 */ cvt.s.w $f10, $f8 +/* 06B3C4 7F036894 46185402 */ mul.s $f16, $f10, $f24 +/* 06B3C8 7F036898 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B3CC 7F03689C E7B005FC */ swc1 $f16, 0x5fc($sp) +/* 06B3D0 7F0368A0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 06B3D4 7F0368A4 02C02025 */ move $a0, $s6 +/* 06B3D8 7F0368A8 02402825 */ move $a1, $s2 +/* 06B3DC 7F0368AC 4612003C */ c.lt.s $f0, $f18 +/* 06B3E0 7F0368B0 00000000 */ nop +/* 06B3E4 7F0368B4 45020007 */ bc1fl .L7F0368D4 +/* 06B3E8 7F0368B8 26520004 */ addiu $s2, $s2, 4 +/* 06B3EC 7F0368BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B3F0 7F0368C0 92260003 */ lbu $a2, 3($s1) +/* 06B3F4 7F0368C4 00409025 */ move $s2, $v0 +/* 06B3F8 7F0368C8 1000FB30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3FC 7F0368CC 02C28821 */ addu $s1, $s6, $v0 +/* 06B400 7F0368D0 26520004 */ addiu $s2, $s2, 4 +.L7F0368D4: +/* 06B404 7F0368D4 1000FB2D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B408 7F0368D8 26310004 */ addiu $s1, $s1, 4 +action4C_RVL_If_Not_In_Proximity_Of_Bond_4: +/* 06B40C 7F0368DC 922F0001 */ lbu $t7, 1($s1) +/* 06B410 7F0368E0 92290002 */ lbu $t1, 2($s1) +/* 06B414 7F0368E4 02E02025 */ move $a0, $s7 +/* 06B418 7F0368E8 000FC200 */ sll $t8, $t7, 8 +/* 06B41C 7F0368EC 03095025 */ or $t2, $t8, $t1 +/* 06B420 7F0368F0 448A2000 */ mtc1 $t2, $f4 +/* 06B424 7F0368F4 00000000 */ nop +/* 06B428 7F0368F8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B42C 7F0368FC 46183202 */ mul.s $f8, $f6, $f24 +/* 06B430 7F036900 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B434 7F036904 E7A805F4 */ swc1 $f8, 0x5f4($sp) +/* 06B438 7F036908 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 06B43C 7F03690C 02C02025 */ move $a0, $s6 +/* 06B440 7F036910 02402825 */ move $a1, $s2 +/* 06B444 7F036914 4600503C */ c.lt.s $f10, $f0 +/* 06B448 7F036918 00000000 */ nop +/* 06B44C 7F03691C 45020007 */ bc1fl .L7F03693C +/* 06B450 7F036920 26520004 */ addiu $s2, $s2, 4 +/* 06B454 7F036924 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B458 7F036928 92260003 */ lbu $a2, 3($s1) +/* 06B45C 7F03692C 00409025 */ move $s2, $v0 +/* 06B460 7F036930 1000FB16 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B464 7F036934 02C28821 */ addu $s1, $s6, $v0 +/* 06B468 7F036938 26520004 */ addiu $s2, $s2, 4 +.L7F03693C: +/* 06B46C 7F03693C 1000FB13 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B470 7F036940 26310004 */ addiu $s1, $s1, 4 +action4D_When_Guard_In_Proximity_Of_Preset_RVL_7: +/* 06B474 7F036944 02E02025 */ move $a0, $s7 +/* 06B478 7F036948 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B47C 7F03694C 92250001 */ lbu $a1, 1($s1) +/* 06B480 7F036950 922E0002 */ lbu $t6, 2($s1) +/* 06B484 7F036954 92380003 */ lbu $t8, 3($s1) +/* 06B488 7F036958 922B0004 */ lbu $t3, 4($s1) +/* 06B48C 7F03695C 000E7A00 */ sll $t7, $t6, 8 +/* 06B490 7F036960 01F84825 */ or $t1, $t7, $t8 +/* 06B494 7F036964 44898000 */ mtc1 $t1, $f16 +/* 06B498 7F036968 92390005 */ lbu $t9, 5($s1) +/* 06B49C 7F03696C 000B6200 */ sll $t4, $t3, 8 +/* 06B4A0 7F036970 468084A0 */ cvt.s.w $f18, $f16 +/* 06B4A4 7F036974 01991825 */ or $v1, $t4, $t9 +/* 06B4A8 7F036978 306DFFFF */ andi $t5, $v1, 0xffff +/* 06B4AC 7F03697C 00402025 */ move $a0, $v0 +/* 06B4B0 7F036980 01A02825 */ move $a1, $t5 +/* 06B4B4 7F036984 46189082 */ mul.s $f2, $f18, $f24 +/* 06B4B8 7F036988 50400010 */ beql $v0, $zero, .L7F0369CC +/* 06B4BC 7F03698C 26520007 */ addiu $s2, $s2, 7 +/* 06B4C0 7F036990 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B4C4 7F036994 E7A205E4 */ swc1 $f2, 0x5e4($sp) +/* 06B4C8 7F036998 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 06B4CC 7F03699C 02C02025 */ move $a0, $s6 +/* 06B4D0 7F0369A0 02402825 */ move $a1, $s2 +/* 06B4D4 7F0369A4 4602003C */ c.lt.s $f0, $f2 +/* 06B4D8 7F0369A8 00000000 */ nop +/* 06B4DC 7F0369AC 45020007 */ bc1fl .L7F0369CC +/* 06B4E0 7F0369B0 26520007 */ addiu $s2, $s2, 7 +/* 06B4E4 7F0369B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B4E8 7F0369B8 92260006 */ lbu $a2, 6($s1) +/* 06B4EC 7F0369BC 00409025 */ move $s2, $v0 +/* 06B4F0 7F0369C0 1000FAF2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B4F4 7F0369C4 02C28821 */ addu $s1, $s6, $v0 +/* 06B4F8 7F0369C8 26520007 */ addiu $s2, $s2, 7 +.L7F0369CC: +/* 06B4FC 7F0369CC 1000FAEF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B500 7F0369D0 26310007 */ addiu $s1, $s1, 7 +action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7: +/* 06B504 7F0369D4 02E02025 */ move $a0, $s7 +/* 06B508 7F0369D8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B50C 7F0369DC 92250001 */ lbu $a1, 1($s1) +/* 06B510 7F0369E0 922D0002 */ lbu $t5, 2($s1) +/* 06B514 7F0369E4 922F0003 */ lbu $t7, 3($s1) +/* 06B518 7F0369E8 922A0004 */ lbu $t2, 4($s1) +/* 06B51C 7F0369EC 000D7200 */ sll $t6, $t5, 8 +/* 06B520 7F0369F0 01CFC025 */ or $t8, $t6, $t7 +/* 06B524 7F0369F4 44982000 */ mtc1 $t8, $f4 +/* 06B528 7F0369F8 922C0005 */ lbu $t4, 5($s1) +/* 06B52C 7F0369FC 000A5A00 */ sll $t3, $t2, 8 +/* 06B530 7F036A00 468021A0 */ cvt.s.w $f6, $f4 +/* 06B534 7F036A04 016C1825 */ or $v1, $t3, $t4 +/* 06B538 7F036A08 3079FFFF */ andi $t9, $v1, 0xffff +/* 06B53C 7F036A0C 00402025 */ move $a0, $v0 +/* 06B540 7F036A10 03202825 */ move $a1, $t9 +/* 06B544 7F036A14 46183082 */ mul.s $f2, $f6, $f24 +/* 06B548 7F036A18 50400010 */ beql $v0, $zero, .L7F036A5C +/* 06B54C 7F036A1C 26520007 */ addiu $s2, $s2, 7 +/* 06B550 7F036A20 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B554 7F036A24 E7A205D4 */ swc1 $f2, 0x5d4($sp) +/* 06B558 7F036A28 C7A205D4 */ lwc1 $f2, 0x5d4($sp) +/* 06B55C 7F036A2C 02C02025 */ move $a0, $s6 +/* 06B560 7F036A30 02402825 */ move $a1, $s2 +/* 06B564 7F036A34 4600103C */ c.lt.s $f2, $f0 +/* 06B568 7F036A38 00000000 */ nop +/* 06B56C 7F036A3C 45020007 */ bc1fl .L7F036A5C +/* 06B570 7F036A40 26520007 */ addiu $s2, $s2, 7 +/* 06B574 7F036A44 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B578 7F036A48 92260006 */ lbu $a2, 6($s1) +/* 06B57C 7F036A4C 00409025 */ move $s2, $v0 +/* 06B580 7F036A50 1000FACE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B584 7F036A54 02C28821 */ addu $s1, $s6, $v0 +/* 06B588 7F036A58 26520007 */ addiu $s2, $s2, 7 +.L7F036A5C: +/* 06B58C 7F036A5C 1000FACB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B590 7F036A60 26310007 */ addiu $s1, $s1, 7 +action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5: +/* 06B594 7F036A64 92290001 */ lbu $t1, 1($s1) +/* 06B598 7F036A68 922B0002 */ lbu $t3, 2($s1) +/* 06B59C 7F036A6C 02E02025 */ move $a0, $s7 +/* 06B5A0 7F036A70 00095200 */ sll $t2, $t1, 8 +/* 06B5A4 7F036A74 014B6025 */ or $t4, $t2, $t3 +/* 06B5A8 7F036A78 448C4000 */ mtc1 $t4, $f8 +/* 06B5AC 7F036A7C 00000000 */ nop +/* 06B5B0 7F036A80 468042A0 */ cvt.s.w $f10, $f8 +/* 06B5B4 7F036A84 46185402 */ mul.s $f16, $f10, $f24 +/* 06B5B8 7F036A88 E7B005CC */ swc1 $f16, 0x5cc($sp) +/* 06B5BC 7F036A8C 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B5C0 7F036A90 92250003 */ lbu $a1, 3($s1) +/* 06B5C4 7F036A94 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 06B5C8 7F036A98 02C02025 */ move $a0, $s6 +/* 06B5CC 7F036A9C 02402825 */ move $a1, $s2 +/* 06B5D0 7F036AA0 4612003C */ c.lt.s $f0, $f18 +/* 06B5D4 7F036AA4 00000000 */ nop +/* 06B5D8 7F036AA8 45020007 */ bc1fl .L7F036AC8 +/* 06B5DC 7F036AAC 26520005 */ addiu $s2, $s2, 5 +/* 06B5E0 7F036AB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B5E4 7F036AB4 92260004 */ lbu $a2, 4($s1) +/* 06B5E8 7F036AB8 00409025 */ move $s2, $v0 +/* 06B5EC 7F036ABC 1000FAB3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5F0 7F036AC0 02C28821 */ addu $s1, $s6, $v0 +/* 06B5F4 7F036AC4 26520005 */ addiu $s2, $s2, 5 +.L7F036AC8: +/* 06B5F8 7F036AC8 1000FAB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5FC 7F036ACC 26310005 */ addiu $s1, $s1, 5 +action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5: +/* 06B600 7F036AD0 92390001 */ lbu $t9, 1($s1) +/* 06B604 7F036AD4 922E0002 */ lbu $t6, 2($s1) +/* 06B608 7F036AD8 02E02025 */ move $a0, $s7 +/* 06B60C 7F036ADC 00196A00 */ sll $t5, $t9, 8 +/* 06B610 7F036AE0 01AE7825 */ or $t7, $t5, $t6 +/* 06B614 7F036AE4 448F2000 */ mtc1 $t7, $f4 +/* 06B618 7F036AE8 00000000 */ nop +/* 06B61C 7F036AEC 468021A0 */ cvt.s.w $f6, $f4 +/* 06B620 7F036AF0 46183202 */ mul.s $f8, $f6, $f24 +/* 06B624 7F036AF4 E7A805C4 */ swc1 $f8, 0x5c4($sp) +/* 06B628 7F036AF8 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B62C 7F036AFC 92250003 */ lbu $a1, 3($s1) +/* 06B630 7F036B00 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 06B634 7F036B04 02C02025 */ move $a0, $s6 +/* 06B638 7F036B08 02402825 */ move $a1, $s2 +/* 06B63C 7F036B0C 4600503C */ c.lt.s $f10, $f0 +/* 06B640 7F036B10 00000000 */ nop +/* 06B644 7F036B14 45020007 */ bc1fl .L7F036B34 +/* 06B648 7F036B18 26520005 */ addiu $s2, $s2, 5 +/* 06B64C 7F036B1C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B650 7F036B20 92260004 */ lbu $a2, 4($s1) +/* 06B654 7F036B24 00409025 */ move $s2, $v0 +/* 06B658 7F036B28 1000FA98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B65C 7F036B2C 02C28821 */ addu $s1, $s6, $v0 +/* 06B660 7F036B30 26520005 */ addiu $s2, $s2, 5 +.L7F036B34: +/* 06B664 7F036B34 1000FA95 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B668 7F036B38 26310005 */ addiu $s1, $s1, 5 +action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4: +/* 06B66C 7F036B3C 92380001 */ lbu $t8, 1($s1) +/* 06B670 7F036B40 922A0002 */ lbu $t2, 2($s1) +/* 06B674 7F036B44 02E02025 */ move $a0, $s7 +/* 06B678 7F036B48 00184A00 */ sll $t1, $t8, 8 +/* 06B67C 7F036B4C 012A5825 */ or $t3, $t1, $t2 +/* 06B680 7F036B50 448B8000 */ mtc1 $t3, $f16 +/* 06B684 7F036B54 00000000 */ nop +/* 06B688 7F036B58 468084A0 */ cvt.s.w $f18, $f16 +/* 06B68C 7F036B5C 46189002 */ mul.s $f0, $f18, $f24 +/* 06B690 7F036B60 44050000 */ mfc1 $a1, $f0 +/* 06B694 7F036B64 0FC0CECE */ jal sub_GAME_7F033B38 +/* 06B698 7F036B68 00000000 */ nop +/* 06B69C 7F036B6C 10400007 */ beqz $v0, .L7F036B8C +/* 06B6A0 7F036B70 02C02025 */ move $a0, $s6 +/* 06B6A4 7F036B74 02402825 */ move $a1, $s2 +/* 06B6A8 7F036B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B6AC 7F036B7C 92260003 */ lbu $a2, 3($s1) +/* 06B6B0 7F036B80 00409025 */ move $s2, $v0 +/* 06B6B4 7F036B84 1000FA81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6B8 7F036B88 02C28821 */ addu $s1, $s6, $v0 +.L7F036B8C: +/* 06B6BC 7F036B8C 26520004 */ addiu $s2, $s2, 4 +/* 06B6C0 7F036B90 1000FA7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6C4 7F036B94 26310004 */ addiu $s1, $s1, 4 +action52_GoIntoRVLIf_In_Units_Of_Preset_6: +/* 06B6C8 7F036B98 922F0001 */ lbu $t7, 1($s1) +/* 06B6CC 7F036B9C 92290002 */ lbu $t1, 2($s1) +/* 06B6D0 7F036BA0 922C0003 */ lbu $t4, 3($s1) +/* 06B6D4 7F036BA4 000FC200 */ sll $t8, $t7, 8 +/* 06B6D8 7F036BA8 03095025 */ or $t2, $t8, $t1 +/* 06B6DC 7F036BAC 448A2000 */ mtc1 $t2, $f4 +/* 06B6E0 7F036BB0 922D0004 */ lbu $t5, 4($s1) +/* 06B6E4 7F036BB4 000CCA00 */ sll $t9, $t4, 8 +/* 06B6E8 7F036BB8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B6EC 7F036BBC 032D1025 */ or $v0, $t9, $t5 +/* 06B6F0 7F036BC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B6F4 7F036BC4 02E02025 */ move $a0, $s7 +/* 06B6F8 7F036BC8 46183202 */ mul.s $f8, $f6, $f24 +/* 06B6FC 7F036BCC 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B700 7F036BD0 E7A805B0 */ swc1 $f8, 0x5b0($sp) +/* 06B704 7F036BD4 C7AA05B0 */ lwc1 $f10, 0x5b0($sp) +/* 06B708 7F036BD8 02C02025 */ move $a0, $s6 +/* 06B70C 7F036BDC 02402825 */ move $a1, $s2 +/* 06B710 7F036BE0 460A003C */ c.lt.s $f0, $f10 +/* 06B714 7F036BE4 00000000 */ nop +/* 06B718 7F036BE8 45020007 */ bc1fl .L7F036C08 +/* 06B71C 7F036BEC 26520006 */ addiu $s2, $s2, 6 +/* 06B720 7F036BF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B724 7F036BF4 92260005 */ lbu $a2, 5($s1) +/* 06B728 7F036BF8 00409025 */ move $s2, $v0 +/* 06B72C 7F036BFC 1000FA63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B730 7F036C00 02C28821 */ addu $s1, $s6, $v0 +/* 06B734 7F036C04 26520006 */ addiu $s2, $s2, 6 +.L7F036C08: +/* 06B738 7F036C08 1000FA60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B73C 7F036C0C 26310006 */ addiu $s1, $s1, 6 +action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6: +/* 06B740 7F036C10 922E0001 */ lbu $t6, 1($s1) +/* 06B744 7F036C14 92380002 */ lbu $t8, 2($s1) +/* 06B748 7F036C18 922B0003 */ lbu $t3, 3($s1) +/* 06B74C 7F036C1C 000E7A00 */ sll $t7, $t6, 8 +/* 06B750 7F036C20 01F84825 */ or $t1, $t7, $t8 +/* 06B754 7F036C24 44898000 */ mtc1 $t1, $f16 +/* 06B758 7F036C28 92390004 */ lbu $t9, 4($s1) +/* 06B75C 7F036C2C 000B6200 */ sll $t4, $t3, 8 +/* 06B760 7F036C30 468084A0 */ cvt.s.w $f18, $f16 +/* 06B764 7F036C34 01991025 */ or $v0, $t4, $t9 +/* 06B768 7F036C38 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B76C 7F036C3C 02E02025 */ move $a0, $s7 +/* 06B770 7F036C40 46189102 */ mul.s $f4, $f18, $f24 +/* 06B774 7F036C44 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B778 7F036C48 E7A405A4 */ swc1 $f4, 0x5a4($sp) +/* 06B77C 7F036C4C C7A605A4 */ lwc1 $f6, 0x5a4($sp) +/* 06B780 7F036C50 02C02025 */ move $a0, $s6 +/* 06B784 7F036C54 02402825 */ move $a1, $s2 +/* 06B788 7F036C58 4600303C */ c.lt.s $f6, $f0 +/* 06B78C 7F036C5C 00000000 */ nop +/* 06B790 7F036C60 45020007 */ bc1fl .L7F036C80 +/* 06B794 7F036C64 26520006 */ addiu $s2, $s2, 6 +/* 06B798 7F036C68 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B79C 7F036C6C 92260005 */ lbu $a2, 5($s1) +/* 06B7A0 7F036C70 00409025 */ move $s2, $v0 +/* 06B7A4 7F036C74 1000FA45 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7A8 7F036C78 02C28821 */ addu $s1, $s6, $v0 +/* 06B7AC 7F036C7C 26520006 */ addiu $s2, $s2, 6 +.L7F036C80: +/* 06B7B0 7F036C80 1000FA42 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7B4 7F036C84 26310006 */ addiu $s1, $s1, 6 +action54_GoIntoRVLIf_Guard_Is_At_Preset_5: +/* 06B7B8 7F036C88 922A0002 */ lbu $t2, 2($s1) +/* 06B7BC 7F036C8C 922C0003 */ lbu $t4, 3($s1) +/* 06B7C0 7F036C90 02E02025 */ move $a0, $s7 +/* 06B7C4 7F036C94 000A5A00 */ sll $t3, $t2, 8 +/* 06B7C8 7F036C98 016C1025 */ or $v0, $t3, $t4 +/* 06B7CC 7F036C9C 3046FFFF */ andi $a2, $v0, 0xffff +/* 06B7D0 7F036CA0 0FC0D0E2 */ jal check_if_actorID_is_at_preset +/* 06B7D4 7F036CA4 92250001 */ lbu $a1, 1($s1) +/* 06B7D8 7F036CA8 10400007 */ beqz $v0, .L7F036CC8 +/* 06B7DC 7F036CAC 02C02025 */ move $a0, $s6 +/* 06B7E0 7F036CB0 02402825 */ move $a1, $s2 +/* 06B7E4 7F036CB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B7E8 7F036CB8 92260004 */ lbu $a2, 4($s1) +/* 06B7EC 7F036CBC 00409025 */ move $s2, $v0 +/* 06B7F0 7F036CC0 1000FA32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7F4 7F036CC4 02C28821 */ addu $s1, $s6, $v0 +.L7F036CC8: +/* 06B7F8 7F036CC8 26520005 */ addiu $s2, $s2, 5 +/* 06B7FC 7F036CCC 1000FA2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B800 7F036CD0 26310005 */ addiu $s1, $s1, 5 +action55_GoIntoRVLIf_Entered_Room_with_Preset_4: +/* 06B804 7F036CD4 922D0001 */ lbu $t5, 1($s1) +/* 06B808 7F036CD8 922F0002 */ lbu $t7, 2($s1) +/* 06B80C 7F036CDC 02E02025 */ move $a0, $s7 +/* 06B810 7F036CE0 000D7200 */ sll $t6, $t5, 8 +/* 06B814 7F036CE4 01CF1025 */ or $v0, $t6, $t7 +/* 06B818 7F036CE8 0FC0D113 */ jal check_if_actor_is_at_preset +/* 06B81C 7F036CEC 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B820 7F036CF0 10400007 */ beqz $v0, .L7F036D10 +/* 06B824 7F036CF4 02C02025 */ move $a0, $s6 +/* 06B828 7F036CF8 02402825 */ move $a1, $s2 +/* 06B82C 7F036CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B830 7F036D00 92260003 */ lbu $a2, 3($s1) +/* 06B834 7F036D04 00409025 */ move $s2, $v0 +/* 06B838 7F036D08 1000FA20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B83C 7F036D0C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D10: +/* 06B840 7F036D10 26520004 */ addiu $s2, $s2, 4 +/* 06B844 7F036D14 1000FA1D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B848 7F036D18 26310004 */ addiu $s1, $s1, 4 +action56_GoIntoRVLIf_16_Object_num_Collected_3: +/* 06B84C 7F036D1C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B850 7F036D20 92240001 */ lbu $a0, 1($s1) +/* 06B854 7F036D24 5040000F */ beql $v0, $zero, .L7F036D64 +/* 06B858 7F036D28 26520003 */ addiu $s2, $s2, 3 +/* 06B85C 7F036D2C 8C490010 */ lw $t1, 0x10($v0) +/* 06B860 7F036D30 5120000C */ beql $t1, $zero, .L7F036D64 +/* 06B864 7F036D34 26520003 */ addiu $s2, $s2, 3 +/* 06B868 7F036D38 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 06B86C 7F036D3C 8C440010 */ lw $a0, 0x10($v0) +/* 06B870 7F036D40 10400007 */ beqz $v0, .L7F036D60 +/* 06B874 7F036D44 02C02025 */ move $a0, $s6 +/* 06B878 7F036D48 02402825 */ move $a1, $s2 +/* 06B87C 7F036D4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B880 7F036D50 92260002 */ lbu $a2, 2($s1) +/* 06B884 7F036D54 00409025 */ move $s2, $v0 +/* 06B888 7F036D58 1000FA0C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B88C 7F036D5C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D60: +/* 06B890 7F036D60 26520003 */ addiu $s2, $s2, 3 +.L7F036D64: +/* 06B894 7F036D64 1000FA09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B898 7F036D68 26310003 */ addiu $s1, $s1, 3 +action57_GoIntoRVLIf_Specified_Weapon_Deposited_3: +/* 06B89C 7F036D6C 0FC146BB */ jal check_if_item_deposited +/* 06B8A0 7F036D70 92240001 */ lbu $a0, 1($s1) +/* 06B8A4 7F036D74 10400007 */ beqz $v0, .L7F036D94 +/* 06B8A8 7F036D78 02C02025 */ move $a0, $s6 +/* 06B8AC 7F036D7C 02402825 */ move $a1, $s2 +/* 06B8B0 7F036D80 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B8B4 7F036D84 92260002 */ lbu $a2, 2($s1) +/* 06B8B8 7F036D88 00409025 */ move $s2, $v0 +/* 06B8BC 7F036D8C 1000F9FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8C0 7F036D90 02C28821 */ addu $s1, $s6, $v0 +.L7F036D94: +/* 06B8C4 7F036D94 26520003 */ addiu $s2, $s2, 3 +/* 06B8C8 7F036D98 1000F9FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8CC 7F036D9C 26310003 */ addiu $s1, $s1, 3 +action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4: +/* 06B8D0 7F036DA0 92240002 */ lbu $a0, 2($s1) +/* 06B8D4 7F036DA4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B8D8 7F036DA8 00008025 */ move $s0, $zero +/* 06B8DC 7F036DAC 10400015 */ beqz $v0, .L7F036E04 +/* 06B8E0 7F036DB0 02402825 */ move $a1, $s2 +/* 06B8E4 7F036DB4 8C440010 */ lw $a0, 0x10($v0) +/* 06B8E8 7F036DB8 10800012 */ beqz $a0, .L7F036E04 +/* 06B8EC 7F036DBC 00000000 */ nop +/* 06B8F0 7F036DC0 8C830020 */ lw $v1, 0x20($a0) +/* 06B8F4 7F036DC4 1060000F */ beqz $v1, .L7F036E04 +/* 06B8F8 7F036DC8 00000000 */ nop +/* 06B8FC 7F036DCC 906A0000 */ lbu $t2, ($v1) +.L7F036DD0: +/* 06B900 7F036DD0 24010004 */ li $at, 4 +/* 06B904 7F036DD4 55410009 */ bnel $t2, $at, .L7F036DFC +/* 06B908 7F036DD8 8C630024 */ lw $v1, 0x24($v1) +/* 06B90C 7F036DDC 8C620004 */ lw $v0, 4($v1) +/* 06B910 7F036DE0 922B0001 */ lbu $t3, 1($s1) +/* 06B914 7F036DE4 804C0080 */ lb $t4, 0x80($v0) +/* 06B918 7F036DE8 556C0004 */ bnel $t3, $t4, .L7F036DFC +/* 06B91C 7F036DEC 8C630024 */ lw $v1, 0x24($v1) +/* 06B920 7F036DF0 10000004 */ b .L7F036E04 +/* 06B924 7F036DF4 24100001 */ li $s0, 1 +/* 06B928 7F036DF8 8C630024 */ lw $v1, 0x24($v1) +.L7F036DFC: +/* 06B92C 7F036DFC 5460FFF4 */ bnezl $v1, .L7F036DD0 +/* 06B930 7F036E00 906A0000 */ lbu $t2, ($v1) +.L7F036E04: +/* 06B934 7F036E04 12000006 */ beqz $s0, .L7F036E20 +/* 06B938 7F036E08 02C02025 */ move $a0, $s6 +/* 06B93C 7F036E0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B940 7F036E10 92260003 */ lbu $a2, 3($s1) +/* 06B944 7F036E14 00409025 */ move $s2, $v0 +/* 06B948 7F036E18 1000F9DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B94C 7F036E1C 02C28821 */ addu $s1, $s6, $v0 +.L7F036E20: +/* 06B950 7F036E20 26520004 */ addiu $s2, $s2, 4 +/* 06B954 7F036E24 1000F9D9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B958 7F036E28 26310004 */ addiu $s1, $s1, 4 +action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3: +/* 06B95C 7F036E2C 0FC17674 */ jal get_item_in_hand +/* 06B960 7F036E30 00002025 */ move $a0, $zero +/* 06B964 7F036E34 92390001 */ lbu $t9, 1($s1) +/* 06B968 7F036E38 50590006 */ beql $v0, $t9, .L7F036E54 +/* 06B96C 7F036E3C 02C02025 */ move $a0, $s6 +/* 06B970 7F036E40 0FC17674 */ jal get_item_in_hand +/* 06B974 7F036E44 24040001 */ li $a0, 1 +/* 06B978 7F036E48 922D0001 */ lbu $t5, 1($s1) +/* 06B97C 7F036E4C 144D0007 */ bne $v0, $t5, .L7F036E6C +/* 06B980 7F036E50 02C02025 */ move $a0, $s6 +.L7F036E54: +/* 06B984 7F036E54 02402825 */ move $a1, $s2 +/* 06B988 7F036E58 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B98C 7F036E5C 92260002 */ lbu $a2, 2($s1) +/* 06B990 7F036E60 00409025 */ move $s2, $v0 +/* 06B994 7F036E64 1000F9C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B998 7F036E68 02C28821 */ addu $s1, $s6, $v0 +.L7F036E6C: +/* 06B99C 7F036E6C 26520003 */ addiu $s2, $s2, 3 +/* 06B9A0 7F036E70 1000F9C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9A4 7F036E74 26310003 */ addiu $s1, $s1, 3 +action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3: +/* 06B9A8 7F036E78 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9AC 7F036E7C 92240001 */ lbu $a0, 1($s1) +/* 06B9B0 7F036E80 5040000C */ beql $v0, $zero, .L7F036EB4 +/* 06B9B4 7F036E84 26520003 */ addiu $s2, $s2, 3 +/* 06B9B8 7F036E88 8C4E0010 */ lw $t6, 0x10($v0) +/* 06B9BC 7F036E8C 02C02025 */ move $a0, $s6 +/* 06B9C0 7F036E90 02402825 */ move $a1, $s2 +/* 06B9C4 7F036E94 51C00007 */ beql $t6, $zero, .L7F036EB4 +/* 06B9C8 7F036E98 26520003 */ addiu $s2, $s2, 3 +/* 06B9CC 7F036E9C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B9D0 7F036EA0 92260002 */ lbu $a2, 2($s1) +/* 06B9D4 7F036EA4 00409025 */ move $s2, $v0 +/* 06B9D8 7F036EA8 1000F9B8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9DC 7F036EAC 02C28821 */ addu $s1, $s6, $v0 +/* 06B9E0 7F036EB0 26520003 */ addiu $s2, $s2, 3 +.L7F036EB4: +/* 06B9E4 7F036EB4 1000F9B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9E8 7F036EB8 26310003 */ addiu $s1, $s1, 3 +action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3: +/* 06B9EC 7F036EBC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9F0 7F036EC0 92240001 */ lbu $a0, 1($s1) +/* 06B9F4 7F036EC4 1040000E */ beqz $v0, .L7F036F00 +/* 06B9F8 7F036EC8 00402025 */ move $a0, $v0 +/* 06B9FC 7F036ECC 8C4F0010 */ lw $t7, 0x10($v0) +/* 06BA00 7F036ED0 51E0000C */ beql $t7, $zero, .L7F036F04 +/* 06BA04 7F036ED4 26520003 */ addiu $s2, $s2, 3 +/* 06BA08 7F036ED8 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06BA0C 7F036EDC 00000000 */ nop +/* 06BA10 7F036EE0 10400007 */ beqz $v0, .L7F036F00 +/* 06BA14 7F036EE4 02C02025 */ move $a0, $s6 +/* 06BA18 7F036EE8 02402825 */ move $a1, $s2 +/* 06BA1C 7F036EEC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA20 7F036EF0 92260002 */ lbu $a2, 2($s1) +/* 06BA24 7F036EF4 00409025 */ move $s2, $v0 +/* 06BA28 7F036EF8 1000F9A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA2C 7F036EFC 02C28821 */ addu $s1, $s6, $v0 +.L7F036F00: +/* 06BA30 7F036F00 26520003 */ addiu $s2, $s2, 3 +.L7F036F04: +/* 06BA34 7F036F04 1000F9A1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA38 7F036F08 26310003 */ addiu $s1, $s1, 3 +action5C_GoIntoRVLIf_16_Object_num_Activated_3: +/* 06BA3C 7F036F0C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BA40 7F036F10 92240001 */ lbu $a0, 1($s1) +/* 06BA44 7F036F14 50400014 */ beql $v0, $zero, .L7F036F68 +/* 06BA48 7F036F18 26520003 */ addiu $s2, $s2, 3 +/* 06BA4C 7F036F1C 8C580010 */ lw $t8, 0x10($v0) +/* 06BA50 7F036F20 53000011 */ beql $t8, $zero, .L7F036F68 +/* 06BA54 7F036F24 26520003 */ addiu $s2, $s2, 3 +/* 06BA58 7F036F28 8C490064 */ lw $t1, 0x64($v0) +/* 06BA5C 7F036F2C 2401BFFF */ li $at, -16385 +/* 06BA60 7F036F30 312A4000 */ andi $t2, $t1, 0x4000 +/* 06BA64 7F036F34 5140000C */ beql $t2, $zero, .L7F036F68 +/* 06BA68 7F036F38 26520003 */ addiu $s2, $s2, 3 +/* 06BA6C 7F036F3C 8C4B0064 */ lw $t3, 0x64($v0) +/* 06BA70 7F036F40 02C02025 */ move $a0, $s6 +/* 06BA74 7F036F44 02402825 */ move $a1, $s2 +/* 06BA78 7F036F48 01616024 */ and $t4, $t3, $at +/* 06BA7C 7F036F4C AC4C0064 */ sw $t4, 0x64($v0) +/* 06BA80 7F036F50 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA84 7F036F54 92260002 */ lbu $a2, 2($s1) +/* 06BA88 7F036F58 00409025 */ move $s2, $v0 +/* 06BA8C 7F036F5C 1000F98B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA90 7F036F60 02C28821 */ addu $s1, $s6, $v0 +/* 06BA94 7F036F64 26520003 */ addiu $s2, $s2, 3 +.L7F036F68: +/* 06BA98 7F036F68 1000F988 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA9C 7F036F6C 26310003 */ addiu $s1, $s1, 3 +action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3: +/* 06BAA0 7F036F70 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BAA4 7F036F74 92240001 */ lbu $a0, 1($s1) +/* 06BAA8 7F036F78 50400013 */ beql $v0, $zero, .L7F036FC8 +/* 06BAAC 7F036F7C 26520003 */ addiu $s2, $s2, 3 +/* 06BAB0 7F036F80 8C590010 */ lw $t9, 0x10($v0) +/* 06BAB4 7F036F84 53200010 */ beql $t9, $zero, .L7F036FC8 +/* 06BAB8 7F036F88 26520003 */ addiu $s2, $s2, 3 +/* 06BABC 7F036F8C 904D0002 */ lbu $t5, 2($v0) +/* 06BAC0 7F036F90 31AE0040 */ andi $t6, $t5, 0x40 +/* 06BAC4 7F036F94 51C0000C */ beql $t6, $zero, .L7F036FC8 +/* 06BAC8 7F036F98 26520003 */ addiu $s2, $s2, 3 +/* 06BACC 7F036F9C 904F0002 */ lbu $t7, 2($v0) +/* 06BAD0 7F036FA0 02C02025 */ move $a0, $s6 +/* 06BAD4 7F036FA4 02402825 */ move $a1, $s2 +/* 06BAD8 7F036FA8 31F8FFBF */ andi $t8, $t7, 0xffbf +/* 06BADC 7F036FAC A0580002 */ sb $t8, 2($v0) +/* 06BAE0 7F036FB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BAE4 7F036FB4 92260002 */ lbu $a2, 2($s1) +/* 06BAE8 7F036FB8 00409025 */ move $s2, $v0 +/* 06BAEC 7F036FBC 1000F973 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAF0 7F036FC0 02C28821 */ addu $s1, $s6, $v0 +/* 06BAF4 7F036FC4 26520003 */ addiu $s2, $s2, 3 +.L7F036FC8: +/* 06BAF8 7F036FC8 1000F970 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAFC 7F036FCC 26310003 */ addiu $s1, $s1, 3 +action5E_16_Object_Activates_2: +/* 06BB00 7F036FD0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB04 7F036FD4 92240001 */ lbu $a0, 1($s1) +/* 06BB08 7F036FD8 10400014 */ beqz $v0, .L7F03702C +/* 06BB0C 7F036FDC 00402825 */ move $a1, $v0 +/* 06BB10 7F036FE0 8C440010 */ lw $a0, 0x10($v0) +/* 06BB14 7F036FE4 50800012 */ beql $a0, $zero, .L7F037030 +/* 06BB18 7F036FE8 26520002 */ addiu $s2, $s2, 2 +/* 06BB1C 7F036FEC 90830000 */ lbu $v1, ($a0) +/* 06BB20 7F036FF0 24010002 */ li $at, 2 +/* 06BB24 7F036FF4 54610007 */ bnel $v1, $at, .L7F037014 +/* 06BB28 7F036FF8 24010001 */ li $at, 1 +/* 06BB2C 7F036FFC 0FC15667 */ jal sub_GAME_7F05599C +/* 06BB30 7F037000 8C440010 */ lw $a0, 0x10($v0) +/* 06BB34 7F037004 26520002 */ addiu $s2, $s2, 2 +/* 06BB38 7F037008 1000F960 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB3C 7F03700C 26310002 */ addiu $s1, $s1, 2 +/* 06BB40 7F037010 24010001 */ li $at, 1 +.L7F037014: +/* 06BB44 7F037014 10610003 */ beq $v1, $at, .L7F037024 +/* 06BB48 7F037018 24010004 */ li $at, 4 +/* 06BB4C 7F03701C 54610004 */ bnel $v1, $at, .L7F037030 +/* 06BB50 7F037020 26520002 */ addiu $s2, $s2, 2 +.L7F037024: +/* 06BB54 7F037024 0FC13C5C */ jal sub_GAME_7F04F170 +/* 06BB58 7F037028 8CA40010 */ lw $a0, 0x10($a1) +.L7F03702C: +/* 06BB5C 7F03702C 26520002 */ addiu $s2, $s2, 2 +.L7F037030: +/* 06BB60 7F037030 1000F956 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB64 7F037034 26310002 */ addiu $s1, $s1, 2 +action5F_16_Object_Explodes_2: +/* 06BB68 7F037038 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB6C 7F03703C 92240001 */ lbu $a0, 1($s1) +/* 06BB70 7F037040 10400019 */ beqz $v0, .L7F0370A8 +/* 06BB74 7F037044 00408025 */ move $s0, $v0 +/* 06BB78 7F037048 8C490010 */ lw $t1, 0x10($v0) +/* 06BB7C 7F03704C 51200017 */ beql $t1, $zero, .L7F0370AC +/* 06BB80 7F037050 26520002 */ addiu $s2, $s2, 2 +/* 06BB84 7F037054 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 06BB88 7F037058 00402025 */ move $a0, $v0 +/* 06BB8C 7F03705C 54400013 */ bnezl $v0, .L7F0370AC +/* 06BB90 7F037060 26520002 */ addiu $s2, $s2, 2 +/* 06BB94 7F037064 C6080074 */ lwc1 $f8, 0x74($s0) +/* 06BB98 7F037068 C60A0070 */ lwc1 $f10, 0x70($s0) +/* 06BB9C 7F03706C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06BBA0 7F037070 44819000 */ mtc1 $at, $f18 +/* 06BBA4 7F037074 460A4401 */ sub.s $f16, $f8, $f10 +/* 06BBA8 7F037078 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 06BBAC 7F03707C 44813000 */ mtc1 $at, $f6 +/* 06BBB0 7F037080 240AFFFF */ li $t2, -1 +/* 06BBB4 7F037084 46128100 */ add.s $f4, $f16, $f18 +/* 06BBB8 7F037088 AFAA0010 */ sw $t2, 0x10($sp) +/* 06BBBC 7F03708C 02002025 */ move $a0, $s0 +/* 06BBC0 7F037090 26060058 */ addiu $a2, $s0, 0x58 +/* 06BBC4 7F037094 46062003 */ div.s $f0, $f4, $f6 +/* 06BBC8 7F037098 2407001D */ li $a3, 29 +/* 06BBCC 7F03709C 44050000 */ mfc1 $a1, $f0 +/* 06BBD0 7F0370A0 0FC13842 */ jal maybe_detonate_object +/* 06BBD4 7F0370A4 00000000 */ nop +.L7F0370A8: +/* 06BBD8 7F0370A8 26520002 */ addiu $s2, $s2, 2 +.L7F0370AC: +/* 06BBDC 7F0370AC 1000F937 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BBE0 7F0370B0 26310002 */ addiu $s1, $s1, 2 +action60_Guard_Drops_16_Object_num_2: +/* 06BBE4 7F0370B4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BBE8 7F0370B8 92240001 */ lbu $a0, 1($s1) +/* 06BBEC 7F0370BC 10400013 */ beqz $v0, .L7F03710C +/* 06BBF0 7F0370C0 00403025 */ move $a2, $v0 +/* 06BBF4 7F0370C4 8C440010 */ lw $a0, 0x10($v0) +/* 06BBF8 7F0370C8 50800011 */ beql $a0, $zero, .L7F037110 +/* 06BBFC 7F0370CC 26520002 */ addiu $s2, $s2, 2 +/* 06BC00 7F0370D0 8C83001C */ lw $v1, 0x1c($a0) +/* 06BC04 7F0370D4 5060000E */ beql $v1, $zero, .L7F037110 +/* 06BC08 7F0370D8 26520002 */ addiu $s2, $s2, 2 +/* 06BC0C 7F0370DC 906B0000 */ lbu $t3, ($v1) +/* 06BC10 7F0370E0 24010003 */ li $at, 3 +/* 06BC14 7F0370E4 5561000A */ bnel $t3, $at, .L7F037110 +/* 06BC18 7F0370E8 26520002 */ addiu $s2, $s2, 2 +/* 06BC1C 7F0370EC 8C440010 */ lw $a0, 0x10($v0) +/* 06BC20 7F0370F0 24050002 */ li $a1, 2 +/* 06BC24 7F0370F4 8C8C001C */ lw $t4, 0x1c($a0) +/* 06BC28 7F0370F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BC2C 7F0370FC 8D900004 */ lw $s0, 4($t4) +/* 06BC30 7F037100 96190012 */ lhu $t9, 0x12($s0) +/* 06BC34 7F037104 372D0001 */ ori $t5, $t9, 1 +/* 06BC38 7F037108 A60D0012 */ sh $t5, 0x12($s0) +.L7F03710C: +/* 06BC3C 7F03710C 26520002 */ addiu $s2, $s2, 2 +.L7F037110: +/* 06BC40 7F037110 1000F91E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC44 7F037114 26310002 */ addiu $s1, $s1, 2 +action61_Kill_Guard_num_2: +/* 06BC48 7F037118 02E02025 */ move $a0, $s7 +/* 06BC4C 7F03711C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC50 7F037120 92250001 */ lbu $a1, 1($s1) +/* 06BC54 7F037124 10400006 */ beqz $v0, .L7F037140 +/* 06BC58 7F037128 00402025 */ move $a0, $v0 +/* 06BC5C 7F03712C 8C4E0018 */ lw $t6, 0x18($v0) +/* 06BC60 7F037130 51C00004 */ beql $t6, $zero, .L7F037144 +/* 06BC64 7F037134 26520002 */ addiu $s2, $s2, 2 +/* 06BC68 7F037138 0FC086C8 */ jal sub_GAME_7F021B20 +/* 06BC6C 7F03713C 00000000 */ nop +.L7F037140: +/* 06BC70 7F037140 26520002 */ addiu $s2, $s2, 2 +.L7F037144: +/* 06BC74 7F037144 1000F911 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC78 7F037148 26310002 */ addiu $s1, $s1, 2 +action62_Guard_num_Throws_Equipment_2: +/* 06BC7C 7F03714C 02E02025 */ move $a0, $s7 +/* 06BC80 7F037150 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC84 7F037154 92250001 */ lbu $a1, 1($s1) +/* 06BC88 7F037158 10400015 */ beqz $v0, .L7F0371B0 +/* 06BC8C 7F03715C 00408025 */ move $s0, $v0 +/* 06BC90 7F037160 8C4F0018 */ lw $t7, 0x18($v0) +/* 06BC94 7F037164 51E00013 */ beql $t7, $zero, .L7F0371B4 +/* 06BC98 7F037168 26520002 */ addiu $s2, $s2, 2 +/* 06BC9C 7F03716C 8C580160 */ lw $t8, 0x160($v0) +/* 06BCA0 7F037170 24050001 */ li $a1, 1 +/* 06BCA4 7F037174 53000007 */ beql $t8, $zero, .L7F037194 +/* 06BCA8 7F037178 8E040164 */ lw $a0, 0x164($s0) +/* 06BCAC 7F03717C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCB0 7F037180 8C440160 */ lw $a0, 0x160($v0) +/* 06BCB4 7F037184 96090012 */ lhu $t1, 0x12($s0) +/* 06BCB8 7F037188 352A0001 */ ori $t2, $t1, 1 +/* 06BCBC 7F03718C A60A0012 */ sh $t2, 0x12($s0) +/* 06BCC0 7F037190 8E040164 */ lw $a0, 0x164($s0) +.L7F037194: +/* 06BCC4 7F037194 50800007 */ beql $a0, $zero, .L7F0371B4 +/* 06BCC8 7F037198 26520002 */ addiu $s2, $s2, 2 +/* 06BCCC 7F03719C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCD0 7F0371A0 24050001 */ li $a1, 1 +/* 06BCD4 7F0371A4 960B0012 */ lhu $t3, 0x12($s0) +/* 06BCD8 7F0371A8 356C0001 */ ori $t4, $t3, 1 +/* 06BCDC 7F0371AC A60C0012 */ sh $t4, 0x12($s0) +.L7F0371B0: +/* 06BCE0 7F0371B0 26520002 */ addiu $s2, $s2, 2 +.L7F0371B4: +/* 06BCE4 7F0371B4 1000F8F5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BCE8 7F0371B8 26310002 */ addiu $s1, $s1, 2 +action63_Guard_Gives_Bond_16_Object_num_2: +/* 06BCEC 7F0371BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BCF0 7F0371C0 92240001 */ lbu $a0, 1($s1) +/* 06BCF4 7F0371C4 1040000A */ beqz $v0, .L7F0371F0 +/* 06BCF8 7F0371C8 00408025 */ move $s0, $v0 +/* 06BCFC 7F0371CC 8C590010 */ lw $t9, 0x10($v0) +/* 06BD00 7F0371D0 00002825 */ move $a1, $zero +/* 06BD04 7F0371D4 53200007 */ beql $t9, $zero, .L7F0371F4 +/* 06BD08 7F0371D8 26520002 */ addiu $s2, $s2, 2 +/* 06BD0C 7F0371DC 0FC14094 */ jal collect_or_interact_object +/* 06BD10 7F0371E0 8C440010 */ lw $a0, 0x10($v0) +/* 06BD14 7F0371E4 8E040010 */ lw $a0, 0x10($s0) +/* 06BD18 7F0371E8 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 06BD1C 7F0371EC 00402825 */ move $a1, $v0 +.L7F0371F0: +/* 06BD20 7F0371F0 26520002 */ addiu $s2, $s2, 2 +.L7F0371F4: +/* 06BD24 7F0371F4 1000F8E5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BD28 7F0371F8 26310002 */ addiu $s1, $s1, 2 +action64_Type_16_Object_Equipped_On_Guard_3: +/* 06BD2C 7F0371FC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BD30 7F037200 92240001 */ lbu $a0, 1($s1) +/* 06BD34 7F037204 00408025 */ move $s0, $v0 +/* 06BD38 7F037208 02E02025 */ move $a0, $s7 +/* 06BD3C 7F03720C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BD40 7F037210 92250002 */ lbu $a1, 2($s1) +/* 06BD44 7F037214 1200001F */ beqz $s0, .L7F037294 +/* 06BD48 7F037218 00409825 */ move $s3, $v0 +/* 06BD4C 7F03721C 8E040010 */ lw $a0, 0x10($s0) +/* 06BD50 7F037220 5080001D */ beql $a0, $zero, .L7F037298 +/* 06BD54 7F037224 26520003 */ addiu $s2, $s2, 3 +/* 06BD58 7F037228 5040001B */ beql $v0, $zero, .L7F037298 +/* 06BD5C 7F03722C 26520003 */ addiu $s2, $s2, 3 +/* 06BD60 7F037230 8C8D001C */ lw $t5, 0x1c($a0) +/* 06BD64 7F037234 11A00005 */ beqz $t5, .L7F03724C +/* 06BD68 7F037238 00000000 */ nop +/* 06BD6C 7F03723C 0FC13011 */ jal sub_GAME_7F04C044 +/* 06BD70 7F037240 00000000 */ nop +/* 06BD74 7F037244 10000008 */ b .L7F037268 +/* 06BD78 7F037248 920E0003 */ lbu $t6, 3($s0) +.L7F03724C: +/* 06BD7C 7F03724C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 06BD80 7F037250 00000000 */ nop +/* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 +/* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) +/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) +/* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) +.L7F037268: +/* 06BD98 7F037268 24010008 */ li $at, 8 +/* 06BD9C 7F03726C 02002025 */ move $a0, $s0 +/* 06BDA0 7F037270 55C10006 */ bnel $t6, $at, .L7F03728C +/* 06BDA4 7F037274 8E040010 */ lw $a0, 0x10($s0) +/* 06BDA8 7F037278 0FC14787 */ jal sub_GAME_7F051E1C +/* 06BDAC 7F03727C 02602825 */ move $a1, $s3 +/* 06BDB0 7F037280 54400005 */ bnezl $v0, .L7F037298 +/* 06BDB4 7F037284 26520003 */ addiu $s2, $s2, 3 +/* 06BDB8 7F037288 8E040010 */ lw $a0, 0x10($s0) +.L7F03728C: +/* 06BDBC 7F03728C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 06BDC0 7F037290 8E650018 */ lw $a1, 0x18($s3) +.L7F037294: +/* 06BDC4 7F037294 26520003 */ addiu $s2, $s2, 3 +.L7F037298: +/* 06BDC8 7F037298 1000F8BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BDCC 7F03729C 26310003 */ addiu $s1, $s1, 3 +action65_Object_Moved_To_Preset_4: +/* 06BDD0 7F0372A0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BDD4 7F0372A4 92240001 */ lbu $a0, 1($s1) +/* 06BDD8 7F0372A8 AFA20500 */ sw $v0, 0x500($sp) +/* 06BDDC 7F0372AC 922F0002 */ lbu $t7, 2($s1) +/* 06BDE0 7F0372B0 92290003 */ lbu $t1, 3($s1) +/* 06BDE4 7F0372B4 000FC200 */ sll $t8, $t7, 8 +/* 06BDE8 7F0372B8 03091825 */ or $v1, $t8, $t1 +/* 06BDEC 7F0372BC 1040003C */ beqz $v0, .L7F0373B0 +/* 06BDF0 7F0372C0 306AFFFF */ andi $t2, $v1, 0xffff +/* 06BDF4 7F0372C4 8C4B0010 */ lw $t3, 0x10($v0) +/* 06BDF8 7F0372C8 00409825 */ move $s3, $v0 +/* 06BDFC 7F0372CC 29412710 */ slti $at, $t2, 0x2710 +/* 06BE00 7F0372D0 51600038 */ beql $t3, $zero, .L7F0373B4 +/* 06BE04 7F0372D4 26520004 */ addiu $s2, $s2, 4 +/* 06BE08 7F0372D8 1020000A */ beqz $at, .L7F037304 +/* 06BE0C 7F0372DC 01401025 */ move $v0, $t2 +/* 06BE10 7F0372E0 000A6080 */ sll $t4, $t2, 2 +/* 06BE14 7F0372E4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE18 7F0372E8 000C6080 */ sll $t4, $t4, 2 +/* 06BE1C 7F0372EC 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06BE20 7F0372F0 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06BE24 7F0372F4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE28 7F0372F8 000C6080 */ sll $t4, $t4, 2 +/* 06BE2C 7F0372FC 1000000A */ b .L7F037328 +/* 06BE30 7F037300 01998021 */ addu $s0, $t4, $t9 +.L7F037304: +/* 06BE34 7F037304 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 06BE38 7F037308 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 06BE3C 7F03730C 00026900 */ sll $t5, $v0, 4 +/* 06BE40 7F037310 01A26821 */ addu $t5, $t5, $v0 +/* 06BE44 7F037314 000D6880 */ sll $t5, $t5, 2 +/* 06BE48 7F037318 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06BE4C 7F03731C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06BE50 7F037320 01AE8021 */ addu $s0, $t5, $t6 +/* 06BE54 7F037324 02018021 */ addu $s0, $s0, $at +.L7F037328: +/* 06BE58 7F037328 C6080018 */ lwc1 $f8, 0x18($s0) +/* 06BE5C 7F03732C 4405A000 */ mfc1 $a1, $f20 +/* 06BE60 7F037330 4406A000 */ mfc1 $a2, $f20 +/* 06BE64 7F037334 46004287 */ neg.s $f10, $f8 +/* 06BE68 7F037338 4407A000 */ mfc1 $a3, $f20 +/* 06BE6C 7F03733C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06BE70 7F037340 C610001C */ lwc1 $f16, 0x1c($s0) +/* 06BE74 7F037344 27A404B8 */ addiu $a0, $sp, 0x4b8 +/* 06BE78 7F037348 46008487 */ neg.s $f18, $f16 +/* 06BE7C 7F03734C E7B20014 */ swc1 $f18, 0x14($sp) +/* 06BE80 7F037350 C6040020 */ lwc1 $f4, 0x20($s0) +/* 06BE84 7F037354 46002187 */ neg.s $f6, $f4 +/* 06BE88 7F037358 E7A60018 */ swc1 $f6, 0x18($sp) +/* 06BE8C 7F03735C C608000C */ lwc1 $f8, 0xc($s0) +/* 06BE90 7F037360 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06BE94 7F037364 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 06BE98 7F037368 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06BE9C 7F03736C C6100014 */ lwc1 $f16, 0x14($s0) +/* 06BEA0 7F037370 0FC16642 */ jal sub_GAME_7F059908 +/* 06BEA4 7F037374 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06BEA8 7F037378 8E620014 */ lw $v0, 0x14($s3) +/* 06BEAC 7F03737C 27A504B8 */ addiu $a1, $sp, 0x4b8 +/* 06BEB0 7F037380 50400004 */ beql $v0, $zero, .L7F037394 +/* 06BEB4 7F037384 8E070028 */ lw $a3, 0x28($s0) +/* 06BEB8 7F037388 0FC1629F */ jal matrix_scalar_multiply +/* 06BEBC 7F03738C C44C0014 */ lwc1 $f12, 0x14($v0) +/* 06BEC0 7F037390 8E070028 */ lw $a3, 0x28($s0) +.L7F037394: +/* 06BEC4 7F037394 AFB00010 */ sw $s0, 0x10($sp) +/* 06BEC8 7F037398 02602025 */ move $a0, $s3 +/* 06BECC 7F03739C 02002825 */ move $a1, $s0 +/* 06BED0 7F0373A0 0FC10223 */ jal sub_GAME_7F04088C +/* 06BED4 7F0373A4 27A604B8 */ addiu $a2, $sp, 0x4b8 +/* 06BED8 7F0373A8 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 06BEDC 7F0373AC 02602025 */ move $a0, $s3 +.L7F0373B0: +/* 06BEE0 7F0373B0 26520004 */ addiu $s2, $s2, 4 +.L7F0373B4: +/* 06BEE4 7F0373B4 1000F875 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BEE8 7F0373B8 26310004 */ addiu $s1, $s1, 4 +action66_Open_Door_2: +/* 06BEEC 7F0373BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BEF0 7F0373C0 92240001 */ lbu $a0, 1($s1) +/* 06BEF4 7F0373C4 1040000B */ beqz $v0, .L7F0373F4 +/* 06BEF8 7F0373C8 00403025 */ move $a2, $v0 +/* 06BEFC 7F0373CC 8C440010 */ lw $a0, 0x10($v0) +/* 06BF00 7F0373D0 50800009 */ beql $a0, $zero, .L7F0373F8 +/* 06BF04 7F0373D4 26520002 */ addiu $s2, $s2, 2 +/* 06BF08 7F0373D8 908F0000 */ lbu $t7, ($a0) +/* 06BF0C 7F0373DC 24010002 */ li $at, 2 +/* 06BF10 7F0373E0 00402025 */ move $a0, $v0 +/* 06BF14 7F0373E4 55E10004 */ bnel $t7, $at, .L7F0373F8 +/* 06BF18 7F0373E8 26520002 */ addiu $s2, $s2, 2 +/* 06BF1C 7F0373EC 0FC15262 */ jal set_door_state +/* 06BF20 7F0373F0 24050001 */ li $a1, 1 +.L7F0373F4: +/* 06BF24 7F0373F4 26520002 */ addiu $s2, $s2, 2 +.L7F0373F8: +/* 06BF28 7F0373F8 1000F864 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF2C 7F0373FC 26310002 */ addiu $s1, $s1, 2 +action67_Close_Door_2: +/* 06BF30 7F037400 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF34 7F037404 92240001 */ lbu $a0, 1($s1) +/* 06BF38 7F037408 1040000B */ beqz $v0, .L7F037438 +/* 06BF3C 7F03740C 00403025 */ move $a2, $v0 +/* 06BF40 7F037410 8C440010 */ lw $a0, 0x10($v0) +/* 06BF44 7F037414 50800009 */ beql $a0, $zero, .L7F03743C +/* 06BF48 7F037418 26520002 */ addiu $s2, $s2, 2 +/* 06BF4C 7F03741C 90980000 */ lbu $t8, ($a0) +/* 06BF50 7F037420 24010002 */ li $at, 2 +/* 06BF54 7F037424 00402025 */ move $a0, $v0 +/* 06BF58 7F037428 57010004 */ bnel $t8, $at, .L7F03743C +/* 06BF5C 7F03742C 26520002 */ addiu $s2, $s2, 2 +/* 06BF60 7F037430 0FC15262 */ jal set_door_state +/* 06BF64 7F037434 24050002 */ li $a1, 2 +.L7F037438: +/* 06BF68 7F037438 26520002 */ addiu $s2, $s2, 2 +.L7F03743C: +/* 06BF6C 7F03743C 1000F853 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF70 7F037440 26310002 */ addiu $s1, $s1, 2 +action68_Check_Door_Status_RVL_If_Met_4: +/* 06BF74 7F037444 92240001 */ lbu $a0, 1($s1) +/* 06BF78 7F037448 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF7C 7F03744C 00008025 */ move $s0, $zero +/* 06BF80 7F037450 10400027 */ beqz $v0, .L7F0374F0 +/* 06BF84 7F037454 02C02025 */ move $a0, $s6 +/* 06BF88 7F037458 8C490010 */ lw $t1, 0x10($v0) +/* 06BF8C 7F03745C 11200024 */ beqz $t1, .L7F0374F0 +/* 06BF90 7F037460 00000000 */ nop +/* 06BF94 7F037464 904A0003 */ lbu $t2, 3($v0) +/* 06BF98 7F037468 24010001 */ li $at, 1 +/* 06BF9C 7F03746C 15410020 */ bne $t2, $at, .L7F0374F0 +/* 06BFA0 7F037470 00000000 */ nop +/* 06BFA4 7F037474 804300BC */ lb $v1, 0xbc($v0) +/* 06BFA8 7F037478 24010001 */ li $at, 1 +/* 06BFAC 7F03747C 1460000E */ bnez $v1, .L7F0374B8 +/* 06BFB0 7F037480 00000000 */ nop +/* 06BFB4 7F037484 C45200B4 */ lwc1 $f18, 0xb4($v0) +/* 06BFB8 7F037488 4614903E */ c.le.s $f18, $f20 +/* 06BFBC 7F03748C 00000000 */ nop +/* 06BFC0 7F037490 45020006 */ bc1fl .L7F0374AC +/* 06BFC4 7F037494 92300002 */ lbu $s0, 2($s1) +/* 06BFC8 7F037498 92300002 */ lbu $s0, 2($s1) +/* 06BFCC 7F03749C 320B0001 */ andi $t3, $s0, 1 +/* 06BFD0 7F0374A0 10000013 */ b .L7F0374F0 +/* 06BFD4 7F0374A4 000B802B */ sltu $s0, $zero, $t3 +/* 06BFD8 7F0374A8 92300002 */ lbu $s0, 2($s1) +.L7F0374AC: +/* 06BFDC 7F0374AC 32190002 */ andi $t9, $s0, 2 +/* 06BFE0 7F0374B0 1000000F */ b .L7F0374F0 +/* 06BFE4 7F0374B4 0019802B */ sltu $s0, $zero, $t9 +.L7F0374B8: +/* 06BFE8 7F0374B8 10610003 */ beq $v1, $at, .L7F0374C8 +/* 06BFEC 7F0374BC 24010003 */ li $at, 3 +/* 06BFF0 7F0374C0 54610006 */ bnel $v1, $at, .L7F0374DC +/* 06BFF4 7F0374C4 24010002 */ li $at, 2 +.L7F0374C8: +/* 06BFF8 7F0374C8 92300002 */ lbu $s0, 2($s1) +/* 06BFFC 7F0374CC 320E0008 */ andi $t6, $s0, 8 +/* 06C000 7F0374D0 10000007 */ b .L7F0374F0 +/* 06C004 7F0374D4 000E802B */ sltu $s0, $zero, $t6 +/* 06C008 7F0374D8 24010002 */ li $at, 2 +.L7F0374DC: +/* 06C00C 7F0374DC 14610004 */ bne $v1, $at, .L7F0374F0 +/* 06C010 7F0374E0 00000000 */ nop +/* 06C014 7F0374E4 92300002 */ lbu $s0, 2($s1) +/* 06C018 7F0374E8 32180004 */ andi $t8, $s0, 4 +/* 06C01C 7F0374EC 0018802B */ sltu $s0, $zero, $t8 +.L7F0374F0: +/* 06C020 7F0374F0 12000006 */ beqz $s0, .L7F03750C +/* 06C024 7F0374F4 02402825 */ move $a1, $s2 +/* 06C028 7F0374F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C02C 7F0374FC 92260003 */ lbu $a2, 3($s1) +/* 06C030 7F037500 00409025 */ move $s2, $v0 +/* 06C034 7F037504 1000F821 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C038 7F037508 02C28821 */ addu $s1, $s6, $v0 +.L7F03750C: +/* 06C03C 7F03750C 26520004 */ addiu $s2, $s2, 4 +/* 06C040 7F037510 1000F81E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C044 7F037514 26310004 */ addiu $s1, $s1, 4 +action69_If_16_Object_Is_Valid_Door_RVL_3: +/* 06C048 7F037518 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C04C 7F03751C 92240001 */ lbu $a0, 1($s1) +/* 06C050 7F037520 50400014 */ beql $v0, $zero, .L7F037574 +/* 06C054 7F037524 26520003 */ addiu $s2, $s2, 3 +/* 06C058 7F037528 8C4A0010 */ lw $t2, 0x10($v0) +/* 06C05C 7F03752C 51400011 */ beql $t2, $zero, .L7F037574 +/* 06C060 7F037530 26520003 */ addiu $s2, $s2, 3 +/* 06C064 7F037534 904B0003 */ lbu $t3, 3($v0) +/* 06C068 7F037538 24010001 */ li $at, 1 +/* 06C06C 7F03753C 5561000D */ bnel $t3, $at, .L7F037574 +/* 06C070 7F037540 26520003 */ addiu $s2, $s2, 3 +/* 06C074 7F037544 8C4C0064 */ lw $t4, 0x64($v0) +/* 06C078 7F037548 02C02025 */ move $a0, $s6 +/* 06C07C 7F03754C 02402825 */ move $a1, $s2 +/* 06C080 7F037550 31990200 */ andi $t9, $t4, 0x200 +/* 06C084 7F037554 53200007 */ beql $t9, $zero, .L7F037574 +/* 06C088 7F037558 26520003 */ addiu $s2, $s2, 3 +/* 06C08C 7F03755C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C090 7F037560 92260002 */ lbu $a2, 2($s1) +/* 06C094 7F037564 00409025 */ move $s2, $v0 +/* 06C098 7F037568 1000F808 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C09C 7F03756C 02C28821 */ addu $s1, $s6, $v0 +/* 06C0A0 7F037570 26520003 */ addiu $s2, $s2, 3 +.L7F037574: +/* 06C0A4 7F037574 1000F805 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0A8 7F037578 26310003 */ addiu $s1, $s1, 3 +action6A_Set_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0AC 7F03757C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0B0 7F037580 92240001 */ lbu $a0, 1($s1) +/* 06C0B4 7F037584 1040000C */ beqz $v0, .L7F0375B8 +/* 06C0B8 7F037588 26520003 */ addiu $s2, $s2, 3 +/* 06C0BC 7F03758C 8C440010 */ lw $a0, 0x10($v0) +/* 06C0C0 7F037590 10800009 */ beqz $a0, .L7F0375B8 +/* 06C0C4 7F037594 00000000 */ nop +/* 06C0C8 7F037598 908D0000 */ lbu $t5, ($a0) +/* 06C0CC 7F03759C 24010002 */ li $at, 2 +/* 06C0D0 7F0375A0 15A10005 */ bne $t5, $at, .L7F0375B8 +/* 06C0D4 7F0375A4 00000000 */ nop +/* 06C0D8 7F0375A8 92230002 */ lbu $v1, 2($s1) +/* 06C0DC 7F0375AC 8C4E009C */ lw $t6, 0x9c($v0) +/* 06C0E0 7F0375B0 01C37825 */ or $t7, $t6, $v1 +/* 06C0E4 7F0375B4 AC4F009C */ sw $t7, 0x9c($v0) +.L7F0375B8: +/* 06C0E8 7F0375B8 1000F7F4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0EC 7F0375BC 26310003 */ addiu $s1, $s1, 3 +action6B_Unset_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0F0 7F0375C0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0F4 7F0375C4 92240001 */ lbu $a0, 1($s1) +/* 06C0F8 7F0375C8 1040000D */ beqz $v0, .L7F037600 +/* 06C0FC 7F0375CC 26520003 */ addiu $s2, $s2, 3 +/* 06C100 7F0375D0 8C440010 */ lw $a0, 0x10($v0) +/* 06C104 7F0375D4 1080000A */ beqz $a0, .L7F037600 +/* 06C108 7F0375D8 00000000 */ nop +/* 06C10C 7F0375DC 90980000 */ lbu $t8, ($a0) +/* 06C110 7F0375E0 24010002 */ li $at, 2 +/* 06C114 7F0375E4 17010006 */ bne $t8, $at, .L7F037600 +/* 06C118 7F0375E8 00000000 */ nop +/* 06C11C 7F0375EC 92230002 */ lbu $v1, 2($s1) +/* 06C120 7F0375F0 8C49009C */ lw $t1, 0x9c($v0) +/* 06C124 7F0375F4 00605027 */ not $t2, $v1 +/* 06C128 7F0375F8 012A5824 */ and $t3, $t1, $t2 +/* 06C12C 7F0375FC AC4B009C */ sw $t3, 0x9c($v0) +.L7F037600: +/* 06C130 7F037600 1000F7E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C134 7F037604 26310003 */ addiu $s1, $s1, 3 +action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4: +/* 06C138 7F037608 92240001 */ lbu $a0, 1($s1) +/* 06C13C 7F03760C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C140 7F037610 00008025 */ move $s0, $zero +/* 06C144 7F037614 1040000E */ beqz $v0, .L7F037650 +/* 06C148 7F037618 02402825 */ move $a1, $s2 +/* 06C14C 7F03761C 8C440010 */ lw $a0, 0x10($v0) +/* 06C150 7F037620 1080000B */ beqz $a0, .L7F037650 +/* 06C154 7F037624 00000000 */ nop +/* 06C158 7F037628 908C0000 */ lbu $t4, ($a0) +/* 06C15C 7F03762C 24010002 */ li $at, 2 +/* 06C160 7F037630 15810007 */ bne $t4, $at, .L7F037650 +/* 06C164 7F037634 00000000 */ nop +/* 06C168 7F037638 92230002 */ lbu $v1, 2($s1) +/* 06C16C 7F03763C 8C59009C */ lw $t9, 0x9c($v0) +/* 06C170 7F037640 03236824 */ and $t5, $t9, $v1 +/* 06C174 7F037644 146D0002 */ bne $v1, $t5, .L7F037650 +/* 06C178 7F037648 00000000 */ nop +/* 06C17C 7F03764C 24100001 */ li $s0, 1 +.L7F037650: +/* 06C180 7F037650 12000006 */ beqz $s0, .L7F03766C +/* 06C184 7F037654 02C02025 */ move $a0, $s6 +/* 06C188 7F037658 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C18C 7F03765C 92260003 */ lbu $a2, 3($s1) +/* 06C190 7F037660 00409025 */ move $s2, $v0 +/* 06C194 7F037664 1000F7C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C198 7F037668 02C28821 */ addu $s1, $s6, $v0 +.L7F03766C: +/* 06C19C 7F03766C 26520004 */ addiu $s2, $s2, 4 +/* 06C1A0 7F037670 1000F7C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1A4 7F037674 26310004 */ addiu $s1, $s1, 4 +action6D_If_Objective_num_Complete_RVL_3: +/* 06C1A8 7F037678 0FC15C6A */ jal add_objective +/* 06C1AC 7F03767C 00000000 */ nop +/* 06C1B0 7F037680 92250001 */ lbu $a1, 1($s1) +/* 06C1B4 7F037684 00A2082A */ slt $at, $a1, $v0 +/* 06C1B8 7F037688 5020000D */ beql $at, $zero, .L7F0376C0 +/* 06C1BC 7F03768C 26520003 */ addiu $s2, $s2, 3 +/* 06C1C0 7F037690 0FC15C8E */ jal get_status_of_objective +/* 06C1C4 7F037694 00A02025 */ move $a0, $a1 +/* 06C1C8 7F037698 24010001 */ li $at, 1 +/* 06C1CC 7F03769C 14410007 */ bne $v0, $at, .L7F0376BC +/* 06C1D0 7F0376A0 02C02025 */ move $a0, $s6 +/* 06C1D4 7F0376A4 02402825 */ move $a1, $s2 +/* 06C1D8 7F0376A8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C1DC 7F0376AC 92260002 */ lbu $a2, 2($s1) +/* 06C1E0 7F0376B0 00409025 */ move $s2, $v0 +/* 06C1E4 7F0376B4 1000F7B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1E8 7F0376B8 02C28821 */ addu $s1, $s6, $v0 +.L7F0376BC: +/* 06C1EC 7F0376BC 26520003 */ addiu $s2, $s2, 3 +.L7F0376C0: +/* 06C1F0 7F0376C0 1000F7B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1F4 7F0376C4 26310003 */ addiu $s1, $s1, 3 +action6E_If_Guard_2328_Preset_RVL_3: +/* 06C1F8 7F0376C8 02E02025 */ move $a0, $s7 +/* 06C1FC 7F0376CC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 06C200 7F0376D0 92250001 */ lbu $a1, 1($s1) +/* 06C204 7F0376D4 10400007 */ beqz $v0, .L7F0376F4 +/* 06C208 7F0376D8 02C02025 */ move $a0, $s6 +/* 06C20C 7F0376DC 02402825 */ move $a1, $s2 +/* 06C210 7F0376E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C214 7F0376E4 92260002 */ lbu $a2, 2($s1) +/* 06C218 7F0376E8 00409025 */ move $s2, $v0 +/* 06C21C 7F0376EC 1000F7A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C220 7F0376F0 02C28821 */ addu $s1, $s6, $v0 +.L7F0376F4: +/* 06C224 7F0376F4 26520003 */ addiu $s2, $s2, 3 +/* 06C228 7F0376F8 1000F7A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C22C 7F0376FC 26310003 */ addiu $s1, $s1, 3 +action6F_If_Guard_2328_Preset_Set_RVL_3: +/* 06C230 7F037700 02E02025 */ move $a0, $s7 +/* 06C234 7F037704 0FC0CEAB */ jal sub_GAME_7F033AAC +/* 06C238 7F037708 92250001 */ lbu $a1, 1($s1) +/* 06C23C 7F03770C 10400007 */ beqz $v0, .L7F03772C +/* 06C240 7F037710 02C02025 */ move $a0, $s6 +/* 06C244 7F037714 02402825 */ move $a1, $s2 +/* 06C248 7F037718 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C24C 7F03771C 92260002 */ lbu $a2, 2($s1) +/* 06C250 7F037720 00409025 */ move $s2, $v0 +/* 06C254 7F037724 1000F799 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C258 7F037728 02C28821 */ addu $s1, $s6, $v0 +.L7F03772C: +/* 06C25C 7F03772C 26520003 */ addiu $s2, $s2, 3 +/* 06C260 7F037730 1000F796 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C264 7F037734 26310003 */ addiu $s1, $s1, 3 +action78_Go_To_RVL_If_Guard_Shot_LTV_3: +/* 06C268 7F037738 0FC0CD69 */ jal get_times_actor_shot +/* 06C26C 7F03773C 02E02025 */ move $a0, $s7 +/* 06C270 7F037740 922E0001 */ lbu $t6, 1($s1) +/* 06C274 7F037744 02C02025 */ move $a0, $s6 +/* 06C278 7F037748 02402825 */ move $a1, $s2 +/* 06C27C 7F03774C 004E082A */ slt $at, $v0, $t6 +/* 06C280 7F037750 50200007 */ beql $at, $zero, .L7F037770 +/* 06C284 7F037754 26520003 */ addiu $s2, $s2, 3 +/* 06C288 7F037758 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C28C 7F03775C 92260002 */ lbu $a2, 2($s1) +/* 06C290 7F037760 00409025 */ move $s2, $v0 +/* 06C294 7F037764 1000F789 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C298 7F037768 02C28821 */ addu $s1, $s6, $v0 +/* 06C29C 7F03776C 26520003 */ addiu $s2, $s2, 3 +.L7F037770: +/* 06C2A0 7F037770 1000F786 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2A4 7F037774 26310003 */ addiu $s1, $s1, 3 +action79_Go_To_RVL_If_Guard_Shot_GTV_3: +/* 06C2A8 7F037778 0FC0CD69 */ jal get_times_actor_shot +/* 06C2AC 7F03777C 02E02025 */ move $a0, $s7 +/* 06C2B0 7F037780 922F0001 */ lbu $t7, 1($s1) +/* 06C2B4 7F037784 02C02025 */ move $a0, $s6 +/* 06C2B8 7F037788 02402825 */ move $a1, $s2 +/* 06C2BC 7F03778C 01E2082A */ slt $at, $t7, $v0 +/* 06C2C0 7F037790 50200007 */ beql $at, $zero, .L7F0377B0 +/* 06C2C4 7F037794 26520003 */ addiu $s2, $s2, 3 +/* 06C2C8 7F037798 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C2CC 7F03779C 92260002 */ lbu $a2, 2($s1) +/* 06C2D0 7F0377A0 00409025 */ move $s2, $v0 +/* 06C2D4 7F0377A4 1000F779 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2D8 7F0377A8 02C28821 */ addu $s1, $s6, $v0 +/* 06C2DC 7F0377AC 26520003 */ addiu $s2, $s2, 3 +.L7F0377B0: +/* 06C2E0 7F0377B0 1000F776 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2E4 7F0377B4 26310003 */ addiu $s1, $s1, 3 +action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3: +/* 06C2E8 7F0377B8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C2EC 7F0377BC 02E02025 */ move $a0, $s7 +/* 06C2F0 7F0377C0 92380001 */ lbu $t8, 1($s1) +/* 06C2F4 7F0377C4 02C02025 */ move $a0, $s6 +/* 06C2F8 7F0377C8 02402825 */ move $a1, $s2 +/* 06C2FC 7F0377CC 0058082A */ slt $at, $v0, $t8 +/* 06C300 7F0377D0 50200007 */ beql $at, $zero, .L7F0377F0 +/* 06C304 7F0377D4 26520003 */ addiu $s2, $s2, 3 +/* 06C308 7F0377D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C30C 7F0377DC 92260002 */ lbu $a2, 2($s1) +/* 06C310 7F0377E0 00409025 */ move $s2, $v0 +/* 06C314 7F0377E4 1000F769 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C318 7F0377E8 02C28821 */ addu $s1, $s6, $v0 +/* 06C31C 7F0377EC 26520003 */ addiu $s2, $s2, 3 +.L7F0377F0: +/* 06C320 7F0377F0 1000F766 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C324 7F0377F4 26310003 */ addiu $s1, $s1, 3 +action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3: +/* 06C328 7F0377F8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C32C 7F0377FC 02E02025 */ move $a0, $s7 +/* 06C330 7F037800 92290001 */ lbu $t1, 1($s1) +/* 06C334 7F037804 02C02025 */ move $a0, $s6 +/* 06C338 7F037808 02402825 */ move $a1, $s2 +/* 06C33C 7F03780C 0122082A */ slt $at, $t1, $v0 +/* 06C340 7F037810 50200007 */ beql $at, $zero, .L7F037830 +/* 06C344 7F037814 26520003 */ addiu $s2, $s2, 3 +/* 06C348 7F037818 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C34C 7F03781C 92260002 */ lbu $a2, 2($s1) +/* 06C350 7F037820 00409025 */ move $s2, $v0 +/* 06C354 7F037824 1000F759 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C358 7F037828 02C28821 */ addu $s1, $s6, $v0 +/* 06C35C 7F03782C 26520003 */ addiu $s2, $s2, 3 +.L7F037830: +/* 06C360 7F037830 1000F756 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C364 7F037834 26310003 */ addiu $s1, $s1, 3 +action7C_If_Guard_Health_Below_Value_RVL_4: +/* 06C368 7F037838 922A0002 */ lbu $t2, 2($s1) +/* 06C36C 7F03783C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C370 7F037840 448A2000 */ mtc1 $t2, $f4 +/* 06C374 7F037844 05410004 */ bgez $t2, .L7F037858 +/* 06C378 7F037848 468021A0 */ cvt.s.w $f6, $f4 +/* 06C37C 7F03784C 44814000 */ mtc1 $at, $f8 +/* 06C380 7F037850 00000000 */ nop +/* 06C384 7F037854 46083180 */ add.s $f6, $f6, $f8 +.L7F037858: +/* 06C388 7F037858 3C018005 */ lui $at, %hi(D_800528EC) +/* 06C38C 7F03785C C42A28EC */ lwc1 $f10, %lo(D_800528EC)($at) +/* 06C390 7F037860 02E02025 */ move $a0, $s7 +/* 06C394 7F037864 460A3402 */ mul.s $f16, $f6, $f10 +/* 06C398 7F037868 E7B00438 */ swc1 $f16, 0x438($sp) +/* 06C39C 7F03786C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C3A0 7F037870 92250001 */ lbu $a1, 1($s1) +/* 06C3A4 7F037874 50400011 */ beql $v0, $zero, .L7F0378BC +/* 06C3A8 7F037878 26520004 */ addiu $s2, $s2, 4 +/* 06C3AC 7F03787C C4520100 */ lwc1 $f18, 0x100($v0) +/* 06C3B0 7F037880 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 06C3B4 7F037884 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 06C3B8 7F037888 02C02025 */ move $a0, $s6 +/* 06C3BC 7F03788C 46049201 */ sub.s $f8, $f18, $f4 +/* 06C3C0 7F037890 02402825 */ move $a1, $s2 +/* 06C3C4 7F037894 4606403C */ c.lt.s $f8, $f6 +/* 06C3C8 7F037898 00000000 */ nop +/* 06C3CC 7F03789C 45020007 */ bc1fl .L7F0378BC +/* 06C3D0 7F0378A0 26520004 */ addiu $s2, $s2, 4 +/* 06C3D4 7F0378A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C3D8 7F0378A8 92260003 */ lbu $a2, 3($s1) +/* 06C3DC 7F0378AC 00409025 */ move $s2, $v0 +/* 06C3E0 7F0378B0 1000F736 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3E4 7F0378B4 02C28821 */ addu $s1, $s6, $v0 +/* 06C3E8 7F0378B8 26520004 */ addiu $s2, $s2, 4 +.L7F0378BC: +/* 06C3EC 7F0378BC 1000F733 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3F0 7F0378C0 26310004 */ addiu $s1, $s1, 4 +action7D_If_Guard_Health_Above_Value_RVL_4: +/* 06C3F4 7F0378C4 922B0002 */ lbu $t3, 2($s1) +/* 06C3F8 7F0378C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C3FC 7F0378CC 448B5000 */ mtc1 $t3, $f10 +/* 06C400 7F0378D0 05610004 */ bgez $t3, .L7F0378E4 +/* 06C404 7F0378D4 46805420 */ cvt.s.w $f16, $f10 +/* 06C408 7F0378D8 44819000 */ mtc1 $at, $f18 +/* 06C40C 7F0378DC 00000000 */ nop +/* 06C410 7F0378E0 46128400 */ add.s $f16, $f16, $f18 +.L7F0378E4: +/* 06C414 7F0378E4 3C018005 */ lui $at, %hi(D_800528F0) +/* 06C418 7F0378E8 C42428F0 */ lwc1 $f4, %lo(D_800528F0)($at) +/* 06C41C 7F0378EC 02E02025 */ move $a0, $s7 +/* 06C420 7F0378F0 46048202 */ mul.s $f8, $f16, $f4 +/* 06C424 7F0378F4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 06C428 7F0378F8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C42C 7F0378FC 92250001 */ lbu $a1, 1($s1) +/* 06C430 7F037900 50400011 */ beql $v0, $zero, .L7F037948 +/* 06C434 7F037904 26520004 */ addiu $s2, $s2, 4 +/* 06C438 7F037908 C44A0100 */ lwc1 $f10, 0x100($v0) +/* 06C43C 7F03790C C45200FC */ lwc1 $f18, 0xfc($v0) +/* 06C440 7F037910 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 06C444 7F037914 02C02025 */ move $a0, $s6 +/* 06C448 7F037918 46125401 */ sub.s $f16, $f10, $f18 +/* 06C44C 7F03791C 02402825 */ move $a1, $s2 +/* 06C450 7F037920 4610303C */ c.lt.s $f6, $f16 +/* 06C454 7F037924 00000000 */ nop +/* 06C458 7F037928 45020007 */ bc1fl .L7F037948 +/* 06C45C 7F03792C 26520004 */ addiu $s2, $s2, 4 +/* 06C460 7F037930 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C464 7F037934 92260003 */ lbu $a2, 3($s1) +/* 06C468 7F037938 00409025 */ move $s2, $v0 +/* 06C46C 7F03793C 1000F713 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C470 7F037940 02C28821 */ addu $s1, $s6, $v0 +/* 06C474 7F037944 26520004 */ addiu $s2, $s2, 4 +.L7F037948: +/* 06C478 7F037948 1000F710 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C47C 7F03794C 26310004 */ addiu $s1, $s1, 4 +action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3: +/* 06C480 7F037950 02E02025 */ move $a0, $s7 +/* 06C484 7F037954 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C488 7F037958 92250001 */ lbu $a1, 1($s1) +/* 06C48C 7F03795C 50400011 */ beql $v0, $zero, .L7F0379A4 +/* 06C490 7F037960 26520003 */ addiu $s2, $s2, 3 +/* 06C494 7F037964 8C4C0014 */ lw $t4, 0x14($v0) +/* 06C498 7F037968 2401FEFF */ li $at, -257 +/* 06C49C 7F03796C 31990100 */ andi $t9, $t4, 0x100 +/* 06C4A0 7F037970 5320000C */ beql $t9, $zero, .L7F0379A4 +/* 06C4A4 7F037974 26520003 */ addiu $s2, $s2, 3 +/* 06C4A8 7F037978 8C4D0014 */ lw $t5, 0x14($v0) +/* 06C4AC 7F03797C 02C02025 */ move $a0, $s6 +/* 06C4B0 7F037980 02402825 */ move $a1, $s2 +/* 06C4B4 7F037984 01A17024 */ and $t6, $t5, $at +/* 06C4B8 7F037988 AC4E0014 */ sw $t6, 0x14($v0) +/* 06C4BC 7F03798C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C4C0 7F037990 92260002 */ lbu $a2, 2($s1) +/* 06C4C4 7F037994 00409025 */ move $s2, $v0 +/* 06C4C8 7F037998 1000F6FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4CC 7F03799C 02C28821 */ addu $s1, $s6, $v0 +/* 06C4D0 7F0379A0 26520003 */ addiu $s2, $s2, 3 +.L7F0379A4: +/* 06C4D4 7F0379A4 1000F6F9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4D8 7F0379A8 26310003 */ addiu $s1, $s1, 3 +action7F_If_Health_Below_Value_RVL_3: +/* 06C4DC 7F0379AC 922F0001 */ lbu $t7, 1($s1) +/* 06C4E0 7F0379B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C4E4 7F0379B4 448F2000 */ mtc1 $t7, $f4 +/* 06C4E8 7F0379B8 05E10004 */ bgez $t7, .L7F0379CC +/* 06C4EC 7F0379BC 46802220 */ cvt.s.w $f8, $f4 +/* 06C4F0 7F0379C0 44815000 */ mtc1 $at, $f10 +/* 06C4F4 7F0379C4 00000000 */ nop +/* 06C4F8 7F0379C8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0379CC: +/* 06C4FC 7F0379CC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C500 7F0379D0 44819000 */ mtc1 $at, $f18 +/* 06C504 7F0379D4 00000000 */ nop +/* 06C508 7F0379D8 46124183 */ div.s $f6, $f8, $f18 +/* 06C50C 7F0379DC 0FC228BB */ jal get_BONDdata_watch_health +/* 06C510 7F0379E0 E7A60418 */ swc1 $f6, 0x418($sp) +/* 06C514 7F0379E4 C7B00418 */ lwc1 $f16, 0x418($sp) +/* 06C518 7F0379E8 02C02025 */ move $a0, $s6 +/* 06C51C 7F0379EC 02402825 */ move $a1, $s2 +/* 06C520 7F0379F0 4610003C */ c.lt.s $f0, $f16 +/* 06C524 7F0379F4 00000000 */ nop +/* 06C528 7F0379F8 45020007 */ bc1fl .L7F037A18 +/* 06C52C 7F0379FC 26520003 */ addiu $s2, $s2, 3 +/* 06C530 7F037A00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C534 7F037A04 92260002 */ lbu $a2, 2($s1) +/* 06C538 7F037A08 00409025 */ move $s2, $v0 +/* 06C53C 7F037A0C 1000F6DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C540 7F037A10 02C28821 */ addu $s1, $s6, $v0 +/* 06C544 7F037A14 26520003 */ addiu $s2, $s2, 3 +.L7F037A18: +/* 06C548 7F037A18 1000F6DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C54C 7F037A1C 26310003 */ addiu $s1, $s1, 3 +action80_If_Health_Above_Value_RVL_3: +/* 06C550 7F037A20 92380001 */ lbu $t8, 1($s1) +/* 06C554 7F037A24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C558 7F037A28 44982000 */ mtc1 $t8, $f4 +/* 06C55C 7F037A2C 07010004 */ bgez $t8, .L7F037A40 +/* 06C560 7F037A30 468022A0 */ cvt.s.w $f10, $f4 +/* 06C564 7F037A34 44814000 */ mtc1 $at, $f8 +/* 06C568 7F037A38 00000000 */ nop +/* 06C56C 7F037A3C 46085280 */ add.s $f10, $f10, $f8 +.L7F037A40: +/* 06C570 7F037A40 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C574 7F037A44 44819000 */ mtc1 $at, $f18 +/* 06C578 7F037A48 00000000 */ nop +/* 06C57C 7F037A4C 46125183 */ div.s $f6, $f10, $f18 +/* 06C580 7F037A50 0FC228BB */ jal get_BONDdata_watch_health +/* 06C584 7F037A54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 06C588 7F037A58 C7B00410 */ lwc1 $f16, 0x410($sp) +/* 06C58C 7F037A5C 02C02025 */ move $a0, $s6 +/* 06C590 7F037A60 02402825 */ move $a1, $s2 +/* 06C594 7F037A64 4600803C */ c.lt.s $f16, $f0 +/* 06C598 7F037A68 00000000 */ nop +/* 06C59C 7F037A6C 45020007 */ bc1fl .L7F037A8C +/* 06C5A0 7F037A70 26520003 */ addiu $s2, $s2, 3 +/* 06C5A4 7F037A74 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5A8 7F037A78 92260002 */ lbu $a2, 2($s1) +/* 06C5AC 7F037A7C 00409025 */ move $s2, $v0 +/* 06C5B0 7F037A80 1000F6C2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5B4 7F037A84 02C28821 */ addu $s1, $s6, $v0 +/* 06C5B8 7F037A88 26520003 */ addiu $s2, $s2, 3 +.L7F037A8C: +/* 06C5BC 7F037A8C 1000F6BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5C0 7F037A90 26310003 */ addiu $s1, $s1, 3 +action70_Go_Into_RVL_Difficulty_LTV_3: +/* 06C5C4 7F037A94 0FC2FF04 */ jal get_current_difficulty +/* 06C5C8 7F037A98 00000000 */ nop +/* 06C5CC 7F037A9C 92290001 */ lbu $t1, 1($s1) +/* 06C5D0 7F037AA0 02C02025 */ move $a0, $s6 +/* 06C5D4 7F037AA4 02402825 */ move $a1, $s2 +/* 06C5D8 7F037AA8 0049082A */ slt $at, $v0, $t1 +/* 06C5DC 7F037AAC 50200007 */ beql $at, $zero, .L7F037ACC +/* 06C5E0 7F037AB0 26520003 */ addiu $s2, $s2, 3 +/* 06C5E4 7F037AB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5E8 7F037AB8 92260002 */ lbu $a2, 2($s1) +/* 06C5EC 7F037ABC 00409025 */ move $s2, $v0 +/* 06C5F0 7F037AC0 1000F6B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5F4 7F037AC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C5F8 7F037AC8 26520003 */ addiu $s2, $s2, 3 +.L7F037ACC: +/* 06C5FC 7F037ACC 1000F6AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C600 7F037AD0 26310003 */ addiu $s1, $s1, 3 +action71_GoIntoRVLIf_Difficulty_GTV_3: +/* 06C604 7F037AD4 0FC2FF04 */ jal get_current_difficulty +/* 06C608 7F037AD8 00000000 */ nop +/* 06C60C 7F037ADC 922A0001 */ lbu $t2, 1($s1) +/* 06C610 7F037AE0 02C02025 */ move $a0, $s6 +/* 06C614 7F037AE4 02402825 */ move $a1, $s2 +/* 06C618 7F037AE8 0142082A */ slt $at, $t2, $v0 +/* 06C61C 7F037AEC 50200007 */ beql $at, $zero, .L7F037B0C +/* 06C620 7F037AF0 26520003 */ addiu $s2, $s2, 3 +/* 06C624 7F037AF4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C628 7F037AF8 92260002 */ lbu $a2, 2($s1) +/* 06C62C 7F037AFC 00409025 */ move $s2, $v0 +/* 06C630 7F037B00 1000F6A2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C634 7F037B04 02C28821 */ addu $s1, $s6, $v0 +/* 06C638 7F037B08 26520003 */ addiu $s2, $s2, 3 +.L7F037B0C: +/* 06C63C 7F037B0C 1000F69F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C640 7F037B10 26310003 */ addiu $s1, $s1, 3 +action72_Go_To_RVL_If_Time_LTV_4: +/* 06C644 7F037B14 922B0001 */ lbu $t3, 1($s1) +/* 06C648 7F037B18 92390002 */ lbu $t9, 2($s1) +/* 06C64C 7F037B1C 000B6200 */ sll $t4, $t3, 8 +/* 06C650 7F037B20 01996825 */ or $t5, $t4, $t9 +/* 06C654 7F037B24 448D2000 */ mtc1 $t5, $f4 +/* 06C658 7F037B28 00000000 */ nop +/* 06C65C 7F037B2C 46802220 */ cvt.s.w $f8, $f4 +/* 06C660 7F037B30 0FC2FF10 */ jal get_cur_mp_sec +/* 06C664 7F037B34 E7A80400 */ swc1 $f8, 0x400($sp) +/* 06C668 7F037B38 C7AA0400 */ lwc1 $f10, 0x400($sp) +/* 06C66C 7F037B3C 02C02025 */ move $a0, $s6 +/* 06C670 7F037B40 02402825 */ move $a1, $s2 +/* 06C674 7F037B44 460A003C */ c.lt.s $f0, $f10 +/* 06C678 7F037B48 00000000 */ nop +/* 06C67C 7F037B4C 45020007 */ bc1fl .L7F037B6C +/* 06C680 7F037B50 26520004 */ addiu $s2, $s2, 4 +/* 06C684 7F037B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C688 7F037B58 92260003 */ lbu $a2, 3($s1) +/* 06C68C 7F037B5C 00409025 */ move $s2, $v0 +/* 06C690 7F037B60 1000F68A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C694 7F037B64 02C28821 */ addu $s1, $s6, $v0 +/* 06C698 7F037B68 26520004 */ addiu $s2, $s2, 4 +.L7F037B6C: +/* 06C69C 7F037B6C 1000F687 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6A0 7F037B70 26310004 */ addiu $s1, $s1, 4 +action73_Go_To_RVL_If_Time_GTV_4: +/* 06C6A4 7F037B74 922E0001 */ lbu $t6, 1($s1) +/* 06C6A8 7F037B78 92380002 */ lbu $t8, 2($s1) +/* 06C6AC 7F037B7C 000E7A00 */ sll $t7, $t6, 8 +/* 06C6B0 7F037B80 01F84825 */ or $t1, $t7, $t8 +/* 06C6B4 7F037B84 44899000 */ mtc1 $t1, $f18 +/* 06C6B8 7F037B88 00000000 */ nop +/* 06C6BC 7F037B8C 468091A0 */ cvt.s.w $f6, $f18 +/* 06C6C0 7F037B90 0FC2FF10 */ jal get_cur_mp_sec +/* 06C6C4 7F037B94 E7A603F8 */ swc1 $f6, 0x3f8($sp) +/* 06C6C8 7F037B98 C7B003F8 */ lwc1 $f16, 0x3f8($sp) +/* 06C6CC 7F037B9C 02C02025 */ move $a0, $s6 +/* 06C6D0 7F037BA0 02402825 */ move $a1, $s2 +/* 06C6D4 7F037BA4 4600803C */ c.lt.s $f16, $f0 +/* 06C6D8 7F037BA8 00000000 */ nop +/* 06C6DC 7F037BAC 45020007 */ bc1fl .L7F037BCC +/* 06C6E0 7F037BB0 26520004 */ addiu $s2, $s2, 4 +/* 06C6E4 7F037BB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C6E8 7F037BB8 92260003 */ lbu $a2, 3($s1) +/* 06C6EC 7F037BBC 00409025 */ move $s2, $v0 +/* 06C6F0 7F037BC0 1000F672 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6F4 7F037BC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C6F8 7F037BC8 26520004 */ addiu $s2, $s2, 4 +.L7F037BCC: +/* 06C6FC 7F037BCC 1000F66F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C700 7F037BD0 26310004 */ addiu $s1, $s1, 4 +action74_Go_To_RVL_If_Power_On_Time_LTV_4: +/* 06C704 7F037BD4 922A0001 */ lbu $t2, 1($s1) +/* 06C708 7F037BD8 922C0002 */ lbu $t4, 2($s1) +/* 06C70C 7F037BDC 000A5A00 */ sll $t3, $t2, 8 +/* 06C710 7F037BE0 016CC825 */ or $t9, $t3, $t4 +/* 06C714 7F037BE4 44992000 */ mtc1 $t9, $f4 +/* 06C718 7F037BE8 00000000 */ nop +/* 06C71C 7F037BEC 46802220 */ cvt.s.w $f8, $f4 +/* 06C720 7F037BF0 46164282 */ mul.s $f10, $f8, $f22 +/* 06C724 7F037BF4 0FC2FF13 */ jal get_cur_mp_min +/* 06C728 7F037BF8 E7AA03F0 */ swc1 $f10, 0x3f0($sp) +/* 06C72C 7F037BFC C7B203F0 */ lwc1 $f18, 0x3f0($sp) +/* 06C730 7F037C00 02C02025 */ move $a0, $s6 +/* 06C734 7F037C04 02402825 */ move $a1, $s2 +/* 06C738 7F037C08 4612003C */ c.lt.s $f0, $f18 +/* 06C73C 7F037C0C 00000000 */ nop +/* 06C740 7F037C10 45020007 */ bc1fl .L7F037C30 +/* 06C744 7F037C14 26520004 */ addiu $s2, $s2, 4 +/* 06C748 7F037C18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C74C 7F037C1C 92260003 */ lbu $a2, 3($s1) +/* 06C750 7F037C20 00409025 */ move $s2, $v0 +/* 06C754 7F037C24 1000F659 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C758 7F037C28 02C28821 */ addu $s1, $s6, $v0 +/* 06C75C 7F037C2C 26520004 */ addiu $s2, $s2, 4 +.L7F037C30: +/* 06C760 7F037C30 1000F656 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C764 7F037C34 26310004 */ addiu $s1, $s1, 4 +action75_Go_To_RVL_If_Power_On_Time_GTV_4: +/* 06C768 7F037C38 922D0001 */ lbu $t5, 1($s1) +/* 06C76C 7F037C3C 922F0002 */ lbu $t7, 2($s1) +/* 06C770 7F037C40 000D7200 */ sll $t6, $t5, 8 +/* 06C774 7F037C44 01CFC025 */ or $t8, $t6, $t7 +/* 06C778 7F037C48 44983000 */ mtc1 $t8, $f6 +/* 06C77C 7F037C4C 00000000 */ nop +/* 06C780 7F037C50 46803420 */ cvt.s.w $f16, $f6 +/* 06C784 7F037C54 46168102 */ mul.s $f4, $f16, $f22 +/* 06C788 7F037C58 0FC2FF13 */ jal get_cur_mp_min +/* 06C78C 7F037C5C E7A403E8 */ swc1 $f4, 0x3e8($sp) +/* 06C790 7F037C60 C7A803E8 */ lwc1 $f8, 0x3e8($sp) +/* 06C794 7F037C64 02C02025 */ move $a0, $s6 +/* 06C798 7F037C68 02402825 */ move $a1, $s2 +/* 06C79C 7F037C6C 4600403C */ c.lt.s $f8, $f0 +/* 06C7A0 7F037C70 00000000 */ nop +/* 06C7A4 7F037C74 45020007 */ bc1fl .L7F037C94 +/* 06C7A8 7F037C78 26520004 */ addiu $s2, $s2, 4 +/* 06C7AC 7F037C7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7B0 7F037C80 92260003 */ lbu $a2, 3($s1) +/* 06C7B4 7F037C84 00409025 */ move $s2, $v0 +/* 06C7B8 7F037C88 1000F640 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7BC 7F037C8C 02C28821 */ addu $s1, $s6, $v0 +/* 06C7C0 7F037C90 26520004 */ addiu $s2, $s2, 4 +.L7F037C94: +/* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 +action76_Go_To_RVL_If_Stage_Number_LTV_3: +/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7D0 7F037CA0 00000000 */ nop +/* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) +/* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 +/* 06C7DC 7F037CAC 02402825 */ move $a1, $s2 +/* 06C7E0 7F037CB0 0049082A */ slt $at, $v0, $t1 +/* 06C7E4 7F037CB4 50200007 */ beql $at, $zero, .L7F037CD4 +/* 06C7E8 7F037CB8 26520003 */ addiu $s2, $s2, 3 +/* 06C7EC 7F037CBC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7F0 7F037CC0 92260002 */ lbu $a2, 2($s1) +/* 06C7F4 7F037CC4 00409025 */ move $s2, $v0 +/* 06C7F8 7F037CC8 1000F630 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7FC 7F037CCC 02C28821 */ addu $s1, $s6, $v0 +/* 06C800 7F037CD0 26520003 */ addiu $s2, $s2, 3 +.L7F037CD4: +/* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 +action77_Go_To_RVL_If_Stage_Number_GTV_3: +/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C810 7F037CE0 00000000 */ nop +/* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) +/* 06C818 7F037CE8 02C02025 */ move $a0, $s6 +/* 06C81C 7F037CEC 02402825 */ move $a1, $s2 +/* 06C820 7F037CF0 0142082A */ slt $at, $t2, $v0 +/* 06C824 7F037CF4 50200007 */ beql $at, $zero, .L7F037D14 +/* 06C828 7F037CF8 26520003 */ addiu $s2, $s2, 3 +/* 06C82C 7F037CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C830 7F037D00 92260002 */ lbu $a2, 2($s1) +/* 06C834 7F037D04 00409025 */ move $s2, $v0 +/* 06C838 7F037D08 1000F620 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C83C 7F037D0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C840 7F037D10 26520003 */ addiu $s2, $s2, 3 +.L7F037D14: +/* 06C844 7F037D14 1000F61D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C848 7F037D18 26310003 */ addiu $s1, $s1, 3 +action81_Set_User_Byte_num1_2: +/* 06C84C 7F037D1C 922B0001 */ lbu $t3, 1($s1) +/* 06C850 7F037D20 26520002 */ addiu $s2, $s2, 2 +/* 06C854 7F037D24 26310002 */ addiu $s1, $s1, 2 +/* 06C858 7F037D28 1000F618 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C85C 7F037D2C A2EB010C */ sb $t3, 0x10c($s7) +action82_Add_Value_To_User_Byte_num1_Max_To_FF_2: +/* 06C860 7F037D30 92250001 */ lbu $a1, 1($s1) +/* 06C864 7F037D34 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C868 7F037D38 240C00FF */ li $t4, 255 +/* 06C86C 7F037D3C 0185C823 */ subu $t9, $t4, $a1 +/* 06C870 7F037D40 0322082A */ slt $at, $t9, $v0 +/* 06C874 7F037D44 10200006 */ beqz $at, .L7F037D60 +/* 06C878 7F037D48 00457021 */ addu $t6, $v0, $a1 +/* 06C87C 7F037D4C 240D00FF */ li $t5, 255 +/* 06C880 7F037D50 A2ED010C */ sb $t5, 0x10c($s7) +/* 06C884 7F037D54 26520002 */ addiu $s2, $s2, 2 +/* 06C888 7F037D58 1000F60C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C88C 7F037D5C 26310002 */ addiu $s1, $s1, 2 +.L7F037D60: +/* 06C890 7F037D60 A2EE010C */ sb $t6, 0x10c($s7) +/* 06C894 7F037D64 26520002 */ addiu $s2, $s2, 2 +/* 06C898 7F037D68 1000F608 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C89C 7F037D6C 26310002 */ addiu $s1, $s1, 2 +action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2: +/* 06C8A0 7F037D70 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C8A4 7F037D74 92250001 */ lbu $a1, 1($s1) +/* 06C8A8 7F037D78 0045082A */ slt $at, $v0, $a1 +/* 06C8AC 7F037D7C 10200005 */ beqz $at, .L7F037D94 +/* 06C8B0 7F037D80 00457823 */ subu $t7, $v0, $a1 +/* 06C8B4 7F037D84 A2E0010C */ sb $zero, 0x10c($s7) +/* 06C8B8 7F037D88 26520002 */ addiu $s2, $s2, 2 +/* 06C8BC 7F037D8C 1000F5FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8C0 7F037D90 26310002 */ addiu $s1, $s1, 2 +.L7F037D94: +/* 06C8C4 7F037D94 A2EF010C */ sb $t7, 0x10c($s7) +/* 06C8C8 7F037D98 26520002 */ addiu $s2, $s2, 2 +/* 06C8CC 7F037D9C 1000F5FB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8D0 7F037DA0 26310002 */ addiu $s1, $s1, 2 +action84_If_Value_GreaterThan_User_Byte_num1_RVL_3: +/* 06C8D4 7F037DA4 92F8010C */ lbu $t8, 0x10c($s7) +/* 06C8D8 7F037DA8 92290001 */ lbu $t1, 1($s1) +/* 06C8DC 7F037DAC 02C02025 */ move $a0, $s6 +/* 06C8E0 7F037DB0 02402825 */ move $a1, $s2 +/* 06C8E4 7F037DB4 0309082A */ slt $at, $t8, $t1 +/* 06C8E8 7F037DB8 50200007 */ beql $at, $zero, .L7F037DD8 +/* 06C8EC 7F037DBC 26520003 */ addiu $s2, $s2, 3 +/* 06C8F0 7F037DC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C8F4 7F037DC4 92260002 */ lbu $a2, 2($s1) +/* 06C8F8 7F037DC8 00409025 */ move $s2, $v0 +/* 06C8FC 7F037DCC 1000F5EF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C900 7F037DD0 02C28821 */ addu $s1, $s6, $v0 +/* 06C904 7F037DD4 26520003 */ addiu $s2, $s2, 3 +.L7F037DD8: +/* 06C908 7F037DD8 1000F5EC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C90C 7F037DDC 26310003 */ addiu $s1, $s1, 3 +action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2: +/* 06C910 7F037DE0 92EA010C */ lbu $t2, 0x10c($s7) +/* 06C914 7F037DE4 92EB010F */ lbu $t3, 0x10f($s7) +/* 06C918 7F037DE8 02C02025 */ move $a0, $s6 +/* 06C91C 7F037DEC 02402825 */ move $a1, $s2 +/* 06C920 7F037DF0 014B082A */ slt $at, $t2, $t3 +/* 06C924 7F037DF4 50200007 */ beql $at, $zero, .L7F037E14 +/* 06C928 7F037DF8 26520002 */ addiu $s2, $s2, 2 +/* 06C92C 7F037DFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C930 7F037E00 92260001 */ lbu $a2, 1($s1) +/* 06C934 7F037E04 00409025 */ move $s2, $v0 +/* 06C938 7F037E08 1000F5E0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C93C 7F037E0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C940 7F037E10 26520002 */ addiu $s2, $s2, 2 +.L7F037E14: +/* 06C944 7F037E14 1000F5DD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C948 7F037E18 26310002 */ addiu $s1, $s1, 2 +action86_Set_User_Byte_num2_2: +/* 06C94C 7F037E1C 922C0001 */ lbu $t4, 1($s1) +/* 06C950 7F037E20 26520002 */ addiu $s2, $s2, 2 +/* 06C954 7F037E24 26310002 */ addiu $s1, $s1, 2 +/* 06C958 7F037E28 1000F5D8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C95C 7F037E2C A2EC010D */ sb $t4, 0x10d($s7) +action87_Add_Value_To_User_Byte_num2_Max_To_FF_2: +/* 06C960 7F037E30 92250001 */ lbu $a1, 1($s1) +/* 06C964 7F037E34 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C968 7F037E38 241900FF */ li $t9, 255 +/* 06C96C 7F037E3C 03256823 */ subu $t5, $t9, $a1 +/* 06C970 7F037E40 01A2082A */ slt $at, $t5, $v0 +/* 06C974 7F037E44 10200006 */ beqz $at, .L7F037E60 +/* 06C978 7F037E48 00457821 */ addu $t7, $v0, $a1 +/* 06C97C 7F037E4C 240E00FF */ li $t6, 255 +/* 06C980 7F037E50 A2EE010D */ sb $t6, 0x10d($s7) +/* 06C984 7F037E54 26520002 */ addiu $s2, $s2, 2 +/* 06C988 7F037E58 1000F5CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C98C 7F037E5C 26310002 */ addiu $s1, $s1, 2 +.L7F037E60: +/* 06C990 7F037E60 A2EF010D */ sb $t7, 0x10d($s7) +/* 06C994 7F037E64 26520002 */ addiu $s2, $s2, 2 +/* 06C998 7F037E68 1000F5C8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C99C 7F037E6C 26310002 */ addiu $s1, $s1, 2 +action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2: +/* 06C9A0 7F037E70 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C9A4 7F037E74 92250001 */ lbu $a1, 1($s1) +/* 06C9A8 7F037E78 0045082A */ slt $at, $v0, $a1 +/* 06C9AC 7F037E7C 10200005 */ beqz $at, .L7F037E94 +/* 06C9B0 7F037E80 0045C023 */ subu $t8, $v0, $a1 +/* 06C9B4 7F037E84 A2E0010D */ sb $zero, 0x10d($s7) +/* 06C9B8 7F037E88 26520002 */ addiu $s2, $s2, 2 +/* 06C9BC 7F037E8C 1000F5BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9C0 7F037E90 26310002 */ addiu $s1, $s1, 2 +.L7F037E94: +/* 06C9C4 7F037E94 A2F8010D */ sb $t8, 0x10d($s7) +/* 06C9C8 7F037E98 26520002 */ addiu $s2, $s2, 2 +/* 06C9CC 7F037E9C 1000F5BB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9D0 7F037EA0 26310002 */ addiu $s1, $s1, 2 +action89_If_Value_GreaterThan_User_Byte_num2_RVL_3: +/* 06C9D4 7F037EA4 92E9010D */ lbu $t1, 0x10d($s7) +/* 06C9D8 7F037EA8 922A0001 */ lbu $t2, 1($s1) +/* 06C9DC 7F037EAC 02C02025 */ move $a0, $s6 +/* 06C9E0 7F037EB0 02402825 */ move $a1, $s2 +/* 06C9E4 7F037EB4 012A082A */ slt $at, $t1, $t2 +/* 06C9E8 7F037EB8 50200007 */ beql $at, $zero, .L7F037ED8 +/* 06C9EC 7F037EBC 26520003 */ addiu $s2, $s2, 3 +/* 06C9F0 7F037EC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C9F4 7F037EC4 92260002 */ lbu $a2, 2($s1) +/* 06C9F8 7F037EC8 00409025 */ move $s2, $v0 +/* 06C9FC 7F037ECC 1000F5AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA00 7F037ED0 02C28821 */ addu $s1, $s6, $v0 +/* 06CA04 7F037ED4 26520003 */ addiu $s2, $s2, 3 +.L7F037ED8: +/* 06CA08 7F037ED8 1000F5AC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA0C 7F037EDC 26310003 */ addiu $s1, $s1, 3 +action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2: +/* 06CA10 7F037EE0 92EB010D */ lbu $t3, 0x10d($s7) +/* 06CA14 7F037EE4 92EC010F */ lbu $t4, 0x10f($s7) +/* 06CA18 7F037EE8 02C02025 */ move $a0, $s6 +/* 06CA1C 7F037EEC 02402825 */ move $a1, $s2 +/* 06CA20 7F037EF0 016C082A */ slt $at, $t3, $t4 +/* 06CA24 7F037EF4 50200007 */ beql $at, $zero, .L7F037F14 +/* 06CA28 7F037EF8 26520002 */ addiu $s2, $s2, 2 +/* 06CA2C 7F037EFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CA30 7F037F00 92260001 */ lbu $a2, 1($s1) +/* 06CA34 7F037F04 00409025 */ move $s2, $v0 +/* 06CA38 7F037F08 1000F5A0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA3C 7F037F0C 02C28821 */ addu $s1, $s6, $v0 +/* 06CA40 7F037F10 26520002 */ addiu $s2, $s2, 2 +.L7F037F14: +/* 06CA44 7F037F14 1000F59D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA48 7F037F18 26310002 */ addiu $s1, $s1, 2 +action8B_Set_Guard_Hearing_Distance_3: +/* 06CA4C 7F037F1C 92390001 */ lbu $t9, 1($s1) +/* 06CA50 7F037F20 922E0002 */ lbu $t6, 2($s1) +/* 06CA54 7F037F24 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 06CA58 7F037F28 00196A00 */ sll $t5, $t9, 8 +/* 06CA5C 7F037F2C 01AE7825 */ or $t7, $t5, $t6 +/* 06CA60 7F037F30 448F5000 */ mtc1 $t7, $f10 +/* 06CA64 7F037F34 44813000 */ mtc1 $at, $f6 +/* 06CA68 7F037F38 26520003 */ addiu $s2, $s2, 3 +/* 06CA6C 7F037F3C 468054A0 */ cvt.s.w $f18, $f10 +/* 06CA70 7F037F40 26310003 */ addiu $s1, $s1, 3 +/* 06CA74 7F037F44 46069003 */ div.s $f0, $f18, $f6 +/* 06CA78 7F037F48 1000F590 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA7C 7F037F4C E6E000EC */ swc1 $f0, 0xec($s7) +action8C_Set_Guard_Visible_Distance_2: +/* 06CA80 7F037F50 92380001 */ lbu $t8, 1($s1) +/* 06CA84 7F037F54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06CA88 7F037F58 26520002 */ addiu $s2, $s2, 2 +/* 06CA8C 7F037F5C 44988000 */ mtc1 $t8, $f16 +/* 06CA90 7F037F60 26310002 */ addiu $s1, $s1, 2 +/* 06CA94 7F037F64 07010004 */ bgez $t8, .L7F037F78 +/* 06CA98 7F037F68 46808120 */ cvt.s.w $f4, $f16 +/* 06CA9C 7F037F6C 44814000 */ mtc1 $at, $f8 +/* 06CAA0 7F037F70 00000000 */ nop +/* 06CAA4 7F037F74 46082100 */ add.s $f4, $f4, $f8 +.L7F037F78: +/* 06CAA8 7F037F78 1000F584 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAAC 7F037F7C E6E400D0 */ swc1 $f4, 0xd0($s7) +action8D_Set_Guard_Grenade_Probability_2: +/* 06CAB0 7F037F80 92290001 */ lbu $t1, 1($s1) +/* 06CAB4 7F037F84 26520002 */ addiu $s2, $s2, 2 +/* 06CAB8 7F037F88 26310002 */ addiu $s1, $s1, 2 +/* 06CABC 7F037F8C 1000F57F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAC0 7F037F90 A2E90010 */ sb $t1, 0x10($s7) +action8E_Set_Guard_ID_2: +/* 06CAC4 7F037F94 922A0001 */ lbu $t2, 1($s1) +/* 06CAC8 7F037F98 26520002 */ addiu $s2, $s2, 2 +/* 06CACC 7F037F9C 26310002 */ addiu $s1, $s1, 2 +/* 06CAD0 7F037FA0 1000F57A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAD4 7F037FA4 A6EA0000 */ sh $t2, ($s7) +action8F_Set_Guard_Health_3: +/* 06CAD8 7F037FA8 922B0001 */ lbu $t3, 1($s1) +/* 06CADC 7F037FAC 92390002 */ lbu $t9, 2($s1) +/* 06CAE0 7F037FB0 3C018005 */ lui $at, %hi(D_800528F4) +/* 06CAE4 7F037FB4 000B6200 */ sll $t4, $t3, 8 +/* 06CAE8 7F037FB8 01996825 */ or $t5, $t4, $t9 +/* 06CAEC 7F037FBC 448D5000 */ mtc1 $t5, $f10 +/* 06CAF0 7F037FC0 C42628F4 */ lwc1 $f6, %lo(D_800528F4)($at) +/* 06CAF4 7F037FC4 02E02025 */ move $a0, $s7 +/* 06CAF8 7F037FC8 468054A0 */ cvt.s.w $f18, $f10 +/* 06CAFC 7F037FCC 46069002 */ mul.s $f0, $f18, $f6 +/* 06CB00 7F037FD0 44050000 */ mfc1 $a1, $f0 +/* 06CB04 7F037FD4 0FC08006 */ jal sub_GAME_7F020018 +/* 06CB08 7F037FD8 00000000 */ nop +/* 06CB0C 7F037FDC 26520003 */ addiu $s2, $s2, 3 +/* 06CB10 7F037FE0 1000F56A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB14 7F037FE4 26310003 */ addiu $s1, $s1, 3 +action90_Set_Guard_Armor_Amount_3: +/* 06CB18 7F037FE8 922E0001 */ lbu $t6, 1($s1) +/* 06CB1C 7F037FEC 92380002 */ lbu $t8, 2($s1) +/* 06CB20 7F037FF0 3C018005 */ lui $at, %hi(D_800528F8) +/* 06CB24 7F037FF4 000E7A00 */ sll $t7, $t6, 8 +/* 06CB28 7F037FF8 01F84825 */ or $t1, $t7, $t8 +/* 06CB2C 7F037FFC 44898000 */ mtc1 $t1, $f16 +/* 06CB30 7F038000 C42428F8 */ lwc1 $f4, %lo(D_800528F8)($at) +/* 06CB34 7F038004 02E02025 */ move $a0, $s7 +/* 06CB38 7F038008 46808220 */ cvt.s.w $f8, $f16 +/* 06CB3C 7F03800C 46044002 */ mul.s $f0, $f8, $f4 +/* 06CB40 7F038010 44050000 */ mfc1 $a1, $f0 +/* 06CB44 7F038014 0FC08015 */ jal sub_GAME_7F020054 +/* 06CB48 7F038018 00000000 */ nop +/* 06CB4C 7F03801C 26520003 */ addiu $s2, $s2, 3 +/* 06CB50 7F038020 1000F55A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB54 7F038024 26310003 */ addiu $s1, $s1, 3 +action91_Set_Character_Reaction_Speed_2: +/* 06CB58 7F038028 822A0001 */ lb $t2, 1($s1) +/* 06CB5C 7F03802C 26520002 */ addiu $s2, $s2, 2 +/* 06CB60 7F038030 26310002 */ addiu $s1, $s1, 2 +/* 06CB64 7F038034 1000F555 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB68 7F038038 A2EA0003 */ sb $t2, 3($s7) +action92_Set_Character_Injury_Recovery_Speed_2: +/* 06CB6C 7F03803C 822B0001 */ lb $t3, 1($s1) +/* 06CB70 7F038040 26520002 */ addiu $s2, $s2, 2 +/* 06CB74 7F038044 26310002 */ addiu $s1, $s1, 2 +/* 06CB78 7F038048 1000F550 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB7C 7F03804C A2EB000D */ sb $t3, 0xd($s7) +action93_Set_Character_Accuracy_2: +/* 06CB80 7F038050 822C0001 */ lb $t4, 1($s1) +/* 06CB84 7F038054 26520002 */ addiu $s2, $s2, 2 +/* 06CB88 7F038058 26310002 */ addiu $s1, $s1, 2 +/* 06CB8C 7F03805C 1000F54B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB90 7F038060 A2EC0002 */ sb $t4, 2($s7) +action94_Mask_Guard_Type_With_Value_2: +/* 06CB94 7F038064 02E02025 */ move $a0, $s7 +/* 06CB98 7F038068 0FC0CC86 */ jal sub_GAME_7F033218 +/* 06CB9C 7F03806C 92250001 */ lbu $a1, 1($s1) +/* 06CBA0 7F038070 26520002 */ addiu $s2, $s2, 2 +/* 06CBA4 7F038074 1000F545 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBA8 7F038078 26310002 */ addiu $s1, $s1, 2 +action95_Unmask_Guard_Type_With_Value_2: +/* 06CBAC 7F03807C 02E02025 */ move $a0, $s7 +/* 06CBB0 7F038080 0FC0CC8B */ jal sub_GAME_7F03322C +/* 06CBB4 7F038084 92250001 */ lbu $a1, 1($s1) +/* 06CBB8 7F038088 26520002 */ addiu $s2, $s2, 2 +/* 06CBBC 7F03808C 1000F53F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBC0 7F038090 26310002 */ addiu $s1, $s1, 2 +action96_If_Guard_Type_Value_Is_Set_RVL_3: +/* 06CBC4 7F038094 02E02025 */ move $a0, $s7 +/* 06CBC8 7F038098 0FC0CC91 */ jal sub_GAME_7F033244 +/* 06CBCC 7F03809C 92250001 */ lbu $a1, 1($s1) +/* 06CBD0 7F0380A0 10400007 */ beqz $v0, .L7F0380C0 +/* 06CBD4 7F0380A4 02C02025 */ move $a0, $s6 +/* 06CBD8 7F0380A8 02402825 */ move $a1, $s2 +/* 06CBDC 7F0380AC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CBE0 7F0380B0 92260002 */ lbu $a2, 2($s1) +/* 06CBE4 7F0380B4 00409025 */ move $s2, $v0 +/* 06CBE8 7F0380B8 1000F534 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBEC 7F0380BC 02C28821 */ addu $s1, $s6, $v0 +.L7F0380C0: +/* 06CBF0 7F0380C0 26520003 */ addiu $s2, $s2, 3 +/* 06CBF4 7F0380C4 1000F531 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBF8 7F0380C8 26310003 */ addiu $s1, $s1, 3 +action97_Mask_Guard_Type_Flags_With_Value_3: +/* 06CBFC 7F0380CC 02E02025 */ move $a0, $s7 +/* 06CC00 7F0380D0 92250001 */ lbu $a1, 1($s1) +/* 06CC04 7F0380D4 0FC0CC98 */ jal sub_GAME_7F033260 +/* 06CC08 7F0380D8 92260002 */ lbu $a2, 2($s1) +/* 06CC0C 7F0380DC 26520003 */ addiu $s2, $s2, 3 +/* 06CC10 7F0380E0 1000F52A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC14 7F0380E4 26310003 */ addiu $s1, $s1, 3 +action98_Unmask_Guard_Type_Flags_With_Value_3: +/* 06CC18 7F0380E8 02E02025 */ move $a0, $s7 +/* 06CC1C 7F0380EC 92250001 */ lbu $a1, 1($s1) +/* 06CC20 7F0380F0 0FC0CCA4 */ jal sub_GAME_7F033290 +/* 06CC24 7F0380F4 92260002 */ lbu $a2, 2($s1) +/* 06CC28 7F0380F8 26520003 */ addiu $s2, $s2, 3 +/* 06CC2C 7F0380FC 1000F523 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC30 7F038100 26310003 */ addiu $s1, $s1, 3 +action99_If_Guard_Type_Flags_Set_RVL_4: +/* 06CC34 7F038104 02E02025 */ move $a0, $s7 +/* 06CC38 7F038108 92250001 */ lbu $a1, 1($s1) +/* 06CC3C 7F03810C 0FC0CCB0 */ jal sub_GAME_7F0332C0 +/* 06CC40 7F038110 92260002 */ lbu $a2, 2($s1) +/* 06CC44 7F038114 10400007 */ beqz $v0, .L7F038134 +/* 06CC48 7F038118 02C02025 */ move $a0, $s6 +/* 06CC4C 7F03811C 02402825 */ move $a1, $s2 +/* 06CC50 7F038120 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CC54 7F038124 92260003 */ lbu $a2, 3($s1) +/* 06CC58 7F038128 00409025 */ move $s2, $v0 +/* 06CC5C 7F03812C 1000F517 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC60 7F038130 02C28821 */ addu $s1, $s6, $v0 +.L7F038134: +/* 06CC64 7F038134 26520004 */ addiu $s2, $s2, 4 +/* 06CC68 7F038138 1000F514 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC6C 7F03813C 26310004 */ addiu $s1, $s1, 4 +action9A_Set_Objective_Bits_5: +/* 06CC70 7F038140 92390001 */ lbu $t9, 1($s1) +/* 06CC74 7F038144 922E0002 */ lbu $t6, 2($s1) +/* 06CC78 7F038148 92290003 */ lbu $t1, 3($s1) +/* 06CC7C 7F03814C 00196E00 */ sll $t5, $t9, 0x18 +/* 06CC80 7F038150 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CC84 7F038154 922C0004 */ lbu $t4, 4($s1) +/* 06CC88 7F038158 01AFC025 */ or $t8, $t5, $t7 +/* 06CC8C 7F03815C 00095200 */ sll $t2, $t1, 8 +/* 06CC90 7F038160 030A5825 */ or $t3, $t8, $t2 +/* 06CC94 7F038164 02E02025 */ move $a0, $s7 +/* 06CC98 7F038168 0FC0CCBF */ jal toggle_objective_bitflags +/* 06CC9C 7F03816C 016C2825 */ or $a1, $t3, $t4 +/* 06CCA0 7F038170 26520005 */ addiu $s2, $s2, 5 +/* 06CCA4 7F038174 1000F505 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCA8 7F038178 26310005 */ addiu $s1, $s1, 5 +action9B_Unset_Objective_Value_5: +/* 06CCAC 7F03817C 92390001 */ lbu $t9, 1($s1) +/* 06CCB0 7F038180 922D0002 */ lbu $t5, 2($s1) +/* 06CCB4 7F038184 92380003 */ lbu $t8, 3($s1) +/* 06CCB8 7F038188 00197600 */ sll $t6, $t9, 0x18 +/* 06CCBC 7F03818C 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CCC0 7F038190 922C0004 */ lbu $t4, 4($s1) +/* 06CCC4 7F038194 01CF4825 */ or $t1, $t6, $t7 +/* 06CCC8 7F038198 00185200 */ sll $t2, $t8, 8 +/* 06CCCC 7F03819C 012A5825 */ or $t3, $t1, $t2 +/* 06CCD0 7F0381A0 02E02025 */ move $a0, $s7 +/* 06CCD4 7F0381A4 0FC0CCC6 */ jal untoggle_objective_bitflags +/* 06CCD8 7F0381A8 016C2825 */ or $a1, $t3, $t4 +/* 06CCDC 7F0381AC 26520005 */ addiu $s2, $s2, 5 +/* 06CCE0 7F0381B0 1000F4F6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCE4 7F0381B4 26310005 */ addiu $s1, $s1, 5 +action9C_Check_If_Objective_Value_Return_Loop_If_So_6: +/* 06CCE8 7F0381B8 92390001 */ lbu $t9, 1($s1) +/* 06CCEC 7F0381BC 922E0002 */ lbu $t6, 2($s1) +/* 06CCF0 7F0381C0 92290003 */ lbu $t1, 3($s1) +/* 06CCF4 7F0381C4 00196E00 */ sll $t5, $t9, 0x18 +/* 06CCF8 7F0381C8 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CCFC 7F0381CC 922C0004 */ lbu $t4, 4($s1) +/* 06CD00 7F0381D0 01AFC025 */ or $t8, $t5, $t7 +/* 06CD04 7F0381D4 00095200 */ sll $t2, $t1, 8 +/* 06CD08 7F0381D8 030A5825 */ or $t3, $t8, $t2 +/* 06CD0C 7F0381DC 02E02025 */ move $a0, $s7 +/* 06CD10 7F0381E0 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 06CD14 7F0381E4 016C2825 */ or $a1, $t3, $t4 +/* 06CD18 7F0381E8 10400007 */ beqz $v0, .L7F038208 +/* 06CD1C 7F0381EC 02C02025 */ move $a0, $s6 +/* 06CD20 7F0381F0 02402825 */ move $a1, $s2 +/* 06CD24 7F0381F4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CD28 7F0381F8 92260005 */ lbu $a2, 5($s1) +/* 06CD2C 7F0381FC 00409025 */ move $s2, $v0 +/* 06CD30 7F038200 1000F4E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD34 7F038204 02C28821 */ addu $s1, $s6, $v0 +.L7F038208: +/* 06CD38 7F038208 26520006 */ addiu $s2, $s2, 6 +/* 06CD3C 7F03820C 1000F4DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD40 7F038210 26310006 */ addiu $s1, $s1, 6 +action9D_Set_Guard_Bit_Tags_5: +/* 06CD44 7F038214 92390001 */ lbu $t9, 1($s1) +/* 06CD48 7F038218 922D0002 */ lbu $t5, 2($s1) +/* 06CD4C 7F03821C 92380003 */ lbu $t8, 3($s1) +/* 06CD50 7F038220 00197600 */ sll $t6, $t9, 0x18 +/* 06CD54 7F038224 922C0004 */ lbu $t4, 4($s1) +/* 06CD58 7F038228 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CD5C 7F03822C 8EF90014 */ lw $t9, 0x14($s7) +/* 06CD60 7F038230 01CF4825 */ or $t1, $t6, $t7 +/* 06CD64 7F038234 00185200 */ sll $t2, $t8, 8 +/* 06CD68 7F038238 012A5825 */ or $t3, $t1, $t2 +/* 06CD6C 7F03823C 016C1025 */ or $v0, $t3, $t4 +/* 06CD70 7F038240 03226825 */ or $t5, $t9, $v0 +/* 06CD74 7F038244 AEED0014 */ sw $t5, 0x14($s7) +/* 06CD78 7F038248 26520005 */ addiu $s2, $s2, 5 +/* 06CD7C 7F03824C 1000F4CF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD80 7F038250 26310005 */ addiu $s1, $s1, 5 +action9E_Unset_Guard_Bit_Tags_5: +/* 06CD84 7F038254 922E0001 */ lbu $t6, 1($s1) +/* 06CD88 7F038258 92380002 */ lbu $t8, 2($s1) +/* 06CD8C 7F03825C 922B0003 */ lbu $t3, 3($s1) +/* 06CD90 7F038260 922D0004 */ lbu $t5, 4($s1) +/* 06CD94 7F038264 000E7E00 */ sll $t7, $t6, 0x18 +/* 06CD98 7F038268 00184C00 */ sll $t1, $t8, 0x10 +/* 06CD9C 7F03826C 01E95025 */ or $t2, $t7, $t1 +/* 06CDA0 7F038270 000B6200 */ sll $t4, $t3, 8 +/* 06CDA4 7F038274 8EEE0014 */ lw $t6, 0x14($s7) +/* 06CDA8 7F038278 014CC825 */ or $t9, $t2, $t4 +/* 06CDAC 7F03827C 032D1025 */ or $v0, $t9, $t5 +/* 06CDB0 7F038280 0040C027 */ not $t8, $v0 +/* 06CDB4 7F038284 01D87824 */ and $t7, $t6, $t8 +/* 06CDB8 7F038288 AEEF0014 */ sw $t7, 0x14($s7) +/* 06CDBC 7F03828C 26520005 */ addiu $s2, $s2, 5 +/* 06CDC0 7F038290 1000F4BE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CDC4 7F038294 26310005 */ addiu $s1, $s1, 5 +action9F_Check_Guard_Bits_If_Same_RVL_6: +/* 06CDC8 7F038298 92290001 */ lbu $t1, 1($s1) +/* 06CDCC 7F03829C 922A0002 */ lbu $t2, 2($s1) +/* 06CDD0 7F0382A0 922D0003 */ lbu $t5, 3($s1) +/* 06CDD4 7F0382A4 00095E00 */ sll $t3, $t1, 0x18 +/* 06CDD8 7F0382A8 922F0004 */ lbu $t7, 4($s1) +/* 06CDDC 7F0382AC 000A6400 */ sll $t4, $t2, 0x10 +/* 06CDE0 7F0382B0 8EE90014 */ lw $t1, 0x14($s7) +/* 06CDE4 7F0382B4 016CC825 */ or $t9, $t3, $t4 +/* 06CDE8 7F0382B8 000D7200 */ sll $t6, $t5, 8 +/* 06CDEC 7F0382BC 032EC025 */ or $t8, $t9, $t6 +/* 06CDF0 7F0382C0 030F1025 */ or $v0, $t8, $t7 +/* 06CDF4 7F0382C4 01225024 */ and $t2, $t1, $v0 +/* 06CDF8 7F0382C8 144A0007 */ bne $v0, $t2, .L7F0382E8 +/* 06CDFC 7F0382CC 02C02025 */ move $a0, $s6 +/* 06CE00 7F0382D0 02402825 */ move $a1, $s2 +/* 06CE04 7F0382D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CE08 7F0382D8 92260005 */ lbu $a2, 5($s1) +/* 06CE0C 7F0382DC 00409025 */ move $s2, $v0 +/* 06CE10 7F0382E0 1000F4AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE14 7F0382E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0382E8: +/* 06CE18 7F0382E8 26520006 */ addiu $s2, $s2, 6 +/* 06CE1C 7F0382EC 1000F4A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE20 7F0382F0 26310006 */ addiu $s1, $s1, 6 +actionA0_Set_Guard_ID_Bits_6: +/* 06CE24 7F0382F4 922B0002 */ lbu $t3, 2($s1) +/* 06CE28 7F0382F8 922D0003 */ lbu $t5, 3($s1) +/* 06CE2C 7F0382FC 92380004 */ lbu $t8, 4($s1) +/* 06CE30 7F038300 000B6600 */ sll $t4, $t3, 0x18 +/* 06CE34 7F038304 000DCC00 */ sll $t9, $t5, 0x10 +/* 06CE38 7F038308 922A0005 */ lbu $t2, 5($s1) +/* 06CE3C 7F03830C 01997025 */ or $t6, $t4, $t9 +/* 06CE40 7F038310 00187A00 */ sll $t7, $t8, 8 +/* 06CE44 7F038314 01CF4825 */ or $t1, $t6, $t7 +/* 06CE48 7F038318 02E02025 */ move $a0, $s7 +/* 06CE4C 7F03831C 92250001 */ lbu $a1, 1($s1) +/* 06CE50 7F038320 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CE54 7F038324 012A8025 */ or $s0, $t1, $t2 +/* 06CE58 7F038328 10400004 */ beqz $v0, .L7F03833C +/* 06CE5C 7F03832C 26520006 */ addiu $s2, $s2, 6 +/* 06CE60 7F038330 8C4B0014 */ lw $t3, 0x14($v0) +/* 06CE64 7F038334 01706825 */ or $t5, $t3, $s0 +/* 06CE68 7F038338 AC4D0014 */ sw $t5, 0x14($v0) +.L7F03833C: +/* 06CE6C 7F03833C 1000F493 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE70 7F038340 26310006 */ addiu $s1, $s1, 6 +actionA1_Unset_Guard_ID_Bits_6: +/* 06CE74 7F038344 922C0002 */ lbu $t4, 2($s1) +/* 06CE78 7F038348 92380003 */ lbu $t8, 3($s1) +/* 06CE7C 7F03834C 92290004 */ lbu $t1, 4($s1) +/* 06CE80 7F038350 000CCE00 */ sll $t9, $t4, 0x18 +/* 06CE84 7F038354 00187400 */ sll $t6, $t8, 0x10 +/* 06CE88 7F038358 922D0005 */ lbu $t5, 5($s1) +/* 06CE8C 7F03835C 032E7825 */ or $t7, $t9, $t6 +/* 06CE90 7F038360 00095200 */ sll $t2, $t1, 8 +/* 06CE94 7F038364 01EA5825 */ or $t3, $t7, $t2 +/* 06CE98 7F038368 02E02025 */ move $a0, $s7 +/* 06CE9C 7F03836C 92250001 */ lbu $a1, 1($s1) +/* 06CEA0 7F038370 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEA4 7F038374 016D8025 */ or $s0, $t3, $t5 +/* 06CEA8 7F038378 10400005 */ beqz $v0, .L7F038390 +/* 06CEAC 7F03837C 26520006 */ addiu $s2, $s2, 6 +/* 06CEB0 7F038380 8C4C0014 */ lw $t4, 0x14($v0) +/* 06CEB4 7F038384 0200C027 */ not $t8, $s0 +/* 06CEB8 7F038388 0198C824 */ and $t9, $t4, $t8 +/* 06CEBC 7F03838C AC590014 */ sw $t9, 0x14($v0) +.L7F038390: +/* 06CEC0 7F038390 1000F47E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CEC4 7F038394 26310006 */ addiu $s1, $s1, 6 +actionA2_Check_Guard_Bits_If_Same_RVL_7: +/* 06CEC8 7F038398 922E0002 */ lbu $t6, 2($s1) +/* 06CECC 7F03839C 922F0003 */ lbu $t7, 3($s1) +/* 06CED0 7F0383A0 922D0004 */ lbu $t5, 4($s1) +/* 06CED4 7F0383A4 000E4E00 */ sll $t1, $t6, 0x18 +/* 06CED8 7F0383A8 000F5400 */ sll $t2, $t7, 0x10 +/* 06CEDC 7F0383AC 92390005 */ lbu $t9, 5($s1) +/* 06CEE0 7F0383B0 012A5825 */ or $t3, $t1, $t2 +/* 06CEE4 7F0383B4 000D6200 */ sll $t4, $t5, 8 +/* 06CEE8 7F0383B8 016CC025 */ or $t8, $t3, $t4 +/* 06CEEC 7F0383BC 02E02025 */ move $a0, $s7 +/* 06CEF0 7F0383C0 92250001 */ lbu $a1, 1($s1) +/* 06CEF4 7F0383C4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEF8 7F0383C8 03198025 */ or $s0, $t8, $t9 +/* 06CEFC 7F0383CC 5040000D */ beql $v0, $zero, .L7F038404 +/* 06CF00 7F0383D0 26520007 */ addiu $s2, $s2, 7 +/* 06CF04 7F0383D4 8C4E0014 */ lw $t6, 0x14($v0) +/* 06CF08 7F0383D8 02C02025 */ move $a0, $s6 +/* 06CF0C 7F0383DC 02402825 */ move $a1, $s2 +/* 06CF10 7F0383E0 01D07824 */ and $t7, $t6, $s0 +/* 06CF14 7F0383E4 560F0007 */ bnel $s0, $t7, .L7F038404 +/* 06CF18 7F0383E8 26520007 */ addiu $s2, $s2, 7 +/* 06CF1C 7F0383EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CF20 7F0383F0 92260006 */ lbu $a2, 6($s1) +/* 06CF24 7F0383F4 00409025 */ move $s2, $v0 +/* 06CF28 7F0383F8 1000F464 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF2C 7F0383FC 02C28821 */ addu $s1, $s6, $v0 +/* 06CF30 7F038400 26520007 */ addiu $s2, $s2, 7 +.L7F038404: +/* 06CF34 7F038404 1000F461 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF38 7F038408 26310007 */ addiu $s1, $s1, 7 +actionA3_Set_State_Bits_16_Type_Object_6: +/* 06CF3C 7F03840C 92290002 */ lbu $t1, 2($s1) +/* 06CF40 7F038410 922D0003 */ lbu $t5, 3($s1) +/* 06CF44 7F038414 92380004 */ lbu $t8, 4($s1) +/* 06CF48 7F038418 00095600 */ sll $t2, $t1, 0x18 +/* 06CF4C 7F03841C 000D5C00 */ sll $t3, $t5, 0x10 +/* 06CF50 7F038420 922F0005 */ lbu $t7, 5($s1) +/* 06CF54 7F038424 014B6025 */ or $t4, $t2, $t3 +/* 06CF58 7F038428 0018CA00 */ sll $t9, $t8, 8 +/* 06CF5C 7F03842C 01997025 */ or $t6, $t4, $t9 +/* 06CF60 7F038430 92240001 */ lbu $a0, 1($s1) +/* 06CF64 7F038434 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CF68 7F038438 01CF8025 */ or $s0, $t6, $t7 +/* 06CF6C 7F03843C 10400007 */ beqz $v0, .L7F03845C +/* 06CF70 7F038440 26520006 */ addiu $s2, $s2, 6 +/* 06CF74 7F038444 8C490010 */ lw $t1, 0x10($v0) +/* 06CF78 7F038448 11200004 */ beqz $t1, .L7F03845C +/* 06CF7C 7F03844C 00000000 */ nop +/* 06CF80 7F038450 8C4D0008 */ lw $t5, 8($v0) +/* 06CF84 7F038454 01B05025 */ or $t2, $t5, $s0 +/* 06CF88 7F038458 AC4A0008 */ sw $t2, 8($v0) +.L7F03845C: +/* 06CF8C 7F03845C 1000F44B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF90 7F038460 26310006 */ addiu $s1, $s1, 6 +actionA4_Unset_State_Bits_16_Type_Object_6: +/* 06CF94 7F038464 922B0002 */ lbu $t3, 2($s1) +/* 06CF98 7F038468 922C0003 */ lbu $t4, 3($s1) +/* 06CF9C 7F03846C 922F0004 */ lbu $t7, 4($s1) +/* 06CFA0 7F038470 000BC600 */ sll $t8, $t3, 0x18 +/* 06CFA4 7F038474 000CCC00 */ sll $t9, $t4, 0x10 +/* 06CFA8 7F038478 922A0005 */ lbu $t2, 5($s1) +/* 06CFAC 7F03847C 03197025 */ or $t6, $t8, $t9 +/* 06CFB0 7F038480 000F4A00 */ sll $t1, $t7, 8 +/* 06CFB4 7F038484 01C96825 */ or $t5, $t6, $t1 +/* 06CFB8 7F038488 92240001 */ lbu $a0, 1($s1) +/* 06CFBC 7F03848C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CFC0 7F038490 01AA8025 */ or $s0, $t5, $t2 +/* 06CFC4 7F038494 10400008 */ beqz $v0, .L7F0384B8 +/* 06CFC8 7F038498 26520006 */ addiu $s2, $s2, 6 +/* 06CFCC 7F03849C 8C4B0010 */ lw $t3, 0x10($v0) +/* 06CFD0 7F0384A0 11600005 */ beqz $t3, .L7F0384B8 +/* 06CFD4 7F0384A4 00000000 */ nop +/* 06CFD8 7F0384A8 8C4C0008 */ lw $t4, 8($v0) +/* 06CFDC 7F0384AC 0200C027 */ not $t8, $s0 +/* 06CFE0 7F0384B0 0198C824 */ and $t9, $t4, $t8 +/* 06CFE4 7F0384B4 AC590008 */ sw $t9, 8($v0) +.L7F0384B8: +/* 06CFE8 7F0384B8 1000F434 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CFEC 7F0384BC 26310006 */ addiu $s1, $s1, 6 +actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7: +/* 06CFF0 7F0384C0 922F0002 */ lbu $t7, 2($s1) +/* 06CFF4 7F0384C4 92290003 */ lbu $t1, 3($s1) +/* 06CFF8 7F0384C8 922B0004 */ lbu $t3, 4($s1) +/* 06CFFC 7F0384CC 000F7600 */ sll $t6, $t7, 0x18 +/* 06D000 7F0384D0 00096C00 */ sll $t5, $t1, 0x10 +/* 06D004 7F0384D4 92390005 */ lbu $t9, 5($s1) +/* 06D008 7F0384D8 01CD5025 */ or $t2, $t6, $t5 +/* 06D00C 7F0384DC 000B6200 */ sll $t4, $t3, 8 +/* 06D010 7F0384E0 014CC025 */ or $t8, $t2, $t4 +/* 06D014 7F0384E4 92240001 */ lbu $a0, 1($s1) +/* 06D018 7F0384E8 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D01C 7F0384EC 03198025 */ or $s0, $t8, $t9 +/* 06D020 7F0384F0 50400010 */ beql $v0, $zero, .L7F038534 +/* 06D024 7F0384F4 26520007 */ addiu $s2, $s2, 7 +/* 06D028 7F0384F8 8C4F0010 */ lw $t7, 0x10($v0) +/* 06D02C 7F0384FC 51E0000D */ beql $t7, $zero, .L7F038534 +/* 06D030 7F038500 26520007 */ addiu $s2, $s2, 7 +/* 06D034 7F038504 8C490008 */ lw $t1, 8($v0) +/* 06D038 7F038508 02C02025 */ move $a0, $s6 +/* 06D03C 7F03850C 02402825 */ move $a1, $s2 +/* 06D040 7F038510 01307024 */ and $t6, $t1, $s0 +/* 06D044 7F038514 560E0007 */ bnel $s0, $t6, .L7F038534 +/* 06D048 7F038518 26520007 */ addiu $s2, $s2, 7 +/* 06D04C 7F03851C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D050 7F038520 92260006 */ lbu $a2, 6($s1) +/* 06D054 7F038524 00409025 */ move $s2, $v0 +/* 06D058 7F038528 1000F418 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D05C 7F03852C 02C28821 */ addu $s1, $s6, $v0 +/* 06D060 7F038530 26520007 */ addiu $s2, $s2, 7 +.L7F038534: +/* 06D064 7F038534 1000F415 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D068 7F038538 26310007 */ addiu $s1, $s1, 7 +actionA6_Set_16_Object_States_More_6: +/* 06D06C 7F03853C 922D0002 */ lbu $t5, 2($s1) +/* 06D070 7F038540 922A0003 */ lbu $t2, 3($s1) +/* 06D074 7F038544 92390004 */ lbu $t9, 4($s1) +/* 06D078 7F038548 000D5E00 */ sll $t3, $t5, 0x18 +/* 06D07C 7F03854C 000A6400 */ sll $t4, $t2, 0x10 +/* 06D080 7F038550 922E0005 */ lbu $t6, 5($s1) +/* 06D084 7F038554 016CC025 */ or $t8, $t3, $t4 +/* 06D088 7F038558 00197A00 */ sll $t7, $t9, 8 +/* 06D08C 7F03855C 030F4825 */ or $t1, $t8, $t7 +/* 06D090 7F038560 92240001 */ lbu $a0, 1($s1) +/* 06D094 7F038564 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D098 7F038568 012E8025 */ or $s0, $t1, $t6 +/* 06D09C 7F03856C 10400007 */ beqz $v0, .L7F03858C +/* 06D0A0 7F038570 26520006 */ addiu $s2, $s2, 6 +/* 06D0A4 7F038574 8C4D0010 */ lw $t5, 0x10($v0) +/* 06D0A8 7F038578 11A00004 */ beqz $t5, .L7F03858C +/* 06D0AC 7F03857C 00000000 */ nop +/* 06D0B0 7F038580 8C4A000C */ lw $t2, 0xc($v0) +/* 06D0B4 7F038584 01505825 */ or $t3, $t2, $s0 +/* 06D0B8 7F038588 AC4B000C */ sw $t3, 0xc($v0) +.L7F03858C: +/* 06D0BC 7F03858C 1000F3FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D0C0 7F038590 26310006 */ addiu $s1, $s1, 6 +actionA7_Unset_16_Object_States_More_6: +/* 06D0C4 7F038594 922C0002 */ lbu $t4, 2($s1) +/* 06D0C8 7F038598 92380003 */ lbu $t8, 3($s1) +/* 06D0CC 7F03859C 922E0004 */ lbu $t6, 4($s1) +/* 06D0D0 7F0385A0 000CCE00 */ sll $t9, $t4, 0x18 +/* 06D0D4 7F0385A4 00187C00 */ sll $t7, $t8, 0x10 +/* 06D0D8 7F0385A8 922B0005 */ lbu $t3, 5($s1) +/* 06D0DC 7F0385AC 032F4825 */ or $t1, $t9, $t7 +/* 06D0E0 7F0385B0 000E6A00 */ sll $t5, $t6, 8 +/* 06D0E4 7F0385B4 012D5025 */ or $t2, $t1, $t5 +/* 06D0E8 7F0385B8 92240001 */ lbu $a0, 1($s1) +/* 06D0EC 7F0385BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D0F0 7F0385C0 014B8025 */ or $s0, $t2, $t3 +/* 06D0F4 7F0385C4 10400008 */ beqz $v0, .L7F0385E8 +/* 06D0F8 7F0385C8 26520006 */ addiu $s2, $s2, 6 +/* 06D0FC 7F0385CC 8C4C0010 */ lw $t4, 0x10($v0) +/* 06D100 7F0385D0 11800005 */ beqz $t4, .L7F0385E8 +/* 06D104 7F0385D4 00000000 */ nop +/* 06D108 7F0385D8 8C58000C */ lw $t8, 0xc($v0) +/* 06D10C 7F0385DC 0200C827 */ not $t9, $s0 +/* 06D110 7F0385E0 03197824 */ and $t7, $t8, $t9 +/* 06D114 7F0385E4 AC4F000C */ sw $t7, 0xc($v0) +.L7F0385E8: +/* 06D118 7F0385E8 1000F3E8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D11C 7F0385EC 26310006 */ addiu $s1, $s1, 6 +actionA8_Check_16_Object_States_More_If_Same_RVL_7: +/* 06D120 7F0385F0 922E0002 */ lbu $t6, 2($s1) +/* 06D124 7F0385F4 922D0003 */ lbu $t5, 3($s1) +/* 06D128 7F0385F8 922C0004 */ lbu $t4, 4($s1) +/* 06D12C 7F0385FC 000E4E00 */ sll $t1, $t6, 0x18 +/* 06D130 7F038600 000D5400 */ sll $t2, $t5, 0x10 +/* 06D134 7F038604 922F0005 */ lbu $t7, 5($s1) +/* 06D138 7F038608 012A5825 */ or $t3, $t1, $t2 +/* 06D13C 7F03860C 000CC200 */ sll $t8, $t4, 8 +/* 06D140 7F038610 0178C825 */ or $t9, $t3, $t8 +/* 06D144 7F038614 92240001 */ lbu $a0, 1($s1) +/* 06D148 7F038618 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D14C 7F03861C 032F8025 */ or $s0, $t9, $t7 +/* 06D150 7F038620 50400010 */ beql $v0, $zero, .L7F038664 +/* 06D154 7F038624 26520007 */ addiu $s2, $s2, 7 +/* 06D158 7F038628 8C4E0010 */ lw $t6, 0x10($v0) +/* 06D15C 7F03862C 51C0000D */ beql $t6, $zero, .L7F038664 +/* 06D160 7F038630 26520007 */ addiu $s2, $s2, 7 +/* 06D164 7F038634 8C4D000C */ lw $t5, 0xc($v0) +/* 06D168 7F038638 02C02025 */ move $a0, $s6 +/* 06D16C 7F03863C 02402825 */ move $a1, $s2 +/* 06D170 7F038640 01B04824 */ and $t1, $t5, $s0 +/* 06D174 7F038644 56090007 */ bnel $s0, $t1, .L7F038664 +/* 06D178 7F038648 26520007 */ addiu $s2, $s2, 7 +/* 06D17C 7F03864C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D180 7F038650 92260006 */ lbu $a2, 6($s1) +/* 06D184 7F038654 00409025 */ move $s2, $v0 +/* 06D188 7F038658 1000F3CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D18C 7F03865C 02C28821 */ addu $s1, $s6, $v0 +/* 06D190 7F038660 26520007 */ addiu $s2, $s2, 7 +.L7F038664: +/* 06D194 7F038664 1000F3C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D198 7F038668 26310007 */ addiu $s1, $s1, 7 +actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2: +/* 06D19C 7F03866C 02E02025 */ move $a0, $s7 +/* 06D1A0 7F038670 0FC0CF3D */ jal sub_GAME_7F033CF4 +/* 06D1A4 7F038674 92250001 */ lbu $a1, 1($s1) +/* 06D1A8 7F038678 26520002 */ addiu $s2, $s2, 2 +/* 06D1AC 7F03867C 1000F3C3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1B0 7F038680 26310002 */ addiu $s1, $s1, 2 +actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3: +/* 06D1B4 7F038684 02E02025 */ move $a0, $s7 +/* 06D1B8 7F038688 92250001 */ lbu $a1, 1($s1) +/* 06D1BC 7F03868C 0FC0CF47 */ jal sub_GAME_7F033D1C +/* 06D1C0 7F038690 92260002 */ lbu $a2, 2($s1) +/* 06D1C4 7F038694 26520003 */ addiu $s2, $s2, 3 +/* 06D1C8 7F038698 1000F3BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1CC 7F03869C 26310003 */ addiu $s1, $s1, 3 +actionAB_Set_Current_Guards_2328_Value_To_Preset_3: +/* 06D1D0 7F0386A0 922A0001 */ lbu $t2, 1($s1) +/* 06D1D4 7F0386A4 922B0002 */ lbu $t3, 2($s1) +/* 06D1D8 7F0386A8 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06D1DC 7F0386AC 000A6200 */ sll $t4, $t2, 8 +/* 06D1E0 7F0386B0 018B1025 */ or $v0, $t4, $t3 +/* 06D1E4 7F0386B4 3058FFFF */ andi $t8, $v0, 0xffff +/* 06D1E8 7F0386B8 12E00007 */ beqz $s7, .L7F0386D8 +/* 06D1EC 7F0386BC 03001025 */ move $v0, $t8 +/* 06D1F0 7F0386C0 02E02025 */ move $a0, $s7 +/* 06D1F4 7F0386C4 0FC0CF57 */ jal sub_GAME_7F033D5C +/* 06D1F8 7F0386C8 03002825 */ move $a1, $t8 +/* 06D1FC 7F0386CC 26520003 */ addiu $s2, $s2, 3 +/* 06D200 7F0386D0 1000F3AE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D204 7F0386D4 26310003 */ addiu $s1, $s1, 3 +.L7F0386D8: +/* 06D208 7F0386D8 13200002 */ beqz $t9, .L7F0386E4 +/* 06D20C 7F0386DC 26520003 */ addiu $s2, $s2, 3 +/* 06D210 7F0386E0 A7220006 */ sh $v0, 6($t9) +.L7F0386E4: +/* 06D214 7F0386E4 1000F3A9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D218 7F0386E8 26310003 */ addiu $s1, $s1, 3 +actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4: +/* 06D21C 7F0386EC 922F0002 */ lbu $t7, 2($s1) +/* 06D220 7F0386F0 922D0003 */ lbu $t5, 3($s1) +/* 06D224 7F0386F4 02E02025 */ move $a0, $s7 +/* 06D228 7F0386F8 000F7200 */ sll $t6, $t7, 8 +/* 06D22C 7F0386FC 01CD1025 */ or $v0, $t6, $t5 +/* 06D230 7F038700 3046FFFF */ andi $a2, $v0, 0xffff +/* 06D234 7F038704 0FC0CF61 */ jal sub_GAME_7F033D84 +/* 06D238 7F038708 92250001 */ lbu $a1, 1($s1) +/* 06D23C 7F03870C 26520004 */ addiu $s2, $s2, 4 +/* 06D240 7F038710 1000F39E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D244 7F038714 26310004 */ addiu $s1, $s1, 4 +actionAD_Debug_Comment_20: +/* 06D248 7F038718 02C02025 */ move $a0, $s6 +/* 06D24C 7F03871C 0FC0D27F */ jal get_length_of_action_block +/* 06D250 7F038720 02402825 */ move $a1, $s2 +/* 06D254 7F038724 02429021 */ addu $s2, $s2, $v0 +/* 06D258 7F038728 1000F398 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D25C 7F03872C 02D28821 */ addu $s1, $s6, $s2 +actionAE_Reset_Cycle_Counter_And_Enable_It_1: +/* 06D260 7F038730 0FC0CCF1 */ jal reset_and_start_loop_counter +/* 06D264 7F038734 02E02025 */ move $a0, $s7 +/* 06D268 7F038738 26520001 */ addiu $s2, $s2, 1 +/* 06D26C 7F03873C 1000F393 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D270 7F038740 26310001 */ addiu $s1, $s1, 1 +actionAF_Reset_Cycle_Counter_1: +/* 06D274 7F038744 AEE00110 */ sw $zero, 0x110($s7) +/* 06D278 7F038748 26520001 */ addiu $s2, $s2, 1 +/* 06D27C 7F03874C 1000F38F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D280 7F038750 26310001 */ addiu $s1, $s1, 1 +actionB0_Disable_Cycle_Counter_1: +/* 06D284 7F038754 96EA0012 */ lhu $t2, 0x12($s7) +/* 06D288 7F038758 26520001 */ addiu $s2, $s2, 1 +/* 06D28C 7F03875C 26310001 */ addiu $s1, $s1, 1 +/* 06D290 7F038760 314CFFBF */ andi $t4, $t2, 0xffbf +/* 06D294 7F038764 1000F389 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D298 7F038768 A6EC0012 */ sh $t4, 0x12($s7) +actionB1_Enable_Cycle_Counter_1: +/* 06D29C 7F03876C 96EB0012 */ lhu $t3, 0x12($s7) +/* 06D2A0 7F038770 26520001 */ addiu $s2, $s2, 1 +/* 06D2A4 7F038774 26310001 */ addiu $s1, $s1, 1 +/* 06D2A8 7F038778 35780040 */ ori $t8, $t3, 0x40 +/* 06D2AC 7F03877C 1000F383 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2B0 7F038780 A6F80012 */ sh $t8, 0x12($s7) +actionB2_Check_Cycle_Counter_Enable_Status_2: +/* 06D2B4 7F038784 96F90012 */ lhu $t9, 0x12($s7) +/* 06D2B8 7F038788 02C02025 */ move $a0, $s6 +/* 06D2BC 7F03878C 02402825 */ move $a1, $s2 +/* 06D2C0 7F038790 332F0040 */ andi $t7, $t9, 0x40 +/* 06D2C4 7F038794 55E00007 */ bnezl $t7, .L7F0387B4 +/* 06D2C8 7F038798 26520002 */ addiu $s2, $s2, 2 +/* 06D2CC 7F03879C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D2D0 7F0387A0 92260001 */ lbu $a2, 1($s1) +/* 06D2D4 7F0387A4 00409025 */ move $s2, $v0 +/* 06D2D8 7F0387A8 1000F378 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2DC 7F0387AC 02C28821 */ addu $s1, $s6, $v0 +/* 06D2E0 7F0387B0 26520002 */ addiu $s2, $s2, 2 +.L7F0387B4: +/* 06D2E4 7F0387B4 1000F375 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2E8 7F0387B8 26310002 */ addiu $s1, $s1, 2 +actionB3_If_Cycle_Counter_LTV_RVL_5: +/* 06D2EC 7F0387BC 922E0001 */ lbu $t6, 1($s1) +/* 06D2F0 7F0387C0 92290002 */ lbu $t1, 2($s1) +/* 06D2F4 7F0387C4 922B0003 */ lbu $t3, 3($s1) +/* 06D2F8 7F0387C8 000E6C00 */ sll $t5, $t6, 0x10 +/* 06D2FC 7F0387CC 00095200 */ sll $t2, $t1, 8 +/* 06D300 7F0387D0 01AA6025 */ or $t4, $t5, $t2 +/* 06D304 7F0387D4 018BC025 */ or $t8, $t4, $t3 +/* 06D308 7F0387D8 44985000 */ mtc1 $t8, $f10 +/* 06D30C 7F0387DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D310 7F0387E0 07010004 */ bgez $t8, .L7F0387F4 +/* 06D314 7F0387E4 468054A0 */ cvt.s.w $f18, $f10 +/* 06D318 7F0387E8 44813000 */ mtc1 $at, $f6 +/* 06D31C 7F0387EC 00000000 */ nop +/* 06D320 7F0387F0 46069480 */ add.s $f18, $f18, $f6 +.L7F0387F4: +/* 06D324 7F0387F4 46169403 */ div.s $f16, $f18, $f22 +/* 06D328 7F0387F8 02E02025 */ move $a0, $s7 +/* 06D32C 7F0387FC 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D330 7F038800 E7B002B0 */ swc1 $f16, 0x2b0($sp) +/* 06D334 7F038804 C7A802B0 */ lwc1 $f8, 0x2b0($sp) +/* 06D338 7F038808 02C02025 */ move $a0, $s6 +/* 06D33C 7F03880C 02402825 */ move $a1, $s2 +/* 06D340 7F038810 4608003C */ c.lt.s $f0, $f8 +/* 06D344 7F038814 00000000 */ nop +/* 06D348 7F038818 45020007 */ bc1fl .L7F038838 +/* 06D34C 7F03881C 26520005 */ addiu $s2, $s2, 5 +/* 06D350 7F038820 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D354 7F038824 92260004 */ lbu $a2, 4($s1) +/* 06D358 7F038828 00409025 */ move $s2, $v0 +/* 06D35C 7F03882C 1000F357 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D360 7F038830 02C28821 */ addu $s1, $s6, $v0 +/* 06D364 7F038834 26520005 */ addiu $s2, $s2, 5 +.L7F038838: +/* 06D368 7F038838 1000F354 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D36C 7F03883C 26310005 */ addiu $s1, $s1, 5 +actionB4_If_Cycle_Counter_GTV_RVL_5: +/* 06D370 7F038840 92390001 */ lbu $t9, 1($s1) +/* 06D374 7F038844 922E0002 */ lbu $t6, 2($s1) +/* 06D378 7F038848 922A0003 */ lbu $t2, 3($s1) +/* 06D37C 7F03884C 00197C00 */ sll $t7, $t9, 0x10 +/* 06D380 7F038850 000E4A00 */ sll $t1, $t6, 8 +/* 06D384 7F038854 01E96825 */ or $t5, $t7, $t1 +/* 06D388 7F038858 01AA6025 */ or $t4, $t5, $t2 +/* 06D38C 7F03885C 448C2000 */ mtc1 $t4, $f4 +/* 06D390 7F038860 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D394 7F038864 05810004 */ bgez $t4, .L7F038878 +/* 06D398 7F038868 468022A0 */ cvt.s.w $f10, $f4 +/* 06D39C 7F03886C 44813000 */ mtc1 $at, $f6 +/* 06D3A0 7F038870 00000000 */ nop +/* 06D3A4 7F038874 46065280 */ add.s $f10, $f10, $f6 +.L7F038878: +/* 06D3A8 7F038878 46165483 */ div.s $f18, $f10, $f22 +/* 06D3AC 7F03887C 02E02025 */ move $a0, $s7 +/* 06D3B0 7F038880 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D3B4 7F038884 E7B202A8 */ swc1 $f18, 0x2a8($sp) +/* 06D3B8 7F038888 C7B002A8 */ lwc1 $f16, 0x2a8($sp) +/* 06D3BC 7F03888C 02C02025 */ move $a0, $s6 +/* 06D3C0 7F038890 02402825 */ move $a1, $s2 +/* 06D3C4 7F038894 4600803C */ c.lt.s $f16, $f0 +/* 06D3C8 7F038898 00000000 */ nop +/* 06D3CC 7F03889C 45020007 */ bc1fl .L7F0388BC +/* 06D3D0 7F0388A0 26520005 */ addiu $s2, $s2, 5 +/* 06D3D4 7F0388A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D3D8 7F0388A8 92260004 */ lbu $a2, 4($s1) +/* 06D3DC 7F0388AC 00409025 */ move $s2, $v0 +/* 06D3E0 7F0388B0 1000F336 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3E4 7F0388B4 02C28821 */ addu $s1, $s6, $v0 +/* 06D3E8 7F0388B8 26520005 */ addiu $s2, $s2, 5 +.L7F0388BC: +/* 06D3EC 7F0388BC 1000F333 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3F0 7F0388C0 26310005 */ addiu $s1, $s1, 5 +actionB5_Show_Timer_1: +/* 06D3F4 7F0388C4 24040001 */ li $a0, 1 +/* 06D3F8 7F0388C8 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D3FC 7F0388CC 24050001 */ li $a1, 1 +/* 06D400 7F0388D0 26520001 */ addiu $s2, $s2, 1 +/* 06D404 7F0388D4 1000F32D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D408 7F0388D8 26310001 */ addiu $s1, $s1, 1 +actionB6_Hide_Timer_Silent_Countdown_1: +/* 06D40C 7F0388DC 24040001 */ li $a0, 1 +/* 06D410 7F0388E0 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D414 7F0388E4 00002825 */ move $a1, $zero +/* 06D418 7F0388E8 26520001 */ addiu $s2, $s2, 1 +/* 06D41C 7F0388EC 1000F327 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D420 7F0388F0 26310001 */ addiu $s1, $s1, 1 +actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3: +/* 06D424 7F0388F4 922B0001 */ lbu $t3, 1($s1) +/* 06D428 7F0388F8 92390002 */ lbu $t9, 2($s1) +/* 06D42C 7F0388FC 000BC200 */ sll $t8, $t3, 8 +/* 06D430 7F038900 03197025 */ or $t6, $t8, $t9 +/* 06D434 7F038904 448E4000 */ mtc1 $t6, $f8 +/* 06D438 7F038908 00000000 */ nop +/* 06D43C 7F03890C 46804020 */ cvt.s.w $f0, $f8 +/* 06D440 7F038910 46160302 */ mul.s $f12, $f0, $f22 +/* 06D444 7F038914 0FC1586C */ jal set_clock_time +/* 06D448 7F038918 00000000 */ nop +/* 06D44C 7F03891C 26520003 */ addiu $s2, $s2, 3 +/* 06D450 7F038920 1000F31A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D454 7F038924 26310003 */ addiu $s1, $s1, 3 +actionB8_Stop_Timer_1: +/* 06D458 7F038928 0FC15872 */ jal set_clock_enable +/* 06D45C 7F03892C 00002025 */ move $a0, $zero +/* 06D460 7F038930 26520001 */ addiu $s2, $s2, 1 +/* 06D464 7F038934 1000F315 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D468 7F038938 26310001 */ addiu $s1, $s1, 1 +actionB9_Start_Timer_1: +/* 06D46C 7F03893C 0FC15872 */ jal set_clock_enable +/* 06D470 7F038940 24040001 */ li $a0, 1 +/* 06D474 7F038944 26520001 */ addiu $s2, $s2, 1 +/* 06D478 7F038948 1000F310 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D47C 7F03894C 26310001 */ addiu $s1, $s1, 1 +actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2: +/* 06D480 7F038950 0FC15875 */ jal get_clock_enable +/* 06D484 7F038954 00000000 */ nop +/* 06D488 7F038958 14400007 */ bnez $v0, .L7F038978 +/* 06D48C 7F03895C 02C02025 */ move $a0, $s6 +/* 06D490 7F038960 02402825 */ move $a1, $s2 +/* 06D494 7F038964 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D498 7F038968 92260001 */ lbu $a2, 1($s1) +/* 06D49C 7F03896C 00409025 */ move $s2, $v0 +/* 06D4A0 7F038970 1000F306 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4A4 7F038974 02C28821 */ addu $s1, $s6, $v0 +.L7F038978: +/* 06D4A8 7F038978 26520002 */ addiu $s2, $s2, 2 +/* 06D4AC 7F03897C 1000F303 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4B0 7F038980 26310002 */ addiu $s1, $s1, 2 +actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4: +/* 06D4B4 7F038984 922F0001 */ lbu $t7, 1($s1) +/* 06D4B8 7F038988 922D0002 */ lbu $t5, 2($s1) +/* 06D4BC 7F03898C 000F4A00 */ sll $t1, $t7, 8 +/* 06D4C0 7F038990 012D5025 */ or $t2, $t1, $t5 +/* 06D4C4 7F038994 448A2000 */ mtc1 $t2, $f4 +/* 06D4C8 7F038998 00000000 */ nop +/* 06D4CC 7F03899C 468021A0 */ cvt.s.w $f6, $f4 +/* 06D4D0 7F0389A0 0FC1586F */ jal get_clock_time +/* 06D4D4 7F0389A4 E7A60294 */ swc1 $f6, 0x294($sp) +/* 06D4D8 7F0389A8 C7AA0294 */ lwc1 $f10, 0x294($sp) +/* 06D4DC 7F0389AC 02C02025 */ move $a0, $s6 +/* 06D4E0 7F0389B0 02402825 */ move $a1, $s2 +/* 06D4E4 7F0389B4 46165482 */ mul.s $f18, $f10, $f22 +/* 06D4E8 7F0389B8 4612003C */ c.lt.s $f0, $f18 +/* 06D4EC 7F0389BC 00000000 */ nop +/* 06D4F0 7F0389C0 45020007 */ bc1fl .L7F0389E0 +/* 06D4F4 7F0389C4 26520004 */ addiu $s2, $s2, 4 +/* 06D4F8 7F0389C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D4FC 7F0389CC 92260003 */ lbu $a2, 3($s1) +/* 06D500 7F0389D0 00409025 */ move $s2, $v0 +/* 06D504 7F0389D4 1000F2ED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D508 7F0389D8 02C28821 */ addu $s1, $s6, $v0 +/* 06D50C 7F0389DC 26520004 */ addiu $s2, $s2, 4 +.L7F0389E0: +/* 06D510 7F0389E0 1000F2EA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D514 7F0389E4 26310004 */ addiu $s1, $s1, 4 +actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4: +/* 06D518 7F0389E8 922C0001 */ lbu $t4, 1($s1) +/* 06D51C 7F0389EC 92380002 */ lbu $t8, 2($s1) +/* 06D520 7F0389F0 000C5A00 */ sll $t3, $t4, 8 +/* 06D524 7F0389F4 0178C825 */ or $t9, $t3, $t8 +/* 06D528 7F0389F8 44998000 */ mtc1 $t9, $f16 +/* 06D52C 7F0389FC 00000000 */ nop +/* 06D530 7F038A00 46808220 */ cvt.s.w $f8, $f16 +/* 06D534 7F038A04 0FC1586F */ jal get_clock_time +/* 06D538 7F038A08 E7A8028C */ swc1 $f8, 0x28c($sp) +/* 06D53C 7F038A0C C7A4028C */ lwc1 $f4, 0x28c($sp) +/* 06D540 7F038A10 02C02025 */ move $a0, $s6 +/* 06D544 7F038A14 02402825 */ move $a1, $s2 +/* 06D548 7F038A18 46162182 */ mul.s $f6, $f4, $f22 +/* 06D54C 7F038A1C 4600303C */ c.lt.s $f6, $f0 +/* 06D550 7F038A20 00000000 */ nop +/* 06D554 7F038A24 45020007 */ bc1fl .L7F038A44 +/* 06D558 7F038A28 26520004 */ addiu $s2, $s2, 4 +/* 06D55C 7F038A2C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D560 7F038A30 92260003 */ lbu $a2, 3($s1) +/* 06D564 7F038A34 00409025 */ move $s2, $v0 +/* 06D568 7F038A38 1000F2D4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D56C 7F038A3C 02C28821 */ addu $s1, $s6, $v0 +/* 06D570 7F038A40 26520004 */ addiu $s2, $s2, 4 +.L7F038A44: +/* 06D574 7F038A44 1000F2D1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D578 7F038A48 26310004 */ addiu $s1, $s1, 4 +actionBD_Spawn_Guard_C: +/* 06D57C 7F038A4C 922E0003 */ lbu $t6, 3($s1) +/* 06D580 7F038A50 92290004 */ lbu $t1, 4($s1) +/* 06D584 7F038A54 922A0007 */ lbu $t2, 7($s1) +/* 06D588 7F038A58 000E7A00 */ sll $t7, $t6, 8 +/* 06D58C 7F038A5C 922B0008 */ lbu $t3, 8($s1) +/* 06D590 7F038A60 01E98025 */ or $s0, $t7, $t1 +/* 06D594 7F038A64 922E0009 */ lbu $t6, 9($s1) +/* 06D598 7F038A68 320DFFFF */ andi $t5, $s0, 0xffff +/* 06D59C 7F038A6C 01A08025 */ move $s0, $t5 +/* 06D5A0 7F038A70 922D000A */ lbu $t5, 0xa($s1) +/* 06D5A4 7F038A74 000A6600 */ sll $t4, $t2, 0x18 +/* 06D5A8 7F038A78 000BC400 */ sll $t8, $t3, 0x10 +/* 06D5AC 7F038A7C 0198C825 */ or $t9, $t4, $t8 +/* 06D5B0 7F038A80 000E7A00 */ sll $t7, $t6, 8 +/* 06D5B4 7F038A84 032F4825 */ or $t1, $t9, $t7 +/* 06D5B8 7F038A88 012D5025 */ or $t2, $t1, $t5 +/* 06D5BC 7F038A8C AFAA0280 */ sw $t2, 0x280($sp) +/* 06D5C0 7F038A90 922B0005 */ lbu $t3, 5($s1) +/* 06D5C4 7F038A94 92380006 */ lbu $t8, 6($s1) +/* 06D5C8 7F038A98 000B6200 */ sll $t4, $t3, 8 +/* 06D5CC 7F038A9C 01981025 */ or $v0, $t4, $t8 +/* 06D5D0 7F038AA0 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D5D4 7F038AA4 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D5D8 7F038AA8 8FB90280 */ lw $t9, 0x280($sp) +/* 06D5DC 7F038AAC 92250001 */ lbu $a1, 1($s1) +/* 06D5E0 7F038AB0 82260002 */ lb $a2, 2($s1) +/* 06D5E4 7F038AB4 AFA20010 */ sw $v0, 0x10($sp) +/* 06D5E8 7F038AB8 02E02025 */ move $a0, $s7 +/* 06D5EC 7F038ABC 02003825 */ move $a3, $s0 +/* 06D5F0 7F038AC0 0FC0D096 */ jal guard_constructor_BD +/* 06D5F4 7F038AC4 AFB90014 */ sw $t9, 0x14($sp) +/* 06D5F8 7F038AC8 10400007 */ beqz $v0, .L7F038AE8 +/* 06D5FC 7F038ACC 02C02025 */ move $a0, $s6 +/* 06D600 7F038AD0 02402825 */ move $a1, $s2 +/* 06D604 7F038AD4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D608 7F038AD8 9226000B */ lbu $a2, 0xb($s1) +/* 06D60C 7F038ADC 00409025 */ move $s2, $v0 +/* 06D610 7F038AE0 1000F2AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D614 7F038AE4 02C28821 */ addu $s1, $s6, $v0 +.L7F038AE8: +/* 06D618 7F038AE8 2652000C */ addiu $s2, $s2, 0xc +/* 06D61C 7F038AEC 1000F2A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D620 7F038AF0 2631000C */ addiu $s1, $s1, 0xc +actionBE_Respawn_Guard_with_ID_B: +/* 06D624 7F038AF4 922F0006 */ lbu $t7, 6($s1) +/* 06D628 7F038AF8 922D0007 */ lbu $t5, 7($s1) +/* 06D62C 7F038AFC 922C0008 */ lbu $t4, 8($s1) +/* 06D630 7F038B00 000F4E00 */ sll $t1, $t7, 0x18 +/* 06D634 7F038B04 000D5400 */ sll $t2, $t5, 0x10 +/* 06D638 7F038B08 922F0004 */ lbu $t7, 4($s1) +/* 06D63C 7F038B0C 012A5825 */ or $t3, $t1, $t2 +/* 06D640 7F038B10 92290005 */ lbu $t1, 5($s1) +/* 06D644 7F038B14 92390009 */ lbu $t9, 9($s1) +/* 06D648 7F038B18 000CC200 */ sll $t8, $t4, 8 +/* 06D64C 7F038B1C 000F6A00 */ sll $t5, $t7, 8 +/* 06D650 7F038B20 01787025 */ or $t6, $t3, $t8 +/* 06D654 7F038B24 01A91025 */ or $v0, $t5, $t1 +/* 06D658 7F038B28 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D65C 7F038B2C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D660 7F038B30 01D98025 */ or $s0, $t6, $t9 +/* 06D664 7F038B34 92250001 */ lbu $a1, 1($s1) +/* 06D668 7F038B38 82260002 */ lb $a2, 2($s1) +/* 06D66C 7F038B3C 92270003 */ lbu $a3, 3($s1) +/* 06D670 7F038B40 AFB00014 */ sw $s0, 0x14($sp) +/* 06D674 7F038B44 AFA20010 */ sw $v0, 0x10($sp) +/* 06D678 7F038B48 0FC0D0C2 */ jal guard_constructor_BE +/* 06D67C 7F038B4C 02E02025 */ move $a0, $s7 +/* 06D680 7F038B50 10400007 */ beqz $v0, .L7F038B70 +/* 06D684 7F038B54 02C02025 */ move $a0, $s6 +/* 06D688 7F038B58 02402825 */ move $a1, $s2 +/* 06D68C 7F038B5C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D690 7F038B60 9226000A */ lbu $a2, 0xa($s1) +/* 06D694 7F038B64 00409025 */ move $s2, $v0 +/* 06D698 7F038B68 1000F288 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D69C 7F038B6C 02C28821 */ addu $s1, $s6, $v0 +.L7F038B70: +/* 06D6A0 7F038B70 2652000B */ addiu $s2, $s2, 0xb +/* 06D6A4 7F038B74 1000F285 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D6A8 7F038B78 2631000B */ addiu $s1, $s1, 0xb +actionBF_Spawn_Weapon_9: +/* 06D6AC 7F038B7C 922C0004 */ lbu $t4, 4($s1) +/* 06D6B0 7F038B80 92380005 */ lbu $t8, 5($s1) +/* 06D6B4 7F038B84 922F0006 */ lbu $t7, 6($s1) +/* 06D6B8 7F038B88 000C5E00 */ sll $t3, $t4, 0x18 +/* 06D6BC 7F038B8C 922C0001 */ lbu $t4, 1($s1) +/* 06D6C0 7F038B90 00187400 */ sll $t6, $t8, 0x10 +/* 06D6C4 7F038B94 016EC825 */ or $t9, $t3, $t6 +/* 06D6C8 7F038B98 922A0007 */ lbu $t2, 7($s1) +/* 06D6CC 7F038B9C 922B0002 */ lbu $t3, 2($s1) +/* 06D6D0 7F038BA0 000F6A00 */ sll $t5, $t7, 8 +/* 06D6D4 7F038BA4 032D4825 */ or $t1, $t9, $t5 +/* 06D6D8 7F038BA8 000CC200 */ sll $t8, $t4, 8 +/* 06D6DC 7F038BAC 00001825 */ move $v1, $zero +/* 06D6E0 7F038BB0 012A8025 */ or $s0, $t1, $t2 +/* 06D6E4 7F038BB4 12E00027 */ beqz $s7, .L7F038C54 +/* 06D6E8 7F038BB8 030B9825 */ or $s3, $t8, $t3 +/* 06D6EC 7F038BBC 8EEE0018 */ lw $t6, 0x18($s7) +/* 06D6F0 7F038BC0 11C00024 */ beqz $t6, .L7F038C54 +/* 06D6F4 7F038BC4 00000000 */ nop +/* 06D6F8 7F038BC8 8EEF001C */ lw $t7, 0x1c($s7) +/* 06D6FC 7F038BCC 11E00021 */ beqz $t7, .L7F038C54 +/* 06D700 7F038BD0 00000000 */ nop +/* 06D704 7F038BD4 0FC249EF */ jal cheatCheckIfOn +/* 06D708 7F038BD8 2404001C */ li $a0, 28 +/* 06D70C 7F038BDC 50400018 */ beql $v0, $zero, .L7F038C40 +/* 06D710 7F038BE0 02E02025 */ move $a0, $s7 +/* 06D714 7F038BE4 92260003 */ lbu $a2, 3($s1) +/* 06D718 7F038BE8 24D9FFFE */ addiu $t9, $a2, -2 +/* 06D71C 7F038BEC 2F21001E */ sltiu $at, $t9, 0x1e +/* 06D720 7F038BF0 1020000C */ beqz $at, .L7F038C24 +/* 06D724 7F038BF4 0019C880 */ sll $t9, $t9, 2 +/* 06D728 7F038BF8 3C018005 */ lui $at, %hi(jpt_800528FC) +/* 06D72C 7F038BFC 00390821 */ addu $at, $at, $t9 +/* 06D730 7F038C00 8C3928FC */ lw $t9, %lo(jpt_800528FC)($at) +.L7F038C04: +/* 06D734 7F038C04 03200008 */ jr $t9 +/* 06D738 7F038C08 00000000 */ nop +loc_CODE_7F038C0C: +/* 06D73C 7F038C0C 02E02025 */ move $a0, $s7 +/* 06D740 7F038C10 240500D3 */ li $a1, 211 +/* 06D744 7F038C14 24060019 */ li $a2, 25 +/* 06D748 7F038C18 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D74C 7F038C1C 02003825 */ move $a3, $s0 +/* 06D750 7F038C20 92260003 */ lbu $a2, 3($s1) +.L7F038C24: +/* 06D754 7F038C24 02E02025 */ move $a0, $s7 +/* 06D758 7F038C28 02602825 */ move $a1, $s3 +/* 06D75C 7F038C2C 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D760 7F038C30 02003825 */ move $a3, $s0 +/* 06D764 7F038C34 10000007 */ b .L7F038C54 +/* 06D768 7F038C38 00401825 */ move $v1, $v0 +/* 06D76C 7F038C3C 02E02025 */ move $a0, $s7 +.L7F038C40: +/* 06D770 7F038C40 02602825 */ move $a1, $s3 +/* 06D774 7F038C44 92260003 */ lbu $a2, 3($s1) +/* 06D778 7F038C48 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D77C 7F038C4C 02003825 */ move $a3, $s0 +/* 06D780 7F038C50 00401825 */ move $v1, $v0 +.L7F038C54: +/* 06D784 7F038C54 10600007 */ beqz $v1, .L7F038C74 +/* 06D788 7F038C58 02C02025 */ move $a0, $s6 +/* 06D78C 7F038C5C 02402825 */ move $a1, $s2 +/* 06D790 7F038C60 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D794 7F038C64 92260008 */ lbu $a2, 8($s1) +/* 06D798 7F038C68 00409025 */ move $s2, $v0 +/* 06D79C 7F038C6C 1000F247 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7A0 7F038C70 02C28821 */ addu $s1, $s6, $v0 +.L7F038C74: +/* 06D7A4 7F038C74 26520009 */ addiu $s2, $s2, 9 +/* 06D7A8 7F038C78 1000F244 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7AC 7F038C7C 26310009 */ addiu $s1, $s1, 9 +actionC0_Spawn_Hat_8: +/* 06D7B0 7F038C80 922D0003 */ lbu $t5, 3($s1) +/* 06D7B4 7F038C84 922A0004 */ lbu $t2, 4($s1) +/* 06D7B8 7F038C88 922B0005 */ lbu $t3, 5($s1) +/* 06D7BC 7F038C8C 000D4E00 */ sll $t1, $t5, 0x18 +/* 06D7C0 7F038C90 922D0001 */ lbu $t5, 1($s1) +/* 06D7C4 7F038C94 000A6400 */ sll $t4, $t2, 0x10 +/* 06D7C8 7F038C98 012CC025 */ or $t8, $t1, $t4 +/* 06D7CC 7F038C9C 92390006 */ lbu $t9, 6($s1) +/* 06D7D0 7F038CA0 92290002 */ lbu $t1, 2($s1) +/* 06D7D4 7F038CA4 000B7200 */ sll $t6, $t3, 8 +/* 06D7D8 7F038CA8 030E7825 */ or $t7, $t8, $t6 +/* 06D7DC 7F038CAC 000D5200 */ sll $t2, $t5, 8 +/* 06D7E0 7F038CB0 00001825 */ move $v1, $zero +/* 06D7E4 7F038CB4 01F93025 */ or $a2, $t7, $t9 +/* 06D7E8 7F038CB8 12E0000A */ beqz $s7, .L7F038CE4 +/* 06D7EC 7F038CBC 01492825 */ or $a1, $t2, $t1 +/* 06D7F0 7F038CC0 8EEC0018 */ lw $t4, 0x18($s7) +/* 06D7F4 7F038CC4 11800007 */ beqz $t4, .L7F038CE4 +/* 06D7F8 7F038CC8 00000000 */ nop +/* 06D7FC 7F038CCC 8EEB001C */ lw $t3, 0x1c($s7) +/* 06D800 7F038CD0 11600004 */ beqz $t3, .L7F038CE4 +/* 06D804 7F038CD4 00000000 */ nop +/* 06D808 7F038CD8 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D80C 7F038CDC 02E02025 */ move $a0, $s7 +/* 06D810 7F038CE0 00401825 */ move $v1, $v0 +.L7F038CE4: +/* 06D814 7F038CE4 10600007 */ beqz $v1, .L7F038D04 +/* 06D818 7F038CE8 02C02025 */ move $a0, $s6 +/* 06D81C 7F038CEC 02402825 */ move $a1, $s2 +/* 06D820 7F038CF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D824 7F038CF4 92260007 */ lbu $a2, 7($s1) +/* 06D828 7F038CF8 00409025 */ move $s2, $v0 +/* 06D82C 7F038CFC 1000F223 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D830 7F038D00 02C28821 */ addu $s1, $s6, $v0 +.L7F038D04: +/* 06D834 7F038D04 26520008 */ addiu $s2, $s2, 8 +/* 06D838 7F038D08 1000F220 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D83C 7F038D0C 26310008 */ addiu $s1, $s1, 8 +actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5: +/* 06D840 7F038D10 92380002 */ lbu $t8, 2($s1) +/* 06D844 7F038D14 922F0003 */ lbu $t7, 3($s1) +/* 06D848 7F038D18 AFA0020C */ sw $zero, 0x20c($sp) +/* 06D84C 7F038D1C 00187200 */ sll $t6, $t8, 8 +/* 06D850 7F038D20 01CF1025 */ or $v0, $t6, $t7 +/* 06D854 7F038D24 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D858 7F038D28 AFA00210 */ sw $zero, 0x210($sp) +/* 06D85C 7F038D2C AFA00234 */ sw $zero, 0x234($sp) +/* 06D860 7F038D30 00009825 */ move $s3, $zero +/* 06D864 7F038D34 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D868 7F038D38 0000A025 */ move $s4, $zero +/* 06D86C 7F038D3C 00408025 */ move $s0, $v0 +/* 06D870 7F038D40 02E02025 */ move $a0, $s7 +/* 06D874 7F038D44 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D878 7F038D48 92250001 */ lbu $a1, 1($s1) +/* 06D87C 7F038D4C 10400051 */ beqz $v0, .L7F038E94 +/* 06D880 7F038D50 0040A825 */ move $s5, $v0 +/* 06D884 7F038D54 8C4D0014 */ lw $t5, 0x14($v0) +/* 06D888 7F038D58 02E02025 */ move $a0, $s7 +/* 06D88C 7F038D5C 31AA0002 */ andi $t2, $t5, 2 +/* 06D890 7F038D60 5140004D */ beql $t2, $zero, .L7F038E98 +/* 06D894 7F038D64 8FA90234 */ lw $t1, 0x234($sp) +/* 06D898 7F038D68 8045000F */ lb $a1, 0xf($v0) +/* 06D89C 7F038D6C 84470000 */ lh $a3, ($v0) +/* 06D8A0 7F038D70 AFA00014 */ sw $zero, 0x14($sp) +/* 06D8A4 7F038D74 AFB00010 */ sw $s0, 0x10($sp) +/* 06D8A8 7F038D78 0FC0D0C2 */ jal guard_constructor_BE +/* 06D8AC 7F038D7C 2406FFFF */ li $a2, -1 +/* 06D8B0 7F038D80 50400045 */ beql $v0, $zero, .L7F038E98 +/* 06D8B4 7F038D84 8FA90234 */ lw $t1, 0x234($sp) +/* 06D8B8 7F038D88 8C490004 */ lw $t1, 4($v0) +/* 06D8BC 7F038D8C 02E02025 */ move $a0, $s7 +/* 06D8C0 7F038D90 AFA90218 */ sw $t1, 0x218($sp) +/* 06D8C4 7F038D94 86B00000 */ lh $s0, ($s5) +/* 06D8C8 7F038D98 26102710 */ addiu $s0, $s0, 0x2710 +/* 06D8CC 7F038D9C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D8D0 7F038DA0 02002825 */ move $a1, $s0 +/* 06D8D4 7F038DA4 14400003 */ bnez $v0, .L7F038DB4 +/* 06D8D8 7F038DA8 02A02025 */ move $a0, $s5 +/* 06D8DC 7F038DAC 8FAC0218 */ lw $t4, 0x218($sp) +/* 06D8E0 7F038DB0 A5900000 */ sh $s0, ($t4) +.L7F038DB4: +/* 06D8E4 7F038DB4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D8E8 7F038DB8 00002825 */ move $a1, $zero +/* 06D8EC 7F038DBC 5040000C */ beql $v0, $zero, .L7F038DF0 +/* 06D8F0 7F038DC0 02A02025 */ move $a0, $s5 +/* 06D8F4 7F038DC4 8C540004 */ lw $s4, 4($v0) +/* 06D8F8 7F038DC8 8FA40218 */ lw $a0, 0x218($sp) +/* 06D8FC 7F038DCC 00003825 */ move $a3, $zero +/* 06D900 7F038DD0 86850004 */ lh $a1, 4($s4) +/* 06D904 7F038DD4 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D908 7F038DD8 82860080 */ lb $a2, 0x80($s4) +/* 06D90C 7F038DDC 50400004 */ beql $v0, $zero, .L7F038DF0 +/* 06D910 7F038DE0 02A02025 */ move $a0, $s5 +/* 06D914 7F038DE4 8C4B0004 */ lw $t3, 4($v0) +/* 06D918 7F038DE8 AFAB020C */ sw $t3, 0x20c($sp) +/* 06D91C 7F038DEC 02A02025 */ move $a0, $s5 +.L7F038DF0: +/* 06D920 7F038DF0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D924 7F038DF4 24050001 */ li $a1, 1 +/* 06D928 7F038DF8 1040000B */ beqz $v0, .L7F038E28 +/* 06D92C 7F038DFC 00000000 */ nop +/* 06D930 7F038E00 8C530004 */ lw $s3, 4($v0) +/* 06D934 7F038E04 8FA40218 */ lw $a0, 0x218($sp) +/* 06D938 7F038E08 3C071000 */ lui $a3, 0x1000 +/* 06D93C 7F038E0C 86650004 */ lh $a1, 4($s3) +/* 06D940 7F038E10 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D944 7F038E14 82660080 */ lb $a2, 0x80($s3) +/* 06D948 7F038E18 10400003 */ beqz $v0, .L7F038E28 +/* 06D94C 7F038E1C 00000000 */ nop +/* 06D950 7F038E20 8C580004 */ lw $t8, 4($v0) +/* 06D954 7F038E24 AFB80210 */ sw $t8, 0x210($sp) +.L7F038E28: +/* 06D958 7F038E28 52600011 */ beql $s3, $zero, .L7F038E70 +/* 06D95C 7F038E2C 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D960 7F038E30 1280000E */ beqz $s4, .L7F038E6C +/* 06D964 7F038E34 8FAE0210 */ lw $t6, 0x210($sp) +/* 06D968 7F038E38 11C0000C */ beqz $t6, .L7F038E6C +/* 06D96C 7F038E3C 8FAF020C */ lw $t7, 0x20c($sp) +/* 06D970 7F038E40 51E0000B */ beql $t7, $zero, .L7F038E70 +/* 06D974 7F038E44 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D978 7F038E48 8E790084 */ lw $t9, 0x84($s3) +/* 06D97C 7F038E4C 56990008 */ bnel $s4, $t9, .L7F038E70 +/* 06D980 7F038E50 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D984 7F038E54 8E8D0084 */ lw $t5, 0x84($s4) +/* 06D988 7F038E58 01C02025 */ move $a0, $t6 +/* 06D98C 7F038E5C 566D0004 */ bnel $s3, $t5, .L7F038E70 +/* 06D990 7F038E60 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D994 7F038E64 0FC1475D */ jal link_objects +/* 06D998 7F038E68 01E02825 */ move $a1, $t7 +.L7F038E6C: +/* 06D99C 7F038E6C 8EA301D8 */ lw $v1, 0x1d8($s5) +.L7F038E70: +/* 06D9A0 7F038E70 8FA40218 */ lw $a0, 0x218($sp) +/* 06D9A4 7F038E74 50600006 */ beql $v1, $zero, .L7F038E90 +/* 06D9A8 7F038E78 240A0001 */ li $t2, 1 +/* 06D9AC 7F038E7C 8C620004 */ lw $v0, 4($v1) +/* 06D9B0 7F038E80 00003025 */ move $a2, $zero +/* 06D9B4 7F038E84 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D9B8 7F038E88 84450004 */ lh $a1, 4($v0) +/* 06D9BC 7F038E8C 240A0001 */ li $t2, 1 +.L7F038E90: +/* 06D9C0 7F038E90 AFAA0234 */ sw $t2, 0x234($sp) +.L7F038E94: +/* 06D9C4 7F038E94 8FA90234 */ lw $t1, 0x234($sp) +.L7F038E98: +/* 06D9C8 7F038E98 02C02025 */ move $a0, $s6 +/* 06D9CC 7F038E9C 02402825 */ move $a1, $s2 +/* 06D9D0 7F038EA0 51200007 */ beql $t1, $zero, .L7F038EC0 +/* 06D9D4 7F038EA4 26520005 */ addiu $s2, $s2, 5 +/* 06D9D8 7F038EA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D9DC 7F038EAC 92260004 */ lbu $a2, 4($s1) +/* 06D9E0 7F038EB0 00409025 */ move $s2, $v0 +/* 06D9E4 7F038EB4 1000F1B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9E8 7F038EB8 02C28821 */ addu $s1, $s6, $v0 +/* 06D9EC 7F038EBC 26520005 */ addiu $s2, $s2, 5 +.L7F038EC0: +/* 06D9F0 7F038EC0 1000F1B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9F4 7F038EC4 26310005 */ addiu $s1, $s1, 5 +actionC2_Display_Text_Preset_Bottom_Screen_3: +/* 06D9F8 7F038EC8 922C0001 */ lbu $t4, 1($s1) +/* 06D9FC 7F038ECC 92380002 */ lbu $t8, 2($s1) +/* 06DA00 7F038ED0 000C5A00 */ sll $t3, $t4, 8 +/* 06DA04 7F038ED4 0FC30776 */ jal get_textptr_for_textID +/* 06DA08 7F038ED8 01782025 */ or $a0, $t3, $t8 +/* 06DA0C 7F038EDC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 06DA10 7F038EE0 00402025 */ move $a0, $v0 +/* 06DA14 7F038EE4 26520003 */ addiu $s2, $s2, 3 +/* 06DA18 7F038EE8 1000F1A8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA1C 7F038EEC 26310003 */ addiu $s1, $s1, 3 +actionC3_Display_Text_Preset_Top_Screen_3: +/* 06DA20 7F038EF0 92390001 */ lbu $t9, 1($s1) +/* 06DA24 7F038EF4 922E0002 */ lbu $t6, 2($s1) +/* 06DA28 7F038EF8 00196A00 */ sll $t5, $t9, 8 +/* 06DA2C 7F038EFC 0FC30776 */ jal get_textptr_for_textID +/* 06DA30 7F038F00 01AE2025 */ or $a0, $t5, $t6 +/* 06DA34 7F038F04 0FC22A57 */ jal display_string_at_top_of_screen +/* 06DA38 7F038F08 00402025 */ move $a0, $v0 +/* 06DA3C 7F038F0C 26520003 */ addiu $s2, $s2, 3 +/* 06DA40 7F038F10 1000F19E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA44 7F038F14 26310003 */ addiu $s1, $s1, 3 +actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4: +/* 06DA48 7F038F18 922F0001 */ lbu $t7, 1($s1) +/* 06DA4C 7F038F1C 92290002 */ lbu $t1, 2($s1) +/* 06DA50 7F038F20 82240003 */ lb $a0, 3($s1) +/* 06DA54 7F038F24 000F5200 */ sll $t2, $t7, 8 +/* 06DA58 7F038F28 01492825 */ or $a1, $t2, $t1 +/* 06DA5C 7F038F2C 00056400 */ sll $t4, $a1, 0x10 +/* 06DA60 7F038F30 0FC0D249 */ jal set_sound_effect_to_slot +/* 06DA64 7F038F34 000C2C03 */ sra $a1, $t4, 0x10 +/* 06DA68 7F038F38 26520004 */ addiu $s2, $s2, 4 +/* 06DA6C 7F038F3C 1000F193 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA70 7F038F40 26310004 */ addiu $s1, $s1, 4 +actionC9_Shut_Off_Sound_In_Slot_Number_2: +/* 06DA74 7F038F44 0FC0D26F */ jal sub_GAME_7F0349BC +/* 06DA78 7F038F48 82240001 */ lb $a0, 1($s1) +/* 06DA7C 7F038F4C 26520002 */ addiu $s2, $s2, 2 +/* 06DA80 7F038F50 1000F18E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA84 7F038F54 26310002 */ addiu $s1, $s1, 2 +actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6: +/* 06DA88 7F038F58 92380002 */ lbu $t8, 2($s1) +/* 06DA8C 7F038F5C 922D0003 */ lbu $t5, 3($s1) +/* 06DA90 7F038F60 922A0004 */ lbu $t2, 4($s1) +/* 06DA94 7F038F64 922C0005 */ lbu $t4, 5($s1) +/* 06DA98 7F038F68 82230001 */ lb $v1, 1($s1) +/* 06DA9C 7F038F6C 0018CA00 */ sll $t9, $t8, 8 +/* 06DAA0 7F038F70 032D2025 */ or $a0, $t9, $t5 +/* 06DAA4 7F038F74 000A4A00 */ sll $t1, $t2, 8 +/* 06DAA8 7F038F78 00047400 */ sll $t6, $a0, 0x10 +/* 06DAAC 7F038F7C 012C2825 */ or $a1, $t1, $t4 +/* 06DAB0 7F038F80 000E2403 */ sra $a0, $t6, 0x10 +/* 06DAB4 7F038F84 0460001D */ bltz $v1, .L7F038FFC +/* 06DAB8 7F038F88 30ABFFFF */ andi $t3, $a1, 0xffff +/* 06DABC 7F038F8C 28610008 */ slti $at, $v1, 8 +/* 06DAC0 7F038F90 1020001A */ beqz $at, .L7F038FFC +/* 06DAC4 7F038F94 24070018 */ li $a3, 24 +/* 06DAC8 7F038F98 00670019 */ multu $v1, $a3 +/* 06DACC 7F038F9C 3C068007 */ lui $a2, %hi(sfx_related) +/* 06DAD0 7F038FA0 24C69B70 */ addiu $a2, %lo(sfx_related) # addiu $a2, $a2, -0x6490 +/* 06DAD4 7F038FA4 01601025 */ move $v0, $t3 +/* 06DAD8 7F038FA8 0000C012 */ mflo $t8 +/* 06DADC 7F038FAC 00D8C821 */ addu $t9, $a2, $t8 +/* 06DAE0 7F038FB0 AF2B0008 */ sw $t3, 8($t9) +/* 06DAE4 7F038FB4 822D0001 */ lb $t5, 1($s1) +/* 06DAE8 7F038FB8 01A70019 */ multu $t5, $a3 +/* 06DAEC 7F038FBC 00007012 */ mflo $t6 +/* 06DAF0 7F038FC0 00CE7821 */ addu $t7, $a2, $t6 +/* 06DAF4 7F038FC4 ADE4000C */ sw $a0, 0xc($t7) +/* 06DAF8 7F038FC8 822A0001 */ lb $t2, 1($s1) +/* 06DAFC 7F038FCC 01470019 */ multu $t2, $a3 +/* 06DB00 7F038FD0 00004812 */ mflo $t1 +/* 06DB04 7F038FD4 00C96021 */ addu $t4, $a2, $t1 +/* 06DB08 7F038FD8 AD800010 */ sw $zero, 0x10($t4) +/* 06DB0C 7F038FDC 822B0001 */ lb $t3, 1($s1) +/* 06DB10 7F038FE0 01670019 */ multu $t3, $a3 +/* 06DB14 7F038FE4 0000C012 */ mflo $t8 +/* 06DB18 7F038FE8 00D8C821 */ addu $t9, $a2, $t8 +/* 06DB1C 7F038FEC 14400003 */ bnez $v0, .L7F038FFC +/* 06DB20 7F038FF0 AF200014 */ sw $zero, 0x14($t9) +/* 06DB24 7F038FF4 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DB28 7F038FF8 82240001 */ lb $a0, 1($s1) +.L7F038FFC: +/* 06DB2C 7F038FFC 26520006 */ addiu $s2, $s2, 6 +/* 06DB30 7F039000 1000F162 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DB34 7F039004 26310006 */ addiu $s1, $s1, 6 +actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6: +/* 06DB38 7F039008 922D0002 */ lbu $t5, 2($s1) +/* 06DB3C 7F03900C 922F0003 */ lbu $t7, 3($s1) +/* 06DB40 7F039010 92290004 */ lbu $t1, 4($s1) +/* 06DB44 7F039014 922B0005 */ lbu $t3, 5($s1) +/* 06DB48 7F039018 000D7200 */ sll $t6, $t5, 8 +/* 06DB4C 7F03901C 82230001 */ lb $v1, 1($s1) +/* 06DB50 7F039020 01CF5025 */ or $t2, $t6, $t7 +/* 06DB54 7F039024 448A5000 */ mtc1 $t2, $f10 +/* 06DB58 7F039028 00096200 */ sll $t4, $t1, 8 +/* 06DB5C 7F03902C 018B1025 */ or $v0, $t4, $t3 +/* 06DB60 7F039030 3058FFFF */ andi $t8, $v0, 0xffff +/* 06DB64 7F039034 04600020 */ bltz $v1, .L7F0390B8 +/* 06DB68 7F039038 46805320 */ cvt.s.w $f12, $f10 +/* 06DB6C 7F03903C 28610008 */ slti $at, $v1, 8 +/* 06DB70 7F039040 1020001D */ beqz $at, .L7F0390B8 +/* 06DB74 7F039044 0003C880 */ sll $t9, $v1, 2 +/* 06DB78 7F039048 0323C823 */ subu $t9, $t9, $v1 +/* 06DB7C 7F03904C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DB80 7F039050 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DB84 7F039054 00390821 */ addu $at, $at, $t9 +/* 06DB88 7F039058 AC389B78 */ sw $t8, %lo(sfx_related+8)($at) +/* 06DB8C 7F03905C 0FC14E6E */ jal sub_GAME_7F0539B8 +/* 06DB90 7F039060 03008025 */ move $s0, $t8 +/* 06DB94 7F039064 822D0001 */ lb $t5, 1($s1) +/* 06DB98 7F039068 24040018 */ li $a0, 24 +/* 06DB9C 7F03906C 3C038007 */ lui $v1, %hi(sfx_related) +/* 06DBA0 7F039070 01A40019 */ multu $t5, $a0 +/* 06DBA4 7F039074 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +/* 06DBA8 7F039078 00007012 */ mflo $t6 +/* 06DBAC 7F03907C 006E7821 */ addu $t7, $v1, $t6 +/* 06DBB0 7F039080 ADE2000C */ sw $v0, 0xc($t7) +/* 06DBB4 7F039084 822A0001 */ lb $t2, 1($s1) +/* 06DBB8 7F039088 01440019 */ multu $t2, $a0 +/* 06DBBC 7F03908C 00004812 */ mflo $t1 +/* 06DBC0 7F039090 00696021 */ addu $t4, $v1, $t1 +/* 06DBC4 7F039094 AD800010 */ sw $zero, 0x10($t4) +/* 06DBC8 7F039098 822B0001 */ lb $t3, 1($s1) +/* 06DBCC 7F03909C 01640019 */ multu $t3, $a0 +/* 06DBD0 7F0390A0 0000C012 */ mflo $t8 +/* 06DBD4 7F0390A4 0078C821 */ addu $t9, $v1, $t8 +/* 06DBD8 7F0390A8 16000003 */ bnez $s0, .L7F0390B8 +/* 06DBDC 7F0390AC AF200014 */ sw $zero, 0x14($t9) +/* 06DBE0 7F0390B0 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DBE4 7F0390B4 82240001 */ lb $a0, 1($s1) +.L7F0390B8: +/* 06DBE8 7F0390B8 26520006 */ addiu $s2, $s2, 6 +/* 06DBEC 7F0390BC 1000F133 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DBF0 7F0390C0 26310006 */ addiu $s1, $s1, 6 +actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5: +/* 06DBF4 7F0390C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DBF8 7F0390C8 92240002 */ lbu $a0, 2($s1) +/* 06DBFC 7F0390CC 922D0003 */ lbu $t5, 3($s1) +/* 06DC00 7F0390D0 922F0004 */ lbu $t7, 4($s1) +/* 06DC04 7F0390D4 82230001 */ lb $v1, 1($s1) +/* 06DC08 7F0390D8 000D7200 */ sll $t6, $t5, 8 +/* 06DC0C 7F0390DC 01CF2825 */ or $a1, $t6, $t7 +/* 06DC10 7F0390E0 0460001C */ bltz $v1, .L7F039154 +/* 06DC14 7F0390E4 30AAFFFF */ andi $t2, $a1, 0xffff +/* 06DC18 7F0390E8 28610008 */ slti $at, $v1, 8 +/* 06DC1C 7F0390EC 5020001A */ beql $at, $zero, .L7F039158 +/* 06DC20 7F0390F0 26520005 */ addiu $s2, $s2, 5 +/* 06DC24 7F0390F4 10400017 */ beqz $v0, .L7F039154 +/* 06DC28 7F0390F8 00034880 */ sll $t1, $v1, 2 +/* 06DC2C 7F0390FC 01234823 */ subu $t1, $t1, $v1 +/* 06DC30 7F039100 000948C0 */ sll $t1, $t1, 3 +/* 06DC34 7F039104 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DC38 7F039108 00290821 */ addu $at, $at, $t1 +/* 06DC3C 7F03910C AC2A9B78 */ sw $t2, %lo(sfx_related+8)($at) +/* 06DC40 7F039110 822C0001 */ lb $t4, 1($s1) +/* 06DC44 7F039114 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DC48 7F039118 000C5880 */ sll $t3, $t4, 2 +/* 06DC4C 7F03911C 016C5823 */ subu $t3, $t3, $t4 +/* 06DC50 7F039120 000B58C0 */ sll $t3, $t3, 3 +/* 06DC54 7F039124 002B0821 */ addu $at, $at, $t3 +/* 06DC58 7F039128 AC209B80 */ sw $zero, %lo(sfx_related+16)($at) +/* 06DC5C 7F03912C 82380001 */ lb $t8, 1($s1) +/* 06DC60 7F039130 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DC64 7F039134 0018C880 */ sll $t9, $t8, 2 +/* 06DC68 7F039138 0338C823 */ subu $t9, $t9, $t8 +/* 06DC6C 7F03913C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DC70 7F039140 00390821 */ addu $at, $at, $t9 +/* 06DC74 7F039144 15400003 */ bnez $t2, .L7F039154 +/* 06DC78 7F039148 AC229B84 */ sw $v0, %lo(sfx_related+20)($at) +/* 06DC7C 7F03914C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DC80 7F039150 82240001 */ lb $a0, 1($s1) +.L7F039154: +/* 06DC84 7F039154 26520005 */ addiu $s2, $s2, 5 +.L7F039158: +/* 06DC88 7F039158 1000F10C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DC8C 7F03915C 26310005 */ addiu $s1, $s1, 5 +actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6: +/* 06DC90 7F039160 922D0002 */ lbu $t5, 2($s1) +/* 06DC94 7F039164 922F0003 */ lbu $t7, 3($s1) +/* 06DC98 7F039168 92290004 */ lbu $t1, 4($s1) +/* 06DC9C 7F03916C 922B0005 */ lbu $t3, 5($s1) +/* 06DCA0 7F039170 000D7200 */ sll $t6, $t5, 8 +/* 06DCA4 7F039174 01CF1025 */ or $v0, $t6, $t7 +/* 06DCA8 7F039178 00096200 */ sll $t4, $t1, 8 +/* 06DCAC 7F03917C 304AFFFF */ andi $t2, $v0, 0xffff +/* 06DCB0 7F039180 018B2825 */ or $a1, $t4, $t3 +/* 06DCB4 7F039184 30B8FFFF */ andi $t8, $a1, 0xffff +/* 06DCB8 7F039188 29412710 */ slti $at, $t2, 0x2710 +/* 06DCBC 7F03918C 03002825 */ move $a1, $t8 +/* 06DCC0 7F039190 1020000A */ beqz $at, .L7F0391BC +/* 06DCC4 7F039194 01401825 */ move $v1, $t2 +/* 06DCC8 7F039198 000AC880 */ sll $t9, $t2, 2 +/* 06DCCC 7F03919C 032AC823 */ subu $t9, $t9, $t2 +/* 06DCD0 7F0391A0 0019C880 */ sll $t9, $t9, 2 +/* 06DCD4 7F0391A4 3C0D8007 */ lui $t5, %hi(ptr_0xxxpresets) +/* 06DCD8 7F0391A8 8DAD5D18 */ lw $t5, %lo(ptr_0xxxpresets)($t5) +/* 06DCDC 7F0391AC 032AC823 */ subu $t9, $t9, $t2 +/* 06DCE0 7F0391B0 0019C880 */ sll $t9, $t9, 2 +/* 06DCE4 7F0391B4 1000000A */ b .L7F0391E0 +/* 06DCE8 7F0391B8 032D2021 */ addu $a0, $t9, $t5 +.L7F0391BC: +/* 06DCEC 7F0391BC 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06DCF0 7F0391C0 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06DCF4 7F0391C4 00037100 */ sll $t6, $v1, 4 +/* 06DCF8 7F0391C8 01C37021 */ addu $t6, $t6, $v1 +/* 06DCFC 7F0391CC 000E7080 */ sll $t6, $t6, 2 +/* 06DD00 7F0391D0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06DD04 7F0391D4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06DD08 7F0391D8 01CF2021 */ addu $a0, $t6, $t7 +/* 06DD0C 7F0391DC 00812021 */ addu $a0, $a0, $at +.L7F0391E0: +/* 06DD10 7F0391E0 82230001 */ lb $v1, 1($s1) +/* 06DD14 7F0391E4 0460001B */ bltz $v1, .L7F039254 +/* 06DD18 7F0391E8 28610008 */ slti $at, $v1, 8 +/* 06DD1C 7F0391EC 5020001A */ beql $at, $zero, .L7F039258 +/* 06DD20 7F0391F0 26520006 */ addiu $s2, $s2, 6 +/* 06DD24 7F0391F4 10800017 */ beqz $a0, .L7F039254 +/* 06DD28 7F0391F8 00035080 */ sll $t2, $v1, 2 +/* 06DD2C 7F0391FC 01435023 */ subu $t2, $t2, $v1 +/* 06DD30 7F039200 000A50C0 */ sll $t2, $t2, 3 +/* 06DD34 7F039204 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DD38 7F039208 002A0821 */ addu $at, $at, $t2 +/* 06DD3C 7F03920C AC259B78 */ sw $a1, %lo(sfx_related+8)($at) +/* 06DD40 7F039210 82290001 */ lb $t1, 1($s1) +/* 06DD44 7F039214 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DD48 7F039218 00096080 */ sll $t4, $t1, 2 +/* 06DD4C 7F03921C 01896023 */ subu $t4, $t4, $t1 +/* 06DD50 7F039220 000C60C0 */ sll $t4, $t4, 3 +/* 06DD54 7F039224 002C0821 */ addu $at, $at, $t4 +/* 06DD58 7F039228 AC249B80 */ sw $a0, %lo(sfx_related+16)($at) +/* 06DD5C 7F03922C 822B0001 */ lb $t3, 1($s1) +/* 06DD60 7F039230 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DD64 7F039234 000BC080 */ sll $t8, $t3, 2 +/* 06DD68 7F039238 030BC023 */ subu $t8, $t8, $t3 +/* 06DD6C 7F03923C 0018C0C0 */ sll $t8, $t8, 3 +/* 06DD70 7F039240 00380821 */ addu $at, $at, $t8 +/* 06DD74 7F039244 14A00003 */ bnez $a1, .L7F039254 +/* 06DD78 7F039248 AC209B84 */ sw $zero, %lo(sfx_related+20)($at) +/* 06DD7C 7F03924C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DD80 7F039250 82240001 */ lb $a0, 1($s1) +.L7F039254: +/* 06DD84 7F039254 26520006 */ addiu $s2, $s2, 6 +.L7F039258: +/* 06DD88 7F039258 1000F0CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DD8C 7F03925C 26310006 */ addiu $s1, $s1, 6 +actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5: +/* 06DD90 7F039260 92390002 */ lbu $t9, 2($s1) +/* 06DD94 7F039264 922E0003 */ lbu $t6, 3($s1) +/* 06DD98 7F039268 82230001 */ lb $v1, 1($s1) +/* 06DD9C 7F03926C 00196A00 */ sll $t5, $t9, 8 +/* 06DDA0 7F039270 01AE1025 */ or $v0, $t5, $t6 +/* 06DDA4 7F039274 00027C00 */ sll $t7, $v0, 0x10 +/* 06DDA8 7F039278 04600013 */ bltz $v1, .L7F0392C8 +/* 06DDAC 7F03927C 000F5403 */ sra $t2, $t7, 0x10 +/* 06DDB0 7F039280 28610008 */ slti $at, $v1, 8 +/* 06DDB4 7F039284 10200010 */ beqz $at, .L7F0392C8 +/* 06DDB8 7F039288 00034880 */ sll $t1, $v1, 2 +/* 06DDBC 7F03928C 01234823 */ subu $t1, $t1, $v1 +/* 06DDC0 7F039290 000948C0 */ sll $t1, $t1, 3 +/* 06DDC4 7F039294 3C0C8007 */ lui $t4, %hi(sfx_related+4) +/* 06DDC8 7F039298 01896021 */ addu $t4, $t4, $t1 +/* 06DDCC 7F03929C 8D8C9B74 */ lw $t4, %lo(sfx_related+4)($t4) +/* 06DDD0 7F0392A0 02C02025 */ move $a0, $s6 +/* 06DDD4 7F0392A4 02402825 */ move $a1, $s2 +/* 06DDD8 7F0392A8 018A082A */ slt $at, $t4, $t2 +/* 06DDDC 7F0392AC 50200007 */ beql $at, $zero, .L7F0392CC +/* 06DDE0 7F0392B0 26520005 */ addiu $s2, $s2, 5 +/* 06DDE4 7F0392B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DDE8 7F0392B8 92260004 */ lbu $a2, 4($s1) +/* 06DDEC 7F0392BC 00409025 */ move $s2, $v0 +/* 06DDF0 7F0392C0 1000F0B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DDF4 7F0392C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0392C8: +/* 06DDF8 7F0392C8 26520005 */ addiu $s2, $s2, 5 +.L7F0392CC: +/* 06DDFC 7F0392CC 1000F0AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE00 7F0392D0 26310005 */ addiu $s1, $s1, 5 +actionCB_Set_Object_Path_27_Type_Object_2: +/* 06DE04 7F0392D4 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06DE08 7F0392D8 92240001 */ lbu $a0, 1($s1) +/* 06DE0C 7F0392DC 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE10 7F0392E0 26520002 */ addiu $s2, $s2, 2 +/* 06DE14 7F0392E4 11600003 */ beqz $t3, .L7F0392F4 +/* 06DE18 7F0392E8 00000000 */ nop +/* 06DE1C 7F0392EC AD6200A4 */ sw $v0, 0xa4($t3) +/* 06DE20 7F0392F0 AD6000A8 */ sw $zero, 0xa8($t3) +.L7F0392F4: +/* 06DE24 7F0392F4 1000F0A5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE28 7F0392F8 26310002 */ addiu $s1, $s1, 2 +actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5: +/* 06DE2C 7F0392FC 922F0001 */ lbu $t7, 1($s1) +/* 06DE30 7F039300 92290002 */ lbu $t1, 2($s1) +/* 06DE34 7F039304 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 06DE38 7F039308 000F5200 */ sll $t2, $t7, 8 +/* 06DE3C 7F03930C 01496025 */ or $t4, $t2, $t1 +/* 06DE40 7F039310 448C8000 */ mtc1 $t4, $f16 +/* 06DE44 7F039314 44812000 */ mtc1 $at, $f4 +/* 06DE48 7F039318 92380003 */ lbu $t8, 3($s1) +/* 06DE4C 7F03931C 46808220 */ cvt.s.w $f8, $f16 +/* 06DE50 7F039320 922D0004 */ lbu $t5, 4($s1) +/* 06DE54 7F039324 0018CA00 */ sll $t9, $t8, 8 +/* 06DE58 7F039328 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE5C 7F03932C 3C014670 */ li $at, 0x46700000 # 15360.000000 +/* 06DE60 7F039330 032D7025 */ or $t6, $t9, $t5 +/* 06DE64 7F039334 46044182 */ mul.s $f6, $f8, $f4 +/* 06DE68 7F039338 448E9000 */ mtc1 $t6, $f18 +/* 06DE6C 7F03933C 44815000 */ mtc1 $at, $f10 +/* 06DE70 7F039340 26520005 */ addiu $s2, $s2, 5 +/* 06DE74 7F039344 46809020 */ cvt.s.w $f0, $f18 +/* 06DE78 7F039348 11600003 */ beqz $t3, .L7F039358 +/* 06DE7C 7F03934C 460A3083 */ div.s $f2, $f6, $f10 +/* 06DE80 7F039350 E5620094 */ swc1 $f2, 0x94($t3) +/* 06DE84 7F039354 E5600098 */ swc1 $f0, 0x98($t3) +.L7F039358: +/* 06DE88 7F039358 1000F08C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE8C 7F03935C 26310005 */ addiu $s1, $s1, 5 +actionCD_Set_Speed_Aircraft_Rotor_5: +/* 06DE90 7F039360 922F0001 */ lbu $t7, 1($s1) +/* 06DE94 7F039364 92290002 */ lbu $t1, 2($s1) +/* 06DE98 7F039368 92380003 */ lbu $t8, 3($s1) +/* 06DE9C 7F03936C 000F5200 */ sll $t2, $t7, 8 +/* 06DEA0 7F039370 01496025 */ or $t4, $t2, $t1 +/* 06DEA4 7F039374 448C8000 */ mtc1 $t4, $f16 +/* 06DEA8 7F039378 922D0004 */ lbu $t5, 4($s1) +/* 06DEAC 7F03937C 0018CA00 */ sll $t9, $t8, 8 +/* 06DEB0 7F039380 46808220 */ cvt.s.w $f8, $f16 +/* 06DEB4 7F039384 8FAB07AC */ lw $t3, 0x7ac($sp) +/* 06DEB8 7F039388 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 06DEBC 7F03938C 032D7025 */ or $t6, $t9, $t5 +/* 06DEC0 7F039390 448E9000 */ mtc1 $t6, $f18 +/* 06DEC4 7F039394 44813000 */ mtc1 $at, $f6 +/* 06DEC8 7F039398 461A4102 */ mul.s $f4, $f8, $f26 +/* 06DECC 7F03939C 26520005 */ addiu $s2, $s2, 5 +/* 06DED0 7F0393A0 46809020 */ cvt.s.w $f0, $f18 +/* 06DED4 7F0393A4 11600003 */ beqz $t3, .L7F0393B4 +/* 06DED8 7F0393A8 46062083 */ div.s $f2, $f4, $f6 +/* 06DEDC 7F0393AC E5620090 */ swc1 $f2, 0x90($t3) +/* 06DEE0 7F0393B0 E5600094 */ swc1 $f0, 0x94($t3) +.L7F0393B4: +/* 06DEE4 7F0393B4 1000F075 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DEE8 7F0393B8 26310005 */ addiu $s1, $s1, 5 +actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2: +/* 06DEEC 7F0393BC 0FC1E94A */ jal get_camera_mode +/* 06DEF0 7F0393C0 00000000 */ nop +/* 06DEF4 7F0393C4 24010001 */ li $at, 1 +/* 06DEF8 7F0393C8 50410006 */ beql $v0, $at, .L7F0393E4 +/* 06DEFC 7F0393CC 02C02025 */ move $a0, $s6 +/* 06DF00 7F0393D0 0FC1E94A */ jal get_camera_mode +/* 06DF04 7F0393D4 00000000 */ nop +/* 06DF08 7F0393D8 24010002 */ li $at, 2 +/* 06DF0C 7F0393DC 14410007 */ bne $v0, $at, .L7F0393FC +/* 06DF10 7F0393E0 02C02025 */ move $a0, $s6 +.L7F0393E4: +/* 06DF14 7F0393E4 02402825 */ move $a1, $s2 +/* 06DF18 7F0393E8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF1C 7F0393EC 92260001 */ lbu $a2, 1($s1) +/* 06DF20 7F0393F0 00409025 */ move $s2, $v0 +/* 06DF24 7F0393F4 1000F065 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF28 7F0393F8 02C28821 */ addu $s1, $s6, $v0 +.L7F0393FC: +/* 06DF2C 7F0393FC 26520002 */ addiu $s2, $s2, 2 +/* 06DF30 7F039400 1000F062 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF34 7F039404 26310002 */ addiu $s1, $s1, 2 +actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2: +/* 06DF38 7F039408 0FC1E94A */ jal get_camera_mode +/* 06DF3C 7F03940C 00000000 */ nop +/* 06DF40 7F039410 24010003 */ li $at, 3 +/* 06DF44 7F039414 14410007 */ bne $v0, $at, .L7F039434 +/* 06DF48 7F039418 02C02025 */ move $a0, $s6 +/* 06DF4C 7F03941C 02402825 */ move $a1, $s2 +/* 06DF50 7F039420 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF54 7F039424 92260001 */ lbu $a2, 1($s1) +/* 06DF58 7F039428 00409025 */ move $s2, $v0 +/* 06DF5C 7F03942C 1000F057 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF60 7F039430 02C28821 */ addu $s1, $s6, $v0 +.L7F039434: +/* 06DF64 7F039434 26520002 */ addiu $s2, $s2, 2 +/* 06DF68 7F039438 1000F054 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF6C 7F03943C 26310002 */ addiu $s1, $s1, 2 +actionD0_Change_Animation_Type_Of_Type_16_Monitor_4: +/* 06DF70 7F039440 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DF74 7F039444 92240001 */ lbu $a0, 1($s1) +/* 06DF78 7F039448 1040001D */ beqz $v0, .L7F0394C0 +/* 06DF7C 7F03944C 00403025 */ move $a2, $v0 +/* 06DF80 7F039450 8C580010 */ lw $t8, 0x10($v0) +/* 06DF84 7F039454 5300001B */ beql $t8, $zero, .L7F0394C4 +/* 06DF88 7F039458 26520004 */ addiu $s2, $s2, 4 +/* 06DF8C 7F03945C 90430003 */ lbu $v1, 3($v0) +/* 06DF90 7F039460 2401000A */ li $at, 10 +/* 06DF94 7F039464 24440080 */ addiu $a0, $v0, 0x80 +/* 06DF98 7F039468 54610007 */ bnel $v1, $at, .L7F039488 +/* 06DF9C 7F03946C 2401000B */ li $at, 11 +/* 06DFA0 7F039470 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFA4 7F039474 92250003 */ lbu $a1, 3($s1) +/* 06DFA8 7F039478 26520004 */ addiu $s2, $s2, 4 +/* 06DFAC 7F03947C 1000F043 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFB0 7F039480 26310004 */ addiu $s1, $s1, 4 +/* 06DFB4 7F039484 2401000B */ li $at, 11 +.L7F039488: +/* 06DFB8 7F039488 5461000E */ bnel $v1, $at, .L7F0394C4 +/* 06DFBC 7F03948C 26520004 */ addiu $s2, $s2, 4 +/* 06DFC0 7F039490 92220002 */ lbu $v0, 2($s1) +/* 06DFC4 7F039494 28410004 */ slti $at, $v0, 4 +/* 06DFC8 7F039498 10200009 */ beqz $at, .L7F0394C0 +/* 06DFCC 7F03949C 0002C8C0 */ sll $t9, $v0, 3 +/* 06DFD0 7F0394A0 0322C823 */ subu $t9, $t9, $v0 +/* 06DFD4 7F0394A4 0019C880 */ sll $t9, $t9, 2 +/* 06DFD8 7F0394A8 0322C821 */ addu $t9, $t9, $v0 +/* 06DFDC 7F0394AC 0019C880 */ sll $t9, $t9, 2 +/* 06DFE0 7F0394B0 00D92021 */ addu $a0, $a2, $t9 +/* 06DFE4 7F0394B4 24840080 */ addiu $a0, $a0, 0x80 +/* 06DFE8 7F0394B8 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFEC 7F0394BC 92250003 */ lbu $a1, 3($s1) +.L7F0394C0: +/* 06DFF0 7F0394C0 26520004 */ addiu $s2, $s2, 4 +.L7F0394C4: +/* 06DFF4 7F0394C4 1000F031 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFF8 7F0394C8 26310004 */ addiu $s1, $s1, 4 +actionD1_If_Bond_In_Tank_RVL_2: +/* 06DFFC 7F0394CC 0FC1F39E */ jal get_intank_flag +/* 06E000 7F0394D0 00000000 */ nop +/* 06E004 7F0394D4 24010001 */ li $at, 1 +/* 06E008 7F0394D8 14410007 */ bne $v0, $at, .L7F0394F8 +/* 06E00C 7F0394DC 02C02025 */ move $a0, $s6 +/* 06E010 7F0394E0 02402825 */ move $a1, $s2 +/* 06E014 7F0394E4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E018 7F0394E8 92260001 */ lbu $a2, 1($s1) +/* 06E01C 7F0394EC 00409025 */ move $s2, $v0 +/* 06E020 7F0394F0 1000F026 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E024 7F0394F4 02C28821 */ addu $s1, $s6, $v0 +.L7F0394F8: +/* 06E028 7F0394F8 26520002 */ addiu $s2, $s2, 2 +/* 06E02C 7F0394FC 1000F023 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E030 7F039500 26310002 */ addiu $s1, $s1, 2 +actionD2_Exit_Level_1: +/* 06E034 7F039504 3C0D8003 */ lui $t5, %hi(camera_8003642C) +/* 06E038 7F039508 8DAD642C */ lw $t5, %lo(camera_8003642C)($t5) +/* 06E03C 7F03950C 3C0E8003 */ lui $t6, %hi(camera_80036434) +/* 06E040 7F039510 11A0000A */ beqz $t5, .L7F03953C +/* 06E044 7F039514 00000000 */ nop +/* 06E048 7F039518 8DCE6434 */ lw $t6, %lo(camera_80036434)($t6) +/* 06E04C 7F03951C 240F0001 */ li $t7, 1 +/* 06E050 7F039520 3C018003 */ lui $at, %hi(camera_80036434) +/* 06E054 7F039524 55C00008 */ bnezl $t6, .L7F039548 +/* 06E058 7F039528 26520001 */ addiu $s2, $s2, 1 +/* 06E05C 7F03952C AC2F6434 */ sw $t7, %lo(camera_80036434)($at) +/* 06E060 7F039530 26520001 */ addiu $s2, $s2, 1 +/* 06E064 7F039534 1000F015 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E068 7F039538 26310001 */ addiu $s1, $s1, 1 +.L7F03953C: +/* 06E06C 7F03953C 0C001A5A */ jal return_to_title_from_level_end +/* 06E070 7F039540 00000000 */ nop +/* 06E074 7F039544 26520001 */ addiu $s2, $s2, 1 +.L7F039548: +/* 06E078 7F039548 1000F010 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E07C 7F03954C 26310001 */ addiu $s1, $s1, 1 +actionD3_Return_From_Camera_Scene_1: +/* 06E080 7F039550 0FC1EA6E */ jal set_camera_mode +/* 06E084 7F039554 24040008 */ li $a0, 8 +/* 06E088 7F039558 26520001 */ addiu $s2, $s2, 1 +/* 06E08C 7F03955C 1000F00B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E090 7F039560 26310001 */ addiu $s1, $s1, 1 +actionD4_Camera_Looks_At_Bond_From_Preset_3: +/* 06E094 7F039564 922A0001 */ lbu $t2, 1($s1) +/* 06E098 7F039568 922C0002 */ lbu $t4, 2($s1) +/* 06E09C 7F03956C 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06E0A0 7F039570 000A4A00 */ sll $t1, $t2, 8 +/* 06E0A4 7F039574 012C1025 */ or $v0, $t1, $t4 +/* 06E0A8 7F039578 304BFFFF */ andi $t3, $v0, 0xffff +/* 06E0AC 7F03957C 29612710 */ slti $at, $t3, 0x2710 +/* 06E0B0 7F039580 1020000C */ beqz $at, .L7F0395B4 +/* 06E0B4 7F039584 01601825 */ move $v1, $t3 +/* 06E0B8 7F039588 000BC080 */ sll $t8, $t3, 2 +/* 06E0BC 7F03958C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0C0 7F039590 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06E0C4 7F039594 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06E0C8 7F039598 0018C080 */ sll $t8, $t8, 2 +/* 06E0CC 7F03959C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0D0 7F0395A0 0018C080 */ sll $t8, $t8, 2 +/* 06E0D4 7F0395A4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E0D8 7F0395A8 03196821 */ addu $t5, $t8, $t9 +/* 06E0DC 7F0395AC 1000000B */ b .L7F0395DC +/* 06E0E0 7F0395B0 AC2D99F8 */ sw $t5, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395B4: +/* 06E0E4 7F0395B4 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06E0E8 7F0395B8 00037100 */ sll $t6, $v1, 4 +/* 06E0EC 7F0395BC 01C37021 */ addu $t6, $t6, $v1 +/* 06E0F0 7F0395C0 000E7080 */ sll $t6, $t6, 2 +/* 06E0F4 7F0395C4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E0F8 7F0395C8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E0FC 7F0395CC 01CF5021 */ addu $t2, $t6, $t7 +/* 06E100 7F0395D0 01414821 */ addu $t1, $t2, $at +/* 06E104 7F0395D4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E108 7F0395D8 AC2999F8 */ sw $t1, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395DC: +/* 06E10C 7F0395DC 0FC1EA6E */ jal set_camera_mode +/* 06E110 7F0395E0 24040007 */ li $a0, 7 +/* 06E114 7F0395E4 26520003 */ addiu $s2, $s2, 3 +/* 06E118 7F0395E8 1000EFE8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E11C 7F0395EC 26310003 */ addiu $s1, $s1, 3 +actionD5_Go_To_Camera_Position_6: +/* 06E120 7F0395F0 0FC15C20 */ jal sub_GAME_7F057080 +/* 06E124 7F0395F4 92240001 */ lbu $a0, 1($s1) +/* 06E128 7F0395F8 1040001A */ beqz $v0, .L7F039664 +/* 06E12C 7F0395FC 00408025 */ move $s0, $v0 +/* 06E130 7F039600 0FC15AC7 */ jal check_if_object_type_has_been_loaded +/* 06E134 7F039604 00402025 */ move $a0, $v0 +/* 06E138 7F039608 04420017 */ bltzl $v0, .L7F039668 +/* 06E13C 7F03960C 26520006 */ addiu $s2, $s2, 6 +/* 06E140 7F039610 860C0006 */ lh $t4, 6($s0) +/* 06E144 7F039614 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 06E148 7F039618 01822021 */ addu $a0, $t4, $v0 +/* 06E14C 7F03961C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E150 7F039620 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E154 7F039624 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E158 7F039628 AC2299FC */ sw $v0, %lo(dword_CODE_bss_800799FC)($at) +/* 06E15C 7F03962C 922B0002 */ lbu $t3, 2($s1) +/* 06E160 7F039630 92390003 */ lbu $t9, 3($s1) +/* 06E164 7F039634 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A18) +/* 06E168 7F039638 000BC200 */ sll $t8, $t3, 8 +/* 06E16C 7F03963C 03196825 */ or $t5, $t8, $t9 +/* 06E170 7F039640 AC2D9A18 */ sw $t5, %lo(dword_CODE_bss_80079A18)($at) +/* 06E174 7F039644 922E0004 */ lbu $t6, 4($s1) +/* 06E178 7F039648 922A0005 */ lbu $t2, 5($s1) +/* 06E17C 7F03964C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A1C) +/* 06E180 7F039650 000E7A00 */ sll $t7, $t6, 8 +/* 06E184 7F039654 01EA4825 */ or $t1, $t7, $t2 +/* 06E188 7F039658 AC299A1C */ sw $t1, %lo(dword_CODE_bss_80079A1C)($at) +/* 06E18C 7F03965C 0FC1EA6E */ jal set_camera_mode +/* 06E190 7F039660 24040007 */ li $a0, 7 +.L7F039664: +/* 06E194 7F039664 26520006 */ addiu $s2, $s2, 6 +.L7F039668: +/* 06E198 7F039668 1000EFC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E19C 7F03966C 26310006 */ addiu $s1, $s1, 6 +actionD6_If_Less_Than_Elevation_RVL_4: +/* 06E1A0 7F039670 922C0001 */ lbu $t4, 1($s1) +/* 06E1A4 7F039674 92380002 */ lbu $t8, 2($s1) +/* 06E1A8 7F039678 000C5A00 */ sll $t3, $t4, 8 +/* 06E1AC 7F03967C 0178C825 */ or $t9, $t3, $t8 +/* 06E1B0 7F039680 00196C00 */ sll $t5, $t9, 0x10 +/* 06E1B4 7F039684 000D7403 */ sra $t6, $t5, 0x10 +/* 06E1B8 7F039688 448E5000 */ mtc1 $t6, $f10 +/* 06E1BC 7F03968C 00000000 */ nop +/* 06E1C0 7F039690 468054A0 */ cvt.s.w $f18, $f10 +/* 06E1C4 7F039694 0FC225E6 */ jal get_curplayer_positiondata +/* 06E1C8 7F039698 E7B2014C */ swc1 $f18, 0x14c($sp) +/* 06E1CC 7F03969C C450000C */ lwc1 $f16, 0xc($v0) +/* 06E1D0 7F0396A0 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06E1D4 7F0396A4 02C02025 */ move $a0, $s6 +/* 06E1D8 7F0396A8 02402825 */ move $a1, $s2 +/* 06E1DC 7F0396AC 4608803C */ c.lt.s $f16, $f8 +/* 06E1E0 7F0396B0 00000000 */ nop +/* 06E1E4 7F0396B4 45020007 */ bc1fl .L7F0396D4 +/* 06E1E8 7F0396B8 26520004 */ addiu $s2, $s2, 4 +/* 06E1EC 7F0396BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E1F0 7F0396C0 92260003 */ lbu $a2, 3($s1) +/* 06E1F4 7F0396C4 00409025 */ move $s2, $v0 +/* 06E1F8 7F0396C8 1000EFB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E1FC 7F0396CC 02C28821 */ addu $s1, $s6, $v0 +/* 06E200 7F0396D0 26520004 */ addiu $s2, $s2, 4 +.L7F0396D4: +/* 06E204 7F0396D4 1000EFAD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E208 7F0396D8 26310004 */ addiu $s1, $s1, 4 +actionD7_Disable_Text_Variable_2: +/* 06E20C 7F0396DC 24040004 */ li $a0, 4 +/* 06E210 7F0396E0 0FC1A96A */ jal set_unset_bitflags +/* 06E214 7F0396E4 00002825 */ move $a1, $zero +/* 06E218 7F0396E8 24040002 */ li $a0, 2 +/* 06E21C 7F0396EC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E220 7F0396F0 00002825 */ move $a1, $zero +/* 06E224 7F0396F4 92250001 */ lbu $a1, 1($s1) +/* 06E228 7F0396F8 30AF0002 */ andi $t7, $a1, 2 +/* 06E22C 7F0396FC 55E00005 */ bnezl $t7, .L7F039714 +/* 06E230 7F039700 30AA0001 */ andi $t2, $a1, 1 +/* 06E234 7F039704 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 06E238 7F039708 24040002 */ li $a0, 2 +/* 06E23C 7F03970C 92250001 */ lbu $a1, 1($s1) +/* 06E240 7F039710 30AA0001 */ andi $t2, $a1, 1 +.L7F039714: +/* 06E244 7F039714 55400005 */ bnezl $t2, .L7F03972C +/* 06E248 7F039718 30A90004 */ andi $t1, $a1, 4 +/* 06E24C 7F03971C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 06E250 7F039720 24040002 */ li $a0, 2 +/* 06E254 7F039724 92250001 */ lbu $a1, 1($s1) +/* 06E258 7F039728 30A90004 */ andi $t1, $a1, 4 +.L7F03972C: +/* 06E25C 7F03972C 15200003 */ bnez $t1, .L7F03973C +/* 06E260 7F039730 24040010 */ li $a0, 16 +/* 06E264 7F039734 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E268 7F039738 00002825 */ move $a1, $zero +.L7F03973C: +/* 06E26C 7F03973C 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E270 7F039740 AC2064B0 */ sw $zero, %lo(D_800364B0)($at) +/* 06E274 7F039744 26520002 */ addiu $s2, $s2, 2 +/* 06E278 7F039748 1000EF90 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E27C 7F03974C 26310002 */ addiu $s1, $s1, 2 +actionD8_Enable_All_On_Screen_Displays_1: +/* 06E280 7F039750 24040004 */ li $a0, 4 +/* 06E284 7F039754 0FC1A96A */ jal set_unset_bitflags +/* 06E288 7F039758 24050001 */ li $a1, 1 +/* 06E28C 7F03975C 24040002 */ li $a0, 2 +/* 06E290 7F039760 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E294 7F039764 24050001 */ li $a1, 1 +/* 06E298 7F039768 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 06E29C 7F03976C 24040002 */ li $a0, 2 +/* 06E2A0 7F039770 0FC22A4A */ jal sub_GAME_7F08A928 +/* 06E2A4 7F039774 24040002 */ li $a0, 2 +/* 06E2A8 7F039778 24040010 */ li $a0, 16 +/* 06E2AC 7F03977C 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E2B0 7F039780 24050001 */ li $a1, 1 +/* 06E2B4 7F039784 240C0001 */ li $t4, 1 +/* 06E2B8 7F039788 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E2BC 7F03978C AC2C64B0 */ sw $t4, %lo(D_800364B0)($at) +/* 06E2C0 7F039790 26520001 */ addiu $s2, $s2, 1 +/* 06E2C4 7F039794 1000EF7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E2C8 7F039798 26310001 */ addiu $s1, $s1, 1 +actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5: +/* 06E2CC 7F03979C 922B0002 */ lbu $t3, 2($s1) +/* 06E2D0 7F0397A0 92390003 */ lbu $t9, 3($s1) +/* 06E2D4 7F0397A4 02E02025 */ move $a0, $s7 +/* 06E2D8 7F0397A8 000BC200 */ sll $t8, $t3, 8 +/* 06E2DC 7F0397AC 92250001 */ lbu $a1, 1($s1) +/* 06E2E0 7F0397B0 0000A025 */ move $s4, $zero +/* 06E2E4 7F0397B4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E2E8 7F0397B8 03199825 */ or $s3, $t8, $t9 +/* 06E2EC 7F0397BC 1040005E */ beqz $v0, .L7F039938 +/* 06E2F0 7F0397C0 00408025 */ move $s0, $v0 +/* 06E2F4 7F0397C4 02E02025 */ move $a0, $s7 +/* 06E2F8 7F0397C8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 06E2FC 7F0397CC 02602825 */ move $a1, $s3 +/* 06E300 7F0397D0 28412710 */ slti $at, $v0, 0x2710 +/* 06E304 7F0397D4 1020000A */ beqz $at, .L7F039800 +/* 06E308 7F0397D8 00027900 */ sll $t7, $v0, 4 +/* 06E30C 7F0397DC 00026880 */ sll $t5, $v0, 2 +/* 06E310 7F0397E0 01A26823 */ subu $t5, $t5, $v0 +/* 06E314 7F0397E4 000D6880 */ sll $t5, $t5, 2 +/* 06E318 7F0397E8 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 06E31C 7F0397EC 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 06E320 7F0397F0 01A26823 */ subu $t5, $t5, $v0 +/* 06E324 7F0397F4 000D6880 */ sll $t5, $t5, 2 +/* 06E328 7F0397F8 10000009 */ b .L7F039820 +/* 06E32C 7F0397FC 01AE1821 */ addu $v1, $t5, $t6 +.L7F039800: +/* 06E330 7F039800 3C0A8007 */ lui $t2, %hi(ptr_2xxxpresets) +/* 06E334 7F039804 8D4A5D1C */ lw $t2, %lo(ptr_2xxxpresets)($t2) +/* 06E338 7F039808 01E27821 */ addu $t7, $t7, $v0 +/* 06E33C 7F03980C 000F7880 */ sll $t7, $t7, 2 +/* 06E340 7F039810 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E344 7F039814 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E348 7F039818 01EA1821 */ addu $v1, $t7, $t2 +/* 06E34C 7F03981C 00611821 */ addu $v1, $v1, $at +.L7F039820: +/* 06E350 7F039820 C46C0018 */ lwc1 $f12, 0x18($v1) +/* 06E354 7F039824 C46E0020 */ lwc1 $f14, 0x20($v1) +/* 06E358 7F039828 0FC16A8C */ jal atan2f +/* 06E35C 7F03982C AFA30134 */ sw $v1, 0x134($sp) +/* 06E360 7F039830 8FA30134 */ lw $v1, 0x134($sp) +/* 06E364 7F039834 E7A00130 */ swc1 $f0, 0x130($sp) +/* 06E368 7F039838 00002825 */ move $a1, $zero +/* 06E36C 7F03983C C4640000 */ lwc1 $f4, ($v1) +/* 06E370 7F039840 E7A40124 */ swc1 $f4, 0x124($sp) +/* 06E374 7F039844 C4660004 */ lwc1 $f6, 4($v1) +/* 06E378 7F039848 E7A60128 */ swc1 $f6, 0x128($sp) +/* 06E37C 7F03984C C46A0008 */ lwc1 $f10, 8($v1) +/* 06E380 7F039850 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 06E384 7F039854 8C690028 */ lw $t1, 0x28($v1) +/* 06E388 7F039858 AFA90120 */ sw $t1, 0x120($sp) +/* 06E38C 7F03985C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E390 7F039860 8E040018 */ lw $a0, 0x18($s0) +/* 06E394 7F039864 27A40124 */ addiu $a0, $sp, 0x124 +/* 06E398 7F039868 27A50120 */ addiu $a1, $sp, 0x120 +/* 06E39C 7F03986C 8FA60130 */ lw $a2, 0x130($sp) +/* 06E3A0 7F039870 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 06E3A4 7F039874 24070001 */ li $a3, 1 +/* 06E3A8 7F039878 1040002C */ beqz $v0, .L7F03992C +/* 06E3AC 7F03987C C7B20124 */ lwc1 $f18, 0x124($sp) +/* 06E3B0 7F039880 8E0C0018 */ lw $t4, 0x18($s0) +/* 06E3B4 7F039884 E5920008 */ swc1 $f18, 8($t4) +/* 06E3B8 7F039888 8E0B0018 */ lw $t3, 0x18($s0) +/* 06E3BC 7F03988C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 06E3C0 7F039890 E570000C */ swc1 $f16, 0xc($t3) +/* 06E3C4 7F039894 8E180018 */ lw $t8, 0x18($s0) +/* 06E3C8 7F039898 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 06E3CC 7F03989C E7080010 */ swc1 $f8, 0x10($t8) +/* 06E3D0 7F0398A0 8E0D0018 */ lw $t5, 0x18($s0) +/* 06E3D4 7F0398A4 8FB90120 */ lw $t9, 0x120($sp) +/* 06E3D8 7F0398A8 ADB90014 */ sw $t9, 0x14($t5) +/* 06E3DC 7F0398AC 8E0E0014 */ lw $t6, 0x14($s0) +/* 06E3E0 7F0398B0 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3E4 7F0398B4 35CF0001 */ ori $t7, $t6, 1 +/* 06E3E8 7F0398B8 AE0F0014 */ sw $t7, 0x14($s0) +/* 06E3EC 7F0398BC 0FC1B34F */ jal setsubroty +/* 06E3F0 7F0398C0 8FA50130 */ lw $a1, 0x130($sp) +/* 06E3F4 7F0398C4 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3F8 7F0398C8 0FC1B303 */ jal setsuboffset +/* 06E3FC 7F0398CC 27A50124 */ addiu $a1, $sp, 0x124 +/* 06E400 7F0398D0 0FC08365 */ jal sub_GAME_7F020D94 +/* 06E404 7F0398D4 02002025 */ move $a0, $s0 +/* 06E408 7F0398D8 3C028008 */ lui $v0, %hi(pPlayer) +/* 06E40C 7F0398DC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 06E410 7F0398E0 8E090018 */ lw $t1, 0x18($s0) +/* 06E414 7F0398E4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 06E418 7F0398E8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 06E41C 7F0398EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 06E420 7F0398F0 24140001 */ li $s4, 1 +/* 06E424 7F0398F4 1549000D */ bne $t2, $t1, .L7F03992C +/* 06E428 7F0398F8 00000000 */ nop +/* 06E42C 7F0398FC E444048C */ swc1 $f4, 0x48c($v0) +/* 06E430 7F039900 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 06E434 7F039904 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 06E438 7F039908 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 06E43C 7F03990C 3C198008 */ lui $t9, %hi(pPlayer) +/* 06E440 7F039910 E5860490 */ swc1 $f6, 0x490($t4) +/* 06E444 7F039914 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 06E448 7F039918 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 06E44C 7F03991C E56A0494 */ swc1 $f10, 0x494($t3) +/* 06E450 7F039920 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 06E454 7F039924 8FB80120 */ lw $t8, 0x120($sp) +/* 06E458 7F039928 AF380488 */ sw $t8, 0x488($t9) +.L7F03992C: +/* 06E45C 7F03992C 8E040018 */ lw $a0, 0x18($s0) +/* 06E460 7F039930 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E464 7F039934 24050001 */ li $a1, 1 +.L7F039938: +/* 06E468 7F039938 12800007 */ beqz $s4, .L7F039958 +/* 06E46C 7F03993C 02C02025 */ move $a0, $s6 +/* 06E470 7F039940 02402825 */ move $a1, $s2 +/* 06E474 7F039944 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E478 7F039948 92260004 */ lbu $a2, 4($s1) +/* 06E47C 7F03994C 00409025 */ move $s2, $v0 +/* 06E480 7F039950 1000EF0E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E484 7F039954 02C28821 */ addu $s1, $s6, $v0 +.L7F039958: +/* 06E488 7F039958 26520005 */ addiu $s2, $s2, 5 +/* 06E48C 7F03995C 1000EF0B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E490 7F039960 26310005 */ addiu $s1, $s1, 5 +actionDA_Fade_Out_From_Cut_Scene_1: +/* 06E494 7F039964 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E498 7F039968 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E49C 7F03996C 24010002 */ li $at, 2 +/* 06E4A0 7F039970 00002025 */ move $a0, $zero +/* 06E4A4 7F039974 11A10008 */ beq $t5, $at, .L7F039998 +/* 06E4A8 7F039978 00002825 */ move $a1, $zero +/* 06E4AC 7F03997C 4407A000 */ mfc1 $a3, $f20 +/* 06E4B0 7F039980 0FC201EC */ jal set_rgba_tint +/* 06E4B4 7F039984 00003025 */ move $a2, $zero +/* 06E4B8 7F039988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E4BC 7F03998C 44817000 */ mtc1 $at, $f14 +/* 06E4C0 7F039990 0FC20216 */ jal fade_to_over_seconds +/* 06E4C4 7F039994 4600B306 */ mov.s $f12, $f22 +.L7F039998: +/* 06E4C8 7F039998 26520001 */ addiu $s2, $s2, 1 +/* 06E4CC 7F03999C 1000EEFB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E4D0 7F0399A0 26310001 */ addiu $s1, $s1, 1 +actionDB_Fade_In_From_Black_Reset_DA_1: +/* 06E4D4 7F0399A4 3C0E8003 */ lui $t6, %hi(stop_time_flag) +/* 06E4D8 7F0399A8 8DCE64A0 */ lw $t6, %lo(stop_time_flag)($t6) +/* 06E4DC 7F0399AC 24010002 */ li $at, 2 +/* 06E4E0 7F0399B0 00002025 */ move $a0, $zero +/* 06E4E4 7F0399B4 11C10007 */ beq $t6, $at, .L7F0399D4 +/* 06E4E8 7F0399B8 00002825 */ move $a1, $zero +/* 06E4EC 7F0399BC 00003025 */ move $a2, $zero +/* 06E4F0 7F0399C0 0FC201EC */ jal set_rgba_tint +/* 06E4F4 7F0399C4 3C073F80 */ li $a3, 0x3F800000 # 1.000000 +/* 06E4F8 7F0399C8 4600B306 */ mov.s $f12, $f22 +/* 06E4FC 7F0399CC 0FC20216 */ jal fade_to_over_seconds +/* 06E500 7F0399D0 4600A386 */ mov.s $f14, $f20 +.L7F0399D4: +/* 06E504 7F0399D4 26520001 */ addiu $s2, $s2, 1 +/* 06E508 7F0399D8 1000EEEC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E50C 7F0399DC 26310001 */ addiu $s1, $s1, 1 +actionDC_RVL_When_Fade_Complete_2: +/* 06E510 7F0399E0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E514 7F0399E4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E518 7F0399E8 02C02025 */ move $a0, $s6 +/* 06E51C 7F0399EC 02402825 */ move $a1, $s2 +/* 06E520 7F0399F0 C5F203E4 */ lwc1 $f18, 0x3e4($t7) +/* 06E524 7F0399F4 4614903C */ c.lt.s $f18, $f20 +/* 06E528 7F0399F8 00000000 */ nop +/* 06E52C 7F0399FC 45020007 */ bc1fl .L7F039A1C +/* 06E530 7F039A00 26520002 */ addiu $s2, $s2, 2 +/* 06E534 7F039A04 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E538 7F039A08 92260001 */ lbu $a2, 1($s1) +/* 06E53C 7F039A0C 00409025 */ move $s2, $v0 +/* 06E540 7F039A10 1000EEDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E544 7F039A14 02C28821 */ addu $s1, $s6, $v0 +/* 06E548 7F039A18 26520002 */ addiu $s2, $s2, 2 +.L7F039A1C: +/* 06E54C 7F039A1C 1000EEDB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E550 7F039A20 26310002 */ addiu $s1, $s1, 2 +actionDD_Remove_All_Guards_1: +/* 06E554 7F039A24 0FC07D4C */ jal get_numguards +/* 06E558 7F039A28 00000000 */ nop +/* 06E55C 7F039A2C 2443FFFF */ addiu $v1, $v0, -1 +/* 06E560 7F039A30 04600011 */ bltz $v1, .L7F039A78 +/* 06E564 7F039A34 26520001 */ addiu $s2, $s2, 1 +/* 06E568 7F039A38 00031100 */ sll $v0, $v1, 4 +/* 06E56C 7F039A3C 00431023 */ subu $v0, $v0, $v1 +/* 06E570 7F039A40 000210C0 */ sll $v0, $v0, 3 +/* 06E574 7F039A44 00431023 */ subu $v0, $v0, $v1 +/* 06E578 7F039A48 00021080 */ sll $v0, $v0, 2 +/* 06E57C 7F039A4C 8FCA0000 */ lw $t2, ($fp) +.L7F039A50: +/* 06E580 7F039A50 01421821 */ addu $v1, $t2, $v0 +/* 06E584 7F039A54 8C69001C */ lw $t1, 0x1c($v1) +/* 06E588 7F039A58 2442FE24 */ addiu $v0, $v0, -0x1dc +/* 06E58C 7F039A5C 11200004 */ beqz $t1, .L7F039A70 +/* 06E590 7F039A60 00000000 */ nop +/* 06E594 7F039A64 8C6C0014 */ lw $t4, 0x14($v1) +/* 06E598 7F039A68 358B0400 */ ori $t3, $t4, 0x400 +/* 06E59C 7F039A6C AC6B0014 */ sw $t3, 0x14($v1) +.L7F039A70: +/* 06E5A0 7F039A70 0443FFF7 */ bgezl $v0, .L7F039A50 +/* 06E5A4 7F039A74 8FCA0000 */ lw $t2, ($fp) +.L7F039A78: +/* 06E5A8 7F039A78 1000EEC4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E5AC 7F039A7C 26310001 */ addiu $s1, $s1, 1 +actionDE_Bring_Removed_Guards_Back_1: +/* 06E5B0 7F039A80 0FC07D4C */ jal get_numguards +/* 06E5B4 7F039A84 00000000 */ nop +/* 06E5B8 7F039A88 2443FFFF */ addiu $v1, $v0, -1 +/* 06E5BC 7F039A8C 0460000E */ bltz $v1, .L7F039AC8 +/* 06E5C0 7F039A90 00602025 */ move $a0, $v1 +/* 06E5C4 7F039A94 00031900 */ sll $v1, $v1, 4 +/* 06E5C8 7F039A98 00641823 */ subu $v1, $v1, $a0 +/* 06E5CC 7F039A9C 000318C0 */ sll $v1, $v1, 3 +/* 06E5D0 7F039AA0 00641823 */ subu $v1, $v1, $a0 +/* 06E5D4 7F039AA4 00031880 */ sll $v1, $v1, 2 +/* 06E5D8 7F039AA8 2404FBFF */ li $a0, -1025 +.L7F039AAC: +/* 06E5DC 7F039AAC 8FD80000 */ lw $t8, ($fp) +/* 06E5E0 7F039AB0 03031021 */ addu $v0, $t8, $v1 +/* 06E5E4 7F039AB4 8C590014 */ lw $t9, 0x14($v0) +/* 06E5E8 7F039AB8 2463FE24 */ addiu $v1, $v1, -0x1dc +/* 06E5EC 7F039ABC 03246824 */ and $t5, $t9, $a0 +/* 06E5F0 7F039AC0 0461FFFA */ bgez $v1, .L7F039AAC +/* 06E5F4 7F039AC4 AC4D0014 */ sw $t5, 0x14($v0) +.L7F039AC8: +/* 06E5F8 7F039AC8 26520001 */ addiu $s2, $s2, 1 +/* 06E5FC 7F039ACC 1000EEAF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E600 7F039AD0 26310001 */ addiu $s1, $s1, 1 +actionDF_Open_Type_16_Door_Used_Cut_Scenes_2: +/* 06E604 7F039AD4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E608 7F039AD8 92240001 */ lbu $a0, 1($s1) +/* 06E60C 7F039ADC 10400011 */ beqz $v0, .L7F039B24 +/* 06E610 7F039AE0 00402025 */ move $a0, $v0 +/* 06E614 7F039AE4 8C4E0010 */ lw $t6, 0x10($v0) +/* 06E618 7F039AE8 51C0000F */ beql $t6, $zero, .L7F039B28 +/* 06E61C 7F039AEC 26520002 */ addiu $s2, $s2, 2 +/* 06E620 7F039AF0 C4500084 */ lwc1 $f16, 0x84($v0) +/* 06E624 7F039AF4 E45400B8 */ swc1 $f20, 0xb8($v0) +/* 06E628 7F039AF8 3C0F8005 */ lui $t7, %hi(global_timer) +/* 06E62C 7F039AFC E45000B4 */ swc1 $f16, 0xb4($v0) +/* 06E630 7F039B00 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 06E634 7F039B04 A04000BC */ sb $zero, 0xbc($v0) +/* 06E638 7F039B08 AC4F00EC */ sw $t7, 0xec($v0) +/* 06E63C 7F039B0C 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 06E640 7F039B10 AFA2010C */ sw $v0, 0x10c($sp) +/* 06E644 7F039B14 0FC14D66 */ jal sub_GAME_7F053598 +/* 06E648 7F039B18 8FA4010C */ lw $a0, 0x10c($sp) +/* 06E64C 7F039B1C 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 06E650 7F039B20 8FA4010C */ lw $a0, 0x10c($sp) +.L7F039B24: +/* 06E654 7F039B24 26520002 */ addiu $s2, $s2, 2 +.L7F039B28: +/* 06E658 7F039B28 1000EE98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E65C 7F039B2C 26310002 */ addiu $s1, $s1, 2 +actionE0_Guard_ID_Draws_Weapon_num_3: +/* 06E660 7F039B30 02E02025 */ move $a0, $s7 +/* 06E664 7F039B34 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E668 7F039B38 92250001 */ lbu $a1, 1($s1) +/* 06E66C 7F039B3C 10400003 */ beqz $v0, .L7F039B4C +/* 06E670 7F039B40 00402025 */ move $a0, $v0 +/* 06E674 7F039B44 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 06E678 7F039B48 92250002 */ lbu $a1, 2($s1) +.L7F039B4C: +/* 06E67C 7F039B4C 26520003 */ addiu $s2, $s2, 3 +/* 06E680 7F039B50 1000EE8E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E684 7F039B54 26310003 */ addiu $s1, $s1, 3 +actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3: +/* 06E688 7F039B58 0FC26919 */ jal get_num_players +/* 06E68C 7F039B5C 00000000 */ nop +/* 06E690 7F039B60 822A0001 */ lb $t2, 1($s1) +/* 06E694 7F039B64 02C02025 */ move $a0, $s6 +/* 06E698 7F039B68 02402825 */ move $a1, $s2 +/* 06E69C 7F039B6C 004A082A */ slt $at, $v0, $t2 +/* 06E6A0 7F039B70 50200007 */ beql $at, $zero, .L7F039B90 +/* 06E6A4 7F039B74 26520003 */ addiu $s2, $s2, 3 +/* 06E6A8 7F039B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6AC 7F039B7C 92260002 */ lbu $a2, 2($s1) +/* 06E6B0 7F039B80 00409025 */ move $s2, $v0 +/* 06E6B4 7F039B84 1000EE81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6B8 7F039B88 02C28821 */ addu $s1, $s6, $v0 +/* 06E6BC 7F039B8C 26520003 */ addiu $s2, $s2, 3 +.L7F039B90: +/* 06E6C0 7F039B90 1000EE7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6C4 7F039B94 26310003 */ addiu $s1, $s1, 3 +actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4: +/* 06E6C8 7F039B98 0FC1A496 */ jal check_cur_player_ammo_amount_total +/* 06E6CC 7F039B9C 82240001 */ lb $a0, 1($s1) +/* 06E6D0 7F039BA0 82290002 */ lb $t1, 2($s1) +/* 06E6D4 7F039BA4 02C02025 */ move $a0, $s6 +/* 06E6D8 7F039BA8 02402825 */ move $a1, $s2 +/* 06E6DC 7F039BAC 0049082A */ slt $at, $v0, $t1 +/* 06E6E0 7F039BB0 50200007 */ beql $at, $zero, .L7F039BD0 +/* 06E6E4 7F039BB4 26520004 */ addiu $s2, $s2, 4 +/* 06E6E8 7F039BB8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6EC 7F039BBC 92260003 */ lbu $a2, 3($s1) +/* 06E6F0 7F039BC0 00409025 */ move $s2, $v0 +/* 06E6F4 7F039BC4 1000EE71 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6F8 7F039BC8 02C28821 */ addu $s1, $s6, $v0 +/* 06E6FC 7F039BCC 26520004 */ addiu $s2, $s2, 4 +.L7F039BD0: +/* 06E700 7F039BD0 1000EE6E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E704 7F039BD4 26310004 */ addiu $s1, $s1, 4 +actionE3_Draw_Weapon_From_Inventory_In_Game_2: +/* 06E708 7F039BD8 00002025 */ move $a0, $zero +/* 06E70C 7F039BDC 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E710 7F039BE0 82250001 */ lb $a1, 1($s1) +/* 06E714 7F039BE4 24040001 */ li $a0, 1 +/* 06E718 7F039BE8 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E71C 7F039BEC 00002825 */ move $a1, $zero +/* 06E720 7F039BF0 26520002 */ addiu $s2, $s2, 2 +/* 06E724 7F039BF4 1000EE65 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E728 7F039BF8 26310002 */ addiu $s1, $s1, 2 +actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2: +/* 06E72C 7F039BFC 00002025 */ move $a0, $zero +/* 06E730 7F039C00 0FC176D5 */ jal remove_hands_item +/* 06E734 7F039C04 82250001 */ lb $a1, 1($s1) +/* 06E738 7F039C08 24040001 */ li $a0, 1 +/* 06E73C 7F039C0C 0FC176D5 */ jal remove_hands_item +/* 06E740 7F039C10 00002825 */ move $a1, $zero +/* 06E744 7F039C14 26520002 */ addiu $s2, $s2, 2 +/* 06E748 7F039C18 1000EE5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E74C 7F039C1C 26310002 */ addiu $s1, $s1, 2 +actionE5_Set_Bonds_Speed_3: +/* 06E750 7F039C20 822C0001 */ lb $t4, 1($s1) +/* 06E754 7F039C24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 06E758 7F039C28 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 06E75C 7F039C2C 448C4000 */ mtc1 $t4, $f8 +/* 06E760 7F039C30 E4540004 */ swc1 $f20, 4($v0) +/* 06E764 7F039C34 26520003 */ addiu $s2, $s2, 3 +/* 06E768 7F039C38 46804120 */ cvt.s.w $f4, $f8 +/* 06E76C 7F039C3C 26310003 */ addiu $s1, $s1, 3 +/* 06E770 7F039C40 E4440000 */ swc1 $f4, ($v0) +/* 06E774 7F039C44 822BFFFF */ lb $t3, -1($s1) +/* 06E778 7F039C48 448B3000 */ mtc1 $t3, $f6 +/* 06E77C 7F039C4C 00000000 */ nop +/* 06E780 7F039C50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E784 7F039C54 1000EE4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E788 7F039C58 E44A0008 */ swc1 $f10, 8($v0) +actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5: +/* 06E78C 7F039C5C 92380002 */ lbu $t8, 2($s1) +/* 06E790 7F039C60 922D0003 */ lbu $t5, 3($s1) +/* 06E794 7F039C64 92240001 */ lbu $a0, 1($s1) +/* 06E798 7F039C68 0018CA00 */ sll $t9, $t8, 8 +/* 06E79C 7F039C6C 032D8025 */ or $s0, $t9, $t5 +/* 06E7A0 7F039C70 320EFFFF */ andi $t6, $s0, 0xffff +/* 06E7A4 7F039C74 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E7A8 7F039C78 01C08025 */ move $s0, $t6 +/* 06E7AC 7F039C7C 2A012710 */ slti $at, $s0, 0x2710 +/* 06E7B0 7F039C80 1020000A */ beqz $at, .L7F039CAC +/* 06E7B4 7F039C84 02001825 */ move $v1, $s0 +/* 06E7B8 7F039C88 00037880 */ sll $t7, $v1, 2 +/* 06E7BC 7F039C8C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7C0 7F039C90 000F7880 */ sll $t7, $t7, 2 +/* 06E7C4 7F039C94 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 06E7C8 7F039C98 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 06E7CC 7F039C9C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7D0 7F039CA0 000F7880 */ sll $t7, $t7, 2 +/* 06E7D4 7F039CA4 1000000A */ b .L7F039CD0 +/* 06E7D8 7F039CA8 01EA2021 */ addu $a0, $t7, $t2 +.L7F039CAC: +/* 06E7DC 7F039CAC 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 06E7E0 7F039CB0 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 06E7E4 7F039CB4 00034900 */ sll $t1, $v1, 4 +/* 06E7E8 7F039CB8 01234821 */ addu $t1, $t1, $v1 +/* 06E7EC 7F039CBC 00094880 */ sll $t1, $t1, 2 +/* 06E7F0 7F039CC0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E7F4 7F039CC4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E7F8 7F039CC8 012C2021 */ addu $a0, $t1, $t4 +/* 06E7FC 7F039CCC 00812021 */ addu $a0, $a0, $at +.L7F039CD0: +/* 06E800 7F039CD0 8C830028 */ lw $v1, 0x28($a0) +/* 06E804 7F039CD4 50600013 */ beql $v1, $zero, .L7F039D24 +/* 06E808 7F039CD8 26520005 */ addiu $s2, $s2, 5 +/* 06E80C 7F039CDC 50400011 */ beql $v0, $zero, .L7F039D24 +/* 06E810 7F039CE0 26520005 */ addiu $s2, $s2, 5 +/* 06E814 7F039CE4 8C440010 */ lw $a0, 0x10($v0) +/* 06E818 7F039CE8 5080000E */ beql $a0, $zero, .L7F039D24 +/* 06E81C 7F039CEC 26520005 */ addiu $s2, $s2, 5 +/* 06E820 7F039CF0 8C8B0014 */ lw $t3, 0x14($a0) +/* 06E824 7F039CF4 90790003 */ lbu $t9, 3($v1) +/* 06E828 7F039CF8 02C02025 */ move $a0, $s6 +/* 06E82C 7F039CFC 91780003 */ lbu $t8, 3($t3) +/* 06E830 7F039D00 02402825 */ move $a1, $s2 +/* 06E834 7F039D04 57190007 */ bnel $t8, $t9, .L7F039D24 +/* 06E838 7F039D08 26520005 */ addiu $s2, $s2, 5 +/* 06E83C 7F039D0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E840 7F039D10 92260004 */ lbu $a2, 4($s1) +/* 06E844 7F039D14 00409025 */ move $s2, $v0 +/* 06E848 7F039D18 1000EE1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E84C 7F039D1C 02C28821 */ addu $s1, $s6, $v0 +/* 06E850 7F039D20 26520005 */ addiu $s2, $s2, 5 +.L7F039D24: +/* 06E854 7F039D24 1000EE19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E858 7F039D28 26310005 */ addiu $s1, $s1, 5 +actionE9_Instantly_Switch_Sky_To_Sky_2_1: +/* 06E85C 7F039D2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E860 7F039D30 44816000 */ mtc1 $at, $f12 +/* 06E864 7F039D34 0FC2EB2A */ jal switch_to_solosky2 +/* 06E868 7F039D38 00000000 */ nop +/* 06E86C 7F039D3C 26520001 */ addiu $s2, $s2, 1 +/* 06E870 7F039D40 1000EE12 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E874 7F039D44 26310001 */ addiu $s1, $s1, 1 +actionEA_Stop_Game_Time_1: +/* 06E878 7F039D48 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E87C 7F039D4C 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E880 7F039D50 240E0001 */ li $t6, 1 +/* 06E884 7F039D54 3C018003 */ lui $at, %hi(stop_time_flag) +/* 06E888 7F039D58 15A00002 */ bnez $t5, .L7F039D64 +/* 06E88C 7F039D5C 26520001 */ addiu $s2, $s2, 1 +/* 06E890 7F039D60 AC2E64A0 */ sw $t6, %lo(stop_time_flag)($at) +.L7F039D64: +/* 06E894 7F039D64 1000EE09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E898 7F039D68 26310001 */ addiu $s1, $s1, 1 +actionEB_If_Key_Pressed_RVL_2: +/* 06E89C 7F039D6C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E8A0 7F039D70 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E8A4 7F039D74 02C02025 */ move $a0, $s6 +/* 06E8A8 7F039D78 02402825 */ move $a1, $s2 +/* 06E8AC 7F039D7C 8DEA00D8 */ lw $t2, 0xd8($t7) +/* 06E8B0 7F039D80 51400007 */ beql $t2, $zero, .L7F039DA0 +/* 06E8B4 7F039D84 26520002 */ addiu $s2, $s2, 2 +/* 06E8B8 7F039D88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E8BC 7F039D8C 92260001 */ lbu $a2, 1($s1) +/* 06E8C0 7F039D90 00409025 */ move $s2, $v0 +/* 06E8C4 7F039D94 1000EDFD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8C8 7F039D98 02C28821 */ addu $s1, $s6, $v0 +/* 06E8CC 7F039D9C 26520002 */ addiu $s2, $s2, 2 +.L7F039DA0: +/* 06E8D0 7F039DA0 1000EDFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8D4 7F039DA4 26310002 */ addiu $s1, $s1, 2 +actionEC_Disable_Player_Pickups_1: +/* 06E8D8 7F039DA8 24090001 */ li $t1, 1 +/* 06E8DC 7F039DAC 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 06E8E0 7F039DB0 AC2964B4 */ sw $t1, %lo(disable_player_pickups_flag)($at) +/* 06E8E4 7F039DB4 26520001 */ addiu $s2, $s2, 1 +/* 06E8E8 7F039DB8 1000EDF4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8EC 7F039DBC 26310001 */ addiu $s1, $s1, 1 +actionED_Hide_First_Person_Display_1: +/* 06E8F0 7F039DC0 0FC173D7 */ jal remove_item_in_hand +/* 06E8F4 7F039DC4 00002025 */ move $a0, $zero +/* 06E8F8 7F039DC8 0FC173D7 */ jal remove_item_in_hand +/* 06E8FC 7F039DCC 24040001 */ li $a0, 1 +/* 06E900 7F039DD0 26520001 */ addiu $s2, $s2, 1 +/* 06E904 7F039DD4 1000EDED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E908 7F039DD8 26310001 */ addiu $s1, $s1, 1 +actionEE_Cuba_Circular_Camera_Aim_D: +/* 06E90C 7F039DDC 92390003 */ lbu $t9, 3($s1) +/* 06E910 7F039DE0 922E0004 */ lbu $t6, 4($s1) +/* 06E914 7F039DE4 922C0001 */ lbu $t4, 1($s1) +/* 06E918 7F039DE8 00196A00 */ sll $t5, $t9, 8 +/* 06E91C 7F039DEC 01AE1825 */ or $v1, $t5, $t6 +/* 06E920 7F039DF0 00037C00 */ sll $t7, $v1, 0x10 +/* 06E924 7F039DF4 922D0007 */ lbu $t5, 7($s1) +/* 06E928 7F039DF8 000F1C03 */ sra $v1, $t7, 0x10 +/* 06E92C 7F039DFC 922F0008 */ lbu $t7, 8($s1) +/* 06E930 7F039E00 92380002 */ lbu $t8, 2($s1) +/* 06E934 7F039E04 000D7200 */ sll $t6, $t5, 8 +/* 06E938 7F039E08 9239000B */ lbu $t9, 0xb($s1) +/* 06E93C 7F039E0C 01CF3025 */ or $a2, $t6, $t7 +/* 06E940 7F039E10 922E000C */ lbu $t6, 0xc($s1) +/* 06E944 7F039E14 000C5A00 */ sll $t3, $t4, 8 +/* 06E948 7F039E18 92290005 */ lbu $t1, 5($s1) +/* 06E94C 7F039E1C 01781025 */ or $v0, $t3, $t8 +/* 06E950 7F039E20 922B0006 */ lbu $t3, 6($s1) +/* 06E954 7F039E24 00196A00 */ sll $t5, $t9, 8 +/* 06E958 7F039E28 01AE4025 */ or $t0, $t5, $t6 +/* 06E95C 7F039E2C 44889000 */ mtc1 $t0, $f18 +/* 06E960 7F039E30 00096200 */ sll $t4, $t1, 8 +/* 06E964 7F039E34 018B2825 */ or $a1, $t4, $t3 +/* 06E968 7F039E38 0005C400 */ sll $t8, $a1, 0x10 +/* 06E96C 7F039E3C 46809420 */ cvt.s.w $f16, $f18 +/* 06E970 7F039E40 00182C03 */ sra $a1, $t8, 0x10 +/* 06E974 7F039E44 44853000 */ mtc1 $a1, $f6 +/* 06E978 7F039E48 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06E97C 7F039E4C 44810000 */ mtc1 $at, $f0 +/* 06E980 7F039E50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E984 7F039E54 461A8202 */ mul.s $f8, $f16, $f26 +/* 06E988 7F039E58 922A0009 */ lbu $t2, 9($s1) +/* 06E98C 7F039E5C 922C000A */ lbu $t4, 0xa($s1) +/* 06E990 7F039E60 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E994 7F039E64 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E998 7F039E68 461A5482 */ mul.s $f18, $f10, $f26 +/* 06E99C 7F039E6C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E9A0 7F039E70 AC2099FC */ sw $zero, %lo(dword_CODE_bss_800799FC)($at) +/* 06E9A4 7F039E74 000A4A00 */ sll $t1, $t2, 8 +/* 06E9A8 7F039E78 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A00) +/* 06E9AC 7F039E7C 012C3825 */ or $a3, $t1, $t4 +/* 06E9B0 7F039E80 46004103 */ div.s $f4, $f8, $f0 +/* 06E9B4 7F039E84 44824000 */ mtc1 $v0, $f8 +/* 06E9B8 7F039E88 44833000 */ mtc1 $v1, $f6 +/* 06E9BC 7F039E8C 00075C00 */ sll $t3, $a3, 0x10 +/* 06E9C0 7F039E90 000B3C03 */ sra $a3, $t3, 0x10 +/* 06E9C4 7F039E94 468032A0 */ cvt.s.w $f10, $f6 +/* 06E9C8 7F039E98 24040007 */ li $a0, 7 +/* 06E9CC 7F039E9C 46009403 */ div.s $f16, $f18, $f0 +/* 06E9D0 7F039EA0 E4249A00 */ swc1 $f4, %lo(flt_CODE_bss_80079A00)($at) +/* 06E9D4 7F039EA4 44879000 */ mtc1 $a3, $f18 +/* 06E9D8 7F039EA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 06E9DC 7F039EAC 46804120 */ cvt.s.w $f4, $f8 +/* 06E9E0 7F039EB0 E4309A04 */ swc1 $f16, %lo(flt_CODE_bss_80079A04)($at) +/* 06E9E4 7F039EB4 46809420 */ cvt.s.w $f16, $f18 +/* 06E9E8 7F039EB8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 06E9EC 7F039EBC E4249A08 */ swc1 $f4, %lo(flt_CODE_bss_80079A08)($at) +/* 06E9F0 7F039EC0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 06E9F4 7F039EC4 E42A9A0C */ swc1 $f10, %lo(flt_CODE_bss_80079A0C)($at) +/* 06E9F8 7F039EC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 06E9FC 7F039ECC E4309A10 */ swc1 $f16, %lo(flt_CODE_bss_80079A10)($at) +/* 06EA00 7F039ED0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A14) +/* 06EA04 7F039ED4 0FC1EA6E */ jal set_camera_mode +/* 06EA08 7F039ED8 AC269A14 */ sw $a2, %lo(dword_CODE_bss_80079A14)($at) +/* 06EA0C 7F039EDC 2652000D */ addiu $s2, $s2, 0xd +/* 06EA10 7F039EE0 1000EDAA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA14 7F039EE4 2631000D */ addiu $s1, $s1, 0xd +actionEF_Trigger_Credits_1: +/* 06EA18 7F039EE8 240F0001 */ li $t7, 1 +/* 06EA1C 7F039EEC 3C018003 */ lui $at, %hi(D_8003643C) +/* 06EA20 7F039EF0 AC2F643C */ sw $t7, %lo(D_8003643C)($at) +/* 06EA24 7F039EF4 26520001 */ addiu $s2, $s2, 1 +/* 06EA28 7F039EF8 1000EDA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA2C 7F039EFC 26310001 */ addiu $s1, $s1, 1 +actionF0_RVL_If_Credits_Completed_2: +/* 06EA30 7F039F00 3C0A8003 */ lui $t2, %hi(D_8003643C) +/* 06EA34 7F039F04 8D4A643C */ lw $t2, %lo(D_8003643C)($t2) +/* 06EA38 7F039F08 24010002 */ li $at, 2 +/* 06EA3C 7F039F0C 02C02025 */ move $a0, $s6 +/* 06EA40 7F039F10 15410006 */ bne $t2, $at, .L7F039F2C +/* 06EA44 7F039F14 02402825 */ move $a1, $s2 +/* 06EA48 7F039F18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA4C 7F039F1C 92260001 */ lbu $a2, 1($s1) +/* 06EA50 7F039F20 00409025 */ move $s2, $v0 +/* 06EA54 7F039F24 1000ED99 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA58 7F039F28 02C28821 */ addu $s1, $s6, $v0 +.L7F039F2C: +/* 06EA5C 7F039F2C 26520002 */ addiu $s2, $s2, 2 +/* 06EA60 7F039F30 1000ED96 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA64 7F039F34 26310002 */ addiu $s1, $s1, 2 +actionF1_If_All_Objectives_Complete_RVL_2: +/* 06EA68 7F039F38 0FC15D2E */ jal check_objectives_complete +/* 06EA6C 7F039F3C 00000000 */ nop +/* 06EA70 7F039F40 10400007 */ beqz $v0, .L7F039F60 +/* 06EA74 7F039F44 02C02025 */ move $a0, $s6 +/* 06EA78 7F039F48 02402825 */ move $a1, $s2 +/* 06EA7C 7F039F4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA80 7F039F50 92260001 */ lbu $a2, 1($s1) +/* 06EA84 7F039F54 00409025 */ move $s2, $v0 +/* 06EA88 7F039F58 1000ED8C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA8C 7F039F5C 02C28821 */ addu $s1, $s6, $v0 +.L7F039F60: +/* 06EA90 7F039F60 26520002 */ addiu $s2, $s2, 2 +/* 06EA94 7F039F64 1000ED89 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA98 7F039F68 26310002 */ addiu $s1, $s1, 2 +actionF2_Check_Current_Folder_Bond_RVL_3: +/* 06EA9C 7F039F6C 0FC0755B */ jal getSelectedFolderBond +/* 06EAA0 7F039F70 00000000 */ nop +/* 06EAA4 7F039F74 82290001 */ lb $t1, 1($s1) +/* 06EAA8 7F039F78 02C02025 */ move $a0, $s6 +/* 06EAAC 7F039F7C 02402825 */ move $a1, $s2 +/* 06EAB0 7F039F80 54490007 */ bnel $v0, $t1, .L7F039FA0 +/* 06EAB4 7F039F84 26520003 */ addiu $s2, $s2, 3 +/* 06EAB8 7F039F88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EABC 7F039F8C 92260002 */ lbu $a2, 2($s1) +/* 06EAC0 7F039F90 00409025 */ move $s2, $v0 +/* 06EAC4 7F039F94 1000ED7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAC8 7F039F98 02C28821 */ addu $s1, $s6, $v0 +/* 06EACC 7F039F9C 26520003 */ addiu $s2, $s2, 3 +.L7F039FA0: +/* 06EAD0 7F039FA0 1000ED7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAD4 7F039FA4 26310003 */ addiu $s1, $s1, 3 +actionF3_If_Player_Pickups_Disabled_RVL_2: +/* 06EAD8 7F039FA8 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 06EADC 7F039FAC 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 06EAE0 7F039FB0 02C02025 */ move $a0, $s6 +/* 06EAE4 7F039FB4 02402825 */ move $a1, $s2 +/* 06EAE8 7F039FB8 51800007 */ beql $t4, $zero, .L7F039FD8 +/* 06EAEC 7F039FBC 26520002 */ addiu $s2, $s2, 2 +/* 06EAF0 7F039FC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EAF4 7F039FC4 92260001 */ lbu $a2, 1($s1) +/* 06EAF8 7F039FC8 00409025 */ move $s2, $v0 +/* 06EAFC 7F039FCC 1000ED6F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB00 7F039FD0 02C28821 */ addu $s1, $s6, $v0 +/* 06EB04 7F039FD4 26520002 */ addiu $s2, $s2, 2 +.L7F039FD8: +/* 06EB08 7F039FD8 1000ED6C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB0C 7F039FDC 26310002 */ addiu $s1, $s1, 2 +actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4: +/* 06EB10 7F039FE0 02201025 */ move $v0, $s1 +/* 06EB14 7F039FE4 26310004 */ addiu $s1, $s1, 4 +/* 06EB18 7F039FE8 26520004 */ addiu $s2, $s2, 4 +/* 06EB1C 7F039FEC 80440001 */ lb $a0, 1($v0) +/* 06EB20 7F039FF0 90450002 */ lbu $a1, 2($v0) +/* 06EB24 7F039FF4 0FC3053F */ jal set_musicslot_time +/* 06EB28 7F039FF8 90460003 */ lbu $a2, 3($v0) +/* 06EB2C 7F039FFC 1000ED64 */ b ParseCommandByte_SwitchCase +/* 06EB30 7F03A000 922E0000 */ lbu $t6, ($s1) +actionF5_Turn_Off_Music_In_Slot_num_0_3_2: +/* 06EB34 7F03A004 02201025 */ move $v0, $s1 +/* 06EB38 7F03A008 26310002 */ addiu $s1, $s1, 2 +/* 06EB3C 7F03A00C 26520002 */ addiu $s2, $s2, 2 +/* 06EB40 7F03A010 0FC30556 */ jal reset_music_in_slot +/* 06EB44 7F03A014 80440001 */ lb $a0, 1($v0) +/* 06EB48 7F03A018 1000ED5D */ b ParseCommandByte_SwitchCase +/* 06EB4C 7F03A01C 922E0000 */ lbu $t6, ($s1) +actionF6_Trigger_Explosions_Around_Bond_1: +/* 06EB50 7F03A020 0FC22FF1 */ jal trigger_explosions_around_player +/* 06EB54 7F03A024 00002025 */ move $a0, $zero +/* 06EB58 7F03A028 26520001 */ addiu $s2, $s2, 1 +/* 06EB5C 7F03A02C 1000ED57 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB60 7F03A030 26310001 */ addiu $s1, $s1, 1 +actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3: +/* 06EB64 7F03A034 0FC1A9DC */ jal get_civilian_casualties +/* 06EB68 7F03A038 00000000 */ nop +/* 06EB6C 7F03A03C 922B0001 */ lbu $t3, 1($s1) +/* 06EB70 7F03A040 02C02025 */ move $a0, $s6 +/* 06EB74 7F03A044 02402825 */ move $a1, $s2 +/* 06EB78 7F03A048 0162082A */ slt $at, $t3, $v0 +/* 06EB7C 7F03A04C 50200007 */ beql $at, $zero, .L7F03A06C +/* 06EB80 7F03A050 26520003 */ addiu $s2, $s2, 3 +/* 06EB84 7F03A054 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EB88 7F03A058 92260002 */ lbu $a2, 2($s1) +/* 06EB8C 7F03A05C 00409025 */ move $s2, $v0 +/* 06EB90 7F03A060 1000ED4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB94 7F03A064 02C28821 */ addu $s1, $s6, $v0 +/* 06EB98 7F03A068 26520003 */ addiu $s2, $s2, 3 +.L7F03A06C: +/* 06EB9C 7F03A06C 1000ED47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBA0 7F03A070 26310003 */ addiu $s1, $s1, 3 +actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3: +/* 06EBA4 7F03A074 02E02025 */ move $a0, $s7 +/* 06EBA8 7F03A078 0FC0CC10 */ jal get_handle_for_guard_id +/* 06EBAC 7F03A07C 92250001 */ lbu $a1, 1($s1) +/* 06EBB0 7F03A080 50400012 */ beql $v0, $zero, .L7F03A0CC +/* 06EBB4 7F03A084 26520003 */ addiu $s2, $s2, 3 +/* 06EBB8 7F03A088 8C580014 */ lw $t8, 0x14($v0) +/* 06EBBC 7F03A08C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf +/* 06EBC0 7F03A090 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 06EBC4 7F03A094 0018CA80 */ sll $t9, $t8, 0xa +/* 06EBC8 7F03A098 0723000C */ bgezl $t9, .L7F03A0CC +/* 06EBCC 7F03A09C 26520003 */ addiu $s2, $s2, 3 +/* 06EBD0 7F03A0A0 8C4D0014 */ lw $t5, 0x14($v0) +/* 06EBD4 7F03A0A4 02C02025 */ move $a0, $s6 +/* 06EBD8 7F03A0A8 02402825 */ move $a1, $s2 +/* 06EBDC 7F03A0AC 01A17024 */ and $t6, $t5, $at +/* 06EBE0 7F03A0B0 AC4E0014 */ sw $t6, 0x14($v0) +/* 06EBE4 7F03A0B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EBE8 7F03A0B8 92260002 */ lbu $a2, 2($s1) +/* 06EBEC 7F03A0BC 00409025 */ move $s2, $v0 +/* 06EBF0 7F03A0C0 1000ED32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBF4 7F03A0C4 02C28821 */ addu $s1, $s6, $v0 +/* 06EBF8 7F03A0C8 26520003 */ addiu $s2, $s2, 3 +.L7F03A0CC: +/* 06EBFC 7F03A0CC 1000ED2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC00 7F03A0D0 26310003 */ addiu $s1, $s1, 3 +actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1: +/* 06EC04 7F03A0D4 240F0001 */ li $t7, 1 +/* 06EC08 7F03A0D8 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 06EC0C 7F03A0DC AC2FA928 */ sw $t7, %lo(mission_kia_flag)($at) +/* 06EC10 7F03A0E0 26520001 */ addiu $s2, $s2, 1 +/* 06EC14 7F03A0E4 1000ED29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC18 7F03A0E8 26310001 */ addiu $s1, $s1, 1 +actionFA_Guard_Fawns_On_Shoulder_1: +/* 06EC1C 7F03A0EC 0FC0CD93 */ jal check_if_able_to_then_fawn_on_shoulder +/* 06EC20 7F03A0F0 02E02025 */ move $a0, $s7 +/* 06EC24 7F03A0F4 26520001 */ addiu $s2, $s2, 1 +/* 06EC28 7F03A0F8 1000ED24 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC2C 7F03A0FC 26310001 */ addiu $s1, $s1, 1 +actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_: +/* 06EC30 7F03A100 3C0A8003 */ lui $t2, %hi(D_80030A88) +/* 06EC34 7F03A104 254A0A88 */ addiu $t2, %lo(D_80030A88) # addiu $t2, $t2, 0xa88 +/* 06EC38 7F03A108 8D410000 */ lw $at, ($t2) +/* 06EC3C 7F03A10C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06EC40 7F03A110 AC810000 */ sw $at, ($a0) +/* 06EC44 7F03A114 8D4B0004 */ lw $t3, 4($t2) +/* 06EC48 7F03A118 AC8B0004 */ sw $t3, 4($a0) +/* 06EC4C 7F03A11C 8D410008 */ lw $at, 8($t2) +/* 06EC50 7F03A120 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 06EC54 7F03A124 AC810008 */ sw $at, 8($a0) +/* 06EC58 7F03A128 26520001 */ addiu $s2, $s2, 1 +/* 06EC5C 7F03A12C 1000ED17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC60 7F03A130 26310001 */ addiu $s1, $s1, 1 +actionFC_Launch_Shuttle_2: +/* 06EC64 7F03A134 0FC15C30 */ jal get_handle_to_tagged_object +/* 06EC68 7F03A138 92240001 */ lbu $a0, 1($s1) +/* 06EC6C 7F03A13C 50400029 */ beql $v0, $zero, .L7F03A1E4 +/* 06EC70 7F03A140 26520002 */ addiu $s2, $s2, 2 +/* 06EC74 7F03A144 8C580010 */ lw $t8, 0x10($v0) +/* 06EC78 7F03A148 53000026 */ beql $t8, $zero, .L7F03A1E4 +/* 06EC7C 7F03A14C 26520002 */ addiu $s2, $s2, 2 +/* 06EC80 7F03A150 8C440010 */ lw $a0, 0x10($v0) +/* 06EC84 7F03A154 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 06EC88 7F03A158 AFA20088 */ sw $v0, 0x88($sp) +/* 06EC8C 7F03A15C 8FA30088 */ lw $v1, 0x88($sp) +/* 06EC90 7F03A160 8C790064 */ lw $t9, 0x64($v1) +/* 06EC94 7F03A164 332D0080 */ andi $t5, $t9, 0x80 +/* 06EC98 7F03A168 51A0001E */ beql $t5, $zero, .L7F03A1E4 +/* 06EC9C 7F03A16C 26520002 */ addiu $s2, $s2, 2 +/* 06ECA0 7F03A170 8C62006C */ lw $v0, 0x6c($v1) +/* 06ECA4 7F03A174 8C4E0000 */ lw $t6, ($v0) +/* 06ECA8 7F03A178 35CF0601 */ ori $t7, $t6, 0x601 +/* 06ECAC 7F03A17C AC4F0000 */ sw $t7, ($v0) +/* 06ECB0 7F03A180 8C640010 */ lw $a0, 0x10($v1) +/* 06ECB4 7F03A184 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 06ECB8 7F03A188 AFA30088 */ sw $v1, 0x88($sp) +/* 06ECBC 7F03A18C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECC0 7F03A190 8C64006C */ lw $a0, 0x6c($v1) +/* 06ECC4 7F03A194 0FC15FF4 */ jal matrix_4x4_set_identity +/* 06ECC8 7F03A198 24840020 */ addiu $a0, $a0, 0x20 +/* 06ECCC 7F03A19C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECD0 7F03A1A0 3C018005 */ lui $at, %hi(D_80052974) +/* 06ECD4 7F03A1A4 8C6C006C */ lw $t4, 0x6c($v1) +/* 06ECD8 7F03A1A8 E5940004 */ swc1 $f20, 4($t4) +/* 06ECDC 7F03A1AC C4282974 */ lwc1 $f8, %lo(D_80052974)($at) +/* 06ECE0 7F03A1B0 8C69006C */ lw $t1, 0x6c($v1) +/* 06ECE4 7F03A1B4 3C018005 */ lui $at, %hi(D_80052978) +/* 06ECE8 7F03A1B8 E5280008 */ swc1 $f8, 8($t1) +/* 06ECEC 7F03A1BC 8C6A006C */ lw $t2, 0x6c($v1) +/* 06ECF0 7F03A1C0 E554000C */ swc1 $f20, 0xc($t2) +/* 06ECF4 7F03A1C4 8C6B006C */ lw $t3, 0x6c($v1) +/* 06ECF8 7F03A1C8 E5740010 */ swc1 $f20, 0x10($t3) +/* 06ECFC 7F03A1CC C4242978 */ lwc1 $f4, %lo(D_80052978)($at) +/* 06ED00 7F03A1D0 8C78006C */ lw $t8, 0x6c($v1) +/* 06ED04 7F03A1D4 E7040014 */ swc1 $f4, 0x14($t8) +/* 06ED08 7F03A1D8 8C79006C */ lw $t9, 0x6c($v1) +/* 06ED0C 7F03A1DC E7340018 */ swc1 $f20, 0x18($t9) +/* 06ED10 7F03A1E0 26520002 */ addiu $s2, $s2, 2 +.L7F03A1E4: +/* 06ED14 7F03A1E4 1000ECE9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ED18 7F03A1E8 26310002 */ addiu $s1, $s1, 2 +GetCmdLength: +/* 06ED1C 7F03A1EC 0FC0D27F */ jal get_length_of_action_block +/* 06ED20 7F03A1F0 02402825 */ move $a1, $s2 # +/* 06ED24 7F03A1F4 02429021 */ addu $s2, $s2, $v0 # CurrentActionByte += get_length_of_action_block(CurrentActionByte) +/* 06ED28 7F03A1F8 1000ECE4 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 = CurrentActionByte + s6 +/* 06ED2C 7F03A1FC 02D28821 */ addu $s1, $s6, $s2 # goto 58c + +Action04_End_1: +/* 06ED30 7F03A200 8FBF0074 */ lw $ra, 0x74($sp) +Action04_End_2: +/* 06ED34 7F03A204 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 06ED38 7F03A208 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 06ED3C 7F03A20C D7B80040 */ ldc1 $f24, 0x40($sp) +/* 06ED40 7F03A210 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 06ED44 7F03A214 8FB00050 */ lw $s0, 0x50($sp) +/* 06ED48 7F03A218 8FB10054 */ lw $s1, 0x54($sp) +/* 06ED4C 7F03A21C 8FB20058 */ lw $s2, 0x58($sp) #load s2 with value before entering actionblock +/* 06ED50 7F03A220 8FB3005C */ lw $s3, 0x5c($sp) +/* 06ED54 7F03A224 8FB40060 */ lw $s4, 0x60($sp) +/* 06ED58 7F03A228 8FB50064 */ lw $s5, 0x64($sp) +/* 06ED5C 7F03A22C 8FB60068 */ lw $s6, 0x68($sp) +/* 06ED60 7F03A230 8FB7006C */ lw $s7, 0x6c($sp) +/* 06ED64 7F03A234 8FBE0070 */ lw $fp, 0x70($sp) +/* 06ED68 7F03A238 03E00008 */ jr $ra +/* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A240(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A240 +/* 06ED70 7F03A240 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 06ED74 7F03A244 AFBF0014 */ sw $ra, 0x14($sp) +/* 06ED78 7F03A248 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 06ED7C 7F03A24C AFA0001C */ sw $zero, 0x1c($sp) +/* 06ED80 7F03A250 8FA6001C */ lw $a2, 0x1c($sp) +/* 06ED84 7F03A254 1040000F */ beqz $v0, .L7F03A294 +/* 06ED88 7F03A258 00402825 */ move $a1, $v0 +/* 06ED8C 7F03A25C 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 06ED90 7F03A260 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 06ED94 7F03A264 24020006 */ li $v0, 6 +/* 06ED98 7F03A268 90AE0001 */ lbu $t6, 1($a1) +.L7F03A26C: +/* 06ED9C 7F03A26C 0006C080 */ sll $t8, $a2, 2 +/* 06EDA0 7F03A270 0138C821 */ addu $t9, $t1, $t8 +/* 06EDA4 7F03A274 31CF0006 */ andi $t7, $t6, 6 +/* 06EDA8 7F03A278 544F0004 */ bnel $v0, $t7, .L7F03A28C +/* 06EDAC 7F03A27C 8CA50024 */ lw $a1, 0x24($a1) +/* 06EDB0 7F03A280 AF250000 */ sw $a1, ($t9) +/* 06EDB4 7F03A284 24C60001 */ addiu $a2, $a2, 1 +/* 06EDB8 7F03A288 8CA50024 */ lw $a1, 0x24($a1) +.L7F03A28C: +/* 06EDBC 7F03A28C 54A0FFF7 */ bnezl $a1, .L7F03A26C +/* 06EDC0 7F03A290 90AE0001 */ lbu $t6, 1($a1) +.L7F03A294: +/* 06EDC4 7F03A294 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 06EDC8 7F03A298 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF4) +/* 06EDCC 7F03A29C 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 06EDD0 7F03A2A0 AC261DF4 */ sw $a2, %lo(dword_CODE_bss_80071DF4)($at) +/* 06EDD4 7F03A2A4 00065080 */ sll $t2, $a2, 2 +/* 06EDD8 7F03A2A8 012A5821 */ addu $t3, $t1, $t2 +/* 06EDDC 7F03A2AC 00066080 */ sll $t4, $a2, 2 +/* 06EDE0 7F03A2B0 AD600000 */ sw $zero, ($t3) +/* 06EDE4 7F03A2B4 012C6821 */ addu $t5, $t1, $t4 +/* 06EDE8 7F03A2B8 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF0) +/* 06EDEC 7F03A2BC AC2D1DF0 */ sw $t5, %lo(dword_CODE_bss_80071DF0)($at) +/* 06EDF0 7F03A2C0 18C0004C */ blez $a2, .L7F03A3F4 +/* 06EDF4 7F03A2C4 00004025 */ move $t0, $zero +/* 06EDF8 7F03A2C8 3C01CF80 */ li $at, 0xCF800000 # -4294967296.000000 +/* 06EDFC 7F03A2CC 44817000 */ mtc1 $at, $f14 +/* 06EE00 7F03A2D0 00000000 */ nop +/* 06EE04 7F03A2D4 0106082A */ slt $at, $t0, $a2 +.L7F03A2D8: +/* 06EE08 7F03A2D8 2404FFFF */ li $a0, -1 +/* 06EE0C 7F03A2DC 46007306 */ mov.s $f12, $f14 +/* 06EE10 7F03A2E0 10200038 */ beqz $at, .L7F03A3C4 +/* 06EE14 7F03A2E4 01001025 */ move $v0, $t0 +/* 06EE18 7F03A2E8 00C81823 */ subu $v1, $a2, $t0 +/* 06EE1C 7F03A2EC 30670003 */ andi $a3, $v1, 3 +/* 06EE20 7F03A2F0 10E0000F */ beqz $a3, .L7F03A330 +/* 06EE24 7F03A2F4 00E82821 */ addu $a1, $a3, $t0 +/* 06EE28 7F03A2F8 00027080 */ sll $t6, $v0, 2 +/* 06EE2C 7F03A2FC 012E1821 */ addu $v1, $t1, $t6 +.L7F03A300: +/* 06EE30 7F03A300 8C6F0000 */ lw $t7, ($v1) +/* 06EE34 7F03A304 C5E20018 */ lwc1 $f2, 0x18($t7) +/* 06EE38 7F03A308 4602603C */ c.lt.s $f12, $f2 +/* 06EE3C 7F03A30C 00000000 */ nop +/* 06EE40 7F03A310 45020004 */ bc1fl .L7F03A324 +/* 06EE44 7F03A314 24420001 */ addiu $v0, $v0, 1 +/* 06EE48 7F03A318 46001306 */ mov.s $f12, $f2 +/* 06EE4C 7F03A31C 00402025 */ move $a0, $v0 +/* 06EE50 7F03A320 24420001 */ addiu $v0, $v0, 1 +.L7F03A324: +/* 06EE54 7F03A324 14A2FFF6 */ bne $a1, $v0, .L7F03A300 +/* 06EE58 7F03A328 24630004 */ addiu $v1, $v1, 4 +/* 06EE5C 7F03A32C 10460025 */ beq $v0, $a2, .L7F03A3C4 +.L7F03A330: +/* 06EE60 7F03A330 0002C080 */ sll $t8, $v0, 2 +/* 06EE64 7F03A334 01381821 */ addu $v1, $t1, $t8 +.L7F03A338: +/* 06EE68 7F03A338 8C790000 */ lw $t9, ($v1) +/* 06EE6C 7F03A33C C7220018 */ lwc1 $f2, 0x18($t9) +/* 06EE70 7F03A340 4602603C */ c.lt.s $f12, $f2 +/* 06EE74 7F03A344 00000000 */ nop +/* 06EE78 7F03A348 45020004 */ bc1fl .L7F03A35C +/* 06EE7C 7F03A34C 8C6A0004 */ lw $t2, 4($v1) +/* 06EE80 7F03A350 46001306 */ mov.s $f12, $f2 +/* 06EE84 7F03A354 00402025 */ move $a0, $v0 +/* 06EE88 7F03A358 8C6A0004 */ lw $t2, 4($v1) +.L7F03A35C: +/* 06EE8C 7F03A35C C5400018 */ lwc1 $f0, 0x18($t2) +/* 06EE90 7F03A360 4600603C */ c.lt.s $f12, $f0 +/* 06EE94 7F03A364 00000000 */ nop +/* 06EE98 7F03A368 45020004 */ bc1fl .L7F03A37C +/* 06EE9C 7F03A36C 8C6B0008 */ lw $t3, 8($v1) +/* 06EEA0 7F03A370 46000306 */ mov.s $f12, $f0 +/* 06EEA4 7F03A374 24440001 */ addiu $a0, $v0, 1 +/* 06EEA8 7F03A378 8C6B0008 */ lw $t3, 8($v1) +.L7F03A37C: +/* 06EEAC 7F03A37C C5600018 */ lwc1 $f0, 0x18($t3) +/* 06EEB0 7F03A380 4600603C */ c.lt.s $f12, $f0 +/* 06EEB4 7F03A384 00000000 */ nop +/* 06EEB8 7F03A388 45020004 */ bc1fl .L7F03A39C +/* 06EEBC 7F03A38C 8C6C000C */ lw $t4, 0xc($v1) +/* 06EEC0 7F03A390 46000306 */ mov.s $f12, $f0 +/* 06EEC4 7F03A394 24440002 */ addiu $a0, $v0, 2 +/* 06EEC8 7F03A398 8C6C000C */ lw $t4, 0xc($v1) +.L7F03A39C: +/* 06EECC 7F03A39C C5800018 */ lwc1 $f0, 0x18($t4) +/* 06EED0 7F03A3A0 4600603C */ c.lt.s $f12, $f0 +/* 06EED4 7F03A3A4 00000000 */ nop +/* 06EED8 7F03A3A8 45020004 */ bc1fl .L7F03A3BC +/* 06EEDC 7F03A3AC 24420004 */ addiu $v0, $v0, 4 +/* 06EEE0 7F03A3B0 46000306 */ mov.s $f12, $f0 +/* 06EEE4 7F03A3B4 24440003 */ addiu $a0, $v0, 3 +/* 06EEE8 7F03A3B8 24420004 */ addiu $v0, $v0, 4 +.L7F03A3BC: +/* 06EEEC 7F03A3BC 1446FFDE */ bne $v0, $a2, .L7F03A338 +/* 06EEF0 7F03A3C0 24630010 */ addiu $v1, $v1, 0x10 +.L7F03A3C4: +/* 06EEF4 7F03A3C4 04800008 */ bltz $a0, .L7F03A3E8 +/* 06EEF8 7F03A3C8 00086880 */ sll $t5, $t0, 2 +/* 06EEFC 7F03A3CC 00047080 */ sll $t6, $a0, 2 +/* 06EF00 7F03A3D0 012E1821 */ addu $v1, $t1, $t6 +/* 06EF04 7F03A3D4 8C6F0000 */ lw $t7, ($v1) +/* 06EF08 7F03A3D8 012D1021 */ addu $v0, $t1, $t5 +/* 06EF0C 7F03A3DC 8C450000 */ lw $a1, ($v0) +/* 06EF10 7F03A3E0 AC4F0000 */ sw $t7, ($v0) +/* 06EF14 7F03A3E4 AC650000 */ sw $a1, ($v1) +.L7F03A3E8: +/* 06EF18 7F03A3E8 25080001 */ addiu $t0, $t0, 1 +/* 06EF1C 7F03A3EC 5506FFBA */ bnel $t0, $a2, .L7F03A2D8 +/* 06EF20 7F03A3F0 0106082A */ slt $at, $t0, $a2 +.L7F03A3F4: +/* 06EF24 7F03A3F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 06EF28 7F03A3F8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 06EF2C 7F03A3FC 03E00008 */ jr $ra +/* 06EF30 7F03A400 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_stateflag_0x04_for_posdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_stateflag_0x04_for_posdata +/* 06EF34 7F03A404 908E0001 */ lbu $t6, 1($a0) +/* 06EF38 7F03A408 35CF0004 */ ori $t7, $t6, 4 +/* 06EF3C 7F03A40C 03E00008 */ jr $ra +/* 06EF40 7F03A410 A08F0001 */ sb $t7, 1($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void unset_stateflag_0x04_for_posdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unset_stateflag_0x04_for_posdata +/* 06EF44 7F03A414 908E0001 */ lbu $t6, 1($a0) +/* 06EF48 7F03A418 31CFFFFB */ andi $t7, $t6, 0xfffb +/* 06EF4C 7F03A41C 03E00008 */ jr $ra +/* 06EF50 7F03A420 A08F0001 */ sb $t7, 1($a0) +) +#endif + + + + + + +s32 *get_ptr_obj_pos_list_current_entry(void) { + return ptr_obj_pos_list_current_entry; +} + + + + + + +#ifdef NONMATCHING +void remove_last_obj_pos_data_entry(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_last_obj_pos_data_entry +/* 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 + + + + + +#ifdef NONMATCHING +void set_last_obj_pos_data(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_last_obj_pos_data +/* 06EFB4 7F03A484 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_final_entry) +/* 06EFB8 7F03A488 24420AA8 */ addiu $v0, %lo(ptr_obj_pos_list_final_entry) # addiu $v0, $v0, 0xaa8 +/* 06EFBC 7F03A48C 8C4E0000 */ lw $t6, ($v0) +/* 06EFC0 7F03A490 AC800028 */ sw $zero, 0x28($a0) +/* 06EFC4 7F03A494 AC800014 */ sw $zero, 0x14($a0) +/* 06EFC8 7F03A498 AC8E0024 */ sw $t6, 0x24($a0) +/* 06EFCC 7F03A49C 03E00008 */ jr $ra +/* 06EFD0 7F03A4A0 AC440000 */ sw $a0, ($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_current_objposdata_plus_0x28(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_current_objposdata_plus_0x28 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A4F0 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A538(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A538 +/* 06F068 7F03A538 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_current_entry) +/* 06F06C 7F03A53C 24420AA0 */ addiu $v0, %lo(ptr_obj_pos_list_current_entry) # addiu $v0, $v0, 0xaa0 +/* 06F070 7F03A540 8C4E0000 */ lw $t6, ($v0) +/* 06F074 7F03A544 148E0003 */ bne $a0, $t6, .L7F03A554 +/* 06F078 7F03A548 00000000 */ nop +/* 06F07C 7F03A54C 8C8F0024 */ lw $t7, 0x24($a0) +/* 06F080 7F03A550 AC4F0000 */ sw $t7, ($v0) +.L7F03A554: +/* 06F084 7F03A554 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) +/* 06F088 7F03A558 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 +/* 06F08C 7F03A55C 8C580000 */ lw $t8, ($v0) +/* 06F090 7F03A560 54980004 */ bnel $a0, $t8, .L7F03A574 +/* 06F094 7F03A564 8C820024 */ lw $v0, 0x24($a0) +/* 06F098 7F03A568 8C990028 */ lw $t9, 0x28($a0) +/* 06F09C 7F03A56C AC590000 */ sw $t9, ($v0) +/* 06F0A0 7F03A570 8C820024 */ lw $v0, 0x24($a0) +.L7F03A574: +/* 06F0A4 7F03A574 50400004 */ beql $v0, $zero, .L7F03A588 +/* 06F0A8 7F03A578 8C820028 */ lw $v0, 0x28($a0) +/* 06F0AC 7F03A57C 8C880028 */ lw $t0, 0x28($a0) +/* 06F0B0 7F03A580 AC480028 */ sw $t0, 0x28($v0) +/* 06F0B4 7F03A584 8C820028 */ lw $v0, 0x28($a0) +.L7F03A588: +/* 06F0B8 7F03A588 50400004 */ beql $v0, $zero, .L7F03A59C +/* 06F0BC 7F03A58C AC800024 */ sw $zero, 0x24($a0) +/* 06F0C0 7F03A590 8C890024 */ lw $t1, 0x24($a0) +/* 06F0C4 7F03A594 AC490024 */ sw $t1, 0x24($v0) +/* 06F0C8 7F03A598 AC800024 */ sw $zero, 0x24($a0) +.L7F03A59C: +/* 06F0CC 7F03A59C 03E00008 */ jr $ra +/* 06F0D0 7F03A5A0 AC800028 */ sw $zero, 0x28($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A5A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A5A4 +/* 06F0D4 7F03A5A4 AC85001C */ sw $a1, 0x1c($a0) +/* 06F0D8 7F03A5A8 8CA20020 */ lw $v0, 0x20($a1) +/* 06F0DC 7F03A5AC 50400004 */ beql $v0, $zero, .L7F03A5C0 +/* 06F0E0 7F03A5B0 AC820024 */ sw $v0, 0x24($a0) +/* 06F0E4 7F03A5B4 AC440028 */ sw $a0, 0x28($v0) +/* 06F0E8 7F03A5B8 8CA20020 */ lw $v0, 0x20($a1) +/* 06F0EC 7F03A5BC AC820024 */ sw $v0, 0x24($a0) +.L7F03A5C0: +/* 06F0F0 7F03A5C0 AC800028 */ sw $zero, 0x28($a0) +/* 06F0F4 7F03A5C4 AC800014 */ sw $zero, 0x14($a0) +/* 06F0F8 7F03A5C8 03E00008 */ jr $ra +/* 06F0FC 7F03A5CC ACA40020 */ sw $a0, 0x20($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A5D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A5D0 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A62C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A62C +/* 06F15C 7F03A62C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06F160 7F03A630 AFBF001C */ sw $ra, 0x1c($sp) +/* 06F164 7F03A634 AFB00018 */ sw $s0, 0x18($sp) +/* 06F168 7F03A638 90A20000 */ lbu $v0, ($a1) +/* 06F16C 7F03A63C 24010003 */ li $at, 3 +/* 06F170 7F03A640 00808025 */ move $s0, $a0 +/* 06F174 7F03A644 14410006 */ bne $v0, $at, .L7F03A660 +/* 06F178 7F03A648 00A03825 */ move $a3, $a1 +/* 06F17C 7F03A64C 00A02025 */ move $a0, $a1 +/* 06F180 7F03A650 0FC086FF */ jal sub_GAME_7F021BFC +/* 06F184 7F03A654 02002825 */ move $a1, $s0 +/* 06F188 7F03A658 10000021 */ b .L7F03A6E0 +/* 06F18C 7F03A65C 00408025 */ move $s0, $v0 +.L7F03A660: +/* 06F190 7F03A660 24010001 */ li $at, 1 +/* 06F194 7F03A664 10410006 */ beq $v0, $at, .L7F03A680 +/* 06F198 7F03A668 00E02025 */ move $a0, $a3 +/* 06F19C 7F03A66C 24010004 */ li $at, 4 +/* 06F1A0 7F03A670 10410003 */ beq $v0, $at, .L7F03A680 +/* 06F1A4 7F03A674 24010002 */ li $at, 2 +/* 06F1A8 7F03A678 54410006 */ bnel $v0, $at, .L7F03A694 +/* 06F1AC 7F03A67C 24010007 */ li $at, 7 +.L7F03A680: +/* 06F1B0 7F03A680 0FC12C54 */ jal sub_GAME_7F04B150 +/* 06F1B4 7F03A684 02002825 */ move $a1, $s0 +/* 06F1B8 7F03A688 10000015 */ b .L7F03A6E0 +/* 06F1BC 7F03A68C 00408025 */ move $s0, $v0 +/* 06F1C0 7F03A690 24010007 */ li $at, 7 +.L7F03A694: +/* 06F1C4 7F03A694 14410005 */ bne $v0, $at, .L7F03A6AC +/* 06F1C8 7F03A698 00E02025 */ move $a0, $a3 +/* 06F1CC 7F03A69C 0FC27568 */ jal sub_GAME_7F09D5A0 +/* 06F1D0 7F03A6A0 02002825 */ move $a1, $s0 +/* 06F1D4 7F03A6A4 1000000E */ b .L7F03A6E0 +/* 06F1D8 7F03A6A8 00408025 */ move $s0, $v0 +.L7F03A6AC: +/* 06F1DC 7F03A6AC 24010008 */ li $at, 8 +/* 06F1E0 7F03A6B0 14410005 */ bne $v0, $at, .L7F03A6C8 +/* 06F1E4 7F03A6B4 00E02025 */ move $a0, $a3 +/* 06F1E8 7F03A6B8 0FC27C0F */ jal sub_GAME_7F09F03C +/* 06F1EC 7F03A6BC 02002825 */ move $a1, $s0 +/* 06F1F0 7F03A6C0 10000007 */ b .L7F03A6E0 +/* 06F1F4 7F03A6C4 00408025 */ move $s0, $v0 +.L7F03A6C8: +/* 06F1F8 7F03A6C8 24010006 */ li $at, 6 +/* 06F1FC 7F03A6CC 14410004 */ bne $v0, $at, .L7F03A6E0 +/* 06F200 7F03A6D0 00E02025 */ move $a0, $a3 +/* 06F204 7F03A6D4 0FC22F30 */ jal sub_GAME_7F08BCC0 +/* 06F208 7F03A6D8 02002825 */ move $a1, $s0 +/* 06F20C 7F03A6DC 00408025 */ move $s0, $v0 +.L7F03A6E0: +/* 06F210 7F03A6E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 06F214 7F03A6E4 02001025 */ move $v0, $s0 +/* 06F218 7F03A6E8 8FB00018 */ lw $s0, 0x18($sp) +/* 06F21C 7F03A6EC 03E00008 */ jr $ra +/* 06F220 7F03A6F0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A6F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A6F4 +/* 06F224 7F03A6F4 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 06F228 7F03A6F8 AFBF0034 */ sw $ra, 0x34($sp) +/* 06F22C 7F03A6FC AFB70030 */ sw $s7, 0x30($sp) +/* 06F230 7F03A700 AFB50028 */ sw $s5, 0x28($sp) +/* 06F234 7F03A704 AFB40024 */ sw $s4, 0x24($sp) +/* 06F238 7F03A708 0080A025 */ move $s4, $a0 +/* 06F23C 7F03A70C 00C0A825 */ move $s5, $a2 +/* 06F240 7F03A710 00A0B825 */ move $s7, $a1 +/* 06F244 7F03A714 AFB6002C */ sw $s6, 0x2c($sp) +/* 06F248 7F03A718 AFB30020 */ sw $s3, 0x20($sp) +/* 06F24C 7F03A71C AFB2001C */ sw $s2, 0x1c($sp) +/* 06F250 7F03A720 AFB10018 */ sw $s1, 0x18($sp) +/* 06F254 7F03A724 0C001A57 */ jal get_stage_num +/* 06F258 7F03A728 AFB00014 */ sw $s0, 0x14($sp) +/* 06F25C 7F03A72C 24010036 */ li $at, 54 +/* 06F260 7F03A730 14410008 */ bne $v0, $at, .L7F03A754 +/* 06F264 7F03A734 00000000 */ nop +/* 06F268 7F03A738 16A00003 */ bnez $s5, .L7F03A748 +/* 06F26C 7F03A73C 24010002 */ li $at, 2 +/* 06F270 7F03A740 10000083 */ b .L7F03A950 +/* 06F274 7F03A744 02801025 */ move $v0, $s4 +.L7F03A748: +/* 06F278 7F03A748 16A10002 */ bne $s5, $at, .L7F03A754 +/* 06F27C 7F03A74C 00000000 */ nop +/* 06F280 7F03A750 0000A825 */ move $s5, $zero +.L7F03A754: +/* 06F284 7F03A754 12A00003 */ beqz $s5, .L7F03A764 +/* 06F288 7F03A758 24010002 */ li $at, 2 +/* 06F28C 7F03A75C 16A10043 */ bne $s5, $at, .L7F03A86C +/* 06F290 7F03A760 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071620) +.L7F03A764: +/* 06F294 7F03A764 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071DF0) +/* 06F298 7F03A768 8E731DF0 */ lw $s3, %lo(dword_CODE_bss_80071DF0)($s3) +/* 06F29C 7F03A76C 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620) +/* 06F2A0 7F03A770 25CE1620 */ addiu $t6, %lo(dword_CODE_bss_80071620) # addiu $t6, $t6, 0x1620 +/* 06F2A4 7F03A774 2673FFFC */ addiu $s3, $s3, -4 +/* 06F2A8 7F03A778 026E082B */ sltu $at, $s3, $t6 +/* 06F2AC 7F03A77C 14200072 */ bnez $at, .L7F03A948 +/* 06F2B0 7F03A780 27B60048 */ addiu $s6, $sp, 0x48 +/* 06F2B4 7F03A784 8E720000 */ lw $s2, ($s3) +.L7F03A788: +/* 06F2B8 7F03A788 12400030 */ beqz $s2, .L7F03A84C +/* 06F2BC 7F03A78C 00000000 */ nop +/* 06F2C0 7F03A790 16A00007 */ bnez $s5, .L7F03A7B0 +/* 06F2C4 7F03A794 00008825 */ move $s1, $zero +/* 06F2C8 7F03A798 924F0001 */ lbu $t7, 1($s2) +/* 06F2CC 7F03A79C 31F80021 */ andi $t8, $t7, 0x21 +/* 06F2D0 7F03A7A0 57000004 */ bnezl $t8, .L7F03A7B4 +/* 06F2D4 7F03A7A4 24010002 */ li $at, 2 +/* 06F2D8 7F03A7A8 1000000A */ b .L7F03A7D4 +/* 06F2DC 7F03A7AC 24110001 */ li $s1, 1 +.L7F03A7B0: +/* 06F2E0 7F03A7B0 24010002 */ li $at, 2 +.L7F03A7B4: +/* 06F2E4 7F03A7B4 16A10007 */ bne $s5, $at, .L7F03A7D4 +/* 06F2E8 7F03A7B8 00000000 */ nop +/* 06F2EC 7F03A7BC 92590001 */ lbu $t9, 1($s2) +/* 06F2F0 7F03A7C0 24010001 */ li $at, 1 +/* 06F2F4 7F03A7C4 33280021 */ andi $t0, $t9, 0x21 +/* 06F2F8 7F03A7C8 15010002 */ bne $t0, $at, .L7F03A7D4 +/* 06F2FC 7F03A7CC 00000000 */ nop +/* 06F300 7F03A7D0 24110001 */ li $s1, 1 +.L7F03A7D4: +/* 06F304 7F03A7D4 1220001D */ beqz $s1, .L7F03A84C +/* 06F308 7F03A7D8 02402025 */ move $a0, $s2 +/* 06F30C 7F03A7DC 00008825 */ move $s1, $zero +/* 06F310 7F03A7E0 02C02825 */ move $a1, $s6 +/* 06F314 7F03A7E4 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 06F318 7F03A7E8 02C08025 */ move $s0, $s6 +/* 06F31C 7F03A7EC 8FA90048 */ lw $t1, 0x48($sp) +/* 06F320 7F03A7F0 27AA0048 */ addiu $t2, $sp, 0x48 +/* 06F324 7F03A7F4 0520000F */ bltz $t1, .L7F03A834 +/* 06F328 7F03A7F8 00000000 */ nop +/* 06F32C 7F03A7FC 8D440000 */ lw $a0, ($t2) +.L7F03A800: +/* 06F330 7F03A800 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06F334 7F03A804 00000000 */ nop +/* 06F338 7F03A808 50400007 */ beql $v0, $zero, .L7F03A828 +/* 06F33C 7F03A80C 8E040004 */ lw $a0, 4($s0) +/* 06F340 7F03A810 8E0B0000 */ lw $t3, ($s0) +/* 06F344 7F03A814 16EB0007 */ bne $s7, $t3, .L7F03A834 +/* 06F348 7F03A818 00000000 */ nop +/* 06F34C 7F03A81C 10000005 */ b .L7F03A834 +/* 06F350 7F03A820 24110001 */ li $s1, 1 +/* 06F354 7F03A824 8E040004 */ lw $a0, 4($s0) +.L7F03A828: +/* 06F358 7F03A828 26100004 */ addiu $s0, $s0, 4 +/* 06F35C 7F03A82C 0481FFF4 */ bgez $a0, .L7F03A800 +/* 06F360 7F03A830 00000000 */ nop +.L7F03A834: +/* 06F364 7F03A834 12200005 */ beqz $s1, .L7F03A84C +/* 06F368 7F03A838 02802025 */ move $a0, $s4 +/* 06F36C 7F03A83C 02402825 */ move $a1, $s2 +/* 06F370 7F03A840 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F374 7F03A844 00003025 */ move $a2, $zero +/* 06F378 7F03A848 0040A025 */ move $s4, $v0 +.L7F03A84C: +/* 06F37C 7F03A84C 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 06F380 7F03A850 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 06F384 7F03A854 2673FFFC */ addiu $s3, $s3, -4 +/* 06F388 7F03A858 026C082B */ sltu $at, $s3, $t4 +/* 06F38C 7F03A85C 5020FFCA */ beql $at, $zero, .L7F03A788 +/* 06F390 7F03A860 8E720000 */ lw $s2, ($s3) +/* 06F394 7F03A864 10000038 */ b .L7F03A948 +/* 06F398 7F03A868 00000000 */ nop +.L7F03A86C: +/* 06F39C 7F03A86C 3C158007 */ lui $s5, %hi(dword_CODE_bss_80071DF0) +/* 06F3A0 7F03A870 26B51DF0 */ addiu $s5, %lo(dword_CODE_bss_80071DF0) # addiu $s5, $s5, 0x1df0 +/* 06F3A4 7F03A874 8EAD0000 */ lw $t5, ($s5) +/* 06F3A8 7F03A878 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620+1) +/* 06F3AC 7F03A87C 25CE1621 */ addiu $t6, %lo(dword_CODE_bss_80071620+1) # addiu $t6, $t6, 0x1621 +/* 06F3B0 7F03A880 01AE082B */ sltu $at, $t5, $t6 +/* 06F3B4 7F03A884 14200030 */ bnez $at, .L7F03A948 +/* 06F3B8 7F03A888 26731620 */ addiu $s3, $s3, %lo(dword_CODE_bss_80071620) +/* 06F3BC 7F03A88C 27B60048 */ addiu $s6, $sp, 0x48 +/* 06F3C0 7F03A890 8E720000 */ lw $s2, ($s3) +.L7F03A894: +/* 06F3C4 7F03A894 00008825 */ move $s1, $zero +/* 06F3C8 7F03A898 02C02825 */ move $a1, $s6 +/* 06F3CC 7F03A89C 12400025 */ beqz $s2, .L7F03A934 +/* 06F3D0 7F03A8A0 02402025 */ move $a0, $s2 +/* 06F3D4 7F03A8A4 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 06F3D8 7F03A8A8 02C08025 */ move $s0, $s6 +/* 06F3DC 7F03A8AC 8FAF0048 */ lw $t7, 0x48($sp) +/* 06F3E0 7F03A8B0 27B80048 */ addiu $t8, $sp, 0x48 +/* 06F3E4 7F03A8B4 05E0000F */ bltz $t7, .L7F03A8F4 +/* 06F3E8 7F03A8B8 00000000 */ nop +/* 06F3EC 7F03A8BC 8F040000 */ lw $a0, ($t8) +.L7F03A8C0: +/* 06F3F0 7F03A8C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06F3F4 7F03A8C4 00000000 */ nop +/* 06F3F8 7F03A8C8 50400007 */ beql $v0, $zero, .L7F03A8E8 +/* 06F3FC 7F03A8CC 8E040004 */ lw $a0, 4($s0) +/* 06F400 7F03A8D0 8E190000 */ lw $t9, ($s0) +/* 06F404 7F03A8D4 16F90007 */ bne $s7, $t9, .L7F03A8F4 +/* 06F408 7F03A8D8 00000000 */ nop +/* 06F40C 7F03A8DC 10000005 */ b .L7F03A8F4 +/* 06F410 7F03A8E0 24110001 */ li $s1, 1 +/* 06F414 7F03A8E4 8E040004 */ lw $a0, 4($s0) +.L7F03A8E8: +/* 06F418 7F03A8E8 26100004 */ addiu $s0, $s0, 4 +/* 06F41C 7F03A8EC 0481FFF4 */ bgez $a0, .L7F03A8C0 +/* 06F420 7F03A8F0 00000000 */ nop +.L7F03A8F4: +/* 06F424 7F03A8F4 52200010 */ beql $s1, $zero, .L7F03A938 +/* 06F428 7F03A8F8 8EAA0000 */ lw $t2, ($s5) +/* 06F42C 7F03A8FC 92480001 */ lbu $t0, 1($s2) +/* 06F430 7F03A900 02802025 */ move $a0, $s4 +/* 06F434 7F03A904 02402825 */ move $a1, $s2 +/* 06F438 7F03A908 31090020 */ andi $t1, $t0, 0x20 +/* 06F43C 7F03A90C 51200005 */ beql $t1, $zero, .L7F03A924 +/* 06F440 7F03A910 02802025 */ move $a0, $s4 +/* 06F444 7F03A914 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F448 7F03A918 00003025 */ move $a2, $zero +/* 06F44C 7F03A91C 0040A025 */ move $s4, $v0 +/* 06F450 7F03A920 02802025 */ move $a0, $s4 +.L7F03A924: +/* 06F454 7F03A924 02402825 */ move $a1, $s2 +/* 06F458 7F03A928 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F45C 7F03A92C 24060001 */ li $a2, 1 +/* 06F460 7F03A930 0040A025 */ move $s4, $v0 +.L7F03A934: +/* 06F464 7F03A934 8EAA0000 */ lw $t2, ($s5) +.L7F03A938: +/* 06F468 7F03A938 26730004 */ addiu $s3, $s3, 4 +/* 06F46C 7F03A93C 026A082B */ sltu $at, $s3, $t2 +/* 06F470 7F03A940 5420FFD4 */ bnezl $at, .L7F03A894 +/* 06F474 7F03A944 8E720000 */ lw $s2, ($s3) +.L7F03A948: +/* 06F478 7F03A948 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 06F47C 7F03A94C 02802025 */ move $a0, $s4 +.L7F03A950: +/* 06F480 7F03A950 8FBF0034 */ lw $ra, 0x34($sp) +/* 06F484 7F03A954 8FB00014 */ lw $s0, 0x14($sp) +/* 06F488 7F03A958 8FB10018 */ lw $s1, 0x18($sp) +/* 06F48C 7F03A95C 8FB2001C */ lw $s2, 0x1c($sp) +/* 06F490 7F03A960 8FB30020 */ lw $s3, 0x20($sp) +/* 06F494 7F03A964 8FB40024 */ lw $s4, 0x24($sp) +/* 06F498 7F03A968 8FB50028 */ lw $s5, 0x28($sp) +/* 06F49C 7F03A96C 8FB6002C */ lw $s6, 0x2c($sp) +/* 06F4A0 7F03A970 8FB70030 */ lw $s7, 0x30($sp) +/* 06F4A4 7F03A974 03E00008 */ jr $ra +/* 06F4A8 7F03A978 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A97C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A97C +/* 06F4AC 7F03A97C 00047080 */ sll $t6, $a0, 2 +/* 06F4B0 7F03A980 01C47021 */ addu $t6, $t6, $a0 +/* 06F4B4 7F03A984 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 06F4B8 7F03A988 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 06F4BC 7F03A98C 000E7100 */ sll $t6, $t6, 4 +/* 06F4C0 7F03A990 01CF1021 */ addu $v0, $t6, $t7 +/* 06F4C4 7F03A994 8C58002C */ lw $t8, 0x2c($v0) +/* 06F4C8 7F03A998 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 06F4CC 7F03A99C AFBF0014 */ sw $ra, 0x14($sp) +/* 06F4D0 7F03A9A0 AFA5003C */ sw $a1, 0x3c($sp) +/* 06F4D4 7F03A9A4 13000022 */ beqz $t8, .L7F03AA30 +/* 06F4D8 7F03A9A8 AFA60040 */ sw $a2, 0x40($sp) +/* 06F4DC 7F03A9AC C4440038 */ lwc1 $f4, 0x38($v0) +/* 06F4E0 7F03A9B0 C448003C */ lwc1 $f8, 0x3c($v0) +/* 06F4E4 7F03A9B4 C4500040 */ lwc1 $f16, 0x40($v0) +/* 06F4E8 7F03A9B8 4600218D */ trunc.w.s $f6, $f4 +/* 06F4EC 7F03A9BC C4440044 */ lwc1 $f4, 0x44($v0) +/* 06F4F0 7F03A9C0 00A02025 */ move $a0, $a1 +/* 06F4F4 7F03A9C4 4600428D */ trunc.w.s $f10, $f8 +/* 06F4F8 7F03A9C8 C4480048 */ lwc1 $f8, 0x48($v0) +/* 06F4FC 7F03A9CC 44083000 */ mfc1 $t0, $f6 +/* 06F500 7F03A9D0 4600848D */ trunc.w.s $f18, $f16 +/* 06F504 7F03A9D4 C450004C */ lwc1 $f16, 0x4c($v0) +/* 06F508 7F03A9D8 440A5000 */ mfc1 $t2, $f10 +/* 06F50C 7F03A9DC 4600218D */ trunc.w.s $f6, $f4 +/* 06F510 7F03A9E0 440C9000 */ mfc1 $t4, $f18 +/* 06F514 7F03A9E4 AFA80020 */ sw $t0, 0x20($sp) +/* 06F518 7F03A9E8 4600428D */ trunc.w.s $f10, $f8 +/* 06F51C 7F03A9EC 440E3000 */ mfc1 $t6, $f6 +/* 06F520 7F03A9F0 00C02825 */ move $a1, $a2 +/* 06F524 7F03A9F4 4600848D */ trunc.w.s $f18, $f16 +/* 06F528 7F03A9F8 44185000 */ mfc1 $t8, $f10 +/* 06F52C 7F03A9FC 27A60020 */ addiu $a2, $sp, 0x20 +/* 06F530 7F03AA00 27A7002C */ addiu $a3, $sp, 0x2c +/* 06F534 7F03AA04 44089000 */ mfc1 $t0, $f18 +/* 06F538 7F03AA08 AFAA0024 */ sw $t2, 0x24($sp) +/* 06F53C 7F03AA0C AFAC0028 */ sw $t4, 0x28($sp) +/* 06F540 7F03AA10 AFAE002C */ sw $t6, 0x2c($sp) +/* 06F544 7F03AA14 AFB80030 */ sw $t8, 0x30($sp) +/* 06F548 7F03AA18 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 06F54C 7F03AA1C AFA80034 */ sw $t0, 0x34($sp) +/* 06F550 7F03AA20 50400004 */ beql $v0, $zero, .L7F03AA34 +/* 06F554 7F03AA24 00001025 */ move $v0, $zero +/* 06F558 7F03AA28 10000002 */ b .L7F03AA34 +/* 06F55C 7F03AA2C 24020001 */ li $v0, 1 +.L7F03AA30: +/* 06F560 7F03AA30 00001025 */ move $v0, $zero +.L7F03AA34: +/* 06F564 7F03AA34 8FBF0014 */ lw $ra, 0x14($sp) +/* 06F568 7F03AA38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 06F56C 7F03AA3C 03E00008 */ jr $ra +/* 06F570 7F03AA40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AA44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AA44 +/* 06F574 7F03AA44 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 06F578 7F03AA48 AFBF002C */ sw $ra, 0x2c($sp) +/* 06F57C 7F03AA4C AFB30024 */ sw $s3, 0x24($sp) +/* 06F580 7F03AA50 AFB20020 */ sw $s2, 0x20($sp) +/* 06F584 7F03AA54 AFB1001C */ sw $s1, 0x1c($sp) +/* 06F588 7F03AA58 00A08825 */ move $s1, $a1 +/* 06F58C 7F03AA5C 00C09025 */ move $s2, $a2 +/* 06F590 7F03AA60 00E09825 */ move $s3, $a3 +/* 06F594 7F03AA64 AFB40028 */ sw $s4, 0x28($sp) +/* 06F598 7F03AA68 AFB00018 */ sw $s0, 0x18($sp) +/* 06F59C 7F03AA6C 0FC2D20F */ jal get_room_data_float1 +/* 06F5A0 7F03AA70 AFA40058 */ sw $a0, 0x58($sp) +/* 06F5A4 7F03AA74 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 06F5A8 7F03AA78 E7A00034 */ swc1 $f0, 0x34($sp) +/* 06F5AC 7F03AA7C C6440000 */ lwc1 $f4, ($s2) +/* 06F5B0 7F03AA80 C6260000 */ lwc1 $f6, ($s1) +/* 06F5B4 7F03AA84 24100001 */ li $s0, 1 +/* 06F5B8 7F03AA88 46062201 */ sub.s $f8, $f4, $f6 +/* 06F5BC 7F03AA8C E7A80040 */ swc1 $f8, 0x40($sp) +/* 06F5C0 7F03AA90 C6300004 */ lwc1 $f16, 4($s1) +/* 06F5C4 7F03AA94 C64A0004 */ lwc1 $f10, 4($s2) +/* 06F5C8 7F03AA98 46105481 */ sub.s $f18, $f10, $f16 +/* 06F5CC 7F03AA9C C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 06F5D0 7F03AAA0 E7B20044 */ swc1 $f18, 0x44($sp) +/* 06F5D4 7F03AAA4 C6260008 */ lwc1 $f6, 8($s1) +/* 06F5D8 7F03AAA8 C6440008 */ lwc1 $f4, 8($s2) +/* 06F5DC 7F03AAAC 460A0082 */ mul.s $f2, $f0, $f10 +/* 06F5E0 7F03AAB0 46062201 */ sub.s $f8, $f4, $f6 +/* 06F5E4 7F03AAB4 E7A80048 */ swc1 $f8, 0x48($sp) +/* 06F5E8 7F03AAB8 C6300000 */ lwc1 $f16, ($s1) +/* 06F5EC 7F03AABC 46028482 */ mul.s $f18, $f16, $f2 +/* 06F5F0 7F03AAC0 E7B2004C */ swc1 $f18, 0x4c($sp) +/* 06F5F4 7F03AAC4 C6240004 */ lwc1 $f4, 4($s1) +/* 06F5F8 7F03AAC8 46022182 */ mul.s $f6, $f4, $f2 +/* 06F5FC 7F03AACC E7A60050 */ swc1 $f6, 0x50($sp) +/* 06F600 7F03AAD0 C6280008 */ lwc1 $f8, 8($s1) +/* 06F604 7F03AAD4 46024282 */ mul.s $f10, $f8, $f2 +/* 06F608 7F03AAD8 0FC2D791 */ jal getMaxNumRooms +/* 06F60C 7F03AADC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 06F610 7F03AAE0 28410002 */ slti $at, $v0, 2 +/* 06F614 7F03AAE4 14200014 */ bnez $at, .L7F03AB38 +/* 06F618 7F03AAE8 02708821 */ addu $s1, $s3, $s0 +/* 06F61C 7F03AAEC 24140001 */ li $s4, 1 +/* 06F620 7F03AAF0 27B30040 */ addiu $s3, $sp, 0x40 +/* 06F624 7F03AAF4 27B2004C */ addiu $s2, $sp, 0x4c +/* 06F628 7F03AAF8 922E0000 */ lbu $t6, ($s1) +.L7F03AAFC: +/* 06F62C 7F03AAFC 02002025 */ move $a0, $s0 +/* 06F630 7F03AB00 02402825 */ move $a1, $s2 +/* 06F634 7F03AB04 55C00007 */ bnezl $t6, .L7F03AB24 +/* 06F638 7F03AB08 26100001 */ addiu $s0, $s0, 1 +/* 06F63C 7F03AB0C 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F640 7F03AB10 02603025 */ move $a2, $s3 +/* 06F644 7F03AB14 54400003 */ bnezl $v0, .L7F03AB24 +/* 06F648 7F03AB18 26100001 */ addiu $s0, $s0, 1 +/* 06F64C 7F03AB1C A2340000 */ sb $s4, ($s1) +/* 06F650 7F03AB20 26100001 */ addiu $s0, $s0, 1 +.L7F03AB24: +/* 06F654 7F03AB24 0FC2D791 */ jal getMaxNumRooms +/* 06F658 7F03AB28 26310001 */ addiu $s1, $s1, 1 +/* 06F65C 7F03AB2C 0202082A */ slt $at, $s0, $v0 +/* 06F660 7F03AB30 5420FFF2 */ bnezl $at, .L7F03AAFC +/* 06F664 7F03AB34 922E0000 */ lbu $t6, ($s1) +.L7F03AB38: +/* 06F668 7F03AB38 8FBF002C */ lw $ra, 0x2c($sp) +/* 06F66C 7F03AB3C 8FB00018 */ lw $s0, 0x18($sp) +/* 06F670 7F03AB40 8FB1001C */ lw $s1, 0x1c($sp) +/* 06F674 7F03AB44 8FB20020 */ lw $s2, 0x20($sp) +/* 06F678 7F03AB48 8FB30024 */ lw $s3, 0x24($sp) +/* 06F67C 7F03AB4C 8FB40028 */ lw $s4, 0x28($sp) +/* 06F680 7F03AB50 03E00008 */ jr $ra +/* 06F684 7F03AB54 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AB58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AB58 +/* 06F688 7F03AB58 27BDFDE0 */ addiu $sp, $sp, -0x220 +/* 06F68C 7F03AB5C AFBF003C */ sw $ra, 0x3c($sp) +/* 06F690 7F03AB60 AFB20024 */ sw $s2, 0x24($sp) +/* 06F694 7F03AB64 00809025 */ move $s2, $a0 +/* 06F698 7F03AB68 AFB70038 */ sw $s7, 0x38($sp) +/* 06F69C 7F03AB6C AFB60034 */ sw $s6, 0x34($sp) +/* 06F6A0 7F03AB70 AFB50030 */ sw $s5, 0x30($sp) +/* 06F6A4 7F03AB74 AFB4002C */ sw $s4, 0x2c($sp) +/* 06F6A8 7F03AB78 AFB30028 */ sw $s3, 0x28($sp) +/* 06F6AC 7F03AB7C AFB10020 */ sw $s1, 0x20($sp) +/* 06F6B0 7F03AB80 AFB0001C */ sw $s0, 0x1c($sp) +/* 06F6B4 7F03AB84 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 06F6B8 7F03AB88 AFA50224 */ sw $a1, 0x224($sp) +/* 06F6BC 7F03AB8C AFA60228 */ sw $a2, 0x228($sp) +/* 06F6C0 7F03AB90 0FC2D20C */ jal get_room_data_float2 +/* 06F6C4 7F03AB94 AFA7022C */ sw $a3, 0x22c($sp) +/* 06F6C8 7F03AB98 46000506 */ mov.s $f20, $f0 +/* 06F6CC 7F03AB9C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06F6D0 7F03ABA0 0FC2E3A6 */ jal sub_GAME_7F0B8E98 +/* 06F6D4 7F03ABA4 24050064 */ li $a1, 100 +/* 06F6D8 7F03ABA8 18400085 */ blez $v0, .L7F03ADC0 +/* 06F6DC 7F03ABAC 27B00090 */ addiu $s0, $sp, 0x90 +/* 06F6E0 7F03ABB0 00027880 */ sll $t7, $v0, 2 +/* 06F6E4 7F03ABB4 01F0A021 */ addu $s4, $t7, $s0 +/* 06F6E8 7F03ABB8 24170001 */ li $s7, 1 +/* 06F6EC 7F03ABBC 8FB60230 */ lw $s6, 0x230($sp) +/* 06F6F0 7F03ABC0 27B30054 */ addiu $s3, $sp, 0x54 +/* 06F6F4 7F03ABC4 8FB10234 */ lw $s1, 0x234($sp) +/* 06F6F8 7F03ABC8 8E180000 */ lw $t8, ($s0) +.L7F03ABCC: +/* 06F6FC 7F03ABCC 03161021 */ addu $v0, $t8, $s6 +/* 06F700 7F03ABD0 90590000 */ lbu $t9, ($v0) +/* 06F704 7F03ABD4 57200077 */ bnezl $t9, .L7F03ADB4 +/* 06F708 7F03ABD8 26100004 */ addiu $s0, $s0, 4 +/* 06F70C 7F03ABDC A0570000 */ sb $s7, ($v0) +/* 06F710 7F03ABE0 8FA60228 */ lw $a2, 0x228($sp) +/* 06F714 7F03ABE4 8FA5022C */ lw $a1, 0x22c($sp) +/* 06F718 7F03ABE8 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F71C 7F03ABEC 8E040000 */ lw $a0, ($s0) +/* 06F720 7F03ABF0 1040006F */ beqz $v0, .L7F03ADB0 +/* 06F724 7F03ABF4 02402025 */ move $a0, $s2 +/* 06F728 7F03ABF8 8FA50224 */ lw $a1, 0x224($sp) +/* 06F72C 7F03ABFC 8E060000 */ lw $a2, ($s0) +/* 06F730 7F03AC00 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06F734 7F03AC04 02603825 */ move $a3, $s3 +/* 06F738 7F03AC08 10400069 */ beqz $v0, .L7F03ADB0 +/* 06F73C 7F03AC0C C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06F740 7F03AC10 46142182 */ mul.s $f6, $f4, $f20 +/* 06F744 7F03AC14 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 06F748 7F03AC18 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 06F74C 7F03AC1C 8FA80238 */ lw $t0, 0x238($sp) +/* 06F750 7F03AC20 46144282 */ mul.s $f10, $f8, $f20 +/* 06F754 7F03AC24 8E020000 */ lw $v0, ($s0) +/* 06F758 7F03AC28 02606025 */ move $t4, $s3 +/* 06F75C 7F03AC2C 46148482 */ mul.s $f18, $f16, $f20 +/* 06F760 7F03AC30 E7A60054 */ swc1 $f6, 0x54($sp) +/* 06F764 7F03AC34 02206825 */ move $t5, $s1 +/* 06F768 7F03AC38 266B0030 */ addiu $t3, $s3, 0x30 +/* 06F76C 7F03AC3C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 06F770 7F03AC40 19000051 */ blez $t0, .L7F03AD88 +/* 06F774 7F03AC44 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 06F778 7F03AC48 C6200000 */ lwc1 $f0, ($s1) +/* 06F77C 7F03AC4C C6420000 */ lwc1 $f2, ($s2) +/* 06F780 7F03AC50 4600103E */ c.le.s $f2, $f0 +/* 06F784 7F03AC54 00000000 */ nop +/* 06F788 7F03AC58 4502000A */ bc1fl .L7F03AC84 +/* 06F78C 7F03AC5C 4602003E */ c.le.s $f0, $f2 +/* 06F790 7F03AC60 4606103E */ c.le.s $f2, $f6 +/* 06F794 7F03AC64 00000000 */ nop +/* 06F798 7F03AC68 45020006 */ bc1fl .L7F03AC84 +/* 06F79C 7F03AC6C 4602003E */ c.le.s $f0, $f2 +/* 06F7A0 7F03AC70 4600303C */ c.lt.s $f6, $f0 +/* 06F7A4 7F03AC74 00000000 */ nop +/* 06F7A8 7F03AC78 4503000E */ bc1tl .L7F03ACB4 +/* 06F7AC 7F03AC7C C6200004 */ lwc1 $f0, 4($s1) +/* 06F7B0 7F03AC80 4602003E */ c.le.s $f0, $f2 +.L7F03AC84: +/* 06F7B4 7F03AC84 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06F7B8 7F03AC88 4502004A */ bc1fl .L7F03ADB4 +/* 06F7BC 7F03AC8C 26100004 */ addiu $s0, $s0, 4 +/* 06F7C0 7F03AC90 4602203E */ c.le.s $f4, $f2 +/* 06F7C4 7F03AC94 00000000 */ nop +/* 06F7C8 7F03AC98 45020046 */ bc1fl .L7F03ADB4 +/* 06F7CC 7F03AC9C 26100004 */ addiu $s0, $s0, 4 +/* 06F7D0 7F03ACA0 4604003C */ c.lt.s $f0, $f4 +/* 06F7D4 7F03ACA4 00000000 */ nop +/* 06F7D8 7F03ACA8 45020042 */ bc1fl .L7F03ADB4 +/* 06F7DC 7F03ACAC 26100004 */ addiu $s0, $s0, 4 +/* 06F7E0 7F03ACB0 C6200004 */ lwc1 $f0, 4($s1) +.L7F03ACB4: +/* 06F7E4 7F03ACB4 C6420004 */ lwc1 $f2, 4($s2) +/* 06F7E8 7F03ACB8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 06F7EC 7F03ACBC 4600103E */ c.le.s $f2, $f0 +/* 06F7F0 7F03ACC0 00000000 */ nop +/* 06F7F4 7F03ACC4 4502000A */ bc1fl .L7F03ACF0 +/* 06F7F8 7F03ACC8 4602003E */ c.le.s $f0, $f2 +/* 06F7FC 7F03ACCC 4608103E */ c.le.s $f2, $f8 +/* 06F800 7F03ACD0 00000000 */ nop +/* 06F804 7F03ACD4 45020006 */ bc1fl .L7F03ACF0 +/* 06F808 7F03ACD8 4602003E */ c.le.s $f0, $f2 +/* 06F80C 7F03ACDC 4600403C */ c.lt.s $f8, $f0 +/* 06F810 7F03ACE0 00000000 */ nop +/* 06F814 7F03ACE4 4503000E */ bc1tl .L7F03AD20 +/* 06F818 7F03ACE8 C6200008 */ lwc1 $f0, 8($s1) +/* 06F81C 7F03ACEC 4602003E */ c.le.s $f0, $f2 +.L7F03ACF0: +/* 06F820 7F03ACF0 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 06F824 7F03ACF4 4502002F */ bc1fl .L7F03ADB4 +/* 06F828 7F03ACF8 26100004 */ addiu $s0, $s0, 4 +/* 06F82C 7F03ACFC 4602503E */ c.le.s $f10, $f2 +/* 06F830 7F03AD00 00000000 */ nop +/* 06F834 7F03AD04 4502002B */ bc1fl .L7F03ADB4 +/* 06F838 7F03AD08 26100004 */ addiu $s0, $s0, 4 +/* 06F83C 7F03AD0C 460A003C */ c.lt.s $f0, $f10 +/* 06F840 7F03AD10 00000000 */ nop +/* 06F844 7F03AD14 45020027 */ bc1fl .L7F03ADB4 +/* 06F848 7F03AD18 26100004 */ addiu $s0, $s0, 4 +/* 06F84C 7F03AD1C C6200008 */ lwc1 $f0, 8($s1) +.L7F03AD20: +/* 06F850 7F03AD20 C6420008 */ lwc1 $f2, 8($s2) +/* 06F854 7F03AD24 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 06F858 7F03AD28 4600103E */ c.le.s $f2, $f0 +/* 06F85C 7F03AD2C 00000000 */ nop +/* 06F860 7F03AD30 4502000A */ bc1fl .L7F03AD5C +/* 06F864 7F03AD34 4602003E */ c.le.s $f0, $f2 +/* 06F868 7F03AD38 4610103E */ c.le.s $f2, $f16 +/* 06F86C 7F03AD3C 00000000 */ nop +/* 06F870 7F03AD40 45020006 */ bc1fl .L7F03AD5C +/* 06F874 7F03AD44 4602003E */ c.le.s $f0, $f2 +/* 06F878 7F03AD48 4600803C */ c.lt.s $f16, $f0 +/* 06F87C 7F03AD4C 00000000 */ nop +/* 06F880 7F03AD50 4503000E */ bc1tl .L7F03AD8C +/* 06F884 7F03AD54 AFA20238 */ sw $v0, 0x238($sp) +/* 06F888 7F03AD58 4602003E */ c.le.s $f0, $f2 +.L7F03AD5C: +/* 06F88C 7F03AD5C C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 06F890 7F03AD60 45020014 */ bc1fl .L7F03ADB4 +/* 06F894 7F03AD64 26100004 */ addiu $s0, $s0, 4 +/* 06F898 7F03AD68 4602903E */ c.le.s $f18, $f2 +/* 06F89C 7F03AD6C 00000000 */ nop +/* 06F8A0 7F03AD70 45020010 */ bc1fl .L7F03ADB4 +/* 06F8A4 7F03AD74 26100004 */ addiu $s0, $s0, 4 +/* 06F8A8 7F03AD78 4612003C */ c.lt.s $f0, $f18 +/* 06F8AC 7F03AD7C 00000000 */ nop +/* 06F8B0 7F03AD80 4502000C */ bc1fl .L7F03ADB4 +/* 06F8B4 7F03AD84 26100004 */ addiu $s0, $s0, 4 +.L7F03AD88: +/* 06F8B8 7F03AD88 AFA20238 */ sw $v0, 0x238($sp) +.L7F03AD8C: +/* 06F8BC 7F03AD8C 8D810000 */ lw $at, ($t4) +/* 06F8C0 7F03AD90 258C000C */ addiu $t4, $t4, 0xc +/* 06F8C4 7F03AD94 25AD000C */ addiu $t5, $t5, 0xc +/* 06F8C8 7F03AD98 ADA1FFF4 */ sw $at, -0xc($t5) +/* 06F8CC 7F03AD9C 8D81FFF8 */ lw $at, -8($t4) +/* 06F8D0 7F03ADA0 ADA1FFF8 */ sw $at, -8($t5) +/* 06F8D4 7F03ADA4 8D81FFFC */ lw $at, -4($t4) +/* 06F8D8 7F03ADA8 158BFFF8 */ bne $t4, $t3, .L7F03AD8C +/* 06F8DC 7F03ADAC ADA1FFFC */ sw $at, -4($t5) +.L7F03ADB0: +/* 06F8E0 7F03ADB0 26100004 */ addiu $s0, $s0, 4 +.L7F03ADB4: +/* 06F8E4 7F03ADB4 0214082B */ sltu $at, $s0, $s4 +/* 06F8E8 7F03ADB8 5420FF84 */ bnezl $at, .L7F03ABCC +/* 06F8EC 7F03ADBC 8E180000 */ lw $t8, ($s0) +.L7F03ADC0: +/* 06F8F0 7F03ADC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 06F8F4 7F03ADC4 8FA20238 */ lw $v0, 0x238($sp) +/* 06F8F8 7F03ADC8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 06F8FC 7F03ADCC 8FB0001C */ lw $s0, 0x1c($sp) +/* 06F900 7F03ADD0 8FB10020 */ lw $s1, 0x20($sp) +/* 06F904 7F03ADD4 8FB20024 */ lw $s2, 0x24($sp) +/* 06F908 7F03ADD8 8FB30028 */ lw $s3, 0x28($sp) +/* 06F90C 7F03ADDC 8FB4002C */ lw $s4, 0x2c($sp) +/* 06F910 7F03ADE0 8FB50030 */ lw $s5, 0x30($sp) +/* 06F914 7F03ADE4 8FB60034 */ lw $s6, 0x34($sp) +/* 06F918 7F03ADE8 8FB70038 */ lw $s7, 0x38($sp) +/* 06F91C 7F03ADEC 03E00008 */ jr $ra +/* 06F920 7F03ADF0 27BD0220 */ addiu $sp, $sp, 0x220 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03ADF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03ADF4 +/* 06F924 7F03ADF4 27BDFD08 */ addiu $sp, $sp, -0x2f8 +/* 06F928 7F03ADF8 AFBE0038 */ sw $fp, 0x38($sp) +/* 06F92C 7F03ADFC AFB70034 */ sw $s7, 0x34($sp) +/* 06F930 7F03AE00 AFB60030 */ sw $s6, 0x30($sp) +/* 06F934 7F03AE04 AFB5002C */ sw $s5, 0x2c($sp) +/* 06F938 7F03AE08 AFB40028 */ sw $s4, 0x28($sp) +/* 06F93C 7F03AE0C AFB20020 */ sw $s2, 0x20($sp) +/* 06F940 7F03AE10 AFB00018 */ sw $s0, 0x18($sp) +/* 06F944 7F03AE14 AFBF003C */ sw $ra, 0x3c($sp) +/* 06F948 7F03AE18 AFB30024 */ sw $s3, 0x24($sp) +/* 06F94C 7F03AE1C AFB1001C */ sw $s1, 0x1c($sp) +/* 06F950 7F03AE20 AFA502FC */ sw $a1, 0x2fc($sp) +/* 06F954 7F03AE24 AFA60300 */ sw $a2, 0x300($sp) +/* 06F958 7F03AE28 AFA70304 */ sw $a3, 0x304($sp) +/* 06F95C 7F03AE2C A3A401F8 */ sb $a0, 0x1f8($sp) +/* 06F960 7F03AE30 24100001 */ li $s0, 1 +/* 06F964 7F03AE34 27B20064 */ addiu $s2, $sp, 0x64 +/* 06F968 7F03AE38 27B401F8 */ addiu $s4, $sp, 0x1f8 +/* 06F96C 7F03AE3C 0000A825 */ move $s5, $zero +/* 06F970 7F03AE40 27B601F8 */ addiu $s6, $sp, 0x1f8 +/* 06F974 7F03AE44 8FB7030C */ lw $s7, 0x30c($sp) +/* 06F978 7F03AE48 8FBE0308 */ lw $fp, 0x308($sp) +.L7F03AE4C: +/* 06F97C 7F03AE4C 92D30000 */ lbu $s3, ($s6) +/* 06F980 7F03AE50 240F0001 */ li $t7, 1 +/* 06F984 7F03AE54 03C02825 */ move $a1, $fp +/* 06F988 7F03AE58 02F31021 */ addu $v0, $s7, $s3 +/* 06F98C 7F03AE5C 904E0000 */ lbu $t6, ($v0) +/* 06F990 7F03AE60 02602025 */ move $a0, $s3 +/* 06F994 7F03AE64 55C0000F */ bnezl $t6, .L7F03AEA4 +/* 06F998 7F03AE68 02602025 */ move $a0, $s3 +/* 06F99C 7F03AE6C A04F0000 */ sb $t7, ($v0) +/* 06F9A0 7F03AE70 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F9A4 7F03AE74 8FA60304 */ lw $a2, 0x304($sp) +/* 06F9A8 7F03AE78 10400009 */ beqz $v0, .L7F03AEA0 +/* 06F9AC 7F03AE7C 8FA402FC */ lw $a0, 0x2fc($sp) +/* 06F9B0 7F03AE80 8FA50300 */ lw $a1, 0x300($sp) +/* 06F9B4 7F03AE84 02603025 */ move $a2, $s3 +/* 06F9B8 7F03AE88 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06F9BC 7F03AE8C 8FA70310 */ lw $a3, 0x310($sp) +/* 06F9C0 7F03AE90 50400004 */ beql $v0, $zero, .L7F03AEA4 +/* 06F9C4 7F03AE94 02602025 */ move $a0, $s3 +/* 06F9C8 7F03AE98 10000024 */ b .L7F03AF2C +/* 06F9CC 7F03AE9C 02601025 */ move $v0, $s3 +.L7F03AEA0: +/* 06F9D0 7F03AEA0 02602025 */ move $a0, $s3 +.L7F03AEA4: +/* 06F9D4 7F03AEA4 02402825 */ move $a1, $s2 +/* 06F9D8 7F03AEA8 24060064 */ li $a2, 100 +/* 06F9DC 7F03AEAC 0FC2E3BF */ jal sub_GAME_7F0B8EFC +/* 06F9E0 7F03AEB0 00008825 */ move $s1, $zero +/* 06F9E4 7F03AEB4 18400018 */ blez $v0, .L7F03AF18 +/* 06F9E8 7F03AEB8 00402825 */ move $a1, $v0 +.L7F03AEBC: +/* 06F9EC 7F03AEBC 1A00000B */ blez $s0, .L7F03AEEC +/* 06F9F0 7F03AEC0 00001825 */ move $v1, $zero +/* 06F9F4 7F03AEC4 0011C080 */ sll $t8, $s1, 2 +/* 06F9F8 7F03AEC8 0258C821 */ addu $t9, $s2, $t8 +/* 06F9FC 7F03AECC 8F240000 */ lw $a0, ($t9) +/* 06FA00 7F03AED0 27A201F8 */ addiu $v0, $sp, 0x1f8 +.L7F03AED4: +/* 06FA04 7F03AED4 90480000 */ lbu $t0, ($v0) +/* 06FA08 7F03AED8 11040004 */ beq $t0, $a0, .L7F03AEEC +/* 06FA0C 7F03AEDC 00000000 */ nop +/* 06FA10 7F03AEE0 24630001 */ addiu $v1, $v1, 1 +/* 06FA14 7F03AEE4 1470FFFB */ bne $v1, $s0, .L7F03AED4 +/* 06FA18 7F03AEE8 24420001 */ addiu $v0, $v0, 1 +.L7F03AEEC: +/* 06FA1C 7F03AEEC 14700006 */ bne $v1, $s0, .L7F03AF08 +/* 06FA20 7F03AEF0 00114880 */ sll $t1, $s1, 2 +/* 06FA24 7F03AEF4 02495021 */ addu $t2, $s2, $t1 +/* 06FA28 7F03AEF8 8D4B0000 */ lw $t3, ($t2) +/* 06FA2C 7F03AEFC 02906021 */ addu $t4, $s4, $s0 +/* 06FA30 7F03AF00 26100001 */ addiu $s0, $s0, 1 +/* 06FA34 7F03AF04 A18B0000 */ sb $t3, ($t4) +.L7F03AF08: +/* 06FA38 7F03AF08 26310001 */ addiu $s1, $s1, 1 +/* 06FA3C 7F03AF0C 0225082A */ slt $at, $s1, $a1 +/* 06FA40 7F03AF10 1420FFEA */ bnez $at, .L7F03AEBC +/* 06FA44 7F03AF14 00000000 */ nop +.L7F03AF18: +/* 06FA48 7F03AF18 26B50001 */ addiu $s5, $s5, 1 +/* 06FA4C 7F03AF1C 02B0082A */ slt $at, $s5, $s0 +/* 06FA50 7F03AF20 1420FFCA */ bnez $at, .L7F03AE4C +/* 06FA54 7F03AF24 26D60001 */ addiu $s6, $s6, 1 +/* 06FA58 7F03AF28 00001025 */ move $v0, $zero +.L7F03AF2C: +/* 06FA5C 7F03AF2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 06FA60 7F03AF30 8FB00018 */ lw $s0, 0x18($sp) +/* 06FA64 7F03AF34 8FB1001C */ lw $s1, 0x1c($sp) +/* 06FA68 7F03AF38 8FB20020 */ lw $s2, 0x20($sp) +/* 06FA6C 7F03AF3C 8FB30024 */ lw $s3, 0x24($sp) +/* 06FA70 7F03AF40 8FB40028 */ lw $s4, 0x28($sp) +/* 06FA74 7F03AF44 8FB5002C */ lw $s5, 0x2c($sp) +/* 06FA78 7F03AF48 8FB60030 */ lw $s6, 0x30($sp) +/* 06FA7C 7F03AF4C 8FB70034 */ lw $s7, 0x34($sp) +/* 06FA80 7F03AF50 8FBE0038 */ lw $fp, 0x38($sp) +/* 06FA84 7F03AF54 03E00008 */ jr $ra +/* 06FA88 7F03AF58 27BD02F8 */ addiu $sp, $sp, 0x2f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AF5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AF5C +/* 06FA8C 7F03AF5C 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 06FA90 7F03AF60 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 06FA94 7F03AF64 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06FA98 7F03AF68 AFBF0064 */ sw $ra, 0x64($sp) +/* 06FA9C 7F03AF6C AFBE0060 */ sw $fp, 0x60($sp) +/* 06FAA0 7F03AF70 AFB7005C */ sw $s7, 0x5c($sp) +/* 06FAA4 7F03AF74 AFB3004C */ sw $s3, 0x4c($sp) +/* 06FAA8 7F03AF78 4481D000 */ mtc1 $at, $f26 +/* 06FAAC 7F03AF7C 00A09825 */ move $s3, $a1 +/* 06FAB0 7F03AF80 00E0F025 */ move $fp, $a3 +/* 06FAB4 7F03AF84 AFB60058 */ sw $s6, 0x58($sp) +/* 06FAB8 7F03AF88 AFB50054 */ sw $s5, 0x54($sp) +/* 06FABC 7F03AF8C AFB40050 */ sw $s4, 0x50($sp) +/* 06FAC0 7F03AF90 AFB20048 */ sw $s2, 0x48($sp) +/* 06FAC4 7F03AF94 AFB10044 */ sw $s1, 0x44($sp) +/* 06FAC8 7F03AF98 AFB00040 */ sw $s0, 0x40($sp) +/* 06FACC 7F03AF9C F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 06FAD0 7F03AFA0 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 06FAD4 7F03AFA4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 06FAD8 7F03AFA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 06FADC 7F03AFAC AFA400C0 */ sw $a0, 0xc0($sp) +/* 06FAE0 7F03AFB0 AFA600C8 */ sw $a2, 0xc8($sp) +/* 06FAE4 7F03AFB4 0FC2D20C */ jal get_room_data_float2 +/* 06FAE8 7F03AFB8 0000B825 */ move $s7, $zero +/* 06FAEC 7F03AFBC 46000606 */ mov.s $f24, $f0 +/* 06FAF0 7F03AFC0 0FC2D791 */ jal getMaxNumRooms +/* 06FAF4 7F03AFC4 24110001 */ li $s1, 1 +/* 06FAF8 7F03AFC8 28410002 */ slti $at, $v0, 2 +/* 06FAFC 7F03AFCC 14200051 */ bnez $at, .L7F03B114 +/* 06FB00 7F03AFD0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 06FB04 7F03AFD4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 06FB08 7F03AFD8 4481E000 */ mtc1 $at, $f28 +/* 06FB0C 7F03AFDC 01D19021 */ addu $s2, $t6, $s1 +/* 06FB10 7F03AFE0 27B60088 */ addiu $s6, $sp, 0x88 +/* 06FB14 7F03AFE4 24150001 */ li $s5, 1 +/* 06FB18 7F03AFE8 8FB400D0 */ lw $s4, 0xd0($sp) +/* 06FB1C 7F03AFEC 8FB000D8 */ lw $s0, 0xd8($sp) +/* 06FB20 7F03AFF0 924F0000 */ lbu $t7, ($s2) +.L7F03AFF4: +/* 06FB24 7F03AFF4 02202025 */ move $a0, $s1 +/* 06FB28 7F03AFF8 02802825 */ move $a1, $s4 +/* 06FB2C 7F03AFFC 15E0003F */ bnez $t7, .L7F03B0FC +/* 06FB30 7F03B000 03C03025 */ move $a2, $fp +/* 06FB34 7F03B004 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06FB38 7F03B008 A2550000 */ sb $s5, ($s2) +/* 06FB3C 7F03B00C 1040003B */ beqz $v0, .L7F03B0FC +/* 06FB40 7F03B010 02602025 */ move $a0, $s3 +/* 06FB44 7F03B014 8FA500C8 */ lw $a1, 0xc8($sp) +/* 06FB48 7F03B018 02203025 */ move $a2, $s1 +/* 06FB4C 7F03B01C 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06FB50 7F03B020 02C03825 */ move $a3, $s6 +/* 06FB54 7F03B024 10400035 */ beqz $v0, .L7F03B0FC +/* 06FB58 7F03B028 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 06FB5C 7F03B02C 46182182 */ mul.s $f6, $f4, $f24 +/* 06FB60 7F03B030 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 06FB64 7F03B034 C6680000 */ lwc1 $f8, ($s3) +/* 06FB68 7F03B038 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 06FB6C 7F03B03C 46185402 */ mul.s $f16, $f10, $f24 +/* 06FB70 7F03B040 C6720004 */ lwc1 $f18, 4($s3) +/* 06FB74 7F03B044 87A400B2 */ lh $a0, 0xb2($sp) +/* 06FB78 7F03B048 46083001 */ sub.s $f0, $f6, $f8 +/* 06FB7C 7F03B04C 46182182 */ mul.s $f6, $f4, $f24 +/* 06FB80 7F03B050 C6680008 */ lwc1 $f8, 8($s3) +/* 06FB84 7F03B054 46128081 */ sub.s $f2, $f16, $f18 +/* 06FB88 7F03B058 46000282 */ mul.s $f10, $f0, $f0 +/* 06FB8C 7F03B05C 00000000 */ nop +/* 06FB90 7F03B060 46021402 */ mul.s $f16, $f2, $f2 +/* 06FB94 7F03B064 46083301 */ sub.s $f12, $f6, $f8 +/* 06FB98 7F03B068 460C6102 */ mul.s $f4, $f12, $f12 +/* 06FB9C 7F03B06C 46105480 */ add.s $f18, $f10, $f16 +/* 06FBA0 7F03B070 46049580 */ add.s $f22, $f18, $f4 +/* 06FBA4 7F03B074 0FC2ED8C */ jal check_if_imageID_is_light +/* 06FBA8 7F03B078 4600B506 */ mov.s $f20, $f22 +/* 06FBAC 7F03B07C 10400002 */ beqz $v0, .L7F03B088 +/* 06FBB0 7F03B080 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 06FBB4 7F03B084 461CB501 */ sub.s $f20, $f22, $f28 +.L7F03B088: +/* 06FBB8 7F03B088 461AA03C */ c.lt.s $f20, $f26 +/* 06FBBC 7F03B08C 00000000 */ nop +/* 06FBC0 7F03B090 4502001B */ bc1fl .L7F03B100 +/* 06FBC4 7F03B094 26310001 */ addiu $s1, $s1, 1 +/* 06FBC8 7F03B098 E6060000 */ swc1 $f6, ($s0) +/* 06FBCC 7F03B09C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 06FBD0 7F03B0A0 4600A686 */ mov.s $f26, $f20 +/* 06FBD4 7F03B0A4 0220B825 */ move $s7, $s1 +/* 06FBD8 7F03B0A8 E6080004 */ swc1 $f8, 4($s0) +/* 06FBDC 7F03B0AC C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 06FBE0 7F03B0B0 E60A0008 */ swc1 $f10, 8($s0) +/* 06FBE4 7F03B0B4 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 06FBE8 7F03B0B8 E610000C */ swc1 $f16, 0xc($s0) +/* 06FBEC 7F03B0BC C7B20098 */ lwc1 $f18, 0x98($sp) +/* 06FBF0 7F03B0C0 E6120010 */ swc1 $f18, 0x10($s0) +/* 06FBF4 7F03B0C4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 06FBF8 7F03B0C8 E6040014 */ swc1 $f4, 0x14($s0) +/* 06FBFC 7F03B0CC 8FB800A0 */ lw $t8, 0xa0($sp) +/* 06FC00 7F03B0D0 AE180018 */ sw $t8, 0x18($s0) +/* 06FC04 7F03B0D4 8FB900A4 */ lw $t9, 0xa4($sp) +/* 06FC08 7F03B0D8 AE19001C */ sw $t9, 0x1c($s0) +/* 06FC0C 7F03B0DC 8FA800A8 */ lw $t0, 0xa8($sp) +/* 06FC10 7F03B0E0 AE080020 */ sw $t0, 0x20($s0) +/* 06FC14 7F03B0E4 87A900B2 */ lh $t1, 0xb2($sp) +/* 06FC18 7F03B0E8 A609002A */ sh $t1, 0x2a($s0) +/* 06FC1C 7F03B0EC 8FAA00AC */ lw $t2, 0xac($sp) +/* 06FC20 7F03B0F0 AE0A0024 */ sw $t2, 0x24($s0) +/* 06FC24 7F03B0F4 87AB00B0 */ lh $t3, 0xb0($sp) +/* 06FC28 7F03B0F8 A60B0028 */ sh $t3, 0x28($s0) +.L7F03B0FC: +/* 06FC2C 7F03B0FC 26310001 */ addiu $s1, $s1, 1 +.L7F03B100: +/* 06FC30 7F03B100 0FC2D791 */ jal getMaxNumRooms +/* 06FC34 7F03B104 26520001 */ addiu $s2, $s2, 1 +/* 06FC38 7F03B108 0222082A */ slt $at, $s1, $v0 +/* 06FC3C 7F03B10C 5420FFB9 */ bnezl $at, .L7F03AFF4 +/* 06FC40 7F03B110 924F0000 */ lbu $t7, ($s2) +.L7F03B114: +/* 06FC44 7F03B114 8FBF0064 */ lw $ra, 0x64($sp) +/* 06FC48 7F03B118 02E01025 */ move $v0, $s7 +/* 06FC4C 7F03B11C 8FB7005C */ lw $s7, 0x5c($sp) +/* 06FC50 7F03B120 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 06FC54 7F03B124 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 06FC58 7F03B128 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 06FC5C 7F03B12C D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 06FC60 7F03B130 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 06FC64 7F03B134 8FB00040 */ lw $s0, 0x40($sp) +/* 06FC68 7F03B138 8FB10044 */ lw $s1, 0x44($sp) +/* 06FC6C 7F03B13C 8FB20048 */ lw $s2, 0x48($sp) +/* 06FC70 7F03B140 8FB3004C */ lw $s3, 0x4c($sp) +/* 06FC74 7F03B144 8FB40050 */ lw $s4, 0x50($sp) +/* 06FC78 7F03B148 8FB50054 */ lw $s5, 0x54($sp) +/* 06FC7C 7F03B14C 8FB60058 */ lw $s6, 0x58($sp) +/* 06FC80 7F03B150 8FBE0060 */ lw $fp, 0x60($sp) +/* 06FC84 7F03B154 03E00008 */ jr $ra +/* 06FC88 7F03B158 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03B15C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03B15C +/* 06FC8C 7F03B15C 27BDFA88 */ addiu $sp, $sp, -0x578 +/* 06FC90 7F03B160 AFBF0034 */ sw $ra, 0x34($sp) +/* 06FC94 7F03B164 AFB00028 */ sw $s0, 0x28($sp) +/* 06FC98 7F03B168 00808025 */ move $s0, $a0 +/* 06FC9C 7F03B16C AFB20030 */ sw $s2, 0x30($sp) +/* 06FCA0 7F03B170 AFB1002C */ sw $s1, 0x2c($sp) +/* 06FCA4 7F03B174 AFA0056C */ sw $zero, 0x56c($sp) +/* 06FCA8 7F03B178 AFA0055C */ sw $zero, 0x55c($sp) +/* 06FCAC 7F03B17C AFA00554 */ sw $zero, 0x554($sp) +/* 06FCB0 7F03B180 0FC225E6 */ jal get_curplayer_positiondata +/* 06FCB4 7F03B184 AFA00544 */ sw $zero, 0x544($sp) +/* 06FCB8 7F03B188 8C4E0014 */ lw $t6, 0x14($v0) +/* 06FCBC 7F03B18C 27B20194 */ addiu $s2, $sp, 0x194 +/* 06FCC0 7F03B190 00408825 */ move $s1, $v0 +/* 06FCC4 7F03B194 AFA0018C */ sw $zero, 0x18c($sp) +/* 06FCC8 7F03B198 02402025 */ move $a0, $s2 +/* 06FCCC 7F03B19C 27A501A0 */ addiu $a1, $sp, 0x1a0 +/* 06FCD0 7F03B1A0 02003025 */ move $a2, $s0 +/* 06FCD4 7F03B1A4 0FC1A073 */ jal sub_GAME_7F0681CC +/* 06FCD8 7F03B1A8 AFAE04F8 */ sw $t6, 0x4f8($sp) +/* 06FCDC 7F03B1AC 0FC17674 */ jal get_item_in_hand +/* 06FCE0 7F03B1B0 02002025 */ move $a0, $s0 +/* 06FCE4 7F03B1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06FCE8 7F03B1B8 44812000 */ mtc1 $at, $f4 +/* 06FCEC 7F03B1BC AFA201AC */ sw $v0, 0x1ac($sp) +/* 06FCF0 7F03B1C0 27A204B4 */ addiu $v0, $sp, 0x4b4 +/* 06FCF4 7F03B1C4 AFA001D0 */ sw $zero, 0x1d0($sp) +/* 06FCF8 7F03B1C8 AFA001D4 */ sw $zero, 0x1d4($sp) +/* 06FCFC 7F03B1CC AFA001D8 */ sw $zero, 0x1d8($sp) +/* 06FD00 7F03B1D0 AFA00220 */ sw $zero, 0x220($sp) +/* 06FD04 7F03B1D4 AFA00224 */ sw $zero, 0x224($sp) +/* 06FD08 7F03B1D8 AFA00228 */ sw $zero, 0x228($sp) +/* 06FD0C 7F03B1DC 27B00234 */ addiu $s0, $sp, 0x234 +/* 06FD10 7F03B1E0 E7A401C8 */ swc1 $f4, 0x1c8($sp) +.L7F03B1E4: +/* 06FD14 7F03B1E4 26100140 */ addiu $s0, $s0, 0x140 +/* 06FD18 7F03B1E8 AE00FF4C */ sw $zero, -0xb4($s0) +/* 06FD1C 7F03B1EC AE00FF50 */ sw $zero, -0xb0($s0) +/* 06FD20 7F03B1F0 AE00FF54 */ sw $zero, -0xac($s0) +/* 06FD24 7F03B1F4 AE00FF9C */ sw $zero, -0x64($s0) +/* 06FD28 7F03B1F8 AE00FFA0 */ sw $zero, -0x60($s0) +/* 06FD2C 7F03B1FC AE00FFA4 */ sw $zero, -0x5c($s0) +/* 06FD30 7F03B200 AE00FFEC */ sw $zero, -0x14($s0) +/* 06FD34 7F03B204 AE00FFF0 */ sw $zero, -0x10($s0) +/* 06FD38 7F03B208 AE00FFF4 */ sw $zero, -0xc($s0) +/* 06FD3C 7F03B20C AE00FEFC */ sw $zero, -0x104($s0) +/* 06FD40 7F03B210 AE00FF00 */ sw $zero, -0x100($s0) +/* 06FD44 7F03B214 1602FFF3 */ bne $s0, $v0, .L7F03B1E4 +/* 06FD48 7F03B218 AE00FF04 */ sw $zero, -0xfc($s0) +/* 06FD4C 7F03B21C C7A60194 */ lwc1 $f6, 0x194($sp) +/* 06FD50 7F03B220 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 06FD54 7F03B224 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 06FD58 7F03B228 E7A601B0 */ swc1 $f6, 0x1b0($sp) +/* 06FD5C 7F03B22C E7A801B4 */ swc1 $f8, 0x1b4($sp) +/* 06FD60 7F03B230 0FC1E111 */ jal sub_GAME_7F078444 +/* 06FD64 7F03B234 E7AA01B8 */ swc1 $f10, 0x1b8($sp) +/* 06FD68 7F03B238 00402025 */ move $a0, $v0 +/* 06FD6C 7F03B23C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 06FD70 7F03B240 27A501B0 */ addiu $a1, $sp, 0x1b0 +/* 06FD74 7F03B244 C7B001A0 */ lwc1 $f16, 0x1a0($sp) +/* 06FD78 7F03B248 C7B201A4 */ lwc1 $f18, 0x1a4($sp) +/* 06FD7C 7F03B24C C7A401A8 */ lwc1 $f4, 0x1a8($sp) +/* 06FD80 7F03B250 E7B001BC */ swc1 $f16, 0x1bc($sp) +/* 06FD84 7F03B254 E7B201C0 */ swc1 $f18, 0x1c0($sp) +/* 06FD88 7F03B258 0FC1E111 */ jal sub_GAME_7F078444 +/* 06FD8C 7F03B25C E7A401C4 */ swc1 $f4, 0x1c4($sp) +/* 06FD90 7F03B260 00402025 */ move $a0, $v0 +/* 06FD94 7F03B264 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 06FD98 7F03B268 27A501BC */ addiu $a1, $sp, 0x1bc +/* 06FD9C 7F03B26C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06FDA0 7F03B270 44810000 */ mtc1 $at, $f0 +/* 06FDA4 7F03B274 C7A601BC */ lwc1 $f6, 0x1bc($sp) +/* 06FDA8 7F03B278 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 06FDAC 7F03B27C C7B201C0 */ lwc1 $f18, 0x1c0($sp) +/* 06FDB0 7F03B280 46003202 */ mul.s $f8, $f6, $f0 +/* 06FDB4 7F03B284 C7A601B4 */ lwc1 $f6, 0x1b4($sp) +/* 06FDB8 7F03B288 44075000 */ mfc1 $a3, $f10 +/* 06FDBC 7F03B28C 46009102 */ mul.s $f4, $f18, $f0 +/* 06FDC0 7F03B290 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 06FDC4 7F03B294 460A4400 */ add.s $f16, $f8, $f10 +/* 06FDC8 7F03B298 46062200 */ add.s $f8, $f4, $f6 +/* 06FDCC 7F03B29C E7B004EC */ swc1 $f16, 0x4ec($sp) +/* 06FDD0 7F03B2A0 C7B001C4 */ lwc1 $f16, 0x1c4($sp) +/* 06FDD4 7F03B2A4 C7A401B8 */ lwc1 $f4, 0x1b8($sp) +/* 06FDD8 7F03B2A8 E7A804F0 */ swc1 $f8, 0x4f0($sp) +/* 06FDDC 7F03B2AC 46008482 */ mul.s $f18, $f16, $f0 +/* 06FDE0 7F03B2B0 46049180 */ add.s $f6, $f18, $f4 +/* 06FDE4 7F03B2B4 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 06FDE8 7F03B2B8 8E260010 */ lw $a2, 0x10($s1) +/* 06FDEC 7F03B2BC 8E250008 */ lw $a1, 8($s1) +/* 06FDF0 7F03B2C0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06FDF4 7F03B2C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 06FDF8 7F03B2C8 504000B9 */ beql $v0, $zero, .L7F03B5B0 +/* 06FDFC 7F03B2CC 8FB901AC */ lw $t9, 0x1ac($sp) +/* 06FE00 7F03B2D0 0FC2D20F */ jal get_room_data_float1 +/* 06FE04 7F03B2D4 00000000 */ nop +/* 06FE08 7F03B2D8 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 06FE0C 7F03B2DC E7A00048 */ swc1 $f0, 0x48($sp) +/* 06FE10 7F03B2E0 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 06FE14 7F03B2E4 46020202 */ mul.s $f8, $f0, $f2 +/* 06FE18 7F03B2E8 0FC227F5 */ jal get_BONDdata_position +/* 06FE1C 7F03B2EC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 06FE20 7F03B2F0 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 06FE24 7F03B2F4 00408025 */ move $s0, $v0 +/* 06FE28 7F03B2F8 C7B004F4 */ lwc1 $f16, 0x4f4($sp) +/* 06FE2C 7F03B2FC 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 06FE30 7F03B300 8FA501B0 */ lw $a1, 0x1b0($sp) +/* 06FE34 7F03B304 8FA601B8 */ lw $a2, 0x1b8($sp) +/* 06FE38 7F03B308 8FA704EC */ lw $a3, 0x4ec($sp) +/* 06FE3C 7F03B30C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06FE40 7F03B310 E7B00010 */ swc1 $f16, 0x10($sp) +/* 06FE44 7F03B314 14400008 */ bnez $v0, .L7F03B338 +/* 06FE48 7F03B318 C7B204EC */ lwc1 $f18, 0x4ec($sp) +/* 06FE4C 7F03B31C 27A401B0 */ addiu $a0, $sp, 0x1b0 +/* 06FE50 7F03B320 27A501BC */ addiu $a1, $sp, 0x1bc +/* 06FE54 7F03B324 0FC09893 */ jal sub_GAME_7F02624C +/* 06FE58 7F03B328 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FE5C 7F03B32C 240F0001 */ li $t7, 1 +/* 06FE60 7F03B330 10000006 */ b .L7F03B34C +/* 06FE64 7F03B334 AFAF056C */ sw $t7, 0x56c($sp) +.L7F03B338: +/* 06FE68 7F03B338 C7A604F0 */ lwc1 $f6, 0x4f0($sp) +/* 06FE6C 7F03B33C C7AA04F4 */ lwc1 $f10, 0x4f4($sp) +/* 06FE70 7F03B340 E7B20560 */ swc1 $f18, 0x560($sp) +/* 06FE74 7F03B344 E7A60564 */ swc1 $f6, 0x564($sp) +/* 06FE78 7F03B348 E7AA0568 */ swc1 $f10, 0x568($sp) +.L7F03B34C: +/* 06FE7C 7F03B34C C7A40560 */ lwc1 $f4, 0x560($sp) +/* 06FE80 7F03B350 C6080000 */ lwc1 $f8, ($s0) +/* 06FE84 7F03B354 C7B20564 */ lwc1 $f18, 0x564($sp) +/* 06FE88 7F03B358 C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 06FE8C 7F03B35C 46082401 */ sub.s $f16, $f4, $f8 +/* 06FE90 7F03B360 C7A40568 */ lwc1 $f4, 0x568($sp) +/* 06FE94 7F03B364 8FA404F8 */ lw $a0, 0x4f8($sp) +/* 06FE98 7F03B368 E7B00070 */ swc1 $f16, 0x70($sp) +/* 06FE9C 7F03B36C C6060004 */ lwc1 $f6, 4($s0) +/* 06FEA0 7F03B370 46069281 */ sub.s $f10, $f18, $f6 +/* 06FEA4 7F03B374 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 06FEA8 7F03B378 C6080008 */ lwc1 $f8, 8($s0) +/* 06FEAC 7F03B37C 46082401 */ sub.s $f16, $f4, $f8 +/* 06FEB0 7F03B380 E7B00078 */ swc1 $f16, 0x78($sp) +/* 06FEB4 7F03B384 C6120000 */ lwc1 $f18, ($s0) +/* 06FEB8 7F03B388 46009182 */ mul.s $f6, $f18, $f0 +/* 06FEBC 7F03B38C E7A6007C */ swc1 $f6, 0x7c($sp) +/* 06FEC0 7F03B390 C60A0004 */ lwc1 $f10, 4($s0) +/* 06FEC4 7F03B394 46005102 */ mul.s $f4, $f10, $f0 +/* 06FEC8 7F03B398 E7A40080 */ swc1 $f4, 0x80($sp) +/* 06FECC 7F03B39C C6080008 */ lwc1 $f8, 8($s0) +/* 06FED0 7F03B3A0 AFA4055C */ sw $a0, 0x55c($sp) +/* 06FED4 7F03B3A4 46004402 */ mul.s $f16, $f8, $f0 +/* 06FED8 7F03B3A8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FEDC 7F03B3AC E7B00084 */ swc1 $f16, 0x84($sp) +/* 06FEE0 7F03B3B0 00408825 */ move $s1, $v0 +/* 06FEE4 7F03B3B4 27A2018C */ addiu $v0, $sp, 0x18c +/* 06FEE8 7F03B3B8 27A3008C */ addiu $v1, $sp, 0x8c +.L7F03B3BC: +/* 06FEEC 7F03B3BC 24630004 */ addiu $v1, $v1, 4 +/* 06FEF0 7F03B3C0 A060FFFD */ sb $zero, -3($v1) +/* 06FEF4 7F03B3C4 A060FFFE */ sb $zero, -2($v1) +/* 06FEF8 7F03B3C8 A060FFFF */ sb $zero, -1($v1) +/* 06FEFC 7F03B3CC 1462FFFB */ bne $v1, $v0, .L7F03B3BC +/* 06FF00 7F03B3D0 A060FFFC */ sb $zero, -4($v1) +/* 06FF04 7F03B3D4 02002025 */ move $a0, $s0 +/* 06FF08 7F03B3D8 27A50560 */ addiu $a1, $sp, 0x560 +/* 06FF0C 7F03B3DC 02203025 */ move $a2, $s1 +/* 06FF10 7F03B3E0 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06FF14 7F03B3E4 27A70510 */ addiu $a3, $sp, 0x510 +/* 06FF18 7F03B3E8 10400002 */ beqz $v0, .L7F03B3F4 +/* 06FF1C 7F03B3EC 24190001 */ li $t9, 1 +/* 06FF20 7F03B3F0 AFB10544 */ sw $s1, 0x544($sp) +.L7F03B3F4: +/* 06FF24 7F03B3F4 03B14021 */ addu $t0, $sp, $s1 +/* 06FF28 7F03B3F8 A119008C */ sb $t9, 0x8c($t0) +/* 06FF2C 7F03B3FC 8FA90544 */ lw $t1, 0x544($sp) +/* 06FF30 7F03B400 3C0A8008 */ lui $t2, %hi(ptr_bgdata_portals) +/* 06FF34 7F03B404 5D200027 */ bgtzl $t1, .L7F03B4A4 +/* 06FF38 7F03B408 8FA80544 */ lw $t0, 0x544($sp) +/* 06FF3C 7F03B40C 8D4AFF80 */ lw $t2, %lo(ptr_bgdata_portals)($t2) +/* 06FF40 7F03B410 8D4B0000 */ lw $t3, ($t2) +/* 06FF44 7F03B414 11600012 */ beqz $t3, .L7F03B460 +/* 06FF48 7F03B418 00000000 */ nop +/* 06FF4C 7F03B41C 0FC225E6 */ jal get_curplayer_positiondata +/* 06FF50 7F03B420 00000000 */ nop +/* 06FF54 7F03B424 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FF58 7F03B428 8C440014 */ lw $a0, 0x14($v0) +/* 06FF5C 7F03B42C 27AC007C */ addiu $t4, $sp, 0x7c +/* 06FF60 7F03B430 27AD008C */ addiu $t5, $sp, 0x8c +/* 06FF64 7F03B434 27AE0510 */ addiu $t6, $sp, 0x510 +/* 06FF68 7F03B438 AFAE0018 */ sw $t6, 0x18($sp) +/* 06FF6C 7F03B43C AFAD0014 */ sw $t5, 0x14($sp) +/* 06FF70 7F03B440 AFAC0010 */ sw $t4, 0x10($sp) +/* 06FF74 7F03B444 00402025 */ move $a0, $v0 +/* 06FF78 7F03B448 02002825 */ move $a1, $s0 +/* 06FF7C 7F03B44C 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FF80 7F03B450 0FC0EB7D */ jal sub_GAME_7F03ADF4 +/* 06FF84 7F03B454 27A70070 */ addiu $a3, $sp, 0x70 +/* 06FF88 7F03B458 10000011 */ b .L7F03B4A0 +/* 06FF8C 7F03B45C AFA20544 */ sw $v0, 0x544($sp) +.L7F03B460: +/* 06FF90 7F03B460 0FC225E6 */ jal get_curplayer_positiondata +/* 06FF94 7F03B464 00000000 */ nop +/* 06FF98 7F03B468 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FF9C 7F03B46C 8C440014 */ lw $a0, 0x14($v0) +/* 06FFA0 7F03B470 27AF007C */ addiu $t7, $sp, 0x7c +/* 06FFA4 7F03B474 27B8008C */ addiu $t8, $sp, 0x8c +/* 06FFA8 7F03B478 27B90510 */ addiu $t9, $sp, 0x510 +/* 06FFAC 7F03B47C AFB90018 */ sw $t9, 0x18($sp) +/* 06FFB0 7F03B480 AFB80014 */ sw $t8, 0x14($sp) +/* 06FFB4 7F03B484 AFAF0010 */ sw $t7, 0x10($sp) +/* 06FFB8 7F03B488 00402025 */ move $a0, $v0 +/* 06FFBC 7F03B48C 02002825 */ move $a1, $s0 +/* 06FFC0 7F03B490 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FFC4 7F03B494 0FC0EBD7 */ jal sub_GAME_7F03AF5C +/* 06FFC8 7F03B498 27A70070 */ addiu $a3, $sp, 0x70 +/* 06FFCC 7F03B49C AFA20544 */ sw $v0, 0x544($sp) +.L7F03B4A0: +/* 06FFD0 7F03B4A0 8FA80544 */ lw $t0, 0x544($sp) +.L7F03B4A4: +/* 06FFD4 7F03B4A4 5900000F */ blezl $t0, .L7F03B4E4 +/* 06FFD8 7F03B4A8 8FAB0544 */ lw $t3, 0x544($sp) +/* 06FFDC 7F03B4AC 0FC2D20C */ jal get_room_data_float2 +/* 06FFE0 7F03B4B0 00000000 */ nop +/* 06FFE4 7F03B4B4 C7B20510 */ lwc1 $f18, 0x510($sp) +/* 06FFE8 7F03B4B8 C7AA0514 */ lwc1 $f10, 0x514($sp) +/* 06FFEC 7F03B4BC C7A80518 */ lwc1 $f8, 0x518($sp) +/* 06FFF0 7F03B4C0 46009182 */ mul.s $f6, $f18, $f0 +/* 06FFF4 7F03B4C4 00000000 */ nop +/* 06FFF8 7F03B4C8 46005102 */ mul.s $f4, $f10, $f0 +/* 06FFFC 7F03B4CC 00000000 */ nop +/* 070000 7F03B4D0 46004402 */ mul.s $f16, $f8, $f0 +/* 070004 7F03B4D4 E7A60510 */ swc1 $f6, 0x510($sp) +/* 070008 7F03B4D8 E7A40514 */ swc1 $f4, 0x514($sp) +/* 07000C 7F03B4DC E7B00518 */ swc1 $f16, 0x518($sp) +/* 070010 7F03B4E0 8FAB0544 */ lw $t3, 0x544($sp) +.L7F03B4E4: +/* 070014 7F03B4E4 27A9008C */ addiu $t1, $sp, 0x8c +/* 070018 7F03B4E8 27AA0510 */ addiu $t2, $sp, 0x510 +/* 07001C 7F03B4EC AFAA0014 */ sw $t2, 0x14($sp) +/* 070020 7F03B4F0 AFA90010 */ sw $t1, 0x10($sp) +/* 070024 7F03B4F4 02002025 */ move $a0, $s0 +/* 070028 7F03B4F8 27A50560 */ addiu $a1, $sp, 0x560 +/* 07002C 7F03B4FC 27A60070 */ addiu $a2, $sp, 0x70 +/* 070030 7F03B500 27A7007C */ addiu $a3, $sp, 0x7c +/* 070034 7F03B504 0FC0EAD6 */ jal sub_GAME_7F03AB58 +/* 070038 7F03B508 AFAB0018 */ sw $t3, 0x18($sp) +/* 07003C 7F03B50C 1840000F */ blez $v0, .L7F03B54C +/* 070040 7F03B510 AFA20544 */ sw $v0, 0x544($sp) +/* 070044 7F03B514 C7B20510 */ lwc1 $f18, 0x510($sp) +/* 070048 7F03B518 87AD053A */ lh $t5, 0x53a($sp) +/* 07004C 7F03B51C C7B00514 */ lwc1 $f16, 0x514($sp) +/* 070050 7F03B520 C7AE0518 */ lwc1 $f14, 0x518($sp) +/* 070054 7F03B524 240C0001 */ li $t4, 1 +/* 070058 7F03B528 AFAC0554 */ sw $t4, 0x554($sp) +/* 07005C 7F03B52C AFAD0540 */ sw $t5, 0x540($sp) +/* 070060 7F03B530 E7B20548 */ swc1 $f18, 0x548($sp) +/* 070064 7F03B534 E7B20500 */ swc1 $f18, 0x500($sp) +/* 070068 7F03B538 E7B0054C */ swc1 $f16, 0x54c($sp) +/* 07006C 7F03B53C E7B00504 */ swc1 $f16, 0x504($sp) +/* 070070 7F03B540 E7AE0550 */ swc1 $f14, 0x550($sp) +/* 070074 7F03B544 1000000A */ b .L7F03B570 +/* 070078 7F03B548 E7AE0508 */ swc1 $f14, 0x508($sp) +.L7F03B54C: +/* 07007C 7F03B54C C7B204EC */ lwc1 $f18, 0x4ec($sp) +/* 070080 7F03B550 C7A604F0 */ lwc1 $f6, 0x4f0($sp) +/* 070084 7F03B554 C7AA04F4 */ lwc1 $f10, 0x4f4($sp) +/* 070088 7F03B558 240EFFFF */ li $t6, -1 +/* 07008C 7F03B55C AFB10544 */ sw $s1, 0x544($sp) +/* 070090 7F03B560 AFAE0540 */ sw $t6, 0x540($sp) +/* 070094 7F03B564 E7B20500 */ swc1 $f18, 0x500($sp) +/* 070098 7F03B568 E7A60504 */ swc1 $f6, 0x504($sp) +/* 07009C 7F03B56C E7AA0508 */ swc1 $f10, 0x508($sp) +.L7F03B570: +/* 0700A0 7F03B570 8FAF056C */ lw $t7, 0x56c($sp) +/* 0700A4 7F03B574 8FB80554 */ lw $t8, 0x554($sp) +/* 0700A8 7F03B578 15E00003 */ bnez $t7, .L7F03B588 +/* 0700AC 7F03B57C 00000000 */ nop +/* 0700B0 7F03B580 5300000B */ beql $t8, $zero, .L7F03B5B0 +/* 0700B4 7F03B584 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F03B588: +/* 0700B8 7F03B588 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0700BC 7F03B58C 00000000 */ nop +/* 0700C0 7F03B590 00402025 */ move $a0, $v0 +/* 0700C4 7F03B594 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0700C8 7F03B598 27A50500 */ addiu $a1, $sp, 0x500 +/* 0700CC 7F03B59C C7A40508 */ lwc1 $f4, 0x508($sp) +/* 0700D0 7F03B5A0 46002207 */ neg.s $f8, $f4 +/* 0700D4 7F03B5A4 E7A8050C */ swc1 $f8, 0x50c($sp) +/* 0700D8 7F03B5A8 E7A801C8 */ swc1 $f8, 0x1c8($sp) +/* 0700DC 7F03B5AC 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F03B5B0: +/* 0700E0 7F03B5B0 24010017 */ li $at, 23 +/* 0700E4 7F03B5B4 C7B201C8 */ lwc1 $f18, 0x1c8($sp) +/* 0700E8 7F03B5B8 1721000B */ bne $t9, $at, .L7F03B5E8 +/* 0700EC 7F03B5BC 3C118007 */ lui $s1, %hi(dword_CODE_bss_80071DF0) +/* 0700F0 7F03B5C0 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0700F4 7F03B5C4 44818000 */ mtc1 $at, $f16 +/* 0700F8 7F03B5C8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0700FC 7F03B5CC 4612803C */ c.lt.s $f16, $f18 +/* 070100 7F03B5D0 00000000 */ nop +/* 070104 7F03B5D4 45000004 */ bc1f .L7F03B5E8 +/* 070108 7F03B5D8 00000000 */ nop +/* 07010C 7F03B5DC 44813000 */ mtc1 $at, $f6 +/* 070110 7F03B5E0 00000000 */ nop +/* 070114 7F03B5E4 E7A601C8 */ swc1 $f6, 0x1c8($sp) +.L7F03B5E8: +/* 070118 7F03B5E8 8E311DF0 */ lw $s1, %lo(dword_CODE_bss_80071DF0)($s1) +/* 07011C 7F03B5EC 3C088007 */ lui $t0, %hi(dword_CODE_bss_80071620) +/* 070120 7F03B5F0 25081620 */ addiu $t0, %lo(dword_CODE_bss_80071620) # addiu $t0, $t0, 0x1620 +/* 070124 7F03B5F4 2631FFFC */ addiu $s1, $s1, -4 +/* 070128 7F03B5F8 0228082B */ sltu $at, $s1, $t0 +/* 07012C 7F03B5FC 5420002A */ bnezl $at, .L7F03B6A8 +/* 070130 7F03B600 27B00194 */ addiu $s0, $sp, 0x194 +/* 070134 7F03B604 8E300000 */ lw $s0, ($s1) +.L7F03B608: +/* 070138 7F03B608 12000020 */ beqz $s0, .L7F03B68C +/* 07013C 7F03B60C 00000000 */ nop +/* 070140 7F03B610 92020000 */ lbu $v0, ($s0) +/* 070144 7F03B614 24010003 */ li $at, 3 +/* 070148 7F03B618 1041000C */ beq $v0, $at, .L7F03B64C +/* 07014C 7F03B61C 24010006 */ li $at, 6 +/* 070150 7F03B620 54410010 */ bnel $v0, $at, .L7F03B664 +/* 070154 7F03B624 92020000 */ lbu $v0, ($s0) +/* 070158 7F03B628 8E090004 */ lw $t1, 4($s0) +/* 07015C 7F03B62C 5120000D */ beql $t1, $zero, .L7F03B664 +/* 070160 7F03B630 92020000 */ lbu $v0, ($s0) +/* 070164 7F03B634 0FC26C57 */ jal sub_GAME_7F09B15C +/* 070168 7F03B638 02002025 */ move $a0, $s0 +/* 07016C 7F03B63C 0FC26C54 */ jal get_cur_playernum +/* 070170 7F03B640 AFA2004C */ sw $v0, 0x4c($sp) +/* 070174 7F03B644 8FAA004C */ lw $t2, 0x4c($sp) +/* 070178 7F03B648 104A0005 */ beq $v0, $t2, .L7F03B660 +.L7F03B64C: +/* 07017C 7F03B64C 02002025 */ move $a0, $s0 +/* 070180 7F03B650 0FC08992 */ jal sub_GAME_7F022648 +/* 070184 7F03B654 02402825 */ move $a1, $s2 +/* 070188 7F03B658 1000000C */ b .L7F03B68C +/* 07018C 7F03B65C 00000000 */ nop +.L7F03B660: +/* 070190 7F03B660 92020000 */ lbu $v0, ($s0) +.L7F03B664: +/* 070194 7F03B664 24010001 */ li $at, 1 +/* 070198 7F03B668 02002025 */ move $a0, $s0 +/* 07019C 7F03B66C 10410005 */ beq $v0, $at, .L7F03B684 +/* 0701A0 7F03B670 24010004 */ li $at, 4 +/* 0701A4 7F03B674 10410003 */ beq $v0, $at, .L7F03B684 +/* 0701A8 7F03B678 24010002 */ li $at, 2 +/* 0701AC 7F03B67C 14410003 */ bne $v0, $at, .L7F03B68C +/* 0701B0 7F03B680 00000000 */ nop +.L7F03B684: +/* 0701B4 7F03B684 0FC13A6F */ jal sub_GAME_7F04E9BC +/* 0701B8 7F03B688 02402825 */ move $a1, $s2 +.L7F03B68C: +/* 0701BC 7F03B68C 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80071620) +/* 0701C0 7F03B690 256B1620 */ addiu $t3, %lo(dword_CODE_bss_80071620) # addiu $t3, $t3, 0x1620 +/* 0701C4 7F03B694 2631FFFC */ addiu $s1, $s1, -4 +/* 0701C8 7F03B698 022B082B */ sltu $at, $s1, $t3 +/* 0701CC 7F03B69C 5020FFDA */ beql $at, $zero, .L7F03B608 +/* 0701D0 7F03B6A0 8E300000 */ lw $s0, ($s1) +/* 0701D4 7F03B6A4 27B00194 */ addiu $s0, $sp, 0x194 +.L7F03B6A8: +/* 0701D8 7F03B6A8 27B104B4 */ addiu $s1, $sp, 0x4b4 +/* 0701DC 7F03B6AC 8E03003C */ lw $v1, 0x3c($s0) +.L7F03B6B0: +/* 0701E0 7F03B6B0 50600024 */ beql $v1, $zero, .L7F03B744 +/* 0701E4 7F03B6B4 26100050 */ addiu $s0, $s0, 0x50 +/* 0701E8 7F03B6B8 90620000 */ lbu $v0, ($v1) +/* 0701EC 7F03B6BC 24010003 */ li $at, 3 +/* 0701F0 7F03B6C0 02402025 */ move $a0, $s2 +/* 0701F4 7F03B6C4 10410003 */ beq $v0, $at, .L7F03B6D4 +/* 0701F8 7F03B6C8 24010006 */ li $at, 6 +/* 0701FC 7F03B6CC 54410006 */ bnel $v0, $at, .L7F03B6E8 +/* 070200 7F03B6D0 24010001 */ li $at, 1 +.L7F03B6D4: +/* 070204 7F03B6D4 0FC08A60 */ jal sub_GAME_7F022980 +/* 070208 7F03B6D8 26050038 */ addiu $a1, $s0, 0x38 +/* 07020C 7F03B6DC 1000000C */ b .L7F03B710 +/* 070210 7F03B6E0 8E0C0084 */ lw $t4, 0x84($s0) +/* 070214 7F03B6E4 24010001 */ li $at, 1 +.L7F03B6E8: +/* 070218 7F03B6E8 10410006 */ beq $v0, $at, .L7F03B704 +/* 07021C 7F03B6EC 02402025 */ move $a0, $s2 +/* 070220 7F03B6F0 24010004 */ li $at, 4 +/* 070224 7F03B6F4 10410003 */ beq $v0, $at, .L7F03B704 +/* 070228 7F03B6F8 24010002 */ li $at, 2 +/* 07022C 7F03B6FC 54410004 */ bnel $v0, $at, .L7F03B710 +/* 070230 7F03B700 8E0C0084 */ lw $t4, 0x84($s0) +.L7F03B704: +/* 070234 7F03B704 0FC13A9A */ jal sub_GAME_7F04EA68 +/* 070238 7F03B708 26050038 */ addiu $a1, $s0, 0x38 +/* 07023C 7F03B70C 8E0C0084 */ lw $t4, 0x84($s0) +.L7F03B710: +/* 070240 7F03B710 8FAD018C */ lw $t5, 0x18c($sp) +/* 070244 7F03B714 1180000A */ beqz $t4, .L7F03B740 +/* 070248 7F03B718 25AE0001 */ addiu $t6, $t5, 1 +/* 07024C 7F03B71C AFAE018C */ sw $t6, 0x18c($sp) +/* 070250 7F03B720 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 070254 7F03B724 8FA401AC */ lw $a0, 0x1ac($sp) +/* 070258 7F03B728 8FAF018C */ lw $t7, 0x18c($sp) +/* 07025C 7F03B72C 01E2082A */ slt $at, $t7, $v0 +/* 070260 7F03B730 54200004 */ bnezl $at, .L7F03B744 +/* 070264 7F03B734 26100050 */ addiu $s0, $s0, 0x50 +/* 070268 7F03B738 AFA00554 */ sw $zero, 0x554($sp) +/* 07026C 7F03B73C AFA0056C */ sw $zero, 0x56c($sp) +.L7F03B740: +/* 070270 7F03B740 26100050 */ addiu $s0, $s0, 0x50 +.L7F03B744: +/* 070274 7F03B744 5611FFDA */ bnel $s0, $s1, .L7F03B6B0 +/* 070278 7F03B748 8E03003C */ lw $v1, 0x3c($s0) +/* 07027C 7F03B74C 8FB80554 */ lw $t8, 0x554($sp) +/* 070280 7F03B750 8FB9056C */ lw $t9, 0x56c($sp) +/* 070284 7F03B754 8FA801AC */ lw $t0, 0x1ac($sp) +/* 070288 7F03B758 17000002 */ bnez $t8, .L7F03B764 +/* 07028C 7F03B75C 24010017 */ li $at, 23 +/* 070290 7F03B760 13200091 */ beqz $t9, .L7F03B9A8 +.L7F03B764: +/* 070294 7F03B764 00008025 */ move $s0, $zero +/* 070298 7F03B768 15010009 */ bne $t0, $at, .L7F03B790 +/* 07029C 7F03B76C 24110001 */ li $s1, 1 +/* 0702A0 7F03B770 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0702A4 7F03B774 44815000 */ mtc1 $at, $f10 +/* 0702A8 7F03B778 C7A4050C */ lwc1 $f4, 0x50c($sp) +/* 0702AC 7F03B77C 4604503C */ c.lt.s $f10, $f4 +/* 0702B0 7F03B780 00000000 */ nop +/* 0702B4 7F03B784 45020003 */ bc1fl .L7F03B794 +/* 0702B8 7F03B788 8FA90554 */ lw $t1, 0x554($sp) +/* 0702BC 7F03B78C 00008825 */ move $s1, $zero +.L7F03B790: +/* 0702C0 7F03B790 8FA90554 */ lw $t1, 0x554($sp) +.L7F03B794: +/* 0702C4 7F03B794 87AA053A */ lh $t2, 0x53a($sp) +/* 0702C8 7F03B798 8FAC056C */ lw $t4, 0x56c($sp) +/* 0702CC 7F03B79C 11200034 */ beqz $t1, .L7F03B870 +/* 0702D0 7F03B7A0 00000000 */ nop +/* 0702D4 7F03B7A4 05410004 */ bgez $t2, .L7F03B7B8 +/* 0702D8 7F03B7A8 87AB053A */ lh $t3, 0x53a($sp) +/* 0702DC 7F03B7AC 3C108005 */ lui $s0, %hi(D_8004E86C) +/* 0702E0 7F03B7B0 1000000A */ b .L7F03B7DC +/* 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) +/* 0702F0 7F03B7C0 01AC6821 */ addu $t5, $t5, $t4 +/* 0702F4 7F03B7C4 91AD9300 */ lbu $t5, %lo(image_entries)($t5) +/* 0702F8 7F03B7C8 3C108005 */ lui $s0, %hi(D_8004E86C) +/* 0702FC 7F03B7CC 31AE000F */ andi $t6, $t5, 0xf +/* 070300 7F03B7D0 000E7880 */ sll $t7, $t6, 2 +/* 070304 7F03B7D4 020F8021 */ addu $s0, $s0, $t7 +/* 070308 7F03B7D8 8E10E86C */ lw $s0, %lo(D_8004E86C)($s0) +.L7F03B7DC: +/* 07030C 7F03B7DC 12200022 */ beqz $s1, .L7F03B868 +/* 070310 7F03B7E0 00000000 */ nop +/* 070314 7F03B7E4 8618000A */ lh $t8, 0xa($s0) +/* 070318 7F03B7E8 8FB901AC */ lw $t9, 0x1ac($sp) +/* 07031C 7F03B7EC 24010017 */ li $at, 23 +/* 070320 7F03B7F0 1B000016 */ blez $t8, .L7F03B84C +/* 070324 7F03B7F4 00000000 */ nop +/* 070328 7F03B7F8 13210014 */ beq $t9, $at, .L7F03B84C +/* 07032C 7F03B7FC 00000000 */ nop +/* 070330 7F03B800 0C002914 */ jal get_random_value +/* 070334 7F03B804 00000000 */ nop +/* 070338 7F03B808 8608000A */ lh $t0, 0xa($s0) +/* 07033C 7F03B80C 8E090004 */ lw $t1, 4($s0) +/* 070340 7F03B810 240BFFFF */ li $t3, -1 +/* 070344 7F03B814 0048001B */ divu $zero, $v0, $t0 +/* 070348 7F03B818 00001810 */ mfhi $v1 +/* 07034C 7F03B81C 01235021 */ addu $t2, $t1, $v1 +/* 070350 7F03B820 91460000 */ lbu $a2, ($t2) +/* 070354 7F03B824 15000002 */ bnez $t0, .L7F03B830 +/* 070358 7F03B828 00000000 */ nop +/* 07035C 7F03B82C 0007000D */ break 7 +.L7F03B830: +/* 070360 7F03B830 AFA00018 */ sw $zero, 0x18($sp) +/* 070364 7F03B834 AFAB0014 */ sw $t3, 0x14($sp) +/* 070368 7F03B838 AFA00010 */ sw $zero, 0x10($sp) +/* 07036C 7F03B83C 27A40548 */ addiu $a0, $sp, 0x548 +/* 070370 7F03B840 27A5051C */ addiu $a1, $sp, 0x51c +/* 070374 7F03B844 0FC28423 */ jal sub_GAME_7F0A108C +/* 070378 7F03B848 87A70546 */ lh $a3, 0x546($sp) +.L7F03B84C: +/* 07037C 7F03B84C 0FC2ED8C */ jal check_if_imageID_is_light +/* 070380 7F03B850 87A4053A */ lh $a0, 0x53a($sp) +/* 070384 7F03B854 10400004 */ beqz $v0, .L7F03B868 +/* 070388 7F03B858 8FA40534 */ lw $a0, 0x534($sp) +/* 07038C 7F03B85C 87A50538 */ lh $a1, 0x538($sp) +/* 070390 7F03B860 0FC2EF83 */ jal sub_GAME_7F0BBE0C +/* 070394 7F03B864 8FA60544 */ lw $a2, 0x544($sp) +.L7F03B868: +/* 070398 7F03B868 10000014 */ b .L7F03B8BC +/* 07039C 7F03B86C 27B00548 */ addiu $s0, $sp, 0x548 +.L7F03B870: +/* 0703A0 7F03B870 11800012 */ beqz $t4, .L7F03B8BC +/* 0703A4 7F03B874 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0703A8 7F03B878 44810000 */ mtc1 $at, $f0 +/* 0703AC 7F03B87C C7A801BC */ lwc1 $f8, 0x1bc($sp) +/* 0703B0 7F03B880 C7B201B0 */ lwc1 $f18, 0x1b0($sp) +/* 0703B4 7F03B884 C7AA01C0 */ lwc1 $f10, 0x1c0($sp) +/* 0703B8 7F03B888 46004402 */ mul.s $f16, $f8, $f0 +/* 0703BC 7F03B88C C7A801B4 */ lwc1 $f8, 0x1b4($sp) +/* 0703C0 7F03B890 27B00560 */ addiu $s0, $sp, 0x560 +/* 0703C4 7F03B894 46005102 */ mul.s $f4, $f10, $f0 +/* 0703C8 7F03B898 C7AA01B8 */ lwc1 $f10, 0x1b8($sp) +/* 0703CC 7F03B89C 46128180 */ add.s $f6, $f16, $f18 +/* 0703D0 7F03B8A0 C7B201C4 */ lwc1 $f18, 0x1c4($sp) +/* 0703D4 7F03B8A4 46082400 */ add.s $f16, $f4, $f8 +/* 0703D8 7F03B8A8 E7A60560 */ swc1 $f6, 0x560($sp) +/* 0703DC 7F03B8AC 46009182 */ mul.s $f6, $f18, $f0 +/* 0703E0 7F03B8B0 E7B00564 */ swc1 $f16, 0x564($sp) +/* 0703E4 7F03B8B4 460A3100 */ add.s $f4, $f6, $f10 +/* 0703E8 7F03B8B8 E7A40568 */ swc1 $f4, 0x568($sp) +.L7F03B8BC: +/* 0703EC 7F03B8BC 5200003B */ beql $s0, $zero, .L7F03B9AC +/* 0703F0 7F03B8C0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0703F4 7F03B8C4 1220001D */ beqz $s1, .L7F03B93C +/* 0703F8 7F03B8C8 8FA401AC */ lw $a0, 0x1ac($sp) +/* 0703FC 7F03B8CC 02002825 */ move $a1, $s0 +/* 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) +/* 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) +/* 070420 7F03B8F0 304F000F */ andi $t7, $v0, 0xf +/* 070424 7F03B8F4 11E10011 */ beq $t7, $at, .L7F03B93C +/* 070428 7F03B8F8 24010006 */ li $at, 6 +/* 07042C 7F03B8FC 11E1000F */ beq $t7, $at, .L7F03B93C +/* 070430 7F03B900 8FB80544 */ lw $t8, 0x544($sp) +/* 070434 7F03B904 241900FF */ li $t9, 255 +/* 070438 7F03B908 A3B80050 */ sb $t8, 0x50($sp) +/* 07043C 7F03B90C 0FC26C54 */ jal get_cur_playernum +/* 070440 7F03B910 A3B90051 */ sb $t9, 0x51($sp) +/* 070444 7F03B914 27A80050 */ addiu $t0, $sp, 0x50 +/* 070448 7F03B918 AFA80018 */ sw $t0, 0x18($sp) +/* 07044C 7F03B91C 00002025 */ move $a0, $zero +/* 070450 7F03B920 02002825 */ move $a1, $s0 +/* 070454 7F03B924 8FA6055C */ lw $a2, 0x55c($sp) +/* 070458 7F03B928 24070001 */ li $a3, 1 +/* 07045C 7F03B92C AFA00010 */ sw $zero, 0x10($sp) +/* 070460 7F03B930 AFA20014 */ sw $v0, 0x14($sp) +/* 070464 7F03B934 0FC27094 */ jal sub_GAME_7F09C250 +/* 070468 7F03B938 AFA0001C */ sw $zero, 0x1c($sp) +.L7F03B93C: +/* 07046C 7F03B93C 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 070470 7F03B940 44810000 */ mtc1 $at, $f0 +/* 070474 7F03B944 C7B001BC */ lwc1 $f16, 0x1bc($sp) +/* 070478 7F03B948 C6080000 */ lwc1 $f8, ($s0) +/* 07047C 7F03B94C C60A0004 */ lwc1 $f10, 4($s0) +/* 070480 7F03B950 46100482 */ mul.s $f18, $f0, $f16 +/* 070484 7F03B954 02002025 */ move $a0, $s0 +/* 070488 7F03B958 46124181 */ sub.s $f6, $f8, $f18 +/* 07048C 7F03B95C C6120008 */ lwc1 $f18, 8($s0) +/* 070490 7F03B960 E6060000 */ swc1 $f6, ($s0) +/* 070494 7F03B964 C7A401C0 */ lwc1 $f4, 0x1c0($sp) +/* 070498 7F03B968 46040402 */ mul.s $f16, $f0, $f4 +/* 07049C 7F03B96C 46105201 */ sub.s $f8, $f10, $f16 +/* 0704A0 7F03B970 E6080004 */ swc1 $f8, 4($s0) +/* 0704A4 7F03B974 C7A601C4 */ lwc1 $f6, 0x1c4($sp) +/* 0704A8 7F03B978 46060102 */ mul.s $f4, $f0, $f6 +/* 0704AC 7F03B97C 46049281 */ sub.s $f10, $f18, $f4 +/* 0704B0 7F03B980 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 0704B4 7F03B984 E60A0008 */ swc1 $f10, 8($s0) +/* 0704B8 7F03B988 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0704BC 7F03B98C 44810000 */ mtc1 $at, $f0 +/* 0704C0 7F03B990 12200005 */ beqz $s1, .L7F03B9A8 +/* 0704C4 7F03B994 02002025 */ move $a0, $s0 +/* 0704C8 7F03B998 44060000 */ mfc1 $a2, $f0 +/* 0704CC 7F03B99C 24050001 */ li $a1, 1 +/* 0704D0 7F03B9A0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 0704D4 7F03B9A4 87A70546 */ lh $a3, 0x546($sp) +.L7F03B9A8: +/* 0704D8 7F03B9A8 8FBF0034 */ lw $ra, 0x34($sp) +.L7F03B9AC: +/* 0704DC 7F03B9AC 8FB00028 */ lw $s0, 0x28($sp) +/* 0704E0 7F03B9B0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0704E4 7F03B9B4 8FB20030 */ lw $s2, 0x30($sp) +/* 0704E8 7F03B9B8 03E00008 */ jr $ra +/* 0704EC 7F03B9BC 27BD0578 */ addiu $sp, $sp, 0x578 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03B9C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03B9C0 +/* 0704F0 7F03B9C0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0704F4 7F03B9C4 8FAE0054 */ lw $t6, 0x54($sp) +/* 0704F8 7F03B9C8 44867000 */ mtc1 $a2, $f14 +/* 0704FC 7F03B9CC AFBF0014 */ sw $ra, 0x14($sp) +/* 070500 7F03B9D0 AFA40030 */ sw $a0, 0x30($sp) +/* 070504 7F03B9D4 AFA50034 */ sw $a1, 0x34($sp) +/* 070508 7F03B9D8 11C00091 */ beqz $t6, .L7F03BC20 +/* 07050C 7F03B9DC AFA7003C */ sw $a3, 0x3c($sp) +/* 070510 7F03B9E0 44806000 */ mtc1 $zero, $f12 +/* 070514 7F03B9E4 00003025 */ move $a2, $zero +/* 070518 7F03B9E8 00002825 */ move $a1, $zero +/* 07051C 7F03B9EC 00001825 */ move $v1, $zero +/* 070520 7F03B9F0 00801025 */ move $v0, $a0 +/* 070524 7F03B9F4 46006086 */ mov.s $f2, $f12 +.L7F03B9F8: +/* 070528 7F03B9F8 8C4F003C */ lw $t7, 0x3c($v0) +/* 07052C 7F03B9FC 51E0000E */ beql $t7, $zero, .L7F03BA38 +/* 070530 7F03BA00 24630001 */ addiu $v1, $v1, 1 +/* 070534 7F03BA04 8C580084 */ lw $t8, 0x84($v0) +/* 070538 7F03BA08 5300000B */ beql $t8, $zero, .L7F03BA38 +/* 07053C 7F03BA0C 24630001 */ addiu $v1, $v1, 1 +/* 070540 7F03BA10 C4400038 */ lwc1 $f0, 0x38($v0) +/* 070544 7F03BA14 24A50001 */ addiu $a1, $a1, 1 +/* 070548 7F03BA18 4600103C */ c.lt.s $f2, $f0 +/* 07054C 7F03BA1C 00000000 */ nop +/* 070550 7F03BA20 45020005 */ bc1fl .L7F03BA38 +/* 070554 7F03BA24 24630001 */ addiu $v1, $v1, 1 +/* 070558 7F03BA28 46001306 */ mov.s $f12, $f2 +/* 07055C 7F03BA2C 46000086 */ mov.s $f2, $f0 +/* 070560 7F03BA30 00603025 */ move $a2, $v1 +/* 070564 7F03BA34 24630001 */ addiu $v1, $v1, 1 +.L7F03BA38: +/* 070568 7F03BA38 2861000A */ slti $at, $v1, 0xa +/* 07056C 7F03BA3C 1420FFEE */ bnez $at, .L7F03B9F8 +/* 070570 7F03BA40 24420050 */ addiu $v0, $v0, 0x50 +/* 070574 7F03BA44 8FB90030 */ lw $t9, 0x30($sp) +/* 070578 7F03BA48 8F240018 */ lw $a0, 0x18($t9) +/* 07057C 7F03BA4C E7AE0038 */ swc1 $f14, 0x38($sp) +/* 070580 7F03BA50 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 070584 7F03BA54 AFA60024 */ sw $a2, 0x24($sp) +/* 070588 7F03BA58 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 07058C 7F03BA5C AFA5001C */ sw $a1, 0x1c($sp) +/* 070590 7F03BA60 8FA5001C */ lw $a1, 0x1c($sp) +/* 070594 7F03BA64 8FA60024 */ lw $a2, 0x24($sp) +/* 070598 7F03BA68 8FA70030 */ lw $a3, 0x30($sp) +/* 07059C 7F03BA6C 00A2082A */ slt $at, $a1, $v0 +/* 0705A0 7F03BA70 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0705A4 7F03BA74 1420005A */ bnez $at, .L7F03BBE0 +/* 0705A8 7F03BA78 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0705AC 7F03BA7C 00064080 */ sll $t0, $a2, 2 +/* 0705B0 7F03BA80 460E603C */ c.lt.s $f12, $f14 +/* 0705B4 7F03BA84 01064021 */ addu $t0, $t0, $a2 +/* 0705B8 7F03BA88 00084100 */ sll $t0, $t0, 4 +/* 0705BC 7F03BA8C 00E84821 */ addu $t1, $a3, $t0 +/* 0705C0 7F03BA90 AD20003C */ sw $zero, 0x3c($t1) +/* 0705C4 7F03BA94 45000002 */ bc1f .L7F03BAA0 +/* 0705C8 7F03BA98 E4EC0034 */ swc1 $f12, 0x34($a3) +/* 0705CC 7F03BA9C E4EE0034 */ swc1 $f14, 0x34($a3) +.L7F03BAA0: +/* 0705D0 7F03BAA0 8CEA003C */ lw $t2, 0x3c($a3) +/* 0705D4 7F03BAA4 00E01025 */ move $v0, $a3 +/* 0705D8 7F03BAA8 240400A0 */ li $a0, 160 +/* 0705DC 7F03BAAC 1140000A */ beqz $t2, .L7F03BAD8 +/* 0705E0 7F03BAB0 24030320 */ li $v1, 800 +/* 0705E4 7F03BAB4 8C4B0084 */ lw $t3, 0x84($v0) +/* 0705E8 7F03BAB8 55600008 */ bnezl $t3, .L7F03BADC +/* 0705EC 7F03BABC 8C4C008C */ lw $t4, 0x8c($v0) +/* 0705F0 7F03BAC0 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0705F4 7F03BAC4 4604603C */ c.lt.s $f12, $f4 +/* 0705F8 7F03BAC8 00000000 */ nop +/* 0705FC 7F03BACC 45020003 */ bc1fl .L7F03BADC +/* 070600 7F03BAD0 8C4C008C */ lw $t4, 0x8c($v0) +/* 070604 7F03BAD4 AC40003C */ sw $zero, 0x3c($v0) +.L7F03BAD8: +/* 070608 7F03BAD8 8C4C008C */ lw $t4, 0x8c($v0) +.L7F03BADC: +/* 07060C 7F03BADC 5180000B */ beql $t4, $zero, .L7F03BB0C +/* 070610 7F03BAE0 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070614 7F03BAE4 8C4D00D4 */ lw $t5, 0xd4($v0) +/* 070618 7F03BAE8 55A00008 */ bnezl $t5, .L7F03BB0C +/* 07061C 7F03BAEC 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070620 7F03BAF0 C4460088 */ lwc1 $f6, 0x88($v0) +/* 070624 7F03BAF4 4606603C */ c.lt.s $f12, $f6 +/* 070628 7F03BAF8 00000000 */ nop +/* 07062C 7F03BAFC 45020003 */ bc1fl .L7F03BB0C +/* 070630 7F03BB00 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070634 7F03BB04 AC40008C */ sw $zero, 0x8c($v0) +/* 070638 7F03BB08 24E200A0 */ addiu $v0, $a3, 0xa0 +.L7F03BB0C: +/* 07063C 7F03BB0C 8C4E003C */ lw $t6, 0x3c($v0) +/* 070640 7F03BB10 24840140 */ addiu $a0, $a0, 0x140 +/* 070644 7F03BB14 51C0000B */ beql $t6, $zero, .L7F03BB44 +/* 070648 7F03BB18 8C58008C */ lw $t8, 0x8c($v0) +/* 07064C 7F03BB1C 8C4F0084 */ lw $t7, 0x84($v0) +/* 070650 7F03BB20 55E00008 */ bnezl $t7, .L7F03BB44 +/* 070654 7F03BB24 8C58008C */ lw $t8, 0x8c($v0) +/* 070658 7F03BB28 C4480038 */ lwc1 $f8, 0x38($v0) +/* 07065C 7F03BB2C 4608603C */ c.lt.s $f12, $f8 +/* 070660 7F03BB30 00000000 */ nop +/* 070664 7F03BB34 45020003 */ bc1fl .L7F03BB44 +/* 070668 7F03BB38 8C58008C */ lw $t8, 0x8c($v0) +/* 07066C 7F03BB3C AC40003C */ sw $zero, 0x3c($v0) +/* 070670 7F03BB40 8C58008C */ lw $t8, 0x8c($v0) +.L7F03BB44: +/* 070674 7F03BB44 5300000B */ beql $t8, $zero, .L7F03BB74 +/* 070678 7F03BB48 8C4800DC */ lw $t0, 0xdc($v0) +/* 07067C 7F03BB4C 8C5900D4 */ lw $t9, 0xd4($v0) +/* 070680 7F03BB50 57200008 */ bnezl $t9, .L7F03BB74 +/* 070684 7F03BB54 8C4800DC */ lw $t0, 0xdc($v0) +/* 070688 7F03BB58 C44A0088 */ lwc1 $f10, 0x88($v0) +/* 07068C 7F03BB5C 460A603C */ c.lt.s $f12, $f10 +/* 070690 7F03BB60 00000000 */ nop +/* 070694 7F03BB64 45020003 */ bc1fl .L7F03BB74 +/* 070698 7F03BB68 8C4800DC */ lw $t0, 0xdc($v0) +/* 07069C 7F03BB6C AC40008C */ sw $zero, 0x8c($v0) +/* 0706A0 7F03BB70 8C4800DC */ lw $t0, 0xdc($v0) +.L7F03BB74: +/* 0706A4 7F03BB74 5100000B */ beql $t0, $zero, .L7F03BBA4 +/* 0706A8 7F03BB78 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706AC 7F03BB7C 8C490124 */ lw $t1, 0x124($v0) +/* 0706B0 7F03BB80 55200008 */ bnezl $t1, .L7F03BBA4 +/* 0706B4 7F03BB84 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706B8 7F03BB88 C45000D8 */ lwc1 $f16, 0xd8($v0) +/* 0706BC 7F03BB8C 4610603C */ c.lt.s $f12, $f16 +/* 0706C0 7F03BB90 00000000 */ nop +/* 0706C4 7F03BB94 45020003 */ bc1fl .L7F03BBA4 +/* 0706C8 7F03BB98 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706CC 7F03BB9C AC4000DC */ sw $zero, 0xdc($v0) +/* 0706D0 7F03BBA0 8C4A012C */ lw $t2, 0x12c($v0) +.L7F03BBA4: +/* 0706D4 7F03BBA4 1140000A */ beqz $t2, .L7F03BBD0 +/* 0706D8 7F03BBA8 00000000 */ nop +/* 0706DC 7F03BBAC 8C4B0174 */ lw $t3, 0x174($v0) +/* 0706E0 7F03BBB0 15600007 */ bnez $t3, .L7F03BBD0 +/* 0706E4 7F03BBB4 00000000 */ nop +/* 0706E8 7F03BBB8 C4520128 */ lwc1 $f18, 0x128($v0) +/* 0706EC 7F03BBBC 4612603C */ c.lt.s $f12, $f18 +/* 0706F0 7F03BBC0 00000000 */ nop +/* 0706F4 7F03BBC4 45000002 */ bc1f .L7F03BBD0 +/* 0706F8 7F03BBC8 00000000 */ nop +/* 0706FC 7F03BBCC AC40012C */ sw $zero, 0x12c($v0) +.L7F03BBD0: +/* 070700 7F03BBD0 1483FFCE */ bne $a0, $v1, .L7F03BB0C +/* 070704 7F03BBD4 24420140 */ addiu $v0, $v0, 0x140 +/* 070708 7F03BBD8 10000012 */ b .L7F03BC24 +/* 07070C 7F03BBDC 8FAD0058 */ lw $t5, 0x58($sp) +.L7F03BBE0: +/* 070710 7F03BBE0 8CE40018 */ lw $a0, 0x18($a3) +/* 070714 7F03BBE4 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 070718 7F03BBE8 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 07071C 7F03BBEC AFA5001C */ sw $a1, 0x1c($sp) +/* 070720 7F03BBF0 8FA5001C */ lw $a1, 0x1c($sp) +/* 070724 7F03BBF4 8FA70030 */ lw $a3, 0x30($sp) +/* 070728 7F03BBF8 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 07072C 7F03BBFC 24AC0001 */ addiu $t4, $a1, 1 +/* 070730 7F03BC00 55820008 */ bnel $t4, $v0, .L7F03BC24 +/* 070734 7F03BC04 8FAD0058 */ lw $t5, 0x58($sp) +/* 070738 7F03BC08 C4E40034 */ lwc1 $f4, 0x34($a3) +/* 07073C 7F03BC0C 4604703C */ c.lt.s $f14, $f4 +/* 070740 7F03BC10 00000000 */ nop +/* 070744 7F03BC14 45020003 */ bc1fl .L7F03BC24 +/* 070748 7F03BC18 8FAD0058 */ lw $t5, 0x58($sp) +/* 07074C 7F03BC1C E4EE0034 */ swc1 $f14, 0x34($a3) +.L7F03BC20: +/* 070750 7F03BC20 8FAD0058 */ lw $t5, 0x58($sp) +.L7F03BC24: +/* 070754 7F03BC24 8FAE0030 */ lw $t6, 0x30($sp) +/* 070758 7F03BC28 51A00048 */ beql $t5, $zero, .L7F03BD4C +/* 07075C 7F03BC2C 00002025 */ move $a0, $zero +/* 070760 7F03BC30 8DC20018 */ lw $v0, 0x18($t6) +/* 070764 7F03BC34 24010012 */ li $at, 18 +/* 070768 7F03BC38 10410043 */ beq $v0, $at, .L7F03BD48 +/* 07076C 7F03BC3C 24010014 */ li $at, 20 +/* 070770 7F03BC40 50410042 */ beql $v0, $at, .L7F03BD4C +/* 070774 7F03BC44 00002025 */ move $a0, $zero +/* 070778 7F03BC48 8DC3003C */ lw $v1, 0x3c($t6) +/* 07077C 7F03BC4C 01C01025 */ move $v0, $t6 +/* 070780 7F03BC50 50600008 */ beql $v1, $zero, .L7F03BC74 +/* 070784 7F03BC54 8C4F008C */ lw $t7, 0x8c($v0) +/* 070788 7F03BC58 C5C60038 */ lwc1 $f6, 0x38($t6) +/* 07078C 7F03BC5C 4606703C */ c.lt.s $f14, $f6 +/* 070790 7F03BC60 00000000 */ nop +/* 070794 7F03BC64 45020003 */ bc1fl .L7F03BC74 +/* 070798 7F03BC68 8C4F008C */ lw $t7, 0x8c($v0) +/* 07079C 7F03BC6C ADC0003C */ sw $zero, 0x3c($t6) +/* 0707A0 7F03BC70 8C4F008C */ lw $t7, 0x8c($v0) +.L7F03BC74: +/* 0707A4 7F03BC74 51E00008 */ beql $t7, $zero, .L7F03BC98 +/* 0707A8 7F03BC78 8FA20030 */ lw $v0, 0x30($sp) +/* 0707AC 7F03BC7C C4480088 */ lwc1 $f8, 0x88($v0) +/* 0707B0 7F03BC80 4608703C */ c.lt.s $f14, $f8 +/* 0707B4 7F03BC84 00000000 */ nop +/* 0707B8 7F03BC88 45020003 */ bc1fl .L7F03BC98 +/* 0707BC 7F03BC8C 8FA20030 */ lw $v0, 0x30($sp) +/* 0707C0 7F03BC90 AC40008C */ sw $zero, 0x8c($v0) +/* 0707C4 7F03BC94 8FA20030 */ lw $v0, 0x30($sp) +.L7F03BC98: +/* 0707C8 7F03BC98 240400A0 */ li $a0, 160 +/* 0707CC 7F03BC9C 24030320 */ li $v1, 800 +/* 0707D0 7F03BCA0 244200A0 */ addiu $v0, $v0, 0xa0 +.L7F03BCA4: +/* 0707D4 7F03BCA4 8C58003C */ lw $t8, 0x3c($v0) +/* 0707D8 7F03BCA8 24840140 */ addiu $a0, $a0, 0x140 +/* 0707DC 7F03BCAC 53000008 */ beql $t8, $zero, .L7F03BCD0 +/* 0707E0 7F03BCB0 8C59008C */ lw $t9, 0x8c($v0) +/* 0707E4 7F03BCB4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0707E8 7F03BCB8 460A703C */ c.lt.s $f14, $f10 +/* 0707EC 7F03BCBC 00000000 */ nop +/* 0707F0 7F03BCC0 45020003 */ bc1fl .L7F03BCD0 +/* 0707F4 7F03BCC4 8C59008C */ lw $t9, 0x8c($v0) +/* 0707F8 7F03BCC8 AC40003C */ sw $zero, 0x3c($v0) +/* 0707FC 7F03BCCC 8C59008C */ lw $t9, 0x8c($v0) +.L7F03BCD0: +/* 070800 7F03BCD0 53200008 */ beql $t9, $zero, .L7F03BCF4 +/* 070804 7F03BCD4 8C4800DC */ lw $t0, 0xdc($v0) +/* 070808 7F03BCD8 C4500088 */ lwc1 $f16, 0x88($v0) +/* 07080C 7F03BCDC 4610703C */ c.lt.s $f14, $f16 +/* 070810 7F03BCE0 00000000 */ nop +/* 070814 7F03BCE4 45020003 */ bc1fl .L7F03BCF4 +/* 070818 7F03BCE8 8C4800DC */ lw $t0, 0xdc($v0) +/* 07081C 7F03BCEC AC40008C */ sw $zero, 0x8c($v0) +/* 070820 7F03BCF0 8C4800DC */ lw $t0, 0xdc($v0) +.L7F03BCF4: +/* 070824 7F03BCF4 51000008 */ beql $t0, $zero, .L7F03BD18 +/* 070828 7F03BCF8 8C49012C */ lw $t1, 0x12c($v0) +/* 07082C 7F03BCFC C45200D8 */ lwc1 $f18, 0xd8($v0) +/* 070830 7F03BD00 4612703C */ c.lt.s $f14, $f18 +/* 070834 7F03BD04 00000000 */ nop +/* 070838 7F03BD08 45020003 */ bc1fl .L7F03BD18 +/* 07083C 7F03BD0C 8C49012C */ lw $t1, 0x12c($v0) +/* 070840 7F03BD10 AC4000DC */ sw $zero, 0xdc($v0) +/* 070844 7F03BD14 8C49012C */ lw $t1, 0x12c($v0) +.L7F03BD18: +/* 070848 7F03BD18 11200007 */ beqz $t1, .L7F03BD38 +/* 07084C 7F03BD1C 00000000 */ nop +/* 070850 7F03BD20 C4440128 */ lwc1 $f4, 0x128($v0) +/* 070854 7F03BD24 4604703C */ c.lt.s $f14, $f4 +/* 070858 7F03BD28 00000000 */ nop +/* 07085C 7F03BD2C 45000002 */ bc1f .L7F03BD38 +/* 070860 7F03BD30 00000000 */ nop +/* 070864 7F03BD34 AC40012C */ sw $zero, 0x12c($v0) +.L7F03BD38: +/* 070868 7F03BD38 1483FFDA */ bne $a0, $v1, .L7F03BCA4 +/* 07086C 7F03BD3C 24420140 */ addiu $v0, $v0, 0x140 +/* 070870 7F03BD40 8FAA0030 */ lw $t2, 0x30($sp) +/* 070874 7F03BD44 E54E0034 */ swc1 $f14, 0x34($t2) +.L7F03BD48: +/* 070878 7F03BD48 00002025 */ move $a0, $zero +.L7F03BD4C: +/* 07087C 7F03BD4C 8FA20030 */ lw $v0, 0x30($sp) +/* 070880 7F03BD50 24030320 */ li $v1, 800 +.L7F03BD54: +/* 070884 7F03BD54 8C4B003C */ lw $t3, 0x3c($v0) +/* 070888 7F03BD58 24840050 */ addiu $a0, $a0, 0x50 +/* 07088C 7F03BD5C 1560001D */ bnez $t3, .L7F03BDD4 +/* 070890 7F03BD60 00000000 */ nop +/* 070894 7F03BD64 E44E0038 */ swc1 $f14, 0x38($v0) +/* 070898 7F03BD68 8FAC0034 */ lw $t4, 0x34($sp) +/* 07089C 7F03BD6C 00404025 */ move $t0, $v0 +/* 0708A0 7F03BD70 AC4C003C */ sw $t4, 0x3c($v0) +/* 0708A4 7F03BD74 8FAD003C */ lw $t5, 0x3c($sp) +/* 0708A8 7F03BD78 AC4D0040 */ sw $t5, 0x40($v0) +/* 0708AC 7F03BD7C 8FAE0040 */ lw $t6, 0x40($sp) +/* 0708B0 7F03BD80 AC4E0044 */ sw $t6, 0x44($v0) +/* 0708B4 7F03BD84 8FAF0044 */ lw $t7, 0x44($sp) +/* 0708B8 7F03BD88 25F90030 */ addiu $t9, $t7, 0x30 +.L7F03BD8C: +/* 0708BC 7F03BD8C 8DE10000 */ lw $at, ($t7) +/* 0708C0 7F03BD90 25EF000C */ addiu $t7, $t7, 0xc +/* 0708C4 7F03BD94 2508000C */ addiu $t0, $t0, 0xc +/* 0708C8 7F03BD98 AD01003C */ sw $at, 0x3c($t0) +/* 0708CC 7F03BD9C 8DE1FFF8 */ lw $at, -8($t7) +/* 0708D0 7F03BDA0 AD010040 */ sw $at, 0x40($t0) +/* 0708D4 7F03BDA4 8DE1FFFC */ lw $at, -4($t7) +/* 0708D8 7F03BDA8 15F9FFF8 */ bne $t7, $t9, .L7F03BD8C +/* 0708DC 7F03BDAC AD010044 */ sw $at, 0x44($t0) +/* 0708E0 7F03BDB0 8FA90048 */ lw $t1, 0x48($sp) +/* 0708E4 7F03BDB4 AC490078 */ sw $t1, 0x78($v0) +/* 0708E8 7F03BDB8 8FAA004C */ lw $t2, 0x4c($sp) +/* 0708EC 7F03BDBC AC4A007C */ sw $t2, 0x7c($v0) +/* 0708F0 7F03BDC0 8FAB0050 */ lw $t3, 0x50($sp) +/* 0708F4 7F03BDC4 AC4B0080 */ sw $t3, 0x80($v0) +/* 0708F8 7F03BDC8 8FAC0054 */ lw $t4, 0x54($sp) +/* 0708FC 7F03BDCC 10000003 */ b .L7F03BDDC +/* 070900 7F03BDD0 AC4C0084 */ sw $t4, 0x84($v0) +.L7F03BDD4: +/* 070904 7F03BDD4 1483FFDF */ bne $a0, $v1, .L7F03BD54 +/* 070908 7F03BDD8 24420050 */ addiu $v0, $v0, 0x50 +.L7F03BDDC: +/* 07090C 7F03BDDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 070910 7F03BDE0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 070914 7F03BDE4 03E00008 */ jr $ra +/* 070918 7F03BDE8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03BDEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03BDEC +/* 07091C 7F03BDEC 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 070920 7F03BDF0 AFBF0064 */ sw $ra, 0x64($sp) +/* 070924 7F03BDF4 AFB60060 */ sw $s6, 0x60($sp) +/* 070928 7F03BDF8 00A0B025 */ move $s6, $a1 +/* 07092C 7F03BDFC AFB5005C */ sw $s5, 0x5c($sp) +/* 070930 7F03BE00 AFB40058 */ sw $s4, 0x58($sp) +/* 070934 7F03BE04 AFB30054 */ sw $s3, 0x54($sp) +/* 070938 7F03BE08 AFB20050 */ sw $s2, 0x50($sp) +/* 07093C 7F03BE0C AFB1004C */ sw $s1, 0x4c($sp) +/* 070940 7F03BE10 AFB00048 */ sw $s0, 0x48($sp) +/* 070944 7F03BE14 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 070948 7F03BE18 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 07094C 7F03BE1C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 070950 7F03BE20 AFA400C8 */ sw $a0, 0xc8($sp) +/* 070954 7F03BE24 0FC225E6 */ jal get_curplayer_positiondata +/* 070958 7F03BE28 AFA000BC */ sw $zero, 0xbc($sp) +/* 07095C 7F03BE2C 3C048008 */ lui $a0, %hi(pPlayer) +/* 070960 7F03BE30 0040A025 */ move $s4, $v0 +/* 070964 7F03BE34 0FC225E0 */ jal sub_GAME_7F089780 +/* 070968 7F03BE38 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 07096C 7F03BE3C 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071DF0) +/* 070970 7F03BE40 8E731DF0 */ lw $s3, %lo(dword_CODE_bss_80071DF0)($s3) +/* 070974 7F03BE44 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620) +/* 070978 7F03BE48 25CE1620 */ addiu $t6, %lo(dword_CODE_bss_80071620) # addiu $t6, $t6, 0x1620 +/* 07097C 7F03BE4C 2673FFFC */ addiu $s3, $s3, -4 +/* 070980 7F03BE50 026E082B */ sltu $at, $s3, $t6 +/* 070984 7F03BE54 1420008F */ bnez $at, .L7F03C094 +/* 070988 7F03BE58 46000606 */ mov.s $f24, $f0 +/* 07098C 7F03BE5C 4480B000 */ mtc1 $zero, $f22 +/* 070990 7F03BE60 27B50078 */ addiu $s5, $sp, 0x78 +/* 070994 7F03BE64 8E700000 */ lw $s0, ($s3) +.L7F03BE68: +/* 070998 7F03BE68 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07099C 7F03BE6C 12000083 */ beqz $s0, .L7F03C07C +/* 0709A0 7F03BE70 00000000 */ nop +/* 0709A4 7F03BE74 C6040018 */ lwc1 $f4, 0x18($s0) +/* 0709A8 7F03BE78 44813000 */ mtc1 $at, $f6 +/* 0709AC 7F03BE7C 00000000 */ nop +/* 0709B0 7F03BE80 4606203C */ c.lt.s $f4, $f6 +/* 0709B4 7F03BE84 00000000 */ nop +/* 0709B8 7F03BE88 4500007C */ bc1f .L7F03C07C +/* 0709BC 7F03BE8C 00000000 */ nop +/* 0709C0 7F03BE90 92020000 */ lbu $v0, ($s0) +/* 0709C4 7F03BE94 24010003 */ li $at, 3 +/* 0709C8 7F03BE98 1041000B */ beq $v0, $at, .L7F03BEC8 +/* 0709CC 7F03BE9C 24010006 */ li $at, 6 +/* 0709D0 7F03BEA0 14410076 */ bne $v0, $at, .L7F03C07C +/* 0709D4 7F03BEA4 00000000 */ nop +/* 0709D8 7F03BEA8 8E0F0004 */ lw $t7, 4($s0) +/* 0709DC 7F03BEAC 11E00073 */ beqz $t7, .L7F03C07C +/* 0709E0 7F03BEB0 00000000 */ nop +/* 0709E4 7F03BEB4 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0709E8 7F03BEB8 02002025 */ move $a0, $s0 +/* 0709EC 7F03BEBC 0FC26C54 */ jal get_cur_playernum +/* 0709F0 7F03BEC0 00408825 */ move $s1, $v0 +/* 0709F4 7F03BEC4 1051006D */ beq $v0, $s1, .L7F03C07C +.L7F03BEC8: +/* 0709F8 7F03BEC8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0709FC 7F03BECC 4481A000 */ mtc1 $at, $f20 +/* 070A00 7F03BED0 0FC1741E */ jal getCurrentWeaponOrItem +/* 070A04 7F03BED4 8E120004 */ lw $s2, 4($s0) +/* 070A08 7F03BED8 24010011 */ li $at, 17 +/* 070A0C 7F03BEDC 14410004 */ bne $v0, $at, .L7F03BEF0 +/* 070A10 7F03BEE0 27A500AC */ addiu $a1, $sp, 0xac +/* 070A14 7F03BEE4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 070A18 7F03BEE8 4481A000 */ mtc1 $at, $f20 +/* 070A1C 7F03BEEC 00000000 */ nop +.L7F03BEF0: +/* 070A20 7F03BEF0 8E44001C */ lw $a0, 0x1c($s2) +/* 070A24 7F03BEF4 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 070A28 7F03BEF8 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A2C 7F03BEFC 00003825 */ move $a3, $zero +/* 070A30 7F03BF00 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 070A34 7F03BF04 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 070A38 7F03BF08 4608B03E */ c.le.s $f22, $f8 +/* 070A3C 7F03BF0C 00000000 */ nop +/* 070A40 7F03BF10 4500005A */ bc1f .L7F03C07C +/* 070A44 7F03BF14 00000000 */ nop +/* 070A48 7F03BF18 4616503E */ c.le.s $f10, $f22 +/* 070A4C 7F03BF1C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 070A50 7F03BF20 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 070A54 7F03BF24 24070001 */ li $a3, 1 +/* 070A58 7F03BF28 45000054 */ bc1f .L7F03C07C +/* 070A5C 7F03BF2C 00000000 */ nop +/* 070A60 7F03BF30 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A64 7F03BF34 8E44001C */ lw $a0, 0x1c($s2) +/* 070A68 7F03BF38 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 070A6C 7F03BF3C C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 070A70 7F03BF40 4610B03E */ c.le.s $f22, $f16 +/* 070A74 7F03BF44 00000000 */ nop +/* 070A78 7F03BF48 4500004C */ bc1f .L7F03C07C +/* 070A7C 7F03BF4C 00000000 */ nop +/* 070A80 7F03BF50 4616903E */ c.le.s $f18, $f22 +/* 070A84 7F03BF54 27A5009C */ addiu $a1, $sp, 0x9c +/* 070A88 7F03BF58 27A60098 */ addiu $a2, $sp, 0x98 +/* 070A8C 7F03BF5C 24070002 */ li $a3, 2 +/* 070A90 7F03BF60 45000046 */ bc1f .L7F03C07C +/* 070A94 7F03BF64 00000000 */ nop +/* 070A98 7F03BF68 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A9C 7F03BF6C 8E44001C */ lw $a0, 0x1c($s2) +/* 070AA0 7F03BF70 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 070AA4 7F03BF74 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 070AA8 7F03BF78 4616203E */ c.le.s $f4, $f22 +/* 070AAC 7F03BF7C 00000000 */ nop +/* 070AB0 7F03BF80 4500003E */ bc1f .L7F03C07C +/* 070AB4 7F03BF84 00000000 */ nop +/* 070AB8 7F03BF88 4600A207 */ neg.s $f8, $f20 +/* 070ABC 7F03BF8C 27A40090 */ addiu $a0, $sp, 0x90 +/* 070AC0 7F03BF90 4606403E */ c.le.s $f8, $f6 +/* 070AC4 7F03BF94 24190013 */ li $t9, 19 +/* 070AC8 7F03BF98 45000038 */ bc1f .L7F03C07C +/* 070ACC 7F03BF9C 00000000 */ nop +/* 070AD0 7F03BFA0 8E980014 */ lw $t8, 0x14($s4) +/* 070AD4 7F03BFA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 070AD8 7F03BFA8 44818000 */ mtc1 $at, $f16 +/* 070ADC 7F03BFAC AFB80090 */ sw $t8, 0x90($sp) +/* 070AE0 7F03BFB0 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 070AE4 7F03BFB4 8E070008 */ lw $a3, 8($s0) +/* 070AE8 7F03BFB8 8E860010 */ lw $a2, 0x10($s4) +/* 070AEC 7F03BFBC 8E850008 */ lw $a1, 8($s4) +/* 070AF0 7F03BFC0 E7B60020 */ swc1 $f22, 0x20($sp) +/* 070AF4 7F03BFC4 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 070AF8 7F03BFC8 E7B80018 */ swc1 $f24, 0x18($sp) +/* 070AFC 7F03BFCC AFB90014 */ sw $t9, 0x14($sp) +/* 070B00 7F03BFD0 E7B00024 */ swc1 $f16, 0x24($sp) +/* 070B04 7F03BFD4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 070B08 7F03BFD8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 070B0C 7F03BFDC 10400027 */ beqz $v0, .L7F03C07C +/* 070B10 7F03BFE0 8FA80090 */ lw $t0, 0x90($sp) +/* 070B14 7F03BFE4 8E090014 */ lw $t1, 0x14($s0) +/* 070B18 7F03BFE8 15090024 */ bne $t0, $t1, .L7F03C07C +/* 070B1C 7F03BFEC 00000000 */ nop +/* 070B20 7F03BFF0 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 070B24 7F03BFF4 2411000F */ li $s1, 15 +/* 070B28 7F03BFF8 24010001 */ li $at, 1 +/* 070B2C 7F03BFFC 14410003 */ bne $v0, $at, .L7F03C00C +/* 070B30 7F03C000 00000000 */ nop +/* 070B34 7F03C004 10000006 */ b .L7F03C020 +/* 070B38 7F03C008 241100C8 */ li $s1, 200 +.L7F03C00C: +/* 070B3C 7F03C00C 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 070B40 7F03C010 00000000 */ nop +/* 070B44 7F03C014 54400003 */ bnezl $v0, .L7F03C024 +/* 070B48 7F03C018 27A40084 */ addiu $a0, $sp, 0x84 +/* 070B4C 7F03C01C 241100C9 */ li $s1, 201 +.L7F03C020: +/* 070B50 7F03C020 27A40084 */ addiu $a0, $sp, 0x84 +.L7F03C024: +/* 070B54 7F03C024 02A02825 */ move $a1, $s5 +/* 070B58 7F03C028 0FC1A073 */ jal sub_GAME_7F0681CC +/* 070B5C 7F03C02C 8FA600C8 */ lw $a2, 0xc8($sp) +/* 070B60 7F03C030 0FC1E111 */ jal sub_GAME_7F078444 +/* 070B64 7F03C034 00000000 */ nop +/* 070B68 7F03C038 00402025 */ move $a0, $v0 +/* 070B6C 7F03C03C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 070B70 7F03C040 02A02825 */ move $a1, $s5 +/* 070B74 7F03C044 240A0001 */ li $t2, 1 +/* 070B78 7F03C048 AFAA0010 */ sw $t2, 0x10($sp) +/* 070B7C 7F03C04C 02402025 */ move $a0, $s2 +/* 070B80 7F03C050 02202825 */ move $a1, $s1 +/* 070B84 7F03C054 02A03025 */ move $a2, $s5 +/* 070B88 7F03C058 0FC09C9F */ jal handles_shot_actors +/* 070B8C 7F03C05C 02C03825 */ move $a3, $s6 +/* 070B90 7F03C060 10400006 */ beqz $v0, .L7F03C07C +/* 070B94 7F03C064 02C02025 */ move $a0, $s6 +/* 070B98 7F03C068 240B0001 */ li $t3, 1 +/* 070B9C 7F03C06C AFAB00BC */ sw $t3, 0xbc($sp) +/* 070BA0 7F03C070 02002825 */ move $a1, $s0 +/* 070BA4 7F03C074 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 070BA8 7F03C078 2406FFFF */ li $a2, -1 +.L7F03C07C: +/* 070BAC 7F03C07C 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 070BB0 7F03C080 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 070BB4 7F03C084 2673FFFC */ addiu $s3, $s3, -4 +/* 070BB8 7F03C088 026C082B */ sltu $at, $s3, $t4 +/* 070BBC 7F03C08C 5020FF76 */ beql $at, $zero, .L7F03BE68 +/* 070BC0 7F03C090 8E700000 */ lw $s0, ($s3) +.L7F03C094: +/* 070BC4 7F03C094 8FAD00BC */ lw $t5, 0xbc($sp) +/* 070BC8 7F03C098 24010001 */ li $at, 1 +/* 070BCC 7F03C09C 55A00008 */ bnezl $t5, .L7F03C0C0 +/* 070BD0 7F03C0A0 8FBF0064 */ lw $ra, 0x64($sp) +/* 070BD4 7F03C0A4 16C10005 */ bne $s6, $at, .L7F03C0BC +/* 070BD8 7F03C0A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 070BDC 7F03C0AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 070BE0 7F03C0B0 24050069 */ li $a1, 105 +/* 070BE4 7F03C0B4 0C002382 */ jal play_sfx_a1 +/* 070BE8 7F03C0B8 00003025 */ move $a2, $zero +.L7F03C0BC: +/* 070BEC 7F03C0BC 8FBF0064 */ lw $ra, 0x64($sp) +.L7F03C0C0: +/* 070BF0 7F03C0C0 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 070BF4 7F03C0C4 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 070BF8 7F03C0C8 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 070BFC 7F03C0CC 8FB00048 */ lw $s0, 0x48($sp) +/* 070C00 7F03C0D0 8FB1004C */ lw $s1, 0x4c($sp) +/* 070C04 7F03C0D4 8FB20050 */ lw $s2, 0x50($sp) +/* 070C08 7F03C0D8 8FB30054 */ lw $s3, 0x54($sp) +/* 070C0C 7F03C0DC 8FB40058 */ lw $s4, 0x58($sp) +/* 070C10 7F03C0E0 8FB5005C */ lw $s5, 0x5c($sp) +/* 070C14 7F03C0E4 8FB60060 */ lw $s6, 0x60($sp) +/* 070C18 7F03C0E8 03E00008 */ jr $ra +/* 070C1C 7F03C0EC 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C0F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C0F0 +/* 070C20 7F03C0F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 070C24 7F03C0F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 070C28 7F03C0F8 AFB00018 */ sw $s0, 0x18($sp) +/* 070C2C 7F03C0FC 0FC17722 */ jal get_hands_firing_status +/* 070C30 7F03C100 00808025 */ move $s0, $a0 +/* 070C34 7F03C104 5040005F */ beql $v0, $zero, .L7F03C284 +/* 070C38 7F03C108 8FBF001C */ lw $ra, 0x1c($sp) +/* 070C3C 7F03C10C 0FC17674 */ jal get_item_in_hand +/* 070C40 7F03C110 02002025 */ move $a0, $s0 +/* 070C44 7F03C114 2401001E */ li $at, 30 +/* 070C48 7F03C118 14410005 */ bne $v0, $at, .L7F03C130 +/* 070C4C 7F03C11C 00403025 */ move $a2, $v0 +/* 070C50 7F03C120 0FC14686 */ jal trigger_remote_mine_detonation +/* 070C54 7F03C124 00000000 */ nop +/* 070C58 7F03C128 10000056 */ b .L7F03C284 +/* 070C5C 7F03C12C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C130: +/* 070C60 7F03C130 24010018 */ li $at, 24 +/* 070C64 7F03C134 10410052 */ beq $v0, $at, .L7F03C280 +/* 070C68 7F03C138 24010019 */ li $at, 25 +/* 070C6C 7F03C13C 10410050 */ beq $v0, $at, .L7F03C280 +/* 070C70 7F03C140 2401001A */ li $at, 26 +/* 070C74 7F03C144 1041004E */ beq $v0, $at, .L7F03C280 +/* 070C78 7F03C148 24010003 */ li $at, 3 +/* 070C7C 7F03C14C 1041004C */ beq $v0, $at, .L7F03C280 +/* 070C80 7F03C150 2401001D */ li $at, 29 +/* 070C84 7F03C154 1041004A */ beq $v0, $at, .L7F03C280 +/* 070C88 7F03C158 2401001C */ li $at, 28 +/* 070C8C 7F03C15C 10410048 */ beq $v0, $at, .L7F03C280 +/* 070C90 7F03C160 2401001B */ li $at, 27 +/* 070C94 7F03C164 10410046 */ beq $v0, $at, .L7F03C280 +/* 070C98 7F03C168 24010023 */ li $at, 35 +/* 070C9C 7F03C16C 10410044 */ beq $v0, $at, .L7F03C280 +/* 070CA0 7F03C170 24010024 */ li $at, 36 +/* 070CA4 7F03C174 10410042 */ beq $v0, $at, .L7F03C280 +/* 070CA8 7F03C178 24010021 */ li $at, 33 +/* 070CAC 7F03C17C 10410040 */ beq $v0, $at, .L7F03C280 +/* 070CB0 7F03C180 2401002F */ li $at, 47 +/* 070CB4 7F03C184 1041003E */ beq $v0, $at, .L7F03C280 +/* 070CB8 7F03C188 24010030 */ li $at, 48 +/* 070CBC 7F03C18C 1041003C */ beq $v0, $at, .L7F03C280 +/* 070CC0 7F03C190 2401003D */ li $at, 61 +/* 070CC4 7F03C194 1041003A */ beq $v0, $at, .L7F03C280 +/* 070CC8 7F03C198 24010058 */ li $at, 88 +/* 070CCC 7F03C19C 10410038 */ beq $v0, $at, .L7F03C280 +/* 070CD0 7F03C1A0 24010022 */ li $at, 34 +/* 070CD4 7F03C1A4 10410036 */ beq $v0, $at, .L7F03C280 +/* 070CD8 7F03C1A8 24010020 */ li $at, 32 +/* 070CDC 7F03C1AC 54410006 */ bnel $v0, $at, .L7F03C1C8 +/* 070CE0 7F03C1B0 24010001 */ li $at, 1 +/* 070CE4 7F03C1B4 0FC17ED9 */ jal sub_GAME_7F05FB64 +/* 070CE8 7F03C1B8 02002025 */ move $a0, $s0 +/* 070CEC 7F03C1BC 10000031 */ b .L7F03C284 +/* 070CF0 7F03C1C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 070CF4 7F03C1C4 24010001 */ li $at, 1 +.L7F03C1C8: +/* 070CF8 7F03C1C8 10410004 */ beq $v0, $at, .L7F03C1DC +/* 070CFC 7F03C1CC 02002025 */ move $a0, $s0 +/* 070D00 7F03C1D0 24010002 */ li $at, 2 +/* 070D04 7F03C1D4 54410006 */ bnel $v0, $at, .L7F03C1F0 +/* 070D08 7F03C1D8 2401000F */ li $at, 15 +.L7F03C1DC: +/* 070D0C 7F03C1DC 0FC0EF7B */ jal sub_GAME_7F03BDEC +/* 070D10 7F03C1E0 00C02825 */ move $a1, $a2 +/* 070D14 7F03C1E4 10000027 */ b .L7F03C284 +/* 070D18 7F03C1E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D1C 7F03C1EC 2401000F */ li $at, 15 +.L7F03C1F0: +/* 070D20 7F03C1F0 10410004 */ beq $v0, $at, .L7F03C204 +/* 070D24 7F03C1F4 00C02025 */ move $a0, $a2 +/* 070D28 7F03C1F8 24010010 */ li $at, 16 +/* 070D2C 7F03C1FC 5441000F */ bnel $v0, $at, .L7F03C23C +/* 070D30 7F03C200 24010028 */ li $at, 40 +.L7F03C204: +/* 070D34 7F03C204 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 070D38 7F03C208 00002825 */ move $a1, $zero +/* 070D3C 7F03C20C 00001025 */ move $v0, $zero +/* 070D40 7F03C210 02002025 */ move $a0, $s0 +.L7F03C214: +/* 070D44 7F03C214 0FC0EC57 */ jal sub_GAME_7F03B15C +/* 070D48 7F03C218 AFA20020 */ sw $v0, 0x20($sp) +/* 070D4C 7F03C21C 8FA20020 */ lw $v0, 0x20($sp) +/* 070D50 7F03C220 24010005 */ li $at, 5 +/* 070D54 7F03C224 24420001 */ addiu $v0, $v0, 1 +/* 070D58 7F03C228 5441FFFA */ bnel $v0, $at, .L7F03C214 +/* 070D5C 7F03C22C 02002025 */ move $a0, $s0 +/* 070D60 7F03C230 10000014 */ b .L7F03C284 +/* 070D64 7F03C234 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D68 7F03C238 24010028 */ li $at, 40 +.L7F03C23C: +/* 070D6C 7F03C23C 54410006 */ bnel $v0, $at, .L7F03C258 +/* 070D70 7F03C240 2401003C */ li $at, 60 +/* 070D74 7F03C244 0FC15E26 */ jal sub_GAME_7F057898 +/* 070D78 7F03C248 00000000 */ nop +/* 070D7C 7F03C24C 1000000D */ b .L7F03C284 +/* 070D80 7F03C250 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D84 7F03C254 2401003C */ li $at, 60 +.L7F03C258: +/* 070D88 7F03C258 14410005 */ bne $v0, $at, .L7F03C270 +/* 070D8C 7F03C25C 00C02025 */ move $a0, $a2 +/* 070D90 7F03C260 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 070D94 7F03C264 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 070D98 7F03C268 10000005 */ b .L7F03C280 +/* 070D9C 7F03C26C ADC01270 */ sw $zero, 0x1270($t6) +.L7F03C270: +/* 070DA0 7F03C270 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 070DA4 7F03C274 00002825 */ move $a1, $zero +/* 070DA8 7F03C278 0FC0EC57 */ jal sub_GAME_7F03B15C +/* 070DAC 7F03C27C 02002025 */ move $a0, $s0 +.L7F03C280: +/* 070DB0 7F03C280 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C284: +/* 070DB4 7F03C284 8FB00018 */ lw $s0, 0x18($sp) +/* 070DB8 7F03C288 27BD0028 */ addiu $sp, $sp, 0x28 +/* 070DBC 7F03C28C 03E00008 */ jr $ra +/* 070DC0 7F03C290 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C294(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C294 +/* 070DC4 7F03C294 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 070DC8 7F03C298 AFBF0014 */ sw $ra, 0x14($sp) +/* 070DCC 7F03C29C 0FC0F03C */ jal sub_GAME_7F03C0F0 +/* 070DD0 7F03C2A0 00002025 */ move $a0, $zero +/* 070DD4 7F03C2A4 0FC0F03C */ jal sub_GAME_7F03C0F0 +/* 070DD8 7F03C2A8 24040001 */ li $a0, 1 +/* 070DDC 7F03C2AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 070DE0 7F03C2B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 070DE4 7F03C2B4 03E00008 */ jr $ra +/* 070DE8 7F03C2B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C2BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C2BC +/* 070DEC 7F03C2BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 070DF0 7F03C2C0 AFB00018 */ sw $s0, 0x18($sp) +/* 070DF4 7F03C2C4 24030001 */ li $v1, 1 +/* 070DF8 7F03C2C8 00808025 */ move $s0, $a0 +/* 070DFC 7F03C2CC 14A30029 */ bne $a1, $v1, .L7F03C374 +/* 070E00 7F03C2D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 070E04 7F03C2D4 90820000 */ lbu $v0, ($a0) +/* 070E08 7F03C2D8 24010004 */ li $at, 4 +/* 070E0C 7F03C2DC 50410004 */ beql $v0, $at, .L7F03C2F0 +/* 070E10 7F03C2E0 8E030004 */ lw $v1, 4($s0) +/* 070E14 7F03C2E4 14620019 */ bne $v1, $v0, .L7F03C34C +/* 070E18 7F03C2E8 00000000 */ nop +/* 070E1C 7F03C2EC 8E030004 */ lw $v1, 4($s0) +.L7F03C2F0: +/* 070E20 7F03C2F0 241804B0 */ li $t8, 1200 +/* 070E24 7F03C2F4 2401FFFB */ li $at, -5 +/* 070E28 7F03C2F8 906E0002 */ lbu $t6, 2($v1) +/* 070E2C 7F03C2FC 02002025 */ move $a0, $s0 +/* 070E30 7F03C300 31CF0004 */ andi $t7, $t6, 4 +/* 070E34 7F03C304 11E00011 */ beqz $t7, .L7F03C34C +/* 070E38 7F03C308 00000000 */ nop +/* 070E3C 7F03C30C A6180002 */ sh $t8, 2($s0) +/* 070E40 7F03C310 8C790064 */ lw $t9, 0x64($v1) +/* 070E44 7F03C314 906B0002 */ lbu $t3, 2($v1) +/* 070E48 7F03C318 44802000 */ mtc1 $zero, $f4 +/* 070E4C 7F03C31C 37280800 */ ori $t0, $t9, 0x800 +/* 070E50 7F03C320 AC680064 */ sw $t0, 0x64($v1) +/* 070E54 7F03C324 01015024 */ and $t2, $t0, $at +/* 070E58 7F03C328 316CFF7F */ andi $t4, $t3, 0xff7f +/* 070E5C 7F03C32C AC6A0064 */ sw $t2, 0x64($v1) +/* 070E60 7F03C330 A06C0002 */ sb $t4, 2($v1) +/* 070E64 7F03C334 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070E68 7F03C338 E4640070 */ swc1 $f4, 0x70($v1) +/* 070E6C 7F03C33C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E70 7F03C340 02002025 */ move $a0, $s0 +/* 070E74 7F03C344 10000029 */ b .L7F03C3EC +/* 070E78 7F03C348 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C34C: +/* 070E7C 7F03C34C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070E80 7F03C350 02002025 */ move $a0, $s0 +/* 070E84 7F03C354 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070E88 7F03C358 02002025 */ move $a0, $s0 +/* 070E8C 7F03C35C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E90 7F03C360 02002025 */ move $a0, $s0 +/* 070E94 7F03C364 0FC0E921 */ jal set_last_obj_pos_data +/* 070E98 7F03C368 02002025 */ move $a0, $s0 +/* 070E9C 7F03C36C 1000001F */ b .L7F03C3EC +/* 070EA0 7F03C370 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C374: +/* 070EA4 7F03C374 24010002 */ li $at, 2 +/* 070EA8 7F03C378 54A1000A */ bnel $a1, $at, .L7F03C3A4 +/* 070EAC 7F03C37C 24010004 */ li $at, 4 +/* 070EB0 7F03C380 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070EB4 7F03C384 02002025 */ move $a0, $s0 +/* 070EB8 7F03C388 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070EBC 7F03C38C 02002025 */ move $a0, $s0 +/* 070EC0 7F03C390 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EC4 7F03C394 02002025 */ move $a0, $s0 +/* 070EC8 7F03C398 10000014 */ b .L7F03C3EC +/* 070ECC 7F03C39C 8FBF001C */ lw $ra, 0x1c($sp) +/* 070ED0 7F03C3A0 24010004 */ li $at, 4 +.L7F03C3A4: +/* 070ED4 7F03C3A4 54A10011 */ bnel $a1, $at, .L7F03C3EC +/* 070ED8 7F03C3A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 070EDC 7F03C3AC 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070EE0 7F03C3B0 02002025 */ move $a0, $s0 +/* 070EE4 7F03C3B4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070EE8 7F03C3B8 02002025 */ move $a0, $s0 +/* 070EEC 7F03C3BC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EF0 7F03C3C0 02002025 */ move $a0, $s0 +/* 070EF4 7F03C3C4 0FC13011 */ jal sub_GAME_7F04C044 +/* 070EF8 7F03C3C8 02002025 */ move $a0, $s0 +/* 070EFC 7F03C3CC 0FC1033C */ jal sub_GAME_7F040CF0 +/* 070F00 7F03C3D0 02002025 */ move $a0, $s0 +/* 070F04 7F03C3D4 0FC225E6 */ jal get_curplayer_positiondata +/* 070F08 7F03C3D8 00000000 */ nop +/* 070F0C 7F03C3DC 02002025 */ move $a0, $s0 +/* 070F10 7F03C3E0 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 070F14 7F03C3E4 00402825 */ move $a1, $v0 +/* 070F18 7F03C3E8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C3EC: +/* 070F1C 7F03C3EC 8FB00018 */ lw $s0, 0x18($sp) +/* 070F20 7F03C3F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 070F24 7F03C3F4 03E00008 */ jr $ra +/* 070F28 7F03C3F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C3FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C3FC +/* 070F2C 7F03C3FC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 070F30 7F03C400 AFB00014 */ sw $s0, 0x14($sp) +/* 070F34 7F03C404 3C108007 */ lui $s0, %hi(dword_CODE_bss_80071DF0) +/* 070F38 7F03C408 8E101DF0 */ lw $s0, %lo(dword_CODE_bss_80071DF0)($s0) +/* 070F3C 7F03C40C AFB70030 */ sw $s7, 0x30($sp) +/* 070F40 7F03C410 3C178007 */ lui $s7, %hi(dword_CODE_bss_80071620) +/* 070F44 7F03C414 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 070F48 7F03C418 26F71620 */ addiu $s7, %lo(dword_CODE_bss_80071620) # addiu $s7, $s7, 0x1620 +/* 070F4C 7F03C41C AC201DF8 */ sw $zero, %lo(dword_CODE_bss_80071DF8)($at) +/* 070F50 7F03C420 2610FFFC */ addiu $s0, $s0, -4 +/* 070F54 7F03C424 0217082B */ sltu $at, $s0, $s7 +/* 070F58 7F03C428 AFBF0034 */ sw $ra, 0x34($sp) +/* 070F5C 7F03C42C AFB6002C */ sw $s6, 0x2c($sp) +/* 070F60 7F03C430 AFB50028 */ sw $s5, 0x28($sp) +/* 070F64 7F03C434 AFB40024 */ sw $s4, 0x24($sp) +/* 070F68 7F03C438 AFB30020 */ sw $s3, 0x20($sp) +/* 070F6C 7F03C43C AFB2001C */ sw $s2, 0x1c($sp) +/* 070F70 7F03C440 AFB10018 */ sw $s1, 0x18($sp) +/* 070F74 7F03C444 1420001D */ bnez $at, .L7F03C4BC +/* 070F78 7F03C448 24030001 */ li $v1, 1 +/* 070F7C 7F03C44C 24140002 */ li $s4, 2 +/* 070F80 7F03C450 24130004 */ li $s3, 4 +/* 070F84 7F03C454 24120001 */ li $s2, 1 +/* 070F88 7F03C458 24110003 */ li $s1, 3 +/* 070F8C 7F03C45C 8E040000 */ lw $a0, ($s0) +.L7F03C460: +/* 070F90 7F03C460 50800013 */ beql $a0, $zero, .L7F03C4B0 +/* 070F94 7F03C464 2610FFFC */ addiu $s0, $s0, -4 +/* 070F98 7F03C468 90820000 */ lbu $v0, ($a0) +/* 070F9C 7F03C46C 1222000E */ beq $s1, $v0, .L7F03C4A8 +/* 070FA0 7F03C470 00000000 */ nop +/* 070FA4 7F03C474 12420003 */ beq $s2, $v0, .L7F03C484 +/* 070FA8 7F03C478 00000000 */ nop +/* 070FAC 7F03C47C 16620005 */ bne $s3, $v0, .L7F03C494 +/* 070FB0 7F03C480 00000000 */ nop +.L7F03C484: +/* 070FB4 7F03C484 0FC13BD6 */ jal sub_GAME_7F04EF58 +/* 070FB8 7F03C488 00000000 */ nop +/* 070FBC 7F03C48C 10000006 */ b .L7F03C4A8 +/* 070FC0 7F03C490 00401825 */ move $v1, $v0 +.L7F03C494: +/* 070FC4 7F03C494 16820004 */ bne $s4, $v0, .L7F03C4A8 +/* 070FC8 7F03C498 00000000 */ nop +/* 070FCC 7F03C49C 0FC15601 */ jal sub_GAME_7F055804 +/* 070FD0 7F03C4A0 00000000 */ nop +/* 070FD4 7F03C4A4 00401825 */ move $v1, $v0 +.L7F03C4A8: +/* 070FD8 7F03C4A8 10600004 */ beqz $v1, .L7F03C4BC +/* 070FDC 7F03C4AC 2610FFFC */ addiu $s0, $s0, -4 +.L7F03C4B0: +/* 070FE0 7F03C4B0 0217082B */ sltu $at, $s0, $s7 +/* 070FE4 7F03C4B4 5020FFEA */ beql $at, $zero, .L7F03C460 +/* 070FE8 7F03C4B8 8E040000 */ lw $a0, ($s0) +.L7F03C4BC: +/* 070FEC 7F03C4BC 8FBF0034 */ lw $ra, 0x34($sp) +/* 070FF0 7F03C4C0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80071DF8) +/* 070FF4 7F03C4C4 8C421DF8 */ lw $v0, %lo(dword_CODE_bss_80071DF8)($v0) +/* 070FF8 7F03C4C8 8FB00014 */ lw $s0, 0x14($sp) +/* 070FFC 7F03C4CC 8FB10018 */ lw $s1, 0x18($sp) +/* 071000 7F03C4D0 8FB2001C */ lw $s2, 0x1c($sp) +/* 071004 7F03C4D4 8FB30020 */ lw $s3, 0x20($sp) +/* 071008 7F03C4D8 8FB40024 */ lw $s4, 0x24($sp) +/* 07100C 7F03C4DC 8FB50028 */ lw $s5, 0x28($sp) +/* 071010 7F03C4E0 8FB6002C */ lw $s6, 0x2c($sp) +/* 071014 7F03C4E4 8FB70030 */ lw $s7, 0x30($sp) +/* 071018 7F03C4E8 03E00008 */ jr $ra +/* 07101C 7F03C4EC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C4F0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052980*/ +glabel jpt_80052980 +.word loc_CODE_7F03C534 +.word loc_CODE_7F03C544 +.word def_7F03C52C +.word loc_CODE_7F03C534 +.word def_7F03C52C +.word def_7F03C52C +.word def_7F03C52C +.word def_7F03C52C + +.text +glabel sub_GAME_7F03C4F0 +/* 071020 7F03C4F0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071024 7F03C4F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 071028 7F03C4F8 0FC0F0FF */ jal sub_GAME_7F03C3FC +/* 07102C 7F03C4FC 00000000 */ nop +/* 071030 7F03C500 AFA2001C */ sw $v0, 0x1c($sp) +/* 071034 7F03C504 10400016 */ beqz $v0, .L7F03C560 +/* 071038 7F03C508 00002825 */ move $a1, $zero +/* 07103C 7F03C50C 904E0000 */ lbu $t6, ($v0) +/* 071040 7F03C510 25CFFFFF */ addiu $t7, $t6, -1 +/* 071044 7F03C514 2DE10008 */ sltiu $at, $t7, 8 +/* 071048 7F03C518 1020000D */ beqz $at, .L7F03C550 +/* 07104C 7F03C51C 000F7880 */ sll $t7, $t7, 2 +/* 071050 7F03C520 3C018005 */ lui $at, %hi(jpt_80052980) +/* 071054 7F03C524 002F0821 */ addu $at, $at, $t7 +/* 071058 7F03C528 8C2F2980 */ lw $t7, %lo(jpt_80052980)($at) +/* 07105C 7F03C52C 01E00008 */ jr $t7 +/* 071060 7F03C530 00000000 */ nop +loc_CODE_7F03C534: +/* 071064 7F03C534 0FC13C5C */ jal sub_GAME_7F04F170 +/* 071068 7F03C538 8FA4001C */ lw $a0, 0x1c($sp) +/* 07106C 7F03C53C 10000004 */ b .L7F03C550 +/* 071070 7F03C540 00402825 */ move $a1, $v0 +loc_CODE_7F03C544: +/* 071074 7F03C544 0FC15710 */ jal sub_GAME_7F055C40 +/* 071078 7F03C548 8FA4001C */ lw $a0, 0x1c($sp) +/* 07107C 7F03C54C 00402825 */ move $a1, $v0 +def_7F03C52C: +.L7F03C550: +/* 071080 7F03C550 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071084 7F03C554 8FA4001C */ lw $a0, 0x1c($sp) +/* 071088 7F03C558 10000002 */ b .L7F03C564 +/* 07108C 7F03C55C 00001025 */ move $v0, $zero +.L7F03C560: +/* 071090 7F03C560 24020001 */ li $v0, 1 +.L7F03C564: +/* 071094 7F03C564 8FBF0014 */ lw $ra, 0x14($sp) +/* 071098 7F03C568 27BD0020 */ addiu $sp, $sp, 0x20 +/* 07109C 7F03C56C 03E00008 */ jr $ra +/* 0710A0 7F03C570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C574(void) { + +} +#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 get_num_players +/* 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(ptr_BONDdata_p1) +/* 0710E4 7F03C5B4 4481A000 */ mtc1 $at, $f20 +/* 0710E8 7F03C5B8 26319EE0 */ addiu $s1, %lo(ptr_BONDdata_p1) # 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 + + + + + +#ifdef NONMATCHING +void handle_mp_respawn_and_some_things(void) { + +} +#else +GLOBAL_ASM( +.text +glabel handle_mp_respawn_and_some_things +/* 071178 7F03C648 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 07117C 7F03C64C AFBF0024 */ sw $ra, 0x24($sp) +/* 071180 7F03C650 AFB30020 */ sw $s3, 0x20($sp) +/* 071184 7F03C654 AFB2001C */ sw $s2, 0x1c($sp) +/* 071188 7F03C658 AFB10018 */ sw $s1, 0x18($sp) +/* 07118C 7F03C65C 0FC0CA47 */ jal sub_GAME_7F03291C +/* 071190 7F03C660 AFB00014 */ sw $s0, 0x14($sp) +/* 071194 7F03C664 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071198 7F03C668 00000000 */ nop +/* 07119C 7F03C66C 104000E9 */ beqz $v0, .L7F03CA14 +/* 0711A0 7F03C670 00408825 */ move $s1, $v0 +.L7F03C674: +/* 0711A4 7F03C674 8E2E0024 */ lw $t6, 0x24($s1) +/* 0711A8 7F03C678 24010003 */ li $at, 3 +/* 0711AC 7F03C67C 00009025 */ move $s2, $zero +/* 0711B0 7F03C680 AFAE004C */ sw $t6, 0x4c($sp) +/* 0711B4 7F03C684 92220000 */ lbu $v0, ($s1) +/* 0711B8 7F03C688 54410009 */ bnel $v0, $at, .L7F03C6B0 +/* 0711BC 7F03C68C 24010001 */ li $at, 1 +/* 0711C0 7F03C690 8E300004 */ lw $s0, 4($s1) +/* 0711C4 7F03C694 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0711C8 7F03C698 26040180 */ addiu $a0, $s0, 0x180 +/* 0711CC 7F03C69C 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0711D0 7F03C6A0 260401AC */ addiu $a0, $s0, 0x1ac +/* 0711D4 7F03C6A4 100000C7 */ b .L7F03C9C4 +/* 0711D8 7F03C6A8 24010005 */ li $at, 5 +/* 0711DC 7F03C6AC 24010001 */ li $at, 1 +.L7F03C6B0: +/* 0711E0 7F03C6B0 10410005 */ beq $v0, $at, .L7F03C6C8 +/* 0711E4 7F03C6B4 24010004 */ li $at, 4 +/* 0711E8 7F03C6B8 10410003 */ beq $v0, $at, .L7F03C6C8 +/* 0711EC 7F03C6BC 24010002 */ li $at, 2 +/* 0711F0 7F03C6C0 54410092 */ bnel $v0, $at, .L7F03C90C +/* 0711F4 7F03C6C4 24010007 */ li $at, 7 +.L7F03C6C8: +/* 0711F8 7F03C6C8 86220002 */ lh $v0, 2($s1) +/* 0711FC 7F03C6CC 8E300004 */ lw $s0, 4($s1) +/* 071200 7F03C6D0 00009825 */ move $s3, $zero +/* 071204 7F03C6D4 18400083 */ blez $v0, .L7F03C8E4 +/* 071208 7F03C6D8 2841003C */ slti $at, $v0, 0x3c +/* 07120C 7F03C6DC 14200002 */ bnez $at, .L7F03C6E8 +/* 071210 7F03C6E0 24030001 */ li $v1, 1 +/* 071214 7F03C6E4 00001825 */ move $v1, $zero +.L7F03C6E8: +/* 071218 7F03C6E8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 07121C 7F03C6EC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 071220 7F03C6F0 004FC023 */ subu $t8, $v0, $t7 +/* 071224 7F03C6F4 A6380002 */ sh $t8, 2($s1) +/* 071228 7F03C6F8 86390002 */ lh $t9, 2($s1) +/* 07122C 7F03C6FC 2B21003C */ slti $at, $t9, 0x3c +/* 071230 7F03C700 5020000B */ beql $at, $zero, .L7F03C730 +/* 071234 7F03C704 86220002 */ lh $v0, 2($s1) +/* 071238 7F03C708 14600008 */ bnez $v1, .L7F03C72C +/* 07123C 7F03C70C 02202025 */ move $a0, $s1 +/* 071240 7F03C710 0FC0F15D */ jal sub_GAME_7F03C574 +/* 071244 7F03C714 AFA30038 */ sw $v1, 0x38($sp) +/* 071248 7F03C718 14400004 */ bnez $v0, .L7F03C72C +/* 07124C 7F03C71C 8FA30038 */ lw $v1, 0x38($sp) +/* 071250 7F03C720 86280002 */ lh $t0, 2($s1) +/* 071254 7F03C724 2509003C */ addiu $t1, $t0, 0x3c +/* 071258 7F03C728 A6290002 */ sh $t1, 2($s1) +.L7F03C72C: +/* 07125C 7F03C72C 86220002 */ lh $v0, 2($s1) +.L7F03C730: +/* 071260 7F03C730 1C40000F */ bgtz $v0, .L7F03C770 +/* 071264 7F03C734 2841003C */ slti $at, $v0, 0x3c +/* 071268 7F03C738 A6200002 */ sh $zero, 2($s1) +/* 07126C 7F03C73C 920A0002 */ lbu $t2, 2($s0) +/* 071270 7F03C740 314B0010 */ andi $t3, $t2, 0x10 +/* 071274 7F03C744 51600006 */ beql $t3, $zero, .L7F03C760 +/* 071278 7F03C748 8E0E0064 */ lw $t6, 0x64($s0) +/* 07127C 7F03C74C 8E0C0064 */ lw $t4, 0x64($s0) +/* 071280 7F03C750 358D1000 */ ori $t5, $t4, 0x1000 +/* 071284 7F03C754 10000063 */ b .L7F03C8E4 +/* 071288 7F03C758 AE0D0064 */ sw $t5, 0x64($s0) +/* 07128C 7F03C75C 8E0E0064 */ lw $t6, 0x64($s0) +.L7F03C760: +/* 071290 7F03C760 2401EFFF */ li $at, -4097 +/* 071294 7F03C764 01C17824 */ and $t7, $t6, $at +/* 071298 7F03C768 1000005E */ b .L7F03C8E4 +/* 07129C 7F03C76C AE0F0064 */ sw $t7, 0x64($s0) +.L7F03C770: +/* 0712A0 7F03C770 5020005D */ beql $at, $zero, .L7F03C8E8 +/* 0712A4 7F03C774 92190003 */ lbu $t9, 3($s0) +/* 0712A8 7F03C778 5460005B */ bnezl $v1, .L7F03C8E8 +/* 0712AC 7F03C77C 92190003 */ lbu $t9, 3($s0) +/* 0712B0 7F03C780 44800000 */ mtc1 $zero, $f0 +/* 0712B4 7F03C784 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0712B8 7F03C788 46040032 */ c.eq.s $f0, $f4 +/* 0712BC 7F03C78C 00000000 */ nop +/* 0712C0 7F03C790 45020035 */ bc1fl .L7F03C868 +/* 0712C4 7F03C794 92080002 */ lbu $t0, 2($s0) +/* 0712C8 7F03C798 92180002 */ lbu $t8, 2($s0) +/* 0712CC 7F03C79C 33190080 */ andi $t9, $t8, 0x80 +/* 0712D0 7F03C7A0 57200031 */ bnezl $t9, .L7F03C868 +/* 0712D4 7F03C7A4 92080002 */ lbu $t0, 2($s0) +/* 0712D8 7F03C7A8 8E080008 */ lw $t0, 8($s0) +/* 0712DC 7F03C7AC 31098000 */ andi $t1, $t0, 0x8000 +/* 0712E0 7F03C7B0 11200023 */ beqz $t1, .L7F03C840 +/* 0712E4 7F03C7B4 00000000 */ nop +/* 0712E8 7F03C7B8 0FC0F863 */ jal sub_GAME_7F03E18C +/* 0712EC 7F03C7BC 02202025 */ move $a0, $s1 +/* 0712F0 7F03C7C0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 0712F4 7F03C7C4 02202025 */ move $a0, $s1 +/* 0712F8 7F03C7C8 8E0A0064 */ lw $t2, 0x64($s0) +/* 0712FC 7F03C7CC 2401F7FF */ li $at, -2049 +/* 071300 7F03C7D0 02202025 */ move $a0, $s1 +/* 071304 7F03C7D4 01415824 */ and $t3, $t2, $at +/* 071308 7F03C7D8 0FC15AEA */ jal sub_GAME_7F056BA8 +/* 07130C 7F03C7DC AE0B0064 */ sw $t3, 0x64($s0) +/* 071310 7F03C7E0 AFA20030 */ sw $v0, 0x30($sp) +/* 071314 7F03C7E4 860C0006 */ lh $t4, 6($s0) +/* 071318 7F03C7E8 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 07131C 7F03C7EC AFAC002C */ sw $t4, 0x2c($sp) +/* 071320 7F03C7F0 8FAD0030 */ lw $t5, 0x30($sp) +/* 071324 7F03C7F4 8FAE002C */ lw $t6, 0x2c($sp) +/* 071328 7F03C7F8 00402025 */ move $a0, $v0 +/* 07132C 7F03C7FC 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 071330 7F03C800 01AE2821 */ addu $a1, $t5, $t6 +/* 071334 7F03C804 5040002A */ beql $v0, $zero, .L7F03C8B0 +/* 071338 7F03C808 92180003 */ lbu $t8, 3($s0) +/* 07133C 7F03C80C 8C4F0010 */ lw $t7, 0x10($v0) +/* 071340 7F03C810 51E00027 */ beql $t7, $zero, .L7F03C8B0 +/* 071344 7F03C814 92180003 */ lbu $t8, 3($s0) +/* 071348 7F03C818 8E040014 */ lw $a0, 0x14($s0) +/* 07134C 7F03C81C 8C850014 */ lw $a1, 0x14($a0) +/* 071350 7F03C820 0FC1B39E */ jal set_obj_instance_controller_scale +/* 071354 7F03C824 AFA20028 */ sw $v0, 0x28($sp) +/* 071358 7F03C828 8FA30028 */ lw $v1, 0x28($sp) +/* 07135C 7F03C82C 8E040010 */ lw $a0, 0x10($s0) +/* 071360 7F03C830 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 071364 7F03C834 8C650010 */ lw $a1, 0x10($v1) +/* 071368 7F03C838 1000001C */ b .L7F03C8AC +/* 07136C 7F03C83C 24130001 */ li $s3, 1 +.L7F03C840: +/* 071370 7F03C840 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 071374 7F03C844 02202025 */ move $a0, $s1 +/* 071378 7F03C848 0FC0F84D */ jal sub_GAME_7F03E134 +/* 07137C 7F03C84C 02202025 */ move $a0, $s1 +/* 071380 7F03C850 8E180064 */ lw $t8, 0x64($s0) +/* 071384 7F03C854 2401F7FF */ li $at, -2049 +/* 071388 7F03C858 0301C824 */ and $t9, $t8, $at +/* 07138C 7F03C85C 10000013 */ b .L7F03C8AC +/* 071390 7F03C860 AE190064 */ sw $t9, 0x64($s0) +/* 071394 7F03C864 92080002 */ lbu $t0, 2($s0) +.L7F03C868: +/* 071398 7F03C868 31090008 */ andi $t1, $t0, 8 +/* 07139C 7F03C86C 51200006 */ beql $t1, $zero, .L7F03C888 +/* 0713A0 7F03C870 8E0C0008 */ lw $t4, 8($s0) +/* 0713A4 7F03C874 8E0A0008 */ lw $t2, 8($s0) +/* 0713A8 7F03C878 354B0100 */ ori $t3, $t2, 0x100 +/* 0713AC 7F03C87C 10000005 */ b .L7F03C894 +/* 0713B0 7F03C880 AE0B0008 */ sw $t3, 8($s0) +/* 0713B4 7F03C884 8E0C0008 */ lw $t4, 8($s0) +.L7F03C888: +/* 0713B8 7F03C888 2401FEFF */ li $at, -257 +/* 0713BC 7F03C88C 01816824 */ and $t5, $t4, $at +/* 0713C0 7F03C890 AE0D0008 */ sw $t5, 8($s0) +.L7F03C894: +/* 0713C4 7F03C894 920E0002 */ lbu $t6, 2($s0) +/* 0713C8 7F03C898 E6000070 */ swc1 $f0, 0x70($s0) +/* 0713CC 7F03C89C 8E040014 */ lw $a0, 0x14($s0) +/* 0713D0 7F03C8A0 31CFFF7F */ andi $t7, $t6, 0xff7f +/* 0713D4 7F03C8A4 0FC1437A */ jal sub_GAME_7F050DE8 +/* 0713D8 7F03C8A8 A20F0002 */ sb $t7, 2($s0) +.L7F03C8AC: +/* 0713DC 7F03C8AC 92180003 */ lbu $t8, 3($s0) +.L7F03C8B0: +/* 0713E0 7F03C8B0 24010015 */ li $at, 21 +/* 0713E4 7F03C8B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0713E8 7F03C8B8 17010003 */ bne $t8, $at, .L7F03C8C8 +/* 0713EC 7F03C8BC 24050052 */ li $a1, 82 +/* 0713F0 7F03C8C0 C6060080 */ lwc1 $f6, 0x80($s0) +/* 0713F4 7F03C8C4 E6060084 */ swc1 $f6, 0x84($s0) +.L7F03C8C8: +/* 0713F8 7F03C8C8 16600006 */ bnez $s3, .L7F03C8E4 +/* 0713FC 7F03C8CC 00003025 */ move $a2, $zero +/* 071400 7F03C8D0 0C002382 */ jal play_sfx_a1 +/* 071404 7F03C8D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 071408 7F03C8D8 00402025 */ move $a0, $v0 +/* 07140C 7F03C8DC 0FC14E84 */ jal sub_GAME_7F053A10 +/* 071410 7F03C8E0 26250008 */ addiu $a1, $s1, 8 +.L7F03C8E4: +/* 071414 7F03C8E4 92190003 */ lbu $t9, 3($s0) +.L7F03C8E8: +/* 071418 7F03C8E8 2401000D */ li $at, 13 +/* 07141C 7F03C8EC 57210035 */ bnel $t9, $at, .L7F03C9C4 +/* 071420 7F03C8F0 24010005 */ li $at, 5 +/* 071424 7F03C8F4 8E220004 */ lw $v0, 4($s1) +/* 071428 7F03C8F8 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 07142C 7F03C8FC 8C4400CC */ lw $a0, 0xcc($v0) +/* 071430 7F03C900 10000030 */ b .L7F03C9C4 +/* 071434 7F03C904 24010005 */ li $at, 5 +/* 071438 7F03C908 24010007 */ li $at, 7 +.L7F03C90C: +/* 07143C 7F03C90C 54410006 */ bnel $v0, $at, .L7F03C928 +/* 071440 7F03C910 24010008 */ li $at, 8 +/* 071444 7F03C914 0FC273BA */ jal sub_GAME_7F09CEE8 +/* 071448 7F03C918 02202025 */ move $a0, $s1 +/* 07144C 7F03C91C 10000028 */ b .L7F03C9C0 +/* 071450 7F03C920 00409025 */ move $s2, $v0 +/* 071454 7F03C924 24010008 */ li $at, 8 +.L7F03C928: +/* 071458 7F03C928 54410006 */ bnel $v0, $at, .L7F03C944 +/* 07145C 7F03C92C 24010006 */ li $at, 6 +/* 071460 7F03C930 0FC27A2B */ jal sub_GAME_7F09E8AC +/* 071464 7F03C934 02202025 */ move $a0, $s1 +/* 071468 7F03C938 10000021 */ b .L7F03C9C0 +/* 07146C 7F03C93C 00409025 */ move $s2, $v0 +/* 071470 7F03C940 24010006 */ li $at, 6 +.L7F03C944: +/* 071474 7F03C944 5441001F */ bnel $v0, $at, .L7F03C9C4 +/* 071478 7F03C948 24010005 */ li $at, 5 +/* 07147C 7F03C94C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 071480 7F03C950 02202025 */ move $a0, $s1 +/* 071484 7F03C954 00024080 */ sll $t0, $v0, 2 +/* 071488 7F03C958 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 07148C 7F03C95C 00882021 */ addu $a0, $a0, $t0 +/* 071490 7F03C960 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 071494 7F03C964 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 071498 7F03C968 24840A54 */ addiu $a0, $a0, 0xa54 +/* 07149C 7F03C96C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0714A0 7F03C970 02202025 */ move $a0, $s1 +/* 0714A4 7F03C974 00024880 */ sll $t1, $v0, 2 +/* 0714A8 7F03C978 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0714AC 7F03C97C 00892021 */ addu $a0, $a0, $t1 +/* 0714B0 7F03C980 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 0714B4 7F03C984 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714B8 7F03C988 24840DFC */ addiu $a0, $a0, 0xdfc +/* 0714BC 7F03C98C 8E2A0004 */ lw $t2, 4($s1) +/* 0714C0 7F03C990 5140000C */ beql $t2, $zero, .L7F03C9C4 +/* 0714C4 7F03C994 24010005 */ li $at, 5 +/* 0714C8 7F03C998 0FC26919 */ jal get_num_players +/* 0714CC 7F03C99C 00000000 */ nop +/* 0714D0 7F03C9A0 28410002 */ slti $at, $v0, 2 +/* 0714D4 7F03C9A4 54200007 */ bnezl $at, .L7F03C9C4 +/* 0714D8 7F03C9A8 24010005 */ li $at, 5 +/* 0714DC 7F03C9AC 8E300004 */ lw $s0, 4($s1) +/* 0714E0 7F03C9B0 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714E4 7F03C9B4 26040180 */ addiu $a0, $s0, 0x180 +/* 0714E8 7F03C9B8 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714EC 7F03C9BC 260401AC */ addiu $a0, $s0, 0x1ac +.L7F03C9C0: +/* 0714F0 7F03C9C0 24010005 */ li $at, 5 +.L7F03C9C4: +/* 0714F4 7F03C9C4 56410004 */ bnel $s2, $at, .L7F03C9D8 +/* 0714F8 7F03C9C8 24010003 */ li $at, 3 +/* 0714FC 7F03C9CC 1000000F */ b .L7F03CA0C +/* 071500 7F03C9D0 8FB0004C */ lw $s0, 0x4c($sp) +/* 071504 7F03C9D4 24010003 */ li $at, 3 +.L7F03C9D8: +/* 071508 7F03C9D8 16410009 */ bne $s2, $at, .L7F03CA00 +/* 07150C 7F03C9DC 8E300024 */ lw $s0, 0x24($s1) +/* 071510 7F03C9E0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 071514 7F03C9E4 02202025 */ move $a0, $s1 +/* 071518 7F03C9E8 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 07151C 7F03C9EC 02202025 */ move $a0, $s1 +/* 071520 7F03C9F0 16000006 */ bnez $s0, .L7F03CA0C +/* 071524 7F03C9F4 00000000 */ nop +/* 071528 7F03C9F8 10000004 */ b .L7F03CA0C +/* 07152C 7F03C9FC 02208025 */ move $s0, $s1 +.L7F03CA00: +/* 071530 7F03CA00 02202025 */ move $a0, $s1 +/* 071534 7F03CA04 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071538 7F03CA08 02402825 */ move $a1, $s2 +.L7F03CA0C: +/* 07153C 7F03CA0C 1600FF19 */ bnez $s0, .L7F03C674 +/* 071540 7F03CA10 02008825 */ move $s1, $s0 +.L7F03CA14: +/* 071544 7F03CA14 8FBF0024 */ lw $ra, 0x24($sp) +/* 071548 7F03CA18 8FB00014 */ lw $s0, 0x14($sp) +/* 07154C 7F03CA1C 8FB10018 */ lw $s1, 0x18($sp) +/* 071550 7F03CA20 8FB2001C */ lw $s2, 0x1c($sp) +/* 071554 7F03CA24 8FB30020 */ lw $s3, 0x20($sp) +/* 071558 7F03CA28 03E00008 */ jr $ra +/* 07155C 7F03CA2C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void determing_type_of_object_and_detection(void) { + +} +#else +GLOBAL_ASM( +.text +glabel determing_type_of_object_and_detection +/* 071560 7F03CA30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 071564 7F03CA34 AFBF0024 */ sw $ra, 0x24($sp) +/* 071568 7F03CA38 AFB30020 */ sw $s3, 0x20($sp) +/* 07156C 7F03CA3C AFB2001C */ sw $s2, 0x1c($sp) +/* 071570 7F03CA40 AFB10018 */ sw $s1, 0x18($sp) +/* 071574 7F03CA44 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071578 7F03CA48 AFB00014 */ sw $s0, 0x14($sp) +/* 07157C 7F03CA4C 1040003C */ beqz $v0, .L7F03CB40 +/* 071580 7F03CA50 00408025 */ move $s0, $v0 +/* 071584 7F03CA54 24130003 */ li $s3, 3 +.L7F03CA58: +/* 071588 7F03CA58 92020000 */ lbu $v0, ($s0) +/* 07158C 7F03CA5C 00002825 */ move $a1, $zero +/* 071590 7F03CA60 8E120024 */ lw $s2, 0x24($s0) +/* 071594 7F03CA64 16620005 */ bne $s3, $v0, .L7F03CA7C +/* 071598 7F03CA68 24010001 */ li $at, 1 +/* 07159C 7F03CA6C 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0715A0 7F03CA70 02002025 */ move $a0, $s0 +/* 0715A4 7F03CA74 1000001F */ b .L7F03CAF4 +/* 0715A8 7F03CA78 00402825 */ move $a1, $v0 +.L7F03CA7C: +/* 0715AC 7F03CA7C 10410005 */ beq $v0, $at, .L7F03CA94 +/* 0715B0 7F03CA80 24010004 */ li $at, 4 +/* 0715B4 7F03CA84 10410003 */ beq $v0, $at, .L7F03CA94 +/* 0715B8 7F03CA88 24010002 */ li $at, 2 +/* 0715BC 7F03CA8C 54410006 */ bnel $v0, $at, .L7F03CAA8 +/* 0715C0 7F03CA90 24010007 */ li $at, 7 +.L7F03CA94: +/* 0715C4 7F03CA94 0FC114B5 */ jal object_interaction +/* 0715C8 7F03CA98 02002025 */ move $a0, $s0 +/* 0715CC 7F03CA9C 10000015 */ b .L7F03CAF4 +/* 0715D0 7F03CAA0 00402825 */ move $a1, $v0 +/* 0715D4 7F03CAA4 24010007 */ li $at, 7 +.L7F03CAA8: +/* 0715D8 7F03CAA8 54410006 */ bnel $v0, $at, .L7F03CAC4 +/* 0715DC 7F03CAAC 24010008 */ li $at, 8 +/* 0715E0 7F03CAB0 0FC2753B */ jal sub_GAME_7F09D4EC +/* 0715E4 7F03CAB4 02002025 */ move $a0, $s0 +/* 0715E8 7F03CAB8 1000000E */ b .L7F03CAF4 +/* 0715EC 7F03CABC 00402825 */ move $a1, $v0 +/* 0715F0 7F03CAC0 24010008 */ li $at, 8 +.L7F03CAC4: +/* 0715F4 7F03CAC4 54410006 */ bnel $v0, $at, .L7F03CAE0 +/* 0715F8 7F03CAC8 24010006 */ li $at, 6 +/* 0715FC 7F03CACC 0FC27BE7 */ jal sub_GAME_7F09EF9C +/* 071600 7F03CAD0 02002025 */ move $a0, $s0 +/* 071604 7F03CAD4 10000007 */ b .L7F03CAF4 +/* 071608 7F03CAD8 00402825 */ move $a1, $v0 +/* 07160C 7F03CADC 24010006 */ li $at, 6 +.L7F03CAE0: +/* 071610 7F03CAE0 54410005 */ bnel $v0, $at, .L7F03CAF8 +/* 071614 7F03CAE4 24010005 */ li $at, 5 +/* 071618 7F03CAE8 0FC22C3C */ jal sub_GAME_7F08B0F0 +/* 07161C 7F03CAEC 02002025 */ move $a0, $s0 +/* 071620 7F03CAF0 00402825 */ move $a1, $v0 +.L7F03CAF4: +/* 071624 7F03CAF4 24010005 */ li $at, 5 +.L7F03CAF8: +/* 071628 7F03CAF8 14A10003 */ bne $a1, $at, .L7F03CB08 +/* 07162C 7F03CAFC 00000000 */ nop +/* 071630 7F03CB00 1000000D */ b .L7F03CB38 +/* 071634 7F03CB04 02408825 */ move $s1, $s2 +.L7F03CB08: +/* 071638 7F03CB08 14B30009 */ bne $a1, $s3, .L7F03CB30 +/* 07163C 7F03CB0C 8E110024 */ lw $s1, 0x24($s0) +/* 071640 7F03CB10 0FC0E94E */ jal sub_GAME_7F03A538 +/* 071644 7F03CB14 02002025 */ move $a0, $s0 +/* 071648 7F03CB18 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 07164C 7F03CB1C 02002025 */ move $a0, $s0 +/* 071650 7F03CB20 16200005 */ bnez $s1, .L7F03CB38 +/* 071654 7F03CB24 00000000 */ nop +/* 071658 7F03CB28 10000003 */ b .L7F03CB38 +/* 07165C 7F03CB2C 02008825 */ move $s1, $s0 +.L7F03CB30: +/* 071660 7F03CB30 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071664 7F03CB34 02002025 */ move $a0, $s0 +.L7F03CB38: +/* 071668 7F03CB38 1620FFC7 */ bnez $s1, .L7F03CA58 +/* 07166C 7F03CB3C 02208025 */ move $s0, $s1 +.L7F03CB40: +/* 071670 7F03CB40 0FC26C54 */ jal get_cur_playernum +/* 071674 7F03CB44 00000000 */ nop +/* 071678 7F03CB48 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 07167C 7F03CB4C 00402025 */ move $a0, $v0 +/* 071680 7F03CB50 54400008 */ bnezl $v0, .L7F03CB74 +/* 071684 7F03CB54 8FBF0024 */ lw $ra, 0x24($sp) +/* 071688 7F03CB58 0FC1597C */ jal handle_alarm_gas_timer_calldamage +/* 07168C 7F03CB5C 00000000 */ nop +/* 071690 7F03CB60 0FC0D239 */ jal loop_set_sound_effect_all_slots +/* 071694 7F03CB64 00000000 */ nop +/* 071698 7F03CB68 0FC0F93C */ jal sub_GAME_7F03E4F0 +/* 07169C 7F03CB6C 00000000 */ nop +/* 0716A0 7F03CB70 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03CB74: +/* 0716A4 7F03CB74 8FB00014 */ lw $s0, 0x14($sp) +/* 0716A8 7F03CB78 8FB10018 */ lw $s1, 0x18($sp) +/* 0716AC 7F03CB7C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0716B0 7F03CB80 8FB30020 */ lw $s3, 0x20($sp) +/* 0716B4 7F03CB84 03E00008 */ jr $ra +/* 0716B8 7F03CB88 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CB8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CB8C +/* 0716BC 7F03CB8C 8C820014 */ lw $v0, 0x14($a0) +/* 0716C0 7F03CB90 240EFFFF */ li $t6, -1 +/* 0716C4 7F03CB94 54400004 */ bnezl $v0, .L7F03CBA8 +/* 0716C8 7F03CB98 908F0000 */ lbu $t7, ($a0) +/* 0716CC 7F03CB9C 03E00008 */ jr $ra +/* 0716D0 7F03CBA0 ACAE0000 */ sw $t6, ($a1) + +/* 0716D4 7F03CBA4 908F0000 */ lbu $t7, ($a0) +.L7F03CBA8: +/* 0716D8 7F03CBA8 24010006 */ li $at, 6 +/* 0716DC 7F03CBAC 240BFFFF */ li $t3, -1 +/* 0716E0 7F03CBB0 55E1000A */ bnel $t7, $at, .L7F03CBDC +/* 0716E4 7F03CBB4 908A002C */ lbu $t2, 0x2c($a0) +/* 0716E8 7F03CBB8 8C980004 */ lw $t8, 4($a0) +/* 0716EC 7F03CBBC 2409FFFF */ li $t1, -1 +/* 0716F0 7F03CBC0 57000006 */ bnezl $t8, .L7F03CBDC +/* 0716F4 7F03CBC4 908A002C */ lbu $t2, 0x2c($a0) +/* 0716F8 7F03CBC8 90590003 */ lbu $t9, 3($v0) +/* 0716FC 7F03CBCC ACA90004 */ sw $t1, 4($a1) +/* 071700 7F03CBD0 03E00008 */ jr $ra +/* 071704 7F03CBD4 ACB90000 */ sw $t9, ($a1) + +/* 071708 7F03CBD8 908A002C */ lbu $t2, 0x2c($a0) +.L7F03CBDC: +/* 07170C 7F03CBDC 240800FF */ li $t0, 255 +/* 071710 7F03CBE0 00001025 */ move $v0, $zero +/* 071714 7F03CBE4 110A0009 */ beq $t0, $t2, .L7F03CC0C +/* 071718 7F03CBE8 00A01825 */ move $v1, $a1 +/* 07171C 7F03CBEC 00803025 */ move $a2, $a0 +/* 071720 7F03CBF0 9087002C */ lbu $a3, 0x2c($a0) +.L7F03CBF4: +/* 071724 7F03CBF4 AC670000 */ sw $a3, ($v1) +/* 071728 7F03CBF8 90C7002D */ lbu $a3, 0x2d($a2) +/* 07172C 7F03CBFC 24420001 */ addiu $v0, $v0, 1 +/* 071730 7F03CC00 24630004 */ addiu $v1, $v1, 4 +/* 071734 7F03CC04 1507FFFB */ bne $t0, $a3, .L7F03CBF4 +/* 071738 7F03CC08 24C60001 */ addiu $a2, $a2, 1 +.L7F03CC0C: +/* 07173C 7F03CC0C 00026080 */ sll $t4, $v0, 2 +/* 071740 7F03CC10 00AC6821 */ addu $t5, $a1, $t4 +/* 071744 7F03CC14 ADAB0000 */ sw $t3, ($t5) +/* 071748 7F03CC18 03E00008 */ jr $ra +/* 07174C 7F03CC1C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CC20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CC20 +/* 071750 7F03CC20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071754 7F03CC24 AFBF001C */ sw $ra, 0x1c($sp) +/* 071758 7F03CC28 ACA00000 */ sw $zero, ($a1) +/* 07175C 7F03CC2C ACC00000 */ sw $zero, ($a2) +/* 071760 7F03CC30 90820000 */ lbu $v0, ($a0) +/* 071764 7F03CC34 24010003 */ li $at, 3 +/* 071768 7F03CC38 8FAE0030 */ lw $t6, 0x30($sp) +/* 07176C 7F03CC3C 54410006 */ bnel $v0, $at, .L7F03CC58 +/* 071770 7F03CC40 24010006 */ li $at, 6 +/* 071774 7F03CC44 0FC08C23 */ jal sub_GAME_7F02308C +/* 071778 7F03CC48 AFAE0010 */ sw $t6, 0x10($sp) +/* 07177C 7F03CC4C 10000015 */ b .L7F03CCA4 +/* 071780 7F03CC50 8FBF001C */ lw $ra, 0x1c($sp) +/* 071784 7F03CC54 24010006 */ li $at, 6 +.L7F03CC58: +/* 071788 7F03CC58 14410005 */ bne $v0, $at, .L7F03CC70 +/* 07178C 7F03CC5C 8FAF0030 */ lw $t7, 0x30($sp) +/* 071790 7F03CC60 0FC2282C */ jal sub_GAME_7F08A0B0 +/* 071794 7F03CC64 AFAF0010 */ sw $t7, 0x10($sp) +/* 071798 7F03CC68 1000000E */ b .L7F03CCA4 +/* 07179C 7F03CC6C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CC70: +/* 0717A0 7F03CC70 24010004 */ li $at, 4 +/* 0717A4 7F03CC74 1041000A */ beq $v0, $at, .L7F03CCA0 +/* 0717A8 7F03CC78 24010001 */ li $at, 1 +/* 0717AC 7F03CC7C 10410004 */ beq $v0, $at, .L7F03CC90 +/* 0717B0 7F03CC80 8FB80030 */ lw $t8, 0x30($sp) +/* 0717B4 7F03CC84 24010002 */ li $at, 2 +/* 0717B8 7F03CC88 14410005 */ bne $v0, $at, .L7F03CCA0 +/* 0717BC 7F03CC8C 00000000 */ nop +.L7F03CC90: +/* 0717C0 7F03CC90 0FC13C91 */ jal sub_GAME_7F04F244 +/* 0717C4 7F03CC94 AFB80010 */ sw $t8, 0x10($sp) +/* 0717C8 7F03CC98 10000002 */ b .L7F03CCA4 +/* 0717CC 7F03CC9C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CCA0: +/* 0717D0 7F03CCA0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CCA4: +/* 0717D4 7F03CCA4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0717D8 7F03CCA8 03E00008 */ jr $ra +/* 0717DC 7F03CCAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CCB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CCB0 +/* 0717E0 7F03CCB0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0717E4 7F03CCB4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0717E8 7F03CCB8 27AE0020 */ addiu $t6, $sp, 0x20 +/* 0717EC 7F03CCBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0717F0 7F03CCC0 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0717F4 7F03CCC4 27A70024 */ addiu $a3, $sp, 0x24 +/* 0717F8 7F03CCC8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0717FC 7F03CCCC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 071800 7F03CCD0 03E00008 */ jr $ra +/* 071804 7F03CCD4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CCD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CCD8 +/* 071808 7F03CCD8 1CC00003 */ bgtz $a2, .L7F03CCE8 +/* 07180C 7F03CCDC 2402FFFF */ li $v0, -1 +/* 071810 7F03CCE0 03E00008 */ jr $ra +/* 071814 7F03CCE4 00001025 */ move $v0, $zero + +.L7F03CCE8: +/* 071818 7F03CCE8 18C000A4 */ blez $a2, .L7F03CF7C +/* 07181C 7F03CCEC 00001825 */ move $v1, $zero +/* 071820 7F03CCF0 30C70001 */ andi $a3, $a2, 1 +/* 071824 7F03CCF4 10E00029 */ beqz $a3, .L7F03CD9C +/* 071828 7F03CCF8 2409FFFF */ li $t1, -1 +/* 07182C 7F03CCFC 240E0001 */ li $t6, 1 +/* 071830 7F03CD00 01C6001A */ div $zero, $t6, $a2 +/* 071834 7F03CD04 00007810 */ mfhi $t7 +/* 071838 7F03CD08 000FC0C0 */ sll $t8, $t7, 3 +/* 07183C 7F03CD0C 00B81821 */ addu $v1, $a1, $t8 +/* 071840 7F03CD10 C4640004 */ lwc1 $f4, 4($v1) +/* 071844 7F03CD14 C4A20004 */ lwc1 $f2, 4($a1) +/* 071848 7F03CD18 C4AC0000 */ lwc1 $f12, ($a1) +/* 07184C 7F03CD1C C4880000 */ lwc1 $f8, ($a0) +/* 071850 7F03CD20 46022181 */ sub.s $f6, $f4, $f2 +/* 071854 7F03CD24 44809000 */ mtc1 $zero, $f18 +/* 071858 7F03CD28 14C00002 */ bnez $a2, .L7F03CD34 +/* 07185C 7F03CD2C 00000000 */ nop +/* 071860 7F03CD30 0007000D */ break 7 +.L7F03CD34: +/* 071864 7F03CD34 2401FFFF */ li $at, -1 +/* 071868 7F03CD38 14C10004 */ bne $a2, $at, .L7F03CD4C +/* 07186C 7F03CD3C 3C018000 */ lui $at, 0x8000 +/* 071870 7F03CD40 15C10002 */ bne $t6, $at, .L7F03CD4C +/* 071874 7F03CD44 00000000 */ nop +/* 071878 7F03CD48 0006000D */ break 6 +.L7F03CD4C: +/* 07187C 7F03CD4C 460C4281 */ sub.s $f10, $f8, $f12 +/* 071880 7F03CD50 C4880008 */ lwc1 $f8, 8($a0) +/* 071884 7F03CD54 00A03825 */ move $a3, $a1 +/* 071888 7F03CD58 460A3102 */ mul.s $f4, $f6, $f10 +/* 07188C 7F03CD5C C46A0000 */ lwc1 $f10, ($v1) +/* 071890 7F03CD60 46024181 */ sub.s $f6, $f8, $f2 +/* 071894 7F03CD64 24030001 */ li $v1, 1 +/* 071898 7F03CD68 460C5201 */ sub.s $f8, $f10, $f12 +/* 07189C 7F03CD6C 46083282 */ mul.s $f10, $f6, $f8 +/* 0718A0 7F03CD70 460A2001 */ sub.s $f0, $f4, $f10 +/* 0718A4 7F03CD74 46120032 */ c.eq.s $f0, $f18 +/* 0718A8 7F03CD78 00000000 */ nop +/* 0718AC 7F03CD7C 45010006 */ bc1t .L7F03CD98 +/* 0718B0 7F03CD80 00000000 */ nop +/* 0718B4 7F03CD84 4600903C */ c.lt.s $f18, $f0 +/* 0718B8 7F03CD88 00001025 */ move $v0, $zero +/* 0718BC 7F03CD8C 45000002 */ bc1f .L7F03CD98 +/* 0718C0 7F03CD90 00000000 */ nop +/* 0718C4 7F03CD94 24020001 */ li $v0, 1 +.L7F03CD98: +/* 0718C8 7F03CD98 10660078 */ beq $v1, $a2, .L7F03CF7C +.L7F03CD9C: +/* 0718CC 7F03CD9C 0003C8C0 */ sll $t9, $v1, 3 +/* 0718D0 7F03CDA0 44809000 */ mtc1 $zero, $f18 +/* 0718D4 7F03CDA4 00B93821 */ addu $a3, $a1, $t9 +/* 0718D8 7F03CDA8 C48C0000 */ lwc1 $f12, ($a0) +/* 0718DC 7F03CDAC C4900008 */ lwc1 $f16, 8($a0) +.L7F03CDB0: +/* 0718E0 7F03CDB0 246A0001 */ addiu $t2, $v1, 1 +/* 0718E4 7F03CDB4 0146001A */ div $zero, $t2, $a2 +/* 0718E8 7F03CDB8 00005810 */ mfhi $t3 +/* 0718EC 7F03CDBC 000B60C0 */ sll $t4, $t3, 3 +/* 0718F0 7F03CDC0 00AC2021 */ addu $a0, $a1, $t4 +/* 0718F4 7F03CDC4 C4860004 */ lwc1 $f6, 4($a0) +/* 0718F8 7F03CDC8 C4E20004 */ lwc1 $f2, 4($a3) +/* 0718FC 7F03CDCC C4EE0000 */ lwc1 $f14, ($a3) +/* 071900 7F03CDD0 14C00002 */ bnez $a2, .L7F03CDDC +/* 071904 7F03CDD4 00000000 */ nop +/* 071908 7F03CDD8 0007000D */ break 7 +.L7F03CDDC: +/* 07190C 7F03CDDC 2401FFFF */ li $at, -1 +/* 071910 7F03CDE0 14C10004 */ bne $a2, $at, .L7F03CDF4 +/* 071914 7F03CDE4 3C018000 */ lui $at, 0x8000 +/* 071918 7F03CDE8 15410002 */ bne $t2, $at, .L7F03CDF4 +/* 07191C 7F03CDEC 00000000 */ nop +/* 071920 7F03CDF0 0006000D */ break 6 +.L7F03CDF4: +/* 071924 7F03CDF4 46023201 */ sub.s $f8, $f6, $f2 +/* 071928 7F03CDF8 460E6101 */ sub.s $f4, $f12, $f14 +/* 07192C 7F03CDFC 46028181 */ sub.s $f6, $f16, $f2 +/* 071930 7F03CE00 46044282 */ mul.s $f10, $f8, $f4 +/* 071934 7F03CE04 C4880000 */ lwc1 $f8, ($a0) +/* 071938 7F03CE08 24640002 */ addiu $a0, $v1, 2 +/* 07193C 7F03CE0C 460E4101 */ sub.s $f4, $f8, $f14 +/* 071940 7F03CE10 46043202 */ mul.s $f8, $f6, $f4 +/* 071944 7F03CE14 46085001 */ sub.s $f0, $f10, $f8 +/* 071948 7F03CE18 46120032 */ c.eq.s $f0, $f18 +/* 07194C 7F03CE1C 00000000 */ nop +/* 071950 7F03CE20 4501001C */ bc1t .L7F03CE94 +/* 071954 7F03CE24 00000000 */ nop +/* 071958 7F03CE28 50600004 */ beql $v1, $zero, .L7F03CE3C +/* 07195C 7F03CE2C 4600903C */ c.lt.s $f18, $f0 +/* 071960 7F03CE30 04410008 */ bgez $v0, .L7F03CE54 +/* 071964 7F03CE34 00000000 */ nop +/* 071968 7F03CE38 4600903C */ c.lt.s $f18, $f0 +.L7F03CE3C: +/* 07196C 7F03CE3C 00001025 */ move $v0, $zero +/* 071970 7F03CE40 45000014 */ bc1f .L7F03CE94 +/* 071974 7F03CE44 00000000 */ nop +/* 071978 7F03CE48 24020001 */ li $v0, 1 +/* 07197C 7F03CE4C 10000011 */ b .L7F03CE94 +/* 071980 7F03CE50 00000000 */ nop +.L7F03CE54: +/* 071984 7F03CE54 10400007 */ beqz $v0, .L7F03CE74 +/* 071988 7F03CE58 00000000 */ nop +/* 07198C 7F03CE5C 4612003C */ c.lt.s $f0, $f18 +/* 071990 7F03CE60 00000000 */ nop +/* 071994 7F03CE64 45000003 */ bc1f .L7F03CE74 +/* 071998 7F03CE68 00000000 */ nop +/* 07199C 7F03CE6C 03E00008 */ jr $ra +/* 0719A0 7F03CE70 00001025 */ move $v0, $zero + +.L7F03CE74: +/* 0719A4 7F03CE74 14400007 */ bnez $v0, .L7F03CE94 +/* 0719A8 7F03CE78 00000000 */ nop +/* 0719AC 7F03CE7C 4600903C */ c.lt.s $f18, $f0 +/* 0719B0 7F03CE80 00000000 */ nop +/* 0719B4 7F03CE84 45000003 */ bc1f .L7F03CE94 +/* 0719B8 7F03CE88 00000000 */ nop +/* 0719BC 7F03CE8C 03E00008 */ jr $ra +/* 0719C0 7F03CE90 00001025 */ move $v0, $zero + +.L7F03CE94: +/* 0719C4 7F03CE94 0086001A */ div $zero, $a0, $a2 +/* 0719C8 7F03CE98 00006810 */ mfhi $t5 +/* 0719CC 7F03CE9C 000D70C0 */ sll $t6, $t5, 3 +/* 0719D0 7F03CEA0 00AE4021 */ addu $t0, $a1, $t6 +/* 0719D4 7F03CEA4 C5060004 */ lwc1 $f6, 4($t0) +/* 0719D8 7F03CEA8 C4E2000C */ lwc1 $f2, 0xc($a3) +/* 0719DC 7F03CEAC C4EE0008 */ lwc1 $f14, 8($a3) +/* 0719E0 7F03CEB0 14C00002 */ bnez $a2, .L7F03CEBC +/* 0719E4 7F03CEB4 00000000 */ nop +/* 0719E8 7F03CEB8 0007000D */ break 7 +.L7F03CEBC: +/* 0719EC 7F03CEBC 2401FFFF */ li $at, -1 +/* 0719F0 7F03CEC0 14C10004 */ bne $a2, $at, .L7F03CED4 +/* 0719F4 7F03CEC4 3C018000 */ lui $at, 0x8000 +/* 0719F8 7F03CEC8 14810002 */ bne $a0, $at, .L7F03CED4 +/* 0719FC 7F03CECC 00000000 */ nop +/* 071A00 7F03CED0 0006000D */ break 6 +.L7F03CED4: +/* 071A04 7F03CED4 46023101 */ sub.s $f4, $f6, $f2 +/* 071A08 7F03CED8 24E70010 */ addiu $a3, $a3, 0x10 +/* 071A0C 7F03CEDC 460E6281 */ sub.s $f10, $f12, $f14 +/* 071A10 7F03CEE0 46028181 */ sub.s $f6, $f16, $f2 +/* 071A14 7F03CEE4 460A2202 */ mul.s $f8, $f4, $f10 +/* 071A18 7F03CEE8 C5040000 */ lwc1 $f4, ($t0) +/* 071A1C 7F03CEEC 460E2281 */ sub.s $f10, $f4, $f14 +/* 071A20 7F03CEF0 460A3102 */ mul.s $f4, $f6, $f10 +/* 071A24 7F03CEF4 46044001 */ sub.s $f0, $f8, $f4 +/* 071A28 7F03CEF8 46120032 */ c.eq.s $f0, $f18 +/* 071A2C 7F03CEFC 00000000 */ nop +/* 071A30 7F03CF00 4501001C */ bc1t .L7F03CF74 +/* 071A34 7F03CF04 00000000 */ nop +/* 071A38 7F03CF08 50690004 */ beql $v1, $t1, .L7F03CF1C +/* 071A3C 7F03CF0C 4600903C */ c.lt.s $f18, $f0 +/* 071A40 7F03CF10 04410008 */ bgez $v0, .L7F03CF34 +/* 071A44 7F03CF14 00000000 */ nop +/* 071A48 7F03CF18 4600903C */ c.lt.s $f18, $f0 +.L7F03CF1C: +/* 071A4C 7F03CF1C 00001025 */ move $v0, $zero +/* 071A50 7F03CF20 45000014 */ bc1f .L7F03CF74 +/* 071A54 7F03CF24 00000000 */ nop +/* 071A58 7F03CF28 24020001 */ li $v0, 1 +/* 071A5C 7F03CF2C 10000011 */ b .L7F03CF74 +/* 071A60 7F03CF30 00000000 */ nop +.L7F03CF34: +/* 071A64 7F03CF34 10400007 */ beqz $v0, .L7F03CF54 +/* 071A68 7F03CF38 00000000 */ nop +/* 071A6C 7F03CF3C 4612003C */ c.lt.s $f0, $f18 +/* 071A70 7F03CF40 00000000 */ nop +/* 071A74 7F03CF44 45000003 */ bc1f .L7F03CF54 +/* 071A78 7F03CF48 00000000 */ nop +/* 071A7C 7F03CF4C 03E00008 */ jr $ra +/* 071A80 7F03CF50 00001025 */ move $v0, $zero + +.L7F03CF54: +/* 071A84 7F03CF54 14400007 */ bnez $v0, .L7F03CF74 +/* 071A88 7F03CF58 00000000 */ nop +/* 071A8C 7F03CF5C 4600903C */ c.lt.s $f18, $f0 +/* 071A90 7F03CF60 00000000 */ nop +/* 071A94 7F03CF64 45000003 */ bc1f .L7F03CF74 +/* 071A98 7F03CF68 00000000 */ nop +/* 071A9C 7F03CF6C 03E00008 */ jr $ra +/* 071AA0 7F03CF70 00001025 */ move $v0, $zero + +.L7F03CF74: +/* 071AA4 7F03CF74 1486FF8E */ bne $a0, $a2, .L7F03CDB0 +/* 071AA8 7F03CF78 00801825 */ move $v1, $a0 +.L7F03CF7C: +/* 071AAC 7F03CF7C 24020001 */ li $v0, 1 +/* 071AB0 7F03CF80 03E00008 */ jr $ra +/* 071AB4 7F03CF84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CF88(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CF88 +/* 071AB8 7F03CF88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071ABC 7F03CF8C AFBF0014 */ sw $ra, 0x14($sp) +/* 071AC0 7F03CF90 90820000 */ lbu $v0, ($a0) +/* 071AC4 7F03CF94 24010003 */ li $at, 3 +/* 071AC8 7F03CF98 54410006 */ bnel $v0, $at, .L7F03CFB4 +/* 071ACC 7F03CF9C 24010006 */ li $at, 6 +/* 071AD0 7F03CFA0 0FC08C58 */ jal sub_GAME_7F023160 +/* 071AD4 7F03CFA4 00000000 */ nop +/* 071AD8 7F03CFA8 1000000C */ b .L7F03CFDC +/* 071ADC 7F03CFAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 071AE0 7F03CFB0 24010006 */ li $at, 6 +.L7F03CFB4: +/* 071AE4 7F03CFB4 54410006 */ bnel $v0, $at, .L7F03CFD0 +/* 071AE8 7F03CFB8 44802000 */ mtc1 $zero, $f4 +/* 071AEC 7F03CFBC 0FC2289D */ jal sub_GAME_7F08A274 +/* 071AF0 7F03CFC0 00000000 */ nop +/* 071AF4 7F03CFC4 10000005 */ b .L7F03CFDC +/* 071AF8 7F03CFC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 071AFC 7F03CFCC 44802000 */ mtc1 $zero, $f4 +.L7F03CFD0: +/* 071B00 7F03CFD0 00000000 */ nop +/* 071B04 7F03CFD4 E4A40000 */ swc1 $f4, ($a1) +/* 071B08 7F03CFD8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03CFDC: +/* 071B0C 7F03CFDC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071B10 7F03CFE0 03E00008 */ jr $ra +/* 071B14 7F03CFE4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CFE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CFE8 +/* 071B18 7F03CFE8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071B1C 7F03CFEC AFBF0014 */ sw $ra, 0x14($sp) +/* 071B20 7F03CFF0 90820000 */ lbu $v0, ($a0) +/* 071B24 7F03CFF4 24010003 */ li $at, 3 +/* 071B28 7F03CFF8 54410006 */ bnel $v0, $at, .L7F03D014 +/* 071B2C 7F03CFFC 24010006 */ li $at, 6 +/* 071B30 7F03D000 0FC08C62 */ jal sub_GAME_7F023188 +/* 071B34 7F03D004 00000000 */ nop +/* 071B38 7F03D008 10000010 */ b .L7F03D04C +/* 071B3C 7F03D00C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071B40 7F03D010 24010006 */ li $at, 6 +.L7F03D014: +/* 071B44 7F03D014 5441000B */ bnel $v0, $at, .L7F03D044 +/* 071B48 7F03D018 44800000 */ mtc1 $zero, $f0 +/* 071B4C 7F03D01C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 071B50 7F03D020 00000000 */ nop +/* 071B54 7F03D024 00027080 */ sll $t6, $v0, 2 +/* 071B58 7F03D028 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 071B5C 7F03D02C 008E2021 */ addu $a0, $a0, $t6 +/* 071B60 7F03D030 0FC225DE */ jal sub_GAME_7F089778 +/* 071B64 7F03D034 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 071B68 7F03D038 10000004 */ b .L7F03D04C +/* 071B6C 7F03D03C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071B70 7F03D040 44800000 */ mtc1 $zero, $f0 +.L7F03D044: +/* 071B74 7F03D044 00000000 */ nop +/* 071B78 7F03D048 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D04C: +/* 071B7C 7F03D04C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071B80 7F03D050 03E00008 */ jr $ra +/* 071B84 7F03D054 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D058(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03D058 +/* 071B88 7F03D058 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071B8C 7F03D05C AFBF0014 */ sw $ra, 0x14($sp) +/* 071B90 7F03D060 90820000 */ lbu $v0, ($a0) +/* 071B94 7F03D064 24010003 */ li $at, 3 +/* 071B98 7F03D068 00803025 */ move $a2, $a0 +/* 071B9C 7F03D06C 54410006 */ bnel $v0, $at, .L7F03D088 +/* 071BA0 7F03D070 24010006 */ li $at, 6 +/* 071BA4 7F03D074 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 071BA8 7F03D078 8C840004 */ lw $a0, 4($a0) +/* 071BAC 7F03D07C 10000012 */ b .L7F03D0C8 +/* 071BB0 7F03D080 8FBF0014 */ lw $ra, 0x14($sp) +/* 071BB4 7F03D084 24010006 */ li $at, 6 +.L7F03D088: +/* 071BB8 7F03D088 54410006 */ bnel $v0, $at, .L7F03D0A4 +/* 071BBC 7F03D08C 24010001 */ li $at, 1 +/* 071BC0 7F03D090 0FC2280F */ jal sub_GAME_7F08A03C +/* 071BC4 7F03D094 00C02025 */ move $a0, $a2 +/* 071BC8 7F03D098 1000000B */ b .L7F03D0C8 +/* 071BCC 7F03D09C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071BD0 7F03D0A0 24010001 */ li $at, 1 +.L7F03D0A4: +/* 071BD4 7F03D0A4 10410005 */ beq $v0, $at, .L7F03D0BC +/* 071BD8 7F03D0A8 24010002 */ li $at, 2 +/* 071BDC 7F03D0AC 10410003 */ beq $v0, $at, .L7F03D0BC +/* 071BE0 7F03D0B0 24010004 */ li $at, 4 +/* 071BE4 7F03D0B4 54410004 */ bnel $v0, $at, .L7F03D0C8 +/* 071BE8 7F03D0B8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D0BC: +/* 071BEC 7F03D0BC 0FC13C86 */ jal sub_GAME_7F04F218 +/* 071BF0 7F03D0C0 00C02025 */ move $a0, $a2 +/* 071BF4 7F03D0C4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D0C8: +/* 071BF8 7F03D0C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071BFC 7F03D0CC 03E00008 */ jr $ra +/* 071C00 7F03D0D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D0D4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800529A0*/ +glabel jpt_800529A0 +.word loc_CODE_7F03D144 +.word def_7F03D13C +.word def_7F03D13C +.word loc_CODE_7F03D154 +.word def_7F03D13C +.word def_7F03D13C +.word def_7F03D13C +.word def_7F03D13C +.text +glabel sub_GAME_7F03D0D4 +/* 071C04 7F03D0D4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071C08 7F03D0D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 071C0C 7F03D0DC AFB10018 */ sw $s1, 0x18($sp) +/* 071C10 7F03D0E0 0FC1F39E */ jal get_intank_flag +/* 071C14 7F03D0E4 AFB00014 */ sw $s0, 0x14($sp) +/* 071C18 7F03D0E8 14400022 */ bnez $v0, .L7F03D174 +/* 071C1C 7F03D0EC 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) +/* 071C20 7F03D0F0 8DCE64B4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) +/* 071C24 7F03D0F4 55C00020 */ bnezl $t6, .L7F03D178 +/* 071C28 7F03D0F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 071C2C 7F03D0FC 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071C30 7F03D100 00000000 */ nop +/* 071C34 7F03D104 1040001B */ beqz $v0, .L7F03D174 +/* 071C38 7F03D108 00408825 */ move $s1, $v0 +.L7F03D10C: +/* 071C3C 7F03D10C 862F0002 */ lh $t7, 2($s1) +/* 071C40 7F03D110 00002825 */ move $a1, $zero +/* 071C44 7F03D114 5DE00013 */ bgtzl $t7, .L7F03D164 +/* 071C48 7F03D118 8E300024 */ lw $s0, 0x24($s1) +/* 071C4C 7F03D11C 92380000 */ lbu $t8, ($s1) +/* 071C50 7F03D120 2719FFFF */ addiu $t9, $t8, -1 +/* 071C54 7F03D124 2F210008 */ sltiu $at, $t9, 8 +/* 071C58 7F03D128 1020000D */ beqz $at, .L7F03D160 +/* 071C5C 7F03D12C 0019C880 */ sll $t9, $t9, 2 +/* 071C60 7F03D130 3C018005 */ lui $at, %hi(jpt_800529A0) +/* 071C64 7F03D134 00390821 */ addu $at, $at, $t9 +/* 071C68 7F03D138 8C3929A0 */ lw $t9, %lo(jpt_800529A0)($at) +/* 071C6C 7F03D13C 03200008 */ jr $t9 +/* 071C70 7F03D140 00000000 */ nop +loc_CODE_7F03D144: +/* 071C74 7F03D144 0FC141B7 */ jal object_collectability_routines +/* 071C78 7F03D148 02202025 */ move $a0, $s1 +/* 071C7C 7F03D14C 10000004 */ b .L7F03D160 +/* 071C80 7F03D150 00402825 */ move $a1, $v0 +loc_CODE_7F03D154: +/* 071C84 7F03D154 0FC14955 */ jal redirect_object_collectability_routines +/* 071C88 7F03D158 02202025 */ move $a0, $s1 +/* 071C8C 7F03D15C 00402825 */ move $a1, $v0 +def_7F03D13C: +.L7F03D160: +/* 071C90 7F03D160 8E300024 */ lw $s0, 0x24($s1) +.L7F03D164: +/* 071C94 7F03D164 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071C98 7F03D168 02202025 */ move $a0, $s1 +/* 071C9C 7F03D16C 1600FFE7 */ bnez $s0, .L7F03D10C +/* 071CA0 7F03D170 02008825 */ move $s1, $s0 +.L7F03D174: +/* 071CA4 7F03D174 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03D178: +/* 071CA8 7F03D178 8FB00014 */ lw $s0, 0x14($sp) +/* 071CAC 7F03D17C 8FB10018 */ lw $s1, 0x18($sp) +/* 071CB0 7F03D180 03E00008 */ jr $ra +/* 071CB4 7F03D184 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D188(void) { + +} +#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 truncf +/* 071E68 7F03D338 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 071E6C 7F03D33C E7A00094 */ swc1 $f0, 0x94($sp) +/* 071E70 7F03D340 0FC17110 */ jal sub_GAME_7F05C440 +/* 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 get_num_players +/* 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(pPlayer) +/* 072054 7F03D524 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 072058 7F03D528 0FC225E0 */ jal sub_GAME_7F089780 +/* 07205C 7F03D52C AFAA0050 */ sw $t2, 0x50($sp) +/* 072060 7F03D530 8FA40054 */ lw $a0, 0x54($sp) +/* 072064 7F03D534 00002825 */ move $a1, $zero +/* 072068 7F03D538 0FC2280F */ jal sub_GAME_7F08A03C +/* 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 sub_GAME_7F08A03C +/* 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 +void sub_GAME_7F03D78C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03D78C +/* 0722BC 7F03D78C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0722C0 7F03D790 3C0F8003 */ lui $t7, %hi(D_80030AB0) +/* 0722C4 7F03D794 AFBF004C */ sw $ra, 0x4c($sp) +/* 0722C8 7F03D798 AFB60048 */ sw $s6, 0x48($sp) +/* 0722CC 7F03D79C AFB50044 */ sw $s5, 0x44($sp) +/* 0722D0 7F03D7A0 AFB40040 */ sw $s4, 0x40($sp) +/* 0722D4 7F03D7A4 AFB3003C */ sw $s3, 0x3c($sp) +/* 0722D8 7F03D7A8 AFB20038 */ sw $s2, 0x38($sp) +/* 0722DC 7F03D7AC AFB10034 */ sw $s1, 0x34($sp) +/* 0722E0 7F03D7B0 AFB00030 */ sw $s0, 0x30($sp) +/* 0722E4 7F03D7B4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0722E8 7F03D7B8 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0722EC 7F03D7BC 25EF0AB0 */ addiu $t7, %lo(D_80030AB0) # addiu $t7, $t7, 0xab0 +/* 0722F0 7F03D7C0 8DE10000 */ lw $at, ($t7) +/* 0722F4 7F03D7C4 8DE80004 */ lw $t0, 4($t7) +/* 0722F8 7F03D7C8 27AE009C */ addiu $t6, $sp, 0x9c +/* 0722FC 7F03D7CC 0000B025 */ move $s6, $zero +/* 072300 7F03D7D0 ADC10000 */ sw $at, ($t6) +/* 072304 7F03D7D4 0FC1F170 */ jal redirect_get_BONDdata_autoaim_y +/* 072308 7F03D7D8 ADC80004 */ sw $t0, 4($t6) +/* 07230C 7F03D7DC 10400047 */ beqz $v0, .L7F03D8FC +/* 072310 7F03D7E0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 072314 7F03D7E4 3C128007 */ lui $s2, %hi(dword_CODE_bss_80071DF0) +/* 072318 7F03D7E8 8E521DF0 */ lw $s2, %lo(dword_CODE_bss_80071DF0)($s2) +/* 07231C 7F03D7EC 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 072320 7F03D7F0 4481A000 */ mtc1 $at, $f20 +/* 072324 7F03D7F4 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 072328 7F03D7F8 2652FFFC */ addiu $s2, $s2, -4 +/* 07232C 7F03D7FC 0249082B */ sltu $at, $s2, $t1 +/* 072330 7F03D800 1420003E */ bnez $at, .L7F03D8FC +/* 072334 7F03D804 27B50078 */ addiu $s5, $sp, 0x78 +/* 072338 7F03D808 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07233C 7F03D80C 4481B000 */ mtc1 $at, $f22 +/* 072340 7F03D810 27B40080 */ addiu $s4, $sp, 0x80 +/* 072344 7F03D814 27B30088 */ addiu $s3, $sp, 0x88 +/* 072348 7F03D818 8E500000 */ lw $s0, ($s2) +.L7F03D81C: +/* 07234C 7F03D81C 12000031 */ beqz $s0, .L7F03D8E4 +/* 072350 7F03D820 00000000 */ nop +/* 072354 7F03D824 92020000 */ lbu $v0, ($s0) +/* 072358 7F03D828 24010003 */ li $at, 3 +/* 07235C 7F03D82C 1041000C */ beq $v0, $at, .L7F03D860 +/* 072360 7F03D830 24010006 */ li $at, 6 +/* 072364 7F03D834 1441002B */ bne $v0, $at, .L7F03D8E4 +/* 072368 7F03D838 00000000 */ nop +/* 07236C 7F03D83C 8E0A0004 */ lw $t2, 4($s0) +/* 072370 7F03D840 11400028 */ beqz $t2, .L7F03D8E4 +/* 072374 7F03D844 00000000 */ nop +/* 072378 7F03D848 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07237C 7F03D84C 02002025 */ move $a0, $s0 +/* 072380 7F03D850 0FC26C54 */ jal get_cur_playernum +/* 072384 7F03D854 00408825 */ move $s1, $v0 +/* 072388 7F03D858 10510022 */ beq $v0, $s1, .L7F03D8E4 +/* 07238C 7F03D85C 00000000 */ nop +.L7F03D860: +/* 072390 7F03D860 8E110004 */ lw $s1, 4($s0) +/* 072394 7F03D864 00002825 */ move $a1, $zero +/* 072398 7F03D868 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 07239C 7F03D86C 02202025 */ move $a0, $s1 +/* 0723A0 7F03D870 14400004 */ bnez $v0, .L7F03D884 +/* 0723A4 7F03D874 02202025 */ move $a0, $s1 +/* 0723A8 7F03D878 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0723AC 7F03D87C 24050001 */ li $a1, 1 +/* 0723B0 7F03D880 10400018 */ beqz $v0, .L7F03D8E4 +.L7F03D884: +/* 0723B4 7F03D884 02002025 */ move $a0, $s0 +/* 0723B8 7F03D888 02602825 */ move $a1, $s3 +/* 0723BC 7F03D88C 02803025 */ move $a2, $s4 +/* 0723C0 7F03D890 0FC08C65 */ jal sub_GAME_7F023194 +/* 0723C4 7F03D894 02A03825 */ move $a3, $s5 +/* 0723C8 7F03D898 10400012 */ beqz $v0, .L7F03D8E4 +/* 0723CC 7F03D89C 02002025 */ move $a0, $s0 +/* 0723D0 7F03D8A0 27AB006C */ addiu $t3, $sp, 0x6c +/* 0723D4 7F03D8A4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0723D8 7F03D8A8 02602825 */ move $a1, $s3 +/* 0723DC 7F03D8AC 02803025 */ move $a2, $s4 +/* 0723E0 7F03D8B0 0FC0F462 */ jal sub_GAME_7F03D188 +/* 0723E4 7F03D8B4 02A03825 */ move $a3, $s5 +/* 0723E8 7F03D8B8 4600A03C */ c.lt.s $f20, $f0 +/* 0723EC 7F03D8BC C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0723F0 7F03D8C0 45000008 */ bc1f .L7F03D8E4 +/* 0723F4 7F03D8C4 00000000 */ nop +/* 0723F8 7F03D8C8 4600B03E */ c.le.s $f22, $f0 +/* 0723FC 7F03D8CC C7A60070 */ lwc1 $f6, 0x70($sp) +/* 072400 7F03D8D0 46000506 */ mov.s $f20, $f0 +/* 072404 7F03D8D4 0200B025 */ move $s6, $s0 +/* 072408 7F03D8D8 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 07240C 7F03D8DC 45010007 */ bc1t .L7F03D8FC +/* 072410 7F03D8E0 E7A600A0 */ swc1 $f6, 0xa0($sp) +.L7F03D8E4: +/* 072414 7F03D8E4 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 072418 7F03D8E8 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 07241C 7F03D8EC 2652FFFC */ addiu $s2, $s2, -4 +/* 072420 7F03D8F0 024C082B */ sltu $at, $s2, $t4 +/* 072424 7F03D8F4 5020FFC9 */ beql $at, $zero, .L7F03D81C +/* 072428 7F03D8F8 8E500000 */ lw $s0, ($s2) +.L7F03D8FC: +/* 07242C 7F03D8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 072430 7F03D900 4481B000 */ mtc1 $at, $f22 +/* 072434 7F03D904 52C00026 */ beql $s6, $zero, .L7F03D9A0 +/* 072438 7F03D908 4480A000 */ mtc1 $zero, $f20 +/* 07243C 7F03D90C 0FC1E135 */ jal getPlayer_c_screentop +/* 072440 7F03D910 00000000 */ nop +/* 072444 7F03D914 0FC1E12D */ jal getPlayer_c_screenheight +/* 072448 7F03D918 46000506 */ mov.s $f20, $f0 +/* 07244C 7F03D91C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 072450 7F03D920 44818000 */ mtc1 $at, $f16 +/* 072454 7F03D924 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 072458 7F03D928 02C02025 */ move $a0, $s6 +/* 07245C 7F03D92C 46100482 */ mul.s $f18, $f0, $f16 +/* 072460 7F03D930 46144281 */ sub.s $f10, $f8, $f20 +/* 072464 7F03D934 46125103 */ div.s $f4, $f10, $f18 +/* 072468 7F03D938 46162181 */ sub.s $f6, $f4, $f22 +/* 07246C 7F03D93C 44053000 */ mfc1 $a1, $f6 +/* 072470 7F03D940 0FC1F17C */ jal sub_GAME_7F07C5F0 +/* 072474 7F03D944 00000000 */ nop +/* 072478 7F03D948 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 07247C 7F03D94C 00000000 */ nop +/* 072480 7F03D950 5040001B */ beql $v0, $zero, .L7F03D9C0 +/* 072484 7F03D954 8FBF004C */ lw $ra, 0x4c($sp) +/* 072488 7F03D958 0FC1E131 */ jal getPlayer_c_screenleft +/* 07248C 7F03D95C 00000000 */ nop +/* 072490 7F03D960 0FC1E129 */ jal getPlayer_c_screenwidth +/* 072494 7F03D964 46000506 */ mov.s $f20, $f0 +/* 072498 7F03D968 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07249C 7F03D96C 44815000 */ mtc1 $at, $f10 +/* 0724A0 7F03D970 C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 0724A4 7F03D974 02C02025 */ move $a0, $s6 +/* 0724A8 7F03D978 460A0482 */ mul.s $f18, $f0, $f10 +/* 0724AC 7F03D97C 46144401 */ sub.s $f16, $f8, $f20 +/* 0724B0 7F03D980 46128103 */ div.s $f4, $f16, $f18 +/* 0724B4 7F03D984 46162181 */ sub.s $f6, $f4, $f22 +/* 0724B8 7F03D988 44053000 */ mfc1 $a1, $f6 +/* 0724BC 7F03D98C 0FC1F1B2 */ jal sub_GAME_7F07C6C8 +/* 0724C0 7F03D990 00000000 */ nop +/* 0724C4 7F03D994 1000000A */ b .L7F03D9C0 +/* 0724C8 7F03D998 8FBF004C */ lw $ra, 0x4c($sp) +/* 0724CC 7F03D99C 4480A000 */ mtc1 $zero, $f20 +.L7F03D9A0: +/* 0724D0 7F03D9A0 00002025 */ move $a0, $zero +/* 0724D4 7F03D9A4 4405A000 */ mfc1 $a1, $f20 +/* 0724D8 7F03D9A8 0FC1F17C */ jal sub_GAME_7F07C5F0 +/* 0724DC 7F03D9AC 00000000 */ nop +/* 0724E0 7F03D9B0 4405A000 */ mfc1 $a1, $f20 +/* 0724E4 7F03D9B4 0FC1F1B2 */ jal sub_GAME_7F07C6C8 +/* 0724E8 7F03D9B8 00002025 */ move $a0, $zero +/* 0724EC 7F03D9BC 8FBF004C */ lw $ra, 0x4c($sp) +.L7F03D9C0: +/* 0724F0 7F03D9C0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0724F4 7F03D9C4 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0724F8 7F03D9C8 8FB00030 */ lw $s0, 0x30($sp) +/* 0724FC 7F03D9CC 8FB10034 */ lw $s1, 0x34($sp) +/* 072500 7F03D9D0 8FB20038 */ lw $s2, 0x38($sp) +/* 072504 7F03D9D4 8FB3003C */ lw $s3, 0x3c($sp) +/* 072508 7F03D9D8 8FB40040 */ lw $s4, 0x40($sp) +/* 07250C 7F03D9DC 8FB50044 */ lw $s5, 0x44($sp) +/* 072510 7F03D9E0 8FB60048 */ lw $s6, 0x48($sp) +/* 072514 7F03D9E4 03E00008 */ jr $ra +/* 072518 7F03D9E8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D9EC(void) { + +} +#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 +void sub_GAME_7F03DA50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DA50 +/* 072580 7F03DA50 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 072584 7F03DA54 AFBF0014 */ sw $ra, 0x14($sp) +/* 072588 7F03DA58 90820000 */ lbu $v0, ($a0) +/* 07258C 7F03DA5C 24010002 */ li $at, 2 +/* 072590 7F03DA60 24060001 */ li $a2, 1 +/* 072594 7F03DA64 14410015 */ bne $v0, $at, .L7F03DABC +/* 072598 7F03DA68 30AE0100 */ andi $t6, $a1, 0x100 +/* 07259C 7F03DA6C 11C00007 */ beqz $t6, .L7F03DA8C +/* 0725A0 7F03DA70 30B90002 */ andi $t9, $a1, 2 +/* 0725A4 7F03DA74 8C820004 */ lw $v0, 4($a0) +/* 0725A8 7F03DA78 8C4F0008 */ lw $t7, 8($v0) +/* 0725AC 7F03DA7C 000FC140 */ sll $t8, $t7, 5 +/* 0725B0 7F03DA80 07010002 */ bgez $t8, .L7F03DA8C +/* 0725B4 7F03DA84 00000000 */ nop +/* 0725B8 7F03DA88 00003025 */ move $a2, $zero +.L7F03DA8C: +/* 0725BC 7F03DA8C 57200034 */ bnezl $t9, .L7F03DB60 +/* 0725C0 7F03DA90 8FBF0014 */ lw $ra, 0x14($sp) +/* 0725C4 7F03DA94 AFA50024 */ sw $a1, 0x24($sp) +/* 0725C8 7F03DA98 0FC0F67B */ jal sub_GAME_7F03D9EC +/* 0725CC 7F03DA9C AFA6001C */ sw $a2, 0x1c($sp) +/* 0725D0 7F03DAA0 8FA50024 */ lw $a1, 0x24($sp) +/* 0725D4 7F03DAA4 8FA6001C */ lw $a2, 0x1c($sp) +/* 0725D8 7F03DAA8 00454024 */ and $t0, $v0, $a1 +/* 0725DC 7F03DAAC 5500002C */ bnezl $t0, .L7F03DB60 +/* 0725E0 7F03DAB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0725E4 7F03DAB4 10000029 */ b .L7F03DB5C +/* 0725E8 7F03DAB8 00003025 */ move $a2, $zero +.L7F03DABC: +/* 0725EC 7F03DABC 24010006 */ li $at, 6 +/* 0725F0 7F03DAC0 14410005 */ bne $v0, $at, .L7F03DAD8 +/* 0725F4 7F03DAC4 30A90004 */ andi $t1, $a1, 4 +/* 0725F8 7F03DAC8 55200025 */ bnezl $t1, .L7F03DB60 +/* 0725FC 7F03DACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 072600 7F03DAD0 10000022 */ b .L7F03DB5C +/* 072604 7F03DAD4 00003025 */ move $a2, $zero +.L7F03DAD8: +/* 072608 7F03DAD8 24010003 */ li $at, 3 +/* 07260C 7F03DADC 14410006 */ bne $v0, $at, .L7F03DAF8 +/* 072610 7F03DAE0 30AB0100 */ andi $t3, $a1, 0x100 +/* 072614 7F03DAE4 30AA0008 */ andi $t2, $a1, 8 +/* 072618 7F03DAE8 5540001D */ bnezl $t2, .L7F03DB60 +/* 07261C 7F03DAEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 072620 7F03DAF0 1000001A */ b .L7F03DB5C +/* 072624 7F03DAF4 00003025 */ move $a2, $zero +.L7F03DAF8: +/* 072628 7F03DAF8 11600006 */ beqz $t3, .L7F03DB14 +/* 07262C 7F03DAFC 8C820004 */ lw $v0, 4($a0) +/* 072630 7F03DB00 8C4C0008 */ lw $t4, 8($v0) +/* 072634 7F03DB04 000C6940 */ sll $t5, $t4, 5 +/* 072638 7F03DB08 05A30003 */ bgezl $t5, .L7F03DB18 +/* 07263C 7F03DB0C 30AE0200 */ andi $t6, $a1, 0x200 +/* 072640 7F03DB10 00003025 */ move $a2, $zero +.L7F03DB14: +/* 072644 7F03DB14 30AE0200 */ andi $t6, $a1, 0x200 +.L7F03DB18: +/* 072648 7F03DB18 11C00005 */ beqz $t6, .L7F03DB30 +/* 07264C 7F03DB1C 8C430008 */ lw $v1, 8($v0) +/* 072650 7F03DB20 00037B80 */ sll $t7, $v1, 0xe +/* 072654 7F03DB24 05E20003 */ bltzl $t7, .L7F03DB34 +/* 072658 7F03DB28 30780800 */ andi $t8, $v1, 0x800 +/* 07265C 7F03DB2C 00003025 */ move $a2, $zero +.L7F03DB30: +/* 072660 7F03DB30 30780800 */ andi $t8, $v1, 0x800 +.L7F03DB34: +/* 072664 7F03DB34 13000006 */ beqz $t8, .L7F03DB50 +/* 072668 7F03DB38 30A80001 */ andi $t0, $a1, 1 +/* 07266C 7F03DB3C 30B90010 */ andi $t9, $a1, 0x10 +/* 072670 7F03DB40 57200007 */ bnezl $t9, .L7F03DB60 +/* 072674 7F03DB44 8FBF0014 */ lw $ra, 0x14($sp) +/* 072678 7F03DB48 10000004 */ b .L7F03DB5C +/* 07267C 7F03DB4C 00003025 */ move $a2, $zero +.L7F03DB50: +/* 072680 7F03DB50 55000003 */ bnezl $t0, .L7F03DB60 +/* 072684 7F03DB54 8FBF0014 */ lw $ra, 0x14($sp) +/* 072688 7F03DB58 00003025 */ move $a2, $zero +.L7F03DB5C: +/* 07268C 7F03DB5C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03DB60: +/* 072690 7F03DB60 27BD0020 */ addiu $sp, $sp, 0x20 +/* 072694 7F03DB64 00C01025 */ move $v0, $a2 +/* 072698 7F03DB68 03E00008 */ jr $ra +/* 07269C 7F03DB6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DB70(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DBCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DBCC +/* 0726FC 7F03DBCC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_8007161C) +/* 072700 7F03DBD0 8DEF161C */ lw $t7, %lo(dword_CODE_bss_8007161C)($t7) +/* 072704 7F03DBD4 0005C140 */ sll $t8, $a1, 5 +/* 072708 7F03DBD8 AFA40000 */ sw $a0, ($sp) +/* 07270C 7F03DBDC 01F81821 */ addu $v1, $t7, $t8 +/* 072710 7F03DBE0 84790000 */ lh $t9, ($v1) +/* 072714 7F03DBE4 00043400 */ sll $a2, $a0, 0x10 +/* 072718 7F03DBE8 00067403 */ sra $t6, $a2, 0x10 +/* 07271C 7F03DBEC 01C03025 */ move $a2, $t6 +/* 072720 7F03DBF0 07210004 */ bgez $t9, .L7F03DC04 +/* 072724 7F03DBF4 00602025 */ move $a0, $v1 +/* 072728 7F03DBF8 A48E0000 */ sh $t6, ($a0) +/* 07272C 7F03DBFC 03E00008 */ jr $ra +/* 072730 7F03DC00 24020001 */ li $v0, 1 + +.L7F03DC04: +/* 072734 7F03DC04 84880002 */ lh $t0, 2($a0) +/* 072738 7F03DC08 24020001 */ li $v0, 1 +/* 07273C 7F03DC0C 05030004 */ bgezl $t0, .L7F03DC20 +/* 072740 7F03DC10 84890004 */ lh $t1, 4($a0) +/* 072744 7F03DC14 03E00008 */ jr $ra +/* 072748 7F03DC18 A4860002 */ sh $a2, 2($a0) + +/* 07274C 7F03DC1C 84890004 */ lh $t1, 4($a0) +.L7F03DC20: +/* 072750 7F03DC20 24650006 */ addiu $a1, $v1, 6 +/* 072754 7F03DC24 2402001E */ li $v0, 30 +/* 072758 7F03DC28 05230005 */ bgezl $t1, .L7F03DC40 +/* 07275C 7F03DC2C 24040006 */ li $a0, 6 +/* 072760 7F03DC30 A4860004 */ sh $a2, 4($a0) +/* 072764 7F03DC34 03E00008 */ jr $ra +/* 072768 7F03DC38 24020001 */ li $v0, 1 + +/* 07276C 7F03DC3C 24040006 */ li $a0, 6 +.L7F03DC40: +/* 072770 7F03DC40 84AA0000 */ lh $t2, ($a1) +/* 072774 7F03DC44 24840008 */ addiu $a0, $a0, 8 +/* 072778 7F03DC48 05430005 */ bgezl $t2, .L7F03DC60 +/* 07277C 7F03DC4C 84AB0002 */ lh $t3, 2($a1) +/* 072780 7F03DC50 A4A60000 */ sh $a2, ($a1) +/* 072784 7F03DC54 03E00008 */ jr $ra +/* 072788 7F03DC58 24020001 */ li $v0, 1 + +/* 07278C 7F03DC5C 84AB0002 */ lh $t3, 2($a1) +.L7F03DC60: +/* 072790 7F03DC60 05630005 */ bgezl $t3, .L7F03DC78 +/* 072794 7F03DC64 84AC0004 */ lh $t4, 4($a1) +/* 072798 7F03DC68 A4A60002 */ sh $a2, 2($a1) +/* 07279C 7F03DC6C 03E00008 */ jr $ra +/* 0727A0 7F03DC70 24020001 */ li $v0, 1 + +/* 0727A4 7F03DC74 84AC0004 */ lh $t4, 4($a1) +.L7F03DC78: +/* 0727A8 7F03DC78 05830005 */ bgezl $t4, .L7F03DC90 +/* 0727AC 7F03DC7C 84AD0006 */ lh $t5, 6($a1) +/* 0727B0 7F03DC80 A4A60004 */ sh $a2, 4($a1) +/* 0727B4 7F03DC84 03E00008 */ jr $ra +/* 0727B8 7F03DC88 24020001 */ li $v0, 1 + +/* 0727BC 7F03DC8C 84AD0006 */ lh $t5, 6($a1) +.L7F03DC90: +/* 0727C0 7F03DC90 05A10004 */ bgez $t5, .L7F03DCA4 +/* 0727C4 7F03DC94 00000000 */ nop +/* 0727C8 7F03DC98 A4A60006 */ sh $a2, 6($a1) +/* 0727CC 7F03DC9C 03E00008 */ jr $ra +/* 0727D0 7F03DCA0 24020001 */ li $v0, 1 + +.L7F03DCA4: +/* 0727D4 7F03DCA4 1482FFE6 */ bne $a0, $v0, .L7F03DC40 +/* 0727D8 7F03DCA8 24A50008 */ addiu $a1, $a1, 8 +/* 0727DC 7F03DCAC 00001025 */ move $v0, $zero +/* 0727E0 7F03DCB0 03E00008 */ jr $ra +/* 0727E4 7F03DCB4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DCB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DCB8 +/* 0727E8 7F03DCB8 00803025 */ move $a2, $a0 +/* 0727EC 7F03DCBC 3C028007 */ lui $v0, %hi(dword_CODE_bss_8007161C) +/* 0727F0 7F03DCC0 8C42161C */ lw $v0, %lo(dword_CODE_bss_8007161C)($v0) +/* 0727F4 7F03DCC4 2404FFFE */ li $a0, -2 +/* 0727F8 7F03DCC8 00001825 */ move $v1, $zero +/* 0727FC 7F03DCCC 24070100 */ li $a3, 256 +.L7F03DCD0: +/* 072800 7F03DCD0 844E0000 */ lh $t6, ($v0) +/* 072804 7F03DCD4 548E002C */ bnel $a0, $t6, .L7F03DD88 +/* 072808 7F03DCD8 24630001 */ addiu $v1, $v1, 1 +/* 07280C 7F03DCDC 3C028007 */ lui $v0, %hi(dword_CODE_bss_8007161C) +/* 072810 7F03DCE0 2442161C */ addiu $v0, %lo(dword_CODE_bss_8007161C) # addiu $v0, $v0, 0x161c +/* 072814 7F03DCE4 00002025 */ move $a0, $zero +/* 072818 7F03DCE8 24080020 */ li $t0, 32 +/* 07281C 7F03DCEC 2407FFFF */ li $a3, -1 +.L7F03DCF0: +/* 072820 7F03DCF0 8C4F0000 */ lw $t7, ($v0) +/* 072824 7F03DCF4 0003C140 */ sll $t8, $v1, 5 +/* 072828 7F03DCF8 00035940 */ sll $t3, $v1, 5 +/* 07282C 7F03DCFC 01F8C821 */ addu $t9, $t7, $t8 +/* 072830 7F03DD00 03244821 */ addu $t1, $t9, $a0 +/* 072834 7F03DD04 A5270000 */ sh $a3, ($t1) +/* 072838 7F03DD08 8C4A0000 */ lw $t2, ($v0) +/* 07283C 7F03DD0C 00037940 */ sll $t7, $v1, 5 +/* 072840 7F03DD10 014B6021 */ addu $t4, $t2, $t3 +/* 072844 7F03DD14 01846821 */ addu $t5, $t4, $a0 +/* 072848 7F03DD18 A5A70002 */ sh $a3, 2($t5) +/* 07284C 7F03DD1C 8C4E0000 */ lw $t6, ($v0) +/* 072850 7F03DD20 00035140 */ sll $t2, $v1, 5 +/* 072854 7F03DD24 01CFC021 */ addu $t8, $t6, $t7 +/* 072858 7F03DD28 0304C821 */ addu $t9, $t8, $a0 +/* 07285C 7F03DD2C A7270004 */ sh $a3, 4($t9) +/* 072860 7F03DD30 8C490000 */ lw $t1, ($v0) +/* 072864 7F03DD34 012A5821 */ addu $t3, $t1, $t2 +/* 072868 7F03DD38 01646021 */ addu $t4, $t3, $a0 +/* 07286C 7F03DD3C 24840008 */ addiu $a0, $a0, 8 +/* 072870 7F03DD40 1488FFEB */ bne $a0, $t0, .L7F03DCF0 +/* 072874 7F03DD44 A5870006 */ sh $a3, 6($t4) +/* 072878 7F03DD48 04A00007 */ bltz $a1, .L7F03DD68 +/* 07287C 7F03DD4C 00000000 */ nop +/* 072880 7F03DD50 8C4D0000 */ lw $t5, ($v0) +/* 072884 7F03DD54 00057140 */ sll $t6, $a1, 5 +/* 072888 7F03DD58 00601025 */ move $v0, $v1 +/* 07288C 7F03DD5C 01AE7821 */ addu $t7, $t5, $t6 +/* 072890 7F03DD60 03E00008 */ jr $ra +/* 072894 7F03DD64 A5E3001E */ sh $v1, 0x1e($t7) + +.L7F03DD68: +/* 072898 7F03DD68 3C188007 */ lui $t8, %hi(ptr_room_lookup_buffer_maybe) +/* 07289C 7F03DD6C 8F181618 */ lw $t8, %lo(ptr_room_lookup_buffer_maybe)($t8) +/* 0728A0 7F03DD70 0006C840 */ sll $t9, $a2, 1 +/* 0728A4 7F03DD74 03194821 */ addu $t1, $t8, $t9 +/* 0728A8 7F03DD78 A5230000 */ sh $v1, ($t1) +/* 0728AC 7F03DD7C 03E00008 */ jr $ra +/* 0728B0 7F03DD80 00601025 */ move $v0, $v1 + +/* 0728B4 7F03DD84 24630001 */ addiu $v1, $v1, 1 +.L7F03DD88: +/* 0728B8 7F03DD88 1467FFD1 */ bne $v1, $a3, .L7F03DCD0 +/* 0728BC 7F03DD8C 24420020 */ addiu $v0, $v0, 0x20 +/* 0728C0 7F03DD90 2402FFFF */ li $v0, -1 +/* 0728C4 7F03DD94 03E00008 */ jr $ra +/* 0728C8 7F03DD98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DD9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DD9C +/* 0728CC 7F03DD9C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0728D0 7F03DDA0 AFA5002C */ sw $a1, 0x2c($sp) +/* 0728D4 7F03DDA4 87AE002E */ lh $t6, 0x2e($sp) +/* 0728D8 7F03DDA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0728DC 7F03DDAC AFB20020 */ sw $s2, 0x20($sp) +/* 0728E0 7F03DDB0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0728E4 7F03DDB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0728E8 7F03DDB8 AFA40028 */ sw $a0, 0x28($sp) +/* 0728EC 7F03DDBC 05C0002F */ bltz $t6, .L7F03DE7C +/* 0728F0 7F03DDC0 2406FFFF */ li $a2, -1 +/* 0728F4 7F03DDC4 87B8002E */ lh $t8, 0x2e($sp) +/* 0728F8 7F03DDC8 3C0F8007 */ lui $t7, %hi(ptr_room_lookup_buffer_maybe) +/* 0728FC 7F03DDCC 8DEF1618 */ lw $t7, %lo(ptr_room_lookup_buffer_maybe)($t7) +/* 072900 7F03DDD0 0018C840 */ sll $t9, $t8, 1 +/* 072904 7F03DDD4 3C0A8007 */ lui $t2, %hi(pos_data_entry) +/* 072908 7F03DDD8 01F94021 */ addu $t0, $t7, $t9 +/* 07290C 7F03DDDC 85100000 */ lh $s0, ($t0) +/* 072910 7F03DDE0 254A9C38 */ addiu $t2, %lo(pos_data_entry) # addiu $t2, $t2, -0x63c8 +/* 072914 7F03DDE4 008A8823 */ subu $s1, $a0, $t2 +/* 072918 7F03DDE8 06000015 */ bltz $s0, .L7F03DE40 +/* 07291C 7F03DDEC 24010034 */ li $at, 52 +/* 072920 7F03DDF0 0221001A */ div $zero, $s1, $at +/* 072924 7F03DDF4 00005812 */ mflo $t3 +/* 072928 7F03DDF8 000B6400 */ sll $t4, $t3, 0x10 +/* 07292C 7F03DDFC 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007161C) +/* 072930 7F03DE00 2652161C */ addiu $s2, %lo(dword_CODE_bss_8007161C) # addiu $s2, $s2, 0x161c +/* 072934 7F03DE04 000C8C03 */ sra $s1, $t4, 0x10 +/* 072938 7F03DE08 00112400 */ sll $a0, $s1, 0x10 +.L7F03DE0C: +/* 07293C 7F03DE0C 00047403 */ sra $t6, $a0, 0x10 +/* 072940 7F03DE10 01C02025 */ move $a0, $t6 +/* 072944 7F03DE14 0FC0F6F3 */ jal sub_GAME_7F03DBCC +/* 072948 7F03DE18 02002825 */ move $a1, $s0 +/* 07294C 7F03DE1C 54400018 */ bnezl $v0, .L7F03DE80 +/* 072950 7F03DE20 8FBF0024 */ lw $ra, 0x24($sp) +/* 072954 7F03DE24 8E580000 */ lw $t8, ($s2) +/* 072958 7F03DE28 00107940 */ sll $t7, $s0, 5 +/* 07295C 7F03DE2C 02003025 */ move $a2, $s0 +/* 072960 7F03DE30 030FC821 */ addu $t9, $t8, $t7 +/* 072964 7F03DE34 8730001E */ lh $s0, 0x1e($t9) +/* 072968 7F03DE38 0603FFF4 */ bgezl $s0, .L7F03DE0C +/* 07296C 7F03DE3C 00112400 */ sll $a0, $s1, 0x10 +.L7F03DE40: +/* 072970 7F03DE40 87A4002E */ lh $a0, 0x2e($sp) +/* 072974 7F03DE44 0FC0F72E */ jal sub_GAME_7F03DCB8 +/* 072978 7F03DE48 00C02825 */ move $a1, $a2 +/* 07297C 7F03DE4C 0440000B */ bltz $v0, .L7F03DE7C +/* 072980 7F03DE50 8FA80028 */ lw $t0, 0x28($sp) +/* 072984 7F03DE54 3C098007 */ lui $t1, %hi(pos_data_entry) +/* 072988 7F03DE58 25299C38 */ addiu $t1, %lo(pos_data_entry) # addiu $t1, $t1, -0x63c8 +/* 07298C 7F03DE5C 01092023 */ subu $a0, $t0, $t1 +/* 072990 7F03DE60 24010034 */ li $at, 52 +/* 072994 7F03DE64 0081001A */ div $zero, $a0, $at +/* 072998 7F03DE68 00005012 */ mflo $t2 +/* 07299C 7F03DE6C 000A5C00 */ sll $t3, $t2, 0x10 +/* 0729A0 7F03DE70 000B2403 */ sra $a0, $t3, 0x10 +/* 0729A4 7F03DE74 0FC0F6F3 */ jal sub_GAME_7F03DBCC +/* 0729A8 7F03DE78 00402825 */ move $a1, $v0 +.L7F03DE7C: +/* 0729AC 7F03DE7C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03DE80: +/* 0729B0 7F03DE80 8FB00018 */ lw $s0, 0x18($sp) +/* 0729B4 7F03DE84 8FB1001C */ lw $s1, 0x1c($sp) +/* 0729B8 7F03DE88 8FB20020 */ lw $s2, 0x20($sp) +/* 0729BC 7F03DE8C 03E00008 */ jr $ra +/* 0729C0 7F03DE90 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DE94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DE94 +/* 0729C4 7F03DE94 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0729C8 7F03DE98 00057400 */ sll $t6, $a1, 0x10 +/* 0729CC 7F03DE9C 000E7C03 */ sra $t7, $t6, 0x10 +/* 0729D0 7F03DEA0 AFB1000C */ sw $s1, 0xc($sp) +/* 0729D4 7F03DEA4 AFB00008 */ sw $s0, 8($sp) +/* 0729D8 7F03DEA8 AFA50014 */ sw $a1, 0x14($sp) +/* 0729DC 7F03DEAC 00003025 */ move $a2, $zero +/* 0729E0 7F03DEB0 05E0009C */ bltz $t7, .L7F03E124 +/* 0729E4 7F03DEB4 2409FFFF */ li $t1, -1 +/* 0729E8 7F03DEB8 3C0B8007 */ lui $t3, %hi(ptr_room_lookup_buffer_maybe) +/* 0729EC 7F03DEBC 256B1618 */ addiu $t3, %lo(ptr_room_lookup_buffer_maybe) # addiu $t3, $t3, 0x1618 +/* 0729F0 7F03DEC0 8D780000 */ lw $t8, ($t3) +/* 0729F4 7F03DEC4 000F5040 */ sll $t2, $t7, 1 +/* 0729F8 7F03DEC8 3C0E8007 */ lui $t6, %hi(pos_data_entry) +/* 0729FC 7F03DECC 030AC821 */ addu $t9, $t8, $t2 +/* 072A00 7F03DED0 87230000 */ lh $v1, ($t9) +/* 072A04 7F03DED4 25CE9C38 */ addiu $t6, %lo(pos_data_entry) # addiu $t6, $t6, -0x63c8 +/* 072A08 7F03DED8 008E2023 */ subu $a0, $a0, $t6 +/* 072A0C 7F03DEDC 04600091 */ bltz $v1, .L7F03E124 +/* 072A10 7F03DEE0 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_8007161C) +/* 072A14 7F03DEE4 24010034 */ li $at, 52 +/* 072A18 7F03DEE8 0081001A */ div $zero, $a0, $at +/* 072A1C 7F03DEEC 00007812 */ mflo $t7 +/* 072A20 7F03DEF0 000FC400 */ sll $t8, $t7, 0x10 +/* 072A24 7F03DEF4 3C078007 */ lui $a3, %hi(dword_CODE_bss_8007161C) +/* 072A28 7F03DEF8 24E7161C */ addiu $a3, %lo(dword_CODE_bss_8007161C) # addiu $a3, $a3, 0x161c +/* 072A2C 7F03DEFC 00182403 */ sra $a0, $t8, 0x10 +/* 072A30 7F03DF00 8DAD161C */ lw $t5, %lo(dword_CODE_bss_8007161C)($t5) +/* 072A34 7F03DF04 240CFFFE */ li $t4, -2 +/* 072A38 7F03DF08 2408001E */ li $t0, 30 +/* 072A3C 7F03DF0C 2405FFFF */ li $a1, -1 +/* 072A40 7F03DF10 00037140 */ sll $t6, $v1, 5 +.L7F03DF14: +/* 072A44 7F03DF14 01AE8021 */ addu $s0, $t5, $t6 +/* 072A48 7F03DF18 86110000 */ lh $s1, ($s0) +/* 072A4C 7F03DF1C 00001025 */ move $v0, $zero +/* 072A50 7F03DF20 00037140 */ sll $t6, $v1, 5 +/* 072A54 7F03DF24 14910006 */ bne $a0, $s1, .L7F03DF40 +/* 072A58 7F03DF28 0003C140 */ sll $t8, $v1, 5 +/* 072A5C 7F03DF2C A6050000 */ sh $a1, ($s0) +/* 072A60 7F03DF30 8CEF0000 */ lw $t7, ($a3) +/* 072A64 7F03DF34 24060001 */ li $a2, 1 +/* 072A68 7F03DF38 10000004 */ b .L7F03DF4C +/* 072A6C 7F03DF3C 01F88021 */ addu $s0, $t7, $t8 +.L7F03DF40: +/* 072A70 7F03DF40 06220003 */ bltzl $s1, .L7F03DF50 +/* 072A74 7F03DF44 860D0002 */ lh $t5, 2($s0) +/* 072A78 7F03DF48 24020001 */ li $v0, 1 +.L7F03DF4C: +/* 072A7C 7F03DF4C 860D0002 */ lh $t5, 2($s0) +.L7F03DF50: +/* 072A80 7F03DF50 148D0006 */ bne $a0, $t5, .L7F03DF6C +/* 072A84 7F03DF54 00000000 */ nop +/* 072A88 7F03DF58 A6050002 */ sh $a1, 2($s0) +/* 072A8C 7F03DF5C 8CF90000 */ lw $t9, ($a3) +/* 072A90 7F03DF60 24060001 */ li $a2, 1 +/* 072A94 7F03DF64 10000006 */ b .L7F03DF80 +/* 072A98 7F03DF68 032E8021 */ addu $s0, $t9, $t6 +.L7F03DF6C: +/* 072A9C 7F03DF6C 54400005 */ bnezl $v0, .L7F03DF84 +/* 072AA0 7F03DF70 860D0004 */ lh $t5, 4($s0) +/* 072AA4 7F03DF74 05A20003 */ bltzl $t5, .L7F03DF84 +/* 072AA8 7F03DF78 860D0004 */ lh $t5, 4($s0) +/* 072AAC 7F03DF7C 24020001 */ li $v0, 1 +.L7F03DF80: +/* 072AB0 7F03DF80 860D0004 */ lh $t5, 4($s0) +.L7F03DF84: +/* 072AB4 7F03DF84 148D0004 */ bne $a0, $t5, .L7F03DF98 +/* 072AB8 7F03DF88 00000000 */ nop +/* 072ABC 7F03DF8C A6050004 */ sh $a1, 4($s0) +/* 072AC0 7F03DF90 10000006 */ b .L7F03DFAC +/* 072AC4 7F03DF94 24060001 */ li $a2, 1 +.L7F03DF98: +/* 072AC8 7F03DF98 54400005 */ bnezl $v0, .L7F03DFB0 +/* 072ACC 7F03DF9C 24100006 */ li $s0, 6 +/* 072AD0 7F03DFA0 05A20003 */ bltzl $t5, .L7F03DFB0 +/* 072AD4 7F03DFA4 24100006 */ li $s0, 6 +/* 072AD8 7F03DFA8 24020001 */ li $v0, 1 +.L7F03DFAC: +/* 072ADC 7F03DFAC 24100006 */ li $s0, 6 +.L7F03DFB0: +/* 072AE0 7F03DFB0 8CEF0000 */ lw $t7, ($a3) +.L7F03DFB4: +/* 072AE4 7F03DFB4 0003C140 */ sll $t8, $v1, 5 +/* 072AE8 7F03DFB8 01F8C821 */ addu $t9, $t7, $t8 +/* 072AEC 7F03DFBC 03306821 */ addu $t5, $t9, $s0 +/* 072AF0 7F03DFC0 85B10000 */ lh $s1, ($t5) +/* 072AF4 7F03DFC4 14910008 */ bne $a0, $s1, .L7F03DFE8 +/* 072AF8 7F03DFC8 00000000 */ nop +/* 072AFC 7F03DFCC A5A50000 */ sh $a1, ($t5) +/* 072B00 7F03DFD0 8CEE0000 */ lw $t6, ($a3) +/* 072B04 7F03DFD4 00037940 */ sll $t7, $v1, 5 +/* 072B08 7F03DFD8 24060001 */ li $a2, 1 +/* 072B0C 7F03DFDC 01CFC021 */ addu $t8, $t6, $t7 +/* 072B10 7F03DFE0 10000006 */ b .L7F03DFFC +/* 072B14 7F03DFE4 03106821 */ addu $t5, $t8, $s0 +.L7F03DFE8: +/* 072B18 7F03DFE8 54400005 */ bnezl $v0, .L7F03E000 +/* 072B1C 7F03DFEC 85B10002 */ lh $s1, 2($t5) +/* 072B20 7F03DFF0 06220003 */ bltzl $s1, .L7F03E000 +/* 072B24 7F03DFF4 85B10002 */ lh $s1, 2($t5) +/* 072B28 7F03DFF8 24020001 */ li $v0, 1 +.L7F03DFFC: +/* 072B2C 7F03DFFC 85B10002 */ lh $s1, 2($t5) +.L7F03E000: +/* 072B30 7F03E000 14910008 */ bne $a0, $s1, .L7F03E024 +/* 072B34 7F03E004 00000000 */ nop +/* 072B38 7F03E008 A5A50002 */ sh $a1, 2($t5) +/* 072B3C 7F03E00C 8CF90000 */ lw $t9, ($a3) +/* 072B40 7F03E010 00037140 */ sll $t6, $v1, 5 +/* 072B44 7F03E014 24060001 */ li $a2, 1 +/* 072B48 7F03E018 032E7821 */ addu $t7, $t9, $t6 +/* 072B4C 7F03E01C 10000006 */ b .L7F03E038 +/* 072B50 7F03E020 01F06821 */ addu $t5, $t7, $s0 +.L7F03E024: +/* 072B54 7F03E024 54400005 */ bnezl $v0, .L7F03E03C +/* 072B58 7F03E028 85B10004 */ lh $s1, 4($t5) +/* 072B5C 7F03E02C 06220003 */ bltzl $s1, .L7F03E03C +/* 072B60 7F03E030 85B10004 */ lh $s1, 4($t5) +/* 072B64 7F03E034 24020001 */ li $v0, 1 +.L7F03E038: +/* 072B68 7F03E038 85B10004 */ lh $s1, 4($t5) +.L7F03E03C: +/* 072B6C 7F03E03C 14910008 */ bne $a0, $s1, .L7F03E060 +/* 072B70 7F03E040 00000000 */ nop +/* 072B74 7F03E044 A5A50004 */ sh $a1, 4($t5) +/* 072B78 7F03E048 8CF80000 */ lw $t8, ($a3) +/* 072B7C 7F03E04C 0003C940 */ sll $t9, $v1, 5 +/* 072B80 7F03E050 24060001 */ li $a2, 1 +/* 072B84 7F03E054 03197021 */ addu $t6, $t8, $t9 +/* 072B88 7F03E058 10000006 */ b .L7F03E074 +/* 072B8C 7F03E05C 01D06821 */ addu $t5, $t6, $s0 +.L7F03E060: +/* 072B90 7F03E060 54400005 */ bnezl $v0, .L7F03E078 +/* 072B94 7F03E064 85B10006 */ lh $s1, 6($t5) +/* 072B98 7F03E068 06220003 */ bltzl $s1, .L7F03E078 +/* 072B9C 7F03E06C 85B10006 */ lh $s1, 6($t5) +/* 072BA0 7F03E070 24020001 */ li $v0, 1 +.L7F03E074: +/* 072BA4 7F03E074 85B10006 */ lh $s1, 6($t5) +.L7F03E078: +/* 072BA8 7F03E078 26100008 */ addiu $s0, $s0, 8 +/* 072BAC 7F03E07C 14910004 */ bne $a0, $s1, .L7F03E090 +/* 072BB0 7F03E080 00000000 */ nop +/* 072BB4 7F03E084 A5A50006 */ sh $a1, 6($t5) +/* 072BB8 7F03E088 10000006 */ b .L7F03E0A4 +/* 072BBC 7F03E08C 24060001 */ li $a2, 1 +.L7F03E090: +/* 072BC0 7F03E090 14400004 */ bnez $v0, .L7F03E0A4 +/* 072BC4 7F03E094 00000000 */ nop +/* 072BC8 7F03E098 06200002 */ bltz $s1, .L7F03E0A4 +/* 072BCC 7F03E09C 00000000 */ nop +/* 072BD0 7F03E0A0 24020001 */ li $v0, 1 +.L7F03E0A4: +/* 072BD4 7F03E0A4 5608FFC3 */ bnel $s0, $t0, .L7F03DFB4 +/* 072BD8 7F03E0A8 8CEF0000 */ lw $t7, ($a3) +/* 072BDC 7F03E0AC 54400015 */ bnezl $v0, .L7F03E104 +/* 072BE0 7F03E0B0 00604825 */ move $t1, $v1 +/* 072BE4 7F03E0B4 8CEF0000 */ lw $t7, ($a3) +/* 072BE8 7F03E0B8 00031140 */ sll $v0, $v1, 5 +/* 072BEC 7F03E0BC 01E2C021 */ addu $t8, $t7, $v0 +/* 072BF0 7F03E0C0 05200008 */ bltz $t1, .L7F03E0E4 +/* 072BF4 7F03E0C4 A70C0000 */ sh $t4, ($t8) +/* 072BF8 7F03E0C8 8CED0000 */ lw $t5, ($a3) +/* 072BFC 7F03E0CC 00097940 */ sll $t7, $t1, 5 +/* 072C00 7F03E0D0 01A2C821 */ addu $t9, $t5, $v0 +/* 072C04 7F03E0D4 872E001E */ lh $t6, 0x1e($t9) +/* 072C08 7F03E0D8 01AFC021 */ addu $t8, $t5, $t7 +/* 072C0C 7F03E0DC 10000009 */ b .L7F03E104 +/* 072C10 7F03E0E0 A70E001E */ sh $t6, 0x1e($t8) +.L7F03E0E4: +/* 072C14 7F03E0E4 8CF90000 */ lw $t9, ($a3) +/* 072C18 7F03E0E8 8D780000 */ lw $t8, ($t3) +/* 072C1C 7F03E0EC 03227821 */ addu $t7, $t9, $v0 +/* 072C20 7F03E0F0 85EE001E */ lh $t6, 0x1e($t7) +/* 072C24 7F03E0F4 030AC821 */ addu $t9, $t8, $t2 +/* 072C28 7F03E0F8 10000002 */ b .L7F03E104 +/* 072C2C 7F03E0FC A72E0000 */ sh $t6, ($t9) +/* 072C30 7F03E100 00604825 */ move $t1, $v1 +.L7F03E104: +/* 072C34 7F03E104 54C00008 */ bnezl $a2, .L7F03E128 +/* 072C38 7F03E108 8FB00008 */ lw $s0, 8($sp) +/* 072C3C 7F03E10C 8CED0000 */ lw $t5, ($a3) +/* 072C40 7F03E110 00037940 */ sll $t7, $v1, 5 +/* 072C44 7F03E114 01AFC021 */ addu $t8, $t5, $t7 +/* 072C48 7F03E118 8703001E */ lh $v1, 0x1e($t8) +/* 072C4C 7F03E11C 0463FF7D */ bgezl $v1, .L7F03DF14 +/* 072C50 7F03E120 00037140 */ sll $t6, $v1, 5 +.L7F03E124: +/* 072C54 7F03E124 8FB00008 */ lw $s0, 8($sp) +.L7F03E128: +/* 072C58 7F03E128 8FB1000C */ lw $s1, 0xc($sp) +/* 072C5C 7F03E12C 03E00008 */ jr $ra +/* 072C60 7F03E130 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E134(void) { + +} +#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 sub_GAME_7F020D94 +/* 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 sub_GAME_7F056CA0 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E18C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E18C +/* 072CBC 7F03E18C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 072CC0 7F03E190 AFBF0024 */ sw $ra, 0x24($sp) +/* 072CC4 7F03E194 AFB30020 */ sw $s3, 0x20($sp) +/* 072CC8 7F03E198 AFB2001C */ sw $s2, 0x1c($sp) +/* 072CCC 7F03E19C AFB10018 */ sw $s1, 0x18($sp) +/* 072CD0 7F03E1A0 AFB00014 */ sw $s0, 0x14($sp) +/* 072CD4 7F03E1A4 9090002C */ lbu $s0, 0x2c($a0) +/* 072CD8 7F03E1A8 241200FF */ li $s2, 255 +/* 072CDC 7F03E1AC 00809825 */ move $s3, $a0 +/* 072CE0 7F03E1B0 1250000A */ beq $s2, $s0, .L7F03E1DC +/* 072CE4 7F03E1B4 2491002C */ addiu $s1, $a0, 0x2c +/* 072CE8 7F03E1B8 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E1BC: +/* 072CEC 7F03E1BC 00057403 */ sra $t6, $a1, 0x10 +/* 072CF0 7F03E1C0 01C02825 */ move $a1, $t6 +/* 072CF4 7F03E1C4 0FC0F7A5 */ jal sub_GAME_7F03DE94 +/* 072CF8 7F03E1C8 02602025 */ move $a0, $s3 +/* 072CFC 7F03E1CC 92300001 */ lbu $s0, 1($s1) +/* 072D00 7F03E1D0 26310001 */ addiu $s1, $s1, 1 +/* 072D04 7F03E1D4 5650FFF9 */ bnel $s2, $s0, .L7F03E1BC +/* 072D08 7F03E1D8 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E1DC: +/* 072D0C 7F03E1DC 926F0001 */ lbu $t7, 1($s3) +/* 072D10 7F03E1E0 241900FF */ li $t9, 255 +/* 072D14 7F03E1E4 31F80010 */ andi $t8, $t7, 0x10 +/* 072D18 7F03E1E8 57000003 */ bnezl $t8, .L7F03E1F8 +/* 072D1C 7F03E1EC 8FBF0024 */ lw $ra, 0x24($sp) +/* 072D20 7F03E1F0 A279002C */ sb $t9, 0x2c($s3) +/* 072D24 7F03E1F4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03E1F8: +/* 072D28 7F03E1F8 8FB00014 */ lw $s0, 0x14($sp) +/* 072D2C 7F03E1FC 8FB10018 */ lw $s1, 0x18($sp) +/* 072D30 7F03E200 8FB2001C */ lw $s2, 0x1c($sp) +/* 072D34 7F03E204 8FB30020 */ lw $s3, 0x20($sp) +/* 072D38 7F03E208 03E00008 */ jr $ra +/* 072D3C 7F03E20C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E210(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E210 +/* 072D40 7F03E210 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 072D44 7F03E214 AFBF0024 */ sw $ra, 0x24($sp) +/* 072D48 7F03E218 AFB30020 */ sw $s3, 0x20($sp) +/* 072D4C 7F03E21C AFB2001C */ sw $s2, 0x1c($sp) +/* 072D50 7F03E220 AFB10018 */ sw $s1, 0x18($sp) +/* 072D54 7F03E224 AFB00014 */ sw $s0, 0x14($sp) +/* 072D58 7F03E228 9090002C */ lbu $s0, 0x2c($a0) +/* 072D5C 7F03E22C 241300FF */ li $s3, 255 +/* 072D60 7F03E230 00809025 */ move $s2, $a0 +/* 072D64 7F03E234 1270000A */ beq $s3, $s0, .L7F03E260 +/* 072D68 7F03E238 2491002C */ addiu $s1, $a0, 0x2c +/* 072D6C 7F03E23C 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E240: +/* 072D70 7F03E240 00057403 */ sra $t6, $a1, 0x10 +/* 072D74 7F03E244 01C02825 */ move $a1, $t6 +/* 072D78 7F03E248 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 072D7C 7F03E24C 02402025 */ move $a0, $s2 +/* 072D80 7F03E250 92300001 */ lbu $s0, 1($s1) +/* 072D84 7F03E254 26310001 */ addiu $s1, $s1, 1 +/* 072D88 7F03E258 5670FFF9 */ bnel $s3, $s0, .L7F03E240 +/* 072D8C 7F03E25C 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E260: +/* 072D90 7F03E260 8FBF0024 */ lw $ra, 0x24($sp) +/* 072D94 7F03E264 8FB00014 */ lw $s0, 0x14($sp) +/* 072D98 7F03E268 8FB10018 */ lw $s1, 0x18($sp) +/* 072D9C 7F03E26C 8FB2001C */ lw $s2, 0x1c($sp) +/* 072DA0 7F03E270 8FB30020 */ lw $s3, 0x20($sp) +/* 072DA4 7F03E274 03E00008 */ jr $ra +/* 072DA8 7F03E278 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E27C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E27C +/* 072DAC 7F03E27C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 072DB0 7F03E280 AFBF002C */ sw $ra, 0x2c($sp) +/* 072DB4 7F03E284 AFB00028 */ sw $s0, 0x28($sp) +/* 072DB8 7F03E288 AFA50074 */ sw $a1, 0x74($sp) +/* 072DBC 7F03E28C AFA60078 */ sw $a2, 0x78($sp) +/* 072DC0 7F03E290 AFA00048 */ sw $zero, 0x48($sp) +/* 072DC4 7F03E294 908E0001 */ lbu $t6, 1($a0) +/* 072DC8 7F03E298 44876000 */ mtc1 $a3, $f12 +/* 072DCC 7F03E29C 00808025 */ move $s0, $a0 +/* 072DD0 7F03E2A0 31CF0008 */ andi $t7, $t6, 8 +/* 072DD4 7F03E2A4 11E00028 */ beqz $t7, .L7F03E348 +/* 072DD8 7F03E2A8 00001825 */ move $v1, $zero +/* 072DDC 7F03E2AC 90820000 */ lbu $v0, ($a0) +/* 072DE0 7F03E2B0 24010001 */ li $at, 1 +/* 072DE4 7F03E2B4 2606002C */ addiu $a2, $s0, 0x2c +/* 072DE8 7F03E2B8 10410005 */ beq $v0, $at, .L7F03E2D0 +/* 072DEC 7F03E2BC 24010004 */ li $at, 4 +/* 072DF0 7F03E2C0 10410003 */ beq $v0, $at, .L7F03E2D0 +/* 072DF4 7F03E2C4 24010002 */ li $at, 2 +/* 072DF8 7F03E2C8 14410002 */ bne $v0, $at, .L7F03E2D4 +/* 072DFC 7F03E2CC 00000000 */ nop +.L7F03E2D0: +/* 072E00 7F03E2D0 8E030004 */ lw $v1, 4($s0) +.L7F03E2D4: +/* 072E04 7F03E2D4 1060000C */ beqz $v1, .L7F03E308 +/* 072E08 7F03E2D8 00000000 */ nop +/* 072E0C 7F03E2DC 8C780064 */ lw $t8, 0x64($v1) +/* 072E10 7F03E2E0 33190080 */ andi $t9, $t8, 0x80 +/* 072E14 7F03E2E4 13200008 */ beqz $t9, .L7F03E308 +/* 072E18 7F03E2E8 00000000 */ nop +/* 072E1C 7F03E2EC 8C62006C */ lw $v0, 0x6c($v1) +/* 072E20 7F03E2F0 8C490000 */ lw $t1, ($v0) +/* 072E24 7F03E2F4 312A0008 */ andi $t2, $t1, 8 +/* 072E28 7F03E2F8 11400003 */ beqz $t2, .L7F03E308 +/* 072E2C 7F03E2FC 00000000 */ nop +/* 072E30 7F03E300 10000001 */ b .L7F03E308 +/* 072E34 7F03E304 244600CC */ addiu $a2, $v0, 0xcc +.L7F03E308: +/* 072E38 7F03E308 90CB0000 */ lbu $t3, ($a2) +/* 072E3C 7F03E30C 240500FF */ li $a1, 255 +/* 072E40 7F03E310 00004025 */ move $t0, $zero +/* 072E44 7F03E314 10AB0009 */ beq $a1, $t3, .L7F03E33C +/* 072E48 7F03E318 27A20050 */ addiu $v0, $sp, 0x50 +/* 072E4C 7F03E31C 00C01825 */ move $v1, $a2 +/* 072E50 7F03E320 90C40000 */ lbu $a0, ($a2) +.L7F03E324: +/* 072E54 7F03E324 AC440000 */ sw $a0, ($v0) +/* 072E58 7F03E328 90640001 */ lbu $a0, 1($v1) +/* 072E5C 7F03E32C 25080001 */ addiu $t0, $t0, 1 +/* 072E60 7F03E330 24420004 */ addiu $v0, $v0, 4 +/* 072E64 7F03E334 14A4FFFB */ bne $a1, $a0, .L7F03E324 +/* 072E68 7F03E338 24630001 */ addiu $v1, $v1, 1 +.L7F03E33C: +/* 072E6C 7F03E33C AFA80048 */ sw $t0, 0x48($sp) +/* 072E70 7F03E340 10000010 */ b .L7F03E384 +/* 072E74 7F03E344 00004025 */ move $t0, $zero +.L7F03E348: +/* 072E78 7F03E348 8E0C0014 */ lw $t4, 0x14($s0) +/* 072E7C 7F03E34C AFA00048 */ sw $zero, 0x48($sp) +/* 072E80 7F03E350 44076000 */ mfc1 $a3, $f12 +/* 072E84 7F03E354 AFAC004C */ sw $t4, 0x4c($sp) +/* 072E88 7F03E358 8E060010 */ lw $a2, 0x10($s0) +/* 072E8C 7F03E35C 8E050008 */ lw $a1, 8($s0) +/* 072E90 7F03E360 27AD0050 */ addiu $t5, $sp, 0x50 +/* 072E94 7F03E364 27AE0048 */ addiu $t6, $sp, 0x48 +/* 072E98 7F03E368 240F0007 */ li $t7, 7 +/* 072E9C 7F03E36C AFAF0018 */ sw $t7, 0x18($sp) +/* 072EA0 7F03E370 AFAE0014 */ sw $t6, 0x14($sp) +/* 072EA4 7F03E374 AFAD0010 */ sw $t5, 0x10($sp) +/* 072EA8 7F03E378 0FC2C86C */ jal sub_GAME_7F0B21B0 +/* 072EAC 7F03E37C 27A4004C */ addiu $a0, $sp, 0x4c +/* 072EB0 7F03E380 00004025 */ move $t0, $zero +.L7F03E384: +/* 072EB4 7F03E384 24180007 */ li $t8, 7 +/* 072EB8 7F03E388 AFB80010 */ sw $t8, 0x10($sp) +/* 072EBC 7F03E38C 8FA40074 */ lw $a0, 0x74($sp) +/* 072EC0 7F03E390 8FA50078 */ lw $a1, 0x78($sp) +/* 072EC4 7F03E394 27A60050 */ addiu $a2, $sp, 0x50 +/* 072EC8 7F03E398 27A70048 */ addiu $a3, $sp, 0x48 +/* 072ECC 7F03E39C 0FC2E8B5 */ jal sub_GAME_7F0BA2D4 +/* 072ED0 7F03E3A0 AFA80044 */ sw $t0, 0x44($sp) +/* 072ED4 7F03E3A4 8FB90048 */ lw $t9, 0x48($sp) +/* 072ED8 7F03E3A8 8FA80044 */ lw $t0, 0x44($sp) +/* 072EDC 7F03E3AC 27A20050 */ addiu $v0, $sp, 0x50 +/* 072EE0 7F03E3B0 1B20000B */ blez $t9, .L7F03E3E0 +/* 072EE4 7F03E3B4 240B00FF */ li $t3, 255 +/* 072EE8 7F03E3B8 02001825 */ move $v1, $s0 +/* 072EEC 7F03E3BC 8C490000 */ lw $t1, ($v0) +.L7F03E3C0: +/* 072EF0 7F03E3C0 25080001 */ addiu $t0, $t0, 1 +/* 072EF4 7F03E3C4 24420004 */ addiu $v0, $v0, 4 +/* 072EF8 7F03E3C8 A069002C */ sb $t1, 0x2c($v1) +/* 072EFC 7F03E3CC 8FAA0048 */ lw $t2, 0x48($sp) +/* 072F00 7F03E3D0 24630001 */ addiu $v1, $v1, 1 +/* 072F04 7F03E3D4 010A082A */ slt $at, $t0, $t2 +/* 072F08 7F03E3D8 5420FFF9 */ bnezl $at, .L7F03E3C0 +/* 072F0C 7F03E3DC 8C490000 */ lw $t1, ($v0) +.L7F03E3E0: +/* 072F10 7F03E3E0 02086021 */ addu $t4, $s0, $t0 +/* 072F14 7F03E3E4 A18B002C */ sb $t3, 0x2c($t4) +/* 072F18 7F03E3E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 072F1C 7F03E3EC 8FB00028 */ lw $s0, 0x28($sp) +/* 072F20 7F03E3F0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 072F24 7F03E3F4 03E00008 */ jr $ra +/* 072F28 7F03E3F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E3FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E3FC +/* 072F2C 7F03E3FC 8C830000 */ lw $v1, ($a0) +/* 072F30 7F03E400 3C098007 */ lui $t1, %hi(ptr_list_object_lookup_indices) +/* 072F34 7F03E404 25299C30 */ addiu $t1, %lo(ptr_list_object_lookup_indices) # addiu $t1, $t1, -0x63d0 +/* 072F38 7F03E408 04600030 */ bltz $v1, .L7F03E4CC +/* 072F3C 7F03E40C 8D220000 */ lw $v0, ($t1) +/* 072F40 7F03E410 3C0A8007 */ lui $t2, %hi(ptr_room_lookup_buffer_maybe) +/* 072F44 7F03E414 254A1618 */ addiu $t2, %lo(ptr_room_lookup_buffer_maybe) # addiu $t2, $t2, 0x1618 +/* 072F48 7F03E418 240B001E */ li $t3, 30 +/* 072F4C 7F03E41C 8D4E0000 */ lw $t6, ($t2) +.L7F03E420: +/* 072F50 7F03E420 00037840 */ sll $t7, $v1, 1 +/* 072F54 7F03E424 3C068007 */ lui $a2, %hi(dword_CODE_bss_8007161C) +/* 072F58 7F03E428 01CFC021 */ addu $t8, $t6, $t7 +/* 072F5C 7F03E42C 87050000 */ lh $a1, ($t8) +/* 072F60 7F03E430 04A20023 */ bltzl $a1, .L7F03E4C0 +/* 072F64 7F03E434 8C830004 */ lw $v1, 4($a0) +/* 072F68 7F03E438 8CC6161C */ lw $a2, %lo(dword_CODE_bss_8007161C)($a2) +/* 072F6C 7F03E43C 00003825 */ move $a3, $zero +.L7F03E440: +/* 072F70 7F03E440 0005C940 */ sll $t9, $a1, 5 +.L7F03E444: +/* 072F74 7F03E444 00D96021 */ addu $t4, $a2, $t9 +/* 072F78 7F03E448 01876821 */ addu $t5, $t4, $a3 +/* 072F7C 7F03E44C 85A30000 */ lh $v1, ($t5) +/* 072F80 7F03E450 24E70002 */ addiu $a3, $a3, 2 +/* 072F84 7F03E454 04600012 */ bltz $v1, .L7F03E4A0 +/* 072F88 7F03E458 00000000 */ nop +/* 072F8C 7F03E45C 8D280000 */ lw $t0, ($t1) +/* 072F90 7F03E460 0102082B */ sltu $at, $t0, $v0 +/* 072F94 7F03E464 10200008 */ beqz $at, .L7F03E488 +/* 072F98 7F03E468 00000000 */ nop +/* 072F9C 7F03E46C 850E0000 */ lh $t6, ($t0) +.L7F03E470: +/* 072FA0 7F03E470 106E0005 */ beq $v1, $t6, .L7F03E488 +/* 072FA4 7F03E474 00000000 */ nop +/* 072FA8 7F03E478 25080002 */ addiu $t0, $t0, 2 +/* 072FAC 7F03E47C 0102082B */ sltu $at, $t0, $v0 +/* 072FB0 7F03E480 5420FFFB */ bnezl $at, .L7F03E470 +/* 072FB4 7F03E484 850E0000 */ lh $t6, ($t0) +.L7F03E488: +/* 072FB8 7F03E488 15020005 */ bne $t0, $v0, .L7F03E4A0 +/* 072FBC 7F03E48C 00000000 */ nop +/* 072FC0 7F03E490 A4430000 */ sh $v1, ($v0) +/* 072FC4 7F03E494 3C068007 */ lui $a2, %hi(dword_CODE_bss_8007161C) +/* 072FC8 7F03E498 8CC6161C */ lw $a2, %lo(dword_CODE_bss_8007161C)($a2) +/* 072FCC 7F03E49C 24420002 */ addiu $v0, $v0, 2 +.L7F03E4A0: +/* 072FD0 7F03E4A0 54EBFFE8 */ bnel $a3, $t3, .L7F03E444 +/* 072FD4 7F03E4A4 0005C940 */ sll $t9, $a1, 5 +/* 072FD8 7F03E4A8 00057940 */ sll $t7, $a1, 5 +/* 072FDC 7F03E4AC 00CFC021 */ addu $t8, $a2, $t7 +/* 072FE0 7F03E4B0 8705001E */ lh $a1, 0x1e($t8) +/* 072FE4 7F03E4B4 04A3FFE2 */ bgezl $a1, .L7F03E440 +/* 072FE8 7F03E4B8 00003825 */ move $a3, $zero +/* 072FEC 7F03E4BC 8C830004 */ lw $v1, 4($a0) +.L7F03E4C0: +/* 072FF0 7F03E4C0 24840004 */ addiu $a0, $a0, 4 +/* 072FF4 7F03E4C4 0463FFD6 */ bgezl $v1, .L7F03E420 +/* 072FF8 7F03E4C8 8D4E0000 */ lw $t6, ($t2) +.L7F03E4CC: +/* 072FFC 7F03E4CC 2419FFFF */ li $t9, -1 +/* 073000 7F03E4D0 A4590000 */ sh $t9, ($v0) +/* 073004 7F03E4D4 8D2C0000 */ lw $t4, ($t1) +/* 073008 7F03E4D8 24420002 */ addiu $v0, $v0, 2 +/* 07300C 7F03E4DC 3C018007 */ lui $at, %hi(num_obj_position_data_entries) +/* 073010 7F03E4E0 004C6823 */ subu $t5, $v0, $t4 +/* 073014 7F03E4E4 000D7043 */ sra $t6, $t5, 1 +/* 073018 7F03E4E8 03E00008 */ jr $ra +/* 07301C 7F03E4EC AC2E9C34 */ sw $t6, %lo(num_obj_position_data_entries)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E4F0 +/* 073020 7F03E4F0 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 073024 7F03E4F4 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +/* 073028 7F03E4F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07302C 7F03E4FC AFB30014 */ sw $s3, 0x14($sp) +/* 073030 7F03E500 AFB20010 */ sw $s2, 0x10($sp) +/* 073034 7F03E504 AFB1000C */ sw $s1, 0xc($sp) +/* 073038 7F03E508 AFB00008 */ sw $s0, 8($sp) +/* 07303C 7F03E50C 1860005C */ blez $v1, .L7F03E680 +/* 073040 7F03E510 00001025 */ move $v0, $zero +/* 073044 7F03E514 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_8007161C) +/* 073048 7F03E518 3C0C8007 */ lui $t4, %hi(ptr_room_lookup_buffer_maybe) +/* 07304C 7F03E51C 258C1618 */ addiu $t4, %lo(ptr_room_lookup_buffer_maybe) # addiu $t4, $t4, 0x1618 +/* 073050 7F03E520 25AD161C */ addiu $t5, %lo(dword_CODE_bss_8007161C) # addiu $t5, $t5, 0x161c +/* 073054 7F03E524 00002825 */ move $a1, $zero +/* 073058 7F03E528 2413001E */ li $s3, 30 +/* 07305C 7F03E52C 2412FFFE */ li $s2, -2 +/* 073060 7F03E530 2411001E */ li $s1, 30 +/* 073064 7F03E534 2410FFFF */ li $s0, -1 +.L7F03E538: +/* 073068 7F03E538 8D8E0000 */ lw $t6, ($t4) +/* 07306C 7F03E53C 24420001 */ addiu $v0, $v0, 1 +/* 073070 7F03E540 01C57821 */ addu $t7, $t6, $a1 +/* 073074 7F03E544 85E40000 */ lh $a0, ($t7) +/* 073078 7F03E548 0482004B */ bltzl $a0, .L7F03E678 +/* 07307C 7F03E54C 0043082A */ slt $at, $v0, $v1 +/* 073080 7F03E550 8DB80000 */ lw $t8, ($t5) +/* 073084 7F03E554 0004C940 */ sll $t9, $a0, 5 +/* 073088 7F03E558 03197021 */ addu $t6, $t8, $t9 +/* 07308C 7F03E55C 85C6001E */ lh $a2, 0x1e($t6) +/* 073090 7F03E560 04C00044 */ bltz $a2, .L7F03E674 +/* 073094 7F03E564 00004025 */ move $t0, $zero +.L7F03E568: +/* 073098 7F03E568 8DA30000 */ lw $v1, ($t5) +.L7F03E56C: +/* 07309C 7F03E56C 00047940 */ sll $t7, $a0, 5 +/* 0730A0 7F03E570 00067140 */ sll $t6, $a2, 5 +/* 0730A4 7F03E574 006FC021 */ addu $t8, $v1, $t7 +/* 0730A8 7F03E578 03083821 */ addu $a3, $t8, $t0 +/* 0730AC 7F03E57C 84F90000 */ lh $t9, ($a3) +/* 0730B0 7F03E580 25080002 */ addiu $t0, $t0, 2 +/* 0730B4 7F03E584 00005025 */ move $t2, $zero +/* 0730B8 7F03E588 0721002C */ bgez $t9, .L7F03E63C +/* 0730BC 7F03E58C 006E5821 */ addu $t3, $v1, $t6 +.L7F03E590: +/* 0730C0 7F03E590 85630000 */ lh $v1, ($t3) +/* 0730C4 7F03E594 04620009 */ bltzl $v1, .L7F03E5BC +/* 0730C8 7F03E598 254A0002 */ addiu $t2, $t2, 2 +/* 0730CC 7F03E59C A4E30000 */ sh $v1, ($a3) +/* 0730D0 7F03E5A0 8DAF0000 */ lw $t7, ($t5) +/* 0730D4 7F03E5A4 0006C140 */ sll $t8, $a2, 5 +/* 0730D8 7F03E5A8 01F8C821 */ addu $t9, $t7, $t8 +/* 0730DC 7F03E5AC 032A7021 */ addu $t6, $t9, $t2 +/* 0730E0 7F03E5B0 10000004 */ b .L7F03E5C4 +/* 0730E4 7F03E5B4 A5D00000 */ sh $s0, ($t6) +/* 0730E8 7F03E5B8 254A0002 */ addiu $t2, $t2, 2 +.L7F03E5BC: +/* 0730EC 7F03E5BC 1553FFF4 */ bne $t2, $s3, .L7F03E590 +/* 0730F0 7F03E5C0 256B0002 */ addiu $t3, $t3, 2 +.L7F03E5C4: +/* 0730F4 7F03E5C4 2941001E */ slti $at, $t2, 0x1e +/* 0730F8 7F03E5C8 1020000C */ beqz $at, .L7F03E5FC +/* 0730FC 7F03E5CC 00000000 */ nop +/* 073100 7F03E5D0 8DAF0000 */ lw $t7, ($t5) +/* 073104 7F03E5D4 0006C140 */ sll $t8, $a2, 5 +/* 073108 7F03E5D8 01F8C821 */ addu $t9, $t7, $t8 +/* 07310C 7F03E5DC 032A5821 */ addu $t3, $t9, $t2 +.L7F03E5E0: +/* 073110 7F03E5E0 856E0000 */ lh $t6, ($t3) +/* 073114 7F03E5E4 05C10005 */ bgez $t6, .L7F03E5FC +/* 073118 7F03E5E8 00000000 */ nop +/* 07311C 7F03E5EC 254A0002 */ addiu $t2, $t2, 2 +/* 073120 7F03E5F0 2941001E */ slti $at, $t2, 0x1e +/* 073124 7F03E5F4 1420FFFA */ bnez $at, .L7F03E5E0 +/* 073128 7F03E5F8 256B0002 */ addiu $t3, $t3, 2 +.L7F03E5FC: +/* 07312C 7F03E5FC 55510010 */ bnel $t2, $s1, .L7F03E640 +/* 073130 7F03E600 2901001E */ slti $at, $t0, 0x1e +/* 073134 7F03E604 8DAF0000 */ lw $t7, ($t5) +/* 073138 7F03E608 00064940 */ sll $t1, $a2, 5 +/* 07313C 7F03E60C 00043940 */ sll $a3, $a0, 5 +/* 073140 7F03E610 01E9C021 */ addu $t8, $t7, $t1 +/* 073144 7F03E614 A7120000 */ sh $s2, ($t8) +/* 073148 7F03E618 8DA30000 */ lw $v1, ($t5) +/* 07314C 7F03E61C 0069C821 */ addu $t9, $v1, $t1 +/* 073150 7F03E620 872E001E */ lh $t6, 0x1e($t9) +/* 073154 7F03E624 00677821 */ addu $t7, $v1, $a3 +/* 073158 7F03E628 A5EE001E */ sh $t6, 0x1e($t7) +/* 07315C 7F03E62C 8DB80000 */ lw $t8, ($t5) +/* 073160 7F03E630 0307C821 */ addu $t9, $t8, $a3 +/* 073164 7F03E634 8726001E */ lh $a2, 0x1e($t9) +/* 073168 7F03E638 04C00003 */ bltz $a2, .L7F03E648 +.L7F03E63C: +/* 07316C 7F03E63C 2901001E */ slti $at, $t0, 0x1e +.L7F03E640: +/* 073170 7F03E640 5420FFCA */ bnezl $at, .L7F03E56C +/* 073174 7F03E644 8DA30000 */ lw $v1, ($t5) +.L7F03E648: +/* 073178 7F03E648 04C00006 */ bltz $a2, .L7F03E664 +/* 07317C 7F03E64C 00000000 */ nop +/* 073180 7F03E650 8DAE0000 */ lw $t6, ($t5) +/* 073184 7F03E654 00067940 */ sll $t7, $a2, 5 +/* 073188 7F03E658 00C02025 */ move $a0, $a2 +/* 07318C 7F03E65C 01CFC021 */ addu $t8, $t6, $t7 +/* 073190 7F03E660 8706001E */ lh $a2, 0x1e($t8) +.L7F03E664: +/* 073194 7F03E664 04C3FFC0 */ bgezl $a2, .L7F03E568 +/* 073198 7F03E668 00004025 */ move $t0, $zero +/* 07319C 7F03E66C 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0731A0 7F03E670 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +.L7F03E674: +/* 0731A4 7F03E674 0043082A */ slt $at, $v0, $v1 +.L7F03E678: +/* 0731A8 7F03E678 1420FFAF */ bnez $at, .L7F03E538 +/* 0731AC 7F03E67C 24A50002 */ addiu $a1, $a1, 2 +.L7F03E680: +/* 0731B0 7F03E680 8FB00008 */ lw $s0, 8($sp) +/* 0731B4 7F03E684 8FB1000C */ lw $s1, 0xc($sp) +/* 0731B8 7F03E688 8FB20010 */ lw $s2, 0x10($sp) +/* 0731BC 7F03E68C 8FB30014 */ lw $s3, 0x14($sp) +/* 0731C0 7F03E690 03E00008 */ jr $ra +/* 0731C4 7F03E694 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void removed_debug_roomblocks_feature(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_debug_roomblocks_feature +/* 0731C8 7F03E698 03E00008 */ jr $ra +/* 0731CC 7F03E69C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E6A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E6A0 +/* 0731D0 7F03E6A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0731D4 7F03E6A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0731D8 7F03E6A8 AFB10018 */ sw $s1, 0x18($sp) +/* 0731DC 7F03E6AC AFB00014 */ sw $s0, 0x14($sp) +/* 0731E0 7F03E6B0 8C820004 */ lw $v0, 4($a0) +/* 0731E4 7F03E6B4 00808825 */ move $s1, $a0 +/* 0731E8 7F03E6B8 3C108003 */ lui $s0, %hi(D_80030B00) +/* 0731EC 7F03E6BC 8C4E0064 */ lw $t6, 0x64($v0) +/* 0731F0 7F03E6C0 31CF0001 */ andi $t7, $t6, 1 +/* 0731F4 7F03E6C4 51E00010 */ beql $t7, $zero, .L7F03E708 +/* 0731F8 7F03E6C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0731FC 7F03E6CC 8E100B00 */ lw $s0, %lo(D_80030B00)($s0) +/* 073200 7F03E6D0 5200000D */ beql $s0, $zero, .L7F03E708 +/* 073204 7F03E6D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 073208 7F03E6D8 8E180004 */ lw $t8, 4($s0) +.L7F03E6DC: +/* 07320C 7F03E6DC 56380007 */ bnel $s1, $t8, .L7F03E6FC +/* 073210 7F03E6E0 8E10000C */ lw $s0, 0xc($s0) +/* 073214 7F03E6E4 8E040008 */ lw $a0, 8($s0) +/* 073218 7F03E6E8 50800004 */ beql $a0, $zero, .L7F03E6FC +/* 07321C 7F03E6EC 8E10000C */ lw $s0, 0xc($s0) +/* 073220 7F03E6F0 0FC15667 */ jal sub_GAME_7F05599C +/* 073224 7F03E6F4 00000000 */ nop +/* 073228 7F03E6F8 8E10000C */ lw $s0, 0xc($s0) +.L7F03E6FC: +/* 07322C 7F03E6FC 5600FFF7 */ bnezl $s0, .L7F03E6DC +/* 073230 7F03E700 8E180004 */ lw $t8, 4($s0) +/* 073234 7F03E704 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03E708: +/* 073238 7F03E708 8FB00014 */ lw $s0, 0x14($sp) +/* 07323C 7F03E70C 8FB10018 */ lw $s1, 0x18($sp) +/* 073240 7F03E710 03E00008 */ jr $ra +/* 073244 7F03E714 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E718 +/* 073248 7F03E718 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 07324C 7F03E71C AFBF001C */ sw $ra, 0x1c($sp) +/* 073250 7F03E720 AFB10018 */ sw $s1, 0x18($sp) +/* 073254 7F03E724 AFB00014 */ sw $s0, 0x14($sp) +/* 073258 7F03E728 8C8E0064 */ lw $t6, 0x64($a0) +/* 07325C 7F03E72C 00808825 */ move $s1, $a0 +/* 073260 7F03E730 3C108003 */ lui $s0, %hi(D_80030B04) +/* 073264 7F03E734 31CF2000 */ andi $t7, $t6, 0x2000 +/* 073268 7F03E738 51E00017 */ beql $t7, $zero, .L7F03E798 +/* 07326C 7F03E73C 24020001 */ li $v0, 1 +/* 073270 7F03E740 8E100B04 */ lw $s0, %lo(D_80030B04)($s0) +/* 073274 7F03E744 52000014 */ beql $s0, $zero, .L7F03E798 +/* 073278 7F03E748 24020001 */ li $v0, 1 +/* 07327C 7F03E74C 8E180004 */ lw $t8, 4($s0) +.L7F03E750: +/* 073280 7F03E750 5638000E */ bnel $s1, $t8, .L7F03E78C +/* 073284 7F03E754 8E10000C */ lw $s0, 0xc($s0) +/* 073288 7F03E758 8E040008 */ lw $a0, 8($s0) +/* 07328C 7F03E75C 5080000B */ beql $a0, $zero, .L7F03E78C +/* 073290 7F03E760 8E10000C */ lw $s0, 0xc($s0) +/* 073294 7F03E764 8C990010 */ lw $t9, 0x10($a0) +/* 073298 7F03E768 53200008 */ beql $t9, $zero, .L7F03E78C +/* 07329C 7F03E76C 8E10000C */ lw $s0, 0xc($s0) +/* 0732A0 7F03E770 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 0732A4 7F03E774 00000000 */ nop +/* 0732A8 7F03E778 50400004 */ beql $v0, $zero, .L7F03E78C +/* 0732AC 7F03E77C 8E10000C */ lw $s0, 0xc($s0) +/* 0732B0 7F03E780 10000005 */ b .L7F03E798 +/* 0732B4 7F03E784 00001025 */ move $v0, $zero +/* 0732B8 7F03E788 8E10000C */ lw $s0, 0xc($s0) +.L7F03E78C: +/* 0732BC 7F03E78C 5600FFF0 */ bnezl $s0, .L7F03E750 +/* 0732C0 7F03E790 8E180004 */ lw $t8, 4($s0) +/* 0732C4 7F03E794 24020001 */ li $v0, 1 +.L7F03E798: +/* 0732C8 7F03E798 8FBF001C */ lw $ra, 0x1c($sp) +/* 0732CC 7F03E79C 8FB00014 */ lw $s0, 0x14($sp) +/* 0732D0 7F03E7A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0732D4 7F03E7A4 03E00008 */ jr $ra +/* 0732D8 7F03E7A8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E7AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E7AC +/* 0732DC 7F03E7AC 8C8E000C */ lw $t6, 0xc($a0) +/* 0732E0 7F03E7B0 3C028003 */ lui $v0, %hi(D_80030B08) +/* 0732E4 7F03E7B4 31CF0400 */ andi $t7, $t6, 0x400 +/* 0732E8 7F03E7B8 51E0001B */ beql $t7, $zero, .L7F03E828 +/* 0732EC 7F03E7BC 24020001 */ li $v0, 1 +/* 0732F0 7F03E7C0 8C420B08 */ lw $v0, %lo(D_80030B08)($v0) +/* 0732F4 7F03E7C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0732F8 7F03E7C8 50400017 */ beql $v0, $zero, .L7F03E828 +/* 0732FC 7F03E7CC 24020001 */ li $v0, 1 +/* 073300 7F03E7D0 44810000 */ mtc1 $at, $f0 +/* 073304 7F03E7D4 00000000 */ nop +/* 073308 7F03E7D8 8C580004 */ lw $t8, 4($v0) +.L7F03E7DC: +/* 07330C 7F03E7DC 5498000F */ bnel $a0, $t8, .L7F03E81C +/* 073310 7F03E7E0 8C420010 */ lw $v0, 0x10($v0) +/* 073314 7F03E7E4 8C43000C */ lw $v1, 0xc($v0) +/* 073318 7F03E7E8 5060000C */ beql $v1, $zero, .L7F03E81C +/* 07331C 7F03E7EC 8C420010 */ lw $v0, 0x10($v0) +/* 073320 7F03E7F0 8C790010 */ lw $t9, 0x10($v1) +/* 073324 7F03E7F4 53200009 */ beql $t9, $zero, .L7F03E81C +/* 073328 7F03E7F8 8C420010 */ lw $v0, 0x10($v0) +/* 07332C 7F03E7FC C46400B4 */ lwc1 $f4, 0xb4($v1) +/* 073330 7F03E800 4600203E */ c.le.s $f4, $f0 +/* 073334 7F03E804 00000000 */ nop +/* 073338 7F03E808 45020004 */ bc1fl .L7F03E81C +/* 07333C 7F03E80C 8C420010 */ lw $v0, 0x10($v0) +/* 073340 7F03E810 03E00008 */ jr $ra +/* 073344 7F03E814 00001025 */ move $v0, $zero + +/* 073348 7F03E818 8C420010 */ lw $v0, 0x10($v0) +.L7F03E81C: +/* 07334C 7F03E81C 5440FFEF */ bnezl $v0, .L7F03E7DC +/* 073350 7F03E820 8C580004 */ lw $t8, 4($v0) +/* 073354 7F03E824 24020001 */ li $v0, 1 +.L7F03E828: +/* 073358 7F03E828 03E00008 */ jr $ra +/* 07335C 7F03E82C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E830(void) { + +} +#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 sub_GAME_7F0B2970 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E85C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E85C +/* 07338C 7F03E85C 03E00008 */ jr $ra +/* 073390 7F03E860 C4800004 */ lwc1 $f0, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E864(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E864 +/* 073394 7F03E864 03E00008 */ jr $ra +/* 073398 7F03E868 C480000C */ lwc1 $f0, 0xc($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E86C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E86C +/* 07339C 7F03E86C 03E00008 */ jr $ra +/* 0733A0 7F03E870 C4800010 */ lwc1 $f0, 0x10($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E874(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E874 +/* 0733A4 7F03E874 03E00008 */ jr $ra +/* 0733A8 7F03E878 C4800014 */ lwc1 $f0, 0x14($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E87C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E87C +/* 0733AC 7F03E87C 44806000 */ mtc1 $zero, $f12 +/* 0733B0 7F03E880 C4A00000 */ lwc1 $f0, ($a1) +/* 0733B4 7F03E884 4600603E */ c.le.s $f12, $f0 +/* 0733B8 7F03E888 00000000 */ nop +/* 0733BC 7F03E88C 45020006 */ bc1fl .L7F03E8A8 +/* 0733C0 7F03E890 C4880008 */ lwc1 $f8, 8($a0) +/* 0733C4 7F03E894 C4840004 */ lwc1 $f4, 4($a0) +/* 0733C8 7F03E898 46002182 */ mul.s $f6, $f4, $f0 +/* 0733CC 7F03E89C 10000004 */ b .L7F03E8B0 +/* 0733D0 7F03E8A0 46066080 */ add.s $f2, $f12, $f6 +/* 0733D4 7F03E8A4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E8A8: +/* 0733D8 7F03E8A8 46004282 */ mul.s $f10, $f8, $f0 +/* 0733DC 7F03E8AC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E8B0: +/* 0733E0 7F03E8B0 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 0733E4 7F03E8B4 4600603E */ c.le.s $f12, $f0 +/* 0733E8 7F03E8B8 00000000 */ nop +/* 0733EC 7F03E8BC 45020006 */ bc1fl .L7F03E8D8 +/* 0733F0 7F03E8C0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 0733F4 7F03E8C4 C490000C */ lwc1 $f16, 0xc($a0) +/* 0733F8 7F03E8C8 46008482 */ mul.s $f18, $f16, $f0 +/* 0733FC 7F03E8CC 10000004 */ b .L7F03E8E0 +/* 073400 7F03E8D0 46121080 */ add.s $f2, $f2, $f18 +/* 073404 7F03E8D4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03E8D8: +/* 073408 7F03E8D8 46002182 */ mul.s $f6, $f4, $f0 +/* 07340C 7F03E8DC 46061080 */ add.s $f2, $f2, $f6 +.L7F03E8E0: +/* 073410 7F03E8E0 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 073414 7F03E8E4 4600603E */ c.le.s $f12, $f0 +/* 073418 7F03E8E8 00000000 */ nop +/* 07341C 7F03E8EC 45020007 */ bc1fl .L7F03E90C +/* 073420 7F03E8F0 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073424 7F03E8F4 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073428 7F03E8F8 46004282 */ mul.s $f10, $f8, $f0 +/* 07342C 7F03E8FC 460A1080 */ add.s $f2, $f2, $f10 +/* 073430 7F03E900 03E00008 */ jr $ra +/* 073434 7F03E904 46001006 */ mov.s $f0, $f2 + +/* 073438 7F03E908 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03E90C: +/* 07343C 7F03E90C 46008482 */ mul.s $f18, $f16, $f0 +/* 073440 7F03E910 46121080 */ add.s $f2, $f2, $f18 +/* 073444 7F03E914 03E00008 */ jr $ra +/* 073448 7F03E918 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E91C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E91C +/* 07344C 7F03E91C 44806000 */ mtc1 $zero, $f12 +/* 073450 7F03E920 C4A00000 */ lwc1 $f0, ($a1) +/* 073454 7F03E924 460C003E */ c.le.s $f0, $f12 +/* 073458 7F03E928 00000000 */ nop +/* 07345C 7F03E92C 45020006 */ bc1fl .L7F03E948 +/* 073460 7F03E930 C4880008 */ lwc1 $f8, 8($a0) +/* 073464 7F03E934 C4840004 */ lwc1 $f4, 4($a0) +/* 073468 7F03E938 46002182 */ mul.s $f6, $f4, $f0 +/* 07346C 7F03E93C 10000004 */ b .L7F03E950 +/* 073470 7F03E940 46066080 */ add.s $f2, $f12, $f6 +/* 073474 7F03E944 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E948: +/* 073478 7F03E948 46004282 */ mul.s $f10, $f8, $f0 +/* 07347C 7F03E94C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E950: +/* 073480 7F03E950 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 073484 7F03E954 460C003E */ c.le.s $f0, $f12 +/* 073488 7F03E958 00000000 */ nop +/* 07348C 7F03E95C 45020006 */ bc1fl .L7F03E978 +/* 073490 7F03E960 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073494 7F03E964 C490000C */ lwc1 $f16, 0xc($a0) +/* 073498 7F03E968 46008482 */ mul.s $f18, $f16, $f0 +/* 07349C 7F03E96C 10000004 */ b .L7F03E980 +/* 0734A0 7F03E970 46121080 */ add.s $f2, $f2, $f18 +/* 0734A4 7F03E974 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03E978: +/* 0734A8 7F03E978 46002182 */ mul.s $f6, $f4, $f0 +/* 0734AC 7F03E97C 46061080 */ add.s $f2, $f2, $f6 +.L7F03E980: +/* 0734B0 7F03E980 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 0734B4 7F03E984 460C003E */ c.le.s $f0, $f12 +/* 0734B8 7F03E988 00000000 */ nop +/* 0734BC 7F03E98C 45020007 */ bc1fl .L7F03E9AC +/* 0734C0 7F03E990 C4900018 */ lwc1 $f16, 0x18($a0) +/* 0734C4 7F03E994 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0734C8 7F03E998 46004282 */ mul.s $f10, $f8, $f0 +/* 0734CC 7F03E99C 460A1080 */ add.s $f2, $f2, $f10 +/* 0734D0 7F03E9A0 03E00008 */ jr $ra +/* 0734D4 7F03E9A4 46001006 */ mov.s $f0, $f2 + +/* 0734D8 7F03E9A8 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03E9AC: +/* 0734DC 7F03E9AC 46008482 */ mul.s $f18, $f16, $f0 +/* 0734E0 7F03E9B0 46121080 */ add.s $f2, $f2, $f18 +/* 0734E4 7F03E9B4 03E00008 */ jr $ra +/* 0734E8 7F03E9B8 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E9BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E9BC +/* 0734EC 7F03E9BC 44806000 */ mtc1 $zero, $f12 +/* 0734F0 7F03E9C0 C4A00004 */ lwc1 $f0, 4($a1) +/* 0734F4 7F03E9C4 4600603E */ c.le.s $f12, $f0 +/* 0734F8 7F03E9C8 00000000 */ nop +/* 0734FC 7F03E9CC 45020006 */ bc1fl .L7F03E9E8 +/* 073500 7F03E9D0 C4880008 */ lwc1 $f8, 8($a0) +/* 073504 7F03E9D4 C4840004 */ lwc1 $f4, 4($a0) +/* 073508 7F03E9D8 46002182 */ mul.s $f6, $f4, $f0 +/* 07350C 7F03E9DC 10000004 */ b .L7F03E9F0 +/* 073510 7F03E9E0 46066080 */ add.s $f2, $f12, $f6 +/* 073514 7F03E9E4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E9E8: +/* 073518 7F03E9E8 46004282 */ mul.s $f10, $f8, $f0 +/* 07351C 7F03E9EC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E9F0: +/* 073520 7F03E9F0 C4A00014 */ lwc1 $f0, 0x14($a1) +/* 073524 7F03E9F4 4600603E */ c.le.s $f12, $f0 +/* 073528 7F03E9F8 00000000 */ nop +/* 07352C 7F03E9FC 45020006 */ bc1fl .L7F03EA18 +/* 073530 7F03EA00 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073534 7F03EA04 C490000C */ lwc1 $f16, 0xc($a0) +/* 073538 7F03EA08 46008482 */ mul.s $f18, $f16, $f0 +/* 07353C 7F03EA0C 10000004 */ b .L7F03EA20 +/* 073540 7F03EA10 46121080 */ add.s $f2, $f2, $f18 +/* 073544 7F03EA14 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EA18: +/* 073548 7F03EA18 46002182 */ mul.s $f6, $f4, $f0 +/* 07354C 7F03EA1C 46061080 */ add.s $f2, $f2, $f6 +.L7F03EA20: +/* 073550 7F03EA20 C4A00024 */ lwc1 $f0, 0x24($a1) +/* 073554 7F03EA24 4600603E */ c.le.s $f12, $f0 +/* 073558 7F03EA28 00000000 */ nop +/* 07355C 7F03EA2C 45020007 */ bc1fl .L7F03EA4C +/* 073560 7F03EA30 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073564 7F03EA34 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073568 7F03EA38 46004282 */ mul.s $f10, $f8, $f0 +/* 07356C 7F03EA3C 460A1080 */ add.s $f2, $f2, $f10 +/* 073570 7F03EA40 03E00008 */ jr $ra +/* 073574 7F03EA44 46001006 */ mov.s $f0, $f2 + +/* 073578 7F03EA48 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EA4C: +/* 07357C 7F03EA4C 46008482 */ mul.s $f18, $f16, $f0 +/* 073580 7F03EA50 46121080 */ add.s $f2, $f2, $f18 +/* 073584 7F03EA54 03E00008 */ jr $ra +/* 073588 7F03EA58 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EA5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EA5C +/* 07358C 7F03EA5C 44806000 */ mtc1 $zero, $f12 +/* 073590 7F03EA60 C4A00004 */ lwc1 $f0, 4($a1) +/* 073594 7F03EA64 460C003E */ c.le.s $f0, $f12 +/* 073598 7F03EA68 00000000 */ nop +/* 07359C 7F03EA6C 45020006 */ bc1fl .L7F03EA88 +/* 0735A0 7F03EA70 C4880008 */ lwc1 $f8, 8($a0) +/* 0735A4 7F03EA74 C4840004 */ lwc1 $f4, 4($a0) +/* 0735A8 7F03EA78 46002182 */ mul.s $f6, $f4, $f0 +/* 0735AC 7F03EA7C 10000004 */ b .L7F03EA90 +/* 0735B0 7F03EA80 46066080 */ add.s $f2, $f12, $f6 +/* 0735B4 7F03EA84 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EA88: +/* 0735B8 7F03EA88 46004282 */ mul.s $f10, $f8, $f0 +/* 0735BC 7F03EA8C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EA90: +/* 0735C0 7F03EA90 C4A00014 */ lwc1 $f0, 0x14($a1) +/* 0735C4 7F03EA94 460C003E */ c.le.s $f0, $f12 +/* 0735C8 7F03EA98 00000000 */ nop +/* 0735CC 7F03EA9C 45020006 */ bc1fl .L7F03EAB8 +/* 0735D0 7F03EAA0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 0735D4 7F03EAA4 C490000C */ lwc1 $f16, 0xc($a0) +/* 0735D8 7F03EAA8 46008482 */ mul.s $f18, $f16, $f0 +/* 0735DC 7F03EAAC 10000004 */ b .L7F03EAC0 +/* 0735E0 7F03EAB0 46121080 */ add.s $f2, $f2, $f18 +/* 0735E4 7F03EAB4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EAB8: +/* 0735E8 7F03EAB8 46002182 */ mul.s $f6, $f4, $f0 +/* 0735EC 7F03EABC 46061080 */ add.s $f2, $f2, $f6 +.L7F03EAC0: +/* 0735F0 7F03EAC0 C4A00024 */ lwc1 $f0, 0x24($a1) +/* 0735F4 7F03EAC4 460C003E */ c.le.s $f0, $f12 +/* 0735F8 7F03EAC8 00000000 */ nop +/* 0735FC 7F03EACC 45020007 */ bc1fl .L7F03EAEC +/* 073600 7F03EAD0 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073604 7F03EAD4 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073608 7F03EAD8 46004282 */ mul.s $f10, $f8, $f0 +/* 07360C 7F03EADC 460A1080 */ add.s $f2, $f2, $f10 +/* 073610 7F03EAE0 03E00008 */ jr $ra +/* 073614 7F03EAE4 46001006 */ mov.s $f0, $f2 + +/* 073618 7F03EAE8 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EAEC: +/* 07361C 7F03EAEC 46008482 */ mul.s $f18, $f16, $f0 +/* 073620 7F03EAF0 46121080 */ add.s $f2, $f2, $f18 +/* 073624 7F03EAF4 03E00008 */ jr $ra +/* 073628 7F03EAF8 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EAFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EAFC +/* 07362C 7F03EAFC 44806000 */ mtc1 $zero, $f12 +/* 073630 7F03EB00 C4A00008 */ lwc1 $f0, 8($a1) +/* 073634 7F03EB04 4600603E */ c.le.s $f12, $f0 +/* 073638 7F03EB08 00000000 */ nop +/* 07363C 7F03EB0C 45020006 */ bc1fl .L7F03EB28 +/* 073640 7F03EB10 C4880008 */ lwc1 $f8, 8($a0) +/* 073644 7F03EB14 C4840004 */ lwc1 $f4, 4($a0) +/* 073648 7F03EB18 46002182 */ mul.s $f6, $f4, $f0 +/* 07364C 7F03EB1C 10000004 */ b .L7F03EB30 +/* 073650 7F03EB20 46066080 */ add.s $f2, $f12, $f6 +/* 073654 7F03EB24 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EB28: +/* 073658 7F03EB28 46004282 */ mul.s $f10, $f8, $f0 +/* 07365C 7F03EB2C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EB30: +/* 073660 7F03EB30 C4A00018 */ lwc1 $f0, 0x18($a1) +/* 073664 7F03EB34 4600603E */ c.le.s $f12, $f0 +/* 073668 7F03EB38 00000000 */ nop +/* 07366C 7F03EB3C 45020006 */ bc1fl .L7F03EB58 +/* 073670 7F03EB40 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073674 7F03EB44 C490000C */ lwc1 $f16, 0xc($a0) +/* 073678 7F03EB48 46008482 */ mul.s $f18, $f16, $f0 +/* 07367C 7F03EB4C 10000004 */ b .L7F03EB60 +/* 073680 7F03EB50 46121080 */ add.s $f2, $f2, $f18 +/* 073684 7F03EB54 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EB58: +/* 073688 7F03EB58 46002182 */ mul.s $f6, $f4, $f0 +/* 07368C 7F03EB5C 46061080 */ add.s $f2, $f2, $f6 +.L7F03EB60: +/* 073690 7F03EB60 C4A00028 */ lwc1 $f0, 0x28($a1) +/* 073694 7F03EB64 4600603E */ c.le.s $f12, $f0 +/* 073698 7F03EB68 00000000 */ nop +/* 07369C 7F03EB6C 45020007 */ bc1fl .L7F03EB8C +/* 0736A0 7F03EB70 C4900018 */ lwc1 $f16, 0x18($a0) +/* 0736A4 7F03EB74 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0736A8 7F03EB78 46004282 */ mul.s $f10, $f8, $f0 +/* 0736AC 7F03EB7C 460A1080 */ add.s $f2, $f2, $f10 +/* 0736B0 7F03EB80 03E00008 */ jr $ra +/* 0736B4 7F03EB84 46001006 */ mov.s $f0, $f2 + +/* 0736B8 7F03EB88 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EB8C: +/* 0736BC 7F03EB8C 46008482 */ mul.s $f18, $f16, $f0 +/* 0736C0 7F03EB90 46121080 */ add.s $f2, $f2, $f18 +/* 0736C4 7F03EB94 03E00008 */ jr $ra +/* 0736C8 7F03EB98 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EB9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EB9C +/* 0736CC 7F03EB9C 44806000 */ mtc1 $zero, $f12 +/* 0736D0 7F03EBA0 C4A00008 */ lwc1 $f0, 8($a1) +/* 0736D4 7F03EBA4 460C003E */ c.le.s $f0, $f12 +/* 0736D8 7F03EBA8 00000000 */ nop +/* 0736DC 7F03EBAC 45020006 */ bc1fl .L7F03EBC8 +/* 0736E0 7F03EBB0 C4880008 */ lwc1 $f8, 8($a0) +/* 0736E4 7F03EBB4 C4840004 */ lwc1 $f4, 4($a0) +/* 0736E8 7F03EBB8 46002182 */ mul.s $f6, $f4, $f0 +/* 0736EC 7F03EBBC 10000004 */ b .L7F03EBD0 +/* 0736F0 7F03EBC0 46066080 */ add.s $f2, $f12, $f6 +/* 0736F4 7F03EBC4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EBC8: +/* 0736F8 7F03EBC8 46004282 */ mul.s $f10, $f8, $f0 +/* 0736FC 7F03EBCC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EBD0: +/* 073700 7F03EBD0 C4A00018 */ lwc1 $f0, 0x18($a1) +/* 073704 7F03EBD4 460C003E */ c.le.s $f0, $f12 +/* 073708 7F03EBD8 00000000 */ nop +/* 07370C 7F03EBDC 45020006 */ bc1fl .L7F03EBF8 +/* 073710 7F03EBE0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073714 7F03EBE4 C490000C */ lwc1 $f16, 0xc($a0) +/* 073718 7F03EBE8 46008482 */ mul.s $f18, $f16, $f0 +/* 07371C 7F03EBEC 10000004 */ b .L7F03EC00 +/* 073720 7F03EBF0 46121080 */ add.s $f2, $f2, $f18 +/* 073724 7F03EBF4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EBF8: +/* 073728 7F03EBF8 46002182 */ mul.s $f6, $f4, $f0 +/* 07372C 7F03EBFC 46061080 */ add.s $f2, $f2, $f6 +.L7F03EC00: +/* 073730 7F03EC00 C4A00028 */ lwc1 $f0, 0x28($a1) +/* 073734 7F03EC04 460C003E */ c.le.s $f0, $f12 +/* 073738 7F03EC08 00000000 */ nop +/* 07373C 7F03EC0C 45020007 */ bc1fl .L7F03EC2C +/* 073740 7F03EC10 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073744 7F03EC14 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073748 7F03EC18 46004282 */ mul.s $f10, $f8, $f0 +/* 07374C 7F03EC1C 460A1080 */ add.s $f2, $f2, $f10 +/* 073750 7F03EC20 03E00008 */ jr $ra +/* 073754 7F03EC24 46001006 */ mov.s $f0, $f2 + +/* 073758 7F03EC28 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EC2C: +/* 07375C 7F03EC2C 46008482 */ mul.s $f18, $f16, $f0 +/* 073760 7F03EC30 46121080 */ add.s $f2, $f2, $f18 +/* 073764 7F03EC34 03E00008 */ jr $ra +/* 073768 7F03EC38 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EC3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EC3C +/* 07376C 7F03EC3C 44800000 */ mtc1 $zero, $f0 +/* 073770 7F03EC40 C4A40008 */ lwc1 $f4, 8($a1) +/* 073774 7F03EC44 4600203E */ c.le.s $f4, $f0 +/* 073778 7F03EC48 00000000 */ nop +/* 07377C 7F03EC4C 45020005 */ bc1fl .L7F03EC64 +/* 073780 7F03EC50 C4880008 */ lwc1 $f8, 8($a0) +/* 073784 7F03EC54 C4860004 */ lwc1 $f6, 4($a0) +/* 073788 7F03EC58 10000003 */ b .L7F03EC68 +/* 07378C 7F03EC5C E4C60000 */ swc1 $f6, ($a2) +/* 073790 7F03EC60 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EC64: +/* 073794 7F03EC64 E4C80000 */ swc1 $f8, ($a2) +.L7F03EC68: +/* 073798 7F03EC68 C4AA0018 */ lwc1 $f10, 0x18($a1) +/* 07379C 7F03EC6C 4600503E */ c.le.s $f10, $f0 +/* 0737A0 7F03EC70 00000000 */ nop +/* 0737A4 7F03EC74 45020005 */ bc1fl .L7F03EC8C +/* 0737A8 7F03EC78 C4920010 */ lwc1 $f18, 0x10($a0) +/* 0737AC 7F03EC7C C490000C */ lwc1 $f16, 0xc($a0) +/* 0737B0 7F03EC80 10000003 */ b .L7F03EC90 +/* 0737B4 7F03EC84 E4D00004 */ swc1 $f16, 4($a2) +/* 0737B8 7F03EC88 C4920010 */ lwc1 $f18, 0x10($a0) +.L7F03EC8C: +/* 0737BC 7F03EC8C E4D20004 */ swc1 $f18, 4($a2) +.L7F03EC90: +/* 0737C0 7F03EC90 C4A40028 */ lwc1 $f4, 0x28($a1) +/* 0737C4 7F03EC94 4600203E */ c.le.s $f4, $f0 +/* 0737C8 7F03EC98 00000000 */ nop +/* 0737CC 7F03EC9C 45020005 */ bc1fl .L7F03ECB4 +/* 0737D0 7F03ECA0 C4880018 */ lwc1 $f8, 0x18($a0) +/* 0737D4 7F03ECA4 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0737D8 7F03ECA8 03E00008 */ jr $ra +/* 0737DC 7F03ECAC E4C60008 */ swc1 $f6, 8($a2) + +/* 0737E0 7F03ECB0 C4880018 */ lwc1 $f8, 0x18($a0) +.L7F03ECB4: +/* 0737E4 7F03ECB4 E4C80008 */ swc1 $f8, 8($a2) +/* 0737E8 7F03ECB8 03E00008 */ jr $ra +/* 0737EC 7F03ECBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03ECC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03ECC0 +/* 0737F0 7F03ECC0 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 0737F4 7F03ECC4 AFA601E8 */ sw $a2, 0x1e8($sp) +/* 0737F8 7F03ECC8 8FA601F8 */ lw $a2, 0x1f8($sp) +/* 0737FC 7F03ECCC E7AE01E4 */ swc1 $f14, 0x1e4($sp) +/* 073800 7F03ECD0 AFA701EC */ sw $a3, 0x1ec($sp) +/* 073804 7F03ECD4 C4C40000 */ lwc1 $f4, ($a2) +/* 073808 7F03ECD8 46006021 */ cvt.d.s $f0, $f12 +/* 07380C 7F03ECDC 27AE0160 */ addiu $t6, $sp, 0x160 +/* 073810 7F03ECE0 460021A1 */ cvt.d.s $f6, $f4 +/* 073814 7F03ECE4 0000C900 */ sll $t9, $zero, 4 +/* 073818 7F03ECE8 F7A600F0 */ sdc1 $f6, 0xf0($sp) +/* 07381C 7F03ECEC C4CA0008 */ lwc1 $f10, 8($a2) +/* 073820 7F03ECF0 032E4821 */ addu $t1, $t9, $t6 +/* 073824 7F03ECF4 00005025 */ move $t2, $zero +/* 073828 7F03ECF8 46005221 */ cvt.d.s $f8, $f10 +/* 07382C 7F03ECFC 000AC900 */ sll $t9, $t2, 4 +/* 073830 7F03ED00 F7A800E8 */ sdc1 $f8, 0xe8($sp) +/* 073834 7F03ED04 C4C40010 */ lwc1 $f4, 0x10($a2) +/* 073838 7F03ED08 27AE0160 */ addiu $t6, $sp, 0x160 +/* 07383C 7F03ED0C 032E4021 */ addu $t0, $t9, $t6 +/* 073840 7F03ED10 460021A1 */ cvt.d.s $f6, $f4 +/* 073844 7F03ED14 00002025 */ move $a0, $zero +/* 073848 7F03ED18 F7A600E0 */ sdc1 $f6, 0xe0($sp) +/* 07384C 7F03ED1C C4CA0018 */ lwc1 $f10, 0x18($a2) +/* 073850 7F03ED20 0004C900 */ sll $t9, $a0, 4 +/* 073854 7F03ED24 27AE0160 */ addiu $t6, $sp, 0x160 +/* 073858 7F03ED28 46005221 */ cvt.d.s $f8, $f10 +/* 07385C 7F03ED2C 032E3821 */ addu $a3, $t9, $t6 +/* 073860 7F03ED30 F7A800D8 */ sdc1 $f8, 0xd8($sp) +/* 073864 7F03ED34 C4C60028 */ lwc1 $f6, 0x28($a2) +/* 073868 7F03ED38 C4C40020 */ lwc1 $f4, 0x20($a2) +/* 07386C 7F03ED3C D7A800F0 */ ldc1 $f8, 0xf0($sp) +/* 073870 7F03ED40 460032A1 */ cvt.d.s $f10, $f6 +/* 073874 7F03ED44 C7A601E8 */ lwc1 $f6, 0x1e8($sp) +/* 073878 7F03ED48 F7AA00C8 */ sdc1 $f10, 0xc8($sp) +/* 07387C 7F03ED4C D7AA00E0 */ ldc1 $f10, 0xe0($sp) +/* 073880 7F03ED50 460024A1 */ cvt.d.s $f18, $f4 +/* 073884 7F03ED54 46204102 */ mul.d $f4, $f8, $f0 +/* 073888 7F03ED58 460030A1 */ cvt.d.s $f2, $f6 +/* 07388C 7F03ED5C F7AA0008 */ sdc1 $f10, 8($sp) +/* 073890 7F03ED60 F7A80000 */ sdc1 $f8, ($sp) +/* 073894 7F03ED64 46225182 */ mul.d $f6, $f10, $f2 +/* 073898 7F03ED68 C7AA01F0 */ lwc1 $f10, 0x1f0($sp) +/* 07389C 7F03ED6C 00005825 */ move $t3, $zero +/* 0738A0 7F03ED70 000BC900 */ sll $t9, $t3, 4 +/* 0738A4 7F03ED74 46005421 */ cvt.d.s $f16, $f10 +/* 0738A8 7F03ED78 F7A400A0 */ sdc1 $f4, 0xa0($sp) +/* 0738AC 7F03ED7C 46309282 */ mul.d $f10, $f18, $f16 +/* 0738B0 7F03ED80 F7A40010 */ sdc1 $f4, 0x10($sp) +/* 0738B4 7F03ED84 46262200 */ add.d $f8, $f4, $f6 +/* 0738B8 7F03ED88 F7A60098 */ sdc1 $f6, 0x98($sp) +/* 0738BC 7F03ED8C F7A60018 */ sdc1 $f6, 0x18($sp) +/* 0738C0 7F03ED90 27AE0160 */ addiu $t6, $sp, 0x160 +/* 0738C4 7F03ED94 F7A80038 */ sdc1 $f8, 0x38($sp) +/* 0738C8 7F03ED98 00001025 */ move $v0, $zero +/* 0738CC 7F03ED9C 462A4100 */ add.d $f4, $f8, $f10 +/* 0738D0 7F03EDA0 F7AA0090 */ sdc1 $f10, 0x90($sp) +/* 0738D4 7F03EDA4 27A50170 */ addiu $a1, $sp, 0x170 +/* 0738D8 7F03EDA8 24030001 */ li $v1, 1 +/* 0738DC 7F03EDAC F7A40160 */ sdc1 $f4, 0x160($sp) +/* 0738E0 7F03EDB0 D7A400E8 */ ldc1 $f4, 0xe8($sp) +/* 0738E4 7F03EDB4 032E6021 */ addu $t4, $t9, $t6 +/* 0738E8 7F03EDB8 27AD0130 */ addiu $t5, $sp, 0x130 +/* 0738EC 7F03EDBC 46202102 */ mul.d $f4, $f4, $f0 +/* 0738F0 7F03EDC0 F7A40088 */ sdc1 $f4, 0x88($sp) +/* 0738F4 7F03EDC4 D7A400D8 */ ldc1 $f4, 0xd8($sp) +/* 0738F8 7F03EDC8 46222102 */ mul.d $f4, $f4, $f2 +/* 0738FC 7F03EDCC F7A40080 */ sdc1 $f4, 0x80($sp) +/* 073900 7F03EDD0 D7A60080 */ ldc1 $f6, 0x80($sp) +/* 073904 7F03EDD4 D7A40088 */ ldc1 $f4, 0x88($sp) +/* 073908 7F03EDD8 46262100 */ add.d $f4, $f4, $f6 +/* 07390C 7F03EDDC D7A600C8 */ ldc1 $f6, 0xc8($sp) +/* 073910 7F03EDE0 F7A40078 */ sdc1 $f4, 0x78($sp) +/* 073914 7F03EDE4 46303102 */ mul.d $f4, $f6, $f16 +/* 073918 7F03EDE8 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 07391C 7F03EDEC 46243180 */ add.d $f6, $f6, $f4 +/* 073920 7F03EDF0 F7A40070 */ sdc1 $f4, 0x70($sp) +/* 073924 7F03EDF4 C7A401F4 */ lwc1 $f4, 0x1f4($sp) +/* 073928 7F03EDF8 F7A60168 */ sdc1 $f6, 0x168($sp) +/* 07392C 7F03EDFC 460021A1 */ cvt.d.s $f6, $f4 +/* 073930 7F03EE00 F7A600A8 */ sdc1 $f6, 0xa8($sp) +/* 073934 7F03EE04 46269182 */ mul.d $f6, $f18, $f6 +/* 073938 7F03EE08 D7A400A8 */ ldc1 $f4, 0xa8($sp) +/* 07393C 7F03EE0C F7A60068 */ sdc1 $f6, 0x68($sp) +/* 073940 7F03EE10 46264180 */ add.d $f6, $f8, $f6 +/* 073944 7F03EE14 D7A800C8 */ ldc1 $f8, 0xc8($sp) +/* 073948 7F03EE18 46244302 */ mul.d $f12, $f8, $f4 +/* 07394C 7F03EE1C F7A60170 */ sdc1 $f6, 0x170($sp) +/* 073950 7F03EE20 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 073954 7F03EE24 C7A401EC */ lwc1 $f4, 0x1ec($sp) +/* 073958 7F03EE28 46002021 */ cvt.d.s $f0, $f4 +/* 07395C 7F03EE2C 462C3200 */ add.d $f8, $f6, $f12 +/* 073960 7F03EE30 D7A60008 */ ldc1 $f6, 8($sp) +/* 073964 7F03EE34 46203382 */ mul.d $f14, $f6, $f0 +/* 073968 7F03EE38 F7A80178 */ sdc1 $f8, 0x178($sp) +/* 07396C 7F03EE3C D7A80010 */ ldc1 $f8, 0x10($sp) +/* 073970 7F03EE40 D7A600D8 */ ldc1 $f6, 0xd8($sp) +/* 073974 7F03EE44 46203402 */ mul.d $f16, $f6, $f0 +/* 073978 7F03EE48 462E4080 */ add.d $f2, $f8, $f14 +/* 07397C 7F03EE4C D7A80088 */ ldc1 $f8, 0x88($sp) +/* 073980 7F03EE50 F7AE0038 */ sdc1 $f14, 0x38($sp) +/* 073984 7F03EE54 462A1100 */ add.d $f4, $f2, $f10 +/* 073988 7F03EE58 46304480 */ add.d $f18, $f8, $f16 +/* 07398C 7F03EE5C F7A40180 */ sdc1 $f4, 0x180($sp) +/* 073990 7F03EE60 D7A40070 */ ldc1 $f4, 0x70($sp) +/* 073994 7F03EE64 D7A80068 */ ldc1 $f8, 0x68($sp) +/* 073998 7F03EE68 F7B20030 */ sdc1 $f18, 0x30($sp) +/* 07399C 7F03EE6C 46249180 */ add.d $f6, $f18, $f4 +/* 0739A0 7F03EE70 46281100 */ add.d $f4, $f2, $f8 +/* 0739A4 7F03EE74 F7A60188 */ sdc1 $f6, 0x188($sp) +/* 0739A8 7F03EE78 D7A60000 */ ldc1 $f6, ($sp) +/* 0739AC 7F03EE7C 462C9200 */ add.d $f8, $f18, $f12 +/* 0739B0 7F03EE80 F7A40190 */ sdc1 $f4, 0x190($sp) +/* 0739B4 7F03EE84 C7A401E4 */ lwc1 $f4, 0x1e4($sp) +/* 0739B8 7F03EE88 F7A80198 */ sdc1 $f8, 0x198($sp) +/* 0739BC 7F03EE8C 46002021 */ cvt.d.s $f0, $f4 +/* 0739C0 7F03EE90 D7A400E8 */ ldc1 $f4, 0xe8($sp) +/* 0739C4 7F03EE94 46203202 */ mul.d $f8, $f6, $f0 +/* 0739C8 7F03EE98 D7A60018 */ ldc1 $f6, 0x18($sp) +/* 0739CC 7F03EE9C 46202382 */ mul.d $f14, $f4, $f0 +/* 0739D0 7F03EEA0 F7A80088 */ sdc1 $f8, 0x88($sp) +/* 0739D4 7F03EEA4 46264080 */ add.d $f2, $f8, $f6 +/* 0739D8 7F03EEA8 D7A60080 */ ldc1 $f6, 0x80($sp) +/* 0739DC 7F03EEAC 462A1200 */ add.d $f8, $f2, $f10 +/* 0739E0 7F03EEB0 46267480 */ add.d $f18, $f14, $f6 +/* 0739E4 7F03EEB4 F7A801A0 */ sdc1 $f8, 0x1a0($sp) +/* 0739E8 7F03EEB8 D7A80070 */ ldc1 $f8, 0x70($sp) +/* 0739EC 7F03EEBC D7A60068 */ ldc1 $f6, 0x68($sp) +/* 0739F0 7F03EEC0 46289100 */ add.d $f4, $f18, $f8 +/* 0739F4 7F03EEC4 46261200 */ add.d $f8, $f2, $f6 +/* 0739F8 7F03EEC8 D7A60088 */ ldc1 $f6, 0x88($sp) +/* 0739FC 7F03EECC F7A401A8 */ sdc1 $f4, 0x1a8($sp) +/* 073A00 7F03EED0 462C9100 */ add.d $f4, $f18, $f12 +/* 073A04 7F03EED4 F7A801B0 */ sdc1 $f8, 0x1b0($sp) +/* 073A08 7F03EED8 D7A80038 */ ldc1 $f8, 0x38($sp) +/* 073A0C 7F03EEDC 46307080 */ add.d $f2, $f14, $f16 +/* 073A10 7F03EEE0 F7A401B8 */ sdc1 $f4, 0x1b8($sp) +/* 073A14 7F03EEE4 46283000 */ add.d $f0, $f6, $f8 +/* 073A18 7F03EEE8 D7A60070 */ ldc1 $f6, 0x70($sp) +/* 073A1C 7F03EEEC 462A0100 */ add.d $f4, $f0, $f10 +/* 073A20 7F03EEF0 D7AA0068 */ ldc1 $f10, 0x68($sp) +/* 073A24 7F03EEF4 46261200 */ add.d $f8, $f2, $f6 +/* 073A28 7F03EEF8 F7A401C0 */ sdc1 $f4, 0x1c0($sp) +/* 073A2C 7F03EEFC 462C1180 */ add.d $f6, $f2, $f12 +/* 073A30 7F03EF00 F7A801C8 */ sdc1 $f8, 0x1c8($sp) +/* 073A34 7F03EF04 462A0100 */ add.d $f4, $f0, $f10 +/* 073A38 7F03EF08 F7A601D8 */ sdc1 $f6, 0x1d8($sp) +/* 073A3C 7F03EF0C F7A401D0 */ sdc1 $f4, 0x1d0($sp) +/* 073A40 7F03EF10 D5200000 */ ldc1 $f0, ($t1) +.L7F03EF14: +/* 073A44 7F03EF14 D4A20000 */ ldc1 $f2, ($a1) +/* 073A48 7F03EF18 00037900 */ sll $t7, $v1, 4 +/* 073A4C 7F03EF1C 27B80160 */ addiu $t8, $sp, 0x160 +/* 073A50 7F03EF20 4620103C */ c.lt.d $f2, $f0 +/* 073A54 7F03EF24 00000000 */ nop +/* 073A58 7F03EF28 4503000C */ bc1tl .L7F03EF5C +/* 073A5C 7F03EF2C 01F84821 */ addu $t1, $t7, $t8 +/* 073A60 7F03EF30 46201032 */ c.eq.d $f2, $f0 +/* 073A64 7F03EF34 00000000 */ nop +/* 073A68 7F03EF38 4502000B */ bc1fl .L7F03EF68 +/* 073A6C 7F03EF3C 24630001 */ addiu $v1, $v1, 1 +/* 073A70 7F03EF40 D4A80008 */ ldc1 $f8, 8($a1) +/* 073A74 7F03EF44 D52A0008 */ ldc1 $f10, 8($t1) +/* 073A78 7F03EF48 462A403C */ c.lt.d $f8, $f10 +/* 073A7C 7F03EF4C 00000000 */ nop +/* 073A80 7F03EF50 45020005 */ bc1fl .L7F03EF68 +/* 073A84 7F03EF54 24630001 */ addiu $v1, $v1, 1 +/* 073A88 7F03EF58 01F84821 */ addu $t1, $t7, $t8 +.L7F03EF5C: +/* 073A8C 7F03EF5C D5200000 */ ldc1 $f0, ($t1) +/* 073A90 7F03EF60 00601025 */ move $v0, $v1 +/* 073A94 7F03EF64 24630001 */ addiu $v1, $v1, 1 +.L7F03EF68: +/* 073A98 7F03EF68 28610008 */ slti $at, $v1, 8 +/* 073A9C 7F03EF6C 1420FFE9 */ bnez $at, .L7F03EF14 +/* 073AA0 7F03EF70 24A50010 */ addiu $a1, $a1, 0x10 +/* 073AA4 7F03EF74 24030001 */ li $v1, 1 +/* 073AA8 7F03EF78 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03EF7C: +/* 073AAC 7F03EF7C D50C0008 */ ldc1 $f12, 8($t0) +/* 073AB0 7F03EF80 D4A20008 */ ldc1 $f2, 8($a1) +/* 073AB4 7F03EF84 00037900 */ sll $t7, $v1, 4 +/* 073AB8 7F03EF88 27B80160 */ addiu $t8, $sp, 0x160 +/* 073ABC 7F03EF8C 4622603C */ c.lt.d $f12, $f2 +/* 073AC0 7F03EF90 00000000 */ nop +/* 073AC4 7F03EF94 4503000C */ bc1tl .L7F03EFC8 +/* 073AC8 7F03EF98 00605025 */ move $t2, $v1 +/* 073ACC 7F03EF9C 462C1032 */ c.eq.d $f2, $f12 +/* 073AD0 7F03EFA0 00000000 */ nop +/* 073AD4 7F03EFA4 4502000A */ bc1fl .L7F03EFD0 +/* 073AD8 7F03EFA8 24630001 */ addiu $v1, $v1, 1 +/* 073ADC 7F03EFAC D4A40000 */ ldc1 $f4, ($a1) +/* 073AE0 7F03EFB0 D5060000 */ ldc1 $f6, ($t0) +/* 073AE4 7F03EFB4 4626203C */ c.lt.d $f4, $f6 +/* 073AE8 7F03EFB8 00000000 */ nop +/* 073AEC 7F03EFBC 45020004 */ bc1fl .L7F03EFD0 +/* 073AF0 7F03EFC0 24630001 */ addiu $v1, $v1, 1 +/* 073AF4 7F03EFC4 00605025 */ move $t2, $v1 +.L7F03EFC8: +/* 073AF8 7F03EFC8 01F84021 */ addu $t0, $t7, $t8 +/* 073AFC 7F03EFCC 24630001 */ addiu $v1, $v1, 1 +.L7F03EFD0: +/* 073B00 7F03EFD0 28610008 */ slti $at, $v1, 8 +/* 073B04 7F03EFD4 1420FFE9 */ bnez $at, .L7F03EF7C +/* 073B08 7F03EFD8 24A50010 */ addiu $a1, $a1, 0x10 +/* 073B0C 7F03EFDC 24030001 */ li $v1, 1 +/* 073B10 7F03EFE0 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03EFE4: +/* 073B14 7F03EFE4 D4F00000 */ ldc1 $f16, ($a3) +/* 073B18 7F03EFE8 D4A20000 */ ldc1 $f2, ($a1) +/* 073B1C 7F03EFEC 00037900 */ sll $t7, $v1, 4 +/* 073B20 7F03EFF0 27B80160 */ addiu $t8, $sp, 0x160 +/* 073B24 7F03EFF4 4622803C */ c.lt.d $f16, $f2 +/* 073B28 7F03EFF8 00000000 */ nop +/* 073B2C 7F03EFFC 4503000C */ bc1tl .L7F03F030 +/* 073B30 7F03F000 00602025 */ move $a0, $v1 +/* 073B34 7F03F004 46301032 */ c.eq.d $f2, $f16 +/* 073B38 7F03F008 00000000 */ nop +/* 073B3C 7F03F00C 4502000A */ bc1fl .L7F03F038 +/* 073B40 7F03F010 24630001 */ addiu $v1, $v1, 1 +/* 073B44 7F03F014 D4E80008 */ ldc1 $f8, 8($a3) +/* 073B48 7F03F018 D4AA0008 */ ldc1 $f10, 8($a1) +/* 073B4C 7F03F01C 462A403C */ c.lt.d $f8, $f10 +/* 073B50 7F03F020 00000000 */ nop +/* 073B54 7F03F024 45020004 */ bc1fl .L7F03F038 +/* 073B58 7F03F028 24630001 */ addiu $v1, $v1, 1 +/* 073B5C 7F03F02C 00602025 */ move $a0, $v1 +.L7F03F030: +/* 073B60 7F03F030 01F83821 */ addu $a3, $t7, $t8 +/* 073B64 7F03F034 24630001 */ addiu $v1, $v1, 1 +.L7F03F038: +/* 073B68 7F03F038 28610008 */ slti $at, $v1, 8 +/* 073B6C 7F03F03C 1420FFE9 */ bnez $at, .L7F03EFE4 +/* 073B70 7F03F040 24A50010 */ addiu $a1, $a1, 0x10 +/* 073B74 7F03F044 24030001 */ li $v1, 1 +/* 073B78 7F03F048 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03F04C: +/* 073B7C 7F03F04C D4A20008 */ ldc1 $f2, 8($a1) +/* 073B80 7F03F050 D58C0008 */ ldc1 $f12, 8($t4) +/* 073B84 7F03F054 00037900 */ sll $t7, $v1, 4 +/* 073B88 7F03F058 27B80160 */ addiu $t8, $sp, 0x160 +/* 073B8C 7F03F05C 462C103C */ c.lt.d $f2, $f12 +/* 073B90 7F03F060 00000000 */ nop +/* 073B94 7F03F064 4503000C */ bc1tl .L7F03F098 +/* 073B98 7F03F068 00605825 */ move $t3, $v1 +/* 073B9C 7F03F06C 462C1032 */ c.eq.d $f2, $f12 +/* 073BA0 7F03F070 00000000 */ nop +/* 073BA4 7F03F074 4502000A */ bc1fl .L7F03F0A0 +/* 073BA8 7F03F078 24630001 */ addiu $v1, $v1, 1 +/* 073BAC 7F03F07C D5840000 */ ldc1 $f4, ($t4) +/* 073BB0 7F03F080 D4A60000 */ ldc1 $f6, ($a1) +/* 073BB4 7F03F084 4626203C */ c.lt.d $f4, $f6 +/* 073BB8 7F03F088 00000000 */ nop +/* 073BBC 7F03F08C 45020004 */ bc1fl .L7F03F0A0 +/* 073BC0 7F03F090 24630001 */ addiu $v1, $v1, 1 +/* 073BC4 7F03F094 00605825 */ move $t3, $v1 +.L7F03F098: +/* 073BC8 7F03F098 01F86021 */ addu $t4, $t7, $t8 +/* 073BCC 7F03F09C 24630001 */ addiu $v1, $v1, 1 +.L7F03F0A0: +/* 073BD0 7F03F0A0 28610008 */ slti $at, $v1, 8 +/* 073BD4 7F03F0A4 1420FFE9 */ bnez $at, .L7F03F04C +/* 073BD8 7F03F0A8 24A50010 */ addiu $a1, $a1, 0x10 +/* 073BDC 7F03F0AC 00002825 */ move $a1, $zero +/* 073BE0 7F03F0B0 00001825 */ move $v1, $zero +.L7F03F0B4: +/* 073BE4 7F03F0B4 5062000B */ beql $v1, $v0, .L7F03F0E4 +/* 073BE8 7F03F0B8 24630001 */ addiu $v1, $v1, 1 +/* 073BEC 7F03F0BC 50640009 */ beql $v1, $a0, .L7F03F0E4 +/* 073BF0 7F03F0C0 24630001 */ addiu $v1, $v1, 1 +/* 073BF4 7F03F0C4 506A0007 */ beql $v1, $t2, .L7F03F0E4 +/* 073BF8 7F03F0C8 24630001 */ addiu $v1, $v1, 1 +/* 073BFC 7F03F0CC 106B0004 */ beq $v1, $t3, .L7F03F0E0 +/* 073C00 7F03F0D0 0005C880 */ sll $t9, $a1, 2 +/* 073C04 7F03F0D4 01B97021 */ addu $t6, $t5, $t9 +/* 073C08 7F03F0D8 ADC30000 */ sw $v1, ($t6) +/* 073C0C 7F03F0DC 24A50001 */ addiu $a1, $a1, 1 +.L7F03F0E0: +/* 073C10 7F03F0E0 24630001 */ addiu $v1, $v1, 1 +.L7F03F0E4: +/* 073C14 7F03F0E4 28610008 */ slti $at, $v1, 8 +/* 073C18 7F03F0E8 1420FFF2 */ bnez $at, .L7F03F0B4 +/* 073C1C 7F03F0EC 00000000 */ nop +/* 073C20 7F03F0F0 46200220 */ cvt.s.d $f8, $f0 +/* 073C24 7F03F0F4 8FAA01FC */ lw $t2, 0x1fc($sp) +/* 073C28 7F03F0F8 24050001 */ li $a1, 1 +/* 073C2C 7F03F0FC 27A20130 */ addiu $v0, $sp, 0x130 +/* 073C30 7F03F100 E5480000 */ swc1 $f8, ($t2) +/* 073C34 7F03F104 D52A0008 */ ldc1 $f10, 8($t1) +/* 073C38 7F03F108 27AD0140 */ addiu $t5, $sp, 0x140 +/* 073C3C 7F03F10C 27A40160 */ addiu $a0, $sp, 0x160 +/* 073C40 7F03F110 46205120 */ cvt.s.d $f4, $f10 +/* 073C44 7F03F114 E5440004 */ swc1 $f4, 4($t2) +/* 073C48 7F03F118 D5280000 */ ldc1 $f8, ($t1) +/* 073C4C 7F03F11C D5260008 */ ldc1 $f6, 8($t1) +/* 073C50 7F03F120 D5820000 */ ldc1 $f2, ($t4) +/* 073C54 7F03F124 D58C0008 */ ldc1 $f12, 8($t4) +/* 073C58 7F03F128 46224401 */ sub.d $f16, $f8, $f2 +/* 073C5C 7F03F12C 462C3381 */ sub.d $f14, $f6, $f12 +/* 073C60 7F03F130 8C430000 */ lw $v1, ($v0) +.L7F03F134: +/* 073C64 7F03F134 00037900 */ sll $t7, $v1, 4 +/* 073C68 7F03F138 008F5821 */ addu $t3, $a0, $t7 +/* 073C6C 7F03F13C D5600000 */ ldc1 $f0, ($t3) +/* 073C70 7F03F140 D5660008 */ ldc1 $f6, 8($t3) +/* 073C74 7F03F144 46220281 */ sub.d $f10, $f0, $f2 +/* 073C78 7F03F148 462C3201 */ sub.d $f8, $f6, $f12 +/* 073C7C 7F03F14C 462E5102 */ mul.d $f4, $f10, $f14 +/* 073C80 7F03F150 00000000 */ nop +/* 073C84 7F03F154 46304282 */ mul.d $f10, $f8, $f16 +/* 073C88 7F03F158 462A203C */ c.lt.d $f4, $f10 +/* 073C8C 7F03F15C 00000000 */ nop +/* 073C90 7F03F160 4500000A */ bc1f .L7F03F18C +/* 073C94 7F03F164 00000000 */ nop +/* 073C98 7F03F168 462001A0 */ cvt.s.d $f6, $f0 +/* 073C9C 7F03F16C 25420008 */ addiu $v0, $t2, 8 +/* 073CA0 7F03F170 24050002 */ li $a1, 2 +/* 073CA4 7F03F174 E4460000 */ swc1 $f6, ($v0) +/* 073CA8 7F03F178 D5680008 */ ldc1 $f8, 8($t3) +/* 073CAC 7F03F17C 46204120 */ cvt.s.d $f4, $f8 +/* 073CB0 7F03F180 E4440004 */ swc1 $f4, 4($v0) +/* 073CB4 7F03F184 10000005 */ b .L7F03F19C +/* 073CB8 7F03F188 D5820000 */ ldc1 $f2, ($t4) +.L7F03F18C: +/* 073CBC 7F03F18C 24420004 */ addiu $v0, $v0, 4 +/* 073CC0 7F03F190 004D082B */ sltu $at, $v0, $t5 +/* 073CC4 7F03F194 5420FFE7 */ bnezl $at, .L7F03F134 +/* 073CC8 7F03F198 8C430000 */ lw $v1, ($v0) +.L7F03F19C: +/* 073CCC 7F03F19C 462012A0 */ cvt.s.d $f10, $f2 +/* 073CD0 7F03F1A0 0005C0C0 */ sll $t8, $a1, 3 +/* 073CD4 7F03F1A4 01585821 */ addu $t3, $t2, $t8 +/* 073CD8 7F03F1A8 256B0008 */ addiu $t3, $t3, 8 +/* 073CDC 7F03F1AC E56AFFF8 */ swc1 $f10, -8($t3) +/* 073CE0 7F03F1B0 D5860008 */ ldc1 $f6, 8($t4) +/* 073CE4 7F03F1B4 24A50001 */ addiu $a1, $a1, 1 +/* 073CE8 7F03F1B8 27A20130 */ addiu $v0, $sp, 0x130 +/* 073CEC 7F03F1BC 46203220 */ cvt.s.d $f8, $f6 +/* 073CF0 7F03F1C0 27AD0140 */ addiu $t5, $sp, 0x140 +/* 073CF4 7F03F1C4 E568FFFC */ swc1 $f8, -4($t3) +/* 073CF8 7F03F1C8 D58A0000 */ ldc1 $f10, ($t4) +/* 073CFC 7F03F1CC D5840008 */ ldc1 $f4, 8($t4) +/* 073D00 7F03F1D0 D4E00008 */ ldc1 $f0, 8($a3) +/* 073D04 7F03F1D4 D4F00000 */ ldc1 $f16, ($a3) +/* 073D08 7F03F1D8 46202301 */ sub.d $f12, $f4, $f0 +/* 073D0C 7F03F1DC 46305381 */ sub.d $f14, $f10, $f16 +/* 073D10 7F03F1E0 8C430000 */ lw $v1, ($v0) +.L7F03F1E4: +/* 073D14 7F03F1E4 0003C900 */ sll $t9, $v1, 4 +/* 073D18 7F03F1E8 00996021 */ addu $t4, $a0, $t9 +/* 073D1C 7F03F1EC D5820000 */ ldc1 $f2, ($t4) +/* 073D20 7F03F1F0 D5840008 */ ldc1 $f4, 8($t4) +/* 073D24 7F03F1F4 46301181 */ sub.d $f6, $f2, $f16 +/* 073D28 7F03F1F8 46202281 */ sub.d $f10, $f4, $f0 +/* 073D2C 7F03F1FC 462C3202 */ mul.d $f8, $f6, $f12 +/* 073D30 7F03F200 00000000 */ nop +/* 073D34 7F03F204 462E5182 */ mul.d $f6, $f10, $f14 +/* 073D38 7F03F208 4626403C */ c.lt.d $f8, $f6 +/* 073D3C 7F03F20C 00000000 */ nop +/* 073D40 7F03F210 4500000A */ bc1f .L7F03F23C +/* 073D44 7F03F214 00000000 */ nop +/* 073D48 7F03F218 46201120 */ cvt.s.d $f4, $f2 +/* 073D4C 7F03F21C 24A50001 */ addiu $a1, $a1, 1 +/* 073D50 7F03F220 256B0008 */ addiu $t3, $t3, 8 +/* 073D54 7F03F224 E564FFF8 */ swc1 $f4, -8($t3) +/* 073D58 7F03F228 D58A0008 */ ldc1 $f10, 8($t4) +/* 073D5C 7F03F22C 46205220 */ cvt.s.d $f8, $f10 +/* 073D60 7F03F230 E568FFFC */ swc1 $f8, -4($t3) +/* 073D64 7F03F234 10000005 */ b .L7F03F24C +/* 073D68 7F03F238 D4F00000 */ ldc1 $f16, ($a3) +.L7F03F23C: +/* 073D6C 7F03F23C 24420004 */ addiu $v0, $v0, 4 +/* 073D70 7F03F240 004D082B */ sltu $at, $v0, $t5 +/* 073D74 7F03F244 5420FFE7 */ bnezl $at, .L7F03F1E4 +/* 073D78 7F03F248 8C430000 */ lw $v1, ($v0) +.L7F03F24C: +/* 073D7C 7F03F24C 462081A0 */ cvt.s.d $f6, $f16 +/* 073D80 7F03F250 24A50001 */ addiu $a1, $a1, 1 +/* 073D84 7F03F254 256B0008 */ addiu $t3, $t3, 8 +/* 073D88 7F03F258 27A20130 */ addiu $v0, $sp, 0x130 +/* 073D8C 7F03F25C E566FFF8 */ swc1 $f6, -8($t3) +/* 073D90 7F03F260 D4E40008 */ ldc1 $f4, 8($a3) +/* 073D94 7F03F264 27AC0140 */ addiu $t4, $sp, 0x140 +/* 073D98 7F03F268 462022A0 */ cvt.s.d $f10, $f4 +/* 073D9C 7F03F26C E56AFFFC */ swc1 $f10, -4($t3) +/* 073DA0 7F03F270 D4E60000 */ ldc1 $f6, ($a3) +/* 073DA4 7F03F274 D4E80008 */ ldc1 $f8, 8($a3) +/* 073DA8 7F03F278 D50E0000 */ ldc1 $f14, ($t0) +/* 073DAC 7F03F27C D50C0008 */ ldc1 $f12, 8($t0) +/* 073DB0 7F03F280 462E3481 */ sub.d $f18, $f6, $f14 +/* 073DB4 7F03F284 462C4081 */ sub.d $f2, $f8, $f12 +/* 073DB8 7F03F288 8C430000 */ lw $v1, ($v0) +.L7F03F28C: +/* 073DBC 7F03F28C 00037100 */ sll $t6, $v1, 4 +/* 073DC0 7F03F290 008E3821 */ addu $a3, $a0, $t6 +/* 073DC4 7F03F294 D4E00000 */ ldc1 $f0, ($a3) +/* 073DC8 7F03F298 D4E80008 */ ldc1 $f8, 8($a3) +/* 073DCC 7F03F29C 462E0101 */ sub.d $f4, $f0, $f14 +/* 073DD0 7F03F2A0 462C4181 */ sub.d $f6, $f8, $f12 +/* 073DD4 7F03F2A4 46222282 */ mul.d $f10, $f4, $f2 +/* 073DD8 7F03F2A8 00000000 */ nop +/* 073DDC 7F03F2AC 46323102 */ mul.d $f4, $f6, $f18 +/* 073DE0 7F03F2B0 4624503C */ c.lt.d $f10, $f4 +/* 073DE4 7F03F2B4 00000000 */ nop +/* 073DE8 7F03F2B8 4500000A */ bc1f .L7F03F2E4 +/* 073DEC 7F03F2BC 00000000 */ nop +/* 073DF0 7F03F2C0 46200220 */ cvt.s.d $f8, $f0 +/* 073DF4 7F03F2C4 24A50001 */ addiu $a1, $a1, 1 +/* 073DF8 7F03F2C8 256B0008 */ addiu $t3, $t3, 8 +/* 073DFC 7F03F2CC E568FFF8 */ swc1 $f8, -8($t3) +/* 073E00 7F03F2D0 D4E60008 */ ldc1 $f6, 8($a3) +/* 073E04 7F03F2D4 462032A0 */ cvt.s.d $f10, $f6 +/* 073E08 7F03F2D8 E56AFFFC */ swc1 $f10, -4($t3) +/* 073E0C 7F03F2DC 10000005 */ b .L7F03F2F4 +/* 073E10 7F03F2E0 D50E0000 */ ldc1 $f14, ($t0) +.L7F03F2E4: +/* 073E14 7F03F2E4 24420004 */ addiu $v0, $v0, 4 +/* 073E18 7F03F2E8 004C082B */ sltu $at, $v0, $t4 +/* 073E1C 7F03F2EC 5420FFE7 */ bnezl $at, .L7F03F28C +/* 073E20 7F03F2F0 8C430000 */ lw $v1, ($v0) +.L7F03F2F4: +/* 073E24 7F03F2F4 46207120 */ cvt.s.d $f4, $f14 +/* 073E28 7F03F2F8 24A50001 */ addiu $a1, $a1, 1 +/* 073E2C 7F03F2FC 256B0008 */ addiu $t3, $t3, 8 +/* 073E30 7F03F300 27A20130 */ addiu $v0, $sp, 0x130 +/* 073E34 7F03F304 E564FFF8 */ swc1 $f4, -8($t3) +/* 073E38 7F03F308 D5080008 */ ldc1 $f8, 8($t0) +/* 073E3C 7F03F30C 462041A0 */ cvt.s.d $f6, $f8 +/* 073E40 7F03F310 E566FFFC */ swc1 $f6, -4($t3) +/* 073E44 7F03F314 D5040000 */ ldc1 $f4, ($t0) +/* 073E48 7F03F318 D50A0008 */ ldc1 $f10, 8($t0) +/* 073E4C 7F03F31C D5220008 */ ldc1 $f2, 8($t1) +/* 073E50 7F03F320 D5200000 */ ldc1 $f0, ($t1) +/* 073E54 7F03F324 27A80140 */ addiu $t0, $sp, 0x140 +/* 073E58 7F03F328 46225401 */ sub.d $f16, $f10, $f2 +/* 073E5C 7F03F32C 46202481 */ sub.d $f18, $f4, $f0 +/* 073E60 7F03F330 8C430000 */ lw $v1, ($v0) +.L7F03F334: +/* 073E64 7F03F334 00037900 */ sll $t7, $v1, 4 +/* 073E68 7F03F338 008F3821 */ addu $a3, $a0, $t7 +/* 073E6C 7F03F33C D4EC0000 */ ldc1 $f12, ($a3) +/* 073E70 7F03F340 D4EA0008 */ ldc1 $f10, 8($a3) +/* 073E74 7F03F344 46206201 */ sub.d $f8, $f12, $f0 +/* 073E78 7F03F348 46225101 */ sub.d $f4, $f10, $f2 +/* 073E7C 7F03F34C 46304182 */ mul.d $f6, $f8, $f16 +/* 073E80 7F03F350 00000000 */ nop +/* 073E84 7F03F354 46322202 */ mul.d $f8, $f4, $f18 +/* 073E88 7F03F358 4628303C */ c.lt.d $f6, $f8 +/* 073E8C 7F03F35C 00000000 */ nop +/* 073E90 7F03F360 45000009 */ bc1f .L7F03F388 +/* 073E94 7F03F364 00000000 */ nop +/* 073E98 7F03F368 462062A0 */ cvt.s.d $f10, $f12 +/* 073E9C 7F03F36C 24A50001 */ addiu $a1, $a1, 1 +/* 073EA0 7F03F370 00001825 */ move $v1, $zero +/* 073EA4 7F03F374 E56A0000 */ swc1 $f10, ($t3) +/* 073EA8 7F03F378 D4E40008 */ ldc1 $f4, 8($a3) +/* 073EAC 7F03F37C 462021A0 */ cvt.s.d $f6, $f4 +/* 073EB0 7F03F380 10000006 */ b .L7F03F39C +/* 073EB4 7F03F384 E5660004 */ swc1 $f6, 4($t3) +.L7F03F388: +/* 073EB8 7F03F388 24420004 */ addiu $v0, $v0, 4 +/* 073EBC 7F03F38C 0048082B */ sltu $at, $v0, $t0 +/* 073EC0 7F03F390 5420FFE8 */ bnezl $at, .L7F03F334 +/* 073EC4 7F03F394 8C430000 */ lw $v1, ($v0) +/* 073EC8 7F03F398 00001825 */ move $v1, $zero +.L7F03F39C: +/* 073ECC 7F03F39C 8FB80200 */ lw $t8, 0x200($sp) +/* 073ED0 7F03F3A0 18A00065 */ blez $a1, .L7F03F538 +/* 073ED4 7F03F3A4 AF050000 */ sw $a1, ($t8) +/* 073ED8 7F03F3A8 30A70003 */ andi $a3, $a1, 3 +/* 073EDC 7F03F3AC 10E0001A */ beqz $a3, .L7F03F418 +/* 073EE0 7F03F3B0 00E02025 */ move $a0, $a3 +/* 073EE4 7F03F3B4 0003C8C0 */ sll $t9, $v1, 3 +/* 073EE8 7F03F3B8 01591021 */ addu $v0, $t2, $t9 +/* 073EEC 7F03F3BC 24630001 */ addiu $v1, $v1, 1 +/* 073EF0 7F03F3C0 1083000C */ beq $a0, $v1, .L7F03F3F4 +/* 073EF4 7F03F3C4 C4520000 */ lwc1 $f18, ($v0) +.L7F03F3C8: +/* 073EF8 7F03F3C8 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073EFC 7F03F3CC C44E0004 */ lwc1 $f14, 4($v0) +/* 073F00 7F03F3D0 24630001 */ addiu $v1, $v1, 1 +/* 073F04 7F03F3D4 46109400 */ add.s $f16, $f18, $f16 +/* 073F08 7F03F3D8 C4520008 */ lwc1 $f18, 8($v0) +/* 073F0C 7F03F3DC 24420008 */ addiu $v0, $v0, 8 +/* 073F10 7F03F3E0 E450FFF8 */ swc1 $f16, -8($v0) +/* 073F14 7F03F3E4 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F18 7F03F3E8 46107400 */ add.s $f16, $f14, $f16 +/* 073F1C 7F03F3EC 1483FFF6 */ bne $a0, $v1, .L7F03F3C8 +/* 073F20 7F03F3F0 E450FFFC */ swc1 $f16, -4($v0) +.L7F03F3F4: +/* 073F24 7F03F3F4 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073F28 7F03F3F8 C44E0004 */ lwc1 $f14, 4($v0) +/* 073F2C 7F03F3FC 24420008 */ addiu $v0, $v0, 8 +/* 073F30 7F03F400 46109400 */ add.s $f16, $f18, $f16 +/* 073F34 7F03F404 E450FFF8 */ swc1 $f16, -8($v0) +/* 073F38 7F03F408 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F3C 7F03F40C 46107400 */ add.s $f16, $f14, $f16 +/* 073F40 7F03F410 E450FFFC */ swc1 $f16, -4($v0) +/* 073F44 7F03F414 10650048 */ beq $v1, $a1, .L7F03F538 +.L7F03F418: +/* 073F48 7F03F418 000370C0 */ sll $t6, $v1, 3 +/* 073F4C 7F03F41C 000578C0 */ sll $t7, $a1, 3 +/* 073F50 7F03F420 01EA2021 */ addu $a0, $t7, $t2 +/* 073F54 7F03F424 014E1021 */ addu $v0, $t2, $t6 +/* 073F58 7F03F428 24420020 */ addiu $v0, $v0, 0x20 +/* 073F5C 7F03F42C 10440023 */ beq $v0, $a0, .L7F03F4BC +/* 073F60 7F03F430 C452FFE0 */ lwc1 $f18, -0x20($v0) +.L7F03F434: +/* 073F64 7F03F434 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073F68 7F03F438 C44EFFE4 */ lwc1 $f14, -0x1c($v0) +/* 073F6C 7F03F43C C44CFFE8 */ lwc1 $f12, -0x18($v0) +/* 073F70 7F03F440 46109400 */ add.s $f16, $f18, $f16 +/* 073F74 7F03F444 C44AFFEC */ lwc1 $f10, -0x14($v0) +/* 073F78 7F03F448 C448FFF0 */ lwc1 $f8, -0x10($v0) +/* 073F7C 7F03F44C C446FFF4 */ lwc1 $f6, -0xc($v0) +/* 073F80 7F03F450 E450FFE0 */ swc1 $f16, -0x20($v0) +/* 073F84 7F03F454 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F88 7F03F458 C444FFF8 */ lwc1 $f4, -8($v0) +/* 073F8C 7F03F45C C442FFFC */ lwc1 $f2, -4($v0) +/* 073F90 7F03F460 46107400 */ add.s $f16, $f14, $f16 +/* 073F94 7F03F464 C4520000 */ lwc1 $f18, ($v0) +/* 073F98 7F03F468 24420020 */ addiu $v0, $v0, 0x20 +/* 073F9C 7F03F46C E450FFC4 */ swc1 $f16, -0x3c($v0) +/* 073FA0 7F03F470 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FA4 7F03F474 46106400 */ add.s $f16, $f12, $f16 +/* 073FA8 7F03F478 E450FFC8 */ swc1 $f16, -0x38($v0) +/* 073FAC 7F03F47C C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FB0 7F03F480 46105400 */ add.s $f16, $f10, $f16 +/* 073FB4 7F03F484 E450FFCC */ swc1 $f16, -0x34($v0) +/* 073FB8 7F03F488 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FBC 7F03F48C 46104400 */ add.s $f16, $f8, $f16 +/* 073FC0 7F03F490 E450FFD0 */ swc1 $f16, -0x30($v0) +/* 073FC4 7F03F494 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FC8 7F03F498 46103400 */ add.s $f16, $f6, $f16 +/* 073FCC 7F03F49C E450FFD4 */ swc1 $f16, -0x2c($v0) +/* 073FD0 7F03F4A0 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FD4 7F03F4A4 46102400 */ add.s $f16, $f4, $f16 +/* 073FD8 7F03F4A8 E450FFD8 */ swc1 $f16, -0x28($v0) +/* 073FDC 7F03F4AC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FE0 7F03F4B0 46101400 */ add.s $f16, $f2, $f16 +/* 073FE4 7F03F4B4 1444FFDF */ bne $v0, $a0, .L7F03F434 +/* 073FE8 7F03F4B8 E450FFDC */ swc1 $f16, -0x24($v0) +.L7F03F4BC: +/* 073FEC 7F03F4BC C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FF0 7F03F4C0 C44EFFE4 */ lwc1 $f14, -0x1c($v0) +/* 073FF4 7F03F4C4 C44CFFE8 */ lwc1 $f12, -0x18($v0) +/* 073FF8 7F03F4C8 46109400 */ add.s $f16, $f18, $f16 +/* 073FFC 7F03F4CC C44AFFEC */ lwc1 $f10, -0x14($v0) +/* 074000 7F03F4D0 C448FFF0 */ lwc1 $f8, -0x10($v0) +/* 074004 7F03F4D4 C446FFF4 */ lwc1 $f6, -0xc($v0) +/* 074008 7F03F4D8 E450FFE0 */ swc1 $f16, -0x20($v0) +/* 07400C 7F03F4DC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074010 7F03F4E0 C444FFF8 */ lwc1 $f4, -8($v0) +/* 074014 7F03F4E4 C442FFFC */ lwc1 $f2, -4($v0) +/* 074018 7F03F4E8 46107400 */ add.s $f16, $f14, $f16 +/* 07401C 7F03F4EC E450FFE4 */ swc1 $f16, -0x1c($v0) +/* 074020 7F03F4F0 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 074024 7F03F4F4 46106400 */ add.s $f16, $f12, $f16 +/* 074028 7F03F4F8 E450FFE8 */ swc1 $f16, -0x18($v0) +/* 07402C 7F03F4FC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074030 7F03F500 46105400 */ add.s $f16, $f10, $f16 +/* 074034 7F03F504 E450FFEC */ swc1 $f16, -0x14($v0) +/* 074038 7F03F508 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 07403C 7F03F50C 46104400 */ add.s $f16, $f8, $f16 +/* 074040 7F03F510 E450FFF0 */ swc1 $f16, -0x10($v0) +/* 074044 7F03F514 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074048 7F03F518 46103400 */ add.s $f16, $f6, $f16 +/* 07404C 7F03F51C E450FFF4 */ swc1 $f16, -0xc($v0) +/* 074050 7F03F520 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 074054 7F03F524 46102400 */ add.s $f16, $f4, $f16 +/* 074058 7F03F528 E450FFF8 */ swc1 $f16, -8($v0) +/* 07405C 7F03F52C C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074060 7F03F530 46101400 */ add.s $f16, $f2, $f16 +/* 074064 7F03F534 E450FFFC */ swc1 $f16, -4($v0) +.L7F03F538: +/* 074068 7F03F538 03E00008 */ jr $ra +/* 07406C 7F03F53C 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F540(void) { + +} +#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 +void sub_GAME_7F03F598(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F598 +/* 0740C8 7F03F598 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0740CC 7F03F59C F7B40008 */ sdc1 $f20, 8($sp) +/* 0740D0 7F03F5A0 C4C60000 */ lwc1 $f6, ($a2) +/* 0740D4 7F03F5A4 C4840000 */ lwc1 $f4, ($a0) +/* 0740D8 7F03F5A8 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0740DC 7F03F5AC C4880004 */ lwc1 $f8, 4($a0) +/* 0740E0 7F03F5B0 46062001 */ sub.s $f0, $f4, $f6 +/* 0740E4 7F03F5B4 C4C40008 */ lwc1 $f4, 8($a2) +/* 0740E8 7F03F5B8 C4920008 */ lwc1 $f18, 8($a0) +/* 0740EC 7F03F5BC 460A4081 */ sub.s $f2, $f8, $f10 +/* 0740F0 7F03F5C0 C4C80020 */ lwc1 $f8, 0x20($a2) +/* 0740F4 7F03F5C4 C4C60010 */ lwc1 $f6, 0x10($a2) +/* 0740F8 7F03F5C8 46049301 */ sub.s $f12, $f18, $f4 +/* 0740FC 7F03F5CC C4C40014 */ lwc1 $f4, 0x14($a2) +/* 074100 7F03F5D0 46083282 */ mul.s $f10, $f6, $f8 +/* 074104 7F03F5D4 C4D2001C */ lwc1 $f18, 0x1c($a2) +/* 074108 7F03F5D8 4485A000 */ mtc1 $a1, $f20 +/* 07410C 7F03F5DC 46049182 */ mul.s $f6, $f18, $f4 +/* 074110 7F03F5E0 46065201 */ sub.s $f8, $f10, $f6 +/* 074114 7F03F5E4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 074118 7F03F5E8 C4C40018 */ lwc1 $f4, 0x18($a2) +/* 07411C 7F03F5EC C4D20014 */ lwc1 $f18, 0x14($a2) +/* 074120 7F03F5F0 C4C60020 */ lwc1 $f6, 0x20($a2) +/* 074124 7F03F5F4 C4C8000C */ lwc1 $f8, 0xc($a2) +/* 074128 7F03F5F8 46049282 */ mul.s $f10, $f18, $f4 +/* 07412C 7F03F5FC 00000000 */ nop +/* 074130 7F03F600 46083482 */ mul.s $f18, $f6, $f8 +/* 074134 7F03F604 46125101 */ sub.s $f4, $f10, $f18 +/* 074138 7F03F608 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07413C 7F03F60C C4C8001C */ lwc1 $f8, 0x1c($a2) +/* 074140 7F03F610 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074144 7F03F614 C4D20018 */ lwc1 $f18, 0x18($a2) +/* 074148 7F03F618 C4C40010 */ lwc1 $f4, 0x10($a2) +/* 07414C 7F03F61C 46083282 */ mul.s $f10, $f6, $f8 +/* 074150 7F03F620 00000000 */ nop +/* 074154 7F03F624 46049182 */ mul.s $f6, $f18, $f4 +/* 074158 7F03F628 46065201 */ sub.s $f8, $f10, $f6 +/* 07415C 7F03F62C E7A80018 */ swc1 $f8, 0x18($sp) +/* 074160 7F03F630 C4D20018 */ lwc1 $f18, 0x18($a2) +/* 074164 7F03F634 C4CA001C */ lwc1 $f10, 0x1c($a2) +/* 074168 7F03F638 46120102 */ mul.s $f4, $f0, $f18 +/* 07416C 7F03F63C C4D20020 */ lwc1 $f18, 0x20($a2) +/* 074170 7F03F640 460A1182 */ mul.s $f6, $f2, $f10 +/* 074174 7F03F644 46062200 */ add.s $f8, $f4, $f6 +/* 074178 7F03F648 460C9282 */ mul.s $f10, $f18, $f12 +/* 07417C 7F03F64C C4C40040 */ lwc1 $f4, 0x40($a2) +/* 074180 7F03F650 46142180 */ add.s $f6, $f4, $f20 +/* 074184 7F03F654 46085380 */ add.s $f14, $f10, $f8 +/* 074188 7F03F658 460E303C */ c.lt.s $f6, $f14 +/* 07418C 7F03F65C 00000000 */ nop +/* 074190 7F03F660 45010007 */ bc1t .L7F03F680 +/* 074194 7F03F664 00000000 */ nop +/* 074198 7F03F668 C4D2003C */ lwc1 $f18, 0x3c($a2) +/* 07419C 7F03F66C 46149281 */ sub.s $f10, $f18, $f20 +/* 0741A0 7F03F670 460A703C */ c.lt.s $f14, $f10 +/* 0741A4 7F03F674 00000000 */ nop +/* 0741A8 7F03F678 45020004 */ bc1fl .L7F03F68C +/* 0741AC 7F03F67C C4C8000C */ lwc1 $f8, 0xc($a2) +.L7F03F680: +/* 0741B0 7F03F680 1000002E */ b .L7F03F73C +/* 0741B4 7F03F684 00001025 */ move $v0, $zero +/* 0741B8 7F03F688 C4C8000C */ lwc1 $f8, 0xc($a2) +.L7F03F68C: +/* 0741BC 7F03F68C C4C60010 */ lwc1 $f6, 0x10($a2) +/* 0741C0 7F03F690 46080102 */ mul.s $f4, $f0, $f8 +/* 0741C4 7F03F694 C4C80014 */ lwc1 $f8, 0x14($a2) +/* 0741C8 7F03F698 46061482 */ mul.s $f18, $f2, $f6 +/* 0741CC 7F03F69C 46122280 */ add.s $f10, $f4, $f18 +/* 0741D0 7F03F6A0 460C4182 */ mul.s $f6, $f8, $f12 +/* 0741D4 7F03F6A4 C4C40038 */ lwc1 $f4, 0x38($a2) +/* 0741D8 7F03F6A8 46142480 */ add.s $f18, $f4, $f20 +/* 0741DC 7F03F6AC 460A3380 */ add.s $f14, $f6, $f10 +/* 0741E0 7F03F6B0 460E903C */ c.lt.s $f18, $f14 +/* 0741E4 7F03F6B4 00000000 */ nop +/* 0741E8 7F03F6B8 45010009 */ bc1t .L7F03F6E0 +/* 0741EC 7F03F6BC 00000000 */ nop +/* 0741F0 7F03F6C0 C4C80034 */ lwc1 $f8, 0x34($a2) +/* 0741F4 7F03F6C4 C7AA0010 */ lwc1 $f10, 0x10($sp) +/* 0741F8 7F03F6C8 C7B20014 */ lwc1 $f18, 0x14($sp) +/* 0741FC 7F03F6CC 46144181 */ sub.s $f6, $f8, $f20 +/* 074200 7F03F6D0 4606703C */ c.lt.s $f14, $f6 +/* 074204 7F03F6D4 00000000 */ nop +/* 074208 7F03F6D8 45000003 */ bc1f .L7F03F6E8 +/* 07420C 7F03F6DC 00000000 */ nop +.L7F03F6E0: +/* 074210 7F03F6E0 10000016 */ b .L7F03F73C +/* 074214 7F03F6E4 00001025 */ move $v0, $zero +.L7F03F6E8: +/* 074218 7F03F6E8 460A0102 */ mul.s $f4, $f0, $f10 +/* 07421C 7F03F6EC C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 074220 7F03F6F0 46121202 */ mul.s $f8, $f2, $f18 +/* 074224 7F03F6F4 46082180 */ add.s $f6, $f4, $f8 +/* 074228 7F03F6F8 460C5482 */ mul.s $f18, $f10, $f12 +/* 07422C 7F03F6FC C4C40030 */ lwc1 $f4, 0x30($a2) +/* 074230 7F03F700 46142200 */ add.s $f8, $f4, $f20 +/* 074234 7F03F704 46069400 */ add.s $f16, $f18, $f6 +/* 074238 7F03F708 4610403C */ c.lt.s $f8, $f16 +/* 07423C 7F03F70C 00000000 */ nop +/* 074240 7F03F710 45010008 */ bc1t .L7F03F734 +/* 074244 7F03F714 00000000 */ nop +/* 074248 7F03F718 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 07424C 7F03F71C 24020001 */ li $v0, 1 +/* 074250 7F03F720 46145481 */ sub.s $f18, $f10, $f20 +/* 074254 7F03F724 4612803C */ c.lt.s $f16, $f18 +/* 074258 7F03F728 00000000 */ nop +/* 07425C 7F03F72C 45000003 */ bc1f .L7F03F73C +/* 074260 7F03F730 00000000 */ nop +.L7F03F734: +/* 074264 7F03F734 10000001 */ b .L7F03F73C +/* 074268 7F03F738 00001025 */ move $v0, $zero +.L7F03F73C: +/* 07426C 7F03F73C D7B40008 */ ldc1 $f20, 8($sp) +/* 074270 7F03F740 03E00008 */ jr $ra +/* 074274 7F03F744 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F748(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F748 +/* 074278 7F03F748 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 07427C 7F03F74C AFBF0044 */ sw $ra, 0x44($sp) +/* 074280 7F03F750 AFBE0040 */ sw $fp, 0x40($sp) +/* 074284 7F03F754 AFB7003C */ sw $s7, 0x3c($sp) +/* 074288 7F03F758 AFB60038 */ sw $s6, 0x38($sp) +/* 07428C 7F03F75C AFB50034 */ sw $s5, 0x34($sp) +/* 074290 7F03F760 AFB40030 */ sw $s4, 0x30($sp) +/* 074294 7F03F764 AFB3002C */ sw $s3, 0x2c($sp) +/* 074298 7F03F768 AFB20028 */ sw $s2, 0x28($sp) +/* 07429C 7F03F76C AFB10024 */ sw $s1, 0x24($sp) +/* 0742A0 7F03F770 AFB00020 */ sw $s0, 0x20($sp) +/* 0742A4 7F03F774 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0742A8 7F03F778 AFA40048 */ sw $a0, 0x48($sp) +/* 0742AC 7F03F77C 8C8F0008 */ lw $t7, 8($a0) +/* 0742B0 7F03F780 00E0A025 */ move $s4, $a3 +/* 0742B4 7F03F784 00A0A825 */ move $s5, $a1 +/* 0742B8 7F03F788 8DF00000 */ lw $s0, ($t7) +/* 0742BC 7F03F78C 00C0B025 */ move $s6, $a2 +/* 0742C0 7F03F790 24130001 */ li $s3, 1 +/* 0742C4 7F03F794 12000050 */ beqz $s0, .L7F03F8D8 +/* 0742C8 7F03F798 241E0001 */ li $fp, 1 +/* 0742CC 7F03F79C 2417000A */ li $s7, 10 +/* 0742D0 7F03F7A0 96020000 */ lhu $v0, ($s0) +.L7F03F7A4: +/* 0742D4 7F03F7A4 8FA40048 */ lw $a0, 0x48($sp) +/* 0742D8 7F03F7A8 02002825 */ move $a1, $s0 +/* 0742DC 7F03F7AC 305800FF */ andi $t8, $v0, 0xff +/* 0742E0 7F03F7B0 17170038 */ bne $t8, $s7, .L7F03F894 +/* 0742E4 7F03F7B4 00003025 */ move $a2, $zero +/* 0742E8 7F03F7B8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0742EC 7F03F7BC 8E120004 */ lw $s2, 4($s0) +/* 0742F0 7F03F7C0 1680000C */ bnez $s4, .L7F03F7F4 +/* 0742F4 7F03F7C4 00408825 */ move $s1, $v0 +/* 0742F8 7F03F7C8 02402025 */ move $a0, $s2 +/* 0742FC 7F03F7CC 0FC0FA47 */ jal sub_GAME_7F03E91C +/* 074300 7F03F7D0 00402825 */ move $a1, $v0 +/* 074304 7F03F7D4 C6240030 */ lwc1 $f4, 0x30($s1) +/* 074308 7F03F7D8 02402025 */ move $a0, $s2 +/* 07430C 7F03F7DC 02202825 */ move $a1, $s1 +/* 074310 7F03F7E0 0FC0FA1F */ jal sub_GAME_7F03E87C +/* 074314 7F03F7E4 46002500 */ add.s $f20, $f4, $f0 +/* 074318 7F03F7E8 C6260030 */ lwc1 $f6, 0x30($s1) +/* 07431C 7F03F7EC 10000017 */ b .L7F03F84C +/* 074320 7F03F7F0 46003080 */ add.s $f2, $f6, $f0 +.L7F03F7F4: +/* 074324 7F03F7F4 169E000C */ bne $s4, $fp, .L7F03F828 +/* 074328 7F03F7F8 02402025 */ move $a0, $s2 +/* 07432C 7F03F7FC 02402025 */ move $a0, $s2 +/* 074330 7F03F800 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 074334 7F03F804 02202825 */ move $a1, $s1 +/* 074338 7F03F808 C6280034 */ lwc1 $f8, 0x34($s1) +/* 07433C 7F03F80C 02402025 */ move $a0, $s2 +/* 074340 7F03F810 02202825 */ move $a1, $s1 +/* 074344 7F03F814 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 074348 7F03F818 46004500 */ add.s $f20, $f8, $f0 +/* 07434C 7F03F81C C62A0034 */ lwc1 $f10, 0x34($s1) +/* 074350 7F03F820 1000000A */ b .L7F03F84C +/* 074354 7F03F824 46005080 */ add.s $f2, $f10, $f0 +.L7F03F828: +/* 074358 7F03F828 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 07435C 7F03F82C 02202825 */ move $a1, $s1 +/* 074360 7F03F830 C6300038 */ lwc1 $f16, 0x38($s1) +/* 074364 7F03F834 02402025 */ move $a0, $s2 +/* 074368 7F03F838 02202825 */ move $a1, $s1 +/* 07436C 7F03F83C 0FC0FABF */ jal sub_GAME_7F03EAFC +/* 074370 7F03F840 46008500 */ add.s $f20, $f16, $f0 +/* 074374 7F03F844 C6320038 */ lwc1 $f18, 0x38($s1) +/* 074378 7F03F848 46009080 */ add.s $f2, $f18, $f0 +.L7F03F84C: +/* 07437C 7F03F84C 16600006 */ bnez $s3, .L7F03F868 +/* 074380 7F03F850 0013102B */ sltu $v0, $zero, $s3 +/* 074384 7F03F854 C6A40000 */ lwc1 $f4, ($s5) +/* 074388 7F03F858 4614203C */ c.lt.s $f4, $f20 +/* 07438C 7F03F85C 00000000 */ nop +/* 074390 7F03F860 45000002 */ bc1f .L7F03F86C +/* 074394 7F03F864 00000000 */ nop +.L7F03F868: +/* 074398 7F03F868 E6B40000 */ swc1 $f20, ($s5) +.L7F03F86C: +/* 07439C 7F03F86C 14400006 */ bnez $v0, .L7F03F888 +/* 0743A0 7F03F870 00009825 */ move $s3, $zero +/* 0743A4 7F03F874 C6C60000 */ lwc1 $f6, ($s6) +/* 0743A8 7F03F878 4606103C */ c.lt.s $f2, $f6 +/* 0743AC 7F03F87C 00000000 */ nop +/* 0743B0 7F03F880 45000002 */ bc1f .L7F03F88C +/* 0743B4 7F03F884 00000000 */ nop +.L7F03F888: +/* 0743B8 7F03F888 E6C20000 */ swc1 $f2, ($s6) +.L7F03F88C: +/* 0743BC 7F03F88C 10000002 */ b .L7F03F898 +/* 0743C0 7F03F890 8E020014 */ lw $v0, 0x14($s0) +.L7F03F894: +/* 0743C4 7F03F894 8E020014 */ lw $v0, 0x14($s0) +.L7F03F898: +/* 0743C8 7F03F898 10400003 */ beqz $v0, .L7F03F8A8 +/* 0743CC 7F03F89C 00000000 */ nop +/* 0743D0 7F03F8A0 1000000B */ b .L7F03F8D0 +/* 0743D4 7F03F8A4 00408025 */ move $s0, $v0 +.L7F03F8A8: +/* 0743D8 7F03F8A8 12000009 */ beqz $s0, .L7F03F8D0 +/* 0743DC 7F03F8AC 00000000 */ nop +/* 0743E0 7F03F8B0 8E02000C */ lw $v0, 0xc($s0) +.L7F03F8B4: +/* 0743E4 7F03F8B4 50400004 */ beql $v0, $zero, .L7F03F8C8 +/* 0743E8 7F03F8B8 8E100008 */ lw $s0, 8($s0) +/* 0743EC 7F03F8BC 10000004 */ b .L7F03F8D0 +/* 0743F0 7F03F8C0 00408025 */ move $s0, $v0 +/* 0743F4 7F03F8C4 8E100008 */ lw $s0, 8($s0) +.L7F03F8C8: +/* 0743F8 7F03F8C8 5600FFFA */ bnezl $s0, .L7F03F8B4 +/* 0743FC 7F03F8CC 8E02000C */ lw $v0, 0xc($s0) +.L7F03F8D0: +/* 074400 7F03F8D0 5600FFB4 */ bnezl $s0, .L7F03F7A4 +/* 074404 7F03F8D4 96020000 */ lhu $v0, ($s0) +.L7F03F8D8: +/* 074408 7F03F8D8 8FBF0044 */ lw $ra, 0x44($sp) +/* 07440C 7F03F8DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 074410 7F03F8E0 8FB00020 */ lw $s0, 0x20($sp) +/* 074414 7F03F8E4 8FB10024 */ lw $s1, 0x24($sp) +/* 074418 7F03F8E8 8FB20028 */ lw $s2, 0x28($sp) +/* 07441C 7F03F8EC 8FB3002C */ lw $s3, 0x2c($sp) +/* 074420 7F03F8F0 8FB40030 */ lw $s4, 0x30($sp) +/* 074424 7F03F8F4 8FB50034 */ lw $s5, 0x34($sp) +/* 074428 7F03F8F8 8FB60038 */ lw $s6, 0x38($sp) +/* 07442C 7F03F8FC 8FB7003C */ lw $s7, 0x3c($sp) +/* 074430 7F03F900 8FBE0040 */ lw $fp, 0x40($sp) +/* 074434 7F03F904 03E00008 */ jr $ra +/* 074438 7F03F908 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F90C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F90C +/* 07443C 7F03F90C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074440 7F03F910 AFBF0014 */ sw $ra, 0x14($sp) +/* 074444 7F03F914 AFA70024 */ sw $a3, 0x24($sp) +/* 074448 7F03F918 AFA40018 */ sw $a0, 0x18($sp) +/* 07444C 7F03F91C 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 074450 7F03F920 00003825 */ move $a3, $zero +/* 074454 7F03F924 8FA40018 */ lw $a0, 0x18($sp) +/* 074458 7F03F928 8FA50024 */ lw $a1, 0x24($sp) +/* 07445C 7F03F92C 8FA60028 */ lw $a2, 0x28($sp) +/* 074460 7F03F930 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 074464 7F03F934 24070001 */ li $a3, 1 +/* 074468 7F03F938 8FBF0014 */ lw $ra, 0x14($sp) +/* 07446C 7F03F93C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074470 7F03F940 03E00008 */ jr $ra +/* 074474 7F03F944 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F948(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F948 +/* 074478 7F03F948 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 07447C 7F03F94C AFBF001C */ sw $ra, 0x1c($sp) +/* 074480 7F03F950 AFB00018 */ sw $s0, 0x18($sp) +/* 074484 7F03F954 AFA5003C */ sw $a1, 0x3c($sp) +/* 074488 7F03F958 AFA60040 */ sw $a2, 0x40($sp) +/* 07448C 7F03F95C AFA70044 */ sw $a3, 0x44($sp) +/* 074490 7F03F960 C4A40000 */ lwc1 $f4, ($a1) +/* 074494 7F03F964 00808025 */ move $s0, $a0 +/* 074498 7F03F968 27A50024 */ addiu $a1, $sp, 0x24 +/* 07449C 7F03F96C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0744A0 7F03F970 C4860004 */ lwc1 $f6, 4($a0) +/* 0744A4 7F03F974 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0744A8 7F03F978 C4880008 */ lwc1 $f8, 8($a0) +/* 0744AC 7F03F97C 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744B0 7F03F980 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0744B4 7F03F984 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0744B8 7F03F988 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0744BC 7F03F98C 8FAF0044 */ lw $t7, 0x44($sp) +/* 0744C0 7F03F990 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744C4 7F03F994 27A50024 */ addiu $a1, $sp, 0x24 +/* 0744C8 7F03F998 E5EA0000 */ swc1 $f10, ($t7) +/* 0744CC 7F03F99C 8FB8003C */ lw $t8, 0x3c($sp) +/* 0744D0 7F03F9A0 C7100004 */ lwc1 $f16, 4($t8) +/* 0744D4 7F03F9A4 E7B0002C */ swc1 $f16, 0x2c($sp) +/* 0744D8 7F03F9A8 C6120004 */ lwc1 $f18, 4($s0) +/* 0744DC 7F03F9AC E7B20030 */ swc1 $f18, 0x30($sp) +/* 0744E0 7F03F9B0 C6040008 */ lwc1 $f4, 8($s0) +/* 0744E4 7F03F9B4 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0744E8 7F03F9B8 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0744EC 7F03F9BC C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0744F0 7F03F9C0 8FB90048 */ lw $t9, 0x48($sp) +/* 0744F4 7F03F9C4 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744F8 7F03F9C8 27A50024 */ addiu $a1, $sp, 0x24 +/* 0744FC 7F03F9CC E7260000 */ swc1 $f6, ($t9) +/* 074500 7F03F9D0 C6080000 */ lwc1 $f8, ($s0) +/* 074504 7F03F9D4 8FA80040 */ lw $t0, 0x40($sp) +/* 074508 7F03F9D8 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 07450C 7F03F9DC C50A0004 */ lwc1 $f10, 4($t0) +/* 074510 7F03F9E0 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 074514 7F03F9E4 C6100008 */ lwc1 $f16, 8($s0) +/* 074518 7F03F9E8 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 07451C 7F03F9EC E7B00034 */ swc1 $f16, 0x34($sp) +/* 074520 7F03F9F0 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 074524 7F03F9F4 8FA90044 */ lw $t1, 0x44($sp) +/* 074528 7F03F9F8 27A4002C */ addiu $a0, $sp, 0x2c +/* 07452C 7F03F9FC 27A50024 */ addiu $a1, $sp, 0x24 +/* 074530 7F03FA00 E5320004 */ swc1 $f18, 4($t1) +/* 074534 7F03FA04 C6040000 */ lwc1 $f4, ($s0) +/* 074538 7F03FA08 8FAA0040 */ lw $t2, 0x40($sp) +/* 07453C 7F03FA0C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 074540 7F03FA10 C5460000 */ lwc1 $f6, ($t2) +/* 074544 7F03FA14 E7A60030 */ swc1 $f6, 0x30($sp) +/* 074548 7F03FA18 C6080008 */ lwc1 $f8, 8($s0) +/* 07454C 7F03FA1C 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 074550 7F03FA20 E7A80034 */ swc1 $f8, 0x34($sp) +/* 074554 7F03FA24 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 074558 7F03FA28 8FAB0048 */ lw $t3, 0x48($sp) +/* 07455C 7F03FA2C E56A0004 */ swc1 $f10, 4($t3) +/* 074560 7F03FA30 8FBF001C */ lw $ra, 0x1c($sp) +/* 074564 7F03FA34 8FB00018 */ lw $s0, 0x18($sp) +/* 074568 7F03FA38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 07456C 7F03FA3C 03E00008 */ jr $ra +/* 074570 7F03FA40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void scan_position_data_table_for_normal_object_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel scan_position_data_table_for_normal_object_at_preset +/* 074574 7F03FA44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074578 7F03FA48 AFBF0014 */ sw $ra, 0x14($sp) +/* 07457C 7F03FA4C 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 074580 7F03FA50 AFA40018 */ sw $a0, 0x18($sp) +/* 074584 7F03FA54 8FA50018 */ lw $a1, 0x18($sp) +/* 074588 7F03FA58 10400010 */ beqz $v0, .L7F03FA9C +/* 07458C 7F03FA5C 00401825 */ move $v1, $v0 +/* 074590 7F03FA60 24020001 */ li $v0, 1 +/* 074594 7F03FA64 906E0000 */ lbu $t6, ($v1) +.L7F03FA68: +/* 074598 7F03FA68 544E000A */ bnel $v0, $t6, .L7F03FA94 +/* 07459C 7F03FA6C 8C630024 */ lw $v1, 0x24($v1) +/* 0745A0 7F03FA70 8C640004 */ lw $a0, 4($v1) +/* 0745A4 7F03FA74 00057C00 */ sll $t7, $a1, 0x10 +/* 0745A8 7F03FA78 000FC403 */ sra $t8, $t7, 0x10 +/* 0745AC 7F03FA7C 84990006 */ lh $t9, 6($a0) +/* 0745B0 7F03FA80 57190004 */ bnel $t8, $t9, .L7F03FA94 +/* 0745B4 7F03FA84 8C630024 */ lw $v1, 0x24($v1) +/* 0745B8 7F03FA88 10000005 */ b .L7F03FAA0 +/* 0745BC 7F03FA8C 00801025 */ move $v0, $a0 +/* 0745C0 7F03FA90 8C630024 */ lw $v1, 0x24($v1) +.L7F03FA94: +/* 0745C4 7F03FA94 5460FFF4 */ bnezl $v1, .L7F03FA68 +/* 0745C8 7F03FA98 906E0000 */ lbu $t6, ($v1) +.L7F03FA9C: +/* 0745CC 7F03FA9C 00001025 */ move $v0, $zero +.L7F03FAA0: +/* 0745D0 7F03FAA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0745D4 7F03FAA4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0745D8 7F03FAA8 03E00008 */ jr $ra +/* 0745DC 7F03FAAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FAB0(void) { + +} +#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 sub_GAME_7F03CCB0 +/* 074648 7F03FB18 02A03025 */ move $a2, $s5 +/* 07464C 7F03FB1C 02402025 */ move $a0, $s2 +/* 074650 7F03FB20 8FA50038 */ lw $a1, 0x38($sp) +/* 074654 7F03FB24 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 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/chrai.h b/src/game/chrai.h new file mode 100644 index 0000000..7d273dd --- /dev/null +++ b/src/game/chrai.h @@ -0,0 +1,113 @@ +#ifndef _CHRAI_H_ +#define _CHRAI_H_ +#include "ultra64.h" + +struct sfx_register_struct { + u32 field_0x0; + u32 field_0x4; + u32 field_0x8; + u32 field_0xc; + u32 field_0x10; + u32 field_0x14; +}; + +struct struct_0 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + void * anonymous_5; + int anonymous_6; +}; + +struct struct_5 { + int anonymous_0; + void * anonymous_1; + int anonymous_2; +}; + +struct struct_12 { + int anonymous_0; + char anonymous_1; + char anonymous_2; + char anonymous_3; + char anonymous_4; + int anonymous_5; + int anonymous_6; + void * anonymous_7; +}; + +struct struct_16 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + int anonymous_5; + void * anonymous_6; +}; + +struct struct_20 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + int anonymous_5; + int anonymous_6; + int anonymous_7; + int anonymous_8; + int anonymous_9; + int anonymous_10; + int anonymous_11; + int anonymous_12; + int anonymous_13; + int anonymous_14; + int anonymous_15; + int anonymous_16; + int anonymous_17; + int anonymous_18; + void * anonymous_19; +}; + +extern u32 D_800312A0[]; +extern u32 D_800312B4[]; +extern u32 D_800312C8[]; +extern u32 D_800312F4[]; +extern u32 D_80031310[]; +extern struct struct_5 D_80031950[]; +extern struct struct_0 D_800319D4; +extern struct struct_0 D_800319F0; +extern struct struct_0 D_80031A0C; +extern struct struct_0 D_80031A28; +extern struct struct_0 D_80031A44; +extern struct struct_0 D_80031A60; +extern struct struct_0 D_80031A7C; +extern struct struct_0 D_80031A98; +extern struct struct_0 D_80031AB4; +extern struct struct_0 D_80031AD0; +extern struct struct_5 D_80031AEC[]; +extern struct struct_12 D_80031B10[]; +extern struct struct_12 D_80031B24[]; +extern struct struct_12 D_80031B38[]; +extern struct struct_12 D_80031B4C[]; +extern u32 D_80031B60[]; +extern struct struct_16 D_80031BB4; +extern struct struct_16 D_80031BD0; +extern struct struct_16 D_80031BEC; +extern u32 D_80031C08[]; +extern u32 D_80031C80[]; +extern u32 D_80031D30[]; +extern struct struct_20 D_80031D58; +extern u32 monitor_animation_microcode[]; +extern u32 dword_D_80031F00[]; +extern u32 dword_D_80031F44[]; +extern f32 gas_damage_flag; +extern u32 gas_cutoff_flag; +extern struct object_standard * ptr_setup_objects; +void stop_alarm(void); + +void check_deactivate_gas_sound(void); + +#endif diff --git a/src/game/chrobjdata.c b/src/game/chrobjdata.c new file mode 100644 index 0000000..b60d234 --- /dev/null +++ b/src/game/chrobjdata.c @@ -0,0 +1,3086 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chrobjdata.h" +// bss + + +/* global ai lists used for all levels */ +// data +//D:80037070 +u8 dword_D_80037070[] = { // GLIST_AIM_AT_BOND: continuously aim at bond with weapon + guard_try_fire_or_aim_at_target(TARGET_BOND | TARGET_AIM_ONLY, 0, 0x01) + goto_loop_infinite(0x01) + ai_list_end +}; + +//D:8003707C +u8 dword_D_8003707C[] = { // GLIST_END_ROUTINE: end routine (loop forever) + goto_loop_infinite(0x11) + ai_list_end +}; + +//D:80037084 +u8 dword_D_80037084[] = { // GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE: wait for bond detection (spawn clone when heard bond) + goto_loop_start(0x01) + if_chr_dying_or_dead(CHR_SELF, 0x11) // guard died, safely end list + if_guard_has_stopped_moving(0x06) // guard has stopped moving, safe to continue + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_heard_bond_within_last_10_secs(0x0E) + if_guard_shot_from_bond_missed(0x10) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + if_guard_playing_animation(0x03) // playing idle animation + random_generate_greater_than(1, 0x03) // 1/255 chance of playing idle animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_IDLE_RAND_ANIM_SUBROUTINE) // play idle animation and return to list + label(0x03) + goto_loop_repeat(0x01) + label(0x10) // bond shot near guard + random_generate_greater_than(127, 0x07) // 50% chance of playing looking around animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + label(0x0E) // guard heard bond, attempt to spawn clone (only if chr has clone flag) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND) + label(0x11) // guard has died, end routine + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:800370DC +u8 dword_D_800370DC[] = { // GLIST_IDLE_RAND_ANIM_SUBROUTINE: play idle animation (subroutine) + random_generate_greater_than(50, 0x03) // generate annd compare random seed to see which animation to play + guard_play_animation(ANIM_yawning, 0, 193, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(100, 0x03) + guard_play_animation(ANIM_swatting_flies, 0, 294, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(150, 0x03) + guard_play_animation(ANIM_scratching_leg, 0, 183, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(200, 0x03) + guard_play_animation(ANIM_scratching_butt, 0, 123, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(250, 0x03) + guard_play_animation(ANIM_adjusting_crotch, 0, 56, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + guard_play_animation(ANIM_sneeze, 0, 137, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x02) + jump_to_return_ai_list + ai_list_end +}; + +//D:8003713C +u8 dword_D_8003713C[] = { // GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE: play use keyboard animation (subroutine) + random_generate_greater_than(60, 0x03) + guard_play_animation(ANIM_keyboard_right_hand1, 0, 69, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(120, 0x03) + guard_play_animation(ANIM_keyboard_right_hand2, 0, 74, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(180, 0x03) + guard_play_animation(ANIM_keyboard_left_hand, 0, 79, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + guard_play_animation(ANIM_keyboard_right_hand_tapping, 0, 89, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x02) + jump_to_return_ai_list + ai_list_end +}; + +//D:8003717C +u8 dword_D_8003717C[] = { // GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM: wait for bond detection (deaf/no clones/no idling) + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_has_stopped_moving(0x06) + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_shot_from_bond_missed(0x10) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + goto_loop_repeat(0x01) + label(0x10) // bond shot near guard + random_generate_greater_than(127, 0x07) // 50% chance of playing looking around animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800371B4 +u8 dword_D_800371B4[] = { // GLIST_FIRE_RAND_ANIM_SUBROUTINE: fire at bond with random animation (subroutine) + if_guard_bitfield_is_set_on(BITFIELD_DONT_POINT_AT_BOND, 0x03) // if guard already pointed at bond, goto label 03 + random_generate_greater_than(32, 0x03) // 12.5% chance of pointing to bond + guard_points_at_bond + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // don't point again, thank you object permanence + jump_to_return_ai_list // guard pointed at bond, return to list + label(0x03) + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // set flag so we don't point at bond, only do that for first time in list + guard_try_throwing_grenade(0x02) // attempt to throw grenade, depends on chr->grenadeprob value + label(0x03) + random_generate_greater_than(10, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + random_generate_greater_than(10, 0x03) + guard_try_hopping_sideways(0x02) + label(0x03) + random_generate_greater_than(25, 0x03) + guard_try_sidestepping(0x02) + label(0x03) + random_generate_greater_than(50, 0x03) + guard_try_running_to_side(0x02) + label(0x03) + random_generate_greater_than(64, 0x03) + guard_try_firing_walk(0x02) // infinite ammo death sentence ;) + label(0x03) + if_random_seed_greater_than(127, 0x03) + guard_try_firing_run(0x02) + label(0x03) + random_generate_greater_than(127, 0x0B) + guard_try_fire_or_aim_at_target(TARGET_BOND, 0, 0x02) + label(0x0B) + guard_try_fire_or_aim_at_target_kneel(TARGET_BOND, 0, 0x02) + label(0x02) // guard did the thing, now go back home + jump_to_return_ai_list + ai_list_end +}; + +//D:8003720C +u8 dword_D_8003720C[] = { // GLIST_RUN_TO_BOND_SUBROUTINE: run to bond and fire (subroutine) + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // guard is aware of bond, so don't point at him when first spotted + guard_try_running_to_bond_position(0x01) // goto loop if bond position is reachable + jump_to_return_ai_list // if guard can't reach bond, return to ai list (read guard_try_running_to_bond_position command info) + goto_loop_start(0x01) + if_guard_has_stopped_moving(0x06) + if_guard_sees_bond(0x07) // detected bond, goto attack list + goto_loop_repeat(0x01) + label(0x07) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x06) + jump_to_return_ai_list + ai_list_end +}; + +//D:80037224 +u8 dword_D_80037224[] = { // GLIST_SPAWN_CLONE_OR_RUN_TO_BOND: if chr has been seen, run to bond - else spawn clone + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // guard is aware of bond, so don't point at him when first spotted + if_guard_has_not_been_seen(0x0E) // if guard has yet to be seen by bond, goto 0E + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) // guard has been seen, run to bond and fire + label(0x0E) + if_chr_does_not_exist(CHR_CLONE, 0x0E) // if clone doesn't exist, goto 0E + jump_to_ai_list(CHR_SELF, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) // continue idling + label(0x0E) + chr_try_spawning_clone(CHR_SELF, GLIST_RUN_TO_BOND_AND_FIRE, 0x03) // attempt to spawn clone with run to bond list assigned, if success goto 03 + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) // guard failed to spawn (not enough memory/guard doesn't have clone flag on), just run at bond anyway + label(0x03) // if clone spawn was successful + jump_to_ai_list(CHR_SELF, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) // set original chr to sit tight while the clone does all the work, giving the illusion that bunker ii is a crowded complex + ai_list_end +}; + +//D:80037248 +u8 dword_D_80037248[] = { // GLIST_RUN_TO_BOND_AND_FIRE: run to bond and fire + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:80037250 +u8 dword_D_80037250[] = { // GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM: wait for bond detection (no clones/no idling) + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_heard_bond_within_last_10_secs(0x0D) + if_guard_shot_from_bond_missed(0x0D) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + goto_loop_repeat(0x01) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + label(0x0E) // unused spawn clone reaction for hearing bond, likely made game too difficult/slow + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND) + ai_list_end +}; + +//D:80037280 +u8 dword_D_80037280[] = { // GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM: run to chr->padpreset1 and activate alarm + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_has_stopped_moving(0x06) + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x0F) + if_guard_hits_missed_greater_than(0, 0x10) + if_guard_heard_bond_within_last_10_secs(0x10) + if_guard_see_another_guard_shot(0x10) + if_guard_see_another_guard_die(0x10) + goto_loop_repeat(0x01) + label(0x10) // a guard in sight was killed/shot, heard bond or bond shot guard + if_guard_hits_greater_than(0, 0x0F) // doesn't make sense why the guard would be mildly curious about getting shot + guard_looks_around_self + goto_loop_start(0x04) // wait for guard to stop moving before branching to next logic (triggered by look around animation) + if_guard_has_stopped_moving(0x0F) + goto_loop_repeat(0x04) + label(0x0F) + guard_runs_to_pad(PAD_PRESET) + goto_loop_start(0x03) // wait for guard to stop moving (reached destination/guard was shot) + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x03) + label(0x02) + if_chr_meters_to_pad_greater_than(CHR_SELF, 1, PAD_PRESET, 0x02) // if guard is more than 1 meter away from alarm, skip to attack ai list + guard_try_triggering_alarm_at_pad(PAD_PRESET, 0x05) + goto_next(0x02) // didn't activate alarm (alarm destroyed?) + goto_loop_start(0x05) // wait for guard to finish activating alarm + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x05) + label(0x02) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800372D0 +u8 dword_D_800372D0[] = { // GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE: startle character (subroutine) + guard_looks_around_self // trigger animation + goto_loop_start(0x01) + if_guard_has_stopped_moving(0x02) // wait for chr to stop moving + goto_loop_repeat(0x01) + label(0x02) // chr stopped moving + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800372E0 +u8 dword_D_800372E0[] = { // GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY: forever chase bond and fire (halt randomly) + label(0x28) + guard_try_running_to_bond_position(0x1B) // goto loop if bond position is reachable + debug_log 'n','o',' ','g','o','!','\n', debug_log_end // guard can't reach bond + goto_loop_start(0x1B) + if_guard_and_bond_within_line_of_sight(0x06) + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x1B) + label(0x01) + ai_sleep + if_guard_hits_less_than(6, 0x2D) + if_guard_flags_is_set_on(CHRFLAG_INVINCIBLE, 0x2F) + label(0x2D) + if_guard_has_stopped_moving(0x06) + if_guard_meters_to_bond_greater_than(20, 0x03) // if guard is further than 20 meters away from bond, goto 03 + goto_first(0x01) + label(0x03) + goto_first(0x28) + label(0x06) + if_guard_and_bond_within_line_of_sight(0x03) + goto_next(0x02) + label(0x24) + ai_sleep + if_guard_meters_to_bond_less_than(5, 0x03) // if guard is within 5 meters from bond, goto 03 + if_guard_has_stopped_moving(0x03) + goto_first(0x28) + label(0x03) + if_guard_flags_is_set_on(CHRFLAG_INVINCIBLE, 0x2F) + label(0x2B) + random_generate_greater_than(10, 0x03) + guard_try_throwing_grenade(0x02) // attempt to throw grenade, depends on chr->grenadeprob value + label(0x03) + if_random_seed_greater_than(50, 0x03) + guard_try_sidestepping(0x02) + label(0x03) + if_random_seed_greater_than(60, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + if_random_seed_greater_than(80, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + if_random_seed_greater_than(100, 0x03) + guard_try_firing_walk(0x02) + label(0x03) + if_random_seed_greater_than(150, 0x03) + guard_try_firing_run(0x02) + label(0x03) + if_random_seed_greater_than(200, 0x03) + guard_try_fire_or_aim_at_target(TARGET_BOND, 0, 0x02) + label(0x03) + guard_try_fire_or_aim_at_target_kneel(TARGET_BOND, 0, 0x02) + label(0x02) + if_guard_and_bond_within_line_of_sight(0x03) + goto_next(0x1B) + label(0x1B) + ai_sleep + random_generate_greater_than(160, 0x03) + goto_next(0x1C) + label(0x03) + ai_sleep + goto_first(0x01) + label(0x1C) + local_timer_reset_start + guard_try_running_to_bond_position(0x1D) + goto_loop_start(0x1D) + if_guard_has_stopped_moving(0x03) + if_local_timer_seconds_greater_than(1, 0x03) + goto_loop_repeat(0x1D) + label(0x03) + guard_animation_stop + debug_log 'w','a','i','t','\n', debug_log_end + guard_bitfield_set_off(0x04) + random_generate_greater_than(160, 0x03) + guard_bitfield_set_on(0x04) + label(0x03) + local_timer_reset_start + label(0x1E) + ai_sleep + if_guard_and_bond_within_line_of_sight(0x03) + if_guard_shot_from_bond_missed(0x03) + ai_sleep + if_local_timer_seconds_less_than(10, 0x04) // if timer less than 10 seconds, goto 04 + if_guard_bitfield_is_set_on(0x04, 0x05) + goto_first(0x28) + label(0x05) + goto_first(0x1C) + label(0x04) + goto_first(0x1E) + label(0x03) + goto_first(0x01) + label(0x2F) + if_guard_hits_less_than(6, 0x03) + guard_flags_set_off(CHRFLAG_INVINCIBLE) + label(0x03) + goto_first(0x2B) + ai_list_end +}; + +//D:800373D0 +u8 dword_D_800373D0[] = { // GLIST_WAIT_ONE_SECOND_SUBROUTINE: wait for one second (subroutine) + local_timer_reset_start + goto_loop_start(0x1B) + if_local_timer_seconds_greater_than(1, 0x03) // wait one second + goto_loop_repeat(0x1B) + label(0x03) + jump_to_return_ai_list + ai_list_end +}; + +//D:800373E0 +u8 dword_D_800373E0[] = { // GLIST_EXIT_LEVEL: exit level + exit_level + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:800373E8 +u8 dword_D_800373E8[] = { // GLIST_DRAW_DD44_AND_FIRE: draw dd44 and fire + guard_set_speed_rating(40) // fast boi watch out! + guard_set_accuracy_rating(50) + label(0x03) + guard_try_facing_target(TARGET_BOND, 0, 0x03) + label(0x03) + local_timer_reset_start + goto_loop_start(0x1B) + if_local_timer_greater_than(20, 0x03) // wait 1/3 of a second + goto_loop_repeat(0x1B) + label(0x03) + guard_play_animation(ANIM_fire_standing_draw_one_handed_weapon_fast, 0, 20, ANIM_LOOP_HOLD_LAST_FRAME, ANIM_DEFAULT_INTERPOLATION) + goto_loop_start(0x1C) + if_guard_has_stopped_moving(0x03) + goto_loop_repeat(0x1C) + label(0x03) + guard_try_spawning_item(PROP_chrtt33, ITEM_TT33, 0, 0x03) + label(0x03) + guard_try_fire_or_aim_at_target(TARGET_BOND | TARGET_AIM_ONLY, 0, 0x03) // aim... + label(0x03) + guard_try_fire_or_aim_at_target_update(TARGET_BOND, 0, 0x03) // FIRE! + label(0x03) + goto_loop_start(0x1E) // loop until guard has stopped firing at bond + if_guard_has_stopped_moving(0x03) + goto_loop_repeat(0x1E) + label(0x03) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:80037444 +u8 dword_D_80037444[] = { // GLIST_REMOVE_CHR: remove chr + chr_remove_instant(CHR_SELF) // remove self + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:8003744C +struct struct_13 D_8003744C[] = { // global ai lists (glists) + {dword_D_80037070, GLIST_AIM_AT_BOND}, + {dword_D_8003707C, GLIST_END_ROUTINE}, + {dword_D_80037084, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE}, + {dword_D_800370DC, GLIST_IDLE_RAND_ANIM_SUBROUTINE}, + {dword_D_8003713C, GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE}, + {dword_D_8003717C, GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM}, + {dword_D_800371B4, GLIST_FIRE_RAND_ANIM_SUBROUTINE}, + {dword_D_80037250, GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM}, + {dword_D_8003720C, GLIST_RUN_TO_BOND_SUBROUTINE}, + {dword_D_80037280, GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM}, + {dword_D_800372D0, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE}, + {dword_D_80037224, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND}, + {dword_D_80037248, GLIST_RUN_TO_BOND_AND_FIRE}, + {dword_D_800372E0, GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY}, + {dword_D_800373D0, GLIST_WAIT_ONE_SECOND_SUBROUTINE}, + {dword_D_800373E0, GLIST_EXIT_LEVEL}, + {dword_D_800373E8, GLIST_DRAW_DD44_AND_FIRE}, + {dword_D_80037444, GLIST_REMOVE_CHR} +}; +//D:800374DC +u32 D_800374DC[] = {0,0}; + +//D:800374E4 +char * setup_text_pointers[] = { + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "UsetupsevbunkerZ", + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,"UsetupsiloZ", + "UsetupsevbunkerZ","UsetupstatueZ","UsetupcontrolZ","UsetuparchZ","UsetuptraZ", + "UsetupdestZ","UsetupsevbZ","UsetupaztZ","UsetuppeteZ","UsetupdepoZ","UsetuprefZ", + "UsetupcrypZ","UsetupdamZ","UsetuparkZ","UsetuprunZ","UsetupsevxZ","UsetupjunZ", + "UsetupdishZ","UsetupcaveZ","UsetupcatZ","UsetupcradZ","UsetupshoZ","UsetupsevxbZ", + "UsetupeldZ","UsetupimpZ","UsetupashZ","UsetuplueZ","UsetupameZ","UsetupritZ", + "UsetupoatZ","UsetupearZ","UsetupleeZ","UsetuplipZ","UsetuplenZ","UsetupwaxZ", + "UsetuppamZ", NULL, NULL +}; + + +//D:800375D0 +struct PitemZ_header Palarm1z_header = {0, &model_object_standard_object, 0, 0, 1, 304.6402, 2, 0, 0}; +//D:800375F0 +struct PitemZ_header Palarm2Z_header = {0, &model_object_standard_object, 0, 0, 1, 208.22205, 3, 0, 0}; +//D:80037610 +struct PitemZ_header PexplosionbitZ_header = {0, &model_object_standard_object, 0, 0, 1, 208.22205, 0, 0, 0}; +//D:80037630 +struct PitemZ_header Pammo_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 3, 0, 0}; +//D:80037650 +struct PitemZ_header Pammo_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 4, 0, 0}; +//D:80037670 +struct PitemZ_header Pammo_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 4, 0, 0}; +//D:80037690 +struct PitemZ_header Pammo_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 5, 0, 0}; +//D:800376B0 +struct PitemZ_header Pammo_crate5Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 5, 0, 0}; +//D:800376D0 +struct PitemZ_header Pbin1Z_header = {0, &model_object_standard_object, 0, 0, 1, 3027.6262, 2, 0}; +//D:800376F0 +struct PitemZ_header Pblotter1Z_header = {0, &model_object_standard_object, 0, 0, 1, 432.46707, 1, 0, 0}; +//D:80037710 +struct PitemZ_header Pbook1Z_header = {0, &model_object_standard_object, 0, 0, 1, 171.37482, 2, 0, }; +//D:80037730 +struct PitemZ_header Pbookshelf1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1166.7578, 0xD, 0, 0}; +//D:80037750 +struct PitemZ_header Pbridge_console1aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:80037770 +struct PitemZ_header Pbridge_console1bZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 788.03992, 0x10, 0, 0}; +//D:80037790 +struct PitemZ_header Pbridge_console2aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:800377B0 +struct PitemZ_header Pbridge_console2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 788.03992, 0xF, 0, 0}; +//D:800377D0 +struct PitemZ_header Pbridge_console3aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:800377F0 +struct PitemZ_header Pbridge_console3bZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0x10, 0, 0}; +//D:80037810 +struct PitemZ_header Pcard_box1Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 5, 0, 0}; +//D:80037830 +struct PitemZ_header Pcard_box2Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 6, 0, 0}; +//D:80037850 +struct PitemZ_header Pcard_box3Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 5, 0, 0}; +//D:80037870 +struct PitemZ_header Pcard_box4_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 4, 0, 0}; +//D:80037890 +struct PitemZ_header Pcard_box5_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 5, 0, 0}; +//D:800378B0 +struct PitemZ_header Pcard_box6_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 5, 0, 0}; +//D:800378D0 +struct PitemZ_header PcctvZ_header = {0, &prop_cctv_related, 0, 0, 0x40002, 558.90094, 6, 0}; +//D:800378F0 +struct PitemZ_header Pconsole1Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037910 +struct PitemZ_header Pconsole2Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037930 +struct PitemZ_header Pconsole3Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037950 +struct PitemZ_header Pconsole_sevaZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xE, 0, 0}; +//D:80037970 +struct PitemZ_header Pconsole_sevbZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xB, 0, 0}; +//D:80037990 +struct PitemZ_header Pconsole_sevcZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xF, 0, 0}; +//D:800379B0 +struct PitemZ_header Pconsole_sevdZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:800379D0 +struct PitemZ_header Pconsole_sev2aZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:800379F0 +struct PitemZ_header Pconsole_sev2bZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xD, 0, 0}; +//D:80037A10 +struct PitemZ_header Pconsole_sev2cZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xF, 0, 0}; +//D:80037A30 +struct PitemZ_header Pconsole_sev2dZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A50 +struct PitemZ_header Pconsole_sev_GEaZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A70 +struct PitemZ_header Pconsole_sev_GEbZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A90 +struct PitemZ_header Pdesk1Z_header = {0, &model_object_standard_object, 0, 0, 1, 957.18225, 3, 0, }; +//D:80037AB0 +struct PitemZ_header Pdesk2Z_header = {0, &model_object_standard_object, 0, 0, 1, 957.18225, 3, 0, }; +//D:80037AD0 +struct PitemZ_header Pdesk_lamp2Z_header = {0, &model_object_standard_object, 0, 0, 1, 804.59833, 4, 0, 0}; +//D:80037AF0 +struct PitemZ_header Pdisc_readerZ_header = {0, &model_object_standard_object, 0, 0, 1, 214.33035, 6, 0, 0}; +//D:80037B10 +struct PitemZ_header Pdisk_drive1Z_header = {0, &model_object_standard_object, 0, 0, 1, 191.85779, 4, 0, 0}; +//D:80037B30 +struct PitemZ_header Pfiling_cabinet1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1055.5693, 2, 0, 0}; +//D:80037B50 +struct PitemZ_header Pjerry_can1Z_header = {0, &model_object_standard_object, 0, 0, 1, 366.61932, 4, 0, 0}; +//D:80037B70 +struct PitemZ_header Pkeyboard1Z_header = {0, &model_object_standard_object, 0, 0, 1, 278.23227, 2, 0, 0}; +//D:80037B90 +struct PitemZ_header Pkit_units1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1661.4763, 4, 0, 0}; +//D:80037BB0 +struct PitemZ_header Pletter_tray1Z_header = {0, &model_object_standard_object, 0, 0, 1, 252.06836, 1, 0, 0}; +//D:80037BD0 +struct PitemZ_header Pmainframe1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1119.4073, 7, 0, 0}; +//D:80037BF0 +struct PitemZ_header Pmainframe2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1119.4073, 7, 0, 0}; +//D:80037C10 +struct PitemZ_header Pmetal_chair1Z_header = {0, &model_object_standard_object, 0, 0, 1, 639.18097, 2, 0, 0}; +//D:80037C30 +struct PitemZ_header Pmetal_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037C50 +struct PitemZ_header Pmetal_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037C70 +struct PitemZ_header Pmetal_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 2, 0, 0}; +//D:80037C90 +struct PitemZ_header Pmetal_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037CB0 +struct PitemZ_header Pmissile_rackZ_header = {0, &model_object_standard_object, 0, 0, 1, 964.16296, 4, 0, 0}; +//D:80037CD0 +struct PitemZ_header Pmissile_rack2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1148.4724, 4, 0, 0}; +//D:80037CF0 +struct PitemZ_header Poil_drum1Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 2, 0, 0}; +//D:80037D10 +struct PitemZ_header Poil_drum2Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037D30 +struct PitemZ_header Poil_drum3Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037D50 +struct PitemZ_header Poil_drum5Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 3, 0, 0}; +//D:80037D70 +struct PitemZ_header Poil_drum6Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 3, 0, 0}; +//D:80037D90 +struct PitemZ_header Poil_drum7Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037DB0 +struct PitemZ_header PpadlockZ_header = {0, &model_object_standard_object, 0, 0, 1, 225.64145, 4, 0, 0}; +//D:80037DD0 +struct PitemZ_header Pphone1Z_header = {0, &model_object_standard_object, 0, 0, 1, 166.03481, 2, 0, 0}; +//D:80037DF0 +struct PitemZ_header Pradio_unit1Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E10 +struct PitemZ_header Pradio_unit2Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E30 +struct PitemZ_header Pradio_unit3Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E50 +struct PitemZ_header Pradio_unit4Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E70 +struct PitemZ_header Psat1_reflectZ_header = {0, &model_object_standard_object, 0, 0, 1, 5185.9409, 0xD, 0, 0}; +//D:80037E90 +struct PitemZ_header PsatdishZ_header = {0, &model_object_standard_object, 0, 0, 1, 2437.468, 2, 0, 0}; +//D:80037EB0 +struct PitemZ_header PsatboxZ_header = {0, &model_object_standard_object, 0, 0, 1, 89.935875, 1, 0, 0}; +//D:80037ED0 +struct PitemZ_header Pstool1Z_header = {0, &model_object_standard_object, 0, 0, 1, 353.11398, 2, 0, 0}; +//D:80037EF0 +struct PitemZ_header Pswivel_chair1Z_header = {0, &model_object_standard_object, 0, 0, 1, 581.16394, 3, 0, 0}; +//D:80037F10 +struct PitemZ_header Ptorpedo_rackZ_header = {0, &model_object_standard_object, 0, 0, 1, 765.61725, 3, 0, 0}; +//D:80037F30 +struct PitemZ_header Ptv1Z_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 347.0235, 5, 0}; +//D:80037F50 +struct PitemZ_header Ptv_holderZ_header = {0, &prop_tv_holder_related, 0, 0, 0x40005, 1352.4841, 2, 0, 0}; +//D:80037F70 +struct PitemZ_header PtvscreenZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 211.74477, 1, 0, 0}; +//D:80037F90 +struct PitemZ_header Ptv4screenZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 211.74477, 1, 0, 0}; +//D:80037FB0 +struct PitemZ_header Pwood_lg_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037FD0 +struct PitemZ_header Pwood_lg_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 2, 0, 0}; +//D:80037FF0 +struct PitemZ_header Pwood_md_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 909.32666, 2, 0, 0}; +//D:80038010 +struct PitemZ_header Pwood_sm_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 3, 0, 0}; +//D:80038030 +struct PitemZ_header Pwood_sm_crate5Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 4, 0, 0}; +//D:80038050 +struct PitemZ_header Pwood_sm_crate6Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 4, 0, 0}; +//D:80038070 +struct PitemZ_header Pwooden_table1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1095.1365, 2, 0, 0}; +//D:80038090 +struct PitemZ_header Pswipe_card2Z_header = {0, &model_object_standard_object, 0, 0, 1, 123.088844, 2, 0, 0}; +//D:800380B0 +struct PitemZ_header Pborg_crateZ_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 1, 0, 0}; +//D:800380D0 +struct PitemZ_header Pboxes4x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2424.8711, 7, 0, 0}; +//D:800380F0 +struct PitemZ_header Pboxes3x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2241.0935, 6, 0, 0}; +//D:80038110 +struct PitemZ_header Pboxes2x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2100.0, 6, 0, 0}; +//D:80038130 +struct PitemZ_header Psec_panelZ_header = {0, &model_object_standard_object, 0, 0, 1, 1567.2454, 3, 0, 0}; +//D:80038150 +struct PitemZ_header PICBM_noseZ_header = {0, &model_object_standard_object, 0, 0, 1, 2782.7126, 8, 0, 0}; +//D:80038170 +struct PitemZ_header PICBMZ_header = {0, &model_object_standard_object, 0, 0, 1, 14790.535, 0xE, 0}; +//D:80038190 +struct PitemZ_header Ptuning_console1Z_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 1139.5872, 0xE, 0, 0}; +//D:800381B0 +struct PitemZ_header Pdesk_arecibo1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1829.1477, 3, 0, 0}; +//D:800381D0 +struct PitemZ_header Plocker3Z_header = {0, &model_object_standard_object, 0, 0, 1, 916.99805, 3, 0, 0}; +//D:800381F0 +struct PitemZ_header Plocker4Z_header = {0, &model_object_standard_object, 0, 0, 1, 916.99805, 3, 0, 0}; +//D:80038210 +struct PitemZ_header ProofgunZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 1910.908, 0xE, 0, 0}; +//D:80038230 +struct PitemZ_header Pdest_engineZ_header = {0, &model_object_standard_object, 0, 0, 1, 6459.439, 0xA, 0, 0}; +//D:80038250 +struct PitemZ_header Pdest_exocetZ_header = {0, &model_object_standard_object, 0, 0, 1, 1644.8435, 8, 0, 0}; +//D:80038270 +struct PitemZ_header Pdest_gunZ_header = {0, &model_object_standard_object, 0, 0, 1, 2124.0735, 5, 0, 0}; +//D:80038290 +struct PitemZ_header Pdest_harpoonZ_header = {0, &model_object_standard_object, 0, 0, 1, 1798.7655, 5, 0, 0}; +//D:800382B0 +struct PitemZ_header Pdest_seawolfZ_header = {0, &model_object_standard_object, 0, 0, 1, 2282.0623, 0xA, 0, 0}; +//D:800382D0 +struct PitemZ_header PwindowZ_header = {0, &model_object_standard_object, 0, 0, 1, 423.48956, 1, 0, 0}; +//D:800382F0 +struct PitemZ_header Pwindow_lib_lg1Z_header = {0, &model_object_standard_object, 0, 0, 1, 835.20624, 1, 0, 0}; +//D:80038310 +struct PitemZ_header Pwindow_lib_sm1Z_header = {0, &model_object_standard_object, 0, 0, 1, 601.28625, 1, 0, 0}; +//D:80038330 +struct PitemZ_header Pwindow_cor11Z_header = {0, &model_object_standard_object, 0, 0, 1, 414.53622, 1, 0, 0}; +//D:80038350 +struct PitemZ_header Pjungle3_treeZ_header = {0, &model_object_standard_object, 0, 0, 1, 28729.467, 5, 0, 0}; +//D:80038370 +struct PitemZ_header PpalmZ_header = {0, &model_object_standard_object, 0, 0, 1, 15501.406, 3, 0}; +//D:80038390 +struct PitemZ_header PpalmtreeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1781.4542, 2, 0, 0}; +//D:800383B0 +struct PitemZ_header Pplant2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 1252.9539, 2, 0, 0}; +//D:800383D0 +struct PitemZ_header PlabbenchZ_header = {0, &model_object_standard_object, 0, 0, 1, 844.09717, 4, 0, 0}; +//D:800383F0 +struct PitemZ_header PgasbarrelZ_header = {0, &model_object_standard_object, 0, 0, 1, 725.94379, 2, 0, 0}; +//D:80038410 +struct PitemZ_header PgasbarrelsZ_header = {0, &model_object_standard_object, 0, 0, 1, 1174.1927, 2, 0, 0}; +//D:80038430 +struct PitemZ_header PbodyarmourZ_header = {0, &model_object_standard_object, 0, 0, 1, 246.94099, 7, 0, 0}; +//D:80038450 +struct PitemZ_header PbodyarmourvestZ_header = {0, &model_object_standard_object, 0, 0, 1, 241.82211, 2, 0, 0}; +//D:80038470 +struct PitemZ_header PgastankZ_header = {0, &model_object_standard_object, 0, 0, 1, 1130.0691, 5, 0, 0}; +//D:80038490 +struct PitemZ_header Pglassware1Z_header = {0, &model_object_standard_object, 0, 0, 1, 72.111031, 1, 0, 0}; +//D:800384B0 +struct PitemZ_header PhatchboltZ_header = {0, &model_object_standard_object, 0, 0, 1, 2236.0679, 1, 0, 0}; +//D:800384D0 +struct PitemZ_header PbrakeunitZ_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 4, 0, 0}; +//D:800384F0 +struct PitemZ_header Pak47magZ_header = {0, &model_object_standard_object, 0, 0, 1, 107.11019, 2, 0, 0}; +//D:80038510 +struct PitemZ_header Pm16magZ_header = {0, &model_object_standard_object, 0, 0, 1, 87.934891, 2, 0, 0}; +//D:80038530 +struct PitemZ_header Pmp5kmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 119.547295, 2, 0, 0}; +//D:80038550 +struct PitemZ_header PskorpionmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 58.428444, 2, 0, 0}; +//D:80038570 +struct PitemZ_header PspectremagZ_header = {0, &model_object_standard_object, 0, 0, 1, 99.01432, 2, 0, 0}; +//D:80038590 +struct PitemZ_header PuzimagZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:800385B0 +struct PitemZ_header PsilencerZ_header = {0, &model_object_standard_object, 0, 0, 1, 63.915436, 3, 0, 0}; +//D:800385D0 +struct PitemZ_header PchrextinguisherZ_header = {0, &model_object_standard_object, 0, 0, 1, 425.50903, 2, 0, 0}; +//D:800385F0 +struct PitemZ_header PboxcartridgesZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038610 +struct PitemZ_header Pfnp90magZ_header = {0, &model_object_standard_object, 0, 0, 1, 176.28201, 2, 0, 0}; +//D:80038630 +struct PitemZ_header PgoldenshellsZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038650 +struct PitemZ_header PmagnumshellsZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038670 +struct PitemZ_header PwppkmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:80038690 +struct PitemZ_header Ptt33magZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:800386B0 +struct PitemZ_header Psev_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 1143.7695, 3, 0, 0}; +//D:800386D0 +struct PitemZ_header Psev_door3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1143.5603, 6, 0, 0}; +//D:800386F0 +struct PitemZ_header Psev_door3_windZ_header = {0, &model_object_standard_object, 0, 0, 1, 1143.5603, 5, 0, 0}; +//D:80038710 +struct PitemZ_header Psev_door4_windZ_header = {0, &prop_door_related, 0, 0, 0x40001, 1143.5603, 8, 0, 0}; +//D:80038730 +struct PitemZ_header Psev_trislideZ_header = {0, &prop_door_related, 0, 0, 0x40001, 950.54327, 2, 0, 0}; +//D:80038750 +struct PitemZ_header Psev_door_v1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 6, 0, 0}; +//D:80038770 +struct PitemZ_header Psteel_door1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 4, 0, 0}; +//D:80038790 +struct PitemZ_header Psteel_door2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:800387B0 +struct PitemZ_header Psteel_door3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:800387D0 +struct PitemZ_header Psilo_lift_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 600.71082, 4, 0, 0}; +//D:800387F0 +struct PitemZ_header Psteel_door2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:80038810 +struct PitemZ_header Pdoor_roller1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038830 +struct PitemZ_header Pdoor_roller2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038850 +struct PitemZ_header Pdoor_roller3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038870 +struct PitemZ_header Pdoor_roller4Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038890 +struct PitemZ_header Pdoor_st_arec1Z_header = {0, &model_object_standard_object, 0, 0, 1, 763.03589, 3, 0, 0}; +//D:800388B0 +struct PitemZ_header Pdoor_st_arec2Z_header = {0, &model_object_standard_object, 0, 0, 1, 763.03589, 3, 0, 0}; +//D:800388D0 +struct PitemZ_header Pdoor_dest1Z_header = {0, &model_object_standard_object, 0, 0, 1, 461.3873, 3, 0, 0}; +//D:800388F0 +struct PitemZ_header Pdoor_dest2Z_header = {0, &model_object_standard_object, 0, 0, 1, 461.3873, 5, 0, 0}; +//D:80038910 +struct PitemZ_header Pgas_plant_sw_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.29706, 4, 0, 0}; +//D:80038930 +struct PitemZ_header Pgas_plant_sw2_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 2, 0, 0}; +//D:80038950 +struct PitemZ_header Pgas_plant_sw3_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 2, 0, 0}; +//D:80038970 +struct PitemZ_header Pgas_plant_sw4_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 1, 0, 0}; +//D:80038990 +struct PitemZ_header Pgas_plant_met1_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 5, 0, 0}; +//D:800389B0 +struct PitemZ_header Pgas_plant_wc_cub1Z_header = {0, &model_object_standard_object, 0, 0, 1, 783.8501, 3, 0, 0}; +//D:800389D0 +struct PitemZ_header Pgasplant_clear_doorZ_header = {0, &prop_door_related, 0, 0, 0x40001, 1025.0952, 2, 0, 0}; +//D:800389F0 +struct PitemZ_header Ptrain_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 456.99615, 3, 0, 0}; +//D:80038A10 +struct PitemZ_header Ptrain_door2Z_header = {0, &prop_door_related, 0, 0, 0x40001, 445.98541, 3, 0, 0}; +//D:80038A30 +struct PitemZ_header Ptrain_door3Z_header = {0, &prop_door_related, 0, 0, 0x40001, 445.98541, 4, 0, 0}; +//D:80038A50 +struct PitemZ_header Pdoor_eyelidZ_header = {0, &prop_eyelid_door_related, 0, 0, 0x30003, 3165.4348, 3, 0, 0}; +//D:80038A70 +struct PitemZ_header Pdoor_irisZ_header = {0, &prop_iris_door_related, 0, 0, 0xD000D, 1621.3601, 5, 0, 0}; +//D:80038A90 +struct PitemZ_header PsevdoorwoodZ_header = {0, &prop_door_related, 0, 0, 0x40001, 851.62671, 3, 0, 0}; +//D:80038AB0 +struct PitemZ_header PsevdoorwindZ_header = {0, &prop_door_related, 0, 0, 0x40001, 851.62671, 5, 0, 0}; +//D:80038AD0 +struct PitemZ_header PsevdoornowindZ_header = {0, &model_object_standard_object, 0, 0, 1, 863.03766, 2, 0, 0}; +//D:80038AF0 +struct PitemZ_header PsevdoormetslideZ_header = {0, &model_object_standard_object, 0, 0, 1, 863.74707, 2, 0, 0}; +//D:80038B10 +struct PitemZ_header Pcryptdoor1aZ_header = {0, &model_object_standard_object, 0, 0, 1, 502.64923, 2, 0, 0}; +//D:80038B30 +struct PitemZ_header Pcryptdoor1bZ_header = {0, &model_object_standard_object, 0, 0, 1, 400.97537, 2, 0, 0}; +//D:80038B50 +struct PitemZ_header Pcryptdoor2aZ_header = {0, &model_object_standard_object, 0, 0, 1, 502.64923, 2, 0, 0}; +//D:80038B70 +struct PitemZ_header Pcryptdoor2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 400.97537, 2, 0, 0}; +//D:80038B90 +struct PitemZ_header Pcryptdoor3Z_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 3, 0, 0}; +//D:80038BB0 +struct PitemZ_header Pcryptdoor4Z_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 1, 0, 0}; +//D:80038BD0 +struct PitemZ_header PvertdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 1997.2246, 5, 0, 0}; +//D:80038BF0 +struct PitemZ_header PhatchdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 192.1653, 1, 0, 0}; +//D:80038C10 +struct PitemZ_header PdamgatedoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 308.36456, 3, 0, 0}; +//D:80038C30 +struct PitemZ_header PdamtundoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 127.89996, 4, 0, 0}; +//D:80038C50 +struct PitemZ_header PdamchaindoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 171.36655, 2, 0, 0}; +//D:80038C70 +struct PitemZ_header PsilotopdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 2675.3958, 5, 0, 0}; +//D:80038C90 +struct PitemZ_header Pdoorprison1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1062.0833, 1, 0, 0}; +//D:80038CB0 +struct PitemZ_header PdoorstatgateZ_header = {0, &model_object_standard_object, 0, 0, 1, 1503.9503, 3, 0, 0}; +//D:80038CD0 +struct PitemZ_header PchrkalashZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 403.53766, 8, 0, 0}; +//D:80038CF0 +struct PitemZ_header PchrgrenadelaunchZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 422.48355, 7, 0, 0}; +//D:80038D10 +struct PitemZ_header PchrknifeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 245.14619, 2, 0, 0}; +//D:80038D30 +struct PitemZ_header PchrlaserZ_header = {0, &prop_weapon_related, 0, 0, 0x30002, 444.66241, 8, 0, 0}; +//D:80038D50 +struct PitemZ_header Pchrm16Z_header = {0, &prop_weapon_related, 0, 0, 0x30002, 964.01367, 6, 0, 0}; +//D:80038D70 +struct PitemZ_header Pchrmp5kZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 277.32227, 9, 0, 0}; +//D:80038D90 +struct PitemZ_header PchrrugerZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 246.72643, 5, 0, 0}; +//D:80038DB0 +struct PitemZ_header PchrwppkZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 125.79879, 5, 0, 0}; +//D:80038DD0 +struct PitemZ_header PchrshotgunZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 488.88385, 8, 0, 0}; +//D:80038DF0 +struct PitemZ_header PchrskorpionZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 183.37708, 7, 0, 0}; +//D:80038E10 +struct PitemZ_header PchrspectreZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 351.26923, 6, 0, 0}; +//D:80038E30 +struct PitemZ_header PchruziZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 265.11813, 7, 0, 0}; +//D:80038E50 +struct PitemZ_header PchrgrenadeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 118.18749, 2, 0, 0}; +//D:80038E70 +struct PitemZ_header Pchrfnp90Z_header = {0, &prop_weapon_related, 0, 0, 0x30002, 470.04633, 7, 0, 0}; +//D:80038E90 +struct PitemZ_header PchrbriefcaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80038EB0 +struct PitemZ_header PchrremotemineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.434036, 2, 0, 0}; +//D:80038ED0 +struct PitemZ_header PchrproximitymineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.196609, 2, 0, 0}; +//D:80038EF0 +struct PitemZ_header PchrtimedmineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.245888, 3, 0, 0}; +//D:80038F10 +struct PitemZ_header PchrrocketZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.8634, 3, 0, 0}; +//D:80038F30 +struct PitemZ_header PchrgrenaderoundZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 96.976593, 1, 0, 0}; +//D:80038F50 +struct PitemZ_header PchrwppksilZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 219.44571, 6, 0, 0}; +//D:80038F70 +struct PitemZ_header Pchrtt33Z_header = {0, &prop_weapon_related, 0, 0, 0x30001, 142.11539, 5, 0, 0}; +//D:80038F90 +struct PitemZ_header Pchrmp5ksilZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 406.18033, 0xA, 0, 0}; +//D:80038FB0 +struct PitemZ_header PchrautoshotZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 375.50247, 8, 0, 0}; +//D:80038FD0 +struct PitemZ_header PchrgoldenZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 157.98299, 2, 0, 0}; +//D:80038FF0 +struct PitemZ_header PchrthrowknifeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 217.61888, 2, 0, 0}; +//D:80039010 +struct PitemZ_header PchrsniperrifleZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 616.93939, 5, 0, 0}; +//D:80039030 +struct PitemZ_header PchrrocketlaunchZ_header = {0, &prop_weapon_related, 0, 0, 0x30002, 501.55179, 6, 0, 0}; +//D:80039050 +struct PitemZ_header PhatfurryZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:80039070 +struct PitemZ_header PhatfurrybrownZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:80039090 +struct PitemZ_header PhatfurryblackZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:800390B0 +struct PitemZ_header PhattbirdZ_header = {0, &item_hat_related, 0, 0, 1, 114.45274, 1, 0, 0}; +//D:800390D0 +struct PitemZ_header PhattbirdbrownZ_header = {0, &item_hat_related, 0, 0, 1, 122.7013, 1, 0, 0}; +//D:800390F0 +struct PitemZ_header PhathelmetZ_header = {0, &item_hat_related, 0, 0, 1, 163.84476, 1, 0, 0}; +//D:80039110 +struct PitemZ_header PhathelmetgreyZ_header = {0, &item_hat_related, 0, 0, 1, 163.84476, 1, 0, 0}; +//D:80039130 +struct PitemZ_header PhatmoonZ_header = {0, &item_hat_related, 0, 0, 1, 138.25751, 2, 0, 0}; +//D:80039150 +struct PitemZ_header PhatberetZ_header = {0, &item_hat_related, 0, 0, 1, 116.16043, 1, 0, 0}; +//D:80039170 +struct PitemZ_header PhatberetblueZ_header = {0, &item_hat_related, 0, 0, 1, 116.16043, 2, 0, 0}; +//D:80039190 +struct PitemZ_header PhatberetredZ_header = {0, &item_hat_related, 0, 0, 1, 115.46455, 2, 0, 0}; +//D:800391B0 +struct PitemZ_header PhatpeakedZ_header = {0, &item_hat_related, 0, 0, 1, 148.39027, 1, 0, 0}; +//D:800391D0 +struct PitemZ_header PchrwristdartZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800391F0 +struct PitemZ_header PchrexplosivepenZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039210 +struct PitemZ_header PchrbombcaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039230 +struct PitemZ_header PchrflarepistolZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039250 +struct PitemZ_header PchrpitongunZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039270 +struct PitemZ_header PchrfingergunZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039290 +struct PitemZ_header PchrsilverwppkZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392B0 +struct PitemZ_header PchrgoldwppkZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392D0 +struct PitemZ_header PchrdynamiteZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392F0 +struct PitemZ_header PchrbungeeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039310 +struct PitemZ_header PchrdoordecoderZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 180.27969, 0x10, 0, 0}; +//D:80039330 +struct PitemZ_header PchrbombdefuserZ_header = {0, &model_object_standard_object, 0, 0, 1, 84.370705, 0xC, 0, 0}; +//D:80039350 +struct PitemZ_header PchrbugdetectorZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039370 +struct PitemZ_header PchrsafecrackercaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039390 +struct PitemZ_header PchrcameraZ_header = {0, &model_object_standard_object, 0, 0, 1, 52.775627, 0xB, 0, 0}; +//D:800393B0 +struct PitemZ_header PchrlockexploderZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800393D0 +struct PitemZ_header PchrdoorexploderZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800393F0 +struct PitemZ_header PchrkeyanalysercaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039410 +struct PitemZ_header PchrweaponcaseZ_header = {0, &model_object_standard_object, 0, 0, 1, 274.2905, 5, 0, 0}; +//D:80039430 +struct PitemZ_header PchrkeyyaleZ_header = {0, &model_object_standard_object, 0, 0, 1, 82.850311, 1, 0, 0}; +//D:80039450 +struct PitemZ_header PchrkeyboltZ_header = {0, &model_object_standard_object, 0, 0, 1, 151.85315, 1, 0, 0}; +//D:80039470 +struct PitemZ_header PchrbugZ_header = {0, &model_object_standard_object, 0, 0, 1, 104.7203, 6, 0, 0}; +//D:80039490 +struct PitemZ_header PchrmicrocameraZ_header = {0, &model_object_standard_object, 0, 0, 1, 126.49728, 7, 0, 0}; +//D:800394B0 +struct PitemZ_header PfloppyZ_header = {0, &model_object_standard_object, 0, 0, 1, 60.902443, 5, 0, 0}; +//D:800394D0 +struct PitemZ_header PchrgoldeneyekeyZ_header = {0, &model_object_standard_object, 0, 0, 1, 98.987083, 5, 0, 0}; +//D:800394F0 +struct PitemZ_header PchrpolarizedglassesZ_header = {0, &model_object_standard_object, 0, 0, 1, 53.776386, 2, 0, 0}; +//D:80039510 +struct PitemZ_header PchrcreditcardZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039530 +struct PitemZ_header PchrdarkglassesZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039550 +struct PitemZ_header PchrgaskeyringZ_header = {0, &model_object_standard_object, 0, 0, 1, 111.59859, 9, 0, 0}; +//D:80039570 +struct PitemZ_header PchrdatathiefZ_header = {0, &model_object_standard_object, 0, 0, 1, 119.78231, 3, 0, 0}; +//D:80039590 +struct PitemZ_header PsafeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1011.18744, 3, 0}; +//D:800395B0 +struct PitemZ_header PbombZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0}; +//D:800395D0 +struct PitemZ_header PchrplansZ_header = {0, &model_object_standard_object, 0, 0, 1, 384.74649, 5, 0, 0}; +//D:800395F0 +struct PitemZ_header PchrspyfileZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039610 +struct PitemZ_header PchrblueprintsZ_header = {0, &model_object_standard_object, 0, 0, 1, 588.65448, 4, 0, 0}; +//D:80039630 +struct PitemZ_header PchrcircuitboardZ_header = {0, &model_object_standard_object, 0, 0, 1, 138.90285, 3, 0, 0}; +//D:80039650 +struct PitemZ_header PchrmapZ_header = {0, &model_object_standard_object, 0, 0, 1, 588.65448, 4, 0, 0}; +//D:80039670 +struct PitemZ_header PchrspooltapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039690 +struct PitemZ_header PchraudiotapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 97.531075, 9, 0, 0}; +//D:800396B0 +struct PitemZ_header PchrmicrofilmZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800396D0 +struct PitemZ_header PchrmicrocodeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800396F0 +struct PitemZ_header PchrlectreZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039710 +struct PitemZ_header PchrmoneyZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039730 +struct PitemZ_header PchrgoldbarZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039750 +struct PitemZ_header PchrheroinZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039770 +struct PitemZ_header PchrclipboardZ_header = {0, &model_object_standard_object, 0, 0, 1, 190.41742, 3, 0, 0}; +//D:80039790 +struct PitemZ_header PchrdossierredZ_header = {0, &model_object_standard_object, 0, 0, 1, 183.54231, 4, 0, 0}; +//D:800397B0 +struct PitemZ_header PchrstafflistZ_header = {0, &model_object_standard_object, 0, 0, 1, 215.17534, 4, 0, 0}; +//D:800397D0 +struct PitemZ_header PchrdattapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 79.868584, 4, 0, 0}; +//D:800397F0 +struct PitemZ_header PchrplastiqueZ_header = {0, &model_object_standard_object, 0, 0, 1, 143.86052, 3, 0, 0}; +//D:80039810 +struct PitemZ_header PchrblackboxZ_header = {0, &model_object_standard_object, 0, 0, 1, 128.31796, 5, 0, 0}; +//D:80039830 +struct PitemZ_header PchrvideotapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 122.69632, 9, 0, 0}; +//D:80039850 +struct PitemZ_header PnintendologoZ_header = {0, &model_object_standard_object, 0, 0, 1, 1868.335, 1, 0, 0}; +//D:80039870 +struct PitemZ_header PgoldeneyelogoZ_header = {0, &model_object_standard_object, 0, 0, 1, 1287.1866, 2, 0, 0}; +//D:80039890 +struct PitemZ_header PwalletbondZ_header = {0, &prop_walletbond_related, 0, 0, 0x2B0001, 3504.53, 0x54, 0, 0}; +//D:800398B0 +struct PitemZ_header PmiltruckZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 4589.7188, 0x16, 0, 0}; +//D:800398D0 +struct PitemZ_header PjeepZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 2107.8105, 0x10, 0}; +//D:800398F0 +struct PitemZ_header ParticZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 2678.5667, 0x11, 0, }; +//D:80039910 +struct PitemZ_header PhelicopterZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 4955.271, 0x18, 0, 0}; +//D:80039930 +struct PitemZ_header PtigerZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 4072.0291, 0xE, 0, }; +//D:80039950 +struct PitemZ_header PmilcopterZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 5316.9155, 0xF, 0, 0}; +//D:80039970 +struct PitemZ_header PhindZ_header = {0, &prop_flying_related, 0, 0, 0x60005, 5315.314, 0xB, 0}; +//D:80039990 +struct PitemZ_header PartictrailerZ_header = {0, &model_object_standard_object, 0, 0, 1, 4014.6265, 0xB, 0, 0}; +//D:800399B0 +struct PitemZ_header PmotorbikeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1610.8706, 6, 0, 0}; +//D:800399D0 +struct PitemZ_header PtankZ_header = {0, &item_tank_related, 0, 0, 0x90005, 6290.8398, 0x18, 0}; +//D:800399F0 +struct PitemZ_header PapcZ_header = {0, &model_object_standard_object, 0, 0, 1, 3611.1035, 0xE, 0}; +//D:80039A10 +struct PitemZ_header PspeedboatZ_header = {0, &model_object_standard_object, 0, 0, 1, 1799.4586, 0xD, 0, 0}; +//D:80039A30 +struct PitemZ_header PplaneZ_header = {0, &prop_flying_related, 0, 0, 0x60003, 9285.4492, 0x1C, 0, }; +//D:80039A50 +struct PitemZ_header Pgun_runway1Z_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 1927.5205, 6, 0, 0}; +//D:80039A70 +struct PitemZ_header PsafedoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 714.14612, 4, 0, 0}; +//D:80039A90 +struct PitemZ_header Pkey_holderZ_header = {0, &model_object_standard_object, 0, 0, 1, 223.87097, 7, 0, 0}; +//D:80039AB0 +struct PitemZ_header PhatchsevxZ_header = {0, &model_object_standard_object, 0, 0, 1, 1224.7664, 2, 0, 0}; +//D:80039AD0 +struct PitemZ_header PsevdishZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80003, 14350.1, 7, 0, 0}; +//D:80039AF0 +struct PitemZ_header Parchsecdoor1Z_header = {0, &model_object_standard_object, 0, 0, 1, 455.81409, 3, 0, 0}; +//D:80039B10 +struct PitemZ_header Parchsecdoor2Z_header = {0, &model_object_standard_object, 0, 0, 1, 496.99292, 3, 0, 0}; +//D:80039B30 +struct PitemZ_header PgroundgunZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 2182.6472, 4, 0, 0}; +//D:80039B50 +struct PitemZ_header PtrainextdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 587.70111, 5, 0, 0}; +//D:80039B70 +struct PitemZ_header PcarbmwZ_header = {0, &model_object_standard_object, 0, 0, 1, 553.08728, 0xB, 0, 0}; +//D:80039B90 +struct PitemZ_header PcarescortZ_header = {0, &model_object_standard_object, 0, 0, 1, 1110.5665, 9, 0, 0}; +//D:80039BB0 +struct PitemZ_header PcargolfZ_header = {0, &model_object_standard_object, 0, 0, 1, 1121.6409, 0xA, 0, 0}; +//D:80039BD0 +struct PitemZ_header PcarweirdZ_header = {0, &model_object_standard_object, 0, 0, 1, 984.03931, 0xD, 0, 0}; +//D:80039BF0 +struct PitemZ_header PcarzilZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 1044.5764, 0xD, 0, 0}; +//D:80039C10 +struct PitemZ_header Pshuttle_door_lZ_header = {0, &model_object_standard_object, 0, 0, 1, 706.56641, 7, 0, 0}; +//D:80039C30 +struct PitemZ_header Pshuttle_door_rZ_header = {0, &model_object_standard_object, 0, 0, 1, 706.56641, 8, 0, 0}; +//D:80039C50 +struct PitemZ_header Pdepot_gate_entryZ_header = {0, &model_object_standard_object, 0, 0, 1, 811.28949, 3, 0, 0}; +//D:80039C70 +struct PitemZ_header Pdepot_door_steelZ_header = {0, &model_object_standard_object, 0, 0, 1, 574.79651, 3, 0, 0}; +//D:80039C90 +struct PitemZ_header Pglassware2Z_header = {0, &model_object_standard_object, 0, 0, 1, 98.488579, 3, 0, 0}; +//D:80039CB0 +struct PitemZ_header Pglassware3Z_header = {0, &model_object_standard_object, 0, 0, 1, 137.92715, 1, 0, 0}; +//D:80039CD0 +struct PitemZ_header Pglassware4Z_header = {0, &model_object_standard_object, 0, 0, 1, 177.48241, 2, 0, 0}; +//D:80039CF0 +struct PitemZ_header PlandmineZ_header = {0, &model_object_standard_object, 0, 0, 1, 440.03009, 2, 0, 0}; +//D:80039D10 +struct PitemZ_header Pplant1Z_header = {0, &model_object_standard_object, 0, 0, 1, 2704.1086, 1, 0, 0}; +//D:80039D30 +struct PitemZ_header Pplant11Z_header = {0, &model_object_standard_object, 0, 0, 1, 2704.1086, 1, 0, 0}; +//D:80039D50 +struct PitemZ_header Pplant2Z_header = {0, &model_object_standard_object, 0, 0, 1, 3416.248, 2, 0, 0}; +//D:80039D70 +struct PitemZ_header Pplant3Z_header = {0, &model_object_standard_object, 0, 0, 1, 2986.0405, 1, 0, 0}; +//D:80039D90 +struct PitemZ_header Pjungle5_treeZ_header = {0, &model_object_standard_object, 0, 0, 1, 3277.6123, 4, 0, 0}; +//D:80039DB0 +struct PitemZ_header PlegalpageZ_header = {0, &model_object_standard_object, 0, 0, 1, 2711.7573, 5, 0, 0}; +//D:80039DD0 +struct PitemZ_header Pst_pete_room_1iZ_header = {0, &model_object_standard_object, 0, 0, 1, 8437.5137, 0x17, 0, 0}; +//D:80039DF0 +struct PitemZ_header Pst_pete_room_2iZ_header = {0, &model_object_standard_object, 0, 0, 1, 8515.8164, 0x19, 0, 0}; +//D:80039E10 +struct PitemZ_header Pst_pete_room_3tZ_header = {0, &model_object_standard_object, 0, 0, 1, 4561.9766, 0x1B, 0, 0}; +//D:80039E30 +struct PitemZ_header Pst_pete_room_5cZ_header = {0, &model_object_standard_object, 0, 0, 1, 4561.9766, 0x19, 0, 0}; +//D:80039E50 +struct PitemZ_header Pst_pete_room_6cZ_header = {0, &model_object_standard_object, 0, 0, 1, 5006.2896, 0x17, 0, 0}; +//D:80039E70 +struct PitemZ_header Pdoor_rollertrainZ_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 2, 0, 0}; +//D:80039E90 +struct PitemZ_header Pdoor_winZ_header = {0, &model_object_standard_object, 0, 0, 1, 211.90215, 1, 0, 0}; +//D:80039EB0 +struct PitemZ_header Pdoor_aztecZ_header = {0, &model_object_standard_object, 0, 0, 1, 632.48639, 1, 0, 0}; +//D:80039ED0 +struct PitemZ_header PshuttleZ_header = {0, &model_object_standard_object, 0, 0, 1, 4475.1494, 9, 0, 0}; +//D:80039EF0 +struct PitemZ_header Pdoor_azt_deskZ_header = {0, &model_object_standard_object, 0, 0, 1, 860.41669, 2, 0, 0}; +//D:80039F10 +struct PitemZ_header Pdoor_azt_desk_topZ_header = {0, &model_object_standard_object, 0, 0, 1, 565.93268, 3, 0, 0}; +//D:80039F30 +struct PitemZ_header Pdoor_azt_chairZ_header = {0, &model_object_standard_object, 0, 0, 1, 94.510803, 3, 0, 0}; +//D:80039F50 +struct PitemZ_header Pdoor_mfZ_header = {0, &model_object_standard_object, 0, 0, 1, 559.70367, 7, 0, 0}; +//D:80039F70 +struct PitemZ_header PflagZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 862.30865, 2, 0}; +//D:80039F90 +struct PitemZ_header PbarricadeZ_header = {0, &model_object_standard_object, 0, 0, 1, 2047.3016, 2, 0, 0}; +//D:80039FB0 +struct PitemZ_header PmodemboxZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 338.28839, 4, 0, 0}; +//D:80039FD0 +struct PitemZ_header PdoorpanelZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 338.28839, 4, 0, 0}; +//D:80039FF0 +struct PitemZ_header PdoorconsoleZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xD, 0, 0}; +//D:8003A010 +struct PitemZ_header PchrtesttubeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 136.25925, 2, 0, 0}; +//D:8003A030 +struct PitemZ_header Pbollardz_header = {0, &model_object_standard_object, 0, 0, 1, 628.78754, 1, 0, 0}; + +//D:8003A050 +struct prop_pos_data word_D_8003A050[2] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003} +}; +//D:8003A05C +struct item_related prop_cctv_related = {2, 0, word_D_8003A050, 6, 0}; + +//D:8003A068 +struct prop_pos_data word_D_8003A068[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A06E .half 0 + +//D:8003A070 +struct item_related prop_console_one_screen_related = {1, 0, word_D_8003A068, 3, 0}; + +//D:8003A07C +struct prop_pos_data word_D_8003A07C[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A082 .half 0 + +//D:8003A084 +struct item_related prop_console_four_screen_related = {1, 0, word_D_8003A07C, 3, 0}; + +//D:8003A090 +struct prop_pos_data word_D_8003A090[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A0AE .half 0 + +//D:8003A0B0 +struct item_related prop_tv_holder_related = {5, 0, word_D_8003A090, 0xF, 0}; + +//D:8003A0BC +struct prop_pos_data word_D_8003A0BC[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F} +}; +//D:8003A0E0 +struct item_related prop_rotating_stuff_related = {6, 0, word_D_8003A0BC, 0x12, 0}; + +//D:8003A0EC +struct prop_pos_data word_D_8003A0EC[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006} +}; +//D:8003A0FE .half 0 +//D:8003A100 +struct item_related prop_eyelid_door_related = {3, 0, word_D_8003A0EC, 9, 0}; + +//D:8003A10C +struct prop_pos_data word_D_8003A10C[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F}, + {0x0002, 0x0012, 0x0012}, + {0x0002, 0x0015, 0x0015}, + {0x0002, 0x0018, 0x0018}, + {0x0002, 0x001B, 0x001B}, + {0x0002, 0x001E, 0x001E}, + {0x0002, 0x0021, 0x0021}, + {0x0002, 0x0024, 0x0024} +}; +//D:8003A15C +struct item_related prop_iris_door_related = {0xD, 0, word_D_8003A10C, 0x27, 0}; + +//D:8003A168 +struct prop_pos_data word_D_8003A168[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A16E .half 0 +//D:8003A170 +struct item_related prop_walletbond_related = {1, 0, word_D_8003A168, 3, 0}; + +//D:8003A17C +struct prop_pos_data word_D_8003A17C[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A19C +struct item_related prop_car_related = {5, 0, word_D_8003A17C, 0xF, 0}; + +//D:8003A1A8 +struct prop_pos_data word_D_8003A1A8[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0015, 0x0003, 0x0003}, + {0x0015, 0x0004, 0x0004}, + {0x0015, 0x0005, 0x0005} +}; +//D:8003A1C6 .half 0 +//D:8003A1C8 +struct item_related prop_flying_related = {5, 0, word_D_8003A1A8, 3, 0}; + +//D:8003A1D4 +struct prop_pos_data word_D_8003A1D4[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A1DA .half 0 +//D:8003A1DC +struct item_related prop_door_related = {1, 0, word_D_8003A1D4, 3, 0}; + +//D:8003A1E8 +struct prop_pos_data word_D_8003A1E8[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A206 .half 0 +//D:8003A208 +struct item_related item_tank_related = {5, 0, word_D_8003A1E8, 0xF, 0}; + +//D:8003A214 +struct prop_pos_data word_D_8003A214[] = { + {0x0015, 0x0000, 0x0000}, +}; +//D:8003A21A .half 0 +//D:8003A21C +struct item_related item_hat_related = {1, 0, word_D_8003A214, 0, 0}; +const u8 spacer_string[] = "\00\00\00\00\00\00\00\00"; +//D:8003A228 .globl PitemZ_entries +struct p_itementry PitemZ_entries[] = { + {&Palarm1z_header, "Palarm1Z", 0.1}, + {&Palarm2Z_header, "Palarm2Z", 0.1}, + {&PexplosionbitZ_header, "PexplosionbitZ", 0.1}, + {&Pammo_crate1Z_header, "Pammo_crate1Z", 0.1}, + {&Pammo_crate2Z_header, "Pammo_crate2Z", 0.1}, + {&Pammo_crate3Z_header, "Pammo_crate3Z", 0.1}, + {&Pammo_crate4Z_header, "Pammo_crate4Z", 0.1}, + {&Pammo_crate5Z_header, "Pammo_crate5Z", 0.1}, + {&Pbin1Z_header, "Pbin1Z", 0.1}, + {&Pblotter1Z_header, "Pblotter1Z", 0.1}, + {&Pbook1Z_header, "Pbook1Z", 0.1}, + {&Pbookshelf1Z_header, "Pbookshelf1Z", 0.1}, + {&Pbridge_console1aZ_header, "Pbridge_console1aZ", 0.1}, + {&Pbridge_console1bZ_header, "Pbridge_console1bZ", 0.1}, + {&Pbridge_console2aZ_header, "Pbridge_console2aZ", 0.1}, + {&Pbridge_console2bZ_header, "Pbridge_console2bZ", 0.1}, + {&Pbridge_console3aZ_header, "Pbridge_console3aZ", 0.1}, + {&Pbridge_console3bZ_header, "Pbridge_console3bZ", 0.1}, + {&Pcard_box1Z_header, "Pcard_box1Z", 0.1}, + {&Pcard_box2Z_header, "Pcard_box2Z", 0.1}, + {&Pcard_box3Z_header, "Pcard_box3Z", 0.1}, + {&Pcard_box4_lgZ_header, "Pcard_box4_lgZ", 0.1}, + {&Pcard_box5_lgZ_header, "Pcard_box5_lgZ", 0.1}, + {&Pcard_box6_lgZ_header, "Pcard_box6_lgZ", 0.1}, + {&PcctvZ_header, "PcctvZ", 0.1}, + {&Pconsole1Z_header, "Pconsole1Z", 0.1}, + {&Pconsole2Z_header, "Pconsole2Z", 0.1}, + {&Pconsole3Z_header, "Pconsole3Z", 0.1}, + {&Pconsole_sevaZ_header, "Pconsole_sevaZ", 0.1}, + {&Pconsole_sevbZ_header, "Pconsole_sevbZ", 0.1}, + {&Pconsole_sevcZ_header, "Pconsole_sevcZ", 0.1}, + {&Pconsole_sevdZ_header, "Pconsole_sevdZ", 0.1}, + {&Pconsole_sev2aZ_header, "Pconsole_sev2aZ", 0.1}, + {&Pconsole_sev2bZ_header, "Pconsole_sev2bZ", 0.1}, + {&Pconsole_sev2cZ_header, "Pconsole_sev2cZ", 0.1}, + {&Pconsole_sev2dZ_header, "Pconsole_sev2dZ", 0.1}, + {&Pconsole_sev_GEaZ_header, "Pconsole_sev_GEaZ", 0.1}, + {&Pconsole_sev_GEbZ_header, "Pconsole_sev_GEbZ", 0.1}, + {&Pdesk1Z_header, "Pdesk1Z", 0.1}, + {&Pdesk2Z_header, "Pdesk2Z", 0.1}, + {&Pdesk_lamp2Z_header, "Pdesk_lamp2Z", 0.1}, + {&Pdisc_readerZ_header, "Pdisc_readerZ", 0.1}, + {&Pdisk_drive1Z_header, "Pdisk_drive1Z", 0.1}, + {&Pfiling_cabinet1Z_header, "Pfiling_cabinet1Z", 0.1}, + {&Pjerry_can1Z_header, "Pjerry_can1Z", 0.1}, + {&Pkeyboard1Z_header, "Pkeyboard1Z", 0.1}, + {&Pkit_units1Z_header, "Pkit_units1Z", 0.1}, + {&Pletter_tray1Z_header, "Pletter_tray1Z", 0.1}, + {&Pmainframe1Z_header, "Pmainframe1Z", 0.1}, + {&Pmainframe2Z_header, "Pmainframe2Z", 0.1}, + {&Pmetal_chair1Z_header, "Pmetal_chair1Z", 0.1}, + {&Pmetal_crate1Z_header, "Pmetal_crate1Z", 0.1}, + {&Pmetal_crate2Z_header, "Pmetal_crate2Z", 0.1}, + {&Pmetal_crate3Z_header, "Pmetal_crate3Z", 0.1}, + {&Pmetal_crate4Z_header, "Pmetal_crate4Z", 0.1}, + {&Pmissile_rackZ_header, "Pmissile_rackZ", 0.1}, + {&Pmissile_rack2Z_header, "Pmissile_rack2Z", 0.1}, + {&Poil_drum1Z_header, "Poil_drum1Z", 0.1}, + {&Poil_drum2Z_header, "Poil_drum2Z", 0.1}, + {&Poil_drum3Z_header, "Poil_drum3Z", 0.1}, + {&Poil_drum5Z_header, "Poil_drum5Z", 0.1}, + {&Poil_drum6Z_header, "Poil_drum6Z", 0.1}, + {&Poil_drum7Z_header, "Poil_drum7Z", 0.1}, + {&PpadlockZ_header, "PpadlockZ", 0.1}, + {&Pphone1Z_header, "Pphone1Z", 0.1}, + {&Pradio_unit1Z_header, "Pradio_unit1Z", 0.1}, + {&Pradio_unit2Z_header, "Pradio_unit2Z", 0.1}, + {&Pradio_unit3Z_header, "Pradio_unit3Z", 0.1}, + {&Pradio_unit4Z_header, "Pradio_unit4Z", 0.1}, + {&Psat1_reflectZ_header, "Psat1_reflectZ", 0.1}, + {&PsatdishZ_header, "PsatdishZ", 0.1}, + {&PsatboxZ_header, "PsatboxZ", 0.1}, + {&Pstool1Z_header, "Pstool1Z", 0.1}, + {&Pswivel_chair1Z_header, "Pswivel_chair1Z", 0.1}, + {&Ptorpedo_rackZ_header, "Ptorpedo_rackZ", 0.1}, + {&Ptv1Z_header, "Ptv1Z", 0.1}, + {&Ptv_holderZ_header, "Ptv_holderZ", 0.1}, + {&PtvscreenZ_header, "PtvscreenZ", 0.1}, + {&Ptv4screenZ_header, "Ptv4screenZ", 0.1}, + {&Pwood_lg_crate1Z_header, "Pwood_lg_crate1Z", 0.1}, + {&Pwood_lg_crate2Z_header, "Pwood_lg_crate2Z", 0.1}, + {&Pwood_md_crate3Z_header, "Pwood_md_crate3Z", 0.1}, + {&Pwood_sm_crate4Z_header, "Pwood_sm_crate4Z", 0.1}, + {&Pwood_sm_crate5Z_header, "Pwood_sm_crate5Z", 0.1}, + {&Pwood_sm_crate6Z_header, "Pwood_sm_crate6Z", 0.1}, + {&Pwooden_table1Z_header, "Pwooden_table1Z", 0.1}, + {&Pswipe_card2Z_header, "Pswipe_card2Z", 0.1}, + {&Pborg_crateZ_header, "Pborg_crateZ", 0.1}, + {&Pboxes4x4Z_header, "Pboxes4x4Z", 0.1}, + {&Pboxes3x4Z_header, "Pboxes3x4Z", 0.1}, + {&Pboxes2x4Z_header, "Pboxes2x4Z", 0.1}, + {&Psec_panelZ_header, "Psec_panelZ", 0.1}, + {&PICBM_noseZ_header, "PICBM_noseZ", 0.1}, + {&PICBMZ_header, "PICBMZ", 0.1}, + {&Ptuning_console1Z_header, "Ptuning_console1Z", 0.1}, + {&Pdesk_arecibo1Z_header, "Pdesk_arecibo1Z", 0.1}, + {&Plocker3Z_header, "Plocker3Z", 0.1}, + {&Plocker4Z_header, "Plocker4Z", 0.1}, + {&ProofgunZ_header, "ProofgunZ", 0.1}, + {&Pdest_engineZ_header, "Pdest_engineZ", 0.1}, + {&Pdest_exocetZ_header, "Pdest_exocetZ", 0.1}, + {&Pdest_gunZ_header, "Pdest_gunZ", 0.1}, + {&Pdest_harpoonZ_header, "Pdest_harpoonZ", 0.1}, + {&Pdest_seawolfZ_header, "Pdest_seawolfZ", 0.1}, + {&PwindowZ_header, "PwindowZ", 0.1}, + {&Pwindow_lib_lg1Z_header, "Pwindow_lib_lg1Z", 0.1}, + {&Pwindow_lib_sm1Z_header, "Pwindow_lib_sm1Z", 0.1}, + {&Pwindow_cor11Z_header, "Pwindow_cor11Z", 0.1}, + {&Pjungle3_treeZ_header, "Pjungle3_treeZ", 0.1}, + {&PpalmZ_header, "PpalmZ", 0.1}, + {&PpalmtreeZ_header, "PpalmtreeZ", 0.1}, + {&Pplant2bZ_header, "Pplant2bZ", 0.1}, + {&PlabbenchZ_header, "PlabbenchZ", 0.1}, + {&PgasbarrelZ_header, "PgasbarrelZ", 0.1}, + {&PgasbarrelsZ_header, "PgasbarrelsZ", 0.1}, + {&PbodyarmourZ_header, "PbodyarmourZ", 0.1}, + {&PbodyarmourvestZ_header, "PbodyarmourvestZ", 0.1}, + {&PgastankZ_header, "PgastankZ", 0.1}, + {&Pglassware1Z_header, "Pglassware1Z", 0.1}, + {&PhatchboltZ_header, "PhatchboltZ", 0.1}, + {&PbrakeunitZ_header, "PbrakeunitZ", 0.1}, + {&Pak47magZ_header, "Pak47magZ", 0.1}, + {&Pm16magZ_header, "Pm16magZ", 0.1}, + {&Pmp5kmagZ_header, "Pmp5kmagZ", 0.1}, + {&PskorpionmagZ_header, "PskorpionmagZ", 0.1}, + {&PspectremagZ_header, "PspectremagZ", 0.1}, + {&PuzimagZ_header, "PuzimagZ", 0.1}, + {&PsilencerZ_header, "PsilencerZ", 0.1}, + {&PchrextinguisherZ_header, "PchrextinguisherZ", 0.1}, + {&PboxcartridgesZ_header, "PboxcartridgesZ", 0.1}, + {&Pfnp90magZ_header, "Pfnp90magZ", 0.1}, + {&PgoldenshellsZ_header, "PgoldenshellsZ", 0.1}, + {&PmagnumshellsZ_header, "PmagnumshellsZ", 0.1}, + {&PwppkmagZ_header, "PwppkmagZ", 0.1}, + {&Ptt33magZ_header, "Ptt33magZ", 0.1}, + {&Psev_doorZ_header, "Psev_doorZ", 1.0}, + {&Psev_door3Z_header, "Psev_door3Z", 1.0}, + {&Psev_door3_windZ_header, "Psev_door3_windZ", 1.0}, + {&Psev_door4_windZ_header, "Psev_door4_windZ", 1.0}, + {&Psev_trislideZ_header, "Psev_trislideZ", 1.0}, + {&Psev_door_v1Z_header, "Psev_door_v1Z", 1.0}, + {&Psteel_door1Z_header, "Psteel_door1Z", 1.0}, + {&Psteel_door2Z_header, "Psteel_door2Z", 1.0}, + {&Psteel_door3Z_header, "Psteel_door3Z", 1.0}, + {&Psilo_lift_doorZ_header, "Psilo_lift_doorZ", 1.0}, + {&Psteel_door2bZ_header, "Psteel_door2bZ", 1.0}, + {&Pdoor_roller1Z_header, "Pdoor_roller1Z", 1.0}, + {&Pdoor_roller2Z_header, "Pdoor_roller2Z", 1.0}, + {&Pdoor_roller3Z_header, "Pdoor_roller3Z", 1.0}, + {&Pdoor_roller4Z_header, "Pdoor_roller4Z", 1.0}, + {&Pdoor_st_arec1Z_header, "Pdoor_st_arec1Z", 1.0}, + {&Pdoor_st_arec2Z_header, "Pdoor_st_arec2Z", 1.0}, + {&Pdoor_dest1Z_header, "Pdoor_dest1Z", 1.0}, + {&Pdoor_dest2Z_header, "Pdoor_dest2Z", 1.0}, + {&Pgas_plant_sw_do1Z_header, "Pgas_plant_sw_do1Z", 1.0}, + {&Pgas_plant_sw2_do1Z_header, "Pgas_plant_sw2_do1Z", 1.0}, + {&Pgas_plant_sw3_do1Z_header, "Pgas_plant_sw3_do1Z", 1.0}, + {&Pgas_plant_sw4_do1Z_header, "Pgas_plant_sw4_do1Z", 1.0}, + {&Pgas_plant_met1_do1Z_header, "Pgas_plant_met1_do1Z", 1.0}, + {&Pgas_plant_wc_cub1Z_header, "Pgas_plant_wc_cub1Z", 1.0}, + {&Pgasplant_clear_doorZ_header, "Pgasplant_clear_doorZ", 1.0}, + {&Ptrain_doorZ_header, "Ptrain_doorZ", 1.0}, + {&Ptrain_door2Z_header, "Ptrain_door2Z", 1.0}, + {&Ptrain_door3Z_header, "Ptrain_door3Z", 1.0}, + {&Pdoor_eyelidZ_header, "Pdoor_eyelidZ", 1.0}, + {&Pdoor_irisZ_header, "Pdoor_irisZ", 1.0}, + {&PsevdoorwoodZ_header, "PsevdoorwoodZ", 1.0}, + {&PsevdoorwindZ_header, "PsevdoorwindZ", 1.0}, + {&PsevdoornowindZ_header, "PsevdoornowindZ", 1.0}, + {&PsevdoormetslideZ_header, "PsevdoormetslideZ", 1.0}, + {&Pcryptdoor1aZ_header, "Pcryptdoor1aZ", 1.0}, + {&Pcryptdoor1bZ_header, "Pcryptdoor1bZ", 1.0}, + {&Pcryptdoor2aZ_header, "Pcryptdoor2aZ", 1.0}, + {&Pcryptdoor2bZ_header, "Pcryptdoor2bZ", 1.0}, + {&Pcryptdoor3Z_header, "Pcryptdoor3Z", 1.0}, + {&Pcryptdoor4Z_header, "Pcryptdoor4Z", 1.0}, + {&PvertdoorZ_header, "PvertdoorZ", 1.0}, + {&PhatchdoorZ_header, "PhatchdoorZ", 1.0}, + {&PdamgatedoorZ_header, "PdamgatedoorZ", 1.0}, + {&PdamtundoorZ_header, "PdamtundoorZ", 1.0}, + {&PdamchaindoorZ_header, "PdamchaindoorZ", 1.0}, + {&PsilotopdoorZ_header, "PsilotopdoorZ", 1.0}, + {&Pdoorprison1Z_header, "Pdoorprison1Z", 1.0}, + {&PdoorstatgateZ_header, "PdoorstatgateZ", 1.0}, + {&PchrkalashZ_header, "PchrkalashZ", 0.1}, + {&PchrgrenadelaunchZ_header, "PchrgrenadelaunchZ", 0.1}, + {&PchrknifeZ_header, "PchrknifeZ", 0.1}, + {&PchrlaserZ_header, "PchrlaserZ", 0.1}, + {&Pchrm16Z_header, "Pchrm16Z", 0.1}, + {&Pchrmp5kZ_header, "Pchrmp5kZ", 0.1}, + {&PchrrugerZ_header, "PchrrugerZ", 0.1}, + {&PchrwppkZ_header, "PchrwppkZ", 0.1}, + {&PchrshotgunZ_header, "PchrshotgunZ", 0.1}, + {&PchrskorpionZ_header, "PchrskorpionZ", 0.1}, + {&PchrspectreZ_header, "PchrspectreZ", 0.1}, + {&PchruziZ_header, "PchruziZ", 0.1}, + {&PchrgrenadeZ_header, "PchrgrenadeZ", 0.1}, + {&Pchrfnp90Z_header, "Pchrfnp90Z", 0.1}, + {&PchrbriefcaseZ_header, "PchrbriefcaseZ", 0.1}, + {&PchrremotemineZ_header, "PchrremotemineZ", 0.1}, + {&PchrproximitymineZ_header, "PchrproximitymineZ", 0.1}, + {&PchrtimedmineZ_header, "PchrtimedmineZ", 0.1}, + {&PchrrocketZ_header, "PchrrocketZ", 0.1}, + {&PchrgrenaderoundZ_header, "PchrgrenaderoundZ", 0.1}, + {&PchrwppksilZ_header, "PchrwppksilZ", 0.1}, + {&Pchrtt33Z_header, "Pchrtt33Z", 0.1}, + {&Pchrmp5ksilZ_header, "Pchrmp5ksilZ", 0.1}, + {&PchrautoshotZ_header, "PchrautoshotZ", 0.1}, + {&PchrgoldenZ_header, "PchrgoldenZ", 0.1}, + {&PchrthrowknifeZ_header, "PchrthrowknifeZ", 0.1}, + {&PchrsniperrifleZ_header, "PchrsniperrifleZ", 0.1}, + {&PchrrocketlaunchZ_header, "PchrrocketlaunchZ", 0.1}, + {&PhatfurryZ_header, "PhatfurryZ", 0.1}, + {&PhatfurrybrownZ_header, "PhatfurrybrownZ", 0.1}, + {&PhatfurryblackZ_header, "PhatfurryblackZ", 0.1}, + {&PhattbirdZ_header, "PhattbirdZ", 0.1}, + {&PhattbirdbrownZ_header, "PhattbirdbrownZ", 0.1}, + {&PhathelmetZ_header, "PhathelmetZ", 0.1}, + {&PhathelmetgreyZ_header, "PhathelmetgreyZ", 0.1}, + {&PhatmoonZ_header, "PhatmoonZ", 0.1}, + {&PhatberetZ_header, "PhatberetZ", 0.1}, + {&PhatberetblueZ_header, "PhatberetblueZ", 0.1}, + {&PhatberetredZ_header, "PhatberetredZ", 0.1}, + {&PhatpeakedZ_header, "PhatpeakedZ", 0.1}, + {&PchrwristdartZ_header, "PchrwristdartZ", 0.1}, + {&PchrexplosivepenZ_header, "PchrexplosivepenZ", 0.1}, + {&PchrbombcaseZ_header, "PchrbombcaseZ", 0.1}, + {&PchrflarepistolZ_header, "PchrflarepistolZ", 0.1}, + {&PchrpitongunZ_header, "PchrpitongunZ", 0.1}, + {&PchrfingergunZ_header, "PchrfingergunZ", 0.1}, + {&PchrsilverwppkZ_header, "PchrsilverwppkZ", 0.1}, + {&PchrgoldwppkZ_header, "PchrgoldwppkZ", 0.1}, + {&PchrdynamiteZ_header, "PchrdynamiteZ", 0.1}, + {&PchrbungeeZ_header, "PchrbungeeZ", 0.1}, + {&PchrdoordecoderZ_header, "PchrdoordecoderZ", 0.1}, + {&PchrbombdefuserZ_header, "PchrbombdefuserZ", 0.1}, + {&PchrbugdetectorZ_header, "PchrbugdetectorZ", 0.1}, + {&PchrsafecrackercaseZ_header, "PchrsafecrackercaseZ", 0.1}, + {&PchrcameraZ_header, "PchrcameraZ", 0.1}, + {&PchrlockexploderZ_header, "PchrlockexploderZ", 0.1}, + {&PchrdoorexploderZ_header, "PchrdoorexploderZ", 0.1}, + {&PchrkeyanalysercaseZ_header, "PchrkeyanalysercaseZ", 0.1}, + {&PchrweaponcaseZ_header, "PchrweaponcaseZ", 0.1}, + {&PchrkeyyaleZ_header, "PchrkeyyaleZ", 0.1}, + {&PchrkeyboltZ_header, "PchrkeyboltZ", 0.1}, + {&PchrbugZ_header, "PchrbugZ", 0.1}, + {&PchrmicrocameraZ_header, "PchrmicrocameraZ", 0.1}, + {&PfloppyZ_header, "PfloppyZ", 0.1}, + {&PchrgoldeneyekeyZ_header, "PchrgoldeneyekeyZ", 0.1}, + {&PchrpolarizedglassesZ_header, "PchrpolarizedglassesZ", 0.1}, + {&PchrcreditcardZ_header, "PchrcreditcardZ", 0.1}, + {&PchrdarkglassesZ_header, "PchrdarkglassesZ", 0.1}, + {&PchrgaskeyringZ_header, "PchrgaskeyringZ", 0.1}, + {&PchrdatathiefZ_header, "PchrdatathiefZ", 0.1}, + {&PsafeZ_header, "PsafeZ", 0.1}, + {&PbombZ_header, "PbombZ", 0.1}, + {&PchrplansZ_header, "PchrplansZ", 0.1}, + {&PchrspyfileZ_header, "PchrspyfileZ", 0.1}, + {&PchrblueprintsZ_header, "PchrblueprintsZ", 0.1}, + {&PchrcircuitboardZ_header, "PchrcircuitboardZ", 0.1}, + {&PchrmapZ_header, "PchrmapZ", 0.1}, + {&PchrspooltapeZ_header, "PchrspooltapeZ", 0.1}, + {&PchraudiotapeZ_header, "PchraudiotapeZ", 0.1}, + {&PchrmicrofilmZ_header, "PchrmicrofilmZ", 0.1}, + {&PchrmicrocodeZ_header, "PchrmicrocodeZ", 0.1}, + {&PchrlectreZ_header, "PchrlectreZ", 0.1}, + {&PchrmoneyZ_header, "PchrmoneyZ", 0.1}, + {&PchrgoldbarZ_header, "PchrgoldbarZ", 0.1}, + {&PchrheroinZ_header, "PchrheroinZ", 0.1}, + {&PchrclipboardZ_header, "PchrclipboardZ", 0.1}, + {&PchrdossierredZ_header, "PchrdossierredZ", 0.1}, + {&PchrstafflistZ_header, "PchrstafflistZ", 0.1}, + {&PchrdattapeZ_header, "PchrdattapeZ", 0.1}, + {&PchrplastiqueZ_header, "PchrplastiqueZ", 0.1}, + {&PchrblackboxZ_header, "PchrblackboxZ", 0.1}, + {&PchrvideotapeZ_header, "PchrvideotapeZ", 0.1}, + {&PnintendologoZ_header, "PnintendologoZ", 0.1}, + {&PgoldeneyelogoZ_header, "PgoldeneyelogoZ", 0.1}, + {&PwalletbondZ_header, "PwalletbondZ", 0.1}, + {&PmiltruckZ_header, "PmiltruckZ", 0.1}, + {&PjeepZ_header, "PjeepZ", 0.1}, + {&ParticZ_header, "ParticZ", 0.1}, + {&PhelicopterZ_header, "PhelicopterZ", 0.1}, + {&PtigerZ_header, "PtigerZ", 0.1}, + {&PmilcopterZ_header, "PmilcopterZ", 0.1}, + {&PhindZ_header, "PhindZ", 0.1}, + {&PartictrailerZ_header, "PartictrailerZ", 0.1}, + {&PmotorbikeZ_header, "PmotorbikeZ", 0.1}, + {&PtankZ_header, "PtankZ", 0.1}, + {&PapcZ_header, "PapcZ", 0.1}, + {&PspeedboatZ_header, "PspeedboatZ", 0.1}, + {&PplaneZ_header, "PplaneZ", 0.1}, + {&Pgun_runway1Z_header, "Pgun_runway1Z", 0.1}, + {&PsafedoorZ_header, "PsafedoorZ", 1.0}, + {&Pkey_holderZ_header, "Pkey_holderZ", 1.0}, + {&PhatchsevxZ_header, "PhatchsevxZ", 1.0}, + {&PsevdishZ_header, "PsevdishZ", 1.0}, + {&Parchsecdoor1Z_header, "Parchsecdoor1Z", 1.0}, + {&Parchsecdoor2Z_header, "Parchsecdoor2Z", 1.0}, + {&PgroundgunZ_header, "PgroundgunZ", 0.1}, + {&PtrainextdoorZ_header, "PtrainextdoorZ", 1.0}, + {&PcarbmwZ_header, "PcarbmwZ", 0.1}, + {&PcarescortZ_header, "PcarescortZ", 0.1}, + {&PcargolfZ_header, "PcargolfZ", 0.1}, + {&PcarweirdZ_header, "PcarweirdZ", 0.1}, + {&PcarzilZ_header, "PcarzilZ", 0.1}, + {&Pshuttle_door_lZ_header, "Pshuttle_door_lZ", 1.0}, + {&Pshuttle_door_rZ_header, "Pshuttle_door_rZ", 1.0}, + {&Pdepot_gate_entryZ_header, "Pdepot_gate_entryZ", 0.1}, + {&Pdepot_door_steelZ_header, "Pdepot_door_steelZ", 0.1}, + {&Pglassware2Z_header, "Pglassware2Z", 0.1}, + {&Pglassware3Z_header, "Pglassware3Z", 0.1}, + {&Pglassware4Z_header, "Pglassware4Z", 0.1}, + {&PlandmineZ_header, "PlandmineZ", 0.1}, + {&Pplant1Z_header, "Pplant1Z", 0.1}, + {&Pplant11Z_header, "Pplant11Z", 0.1}, + {&Pplant2Z_header, "Pplant2Z", 0.1}, + {&Pplant3Z_header, "Pplant3Z", 0.1}, + {&Pjungle5_treeZ_header, "Pjungle5_treeZ", 0.1}, + {&PlegalpageZ_header, "PlegalpageZ", 0.1}, + {&Pst_pete_room_1iZ_header, "Pst_pete_room_1iZ", 0.1}, + {&Pst_pete_room_2iZ_header, "Pst_pete_room_2iZ", 0.1}, + {&Pst_pete_room_3tZ_header, "Pst_pete_room_3tZ", 0.1}, + {&Pst_pete_room_5cZ_header, "Pst_pete_room_5cZ", 0.1}, + {&Pst_pete_room_6cZ_header, "Pst_pete_room_6cZ", 0.1}, + {&Pdoor_rollertrainZ_header, "Pdoor_rollertrainZ", 1.0}, + {&Pdoor_winZ_header, "Pdoor_winZ", 1.0}, + {&Pdoor_aztecZ_header, "Pdoor_aztecZ", 1.0}, + {&PshuttleZ_header, "PshuttleZ", 0.1}, + {&Pdoor_azt_deskZ_header, "Pdoor_azt_deskZ", 1.0}, + {&Pdoor_azt_desk_topZ_header, "Pdoor_azt_desk_topZ", 1.0}, + {&Pdoor_azt_chairZ_header, "Pdoor_azt_chairZ", 1.0}, + {&Pdoor_mfZ_header, "Pdoor_mfZ", 1.0}, + {&PflagZ_header, "PflagZ", 0.1}, + {&PbarricadeZ_header, "PbarricadeZ", 0.1}, + {&PmodemboxZ_header, "PmodemboxZ", 0.1}, + {&PdoorpanelZ_header, "PdoorpanelZ", 0.1}, + {&PdoorconsoleZ_header, "PdoorconsoleZ", 0.1}, + {&PchrtesttubeZ_header, "PchrtesttubeZ", 0.1}, + {&Pbollardz_header, "PbollardZ", 0.1}, + {0, "", 1.0} +}; + +//D:8003b224 +u32 object_explosion_details[] = { + 0x0006315c, 0x7b6cdbff, 0x5126fb59, 0x7ca70006, + 0x2afecb3e, 0x73f4278f, 0x6d3a44c8, 0x00050000, + 0x00000000, 0x00000000, 0x0000000b, 0xb9b03eba, + 0xad6275c8, 0xb70ff06e, 0x000b17d9, 0xdfcc57cd, + 0x82547345, 0xe011000b, 0x3779ed72, 0x688df67b, + 0x37e54f89, 0x000be277, 0x0474dd1e, 0x0c48486c, + 0xf87d000b, 0x7c3f16bc, 0x44a91a58, 0xe4129297, + 0x00003dc2, 0x16b6e30d, 0xbcabc592, 0xf9b50002, + 0x719c7024, 0x9ee0c175, 0xa5ddc933, 0x00028e16, + 0xbbca05c0, 0x1a7381be, 0xf8210000, 0x00000000, + 0x00000000, 0x00000000, 0x00082716, 0xf5440d35, + 0xc20e83d7, 0x7d730008, 0x81a1b772, 0x1b57437a, + 0x85fab6c1, 0x000827eb, 0x5a7abd1a, 0x27eb5a7a, + 0xbd1a0008, 0x98de8c36, 0xddd5f74b, 0x4f0a1f14, + 0x000834f5, 0xf199a9f2, 0x3d27c707, 0xb9ad0008, + 0x678fdb91, 0x2a2e8d91, 0x6eee925e, 0x0004d82f, + 0xf4d7546f, 0xd6c787d9, 0x01430004, 0x100eadf2, + 0x1fdd45f1, 0x4772f8c6, 0x0004ef0b, 0x71bbb7f7, + 0xbfa303b8, 0xe44e0004, 0xdfd1676a, 0x8597e8ac, + 0xe2109a4d, 0x0004ab48, 0xdd9b4343, 0x04b80dcc, + 0x3b3d0004, 0x836b6bbf, 0x9dbb3db7, 0x59577341, + 0x00070000, 0x00000000, 0x00000000, 0x00000009, + 0xb1cc19e2, 0x0ea5b1cc, 0x19e20ea5, 0x0009f093, + 0xb2df1409, 0x271ee0b3, 0x418a0009, 0x3ac20102, + 0xbf013ac2, 0x0102bf01, 0x00093ac6, 0xe449a56e, + 0xa4cfeda0, 0x17190009, 0x9bcfc333, 0x63844298, + 0xd4557bfa, 0x0009839e, 0x0ba71466, 0xdb6dd1b3, + 0x12330009, 0x3f677a70, 0x83de7052, 0x07d236ff, + 0x0009a409, 0x692de286, 0xc63c82d0, 0x5d070009, + 0xd6ca1866, 0x839cbc6a, 0x86ad4dc6, 0x000996fc, + 0xa1efa9e6, 0xb9d2a3c5, 0xa0450009, 0x7d2be7dc, + 0x55db378e, 0x4765b09c, 0x0009e2af, 0x2d4371fe, + 0xe39093b3, 0x57e30009, 0x9367098a, 0x3b68d6f8, + 0x4eaf7b83, 0x000f0000, 0x00000000, 0x00000000, + 0x0000000f, 0x00000000, 0x00000000, 0x00000000, + 0x0007993d, 0xa2b25028, 0x825e25b8, 0xd8ef0006, + 0x6553024d, 0xfd22d469, 0x18e432f6, 0x0006f742, + 0x0cb58ed2, 0x60216ad5, 0xaa880004, 0x06d882ef, + 0x5b194147, 0x5ae1374e, 0x0004284d, 0x3e7c9330, + 0xcf1e013f, 0x4e290006, 0xe339c0b6, 0xe5fc7054, + 0x83a8c118, 0x0004b49f, 0x00024ef6, 0x88490002, + 0x070b0002, 0x2d56a1ee, 0x41058ae6, 0x6a2a60dd, + 0x000979b2, 0xbc78b9b9, 0xc76a97a1, 0x3da30009, + 0x3292ddc3, 0x926512a6, 0xe935b9bc, 0x000304db, + 0x3cfddb5c, 0x3b2950b7, 0x83d10004, 0xbe6408ad, + 0x150d6aed, 0x542e63b3, 0x0004d7e5, 0x13695acc, + 0x535a2105, 0x1bf70004, 0x72223cee, 0x1a15122a, + 0xadec5ef3, 0x0004927f, 0x10b05125, 0x7f4ebbc5, + 0x8088000b, 0xe89d7502, 0x9003469d, 0x19f0a5e6, + 0x000b3771, 0xc00280ff, 0xdbf61705, 0x497a000e, + 0xa954afde, 0xbb6cd4a6, 0x9883fa27, 0x000ede9f, + 0xcef06346, 0x80fba382, 0x14d1000e, 0x448ed4cc, + 0xc1b5442f, 0xc1d1ee05, 0x000ec7c0, 0xf918095e, + 0xece206d4, 0xc64d000e, 0xc49116ec, 0xdea75a19, + 0x9de7ff28, 0x000ee889, 0x2da62775, 0x153cbae6, + 0xcb1b0000, 0x2d56a1ee, 0x41058ae6, 0x6a2a60dd, + 0x0006e5e6, 0x8fb7d5fe, 0xe959d656, 0xfb820007, + 0x58763a4f, 0xd115a10d, 0x265d2c02, 0x0007787e, + 0xc128d96a, 0x60c918e7, 0x99ad0007, 0x879a90e4, + 0xc20f35fe, 0xc80791d8, 0x000740ae, 0x62b6d240, + 0xac8d47c5, 0x17d10000, 0x00000000, 0x00000000, + 0x00000000, 0x000715c6, 0xb37d118a, 0x4e615d02, + 0x7d500006, 0x15c6b37d, 0x118a4e61, 0x5d027d50, + 0x00030000, 0x00000000, 0x00000000, 0x00000003, + 0x24698ae5, 0x524fe5f6, 0xbe4ac865, 0x00052957, + 0x1b2227c7, 0x96630ddf, 0x411f0007, 0x15c6b37d, + 0x118a4e61, 0x5d027d50, 0x00040000, 0x00000000, + 0x00000000, 0x00000006, 0xf8f4f1e0, 0x473f41dd, + 0xa510c9c6, 0x00080000, 0x00000000, 0x00000000, + 0x00000004, 0x7a512382, 0x9b3629e5, 0x5921017a, + 0x00048666, 0x3dd9e619, 0x6134cc94, 0x1a5c0004, + 0x7f3931c5, 0x9ac370ab, 0x0551b069, 0x0003d727, + 0x7ab2786b, 0xf5ad3fc4, 0xd6ce0003, 0x4548d59e, + 0x1edce88d, 0xe9e4af76, 0x0003262f, 0x491bfd57, + 0x6715e7ed, 0x2626000f, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000004, 0xbcae0bd1, 0x0ff73a30, 0x724083b7, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000006, 0xb2c6170a, + 0x0a236bbe, 0xb59382db, 0x0005275b, 0x8ad3002c, + 0x27b58ad3, 0x002c0005, 0x00000000, 0x00000000, + 0x00000000, 0x000833a1, 0x8a014d42, 0xd9cbb865, + 0xb3360004, 0x8c0678fc, 0x8f9a4df5, 0x4d5322f9, + 0x000399e9, 0x0107ef5e, 0x0560e6df, 0x4b360003, + 0x31e70023, 0xb2aea2d7, 0xe54090b2, 0x00080000, + 0x00000000, 0x00000000, 0x0000000d, 0x00000000, + 0x00000000, 0x00000000, 0x000833a1, 0x8a014d42, + 0xd9cbb865, 0xb3360008, 0x33a18a01, 0x4d42d9cb, + 0xb865b336, 0x000833a1, 0x8a014d42, 0xd9cbb865, + 0xb3360008, 0x33a18a01, 0x4d42d9cb, 0xb865b336, + 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, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00060000, 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, + 0x000c0000, 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, 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, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000d0000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00030000, 0x00000000, 0x00000000, + 0x0000000d, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x000d0000, + 0x00000000, 0x00000000, 0x0000000d, 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, 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, 0x00000006, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000006, 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, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000004, 0x00000000, 0x00000000, 0x00000000, + 0x00040000, 0x00000000, 0x00000000, 0x00000004, + 0x00000000, 0x00000000, 0x00000000, 0x00040000, + 0x00000000, 0x00000000, 0x00000004, 0x00000000, + 0x00000000, 0x00000000, 0x000d0000, 0x00000000, + 0x00000000, 0x00000004, 0x00000000, 0x00000000, + 0x00000000, 0x00040000, 0x00000000, 0x00000000, + 0x00000004, 0x00000000, 0x00000000, 0x00000000, + 0x00040000, 0x00000000, 0x00000000, 0x00000004, + 0x00000000, 0x00000000, 0x00000000, 0x00040000, + 0x00000000, 0x00000000, 0x00000004, 0x00000000, + 0x00000000, 0x00000000, 0x00040000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000007, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x0000000d, 0x00000000, 0x00000000, + 0x00000000, 0x000d0000, 0x00000000, 0x00000000, + 0x0000000d, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x0000000d, + 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, 0x0000000d, + 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, + 0x000d0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000006, 0x00000000, 0x00000000, 0x00000000, + 0x00060000, 0x00000000, 0x00000000, 0x00000009, + 0x00000000, 0x00000000, 0x00000000, 0x000d0000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, + 0xffffffff, 0xffff0000, 0x00000000 +}; + + +//D:8003C4D0 +struct prop_pos_data word_D_8003C4D0[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003C4D6 .half 0 +//D:8003C4D8 +struct item_related model_object_standard_object = {1, 0, word_D_8003C4D0, 3, 0}; +//D:8003C4E4 +s32 D_8003C4E4 = 0; +//D:8003C4E8 +s32 D_8003C4E8 = 0; +//D:8003C4EC +s32 D_8003C4EC = 0; + +//D:8003C4F0 +struct prop_pos_data word_D_8003C4F0[] = { + {0x0015, 0x0000, 0x0000}, + {0x0015, 0x0001, 0x0001} +}; +//D:8003C4FC +struct item_related prop_weapon_related = {2, 0, word_D_8003C4F0, 0, 0}; +//D:8003C508 +s32 D_8003C508 = 0; +//D:8003C50C +s32 D_8003C50C = 0; + +//D:8003C510 +struct prop_pos_data dword_D_8003C510[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x000C}, + {0x0002, 0x000C, 0x0009}, + {0x0002, 0x000F, 0x0012}, + {0x0002, 0x0012, 0x000F}, + {0x0002, 0x0015, 0x0018}, + {0x0002, 0x0018, 0x0015}, + {0x0002, 0x001B, 0x001E}, + {0x0002, 0x001E, 0x001B}, + {0x0002, 0x0021, 0x0024}, + {0x0002, 0x0024, 0x0021}, + {0x0002, 0x0027, 0x002A}, + {0x0002, 0x002A, 0x0027} +}; + + +//item_related struct +//D:8003C570 +struct item_related dword_D_8003C570 = {0x10, 0x0000, dword_D_8003C510, 0x2D, 0x0000}; + +//D:8003C57C +s32 D_8003C57C = 0; + + +//D:8003C580 +struct player_gait_header player_gait_hdr = {0, 1, 0, &player_gait_obj, NULL, 0, 0, &player_gait_pos_hdr_1}; +//D:8003C598 +struct player_gait_pos_header player_gait_pos_hdr_1 = {0, 2, 0, &player_gait_pos_1, (struct player_gait_pos_header *)&player_gait_hdr, 0, 0, &player_gait_pos_hdr_2}; +//D:8003C5B0 +struct player_gait_pos_header player_gait_pos_hdr_2 = {0, 2, 0, &player_gait_pos_2, &player_gait_pos_hdr_1, 0, 0, &player_gait_pos_hdr_3}; +//D:8003C5C8 +struct player_gait_pos_header player_gait_pos_hdr_3 = {0, 2, 0, &player_gait_pos_3, &player_gait_pos_hdr_2, 0, 0, 0}; +//D:8003C5E0 +struct player_gait_object_entry player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0}; +//D:8003C5F0 +struct player_gait_position_entry player_gait_pos_1 = {0.0, 0.0, 0.0, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0}; +//D:8003C60C +struct player_gait_position_entry player_gait_pos_2 = {1.177982, 41.14437, 0, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0}; +//D:8003C628 +struct player_gait_position_entry player_gait_pos_3 = {-2.576027, 480.42902, 0, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0}; + + +//D:8003C644 +s32 D_8003C644 = 0; +//D:8003C648 +s32 D_8003C648 = 0; +//D:8003C64C +s32 D_8003C64C = 0; + + +//D:8003C650 +struct object_header player_gait_object = {0, &dword_D_8003C570,0,0, 4, 41.16123,0,0,0,0}; + + +//D:8003C670 +struct prop_pos_data dword_D_8003C670[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x000C}, + {0x0002, 0x000C, 0x0009}, + {0x0002, 0x000F, 0x0012}, + {0x0002, 0x0012, 0x000F}, + {0x0002, 0x0015, 0x0018}, + {0x0002, 0x0018, 0x0015}, + {0x0002, 0x001B, 0x001E}, + {0x0002, 0x001E, 0x001B}, + {0x0002, 0x0021, 0x0024}, + {0x0002, 0x0024, 0x0021}, + {0x0002, 0x0027, 0x002A}, + {0x0002, 0x002A, 0x0027}, + {0x0015, 0x002D, 0x002D}, + {0x0015, 0x002E, 0x002E}, + {0x0015, 0x002F, 0x002F}, +}; + +//D:8003C6E4 +struct item_related model_suit_lf_hand = {0x13, 0x0000, dword_D_8003C670, 0x2D, 0x0000}; + +//D:8003C6F0 +struct prop_pos_data dword_D_8003C6F0[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0015, 0x000F, 0x000F}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003C714 +struct item_related weapon_gun_standard_gun = {0x6, 0x0000, dword_D_8003C6F0, 0xF, 0x0000}; + +//D:8003C720 +struct prop_pos_data dword_D_8003C720[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003C728 +struct item_related weapon_gun_unassigned = {0x1, 0x0000, dword_D_8003C720, 0x3, 0x0000}; + +//D:8003C734 +s32 D_8003C734 = 0; +//D:8003C738 +s32 D_8003C738 = 0; +//D:8003C73C +s32 D_8003C73C = 0; +//D:8003C740 +struct prop_pos_data dword_D_8003C740[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F}, + {0x0002, 0x0012, 0x0012} +}; +//D:8003C76C +struct item_related weapon_gun_revolver = {0x7, 0x0000, dword_D_8003C740, 0x15, 0x0000}; + +//D:8003C778 +s32 D_8003C778 = 0; +//D:8003C77C +s32 D_8003C77C = 0; +//D:8003C780 +struct prop_pos_data dword_D_8003C780[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0015, 0x0012, 0x0012}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F} +}; +//D:8003C7AC +struct item_related weapon_gun_kf7 = {0x7, 0x0000, dword_D_8003C780, 0x12, 0x0000}; + +//D:8003C7B8 +s32 D_8003C7B8 = 0; +//D:8003C7BC +s32 D_8003C7BC = 0; + +//D:8003C7C0 +struct Gitemheader GwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xC, 0, 0}; +//D:8003C7E0 +struct Gitemheader GwppksilZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 438.66476, 0, 0xC, 0, 0}; +//D:8003C800 +struct Gitemheader Gtt33Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 438.16788, 0, 0xF, 0, 0}; +//D:8003C820 +struct Gitemheader GskorpianZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 390.40039, 0, 0xC, 0, 0}; +//D:8003C840 +struct Gitemheader Gak47Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 941.9339, 0, 0x12, 0, 0}; +//D:8003C860 +struct Gitemheader GuziZ_struct = {0, &weapon_gun_kf7, 0, 0x24, 5, 436.95404, 0, 0xC, 0, 0}; +//D:8003C880 +struct Gitemheader Gmp5kZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 499.24536, 0, 9, 0, 0}; +//D:8003C8A0 +struct Gitemheader Gmp5ksilZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 655.97717, 0, 9, 0, 0}; +//D:8003C8C0 +struct Gitemheader Gm16Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 1096.2413, 0, 8, 0, 0}; +//D:8003C8E0 +struct Gitemheader Gfnp90Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 460.81909, 0, 0xA, 0, 0}; +//D:8003C900 +struct Gitemheader G8003C900_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 238.62167, 0, 4, 0, 0}; +//D:8003C920 +struct Gitemheader GrugerZ_struct = {0, &weapon_gun_revolver, 0, 0x24, 6, 553.44312, 0, 0xE, 0, 0}; +//D:8003C940 +struct Gitemheader GgoldengunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 5, 384.92172, 0, 0xB, 0, 0}; +//D:8003C960 +struct Gitemheader GshotgunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 4, 919.33038, 0, 0xD, 0, 0}; +//D:8003C980 +struct Gitemheader GautoshotZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 840.15125, 0, 0x10, 0, 0}; +//D:8003C9A0 +struct Gitemheader GgrenadelaunchZ_struct = {0, &weapon_gun_revolver, 0, 0x24, 5, 768.33496, 0, 0xF, 0, 0}; +//D:8003C9C0 +struct Gitemheader GspectreZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 598.42865, 0, 0xB, 0, 0}; +//D:8003C9E0 +struct Gitemheader GlaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 442.81848, 0, 0xD, 0, 0}; +//D:8003CA00 +struct Gitemheader GrocketlaunchZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 566.51208, 0, 0xA, 0, 0}; +//D:8003CA20 +struct Gitemheader GknifeZ_header = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 376.97263, 0, 9, 0, 0}; +//D:8003CA40 +struct Gitemheader GthrowknifeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 373.31387, 0, 9, 0, 0}; +//D:8003CA60 +struct Gitemheader GtaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 182.78622, 0, 0x11, 0, 0}; +//D:8003CA80 +struct Gitemheader GremotemineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 50.999378, 0, 3, 0, 0}; +//D:8003CAA0 +struct Gitemheader GproximitymineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 51.00029, 0, 3, 0, 0}; +//D:8003CAC0 +struct Gitemheader GtimedmineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 49.368877, 0, 4, 0, 0}; +//D:8003CAE0 +struct Gitemheader GtriggerZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 283.9006, 0, 0x16, 0, 0}; +//D:8003CB00 +struct Gitemheader GgrenadeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 427.27081, 0, 5, 0, 0}; +//D:8003CB20 +struct Gitemheader GfistZ_header = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 243.84764, 0, 0xE, 0, 0}; +//D:8003CB40 +struct Gitemheader GsniperrifleZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 808.03253, 0, 7, 0, 0}; +//D:8003CB60 +struct Gitemheader GcartridgeZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 14.128822, 0, 2, 0, 0}; +//D:8003CB80 +struct Gitemheader GcartrifleZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 30.122747, 0, 2, 0, 0}; +//D:8003CBA0 +struct Gitemheader GcartblueZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 30.122747, 0, 2, 0, 0}; +//D:8003CBC0 +struct Gitemheader GcartshellZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 29.8451, 0, 2, 0, 0}; +//D:8003CBE0 +struct Gitemheader GjoypadZ_struct = {0, &weapon_gun_controller, 0, 0xE, 0xD, 523.96826, 0, 4, 0, 0}; +//D:8003CC00 +struct Gitemheader G8003CC00_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC20 +struct Gitemheader G8003CC20_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC40 +struct Gitemheader GbombcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CC60 +struct Gitemheader GflarepistolZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC80 +struct Gitemheader GpitongunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CCA0 +struct Gitemheader G8003CCA0_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CCC0 +struct Gitemheader GsilverwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xB, 0, 0}; +//D:8003CCE0 +struct Gitemheader GgoldwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xB, 0, 0}; +//D:8003CD00 +struct Gitemheader G8003CD00_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CD20 +struct Gitemheader GbungeeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CD40 +struct Gitemheader GdoordecoderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 60.850407, 0, 0x10, 0, 0}; +//D:8003CD60 +struct Gitemheader GbombdefuserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 84.370705, 0, 0xC, 0, 0}; +//D:8003CD80 +struct Gitemheader GbugdetectorZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CDA0 +struct Gitemheader GsafecrackercaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CDC0 +struct Gitemheader GcameraZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 52.775627, 0, 0xB, 0, 0}; +//D:8003CDE0 +struct Gitemheader GlockexploderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CE00 +struct Gitemheader GdoorexploderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CE20 +struct Gitemheader GkeyanalysercaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CE40 +struct Gitemheader GweaponcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CE60 +struct Gitemheader GkeycardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 123.088844, 0, 2, 0, 0}; +//D:8003CE80 +struct Gitemheader GkeyyaleZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 414.25156, 0, 1, 0, 0}; +//D:8003CEA0 +struct Gitemheader GkeyboltZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 759.26581, 0, 1, 0, 0}; +//D:8003CEC0 +struct Gitemheader GbugZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 106.2163, 0, 6, 0, 0}; +//D:8003CEE0 +struct Gitemheader GmicrocameraZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 70.039436, 0, 7, 0, 0}; +//D:8003CF00 +struct Gitemheader GexplosivefloppyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 60.902443, 0, 5, 0, 0}; +//D:8003CF20 +struct Gitemheader GgoldeneyekeyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 98.987083, 0, 5, 0, 0}; +//D:8003CF40 +struct Gitemheader GpolarizedglassesZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 53.776386, 0, 2, 0, 0}; +//D:8003CF60 +struct Gitemheader GcreditcardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CF80 +struct Gitemheader GdarkglassesZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CFA0 +struct Gitemheader GwatchidentifierZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003CFC0 +struct Gitemheader GwatchcommunicatorZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003CFE0 +struct Gitemheader GwatchlaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 283.9006, 0, 0x16, 0, 0}; +//D:8003D000 +struct Gitemheader GwatchgeigercounterZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D020 +struct Gitemheader GwatchmagnetrepelZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D040 +struct Gitemheader GwatchmagnetattractZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1D, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D060 +struct Gitemheader GgaskeyringZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 111.59859, 0, 9, 0, 0}; +//D:8003D080 +struct Gitemheader GdatathiefZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 119.78231, 0, 3, 0, 0}; +//D:8003D0A0 +struct Gitemheader GbriefcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003D0C0 +struct Gitemheader GblackboxZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 128.31796, 0, 5, 0, 0}; +//D:8003D0E0 +struct Gitemheader GplastiqueZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 255.35242, 0, 3, 0, 0}; +//D:8003D100 +struct Gitemheader GvideotapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 122.69632, 0, 9, 0, 0}; +//D:8003D120 +struct Gitemheader GclipboardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 190.41742, 0, 3, 0, 0}; +//D:8003D140 +struct Gitemheader GstafflistZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 215.17534, 0, 4, 0, 0}; +//D:8003D160 +struct Gitemheader GdossierredZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 183.54231, 0, 4, 0, 0}; +//D:8003D180 +struct Gitemheader GaudiotapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 97.531075, 0, 9, 0, 0}; +//D:8003D1A0 +struct Gitemheader GdattapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 79.868584, 0, 4, 0, 0}; +//D:8003D1C0 +struct Gitemheader GplansZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 81.950996, 0, 5, 0, 0}; +//D:8003D1E0 +struct Gitemheader GspyfileZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D200 +struct Gitemheader GblueprintsZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 125.3834, 0, 4, 0, 0}; +//D:8003D220 +struct Gitemheader GcircuitboardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 138.90285, 0, 3, 0, 0}; +//D:8003D240 +struct Gitemheader GmapZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 125.3834, 0, 4, 0, 0}; +//D:8003D260 +struct Gitemheader GspooltapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D280 +struct Gitemheader GmicrofilmZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2A0 +struct Gitemheader GmicrocodeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2C0 +struct Gitemheader GlectreZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2E0 +struct Gitemheader GmoneyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D300 +struct Gitemheader GgoldbarZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D320 +struct Gitemheader GheroinZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; + +//D:8003D340 +u32 dword_D_8003D340[] = {0x20000, 2, 0x30003, 0x20006, + 0x60002, 0x90009, 0x2000C, 0xC0002, + 0xF000F, 0x20012, 0x120002, 0x150015, + 0x20018, 0x180002, 0x1B001B, 0x2001E, + 0x1E0002, 0x210021, 0x20024, 0x240000}; + +//D:8003D390 +struct model_data weapon_gun_controller = {0xD0000, dword_D_8003D340, 0x270000}; +//D:8003D39C +s32 D_8003D39C = 0; + +u32 dword_D_8003D3A0[] = {0x4010000, 2, 0, 0x20003, + 0x30002, 0x60006, 0x20009, 0xC0002, + 0xC0009, 0x2000F, 0x120002, 0x12000F, + 0x20015, 0x180002, 0x180015, 0x2001B, + 0x1E0002, 0x1E001B, 0x20021, 0x240002, + 0x240021, 0x20027, 0x2A0002, 0x2A0027}; + + +//D:8003D400 + struct model_data model_guard_character = {0x100000, dword_D_8003D3A0, 0x2D0000}; +//D:8003D40C +s32 D_8003D40C = 0; + +//D:8003D410 +struct object_header CcamguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xE, 0, 0}; +//D:8003D430 +struct object_header CgreyguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1292.6892, 0, 0xD, 0, 0}; +//D:8003D450 +struct object_header ColiveguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0x10, 0, 0}; +//D:8003D470 +struct object_header CrusguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xD, 0, 0}; +//D:8003D490 +struct object_header CtrevguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x12, 0, 0}; +//D:8003D4B0 +struct object_header CborisZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1223.1553, 0, 0x15, 0, 0}; +//D:8003D4D0 +struct object_header CorumovZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1347.004, 0, 0x15, 0, 0}; +//D:8003D4F0 +struct object_header CtrevelyanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1263.2534, 0, 0x10, 0, 0}; +//D:8003D510 +struct object_header CboilertrevZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1263.2534, 0, 0x10, 0, 0}; +//D:8003D530 +struct object_header CvalentinZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1208.6277, 0, 0x10, 0, 0}; +//D:8003D550 +struct object_header CxeniaZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1285.4487, 0, 0x13, 0, 0}; +//D:8003D570 +struct object_header CbaronsamediZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.5995, 0, 0x19, 0, 0}; +//D:8003D590 +struct object_header CjawsZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1550.059, 0, 0x14, 0, 0}; +//D:8003D5B0 +struct object_header CmaydayZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.657, 0, 0x10, 0, 0}; +//D:8003D5D0 +struct object_header CoddjobZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1082.4603, 0, 0x12, 0, 0}; +//D:8003D5F0 +struct object_header CnatalyaZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1226.1493, 0, 0x10, 0, 0}; +//D:8003D610 +struct object_header CarmourguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x11, 0, 0}; +//D:8003D630 +struct object_header CcommguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xF, 0, 0}; +//D:8003D650 +struct object_header CgreatguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1283.0787, 0, 0xB, 0, 0}; +//D:8003D670 +struct object_header CnavyguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xF, 0, 0}; +//D:8003D690 +struct object_header CsnowguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1261.1731, 0, 0x11, 0, 0}; +//D:8003D6B0 +struct object_header CbluewomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1148.2167, 0, 0xD, 0, 0}; +//D:8003D6D0 +struct object_header CfattechwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1149.4025, 0, 0xC, 0, 0}; +//D:8003D6F0 +struct object_header CtechwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1158.2109, 0, 0xC, 0, 0}; +//D:8003D710 +struct object_header CjeanwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1124.0725, 0, 0xF, 0, 0}; +//D:8003D730 +struct object_header CgreymanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1293.0195, 0, 0xF, 0, 0}; +//D:8003D750 +struct object_header CbluemanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xF, 0, 0}; +//D:8003D770 +struct object_header CredmanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xF, 0, 0}; +//D:8003D790 +struct object_header CcardimanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xE, 0, 0}; +//D:8003D7B0 +struct object_header CcheckmanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0x10, 0, 0}; +//D:8003D7D0 +struct object_header CtechmanZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1292.6892, 0, 0xC, 0, 0}; +//D:8003D7F0 +struct object_header CpilotZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x18, 0, 0}; +//D:8003D810 +struct object_header Cgreatguard2Z_struct = {0, &model_guard_character, 0, 7, 0x14, 1283.0787, 0, 0x10, 0, 0}; +//D:8003D830 +struct object_header CbluecamguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xE, 0, 0}; +//D:8003D850 +struct object_header CmoonguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0xD, 0, 0}; +//D:8003D870 +struct object_header CmoonfemaleZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1124.0725, 0, 0xB, 0, 0}; +//D:8003D890 +struct object_header CboilerbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1273.6262, 0, 0xD, 0, 0}; +//D:8003D8B0 +struct object_header CsuitbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.3391, 0, 0xE, 0, 0}; +//D:8003D8D0 +struct object_header CtimberbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1282.7715, 0, 0x10, 0, 0}; +//D:8003D8F0 +struct object_header CsnowbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1299.1359, 0, 0xE, 0, 0}; +//D:8003D910 +struct object_header CdjbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1285.0543, 0, 0xD, 0, 0}; +//D:8003D930 +struct object_header Csuit_lf_handz_struct = {0, &model_suit_lf_hand, 0, 0xA, 9, 12231.949, 0, 0x16, 0, 0}; +//D:8003D950 +struct object_header CheadkarlZ_struct = {0, NULL, 0, 2, 1, 218.15375, 0, 6, 0, 0}; +//D:8003D970 +struct object_header CheadalanZ_struct = {0, NULL, 0, 2, 1, 215.03685, 0, 4, 0, 0}; +//D:8003D990 +struct object_header CheadpeteZ_struct = {0, NULL, 0, 2, 1, 216.28949, 0, 4, 0, 0}; +//D:8003D9B0 +struct object_header CheadmartinZ_struct = {0, NULL, 0, 2, 1, 222.34796, 0, 6, 0, 0}; +//D:8003D9D0 +struct object_header stru_D_8003D9D0 = {0, NULL, 0, 2, 1, 220.2446, 0, 5, 0, 0}; +//D:8003D9F0 +struct object_header stru_D_8003D9F0 = {0, NULL, 0, 2, 1, 201.51955, 0, 5, 0, 0}; +//D:8003DA10 +struct object_header stru_D_8003DA10 = {0, NULL, 0, 2, 1, 212.62949, 0, 5, 0, 0}; +//D:8003DA30 +struct object_header stru_D_8003DA30 = {0, NULL, 0, 2, 1, 218.35564, 0, 4, 0, 0}; +//D:8003DA50 +struct object_header stru_D_8003DA50 = {0, NULL, 0, 2, 1, 192.53412, 0, 4, 0, 0}; +//D:8003DA70 +struct object_header stru_D_8003DA70 = {0, NULL, 0, 2, 1, 218.35564, 0, 4, 0, 0}; +//D:8003DA90 +struct object_header stru_D_8003DA90 = {0, NULL, 0, 2, 1, 227.52234, 0, 4, 0, 0}; +//D:8003DAB0 +struct object_header stru_D_8003DAB0 = {0, NULL, 0, 2, 1, 228.29831, 0, 4, 0, 0}; +//D:8003DAD0 +struct object_header stru_D_8003DAD0 = {0, NULL, 0, 2, 1, 235.64778, 0, 6, 0, 0}; +//D:8003DAF0 +struct object_header stru_D_8003DAF0 = {0, NULL, 0, 2, 1, 218.35564, 0, 5, 0, 0}; +//D:8003DB10 +struct object_header stru_D_8003DB10 = {0, NULL, 0, 2, 1, 240.50017, 0, 4, 0, 0}; +//D:8003DB30 +struct object_header stru_D_8003DB30 = {0, NULL, 0, 2, 1, 234.83342, 0, 4, 0, 0}; +//D:8003DB50 +struct object_header stru_D_8003DB50 = {0, NULL, 0, 2, 1, 228.24614, 0, 4, 0, 0}; +//D:8003DB70 +struct object_header stru_D_8003DB70 = {0, NULL, 0, 2, 1, 228.55029, 0, 4, 0, 0}; +//D:8003DB90 +struct object_header stru_D_8003DB90 = {0, NULL, 0, 2, 1, 212.62949, 0, 2, 0, 0}; +//D:8003DBB0 +struct object_header stru_D_8003DBB0 = {0, NULL, 0, 2, 1, 219.82707, 0, 6, 0, 0}; +//D:8003DBD0 +struct object_header stru_D_8003DBD0 = {0, NULL, 0, 2, 1, 193.20615, 0, 5, 0, 0}; +//D:8003DBF0 +struct object_header stru_D_8003DBF0 = {0, NULL, 0, 2, 1, 235.64778, 0, 4, 0, 0}; +//D:8003DC10 +struct object_header stru_D_8003DC10 = {0, NULL, 0, 2, 1, 223.18559, 0, 4, 0, 0}; +//D:8003DC30 +struct object_header stru_D_8003DC30 = {0, NULL, 0, 2, 1, 218.35564, 0, 5, 0, 0}; +//D:8003DC50 +struct object_header stru_D_8003DC50 = {0, NULL, 0, 2, 1, 193.20615, 0, 4, 0, 0}; +//D:8003DC70 +struct object_header stru_D_8003DC70 = {0, NULL, 0, 2, 1, 235.64778, 0, 5, 0, 0}; +//D:8003DC90 +struct object_header stru_D_8003DC90 = {0, NULL, 0, 2, 1, 193.20615, 0, 3, 0, 0}; +//D:8003DCB0 +struct object_header stru_D_8003DCB0 = {0, NULL, 0, 2, 1, 224.83139, 0, 3, 0, 0}; +//D:8003DCD0 +struct object_header stru_D_8003DCD0 = {0, NULL, 0, 2, 1, 219.97256, 0, 3, 0, 0}; +//D:8003DCF0 +struct object_header stru_D_8003DCF0 = {0, NULL, 0, 2, 1, 203.44904, 0, 3, 0, 0}; +//D:8003DD10 +struct object_header stru_D_8003DD10 = {0, NULL, 0, 2, 1, 196.83067, 0, 3, 0, 0}; +//D:8003DD30 +struct object_header stru_D_8003DD30 = {0, NULL, 0, 2, 1, 176.67717, 0, 1, 0, 0}; +//D:8003DD50 +struct object_header stru_D_8003DD50 = {0, NULL, 0, 2, 1, 190.61967, 0, 4, 0, 0}; +//D:8003DD70 +struct object_header CheadbrosnansuitZ_struct = {0, NULL, 0, 2, 1, 212.45657, 0, 5, 0, 0}; +//D:8003DD90 +struct object_header CheadbrosnantimberZ_struct = {0, NULL, 0, 2, 1, 179.28358, 0, 4, 0, 0}; +//D:8003DDB0 +struct object_header CheadbrosnansnowZ_struct = {0, NULL, 0, 2, 1, 225.0605, 0, 6, 0, 0}; +//D:8003DDD0 +struct object_header CheadbrosnanZ_struct = {0, NULL, 0, 2, 1, 189.48112, 0, 5, 0, 0}; +//D:8003DDF0 +struct object_header CspicebondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1208.6448, 0, 0x11, 0, 0}; +const char padding_chars_for_strings[] = "\00\00\00\00\00\00\00\00\00\00\00"; +struct c_itementry c_item_entries[] = { + {&CcamguardZ_struct, "CcamguardZ", 1.0, 1.0, 0x1000000}, + {&CgreyguardZ_struct, "CgreyguardZ", 1.0, 1.0, 0x1000000}, + {&ColiveguardZ_struct, "ColiveguardZ", 1.0, 1.0, 0x1000000}, + {&CrusguardZ_struct, "CrusguardZ", 1.0, 1.0, 0x1000000}, + {&CtrevguardZ_struct, "CtrevguardZ", 1.0, 1.0, 0x1000000}, + {&CdjbondZ_struct, "CdjbondZ", 1.0, 1.0446, 0x1000000}, + {&CborisZ_struct, "CborisZ", 1.0, 0.9702, 0x1010000}, + {&CorumovZ_struct, "CorumovZ", 1.0, 1.0778, 0x1010000}, + {&CtrevelyanZ_struct, "CtrevelyanZ", 1.0, 1.0, 0x1010000}, + {&CboilertrevZ_struct, "CboilertrevZ", 1.0, 1.0, 0x1010000}, + {&CvalentinZ_struct, "CvalentinZ", 1.0, 0.93239999, 0x1010000}, + {&CxeniaZ_struct, "CxeniaZ", 1.0, 1.0, 0x10000}, + {&CbaronsamediZ_struct, "CbaronsamediZ", 1.0, 1.0, 0x1010000}, + {&CjawsZ_struct, "CjawsZ", 1.0, 1.199, 0x1010000}, + {&CmaydayZ_struct, "CmaydayZ", 1.0, 1.0, 0x10000}, + {&CoddjobZ_struct, "CoddjobZ", 1.0, 0.78780001, 0x1010000}, + {&CnatalyaZ_struct, "CnatalyaZ", 1.0, 0.96609998, 0x10000}, + {&CarmourguardZ_struct, "CarmourguardZ", 1.0, 1.0, 0x1000000}, + {&CcommguardZ_struct, "CcommguardZ", 1.0, 1.0, 0x1000000}, + {&CgreatguardZ_struct, "CgreatguardZ", 1.0, 1.0, 0x1000000}, + {&CnavyguardZ_struct, "CnavyguardZ", 1.0, 1.0, 0x1000000}, + {&CsnowguardZ_struct, "CsnowguardZ", 1.0, 1.0, 0x1010000}, + {&CboilerbondZ_struct, "CboilerbondZ", 1.0, 1.0403, 0x1000000}, + {&CsuitbondZ_struct, "CsuitbondZ", 1.0, 1.058, 0x1000000}, + {&CtimberbondZ_struct, "CtimberbondZ", 1.0, 1.0438, 0x1000000}, + {&CsnowbondZ_struct, "CsnowbondZ", 1.0, 1.0438, 0x1000000}, + {&CbluewomanZ_struct, "CbluewomanZ", 1.0, 0.88529998, 0}, + {&CfattechwomanZ_struct, "CfattechwomanZ", 1.0, 0.88529998, 0}, + {&CtechwomanZ_struct, "CtechwomanZ", 1.0, 0.91600001, 0}, + {&CjeanwomanZ_struct, "CjeanwomanZ", 1.0, 0.88529998, 0}, + {&CgreymanZ_struct, "CgreymanZ", 1.0, 1.0, 0x1000000}, + {&CbluemanZ_struct, "CbluemanZ", 1.0, 1.0, 0x1000000}, + {&CredmanZ_struct, "CredmanZ", 1.0, 1.0, 0x1000000}, + {&CcardimanZ_struct, "CcardimanZ", 1.0, 1.0, 0x1000000}, + {&CcheckmanZ_struct, "CcheckmanZ", 1.0, 1.0, 0x1000000}, + {&CtechmanZ_struct, "CtechmanZ", 1.0, 1.0, 0x1000000}, + {&CpilotZ_struct, "CpilotZ", 1.0, 1.0, 0x1010000}, + {&Cgreatguard2Z_struct, "Cgreatguard2Z", 1.0, 1.0, 0x1000000}, + {&CbluecamguardZ_struct, "CbluecamguardZ", 1.0, 1.0, 0x1000000}, + {&CmoonguardZ_struct, "CmoonguardZ", 1.0, 1.0, 0x1000000}, + {&CmoonfemaleZ_struct, "CmoonfemaleZ", 1.0, 0.88529998, 0}, + {&Csuit_lf_handz_struct, "Csuit_lf_handZ", 0.1, 1.0, 0x1000000}, + {&CheadkarlZ_struct, "CheadkarlZ", 1.0, 1.0, 0x1010000}, + {&CheadalanZ_struct, "CheadalanZ", 1.0, 1.0, 0x1010000}, + {&CheadpeteZ_struct, "CheadpeteZ", 1.0, 1.0, 0x1010000}, + {&CheadmartinZ_struct, "CheadmartinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003D9D0, "CheadmarkZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003D9F0, "CheadduncanZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA30, "CheadshaunZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA50, "CheaddwayneZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA10, "CheadbZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA70, "CheaddaveZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA90, "CheadgrantZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAB0, "CheaddesZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAD0, "CheadchrisZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAF0, "CheadleeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB10, "CheadneilZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB30, "CheadjimZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB50, "CheadrobinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB70, "CheadstevehZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB90, "CheadbalaclavaZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBB0, "CheadbikeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBD0, "CheadgrahamZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBF0, "CheadsteveeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC10, "CheadjoelZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC30, "CheadscottZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC50, "CheadjoeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC70, "CheadkenZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC90, "Cheadjoe2Z", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DCB0, "CheadmishkinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DCD0, "CheadsallyZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DCF0, "CheadmarionZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD10, "CheadmandyZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD30, "CheadvivienZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD50, "CheadbrosnanboilerZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnansuitZ_struct, "CheadbrosnansuitZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnantimberZ_struct, "CheadbrosnantimberZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnansnowZ_struct, "CheadbrosnansnowZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnanZ_struct, "CheadbrosnanZ", 1.0, 1.0, 0x1010000}, + {&CspicebondZ_struct, "CspicebondZ", 0.94999999, 0.96609998, 0x10000}, +}; + + +//D:8003E450 +u32 D_8003E450 = 0; +u32 D_8003E454 = 0; +//D:8003E458 +f32 D_8003E458 = 1.0; +//D:8003E45C +u32 D_8003E45C = 0; +//D:8003E460 +u32 D_8003E460 = 0; + +//D:8003E464 +struct headHat headHat_array_8003E464[] = +{ + { + -0.076300003, 0.77999997, -1.2696, 1.1694109, 1.120654, 1.05959 + }, + { + -0.25760001, -0.47319999, -1.5686001, 1.132916, 1.0, 1.080207 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.039999999, 0.74000001, -0.63999999, 1.132795, 1.167207, 1.035167 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.033500001, 0.24959999, 0.16599999, 1.115045, 0.94169998, 1.042492 + }, + { + -0.070299998, 0.4919, -0.83359998, 1.072812, 1.088326, 0.926121 + }, + { + -0.1, 0.42750001, -0.48249999, 1.033368, 0.96552098, 0.929905 + }, + { + 0.18000001, 0.0, 0.0, 1.072214, 1.0, 1.0 + }, + { + 0.237, 0.977, -0.44, 1.178463, 1.14061, 1.143465 + }, + { + -0.090300001, 0.23190001, 0.12639999, 0.99080002, 1.02, 0.8466 + }, + { + 0.0, 0.1485, 0.3793, 1.1548001, 0.99190003, 0.95139998 + }, + { + -0.14820001, 0.44100001, 0.1727, 1.050034, 1.0, 1.05445 + }, + { + -0.4941, -0.26409999, -0.18000001, 0.90368301, 0.72551203, 1.001314 + }, + { + 0.1318, 0.30100101, 1.572699, 0.98799503, 1.0, 1.05445 + }, + { + 0.0, 0.73019999, 0.71740001, 1.1923, 1.1834, 1.091924 + }, + { + -0.0942, -0.74190003, 0.94260001, 0.98659998, 0.91689998, 0.94760001 + }, + { + 0.0535, 0.61510003, 1.076, 1.05092, 0.90002, 1.122508 + }, + { + -0.079999998, 0.1085, -0.56629997, 1.192598, 1.079134, 1.199971 + }, + { + -0.35640001, -0.28709999, -0.36950001, 1.035176, 0.838543, 1.121092 + }, + { + 0.065300003, -0.4664, 0.72000003, 1.050106, 1.0, 1.11042 + }, + { + -0.079999998, 0.4885, 0.093699999, 1.158567, 1.2356189, 1.194388 + }, + { + -0.0942, -0.3017, 0.59450001, 1.0671999, 1.0218, 1.0174 + }, + { + 0.12, -0.1515, 0.95370001, 1.124017, 0.966048, 1.206121 + }, + { + -0.19310001, 0.2334, -0.64850003, 1.1800359, 1.0401829, 1.154537 + }, + { + -0.36230001, -0.133, -0.486, 1.0536211, 1.0, 1.1495841 + }, + { + 0.0955, 0.68099999, 0.78799999, 1.0152, 1.1926, 1.1308 + }, + { + -0.0823, 0.36700001, 0.37400001, 1.311748, 1.115972, 1.166244 + }, + { + -0.0942, 0.1768, 0.5248, 1.0470001, 1.0218, 0.99800003 + }, + { + 0.0, -0.0964, 0.82999998, 1.1109999, 0.85180199, 1.180503 + }, + { + -0.1832, 0.32120001, -1.2381001, 1.125683, 1.091681, 0.98079097 + }, + { + -0.55049998, -0.60839999, -1.189499, 1.023566, 0.8326, 1.0637 + }, + { + 0.076800004, 0.32120001, -0.118101, 1.059677, 1.091681, 1.000479 + }, + { + 0.0, 0.29890001, -0.67299998, 1.1367, 1.0526, 0.99227399 + }, + { + -0.0942, 0.032000002, -0.29699999, 1.0402, 0.92860001, 0.88690001 + }, + { + 0.0, 0.26879999, 0.057399999, 1.041842, 0.81959999, 0.99637401 + }, + { + 0.079700001, 0.3511, 0.0, 1.0, 1.0, 1.0835 + }, + { + 0.14, 0.1965, -0.058398999, 1.012674, 0.96799999, 1.098917 + }, + { + 0.1629, 0.78799999, 1.0746, 0.92205501, 1.0688, 1.055297 + }, + { + -0.074500002, 0.8477, 0.71810001, 1.154819, 1.177258, 1.031684 + }, + { + -0.0145, 0.047699999, 0.89810002, 1.0404, 1.0, 0.94309998 + }, + { + 0.32550001, 0.36770001, 0.93809998, 1.044217, 0.97841102, 1.127771 + }, + { + -0.1832, -0.058800001, -1.5781, 1.095929, 0.96300697, 0.92348999 + }, + { + -0.4411, -0.64840001, -1.839099, 1.059271, 0.8326, 0.96849501 + }, + { + 0.19679999, -0.3188, -0.43810099, 1.070675, 1.053777, 0.88628101 + }, + { + 0.0, 0.29890001, -0.83139998, 1.1154, 1.0328, 1.0036 + }, + { + -0.0942, -0.1275, -0.52109998, 1.0402, 0.92180002, 0.8617 + }, + { + 0.079999998, -0.2383, -0.22940101, 1.063022, 0.80879998, 0.90789998 + }, + { + 0.1165, 0.58780003, -1.3096, 1.136481, 1.0409, 1.065612 + }, + { + -0.070600003, 0.0152, -1.2391, 1.002256, 0.76669598, 1.029659 + }, + { + 0.2218, 0.0, 0.0, 1.0852, 1.0, 1.0 + }, + { + 0.063000001, 0.7561, -0.45269999, 1.2085, 1.1014, 1.0664001 + }, + { + 0.065499999, -0.1097, -0.3497, 1.0404, 0.90915602, 0.94940001 + }, + { + 0.0, 0.336, 0.082999997, 1.150862, 0.94169998, 1.0 + }, + { + -0.054200001, 0.27079999, -0.082099997, 1.0367, 1.0367, 1.0367 + }, + { + 0.34119999, -0.55879998, -0.3044, 1.113436, 0.96799999, 1.076647 + }, + { + 0.0495, 0.63980001, 1.2178, 0.95099998, 1.1126, 1.0413001 + }, + { + 0.0, 0.53640002, 0.75220001, 1.1976, 1.1463, 1.1374 + }, + { + -0.0145, -0.64749998, 1.0477999, 0.95289999, 0.92180002, 0.90579998 + }, + { + 0.16, 0.61830002, 1.128299, 1.083438, 0.91670603, 1.0666929 + }, + { + -0.2586, 0.93580002, -0.2463, 1.1057, 1.0116, 1.0927 + }, + { + -0.1788, -0.31310001, -0.55299997, 1.1071, 1.0, 1.071945 + }, + { + 0.0955, 0.16230001, 0.50150001, 1.0506001, 1.0, 1.1032 + }, + { + 0.081200004, 0.2269, 0.50700003, 1.1071, 1.178908, 1.189239 + }, + { + -0.0145, -0.68440002, 0.54070002, 1.0470001, 0.92699999, 1.027078 + }, + { + 0.0, -0.0164, 0.66399997, 1.2108999, 1.0, 1.0729001 + }, + { + -0.1487, 0.88779998, -0.41060001, 1.110018, 0.98460901, 1.110518 + }, + { + 0.0012000001, -0.61879998, -0.34439901, 1.099178, 0.916071, 1.054984 + }, + { + 0.0429, 0.2149, 0.4298, 1.0455, 1.0688, 1.1514 + }, + { + 0.0012000001, -0.0188, 0.65560102, 1.1957231, 1.079964, 1.200996 + }, + { + -0.0145, -0.48769999, 0.44909999, 1.003074, 1.0, 0.98259997 + }, + { + 0.0, 0.396, 0.8362, 1.1622, 0.91339999, 1.066853 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + 0.12, 0.40000001, 0.039999999, 1.022947, 0.92226201, 1.004824 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0429, 0.75889999, 1.2895, 0.94440001, 1.0, 1.0551 + }, + { + 0.0, 0.546, 0.79729998, 1.1483001, 1.1267999, 1.1388 + }, + { + 0.065099999, -0.54320002, 1.1224999, 0.93949997, 0.92699999, 0.93040001 + }, + { + 0.1265, 0.36359999, 1.079, 1.1109999, 1.0, 1.1166 + }, + { + -0.278, 1.272301, -0.55269998, 1.24701, 1.0737129, 1.118222 + }, + { + -0.23639999, 0.58200002, -0.30950001, 1.225595, 1.077682, 1.066005 + }, + { + -0.0845, 0.68099999, 0.64469999, 1.1204081, 1.1927, 1.1308 + }, + { + -0.1364, 1.021999, 0.5905, 1.153587, 1.226897, 1.2252491 + }, + { + -0.2534, 0.57560003, 0.3856, 1.0405, 1.0405, 1.0585999 + }, + { + -0.1265, 0.6081, 0.71200001, 1.222, 1.0, 1.111666 + }, + { + -0.4637, 1.3971, -0.49270001, 1.1752, 1.0116, 1.1762 + }, + { + -0.2976, -0.1049, -0.49649999, 1.2345999, 0.86470801, 1.077117 + }, + { + -0.1151, 0.7353, 0.57309997, 1.0759, 1.0, 1.1308 + }, + { + -0.189, 0.99910003, 0.2396, 1.2269, 1.2039, 1.1698999 + }, + { + -0.2534, -0.0647, 0.30070001, 1.0470001, 0.92699999, 1.0124 + }, + { + -0.1265, 0.61260003, 0.76700002, 1.2108999, 1.0, 1.096216 + }, + { + -0.51429999, 1.0894001, -0.082099997, 1.1003, 1.0316, 1.0278 + }, + { + -0.53280002, -0.13060001, -0.25999999, 1.080464, 1.0, 1.019003 + }, + { + -0.1969, 0.45930001, 0.64469999, 0.96219999, 1.0, 1.0895 + }, + { + -0.32690001, 1.1438, 0.46720001, 1.1339, 1.1339, 1.0436 + }, + { + -0.29879999, 0.0, 0.41429999, 0.96219999, 1.0, 0.95630002 + }, + { + -0.17640001, 0.39500001, 0.86699998, 1.0972, 0.94625998, 1.0529979 + }, + { + 0.02, 0.56910002, -0.25299999, 1.1205291, 0.999475, 1.072994 + }, + { + -0.0823, -0.3784, -0.38249999, 1.077682, 1.0, 1.066239 + }, + { + 0.02, -0.1909, 0.90700001, 1.049657, 0.999475, 1.072994 + }, + { + 0.0, 0.60549998, 0.47510001, 1.1236, 1.1236, 1.1236 + }, + { + -0.0942, 0.077600002, 0.5248, 1.0403, 0.95950001, 0.98580003 + }, + { + 0.0, 0.20550001, 0.8951, 1.1519721, 0.92378497, 1.0316401 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + -0.13699999, 0.286001, -0.32229999, 1.142894, 0.89638299, 1.15 + }, + { + -0.16680001, -0.1365, -0.43650001, 1.1452, 1.0, 1.061306 + }, + { + 0.1376, 0.0, 0.71600002, 1.05312, 1.0, 1.0687751 + }, + { + -0.074699998, 0.9393, 0.2658, 1.1815, 1.1216, 1.0822999 + }, + { + -0.103, -0.2269, 0.5722, 0.99080002, 1.02, 1.0034 + }, + { + 0.0, 0.1373, 0.79430002, 1.1813999, 0.86186302, 1.0998 + }, + { + 0.12, 0.40000001, 0.039999999, 1.022947, 0.92226201, 1.004824 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0429, 0.75889999, 1.2895, 0.94440001, 1.0, 1.0551 + }, + { + 0.0, 0.546, 0.79729998, 1.1483001, 1.1267999, 1.1388 + }, + { + 0.065099999, -0.54320002, 1.1224999, 0.93949997, 0.92699999, 0.93040001 + }, + { + 0.1265, 0.36359999, 1.079, 1.1109999, 1.0, 1.1166 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + } +}; \ No newline at end of file diff --git a/src/game/chrobjdata.h b/src/game/chrobjdata.h new file mode 100644 index 0000000..3eefceb --- /dev/null +++ b/src/game/chrobjdata.h @@ -0,0 +1,679 @@ +#ifndef _CHROBJDATA_H_ +#define _CHROBJDATA_H_ +#include "ultra64.h" + +struct prop_pos_data { + u16 x; + u16 y; + u16 z; +}; + +struct item_related { + short num_entries_in_block; + short field_2; + struct prop_pos_data * ptr_block; + short total_cmd_indexval; + short field_A; +}; + +struct Gitemheader { + int offset_objtable; + void * guntype_modeldata; + int offset_objblock; + u16 num05soffset_entries; + u16 num_objgroups; + float drawdistance; + u16 num_entries; + u16 num_images; + int offset_imgdecl; + u32 isloaded; +}; + + +struct PitemZ_header { + s32 microcode_entry_num; + struct item_related * anonymous_1; + short anonymous_2; + short field_E; + s32 drawdistance; + float anonymous_4; + s32 anonymous_5; + s32 anonymous_6; + s32 anonymous_7; +}; + +struct p_itementry { + struct PitemZ_header * header; + char * filename; + float scale; +}; + +struct object_header { + int offset_obj_table; + void * ptr_archetype; + int offset_obj_offset_block; + short num_offset_entries; + short num_object_grps; + float anonymous_4; + short num_table_entries; + short num_image_entries; + int offset_img_declaration; + int is_loaded_in_mem; +}; + +struct c_itementry { + struct object_header * header; + char * filename; + float anonymous_1; + float anonymous_2; + int anonymous_3; +}; + +struct model_data { + u32 anonymous_0; + u32 *propposdata; + u32 anonymous_2; +}; + +struct player_gait_header { + u8 field_0x0; + u8 type; + u16 field_0x2; + struct player_gait_object_entry * field_0x4; + struct player_gait_pos_header * previous; + void * field_0xc; + void * field_0x10; + struct player_gait_pos_header * next; +}; + +struct player_gait_pos_header { + u8 field_0x0; + u8 type; + u16 field_0x2; + struct player_gait_position_entry * field_0x4; + struct player_gait_pos_header * previous; + void * field_0xc; + void * field_0x10; + struct player_gait_pos_header * next; +}; + +struct player_gait_object_entry { + u32 field_0x0; + struct player_gait_pos_header * ptr_header; + u32 field_0x8; + u32 field_0xc; +}; + +struct player_gait_position_entry { + float z_scale; + float y_offset; + float xy_scale; + u16 field_0xc; + u16 field_0xe; + u16 field_0x10; + u16 field_0x12; + struct player_gait_pos_header * ptr_header; + u32 field_0x18; +}; + +struct struct_13 { + void * ailist; + int ailistid; +}; + +struct headHat +{ + float xoffset; + float yoffset; + float zoffset; + float xsize; + float ysize; + float zsize; +}; + +extern struct p_itementry PitemZ_entries[]; + +extern struct item_related prop_cctv_related; +extern struct item_related prop_console_one_screen_related; +extern struct item_related prop_console_four_screen_related; +extern struct item_related prop_tv_holder_related; +extern struct item_related prop_rotating_stuff_related; +extern struct item_related prop_eyelid_door_related; +extern struct item_related prop_iris_door_related; +extern struct item_related prop_walletbond_related; +extern struct item_related prop_car_related; +extern struct item_related prop_flying_related; +extern struct item_related prop_door_related; +extern struct item_related item_tank_related; +extern struct item_related item_hat_related; +extern struct item_related model_object_standard_object; +extern struct item_related prop_weapon_related; +extern struct model_data model_guard_character; +extern struct player_gait_header player_gait_hdr; +extern struct player_gait_pos_header player_gait_pos_hdr_1; +extern struct player_gait_pos_header player_gait_pos_hdr_2; +extern struct player_gait_pos_header player_gait_pos_hdr_3; +extern struct player_gait_object_entry player_gait_obj; +extern struct player_gait_position_entry player_gait_pos_1; +extern struct player_gait_position_entry player_gait_pos_2; +extern struct player_gait_position_entry player_gait_pos_3; + +extern struct object_header player_gait_object; + +extern struct Gitemheader GwppkZ_struct; +extern struct Gitemheader GwppksilZ_struct; +extern struct Gitemheader Gtt33Z_struct; +extern struct Gitemheader GskorpianZ_struct; +extern struct Gitemheader Gak47Z_struct; +extern struct Gitemheader GuziZ_struct; +extern struct Gitemheader Gmp5kZ_struct; +extern struct Gitemheader Gmp5ksilZ_struct; +extern struct Gitemheader Gm16Z_struct; +extern struct Gitemheader Gfnp90Z_struct; +extern struct Gitemheader G8003C900_struct; +extern struct Gitemheader GrugerZ_struct; +extern struct Gitemheader GgoldengunZ_struct; +extern struct Gitemheader GshotgunZ_struct; +extern struct Gitemheader GautoshotZ_struct; +extern struct Gitemheader GgrenadelaunchZ_struct; +extern struct Gitemheader GspectreZ_struct; +extern struct Gitemheader GlaserZ_struct; +extern struct Gitemheader GrocketlaunchZ_struct; +extern struct Gitemheader GknifeZ_header; +extern struct Gitemheader GthrowknifeZ_struct; +extern struct Gitemheader GtaserZ_struct; +extern struct Gitemheader GremotemineZ_struct; +extern struct Gitemheader GproximitymineZ_struct; +extern struct Gitemheader GtimedmineZ_struct; +extern struct Gitemheader GtriggerZ_struct; +extern struct Gitemheader GgrenadeZ_struct; +extern struct Gitemheader GfistZ_header; +extern struct Gitemheader GsniperrifleZ_struct; +extern struct Gitemheader GcartridgeZ_struct; +extern struct Gitemheader GcartrifleZ_struct; +extern struct Gitemheader GcartblueZ_struct; +extern struct Gitemheader GcartshellZ_struct; +extern struct Gitemheader GjoypadZ_struct; +extern struct Gitemheader G8003CC00_struct; +extern struct Gitemheader G8003CC20_struct; +extern struct Gitemheader GbombcaseZ_struct; +extern struct Gitemheader GflarepistolZ_struct; +extern struct Gitemheader GpitongunZ_struct; +extern struct Gitemheader G8003CCA0_struct; +extern struct Gitemheader GsilverwppkZ_struct; +extern struct Gitemheader GgoldwppkZ_struct; +extern struct Gitemheader G8003CD00_struct; +extern struct Gitemheader GbungeeZ_struct; +extern struct Gitemheader GdoordecoderZ_struct; +extern struct Gitemheader GbombdefuserZ_struct; +extern struct Gitemheader GbugdetectorZ_struct; +extern struct Gitemheader GsafecrackercaseZ_struct; +extern struct Gitemheader GcameraZ_struct; +extern struct Gitemheader GlockexploderZ_struct; +extern struct Gitemheader GdoorexploderZ_struct; +extern struct Gitemheader GkeyanalysercaseZ_struct; +extern struct Gitemheader GweaponcaseZ_struct; +extern struct Gitemheader GkeycardZ_struct; +extern struct Gitemheader GkeyyaleZ_struct; +extern struct Gitemheader GkeyboltZ_struct; +extern struct Gitemheader GbugZ_struct; +extern struct Gitemheader GmicrocameraZ_struct; +extern struct Gitemheader GexplosivefloppyZ_struct; +extern struct Gitemheader GgoldeneyekeyZ_struct; +extern struct Gitemheader GpolarizedglassesZ_struct; +extern struct Gitemheader GcreditcardZ_struct; +extern struct Gitemheader GdarkglassesZ_struct; +extern struct Gitemheader GwatchidentifierZ_struct; +extern struct Gitemheader GwatchcommunicatorZ_struct; +extern struct Gitemheader GwatchlaserZ_struct; +extern struct Gitemheader GwatchgeigercounterZ_struct; +extern struct Gitemheader GwatchmagnetrepelZ_struct; +extern struct Gitemheader GwatchmagnetattractZ_struct; +extern struct Gitemheader GgaskeyringZ_struct; +extern struct Gitemheader GdatathiefZ_struct; +extern struct Gitemheader GbriefcaseZ_struct; +extern struct Gitemheader GblackboxZ_struct; +extern struct Gitemheader GplastiqueZ_struct; +extern struct Gitemheader GvideotapeZ_struct; +extern struct Gitemheader GclipboardZ_struct; +extern struct Gitemheader GstafflistZ_struct; +extern struct Gitemheader GdossierredZ_struct; +extern struct Gitemheader GaudiotapeZ_struct; +extern struct Gitemheader GdattapeZ_struct; +extern struct Gitemheader GplansZ_struct; +extern struct Gitemheader GspyfileZ_struct; +extern struct Gitemheader GblueprintsZ_struct; +extern struct Gitemheader GcircuitboardZ_struct; +extern struct Gitemheader GmapZ_struct; +extern struct Gitemheader GspooltapeZ_struct; +extern struct Gitemheader GmicrofilmZ_struct; +extern struct Gitemheader GmicrocodeZ_struct; +extern struct Gitemheader GlectreZ_struct; +extern struct Gitemheader GmoneyZ_struct; +extern struct Gitemheader GgoldbarZ_struct; +extern struct Gitemheader GheroinZ_struct; +extern struct model_data weapon_gun_controller; + +extern struct object_header CcamguardZ_struct; +extern struct object_header CgreyguardZ_struct; +extern struct object_header ColiveguardZ_struct; +extern struct object_header CrusguardZ_struct; +extern struct object_header CtrevguardZ_struct; +extern struct object_header CborisZ_struct; +extern struct object_header CorumovZ_struct; +extern struct object_header CtrevelyanZ_struct; +extern struct object_header CboilertrevZ_struct; +extern struct object_header CvalentinZ_struct; +extern struct object_header CxeniaZ_struct; +extern struct object_header CbaronsamediZ_struct; +extern struct object_header CjawsZ_struct; +extern struct object_header CmaydayZ_struct; +extern struct object_header CoddjobZ_struct; +extern struct object_header CnatalyaZ_struct; +extern struct object_header CarmourguardZ_struct; +extern struct object_header CcommguardZ_struct; +extern struct object_header CgreatguardZ_struct; +extern struct object_header CnavyguardZ_struct; +extern struct object_header CsnowguardZ_struct; +extern struct object_header CbluewomanZ_struct; +extern struct object_header CfattechwomanZ_struct; +extern struct object_header CtechwomanZ_struct; +extern struct object_header CjeanwomanZ_struct; +extern struct object_header CgreymanZ_struct; +extern struct object_header CbluemanZ_struct; +extern struct object_header CredmanZ_struct; +extern struct object_header CcardimanZ_struct; +extern struct object_header CcheckmanZ_struct; +extern struct object_header CtechmanZ_struct; +extern struct object_header CpilotZ_struct; +extern struct object_header Cgreatguard2Z_struct; +extern struct object_header CbluecamguardZ_struct; +extern struct object_header CmoonguardZ_struct; +extern struct object_header CmoonfemaleZ_struct; +extern struct object_header CboilerbondZ_struct; +extern struct object_header CsuitbondZ_struct; +extern struct object_header CtimberbondZ_struct; +extern struct object_header CsnowbondZ_struct; +extern struct object_header CdjbondZ_struct; +extern struct object_header Csuit_lf_handz_struct; +extern struct object_header CheadkarlZ_struct; +extern struct object_header CheadalanZ_struct; +extern struct object_header CheadpeteZ_struct; +extern struct object_header CheadmartinZ_struct; +extern struct object_header stru_D_8003D9D0; +extern struct object_header stru_D_8003D9F0; +extern struct object_header stru_D_8003DA10; +extern struct object_header stru_D_8003DA30; +extern struct object_header stru_D_8003DA50; +extern struct object_header stru_D_8003DA70; +extern struct object_header stru_D_8003DA90; +extern struct object_header stru_D_8003DAB0; +extern struct object_header stru_D_8003DAD0; +extern struct object_header stru_D_8003DAF0; +extern struct object_header stru_D_8003DB10; +extern struct object_header stru_D_8003DB30; +extern struct object_header stru_D_8003DB50; +extern struct object_header stru_D_8003DB70; +extern struct object_header stru_D_8003DB90; +extern struct object_header stru_D_8003DBB0; +extern struct object_header stru_D_8003DBD0; +extern struct object_header stru_D_8003DBF0; +extern struct object_header stru_D_8003DC10; +extern struct object_header stru_D_8003DC30; +extern struct object_header stru_D_8003DC50; +extern struct object_header stru_D_8003DC70; +extern struct object_header stru_D_8003DC90; +extern struct object_header stru_D_8003DCB0; +extern struct object_header stru_D_8003DCD0; +extern struct object_header stru_D_8003DCF0; +extern struct object_header stru_D_8003DD10; +extern struct object_header stru_D_8003DD30; +extern struct object_header stru_D_8003DD50; +extern struct object_header CheadbrosnansuitZ_struct; +extern struct object_header CheadbrosnantimberZ_struct; +extern struct object_header CheadbrosnansnowZ_struct; +extern struct object_header CheadbrosnanZ_struct; +extern struct object_header CspicebondZ_struct; + +extern struct PitemZ_header Palarm1z_header; +extern struct PitemZ_header Palarm2Z_header; +extern struct PitemZ_header PexplosionbitZ_header; +extern struct PitemZ_header Pammo_crate1Z_header; +extern struct PitemZ_header Pammo_crate2Z_header; +extern struct PitemZ_header Pammo_crate3Z_header; +extern struct PitemZ_header Pammo_crate4Z_header; +extern struct PitemZ_header Pammo_crate5Z_header; +extern struct PitemZ_header Pbin1Z_header; +extern struct PitemZ_header Pblotter1Z_header; +extern struct PitemZ_header Pbook1Z_header; +extern struct PitemZ_header Pbookshelf1Z_header; +extern struct PitemZ_header Pbridge_console1aZ_header; +extern struct PitemZ_header Pbridge_console1bZ_header; +extern struct PitemZ_header Pbridge_console2aZ_header; +extern struct PitemZ_header Pbridge_console2bZ_header; +extern struct PitemZ_header Pbridge_console3aZ_header; +extern struct PitemZ_header Pbridge_console3bZ_header; +extern struct PitemZ_header Pcard_box1Z_header; +extern struct PitemZ_header Pcard_box2Z_header; +extern struct PitemZ_header Pcard_box3Z_header; +extern struct PitemZ_header Pcard_box4_lgZ_header; +extern struct PitemZ_header Pcard_box5_lgZ_header; +extern struct PitemZ_header Pcard_box6_lgZ_header; +extern struct PitemZ_header PcctvZ_header; +extern struct PitemZ_header Pconsole1Z_header; +extern struct PitemZ_header Pconsole2Z_header; +extern struct PitemZ_header Pconsole3Z_header; +extern struct PitemZ_header Pconsole_sevaZ_header; +extern struct PitemZ_header Pconsole_sevbZ_header; +extern struct PitemZ_header Pconsole_sevcZ_header; +extern struct PitemZ_header Pconsole_sevdZ_header; +extern struct PitemZ_header Pconsole_sev2aZ_header; +extern struct PitemZ_header Pconsole_sev2bZ_header; +extern struct PitemZ_header Pconsole_sev2cZ_header; +extern struct PitemZ_header Pconsole_sev2dZ_header; +extern struct PitemZ_header Pconsole_sev_GEaZ_header; +extern struct PitemZ_header Pconsole_sev_GEbZ_header; +extern struct PitemZ_header Pdesk1Z_header; +extern struct PitemZ_header Pdesk2Z_header; +extern struct PitemZ_header Pdesk_lamp2Z_header; +extern struct PitemZ_header Pdisc_readerZ_header; +extern struct PitemZ_header Pdisk_drive1Z_header; +extern struct PitemZ_header Pfiling_cabinet1Z_header; +extern struct PitemZ_header Pjerry_can1Z_header; +extern struct PitemZ_header Pkeyboard1Z_header; +extern struct PitemZ_header Pkit_units1Z_header; +extern struct PitemZ_header Pletter_tray1Z_header; +extern struct PitemZ_header Pmainframe1Z_header; +extern struct PitemZ_header Pmainframe2Z_header; +extern struct PitemZ_header Pmetal_chair1Z_header; +extern struct PitemZ_header Pmetal_crate1Z_header; +extern struct PitemZ_header Pmetal_crate2Z_header; +extern struct PitemZ_header Pmetal_crate3Z_header; +extern struct PitemZ_header Pmetal_crate4Z_header; +extern struct PitemZ_header Pmissile_rackZ_header; +extern struct PitemZ_header Pmissile_rack2Z_header; +extern struct PitemZ_header Poil_drum1Z_header; +extern struct PitemZ_header Poil_drum2Z_header; +extern struct PitemZ_header Poil_drum3Z_header; +extern struct PitemZ_header Poil_drum5Z_header; +extern struct PitemZ_header Poil_drum6Z_header; +extern struct PitemZ_header Poil_drum7Z_header; +extern struct PitemZ_header PpadlockZ_header; +extern struct PitemZ_header Pphone1Z_header; +extern struct PitemZ_header Pradio_unit1Z_header; +extern struct PitemZ_header Pradio_unit2Z_header; +extern struct PitemZ_header Pradio_unit3Z_header; +extern struct PitemZ_header Pradio_unit4Z_header; +extern struct PitemZ_header Psat1_reflectZ_header; +extern struct PitemZ_header PsatdishZ_header; +extern struct PitemZ_header PsatboxZ_header; +extern struct PitemZ_header Pstool1Z_header; +extern struct PitemZ_header Pswivel_chair1Z_header; +extern struct PitemZ_header Ptorpedo_rackZ_header; +extern struct PitemZ_header Ptv1Z_header; +extern struct PitemZ_header Ptv_holderZ_header; +extern struct PitemZ_header PtvscreenZ_header; +extern struct PitemZ_header Ptv4screenZ_header; +extern struct PitemZ_header Pwood_lg_crate1Z_header; +extern struct PitemZ_header Pwood_lg_crate2Z_header; +extern struct PitemZ_header Pwood_md_crate3Z_header; +extern struct PitemZ_header Pwood_sm_crate4Z_header; +extern struct PitemZ_header Pwood_sm_crate5Z_header; +extern struct PitemZ_header Pwood_sm_crate6Z_header; +extern struct PitemZ_header Pwooden_table1Z_header; +extern struct PitemZ_header Pswipe_card2Z_header; +extern struct PitemZ_header Pborg_crateZ_header; +extern struct PitemZ_header Pboxes4x4Z_header; +extern struct PitemZ_header Pboxes3x4Z_header; +extern struct PitemZ_header Pboxes2x4Z_header; +extern struct PitemZ_header Psec_panelZ_header; +extern struct PitemZ_header PICBM_noseZ_header; +extern struct PitemZ_header PICBMZ_header; +extern struct PitemZ_header Ptuning_console1Z_header; +extern struct PitemZ_header Pdesk_arecibo1Z_header; +extern struct PitemZ_header Plocker3Z_header; +extern struct PitemZ_header Plocker4Z_header; +extern struct PitemZ_header ProofgunZ_header; +extern struct PitemZ_header Pdest_engineZ_header; +extern struct PitemZ_header Pdest_exocetZ_header; +extern struct PitemZ_header Pdest_gunZ_header; +extern struct PitemZ_header Pdest_harpoonZ_header; +extern struct PitemZ_header Pdest_seawolfZ_header; +extern struct PitemZ_header PwindowZ_header; +extern struct PitemZ_header Pwindow_lib_lg1Z_header; +extern struct PitemZ_header Pwindow_lib_sm1Z_header; +extern struct PitemZ_header Pwindow_cor11Z_header; +extern struct PitemZ_header Pjungle3_treeZ_header; +extern struct PitemZ_header PpalmZ_header; +extern struct PitemZ_header PpalmtreeZ_header; +extern struct PitemZ_header Pplant2bZ_header; +extern struct PitemZ_header PlabbenchZ_header; +extern struct PitemZ_header PgasbarrelZ_header; +extern struct PitemZ_header PgasbarrelsZ_header; +extern struct PitemZ_header PbodyarmourZ_header; +extern struct PitemZ_header PbodyarmourvestZ_header; +extern struct PitemZ_header PgastankZ_header; +extern struct PitemZ_header Pglassware1Z_header; +extern struct PitemZ_header PhatchboltZ_header; +extern struct PitemZ_header PbrakeunitZ_header; +extern struct PitemZ_header Pak47magZ_header; +extern struct PitemZ_header Pm16magZ_header; +extern struct PitemZ_header Pmp5kmagZ_header; +extern struct PitemZ_header PskorpionmagZ_header; +extern struct PitemZ_header PspectremagZ_header; +extern struct PitemZ_header PuzimagZ_header; +extern struct PitemZ_header PsilencerZ_header; +extern struct PitemZ_header PchrextinguisherZ_header; +extern struct PitemZ_header PboxcartridgesZ_header; +extern struct PitemZ_header Pfnp90magZ_header; +extern struct PitemZ_header PgoldenshellsZ_header; +extern struct PitemZ_header PmagnumshellsZ_header; +extern struct PitemZ_header PwppkmagZ_header; +extern struct PitemZ_header Ptt33magZ_header; +extern struct PitemZ_header Psev_doorZ_header; +extern struct PitemZ_header Psev_door3Z_header; +extern struct PitemZ_header Psev_door3_windZ_header; +extern struct PitemZ_header Psev_door4_windZ_header; +extern struct PitemZ_header Psev_trislideZ_header; +extern struct PitemZ_header Psev_door_v1Z_header; +extern struct PitemZ_header Psteel_door1Z_header; +extern struct PitemZ_header Psteel_door2Z_header; +extern struct PitemZ_header Psteel_door3Z_header; +extern struct PitemZ_header Psilo_lift_doorZ_header; +extern struct PitemZ_header Psteel_door2bZ_header; +extern struct PitemZ_header Pdoor_roller1Z_header; +extern struct PitemZ_header Pdoor_roller2Z_header; +extern struct PitemZ_header Pdoor_roller3Z_header; +extern struct PitemZ_header Pdoor_roller4Z_header; +extern struct PitemZ_header Pdoor_st_arec1Z_header; +extern struct PitemZ_header Pdoor_st_arec2Z_header; +extern struct PitemZ_header Pdoor_dest1Z_header; +extern struct PitemZ_header Pdoor_dest2Z_header; +extern struct PitemZ_header Pgas_plant_sw_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw2_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw3_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw4_do1Z_header; +extern struct PitemZ_header Pgas_plant_met1_do1Z_header; +extern struct PitemZ_header Pgas_plant_wc_cub1Z_header; +extern struct PitemZ_header Pgasplant_clear_doorZ_header; +extern struct PitemZ_header Ptrain_doorZ_header; +extern struct PitemZ_header Ptrain_door2Z_header; +extern struct PitemZ_header Ptrain_door3Z_header; +extern struct PitemZ_header Pdoor_eyelidZ_header; +extern struct PitemZ_header Pdoor_irisZ_header; +extern struct PitemZ_header PsevdoorwoodZ_header; +extern struct PitemZ_header PsevdoorwindZ_header; +extern struct PitemZ_header PsevdoornowindZ_header; +extern struct PitemZ_header PsevdoormetslideZ_header; +extern struct PitemZ_header Pcryptdoor1aZ_header; +extern struct PitemZ_header Pcryptdoor1bZ_header; +extern struct PitemZ_header Pcryptdoor2aZ_header; +extern struct PitemZ_header Pcryptdoor2bZ_header; +extern struct PitemZ_header Pcryptdoor3Z_header; +extern struct PitemZ_header Pcryptdoor4Z_header; +extern struct PitemZ_header PvertdoorZ_header; +extern struct PitemZ_header PhatchdoorZ_header; +extern struct PitemZ_header PdamgatedoorZ_header; +extern struct PitemZ_header PdamtundoorZ_header; +extern struct PitemZ_header PdamchaindoorZ_header; +extern struct PitemZ_header PsilotopdoorZ_header; +extern struct PitemZ_header Pdoorprison1Z_header; +extern struct PitemZ_header PdoorstatgateZ_header; +extern struct PitemZ_header PchrkalashZ_header; +extern struct PitemZ_header PchrgrenadelaunchZ_header; +extern struct PitemZ_header PchrknifeZ_header; +extern struct PitemZ_header PchrlaserZ_header; +extern struct PitemZ_header Pchrm16Z_header; +extern struct PitemZ_header Pchrmp5kZ_header; +extern struct PitemZ_header PchrrugerZ_header; +extern struct PitemZ_header PchrwppkZ_header; +extern struct PitemZ_header PchrshotgunZ_header; +extern struct PitemZ_header PchrskorpionZ_header; +extern struct PitemZ_header PchrspectreZ_header; +extern struct PitemZ_header PchruziZ_header; +extern struct PitemZ_header PchrgrenadeZ_header; +extern struct PitemZ_header Pchrfnp90Z_header; +extern struct PitemZ_header PchrbriefcaseZ_header; +extern struct PitemZ_header PchrremotemineZ_header; +extern struct PitemZ_header PchrproximitymineZ_header; +extern struct PitemZ_header PchrtimedmineZ_header; +extern struct PitemZ_header PchrrocketZ_header; +extern struct PitemZ_header PchrgrenaderoundZ_header; +extern struct PitemZ_header PchrwppksilZ_header; +extern struct PitemZ_header Pchrtt33Z_header; +extern struct PitemZ_header Pchrmp5ksilZ_header; +extern struct PitemZ_header PchrautoshotZ_header; +extern struct PitemZ_header PchrgoldenZ_header; +extern struct PitemZ_header PchrthrowknifeZ_header; +extern struct PitemZ_header PchrsniperrifleZ_header; +extern struct PitemZ_header PchrrocketlaunchZ_header; +extern struct PitemZ_header PhatfurryZ_header; +extern struct PitemZ_header PhatfurrybrownZ_header; +extern struct PitemZ_header PhatfurryblackZ_header; +extern struct PitemZ_header PhattbirdZ_header; +extern struct PitemZ_header PhattbirdbrownZ_header; +extern struct PitemZ_header PhathelmetZ_header; +extern struct PitemZ_header PhathelmetgreyZ_header; +extern struct PitemZ_header PhatmoonZ_header; +extern struct PitemZ_header PhatberetZ_header; +extern struct PitemZ_header PhatberetblueZ_header; +extern struct PitemZ_header PhatberetredZ_header; +extern struct PitemZ_header PhatpeakedZ_header; +extern struct PitemZ_header PchrwristdartZ_header; +extern struct PitemZ_header PchrexplosivepenZ_header; +extern struct PitemZ_header PchrbombcaseZ_header; +extern struct PitemZ_header PchrflarepistolZ_header; +extern struct PitemZ_header PchrpitongunZ_header; +extern struct PitemZ_header PchrfingergunZ_header; +extern struct PitemZ_header PchrsilverwppkZ_header; +extern struct PitemZ_header PchrgoldwppkZ_header; +extern struct PitemZ_header PchrdynamiteZ_header; +extern struct PitemZ_header PchrbungeeZ_header; +extern struct PitemZ_header PchrdoordecoderZ_header; +extern struct PitemZ_header PchrbombdefuserZ_header; +extern struct PitemZ_header PchrbugdetectorZ_header; +extern struct PitemZ_header PchrsafecrackercaseZ_header; +extern struct PitemZ_header PchrcameraZ_header; +extern struct PitemZ_header PchrlockexploderZ_header; +extern struct PitemZ_header PchrdoorexploderZ_header; +extern struct PitemZ_header PchrkeyanalysercaseZ_header; +extern struct PitemZ_header PchrweaponcaseZ_header; +extern struct PitemZ_header PchrkeyyaleZ_header; +extern struct PitemZ_header PchrkeyboltZ_header; +extern struct PitemZ_header PchrbugZ_header; +extern struct PitemZ_header PchrmicrocameraZ_header; +extern struct PitemZ_header PfloppyZ_header; +extern struct PitemZ_header PchrgoldeneyekeyZ_header; +extern struct PitemZ_header PchrpolarizedglassesZ_header; +extern struct PitemZ_header PchrcreditcardZ_header; +extern struct PitemZ_header PchrdarkglassesZ_header; +extern struct PitemZ_header PchrgaskeyringZ_header; +extern struct PitemZ_header PchrdatathiefZ_header; +extern struct PitemZ_header PsafeZ_header; +extern struct PitemZ_header PbombZ_header; +extern struct PitemZ_header PchrplansZ_header; +extern struct PitemZ_header PchrspyfileZ_header; +extern struct PitemZ_header PchrblueprintsZ_header; +extern struct PitemZ_header PchrcircuitboardZ_header; +extern struct PitemZ_header PchrmapZ_header; +extern struct PitemZ_header PchrspooltapeZ_header; +extern struct PitemZ_header PchraudiotapeZ_header; +extern struct PitemZ_header PchrmicrofilmZ_header; +extern struct PitemZ_header PchrmicrocodeZ_header; +extern struct PitemZ_header PchrlectreZ_header; +extern struct PitemZ_header PchrmoneyZ_header; +extern struct PitemZ_header PchrgoldbarZ_header; +extern struct PitemZ_header PchrheroinZ_header; +extern struct PitemZ_header PchrclipboardZ_header; +extern struct PitemZ_header PchrdossierredZ_header; +extern struct PitemZ_header PchrstafflistZ_header; +extern struct PitemZ_header PchrdattapeZ_header; +extern struct PitemZ_header PchrplastiqueZ_header; +extern struct PitemZ_header PchrblackboxZ_header; +extern struct PitemZ_header PchrvideotapeZ_header; +extern struct PitemZ_header PnintendologoZ_header; +extern struct PitemZ_header PgoldeneyelogoZ_header; +extern struct PitemZ_header PwalletbondZ_header; +extern struct PitemZ_header PmiltruckZ_header; +extern struct PitemZ_header PjeepZ_header; +extern struct PitemZ_header ParticZ_header; +extern struct PitemZ_header PhelicopterZ_header; +extern struct PitemZ_header PtigerZ_header; +extern struct PitemZ_header PmilcopterZ_header; +extern struct PitemZ_header PhindZ_header; +extern struct PitemZ_header PartictrailerZ_header; +extern struct PitemZ_header PmotorbikeZ_header; +extern struct PitemZ_header PtankZ_header; +extern struct PitemZ_header PapcZ_header; +extern struct PitemZ_header PspeedboatZ_header; +extern struct PitemZ_header PplaneZ_header; +extern struct PitemZ_header Pgun_runway1Z_header; +extern struct PitemZ_header PsafedoorZ_header; +extern struct PitemZ_header Pkey_holderZ_header; +extern struct PitemZ_header PhatchsevxZ_header; +extern struct PitemZ_header PsevdishZ_header; +extern struct PitemZ_header Parchsecdoor1Z_header; +extern struct PitemZ_header Parchsecdoor2Z_header; +extern struct PitemZ_header PgroundgunZ_header; +extern struct PitemZ_header PtrainextdoorZ_header; +extern struct PitemZ_header PcarbmwZ_header; +extern struct PitemZ_header PcarescortZ_header; +extern struct PitemZ_header PcargolfZ_header; +extern struct PitemZ_header PcarweirdZ_header; +extern struct PitemZ_header PcarzilZ_header; +extern struct PitemZ_header Pshuttle_door_lZ_header; +extern struct PitemZ_header Pshuttle_door_rZ_header; +extern struct PitemZ_header Pdepot_gate_entryZ_header; +extern struct PitemZ_header Pdepot_door_steelZ_header; +extern struct PitemZ_header Pglassware2Z_header; +extern struct PitemZ_header Pglassware3Z_header; +extern struct PitemZ_header Pglassware4Z_header; +extern struct PitemZ_header PlandmineZ_header; +extern struct PitemZ_header Pplant1Z_header; +extern struct PitemZ_header Pplant11Z_header; +extern struct PitemZ_header Pplant2Z_header; +extern struct PitemZ_header Pplant3Z_header; +extern struct PitemZ_header Pjungle5_treeZ_header; +extern struct PitemZ_header PlegalpageZ_header; +extern struct PitemZ_header Pst_pete_room_1iZ_header; +extern struct PitemZ_header Pst_pete_room_2iZ_header; +extern struct PitemZ_header Pst_pete_room_3tZ_header; +extern struct PitemZ_header Pst_pete_room_5cZ_header; +extern struct PitemZ_header Pst_pete_room_6cZ_header; +extern struct PitemZ_header Pdoor_rollertrainZ_header; +extern struct PitemZ_header Pdoor_winZ_header; +extern struct PitemZ_header Pdoor_aztecZ_header; +extern struct PitemZ_header PshuttleZ_header; +extern struct PitemZ_header Pdoor_azt_deskZ_header; +extern struct PitemZ_header Pdoor_azt_desk_topZ_header; +extern struct PitemZ_header Pdoor_azt_chairZ_header; +extern struct PitemZ_header Pdoor_mfZ_header; +extern struct PitemZ_header PflagZ_header; +extern struct PitemZ_header PbarricadeZ_header; +extern struct PitemZ_header PmodemboxZ_header; +extern struct PitemZ_header PdoorpanelZ_header; +extern struct PitemZ_header PdoorconsoleZ_header; +extern struct PitemZ_header PchrtesttubeZ_header; +extern struct PitemZ_header Pbollardz_header; + +#endif diff --git a/src/game/chrobjhandler.c b/src/game/chrobjhandler.c new file mode 100644 index 0000000..0d67acd --- /dev/null +++ b/src/game/chrobjhandler.c @@ -0,0 +1,37078 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/bond.h" +#include "game/bondinv.h" +#include "game/chr.h" +#include "game/chrai.h" +#include "snd.h" +#include "music.h" +#include "game/lvl.h" +#include "game/lvl_text.h" + +s32 alarm_timer = 0; +s32 *ptr_alarm_sfx = 0; +f32 toxic_gas_sound_timer = 0.0; +s32 activate_gas_sound_timer = FALSE; +f32 D_80030AD0 = 0.0; +f32 D_80030AD4 = 0.0; +f32 D_80030AD8 = 0.0; +s32 D_80030ADC = 0; +u32 D_80030AE0 = 0; +s32 ptr_gas_sound = 0; +s32 clock_drawn_flag = 1; +s32 clock_enable = 0; +f32 clock_time = 0; +s32 D_80030AF4 = 0; +s32 D_80030AF8 = 0; +s32 D_80030AFC = 0; +s32 D_80030B00 = 0; +s32 D_80030B04 = 0; +s32 D_80030B08 = 0; +s32 D_80030B0C = 0; +s32 bodypartshot = 0xFFFFFFFF; +f32 D_80030B14 = 1.0; +f32 D_80030B18 = 1.0; +f32 D_80030B1C = 1.0; +f32 D_80030B20 = 1.0; +f32 D_80030B24 = 1.0; +f32 solo_ammo_multiplier = 1.0; +s16 Throwing_knife_SFX[] = {0x5F, 0x60, 0x61}; + +u32 D_80030B34[] = { + 0, 1, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; +//80030b74 +u32 monitor_animation_microcode[] = { + 7, 0, 1, 0x400, 0x14, 8, 0x14, 2, + 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, + 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, + 8, 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, + 8, 0x14, 0xB +}; + +u32 D_80030C00[] = { + 7, 0xC, 1, 0x400, 0x14, + 8, 0x14, 2, 0x400, 0x14, 0xD, 0xFF, 0x14, + 8, 0x14, 5, 0x200, 0x14, 6, 0x200, 0x14, + 0xD,0xFFFFFFFF, 0x14, 8, 0x14, 5, 0x400, 0x14, + 6, 0x400, 0x14, 8, 0x14, 7, 0xD, 1, + 0x400, 0x14, 8, 0x14, 2, 0x400, 0x14, 0xD, + 0xFF, 0x14, 8, 0x14, 5, 0x200, 0x14, 6, + 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, 8, 0x14, 5, + 0x400, 0x14, 6, 0x400, 0x14, 8, 0x14, 7, + 0xE, 1, 0x400, 0x14, 8, 0x14, 2, 0x400, + 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, 0x200, + 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, 8, + 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, 8, + 0x14, 7, 0xF, 1, 0x400, 0x14, 8, 0x14, + 2, 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, + 5, 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, + 0x14, 8, 0x14, 5, 0x400, 0x14, 6, 0x400, + 0x14, 8, 0x14, 0xB, +}; + +u32 D_80030E24[] = { + 7, 0x11, 8, 0x50, + 7, 0x12, 8, 0x50, 7, 0x13, 8, 0x50, + 7, 0x14, 8, 0x50, 7, 0x15, 8, 0x50, + 7, 0x16, 8, 0x50, 7, 0x17, 8, 0x50, + 7, 0x18, 8, 0x50, 7, 0x19, 8, 0x50, + 7, 0x1A, 8, 0x50, 0xB, +}; + +u32 D_80030EC8[] = { + 7, 7, 8, + 0x50, 7, 8, 8, 0x50, 7, 9, 8, + 0x50, 7, 0xC, 8, 0x50, 7, 0xD, 8, + 0x50, 8, 0x50, 7, 0x19, 8, 0x50, 7, + 0x14, 8, 0x50, 0xB +}; + +u32 D_80030F44[] = { + 0xD,0x202020FF, 1, 7, 0x1C, 1, 0x800, 0x78, + 8, 0x78, 5, 0x100, 1, 6, 0x200, 0x3C, + 1,0xFFFFE000, 0x78, 8, 0x78, 5, 0x400, 1, + 6, 0x400, 0x3C, 6, 0x400, 0x3C, 1, 0x800, + 0x78, 8, 0x78, 5, 0x80, 1, 6, 0x800, + 0x3C, 6, 0x400, 0x78, 2, 0x400, 0x3C, 1, + 0x200, 0x78, 8, 0x78, 0xB +}; + +u32 D_80031018[] = { + 0xD, 0x202020FF, 1, 7, 0x1C, 5, 0x80, 1, 6, 0x800, 0x3C, 6, 0x400, 0x78, + 2, 0x400, 0xA, 1, 0x200, 0x28, 8, 0x78, 0xB +}; + +u32 D_80031074[] = { + 7, 0x1D, 0xD, 0x8000FF, 1, 2, 0xFFFFFE00, 0x50, 8, 0x78, 2, 0xFFFFFF00, + 0x14, 8, 0x78, 2, 0xFFFFFF80, 0xA, 8, 0x28, 2, 0xFFFFFE00, 0x28, 8, 0x3C, + 2, 0xFFFFFFC0, 0x1E, 8, 0x78, 0xB +}; + +u32 D_800310F0[] = { + 7, 0x1D, 0xD, 0x280000FF, 1, 2, 0x200, 0x50, 8, 0x78, 2, 0x100, 0x14, + 8, 0x78, 2, 0x80, 0xA, 8, 0x28, 2, 0x200, 0x28, 8, 0x3C, 2, 0x40, 0x1E, + 8, 0x78, 2, 0x100, 0x14, 8, 0x78, 2, 0x80, 0xA, 0xB +}; + +u32 D_8003118C[] = { + 7, 0x1D, 0xD, 0x3C00FF, 1, 2, 0x200, 0x50, 8, 0x78, 2, 0x80, 0xA, 8, + 0x28, 2, 0x100, 0x14, 8, 0x78, 2, 0x80, 0xA, 8, 0x28, 2, 0x200, 0x28, + 8, 0x3C, 2, 0x40, 0x1E, 8, 0x78, 0xB +}; + +u32 D_8003121C[] = { + 7, 0x1E, 0xD, 0x404000FF, 1, 1, 0x280, 1, 8, 0xA, 0xB +}; + +u32 D_80031248[] = { + 7, 0x1E, 0xD, 0x4040FF, 1, 1, 0x280, 1, 8, 0xA, 0xB +}; + +u32 D_80031274[] = { + 7, 0x1E, 0xD,0x406440FF, 1, 1,0xFFFFFD80, + 1, 8, 0xA, 0xB +}; + +u32 D_800312A0[] = { + 0xD, 0xAFF0AFE, 0x14, 9, &D_800312C8 +}; + +u32 D_800312B4[] = { + 0xD, 0xA640AFE, 0x14, 9, (u32)&D_800312C8 +}; + +u32 D_800312C8[] = { + 0xF, 0xB6, 8, 1, 0xA, &D_800312A0, 0x51E, 0xA, &D_800312B4, 0x147A, 0xB +}; + +u32 D_800312F4[] = { + 7, 0x30, 0xD, 0xA960AFE, 1, 9, &D_800312B4 +}; + +u32 D_80031310[] = { + 7, 0x10, 0xD, 0x303080FF, 0x1E, 8, 5, 7, 0x2D, 8, 5, 7, 0x2E, 8, 5, 7, 0x2F, 8, 5, 0xB +}; + +u32 D_80031360[] = { + 7, 0x2C, 0xD,0x308030FF, 0x1E, 1,0xFFFFFC00, 0x400, + 8, 0x5A0, 3, 0x288, 0x168, 4, 0x3AA, 0x168, + 5, 0x80, 0x12C, 6, 0x80, 0x12C, 0xD, 0xFF, + 0x3C, 8, 0x3C, 0xD,0x808080FF, 0xA, 8, 0x5A, + 0xD,0x38C838FF, 0x1E, 8, 0x1E, 0xD,0x803838FF, 0x3C, + 8, 0x3C, 0xD,0x808080FF, 0x3C, 8, 0x3C, 3, + 0x200, 0x168, 4, 0x200, 0x168, 5, 0x400, 0x2D0, + 6, 0x400, 0x2D0, 8, 0x12C, 7, 0x2C, 8, + 0x1A4, 0xD, 0xC800FF, 0x1E, 8, 0x1E, 0xD,0x1E381EFF, + 0x3C, 8, 0x3C, 0xB +}; + +u32 D_80031490[] = { + 0xD, 0xFF, 1, 0xD,0xC8C8C8FF, 0x190, 7, 1, + 8, 0x2A8, 7, 2, 8, 0x2A8, 7, 4, + 8, 0xB4, 0xD,0x808032FF, 1, 7, 4, 8, + 0xC8, 0xB +}; + +u32 D_800314F8[] = { + 5, 0x400, 1, 6, 0x400, 1, 0xD,0xC81414FF, + 1, 7, 6, 8, 0x258, 0xD,0xC8C8C8FF, 5, + 8, 5, 0xD,0x383838FF, 0x3C, 7, 0x1B, 0xD, + 0xA0A0AFF, 0x64, 8, 0x190, 0xB +}; + +u32 D_8003156C[] = { + 0xD, 0xA960AFF, 0, 7, 0x28, 8, 5, 7, + 0x29, 8, 5, 7, 0x2A, 8, 5, 7, + 0x2B, 8, 0xA, 7, 0x29, 8, 5, 0xB +}; + +u32 D_800315CC[] = { + 7, 0x24, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, 8, + 3, 0xD, 0x87808FF, 0, 8, 2, 1, 0x264, + 0x1E, 7, 0x25, 0xD, 0xA960AFF, 0, 8, 3, + 0xD, 0x87808FF, 0, 8, 2, 7, 0x26, 0xD, + 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, 8, + 2, 7, 0x27, 0xD, 0xA960AFF, 0, 8, 3, + 0xD, 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, + 8, 3, 0xD, 0x87808FF, 0, 8, 2, 0xD, + 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, 8, + 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, + 0, 8, 2, 1, 0x19C, 0x28, 7, 0x26, + 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, + 8, 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 7, 0x25, 0xD, 0xA960AFF, + 0, 8, 3, 0xD, 0x87808FF, 0, 8, 2, + 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, + 8, 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, 8, + 3, 0xD, 0x87808FF, 0, 8, 2, 0xB +}; + +u32 D_80031848[] = { + 0x0000000D, 0x0A780AFF, + 0x00000000, 0x00000007, + 0x00000020, 0x00000008, + 0x00000005, 0x00000007, + 0x00000021, 0x00000008, + 0x00000005, 0x00000007, + 0x00000022, 0x00000008, + 0x00000005, 0x00000007, + 0x00000023, 0x00000008, + 0x00000005, 0x0000000B +}; + +u32 D_80031898[] = {7, 0x1C, 0xD, 0x800000, 1, 8, 5, 0xB}; + +struct struct_5 D_800318B8[] = { + {0xA, D_80031018, 0x1999}, + {0xA, D_8003156C, 0x1999}, + {0xA, D_8003121C, 0x1999}, + {0xA, D_80031248, 0x1999}, + {0xA, D_80031274, 0x1999}, + {0xA, D_800310F0, 0x3333}, + {0xA, D_8003118C, 0x6666}, + {0xA, D_80031074, 0xFFFF} +}; + +u32 D_80031918 = 0xB; + +struct struct_5 D_8003191C[] = { + {0xA, D_80030F44, 0x51E}, + {0xA, D_8003121C, 0x51E}, + {0xA, D_80031074, 0x51E}, + {0xA, &D_80031950, 0x9999} +}; + +u32 D_8003194C = 0xB; + +struct struct_5 D_80031950[] = { + {0xA, &D_800319D4, 0x1999}, + {0xA, &D_800319F0, 0x1999}, + {0xA, &D_80031A0C, 0x1999}, + {0xA, &D_80031A28, 0x1999}, + {0xA, &D_80031A44, 0x1999}, + {0xA, &D_80031A60, 0x1999}, + {0xA, &D_80031A7C, 0x1999}, + {0xA, &D_80031A98, 0x1999}, + {0xA, &D_80031AB4, 0x1999}, + {0xA, &D_80031AD0, 0x1999} +}; +u32 D_800319C8[] = {8, 0x64, 0xB}; + +struct struct_0 D_800319D4 = {7, 0x11, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_800319F0 = {7, 0x12, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A0C = {7, 0x13, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A28 = {7, 0x14, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A44 = {7, 0x15, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A60 = {7, 0x16, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A7C = {7, 0x17, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A98 = {7, 0x18, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031AB4 = {7, 0x19, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031AD0 = {7, 0x1A, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; + +struct struct_5 D_80031AEC[] = { + {0xA, &D_80031B24, 0x1999}, + {0xA, &D_80031B38, 0x1999}, + {0xA, &D_80031B4C, 0x1999} +}; + +struct struct_12 D_80031B10[] = {0xD, 0xC8, 0xC8, 0xC8, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B24[] = {0xD, 0xC8, 0x32, 0x32, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B38[] = {0xD, 0x32, 0xC8, 0x32, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B4C[] = {0xD, 0x32, 0x32, 0xC8, 0xFF, 0x3C, 9, D_80031B60}; +u32 D_80031B60[] = {8, 0x32}; + +//80031B68 +struct struct_5 D_80031B68 = {0xA, &D_80031BB4, 0x1999}; +//80031B74 +struct struct_5 D_80031B74 = {0xA, &D_80031BD0, 0x1999}; +//80031B80 +struct struct_5 D_80031B80 = {0xA, &D_80031BEC, 0x1999}; +//80031B8C +struct struct_5 D_80031B8C = {0xA, &D_80031C08, 0x1999}; +//80031B98 +struct struct_5 D_80031B98 = {0xA, &D_80031C80, 0x1999}; +//80031BA4 +u32 D_80031BA4[] = {8, 0x12C, 9, &D_80031D30}; + +struct struct_16 D_80031BB4 = {1, 0x800, 0x78, 8, 0x78, 9, D_80031D30}; +struct struct_16 D_80031BD0 = {2, 0x2000, 0x32, 8, 0xC8, 9, D_80031D30}; +struct struct_16 D_80031BEC = {2, 0x2000, 0xC8, 8, 0xC8, 9, D_80031D30}; + +u32 D_80031C08[] = { + 3, 0x288, 0x12C, 4, 0x3AA, 0x12C, + 5, 0x80, 0xC8, 6, 0x80, 0xC8, + 8, 0x12C, 3, 0x200, 0x32, + 4, 0x200, 0xC8, 5, 0x400, 0x2D0, + 6, 0x400, 0x2D0, 8, 0x258, 9, D_80031D30 +}; + +u32 D_80031C80[] = { + 3, 0x320, 0x190, 4, 0x190, 0x190, 5, 0x80, + 0xC8, 6, 0x80, 0xC8, 8, 0x12C, 3, 0xC8, + 0xC8, 4, 0x190, 0x320, 5, 0x200, 0x2D0, 6, + 0x200, 0x2D0, 8, 0x320, 5, 0x400, 0x2D0, 6, + 0x400, 0x2D0, 3, 0x200, 0x64, 4, 0x200, 0x3C, + 8, 0x1F4, 9, D_80031D30 +}; + +u32 D_80031D30[] = { + 8, 0x32, 0xA, &D_80031AEC, 0x1999, 0xA, &D_80031D58, 0x3333, + 9, &D_80031950 +}; + +struct struct_20 D_80031D58 = {8, 0x32, 0xD, 0xFFFFFFFF, 0xA, 0xD, 0xFF, 5, 0xD, 0xFFFFFFFF, 0xA, 8, 0x19, 0xD, 0xFF, 0xC8, 8, 0x1F4, 9, D_80031950}; + +u32 D_80031DA8[] = { + 7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD,0xDC2828FF, 0x3C, 8, 0x3C, 0xD,0x323232FF, 0xA, + 8, 0xA, 0xB +}; + +u32 D_80031DF4[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x32C832FF, 0x3C, 8, 0x3C, + 0xD, 0x323232FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031E40[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x323232FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031E78[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0xDC2828FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031EB0[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x32C832FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031EE8[] = {7, 0, 0xD, 0xFF, 0, 0xC}; + +u32 dword_D_80031F00[] = { + 5, 0x400, 0, 6, 0x400, 0, 8, 1, + 5, 0x1000, 0x14, 6, 0x1000, 0x14, 8, 0x14, + 0xB +}; + +u32 dword_D_80031F44[] = { + 7, 0, 1, 0x400, 0x14, 8, 0x14, 2, + 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, + 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, + 8, 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, + 8, 0x14, 0xB +}; + +u32 D_80031FD0[] = { + 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 +}; + +u32 D_80032010 = 0; +u32 D_80032014 = 0; +u32 D_80032018 = 0; +u32 D_8003201C = 0; +u32 D_80032020 = 0; +u32 D_80032024 = 0; +u32 D_80032028 = 0; +u32 D_8003202C = 0; +u32 D_80032030 = 0; +u32 D_80032034 = 0; +u32 D_80032038 = 0; +u32 D_8003203C = 0; +u32 D_80032040 = 0; +u32 D_80032044 = 0; +u32 D_80032048 = 0; + +u32 D_8003204C = 0x7FFF; +u32 D_80032050 = 0x7FFF; +u32 D_80032054 = 0x7FFF; +u32 D_80032058 = 0xFFFF8000; +u32 D_8003205C = 0xFFFF8000; +u32 D_80032060 = 0xFFFF8000; +u32 D_80032064 = 0; +u32 D_80032068 = 0; +u32 D_8003206C = 0; +u32 D_80032070 = 0x7FFF; +u32 D_80032074 = 0x7FFF; +u32 D_80032078 = 0x7FFF; +u32 D_8003207C = 0xFFFF8000; +u32 D_80032080 = 0xFFFF8000; +u32 D_80032084 = 0xFFFF8000; +u32 D_80032088 = 0; +u32 D_8003208C = 0; +u32 D_80032090 = 0; + +u32 blank_07_object[] = { + 0x1000007, 0xFFFF, 1, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000 +}; + +u32 D_8003210C[] = {0xFFFFFF00, 0xFFFFFF00}; + +u32 blank_11_object[] = { + 0x1000011, 0, 0x4000, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000 +}; + +u32 D_8003218C[] = {0xFFFFFF00, 0xFFFFFF00}; + +u32 blank_08_object_preset_1[] = { + 0x1000008, 1, 0, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000,0xFFFFFF00,0xFFFFFF00, + 0xFFFFFF +}; + +u32 D_80032218 = 0; + +u32 blank_08_object_preset_4001[] = { + 0x1000008, 0x4001, 0, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000,0xFFFFFF00,0xFFFFFF00, + 0xFFFFFF +}; + +u32 D_800322A0 = 0; +u32 D_800322A4 = 0; + +u32 D_800322A8[] = {1, 3}; +u32 D_800322B0[] = {0, 0, 0, 0}; +u32 D_800322C0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +//rodata + + +#ifdef NONMATCHING +void sub_GAME_7F03FB70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FB70 +/* 0746A0 7F03FB70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0746A4 7F03FB74 AFBF001C */ sw $ra, 0x1c($sp) +/* 0746A8 7F03FB78 AFB00018 */ sw $s0, 0x18($sp) +/* 0746AC 7F03FB7C 8C8E0000 */ lw $t6, ($a0) +/* 0746B0 7F03FB80 00808025 */ move $s0, $a0 +/* 0746B4 7F03FB84 31CF0080 */ andi $t7, $t6, 0x80 +/* 0746B8 7F03FB88 51E00014 */ beql $t7, $zero, .L7F03FBDC +/* 0746BC 7F03FB8C 8E180000 */ lw $t8, ($s0) +/* 0746C0 7F03FB90 8C840098 */ lw $a0, 0x98($a0) +/* 0746C4 7F03FB94 50800008 */ beql $a0, $zero, .L7F03FBB8 +/* 0746C8 7F03FB98 8E04009C */ lw $a0, 0x9c($s0) +/* 0746CC 7F03FB9C 0C00237C */ jal sfxGetArg0Unk3F +/* 0746D0 7F03FBA0 00000000 */ nop +/* 0746D4 7F03FBA4 50400004 */ beql $v0, $zero, .L7F03FBB8 +/* 0746D8 7F03FBA8 8E04009C */ lw $a0, 0x9c($s0) +/* 0746DC 7F03FBAC 0C002408 */ jal sfxDeactivate +/* 0746E0 7F03FBB0 8E040098 */ lw $a0, 0x98($s0) +/* 0746E4 7F03FBB4 8E04009C */ lw $a0, 0x9c($s0) +.L7F03FBB8: +/* 0746E8 7F03FBB8 50800008 */ beql $a0, $zero, .L7F03FBDC +/* 0746EC 7F03FBBC 8E180000 */ lw $t8, ($s0) +/* 0746F0 7F03FBC0 0C00237C */ jal sfxGetArg0Unk3F +/* 0746F4 7F03FBC4 00000000 */ nop +/* 0746F8 7F03FBC8 50400004 */ beql $v0, $zero, .L7F03FBDC +/* 0746FC 7F03FBCC 8E180000 */ lw $t8, ($s0) +/* 074700 7F03FBD0 0C002408 */ jal sfxDeactivate +/* 074704 7F03FBD4 8E04009C */ lw $a0, 0x9c($s0) +/* 074708 7F03FBD8 8E180000 */ lw $t8, ($s0) +.L7F03FBDC: +/* 07470C 7F03FBDC 3C018000 */ lui $at, 0x8000 +/* 074710 7F03FBE0 0301C825 */ or $t9, $t8, $at +/* 074714 7F03FBE4 AE190000 */ sw $t9, ($s0) +/* 074718 7F03FBE8 8FBF001C */ lw $ra, 0x1c($sp) +/* 07471C 7F03FBEC 8FB00018 */ lw $s0, 0x18($sp) +/* 074720 7F03FBF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 074724 7F03FBF4 03E00008 */ jr $ra +/* 074728 7F03FBF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FBFC(void) { + +} +#else +GLOBAL_ASM( + +.text +glabel sub_GAME_7F03FBFC +/* 07472C 7F03FBFC 44800000 */ mtc1 $zero, $f0 +/* 074730 7F03FC00 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 074734 7F03FC04 44811000 */ mtc1 $at, $f2 +/* 074738 7F03FC08 AC800000 */ sw $zero, ($a0) +/* 07473C 7F03FC0C AC800088 */ sw $zero, 0x88($a0) +/* 074740 7F03FC10 3C018005 */ lui $at, %hi(D_80052A48) +/* 074744 7F03FC14 E4800004 */ swc1 $f0, 4($a0) +/* 074748 7F03FC18 E4800008 */ swc1 $f0, 8($a0) +/* 07474C 7F03FC1C E480000C */ swc1 $f0, 0xc($a0) +/* 074750 7F03FC20 E4800010 */ swc1 $f0, 0x10($a0) +/* 074754 7F03FC24 E4800014 */ swc1 $f0, 0x14($a0) +/* 074758 7F03FC28 E4800018 */ swc1 $f0, 0x18($a0) +/* 07475C 7F03FC2C E480001C */ swc1 $f0, 0x1c($a0) +/* 074760 7F03FC30 E4820060 */ swc1 $f2, 0x60($a0) +/* 074764 7F03FC34 C4242A48 */ lwc1 $f4, %lo(D_80052A48)($at) +/* 074768 7F03FC38 2402FFFF */ li $v0, -1 +/* 07476C 7F03FC3C 240E0001 */ li $t6, 1 +/* 074770 7F03FC40 AC800090 */ sw $zero, 0x90($a0) +/* 074774 7F03FC44 AC8200A0 */ sw $v0, 0xa0($a0) +/* 074778 7F03FC48 AC8000A4 */ sw $zero, 0xa4($a0) +/* 07477C 7F03FC4C AC8000A8 */ sw $zero, 0xa8($a0) +/* 074780 7F03FC50 AC8200AC */ sw $v0, 0xac($a0) +/* 074784 7F03FC54 AC8E00B8 */ sw $t6, 0xb8($a0) +/* 074788 7F03FC58 AC8000BC */ sw $zero, 0xbc($a0) +/* 07478C 7F03FC5C AC8000E0 */ sw $zero, 0xe0($a0) +/* 074790 7F03FC60 AC8000E4 */ sw $zero, 0xe4($a0) +/* 074794 7F03FC64 AC8000E8 */ sw $zero, 0xe8($a0) +/* 074798 7F03FC68 E4800094 */ swc1 $f0, 0x94($a0) +/* 07479C 7F03FC6C E48200C0 */ swc1 $f2, 0xc0($a0) +/* 0747A0 7F03FC70 E48200C4 */ swc1 $f2, 0xc4($a0) +/* 0747A4 7F03FC74 E48200C8 */ swc1 $f2, 0xc8($a0) +/* 0747A8 7F03FC78 03E00008 */ jr $ra +/* 0747AC 7F03FC7C E484008C */ swc1 $f4, 0x8c($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FC80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FC80 +/* 0747B0 7F03FC80 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0747B4 7F03FC84 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 0747B8 7F03FC88 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) +/* 0747BC 7F03FC8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0747C0 7F03FC90 2406FFFF */ li $a2, -1 +/* 0747C4 7F03FC94 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 +/* 0747C8 7F03FC98 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 0747CC 7F03FC9C 00002825 */ move $a1, $zero +/* 0747D0 7F03FCA0 3C038000 */ lui $v1, 0x8000 +.L7F03FCA4: +/* 0747D4 7F03FCA4 8C4E0000 */ lw $t6, ($v0) +/* 0747D8 7F03FCA8 244200EC */ addiu $v0, $v0, 0xec +/* 0747DC 7F03FCAC 0044082B */ sltu $at, $v0, $a0 +/* 0747E0 7F03FCB0 01C37824 */ and $t7, $t6, $v1 +/* 0747E4 7F03FCB4 11E00007 */ beqz $t7, .L7F03FCD4 +/* 0747E8 7F03FCB8 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 0747EC 7F03FCBC 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 0747F0 7F03FCC0 00E52021 */ addu $a0, $a3, $a1 +/* 0747F4 7F03FCC4 0FC0FEFF */ jal sub_GAME_7F03FBFC +/* 0747F8 7F03FCC8 AFA40020 */ sw $a0, 0x20($sp) +/* 0747FC 7F03FCCC 10000032 */ b .L7F03FD98 +/* 074800 7F03FCD0 8FA20020 */ lw $v0, 0x20($sp) +.L7F03FCD4: +/* 074804 7F03FCD4 1420FFF3 */ bnez $at, .L7F03FCA4 +/* 074808 7F03FCD8 24A500EC */ addiu $a1, $a1, 0xec +/* 07480C 7F03FCDC 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 074810 7F03FCE0 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 074814 7F03FCE4 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 074818 7F03FCE8 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 07481C 7F03FCEC 00001825 */ move $v1, $zero +/* 074820 7F03FCF0 240500EC */ li $a1, 236 +/* 074824 7F03FCF4 24040014 */ li $a0, 20 +.L7F03FCF8: +/* 074828 7F03FCF8 8C5800E4 */ lw $t8, 0xe4($v0) +/* 07482C 7F03FCFC 5300000D */ beql $t8, $zero, .L7F03FD34 +/* 074830 7F03FD00 24630001 */ addiu $v1, $v1, 1 +/* 074834 7F03FD04 04C2000A */ bltzl $a2, .L7F03FD30 +/* 074838 7F03FD08 00603025 */ move $a2, $v1 +/* 07483C 7F03FD0C 00C50019 */ multu $a2, $a1 +/* 074840 7F03FD10 8C5900E8 */ lw $t9, 0xe8($v0) +/* 074844 7F03FD14 00004812 */ mflo $t1 +/* 074848 7F03FD18 00E95021 */ addu $t2, $a3, $t1 +/* 07484C 7F03FD1C 8D4B00E8 */ lw $t3, 0xe8($t2) +/* 074850 7F03FD20 032B082A */ slt $at, $t9, $t3 +/* 074854 7F03FD24 50200003 */ beql $at, $zero, .L7F03FD34 +/* 074858 7F03FD28 24630001 */ addiu $v1, $v1, 1 +/* 07485C 7F03FD2C 00603025 */ move $a2, $v1 +.L7F03FD30: +/* 074860 7F03FD30 24630001 */ addiu $v1, $v1, 1 +.L7F03FD34: +/* 074864 7F03FD34 1464FFF0 */ bne $v1, $a0, .L7F03FCF8 +/* 074868 7F03FD38 244200EC */ addiu $v0, $v0, 0xec +/* 07486C 7F03FD3C 04C00016 */ bltz $a2, .L7F03FD98 +/* 074870 7F03FD40 00001025 */ move $v0, $zero +/* 074874 7F03FD44 00C50019 */ multu $a2, $a1 +/* 074878 7F03FD48 00001812 */ mflo $v1 +/* 07487C 7F03FD4C 00E34021 */ addu $t0, $a3, $v1 +/* 074880 7F03FD50 8D0C00E4 */ lw $t4, 0xe4($t0) +/* 074884 7F03FD54 8D840010 */ lw $a0, 0x10($t4) +/* 074888 7F03FD58 AFA80020 */ sw $t0, 0x20($sp) +/* 07488C 7F03FD5C 0FC1033C */ jal sub_GAME_7F040CF0 +/* 074890 7F03FD60 AFA30024 */ sw $v1, 0x24($sp) +/* 074894 7F03FD64 8FA80020 */ lw $t0, 0x20($sp) +/* 074898 7F03FD68 8FA30024 */ lw $v1, 0x24($sp) +/* 07489C 7F03FD6C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 0748A0 7F03FD70 8D0200E4 */ lw $v0, 0xe4($t0) +/* 0748A4 7F03FD74 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 0748A8 7F03FD78 00E32021 */ addu $a0, $a3, $v1 +/* 0748AC 7F03FD7C 8C4D0064 */ lw $t5, 0x64($v0) +/* 0748B0 7F03FD80 35AE0004 */ ori $t6, $t5, 4 +/* 0748B4 7F03FD84 AC4E0064 */ sw $t6, 0x64($v0) +/* 0748B8 7F03FD88 0FC0FEFF */ jal sub_GAME_7F03FBFC +/* 0748BC 7F03FD8C AFA4001C */ sw $a0, 0x1c($sp) +/* 0748C0 7F03FD90 10000001 */ b .L7F03FD98 +/* 0748C4 7F03FD94 8FA2001C */ lw $v0, 0x1c($sp) +.L7F03FD98: +/* 0748C8 7F03FD98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0748CC 7F03FD9C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0748D0 7F03FDA0 03E00008 */ jr $ra +/* 0748D4 7F03FDA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FDA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FDA8 +/* 0748D8 7F03FDA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0748DC 7F03FDAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0748E0 7F03FDB0 8C830004 */ lw $v1, 4($a0) +/* 0748E4 7F03FDB4 8C620064 */ lw $v0, 0x64($v1) +/* 0748E8 7F03FDB8 304E0040 */ andi $t6, $v0, 0x40 +/* 0748EC 7F03FDBC 11C00007 */ beqz $t6, .L7F03FDDC +/* 0748F0 7F03FDC0 30580080 */ andi $t8, $v0, 0x80 +/* 0748F4 7F03FDC4 0FC0FF20 */ jal sub_GAME_7F03FC80 +/* 0748F8 7F03FDC8 AFA3001C */ sw $v1, 0x1c($sp) +/* 0748FC 7F03FDCC 8FA3001C */ lw $v1, 0x1c($sp) +/* 074900 7F03FDD0 8C6F006C */ lw $t7, 0x6c($v1) +/* 074904 7F03FDD4 1000000B */ b .L7F03FE04 +/* 074908 7F03FDD8 ADE20044 */ sw $v0, 0x44($t7) +.L7F03FDDC: +/* 07490C 7F03FDDC 5700000A */ bnezl $t8, .L7F03FE08 +/* 074910 7F03FDE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 074914 7F03FDE4 0FC0FF20 */ jal sub_GAME_7F03FC80 +/* 074918 7F03FDE8 AFA3001C */ sw $v1, 0x1c($sp) +/* 07491C 7F03FDEC 8FA3001C */ lw $v1, 0x1c($sp) +/* 074920 7F03FDF0 10400004 */ beqz $v0, .L7F03FE04 +/* 074924 7F03FDF4 AC62006C */ sw $v0, 0x6c($v1) +/* 074928 7F03FDF8 8C790064 */ lw $t9, 0x64($v1) +/* 07492C 7F03FDFC 37280080 */ ori $t0, $t9, 0x80 +/* 074930 7F03FE00 AC680064 */ sw $t0, 0x64($v1) +.L7F03FE04: +/* 074934 7F03FE04 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03FE08: +/* 074938 7F03FE08 27BD0020 */ addiu $sp, $sp, 0x20 +/* 07493C 7F03FE0C 03E00008 */ jr $ra +/* 074940 7F03FE10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE14 +/* 074944 7F03FE14 8C820004 */ lw $v0, 4($a0) +/* 074948 7F03FE18 00001825 */ move $v1, $zero +/* 07494C 7F03FE1C 8C450064 */ lw $a1, 0x64($v0) +/* 074950 7F03FE20 30AE0040 */ andi $t6, $a1, 0x40 +/* 074954 7F03FE24 11C00004 */ beqz $t6, .L7F03FE38 +/* 074958 7F03FE28 30B80080 */ andi $t8, $a1, 0x80 +/* 07495C 7F03FE2C 8C4F006C */ lw $t7, 0x6c($v0) +/* 074960 7F03FE30 10000004 */ b .L7F03FE44 +/* 074964 7F03FE34 8DE30044 */ lw $v1, 0x44($t7) +.L7F03FE38: +/* 074968 7F03FE38 13000002 */ beqz $t8, .L7F03FE44 +/* 07496C 7F03FE3C 00000000 */ nop +/* 074970 7F03FE40 8C43006C */ lw $v1, 0x6c($v0) +.L7F03FE44: +/* 074974 7F03FE44 1060000E */ beqz $v1, .L7F03FE80 +/* 074978 7F03FE48 00000000 */ nop +/* 07497C 7F03FE4C 8C790000 */ lw $t9, ($v1) +/* 074980 7F03FE50 240A00FF */ li $t2, 255 +/* 074984 7F03FE54 240B00FF */ li $t3, 255 +/* 074988 7F03FE58 37280004 */ ori $t0, $t9, 4 +/* 07498C 7F03FE5C AC680000 */ sw $t0, ($v1) +/* 074990 7F03FE60 8C820014 */ lw $v0, 0x14($a0) +/* 074994 7F03FE64 50400006 */ beql $v0, $zero, .L7F03FE80 +/* 074998 7F03FE68 A06B00CC */ sb $t3, 0xcc($v1) +/* 07499C 7F03FE6C 90490003 */ lbu $t1, 3($v0) +/* 0749A0 7F03FE70 A06A00CD */ sb $t2, 0xcd($v1) +/* 0749A4 7F03FE74 03E00008 */ jr $ra +/* 0749A8 7F03FE78 A06900CC */ sb $t1, 0xcc($v1) + +/* 0749AC 7F03FE7C A06B00CC */ sb $t3, 0xcc($v1) +.L7F03FE80: +/* 0749B0 7F03FE80 03E00008 */ jr $ra +/* 0749B4 7F03FE84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE88(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE88 +/* 0749B8 7F03FE88 8C8E0000 */ lw $t6, ($a0) +/* 0749BC 7F03FE8C 35CF0001 */ ori $t7, $t6, 1 +/* 0749C0 7F03FE90 03E00008 */ jr $ra +/* 0749C4 7F03FE94 AC8F0000 */ sw $t7, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE98 +/* 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 +void sub_GAME_7F03FF60(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void do_something_if_object_destroyed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel do_something_if_object_destroyed +/* 074AF0 7F03FFC0 908E0002 */ lbu $t6, 2($a0) +/* 074AF4 7F03FFC4 31CF0080 */ andi $t7, $t6, 0x80 +/* 074AF8 7F03FFC8 55E00004 */ bnezl $t7, .L7F03FFDC +/* 074AFC 7F03FFCC C4840070 */ lwc1 $f4, 0x70($a0) +/* 074B00 7F03FFD0 03E00008 */ jr $ra +/* 074B04 7F03FFD4 00001025 */ move $v0, $zero + +/* 074B08 7F03FFD8 C4840070 */ lwc1 $f4, 0x70($a0) +.L7F03FFDC: +/* 074B0C 7F03FFDC 4600218D */ trunc.w.s $f6, $f4 +/* 074B10 7F03FFE0 44023000 */ mfc1 $v0, $f6 +/* 074B14 7F03FFE4 00000000 */ nop +/* 074B18 7F03FFE8 0002C883 */ sra $t9, $v0, 2 +/* 074B1C 7F03FFEC 27220001 */ addiu $v0, $t9, 1 +/* 074B20 7F03FFF0 03E00008 */ jr $ra +/* 074B24 7F03FFF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FFF8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FFF8 +/* 074B28 7F03FFF8 8C8E0000 */ lw $t6, ($a0) +/* 074B2C 7F03FFFC 8DC20014 */ lw $v0, 0x14($t6) +/* 074B30 7F040000 5040001B */ beql $v0, $zero, .L7F040070 +/* 074B34 7F040004 00001025 */ move $v0, $zero +/* 074B38 7F040008 1040000A */ beqz $v0, .L7F040034 +/* 074B3C 7F04000C 00401825 */ move $v1, $v0 +/* 074B40 7F040010 2405000A */ li $a1, 10 +/* 074B44 7F040014 946F0000 */ lhu $t7, ($v1) +.L7F040018: +/* 074B48 7F040018 54AF0004 */ bnel $a1, $t7, .L7F04002C +/* 074B4C 7F04001C 8C63000C */ lw $v1, 0xc($v1) +/* 074B50 7F040020 03E00008 */ jr $ra +/* 074B54 7F040024 8C620004 */ lw $v0, 4($v1) + +/* 074B58 7F040028 8C63000C */ lw $v1, 0xc($v1) +.L7F04002C: +/* 074B5C 7F04002C 5460FFFA */ bnezl $v1, .L7F040018 +/* 074B60 7F040030 946F0000 */ lhu $t7, ($v1) +.L7F040034: +/* 074B64 7F040034 8C440014 */ lw $a0, 0x14($v0) +/* 074B68 7F040038 2405000A */ li $a1, 10 +/* 074B6C 7F04003C 5080000C */ beql $a0, $zero, .L7F040070 +/* 074B70 7F040040 00001025 */ move $v0, $zero +/* 074B74 7F040044 10800009 */ beqz $a0, .L7F04006C +/* 074B78 7F040048 00801825 */ move $v1, $a0 +/* 074B7C 7F04004C 94780000 */ lhu $t8, ($v1) +.L7F040050: +/* 074B80 7F040050 54B80004 */ bnel $a1, $t8, .L7F040064 +/* 074B84 7F040054 8C63000C */ lw $v1, 0xc($v1) +/* 074B88 7F040058 03E00008 */ jr $ra +/* 074B8C 7F04005C 8C620004 */ lw $v0, 4($v1) + +/* 074B90 7F040060 8C63000C */ lw $v1, 0xc($v1) +.L7F040064: +/* 074B94 7F040064 5460FFFA */ bnezl $v1, .L7F040050 +/* 074B98 7F040068 94780000 */ lhu $t8, ($v1) +.L7F04006C: +/* 074B9C 7F04006C 00001025 */ move $v0, $zero +.L7F040070: +/* 074BA0 7F040070 03E00008 */ jr $ra +/* 074BA4 7F040074 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040078(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040078 +/* 074BA8 7F040078 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074BAC 7F04007C AFBF0014 */ sw $ra, 0x14($sp) +/* 074BB0 7F040080 8C8E0014 */ lw $t6, 0x14($a0) +/* 074BB4 7F040084 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 074BB8 7F040088 8DC40008 */ lw $a0, 8($t6) +/* 074BBC 7F04008C 8FBF0014 */ lw $ra, 0x14($sp) +/* 074BC0 7F040090 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074BC4 7F040094 03E00008 */ jr $ra +/* 074BC8 7F040098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_color_shading_from_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_color_shading_from_tile +/* 074BCC 7F04009C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074BD0 7F0400A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 074BD4 7F0400A4 AFA40018 */ sw $a0, 0x18($sp) +/* 074BD8 7F0400A8 00807025 */ move $t6, $a0 +/* 074BDC 7F0400AC 00A03825 */ move $a3, $a1 +/* 074BE0 7F0400B0 8DC50008 */ lw $a1, 8($t6) +/* 074BE4 7F0400B4 8DC60010 */ lw $a2, 0x10($t6) +/* 074BE8 7F0400B8 8C840014 */ lw $a0, 0x14($a0) +/* 074BEC 7F0400BC 0FC2CB0B */ jal copy_tile_RGB_as_24bit +/* 074BF0 7F0400C0 AFA7001C */ sw $a3, 0x1c($sp) +/* 074BF4 7F0400C4 8FA7001C */ lw $a3, 0x1c($sp) +/* 074BF8 7F0400C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 074BFC 7F0400CC 44814000 */ mtc1 $at, $f8 +/* 074C00 7F0400D0 90EB0002 */ lbu $t3, 2($a3) +/* 074C04 7F0400D4 90ED0000 */ lbu $t5, ($a3) +/* 074C08 7F0400D8 90FF0001 */ lbu $ra, 1($a3) +/* 074C0C 7F0400DC 000B7880 */ sll $t7, $t3, 2 +/* 074C10 7F0400E0 000DC080 */ sll $t8, $t5, 2 +/* 074C14 7F0400E4 01EB7821 */ addu $t7, $t7, $t3 +/* 074C18 7F0400E8 030DC021 */ addu $t8, $t8, $t5 +/* 074C1C 7F0400EC 001F7080 */ sll $t6, $ra, 2 +/* 074C20 7F0400F0 0018C100 */ sll $t8, $t8, 4 +/* 074C24 7F0400F4 000F7880 */ sll $t7, $t7, 2 +/* 074C28 7F0400F8 01DF7021 */ addu $t6, $t6, $ra +/* 074C2C 7F0400FC 000E70C0 */ sll $t6, $t6, 3 +/* 074C30 7F040100 01EB7821 */ addu $t7, $t7, $t3 +/* 074C34 7F040104 030DC023 */ subu $t8, $t8, $t5 +/* 074C38 7F040108 01F8C821 */ addu $t9, $t7, $t8 +/* 074C3C 7F04010C 01DF7023 */ subu $t6, $t6, $ra +/* 074C40 7F040110 000E7080 */ sll $t6, $t6, 2 +/* 074C44 7F040114 032E1821 */ addu $v1, $t9, $t6 +/* 074C48 7F040118 00037A03 */ sra $t7, $v1, 8 +/* 074C4C 7F04011C 241800FF */ li $t8, 255 +/* 074C50 7F040120 030FC823 */ subu $t9, $t8, $t7 +/* 074C54 7F040124 44992000 */ mtc1 $t9, $f4 +/* 074C58 7F040128 240F0001 */ li $t7, 1 +/* 074C5C 7F04012C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 074C60 7F040130 468021A0 */ cvt.s.w $f6, $f4 +/* 074C64 7F040134 00001025 */ move $v0, $zero +/* 074C68 7F040138 00006025 */ move $t4, $zero +/* 074C6C 7F04013C 46083282 */ mul.s $f10, $f6, $f8 +/* 074C70 7F040140 444EF800 */ cfc1 $t6, $31 +/* 074C74 7F040144 44CFF800 */ ctc1 $t7, $31 +/* 074C78 7F040148 00000000 */ nop +/* 074C7C 7F04014C 46005424 */ cvt.w.s $f16, $f10 +/* 074C80 7F040150 444FF800 */ cfc1 $t7, $31 +/* 074C84 7F040154 00000000 */ nop +/* 074C88 7F040158 31EF0078 */ andi $t7, $t7, 0x78 +/* 074C8C 7F04015C 51E00013 */ beql $t7, $zero, .L7F0401AC +/* 074C90 7F040160 440F8000 */ mfc1 $t7, $f16 +/* 074C94 7F040164 44818000 */ mtc1 $at, $f16 +/* 074C98 7F040168 240F0001 */ li $t7, 1 +/* 074C9C 7F04016C 46105401 */ sub.s $f16, $f10, $f16 +/* 074CA0 7F040170 44CFF800 */ ctc1 $t7, $31 +/* 074CA4 7F040174 00000000 */ nop +/* 074CA8 7F040178 46008424 */ cvt.w.s $f16, $f16 +/* 074CAC 7F04017C 444FF800 */ cfc1 $t7, $31 +/* 074CB0 7F040180 00000000 */ nop +/* 074CB4 7F040184 31EF0078 */ andi $t7, $t7, 0x78 +/* 074CB8 7F040188 15E00005 */ bnez $t7, .L7F0401A0 +/* 074CBC 7F04018C 00000000 */ nop +/* 074CC0 7F040190 440F8000 */ mfc1 $t7, $f16 +/* 074CC4 7F040194 3C018000 */ lui $at, 0x8000 +/* 074CC8 7F040198 10000007 */ b .L7F0401B8 +/* 074CCC 7F04019C 01E17825 */ or $t7, $t7, $at +.L7F0401A0: +/* 074CD0 7F0401A0 10000005 */ b .L7F0401B8 +/* 074CD4 7F0401A4 240FFFFF */ li $t7, -1 +/* 074CD8 7F0401A8 440F8000 */ mfc1 $t7, $f16 +.L7F0401AC: +/* 074CDC 7F0401AC 00000000 */ nop +/* 074CE0 7F0401B0 05E0FFFB */ bltz $t7, .L7F0401A0 +/* 074CE4 7F0401B4 00000000 */ nop +.L7F0401B8: +/* 074CE8 7F0401B8 44CEF800 */ ctc1 $t6, $31 +/* 074CEC 7F0401BC 01BF082A */ slt $at, $t5, $ra +/* 074CF0 7F0401C0 10200003 */ beqz $at, .L7F0401D0 +/* 074CF4 7F0401C4 A0EF0003 */ sb $t7, 3($a3) +/* 074CF8 7F0401C8 10000002 */ b .L7F0401D4 +/* 074CFC 7F0401CC 24020001 */ li $v0, 1 +.L7F0401D0: +/* 074D00 7F0401D0 240C0001 */ li $t4, 1 +.L7F0401D4: +/* 074D04 7F0401D4 00E25021 */ addu $t2, $a3, $v0 +/* 074D08 7F0401D8 91460000 */ lbu $a2, ($t2) +/* 074D0C 7F0401DC 00402825 */ move $a1, $v0 +/* 074D10 7F0401E0 00ECC021 */ addu $t8, $a3, $t4 +/* 074D14 7F0401E4 00CB082A */ slt $at, $a2, $t3 +/* 074D18 7F0401E8 50200005 */ beql $at, $zero, .L7F040200 +/* 074D1C 7F0401EC 93190000 */ lbu $t9, ($t8) +/* 074D20 7F0401F0 24EA0002 */ addiu $t2, $a3, 2 +/* 074D24 7F0401F4 10000009 */ b .L7F04021C +/* 074D28 7F0401F8 91460000 */ lbu $a2, ($t2) +/* 074D2C 7F0401FC 93190000 */ lbu $t9, ($t8) +.L7F040200: +/* 074D30 7F040200 01802825 */ move $a1, $t4 +/* 074D34 7F040204 032B082A */ slt $at, $t9, $t3 +/* 074D38 7F040208 50200004 */ beql $at, $zero, .L7F04021C +/* 074D3C 7F04020C 240C0002 */ li $t4, 2 +/* 074D40 7F040210 10000002 */ b .L7F04021C +/* 074D44 7F040214 24050002 */ li $a1, 2 +/* 074D48 7F040218 240C0002 */ li $t4, 2 +.L7F04021C: +/* 074D4C 7F04021C 18C0001B */ blez $a2, .L7F04028C +/* 074D50 7F040220 00E51821 */ addu $v1, $a3, $a1 +/* 074D54 7F040224 00EC1021 */ addu $v0, $a3, $t4 +/* 074D58 7F040228 904E0000 */ lbu $t6, ($v0) +/* 074D5C 7F04022C 906F0000 */ lbu $t7, ($v1) +/* 074D60 7F040230 A0400000 */ sb $zero, ($v0) +/* 074D64 7F040234 00CE2023 */ subu $a0, $a2, $t6 +/* 074D68 7F040238 01E40019 */ multu $t7, $a0 +/* 074D6C 7F04023C 00804825 */ move $t1, $a0 +/* 074D70 7F040240 0000C012 */ mflo $t8 +/* 074D74 7F040244 00000000 */ nop +/* 074D78 7F040248 00000000 */ nop +/* 074D7C 7F04024C 0306001A */ div $zero, $t8, $a2 +/* 074D80 7F040250 00004012 */ mflo $t0 +/* 074D84 7F040254 A0680000 */ sb $t0, ($v1) +/* 074D88 7F040258 A1440000 */ sb $a0, ($t2) +/* 074D8C 7F04025C 14C00002 */ bnez $a2, .L7F040268 +/* 074D90 7F040260 00000000 */ nop +/* 074D94 7F040264 0007000D */ break 7 +.L7F040268: +/* 074D98 7F040268 2401FFFF */ li $at, -1 +/* 074D9C 7F04026C 14C10004 */ bne $a2, $at, .L7F040280 +/* 074DA0 7F040270 3C018000 */ lui $at, 0x8000 +/* 074DA4 7F040274 17010002 */ bne $t8, $at, .L7F040280 +/* 074DA8 7F040278 00000000 */ nop +/* 074DAC 7F04027C 0006000D */ break 6 +.L7F040280: +/* 074DB0 7F040280 90FF0001 */ lbu $ra, 1($a3) +/* 074DB4 7F040284 90ED0000 */ lbu $t5, ($a3) +/* 074DB8 7F040288 90EB0002 */ lbu $t3, 2($a3) +.L7F04028C: +/* 074DBC 7F04028C 000DC842 */ srl $t9, $t5, 1 +/* 074DC0 7F040290 001F7042 */ srl $t6, $ra, 1 +/* 074DC4 7F040294 000B7842 */ srl $t7, $t3, 1 +/* 074DC8 7F040298 A0F90000 */ sb $t9, ($a3) +/* 074DCC 7F04029C A0EE0001 */ sb $t6, 1($a3) +/* 074DD0 7F0402A0 A0EF0002 */ sb $t7, 2($a3) +/* 074DD4 7F0402A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 074DD8 7F0402A8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074DDC 7F0402AC 03E00008 */ jr $ra +/* 074DE0 7F0402B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0402B4(void) { + +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040384(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040484(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040484 +/* 074FB4 7F040484 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 074FB8 7F040488 AFBF001C */ sw $ra, 0x1c($sp) +/* 074FBC 7F04048C AFB00018 */ sw $s0, 0x18($sp) +/* 074FC0 7F040490 8C8E0068 */ lw $t6, 0x68($a0) +/* 074FC4 7F040494 00808025 */ move $s0, $a0 +/* 074FC8 7F040498 51C00028 */ beql $t6, $zero, .L7F04053C +/* 074FCC 7F04049C 8FBF001C */ lw $ra, 0x1c($sp) +/* 074FD0 7F0404A0 0FC1001E */ jal sub_GAME_7F040078 +/* 074FD4 7F0404A4 00000000 */ nop +/* 074FD8 7F0404A8 AFA20064 */ sw $v0, 0x64($sp) +/* 074FDC 7F0404AC 26040018 */ addiu $a0, $s0, 0x18 +/* 074FE0 7F0404B0 0FC16008 */ jal matrix_4x4_copy +/* 074FE4 7F0404B4 27A50024 */ addiu $a1, $sp, 0x24 +/* 074FE8 7F0404B8 26040058 */ addiu $a0, $s0, 0x58 +/* 074FEC 7F0404BC 0FC16266 */ jal matrix_4x4_set_position +/* 074FF0 7F0404C0 27A50024 */ addiu $a1, $sp, 0x24 +/* 074FF4 7F0404C4 8E070068 */ lw $a3, 0x68($s0) +/* 074FF8 7F0404C8 8FA40064 */ lw $a0, 0x64($sp) +/* 074FFC 7F0404CC 27A50024 */ addiu $a1, $sp, 0x24 +/* 075000 7F0404D0 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 075004 7F0404D4 24E60004 */ addiu $a2, $a3, 4 +/* 075008 7F0404D8 8FA40064 */ lw $a0, 0x64($sp) +/* 07500C 7F0404DC 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 075010 7F0404E0 27A50024 */ addiu $a1, $sp, 0x24 +/* 075014 7F0404E4 C604005C */ lwc1 $f4, 0x5c($s0) +/* 075018 7F0404E8 8E0F0068 */ lw $t7, 0x68($s0) +/* 07501C 7F0404EC 27A50024 */ addiu $a1, $sp, 0x24 +/* 075020 7F0404F0 46040180 */ add.s $f6, $f0, $f4 +/* 075024 7F0404F4 E5E60048 */ swc1 $f6, 0x48($t7) +/* 075028 7F0404F8 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 07502C 7F0404FC 8FA40064 */ lw $a0, 0x64($sp) +/* 075030 7F040500 C608005C */ lwc1 $f8, 0x5c($s0) +/* 075034 7F040504 8E180068 */ lw $t8, 0x68($s0) +/* 075038 7F040508 24010028 */ li $at, 40 +/* 07503C 7F04050C 46080280 */ add.s $f10, $f0, $f8 +/* 075040 7F040510 E70A0044 */ swc1 $f10, 0x44($t8) +/* 075044 7F040514 92190003 */ lbu $t9, 3($s0) +/* 075048 7F040518 57210008 */ bnel $t9, $at, .L7F04053C +/* 07504C 7F04051C 8FBF001C */ lw $ra, 0x1c($sp) +/* 075050 7F040520 8E070068 */ lw $a3, 0x68($s0) +/* 075054 7F040524 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 075058 7F040528 44819000 */ mtc1 $at, $f18 +/* 07505C 7F04052C C4F00048 */ lwc1 $f16, 0x48($a3) +/* 075060 7F040530 46128101 */ sub.s $f4, $f16, $f18 +/* 075064 7F040534 E4E40048 */ swc1 $f4, 0x48($a3) +/* 075068 7F040538 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04053C: +/* 07506C 7F04053C 8FB00018 */ lw $s0, 0x18($sp) +/* 075070 7F040540 27BD0068 */ addiu $sp, $sp, 0x68 +/* 075074 7F040544 03E00008 */ jr $ra +/* 075078 7F040548 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void init_standard_object(void) { + +} +#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 remove_last_obj_pos_data_entry +/* 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 set_obj_instance_controller_scale +/* 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 set_last_obj_pos_data +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0406F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0406F8 +/* 075228 7F0406F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07522C 7F0406FC AFBF0014 */ sw $ra, 0x14($sp) +/* 075230 7F040700 00003025 */ move $a2, $zero +/* 075234 7F040704 0FC10153 */ jal init_standard_object +/* 075238 7F040708 00003825 */ move $a3, $zero +/* 07523C 7F04070C 8FBF0014 */ lw $ra, 0x14($sp) +/* 075240 7F040710 27BD0018 */ addiu $sp, $sp, 0x18 +/* 075244 7F040714 03E00008 */ jr $ra +/* 075248 7F040718 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04071C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04071C +/* 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 +void sub_GAME_7F040754(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040754 +/* 075284 7F040754 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 075288 7F040758 AFBF001C */ sw $ra, 0x1c($sp) +/* 07528C 7F04075C AFB00018 */ sw $s0, 0x18($sp) +/* 075290 7F040760 AFA5002C */ sw $a1, 0x2c($sp) +/* 075294 7F040764 AFA70034 */ sw $a3, 0x34($sp) +/* 075298 7F040768 8C820010 */ lw $v0, 0x10($a0) +/* 07529C 7F04076C 00808025 */ move $s0, $a0 +/* 0752A0 7F040770 26050018 */ addiu $a1, $s0, 0x18 +/* 0752A4 7F040774 00C02025 */ move $a0, $a2 +/* 0752A8 7F040778 0FC16008 */ jal matrix_4x4_copy +/* 0752AC 7F04077C AFA20024 */ sw $v0, 0x24($sp) +/* 0752B0 7F040780 8FA3002C */ lw $v1, 0x2c($sp) +/* 0752B4 7F040784 8FA20024 */ lw $v0, 0x24($sp) +/* 0752B8 7F040788 2605007C */ addiu $a1, $s0, 0x7c +/* 0752BC 7F04078C C4600000 */ lwc1 $f0, ($v1) +/* 0752C0 7F040790 E4400008 */ swc1 $f0, 8($v0) +/* 0752C4 7F040794 E6000058 */ swc1 $f0, 0x58($s0) +/* 0752C8 7F040798 C4600004 */ lwc1 $f0, 4($v1) +/* 0752CC 7F04079C E440000C */ swc1 $f0, 0xc($v0) +/* 0752D0 7F0407A0 E600005C */ swc1 $f0, 0x5c($s0) +/* 0752D4 7F0407A4 C4600008 */ lwc1 $f0, 8($v1) +/* 0752D8 7F0407A8 E4400010 */ swc1 $f0, 0x10($v0) +/* 0752DC 7F0407AC E6000060 */ swc1 $f0, 0x60($s0) +/* 0752E0 7F0407B0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0752E4 7F0407B4 AC4E0014 */ sw $t6, 0x14($v0) +/* 0752E8 7F0407B8 0FC100AD */ jal sub_GAME_7F0402B4 +/* 0752EC 7F0407BC 8E040010 */ lw $a0, 0x10($s0) +/* 0752F0 7F0407C0 920F007C */ lbu $t7, 0x7c($s0) +/* 0752F4 7F0407C4 9218007D */ lbu $t8, 0x7d($s0) +/* 0752F8 7F0407C8 9219007E */ lbu $t9, 0x7e($s0) +/* 0752FC 7F0407CC 9208007F */ lbu $t0, 0x7f($s0) +/* 075300 7F0407D0 A20F0078 */ sb $t7, 0x78($s0) +/* 075304 7F0407D4 A2180079 */ sb $t8, 0x79($s0) +/* 075308 7F0407D8 A219007A */ sb $t9, 0x7a($s0) +/* 07530C 7F0407DC A208007B */ sb $t0, 0x7b($s0) +/* 075310 7F0407E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 075314 7F0407E4 8FB00018 */ lw $s0, 0x18($sp) +/* 075318 7F0407E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 07531C 7F0407EC 03E00008 */ jr $ra +/* 075320 7F0407F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0407F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0407F4 +/* 075324 7F0407F4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 075328 7F0407F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 07532C 7F0407FC AFB00018 */ sw $s0, 0x18($sp) +/* 075330 7F040800 AFA40028 */ sw $a0, 0x28($sp) +/* 075334 7F040804 AFA60030 */ sw $a2, 0x30($sp) +/* 075338 7F040808 AFA70034 */ sw $a3, 0x34($sp) +/* 07533C 7F04080C 8C8F0014 */ lw $t7, 0x14($a0) +/* 075340 7F040810 00A08025 */ move $s0, $a1 +/* 075344 7F040814 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 075348 7F040818 8DE40008 */ lw $a0, 8($t7) +/* 07534C 7F04081C AFA20020 */ sw $v0, 0x20($sp) +/* 075350 7F040820 8E060008 */ lw $a2, 8($s0) +/* 075354 7F040824 8E050000 */ lw $a1, ($s0) +/* 075358 7F040828 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07535C 7F04082C 8FA40034 */ lw $a0, 0x34($sp) +/* 075360 7F040830 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 075364 7F040834 44812000 */ mtc1 $at, $f4 +/* 075368 7F040838 00000000 */ nop +/* 07536C 7F04083C 46040180 */ add.s $f6, $f0, $f4 +/* 075370 7F040840 E6060004 */ swc1 $f6, 4($s0) +/* 075374 7F040844 8FA50030 */ lw $a1, 0x30($sp) +/* 075378 7F040848 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07537C 7F04084C 8FA40020 */ lw $a0, 0x20($sp) +/* 075380 7F040850 C6080004 */ lwc1 $f8, 4($s0) +/* 075384 7F040854 02002825 */ move $a1, $s0 +/* 075388 7F040858 46004281 */ sub.s $f10, $f8, $f0 +/* 07538C 7F04085C E60A0004 */ swc1 $f10, 4($s0) +/* 075390 7F040860 8FA70034 */ lw $a3, 0x34($sp) +/* 075394 7F040864 8FA60030 */ lw $a2, 0x30($sp) +/* 075398 7F040868 0FC101D5 */ jal sub_GAME_7F040754 +/* 07539C 7F04086C 8FA40028 */ lw $a0, 0x28($sp) +/* 0753A0 7F040870 0FC10121 */ jal sub_GAME_7F040484 +/* 0753A4 7F040874 8FA40028 */ lw $a0, 0x28($sp) +/* 0753A8 7F040878 8FBF001C */ lw $ra, 0x1c($sp) +/* 0753AC 7F04087C 8FB00018 */ lw $s0, 0x18($sp) +/* 0753B0 7F040880 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0753B4 7F040884 03E00008 */ jr $ra +/* 0753B8 7F040888 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04088C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800529D0 +.word 0xA000000 /*"\n"*/ +glabel D_800529D4 +.word 0x2E0A0000 /*".\n"*/ +glabel D_800529D8 +.word 0, 0, 0, 0, 0, 0, 0, 0 +.word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +glabel D_80052A38 +.word 0 +glabel D_80052A3C +.word 0 +glabel D_80052A40 +.word 0xA000000 /*"\n"*/ +glabel D_80052A44 +.word 0x3A0A0000 /*":\n"*/ +glabel D_80052A48 +.word 0x3d4ccccd /*0.050000001*/ +.late_rodata +glabel D_80052A4C +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F04088C +/* 0753BC 7F04088C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0753C0 7F040890 AFBF0024 */ sw $ra, 0x24($sp) +/* 0753C4 7F040894 AFB00020 */ sw $s0, 0x20($sp) +/* 0753C8 7F040898 AFA500AC */ sw $a1, 0xac($sp) +/* 0753CC 7F04089C AFA600B0 */ sw $a2, 0xb0($sp) +/* 0753D0 7F0408A0 AFA700B4 */ sw $a3, 0xb4($sp) +/* 0753D4 7F0408A4 8C8E0014 */ lw $t6, 0x14($a0) +/* 0753D8 7F0408A8 00808025 */ move $s0, $a0 +/* 0753DC 7F0408AC 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 0753E0 7F0408B0 8DC40008 */ lw $a0, 8($t6) +/* 0753E4 7F0408B4 AFA200A0 */ sw $v0, 0xa0($sp) +/* 0753E8 7F0408B8 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 0753EC 7F0408BC 00402025 */ move $a0, $v0 +/* 0753F0 7F0408C0 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0753F4 7F0408C4 0FC0FA1B */ jal sub_GAME_7F03E86C +/* 0753F8 7F0408C8 E7A0009C */ swc1 $f0, 0x9c($sp) +/* 0753FC 7F0408CC 8FA700B4 */ lw $a3, 0xb4($sp) +/* 075400 7F0408D0 E7A00098 */ swc1 $f0, 0x98($sp) +/* 075404 7F0408D4 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075408 7F0408D8 AFA70088 */ sw $a3, 0x88($sp) +/* 07540C 7F0408DC 8E020008 */ lw $v0, 8($s0) +/* 075410 7F0408E0 3C018005 */ lui $at, %hi(D_80052A4C) +/* 075414 7F0408E4 27A50048 */ addiu $a1, $sp, 0x48 +/* 075418 7F0408E8 304F0004 */ andi $t7, $v0, 4 +/* 07541C 7F0408EC 11E00018 */ beqz $t7, .L7F040950 +/* 075420 7F0408F0 30580008 */ andi $t8, $v0, 8 +/* 075424 7F0408F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 075428 7F0408F8 C42C2A4C */ lwc1 $f12, %lo(D_80052A4C)($at) +/* 07542C 7F0408FC 8FA400B0 */ lw $a0, 0xb0($sp) +/* 075430 7F040900 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075434 7F040904 27A50048 */ addiu $a1, $sp, 0x48 +/* 075438 7F040908 C7A00098 */ lwc1 $f0, 0x98($sp) +/* 07543C 7F04090C C7A60058 */ lwc1 $f6, 0x58($sp) +/* 075440 7F040910 8FA200B8 */ lw $v0, 0xb8($sp) +/* 075444 7F040914 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 075448 7F040918 46003202 */ mul.s $f8, $f6, $f0 +/* 07544C 7F04091C C4440000 */ lwc1 $f4, ($v0) +/* 075450 7F040920 46009182 */ mul.s $f6, $f18, $f0 +/* 075454 7F040924 46082281 */ sub.s $f10, $f4, $f8 +/* 075458 7F040928 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 07545C 7F04092C C4500004 */ lwc1 $f16, 4($v0) +/* 075460 7F040930 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 075464 7F040934 46068101 */ sub.s $f4, $f16, $f6 +/* 075468 7F040938 46005482 */ mul.s $f18, $f10, $f0 +/* 07546C 7F04093C E7A40090 */ swc1 $f4, 0x90($sp) +/* 075470 7F040940 C4480008 */ lwc1 $f8, 8($v0) +/* 075474 7F040944 46124401 */ sub.s $f16, $f8, $f18 +/* 075478 7F040948 10000068 */ b .L7F040AEC +/* 07547C 7F04094C E7B00094 */ swc1 $f16, 0x94($sp) +.L7F040950: +/* 075480 7F040950 13000017 */ beqz $t8, .L7F0409B0 +/* 075484 7F040954 8FA200AC */ lw $v0, 0xac($sp) +/* 075488 7F040958 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07548C 7F04095C 27A50048 */ addiu $a1, $sp, 0x48 +/* 075490 7F040960 0FC16008 */ jal matrix_4x4_copy +/* 075494 7F040964 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 075498 7F040968 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 07549C 7F04096C C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0754A0 7F040970 8FA200B8 */ lw $v0, 0xb8($sp) +/* 0754A4 7F040974 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0754A8 7F040978 46022282 */ mul.s $f10, $f4, $f2 +/* 0754AC 7F04097C C4460000 */ lwc1 $f6, ($v0) +/* 0754B0 7F040980 46028102 */ mul.s $f4, $f16, $f2 +/* 0754B4 7F040984 460A3201 */ sub.s $f8, $f6, $f10 +/* 0754B8 7F040988 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0754BC 7F04098C C4520004 */ lwc1 $f18, 4($v0) +/* 0754C0 7F040990 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0754C4 7F040994 46049181 */ sub.s $f6, $f18, $f4 +/* 0754C8 7F040998 46024402 */ mul.s $f16, $f8, $f2 +/* 0754CC 7F04099C E7A60090 */ swc1 $f6, 0x90($sp) +/* 0754D0 7F0409A0 C44A0008 */ lwc1 $f10, 8($v0) +/* 0754D4 7F0409A4 46105481 */ sub.s $f18, $f10, $f16 +/* 0754D8 7F0409A8 10000050 */ b .L7F040AEC +/* 0754DC 7F0409AC E7B20094 */ swc1 $f18, 0x94($sp) +.L7F0409B0: +/* 0754E0 7F0409B0 8C450000 */ lw $a1, ($v0) +/* 0754E4 7F0409B4 8C460008 */ lw $a2, 8($v0) +/* 0754E8 7F0409B8 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 0754EC 7F0409BC 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0754F0 7F0409C0 00E02025 */ move $a0, $a3 +/* 0754F4 7F0409C4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0754F8 7F0409C8 27A50048 */ addiu $a1, $sp, 0x48 +/* 0754FC 7F0409CC 0FC16008 */ jal matrix_4x4_copy +/* 075500 7F0409D0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 075504 7F0409D4 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075508 7F0409D8 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 07550C 7F0409DC 8FA200B8 */ lw $v0, 0xb8($sp) +/* 075510 7F0409E0 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 075514 7F0409E4 46023202 */ mul.s $f8, $f6, $f2 +/* 075518 7F0409E8 C4440000 */ lwc1 $f4, ($v0) +/* 07551C 7F0409EC 8FB900B4 */ lw $t9, 0xb4($sp) +/* 075520 7F0409F0 46029182 */ mul.s $f6, $f18, $f2 +/* 075524 7F0409F4 8FA400AC */ lw $a0, 0xac($sp) +/* 075528 7F0409F8 46082281 */ sub.s $f10, $f4, $f8 +/* 07552C 7F0409FC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 075530 7F040A00 C4500008 */ lwc1 $f16, 8($v0) +/* 075534 7F040A04 46068101 */ sub.s $f4, $f16, $f6 +/* 075538 7F040A08 E7A40094 */ swc1 $f4, 0x94($sp) +/* 07553C 7F040A0C 0FC0FEAC */ jal sub_GAME_7F03FAB0 +/* 075540 7F040A10 93250003 */ lbu $a1, 3($t9) +/* 075544 7F040A14 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075548 7F040A18 1040002D */ beqz $v0, .L7F040AD0 +/* 07554C 7F040A1C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 075550 7F040A20 8C440010 */ lw $a0, 0x10($v0) +/* 075554 7F040A24 27A80030 */ addiu $t0, $sp, 0x30 +/* 075558 7F040A28 AFA80010 */ sw $t0, 0x10($sp) +/* 07555C 7F040A2C E7AC0040 */ swc1 $f12, 0x40($sp) +/* 075560 7F040A30 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 075564 7F040A34 27A5003C */ addiu $a1, $sp, 0x3c +/* 075568 7F040A38 27A60038 */ addiu $a2, $sp, 0x38 +/* 07556C 7F040A3C 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 075570 7F040A40 27A70034 */ addiu $a3, $sp, 0x34 +/* 075574 7F040A44 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 075578 7F040A48 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 07557C 7F040A4C C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075580 7F040A50 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 075584 7F040A54 4608603C */ c.lt.s $f12, $f8 +/* 075588 7F040A58 00000000 */ nop +/* 07558C 7F040A5C 45020015 */ bc1fl .L7F040AB4 +/* 075590 7F040A60 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 075594 7F040A64 46028181 */ sub.s $f6, $f16, $f2 +/* 075598 7F040A68 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 07559C 7F040A6C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0755A0 7F040A70 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0755A4 7F040A74 46069102 */ mul.s $f4, $f18, $f6 +/* 0755A8 7F040A78 44813000 */ mtc1 $at, $f6 +/* 0755AC 7F040A7C 460C2400 */ add.s $f16, $f4, $f12 +/* 0755B0 7F040A80 46068100 */ add.s $f4, $f16, $f6 +/* 0755B4 7F040A84 4604503C */ c.lt.s $f10, $f4 +/* 0755B8 7F040A88 00000000 */ nop +/* 0755BC 7F040A8C 45020009 */ bc1fl .L7F040AB4 +/* 0755C0 7F040A90 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0755C4 7F040A94 46029402 */ mul.s $f16, $f18, $f2 +/* 0755C8 7F040A98 46104181 */ sub.s $f6, $f8, $f16 +/* 0755CC 7F040A9C E7A60090 */ swc1 $f6, 0x90($sp) +/* 0755D0 7F040AA0 8E090064 */ lw $t1, 0x64($s0) +/* 0755D4 7F040AA4 352A8000 */ ori $t2, $t1, 0x8000 +/* 0755D8 7F040AA8 10000010 */ b .L7F040AEC +/* 0755DC 7F040AAC AE0A0064 */ sw $t2, 0x64($s0) +/* 0755E0 7F040AB0 C7AA005C */ lwc1 $f10, 0x5c($sp) +.L7F040AB4: +/* 0755E4 7F040AB4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0755E8 7F040AB8 44814000 */ mtc1 $at, $f8 +/* 0755EC 7F040ABC 46025102 */ mul.s $f4, $f10, $f2 +/* 0755F0 7F040AC0 46046481 */ sub.s $f18, $f12, $f4 +/* 0755F4 7F040AC4 46089400 */ add.s $f16, $f18, $f8 +/* 0755F8 7F040AC8 10000008 */ b .L7F040AEC +/* 0755FC 7F040ACC E7B00090 */ swc1 $f16, 0x90($sp) +.L7F040AD0: +/* 075600 7F040AD0 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 075604 7F040AD4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 075608 7F040AD8 44819000 */ mtc1 $at, $f18 +/* 07560C 7F040ADC 46023282 */ mul.s $f10, $f6, $f2 +/* 075610 7F040AE0 460A6101 */ sub.s $f4, $f12, $f10 +/* 075614 7F040AE4 46122200 */ add.s $f8, $f4, $f18 +/* 075618 7F040AE8 E7A80090 */ swc1 $f8, 0x90($sp) +.L7F040AEC: +/* 07561C 7F040AEC 8E0B000C */ lw $t3, 0xc($s0) +/* 075620 7F040AF0 8FA200AC */ lw $v0, 0xac($sp) +/* 075624 7F040AF4 27A40088 */ addiu $a0, $sp, 0x88 +/* 075628 7F040AF8 316C0001 */ andi $t4, $t3, 1 +/* 07562C 7F040AFC 1580000E */ bnez $t4, .L7F040B38 +/* 075630 7F040B00 8FA7008C */ lw $a3, 0x8c($sp) +/* 075634 7F040B04 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 075638 7F040B08 8C450000 */ lw $a1, ($v0) +/* 07563C 7F040B0C 8C460008 */ lw $a2, 8($v0) +/* 075640 7F040B10 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 075644 7F040B14 E7B00010 */ swc1 $f16, 0x10($sp) +/* 075648 7F040B18 10400007 */ beqz $v0, .L7F040B38 +/* 07564C 7F040B1C 02002025 */ move $a0, $s0 +/* 075650 7F040B20 27A5008C */ addiu $a1, $sp, 0x8c +/* 075654 7F040B24 27A60048 */ addiu $a2, $sp, 0x48 +/* 075658 7F040B28 0FC101D5 */ jal sub_GAME_7F040754 +/* 07565C 7F040B2C 8FA70088 */ lw $a3, 0x88($sp) +/* 075660 7F040B30 10000014 */ b .L7F040B84 +/* 075664 7F040B34 00000000 */ nop +.L7F040B38: +/* 075668 7F040B38 02002025 */ move $a0, $s0 +/* 07566C 7F040B3C 8FA500AC */ lw $a1, 0xac($sp) +/* 075670 7F040B40 27A60048 */ addiu $a2, $sp, 0x48 +/* 075674 7F040B44 0FC101D5 */ jal sub_GAME_7F040754 +/* 075678 7F040B48 8FA700B4 */ lw $a3, 0xb4($sp) +/* 07567C 7F040B4C 8E0D000C */ lw $t5, 0xc($s0) +/* 075680 7F040B50 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 075684 7F040B54 31AE0001 */ andi $t6, $t5, 1 +/* 075688 7F040B58 55C00006 */ bnezl $t6, .L7F040B74 +/* 07568C 7F040B5C E6060058 */ swc1 $f6, 0x58($s0) +/* 075690 7F040B60 8E0F0008 */ lw $t7, 8($s0) +/* 075694 7F040B64 31F81000 */ andi $t8, $t7, 0x1000 +/* 075698 7F040B68 13000006 */ beqz $t8, .L7F040B84 +/* 07569C 7F040B6C 00000000 */ nop +/* 0756A0 7F040B70 E6060058 */ swc1 $f6, 0x58($s0) +.L7F040B74: +/* 0756A4 7F040B74 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0756A8 7F040B78 E60A005C */ swc1 $f10, 0x5c($s0) +/* 0756AC 7F040B7C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0756B0 7F040B80 E6040060 */ swc1 $f4, 0x60($s0) +.L7F040B84: +/* 0756B4 7F040B84 0FC10121 */ jal sub_GAME_7F040484 +/* 0756B8 7F040B88 02002025 */ move $a0, $s0 +/* 0756BC 7F040B8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0756C0 7F040B90 8FB00020 */ lw $s0, 0x20($sp) +/* 0756C4 7F040B94 27BD00A8 */ addiu $sp, $sp, 0xa8 +/* 0756C8 7F040B98 03E00008 */ jr $ra +/* 0756CC 7F040B9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040BA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A50 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80052A54 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F040BA0 +/* 0756D0 7F040BA0 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0756D4 7F040BA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0756D8 7F040BA8 AFB00020 */ sw $s0, 0x20($sp) +/* 0756DC 7F040BAC AFA500CC */ sw $a1, 0xcc($sp) +/* 0756E0 7F040BB0 AFA600D0 */ sw $a2, 0xd0($sp) +/* 0756E4 7F040BB4 AFA700D4 */ sw $a3, 0xd4($sp) +/* 0756E8 7F040BB8 8C8E0014 */ lw $t6, 0x14($a0) +/* 0756EC 7F040BBC 00808025 */ move $s0, $a0 +/* 0756F0 7F040BC0 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 0756F4 7F040BC4 8DC40008 */ lw $a0, 8($t6) +/* 0756F8 7F040BC8 0FC0FA1D */ jal sub_GAME_7F03E874 +/* 0756FC 7F040BCC 00402025 */ move $a0, $v0 +/* 075700 7F040BD0 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 075704 7F040BD4 3C018005 */ lui $at, %hi(D_80052A50) +/* 075708 7F040BD8 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 07570C 7F040BDC C42C2A50 */ lwc1 $f12, %lo(D_80052A50)($at) +/* 075710 7F040BE0 27A5006C */ addiu $a1, $sp, 0x6c +/* 075714 7F040BE4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 075718 7F040BE8 AFAF00AC */ sw $t7, 0xac($sp) +/* 07571C 7F040BEC 3C018005 */ lui $at, %hi(D_80052A54) +/* 075720 7F040BF0 C42C2A54 */ lwc1 $f12, %lo(D_80052A54)($at) +/* 075724 7F040BF4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 075728 7F040BF8 27A5002C */ addiu $a1, $sp, 0x2c +/* 07572C 7F040BFC 27A4002C */ addiu $a0, $sp, 0x2c +/* 075730 7F040C00 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075734 7F040C04 27A5006C */ addiu $a1, $sp, 0x6c +/* 075738 7F040C08 8FA400D0 */ lw $a0, 0xd0($sp) +/* 07573C 7F040C0C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075740 7F040C10 27A5006C */ addiu $a1, $sp, 0x6c +/* 075744 7F040C14 C7A000BC */ lwc1 $f0, 0xbc($sp) +/* 075748 7F040C18 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 07574C 7F040C1C 8FA200D8 */ lw $v0, 0xd8($sp) +/* 075750 7F040C20 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 075754 7F040C24 46003202 */ mul.s $f8, $f6, $f0 +/* 075758 7F040C28 C4440000 */ lwc1 $f4, ($v0) +/* 07575C 7F040C2C 27A400AC */ addiu $a0, $sp, 0xac +/* 075760 7F040C30 46009182 */ mul.s $f6, $f18, $f0 +/* 075764 7F040C34 46082281 */ sub.s $f10, $f4, $f8 +/* 075768 7F040C38 E7AA00B0 */ swc1 $f10, 0xb0($sp) +/* 07576C 7F040C3C C4500004 */ lwc1 $f16, 4($v0) +/* 075770 7F040C40 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 075774 7F040C44 8FA700B0 */ lw $a3, 0xb0($sp) +/* 075778 7F040C48 46068101 */ sub.s $f4, $f16, $f6 +/* 07577C 7F040C4C 46005482 */ mul.s $f18, $f10, $f0 +/* 075780 7F040C50 E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 075784 7F040C54 C4480008 */ lwc1 $f8, 8($v0) +/* 075788 7F040C58 8FA200CC */ lw $v0, 0xcc($sp) +/* 07578C 7F040C5C 46124401 */ sub.s $f16, $f8, $f18 +/* 075790 7F040C60 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 075794 7F040C64 8E18000C */ lw $t8, 0xc($s0) +/* 075798 7F040C68 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 07579C 7F040C6C 33190001 */ andi $t9, $t8, 1 +/* 0757A0 7F040C70 5720000E */ bnezl $t9, .L7F040CAC +/* 0757A4 7F040C74 02002025 */ move $a0, $s0 +/* 0757A8 7F040C78 8C450000 */ lw $a1, ($v0) +/* 0757AC 7F040C7C 8C460008 */ lw $a2, 8($v0) +/* 0757B0 7F040C80 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0757B4 7F040C84 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0757B8 7F040C88 10400007 */ beqz $v0, .L7F040CA8 +/* 0757BC 7F040C8C 02002025 */ move $a0, $s0 +/* 0757C0 7F040C90 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 0757C4 7F040C94 27A6006C */ addiu $a2, $sp, 0x6c +/* 0757C8 7F040C98 0FC101D5 */ jal sub_GAME_7F040754 +/* 0757CC 7F040C9C 8FA700AC */ lw $a3, 0xac($sp) +/* 0757D0 7F040CA0 1000000C */ b .L7F040CD4 +/* 0757D4 7F040CA4 00000000 */ nop +.L7F040CA8: +/* 0757D8 7F040CA8 02002025 */ move $a0, $s0 +.L7F040CAC: +/* 0757DC 7F040CAC 8FA500CC */ lw $a1, 0xcc($sp) +/* 0757E0 7F040CB0 27A6006C */ addiu $a2, $sp, 0x6c +/* 0757E4 7F040CB4 0FC101D5 */ jal sub_GAME_7F040754 +/* 0757E8 7F040CB8 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0757EC 7F040CBC C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0757F0 7F040CC0 E6040058 */ swc1 $f4, 0x58($s0) +/* 0757F4 7F040CC4 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0757F8 7F040CC8 E60A005C */ swc1 $f10, 0x5c($s0) +/* 0757FC 7F040CCC C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 075800 7F040CD0 E6080060 */ swc1 $f8, 0x60($s0) +.L7F040CD4: +/* 075804 7F040CD4 0FC10121 */ jal sub_GAME_7F040484 +/* 075808 7F040CD8 02002025 */ move $a0, $s0 +/* 07580C 7F040CDC 8FBF0024 */ lw $ra, 0x24($sp) +/* 075810 7F040CE0 8FB00020 */ lw $s0, 0x20($sp) +/* 075814 7F040CE4 27BD00C8 */ addiu $sp, $sp, 0xc8 +/* 075818 7F040CE8 03E00008 */ jr $ra +/* 07581C 7F040CEC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040CF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040CF0 +/* 075820 7F040CF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 075824 7F040CF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 075828 7F040CF8 8C820004 */ lw $v0, 4($a0) +/* 07582C 7F040CFC 8C430064 */ lw $v1, 0x64($v0) +/* 075830 7F040D00 306E0040 */ andi $t6, $v1, 0x40 +/* 075834 7F040D04 11C00015 */ beqz $t6, .L7F040D5C +/* 075838 7F040D08 30780080 */ andi $t8, $v1, 0x80 +/* 07583C 7F040D0C 8C44006C */ lw $a0, 0x6c($v0) +/* 075840 7F040D10 5080000E */ beql $a0, $zero, .L7F040D4C +/* 075844 7F040D14 2401FFBF */ li $at, -65 +/* 075848 7F040D18 8C850044 */ lw $a1, 0x44($a0) +/* 07584C 7F040D1C 10A00006 */ beqz $a1, .L7F040D38 +/* 075850 7F040D20 00000000 */ nop +/* 075854 7F040D24 00A02025 */ move $a0, $a1 +/* 075858 7F040D28 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07585C 7F040D2C AFA2001C */ sw $v0, 0x1c($sp) +/* 075860 7F040D30 8FA2001C */ lw $v0, 0x1c($sp) +/* 075864 7F040D34 8C44006C */ lw $a0, 0x6c($v0) +.L7F040D38: +/* 075868 7F040D38 0FC0FFA2 */ jal sub_GAME_7F03FE88 +/* 07586C 7F040D3C AFA2001C */ sw $v0, 0x1c($sp) +/* 075870 7F040D40 8FA2001C */ lw $v0, 0x1c($sp) +/* 075874 7F040D44 8C430064 */ lw $v1, 0x64($v0) +/* 075878 7F040D48 2401FFBF */ li $at, -65 +.L7F040D4C: +/* 07587C 7F040D4C 00617824 */ and $t7, $v1, $at +/* 075880 7F040D50 AC40006C */ sw $zero, 0x6c($v0) +/* 075884 7F040D54 1000000C */ b .L7F040D88 +/* 075888 7F040D58 AC4F0064 */ sw $t7, 0x64($v0) +.L7F040D5C: +/* 07588C 7F040D5C 5300000B */ beql $t8, $zero, .L7F040D8C +/* 075890 7F040D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 075894 7F040D64 8C44006C */ lw $a0, 0x6c($v0) +/* 075898 7F040D68 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07589C 7F040D6C AFA2001C */ sw $v0, 0x1c($sp) +/* 0758A0 7F040D70 8FA2001C */ lw $v0, 0x1c($sp) +/* 0758A4 7F040D74 2401FF7F */ li $at, -129 +/* 0758A8 7F040D78 8C590064 */ lw $t9, 0x64($v0) +/* 0758AC 7F040D7C AC40006C */ sw $zero, 0x6c($v0) +/* 0758B0 7F040D80 03214024 */ and $t0, $t9, $at +/* 0758B4 7F040D84 AC480064 */ sw $t0, 0x64($v0) +.L7F040D88: +/* 0758B8 7F040D88 8FBF0014 */ lw $ra, 0x14($sp) +.L7F040D8C: +/* 0758BC 7F040D8C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0758C0 7F040D90 03E00008 */ jr $ra +/* 0758C4 7F040D94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040D98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040D98 +/* 0758C8 7F040D98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0758CC 7F040D9C AFBF0024 */ sw $ra, 0x24($sp) +/* 0758D0 7F040DA0 AFB20020 */ sw $s2, 0x20($sp) +/* 0758D4 7F040DA4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0758D8 7F040DA8 AFB00018 */ sw $s0, 0x18($sp) +/* 0758DC 7F040DAC AFA5002C */ sw $a1, 0x2c($sp) +/* 0758E0 7F040DB0 90820003 */ lbu $v0, 3($a0) +/* 0758E4 7F040DB4 2401000D */ li $at, 13 +/* 0758E8 7F040DB8 00C08025 */ move $s0, $a2 +/* 0758EC 7F040DBC 14410015 */ bne $v0, $at, .L7F040E14 +/* 0758F0 7F040DC0 00809025 */ move $s2, $a0 +/* 0758F4 7F040DC4 8C8400C4 */ lw $a0, 0xc4($a0) +/* 0758F8 7F040DC8 50800008 */ beql $a0, $zero, .L7F040DEC +/* 0758FC 7F040DCC 8E4400C8 */ lw $a0, 0xc8($s2) +/* 075900 7F040DD0 0C00237C */ jal sfxGetArg0Unk3F +/* 075904 7F040DD4 00000000 */ nop +/* 075908 7F040DD8 50400004 */ beql $v0, $zero, .L7F040DEC +/* 07590C 7F040DDC 8E4400C8 */ lw $a0, 0xc8($s2) +/* 075910 7F040DE0 0C002408 */ jal sfxDeactivate +/* 075914 7F040DE4 8E4400C4 */ lw $a0, 0xc4($s2) +/* 075918 7F040DE8 8E4400C8 */ lw $a0, 0xc8($s2) +.L7F040DEC: +/* 07591C 7F040DEC 5080004E */ beql $a0, $zero, .L7F040F28 +/* 075920 7F040DF0 8E510010 */ lw $s1, 0x10($s2) +/* 075924 7F040DF4 0C00237C */ jal sfxGetArg0Unk3F +/* 075928 7F040DF8 00000000 */ nop +/* 07592C 7F040DFC 5040004A */ beql $v0, $zero, .L7F040F28 +/* 075930 7F040E00 8E510010 */ lw $s1, 0x10($s2) +/* 075934 7F040E04 0C002408 */ jal sfxDeactivate +/* 075938 7F040E08 8E4400C8 */ lw $a0, 0xc8($s2) +/* 07593C 7F040E0C 10000046 */ b .L7F040F28 +/* 075940 7F040E10 8E510010 */ lw $s1, 0x10($s2) +.L7F040E14: +/* 075944 7F040E14 24010008 */ li $at, 8 +/* 075948 7F040E18 54410008 */ bnel $v0, $at, .L7F040E3C +/* 07594C 7F040E1C 24010001 */ li $at, 1 +/* 075950 7F040E20 8E420084 */ lw $v0, 0x84($s2) +/* 075954 7F040E24 50400040 */ beql $v0, $zero, .L7F040F28 +/* 075958 7F040E28 8E510010 */ lw $s1, 0x10($s2) +/* 07595C 7F040E2C AC400084 */ sw $zero, 0x84($v0) +/* 075960 7F040E30 1000003C */ b .L7F040F24 +/* 075964 7F040E34 AE400084 */ sw $zero, 0x84($s2) +/* 075968 7F040E38 24010001 */ li $at, 1 +.L7F040E3C: +/* 07596C 7F040E3C 54410016 */ bnel $v0, $at, .L7F040E98 +/* 075970 7F040E40 2401002F */ li $at, 47 +/* 075974 7F040E44 8E4400F4 */ lw $a0, 0xf4($s2) +/* 075978 7F040E48 50800008 */ beql $a0, $zero, .L7F040E6C +/* 07597C 7F040E4C 8E4400F8 */ lw $a0, 0xf8($s2) +/* 075980 7F040E50 0C00237C */ jal sfxGetArg0Unk3F +/* 075984 7F040E54 00000000 */ nop +/* 075988 7F040E58 50400004 */ beql $v0, $zero, .L7F040E6C +/* 07598C 7F040E5C 8E4400F8 */ lw $a0, 0xf8($s2) +/* 075990 7F040E60 0C002408 */ jal sfxDeactivate +/* 075994 7F040E64 8E4400F4 */ lw $a0, 0xf4($s2) +/* 075998 7F040E68 8E4400F8 */ lw $a0, 0xf8($s2) +.L7F040E6C: +/* 07599C 7F040E6C 5080002E */ beql $a0, $zero, .L7F040F28 +/* 0759A0 7F040E70 8E510010 */ lw $s1, 0x10($s2) +/* 0759A4 7F040E74 0C00237C */ jal sfxGetArg0Unk3F +/* 0759A8 7F040E78 00000000 */ nop +/* 0759AC 7F040E7C 5040002A */ beql $v0, $zero, .L7F040F28 +/* 0759B0 7F040E80 8E510010 */ lw $s1, 0x10($s2) +/* 0759B4 7F040E84 0C002408 */ jal sfxDeactivate +/* 0759B8 7F040E88 8E4400F8 */ lw $a0, 0xf8($s2) +/* 0759BC 7F040E8C 10000026 */ b .L7F040F28 +/* 0759C0 7F040E90 8E510010 */ lw $s1, 0x10($s2) +/* 0759C4 7F040E94 2401002F */ li $at, 47 +.L7F040E98: +/* 0759C8 7F040E98 54410009 */ bnel $v0, $at, .L7F040EC0 +/* 0759CC 7F040E9C 24010028 */ li $at, 40 +/* 0759D0 7F040EA0 8E44008C */ lw $a0, 0x8c($s2) +/* 0759D4 7F040EA4 04820020 */ bltzl $a0, .L7F040F28 +/* 0759D8 7F040EA8 8E510010 */ lw $s1, 0x10($s2) +/* 0759DC 7F040EAC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0759E0 7F040EB0 24050001 */ li $a1, 1 +/* 0759E4 7F040EB4 1000001C */ b .L7F040F28 +/* 0759E8 7F040EB8 8E510010 */ lw $s1, 0x10($s2) +/* 0759EC 7F040EBC 24010028 */ li $at, 40 +.L7F040EC0: +/* 0759F0 7F040EC0 5441000D */ bnel $v0, $at, .L7F040EF8 +/* 0759F4 7F040EC4 24010027 */ li $at, 39 +/* 0759F8 7F040EC8 8E4400B0 */ lw $a0, 0xb0($s2) +/* 0759FC 7F040ECC 50800016 */ beql $a0, $zero, .L7F040F28 +/* 075A00 7F040ED0 8E510010 */ lw $s1, 0x10($s2) +/* 075A04 7F040ED4 0C00237C */ jal sfxGetArg0Unk3F +/* 075A08 7F040ED8 00000000 */ nop +/* 075A0C 7F040EDC 50400012 */ beql $v0, $zero, .L7F040F28 +/* 075A10 7F040EE0 8E510010 */ lw $s1, 0x10($s2) +/* 075A14 7F040EE4 0C002408 */ jal sfxDeactivate +/* 075A18 7F040EE8 8E4400B0 */ lw $a0, 0xb0($s2) +/* 075A1C 7F040EEC 1000000E */ b .L7F040F28 +/* 075A20 7F040EF0 8E510010 */ lw $s1, 0x10($s2) +/* 075A24 7F040EF4 24010027 */ li $at, 39 +.L7F040EF8: +/* 075A28 7F040EF8 5441000B */ bnel $v0, $at, .L7F040F28 +/* 075A2C 7F040EFC 8E510010 */ lw $s1, 0x10($s2) +/* 075A30 7F040F00 8E4400AC */ lw $a0, 0xac($s2) +/* 075A34 7F040F04 50800008 */ beql $a0, $zero, .L7F040F28 +/* 075A38 7F040F08 8E510010 */ lw $s1, 0x10($s2) +/* 075A3C 7F040F0C 0C00237C */ jal sfxGetArg0Unk3F +/* 075A40 7F040F10 00000000 */ nop +/* 075A44 7F040F14 50400004 */ beql $v0, $zero, .L7F040F28 +/* 075A48 7F040F18 8E510010 */ lw $s1, 0x10($s2) +/* 075A4C 7F040F1C 0C002408 */ jal sfxDeactivate +/* 075A50 7F040F20 8E4400AC */ lw $a0, 0xac($s2) +.L7F040F24: +/* 075A54 7F040F24 8E510010 */ lw $s1, 0x10($s2) +.L7F040F28: +/* 075A58 7F040F28 12200038 */ beqz $s1, .L7F04100C +/* 075A5C 7F040F2C 02202025 */ move $a0, $s1 +/* 075A60 7F040F30 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 075A64 7F040F34 00002825 */ move $a1, $zero +/* 075A68 7F040F38 8E440010 */ lw $a0, 0x10($s2) +/* 075A6C 7F040F3C 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 075A70 7F040F40 24050001 */ li $a1, 1 +/* 075A74 7F040F44 56000032 */ bnezl $s0, .L7F041010 +/* 075A78 7F040F48 8FBF0024 */ lw $ra, 0x24($sp) +/* 075A7C 7F040F4C 0FC1033C */ jal sub_GAME_7F040CF0 +/* 075A80 7F040F50 8E440010 */ lw $a0, 0x10($s2) +/* 075A84 7F040F54 8E510010 */ lw $s1, 0x10($s2) +/* 075A88 7F040F58 8E2E001C */ lw $t6, 0x1c($s1) +/* 075A8C 7F040F5C 11C00004 */ beqz $t6, .L7F040F70 +/* 075A90 7F040F60 00000000 */ nop +/* 075A94 7F040F64 0FC13011 */ jal sub_GAME_7F04C044 +/* 075A98 7F040F68 02202025 */ move $a0, $s1 +/* 075A9C 7F040F6C 8E510010 */ lw $s1, 0x10($s2) +.L7F040F70: +/* 075AA0 7F040F70 0FC0F863 */ jal sub_GAME_7F03E18C +/* 075AA4 7F040F74 02202025 */ move $a0, $s1 +/* 075AA8 7F040F78 8E510010 */ lw $s1, 0x10($s2) +/* 075AAC 7F040F7C 8E300020 */ lw $s0, 0x20($s1) +/* 075AB0 7F040F80 52000009 */ beql $s0, $zero, .L7F040FA8 +/* 075AB4 7F040F84 922F0000 */ lbu $t7, ($s1) +.L7F040F88: +/* 075AB8 7F040F88 8E110024 */ lw $s1, 0x24($s0) +/* 075ABC 7F040F8C 8E040004 */ lw $a0, 4($s0) +/* 075AC0 7F040F90 0FC10409 */ jal sub_GAME_7F041024 +/* 075AC4 7F040F94 24050001 */ li $a1, 1 +/* 075AC8 7F040F98 1620FFFB */ bnez $s1, .L7F040F88 +/* 075ACC 7F040F9C 02208025 */ move $s0, $s1 +/* 075AD0 7F040FA0 8E510010 */ lw $s1, 0x10($s2) +/* 075AD4 7F040FA4 922F0000 */ lbu $t7, ($s1) +.L7F040FA8: +/* 075AD8 7F040FA8 24010002 */ li $at, 2 +/* 075ADC 7F040FAC 51E10004 */ beql $t7, $at, .L7F040FC0 +/* 075AE0 7F040FB0 92580003 */ lbu $t8, 3($s2) +/* 075AE4 7F040FB4 0FC1437A */ jal sub_GAME_7F050DE8 +/* 075AE8 7F040FB8 8E440014 */ lw $a0, 0x14($s2) +/* 075AEC 7F040FBC 92580003 */ lbu $t8, 3($s2) +.L7F040FC0: +/* 075AF0 7F040FC0 24010028 */ li $at, 40 +/* 075AF4 7F040FC4 17010005 */ bne $t8, $at, .L7F040FDC +/* 075AF8 7F040FC8 00000000 */ nop +/* 075AFC 7F040FCC 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 075B00 7F040FD0 8E440014 */ lw $a0, 0x14($s2) +/* 075B04 7F040FD4 10000004 */ b .L7F040FE8 +/* 075B08 7F040FD8 8FB9002C */ lw $t9, 0x2c($sp) +.L7F040FDC: +/* 075B0C 7F040FDC 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 075B10 7F040FE0 8E440014 */ lw $a0, 0x14($s2) +/* 075B14 7F040FE4 8FB9002C */ lw $t9, 0x2c($sp) +.L7F040FE8: +/* 075B18 7F040FE8 53200008 */ beql $t9, $zero, .L7F04100C +/* 075B1C 7F040FEC AE400010 */ sw $zero, 0x10($s2) +/* 075B20 7F040FF0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 075B24 7F040FF4 8E440010 */ lw $a0, 0x10($s2) +/* 075B28 7F040FF8 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 075B2C 7F040FFC 8E440010 */ lw $a0, 0x10($s2) +/* 075B30 7F041000 0FC0E921 */ jal set_last_obj_pos_data +/* 075B34 7F041004 8E440010 */ lw $a0, 0x10($s2) +/* 075B38 7F041008 AE400010 */ sw $zero, 0x10($s2) +.L7F04100C: +/* 075B3C 7F04100C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F041010: +/* 075B40 7F041010 8FB00018 */ lw $s0, 0x18($sp) +/* 075B44 7F041014 8FB1001C */ lw $s1, 0x1c($sp) +/* 075B48 7F041018 8FB20020 */ lw $s2, 0x20($sp) +/* 075B4C 7F04101C 03E00008 */ jr $ra +/* 075B50 7F041020 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041024 +/* 075B54 7F041024 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 075B58 7F041028 AFBF0014 */ sw $ra, 0x14($sp) +/* 075B5C 7F04102C 0FC10366 */ jal sub_GAME_7F040D98 +/* 075B60 7F041030 00003025 */ move $a2, $zero +/* 075B64 7F041034 8FBF0014 */ lw $ra, 0x14($sp) +/* 075B68 7F041038 27BD0018 */ addiu $sp, $sp, 0x18 +/* 075B6C 7F04103C 03E00008 */ jr $ra +/* 075B70 7F041040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void if_a0_plus_3_is_4_then_10_else_20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_a0_plus_3_is_4_then_10_else_20 +/* 075B74 7F041044 908E0003 */ lbu $t6, 3($a0) +/* 075B78 7F041048 24010004 */ li $at, 4 +/* 075B7C 7F04104C 15C10004 */ bne $t6, $at, .L7F041060 +/* 075B80 7F041050 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 075B84 7F041054 44810000 */ mtc1 $at, $f0 +/* 075B88 7F041058 03E00008 */ jr $ra +/* 075B8C 7F04105C 00000000 */ nop + +.L7F041060: +/* 075B90 7F041060 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 075B94 7F041064 44810000 */ mtc1 $at, $f0 +/* 075B98 7F041068 00000000 */ nop +/* 075B9C 7F04106C 03E00008 */ jr $ra +/* 075BA0 7F041070 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041074(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041074 +/* 075BA4 7F041074 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 075BA8 7F041078 AFA70024 */ sw $a3, 0x24($sp) +/* 075BAC 7F04107C C48A0000 */ lwc1 $f10, ($a0) +/* 075BB0 7F041080 C4C80000 */ lwc1 $f8, ($a2) +/* 075BB4 7F041084 00001025 */ move $v0, $zero +/* 075BB8 7F041088 460A4181 */ sub.s $f6, $f8, $f10 +/* 075BBC 7F04108C E7A6000C */ swc1 $f6, 0xc($sp) +/* 075BC0 7F041090 C4880004 */ lwc1 $f8, 4($a0) +/* 075BC4 7F041094 C4C40004 */ lwc1 $f4, 4($a2) +/* 075BC8 7F041098 46082281 */ sub.s $f10, $f4, $f8 +/* 075BCC 7F04109C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 075BD0 7F0410A0 C4840008 */ lwc1 $f4, 8($a0) +/* 075BD4 7F0410A4 C4C60008 */ lwc1 $f6, 8($a2) +/* 075BD8 7F0410A8 C7AA000C */ lwc1 $f10, 0xc($sp) +/* 075BDC 7F0410AC 46043201 */ sub.s $f8, $f6, $f4 +/* 075BE0 7F0410B0 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 075BE4 7F0410B4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 075BE8 7F0410B8 C4AC0000 */ lwc1 $f12, ($a1) +/* 075BEC 7F0410BC C4AE0004 */ lwc1 $f14, 4($a1) +/* 075BF0 7F0410C0 C4A20008 */ lwc1 $f2, 8($a1) +/* 075BF4 7F0410C4 460A6182 */ mul.s $f6, $f12, $f10 +/* 075BF8 7F0410C8 E7AA0000 */ swc1 $f10, ($sp) +/* 075BFC 7F0410CC 46047202 */ mul.s $f8, $f14, $f4 +/* 075C00 7F0410D0 46083180 */ add.s $f6, $f6, $f8 +/* 075C04 7F0410D4 C7A80014 */ lwc1 $f8, 0x14($sp) +/* 075C08 7F0410D8 46024282 */ mul.s $f10, $f8, $f2 +/* 075C0C 7F0410DC 46065000 */ add.s $f0, $f10, $f6 +/* 075C10 7F0410E0 44805000 */ mtc1 $zero, $f10 +/* 075C14 7F0410E4 00000000 */ nop +/* 075C18 7F0410E8 4600503C */ c.lt.s $f10, $f0 +/* 075C1C 7F0410EC 00000000 */ nop +/* 075C20 7F0410F0 45000019 */ bc1f .L7F041158 +/* 075C24 7F0410F4 00000000 */ nop +/* 075C28 7F0410F8 460C6182 */ mul.s $f6, $f12, $f12 +/* 075C2C 7F0410FC 00000000 */ nop +/* 075C30 7F041100 460E7282 */ mul.s $f10, $f14, $f14 +/* 075C34 7F041104 460A3180 */ add.s $f6, $f6, $f10 +/* 075C38 7F041108 46021282 */ mul.s $f10, $f2, $f2 +/* 075C3C 7F04110C 46065400 */ add.s $f16, $f10, $f6 +/* 075C40 7F041110 C7AA0000 */ lwc1 $f10, ($sp) +/* 075C44 7F041114 460A5182 */ mul.s $f6, $f10, $f10 +/* 075C48 7F041118 00000000 */ nop +/* 075C4C 7F04111C 46042282 */ mul.s $f10, $f4, $f4 +/* 075C50 7F041120 460A3100 */ add.s $f4, $f6, $f10 +/* 075C54 7F041124 46084182 */ mul.s $f6, $f8, $f8 +/* 075C58 7F041128 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 075C5C 7F04112C 46000282 */ mul.s $f10, $f0, $f0 +/* 075C60 7F041130 46043480 */ add.s $f18, $f6, $f4 +/* 075C64 7F041134 46084182 */ mul.s $f6, $f8, $f8 +/* 075C68 7F041138 46069101 */ sub.s $f4, $f18, $f6 +/* 075C6C 7F04113C 46102202 */ mul.s $f8, $f4, $f16 +/* 075C70 7F041140 460A403E */ c.le.s $f8, $f10 +/* 075C74 7F041144 00000000 */ nop +/* 075C78 7F041148 45000003 */ bc1f .L7F041158 +/* 075C7C 7F04114C 00000000 */ nop +/* 075C80 7F041150 10000001 */ b .L7F041158 +/* 075C84 7F041154 24020001 */ li $v0, 1 +.L7F041158: +/* 075C88 7F041158 03E00008 */ jr $ra +/* 075C8C 7F04115C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041160(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041160 +/* 075C90 7F041160 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 075C94 7F041164 AFBF0044 */ sw $ra, 0x44($sp) +/* 075C98 7F041168 AFB70040 */ sw $s7, 0x40($sp) +/* 075C9C 7F04116C AFB6003C */ sw $s6, 0x3c($sp) +/* 075CA0 7F041170 AFB50038 */ sw $s5, 0x38($sp) +/* 075CA4 7F041174 AFB40034 */ sw $s4, 0x34($sp) +/* 075CA8 7F041178 AFB30030 */ sw $s3, 0x30($sp) +/* 075CAC 7F04117C AFB2002C */ sw $s2, 0x2c($sp) +/* 075CB0 7F041180 AFB10028 */ sw $s1, 0x28($sp) +/* 075CB4 7F041184 AFB00024 */ sw $s0, 0x24($sp) +/* 075CB8 7F041188 AFA700B4 */ sw $a3, 0xb4($sp) +/* 075CBC 7F04118C 8C970014 */ lw $s7, 0x14($a0) +/* 075CC0 7F041190 AFA0009C */ sw $zero, 0x9c($sp) +/* 075CC4 7F041194 AFA00064 */ sw $zero, 0x64($sp) +/* 075CC8 7F041198 908E0003 */ lbu $t6, 3($a0) +/* 075CCC 7F04119C 24010001 */ li $at, 1 +/* 075CD0 7F0411A0 00A08825 */ move $s1, $a1 +/* 075CD4 7F0411A4 15C1001A */ bne $t6, $at, .L7F041210 +/* 075CD8 7F0411A8 00C09825 */ move $s3, $a2 +/* 075CDC 7F0411AC 248400D0 */ addiu $a0, $a0, 0xd0 +/* 075CE0 7F0411B0 8EE5000C */ lw $a1, 0xc($s7) +/* 075CE4 7F0411B4 02203025 */ move $a2, $s1 +/* 075CE8 7F0411B8 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 075CEC 7F0411BC 02603825 */ move $a3, $s3 +/* 075CF0 7F0411C0 8EEF0008 */ lw $t7, 8($s7) +/* 075CF4 7F0411C4 00408025 */ move $s0, $v0 +/* 075CF8 7F0411C8 27B4006C */ addiu $s4, $sp, 0x6c +/* 075CFC 7F0411CC 8DF80000 */ lw $t8, ($t7) +/* 075D00 7F0411D0 27B50068 */ addiu $s5, $sp, 0x68 +/* 075D04 7F0411D4 18400025 */ blez $v0, .L7F04126C +/* 075D08 7F0411D8 AFB8009C */ sw $t8, 0x9c($sp) +/* 075D0C 7F0411DC 27B60064 */ addiu $s6, $sp, 0x64 +/* 075D10 7F0411E0 AFB60018 */ sw $s6, 0x18($sp) +/* 075D14 7F0411E4 02E02025 */ move $a0, $s7 +/* 075D18 7F0411E8 03002825 */ move $a1, $t8 +/* 075D1C 7F0411EC 02203025 */ move $a2, $s1 +/* 075D20 7F0411F0 02603825 */ move $a3, $s3 +/* 075D24 7F0411F4 AFB40010 */ sw $s4, 0x10($sp) +/* 075D28 7F0411F8 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 075D2C 7F0411FC AFB50014 */ sw $s5, 0x14($sp) +/* 075D30 7F041200 1440001A */ bnez $v0, .L7F04126C +/* 075D34 7F041204 00000000 */ nop +/* 075D38 7F041208 10000018 */ b .L7F04126C +/* 075D3C 7F04120C 00008025 */ move $s0, $zero +.L7F041210: +/* 075D40 7F041210 27B60064 */ addiu $s6, $sp, 0x64 +/* 075D44 7F041214 27B50068 */ addiu $s5, $sp, 0x68 +/* 075D48 7F041218 27B4006C */ addiu $s4, $sp, 0x6c +/* 075D4C 7F04121C 27B2009C */ addiu $s2, $sp, 0x9c +/* 075D50 7F041220 02E02025 */ move $a0, $s7 +.L7F041224: +/* 075D54 7F041224 02202825 */ move $a1, $s1 +/* 075D58 7F041228 02603025 */ move $a2, $s3 +/* 075D5C 7F04122C 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 075D60 7F041230 02403825 */ move $a3, $s2 +/* 075D64 7F041234 1840000B */ blez $v0, .L7F041264 +/* 075D68 7F041238 00408025 */ move $s0, $v0 +/* 075D6C 7F04123C 02E02025 */ move $a0, $s7 +/* 075D70 7F041240 8FA5009C */ lw $a1, 0x9c($sp) +/* 075D74 7F041244 02203025 */ move $a2, $s1 +/* 075D78 7F041248 02603825 */ move $a3, $s3 +/* 075D7C 7F04124C AFB40010 */ sw $s4, 0x10($sp) +/* 075D80 7F041250 AFB50014 */ sw $s5, 0x14($sp) +/* 075D84 7F041254 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 075D88 7F041258 AFB60018 */ sw $s6, 0x18($sp) +/* 075D8C 7F04125C 14400003 */ bnez $v0, .L7F04126C +/* 075D90 7F041260 00000000 */ nop +.L7F041264: +/* 075D94 7F041264 5E00FFEF */ bgtzl $s0, .L7F041224 +/* 075D98 7F041268 02E02025 */ move $a0, $s7 +.L7F04126C: +/* 075D9C 7F04126C 1A000059 */ blez $s0, .L7F0413D4 +/* 075DA0 7F041270 00001025 */ move $v0, $zero +/* 075DA4 7F041274 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 075DA8 7F041278 8FA500B4 */ lw $a1, 0xb4($sp) +/* 075DAC 7F04127C 8EF9000C */ lw $t9, 0xc($s7) +/* 075DB0 7F041280 8FA80068 */ lw $t0, 0x68($sp) +/* 075DB4 7F041284 E4A40000 */ swc1 $f4, ($a1) +/* 075DB8 7F041288 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 075DBC 7F04128C 00084980 */ sll $t1, $t0, 6 +/* 075DC0 7F041290 03298821 */ addu $s1, $t9, $t1 +/* 075DC4 7F041294 E4A60004 */ swc1 $f6, 4($a1) +/* 075DC8 7F041298 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 075DCC 7F04129C 02202025 */ move $a0, $s1 +/* 075DD0 7F0412A0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 075DD4 7F0412A4 E4A80008 */ swc1 $f8, 8($a1) +/* 075DD8 7F0412A8 0FC1E111 */ jal sub_GAME_7F078444 +/* 075DDC 7F0412AC 00000000 */ nop +/* 075DE0 7F0412B0 00402025 */ move $a0, $v0 +/* 075DE4 7F0412B4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 075DE8 7F0412B8 8FA500B4 */ lw $a1, 0xb4($sp) +/* 075DEC 7F0412BC 8FB000B8 */ lw $s0, 0xb8($sp) +/* 075DF0 7F0412C0 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 075DF4 7F0412C4 02202025 */ move $a0, $s1 +/* 075DF8 7F0412C8 02002825 */ move $a1, $s0 +/* 075DFC 7F0412CC E60A0000 */ swc1 $f10, ($s0) +/* 075E00 7F0412D0 C7B0007C */ lwc1 $f16, 0x7c($sp) +/* 075E04 7F0412D4 E6100004 */ swc1 $f16, 4($s0) +/* 075E08 7F0412D8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 075E0C 7F0412DC 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 075E10 7F0412E0 E6120008 */ swc1 $f18, 8($s0) +/* 075E14 7F0412E4 C6020000 */ lwc1 $f2, ($s0) +/* 075E18 7F0412E8 C6640000 */ lwc1 $f4, ($s3) +/* 075E1C 7F0412EC C60C0004 */ lwc1 $f12, 4($s0) +/* 075E20 7F0412F0 C6680004 */ lwc1 $f8, 4($s3) +/* 075E24 7F0412F4 46041182 */ mul.s $f6, $f2, $f4 +/* 075E28 7F0412F8 C6000008 */ lwc1 $f0, 8($s0) +/* 075E2C 7F0412FC C6720008 */ lwc1 $f18, 8($s3) +/* 075E30 7F041300 46086282 */ mul.s $f10, $f12, $f8 +/* 075E34 7F041304 44807000 */ mtc1 $zero, $f14 +/* 075E38 7F041308 46009102 */ mul.s $f4, $f18, $f0 +/* 075E3C 7F04130C 460A3400 */ add.s $f16, $f6, $f10 +/* 075E40 7F041310 46102200 */ add.s $f8, $f4, $f16 +/* 075E44 7F041314 4608703C */ c.lt.s $f14, $f8 +/* 075E48 7F041318 00000000 */ nop +/* 075E4C 7F04131C 45000007 */ bc1f .L7F04133C +/* 075E50 7F041320 00000000 */ nop +/* 075E54 7F041324 46001187 */ neg.s $f6, $f2 +/* 075E58 7F041328 46006287 */ neg.s $f10, $f12 +/* 075E5C 7F04132C 46000487 */ neg.s $f18, $f0 +/* 075E60 7F041330 E6060000 */ swc1 $f6, ($s0) +/* 075E64 7F041334 E60A0004 */ swc1 $f10, 4($s0) +/* 075E68 7F041338 E6120008 */ swc1 $f18, 8($s0) +.L7F04133C: +/* 075E6C 7F04133C 0FC1E111 */ jal sub_GAME_7F078444 +/* 075E70 7F041340 00000000 */ nop +/* 075E74 7F041344 00402025 */ move $a0, $v0 +/* 075E78 7F041348 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 075E7C 7F04134C 02002825 */ move $a1, $s0 +/* 075E80 7F041350 44807000 */ mtc1 $zero, $f14 +/* 075E84 7F041354 C6040000 */ lwc1 $f4, ($s0) +/* 075E88 7F041358 02002025 */ move $a0, $s0 +/* 075E8C 7F04135C 26050004 */ addiu $a1, $s0, 4 +/* 075E90 7F041360 46047032 */ c.eq.s $f14, $f4 +/* 075E94 7F041364 00000000 */ nop +/* 075E98 7F041368 4500000C */ bc1f .L7F04139C +/* 075E9C 7F04136C 00000000 */ nop +/* 075EA0 7F041370 C6100004 */ lwc1 $f16, 4($s0) +/* 075EA4 7F041374 46107032 */ c.eq.s $f14, $f16 +/* 075EA8 7F041378 00000000 */ nop +/* 075EAC 7F04137C 45000007 */ bc1f .L7F04139C +/* 075EB0 7F041380 00000000 */ nop +/* 075EB4 7F041384 C6080008 */ lwc1 $f8, 8($s0) +/* 075EB8 7F041388 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 075EBC 7F04138C 46087032 */ c.eq.s $f14, $f8 +/* 075EC0 7F041390 00000000 */ nop +/* 075EC4 7F041394 45030006 */ bc1tl .L7F0413B0 +/* 075EC8 7F041398 44813000 */ mtc1 $at, $f6 +.L7F04139C: +/* 075ECC 7F04139C 0C007DD4 */ jal guNormalize +/* 075ED0 7F0413A0 26060008 */ addiu $a2, $s0, 8 +/* 075ED4 7F0413A4 10000005 */ b .L7F0413BC +/* 075ED8 7F0413A8 8FAB00BC */ lw $t3, 0xbc($sp) +/* 075EDC 7F0413AC 44813000 */ mtc1 $at, $f6 +.L7F0413B0: +/* 075EE0 7F0413B0 00000000 */ nop +/* 075EE4 7F0413B4 E6060008 */ swc1 $f6, 8($s0) +/* 075EE8 7F0413B8 8FAB00BC */ lw $t3, 0xbc($sp) +.L7F0413BC: +/* 075EEC 7F0413BC 24020001 */ li $v0, 1 +/* 075EF0 7F0413C0 AD770000 */ sw $s7, ($t3) +/* 075EF4 7F0413C4 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 075EF8 7F0413C8 8FAC0064 */ lw $t4, 0x64($sp) +/* 075EFC 7F0413CC 10000001 */ b .L7F0413D4 +/* 075F00 7F0413D0 ADAC0000 */ sw $t4, ($t5) +.L7F0413D4: +/* 075F04 7F0413D4 8FBF0044 */ lw $ra, 0x44($sp) +/* 075F08 7F0413D8 8FB00024 */ lw $s0, 0x24($sp) +/* 075F0C 7F0413DC 8FB10028 */ lw $s1, 0x28($sp) +/* 075F10 7F0413E0 8FB2002C */ lw $s2, 0x2c($sp) +/* 075F14 7F0413E4 8FB30030 */ lw $s3, 0x30($sp) +/* 075F18 7F0413E8 8FB40034 */ lw $s4, 0x34($sp) +/* 075F1C 7F0413EC 8FB50038 */ lw $s5, 0x38($sp) +/* 075F20 7F0413F0 8FB6003C */ lw $s6, 0x3c($sp) +/* 075F24 7F0413F4 8FB70040 */ lw $s7, 0x40($sp) +/* 075F28 7F0413F8 03E00008 */ jr $ra +/* 075F2C 7F0413FC 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041400(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041400 +/* 075F30 7F041400 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 075F34 7F041404 AFB50044 */ sw $s5, 0x44($sp) +/* 075F38 7F041408 AFB40040 */ sw $s4, 0x40($sp) +/* 075F3C 7F04140C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 075F40 7F041410 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 075F44 7F041414 00C0A025 */ move $s4, $a2 +/* 075F48 7F041418 00A0A825 */ move $s5, $a1 +/* 075F4C 7F04141C AFBF0054 */ sw $ra, 0x54($sp) +/* 075F50 7F041420 AFA700E4 */ sw $a3, 0xe4($sp) +/* 075F54 7F041424 4481A000 */ mtc1 $at, $f20 +/* 075F58 7F041428 240EFFFF */ li $t6, -1 +/* 075F5C 7F04142C 27AF00C8 */ addiu $t7, $sp, 0xc8 +/* 075F60 7F041430 AFBE0050 */ sw $fp, 0x50($sp) +/* 075F64 7F041434 AFB7004C */ sw $s7, 0x4c($sp) +/* 075F68 7F041438 AFB60048 */ sw $s6, 0x48($sp) +/* 075F6C 7F04143C AFB3003C */ sw $s3, 0x3c($sp) +/* 075F70 7F041440 AFB20038 */ sw $s2, 0x38($sp) +/* 075F74 7F041444 AFB10034 */ sw $s1, 0x34($sp) +/* 075F78 7F041448 AFB00030 */ sw $s0, 0x30($sp) +/* 075F7C 7F04144C AFA400D8 */ sw $a0, 0xd8($sp) +/* 075F80 7F041450 AFAE0094 */ sw $t6, 0x94($sp) +/* 075F84 7F041454 AFAF0010 */ sw $t7, 0x10($sp) +/* 075F88 7F041458 27A700CC */ addiu $a3, $sp, 0xcc +/* 075F8C 7F04145C 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 075F90 7F041460 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 075F94 7F041464 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 075F98 7F041468 8FB800D0 */ lw $t8, 0xd0($sp) +/* 075F9C 7F04146C C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 075FA0 7F041470 5B0000CD */ blezl $t8, .L7F0417A8 +/* 075FA4 7F041474 00001025 */ move $v0, $zero +/* 075FA8 7F041478 C6A00004 */ lwc1 $f0, 4($s5) +/* 075FAC 7F04147C C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 075FB0 7F041480 4600203C */ c.lt.s $f4, $f0 +/* 075FB4 7F041484 00000000 */ nop +/* 075FB8 7F041488 45020007 */ bc1fl .L7F0414A8 +/* 075FBC 7F04148C 4608003C */ c.lt.s $f0, $f8 +/* 075FC0 7F041490 C6860004 */ lwc1 $f6, 4($s4) +/* 075FC4 7F041494 4606203C */ c.lt.s $f4, $f6 +/* 075FC8 7F041498 00000000 */ nop +/* 075FCC 7F04149C 450300C2 */ bc1tl .L7F0417A8 +/* 075FD0 7F0414A0 00001025 */ move $v0, $zero +/* 075FD4 7F0414A4 4608003C */ c.lt.s $f0, $f8 +.L7F0414A8: +/* 075FD8 7F0414A8 00000000 */ nop +/* 075FDC 7F0414AC 45020007 */ bc1fl .L7F0414CC +/* 075FE0 7F0414B0 C6B00000 */ lwc1 $f16, ($s5) +/* 075FE4 7F0414B4 C68A0004 */ lwc1 $f10, 4($s4) +/* 075FE8 7F0414B8 4608503C */ c.lt.s $f10, $f8 +/* 075FEC 7F0414BC 00000000 */ nop +/* 075FF0 7F0414C0 450300B9 */ bc1tl .L7F0417A8 +/* 075FF4 7F0414C4 00001025 */ move $v0, $zero +/* 075FF8 7F0414C8 C6B00000 */ lwc1 $f16, ($s5) +.L7F0414CC: +/* 075FFC 7F0414CC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 076000 7F0414D0 00008025 */ move $s0, $zero +/* 076004 7F0414D4 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 076008 7F0414D8 C6B20008 */ lwc1 $f18, 8($s5) +/* 07600C 7F0414DC E7B200A4 */ swc1 $f18, 0xa4($sp) +/* 076010 7F0414E0 C6840000 */ lwc1 $f4, ($s4) +/* 076014 7F0414E4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 076018 7F0414E8 C6860008 */ lwc1 $f6, 8($s4) +/* 07601C 7F0414EC 1B200043 */ blez $t9, .L7F0415FC +/* 076020 7F0414F0 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 076024 7F0414F4 00008825 */ move $s1, $zero +/* 076028 7F0414F8 27BE00B0 */ addiu $fp, $sp, 0xb0 +/* 07602C 7F0414FC 27B70098 */ addiu $s7, $sp, 0x98 +/* 076030 7F041500 27B600A0 */ addiu $s6, $sp, 0xa0 +/* 076034 7F041504 8FA800D0 */ lw $t0, 0xd0($sp) +.L7F041508: +/* 076038 7F041508 26130001 */ addiu $s3, $s0, 1 +/* 07603C 7F04150C 8FA900D4 */ lw $t1, 0xd4($sp) +/* 076040 7F041510 0268001A */ div $zero, $s3, $t0 +/* 076044 7F041514 01311821 */ addu $v1, $t1, $s1 +/* 076048 7F041518 C46A0000 */ lwc1 $f10, ($v1) +/* 07604C 7F04151C C6AC0000 */ lwc1 $f12, ($s5) +/* 076050 7F041520 C6AE0008 */ lwc1 $f14, 8($s5) +/* 076054 7F041524 8E860000 */ lw $a2, ($s4) +/* 076058 7F041528 8E870008 */ lw $a3, 8($s4) +/* 07605C 7F04152C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 076060 7F041530 C4680004 */ lwc1 $f8, 4($v1) +/* 076064 7F041534 00001010 */ mfhi $v0 +/* 076068 7F041538 000250C0 */ sll $t2, $v0, 3 +/* 07606C 7F04153C 012A2021 */ addu $a0, $t1, $t2 +/* 076070 7F041540 E7A80014 */ swc1 $f8, 0x14($sp) +/* 076074 7F041544 C4900000 */ lwc1 $f16, ($a0) +/* 076078 7F041548 15000002 */ bnez $t0, .L7F041554 +/* 07607C 7F04154C 00000000 */ nop +/* 076080 7F041550 0007000D */ break 7 +.L7F041554: +/* 076084 7F041554 2401FFFF */ li $at, -1 +/* 076088 7F041558 15010004 */ bne $t0, $at, .L7F04156C +/* 07608C 7F04155C 3C018000 */ lui $at, 0x8000 +/* 076090 7F041560 16610002 */ bne $s3, $at, .L7F04156C +/* 076094 7F041564 00000000 */ nop +/* 076098 7F041568 0006000D */ break 6 +.L7F04156C: +/* 07609C 7F04156C E7B00018 */ swc1 $f16, 0x18($sp) +/* 0760A0 7F041570 C4920004 */ lwc1 $f18, 4($a0) +/* 0760A4 7F041574 00409025 */ move $s2, $v0 +/* 0760A8 7F041578 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0760AC 7F04157C E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0760B0 7F041580 50400019 */ beql $v0, $zero, .L7F0415E8 +/* 0760B4 7F041584 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0760B8 7F041588 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0760BC 7F04158C 001260C0 */ sll $t4, $s2, 3 +/* 0760C0 7F041590 02C02025 */ move $a0, $s6 +/* 0760C4 7F041594 01711821 */ addu $v1, $t3, $s1 +/* 0760C8 7F041598 C4640000 */ lwc1 $f4, ($v1) +/* 0760CC 7F04159C 016C1021 */ addu $v0, $t3, $t4 +/* 0760D0 7F0415A0 02E02825 */ move $a1, $s7 +/* 0760D4 7F0415A4 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0760D8 7F0415A8 C4660004 */ lwc1 $f6, 4($v1) +/* 0760DC 7F0415AC 03C03025 */ move $a2, $fp +/* 0760E0 7F0415B0 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 0760E4 7F0415B4 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0760E8 7F0415B8 C44A0000 */ lwc1 $f10, ($v0) +/* 0760EC 7F0415BC E7AA00A8 */ swc1 $f10, 0xa8($sp) +/* 0760F0 7F0415C0 C4480004 */ lwc1 $f8, 4($v0) +/* 0760F4 7F0415C4 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0760F8 7F0415C8 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0760FC 7F0415CC 4614003C */ c.lt.s $f0, $f20 +/* 076100 7F0415D0 00000000 */ nop +/* 076104 7F0415D4 45020004 */ bc1fl .L7F0415E8 +/* 076108 7F0415D8 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 07610C 7F0415DC 46000506 */ mov.s $f20, $f0 +/* 076110 7F0415E0 AFB00094 */ sw $s0, 0x94($sp) +/* 076114 7F0415E4 8FAD00D0 */ lw $t5, 0xd0($sp) +.L7F0415E8: +/* 076118 7F0415E8 02608025 */ move $s0, $s3 +/* 07611C 7F0415EC 26310008 */ addiu $s1, $s1, 8 +/* 076120 7F0415F0 026D082A */ slt $at, $s3, $t5 +/* 076124 7F0415F4 5420FFC4 */ bnezl $at, .L7F041508 +/* 076128 7F0415F8 8FA800D0 */ lw $t0, 0xd0($sp) +.L7F0415FC: +/* 07612C 7F0415FC 8FAE0094 */ lw $t6, 0x94($sp) +/* 076130 7F041600 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 076134 7F041604 27A40088 */ addiu $a0, $sp, 0x88 +/* 076138 7F041608 19C00066 */ blez $t6, .L7F0417A4 +/* 07613C 7F04160C 000EC0C0 */ sll $t8, $t6, 3 +/* 076140 7F041610 8FA800D0 */ lw $t0, 0xd0($sp) +/* 076144 7F041614 25D90001 */ addiu $t9, $t6, 1 +/* 076148 7F041618 01F81021 */ addu $v0, $t7, $t8 +/* 07614C 7F04161C 0328001A */ div $zero, $t9, $t0 +/* 076150 7F041620 4480A000 */ mtc1 $zero, $f20 +/* 076154 7F041624 C4500000 */ lwc1 $f16, ($v0) +/* 076158 7F041628 00004810 */ mfhi $t1 +/* 07615C 7F04162C E7B4008C */ swc1 $f20, 0x8c($sp) +/* 076160 7F041630 E7B00088 */ swc1 $f16, 0x88($sp) +/* 076164 7F041634 C4520004 */ lwc1 $f18, 4($v0) +/* 076168 7F041638 000950C0 */ sll $t2, $t1, 3 +/* 07616C 7F04163C 01EA1821 */ addu $v1, $t7, $t2 +/* 076170 7F041640 E7B20090 */ swc1 $f18, 0x90($sp) +/* 076174 7F041644 C4640000 */ lwc1 $f4, ($v1) +/* 076178 7F041648 E7B40080 */ swc1 $f20, 0x80($sp) +/* 07617C 7F04164C 27AB006C */ addiu $t3, $sp, 0x6c +/* 076180 7F041650 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 076184 7F041654 C4660004 */ lwc1 $f6, 4($v1) +/* 076188 7F041658 15000002 */ bnez $t0, .L7F041664 +/* 07618C 7F04165C 00000000 */ nop +/* 076190 7F041660 0007000D */ break 7 +.L7F041664: +/* 076194 7F041664 2401FFFF */ li $at, -1 +/* 076198 7F041668 15010004 */ bne $t0, $at, .L7F04167C +/* 07619C 7F04166C 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0761A0 7F041670 17210002 */ bne $t9, $at, .L7F04167C +/* 0761A4 7F041674 00000000 */ nop +/* 0761A8 7F041678 0006000D */ break 6 +.L7F04167C: +/* 0761AC 7F04167C AFAB0010 */ sw $t3, 0x10($sp) +/* 0761B0 7F041680 27A5007C */ addiu $a1, $sp, 0x7c +/* 0761B4 7F041684 02A03025 */ move $a2, $s5 +/* 0761B8 7F041688 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0761BC 7F04168C 0FC0984C */ jal sub_GAME_7F026130 +/* 0761C0 7F041690 E7A60084 */ swc1 $f6, 0x84($sp) +/* 0761C4 7F041694 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0761C8 7F041698 C6A80000 */ lwc1 $f8, ($s5) +/* 0761CC 7F04169C 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0761D0 7F0416A0 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 0761D4 7F0416A4 46085401 */ sub.s $f16, $f10, $f8 +/* 0761D8 7F0416A8 C6AA0004 */ lwc1 $f10, 4($s5) +/* 0761DC 7F0416AC C4B20000 */ lwc1 $f18, ($a1) +/* 0761E0 7F0416B0 8FA300F0 */ lw $v1, 0xf0($sp) +/* 0761E4 7F0416B4 460A3201 */ sub.s $f8, $f6, $f10 +/* 0761E8 7F0416B8 46128102 */ mul.s $f4, $f16, $f18 +/* 0761EC 7F0416BC C4B00004 */ lwc1 $f16, 4($a1) +/* 0761F0 7F0416C0 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0761F4 7F0416C4 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0761F8 7F0416C8 46104482 */ mul.s $f18, $f8, $f16 +/* 0761FC 7F0416CC C6A80008 */ lwc1 $f8, 8($s5) +/* 076200 7F0416D0 8FA400EC */ lw $a0, 0xec($sp) +/* 076204 7F0416D4 46085401 */ sub.s $f16, $f10, $f8 +/* 076208 7F0416D8 C46A0000 */ lwc1 $f10, ($v1) +/* 07620C 7F0416DC 46122180 */ add.s $f6, $f4, $f18 +/* 076210 7F0416E0 C4A40008 */ lwc1 $f4, 8($a1) +/* 076214 7F0416E4 46102482 */ mul.s $f18, $f4, $f16 +/* 076218 7F0416E8 46069000 */ add.s $f0, $f18, $f6 +/* 07621C 7F0416EC 460A003C */ c.lt.s $f0, $f10 +/* 076220 7F0416F0 00000000 */ nop +/* 076224 7F0416F4 4502002C */ bc1fl .L7F0417A8 +/* 076228 7F0416F8 00001025 */ move $v0, $zero +/* 07622C 7F0416FC E4600000 */ swc1 $f0, ($v1) +/* 076230 7F041700 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 076234 7F041704 E4480000 */ swc1 $f8, ($v0) +/* 076238 7F041708 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 07623C 7F04170C E4440004 */ swc1 $f4, 4($v0) +/* 076240 7F041710 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 076244 7F041714 E4500008 */ swc1 $f16, 8($v0) +/* 076248 7F041718 C4B20000 */ lwc1 $f18, ($a1) +/* 07624C 7F04171C E4940004 */ swc1 $f20, 4($a0) +/* 076250 7F041720 46009187 */ neg.s $f6, $f18 +/* 076254 7F041724 E4860000 */ swc1 $f6, ($a0) +/* 076258 7F041728 C4840000 */ lwc1 $f4, ($a0) +/* 07625C 7F04172C C4AA0008 */ lwc1 $f10, 8($a1) +/* 076260 7F041730 24850004 */ addiu $a1, $a0, 4 +/* 076264 7F041734 4604A032 */ c.eq.s $f20, $f4 +/* 076268 7F041738 46005207 */ neg.s $f8, $f10 +/* 07626C 7F04173C 45000007 */ bc1f .L7F04175C +/* 076270 7F041740 E4880008 */ swc1 $f8, 8($a0) +/* 076274 7F041744 C4900008 */ lwc1 $f16, 8($a0) +/* 076278 7F041748 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07627C 7F04174C 4610A032 */ c.eq.s $f20, $f16 +/* 076280 7F041750 00000000 */ nop +/* 076284 7F041754 45030006 */ bc1tl .L7F041770 +/* 076288 7F041758 44819000 */ mtc1 $at, $f18 +.L7F04175C: +/* 07628C 7F04175C 0C007DD4 */ jal guNormalize +/* 076290 7F041760 24860008 */ addiu $a2, $a0, 8 +/* 076294 7F041764 10000005 */ b .L7F04177C +/* 076298 7F041768 8FAC00D8 */ lw $t4, 0xd8($sp) +/* 07629C 7F04176C 44819000 */ mtc1 $at, $f18 +.L7F041770: +/* 0762A0 7F041770 00000000 */ nop +/* 0762A4 7F041774 E4920008 */ swc1 $f18, 8($a0) +/* 0762A8 7F041778 8FAC00D8 */ lw $t4, 0xd8($sp) +.L7F04177C: +/* 0762AC 7F04177C 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0762B0 7F041780 24020001 */ li $v0, 1 +/* 0762B4 7F041784 AC2C0B0C */ sw $t4, %lo(D_80030B0C)($at) +/* 0762B8 7F041788 3C018003 */ lui $at, %hi(bodypartshot) +/* 0762BC 7F04178C AC200B10 */ sw $zero, %lo(bodypartshot)($at) +/* 0762C0 7F041790 3C018007 */ lui $at, %hi(objinst) +/* 0762C4 7F041794 AC205B70 */ sw $zero, %lo(objinst)($at) +/* 0762C8 7F041798 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 0762CC 7F04179C 10000002 */ b .L7F0417A8 +/* 0762D0 7F0417A0 AC205B74 */ sw $zero, %lo(dword_CODE_bss_80075B74)($at) +.L7F0417A4: +/* 0762D4 7F0417A4 00001025 */ move $v0, $zero +.L7F0417A8: +/* 0762D8 7F0417A8 8FBF0054 */ lw $ra, 0x54($sp) +/* 0762DC 7F0417AC D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0762E0 7F0417B0 8FB00030 */ lw $s0, 0x30($sp) +/* 0762E4 7F0417B4 8FB10034 */ lw $s1, 0x34($sp) +/* 0762E8 7F0417B8 8FB20038 */ lw $s2, 0x38($sp) +/* 0762EC 7F0417BC 8FB3003C */ lw $s3, 0x3c($sp) +/* 0762F0 7F0417C0 8FB40040 */ lw $s4, 0x40($sp) +/* 0762F4 7F0417C4 8FB50044 */ lw $s5, 0x44($sp) +/* 0762F8 7F0417C8 8FB60048 */ lw $s6, 0x48($sp) +/* 0762FC 7F0417CC 8FB7004C */ lw $s7, 0x4c($sp) +/* 076300 7F0417D0 8FBE0050 */ lw $fp, 0x50($sp) +/* 076304 7F0417D4 03E00008 */ jr $ra +/* 076308 7F0417D8 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0417DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0417DC +/* 07630C 7F0417DC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 076310 7F0417E0 AFB00028 */ sw $s0, 0x28($sp) +/* 076314 7F0417E4 00808025 */ move $s0, $a0 +/* 076318 7F0417E8 AFBF0034 */ sw $ra, 0x34($sp) +/* 07631C 7F0417EC AFB20030 */ sw $s2, 0x30($sp) +/* 076320 7F0417F0 AFB1002C */ sw $s1, 0x2c($sp) +/* 076324 7F0417F4 AFA60060 */ sw $a2, 0x60($sp) +/* 076328 7F0417F8 8C840014 */ lw $a0, 0x14($a0) +/* 07632C 7F0417FC 00A08825 */ move $s1, $a1 +/* 076330 7F041800 00E09025 */ move $s2, $a3 +/* 076334 7F041804 0FC1B403 */ jal getinstsize +/* 076338 7F041808 AFA40054 */ sw $a0, 0x54($sp) +/* 07633C 7F04180C 8E020010 */ lw $v0, 0x10($s0) +/* 076340 7F041810 44801000 */ mtc1 $zero, $f2 +/* 076344 7F041814 8C4E001C */ lw $t6, 0x1c($v0) +/* 076348 7F041818 55C00013 */ bnezl $t6, .L7F041868 +/* 07634C 7F04181C 46000207 */ neg.s $f8, $f0 +/* 076350 7F041820 C6040058 */ lwc1 $f4, 0x58($s0) +/* 076354 7F041824 C6260000 */ lwc1 $f6, ($s1) +/* 076358 7F041828 C608005C */ lwc1 $f8, 0x5c($s0) +/* 07635C 7F04182C C62A0004 */ lwc1 $f10, 4($s1) +/* 076360 7F041830 46062301 */ sub.s $f12, $f4, $f6 +/* 076364 7F041834 C6460000 */ lwc1 $f6, ($s2) +/* 076368 7F041838 C6240008 */ lwc1 $f4, 8($s1) +/* 07636C 7F04183C 460A4381 */ sub.s $f14, $f8, $f10 +/* 076370 7F041840 C6120060 */ lwc1 $f18, 0x60($s0) +/* 076374 7F041844 46066202 */ mul.s $f8, $f12, $f6 +/* 076378 7F041848 C64A0004 */ lwc1 $f10, 4($s2) +/* 07637C 7F04184C 46049401 */ sub.s $f16, $f18, $f4 +/* 076380 7F041850 C6460008 */ lwc1 $f6, 8($s2) +/* 076384 7F041854 460A7482 */ mul.s $f18, $f14, $f10 +/* 076388 7F041858 46124100 */ add.s $f4, $f8, $f18 +/* 07638C 7F04185C 46103282 */ mul.s $f10, $f6, $f16 +/* 076390 7F041860 46045080 */ add.s $f2, $f10, $f4 +/* 076394 7F041864 46000207 */ neg.s $f8, $f0 +.L7F041868: +/* 076398 7F041868 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 07639C 7F04186C 4602403E */ c.le.s $f8, $f2 +/* 0763A0 7F041870 00000000 */ nop +/* 0763A4 7F041874 45020055 */ bc1fl .L7F0419CC +/* 0763A8 7F041878 00001025 */ move $v0, $zero +/* 0763AC 7F04187C 46009180 */ add.s $f6, $f18, $f0 +/* 0763B0 7F041880 4606103E */ c.le.s $f2, $f6 +/* 0763B4 7F041884 00000000 */ nop +/* 0763B8 7F041888 45020050 */ bc1fl .L7F0419CC +/* 0763BC 7F04188C 00001025 */ move $v0, $zero +/* 0763C0 7F041890 904F0001 */ lbu $t7, 1($v0) +/* 0763C4 7F041894 8FA5006C */ lw $a1, 0x6c($sp) +/* 0763C8 7F041898 8FA60070 */ lw $a2, 0x70($sp) +/* 0763CC 7F04189C 31F80002 */ andi $t8, $t7, 2 +/* 0763D0 7F0418A0 1300002A */ beqz $t8, .L7F04194C +/* 0763D4 7F0418A4 8FA40054 */ lw $a0, 0x54($sp) +/* 0763D8 7F0418A8 8FB90078 */ lw $t9, 0x78($sp) +/* 0763DC 7F0418AC 8FA90080 */ lw $t1, 0x80($sp) +/* 0763E0 7F0418B0 8FAA0084 */ lw $t2, 0x84($sp) +/* 0763E4 7F0418B4 02002025 */ move $a0, $s0 +/* 0763E8 7F0418B8 8FA70074 */ lw $a3, 0x74($sp) +/* 0763EC 7F0418BC AFB90010 */ sw $t9, 0x10($sp) +/* 0763F0 7F0418C0 AFA90014 */ sw $t1, 0x14($sp) +/* 0763F4 7F0418C4 0FC10458 */ jal sub_GAME_7F041160 +/* 0763F8 7F0418C8 AFAA0018 */ sw $t2, 0x18($sp) +/* 0763FC 7F0418CC 1040003E */ beqz $v0, .L7F0419C8 +/* 076400 7F0418D0 8FA30074 */ lw $v1, 0x74($sp) +/* 076404 7F0418D4 C46A0000 */ lwc1 $f10, ($v1) +/* 076408 7F0418D8 C6240000 */ lwc1 $f4, ($s1) +/* 07640C 7F0418DC C4680004 */ lwc1 $f8, 4($v1) +/* 076410 7F0418E0 C6320004 */ lwc1 $f18, 4($s1) +/* 076414 7F0418E4 46045301 */ sub.s $f12, $f10, $f4 +/* 076418 7F0418E8 C6440000 */ lwc1 $f4, ($s2) +/* 07641C 7F0418EC C62A0008 */ lwc1 $f10, 8($s1) +/* 076420 7F0418F0 46124381 */ sub.s $f14, $f8, $f18 +/* 076424 7F0418F4 C4660008 */ lwc1 $f6, 8($v1) +/* 076428 7F0418F8 46046202 */ mul.s $f8, $f12, $f4 +/* 07642C 7F0418FC C6520004 */ lwc1 $f18, 4($s2) +/* 076430 7F041900 460A3401 */ sub.s $f16, $f6, $f10 +/* 076434 7F041904 C6440008 */ lwc1 $f4, 8($s2) +/* 076438 7F041908 46127182 */ mul.s $f6, $f14, $f18 +/* 07643C 7F04190C 46064280 */ add.s $f10, $f8, $f6 +/* 076440 7F041910 46102482 */ mul.s $f18, $f4, $f16 +/* 076444 7F041914 44804000 */ mtc1 $zero, $f8 +/* 076448 7F041918 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 07644C 7F04191C 460A9080 */ add.s $f2, $f18, $f10 +/* 076450 7F041920 4602403E */ c.le.s $f8, $f2 +/* 076454 7F041924 00000000 */ nop +/* 076458 7F041928 45020028 */ bc1fl .L7F0419CC +/* 07645C 7F04192C 00001025 */ move $v0, $zero +/* 076460 7F041930 4606103E */ c.le.s $f2, $f6 +/* 076464 7F041934 8FA8007C */ lw $t0, 0x7c($sp) +/* 076468 7F041938 24020001 */ li $v0, 1 +/* 07646C 7F04193C 45020023 */ bc1fl .L7F0419CC +/* 076470 7F041940 00001025 */ move $v0, $zero +/* 076474 7F041944 10000021 */ b .L7F0419CC +/* 076478 7F041948 E5020000 */ swc1 $f2, ($t0) +.L7F04194C: +/* 07647C 7F04194C 0FC1B403 */ jal getinstsize +/* 076480 7F041950 AFA2003C */ sw $v0, 0x3c($sp) +/* 076484 7F041954 44070000 */ mfc1 $a3, $f0 +/* 076488 7F041958 02202025 */ move $a0, $s1 +/* 07648C 7F04195C 02402825 */ move $a1, $s2 +/* 076490 7F041960 0FC1041D */ jal sub_GAME_7F041074 +/* 076494 7F041964 26060058 */ addiu $a2, $s0, 0x58 +/* 076498 7F041968 10400017 */ beqz $v0, .L7F0419C8 +/* 07649C 7F04196C 8FA30074 */ lw $v1, 0x74($sp) +/* 0764A0 7F041970 8FA8007C */ lw $t0, 0x7c($sp) +/* 0764A4 7F041974 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0764A8 7F041978 02202825 */ move $a1, $s1 +/* 0764AC 7F04197C 02403825 */ move $a3, $s2 +/* 0764B0 7F041980 E5040000 */ swc1 $f4, ($t0) +/* 0764B4 7F041984 8FAB0078 */ lw $t3, 0x78($sp) +/* 0764B8 7F041988 AFA30010 */ sw $v1, 0x10($sp) +/* 0764BC 7F04198C 8FA60060 */ lw $a2, 0x60($sp) +/* 0764C0 7F041990 8FA4003C */ lw $a0, 0x3c($sp) +/* 0764C4 7F041994 AFA80018 */ sw $t0, 0x18($sp) +/* 0764C8 7F041998 0FC10500 */ jal sub_GAME_7F041400 +/* 0764CC 7F04199C AFAB0014 */ sw $t3, 0x14($sp) +/* 0764D0 7F0419A0 10400009 */ beqz $v0, .L7F0419C8 +/* 0764D4 7F0419A4 8FAC0054 */ lw $t4, 0x54($sp) +/* 0764D8 7F0419A8 8FAD0080 */ lw $t5, 0x80($sp) +/* 0764DC 7F0419AC 24020001 */ li $v0, 1 +/* 0764E0 7F0419B0 ADAC0000 */ sw $t4, ($t5) +/* 0764E4 7F0419B4 8D8E0008 */ lw $t6, 8($t4) +/* 0764E8 7F0419B8 8FB80084 */ lw $t8, 0x84($sp) +/* 0764EC 7F0419BC 8DCF0000 */ lw $t7, ($t6) +/* 0764F0 7F0419C0 10000002 */ b .L7F0419CC +/* 0764F4 7F0419C4 AF0F0000 */ sw $t7, ($t8) +.L7F0419C8: +/* 0764F8 7F0419C8 00001025 */ move $v0, $zero +.L7F0419CC: +/* 0764FC 7F0419CC 8FBF0034 */ lw $ra, 0x34($sp) +/* 076500 7F0419D0 8FB00028 */ lw $s0, 0x28($sp) +/* 076504 7F0419D4 8FB1002C */ lw $s1, 0x2c($sp) +/* 076508 7F0419D8 8FB20030 */ lw $s2, 0x30($sp) +/* 07650C 7F0419DC 03E00008 */ jr $ra +/* 076510 7F0419E0 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0419E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0419E4 +/* 076514 7F0419E4 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 076518 7F0419E8 AFBF0064 */ sw $ra, 0x64($sp) +/* 07651C 7F0419EC AFBE0060 */ sw $fp, 0x60($sp) +/* 076520 7F0419F0 AFB7005C */ sw $s7, 0x5c($sp) +/* 076524 7F0419F4 AFB60058 */ sw $s6, 0x58($sp) +/* 076528 7F0419F8 AFB50054 */ sw $s5, 0x54($sp) +/* 07652C 7F0419FC AFB40050 */ sw $s4, 0x50($sp) +/* 076530 7F041A00 AFB3004C */ sw $s3, 0x4c($sp) +/* 076534 7F041A04 AFB20048 */ sw $s2, 0x48($sp) +/* 076538 7F041A08 AFB10044 */ sw $s1, 0x44($sp) +/* 07653C 7F041A0C AFB00040 */ sw $s0, 0x40($sp) +/* 076540 7F041A10 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 076544 7F041A14 8C830010 */ lw $v1, 0x10($a0) +/* 076548 7F041A18 C7B400A8 */ lwc1 $f20, 0xa8($sp) +/* 07654C 7F041A1C 8FB700AC */ lw $s7, 0xac($sp) +/* 076550 7F041A20 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 076554 7F041A24 27AE008C */ addiu $t6, $sp, 0x8c +/* 076558 7F041A28 27AF0080 */ addiu $t7, $sp, 0x80 +/* 07655C 7F041A2C 27B8007C */ addiu $t8, $sp, 0x7c +/* 076560 7F041A30 27B90078 */ addiu $t9, $sp, 0x78 +/* 076564 7F041A34 27A80074 */ addiu $t0, $sp, 0x74 +/* 076568 7F041A38 00808025 */ move $s0, $a0 +/* 07656C 7F041A3C 00A09825 */ move $s3, $a1 +/* 076570 7F041A40 00C0A025 */ move $s4, $a2 +/* 076574 7F041A44 00E0A825 */ move $s5, $a3 +/* 076578 7F041A48 0000B025 */ move $s6, $zero +/* 07657C 7F041A4C AFA8002C */ sw $t0, 0x2c($sp) +/* 076580 7F041A50 AFB90028 */ sw $t9, 0x28($sp) +/* 076584 7F041A54 AFB80024 */ sw $t8, 0x24($sp) +/* 076588 7F041A58 AFAF0020 */ sw $t7, 0x20($sp) +/* 07658C 7F041A5C AFAE001C */ sw $t6, 0x1c($sp) +/* 076590 7F041A60 AFA3006C */ sw $v1, 0x6c($sp) +/* 076594 7F041A64 E7B40010 */ swc1 $f20, 0x10($sp) +/* 076598 7F041A68 AFB70014 */ sw $s7, 0x14($sp) +/* 07659C 7F041A6C 0FC105F7 */ jal sub_GAME_7F0417DC +/* 0765A0 7F041A70 AFBE0018 */ sw $fp, 0x18($sp) +/* 0765A4 7F041A74 10400024 */ beqz $v0, .L7F041B08 +/* 0765A8 7F041A78 8FA3006C */ lw $v1, 0x6c($sp) +/* 0765AC 7F041A7C 8FA900BC */ lw $t1, 0xbc($sp) +/* 0765B0 7F041A80 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0765B4 7F041A84 8FB100B4 */ lw $s1, 0xb4($sp) +/* 0765B8 7F041A88 C5260000 */ lwc1 $f6, ($t1) +/* 0765BC 7F041A8C 8FB200B8 */ lw $s2, 0xb8($sp) +/* 0765C0 7F041A90 4606203C */ c.lt.s $f4, $f6 +/* 0765C4 7F041A94 00000000 */ nop +/* 0765C8 7F041A98 4502001C */ bc1fl .L7F041B0C +/* 0765CC 7F041A9C 906E0001 */ lbu $t6, 1($v1) +/* 0765D0 7F041AA0 E5240000 */ swc1 $f4, ($t1) +/* 0765D4 7F041AA4 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0765D8 7F041AA8 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0765DC 7F041AAC 240BFFFF */ li $t3, -1 +/* 0765E0 7F041AB0 E6280000 */ swc1 $f8, ($s1) +/* 0765E4 7F041AB4 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0765E8 7F041AB8 24160001 */ li $s6, 1 +/* 0765EC 7F041ABC E62A0004 */ swc1 $f10, 4($s1) +/* 0765F0 7F041AC0 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 0765F4 7F041AC4 E6300008 */ swc1 $f16, 8($s1) +/* 0765F8 7F041AC8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 0765FC 7F041ACC E6520000 */ swc1 $f18, ($s2) +/* 076600 7F041AD0 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 076604 7F041AD4 E6460004 */ swc1 $f6, 4($s2) +/* 076608 7F041AD8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 07660C 7F041ADC E6440008 */ swc1 $f4, 8($s2) +/* 076610 7F041AE0 8E0A0010 */ lw $t2, 0x10($s0) +/* 076614 7F041AE4 8FAC0078 */ lw $t4, 0x78($sp) +/* 076618 7F041AE8 8FAD0074 */ lw $t5, 0x74($sp) +/* 07661C 7F041AEC AC2A0B0C */ sw $t2, %lo(D_80030B0C)($at) +/* 076620 7F041AF0 3C018003 */ lui $at, %hi(bodypartshot) +/* 076624 7F041AF4 AC2B0B10 */ sw $t3, %lo(bodypartshot)($at) +/* 076628 7F041AF8 3C018007 */ lui $at, %hi(objinst) +/* 07662C 7F041AFC AC2C5B70 */ sw $t4, %lo(objinst)($at) +/* 076630 7F041B00 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 076634 7F041B04 AC2D5B74 */ sw $t5, %lo(dword_CODE_bss_80075B74)($at) +.L7F041B08: +/* 076638 7F041B08 906E0001 */ lbu $t6, 1($v1) +.L7F041B0C: +/* 07663C 7F041B0C 8FB100B4 */ lw $s1, 0xb4($sp) +/* 076640 7F041B10 8FB200B8 */ lw $s2, 0xb8($sp) +/* 076644 7F041B14 31CF0002 */ andi $t7, $t6, 2 +/* 076648 7F041B18 51E0001A */ beql $t7, $zero, .L7F041B84 +/* 07664C 7F041B1C 8FBF0064 */ lw $ra, 0x64($sp) +/* 076650 7F041B20 8C700020 */ lw $s0, 0x20($v1) +/* 076654 7F041B24 52000017 */ beql $s0, $zero, .L7F041B84 +/* 076658 7F041B28 8FBF0064 */ lw $ra, 0x64($sp) +/* 07665C 7F041B2C 92180001 */ lbu $t8, 1($s0) +.L7F041B30: +/* 076660 7F041B30 02602825 */ move $a1, $s3 +/* 076664 7F041B34 02803025 */ move $a2, $s4 +/* 076668 7F041B38 33190002 */ andi $t9, $t8, 2 +/* 07666C 7F041B3C 1320000D */ beqz $t9, .L7F041B74 +/* 076670 7F041B40 02A03825 */ move $a3, $s5 +/* 076674 7F041B44 8E040004 */ lw $a0, 4($s0) +/* 076678 7F041B48 8FA800BC */ lw $t0, 0xbc($sp) +/* 07667C 7F041B4C AFB20020 */ sw $s2, 0x20($sp) +/* 076680 7F041B50 AFB1001C */ sw $s1, 0x1c($sp) +/* 076684 7F041B54 AFBE0018 */ sw $fp, 0x18($sp) +/* 076688 7F041B58 AFB70014 */ sw $s7, 0x14($sp) +/* 07668C 7F041B5C E7B40010 */ swc1 $f20, 0x10($sp) +/* 076690 7F041B60 0FC10679 */ jal sub_GAME_7F0419E4 +/* 076694 7F041B64 AFA80024 */ sw $t0, 0x24($sp) +/* 076698 7F041B68 50400003 */ beql $v0, $zero, .L7F041B78 +/* 07669C 7F041B6C 8E100024 */ lw $s0, 0x24($s0) +/* 0766A0 7F041B70 24160001 */ li $s6, 1 +.L7F041B74: +/* 0766A4 7F041B74 8E100024 */ lw $s0, 0x24($s0) +.L7F041B78: +/* 0766A8 7F041B78 5600FFED */ bnezl $s0, .L7F041B30 +/* 0766AC 7F041B7C 92180001 */ lbu $t8, 1($s0) +/* 0766B0 7F041B80 8FBF0064 */ lw $ra, 0x64($sp) +.L7F041B84: +/* 0766B4 7F041B84 02C01025 */ move $v0, $s6 +/* 0766B8 7F041B88 8FB60058 */ lw $s6, 0x58($sp) +/* 0766BC 7F041B8C D7B40038 */ ldc1 $f20, 0x38($sp) +/* 0766C0 7F041B90 8FB00040 */ lw $s0, 0x40($sp) +/* 0766C4 7F041B94 8FB10044 */ lw $s1, 0x44($sp) +/* 0766C8 7F041B98 8FB20048 */ lw $s2, 0x48($sp) +/* 0766CC 7F041B9C 8FB3004C */ lw $s3, 0x4c($sp) +/* 0766D0 7F041BA0 8FB40050 */ lw $s4, 0x50($sp) +/* 0766D4 7F041BA4 8FB50054 */ lw $s5, 0x54($sp) +/* 0766D8 7F041BA8 8FB7005C */ lw $s7, 0x5c($sp) +/* 0766DC 7F041BAC 8FBE0060 */ lw $fp, 0x60($sp) +/* 0766E0 7F041BB0 03E00008 */ jr $ra +/* 0766E4 7F041BB4 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041BB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041BB8 +/* 0766E8 7F041BB8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0766EC 7F041BBC AFA70074 */ sw $a3, 0x74($sp) +/* 0766F0 7F041BC0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0766F4 7F041BC4 AFB20028 */ sw $s2, 0x28($sp) +/* 0766F8 7F041BC8 AFB10024 */ sw $s1, 0x24($sp) +/* 0766FC 7F041BCC AFB00020 */ sw $s0, 0x20($sp) +/* 076700 7F041BD0 AFA40068 */ sw $a0, 0x68($sp) +/* 076704 7F041BD4 00803825 */ move $a3, $a0 +/* 076708 7F041BD8 8C920018 */ lw $s2, 0x18($a0) +/* 07670C 7F041BDC 8C84001C */ lw $a0, 0x1c($a0) +/* 076710 7F041BE0 00C08025 */ move $s0, $a2 +/* 076714 7F041BE4 00A08825 */ move $s1, $a1 +/* 076718 7F041BE8 0FC1B403 */ jal getinstsize +/* 07671C 7F041BEC AFA70068 */ sw $a3, 0x68($sp) +/* 076720 7F041BF0 C6440008 */ lwc1 $f4, 8($s2) +/* 076724 7F041BF4 C6260000 */ lwc1 $f6, ($s1) +/* 076728 7F041BF8 C648000C */ lwc1 $f8, 0xc($s2) +/* 07672C 7F041BFC C62A0004 */ lwc1 $f10, 4($s1) +/* 076730 7F041C00 46062081 */ sub.s $f2, $f4, $f6 +/* 076734 7F041C04 C6060000 */ lwc1 $f6, ($s0) +/* 076738 7F041C08 C6240008 */ lwc1 $f4, 8($s1) +/* 07673C 7F041C0C 460A4301 */ sub.s $f12, $f8, $f10 +/* 076740 7F041C10 C6520010 */ lwc1 $f18, 0x10($s2) +/* 076744 7F041C14 46061202 */ mul.s $f8, $f2, $f6 +/* 076748 7F041C18 C60A0004 */ lwc1 $f10, 4($s0) +/* 07674C 7F041C1C 46049381 */ sub.s $f14, $f18, $f4 +/* 076750 7F041C20 C6060008 */ lwc1 $f6, 8($s0) +/* 076754 7F041C24 460A6482 */ mul.s $f18, $f12, $f10 +/* 076758 7F041C28 46124100 */ add.s $f4, $f8, $f18 +/* 07675C 7F041C2C 460E3282 */ mul.s $f10, $f6, $f14 +/* 076760 7F041C30 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 076764 7F041C34 46000207 */ neg.s $f8, $f0 +/* 076768 7F041C38 46045400 */ add.s $f16, $f10, $f4 +/* 07676C 7F041C3C 4610403E */ c.le.s $f8, $f16 +/* 076770 7F041C40 00000000 */ nop +/* 076774 7F041C44 4502006B */ bc1fl .L7F041DF4 +/* 076778 7F041C48 00001025 */ move $v0, $zero +/* 07677C 7F041C4C 46009180 */ add.s $f6, $f18, $f0 +/* 076780 7F041C50 4606803E */ c.le.s $f16, $f6 +/* 076784 7F041C54 00000000 */ nop +/* 076788 7F041C58 45020066 */ bc1fl .L7F041DF4 +/* 07678C 7F041C5C 00001025 */ move $v0, $zero +/* 076790 7F041C60 924E0001 */ lbu $t6, 1($s2) +/* 076794 7F041C64 8FB80068 */ lw $t8, 0x68($sp) +/* 076798 7F041C68 27A40038 */ addiu $a0, $sp, 0x38 +/* 07679C 7F041C6C 31CF0002 */ andi $t7, $t6, 2 +/* 0767A0 7F041C70 11E0005F */ beqz $t7, .L7F041DF0 +/* 0767A4 7F041C74 27A70040 */ addiu $a3, $sp, 0x40 +/* 0767A8 7F041C78 8F190020 */ lw $t9, 0x20($t8) +/* 0767AC 7F041C7C 27A8003C */ addiu $t0, $sp, 0x3c +/* 0767B0 7F041C80 AFA80010 */ sw $t0, 0x10($sp) +/* 0767B4 7F041C84 8FA50078 */ lw $a1, 0x78($sp) +/* 0767B8 7F041C88 8FA6007C */ lw $a2, 0x7c($sp) +/* 0767BC 7F041C8C 0FC1B004 */ jal sub_GAME_7F06C010 +/* 0767C0 7F041C90 AFB90038 */ sw $t9, 0x38($sp) +/* 0767C4 7F041C94 18400056 */ blez $v0, .L7F041DF0 +/* 0767C8 7F041C98 AFA20044 */ sw $v0, 0x44($sp) +/* 0767CC 7F041C9C 8FA40040 */ lw $a0, 0x40($sp) +/* 0767D0 7F041CA0 8FA5003C */ lw $a1, 0x3c($sp) +/* 0767D4 7F041CA4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0767D8 7F041CA8 00003025 */ move $a2, $zero +/* 0767DC 7F041CAC 8FA30078 */ lw $v1, 0x78($sp) +/* 0767E0 7F041CB0 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0767E4 7F041CB4 8FA7007C */ lw $a3, 0x7c($sp) +/* 0767E8 7F041CB8 C4640000 */ lwc1 $f4, ($v1) +/* 0767EC 7F041CBC C4480034 */ lwc1 $f8, 0x34($v0) +/* 0767F0 7F041CC0 C4720004 */ lwc1 $f18, 4($v1) +/* 0767F4 7F041CC4 46045081 */ sub.s $f2, $f10, $f4 +/* 0767F8 7F041CC8 C4E40000 */ lwc1 $f4, ($a3) +/* 0767FC 7F041CCC C4460038 */ lwc1 $f6, 0x38($v0) +/* 076800 7F041CD0 46124301 */ sub.s $f12, $f8, $f18 +/* 076804 7F041CD4 C46A0008 */ lwc1 $f10, 8($v1) +/* 076808 7F041CD8 46041202 */ mul.s $f8, $f2, $f4 +/* 07680C 7F041CDC C4F20004 */ lwc1 $f18, 4($a3) +/* 076810 7F041CE0 460A3381 */ sub.s $f14, $f6, $f10 +/* 076814 7F041CE4 C4E40008 */ lwc1 $f4, 8($a3) +/* 076818 7F041CE8 46126182 */ mul.s $f6, $f12, $f18 +/* 07681C 7F041CEC 8FA50088 */ lw $a1, 0x88($sp) +/* 076820 7F041CF0 8FA20080 */ lw $v0, 0x80($sp) +/* 076824 7F041CF4 460E2482 */ mul.s $f18, $f4, $f14 +/* 076828 7F041CF8 8FA40084 */ lw $a0, 0x84($sp) +/* 07682C 7F041CFC 46064280 */ add.s $f10, $f8, $f6 +/* 076830 7F041D00 C4A80000 */ lwc1 $f8, ($a1) +/* 076834 7F041D04 460A9000 */ add.s $f0, $f18, $f10 +/* 076838 7F041D08 4608003C */ c.lt.s $f0, $f8 +/* 07683C 7F041D0C 00000000 */ nop +/* 076840 7F041D10 45020038 */ bc1fl .L7F041DF4 +/* 076844 7F041D14 00001025 */ move $v0, $zero +/* 076848 7F041D18 E4A00000 */ swc1 $f0, ($a1) +/* 07684C 7F041D1C C6060000 */ lwc1 $f6, ($s0) +/* 076850 7F041D20 C6320000 */ lwc1 $f18, ($s1) +/* 076854 7F041D24 44801000 */ mtc1 $zero, $f2 +/* 076858 7F041D28 46003102 */ mul.s $f4, $f6, $f0 +/* 07685C 7F041D2C 24850004 */ addiu $a1, $a0, 4 +/* 076860 7F041D30 46122280 */ add.s $f10, $f4, $f18 +/* 076864 7F041D34 E44A0000 */ swc1 $f10, ($v0) +/* 076868 7F041D38 C6080004 */ lwc1 $f8, 4($s0) +/* 07686C 7F041D3C C6240004 */ lwc1 $f4, 4($s1) +/* 076870 7F041D40 46004182 */ mul.s $f6, $f8, $f0 +/* 076874 7F041D44 46043480 */ add.s $f18, $f6, $f4 +/* 076878 7F041D48 E4520004 */ swc1 $f18, 4($v0) +/* 07687C 7F041D4C C60A0008 */ lwc1 $f10, 8($s0) +/* 076880 7F041D50 C6260008 */ lwc1 $f6, 8($s1) +/* 076884 7F041D54 46005202 */ mul.s $f8, $f10, $f0 +/* 076888 7F041D58 46064100 */ add.s $f4, $f8, $f6 +/* 07688C 7F041D5C E4440008 */ swc1 $f4, 8($v0) +/* 076890 7F041D60 C6120000 */ lwc1 $f18, ($s0) +/* 076894 7F041D64 E4820004 */ swc1 $f2, 4($a0) +/* 076898 7F041D68 46009287 */ neg.s $f10, $f18 +/* 07689C 7F041D6C E48A0000 */ swc1 $f10, ($a0) +/* 0768A0 7F041D70 C4840000 */ lwc1 $f4, ($a0) +/* 0768A4 7F041D74 C6080008 */ lwc1 $f8, 8($s0) +/* 0768A8 7F041D78 46041032 */ c.eq.s $f2, $f4 +/* 0768AC 7F041D7C 46004187 */ neg.s $f6, $f8 +/* 0768B0 7F041D80 45000007 */ bc1f .L7F041DA0 +/* 0768B4 7F041D84 E4860008 */ swc1 $f6, 8($a0) +/* 0768B8 7F041D88 C4920008 */ lwc1 $f18, 8($a0) +/* 0768BC 7F041D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0768C0 7F041D90 46121032 */ c.eq.s $f2, $f18 +/* 0768C4 7F041D94 00000000 */ nop +/* 0768C8 7F041D98 45030006 */ bc1tl .L7F041DB4 +/* 0768CC 7F041D9C 44815000 */ mtc1 $at, $f10 +.L7F041DA0: +/* 0768D0 7F041DA0 0C007DD4 */ jal guNormalize +/* 0768D4 7F041DA4 24860008 */ addiu $a2, $a0, 8 +/* 0768D8 7F041DA8 10000005 */ b .L7F041DC0 +/* 0768DC 7F041DAC 8FA90044 */ lw $t1, 0x44($sp) +/* 0768E0 7F041DB0 44815000 */ mtc1 $at, $f10 +.L7F041DB4: +/* 0768E4 7F041DB4 00000000 */ nop +/* 0768E8 7F041DB8 E48A0008 */ swc1 $f10, 8($a0) +/* 0768EC 7F041DBC 8FA90044 */ lw $t1, 0x44($sp) +.L7F041DC0: +/* 0768F0 7F041DC0 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0768F4 7F041DC4 AC320B0C */ sw $s2, %lo(D_80030B0C)($at) +/* 0768F8 7F041DC8 8FAA0040 */ lw $t2, 0x40($sp) +/* 0768FC 7F041DCC 3C018003 */ lui $at, %hi(bodypartshot) +/* 076900 7F041DD0 AC290B10 */ sw $t1, %lo(bodypartshot)($at) +/* 076904 7F041DD4 3C018007 */ lui $at, %hi(objinst) +/* 076908 7F041DD8 8FAB003C */ lw $t3, 0x3c($sp) +/* 07690C 7F041DDC AC2A5B70 */ sw $t2, %lo(objinst)($at) +/* 076910 7F041DE0 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 076914 7F041DE4 24020001 */ li $v0, 1 +/* 076918 7F041DE8 10000002 */ b .L7F041DF4 +/* 07691C 7F041DEC AC2B5B74 */ sw $t3, %lo(dword_CODE_bss_80075B74)($at) +.L7F041DF0: +/* 076920 7F041DF0 00001025 */ move $v0, $zero +.L7F041DF4: +/* 076924 7F041DF4 8FBF002C */ lw $ra, 0x2c($sp) +/* 076928 7F041DF8 8FB00020 */ lw $s0, 0x20($sp) +/* 07692C 7F041DFC 8FB10024 */ lw $s1, 0x24($sp) +/* 076930 7F041E00 8FB20028 */ lw $s2, 0x28($sp) +/* 076934 7F041E04 03E00008 */ jr $ra +/* 076938 7F041E08 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041E0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041E0C +/* 07693C 7F041E0C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 076940 7F041E10 AFBF005C */ sw $ra, 0x5c($sp) +/* 076944 7F041E14 AFB40048 */ sw $s4, 0x48($sp) +/* 076948 7F041E18 AFB20040 */ sw $s2, 0x40($sp) +/* 07694C 7F041E1C 00E09025 */ move $s2, $a3 +/* 076950 7F041E20 00A0A025 */ move $s4, $a1 +/* 076954 7F041E24 AFBE0058 */ sw $fp, 0x58($sp) +/* 076958 7F041E28 AFB70054 */ sw $s7, 0x54($sp) +/* 07695C 7F041E2C AFB60050 */ sw $s6, 0x50($sp) +/* 076960 7F041E30 AFB5004C */ sw $s5, 0x4c($sp) +/* 076964 7F041E34 AFB30044 */ sw $s3, 0x44($sp) +/* 076968 7F041E38 AFB1003C */ sw $s1, 0x3c($sp) +/* 07696C 7F041E3C AFB00038 */ sw $s0, 0x38($sp) +/* 076970 7F041E40 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 076974 7F041E44 AFA400B8 */ sw $a0, 0xb8($sp) +/* 076978 7F041E48 AFA600C0 */ sw $a2, 0xc0($sp) +/* 07697C 7F041E4C AFA000B4 */ sw $zero, 0xb4($sp) +/* 076980 7F041E50 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 076984 7F041E54 AFA000A4 */ sw $zero, 0xa4($sp) +/* 076988 7F041E58 8FA300C0 */ lw $v1, 0xc0($sp) +/* 07698C 7F041E5C AFA20074 */ sw $v0, 0x74($sp) +/* 076990 7F041E60 C6860000 */ lwc1 $f6, ($s4) +/* 076994 7F041E64 C4640000 */ lwc1 $f4, ($v1) +/* 076998 7F041E68 46062201 */ sub.s $f8, $f4, $f6 +/* 07699C 7F041E6C E7A80098 */ swc1 $f8, 0x98($sp) +/* 0769A0 7F041E70 C6900004 */ lwc1 $f16, 4($s4) +/* 0769A4 7F041E74 C46A0004 */ lwc1 $f10, 4($v1) +/* 0769A8 7F041E78 46105481 */ sub.s $f18, $f10, $f16 +/* 0769AC 7F041E7C C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0769B0 7F041E80 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0769B4 7F041E84 C6860008 */ lwc1 $f6, 8($s4) +/* 0769B8 7F041E88 C4640008 */ lwc1 $f4, 8($v1) +/* 0769BC 7F041E8C 460A5402 */ mul.s $f16, $f10, $f10 +/* 0769C0 7F041E90 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0769C4 7F041E94 46062201 */ sub.s $f8, $f4, $f6 +/* 0769C8 7F041E98 46129102 */ mul.s $f4, $f18, $f18 +/* 0769CC 7F041E9C E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0769D0 7F041EA0 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0769D4 7F041EA4 46084282 */ mul.s $f10, $f8, $f8 +/* 0769D8 7F041EA8 46048180 */ add.s $f6, $f16, $f4 +/* 0769DC 7F041EAC 0C007DF8 */ jal sqrtf +/* 0769E0 7F041EB0 46065300 */ add.s $f12, $f10, $f6 +/* 0769E4 7F041EB4 44809000 */ mtc1 $zero, $f18 +/* 0769E8 7F041EB8 46000506 */ mov.s $f20, $f0 +/* 0769EC 7F041EBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0769F0 7F041EC0 46120032 */ c.eq.s $f0, $f18 +/* 0769F4 7F041EC4 00000000 */ nop +/* 0769F8 7F041EC8 45020004 */ bc1fl .L7F041EDC +/* 0769FC 7F041ECC 44818000 */ mtc1 $at, $f16 +/* 076A00 7F041ED0 100000D1 */ b .L7F042218 +/* 076A04 7F041ED4 00001025 */ move $v0, $zero +/* 076A08 7F041ED8 44818000 */ mtc1 $at, $f16 +.L7F041EDC: +/* 076A0C 7F041EDC C7A40098 */ lwc1 $f4, 0x98($sp) +/* 076A10 7F041EE0 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 076A14 7F041EE4 46148003 */ div.s $f0, $f16, $f20 +/* 076A18 7F041EE8 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 076A1C 7F041EEC 46002202 */ mul.s $f8, $f4, $f0 +/* 076A20 7F041EF0 00000000 */ nop +/* 076A24 7F041EF4 46005182 */ mul.s $f6, $f10, $f0 +/* 076A28 7F041EF8 00000000 */ nop +/* 076A2C 7F041EFC 46009402 */ mul.s $f16, $f18, $f0 +/* 076A30 7F041F00 E7A80098 */ swc1 $f8, 0x98($sp) +/* 076A34 7F041F04 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 076A38 7F041F08 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 076A3C 7F041F0C C6840000 */ lwc1 $f4, ($s4) +/* 076A40 7F041F10 E7A40088 */ swc1 $f4, 0x88($sp) +/* 076A44 7F041F14 C6880004 */ lwc1 $f8, 4($s4) +/* 076A48 7F041F18 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 076A4C 7F041F1C C68A0008 */ lwc1 $f10, 8($s4) +/* 076A50 7F041F20 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 076A54 7F041F24 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 076A58 7F041F28 00402025 */ move $a0, $v0 +/* 076A5C 7F041F2C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 076A60 7F041F30 27A50088 */ addiu $a1, $sp, 0x88 +/* 076A64 7F041F34 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 076A68 7F041F38 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 076A6C 7F041F3C C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 076A70 7F041F40 E7A6007C */ swc1 $f6, 0x7c($sp) +/* 076A74 7F041F44 E7B20080 */ swc1 $f18, 0x80($sp) +/* 076A78 7F041F48 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 076A7C 7F041F4C E7B00084 */ swc1 $f16, 0x84($sp) +/* 076A80 7F041F50 00402025 */ move $a0, $v0 +/* 076A84 7F041F54 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 076A88 7F041F58 27A5007C */ addiu $a1, $sp, 0x7c +/* 076A8C 7F041F5C 12400099 */ beqz $s2, .L7F0421C4 +/* 076A90 7F041F60 E7B400A8 */ swc1 $f20, 0xa8($sp) +/* 076A94 7F041F64 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 076A98 7F041F68 8FA400D0 */ lw $a0, 0xd0($sp) +/* 076A9C 7F041F6C 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 076AA0 7F041F70 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 076AA4 7F041F74 27BE00A8 */ addiu $fp, $sp, 0xa8 +/* 076AA8 7F041F78 27B70098 */ addiu $s7, $sp, 0x98 +/* 076AAC 7F041F7C 86620000 */ lh $v0, ($s3) +/* 076AB0 7F041F80 8FB600CC */ lw $s6, 0xcc($sp) +/* 076AB4 7F041F84 8FB500C8 */ lw $s5, 0xc8($sp) +/* 076AB8 7F041F88 0440008E */ bltz $v0, .L7F0421C4 +/* 076ABC 7F041F8C 00027080 */ sll $t6, $v0, 2 +.L7F041F90: +/* 076AC0 7F041F90 01C27023 */ subu $t6, $t6, $v0 +/* 076AC4 7F041F94 000E7080 */ sll $t6, $t6, 2 +/* 076AC8 7F041F98 8FB800B8 */ lw $t8, 0xb8($sp) +/* 076ACC 7F041F9C 01C27021 */ addu $t6, $t6, $v0 +/* 076AD0 7F041FA0 3C0F8007 */ lui $t7, %hi(pos_data_entry) +/* 076AD4 7F041FA4 25EF9C38 */ addiu $t7, %lo(pos_data_entry) # addiu $t7, $t7, -0x63c8 +/* 076AD8 7F041FA8 000E7080 */ sll $t6, $t6, 2 +/* 076ADC 7F041FAC 01CF8021 */ addu $s0, $t6, $t7 +/* 076AE0 7F041FB0 52180081 */ beql $s0, $t8, .L7F0421B8 +/* 076AE4 7F041FB4 86620002 */ lh $v0, 2($s3) +/* 076AE8 7F041FB8 92020000 */ lbu $v0, ($s0) +/* 076AEC 7F041FBC 24010001 */ li $at, 1 +/* 076AF0 7F041FC0 10410005 */ beq $v0, $at, .L7F041FD8 +/* 076AF4 7F041FC4 24010004 */ li $at, 4 +/* 076AF8 7F041FC8 10410003 */ beq $v0, $at, .L7F041FD8 +/* 076AFC 7F041FCC 24010002 */ li $at, 2 +/* 076B00 7F041FD0 54410030 */ bnel $v0, $at, .L7F042094 +/* 076B04 7F041FD4 24010003 */ li $at, 3 +.L7F041FD8: +/* 076B08 7F041FD8 8E110004 */ lw $s1, 4($s0) +/* 076B0C 7F041FDC 8E390064 */ lw $t9, 0x64($s1) +/* 076B10 7F041FE0 33280008 */ andi $t0, $t9, 8 +/* 076B14 7F041FE4 55000074 */ bnezl $t0, .L7F0421B8 +/* 076B18 7F041FE8 86620002 */ lh $v0, 2($s3) +/* 076B1C 7F041FEC 8E29000C */ lw $t1, 0xc($s1) +/* 076B20 7F041FF0 24010002 */ li $at, 2 +/* 076B24 7F041FF4 00095180 */ sll $t2, $t1, 6 +/* 076B28 7F041FF8 0542006F */ bltzl $t2, .L7F0421B8 +/* 076B2C 7F041FFC 86620002 */ lh $v0, 2($s3) +/* 076B30 7F042000 1441000B */ bne $v0, $at, .L7F042030 +/* 076B34 7F042004 324D0001 */ andi $t5, $s2, 1 +/* 076B38 7F042008 324B0002 */ andi $t3, $s2, 2 +/* 076B3C 7F04200C 5560000B */ bnezl $t3, .L7F04203C +/* 076B40 7F042010 8FAE0074 */ lw $t6, 0x74($sp) +/* 076B44 7F042014 0FC0F67B */ jal sub_GAME_7F03D9EC +/* 076B48 7F042018 02002025 */ move $a0, $s0 +/* 076B4C 7F04201C 00526024 */ and $t4, $v0, $s2 +/* 076B50 7F042020 55800006 */ bnezl $t4, .L7F04203C +/* 076B54 7F042024 8FAE0074 */ lw $t6, 0x74($sp) +/* 076B58 7F042028 10000063 */ b .L7F0421B8 +/* 076B5C 7F04202C 86620002 */ lh $v0, 2($s3) +.L7F042030: +/* 076B60 7F042030 51A00061 */ beql $t5, $zero, .L7F0421B8 +/* 076B64 7F042034 86620002 */ lh $v0, 2($s3) +/* 076B68 7F042038 8FAE0074 */ lw $t6, 0x74($sp) +.L7F04203C: +/* 076B6C 7F04203C 02202025 */ move $a0, $s1 +/* 076B70 7F042040 02802825 */ move $a1, $s4 +/* 076B74 7F042044 160E0004 */ bne $s0, $t6, .L7F042058 +/* 076B78 7F042048 8FA600C0 */ lw $a2, 0xc0($sp) +/* 076B7C 7F04204C 922F0002 */ lbu $t7, 2($s1) +/* 076B80 7F042050 31F80020 */ andi $t8, $t7, 0x20 +/* 076B84 7F042054 17000057 */ bnez $t8, .L7F0421B4 +.L7F042058: +/* 076B88 7F042058 27B90088 */ addiu $t9, $sp, 0x88 +/* 076B8C 7F04205C 27A8007C */ addiu $t0, $sp, 0x7c +/* 076B90 7F042060 AFA80018 */ sw $t0, 0x18($sp) +/* 076B94 7F042064 AFB90014 */ sw $t9, 0x14($sp) +/* 076B98 7F042068 02E03825 */ move $a3, $s7 +/* 076B9C 7F04206C E7B40010 */ swc1 $f20, 0x10($sp) +/* 076BA0 7F042070 AFB5001C */ sw $s5, 0x1c($sp) +/* 076BA4 7F042074 AFB60020 */ sw $s6, 0x20($sp) +/* 076BA8 7F042078 0FC10679 */ jal sub_GAME_7F0419E4 +/* 076BAC 7F04207C AFBE0024 */ sw $fp, 0x24($sp) +/* 076BB0 7F042080 1040004C */ beqz $v0, .L7F0421B4 +/* 076BB4 7F042084 24090001 */ li $t1, 1 +/* 076BB8 7F042088 1000004A */ b .L7F0421B4 +/* 076BBC 7F04208C AFA900A4 */ sw $t1, 0xa4($sp) +/* 076BC0 7F042090 24010003 */ li $at, 3 +.L7F042094: +/* 076BC4 7F042094 10410005 */ beq $v0, $at, .L7F0420AC +/* 076BC8 7F042098 24010006 */ li $at, 6 +/* 076BCC 7F04209C 5441002F */ bnel $v0, $at, .L7F04215C +/* 076BD0 7F0420A0 24010006 */ li $at, 6 +/* 076BD4 7F0420A4 8E0A0004 */ lw $t2, 4($s0) +/* 076BD8 7F0420A8 1140002B */ beqz $t2, .L7F042158 +.L7F0420AC: +/* 076BDC 7F0420AC 24010006 */ li $at, 6 +/* 076BE0 7F0420B0 1441000F */ bne $v0, $at, .L7F0420F0 +/* 076BE4 7F0420B4 8E110004 */ lw $s1, 4($s0) +/* 076BE8 7F0420B8 0FC26C57 */ jal sub_GAME_7F09B15C +/* 076BEC 7F0420BC 02002025 */ move $a0, $s0 +/* 076BF0 7F0420C0 00025880 */ sll $t3, $v0, 2 +/* 076BF4 7F0420C4 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 076BF8 7F0420C8 018B6021 */ addu $t4, $t4, $t3 +/* 076BFC 7F0420CC 8D8C9EE0 */ lw $t4, %lo(ptr_BONDdata_p1)($t4) +/* 076C00 7F0420D0 324E0004 */ andi $t6, $s2, 4 +/* 076C04 7F0420D4 8D8D00AC */ lw $t5, 0xac($t4) +/* 076C08 7F0420D8 51A00037 */ beql $t5, $zero, .L7F0421B8 +/* 076C0C 7F0420DC 86620002 */ lh $v0, 2($s3) +/* 076C10 7F0420E0 55C0000E */ bnezl $t6, .L7F04211C +/* 076C14 7F0420E4 4407A000 */ mfc1 $a3, $f20 +/* 076C18 7F0420E8 10000033 */ b .L7F0421B8 +/* 076C1C 7F0420EC 86620002 */ lh $v0, 2($s3) +.L7F0420F0: +/* 076C20 7F0420F0 24010003 */ li $at, 3 +/* 076C24 7F0420F4 54410009 */ bnel $v0, $at, .L7F04211C +/* 076C28 7F0420F8 4407A000 */ mfc1 $a3, $f20 +/* 076C2C 7F0420FC 962F0012 */ lhu $t7, 0x12($s1) +/* 076C30 7F042100 32590008 */ andi $t9, $s2, 8 +/* 076C34 7F042104 31F80100 */ andi $t8, $t7, 0x100 +/* 076C38 7F042108 5700002B */ bnezl $t8, .L7F0421B8 +/* 076C3C 7F04210C 86620002 */ lh $v0, 2($s3) +/* 076C40 7F042110 53200029 */ beql $t9, $zero, .L7F0421B8 +/* 076C44 7F042114 86620002 */ lh $v0, 2($s3) +/* 076C48 7F042118 4407A000 */ mfc1 $a3, $f20 +.L7F04211C: +/* 076C4C 7F04211C 27A80088 */ addiu $t0, $sp, 0x88 +/* 076C50 7F042120 27A9007C */ addiu $t1, $sp, 0x7c +/* 076C54 7F042124 AFA90014 */ sw $t1, 0x14($sp) +/* 076C58 7F042128 AFA80010 */ sw $t0, 0x10($sp) +/* 076C5C 7F04212C 02202025 */ move $a0, $s1 +/* 076C60 7F042130 02802825 */ move $a1, $s4 +/* 076C64 7F042134 02E03025 */ move $a2, $s7 +/* 076C68 7F042138 AFB50018 */ sw $s5, 0x18($sp) +/* 076C6C 7F04213C AFB6001C */ sw $s6, 0x1c($sp) +/* 076C70 7F042140 0FC106EE */ jal sub_GAME_7F041BB8 +/* 076C74 7F042144 AFBE0020 */ sw $fp, 0x20($sp) +/* 076C78 7F042148 1040001A */ beqz $v0, .L7F0421B4 +/* 076C7C 7F04214C 240A0001 */ li $t2, 1 +/* 076C80 7F042150 10000018 */ b .L7F0421B4 +/* 076C84 7F042154 AFAA00A4 */ sw $t2, 0xa4($sp) +.L7F042158: +/* 076C88 7F042158 24010006 */ li $at, 6 +.L7F04215C: +/* 076C8C 7F04215C 54410016 */ bnel $v0, $at, .L7F0421B8 +/* 076C90 7F042160 86620002 */ lh $v0, 2($s3) +/* 076C94 7F042164 0FC26C57 */ jal sub_GAME_7F09B15C +/* 076C98 7F042168 02002025 */ move $a0, $s0 +/* 076C9C 7F04216C 00025880 */ sll $t3, $v0, 2 +/* 076CA0 7F042170 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 076CA4 7F042174 018B6021 */ addu $t4, $t4, $t3 +/* 076CA8 7F042178 8D8C9EE0 */ lw $t4, %lo(ptr_BONDdata_p1)($t4) +/* 076CAC 7F04217C 02002025 */ move $a0, $s0 +/* 076CB0 7F042180 02802825 */ move $a1, $s4 +/* 076CB4 7F042184 8D8D00AC */ lw $t5, 0xac($t4) +/* 076CB8 7F042188 8FA600C0 */ lw $a2, 0xc0($sp) +/* 076CBC 7F04218C 02E03825 */ move $a3, $s7 +/* 076CC0 7F042190 51A00009 */ beql $t5, $zero, .L7F0421B8 +/* 076CC4 7F042194 86620002 */ lh $v0, 2($s3) +/* 076CC8 7F042198 AFB50010 */ sw $s5, 0x10($sp) +/* 076CCC 7F04219C AFB60014 */ sw $s6, 0x14($sp) +/* 076CD0 7F0421A0 0FC10500 */ jal sub_GAME_7F041400 +/* 076CD4 7F0421A4 AFBE0018 */ sw $fp, 0x18($sp) +/* 076CD8 7F0421A8 10400002 */ beqz $v0, .L7F0421B4 +/* 076CDC 7F0421AC 240E0001 */ li $t6, 1 +/* 076CE0 7F0421B0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0421B4: +/* 076CE4 7F0421B4 86620002 */ lh $v0, 2($s3) +.L7F0421B8: +/* 076CE8 7F0421B8 26730002 */ addiu $s3, $s3, 2 +/* 076CEC 7F0421BC 0443FF74 */ bgezl $v0, .L7F041F90 +/* 076CF0 7F0421C0 00027080 */ sll $t6, $v0, 2 +.L7F0421C4: +/* 076CF4 7F0421C4 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 076CF8 7F0421C8 3C028007 */ lui $v0, %hi(flt_CODE_bss_80075B78) +/* 076CFC 7F0421CC 24425B78 */ addiu $v0, %lo(flt_CODE_bss_80075B78) # addiu $v0, $v0, 0x5b78 +/* 076D00 7F0421D0 11E00010 */ beqz $t7, .L7F042214 +/* 076D04 7F0421D4 3C038007 */ lui $v1, %hi(flt_CODE_bss_80075B88) +/* 076D08 7F0421D8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 076D0C 7F0421DC C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 076D10 7F0421E0 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 076D14 7F0421E4 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 076D18 7F0421E8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 076D1C 7F0421EC C7B00084 */ lwc1 $f16, 0x84($sp) +/* 076D20 7F0421F0 24635B88 */ addiu $v1, %lo(flt_CODE_bss_80075B88) # addiu $v1, $v1, 0x5b88 +/* 076D24 7F0421F4 24180001 */ li $t8, 1 +/* 076D28 7F0421F8 AFB800B4 */ sw $t8, 0xb4($sp) +/* 076D2C 7F0421FC E4440000 */ swc1 $f4, ($v0) +/* 076D30 7F042200 E4480004 */ swc1 $f8, 4($v0) +/* 076D34 7F042204 E44A0008 */ swc1 $f10, 8($v0) +/* 076D38 7F042208 E4660000 */ swc1 $f6, ($v1) +/* 076D3C 7F04220C E4720004 */ swc1 $f18, 4($v1) +/* 076D40 7F042210 E4700008 */ swc1 $f16, 8($v1) +.L7F042214: +/* 076D44 7F042214 8FA200B4 */ lw $v0, 0xb4($sp) +.L7F042218: +/* 076D48 7F042218 8FBF005C */ lw $ra, 0x5c($sp) +/* 076D4C 7F04221C D7B40030 */ ldc1 $f20, 0x30($sp) +/* 076D50 7F042220 8FB00038 */ lw $s0, 0x38($sp) +/* 076D54 7F042224 8FB1003C */ lw $s1, 0x3c($sp) +/* 076D58 7F042228 8FB20040 */ lw $s2, 0x40($sp) +/* 076D5C 7F04222C 8FB30044 */ lw $s3, 0x44($sp) +/* 076D60 7F042230 8FB40048 */ lw $s4, 0x48($sp) +/* 076D64 7F042234 8FB5004C */ lw $s5, 0x4c($sp) +/* 076D68 7F042238 8FB60050 */ lw $s6, 0x50($sp) +/* 076D6C 7F04223C 8FB70054 */ lw $s7, 0x54($sp) +/* 076D70 7F042240 8FBE0058 */ lw $fp, 0x58($sp) +/* 076D74 7F042244 03E00008 */ jr $ra +/* 076D78 7F042248 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void handles_projectile_motion(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A58 +.word 0x3dcccccd /*0.1*/ +.text +glabel handles_projectile_motion +/* 076D7C 7F04224C 27BDFD50 */ addiu $sp, $sp, -0x2b0 +/* 076D80 7F042250 AFBF003C */ sw $ra, 0x3c($sp) +/* 076D84 7F042254 AFB30038 */ sw $s3, 0x38($sp) +/* 076D88 7F042258 AFB20034 */ sw $s2, 0x34($sp) +/* 076D8C 7F04225C AFB10030 */ sw $s1, 0x30($sp) +/* 076D90 7F042260 AFB0002C */ sw $s0, 0x2c($sp) +/* 076D94 7F042264 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 076D98 7F042268 8C820010 */ lw $v0, 0x10($a0) +/* 076D9C 7F04226C 240F0001 */ li $t7, 1 +/* 076DA0 7F042270 3C018003 */ lui $at, %hi(D_80030B0C) +/* 076DA4 7F042274 8C4E0014 */ lw $t6, 0x14($v0) +/* 076DA8 7F042278 AFAF02A4 */ sw $t7, 0x2a4($sp) +/* 076DAC 7F04227C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 076DB0 7F042280 AFAE02A8 */ sw $t6, 0x2a8($sp) +/* 076DB4 7F042284 C4840058 */ lwc1 $f4, 0x58($a0) +/* 076DB8 7F042288 C4A00000 */ lwc1 $f0, ($a1) +/* 076DBC 7F04228C 00E08025 */ move $s0, $a3 +/* 076DC0 7F042290 00A08825 */ move $s1, $a1 +/* 076DC4 7F042294 46040032 */ c.eq.s $f0, $f4 +/* 076DC8 7F042298 00809025 */ move $s2, $a0 +/* 076DCC 7F04229C 00C09825 */ move $s3, $a2 +/* 076DD0 7F0422A0 4502000E */ bc1fl .L7F0422DC +/* 076DD4 7F0422A4 E7A00268 */ swc1 $f0, 0x268($sp) +/* 076DD8 7F0422A8 C4A60004 */ lwc1 $f6, 4($a1) +/* 076DDC 7F0422AC C488005C */ lwc1 $f8, 0x5c($a0) +/* 076DE0 7F0422B0 46083032 */ c.eq.s $f6, $f8 +/* 076DE4 7F0422B4 00000000 */ nop +/* 076DE8 7F0422B8 45020008 */ bc1fl .L7F0422DC +/* 076DEC 7F0422BC E7A00268 */ swc1 $f0, 0x268($sp) +/* 076DF0 7F0422C0 C4AA0008 */ lwc1 $f10, 8($a1) +/* 076DF4 7F0422C4 C4900060 */ lwc1 $f16, 0x60($a0) +/* 076DF8 7F0422C8 46105032 */ c.eq.s $f10, $f16 +/* 076DFC 7F0422CC 00000000 */ nop +/* 076E00 7F0422D0 450301C6 */ bc1tl .L7F0429EC +/* 076E04 7F0422D4 8FBF003C */ lw $ra, 0x3c($sp) +/* 076E08 7F0422D8 E7A00268 */ swc1 $f0, 0x268($sp) +.L7F0422DC: +/* 076E0C 7F0422DC C6320004 */ lwc1 $f18, 4($s1) +/* 076E10 7F0422E0 E7B2026C */ swc1 $f18, 0x26c($sp) +/* 076E14 7F0422E4 C6240008 */ lwc1 $f4, 8($s1) +/* 076E18 7F0422E8 E7A40270 */ swc1 $f4, 0x270($sp) +/* 076E1C 7F0422EC 8E580064 */ lw $t8, 0x64($s2) +/* 076E20 7F0422F0 33190080 */ andi $t9, $t8, 0x80 +/* 076E24 7F0422F4 532001BD */ beql $t9, $zero, .L7F0429EC +/* 076E28 7F0422F8 8FBF003C */ lw $ra, 0x3c($sp) +/* 076E2C 7F0422FC 8E49006C */ lw $t1, 0x6c($s2) +/* 076E30 7F042300 26440058 */ addiu $a0, $s2, 0x58 +/* 076E34 7F042304 27A50268 */ addiu $a1, $sp, 0x268 +/* 076E38 7F042308 8D2A0000 */ lw $t2, ($t1) +/* 076E3C 7F04230C 27A70074 */ addiu $a3, $sp, 0x74 +/* 076E40 7F042310 27AC007C */ addiu $t4, $sp, 0x7c +/* 076E44 7F042314 314B0004 */ andi $t3, $t2, 4 +/* 076E48 7F042318 116001B3 */ beqz $t3, .L7F0429E8 +/* 076E4C 7F04231C 27AD0260 */ addiu $t5, $sp, 0x260 +/* 076E50 7F042320 AFA00260 */ sw $zero, 0x260($sp) +/* 076E54 7F042324 8E46006C */ lw $a2, 0x6c($s2) +/* 076E58 7F042328 240E0014 */ li $t6, 20 +/* 076E5C 7F04232C AFAE0018 */ sw $t6, 0x18($sp) +/* 076E60 7F042330 AFB102B4 */ sw $s1, 0x2b4($sp) +/* 076E64 7F042334 AFA40048 */ sw $a0, 0x48($sp) +/* 076E68 7F042338 AFA202AC */ sw $v0, 0x2ac($sp) +/* 076E6C 7F04233C AFAD0014 */ sw $t5, 0x14($sp) +/* 076E70 7F042340 AFAC0010 */ sw $t4, 0x10($sp) +/* 076E74 7F042344 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 076E78 7F042348 24C600CC */ addiu $a2, $a2, 0xcc +/* 076E7C 7F04234C 8FA30260 */ lw $v1, 0x260($sp) +/* 076E80 7F042350 27B8007C */ addiu $t8, $sp, 0x7c +/* 076E84 7F042354 24050064 */ li $a1, 100 +/* 076E88 7F042358 28610015 */ slti $at, $v1, 0x15 +/* 076E8C 7F04235C 54200003 */ bnezl $at, .L7F04236C +/* 076E90 7F042360 00037880 */ sll $t7, $v1, 2 +/* 076E94 7F042364 24030014 */ li $v1, 20 +/* 076E98 7F042368 00037880 */ sll $t7, $v1, 2 +.L7F04236C: +/* 076E9C 7F04236C 01F82021 */ addu $a0, $t7, $t8 +/* 076EA0 7F042370 0FC2E3A6 */ jal sub_GAME_7F0B8E98 +/* 076EA4 7F042374 AFA30260 */ sw $v1, 0x260($sp) +/* 076EA8 7F042378 8FA30260 */ lw $v1, 0x260($sp) +/* 076EAC 7F04237C 2419FFFF */ li $t9, -1 +/* 076EB0 7F042380 27B1007C */ addiu $s1, $sp, 0x7c +/* 076EB4 7F042384 00621821 */ addu $v1, $v1, $v0 +/* 076EB8 7F042388 00034880 */ sll $t1, $v1, 2 +/* 076EBC 7F04238C 03A95021 */ addu $t2, $sp, $t1 +/* 076EC0 7F042390 AD59007C */ sw $t9, 0x7c($t2) +/* 076EC4 7F042394 8FAB007C */ lw $t3, 0x7c($sp) +/* 076EC8 7F042398 AFA30260 */ sw $v1, 0x260($sp) +/* 076ECC 7F04239C 0562009E */ bltzl $t3, .L7F042618 +/* 076ED0 7F0423A0 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 076ED4 7F0423A4 4480A000 */ mtc1 $zero, $f20 +/* 076ED8 7F0423A8 8E260000 */ lw $a2, ($s1) +/* 076EDC 7F0423AC 8FA40048 */ lw $a0, 0x48($sp) +.L7F0423B0: +/* 076EE0 7F0423B0 27A50268 */ addiu $a1, $sp, 0x268 +/* 076EE4 7F0423B4 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 076EE8 7F0423B8 27A70274 */ addiu $a3, $sp, 0x274 +/* 076EEC 7F0423BC 50400092 */ beql $v0, $zero, .L7F042608 +/* 076EF0 7F0423C0 8E260004 */ lw $a2, 4($s1) +/* 076EF4 7F0423C4 0FC2D20C */ jal get_room_data_float2 +/* 076EF8 7F0423C8 00000000 */ nop +/* 076EFC 7F0423CC C7A60274 */ lwc1 $f6, 0x274($sp) +/* 076F00 7F0423D0 C7AA0278 */ lwc1 $f10, 0x278($sp) +/* 076F04 7F0423D4 C7B2027C */ lwc1 $f18, 0x27c($sp) +/* 076F08 7F0423D8 46003202 */ mul.s $f8, $f6, $f0 +/* 076F0C 7F0423DC C7A60268 */ lwc1 $f6, 0x268($sp) +/* 076F10 7F0423E0 46005402 */ mul.s $f16, $f10, $f0 +/* 076F14 7F0423E4 C7AA0268 */ lwc1 $f10, 0x268($sp) +/* 076F18 7F0423E8 46009102 */ mul.s $f4, $f18, $f0 +/* 076F1C 7F0423EC E7A80274 */ swc1 $f8, 0x274($sp) +/* 076F20 7F0423F0 E7B00278 */ swc1 $f16, 0x278($sp) +/* 076F24 7F0423F4 E7A4027C */ swc1 $f4, 0x27c($sp) +/* 076F28 7F0423F8 C64C0058 */ lwc1 $f12, 0x58($s2) +/* 076F2C 7F0423FC 4606603E */ c.le.s $f12, $f6 +/* 076F30 7F042400 00000000 */ nop +/* 076F34 7F042404 4502000A */ bc1fl .L7F042430 +/* 076F38 7F042408 460C503E */ c.le.s $f10, $f12 +/* 076F3C 7F04240C 4606403E */ c.le.s $f8, $f6 +/* 076F40 7F042410 00000000 */ nop +/* 076F44 7F042414 45020006 */ bc1fl .L7F042430 +/* 076F48 7F042418 460C503E */ c.le.s $f10, $f12 +/* 076F4C 7F04241C 4608603E */ c.le.s $f12, $f8 +/* 076F50 7F042420 00000000 */ nop +/* 076F54 7F042424 4503000E */ bc1tl .L7F042460 +/* 076F58 7F042428 C642005C */ lwc1 $f2, 0x5c($s2) +/* 076F5C 7F04242C 460C503E */ c.le.s $f10, $f12 +.L7F042430: +/* 076F60 7F042430 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 076F64 7F042434 45020074 */ bc1fl .L7F042608 +/* 076F68 7F042438 8E260004 */ lw $a2, 4($s1) +/* 076F6C 7F04243C 4610503E */ c.le.s $f10, $f16 +/* 076F70 7F042440 00000000 */ nop +/* 076F74 7F042444 45020070 */ bc1fl .L7F042608 +/* 076F78 7F042448 8E260004 */ lw $a2, 4($s1) +/* 076F7C 7F04244C 460C803E */ c.le.s $f16, $f12 +/* 076F80 7F042450 00000000 */ nop +/* 076F84 7F042454 4502006C */ bc1fl .L7F042608 +/* 076F88 7F042458 8E260004 */ lw $a2, 4($s1) +/* 076F8C 7F04245C C642005C */ lwc1 $f2, 0x5c($s2) +.L7F042460: +/* 076F90 7F042460 C7B2026C */ lwc1 $f18, 0x26c($sp) +/* 076F94 7F042464 C7A40278 */ lwc1 $f4, 0x278($sp) +/* 076F98 7F042468 C7A6026C */ lwc1 $f6, 0x26c($sp) +/* 076F9C 7F04246C 4612103E */ c.le.s $f2, $f18 +/* 076FA0 7F042470 00000000 */ nop +/* 076FA4 7F042474 4502000A */ bc1fl .L7F0424A0 +/* 076FA8 7F042478 4602303E */ c.le.s $f6, $f2 +/* 076FAC 7F04247C 4612203E */ c.le.s $f4, $f18 +/* 076FB0 7F042480 00000000 */ nop +/* 076FB4 7F042484 45020006 */ bc1fl .L7F0424A0 +/* 076FB8 7F042488 4602303E */ c.le.s $f6, $f2 +/* 076FBC 7F04248C 4604103E */ c.le.s $f2, $f4 +/* 076FC0 7F042490 00000000 */ nop +/* 076FC4 7F042494 4503000E */ bc1tl .L7F0424D0 +/* 076FC8 7F042498 C6400060 */ lwc1 $f0, 0x60($s2) +/* 076FCC 7F04249C 4602303E */ c.le.s $f6, $f2 +.L7F0424A0: +/* 076FD0 7F0424A0 C7A80278 */ lwc1 $f8, 0x278($sp) +/* 076FD4 7F0424A4 45020058 */ bc1fl .L7F042608 +/* 076FD8 7F0424A8 8E260004 */ lw $a2, 4($s1) +/* 076FDC 7F0424AC 4608303E */ c.le.s $f6, $f8 +/* 076FE0 7F0424B0 00000000 */ nop +/* 076FE4 7F0424B4 45020054 */ bc1fl .L7F042608 +/* 076FE8 7F0424B8 8E260004 */ lw $a2, 4($s1) +/* 076FEC 7F0424BC 4602403E */ c.le.s $f8, $f2 +/* 076FF0 7F0424C0 00000000 */ nop +/* 076FF4 7F0424C4 45020050 */ bc1fl .L7F042608 +/* 076FF8 7F0424C8 8E260004 */ lw $a2, 4($s1) +/* 076FFC 7F0424CC C6400060 */ lwc1 $f0, 0x60($s2) +.L7F0424D0: +/* 077000 7F0424D0 C7AA0270 */ lwc1 $f10, 0x270($sp) +/* 077004 7F0424D4 C7B0027C */ lwc1 $f16, 0x27c($sp) +/* 077008 7F0424D8 C7B20270 */ lwc1 $f18, 0x270($sp) +/* 07700C 7F0424DC 460A003E */ c.le.s $f0, $f10 +/* 077010 7F0424E0 00000000 */ nop +/* 077014 7F0424E4 4502000A */ bc1fl .L7F042510 +/* 077018 7F0424E8 4600903E */ c.le.s $f18, $f0 +/* 07701C 7F0424EC 460A803E */ c.le.s $f16, $f10 +/* 077020 7F0424F0 00000000 */ nop +/* 077024 7F0424F4 45020006 */ bc1fl .L7F042510 +/* 077028 7F0424F8 4600903E */ c.le.s $f18, $f0 +/* 07702C 7F0424FC 4610003E */ c.le.s $f0, $f16 +/* 077030 7F042500 00000000 */ nop +/* 077034 7F042504 4503000E */ bc1tl .L7F042540 +/* 077038 7F042508 C7A60274 */ lwc1 $f6, 0x274($sp) +/* 07703C 7F04250C 4600903E */ c.le.s $f18, $f0 +.L7F042510: +/* 077040 7F042510 C7A4027C */ lwc1 $f4, 0x27c($sp) +/* 077044 7F042514 4502003C */ bc1fl .L7F042608 +/* 077048 7F042518 8E260004 */ lw $a2, 4($s1) +/* 07704C 7F04251C 4604903E */ c.le.s $f18, $f4 +/* 077050 7F042520 00000000 */ nop +/* 077054 7F042524 45020038 */ bc1fl .L7F042608 +/* 077058 7F042528 8E260004 */ lw $a2, 4($s1) +/* 07705C 7F04252C 4600203E */ c.le.s $f4, $f0 +/* 077060 7F042530 00000000 */ nop +/* 077064 7F042534 45020034 */ bc1fl .L7F042608 +/* 077068 7F042538 8E260004 */ lw $a2, 4($s1) +/* 07706C 7F04253C C7A60274 */ lwc1 $f6, 0x274($sp) +.L7F042540: +/* 077070 7F042540 C7A80278 */ lwc1 $f8, 0x278($sp) +/* 077074 7F042544 46066032 */ c.eq.s $f12, $f6 +/* 077078 7F042548 00000000 */ nop +/* 07707C 7F04254C 4502000A */ bc1fl .L7F042578 +/* 077080 7F042550 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 077084 7F042554 46081032 */ c.eq.s $f2, $f8 +/* 077088 7F042558 C7AA027C */ lwc1 $f10, 0x27c($sp) +/* 07708C 7F04255C 45020006 */ bc1fl .L7F042578 +/* 077090 7F042560 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 077094 7F042564 460A0032 */ c.eq.s $f0, $f10 +/* 077098 7F042568 00000000 */ nop +/* 07709C 7F04256C 45030026 */ bc1tl .L7F042608 +/* 0770A0 7F042570 8E260004 */ lw $a2, 4($s1) +/* 0770A4 7F042574 C7B00274 */ lwc1 $f16, 0x274($sp) +.L7F042578: +/* 0770A8 7F042578 AFA002A4 */ sw $zero, 0x2a4($sp) +/* 0770AC 7F04257C 02002025 */ move $a0, $s0 +/* 0770B0 7F042580 E6700000 */ swc1 $f16, ($s3) +/* 0770B4 7F042584 C7B20278 */ lwc1 $f18, 0x278($sp) +/* 0770B8 7F042588 26050004 */ addiu $a1, $s0, 4 +/* 0770BC 7F04258C E6720004 */ swc1 $f18, 4($s3) +/* 0770C0 7F042590 C7A4027C */ lwc1 $f4, 0x27c($sp) +/* 0770C4 7F042594 E6640008 */ swc1 $f4, 8($s3) +/* 0770C8 7F042598 C7A60280 */ lwc1 $f6, 0x280($sp) +/* 0770CC 7F04259C E6060000 */ swc1 $f6, ($s0) +/* 0770D0 7F0425A0 C6100000 */ lwc1 $f16, ($s0) +/* 0770D4 7F0425A4 C7A80284 */ lwc1 $f8, 0x284($sp) +/* 0770D8 7F0425A8 4610A032 */ c.eq.s $f20, $f16 +/* 0770DC 7F0425AC E6080004 */ swc1 $f8, 4($s0) +/* 0770E0 7F0425B0 C7AA0288 */ lwc1 $f10, 0x288($sp) +/* 0770E4 7F0425B4 4500000C */ bc1f .L7F0425E8 +/* 0770E8 7F0425B8 E60A0008 */ swc1 $f10, 8($s0) +/* 0770EC 7F0425BC C6120004 */ lwc1 $f18, 4($s0) +/* 0770F0 7F0425C0 4612A032 */ c.eq.s $f20, $f18 +/* 0770F4 7F0425C4 00000000 */ nop +/* 0770F8 7F0425C8 45000007 */ bc1f .L7F0425E8 +/* 0770FC 7F0425CC 00000000 */ nop +/* 077100 7F0425D0 C6040008 */ lwc1 $f4, 8($s0) +/* 077104 7F0425D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077108 7F0425D8 4604A032 */ c.eq.s $f20, $f4 +/* 07710C 7F0425DC 00000000 */ nop +/* 077110 7F0425E0 45030006 */ bc1tl .L7F0425FC +/* 077114 7F0425E4 44813000 */ mtc1 $at, $f6 +.L7F0425E8: +/* 077118 7F0425E8 0C007DD4 */ jal guNormalize +/* 07711C 7F0425EC 26060008 */ addiu $a2, $s0, 8 +/* 077120 7F0425F0 10000005 */ b .L7F042608 +/* 077124 7F0425F4 8E260004 */ lw $a2, 4($s1) +/* 077128 7F0425F8 44813000 */ mtc1 $at, $f6 +.L7F0425FC: +/* 07712C 7F0425FC 00000000 */ nop +/* 077130 7F042600 E6060008 */ swc1 $f6, 8($s0) +/* 077134 7F042604 8E260004 */ lw $a2, 4($s1) +.L7F042608: +/* 077138 7F042608 26310004 */ addiu $s1, $s1, 4 +/* 07713C 7F04260C 04C3FF68 */ bgezl $a2, .L7F0423B0 +/* 077140 7F042610 8FA40048 */ lw $a0, 0x48($sp) +/* 077144 7F042614 8FAD02A4 */ lw $t5, 0x2a4($sp) +.L7F042618: +/* 077148 7F042618 8FA202B4 */ lw $v0, 0x2b4($sp) +/* 07714C 7F04261C 55A00037 */ bnezl $t5, .L7F0426FC +/* 077150 7F042620 27AE007C */ addiu $t6, $sp, 0x7c +/* 077154 7F042624 C4480000 */ lwc1 $f8, ($v0) +/* 077158 7F042628 C64A0058 */ lwc1 $f10, 0x58($s2) +/* 07715C 7F04262C 460A4401 */ sub.s $f16, $f8, $f10 +/* 077160 7F042630 E7B00064 */ swc1 $f16, 0x64($sp) +/* 077164 7F042634 C644005C */ lwc1 $f4, 0x5c($s2) +/* 077168 7F042638 C4520004 */ lwc1 $f18, 4($v0) +/* 07716C 7F04263C 46049181 */ sub.s $f6, $f18, $f4 +/* 077170 7F042640 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 077174 7F042644 E7A60068 */ swc1 $f6, 0x68($sp) +/* 077178 7F042648 C64A0060 */ lwc1 $f10, 0x60($s2) +/* 07717C 7F04264C C4480008 */ lwc1 $f8, 8($v0) +/* 077180 7F042650 46129102 */ mul.s $f4, $f18, $f18 +/* 077184 7F042654 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 077188 7F042658 460A4401 */ sub.s $f16, $f8, $f10 +/* 07718C 7F04265C 46063202 */ mul.s $f8, $f6, $f6 +/* 077190 7F042660 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 077194 7F042664 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 077198 7F042668 46108482 */ mul.s $f18, $f16, $f16 +/* 07719C 7F04266C 46082280 */ add.s $f10, $f4, $f8 +/* 0771A0 7F042670 0C007DF8 */ jal sqrtf +/* 0771A4 7F042674 460A9300 */ add.s $f12, $f18, $f10 +/* 0771A8 7F042678 3C018005 */ lui $at, %hi(D_80052A58) # -0.000000 +/* 0771AC 7F04267C C42C2A58 */ lwc1 $f12, %lo(D_80052A58)($at) +/* 0771B0 7F042680 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0771B4 7F042684 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0771B8 7F042688 4600603C */ c.lt.s $f12, $f0 +/* 0771BC 7F04268C 00000000 */ nop +/* 0771C0 7F042690 45020004 */ bc1fl .L7F0426A4 +/* 0771C4 7F042694 44811000 */ mtc1 $at, $f2 +/* 0771C8 7F042698 10000003 */ b .L7F0426A8 +/* 0771CC 7F04269C 46006083 */ div.s $f2, $f12, $f0 +/* 0771D0 7F0426A0 44811000 */ mtc1 $at, $f2 +.L7F0426A4: +/* 0771D4 7F0426A4 00000000 */ nop +.L7F0426A8: +/* 0771D8 7F0426A8 46041202 */ mul.s $f8, $f2, $f4 +/* 0771DC 7F0426AC C6660000 */ lwc1 $f6, ($s3) +/* 0771E0 7F0426B0 C6720004 */ lwc1 $f18, 4($s3) +/* 0771E4 7F0426B4 46083401 */ sub.s $f16, $f6, $f8 +/* 0771E8 7F0426B8 C6680008 */ lwc1 $f8, 8($s3) +/* 0771EC 7F0426BC E6700000 */ swc1 $f16, ($s3) +/* 0771F0 7F0426C0 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0771F4 7F0426C4 460A1102 */ mul.s $f4, $f2, $f10 +/* 0771F8 7F0426C8 46049181 */ sub.s $f6, $f18, $f4 +/* 0771FC 7F0426CC C6640000 */ lwc1 $f4, ($s3) +/* 077200 7F0426D0 E6660004 */ swc1 $f6, 4($s3) +/* 077204 7F0426D4 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 077208 7F0426D8 46101282 */ mul.s $f10, $f2, $f16 +/* 07720C 7F0426DC 460A4481 */ sub.s $f18, $f8, $f10 +/* 077210 7F0426E0 E6720008 */ swc1 $f18, 8($s3) +/* 077214 7F0426E4 E7A40268 */ swc1 $f4, 0x268($sp) +/* 077218 7F0426E8 C6660004 */ lwc1 $f6, 4($s3) +/* 07721C 7F0426EC E7A6026C */ swc1 $f6, 0x26c($sp) +/* 077220 7F0426F0 C6700008 */ lwc1 $f16, 8($s3) +/* 077224 7F0426F4 E7B00270 */ swc1 $f16, 0x270($sp) +/* 077228 7F0426F8 27AE007C */ addiu $t6, $sp, 0x7c +.L7F0426FC: +/* 07722C 7F0426FC AFAE0018 */ sw $t6, 0x18($sp) +/* 077230 7F042700 8FA402AC */ lw $a0, 0x2ac($sp) +/* 077234 7F042704 8FA50048 */ lw $a1, 0x48($sp) +/* 077238 7F042708 27A60268 */ addiu $a2, $sp, 0x268 +/* 07723C 7F04270C 2407001F */ li $a3, 31 +/* 077240 7F042710 AFB30010 */ sw $s3, 0x10($sp) +/* 077244 7F042714 0FC10783 */ jal sub_GAME_7F041E0C +/* 077248 7F042718 AFB00014 */ sw $s0, 0x14($sp) +/* 07724C 7F04271C 14400036 */ bnez $v0, .L7F0427F8 +/* 077250 7F042720 8FAB02C4 */ lw $t3, 0x2c4($sp) +/* 077254 7F042724 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 077258 7F042728 8FB802C0 */ lw $t8, 0x2c0($sp) +/* 07725C 7F04272C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 077260 7F042730 55E00016 */ bnezl $t7, .L7F04278C +/* 077264 7F042734 24100001 */ li $s0, 1 +/* 077268 7F042738 53000014 */ beql $t8, $zero, .L7F04278C +/* 07726C 7F04273C 24100001 */ li $s0, 1 +/* 077270 7F042740 8FA902C4 */ lw $t1, 0x2c4($sp) +/* 077274 7F042744 24190002 */ li $t9, 2 +/* 077278 7F042748 AFB902A4 */ sw $t9, 0x2a4($sp) +/* 07727C 7F04274C 1520000C */ bnez $t1, .L7F042780 +/* 077280 7F042750 8FA40048 */ lw $a0, 0x48($sp) +/* 077284 7F042754 8E46006C */ lw $a2, 0x6c($s2) +/* 077288 7F042758 27AA007C */ addiu $t2, $sp, 0x7c +/* 07728C 7F04275C 27AB0260 */ addiu $t3, $sp, 0x260 +/* 077290 7F042760 240C0014 */ li $t4, 20 +/* 077294 7F042764 AFAC0018 */ sw $t4, 0x18($sp) +/* 077298 7F042768 AFAB0014 */ sw $t3, 0x14($sp) +/* 07729C 7F04276C AFAA0010 */ sw $t2, 0x10($sp) +/* 0772A0 7F042770 02602825 */ move $a1, $s3 +/* 0772A4 7F042774 27A70074 */ addiu $a3, $sp, 0x74 +/* 0772A8 7F042778 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 0772AC 7F04277C 24C600CC */ addiu $a2, $a2, 0xcc +.L7F042780: +/* 0772B0 7F042780 1000003A */ b .L7F04286C +/* 0772B4 7F042784 8FA902A4 */ lw $t1, 0x2a4($sp) +/* 0772B8 7F042788 24100001 */ li $s0, 1 +.L7F04278C: +/* 0772BC 7F04278C 11B00003 */ beq $t5, $s0, .L7F04279C +/* 0772C0 7F042790 8FAE02C4 */ lw $t6, 0x2c4($sp) +/* 0772C4 7F042794 55C00035 */ bnezl $t6, .L7F04286C +/* 0772C8 7F042798 8FA902A4 */ lw $t1, 0x2a4($sp) +.L7F04279C: +/* 0772CC 7F04279C 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 0772D0 7F0427A0 8FA40048 */ lw $a0, 0x48($sp) +/* 0772D4 7F0427A4 27A50268 */ addiu $a1, $sp, 0x268 +/* 0772D8 7F0427A8 11F0000A */ beq $t7, $s0, .L7F0427D4 +/* 0772DC 7F0427AC 27A70074 */ addiu $a3, $sp, 0x74 +/* 0772E0 7F0427B0 8E46006C */ lw $a2, 0x6c($s2) +/* 0772E4 7F0427B4 27B8007C */ addiu $t8, $sp, 0x7c +/* 0772E8 7F0427B8 27B90260 */ addiu $t9, $sp, 0x260 +/* 0772EC 7F0427BC 24090014 */ li $t1, 20 +/* 0772F0 7F0427C0 AFA90018 */ sw $t1, 0x18($sp) +/* 0772F4 7F0427C4 AFB90014 */ sw $t9, 0x14($sp) +/* 0772F8 7F0427C8 AFB80010 */ sw $t8, 0x10($sp) +/* 0772FC 7F0427CC 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 077300 7F0427D0 24C600CC */ addiu $a2, $a2, 0xcc +.L7F0427D4: +/* 077304 7F0427D4 C7A80268 */ lwc1 $f8, 0x268($sp) +/* 077308 7F0427D8 E6480058 */ swc1 $f8, 0x58($s2) +/* 07730C 7F0427DC C7AA0270 */ lwc1 $f10, 0x270($sp) +/* 077310 7F0427E0 E64A0060 */ swc1 $f10, 0x60($s2) +/* 077314 7F0427E4 8FAA02AC */ lw $t2, 0x2ac($sp) +/* 077318 7F0427E8 C7A0026C */ lwc1 $f0, 0x26c($sp) +/* 07731C 7F0427EC E540000C */ swc1 $f0, 0xc($t2) +/* 077320 7F0427F0 1000001D */ b .L7F042868 +/* 077324 7F0427F4 E640005C */ swc1 $f0, 0x5c($s2) +.L7F0427F8: +/* 077328 7F0427F8 1560001B */ bnez $t3, .L7F042868 +/* 07732C 7F0427FC 27A50268 */ addiu $a1, $sp, 0x268 +/* 077330 7F042800 C6520058 */ lwc1 $f18, 0x58($s2) +/* 077334 7F042804 27AC007C */ addiu $t4, $sp, 0x7c +/* 077338 7F042808 27AD0260 */ addiu $t5, $sp, 0x260 +/* 07733C 7F04280C E7B20268 */ swc1 $f18, 0x268($sp) +/* 077340 7F042810 C6440060 */ lwc1 $f4, 0x60($s2) +/* 077344 7F042814 240E0014 */ li $t6, 20 +/* 077348 7F042818 8FA40048 */ lw $a0, 0x48($sp) +/* 07734C 7F04281C E7A40270 */ swc1 $f4, 0x270($sp) +/* 077350 7F042820 8E46006C */ lw $a2, 0x6c($s2) +/* 077354 7F042824 AFAE0018 */ sw $t6, 0x18($sp) +/* 077358 7F042828 AFAD0014 */ sw $t5, 0x14($sp) +/* 07735C 7F04282C AFAC0010 */ sw $t4, 0x10($sp) +/* 077360 7F042830 27A70074 */ addiu $a3, $sp, 0x74 +/* 077364 7F042834 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 077368 7F042838 24C600CC */ addiu $a2, $a2, 0xcc +/* 07736C 7F04283C C7A0026C */ lwc1 $f0, 0x26c($sp) +/* 077370 7F042840 8FAF02AC */ lw $t7, 0x2ac($sp) +/* 077374 7F042844 24190002 */ li $t9, 2 +/* 077378 7F042848 E5E0000C */ swc1 $f0, 0xc($t7) +/* 07737C 7F04284C E640005C */ swc1 $f0, 0x5c($s2) +/* 077380 7F042850 8FB802C0 */ lw $t8, 0x2c0($sp) +/* 077384 7F042854 53000004 */ beql $t8, $zero, .L7F042868 +/* 077388 7F042858 AFA002A4 */ sw $zero, 0x2a4($sp) +/* 07738C 7F04285C 10000002 */ b .L7F042868 +/* 077390 7F042860 AFB902A4 */ sw $t9, 0x2a4($sp) +/* 077394 7F042864 AFA002A4 */ sw $zero, 0x2a4($sp) +.L7F042868: +/* 077398 7F042868 8FA902A4 */ lw $t1, 0x2a4($sp) +.L7F04286C: +/* 07739C 7F04286C 24100001 */ li $s0, 1 +/* 0773A0 7F042870 8FAA02C4 */ lw $t2, 0x2c4($sp) +/* 0773A4 7F042874 51300004 */ beql $t1, $s0, .L7F042888 +/* 0773A8 7F042878 8E4B006C */ lw $t3, 0x6c($s2) +/* 0773AC 7F04287C 5540005B */ bnezl $t2, .L7F0429EC +/* 0773B0 7F042880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0773B4 7F042884 8E4B006C */ lw $t3, 0x6c($s2) +.L7F042888: +/* 0773B8 7F042888 00004025 */ move $t0, $zero +/* 0773BC 7F04288C 8D620000 */ lw $v0, ($t3) +/* 0773C0 7F042890 304C0008 */ andi $t4, $v0, 8 +/* 0773C4 7F042894 15800028 */ bnez $t4, .L7F042938 +/* 0773C8 7F042898 01801025 */ move $v0, $t4 +/* 0773CC 7F04289C 8FA202AC */ lw $v0, 0x2ac($sp) +/* 0773D0 7F0428A0 27A402A8 */ addiu $a0, $sp, 0x2a8 +/* 0773D4 7F0428A4 8C4D0014 */ lw $t5, 0x14($v0) +/* 0773D8 7F0428A8 AFAD02A8 */ sw $t5, 0x2a8($sp) +/* 0773DC 7F0428AC C6460060 */ lwc1 $f6, 0x60($s2) +/* 0773E0 7F0428B0 8E470058 */ lw $a3, 0x58($s2) +/* 0773E4 7F0428B4 8C460010 */ lw $a2, 0x10($v0) +/* 0773E8 7F0428B8 8C450008 */ lw $a1, 8($v0) +/* 0773EC 7F0428BC AFA00264 */ sw $zero, 0x264($sp) +/* 0773F0 7F0428C0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0773F4 7F0428C4 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0773F8 7F0428C8 1450000F */ bne $v0, $s0, .L7F042908 +/* 0773FC 7F0428CC 8FA80264 */ lw $t0, 0x264($sp) +/* 077400 7F0428D0 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 077404 7F0428D4 8FA302AC */ lw $v1, 0x2ac($sp) +/* 077408 7F0428D8 51C0000C */ beql $t6, $zero, .L7F04290C +/* 07740C 7F0428DC 8E43006C */ lw $v1, 0x6c($s2) +/* 077410 7F0428E0 AC6E0014 */ sw $t6, 0x14($v1) +/* 077414 7F0428E4 C6500058 */ lwc1 $f16, 0x58($s2) +/* 077418 7F0428E8 E4700008 */ swc1 $f16, 8($v1) +/* 07741C 7F0428EC C6480060 */ lwc1 $f8, 0x60($s2) +/* 077420 7F0428F0 E4680010 */ swc1 $f8, 0x10($v1) +/* 077424 7F0428F4 8E4F006C */ lw $t7, 0x6c($s2) +/* 077428 7F0428F8 8DE20000 */ lw $v0, ($t7) +/* 07742C 7F0428FC 30580008 */ andi $t8, $v0, 8 +/* 077430 7F042900 1000000D */ b .L7F042938 +/* 077434 7F042904 03001025 */ move $v0, $t8 +.L7F042908: +/* 077438 7F042908 8E43006C */ lw $v1, 0x6c($s2) +.L7F04290C: +/* 07743C 7F04290C 8C790000 */ lw $t9, ($v1) +/* 077440 7F042910 37290008 */ ori $t1, $t9, 8 +/* 077444 7F042914 AC690000 */ sw $t1, ($v1) +/* 077448 7F042918 8FAA02AC */ lw $t2, 0x2ac($sp) +/* 07744C 7F04291C 914B0001 */ lbu $t3, 1($t2) +/* 077450 7F042920 356C0008 */ ori $t4, $t3, 8 +/* 077454 7F042924 A14C0001 */ sb $t4, 1($t2) +/* 077458 7F042928 8E4D006C */ lw $t5, 0x6c($s2) +/* 07745C 7F04292C 8DA20000 */ lw $v0, ($t5) +/* 077460 7F042930 304E0008 */ andi $t6, $v0, 8 +/* 077464 7F042934 01C01025 */ move $v0, $t6 +.L7F042938: +/* 077468 7F042938 10400016 */ beqz $v0, .L7F042994 +/* 07746C 7F04293C 8FA40048 */ lw $a0, 0x48($sp) +/* 077470 7F042940 27A50074 */ addiu $a1, $sp, 0x74 +/* 077474 7F042944 00003025 */ move $a2, $zero +/* 077478 7F042948 0FC2BC83 */ jal sub_GAME_7F0AF20C +/* 07747C 7F04294C AFA80264 */ sw $t0, 0x264($sp) +/* 077480 7F042950 8FA80264 */ lw $t0, 0x264($sp) +/* 077484 7F042954 1040000F */ beqz $v0, .L7F042994 +/* 077488 7F042958 AFA202A8 */ sw $v0, 0x2a8($sp) +/* 07748C 7F04295C 8FA402AC */ lw $a0, 0x2ac($sp) +/* 077490 7F042960 2401FFF7 */ li $at, -9 +/* 077494 7F042964 AC820014 */ sw $v0, 0x14($a0) +/* 077498 7F042968 C64A0058 */ lwc1 $f10, 0x58($s2) +/* 07749C 7F04296C E48A0008 */ swc1 $f10, 8($a0) +/* 0774A0 7F042970 C6520060 */ lwc1 $f18, 0x60($s2) +/* 0774A4 7F042974 E4920010 */ swc1 $f18, 0x10($a0) +/* 0774A8 7F042978 8E43006C */ lw $v1, 0x6c($s2) +/* 0774AC 7F04297C 8C6F0000 */ lw $t7, ($v1) +/* 0774B0 7F042980 01E1C024 */ and $t8, $t7, $at +/* 0774B4 7F042984 AC780000 */ sw $t8, ($v1) +/* 0774B8 7F042988 90990001 */ lbu $t9, 1($a0) +/* 0774BC 7F04298C 03214824 */ and $t1, $t9, $at +/* 0774C0 7F042990 A0890001 */ sb $t1, 1($a0) +.L7F042994: +/* 0774C4 7F042994 93AB0074 */ lbu $t3, 0x74($sp) +/* 0774C8 7F042998 240400FF */ li $a0, 255 +/* 0774CC 7F04299C 27AC0074 */ addiu $t4, $sp, 0x74 +/* 0774D0 7F0429A0 108B000D */ beq $a0, $t3, .L7F0429D8 +/* 0774D4 7F0429A4 010C1021 */ addu $v0, $t0, $t4 +/* 0774D8 7F0429A8 90430000 */ lbu $v1, ($v0) +/* 0774DC 7F0429AC 24050007 */ li $a1, 7 +/* 0774E0 7F0429B0 8E4A006C */ lw $t2, 0x6c($s2) +.L7F0429B4: +/* 0774E4 7F0429B4 24420001 */ addiu $v0, $v0, 1 +/* 0774E8 7F0429B8 01486821 */ addu $t5, $t2, $t0 +/* 0774EC 7F0429BC A1A300CC */ sb $v1, 0xcc($t5) +/* 0774F0 7F0429C0 90430000 */ lbu $v1, ($v0) +/* 0774F4 7F0429C4 25080001 */ addiu $t0, $t0, 1 +/* 0774F8 7F0429C8 50830004 */ beql $a0, $v1, .L7F0429DC +/* 0774FC 7F0429CC 8E4F006C */ lw $t7, 0x6c($s2) +/* 077500 7F0429D0 5505FFF8 */ bnel $t0, $a1, .L7F0429B4 +/* 077504 7F0429D4 8E4A006C */ lw $t2, 0x6c($s2) +.L7F0429D8: +/* 077508 7F0429D8 8E4F006C */ lw $t7, 0x6c($s2) +.L7F0429DC: +/* 07750C 7F0429DC 240E00FF */ li $t6, 255 +/* 077510 7F0429E0 01E8C021 */ addu $t8, $t7, $t0 +/* 077514 7F0429E4 A30E00CC */ sb $t6, 0xcc($t8) +.L7F0429E8: +/* 077518 7F0429E8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0429EC: +/* 07751C 7F0429EC 8FA202A4 */ lw $v0, 0x2a4($sp) +/* 077520 7F0429F0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 077524 7F0429F4 8FB0002C */ lw $s0, 0x2c($sp) +/* 077528 7F0429F8 8FB10030 */ lw $s1, 0x30($sp) +/* 07752C 7F0429FC 8FB20034 */ lw $s2, 0x34($sp) +/* 077530 7F042A00 8FB30038 */ lw $s3, 0x38($sp) +/* 077534 7F042A04 03E00008 */ jr $ra +/* 077538 7F042A08 27BD02B0 */ addiu $sp, $sp, 0x2b0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042A0C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A5C +.word 0x3f7d70a4 /*0.99000001*/ +.text +glabel sub_GAME_7F042A0C +/* 07753C 7F042A0C 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 077540 7F042A10 AFBF0034 */ sw $ra, 0x34($sp) +/* 077544 7F042A14 AFB00030 */ sw $s0, 0x30($sp) +/* 077548 7F042A18 AFA600C8 */ sw $a2, 0xc8($sp) +/* 07754C 7F042A1C AFA700CC */ sw $a3, 0xcc($sp) +/* 077550 7F042A20 8C900010 */ lw $s0, 0x10($a0) +/* 077554 7F042A24 8E0E0014 */ lw $t6, 0x14($s0) +/* 077558 7F042A28 AFA500C4 */ sw $a1, 0xc4($sp) +/* 07755C 7F042A2C AFA400C0 */ sw $a0, 0xc0($sp) +/* 077560 7F042A30 0FC10411 */ jal if_a0_plus_3_is_4_then_10_else_20 +/* 077564 7F042A34 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 077568 7F042A38 8FA500C4 */ lw $a1, 0xc4($sp) +/* 07756C 7F042A3C 240F0001 */ li $t7, 1 +/* 077570 7F042A40 3C018003 */ lui $at, %hi(D_80030B0C) +/* 077574 7F042A44 E7A000B4 */ swc1 $f0, 0xb4($sp) +/* 077578 7F042A48 AFAF00B0 */ sw $t7, 0xb0($sp) +/* 07757C 7F042A4C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 077580 7F042A50 C6040008 */ lwc1 $f4, 8($s0) +/* 077584 7F042A54 C4A20000 */ lwc1 $f2, ($a1) +/* 077588 7F042A58 46041032 */ c.eq.s $f2, $f4 +/* 07758C 7F042A5C 00000000 */ nop +/* 077590 7F042A60 4502000E */ bc1fl .L7F042A9C +/* 077594 7F042A64 E7A20098 */ swc1 $f2, 0x98($sp) +/* 077598 7F042A68 C4A60004 */ lwc1 $f6, 4($a1) +/* 07759C 7F042A6C C608000C */ lwc1 $f8, 0xc($s0) +/* 0775A0 7F042A70 46083032 */ c.eq.s $f6, $f8 +/* 0775A4 7F042A74 00000000 */ nop +/* 0775A8 7F042A78 45020008 */ bc1fl .L7F042A9C +/* 0775AC 7F042A7C E7A20098 */ swc1 $f2, 0x98($sp) +/* 0775B0 7F042A80 C4AA0008 */ lwc1 $f10, 8($a1) +/* 0775B4 7F042A84 C6100010 */ lwc1 $f16, 0x10($s0) +/* 0775B8 7F042A88 46105032 */ c.eq.s $f10, $f16 +/* 0775BC 7F042A8C 00000000 */ nop +/* 0775C0 7F042A90 45030104 */ bc1tl .L7F042EA4 +/* 0775C4 7F042A94 8FBF0034 */ lw $ra, 0x34($sp) +/* 0775C8 7F042A98 E7A20098 */ swc1 $f2, 0x98($sp) +.L7F042A9C: +/* 0775CC 7F042A9C C4B20004 */ lwc1 $f18, 4($a1) +/* 0775D0 7F042AA0 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0775D4 7F042AA4 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0775D8 7F042AA8 C4A40008 */ lwc1 $f4, 8($a1) +/* 0775DC 7F042AAC E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0775E0 7F042AB0 8F190064 */ lw $t9, 0x64($t8) +/* 0775E4 7F042AB4 33280080 */ andi $t0, $t9, 0x80 +/* 0775E8 7F042AB8 510000FA */ beql $t0, $zero, .L7F042EA4 +/* 0775EC 7F042ABC 8FBF0034 */ lw $ra, 0x34($sp) +/* 0775F0 7F042AC0 8E040014 */ lw $a0, 0x14($s0) +/* 0775F4 7F042AC4 8E050008 */ lw $a1, 8($s0) +/* 0775F8 7F042AC8 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0775FC 7F042ACC 8E060010 */ lw $a2, 0x10($s0) +/* 077600 7F042AD0 8FA900C0 */ lw $t1, 0xc0($sp) +/* 077604 7F042AD4 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 077608 7F042AD8 8D2A006C */ lw $t2, 0x6c($t1) +/* 07760C 7F042ADC 8D4B0000 */ lw $t3, ($t2) +/* 077610 7F042AE0 316C0040 */ andi $t4, $t3, 0x40 +/* 077614 7F042AE4 55800008 */ bnezl $t4, .L7F042B08 +/* 077618 7F042AE8 C602000C */ lwc1 $f2, 0xc($s0) +/* 07761C 7F042AEC 44809000 */ mtc1 $zero, $f18 +/* 077620 7F042AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077624 7F042AF4 44818000 */ mtc1 $at, $f16 +/* 077628 7F042AF8 E7B20090 */ swc1 $f18, 0x90($sp) +/* 07762C 7F042AFC 10000010 */ b .L7F042B40 +/* 077630 7F042B00 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 077634 7F042B04 C602000C */ lwc1 $f2, 0xc($s0) +.L7F042B08: +/* 077638 7F042B08 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 07763C 7F042B0C 4602503C */ c.lt.s $f10, $f2 +/* 077640 7F042B10 00000000 */ nop +/* 077644 7F042B14 45020007 */ bc1fl .L7F042B34 +/* 077648 7F042B18 46002181 */ sub.s $f6, $f4, $f0 +/* 07764C 7F042B1C 46001401 */ sub.s $f16, $f2, $f0 +/* 077650 7F042B20 46005481 */ sub.s $f18, $f10, $f0 +/* 077654 7F042B24 E7B00090 */ swc1 $f16, 0x90($sp) +/* 077658 7F042B28 10000005 */ b .L7F042B40 +/* 07765C 7F042B2C E7B2008C */ swc1 $f18, 0x8c($sp) +/* 077660 7F042B30 46002181 */ sub.s $f6, $f4, $f0 +.L7F042B34: +/* 077664 7F042B34 46001201 */ sub.s $f8, $f2, $f0 +/* 077668 7F042B38 E7A60090 */ swc1 $f6, 0x90($sp) +/* 07766C 7F042B3C E7A8008C */ swc1 $f8, 0x8c($sp) +.L7F042B40: +/* 077670 7F042B40 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 077674 7F042B44 00000000 */ nop +/* 077678 7F042B48 8E050008 */ lw $a1, 8($s0) +/* 07767C 7F042B4C 8E060010 */ lw $a2, 0x10($s0) +/* 077680 7F042B50 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077684 7F042B54 44813000 */ mtc1 $at, $f6 +/* 077688 7F042B58 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 07768C 7F042B5C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 077690 7F042B60 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 077694 7F042B64 44802000 */ mtc1 $zero, $f4 +/* 077698 7F042B68 240D001F */ li $t5, 31 +/* 07769C 7F042B6C AFAD0014 */ sw $t5, 0x14($sp) +/* 0776A0 7F042B70 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0776A4 7F042B74 8FA70098 */ lw $a3, 0x98($sp) +/* 0776A8 7F042B78 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0776AC 7F042B7C E7A60024 */ swc1 $f6, 0x24($sp) +/* 0776B0 7F042B80 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0776B4 7F042B84 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0776B8 7F042B88 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0776BC 7F042B8C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0776C0 7F042B90 1040001D */ beqz $v0, .L7F042C08 +/* 0776C4 7F042B94 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 0776C8 7F042B98 11C0001B */ beqz $t6, .L7F042C08 +/* 0776CC 7F042B9C 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0776D0 7F042BA0 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0776D4 7F042BA4 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 0776D8 7F042BA8 240F001F */ li $t7, 31 +/* 0776DC 7F042BAC AFAF0010 */ sw $t7, 0x10($sp) +/* 0776E0 7F042BB0 8FA50098 */ lw $a1, 0x98($sp) +/* 0776E4 7F042BB4 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0776E8 7F042BB8 8FA700B4 */ lw $a3, 0xb4($sp) +/* 0776EC 7F042BBC E7A80014 */ swc1 $f8, 0x14($sp) +/* 0776F0 7F042BC0 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0776F4 7F042BC4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0776F8 7F042BC8 0441000F */ bgez $v0, .L7F042C08 +/* 0776FC 7F042BCC C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 077700 7F042BD0 8FA200C0 */ lw $v0, 0xc0($sp) +/* 077704 7F042BD4 E44A0058 */ swc1 $f10, 0x58($v0) +/* 077708 7F042BD8 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 07770C 7F042BDC E4520060 */ swc1 $f18, 0x60($v0) +/* 077710 7F042BE0 8FB800B8 */ lw $t8, 0xb8($sp) +/* 077714 7F042BE4 AE180014 */ sw $t8, 0x14($s0) +/* 077718 7F042BE8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 07771C 7F042BEC E6040008 */ swc1 $f4, 8($s0) +/* 077720 7F042BF0 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 077724 7F042BF4 E6060010 */ swc1 $f6, 0x10($s0) +/* 077728 7F042BF8 C7A0009C */ lwc1 $f0, 0x9c($sp) +/* 07772C 7F042BFC E600000C */ swc1 $f0, 0xc($s0) +/* 077730 7F042C00 100000A7 */ b .L7F042EA0 +/* 077734 7F042C04 E440005C */ swc1 $f0, 0x5c($v0) +.L7F042C08: +/* 077738 7F042C08 27A40080 */ addiu $a0, $sp, 0x80 +/* 07773C 7F042C0C 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 077740 7F042C10 27A50074 */ addiu $a1, $sp, 0x74 +/* 077744 7F042C14 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 077748 7F042C18 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 07774C 7F042C1C 8FA400CC */ lw $a0, 0xcc($sp) +/* 077750 7F042C20 44801000 */ mtc1 $zero, $f2 +/* 077754 7F042C24 46104281 */ sub.s $f10, $f8, $f16 +/* 077758 7F042C28 24850004 */ addiu $a1, $a0, 4 +/* 07775C 7F042C2C E4820004 */ swc1 $f2, 4($a0) +/* 077760 7F042C30 E48A0000 */ swc1 $f10, ($a0) +/* 077764 7F042C34 C4880000 */ lwc1 $f8, ($a0) +/* 077768 7F042C38 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 07776C 7F042C3C C7B20080 */ lwc1 $f18, 0x80($sp) +/* 077770 7F042C40 46081032 */ c.eq.s $f2, $f8 +/* 077774 7F042C44 46049181 */ sub.s $f6, $f18, $f4 +/* 077778 7F042C48 45000007 */ bc1f .L7F042C68 +/* 07777C 7F042C4C E4860008 */ swc1 $f6, 8($a0) +/* 077780 7F042C50 C4900008 */ lwc1 $f16, 8($a0) +/* 077784 7F042C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077788 7F042C58 46101032 */ c.eq.s $f2, $f16 +/* 07778C 7F042C5C 00000000 */ nop +/* 077790 7F042C60 45030006 */ bc1tl .L7F042C7C +/* 077794 7F042C64 44815000 */ mtc1 $at, $f10 +.L7F042C68: +/* 077798 7F042C68 0C007DD4 */ jal guNormalize +/* 07779C 7F042C6C 24860008 */ addiu $a2, $a0, 8 +/* 0777A0 7F042C70 10000005 */ b .L7F042C88 +/* 0777A4 7F042C74 C6000008 */ lwc1 $f0, 8($s0) +/* 0777A8 7F042C78 44815000 */ mtc1 $at, $f10 +.L7F042C7C: +/* 0777AC 7F042C7C 00000000 */ nop +/* 0777B0 7F042C80 E48A0008 */ swc1 $f10, 8($a0) +/* 0777B4 7F042C84 C6000008 */ lwc1 $f0, 8($s0) +.L7F042C88: +/* 0777B8 7F042C88 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0777BC 7F042C8C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0777C0 7F042C90 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0777C4 7F042C94 46009032 */ c.eq.s $f18, $f0 +/* 0777C8 7F042C98 00000000 */ nop +/* 0777CC 7F042C9C 4502000F */ bc1fl .L7F042CDC +/* 0777D0 7F042CA0 46005481 */ sub.s $f18, $f10, $f0 +/* 0777D4 7F042CA4 C606000C */ lwc1 $f6, 0xc($s0) +/* 0777D8 7F042CA8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0777DC 7F042CAC 46062032 */ c.eq.s $f4, $f6 +/* 0777E0 7F042CB0 00000000 */ nop +/* 0777E4 7F042CB4 45020009 */ bc1fl .L7F042CDC +/* 0777E8 7F042CB8 46005481 */ sub.s $f18, $f10, $f0 +/* 0777EC 7F042CBC C6100010 */ lwc1 $f16, 0x10($s0) +/* 0777F0 7F042CC0 8FA200C8 */ lw $v0, 0xc8($sp) +/* 0777F4 7F042CC4 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0777F8 7F042CC8 46104032 */ c.eq.s $f8, $f16 +/* 0777FC 7F042CCC 00000000 */ nop +/* 077800 7F042CD0 4503006A */ bc1tl .L7F042E7C +/* 077804 7F042CD4 E4520000 */ swc1 $f18, ($v0) +/* 077808 7F042CD8 46005481 */ sub.s $f18, $f10, $f0 +.L7F042CDC: +/* 07780C 7F042CDC C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 077810 7F042CE0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 077814 7F042CE4 26040008 */ addiu $a0, $s0, 8 +/* 077818 7F042CE8 E7B200A4 */ swc1 $f18, 0xa4($sp) +/* 07781C 7F042CEC C606000C */ lwc1 $f6, 0xc($s0) +/* 077820 7F042CF0 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 077824 7F042CF4 8FA600C8 */ lw $a2, 0xc8($sp) +/* 077828 7F042CF8 46062201 */ sub.s $f8, $f4, $f6 +/* 07782C 7F042CFC E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 077830 7F042D00 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 077834 7F042D04 460A8481 */ sub.s $f18, $f16, $f10 +/* 077838 7F042D08 0FC09893 */ jal sub_GAME_7F02624C +/* 07783C 7F042D0C E7B200AC */ swc1 $f18, 0xac($sp) +/* 077840 7F042D10 C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 077844 7F042D14 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 077848 7F042D18 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 07784C 7F042D1C E7A4005C */ swc1 $f4, 0x5c($sp) +/* 077850 7F042D20 C6060008 */ lwc1 $f6, 8($s0) +/* 077854 7F042D24 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 077858 7F042D28 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 07785C 7F042D2C E7A60060 */ swc1 $f6, 0x60($sp) +/* 077860 7F042D30 C6080010 */ lwc1 $f8, 0x10($s0) +/* 077864 7F042D34 E7B00054 */ swc1 $f16, 0x54($sp) +/* 077868 7F042D38 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07786C 7F042D3C E7B2004C */ swc1 $f18, 0x4c($sp) +/* 077870 7F042D40 E7A40050 */ swc1 $f4, 0x50($sp) +/* 077874 7F042D44 E7A80064 */ swc1 $f8, 0x64($sp) +/* 077878 7F042D48 C6080008 */ lwc1 $f8, 8($s0) +/* 07787C 7F042D4C C7A60098 */ lwc1 $f6, 0x98($sp) +/* 077880 7F042D50 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 077884 7F042D54 27A4005C */ addiu $a0, $sp, 0x5c +/* 077888 7F042D58 46083401 */ sub.s $f16, $f6, $f8 +/* 07788C 7F042D5C 27A50054 */ addiu $a1, $sp, 0x54 +/* 077890 7F042D60 27A6004C */ addiu $a2, $sp, 0x4c +/* 077894 7F042D64 27A70044 */ addiu $a3, $sp, 0x44 +/* 077898 7F042D68 E7B00044 */ swc1 $f16, 0x44($sp) +/* 07789C 7F042D6C C6120010 */ lwc1 $f18, 0x10($s0) +/* 0778A0 7F042D70 46125101 */ sub.s $f4, $f10, $f18 +/* 0778A4 7F042D74 0FC2CCF7 */ jal sub_GAME_7F0B33DC +/* 0778A8 7F042D78 E7A40048 */ swc1 $f4, 0x48($sp) +/* 0778AC 7F042D7C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0778B0 7F042D80 3C018005 */ lui $at, %hi(D_80052A5C) +/* 0778B4 7F042D84 C4222A5C */ lwc1 $f2, %lo(D_80052A5C)($at) +/* 0778B8 7F042D88 46004402 */ mul.s $f16, $f8, $f0 +/* 0778BC 7F042D8C 8E190014 */ lw $t9, 0x14($s0) +/* 0778C0 7F042D90 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0778C4 7F042D94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0778C8 7F042D98 AFB900B8 */ sw $t9, 0xb8($sp) +/* 0778CC 7F042D9C C6060008 */ lwc1 $f6, 8($s0) +/* 0778D0 7F042DA0 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0778D4 7F042DA4 46028282 */ mul.s $f10, $f16, $f2 +/* 0778D8 7F042DA8 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0778DC 7F042DAC 2408001F */ li $t0, 31 +/* 0778E0 7F042DB0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0778E4 7F042DB4 460A3480 */ add.s $f18, $f6, $f10 +/* 0778E8 7F042DB8 46008182 */ mul.s $f6, $f16, $f0 +/* 0778EC 7F042DBC C7B00090 */ lwc1 $f16, 0x90($sp) +/* 0778F0 7F042DC0 E7B20068 */ swc1 $f18, 0x68($sp) +/* 0778F4 7F042DC4 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0778F8 7F042DC8 8FA70068 */ lw $a3, 0x68($sp) +/* 0778FC 7F042DCC 46023282 */ mul.s $f10, $f6, $f2 +/* 077900 7F042DD0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 077904 7F042DD4 460A4480 */ add.s $f18, $f8, $f10 +/* 077908 7F042DD8 44815000 */ mtc1 $at, $f10 +/* 07790C 7F042DDC 44804000 */ mtc1 $zero, $f8 +/* 077910 7F042DE0 E7B20070 */ swc1 $f18, 0x70($sp) +/* 077914 7F042DE4 8E060010 */ lw $a2, 0x10($s0) +/* 077918 7F042DE8 8E050008 */ lw $a1, 8($s0) +/* 07791C 7F042DEC C7A40070 */ lwc1 $f4, 0x70($sp) +/* 077920 7F042DF0 AFA80014 */ sw $t0, 0x14($sp) +/* 077924 7F042DF4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 077928 7F042DF8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 07792C 7F042DFC E7AA0024 */ swc1 $f10, 0x24($sp) +/* 077930 7F042E00 E7A80020 */ swc1 $f8, 0x20($sp) +/* 077934 7F042E04 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 077938 7F042E08 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07793C 7F042E0C 1040001F */ beqz $v0, .L7F042E8C +/* 077940 7F042E10 8FA900B8 */ lw $t1, 0xb8($sp) +/* 077944 7F042E14 1120001D */ beqz $t1, .L7F042E8C +/* 077948 7F042E18 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 07794C 7F042E1C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 077950 7F042E20 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 077954 7F042E24 240A001F */ li $t2, 31 +/* 077958 7F042E28 AFAA0010 */ sw $t2, 0x10($sp) +/* 07795C 7F042E2C 8FA50068 */ lw $a1, 0x68($sp) +/* 077960 7F042E30 8FA60070 */ lw $a2, 0x70($sp) +/* 077964 7F042E34 8FA700B4 */ lw $a3, 0xb4($sp) +/* 077968 7F042E38 E7B20014 */ swc1 $f18, 0x14($sp) +/* 07796C 7F042E3C 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 077970 7F042E40 E7A40018 */ swc1 $f4, 0x18($sp) +/* 077974 7F042E44 04410011 */ bgez $v0, .L7F042E8C +/* 077978 7F042E48 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 07797C 7F042E4C 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 077980 7F042E50 E5700058 */ swc1 $f16, 0x58($t3) +/* 077984 7F042E54 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 077988 7F042E58 E5660060 */ swc1 $f6, 0x60($t3) +/* 07798C 7F042E5C 8FAC00B8 */ lw $t4, 0xb8($sp) +/* 077990 7F042E60 AE0C0014 */ sw $t4, 0x14($s0) +/* 077994 7F042E64 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 077998 7F042E68 E6080008 */ swc1 $f8, 8($s0) +/* 07799C 7F042E6C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 0779A0 7F042E70 10000006 */ b .L7F042E8C +/* 0779A4 7F042E74 E60A0010 */ swc1 $f10, 0x10($s0) +/* 0779A8 7F042E78 E4520000 */ swc1 $f18, ($v0) +.L7F042E7C: +/* 0779AC 7F042E7C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0779B0 7F042E80 E4440004 */ swc1 $f4, 4($v0) +/* 0779B4 7F042E84 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0779B8 7F042E88 E4500008 */ swc1 $f16, 8($v0) +.L7F042E8C: +/* 0779BC 7F042E8C C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 0779C0 7F042E90 E600000C */ swc1 $f0, 0xc($s0) +/* 0779C4 7F042E94 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 0779C8 7F042E98 E5A0005C */ swc1 $f0, 0x5c($t5) +/* 0779CC 7F042E9C AFA000B0 */ sw $zero, 0xb0($sp) +.L7F042EA0: +/* 0779D0 7F042EA0 8FBF0034 */ lw $ra, 0x34($sp) +.L7F042EA4: +/* 0779D4 7F042EA4 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0779D8 7F042EA8 8FB00030 */ lw $s0, 0x30($sp) +/* 0779DC 7F042EAC 03E00008 */ jr $ra +/* 0779E0 7F042EB0 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042EB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F042EB4 +/* 0779E4 7F042EB4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0779E8 7F042EB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0779EC 7F042EBC 8C8E0064 */ lw $t6, 0x64($a0) +/* 0779F0 7F042EC0 8FAB0030 */ lw $t3, 0x30($sp) +/* 0779F4 7F042EC4 31CF0080 */ andi $t7, $t6, 0x80 +/* 0779F8 7F042EC8 11E0000D */ beqz $t7, .L7F042F00 +/* 0779FC 7F042ECC 00000000 */ nop +/* 077A00 7F042ED0 8C98006C */ lw $t8, 0x6c($a0) +/* 077A04 7F042ED4 8FA90030 */ lw $t1, 0x30($sp) +/* 077A08 7F042ED8 8F190000 */ lw $t9, ($t8) +/* 077A0C 7F042EDC 33280004 */ andi $t0, $t9, 4 +/* 077A10 7F042EE0 11000007 */ beqz $t0, .L7F042F00 +/* 077A14 7F042EE4 00000000 */ nop +/* 077A18 7F042EE8 8FAA0034 */ lw $t2, 0x34($sp) +/* 077A1C 7F042EEC AFA90010 */ sw $t1, 0x10($sp) +/* 077A20 7F042EF0 0FC10893 */ jal handles_projectile_motion +/* 077A24 7F042EF4 AFAA0014 */ sw $t2, 0x14($sp) +/* 077A28 7F042EF8 10000004 */ b .L7F042F0C +/* 077A2C 7F042EFC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F042F00: +/* 077A30 7F042F00 0FC10A83 */ jal sub_GAME_7F042A0C +/* 077A34 7F042F04 AFAB0010 */ sw $t3, 0x10($sp) +/* 077A38 7F042F08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F042F0C: +/* 077A3C 7F042F0C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 077A40 7F042F10 03E00008 */ jr $ra +/* 077A44 7F042F14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042F18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F042F18 +/* 077A48 7F042F18 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 077A4C 7F042F1C 3C038005 */ lui $v1, %hi(clock_timer) +/* 077A50 7F042F20 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 077A54 7F042F24 8C6E0000 */ lw $t6, ($v1) +/* 077A58 7F042F28 F7B40008 */ sdc1 $f20, 8($sp) +/* 077A5C 7F042F2C 4487A000 */ mtc1 $a3, $f20 +/* 077A60 7F042F30 F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 077A64 7F042F34 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 077A68 7F042F38 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 077A6C 7F042F3C 44857000 */ mtc1 $a1, $f14 +/* 077A70 7F042F40 C4C00000 */ lwc1 $f0, ($a2) +/* 077A74 7F042F44 19C0006A */ blez $t6, .L7F0430F0 +/* 077A78 7F042F48 00001025 */ move $v0, $zero +/* 077A7C 7F042F4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 077A80 7F042F50 4481D000 */ mtc1 $at, $f26 +/* 077A84 7F042F54 4480C000 */ mtc1 $zero, $f24 +/* 077A88 7F042F58 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 077A8C 7F042F5C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 077A90 7F042F60 C4900000 */ lwc1 $f16, ($a0) +.L7F042F64: +/* 077A94 7F042F64 46107301 */ sub.s $f12, $f14, $f16 +/* 077A98 7F042F68 460CC03C */ c.lt.s $f24, $f12 +/* 077A9C 7F042F6C 00000000 */ nop +/* 077AA0 7F042F70 4502002E */ bc1fl .L7F04302C +/* 077AA4 7F042F74 4618003C */ c.lt.s $f0, $f24 +/* 077AA8 7F042F78 4600C03C */ c.lt.s $f24, $f0 +/* 077AAC 7F042F7C 00000000 */ nop +/* 077AB0 7F042F80 45020011 */ bc1fl .L7F042FC8 +/* 077AB4 7F042F84 4612003C */ c.lt.s $f0, $f18 +/* 077AB8 7F042F88 46000102 */ mul.s $f4, $f0, $f0 +/* 077ABC 7F042F8C 00000000 */ nop +/* 077AC0 7F042F90 461A2182 */ mul.s $f6, $f4, $f26 +/* 077AC4 7F042F94 46023203 */ div.s $f8, $f6, $f2 +/* 077AC8 7F042F98 4608603E */ c.le.s $f12, $f8 +/* 077ACC 7F042F9C 00000000 */ nop +/* 077AD0 7F042FA0 45000008 */ bc1f .L7F042FC4 +/* 077AD4 7F042FA4 00000000 */ nop +/* 077AD8 7F042FA8 46020001 */ sub.s $f0, $f0, $f2 +/* 077ADC 7F042FAC 4602003C */ c.lt.s $f0, $f2 +/* 077AE0 7F042FB0 00000000 */ nop +/* 077AE4 7F042FB4 45020014 */ bc1fl .L7F043008 +/* 077AE8 7F042FB8 4600603E */ c.le.s $f12, $f0 +/* 077AEC 7F042FBC 10000011 */ b .L7F043004 +/* 077AF0 7F042FC0 46001006 */ mov.s $f0, $f2 +.L7F042FC4: +/* 077AF4 7F042FC4 4612003C */ c.lt.s $f0, $f18 +.L7F042FC8: +/* 077AF8 7F042FC8 00000000 */ nop +/* 077AFC 7F042FCC 4502000E */ bc1fl .L7F043008 +/* 077B00 7F042FD0 4600603E */ c.le.s $f12, $f0 +/* 077B04 7F042FD4 4618003C */ c.lt.s $f0, $f24 +/* 077B08 7F042FD8 00000000 */ nop +/* 077B0C 7F042FDC 45020004 */ bc1fl .L7F042FF0 +/* 077B10 7F042FE0 46140000 */ add.s $f0, $f0, $f20 +/* 077B14 7F042FE4 10000002 */ b .L7F042FF0 +/* 077B18 7F042FE8 46020000 */ add.s $f0, $f0, $f2 +/* 077B1C 7F042FEC 46140000 */ add.s $f0, $f0, $f20 +.L7F042FF0: +/* 077B20 7F042FF0 4600903C */ c.lt.s $f18, $f0 +/* 077B24 7F042FF4 00000000 */ nop +/* 077B28 7F042FF8 45020003 */ bc1fl .L7F043008 +/* 077B2C 7F042FFC 4600603E */ c.le.s $f12, $f0 +/* 077B30 7F043000 46009006 */ mov.s $f0, $f18 +.L7F043004: +/* 077B34 7F043004 4600603E */ c.le.s $f12, $f0 +.L7F043008: +/* 077B38 7F043008 00000000 */ nop +/* 077B3C 7F04300C 45020004 */ bc1fl .L7F043020 +/* 077B40 7F043010 46008280 */ add.s $f10, $f16, $f0 +/* 077B44 7F043014 10000036 */ b .L7F0430F0 +/* 077B48 7F043018 E48E0000 */ swc1 $f14, ($a0) +/* 077B4C 7F04301C 46008280 */ add.s $f10, $f16, $f0 +.L7F043020: +/* 077B50 7F043020 1000002E */ b .L7F0430DC +/* 077B54 7F043024 E48A0000 */ swc1 $f10, ($a0) +/* 077B58 7F043028 4618003C */ c.lt.s $f0, $f24 +.L7F04302C: +/* 077B5C 7F04302C 00000000 */ nop +/* 077B60 7F043030 45020012 */ bc1fl .L7F04307C +/* 077B64 7F043034 46009587 */ neg.s $f22, $f18 +/* 077B68 7F043038 46000102 */ mul.s $f4, $f0, $f0 +/* 077B6C 7F04303C 46006287 */ neg.s $f10, $f12 +/* 077B70 7F043040 461A2182 */ mul.s $f6, $f4, $f26 +/* 077B74 7F043044 46023203 */ div.s $f8, $f6, $f2 +/* 077B78 7F043048 4608503E */ c.le.s $f10, $f8 +/* 077B7C 7F04304C 00000000 */ nop +/* 077B80 7F043050 4502000A */ bc1fl .L7F04307C +/* 077B84 7F043054 46009587 */ neg.s $f22, $f18 +/* 077B88 7F043058 46020000 */ add.s $f0, $f0, $f2 +/* 077B8C 7F04305C 46001587 */ neg.s $f22, $f2 +/* 077B90 7F043060 4600B03C */ c.lt.s $f22, $f0 +/* 077B94 7F043064 00000000 */ nop +/* 077B98 7F043068 45020015 */ bc1fl .L7F0430C0 +/* 077B9C 7F04306C 460C003E */ c.le.s $f0, $f12 +/* 077BA0 7F043070 10000012 */ b .L7F0430BC +/* 077BA4 7F043074 4600B006 */ mov.s $f0, $f22 +/* 077BA8 7F043078 46009587 */ neg.s $f22, $f18 +.L7F04307C: +/* 077BAC 7F04307C 4600B03C */ c.lt.s $f22, $f0 +/* 077BB0 7F043080 00000000 */ nop +/* 077BB4 7F043084 4502000E */ bc1fl .L7F0430C0 +/* 077BB8 7F043088 460C003E */ c.le.s $f0, $f12 +/* 077BBC 7F04308C 4600C03C */ c.lt.s $f24, $f0 +/* 077BC0 7F043090 00000000 */ nop +/* 077BC4 7F043094 45020004 */ bc1fl .L7F0430A8 +/* 077BC8 7F043098 46140001 */ sub.s $f0, $f0, $f20 +/* 077BCC 7F04309C 10000002 */ b .L7F0430A8 +/* 077BD0 7F0430A0 46020001 */ sub.s $f0, $f0, $f2 +/* 077BD4 7F0430A4 46140001 */ sub.s $f0, $f0, $f20 +.L7F0430A8: +/* 077BD8 7F0430A8 4616003C */ c.lt.s $f0, $f22 +/* 077BDC 7F0430AC 00000000 */ nop +/* 077BE0 7F0430B0 45020003 */ bc1fl .L7F0430C0 +/* 077BE4 7F0430B4 460C003E */ c.le.s $f0, $f12 +/* 077BE8 7F0430B8 4600B006 */ mov.s $f0, $f22 +.L7F0430BC: +/* 077BEC 7F0430BC 460C003E */ c.le.s $f0, $f12 +.L7F0430C0: +/* 077BF0 7F0430C0 00000000 */ nop +/* 077BF4 7F0430C4 45020004 */ bc1fl .L7F0430D8 +/* 077BF8 7F0430C8 46008100 */ add.s $f4, $f16, $f0 +/* 077BFC 7F0430CC 10000008 */ b .L7F0430F0 +/* 077C00 7F0430D0 E48E0000 */ swc1 $f14, ($a0) +/* 077C04 7F0430D4 46008100 */ add.s $f4, $f16, $f0 +.L7F0430D8: +/* 077C08 7F0430D8 E4840000 */ swc1 $f4, ($a0) +.L7F0430DC: +/* 077C0C 7F0430DC 8C6F0000 */ lw $t7, ($v1) +/* 077C10 7F0430E0 24420001 */ addiu $v0, $v0, 1 +/* 077C14 7F0430E4 004F082A */ slt $at, $v0, $t7 +/* 077C18 7F0430E8 5420FF9E */ bnezl $at, .L7F042F64 +/* 077C1C 7F0430EC C4900000 */ lwc1 $f16, ($a0) +.L7F0430F0: +/* 077C20 7F0430F0 E4C00000 */ swc1 $f0, ($a2) +/* 077C24 7F0430F4 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 077C28 7F0430F8 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 077C2C 7F0430FC D7B60010 */ ldc1 $f22, 0x10($sp) +/* 077C30 7F043100 D7B40008 */ ldc1 $f20, 8($sp) +/* 077C34 7F043104 03E00008 */ jr $ra +/* 077C38 7F043108 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04310C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A60 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052A64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A68 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052A6C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A70 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F04310C +/* 077C3C 7F04310C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 077C40 7F043110 AFBF001C */ sw $ra, 0x1c($sp) +/* 077C44 7F043114 44856000 */ mtc1 $a1, $f12 +/* 077C48 7F043118 C4840000 */ lwc1 $f4, ($a0) +/* 077C4C 7F04311C 3C018005 */ lui $at, %hi(D_80052A60) +/* 077C50 7F043120 C4262A60 */ lwc1 $f6, %lo(D_80052A60)($at) +/* 077C54 7F043124 46046001 */ sub.s $f0, $f12, $f4 +/* 077C58 7F043128 44877000 */ mtc1 $a3, $f14 +/* 077C5C 7F04312C 3C018005 */ lui $at, %hi(D_80052A68) +/* 077C60 7F043130 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 077C64 7F043134 4606003C */ c.lt.s $f0, $f6 +/* 077C68 7F043138 44077000 */ mfc1 $a3, $f14 +/* 077C6C 7F04313C 45000005 */ bc1f .L7F043154 +/* 077C70 7F043140 00000000 */ nop +/* 077C74 7F043144 3C018005 */ lui $at, %hi(D_80052A68) +/* 077C78 7F043148 C4282A64 */ lwc1 $f8, %lo(D_80052A64)($at) +/* 077C7C 7F04314C 10000009 */ b .L7F043174 +/* 077C80 7F043150 46086300 */ add.s $f12, $f12, $f8 +.L7F043154: +/* 077C84 7F043154 C42A2A68 */ lwc1 $f10, %lo(D_80052A68)($at) +/* 077C88 7F043158 3C018005 */ lui $at, %hi(D_80052A6C) +/* 077C8C 7F04315C 4600503E */ c.le.s $f10, $f0 +/* 077C90 7F043160 00000000 */ nop +/* 077C94 7F043164 45020004 */ bc1fl .L7F043178 +/* 077C98 7F043168 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 077C9C 7F04316C C4222A6C */ lwc1 $f2, %lo(D_80052A6C)($at) +/* 077CA0 7F043170 46026301 */ sub.s $f12, $f12, $f2 +.L7F043174: +/* 077CA4 7F043174 C7B20034 */ lwc1 $f18, 0x34($sp) +.L7F043178: +/* 077CA8 7F043178 44056000 */ mfc1 $a1, $f12 +/* 077CAC 7F04317C E7B00010 */ swc1 $f16, 0x10($sp) +/* 077CB0 7F043180 AFA40020 */ sw $a0, 0x20($sp) +/* 077CB4 7F043184 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 077CB8 7F043188 E7B20014 */ swc1 $f18, 0x14($sp) +/* 077CBC 7F04318C 8FA40020 */ lw $a0, 0x20($sp) +/* 077CC0 7F043190 44802000 */ mtc1 $zero, $f4 +/* 077CC4 7F043194 3C018005 */ lui $at, %hi(D_80052A70) +/* 077CC8 7F043198 C4800000 */ lwc1 $f0, ($a0) +/* 077CCC 7F04319C C4222A70 */ lwc1 $f2, %lo(D_80052A70)($at) +/* 077CD0 7F0431A0 4604003C */ c.lt.s $f0, $f4 +/* 077CD4 7F0431A4 00000000 */ nop +/* 077CD8 7F0431A8 45020005 */ bc1fl .L7F0431C0 +/* 077CDC 7F0431AC 4600103E */ c.le.s $f2, $f0 +/* 077CE0 7F0431B0 46020180 */ add.s $f6, $f0, $f2 +/* 077CE4 7F0431B4 E4860000 */ swc1 $f6, ($a0) +/* 077CE8 7F0431B8 C4800000 */ lwc1 $f0, ($a0) +/* 077CEC 7F0431BC 4600103E */ c.le.s $f2, $f0 +.L7F0431C0: +/* 077CF0 7F0431C0 00000000 */ nop +/* 077CF4 7F0431C4 45020004 */ bc1fl .L7F0431D8 +/* 077CF8 7F0431C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 077CFC 7F0431CC 46020201 */ sub.s $f8, $f0, $f2 +/* 077D00 7F0431D0 E4880000 */ swc1 $f8, ($a0) +/* 077D04 7F0431D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0431D8: +/* 077D08 7F0431D8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 077D0C 7F0431DC 03E00008 */ jr $ra +/* 077D10 7F0431E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0431E4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A74 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A78 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80052A7C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A80 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80052A84 +.word 0x3cf5c28f /*0.029999999*/ +glabel D_80052A88 +.word 0x3e19999a /*0.15000001*/ +.text +glabel sub_GAME_7F0431E4 +/* 077D14 7F0431E4 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 077D18 7F0431E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 077D1C 7F0431EC AFB10018 */ sw $s1, 0x18($sp) +/* 077D20 7F0431F0 AFB00014 */ sw $s0, 0x14($sp) +/* 077D24 7F0431F4 AFA5011C */ sw $a1, 0x11c($sp) +/* 077D28 7F0431F8 8C8E0064 */ lw $t6, 0x64($a0) +/* 077D2C 7F0431FC 3C01FFFE */ li $at, 0xFFFE0000 # -nan +/* 077D30 7F043200 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 077D34 7F043204 01C17824 */ and $t7, $t6, $at +/* 077D38 7F043208 31F90080 */ andi $t9, $t7, 0x80 +/* 077D3C 7F04320C 00808825 */ move $s1, $a0 +/* 077D40 7F043210 1320010A */ beqz $t9, .L7F04363C +/* 077D44 7F043214 AC8F0064 */ sw $t7, 0x64($a0) +/* 077D48 7F043218 90880003 */ lbu $t0, 3($a0) +/* 077D4C 7F04321C 8C90006C */ lw $s0, 0x6c($a0) +/* 077D50 7F043220 24010001 */ li $at, 1 +/* 077D54 7F043224 15010009 */ bne $t0, $at, .L7F04324C +/* 077D58 7F043228 26240018 */ addiu $a0, $s1, 0x18 +/* 077D5C 7F04322C 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 077D60 7F043230 02002025 */ move $a0, $s0 +/* 077D64 7F043234 8E290064 */ lw $t1, 0x64($s1) +/* 077D68 7F043238 2401FF7F */ li $at, -129 +/* 077D6C 7F04323C AE20006C */ sw $zero, 0x6c($s1) +/* 077D70 7F043240 01215024 */ and $t2, $t1, $at +/* 077D74 7F043244 100000FD */ b .L7F04363C +/* 077D78 7F043248 AE2A0064 */ sw $t2, 0x64($s1) +.L7F04324C: +/* 077D7C 7F04324C 8E0B0000 */ lw $t3, ($s0) +/* 077D80 7F043250 2401FFFE */ li $at, -2 +/* 077D84 7F043254 AE000088 */ sw $zero, 0x88($s0) +/* 077D88 7F043258 01616024 */ and $t4, $t3, $at +/* 077D8C 7F04325C 2401FFFB */ li $at, -5 +/* 077D90 7F043260 AE0C0000 */ sw $t4, ($s0) +/* 077D94 7F043264 01817024 */ and $t6, $t4, $at +/* 077D98 7F043268 AE0E0000 */ sw $t6, ($s0) +/* 077D9C 7F04326C AFA40028 */ sw $a0, 0x28($sp) +/* 077DA0 7F043270 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 077DA4 7F043274 27A5010C */ addiu $a1, $sp, 0x10c +/* 077DA8 7F043278 27A4010C */ addiu $a0, $sp, 0x10c +/* 077DAC 7F04327C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 077DB0 7F043280 27A500CC */ addiu $a1, $sp, 0xcc +/* 077DB4 7F043284 26050068 */ addiu $a1, $s0, 0x68 +/* 077DB8 7F043288 AFA50024 */ sw $a1, 0x24($sp) +/* 077DBC 7F04328C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 077DC0 7F043290 27A4010C */ addiu $a0, $sp, 0x10c +/* 077DC4 7F043294 27A400CC */ addiu $a0, $sp, 0xcc +/* 077DC8 7F043298 0FC1674E */ jal matrix_4x4_set_rotation_inverse +/* 077DCC 7F04329C 27A5008C */ addiu $a1, $sp, 0x8c +/* 077DD0 7F0432A0 27A4008C */ addiu $a0, $sp, 0x8c +/* 077DD4 7F0432A4 8FA50028 */ lw $a1, 0x28($sp) +/* 077DD8 7F0432A8 0FC16032 */ jal matrix_4x4_multiply +/* 077DDC 7F0432AC 27A6004C */ addiu $a2, $sp, 0x4c +/* 077DE0 7F0432B0 C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 077DE4 7F0432B4 C7AE0050 */ lwc1 $f14, 0x50($sp) +/* 077DE8 7F0432B8 C7A00054 */ lwc1 $f0, 0x54($sp) +/* 077DEC 7F0432BC 46021102 */ mul.s $f4, $f2, $f2 +/* 077DF0 7F0432C0 00000000 */ nop +/* 077DF4 7F0432C4 460E7182 */ mul.s $f6, $f14, $f14 +/* 077DF8 7F0432C8 46062200 */ add.s $f8, $f4, $f6 +/* 077DFC 7F0432CC 46000282 */ mul.s $f10, $f0, $f0 +/* 077E00 7F0432D0 0C007DF8 */ jal sqrtf +/* 077E04 7F0432D4 46085300 */ add.s $f12, $f10, $f8 +/* 077E08 7F0432D8 E60000C0 */ swc1 $f0, 0xc0($s0) +/* 077E0C 7F0432DC C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 077E10 7F0432E0 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 077E14 7F0432E4 46042182 */ mul.s $f6, $f4, $f4 +/* 077E18 7F0432E8 00000000 */ nop +/* 077E1C 7F0432EC 460A5202 */ mul.s $f8, $f10, $f10 +/* 077E20 7F0432F0 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 077E24 7F0432F4 46083100 */ add.s $f4, $f6, $f8 +/* 077E28 7F0432F8 460A5182 */ mul.s $f6, $f10, $f10 +/* 077E2C 7F0432FC 0C007DF8 */ jal sqrtf +/* 077E30 7F043300 46043300 */ add.s $f12, $f6, $f4 +/* 077E34 7F043304 E60000C4 */ swc1 $f0, 0xc4($s0) +/* 077E38 7F043308 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 077E3C 7F04330C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 077E40 7F043310 46084282 */ mul.s $f10, $f8, $f8 +/* 077E44 7F043314 00000000 */ nop +/* 077E48 7F043318 46063102 */ mul.s $f4, $f6, $f6 +/* 077E4C 7F04331C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 077E50 7F043320 46045200 */ add.s $f8, $f10, $f4 +/* 077E54 7F043324 46063282 */ mul.s $f10, $f6, $f6 +/* 077E58 7F043328 0C007DF8 */ jal sqrtf +/* 077E5C 7F04332C 46085300 */ add.s $f12, $f10, $f8 +/* 077E60 7F043330 E60000C8 */ swc1 $f0, 0xc8($s0) +/* 077E64 7F043334 44808000 */ mtc1 $zero, $f16 +/* 077E68 7F043338 C6220018 */ lwc1 $f2, 0x18($s1) +/* 077E6C 7F04333C C62E0020 */ lwc1 $f14, 0x20($s1) +/* 077E70 7F043340 46101032 */ c.eq.s $f2, $f16 +/* 077E74 7F043344 00000000 */ nop +/* 077E78 7F043348 45000005 */ bc1f .L7F043360 +/* 077E7C 7F04334C 00000000 */ nop +/* 077E80 7F043350 46107032 */ c.eq.s $f14, $f16 +/* 077E84 7F043354 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077E88 7F043358 45030013 */ bc1tl .L7F0433A8 +/* 077E8C 7F04335C 44817000 */ mtc1 $at, $f14 +.L7F043360: +/* 077E90 7F043360 46021102 */ mul.s $f4, $f2, $f2 +/* 077E94 7F043364 E7A20048 */ swc1 $f2, 0x48($sp) +/* 077E98 7F043368 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 077E9C 7F04336C 460E7182 */ mul.s $f6, $f14, $f14 +/* 077EA0 7F043370 0C007DF8 */ jal sqrtf +/* 077EA4 7F043374 46062300 */ add.s $f12, $f4, $f6 +/* 077EA8 7F043378 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077EAC 7F04337C 44819000 */ mtc1 $at, $f18 +/* 077EB0 7F043380 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 077EB4 7F043384 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 077EB8 7F043388 46009303 */ div.s $f12, $f18, $f0 +/* 077EBC 7F04338C 44808000 */ mtc1 $zero, $f16 +/* 077EC0 7F043390 460C1082 */ mul.s $f2, $f2, $f12 +/* 077EC4 7F043394 00000000 */ nop +/* 077EC8 7F043398 460C7382 */ mul.s $f14, $f14, $f12 +/* 077ECC 7F04339C 10000004 */ b .L7F0433B0 +/* 077ED0 7F0433A0 00000000 */ nop +/* 077ED4 7F0433A4 44817000 */ mtc1 $at, $f14 +.L7F0433A8: +/* 077ED8 7F0433A8 44819000 */ mtc1 $at, $f18 +/* 077EDC 7F0433AC 46008086 */ mov.s $f2, $f16 +.L7F0433B0: +/* 077EE0 7F0433B0 E7A2008C */ swc1 $f2, 0x8c($sp) +/* 077EE4 7F0433B4 E7B00090 */ swc1 $f16, 0x90($sp) +/* 077EE8 7F0433B8 E7AE0094 */ swc1 $f14, 0x94($sp) +/* 077EEC 7F0433BC E7B00098 */ swc1 $f16, 0x98($sp) +/* 077EF0 7F0433C0 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 077EF4 7F0433C4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 077EF8 7F0433C8 27A4008C */ addiu $a0, $sp, 0x8c +/* 077EFC 7F0433CC 460A803E */ c.le.s $f16, $f10 +/* 077F00 7F0433D0 27A5010C */ addiu $a1, $sp, 0x10c +/* 077F04 7F0433D4 4502000C */ bc1fl .L7F043408 +/* 077F08 7F0433D8 44812000 */ mtc1 $at, $f4 +/* 077F0C 7F0433DC 46007207 */ neg.s $f8, $f14 +/* 077F10 7F0433E0 E7B0009C */ swc1 $f16, 0x9c($sp) +/* 077F14 7F0433E4 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 077F18 7F0433E8 E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 077F1C 7F0433EC E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 077F20 7F0433F0 E7A800AC */ swc1 $f8, 0xac($sp) +/* 077F24 7F0433F4 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 077F28 7F0433F8 E7A200B4 */ swc1 $f2, 0xb4($sp) +/* 077F2C 7F0433FC 1000000B */ b .L7F04342C +/* 077F30 7F043400 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 077F34 7F043404 44812000 */ mtc1 $at, $f4 +.L7F043408: +/* 077F38 7F043408 46001187 */ neg.s $f6, $f2 +/* 077F3C 7F04340C E7B0009C */ swc1 $f16, 0x9c($sp) +/* 077F40 7F043410 E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 077F44 7F043414 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 077F48 7F043418 E7AE00AC */ swc1 $f14, 0xac($sp) +/* 077F4C 7F04341C E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 077F50 7F043420 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 077F54 7F043424 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 077F58 7F043428 E7A400A0 */ swc1 $f4, 0xa0($sp) +.L7F04342C: +/* 077F5C 7F04342C E7B000BC */ swc1 $f16, 0xbc($sp) +/* 077F60 7F043430 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 077F64 7F043434 E7B000C4 */ swc1 $f16, 0xc4($sp) +/* 077F68 7F043438 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 077F6C 7F04343C E7B200C8 */ swc1 $f18, 0xc8($sp) +/* 077F70 7F043440 26050078 */ addiu $a1, $s0, 0x78 +/* 077F74 7F043444 AFA50028 */ sw $a1, 0x28($sp) +/* 077F78 7F043448 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 077F7C 7F04344C 27A4010C */ addiu $a0, $sp, 0x10c +/* 077F80 7F043450 8FA50028 */ lw $a1, 0x28($sp) +/* 077F84 7F043454 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 077F88 7F043458 8FA40024 */ lw $a0, 0x24($sp) +/* 077F8C 7F04345C 44808000 */ mtc1 $zero, $f16 +/* 077F90 7F043460 00000000 */ nop +/* 077F94 7F043464 E6100060 */ swc1 $f16, 0x60($s0) +/* 077F98 7F043468 C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 077F9C 7F04346C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 077FA0 7F043470 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 077FA4 7F043474 46085102 */ mul.s $f4, $f10, $f8 +/* 077FA8 7F043478 C7AA00D0 */ lwc1 $f10, 0xd0($sp) +/* 077FAC 7F04347C 460A3202 */ mul.s $f8, $f6, $f10 +/* 077FB0 7F043480 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 077FB4 7F043484 46082180 */ add.s $f6, $f4, $f8 +/* 077FB8 7F043488 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 077FBC 7F04348C 46045202 */ mul.s $f8, $f10, $f4 +/* 077FC0 7F043490 0FC16B2C */ jal acosf +/* 077FC4 7F043494 46064300 */ add.s $f12, $f8, $f6 +/* 077FC8 7F043498 44808000 */ mtc1 $zero, $f16 +/* 077FCC 7F04349C 46000486 */ mov.s $f18, $f0 +/* 077FD0 7F0434A0 4600803C */ c.lt.s $f16, $f0 +/* 077FD4 7F0434A4 00000000 */ nop +/* 077FD8 7F0434A8 45020018 */ bc1fl .L7F04350C +/* 077FDC 7F0434AC 4600803C */ c.lt.s $f16, $f0 +/* 077FE0 7F0434B0 C622001C */ lwc1 $f2, 0x1c($s1) +/* 077FE4 7F0434B4 8FA2011C */ lw $v0, 0x11c($sp) +/* 077FE8 7F0434B8 4602803C */ c.lt.s $f16, $f2 +/* 077FEC 7F0434BC 00000000 */ nop +/* 077FF0 7F0434C0 45020012 */ bc1fl .L7F04350C +/* 077FF4 7F0434C4 4600803C */ c.lt.s $f16, $f0 +/* 077FF8 7F0434C8 C44A0004 */ lwc1 $f10, 4($v0) +/* 077FFC 7F0434CC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 078000 7F0434D0 4602503C */ c.lt.s $f10, $f2 +/* 078004 7F0434D4 00000000 */ nop +/* 078008 7F0434D8 4502000C */ bc1fl .L7F04350C +/* 07800C 7F0434DC 4600803C */ c.lt.s $f16, $f0 +/* 078010 7F0434E0 44812000 */ mtc1 $at, $f4 +/* 078014 7F0434E4 3C018005 */ lui $at, %hi(D_80052A74) +/* 078018 7F0434E8 C4262A74 */ lwc1 $f6, %lo(D_80052A74)($at) +/* 07801C 7F0434EC 46040202 */ mul.s $f8, $f0, $f4 +/* 078020 7F0434F0 3C018005 */ lui $at, %hi(D_80052A78) +/* 078024 7F0434F4 C4242A78 */ lwc1 $f4, %lo(D_80052A78)($at) +/* 078028 7F0434F8 46064283 */ div.s $f10, $f8, $f6 +/* 07802C 7F0434FC 460A2203 */ div.s $f8, $f4, $f10 +/* 078030 7F043500 10000037 */ b .L7F0435E0 +/* 078034 7F043504 E6080064 */ swc1 $f8, 0x64($s0) +/* 078038 7F043508 4600803C */ c.lt.s $f16, $f0 +.L7F04350C: +/* 07803C 7F04350C 8FA2011C */ lw $v0, 0x11c($sp) +/* 078040 7F043510 C622001C */ lwc1 $f2, 0x1c($s1) +/* 078044 7F043514 45000013 */ bc1f .L7F043564 +/* 078048 7F043518 C44E0004 */ lwc1 $f14, 4($v0) +/* 07804C 7F04351C 4610103C */ c.lt.s $f2, $f16 +/* 078050 7F043520 00000000 */ nop +/* 078054 7F043524 45020010 */ bc1fl .L7F043568 +/* 078058 7F043528 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07805C 7F04352C 460E103C */ c.lt.s $f2, $f14 +/* 078060 7F043530 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 078064 7F043534 4502000C */ bc1fl .L7F043568 +/* 078068 7F043538 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07806C 7F04353C 44813000 */ mtc1 $at, $f6 +/* 078070 7F043540 3C018005 */ lui $at, %hi(D_80052A7C) +/* 078074 7F043544 C42A2A7C */ lwc1 $f10, %lo(D_80052A7C)($at) +/* 078078 7F043548 46060102 */ mul.s $f4, $f0, $f6 +/* 07807C 7F04354C 3C018005 */ lui $at, %hi(D_80052A80) +/* 078080 7F043550 C4262A80 */ lwc1 $f6, %lo(D_80052A80)($at) +/* 078084 7F043554 460A2203 */ div.s $f8, $f4, $f10 +/* 078088 7F043558 46083103 */ div.s $f4, $f6, $f8 +/* 07808C 7F04355C 10000020 */ b .L7F0435E0 +/* 078090 7F043560 E6040064 */ swc1 $f4, 0x64($s0) +.L7F043564: +/* 078094 7F043564 C62A0020 */ lwc1 $f10, 0x20($s1) +.L7F043568: +/* 078098 7F043568 C4460008 */ lwc1 $f6, 8($v0) +/* 07809C 7F04356C C4440000 */ lwc1 $f4, ($v0) +/* 0780A0 7F043570 8E2F0014 */ lw $t7, 0x14($s1) +/* 0780A4 7F043574 46065202 */ mul.s $f8, $f10, $f6 +/* 0780A8 7F043578 C62A0018 */ lwc1 $f10, 0x18($s1) +/* 0780AC 7F04357C C5E00014 */ lwc1 $f0, 0x14($t7) +/* 0780B0 7F043580 E7B20030 */ swc1 $f18, 0x30($sp) +/* 0780B4 7F043584 460A2182 */ mul.s $f6, $f4, $f10 +/* 0780B8 7F043588 00000000 */ nop +/* 0780BC 7F04358C 46027102 */ mul.s $f4, $f14, $f2 +/* 0780C0 7F043590 46043280 */ add.s $f10, $f6, $f4 +/* 0780C4 7F043594 46000102 */ mul.s $f4, $f0, $f0 +/* 0780C8 7F043598 460A4180 */ add.s $f6, $f8, $f10 +/* 0780CC 7F04359C 0FC16B2C */ jal acosf +/* 0780D0 7F0435A0 46043303 */ div.s $f12, $f6, $f4 +/* 0780D4 7F0435A4 44808000 */ mtc1 $zero, $f16 +/* 0780D8 7F0435A8 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 0780DC 7F0435AC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0780E0 7F0435B0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0780E4 7F0435B4 46109032 */ c.eq.s $f18, $f16 +/* 0780E8 7F0435B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0780EC 7F0435BC 46080083 */ div.s $f2, $f0, $f8 +/* 0780F0 7F0435C0 45030005 */ bc1tl .L7F0435D8 +/* 0780F4 7F0435C4 44813000 */ mtc1 $at, $f6 +/* 0780F8 7F0435C8 46121283 */ div.s $f10, $f2, $f18 +/* 0780FC 7F0435CC 10000004 */ b .L7F0435E0 +/* 078100 7F0435D0 E60A0064 */ swc1 $f10, 0x64($s0) +/* 078104 7F0435D4 44813000 */ mtc1 $at, $f6 +.L7F0435D8: +/* 078108 7F0435D8 00000000 */ nop +/* 07810C 7F0435DC E6060064 */ swc1 $f6, 0x64($s0) +.L7F0435E0: +/* 078110 7F0435E0 C6000064 */ lwc1 $f0, 0x64($s0) +/* 078114 7F0435E4 3C018005 */ lui $at, %hi(D_80052A84) +/* 078118 7F0435E8 4610003C */ c.lt.s $f0, $f16 +/* 07811C 7F0435EC 00000000 */ nop +/* 078120 7F0435F0 45000004 */ bc1f .L7F043604 +/* 078124 7F0435F4 00000000 */ nop +/* 078128 7F0435F8 46000107 */ neg.s $f4, $f0 +/* 07812C 7F0435FC E6040064 */ swc1 $f4, 0x64($s0) +/* 078130 7F043600 C6000064 */ lwc1 $f0, 0x64($s0) +.L7F043604: +/* 078134 7F043604 C4222A84 */ lwc1 $f2, %lo(D_80052A84)($at) +/* 078138 7F043608 3C018005 */ lui $at, %hi(D_80052A88) +/* 07813C 7F04360C 4602003C */ c.lt.s $f0, $f2 +/* 078140 7F043610 00000000 */ nop +/* 078144 7F043614 45000003 */ bc1f .L7F043624 +/* 078148 7F043618 00000000 */ nop +/* 07814C 7F04361C 10000007 */ b .L7F04363C +/* 078150 7F043620 E6020064 */ swc1 $f2, 0x64($s0) +.L7F043624: +/* 078154 7F043624 C4222A88 */ lwc1 $f2, %lo(D_80052A88)($at) +/* 078158 7F043628 4600103C */ c.lt.s $f2, $f0 +/* 07815C 7F04362C 00000000 */ nop +/* 078160 7F043630 45020003 */ bc1fl .L7F043640 +/* 078164 7F043634 8FBF001C */ lw $ra, 0x1c($sp) +/* 078168 7F043638 E6020064 */ swc1 $f2, 0x64($s0) +.L7F04363C: +/* 07816C 7F04363C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F043640: +/* 078170 7F043640 8FB00014 */ lw $s0, 0x14($sp) +/* 078174 7F043644 8FB10018 */ lw $s1, 0x18($sp) +/* 078178 7F043648 03E00008 */ jr $ra +/* 07817C 7F04364C 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043650(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F043650 +/* 078180 7F043650 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 078184 7F043654 AFBF001C */ sw $ra, 0x1c($sp) +/* 078188 7F043658 AFB00018 */ sw $s0, 0x18($sp) +/* 07818C 7F04365C 8C820064 */ lw $v0, 0x64($a0) +/* 078190 7F043660 00808025 */ move $s0, $a0 +/* 078194 7F043664 304E0080 */ andi $t6, $v0, 0x80 +/* 078198 7F043668 51C0006F */ beql $t6, $zero, .L7F043828 +/* 07819C 7F04366C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0781A0 7F043670 8C83006C */ lw $v1, 0x6c($a0) +/* 0781A4 7F043674 2401FFDF */ li $at, -33 +/* 0781A8 7F043678 8C6F0000 */ lw $t7, ($v1) +/* 0781AC 7F04367C 31F80001 */ andi $t8, $t7, 1 +/* 0781B0 7F043680 53000052 */ beql $t8, $zero, .L7F0437CC +/* 0781B4 7F043684 00414024 */ and $t0, $v0, $at +/* 0781B8 7F043688 8C790090 */ lw $t9, 0x90($v1) +/* 0781BC 7F04368C 30480020 */ andi $t0, $v0, 0x20 +/* 0781C0 7F043690 5F20004E */ bgtzl $t9, .L7F0437CC +/* 0781C4 7F043694 00414024 */ and $t0, $v0, $at +/* 0781C8 7F043698 1100004B */ beqz $t0, .L7F0437C8 +/* 0781CC 7F04369C 3C0A8003 */ lui $t2, %hi(Throwing_knife_SFX) +/* 0781D0 7F0436A0 254A0B2C */ addiu $t2, %lo(Throwing_knife_SFX) # addiu $t2, $t2, 0xb2c +/* 0781D4 7F0436A4 8D410000 */ lw $at, ($t2) +/* 0781D8 7F0436A8 27A90038 */ addiu $t1, $sp, 0x38 +/* 0781DC 7F0436AC AD210000 */ sw $at, ($t1) +/* 0781E0 7F0436B0 95410004 */ lhu $at, 4($t2) +/* 0781E4 7F0436B4 A5210004 */ sh $at, 4($t1) +/* 0781E8 7F0436B8 8C8D006C */ lw $t5, 0x6c($a0) +/* 0781EC 7F0436BC 8DAE00A4 */ lw $t6, 0xa4($t5) +/* 0781F0 7F0436C0 0C002914 */ jal get_random_value +/* 0781F4 7F0436C4 AFAE0034 */ sw $t6, 0x34($sp) +/* 0781F8 7F0436C8 24010003 */ li $at, 3 +/* 0781FC 7F0436CC 0041001B */ divu $zero, $v0, $at +/* 078200 7F0436D0 00007810 */ mfhi $t7 +/* 078204 7F0436D4 AFAF0030 */ sw $t7, 0x30($sp) +/* 078208 7F0436D8 8E03006C */ lw $v1, 0x6c($s0) +/* 07820C 7F0436DC 3C198005 */ lui $t9, %hi(global_timer) +/* 078210 7F0436E0 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 078214 7F0436E4 8C7800A0 */ lw $t8, 0xa0($v1) +/* 078218 7F0436E8 8FA70034 */ lw $a3, 0x34($sp) +/* 07821C 7F0436EC 2728FFFA */ addiu $t0, $t9, -6 +/* 078220 7F0436F0 0308082A */ slt $at, $t8, $t0 +/* 078224 7F0436F4 1020000D */ beqz $at, .L7F04372C +/* 078228 7F0436F8 00075880 */ sll $t3, $a3, 2 +/* 07822C 7F0436FC 006B4821 */ addu $t1, $v1, $t3 +/* 078230 7F043700 8D240098 */ lw $a0, 0x98($t1) +/* 078234 7F043704 5080000A */ beql $a0, $zero, .L7F043730 +/* 078238 7F043708 8FA70034 */ lw $a3, 0x34($sp) +/* 07823C 7F04370C 0C00237C */ jal sfxGetArg0Unk3F +/* 078240 7F043710 AFAB002C */ sw $t3, 0x2c($sp) +/* 078244 7F043714 10400005 */ beqz $v0, .L7F04372C +/* 078248 7F043718 8FA7002C */ lw $a3, 0x2c($sp) +/* 07824C 7F04371C 8E0A006C */ lw $t2, 0x6c($s0) +/* 078250 7F043720 01476021 */ addu $t4, $t2, $a3 +/* 078254 7F043724 0C002408 */ jal sfxDeactivate +/* 078258 7F043728 8D840098 */ lw $a0, 0x98($t4) +.L7F04372C: +/* 07825C 7F04372C 8FA70034 */ lw $a3, 0x34($sp) +.L7F043730: +/* 078260 7F043730 8E0E006C */ lw $t6, 0x6c($s0) +/* 078264 7F043734 00076880 */ sll $t5, $a3, 2 +/* 078268 7F043738 01CD7821 */ addu $t7, $t6, $t5 +/* 07826C 7F04373C 8DF90098 */ lw $t9, 0x98($t7) +/* 078270 7F043740 57200039 */ bnezl $t9, .L7F043828 +/* 078274 7F043744 8FBF001C */ lw $ra, 0x1c($sp) +/* 078278 7F043748 0FC2FF01 */ jal get_controls_locked_flag +/* 07827C 7F04374C AFAD002C */ sw $t5, 0x2c($sp) +/* 078280 7F043750 14400034 */ bnez $v0, .L7F043824 +/* 078284 7F043754 8FA7002C */ lw $a3, 0x2c($sp) +/* 078288 7F043758 8FB80030 */ lw $t8, 0x30($sp) +/* 07828C 7F04375C 8E0B006C */ lw $t3, 0x6c($s0) +/* 078290 7F043760 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 078294 7F043764 00184040 */ sll $t0, $t8, 1 +/* 078298 7F043768 03A82821 */ addu $a1, $sp, $t0 +/* 07829C 7F04376C 84A50038 */ lh $a1, 0x38($a1) +/* 0782A0 7F043770 01673021 */ addu $a2, $t3, $a3 +/* 0782A4 7F043774 24C60098 */ addiu $a2, $a2, 0x98 +/* 0782A8 7F043778 AFA7002C */ sw $a3, 0x2c($sp) +/* 0782AC 7F04377C 0C002382 */ jal play_sfx_a1 +/* 0782B0 7F043780 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0782B4 7F043784 8FA7002C */ lw $a3, 0x2c($sp) +/* 0782B8 7F043788 8E09006C */ lw $t1, 0x6c($s0) +/* 0782BC 7F04378C 8E050010 */ lw $a1, 0x10($s0) +/* 0782C0 7F043790 01275021 */ addu $t2, $t1, $a3 +/* 0782C4 7F043794 8D440098 */ lw $a0, 0x98($t2) +/* 0782C8 7F043798 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0782CC 7F04379C 24A50008 */ addiu $a1, $a1, 8 +/* 0782D0 7F0437A0 3C0C8005 */ lui $t4, %hi(global_timer) +/* 0782D4 7F0437A4 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 0782D8 7F0437A8 8E0D006C */ lw $t5, 0x6c($s0) +/* 0782DC 7F0437AC 240F0001 */ li $t7, 1 +/* 0782E0 7F0437B0 ADAC00A0 */ sw $t4, 0xa0($t5) +/* 0782E4 7F0437B4 8FAE0034 */ lw $t6, 0x34($sp) +/* 0782E8 7F0437B8 8E18006C */ lw $t8, 0x6c($s0) +/* 0782EC 7F0437BC 01EEC823 */ subu $t9, $t7, $t6 +/* 0782F0 7F0437C0 10000018 */ b .L7F043824 +/* 0782F4 7F0437C4 AF1900A4 */ sw $t9, 0xa4($t8) +.L7F0437C8: +/* 0782F8 7F0437C8 00414024 */ and $t0, $v0, $at +.L7F0437CC: +/* 0782FC 7F0437CC AE080064 */ sw $t0, 0x64($s0) +/* 078300 7F0437D0 8C640098 */ lw $a0, 0x98($v1) +/* 078304 7F0437D4 50800009 */ beql $a0, $zero, .L7F0437FC +/* 078308 7F0437D8 8E09006C */ lw $t1, 0x6c($s0) +/* 07830C 7F0437DC 0C00237C */ jal sfxGetArg0Unk3F +/* 078310 7F0437E0 00000000 */ nop +/* 078314 7F0437E4 50400005 */ beql $v0, $zero, .L7F0437FC +/* 078318 7F0437E8 8E09006C */ lw $t1, 0x6c($s0) +/* 07831C 7F0437EC 8E0B006C */ lw $t3, 0x6c($s0) +/* 078320 7F0437F0 0C002408 */ jal sfxDeactivate +/* 078324 7F0437F4 8D640098 */ lw $a0, 0x98($t3) +/* 078328 7F0437F8 8E09006C */ lw $t1, 0x6c($s0) +.L7F0437FC: +/* 07832C 7F0437FC 8D24009C */ lw $a0, 0x9c($t1) +/* 078330 7F043800 50800009 */ beql $a0, $zero, .L7F043828 +/* 078334 7F043804 8FBF001C */ lw $ra, 0x1c($sp) +/* 078338 7F043808 0C00237C */ jal sfxGetArg0Unk3F +/* 07833C 7F04380C 00000000 */ nop +/* 078340 7F043810 50400005 */ beql $v0, $zero, .L7F043828 +/* 078344 7F043814 8FBF001C */ lw $ra, 0x1c($sp) +/* 078348 7F043818 8E0A006C */ lw $t2, 0x6c($s0) +/* 07834C 7F04381C 0C002408 */ jal sfxDeactivate +/* 078350 7F043820 8D44009C */ lw $a0, 0x9c($t2) +.L7F043824: +/* 078354 7F043824 8FBF001C */ lw $ra, 0x1c($sp) +.L7F043828: +/* 078358 7F043828 8FB00018 */ lw $s0, 0x18($sp) +/* 07835C 7F04382C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 078360 7F043830 03E00008 */ jr $ra +/* 078364 7F043834 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043838(void) { + +} +#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 +void sub_GAME_7F0439B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0439B8 +/* 0784E8 7F0439B8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0784EC 7F0439BC AFB00018 */ sw $s0, 0x18($sp) +/* 0784F0 7F0439C0 00808025 */ move $s0, $a0 +/* 0784F4 7F0439C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0784F8 7F0439C8 AFA5006C */ sw $a1, 0x6c($sp) +/* 0784FC 7F0439CC AFA60070 */ sw $a2, 0x70($sp) +/* 078500 7F0439D0 27A50028 */ addiu $a1, $sp, 0x28 +/* 078504 7F0439D4 0FC10E0E */ jal sub_GAME_7F043838 +/* 078508 7F0439D8 00E02025 */ move $a0, $a3 +/* 07850C 7F0439DC 8E0E0014 */ lw $t6, 0x14($s0) +/* 078510 7F0439E0 27A50028 */ addiu $a1, $sp, 0x28 +/* 078514 7F0439E4 0FC1629F */ jal matrix_scalar_multiply +/* 078518 7F0439E8 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 07851C 7F0439EC 02002025 */ move $a0, $s0 +/* 078520 7F0439F0 8FA5006C */ lw $a1, 0x6c($sp) +/* 078524 7F0439F4 27A60028 */ addiu $a2, $sp, 0x28 +/* 078528 7F0439F8 0FC101D5 */ jal sub_GAME_7F040754 +/* 07852C 7F0439FC 8FA70070 */ lw $a3, 0x70($sp) +/* 078530 7F043A00 8E0F0014 */ lw $t7, 0x14($s0) +/* 078534 7F043A04 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 078538 7F043A08 8DE40008 */ lw $a0, 8($t7) +/* 07853C 7F043A0C 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 078540 7F043A10 00402025 */ move $a0, $v0 +/* 078544 7F043A14 C6060028 */ lwc1 $f6, 0x28($s0) +/* 078548 7F043A18 C6040058 */ lwc1 $f4, 0x58($s0) +/* 07854C 7F043A1C C612002C */ lwc1 $f18, 0x2c($s0) +/* 078550 7F043A20 46060202 */ mul.s $f8, $f0, $f6 +/* 078554 7F043A24 C610005C */ lwc1 $f16, 0x5c($s0) +/* 078558 7F043A28 02002025 */ move $a0, $s0 +/* 07855C 7F043A2C 46120182 */ mul.s $f6, $f0, $f18 +/* 078560 7F043A30 46082281 */ sub.s $f10, $f4, $f8 +/* 078564 7F043A34 C6080060 */ lwc1 $f8, 0x60($s0) +/* 078568 7F043A38 46068101 */ sub.s $f4, $f16, $f6 +/* 07856C 7F043A3C E60A0058 */ swc1 $f10, 0x58($s0) +/* 078570 7F043A40 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 078574 7F043A44 E604005C */ swc1 $f4, 0x5c($s0) +/* 078578 7F043A48 460A0482 */ mul.s $f18, $f0, $f10 +/* 07857C 7F043A4C 46124401 */ sub.s $f16, $f8, $f18 +/* 078580 7F043A50 0FC10121 */ jal sub_GAME_7F040484 +/* 078584 7F043A54 E6100060 */ swc1 $f16, 0x60($s0) +/* 078588 7F043A58 8FBF001C */ lw $ra, 0x1c($sp) +/* 07858C 7F043A5C 8FB00018 */ lw $s0, 0x18($sp) +/* 078590 7F043A60 27BD0068 */ addiu $sp, $sp, 0x68 +/* 078594 7F043A64 03E00008 */ jr $ra +/* 078598 7F043A68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043A6C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F043A6C +/* 07859C 7F043A6C 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0785A0 7F043A70 AFBF001C */ sw $ra, 0x1c($sp) +/* 0785A4 7F043A74 AFB10018 */ sw $s1, 0x18($sp) +/* 0785A8 7F043A78 AFB00014 */ sw $s0, 0x14($sp) +/* 0785AC 7F043A7C AFA500F4 */ sw $a1, 0xf4($sp) +/* 0785B0 7F043A80 AFA600F8 */ sw $a2, 0xf8($sp) +/* 0785B4 7F043A84 AFA700FC */ sw $a3, 0xfc($sp) +/* 0785B8 7F043A88 90AF0001 */ lbu $t7, 1($a1) +/* 0785BC 7F043A8C 00808825 */ move $s1, $a0 +/* 0785C0 7F043A90 31F80002 */ andi $t8, $t7, 2 +/* 0785C4 7F043A94 53000034 */ beql $t8, $zero, .L7F043B68 +/* 0785C8 7F043A98 00001025 */ move $v0, $zero +/* 0785CC 7F043A9C 0FC0FFA6 */ jal sub_GAME_7F03FE98 +/* 0785D0 7F043AA0 8C900004 */ lw $s0, 4($a0) +/* 0785D4 7F043AA4 1040002F */ beqz $v0, .L7F043B64 +/* 0785D8 7F043AA8 AE02006C */ sw $v0, 0x6c($s0) +/* 0785DC 7F043AAC 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0785E0 7F043AB0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0785E4 7F043AB4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0785E8 7F043AB8 00003025 */ move $a2, $zero +/* 0785EC 7F043ABC AFA20028 */ sw $v0, 0x28($sp) +/* 0785F0 7F043AC0 8E190064 */ lw $t9, 0x64($s0) +/* 0785F4 7F043AC4 02202025 */ move $a0, $s1 +/* 0785F8 7F043AC8 37280040 */ ori $t0, $t9, 0x40 +/* 0785FC 7F043ACC 0FC0F863 */ jal sub_GAME_7F03E18C +/* 078600 7F043AD0 AE080064 */ sw $t0, 0x64($s0) +/* 078604 7F043AD4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 078608 7F043AD8 02202025 */ move $a0, $s1 +/* 07860C 7F043ADC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 078610 7F043AE0 02202025 */ move $a0, $s1 +/* 078614 7F043AE4 8FA900F8 */ lw $t1, 0xf8($sp) +/* 078618 7F043AE8 8E0A0014 */ lw $t2, 0x14($s0) +/* 07861C 7F043AEC 02202025 */ move $a0, $s1 +/* 078620 7F043AF0 AD490018 */ sw $t1, 0x18($t2) +/* 078624 7F043AF4 8E0C0014 */ lw $t4, 0x14($s0) +/* 078628 7F043AF8 8FAB00FC */ lw $t3, 0xfc($sp) +/* 07862C 7F043AFC AD8B001C */ sw $t3, 0x1c($t4) +/* 078630 7F043B00 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 078634 7F043B04 8FA500F4 */ lw $a1, 0xf4($sp) +/* 078638 7F043B08 27B100AC */ addiu $s1, $sp, 0xac +/* 07863C 7F043B0C 02202825 */ move $a1, $s1 +/* 078640 7F043B10 0FC16008 */ jal matrix_4x4_copy +/* 078644 7F043B14 26040018 */ addiu $a0, $s0, 0x18 +/* 078648 7F043B18 26040058 */ addiu $a0, $s0, 0x58 +/* 07864C 7F043B1C 0FC16266 */ jal matrix_4x4_set_position +/* 078650 7F043B20 02202825 */ move $a1, $s1 +/* 078654 7F043B24 0FC1E111 */ jal sub_GAME_7F078444 +/* 078658 7F043B28 00000000 */ nop +/* 07865C 7F043B2C 00402025 */ move $a0, $v0 +/* 078660 7F043B30 8FA50028 */ lw $a1, 0x28($sp) +/* 078664 7F043B34 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078668 7F043B38 27A6006C */ addiu $a2, $sp, 0x6c +/* 07866C 7F043B3C 27A4006C */ addiu $a0, $sp, 0x6c +/* 078670 7F043B40 0FC167EE */ jal sub_GAME_7F059FB8 +/* 078674 7F043B44 27A5002C */ addiu $a1, $sp, 0x2c +/* 078678 7F043B48 8E06006C */ lw $a2, 0x6c($s0) +/* 07867C 7F043B4C 27A4002C */ addiu $a0, $sp, 0x2c +/* 078680 7F043B50 02202825 */ move $a1, $s1 +/* 078684 7F043B54 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078688 7F043B58 24C60004 */ addiu $a2, $a2, 4 +/* 07868C 7F043B5C 10000002 */ b .L7F043B68 +/* 078690 7F043B60 24020001 */ li $v0, 1 +.L7F043B64: +/* 078694 7F043B64 00001025 */ move $v0, $zero +.L7F043B68: +/* 078698 7F043B68 8FBF001C */ lw $ra, 0x1c($sp) +/* 07869C 7F043B6C 8FB00014 */ lw $s0, 0x14($sp) +/* 0786A0 7F043B70 8FB10018 */ lw $s1, 0x18($sp) +/* 0786A4 7F043B74 03E00008 */ jr $ra +/* 0786A8 7F043B78 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void generate_explosion_at_position(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel generate_explosion_at_position +/* 0786AC 7F043B7C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0786B0 7F043B80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0786B4 7F043B84 AFB00028 */ sw $s0, 0x28($sp) +/* 0786B8 7F043B88 AFA50064 */ sw $a1, 0x64($sp) +/* 0786BC 7F043B8C 8C880004 */ lw $t0, 4($a0) +/* 0786C0 7F043B90 3C010006 */ lui $at, 6 +/* 0786C4 7F043B94 00808025 */ move $s0, $a0 +/* 0786C8 7F043B98 8D0E0064 */ lw $t6, 0x64($t0) +/* 0786CC 7F043B9C 2619002C */ addiu $t9, $s0, 0x2c +/* 0786D0 7F043BA0 01C17824 */ and $t7, $t6, $at +/* 0786D4 7F043BA4 000FC442 */ srl $t8, $t7, 0x11 +/* 0786D8 7F043BA8 AFB80058 */ sw $t8, 0x58($sp) +/* 0786DC 7F043BAC 8C86001C */ lw $a2, 0x1c($a0) +/* 0786E0 7F043BB0 00002025 */ move $a0, $zero +/* 0786E4 7F043BB4 50C00056 */ beql $a2, $zero, .L7F043D10 +/* 0786E8 7F043BB8 8D020008 */ lw $v0, 8($t0) +/* 0786EC 7F043BBC 8CC2001C */ lw $v0, 0x1c($a2) +/* 0786F0 7F043BC0 00C01825 */ move $v1, $a2 +/* 0786F4 7F043BC4 50400006 */ beql $v0, $zero, .L7F043BE0 +/* 0786F8 7F043BC8 8C790014 */ lw $t9, 0x14($v1) +/* 0786FC 7F043BCC 00401825 */ move $v1, $v0 +.L7F043BD0: +/* 078700 7F043BD0 8C42001C */ lw $v0, 0x1c($v0) +/* 078704 7F043BD4 5440FFFE */ bnezl $v0, .L7F043BD0 +/* 078708 7F043BD8 00401825 */ move $v1, $v0 +/* 07870C 7F043BDC 8C790014 */ lw $t9, 0x14($v1) +.L7F043BE0: +/* 078710 7F043BE0 AFB90050 */ sw $t9, 0x50($sp) +/* 078714 7F043BE4 92090001 */ lbu $t1, 1($s0) +/* 078718 7F043BE8 312A0002 */ andi $t2, $t1, 2 +/* 07871C 7F043BEC 51400014 */ beql $t2, $zero, .L7F043C40 +/* 078720 7F043BF0 C46A0008 */ lwc1 $f10, 8($v1) +/* 078724 7F043BF4 8D040014 */ lw $a0, 0x14($t0) +/* 078728 7F043BF8 AFA8005C */ sw $t0, 0x5c($sp) +/* 07872C 7F043BFC 0FC1B1A8 */ jal getsubmatrix +/* 078730 7F043C00 AFA30054 */ sw $v1, 0x54($sp) +/* 078734 7F043C04 C4440030 */ lwc1 $f4, 0x30($v0) +/* 078738 7F043C08 E7A40044 */ swc1 $f4, 0x44($sp) +/* 07873C 7F043C0C C4460034 */ lwc1 $f6, 0x34($v0) +/* 078740 7F043C10 E7A60048 */ swc1 $f6, 0x48($sp) +/* 078744 7F043C14 C4480038 */ lwc1 $f8, 0x38($v0) +/* 078748 7F043C18 0FC1E111 */ jal sub_GAME_7F078444 +/* 07874C 7F043C1C E7A8004C */ swc1 $f8, 0x4c($sp) +/* 078750 7F043C20 27B00044 */ addiu $s0, $sp, 0x44 +/* 078754 7F043C24 02002825 */ move $a1, $s0 +/* 078758 7F043C28 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07875C 7F043C2C 00402025 */ move $a0, $v0 +/* 078760 7F043C30 8FA30054 */ lw $v1, 0x54($sp) +/* 078764 7F043C34 10000008 */ b .L7F043C58 +/* 078768 7F043C38 8FA8005C */ lw $t0, 0x5c($sp) +/* 07876C 7F043C3C C46A0008 */ lwc1 $f10, 8($v1) +.L7F043C40: +/* 078770 7F043C40 27B00044 */ addiu $s0, $sp, 0x44 +/* 078774 7F043C44 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 078778 7F043C48 C470000C */ lwc1 $f16, 0xc($v1) +/* 07877C 7F043C4C E7B00048 */ swc1 $f16, 0x48($sp) +/* 078780 7F043C50 C4720010 */ lwc1 $f18, 0x10($v1) +/* 078784 7F043C54 E7B2004C */ swc1 $f18, 0x4c($sp) +.L7F043C58: +/* 078788 7F043C58 906B0001 */ lbu $t3, 1($v1) +/* 07878C 7F043C5C 27A40050 */ addiu $a0, $sp, 0x50 +/* 078790 7F043C60 8FA70044 */ lw $a3, 0x44($sp) +/* 078794 7F043C64 316C0008 */ andi $t4, $t3, 8 +/* 078798 7F043C68 1580001A */ bnez $t4, .L7F043CD4 +/* 07879C 7F043C6C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0787A0 7F043C70 8C650008 */ lw $a1, 8($v1) +/* 0787A4 7F043C74 8C660010 */ lw $a2, 0x10($v1) +/* 0787A8 7F043C78 AFA8005C */ sw $t0, 0x5c($sp) +/* 0787AC 7F043C7C AFA30054 */ sw $v1, 0x54($sp) +/* 0787B0 7F043C80 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0787B4 7F043C84 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0787B8 7F043C88 8FA30054 */ lw $v1, 0x54($sp) +/* 0787BC 7F043C8C 10400011 */ beqz $v0, .L7F043CD4 +/* 0787C0 7F043C90 8FA8005C */ lw $t0, 0x5c($sp) +/* 0787C4 7F043C94 8D0D0008 */ lw $t5, 8($t0) +/* 0787C8 7F043C98 8FB80058 */ lw $t8, 0x58($sp) +/* 0787CC 7F043C9C 2479002C */ addiu $t9, $v1, 0x2c +/* 0787D0 7F043CA0 31AE000E */ andi $t6, $t5, 0xe +/* 0787D4 7F043CA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 0787D8 7F043CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0787DC 7F043CAC AFB90018 */ sw $t9, 0x18($sp) +/* 0787E0 7F043CB0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0787E4 7F043CB4 00002025 */ move $a0, $zero +/* 0787E8 7F043CB8 02002825 */ move $a1, $s0 +/* 0787EC 7F043CBC 8FA60050 */ lw $a2, 0x50($sp) +/* 0787F0 7F043CC0 87A70066 */ lh $a3, 0x66($sp) +/* 0787F4 7F043CC4 0FC27094 */ jal sub_GAME_7F09C250 +/* 0787F8 7F043CC8 AFB80014 */ sw $t8, 0x14($sp) +/* 0787FC 7F043CCC 10000024 */ b .L7F043D60 +/* 078800 7F043CD0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043CD4: +/* 078804 7F043CD4 8FA90058 */ lw $t1, 0x58($sp) +/* 078808 7F043CD8 246A002C */ addiu $t2, $v1, 0x2c +/* 07880C 7F043CDC 240B0001 */ li $t3, 1 +/* 078810 7F043CE0 AFAB001C */ sw $t3, 0x1c($sp) +/* 078814 7F043CE4 AFAA0018 */ sw $t2, 0x18($sp) +/* 078818 7F043CE8 00002025 */ move $a0, $zero +/* 07881C 7F043CEC 02002825 */ move $a1, $s0 +/* 078820 7F043CF0 8FA60050 */ lw $a2, 0x50($sp) +/* 078824 7F043CF4 87A70066 */ lh $a3, 0x66($sp) +/* 078828 7F043CF8 AFA00010 */ sw $zero, 0x10($sp) +/* 07882C 7F043CFC 0FC27094 */ jal sub_GAME_7F09C250 +/* 078830 7F043D00 AFA90014 */ sw $t1, 0x14($sp) +/* 078834 7F043D04 10000016 */ b .L7F043D60 +/* 078838 7F043D08 8FBF002C */ lw $ra, 0x2c($sp) +/* 07883C 7F043D0C 8D020008 */ lw $v0, 8($t0) +.L7F043D10: +/* 078840 7F043D10 304C000E */ andi $t4, $v0, 0xe +/* 078844 7F043D14 2D820001 */ sltiu $v0, $t4, 1 +/* 078848 7F043D18 50400005 */ beql $v0, $zero, .L7F043D30 +/* 07884C 7F043D1C 8FB80058 */ lw $t8, 0x58($sp) +/* 078850 7F043D20 92020001 */ lbu $v0, 1($s0) +/* 078854 7F043D24 304E0008 */ andi $t6, $v0, 8 +/* 078858 7F043D28 2DC20001 */ sltiu $v0, $t6, 1 +/* 07885C 7F043D2C 8FB80058 */ lw $t8, 0x58($sp) +.L7F043D30: +/* 078860 7F043D30 8E060014 */ lw $a2, 0x14($s0) +/* 078864 7F043D34 AFB90018 */ sw $t9, 0x18($sp) +/* 078868 7F043D38 AFA20010 */ sw $v0, 0x10($sp) +/* 07886C 7F043D3C AFB80014 */ sw $t8, 0x14($sp) +/* 078870 7F043D40 92090001 */ lbu $t1, 1($s0) +/* 078874 7F043D44 25050058 */ addiu $a1, $t0, 0x58 +/* 078878 7F043D48 87A70066 */ lh $a3, 0x66($sp) +/* 07887C 7F043D4C 312A0008 */ andi $t2, $t1, 8 +/* 078880 7F043D50 000A582B */ sltu $t3, $zero, $t2 +/* 078884 7F043D54 0FC27094 */ jal sub_GAME_7F09C250 +/* 078888 7F043D58 AFAB001C */ sw $t3, 0x1c($sp) +/* 07888C 7F043D5C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043D60: +/* 078890 7F043D60 8FB00028 */ lw $s0, 0x28($sp) +/* 078894 7F043D64 27BD0060 */ addiu $sp, $sp, 0x60 +/* 078898 7F043D68 03E00008 */ jr $ra +/* 07889C 7F043D6C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel generate_explosion_at_position +/* 0789EC 7F043E7C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0789F0 7F043E80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0789F4 7F043E84 AFB00028 */ sw $s0, 0x28($sp) +/* 0789F8 7F043E88 AFA50064 */ sw $a1, 0x64($sp) +/* 0789FC 7F043E8C 8C880004 */ lw $t0, 4($a0) +/* 078A00 7F043E90 3C010006 */ lui $at, 6 +/* 078A04 7F043E94 00808025 */ move $s0, $a0 +/* 078A08 7F043E98 8D0E0064 */ lw $t6, 0x64($t0) +/* 078A0C 7F043E9C 2619002C */ addiu $t9, $s0, 0x2c +/* 078A10 7F043EA0 01C17824 */ and $t7, $t6, $at +/* 078A14 7F043EA4 000FC442 */ srl $t8, $t7, 0x11 +/* 078A18 7F043EA8 AFB80058 */ sw $t8, 0x58($sp) +/* 078A1C 7F043EAC 8C86001C */ lw $a2, 0x1c($a0) +/* 078A20 7F043EB0 00002025 */ move $a0, $zero +/* 078A24 7F043EB4 50C00056 */ beql $a2, $zero, .L7F044010 +/* 078A28 7F043EB8 8D020008 */ lw $v0, 8($t0) +/* 078A2C 7F043EBC 8CC2001C */ lw $v0, 0x1c($a2) +/* 078A30 7F043EC0 00C01825 */ move $v1, $a2 +/* 078A34 7F043EC4 50400006 */ beql $v0, $zero, .L7F043EE0 +/* 078A38 7F043EC8 8C790014 */ lw $t9, 0x14($v1) +/* 078A3C 7F043ECC 00401825 */ move $v1, $v0 +.L7F043ED0: +/* 078A40 7F043ED0 8C42001C */ lw $v0, 0x1c($v0) +/* 078A44 7F043ED4 5440FFFE */ bnezl $v0, .L7F043ED0 +/* 078A48 7F043ED8 00401825 */ move $v1, $v0 +/* 078A4C 7F043EDC 8C790014 */ lw $t9, 0x14($v1) +.L7F043EE0: +/* 078A50 7F043EE0 AFB9004C */ sw $t9, 0x4c($sp) +/* 078A54 7F043EE4 92090001 */ lbu $t1, 1($s0) +/* 078A58 7F043EE8 312A0002 */ andi $t2, $t1, 2 +/* 078A5C 7F043EEC 51400014 */ beql $t2, $zero, .L7F043F40 +/* 078A60 7F043EF0 C46A0008 */ lwc1 $f10, 8($v1) +/* 078A64 7F043EF4 8D040014 */ lw $a0, 0x14($t0) +/* 078A68 7F043EF8 AFA8005C */ sw $t0, 0x5c($sp) +/* 078A6C 7F043EFC 0FC1B324 */ jal getsubmatrix +/* 078A70 7F043F00 AFA30050 */ sw $v1, 0x50($sp) +/* 078A74 7F043F04 C4440030 */ lwc1 $f4, 0x30($v0) +/* 078A78 7F043F08 E7A40040 */ swc1 $f4, 0x40($sp) +/* 078A7C 7F043F0C C4460034 */ lwc1 $f6, 0x34($v0) +/* 078A80 7F043F10 E7A60044 */ swc1 $f6, 0x44($sp) +/* 078A84 7F043F14 C4480038 */ lwc1 $f8, 0x38($v0) +/* 078A88 7F043F18 0FC1E28D */ jal sub_GAME_7F078444 +/* 078A8C 7F043F1C E7A80048 */ swc1 $f8, 0x48($sp) +/* 078A90 7F043F20 27B00040 */ addiu $s0, $sp, 0x40 +/* 078A94 7F043F24 02002825 */ move $a1, $s0 +/* 078A98 7F043F28 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 078A9C 7F043F2C 00402025 */ move $a0, $v0 +/* 078AA0 7F043F30 8FA30050 */ lw $v1, 0x50($sp) +/* 078AA4 7F043F34 10000008 */ b .L7F043F58 +/* 078AA8 7F043F38 8FA8005C */ lw $t0, 0x5c($sp) +/* 078AAC 7F043F3C C46A0008 */ lwc1 $f10, 8($v1) +.L7F043F40: +/* 078AB0 7F043F40 27B00040 */ addiu $s0, $sp, 0x40 +/* 078AB4 7F043F44 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 078AB8 7F043F48 C470000C */ lwc1 $f16, 0xc($v1) +/* 078ABC 7F043F4C E7B00044 */ swc1 $f16, 0x44($sp) +/* 078AC0 7F043F50 C4720010 */ lwc1 $f18, 0x10($v1) +/* 078AC4 7F043F54 E7B20048 */ swc1 $f18, 0x48($sp) +.L7F043F58: +/* 078AC8 7F043F58 906B0001 */ lbu $t3, 1($v1) +/* 078ACC 7F043F5C 27A4004C */ addiu $a0, $sp, 0x4c +/* 078AD0 7F043F60 8FA70040 */ lw $a3, 0x40($sp) +/* 078AD4 7F043F64 316C0008 */ andi $t4, $t3, 8 +/* 078AD8 7F043F68 1580001A */ bnez $t4, .L7F043FD4 +/* 078ADC 7F043F6C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 078AE0 7F043F70 8C650008 */ lw $a1, 8($v1) +/* 078AE4 7F043F74 8C660010 */ lw $a2, 0x10($v1) +/* 078AE8 7F043F78 AFA8005C */ sw $t0, 0x5c($sp) +/* 078AEC 7F043F7C AFA30050 */ sw $v1, 0x50($sp) +/* 078AF0 7F043F80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 078AF4 7F043F84 E7A40010 */ swc1 $f4, 0x10($sp) +/* 078AF8 7F043F88 8FA30050 */ lw $v1, 0x50($sp) +/* 078AFC 7F043F8C 10400011 */ beqz $v0, .L7F043FD4 +/* 078B00 7F043F90 8FA8005C */ lw $t0, 0x5c($sp) +/* 078B04 7F043F94 8D0D0008 */ lw $t5, 8($t0) +/* 078B08 7F043F98 8FB80058 */ lw $t8, 0x58($sp) +/* 078B0C 7F043F9C 2479002C */ addiu $t9, $v1, 0x2c +/* 078B10 7F043FA0 31AE000E */ andi $t6, $t5, 0xe +/* 078B14 7F043FA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 078B18 7F043FA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 078B1C 7F043FAC AFB90018 */ sw $t9, 0x18($sp) +/* 078B20 7F043FB0 AFA0001C */ sw $zero, 0x1c($sp) +/* 078B24 7F043FB4 00002025 */ move $a0, $zero +/* 078B28 7F043FB8 02002825 */ move $a1, $s0 +/* 078B2C 7F043FBC 8FA6004C */ lw $a2, 0x4c($sp) +/* 078B30 7F043FC0 87A70066 */ lh $a3, 0x66($sp) +/* 078B34 7F043FC4 0FC2737C */ jal sub_GAME_7F09C250 +/* 078B38 7F043FC8 AFB80014 */ sw $t8, 0x14($sp) +/* 078B3C 7F043FCC 10000024 */ b .L7F044060 +/* 078B40 7F043FD0 00401825 */ move $v1, $v0 +.L7F043FD4: +/* 078B44 7F043FD4 8FA90058 */ lw $t1, 0x58($sp) +/* 078B48 7F043FD8 246A002C */ addiu $t2, $v1, 0x2c +/* 078B4C 7F043FDC 240B0001 */ li $t3, 1 +/* 078B50 7F043FE0 AFAB001C */ sw $t3, 0x1c($sp) +/* 078B54 7F043FE4 AFAA0018 */ sw $t2, 0x18($sp) +/* 078B58 7F043FE8 00002025 */ move $a0, $zero +/* 078B5C 7F043FEC 02002825 */ move $a1, $s0 +/* 078B60 7F043FF0 8FA6004C */ lw $a2, 0x4c($sp) +/* 078B64 7F043FF4 87A70066 */ lh $a3, 0x66($sp) +/* 078B68 7F043FF8 AFA00010 */ sw $zero, 0x10($sp) +/* 078B6C 7F043FFC 0FC2737C */ jal sub_GAME_7F09C250 +/* 078B70 7F044000 AFA90014 */ sw $t1, 0x14($sp) +/* 078B74 7F044004 10000016 */ b .L7F044060 +/* 078B78 7F044008 00401825 */ move $v1, $v0 +/* 078B7C 7F04400C 8D020008 */ lw $v0, 8($t0) +.L7F044010: +/* 078B80 7F044010 304C000E */ andi $t4, $v0, 0xe +/* 078B84 7F044014 2D820001 */ sltiu $v0, $t4, 1 +/* 078B88 7F044018 50400005 */ beql $v0, $zero, .L7F044030 +/* 078B8C 7F04401C 8FB80058 */ lw $t8, 0x58($sp) +/* 078B90 7F044020 92020001 */ lbu $v0, 1($s0) +/* 078B94 7F044024 304E0008 */ andi $t6, $v0, 8 +/* 078B98 7F044028 2DC20001 */ sltiu $v0, $t6, 1 +/* 078B9C 7F04402C 8FB80058 */ lw $t8, 0x58($sp) +.L7F044030: +/* 078BA0 7F044030 8E060014 */ lw $a2, 0x14($s0) +/* 078BA4 7F044034 AFB90018 */ sw $t9, 0x18($sp) +/* 078BA8 7F044038 AFA20010 */ sw $v0, 0x10($sp) +/* 078BAC 7F04403C AFB80014 */ sw $t8, 0x14($sp) +/* 078BB0 7F044040 92090001 */ lbu $t1, 1($s0) +/* 078BB4 7F044044 25050058 */ addiu $a1, $t0, 0x58 +/* 078BB8 7F044048 87A70066 */ lh $a3, 0x66($sp) +/* 078BBC 7F04404C 312A0008 */ andi $t2, $t1, 8 +/* 078BC0 7F044050 000A582B */ sltu $t3, $zero, $t2 +/* 078BC4 7F044054 0FC2737C */ jal sub_GAME_7F09C250 +/* 078BC8 7F044058 AFAB001C */ sw $t3, 0x1c($sp) +/* 078BCC 7F04405C 00401825 */ move $v1, $v0 +.L7F044060: +/* 078BD0 7F044060 8FBF002C */ lw $ra, 0x2c($sp) +/* 078BD4 7F044064 8FB00028 */ lw $s0, 0x28($sp) +/* 078BD8 7F044068 27BD0060 */ addiu $sp, $sp, 0x60 +/* 078BDC 7F04406C 03E00008 */ jr $ra +/* 078BE0 7F044070 00601025 */ move $v0, $v1 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void handle_thrown_explosive_detonation(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80052A94 +.word 0x47742400 /*62500.0*/ +.text +glabel handle_thrown_explosive_detonation +/* 0788A0 7F043D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0788A4 7F043D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 0788A8 7F043D78 AFA40020 */ sw $a0, 0x20($sp) +/* 0788AC 7F043D7C 8C870004 */ lw $a3, 4($a0) +/* 0788B0 7F043D80 0FC26C54 */ jal get_cur_playernum +/* 0788B4 7F043D84 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788B8 7F043D88 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0788BC 7F043D8C 00402025 */ move $a0, $v0 +/* 0788C0 7F043D90 14400117 */ bnez $v0, .L7F0441F0 +/* 0788C4 7F043D94 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788C8 7F043D98 90E20003 */ lbu $v0, 3($a3) +/* 0788CC 7F043D9C 24010007 */ li $at, 7 +/* 0788D0 7F043DA0 5441000F */ bnel $v0, $at, .L7F043DE0 +/* 0788D4 7F043DA4 24010008 */ li $at, 8 +/* 0788D8 7F043DA8 8CEF0008 */ lw $t7, 8($a3) +/* 0788DC 7F043DAC 8FA40020 */ lw $a0, 0x20($sp) +/* 0788E0 7F043DB0 2405000C */ li $a1, 12 +/* 0788E4 7F043DB4 000FC0C0 */ sll $t8, $t7, 3 +/* 0788E8 7F043DB8 0703010E */ bgezl $t8, .L7F0441F4 +/* 0788EC 7F043DBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0788F0 7F043DC0 0FC10EDF */ jal generate_explosion_at_position +/* 0788F4 7F043DC4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788F8 7F043DC8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788FC 7F043DCC 8CF90064 */ lw $t9, 0x64($a3) +/* 078900 7F043DD0 37280004 */ ori $t0, $t9, 4 +/* 078904 7F043DD4 10000106 */ b .L7F0441F0 +/* 078908 7F043DD8 ACE80064 */ sw $t0, 0x64($a3) +/* 07890C 7F043DDC 24010008 */ li $at, 8 +.L7F043DE0: +/* 078910 7F043DE0 14410103 */ bne $v0, $at, .L7F0441F0 +/* 078914 7F043DE4 8FA90020 */ lw $t1, 0x20($sp) +/* 078918 7F043DE8 8D260004 */ lw $a2, 4($t1) +/* 07891C 7F043DEC 2401001A */ li $at, 26 +/* 078920 7F043DF0 80C30080 */ lb $v1, 0x80($a2) +/* 078924 7F043DF4 10610003 */ beq $v1, $at, .L7F043E04 +/* 078928 7F043DF8 24010057 */ li $at, 87 +/* 07892C 7F043DFC 5461001B */ bnel $v1, $at, .L7F043E6C +/* 078930 7F043E00 24010056 */ li $at, 86 +.L7F043E04: +/* 078934 7F043E04 84C20082 */ lh $v0, 0x82($a2) +/* 078938 7F043E08 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07893C 7F043E0C 04420017 */ bltzl $v0, .L7F043E6C +/* 078940 7F043E10 24010056 */ li $at, 86 +/* 078944 7F043E14 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 078948 7F043E18 004A5823 */ subu $t3, $v0, $t2 +/* 07894C 7F043E1C A4CB0082 */ sh $t3, 0x82($a2) +/* 078950 7F043E20 84CC0082 */ lh $t4, 0x82($a2) +/* 078954 7F043E24 8FA40020 */ lw $a0, 0x20($sp) +/* 078958 7F043E28 058300F2 */ bgezl $t4, .L7F0441F4 +/* 07895C 7F043E2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078960 7F043E30 8CED000C */ lw $t5, 0xc($a3) +/* 078964 7F043E34 2405000D */ li $a1, 13 +/* 078968 7F043E38 000D7000 */ sll $t6, $t5, 0 +/* 07896C 7F043E3C 05C10003 */ bgez $t6, .L7F043E4C +/* 078970 7F043E40 00000000 */ nop +/* 078974 7F043E44 10000001 */ b .L7F043E4C +/* 078978 7F043E48 24050011 */ li $a1, 17 +.L7F043E4C: +/* 07897C 7F043E4C 0FC10EDF */ jal generate_explosion_at_position +/* 078980 7F043E50 AFA7001C */ sw $a3, 0x1c($sp) +/* 078984 7F043E54 8FA7001C */ lw $a3, 0x1c($sp) +/* 078988 7F043E58 8CEF0064 */ lw $t7, 0x64($a3) +/* 07898C 7F043E5C 35F80004 */ ori $t8, $t7, 4 +/* 078990 7F043E60 100000E3 */ b .L7F0441F0 +/* 078994 7F043E64 ACF80064 */ sw $t8, 0x64($a3) +/* 078998 7F043E68 24010056 */ li $at, 86 +.L7F043E6C: +/* 07899C 7F043E6C 54610014 */ bnel $v1, $at, .L7F043EC0 +/* 0789A0 7F043E70 24010022 */ li $at, 34 +/* 0789A4 7F043E74 84D90082 */ lh $t9, 0x82($a2) +/* 0789A8 7F043E78 8FA40020 */ lw $a0, 0x20($sp) +/* 0789AC 7F043E7C 572000DD */ bnezl $t9, .L7F0441F4 +/* 0789B0 7F043E80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0789B4 7F043E84 8CE8000C */ lw $t0, 0xc($a3) +/* 0789B8 7F043E88 2405000D */ li $a1, 13 +/* 0789BC 7F043E8C 00084800 */ sll $t1, $t0, 0 +/* 0789C0 7F043E90 05210003 */ bgez $t1, .L7F043EA0 +/* 0789C4 7F043E94 00000000 */ nop +/* 0789C8 7F043E98 10000001 */ b .L7F043EA0 +/* 0789CC 7F043E9C 24050011 */ li $a1, 17 +.L7F043EA0: +/* 0789D0 7F043EA0 0FC10EDF */ jal generate_explosion_at_position +/* 0789D4 7F043EA4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0789D8 7F043EA8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0789DC 7F043EAC 8CEA0064 */ lw $t2, 0x64($a3) +/* 0789E0 7F043EB0 354B0004 */ ori $t3, $t2, 4 +/* 0789E4 7F043EB4 100000CE */ b .L7F0441F0 +/* 0789E8 7F043EB8 ACEB0064 */ sw $t3, 0x64($a3) +/* 0789EC 7F043EBC 24010022 */ li $at, 34 +.L7F043EC0: +/* 0789F0 7F043EC0 54610014 */ bnel $v1, $at, .L7F043F14 +/* 0789F4 7F043EC4 2401001B */ li $at, 27 +/* 0789F8 7F043EC8 84CC0082 */ lh $t4, 0x82($a2) +/* 0789FC 7F043ECC 8FA40020 */ lw $a0, 0x20($sp) +/* 078A00 7F043ED0 24050011 */ li $a1, 17 +/* 078A04 7F043ED4 558000C7 */ bnezl $t4, .L7F0441F4 +/* 078A08 7F043ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A0C 7F043EDC 0FC10EDF */ jal generate_explosion_at_position +/* 078A10 7F043EE0 AFA7001C */ sw $a3, 0x1c($sp) +/* 078A14 7F043EE4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078A18 7F043EE8 24040078 */ li $a0, 120 +/* 078A1C 7F043EEC 8CED0064 */ lw $t5, 0x64($a3) +/* 078A20 7F043EF0 35AE0004 */ ori $t6, $t5, 4 +/* 078A24 7F043EF4 0FC22FF1 */ jal trigger_explosions_around_player +/* 078A28 7F043EF8 ACEE0064 */ sw $t6, 0x64($a3) +/* 078A2C 7F043EFC 24040002 */ li $a0, 2 +/* 078A30 7F043F00 0FC15858 */ jal set_unset_clock_lock_bits +/* 078A34 7F043F04 00002825 */ move $a1, $zero +/* 078A38 7F043F08 100000BA */ b .L7F0441F4 +/* 078A3C 7F043F0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A40 7F043F10 2401001B */ li $at, 27 +.L7F043F14: +/* 078A44 7F043F14 10610003 */ beq $v1, $at, .L7F043F24 +/* 078A48 7F043F18 24010021 */ li $at, 33 +/* 078A4C 7F043F1C 5461001F */ bnel $v1, $at, .L7F043F9C +/* 078A50 7F043F20 2401001D */ li $at, 29 +.L7F043F24: +/* 078A54 7F043F24 84C20082 */ lh $v0, 0x82($a2) +/* 078A58 7F043F28 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 078A5C 7F043F2C 0442001B */ bltzl $v0, .L7F043F9C +/* 078A60 7F043F30 2401001D */ li $at, 29 +/* 078A64 7F043F34 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 078A68 7F043F38 004FC023 */ subu $t8, $v0, $t7 +/* 078A6C 7F043F3C A4D80082 */ sh $t8, 0x82($a2) +/* 078A70 7F043F40 84D90082 */ lh $t9, 0x82($a2) +/* 078A74 7F043F44 8FA40020 */ lw $a0, 0x20($sp) +/* 078A78 7F043F48 072300AA */ bgezl $t9, .L7F0441F4 +/* 078A7C 7F043F4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A80 7F043F50 8CE8000C */ lw $t0, 0xc($a3) +/* 078A84 7F043F54 2405000D */ li $a1, 13 +/* 078A88 7F043F58 00084800 */ sll $t1, $t0, 0 +/* 078A8C 7F043F5C 05210003 */ bgez $t1, .L7F043F6C +/* 078A90 7F043F60 00000000 */ nop +/* 078A94 7F043F64 10000001 */ b .L7F043F6C +/* 078A98 7F043F68 24050011 */ li $a1, 17 +.L7F043F6C: +/* 078A9C 7F043F6C AFA60018 */ sw $a2, 0x18($sp) +/* 078AA0 7F043F70 0FC10EDF */ jal generate_explosion_at_position +/* 078AA4 7F043F74 AFA7001C */ sw $a3, 0x1c($sp) +/* 078AA8 7F043F78 8FA60018 */ lw $a2, 0x18($sp) +/* 078AAC 7F043F7C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078AB0 7F043F80 240AFFFF */ li $t2, -1 +/* 078AB4 7F043F84 A4CA0082 */ sh $t2, 0x82($a2) +/* 078AB8 7F043F88 8CEB0064 */ lw $t3, 0x64($a3) +/* 078ABC 7F043F8C 356C0004 */ ori $t4, $t3, 4 +/* 078AC0 7F043F90 10000097 */ b .L7F0441F0 +/* 078AC4 7F043F94 ACEC0064 */ sw $t4, 0x64($a3) +/* 078AC8 7F043F98 2401001D */ li $at, 29 +.L7F043F9C: +/* 078ACC 7F043F9C 54610049 */ bnel $v1, $at, .L7F0440C4 +/* 078AD0 7F043FA0 2401001C */ li $at, 28 +/* 078AD4 7F043FA4 3C038003 */ lui $v1, %hi(D_80030AF4) +/* 078AD8 7F043FA8 8C630AF4 */ lw $v1, %lo(D_80030AF4)($v1) +/* 078ADC 7F043FAC 3C088005 */ lui $t0, %hi(clock_timer) +/* 078AE0 7F043FB0 5060000C */ beql $v1, $zero, .L7F043FE4 +/* 078AE4 7F043FB4 84C20082 */ lh $v0, 0x82($a2) +/* 078AE8 7F043FB8 8CE20064 */ lw $v0, 0x64($a3) +/* 078AEC 7F043FBC 3C010006 */ lui $at, 6 +/* 078AF0 7F043FC0 240F0001 */ li $t7, 1 +/* 078AF4 7F043FC4 00416824 */ and $t5, $v0, $at +/* 078AF8 7F043FC8 000D7442 */ srl $t6, $t5, 0x11 +/* 078AFC 7F043FCC 01CFC004 */ sllv $t8, $t7, $t6 +/* 078B00 7F043FD0 0078C824 */ and $t9, $v1, $t8 +/* 078B04 7F043FD4 53200003 */ beql $t9, $zero, .L7F043FE4 +/* 078B08 7F043FD8 84C20082 */ lh $v0, 0x82($a2) +/* 078B0C 7F043FDC A4C00082 */ sh $zero, 0x82($a2) +/* 078B10 7F043FE0 84C20082 */ lh $v0, 0x82($a2) +.L7F043FE4: +/* 078B14 7F043FE4 28410002 */ slti $at, $v0, 2 +/* 078B18 7F043FE8 1420000B */ bnez $at, .L7F044018 +/* 078B1C 7F043FEC 00000000 */ nop +/* 078B20 7F043FF0 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 078B24 7F043FF4 240B0001 */ li $t3, 1 +/* 078B28 7F043FF8 00484823 */ subu $t1, $v0, $t0 +/* 078B2C 7F043FFC A4C90082 */ sh $t1, 0x82($a2) +/* 078B30 7F044000 84CA0082 */ lh $t2, 0x82($a2) +/* 078B34 7F044004 29410002 */ slti $at, $t2, 2 +/* 078B38 7F044008 5020007A */ beql $at, $zero, .L7F0441F4 +/* 078B3C 7F04400C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B40 7F044010 10000077 */ b .L7F0441F0 +/* 078B44 7F044014 A4CB0082 */ sh $t3, 0x82($a2) +.L7F044018: +/* 078B48 7F044018 54400076 */ bnezl $v0, .L7F0441F4 +/* 078B4C 7F04401C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B50 7F044020 8CEC000C */ lw $t4, 0xc($a3) +/* 078B54 7F044024 8FA40020 */ lw $a0, 0x20($sp) +/* 078B58 7F044028 24050011 */ li $a1, 17 +/* 078B5C 7F04402C 000C6800 */ sll $t5, $t4, 0 +/* 078B60 7F044030 05A30008 */ bgezl $t5, .L7F044054 +/* 078B64 7F044034 AFA60018 */ sw $a2, 0x18($sp) +/* 078B68 7F044038 AFA60018 */ sw $a2, 0x18($sp) +/* 078B6C 7F04403C 0FC10EDF */ jal generate_explosion_at_position +/* 078B70 7F044040 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B74 7F044044 8FA60018 */ lw $a2, 0x18($sp) +/* 078B78 7F044048 10000017 */ b .L7F0440A8 +/* 078B7C 7F04404C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B80 7F044050 AFA60018 */ sw $a2, 0x18($sp) +.L7F044054: +/* 078B84 7F044054 0C001A57 */ jal get_stage_num +/* 078B88 7F044058 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B8C 7F04405C 24010022 */ li $at, 34 +/* 078B90 7F044060 8FA60018 */ lw $a2, 0x18($sp) +/* 078B94 7F044064 14410009 */ bne $v0, $at, .L7F04408C +/* 078B98 7F044068 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B9C 7F04406C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BA0 7F044070 24050013 */ li $a1, 19 +/* 078BA4 7F044074 AFA60018 */ sw $a2, 0x18($sp) +/* 078BA8 7F044078 0FC10EDF */ jal generate_explosion_at_position +/* 078BAC 7F04407C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BB0 7F044080 8FA60018 */ lw $a2, 0x18($sp) +/* 078BB4 7F044084 10000008 */ b .L7F0440A8 +/* 078BB8 7F044088 8FA7001C */ lw $a3, 0x1c($sp) +.L7F04408C: +/* 078BBC 7F04408C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BC0 7F044090 2405000D */ li $a1, 13 +/* 078BC4 7F044094 AFA60018 */ sw $a2, 0x18($sp) +/* 078BC8 7F044098 0FC10EDF */ jal generate_explosion_at_position +/* 078BCC 7F04409C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BD0 7F0440A0 8FA60018 */ lw $a2, 0x18($sp) +/* 078BD4 7F0440A4 8FA7001C */ lw $a3, 0x1c($sp) +.L7F0440A8: +/* 078BD8 7F0440A8 240EFFFF */ li $t6, -1 +/* 078BDC 7F0440AC A4CE0082 */ sh $t6, 0x82($a2) +/* 078BE0 7F0440B0 8CEF0064 */ lw $t7, 0x64($a3) +/* 078BE4 7F0440B4 35F80004 */ ori $t8, $t7, 4 +/* 078BE8 7F0440B8 1000004D */ b .L7F0441F0 +/* 078BEC 7F0440BC ACF80064 */ sw $t8, 0x64($a3) +/* 078BF0 7F0440C0 2401001C */ li $at, 28 +.L7F0440C4: +/* 078BF4 7F0440C4 5461004B */ bnel $v1, $at, .L7F0441F4 +/* 078BF8 7F0440C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078BFC 7F0440CC 84C20082 */ lh $v0, 0x82($a2) +/* 078C00 7F0440D0 3C198005 */ lui $t9, %hi(clock_timer) +/* 078C04 7F0440D4 28410002 */ slti $at, $v0, 2 +/* 078C08 7F0440D8 54200012 */ bnezl $at, .L7F044124 +/* 078C0C 7F0440DC 24010001 */ li $at, 1 +/* 078C10 7F0440E0 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 078C14 7F0440E4 240A0001 */ li $t2, 1 +/* 078C18 7F0440E8 00C02025 */ move $a0, $a2 +/* 078C1C 7F0440EC 00594023 */ subu $t0, $v0, $t9 +/* 078C20 7F0440F0 A4C80082 */ sh $t0, 0x82($a2) +/* 078C24 7F0440F4 84C90082 */ lh $t1, 0x82($a2) +/* 078C28 7F0440F8 29210002 */ slti $at, $t1, 2 +/* 078C2C 7F0440FC 50200027 */ beql $at, $zero, .L7F04419C +/* 078C30 7F044100 84CC0082 */ lh $t4, 0x82($a2) +/* 078C34 7F044104 A4CA0082 */ sh $t2, 0x82($a2) +/* 078C38 7F044108 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C3C 7F04410C 0FC146D7 */ jal add_obj_to_temp_proxmine_table +/* 078C40 7F044110 AFA60018 */ sw $a2, 0x18($sp) +/* 078C44 7F044114 8FA60018 */ lw $a2, 0x18($sp) +/* 078C48 7F044118 1000001F */ b .L7F044198 +/* 078C4C 7F04411C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078C50 7F044120 24010001 */ li $at, 1 +.L7F044124: +/* 078C54 7F044124 5441001D */ bnel $v0, $at, .L7F04419C +/* 078C58 7F044128 84CC0082 */ lh $t4, 0x82($a2) +/* 078C5C 7F04412C AFA60018 */ sw $a2, 0x18($sp) +/* 078C60 7F044130 0FC225E6 */ jal get_curplayer_positiondata +/* 078C64 7F044134 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C68 7F044138 8FAB0020 */ lw $t3, 0x20($sp) +/* 078C6C 7F04413C C4440008 */ lwc1 $f4, 8($v0) +/* 078C70 7F044140 C448000C */ lwc1 $f8, 0xc($v0) +/* 078C74 7F044144 C5660008 */ lwc1 $f6, 8($t3) +/* 078C78 7F044148 C56A000C */ lwc1 $f10, 0xc($t3) +/* 078C7C 7F04414C C4500010 */ lwc1 $f16, 0x10($v0) +/* 078C80 7F044150 46062001 */ sub.s $f0, $f4, $f6 +/* 078C84 7F044154 C5720010 */ lwc1 $f18, 0x10($t3) +/* 078C88 7F044158 3C018005 */ lui $at, %hi(D_80052A94) +/* 078C8C 7F04415C 460A4081 */ sub.s $f2, $f8, $f10 +/* 078C90 7F044160 46000102 */ mul.s $f4, $f0, $f0 +/* 078C94 7F044164 8FA60018 */ lw $a2, 0x18($sp) +/* 078C98 7F044168 46128301 */ sub.s $f12, $f16, $f18 +/* 078C9C 7F04416C 46021182 */ mul.s $f6, $f2, $f2 +/* 078CA0 7F044170 C4322A94 */ lwc1 $f18, %lo(D_80052A94)($at) +/* 078CA4 7F044174 8FA7001C */ lw $a3, 0x1c($sp) +/* 078CA8 7F044178 460C6282 */ mul.s $f10, $f12, $f12 +/* 078CAC 7F04417C 46062200 */ add.s $f8, $f4, $f6 +/* 078CB0 7F044180 460A4400 */ add.s $f16, $f8, $f10 +/* 078CB4 7F044184 4612803C */ c.lt.s $f16, $f18 +/* 078CB8 7F044188 00000000 */ nop +/* 078CBC 7F04418C 45020003 */ bc1fl .L7F04419C +/* 078CC0 7F044190 84CC0082 */ lh $t4, 0x82($a2) +/* 078CC4 7F044194 A4C00082 */ sh $zero, 0x82($a2) +.L7F044198: +/* 078CC8 7F044198 84CC0082 */ lh $t4, 0x82($a2) +.L7F04419C: +/* 078CCC 7F04419C 8FA40020 */ lw $a0, 0x20($sp) +/* 078CD0 7F0441A0 55800014 */ bnezl $t4, .L7F0441F4 +/* 078CD4 7F0441A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CD8 7F0441A8 8CED000C */ lw $t5, 0xc($a3) +/* 078CDC 7F0441AC 2405000D */ li $a1, 13 +/* 078CE0 7F0441B0 000D7000 */ sll $t6, $t5, 0 +/* 078CE4 7F0441B4 05C10003 */ bgez $t6, .L7F0441C4 +/* 078CE8 7F0441B8 00000000 */ nop +/* 078CEC 7F0441BC 10000001 */ b .L7F0441C4 +/* 078CF0 7F0441C0 24050011 */ li $a1, 17 +.L7F0441C4: +/* 078CF4 7F0441C4 AFA60018 */ sw $a2, 0x18($sp) +/* 078CF8 7F0441C8 0FC10EDF */ jal generate_explosion_at_position +/* 078CFC 7F0441CC AFA7001C */ sw $a3, 0x1c($sp) +/* 078D00 7F0441D0 8FA40018 */ lw $a0, 0x18($sp) +/* 078D04 7F0441D4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078D08 7F0441D8 240FFFFF */ li $t7, -1 +/* 078D0C 7F0441DC A48F0082 */ sh $t7, 0x82($a0) +/* 078D10 7F0441E0 8CF80064 */ lw $t8, 0x64($a3) +/* 078D14 7F0441E4 37190004 */ ori $t9, $t8, 4 +/* 078D18 7F0441E8 0FC146E5 */ jal remove_obj_from_temp_proxmine_table +/* 078D1C 7F0441EC ACF90064 */ sw $t9, 0x64($a3) +.L7F0441F0: +/* 078D20 7F0441F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0441F4: +/* 078D24 7F0441F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 078D28 7F0441F8 03E00008 */ jr $ra +/* 078D2C 7F0441FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80052A94 +.word 0x47742400 /*62500.0*/ +.text +glabel handle_thrown_explosive_detonation +/* 078BE4 7F044074 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 078BE8 7F044078 AFBF0014 */ sw $ra, 0x14($sp) +/* 078BEC 7F04407C AFA40030 */ sw $a0, 0x30($sp) +/* 078BF0 7F044080 8C870004 */ lw $a3, 4($a0) +/* 078BF4 7F044084 0FC26F3C */ jal get_cur_playernum +/* 078BF8 7F044088 AFA7002C */ sw $a3, 0x2c($sp) +/* 078BFC 7F04408C 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 078C00 7F044090 00402025 */ move $a0, $v0 +/* 078C04 7F044094 14400110 */ bnez $v0, .L7F0444D8 +/* 078C08 7F044098 8FA7002C */ lw $a3, 0x2c($sp) +/* 078C0C 7F04409C 90E20003 */ lbu $v0, 3($a3) +/* 078C10 7F0440A0 24010007 */ li $at, 7 +/* 078C14 7F0440A4 5441000F */ bnel $v0, $at, .L7F0440E4 +/* 078C18 7F0440A8 24010008 */ li $at, 8 +/* 078C1C 7F0440AC 8CEF0008 */ lw $t7, 8($a3) +/* 078C20 7F0440B0 8FA40030 */ lw $a0, 0x30($sp) +/* 078C24 7F0440B4 2405000C */ li $a1, 12 +/* 078C28 7F0440B8 000FC0C0 */ sll $t8, $t7, 3 +/* 078C2C 7F0440BC 07030107 */ bgezl $t8, .L7F0444DC +/* 078C30 7F0440C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 078C34 7F0440C4 0FC10F9F */ jal generate_explosion_at_position +/* 078C38 7F0440C8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078C3C 7F0440CC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078C40 7F0440D0 8CF90064 */ lw $t9, 0x64($a3) +/* 078C44 7F0440D4 37280004 */ ori $t0, $t9, 4 +/* 078C48 7F0440D8 100000FF */ b .L7F0444D8 +/* 078C4C 7F0440DC ACE80064 */ sw $t0, 0x64($a3) +/* 078C50 7F0440E0 24010008 */ li $at, 8 +.L7F0440E4: +/* 078C54 7F0440E4 144100FC */ bne $v0, $at, .L7F0444D8 +/* 078C58 7F0440E8 8FA90030 */ lw $t1, 0x30($sp) +/* 078C5C 7F0440EC 8D260004 */ lw $a2, 4($t1) +/* 078C60 7F0440F0 2401001A */ li $at, 26 +/* 078C64 7F0440F4 80C30080 */ lb $v1, 0x80($a2) +/* 078C68 7F0440F8 10610003 */ beq $v1, $at, .L7F044108 +/* 078C6C 7F0440FC 24010057 */ li $at, 87 +/* 078C70 7F044100 5461001B */ bnel $v1, $at, .L7F044170 +/* 078C74 7F044104 24010056 */ li $at, 86 +.L7F044108: +/* 078C78 7F044108 84C20082 */ lh $v0, 0x82($a2) +/* 078C7C 7F04410C 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 078C80 7F044110 04420017 */ bltzl $v0, .L7F044170 +/* 078C84 7F044114 24010056 */ li $at, 86 +/* 078C88 7F044118 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 078C8C 7F04411C 004A5823 */ subu $t3, $v0, $t2 +/* 078C90 7F044120 A4CB0082 */ sh $t3, 0x82($a2) +/* 078C94 7F044124 84CC0082 */ lh $t4, 0x82($a2) +/* 078C98 7F044128 8FA40030 */ lw $a0, 0x30($sp) +/* 078C9C 7F04412C 058300EB */ bgezl $t4, .L7F0444DC +/* 078CA0 7F044130 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CA4 7F044134 8CED000C */ lw $t5, 0xc($a3) +/* 078CA8 7F044138 2405000D */ li $a1, 13 +/* 078CAC 7F04413C 000D7000 */ sll $t6, $t5, 0 +/* 078CB0 7F044140 05C10003 */ bgez $t6, .L7F044150 +/* 078CB4 7F044144 00000000 */ nop +/* 078CB8 7F044148 10000001 */ b .L7F044150 +/* 078CBC 7F04414C 24050011 */ li $a1, 17 +.L7F044150: +/* 078CC0 7F044150 0FC10F9F */ jal generate_explosion_at_position +/* 078CC4 7F044154 AFA7002C */ sw $a3, 0x2c($sp) +/* 078CC8 7F044158 8FA7002C */ lw $a3, 0x2c($sp) +/* 078CCC 7F04415C 8CEF0064 */ lw $t7, 0x64($a3) +/* 078CD0 7F044160 35F80004 */ ori $t8, $t7, 4 +/* 078CD4 7F044164 100000DC */ b .L7F0444D8 +/* 078CD8 7F044168 ACF80064 */ sw $t8, 0x64($a3) +/* 078CDC 7F04416C 24010056 */ li $at, 86 +.L7F044170: +/* 078CE0 7F044170 54610014 */ bnel $v1, $at, .L7F0441C4 +/* 078CE4 7F044174 24010022 */ li $at, 34 +/* 078CE8 7F044178 84D90082 */ lh $t9, 0x82($a2) +/* 078CEC 7F04417C 8FA40030 */ lw $a0, 0x30($sp) +/* 078CF0 7F044180 572000D6 */ bnezl $t9, .L7F0444DC +/* 078CF4 7F044184 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CF8 7F044188 8CE8000C */ lw $t0, 0xc($a3) +/* 078CFC 7F04418C 2405000D */ li $a1, 13 +/* 078D00 7F044190 00084800 */ sll $t1, $t0, 0 +/* 078D04 7F044194 05210003 */ bgez $t1, .L7F0441A4 +/* 078D08 7F044198 00000000 */ nop +/* 078D0C 7F04419C 10000001 */ b .L7F0441A4 +/* 078D10 7F0441A0 24050011 */ li $a1, 17 +.L7F0441A4: +/* 078D14 7F0441A4 0FC10F9F */ jal generate_explosion_at_position +/* 078D18 7F0441A8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078D1C 7F0441AC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078D20 7F0441B0 8CEA0064 */ lw $t2, 0x64($a3) +/* 078D24 7F0441B4 354B0004 */ ori $t3, $t2, 4 +/* 078D28 7F0441B8 100000C7 */ b .L7F0444D8 +/* 078D2C 7F0441BC ACEB0064 */ sw $t3, 0x64($a3) +/* 078D30 7F0441C0 24010022 */ li $at, 34 +.L7F0441C4: +/* 078D34 7F0441C4 54610014 */ bnel $v1, $at, .L7F044218 +/* 078D38 7F0441C8 2401001B */ li $at, 27 +/* 078D3C 7F0441CC 84CC0082 */ lh $t4, 0x82($a2) +/* 078D40 7F0441D0 8FA40030 */ lw $a0, 0x30($sp) +/* 078D44 7F0441D4 24050011 */ li $a1, 17 +/* 078D48 7F0441D8 558000C0 */ bnezl $t4, .L7F0444DC +/* 078D4C 7F0441DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 078D50 7F0441E0 0FC10F9F */ jal generate_explosion_at_position +/* 078D54 7F0441E4 AFA7002C */ sw $a3, 0x2c($sp) +/* 078D58 7F0441E8 8FA7002C */ lw $a3, 0x2c($sp) +/* 078D5C 7F0441EC 24040078 */ li $a0, 120 +/* 078D60 7F0441F0 8CED0064 */ lw $t5, 0x64($a3) +/* 078D64 7F0441F4 35AE0004 */ ori $t6, $t5, 4 +/* 078D68 7F0441F8 0FC23213 */ jal trigger_explosions_around_player +/* 078D6C 7F0441FC ACEE0064 */ sw $t6, 0x64($a3) +/* 078D70 7F044200 24040002 */ li $a0, 2 +/* 078D74 7F044204 0FC15997 */ jal set_unset_clock_lock_bits +/* 078D78 7F044208 00002825 */ move $a1, $zero +/* 078D7C 7F04420C 100000B3 */ b .L7F0444DC +/* 078D80 7F044210 8FBF0014 */ lw $ra, 0x14($sp) +/* 078D84 7F044214 2401001B */ li $at, 27 +.L7F044218: +/* 078D88 7F044218 10610003 */ beq $v1, $at, .L7F044228 +/* 078D8C 7F04421C 24010021 */ li $at, 33 +/* 078D90 7F044220 54610020 */ bnel $v1, $at, .L7F0442A4 +/* 078D94 7F044224 2401001D */ li $at, 29 +.L7F044228: +/* 078D98 7F044228 84C20082 */ lh $v0, 0x82($a2) +/* 078D9C 7F04422C 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 078DA0 7F044230 0442001C */ bltzl $v0, .L7F0442A4 +/* 078DA4 7F044234 2401001D */ li $at, 29 +/* 078DA8 7F044238 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 078DAC 7F04423C 004FC023 */ subu $t8, $v0, $t7 +/* 078DB0 7F044240 A4D80082 */ sh $t8, 0x82($a2) +/* 078DB4 7F044244 84D90082 */ lh $t9, 0x82($a2) +/* 078DB8 7F044248 8FA40030 */ lw $a0, 0x30($sp) +/* 078DBC 7F04424C 072300A3 */ bgezl $t9, .L7F0444DC +/* 078DC0 7F044250 8FBF0014 */ lw $ra, 0x14($sp) +/* 078DC4 7F044254 8CE8000C */ lw $t0, 0xc($a3) +/* 078DC8 7F044258 2405000D */ li $a1, 13 +/* 078DCC 7F04425C 00084800 */ sll $t1, $t0, 0 +/* 078DD0 7F044260 05210003 */ bgez $t1, .L7F044270 +/* 078DD4 7F044264 00000000 */ nop +/* 078DD8 7F044268 10000001 */ b .L7F044270 +/* 078DDC 7F04426C 24050011 */ li $a1, 17 +.L7F044270: +/* 078DE0 7F044270 AFA60028 */ sw $a2, 0x28($sp) +/* 078DE4 7F044274 0FC10F9F */ jal generate_explosion_at_position +/* 078DE8 7F044278 AFA7002C */ sw $a3, 0x2c($sp) +/* 078DEC 7F04427C 8FA60028 */ lw $a2, 0x28($sp) +/* 078DF0 7F044280 10400095 */ beqz $v0, .L7F0444D8 +/* 078DF4 7F044284 8FA7002C */ lw $a3, 0x2c($sp) +/* 078DF8 7F044288 240AFFFF */ li $t2, -1 +/* 078DFC 7F04428C A4CA0082 */ sh $t2, 0x82($a2) +/* 078E00 7F044290 8CEB0064 */ lw $t3, 0x64($a3) +/* 078E04 7F044294 356C0004 */ ori $t4, $t3, 4 +/* 078E08 7F044298 1000008F */ b .L7F0444D8 +/* 078E0C 7F04429C ACEC0064 */ sw $t4, 0x64($a3) +/* 078E10 7F0442A0 2401001D */ li $at, 29 +.L7F0442A4: +/* 078E14 7F0442A4 5461003F */ bnel $v1, $at, .L7F0443A4 +/* 078E18 7F0442A8 2401001C */ li $at, 28 +/* 078E1C 7F0442AC 3C038003 */ lui $v1, %hi(D_80030AF4) # $v1, 0x8003 +/* 078E20 7F0442B0 8C630B34 */ lw $v1, %lo(D_80030AF4)($v1) +/* 078E24 7F0442B4 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 078E28 7F0442B8 5060000C */ beql $v1, $zero, .L7F0442EC +/* 078E2C 7F0442BC 84C20082 */ lh $v0, 0x82($a2) +/* 078E30 7F0442C0 8CE20064 */ lw $v0, 0x64($a3) +/* 078E34 7F0442C4 3C010006 */ lui $at, 6 +/* 078E38 7F0442C8 240F0001 */ li $t7, 1 +/* 078E3C 7F0442CC 00416824 */ and $t5, $v0, $at +/* 078E40 7F0442D0 000D7442 */ srl $t6, $t5, 0x11 +/* 078E44 7F0442D4 01CFC004 */ sllv $t8, $t7, $t6 +/* 078E48 7F0442D8 0078C824 */ and $t9, $v1, $t8 +/* 078E4C 7F0442DC 53200003 */ beql $t9, $zero, .L7F0442EC +/* 078E50 7F0442E0 84C20082 */ lh $v0, 0x82($a2) +/* 078E54 7F0442E4 A4C00082 */ sh $zero, 0x82($a2) +/* 078E58 7F0442E8 84C20082 */ lh $v0, 0x82($a2) +.L7F0442EC: +/* 078E5C 7F0442EC 28410002 */ slti $at, $v0, 2 +/* 078E60 7F0442F0 1420000B */ bnez $at, .L7F044320 +/* 078E64 7F0442F4 00000000 */ nop +/* 078E68 7F0442F8 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 078E6C 7F0442FC 240B0001 */ li $t3, 1 +/* 078E70 7F044300 00484823 */ subu $t1, $v0, $t0 +/* 078E74 7F044304 A4C90082 */ sh $t1, 0x82($a2) +/* 078E78 7F044308 84CA0082 */ lh $t2, 0x82($a2) +/* 078E7C 7F04430C 29410002 */ slti $at, $t2, 2 +/* 078E80 7F044310 50200072 */ beql $at, $zero, .L7F0444DC +/* 078E84 7F044314 8FBF0014 */ lw $ra, 0x14($sp) +/* 078E88 7F044318 1000006F */ b .L7F0444D8 +/* 078E8C 7F04431C A4CB0082 */ sh $t3, 0x82($a2) +.L7F044320: +/* 078E90 7F044320 5440006E */ bnezl $v0, .L7F0444DC +/* 078E94 7F044324 8FBF0014 */ lw $ra, 0x14($sp) +/* 078E98 7F044328 8CEC000C */ lw $t4, 0xc($a3) +/* 078E9C 7F04432C 2405000D */ li $a1, 13 +/* 078EA0 7F044330 000C6800 */ sll $t5, $t4, 0 +/* 078EA4 7F044334 05A30004 */ bgezl $t5, .L7F044348 +/* 078EA8 7F044338 AFA5001C */ sw $a1, 0x1c($sp) +/* 078EAC 7F04433C 1000000B */ b .L7F04436C +/* 078EB0 7F044340 24050011 */ li $a1, 17 +/* 078EB4 7F044344 AFA5001C */ sw $a1, 0x1c($sp) +.L7F044348: +/* 078EB8 7F044348 AFA60028 */ sw $a2, 0x28($sp) +/* 078EBC 7F04434C 0C001A57 */ jal get_stage_num +/* 078EC0 7F044350 AFA7002C */ sw $a3, 0x2c($sp) +/* 078EC4 7F044354 24010022 */ li $at, 34 +/* 078EC8 7F044358 8FA5001C */ lw $a1, 0x1c($sp) +/* 078ECC 7F04435C 8FA60028 */ lw $a2, 0x28($sp) +/* 078ED0 7F044360 14410002 */ bne $v0, $at, .L7F04436C +/* 078ED4 7F044364 8FA7002C */ lw $a3, 0x2c($sp) +/* 078ED8 7F044368 24050013 */ li $a1, 19 +.L7F04436C: +/* 078EDC 7F04436C 8FA40030 */ lw $a0, 0x30($sp) +/* 078EE0 7F044370 AFA60028 */ sw $a2, 0x28($sp) +/* 078EE4 7F044374 0FC10F9F */ jal generate_explosion_at_position +/* 078EE8 7F044378 AFA7002C */ sw $a3, 0x2c($sp) +/* 078EEC 7F04437C 8FA60028 */ lw $a2, 0x28($sp) +/* 078EF0 7F044380 10400055 */ beqz $v0, .L7F0444D8 +/* 078EF4 7F044384 8FA7002C */ lw $a3, 0x2c($sp) +/* 078EF8 7F044388 240EFFFF */ li $t6, -1 +/* 078EFC 7F04438C A4CE0082 */ sh $t6, 0x82($a2) +/* 078F00 7F044390 8CEF0064 */ lw $t7, 0x64($a3) +/* 078F04 7F044394 35F80004 */ ori $t8, $t7, 4 +/* 078F08 7F044398 1000004F */ b .L7F0444D8 +/* 078F0C 7F04439C ACF80064 */ sw $t8, 0x64($a3) +/* 078F10 7F0443A0 2401001C */ li $at, 28 +.L7F0443A4: +/* 078F14 7F0443A4 5461004D */ bnel $v1, $at, .L7F0444DC +/* 078F18 7F0443A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078F1C 7F0443AC 84C20082 */ lh $v0, 0x82($a2) +/* 078F20 7F0443B0 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 078F24 7F0443B4 28410002 */ slti $at, $v0, 2 +/* 078F28 7F0443B8 54200012 */ bnezl $at, .L7F044404 +/* 078F2C 7F0443BC 24010001 */ li $at, 1 +/* 078F30 7F0443C0 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 078F34 7F0443C4 240A0001 */ li $t2, 1 +/* 078F38 7F0443C8 00C02025 */ move $a0, $a2 +/* 078F3C 7F0443CC 00594023 */ subu $t0, $v0, $t9 +/* 078F40 7F0443D0 A4C80082 */ sh $t0, 0x82($a2) +/* 078F44 7F0443D4 84C90082 */ lh $t1, 0x82($a2) +/* 078F48 7F0443D8 29210002 */ slti $at, $t1, 2 +/* 078F4C 7F0443DC 50200027 */ beql $at, $zero, .L7F04447C +/* 078F50 7F0443E0 84CC0082 */ lh $t4, 0x82($a2) +/* 078F54 7F0443E4 A4CA0082 */ sh $t2, 0x82($a2) +/* 078F58 7F0443E8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078F5C 7F0443EC 0FC14816 */ jal add_obj_to_temp_proxmine_table +/* 078F60 7F0443F0 AFA60028 */ sw $a2, 0x28($sp) +/* 078F64 7F0443F4 8FA60028 */ lw $a2, 0x28($sp) +/* 078F68 7F0443F8 1000001F */ b .L7F044478 +/* 078F6C 7F0443FC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078F70 7F044400 24010001 */ li $at, 1 +.L7F044404: +/* 078F74 7F044404 5441001D */ bnel $v0, $at, .L7F04447C +/* 078F78 7F044408 84CC0082 */ lh $t4, 0x82($a2) +/* 078F7C 7F04440C AFA60028 */ sw $a2, 0x28($sp) +/* 078F80 7F044410 0FC2279B */ jal get_curplayer_positiondata +/* 078F84 7F044414 AFA7002C */ sw $a3, 0x2c($sp) +/* 078F88 7F044418 8FAB0030 */ lw $t3, 0x30($sp) +/* 078F8C 7F04441C C4440008 */ lwc1 $f4, 8($v0) +/* 078F90 7F044420 C448000C */ lwc1 $f8, 0xc($v0) +/* 078F94 7F044424 C5660008 */ lwc1 $f6, 8($t3) +/* 078F98 7F044428 C56A000C */ lwc1 $f10, 0xc($t3) +/* 078F9C 7F04442C C4500010 */ lwc1 $f16, 0x10($v0) +/* 078FA0 7F044430 46062001 */ sub.s $f0, $f4, $f6 +/* 078FA4 7F044434 C5720010 */ lwc1 $f18, 0x10($t3) +/* 078FA8 7F044438 3C018005 */ lui $at, %hi(D_80052A94) # $at, 0x8005 +/* 078FAC 7F04443C 460A4081 */ sub.s $f2, $f8, $f10 +/* 078FB0 7F044440 46000102 */ mul.s $f4, $f0, $f0 +/* 078FB4 7F044444 8FA60028 */ lw $a2, 0x28($sp) +/* 078FB8 7F044448 46128301 */ sub.s $f12, $f16, $f18 +/* 078FBC 7F04444C 46021182 */ mul.s $f6, $f2, $f2 +/* 078FC0 7F044450 C4322AC4 */ lwc1 $f18, %lo(D_80052A94)($at) +/* 078FC4 7F044454 8FA7002C */ lw $a3, 0x2c($sp) +/* 078FC8 7F044458 460C6282 */ mul.s $f10, $f12, $f12 +/* 078FCC 7F04445C 46062200 */ add.s $f8, $f4, $f6 +/* 078FD0 7F044460 460A4400 */ add.s $f16, $f8, $f10 +/* 078FD4 7F044464 4612803C */ c.lt.s $f16, $f18 +/* 078FD8 7F044468 00000000 */ nop +/* 078FDC 7F04446C 45020003 */ bc1fl .L7F04447C +/* 078FE0 7F044470 84CC0082 */ lh $t4, 0x82($a2) +/* 078FE4 7F044474 A4C00082 */ sh $zero, 0x82($a2) +.L7F044478: +/* 078FE8 7F044478 84CC0082 */ lh $t4, 0x82($a2) +.L7F04447C: +/* 078FEC 7F04447C 8FA40030 */ lw $a0, 0x30($sp) +/* 078FF0 7F044480 55800016 */ bnezl $t4, .L7F0444DC +/* 078FF4 7F044484 8FBF0014 */ lw $ra, 0x14($sp) +/* 078FF8 7F044488 8CED000C */ lw $t5, 0xc($a3) +/* 078FFC 7F04448C 2405000D */ li $a1, 13 +/* 079000 7F044490 000D7000 */ sll $t6, $t5, 0 +/* 079004 7F044494 05C10003 */ bgez $t6, .L7F0444A4 +/* 079008 7F044498 00000000 */ nop +/* 07900C 7F04449C 10000001 */ b .L7F0444A4 +/* 079010 7F0444A0 24050011 */ li $a1, 17 +.L7F0444A4: +/* 079014 7F0444A4 AFA60028 */ sw $a2, 0x28($sp) +/* 079018 7F0444A8 0FC10F9F */ jal generate_explosion_at_position +/* 07901C 7F0444AC AFA7002C */ sw $a3, 0x2c($sp) +/* 079020 7F0444B0 8FA60028 */ lw $a2, 0x28($sp) +/* 079024 7F0444B4 10400008 */ beqz $v0, .L7F0444D8 +/* 079028 7F0444B8 8FA7002C */ lw $a3, 0x2c($sp) +/* 07902C 7F0444BC 240FFFFF */ li $t7, -1 +/* 079030 7F0444C0 A4CF0082 */ sh $t7, 0x82($a2) +/* 079034 7F0444C4 8CF80064 */ lw $t8, 0x64($a3) +/* 079038 7F0444C8 00C02025 */ move $a0, $a2 +/* 07903C 7F0444CC 37190004 */ ori $t9, $t8, 4 +/* 079040 7F0444D0 0FC14824 */ jal remove_obj_from_temp_proxmine_table +/* 079044 7F0444D4 ACF90064 */ sw $t9, 0x64($a3) +.L7F0444D8: +/* 079048 7F0444D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0444DC: +/* 07904C 7F0444DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 079050 7F0444E0 03E00008 */ jr $ra +/* 079054 7F0444E4 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F044200(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044200 +/* 078D30 7F044200 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 078D34 7F044204 AFBF001C */ sw $ra, 0x1c($sp) +/* 078D38 7F044208 AFB10018 */ sw $s1, 0x18($sp) +/* 078D3C 7F04420C AFB00014 */ sw $s0, 0x14($sp) +/* 078D40 7F044210 8C900020 */ lw $s0, 0x20($a0) +/* 078D44 7F044214 52000009 */ beql $s0, $zero, .L7F04423C +/* 078D48 7F044218 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04421C: +/* 078D4C 7F04421C 8E110024 */ lw $s1, 0x24($s0) +/* 078D50 7F044220 0FC11080 */ jal sub_GAME_7F044200 +/* 078D54 7F044224 02002025 */ move $a0, $s0 +/* 078D58 7F044228 0FC1304C */ jal sub_GAME_7F04C130 +/* 078D5C 7F04422C 02002025 */ move $a0, $s0 +/* 078D60 7F044230 1620FFFA */ bnez $s1, .L7F04421C +/* 078D64 7F044234 02208025 */ move $s0, $s1 +/* 078D68 7F044238 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04423C: +/* 078D6C 7F04423C 8FB00014 */ lw $s0, 0x14($sp) +/* 078D70 7F044240 8FB10018 */ lw $s1, 0x18($sp) +/* 078D74 7F044244 03E00008 */ jr $ra +/* 078D78 7F044248 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04424C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04424C +/* 078D7C 7F04424C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 078D80 7F044250 AFBF001C */ sw $ra, 0x1c($sp) +/* 078D84 7F044254 AFB10018 */ sw $s1, 0x18($sp) +/* 078D88 7F044258 AFB00014 */ sw $s0, 0x14($sp) +/* 078D8C 7F04425C 8C870004 */ lw $a3, 4($a0) +/* 078D90 7F044260 00808825 */ move $s1, $a0 +/* 078D94 7F044264 8CEE0064 */ lw $t6, 0x64($a3) +/* 078D98 7F044268 31CF0004 */ andi $t7, $t6, 4 +/* 078D9C 7F04426C 51E0000A */ beql $t7, $zero, .L7F044298 +/* 078DA0 7F044270 92390001 */ lbu $t9, 1($s1) +/* 078DA4 7F044274 90E60002 */ lbu $a2, 2($a3) +/* 078DA8 7F044278 00E02025 */ move $a0, $a3 +/* 078DAC 7F04427C 24050001 */ li $a1, 1 +/* 078DB0 7F044280 30D80004 */ andi $t8, $a2, 4 +/* 078DB4 7F044284 0FC10366 */ jal sub_GAME_7F040D98 +/* 078DB8 7F044288 03003025 */ move $a2, $t8 +/* 078DBC 7F04428C 1000000F */ b .L7F0442CC +/* 078DC0 7F044290 8FBF001C */ lw $ra, 0x1c($sp) +/* 078DC4 7F044294 92390001 */ lbu $t9, 1($s1) +.L7F044298: +/* 078DC8 7F044298 02202025 */ move $a0, $s1 +/* 078DCC 7F04429C 3328FFFD */ andi $t0, $t9, 0xfffd +/* 078DD0 7F0442A0 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078DD4 7F0442A4 A2280001 */ sb $t0, 1($s1) +/* 078DD8 7F0442A8 8E300020 */ lw $s0, 0x20($s1) +/* 078DDC 7F0442AC 52000007 */ beql $s0, $zero, .L7F0442CC +/* 078DE0 7F0442B0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0442B4: +/* 078DE4 7F0442B4 8E110024 */ lw $s1, 0x24($s0) +/* 078DE8 7F0442B8 0FC11093 */ jal sub_GAME_7F04424C +/* 078DEC 7F0442BC 02002025 */ move $a0, $s0 +/* 078DF0 7F0442C0 1620FFFC */ bnez $s1, .L7F0442B4 +/* 078DF4 7F0442C4 02208025 */ move $s0, $s1 +/* 078DF8 7F0442C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0442CC: +/* 078DFC 7F0442CC 8FB00014 */ lw $s0, 0x14($sp) +/* 078E00 7F0442D0 8FB10018 */ lw $s1, 0x18($sp) +/* 078E04 7F0442D4 03E00008 */ jr $ra +/* 078E08 7F0442D8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0442DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0442DC +/* 078E0C 7F0442DC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 078E10 7F0442E0 AFBF0024 */ sw $ra, 0x24($sp) +/* 078E14 7F0442E4 AFB20020 */ sw $s2, 0x20($sp) +/* 078E18 7F0442E8 AFB1001C */ sw $s1, 0x1c($sp) +/* 078E1C 7F0442EC AFB00018 */ sw $s0, 0x18($sp) +/* 078E20 7F0442F0 8C910004 */ lw $s1, 4($a0) +/* 078E24 7F0442F4 00809025 */ move $s2, $a0 +/* 078E28 7F0442F8 8E220064 */ lw $v0, 0x64($s1) +/* 078E2C 7F0442FC 8E300014 */ lw $s0, 0x14($s1) +/* 078E30 7F044300 304E0004 */ andi $t6, $v0, 4 +/* 078E34 7F044304 51C0000A */ beql $t6, $zero, .L7F044330 +/* 078E38 7F044308 8E05001C */ lw $a1, 0x1c($s0) +/* 078E3C 7F04430C 92260002 */ lbu $a2, 2($s1) +/* 078E40 7F044310 02202025 */ move $a0, $s1 +/* 078E44 7F044314 24050001 */ li $a1, 1 +/* 078E48 7F044318 30CF0004 */ andi $t7, $a2, 4 +/* 078E4C 7F04431C 0FC10366 */ jal sub_GAME_7F040D98 +/* 078E50 7F044320 01E03025 */ move $a2, $t7 +/* 078E54 7F044324 10000036 */ b .L7F044400 +/* 078E58 7F044328 8FBF0024 */ lw $ra, 0x24($sp) +/* 078E5C 7F04432C 8E05001C */ lw $a1, 0x1c($s0) +.L7F044330: +/* 078E60 7F044330 30580040 */ andi $t8, $v0, 0x40 +/* 078E64 7F044334 50A00025 */ beql $a1, $zero, .L7F0443CC +/* 078E68 7F044338 924C0001 */ lbu $t4, 1($s2) +/* 078E6C 7F04433C 13000022 */ beqz $t8, .L7F0443C8 +/* 078E70 7F044340 00003025 */ move $a2, $zero +/* 078E74 7F044344 0FC1B198 */ jal sub_GAME_7F06C660 +/* 078E78 7F044348 8E040018 */ lw $a0, 0x18($s0) +/* 078E7C 7F04434C AFA2002C */ sw $v0, 0x2c($sp) +/* 078E80 7F044350 92590001 */ lbu $t9, 1($s2) +/* 078E84 7F044354 37280002 */ ori $t0, $t9, 2 +/* 078E88 7F044358 A2480001 */ sb $t0, 1($s2) +/* 078E8C 7F04435C 8E090008 */ lw $t1, 8($s0) +/* 078E90 7F044360 8524000E */ lh $a0, 0xe($t1) +/* 078E94 7F044364 00045180 */ sll $t2, $a0, 6 +/* 078E98 7F044368 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 078E9C 7F04436C 01402025 */ move $a0, $t2 +/* 078EA0 7F044370 AE02000C */ sw $v0, 0xc($s0) +/* 078EA4 7F044374 8E25006C */ lw $a1, 0x6c($s1) +/* 078EA8 7F044378 8FA4002C */ lw $a0, 0x2c($sp) +/* 078EAC 7F04437C 00403025 */ move $a2, $v0 +/* 078EB0 7F044380 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078EB4 7F044384 24A50004 */ addiu $a1, $a1, 4 +/* 078EB8 7F044388 8E0B0008 */ lw $t3, 8($s0) +/* 078EBC 7F04438C 02002025 */ move $a0, $s0 +/* 078EC0 7F044390 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 078EC4 7F044394 8D650000 */ lw $a1, ($t3) +/* 078EC8 7F044398 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078ECC 7F04439C 02402025 */ move $a0, $s2 +/* 078ED0 7F0443A0 8E510020 */ lw $s1, 0x20($s2) +/* 078ED4 7F0443A4 52200016 */ beql $s1, $zero, .L7F044400 +/* 078ED8 7F0443A8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443AC: +/* 078EDC 7F0443AC 8E300024 */ lw $s0, 0x24($s1) +/* 078EE0 7F0443B0 0FC110B7 */ jal sub_GAME_7F0442DC +/* 078EE4 7F0443B4 02202025 */ move $a0, $s1 +/* 078EE8 7F0443B8 1600FFFC */ bnez $s0, .L7F0443AC +/* 078EEC 7F0443BC 02008825 */ move $s1, $s0 +/* 078EF0 7F0443C0 1000000F */ b .L7F044400 +/* 078EF4 7F0443C4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443C8: +/* 078EF8 7F0443C8 924C0001 */ lbu $t4, 1($s2) +.L7F0443CC: +/* 078EFC 7F0443CC 02402025 */ move $a0, $s2 +/* 078F00 7F0443D0 318DFFFD */ andi $t5, $t4, 0xfffd +/* 078F04 7F0443D4 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078F08 7F0443D8 A24D0001 */ sb $t5, 1($s2) +/* 078F0C 7F0443DC 8E510020 */ lw $s1, 0x20($s2) +/* 078F10 7F0443E0 52200007 */ beql $s1, $zero, .L7F044400 +/* 078F14 7F0443E4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443E8: +/* 078F18 7F0443E8 8E300024 */ lw $s0, 0x24($s1) +/* 078F1C 7F0443EC 0FC11093 */ jal sub_GAME_7F04424C +/* 078F20 7F0443F0 02202025 */ move $a0, $s1 +/* 078F24 7F0443F4 1600FFFC */ bnez $s0, .L7F0443E8 +/* 078F28 7F0443F8 02008825 */ move $s1, $s0 +/* 078F2C 7F0443FC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F044400: +/* 078F30 7F044400 8FB00018 */ lw $s0, 0x18($sp) +/* 078F34 7F044404 8FB1001C */ lw $s1, 0x1c($sp) +/* 078F38 7F044408 8FB20020 */ lw $s2, 0x20($sp) +/* 078F3C 7F04440C 03E00008 */ jr $ra +/* 078F40 7F044410 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F044414(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044414 +/* 078F44 7F044414 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 078F48 7F044418 AFB50044 */ sw $s5, 0x44($sp) +/* 078F4C 7F04441C AFB20038 */ sw $s2, 0x38($sp) +/* 078F50 7F044420 AFB10034 */ sw $s1, 0x34($sp) +/* 078F54 7F044424 AFB00030 */ sw $s0, 0x30($sp) +/* 078F58 7F044428 00A08025 */ move $s0, $a1 +/* 078F5C 7F04442C 00E08825 */ move $s1, $a3 +/* 078F60 7F044430 00809025 */ move $s2, $a0 +/* 078F64 7F044434 00C0A825 */ move $s5, $a2 +/* 078F68 7F044438 AFBF004C */ sw $ra, 0x4c($sp) +/* 078F6C 7F04443C AFB60048 */ sw $s6, 0x48($sp) +/* 078F70 7F044440 AFB40040 */ sw $s4, 0x40($sp) +/* 078F74 7F044444 AFB3003C */ sw $s3, 0x3c($sp) +/* 078F78 7F044448 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 078F7C 7F04444C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 078F80 7F044450 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 078F84 7F044454 18A0008A */ blez $a1, .L7F044680 +/* 078F88 7F044458 00004025 */ move $t0, $zero +/* 078F8C 7F04445C 4480C000 */ mtc1 $zero, $f24 +/* 078F90 7F044460 4480B800 */ mtc1 $zero, $f23 +/* 078F94 7F044464 4480B000 */ mtc1 $zero, $f22 +/* 078F98 7F044468 00809825 */ move $s3, $a0 +/* 078F9C 7F04446C D7B40088 */ ldc1 $f20, 0x88($sp) +/* 078FA0 7F044470 27B60074 */ addiu $s6, $sp, 0x74 +.L7F044474: +/* 078FA4 7F044474 25140001 */ addiu $s4, $t0, 1 +/* 078FA8 7F044478 0290001A */ div $zero, $s4, $s0 +/* 078FAC 7F04447C 00002810 */ mfhi $a1 +/* 078FB0 7F044480 000570C0 */ sll $t6, $a1, 3 +/* 078FB4 7F044484 024E1021 */ addu $v0, $s2, $t6 +/* 078FB8 7F044488 C4460004 */ lwc1 $f6, 4($v0) +/* 078FBC 7F04448C C6640004 */ lwc1 $f4, 4($s3) +/* 078FC0 7F044490 C44A0000 */ lwc1 $f10, ($v0) +/* 078FC4 7F044494 46003221 */ cvt.d.s $f8, $f6 +/* 078FC8 7F044498 46002021 */ cvt.d.s $f0, $f4 +/* 078FCC 7F04449C C6620000 */ lwc1 $f2, ($s3) +/* 078FD0 7F0444A0 46204301 */ sub.d $f12, $f8, $f0 +/* 078FD4 7F0444A4 16000002 */ bnez $s0, .L7F0444B0 +/* 078FD8 7F0444A8 00000000 */ nop +/* 078FDC 7F0444AC 0007000D */ break 7 +.L7F0444B0: +/* 078FE0 7F0444B0 2401FFFF */ li $at, -1 +/* 078FE4 7F0444B4 16010004 */ bne $s0, $at, .L7F0444C8 +/* 078FE8 7F0444B8 3C018000 */ lui $at, 0x8000 +/* 078FEC 7F0444BC 16810002 */ bne $s4, $at, .L7F0444C8 +/* 078FF0 7F0444C0 00000000 */ nop +/* 078FF4 7F0444C4 0006000D */ break 6 +.L7F0444C8: +/* 078FF8 7F0444C8 46366032 */ c.eq.d $f12, $f22 +/* 078FFC 7F0444CC 24AF0001 */ addiu $t7, $a1, 1 +/* 079000 7F0444D0 460054A1 */ cvt.d.s $f18, $f10 +/* 079004 7F0444D4 46001421 */ cvt.d.s $f16, $f2 +/* 079008 7F0444D8 45000011 */ bc1f .L7F044520 +/* 07900C 7F0444DC 46328381 */ sub.d $f14, $f16, $f18 +/* 079010 7F0444E0 46367032 */ c.eq.d $f14, $f22 +/* 079014 7F0444E4 00000000 */ nop +/* 079018 7F0444E8 4500000D */ bc1f .L7F044520 +/* 07901C 7F0444EC 00000000 */ nop +/* 079020 7F0444F0 E7A20074 */ swc1 $f2, 0x74($sp) +/* 079024 7F0444F4 E7B80078 */ swc1 $f24, 0x78($sp) +/* 079028 7F0444F8 C6640004 */ lwc1 $f4, 4($s3) +/* 07902C 7F0444FC 02C02025 */ move $a0, $s6 +/* 079030 7F044500 02A02825 */ move $a1, $s5 +/* 079034 7F044504 02203025 */ move $a2, $s1 +/* 079038 7F044508 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 07903C 7F04450C E7A4007C */ swc1 $f4, 0x7c($sp) +/* 079040 7F044510 50400058 */ beql $v0, $zero, .L7F044674 +/* 079044 7F044514 02804025 */ move $t0, $s4 +/* 079048 7F044518 1000005A */ b .L7F044684 +/* 07904C 7F04451C 00001025 */ move $v0, $zero +.L7F044520: +/* 079050 7F044520 01F0001A */ div $zero, $t7, $s0 +/* 079054 7F044524 462E0182 */ mul.d $f6, $f0, $f14 +/* 079058 7F044528 00001010 */ mfhi $v0 +/* 07905C 7F04452C 00401825 */ move $v1, $v0 +/* 079060 7F044530 00002025 */ move $a0, $zero +/* 079064 7F044534 462C8202 */ mul.d $f8, $f16, $f12 +/* 079068 7F044538 46283080 */ add.d $f2, $f6, $f8 +/* 07906C 7F04453C 16000002 */ bnez $s0, .L7F044548 +/* 079070 7F044540 00000000 */ nop +/* 079074 7F044544 0007000D */ break 7 +.L7F044548: +/* 079078 7F044548 2401FFFF */ li $at, -1 +/* 07907C 7F04454C 16010004 */ bne $s0, $at, .L7F044560 +/* 079080 7F044550 3C018000 */ lui $at, 0x8000 +/* 079084 7F044554 15E10002 */ bne $t7, $at, .L7F044560 +/* 079088 7F044558 00000000 */ nop +/* 07908C 7F04455C 0006000D */ break 6 +.L7F044560: +/* 079090 7F044560 1102001D */ beq $t0, $v0, .L7F0445D8 +/* 079094 7F044564 00000000 */ nop +/* 079098 7F044568 0003C0C0 */ sll $t8, $v1, 3 +.L7F04456C: +/* 07909C 7F04456C 02581021 */ addu $v0, $s2, $t8 +/* 0790A0 7F044570 C44A0004 */ lwc1 $f10, 4($v0) +/* 0790A4 7F044574 C4460000 */ lwc1 $f6, ($v0) +/* 0790A8 7F044578 460054A1 */ cvt.d.s $f18, $f10 +/* 0790AC 7F04457C 46003221 */ cvt.d.s $f8, $f6 +/* 0790B0 7F044580 462E9102 */ mul.d $f4, $f18, $f14 +/* 0790B4 7F044584 00000000 */ nop +/* 0790B8 7F044588 462C4282 */ mul.d $f10, $f8, $f12 +/* 0790BC 7F04458C 462A2500 */ add.d $f20, $f4, $f10 +/* 0790C0 7F044590 4622A032 */ c.eq.d $f20, $f2 +/* 0790C4 7F044594 00000000 */ nop +/* 0790C8 7F044598 4500000F */ bc1f .L7F0445D8 +/* 0790CC 7F04459C 00000000 */ nop +/* 0790D0 7F0445A0 24790001 */ addiu $t9, $v1, 1 +/* 0790D4 7F0445A4 0330001A */ div $zero, $t9, $s0 +/* 0790D8 7F0445A8 00001810 */ mfhi $v1 +/* 0790DC 7F0445AC 16000002 */ bnez $s0, .L7F0445B8 +/* 0790E0 7F0445B0 00000000 */ nop +/* 0790E4 7F0445B4 0007000D */ break 7 +.L7F0445B8: +/* 0790E8 7F0445B8 2401FFFF */ li $at, -1 +/* 0790EC 7F0445BC 16010004 */ bne $s0, $at, .L7F0445D0 +/* 0790F0 7F0445C0 3C018000 */ lui $at, 0x8000 +/* 0790F4 7F0445C4 17210002 */ bne $t9, $at, .L7F0445D0 +/* 0790F8 7F0445C8 00000000 */ nop +/* 0790FC 7F0445CC 0006000D */ break 6 +.L7F0445D0: +/* 079100 7F0445D0 5468FFE6 */ bnel $v1, $t0, .L7F04456C +/* 079104 7F0445D4 0003C0C0 */ sll $t8, $v1, 3 +.L7F0445D8: +/* 079108 7F0445D8 1A200021 */ blez $s1, .L7F044660 +/* 07910C 7F0445DC 00000000 */ nop +/* 079110 7F0445E0 02A01025 */ move $v0, $s5 +.L7F0445E4: +/* 079114 7F0445E4 C4520004 */ lwc1 $f18, 4($v0) +/* 079118 7F0445E8 C4440000 */ lwc1 $f4, ($v0) +/* 07911C 7F0445EC 4622A032 */ c.eq.d $f20, $f2 +/* 079120 7F0445F0 460091A1 */ cvt.d.s $f6, $f18 +/* 079124 7F0445F4 460022A1 */ cvt.d.s $f10, $f4 +/* 079128 7F0445F8 462E3202 */ mul.d $f8, $f6, $f14 +/* 07912C 7F0445FC 00000000 */ nop +/* 079130 7F044600 462C5482 */ mul.d $f18, $f10, $f12 +/* 079134 7F044604 45000003 */ bc1f .L7F044614 +/* 079138 7F044608 46324000 */ add.d $f0, $f8, $f18 +/* 07913C 7F04460C 46201181 */ sub.d $f6, $f2, $f0 +/* 079140 7F044610 46223500 */ add.d $f20, $f6, $f2 +.L7F044614: +/* 079144 7F044614 4622003C */ c.lt.d $f0, $f2 +/* 079148 7F044618 00000000 */ nop +/* 07914C 7F04461C 45020006 */ bc1fl .L7F044638 +/* 079150 7F044620 4620103C */ c.lt.d $f2, $f0 +/* 079154 7F044624 4622A03C */ c.lt.d $f20, $f2 +/* 079158 7F044628 00000000 */ nop +/* 07915C 7F04462C 4501000C */ bc1t .L7F044660 +/* 079160 7F044630 00000000 */ nop +/* 079164 7F044634 4620103C */ c.lt.d $f2, $f0 +.L7F044638: +/* 079168 7F044638 00000000 */ nop +/* 07916C 7F04463C 45020006 */ bc1fl .L7F044658 +/* 079170 7F044640 24840001 */ addiu $a0, $a0, 1 +/* 079174 7F044644 4634103C */ c.lt.d $f2, $f20 +/* 079178 7F044648 00000000 */ nop +/* 07917C 7F04464C 45010004 */ bc1t .L7F044660 +/* 079180 7F044650 00000000 */ nop +/* 079184 7F044654 24840001 */ addiu $a0, $a0, 1 +.L7F044658: +/* 079188 7F044658 1491FFE2 */ bne $a0, $s1, .L7F0445E4 +/* 07918C 7F04465C 24420008 */ addiu $v0, $v0, 8 +.L7F044660: +/* 079190 7F044660 54910004 */ bnel $a0, $s1, .L7F044674 +/* 079194 7F044664 02804025 */ move $t0, $s4 +/* 079198 7F044668 10000006 */ b .L7F044684 +/* 07919C 7F04466C 24020001 */ li $v0, 1 +/* 0791A0 7F044670 02804025 */ move $t0, $s4 +.L7F044674: +/* 0791A4 7F044674 1690FF7F */ bne $s4, $s0, .L7F044474 +/* 0791A8 7F044678 26730008 */ addiu $s3, $s3, 8 +/* 0791AC 7F04467C F7B40088 */ sdc1 $f20, 0x88($sp) +.L7F044680: +/* 0791B0 7F044680 00001025 */ move $v0, $zero +.L7F044684: +/* 0791B4 7F044684 8FBF004C */ lw $ra, 0x4c($sp) +/* 0791B8 7F044688 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0791BC 7F04468C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0791C0 7F044690 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0791C4 7F044694 8FB00030 */ lw $s0, 0x30($sp) +/* 0791C8 7F044698 8FB10034 */ lw $s1, 0x34($sp) +/* 0791CC 7F04469C 8FB20038 */ lw $s2, 0x38($sp) +/* 0791D0 7F0446A0 8FB3003C */ lw $s3, 0x3c($sp) +/* 0791D4 7F0446A4 8FB40040 */ lw $s4, 0x40($sp) +/* 0791D8 7F0446A8 8FB50044 */ lw $s5, 0x44($sp) +/* 0791DC 7F0446AC 8FB60048 */ lw $s6, 0x48($sp) +/* 0791E0 7F0446B0 03E00008 */ jr $ra +/* 0791E4 7F0446B4 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0446B8(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0446B8 +/* 0791E8 7F0446B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0791EC 7F0446BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0791F0 7F0446C0 AFA40018 */ sw $a0, 0x18($sp) +/* 0791F4 7F0446C4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0791F8 7F0446C8 AFA60020 */ sw $a2, 0x20($sp) +/* 0791FC 7F0446CC 0FC11105 */ jal sub_GAME_7F044414 +/* 079200 7F0446D0 AFA70024 */ sw $a3, 0x24($sp) +/* 079204 7F0446D4 10400003 */ beqz $v0, .L7F0446E4 +/* 079208 7F0446D8 8FA40020 */ lw $a0, 0x20($sp) +/* 07920C 7F0446DC 1000000A */ b .L7F044708 +/* 079210 7F0446E0 00001025 */ move $v0, $zero +.L7F0446E4: +/* 079214 7F0446E4 8FA50024 */ lw $a1, 0x24($sp) +/* 079218 7F0446E8 8FA60018 */ lw $a2, 0x18($sp) +/* 07921C 7F0446EC 0FC11105 */ jal sub_GAME_7F044414 +/* 079220 7F0446F0 8FA7001C */ lw $a3, 0x1c($sp) +/* 079224 7F0446F4 50400004 */ beql $v0, $zero, .L7F044708 +/* 079228 7F0446F8 24020001 */ li $v0, 1 +/* 07922C 7F0446FC 10000002 */ b .L7F044708 +/* 079230 7F044700 00001025 */ move $v0, $zero +/* 079234 7F044704 24020001 */ li $v0, 1 +.L7F044708: +/* 079238 7F044708 8FBF0014 */ lw $ra, 0x14($sp) +/* 07923C 7F04470C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 079240 7F044710 03E00008 */ jr $ra +/* 079244 7F044714 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0446B8 +/* 079510 7F0449A0 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 079514 7F0449A4 AFB60038 */ sw $s6, 0x38($sp) +/* 079518 7F0449A8 AFB50034 */ sw $s5, 0x34($sp) +/* 07951C 7F0449AC AFB40030 */ sw $s4, 0x30($sp) +/* 079520 7F0449B0 AFB3002C */ sw $s3, 0x2c($sp) +/* 079524 7F0449B4 AFB10024 */ sw $s1, 0x24($sp) +/* 079528 7F0449B8 00A09825 */ move $s3, $a1 +/* 07952C 7F0449BC 00E0A025 */ move $s4, $a3 +/* 079530 7F0449C0 0080A825 */ move $s5, $a0 +/* 079534 7F0449C4 00C0B025 */ move $s6, $a2 +/* 079538 7F0449C8 AFBF003C */ sw $ra, 0x3c($sp) +/* 07953C 7F0449CC AFB20028 */ sw $s2, 0x28($sp) +/* 079540 7F0449D0 AFB00020 */ sw $s0, 0x20($sp) +/* 079544 7F0449D4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 079548 7F0449D8 18A00014 */ blez $a1, .Ljp7F044A2C +/* 07954C 7F0449DC 00008825 */ move $s1, $zero +/* 079550 7F0449E0 4480A000 */ mtc1 $zero, $f20 +/* 079554 7F0449E4 00808025 */ move $s0, $a0 +/* 079558 7F0449E8 27B20048 */ addiu $s2, $sp, 0x48 +.Ljp7F0449EC: +/* 07955C 7F0449EC C6040000 */ lwc1 $f4, ($s0) +/* 079560 7F0449F0 E7B4004C */ swc1 $f20, 0x4c($sp) +/* 079564 7F0449F4 02402025 */ move $a0, $s2 +/* 079568 7F0449F8 E7A40048 */ swc1 $f4, 0x48($sp) +/* 07956C 7F0449FC C6060004 */ lwc1 $f6, 4($s0) +/* 079570 7F044A00 02C02825 */ move $a1, $s6 +/* 079574 7F044A04 02803025 */ move $a2, $s4 +/* 079578 7F044A08 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 07957C 7F044A0C E7A60050 */ swc1 $f6, 0x50($sp) +/* 079580 7F044A10 10400003 */ beqz $v0, .Ljp7F044A20 +/* 079584 7F044A14 26310001 */ addiu $s1, $s1, 1 +/* 079588 7F044A18 10000029 */ b .Ljp7F044AC0 +/* 07958C 7F044A1C 24020001 */ li $v0, 1 +.Ljp7F044A20: +/* 079590 7F044A20 1633FFF2 */ bne $s1, $s3, .Ljp7F0449EC +/* 079594 7F044A24 26100008 */ addiu $s0, $s0, 8 +/* 079598 7F044A28 00008825 */ move $s1, $zero +.Ljp7F044A2C: +/* 07959C 7F044A2C 4480A000 */ mtc1 $zero, $f20 +/* 0795A0 7F044A30 1A800011 */ blez $s4, .Ljp7F044A78 +/* 0795A4 7F044A34 27B20048 */ addiu $s2, $sp, 0x48 +/* 0795A8 7F044A38 02C08025 */ move $s0, $s6 +.Ljp7F044A3C: +/* 0795AC 7F044A3C C6080000 */ lwc1 $f8, ($s0) +/* 0795B0 7F044A40 E7B4004C */ swc1 $f20, 0x4c($sp) +/* 0795B4 7F044A44 02402025 */ move $a0, $s2 +/* 0795B8 7F044A48 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0795BC 7F044A4C C60A0004 */ lwc1 $f10, 4($s0) +/* 0795C0 7F044A50 02A02825 */ move $a1, $s5 +/* 0795C4 7F044A54 02603025 */ move $a2, $s3 +/* 0795C8 7F044A58 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 0795CC 7F044A5C E7AA0050 */ swc1 $f10, 0x50($sp) +/* 0795D0 7F044A60 10400003 */ beqz $v0, .Ljp7F044A70 +/* 0795D4 7F044A64 26310001 */ addiu $s1, $s1, 1 +/* 0795D8 7F044A68 10000015 */ b .Ljp7F044AC0 +/* 0795DC 7F044A6C 24020001 */ li $v0, 1 +.Ljp7F044A70: +/* 0795E0 7F044A70 1634FFF2 */ bne $s1, $s4, .Ljp7F044A3C +/* 0795E4 7F044A74 26100008 */ addiu $s0, $s0, 8 +.Ljp7F044A78: +/* 0795E8 7F044A78 02A02025 */ move $a0, $s5 +/* 0795EC 7F044A7C 02602825 */ move $a1, $s3 +/* 0795F0 7F044A80 02C03025 */ move $a2, $s6 +/* 0795F4 7F044A84 0FC111BF */ jal sub_GAME_7F044414 +/* 0795F8 7F044A88 02803825 */ move $a3, $s4 +/* 0795FC 7F044A8C 10400003 */ beqz $v0, .Ljp7F044A9C +/* 079600 7F044A90 02C02025 */ move $a0, $s6 +/* 079604 7F044A94 1000000A */ b .Ljp7F044AC0 +/* 079608 7F044A98 00001025 */ move $v0, $zero +.Ljp7F044A9C: +/* 07960C 7F044A9C 02802825 */ move $a1, $s4 +/* 079610 7F044AA0 02A03025 */ move $a2, $s5 +/* 079614 7F044AA4 0FC111BF */ jal sub_GAME_7F044414 +/* 079618 7F044AA8 02603825 */ move $a3, $s3 +/* 07961C 7F044AAC 50400004 */ beql $v0, $zero, .Ljp7F044AC0 +/* 079620 7F044AB0 24020001 */ li $v0, 1 +/* 079624 7F044AB4 10000002 */ b .Ljp7F044AC0 +/* 079628 7F044AB8 00001025 */ move $v0, $zero +/* 07962C 7F044ABC 24020001 */ li $v0, 1 +.Ljp7F044AC0: +/* 079630 7F044AC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 079634 7F044AC4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 079638 7F044AC8 8FB00020 */ lw $s0, 0x20($sp) +/* 07963C 7F044ACC 8FB10024 */ lw $s1, 0x24($sp) +/* 079640 7F044AD0 8FB20028 */ lw $s2, 0x28($sp) +/* 079644 7F044AD4 8FB3002C */ lw $s3, 0x2c($sp) +/* 079648 7F044AD8 8FB40030 */ lw $s4, 0x30($sp) +/* 07964C 7F044ADC 8FB50034 */ lw $s5, 0x34($sp) +/* 079650 7F044AE0 8FB60038 */ lw $s6, 0x38($sp) +/* 079654 7F044AE4 03E00008 */ jr $ra +/* 079658 7F044AE8 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F044718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044718 +/* 079248 7F044718 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 07924C 7F04471C AFB40060 */ sw $s4, 0x60($sp) +/* 079250 7F044720 AFB3005C */ sw $s3, 0x5c($sp) +/* 079254 7F044724 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 079258 7F044728 4485E000 */ mtc1 $a1, $f28 +/* 07925C 7F04472C AFBF0064 */ sw $ra, 0x64($sp) +/* 079260 7F044730 AFB20058 */ sw $s2, 0x58($sp) +/* 079264 7F044734 AFB10054 */ sw $s1, 0x54($sp) +/* 079268 7F044738 AFB00050 */ sw $s0, 0x50($sp) +/* 07926C 7F04473C F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 079270 7F044740 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 079274 7F044744 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 079278 7F044748 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07927C 7F04474C F7B40020 */ sdc1 $f20, 0x20($sp) +/* 079280 7F044750 00E09825 */ move $s3, $a3 +/* 079284 7F044754 00C0A025 */ move $s4, $a2 +/* 079288 7F044758 C4960000 */ lwc1 $f22, ($a0) +/* 07928C 7F04475C C4980008 */ lwc1 $f24, 8($a0) +/* 079290 7F044760 18E00042 */ blez $a3, .L7F04486C +/* 079294 7F044764 00001025 */ move $v0, $zero +/* 079298 7F044768 4480F000 */ mtc1 $zero, $f30 +/* 07929C 7F04476C 00C08825 */ move $s1, $a2 +.L7F044770: +/* 0792A0 7F044770 24520001 */ addiu $s2, $v0, 1 +/* 0792A4 7F044774 0253001A */ div $zero, $s2, $s3 +/* 0792A8 7F044778 00007010 */ mfhi $t6 +/* 0792AC 7F04477C 000E78C0 */ sll $t7, $t6, 3 +/* 0792B0 7F044780 028F8021 */ addu $s0, $s4, $t7 +/* 0792B4 7F044784 8E060000 */ lw $a2, ($s0) +/* 0792B8 7F044788 8E070004 */ lw $a3, 4($s0) +/* 0792BC 7F04478C C62C0000 */ lwc1 $f12, ($s1) +/* 0792C0 7F044790 C62E0004 */ lwc1 $f14, 4($s1) +/* 0792C4 7F044794 16600002 */ bnez $s3, .L7F0447A0 +/* 0792C8 7F044798 00000000 */ nop +/* 0792CC 7F04479C 0007000D */ break 7 +.L7F0447A0: +/* 0792D0 7F0447A0 2401FFFF */ li $at, -1 +/* 0792D4 7F0447A4 16610004 */ bne $s3, $at, .L7F0447B8 +/* 0792D8 7F0447A8 3C018000 */ lui $at, 0x8000 +/* 0792DC 7F0447AC 16410002 */ bne $s2, $at, .L7F0447B8 +/* 0792E0 7F0447B0 00000000 */ nop +/* 0792E4 7F0447B4 0006000D */ break 6 +.L7F0447B8: +/* 0792E8 7F0447B8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 0792EC 7F0447BC 0FC2C5B1 */ jal sub_GAME_7F0B16C4 +/* 0792F0 7F0447C0 E7B60010 */ swc1 $f22, 0x10($sp) +/* 0792F4 7F0447C4 461E003C */ c.lt.s $f0, $f30 +/* 0792F8 7F0447C8 4406B000 */ mfc1 $a2, $f22 +/* 0792FC 7F0447CC 4407C000 */ mfc1 $a3, $f24 +/* 079300 7F0447D0 46000506 */ mov.s $f20, $f0 +/* 079304 7F0447D4 45020003 */ bc1fl .L7F0447E4 +/* 079308 7F0447D8 C62C0000 */ lwc1 $f12, ($s1) +/* 07930C 7F0447DC 46000507 */ neg.s $f20, $f0 +/* 079310 7F0447E0 C62C0000 */ lwc1 $f12, ($s1) +.L7F0447E4: +/* 079314 7F0447E4 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 079318 7F0447E8 C62E0004 */ lwc1 $f14, 4($s1) +/* 07931C 7F0447EC 4406B000 */ mfc1 $a2, $f22 +/* 079320 7F0447F0 4407C000 */ mfc1 $a3, $f24 +/* 079324 7F0447F4 46000686 */ mov.s $f26, $f0 +/* 079328 7F0447F8 C60C0000 */ lwc1 $f12, ($s0) +/* 07932C 7F0447FC 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 079330 7F044800 C60E0004 */ lwc1 $f14, 4($s0) +/* 079334 7F044804 461CA03C */ c.lt.s $f20, $f28 +/* 079338 7F044808 00000000 */ nop +/* 07933C 7F04480C 45020015 */ bc1fl .L7F044864 +/* 079340 7F044810 02401025 */ move $v0, $s2 +/* 079344 7F044814 461CD03C */ c.lt.s $f26, $f28 +/* 079348 7F044818 00000000 */ nop +/* 07934C 7F04481C 4501000E */ bc1t .L7F044858 +/* 079350 7F044820 00000000 */ nop +/* 079354 7F044824 461C003C */ c.lt.s $f0, $f28 +/* 079358 7F044828 00000000 */ nop +/* 07935C 7F04482C 4501000A */ bc1t .L7F044858 +/* 079360 7F044830 00000000 */ nop +/* 079364 7F044834 C62C0000 */ lwc1 $f12, ($s1) +/* 079368 7F044838 C62E0004 */ lwc1 $f14, 4($s1) +/* 07936C 7F04483C 8E060000 */ lw $a2, ($s0) +/* 079370 7F044840 8E070004 */ lw $a3, 4($s0) +/* 079374 7F044844 E7B80014 */ swc1 $f24, 0x14($sp) +/* 079378 7F044848 0FC2C5F9 */ jal sub_GAME_7F0B17E4 +/* 07937C 7F04484C E7B60010 */ swc1 $f22, 0x10($sp) +/* 079380 7F044850 50400004 */ beql $v0, $zero, .L7F044864 +/* 079384 7F044854 02401025 */ move $v0, $s2 +.L7F044858: +/* 079388 7F044858 10000005 */ b .L7F044870 +/* 07938C 7F04485C 24020001 */ li $v0, 1 +/* 079390 7F044860 02401025 */ move $v0, $s2 +.L7F044864: +/* 079394 7F044864 1653FFC2 */ bne $s2, $s3, .L7F044770 +/* 079398 7F044868 26310008 */ addiu $s1, $s1, 8 +.L7F04486C: +/* 07939C 7F04486C 00001025 */ move $v0, $zero +.L7F044870: +/* 0793A0 7F044870 8FBF0064 */ lw $ra, 0x64($sp) +/* 0793A4 7F044874 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0793A8 7F044878 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0793AC 7F04487C D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0793B0 7F044880 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0793B4 7F044884 D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0793B8 7F044888 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0793BC 7F04488C 8FB00050 */ lw $s0, 0x50($sp) +/* 0793C0 7F044890 8FB10054 */ lw $s1, 0x54($sp) +/* 0793C4 7F044894 8FB20058 */ lw $s2, 0x58($sp) +/* 0793C8 7F044898 8FB3005C */ lw $s3, 0x5c($sp) +/* 0793CC 7F04489C 8FB40060 */ lw $s4, 0x60($sp) +/* 0793D0 7F0448A0 03E00008 */ jr $ra +/* 0793D4 7F0448A4 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0448A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0448A8 +/* 0793D8 7F0448A8 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0793DC 7F0448AC AFBF0034 */ sw $ra, 0x34($sp) +/* 0793E0 7F0448B0 AFB50030 */ sw $s5, 0x30($sp) +/* 0793E4 7F0448B4 27AE008C */ addiu $t6, $sp, 0x8c +/* 0793E8 7F0448B8 0080A825 */ move $s5, $a0 +/* 0793EC 7F0448BC AFB4002C */ sw $s4, 0x2c($sp) +/* 0793F0 7F0448C0 AFB30028 */ sw $s3, 0x28($sp) +/* 0793F4 7F0448C4 AFB20024 */ sw $s2, 0x24($sp) +/* 0793F8 7F0448C8 AFB10020 */ sw $s1, 0x20($sp) +/* 0793FC 7F0448CC AFB0001C */ sw $s0, 0x1c($sp) +/* 079400 7F0448D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 079404 7F0448D4 27A50098 */ addiu $a1, $sp, 0x98 +/* 079408 7F0448D8 27A60094 */ addiu $a2, $sp, 0x94 +/* 07940C 7F0448DC 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 079410 7F0448E0 27A70090 */ addiu $a3, $sp, 0x90 +/* 079414 7F0448E4 8FAF0094 */ lw $t7, 0x94($sp) +/* 079418 7F0448E8 27B0006C */ addiu $s0, $sp, 0x6c +/* 07941C 7F0448EC 02A02025 */ move $a0, $s5 +/* 079420 7F0448F0 1DE00003 */ bgtz $t7, .L7F044900 +/* 079424 7F0448F4 00000000 */ nop +/* 079428 7F0448F8 10000086 */ b .L7F044B14 +/* 07942C 7F0448FC 24020001 */ li $v0, 1 +.L7F044900: +/* 079430 7F044900 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 079434 7F044904 02002825 */ move $a1, $s0 +/* 079438 7F044908 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 07943C 7F04490C 02002025 */ move $a0, $s0 +/* 079440 7F044910 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 079444 7F044914 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 079448 7F044918 24140002 */ li $s4, 2 +/* 07944C 7F04491C 86620000 */ lh $v0, ($s3) +/* 079450 7F044920 0440007B */ bltz $v0, .L7F044B10 +/* 079454 7F044924 0002C080 */ sll $t8, $v0, 2 +.L7F044928: +/* 079458 7F044928 0302C023 */ subu $t8, $t8, $v0 +/* 07945C 7F04492C 0018C080 */ sll $t8, $t8, 2 +/* 079460 7F044930 0302C021 */ addu $t8, $t8, $v0 +/* 079464 7F044934 3C198007 */ lui $t9, %hi(pos_data_entry) +/* 079468 7F044938 27399C38 */ addiu $t9, %lo(pos_data_entry) # addiu $t9, $t9, -0x63c8 +/* 07946C 7F04493C 0018C080 */ sll $t8, $t8, 2 +/* 079470 7F044940 03199021 */ addu $s2, $t8, $t9 +/* 079474 7F044944 5255006F */ beql $s2, $s5, .L7F044B04 +/* 079478 7F044948 86620002 */ lh $v0, 2($s3) +/* 07947C 7F04494C 92420000 */ lbu $v0, ($s2) +/* 079480 7F044950 24010006 */ li $at, 6 +/* 079484 7F044954 10410003 */ beq $v0, $at, .L7F044964 +/* 079488 7F044958 24010003 */ li $at, 3 +/* 07948C 7F04495C 5441003C */ bnel $v0, $at, .L7F044A50 +/* 079490 7F044960 24010001 */ li $at, 1 +.L7F044964: +/* 079494 7F044964 8E420004 */ lw $v0, 4($s2) +/* 079498 7F044968 02402025 */ move $a0, $s2 +/* 07949C 7F04496C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0794A0 7F044970 10400005 */ beqz $v0, .L7F044988 +/* 0794A4 7F044974 27A60064 */ addiu $a2, $sp, 0x64 +/* 0794A8 7F044978 8C480014 */ lw $t0, 0x14($v0) +/* 0794AC 7F04497C 31090400 */ andi $t1, $t0, 0x400 +/* 0794B0 7F044980 55200060 */ bnezl $t1, .L7F044B04 +/* 0794B4 7F044984 86620002 */ lh $v0, 2($s3) +.L7F044988: +/* 0794B8 7F044988 0FC0F3E2 */ jal sub_GAME_7F03CF88 +/* 0794BC 7F04498C 27A70060 */ addiu $a3, $sp, 0x60 +/* 0794C0 7F044990 0FC0F3FA */ jal sub_GAME_7F03CFE8 +/* 0794C4 7F044994 02402025 */ move $a0, $s2 +/* 0794C8 7F044998 C7A20060 */ lwc1 $f2, 0x60($sp) +/* 0794CC 7F04499C C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0794D0 7F0449A0 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0794D4 7F0449A4 46001080 */ add.s $f2, $f2, $f0 +/* 0794D8 7F0449A8 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0794DC 7F0449AC 46002180 */ add.s $f6, $f4, $f0 +/* 0794E0 7F0449B0 E7A20060 */ swc1 $f2, 0x60($sp) +/* 0794E4 7F0449B4 4608103E */ c.le.s $f2, $f8 +/* 0794E8 7F0449B8 E7A60064 */ swc1 $f6, 0x64($sp) +/* 0794EC 7F0449BC 45020051 */ bc1fl .L7F044B04 +/* 0794F0 7F0449C0 86620002 */ lh $v0, 2($s3) +/* 0794F4 7F0449C4 4606503E */ c.le.s $f10, $f6 +/* 0794F8 7F0449C8 26510008 */ addiu $s1, $s2, 8 +/* 0794FC 7F0449CC 24100001 */ li $s0, 1 +/* 079500 7F0449D0 02202025 */ move $a0, $s1 +/* 079504 7F0449D4 4500004A */ bc1f .L7F044B00 +/* 079508 7F0449D8 8FA50098 */ lw $a1, 0x98($sp) +/* 07950C 7F0449DC 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 079510 7F0449E0 8FA60094 */ lw $a2, 0x94($sp) +/* 079514 7F0449E4 10400002 */ beqz $v0, .L7F0449F0 +/* 079518 7F0449E8 02202025 */ move $a0, $s1 +/* 07951C 7F0449EC 00008025 */ move $s0, $zero +.L7F0449F0: +/* 079520 7F0449F0 12000007 */ beqz $s0, .L7F044A10 +/* 079524 7F0449F4 8FA5005C */ lw $a1, 0x5c($sp) +/* 079528 7F0449F8 8FA60098 */ lw $a2, 0x98($sp) +/* 07952C 7F0449FC 0FC111C6 */ jal sub_GAME_7F044718 +/* 079530 7F044A00 8FA70094 */ lw $a3, 0x94($sp) +/* 079534 7F044A04 10400002 */ beqz $v0, .L7F044A10 +/* 079538 7F044A08 00000000 */ nop +/* 07953C 7F044A0C 00008025 */ move $s0, $zero +.L7F044A10: +/* 079540 7F044A10 5600003C */ bnezl $s0, .L7F044B04 +/* 079544 7F044A14 86620002 */ lh $v0, 2($s3) +/* 079548 7F044A18 924A0000 */ lbu $t2, ($s2) +/* 07954C 7F044A1C 24010003 */ li $at, 3 +/* 079550 7F044A20 15410008 */ bne $t2, $at, .L7F044A44 +/* 079554 7F044A24 00000000 */ nop +/* 079558 7F044A28 92AB0000 */ lbu $t3, ($s5) +/* 07955C 7F044A2C 168B0005 */ bne $s4, $t3, .L7F044A44 +/* 079560 7F044A30 00000000 */ nop +/* 079564 7F044A34 8E420004 */ lw $v0, 4($s2) +/* 079568 7F044A38 944C0012 */ lhu $t4, 0x12($v0) +/* 07956C 7F044A3C 358D0010 */ ori $t5, $t4, 0x10 +/* 079570 7F044A40 A44D0012 */ sh $t5, 0x12($v0) +.L7F044A44: +/* 079574 7F044A44 10000033 */ b .L7F044B14 +/* 079578 7F044A48 00001025 */ move $v0, $zero +/* 07957C 7F044A4C 24010001 */ li $at, 1 +.L7F044A50: +/* 079580 7F044A50 10410005 */ beq $v0, $at, .L7F044A68 +/* 079584 7F044A54 24010004 */ li $at, 4 +/* 079588 7F044A58 50410004 */ beql $v0, $at, .L7F044A6C +/* 07958C 7F044A5C 92AE0000 */ lbu $t6, ($s5) +/* 079590 7F044A60 56820028 */ bnel $s4, $v0, .L7F044B04 +/* 079594 7F044A64 86620002 */ lh $v0, 2($s3) +.L7F044A68: +/* 079598 7F044A68 92AE0000 */ lbu $t6, ($s5) +.L7F044A6C: +/* 07959C 7F044A6C 02402025 */ move $a0, $s2 +/* 0795A0 7F044A70 27A5004C */ addiu $a1, $sp, 0x4c +/* 0795A4 7F044A74 168E0009 */ bne $s4, $t6, .L7F044A9C +/* 0795A8 7F044A78 27A60048 */ addiu $a2, $sp, 0x48 +/* 0795AC 7F044A7C 52820021 */ beql $s4, $v0, .L7F044B04 +/* 0795B0 7F044A80 86620002 */ lh $v0, 2($s3) +/* 0795B4 7F044A84 8E4F0004 */ lw $t7, 4($s2) +/* 0795B8 7F044A88 2401002B */ li $at, 43 +/* 0795BC 7F044A8C 91E20003 */ lbu $v0, 3($t7) +/* 0795C0 7F044A90 1041001B */ beq $v0, $at, .L7F044B00 +/* 0795C4 7F044A94 24010028 */ li $at, 40 +/* 0795C8 7F044A98 10410019 */ beq $v0, $at, .L7F044B00 +.L7F044A9C: +/* 0795CC 7F044A9C 27B80040 */ addiu $t8, $sp, 0x40 +/* 0795D0 7F044AA0 AFB80010 */ sw $t8, 0x10($sp) +/* 0795D4 7F044AA4 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0795D8 7F044AA8 27A70044 */ addiu $a3, $sp, 0x44 +/* 0795DC 7F044AAC 8FA50048 */ lw $a1, 0x48($sp) +/* 0795E0 7F044AB0 C7B00090 */ lwc1 $f16, 0x90($sp) +/* 0795E4 7F044AB4 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0795E8 7F044AB8 58A00012 */ blezl $a1, .L7F044B04 +/* 0795EC 7F044ABC 86620002 */ lh $v0, 2($s3) +/* 0795F0 7F044AC0 4610903E */ c.le.s $f18, $f16 +/* 0795F4 7F044AC4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0795F8 7F044AC8 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0795FC 7F044ACC 4502000D */ bc1fl .L7F044B04 +/* 079600 7F044AD0 86620002 */ lh $v0, 2($s3) +/* 079604 7F044AD4 4604403E */ c.le.s $f8, $f4 +/* 079608 7F044AD8 8FA4004C */ lw $a0, 0x4c($sp) +/* 07960C 7F044ADC 8FA60098 */ lw $a2, 0x98($sp) +/* 079610 7F044AE0 45020008 */ bc1fl .L7F044B04 +/* 079614 7F044AE4 86620002 */ lh $v0, 2($s3) +/* 079618 7F044AE8 0FC111AE */ jal sub_GAME_7F0446B8 +/* 07961C 7F044AEC 8FA70094 */ lw $a3, 0x94($sp) +/* 079620 7F044AF0 50400004 */ beql $v0, $zero, .L7F044B04 +/* 079624 7F044AF4 86620002 */ lh $v0, 2($s3) +/* 079628 7F044AF8 10000006 */ b .L7F044B14 +/* 07962C 7F044AFC 00001025 */ move $v0, $zero +.L7F044B00: +/* 079630 7F044B00 86620002 */ lh $v0, 2($s3) +.L7F044B04: +/* 079634 7F044B04 26730002 */ addiu $s3, $s3, 2 +/* 079638 7F044B08 0443FF87 */ bgezl $v0, .L7F044928 +/* 07963C 7F044B0C 0002C080 */ sll $t8, $v0, 2 +.L7F044B10: +/* 079640 7F044B10 24020001 */ li $v0, 1 +.L7F044B14: +/* 079644 7F044B14 8FBF0034 */ lw $ra, 0x34($sp) +/* 079648 7F044B18 8FB0001C */ lw $s0, 0x1c($sp) +/* 07964C 7F044B1C 8FB10020 */ lw $s1, 0x20($sp) +/* 079650 7F044B20 8FB20024 */ lw $s2, 0x24($sp) +/* 079654 7F044B24 8FB30028 */ lw $s3, 0x28($sp) +/* 079658 7F044B28 8FB4002C */ lw $s4, 0x2c($sp) +/* 07965C 7F044B2C 8FB50030 */ lw $s5, 0x30($sp) +/* 079660 7F044B30 03E00008 */ jr $ra +/* 079664 7F044B34 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F044B38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044B38 +/* 079668 7F044B38 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 07966C 7F044B3C AFBF0024 */ sw $ra, 0x24($sp) +/* 079670 7F044B40 AFB10020 */ sw $s1, 0x20($sp) +/* 079674 7F044B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 079678 7F044B48 8C830014 */ lw $v1, 0x14($a0) +/* 07967C 7F044B4C 8C910010 */ lw $s1, 0x10($a0) +/* 079680 7F044B50 24180001 */ li $t8, 1 +/* 079684 7F044B54 8C790008 */ lw $t9, 8($v1) +/* 079688 7F044B58 00808025 */ move $s0, $a0 +/* 07968C 7F044B5C 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 079690 7F044B60 8F220008 */ lw $v0, 8($t9) +/* 079694 7F044B64 8C480004 */ lw $t0, 4($v0) +/* 079698 7F044B68 8D090004 */ lw $t1, 4($t0) +/* 07969C 7F044B6C AFA90148 */ sw $t1, 0x148($sp) +/* 0796A0 7F044B70 8C4A0008 */ lw $t2, 8($v0) +/* 0796A4 7F044B74 8D4B0004 */ lw $t3, 4($t2) +/* 0796A8 7F044B78 AFAB0144 */ sw $t3, 0x144($sp) +/* 0796AC 7F044B7C 8C4C000C */ lw $t4, 0xc($v0) +/* 0796B0 7F044B80 8D8D0004 */ lw $t5, 4($t4) +/* 0796B4 7F044B84 AFAD0140 */ sw $t5, 0x140($sp) +/* 0796B8 7F044B88 8C4E0010 */ lw $t6, 0x10($v0) +/* 0796BC 7F044B8C 8DCF0004 */ lw $t7, 4($t6) +/* 0796C0 7F044B90 AFB80108 */ sw $t8, 0x108($sp) +/* 0796C4 7F044B94 AFAF013C */ sw $t7, 0x13c($sp) +/* 0796C8 7F044B98 8C590018 */ lw $t9, 0x18($v0) +/* 0796CC 7F044B9C 8F280004 */ lw $t0, 4($t9) +/* 0796D0 7F044BA0 AFA800C0 */ sw $t0, 0xc0($sp) +/* 0796D4 7F044BA4 C48C00A0 */ lwc1 $f12, 0xa0($a0) +/* 0796D8 7F044BA8 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0796DC 7F044BAC AFA30154 */ sw $v1, 0x154($sp) +/* 0796E0 7F044BB0 8FA90154 */ lw $t1, 0x154($sp) +/* 0796E4 7F044BB4 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 0796E8 7F044BB8 0FC1629F */ jal matrix_scalar_multiply +/* 0796EC 7F044BBC C52C0014 */ lwc1 $f12, 0x14($t1) +/* 0796F0 7F044BC0 26040058 */ addiu $a0, $s0, 0x58 +/* 0796F4 7F044BC4 0FC16266 */ jal matrix_4x4_set_position +/* 0796F8 7F044BC8 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 0796FC 7F044BCC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079700 7F044BD0 8FA50148 */ lw $a1, 0x148($sp) +/* 079704 7F044BD4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079708 7F044BD8 27A60130 */ addiu $a2, $sp, 0x130 +/* 07970C 7F044BDC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079710 7F044BE0 8FA50144 */ lw $a1, 0x144($sp) +/* 079714 7F044BE4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079718 7F044BE8 27A60124 */ addiu $a2, $sp, 0x124 +/* 07971C 7F044BEC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079720 7F044BF0 8FA50140 */ lw $a1, 0x140($sp) +/* 079724 7F044BF4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079728 7F044BF8 27A60118 */ addiu $a2, $sp, 0x118 +/* 07972C 7F044BFC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079730 7F044C00 8FA5013C */ lw $a1, 0x13c($sp) +/* 079734 7F044C04 0FC16106 */ jal matrix_4x4_transform_vector +/* 079738 7F044C08 27A6010C */ addiu $a2, $sp, 0x10c +/* 07973C 7F044C0C 8E2A0014 */ lw $t2, 0x14($s1) +/* 079740 7F044C10 C7A80138 */ lwc1 $f8, 0x138($sp) +/* 079744 7F044C14 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 079748 7F044C18 AFAA00C4 */ sw $t2, 0xc4($sp) +/* 07974C 7F044C1C 8E260010 */ lw $a2, 0x10($s1) +/* 079750 7F044C20 8E250008 */ lw $a1, 8($s1) +/* 079754 7F044C24 8FA70130 */ lw $a3, 0x130($sp) +/* 079758 7F044C28 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07975C 7F044C2C E7A80010 */ swc1 $f8, 0x10($sp) +/* 079760 7F044C30 10400006 */ beqz $v0, .L7F044C4C +/* 079764 7F044C34 8FA400C4 */ lw $a0, 0xc4($sp) +/* 079768 7F044C38 8FA50130 */ lw $a1, 0x130($sp) +/* 07976C 7F044C3C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 079770 7F044C40 8FA60138 */ lw $a2, 0x138($sp) +/* 079774 7F044C44 10000002 */ b .L7F044C50 +/* 079778 7F044C48 E7A00134 */ swc1 $f0, 0x134($sp) +.L7F044C4C: +/* 07977C 7F044C4C AFA00108 */ sw $zero, 0x108($sp) +.L7F044C50: +/* 079780 7F044C50 8E2B0014 */ lw $t3, 0x14($s1) +/* 079784 7F044C54 C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 079788 7F044C58 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 07978C 7F044C5C AFAB00C4 */ sw $t3, 0xc4($sp) +/* 079790 7F044C60 8E260010 */ lw $a2, 0x10($s1) +/* 079794 7F044C64 8E250008 */ lw $a1, 8($s1) +/* 079798 7F044C68 8FA70124 */ lw $a3, 0x124($sp) +/* 07979C 7F044C6C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0797A0 7F044C70 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0797A4 7F044C74 10400006 */ beqz $v0, .L7F044C90 +/* 0797A8 7F044C78 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0797AC 7F044C7C 8FA50124 */ lw $a1, 0x124($sp) +/* 0797B0 7F044C80 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0797B4 7F044C84 8FA6012C */ lw $a2, 0x12c($sp) +/* 0797B8 7F044C88 10000002 */ b .L7F044C94 +/* 0797BC 7F044C8C E7A00128 */ swc1 $f0, 0x128($sp) +.L7F044C90: +/* 0797C0 7F044C90 AFA00108 */ sw $zero, 0x108($sp) +.L7F044C94: +/* 0797C4 7F044C94 8E2C0014 */ lw $t4, 0x14($s1) +/* 0797C8 7F044C98 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 0797CC 7F044C9C 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0797D0 7F044CA0 AFAC00C4 */ sw $t4, 0xc4($sp) +/* 0797D4 7F044CA4 8E260010 */ lw $a2, 0x10($s1) +/* 0797D8 7F044CA8 8E250008 */ lw $a1, 8($s1) +/* 0797DC 7F044CAC 8FA70118 */ lw $a3, 0x118($sp) +/* 0797E0 7F044CB0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0797E4 7F044CB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0797E8 7F044CB8 10400006 */ beqz $v0, .L7F044CD4 +/* 0797EC 7F044CBC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0797F0 7F044CC0 8FA50118 */ lw $a1, 0x118($sp) +/* 0797F4 7F044CC4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0797F8 7F044CC8 8FA60120 */ lw $a2, 0x120($sp) +/* 0797FC 7F044CCC 10000002 */ b .L7F044CD8 +/* 079800 7F044CD0 E7A0011C */ swc1 $f0, 0x11c($sp) +.L7F044CD4: +/* 079804 7F044CD4 AFA00108 */ sw $zero, 0x108($sp) +.L7F044CD8: +/* 079808 7F044CD8 8E2D0014 */ lw $t5, 0x14($s1) +/* 07980C 7F044CDC C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 079810 7F044CE0 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 079814 7F044CE4 AFAD00C4 */ sw $t5, 0xc4($sp) +/* 079818 7F044CE8 8E260010 */ lw $a2, 0x10($s1) +/* 07981C 7F044CEC 8E250008 */ lw $a1, 8($s1) +/* 079820 7F044CF0 8FA7010C */ lw $a3, 0x10c($sp) +/* 079824 7F044CF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 079828 7F044CF8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07982C 7F044CFC 10400006 */ beqz $v0, .L7F044D18 +/* 079830 7F044D00 8FA400C4 */ lw $a0, 0xc4($sp) +/* 079834 7F044D04 8FA5010C */ lw $a1, 0x10c($sp) +/* 079838 7F044D08 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07983C 7F044D0C 8FA60114 */ lw $a2, 0x114($sp) +/* 079840 7F044D10 10000002 */ b .L7F044D1C +/* 079844 7F044D14 E7A00110 */ swc1 $f0, 0x110($sp) +.L7F044D18: +/* 079848 7F044D18 AFA00108 */ sw $zero, 0x108($sp) +.L7F044D1C: +/* 07984C 7F044D1C 8FAE0108 */ lw $t6, 0x108($sp) +/* 079850 7F044D20 26040018 */ addiu $a0, $s0, 0x18 +/* 079854 7F044D24 27A600BC */ addiu $a2, $sp, 0xbc +/* 079858 7F044D28 11C0010E */ beqz $t6, .L7F045164 +/* 07985C 7F044D2C 00802825 */ move $a1, $a0 +/* 079860 7F044D30 C7B20124 */ lwc1 $f18, 0x124($sp) +/* 079864 7F044D34 C7B00130 */ lwc1 $f16, 0x130($sp) +/* 079868 7F044D38 C7AE0128 */ lwc1 $f14, 0x128($sp) +/* 07986C 7F044D3C C7AC0134 */ lwc1 $f12, 0x134($sp) +/* 079870 7F044D40 46109401 */ sub.s $f16, $f18, $f16 +/* 079874 7F044D44 C7B2012C */ lwc1 $f18, 0x12c($sp) +/* 079878 7F044D48 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07987C 7F044D4C 460C7301 */ sub.s $f12, $f14, $f12 +/* 079880 7F044D50 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 079884 7F044D54 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 079888 7F044D58 460A9281 */ sub.s $f10, $f18, $f10 +/* 07988C 7F044D5C E7AC00B8 */ swc1 $f12, 0xb8($sp) +/* 079890 7F044D60 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 079894 7F044D64 0C007DD4 */ jal guNormalize +/* 079898 7F044D68 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 07989C 7F044D6C C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0798A0 7F044D70 C7B00124 */ lwc1 $f16, 0x124($sp) +/* 0798A4 7F044D74 C7AE0110 */ lwc1 $f14, 0x110($sp) +/* 0798A8 7F044D78 C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 0798AC 7F044D7C 46109401 */ sub.s $f16, $f18, $f16 +/* 0798B0 7F044D80 C7B20114 */ lwc1 $f18, 0x114($sp) +/* 0798B4 7F044D84 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 0798B8 7F044D88 460C7301 */ sub.s $f12, $f14, $f12 +/* 0798BC 7F044D8C E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 0798C0 7F044D90 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 0798C4 7F044D94 460A9281 */ sub.s $f10, $f18, $f10 +/* 0798C8 7F044D98 E7AC00AC */ swc1 $f12, 0xac($sp) +/* 0798CC 7F044D9C 27A500AC */ addiu $a1, $sp, 0xac +/* 0798D0 7F044DA0 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0798D4 7F044DA4 0C007DD4 */ jal guNormalize +/* 0798D8 7F044DA8 E7AA00B0 */ swc1 $f10, 0xb0($sp) +/* 0798DC 7F044DAC C7B20118 */ lwc1 $f18, 0x118($sp) +/* 0798E0 7F044DB0 C7B0010C */ lwc1 $f16, 0x10c($sp) +/* 0798E4 7F044DB4 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 0798E8 7F044DB8 C7AC0110 */ lwc1 $f12, 0x110($sp) +/* 0798EC 7F044DBC 46109401 */ sub.s $f16, $f18, $f16 +/* 0798F0 7F044DC0 C7B20120 */ lwc1 $f18, 0x120($sp) +/* 0798F4 7F044DC4 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 0798F8 7F044DC8 460C7301 */ sub.s $f12, $f14, $f12 +/* 0798FC 7F044DCC E7B0009C */ swc1 $f16, 0x9c($sp) +/* 079900 7F044DD0 27A4009C */ addiu $a0, $sp, 0x9c +/* 079904 7F044DD4 460A9281 */ sub.s $f10, $f18, $f10 +/* 079908 7F044DD8 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 07990C 7F044DDC 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 079910 7F044DE0 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 079914 7F044DE4 0C007DD4 */ jal guNormalize +/* 079918 7F044DE8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 07991C 7F044DEC C7B20130 */ lwc1 $f18, 0x130($sp) +/* 079920 7F044DF0 C7B00118 */ lwc1 $f16, 0x118($sp) +/* 079924 7F044DF4 C7AE0134 */ lwc1 $f14, 0x134($sp) +/* 079928 7F044DF8 C7AC011C */ lwc1 $f12, 0x11c($sp) +/* 07992C 7F044DFC 46109401 */ sub.s $f16, $f18, $f16 +/* 079930 7F044E00 C7B20138 */ lwc1 $f18, 0x138($sp) +/* 079934 7F044E04 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 079938 7F044E08 460C7301 */ sub.s $f12, $f14, $f12 +/* 07993C 7F044E0C E7B00090 */ swc1 $f16, 0x90($sp) +/* 079940 7F044E10 27A40090 */ addiu $a0, $sp, 0x90 +/* 079944 7F044E14 460A9281 */ sub.s $f10, $f18, $f10 +/* 079948 7F044E18 E7AC0094 */ swc1 $f12, 0x94($sp) +/* 07994C 7F044E1C 27A50094 */ addiu $a1, $sp, 0x94 +/* 079950 7F044E20 27A60098 */ addiu $a2, $sp, 0x98 +/* 079954 7F044E24 0C007DD4 */ jal guNormalize +/* 079958 7F044E28 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 07995C 7F044E2C C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 079960 7F044E30 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 079964 7F044E34 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 079968 7F044E38 E7A80028 */ swc1 $f8, 0x28($sp) +/* 07996C 7F044E3C 46064102 */ mul.s $f4, $f8, $f6 +/* 079970 7F044E40 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 079974 7F044E44 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 079978 7F044E48 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 07997C 7F044E4C 46085182 */ mul.s $f6, $f10, $f8 +/* 079980 7F044E50 E7A80030 */ swc1 $f8, 0x30($sp) +/* 079984 7F044E54 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 079988 7F044E58 46062001 */ sub.s $f0, $f4, $f6 +/* 07998C 7F044E5C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 079990 7F044E60 46045182 */ mul.s $f6, $f10, $f4 +/* 079994 7F044E64 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 079998 7F044E68 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 07999C 7F044E6C 460A4102 */ mul.s $f4, $f8, $f10 +/* 0799A0 7F044E70 46043381 */ sub.s $f14, $f6, $f4 +/* 0799A4 7F044E74 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0799A8 7F044E78 4600703E */ c.le.s $f14, $f0 +/* 0799AC 7F044E7C 00000000 */ nop +/* 0799B0 7F044E80 45020023 */ bc1fl .L7F044F10 +/* 0799B4 7F044E84 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0799B8 7F044E88 46064102 */ mul.s $f4, $f8, $f6 +/* 0799BC 7F044E8C E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0799C0 7F044E90 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0799C4 7F044E94 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0799C8 7F044E98 460A4282 */ mul.s $f10, $f8, $f10 +/* 0799CC 7F044E9C 460A2101 */ sub.s $f4, $f4, $f10 +/* 0799D0 7F044EA0 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0799D4 7F044EA4 4600203E */ c.le.s $f4, $f0 +/* 0799D8 7F044EA8 00000000 */ nop +/* 0799DC 7F044EAC 45020018 */ bc1fl .L7F044F10 +/* 0799E0 7F044EB0 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0799E4 7F044EB4 460A4102 */ mul.s $f4, $f8, $f10 +/* 0799E8 7F044EB8 C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0799EC 7F044EBC C7AC00B8 */ lwc1 $f12, 0xb8($sp) +/* 0799F0 7F044EC0 46064182 */ mul.s $f6, $f8, $f6 +/* 0799F4 7F044EC4 46062101 */ sub.s $f4, $f4, $f6 +/* 0799F8 7F044EC8 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0799FC 7F044ECC 4600203E */ c.le.s $f4, $f0 +/* 079A00 7F044ED0 00000000 */ nop +/* 079A04 7F044ED4 4502000E */ bc1fl .L7F044F10 +/* 079A08 7F044ED8 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 079A0C 7F044EDC 46066102 */ mul.s $f4, $f12, $f6 +/* 079A10 7F044EE0 C7A200AC */ lwc1 $f2, 0xac($sp) +/* 079A14 7F044EE4 E7A00078 */ swc1 $f0, 0x78($sp) +/* 079A18 7F044EE8 46081182 */ mul.s $f6, $f2, $f8 +/* 079A1C 7F044EEC 46062201 */ sub.s $f8, $f4, $f6 +/* 079A20 7F044EF0 46025102 */ mul.s $f4, $f10, $f2 +/* 079A24 7F044EF4 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 079A28 7F044EF8 E7A80074 */ swc1 $f8, 0x74($sp) +/* 079A2C 7F044EFC 460C3202 */ mul.s $f8, $f6, $f12 +/* 079A30 7F044F00 46082281 */ sub.s $f10, $f4, $f8 +/* 079A34 7F044F04 10000045 */ b .L7F04501C +/* 079A38 7F044F08 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 079A3C 7F044F0C C7A600A4 */ lwc1 $f6, 0xa4($sp) +.L7F044F10: +/* 079A40 7F044F10 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 079A44 7F044F14 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 079A48 7F044F18 E7A60038 */ swc1 $f6, 0x38($sp) +/* 079A4C 7F044F1C 46043202 */ mul.s $f8, $f6, $f4 +/* 079A50 7F044F20 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 079A54 7F044F24 E7A40034 */ swc1 $f4, 0x34($sp) +/* 079A58 7F044F28 46065102 */ mul.s $f4, $f10, $f6 +/* 079A5C 7F044F2C 46044001 */ sub.s $f0, $f8, $f4 +/* 079A60 7F044F30 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 079A64 7F044F34 46085102 */ mul.s $f4, $f10, $f8 +/* 079A68 7F044F38 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 079A6C 7F044F3C C7AA00BC */ lwc1 $f10, 0xbc($sp) +/* 079A70 7F044F40 460E003E */ c.le.s $f0, $f14 +/* 079A74 7F044F44 46085282 */ mul.s $f10, $f10, $f8 +/* 079A78 7F044F48 45000013 */ bc1f .L7F044F98 +/* 079A7C 7F044F4C 460A2081 */ sub.s $f2, $f4, $f10 +/* 079A80 7F044F50 460E103E */ c.le.s $f2, $f14 +/* 079A84 7F044F54 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 079A88 7F044F58 45020010 */ bc1fl .L7F044F9C +/* 079A8C 7F044F5C 4600103E */ c.le.s $f2, $f0 +/* 079A90 7F044F60 C7A200AC */ lwc1 $f2, 0xac($sp) +/* 079A94 7F044F64 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 079A98 7F044F68 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 079A9C 7F044F6C 46081102 */ mul.s $f4, $f2, $f8 +/* 079AA0 7F044F70 E7AE0078 */ swc1 $f14, 0x78($sp) +/* 079AA4 7F044F74 460A6202 */ mul.s $f8, $f12, $f10 +/* 079AA8 7F044F78 46082281 */ sub.s $f10, $f4, $f8 +/* 079AAC 7F044F7C C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 079AB0 7F044F80 460C2202 */ mul.s $f8, $f4, $f12 +/* 079AB4 7F044F84 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 079AB8 7F044F88 46023282 */ mul.s $f10, $f6, $f2 +/* 079ABC 7F044F8C 460A4101 */ sub.s $f4, $f8, $f10 +/* 079AC0 7F044F90 10000022 */ b .L7F04501C +/* 079AC4 7F044F94 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F044F98: +/* 079AC8 7F044F98 4600103E */ c.le.s $f2, $f0 +.L7F044F9C: +/* 079ACC 7F044F9C C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 079AD0 7F044FA0 C7AE0094 */ lwc1 $f14, 0x94($sp) +/* 079AD4 7F044FA4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 079AD8 7F044FA8 45000010 */ bc1f .L7F044FEC +/* 079ADC 7F044FAC C7A60098 */ lwc1 $f6, 0x98($sp) +/* 079AE0 7F044FB0 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 079AE4 7F044FB4 C7AE0094 */ lwc1 $f14, 0x94($sp) +/* 079AE8 7F044FB8 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 079AEC 7F044FBC 46066202 */ mul.s $f8, $f12, $f6 +/* 079AF0 7F044FC0 E7A00078 */ swc1 $f0, 0x78($sp) +/* 079AF4 7F044FC4 460A7102 */ mul.s $f4, $f14, $f10 +/* 079AF8 7F044FC8 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 079AFC 7F044FCC 46044181 */ sub.s $f6, $f8, $f4 +/* 079B00 7F044FD0 460E5202 */ mul.s $f8, $f10, $f14 +/* 079B04 7F044FD4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 079B08 7F044FD8 E7A60074 */ swc1 $f6, 0x74($sp) +/* 079B0C 7F044FDC 460C2182 */ mul.s $f6, $f4, $f12 +/* 079B10 7F044FE0 46064281 */ sub.s $f10, $f8, $f6 +/* 079B14 7F044FE4 1000000D */ b .L7F04501C +/* 079B18 7F044FE8 E7AA007C */ swc1 $f10, 0x7c($sp) +.L7F044FEC: +/* 079B1C 7F044FEC 46047202 */ mul.s $f8, $f14, $f4 +/* 079B20 7F044FF0 C7AC00B8 */ lwc1 $f12, 0xb8($sp) +/* 079B24 7F044FF4 E7A20078 */ swc1 $f2, 0x78($sp) +/* 079B28 7F044FF8 46066282 */ mul.s $f10, $f12, $f6 +/* 079B2C 7F044FFC C7A60090 */ lwc1 $f6, 0x90($sp) +/* 079B30 7F045000 460A4101 */ sub.s $f4, $f8, $f10 +/* 079B34 7F045004 460C3202 */ mul.s $f8, $f6, $f12 +/* 079B38 7F045008 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 079B3C 7F04500C E7A40074 */ swc1 $f4, 0x74($sp) +/* 079B40 7F045010 460E5102 */ mul.s $f4, $f10, $f14 +/* 079B44 7F045014 46044181 */ sub.s $f6, $f8, $f4 +/* 079B48 7F045018 E7A6007C */ swc1 $f6, 0x7c($sp) +.L7F04501C: +/* 079B4C 7F04501C 0FC15FAB */ jal sinf +/* 079B50 7F045020 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079B54 7F045024 44805000 */ mtc1 $zero, $f10 +/* 079B58 7F045028 E7A00068 */ swc1 $f0, 0x68($sp) +/* 079B5C 7F04502C E7AA006C */ swc1 $f10, 0x6c($sp) +/* 079B60 7F045030 0FC15FA8 */ jal cosf +/* 079B64 7F045034 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079B68 7F045038 26040018 */ addiu $a0, $s0, 0x18 +/* 079B6C 7F04503C E7A00070 */ swc1 $f0, 0x70($sp) +/* 079B70 7F045040 0FC15FF4 */ jal matrix_4x4_set_identity +/* 079B74 7F045044 AFA40058 */ sw $a0, 0x58($sp) +/* 079B78 7F045048 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 079B7C 7F04504C 8FA50058 */ lw $a1, 0x58($sp) +/* 079B80 7F045050 E6080028 */ swc1 $f8, 0x28($s0) +/* 079B84 7F045054 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 079B88 7F045058 C6100028 */ lwc1 $f16, 0x28($s0) +/* 079B8C 7F04505C E604002C */ swc1 $f4, 0x2c($s0) +/* 079B90 7F045060 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 079B94 7F045064 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 079B98 7F045068 E6060030 */ swc1 $f6, 0x30($s0) +/* 079B9C 7F04506C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 079BA0 7F045070 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 079BA4 7F045074 C6000030 */ lwc1 $f0, 0x30($s0) +/* 079BA8 7F045078 460A7202 */ mul.s $f8, $f14, $f10 +/* 079BAC 7F04507C 00000000 */ nop +/* 079BB0 7F045080 46002182 */ mul.s $f6, $f4, $f0 +/* 079BB4 7F045084 46064281 */ sub.s $f10, $f8, $f6 +/* 079BB8 7F045088 E60A0018 */ swc1 $f10, 0x18($s0) +/* 079BBC 7F04508C C7A40068 */ lwc1 $f4, 0x68($sp) +/* 079BC0 7F045090 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 079BC4 7F045094 46040202 */ mul.s $f8, $f0, $f4 +/* 079BC8 7F045098 00000000 */ nop +/* 079BCC 7F04509C 46103282 */ mul.s $f10, $f6, $f16 +/* 079BD0 7F0450A0 460A4101 */ sub.s $f4, $f8, $f10 +/* 079BD4 7F0450A4 E604001C */ swc1 $f4, 0x1c($s0) +/* 079BD8 7F0450A8 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 079BDC 7F0450AC C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 079BE0 7F0450B0 46068202 */ mul.s $f8, $f16, $f6 +/* 079BE4 7F0450B4 00000000 */ nop +/* 079BE8 7F0450B8 460E5102 */ mul.s $f4, $f10, $f14 +/* 079BEC 7F0450BC C60A001C */ lwc1 $f10, 0x1c($s0) +/* 079BF0 7F0450C0 46044181 */ sub.s $f6, $f8, $f4 +/* 079BF4 7F0450C4 E6060020 */ swc1 $f6, 0x20($s0) +/* 079BF8 7F0450C8 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 079BFC 7F0450CC C7A80048 */ lwc1 $f8, 0x48($sp) +/* 079C00 7F0450D0 C6020020 */ lwc1 $f2, 0x20($s0) +/* 079C04 7F0450D4 C6120018 */ lwc1 $f18, 0x18($s0) +/* 079C08 7F0450D8 46004102 */ mul.s $f4, $f8, $f0 +/* 079C0C 7F0450DC 00000000 */ nop +/* 079C10 7F0450E0 46027182 */ mul.s $f6, $f14, $f2 +/* 079C14 7F0450E4 46062281 */ sub.s $f10, $f4, $f6 +/* 079C18 7F0450E8 46101202 */ mul.s $f8, $f2, $f16 +/* 079C1C 7F0450EC 00000000 */ nop +/* 079C20 7F0450F0 46120102 */ mul.s $f4, $f0, $f18 +/* 079C24 7F0450F4 E60A0038 */ swc1 $f10, 0x38($s0) +/* 079C28 7F0450F8 460E9282 */ mul.s $f10, $f18, $f14 +/* 079C2C 7F0450FC 46044181 */ sub.s $f6, $f8, $f4 +/* 079C30 7F045100 E606003C */ swc1 $f6, 0x3c($s0) +/* 079C34 7F045104 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 079C38 7F045108 46088102 */ mul.s $f4, $f16, $f8 +/* 079C3C 7F04510C 46045181 */ sub.s $f6, $f10, $f4 +/* 079C40 7F045110 E6060040 */ swc1 $f6, 0x40($s0) +/* 079C44 7F045114 8FAF0154 */ lw $t7, 0x154($sp) +/* 079C48 7F045118 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 079C4C 7F04511C 0FC1629F */ jal matrix_scalar_multiply +/* 079C50 7F045120 AFA50058 */ sw $a1, 0x58($sp) +/* 079C54 7F045124 8FA40058 */ lw $a0, 0x58($sp) +/* 079C58 7F045128 8FA50148 */ lw $a1, 0x148($sp) +/* 079C5C 7F04512C 0FC16106 */ jal matrix_4x4_transform_vector +/* 079C60 7F045130 27A60124 */ addiu $a2, $sp, 0x124 +/* 079C64 7F045134 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 079C68 7F045138 8FA400C0 */ lw $a0, 0xc0($sp) +/* 079C6C 7F04513C 8FB80154 */ lw $t8, 0x154($sp) +/* 079C70 7F045140 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 079C74 7F045144 C70A0014 */ lwc1 $f10, 0x14($t8) +/* 079C78 7F045148 460A0102 */ mul.s $f4, $f0, $f10 +/* 079C7C 7F04514C C7AA0128 */ lwc1 $f10, 0x128($sp) +/* 079C80 7F045150 46044181 */ sub.s $f6, $f8, $f4 +/* 079C84 7F045154 460A3081 */ sub.s $f2, $f6, $f10 +/* 079C88 7F045158 E622000C */ swc1 $f2, 0xc($s1) +/* 079C8C 7F04515C 10000019 */ b .L7F0451C4 +/* 079C90 7F045160 E602005C */ swc1 $f2, 0x5c($s0) +.L7F045164: +/* 079C94 7F045164 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079C98 7F045168 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 079C9C 7F04516C AFA40058 */ sw $a0, 0x58($sp) +/* 079CA0 7F045170 8FB90154 */ lw $t9, 0x154($sp) +/* 079CA4 7F045174 8FA50058 */ lw $a1, 0x58($sp) +/* 079CA8 7F045178 0FC1629F */ jal matrix_scalar_multiply +/* 079CAC 7F04517C C72C0014 */ lwc1 $f12, 0x14($t9) +/* 079CB0 7F045180 8E240014 */ lw $a0, 0x14($s1) +/* 079CB4 7F045184 8E250008 */ lw $a1, 8($s1) +/* 079CB8 7F045188 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 079CBC 7F04518C 8E260010 */ lw $a2, 0x10($s1) +/* 079CC0 7F045190 E7A0005C */ swc1 $f0, 0x5c($sp) +/* 079CC4 7F045194 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 079CC8 7F045198 8FA400C0 */ lw $a0, 0xc0($sp) +/* 079CCC 7F04519C 8FA80148 */ lw $t0, 0x148($sp) +/* 079CD0 7F0451A0 8FA90154 */ lw $t1, 0x154($sp) +/* 079CD4 7F0451A4 C5080004 */ lwc1 $f8, 4($t0) +/* 079CD8 7F0451A8 C5260014 */ lwc1 $f6, 0x14($t1) +/* 079CDC 7F0451AC 46004100 */ add.s $f4, $f8, $f0 +/* 079CE0 7F0451B0 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 079CE4 7F0451B4 46062282 */ mul.s $f10, $f4, $f6 +/* 079CE8 7F0451B8 460A4081 */ sub.s $f2, $f8, $f10 +/* 079CEC 7F0451BC E622000C */ swc1 $f2, 0xc($s1) +/* 079CF0 7F0451C0 E602005C */ swc1 $f2, 0x5c($s0) +.L7F0451C4: +/* 079CF4 7F0451C4 8FBF0024 */ lw $ra, 0x24($sp) +/* 079CF8 7F0451C8 8FA20108 */ lw $v0, 0x108($sp) +/* 079CFC 7F0451CC 8FB0001C */ lw $s0, 0x1c($sp) +/* 079D00 7F0451D0 8FB10020 */ lw $s1, 0x20($sp) +/* 079D04 7F0451D4 03E00008 */ jr $ra +/* 079D08 7F0451D8 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0451DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0451DC +/* 079D0C 7F0451DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 079D10 7F0451E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 079D14 7F0451E4 AFA5001C */ sw $a1, 0x1c($sp) +/* 079D18 7F0451E8 AFA60020 */ sw $a2, 0x20($sp) +/* 079D1C 7F0451EC AFA70024 */ sw $a3, 0x24($sp) +/* 079D20 7F0451F0 0FC225E6 */ jal get_curplayer_positiondata +/* 079D24 7F0451F4 AFA40018 */ sw $a0, 0x18($sp) +/* 079D28 7F0451F8 8FA40018 */ lw $a0, 0x18($sp) +/* 079D2C 7F0451FC C4460008 */ lwc1 $f6, 8($v0) +/* 079D30 7F045200 C44A000C */ lwc1 $f10, 0xc($v0) +/* 079D34 7F045204 C4840000 */ lwc1 $f4, ($a0) +/* 079D38 7F045208 C4880004 */ lwc1 $f8, 4($a0) +/* 079D3C 7F04520C C4520010 */ lwc1 $f18, 0x10($v0) +/* 079D40 7F045210 46062001 */ sub.s $f0, $f4, $f6 +/* 079D44 7F045214 C4900008 */ lwc1 $f16, 8($a0) +/* 079D48 7F045218 460A4081 */ sub.s $f2, $f8, $f10 +/* 079D4C 7F04521C 46000102 */ mul.s $f4, $f0, $f0 +/* 079D50 7F045220 46128381 */ sub.s $f14, $f16, $f18 +/* 079D54 7F045224 46021182 */ mul.s $f6, $f2, $f2 +/* 079D58 7F045228 46062200 */ add.s $f8, $f4, $f6 +/* 079D5C 7F04522C 460E7282 */ mul.s $f10, $f14, $f14 +/* 079D60 7F045230 0C007DF8 */ jal sqrtf +/* 079D64 7F045234 460A4300 */ add.s $f12, $f8, $f10 +/* 079D68 7F045238 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 079D6C 7F04523C C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 079D70 7F045240 8FBF0014 */ lw $ra, 0x14($sp) +/* 079D74 7F045244 4600603C */ c.lt.s $f12, $f0 +/* 079D78 7F045248 00000000 */ nop +/* 079D7C 7F04524C 45020004 */ bc1fl .L7F045260 +/* 079D80 7F045250 4602003C */ c.lt.s $f0, $f2 +/* 079D84 7F045254 1000001C */ b .L7F0452C8 +/* 079D88 7F045258 240300FF */ li $v1, 255 +/* 079D8C 7F04525C 4602003C */ c.lt.s $f0, $f2 +.L7F045260: +/* 079D90 7F045260 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 079D94 7F045264 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 079D98 7F045268 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 079D9C 7F04526C 4502000A */ bc1fl .L7F045298 +/* 079DA0 7F045270 44815000 */ mtc1 $at, $f10 +/* 079DA4 7F045274 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 079DA8 7F045278 44819000 */ mtc1 $at, $f18 +/* 079DAC 7F04527C 00000000 */ nop +/* 079DB0 7F045280 46128102 */ mul.s $f4, $f16, $f18 +/* 079DB4 7F045284 4600218D */ trunc.w.s $f6, $f4 +/* 079DB8 7F045288 44033000 */ mfc1 $v1, $f6 +/* 079DBC 7F04528C 1000000F */ b .L7F0452CC +/* 079DC0 7F045290 00601025 */ move $v0, $v1 +/* 079DC4 7F045294 44815000 */ mtc1 $at, $f10 +.L7F045298: +/* 079DC8 7F045298 46020201 */ sub.s $f8, $f0, $f2 +/* 079DCC 7F04529C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 079DD0 7F0452A0 460E5401 */ sub.s $f16, $f10, $f14 +/* 079DD4 7F0452A4 46026101 */ sub.s $f4, $f12, $f2 +/* 079DD8 7F0452A8 46104482 */ mul.s $f18, $f8, $f16 +/* 079DDC 7F0452AC 44814000 */ mtc1 $at, $f8 +/* 079DE0 7F0452B0 46049183 */ div.s $f6, $f18, $f4 +/* 079DE4 7F0452B4 460E3280 */ add.s $f10, $f6, $f14 +/* 079DE8 7F0452B8 46085402 */ mul.s $f16, $f10, $f8 +/* 079DEC 7F0452BC 4600848D */ trunc.w.s $f18, $f16 +/* 079DF0 7F0452C0 44039000 */ mfc1 $v1, $f18 +/* 079DF4 7F0452C4 00000000 */ nop +.L7F0452C8: +/* 079DF8 7F0452C8 00601025 */ move $v0, $v1 +.L7F0452CC: +/* 079DFC 7F0452CC 03E00008 */ jr $ra +/* 079E00 7F0452D0 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void object_interaction(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel rocket_initial_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052A9C +.word 0x3c360b61 /*0.011111111*/ +glabel D_80052AA0 +.word 0x3d8f5c29 /*0.07*/ +glabel prop_projectile_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052AA8 +.word 0x400e38e4 /*2.2222223*/ +glabel D_80052AAC +.word 0x46d9038c /*27777.773*/ +glabel D_80052AB0 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052AB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052AB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052ABC +.word 0x3dcccccd /*0.1*/ +glabel D_80052AC0 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC4 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052ACC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052AD4 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052AD8 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_80052ADC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AE0 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE4 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AEC +.word 0x37433637 /*0.000011635529*/ +glabel D_80052AF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AF4 +.word 0x3a3702d4 /*0.00069813174*/ +glabel D_80052AF8 +.word 0x36c33637 /*0.0000058177643*/ +glabel D_80052AFC +.word 0x39b702d4 /*0.00034906587*/ +glabel D_80052B00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B0C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B10 +.word 0x3f9c61ab /*1.2217306*/ +glabel D_80052B14 +.word 0xbf9c61ab /*-1.2217306*/ +glabel D_80052B18 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B1C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B24 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80052B28 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B30 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B34 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B38 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B3C +.word 0x3f1930a7 /*0.59839863*/ +glabel D_80052B40 +.word 0x3c236719 /*0.0099733109*/ +glabel D_80052B44 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80052B48 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80052B4C +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B50 +.word 0x3bd67750 /*0.0065449849*/ +glabel D_80052B54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B58 +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B5C +.word 0xb964c389 /*-0.00021816617*/ +glabel D_80052B60 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B68 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B6C +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B70 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B74 +.word 0x3e23d70a /*0.16*/ +glabel D_80052B78 +.word 0x461c4000 /*10000.0*/ +glabel D_80052B7C +.word 0x453b8000 /*3000.0*/ +glabel D_80052B80 +.word 0x3f19999a /*0.60000002*/ +glabel D_80052B84 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B88 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052B8C +.word 0x3e4ccccd /*0.2*/ +glabel D_80052B90 +.word 0x453b8000 /*3000.0*/ +glabel D_80052B94 +.word 0x453b8000 /*3000.0*/ +.text +glabel object_interaction +/* 079E04 7F0452D4 27BDF958 */ addiu $sp, $sp, -0x6a8 +/* 079E08 7F0452D8 AFBF0054 */ sw $ra, 0x54($sp) +/* 079E0C 7F0452DC AFB40050 */ sw $s4, 0x50($sp) +/* 079E10 7F0452E0 AFB3004C */ sw $s3, 0x4c($sp) +/* 079E14 7F0452E4 AFB20048 */ sw $s2, 0x48($sp) +/* 079E18 7F0452E8 AFB10044 */ sw $s1, 0x44($sp) +/* 079E1C 7F0452EC AFB00040 */ sw $s0, 0x40($sp) +/* 079E20 7F0452F0 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 079E24 7F0452F4 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 079E28 7F0452F8 8C910004 */ lw $s1, 4($a0) +/* 079E2C 7F0452FC 4480B000 */ mtc1 $zero, $f22 +/* 079E30 7F045300 00809825 */ move $s3, $a0 +/* 079E34 7F045304 8E340014 */ lw $s4, 0x14($s1) +/* 079E38 7F045308 AFA00690 */ sw $zero, 0x690($sp) +/* 079E3C 7F04530C AFA00680 */ sw $zero, 0x680($sp) +/* 079E40 7F045310 0FC26919 */ jal get_num_players +/* 079E44 7F045314 E7B6067C */ swc1 $f22, 0x67c($sp) +/* 079E48 7F045318 240C0001 */ li $t4, 1 +/* 079E4C 7F04531C AFA20674 */ sw $v0, 0x674($sp) +/* 079E50 7F045320 AFAC0670 */ sw $t4, 0x670($sp) +/* 079E54 7F045324 8E230064 */ lw $v1, 0x64($s1) +/* 079E58 7F045328 306E0004 */ andi $t6, $v1, 4 +/* 079E5C 7F04532C 11C00009 */ beqz $t6, .L7F045354 +/* 079E60 7F045330 306F0008 */ andi $t7, $v1, 8 +/* 079E64 7F045334 92260002 */ lbu $a2, 2($s1) +/* 079E68 7F045338 02202025 */ move $a0, $s1 +/* 079E6C 7F04533C 00002825 */ move $a1, $zero +/* 079E70 7F045340 30CD0004 */ andi $t5, $a2, 4 +/* 079E74 7F045344 0FC10366 */ jal sub_GAME_7F040D98 +/* 079E78 7F045348 01A03025 */ move $a2, $t5 +/* 079E7C 7F04534C 100011F8 */ b .L7F049B30 +/* 079E80 7F045350 24020001 */ li $v0, 1 +.L7F045354: +/* 079E84 7F045354 11E00005 */ beqz $t7, .L7F04536C +/* 079E88 7F045358 30680080 */ andi $t0, $v1, 0x80 +/* 079E8C 7F04535C 2401FFF7 */ li $at, -9 +/* 079E90 7F045360 0061C024 */ and $t8, $v1, $at +/* 079E94 7F045364 1000000B */ b .L7F045394 +/* 079E98 7F045368 AE380064 */ sw $t8, 0x64($s1) +.L7F04536C: +/* 079E9C 7F04536C 5100000A */ beql $t0, $zero, .L7F045398 +/* 079EA0 7F045370 24010001 */ li $at, 1 +/* 079EA4 7F045374 92690001 */ lbu $t1, 1($s3) +/* 079EA8 7F045378 24020003 */ li $v0, 3 +/* 079EAC 7F04537C 312BFFFD */ andi $t3, $t1, 0xfffd +/* 079EB0 7F045380 A26B0001 */ sb $t3, 1($s3) +/* 079EB4 7F045384 8E390064 */ lw $t9, 0x64($s1) +/* 079EB8 7F045388 372A0008 */ ori $t2, $t9, 8 +/* 079EBC 7F04538C 100011E8 */ b .L7F049B30 +/* 079EC0 7F045390 AE2A0064 */ sw $t2, 0x64($s1) +.L7F045394: +/* 079EC4 7F045394 24010001 */ li $at, 1 +.L7F045398: +/* 079EC8 7F045398 14410003 */ bne $v0, $at, .L7F0453A8 +/* 079ECC 7F04539C 240C0001 */ li $t4, 1 +/* 079ED0 7F0453A0 10000015 */ b .L7F0453F8 +/* 079ED4 7F0453A4 AFAC0678 */ sw $t4, 0x678($sp) +.L7F0453A8: +/* 079ED8 7F0453A8 0FC26C54 */ jal get_cur_playernum +/* 079EDC 7F0453AC 00000000 */ nop +/* 079EE0 7F0453B0 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 079EE4 7F0453B4 00402025 */ move $a0, $v0 +/* 079EE8 7F0453B8 2C4E0001 */ sltiu $t6, $v0, 1 +/* 079EEC 7F0453BC AFAE0678 */ sw $t6, 0x678($sp) +/* 079EF0 7F0453C0 8E2D0064 */ lw $t5, 0x64($s1) +/* 079EF4 7F0453C4 31AF0080 */ andi $t7, $t5, 0x80 +/* 079EF8 7F0453C8 51E0000C */ beql $t7, $zero, .L7F0453FC +/* 079EFC 7F0453CC 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F00 7F0453D0 8E22006C */ lw $v0, 0x6c($s1) +/* 079F04 7F0453D4 3C188008 */ lui $t8, %hi(pPlayer) +/* 079F08 7F0453D8 8C430088 */ lw $v1, 0x88($v0) +/* 079F0C 7F0453DC 50600007 */ beql $v1, $zero, .L7F0453FC +/* 079F10 7F0453E0 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F14 7F0453E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 079F18 7F0453E8 8F0800A8 */ lw $t0, 0xa8($t8) +/* 079F1C 7F0453EC 01034826 */ xor $t1, $t0, $v1 +/* 079F20 7F0453F0 2D290001 */ sltiu $t1, $t1, 1 +/* 079F24 7F0453F4 AFA90678 */ sw $t1, 0x678($sp) +.L7F0453F8: +/* 079F28 7F0453F8 8FAB0678 */ lw $t3, 0x678($sp) +.L7F0453FC: +/* 079F2C 7F0453FC 51600B8C */ beql $t3, $zero, .L7F048230 +/* 079F30 7F045400 92220003 */ lbu $v0, 3($s1) +/* 079F34 7F045404 8E390064 */ lw $t9, 0x64($s1) +/* 079F38 7F045408 332A0080 */ andi $t2, $t9, 0x80 +/* 079F3C 7F04540C 51400483 */ beql $t2, $zero, .L7F04661C +/* 079F40 7F045410 8FAD0690 */ lw $t5, 0x690($sp) +/* 079F44 7F045414 8E30006C */ lw $s0, 0x6c($s1) +/* 079F48 7F045418 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 079F4C 7F04541C 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 079F50 7F045420 8E0C00E0 */ lw $t4, 0xe0($s0) +/* 079F54 7F045424 018E6821 */ addu $t5, $t4, $t6 +/* 079F58 7F045428 29A10961 */ slti $at, $t5, 0x961 +/* 079F5C 7F04542C 14200004 */ bnez $at, .L7F045440 +/* 079F60 7F045430 AE0D00E0 */ sw $t5, 0xe0($s0) +/* 079F64 7F045434 8E380064 */ lw $t8, 0x64($s1) +/* 079F68 7F045438 37080004 */ ori $t0, $t8, 4 +/* 079F6C 7F04543C AE280064 */ sw $t0, 0x64($s1) +.L7F045440: +/* 079F70 7F045440 8E090000 */ lw $t1, ($s0) +/* 079F74 7F045444 312B0100 */ andi $t3, $t1, 0x100 +/* 079F78 7F045448 5160002F */ beql $t3, $zero, .L7F045508 +/* 079F7C 7F04544C C6260058 */ lwc1 $f6, 0x58($s1) +/* 079F80 7F045450 92390003 */ lbu $t9, 3($s1) +/* 079F84 7F045454 24010008 */ li $at, 8 +/* 079F88 7F045458 24120001 */ li $s2, 1 +/* 079F8C 7F04545C 57210008 */ bnel $t9, $at, .L7F045480 +/* 079F90 7F045460 8E040088 */ lw $a0, 0x88($s0) +/* 079F94 7F045464 AFB10648 */ sw $s1, 0x648($sp) +/* 079F98 7F045468 822A0080 */ lb $t2, 0x80($s1) +/* 079F9C 7F04546C 24010056 */ li $at, 86 +/* 079FA0 7F045470 55410003 */ bnel $t2, $at, .L7F045480 +/* 079FA4 7F045474 8E040088 */ lw $a0, 0x88($s0) +/* 079FA8 7F045478 00009025 */ move $s2, $zero +/* 079FAC 7F04547C 8E040088 */ lw $a0, 0x88($s0) +.L7F045480: +/* 079FB0 7F045480 50800004 */ beql $a0, $zero, .L7F045494 +/* 079FB4 7F045484 02202025 */ move $a0, $s1 +/* 079FB8 7F045488 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FBC 7F04548C 00002825 */ move $a1, $zero +/* 079FC0 7F045490 02202025 */ move $a0, $s1 +.L7F045494: +/* 079FC4 7F045494 260500D4 */ addiu $a1, $s0, 0xd4 +/* 079FC8 7F045498 27A6064C */ addiu $a2, $sp, 0x64c +/* 079FCC 7F04549C 27A70658 */ addiu $a3, $sp, 0x658 +/* 079FD0 7F0454A0 AFA00010 */ sw $zero, 0x10($sp) +/* 079FD4 7F0454A4 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 079FD8 7F0454A8 AFB20014 */ sw $s2, 0x14($sp) +/* 079FDC 7F0454AC AFA20664 */ sw $v0, 0x664($sp) +/* 079FE0 7F0454B0 8E040088 */ lw $a0, 0x88($s0) +/* 079FE4 7F0454B4 50800004 */ beql $a0, $zero, .L7F0454C8 +/* 079FE8 7F0454B8 8FAC0664 */ lw $t4, 0x664($sp) +/* 079FEC 7F0454BC 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FF0 7F0454C0 24050001 */ li $a1, 1 +/* 079FF4 7F0454C4 8FAC0664 */ lw $t4, 0x664($sp) +.L7F0454C8: +/* 079FF8 7F0454C8 24010001 */ li $at, 1 +/* 079FFC 7F0454CC 8FA20648 */ lw $v0, 0x648($sp) +/* 07A000 7F0454D0 51810009 */ beql $t4, $at, .L7F0454F8 +/* 07A004 7F0454D4 8E0D0000 */ lw $t5, ($s0) +/* 07A008 7F0454D8 50400007 */ beql $v0, $zero, .L7F0454F8 +/* 07A00C 7F0454DC 8E0D0000 */ lw $t5, ($s0) +/* 07A010 7F0454E0 804E0080 */ lb $t6, 0x80($v0) +/* 07A014 7F0454E4 24010056 */ li $at, 86 +/* 07A018 7F0454E8 55C10003 */ bnel $t6, $at, .L7F0454F8 +/* 07A01C 7F0454EC 8E0D0000 */ lw $t5, ($s0) +/* 07A020 7F0454F0 A4400082 */ sh $zero, 0x82($v0) +/* 07A024 7F0454F4 8E0D0000 */ lw $t5, ($s0) +.L7F0454F8: +/* 07A028 7F0454F8 2401FEFF */ li $at, -257 +/* 07A02C 7F0454FC 01A17824 */ and $t7, $t5, $at +/* 07A030 7F045500 AE0F0000 */ sw $t7, ($s0) +/* 07A034 7F045504 C6260058 */ lwc1 $f6, 0x58($s1) +.L7F045508: +/* 07A038 7F045508 3C188005 */ lui $t8, %hi(clock_timer) +/* 07A03C 7F04550C 3C013F80 */ lui $at, 0x3f80 +/* 07A040 7F045510 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07A044 7F045514 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A048 7F045518 E7AA0698 */ swc1 $f10, 0x698($sp) +/* 07A04C 7F04551C C6240060 */ lwc1 $f4, 0x60($s1) +/* 07A050 7F045520 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07A054 7F045524 8E0200BC */ lw $v0, 0xbc($s0) +/* 07A058 7F045528 58400005 */ blezl $v0, .L7F045540 +/* 07A05C 7F04552C 8E29006C */ lw $t1, 0x6c($s1) +/* 07A060 7F045530 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07A064 7F045534 00584023 */ subu $t0, $v0, $t8 +/* 07A068 7F045538 AE0800BC */ sw $t0, 0xbc($s0) +/* 07A06C 7F04553C 8E29006C */ lw $t1, 0x6c($s1) +.L7F045540: +/* 07A070 7F045540 8D2B0000 */ lw $t3, ($t1) +/* 07A074 7F045544 31790001 */ andi $t9, $t3, 1 +/* 07A078 7F045548 53200351 */ beql $t9, $zero, .L7F046290 +/* 07A07C 7F04554C C6000060 */ lwc1 $f0, 0x60($s0) +/* 07A080 7F045550 0FC1001E */ jal sub_GAME_7F040078 +/* 07A084 7F045554 02202025 */ move $a0, $s1 +/* 07A088 7F045558 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A08C 7F04555C 44814000 */ mtc1 $at, $f8 +/* 07A090 7F045560 3C078005 */ lui $a3, %hi(clock_timer) +/* 07A094 7F045564 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 07A098 7F045568 AFA20640 */ sw $v0, 0x640($sp) +/* 07A09C 7F04556C AFA00610 */ sw $zero, 0x610($sp) +/* 07A0A0 7F045570 AFA0060C */ sw $zero, 0x60c($sp) +/* 07A0A4 7F045574 AFA00604 */ sw $zero, 0x604($sp) +/* 07A0A8 7F045578 E7A80638 */ swc1 $f8, 0x638($sp) +/* 07A0AC 7F04557C 8E0A00A8 */ lw $t2, 0xa8($s0) +/* 07A0B0 7F045580 8CEC0000 */ lw $t4, ($a3) +/* 07A0B4 7F045584 C634005C */ lwc1 $f20, 0x5c($s1) +/* 07A0B8 7F045588 00009025 */ move $s2, $zero +/* 07A0BC 7F04558C 014C7021 */ addu $t6, $t2, $t4 +/* 07A0C0 7F045590 AE0E00A8 */ sw $t6, 0xa8($s0) +/* 07A0C4 7F045594 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07A0C8 7F045598 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) +/* 07A0CC 7F04559C E7A6062C */ swc1 $f6, 0x62c($sp) +/* 07A0D0 7F0455A0 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 07A0D4 7F0455A4 E7AA0630 */ swc1 $f10, 0x630($sp) +/* 07A0D8 7F0455A8 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07A0DC 7F0455AC E7A40634 */ swc1 $f4, 0x634($sp) +/* 07A0E0 7F0455B0 8E030000 */ lw $v1, ($s0) +/* 07A0E4 7F0455B4 306D0020 */ andi $t5, $v1, 0x20 +/* 07A0E8 7F0455B8 11A0004B */ beqz $t5, .L7F0456E8 +/* 07A0EC 7F0455BC 00000000 */ nop +/* 07A0F0 7F0455C0 C4322A98 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) +/* 07A0F4 7F0455C4 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A0F8 7F0455C8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A0FC 7F0455CC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A100 7F0455D0 4612003C */ c.lt.s $f0, $f18 +/* 07A104 7F0455D4 00000000 */ nop +/* 07A108 7F0455D8 4502001C */ bc1fl .L7F04564C +/* 07A10C 7F0455DC C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 07A110 7F0455E0 C6080014 */ lwc1 $f8, 0x14($s0) +/* 07A114 7F0455E4 C4460000 */ lwc1 $f6, ($v0) +/* 07A118 7F0455E8 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 07A11C 7F0455EC 3C018005 */ lui $at, %hi(D_80052A9C) +/* 07A120 7F0455F0 46064282 */ mul.s $f10, $f8, $f6 +/* 07A124 7F0455F4 460A2200 */ add.s $f8, $f4, $f10 +/* 07A128 7F0455F8 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07A12C 7F0455FC C4440000 */ lwc1 $f4, ($v0) +/* 07A130 7F045600 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A134 7F045604 C60800B0 */ lwc1 $f8, 0xb0($s0) +/* 07A138 7F045608 46043282 */ mul.s $f10, $f6, $f4 +/* 07A13C 7F04560C 460A4180 */ add.s $f6, $f8, $f10 +/* 07A140 7F045610 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07A144 7F045614 C4480000 */ lwc1 $f8, ($v0) +/* 07A148 7F045618 C4242A9C */ lwc1 $f4, %lo(D_80052A9C)($at) +/* 07A14C 7F04561C 46082282 */ mul.s $f10, $f4, $f8 +/* 07A150 7F045620 460A0180 */ add.s $f6, $f0, $f10 +/* 07A154 7F045624 E606001C */ swc1 $f6, 0x1c($s0) +/* 07A158 7F045628 C604001C */ lwc1 $f4, 0x1c($s0) +/* 07A15C 7F04562C 4604903C */ c.lt.s $f18, $f4 +/* 07A160 7F045630 00000000 */ nop +/* 07A164 7F045634 45000002 */ bc1f .L7F045640 +/* 07A168 7F045638 00000000 */ nop +/* 07A16C 7F04563C E612001C */ swc1 $f18, 0x1c($s0) +.L7F045640: +/* 07A170 7F045640 10000029 */ b .L7F0456E8 +/* 07A174 7F045644 8E030000 */ lw $v1, ($s0) +/* 07A178 7F045648 C60000B0 */ lwc1 $f0, 0xb0($s0) +.L7F04564C: +/* 07A17C 7F04564C C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A180 7F045650 4600403C */ c.lt.s $f8, $f0 +/* 07A184 7F045654 00000000 */ nop +/* 07A188 7F045658 45000019 */ bc1f .L7F0456C0 +/* 07A18C 7F04565C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A190 7F045660 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07A194 7F045664 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07A198 7F045668 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 07A19C 7F04566C 46065102 */ mul.s $f4, $f10, $f6 +/* 07A1A0 7F045670 46044280 */ add.s $f10, $f8, $f4 +/* 07A1A4 7F045674 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 07A1A8 7F045678 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07A1AC 7F04567C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A1B0 7F045680 3C018005 */ lui $at, %hi(D_80052AA0) +/* 07A1B4 7F045684 46083102 */ mul.s $f4, $f6, $f8 +/* 07A1B8 7F045688 46040280 */ add.s $f10, $f0, $f4 +/* 07A1BC 7F04568C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07A1C0 7F045690 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A1C4 7F045694 C60600B0 */ lwc1 $f6, 0xb0($s0) +/* 07A1C8 7F045698 C42A2AA0 */ lwc1 $f10, %lo(D_80052AA0)($at) +/* 07A1CC 7F04569C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A1D0 7F0456A0 46083101 */ sub.s $f4, $f6, $f8 +/* 07A1D4 7F0456A4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A1D8 7F0456A8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07A1DC 7F0456AC 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A1E0 7F0456B0 46044180 */ add.s $f6, $f8, $f4 +/* 07A1E4 7F0456B4 E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A1E8 7F0456B8 1000000B */ b .L7F0456E8 +/* 07A1EC 7F0456BC 8E030000 */ lw $v1, ($s0) +.L7F0456C0: +/* 07A1F0 7F0456C0 E7A00698 */ swc1 $f0, 0x698($sp) +/* 07A1F4 7F0456C4 8E0F0000 */ lw $t7, ($s0) +/* 07A1F8 7F0456C8 2401FFDF */ li $at, -33 +/* 07A1FC 7F0456CC C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 07A200 7F0456D0 01E1C024 */ and $t8, $t7, $at +/* 07A204 7F0456D4 AE180000 */ sw $t8, ($s0) +/* 07A208 7F0456D8 37030010 */ ori $v1, $t8, 0x10 +/* 07A20C 7F0456DC E616001C */ swc1 $f22, 0x1c($s0) +/* 07A210 7F0456E0 AE030000 */ sw $v1, ($s0) +/* 07A214 7F0456E4 E60A0008 */ swc1 $f10, 8($s0) +.L7F0456E8: +/* 07A218 7F0456E8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A21C 7F0456EC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A220 7F0456F0 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) +/* 07A224 7F0456F4 306B0010 */ andi $t3, $v1, 0x10 +/* 07A228 7F0456F8 C4322AA4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) +/* 07A22C 7F0456FC C4420000 */ lwc1 $f2, ($v0) +/* 07A230 7F045700 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A234 7F045704 15600015 */ bnez $t3, .L7F04575C +/* 07A238 7F045708 C6100014 */ lwc1 $f16, 0x14($s0) +/* 07A23C 7F04570C 46008100 */ add.s $f4, $f16, $f0 +/* 07A240 7F045710 C6080008 */ lwc1 $f8, 8($s0) +/* 07A244 7F045714 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A248 7F045718 46022182 */ mul.s $f6, $f4, $f2 +/* 07A24C 7F04571C 46064280 */ add.s $f10, $f8, $f6 +/* 07A250 7F045720 E60A0008 */ swc1 $f10, 8($s0) +/* 07A254 7F045724 C4420000 */ lwc1 $f2, ($v0) +/* 07A258 7F045728 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A25C 7F04572C 44815000 */ mtc1 $at, $f10 +/* 07A260 7F045730 46029102 */ mul.s $f4, $f18, $f2 +/* 07A264 7F045734 46046381 */ sub.s $f14, $f12, $f4 +/* 07A268 7F045738 460E6200 */ add.s $f8, $f12, $f14 +/* 07A26C 7F04573C 46081182 */ mul.s $f6, $f2, $f8 +/* 07A270 7F045740 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A274 7F045744 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A278 7F045748 46044180 */ add.s $f6, $f8, $f4 +/* 07A27C 7F04574C E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A280 7F045750 E60E0008 */ swc1 $f14, 8($s0) +/* 07A284 7F045754 1000000C */ b .L7F045788 +/* 07A288 7F045758 C4420000 */ lwc1 $f2, ($v0) +.L7F04575C: +/* 07A28C 7F04575C 46008200 */ add.s $f8, $f16, $f0 +/* 07A290 7F045760 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A294 7F045764 46024102 */ mul.s $f4, $f8, $f2 +/* 07A298 7F045768 46045180 */ add.s $f6, $f10, $f4 +/* 07A29C 7F04576C E6060008 */ swc1 $f6, 8($s0) +/* 07A2A0 7F045770 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A2A4 7F045774 C4420000 */ lwc1 $f2, ($v0) +/* 07A2A8 7F045778 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A2AC 7F04577C 46025102 */ mul.s $f4, $f10, $f2 +/* 07A2B0 7F045780 46044180 */ add.s $f6, $f8, $f4 +/* 07A2B4 7F045784 E7A60698 */ swc1 $f6, 0x698($sp) +.L7F045788: +/* 07A2B8 7F045788 C6080010 */ lwc1 $f8, 0x10($s0) +/* 07A2BC 7F04578C C60A0004 */ lwc1 $f10, 4($s0) +/* 07A2C0 7F045790 26240018 */ addiu $a0, $s1, 0x18 +/* 07A2C4 7F045794 46024102 */ mul.s $f4, $f8, $f2 +/* 07A2C8 7F045798 C6080018 */ lwc1 $f8, 0x18($s0) +/* 07A2CC 7F04579C 26050020 */ addiu $a1, $s0, 0x20 +/* 07A2D0 7F0457A0 46045180 */ add.s $f6, $f10, $f4 +/* 07A2D4 7F0457A4 E6060004 */ swc1 $f6, 4($s0) +/* 07A2D8 7F0457A8 C44A0000 */ lwc1 $f10, ($v0) +/* 07A2DC 7F0457AC C606000C */ lwc1 $f6, 0xc($s0) +/* 07A2E0 7F0457B0 460A4102 */ mul.s $f4, $f8, $f10 +/* 07A2E4 7F0457B4 46043200 */ add.s $f8, $f6, $f4 +/* 07A2E8 7F0457B8 C6060004 */ lwc1 $f6, 4($s0) +/* 07A2EC 7F0457BC E608000C */ swc1 $f8, 0xc($s0) +/* 07A2F0 7F0457C0 C4420000 */ lwc1 $f2, ($v0) +/* 07A2F4 7F0457C4 C7AA0694 */ lwc1 $f10, 0x694($sp) +/* 07A2F8 7F0457C8 8CE60000 */ lw $a2, ($a3) +/* 07A2FC 7F0457CC 46023102 */ mul.s $f4, $f6, $f2 +/* 07A300 7F0457D0 C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07A304 7F0457D4 46045200 */ add.s $f8, $f10, $f4 +/* 07A308 7F0457D8 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07A30C 7F0457DC C60A000C */ lwc1 $f10, 0xc($s0) +/* 07A310 7F0457E0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07A314 7F0457E4 AFA40070 */ sw $a0, 0x70($sp) +/* 07A318 7F0457E8 46025102 */ mul.s $f4, $f10, $f2 +/* 07A31C 7F0457EC 46043200 */ add.s $f8, $f6, $f4 +/* 07A320 7F0457F0 0FC15F7E */ jal sub_GAME_7F057DF8 +/* 07A324 7F0457F4 E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07A328 7F0457F8 92390003 */ lbu $t9, 3($s1) +/* 07A32C 7F0457FC 24010008 */ li $at, 8 +/* 07A330 7F045800 57210013 */ bnel $t9, $at, .L7F045850 +/* 07A334 7F045804 8E040088 */ lw $a0, 0x88($s0) +/* 07A338 7F045808 82220080 */ lb $v0, 0x80($s1) +/* 07A33C 7F04580C 2401001D */ li $at, 29 +/* 07A340 7F045810 1041000D */ beq $v0, $at, .L7F045848 +/* 07A344 7F045814 2401001B */ li $at, 27 +/* 07A348 7F045818 1041000B */ beq $v0, $at, .L7F045848 +/* 07A34C 7F04581C 2401001C */ li $at, 28 +/* 07A350 7F045820 10410009 */ beq $v0, $at, .L7F045848 +/* 07A354 7F045824 24010021 */ li $at, 33 +/* 07A358 7F045828 10410007 */ beq $v0, $at, .L7F045848 +/* 07A35C 7F04582C 2401002F */ li $at, 47 +/* 07A360 7F045830 10410005 */ beq $v0, $at, .L7F045848 +/* 07A364 7F045834 24010030 */ li $at, 48 +/* 07A368 7F045838 10410003 */ beq $v0, $at, .L7F045848 +/* 07A36C 7F04583C 24010022 */ li $at, 34 +/* 07A370 7F045840 54410003 */ bnel $v0, $at, .L7F045850 +/* 07A374 7F045844 8E040088 */ lw $a0, 0x88($s0) +.L7F045848: +/* 07A378 7F045848 24120001 */ li $s2, 1 +/* 07A37C 7F04584C 8E040088 */ lw $a0, 0x88($s0) +.L7F045850: +/* 07A380 7F045850 50800004 */ beql $a0, $zero, .L7F045864 +/* 07A384 7F045854 02202025 */ move $a0, $s1 +/* 07A388 7F045858 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A38C 7F04585C 00002825 */ move $a1, $zero +/* 07A390 7F045860 02202025 */ move $a0, $s1 +.L7F045864: +/* 07A394 7F045864 27A50694 */ addiu $a1, $sp, 0x694 +/* 07A398 7F045868 27A60614 */ addiu $a2, $sp, 0x614 +/* 07A39C 7F04586C 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A3A0 7F045870 AFB20010 */ sw $s2, 0x10($sp) +/* 07A3A4 7F045874 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07A3A8 7F045878 AFA00014 */ sw $zero, 0x14($sp) +/* 07A3AC 7F04587C AFA20664 */ sw $v0, 0x664($sp) +/* 07A3B0 7F045880 8E040088 */ lw $a0, 0x88($s0) +/* 07A3B4 7F045884 50800004 */ beql $a0, $zero, .L7F045898 +/* 07A3B8 7F045888 8FAC0664 */ lw $t4, 0x664($sp) +/* 07A3BC 7F04588C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A3C0 7F045890 24050001 */ li $a1, 1 +/* 07A3C4 7F045894 8FAC0664 */ lw $t4, 0x664($sp) +.L7F045898: +/* 07A3C8 7F045898 240A0001 */ li $t2, 1 +/* 07A3CC 7F04589C 24010002 */ li $at, 2 +/* 07A3D0 7F0458A0 15810042 */ bne $t4, $at, .L7F0459AC +/* 07A3D4 7F0458A4 AFAA0690 */ sw $t2, 0x690($sp) +/* 07A3D8 7F0458A8 3C038003 */ lui $v1, %hi(D_80030B0C) +/* 07A3DC 7F0458AC 8C630B0C */ lw $v1, %lo(D_80030B0C)($v1) +/* 07A3E0 7F0458B0 10600007 */ beqz $v1, .L7F0458D0 +/* 07A3E4 7F0458B4 00000000 */ nop +/* 07A3E8 7F0458B8 90620000 */ lbu $v0, ($v1) +/* 07A3EC 7F0458BC 24010003 */ li $at, 3 +/* 07A3F0 7F0458C0 1041003A */ beq $v0, $at, .L7F0459AC +/* 07A3F4 7F0458C4 24010006 */ li $at, 6 +/* 07A3F8 7F0458C8 50410039 */ beql $v0, $at, .L7F0459B0 +/* 07A3FC 7F0458CC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0458D0: +/* 07A400 7F0458D0 10600007 */ beqz $v1, .L7F0458F0 +/* 07A404 7F0458D4 00002025 */ move $a0, $zero +/* 07A408 7F0458D8 8C620004 */ lw $v0, 4($v1) +/* 07A40C 7F0458DC 8C4E0064 */ lw $t6, 0x64($v0) +/* 07A410 7F0458E0 31CD0080 */ andi $t5, $t6, 0x80 +/* 07A414 7F0458E4 11A00002 */ beqz $t5, .L7F0458F0 +/* 07A418 7F0458E8 00000000 */ nop +/* 07A41C 7F0458EC 24040001 */ li $a0, 1 +.L7F0458F0: +/* 07A420 7F0458F0 5480002F */ bnezl $a0, .L7F0459B0 +/* 07A424 7F0458F4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A428 7F0458F8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07A42C 7F0458FC 02002025 */ move $a0, $s0 +/* 07A430 7F045900 8E2F0064 */ lw $t7, 0x64($s1) +/* 07A434 7F045904 2401FF7F */ li $at, -129 +/* 07A438 7F045908 AE20006C */ sw $zero, 0x6c($s1) +/* 07A43C 7F04590C 01E1C024 */ and $t8, $t7, $at +/* 07A440 7F045910 AE380064 */ sw $t8, 0x64($s1) +/* 07A444 7F045914 92620001 */ lbu $v0, 1($s3) +/* 07A448 7F045918 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07A44C 7F04591C 240500F1 */ li $a1, 241 +/* 07A450 7F045920 30480008 */ andi $t0, $v0, 8 +/* 07A454 7F045924 11000003 */ beqz $t0, .L7F045934 +/* 07A458 7F045928 00003025 */ move $a2, $zero +/* 07A45C 7F04592C 34490010 */ ori $t1, $v0, 0x10 +/* 07A460 7F045930 A2690001 */ sb $t1, 1($s3) +.L7F045934: +/* 07A464 7F045934 0C002382 */ jal play_sfx_a1 +/* 07A468 7F045938 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A46C 7F04593C 00402025 */ move $a0, $v0 +/* 07A470 7F045940 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07A474 7F045944 26650008 */ addiu $a1, $s3, 8 +/* 07A478 7F045948 8E6B0014 */ lw $t3, 0x14($s3) +/* 07A47C 7F04594C 82240080 */ lb $a0, 0x80($s1) +/* 07A480 7F045950 0FC15DFA */ jal sub_GAME_7F0577E8 +/* 07A484 7F045954 91650003 */ lbu $a1, 3($t3) +/* 07A488 7F045958 02202025 */ move $a0, $s1 +/* 07A48C 7F04595C 27A50614 */ addiu $a1, $sp, 0x614 +/* 07A490 7F045960 8E660014 */ lw $a2, 0x14($s3) +/* 07A494 7F045964 0FC10E6E */ jal sub_GAME_7F0439B8 +/* 07A498 7F045968 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A49C 7F04596C 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A4A0 7F045970 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A4A4 7F045974 02602025 */ move $a0, $s3 +/* 07A4A8 7F045978 3C068007 */ lui $a2, %hi(objinst) +/* 07A4AC 7F04597C 10A0000B */ beqz $a1, .L7F0459AC +/* 07A4B0 7F045980 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) +/* 07A4B4 7F045984 8E720014 */ lw $s2, 0x14($s3) +/* 07A4B8 7F045988 8CC65B70 */ lw $a2, %lo(objinst)($a2) +/* 07A4BC 7F04598C 0FC10E9B */ jal sub_GAME_7F043A6C +/* 07A4C0 7F045990 8CE75B74 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) +/* 07A4C4 7F045994 10400005 */ beqz $v0, .L7F0459AC +/* 07A4C8 7F045998 24190005 */ li $t9, 5 +/* 07A4CC 7F04599C AE720014 */ sw $s2, 0x14($s3) +/* 07A4D0 7F0459A0 240A0001 */ li $t2, 1 +/* 07A4D4 7F0459A4 AFB90680 */ sw $t9, 0x680($sp) +/* 07A4D8 7F0459A8 AFAA0604 */ sw $t2, 0x604($sp) +.L7F0459AC: +/* 07A4DC 7F0459AC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0459B0: +/* 07A4E0 7F0459B0 158000EC */ bnez $t4, .L7F045D64 +/* 07A4E4 7F0459B4 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A4E8 7F0459B8 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +/* 07A4EC 7F0459BC 524000EA */ beql $s2, $zero, .L7F045D68 +/* 07A4F0 7F0459C0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A4F4 7F0459C4 922E0003 */ lbu $t6, 3($s1) +/* 07A4F8 7F0459C8 24010008 */ li $at, 8 +/* 07A4FC 7F0459CC 55C100E6 */ bnel $t6, $at, .L7F045D68 +/* 07A500 7F0459D0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A504 7F0459D4 82220080 */ lb $v0, 0x80($s1) +/* 07A508 7F0459D8 24010003 */ li $at, 3 +/* 07A50C 7F0459DC 544100C3 */ bnel $v0, $at, .L7F045CEC +/* 07A510 7F0459E0 24010056 */ li $at, 86 +/* 07A514 7F0459E4 92420000 */ lbu $v0, ($s2) +/* 07A518 7F0459E8 24010003 */ li $at, 3 +/* 07A51C 7F0459EC 1041000D */ beq $v0, $at, .L7F045A24 +/* 07A520 7F0459F0 24010006 */ li $at, 6 +/* 07A524 7F0459F4 544100DC */ bnel $v0, $at, .L7F045D68 +/* 07A528 7F0459F8 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A52C 7F0459FC 8E4D0004 */ lw $t5, 4($s2) +/* 07A530 7F045A00 51A000D9 */ beql $t5, $zero, .L7F045D68 +/* 07A534 7F045A04 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A538 7F045A08 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07A53C 7F045A0C 02402025 */ move $a0, $s2 +/* 07A540 7F045A10 0FC26C54 */ jal get_cur_playernum +/* 07A544 7F045A14 00409025 */ move $s2, $v0 +/* 07A548 7F045A18 105200D2 */ beq $v0, $s2, .L7F045D64 +/* 07A54C 7F045A1C 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A550 7F045A20 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +.L7F045A24: +/* 07A554 7F045A24 8E22006C */ lw $v0, 0x6c($s1) +/* 07A558 7F045A28 8E440004 */ lw $a0, 4($s2) +/* 07A55C 7F045A2C 8C4F0000 */ lw $t7, ($v0) +/* 07A560 7F045A30 31F80001 */ andi $t8, $t7, 1 +/* 07A564 7F045A34 530000CC */ beql $t8, $zero, .L7F045D68 +/* 07A568 7F045A38 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A56C 7F045A3C 8C480090 */ lw $t0, 0x90($v0) +/* 07A570 7F045A40 5D0000C9 */ bgtzl $t0, .L7F045D68 +/* 07A574 7F045A44 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A578 7F045A48 8E290064 */ lw $t1, 0x64($s1) +/* 07A57C 7F045A4C 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) +/* 07A580 7F045A50 24C65B78 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5b78 +/* 07A584 7F045A54 312B0020 */ andi $t3, $t1, 0x20 +/* 07A588 7F045A58 116000C2 */ beqz $t3, .L7F045D64 +/* 07A58C 7F045A5C 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A590 7F045A60 82270080 */ lb $a3, 0x80($s1) +/* 07A594 7F045A64 24190001 */ li $t9, 1 +/* 07A598 7F045A68 AFB90010 */ sw $t9, 0x10($sp) +/* 07A59C 7F045A6C 0FC09C9F */ jal handles_shot_actors +/* 07A5A0 7F045A70 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A5A4 7F045A74 104000BB */ beqz $v0, .L7F045D64 +/* 07A5A8 7F045A78 240A0001 */ li $t2, 1 +/* 07A5AC 7F045A7C AFAA0604 */ sw $t2, 0x604($sp) +/* 07A5B0 7F045A80 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A5B4 7F045A84 C7AA0620 */ lwc1 $f10, 0x620($sp) +/* 07A5B8 7F045A88 4610B03C */ c.lt.s $f22, $f16 +/* 07A5BC 7F045A8C 00000000 */ nop +/* 07A5C0 7F045A90 4502001D */ bc1fl .L7F045B08 +/* 07A5C4 7F045A94 8E0C0000 */ lw $t4, ($s0) +/* 07A5C8 7F045A98 C6020004 */ lwc1 $f2, 4($s0) +/* 07A5CC 7F045A9C C60C0008 */ lwc1 $f12, 8($s0) +/* 07A5D0 7F045AA0 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A5D4 7F045AA4 460A1182 */ mul.s $f6, $f2, $f10 +/* 07A5D8 7F045AA8 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A5DC 7F045AAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A5E0 7F045AB0 46046202 */ mul.s $f8, $f12, $f4 +/* 07A5E4 7F045AB4 46083100 */ add.s $f4, $f6, $f8 +/* 07A5E8 7F045AB8 C7A60628 */ lwc1 $f6, 0x628($sp) +/* 07A5EC 7F045ABC 46003202 */ mul.s $f8, $f6, $f0 +/* 07A5F0 7F045AC0 44813000 */ mtc1 $at, $f6 +/* 07A5F4 7F045AC4 46044380 */ add.s $f14, $f8, $f4 +/* 07A5F8 7F045AC8 46068200 */ add.s $f8, $f16, $f6 +/* 07A5FC 7F045ACC 46004107 */ neg.s $f4, $f8 +/* 07A600 7F045AD0 46047382 */ mul.s $f14, $f14, $f4 +/* 07A604 7F045AD4 00000000 */ nop +/* 07A608 7F045AD8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A60C 7F045ADC 46061200 */ add.s $f8, $f2, $f6 +/* 07A610 7F045AE0 E6080004 */ swc1 $f8, 4($s0) +/* 07A614 7F045AE4 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A618 7F045AE8 46047282 */ mul.s $f10, $f14, $f4 +/* 07A61C 7F045AEC 460A6180 */ add.s $f6, $f12, $f10 +/* 07A620 7F045AF0 E6060008 */ swc1 $f6, 8($s0) +/* 07A624 7F045AF4 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A628 7F045AF8 46087102 */ mul.s $f4, $f14, $f8 +/* 07A62C 7F045AFC 46040280 */ add.s $f10, $f0, $f4 +/* 07A630 7F045B00 E60A000C */ swc1 $f10, 0xc($s0) +/* 07A634 7F045B04 8E0C0000 */ lw $t4, ($s0) +.L7F045B08: +/* 07A638 7F045B08 318E0200 */ andi $t6, $t4, 0x200 +/* 07A63C 7F045B0C 55C00004 */ bnezl $t6, .L7F045B20 +/* 07A640 7F045B10 8E0D0090 */ lw $t5, 0x90($s0) +/* 07A644 7F045B14 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A648 7F045B18 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A64C 7F045B1C 8E0D0090 */ lw $t5, 0x90($s0) +.L7F045B20: +/* 07A650 7F045B20 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A654 7F045B24 2406FFFF */ li $a2, -1 +/* 07A658 7F045B28 25AF0001 */ addiu $t7, $t5, 1 +/* 07A65C 7F045B2C AE0F0090 */ sw $t7, 0x90($s0) +/* 07A660 7F045B30 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A664 7F045B34 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07A668 7F045B38 82240080 */ lb $a0, 0x80($s1) +/* 07A66C 7F045B3C 3C188003 */ lui $t8, %hi(D_80030B0C) +/* 07A670 7F045B40 8F180B0C */ lw $t8, %lo(D_80030B0C)($t8) +/* 07A674 7F045B44 3C028003 */ lui $v0, %hi(bodypartshot) +/* 07A678 7F045B48 93080001 */ lbu $t0, 1($t8) +/* 07A67C 7F045B4C 31090002 */ andi $t1, $t0, 2 +/* 07A680 7F045B50 51200085 */ beql $t1, $zero, .L7F045D68 +/* 07A684 7F045B54 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A688 7F045B58 8C420B10 */ lw $v0, %lo(bodypartshot)($v0) +/* 07A68C 7F045B5C 24010064 */ li $at, 100 +/* 07A690 7F045B60 10410080 */ beq $v0, $at, .L7F045D64 +/* 07A694 7F045B64 2401006E */ li $at, 110 +/* 07A698 7F045B68 1041007E */ beq $v0, $at, .L7F045D64 +/* 07A69C 7F045B6C 3C048007 */ lui $a0, %hi(objinst) +/* 07A6A0 7F045B70 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6A4 7F045B74 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A6A8 7F045B78 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A6AC 7F045B7C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07A6B0 7F045B80 00003025 */ move $a2, $zero +/* 07A6B4 7F045B84 C7A60614 */ lwc1 $f6, 0x614($sp) +/* 07A6B8 7F045B88 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 07A6BC 7F045B8C C7A4061C */ lwc1 $f4, 0x61c($sp) +/* 07A6C0 7F045B90 00409025 */ move $s2, $v0 +/* 07A6C4 7F045B94 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A6C8 7F045B98 E7A805D0 */ swc1 $f8, 0x5d0($sp) +/* 07A6CC 7F045B9C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07A6D0 7F045BA0 E7A405D4 */ swc1 $f4, 0x5d4($sp) +/* 07A6D4 7F045BA4 00402025 */ move $a0, $v0 +/* 07A6D8 7F045BA8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A6DC 7F045BAC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A6E0 7F045BB0 C7AA05CC */ lwc1 $f10, 0x5cc($sp) +/* 07A6E4 7F045BB4 C6460030 */ lwc1 $f6, 0x30($s2) +/* 07A6E8 7F045BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A6EC 7F045BBC 44810000 */ mtc1 $at, $f0 +/* 07A6F0 7F045BC0 46065201 */ sub.s $f8, $f10, $f6 +/* 07A6F4 7F045BC4 3C048007 */ lui $a0, %hi(objinst) +/* 07A6F8 7F045BC8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6FC 7F045BCC 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A700 7F045BD0 46004102 */ mul.s $f4, $f8, $f0 +/* 07A704 7F045BD4 C7A805D0 */ lwc1 $f8, 0x5d0($sp) +/* 07A708 7F045BD8 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A70C 7F045BDC 46045180 */ add.s $f6, $f10, $f4 +/* 07A710 7F045BE0 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A714 7F045BE4 C64A0034 */ lwc1 $f10, 0x34($s2) +/* 07A718 7F045BE8 460A4101 */ sub.s $f4, $f8, $f10 +/* 07A71C 7F045BEC 46002182 */ mul.s $f6, $f4, $f0 +/* 07A720 7F045BF0 C7A405D4 */ lwc1 $f4, 0x5d4($sp) +/* 07A724 7F045BF4 46064280 */ add.s $f10, $f8, $f6 +/* 07A728 7F045BF8 E7AA05D0 */ swc1 $f10, 0x5d0($sp) +/* 07A72C 7F045BFC C6480038 */ lwc1 $f8, 0x38($s2) +/* 07A730 7F045C00 46082181 */ sub.s $f6, $f4, $f8 +/* 07A734 7F045C04 46003282 */ mul.s $f10, $f6, $f0 +/* 07A738 7F045C08 460A2200 */ add.s $f8, $f4, $f10 +/* 07A73C 7F045C0C 0FC1B3A4 */ jal getjointsize +/* 07A740 7F045C10 E7A805D4 */ swc1 $f8, 0x5d4($sp) +/* 07A744 7F045C14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A748 7F045C18 44813000 */ mtc1 $at, $f6 +/* 07A74C 7F045C1C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) +/* 07A750 7F045C20 C42A5B88 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) +/* 07A754 7F045C24 46060102 */ mul.s $f4, $f0, $f6 +/* 07A758 7F045C28 C7A605CC */ lwc1 $f6, 0x5cc($sp) +/* 07A75C 7F045C2C 3C048007 */ lui $a0, %hi(objinst) +/* 07A760 7F045C30 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A764 7F045C34 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A768 7F045C38 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A76C 7F045C3C 460A2202 */ mul.s $f8, $f4, $f10 +/* 07A770 7F045C40 46083101 */ sub.s $f4, $f6, $f8 +/* 07A774 7F045C44 0FC1B3A4 */ jal getjointsize +/* 07A778 7F045C48 E7A405CC */ swc1 $f4, 0x5cc($sp) +/* 07A77C 7F045C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A780 7F045C50 44815000 */ mtc1 $at, $f10 +/* 07A784 7F045C54 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B8C) +/* 07A788 7F045C58 C4285B8C */ lwc1 $f8, %lo(flt_CODE_bss_80075B8C)($at) +/* 07A78C 7F045C5C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07A790 7F045C60 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 07A794 7F045C64 3C048007 */ lui $a0, %hi(objinst) +/* 07A798 7F045C68 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A79C 7F045C6C 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A7A0 7F045C70 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A7A4 7F045C74 46083102 */ mul.s $f4, $f6, $f8 +/* 07A7A8 7F045C78 46045181 */ sub.s $f6, $f10, $f4 +/* 07A7AC 7F045C7C 0FC1B3A4 */ jal getjointsize +/* 07A7B0 7F045C80 E7A605D0 */ swc1 $f6, 0x5d0($sp) +/* 07A7B4 7F045C84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A7B8 7F045C88 44814000 */ mtc1 $at, $f8 +/* 07A7BC 7F045C8C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B90) +/* 07A7C0 7F045C90 C4245B90 */ lwc1 $f4, %lo(flt_CODE_bss_80075B90)($at) +/* 07A7C4 7F045C94 46080282 */ mul.s $f10, $f0, $f8 +/* 07A7C8 7F045C98 C7A805D4 */ lwc1 $f8, 0x5d4($sp) +/* 07A7CC 7F045C9C 02402025 */ move $a0, $s2 +/* 07A7D0 7F045CA0 27A5058C */ addiu $a1, $sp, 0x58c +/* 07A7D4 7F045CA4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A7D8 7F045CA8 46064281 */ sub.s $f10, $f8, $f6 +/* 07A7DC 7F045CAC 0FC16799 */ jal sub_GAME_7F059E64 +/* 07A7E0 7F045CB0 E7AA05D4 */ swc1 $f10, 0x5d4($sp) +/* 07A7E4 7F045CB4 27A4058C */ addiu $a0, $sp, 0x58c +/* 07A7E8 7F045CB8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A7EC 7F045CBC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A7F0 7F045CC0 3C048007 */ lui $a0, %hi(objinst) +/* 07A7F4 7F045CC4 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A7F8 7F045CC8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) +/* 07A7FC 7F045CCC 8CC65B74 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) +/* 07A800 7F045CD0 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A804 7F045CD4 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A808 7F045CD8 0FC08877 */ jal sub_GAME_7F0221DC +/* 07A80C 7F045CDC 27A705CC */ addiu $a3, $sp, 0x5cc +/* 07A810 7F045CE0 10000021 */ b .L7F045D68 +/* 07A814 7F045CE4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A818 7F045CE8 24010056 */ li $at, 86 +.L7F045CEC: +/* 07A81C 7F045CEC 5441001E */ bnel $v0, $at, .L7F045D68 +/* 07A820 7F045CF0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A824 7F045CF4 92420000 */ lbu $v0, ($s2) +/* 07A828 7F045CF8 240B0001 */ li $t3, 1 +/* 07A82C 7F045CFC 24010003 */ li $at, 3 +/* 07A830 7F045D00 14410008 */ bne $v0, $at, .L7F045D24 +/* 07A834 7F045D04 AFAB0604 */ sw $t3, 0x604($sp) +/* 07A838 7F045D08 8E440004 */ lw $a0, 4($s2) +/* 07A83C 7F045D0C 26250058 */ addiu $a1, $s1, 0x58 +/* 07A840 7F045D10 3C064000 */ lui $a2, 0x4000 +/* 07A844 7F045D14 0FC09E01 */ jal sub_GAME_7F027804 +/* 07A848 7F045D18 24070001 */ li $a3, 1 +/* 07A84C 7F045D1C 10000011 */ b .L7F045D64 +/* 07A850 7F045D20 A6200082 */ sh $zero, 0x82($s1) +.L7F045D24: +/* 07A854 7F045D24 24010001 */ li $at, 1 +/* 07A858 7F045D28 10410004 */ beq $v0, $at, .L7F045D3C +/* 07A85C 7F045D2C 3C0542C8 */ lui $a1, 0x42c8 +/* 07A860 7F045D30 24010004 */ li $at, 4 +/* 07A864 7F045D34 5441000B */ bnel $v0, $at, .L7F045D64 +/* 07A868 7F045D38 A6200082 */ sh $zero, 0x82($s1) +.L7F045D3C: +/* 07A86C 7F045D3C 8E220064 */ lw $v0, 0x64($s1) +/* 07A870 7F045D40 3C010006 */ lui $at, 6 +/* 07A874 7F045D44 8E440004 */ lw $a0, 4($s2) +/* 07A878 7F045D48 0041C824 */ and $t9, $v0, $at +/* 07A87C 7F045D4C 00195442 */ srl $t2, $t9, 0x11 +/* 07A880 7F045D50 AFAA0010 */ sw $t2, 0x10($sp) +/* 07A884 7F045D54 26260058 */ addiu $a2, $s1, 0x58 +/* 07A888 7F045D58 0FC13842 */ jal maybe_detonate_object +/* 07A88C 7F045D5C 24070056 */ li $a3, 86 +/* 07A890 7F045D60 A6200082 */ sh $zero, 0x82($s1) +.L7F045D64: +/* 07A894 7F045D64 8FAC0604 */ lw $t4, 0x604($sp) +.L7F045D68: +/* 07A898 7F045D68 5580010B */ bnezl $t4, .L7F046198 +/* 07A89C 7F045D6C 8E2A0064 */ lw $t2, 0x64($s1) +/* 07A8A0 7F045D70 8FAE0664 */ lw $t6, 0x664($sp) +/* 07A8A4 7F045D74 55C00031 */ bnezl $t6, .L7F045E3C +/* 07A8A8 7F045D78 8E0F0000 */ lw $t7, ($s0) +/* 07A8AC 7F045D7C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A8B0 7F045D80 C7A40620 */ lwc1 $f4, 0x620($sp) +/* 07A8B4 7F045D84 4610B03C */ c.lt.s $f22, $f16 +/* 07A8B8 7F045D88 00000000 */ nop +/* 07A8BC 7F045D8C 4502002B */ bc1fl .L7F045E3C +/* 07A8C0 7F045D90 8E0F0000 */ lw $t7, ($s0) +/* 07A8C4 7F045D94 C6020004 */ lwc1 $f2, 4($s0) +/* 07A8C8 7F045D98 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A8CC 7F045D9C C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A8D0 7F045DA0 46041202 */ mul.s $f8, $f2, $f4 +/* 07A8D4 7F045DA4 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A8D8 7F045DA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A8DC 7F045DAC 46066282 */ mul.s $f10, $f12, $f6 +/* 07A8E0 7F045DB0 4616603E */ c.le.s $f12, $f22 +/* 07A8E4 7F045DB4 460A4180 */ add.s $f6, $f8, $f10 +/* 07A8E8 7F045DB8 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A8EC 7F045DBC 46004282 */ mul.s $f10, $f8, $f0 +/* 07A8F0 7F045DC0 44814000 */ mtc1 $at, $f8 +/* 07A8F4 7F045DC4 46065380 */ add.s $f14, $f10, $f6 +/* 07A8F8 7F045DC8 46088280 */ add.s $f10, $f16, $f8 +/* 07A8FC 7F045DCC 46005187 */ neg.s $f6, $f10 +/* 07A900 7F045DD0 46067382 */ mul.s $f14, $f14, $f6 +/* 07A904 7F045DD4 00000000 */ nop +/* 07A908 7F045DD8 46047202 */ mul.s $f8, $f14, $f4 +/* 07A90C 7F045DDC 46081280 */ add.s $f10, $f2, $f8 +/* 07A910 7F045DE0 E60A0004 */ swc1 $f10, 4($s0) +/* 07A914 7F045DE4 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A918 7F045DE8 46067102 */ mul.s $f4, $f14, $f6 +/* 07A91C 7F045DEC 46046200 */ add.s $f8, $f12, $f4 +/* 07A920 7F045DF0 E6080008 */ swc1 $f8, 8($s0) +/* 07A924 7F045DF4 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 07A928 7F045DF8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A92C 7F045DFC 46060100 */ add.s $f4, $f0, $f6 +/* 07A930 7F045E00 4500000D */ bc1f .L7F045E38 +/* 07A934 7F045E04 E604000C */ swc1 $f4, 0xc($s0) +/* 07A938 7F045E08 C6080008 */ lwc1 $f8, 8($s0) +/* 07A93C 7F045E0C 240D0001 */ li $t5, 1 +/* 07A940 7F045E10 4608B03E */ c.le.s $f22, $f8 +/* 07A944 7F045E14 00000000 */ nop +/* 07A948 7F045E18 45030007 */ bc1tl .L7F045E38 +/* 07A94C 7F045E1C AFAD060C */ sw $t5, 0x60c($sp) +/* 07A950 7F045E20 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A954 7F045E24 460AA03E */ c.le.s $f20, $f10 +/* 07A958 7F045E28 00000000 */ nop +/* 07A95C 7F045E2C 45020003 */ bc1fl .L7F045E3C +/* 07A960 7F045E30 8E0F0000 */ lw $t7, ($s0) +/* 07A964 7F045E34 AFAD060C */ sw $t5, 0x60c($sp) +.L7F045E38: +/* 07A968 7F045E38 8E0F0000 */ lw $t7, ($s0) +.L7F045E3C: +/* 07A96C 7F045E3C C7B4063C */ lwc1 $f20, 0x63c($sp) +/* 07A970 7F045E40 31F80008 */ andi $t8, $t7, 8 +/* 07A974 7F045E44 17000014 */ bnez $t8, .L7F045E98 +/* 07A978 7F045E48 00000000 */ nop +/* 07A97C 7F045E4C 8E640014 */ lw $a0, 0x14($s3) +/* 07A980 7F045E50 8E650008 */ lw $a1, 8($s3) +/* 07A984 7F045E54 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07A988 7F045E58 8E660010 */ lw $a2, 0x10($s3) +/* 07A98C 7F045E5C 46000506 */ mov.s $f20, $f0 +/* 07A990 7F045E60 8FA40640 */ lw $a0, 0x640($sp) +/* 07A994 7F045E64 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07A998 7F045E68 8FA50070 */ lw $a1, 0x70($sp) +/* 07A99C 7F045E6C 4600A101 */ sub.s $f4, $f20, $f0 +/* 07A9A0 7F045E70 E7A00638 */ swc1 $f0, 0x638($sp) +/* 07A9A4 7F045E74 C666000C */ lwc1 $f6, 0xc($s3) +/* 07A9A8 7F045E78 00004025 */ move $t0, $zero +/* 07A9AC 7F045E7C 4604303C */ c.lt.s $f6, $f4 +/* 07A9B0 7F045E80 00000000 */ nop +/* 07A9B4 7F045E84 45000002 */ bc1f .L7F045E90 +/* 07A9B8 7F045E88 00000000 */ nop +/* 07A9BC 7F045E8C 24080001 */ li $t0, 1 +.L7F045E90: +/* 07A9C0 7F045E90 10000001 */ b .L7F045E98 +/* 07A9C4 7F045E94 AFA80610 */ sw $t0, 0x610($sp) +.L7F045E98: +/* 07A9C8 7F045E98 8FA90610 */ lw $t1, 0x610($sp) +/* 07A9CC 7F045E9C 8FAB0664 */ lw $t3, 0x664($sp) +/* 07A9D0 7F045EA0 55200004 */ bnezl $t1, .L7F045EB4 +/* 07A9D4 7F045EA4 8E190000 */ lw $t9, ($s0) +/* 07A9D8 7F045EA8 5560000B */ bnezl $t3, .L7F045ED8 +/* 07A9DC 7F045EAC 8FAD0610 */ lw $t5, 0x610($sp) +/* 07A9E0 7F045EB0 8E190000 */ lw $t9, ($s0) +.L7F045EB4: +/* 07A9E4 7F045EB4 332A0200 */ andi $t2, $t9, 0x200 +/* 07A9E8 7F045EB8 55400004 */ bnezl $t2, .L7F045ECC +/* 07A9EC 7F045EBC 8E0C0090 */ lw $t4, 0x90($s0) +/* 07A9F0 7F045EC0 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A9F4 7F045EC4 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A9F8 7F045EC8 8E0C0090 */ lw $t4, 0x90($s0) +.L7F045ECC: +/* 07A9FC 7F045ECC 258E0001 */ addiu $t6, $t4, 1 +/* 07AA00 7F045ED0 AE0E0090 */ sw $t6, 0x90($s0) +/* 07AA04 7F045ED4 8FAD0610 */ lw $t5, 0x610($sp) +.L7F045ED8: +/* 07AA08 7F045ED8 8FAF060C */ lw $t7, 0x60c($sp) +/* 07AA0C 7F045EDC 8FB80610 */ lw $t8, 0x610($sp) +/* 07AA10 7F045EE0 15A00003 */ bnez $t5, .L7F045EF0 +/* 07AA14 7F045EE4 00000000 */ nop +/* 07AA18 7F045EE8 51E0003A */ beql $t7, $zero, .L7F045FD4 +/* 07AA1C 7F045EEC 922C0003 */ lbu $t4, 3($s1) +.L7F045EF0: +/* 07AA20 7F045EF0 13000009 */ beqz $t8, .L7F045F18 +/* 07AA24 7F045EF4 C7A40618 */ lwc1 $f4, 0x618($sp) +/* 07AA28 7F045EF8 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA2C 7F045EFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA30 7F045F00 44813000 */ mtc1 $at, $f6 +/* 07AA34 7F045F04 4608A281 */ sub.s $f10, $f20, $f8 +/* 07AA38 7F045F08 46065000 */ add.s $f0, $f10, $f6 +/* 07AA3C 7F045F0C E660000C */ swc1 $f0, 0xc($s3) +/* 07AA40 7F045F10 10000008 */ b .L7F045F34 +/* 07AA44 7F045F14 E620005C */ swc1 $f0, 0x5c($s1) +.L7F045F18: +/* 07AA48 7F045F18 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA4C 7F045F1C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA50 7F045F20 44813000 */ mtc1 $at, $f6 +/* 07AA54 7F045F24 46082281 */ sub.s $f10, $f4, $f8 +/* 07AA58 7F045F28 46065080 */ add.s $f2, $f10, $f6 +/* 07AA5C 7F045F2C E662000C */ swc1 $f2, 0xc($s3) +/* 07AA60 7F045F30 E622005C */ swc1 $f2, 0x5c($s1) +.L7F045F34: +/* 07AA64 7F045F34 8E230064 */ lw $v1, 0x64($s1) +/* 07AA68 7F045F38 02202025 */ move $a0, $s1 +/* 07AA6C 7F045F3C 000343C0 */ sll $t0, $v1, 0xf +/* 07AA70 7F045F40 05000002 */ bltz $t0, .L7F045F4C +/* 07AA74 7F045F44 34690100 */ ori $t1, $v1, 0x100 +/* 07AA78 7F045F48 AE290064 */ sw $t1, 0x64($s1) +.L7F045F4C: +/* 07AA7C 7F045F4C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07AA80 7F045F50 4610B03C */ c.lt.s $f22, $f16 +/* 07AA84 7F045F54 00000000 */ nop +/* 07AA88 7F045F58 4500001B */ bc1f .L7F045FC8 +/* 07AA8C 7F045F5C 00000000 */ nop +/* 07AA90 7F045F60 C6040008 */ lwc1 $f4, 8($s0) +/* 07AA94 7F045F64 46008207 */ neg.s $f8, $f16 +/* 07AA98 7F045F68 3C018005 */ lui $at, %hi(D_80052AA8) +/* 07AA9C 7F045F6C 46082282 */ mul.s $f10, $f4, $f8 +/* 07AAA0 7F045F70 C4202AA8 */ lwc1 $f0, %lo(D_80052AA8)($at) +/* 07AAA4 7F045F74 E60A0008 */ swc1 $f10, 8($s0) +/* 07AAA8 7F045F78 C6060008 */ lwc1 $f6, 8($s0) +/* 07AAAC 7F045F7C 4600303C */ c.lt.s $f6, $f0 +/* 07AAB0 7F045F80 00000000 */ nop +/* 07AAB4 7F045F84 45020013 */ bc1fl .L7F045FD4 +/* 07AAB8 7F045F88 922C0003 */ lbu $t4, 3($s1) +/* 07AABC 7F045F8C 8E0B0000 */ lw $t3, ($s0) +/* 07AAC0 7F045F90 02202025 */ move $a0, $s1 +/* 07AAC4 7F045F94 31790002 */ andi $t9, $t3, 2 +/* 07AAC8 7F045F98 13200007 */ beqz $t9, .L7F045FB8 +/* 07AACC 7F045F9C 00000000 */ nop +/* 07AAD0 7F045FA0 8E0A0090 */ lw $t2, 0x90($s0) +/* 07AAD4 7F045FA4 24010001 */ li $at, 1 +/* 07AAD8 7F045FA8 15410003 */ bne $t2, $at, .L7F045FB8 +/* 07AADC 7F045FAC 00000000 */ nop +/* 07AAE0 7F045FB0 10000007 */ b .L7F045FD0 +/* 07AAE4 7F045FB4 E6000008 */ swc1 $f0, 8($s0) +.L7F045FB8: +/* 07AAE8 7F045FB8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAEC 7F045FBC 27A5062C */ addiu $a1, $sp, 0x62c +/* 07AAF0 7F045FC0 10000004 */ b .L7F045FD4 +/* 07AAF4 7F045FC4 922C0003 */ lbu $t4, 3($s1) +.L7F045FC8: +/* 07AAF8 7F045FC8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAFC 7F045FCC 27A5062C */ addiu $a1, $sp, 0x62c +.L7F045FD0: +/* 07AB00 7F045FD0 922C0003 */ lbu $t4, 3($s1) +.L7F045FD4: +/* 07AB04 7F045FD4 24010008 */ li $at, 8 +/* 07AB08 7F045FD8 5581006F */ bnel $t4, $at, .L7F046198 +/* 07AB0C 7F045FDC 8E2A0064 */ lw $t2, 0x64($s1) +/* 07AB10 7F045FE0 82220080 */ lb $v0, 0x80($s1) +/* 07AB14 7F045FE4 24010003 */ li $at, 3 +/* 07AB18 7F045FE8 54410006 */ bnel $v0, $at, .L7F046004 +/* 07AB1C 7F045FEC 24010056 */ li $at, 86 +/* 07AB20 7F045FF0 0FC10D94 */ jal sub_GAME_7F043650 +/* 07AB24 7F045FF4 02202025 */ move $a0, $s1 +/* 07AB28 7F045FF8 10000042 */ b .L7F046104 +/* 07AB2C 7F045FFC 8FB80664 */ lw $t8, 0x664($sp) +/* 07AB30 7F046000 24010056 */ li $at, 86 +.L7F046004: +/* 07AB34 7F046004 1441002D */ bne $v0, $at, .L7F0460BC +/* 07AB38 7F046008 8FAE0664 */ lw $t6, 0x664($sp) +/* 07AB3C 7F04600C 11C00003 */ beqz $t6, .L7F04601C +/* 07AB40 7F046010 8FAD0610 */ lw $t5, 0x610($sp) +/* 07AB44 7F046014 51A00004 */ beql $t5, $zero, .L7F046028 +/* 07AB48 7F046018 C6020004 */ lwc1 $f2, 4($s0) +.L7F04601C: +/* 07AB4C 7F04601C 10000038 */ b .L7F046100 +/* 07AB50 7F046020 A6200082 */ sh $zero, 0x82($s1) +/* 07AB54 7F046024 C6020004 */ lwc1 $f2, 4($s0) +.L7F046028: +/* 07AB58 7F046028 C60C0008 */ lwc1 $f12, 8($s0) +/* 07AB5C 7F04602C C600000C */ lwc1 $f0, 0xc($s0) +/* 07AB60 7F046030 46021102 */ mul.s $f4, $f2, $f2 +/* 07AB64 7F046034 3C018005 */ lui $at, %hi(D_80052AAC) +/* 07AB68 7F046038 26240058 */ addiu $a0, $s1, 0x58 +/* 07AB6C 7F04603C 460C6202 */ mul.s $f8, $f12, $f12 +/* 07AB70 7F046040 24060008 */ li $a2, 8 +/* 07AB74 7F046044 46000182 */ mul.s $f6, $f0, $f0 +/* 07AB78 7F046048 46082280 */ add.s $f10, $f4, $f8 +/* 07AB7C 7F04604C C4242AAC */ lwc1 $f4, %lo(D_80052AAC)($at) +/* 07AB80 7F046050 460A3380 */ add.s $f14, $f6, $f10 +/* 07AB84 7F046054 460E203C */ c.lt.s $f4, $f14 +/* 07AB88 7F046058 00000000 */ nop +/* 07AB8C 7F04605C 45020005 */ bc1fl .L7F046074 +/* 07AB90 7F046060 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 07AB94 7F046064 E6160010 */ swc1 $f22, 0x10($s0) +/* 07AB98 7F046068 E6160014 */ swc1 $f22, 0x14($s0) +/* 07AB9C 7F04606C E6160018 */ swc1 $f22, 0x18($s0) +/* 07ABA0 7F046070 8E0F00A8 */ lw $t7, 0xa8($s0) +.L7F046074: +/* 07ABA4 7F046074 29E1012D */ slti $at, $t7, 0x12d +/* 07ABA8 7F046078 54200008 */ bnezl $at, .L7F04609C +/* 07ABAC 7F04607C 92690001 */ lbu $t1, 1($s3) +/* 07ABB0 7F046080 8E180000 */ lw $t8, ($s0) +/* 07ABB4 7F046084 2401FFCF */ li $at, -49 +/* 07ABB8 7F046088 E616001C */ swc1 $f22, 0x1c($s0) +/* 07ABBC 7F04608C 03014024 */ and $t0, $t8, $at +/* 07ABC0 7F046090 1000001B */ b .L7F046100 +/* 07ABC4 7F046094 AE080000 */ sw $t0, ($s0) +/* 07ABC8 7F046098 92690001 */ lbu $t1, 1($s3) +.L7F04609C: +/* 07ABCC 7F04609C 8E650014 */ lw $a1, 0x14($s3) +/* 07ABD0 7F0460A0 2667002C */ addiu $a3, $s3, 0x2c +/* 07ABD4 7F0460A4 312B0008 */ andi $t3, $t1, 8 +/* 07ABD8 7F0460A8 000BC82B */ sltu $t9, $zero, $t3 +/* 07ABDC 7F0460AC 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ABE0 7F0460B0 AFB90010 */ sw $t9, 0x10($sp) +/* 07ABE4 7F0460B4 10000013 */ b .L7F046104 +/* 07ABE8 7F0460B8 8FB80664 */ lw $t8, 0x664($sp) +.L7F0460BC: +/* 07ABEC 7F0460BC 24010057 */ li $at, 87 +/* 07ABF0 7F0460C0 1441000F */ bne $v0, $at, .L7F046100 +/* 07ABF4 7F0460C4 8FAA0610 */ lw $t2, 0x610($sp) +/* 07ABF8 7F0460C8 15400003 */ bnez $t2, .L7F0460D8 +/* 07ABFC 7F0460CC 8FAC060C */ lw $t4, 0x60c($sp) +/* 07AC00 7F0460D0 11800003 */ beqz $t4, .L7F0460E0 +/* 07AC04 7F0460D4 26240058 */ addiu $a0, $s1, 0x58 +.L7F0460D8: +/* 07AC08 7F0460D8 10000009 */ b .L7F046100 +/* 07AC0C 7F0460DC A6200082 */ sh $zero, 0x82($s1) +.L7F0460E0: +/* 07AC10 7F0460E0 926E0001 */ lbu $t6, 1($s3) +/* 07AC14 7F0460E4 8E650014 */ lw $a1, 0x14($s3) +/* 07AC18 7F0460E8 24060009 */ li $a2, 9 +/* 07AC1C 7F0460EC 31CD0008 */ andi $t5, $t6, 8 +/* 07AC20 7F0460F0 000D782B */ sltu $t7, $zero, $t5 +/* 07AC24 7F0460F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 07AC28 7F0460F8 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07AC2C 7F0460FC 2667002C */ addiu $a3, $s3, 0x2c +.L7F046100: +/* 07AC30 7F046100 8FB80664 */ lw $t8, 0x664($sp) +.L7F046104: +/* 07AC34 7F046104 3C128005 */ lui $s2, %hi(D_80048380) +/* 07AC38 7F046108 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07AC3C 7F04610C 13000003 */ beqz $t8, .L7F04611C +/* 07AC40 7F046110 8FA80610 */ lw $t0, 0x610($sp) +/* 07AC44 7F046114 51000020 */ beql $t0, $zero, .L7F046198 +/* 07AC48 7F046118 8E2A0064 */ lw $t2, 0x64($s1) +.L7F04611C: +/* 07AC4C 7F04611C 8E420000 */ lw $v0, ($s2) +/* 07AC50 7F046120 8E0900AC */ lw $t1, 0xac($s0) +/* 07AC54 7F046124 244BFFFE */ addiu $t3, $v0, -2 +/* 07AC58 7F046128 012B082A */ slt $at, $t1, $t3 +/* 07AC5C 7F04612C 50200019 */ beql $at, $zero, .L7F046194 +/* 07AC60 7F046130 AE0200AC */ sw $v0, 0xac($s0) +/* 07AC64 7F046134 82220080 */ lb $v0, 0x80($s1) +/* 07AC68 7F046138 26790008 */ addiu $t9, $s3, 8 +/* 07AC6C 7F04613C 24010003 */ li $at, 3 +/* 07AC70 7F046140 10410004 */ beq $v0, $at, .L7F046154 +/* 07AC74 7F046144 AFB90070 */ sw $t9, 0x70($sp) +/* 07AC78 7F046148 24010002 */ li $at, 2 +/* 07AC7C 7F04614C 14410008 */ bne $v0, $at, .L7F046170 +/* 07AC80 7F046150 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +.L7F046154: +/* 07AC84 7F046154 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07AC88 7F046158 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07AC8C 7F04615C 24050003 */ li $a1, 3 +/* 07AC90 7F046160 0C002382 */ jal play_sfx_a1 +/* 07AC94 7F046164 00003025 */ move $a2, $zero +/* 07AC98 7F046168 10000006 */ b .L7F046184 +/* 07AC9C 7F04616C 00402025 */ move $a0, $v0 +.L7F046170: +/* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07ACA4 7F046174 2405002D */ li $a1, 45 +/* 07ACA8 7F046178 0C002382 */ jal play_sfx_a1 +/* 07ACAC 7F04617C 00003025 */ move $a2, $zero +/* 07ACB0 7F046180 00402025 */ move $a0, $v0 +.L7F046184: +/* 07ACB4 7F046184 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07ACB8 7F046188 8FA50070 */ lw $a1, 0x70($sp) +/* 07ACBC 7F04618C 8E420000 */ lw $v0, ($s2) +/* 07ACC0 7F046190 AE0200AC */ sw $v0, 0xac($s0) +.L7F046194: +/* 07ACC4 7F046194 8E2A0064 */ lw $t2, 0x64($s1) +.L7F046198: +/* 07ACC8 7F046198 3C128005 */ lui $s2, %hi(D_80048380) +/* 07ACCC 7F04619C 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07ACD0 7F0461A0 314C0080 */ andi $t4, $t2, 0x80 +/* 07ACD4 7F0461A4 5180011D */ beql $t4, $zero, .L7F04661C +/* 07ACD8 7F0461A8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACDC 7F0461AC 8E0E0000 */ lw $t6, ($s0) +/* 07ACE0 7F0461B0 31CD0400 */ andi $t5, $t6, 0x400 +/* 07ACE4 7F0461B4 51A00119 */ beql $t5, $zero, .L7F04661C +/* 07ACE8 7F0461B8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACEC 7F0461BC 8E420000 */ lw $v0, ($s2) +/* 07ACF0 7F0461C0 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 07ACF4 7F0461C4 27B00564 */ addiu $s0, $sp, 0x564 +/* 07ACF8 7F0461C8 304F0007 */ andi $t7, $v0, 7 +/* 07ACFC 7F0461CC 15E00112 */ bnez $t7, .L7F046618 +/* 07AD00 7F0461D0 00002025 */ move $a0, $zero +/* 07AD04 7F0461D4 44810000 */ mtc1 $at, $f0 +/* 07AD08 7F0461D8 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07AD0C 7F0461DC 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +/* 07AD10 7F0461E0 44812000 */ mtc1 $at, $f4 +/* 07AD14 7F0461E4 46004180 */ add.s $f6, $f8, $f0 +/* 07AD18 7F0461E8 3058000F */ andi $t8, $v0, 0xf +/* 07AD1C 7F0461EC E7A60564 */ swc1 $f6, 0x564($sp) +/* 07AD20 7F0461F0 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07AD24 7F0461F4 46045201 */ sub.s $f8, $f10, $f4 +/* 07AD28 7F0461F8 E7A80568 */ swc1 $f8, 0x568($sp) +/* 07AD2C 7F0461FC C6260060 */ lwc1 $f6, 0x60($s1) +/* 07AD30 7F046200 17000005 */ bnez $t8, .L7F046218 +/* 07AD34 7F046204 E7A6056C */ swc1 $f6, 0x56c($sp) +/* 07AD38 7F046208 C7AA056C */ lwc1 $f10, 0x56c($sp) +/* 07AD3C 7F04620C 46005100 */ add.s $f4, $f10, $f0 +/* 07AD40 7F046210 10000004 */ b .L7F046224 +/* 07AD44 7F046214 E7A4056C */ swc1 $f4, 0x56c($sp) +.L7F046218: +/* 07AD48 7F046218 C7A8056C */ lwc1 $f8, 0x56c($sp) +/* 07AD4C 7F04621C 46004181 */ sub.s $f6, $f8, $f0 +/* 07AD50 7F046220 E7A6056C */ swc1 $f6, 0x56c($sp) +.L7F046224: +/* 07AD54 7F046224 8E220010 */ lw $v0, 0x10($s1) +/* 07AD58 7F046228 02002825 */ move $a1, $s0 +/* 07AD5C 7F04622C 24070014 */ li $a3, 20 +/* 07AD60 7F046230 8C460014 */ lw $a2, 0x14($v0) +/* 07AD64 7F046234 2448002C */ addiu $t0, $v0, 0x2c +/* 07AD68 7F046238 AFA80018 */ sw $t0, 0x18($sp) +/* 07AD6C 7F04623C AFA0001C */ sw $zero, 0x1c($sp) +/* 07AD70 7F046240 AFA00014 */ sw $zero, 0x14($sp) +/* 07AD74 7F046244 0FC27094 */ jal sub_GAME_7F09C250 +/* 07AD78 7F046248 AFA00010 */ sw $zero, 0x10($sp) +/* 07AD7C 7F04624C 8E490000 */ lw $t1, ($s2) +/* 07AD80 7F046250 24010028 */ li $at, 40 +/* 07AD84 7F046254 02002025 */ move $a0, $s0 +/* 07AD88 7F046258 0121001A */ div $zero, $t1, $at +/* 07AD8C 7F04625C 00005810 */ mfhi $t3 +/* 07AD90 7F046260 556000EE */ bnezl $t3, .L7F04661C +/* 07AD94 7F046264 8FAD0690 */ lw $t5, 0x690($sp) +/* 07AD98 7F046268 8E220010 */ lw $v0, 0x10($s1) +/* 07AD9C 7F04626C 24190001 */ li $t9, 1 +/* 07ADA0 7F046270 2406000A */ li $a2, 10 +/* 07ADA4 7F046274 8C450014 */ lw $a1, 0x14($v0) +/* 07ADA8 7F046278 AFB90010 */ sw $t9, 0x10($sp) +/* 07ADAC 7F04627C 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ADB0 7F046280 2447002C */ addiu $a3, $v0, 0x2c +/* 07ADB4 7F046284 100000E5 */ b .L7F04661C +/* 07ADB8 7F046288 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ADBC 7F04628C C6000060 */ lwc1 $f0, 0x60($s0) +.L7F046290: +/* 07ADC0 7F046290 44815000 */ mtc1 $at, $f10 +/* 07ADC4 7F046294 24120001 */ li $s2, 1 +/* 07ADC8 7F046298 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07ADCC 7F04629C 460A003C */ c.lt.s $f0, $f10 +/* 07ADD0 7F0462A0 26040068 */ addiu $a0, $s0, 0x68 +/* 07ADD4 7F0462A4 26050078 */ addiu $a1, $s0, 0x78 +/* 07ADD8 7F0462A8 45020031 */ bc1fl .L7F046370 +/* 07ADDC 7F0462AC C60A0004 */ lwc1 $f10, 4($s0) +/* 07ADE0 7F0462B0 C6020064 */ lwc1 $f2, 0x64($s0) +/* 07ADE4 7F0462B4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07ADE8 7F0462B8 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07ADEC 7F0462BC 3C018005 */ lui $at, %hi(D_80052AB0) +/* 07ADF0 7F0462C0 46041202 */ mul.s $f8, $f2, $f4 +/* 07ADF4 7F0462C4 27B20550 */ addiu $s2, $sp, 0x550 +/* 07ADF8 7F0462C8 46080180 */ add.s $f6, $f0, $f8 +/* 07ADFC 7F0462CC E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE00 7F0462D0 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07AE04 7F0462D4 59400005 */ blezl $t2, .L7F0462EC +/* 07AE08 7F0462D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE0C 7F0462DC C42A2AB0 */ lwc1 $f10, %lo(D_80052AB0)($at) +/* 07AE10 7F0462E0 460A1102 */ mul.s $f4, $f2, $f10 +/* 07AE14 7F0462E4 E6040064 */ swc1 $f4, 0x64($s0) +/* 07AE18 7F0462E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0462EC: +/* 07AE1C 7F0462EC 44814000 */ mtc1 $at, $f8 +/* 07AE20 7F0462F0 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE24 7F0462F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE28 7F0462F8 4600403C */ c.lt.s $f8, $f0 +/* 07AE2C 7F0462FC 00000000 */ nop +/* 07AE30 7F046300 45030006 */ bc1tl .L7F04631C +/* 07AE34 7F046304 44813000 */ mtc1 $at, $f6 +/* 07AE38 7F046308 8E0C0000 */ lw $t4, ($s0) +/* 07AE3C 7F04630C 318E0008 */ andi $t6, $t4, 8 +/* 07AE40 7F046310 51C00006 */ beql $t6, $zero, .L7F04632C +/* 07AE44 7F046314 44060000 */ mfc1 $a2, $f0 +/* 07AE48 7F046318 44813000 */ mtc1 $at, $f6 +.L7F04631C: +/* 07AE4C 7F04631C 00000000 */ nop +/* 07AE50 7F046320 E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE54 7F046324 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE58 7F046328 44060000 */ mfc1 $a2, $f0 +.L7F04632C: +/* 07AE5C 7F04632C 0FC16E82 */ jal quaternion_slerp +/* 07AE60 7F046330 02403825 */ move $a3, $s2 +/* 07AE64 7F046334 26250018 */ addiu $a1, $s1, 0x18 +/* 07AE68 7F046338 AFA50070 */ sw $a1, 0x70($sp) +/* 07AE6C 7F04633C 0FC16D8A */ jal quaternion_to_matrix +/* 07AE70 7F046340 02402025 */ move $a0, $s2 +/* 07AE74 7F046344 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 07AE78 7F046348 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 07AE7C 7F04634C 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE80 7F046350 C60C00C4 */ lwc1 $f12, 0xc4($s0) +/* 07AE84 7F046354 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 07AE88 7F046358 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE8C 7F04635C C60C00C8 */ lwc1 $f12, 0xc8($s0) +/* 07AE90 7F046360 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 07AE94 7F046364 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE98 7F046368 00009025 */ move $s2, $zero +/* 07AE9C 7F04636C C60A0004 */ lwc1 $f10, 4($s0) +.L7F046370: +/* 07AEA0 7F046370 460AB032 */ c.eq.s $f22, $f10 +/* 07AEA4 7F046374 00000000 */ nop +/* 07AEA8 7F046378 4502000F */ bc1fl .L7F0463B8 +/* 07AEAC 7F04637C 8E0D0000 */ lw $t5, ($s0) +/* 07AEB0 7F046380 C604000C */ lwc1 $f4, 0xc($s0) +/* 07AEB4 7F046384 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AEB8 7F046388 4604B032 */ c.eq.s $f22, $f4 +/* 07AEBC 7F04638C 00000000 */ nop +/* 07AEC0 7F046390 45020009 */ bc1fl .L7F0463B8 +/* 07AEC4 7F046394 8E0D0000 */ lw $t5, ($s0) +/* 07AEC8 7F046398 C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AECC 7F04639C 44813000 */ mtc1 $at, $f6 +/* 07AED0 7F0463A0 00000000 */ nop +/* 07AED4 7F0463A4 4606403C */ c.lt.s $f8, $f6 +/* 07AED8 7F0463A8 00000000 */ nop +/* 07AEDC 7F0463AC 45000088 */ bc1f .L7F0465D0 +/* 07AEE0 7F0463B0 00000000 */ nop +/* 07AEE4 7F0463B4 8E0D0000 */ lw $t5, ($s0) +.L7F0463B8: +/* 07AEE8 7F0463B8 02202025 */ move $a0, $s1 +/* 07AEEC 7F0463BC 26380018 */ addiu $t8, $s1, 0x18 +/* 07AEF0 7F0463C0 31AF0008 */ andi $t7, $t5, 8 +/* 07AEF4 7F0463C4 15E00082 */ bnez $t7, .L7F0465D0 +/* 07AEF8 7F0463C8 00000000 */ nop +/* 07AEFC 7F0463CC AFB80070 */ sw $t8, 0x70($sp) +/* 07AF00 7F0463D0 0FC1001E */ jal sub_GAME_7F040078 +/* 07AF04 7F0463D4 00009025 */ move $s2, $zero +/* 07AF08 7F0463D8 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AF0C 7F0463DC 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07AF10 7F0463E0 AFA2054C */ sw $v0, 0x54c($sp) +/* 07AF14 7F0463E4 00002025 */ move $a0, $zero +/* 07AF18 7F0463E8 18600048 */ blez $v1, .L7F04650C +/* 07AF1C 7F0463EC 3C018005 */ lui $at, %hi(D_80052AB4) +/* 07AF20 7F0463F0 C42E2AB4 */ lwc1 $f14, %lo(D_80052AB4)($at) +/* 07AF24 7F0463F4 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F0463F8: +/* 07AF28 7F0463F8 C6040004 */ lwc1 $f4, 4($s0) +/* 07AF2C 7F0463FC C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07AF30 7F046400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AF34 7F046404 46045200 */ add.s $f8, $f10, $f4 +/* 07AF38 7F046408 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07AF3C 7F04640C C60A000C */ lwc1 $f10, 0xc($s0) +/* 07AF40 7F046410 460A3100 */ add.s $f4, $f6, $f10 +/* 07AF44 7F046414 44813000 */ mtc1 $at, $f6 +/* 07AF48 7F046418 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07AF4C 7F04641C C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AF50 7F046420 4608303E */ c.le.s $f6, $f8 +/* 07AF54 7F046424 00000000 */ nop +/* 07AF58 7F046428 45020035 */ bc1fl .L7F046500 +/* 07AF5C 7F04642C 24840001 */ addiu $a0, $a0, 1 +/* 07AF60 7F046430 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 07AF64 7F046434 460AB03C */ c.lt.s $f22, $f10 +/* 07AF68 7F046438 00000000 */ nop +/* 07AF6C 7F04643C 45020027 */ bc1fl .L7F0464DC +/* 07AF70 7F046440 C6060004 */ lwc1 $f6, 4($s0) +/* 07AF74 7F046444 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AF78 7F046448 C6020004 */ lwc1 $f2, 4($s0) +/* 07AF7C 7F04644C AFA40548 */ sw $a0, 0x548($sp) +/* 07AF80 7F046450 46000102 */ mul.s $f4, $f0, $f0 +/* 07AF84 7F046454 00000000 */ nop +/* 07AF88 7F046458 46021202 */ mul.s $f8, $f2, $f2 +/* 07AF8C 7F04645C 0C007DF8 */ jal sqrtf +/* 07AF90 7F046460 46082300 */ add.s $f12, $f4, $f8 +/* 07AF94 7F046464 3C018005 */ lui $at, %hi(D_80052AB8) +/* 07AF98 7F046468 C42E2AB8 */ lwc1 $f14, %lo(D_80052AB8)($at) +/* 07AF9C 7F04646C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07AFA0 7F046470 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07AFA4 7F046474 C6060094 */ lwc1 $f6, 0x94($s0) +/* 07AFA8 7F046478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AFAC 7F04647C 44814000 */ mtc1 $at, $f8 +/* 07AFB0 7F046480 460A3102 */ mul.s $f4, $f6, $f10 +/* 07AFB4 7F046484 8FA40548 */ lw $a0, 0x548($sp) +/* 07AFB8 7F046488 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AFBC 7F04648C 46002303 */ div.s $f12, $f4, $f0 +/* 07AFC0 7F046490 460C403E */ c.le.s $f8, $f12 +/* 07AFC4 7F046494 00000000 */ nop +/* 07AFC8 7F046498 45020005 */ bc1fl .L7F0464B0 +/* 07AFCC 7F04649C C6020004 */ lwc1 $f2, 4($s0) +/* 07AFD0 7F0464A0 E6160004 */ swc1 $f22, 4($s0) +/* 07AFD4 7F0464A4 1000000A */ b .L7F0464D0 +/* 07AFD8 7F0464A8 E616000C */ swc1 $f22, 0xc($s0) +/* 07AFDC 7F0464AC C6020004 */ lwc1 $f2, 4($s0) +.L7F0464B0: +/* 07AFE0 7F0464B0 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AFE4 7F0464B4 460C1182 */ mul.s $f6, $f2, $f12 +/* 07AFE8 7F0464B8 00000000 */ nop +/* 07AFEC 7F0464BC 460C0102 */ mul.s $f4, $f0, $f12 +/* 07AFF0 7F0464C0 46061281 */ sub.s $f10, $f2, $f6 +/* 07AFF4 7F0464C4 46040201 */ sub.s $f8, $f0, $f4 +/* 07AFF8 7F0464C8 E60A0004 */ swc1 $f10, 4($s0) +/* 07AFFC 7F0464CC E608000C */ swc1 $f8, 0xc($s0) +.L7F0464D0: +/* 07B000 7F0464D0 1000000A */ b .L7F0464FC +/* 07B004 7F0464D4 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07B008 7F0464D8 C6060004 */ lwc1 $f6, 4($s0) +.L7F0464DC: +/* 07B00C 7F0464DC C604000C */ lwc1 $f4, 0xc($s0) +/* 07B010 7F0464E0 3C038005 */ lui $v1, %hi(clock_timer) +/* 07B014 7F0464E4 460E3282 */ mul.s $f10, $f6, $f14 +/* 07B018 7F0464E8 00000000 */ nop +/* 07B01C 7F0464EC 460E2202 */ mul.s $f8, $f4, $f14 +/* 07B020 7F0464F0 E60A0004 */ swc1 $f10, 4($s0) +/* 07B024 7F0464F4 E608000C */ swc1 $f8, 0xc($s0) +/* 07B028 7F0464F8 8C638374 */ lw $v1, %lo(clock_timer)($v1) +.L7F0464FC: +/* 07B02C 7F0464FC 24840001 */ addiu $a0, $a0, 1 +.L7F046500: +/* 07B030 7F046500 0083082A */ slt $at, $a0, $v1 +/* 07B034 7F046504 5420FFBC */ bnezl $at, .L7F0463F8 +/* 07B038 7F046508 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F04650C: +/* 07B03C 7F04650C 02202025 */ move $a0, $s1 +/* 07B040 7F046510 27A50694 */ addiu $a1, $sp, 0x694 +/* 07B044 7F046514 27A60530 */ addiu $a2, $sp, 0x530 +/* 07B048 7F046518 27A7053C */ addiu $a3, $sp, 0x53c +/* 07B04C 7F04651C AFA00010 */ sw $zero, 0x10($sp) +/* 07B050 7F046520 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07B054 7F046524 AFA00014 */ sw $zero, 0x14($sp) +/* 07B058 7F046528 24080001 */ li $t0, 1 +/* 07B05C 7F04652C AFA80690 */ sw $t0, 0x690($sp) +/* 07B060 7F046530 8E660010 */ lw $a2, 0x10($s3) +/* 07B064 7F046534 8E650008 */ lw $a1, 8($s3) +/* 07B068 7F046538 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07B06C 7F04653C 8E640014 */ lw $a0, 0x14($s3) +/* 07B070 7F046540 46000506 */ mov.s $f20, $f0 +/* 07B074 7F046544 8FA4054C */ lw $a0, 0x54c($sp) +/* 07B078 7F046548 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07B07C 7F04654C 8FA50070 */ lw $a1, 0x70($sp) +/* 07B080 7F046550 3C018005 */ lui $at, %hi(D_80052ABC) +/* 07B084 7F046554 C42E2ABC */ lwc1 $f14, %lo(D_80052ABC)($at) +/* 07B088 7F046558 4600A181 */ sub.s $f6, $f20, $f0 +/* 07B08C 7F04655C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07B090 7F046560 44815000 */ mtc1 $at, $f10 +/* 07B094 7F046564 3C018005 */ lui $at, %hi(D_80052AC0) +/* 07B098 7F046568 460A3300 */ add.s $f12, $f6, $f10 +/* 07B09C 7F04656C E66C000C */ swc1 $f12, 0xc($s3) +/* 07B0A0 7F046570 E62C005C */ swc1 $f12, 0x5c($s1) +/* 07B0A4 7F046574 C6020004 */ lwc1 $f2, 4($s0) +/* 07B0A8 7F046578 460E103C */ c.lt.s $f2, $f14 +/* 07B0AC 7F04657C 00000000 */ nop +/* 07B0B0 7F046580 45000013 */ bc1f .L7F0465D0 +/* 07B0B4 7F046584 00000000 */ nop +/* 07B0B8 7F046588 C4242AC0 */ lwc1 $f4, %lo(D_80052AC0)($at) +/* 07B0BC 7F04658C 4602203C */ c.lt.s $f4, $f2 +/* 07B0C0 7F046590 00000000 */ nop +/* 07B0C4 7F046594 4500000E */ bc1f .L7F0465D0 +/* 07B0C8 7F046598 00000000 */ nop +/* 07B0CC 7F04659C C600000C */ lwc1 $f0, 0xc($s0) +/* 07B0D0 7F0465A0 3C018005 */ lui $at, %hi(D_80052AC4) +/* 07B0D4 7F0465A4 460E003C */ c.lt.s $f0, $f14 +/* 07B0D8 7F0465A8 00000000 */ nop +/* 07B0DC 7F0465AC 45000008 */ bc1f .L7F0465D0 +/* 07B0E0 7F0465B0 00000000 */ nop +/* 07B0E4 7F0465B4 C4282AC4 */ lwc1 $f8, %lo(D_80052AC4)($at) +/* 07B0E8 7F0465B8 4600403C */ c.lt.s $f8, $f0 +/* 07B0EC 7F0465BC 00000000 */ nop +/* 07B0F0 7F0465C0 45000003 */ bc1f .L7F0465D0 +/* 07B0F4 7F0465C4 00000000 */ nop +/* 07B0F8 7F0465C8 E616000C */ swc1 $f22, 0xc($s0) +/* 07B0FC 7F0465CC E6160004 */ swc1 $f22, 4($s0) +.L7F0465D0: +/* 07B100 7F0465D0 16400005 */ bnez $s2, .L7F0465E8 +/* 07B104 7F0465D4 00000000 */ nop +/* 07B108 7F0465D8 8E090000 */ lw $t1, ($s0) +/* 07B10C 7F0465DC 312B0008 */ andi $t3, $t1, 8 +/* 07B110 7F0465E0 5160000E */ beql $t3, $zero, .L7F04661C +/* 07B114 7F0465E4 8FAD0690 */ lw $t5, 0x690($sp) +.L7F0465E8: +/* 07B118 7F0465E8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07B11C 7F0465EC 02002025 */ move $a0, $s0 +/* 07B120 7F0465F0 8E390064 */ lw $t9, 0x64($s1) +/* 07B124 7F0465F4 2401FF7F */ li $at, -129 +/* 07B128 7F0465F8 AE20006C */ sw $zero, 0x6c($s1) +/* 07B12C 7F0465FC 03215024 */ and $t2, $t9, $at +/* 07B130 7F046600 AE2A0064 */ sw $t2, 0x64($s1) +/* 07B134 7F046604 92620001 */ lbu $v0, 1($s3) +/* 07B138 7F046608 304C0008 */ andi $t4, $v0, 8 +/* 07B13C 7F04660C 11800002 */ beqz $t4, .L7F046618 +/* 07B140 7F046610 344E0010 */ ori $t6, $v0, 0x10 +/* 07B144 7F046614 A26E0001 */ sb $t6, 1($s3) +.L7F046618: +/* 07B148 7F046618 8FAD0690 */ lw $t5, 0x690($sp) +.L7F04661C: +/* 07B14C 7F04661C 11A0000B */ beqz $t5, .L7F04664C +/* 07B150 7F046620 262F0058 */ addiu $t7, $s1, 0x58 +/* 07B154 7F046624 AFAF0070 */ sw $t7, 0x70($sp) +/* 07B158 7F046628 0FC10121 */ jal sub_GAME_7F040484 +/* 07B15C 7F04662C 02202025 */ move $a0, $s1 +/* 07B160 7F046630 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07B164 7F046634 02202025 */ move $a0, $s1 +/* 07B168 7F046638 8E240010 */ lw $a0, 0x10($s1) +/* 07B16C 7F04663C 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07B170 7F046640 2625007C */ addiu $a1, $s1, 0x7c +/* 07B174 7F046644 0FC146F3 */ jal detonate_proxmine_In_range +/* 07B178 7F046648 8FA40070 */ lw $a0, 0x70($sp) +.L7F04664C: +/* 07B17C 7F04664C 92220003 */ lbu $v0, 3($s1) +/* 07B180 7F046650 24010001 */ li $at, 1 +/* 07B184 7F046654 54410052 */ bnel $v0, $at, .L7F0467A0 +/* 07B188 7F046658 24010006 */ li $at, 6 +/* 07B18C 7F04665C 8E700004 */ lw $s0, 4($s3) +/* 07B190 7F046660 3C188005 */ lui $t8, %hi(global_timer) +/* 07B194 7F046664 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07B198 7F046668 E7A6067C */ swc1 $f6, 0x67c($sp) +/* 07B19C 7F04666C 8E0200EC */ lw $v0, 0xec($s0) +/* 07B1A0 7F046670 58400012 */ blezl $v0, .L7F0466BC +/* 07B1A4 7F046674 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1A8 7F046678 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B1AC 7F04667C 8E0800A0 */ lw $t0, 0xa0($s0) +/* 07B1B0 7F046680 03084823 */ subu $t1, $t8, $t0 +/* 07B1B4 7F046684 0049082A */ slt $at, $v0, $t1 +/* 07B1B8 7F046688 5020000C */ beql $at, $zero, .L7F0466BC +/* 07B1BC 7F04668C 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1C0 7F046690 820B00BC */ lb $t3, 0xbc($s0) +/* 07B1C4 7F046694 55600009 */ bnezl $t3, .L7F0466BC +/* 07B1C8 7F046698 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1CC 7F04669C 8E190008 */ lw $t9, 8($s0) +/* 07B1D0 7F0466A0 02002025 */ move $a0, $s0 +/* 07B1D4 7F0466A4 00195000 */ sll $t2, $t9, 0 +/* 07B1D8 7F0466A8 05420004 */ bltzl $t2, .L7F0466BC +/* 07B1DC 7F0466AC 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1E0 7F0466B0 0FC15262 */ jal set_door_state +/* 07B1E4 7F0466B4 24050002 */ li $a1, 2 +/* 07B1E8 7F0466B8 820C00BC */ lb $t4, 0xbc($s0) +.L7F0466BC: +/* 07B1EC 7F0466BC 24010003 */ li $at, 3 +/* 07B1F0 7F0466C0 5581001B */ bnel $t4, $at, .L7F046730 +/* 07B1F4 7F0466C4 960D009A */ lhu $t5, 0x9a($s0) +/* 07B1F8 7F0466C8 8E0200C8 */ lw $v0, 0xc8($s0) +/* 07B1FC 7F0466CC 24030001 */ li $v1, 1 +/* 07B200 7F0466D0 02002025 */ move $a0, $s0 +/* 07B204 7F0466D4 10400011 */ beqz $v0, .L7F04671C +/* 07B208 7F0466D8 00000000 */ nop +/* 07B20C 7F0466DC 1050000F */ beq $v0, $s0, .L7F04671C +/* 07B210 7F0466E0 00000000 */ nop +/* 07B214 7F0466E4 804E00BC */ lb $t6, 0xbc($v0) +.L7F0466E8: +/* 07B218 7F0466E8 55C00007 */ bnezl $t6, .L7F046708 +/* 07B21C 7F0466EC 00001825 */ move $v1, $zero +/* 07B220 7F0466F0 C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 07B224 7F0466F4 460AB03C */ c.lt.s $f22, $f10 +/* 07B228 7F0466F8 00000000 */ nop +/* 07B22C 7F0466FC 45020003 */ bc1fl .L7F04670C +/* 07B230 7F046700 8C4200C8 */ lw $v0, 0xc8($v0) +/* 07B234 7F046704 00001825 */ move $v1, $zero +.L7F046708: +/* 07B238 7F046708 8C4200C8 */ lw $v0, 0xc8($v0) +.L7F04670C: +/* 07B23C 7F04670C 10400003 */ beqz $v0, .L7F04671C +/* 07B240 7F046710 00000000 */ nop +/* 07B244 7F046714 5450FFF4 */ bnel $v0, $s0, .L7F0466E8 +/* 07B248 7F046718 804E00BC */ lb $t6, 0xbc($v0) +.L7F04671C: +/* 07B24C 7F04671C 50600004 */ beql $v1, $zero, .L7F046730 +/* 07B250 7F046720 960D009A */ lhu $t5, 0x9a($s0) +/* 07B254 7F046724 0FC15229 */ jal sub_GAME_7F0548A4 +/* 07B258 7F046728 24050001 */ li $a1, 1 +/* 07B25C 7F04672C 960D009A */ lhu $t5, 0x9a($s0) +.L7F046730: +/* 07B260 7F046730 24010008 */ li $at, 8 +/* 07B264 7F046734 15A1000B */ bne $t5, $at, .L7F046764 +/* 07B268 7F046738 00000000 */ nop +/* 07B26C 7F04673C 0FC15288 */ jal sub_GAME_7F054A20 +/* 07B270 7F046740 02002025 */ move $a0, $s0 +/* 07B274 7F046744 10400007 */ beqz $v0, .L7F046764 +/* 07B278 7F046748 00000000 */ nop +/* 07B27C 7F04674C 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 07B280 7F046750 02002025 */ move $a0, $s0 +/* 07B284 7F046754 10400003 */ beqz $v0, .L7F046764 +/* 07B288 7F046758 00000000 */ nop +/* 07B28C 7F04675C 0FC15667 */ jal sub_GAME_7F05599C +/* 07B290 7F046760 02602025 */ move $a0, $s3 +.L7F046764: +/* 07B294 7F046764 3C188005 */ lui $t8, %hi(global_timer) +/* 07B298 7F046768 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B29C 7F04676C 8E0F00FC */ lw $t7, 0xfc($s0) +/* 07B2A0 7F046770 3C088005 */ lui $t0, %hi(clock_timer) +/* 07B2A4 7F046774 01F8082A */ slt $at, $t7, $t8 +/* 07B2A8 7F046778 14200004 */ bnez $at, .L7F04678C +/* 07B2AC 7F04677C 00000000 */ nop +/* 07B2B0 7F046780 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 07B2B4 7F046784 550006AA */ bnezl $t0, .L7F048230 +/* 07B2B8 7F046788 92220003 */ lbu $v0, 3($s1) +.L7F04678C: +/* 07B2BC 7F04678C 0FC153ED */ jal sub_GAME_7F054FB4 +/* 07B2C0 7F046790 02002025 */ move $a0, $s0 +/* 07B2C4 7F046794 100006A6 */ b .L7F048230 +/* 07B2C8 7F046798 92220003 */ lbu $v0, 3($s1) +/* 07B2CC 7F04679C 24010006 */ li $at, 6 +.L7F0467A0: +/* 07B2D0 7F0467A0 54410130 */ bnel $v0, $at, .L7F046C64 +/* 07B2D4 7F0467A4 2401000D */ li $at, 13 +/* 07B2D8 7F0467A8 8E290008 */ lw $t1, 8($s1) +/* 07B2DC 7F0467AC 000958C0 */ sll $t3, $t1, 3 +/* 07B2E0 7F0467B0 0562012C */ bltzl $t3, .L7F046C64 +/* 07B2E4 7F0467B4 2401000D */ li $at, 13 +/* 07B2E8 7F0467B8 8E700004 */ lw $s0, 4($s3) +/* 07B2EC 7F0467BC 8E1900D4 */ lw $t9, 0xd4($s0) +/* 07B2F0 7F0467C0 53200004 */ beql $t9, $zero, .L7F0467D4 +/* 07B2F4 7F0467C4 C61200D0 */ lwc1 $f18, 0xd0($s0) +/* 07B2F8 7F0467C8 10000002 */ b .L7F0467D4 +/* 07B2FC 7F0467CC C61200CC */ lwc1 $f18, 0xcc($s0) +/* 07B300 7F0467D0 C61200D0 */ lwc1 $f18, 0xd0($s0) +.L7F0467D4: +/* 07B304 7F0467D4 0FC225E6 */ jal get_curplayer_positiondata +/* 07B308 7F0467D8 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B30C 7F0467DC AFA20514 */ sw $v0, 0x514($sp) +/* 07B310 7F0467E0 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B314 7F0467E4 C4440008 */ lwc1 $f4, 8($v0) +/* 07B318 7F0467E8 C60000E8 */ lwc1 $f0, 0xe8($s0) +/* 07B31C 7F0467EC C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B320 7F0467F0 46082301 */ sub.s $f12, $f4, $f8 +/* 07B324 7F0467F4 C446000C */ lwc1 $f6, 0xc($v0) +/* 07B328 7F0467F8 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B32C 7F0467FC 4600B03C */ c.lt.s $f22, $f0 +/* 07B330 7F046800 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B334 7F046804 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B338 7F046808 24120001 */ li $s2, 1 +/* 07B33C 7F04680C 460A3081 */ sub.s $f2, $f6, $f10 +/* 07B340 7F046810 4500000E */ bc1f .L7F04684C +/* 07B344 7F046814 46082381 */ sub.s $f14, $f4, $f8 +/* 07B348 7F046818 46000182 */ mul.s $f6, $f0, $f0 +/* 07B34C 7F04681C 00000000 */ nop +/* 07B350 7F046820 460C6282 */ mul.s $f10, $f12, $f12 +/* 07B354 7F046824 00000000 */ nop +/* 07B358 7F046828 46021102 */ mul.s $f4, $f2, $f2 +/* 07B35C 7F04682C 46045200 */ add.s $f8, $f10, $f4 +/* 07B360 7F046830 460E7282 */ mul.s $f10, $f14, $f14 +/* 07B364 7F046834 460A4100 */ add.s $f4, $f8, $f10 +/* 07B368 7F046838 4604303C */ c.lt.s $f6, $f4 +/* 07B36C 7F04683C 00000000 */ nop +/* 07B370 7F046840 45000002 */ bc1f .L7F04684C +/* 07B374 7F046844 00000000 */ nop +/* 07B378 7F046848 00009025 */ move $s2, $zero +.L7F04684C: +/* 07B37C 7F04684C 8E2A0008 */ lw $t2, 8($s1) +/* 07B380 7F046850 000A6080 */ sll $t4, $t2, 2 +/* 07B384 7F046854 05810002 */ bgez $t4, .L7F046860 +/* 07B388 7F046858 00000000 */ nop +/* 07B38C 7F04685C 00009025 */ move $s2, $zero +.L7F046860: +/* 07B390 7F046860 1240003A */ beqz $s2, .L7F04694C +/* 07B394 7F046864 00000000 */ nop +/* 07B398 7F046868 0FC16A8C */ jal atan2f +/* 07B39C 7F04686C E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B3A0 7F046870 C60200C8 */ lwc1 $f2, 0xc8($s0) +/* 07B3A4 7F046874 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B3A8 7F046878 3C018005 */ lui $at, %hi(D_80052ACC) +/* 07B3AC 7F04687C 4616103C */ c.lt.s $f2, $f22 +/* 07B3B0 7F046880 00000000 */ nop +/* 07B3B4 7F046884 45000005 */ bc1f .L7F04689C +/* 07B3B8 7F046888 00000000 */ nop +/* 07B3BC 7F04688C 3C018005 */ lui $at, %hi(D_80052AC8) +/* 07B3C0 7F046890 C4342AC8 */ lwc1 $f20, %lo(D_80052AC8)($at) +/* 07B3C4 7F046894 10000007 */ b .L7F0468B4 +/* 07B3C8 7F046898 46141080 */ add.s $f2, $f2, $f20 +.L7F04689C: +/* 07B3CC 7F04689C C4342ACC */ lwc1 $f20, %lo(D_80052ACC)($at) +/* 07B3D0 7F0468A0 4602A03E */ c.le.s $f20, $f2 +/* 07B3D4 7F0468A4 00000000 */ nop +/* 07B3D8 7F0468A8 45020003 */ bc1fl .L7F0468B8 +/* 07B3DC 7F0468AC C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 07B3E0 7F0468B0 46141081 */ sub.s $f2, $f2, $f20 +.L7F0468B4: +/* 07B3E4 7F0468B4 C60800C4 */ lwc1 $f8, 0xc4($s0) +.L7F0468B8: +/* 07B3E8 7F0468B8 3C018005 */ lui $at, %hi(D_80052AD0) +/* 07B3EC 7F0468BC 46081080 */ add.s $f2, $f2, $f8 +/* 07B3F0 7F0468C0 4602A03E */ c.le.s $f20, $f2 +/* 07B3F4 7F0468C4 00000000 */ nop +/* 07B3F8 7F0468C8 45020003 */ bc1fl .L7F0468D8 +/* 07B3FC 7F0468CC 4602003C */ c.lt.s $f0, $f2 +/* 07B400 7F0468D0 46141081 */ sub.s $f2, $f2, $f20 +/* 07B404 7F0468D4 4602003C */ c.lt.s $f0, $f2 +.L7F0468D8: +/* 07B408 7F0468D8 46020381 */ sub.s $f14, $f0, $f2 +/* 07B40C 7F0468DC 45000002 */ bc1f .L7F0468E8 +/* 07B410 7F0468E0 46007306 */ mov.s $f12, $f14 +/* 07B414 7F0468E4 46147300 */ add.s $f12, $f14, $f20 +.L7F0468E8: +/* 07B418 7F0468E8 C4202AD0 */ lwc1 $f0, %lo(D_80052AD0)($at) +/* 07B41C 7F0468EC 3C018005 */ lui $at, %hi(D_80052AD4) +/* 07B420 7F0468F0 46006301 */ sub.s $f12, $f12, $f0 +/* 07B424 7F0468F4 4616603C */ c.lt.s $f12, $f22 +/* 07B428 7F0468F8 00000000 */ nop +/* 07B42C 7F0468FC 45020003 */ bc1fl .L7F04690C +/* 07B430 7F046900 460C003C */ c.lt.s $f0, $f12 +/* 07B434 7F046904 46146300 */ add.s $f12, $f12, $f20 +/* 07B438 7F046908 460C003C */ c.lt.s $f0, $f12 +.L7F04690C: +/* 07B43C 7F04690C 00000000 */ nop +/* 07B440 7F046910 45000002 */ bc1f .L7F04691C +/* 07B444 7F046914 00000000 */ nop +/* 07B448 7F046918 46146301 */ sub.s $f12, $f12, $f20 +.L7F04691C: +/* 07B44C 7F04691C C42A2AD4 */ lwc1 $f10, %lo(D_80052AD4)($at) +/* 07B450 7F046920 3C018005 */ lui $at, %hi(D_80052AD8) +/* 07B454 7F046924 460C503C */ c.lt.s $f10, $f12 +/* 07B458 7F046928 00000000 */ nop +/* 07B45C 7F04692C 45030007 */ bc1tl .L7F04694C +/* 07B460 7F046930 00009025 */ move $s2, $zero +/* 07B464 7F046934 C4262AD8 */ lwc1 $f6, %lo(D_80052AD8)($at) +/* 07B468 7F046938 4606603C */ c.lt.s $f12, $f6 +/* 07B46C 7F04693C 00000000 */ nop +/* 07B470 7F046940 45000002 */ bc1f .L7F04694C +/* 07B474 7F046944 00000000 */ nop +/* 07B478 7F046948 00009025 */ move $s2, $zero +.L7F04694C: +/* 07B47C 7F04694C 12400034 */ beqz $s2, .L7F046A20 +/* 07B480 7F046950 00002825 */ move $a1, $zero +/* 07B484 7F046954 8E6E0014 */ lw $t6, 0x14($s3) +/* 07B488 7F046958 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B48C 7F04695C 8FA40514 */ lw $a0, 0x514($sp) +/* 07B490 7F046960 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B494 7F046964 AFAE04F0 */ sw $t6, 0x4f0($sp) +/* 07B498 7F046968 8FA20514 */ lw $v0, 0x514($sp) +/* 07B49C 7F04696C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07B4A0 7F046970 8E650008 */ lw $a1, 8($s3) +/* 07B4A4 7F046974 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B4A8 7F046978 8E660010 */ lw $a2, 0x10($s3) +/* 07B4AC 7F04697C 8C470008 */ lw $a3, 8($v0) +/* 07B4B0 7F046980 44814000 */ mtc1 $at, $f8 +/* 07B4B4 7F046984 44815000 */ mtc1 $at, $f10 +/* 07B4B8 7F046988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B4BC 7F04698C 44813000 */ mtc1 $at, $f6 +/* 07B4C0 7F046990 240D001B */ li $t5, 27 +/* 07B4C4 7F046994 AFAD0014 */ sw $t5, 0x14($sp) +/* 07B4C8 7F046998 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07B4CC 7F04699C 27A404F0 */ addiu $a0, $sp, 0x4f0 +/* 07B4D0 7F0469A0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07B4D4 7F0469A4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07B4D8 7F0469A8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 07B4DC 7F0469AC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07B4E0 7F0469B0 E7A60024 */ swc1 $f6, 0x24($sp) +/* 07B4E4 7F0469B4 10400015 */ beqz $v0, .L7F046A0C +/* 07B4E8 7F0469B8 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B4EC 7F0469BC 3C188005 */ lui $t8, %hi(clock_timer) +/* 07B4F0 7F0469C0 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07B4F4 7F0469C4 8E0F00E0 */ lw $t7, 0xe0($s0) +/* 07B4F8 7F0469C8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 07B4FC 7F0469CC 44812000 */ mtc1 $at, $f4 +/* 07B500 7F0469D0 01F84021 */ addu $t0, $t7, $t8 +/* 07B504 7F0469D4 AE0800E0 */ sw $t0, 0xe0($s0) +/* 07B508 7F0469D8 3C018003 */ lui $at, %hi(D_80030B14) +/* 07B50C 7F0469DC C4280B14 */ lwc1 $f8, %lo(D_80030B14)($at) +/* 07B510 7F0469E0 46082282 */ mul.s $f10, $f4, $f8 +/* 07B514 7F0469E4 4600518D */ trunc.w.s $f6, $f10 +/* 07B518 7F0469E8 44193000 */ mfc1 $t9, $f6 +/* 07B51C 7F0469EC 00000000 */ nop +/* 07B520 7F0469F0 0119082A */ slt $at, $t0, $t9 +/* 07B524 7F0469F4 54200006 */ bnezl $at, .L7F046A10 +/* 07B528 7F0469F8 8FA40514 */ lw $a0, 0x514($sp) +/* 07B52C 7F0469FC 0FC15772 */ jal start_alarm +/* 07B530 7F046A00 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B534 7F046A04 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B538 7F046A08 AE0000E0 */ sw $zero, 0xe0($s0) +.L7F046A0C: +/* 07B53C 7F046A0C 8FA40514 */ lw $a0, 0x514($sp) +.L7F046A10: +/* 07B540 7F046A10 24050001 */ li $a1, 1 +/* 07B544 7F046A14 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B548 7F046A18 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B54C 7F046A1C C7B20518 */ lwc1 $f18, 0x518($sp) +.L7F046A20: +/* 07B550 7F046A20 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B554 7F046A24 4612703C */ c.lt.s $f14, $f18 +/* 07B558 7F046A28 00000000 */ nop +/* 07B55C 7F046A2C 45020047 */ bc1fl .L7F046B4C +/* 07B560 7F046A30 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B564 7F046A34 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B568 7F046A38 3C018005 */ lui $at, %hi(D_80052AE0) +/* 07B56C 7F046A3C C4302AE0 */ lwc1 $f16, %lo(D_80052AE0)($at) +/* 07B570 7F046A40 46000102 */ mul.s $f4, $f0, $f0 +/* 07B574 7F046A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B578 7F046A48 44814000 */ mtc1 $at, $f8 +/* 07B57C 7F046A4C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B580 7F046A50 46082282 */ mul.s $f10, $f4, $f8 +/* 07B584 7F046A54 46105083 */ div.s $f2, $f10, $f16 +/* 07B588 7F046A58 46029181 */ sub.s $f6, $f18, $f2 +/* 07B58C 7F046A5C 460E303E */ c.le.s $f6, $f14 +/* 07B590 7F046A60 00000000 */ nop +/* 07B594 7F046A64 4502000F */ bc1fl .L7F046AA4 +/* 07B598 7F046A68 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B59C 7F046A6C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B5A0 7F046A70 46048202 */ mul.s $f8, $f16, $f4 +/* 07B5A4 7F046A74 46080281 */ sub.s $f10, $f0, $f8 +/* 07B5A8 7F046A78 E60A00D8 */ swc1 $f10, 0xd8($s0) +/* 07B5AC 7F046A7C C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B5B0 7F046A80 4610003C */ c.lt.s $f0, $f16 +/* 07B5B4 7F046A84 00000000 */ nop +/* 07B5B8 7F046A88 45000003 */ bc1f .L7F046A98 +/* 07B5BC 7F046A8C 00000000 */ nop +/* 07B5C0 7F046A90 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B5C4 7F046A94 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046A98: +/* 07B5C8 7F046A98 1000001D */ b .L7F046B10 +/* 07B5CC 7F046A9C C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B5D0 7F046AA0 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046AA4: +/* 07B5D4 7F046AA4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B5D8 7F046AA8 460C003C */ c.lt.s $f0, $f12 +/* 07B5DC 7F046AAC 00000000 */ nop +/* 07B5E0 7F046AB0 45000017 */ bc1f .L7F046B10 +/* 07B5E4 7F046AB4 00000000 */ nop +/* 07B5E8 7F046AB8 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07B5EC 7F046ABC 46068102 */ mul.s $f4, $f16, $f6 +/* 07B5F0 7F046AC0 46040080 */ add.s $f2, $f0, $f4 +/* 07B5F4 7F046AC4 4602603C */ c.lt.s $f12, $f2 +/* 07B5F8 7F046AC8 00000000 */ nop +/* 07B5FC 7F046ACC 45000002 */ bc1f .L7F046AD8 +/* 07B600 7F046AD0 00000000 */ nop +/* 07B604 7F046AD4 46006086 */ mov.s $f2, $f12 +.L7F046AD8: +/* 07B608 7F046AD8 46021202 */ mul.s $f8, $f2, $f2 +/* 07B60C 7F046ADC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B610 7F046AE0 44815000 */ mtc1 $at, $f10 +/* 07B614 7F046AE4 00000000 */ nop +/* 07B618 7F046AE8 460A4182 */ mul.s $f6, $f8, $f10 +/* 07B61C 7F046AEC 46103103 */ div.s $f4, $f6, $f16 +/* 07B620 7F046AF0 46049201 */ sub.s $f8, $f18, $f4 +/* 07B624 7F046AF4 4608703C */ c.lt.s $f14, $f8 +/* 07B628 7F046AF8 00000000 */ nop +/* 07B62C 7F046AFC 45000004 */ bc1f .L7F046B10 +/* 07B630 7F046B00 00000000 */ nop +/* 07B634 7F046B04 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B638 7F046B08 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B63C 7F046B0C C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046B10: +/* 07B640 7F046B10 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B644 7F046B14 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B648 7F046B18 460A0182 */ mul.s $f6, $f0, $f10 +/* 07B64C 7F046B1C 46067100 */ add.s $f4, $f14, $f6 +/* 07B650 7F046B20 E60400C8 */ swc1 $f4, 0xc8($s0) +/* 07B654 7F046B24 C60800C8 */ lwc1 $f8, 0xc8($s0) +/* 07B658 7F046B28 4608903E */ c.le.s $f18, $f8 +/* 07B65C 7F046B2C 00000000 */ nop +/* 07B660 7F046B30 450205BF */ bc1fl .L7F048230 +/* 07B664 7F046B34 92220003 */ lbu $v0, 3($s1) +/* 07B668 7F046B38 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B66C 7F046B3C E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B670 7F046B40 100005BA */ b .L7F04822C +/* 07B674 7F046B44 AE0000D4 */ sw $zero, 0xd4($s0) +/* 07B678 7F046B48 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046B4C: +/* 07B67C 7F046B4C 3C018005 */ lui $at, %hi(D_80052AE4) +/* 07B680 7F046B50 C4302AE4 */ lwc1 $f16, %lo(D_80052AE4)($at) +/* 07B684 7F046B54 46000282 */ mul.s $f10, $f0, $f0 +/* 07B688 7F046B58 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B68C 7F046B5C 44813000 */ mtc1 $at, $f6 +/* 07B690 7F046B60 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B694 7F046B64 240A0001 */ li $t2, 1 +/* 07B698 7F046B68 46065102 */ mul.s $f4, $f10, $f6 +/* 07B69C 7F046B6C 46102083 */ div.s $f2, $f4, $f16 +/* 07B6A0 7F046B70 46029200 */ add.s $f8, $f18, $f2 +/* 07B6A4 7F046B74 4608703E */ c.le.s $f14, $f8 +/* 07B6A8 7F046B78 00000000 */ nop +/* 07B6AC 7F046B7C 4502000F */ bc1fl .L7F046BBC +/* 07B6B0 7F046B80 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B6B4 7F046B84 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B6B8 7F046B88 460A8182 */ mul.s $f6, $f16, $f10 +/* 07B6BC 7F046B8C 46060101 */ sub.s $f4, $f0, $f6 +/* 07B6C0 7F046B90 E60400D8 */ swc1 $f4, 0xd8($s0) +/* 07B6C4 7F046B94 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B6C8 7F046B98 4610003C */ c.lt.s $f0, $f16 +/* 07B6CC 7F046B9C 00000000 */ nop +/* 07B6D0 7F046BA0 45000003 */ bc1f .L7F046BB0 +/* 07B6D4 7F046BA4 00000000 */ nop +/* 07B6D8 7F046BA8 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B6DC 7F046BAC C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046BB0: +/* 07B6E0 7F046BB0 1000001D */ b .L7F046C28 +/* 07B6E4 7F046BB4 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B6E8 7F046BB8 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046BBC: +/* 07B6EC 7F046BBC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B6F0 7F046BC0 460C003C */ c.lt.s $f0, $f12 +/* 07B6F4 7F046BC4 00000000 */ nop +/* 07B6F8 7F046BC8 45000017 */ bc1f .L7F046C28 +/* 07B6FC 7F046BCC 00000000 */ nop +/* 07B700 7F046BD0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07B704 7F046BD4 46088282 */ mul.s $f10, $f16, $f8 +/* 07B708 7F046BD8 460A0080 */ add.s $f2, $f0, $f10 +/* 07B70C 7F046BDC 4602603C */ c.lt.s $f12, $f2 +/* 07B710 7F046BE0 00000000 */ nop +/* 07B714 7F046BE4 45000002 */ bc1f .L7F046BF0 +/* 07B718 7F046BE8 00000000 */ nop +/* 07B71C 7F046BEC 46006086 */ mov.s $f2, $f12 +.L7F046BF0: +/* 07B720 7F046BF0 46021182 */ mul.s $f6, $f2, $f2 +/* 07B724 7F046BF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B728 7F046BF8 44812000 */ mtc1 $at, $f4 +/* 07B72C 7F046BFC 00000000 */ nop +/* 07B730 7F046C00 46043202 */ mul.s $f8, $f6, $f4 +/* 07B734 7F046C04 46104283 */ div.s $f10, $f8, $f16 +/* 07B738 7F046C08 460A9180 */ add.s $f6, $f18, $f10 +/* 07B73C 7F046C0C 460E303C */ c.lt.s $f6, $f14 +/* 07B740 7F046C10 00000000 */ nop +/* 07B744 7F046C14 45000004 */ bc1f .L7F046C28 +/* 07B748 7F046C18 00000000 */ nop +/* 07B74C 7F046C1C E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B750 7F046C20 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B754 7F046C24 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046C28: +/* 07B758 7F046C28 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B75C 7F046C2C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B760 7F046C30 46040202 */ mul.s $f8, $f0, $f4 +/* 07B764 7F046C34 46087281 */ sub.s $f10, $f14, $f8 +/* 07B768 7F046C38 E60A00C8 */ swc1 $f10, 0xc8($s0) +/* 07B76C 7F046C3C C60600C8 */ lwc1 $f6, 0xc8($s0) +/* 07B770 7F046C40 4612303E */ c.le.s $f6, $f18 +/* 07B774 7F046C44 00000000 */ nop +/* 07B778 7F046C48 45020579 */ bc1fl .L7F048230 +/* 07B77C 7F046C4C 92220003 */ lbu $v0, 3($s1) +/* 07B780 7F046C50 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B784 7F046C54 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B788 7F046C58 10000574 */ b .L7F04822C +/* 07B78C 7F046C5C AE0A00D4 */ sw $t2, 0xd4($s0) +/* 07B790 7F046C60 2401000D */ li $at, 13 +.L7F046C64: +/* 07B794 7F046C64 5441023F */ bnel $v0, $at, .L7F047564 +/* 07B798 7F046C68 24010027 */ li $at, 39 +/* 07B79C 7F046C6C 8E2C0008 */ lw $t4, 8($s1) +/* 07B7A0 7F046C70 000C70C0 */ sll $t6, $t4, 3 +/* 07B7A4 7F046C74 05C2023B */ bltzl $t6, .L7F047564 +/* 07B7A8 7F046C78 24010027 */ li $at, 39 +/* 07B7AC 7F046C7C 0FC225E6 */ jal get_curplayer_positiondata +/* 07B7B0 7F046C80 8E700004 */ lw $s0, 4($s3) +/* 07B7B4 7F046C84 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07B7B8 7F046C88 AFA004A8 */ sw $zero, 0x4a8($sp) +/* 07B7BC 7F046C8C AFA004A4 */ sw $zero, 0x4a4($sp) +/* 07B7C0 7F046C90 8E23000C */ lw $v1, 0xc($s1) +/* 07B7C4 7F046C94 00409025 */ move $s2, $v0 +/* 07B7C8 7F046C98 00036800 */ sll $t5, $v1, 0 +/* 07B7CC 7F046C9C 05A10056 */ bgez $t5, .L7F046DF8 +/* 07B7D0 7F046CA0 00037840 */ sll $t7, $v1, 1 +/* 07B7D4 7F046CA4 05E30008 */ bgezl $t7, .L7F046CC8 +/* 07B7D8 7F046CA8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7DC 7F046CAC C6080090 */ lwc1 $f8, 0x90($s0) +/* 07B7E0 7F046CB0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B7E4 7F046CB4 E6080084 */ swc1 $f8, 0x84($s0) +/* 07B7E8 7F046CB8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7EC 7F046CBC 10000036 */ b .L7F046D98 +/* 07B7F0 7F046CC0 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B7F4 7F046CC4 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046CC8: +/* 07B7F8 7F046CC8 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07B7FC 7F046CCC 460A1032 */ c.eq.s $f2, $f10 +/* 07B800 7F046CD0 00000000 */ nop +/* 07B804 7F046CD4 45000030 */ bc1f .L7F046D98 +/* 07B808 7F046CD8 00000000 */ nop +/* 07B80C 7F046CDC C6060098 */ lwc1 $f6, 0x98($s0) +/* 07B810 7F046CE0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B814 7F046CE4 46043032 */ c.eq.s $f6, $f4 +/* 07B818 7F046CE8 00000000 */ nop +/* 07B81C 7F046CEC 4500002A */ bc1f .L7F046D98 +/* 07B820 7F046CF0 00000000 */ nop +/* 07B824 7F046CF4 0C002914 */ jal get_random_value +/* 07B828 7F046CF8 00000000 */ nop +/* 07B82C 7F046CFC 44824000 */ mtc1 $v0, $f8 +/* 07B830 7F046D00 3C018005 */ lui $at, %hi(D_80052AE8) +/* 07B834 7F046D04 C4342AE8 */ lwc1 $f20, %lo(D_80052AE8)($at) +/* 07B838 7F046D08 04410005 */ bgez $v0, .L7F046D20 +/* 07B83C 7F046D0C 468042A0 */ cvt.s.w $f10, $f8 +/* 07B840 7F046D10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B844 7F046D14 44813000 */ mtc1 $at, $f6 +/* 07B848 7F046D18 00000000 */ nop +/* 07B84C 7F046D1C 46065280 */ add.s $f10, $f10, $f6 +.L7F046D20: +/* 07B850 7F046D20 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B854 7F046D24 44812000 */ mtc1 $at, $f4 +/* 07B858 7F046D28 3C01421C */ li $at, 0x421C0000 # 39.000000 +/* 07B85C 7F046D2C 44813000 */ mtc1 $at, $f6 +/* 07B860 7F046D30 46045202 */ mul.s $f8, $f10, $f4 +/* 07B864 7F046D34 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B868 7F046D38 44812000 */ mtc1 $at, $f4 +/* 07B86C 7F046D3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07B870 7F046D40 46064282 */ mul.s $f10, $f8, $f6 +/* 07B874 7F046D44 46045200 */ add.s $f8, $f10, $f4 +/* 07B878 7F046D48 44815000 */ mtc1 $at, $f10 +/* 07B87C 7F046D4C 46144182 */ mul.s $f6, $f8, $f20 +/* 07B880 7F046D50 460A3103 */ div.s $f4, $f6, $f10 +/* 07B884 7F046D54 0C002914 */ jal get_random_value +/* 07B888 7F046D58 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B88C 7F046D5C 44824000 */ mtc1 $v0, $f8 +/* 07B890 7F046D60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B894 7F046D64 04410004 */ bgez $v0, .L7F046D78 +/* 07B898 7F046D68 468041A0 */ cvt.s.w $f6, $f8 +/* 07B89C 7F046D6C 44815000 */ mtc1 $at, $f10 +/* 07B8A0 7F046D70 00000000 */ nop +/* 07B8A4 7F046D74 460A3180 */ add.s $f6, $f6, $f10 +.L7F046D78: +/* 07B8A8 7F046D78 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B8AC 7F046D7C 44812000 */ mtc1 $at, $f4 +/* 07B8B0 7F046D80 00000000 */ nop +/* 07B8B4 7F046D84 46043202 */ mul.s $f8, $f6, $f4 +/* 07B8B8 7F046D88 00000000 */ nop +/* 07B8BC 7F046D8C 46144282 */ mul.s $f10, $f8, $f20 +/* 07B8C0 7F046D90 E60A0084 */ swc1 $f10, 0x84($s0) +/* 07B8C4 7F046D94 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046D98: +/* 07B8C8 7F046D98 3C018005 */ lui $at, %hi(D_80052AEC) +/* 07B8CC 7F046D9C C4202AEC */ lwc1 $f0, %lo(D_80052AEC)($at) +/* 07B8D0 7F046DA0 3C018005 */ lui $at, %hi(D_80052AF4) +/* 07B8D4 7F046DA4 C4262AF4 */ lwc1 $f6, %lo(D_80052AF4)($at) +/* 07B8D8 7F046DA8 44051000 */ mfc1 $a1, $f2 +/* 07B8DC 7F046DAC 44070000 */ mfc1 $a3, $f0 +/* 07B8E0 7F046DB0 26040090 */ addiu $a0, $s0, 0x90 +/* 07B8E4 7F046DB4 26060094 */ addiu $a2, $s0, 0x94 +/* 07B8E8 7F046DB8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B8EC 7F046DBC 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B8F0 7F046DC0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07B8F4 7F046DC4 3C018005 */ lui $at, %hi(D_80052AF8) +/* 07B8F8 7F046DC8 C4202AF8 */ lwc1 $f0, %lo(D_80052AF8)($at) +/* 07B8FC 7F046DCC 3C018005 */ lui $at, %hi(D_80052AFC) +/* 07B900 7F046DD0 C4242AFC */ lwc1 $f4, %lo(D_80052AFC)($at) +/* 07B904 7F046DD4 8E050098 */ lw $a1, 0x98($s0) +/* 07B908 7F046DD8 44070000 */ mfc1 $a3, $f0 +/* 07B90C 7F046DDC 2604009C */ addiu $a0, $s0, 0x9c +/* 07B910 7F046DE0 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07B914 7F046DE4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B918 7F046DE8 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B91C 7F046DEC E7A40014 */ swc1 $f4, 0x14($sp) +/* 07B920 7F046DF0 1000050F */ b .L7F048230 +/* 07B924 7F046DF4 92220003 */ lbu $v0, 3($s1) +.L7F046DF8: +/* 07B928 7F046DF8 C6480008 */ lwc1 $f8, 8($s2) +/* 07B92C 7F046DFC C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07B930 7F046E00 C646000C */ lwc1 $f6, 0xc($s2) +/* 07B934 7F046E04 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07B938 7F046E08 460A4001 */ sub.s $f0, $f8, $f10 +/* 07B93C 7F046E0C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 07B940 7F046E10 44815000 */ mtc1 $at, $f10 +/* 07B944 7F046E14 46043201 */ sub.s $f8, $f6, $f4 +/* 07B948 7F046E18 460A4181 */ sub.s $f6, $f8, $f10 +/* 07B94C 7F046E1C 46000282 */ mul.s $f10, $f0, $f0 +/* 07B950 7F046E20 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 07B954 7F046E24 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B958 7F046E28 C6440010 */ lwc1 $f4, 0x10($s2) +/* 07B95C 7F046E2C E7A004C4 */ swc1 $f0, 0x4c4($sp) +/* 07B960 7F046E30 46082081 */ sub.s $f2, $f4, $f8 +/* 07B964 7F046E34 46021182 */ mul.s $f6, $f2, $f2 +/* 07B968 7F046E38 E7A204BC */ swc1 $f2, 0x4bc($sp) +/* 07B96C 7F046E3C 46065500 */ add.s $f20, $f10, $f6 +/* 07B970 7F046E40 E7B404B8 */ swc1 $f20, 0x4b8($sp) +/* 07B974 7F046E44 0C007DF8 */ jal sqrtf +/* 07B978 7F046E48 4600A306 */ mov.s $f12, $f20 +/* 07B97C 7F046E4C E7A004B0 */ swc1 $f0, 0x4b0($sp) +/* 07B980 7F046E50 8E380008 */ lw $t8, 8($s1) +/* 07B984 7F046E54 46000086 */ mov.s $f2, $f0 +/* 07B988 7F046E58 00184100 */ sll $t0, $t8, 4 +/* 07B98C 7F046E5C 05030008 */ bgezl $t0, .L7F046E80 +/* 07B990 7F046E60 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07B994 7F046E64 C7A004C0 */ lwc1 $f0, 0x4c0($sp) +/* 07B998 7F046E68 46000102 */ mul.s $f4, $f0, $f0 +/* 07B99C 7F046E6C 4604A300 */ add.s $f12, $f20, $f4 +/* 07B9A0 7F046E70 0C007DF8 */ jal sqrtf +/* 07B9A4 7F046E74 E7AC04B8 */ swc1 $f12, 0x4b8($sp) +/* 07B9A8 7F046E78 46000086 */ mov.s $f2, $f0 +/* 07B9AC 7F046E7C C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +.L7F046E80: +/* 07B9B0 7F046E80 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07B9B4 7F046E84 E7A204B4 */ swc1 $f2, 0x4b4($sp) +/* 07B9B8 7F046E88 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07B9BC 7F046E8C C6080098 */ lwc1 $f8, 0x98($s0) +/* 07B9C0 7F046E90 C6100084 */ lwc1 $f16, 0x84($s0) +/* 07B9C4 7F046E94 C7A204B4 */ lwc1 $f2, 0x4b4($sp) +/* 07B9C8 7F046E98 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07B9CC 7F046E9C C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 07B9D0 7F046EA0 460A103E */ c.le.s $f2, $f10 +/* 07B9D4 7F046EA4 00000000 */ nop +/* 07B9D8 7F046EA8 45020096 */ bc1fl .L7F047104 +/* 07B9DC 7F046EAC 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07B9E0 7F046EB0 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) +/* 07B9E4 7F046EB4 C7AE04BC */ lwc1 $f14, 0x4bc($sp) +/* 07B9E8 7F046EB8 0FC16A8C */ jal atan2f +/* 07B9EC 7F046EBC E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07B9F0 7F046EC0 E7A0049C */ swc1 $f0, 0x49c($sp) +/* 07B9F4 7F046EC4 C7AC04C0 */ lwc1 $f12, 0x4c0($sp) +/* 07B9F8 7F046EC8 0FC16A8C */ jal atan2f +/* 07B9FC 7F046ECC C7AE04B0 */ lwc1 $f14, 0x4b0($sp) +/* 07BA00 7F046ED0 E7A00498 */ swc1 $f0, 0x498($sp) +/* 07BA04 7F046ED4 8E220008 */ lw $v0, 8($s1) +/* 07BA08 7F046ED8 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BA0C 7F046EDC 24190001 */ li $t9, 1 +/* 07BA10 7F046EE0 00025840 */ sll $t3, $v0, 1 +/* 07BA14 7F046EE4 05600003 */ bltz $t3, .L7F046EF4 +/* 07BA18 7F046EE8 00024880 */ sll $t1, $v0, 2 +/* 07BA1C 7F046EEC 05210005 */ bgez $t1, .L7F046F04 +/* 07BA20 7F046EF0 C7A6049C */ lwc1 $f6, 0x49c($sp) +.L7F046EF4: +/* 07BA24 7F046EF4 3C018005 */ lui $at, %hi(D_80052B00) +/* 07BA28 7F046EF8 C4342B00 */ lwc1 $f20, %lo(D_80052B00)($at) +/* 07BA2C 7F046EFC 10000027 */ b .L7F046F9C +/* 07BA30 7F046F00 AFB904AC */ sw $t9, 0x4ac($sp) +.L7F046F04: +/* 07BA34 7F046F04 C6040090 */ lwc1 $f4, 0x90($s0) +/* 07BA38 7F046F08 3C018005 */ lui $at, %hi(D_80052B04) +/* 07BA3C 7F046F0C 46043301 */ sub.s $f12, $f6, $f4 +/* 07BA40 7F046F10 4616603C */ c.lt.s $f12, $f22 +/* 07BA44 7F046F14 00000000 */ nop +/* 07BA48 7F046F18 45000003 */ bc1f .L7F046F28 +/* 07BA4C 7F046F1C 00000000 */ nop +/* 07BA50 7F046F20 C4342B04 */ lwc1 $f20, %lo(D_80052B04)($at) +/* 07BA54 7F046F24 46146300 */ add.s $f12, $f12, $f20 +.L7F046F28: +/* 07BA58 7F046F28 3C018005 */ lui $at, %hi(D_80052B08) +/* 07BA5C 7F046F2C C4342B08 */ lwc1 $f20, %lo(D_80052B08)($at) +/* 07BA60 7F046F30 3C018005 */ lui $at, %hi(D_80052B0C) +/* 07BA64 7F046F34 C4282B0C */ lwc1 $f8, %lo(D_80052B0C)($at) +/* 07BA68 7F046F38 3C018005 */ lui $at, %hi(D_80052B10) +/* 07BA6C 7F046F3C 460C403C */ c.lt.s $f8, $f12 +/* 07BA70 7F046F40 00000000 */ nop +/* 07BA74 7F046F44 45020003 */ bc1fl .L7F046F54 +/* 07BA78 7F046F48 C60A009C */ lwc1 $f10, 0x9c($s0) +/* 07BA7C 7F046F4C 46146301 */ sub.s $f12, $f12, $f20 +/* 07BA80 7F046F50 C60A009C */ lwc1 $f10, 0x9c($s0) +.L7F046F54: +/* 07BA84 7F046F54 460A0081 */ sub.s $f2, $f0, $f10 +/* 07BA88 7F046F58 4616103C */ c.lt.s $f2, $f22 +/* 07BA8C 7F046F5C 00000000 */ nop +/* 07BA90 7F046F60 45000001 */ bc1f .L7F046F68 +/* 07BA94 7F046F64 00000000 */ nop +.L7F046F68: +/* 07BA98 7F046F68 C4262B10 */ lwc1 $f6, %lo(D_80052B10)($at) +/* 07BA9C 7F046F6C 3C018005 */ lui $at, %hi(D_80052B14) +/* 07BAA0 7F046F70 4606603C */ c.lt.s $f12, $f6 +/* 07BAA4 7F046F74 00000000 */ nop +/* 07BAA8 7F046F78 45020009 */ bc1fl .L7F046FA0 +/* 07BAAC 7F046F7C 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAB0 7F046F80 C4242B14 */ lwc1 $f4, %lo(D_80052B14)($at) +/* 07BAB4 7F046F84 240A0001 */ li $t2, 1 +/* 07BAB8 7F046F88 460C203C */ c.lt.s $f4, $f12 +/* 07BABC 7F046F8C 00000000 */ nop +/* 07BAC0 7F046F90 45020003 */ bc1fl .L7F046FA0 +/* 07BAC4 7F046F94 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAC8 7F046F98 AFAA04AC */ sw $t2, 0x4ac($sp) +.L7F046F9C: +/* 07BACC 7F046F9C 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F046FA0: +/* 07BAD0 7F046FA0 C7A8049C */ lwc1 $f8, 0x49c($sp) +/* 07BAD4 7F046FA4 02402025 */ move $a0, $s2 +/* 07BAD8 7F046FA8 11800055 */ beqz $t4, .L7F047100 +/* 07BADC 7F046FAC 00002825 */ move $a1, $zero +/* 07BAE0 7F046FB0 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 07BAE4 7F046FB4 3C018005 */ lui $at, %hi(D_80052B18) +/* 07BAE8 7F046FB8 C4262B18 */ lwc1 $f6, %lo(D_80052B18)($at) +/* 07BAEC 7F046FBC 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BAF0 7F046FC0 8E6E0014 */ lw $t6, 0x14($s3) +/* 07BAF4 7F046FC4 3C018005 */ lui $at, %hi(D_80052B1C) +/* 07BAF8 7F046FC8 4606003C */ c.lt.s $f0, $f6 +/* 07BAFC 7F046FCC AFAE0490 */ sw $t6, 0x490($sp) +/* 07BB00 7F046FD0 45000003 */ bc1f .L7F046FE0 +/* 07BB04 7F046FD4 00000000 */ nop +/* 07BB08 7F046FD8 10000007 */ b .L7F046FF8 +/* 07BB0C 7F046FDC 46140000 */ add.s $f0, $f0, $f20 +.L7F046FE0: +/* 07BB10 7F046FE0 C4242B1C */ lwc1 $f4, %lo(D_80052B1C)($at) +/* 07BB14 7F046FE4 4600203E */ c.le.s $f4, $f0 +/* 07BB18 7F046FE8 00000000 */ nop +/* 07BB1C 7F046FEC 45020003 */ bc1fl .L7F046FFC +/* 07BB20 7F046FF0 E7A00494 */ swc1 $f0, 0x494($sp) +/* 07BB24 7F046FF4 46140001 */ sub.s $f0, $f0, $f20 +.L7F046FF8: +/* 07BB28 7F046FF8 E7A00494 */ swc1 $f0, 0x494($sp) +.L7F046FFC: +/* 07BB2C 7F046FFC 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BB30 7F047000 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB34 7F047004 C7A00494 */ lwc1 $f0, 0x494($sp) +/* 07BB38 7F047008 C6080088 */ lwc1 $f8, 0x88($s0) +/* 07BB3C 7F04700C C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BB40 7F047010 4608003E */ c.le.s $f0, $f8 +/* 07BB44 7F047014 00000000 */ nop +/* 07BB48 7F047018 45020027 */ bc1fl .L7F0470B8 +/* 07BB4C 7F04701C 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB50 7F047020 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 07BB54 7F047024 240D001B */ li $t5, 27 +/* 07BB58 7F047028 4600503E */ c.le.s $f10, $f0 +/* 07BB5C 7F04702C 00000000 */ nop +/* 07BB60 7F047030 45020021 */ bc1fl .L7F0470B8 +/* 07BB64 7F047034 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB68 7F047038 C6460010 */ lwc1 $f6, 0x10($s2) +/* 07BB6C 7F04703C 8E650008 */ lw $a1, 8($s3) +/* 07BB70 7F047040 8E660010 */ lw $a2, 0x10($s3) +/* 07BB74 7F047044 8E470008 */ lw $a3, 8($s2) +/* 07BB78 7F047048 AFAD0014 */ sw $t5, 0x14($sp) +/* 07BB7C 7F04704C E7A60010 */ swc1 $f6, 0x10($sp) +/* 07BB80 7F047050 C660000C */ lwc1 $f0, 0xc($s3) +/* 07BB84 7F047054 27A40490 */ addiu $a0, $sp, 0x490 +/* 07BB88 7F047058 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07BB8C 7F04705C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07BB90 7F047060 C642000C */ lwc1 $f2, 0xc($s2) +/* 07BB94 7F047064 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB98 7F047068 E7A20020 */ swc1 $f2, 0x20($sp) +/* 07BB9C 7F04706C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07BBA0 7F047070 E7A20024 */ swc1 $f2, 0x24($sp) +/* 07BBA4 7F047074 1040000F */ beqz $v0, .L7F0470B4 +/* 07BBA8 7F047078 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BBAC 7F04707C 8FAF0490 */ lw $t7, 0x490($sp) +/* 07BBB0 7F047080 8E580014 */ lw $t8, 0x14($s2) +/* 07BBB4 7F047084 55F8000C */ bnel $t7, $t8, .L7F0470B8 +/* 07BBB8 7F047088 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BBBC 7F04708C 8E280008 */ lw $t0, 8($s1) +/* 07BBC0 7F047090 3C012000 */ lui $at, 0x2000 +/* 07BBC4 7F047094 24090001 */ li $t1, 1 +/* 07BBC8 7F047098 01015825 */ or $t3, $t0, $at +/* 07BBCC 7F04709C AE2B0008 */ sw $t3, 8($s1) +/* 07BBD0 7F0470A0 C7A40498 */ lwc1 $f4, 0x498($sp) +/* 07BBD4 7F0470A4 AFA904A4 */ sw $t1, 0x4a4($sp) +/* 07BBD8 7F0470A8 C7B0049C */ lwc1 $f16, 0x49c($sp) +/* 07BBDC 7F0470AC 1000000F */ b .L7F0470EC +/* 07BBE0 7F0470B0 E7A404D4 */ swc1 $f4, 0x4d4($sp) +.L7F0470B4: +/* 07BBE4 7F0470B4 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F0470B8: +/* 07BBE8 7F0470B8 3C198005 */ lui $t9, %hi(global_timer) +/* 07BBEC 7F0470BC 0442000B */ bltzl $v0, .L7F0470EC +/* 07BBF0 7F0470C0 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BBF4 7F0470C4 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BBF8 7F0470C8 272AFF88 */ addiu $t2, $t9, -0x78 +/* 07BBFC 7F0470CC 0142082A */ slt $at, $t2, $v0 +/* 07BC00 7F0470D0 50200006 */ beql $at, $zero, .L7F0470EC +/* 07BC04 7F0470D4 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BC08 7F0470D8 C608009C */ lwc1 $f8, 0x9c($s0) +/* 07BC0C 7F0470DC C6100090 */ lwc1 $f16, 0x90($s0) +/* 07BC10 7F0470E0 10000002 */ b .L7F0470EC +/* 07BC14 7F0470E4 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07BC18 7F0470E8 AFA004AC */ sw $zero, 0x4ac($sp) +.L7F0470EC: +/* 07BC1C 7F0470EC 02402025 */ move $a0, $s2 +/* 07BC20 7F0470F0 24050001 */ li $a1, 1 +/* 07BC24 7F0470F4 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BC28 7F0470F8 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC2C 7F0470FC C7B004D8 */ lwc1 $f16, 0x4d8($sp) +.L7F047100: +/* 07BC30 7F047100 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F047104: +/* 07BC34 7F047104 3C018005 */ lui $at, %hi(D_80052B20) +/* 07BC38 7F047108 C4342B20 */ lwc1 $f20, %lo(D_80052B20)($at) +/* 07BC3C 7F04710C 51800007 */ beql $t4, $zero, .L7F04712C +/* 07BC40 7F047110 8E0E00D0 */ lw $t6, 0xd0($s0) +/* 07BC44 7F047114 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07BC48 7F047118 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07BC4C 7F04711C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC50 7F047120 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BC54 7F047124 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07BC58 7F047128 8E0E00D0 */ lw $t6, 0xd0($s0) +.L7F04712C: +/* 07BC5C 7F04712C 11C0001F */ beqz $t6, .L7F0471AC +/* 07BC60 7F047130 3C0D8005 */ lui $t5, %hi(global_timer) +/* 07BC64 7F047134 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 07BC68 7F047138 24010078 */ li $at, 120 +/* 07BC6C 7F04713C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC70 7F047140 01A1001A */ div $zero, $t5, $at +/* 07BC74 7F047144 00007810 */ mfhi $t7 +/* 07BC78 7F047148 448F5000 */ mtc1 $t7, $f10 +/* 07BC7C 7F04714C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 07BC80 7F047150 44814000 */ mtc1 $at, $f8 +/* 07BC84 7F047154 468051A0 */ cvt.s.w $f6, $f10 +/* 07BC88 7F047158 46143102 */ mul.s $f4, $f6, $f20 +/* 07BC8C 7F04715C 0FC15FAB */ jal sinf +/* 07BC90 7F047160 46082303 */ div.s $f12, $f4, $f8 +/* 07BC94 7F047164 3C018005 */ lui $at, %hi(D_80052B24) +/* 07BC98 7F047168 C4262B24 */ lwc1 $f6, %lo(D_80052B24)($at) +/* 07BC9C 7F04716C C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BCA0 7F047170 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BCA4 7F047174 46065102 */ mul.s $f4, $f10, $f6 +/* 07BCA8 7F047178 00000000 */ nop +/* 07BCAC 7F04717C 46002202 */ mul.s $f8, $f4, $f0 +/* 07BCB0 7F047180 46088400 */ add.s $f16, $f16, $f8 +/* 07BCB4 7F047184 4616803C */ c.lt.s $f16, $f22 +/* 07BCB8 7F047188 00000000 */ nop +/* 07BCBC 7F04718C 45000002 */ bc1f .L7F047198 +/* 07BCC0 7F047190 00000000 */ nop +/* 07BCC4 7F047194 46148400 */ add.s $f16, $f16, $f20 +.L7F047198: +/* 07BCC8 7F047198 4610A03E */ c.le.s $f20, $f16 +/* 07BCCC 7F04719C 00000000 */ nop +/* 07BCD0 7F0471A0 45020003 */ bc1fl .L7F0471B0 +/* 07BCD4 7F0471A4 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BCD8 7F0471A8 46148401 */ sub.s $f16, $f16, $f20 +.L7F0471AC: +/* 07BCDC 7F0471AC C6020084 */ lwc1 $f2, 0x84($s0) +.L7F0471B0: +/* 07BCE0 7F0471B0 3C018005 */ lui $at, %hi(D_80052B28) +/* 07BCE4 7F0471B4 C42A2B28 */ lwc1 $f10, %lo(D_80052B28)($at) +/* 07BCE8 7F0471B8 46028001 */ sub.s $f0, $f16, $f2 +/* 07BCEC 7F0471BC 26040090 */ addiu $a0, $s0, 0x90 +/* 07BCF0 7F0471C0 460A003C */ c.lt.s $f0, $f10 +/* 07BCF4 7F0471C4 00000000 */ nop +/* 07BCF8 7F0471C8 45000003 */ bc1f .L7F0471D8 +/* 07BCFC 7F0471CC 00000000 */ nop +/* 07BD00 7F0471D0 10000008 */ b .L7F0471F4 +/* 07BD04 7F0471D4 46140000 */ add.s $f0, $f0, $f20 +.L7F0471D8: +/* 07BD08 7F0471D8 3C018005 */ lui $at, %hi(D_80052B2C) +/* 07BD0C 7F0471DC C4262B2C */ lwc1 $f6, %lo(D_80052B2C)($at) +/* 07BD10 7F0471E0 4600303E */ c.le.s $f6, $f0 +/* 07BD14 7F0471E4 00000000 */ nop +/* 07BD18 7F0471E8 45020003 */ bc1fl .L7F0471F8 +/* 07BD1C 7F0471EC C60C0088 */ lwc1 $f12, 0x88($s0) +/* 07BD20 7F0471F0 46140001 */ sub.s $f0, $f0, $f20 +.L7F0471F4: +/* 07BD24 7F0471F4 C60C0088 */ lwc1 $f12, 0x88($s0) +.L7F0471F8: +/* 07BD28 7F0471F8 3C018005 */ lui $at, %hi(D_80052B30) +/* 07BD2C 7F0471FC 4600603C */ c.lt.s $f12, $f0 +/* 07BD30 7F047200 00000000 */ nop +/* 07BD34 7F047204 45020004 */ bc1fl .L7F047218 +/* 07BD38 7F047208 C60C008C */ lwc1 $f12, 0x8c($s0) +/* 07BD3C 7F04720C 10000007 */ b .L7F04722C +/* 07BD40 7F047210 460C1400 */ add.s $f16, $f2, $f12 +/* 07BD44 7F047214 C60C008C */ lwc1 $f12, 0x8c($s0) +.L7F047218: +/* 07BD48 7F047218 460C003C */ c.lt.s $f0, $f12 +/* 07BD4C 7F04721C 00000000 */ nop +/* 07BD50 7F047220 45020003 */ bc1fl .L7F047230 +/* 07BD54 7F047224 4616803C */ c.lt.s $f16, $f22 +/* 07BD58 7F047228 460C1400 */ add.s $f16, $f2, $f12 +.L7F04722C: +/* 07BD5C 7F04722C 4616803C */ c.lt.s $f16, $f22 +.L7F047230: +/* 07BD60 7F047230 00000000 */ nop +/* 07BD64 7F047234 45020003 */ bc1fl .L7F047244 +/* 07BD68 7F047238 4610A03E */ c.le.s $f20, $f16 +/* 07BD6C 7F04723C 46148400 */ add.s $f16, $f16, $f20 +/* 07BD70 7F047240 4610A03E */ c.le.s $f20, $f16 +.L7F047244: +/* 07BD74 7F047244 00000000 */ nop +/* 07BD78 7F047248 45000002 */ bc1f .L7F047254 +/* 07BD7C 7F04724C 00000000 */ nop +/* 07BD80 7F047250 46148401 */ sub.s $f16, $f16, $f20 +.L7F047254: +/* 07BD84 7F047254 C4202B30 */ lwc1 $f0, %lo(D_80052B30)($at) +/* 07BD88 7F047258 44058000 */ mfc1 $a1, $f16 +/* 07BD8C 7F04725C 26060094 */ addiu $a2, $s0, 0x94 +/* 07BD90 7F047260 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD94 7F047264 C60400A4 */ lwc1 $f4, 0xa4($s0) +/* 07BD98 7F047268 44070000 */ mfc1 $a3, $f0 +/* 07BD9C 7F04726C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BDA0 7F047270 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDA4 7F047274 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07BDA8 7F047278 3C018005 */ lui $at, %hi(D_80052B34) +/* 07BDAC 7F04727C C4202B34 */ lwc1 $f0, %lo(D_80052B34)($at) +/* 07BDB0 7F047280 2604009C */ addiu $a0, $s0, 0x9c +/* 07BDB4 7F047284 8FA504D4 */ lw $a1, 0x4d4($sp) +/* 07BDB8 7F047288 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BDBC 7F04728C C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 07BDC0 7F047290 44070000 */ mfc1 $a3, $f0 +/* 07BDC4 7F047294 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07BDC8 7F047298 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDCC 7F04729C E7A80014 */ swc1 $f8, 0x14($sp) +/* 07BDD0 7F0472A0 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BDD4 7F0472A4 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07BDD8 7F0472A8 3C018005 */ lui $at, %hi(D_80052B38) +/* 07BDDC 7F0472AC C7A604D4 */ lwc1 $f6, 0x4d4($sp) +/* 07BDE0 7F0472B0 460A8301 */ sub.s $f12, $f16, $f10 +/* 07BDE4 7F0472B4 4616603C */ c.lt.s $f12, $f22 +/* 07BDE8 7F0472B8 00000000 */ nop +/* 07BDEC 7F0472BC 45000002 */ bc1f .L7F0472C8 +/* 07BDF0 7F0472C0 00000000 */ nop +/* 07BDF4 7F0472C4 46146300 */ add.s $f12, $f12, $f20 +.L7F0472C8: +/* 07BDF8 7F0472C8 C4202B38 */ lwc1 $f0, %lo(D_80052B38)($at) +/* 07BDFC 7F0472CC 460C003C */ c.lt.s $f0, $f12 +/* 07BE00 7F0472D0 00000000 */ nop +/* 07BE04 7F0472D4 45020003 */ bc1fl .L7F0472E4 +/* 07BE08 7F0472D8 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BE0C 7F0472DC 46146301 */ sub.s $f12, $f12, $f20 +/* 07BE10 7F0472E0 C604009C */ lwc1 $f4, 0x9c($s0) +.L7F0472E4: +/* 07BE14 7F0472E4 46043081 */ sub.s $f2, $f6, $f4 +/* 07BE18 7F0472E8 4616103C */ c.lt.s $f2, $f22 +/* 07BE1C 7F0472EC 00000000 */ nop +/* 07BE20 7F0472F0 45020003 */ bc1fl .L7F047300 +/* 07BE24 7F0472F4 4602003C */ c.lt.s $f0, $f2 +/* 07BE28 7F0472F8 46141080 */ add.s $f2, $f2, $f20 +/* 07BE2C 7F0472FC 4602003C */ c.lt.s $f0, $f2 +.L7F047300: +/* 07BE30 7F047300 00000000 */ nop +/* 07BE34 7F047304 45020003 */ bc1fl .L7F047314 +/* 07BE38 7F047308 AE0000D0 */ sw $zero, 0xd0($s0) +/* 07BE3C 7F04730C 46141081 */ sub.s $f2, $f2, $f20 +/* 07BE40 7F047310 AE0000D0 */ sw $zero, 0xd0($s0) +.L7F047314: +/* 07BE44 7F047314 8FB804AC */ lw $t8, 0x4ac($sp) +/* 07BE48 7F047318 C7A804A0 */ lwc1 $f8, 0x4a0($sp) +/* 07BE4C 7F04731C 53000047 */ beql $t8, $zero, .L7F04743C +/* 07BE50 7F047320 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BE54 7F047324 4608603C */ c.lt.s $f12, $f8 +/* 07BE58 7F047328 C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BE5C 7F04732C 4502001B */ bc1fl .L7F04739C +/* 07BE60 7F047330 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE64 7F047334 46004007 */ neg.s $f0, $f8 +/* 07BE68 7F047338 460C003C */ c.lt.s $f0, $f12 +/* 07BE6C 7F04733C 00000000 */ nop +/* 07BE70 7F047340 45020016 */ bc1fl .L7F04739C +/* 07BE74 7F047344 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE78 7F047348 4608103C */ c.lt.s $f2, $f8 +/* 07BE7C 7F04734C 00000000 */ nop +/* 07BE80 7F047350 45020012 */ bc1fl .L7F04739C +/* 07BE84 7F047354 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE88 7F047358 4602003C */ c.lt.s $f0, $f2 +/* 07BE8C 7F04735C 24080001 */ li $t0, 1 +/* 07BE90 7F047360 4502000E */ bc1fl .L7F04739C +/* 07BE94 7F047364 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE98 7F047368 AE0800D0 */ sw $t0, 0xd0($s0) +/* 07BE9C 7F04736C 8FA904A4 */ lw $t1, 0x4a4($sp) +/* 07BEA0 7F047370 240B0001 */ li $t3, 1 +/* 07BEA4 7F047374 AFAB04A8 */ sw $t3, 0x4a8($sp) +/* 07BEA8 7F047378 1120002F */ beqz $t1, .L7F047438 +/* 07BEAC 7F04737C 3C198005 */ lui $t9, %hi(global_timer) +/* 07BEB0 7F047380 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BEB4 7F047384 3C0A8005 */ lui $t2, %hi(global_timer) +/* 07BEB8 7F047388 AE1900B8 */ sw $t9, 0xb8($s0) +/* 07BEBC 7F04738C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 07BEC0 7F047390 10000029 */ b .L7F047438 +/* 07BEC4 7F047394 AE0A00BC */ sw $t2, 0xbc($s0) +/* 07BEC8 7F047398 460A5000 */ add.s $f0, $f10, $f10 +.L7F04739C: +/* 07BECC 7F04739C 4600603C */ c.lt.s $f12, $f0 +/* 07BED0 7F0473A0 00000000 */ nop +/* 07BED4 7F0473A4 45020018 */ bc1fl .L7F047408 +/* 07BED8 7F0473A8 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEDC 7F0473AC 46000387 */ neg.s $f14, $f0 +/* 07BEE0 7F0473B0 460C703C */ c.lt.s $f14, $f12 +/* 07BEE4 7F0473B4 00000000 */ nop +/* 07BEE8 7F0473B8 45020013 */ bc1fl .L7F047408 +/* 07BEEC 7F0473BC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEF0 7F0473C0 4600103C */ c.lt.s $f2, $f0 +/* 07BEF4 7F0473C4 00000000 */ nop +/* 07BEF8 7F0473C8 4502000F */ bc1fl .L7F047408 +/* 07BEFC 7F0473CC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF00 7F0473D0 4602703C */ c.lt.s $f14, $f2 +/* 07BF04 7F0473D4 240C0001 */ li $t4, 1 +/* 07BF08 7F0473D8 4502000B */ bc1fl .L7F047408 +/* 07BF0C 7F0473DC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF10 7F0473E0 AE0C00D0 */ sw $t4, 0xd0($s0) +/* 07BF14 7F0473E4 8FAD04A4 */ lw $t5, 0x4a4($sp) +/* 07BF18 7F0473E8 240E0001 */ li $t6, 1 +/* 07BF1C 7F0473EC AFAE04A8 */ sw $t6, 0x4a8($sp) +/* 07BF20 7F0473F0 11A00011 */ beqz $t5, .L7F047438 +/* 07BF24 7F0473F4 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07BF28 7F0473F8 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07BF2C 7F0473FC 1000000E */ b .L7F047438 +/* 07BF30 7F047400 AE0F00B8 */ sw $t7, 0xb8($s0) +/* 07BF34 7F047404 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F047408: +/* 07BF38 7F047408 3C188005 */ lui $t8, %hi(global_timer) +/* 07BF3C 7F04740C 0442000B */ bltzl $v0, .L7F04743C +/* 07BF40 7F047410 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF44 7F047414 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07BF48 7F047418 240B0001 */ li $t3, 1 +/* 07BF4C 7F04741C 24090001 */ li $t1, 1 +/* 07BF50 7F047420 2708FF88 */ addiu $t0, $t8, -0x78 +/* 07BF54 7F047424 0102082A */ slt $at, $t0, $v0 +/* 07BF58 7F047428 50200004 */ beql $at, $zero, .L7F04743C +/* 07BF5C 7F04742C 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF60 7F047430 AE0B00D0 */ sw $t3, 0xd0($s0) +/* 07BF64 7F047434 AFA904A8 */ sw $t1, 0x4a8($sp) +.L7F047438: +/* 07BF68 7F047438 8FB904A8 */ lw $t9, 0x4a8($sp) +.L7F04743C: +/* 07BF6C 7F04743C 3C018005 */ lui $at, %hi(D_80052B3C) +/* 07BF70 7F047440 53200013 */ beql $t9, $zero, .L7F047490 +/* 07BF74 7F047444 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BF78 7F047448 C4202B3C */ lwc1 $f0, %lo(D_80052B3C)($at) +/* 07BF7C 7F04744C 3C018005 */ lui $at, %hi(D_80052B40) +/* 07BF80 7F047450 C4262B40 */ lwc1 $f6, %lo(D_80052B40)($at) +/* 07BF84 7F047454 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07BF88 7F047458 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07BF8C 7F04745C C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 07BF90 7F047460 46043202 */ mul.s $f8, $f6, $f4 +/* 07BF94 7F047464 46085180 */ add.s $f6, $f10, $f8 +/* 07BF98 7F047468 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07BF9C 7F04746C C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFA0 7F047470 4602003C */ c.lt.s $f0, $f2 +/* 07BFA4 7F047474 00000000 */ nop +/* 07BFA8 7F047478 45020023 */ bc1fl .L7F047508 +/* 07BFAC 7F04747C 4602B03C */ c.lt.s $f22, $f2 +/* 07BFB0 7F047480 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 07BFB4 7F047484 1000001F */ b .L7F047504 +/* 07BFB8 7F047488 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFBC 7F04748C C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047490: +/* 07BFC0 7F047490 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07BFC4 7F047494 4602B03C */ c.lt.s $f22, $f2 +/* 07BFC8 7F047498 00000000 */ nop +/* 07BFCC 7F04749C 4502001A */ bc1fl .L7F047508 +/* 07BFD0 7F0474A0 4602B03C */ c.lt.s $f22, $f2 +/* 07BFD4 7F0474A4 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07BFD8 7F0474A8 00001025 */ move $v0, $zero +/* 07BFDC 7F0474AC 3C018005 */ lui $at, %hi(D_80052B44) +/* 07BFE0 7F0474B0 1940000C */ blez $t2, .L7F0474E4 +/* 07BFE4 7F0474B4 00000000 */ nop +/* 07BFE8 7F0474B8 C4202B44 */ lwc1 $f0, %lo(D_80052B44)($at) +/* 07BFEC 7F0474BC C60400B0 */ lwc1 $f4, 0xb0($s0) +.L7F0474C0: +/* 07BFF0 7F0474C0 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 07BFF4 7F0474C4 24420001 */ addiu $v0, $v0, 1 +/* 07BFF8 7F0474C8 46002282 */ mul.s $f10, $f4, $f0 +/* 07BFFC 7F0474CC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07C000 7F0474D0 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 07C004 7F0474D4 004C082A */ slt $at, $v0, $t4 +/* 07C008 7F0474D8 5420FFF9 */ bnezl $at, .L7F0474C0 +/* 07C00C 7F0474DC C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 07C010 7F0474E0 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F0474E4: +/* 07C014 7F0474E4 3C018005 */ lui $at, %hi(D_80052B48) +/* 07C018 7F0474E8 C4282B48 */ lwc1 $f8, %lo(D_80052B48)($at) +/* 07C01C 7F0474EC 4608103E */ c.le.s $f2, $f8 +/* 07C020 7F0474F0 00000000 */ nop +/* 07C024 7F0474F4 45020004 */ bc1fl .L7F047508 +/* 07C028 7F0474F8 4602B03C */ c.lt.s $f22, $f2 +/* 07C02C 7F0474FC E61600B0 */ swc1 $f22, 0xb0($s0) +/* 07C030 7F047500 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047504: +/* 07C034 7F047504 4602B03C */ c.lt.s $f22, $f2 +.L7F047508: +/* 07C038 7F047508 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C03C 7F04750C 45020348 */ bc1fl .L7F048230 +/* 07C040 7F047510 92220003 */ lbu $v0, 3($s1) +/* 07C044 7F047514 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C048 7F047518 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07C04C 7F04751C 46041282 */ mul.s $f10, $f2, $f4 +/* 07C050 7F047520 460A3200 */ add.s $f8, $f6, $f10 +/* 07C054 7F047524 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07C058 7F047528 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C05C 7F04752C 4600A03E */ c.le.s $f20, $f0 +/* 07C060 7F047530 00000000 */ nop +/* 07C064 7F047534 4502033E */ bc1fl .L7F048230 +/* 07C068 7F047538 92220003 */ lbu $v0, 3($s1) +/* 07C06C 7F04753C 46140101 */ sub.s $f4, $f0, $f20 +.L7F047540: +/* 07C070 7F047540 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 07C074 7F047544 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C078 7F047548 4600A03E */ c.le.s $f20, $f0 +/* 07C07C 7F04754C 00000000 */ nop +/* 07C080 7F047550 4503FFFB */ bc1tl .L7F047540 +/* 07C084 7F047554 46140101 */ sub.s $f4, $f0, $f20 +/* 07C088 7F047558 10000335 */ b .L7F048230 +/* 07C08C 7F04755C 92220003 */ lbu $v0, 3($s1) +/* 07C090 7F047560 24010027 */ li $at, 39 +.L7F047564: +/* 07C094 7F047564 14410255 */ bne $v0, $at, .L7F047EBC +/* 07C098 7F047568 02202025 */ move $a0, $s1 +/* 07C09C 7F04756C C62600A0 */ lwc1 $f6, 0xa0($s1) +/* 07C0A0 7F047570 AFA00478 */ sw $zero, 0x478($sp) +/* 07C0A4 7F047574 24050001 */ li $a1, 1 +/* 07C0A8 7F047578 0FC0D521 */ jal parse_handle_actionblocks +/* 07C0AC 7F04757C E7A6047C */ swc1 $f6, 0x47c($sp) +/* 07C0B0 7F047580 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0B4 7F047584 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0B8 7F047588 460EB03E */ c.le.s $f22, $f14 +/* 07C0BC 7F04758C 00000000 */ nop +/* 07C0C0 7F047590 45020016 */ bc1fl .L7F0475EC +/* 07C0C4 7F047594 8E2E000C */ lw $t6, 0xc($s1) +/* 07C0C8 7F047598 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C0CC 7F04759C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0D0 7F0475A0 4602703E */ c.le.s $f14, $f2 +/* 07C0D4 7F0475A4 00000000 */ nop +/* 07C0D8 7F0475A8 45020006 */ bc1fl .L7F0475C4 +/* 07C0DC 7F0475AC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07C0E0 7F0475B0 C62A0094 */ lwc1 $f10, 0x94($s1) +/* 07C0E4 7F0475B4 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0E8 7F0475B8 10000008 */ b .L7F0475DC +/* 07C0EC 7F0475BC E62A0088 */ swc1 $f10, 0x88($s1) +/* 07C0F0 7F0475C0 C6200088 */ lwc1 $f0, 0x88($s1) +.L7F0475C4: +/* 07C0F4 7F0475C4 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C0F8 7F0475C8 46004101 */ sub.s $f4, $f8, $f0 +/* 07C0FC 7F0475CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C100 7F0475D0 460E3283 */ div.s $f10, $f6, $f14 +/* 07C104 7F0475D4 460A0200 */ add.s $f8, $f0, $f10 +/* 07C108 7F0475D8 E6280088 */ swc1 $f8, 0x88($s1) +.L7F0475DC: +/* 07C10C 7F0475DC C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C110 7F0475E0 46047181 */ sub.s $f6, $f14, $f4 +/* 07C114 7F0475E4 E6260098 */ swc1 $f6, 0x98($s1) +/* 07C118 7F0475E8 8E2E000C */ lw $t6, 0xc($s1) +.L7F0475EC: +/* 07C11C 7F0475EC 00008025 */ move $s0, $zero +/* 07C120 7F0475F0 000E6B00 */ sll $t5, $t6, 0xc +/* 07C124 7F0475F4 05A00014 */ bltz $t5, .L7F047648 +/* 07C128 7F0475F8 00000000 */ nop +/* 07C12C 7F0475FC 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07C130 7F047600 02202025 */ move $a0, $s1 +/* 07C134 7F047604 10400010 */ beqz $v0, .L7F047648 +/* 07C138 7F047608 00000000 */ nop +/* 07C13C 7F04760C C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C140 7F047610 26240058 */ addiu $a0, $s1, 0x58 +/* 07C144 7F047614 3C0544FA */ lui $a1, 0x44fa +/* 07C148 7F047618 460AB03C */ c.lt.s $f22, $f10 +/* 07C14C 7F04761C 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b +/* 07C150 7F047620 45010006 */ bc1t .L7F04763C +/* 07C154 7F047624 00000000 */ nop +/* 07C158 7F047628 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C15C 7F04762C 4608B03C */ c.lt.s $f22, $f8 +/* 07C160 7F047630 00000000 */ nop +/* 07C164 7F047634 45000004 */ bc1f .L7F047648 +/* 07C168 7F047638 00000000 */ nop +.L7F04763C: +/* 07C16C 7F04763C 0FC14E25 */ jal sub_GAME_7F053894 +/* 07C170 7F047640 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07C174 7F047644 00408025 */ move $s0, $v0 +.L7F047648: +/* 07C178 7F047648 5A000019 */ blezl $s0, .L7F0476B0 +/* 07C17C 7F04764C 8E2400AC */ lw $a0, 0xac($s1) +/* 07C180 7F047650 8E2400AC */ lw $a0, 0xac($s1) +/* 07C184 7F047654 10800005 */ beqz $a0, .L7F04766C +/* 07C188 7F047658 00000000 */ nop +/* 07C18C 7F04765C 0C00237C */ jal sfxGetArg0Unk3F +/* 07C190 7F047660 00000000 */ nop +/* 07C194 7F047664 5440000A */ bnezl $v0, .L7F047690 +/* 07C198 7F047668 8E2400AC */ lw $a0, 0xac($s1) +.L7F04766C: +/* 07C19C 7F04766C 0FC2FF01 */ jal get_controls_locked_flag +/* 07C1A0 7F047670 00000000 */ nop +/* 07C1A4 7F047674 14400005 */ bnez $v0, .L7F04768C +/* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C1B0 7F047680 24050041 */ li $a1, 65 +/* 07C1B4 7F047684 0C002382 */ jal play_sfx_a1 +/* 07C1B8 7F047688 262600AC */ addiu $a2, $s1, 0xac +.L7F04768C: +/* 07C1BC 7F04768C 8E2400AC */ lw $a0, 0xac($s1) +.L7F047690: +/* 07C1C0 7F047690 24050008 */ li $a1, 8 +/* 07C1C4 7F047694 5080000F */ beql $a0, $zero, .L7F0476D4 +/* 07C1C8 7F047698 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1CC 7F04769C 0C002461 */ jal sfx_c_70009184 +/* 07C1D0 7F0476A0 02003025 */ move $a2, $s0 +/* 07C1D4 7F0476A4 1000000B */ b .L7F0476D4 +/* 07C1D8 7F0476A8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1DC 7F0476AC 8E2400AC */ lw $a0, 0xac($s1) +.L7F0476B0: +/* 07C1E0 7F0476B0 50800008 */ beql $a0, $zero, .L7F0476D4 +/* 07C1E4 7F0476B4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1E8 7F0476B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07C1EC 7F0476BC 00000000 */ nop +/* 07C1F0 7F0476C0 50400004 */ beql $v0, $zero, .L7F0476D4 +/* 07C1F4 7F0476C4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1F8 7F0476C8 0C002408 */ jal sfxDeactivate +/* 07C1FC 7F0476CC 8E2400AC */ lw $a0, 0xac($s1) +/* 07C200 7F0476D0 8E2400A4 */ lw $a0, 0xa4($s1) +.L7F0476D4: +/* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07C208 7F0476D8 5080002A */ beql $a0, $zero, .L7F047784 +/* 07C20C 7F0476DC 8E2B0008 */ lw $t3, 8($s1) +/* 07C210 7F0476E0 8E3800A8 */ lw $t8, 0xa8($s1) +/* 07C214 7F0476E4 8C8F0000 */ lw $t7, ($a0) +/* 07C218 7F0476E8 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07C21C 7F0476EC 00184080 */ sll $t0, $t8, 2 +/* 07C220 7F0476F0 01E81021 */ addu $v0, $t7, $t0 +/* 07C224 7F0476F4 8C4B0000 */ lw $t3, ($v0) +/* 07C228 7F0476F8 8CB90000 */ lw $t9, ($a1) +/* 07C22C 7F0476FC 8CAE0018 */ lw $t6, 0x18($a1) +/* 07C230 7F047700 000B4900 */ sll $t1, $t3, 4 +/* 07C234 7F047704 01391821 */ addu $v1, $t1, $t9 +/* 07C238 7F047708 8C6A0000 */ lw $t2, ($v1) +/* 07C23C 7F04770C C6260058 */ lwc1 $f6, 0x58($s1) +/* 07C240 7F047710 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07C244 7F047714 000A6080 */ sll $t4, $t2, 2 +/* 07C248 7F047718 018A6023 */ subu $t4, $t4, $t2 +/* 07C24C 7F04771C 000C6080 */ sll $t4, $t4, 2 +/* 07C250 7F047720 018A6023 */ subu $t4, $t4, $t2 +/* 07C254 7F047724 000C6080 */ sll $t4, $t4, 2 +/* 07C258 7F047728 018E3021 */ addu $a2, $t4, $t6 +/* 07C25C 7F04772C C4C40000 */ lwc1 $f4, ($a2) +/* 07C260 7F047730 C4CA0008 */ lwc1 $f10, 8($a2) +/* 07C264 7F047734 AFA60478 */ sw $a2, 0x478($sp) +/* 07C268 7F047738 46062301 */ sub.s $f12, $f4, $f6 +/* 07C26C 7F04773C 0FC16A8C */ jal atan2f +/* 07C270 7F047740 46085381 */ sub.s $f14, $f10, $f8 +/* 07C274 7F047744 E7A0047C */ swc1 $f0, 0x47c($sp) +/* 07C278 7F047748 8E2D0008 */ lw $t5, 8($s1) +/* 07C27C 7F04774C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C280 7F047750 C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C284 7F047754 000DC080 */ sll $t8, $t5, 2 +/* 07C288 7F047758 07010018 */ bgez $t8, .L7F0477BC +/* 07C28C 7F04775C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C290 7F047760 8E2F0008 */ lw $t7, 8($s1) +/* 07C294 7F047764 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C298 7F047768 02202025 */ move $a0, $s1 +/* 07C29C 7F04776C 01E14024 */ and $t0, $t7, $at +/* 07C2A0 7F047770 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2A4 7F047774 AE280008 */ sw $t0, 8($s1) +/* 07C2A8 7F047778 10000011 */ b .L7F0477C0 +/* 07C2AC 7F04777C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2B0 7F047780 8E2B0008 */ lw $t3, 8($s1) +.L7F047784: +/* 07C2B4 7F047784 000B4880 */ sll $t1, $t3, 2 +/* 07C2B8 7F047788 0523000D */ bgezl $t1, .L7F0477C0 +/* 07C2BC 7F04778C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2C0 7F047790 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C2C4 7F047794 0FC16A8C */ jal atan2f +/* 07C2C8 7F047798 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C2CC 7F04779C 8E390008 */ lw $t9, 8($s1) +/* 07C2D0 7F0477A0 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C2D4 7F0477A4 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C2D8 7F0477A8 03215024 */ and $t2, $t9, $at +/* 07C2DC 7F0477AC E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C2E0 7F0477B0 AE2A0008 */ sw $t2, 8($s1) +/* 07C2E4 7F0477B4 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2E8 7F0477B8 02202025 */ move $a0, $s1 +.L7F0477BC: +/* 07C2EC 7F0477BC C6260088 */ lwc1 $f6, 0x88($s1) +.L7F0477C0: +/* 07C2F0 7F0477C0 4606B03C */ c.lt.s $f22, $f6 +/* 07C2F4 7F0477C4 00000000 */ nop +/* 07C2F8 7F0477C8 450201AC */ bc1fl .L7F047E7C +/* 07C2FC 7F0477CC 8E280008 */ lw $t0, 8($s1) +/* 07C300 7F0477D0 8E6C0014 */ lw $t4, 0x14($s3) +/* 07C304 7F0477D4 8FAE0478 */ lw $t6, 0x478($sp) +/* 07C308 7F0477D8 4600B386 */ mov.s $f14, $f22 +/* 07C30C 7F0477DC AFAC0468 */ sw $t4, 0x468($sp) +/* 07C310 7F0477E0 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C314 7F0477E4 E7AC0438 */ swc1 $f12, 0x438($sp) +/* 07C318 7F0477E8 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07C31C 7F0477EC 11C00013 */ beqz $t6, .L7F04783C +/* 07C320 7F0477F0 E7AA0434 */ swc1 $f10, 0x434($sp) +/* 07C324 7F0477F4 262D0058 */ addiu $t5, $s1, 0x58 +/* 07C328 7F0477F8 AFAD0070 */ sw $t5, 0x70($sp) +/* 07C32C 7F0477FC 0FC15FAB */ jal sinf +/* 07C330 7F047800 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C334 7F047804 E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C338 7F047808 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C33C 7F04780C 0FC15FA8 */ jal cosf +/* 07C340 7F047810 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C344 7F047814 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C348 7F047818 8FA40070 */ lw $a0, 0x70($sp) +/* 07C34C 7F04781C 27A5043C */ addiu $a1, $sp, 0x43c +/* 07C350 7F047820 8FA60478 */ lw $a2, 0x478($sp) +/* 07C354 7F047824 0FC0BF0D */ jal sub_GAME_7F02FC34 +/* 07C358 7F047828 3C074120 */ lui $a3, 0x4120 +/* 07C35C 7F04782C 10400003 */ beqz $v0, .L7F04783C +/* 07C360 7F047830 C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C364 7F047834 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C368 7F047838 E7A8047C */ swc1 $f8, 0x47c($sp) +.L7F04783C: +/* 07C36C 7F04783C 3C018005 */ lui $at, %hi(D_80052B4C) +/* 07C370 7F047840 C4242B4C */ lwc1 $f4, %lo(D_80052B4C)($at) +/* 07C374 7F047844 3C018005 */ lui $at, %hi(D_80052B50) +/* 07C378 7F047848 C4262B50 */ lwc1 $f6, %lo(D_80052B50)($at) +/* 07C37C 7F04784C 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 +/* 07C380 7F047850 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 +/* 07C384 7F047854 262400A0 */ addiu $a0, $s1, 0xa0 +/* 07C388 7F047858 8FA5047C */ lw $a1, 0x47c($sp) +/* 07C38C 7F04785C 2626009C */ addiu $a2, $s1, 0x9c +/* 07C390 7F047860 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C394 7F047864 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07C398 7F047868 0FC10C43 */ jal sub_GAME_7F04310C +/* 07C39C 7F04786C E7A60014 */ swc1 $f6, 0x14($sp) +/* 07C3A0 7F047870 3C018005 */ lui $at, %hi(D_80052B54) +/* 07C3A4 7F047874 C4342B54 */ lwc1 $f20, %lo(D_80052B54)($at) +/* 07C3A8 7F047878 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3AC 7F04787C C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C3B0 7F047880 3C018005 */ lui $at, %hi(D_80052B58) +/* 07C3B4 7F047884 460CA03E */ c.le.s $f20, $f12 +/* 07C3B8 7F047888 00000000 */ nop +/* 07C3BC 7F04788C 45020009 */ bc1fl .L7F0478B4 +/* 07C3C0 7F047890 4616603C */ c.lt.s $f12, $f22 +/* 07C3C4 7F047894 46146281 */ sub.s $f10, $f12, $f20 +.L7F047898: +/* 07C3C8 7F047898 E62A00A0 */ swc1 $f10, 0xa0($s1) +/* 07C3CC 7F04789C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3D0 7F0478A0 460CA03E */ c.le.s $f20, $f12 +/* 07C3D4 7F0478A4 00000000 */ nop +/* 07C3D8 7F0478A8 4503FFFB */ bc1tl .L7F047898 +/* 07C3DC 7F0478AC 46146281 */ sub.s $f10, $f12, $f20 +/* 07C3E0 7F0478B0 4616603C */ c.lt.s $f12, $f22 +.L7F0478B4: +/* 07C3E4 7F0478B4 00000000 */ nop +/* 07C3E8 7F0478B8 45020009 */ bc1fl .L7F0478E0 +/* 07C3EC 7F0478BC C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C3F0 7F0478C0 46146200 */ add.s $f8, $f12, $f20 +.L7F0478C4: +/* 07C3F4 7F0478C4 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C3F8 7F0478C8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3FC 7F0478CC 4616603C */ c.lt.s $f12, $f22 +/* 07C400 7F0478D0 00000000 */ nop +/* 07C404 7F0478D4 4503FFFB */ bc1tl .L7F0478C4 +/* 07C408 7F0478D8 46146200 */ add.s $f8, $f12, $f20 +/* 07C40C 7F0478DC C7A4047C */ lwc1 $f4, 0x47c($sp) +.L7F0478E0: +/* 07C410 7F0478E0 460C2032 */ c.eq.s $f4, $f12 +/* 07C414 7F0478E4 00000000 */ nop +/* 07C418 7F0478E8 4502000F */ bc1fl .L7F047928 +/* 07C41C 7F0478EC 8E980008 */ lw $t8, 8($s4) +/* 07C420 7F0478F0 C620009C */ lwc1 $f0, 0x9c($s1) +/* 07C424 7F0478F4 C4262B58 */ lwc1 $f6, %lo(D_80052B58)($at) +/* 07C428 7F0478F8 3C018005 */ lui $at, %hi(D_80052B5C) +/* 07C42C 7F0478FC 4606003E */ c.le.s $f0, $f6 +/* 07C430 7F047900 00000000 */ nop +/* 07C434 7F047904 45020008 */ bc1fl .L7F047928 +/* 07C438 7F047908 8E980008 */ lw $t8, 8($s4) +/* 07C43C 7F04790C C42A2B5C */ lwc1 $f10, %lo(D_80052B5C)($at) +/* 07C440 7F047910 4600503E */ c.le.s $f10, $f0 +/* 07C444 7F047914 00000000 */ nop +/* 07C448 7F047918 45020003 */ bc1fl .L7F047928 +/* 07C44C 7F04791C 8E980008 */ lw $t8, 8($s4) +/* 07C450 7F047920 E636009C */ swc1 $f22, 0x9c($s1) +/* 07C454 7F047924 8E980008 */ lw $t8, 8($s4) +.L7F047928: +/* 07C458 7F047928 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C45C 7F04792C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C460 7F047930 8F0F0008 */ lw $t7, 8($t8) +/* 07C464 7F047934 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C468 7F047938 4602B03C */ c.lt.s $f22, $f2 +/* 07C46C 7F04793C 8DE8000C */ lw $t0, 0xc($t7) +/* 07C470 7F047940 45000004 */ bc1f .L7F047954 +/* 07C474 7F047944 8D100004 */ lw $s0, 4($t0) +/* 07C478 7F047948 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C47C 7F04794C 46044181 */ sub.s $f6, $f8, $f4 +/* 07C480 7F047950 46023383 */ div.s $f14, $f6, $f2 +.L7F047954: +/* 07C484 7F047954 4616703C */ c.lt.s $f14, $f22 +/* 07C488 7F047958 00000000 */ nop +/* 07C48C 7F04795C 45000002 */ bc1f .L7F047968 +/* 07C490 7F047960 00000000 */ nop +/* 07C494 7F047964 46147380 */ add.s $f14, $f14, $f20 +.L7F047968: +/* 07C498 7F047968 0FC15FAB */ jal sinf +/* 07C49C 7F04796C 46007306 */ mov.s $f12, $f14 +/* 07C4A0 7F047970 C60A0008 */ lwc1 $f10, 8($s0) +/* 07C4A4 7F047974 C6880014 */ lwc1 $f8, 0x14($s4) +/* 07C4A8 7F047978 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4AC 7F04797C 46085102 */ mul.s $f4, $f10, $f8 +/* 07C4B0 7F047980 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07C4B4 7F047984 46040182 */ mul.s $f6, $f0, $f4 +/* 07C4B8 7F047988 00000000 */ nop +/* 07C4BC 7F04798C 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C4C0 7F047990 E7A80460 */ swc1 $f8, 0x460($sp) +/* 07C4C4 7F047994 0FC15FAB */ jal sinf +/* 07C4C8 7F047998 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4CC 7F04799C E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C4D0 7F0479A0 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C4D4 7F0479A4 0FC15FA8 */ jal cosf +/* 07C4D8 7F0479A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4DC 7F0479AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C4E0 7F0479B0 44817000 */ mtc1 $at, $f14 +/* 07C4E4 7F0479B4 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C4E8 7F0479B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4EC 7F0479BC C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C4F0 7F0479C0 C6240088 */ lwc1 $f4, 0x88($s1) +/* 07C4F4 7F0479C4 C7AA043C */ lwc1 $f10, 0x43c($sp) +/* 07C4F8 7F0479C8 C7AC0460 */ lwc1 $f12, 0x460($sp) +/* 07C4FC 7F0479CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C500 7F0479D0 C6240058 */ lwc1 $f4, 0x58($s1) +/* 07C504 7F0479D4 27B00468 */ addiu $s0, $sp, 0x468 +/* 07C508 7F0479D8 240B001F */ li $t3, 31 +/* 07C50C 7F0479DC 02002025 */ move $a0, $s0 +/* 07C510 7F0479E0 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C514 7F0479E4 46082180 */ add.s $f6, $f4, $f8 +/* 07C518 7F0479E8 C7A40444 */ lwc1 $f4, 0x444($sp) +/* 07C51C 7F0479EC 460C2202 */ mul.s $f8, $f4, $f12 +/* 07C520 7F0479F0 46083181 */ sub.s $f6, $f6, $f8 +/* 07C524 7F0479F4 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07C528 7F0479F8 C628005C */ lwc1 $f8, 0x5c($s1) +/* 07C52C 7F0479FC 44073000 */ mfc1 $a3, $f6 +/* 07C530 7F047A00 E7A80698 */ swc1 $f8, 0x698($sp) +/* 07C534 7F047A04 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07C538 7F047A08 46024202 */ mul.s $f8, $f8, $f2 +/* 07C53C 7F047A0C 00000000 */ nop +/* 07C540 7F047A10 46044202 */ mul.s $f8, $f8, $f4 +/* 07C544 7F047A14 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07C548 7F047A18 46082100 */ add.s $f4, $f4, $f8 +/* 07C54C 7F047A1C 460C5202 */ mul.s $f8, $f10, $f12 +/* 07C550 7F047A20 46044280 */ add.s $f10, $f8, $f4 +/* 07C554 7F047A24 E7AA069C */ swc1 $f10, 0x69c($sp) +/* 07C558 7F047A28 8E660010 */ lw $a2, 0x10($s3) +/* 07C55C 7F047A2C 8E650008 */ lw $a1, 8($s3) +/* 07C560 7F047A30 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07C564 7F047A34 E7B60018 */ swc1 $f22, 0x18($sp) +/* 07C568 7F047A38 AFAB0014 */ sw $t3, 0x14($sp) +/* 07C56C 7F047A3C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C570 7F047A40 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 07C574 7F047A44 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07C578 7F047A48 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 07C57C 7F047A4C 104000FA */ beqz $v0, .L7F047E38 +/* 07C580 7F047A50 02002025 */ move $a0, $s0 +/* 07C584 7F047A54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C588 7F047A58 44814000 */ mtc1 $at, $f8 +/* 07C58C 7F047A5C 2409001F */ li $t1, 31 +/* 07C590 7F047A60 AFA90010 */ sw $t1, 0x10($sp) +/* 07C594 7F047A64 8FA50694 */ lw $a1, 0x694($sp) +/* 07C598 7F047A68 8FA6069C */ lw $a2, 0x69c($sp) +/* 07C59C 7F047A6C 3C074120 */ lui $a3, 0x4120 +/* 07C5A0 7F047A70 E7B60014 */ swc1 $f22, 0x14($sp) +/* 07C5A4 7F047A74 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 07C5A8 7F047A78 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07C5AC 7F047A7C 044300EF */ bgezl $v0, .L7F047E3C +/* 07C5B0 7F047A80 C6260098 */ lwc1 $f6, 0x98($s1) +/* 07C5B4 7F047A84 8E790014 */ lw $t9, 0x14($s3) +/* 07C5B8 7F047A88 8FAA0468 */ lw $t2, 0x468($sp) +/* 07C5BC 7F047A8C 02202025 */ move $a0, $s1 +/* 07C5C0 7F047A90 AFB9044C */ sw $t9, 0x44c($sp) +/* 07C5C4 7F047A94 C6640008 */ lwc1 $f4, 8($s3) +/* 07C5C8 7F047A98 E7A40450 */ swc1 $f4, 0x450($sp) +/* 07C5CC 7F047A9C C666000C */ lwc1 $f6, 0xc($s3) +/* 07C5D0 7F047AA0 E7A60454 */ swc1 $f6, 0x454($sp) +/* 07C5D4 7F047AA4 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 07C5D8 7F047AA8 E7AA0458 */ swc1 $f10, 0x458($sp) +/* 07C5DC 7F047AAC AE6A0014 */ sw $t2, 0x14($s3) +/* 07C5E0 7F047AB0 C7A20694 */ lwc1 $f2, 0x694($sp) +/* 07C5E4 7F047AB4 E6620008 */ swc1 $f2, 8($s3) +/* 07C5E8 7F047AB8 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C5EC 7F047ABC C7A2069C */ lwc1 $f2, 0x69c($sp) +/* 07C5F0 7F047AC0 E6620010 */ swc1 $f2, 0x10($s3) +/* 07C5F4 7F047AC4 0FC10121 */ jal sub_GAME_7F040484 +/* 07C5F8 7F047AC8 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C5FC 7F047ACC 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C600 7F047AD0 02202025 */ move $a0, $s1 +/* 07C604 7F047AD4 0FC1122A */ jal sub_GAME_7F0448A8 +/* 07C608 7F047AD8 02602025 */ move $a0, $s3 +/* 07C60C 7F047ADC 10400092 */ beqz $v0, .L7F047D28 +/* 07C610 7F047AE0 00409025 */ move $s2, $v0 +/* 07C614 7F047AE4 8E8C0008 */ lw $t4, 8($s4) +/* 07C618 7F047AE8 C6280018 */ lwc1 $f8, 0x18($s1) +/* 07C61C 7F047AEC 02002025 */ move $a0, $s0 +/* 07C620 7F047AF0 8D8E0008 */ lw $t6, 8($t4) +/* 07C624 7F047AF4 8DCD0028 */ lw $t5, 0x28($t6) +/* 07C628 7F047AF8 8DA20004 */ lw $v0, 4($t5) +/* 07C62C 7F047AFC C4440004 */ lwc1 $f4, 4($v0) +/* 07C630 7F047B00 46044182 */ mul.s $f6, $f8, $f4 +/* 07C634 7F047B04 E7A60424 */ swc1 $f6, 0x424($sp) +/* 07C638 7F047B08 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07C63C 7F047B0C C4480004 */ lwc1 $f8, 4($v0) +/* 07C640 7F047B10 46085102 */ mul.s $f4, $f10, $f8 +/* 07C644 7F047B14 E7A4042C */ swc1 $f4, 0x42c($sp) +/* 07C648 7F047B18 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07C64C 7F047B1C C44A0008 */ lwc1 $f10, 8($v0) +/* 07C650 7F047B20 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C654 7F047B24 E7A80418 */ swc1 $f8, 0x418($sp) +/* 07C658 7F047B28 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07C65C 7F047B2C C4460008 */ lwc1 $f6, 8($v0) +/* 07C660 7F047B30 46062282 */ mul.s $f10, $f4, $f6 +/* 07C664 7F047B34 E7AA0420 */ swc1 $f10, 0x420($sp) +/* 07C668 7F047B38 C6280038 */ lwc1 $f8, 0x38($s1) +/* 07C66C 7F047B3C C4440014 */ lwc1 $f4, 0x14($v0) +/* 07C670 7F047B40 46044182 */ mul.s $f6, $f8, $f4 +/* 07C674 7F047B44 E7A6040C */ swc1 $f6, 0x40c($sp) +/* 07C678 7F047B48 C62A0040 */ lwc1 $f10, 0x40($s1) +/* 07C67C 7F047B4C C4480014 */ lwc1 $f8, 0x14($v0) +/* 07C680 7F047B50 46085102 */ mul.s $f4, $f10, $f8 +/* 07C684 7F047B54 E7A40414 */ swc1 $f4, 0x414($sp) +/* 07C688 7F047B58 C6260038 */ lwc1 $f6, 0x38($s1) +/* 07C68C 7F047B5C C44A0018 */ lwc1 $f10, 0x18($v0) +/* 07C690 7F047B60 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C694 7F047B64 E7A80400 */ swc1 $f8, 0x400($sp) +/* 07C698 7F047B68 C6240040 */ lwc1 $f4, 0x40($s1) +/* 07C69C 7F047B6C C4460018 */ lwc1 $f6, 0x18($v0) +/* 07C6A0 7F047B70 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6A4 7F047B74 46062282 */ mul.s $f10, $f4, $f6 +/* 07C6A8 7F047B78 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6AC 7F047B7C E7AA0408 */ swc1 $f10, 0x408($sp) +/* 07C6B0 7F047B80 8E780014 */ lw $t8, 0x14($s3) +/* 07C6B4 7F047B84 AFB80468 */ sw $t8, 0x468($sp) +/* 07C6B8 7F047B88 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6BC 7F047B8C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C6C0 7F047B90 46040180 */ add.s $f6, $f0, $f4 +/* 07C6C4 7F047B94 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C6C8 7F047B98 44050000 */ mfc1 $a1, $f0 +/* 07C6CC 7F047B9C 44061000 */ mfc1 $a2, $f2 +/* 07C6D0 7F047BA0 46064280 */ add.s $f10, $f8, $f6 +/* 07C6D4 7F047BA4 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C6D8 7F047BA8 46081180 */ add.s $f6, $f2, $f8 +/* 07C6DC 7F047BAC 44075000 */ mfc1 $a3, $f10 +/* 07C6E0 7F047BB0 46062280 */ add.s $f10, $f4, $f6 +/* 07C6E4 7F047BB4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C6E8 7F047BB8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C6EC 7F047BBC 10400059 */ beqz $v0, .L7F047D24 +/* 07C6F0 7F047BC0 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6F4 7F047BC4 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6F8 7F047BC8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6FC 7F047BCC C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C700 7F047BD0 46040180 */ add.s $f6, $f0, $f4 +/* 07C704 7F047BD4 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C708 7F047BD8 02002025 */ move $a0, $s0 +/* 07C70C 7F047BDC 46064280 */ add.s $f10, $f8, $f6 +/* 07C710 7F047BE0 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 07C714 7F047BE4 44055000 */ mfc1 $a1, $f10 +/* 07C718 7F047BE8 46061280 */ add.s $f10, $f2, $f6 +/* 07C71C 7F047BEC 460A2180 */ add.s $f6, $f4, $f10 +/* 07C720 7F047BF0 C7AA0418 */ lwc1 $f10, 0x418($sp) +/* 07C724 7F047BF4 44063000 */ mfc1 $a2, $f6 +/* 07C728 7F047BF8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C72C 7F047BFC 46064280 */ add.s $f10, $f8, $f6 +/* 07C730 7F047C00 C7A80420 */ lwc1 $f8, 0x420($sp) +/* 07C734 7F047C04 46081180 */ add.s $f6, $f2, $f8 +/* 07C738 7F047C08 44075000 */ mfc1 $a3, $f10 +/* 07C73C 7F047C0C 46062280 */ add.s $f10, $f4, $f6 +/* 07C740 7F047C10 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C744 7F047C14 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C748 7F047C18 10400042 */ beqz $v0, .L7F047D24 +/* 07C74C 7F047C1C C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C750 7F047C20 C6680008 */ lwc1 $f8, 8($s3) +/* 07C754 7F047C24 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07C758 7F047C28 02002025 */ move $a0, $s0 +/* 07C75C 7F047C2C 46044000 */ add.s $f0, $f8, $f4 +/* 07C760 7F047C30 C7A40420 */ lwc1 $f4, 0x420($sp) +/* 07C764 7F047C34 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C768 7F047C38 46003280 */ add.s $f10, $f6, $f0 +/* 07C76C 7F047C3C C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C770 7F047C40 46044080 */ add.s $f2, $f8, $f4 +/* 07C774 7F047C44 44055000 */ mfc1 $a1, $f10 +/* 07C778 7F047C48 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C77C 7F047C4C 46023280 */ add.s $f10, $f6, $f2 +/* 07C780 7F047C50 C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C784 7F047C54 46004100 */ add.s $f4, $f8, $f0 +/* 07C788 7F047C58 44065000 */ mfc1 $a2, $f10 +/* 07C78C 7F047C5C 46023280 */ add.s $f10, $f6, $f2 +/* 07C790 7F047C60 44072000 */ mfc1 $a3, $f4 +/* 07C794 7F047C64 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C798 7F047C68 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C79C 7F047C6C 1040002D */ beqz $v0, .L7F047D24 +/* 07C7A0 7F047C70 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C7A4 7F047C74 C6600008 */ lwc1 $f0, 8($s3) +/* 07C7A8 7F047C78 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C7AC 7F047C7C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C7B0 7F047C80 46040180 */ add.s $f6, $f0, $f4 +/* 07C7B4 7F047C84 C7A40408 */ lwc1 $f4, 0x408($sp) +/* 07C7B8 7F047C88 02002025 */ move $a0, $s0 +/* 07C7BC 7F047C8C 46064280 */ add.s $f10, $f8, $f6 +/* 07C7C0 7F047C90 C7A60420 */ lwc1 $f6, 0x420($sp) +/* 07C7C4 7F047C94 44055000 */ mfc1 $a1, $f10 +/* 07C7C8 7F047C98 46061280 */ add.s $f10, $f2, $f6 +/* 07C7CC 7F047C9C 460A2180 */ add.s $f6, $f4, $f10 +/* 07C7D0 7F047CA0 C7AA0424 */ lwc1 $f10, 0x424($sp) +/* 07C7D4 7F047CA4 44063000 */ mfc1 $a2, $f6 +/* 07C7D8 7F047CA8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C7DC 7F047CAC 46064280 */ add.s $f10, $f8, $f6 +/* 07C7E0 7F047CB0 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C7E4 7F047CB4 46081180 */ add.s $f6, $f2, $f8 +/* 07C7E8 7F047CB8 44075000 */ mfc1 $a3, $f10 +/* 07C7EC 7F047CBC 46062280 */ add.s $f10, $f4, $f6 +/* 07C7F0 7F047CC0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C7F4 7F047CC4 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C7F8 7F047CC8 10400016 */ beqz $v0, .L7F047D24 +/* 07C7FC 7F047CCC C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C800 7F047CD0 C6680008 */ lwc1 $f8, 8($s3) +/* 07C804 7F047CD4 C7A60400 */ lwc1 $f6, 0x400($sp) +/* 07C808 7F047CD8 02002025 */ move $a0, $s0 +/* 07C80C 7F047CDC 46044000 */ add.s $f0, $f8, $f4 +/* 07C810 7F047CE0 C7A4042C */ lwc1 $f4, 0x42c($sp) +/* 07C814 7F047CE4 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C818 7F047CE8 46003280 */ add.s $f10, $f6, $f0 +/* 07C81C 7F047CEC C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C820 7F047CF0 46044080 */ add.s $f2, $f8, $f4 +/* 07C824 7F047CF4 44055000 */ mfc1 $a1, $f10 +/* 07C828 7F047CF8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C82C 7F047CFC 46023280 */ add.s $f10, $f6, $f2 +/* 07C830 7F047D00 C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C834 7F047D04 46004100 */ add.s $f4, $f8, $f0 +/* 07C838 7F047D08 44065000 */ mfc1 $a2, $f10 +/* 07C83C 7F047D0C 46023280 */ add.s $f10, $f6, $f2 +/* 07C840 7F047D10 44072000 */ mfc1 $a3, $f4 +/* 07C844 7F047D14 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C848 7F047D18 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C84C 7F047D1C 14400002 */ bnez $v0, .L7F047D28 +/* 07C850 7F047D20 00000000 */ nop +.L7F047D24: +/* 07C854 7F047D24 00009025 */ move $s2, $zero +.L7F047D28: +/* 07C858 7F047D28 12400023 */ beqz $s2, .L7F047DB8 +/* 07C85C 7F047D2C 02202025 */ move $a0, $s1 +/* 07C860 7F047D30 262F0058 */ addiu $t7, $s1, 0x58 +/* 07C864 7F047D34 AFAF0070 */ sw $t7, 0x70($sp) +/* 07C868 7F047D38 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C86C 7F047D3C 2630007C */ addiu $s0, $s1, 0x7c +/* 07C870 7F047D40 02602025 */ move $a0, $s3 +/* 07C874 7F047D44 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07C878 7F047D48 02002825 */ move $a1, $s0 +/* 07C87C 7F047D4C 0FC146F3 */ jal detonate_proxmine_In_range +/* 07C880 7F047D50 8FA40070 */ lw $a0, 0x70($sp) +/* 07C884 7F047D54 8FA80478 */ lw $t0, 0x478($sp) +/* 07C888 7F047D58 27A40450 */ addiu $a0, $sp, 0x450 +/* 07C88C 7F047D5C 27A50694 */ addiu $a1, $sp, 0x694 +/* 07C890 7F047D60 11000054 */ beqz $t0, .L7F047EB4 +/* 07C894 7F047D64 01003025 */ move $a2, $t0 +/* 07C898 7F047D68 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 07C89C 7F047D6C 3C0742C8 */ lui $a3, 0x42c8 +/* 07C8A0 7F047D70 10400050 */ beqz $v0, .L7F047EB4 +/* 07C8A4 7F047D74 00000000 */ nop +/* 07C8A8 7F047D78 8E2B00A8 */ lw $t3, 0xa8($s1) +/* 07C8AC 7F047D7C 8E3900A4 */ lw $t9, 0xa4($s1) +/* 07C8B0 7F047D80 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8B4 7F047D84 25690001 */ addiu $t1, $t3, 1 +/* 07C8B8 7F047D88 AE2900A8 */ sw $t1, 0xa8($s1) +/* 07C8BC 7F047D8C 8F2A0000 */ lw $t2, ($t9) +/* 07C8C0 7F047D90 00097080 */ sll $t6, $t1, 2 +/* 07C8C4 7F047D94 014E6821 */ addu $t5, $t2, $t6 +/* 07C8C8 7F047D98 8DB80000 */ lw $t8, ($t5) +/* 07C8CC 7F047D9C 07010045 */ bgez $t8, .L7F047EB4 +/* 07C8D0 7F047DA0 00000000 */ nop +/* 07C8D4 7F047DA4 44814000 */ mtc1 $at, $f8 +/* 07C8D8 7F047DA8 AE2000A4 */ sw $zero, 0xa4($s1) +/* 07C8DC 7F047DAC E6360094 */ swc1 $f22, 0x94($s1) +/* 07C8E0 7F047DB0 10000040 */ b .L7F047EB4 +/* 07C8E4 7F047DB4 E6280098 */ swc1 $f8, 0x98($s1) +.L7F047DB8: +/* 07C8E8 7F047DB8 C6240098 */ lwc1 $f4, 0x98($s1) +/* 07C8EC 7F047DBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8F0 7F047DC0 4616203C */ c.lt.s $f4, $f22 +/* 07C8F4 7F047DC4 00000000 */ nop +/* 07C8F8 7F047DC8 45020006 */ bc1fl .L7F047DE4 +/* 07C8FC 7F047DCC E6360088 */ swc1 $f22, 0x88($s1) +/* 07C900 7F047DD0 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C904 7F047DD4 44815000 */ mtc1 $at, $f10 +/* 07C908 7F047DD8 E6260094 */ swc1 $f6, 0x94($s1) +/* 07C90C 7F047DDC E62A0098 */ swc1 $f10, 0x98($s1) +/* 07C910 7F047DE0 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047DE4: +/* 07C914 7F047DE4 C7A80438 */ lwc1 $f8, 0x438($sp) +/* 07C918 7F047DE8 02202025 */ move $a0, $s1 +/* 07C91C 7F047DEC E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C920 7F047DF0 C7A40434 */ lwc1 $f4, 0x434($sp) +/* 07C924 7F047DF4 E624009C */ swc1 $f4, 0x9c($s1) +/* 07C928 7F047DF8 8FAF044C */ lw $t7, 0x44c($sp) +/* 07C92C 7F047DFC AE6F0014 */ sw $t7, 0x14($s3) +/* 07C930 7F047E00 C7A20450 */ lwc1 $f2, 0x450($sp) +/* 07C934 7F047E04 E6620008 */ swc1 $f2, 8($s3) +/* 07C938 7F047E08 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C93C 7F047E0C C7A20454 */ lwc1 $f2, 0x454($sp) +/* 07C940 7F047E10 E662000C */ swc1 $f2, 0xc($s3) +/* 07C944 7F047E14 E622005C */ swc1 $f2, 0x5c($s1) +/* 07C948 7F047E18 C7A20458 */ lwc1 $f2, 0x458($sp) +/* 07C94C 7F047E1C E6620010 */ swc1 $f2, 0x10($s3) +/* 07C950 7F047E20 0FC10121 */ jal sub_GAME_7F040484 +/* 07C954 7F047E24 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C958 7F047E28 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C95C 7F047E2C 02202025 */ move $a0, $s1 +/* 07C960 7F047E30 10000020 */ b .L7F047EB4 +/* 07C964 7F047E34 00000000 */ nop +.L7F047E38: +/* 07C968 7F047E38 C6260098 */ lwc1 $f6, 0x98($s1) +.L7F047E3C: +/* 07C96C 7F047E3C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C970 7F047E40 4616303C */ c.lt.s $f6, $f22 +/* 07C974 7F047E44 00000000 */ nop +/* 07C978 7F047E48 45020006 */ bc1fl .L7F047E64 +/* 07C97C 7F047E4C E6360088 */ swc1 $f22, 0x88($s1) +/* 07C980 7F047E50 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C984 7F047E54 44814000 */ mtc1 $at, $f8 +/* 07C988 7F047E58 E62A0094 */ swc1 $f10, 0x94($s1) +/* 07C98C 7F047E5C E6280098 */ swc1 $f8, 0x98($s1) +/* 07C990 7F047E60 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047E64: +/* 07C994 7F047E64 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C998 7F047E68 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C99C 7F047E6C C7A60434 */ lwc1 $f6, 0x434($sp) +/* 07C9A0 7F047E70 10000010 */ b .L7F047EB4 +/* 07C9A4 7F047E74 E626009C */ swc1 $f6, 0x9c($s1) +/* 07C9A8 7F047E78 8E280008 */ lw $t0, 8($s1) +.L7F047E7C: +/* 07C9AC 7F047E7C 00085880 */ sll $t3, $t0, 2 +/* 07C9B0 7F047E80 0561000C */ bgez $t3, .L7F047EB4 +/* 07C9B4 7F047E84 00000000 */ nop +/* 07C9B8 7F047E88 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C9BC 7F047E8C 0FC16A8C */ jal atan2f +/* 07C9C0 7F047E90 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C9C4 7F047E94 8E290008 */ lw $t1, 8($s1) +/* 07C9C8 7F047E98 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C9CC 7F047E9C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C9D0 7F047EA0 0121C824 */ and $t9, $t1, $at +/* 07C9D4 7F047EA4 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C9D8 7F047EA8 AE390008 */ sw $t9, 8($s1) +/* 07C9DC 7F047EAC 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C9E0 7F047EB0 02202025 */ move $a0, $s1 +.L7F047EB4: +/* 07C9E4 7F047EB4 100000DE */ b .L7F048230 +/* 07C9E8 7F047EB8 92220003 */ lbu $v0, 3($s1) +.L7F047EBC: +/* 07C9EC 7F047EBC 24010028 */ li $at, 40 +/* 07C9F0 7F047EC0 144100DA */ bne $v0, $at, .L7F04822C +/* 07C9F4 7F047EC4 02202025 */ move $a0, $s1 +/* 07C9F8 7F047EC8 0FC0D521 */ jal parse_handle_actionblocks +/* 07C9FC 7F047ECC 24050001 */ li $a1, 1 +/* 07CA00 7F047ED0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA04 7F047ED4 26250058 */ addiu $a1, $s1, 0x58 +/* 07CA08 7F047ED8 8E0C0020 */ lw $t4, 0x20($s0) +/* 07CA0C 7F047EDC 02002025 */ move $a0, $s0 +/* 07CA10 7F047EE0 51800065 */ beql $t4, $zero, .L7F048078 +/* 07CA14 7F047EE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CA18 7F047EE8 0FC1B303 */ jal setsuboffset +/* 07CA1C 7F047EEC AFA50070 */ sw $a1, 0x70($sp) +/* 07CA20 7F047EF0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA24 7F047EF4 3C0E8003 */ lui $t6, %hi(animation_table_ptrs2+4) +/* 07CA28 7F047EF8 8DCEA050 */ lw $t6, %lo(animation_table_ptrs2+4)($t6) +/* 07CA2C 7F047EFC 8E0A0020 */ lw $t2, 0x20($s0) +/* 07CA30 7F047F00 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 +/* 07CA34 7F047F04 02002025 */ move $a0, $s0 +/* 07CA38 7F047F08 154E0009 */ bne $t2, $t6, .L7F047F30 +/* 07CA3C 7F047F0C 00000000 */ nop +/* 07CA40 7F047F10 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA44 7F047F14 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c +/* 07CA48 7F047F18 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 07CA4C 7F047F1C 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 07CA50 7F047F20 0FC1B34F */ jal setsubroty +/* 07CA54 7F047F24 8E240014 */ lw $a0, 0x14($s1) +/* 07CA58 7F047F28 10000024 */ b .L7F047FBC +/* 07CA5C 7F047F2C 00000000 */ nop +.L7F047F30: +/* 07CA60 7F047F30 0C001A57 */ jal get_stage_num +/* 07CA64 7F047F34 00000000 */ nop +/* 07CA68 7F047F38 24010016 */ li $at, 22 +/* 07CA6C 7F047F3C 1441000A */ bne $v0, $at, .L7F047F68 +/* 07CA70 7F047F40 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CA74 7F047F44 8E240014 */ lw $a0, 0x14($s1) +/* 07CA78 7F047F48 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA7C 7F047F4C 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CA80 7F047F50 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 +/* 07CA84 7F047F54 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 +/* 07CA88 7F047F58 0FC1B34F */ jal setsubroty +/* 07CA8C 7F047F5C 8E240014 */ lw $a0, 0x14($s1) +/* 07CA90 7F047F60 10000016 */ b .L7F047FBC +/* 07CA94 7F047F64 00000000 */ nop +.L7F047F68: +/* 07CA98 7F047F68 0C001A57 */ jal get_stage_num +/* 07CA9C 7F047F6C 00000000 */ nop +/* 07CAA0 7F047F70 2401001A */ li $at, 26 +/* 07CAA4 7F047F74 1441000B */ bne $v0, $at, .L7F047FA4 +/* 07CAA8 7F047F78 3C053F85 */ lui $a1, 0x3f85 +/* 07CAAC 7F047F7C 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CAB0 7F047F80 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAB4 7F047F84 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CAB8 7F047F88 8E240014 */ lw $a0, 0x14($s1) +/* 07CABC 7F047F8C 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b +/* 07CAC0 7F047F90 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 +/* 07CAC4 7F047F94 0FC1B34F */ jal setsubroty +/* 07CAC8 7F047F98 8E240014 */ lw $a0, 0x14($s1) +/* 07CACC 7F047F9C 10000007 */ b .L7F047FBC +/* 07CAD0 7F047FA0 00000000 */ nop +.L7F047FA4: +/* 07CAD4 7F047FA4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAD8 7F047FA8 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CADC 7F047FAC 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAE0 7F047FB0 4405B000 */ mfc1 $a1, $f22 +/* 07CAE4 7F047FB4 0FC1B34F */ jal setsubroty +/* 07CAE8 7F047FB8 8E240014 */ lw $a0, 0x14($s1) +.L7F047FBC: +/* 07CAEC 7F047FBC 3C058005 */ lui $a1, %hi(clock_timer) +/* 07CAF0 7F047FC0 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 07CAF4 7F047FC4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAF8 7F047FC8 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 07CAFC 7F047FCC 24060001 */ li $a2, 1 +/* 07CB00 7F047FD0 0FC1B5AC */ jal subcalcpos +/* 07CB04 7F047FD4 8E240014 */ lw $a0, 0x14($s1) +/* 07CB08 7F047FD8 8E240014 */ lw $a0, 0x14($s1) +/* 07CB0C 7F047FDC 0FC1B2E6 */ jal getsuboffset +/* 07CB10 7F047FE0 8FA50070 */ lw $a1, 0x70($sp) +/* 07CB14 7F047FE4 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07CB18 7F047FE8 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB20 7F047FF0 E66A0008 */ swc1 $f10, 8($s3) +/* 07CB24 7F047FF4 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07CB28 7F047FF8 E6680010 */ swc1 $f8, 0x10($s3) +/* 07CB2C 7F047FFC 86220006 */ lh $v0, 6($s1) +/* 07CB30 7F048000 28412710 */ slti $at, $v0, 0x2710 +/* 07CB34 7F048004 1020000B */ beqz $at, .L7F048034 +/* 07CB38 7F048008 00027900 */ sll $t7, $v0, 4 +/* 07CB3C 7F04800C 00026880 */ sll $t5, $v0, 2 +/* 07CB40 7F048010 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB44 7F048014 01A26823 */ subu $t5, $t5, $v0 +/* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB4C 7F04801C 000D6880 */ sll $t5, $t5, 2 +/* 07CB50 7F048020 8CB80018 */ lw $t8, 0x18($a1) +/* 07CB54 7F048024 01A26823 */ subu $t5, $t5, $v0 +/* 07CB58 7F048028 000D6880 */ sll $t5, $t5, 2 +/* 07CB5C 7F04802C 10000008 */ b .L7F048050 +/* 07CB60 7F048030 01B81821 */ addu $v1, $t5, $t8 +.L7F048034: +/* 07CB64 7F048034 8CA8001C */ lw $t0, 0x1c($a1) +/* 07CB68 7F048038 01E27821 */ addu $t7, $t7, $v0 +/* 07CB6C 7F04803C 000F7880 */ sll $t7, $t7, 2 +/* 07CB70 7F048040 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 07CB74 7F048044 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 07CB78 7F048048 01E81821 */ addu $v1, $t7, $t0 +/* 07CB7C 7F04804C 00611821 */ addu $v1, $v1, $at +.L7F048050: +/* 07CB80 7F048050 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07CB84 7F048054 C4660004 */ lwc1 $f6, 4($v1) +/* 07CB88 7F048058 46062280 */ add.s $f10, $f4, $f6 +/* 07CB8C 7F04805C E66A000C */ swc1 $f10, 0xc($s3) +/* 07CB90 7F048060 C668000C */ lwc1 $f8, 0xc($s3) +/* 07CB94 7F048064 8E240014 */ lw $a0, 0x14($s1) +/* 07CB98 7F048068 E628005C */ swc1 $f8, 0x5c($s1) +/* 07CB9C 7F04806C 0FC1B303 */ jal setsuboffset +/* 07CBA0 7F048070 8FA50070 */ lw $a1, 0x70($sp) +/* 07CBA4 7F048074 C62C00A0 */ lwc1 $f12, 0xa0($s1) +.L7F048078: +/* 07CBA8 7F048078 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBAC 7F04807C 460CB03E */ c.le.s $f22, $f12 +/* 07CBB0 7F048080 00000000 */ nop +/* 07CBB4 7F048084 45020016 */ bc1fl .L7F0480E0 +/* 07CBB8 7F048088 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CBBC 7F04808C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CBC0 7F048090 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBC4 7F048094 4602603E */ c.le.s $f12, $f2 +/* 07CBC8 7F048098 00000000 */ nop +/* 07CBCC 7F04809C 45020006 */ bc1fl .L7F0480B8 +/* 07CBD0 7F0480A0 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07CBD4 7F0480A4 C624009C */ lwc1 $f4, 0x9c($s1) +/* 07CBD8 7F0480A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CBDC 7F0480AC 10000008 */ b .L7F0480D0 +/* 07CBE0 7F0480B0 E6240098 */ swc1 $f4, 0x98($s1) +/* 07CBE4 7F0480B4 C62E0098 */ lwc1 $f14, 0x98($s1) +.L7F0480B8: +/* 07CBE8 7F0480B8 C626009C */ lwc1 $f6, 0x9c($s1) +/* 07CBEC 7F0480BC 460E3281 */ sub.s $f10, $f6, $f14 +/* 07CBF0 7F0480C0 46025202 */ mul.s $f8, $f10, $f2 +/* 07CBF4 7F0480C4 460C4103 */ div.s $f4, $f8, $f12 +/* 07CBF8 7F0480C8 46047180 */ add.s $f6, $f14, $f4 +/* 07CBFC 7F0480CC E6260098 */ swc1 $f6, 0x98($s1) +.L7F0480D0: +/* 07CC00 7F0480D0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC04 7F0480D4 460A6201 */ sub.s $f8, $f12, $f10 +/* 07CC08 7F0480D8 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07CC0C 7F0480DC C6200094 */ lwc1 $f0, 0x94($s1) +.L7F0480E0: +/* 07CC10 7F0480E0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC14 7F0480E4 4600B03E */ c.le.s $f22, $f0 +/* 07CC18 7F0480E8 00000000 */ nop +/* 07CC1C 7F0480EC 45020016 */ bc1fl .L7F048148 +/* 07CC20 7F0480F0 8E2B000C */ lw $t3, 0xc($s1) +/* 07CC24 7F0480F4 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CC28 7F0480F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC2C 7F0480FC 4602003E */ c.le.s $f0, $f2 +/* 07CC30 7F048100 00000000 */ nop +/* 07CC34 7F048104 45020006 */ bc1fl .L7F048120 +/* 07CC38 7F048108 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07CC3C 7F04810C C6240090 */ lwc1 $f4, 0x90($s1) +/* 07CC40 7F048110 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CC44 7F048114 10000008 */ b .L7F048138 +/* 07CC48 7F048118 E624008C */ swc1 $f4, 0x8c($s1) +/* 07CC4C 7F04811C C62C008C */ lwc1 $f12, 0x8c($s1) +.L7F048120: +/* 07CC50 7F048120 C6260090 */ lwc1 $f6, 0x90($s1) +/* 07CC54 7F048124 460C3281 */ sub.s $f10, $f6, $f12 +/* 07CC58 7F048128 46025202 */ mul.s $f8, $f10, $f2 +/* 07CC5C 7F04812C 46004103 */ div.s $f4, $f8, $f0 +/* 07CC60 7F048130 46046180 */ add.s $f6, $f12, $f4 +/* 07CC64 7F048134 E626008C */ swc1 $f6, 0x8c($s1) +.L7F048138: +/* 07CC68 7F048138 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC6C 7F04813C 460A0201 */ sub.s $f8, $f0, $f10 +/* 07CC70 7F048140 E6280094 */ swc1 $f8, 0x94($s1) +/* 07CC74 7F048144 8E2B000C */ lw $t3, 0xc($s1) +.L7F048148: +/* 07CC78 7F048148 00008025 */ move $s0, $zero +/* 07CC7C 7F04814C 000B4B00 */ sll $t1, $t3, 0xc +/* 07CC80 7F048150 05200014 */ bltz $t1, .L7F0481A4 +/* 07CC84 7F048154 00000000 */ nop +/* 07CC88 7F048158 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07CC8C 7F04815C 02202025 */ move $a0, $s1 +/* 07CC90 7F048160 10400010 */ beqz $v0, .L7F0481A4 +/* 07CC94 7F048164 00000000 */ nop +/* 07CC98 7F048168 C624008C */ lwc1 $f4, 0x8c($s1) +/* 07CC9C 7F04816C 4604B032 */ c.eq.s $f22, $f4 +/* 07CCA0 7F048170 00000000 */ nop +/* 07CCA4 7F048174 4501000B */ bc1t .L7F0481A4 +/* 07CCA8 7F048178 00000000 */ nop +/* 07CCAC 7F04817C 8E390008 */ lw $t9, 8($s1) +/* 07CCB0 7F048180 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 07CCB4 7F048184 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 07CCB8 7F048188 00196080 */ sll $t4, $t9, 2 +/* 07CCBC 7F04818C 05800005 */ bltz $t4, .L7F0481A4 +/* 07CCC0 7F048190 26240058 */ addiu $a0, $s1, 0x58 +/* 07CCC4 7F048194 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 07CCC8 7F048198 0FC14E25 */ jal sub_GAME_7F053894 +/* 07CCCC 7F04819C 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07CCD0 7F0481A0 00408025 */ move $s0, $v0 +.L7F0481A4: +/* 07CCD4 7F0481A4 5A000019 */ blezl $s0, .L7F04820C +/* 07CCD8 7F0481A8 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCDC 7F0481AC 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCE0 7F0481B0 10800005 */ beqz $a0, .L7F0481C8 +/* 07CCE4 7F0481B4 00000000 */ nop +/* 07CCE8 7F0481B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07CCEC 7F0481BC 00000000 */ nop +/* 07CCF0 7F0481C0 5440000A */ bnezl $v0, .L7F0481EC +/* 07CCF4 7F0481C4 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481C8: +/* 07CCF8 7F0481C8 0FC2FF01 */ jal get_controls_locked_flag +/* 07CCFC 7F0481CC 00000000 */ nop +/* 07CD00 7F0481D0 14400005 */ bnez $v0, .L7F0481E8 +/* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07CD0C 7F0481DC 2405003A */ li $a1, 58 +/* 07CD10 7F0481E0 0C002382 */ jal play_sfx_a1 +/* 07CD14 7F0481E4 262600B0 */ addiu $a2, $s1, 0xb0 +.L7F0481E8: +/* 07CD18 7F0481E8 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481EC: +/* 07CD1C 7F0481EC 24050008 */ li $a1, 8 +/* 07CD20 7F0481F0 5080000F */ beql $a0, $zero, .L7F048230 +/* 07CD24 7F0481F4 92220003 */ lbu $v0, 3($s1) +/* 07CD28 7F0481F8 0C002461 */ jal sfx_c_70009184 +/* 07CD2C 7F0481FC 02003025 */ move $a2, $s0 +/* 07CD30 7F048200 1000000B */ b .L7F048230 +/* 07CD34 7F048204 92220003 */ lbu $v0, 3($s1) +/* 07CD38 7F048208 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04820C: +/* 07CD3C 7F04820C 50800008 */ beql $a0, $zero, .L7F048230 +/* 07CD40 7F048210 92220003 */ lbu $v0, 3($s1) +/* 07CD44 7F048214 0C00237C */ jal sfxGetArg0Unk3F +/* 07CD48 7F048218 00000000 */ nop +/* 07CD4C 7F04821C 50400004 */ beql $v0, $zero, .L7F048230 +/* 07CD50 7F048220 92220003 */ lbu $v0, 3($s1) +/* 07CD54 7F048224 0C002408 */ jal sfxDeactivate +/* 07CD58 7F048228 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04822C: +/* 07CD5C 7F04822C 92220003 */ lbu $v0, 3($s1) +.L7F048230: +/* 07CD60 7F048230 3C018005 */ lui $at, %hi(D_80052B64) +/* 07CD64 7F048234 C4342B64 */ lwc1 $f20, %lo(D_80052B64)($at) +/* 07CD68 7F048238 2401002F */ li $at, 47 +/* 07CD6C 7F04823C 54410020 */ bnel $v0, $at, .L7F0482C0 +/* 07CD70 7F048240 24010001 */ li $at, 1 +/* 07CD74 7F048244 8E700004 */ lw $s0, 4($s3) +/* 07CD78 7F048248 26240058 */ addiu $a0, $s1, 0x58 +/* 07CD7C 7F04824C 8E0A0080 */ lw $t2, 0x80($s0) +/* 07CD80 7F048250 8E0E0084 */ lw $t6, 0x84($s0) +/* 07CD84 7F048254 8E070090 */ lw $a3, 0x90($s0) +/* 07CD88 7F048258 448A3000 */ mtc1 $t2, $f6 +/* 07CD8C 7F04825C 448E5000 */ mtc1 $t6, $f10 +/* 07CD90 7F048260 468031A0 */ cvt.s.w $f6, $f6 +/* 07CD94 7F048264 468052A0 */ cvt.s.w $f10, $f10 +/* 07CD98 7F048268 44053000 */ mfc1 $a1, $f6 +/* 07CD9C 7F04826C 44065000 */ mfc1 $a2, $f10 +/* 07CDA0 7F048270 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CDA4 7F048274 00000000 */ nop +/* 07CDA8 7F048278 8E04008C */ lw $a0, 0x8c($s0) +/* 07CDAC 7F04827C AE020088 */ sw $v0, 0x88($s0) +/* 07CDB0 7F048280 8FAD0674 */ lw $t5, 0x674($sp) +/* 07CDB4 7F048284 0480000B */ bltz $a0, .L7F0482B4 +/* 07CDB8 7F048288 24010001 */ li $at, 1 +/* 07CDBC 7F04828C 15A10009 */ bne $t5, $at, .L7F0482B4 +/* 07CDC0 7F048290 240100FF */ li $at, 255 +/* 07CDC4 7F048294 14410005 */ bne $v0, $at, .L7F0482AC +/* 07CDC8 7F048298 00000000 */ nop +/* 07CDCC 7F04829C 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDD0 7F0482A0 00002825 */ move $a1, $zero +/* 07CDD4 7F0482A4 10000003 */ b .L7F0482B4 +/* 07CDD8 7F0482A8 00000000 */ nop +.L7F0482AC: +/* 07CDDC 7F0482AC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDE0 7F0482B0 24050001 */ li $a1, 1 +.L7F0482B4: +/* 07CDE4 7F0482B4 1000003B */ b .L7F0483A4 +/* 07CDE8 7F0482B8 AFA00670 */ sw $zero, 0x670($sp) +/* 07CDEC 7F0482BC 24010001 */ li $at, 1 +.L7F0482C0: +/* 07CDF0 7F0482C0 54410039 */ bnel $v0, $at, .L7F0483A8 +/* 07CDF4 7F0482C4 922F0003 */ lbu $t7, 3($s1) +/* 07CDF8 7F0482C8 962F0098 */ lhu $t7, 0x98($s1) +/* 07CDFC 7F0482CC 31E80002 */ andi $t0, $t7, 2 +/* 07CE00 7F0482D0 51000035 */ beql $t0, $zero, .L7F0483A8 +/* 07CE04 7F0482D4 922F0003 */ lbu $t7, 3($s1) +/* 07CE08 7F0482D8 8E700004 */ lw $s0, 4($s3) +/* 07CE0C 7F0482DC 4407B000 */ mfc1 $a3, $f22 +/* 07CE10 7F0482E0 24120001 */ li $s2, 1 +/* 07CE14 7F0482E4 8E0B00C0 */ lw $t3, 0xc0($s0) +/* 07CE18 7F0482E8 8E0900C4 */ lw $t1, 0xc4($s0) +/* 07CE1C 7F0482EC 26240058 */ addiu $a0, $s1, 0x58 +/* 07CE20 7F0482F0 448B4000 */ mtc1 $t3, $f8 +/* 07CE24 7F0482F4 44892000 */ mtc1 $t1, $f4 +/* 07CE28 7F0482F8 46804220 */ cvt.s.w $f8, $f8 +/* 07CE2C 7F0482FC 46802120 */ cvt.s.w $f4, $f4 +/* 07CE30 7F048300 44054000 */ mfc1 $a1, $f8 +/* 07CE34 7F048304 44062000 */ mfc1 $a2, $f4 +/* 07CE38 7F048308 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CE3C 7F04830C 00000000 */ nop +/* 07CE40 7F048310 A60200BE */ sh $v0, 0xbe($s0) +/* 07CE44 7F048314 8FB90674 */ lw $t9, 0x674($sp) +/* 07CE48 7F048318 24010001 */ li $at, 1 +/* 07CE4C 7F04831C 57210022 */ bnel $t9, $at, .L7F0483A8 +/* 07CE50 7F048320 922F0003 */ lbu $t7, 3($s1) +/* 07CE54 7F048324 860C00BE */ lh $t4, 0xbe($s0) +/* 07CE58 7F048328 240100FF */ li $at, 255 +/* 07CE5C 7F04832C 55810007 */ bnel $t4, $at, .L7F04834C +/* 07CE60 7F048330 00009025 */ move $s2, $zero +/* 07CE64 7F048334 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07CE68 7F048338 4606B03C */ c.lt.s $f22, $f6 +/* 07CE6C 7F04833C 00000000 */ nop +/* 07CE70 7F048340 45020003 */ bc1fl .L7F048350 +/* 07CE74 7F048344 8E820008 */ lw $v0, 8($s4) +/* 07CE78 7F048348 00009025 */ move $s2, $zero +.L7F04834C: +/* 07CE7C 7F04834C 8E820008 */ lw $v0, 8($s4) +.L7F048350: +/* 07CE80 7F048350 3C0A8004 */ lui $t2, %hi(prop_door_related) +/* 07CE84 7F048354 254AA1DC */ addiu $t2, %lo(prop_door_related) # addiu $t2, $t2, -0x5e24 +/* 07CE88 7F048358 8C4E0004 */ lw $t6, 4($v0) +/* 07CE8C 7F04835C 154E0009 */ bne $t2, $t6, .L7F048384 +/* 07CE90 7F048360 00000000 */ nop +/* 07CE94 7F048364 8C4D0008 */ lw $t5, 8($v0) +/* 07CE98 7F048368 02802025 */ move $a0, $s4 +/* 07CE9C 7F04836C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07CEA0 7F048370 8DA50004 */ lw $a1, 4($t5) +/* 07CEA4 7F048374 8C580000 */ lw $t8, ($v0) +/* 07CEA8 7F048378 17000002 */ bnez $t8, .L7F048384 +/* 07CEAC 7F04837C 00000000 */ nop +/* 07CEB0 7F048380 00009025 */ move $s2, $zero +.L7F048384: +/* 07CEB4 7F048384 12400005 */ beqz $s2, .L7F04839C +/* 07CEB8 7F048388 00000000 */ nop +/* 07CEBC 7F04838C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 07CEC0 7F048390 02002025 */ move $a0, $s0 +/* 07CEC4 7F048394 10000004 */ b .L7F0483A8 +/* 07CEC8 7F048398 922F0003 */ lbu $t7, 3($s1) +.L7F04839C: +/* 07CECC 7F04839C 0FC14D66 */ jal sub_GAME_7F053598 +/* 07CED0 7F0483A0 02002025 */ move $a0, $s0 +.L7F0483A4: +/* 07CED4 7F0483A4 922F0003 */ lbu $t7, 3($s1) +.L7F0483A8: +/* 07CED8 7F0483A8 2410002D */ li $s0, 45 +/* 07CEDC 7F0483AC 560F0008 */ bnel $s0, $t7, .L7F0483D0 +/* 07CEE0 7F0483B0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEE4 7F0483B4 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 07CEE8 7F0483B8 00000000 */ nop +/* 07CEEC 7F0483BC 54530004 */ bnel $v0, $s3, .L7F0483D0 +/* 07CEF0 7F0483C0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEF4 7F0483C4 10000019 */ b .L7F04842C +/* 07CEF8 7F0483C8 24030001 */ li $v1, 1 +/* 07CEFC 7F0483CC 8E23000C */ lw $v1, 0xc($s1) +.L7F0483D0: +/* 07CF00 7F0483D0 00034140 */ sll $t0, $v1, 5 +/* 07CF04 7F0483D4 05030004 */ bgezl $t0, .L7F0483E8 +/* 07CF08 7F0483D8 8E2B0064 */ lw $t3, 0x64($s1) +/* 07CF0C 7F0483DC 10000013 */ b .L7F04842C +/* 07CF10 7F0483E0 24030001 */ li $v1, 1 +/* 07CF14 7F0483E4 8E2B0064 */ lw $t3, 0x64($s1) +.L7F0483E8: +/* 07CF18 7F0483E8 0003CB00 */ sll $t9, $v1, 0xc +/* 07CF1C 7F0483EC 00001825 */ move $v1, $zero +/* 07CF20 7F0483F0 31690800 */ andi $t1, $t3, 0x800 +/* 07CF24 7F0483F4 1520000D */ bnez $t1, .L7F04842C +/* 07CF28 7F0483F8 00000000 */ nop +/* 07CF2C 7F0483FC 0720000B */ bltz $t9, .L7F04842C +/* 07CF30 7F048400 02802025 */ move $a0, $s4 +/* 07CF34 7F048404 262C0058 */ addiu $t4, $s1, 0x58 +/* 07CF38 7F048408 0FC1B403 */ jal getinstsize +/* 07CF3C 7F04840C AFAC0070 */ sw $t4, 0x70($sp) +/* 07CF40 7F048410 44060000 */ mfc1 $a2, $f0 +/* 07CF44 7F048414 02602025 */ move $a0, $s3 +/* 07CF48 7F048418 8FA50070 */ lw $a1, 0x70($sp) +/* 07CF4C 7F04841C 0FC1535B */ jal sub_GAME_7F054D6C +/* 07CF50 7F048420 8FA70670 */ lw $a3, 0x670($sp) +/* 07CF54 7F048424 10000001 */ b .L7F04842C +/* 07CF58 7F048428 00401825 */ move $v1, $v0 +.L7F04842C: +/* 07CF5C 7F04842C 1060037A */ beqz $v1, .L7F049218 +/* 07CF60 7F048430 8FAA0678 */ lw $t2, 0x678($sp) +/* 07CF64 7F048434 11400003 */ beqz $t2, .L7F048444 +/* 07CF68 7F048438 26240078 */ addiu $a0, $s1, 0x78 +/* 07CF6C 7F04843C 0FC100C4 */ jal update_color_shading +/* 07CF70 7F048440 2625007C */ addiu $a1, $s1, 0x7c +.L7F048444: +/* 07CF74 7F048444 926E0001 */ lbu $t6, 1($s3) +/* 07CF78 7F048448 35CD0002 */ ori $t5, $t6, 2 +/* 07CF7C 7F04844C A26D0001 */ sb $t5, 1($s3) +/* 07CF80 7F048450 8E980008 */ lw $t8, 8($s4) +/* 07CF84 7F048454 8704000E */ lh $a0, 0xe($t8) +/* 07CF88 7F048458 00047980 */ sll $t7, $a0, 6 +/* 07CF8C 7F04845C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 07CF90 7F048460 01E02025 */ move $a0, $t7 +/* 07CF94 7F048464 AE82000C */ sw $v0, 0xc($s4) +/* 07CF98 7F048468 92280003 */ lbu $t0, 3($s1) +/* 07CF9C 7F04846C 24010001 */ li $at, 1 +/* 07CFA0 7F048470 00409025 */ move $s2, $v0 +/* 07CFA4 7F048474 150100AD */ bne $t0, $at, .L7F04872C +/* 07CFA8 7F048478 26240018 */ addiu $a0, $s1, 0x18 +/* 07CFAC 7F04847C 8E640004 */ lw $a0, 4($s3) +/* 07CFB0 7F048480 00402825 */ move $a1, $v0 +/* 07CFB4 7F048484 0FC149BB */ jal sub_GAME_7F0526EC +/* 07CFB8 7F048488 AFA4039C */ sw $a0, 0x39c($sp) +/* 07CFBC 7F04848C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07CFC0 7F048490 00000000 */ nop +/* 07CFC4 7F048494 00402025 */ move $a0, $v0 +/* 07CFC8 7F048498 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07CFCC 7F04849C 02402825 */ move $a1, $s2 +/* 07CFD0 7F0484A0 8E820008 */ lw $v0, 8($s4) +/* 07CFD4 7F0484A4 3C0B8004 */ lui $t3, %hi(prop_eyelid_door_related) +/* 07CFD8 7F0484A8 256BA100 */ addiu $t3, %lo(prop_eyelid_door_related) # addiu $t3, $t3, -0x5f00 +/* 07CFDC 7F0484AC 8C430004 */ lw $v1, 4($v0) +/* 07CFE0 7F0484B0 3C0D8004 */ lui $t5, %hi(prop_iris_door_related) +/* 07CFE4 7F0484B4 8FA6039C */ lw $a2, 0x39c($sp) +/* 07CFE8 7F0484B8 15630025 */ bne $t3, $v1, .L7F048550 +/* 07CFEC 7F0484BC 25ADA15C */ addiu $t5, %lo(prop_iris_door_related) # addiu $t5, $t5, -0x5ea4 +/* 07CFF0 7F0484C0 C4CA00B4 */ lwc1 $f10, 0xb4($a2) +/* 07CFF4 7F0484C4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07CFF8 7F0484C8 44812000 */ mtc1 $at, $f4 +/* 07CFFC 7F0484CC 46145202 */ mul.s $f8, $f10, $f20 +/* 07D000 7F0484D0 8C490008 */ lw $t1, 8($v0) +/* 07D004 7F0484D4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D008 7F0484D8 8D390004 */ lw $t9, 4($t1) +/* 07D00C 7F0484DC 46044183 */ div.s $f6, $f8, $f4 +/* 07D010 7F0484E0 8F300004 */ lw $s0, 4($t9) +/* 07D014 7F0484E4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D018 7F0484E8 4606A301 */ sub.s $f12, $f20, $f6 +/* 07D01C 7F0484EC 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D020 7F0484F0 E7AC0394 */ swc1 $f12, 0x394($sp) +/* 07D024 7F0484F4 02002025 */ move $a0, $s0 +/* 07D028 7F0484F8 0FC16266 */ jal matrix_4x4_set_position +/* 07D02C 7F0484FC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D030 7F048500 02402025 */ move $a0, $s2 +/* 07D034 7F048504 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D038 7F048508 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D03C 7F04850C 8E8C0008 */ lw $t4, 8($s4) +/* 07D040 7F048510 C7AA0394 */ lwc1 $f10, 0x394($sp) +/* 07D044 7F048514 26450080 */ addiu $a1, $s2, 0x80 +/* 07D048 7F048518 8D8A0008 */ lw $t2, 8($t4) +/* 07D04C 7F04851C 460AA301 */ sub.s $f12, $f20, $f10 +/* 07D050 7F048520 8D4E0008 */ lw $t6, 8($t2) +/* 07D054 7F048524 8DD00004 */ lw $s0, 4($t6) +/* 07D058 7F048528 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D05C 7F04852C AFA50068 */ sw $a1, 0x68($sp) +/* 07D060 7F048530 02002025 */ move $a0, $s0 +/* 07D064 7F048534 0FC16266 */ jal matrix_4x4_set_position +/* 07D068 7F048538 8FA50068 */ lw $a1, 0x68($sp) +/* 07D06C 7F04853C 02402025 */ move $a0, $s2 +/* 07D070 7F048540 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D074 7F048544 8FA50068 */ lw $a1, 0x68($sp) +/* 07D078 7F048548 1000031F */ b .L7F0491C8 +/* 07D07C 7F04854C 8E8F0008 */ lw $t7, 8($s4) +.L7F048550: +/* 07D080 7F048550 55A3031D */ bnel $t5, $v1, .L7F0491C8 +/* 07D084 7F048554 8E8F0008 */ lw $t7, 8($s4) +/* 07D088 7F048558 C4C200B4 */ lwc1 $f2, 0xb4($a2) +/* 07D08C 7F04855C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D090 7F048560 44812000 */ mtc1 $at, $f4 +/* 07D094 7F048564 46141202 */ mul.s $f8, $f2, $f20 +/* 07D098 7F048568 3C018005 */ lui $at, %hi(D_80052B68) +/* 07D09C 7F04856C C42A2B68 */ lwc1 $f10, %lo(D_80052B68)($at) +/* 07D0A0 7F048570 4600B386 */ mov.s $f14, $f22 +/* 07D0A4 7F048574 46044183 */ div.s $f6, $f8, $f4 +/* 07D0A8 7F048578 E7A60384 */ swc1 $f6, 0x384($sp) +/* 07D0AC 7F04857C C4CC0084 */ lwc1 $f12, 0x84($a2) +/* 07D0B0 7F048580 460A6002 */ mul.s $f0, $f12, $f10 +/* 07D0B4 7F048584 4602003C */ c.lt.s $f0, $f2 +/* 07D0B8 7F048588 00000000 */ nop +/* 07D0BC 7F04858C 4502001F */ bc1fl .L7F04860C +/* 07D0C0 7F048590 8FA80678 */ lw $t0, 0x678($sp) +/* 07D0C4 7F048594 46001201 */ sub.s $f8, $f2, $f0 +/* 07D0C8 7F048598 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D0CC 7F04859C 8FB80678 */ lw $t8, 0x678($sp) +/* 07D0D0 7F0485A0 46006181 */ sub.s $f6, $f12, $f0 +/* 07D0D4 7F0485A4 46086102 */ mul.s $f4, $f12, $f8 +/* 07D0D8 7F0485A8 46062283 */ div.s $f10, $f4, $f6 +/* 07D0DC 7F0485AC 44812000 */ mtc1 $at, $f4 +/* 07D0E0 7F0485B0 46145202 */ mul.s $f8, $f10, $f20 +/* 07D0E4 7F0485B4 46044383 */ div.s $f14, $f8, $f4 +/* 07D0E8 7F0485B8 13000011 */ beqz $t8, .L7F048600 +/* 07D0EC 7F0485BC E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F0 7F0485C0 C7A6067C */ lwc1 $f6, 0x67c($sp) +/* 07D0F4 7F0485C4 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D0FC 7F0485CC 4600303E */ c.le.s $f6, $f0 +/* 07D100 7F0485D0 240500CA */ li $a1, 202 +/* 07D104 7F0485D4 00003025 */ move $a2, $zero +/* 07D108 7F0485D8 266F0008 */ addiu $t7, $s3, 8 +/* 07D10C 7F0485DC 45000008 */ bc1f .L7F048600 +/* 07D110 7F0485E0 00000000 */ nop +/* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D118 7F0485E8 AFAF0070 */ sw $t7, 0x70($sp) +/* 07D11C 7F0485EC 0C002382 */ jal play_sfx_a1 +/* 07D120 7F0485F0 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D124 7F0485F4 00402025 */ move $a0, $v0 +/* 07D128 7F0485F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D12C 7F0485FC 8FA50070 */ lw $a1, 0x70($sp) +.L7F048600: +/* 07D130 7F048600 10000016 */ b .L7F04865C +/* 07D134 7F048604 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D138 7F048608 8FA80678 */ lw $t0, 0x678($sp) +.L7F04860C: +/* 07D13C 7F04860C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D140 7F048610 51000012 */ beql $t0, $zero, .L7F04865C +/* 07D144 7F048614 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D148 7F048618 C7AA067C */ lwc1 $f10, 0x67c($sp) +/* 07D14C 7F04861C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D150 7F048620 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D154 7F048624 460A003C */ c.lt.s $f0, $f10 +/* 07D158 7F048628 240500CB */ li $a1, 203 +/* 07D15C 7F04862C 00003025 */ move $a2, $zero +/* 07D160 7F048630 266B0008 */ addiu $t3, $s3, 8 +/* 07D164 7F048634 45020009 */ bc1fl .L7F04865C +/* 07D168 7F048638 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D170 7F048640 AFAB0070 */ sw $t3, 0x70($sp) +/* 07D174 7F048644 0C002382 */ jal play_sfx_a1 +/* 07D178 7F048648 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D17C 7F04864C 00402025 */ move $a0, $v0 +/* 07D180 7F048650 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D184 7F048654 8FA50070 */ lw $a1, 0x70($sp) +/* 07D188 7F048658 AFA0038C */ sw $zero, 0x38c($sp) +.L7F04865C: +/* 07D18C 7F04865C 8E890008 */ lw $t1, 8($s4) +/* 07D190 7F048660 8FA3038C */ lw $v1, 0x38c($sp) +/* 07D194 7F048664 C7AC0380 */ lwc1 $f12, 0x380($sp) +/* 07D198 7F048668 8D390008 */ lw $t9, 8($t1) +/* 07D19C 7F04866C 00031040 */ sll $v0, $v1, 1 +/* 07D1A0 7F048670 00026080 */ sll $t4, $v0, 2 +/* 07D1A4 7F048674 032C5021 */ addu $t2, $t9, $t4 +/* 07D1A8 7F048678 8D4E0004 */ lw $t6, 4($t2) +/* 07D1AC 7F04867C 0002C180 */ sll $t8, $v0, 6 +/* 07D1B0 7F048680 02582821 */ addu $a1, $s2, $t8 +/* 07D1B4 7F048684 8DCD0004 */ lw $t5, 4($t6) +/* 07D1B8 7F048688 AFA20074 */ sw $v0, 0x74($sp) +/* 07D1BC 7F04868C 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1C0 7F048690 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D1C4 7F048694 AFAD0390 */ sw $t5, 0x390($sp) +/* 07D1C8 7F048698 8FAF0074 */ lw $t7, 0x74($sp) +/* 07D1CC 7F04869C 8FB0038C */ lw $s0, 0x38c($sp) +/* 07D1D0 7F0486A0 8FA40390 */ lw $a0, 0x390($sp) +/* 07D1D4 7F0486A4 000F4180 */ sll $t0, $t7, 6 +/* 07D1D8 7F0486A8 02482821 */ addu $a1, $s2, $t0 +/* 07D1DC 7F0486AC 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1E0 7F0486B0 0FC16266 */ jal matrix_4x4_set_position +/* 07D1E4 7F0486B4 AFA50070 */ sw $a1, 0x70($sp) +/* 07D1E8 7F0486B8 02402025 */ move $a0, $s2 +/* 07D1EC 7F0486BC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D1F0 7F0486C0 8FA50070 */ lw $a1, 0x70($sp) +/* 07D1F4 7F0486C4 8E8B0008 */ lw $t3, 8($s4) +/* 07D1F8 7F0486C8 8FA20074 */ lw $v0, 0x74($sp) +/* 07D1FC 7F0486CC C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 07D200 7F0486D0 8D690008 */ lw $t1, 8($t3) +/* 07D204 7F0486D4 24420002 */ addiu $v0, $v0, 2 +/* 07D208 7F0486D8 0002C880 */ sll $t9, $v0, 2 +/* 07D20C 7F0486DC 01396021 */ addu $t4, $t1, $t9 +/* 07D210 7F0486E0 8D8A0000 */ lw $t2, ($t4) +/* 07D214 7F0486E4 00026980 */ sll $t5, $v0, 6 +/* 07D218 7F0486E8 024D2821 */ addu $a1, $s2, $t5 +/* 07D21C 7F0486EC 8D4E0004 */ lw $t6, 4($t2) +/* 07D220 7F0486F0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D224 7F0486F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D228 7F0486F8 AFAE0390 */ sw $t6, 0x390($sp) +/* 07D22C 7F0486FC 8FA40390 */ lw $a0, 0x390($sp) +/* 07D230 7F048700 0FC16266 */ jal matrix_4x4_set_position +/* 07D234 7F048704 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D238 7F048708 8FA40070 */ lw $a0, 0x70($sp) +/* 07D23C 7F04870C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D240 7F048710 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D244 7F048714 26100001 */ addiu $s0, $s0, 1 +/* 07D248 7F048718 24010006 */ li $at, 6 +/* 07D24C 7F04871C 1601FFCF */ bne $s0, $at, .L7F04865C +/* 07D250 7F048720 AFB0038C */ sw $s0, 0x38c($sp) +/* 07D254 7F048724 100002A8 */ b .L7F0491C8 +/* 07D258 7F048728 8E8F0008 */ lw $t7, 8($s4) +.L7F04872C: +/* 07D25C 7F04872C 26380058 */ addiu $t8, $s1, 0x58 +/* 07D260 7F048730 AFB80070 */ sw $t8, 0x70($sp) +/* 07D264 7F048734 0FC16008 */ jal matrix_4x4_copy +/* 07D268 7F048738 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D26C 7F04873C 8FA40070 */ lw $a0, 0x70($sp) +/* 07D270 7F048740 0FC16266 */ jal matrix_4x4_set_position +/* 07D274 7F048744 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D278 7F048748 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D27C 7F04874C 00000000 */ nop +/* 07D280 7F048750 00402025 */ move $a0, $v0 +/* 07D284 7F048754 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D288 7F048758 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07D28C 7F04875C 02403025 */ move $a2, $s2 +/* 07D290 7F048760 92220003 */ lbu $v0, 3($s1) +/* 07D294 7F048764 24010006 */ li $at, 6 +/* 07D298 7F048768 27A50320 */ addiu $a1, $sp, 0x320 +/* 07D29C 7F04876C 5441002D */ bnel $v0, $at, .L7F048824 +/* 07D2A0 7F048770 2401000D */ li $at, 13 +/* 07D2A4 7F048774 8E620004 */ lw $v0, 4($s3) +/* 07D2A8 7F048778 8E8F0008 */ lw $t7, 8($s4) +/* 07D2AC 7F04877C C44C00C8 */ lwc1 $f12, 0xc8($v0) +/* 07D2B0 7F048780 8DE80008 */ lw $t0, 8($t7) +/* 07D2B4 7F048784 4616603C */ c.lt.s $f12, $f22 +/* 07D2B8 7F048788 8D0B0000 */ lw $t3, ($t0) +/* 07D2BC 7F04878C 45000003 */ bc1f .L7F04879C +/* 07D2C0 7F048790 8D700004 */ lw $s0, 4($t3) +/* 07D2C4 7F048794 10000006 */ b .L7F0487B0 +/* 07D2C8 7F048798 46146300 */ add.s $f12, $f12, $f20 +.L7F04879C: +/* 07D2CC 7F04879C 460CA03E */ c.le.s $f20, $f12 +/* 07D2D0 7F0487A0 00000000 */ nop +/* 07D2D4 7F0487A4 45000002 */ bc1f .L7F0487B0 +/* 07D2D8 7F0487A8 00000000 */ nop +/* 07D2DC 7F0487AC 46146301 */ sub.s $f12, $f12, $f20 +.L7F0487B0: +/* 07D2E0 7F0487B0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D2E4 7F0487B4 AFA20370 */ sw $v0, 0x370($sp) +/* 07D2E8 7F0487B8 8FA20370 */ lw $v0, 0x370($sp) +/* 07D2EC 7F0487BC 26460040 */ addiu $a2, $s2, 0x40 +/* 07D2F0 7F0487C0 AFA6006C */ sw $a2, 0x6c($sp) +/* 07D2F4 7F0487C4 27A40320 */ addiu $a0, $sp, 0x320 +/* 07D2F8 7F0487C8 0FC16032 */ jal matrix_4x4_multiply +/* 07D2FC 7F0487CC 24450084 */ addiu $a1, $v0, 0x84 +/* 07D300 7F0487D0 C6080000 */ lwc1 $f8, ($s0) +/* 07D304 7F0487D4 27B20360 */ addiu $s2, $sp, 0x360 +/* 07D308 7F0487D8 02402825 */ move $a1, $s2 +/* 07D30C 7F0487DC E7A80360 */ swc1 $f8, 0x360($sp) +/* 07D310 7F0487E0 C6040004 */ lwc1 $f4, 4($s0) +/* 07D314 7F0487E4 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D318 7F0487E8 E7A40364 */ swc1 $f4, 0x364($sp) +/* 07D31C 7F0487EC C6060008 */ lwc1 $f6, 8($s0) +/* 07D320 7F0487F0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D324 7F0487F4 E7A60368 */ swc1 $f6, 0x368($sp) +/* 07D328 7F0487F8 02402025 */ move $a0, $s2 +/* 07D32C 7F0487FC 0FC16266 */ jal matrix_4x4_set_position +/* 07D330 7F048800 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D334 7F048804 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D338 7F048808 00000000 */ nop +/* 07D33C 7F04880C 00402025 */ move $a0, $v0 +/* 07D340 7F048810 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D344 7F048814 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D348 7F048818 1000026B */ b .L7F0491C8 +/* 07D34C 7F04881C 8E8F0008 */ lw $t7, 8($s4) +/* 07D350 7F048820 2401000D */ li $at, 13 +.L7F048824: +/* 07D354 7F048824 5441007F */ bnel $v0, $at, .L7F048A24 +/* 07D358 7F048828 24010008 */ li $at, 8 +/* 07D35C 7F04882C 8E620004 */ lw $v0, 4($s3) +/* 07D360 7F048830 3C018005 */ lui $at, %hi(D_80052B6C) +/* 07D364 7F048834 C4282B6C */ lwc1 $f8, %lo(D_80052B6C)($at) +/* 07D368 7F048838 C44A0090 */ lwc1 $f10, 0x90($v0) +/* 07D36C 7F04883C C444009C */ lwc1 $f4, 0x9c($v0) +/* 07D370 7F048840 46085300 */ add.s $f12, $f10, $f8 +/* 07D374 7F048844 46002187 */ neg.s $f6, $f4 +/* 07D378 7F048848 460CA03E */ c.le.s $f20, $f12 +/* 07D37C 7F04884C E7A60300 */ swc1 $f6, 0x300($sp) +/* 07D380 7F048850 45020003 */ bc1fl .L7F048860 +/* 07D384 7F048854 8E890008 */ lw $t1, 8($s4) +/* 07D388 7F048858 46146301 */ sub.s $f12, $f12, $f20 +/* 07D38C 7F04885C 8E890008 */ lw $t1, 8($s4) +.L7F048860: +/* 07D390 7F048860 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D394 7F048864 27A50308 */ addiu $a1, $sp, 0x308 +/* 07D398 7F048868 8D390008 */ lw $t9, 8($t1) +/* 07D39C 7F04886C 8F2C0004 */ lw $t4, 4($t9) +/* 07D3A0 7F048870 8D900004 */ lw $s0, 4($t4) +/* 07D3A4 7F048874 C60A0000 */ lwc1 $f10, ($s0) +/* 07D3A8 7F048878 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 07D3AC 7F04887C C6080004 */ lwc1 $f8, 4($s0) +/* 07D3B0 7F048880 E7A8030C */ swc1 $f8, 0x30c($sp) +/* 07D3B4 7F048884 C6040008 */ lwc1 $f4, 8($s0) +/* 07D3B8 7F048888 E7AC0304 */ swc1 $f12, 0x304($sp) +/* 07D3BC 7F04888C AFA20318 */ sw $v0, 0x318($sp) +/* 07D3C0 7F048890 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D3C4 7F048894 E7A40310 */ swc1 $f4, 0x310($sp) +/* 07D3C8 7F048898 26450040 */ addiu $a1, $s2, 0x40 +/* 07D3CC 7F04889C C7AC0304 */ lwc1 $f12, 0x304($sp) +/* 07D3D0 7F0488A0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D3D4 7F0488A4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D3D8 7F0488A8 27A40308 */ addiu $a0, $sp, 0x308 +/* 07D3DC 7F0488AC 0FC16266 */ jal matrix_4x4_set_position +/* 07D3E0 7F0488B0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3E4 7F0488B4 8FAA0318 */ lw $t2, 0x318($sp) +/* 07D3E8 7F0488B8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3EC 7F0488BC 8D4E0014 */ lw $t6, 0x14($t2) +/* 07D3F0 7F0488C0 0FC1629F */ jal matrix_scalar_multiply +/* 07D3F4 7F0488C4 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 07D3F8 7F0488C8 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D3FC 7F0488CC 00000000 */ nop +/* 07D400 7F0488D0 00402025 */ move $a0, $v0 +/* 07D404 7F0488D4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D408 7F0488D8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D40C 7F0488DC 8E8D0008 */ lw $t5, 8($s4) +/* 07D410 7F0488E0 26450080 */ addiu $a1, $s2, 0x80 +/* 07D414 7F0488E4 C7AC0300 */ lwc1 $f12, 0x300($sp) +/* 07D418 7F0488E8 8DB80008 */ lw $t8, 8($t5) +/* 07D41C 7F0488EC 8F0F0008 */ lw $t7, 8($t8) +/* 07D420 7F0488F0 8DF00004 */ lw $s0, 4($t7) +/* 07D424 7F0488F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D428 7F0488F8 AFA50068 */ sw $a1, 0x68($sp) +/* 07D42C 7F0488FC 02002025 */ move $a0, $s0 +/* 07D430 7F048900 0FC16266 */ jal matrix_4x4_set_position +/* 07D434 7F048904 8FA50068 */ lw $a1, 0x68($sp) +/* 07D438 7F048908 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D43C 7F04890C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D440 7F048910 8FA50068 */ lw $a1, 0x68($sp) +/* 07D444 7F048914 8E880008 */ lw $t0, 8($s4) +/* 07D448 7F048918 02802025 */ move $a0, $s4 +/* 07D44C 7F04891C 8D030008 */ lw $v1, 8($t0) +/* 07D450 7F048920 8C65000C */ lw $a1, 0xc($v1) +/* 07D454 7F048924 50A00016 */ beql $a1, $zero, .L7F048980 +/* 07D458 7F048928 8C650010 */ lw $a1, 0x10($v1) +/* 07D45C 7F04892C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D460 7F048930 00003025 */ move $a2, $zero +/* 07D464 7F048934 AFA202FC */ sw $v0, 0x2fc($sp) +/* 07D468 7F048938 8E8B0008 */ lw $t3, 8($s4) +/* 07D46C 7F04893C 8FAC0318 */ lw $t4, 0x318($sp) +/* 07D470 7F048940 00402825 */ move $a1, $v0 +/* 07D474 7F048944 8D690008 */ lw $t1, 8($t3) +/* 07D478 7F048948 C58C00B4 */ lwc1 $f12, 0xb4($t4) +/* 07D47C 7F04894C 8D39000C */ lw $t9, 0xc($t1) +/* 07D480 7F048950 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D484 7F048954 8F300004 */ lw $s0, 4($t9) +/* 07D488 7F048958 8FB202FC */ lw $s2, 0x2fc($sp) +/* 07D48C 7F04895C 02002025 */ move $a0, $s0 +/* 07D490 7F048960 0FC16266 */ jal matrix_4x4_set_position +/* 07D494 7F048964 02402825 */ move $a1, $s2 +/* 07D498 7F048968 8FA40068 */ lw $a0, 0x68($sp) +/* 07D49C 7F04896C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4A0 7F048970 02402825 */ move $a1, $s2 +/* 07D4A4 7F048974 8E8A0008 */ lw $t2, 8($s4) +/* 07D4A8 7F048978 8D430008 */ lw $v1, 8($t2) +/* 07D4AC 7F04897C 8C650010 */ lw $a1, 0x10($v1) +.L7F048980: +/* 07D4B0 7F048980 02802025 */ move $a0, $s4 +/* 07D4B4 7F048984 50A00010 */ beql $a1, $zero, .L7F0489C8 +/* 07D4B8 7F048988 8C650018 */ lw $a1, 0x18($v1) +/* 07D4BC 7F04898C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D4C0 7F048990 00003025 */ move $a2, $zero +/* 07D4C4 7F048994 8E8E0008 */ lw $t6, 8($s4) +/* 07D4C8 7F048998 00409025 */ move $s2, $v0 +/* 07D4CC 7F04899C 00402825 */ move $a1, $v0 +/* 07D4D0 7F0489A0 8DCD0008 */ lw $t5, 8($t6) +/* 07D4D4 7F0489A4 8DB80010 */ lw $t8, 0x10($t5) +/* 07D4D8 7F0489A8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D4DC 7F0489AC 8F040004 */ lw $a0, 4($t8) +/* 07D4E0 7F0489B0 8FA40068 */ lw $a0, 0x68($sp) +/* 07D4E4 7F0489B4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4E8 7F0489B8 02402825 */ move $a1, $s2 +/* 07D4EC 7F0489BC 8E8F0008 */ lw $t7, 8($s4) +/* 07D4F0 7F0489C0 8DE30008 */ lw $v1, 8($t7) +/* 07D4F4 7F0489C4 8C650018 */ lw $a1, 0x18($v1) +.L7F0489C8: +/* 07D4F8 7F0489C8 02802025 */ move $a0, $s4 +/* 07D4FC 7F0489CC 50A001FE */ beql $a1, $zero, .L7F0491C8 +/* 07D500 7F0489D0 8E8F0008 */ lw $t7, 8($s4) +/* 07D504 7F0489D4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D508 7F0489D8 00003025 */ move $a2, $zero +/* 07D50C 7F0489DC 8E880008 */ lw $t0, 8($s4) +/* 07D510 7F0489E0 8FB90318 */ lw $t9, 0x318($sp) +/* 07D514 7F0489E4 00409025 */ move $s2, $v0 +/* 07D518 7F0489E8 8D0B0008 */ lw $t3, 8($t0) +/* 07D51C 7F0489EC 00402825 */ move $a1, $v0 +/* 07D520 7F0489F0 C72C00B4 */ lwc1 $f12, 0xb4($t9) +/* 07D524 7F0489F4 8D690018 */ lw $t1, 0x18($t3) +/* 07D528 7F0489F8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D52C 7F0489FC 8D300004 */ lw $s0, 4($t1) +/* 07D530 7F048A00 02002025 */ move $a0, $s0 +/* 07D534 7F048A04 0FC16266 */ jal matrix_4x4_set_position +/* 07D538 7F048A08 02402825 */ move $a1, $s2 +/* 07D53C 7F048A0C 8FA40068 */ lw $a0, 0x68($sp) +/* 07D540 7F048A10 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D544 7F048A14 02402825 */ move $a1, $s2 +/* 07D548 7F048A18 100001EB */ b .L7F0491C8 +/* 07D54C 7F048A1C 8E8F0008 */ lw $t7, 8($s4) +/* 07D550 7F048A20 24010008 */ li $at, 8 +.L7F048A24: +/* 07D554 7F048A24 54410017 */ bnel $v0, $at, .L7F048A84 +/* 07D558 7F048A28 2401000C */ li $at, 12 +/* 07D55C 7F048A2C 8E8C0008 */ lw $t4, 8($s4) +/* 07D560 7F048A30 24020001 */ li $v0, 1 +/* 07D564 7F048A34 26440040 */ addiu $a0, $s2, 0x40 +/* 07D568 7F048A38 858A000E */ lh $t2, 0xe($t4) +/* 07D56C 7F048A3C 29410002 */ slti $at, $t2, 2 +/* 07D570 7F048A40 542001E1 */ bnezl $at, .L7F0491C8 +/* 07D574 7F048A44 8E8F0008 */ lw $t7, 8($s4) +/* 07D578 7F048A48 AFA202F8 */ sw $v0, 0x2f8($sp) +.L7F048A4C: +/* 07D57C 7F048A4C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 07D580 7F048A50 AFA40074 */ sw $a0, 0x74($sp) +/* 07D584 7F048A54 8E8E0008 */ lw $t6, 8($s4) +/* 07D588 7F048A58 8FA202F8 */ lw $v0, 0x2f8($sp) +/* 07D58C 7F048A5C 8FA40074 */ lw $a0, 0x74($sp) +/* 07D590 7F048A60 85CD000E */ lh $t5, 0xe($t6) +/* 07D594 7F048A64 24420001 */ addiu $v0, $v0, 1 +/* 07D598 7F048A68 24840040 */ addiu $a0, $a0, 0x40 +/* 07D59C 7F048A6C 004D082A */ slt $at, $v0, $t5 +/* 07D5A0 7F048A70 5420FFF6 */ bnezl $at, .L7F048A4C +/* 07D5A4 7F048A74 AFA202F8 */ sw $v0, 0x2f8($sp) +/* 07D5A8 7F048A78 100001D3 */ b .L7F0491C8 +/* 07D5AC 7F048A7C 8E8F0008 */ lw $t7, 8($s4) +/* 07D5B0 7F048A80 2401000C */ li $at, 12 +.L7F048A84: +/* 07D5B4 7F048A84 5441002C */ bnel $v0, $at, .L7F048B38 +/* 07D5B8 7F048A88 24010027 */ li $at, 39 +/* 07D5BC 7F048A8C 8E980008 */ lw $t8, 8($s4) +/* 07D5C0 7F048A90 26450040 */ addiu $a1, $s2, 0x40 +/* 07D5C4 7F048A94 8F0F0008 */ lw $t7, 8($t8) +/* 07D5C8 7F048A98 8DE80000 */ lw $t0, ($t7) +/* 07D5CC 7F048A9C 8D040004 */ lw $a0, 4($t0) +/* 07D5D0 7F048AA0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5D4 7F048AA4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D5D8 7F048AA8 02402025 */ move $a0, $s2 +/* 07D5DC 7F048AAC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D5E0 7F048AB0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D5E4 7F048AB4 8E8B0008 */ lw $t3, 8($s4) +/* 07D5E8 7F048AB8 26450080 */ addiu $a1, $s2, 0x80 +/* 07D5EC 7F048ABC 8D690008 */ lw $t1, 8($t3) +/* 07D5F0 7F048AC0 8D390004 */ lw $t9, 4($t1) +/* 07D5F4 7F048AC4 8F240004 */ lw $a0, 4($t9) +/* 07D5F8 7F048AC8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5FC 7F048ACC AFA50068 */ sw $a1, 0x68($sp) +/* 07D600 7F048AD0 02402025 */ move $a0, $s2 +/* 07D604 7F048AD4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D608 7F048AD8 8FA50068 */ lw $a1, 0x68($sp) +/* 07D60C 7F048ADC 8E8C0008 */ lw $t4, 8($s4) +/* 07D610 7F048AE0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D614 7F048AE4 8D8A0008 */ lw $t2, 8($t4) +/* 07D618 7F048AE8 8D4E0008 */ lw $t6, 8($t2) +/* 07D61C 7F048AEC 8DC40004 */ lw $a0, 4($t6) +/* 07D620 7F048AF0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D624 7F048AF4 AFA50074 */ sw $a1, 0x74($sp) +/* 07D628 7F048AF8 02402025 */ move $a0, $s2 +/* 07D62C 7F048AFC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D630 7F048B00 8FA50074 */ lw $a1, 0x74($sp) +/* 07D634 7F048B04 8E8D0008 */ lw $t5, 8($s4) +/* 07D638 7F048B08 26500100 */ addiu $s0, $s2, 0x100 +/* 07D63C 7F048B0C 02002825 */ move $a1, $s0 +/* 07D640 7F048B10 8DB80008 */ lw $t8, 8($t5) +/* 07D644 7F048B14 8F0F000C */ lw $t7, 0xc($t8) +/* 07D648 7F048B18 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D64C 7F048B1C 8DE40004 */ lw $a0, 4($t7) +/* 07D650 7F048B20 02402025 */ move $a0, $s2 +/* 07D654 7F048B24 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D658 7F048B28 02002825 */ move $a1, $s0 +/* 07D65C 7F048B2C 100001A6 */ b .L7F0491C8 +/* 07D660 7F048B30 8E8F0008 */ lw $t7, 8($s4) +/* 07D664 7F048B34 24010027 */ li $at, 39 +.L7F048B38: +/* 07D668 7F048B38 544100B9 */ bnel $v0, $at, .L7F048E20 +/* 07D66C 7F048B3C 24010028 */ li $at, 40 +/* 07D670 7F048B40 8E880008 */ lw $t0, 8($s4) +/* 07D674 7F048B44 8FAF0678 */ lw $t7, 0x678($sp) +/* 07D678 7F048B48 4600B006 */ mov.s $f0, $f22 +/* 07D67C 7F048B4C 8D030008 */ lw $v1, 8($t0) +/* 07D680 7F048B50 8C6B0004 */ lw $t3, 4($v1) +/* 07D684 7F048B54 8D690004 */ lw $t1, 4($t3) +/* 07D688 7F048B58 AFA90260 */ sw $t1, 0x260($sp) +/* 07D68C 7F048B5C 8C790008 */ lw $t9, 8($v1) +/* 07D690 7F048B60 8F2C0004 */ lw $t4, 4($t9) +/* 07D694 7F048B64 AFAC025C */ sw $t4, 0x25c($sp) +/* 07D698 7F048B68 8C6E0010 */ lw $t6, 0x10($v1) +/* 07D69C 7F048B6C 8C6A000C */ lw $t2, 0xc($v1) +/* 07D6A0 7F048B70 8DCD0004 */ lw $t5, 4($t6) +/* 07D6A4 7F048B74 8D500004 */ lw $s0, 4($t2) +/* 07D6A8 7F048B78 AFAD0254 */ sw $t5, 0x254($sp) +/* 07D6AC 7F048B7C 8C780018 */ lw $t8, 0x18($v1) +/* 07D6B0 7F048B80 C6840014 */ lwc1 $f4, 0x14($s4) +/* 07D6B4 7F048B84 8F020004 */ lw $v0, 4($t8) +/* 07D6B8 7F048B88 C4460010 */ lwc1 $f6, 0x10($v0) +/* 07D6BC 7F048B8C C44A000C */ lwc1 $f10, 0xc($v0) +/* 07D6C0 7F048B90 460A3201 */ sub.s $f8, $f6, $f10 +/* 07D6C4 7F048B94 46044082 */ mul.s $f2, $f8, $f4 +/* 07D6C8 7F048B98 11E00026 */ beqz $t7, .L7F048C34 +/* 07D6CC 7F048B9C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07D6D0 7F048BA0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D6D4 7F048BA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D6D8 7F048BA8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07D6DC 7F048BAC 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6E0 7F048BB0 44815000 */ mtc1 $at, $f10 +/* 07D6E4 7F048BB4 46144102 */ mul.s $f4, $f8, $f20 +/* 07D6E8 7F048BB8 00000000 */ nop +/* 07D6EC 7F048BBC 46141182 */ mul.s $f6, $f2, $f20 +/* 07D6F0 7F048BC0 00000000 */ nop +/* 07D6F4 7F048BC4 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6F8 7F048BC8 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D6FC 7F048BCC 46082003 */ div.s $f0, $f4, $f8 +/* 07D700 7F048BD0 46003280 */ add.s $f10, $f6, $f0 +/* 07D704 7F048BD4 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D708 7F048BD8 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D70C 7F048BDC 460CA03E */ c.le.s $f20, $f12 +/* 07D710 7F048BE0 00000000 */ nop +/* 07D714 7F048BE4 45000008 */ bc1f .L7F048C08 +/* 07D718 7F048BE8 00000000 */ nop +/* 07D71C 7F048BEC 46146101 */ sub.s $f4, $f12, $f20 +.L7F048BF0: +/* 07D720 7F048BF0 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D724 7F048BF4 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D728 7F048BF8 460CA03E */ c.le.s $f20, $f12 +/* 07D72C 7F048BFC 00000000 */ nop +/* 07D730 7F048C00 4503FFFB */ bc1tl .L7F048BF0 +/* 07D734 7F048C04 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C08: +/* 07D738 7F048C08 4616603C */ c.lt.s $f12, $f22 +/* 07D73C 7F048C0C 00000000 */ nop +/* 07D740 7F048C10 45020009 */ bc1fl .L7F048C38 +/* 07D744 7F048C14 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D748 7F048C18 46146200 */ add.s $f8, $f12, $f20 +.L7F048C1C: +/* 07D74C 7F048C1C E628008C */ swc1 $f8, 0x8c($s1) +/* 07D750 7F048C20 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D754 7F048C24 4616603C */ c.lt.s $f12, $f22 +/* 07D758 7F048C28 00000000 */ nop +/* 07D75C 7F048C2C 4503FFFB */ bc1tl .L7F048C1C +/* 07D760 7F048C30 46146200 */ add.s $f8, $f12, $f20 +.L7F048C34: +/* 07D764 7F048C34 C626008C */ lwc1 $f6, 0x8c($s1) +.L7F048C38: +/* 07D768 7F048C38 46003280 */ add.s $f10, $f6, $f0 +/* 07D76C 7F048C3C E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D770 7F048C40 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D774 7F048C44 460CA03E */ c.le.s $f20, $f12 +/* 07D778 7F048C48 00000000 */ nop +/* 07D77C 7F048C4C 45020009 */ bc1fl .L7F048C74 +/* 07D780 7F048C50 4616603C */ c.lt.s $f12, $f22 +/* 07D784 7F048C54 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C58: +/* 07D788 7F048C58 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D78C 7F048C5C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D790 7F048C60 460CA03E */ c.le.s $f20, $f12 +/* 07D794 7F048C64 00000000 */ nop +/* 07D798 7F048C68 4503FFFB */ bc1tl .L7F048C58 +/* 07D79C 7F048C6C 46146101 */ sub.s $f4, $f12, $f20 +/* 07D7A0 7F048C70 4616603C */ c.lt.s $f12, $f22 +.L7F048C74: +/* 07D7A4 7F048C74 00000000 */ nop +/* 07D7A8 7F048C78 45000008 */ bc1f .L7F048C9C +/* 07D7AC 7F048C7C 00000000 */ nop +/* 07D7B0 7F048C80 46146200 */ add.s $f8, $f12, $f20 +.L7F048C84: +/* 07D7B4 7F048C84 E628008C */ swc1 $f8, 0x8c($s1) +/* 07D7B8 7F048C88 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D7BC 7F048C8C 4616603C */ c.lt.s $f12, $f22 +/* 07D7C0 7F048C90 00000000 */ nop +/* 07D7C4 7F048C94 4503FFFB */ bc1tl .L7F048C84 +/* 07D7C8 7F048C98 46146200 */ add.s $f8, $f12, $f20 +.L7F048C9C: +/* 07D7CC 7F048C9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D7D0 7F048CA0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D7D4 7F048CA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D7D8 7F048CA8 4606B03C */ c.lt.s $f22, $f6 +/* 07D7DC 7F048CAC 00000000 */ nop +/* 07D7E0 7F048CB0 4502002B */ bc1fl .L7F048D60 +/* 07D7E4 7F048CB4 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D7E8 7F048CB8 8FA80260 */ lw $t0, 0x260($sp) +/* 07D7EC 7F048CBC C60A0008 */ lwc1 $f10, 8($s0) +/* 07D7F0 7F048CC0 C62C009C */ lwc1 $f12, 0x9c($s1) +/* 07D7F4 7F048CC4 C5040008 */ lwc1 $f4, 8($t0) +/* 07D7F8 7F048CC8 C6860014 */ lwc1 $f6, 0x14($s4) +/* 07D7FC 7F048CCC 4616603C */ c.lt.s $f12, $f22 +/* 07D800 7F048CD0 46045201 */ sub.s $f8, $f10, $f4 +/* 07D804 7F048CD4 46064082 */ mul.s $f2, $f8, $f6 +/* 07D808 7F048CD8 45020003 */ bc1fl .L7F048CE8 +/* 07D80C 7F048CDC E7A20250 */ swc1 $f2, 0x250($sp) +/* 07D810 7F048CE0 46006307 */ neg.s $f12, $f12 +/* 07D814 7F048CE4 E7A20250 */ swc1 $f2, 0x250($sp) +.L7F048CE8: +/* 07D818 7F048CE8 0FC15FAB */ jal sinf +/* 07D81C 7F048CEC E7AC024C */ swc1 $f12, 0x24c($sp) +/* 07D820 7F048CF0 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D824 7F048CF4 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 07D828 7F048CF8 46020282 */ mul.s $f10, $f0, $f2 +/* 07D82C 7F048CFC 0FC15FA8 */ jal cosf +/* 07D830 7F048D00 E7AA0248 */ swc1 $f10, 0x248($sp) +/* 07D834 7F048D04 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D838 7F048D08 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07D83C 7F048D0C C7AC0248 */ lwc1 $f12, 0x248($sp) +/* 07D840 7F048D10 46020102 */ mul.s $f4, $f0, $f2 +/* 07D844 7F048D14 46081181 */ sub.s $f6, $f2, $f8 +/* 07D848 7F048D18 0FC16A8C */ jal atan2f +/* 07D84C 7F048D1C 46062381 */ sub.s $f14, $f4, $f6 +/* 07D850 7F048D20 C7A2024C */ lwc1 $f2, 0x24c($sp) +/* 07D854 7F048D24 E6200090 */ swc1 $f0, 0x90($s1) +/* 07D858 7F048D28 4602003C */ c.lt.s $f0, $f2 +/* 07D85C 7F048D2C 00000000 */ nop +/* 07D860 7F048D30 45020003 */ bc1fl .L7F048D40 +/* 07D864 7F048D34 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07D868 7F048D38 E6220090 */ swc1 $f2, 0x90($s1) +/* 07D86C 7F048D3C C62A009C */ lwc1 $f10, 0x9c($s1) +.L7F048D40: +/* 07D870 7F048D40 460AB03C */ c.lt.s $f22, $f10 +/* 07D874 7F048D44 00000000 */ nop +/* 07D878 7F048D48 45020005 */ bc1fl .L7F048D60 +/* 07D87C 7F048D4C C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D880 7F048D50 C6280090 */ lwc1 $f8, 0x90($s1) +/* 07D884 7F048D54 4608A101 */ sub.s $f4, $f20, $f8 +/* 07D888 7F048D58 E6240090 */ swc1 $f4, 0x90($s1) +/* 07D88C 7F048D5C C62C0090 */ lwc1 $f12, 0x90($s1) +.L7F048D60: +/* 07D890 7F048D60 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D894 7F048D64 27A5026C */ addiu $a1, $sp, 0x26c +/* 07D898 7F048D68 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D89C 7F048D6C AFA50074 */ sw $a1, 0x74($sp) +/* 07D8A0 7F048D70 0FC16008 */ jal matrix_4x4_copy +/* 07D8A4 7F048D74 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8A8 7F048D78 02002025 */ move $a0, $s0 +/* 07D8AC 7F048D7C 0FC16266 */ jal matrix_4x4_set_position +/* 07D8B0 7F048D80 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8B4 7F048D84 02402025 */ move $a0, $s2 +/* 07D8B8 7F048D88 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8BC 7F048D8C 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8C0 7F048D90 26500100 */ addiu $s0, $s2, 0x100 +/* 07D8C4 7F048D94 02002825 */ move $a1, $s0 +/* 07D8C8 7F048D98 0FC16008 */ jal matrix_4x4_copy +/* 07D8CC 7F048D9C 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8D0 7F048DA0 8FA40254 */ lw $a0, 0x254($sp) +/* 07D8D4 7F048DA4 0FC16266 */ jal matrix_4x4_set_position +/* 07D8D8 7F048DA8 02002825 */ move $a1, $s0 +/* 07D8DC 7F048DAC 02402025 */ move $a0, $s2 +/* 07D8E0 7F048DB0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8E4 7F048DB4 02002825 */ move $a1, $s0 +/* 07D8E8 7F048DB8 27A4026C */ addiu $a0, $sp, 0x26c +/* 07D8EC 7F048DBC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8F0 7F048DC0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D8F4 7F048DC4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D8F8 7F048DC8 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D8FC 7F048DCC 0FC16008 */ jal matrix_4x4_copy +/* 07D900 7F048DD0 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D904 7F048DD4 8FA40260 */ lw $a0, 0x260($sp) +/* 07D908 7F048DD8 0FC16266 */ jal matrix_4x4_set_position +/* 07D90C 7F048DDC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D910 7F048DE0 02402025 */ move $a0, $s2 +/* 07D914 7F048DE4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D918 7F048DE8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D91C 7F048DEC 26450080 */ addiu $a1, $s2, 0x80 +/* 07D920 7F048DF0 AFA50068 */ sw $a1, 0x68($sp) +/* 07D924 7F048DF4 0FC16008 */ jal matrix_4x4_copy +/* 07D928 7F048DF8 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D92C 7F048DFC 8FA4025C */ lw $a0, 0x25c($sp) +/* 07D930 7F048E00 0FC16266 */ jal matrix_4x4_set_position +/* 07D934 7F048E04 8FA50068 */ lw $a1, 0x68($sp) +/* 07D938 7F048E08 02402025 */ move $a0, $s2 +/* 07D93C 7F048E0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D940 7F048E10 8FA50068 */ lw $a1, 0x68($sp) +/* 07D944 7F048E14 100000EC */ b .L7F0491C8 +/* 07D948 7F048E18 8E8F0008 */ lw $t7, 8($s4) +/* 07D94C 7F048E1C 24010028 */ li $at, 40 +.L7F048E20: +/* 07D950 7F048E20 14410086 */ bne $v0, $at, .L7F04903C +/* 07D954 7F048E24 00000000 */ nop +/* 07D958 7F048E28 8E8B0008 */ lw $t3, 8($s4) +/* 07D95C 7F048E2C 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07D960 7F048E30 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07D964 7F048E34 8D690008 */ lw $t1, 8($t3) +/* 07D968 7F048E38 8FAE0678 */ lw $t6, 0x678($sp) +/* 07D96C 7F048E3C 27B001B0 */ addiu $s0, $sp, 0x1b0 +/* 07D970 7F048E40 8D390008 */ lw $t9, 8($t1) +/* 07D974 7F048E44 3C0F8003 */ lui $t7, %hi(D_80030B34) +/* 07D978 7F048E48 02402025 */ move $a0, $s2 +/* 07D97C 7F048E4C 8F2C0004 */ lw $t4, 4($t9) +/* 07D980 7F048E50 26450040 */ addiu $a1, $s2, 0x40 +/* 07D984 7F048E54 1940001E */ blez $t2, .L7F048ED0 +/* 07D988 7F048E58 AFAC01FC */ sw $t4, 0x1fc($sp) +/* 07D98C 7F048E5C 51C0001D */ beql $t6, $zero, .L7F048ED4 +/* 07D990 7F048E60 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D994 7F048E64 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D998 7F048E68 C62A008C */ lwc1 $f10, 0x8c($s1) +/* 07D99C 7F048E6C 460A3200 */ add.s $f8, $f6, $f10 +/* 07D9A0 7F048E70 E6280088 */ swc1 $f8, 0x88($s1) +/* 07D9A4 7F048E74 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9A8 7F048E78 4600A03E */ c.le.s $f20, $f0 +/* 07D9AC 7F048E7C 00000000 */ nop +/* 07D9B0 7F048E80 45020009 */ bc1fl .L7F048EA8 +/* 07D9B4 7F048E84 4616003C */ c.lt.s $f0, $f22 +/* 07D9B8 7F048E88 46140101 */ sub.s $f4, $f0, $f20 +.L7F048E8C: +/* 07D9BC 7F048E8C E6240088 */ swc1 $f4, 0x88($s1) +/* 07D9C0 7F048E90 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9C4 7F048E94 4600A03E */ c.le.s $f20, $f0 +/* 07D9C8 7F048E98 00000000 */ nop +/* 07D9CC 7F048E9C 4503FFFB */ bc1tl .L7F048E8C +/* 07D9D0 7F048EA0 46140101 */ sub.s $f4, $f0, $f20 +/* 07D9D4 7F048EA4 4616003C */ c.lt.s $f0, $f22 +.L7F048EA8: +/* 07D9D8 7F048EA8 00000000 */ nop +/* 07D9DC 7F048EAC 45020009 */ bc1fl .L7F048ED4 +/* 07D9E0 7F048EB0 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D9E4 7F048EB4 46140180 */ add.s $f6, $f0, $f20 +.L7F048EB8: +/* 07D9E8 7F048EB8 E6260088 */ swc1 $f6, 0x88($s1) +/* 07D9EC 7F048EBC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9F0 7F048EC0 4616003C */ c.lt.s $f0, $f22 +/* 07D9F4 7F048EC4 00000000 */ nop +/* 07D9F8 7F048EC8 4503FFFB */ bc1tl .L7F048EB8 +/* 07D9FC 7F048ECC 46140180 */ add.s $f6, $f0, $f20 +.L7F048ED0: +/* 07DA00 7F048ED0 8E2D0014 */ lw $t5, 0x14($s1) +.L7F048ED4: +/* 07DA04 7F048ED4 25EF0B34 */ addiu $t7, %lo(D_80030B34) # addiu $t7, $t7, 0xb34 +/* 07DA08 7F048ED8 25EB003C */ addiu $t3, $t7, 0x3c +/* 07DA0C 7F048EDC 8DB80020 */ lw $t8, 0x20($t5) +/* 07DA10 7F048EE0 02004825 */ move $t1, $s0 +/* 07DA14 7F048EE4 13000015 */ beqz $t8, .L7F048F3C +/* 07DA18 7F048EE8 00000000 */ nop +.L7F048EEC: +/* 07DA1C 7F048EEC 8DE10000 */ lw $at, ($t7) +/* 07DA20 7F048EF0 25EF000C */ addiu $t7, $t7, 0xc +/* 07DA24 7F048EF4 2529000C */ addiu $t1, $t1, 0xc +/* 07DA28 7F048EF8 AD21FFF4 */ sw $at, -0xc($t1) +/* 07DA2C 7F048EFC 8DE1FFF8 */ lw $at, -8($t7) +/* 07DA30 7F048F00 AD21FFF8 */ sw $at, -8($t1) +/* 07DA34 7F048F04 8DE1FFFC */ lw $at, -4($t7) +/* 07DA38 7F048F08 15EBFFF8 */ bne $t7, $t3, .L7F048EEC +/* 07DA3C 7F048F0C AD21FFFC */ sw $at, -4($t1) +/* 07DA40 7F048F10 8DE10000 */ lw $at, ($t7) +/* 07DA44 7F048F14 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07DA48 7F048F18 AD210000 */ sw $at, ($t1) +/* 07DA4C 7F048F1C AFA201B0 */ sw $v0, 0x1b0($sp) +/* 07DA50 7F048F20 AFB201C0 */ sw $s2, 0x1c0($sp) +/* 07DA54 7F048F24 8E250014 */ lw $a1, 0x14($s1) +/* 07DA58 7F048F28 0FC1BCBE */ jal subcalcmatrices +/* 07DA5C 7F048F2C 02002025 */ move $a0, $s0 +/* 07DA60 7F048F30 26590040 */ addiu $t9, $s2, 0x40 +/* 07DA64 7F048F34 10000003 */ b .L7F048F44 +/* 07DA68 7F048F38 AFB9006C */ sw $t9, 0x6c($sp) +.L7F048F3C: +/* 07DA6C 7F048F3C 0FC16008 */ jal matrix_4x4_copy +/* 07DA70 7F048F40 AFA5006C */ sw $a1, 0x6c($sp) +.L7F048F44: +/* 07DA74 7F048F44 8E2C0008 */ lw $t4, 8($s1) +/* 07DA78 7F048F48 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA7C 7F048F4C 000C5080 */ sll $t2, $t4, 2 +/* 07DA80 7F048F50 05410006 */ bgez $t2, .L7F048F6C +/* 07DA84 7F048F54 00000000 */ nop +/* 07DA88 7F048F58 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DA8C 7F048F5C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07DA90 7F048F60 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA94 7F048F64 10000004 */ b .L7F048F78 +/* 07DA98 7F048F68 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F6C: +/* 07DA9C 7F048F6C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DAA0 7F048F70 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAA4 7F048F74 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F78: +/* 07DAA8 7F048F78 AFA50068 */ sw $a1, 0x68($sp) +/* 07DAAC 7F048F7C 0FC16008 */ jal matrix_4x4_copy +/* 07DAB0 7F048F80 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DAB4 7F048F84 8FA401FC */ lw $a0, 0x1fc($sp) +/* 07DAB8 7F048F88 0FC16266 */ jal matrix_4x4_set_position +/* 07DABC 7F048F8C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DAC0 7F048F90 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DAC4 7F048F94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DAC8 7F048F98 8FA50068 */ lw $a1, 0x68($sp) +/* 07DACC 7F048F9C 8E8E0008 */ lw $t6, 8($s4) +/* 07DAD0 7F048FA0 02802025 */ move $a0, $s4 +/* 07DAD4 7F048FA4 00003025 */ move $a2, $zero +/* 07DAD8 7F048FA8 8DC30008 */ lw $v1, 8($t6) +/* 07DADC 7F048FAC 8C65000C */ lw $a1, 0xc($v1) +/* 07DAE0 7F048FB0 50A00013 */ beql $a1, $zero, .L7F049000 +/* 07DAE4 7F048FB4 8C650010 */ lw $a1, 0x10($v1) +/* 07DAE8 7F048FB8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DAEC 7F048FBC 8CB20004 */ lw $s2, 4($a1) +/* 07DAF0 7F048FC0 00408025 */ move $s0, $v0 +/* 07DAF4 7F048FC4 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAF8 7F048FC8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DAFC 7F048FCC 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DB00 7F048FD0 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DB04 7F048FD4 0FC16008 */ jal matrix_4x4_copy +/* 07DB08 7F048FD8 02002825 */ move $a1, $s0 +/* 07DB0C 7F048FDC 02402025 */ move $a0, $s2 +/* 07DB10 7F048FE0 0FC16266 */ jal matrix_4x4_set_position +/* 07DB14 7F048FE4 02002825 */ move $a1, $s0 +/* 07DB18 7F048FE8 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB1C 7F048FEC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB20 7F048FF0 02002825 */ move $a1, $s0 +/* 07DB24 7F048FF4 8E8D0008 */ lw $t5, 8($s4) +/* 07DB28 7F048FF8 8DA30008 */ lw $v1, 8($t5) +/* 07DB2C 7F048FFC 8C650010 */ lw $a1, 0x10($v1) +.L7F049000: +/* 07DB30 7F049000 02802025 */ move $a0, $s4 +/* 07DB34 7F049004 00003025 */ move $a2, $zero +/* 07DB38 7F049008 50A0006F */ beql $a1, $zero, .L7F0491C8 +/* 07DB3C 7F04900C 8E8F0008 */ lw $t7, 8($s4) +/* 07DB40 7F049010 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DB44 7F049014 8CB20004 */ lw $s2, 4($a1) +/* 07DB48 7F049018 00408025 */ move $s0, $v0 +/* 07DB4C 7F04901C 02402025 */ move $a0, $s2 +/* 07DB50 7F049020 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DB54 7F049024 00402825 */ move $a1, $v0 +/* 07DB58 7F049028 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB5C 7F04902C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB60 7F049030 02002825 */ move $a1, $s0 +/* 07DB64 7F049034 10000064 */ b .L7F0491C8 +/* 07DB68 7F049038 8E8F0008 */ lw $t7, 8($s4) +.L7F04903C: +/* 07DB6C 7F04903C 16020061 */ bne $s0, $v0, .L7F0491C4 +/* 07DB70 7F049040 26450040 */ addiu $a1, $s2, 0x40 +/* 07DB74 7F049044 8E980008 */ lw $t8, 8($s4) +/* 07DB78 7F049048 8F030008 */ lw $v1, 8($t8) +/* 07DB7C 7F04904C 8C6B000C */ lw $t3, 0xc($v1) +/* 07DB80 7F049050 8C680004 */ lw $t0, 4($v1) +/* 07DB84 7F049054 8D6F0004 */ lw $t7, 4($t3) +/* 07DB88 7F049058 8D100004 */ lw $s0, 4($t0) +/* 07DB8C 7F04905C AFAF0164 */ sw $t7, 0x164($sp) +/* 07DB90 7F049060 8C690010 */ lw $t1, 0x10($v1) +/* 07DB94 7F049064 8D390004 */ lw $t9, 4($t1) +/* 07DB98 7F049068 AFB90160 */ sw $t9, 0x160($sp) +/* 07DB9C 7F04906C 8C6C0008 */ lw $t4, 8($v1) +/* 07DBA0 7F049070 8D8A0004 */ lw $t2, 4($t4) +/* 07DBA4 7F049074 AFAA015C */ sw $t2, 0x15c($sp) +/* 07DBA8 7F049078 8C6E0018 */ lw $t6, 0x18($v1) +/* 07DBAC 7F04907C 8DCD0004 */ lw $t5, 4($t6) +/* 07DBB0 7F049080 AFAD0158 */ sw $t5, 0x158($sp) +/* 07DBB4 7F049084 C62E00C8 */ lwc1 $f14, 0xc8($s1) +/* 07DBB8 7F049088 46007387 */ neg.s $f14, $f14 +/* 07DBBC 7F04908C 4616703C */ c.lt.s $f14, $f22 +/* 07DBC0 7F049090 00000000 */ nop +/* 07DBC4 7F049094 45020003 */ bc1fl .L7F0490A4 +/* 07DBC8 7F049098 C62C00CC */ lwc1 $f12, 0xcc($s1) +/* 07DBCC 7F04909C 46147380 */ add.s $f14, $f14, $f20 +/* 07DBD0 7F0490A0 C62C00CC */ lwc1 $f12, 0xcc($s1) +.L7F0490A4: +/* 07DBD4 7F0490A4 46006307 */ neg.s $f12, $f12 +/* 07DBD8 7F0490A8 4616603C */ c.lt.s $f12, $f22 +/* 07DBDC 7F0490AC 00000000 */ nop +/* 07DBE0 7F0490B0 45020003 */ bc1fl .L7F0490C0 +/* 07DBE4 7F0490B4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DBE8 7F0490B8 46146300 */ add.s $f12, $f12, $f20 +/* 07DBEC 7F0490BC AFA5006C */ sw $a1, 0x6c($sp) +.L7F0490C0: +/* 07DBF0 7F0490C0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DBF4 7F0490C4 E7AE0154 */ swc1 $f14, 0x154($sp) +/* 07DBF8 7F0490C8 02002025 */ move $a0, $s0 +/* 07DBFC 7F0490CC 0FC16266 */ jal matrix_4x4_set_position +/* 07DC00 7F0490D0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC04 7F0490D4 02402025 */ move $a0, $s2 +/* 07DC08 7F0490D8 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC0C 7F0490DC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC10 7F0490E0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DC14 7F0490E4 C7AC0154 */ lwc1 $f12, 0x154($sp) +/* 07DC18 7F0490E8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DC1C 7F0490EC AFA50074 */ sw $a1, 0x74($sp) +/* 07DC20 7F0490F0 8FA40164 */ lw $a0, 0x164($sp) +/* 07DC24 7F0490F4 0FC16266 */ jal matrix_4x4_set_position +/* 07DC28 7F0490F8 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC2C 7F0490FC 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC30 7F049100 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC34 7F049104 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC38 7F049108 3C018005 */ lui $at, %hi(D_80052B70) +/* 07DC3C 7F04910C 26500100 */ addiu $s0, $s2, 0x100 +/* 07DC40 7F049110 02002825 */ move $a1, $s0 +/* 07DC44 7F049114 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DC48 7F049118 C42C2B70 */ lwc1 $f12, %lo(D_80052B70)($at) +/* 07DC4C 7F04911C 8FA40160 */ lw $a0, 0x160($sp) +/* 07DC50 7F049120 0FC16266 */ jal matrix_4x4_set_position +/* 07DC54 7F049124 02002825 */ move $a1, $s0 +/* 07DC58 7F049128 8FA40074 */ lw $a0, 0x74($sp) +/* 07DC5C 7F04912C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC60 7F049130 02002825 */ move $a1, $s0 +/* 07DC64 7F049134 26450080 */ addiu $a1, $s2, 0x80 +/* 07DC68 7F049138 AFA50068 */ sw $a1, 0x68($sp) +/* 07DC6C 7F04913C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DC70 7F049140 8FA4015C */ lw $a0, 0x15c($sp) +/* 07DC74 7F049144 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC78 7F049148 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC7C 7F04914C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DC80 7F049150 0FC1E111 */ jal sub_GAME_7F078444 +/* 07DC84 7F049154 00000000 */ nop +/* 07DC88 7F049158 27B0016C */ addiu $s0, $sp, 0x16c +/* 07DC8C 7F04915C 02003025 */ move $a2, $s0 +/* 07DC90 7F049160 00402025 */ move $a0, $v0 +/* 07DC94 7F049164 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07DC98 7F049168 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC9C 7F04916C 8FA40158 */ lw $a0, 0x158($sp) +/* 07DCA0 7F049170 02002825 */ move $a1, $s0 +/* 07DCA4 7F049174 26260084 */ addiu $a2, $s1, 0x84 +/* 07DCA8 7F049178 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 07DCAC 7F04917C 26270080 */ addiu $a3, $s1, 0x80 +/* 07DCB0 7F049180 8E980008 */ lw $t8, 8($s4) +/* 07DCB4 7F049184 8F030008 */ lw $v1, 8($t8) +/* 07DCB8 7F049188 8C65001C */ lw $a1, 0x1c($v1) +/* 07DCBC 7F04918C 50A00008 */ beql $a1, $zero, .L7F0491B0 +/* 07DCC0 7F049190 8C650020 */ lw $a1, 0x20($v1) +/* 07DCC4 7F049194 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCC8 7F049198 02802025 */ move $a0, $s4 +/* 07DCCC 7F04919C 8E2800C4 */ lw $t0, 0xc4($s1) +/* 07DCD0 7F0491A0 A4480000 */ sh $t0, ($v0) +/* 07DCD4 7F0491A4 8E8B0008 */ lw $t3, 8($s4) +/* 07DCD8 7F0491A8 8D630008 */ lw $v1, 8($t3) +/* 07DCDC 7F0491AC 8C650020 */ lw $a1, 0x20($v1) +.L7F0491B0: +/* 07DCE0 7F0491B0 50A00005 */ beql $a1, $zero, .L7F0491C8 +/* 07DCE4 7F0491B4 8E8F0008 */ lw $t7, 8($s4) +/* 07DCE8 7F0491B8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCEC 7F0491BC 02802025 */ move $a0, $s4 +/* 07DCF0 7F0491C0 AC400000 */ sw $zero, ($v0) +.L7F0491C4: +/* 07DCF4 7F0491C4 8E8F0008 */ lw $t7, 8($s4) +.L7F0491C8: +/* 07DCF8 7F0491C8 02802025 */ move $a0, $s4 +/* 07DCFC 7F0491CC 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 07DD00 7F0491D0 8DE50000 */ lw $a1, ($t7) +/* 07DD04 7F0491D4 8E89000C */ lw $t1, 0xc($s4) +/* 07DD08 7F0491D8 02602025 */ move $a0, $s3 +/* 07DD0C 7F0491DC C52A0038 */ lwc1 $f10, 0x38($t1) +/* 07DD10 7F0491E0 46005207 */ neg.s $f8, $f10 +/* 07DD14 7F0491E4 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD18 7F0491E8 E6680018 */ swc1 $f8, 0x18($s3) +/* 07DD1C 7F0491EC 8E640020 */ lw $a0, 0x20($s3) +/* 07DD20 7F0491F0 50800018 */ beql $a0, $zero, .L7F049254 +/* 07DD24 7F0491F4 8E230064 */ lw $v1, 0x64($s1) +/* 07DD28 7F0491F8 8C820024 */ lw $v0, 0x24($a0) +.L7F0491FC: +/* 07DD2C 7F0491FC 0FC110B7 */ jal sub_GAME_7F0442DC +/* 07DD30 7F049200 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD34 7F049204 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD38 7F049208 5480FFFC */ bnezl $a0, .L7F0491FC +/* 07DD3C 7F04920C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD40 7F049210 10000010 */ b .L7F049254 +/* 07DD44 7F049214 8E230064 */ lw $v1, 0x64($s1) +.L7F049218: +/* 07DD48 7F049218 92790001 */ lbu $t9, 1($s3) +/* 07DD4C 7F04921C 02602025 */ move $a0, $s3 +/* 07DD50 7F049220 332CFFFD */ andi $t4, $t9, 0xfffd +/* 07DD54 7F049224 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD58 7F049228 A26C0001 */ sb $t4, 1($s3) +/* 07DD5C 7F04922C 8E640020 */ lw $a0, 0x20($s3) +/* 07DD60 7F049230 50800008 */ beql $a0, $zero, .L7F049254 +/* 07DD64 7F049234 8E230064 */ lw $v1, 0x64($s1) +/* 07DD68 7F049238 8C820024 */ lw $v0, 0x24($a0) +.L7F04923C: +/* 07DD6C 7F04923C 0FC11093 */ jal sub_GAME_7F04424C +/* 07DD70 7F049240 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD74 7F049244 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD78 7F049248 5480FFFC */ bnezl $a0, .L7F04923C +/* 07DD7C 7F04924C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD80 7F049250 8E230064 */ lw $v1, 0x64($s1) +.L7F049254: +/* 07DD84 7F049254 2401FEFF */ li $at, -257 +/* 07DD88 7F049258 266D0008 */ addiu $t5, $s3, 8 +/* 07DD8C 7F04925C 306A0100 */ andi $t2, $v1, 0x100 +/* 07DD90 7F049260 1140001F */ beqz $t2, .L7F0492E0 +/* 07DD94 7F049264 00617024 */ and $t6, $v1, $at +/* 07DD98 7F049268 AE2E0064 */ sw $t6, 0x64($s1) +/* 07DD9C 7F04926C 0C002914 */ jal get_random_value +/* 07DDA0 7F049270 AFAD0070 */ sw $t5, 0x70($sp) +/* 07DDA4 7F049274 44822000 */ mtc1 $v0, $f4 +/* 07DDA8 7F049278 02202025 */ move $a0, $s1 +/* 07DDAC 7F04927C 04410005 */ bgez $v0, .L7F049294 +/* 07DDB0 7F049280 468021A0 */ cvt.s.w $f6, $f4 +/* 07DDB4 7F049284 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07DDB8 7F049288 44815000 */ mtc1 $at, $f10 +/* 07DDBC 7F04928C 00000000 */ nop +/* 07DDC0 7F049290 460A3180 */ add.s $f6, $f6, $f10 +.L7F049294: +/* 07DDC4 7F049294 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07DDC8 7F049298 44814000 */ mtc1 $at, $f8 +/* 07DDCC 7F04929C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07DDD0 7F0492A0 44815000 */ mtc1 $at, $f10 +/* 07DDD4 7F0492A4 46083102 */ mul.s $f4, $f6, $f8 +/* 07DDD8 7F0492A8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 07DDDC 7F0492AC 44814000 */ mtc1 $at, $f8 +/* 07DDE0 7F0492B0 8E380064 */ lw $t8, 0x64($s1) +/* 07DDE4 7F0492B4 3C010006 */ lui $at, 6 +/* 07DDE8 7F0492B8 8FA60070 */ lw $a2, 0x70($sp) +/* 07DDEC 7F0492BC 03014024 */ and $t0, $t8, $at +/* 07DDF0 7F0492C0 460A2182 */ mul.s $f6, $f4, $f10 +/* 07DDF4 7F0492C4 00003825 */ move $a3, $zero +/* 07DDF8 7F0492C8 00085C42 */ srl $t3, $t0, 0x11 +/* 07DDFC 7F0492CC AFAB0010 */ sw $t3, 0x10($sp) +/* 07DE00 7F0492D0 46083100 */ add.s $f4, $f6, $f8 +/* 07DE04 7F0492D4 44052000 */ mfc1 $a1, $f4 +/* 07DE08 7F0492D8 0FC13842 */ jal maybe_detonate_object +/* 07DE0C 7F0492DC 00000000 */ nop +.L7F0492E0: +/* 07DE10 7F0492E0 8FAF0678 */ lw $t7, 0x678($sp) +/* 07DE14 7F0492E4 51E0020D */ beql $t7, $zero, .L7F049B1C +/* 07DE18 7F0492E8 8FA90680 */ lw $t1, 0x680($sp) +/* 07DE1C 7F0492EC 92220003 */ lbu $v0, 3($s1) +/* 07DE20 7F0492F0 24010001 */ li $at, 1 +/* 07DE24 7F0492F4 54410006 */ bnel $v0, $at, .L7F049310 +/* 07DE28 7F0492F8 2401000D */ li $at, 13 +/* 07DE2C 7F0492FC 0FC14E8F */ jal sub_GAME_7F053A3C +/* 07DE30 7F049300 8E640004 */ lw $a0, 4($s3) +/* 07DE34 7F049304 10000202 */ b .L7F049B10 +/* 07DE38 7F049308 00000000 */ nop +/* 07DE3C 7F04930C 2401000D */ li $at, 13 +.L7F049310: +/* 07DE40 7F049310 144101FF */ bne $v0, $at, .L7F049B10 +/* 07DE44 7F049314 00000000 */ nop +/* 07DE48 7F049318 0FC2FF01 */ jal get_controls_locked_flag +/* 07DE4C 7F04931C 00000000 */ nop +/* 07DE50 7F049320 144001FB */ bnez $v0, .L7F049B10 +/* 07DE54 7F049324 00000000 */ nop +/* 07DE58 7F049328 8E700004 */ lw $s0, 4($s3) +/* 07DE5C 7F04932C AFA0013C */ sw $zero, 0x13c($sp) +/* 07DE60 7F049330 AFA00138 */ sw $zero, 0x138($sp) +/* 07DE64 7F049334 8E0900D0 */ lw $t1, 0xd0($s0) +/* 07DE68 7F049338 512001E4 */ beql $t1, $zero, .L7F049ACC +/* 07DE6C 7F04933C 8E980008 */ lw $t8, 8($s4) +/* 07DE70 7F049340 8E390008 */ lw $t9, 8($s1) +/* 07DE74 7F049344 001960C0 */ sll $t4, $t9, 3 +/* 07DE78 7F049348 058201E0 */ bltzl $t4, .L7F049ACC +/* 07DE7C 7F04934C 8E980008 */ lw $t8, 8($s4) +/* 07DE80 7F049350 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DE84 7F049354 3C0C8005 */ lui $t4, %hi(global_timer) +/* 07DE88 7F049358 254E0001 */ addiu $t6, $t2, 1 +/* 07DE8C 7F04935C 31CD0001 */ andi $t5, $t6, 1 +/* 07DE90 7F049360 AE0E00AC */ sw $t6, 0xac($s0) +/* 07DE94 7F049364 2DB80001 */ sltiu $t8, $t5, 1 +/* 07DE98 7F049368 AFB8013C */ sw $t8, 0x13c($sp) +/* 07DE9C 7F04936C 8E880008 */ lw $t0, 8($s4) +/* 07DEA0 7F049370 39A90001 */ xori $t1, $t5, 1 +/* 07DEA4 7F049374 2D290001 */ sltiu $t1, $t1, 1 +/* 07DEA8 7F049378 8D0B0008 */ lw $t3, 8($t0) +/* 07DEAC 7F04937C 8D6F0014 */ lw $t7, 0x14($t3) +/* 07DEB0 7F049380 51E00003 */ beql $t7, $zero, .L7F049390 +/* 07DEB4 7F049384 8E1900C0 */ lw $t9, 0xc0($s0) +/* 07DEB8 7F049388 AFA90138 */ sw $t1, 0x138($sp) +/* 07DEBC 7F04938C 8E1900C0 */ lw $t9, 0xc0($s0) +.L7F049390: +/* 07DEC0 7F049390 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 07DEC4 7F049394 032C082A */ slt $at, $t9, $t4 +/* 07DEC8 7F049398 50200032 */ beql $at, $zero, .L7F049464 +/* 07DECC 7F04939C 8FAF013C */ lw $t7, 0x13c($sp) +/* 07DED0 7F0493A0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DED4 7F0493A4 50800008 */ beql $a0, $zero, .L7F0493C8 +/* 07DED8 7F0493A8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEDC 7F0493AC 0C00237C */ jal sfxGetArg0Unk3F +/* 07DEE0 7F0493B0 00000000 */ nop +/* 07DEE4 7F0493B4 50400004 */ beql $v0, $zero, .L7F0493C8 +/* 07DEE8 7F0493B8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEEC 7F0493BC 0C002408 */ jal sfxDeactivate +/* 07DEF0 7F0493C0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DEF4 7F0493C4 8E0400C8 */ lw $a0, 0xc8($s0) +.L7F0493C8: +/* 07DEF8 7F0493C8 50800008 */ beql $a0, $zero, .L7F0493EC +/* 07DEFC 7F0493CC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF00 7F0493D0 0C00237C */ jal sfxGetArg0Unk3F +/* 07DF04 7F0493D4 00000000 */ nop +/* 07DF08 7F0493D8 50400004 */ beql $v0, $zero, .L7F0493EC +/* 07DF0C 7F0493DC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF10 7F0493E0 0C002408 */ jal sfxDeactivate +/* 07DF14 7F0493E4 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF18 7F0493E8 8E0A00C4 */ lw $t2, 0xc4($s0) +.L7F0493EC: +/* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF20 7F0493F0 240500FD */ li $a1, 253 +/* 07DF24 7F0493F4 1540000A */ bnez $t2, .L7F049420 +/* 07DF28 7F0493F8 260600C4 */ addiu $a2, $s0, 0xc4 +/* 07DF2C 7F0493FC 266E0008 */ addiu $t6, $s3, 8 +/* 07DF30 7F049400 AFAE0070 */ sw $t6, 0x70($sp) +/* 07DF34 7F049404 0C002382 */ jal play_sfx_a1 +/* 07DF38 7F049408 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF3C 7F04940C 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DF40 7F049410 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF44 7F049414 8FA50070 */ lw $a1, 0x70($sp) +/* 07DF48 7F049418 1000000D */ b .L7F049450 +/* 07DF4C 7F04941C 00000000 */ nop +.L7F049420: +/* 07DF50 7F049420 8E0D00C8 */ lw $t5, 0xc8($s0) +/* 07DF54 7F049424 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF58 7F049428 240500FD */ li $a1, 253 +/* 07DF5C 7F04942C 15A00008 */ bnez $t5, .L7F049450 +/* 07DF60 7F049430 260600C8 */ addiu $a2, $s0, 0xc8 +/* 07DF64 7F049434 26780008 */ addiu $t8, $s3, 8 +/* 07DF68 7F049438 AFB80070 */ sw $t8, 0x70($sp) +/* 07DF6C 7F04943C 0C002382 */ jal play_sfx_a1 +/* 07DF70 7F049440 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF74 7F049444 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF78 7F049448 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF7C 7F04944C 8FA50070 */ lw $a1, 0x70($sp) +.L7F049450: +/* 07DF80 7F049450 3C088005 */ lui $t0, %hi(global_timer) +/* 07DF84 7F049454 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 07DF88 7F049458 250B0002 */ addiu $t3, $t0, 2 +/* 07DF8C 7F04945C AE0B00C0 */ sw $t3, 0xc0($s0) +/* 07DF90 7F049460 8FAF013C */ lw $t7, 0x13c($sp) +.L7F049464: +/* 07DF94 7F049464 8FA90138 */ lw $t1, 0x138($sp) +/* 07DF98 7F049468 24190001 */ li $t9, 1 +/* 07DF9C 7F04946C 55E00004 */ bnezl $t7, .L7F049480 +/* 07DFA0 7F049470 AFB9011C */ sw $t9, 0x11c($sp) +/* 07DFA4 7F049474 51200195 */ beql $t1, $zero, .L7F049ACC +/* 07DFA8 7F049478 8E980008 */ lw $t8, 8($s4) +/* 07DFAC 7F04947C AFB9011C */ sw $t9, 0x11c($sp) +.L7F049480: +/* 07DFB0 7F049480 AFA0010C */ sw $zero, 0x10c($sp) +/* 07DFB4 7F049484 8E6C0014 */ lw $t4, 0x14($s3) +/* 07DFB8 7F049488 AFAC0108 */ sw $t4, 0x108($sp) +/* 07DFBC 7F04948C 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DFC0 7F049490 314E0003 */ andi $t6, $t2, 3 +/* 07DFC4 7F049494 2DCD0001 */ sltiu $t5, $t6, 1 +/* 07DFC8 7F049498 0FC225E6 */ jal get_curplayer_positiondata +/* 07DFCC 7F04949C AFAD0104 */ sw $t5, 0x104($sp) +/* 07DFD0 7F0494A0 AFA20100 */ sw $v0, 0x100($sp) +/* 07DFD4 7F0494A4 8E980008 */ lw $t8, 8($s4) +/* 07DFD8 7F0494A8 24040005 */ li $a0, 5 +/* 07DFDC 7F0494AC 8F030008 */ lw $v1, 8($t8) +/* 07DFE0 7F0494B0 8C68001C */ lw $t0, 0x1c($v1) +/* 07DFE4 7F0494B4 51000007 */ beql $t0, $zero, .L7F0494D4 +/* 07DFE8 7F0494B8 92690001 */ lbu $t1, 1($s3) +/* 07DFEC 7F0494BC 8E0B00AC */ lw $t3, 0xac($s0) +/* 07DFF0 7F0494C0 316F0007 */ andi $t7, $t3, 7 +/* 07DFF4 7F0494C4 55E00003 */ bnezl $t7, .L7F0494D4 +/* 07DFF8 7F0494C8 92690001 */ lbu $t1, 1($s3) +/* 07DFFC 7F0494CC 24040007 */ li $a0, 7 +/* 07E000 7F0494D0 92690001 */ lbu $t1, 1($s3) +.L7F0494D4: +/* 07E004 7F0494D4 31390002 */ andi $t9, $t1, 2 +/* 07E008 7F0494D8 1320002D */ beqz $t9, .L7F049590 +/* 07E00C 7F0494DC 00048880 */ sll $s1, $a0, 2 +/* 07E010 7F0494E0 00716021 */ addu $t4, $v1, $s1 +/* 07E014 7F0494E4 8D850000 */ lw $a1, ($t4) +/* 07E018 7F0494E8 02802025 */ move $a0, $s4 +/* 07E01C 7F0494EC 50A00029 */ beql $a1, $zero, .L7F049594 +/* 07E020 7F0494F0 C6640008 */ lwc1 $f4, 8($s3) +/* 07E024 7F0494F4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07E028 7F0494F8 00003025 */ move $a2, $zero +/* 07E02C 7F0494FC 8E8A0008 */ lw $t2, 8($s4) +/* 07E030 7F049500 00409025 */ move $s2, $v0 +/* 07E034 7F049504 8D4E0008 */ lw $t6, 8($t2) +/* 07E038 7F049508 01D16821 */ addu $t5, $t6, $s1 +/* 07E03C 7F04950C 8DB80000 */ lw $t8, ($t5) +/* 07E040 7F049510 8F030004 */ lw $v1, 4($t8) +/* 07E044 7F049514 C46A0000 */ lwc1 $f10, ($v1) +/* 07E048 7F049518 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E04C 7F04951C C4660004 */ lwc1 $f6, 4($v1) +/* 07E050 7F049520 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E054 7F049524 C4680008 */ lwc1 $f8, 8($v1) +/* 07E058 7F049528 0FC1E111 */ jal sub_GAME_7F078444 +/* 07E05C 7F04952C E7A80134 */ swc1 $f8, 0x134($sp) +/* 07E060 7F049530 27B100B8 */ addiu $s1, $sp, 0xb8 +/* 07E064 7F049534 02203025 */ move $a2, $s1 +/* 07E068 7F049538 00402025 */ move $a0, $v0 +/* 07E06C 7F04953C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07E070 7F049540 02402825 */ move $a1, $s2 +/* 07E074 7F049544 02202025 */ move $a0, $s1 +/* 07E078 7F049548 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07E07C 7F04954C 27A5012C */ addiu $a1, $sp, 0x12c +/* 07E080 7F049550 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 07E084 7F049554 8E650008 */ lw $a1, 8($s3) +/* 07E088 7F049558 8E660010 */ lw $a2, 0x10($s3) +/* 07E08C 7F04955C 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E090 7F049560 8FA7012C */ lw $a3, 0x12c($sp) +/* 07E094 7F049564 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07E098 7F049568 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07E09C 7F04956C 1440000E */ bnez $v0, .L7F0495A8 +/* 07E0A0 7F049570 00000000 */ nop +/* 07E0A4 7F049574 C66A0008 */ lwc1 $f10, 8($s3) +/* 07E0A8 7F049578 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E0AC 7F04957C C666000C */ lwc1 $f6, 0xc($s3) +/* 07E0B0 7F049580 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E0B4 7F049584 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07E0B8 7F049588 10000007 */ b .L7F0495A8 +/* 07E0BC 7F04958C E7A80134 */ swc1 $f8, 0x134($sp) +.L7F049590: +/* 07E0C0 7F049590 C6640008 */ lwc1 $f4, 8($s3) +.L7F049594: +/* 07E0C4 7F049594 E7A4012C */ swc1 $f4, 0x12c($sp) +/* 07E0C8 7F049598 C66A000C */ lwc1 $f10, 0xc($s3) +/* 07E0CC 7F04959C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E0D0 7F0495A0 C6660010 */ lwc1 $f6, 0x10($s3) +/* 07E0D4 7F0495A4 E7A60134 */ swc1 $f6, 0x134($sp) +.L7F0495A8: +/* 07E0D8 7F0495A8 0FC15FA8 */ jal cosf +/* 07E0DC 7F0495AC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E0E0 7F0495B0 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E0E4 7F0495B4 0FC15FAB */ jal sinf +/* 07E0E8 7F0495B8 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E0EC 7F0495BC C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E0F0 7F0495C0 46020202 */ mul.s $f8, $f0, $f2 +/* 07E0F4 7F0495C4 E7A80120 */ swc1 $f8, 0x120($sp) +/* 07E0F8 7F0495C8 0FC15FAB */ jal sinf +/* 07E0FC 7F0495CC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E100 7F0495D0 E7A00124 */ swc1 $f0, 0x124($sp) +/* 07E104 7F0495D4 0FC15FA8 */ jal cosf +/* 07E108 7F0495D8 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E10C 7F0495DC C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E110 7F0495E0 0FC15FA8 */ jal cosf +/* 07E114 7F0495E4 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E118 7F0495E8 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E11C 7F0495EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07E120 7F0495F0 44816000 */ mtc1 $at, $f12 +/* 07E124 7F0495F4 46020382 */ mul.s $f14, $f0, $f2 +/* 07E128 7F0495F8 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 07E12C 7F0495FC C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 07E130 7F049600 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E134 7F049604 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 07E138 7F049608 E7AE0128 */ swc1 $f14, 0x128($sp) +/* 07E13C 7F04960C 46065200 */ add.s $f8, $f10, $f6 +/* 07E140 7F049610 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E144 7F049614 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 07E148 7F049618 460C7102 */ mul.s $f4, $f14, $f12 +/* 07E14C 7F04961C E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E150 7F049620 46065200 */ add.s $f8, $f10, $f6 +/* 07E154 7F049624 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E158 7F049628 460A2180 */ add.s $f6, $f4, $f10 +/* 07E15C 7F04962C E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E160 7F049630 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 07E164 7F049634 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E168 7F049638 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07E16C 7F04963C 44810000 */ mtc1 $at, $f0 +/* 07E170 7F049640 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E174 7F049644 44812000 */ mtc1 $at, $f4 +/* 07E178 7F049648 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E17C 7F04964C 24080002 */ li $t0, 2 +/* 07E180 7F049650 AFA80014 */ sw $t0, 0x14($sp) +/* 07E184 7F049654 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E188 7F049658 8FA5012C */ lw $a1, 0x12c($sp) +/* 07E18C 7F04965C 8FA60134 */ lw $a2, 0x134($sp) +/* 07E190 7F049660 8FA70110 */ lw $a3, 0x110($sp) +/* 07E194 7F049664 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07E198 7F049668 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07E19C 7F04966C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07E1A0 7F049670 E7A80010 */ swc1 $f8, 0x10($sp) +/* 07E1A4 7F049674 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07E1A8 7F049678 E7A40024 */ swc1 $f4, 0x24($sp) +/* 07E1AC 7F04967C 14400017 */ bnez $v0, .L7F0496DC +/* 07E1B0 7F049680 27A60110 */ addiu $a2, $sp, 0x110 +/* 07E1B4 7F049684 27A4012C */ addiu $a0, $sp, 0x12c +/* 07E1B8 7F049688 0FC09893 */ jal sub_GAME_7F02624C +/* 07E1BC 7F04968C 27A50120 */ addiu $a1, $sp, 0x120 +/* 07E1C0 7F049690 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E1C4 7F049694 44818000 */ mtc1 $at, $f16 +/* 07E1C8 7F049698 C7A60120 */ lwc1 $f6, 0x120($sp) +/* 07E1CC 7F04969C C7AA0110 */ lwc1 $f10, 0x110($sp) +/* 07E1D0 7F0496A0 C7AE0128 */ lwc1 $f14, 0x128($sp) +/* 07E1D4 7F0496A4 46068202 */ mul.s $f8, $f16, $f6 +/* 07E1D8 7F0496A8 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 07E1DC 7F0496AC 8FAB0108 */ lw $t3, 0x108($sp) +/* 07E1E0 7F0496B0 AFAB010C */ sw $t3, 0x10c($sp) +/* 07E1E4 7F0496B4 46085101 */ sub.s $f4, $f10, $f8 +/* 07E1E8 7F0496B8 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 07E1EC 7F0496BC 460A8202 */ mul.s $f8, $f16, $f10 +/* 07E1F0 7F0496C0 E7A40110 */ swc1 $f4, 0x110($sp) +/* 07E1F4 7F0496C4 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E1F8 7F0496C8 46083101 */ sub.s $f4, $f6, $f8 +/* 07E1FC 7F0496CC 460E8182 */ mul.s $f6, $f16, $f14 +/* 07E200 7F0496D0 E7A40114 */ swc1 $f4, 0x114($sp) +/* 07E204 7F0496D4 46065201 */ sub.s $f8, $f10, $f6 +/* 07E208 7F0496D8 E7A80118 */ swc1 $f8, 0x118($sp) +.L7F0496DC: +/* 07E20C 7F0496DC 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07E210 7F0496E0 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07E214 7F0496E4 8E0900BC */ lw $t1, 0xbc($s0) +/* 07E218 7F0496E8 27B10110 */ addiu $s1, $sp, 0x110 +/* 07E21C 7F0496EC 8FA50100 */ lw $a1, 0x100($sp) +/* 07E220 7F0496F0 15E90052 */ bne $t7, $t1, .L7F04983C +/* 07E224 7F0496F4 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 07E228 7F0496F8 C4A40008 */ lwc1 $f4, 8($a1) +/* 07E22C 7F0496FC C4A6000C */ lwc1 $f6, 0xc($a1) +/* 07E230 7F049700 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E234 7F049704 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E238 7F049708 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 07E23C 7F04970C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07E240 7F049710 46083081 */ sub.s $f2, $f6, $f8 +/* 07E244 7F049714 C7A60134 */ lwc1 $f6, 0x134($sp) +/* 07E248 7F049718 46062301 */ sub.s $f12, $f4, $f6 +/* 07E24C 7F04971C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E250 7F049720 00000000 */ nop +/* 07E254 7F049724 46021282 */ mul.s $f10, $f2, $f2 +/* 07E258 7F049728 460A2100 */ add.s $f4, $f4, $f10 +/* 07E25C 7F04972C 460C6282 */ mul.s $f10, $f12, $f12 +/* 07E260 7F049730 460A2500 */ add.s $f20, $f4, $f10 +/* 07E264 7F049734 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 07E268 7F049738 C7A40110 */ lwc1 $f4, 0x110($sp) +/* 07E26C 7F04973C 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E270 7F049740 C7A40114 */ lwc1 $f4, 0x114($sp) +/* 07E274 7F049744 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E278 7F049748 46082081 */ sub.s $f2, $f4, $f8 +/* 07E27C 7F04974C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E280 7F049750 46065301 */ sub.s $f12, $f10, $f6 +/* 07E284 7F049754 46021202 */ mul.s $f8, $f2, $f2 +/* 07E288 7F049758 46082280 */ add.s $f10, $f4, $f8 +/* 07E28C 7F04975C 460C6182 */ mul.s $f6, $f12, $f12 +/* 07E290 7F049760 46065100 */ add.s $f4, $f10, $f6 +/* 07E294 7F049764 4604A03E */ c.le.s $f20, $f4 +/* 07E298 7F049768 00000000 */ nop +/* 07E29C 7F04976C 45000033 */ bc1f .L7F04983C +/* 07E2A0 7F049770 00000000 */ nop +/* 07E2A4 7F049774 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E2A8 7F049778 00000000 */ nop +/* 07E2AC 7F04977C 54400030 */ bnezl $v0, .L7F049840 +/* 07E2B0 7F049780 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E2B4 7F049784 0C007DF8 */ jal sqrtf +/* 07E2B8 7F049788 4600A306 */ mov.s $f12, $f20 +/* 07E2BC 7F04978C 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 07E2C0 7F049790 44816000 */ mtc1 $at, $f12 +/* 07E2C4 7F049794 3C018005 */ lui $at, %hi(D_80052B74) +/* 07E2C8 7F049798 C4282B74 */ lwc1 $f8, %lo(D_80052B74)($at) +/* 07E2CC 7F04979C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07E2D0 7F0497A0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07E2D4 7F0497A4 3C018003 */ lui $at, %hi(D_80030B1C) +/* 07E2D8 7F0497A8 4600603C */ c.lt.s $f12, $f0 +/* 07E2DC 7F0497AC 460A4182 */ mul.s $f6, $f8, $f10 +/* 07E2E0 7F0497B0 C4240B1C */ lwc1 $f4, %lo(D_80030B1C)($at) +/* 07E2E4 7F0497B4 46043082 */ mul.s $f2, $f6, $f4 +/* 07E2E8 7F0497B8 45020005 */ bc1fl .L7F0497D0 +/* 07E2EC 7F0497BC C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 07E2F0 7F0497C0 46006203 */ div.s $f8, $f12, $f0 +/* 07E2F4 7F0497C4 46081082 */ mul.s $f2, $f2, $f8 +/* 07E2F8 7F0497C8 00000000 */ nop +/* 07E2FC 7F0497CC C60A00D4 */ lwc1 $f10, 0xd4($s0) +.L7F0497D0: +/* 07E300 7F0497D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E304 7F0497D4 44814000 */ mtc1 $at, $f8 +/* 07E308 7F0497D8 46025180 */ add.s $f6, $f10, $f2 +/* 07E30C 7F0497DC E60600D4 */ swc1 $f6, 0xd4($s0) +/* 07E310 7F0497E0 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 07E314 7F0497E4 4604403E */ c.le.s $f8, $f4 +/* 07E318 7F0497E8 00000000 */ nop +/* 07E31C 7F0497EC 45020014 */ bc1fl .L7F049840 +/* 07E320 7F0497F0 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E324 7F0497F4 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 07E328 7F0497F8 2404000E */ li $a0, 14 +/* 07E32C 7F0497FC 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 07E330 7F049800 44815000 */ mtc1 $at, $f10 +/* 07E334 7F049804 3C018003 */ lui $at, %hi(D_80030B20) +/* 07E338 7F049808 C4240B20 */ lwc1 $f4, %lo(D_80030B20)($at) +/* 07E33C 7F04980C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07E340 7F049810 C60E0090 */ lwc1 $f14, 0x90($s0) +/* 07E344 7F049814 2406FFFF */ li $a2, -1 +/* 07E348 7F049818 24070001 */ li $a3, 1 +/* 07E34C 7F04981C 46043302 */ mul.s $f12, $f6, $f4 +/* 07E350 7F049820 0FC22793 */ jal sub_GAME_7F089E4C +/* 07E354 7F049824 00000000 */ nop +/* 07E358 7F049828 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E35C 7F04982C E61600D4 */ swc1 $f22, 0xd4($s0) +/* 07E360 7F049830 50400003 */ beql $v0, $zero, .L7F049840 +/* 07E364 7F049834 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E368 7F049838 AFA0011C */ sw $zero, 0x11c($sp) +.L7F04983C: +/* 07E36C 7F04983C 8FB9011C */ lw $t9, 0x11c($sp) +.L7F049840: +/* 07E370 7F049840 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E374 7F049844 44818000 */ mtc1 $at, $f16 +/* 07E378 7F049848 1320000F */ beqz $t9, .L7F049888 +/* 07E37C 7F04984C 8FA50100 */ lw $a1, 0x100($sp) +/* 07E380 7F049850 8FAC010C */ lw $t4, 0x10c($sp) +/* 07E384 7F049854 02202025 */ move $a0, $s1 +/* 07E388 7F049858 24050001 */ li $a1, 1 +/* 07E38C 7F04985C 51800005 */ beql $t4, $zero, .L7F049874 +/* 07E390 7F049860 2404000E */ li $a0, 14 +/* 07E394 7F049864 44068000 */ mfc1 $a2, $f16 +/* 07E398 7F049868 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 07E39C 7F04986C 91870003 */ lbu $a3, 3($t4) +/* 07E3A0 7F049870 2404000E */ li $a0, 14 +.L7F049874: +/* 07E3A4 7F049874 02202825 */ move $a1, $s1 +/* 07E3A8 7F049878 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 07E3AC 7F04987C 2406FFFF */ li $a2, -1 +/* 07E3B0 7F049880 1000000B */ b .L7F0498B0 +/* 07E3B4 7F049884 8FAA0104 */ lw $t2, 0x104($sp) +.L7F049888: +/* 07E3B8 7F049888 C4A80008 */ lwc1 $f8, 8($a1) +/* 07E3BC 7F04988C 2404000E */ li $a0, 14 +/* 07E3C0 7F049890 2406FFFF */ li $a2, -1 +/* 07E3C4 7F049894 E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E3C8 7F049898 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 07E3CC 7F04989C E7AA0114 */ swc1 $f10, 0x114($sp) +/* 07E3D0 7F0498A0 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 07E3D4 7F0498A4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07E3D8 7F0498A8 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E3DC 7F0498AC 8FAA0104 */ lw $t2, 0x104($sp) +.L7F0498B0: +/* 07E3E0 7F0498B0 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 07E3E4 7F0498B4 51400085 */ beql $t2, $zero, .L7F049ACC +/* 07E3E8 7F0498B8 8E980008 */ lw $t8, 8($s4) +/* 07E3EC 7F0498BC 8E0300CC */ lw $v1, 0xcc($s0) +/* 07E3F0 7F0498C0 E4640004 */ swc1 $f4, 4($v1) +/* 07E3F4 7F0498C4 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E3F8 7F0498C8 C4640004 */ lwc1 $f4, 4($v1) +/* 07E3FC 7F0498CC E4680008 */ swc1 $f8, 8($v1) +/* 07E400 7F0498D0 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E404 7F0498D4 E46A000C */ swc1 $f10, 0xc($v1) +/* 07E408 7F0498D8 C7A60110 */ lwc1 $f6, 0x110($sp) +/* 07E40C 7F0498DC 46043201 */ sub.s $f8, $f6, $f4 +/* 07E410 7F0498E0 C4660008 */ lwc1 $f6, 8($v1) +/* 07E414 7F0498E4 E4680010 */ swc1 $f8, 0x10($v1) +/* 07E418 7F0498E8 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 07E41C 7F0498EC C4620010 */ lwc1 $f2, 0x10($v1) +/* 07E420 7F0498F0 46065101 */ sub.s $f4, $f10, $f6 +/* 07E424 7F0498F4 C46A000C */ lwc1 $f10, 0xc($v1) +/* 07E428 7F0498F8 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E42C 7F0498FC C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E430 7F049900 46021102 */ mul.s $f4, $f2, $f2 +/* 07E434 7F049904 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 07E438 7F049908 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E43C 7F04990C 460E7202 */ mul.s $f8, $f14, $f14 +/* 07E440 7F049910 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E444 7F049914 C4600018 */ lwc1 $f0, 0x18($v1) +/* 07E448 7F049918 AFA30090 */ sw $v1, 0x90($sp) +/* 07E44C 7F04991C 46000182 */ mul.s $f6, $f0, $f0 +/* 07E450 7F049920 46082280 */ add.s $f10, $f4, $f8 +/* 07E454 7F049924 0C007DF8 */ jal sqrtf +/* 07E458 7F049928 460A3300 */ add.s $f12, $f6, $f10 +/* 07E45C 7F04992C 3C018005 */ lui $at, %hi(D_80052B78) +/* 07E460 7F049930 C42E2B78 */ lwc1 $f14, %lo(D_80052B78)($at) +/* 07E464 7F049934 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E468 7F049938 44812000 */ mtc1 $at, $f4 +/* 07E46C 7F04993C 8FA30090 */ lw $v1, 0x90($sp) +/* 07E470 7F049940 4600703C */ c.lt.s $f14, $f0 +/* 07E474 7F049944 46000306 */ mov.s $f12, $f0 +/* 07E478 7F049948 46002083 */ div.s $f2, $f4, $f0 +/* 07E47C 7F04994C C4680010 */ lwc1 $f8, 0x10($v1) +/* 07E480 7F049950 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 07E484 7F049954 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07E488 7F049958 44810000 */ mtc1 $at, $f0 +/* 07E48C 7F04995C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E490 7F049960 C4680018 */ lwc1 $f8, 0x18($v1) +/* 07E494 7F049964 46025102 */ mul.s $f4, $f10, $f2 +/* 07E498 7F049968 E4660010 */ swc1 $f6, 0x10($v1) +/* 07E49C 7F04996C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E4A0 7F049970 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E4A4 7F049974 45000002 */ bc1f .L7F049980 +/* 07E4A8 7F049978 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E4AC 7F04997C 46007306 */ mov.s $f12, $f14 +.L7F049980: +/* 07E4B0 7F049980 4600603C */ c.lt.s $f12, $f0 +/* 07E4B4 7F049984 240E000E */ li $t6, 14 +/* 07E4B8 7F049988 A0600000 */ sb $zero, ($v1) +/* 07E4BC 7F04998C A06E0001 */ sb $t6, 1($v1) +/* 07E4C0 7F049990 45000002 */ bc1f .L7F04999C +/* 07E4C4 7F049994 E46C001C */ swc1 $f12, 0x1c($v1) +/* 07E4C8 7F049998 46000306 */ mov.s $f12, $f0 +.L7F04999C: +/* 07E4CC 7F04999C 806D0001 */ lb $t5, 1($v1) +/* 07E4D0 7F0499A0 24010016 */ li $at, 22 +/* 07E4D4 7F0499A4 15A10026 */ bne $t5, $at, .L7F049A40 +/* 07E4D8 7F0499A8 3C018005 */ lui $at, %hi(D_80052B7C) +/* 07E4DC 7F0499AC C4222B7C */ lwc1 $f2, %lo(D_80052B7C)($at) +/* 07E4E0 7F0499B0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 07E4E4 7F0499B4 44815000 */ mtc1 $at, $f10 +/* 07E4E8 7F0499B8 3C018005 */ lui $at, %hi(D_80052B80) +/* 07E4EC 7F0499BC 460C5102 */ mul.s $f4, $f10, $f12 +/* 07E4F0 7F0499C0 E4640020 */ swc1 $f4, 0x20($v1) +/* 07E4F4 7F0499C4 C4282B80 */ lwc1 $f8, %lo(D_80052B80)($at) +/* 07E4F8 7F0499C8 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E4FC 7F0499CC 4600103C */ c.lt.s $f2, $f0 +/* 07E500 7F0499D0 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E504 7F0499D4 45020003 */ bc1fl .L7F0499E4 +/* 07E508 7F0499D8 AFA30090 */ sw $v1, 0x90($sp) +/* 07E50C 7F0499DC E4620024 */ swc1 $f2, 0x24($v1) +/* 07E510 7F0499E0 AFA30090 */ sw $v1, 0x90($sp) +.L7F0499E4: +/* 07E514 7F0499E4 0C002914 */ jal get_random_value +/* 07E518 7F0499E8 E7AC0094 */ swc1 $f12, 0x94($sp) +/* 07E51C 7F0499EC 44823000 */ mtc1 $v0, $f6 +/* 07E520 7F0499F0 8FA30090 */ lw $v1, 0x90($sp) +/* 07E524 7F0499F4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 07E528 7F0499F8 04410005 */ bgez $v0, .L7F049A10 +/* 07E52C 7F0499FC 468032A0 */ cvt.s.w $f10, $f6 +/* 07E530 7F049A00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E534 7F049A04 44812000 */ mtc1 $at, $f4 +/* 07E538 7F049A08 00000000 */ nop +/* 07E53C 7F049A0C 46045280 */ add.s $f10, $f10, $f4 +.L7F049A10: +/* 07E540 7F049A10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E544 7F049A14 44814000 */ mtc1 $at, $f8 +/* 07E548 7F049A18 3C018005 */ lui $at, %hi(D_80052B84) +/* 07E54C 7F049A1C C4242B84 */ lwc1 $f4, %lo(D_80052B84)($at) +/* 07E550 7F049A20 46085182 */ mul.s $f6, $f10, $f8 +/* 07E554 7F049A24 3C018005 */ lui $at, %hi(D_80052B88) +/* 07E558 7F049A28 C4282B88 */ lwc1 $f8, %lo(D_80052B88)($at) +/* 07E55C 7F049A2C 46043282 */ mul.s $f10, $f6, $f4 +/* 07E560 7F049A30 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E564 7F049A34 460C3102 */ mul.s $f4, $f6, $f12 +/* 07E568 7F049A38 10000023 */ b .L7F049AC8 +/* 07E56C 7F049A3C E4640028 */ swc1 $f4, 0x28($v1) +.L7F049A40: +/* 07E570 7F049A40 3C018005 */ lui $at, %hi(D_80052B8C) +/* 07E574 7F049A44 C4282B8C */ lwc1 $f8, %lo(D_80052B8C)($at) +/* 07E578 7F049A48 3C018005 */ lui $at, %hi(D_80052B90) +/* 07E57C 7F049A4C 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E580 7F049A50 E4600020 */ swc1 $f0, 0x20($v1) +/* 07E584 7F049A54 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E588 7F049A58 C42A2B90 */ lwc1 $f10, %lo(D_80052B90)($at) +/* 07E58C 7F049A5C 3C018005 */ lui $at, %hi(D_80052B94) +/* 07E590 7F049A60 4600503C */ c.lt.s $f10, $f0 +/* 07E594 7F049A64 00000000 */ nop +/* 07E598 7F049A68 45000003 */ bc1f .L7F049A78 +/* 07E59C 7F049A6C 00000000 */ nop +/* 07E5A0 7F049A70 C4262B94 */ lwc1 $f6, %lo(D_80052B94)($at) +/* 07E5A4 7F049A74 E4660024 */ swc1 $f6, 0x24($v1) +.L7F049A78: +/* 07E5A8 7F049A78 0C002914 */ jal get_random_value +/* 07E5AC 7F049A7C AFA30090 */ sw $v1, 0x90($sp) +/* 07E5B0 7F049A80 44822000 */ mtc1 $v0, $f4 +/* 07E5B4 7F049A84 8FA30090 */ lw $v1, 0x90($sp) +/* 07E5B8 7F049A88 04410005 */ bgez $v0, .L7F049AA0 +/* 07E5BC 7F049A8C 46802220 */ cvt.s.w $f8, $f4 +/* 07E5C0 7F049A90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E5C4 7F049A94 44815000 */ mtc1 $at, $f10 +/* 07E5C8 7F049A98 00000000 */ nop +/* 07E5CC 7F049A9C 460A4200 */ add.s $f8, $f8, $f10 +.L7F049AA0: +/* 07E5D0 7F049AA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E5D4 7F049AA4 44813000 */ mtc1 $at, $f6 +/* 07E5D8 7F049AA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E5DC 7F049AAC 44815000 */ mtc1 $at, $f10 +/* 07E5E0 7F049AB0 46064002 */ mul.s $f0, $f8, $f6 +/* 07E5E4 7F049AB4 C4660020 */ lwc1 $f6, 0x20($v1) +/* 07E5E8 7F049AB8 46000100 */ add.s $f4, $f0, $f0 +/* 07E5EC 7F049ABC 460A2201 */ sub.s $f8, $f4, $f10 +/* 07E5F0 7F049AC0 46064102 */ mul.s $f4, $f8, $f6 +/* 07E5F4 7F049AC4 E4640028 */ swc1 $f4, 0x28($v1) +.L7F049AC8: +/* 07E5F8 7F049AC8 8E980008 */ lw $t8, 8($s4) +.L7F049ACC: +/* 07E5FC 7F049ACC 8F030008 */ lw $v1, 8($t8) +/* 07E600 7F049AD0 8C650014 */ lw $a1, 0x14($v1) +/* 07E604 7F049AD4 50A00008 */ beql $a1, $zero, .L7F049AF8 +/* 07E608 7F049AD8 8C65001C */ lw $a1, 0x1c($v1) +/* 07E60C 7F049ADC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E610 7F049AE0 02802025 */ move $a0, $s4 +/* 07E614 7F049AE4 8FA8013C */ lw $t0, 0x13c($sp) +/* 07E618 7F049AE8 A4480000 */ sh $t0, ($v0) +/* 07E61C 7F049AEC 8E8B0008 */ lw $t3, 8($s4) +/* 07E620 7F049AF0 8D630008 */ lw $v1, 8($t3) +/* 07E624 7F049AF4 8C65001C */ lw $a1, 0x1c($v1) +.L7F049AF8: +/* 07E628 7F049AF8 10A00005 */ beqz $a1, .L7F049B10 +/* 07E62C 7F049AFC 00000000 */ nop +/* 07E630 7F049B00 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E634 7F049B04 02802025 */ move $a0, $s4 +/* 07E638 7F049B08 8FAF0138 */ lw $t7, 0x138($sp) +/* 07E63C 7F049B0C A44F0000 */ sh $t7, ($v0) +.L7F049B10: +/* 07E640 7F049B10 0FC11080 */ jal sub_GAME_7F044200 +/* 07E644 7F049B14 02602025 */ move $a0, $s3 +/* 07E648 7F049B18 8FA90680 */ lw $t1, 0x680($sp) +.L7F049B1C: +/* 07E64C 7F049B1C 24010005 */ li $at, 5 +/* 07E650 7F049B20 55210003 */ bnel $t1, $at, .L7F049B30 +/* 07E654 7F049B24 8FA20680 */ lw $v0, 0x680($sp) +/* 07E658 7F049B28 AE600014 */ sw $zero, 0x14($s3) +/* 07E65C 7F049B2C 8FA20680 */ lw $v0, 0x680($sp) +.L7F049B30: +/* 07E660 7F049B30 8FBF0054 */ lw $ra, 0x54($sp) +/* 07E664 7F049B34 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 07E668 7F049B38 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 07E66C 7F049B3C 8FB00040 */ lw $s0, 0x40($sp) +/* 07E670 7F049B40 8FB10044 */ lw $s1, 0x44($sp) +/* 07E674 7F049B44 8FB20048 */ lw $s2, 0x48($sp) +/* 07E678 7F049B48 8FB3004C */ lw $s3, 0x4c($sp) +/* 07E67C 7F049B4C 8FB40050 */ lw $s4, 0x50($sp) +/* 07E680 7F049B50 03E00008 */ jr $ra +/* 07E684 7F049B54 27BD06A8 */ addiu $sp, $sp, 0x6a8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel rocket_initial_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052A9C +.word 0x3c360b61 /*0.011111111*/ +glabel D_80052AA0 +.word 0x3d8f5c29 /*0.07*/ +glabel prop_projectile_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052AA8 +.word 0x400e38e4 /*2.2222223*/ +glabel D_80052AAC +.word 0x46d9038c /*27777.773*/ +glabel D_80052AB0 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052AB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052AB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052ABC +.word 0x3dcccccd /*0.1*/ +glabel D_80052AC0 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC4 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052ACC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052AD4 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052AD8 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_80052ADC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AE0 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE4 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AEC +.word 0x37433637 /*0.000011635529*/ +glabel D_80052AF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AF4 +.word 0x3a3702d4 /*0.00069813174*/ +glabel D_80052AF8 +.word 0x36c33637 /*0.0000058177643*/ +glabel D_80052AFC +.word 0x39b702d4 /*0.00034906587*/ +glabel D_80052B00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B0C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B10 +.word 0x3f9c61ab /*1.2217306*/ +glabel D_80052B14 +.word 0xbf9c61ab /*-1.2217306*/ +glabel D_80052B18 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B1C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B24 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80052B28 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B30 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B34 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B38 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B3C +.word 0x3f1930a7 /*0.59839863*/ +glabel D_80052B40 +.word 0x3c236719 /*0.0099733109*/ +glabel D_80052B44 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80052B48 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80052B4C +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B50 +.word 0x3bd67750 /*0.0065449849*/ +glabel D_80052B54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B58 +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B5C +.word 0xb964c389 /*-0.00021816617*/ +glabel D_80052B60 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B68 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B6C +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B70 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B74 +.word 0x3e23d70a /*0.16*/ +glabel D_80052B78 +.word 0x461c4000 /*10000.0*/ +glabel D_80052B7C +.word 0x453b8000 /*3000.0*/ +glabel D_80052B80 +.word 0x3f19999a /*0.60000002*/ +glabel D_80052B84 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B88 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052B8C +.word 0x3e4ccccd /*0.2*/ +glabel D_80052B90 +.word 0x453b8000 /*3000.0*/ +glabel D_80052B94 +.word 0x453b8000 /*3000.0*/ +.text +glabel object_interaction +/* 07A218 7F0456A8 27BDF950 */ addiu $sp, $sp, -0x6b0 +/* 07A21C 7F0456AC AFBF0054 */ sw $ra, 0x54($sp) +/* 07A220 7F0456B0 AFB40050 */ sw $s4, 0x50($sp) +/* 07A224 7F0456B4 AFB3004C */ sw $s3, 0x4c($sp) +/* 07A228 7F0456B8 AFB20048 */ sw $s2, 0x48($sp) +/* 07A22C 7F0456BC AFB10044 */ sw $s1, 0x44($sp) +/* 07A230 7F0456C0 AFB00040 */ sw $s0, 0x40($sp) +/* 07A234 7F0456C4 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 07A238 7F0456C8 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 07A23C 7F0456CC 8C910004 */ lw $s1, 4($a0) +/* 07A240 7F0456D0 4480B000 */ mtc1 $zero, $f22 +/* 07A244 7F0456D4 00809825 */ move $s3, $a0 +/* 07A248 7F0456D8 8E340014 */ lw $s4, 0x14($s1) +/* 07A24C 7F0456DC AFA00698 */ sw $zero, 0x698($sp) +/* 07A250 7F0456E0 AFA00688 */ sw $zero, 0x688($sp) +/* 07A254 7F0456E4 0FC26C01 */ jal get_num_players +/* 07A258 7F0456E8 E7B60684 */ swc1 $f22, 0x684($sp) +/* 07A25C 7F0456EC 240F0001 */ li $t7, 1 +/* 07A260 7F0456F0 AFA2067C */ sw $v0, 0x67c($sp) +/* 07A264 7F0456F4 AFAF0678 */ sw $t7, 0x678($sp) +/* 07A268 7F0456F8 8E230064 */ lw $v1, 0x64($s1) +/* 07A26C 7F0456FC 30790004 */ andi $t9, $v1, 4 +/* 07A270 7F045700 13200009 */ beqz $t9, .Ljp7F045728 +/* 07A274 7F045704 30680008 */ andi $t0, $v1, 8 +/* 07A278 7F045708 92260002 */ lbu $a2, 2($s1) +/* 07A27C 7F04570C 02202025 */ move $a0, $s1 +/* 07A280 7F045710 00002825 */ move $a1, $zero +/* 07A284 7F045714 30D80004 */ andi $t8, $a2, 4 +/* 07A288 7F045718 0FC10426 */ jal sub_GAME_7F040D98 +/* 07A28C 7F04571C 03003025 */ move $a2, $t8 +/* 07A290 7F045720 10001204 */ b .Ljp7F049F34 +/* 07A294 7F045724 24020001 */ li $v0, 1 +.Ljp7F045728: +/* 07A298 7F045728 11000005 */ beqz $t0, .Ljp7F045740 +/* 07A29C 7F04572C 306B0080 */ andi $t3, $v1, 0x80 +/* 07A2A0 7F045730 2401FFF7 */ li $at, -9 +/* 07A2A4 7F045734 00614824 */ and $t1, $v1, $at +/* 07A2A8 7F045738 1000000B */ b .Ljp7F045768 +/* 07A2AC 7F04573C AE290064 */ sw $t1, 0x64($s1) +.Ljp7F045740: +/* 07A2B0 7F045740 5160000A */ beql $t3, $zero, .Ljp7F04576C +/* 07A2B4 7F045744 24010001 */ li $at, 1 +/* 07A2B8 7F045748 926C0001 */ lbu $t4, 1($s3) +/* 07A2BC 7F04574C 24020003 */ li $v0, 3 +/* 07A2C0 7F045750 318EFFFD */ andi $t6, $t4, 0xfffd +/* 07A2C4 7F045754 A26E0001 */ sb $t6, 1($s3) +/* 07A2C8 7F045758 8E2A0064 */ lw $t2, 0x64($s1) +/* 07A2CC 7F04575C 354D0008 */ ori $t5, $t2, 8 +/* 07A2D0 7F045760 100011F4 */ b .Ljp7F049F34 +/* 07A2D4 7F045764 AE2D0064 */ sw $t5, 0x64($s1) +.Ljp7F045768: +/* 07A2D8 7F045768 24010001 */ li $at, 1 +.Ljp7F04576C: +/* 07A2DC 7F04576C 14410003 */ bne $v0, $at, .Ljp7F04577C +/* 07A2E0 7F045770 240F0001 */ li $t7, 1 +/* 07A2E4 7F045774 10000019 */ b .Ljp7F0457DC +/* 07A2E8 7F045778 AFAF0680 */ sw $t7, 0x680($sp) +.Ljp7F04577C: +/* 07A2EC 7F04577C 0FC26F3C */ jal get_cur_playernum +/* 07A2F0 7F045780 00000000 */ nop +/* 07A2F4 7F045784 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 07A2F8 7F045788 00402025 */ move $a0, $v0 +/* 07A2FC 7F04578C 2C590001 */ sltiu $t9, $v0, 1 +/* 07A300 7F045790 AFB90680 */ sw $t9, 0x680($sp) +/* 07A304 7F045794 8E380064 */ lw $t8, 0x64($s1) +/* 07A308 7F045798 33080080 */ andi $t0, $t8, 0x80 +/* 07A30C 7F04579C 51000010 */ beql $t0, $zero, .Ljp7F0457E0 +/* 07A310 7F0457A0 8FAA0680 */ lw $t2, 0x680($sp) +/* 07A314 7F0457A4 8E30006C */ lw $s0, 0x6c($s1) +/* 07A318 7F0457A8 8E040088 */ lw $a0, 0x88($s0) +/* 07A31C 7F0457AC 5080000C */ beql $a0, $zero, .Ljp7F0457E0 +/* 07A320 7F0457B0 8FAA0680 */ lw $t2, 0x680($sp) +/* 07A324 7F0457B4 0FC26F3F */ jal sub_GAME_7F09B15C +/* 07A328 7F0457B8 00000000 */ nop +/* 07A32C 7F0457BC 04400007 */ bltz $v0, .Ljp7F0457DC +/* 07A330 7F0457C0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 07A334 7F0457C4 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 07A338 7F0457C8 8E0C0088 */ lw $t4, 0x88($s0) +/* 07A33C 7F0457CC 8D2B00A8 */ lw $t3, 0xa8($t1) +/* 07A340 7F0457D0 016C7026 */ xor $t6, $t3, $t4 +/* 07A344 7F0457D4 2DCE0001 */ sltiu $t6, $t6, 1 +/* 07A348 7F0457D8 AFAE0680 */ sw $t6, 0x680($sp) +.Ljp7F0457DC: +/* 07A34C 7F0457DC 8FAA0680 */ lw $t2, 0x680($sp) +.Ljp7F0457E0: +/* 07A350 7F0457E0 51400B94 */ beql $t2, $zero, .Ljp7F048634 +/* 07A354 7F0457E4 92220003 */ lbu $v0, 3($s1) +/* 07A358 7F0457E8 8E2D0064 */ lw $t5, 0x64($s1) +/* 07A35C 7F0457EC 31AF0080 */ andi $t7, $t5, 0x80 +/* 07A360 7F0457F0 51E0048B */ beql $t7, $zero, .Ljp7F046A20 +/* 07A364 7F0457F4 8FAB0698 */ lw $t3, 0x698($sp) +/* 07A368 7F0457F8 8E30006C */ lw $s0, 0x6c($s1) +/* 07A36C 7F0457FC 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07A370 7F045800 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07A374 7F045804 8E1900E0 */ lw $t9, 0xe0($s0) +/* 07A378 7F045808 03384021 */ addu $t0, $t9, $t8 +/* 07A37C 7F04580C 29010961 */ slti $at, $t0, 0x961 +/* 07A380 7F045810 14200004 */ bnez $at, .Ljp7F045824 +/* 07A384 7F045814 AE0800E0 */ sw $t0, 0xe0($s0) +/* 07A388 7F045818 8E2B0064 */ lw $t3, 0x64($s1) +/* 07A38C 7F04581C 356C0004 */ ori $t4, $t3, 4 +/* 07A390 7F045820 AE2C0064 */ sw $t4, 0x64($s1) +.Ljp7F045824: +/* 07A394 7F045824 8E0E0000 */ lw $t6, ($s0) +/* 07A398 7F045828 31CA0100 */ andi $t2, $t6, 0x100 +/* 07A39C 7F04582C 5140002F */ beql $t2, $zero, .Ljp7F0458EC +/* 07A3A0 7F045830 C6260058 */ lwc1 $f6, 0x58($s1) +/* 07A3A4 7F045834 922D0003 */ lbu $t5, 3($s1) +/* 07A3A8 7F045838 24010008 */ li $at, 8 +/* 07A3AC 7F04583C 24120001 */ li $s2, 1 +/* 07A3B0 7F045840 55A10008 */ bnel $t5, $at, .Ljp7F045864 +/* 07A3B4 7F045844 8E040088 */ lw $a0, 0x88($s0) +/* 07A3B8 7F045848 AFB10650 */ sw $s1, 0x650($sp) +/* 07A3BC 7F04584C 822F0080 */ lb $t7, 0x80($s1) +/* 07A3C0 7F045850 24010056 */ li $at, 86 +/* 07A3C4 7F045854 55E10003 */ bnel $t7, $at, .Ljp7F045864 +/* 07A3C8 7F045858 8E040088 */ lw $a0, 0x88($s0) +/* 07A3CC 7F04585C 00009025 */ move $s2, $zero +/* 07A3D0 7F045860 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045864: +/* 07A3D4 7F045864 50800004 */ beql $a0, $zero, .Ljp7F045878 +/* 07A3D8 7F045868 02202025 */ move $a0, $s1 +/* 07A3DC 7F04586C 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A3E0 7F045870 00002825 */ move $a1, $zero +/* 07A3E4 7F045874 02202025 */ move $a0, $s1 +.Ljp7F045878: +/* 07A3E8 7F045878 260500D4 */ addiu $a1, $s0, 0xd4 +/* 07A3EC 7F04587C 27A60654 */ addiu $a2, $sp, 0x654 +/* 07A3F0 7F045880 27A70660 */ addiu $a3, $sp, 0x660 +/* 07A3F4 7F045884 AFA00010 */ sw $zero, 0x10($sp) +/* 07A3F8 7F045888 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07A3FC 7F04588C AFB20014 */ sw $s2, 0x14($sp) +/* 07A400 7F045890 AFA2066C */ sw $v0, 0x66c($sp) +/* 07A404 7F045894 8E040088 */ lw $a0, 0x88($s0) +/* 07A408 7F045898 50800004 */ beql $a0, $zero, .Ljp7F0458AC +/* 07A40C 7F04589C 8FB9066C */ lw $t9, 0x66c($sp) +/* 07A410 7F0458A0 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A414 7F0458A4 24050001 */ li $a1, 1 +/* 07A418 7F0458A8 8FB9066C */ lw $t9, 0x66c($sp) +.Ljp7F0458AC: +/* 07A41C 7F0458AC 24010001 */ li $at, 1 +/* 07A420 7F0458B0 8FA20650 */ lw $v0, 0x650($sp) +/* 07A424 7F0458B4 53210009 */ beql $t9, $at, .Ljp7F0458DC +/* 07A428 7F0458B8 8E080000 */ lw $t0, ($s0) +/* 07A42C 7F0458BC 50400007 */ beql $v0, $zero, .Ljp7F0458DC +/* 07A430 7F0458C0 8E080000 */ lw $t0, ($s0) +/* 07A434 7F0458C4 80580080 */ lb $t8, 0x80($v0) +/* 07A438 7F0458C8 24010056 */ li $at, 86 +/* 07A43C 7F0458CC 57010003 */ bnel $t8, $at, .Ljp7F0458DC +/* 07A440 7F0458D0 8E080000 */ lw $t0, ($s0) +/* 07A444 7F0458D4 A4400082 */ sh $zero, 0x82($v0) +/* 07A448 7F0458D8 8E080000 */ lw $t0, ($s0) +.Ljp7F0458DC: +/* 07A44C 7F0458DC 2401FEFF */ li $at, -257 +/* 07A450 7F0458E0 01014824 */ and $t1, $t0, $at +/* 07A454 7F0458E4 AE090000 */ sw $t1, ($s0) +/* 07A458 7F0458E8 C6260058 */ lwc1 $f6, 0x58($s1) +.Ljp7F0458EC: +/* 07A45C 7F0458EC 3C0B8005 */ lui $t3, %hi(clock_timer) # $t3, 0x8005 +/* 07A460 7F0458F0 3C013F80 */ lui $at, 0x3f80 +/* 07A464 7F0458F4 E7A6069C */ swc1 $f6, 0x69c($sp) +/* 07A468 7F0458F8 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A46C 7F0458FC E7AA06A0 */ swc1 $f10, 0x6a0($sp) +/* 07A470 7F045900 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07A474 7F045904 E7A406A4 */ swc1 $f4, 0x6a4($sp) +/* 07A478 7F045908 8E0200BC */ lw $v0, 0xbc($s0) +/* 07A47C 7F04590C 58400005 */ blezl $v0, .Ljp7F045924 +/* 07A480 7F045910 8E2E006C */ lw $t6, 0x6c($s1) +/* 07A484 7F045914 8D6B83A4 */ lw $t3, %lo(clock_timer)($t3) +/* 07A488 7F045918 004B6023 */ subu $t4, $v0, $t3 +/* 07A48C 7F04591C AE0C00BC */ sw $t4, 0xbc($s0) +/* 07A490 7F045920 8E2E006C */ lw $t6, 0x6c($s1) +.Ljp7F045924: +/* 07A494 7F045924 8DCA0000 */ lw $t2, ($t6) +/* 07A498 7F045928 314D0001 */ andi $t5, $t2, 1 +/* 07A49C 7F04592C 51A00351 */ beql $t5, $zero, .Ljp7F046674 +/* 07A4A0 7F045930 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07A4A4 7F045934 0FC100DE */ jal sub_GAME_7F040078 +/* 07A4A8 7F045938 02202025 */ move $a0, $s1 +/* 07A4AC 7F04593C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A4B0 7F045940 44814000 */ mtc1 $at, $f8 +/* 07A4B4 7F045944 3C078005 */ lui $a3, %hi(clock_timer) # $a3, 0x8005 +/* 07A4B8 7F045948 24E783A4 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c5c +/* 07A4BC 7F04594C AFA20648 */ sw $v0, 0x648($sp) +/* 07A4C0 7F045950 AFA00618 */ sw $zero, 0x618($sp) +/* 07A4C4 7F045954 AFA00614 */ sw $zero, 0x614($sp) +/* 07A4C8 7F045958 AFA0060C */ sw $zero, 0x60c($sp) +/* 07A4CC 7F04595C E7A80640 */ swc1 $f8, 0x640($sp) +/* 07A4D0 7F045960 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 07A4D4 7F045964 8CF90000 */ lw $t9, ($a3) +/* 07A4D8 7F045968 C634005C */ lwc1 $f20, 0x5c($s1) +/* 07A4DC 7F04596C 00009025 */ move $s2, $zero +/* 07A4E0 7F045970 01F9C021 */ addu $t8, $t7, $t9 +/* 07A4E4 7F045974 AE1800A8 */ sw $t8, 0xa8($s0) +/* 07A4E8 7F045978 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07A4EC 7F04597C 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) # $at, 0x8005 +/* 07A4F0 7F045980 E7A60634 */ swc1 $f6, 0x634($sp) +/* 07A4F4 7F045984 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 07A4F8 7F045988 E7AA0638 */ swc1 $f10, 0x638($sp) +/* 07A4FC 7F04598C C6240020 */ lwc1 $f4, 0x20($s1) +/* 07A500 7F045990 E7A4063C */ swc1 $f4, 0x63c($sp) +/* 07A504 7F045994 8E030000 */ lw $v1, ($s0) +/* 07A508 7F045998 30680020 */ andi $t0, $v1, 0x20 +/* 07A50C 7F04599C 1100004B */ beqz $t0, .Ljp7F045ACC +/* 07A510 7F0459A0 00000000 */ nop +/* 07A514 7F0459A4 C4322AC8 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) +/* 07A518 7F0459A8 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A51C 7F0459AC 3C028005 */ lui $v0, %hi(global_timer_delta) # $v0, 0x8005 +/* 07A520 7F0459B0 244283B4 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c4c +/* 07A524 7F0459B4 4612003C */ c.lt.s $f0, $f18 +/* 07A528 7F0459B8 00000000 */ nop +/* 07A52C 7F0459BC 4502001C */ bc1fl .Ljp7F045A30 +/* 07A530 7F0459C0 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 07A534 7F0459C4 C6080014 */ lwc1 $f8, 0x14($s0) +/* 07A538 7F0459C8 C4460000 */ lwc1 $f6, ($v0) +/* 07A53C 7F0459CC C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 07A540 7F0459D0 3C018005 */ lui $at, %hi(D_80052A9C) # $at, 0x8005 +/* 07A544 7F0459D4 46064282 */ mul.s $f10, $f8, $f6 +/* 07A548 7F0459D8 460A2200 */ add.s $f8, $f4, $f10 +/* 07A54C 7F0459DC E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07A550 7F0459E0 C4440000 */ lwc1 $f4, ($v0) +/* 07A554 7F0459E4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A558 7F0459E8 C60800B0 */ lwc1 $f8, 0xb0($s0) +/* 07A55C 7F0459EC 46043282 */ mul.s $f10, $f6, $f4 +/* 07A560 7F0459F0 460A4180 */ add.s $f6, $f8, $f10 +/* 07A564 7F0459F4 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07A568 7F0459F8 C4480000 */ lwc1 $f8, ($v0) +/* 07A56C 7F0459FC C4242ACC */ lwc1 $f4, %lo(D_80052A9C)($at) +/* 07A570 7F045A00 46082282 */ mul.s $f10, $f4, $f8 +/* 07A574 7F045A04 460A0180 */ add.s $f6, $f0, $f10 +/* 07A578 7F045A08 E606001C */ swc1 $f6, 0x1c($s0) +/* 07A57C 7F045A0C C604001C */ lwc1 $f4, 0x1c($s0) +/* 07A580 7F045A10 4604903C */ c.lt.s $f18, $f4 +/* 07A584 7F045A14 00000000 */ nop +/* 07A588 7F045A18 45000002 */ bc1f .Ljp7F045A24 +/* 07A58C 7F045A1C 00000000 */ nop +/* 07A590 7F045A20 E612001C */ swc1 $f18, 0x1c($s0) +.Ljp7F045A24: +/* 07A594 7F045A24 10000029 */ b .Ljp7F045ACC +/* 07A598 7F045A28 8E030000 */ lw $v1, ($s0) +/* 07A59C 7F045A2C C60000B0 */ lwc1 $f0, 0xb0($s0) +.Ljp7F045A30: +/* 07A5A0 7F045A30 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A5A4 7F045A34 4600403C */ c.lt.s $f8, $f0 +/* 07A5A8 7F045A38 00000000 */ nop +/* 07A5AC 7F045A3C 45000019 */ bc1f .Ljp7F045AA4 +/* 07A5B0 7F045A40 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07A5B4 7F045A44 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07A5B8 7F045A48 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07A5BC 7F045A4C C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 07A5C0 7F045A50 46065102 */ mul.s $f4, $f10, $f6 +/* 07A5C4 7F045A54 46044280 */ add.s $f10, $f8, $f4 +/* 07A5C8 7F045A58 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 07A5CC 7F045A5C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07A5D0 7F045A60 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A5D4 7F045A64 3C018005 */ lui $at, %hi(D_80052AA0) # $at, 0x8005 +/* 07A5D8 7F045A68 46083102 */ mul.s $f4, $f6, $f8 +/* 07A5DC 7F045A6C 46040280 */ add.s $f10, $f0, $f4 +/* 07A5E0 7F045A70 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07A5E4 7F045A74 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A5E8 7F045A78 C60600B0 */ lwc1 $f6, 0xb0($s0) +/* 07A5EC 7F045A7C C42A2AD0 */ lwc1 $f10, %lo(D_80052AA0)($at) +/* 07A5F0 7F045A80 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07A5F4 7F045A84 46083101 */ sub.s $f4, $f6, $f8 +/* 07A5F8 7F045A88 46045182 */ mul.s $f6, $f10, $f4 +/* 07A5FC 7F045A8C C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07A600 7F045A90 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A604 7F045A94 46044180 */ add.s $f6, $f8, $f4 +/* 07A608 7F045A98 E7A606A0 */ swc1 $f6, 0x6a0($sp) +/* 07A60C 7F045A9C 1000000B */ b .Ljp7F045ACC +/* 07A610 7F045AA0 8E030000 */ lw $v1, ($s0) +.Ljp7F045AA4: +/* 07A614 7F045AA4 E7A006A0 */ swc1 $f0, 0x6a0($sp) +/* 07A618 7F045AA8 8E090000 */ lw $t1, ($s0) +/* 07A61C 7F045AAC 2401FFDF */ li $at, -33 +/* 07A620 7F045AB0 C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 07A624 7F045AB4 01215824 */ and $t3, $t1, $at +/* 07A628 7F045AB8 AE0B0000 */ sw $t3, ($s0) +/* 07A62C 7F045ABC 35630010 */ ori $v1, $t3, 0x10 +/* 07A630 7F045AC0 E616001C */ swc1 $f22, 0x1c($s0) +/* 07A634 7F045AC4 AE030000 */ sw $v1, ($s0) +/* 07A638 7F045AC8 E60A0008 */ swc1 $f10, 8($s0) +.Ljp7F045ACC: +/* 07A63C 7F045ACC 3C028005 */ lui $v0, %hi(global_timer_delta) # $v0, 0x8005 +/* 07A640 7F045AD0 244283B4 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c4c +/* 07A644 7F045AD4 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) # $at, 0x8005 +/* 07A648 7F045AD8 306A0010 */ andi $t2, $v1, 0x10 +/* 07A64C 7F045ADC C4322AD4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) +/* 07A650 7F045AE0 C4420000 */ lwc1 $f2, ($v0) +/* 07A654 7F045AE4 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A658 7F045AE8 15400015 */ bnez $t2, .Ljp7F045B40 +/* 07A65C 7F045AEC C6100014 */ lwc1 $f16, 0x14($s0) +/* 07A660 7F045AF0 46008100 */ add.s $f4, $f16, $f0 +/* 07A664 7F045AF4 C6080008 */ lwc1 $f8, 8($s0) +/* 07A668 7F045AF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A66C 7F045AFC 46022182 */ mul.s $f6, $f4, $f2 +/* 07A670 7F045B00 46064280 */ add.s $f10, $f8, $f6 +/* 07A674 7F045B04 E60A0008 */ swc1 $f10, 8($s0) +/* 07A678 7F045B08 C4420000 */ lwc1 $f2, ($v0) +/* 07A67C 7F045B0C C60C0008 */ lwc1 $f12, 8($s0) +/* 07A680 7F045B10 44815000 */ mtc1 $at, $f10 +/* 07A684 7F045B14 46029102 */ mul.s $f4, $f18, $f2 +/* 07A688 7F045B18 46046381 */ sub.s $f14, $f12, $f4 +/* 07A68C 7F045B1C 460E6200 */ add.s $f8, $f12, $f14 +/* 07A690 7F045B20 46081182 */ mul.s $f6, $f2, $f8 +/* 07A694 7F045B24 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A698 7F045B28 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A69C 7F045B2C 46044180 */ add.s $f6, $f8, $f4 +/* 07A6A0 7F045B30 E7A606A0 */ swc1 $f6, 0x6a0($sp) +/* 07A6A4 7F045B34 E60E0008 */ swc1 $f14, 8($s0) +/* 07A6A8 7F045B38 1000000C */ b .Ljp7F045B6C +/* 07A6AC 7F045B3C C4420000 */ lwc1 $f2, ($v0) +.Ljp7F045B40: +/* 07A6B0 7F045B40 46008200 */ add.s $f8, $f16, $f0 +/* 07A6B4 7F045B44 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A6B8 7F045B48 46024102 */ mul.s $f4, $f8, $f2 +/* 07A6BC 7F045B4C 46045180 */ add.s $f6, $f10, $f4 +/* 07A6C0 7F045B50 E6060008 */ swc1 $f6, 8($s0) +/* 07A6C4 7F045B54 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A6C8 7F045B58 C4420000 */ lwc1 $f2, ($v0) +/* 07A6CC 7F045B5C C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A6D0 7F045B60 46025102 */ mul.s $f4, $f10, $f2 +/* 07A6D4 7F045B64 46044180 */ add.s $f6, $f8, $f4 +/* 07A6D8 7F045B68 E7A606A0 */ swc1 $f6, 0x6a0($sp) +.Ljp7F045B6C: +/* 07A6DC 7F045B6C C6080010 */ lwc1 $f8, 0x10($s0) +/* 07A6E0 7F045B70 C60A0004 */ lwc1 $f10, 4($s0) +/* 07A6E4 7F045B74 26240018 */ addiu $a0, $s1, 0x18 +/* 07A6E8 7F045B78 46024102 */ mul.s $f4, $f8, $f2 +/* 07A6EC 7F045B7C C6080018 */ lwc1 $f8, 0x18($s0) +/* 07A6F0 7F045B80 26050020 */ addiu $a1, $s0, 0x20 +/* 07A6F4 7F045B84 46045180 */ add.s $f6, $f10, $f4 +/* 07A6F8 7F045B88 E6060004 */ swc1 $f6, 4($s0) +/* 07A6FC 7F045B8C C44A0000 */ lwc1 $f10, ($v0) +/* 07A700 7F045B90 C606000C */ lwc1 $f6, 0xc($s0) +/* 07A704 7F045B94 460A4102 */ mul.s $f4, $f8, $f10 +/* 07A708 7F045B98 46043200 */ add.s $f8, $f6, $f4 +/* 07A70C 7F045B9C C6060004 */ lwc1 $f6, 4($s0) +/* 07A710 7F045BA0 E608000C */ swc1 $f8, 0xc($s0) +/* 07A714 7F045BA4 C4420000 */ lwc1 $f2, ($v0) +/* 07A718 7F045BA8 C7AA069C */ lwc1 $f10, 0x69c($sp) +/* 07A71C 7F045BAC 8CE60000 */ lw $a2, ($a3) +/* 07A720 7F045BB0 46023102 */ mul.s $f4, $f6, $f2 +/* 07A724 7F045BB4 C7A606A4 */ lwc1 $f6, 0x6a4($sp) +/* 07A728 7F045BB8 46045200 */ add.s $f8, $f10, $f4 +/* 07A72C 7F045BBC E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07A730 7F045BC0 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07A734 7F045BC4 AFA50070 */ sw $a1, 0x70($sp) +/* 07A738 7F045BC8 AFA40074 */ sw $a0, 0x74($sp) +/* 07A73C 7F045BCC 46025102 */ mul.s $f4, $f10, $f2 +/* 07A740 7F045BD0 46043200 */ add.s $f8, $f6, $f4 +/* 07A744 7F045BD4 0FC160C6 */ jal sub_GAME_7F057DF8 +/* 07A748 7F045BD8 E7A806A4 */ swc1 $f8, 0x6a4($sp) +/* 07A74C 7F045BDC 922D0003 */ lbu $t5, 3($s1) +/* 07A750 7F045BE0 24010008 */ li $at, 8 +/* 07A754 7F045BE4 55A10013 */ bnel $t5, $at, .Ljp7F045C34 +/* 07A758 7F045BE8 8E040088 */ lw $a0, 0x88($s0) +/* 07A75C 7F045BEC 82220080 */ lb $v0, 0x80($s1) +/* 07A760 7F045BF0 2401001D */ li $at, 29 +/* 07A764 7F045BF4 1041000D */ beq $v0, $at, .Ljp7F045C2C +/* 07A768 7F045BF8 2401001B */ li $at, 27 +/* 07A76C 7F045BFC 1041000B */ beq $v0, $at, .Ljp7F045C2C +/* 07A770 7F045C00 2401001C */ li $at, 28 +/* 07A774 7F045C04 10410009 */ beq $v0, $at, .Ljp7F045C2C +/* 07A778 7F045C08 24010021 */ li $at, 33 +/* 07A77C 7F045C0C 10410007 */ beq $v0, $at, .Ljp7F045C2C +/* 07A780 7F045C10 2401002F */ li $at, 47 +/* 07A784 7F045C14 10410005 */ beq $v0, $at, .Ljp7F045C2C +/* 07A788 7F045C18 24010030 */ li $at, 48 +/* 07A78C 7F045C1C 10410003 */ beq $v0, $at, .Ljp7F045C2C +/* 07A790 7F045C20 24010022 */ li $at, 34 +/* 07A794 7F045C24 54410003 */ bnel $v0, $at, .Ljp7F045C34 +/* 07A798 7F045C28 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045C2C: +/* 07A79C 7F045C2C 24120001 */ li $s2, 1 +/* 07A7A0 7F045C30 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045C34: +/* 07A7A4 7F045C34 50800004 */ beql $a0, $zero, .Ljp7F045C48 +/* 07A7A8 7F045C38 02202025 */ move $a0, $s1 +/* 07A7AC 7F045C3C 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A7B0 7F045C40 00002825 */ move $a1, $zero +/* 07A7B4 7F045C44 02202025 */ move $a0, $s1 +.Ljp7F045C48: +/* 07A7B8 7F045C48 27A5069C */ addiu $a1, $sp, 0x69c +/* 07A7BC 7F045C4C 27A6061C */ addiu $a2, $sp, 0x61c +/* 07A7C0 7F045C50 27A70628 */ addiu $a3, $sp, 0x628 +/* 07A7C4 7F045C54 AFB20010 */ sw $s2, 0x10($sp) +/* 07A7C8 7F045C58 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07A7CC 7F045C5C AFA00014 */ sw $zero, 0x14($sp) +/* 07A7D0 7F045C60 AFA2066C */ sw $v0, 0x66c($sp) +/* 07A7D4 7F045C64 8E040088 */ lw $a0, 0x88($s0) +/* 07A7D8 7F045C68 50800004 */ beql $a0, $zero, .Ljp7F045C7C +/* 07A7DC 7F045C6C 8FB9066C */ lw $t9, 0x66c($sp) +/* 07A7E0 7F045C70 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A7E4 7F045C74 24050001 */ li $a1, 1 +/* 07A7E8 7F045C78 8FB9066C */ lw $t9, 0x66c($sp) +.Ljp7F045C7C: +/* 07A7EC 7F045C7C 240F0001 */ li $t7, 1 +/* 07A7F0 7F045C80 24010002 */ li $at, 2 +/* 07A7F4 7F045C84 17210042 */ bne $t9, $at, .Ljp7F045D90 +/* 07A7F8 7F045C88 AFAF0698 */ sw $t7, 0x698($sp) +/* 07A7FC 7F045C8C 3C038003 */ lui $v1, %hi(D_80030B0C) # $v1, 0x8003 +/* 07A800 7F045C90 8C630B4C */ lw $v1, %lo(D_80030B0C)($v1) +/* 07A804 7F045C94 10600007 */ beqz $v1, .Ljp7F045CB4 +/* 07A808 7F045C98 00000000 */ nop +/* 07A80C 7F045C9C 90620000 */ lbu $v0, ($v1) +/* 07A810 7F045CA0 24010003 */ li $at, 3 +/* 07A814 7F045CA4 1041003A */ beq $v0, $at, .Ljp7F045D90 +/* 07A818 7F045CA8 24010006 */ li $at, 6 +/* 07A81C 7F045CAC 50410039 */ beql $v0, $at, .Ljp7F045D94 +/* 07A820 7F045CB0 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F045CB4: +/* 07A824 7F045CB4 10600007 */ beqz $v1, .Ljp7F045CD4 +/* 07A828 7F045CB8 00002025 */ move $a0, $zero +/* 07A82C 7F045CBC 8C620004 */ lw $v0, 4($v1) +/* 07A830 7F045CC0 8C580064 */ lw $t8, 0x64($v0) +/* 07A834 7F045CC4 33080080 */ andi $t0, $t8, 0x80 +/* 07A838 7F045CC8 11000002 */ beqz $t0, .Ljp7F045CD4 +/* 07A83C 7F045CCC 00000000 */ nop +/* 07A840 7F045CD0 24040001 */ li $a0, 1 +.Ljp7F045CD4: +/* 07A844 7F045CD4 5480002F */ bnezl $a0, .Ljp7F045D94 +/* 07A848 7F045CD8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A84C 7F045CDC 0FC0FF9C */ jal sub_GAME_7F03FB70 +/* 07A850 7F045CE0 02002025 */ move $a0, $s0 +/* 07A854 7F045CE4 8E290064 */ lw $t1, 0x64($s1) +/* 07A858 7F045CE8 2401FF7F */ li $at, -129 +/* 07A85C 7F045CEC AE20006C */ sw $zero, 0x6c($s1) +/* 07A860 7F045CF0 01215824 */ and $t3, $t1, $at +/* 07A864 7F045CF4 AE2B0064 */ sw $t3, 0x64($s1) +/* 07A868 7F045CF8 92620001 */ lbu $v0, 1($s3) +/* 07A86C 7F045CFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07A870 7F045D00 240500F1 */ li $a1, 241 +/* 07A874 7F045D04 304C0008 */ andi $t4, $v0, 8 +/* 07A878 7F045D08 11800003 */ beqz $t4, .Ljp7F045D18 +/* 07A87C 7F045D0C 00003025 */ move $a2, $zero +/* 07A880 7F045D10 344E0010 */ ori $t6, $v0, 0x10 +/* 07A884 7F045D14 A26E0001 */ sb $t6, 1($s3) +.Ljp7F045D18: +/* 07A888 7F045D18 0C002386 */ jal play_sfx_a1 +/* 07A88C 7F045D1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A890 7F045D20 00402025 */ move $a0, $v0 +/* 07A894 7F045D24 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07A898 7F045D28 26650008 */ addiu $a1, $s3, 8 +/* 07A89C 7F045D2C 8E6A0014 */ lw $t2, 0x14($s3) +/* 07A8A0 7F045D30 82240080 */ lb $a0, 0x80($s1) +/* 07A8A4 7F045D34 0FC15F41 */ jal sub_GAME_7F0577E8 +/* 07A8A8 7F045D38 91450003 */ lbu $a1, 3($t2) +/* 07A8AC 7F045D3C 02202025 */ move $a0, $s1 +/* 07A8B0 7F045D40 27A5061C */ addiu $a1, $sp, 0x61c +/* 07A8B4 7F045D44 8E660014 */ lw $a2, 0x14($s3) +/* 07A8B8 7F045D48 0FC10F2E */ jal sub_GAME_7F0439B8 +/* 07A8BC 7F045D4C 27A70628 */ addiu $a3, $sp, 0x628 +/* 07A8C0 7F045D50 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 +/* 07A8C4 7F045D54 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A8C8 7F045D58 02602025 */ move $a0, $s3 +/* 07A8CC 7F045D5C 3C068007 */ lui $a2, %hi(objinst) # $a2, 0x8007 +/* 07A8D0 7F045D60 10A0000B */ beqz $a1, .Ljp7F045D90 +/* 07A8D4 7F045D64 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) # $a3, 0x8007 +/* 07A8D8 7F045D68 8E720014 */ lw $s2, 0x14($s3) +/* 07A8DC 7F045D6C 8CC65BB0 */ lw $a2, %lo(objinst)($a2) +/* 07A8E0 7F045D70 0FC10F5B */ jal sub_GAME_7F043A6C +/* 07A8E4 7F045D74 8CE75BB4 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) +/* 07A8E8 7F045D78 10400005 */ beqz $v0, .Ljp7F045D90 +/* 07A8EC 7F045D7C 240D0005 */ li $t5, 5 +/* 07A8F0 7F045D80 AE720014 */ sw $s2, 0x14($s3) +/* 07A8F4 7F045D84 240F0001 */ li $t7, 1 +/* 07A8F8 7F045D88 AFAD0688 */ sw $t5, 0x688($sp) +/* 07A8FC 7F045D8C AFAF060C */ sw $t7, 0x60c($sp) +.Ljp7F045D90: +/* 07A900 7F045D90 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F045D94: +/* 07A904 7F045D94 172000EC */ bnez $t9, .Ljp7F046148 +/* 07A908 7F045D98 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 +/* 07A90C 7F045D9C 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) +/* 07A910 7F045DA0 524000EA */ beql $s2, $zero, .Ljp7F04614C +/* 07A914 7F045DA4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A918 7F045DA8 92380003 */ lbu $t8, 3($s1) +/* 07A91C 7F045DAC 24010008 */ li $at, 8 +/* 07A920 7F045DB0 570100E6 */ bnel $t8, $at, .Ljp7F04614C +/* 07A924 7F045DB4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A928 7F045DB8 82220080 */ lb $v0, 0x80($s1) +/* 07A92C 7F045DBC 24010003 */ li $at, 3 +/* 07A930 7F045DC0 544100C3 */ bnel $v0, $at, .Ljp7F0460D0 +/* 07A934 7F045DC4 24010056 */ li $at, 86 +/* 07A938 7F045DC8 92420000 */ lbu $v0, ($s2) +/* 07A93C 7F045DCC 24010003 */ li $at, 3 +/* 07A940 7F045DD0 1041000D */ beq $v0, $at, .Ljp7F045E08 +/* 07A944 7F045DD4 24010006 */ li $at, 6 +/* 07A948 7F045DD8 544100DC */ bnel $v0, $at, .Ljp7F04614C +/* 07A94C 7F045DDC 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A950 7F045DE0 8E480004 */ lw $t0, 4($s2) +/* 07A954 7F045DE4 510000D9 */ beql $t0, $zero, .Ljp7F04614C +/* 07A958 7F045DE8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A95C 7F045DEC 0FC26F3F */ jal sub_GAME_7F09B15C +/* 07A960 7F045DF0 02402025 */ move $a0, $s2 +/* 07A964 7F045DF4 0FC26F3C */ jal get_cur_playernum +/* 07A968 7F045DF8 00409025 */ move $s2, $v0 +/* 07A96C 7F045DFC 105200D2 */ beq $v0, $s2, .Ljp7F046148 +/* 07A970 7F045E00 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 +/* 07A974 7F045E04 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) +.Ljp7F045E08: +/* 07A978 7F045E08 8E22006C */ lw $v0, 0x6c($s1) +/* 07A97C 7F045E0C 8E440004 */ lw $a0, 4($s2) +/* 07A980 7F045E10 8C490000 */ lw $t1, ($v0) +/* 07A984 7F045E14 312B0001 */ andi $t3, $t1, 1 +/* 07A988 7F045E18 516000CC */ beql $t3, $zero, .Ljp7F04614C +/* 07A98C 7F045E1C 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A990 7F045E20 8C4C0090 */ lw $t4, 0x90($v0) +/* 07A994 7F045E24 5D8000C9 */ bgtzl $t4, .Ljp7F04614C +/* 07A998 7F045E28 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A99C 7F045E2C 8E2E0064 */ lw $t6, 0x64($s1) +/* 07A9A0 7F045E30 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) # $a2, 0x8007 +/* 07A9A4 7F045E34 24C65BB8 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5bb8 +/* 07A9A8 7F045E38 31CA0020 */ andi $t2, $t6, 0x20 +/* 07A9AC 7F045E3C 114000C2 */ beqz $t2, .Ljp7F046148 +/* 07A9B0 7F045E40 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 +/* 07A9B4 7F045E44 82270080 */ lb $a3, 0x80($s1) +/* 07A9B8 7F045E48 240D0001 */ li $t5, 1 +/* 07A9BC 7F045E4C AFAD0010 */ sw $t5, 0x10($sp) +/* 07A9C0 7F045E50 0FC09D61 */ jal handles_shot_actors +/* 07A9C4 7F045E54 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A9C8 7F045E58 104000BB */ beqz $v0, .Ljp7F046148 +/* 07A9CC 7F045E5C 240F0001 */ li $t7, 1 +/* 07A9D0 7F045E60 AFAF060C */ sw $t7, 0x60c($sp) +/* 07A9D4 7F045E64 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A9D8 7F045E68 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 07A9DC 7F045E6C 4610B03C */ c.lt.s $f22, $f16 +/* 07A9E0 7F045E70 00000000 */ nop +/* 07A9E4 7F045E74 4502001D */ bc1fl .Ljp7F045EEC +/* 07A9E8 7F045E78 8E190000 */ lw $t9, ($s0) +/* 07A9EC 7F045E7C C6020004 */ lwc1 $f2, 4($s0) +/* 07A9F0 7F045E80 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A9F4 7F045E84 C7A4062C */ lwc1 $f4, 0x62c($sp) +/* 07A9F8 7F045E88 460A1182 */ mul.s $f6, $f2, $f10 +/* 07A9FC 7F045E8C C600000C */ lwc1 $f0, 0xc($s0) +/* 07AA00 7F045E90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AA04 7F045E94 46046202 */ mul.s $f8, $f12, $f4 +/* 07AA08 7F045E98 46083100 */ add.s $f4, $f6, $f8 +/* 07AA0C 7F045E9C C7A60630 */ lwc1 $f6, 0x630($sp) +/* 07AA10 7F045EA0 46003202 */ mul.s $f8, $f6, $f0 +/* 07AA14 7F045EA4 44813000 */ mtc1 $at, $f6 +/* 07AA18 7F045EA8 46044380 */ add.s $f14, $f8, $f4 +/* 07AA1C 7F045EAC 46068200 */ add.s $f8, $f16, $f6 +/* 07AA20 7F045EB0 46004107 */ neg.s $f4, $f8 +/* 07AA24 7F045EB4 46047382 */ mul.s $f14, $f14, $f4 +/* 07AA28 7F045EB8 00000000 */ nop +/* 07AA2C 7F045EBC 460A7182 */ mul.s $f6, $f14, $f10 +/* 07AA30 7F045EC0 46061200 */ add.s $f8, $f2, $f6 +/* 07AA34 7F045EC4 E6080004 */ swc1 $f8, 4($s0) +/* 07AA38 7F045EC8 C7A4062C */ lwc1 $f4, 0x62c($sp) +/* 07AA3C 7F045ECC 46047282 */ mul.s $f10, $f14, $f4 +/* 07AA40 7F045ED0 460A6180 */ add.s $f6, $f12, $f10 +/* 07AA44 7F045ED4 E6060008 */ swc1 $f6, 8($s0) +/* 07AA48 7F045ED8 C7A80630 */ lwc1 $f8, 0x630($sp) +/* 07AA4C 7F045EDC 46087102 */ mul.s $f4, $f14, $f8 +/* 07AA50 7F045EE0 46040280 */ add.s $f10, $f0, $f4 +/* 07AA54 7F045EE4 E60A000C */ swc1 $f10, 0xc($s0) +/* 07AA58 7F045EE8 8E190000 */ lw $t9, ($s0) +.Ljp7F045EEC: +/* 07AA5C 7F045EEC 33380200 */ andi $t8, $t9, 0x200 +/* 07AA60 7F045EF0 57000004 */ bnezl $t8, .Ljp7F045F04 +/* 07AA64 7F045EF4 8E080090 */ lw $t0, 0x90($s0) +/* 07AA68 7F045EF8 0FC15FF8 */ jal sub_GAME_7F057AC0 +/* 07AA6C 7F045EFC 8FA40070 */ lw $a0, 0x70($sp) +/* 07AA70 7F045F00 8E080090 */ lw $t0, 0x90($s0) +.Ljp7F045F04: +/* 07AA74 7F045F04 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 +/* 07AA78 7F045F08 2406FFFF */ li $a2, -1 +/* 07AA7C 7F045F0C 25090001 */ addiu $t1, $t0, 1 +/* 07AA80 7F045F10 AE090090 */ sw $t1, 0x90($s0) +/* 07AA84 7F045F14 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07AA88 7F045F18 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07AA8C 7F045F1C 82240080 */ lb $a0, 0x80($s1) +/* 07AA90 7F045F20 3C0B8003 */ lui $t3, %hi(D_80030B0C) # $t3, 0x8003 +/* 07AA94 7F045F24 8D6B0B4C */ lw $t3, %lo(D_80030B0C)($t3) +/* 07AA98 7F045F28 3C028003 */ lui $v0, %hi(bodypartshot) # $v0, 0x8003 +/* 07AA9C 7F045F2C 916C0001 */ lbu $t4, 1($t3) +/* 07AAA0 7F045F30 318E0002 */ andi $t6, $t4, 2 +/* 07AAA4 7F045F34 51C00085 */ beql $t6, $zero, .Ljp7F04614C +/* 07AAA8 7F045F38 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AAAC 7F045F3C 8C420B50 */ lw $v0, %lo(bodypartshot)($v0) +/* 07AAB0 7F045F40 24010064 */ li $at, 100 +/* 07AAB4 7F045F44 10410080 */ beq $v0, $at, .Ljp7F046148 +/* 07AAB8 7F045F48 2401006E */ li $at, 110 +/* 07AABC 7F045F4C 1041007E */ beq $v0, $at, .Ljp7F046148 +/* 07AAC0 7F045F50 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AAC4 7F045F54 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AAC8 7F045F58 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AACC 7F045F5C 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AAD0 7F045F60 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07AAD4 7F045F64 00003025 */ move $a2, $zero +/* 07AAD8 7F045F68 C7A6061C */ lwc1 $f6, 0x61c($sp) +/* 07AADC 7F045F6C C7A80620 */ lwc1 $f8, 0x620($sp) +/* 07AAE0 7F045F70 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07AAE4 7F045F74 00409025 */ move $s2, $v0 +/* 07AAE8 7F045F78 E7A605D4 */ swc1 $f6, 0x5d4($sp) +/* 07AAEC 7F045F7C E7A805D8 */ swc1 $f8, 0x5d8($sp) +/* 07AAF0 7F045F80 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07AAF4 7F045F84 E7A405DC */ swc1 $f4, 0x5dc($sp) +/* 07AAF8 7F045F88 00402025 */ move $a0, $v0 +/* 07AAFC 7F045F8C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07AB00 7F045F90 27A505D4 */ addiu $a1, $sp, 0x5d4 +/* 07AB04 7F045F94 C7AA05D4 */ lwc1 $f10, 0x5d4($sp) +/* 07AB08 7F045F98 C6460030 */ lwc1 $f6, 0x30($s2) +/* 07AB0C 7F045F9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07AB10 7F045FA0 44810000 */ mtc1 $at, $f0 +/* 07AB14 7F045FA4 46065201 */ sub.s $f8, $f10, $f6 +/* 07AB18 7F045FA8 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AB1C 7F045FAC 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AB20 7F045FB0 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AB24 7F045FB4 46004102 */ mul.s $f4, $f8, $f0 +/* 07AB28 7F045FB8 C7A805D8 */ lwc1 $f8, 0x5d8($sp) +/* 07AB2C 7F045FBC 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AB30 7F045FC0 46045180 */ add.s $f6, $f10, $f4 +/* 07AB34 7F045FC4 E7A605D4 */ swc1 $f6, 0x5d4($sp) +/* 07AB38 7F045FC8 C64A0034 */ lwc1 $f10, 0x34($s2) +/* 07AB3C 7F045FCC 460A4101 */ sub.s $f4, $f8, $f10 +/* 07AB40 7F045FD0 46002182 */ mul.s $f6, $f4, $f0 +/* 07AB44 7F045FD4 C7A405DC */ lwc1 $f4, 0x5dc($sp) +/* 07AB48 7F045FD8 46064280 */ add.s $f10, $f8, $f6 +/* 07AB4C 7F045FDC E7AA05D8 */ swc1 $f10, 0x5d8($sp) +/* 07AB50 7F045FE0 C6480038 */ lwc1 $f8, 0x38($s2) +/* 07AB54 7F045FE4 46082181 */ sub.s $f6, $f4, $f8 +/* 07AB58 7F045FE8 46003282 */ mul.s $f10, $f6, $f0 +/* 07AB5C 7F045FEC 460A2200 */ add.s $f8, $f4, $f10 +/* 07AB60 7F045FF0 0FC1B520 */ jal getjointsize +/* 07AB64 7F045FF4 E7A805DC */ swc1 $f8, 0x5dc($sp) +/* 07AB68 7F045FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07AB6C 7F045FFC 44813000 */ mtc1 $at, $f6 +/* 07AB70 7F046000 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8007 +/* 07AB74 7F046004 C42A5BC8 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) +/* 07AB78 7F046008 46060102 */ mul.s $f4, $f0, $f6 +/* 07AB7C 7F04600C C7A605D4 */ lwc1 $f6, 0x5d4($sp) +/* 07AB80 7F046010 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AB84 7F046014 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AB88 7F046018 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AB8C 7F04601C 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AB90 7F046020 460A2202 */ mul.s $f8, $f4, $f10 +/* 07AB94 7F046024 46083101 */ sub.s $f4, $f6, $f8 +/* 07AB98 7F046028 0FC1B520 */ jal getjointsize +/* 07AB9C 7F04602C E7A405D4 */ swc1 $f4, 0x5d4($sp) +/* 07ABA0 7F046030 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07ABA4 7F046034 44815000 */ mtc1 $at, $f10 +/* 07ABA8 7F046038 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B8C) # $at, 0x8007 +/* 07ABAC 7F04603C C4285BCC */ lwc1 $f8, %lo(flt_CODE_bss_80075B8C)($at) +/* 07ABB0 7F046040 460A0182 */ mul.s $f6, $f0, $f10 +/* 07ABB4 7F046044 C7AA05D8 */ lwc1 $f10, 0x5d8($sp) +/* 07ABB8 7F046048 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07ABBC 7F04604C 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07ABC0 7F046050 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07ABC4 7F046054 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07ABC8 7F046058 46083102 */ mul.s $f4, $f6, $f8 +/* 07ABCC 7F04605C 46045181 */ sub.s $f6, $f10, $f4 +/* 07ABD0 7F046060 0FC1B520 */ jal getjointsize +/* 07ABD4 7F046064 E7A605D8 */ swc1 $f6, 0x5d8($sp) +/* 07ABD8 7F046068 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07ABDC 7F04606C 44814000 */ mtc1 $at, $f8 +/* 07ABE0 7F046070 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B90) # $at, 0x8007 +/* 07ABE4 7F046074 C4245BD0 */ lwc1 $f4, %lo(flt_CODE_bss_80075B90)($at) +/* 07ABE8 7F046078 46080282 */ mul.s $f10, $f0, $f8 +/* 07ABEC 7F04607C C7A805DC */ lwc1 $f8, 0x5dc($sp) +/* 07ABF0 7F046080 02402025 */ move $a0, $s2 +/* 07ABF4 7F046084 27A50594 */ addiu $a1, $sp, 0x594 +/* 07ABF8 7F046088 46045182 */ mul.s $f6, $f10, $f4 +/* 07ABFC 7F04608C 46064281 */ sub.s $f10, $f8, $f6 +/* 07AC00 7F046090 0FC168E1 */ jal sub_GAME_7F059E64 +/* 07AC04 7F046094 E7AA05DC */ swc1 $f10, 0x5dc($sp) +/* 07AC08 7F046098 27A40594 */ addiu $a0, $sp, 0x594 +/* 07AC0C 7F04609C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07AC10 7F0460A0 27A505D4 */ addiu $a1, $sp, 0x5d4 +/* 07AC14 7F0460A4 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AC18 7F0460A8 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 +/* 07AC1C 7F0460AC 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) # $a2, 0x8007 +/* 07AC20 7F0460B0 8CC65BB4 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) +/* 07AC24 7F0460B4 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) +/* 07AC28 7F0460B8 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AC2C 7F0460BC 0FC08931 */ jal sub_GAME_7F0221DC +/* 07AC30 7F0460C0 27A705D4 */ addiu $a3, $sp, 0x5d4 +/* 07AC34 7F0460C4 10000021 */ b .Ljp7F04614C +/* 07AC38 7F0460C8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AC3C 7F0460CC 24010056 */ li $at, 86 +.Ljp7F0460D0: +/* 07AC40 7F0460D0 5441001E */ bnel $v0, $at, .Ljp7F04614C +/* 07AC44 7F0460D4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AC48 7F0460D8 92420000 */ lbu $v0, ($s2) +/* 07AC4C 7F0460DC 240A0001 */ li $t2, 1 +/* 07AC50 7F0460E0 24010003 */ li $at, 3 +/* 07AC54 7F0460E4 14410008 */ bne $v0, $at, .Ljp7F046108 +/* 07AC58 7F0460E8 AFAA060C */ sw $t2, 0x60c($sp) +/* 07AC5C 7F0460EC 8E440004 */ lw $a0, 4($s2) +/* 07AC60 7F0460F0 26250058 */ addiu $a1, $s1, 0x58 +/* 07AC64 7F0460F4 3C064000 */ lui $a2, 0x4000 +/* 07AC68 7F0460F8 0FC09EC3 */ jal sub_GAME_7F027804 +/* 07AC6C 7F0460FC 24070001 */ li $a3, 1 +/* 07AC70 7F046100 10000011 */ b .Ljp7F046148 +/* 07AC74 7F046104 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046108: +/* 07AC78 7F046108 24010001 */ li $at, 1 +/* 07AC7C 7F04610C 10410004 */ beq $v0, $at, .Ljp7F046120 +/* 07AC80 7F046110 3C0542C8 */ lui $a1, 0x42c8 +/* 07AC84 7F046114 24010004 */ li $at, 4 +/* 07AC88 7F046118 5441000B */ bnel $v0, $at, .Ljp7F046148 +/* 07AC8C 7F04611C A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046120: +/* 07AC90 7F046120 8E220064 */ lw $v0, 0x64($s1) +/* 07AC94 7F046124 3C010006 */ lui $at, 6 +/* 07AC98 7F046128 8E440004 */ lw $a0, 4($s2) +/* 07AC9C 7F04612C 00416824 */ and $t5, $v0, $at +/* 07ACA0 7F046130 000D7C42 */ srl $t7, $t5, 0x11 +/* 07ACA4 7F046134 AFAF0010 */ sw $t7, 0x10($sp) +/* 07ACA8 7F046138 26260058 */ addiu $a2, $s1, 0x58 +/* 07ACAC 7F04613C 0FC13943 */ jal maybe_detonate_object +/* 07ACB0 7F046140 24070056 */ li $a3, 86 +/* 07ACB4 7F046144 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046148: +/* 07ACB8 7F046148 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F04614C: +/* 07ACBC 7F04614C 5720010B */ bnezl $t9, .Ljp7F04657C +/* 07ACC0 7F046150 8E2F0064 */ lw $t7, 0x64($s1) +/* 07ACC4 7F046154 8FB8066C */ lw $t8, 0x66c($sp) +/* 07ACC8 7F046158 57000031 */ bnezl $t8, .Ljp7F046220 +/* 07ACCC 7F04615C 8E090000 */ lw $t1, ($s0) +/* 07ACD0 7F046160 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07ACD4 7F046164 C7A40628 */ lwc1 $f4, 0x628($sp) +/* 07ACD8 7F046168 4610B03C */ c.lt.s $f22, $f16 +/* 07ACDC 7F04616C 00000000 */ nop +/* 07ACE0 7F046170 4502002B */ bc1fl .Ljp7F046220 +/* 07ACE4 7F046174 8E090000 */ lw $t1, ($s0) +/* 07ACE8 7F046178 C6020004 */ lwc1 $f2, 4($s0) +/* 07ACEC 7F04617C C60C0008 */ lwc1 $f12, 8($s0) +/* 07ACF0 7F046180 C7A6062C */ lwc1 $f6, 0x62c($sp) +/* 07ACF4 7F046184 46041202 */ mul.s $f8, $f2, $f4 +/* 07ACF8 7F046188 C600000C */ lwc1 $f0, 0xc($s0) +/* 07ACFC 7F04618C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AD00 7F046190 46066282 */ mul.s $f10, $f12, $f6 +/* 07AD04 7F046194 4616603E */ c.le.s $f12, $f22 +/* 07AD08 7F046198 460A4180 */ add.s $f6, $f8, $f10 +/* 07AD0C 7F04619C C7A80630 */ lwc1 $f8, 0x630($sp) +/* 07AD10 7F0461A0 46004282 */ mul.s $f10, $f8, $f0 +/* 07AD14 7F0461A4 44814000 */ mtc1 $at, $f8 +/* 07AD18 7F0461A8 46065380 */ add.s $f14, $f10, $f6 +/* 07AD1C 7F0461AC 46088280 */ add.s $f10, $f16, $f8 +/* 07AD20 7F0461B0 46005187 */ neg.s $f6, $f10 +/* 07AD24 7F0461B4 46067382 */ mul.s $f14, $f14, $f6 +/* 07AD28 7F0461B8 00000000 */ nop +/* 07AD2C 7F0461BC 46047202 */ mul.s $f8, $f14, $f4 +/* 07AD30 7F0461C0 46081280 */ add.s $f10, $f2, $f8 +/* 07AD34 7F0461C4 E60A0004 */ swc1 $f10, 4($s0) +/* 07AD38 7F0461C8 C7A6062C */ lwc1 $f6, 0x62c($sp) +/* 07AD3C 7F0461CC 46067102 */ mul.s $f4, $f14, $f6 +/* 07AD40 7F0461D0 46046200 */ add.s $f8, $f12, $f4 +/* 07AD44 7F0461D4 E6080008 */ swc1 $f8, 8($s0) +/* 07AD48 7F0461D8 C7AA0630 */ lwc1 $f10, 0x630($sp) +/* 07AD4C 7F0461DC 460A7182 */ mul.s $f6, $f14, $f10 +/* 07AD50 7F0461E0 46060100 */ add.s $f4, $f0, $f6 +/* 07AD54 7F0461E4 4500000D */ bc1f .Ljp7F04621C +/* 07AD58 7F0461E8 E604000C */ swc1 $f4, 0xc($s0) +/* 07AD5C 7F0461EC C6080008 */ lwc1 $f8, 8($s0) +/* 07AD60 7F0461F0 24080001 */ li $t0, 1 +/* 07AD64 7F0461F4 4608B03E */ c.le.s $f22, $f8 +/* 07AD68 7F0461F8 00000000 */ nop +/* 07AD6C 7F0461FC 45030007 */ bc1tl .Ljp7F04621C +/* 07AD70 7F046200 AFA80614 */ sw $t0, 0x614($sp) +/* 07AD74 7F046204 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07AD78 7F046208 460AA03E */ c.le.s $f20, $f10 +/* 07AD7C 7F04620C 00000000 */ nop +/* 07AD80 7F046210 45020003 */ bc1fl .Ljp7F046220 +/* 07AD84 7F046214 8E090000 */ lw $t1, ($s0) +/* 07AD88 7F046218 AFA80614 */ sw $t0, 0x614($sp) +.Ljp7F04621C: +/* 07AD8C 7F04621C 8E090000 */ lw $t1, ($s0) +.Ljp7F046220: +/* 07AD90 7F046220 C7B40644 */ lwc1 $f20, 0x644($sp) +/* 07AD94 7F046224 312B0008 */ andi $t3, $t1, 8 +/* 07AD98 7F046228 15600014 */ bnez $t3, .Ljp7F04627C +/* 07AD9C 7F04622C 00000000 */ nop +/* 07ADA0 7F046230 8E640014 */ lw $a0, 0x14($s3) +/* 07ADA4 7F046234 8E650008 */ lw $a1, 8($s3) +/* 07ADA8 7F046238 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 07ADAC 7F04623C 8E660010 */ lw $a2, 0x10($s3) +/* 07ADB0 7F046240 46000506 */ mov.s $f20, $f0 +/* 07ADB4 7F046244 8FA40648 */ lw $a0, 0x648($sp) +/* 07ADB8 7F046248 0FC0FB2F */ jal sub_GAME_7F03E9BC +/* 07ADBC 7F04624C 8FA50074 */ lw $a1, 0x74($sp) +/* 07ADC0 7F046250 4600A101 */ sub.s $f4, $f20, $f0 +/* 07ADC4 7F046254 E7A00640 */ swc1 $f0, 0x640($sp) +/* 07ADC8 7F046258 C666000C */ lwc1 $f6, 0xc($s3) +/* 07ADCC 7F04625C 00006025 */ move $t4, $zero +/* 07ADD0 7F046260 4604303C */ c.lt.s $f6, $f4 +/* 07ADD4 7F046264 00000000 */ nop +/* 07ADD8 7F046268 45000002 */ bc1f .Ljp7F046274 +/* 07ADDC 7F04626C 00000000 */ nop +/* 07ADE0 7F046270 240C0001 */ li $t4, 1 +.Ljp7F046274: +/* 07ADE4 7F046274 10000001 */ b .Ljp7F04627C +/* 07ADE8 7F046278 AFAC0618 */ sw $t4, 0x618($sp) +.Ljp7F04627C: +/* 07ADEC 7F04627C 8FAE0618 */ lw $t6, 0x618($sp) +/* 07ADF0 7F046280 8FAA066C */ lw $t2, 0x66c($sp) +/* 07ADF4 7F046284 55C00004 */ bnezl $t6, .Ljp7F046298 +/* 07ADF8 7F046288 8E0D0000 */ lw $t5, ($s0) +/* 07ADFC 7F04628C 5540000B */ bnezl $t2, .Ljp7F0462BC +/* 07AE00 7F046290 8FA80618 */ lw $t0, 0x618($sp) +/* 07AE04 7F046294 8E0D0000 */ lw $t5, ($s0) +.Ljp7F046298: +/* 07AE08 7F046298 31AF0200 */ andi $t7, $t5, 0x200 +/* 07AE0C 7F04629C 55E00004 */ bnezl $t7, .Ljp7F0462B0 +/* 07AE10 7F0462A0 8E190090 */ lw $t9, 0x90($s0) +/* 07AE14 7F0462A4 0FC15FF8 */ jal sub_GAME_7F057AC0 +/* 07AE18 7F0462A8 8FA40070 */ lw $a0, 0x70($sp) +/* 07AE1C 7F0462AC 8E190090 */ lw $t9, 0x90($s0) +.Ljp7F0462B0: +/* 07AE20 7F0462B0 27380001 */ addiu $t8, $t9, 1 +/* 07AE24 7F0462B4 AE180090 */ sw $t8, 0x90($s0) +/* 07AE28 7F0462B8 8FA80618 */ lw $t0, 0x618($sp) +.Ljp7F0462BC: +/* 07AE2C 7F0462BC 8FA90614 */ lw $t1, 0x614($sp) +/* 07AE30 7F0462C0 8FAB0618 */ lw $t3, 0x618($sp) +/* 07AE34 7F0462C4 15000003 */ bnez $t0, .Ljp7F0462D4 +/* 07AE38 7F0462C8 00000000 */ nop +/* 07AE3C 7F0462CC 5120003A */ beql $t1, $zero, .Ljp7F0463B8 +/* 07AE40 7F0462D0 92390003 */ lbu $t9, 3($s1) +.Ljp7F0462D4: +/* 07AE44 7F0462D4 11600009 */ beqz $t3, .Ljp7F0462FC +/* 07AE48 7F0462D8 C7A40620 */ lwc1 $f4, 0x620($sp) +/* 07AE4C 7F0462DC C7A80640 */ lwc1 $f8, 0x640($sp) +/* 07AE50 7F0462E0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AE54 7F0462E4 44813000 */ mtc1 $at, $f6 +/* 07AE58 7F0462E8 4608A281 */ sub.s $f10, $f20, $f8 +/* 07AE5C 7F0462EC 46065000 */ add.s $f0, $f10, $f6 +/* 07AE60 7F0462F0 E660000C */ swc1 $f0, 0xc($s3) +/* 07AE64 7F0462F4 10000008 */ b .Ljp7F046318 +/* 07AE68 7F0462F8 E620005C */ swc1 $f0, 0x5c($s1) +.Ljp7F0462FC: +/* 07AE6C 7F0462FC C7A80640 */ lwc1 $f8, 0x640($sp) +/* 07AE70 7F046300 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AE74 7F046304 44813000 */ mtc1 $at, $f6 +/* 07AE78 7F046308 46082281 */ sub.s $f10, $f4, $f8 +/* 07AE7C 7F04630C 46065080 */ add.s $f2, $f10, $f6 +/* 07AE80 7F046310 E662000C */ swc1 $f2, 0xc($s3) +/* 07AE84 7F046314 E622005C */ swc1 $f2, 0x5c($s1) +.Ljp7F046318: +/* 07AE88 7F046318 8E230064 */ lw $v1, 0x64($s1) +/* 07AE8C 7F04631C 02202025 */ move $a0, $s1 +/* 07AE90 7F046320 000363C0 */ sll $t4, $v1, 0xf +/* 07AE94 7F046324 05800002 */ bltz $t4, .Ljp7F046330 +/* 07AE98 7F046328 346E0100 */ ori $t6, $v1, 0x100 +/* 07AE9C 7F04632C AE2E0064 */ sw $t6, 0x64($s1) +.Ljp7F046330: +/* 07AEA0 7F046330 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07AEA4 7F046334 4610B03C */ c.lt.s $f22, $f16 +/* 07AEA8 7F046338 00000000 */ nop +/* 07AEAC 7F04633C 4500001B */ bc1f .Ljp7F0463AC +/* 07AEB0 7F046340 00000000 */ nop +/* 07AEB4 7F046344 C6040008 */ lwc1 $f4, 8($s0) +/* 07AEB8 7F046348 46008207 */ neg.s $f8, $f16 +/* 07AEBC 7F04634C 3C018005 */ lui $at, %hi(D_80052AA8) # $at, 0x8005 +/* 07AEC0 7F046350 46082282 */ mul.s $f10, $f4, $f8 +/* 07AEC4 7F046354 C4202AD8 */ lwc1 $f0, %lo(D_80052AA8)($at) +/* 07AEC8 7F046358 E60A0008 */ swc1 $f10, 8($s0) +/* 07AECC 7F04635C C6060008 */ lwc1 $f6, 8($s0) +/* 07AED0 7F046360 4600303C */ c.lt.s $f6, $f0 +/* 07AED4 7F046364 00000000 */ nop +/* 07AED8 7F046368 45020013 */ bc1fl .Ljp7F0463B8 +/* 07AEDC 7F04636C 92390003 */ lbu $t9, 3($s1) +/* 07AEE0 7F046370 8E0A0000 */ lw $t2, ($s0) +/* 07AEE4 7F046374 02202025 */ move $a0, $s1 +/* 07AEE8 7F046378 314D0002 */ andi $t5, $t2, 2 +/* 07AEEC 7F04637C 11A00007 */ beqz $t5, .Ljp7F04639C +/* 07AEF0 7F046380 00000000 */ nop +/* 07AEF4 7F046384 8E0F0090 */ lw $t7, 0x90($s0) +/* 07AEF8 7F046388 24010001 */ li $at, 1 +/* 07AEFC 7F04638C 15E10003 */ bne $t7, $at, .Ljp7F04639C +/* 07AF00 7F046390 00000000 */ nop +/* 07AF04 7F046394 10000007 */ b .Ljp7F0463B4 +/* 07AF08 7F046398 E6000008 */ swc1 $f0, 8($s0) +.Ljp7F04639C: +/* 07AF0C 7F04639C 0FC10D39 */ jal sub_GAME_7F0431E4 +/* 07AF10 7F0463A0 27A50634 */ addiu $a1, $sp, 0x634 +/* 07AF14 7F0463A4 10000004 */ b .Ljp7F0463B8 +/* 07AF18 7F0463A8 92390003 */ lbu $t9, 3($s1) +.Ljp7F0463AC: +/* 07AF1C 7F0463AC 0FC10D39 */ jal sub_GAME_7F0431E4 +/* 07AF20 7F0463B0 27A50634 */ addiu $a1, $sp, 0x634 +.Ljp7F0463B4: +/* 07AF24 7F0463B4 92390003 */ lbu $t9, 3($s1) +.Ljp7F0463B8: +/* 07AF28 7F0463B8 24010008 */ li $at, 8 +/* 07AF2C 7F0463BC 5721006F */ bnel $t9, $at, .Ljp7F04657C +/* 07AF30 7F0463C0 8E2F0064 */ lw $t7, 0x64($s1) +/* 07AF34 7F0463C4 82220080 */ lb $v0, 0x80($s1) +/* 07AF38 7F0463C8 24010003 */ li $at, 3 +/* 07AF3C 7F0463CC 54410006 */ bnel $v0, $at, .Ljp7F0463E8 +/* 07AF40 7F0463D0 24010056 */ li $at, 86 +/* 07AF44 7F0463D4 0FC10E54 */ jal sub_GAME_7F043650 +/* 07AF48 7F0463D8 02202025 */ move $a0, $s1 +/* 07AF4C 7F0463DC 10000042 */ b .Ljp7F0464E8 +/* 07AF50 7F0463E0 8FAB066C */ lw $t3, 0x66c($sp) +/* 07AF54 7F0463E4 24010056 */ li $at, 86 +.Ljp7F0463E8: +/* 07AF58 7F0463E8 1441002D */ bne $v0, $at, .Ljp7F0464A0 +/* 07AF5C 7F0463EC 8FB8066C */ lw $t8, 0x66c($sp) +/* 07AF60 7F0463F0 13000003 */ beqz $t8, .Ljp7F046400 +/* 07AF64 7F0463F4 8FA80618 */ lw $t0, 0x618($sp) +/* 07AF68 7F0463F8 51000004 */ beql $t0, $zero, .Ljp7F04640C +/* 07AF6C 7F0463FC C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F046400: +/* 07AF70 7F046400 10000038 */ b .Ljp7F0464E4 +/* 07AF74 7F046404 A6200082 */ sh $zero, 0x82($s1) +/* 07AF78 7F046408 C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F04640C: +/* 07AF7C 7F04640C C60C0008 */ lwc1 $f12, 8($s0) +/* 07AF80 7F046410 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AF84 7F046414 46021102 */ mul.s $f4, $f2, $f2 +/* 07AF88 7F046418 3C018005 */ lui $at, %hi(D_80052AAC) +/* 07AF8C 7F04641C 26240058 */ addiu $a0, $s1, 0x58 +/* 07AF90 7F046420 460C6202 */ mul.s $f8, $f12, $f12 +/* 07AF94 7F046424 24060008 */ li $a2, 8 +/* 07AF98 7F046428 46000182 */ mul.s $f6, $f0, $f0 +/* 07AF9C 7F04642C 46082280 */ add.s $f10, $f4, $f8 +/* 07AFA0 7F046430 C4242ADC */ lwc1 $f4, %lo(D_80052AAC)($at) +/* 07AFA4 7F046434 460A3380 */ add.s $f14, $f6, $f10 +/* 07AFA8 7F046438 460E203C */ c.lt.s $f4, $f14 +/* 07AFAC 7F04643C 00000000 */ nop +/* 07AFB0 7F046440 45020005 */ bc1fl .Ljp7F046458 +/* 07AFB4 7F046444 8E0900A8 */ lw $t1, 0xa8($s0) +/* 07AFB8 7F046448 E6160010 */ swc1 $f22, 0x10($s0) +/* 07AFBC 7F04644C E6160014 */ swc1 $f22, 0x14($s0) +/* 07AFC0 7F046450 E6160018 */ swc1 $f22, 0x18($s0) +/* 07AFC4 7F046454 8E0900A8 */ lw $t1, 0xa8($s0) +.Ljp7F046458: +/* 07AFC8 7F046458 2921012D */ slti $at, $t1, 0x12d +/* 07AFCC 7F04645C 54200008 */ bnezl $at, .Ljp7F046480 +/* 07AFD0 7F046460 926E0001 */ lbu $t6, 1($s3) +/* 07AFD4 7F046464 8E0B0000 */ lw $t3, ($s0) +/* 07AFD8 7F046468 2401FFCF */ li $at, -49 +/* 07AFDC 7F04646C E616001C */ swc1 $f22, 0x1c($s0) +/* 07AFE0 7F046470 01616024 */ and $t4, $t3, $at +/* 07AFE4 7F046474 1000001B */ b .Ljp7F0464E4 +/* 07AFE8 7F046478 AE0C0000 */ sw $t4, ($s0) +/* 07AFEC 7F04647C 926E0001 */ lbu $t6, 1($s3) +.Ljp7F046480: +/* 07AFF0 7F046480 8E650014 */ lw $a1, 0x14($s3) +/* 07AFF4 7F046484 2667002C */ addiu $a3, $s3, 0x2c +/* 07AFF8 7F046488 31CA0008 */ andi $t2, $t6, 8 +/* 07AFFC 7F04648C 000A682B */ sltu $t5, $zero, $t2 +/* 07B000 7F046490 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B004 7F046494 AFAD0010 */ sw $t5, 0x10($sp) +/* 07B008 7F046498 10000013 */ b .Ljp7F0464E8 +/* 07B00C 7F04649C 8FAB066C */ lw $t3, 0x66c($sp) +.Ljp7F0464A0: +/* 07B010 7F0464A0 24010057 */ li $at, 87 +/* 07B014 7F0464A4 1441000F */ bne $v0, $at, .Ljp7F0464E4 +/* 07B018 7F0464A8 8FAF0618 */ lw $t7, 0x618($sp) +/* 07B01C 7F0464AC 15E00003 */ bnez $t7, .Ljp7F0464BC +/* 07B020 7F0464B0 8FB90614 */ lw $t9, 0x614($sp) +/* 07B024 7F0464B4 13200003 */ beqz $t9, .Ljp7F0464C4 +/* 07B028 7F0464B8 26240058 */ addiu $a0, $s1, 0x58 +.Ljp7F0464BC: +/* 07B02C 7F0464BC 10000009 */ b .Ljp7F0464E4 +/* 07B030 7F0464C0 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F0464C4: +/* 07B034 7F0464C4 92780001 */ lbu $t8, 1($s3) +/* 07B038 7F0464C8 8E650014 */ lw $a1, 0x14($s3) +/* 07B03C 7F0464CC 24060009 */ li $a2, 9 +/* 07B040 7F0464D0 33080008 */ andi $t0, $t8, 8 +/* 07B044 7F0464D4 0008482B */ sltu $t1, $zero, $t0 +/* 07B048 7F0464D8 AFA90010 */ sw $t1, 0x10($sp) +/* 07B04C 7F0464DC 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B050 7F0464E0 2667002C */ addiu $a3, $s3, 0x2c +.Ljp7F0464E4: +/* 07B054 7F0464E4 8FAB066C */ lw $t3, 0x66c($sp) +.Ljp7F0464E8: +/* 07B058 7F0464E8 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 +/* 07B05C 7F0464EC 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 +/* 07B060 7F0464F0 11600003 */ beqz $t3, .Ljp7F046500 +/* 07B064 7F0464F4 8FAC0618 */ lw $t4, 0x618($sp) +/* 07B068 7F0464F8 51800020 */ beql $t4, $zero, .Ljp7F04657C +/* 07B06C 7F0464FC 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F046500: +/* 07B070 7F046500 8E420000 */ lw $v0, ($s2) +/* 07B074 7F046504 8E0E00AC */ lw $t6, 0xac($s0) +/* 07B078 7F046508 244AFFFE */ addiu $t2, $v0, -2 +/* 07B07C 7F04650C 01CA082A */ slt $at, $t6, $t2 +/* 07B080 7F046510 50200019 */ beql $at, $zero, .Ljp7F046578 +/* 07B084 7F046514 AE0200AC */ sw $v0, 0xac($s0) +/* 07B088 7F046518 82220080 */ lb $v0, 0x80($s1) +/* 07B08C 7F04651C 266D0008 */ addiu $t5, $s3, 8 +/* 07B090 7F046520 24010003 */ li $at, 3 +/* 07B094 7F046524 10410004 */ beq $v0, $at, .Ljp7F046538 +/* 07B098 7F046528 AFAD0074 */ sw $t5, 0x74($sp) +/* 07B09C 7F04652C 24010002 */ li $at, 2 +/* 07B0A0 7F046530 14410008 */ bne $v0, $at, .Ljp7F046554 +/* 07B0A4 7F046534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +.Ljp7F046538: +/* 07B0A8 7F046538 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07B0AC 7F04653C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0B0 7F046540 24050003 */ li $a1, 3 +/* 07B0B4 7F046544 0C002386 */ jal play_sfx_a1 +/* 07B0B8 7F046548 00003025 */ move $a2, $zero +/* 07B0BC 7F04654C 10000006 */ b .Ljp7F046568 +/* 07B0C0 7F046550 00402025 */ move $a0, $v0 +.Ljp7F046554: +/* 07B0C4 7F046554 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0C8 7F046558 2405002D */ li $a1, 45 +/* 07B0CC 7F04655C 0C002386 */ jal play_sfx_a1 +/* 07B0D0 7F046560 00003025 */ move $a2, $zero +/* 07B0D4 7F046564 00402025 */ move $a0, $v0 +.Ljp7F046568: +/* 07B0D8 7F046568 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07B0DC 7F04656C 8FA50074 */ lw $a1, 0x74($sp) +/* 07B0E0 7F046570 8E420000 */ lw $v0, ($s2) +/* 07B0E4 7F046574 AE0200AC */ sw $v0, 0xac($s0) +.Ljp7F046578: +/* 07B0E8 7F046578 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F04657C: +/* 07B0EC 7F04657C 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 +/* 07B0F0 7F046580 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 +/* 07B0F4 7F046584 31F90080 */ andi $t9, $t7, 0x80 +/* 07B0F8 7F046588 53200125 */ beql $t9, $zero, .Ljp7F046A20 +/* 07B0FC 7F04658C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B100 7F046590 8E180000 */ lw $t8, ($s0) +/* 07B104 7F046594 33080400 */ andi $t0, $t8, 0x400 +/* 07B108 7F046598 51000121 */ beql $t0, $zero, .Ljp7F046A20 +/* 07B10C 7F04659C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B110 7F0465A0 8E420000 */ lw $v0, ($s2) +/* 07B114 7F0465A4 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 07B118 7F0465A8 27B0056C */ addiu $s0, $sp, 0x56c +/* 07B11C 7F0465AC 30490007 */ andi $t1, $v0, 7 +/* 07B120 7F0465B0 1520011A */ bnez $t1, .Ljp7F046A1C +/* 07B124 7F0465B4 00002025 */ move $a0, $zero +/* 07B128 7F0465B8 44810000 */ mtc1 $at, $f0 +/* 07B12C 7F0465BC C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B130 7F0465C0 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +/* 07B134 7F0465C4 44812000 */ mtc1 $at, $f4 +/* 07B138 7F0465C8 46004180 */ add.s $f6, $f8, $f0 +/* 07B13C 7F0465CC 304B000F */ andi $t3, $v0, 0xf +/* 07B140 7F0465D0 E7A6056C */ swc1 $f6, 0x56c($sp) +/* 07B144 7F0465D4 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B148 7F0465D8 46045201 */ sub.s $f8, $f10, $f4 +/* 07B14C 7F0465DC E7A80570 */ swc1 $f8, 0x570($sp) +/* 07B150 7F0465E0 C6260060 */ lwc1 $f6, 0x60($s1) +/* 07B154 7F0465E4 15600005 */ bnez $t3, .Ljp7F0465FC +/* 07B158 7F0465E8 E7A60574 */ swc1 $f6, 0x574($sp) +/* 07B15C 7F0465EC C7AA0574 */ lwc1 $f10, 0x574($sp) +/* 07B160 7F0465F0 46005100 */ add.s $f4, $f10, $f0 +/* 07B164 7F0465F4 10000004 */ b .Ljp7F046608 +/* 07B168 7F0465F8 E7A40574 */ swc1 $f4, 0x574($sp) +.Ljp7F0465FC: +/* 07B16C 7F0465FC C7A80574 */ lwc1 $f8, 0x574($sp) +/* 07B170 7F046600 46004181 */ sub.s $f6, $f8, $f0 +/* 07B174 7F046604 E7A60574 */ swc1 $f6, 0x574($sp) +.Ljp7F046608: +/* 07B178 7F046608 8E220010 */ lw $v0, 0x10($s1) +/* 07B17C 7F04660C 02002825 */ move $a1, $s0 +/* 07B180 7F046610 24070014 */ li $a3, 20 +/* 07B184 7F046614 8C460014 */ lw $a2, 0x14($v0) +/* 07B188 7F046618 244C002C */ addiu $t4, $v0, 0x2c +/* 07B18C 7F04661C AFAC0018 */ sw $t4, 0x18($sp) +/* 07B190 7F046620 AFA0001C */ sw $zero, 0x1c($sp) +/* 07B194 7F046624 AFA00014 */ sw $zero, 0x14($sp) +/* 07B198 7F046628 0FC2737C */ jal sub_GAME_7F09C250 +/* 07B19C 7F04662C AFA00010 */ sw $zero, 0x10($sp) +/* 07B1A0 7F046630 8E4E0000 */ lw $t6, ($s2) +/* 07B1A4 7F046634 24010028 */ li $at, 40 +/* 07B1A8 7F046638 02002025 */ move $a0, $s0 +/* 07B1AC 7F04663C 01C1001A */ div $zero, $t6, $at +/* 07B1B0 7F046640 00005010 */ mfhi $t2 +/* 07B1B4 7F046644 554000F6 */ bnezl $t2, .Ljp7F046A20 +/* 07B1B8 7F046648 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B1BC 7F04664C 8E220010 */ lw $v0, 0x10($s1) +/* 07B1C0 7F046650 240D0001 */ li $t5, 1 +/* 07B1C4 7F046654 2406000A */ li $a2, 10 +/* 07B1C8 7F046658 8C450014 */ lw $a1, 0x14($v0) +/* 07B1CC 7F04665C AFAD0010 */ sw $t5, 0x10($sp) +/* 07B1D0 7F046660 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B1D4 7F046664 2447002C */ addiu $a3, $v0, 0x2c +/* 07B1D8 7F046668 100000ED */ b .Ljp7F046A20 +/* 07B1DC 7F04666C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B1E0 7F046670 C6000060 */ lwc1 $f0, 0x60($s0) +.Ljp7F046674: +/* 07B1E4 7F046674 44815000 */ mtc1 $at, $f10 +/* 07B1E8 7F046678 24120001 */ li $s2, 1 +/* 07B1EC 7F04667C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B1F0 7F046680 460A003C */ c.lt.s $f0, $f10 +/* 07B1F4 7F046684 26040068 */ addiu $a0, $s0, 0x68 +/* 07B1F8 7F046688 26050078 */ addiu $a1, $s0, 0x78 +/* 07B1FC 7F04668C 45020031 */ bc1fl .Ljp7F046754 +/* 07B200 7F046690 C60A0004 */ lwc1 $f10, 4($s0) +/* 07B204 7F046694 C6020064 */ lwc1 $f2, 0x64($s0) +/* 07B208 7F046698 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B20C 7F04669C 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 07B210 7F0466A0 3C018005 */ lui $at, %hi(D_80052AB0) +/* 07B214 7F0466A4 46041202 */ mul.s $f8, $f2, $f4 +/* 07B218 7F0466A8 27B20558 */ addiu $s2, $sp, 0x558 +/* 07B21C 7F0466AC 46080180 */ add.s $f6, $f0, $f8 +/* 07B220 7F0466B0 E6060060 */ swc1 $f6, 0x60($s0) +/* 07B224 7F0466B4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 07B228 7F0466B8 59E00005 */ blezl $t7, .Ljp7F0466D0 +/* 07B22C 7F0466BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B230 7F0466C0 C42A2AE0 */ lwc1 $f10, %lo(D_80052AB0)($at) +/* 07B234 7F0466C4 460A1102 */ mul.s $f4, $f2, $f10 +/* 07B238 7F0466C8 E6040064 */ swc1 $f4, 0x64($s0) +/* 07B23C 7F0466CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.Ljp7F0466D0: +/* 07B240 7F0466D0 44814000 */ mtc1 $at, $f8 +/* 07B244 7F0466D4 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07B248 7F0466D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B24C 7F0466DC 4600403C */ c.lt.s $f8, $f0 +/* 07B250 7F0466E0 00000000 */ nop +/* 07B254 7F0466E4 45030006 */ bc1tl .Ljp7F046700 +/* 07B258 7F0466E8 44813000 */ mtc1 $at, $f6 +/* 07B25C 7F0466EC 8E190000 */ lw $t9, ($s0) +/* 07B260 7F0466F0 33380008 */ andi $t8, $t9, 8 +/* 07B264 7F0466F4 53000006 */ beql $t8, $zero, .Ljp7F046710 +/* 07B268 7F0466F8 44060000 */ mfc1 $a2, $f0 +/* 07B26C 7F0466FC 44813000 */ mtc1 $at, $f6 +.Ljp7F046700: +/* 07B270 7F046700 00000000 */ nop +/* 07B274 7F046704 E6060060 */ swc1 $f6, 0x60($s0) +/* 07B278 7F046708 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07B27C 7F04670C 44060000 */ mfc1 $a2, $f0 +.Ljp7F046710: +/* 07B280 7F046710 0FC16FCA */ jal quaternion_slerp +/* 07B284 7F046714 02403825 */ move $a3, $s2 +/* 07B288 7F046718 26250018 */ addiu $a1, $s1, 0x18 +/* 07B28C 7F04671C AFA50074 */ sw $a1, 0x74($sp) +/* 07B290 7F046720 0FC16ED2 */ jal quaternion_to_matrix +/* 07B294 7F046724 02402025 */ move $a0, $s2 +/* 07B298 7F046728 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 07B29C 7F04672C 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 07B2A0 7F046730 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2A4 7F046734 C60C00C4 */ lwc1 $f12, 0xc4($s0) +/* 07B2A8 7F046738 0FC163C1 */ jal matrix_column_2_scalar_multiply +/* 07B2AC 7F04673C 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2B0 7F046740 C60C00C8 */ lwc1 $f12, 0xc8($s0) +/* 07B2B4 7F046744 0FC163DB */ jal matrix_column_3_scalar_multiply_2 +/* 07B2B8 7F046748 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2BC 7F04674C 00009025 */ move $s2, $zero +/* 07B2C0 7F046750 C60A0004 */ lwc1 $f10, 4($s0) +.Ljp7F046754: +/* 07B2C4 7F046754 460AB032 */ c.eq.s $f22, $f10 +/* 07B2C8 7F046758 00000000 */ nop +/* 07B2CC 7F04675C 4502000F */ bc1fl .Ljp7F04679C +/* 07B2D0 7F046760 8E080000 */ lw $t0, ($s0) +/* 07B2D4 7F046764 C604000C */ lwc1 $f4, 0xc($s0) +/* 07B2D8 7F046768 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B2DC 7F04676C 4604B032 */ c.eq.s $f22, $f4 +/* 07B2E0 7F046770 00000000 */ nop +/* 07B2E4 7F046774 45020009 */ bc1fl .Ljp7F04679C +/* 07B2E8 7F046778 8E080000 */ lw $t0, ($s0) +/* 07B2EC 7F04677C C6080060 */ lwc1 $f8, 0x60($s0) +/* 07B2F0 7F046780 44813000 */ mtc1 $at, $f6 +/* 07B2F4 7F046784 00000000 */ nop +/* 07B2F8 7F046788 4606403C */ c.lt.s $f8, $f6 +/* 07B2FC 7F04678C 00000000 */ nop +/* 07B300 7F046790 45000088 */ bc1f .Ljp7F0469B4 +/* 07B304 7F046794 00000000 */ nop +/* 07B308 7F046798 8E080000 */ lw $t0, ($s0) +.Ljp7F04679C: +/* 07B30C 7F04679C 02202025 */ move $a0, $s1 +/* 07B310 7F0467A0 262B0018 */ addiu $t3, $s1, 0x18 +/* 07B314 7F0467A4 31090008 */ andi $t1, $t0, 8 +/* 07B318 7F0467A8 15200082 */ bnez $t1, .Ljp7F0469B4 +/* 07B31C 7F0467AC 00000000 */ nop +/* 07B320 7F0467B0 AFAB0074 */ sw $t3, 0x74($sp) +/* 07B324 7F0467B4 0FC100DE */ jal sub_GAME_7F040078 +/* 07B328 7F0467B8 00009025 */ move $s2, $zero +/* 07B32C 7F0467BC 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B330 7F0467C0 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +/* 07B334 7F0467C4 AFA20554 */ sw $v0, 0x554($sp) +/* 07B338 7F0467C8 00002025 */ move $a0, $zero +/* 07B33C 7F0467CC 18600048 */ blez $v1, .Ljp7F0468F0 +/* 07B340 7F0467D0 3C018005 */ lui $at, %hi(D_80052AB4) # $at, 0x8005 +/* 07B344 7F0467D4 C42E2AE4 */ lwc1 $f14, %lo(D_80052AB4)($at) +/* 07B348 7F0467D8 C7AA069C */ lwc1 $f10, 0x69c($sp) +.Ljp7F0467DC: +/* 07B34C 7F0467DC C6040004 */ lwc1 $f4, 4($s0) +/* 07B350 7F0467E0 C7A606A4 */ lwc1 $f6, 0x6a4($sp) +/* 07B354 7F0467E4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B358 7F0467E8 46045200 */ add.s $f8, $f10, $f4 +/* 07B35C 7F0467EC E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07B360 7F0467F0 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07B364 7F0467F4 460A3100 */ add.s $f4, $f6, $f10 +/* 07B368 7F0467F8 44813000 */ mtc1 $at, $f6 +/* 07B36C 7F0467FC E7A406A4 */ swc1 $f4, 0x6a4($sp) +/* 07B370 7F046800 C6080060 */ lwc1 $f8, 0x60($s0) +/* 07B374 7F046804 4608303E */ c.le.s $f6, $f8 +/* 07B378 7F046808 00000000 */ nop +/* 07B37C 7F04680C 45020035 */ bc1fl .Ljp7F0468E4 +/* 07B380 7F046810 24840001 */ addiu $a0, $a0, 1 +/* 07B384 7F046814 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 07B388 7F046818 460AB03C */ c.lt.s $f22, $f10 +/* 07B38C 7F04681C 00000000 */ nop +/* 07B390 7F046820 45020027 */ bc1fl .Ljp7F0468C0 +/* 07B394 7F046824 C6060004 */ lwc1 $f6, 4($s0) +/* 07B398 7F046828 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B39C 7F04682C C6020004 */ lwc1 $f2, 4($s0) +/* 07B3A0 7F046830 AFA40550 */ sw $a0, 0x550($sp) +/* 07B3A4 7F046834 46000102 */ mul.s $f4, $f0, $f0 +/* 07B3A8 7F046838 00000000 */ nop +/* 07B3AC 7F04683C 46021202 */ mul.s $f8, $f2, $f2 +/* 07B3B0 7F046840 0C007E08 */ jal sqrtf +/* 07B3B4 7F046844 46082300 */ add.s $f12, $f4, $f8 +/* 07B3B8 7F046848 3C018005 */ lui $at, %hi(D_80052AB8) # $at, 0x8005 +/* 07B3BC 7F04684C C42E2AE8 */ lwc1 $f14, %lo(D_80052AB8)($at) +/* 07B3C0 7F046850 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B3C4 7F046854 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B3C8 7F046858 C6060094 */ lwc1 $f6, 0x94($s0) +/* 07B3CC 7F04685C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B3D0 7F046860 44814000 */ mtc1 $at, $f8 +/* 07B3D4 7F046864 460A3102 */ mul.s $f4, $f6, $f10 +/* 07B3D8 7F046868 8FA40550 */ lw $a0, 0x550($sp) +/* 07B3DC 7F04686C 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B3E0 7F046870 46002303 */ div.s $f12, $f4, $f0 +/* 07B3E4 7F046874 460C403E */ c.le.s $f8, $f12 +/* 07B3E8 7F046878 00000000 */ nop +/* 07B3EC 7F04687C 45020005 */ bc1fl .Ljp7F046894 +/* 07B3F0 7F046880 C6020004 */ lwc1 $f2, 4($s0) +/* 07B3F4 7F046884 E6160004 */ swc1 $f22, 4($s0) +/* 07B3F8 7F046888 1000000A */ b .Ljp7F0468B4 +/* 07B3FC 7F04688C E616000C */ swc1 $f22, 0xc($s0) +/* 07B400 7F046890 C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F046894: +/* 07B404 7F046894 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B408 7F046898 460C1182 */ mul.s $f6, $f2, $f12 +/* 07B40C 7F04689C 00000000 */ nop +/* 07B410 7F0468A0 460C0102 */ mul.s $f4, $f0, $f12 +/* 07B414 7F0468A4 46061281 */ sub.s $f10, $f2, $f6 +/* 07B418 7F0468A8 46040201 */ sub.s $f8, $f0, $f4 +/* 07B41C 7F0468AC E60A0004 */ swc1 $f10, 4($s0) +/* 07B420 7F0468B0 E608000C */ swc1 $f8, 0xc($s0) +.Ljp7F0468B4: +/* 07B424 7F0468B4 1000000A */ b .Ljp7F0468E0 +/* 07B428 7F0468B8 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +/* 07B42C 7F0468BC C6060004 */ lwc1 $f6, 4($s0) +.Ljp7F0468C0: +/* 07B430 7F0468C0 C604000C */ lwc1 $f4, 0xc($s0) +/* 07B434 7F0468C4 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B438 7F0468C8 460E3282 */ mul.s $f10, $f6, $f14 +/* 07B43C 7F0468CC 00000000 */ nop +/* 07B440 7F0468D0 460E2202 */ mul.s $f8, $f4, $f14 +/* 07B444 7F0468D4 E60A0004 */ swc1 $f10, 4($s0) +/* 07B448 7F0468D8 E608000C */ swc1 $f8, 0xc($s0) +/* 07B44C 7F0468DC 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +.Ljp7F0468E0: +/* 07B450 7F0468E0 24840001 */ addiu $a0, $a0, 1 +.Ljp7F0468E4: +/* 07B454 7F0468E4 0083082A */ slt $at, $a0, $v1 +/* 07B458 7F0468E8 5420FFBC */ bnezl $at, .Ljp7F0467DC +/* 07B45C 7F0468EC C7AA069C */ lwc1 $f10, 0x69c($sp) +.Ljp7F0468F0: +/* 07B460 7F0468F0 02202025 */ move $a0, $s1 +/* 07B464 7F0468F4 27A5069C */ addiu $a1, $sp, 0x69c +/* 07B468 7F0468F8 27A60538 */ addiu $a2, $sp, 0x538 +/* 07B46C 7F0468FC 27A70544 */ addiu $a3, $sp, 0x544 +/* 07B470 7F046900 AFA00010 */ sw $zero, 0x10($sp) +/* 07B474 7F046904 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07B478 7F046908 AFA00014 */ sw $zero, 0x14($sp) +/* 07B47C 7F04690C 240C0001 */ li $t4, 1 +/* 07B480 7F046910 AFAC0698 */ sw $t4, 0x698($sp) +/* 07B484 7F046914 8E660010 */ lw $a2, 0x10($s3) +/* 07B488 7F046918 8E650008 */ lw $a1, 8($s3) +/* 07B48C 7F04691C 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 07B490 7F046920 8E640014 */ lw $a0, 0x14($s3) +/* 07B494 7F046924 46000506 */ mov.s $f20, $f0 +/* 07B498 7F046928 8FA40554 */ lw $a0, 0x554($sp) +/* 07B49C 7F04692C 0FC0FB2F */ jal sub_GAME_7F03E9BC +/* 07B4A0 7F046930 8FA50074 */ lw $a1, 0x74($sp) +/* 07B4A4 7F046934 3C018005 */ lui $at, %hi(D_80052ABC) # $at, 0x8005 +/* 07B4A8 7F046938 C42E2AEC */ lwc1 $f14, %lo(D_80052ABC)($at) +/* 07B4AC 7F04693C 4600A181 */ sub.s $f6, $f20, $f0 +/* 07B4B0 7F046940 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07B4B4 7F046944 44815000 */ mtc1 $at, $f10 +/* 07B4B8 7F046948 3C018005 */ lui $at, %hi(D_80052AC0) # $at, 0x8005 +/* 07B4BC 7F04694C 460A3300 */ add.s $f12, $f6, $f10 +/* 07B4C0 7F046950 E66C000C */ swc1 $f12, 0xc($s3) +/* 07B4C4 7F046954 E62C005C */ swc1 $f12, 0x5c($s1) +/* 07B4C8 7F046958 C6020004 */ lwc1 $f2, 4($s0) +/* 07B4CC 7F04695C 460E103C */ c.lt.s $f2, $f14 +/* 07B4D0 7F046960 00000000 */ nop +/* 07B4D4 7F046964 45000013 */ bc1f .Ljp7F0469B4 +/* 07B4D8 7F046968 00000000 */ nop +/* 07B4DC 7F04696C C4242AF0 */ lwc1 $f4, %lo(D_80052AC0)($at) +/* 07B4E0 7F046970 4602203C */ c.lt.s $f4, $f2 +/* 07B4E4 7F046974 00000000 */ nop +/* 07B4E8 7F046978 4500000E */ bc1f .Ljp7F0469B4 +/* 07B4EC 7F04697C 00000000 */ nop +/* 07B4F0 7F046980 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B4F4 7F046984 3C018005 */ lui $at, %hi(D_80052AC4) # $at, 0x8005 +/* 07B4F8 7F046988 460E003C */ c.lt.s $f0, $f14 +/* 07B4FC 7F04698C 00000000 */ nop +/* 07B500 7F046990 45000008 */ bc1f .Ljp7F0469B4 +/* 07B504 7F046994 00000000 */ nop +/* 07B508 7F046998 C4282AF4 */ lwc1 $f8, %lo(D_80052AC4)($at) +/* 07B50C 7F04699C 4600403C */ c.lt.s $f8, $f0 +/* 07B510 7F0469A0 00000000 */ nop +/* 07B514 7F0469A4 45000003 */ bc1f .Ljp7F0469B4 +/* 07B518 7F0469A8 00000000 */ nop +/* 07B51C 7F0469AC E616000C */ swc1 $f22, 0xc($s0) +/* 07B520 7F0469B0 E6160004 */ swc1 $f22, 4($s0) +.Ljp7F0469B4: +/* 07B524 7F0469B4 16400005 */ bnez $s2, .Ljp7F0469CC +/* 07B528 7F0469B8 00000000 */ nop +/* 07B52C 7F0469BC 8E0E0000 */ lw $t6, ($s0) +/* 07B530 7F0469C0 31CA0008 */ andi $t2, $t6, 8 +/* 07B534 7F0469C4 51400016 */ beql $t2, $zero, .Ljp7F046A20 +/* 07B538 7F0469C8 8FAB0698 */ lw $t3, 0x698($sp) +.Ljp7F0469CC: +/* 07B53C 7F0469CC 0FC0FF9C */ jal sub_GAME_7F03FB70 +/* 07B540 7F0469D0 02002025 */ move $a0, $s0 +/* 07B544 7F0469D4 8E2D0064 */ lw $t5, 0x64($s1) +/* 07B548 7F0469D8 2401FF7F */ li $at, -129 +/* 07B54C 7F0469DC AE20006C */ sw $zero, 0x6c($s1) +/* 07B550 7F0469E0 01A17824 */ and $t7, $t5, $at +/* 07B554 7F0469E4 AE2F0064 */ sw $t7, 0x64($s1) +/* 07B558 7F0469E8 92620001 */ lbu $v0, 1($s3) +/* 07B55C 7F0469EC 30590008 */ andi $t9, $v0, 8 +/* 07B560 7F0469F0 13200002 */ beqz $t9, .Ljp7F0469FC +/* 07B564 7F0469F4 34580010 */ ori $t8, $v0, 0x10 +/* 07B568 7F0469F8 A2780001 */ sb $t8, 1($s3) +.Ljp7F0469FC: +/* 07B56C 7F0469FC 92280003 */ lbu $t0, 3($s1) +/* 07B570 7F046A00 24010008 */ li $at, 8 +/* 07B574 7F046A04 55010006 */ bnel $t0, $at, .Ljp7F046A20 +/* 07B578 7F046A08 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B57C 7F046A0C 8E690014 */ lw $t1, 0x14($s3) +/* 07B580 7F046A10 82240080 */ lb $a0, 0x80($s1) +/* 07B584 7F046A14 0FC15F41 */ jal sub_GAME_7F0577E8 +/* 07B588 7F046A18 91250003 */ lbu $a1, 3($t1) +.Ljp7F046A1C: +/* 07B58C 7F046A1C 8FAB0698 */ lw $t3, 0x698($sp) +.Ljp7F046A20: +/* 07B590 7F046A20 1160000B */ beqz $t3, .Ljp7F046A50 +/* 07B594 7F046A24 262C0058 */ addiu $t4, $s1, 0x58 +/* 07B598 7F046A28 AFAC0074 */ sw $t4, 0x74($sp) +/* 07B59C 7F046A2C 0FC101E1 */ jal sub_GAME_7F040484 +/* 07B5A0 7F046A30 02202025 */ move $a0, $s1 +/* 07B5A4 7F046A34 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07B5A8 7F046A38 02202025 */ move $a0, $s1 +/* 07B5AC 7F046A3C 8E240010 */ lw $a0, 0x10($s1) +/* 07B5B0 7F046A40 0FC1016D */ jal sub_GAME_7F0402B4 +/* 07B5B4 7F046A44 2625007C */ addiu $a1, $s1, 0x7c +/* 07B5B8 7F046A48 0FC14832 */ jal detonate_proxmine_In_range +/* 07B5BC 7F046A4C 8FA40074 */ lw $a0, 0x74($sp) +.Ljp7F046A50: +/* 07B5C0 7F046A50 92220003 */ lbu $v0, 3($s1) +/* 07B5C4 7F046A54 24010001 */ li $at, 1 +/* 07B5C8 7F046A58 54410052 */ bnel $v0, $at, .Ljp7F046BA4 +/* 07B5CC 7F046A5C 24010006 */ li $at, 6 +/* 07B5D0 7F046A60 8E700004 */ lw $s0, 4($s3) +/* 07B5D4 7F046A64 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07B5D8 7F046A68 E7A60684 */ swc1 $f6, 0x684($sp) +/* 07B5DC 7F046A6C 8E0200EC */ lw $v0, 0xec($s0) +/* 07B5E0 7F046A70 58400013 */ blezl $v0, .Ljp7F046AC0 +/* 07B5E4 7F046A74 820800BC */ lb $t0, 0xbc($s0) +/* 07B5E8 7F046A78 820E00BC */ lb $t6, 0xbc($s0) +/* 07B5EC 7F046A7C 55C00010 */ bnezl $t6, .Ljp7F046AC0 +/* 07B5F0 7F046A80 820800BC */ lb $t0, 0xbc($s0) +/* 07B5F4 7F046A84 8E0A0008 */ lw $t2, 8($s0) +/* 07B5F8 7F046A88 3C0F8005 */ lui $t7, %hi(global_timer) # $t7, 0x8005 +/* 07B5FC 7F046A8C 000A6800 */ sll $t5, $t2, 0 +/* 07B600 7F046A90 05A2000B */ bltzl $t5, .Ljp7F046AC0 +/* 07B604 7F046A94 820800BC */ lb $t0, 0xbc($s0) +/* 07B608 7F046A98 8DEF83AC */ lw $t7, %lo(global_timer)($t7) +/* 07B60C 7F046A9C 8E1900A0 */ lw $t9, 0xa0($s0) +/* 07B610 7F046AA0 02002025 */ move $a0, $s0 +/* 07B614 7F046AA4 01F9C023 */ subu $t8, $t7, $t9 +/* 07B618 7F046AA8 0058082A */ slt $at, $v0, $t8 +/* 07B61C 7F046AAC 50200004 */ beql $at, $zero, .Ljp7F046AC0 +/* 07B620 7F046AB0 820800BC */ lb $t0, 0xbc($s0) +/* 07B624 7F046AB4 0FC153A1 */ jal set_door_state +/* 07B628 7F046AB8 24050002 */ li $a1, 2 +/* 07B62C 7F046ABC 820800BC */ lb $t0, 0xbc($s0) +.Ljp7F046AC0: +/* 07B630 7F046AC0 24010003 */ li $at, 3 +/* 07B634 7F046AC4 5501001B */ bnel $t0, $at, .Ljp7F046B34 +/* 07B638 7F046AC8 960B009A */ lhu $t3, 0x9a($s0) +/* 07B63C 7F046ACC 8E0200C8 */ lw $v0, 0xc8($s0) +/* 07B640 7F046AD0 24030001 */ li $v1, 1 +/* 07B644 7F046AD4 02002025 */ move $a0, $s0 +/* 07B648 7F046AD8 10400011 */ beqz $v0, .Ljp7F046B20 +/* 07B64C 7F046ADC 00000000 */ nop +/* 07B650 7F046AE0 1050000F */ beq $v0, $s0, .Ljp7F046B20 +/* 07B654 7F046AE4 00000000 */ nop +/* 07B658 7F046AE8 804900BC */ lb $t1, 0xbc($v0) +.Ljp7F046AEC: +/* 07B65C 7F046AEC 55200007 */ bnezl $t1, .Ljp7F046B0C +/* 07B660 7F046AF0 00001825 */ move $v1, $zero +/* 07B664 7F046AF4 C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 07B668 7F046AF8 460AB03C */ c.lt.s $f22, $f10 +/* 07B66C 7F046AFC 00000000 */ nop +/* 07B670 7F046B00 45020003 */ bc1fl .Ljp7F046B10 +/* 07B674 7F046B04 8C4200C8 */ lw $v0, 0xc8($v0) +/* 07B678 7F046B08 00001825 */ move $v1, $zero +.Ljp7F046B0C: +/* 07B67C 7F046B0C 8C4200C8 */ lw $v0, 0xc8($v0) +.Ljp7F046B10: +/* 07B680 7F046B10 10400003 */ beqz $v0, .Ljp7F046B20 +/* 07B684 7F046B14 00000000 */ nop +/* 07B688 7F046B18 5450FFF4 */ bnel $v0, $s0, .Ljp7F046AEC +/* 07B68C 7F046B1C 804900BC */ lb $t1, 0xbc($v0) +.Ljp7F046B20: +/* 07B690 7F046B20 50600004 */ beql $v1, $zero, .Ljp7F046B34 +/* 07B694 7F046B24 960B009A */ lhu $t3, 0x9a($s0) +/* 07B698 7F046B28 0FC15368 */ jal sub_GAME_7F0548A4 +/* 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 +/* 07B6B4 7F046B44 02002025 */ move $a0, $s0 +/* 07B6B8 7F046B48 10400007 */ beqz $v0, .Ljp7F046B68 +/* 07B6BC 7F046B4C 00000000 */ nop +/* 07B6C0 7F046B50 0FC0FA86 */ jal sub_GAME_7F03E718 +/* 07B6C4 7F046B54 02002025 */ move $a0, $s0 +/* 07B6C8 7F046B58 10400003 */ beqz $v0, .Ljp7F046B68 +/* 07B6CC 7F046B5C 00000000 */ nop +/* 07B6D0 7F046B60 0FC157A6 */ jal sub_GAME_7F05599C +/* 07B6D4 7F046B64 02602025 */ move $a0, $s3 +.Ljp7F046B68: +/* 07B6D8 7F046B68 3C0E8005 */ lui $t6, %hi(global_timer) # $t6, 0x8005 +/* 07B6DC 7F046B6C 8DCE83AC */ lw $t6, %lo(global_timer)($t6) +/* 07B6E0 7F046B70 8E0C00FC */ lw $t4, 0xfc($s0) +/* 07B6E4 7F046B74 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 07B6E8 7F046B78 018E082A */ slt $at, $t4, $t6 +/* 07B6EC 7F046B7C 14200004 */ bnez $at, .Ljp7F046B90 +/* 07B6F0 7F046B80 00000000 */ nop +/* 07B6F4 7F046B84 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 07B6F8 7F046B88 554006AA */ bnezl $t2, .Ljp7F048634 +/* 07B6FC 7F046B8C 92220003 */ lbu $v0, 3($s1) +.Ljp7F046B90: +/* 07B700 7F046B90 0FC1552C */ jal sub_GAME_7F054FB4 +/* 07B704 7F046B94 02002025 */ move $a0, $s0 +/* 07B708 7F046B98 100006A6 */ b .Ljp7F048634 +/* 07B70C 7F046B9C 92220003 */ lbu $v0, 3($s1) +/* 07B710 7F046BA0 24010006 */ li $at, 6 +.Ljp7F046BA4: +/* 07B714 7F046BA4 54410130 */ bnel $v0, $at, .Ljp7F047068 +/* 07B718 7F046BA8 2401000D */ li $at, 13 +/* 07B71C 7F046BAC 8E2D0008 */ lw $t5, 8($s1) +/* 07B720 7F046BB0 000D78C0 */ sll $t7, $t5, 3 +/* 07B724 7F046BB4 05E2012C */ bltzl $t7, .Ljp7F047068 +/* 07B728 7F046BB8 2401000D */ li $at, 13 +/* 07B72C 7F046BBC 8E700004 */ lw $s0, 4($s3) +/* 07B730 7F046BC0 8E1900D4 */ lw $t9, 0xd4($s0) +/* 07B734 7F046BC4 53200004 */ beql $t9, $zero, .Ljp7F046BD8 +/* 07B738 7F046BC8 C61200D0 */ lwc1 $f18, 0xd0($s0) +/* 07B73C 7F046BCC 10000002 */ b .Ljp7F046BD8 +/* 07B740 7F046BD0 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 07B744 7F046BD4 C61200D0 */ lwc1 $f18, 0xd0($s0) +.Ljp7F046BD8: +/* 07B748 7F046BD8 0FC2279B */ jal get_curplayer_positiondata +/* 07B74C 7F046BDC E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B750 7F046BE0 AFA20518 */ sw $v0, 0x518($sp) +/* 07B754 7F046BE4 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B758 7F046BE8 C4440008 */ lwc1 $f4, 8($v0) +/* 07B75C 7F046BEC C60000E8 */ lwc1 $f0, 0xe8($s0) +/* 07B760 7F046BF0 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B764 7F046BF4 46082301 */ sub.s $f12, $f4, $f8 +/* 07B768 7F046BF8 C446000C */ lwc1 $f6, 0xc($v0) +/* 07B76C 7F046BFC C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B770 7F046C00 4600B03C */ c.lt.s $f22, $f0 +/* 07B774 7F046C04 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B778 7F046C08 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B77C 7F046C0C 24120001 */ li $s2, 1 +/* 07B780 7F046C10 460A3081 */ sub.s $f2, $f6, $f10 +/* 07B784 7F046C14 4500000E */ bc1f .Ljp7F046C50 +/* 07B788 7F046C18 46082381 */ sub.s $f14, $f4, $f8 +/* 07B78C 7F046C1C 46000182 */ mul.s $f6, $f0, $f0 +/* 07B790 7F046C20 00000000 */ nop +/* 07B794 7F046C24 460C6282 */ mul.s $f10, $f12, $f12 +/* 07B798 7F046C28 00000000 */ nop +/* 07B79C 7F046C2C 46021102 */ mul.s $f4, $f2, $f2 +/* 07B7A0 7F046C30 46045200 */ add.s $f8, $f10, $f4 +/* 07B7A4 7F046C34 460E7282 */ mul.s $f10, $f14, $f14 +/* 07B7A8 7F046C38 460A4100 */ add.s $f4, $f8, $f10 +/* 07B7AC 7F046C3C 4604303C */ c.lt.s $f6, $f4 +/* 07B7B0 7F046C40 00000000 */ nop +/* 07B7B4 7F046C44 45000002 */ bc1f .Ljp7F046C50 +/* 07B7B8 7F046C48 00000000 */ nop +/* 07B7BC 7F046C4C 00009025 */ move $s2, $zero +.Ljp7F046C50: +/* 07B7C0 7F046C50 8E380008 */ lw $t8, 8($s1) +/* 07B7C4 7F046C54 00184080 */ sll $t0, $t8, 2 +/* 07B7C8 7F046C58 05010002 */ bgez $t0, .Ljp7F046C64 +/* 07B7CC 7F046C5C 00000000 */ nop +/* 07B7D0 7F046C60 00009025 */ move $s2, $zero +.Ljp7F046C64: +/* 07B7D4 7F046C64 1240003A */ beqz $s2, .Ljp7F046D50 +/* 07B7D8 7F046C68 00000000 */ nop +/* 07B7DC 7F046C6C 0FC16BD4 */ jal atan2f +/* 07B7E0 7F046C70 E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B7E4 7F046C74 C60200C8 */ lwc1 $f2, 0xc8($s0) +/* 07B7E8 7F046C78 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B7EC 7F046C7C 3C018005 */ lui $at, %hi(D_80052ACC) +/* 07B7F0 7F046C80 4616103C */ c.lt.s $f2, $f22 +/* 07B7F4 7F046C84 00000000 */ nop +/* 07B7F8 7F046C88 45000005 */ bc1f .Ljp7F046CA0 +/* 07B7FC 7F046C8C 00000000 */ nop +/* 07B800 7F046C90 3C018005 */ lui $at, %hi(D_80052AC8) # $at, 0x8005 +/* 07B804 7F046C94 C4342AF8 */ lwc1 $f20, %lo(D_80052AC8)($at) +/* 07B808 7F046C98 10000007 */ b .Ljp7F046CB8 +/* 07B80C 7F046C9C 46141080 */ add.s $f2, $f2, $f20 +.Ljp7F046CA0: +/* 07B810 7F046CA0 C4342AFC */ lwc1 $f20, %lo(D_80052ACC)($at) +/* 07B814 7F046CA4 4602A03E */ c.le.s $f20, $f2 +/* 07B818 7F046CA8 00000000 */ nop +/* 07B81C 7F046CAC 45020003 */ bc1fl .Ljp7F046CBC +/* 07B820 7F046CB0 C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 07B824 7F046CB4 46141081 */ sub.s $f2, $f2, $f20 +.Ljp7F046CB8: +/* 07B828 7F046CB8 C60800C4 */ lwc1 $f8, 0xc4($s0) +.Ljp7F046CBC: +/* 07B82C 7F046CBC 3C018005 */ lui $at, %hi(D_80052AD0) # $at, 0x8005 +/* 07B830 7F046CC0 46081080 */ add.s $f2, $f2, $f8 +/* 07B834 7F046CC4 4602A03E */ c.le.s $f20, $f2 +/* 07B838 7F046CC8 00000000 */ nop +/* 07B83C 7F046CCC 45020003 */ bc1fl .Ljp7F046CDC +/* 07B840 7F046CD0 4602003C */ c.lt.s $f0, $f2 +/* 07B844 7F046CD4 46141081 */ sub.s $f2, $f2, $f20 +/* 07B848 7F046CD8 4602003C */ c.lt.s $f0, $f2 +.Ljp7F046CDC: +/* 07B84C 7F046CDC 46020381 */ sub.s $f14, $f0, $f2 +/* 07B850 7F046CE0 45000002 */ bc1f .Ljp7F046CEC +/* 07B854 7F046CE4 46007306 */ mov.s $f12, $f14 +/* 07B858 7F046CE8 46147300 */ add.s $f12, $f14, $f20 +.Ljp7F046CEC: +/* 07B85C 7F046CEC C4202B00 */ lwc1 $f0, %lo(D_80052AD0)($at) +/* 07B860 7F046CF0 3C018005 */ lui $at, %hi(D_80052AD4) # $at, 0x8005 +/* 07B864 7F046CF4 46006301 */ sub.s $f12, $f12, $f0 +/* 07B868 7F046CF8 4616603C */ c.lt.s $f12, $f22 +/* 07B86C 7F046CFC 00000000 */ nop +/* 07B870 7F046D00 45020003 */ bc1fl .Ljp7F046D10 +/* 07B874 7F046D04 460C003C */ c.lt.s $f0, $f12 +/* 07B878 7F046D08 46146300 */ add.s $f12, $f12, $f20 +/* 07B87C 7F046D0C 460C003C */ c.lt.s $f0, $f12 +.Ljp7F046D10: +/* 07B880 7F046D10 00000000 */ nop +/* 07B884 7F046D14 45000002 */ bc1f .Ljp7F046D20 +/* 07B888 7F046D18 00000000 */ nop +/* 07B88C 7F046D1C 46146301 */ sub.s $f12, $f12, $f20 +.Ljp7F046D20: +/* 07B890 7F046D20 C42A2B04 */ lwc1 $f10, %lo(D_80052AD4)($at) +/* 07B894 7F046D24 3C018005 */ lui $at, %hi(D_80052AD8) +/* 07B898 7F046D28 460C503C */ c.lt.s $f10, $f12 +/* 07B89C 7F046D2C 00000000 */ nop +/* 07B8A0 7F046D30 45030007 */ bc1tl .Ljp7F046D50 +/* 07B8A4 7F046D34 00009025 */ move $s2, $zero +/* 07B8A8 7F046D38 C4262B08 */ lwc1 $f6, %lo(D_80052AD8)($at) +/* 07B8AC 7F046D3C 4606603C */ c.lt.s $f12, $f6 +/* 07B8B0 7F046D40 00000000 */ nop +/* 07B8B4 7F046D44 45000002 */ bc1f .Ljp7F046D50 +/* 07B8B8 7F046D48 00000000 */ nop +/* 07B8BC 7F046D4C 00009025 */ move $s2, $zero +.Ljp7F046D50: +/* 07B8C0 7F046D50 12400034 */ beqz $s2, .Ljp7F046E24 +/* 07B8C4 7F046D54 00002825 */ move $a1, $zero +/* 07B8C8 7F046D58 8E690014 */ lw $t1, 0x14($s3) +/* 07B8CC 7F046D5C E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B8D0 7F046D60 8FA40518 */ lw $a0, 0x518($sp) +/* 07B8D4 7F046D64 0FC229DD */ jal sub_GAME_7F08A03C +/* 07B8D8 7F046D68 AFA904F4 */ sw $t1, 0x4f4($sp) +/* 07B8DC 7F046D6C 8FA20518 */ lw $v0, 0x518($sp) +/* 07B8E0 7F046D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07B8E4 7F046D74 8E650008 */ lw $a1, 8($s3) +/* 07B8E8 7F046D78 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B8EC 7F046D7C 8E660010 */ lw $a2, 0x10($s3) +/* 07B8F0 7F046D80 8C470008 */ lw $a3, 8($v0) +/* 07B8F4 7F046D84 44814000 */ mtc1 $at, $f8 +/* 07B8F8 7F046D88 44815000 */ mtc1 $at, $f10 +/* 07B8FC 7F046D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B900 7F046D90 44813000 */ mtc1 $at, $f6 +/* 07B904 7F046D94 240B001B */ li $t3, 27 +/* 07B908 7F046D98 AFAB0014 */ sw $t3, 0x14($sp) +/* 07B90C 7F046D9C E7B60020 */ swc1 $f22, 0x20($sp) +/* 07B910 7F046DA0 27A404F4 */ addiu $a0, $sp, 0x4f4 +/* 07B914 7F046DA4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07B918 7F046DA8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07B91C 7F046DAC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 07B920 7F046DB0 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07B924 7F046DB4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 07B928 7F046DB8 10400015 */ beqz $v0, .Ljp7F046E10 +/* 07B92C 7F046DBC C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B930 7F046DC0 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 07B934 7F046DC4 8DCE83A4 */ lw $t6, %lo(clock_timer)($t6) +/* 07B938 7F046DC8 8E0C00E0 */ lw $t4, 0xe0($s0) +/* 07B93C 7F046DCC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 07B940 7F046DD0 44812000 */ mtc1 $at, $f4 +/* 07B944 7F046DD4 018E5021 */ addu $t2, $t4, $t6 +/* 07B948 7F046DD8 AE0A00E0 */ sw $t2, 0xe0($s0) +/* 07B94C 7F046DDC 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 07B950 7F046DE0 C4280B54 */ lwc1 $f8, %lo(D_80030B14)($at) +/* 07B954 7F046DE4 46082282 */ mul.s $f10, $f4, $f8 +/* 07B958 7F046DE8 4600518D */ trunc.w.s $f6, $f10 +/* 07B95C 7F046DEC 44193000 */ mfc1 $t9, $f6 +/* 07B960 7F046DF0 00000000 */ nop +/* 07B964 7F046DF4 0159082A */ slt $at, $t2, $t9 +/* 07B968 7F046DF8 54200006 */ bnezl $at, .Ljp7F046E14 +/* 07B96C 7F046DFC 8FA40518 */ lw $a0, 0x518($sp) +/* 07B970 7F046E00 0FC158B1 */ jal start_alarm +/* 07B974 7F046E04 E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B978 7F046E08 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B97C 7F046E0C AE0000E0 */ sw $zero, 0xe0($s0) +.Ljp7F046E10: +/* 07B980 7F046E10 8FA40518 */ lw $a0, 0x518($sp) +.Ljp7F046E14: +/* 07B984 7F046E14 24050001 */ li $a1, 1 +/* 07B988 7F046E18 0FC229DD */ jal sub_GAME_7F08A03C +/* 07B98C 7F046E1C E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B990 7F046E20 C7B2051C */ lwc1 $f18, 0x51c($sp) +.Ljp7F046E24: +/* 07B994 7F046E24 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B998 7F046E28 4612703C */ c.lt.s $f14, $f18 +/* 07B99C 7F046E2C 00000000 */ nop +/* 07B9A0 7F046E30 45020047 */ bc1fl .Ljp7F046F50 +/* 07B9A4 7F046E34 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9A8 7F046E38 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9AC 7F046E3C 3C018005 */ lui $at, %hi(D_80052AE0) # $at, 0x8005 +/* 07B9B0 7F046E40 C4302B10 */ lwc1 $f16, %lo(D_80052AE0)($at) +/* 07B9B4 7F046E44 46000102 */ mul.s $f4, $f0, $f0 +/* 07B9B8 7F046E48 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B9BC 7F046E4C 44814000 */ mtc1 $at, $f8 +/* 07B9C0 7F046E50 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B9C4 7F046E54 46082282 */ mul.s $f10, $f4, $f8 +/* 07B9C8 7F046E58 46105083 */ div.s $f2, $f10, $f16 +/* 07B9CC 7F046E5C 46029181 */ sub.s $f6, $f18, $f2 +/* 07B9D0 7F046E60 460E303E */ c.le.s $f6, $f14 +/* 07B9D4 7F046E64 00000000 */ nop +/* 07B9D8 7F046E68 4502000F */ bc1fl .Ljp7F046EA8 +/* 07B9DC 7F046E6C C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B9E0 7F046E70 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B9E4 7F046E74 46048202 */ mul.s $f8, $f16, $f4 +/* 07B9E8 7F046E78 46080281 */ sub.s $f10, $f0, $f8 +/* 07B9EC 7F046E7C E60A00D8 */ swc1 $f10, 0xd8($s0) +/* 07B9F0 7F046E80 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9F4 7F046E84 4610003C */ c.lt.s $f0, $f16 +/* 07B9F8 7F046E88 00000000 */ nop +/* 07B9FC 7F046E8C 45000003 */ bc1f .Ljp7F046E9C +/* 07BA00 7F046E90 00000000 */ nop +/* 07BA04 7F046E94 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07BA08 7F046E98 C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046E9C: +/* 07BA0C 7F046E9C 1000001D */ b .Ljp7F046F14 +/* 07BA10 7F046EA0 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07BA14 7F046EA4 C60C00DC */ lwc1 $f12, 0xdc($s0) +.Ljp7F046EA8: +/* 07BA18 7F046EA8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BA1C 7F046EAC 460C003C */ c.lt.s $f0, $f12 +/* 07BA20 7F046EB0 00000000 */ nop +/* 07BA24 7F046EB4 45000017 */ bc1f .Ljp7F046F14 +/* 07BA28 7F046EB8 00000000 */ nop +/* 07BA2C 7F046EBC C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07BA30 7F046EC0 46068102 */ mul.s $f4, $f16, $f6 +/* 07BA34 7F046EC4 46040080 */ add.s $f2, $f0, $f4 +/* 07BA38 7F046EC8 4602603C */ c.lt.s $f12, $f2 +/* 07BA3C 7F046ECC 00000000 */ nop +/* 07BA40 7F046ED0 45000002 */ bc1f .Ljp7F046EDC +/* 07BA44 7F046ED4 00000000 */ nop +/* 07BA48 7F046ED8 46006086 */ mov.s $f2, $f12 +.Ljp7F046EDC: +/* 07BA4C 7F046EDC 46021202 */ mul.s $f8, $f2, $f2 +/* 07BA50 7F046EE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BA54 7F046EE4 44815000 */ mtc1 $at, $f10 +/* 07BA58 7F046EE8 00000000 */ nop +/* 07BA5C 7F046EEC 460A4182 */ mul.s $f6, $f8, $f10 +/* 07BA60 7F046EF0 46103103 */ div.s $f4, $f6, $f16 +/* 07BA64 7F046EF4 46049201 */ sub.s $f8, $f18, $f4 +/* 07BA68 7F046EF8 4608703C */ c.lt.s $f14, $f8 +/* 07BA6C 7F046EFC 00000000 */ nop +/* 07BA70 7F046F00 45000004 */ bc1f .Ljp7F046F14 +/* 07BA74 7F046F04 00000000 */ nop +/* 07BA78 7F046F08 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07BA7C 7F046F0C C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BA80 7F046F10 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.Ljp7F046F14: +/* 07BA84 7F046F14 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BA88 7F046F18 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07BA8C 7F046F1C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07BA90 7F046F20 46067100 */ add.s $f4, $f14, $f6 +/* 07BA94 7F046F24 E60400C8 */ swc1 $f4, 0xc8($s0) +/* 07BA98 7F046F28 C60800C8 */ lwc1 $f8, 0xc8($s0) +/* 07BA9C 7F046F2C 4608903E */ c.le.s $f18, $f8 +/* 07BAA0 7F046F30 00000000 */ nop +/* 07BAA4 7F046F34 450205BF */ bc1fl .Ljp7F048634 +/* 07BAA8 7F046F38 92220003 */ lbu $v0, 3($s1) +/* 07BAAC 7F046F3C E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07BAB0 7F046F40 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07BAB4 7F046F44 100005BA */ b .Ljp7F048630 +/* 07BAB8 7F046F48 AE0000D4 */ sw $zero, 0xd4($s0) +/* 07BABC 7F046F4C C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046F50: +/* 07BAC0 7F046F50 3C018005 */ lui $at, %hi(D_80052AE4) # $at, 0x8005 +/* 07BAC4 7F046F54 C4302B14 */ lwc1 $f16, %lo(D_80052AE4)($at) +/* 07BAC8 7F046F58 46000282 */ mul.s $f10, $f0, $f0 +/* 07BACC 7F046F5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BAD0 7F046F60 44813000 */ mtc1 $at, $f6 +/* 07BAD4 7F046F64 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BAD8 7F046F68 24180001 */ li $t8, 1 +/* 07BADC 7F046F6C 46065102 */ mul.s $f4, $f10, $f6 +/* 07BAE0 7F046F70 46102083 */ div.s $f2, $f4, $f16 +/* 07BAE4 7F046F74 46029200 */ add.s $f8, $f18, $f2 +/* 07BAE8 7F046F78 4608703E */ c.le.s $f14, $f8 +/* 07BAEC 7F046F7C 00000000 */ nop +/* 07BAF0 7F046F80 4502000F */ bc1fl .Ljp7F046FC0 +/* 07BAF4 7F046F84 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07BAF8 7F046F88 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07BAFC 7F046F8C 460A8182 */ mul.s $f6, $f16, $f10 +/* 07BB00 7F046F90 46060101 */ sub.s $f4, $f0, $f6 +/* 07BB04 7F046F94 E60400D8 */ swc1 $f4, 0xd8($s0) +/* 07BB08 7F046F98 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BB0C 7F046F9C 4610003C */ c.lt.s $f0, $f16 +/* 07BB10 7F046FA0 00000000 */ nop +/* 07BB14 7F046FA4 45000003 */ bc1f .Ljp7F046FB4 +/* 07BB18 7F046FA8 00000000 */ nop +/* 07BB1C 7F046FAC E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07BB20 7F046FB0 C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046FB4: +/* 07BB24 7F046FB4 1000001D */ b .Ljp7F04702C +/* 07BB28 7F046FB8 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07BB2C 7F046FBC C60C00DC */ lwc1 $f12, 0xdc($s0) +.Ljp7F046FC0: +/* 07BB30 7F046FC0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BB34 7F046FC4 460C003C */ c.lt.s $f0, $f12 +/* 07BB38 7F046FC8 00000000 */ nop +/* 07BB3C 7F046FCC 45000017 */ bc1f .Ljp7F04702C +/* 07BB40 7F046FD0 00000000 */ nop +/* 07BB44 7F046FD4 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07BB48 7F046FD8 46088282 */ mul.s $f10, $f16, $f8 +/* 07BB4C 7F046FDC 460A0080 */ add.s $f2, $f0, $f10 +/* 07BB50 7F046FE0 4602603C */ c.lt.s $f12, $f2 +/* 07BB54 7F046FE4 00000000 */ nop +/* 07BB58 7F046FE8 45000002 */ bc1f .Ljp7F046FF4 +/* 07BB5C 7F046FEC 00000000 */ nop +/* 07BB60 7F046FF0 46006086 */ mov.s $f2, $f12 +.Ljp7F046FF4: +/* 07BB64 7F046FF4 46021182 */ mul.s $f6, $f2, $f2 +/* 07BB68 7F046FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BB6C 7F046FFC 44812000 */ mtc1 $at, $f4 +/* 07BB70 7F047000 00000000 */ nop +/* 07BB74 7F047004 46043202 */ mul.s $f8, $f6, $f4 +/* 07BB78 7F047008 46104283 */ div.s $f10, $f8, $f16 +/* 07BB7C 7F04700C 460A9180 */ add.s $f6, $f18, $f10 +/* 07BB80 7F047010 460E303C */ c.lt.s $f6, $f14 +/* 07BB84 7F047014 00000000 */ nop +/* 07BB88 7F047018 45000004 */ bc1f .Ljp7F04702C +/* 07BB8C 7F04701C 00000000 */ nop +/* 07BB90 7F047020 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07BB94 7F047024 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BB98 7F047028 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.Ljp7F04702C: +/* 07BB9C 7F04702C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BBA0 7F047030 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07BBA4 7F047034 46040202 */ mul.s $f8, $f0, $f4 +/* 07BBA8 7F047038 46087281 */ sub.s $f10, $f14, $f8 +/* 07BBAC 7F04703C E60A00C8 */ swc1 $f10, 0xc8($s0) +/* 07BBB0 7F047040 C60600C8 */ lwc1 $f6, 0xc8($s0) +/* 07BBB4 7F047044 4612303E */ c.le.s $f6, $f18 +/* 07BBB8 7F047048 00000000 */ nop +/* 07BBBC 7F04704C 45020579 */ bc1fl .Ljp7F048634 +/* 07BBC0 7F047050 92220003 */ lbu $v0, 3($s1) +/* 07BBC4 7F047054 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07BBC8 7F047058 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07BBCC 7F04705C 10000574 */ b .Ljp7F048630 +/* 07BBD0 7F047060 AE1800D4 */ sw $t8, 0xd4($s0) +/* 07BBD4 7F047064 2401000D */ li $at, 13 +.Ljp7F047068: +/* 07BBD8 7F047068 5441023F */ bnel $v0, $at, .Ljp7F047968 +/* 07BBDC 7F04706C 24010027 */ li $at, 39 +/* 07BBE0 7F047070 8E280008 */ lw $t0, 8($s1) +/* 07BBE4 7F047074 000848C0 */ sll $t1, $t0, 3 +/* 07BBE8 7F047078 0522023B */ bltzl $t1, .Ljp7F047968 +/* 07BBEC 7F04707C 24010027 */ li $at, 39 +/* 07BBF0 7F047080 0FC2279B */ jal get_curplayer_positiondata +/* 07BBF4 7F047084 8E700004 */ lw $s0, 4($s3) +/* 07BBF8 7F047088 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07BBFC 7F04708C AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BC00 7F047090 AFA004A8 */ sw $zero, 0x4a8($sp) +/* 07BC04 7F047094 8E23000C */ lw $v1, 0xc($s1) +/* 07BC08 7F047098 00409025 */ move $s2, $v0 +/* 07BC0C 7F04709C 00035800 */ sll $t3, $v1, 0 +/* 07BC10 7F0470A0 05610056 */ bgez $t3, .Ljp7F0471FC +/* 07BC14 7F0470A4 00036040 */ sll $t4, $v1, 1 +/* 07BC18 7F0470A8 05830008 */ bgezl $t4, .Ljp7F0470CC +/* 07BC1C 7F0470AC C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BC20 7F0470B0 C6080090 */ lwc1 $f8, 0x90($s0) +/* 07BC24 7F0470B4 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BC28 7F0470B8 E6080084 */ swc1 $f8, 0x84($s0) +/* 07BC2C 7F0470BC C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BC30 7F0470C0 10000036 */ b .Ljp7F04719C +/* 07BC34 7F0470C4 E6040098 */ swc1 $f4, 0x98($s0) +/* 07BC38 7F0470C8 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F0470CC: +/* 07BC3C 7F0470CC C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07BC40 7F0470D0 460A1032 */ c.eq.s $f2, $f10 +/* 07BC44 7F0470D4 00000000 */ nop +/* 07BC48 7F0470D8 45000030 */ bc1f .Ljp7F04719C +/* 07BC4C 7F0470DC 00000000 */ nop +/* 07BC50 7F0470E0 C6060098 */ lwc1 $f6, 0x98($s0) +/* 07BC54 7F0470E4 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BC58 7F0470E8 46043032 */ c.eq.s $f6, $f4 +/* 07BC5C 7F0470EC 00000000 */ nop +/* 07BC60 7F0470F0 4500002A */ bc1f .Ljp7F04719C +/* 07BC64 7F0470F4 00000000 */ nop +/* 07BC68 7F0470F8 0C002918 */ jal get_random_value +/* 07BC6C 7F0470FC 00000000 */ nop +/* 07BC70 7F047100 44824000 */ mtc1 $v0, $f8 +/* 07BC74 7F047104 3C018005 */ lui $at, %hi(D_80052AE8) # $at, 0x8005 +/* 07BC78 7F047108 C4342B18 */ lwc1 $f20, %lo(D_80052AE8)($at) +/* 07BC7C 7F04710C 04410005 */ bgez $v0, .Ljp7F047124 +/* 07BC80 7F047110 468042A0 */ cvt.s.w $f10, $f8 +/* 07BC84 7F047114 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07BC88 7F047118 44813000 */ mtc1 $at, $f6 +/* 07BC8C 7F04711C 00000000 */ nop +/* 07BC90 7F047120 46065280 */ add.s $f10, $f10, $f6 +.Ljp7F047124: +/* 07BC94 7F047124 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07BC98 7F047128 44812000 */ mtc1 $at, $f4 +/* 07BC9C 7F04712C 3C01421C */ li $at, 0x421C0000 # 39.000000 +/* 07BCA0 7F047130 44813000 */ mtc1 $at, $f6 +/* 07BCA4 7F047134 46045202 */ mul.s $f8, $f10, $f4 +/* 07BCA8 7F047138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07BCAC 7F04713C 44812000 */ mtc1 $at, $f4 +/* 07BCB0 7F047140 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07BCB4 7F047144 46064282 */ mul.s $f10, $f8, $f6 +/* 07BCB8 7F047148 46045200 */ add.s $f8, $f10, $f4 +/* 07BCBC 7F04714C 44815000 */ mtc1 $at, $f10 +/* 07BCC0 7F047150 46144182 */ mul.s $f6, $f8, $f20 +/* 07BCC4 7F047154 460A3103 */ div.s $f4, $f6, $f10 +/* 07BCC8 7F047158 0C002918 */ jal get_random_value +/* 07BCCC 7F04715C E6040098 */ swc1 $f4, 0x98($s0) +/* 07BCD0 7F047160 44824000 */ mtc1 $v0, $f8 +/* 07BCD4 7F047164 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07BCD8 7F047168 04410004 */ bgez $v0, .Ljp7F04717C +/* 07BCDC 7F04716C 468041A0 */ cvt.s.w $f6, $f8 +/* 07BCE0 7F047170 44815000 */ mtc1 $at, $f10 +/* 07BCE4 7F047174 00000000 */ nop +/* 07BCE8 7F047178 460A3180 */ add.s $f6, $f6, $f10 +.Ljp7F04717C: +/* 07BCEC 7F04717C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07BCF0 7F047180 44812000 */ mtc1 $at, $f4 +/* 07BCF4 7F047184 00000000 */ nop +/* 07BCF8 7F047188 46043202 */ mul.s $f8, $f6, $f4 +/* 07BCFC 7F04718C 00000000 */ nop +/* 07BD00 7F047190 46144282 */ mul.s $f10, $f8, $f20 +/* 07BD04 7F047194 E60A0084 */ swc1 $f10, 0x84($s0) +/* 07BD08 7F047198 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F04719C: +/* 07BD0C 7F04719C 3C018005 */ lui $at, %hi(D_80052AEC) # $at, 0x8005 +/* 07BD10 7F0471A0 C4202B1C */ lwc1 $f0, %lo(D_80052AEC)($at) +/* 07BD14 7F0471A4 3C018005 */ lui $at, %hi(D_80052AF4) # $at, 0x8005 +/* 07BD18 7F0471A8 C4262B24 */ lwc1 $f6, %lo(D_80052AF4)($at) +/* 07BD1C 7F0471AC 44051000 */ mfc1 $a1, $f2 +/* 07BD20 7F0471B0 44070000 */ mfc1 $a3, $f0 +/* 07BD24 7F0471B4 26040090 */ addiu $a0, $s0, 0x90 +/* 07BD28 7F0471B8 26060094 */ addiu $a2, $s0, 0x94 +/* 07BD2C 7F0471BC E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD30 7F0471C0 0FC10D03 */ jal sub_GAME_7F04310C +/* 07BD34 7F0471C4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07BD38 7F0471C8 3C018005 */ lui $at, %hi(D_80052AF8) # $at, 0x8005 +/* 07BD3C 7F0471CC C4202B28 */ lwc1 $f0, %lo(D_80052AF8)($at) +/* 07BD40 7F0471D0 3C018005 */ lui $at, %hi(D_80052AFC) # $at, 0x8005 +/* 07BD44 7F0471D4 C4242B2C */ lwc1 $f4, %lo(D_80052AFC)($at) +/* 07BD48 7F0471D8 8E050098 */ lw $a1, 0x98($s0) +/* 07BD4C 7F0471DC 44070000 */ mfc1 $a3, $f0 +/* 07BD50 7F0471E0 2604009C */ addiu $a0, $s0, 0x9c +/* 07BD54 7F0471E4 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07BD58 7F0471E8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD5C 7F0471EC 0FC10D03 */ jal sub_GAME_7F04310C +/* 07BD60 7F0471F0 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07BD64 7F0471F4 1000050F */ b .Ljp7F048634 +/* 07BD68 7F0471F8 92220003 */ lbu $v0, 3($s1) +.Ljp7F0471FC: +/* 07BD6C 7F0471FC C6480008 */ lwc1 $f8, 8($s2) +/* 07BD70 7F047200 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07BD74 7F047204 C646000C */ lwc1 $f6, 0xc($s2) +/* 07BD78 7F047208 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07BD7C 7F04720C 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BD80 7F047210 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 07BD84 7F047214 44815000 */ mtc1 $at, $f10 +/* 07BD88 7F047218 46043201 */ sub.s $f8, $f6, $f4 +/* 07BD8C 7F04721C 460A4181 */ sub.s $f6, $f8, $f10 +/* 07BD90 7F047220 46000282 */ mul.s $f10, $f0, $f0 +/* 07BD94 7F047224 E7A604C4 */ swc1 $f6, 0x4c4($sp) +/* 07BD98 7F047228 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07BD9C 7F04722C C6440010 */ lwc1 $f4, 0x10($s2) +/* 07BDA0 7F047230 E7A004C8 */ swc1 $f0, 0x4c8($sp) +/* 07BDA4 7F047234 46082081 */ sub.s $f2, $f4, $f8 +/* 07BDA8 7F047238 46021182 */ mul.s $f6, $f2, $f2 +/* 07BDAC 7F04723C E7A204C0 */ swc1 $f2, 0x4c0($sp) +/* 07BDB0 7F047240 46065500 */ add.s $f20, $f10, $f6 +/* 07BDB4 7F047244 E7B404BC */ swc1 $f20, 0x4bc($sp) +/* 07BDB8 7F047248 0C007E08 */ jal sqrtf +/* 07BDBC 7F04724C 4600A306 */ mov.s $f12, $f20 +/* 07BDC0 7F047250 E7A004B4 */ swc1 $f0, 0x4b4($sp) +/* 07BDC4 7F047254 8E2E0008 */ lw $t6, 8($s1) +/* 07BDC8 7F047258 46000086 */ mov.s $f2, $f0 +/* 07BDCC 7F04725C 000E5100 */ sll $t2, $t6, 4 +/* 07BDD0 7F047260 05430008 */ bgezl $t2, .Ljp7F047284 +/* 07BDD4 7F047264 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +/* 07BDD8 7F047268 C7A004C4 */ lwc1 $f0, 0x4c4($sp) +/* 07BDDC 7F04726C 46000102 */ mul.s $f4, $f0, $f0 +/* 07BDE0 7F047270 4604A300 */ add.s $f12, $f20, $f4 +/* 07BDE4 7F047274 0C007E08 */ jal sqrtf +/* 07BDE8 7F047278 E7AC04BC */ swc1 $f12, 0x4bc($sp) +/* 07BDEC 7F04727C 46000086 */ mov.s $f2, $f0 +/* 07BDF0 7F047280 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +.Ljp7F047284: +/* 07BDF4 7F047284 0FC0B553 */ jal sub_GAME_7F02D244 +/* 07BDF8 7F047288 E7A204B8 */ swc1 $f2, 0x4b8($sp) +/* 07BDFC 7F04728C E7A004A4 */ swc1 $f0, 0x4a4($sp) +/* 07BE00 7F047290 C6080098 */ lwc1 $f8, 0x98($s0) +/* 07BE04 7F047294 C6100084 */ lwc1 $f16, 0x84($s0) +/* 07BE08 7F047298 C7A204B8 */ lwc1 $f2, 0x4b8($sp) +/* 07BE0C 7F04729C E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 07BE10 7F0472A0 C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 07BE14 7F0472A4 460A103E */ c.le.s $f2, $f10 +/* 07BE18 7F0472A8 00000000 */ nop +/* 07BE1C 7F0472AC 45020096 */ bc1fl .Ljp7F047508 +/* 07BE20 7F0472B0 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BE24 7F0472B4 C7AC04C8 */ lwc1 $f12, 0x4c8($sp) +/* 07BE28 7F0472B8 C7AE04C0 */ lwc1 $f14, 0x4c0($sp) +/* 07BE2C 7F0472BC 0FC16BD4 */ jal atan2f +/* 07BE30 7F0472C0 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BE34 7F0472C4 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07BE38 7F0472C8 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) +/* 07BE3C 7F0472CC 0FC16BD4 */ jal atan2f +/* 07BE40 7F0472D0 C7AE04B4 */ lwc1 $f14, 0x4b4($sp) +/* 07BE44 7F0472D4 E7A0049C */ swc1 $f0, 0x49c($sp) +/* 07BE48 7F0472D8 8E220008 */ lw $v0, 8($s1) +/* 07BE4C 7F0472DC C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BE50 7F0472E0 24190001 */ li $t9, 1 +/* 07BE54 7F0472E4 00027840 */ sll $t7, $v0, 1 +/* 07BE58 7F0472E8 05E00003 */ bltz $t7, .Ljp7F0472F8 +/* 07BE5C 7F0472EC 00026880 */ sll $t5, $v0, 2 +/* 07BE60 7F0472F0 05A10005 */ bgez $t5, .Ljp7F047308 +/* 07BE64 7F0472F4 C7A604A0 */ lwc1 $f6, 0x4a0($sp) +.Ljp7F0472F8: +/* 07BE68 7F0472F8 3C018005 */ lui $at, %hi(D_80052B00) # $at, 0x8005 +/* 07BE6C 7F0472FC C4342B30 */ lwc1 $f20, %lo(D_80052B00)($at) +/* 07BE70 7F047300 10000027 */ b .Ljp7F0473A0 +/* 07BE74 7F047304 AFB904B0 */ sw $t9, 0x4b0($sp) +.Ljp7F047308: +/* 07BE78 7F047308 C6040090 */ lwc1 $f4, 0x90($s0) +/* 07BE7C 7F04730C 3C018005 */ lui $at, %hi(D_80052B04) # $at, 0x8005 +/* 07BE80 7F047310 46043301 */ sub.s $f12, $f6, $f4 +/* 07BE84 7F047314 4616603C */ c.lt.s $f12, $f22 +/* 07BE88 7F047318 00000000 */ nop +/* 07BE8C 7F04731C 45000003 */ bc1f .Ljp7F04732C +/* 07BE90 7F047320 00000000 */ nop +/* 07BE94 7F047324 C4342B34 */ lwc1 $f20, %lo(D_80052B04)($at) +/* 07BE98 7F047328 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F04732C: +/* 07BE9C 7F04732C 3C018005 */ lui $at, %hi(D_80052B08) # $at, 0x8005 +/* 07BEA0 7F047330 C4342B38 */ lwc1 $f20, %lo(D_80052B08)($at) +/* 07BEA4 7F047334 3C018005 */ lui $at, %hi(D_80052B0C) # $at, 0x8005 +/* 07BEA8 7F047338 C4282B3C */ lwc1 $f8, %lo(D_80052B0C)($at) +/* 07BEAC 7F04733C 3C018005 */ lui $at, %hi(D_80052B10) # $at, 0x8005 +/* 07BEB0 7F047340 460C403C */ c.lt.s $f8, $f12 +/* 07BEB4 7F047344 00000000 */ nop +/* 07BEB8 7F047348 45020003 */ bc1fl .Ljp7F047358 +/* 07BEBC 7F04734C C60A009C */ lwc1 $f10, 0x9c($s0) +/* 07BEC0 7F047350 46146301 */ sub.s $f12, $f12, $f20 +/* 07BEC4 7F047354 C60A009C */ lwc1 $f10, 0x9c($s0) +.Ljp7F047358: +/* 07BEC8 7F047358 460A0081 */ sub.s $f2, $f0, $f10 +/* 07BECC 7F04735C 4616103C */ c.lt.s $f2, $f22 +/* 07BED0 7F047360 00000000 */ nop +/* 07BED4 7F047364 45000001 */ bc1f .Ljp7F04736C +/* 07BED8 7F047368 00000000 */ nop +.Ljp7F04736C: +/* 07BEDC 7F04736C C4262B40 */ lwc1 $f6, %lo(D_80052B10)($at) +/* 07BEE0 7F047370 3C018005 */ lui $at, %hi(D_80052B14) # $at, 0x8005 +/* 07BEE4 7F047374 4606603C */ c.lt.s $f12, $f6 +/* 07BEE8 7F047378 00000000 */ nop +/* 07BEEC 7F04737C 45020009 */ bc1fl .Ljp7F0473A4 +/* 07BEF0 7F047380 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BEF4 7F047384 C4242B44 */ lwc1 $f4, %lo(D_80052B14)($at) +/* 07BEF8 7F047388 24180001 */ li $t8, 1 +/* 07BEFC 7F04738C 460C203C */ c.lt.s $f4, $f12 +/* 07BF00 7F047390 00000000 */ nop +/* 07BF04 7F047394 45020003 */ bc1fl .Ljp7F0473A4 +/* 07BF08 7F047398 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BF0C 7F04739C AFB804B0 */ sw $t8, 0x4b0($sp) +.Ljp7F0473A0: +/* 07BF10 7F0473A0 8FA804B0 */ lw $t0, 0x4b0($sp) +.Ljp7F0473A4: +/* 07BF14 7F0473A4 C7A804A0 */ lwc1 $f8, 0x4a0($sp) +/* 07BF18 7F0473A8 02402025 */ move $a0, $s2 +/* 07BF1C 7F0473AC 11000055 */ beqz $t0, .Ljp7F047504 +/* 07BF20 7F0473B0 00002825 */ move $a1, $zero +/* 07BF24 7F0473B4 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 07BF28 7F0473B8 3C018005 */ lui $at, %hi(D_80052B18) # $at, 0x8005 +/* 07BF2C 7F0473BC C4262B48 */ lwc1 $f6, %lo(D_80052B18)($at) +/* 07BF30 7F0473C0 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BF34 7F0473C4 8E690014 */ lw $t1, 0x14($s3) +/* 07BF38 7F0473C8 3C018005 */ lui $at, %hi(D_80052B1C) # $at, 0x8005 +/* 07BF3C 7F0473CC 4606003C */ c.lt.s $f0, $f6 +/* 07BF40 7F0473D0 AFA90494 */ sw $t1, 0x494($sp) +/* 07BF44 7F0473D4 45000003 */ bc1f .Ljp7F0473E4 +/* 07BF48 7F0473D8 00000000 */ nop +/* 07BF4C 7F0473DC 10000007 */ b .Ljp7F0473FC +/* 07BF50 7F0473E0 46140000 */ add.s $f0, $f0, $f20 +.Ljp7F0473E4: +/* 07BF54 7F0473E4 C4242B4C */ lwc1 $f4, %lo(D_80052B1C)($at) +/* 07BF58 7F0473E8 4600203E */ c.le.s $f4, $f0 +/* 07BF5C 7F0473EC 00000000 */ nop +/* 07BF60 7F0473F0 45020003 */ bc1fl .Ljp7F047400 +/* 07BF64 7F0473F4 E7A00498 */ swc1 $f0, 0x498($sp) +/* 07BF68 7F0473F8 46140001 */ sub.s $f0, $f0, $f20 +.Ljp7F0473FC: +/* 07BF6C 7F0473FC E7A00498 */ swc1 $f0, 0x498($sp) +.Ljp7F047400: +/* 07BF70 7F047400 0FC229DD */ jal sub_GAME_7F08A03C +/* 07BF74 7F047404 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BF78 7F047408 C7A00498 */ lwc1 $f0, 0x498($sp) +/* 07BF7C 7F04740C C6080088 */ lwc1 $f8, 0x88($s0) +/* 07BF80 7F047410 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BF84 7F047414 4608003E */ c.le.s $f0, $f8 +/* 07BF88 7F047418 00000000 */ nop +/* 07BF8C 7F04741C 45020027 */ bc1fl .Ljp7F0474BC +/* 07BF90 7F047420 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF94 7F047424 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 07BF98 7F047428 240B001B */ li $t3, 27 +/* 07BF9C 7F04742C 4600503E */ c.le.s $f10, $f0 +/* 07BFA0 7F047430 00000000 */ nop +/* 07BFA4 7F047434 45020021 */ bc1fl .Ljp7F0474BC +/* 07BFA8 7F047438 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BFAC 7F04743C C6460010 */ lwc1 $f6, 0x10($s2) +/* 07BFB0 7F047440 8E650008 */ lw $a1, 8($s3) +/* 07BFB4 7F047444 8E660010 */ lw $a2, 0x10($s3) +/* 07BFB8 7F047448 8E470008 */ lw $a3, 8($s2) +/* 07BFBC 7F04744C AFAB0014 */ sw $t3, 0x14($sp) +/* 07BFC0 7F047450 E7A60010 */ swc1 $f6, 0x10($sp) +/* 07BFC4 7F047454 C660000C */ lwc1 $f0, 0xc($s3) +/* 07BFC8 7F047458 27A40494 */ addiu $a0, $sp, 0x494 +/* 07BFCC 7F04745C E7A00018 */ swc1 $f0, 0x18($sp) +/* 07BFD0 7F047460 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07BFD4 7F047464 C642000C */ lwc1 $f2, 0xc($s2) +/* 07BFD8 7F047468 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BFDC 7F04746C E7A20020 */ swc1 $f2, 0x20($sp) +/* 07BFE0 7F047470 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07BFE4 7F047474 E7A20024 */ swc1 $f2, 0x24($sp) +/* 07BFE8 7F047478 1040000F */ beqz $v0, .Ljp7F0474B8 +/* 07BFEC 7F04747C C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BFF0 7F047480 8FAC0494 */ lw $t4, 0x494($sp) +/* 07BFF4 7F047484 8E4E0014 */ lw $t6, 0x14($s2) +/* 07BFF8 7F047488 558E000C */ bnel $t4, $t6, .Ljp7F0474BC +/* 07BFFC 7F04748C 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C000 7F047490 8E2A0008 */ lw $t2, 8($s1) +/* 07C004 7F047494 3C012000 */ lui $at, 0x2000 +/* 07C008 7F047498 240D0001 */ li $t5, 1 +/* 07C00C 7F04749C 01417825 */ or $t7, $t2, $at +/* 07C010 7F0474A0 AE2F0008 */ sw $t7, 8($s1) +/* 07C014 7F0474A4 C7A4049C */ lwc1 $f4, 0x49c($sp) +/* 07C018 7F0474A8 AFAD04A8 */ sw $t5, 0x4a8($sp) +/* 07C01C 7F0474AC C7B004A0 */ lwc1 $f16, 0x4a0($sp) +/* 07C020 7F0474B0 1000000F */ b .Ljp7F0474F0 +/* 07C024 7F0474B4 E7A404D8 */ swc1 $f4, 0x4d8($sp) +.Ljp7F0474B8: +/* 07C028 7F0474B8 8E0200B8 */ lw $v0, 0xb8($s0) +.Ljp7F0474BC: +/* 07C02C 7F0474BC 3C198005 */ lui $t9, %hi(global_timer) # $t9, 0x8005 +/* 07C030 7F0474C0 0442000B */ bltzl $v0, .Ljp7F0474F0 +/* 07C034 7F0474C4 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07C038 7F0474C8 8F3983AC */ lw $t9, %lo(global_timer)($t9) +/* 07C03C 7F0474CC 2738FF88 */ addiu $t8, $t9, -0x78 +/* 07C040 7F0474D0 0302082A */ slt $at, $t8, $v0 +/* 07C044 7F0474D4 50200006 */ beql $at, $zero, .Ljp7F0474F0 +/* 07C048 7F0474D8 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07C04C 7F0474DC C608009C */ lwc1 $f8, 0x9c($s0) +/* 07C050 7F0474E0 C6100090 */ lwc1 $f16, 0x90($s0) +/* 07C054 7F0474E4 10000002 */ b .Ljp7F0474F0 +/* 07C058 7F0474E8 E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 07C05C 7F0474EC AFA004B0 */ sw $zero, 0x4b0($sp) +.Ljp7F0474F0: +/* 07C060 7F0474F0 02402025 */ move $a0, $s2 +/* 07C064 7F0474F4 24050001 */ li $a1, 1 +/* 07C068 7F0474F8 0FC229DD */ jal sub_GAME_7F08A03C +/* 07C06C 7F0474FC E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C070 7F047500 C7B004DC */ lwc1 $f16, 0x4dc($sp) +.Ljp7F047504: +/* 07C074 7F047504 8FA804B0 */ lw $t0, 0x4b0($sp) +.Ljp7F047508: +/* 07C078 7F047508 3C018005 */ lui $at, %hi(D_80052B20) # $at, 0x8005 +/* 07C07C 7F04750C C4342B50 */ lwc1 $f20, %lo(D_80052B20)($at) +/* 07C080 7F047510 51000007 */ beql $t0, $zero, .Ljp7F047530 +/* 07C084 7F047514 8E0900D0 */ lw $t1, 0xd0($s0) +/* 07C088 7F047518 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +/* 07C08C 7F04751C 0FC0B553 */ jal sub_GAME_7F02D244 +/* 07C090 7F047520 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C094 7F047524 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C098 7F047528 E7A004A4 */ swc1 $f0, 0x4a4($sp) +/* 07C09C 7F04752C 8E0900D0 */ lw $t1, 0xd0($s0) +.Ljp7F047530: +/* 07C0A0 7F047530 1120001F */ beqz $t1, .Ljp7F0475B0 +/* 07C0A4 7F047534 3C0B8005 */ lui $t3, %hi(global_timer) # $t3, 0x8005 +/* 07C0A8 7F047538 8D6B83AC */ lw $t3, %lo(global_timer)($t3) +/* 07C0AC 7F04753C 24010078 */ li $at, 120 +/* 07C0B0 7F047540 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C0B4 7F047544 0161001A */ div $zero, $t3, $at +/* 07C0B8 7F047548 00006010 */ mfhi $t4 +/* 07C0BC 7F04754C 448C5000 */ mtc1 $t4, $f10 +/* 07C0C0 7F047550 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 07C0C4 7F047554 44814000 */ mtc1 $at, $f8 +/* 07C0C8 7F047558 468051A0 */ cvt.s.w $f6, $f10 +/* 07C0CC 7F04755C 46143102 */ mul.s $f4, $f6, $f20 +/* 07C0D0 7F047560 0FC160F3 */ jal sinf +/* 07C0D4 7F047564 46082303 */ div.s $f12, $f4, $f8 +/* 07C0D8 7F047568 3C018005 */ lui $at, %hi(D_80052B24) # $at, 0x8005 +/* 07C0DC 7F04756C C4262B54 */ lwc1 $f6, %lo(D_80052B24)($at) +/* 07C0E0 7F047570 C7AA04A4 */ lwc1 $f10, 0x4a4($sp) +/* 07C0E4 7F047574 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C0E8 7F047578 46065102 */ mul.s $f4, $f10, $f6 +/* 07C0EC 7F04757C 00000000 */ nop +/* 07C0F0 7F047580 46002202 */ mul.s $f8, $f4, $f0 +/* 07C0F4 7F047584 46088400 */ add.s $f16, $f16, $f8 +/* 07C0F8 7F047588 4616803C */ c.lt.s $f16, $f22 +/* 07C0FC 7F04758C 00000000 */ nop +/* 07C100 7F047590 45000002 */ bc1f .Ljp7F04759C +/* 07C104 7F047594 00000000 */ nop +/* 07C108 7F047598 46148400 */ add.s $f16, $f16, $f20 +.Ljp7F04759C: +/* 07C10C 7F04759C 4610A03E */ c.le.s $f20, $f16 +/* 07C110 7F0475A0 00000000 */ nop +/* 07C114 7F0475A4 45020003 */ bc1fl .Ljp7F0475B4 +/* 07C118 7F0475A8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07C11C 7F0475AC 46148401 */ sub.s $f16, $f16, $f20 +.Ljp7F0475B0: +/* 07C120 7F0475B0 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F0475B4: +/* 07C124 7F0475B4 3C018005 */ lui $at, %hi(D_80052B28) # $at, 0x8005 +/* 07C128 7F0475B8 C42A2B58 */ lwc1 $f10, %lo(D_80052B28)($at) +/* 07C12C 7F0475BC 46028001 */ sub.s $f0, $f16, $f2 +/* 07C130 7F0475C0 26040090 */ addiu $a0, $s0, 0x90 +/* 07C134 7F0475C4 460A003C */ c.lt.s $f0, $f10 +/* 07C138 7F0475C8 00000000 */ nop +/* 07C13C 7F0475CC 45000003 */ bc1f .Ljp7F0475DC +/* 07C140 7F0475D0 00000000 */ nop +/* 07C144 7F0475D4 10000008 */ b .Ljp7F0475F8 +/* 07C148 7F0475D8 46140000 */ add.s $f0, $f0, $f20 +.Ljp7F0475DC: +/* 07C14C 7F0475DC 3C018005 */ lui $at, %hi(D_80052B2C) # $at, 0x8005 +/* 07C150 7F0475E0 C4262B5C */ lwc1 $f6, %lo(D_80052B2C)($at) +/* 07C154 7F0475E4 4600303E */ c.le.s $f6, $f0 +/* 07C158 7F0475E8 00000000 */ nop +/* 07C15C 7F0475EC 45020003 */ bc1fl .Ljp7F0475FC +/* 07C160 7F0475F0 C60C0088 */ lwc1 $f12, 0x88($s0) +/* 07C164 7F0475F4 46140001 */ sub.s $f0, $f0, $f20 +.Ljp7F0475F8: +/* 07C168 7F0475F8 C60C0088 */ lwc1 $f12, 0x88($s0) +.Ljp7F0475FC: +/* 07C16C 7F0475FC 3C018005 */ lui $at, %hi(D_80052B30) # $at, 0x8005 +/* 07C170 7F047600 4600603C */ c.lt.s $f12, $f0 +/* 07C174 7F047604 00000000 */ nop +/* 07C178 7F047608 45020004 */ bc1fl .Ljp7F04761C +/* 07C17C 7F04760C C60C008C */ lwc1 $f12, 0x8c($s0) +/* 07C180 7F047610 10000007 */ b .Ljp7F047630 +/* 07C184 7F047614 460C1400 */ add.s $f16, $f2, $f12 +/* 07C188 7F047618 C60C008C */ lwc1 $f12, 0x8c($s0) +.Ljp7F04761C: +/* 07C18C 7F04761C 460C003C */ c.lt.s $f0, $f12 +/* 07C190 7F047620 00000000 */ nop +/* 07C194 7F047624 45020003 */ bc1fl .Ljp7F047634 +/* 07C198 7F047628 4616803C */ c.lt.s $f16, $f22 +/* 07C19C 7F04762C 460C1400 */ add.s $f16, $f2, $f12 +.Ljp7F047630: +/* 07C1A0 7F047630 4616803C */ c.lt.s $f16, $f22 +.Ljp7F047634: +/* 07C1A4 7F047634 00000000 */ nop +/* 07C1A8 7F047638 45020003 */ bc1fl .Ljp7F047648 +/* 07C1AC 7F04763C 4610A03E */ c.le.s $f20, $f16 +/* 07C1B0 7F047640 46148400 */ add.s $f16, $f16, $f20 +/* 07C1B4 7F047644 4610A03E */ c.le.s $f20, $f16 +.Ljp7F047648: +/* 07C1B8 7F047648 00000000 */ nop +/* 07C1BC 7F04764C 45000002 */ bc1f .Ljp7F047658 +/* 07C1C0 7F047650 00000000 */ nop +/* 07C1C4 7F047654 46148401 */ sub.s $f16, $f16, $f20 +.Ljp7F047658: +/* 07C1C8 7F047658 C4202B60 */ lwc1 $f0, %lo(D_80052B30)($at) +/* 07C1CC 7F04765C 44058000 */ mfc1 $a1, $f16 +/* 07C1D0 7F047660 26060094 */ addiu $a2, $s0, 0x94 +/* 07C1D4 7F047664 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07C1D8 7F047668 C60400A4 */ lwc1 $f4, 0xa4($s0) +/* 07C1DC 7F04766C 44070000 */ mfc1 $a3, $f0 +/* 07C1E0 7F047670 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C1E4 7F047674 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C1E8 7F047678 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07C1EC 7F04767C 3C018005 */ lui $at, %hi(D_80052B34) # $at, 0x8005 +/* 07C1F0 7F047680 C4202B64 */ lwc1 $f0, %lo(D_80052B34)($at) +/* 07C1F4 7F047684 2604009C */ addiu $a0, $s0, 0x9c +/* 07C1F8 7F047688 8FA504D8 */ lw $a1, 0x4d8($sp) +/* 07C1FC 7F04768C E7A00010 */ swc1 $f0, 0x10($sp) +/* 07C200 7F047690 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 07C204 7F047694 44070000 */ mfc1 $a3, $f0 +/* 07C208 7F047698 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07C20C 7F04769C 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C210 7F0476A0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 07C214 7F0476A4 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C218 7F0476A8 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07C21C 7F0476AC 3C018005 */ lui $at, %hi(D_80052B38) # $at, 0x8005 +/* 07C220 7F0476B0 C7A604D8 */ lwc1 $f6, 0x4d8($sp) +/* 07C224 7F0476B4 460A8301 */ sub.s $f12, $f16, $f10 +/* 07C228 7F0476B8 4616603C */ c.lt.s $f12, $f22 +/* 07C22C 7F0476BC 00000000 */ nop +/* 07C230 7F0476C0 45000002 */ bc1f .Ljp7F0476CC +/* 07C234 7F0476C4 00000000 */ nop +/* 07C238 7F0476C8 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F0476CC: +/* 07C23C 7F0476CC C4202B68 */ lwc1 $f0, %lo(D_80052B38)($at) +/* 07C240 7F0476D0 460C003C */ c.lt.s $f0, $f12 +/* 07C244 7F0476D4 00000000 */ nop +/* 07C248 7F0476D8 45020003 */ bc1fl .Ljp7F0476E8 +/* 07C24C 7F0476DC C604009C */ lwc1 $f4, 0x9c($s0) +/* 07C250 7F0476E0 46146301 */ sub.s $f12, $f12, $f20 +/* 07C254 7F0476E4 C604009C */ lwc1 $f4, 0x9c($s0) +.Ljp7F0476E8: +/* 07C258 7F0476E8 46043081 */ sub.s $f2, $f6, $f4 +/* 07C25C 7F0476EC 4616103C */ c.lt.s $f2, $f22 +/* 07C260 7F0476F0 00000000 */ nop +/* 07C264 7F0476F4 45020003 */ bc1fl .Ljp7F047704 +/* 07C268 7F0476F8 4602003C */ c.lt.s $f0, $f2 +/* 07C26C 7F0476FC 46141080 */ add.s $f2, $f2, $f20 +/* 07C270 7F047700 4602003C */ c.lt.s $f0, $f2 +.Ljp7F047704: +/* 07C274 7F047704 00000000 */ nop +/* 07C278 7F047708 45020003 */ bc1fl .Ljp7F047718 +/* 07C27C 7F04770C AE0000D0 */ sw $zero, 0xd0($s0) +/* 07C280 7F047710 46141081 */ sub.s $f2, $f2, $f20 +/* 07C284 7F047714 AE0000D0 */ sw $zero, 0xd0($s0) +.Ljp7F047718: +/* 07C288 7F047718 8FAE04B0 */ lw $t6, 0x4b0($sp) +/* 07C28C 7F04771C C7A804A4 */ lwc1 $f8, 0x4a4($sp) +/* 07C290 7F047720 51C00047 */ beql $t6, $zero, .Ljp7F047840 +/* 07C294 7F047724 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C298 7F047728 4608603C */ c.lt.s $f12, $f8 +/* 07C29C 7F04772C C7AA04A4 */ lwc1 $f10, 0x4a4($sp) +/* 07C2A0 7F047730 4502001B */ bc1fl .Ljp7F0477A0 +/* 07C2A4 7F047734 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2A8 7F047738 46004007 */ neg.s $f0, $f8 +/* 07C2AC 7F04773C 460C003C */ c.lt.s $f0, $f12 +/* 07C2B0 7F047740 00000000 */ nop +/* 07C2B4 7F047744 45020016 */ bc1fl .Ljp7F0477A0 +/* 07C2B8 7F047748 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2BC 7F04774C 4608103C */ c.lt.s $f2, $f8 +/* 07C2C0 7F047750 00000000 */ nop +/* 07C2C4 7F047754 45020012 */ bc1fl .Ljp7F0477A0 +/* 07C2C8 7F047758 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2CC 7F04775C 4602003C */ c.lt.s $f0, $f2 +/* 07C2D0 7F047760 240A0001 */ li $t2, 1 +/* 07C2D4 7F047764 4502000E */ bc1fl .Ljp7F0477A0 +/* 07C2D8 7F047768 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2DC 7F04776C AE0A00D0 */ sw $t2, 0xd0($s0) +/* 07C2E0 7F047770 8FAD04A8 */ lw $t5, 0x4a8($sp) +/* 07C2E4 7F047774 240F0001 */ li $t7, 1 +/* 07C2E8 7F047778 AFAF04AC */ sw $t7, 0x4ac($sp) +/* 07C2EC 7F04777C 11A0002F */ beqz $t5, .Ljp7F04783C +/* 07C2F0 7F047780 3C198005 */ lui $t9, %hi(global_timer) # $t9, 0x8005 +/* 07C2F4 7F047784 8F3983AC */ lw $t9, %lo(global_timer)($t9) +/* 07C2F8 7F047788 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 07C2FC 7F04778C AE1900B8 */ sw $t9, 0xb8($s0) +/* 07C300 7F047790 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 07C304 7F047794 10000029 */ b .Ljp7F04783C +/* 07C308 7F047798 AE1800BC */ sw $t8, 0xbc($s0) +/* 07C30C 7F04779C 460A5000 */ add.s $f0, $f10, $f10 +.Ljp7F0477A0: +/* 07C310 7F0477A0 4600603C */ c.lt.s $f12, $f0 +/* 07C314 7F0477A4 00000000 */ nop +/* 07C318 7F0477A8 45020018 */ bc1fl .Ljp7F04780C +/* 07C31C 7F0477AC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C320 7F0477B0 46000387 */ neg.s $f14, $f0 +/* 07C324 7F0477B4 460C703C */ c.lt.s $f14, $f12 +/* 07C328 7F0477B8 00000000 */ nop +/* 07C32C 7F0477BC 45020013 */ bc1fl .Ljp7F04780C +/* 07C330 7F0477C0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C334 7F0477C4 4600103C */ c.lt.s $f2, $f0 +/* 07C338 7F0477C8 00000000 */ nop +/* 07C33C 7F0477CC 4502000F */ bc1fl .Ljp7F04780C +/* 07C340 7F0477D0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C344 7F0477D4 4602703C */ c.lt.s $f14, $f2 +/* 07C348 7F0477D8 24080001 */ li $t0, 1 +/* 07C34C 7F0477DC 4502000B */ bc1fl .Ljp7F04780C +/* 07C350 7F0477E0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C354 7F0477E4 AE0800D0 */ sw $t0, 0xd0($s0) +/* 07C358 7F0477E8 8FAB04A8 */ lw $t3, 0x4a8($sp) +/* 07C35C 7F0477EC 24090001 */ li $t1, 1 +/* 07C360 7F0477F0 AFA904AC */ sw $t1, 0x4ac($sp) +/* 07C364 7F0477F4 11600011 */ beqz $t3, .Ljp7F04783C +/* 07C368 7F0477F8 3C0C8005 */ lui $t4, %hi(global_timer) # $t4, 0x8005 +/* 07C36C 7F0477FC 8D8C83AC */ lw $t4, %lo(global_timer)($t4) +/* 07C370 7F047800 1000000E */ b .Ljp7F04783C +/* 07C374 7F047804 AE0C00B8 */ sw $t4, 0xb8($s0) +/* 07C378 7F047808 8E0200B8 */ lw $v0, 0xb8($s0) +.Ljp7F04780C: +/* 07C37C 7F04780C 3C0E8005 */ lui $t6, %hi(global_timer) # $t6, 0x8005 +/* 07C380 7F047810 0442000B */ bltzl $v0, .Ljp7F047840 +/* 07C384 7F047814 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C388 7F047818 8DCE83AC */ lw $t6, %lo(global_timer)($t6) +/* 07C38C 7F04781C 240F0001 */ li $t7, 1 +/* 07C390 7F047820 240D0001 */ li $t5, 1 +/* 07C394 7F047824 25CAFF88 */ addiu $t2, $t6, -0x78 +/* 07C398 7F047828 0142082A */ slt $at, $t2, $v0 +/* 07C39C 7F04782C 50200004 */ beql $at, $zero, .Ljp7F047840 +/* 07C3A0 7F047830 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C3A4 7F047834 AE0F00D0 */ sw $t7, 0xd0($s0) +/* 07C3A8 7F047838 AFAD04AC */ sw $t5, 0x4ac($sp) +.Ljp7F04783C: +/* 07C3AC 7F04783C 8FB904AC */ lw $t9, 0x4ac($sp) +.Ljp7F047840: +/* 07C3B0 7F047840 3C018005 */ lui $at, %hi(D_80052B3C) # $at, 0x8005 +/* 07C3B4 7F047844 53200013 */ beql $t9, $zero, .Ljp7F047894 +/* 07C3B8 7F047848 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C3BC 7F04784C C4202B6C */ lwc1 $f0, %lo(D_80052B3C)($at) +/* 07C3C0 7F047850 3C018005 */ lui $at, %hi(D_80052B40) # $at, 0x8005 +/* 07C3C4 7F047854 C4262B70 */ lwc1 $f6, %lo(D_80052B40)($at) +/* 07C3C8 7F047858 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C3CC 7F04785C C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C3D0 7F047860 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 07C3D4 7F047864 46043202 */ mul.s $f8, $f6, $f4 +/* 07C3D8 7F047868 46085180 */ add.s $f6, $f10, $f8 +/* 07C3DC 7F04786C E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07C3E0 7F047870 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C3E4 7F047874 4602003C */ c.lt.s $f0, $f2 +/* 07C3E8 7F047878 00000000 */ nop +/* 07C3EC 7F04787C 45020023 */ bc1fl .Ljp7F04790C +/* 07C3F0 7F047880 4602B03C */ c.lt.s $f22, $f2 +/* 07C3F4 7F047884 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 07C3F8 7F047888 1000001F */ b .Ljp7F047908 +/* 07C3FC 7F04788C C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C400 7F047890 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F047894: +/* 07C404 7F047894 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07C408 7F047898 4602B03C */ c.lt.s $f22, $f2 +/* 07C40C 7F04789C 00000000 */ nop +/* 07C410 7F0478A0 4502001A */ bc1fl .Ljp7F04790C +/* 07C414 7F0478A4 4602B03C */ c.lt.s $f22, $f2 +/* 07C418 7F0478A8 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07C41C 7F0478AC 00001025 */ move $v0, $zero +/* 07C420 7F0478B0 3C018005 */ lui $at, %hi(D_80052B44) # $at, 0x8005 +/* 07C424 7F0478B4 1B00000C */ blez $t8, .Ljp7F0478E8 +/* 07C428 7F0478B8 00000000 */ nop +/* 07C42C 7F0478BC C4202B74 */ lwc1 $f0, %lo(D_80052B44)($at) +/* 07C430 7F0478C0 C60400B0 */ lwc1 $f4, 0xb0($s0) +.Ljp7F0478C4: +/* 07C434 7F0478C4 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 07C438 7F0478C8 24420001 */ addiu $v0, $v0, 1 +/* 07C43C 7F0478CC 46002282 */ mul.s $f10, $f4, $f0 +/* 07C440 7F0478D0 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07C444 7F0478D4 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 07C448 7F0478D8 0048082A */ slt $at, $v0, $t0 +/* 07C44C 7F0478DC 5420FFF9 */ bnezl $at, .Ljp7F0478C4 +/* 07C450 7F0478E0 C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 07C454 7F0478E4 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F0478E8: +/* 07C458 7F0478E8 3C018005 */ lui $at, %hi(D_80052B48) # $at, 0x8005 +/* 07C45C 7F0478EC C4282B78 */ lwc1 $f8, %lo(D_80052B48)($at) +/* 07C460 7F0478F0 4608103E */ c.le.s $f2, $f8 +/* 07C464 7F0478F4 00000000 */ nop +/* 07C468 7F0478F8 45020004 */ bc1fl .Ljp7F04790C +/* 07C46C 7F0478FC 4602B03C */ c.lt.s $f22, $f2 +/* 07C470 7F047900 E61600B0 */ swc1 $f22, 0xb0($s0) +/* 07C474 7F047904 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F047908: +/* 07C478 7F047908 4602B03C */ c.lt.s $f22, $f2 +.Ljp7F04790C: +/* 07C47C 7F04790C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C480 7F047910 45020348 */ bc1fl .Ljp7F048634 +/* 07C484 7F047914 92220003 */ lbu $v0, 3($s1) +/* 07C488 7F047918 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C48C 7F04791C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07C490 7F047920 46041282 */ mul.s $f10, $f2, $f4 +/* 07C494 7F047924 460A3200 */ add.s $f8, $f6, $f10 +/* 07C498 7F047928 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07C49C 7F04792C C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C4A0 7F047930 4600A03E */ c.le.s $f20, $f0 +/* 07C4A4 7F047934 00000000 */ nop +/* 07C4A8 7F047938 4502033E */ bc1fl .Ljp7F048634 +/* 07C4AC 7F04793C 92220003 */ lbu $v0, 3($s1) +/* 07C4B0 7F047940 46140101 */ sub.s $f4, $f0, $f20 +.Ljp7F047944: +/* 07C4B4 7F047944 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 07C4B8 7F047948 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C4BC 7F04794C 4600A03E */ c.le.s $f20, $f0 +/* 07C4C0 7F047950 00000000 */ nop +/* 07C4C4 7F047954 4503FFFB */ bc1tl .Ljp7F047944 +/* 07C4C8 7F047958 46140101 */ sub.s $f4, $f0, $f20 +/* 07C4CC 7F04795C 10000335 */ b .Ljp7F048634 +/* 07C4D0 7F047960 92220003 */ lbu $v0, 3($s1) +/* 07C4D4 7F047964 24010027 */ li $at, 39 +.Ljp7F047968: +/* 07C4D8 7F047968 14410255 */ bne $v0, $at, .Ljp7F0482C0 +/* 07C4DC 7F04796C 02202025 */ move $a0, $s1 +/* 07C4E0 7F047970 C62600A0 */ lwc1 $f6, 0xa0($s1) +/* 07C4E4 7F047974 AFA0047C */ sw $zero, 0x47c($sp) +/* 07C4E8 7F047978 24050001 */ li $a1, 1 +/* 07C4EC 7F04797C 0FC0D5E1 */ jal parse_handle_actionblocks +/* 07C4F0 7F047980 E7A60480 */ swc1 $f6, 0x480($sp) +/* 07C4F4 7F047984 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C4F8 7F047988 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C4FC 7F04798C 460EB03E */ c.le.s $f22, $f14 +/* 07C500 7F047990 00000000 */ nop +/* 07C504 7F047994 45020016 */ bc1fl .Ljp7F0479F0 +/* 07C508 7F047998 8E29000C */ lw $t1, 0xc($s1) +/* 07C50C 7F04799C C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C510 7F0479A0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C514 7F0479A4 4602703E */ c.le.s $f14, $f2 +/* 07C518 7F0479A8 00000000 */ nop +/* 07C51C 7F0479AC 45020006 */ bc1fl .Ljp7F0479C8 +/* 07C520 7F0479B0 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07C524 7F0479B4 C62A0094 */ lwc1 $f10, 0x94($s1) +/* 07C528 7F0479B8 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C52C 7F0479BC 10000008 */ b .Ljp7F0479E0 +/* 07C530 7F0479C0 E62A0088 */ swc1 $f10, 0x88($s1) +/* 07C534 7F0479C4 C6200088 */ lwc1 $f0, 0x88($s1) +.Ljp7F0479C8: +/* 07C538 7F0479C8 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C53C 7F0479CC 46004101 */ sub.s $f4, $f8, $f0 +/* 07C540 7F0479D0 46022182 */ mul.s $f6, $f4, $f2 +/* 07C544 7F0479D4 460E3283 */ div.s $f10, $f6, $f14 +/* 07C548 7F0479D8 460A0200 */ add.s $f8, $f0, $f10 +/* 07C54C 7F0479DC E6280088 */ swc1 $f8, 0x88($s1) +.Ljp7F0479E0: +/* 07C550 7F0479E0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C554 7F0479E4 46047181 */ sub.s $f6, $f14, $f4 +/* 07C558 7F0479E8 E6260098 */ swc1 $f6, 0x98($s1) +/* 07C55C 7F0479EC 8E29000C */ lw $t1, 0xc($s1) +.Ljp7F0479F0: +/* 07C560 7F0479F0 00008025 */ move $s0, $zero +/* 07C564 7F0479F4 00095B00 */ sll $t3, $t1, 0xc +/* 07C568 7F0479F8 05600014 */ bltz $t3, .Ljp7F047A4C +/* 07C56C 7F0479FC 00000000 */ nop +/* 07C570 7F047A00 0FC13CCE */ jal check_if_object_has_not_been_destroyed +/* 07C574 7F047A04 02202025 */ move $a0, $s1 +/* 07C578 7F047A08 10400010 */ beqz $v0, .Ljp7F047A4C +/* 07C57C 7F047A0C 00000000 */ nop +/* 07C580 7F047A10 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C584 7F047A14 26240058 */ addiu $a0, $s1, 0x58 +/* 07C588 7F047A18 3C0544FA */ lui $a1, 0x44fa +/* 07C58C 7F047A1C 460AB03C */ c.lt.s $f22, $f10 +/* 07C590 7F047A20 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b +/* 07C594 7F047A24 45010006 */ bc1t .Ljp7F047A40 +/* 07C598 7F047A28 00000000 */ nop +/* 07C59C 7F047A2C C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C5A0 7F047A30 4608B03C */ c.lt.s $f22, $f8 +/* 07C5A4 7F047A34 00000000 */ nop +/* 07C5A8 7F047A38 45000004 */ bc1f .Ljp7F047A4C +/* 07C5AC 7F047A3C 00000000 */ nop +.Ljp7F047A40: +/* 07C5B0 7F047A40 0FC14F64 */ jal sub_GAME_7F053894 +/* 07C5B4 7F047A44 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07C5B8 7F047A48 00408025 */ move $s0, $v0 +.Ljp7F047A4C: +/* 07C5BC 7F047A4C 5A000019 */ blezl $s0, .Ljp7F047AB4 +/* 07C5C0 7F047A50 8E2400AC */ lw $a0, 0xac($s1) +/* 07C5C4 7F047A54 8E2400AC */ lw $a0, 0xac($s1) +/* 07C5C8 7F047A58 10800005 */ beqz $a0, .Ljp7F047A70 +/* 07C5CC 7F047A5C 00000000 */ nop +/* 07C5D0 7F047A60 0C002380 */ jal sfxGetArg0Unk3F +/* 07C5D4 7F047A64 00000000 */ nop +/* 07C5D8 7F047A68 5440000A */ bnezl $v0, .Ljp7F047A94 +/* 07C5DC 7F047A6C 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047A70: +/* 07C5E0 7F047A70 0FC3021B */ jal get_controls_locked_flag +/* 07C5E4 7F047A74 00000000 */ nop +/* 07C5E8 7F047A78 14400005 */ bnez $v0, .Ljp7F047A90 +/* 07C5EC 7F047A7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07C5F0 7F047A80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C5F4 7F047A84 24050041 */ li $a1, 65 +/* 07C5F8 7F047A88 0C002386 */ jal play_sfx_a1 +/* 07C5FC 7F047A8C 262600AC */ addiu $a2, $s1, 0xac +.Ljp7F047A90: +/* 07C600 7F047A90 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047A94: +/* 07C604 7F047A94 24050008 */ li $a1, 8 +/* 07C608 7F047A98 5080000F */ beql $a0, $zero, .Ljp7F047AD8 +/* 07C60C 7F047A9C 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C610 7F047AA0 0C002465 */ jal sfx_c_70009184 +/* 07C614 7F047AA4 02003025 */ move $a2, $s0 +/* 07C618 7F047AA8 1000000B */ b .Ljp7F047AD8 +/* 07C61C 7F047AAC 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C620 7F047AB0 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047AB4: +/* 07C624 7F047AB4 50800008 */ beql $a0, $zero, .Ljp7F047AD8 +/* 07C628 7F047AB8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C62C 7F047ABC 0C002380 */ jal sfxGetArg0Unk3F +/* 07C630 7F047AC0 00000000 */ nop +/* 07C634 7F047AC4 50400004 */ beql $v0, $zero, .Ljp7F047AD8 +/* 07C638 7F047AC8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C63C 7F047ACC 0C00240C */ jal sfxDeactivate +/* 07C640 7F047AD0 8E2400AC */ lw $a0, 0xac($s1) +/* 07C644 7F047AD4 8E2400A4 */ lw $a0, 0xa4($s1) +.Ljp7F047AD8: +/* 07C648 7F047AD8 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) # $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(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d40 +/* 07C660 7F047AF0 000E5080 */ sll $t2, $t6, 2 +/* 07C664 7F047AF4 018A1021 */ addu $v0, $t4, $t2 +/* 07C668 7F047AF8 8C4F0000 */ lw $t7, ($v0) +/* 07C66C 7F047AFC 8CB90000 */ lw $t9, ($a1) +/* 07C670 7F047B00 8CA90018 */ lw $t1, 0x18($a1) +/* 07C674 7F047B04 000F6900 */ sll $t5, $t7, 4 +/* 07C678 7F047B08 01B91821 */ addu $v1, $t5, $t9 +/* 07C67C 7F047B0C 8C780000 */ lw $t8, ($v1) +/* 07C680 7F047B10 C6260058 */ lwc1 $f6, 0x58($s1) +/* 07C684 7F047B14 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07C688 7F047B18 00184080 */ sll $t0, $t8, 2 +/* 07C68C 7F047B1C 01184023 */ subu $t0, $t0, $t8 +/* 07C690 7F047B20 00084080 */ sll $t0, $t0, 2 +/* 07C694 7F047B24 01184023 */ subu $t0, $t0, $t8 +/* 07C698 7F047B28 00084080 */ sll $t0, $t0, 2 +/* 07C69C 7F047B2C 01093021 */ addu $a2, $t0, $t1 +/* 07C6A0 7F047B30 C4C40000 */ lwc1 $f4, ($a2) +/* 07C6A4 7F047B34 C4CA0008 */ lwc1 $f10, 8($a2) +/* 07C6A8 7F047B38 AFA6047C */ sw $a2, 0x47c($sp) +/* 07C6AC 7F047B3C 46062301 */ sub.s $f12, $f4, $f6 +/* 07C6B0 7F047B40 0FC16BD4 */ jal atan2f +/* 07C6B4 7F047B44 46085381 */ sub.s $f14, $f10, $f8 +/* 07C6B8 7F047B48 E7A00480 */ swc1 $f0, 0x480($sp) +/* 07C6BC 7F047B4C 8E2B0008 */ lw $t3, 8($s1) +/* 07C6C0 7F047B50 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C6C4 7F047B54 C7A40480 */ lwc1 $f4, 0x480($sp) +/* 07C6C8 7F047B58 000B7080 */ sll $t6, $t3, 2 +/* 07C6CC 7F047B5C 05C10018 */ bgez $t6, .Ljp7F047BC0 +/* 07C6D0 7F047B60 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C6D4 7F047B64 8E2C0008 */ lw $t4, 8($s1) +/* 07C6D8 7F047B68 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C6DC 7F047B6C 02202025 */ move $a0, $s1 +/* 07C6E0 7F047B70 01815024 */ and $t2, $t4, $at +/* 07C6E4 7F047B74 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07C6E8 7F047B78 AE2A0008 */ sw $t2, 8($s1) +/* 07C6EC 7F047B7C 10000011 */ b .Ljp7F047BC4 +/* 07C6F0 7F047B80 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C6F4 7F047B84 8E2F0008 */ lw $t7, 8($s1) +.Ljp7F047B88: +/* 07C6F8 7F047B88 000F6880 */ sll $t5, $t7, 2 +/* 07C6FC 7F047B8C 05A3000D */ bgezl $t5, .Ljp7F047BC4 +/* 07C700 7F047B90 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C704 7F047B94 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C708 7F047B98 0FC16BD4 */ jal atan2f +/* 07C70C 7F047B9C C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C710 7F047BA0 8E390008 */ lw $t9, 8($s1) +/* 07C714 7F047BA4 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C718 7F047BA8 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C71C 7F047BAC 0321C024 */ and $t8, $t9, $at +/* 07C720 7F047BB0 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C724 7F047BB4 AE380008 */ sw $t8, 8($s1) +/* 07C728 7F047BB8 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07C72C 7F047BBC 02202025 */ move $a0, $s1 +.Ljp7F047BC0: +/* 07C730 7F047BC0 C6260088 */ lwc1 $f6, 0x88($s1) +.Ljp7F047BC4: +/* 07C734 7F047BC4 4606B03C */ c.lt.s $f22, $f6 +/* 07C738 7F047BC8 00000000 */ nop +/* 07C73C 7F047BCC 450201AC */ bc1fl .Ljp7F048280 +/* 07C740 7F047BD0 8E2A0008 */ lw $t2, 8($s1) +/* 07C744 7F047BD4 8E680014 */ lw $t0, 0x14($s3) +/* 07C748 7F047BD8 8FA9047C */ lw $t1, 0x47c($sp) +/* 07C74C 7F047BDC 4600B386 */ mov.s $f14, $f22 +/* 07C750 7F047BE0 AFA8046C */ sw $t0, 0x46c($sp) +/* 07C754 7F047BE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C758 7F047BE8 E7AC043C */ swc1 $f12, 0x43c($sp) +/* 07C75C 7F047BEC C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07C760 7F047BF0 11200013 */ beqz $t1, .Ljp7F047C40 +/* 07C764 7F047BF4 E7AA0438 */ swc1 $f10, 0x438($sp) +/* 07C768 7F047BF8 262B0058 */ addiu $t3, $s1, 0x58 +/* 07C76C 7F047BFC AFAB0074 */ sw $t3, 0x74($sp) +/* 07C770 7F047C00 0FC160F3 */ jal sinf +/* 07C774 7F047C04 E7AE0434 */ swc1 $f14, 0x434($sp) +/* 07C778 7F047C08 E7A00440 */ swc1 $f0, 0x440($sp) +/* 07C77C 7F047C0C E7B60444 */ swc1 $f22, 0x444($sp) +/* 07C780 7F047C10 0FC160F0 */ jal cosf +/* 07C784 7F047C14 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C788 7F047C18 E7A00448 */ swc1 $f0, 0x448($sp) +/* 07C78C 7F047C1C 8FA40074 */ lw $a0, 0x74($sp) +/* 07C790 7F047C20 27A50440 */ addiu $a1, $sp, 0x440 +/* 07C794 7F047C24 8FA6047C */ lw $a2, 0x47c($sp) +/* 07C798 7F047C28 0FC0BFCD */ jal sub_GAME_7F02FC34 +/* 07C79C 7F047C2C 3C074120 */ lui $a3, 0x4120 +/* 07C7A0 7F047C30 10400003 */ beqz $v0, .Ljp7F047C40 +/* 07C7A4 7F047C34 C7AE0434 */ lwc1 $f14, 0x434($sp) +/* 07C7A8 7F047C38 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C7AC 7F047C3C E7A80480 */ swc1 $f8, 0x480($sp) +.Ljp7F047C40: +/* 07C7B0 7F047C40 3C018005 */ lui $at, %hi(D_80052B4C) # $at, 0x8005 +/* 07C7B4 7F047C44 C4242B7C */ lwc1 $f4, %lo(D_80052B4C)($at) +/* 07C7B8 7F047C48 3C018005 */ lui $at, %hi(D_80052B50) # $at, 0x8005 +/* 07C7BC 7F047C4C C4262B80 */ lwc1 $f6, %lo(D_80052B50)($at) +/* 07C7C0 7F047C50 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 +/* 07C7C4 7F047C54 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 +/* 07C7C8 7F047C58 262400A0 */ addiu $a0, $s1, 0xa0 +/* 07C7CC 7F047C5C 8FA50480 */ lw $a1, 0x480($sp) +/* 07C7D0 7F047C60 2626009C */ addiu $a2, $s1, 0x9c +/* 07C7D4 7F047C64 E7AE0434 */ swc1 $f14, 0x434($sp) +/* 07C7D8 7F047C68 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07C7DC 7F047C6C 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C7E0 7F047C70 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07C7E4 7F047C74 3C018005 */ lui $at, %hi(D_80052B54) # $at, 0x8005 +/* 07C7E8 7F047C78 C4342B84 */ lwc1 $f20, %lo(D_80052B54)($at) +/* 07C7EC 7F047C7C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C7F0 7F047C80 C7AE0434 */ lwc1 $f14, 0x434($sp) +/* 07C7F4 7F047C84 3C018005 */ lui $at, %hi(D_80052B58) # $at, 0x8005 +/* 07C7F8 7F047C88 460CA03E */ c.le.s $f20, $f12 +/* 07C7FC 7F047C8C 00000000 */ nop +/* 07C800 7F047C90 45020009 */ bc1fl .Ljp7F047CB8 +/* 07C804 7F047C94 4616603C */ c.lt.s $f12, $f22 +/* 07C808 7F047C98 46146281 */ sub.s $f10, $f12, $f20 +.Ljp7F047C9C: +/* 07C80C 7F047C9C E62A00A0 */ swc1 $f10, 0xa0($s1) +/* 07C810 7F047CA0 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C814 7F047CA4 460CA03E */ c.le.s $f20, $f12 +/* 07C818 7F047CA8 00000000 */ nop +/* 07C81C 7F047CAC 4503FFFB */ bc1tl .Ljp7F047C9C +/* 07C820 7F047CB0 46146281 */ sub.s $f10, $f12, $f20 +/* 07C824 7F047CB4 4616603C */ c.lt.s $f12, $f22 +.Ljp7F047CB8: +/* 07C828 7F047CB8 00000000 */ nop +/* 07C82C 7F047CBC 45020009 */ bc1fl .Ljp7F047CE4 +/* 07C830 7F047CC0 C7A40480 */ lwc1 $f4, 0x480($sp) +/* 07C834 7F047CC4 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F047CC8: +/* 07C838 7F047CC8 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C83C 7F047CCC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C840 7F047CD0 4616603C */ c.lt.s $f12, $f22 +/* 07C844 7F047CD4 00000000 */ nop +/* 07C848 7F047CD8 4503FFFB */ bc1tl .Ljp7F047CC8 +/* 07C84C 7F047CDC 46146200 */ add.s $f8, $f12, $f20 +/* 07C850 7F047CE0 C7A40480 */ lwc1 $f4, 0x480($sp) +.Ljp7F047CE4: +/* 07C854 7F047CE4 460C2032 */ c.eq.s $f4, $f12 +/* 07C858 7F047CE8 00000000 */ nop +/* 07C85C 7F047CEC 4502000F */ bc1fl .Ljp7F047D2C +/* 07C860 7F047CF0 8E8E0008 */ lw $t6, 8($s4) +/* 07C864 7F047CF4 C620009C */ lwc1 $f0, 0x9c($s1) +/* 07C868 7F047CF8 C4262B88 */ lwc1 $f6, %lo(D_80052B58)($at) +/* 07C86C 7F047CFC 3C018005 */ lui $at, %hi(D_80052B5C) # $at, 0x8005 +/* 07C870 7F047D00 4606003E */ c.le.s $f0, $f6 +/* 07C874 7F047D04 00000000 */ nop +/* 07C878 7F047D08 45020008 */ bc1fl .Ljp7F047D2C +/* 07C87C 7F047D0C 8E8E0008 */ lw $t6, 8($s4) +/* 07C880 7F047D10 C42A2B8C */ lwc1 $f10, %lo(D_80052B5C)($at) +/* 07C884 7F047D14 4600503E */ c.le.s $f10, $f0 +/* 07C888 7F047D18 00000000 */ nop +/* 07C88C 7F047D1C 45020003 */ bc1fl .Ljp7F047D2C +/* 07C890 7F047D20 8E8E0008 */ lw $t6, 8($s4) +/* 07C894 7F047D24 E636009C */ swc1 $f22, 0x9c($s1) +/* 07C898 7F047D28 8E8E0008 */ lw $t6, 8($s4) +.Ljp7F047D2C: +/* 07C89C 7F047D2C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C8A0 7F047D30 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C8A4 7F047D34 8DCC0008 */ lw $t4, 8($t6) +/* 07C8A8 7F047D38 C7A4043C */ lwc1 $f4, 0x43c($sp) +/* 07C8AC 7F047D3C 4602B03C */ c.lt.s $f22, $f2 +/* 07C8B0 7F047D40 8D8A000C */ lw $t2, 0xc($t4) +/* 07C8B4 7F047D44 45000004 */ bc1f .Ljp7F047D58 +/* 07C8B8 7F047D48 8D500004 */ lw $s0, 4($t2) +/* 07C8BC 7F047D4C C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C8C0 7F047D50 46044181 */ sub.s $f6, $f8, $f4 +/* 07C8C4 7F047D54 46023383 */ div.s $f14, $f6, $f2 +.Ljp7F047D58: +/* 07C8C8 7F047D58 4616703C */ c.lt.s $f14, $f22 +/* 07C8CC 7F047D5C 00000000 */ nop +/* 07C8D0 7F047D60 45000002 */ bc1f .Ljp7F047D6C +/* 07C8D4 7F047D64 00000000 */ nop +/* 07C8D8 7F047D68 46147380 */ add.s $f14, $f14, $f20 +.Ljp7F047D6C: +/* 07C8DC 7F047D6C 0FC160F3 */ jal sinf +/* 07C8E0 7F047D70 46007306 */ mov.s $f12, $f14 +/* 07C8E4 7F047D74 C60A0008 */ lwc1 $f10, 8($s0) +/* 07C8E8 7F047D78 C6880014 */ lwc1 $f8, 0x14($s4) +/* 07C8EC 7F047D7C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C8F0 7F047D80 46085102 */ mul.s $f4, $f10, $f8 +/* 07C8F4 7F047D84 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07C8F8 7F047D88 46040182 */ mul.s $f6, $f0, $f4 +/* 07C8FC 7F047D8C 00000000 */ nop +/* 07C900 7F047D90 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C904 7F047D94 E7A80464 */ swc1 $f8, 0x464($sp) +/* 07C908 7F047D98 0FC160F3 */ jal sinf +/* 07C90C 7F047D9C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C910 7F047DA0 E7A00440 */ swc1 $f0, 0x440($sp) +/* 07C914 7F047DA4 E7B60444 */ swc1 $f22, 0x444($sp) +/* 07C918 7F047DA8 0FC160F0 */ jal cosf +/* 07C91C 7F047DAC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C920 7F047DB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C924 7F047DB4 44817000 */ mtc1 $at, $f14 +/* 07C928 7F047DB8 E7A00448 */ swc1 $f0, 0x448($sp) +/* 07C92C 7F047DBC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C930 7F047DC0 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C934 7F047DC4 C6240088 */ lwc1 $f4, 0x88($s1) +/* 07C938 7F047DC8 C7AA0440 */ lwc1 $f10, 0x440($sp) +/* 07C93C 7F047DCC C7AC0464 */ lwc1 $f12, 0x464($sp) +/* 07C940 7F047DD0 46022182 */ mul.s $f6, $f4, $f2 +/* 07C944 7F047DD4 C6240058 */ lwc1 $f4, 0x58($s1) +/* 07C948 7F047DD8 27B0046C */ addiu $s0, $sp, 0x46c +/* 07C94C 7F047DDC 240F001F */ li $t7, 31 +/* 07C950 7F047DE0 02002025 */ move $a0, $s0 +/* 07C954 7F047DE4 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C958 7F047DE8 46082180 */ add.s $f6, $f4, $f8 +/* 07C95C 7F047DEC C7A40448 */ lwc1 $f4, 0x448($sp) +/* 07C960 7F047DF0 460C2202 */ mul.s $f8, $f4, $f12 +/* 07C964 7F047DF4 46083181 */ sub.s $f6, $f6, $f8 +/* 07C968 7F047DF8 E7A6069C */ swc1 $f6, 0x69c($sp) +/* 07C96C 7F047DFC C628005C */ lwc1 $f8, 0x5c($s1) +/* 07C970 7F047E00 44073000 */ mfc1 $a3, $f6 +/* 07C974 7F047E04 E7A806A0 */ swc1 $f8, 0x6a0($sp) +/* 07C978 7F047E08 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07C97C 7F047E0C 46024202 */ mul.s $f8, $f8, $f2 +/* 07C980 7F047E10 00000000 */ nop +/* 07C984 7F047E14 46044202 */ mul.s $f8, $f8, $f4 +/* 07C988 7F047E18 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07C98C 7F047E1C 46082100 */ add.s $f4, $f4, $f8 +/* 07C990 7F047E20 460C5202 */ mul.s $f8, $f10, $f12 +/* 07C994 7F047E24 46044280 */ add.s $f10, $f8, $f4 +/* 07C998 7F047E28 E7AA06A4 */ swc1 $f10, 0x6a4($sp) +/* 07C99C 7F047E2C 8E660010 */ lw $a2, 0x10($s3) +/* 07C9A0 7F047E30 8E650008 */ lw $a1, 8($s3) +/* 07C9A4 7F047E34 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07C9A8 7F047E38 E7B60018 */ swc1 $f22, 0x18($sp) +/* 07C9AC 7F047E3C AFAF0014 */ sw $t7, 0x14($sp) +/* 07C9B0 7F047E40 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C9B4 7F047E44 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 07C9B8 7F047E48 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07C9BC 7F047E4C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 07C9C0 7F047E50 104000FA */ beqz $v0, .Ljp7F04823C +/* 07C9C4 7F047E54 02002025 */ move $a0, $s0 +/* 07C9C8 7F047E58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C9CC 7F047E5C 44814000 */ mtc1 $at, $f8 +/* 07C9D0 7F047E60 240D001F */ li $t5, 31 +/* 07C9D4 7F047E64 AFAD0010 */ sw $t5, 0x10($sp) +/* 07C9D8 7F047E68 8FA5069C */ lw $a1, 0x69c($sp) +/* 07C9DC 7F047E6C 8FA606A4 */ lw $a2, 0x6a4($sp) +/* 07C9E0 7F047E70 3C074120 */ lui $a3, 0x4120 +/* 07C9E4 7F047E74 E7B60014 */ swc1 $f22, 0x14($sp) +/* 07C9E8 7F047E78 0FC2C91A */ jal sub_GAME_7F0B18B8 +/* 07C9EC 7F047E7C E7A80018 */ swc1 $f8, 0x18($sp) +/* 07C9F0 7F047E80 044300EF */ bgezl $v0, .Ljp7F048240 +/* 07C9F4 7F047E84 C6260098 */ lwc1 $f6, 0x98($s1) +/* 07C9F8 7F047E88 8E790014 */ lw $t9, 0x14($s3) +/* 07C9FC 7F047E8C 8FB8046C */ lw $t8, 0x46c($sp) +/* 07CA00 7F047E90 02202025 */ move $a0, $s1 +/* 07CA04 7F047E94 AFB90450 */ sw $t9, 0x450($sp) +/* 07CA08 7F047E98 C6640008 */ lwc1 $f4, 8($s3) +/* 07CA0C 7F047E9C E7A40454 */ swc1 $f4, 0x454($sp) +/* 07CA10 7F047EA0 C666000C */ lwc1 $f6, 0xc($s3) +/* 07CA14 7F047EA4 E7A60458 */ swc1 $f6, 0x458($sp) +/* 07CA18 7F047EA8 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 07CA1C 7F047EAC E7AA045C */ swc1 $f10, 0x45c($sp) +/* 07CA20 7F047EB0 AE780014 */ sw $t8, 0x14($s3) +/* 07CA24 7F047EB4 C7A2069C */ lwc1 $f2, 0x69c($sp) +/* 07CA28 7F047EB8 E6620008 */ swc1 $f2, 8($s3) +/* 07CA2C 7F047EBC E6220058 */ swc1 $f2, 0x58($s1) +/* 07CA30 7F047EC0 C7A206A4 */ lwc1 $f2, 0x6a4($sp) +/* 07CA34 7F047EC4 E6620010 */ swc1 $f2, 0x10($s3) +/* 07CA38 7F047EC8 0FC101E1 */ jal sub_GAME_7F040484 +/* 07CA3C 7F047ECC E6220060 */ swc1 $f2, 0x60($s1) +/* 07CA40 7F047ED0 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07CA44 7F047ED4 02202025 */ move $a0, $s1 +/* 07CA48 7F047ED8 0FC1131F */ jal sub_GAME_7F0448A8 +/* 07CA4C 7F047EDC 02602025 */ move $a0, $s3 +/* 07CA50 7F047EE0 10400092 */ beqz $v0, .Ljp7F04812C +/* 07CA54 7F047EE4 00409025 */ move $s2, $v0 +/* 07CA58 7F047EE8 8E880008 */ lw $t0, 8($s4) +/* 07CA5C 7F047EEC C6280018 */ lwc1 $f8, 0x18($s1) +/* 07CA60 7F047EF0 02002025 */ move $a0, $s0 +/* 07CA64 7F047EF4 8D090008 */ lw $t1, 8($t0) +/* 07CA68 7F047EF8 8D2B0028 */ lw $t3, 0x28($t1) +/* 07CA6C 7F047EFC 8D620004 */ lw $v0, 4($t3) +/* 07CA70 7F047F00 C4440004 */ lwc1 $f4, 4($v0) +/* 07CA74 7F047F04 46044182 */ mul.s $f6, $f8, $f4 +/* 07CA78 7F047F08 E7A60428 */ swc1 $f6, 0x428($sp) +/* 07CA7C 7F047F0C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07CA80 7F047F10 C4480004 */ lwc1 $f8, 4($v0) +/* 07CA84 7F047F14 46085102 */ mul.s $f4, $f10, $f8 +/* 07CA88 7F047F18 E7A40430 */ swc1 $f4, 0x430($sp) +/* 07CA8C 7F047F1C C6260018 */ lwc1 $f6, 0x18($s1) +/* 07CA90 7F047F20 C44A0008 */ lwc1 $f10, 8($v0) +/* 07CA94 7F047F24 460A3202 */ mul.s $f8, $f6, $f10 +/* 07CA98 7F047F28 E7A8041C */ swc1 $f8, 0x41c($sp) +/* 07CA9C 7F047F2C C6240020 */ lwc1 $f4, 0x20($s1) +/* 07CAA0 7F047F30 C4460008 */ lwc1 $f6, 8($v0) +/* 07CAA4 7F047F34 46062282 */ mul.s $f10, $f4, $f6 +/* 07CAA8 7F047F38 E7AA0424 */ swc1 $f10, 0x424($sp) +/* 07CAAC 7F047F3C C6280038 */ lwc1 $f8, 0x38($s1) +/* 07CAB0 7F047F40 C4440014 */ lwc1 $f4, 0x14($v0) +/* 07CAB4 7F047F44 46044182 */ mul.s $f6, $f8, $f4 +/* 07CAB8 7F047F48 E7A60410 */ swc1 $f6, 0x410($sp) +/* 07CABC 7F047F4C C62A0040 */ lwc1 $f10, 0x40($s1) +/* 07CAC0 7F047F50 C4480014 */ lwc1 $f8, 0x14($v0) +/* 07CAC4 7F047F54 46085102 */ mul.s $f4, $f10, $f8 +/* 07CAC8 7F047F58 E7A40418 */ swc1 $f4, 0x418($sp) +/* 07CACC 7F047F5C C6260038 */ lwc1 $f6, 0x38($s1) +/* 07CAD0 7F047F60 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 07CAD4 7F047F64 460A3202 */ mul.s $f8, $f6, $f10 +/* 07CAD8 7F047F68 E7A80404 */ swc1 $f8, 0x404($sp) +/* 07CADC 7F047F6C C6240040 */ lwc1 $f4, 0x40($s1) +/* 07CAE0 7F047F70 C4460018 */ lwc1 $f6, 0x18($v0) +/* 07CAE4 7F047F74 C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CAE8 7F047F78 46062282 */ mul.s $f10, $f4, $f6 +/* 07CAEC 7F047F7C C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CAF0 7F047F80 E7AA040C */ swc1 $f10, 0x40c($sp) +/* 07CAF4 7F047F84 8E6E0014 */ lw $t6, 0x14($s3) +/* 07CAF8 7F047F88 AFAE046C */ sw $t6, 0x46c($sp) +/* 07CAFC 7F047F8C C6600008 */ lwc1 $f0, 8($s3) +/* 07CB00 7F047F90 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CB04 7F047F94 46040180 */ add.s $f6, $f0, $f4 +/* 07CB08 7F047F98 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07CB0C 7F047F9C 44050000 */ mfc1 $a1, $f0 +/* 07CB10 7F047FA0 44061000 */ mfc1 $a2, $f2 +/* 07CB14 7F047FA4 46064280 */ add.s $f10, $f8, $f6 +/* 07CB18 7F047FA8 C7A80430 */ lwc1 $f8, 0x430($sp) +/* 07CB1C 7F047FAC 46081180 */ add.s $f6, $f2, $f8 +/* 07CB20 7F047FB0 44075000 */ mfc1 $a3, $f10 +/* 07CB24 7F047FB4 46062280 */ add.s $f10, $f4, $f6 +/* 07CB28 7F047FB8 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CB2C 7F047FBC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CB30 7F047FC0 10400059 */ beqz $v0, .Ljp7F048128 +/* 07CB34 7F047FC4 C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CB38 7F047FC8 C6600008 */ lwc1 $f0, 8($s3) +/* 07CB3C 7F047FCC C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CB40 7F047FD0 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CB44 7F047FD4 46040180 */ add.s $f6, $f0, $f4 +/* 07CB48 7F047FD8 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07CB4C 7F047FDC 02002025 */ move $a0, $s0 +/* 07CB50 7F047FE0 46064280 */ add.s $f10, $f8, $f6 +/* 07CB54 7F047FE4 C7A60430 */ lwc1 $f6, 0x430($sp) +/* 07CB58 7F047FE8 44055000 */ mfc1 $a1, $f10 +/* 07CB5C 7F047FEC 46061280 */ add.s $f10, $f2, $f6 +/* 07CB60 7F047FF0 460A2180 */ add.s $f6, $f4, $f10 +/* 07CB64 7F047FF4 C7AA041C */ lwc1 $f10, 0x41c($sp) +/* 07CB68 7F047FF8 44063000 */ mfc1 $a2, $f6 +/* 07CB6C 7F047FFC 460A0180 */ add.s $f6, $f0, $f10 +/* 07CB70 7F048000 46064280 */ add.s $f10, $f8, $f6 +/* 07CB74 7F048004 C7A80424 */ lwc1 $f8, 0x424($sp) +/* 07CB78 7F048008 46081180 */ add.s $f6, $f2, $f8 +/* 07CB7C 7F04800C 44075000 */ mfc1 $a3, $f10 +/* 07CB80 7F048010 46062280 */ add.s $f10, $f4, $f6 +/* 07CB84 7F048014 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CB88 7F048018 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CB8C 7F04801C 10400042 */ beqz $v0, .Ljp7F048128 +/* 07CB90 7F048020 C7A4041C */ lwc1 $f4, 0x41c($sp) +/* 07CB94 7F048024 C6680008 */ lwc1 $f8, 8($s3) +/* 07CB98 7F048028 C7A60410 */ lwc1 $f6, 0x410($sp) +/* 07CB9C 7F04802C 02002025 */ move $a0, $s0 +/* 07CBA0 7F048030 46044000 */ add.s $f0, $f8, $f4 +/* 07CBA4 7F048034 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07CBA8 7F048038 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07CBAC 7F04803C 46003280 */ add.s $f10, $f6, $f0 +/* 07CBB0 7F048040 C7A60418 */ lwc1 $f6, 0x418($sp) +/* 07CBB4 7F048044 46044080 */ add.s $f2, $f8, $f4 +/* 07CBB8 7F048048 44055000 */ mfc1 $a1, $f10 +/* 07CBBC 7F04804C C7A80404 */ lwc1 $f8, 0x404($sp) +/* 07CBC0 7F048050 46023280 */ add.s $f10, $f6, $f2 +/* 07CBC4 7F048054 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07CBC8 7F048058 46004100 */ add.s $f4, $f8, $f0 +/* 07CBCC 7F04805C 44065000 */ mfc1 $a2, $f10 +/* 07CBD0 7F048060 46023280 */ add.s $f10, $f6, $f2 +/* 07CBD4 7F048064 44072000 */ mfc1 $a3, $f4 +/* 07CBD8 7F048068 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CBDC 7F04806C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CBE0 7F048070 1040002D */ beqz $v0, .Ljp7F048128 +/* 07CBE4 7F048074 C7A4041C */ lwc1 $f4, 0x41c($sp) +/* 07CBE8 7F048078 C6600008 */ lwc1 $f0, 8($s3) +/* 07CBEC 7F04807C C7A80404 */ lwc1 $f8, 0x404($sp) +/* 07CBF0 7F048080 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CBF4 7F048084 46040180 */ add.s $f6, $f0, $f4 +/* 07CBF8 7F048088 C7A4040C */ lwc1 $f4, 0x40c($sp) +/* 07CBFC 7F04808C 02002025 */ move $a0, $s0 +/* 07CC00 7F048090 46064280 */ add.s $f10, $f8, $f6 +/* 07CC04 7F048094 C7A60424 */ lwc1 $f6, 0x424($sp) +/* 07CC08 7F048098 44055000 */ mfc1 $a1, $f10 +/* 07CC0C 7F04809C 46061280 */ add.s $f10, $f2, $f6 +/* 07CC10 7F0480A0 460A2180 */ add.s $f6, $f4, $f10 +/* 07CC14 7F0480A4 C7AA0428 */ lwc1 $f10, 0x428($sp) +/* 07CC18 7F0480A8 44063000 */ mfc1 $a2, $f6 +/* 07CC1C 7F0480AC 460A0180 */ add.s $f6, $f0, $f10 +/* 07CC20 7F0480B0 46064280 */ add.s $f10, $f8, $f6 +/* 07CC24 7F0480B4 C7A80430 */ lwc1 $f8, 0x430($sp) +/* 07CC28 7F0480B8 46081180 */ add.s $f6, $f2, $f8 +/* 07CC2C 7F0480BC 44075000 */ mfc1 $a3, $f10 +/* 07CC30 7F0480C0 46062280 */ add.s $f10, $f4, $f6 +/* 07CC34 7F0480C4 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CC38 7F0480C8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CC3C 7F0480CC 10400016 */ beqz $v0, .Ljp7F048128 +/* 07CC40 7F0480D0 C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CC44 7F0480D4 C6680008 */ lwc1 $f8, 8($s3) +/* 07CC48 7F0480D8 C7A60404 */ lwc1 $f6, 0x404($sp) +/* 07CC4C 7F0480DC 02002025 */ move $a0, $s0 +/* 07CC50 7F0480E0 46044000 */ add.s $f0, $f8, $f4 +/* 07CC54 7F0480E4 C7A40430 */ lwc1 $f4, 0x430($sp) +/* 07CC58 7F0480E8 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07CC5C 7F0480EC 46003280 */ add.s $f10, $f6, $f0 +/* 07CC60 7F0480F0 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07CC64 7F0480F4 46044080 */ add.s $f2, $f8, $f4 +/* 07CC68 7F0480F8 44055000 */ mfc1 $a1, $f10 +/* 07CC6C 7F0480FC C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CC70 7F048100 46023280 */ add.s $f10, $f6, $f2 +/* 07CC74 7F048104 C7A60418 */ lwc1 $f6, 0x418($sp) +/* 07CC78 7F048108 46004100 */ add.s $f4, $f8, $f0 +/* 07CC7C 7F04810C 44065000 */ mfc1 $a2, $f10 +/* 07CC80 7F048110 46023280 */ add.s $f10, $f6, $f2 +/* 07CC84 7F048114 44072000 */ mfc1 $a3, $f4 +/* 07CC88 7F048118 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CC8C 7F04811C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CC90 7F048120 14400002 */ bnez $v0, .Ljp7F04812C +/* 07CC94 7F048124 00000000 */ nop +.Ljp7F048128: +/* 07CC98 7F048128 00009025 */ move $s2, $zero +.Ljp7F04812C: +/* 07CC9C 7F04812C 12400023 */ beqz $s2, .Ljp7F0481BC +/* 07CCA0 7F048130 02202025 */ move $a0, $s1 +/* 07CCA4 7F048134 262C0058 */ addiu $t4, $s1, 0x58 +/* 07CCA8 7F048138 AFAC0074 */ sw $t4, 0x74($sp) +/* 07CCAC 7F04813C 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07CCB0 7F048140 2630007C */ addiu $s0, $s1, 0x7c +/* 07CCB4 7F048144 02602025 */ move $a0, $s3 +/* 07CCB8 7F048148 0FC1016D */ jal sub_GAME_7F0402B4 +/* 07CCBC 7F04814C 02002825 */ move $a1, $s0 +/* 07CCC0 7F048150 0FC14832 */ jal detonate_proxmine_In_range +/* 07CCC4 7F048154 8FA40074 */ lw $a0, 0x74($sp) +/* 07CCC8 7F048158 8FAA047C */ lw $t2, 0x47c($sp) +/* 07CCCC 7F04815C 27A40454 */ addiu $a0, $sp, 0x454 +/* 07CCD0 7F048160 27A5069C */ addiu $a1, $sp, 0x69c +/* 07CCD4 7F048164 11400054 */ beqz $t2, .Ljp7F0482B8 +/* 07CCD8 7F048168 01403025 */ move $a2, $t2 +/* 07CCDC 7F04816C 0FC0C014 */ jal sub_GAME_7F02FD50 +/* 07CCE0 7F048170 3C0742C8 */ lui $a3, 0x42c8 +/* 07CCE4 7F048174 10400050 */ beqz $v0, .Ljp7F0482B8 +/* 07CCE8 7F048178 00000000 */ nop +/* 07CCEC 7F04817C 8E2F00A8 */ lw $t7, 0xa8($s1) +/* 07CCF0 7F048180 8E3900A4 */ lw $t9, 0xa4($s1) +/* 07CCF4 7F048184 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CCF8 7F048188 25ED0001 */ addiu $t5, $t7, 1 +/* 07CCFC 7F04818C AE2D00A8 */ sw $t5, 0xa8($s1) +/* 07CD00 7F048190 8F380000 */ lw $t8, ($t9) +/* 07CD04 7F048194 000D4880 */ sll $t1, $t5, 2 +/* 07CD08 7F048198 03095821 */ addu $t3, $t8, $t1 +/* 07CD0C 7F04819C 8D6E0000 */ lw $t6, ($t3) +/* 07CD10 7F0481A0 05C10045 */ bgez $t6, .Ljp7F0482B8 +/* 07CD14 7F0481A4 00000000 */ nop +/* 07CD18 7F0481A8 44814000 */ mtc1 $at, $f8 +/* 07CD1C 7F0481AC AE2000A4 */ sw $zero, 0xa4($s1) +/* 07CD20 7F0481B0 E6360094 */ swc1 $f22, 0x94($s1) +/* 07CD24 7F0481B4 10000040 */ b .Ljp7F0482B8 +/* 07CD28 7F0481B8 E6280098 */ swc1 $f8, 0x98($s1) +.Ljp7F0481BC: +/* 07CD2C 7F0481BC C6240098 */ lwc1 $f4, 0x98($s1) +/* 07CD30 7F0481C0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CD34 7F0481C4 4616203C */ c.lt.s $f4, $f22 +/* 07CD38 7F0481C8 00000000 */ nop +/* 07CD3C 7F0481CC 45020006 */ bc1fl .Ljp7F0481E8 +/* 07CD40 7F0481D0 E6360088 */ swc1 $f22, 0x88($s1) +/* 07CD44 7F0481D4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07CD48 7F0481D8 44815000 */ mtc1 $at, $f10 +/* 07CD4C 7F0481DC E6260094 */ swc1 $f6, 0x94($s1) +/* 07CD50 7F0481E0 E62A0098 */ swc1 $f10, 0x98($s1) +/* 07CD54 7F0481E4 E6360088 */ swc1 $f22, 0x88($s1) +.Ljp7F0481E8: +/* 07CD58 7F0481E8 C7A8043C */ lwc1 $f8, 0x43c($sp) +/* 07CD5C 7F0481EC 02202025 */ move $a0, $s1 +/* 07CD60 7F0481F0 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07CD64 7F0481F4 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07CD68 7F0481F8 E624009C */ swc1 $f4, 0x9c($s1) +/* 07CD6C 7F0481FC 8FAC0450 */ lw $t4, 0x450($sp) +/* 07CD70 7F048200 AE6C0014 */ sw $t4, 0x14($s3) +/* 07CD74 7F048204 C7A20454 */ lwc1 $f2, 0x454($sp) +/* 07CD78 7F048208 E6620008 */ swc1 $f2, 8($s3) +/* 07CD7C 7F04820C E6220058 */ swc1 $f2, 0x58($s1) +/* 07CD80 7F048210 C7A20458 */ lwc1 $f2, 0x458($sp) +/* 07CD84 7F048214 E662000C */ swc1 $f2, 0xc($s3) +/* 07CD88 7F048218 E622005C */ swc1 $f2, 0x5c($s1) +/* 07CD8C 7F04821C C7A2045C */ lwc1 $f2, 0x45c($sp) +/* 07CD90 7F048220 E6620010 */ swc1 $f2, 0x10($s3) +/* 07CD94 7F048224 0FC101E1 */ jal sub_GAME_7F040484 +/* 07CD98 7F048228 E6220060 */ swc1 $f2, 0x60($s1) +/* 07CD9C 7F04822C 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07CDA0 7F048230 02202025 */ move $a0, $s1 +/* 07CDA4 7F048234 10000020 */ b .Ljp7F0482B8 +/* 07CDA8 7F048238 00000000 */ nop +.Ljp7F04823C: +/* 07CDAC 7F04823C C6260098 */ lwc1 $f6, 0x98($s1) +.Ljp7F048240: +/* 07CDB0 7F048240 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CDB4 7F048244 4616303C */ c.lt.s $f6, $f22 +/* 07CDB8 7F048248 00000000 */ nop +/* 07CDBC 7F04824C 45020006 */ bc1fl .Ljp7F048268 +/* 07CDC0 7F048250 E6360088 */ swc1 $f22, 0x88($s1) +/* 07CDC4 7F048254 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07CDC8 7F048258 44814000 */ mtc1 $at, $f8 +/* 07CDCC 7F04825C E62A0094 */ swc1 $f10, 0x94($s1) +/* 07CDD0 7F048260 E6280098 */ swc1 $f8, 0x98($s1) +/* 07CDD4 7F048264 E6360088 */ swc1 $f22, 0x88($s1) +.Ljp7F048268: +/* 07CDD8 7F048268 C7A4043C */ lwc1 $f4, 0x43c($sp) +/* 07CDDC 7F04826C E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07CDE0 7F048270 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 07CDE4 7F048274 10000010 */ b .Ljp7F0482B8 +/* 07CDE8 7F048278 E626009C */ swc1 $f6, 0x9c($s1) +/* 07CDEC 7F04827C 8E2A0008 */ lw $t2, 8($s1) +.Ljp7F048280: +/* 07CDF0 7F048280 000A7880 */ sll $t7, $t2, 2 +/* 07CDF4 7F048284 05E1000C */ bgez $t7, .Ljp7F0482B8 +/* 07CDF8 7F048288 00000000 */ nop +/* 07CDFC 7F04828C C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07CE00 7F048290 0FC16BD4 */ jal atan2f +/* 07CE04 7F048294 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07CE08 7F048298 8E2D0008 */ lw $t5, 8($s1) +/* 07CE0C 7F04829C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07CE10 7F0482A0 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07CE14 7F0482A4 01A1C824 */ and $t9, $t5, $at +/* 07CE18 7F0482A8 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07CE1C 7F0482AC AE390008 */ sw $t9, 8($s1) +/* 07CE20 7F0482B0 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07CE24 7F0482B4 02202025 */ move $a0, $s1 +.Ljp7F0482B8: +/* 07CE28 7F0482B8 100000DE */ b .Ljp7F048634 +/* 07CE2C 7F0482BC 92220003 */ lbu $v0, 3($s1) +.Ljp7F0482C0: +/* 07CE30 7F0482C0 24010028 */ li $at, 40 +/* 07CE34 7F0482C4 144100DA */ bne $v0, $at, .Ljp7F048630 +/* 07CE38 7F0482C8 02202025 */ move $a0, $s1 +/* 07CE3C 7F0482CC 0FC0D5E1 */ jal parse_handle_actionblocks +/* 07CE40 7F0482D0 24050001 */ li $a1, 1 +/* 07CE44 7F0482D4 8E300014 */ lw $s0, 0x14($s1) +/* 07CE48 7F0482D8 26250058 */ addiu $a1, $s1, 0x58 +/* 07CE4C 7F0482DC 8E080020 */ lw $t0, 0x20($s0) +/* 07CE50 7F0482E0 02002025 */ move $a0, $s0 +/* 07CE54 7F0482E4 51000065 */ beql $t0, $zero, .Ljp7F04847C +/* 07CE58 7F0482E8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CE5C 7F0482EC 0FC1B47F */ jal setsuboffset +/* 07CE60 7F0482F0 AFA50074 */ sw $a1, 0x74($sp) +/* 07CE64 7F0482F4 8E300014 */ lw $s0, 0x14($s1) +/* 07CE68 7F0482F8 3C098003 */ lui $t1, %hi(animation_table_ptrs2+4) # $t1, 0x8003 +/* 07CE6C 7F0482FC 8D29A090 */ lw $t1, %lo(animation_table_ptrs2+4)($t1) +/* 07CE70 7F048300 8E180020 */ lw $t8, 0x20($s0) +/* 07CE74 7F048304 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 +/* 07CE78 7F048308 02002025 */ move $a0, $s0 +/* 07CE7C 7F04830C 17090009 */ bne $t8, $t1, .Ljp7F048334 +/* 07CE80 7F048310 00000000 */ nop +/* 07CE84 7F048314 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CE88 7F048318 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c +/* 07CE8C 7F04831C 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 07CE90 7F048320 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 07CE94 7F048324 0FC1B4CB */ jal setsubroty +/* 07CE98 7F048328 8E240014 */ lw $a0, 0x14($s1) +/* 07CE9C 7F04832C 10000024 */ b .Ljp7F0483C0 +/* 07CEA0 7F048330 00000000 */ nop +.Ljp7F048334: +/* 07CEA4 7F048334 0C001A57 */ jal get_stage_num +/* 07CEA8 7F048338 00000000 */ nop +/* 07CEAC 7F04833C 24010016 */ li $at, 22 +/* 07CEB0 7F048340 1441000A */ bne $v0, $at, .Ljp7F04836C +/* 07CEB4 7F048344 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CEB8 7F048348 8E240014 */ lw $a0, 0x14($s1) +/* 07CEBC 7F04834C 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CEC0 7F048350 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CEC4 7F048354 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 +/* 07CEC8 7F048358 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 +/* 07CECC 7F04835C 0FC1B4CB */ jal setsubroty +/* 07CED0 7F048360 8E240014 */ lw $a0, 0x14($s1) +/* 07CED4 7F048364 10000016 */ b .Ljp7F0483C0 +/* 07CED8 7F048368 00000000 */ nop +.Ljp7F04836C: +/* 07CEDC 7F04836C 0C001A57 */ jal get_stage_num +/* 07CEE0 7F048370 00000000 */ nop +/* 07CEE4 7F048374 2401001A */ li $at, 26 +/* 07CEE8 7F048378 1441000B */ bne $v0, $at, .Ljp7F0483A8 +/* 07CEEC 7F04837C 3C053F85 */ lui $a1, 0x3f85 +/* 07CEF0 7F048380 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CEF4 7F048384 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CEF8 7F048388 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CEFC 7F04838C 8E240014 */ lw $a0, 0x14($s1) +/* 07CF00 7F048390 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b +/* 07CF04 7F048394 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 +/* 07CF08 7F048398 0FC1B4CB */ jal setsubroty +/* 07CF0C 7F04839C 8E240014 */ lw $a0, 0x14($s1) +/* 07CF10 7F0483A0 10000007 */ b .Ljp7F0483C0 +/* 07CF14 7F0483A4 00000000 */ nop +.Ljp7F0483A8: +/* 07CF18 7F0483A8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF1C 7F0483AC 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CF20 7F0483B0 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CF24 7F0483B4 4405B000 */ mfc1 $a1, $f22 +/* 07CF28 7F0483B8 0FC1B4CB */ jal setsubroty +/* 07CF2C 7F0483BC 8E240014 */ lw $a0, 0x14($s1) +.Ljp7F0483C0: +/* 07CF30 7F0483C0 3C058005 */ lui $a1, %hi(clock_timer) # $a1, 0x8005 +/* 07CF34 7F0483C4 8CA583A4 */ lw $a1, %lo(clock_timer)($a1) +/* 07CF38 7F0483C8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF3C 7F0483CC 0FC1C437 */ jal sub_GAME_7F070AEC +/* 07CF40 7F0483D0 24060001 */ li $a2, 1 +/* 07CF44 7F0483D4 0FC1B728 */ jal subcalcpos +/* 07CF48 7F0483D8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF4C 7F0483DC 8E240014 */ lw $a0, 0x14($s1) +/* 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(ptr_setup_path_tbl) # $a1, 0x8007 +/* 07CF60 7F0483F0 24A55D40 */ addiu $a1, %lo(ptr_setup_path_tbl) # 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) +/* 07CF70 7F048400 86220006 */ lh $v0, 6($s1) +/* 07CF74 7F048404 28412710 */ slti $at, $v0, 0x2710 +/* 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(ptr_setup_path_tbl) # $a1, 0x8007 +/* 07CF88 7F048418 01625823 */ subu $t3, $t3, $v0 +/* 07CF8C 7F04841C 24A55D40 */ addiu $a1, %lo(ptr_setup_path_tbl) # 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 +/* 07CF9C 7F04842C 000B5880 */ sll $t3, $t3, 2 +/* 07CFA0 7F048430 10000008 */ b .Ljp7F048454 +/* 07CFA4 7F048434 016E1821 */ addu $v1, $t3, $t6 +.Ljp7F048438: +/* 07CFA8 7F048438 8CAA001C */ lw $t2, 0x1c($a1) +/* 07CFAC 7F04843C 01826021 */ addu $t4, $t4, $v0 +/* 07CFB0 7F048440 000C6080 */ sll $t4, $t4, 2 +/* 07CFB4 7F048444 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 07CFB8 7F048448 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 07CFBC 7F04844C 018A1821 */ addu $v1, $t4, $t2 +/* 07CFC0 7F048450 00611821 */ addu $v1, $v1, $at +.Ljp7F048454: +/* 07CFC4 7F048454 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07CFC8 7F048458 C4660004 */ lwc1 $f6, 4($v1) +/* 07CFCC 7F04845C 46062280 */ add.s $f10, $f4, $f6 +/* 07CFD0 7F048460 E66A000C */ swc1 $f10, 0xc($s3) +/* 07CFD4 7F048464 C668000C */ lwc1 $f8, 0xc($s3) +/* 07CFD8 7F048468 8E240014 */ lw $a0, 0x14($s1) +/* 07CFDC 7F04846C E628005C */ swc1 $f8, 0x5c($s1) +/* 07CFE0 7F048470 0FC1B47F */ jal setsuboffset +/* 07CFE4 7F048474 8FA50074 */ lw $a1, 0x74($sp) +/* 07CFE8 7F048478 C62C00A0 */ lwc1 $f12, 0xa0($s1) +.Ljp7F04847C: +/* 07CFEC 7F04847C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07CFF0 7F048480 460CB03E */ c.le.s $f22, $f12 +/* 07CFF4 7F048484 00000000 */ nop +/* 07CFF8 7F048488 45020016 */ bc1fl .Ljp7F0484E4 +/* 07CFFC 7F04848C C6200094 */ lwc1 $f0, 0x94($s1) +/* 07D000 7F048490 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07D004 7F048494 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D008 7F048498 4602603E */ c.le.s $f12, $f2 +/* 07D00C 7F04849C 00000000 */ nop +/* 07D010 7F0484A0 45020006 */ bc1fl .Ljp7F0484BC +/* 07D014 7F0484A4 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07D018 7F0484A8 C624009C */ lwc1 $f4, 0x9c($s1) +/* 07D01C 7F0484AC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07D020 7F0484B0 10000008 */ b .Ljp7F0484D4 +/* 07D024 7F0484B4 E6240098 */ swc1 $f4, 0x98($s1) +/* 07D028 7F0484B8 C62E0098 */ lwc1 $f14, 0x98($s1) +.Ljp7F0484BC: +/* 07D02C 7F0484BC C626009C */ lwc1 $f6, 0x9c($s1) +/* 07D030 7F0484C0 460E3281 */ sub.s $f10, $f6, $f14 +/* 07D034 7F0484C4 46025202 */ mul.s $f8, $f10, $f2 +/* 07D038 7F0484C8 460C4103 */ div.s $f4, $f8, $f12 +/* 07D03C 7F0484CC 46047180 */ add.s $f6, $f14, $f4 +/* 07D040 7F0484D0 E6260098 */ swc1 $f6, 0x98($s1) +.Ljp7F0484D4: +/* 07D044 7F0484D4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D048 7F0484D8 460A6201 */ sub.s $f8, $f12, $f10 +/* 07D04C 7F0484DC E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07D050 7F0484E0 C6200094 */ lwc1 $f0, 0x94($s1) +.Ljp7F0484E4: +/* 07D054 7F0484E4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D058 7F0484E8 4600B03E */ c.le.s $f22, $f0 +/* 07D05C 7F0484EC 00000000 */ nop +/* 07D060 7F0484F0 45020016 */ bc1fl .Ljp7F04854C +/* 07D064 7F0484F4 8E2F000C */ lw $t7, 0xc($s1) +/* 07D068 7F0484F8 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07D06C 7F0484FC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D070 7F048500 4602003E */ c.le.s $f0, $f2 +/* 07D074 7F048504 00000000 */ nop +/* 07D078 7F048508 45020006 */ bc1fl .Ljp7F048524 +/* 07D07C 7F04850C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D080 7F048510 C6240090 */ lwc1 $f4, 0x90($s1) +/* 07D084 7F048514 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07D088 7F048518 10000008 */ b .Ljp7F04853C +/* 07D08C 7F04851C E624008C */ swc1 $f4, 0x8c($s1) +/* 07D090 7F048520 C62C008C */ lwc1 $f12, 0x8c($s1) +.Ljp7F048524: +/* 07D094 7F048524 C6260090 */ lwc1 $f6, 0x90($s1) +/* 07D098 7F048528 460C3281 */ sub.s $f10, $f6, $f12 +/* 07D09C 7F04852C 46025202 */ mul.s $f8, $f10, $f2 +/* 07D0A0 7F048530 46004103 */ div.s $f4, $f8, $f0 +/* 07D0A4 7F048534 46046180 */ add.s $f6, $f12, $f4 +/* 07D0A8 7F048538 E626008C */ swc1 $f6, 0x8c($s1) +.Ljp7F04853C: +/* 07D0AC 7F04853C C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D0B0 7F048540 460A0201 */ sub.s $f8, $f0, $f10 +/* 07D0B4 7F048544 E6280094 */ swc1 $f8, 0x94($s1) +/* 07D0B8 7F048548 8E2F000C */ lw $t7, 0xc($s1) +.Ljp7F04854C: +/* 07D0BC 7F04854C 00008025 */ move $s0, $zero +/* 07D0C0 7F048550 000F6B00 */ sll $t5, $t7, 0xc +/* 07D0C4 7F048554 05A00014 */ bltz $t5, .Ljp7F0485A8 +/* 07D0C8 7F048558 00000000 */ nop +/* 07D0CC 7F04855C 0FC13CCE */ jal check_if_object_has_not_been_destroyed +/* 07D0D0 7F048560 02202025 */ move $a0, $s1 +/* 07D0D4 7F048564 10400010 */ beqz $v0, .Ljp7F0485A8 +/* 07D0D8 7F048568 00000000 */ nop +/* 07D0DC 7F04856C C624008C */ lwc1 $f4, 0x8c($s1) +/* 07D0E0 7F048570 4604B032 */ c.eq.s $f22, $f4 +/* 07D0E4 7F048574 00000000 */ nop +/* 07D0E8 7F048578 4501000B */ bc1t .Ljp7F0485A8 +/* 07D0EC 7F04857C 00000000 */ nop +/* 07D0F0 7F048580 8E390008 */ lw $t9, 8($s1) +/* 07D0F4 7F048584 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 07D0F8 7F048588 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 07D0FC 7F04858C 00194080 */ sll $t0, $t9, 2 +/* 07D100 7F048590 05000005 */ bltz $t0, .Ljp7F0485A8 +/* 07D104 7F048594 26240058 */ addiu $a0, $s1, 0x58 +/* 07D108 7F048598 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 07D10C 7F04859C 0FC14F64 */ jal sub_GAME_7F053894 +/* 07D110 7F0485A0 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07D114 7F0485A4 00408025 */ move $s0, $v0 +.Ljp7F0485A8: +/* 07D118 7F0485A8 5A000019 */ blezl $s0, .Ljp7F048610 +/* 07D11C 7F0485AC 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07D120 7F0485B0 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07D124 7F0485B4 10800005 */ beqz $a0, .Ljp7F0485CC +/* 07D128 7F0485B8 00000000 */ nop +/* 07D12C 7F0485BC 0C002380 */ jal sfxGetArg0Unk3F +/* 07D130 7F0485C0 00000000 */ nop +/* 07D134 7F0485C4 5440000A */ bnezl $v0, .Ljp7F0485F0 +/* 07D138 7F0485C8 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F0485CC: +/* 07D13C 7F0485CC 0FC3021B */ jal get_controls_locked_flag +/* 07D140 7F0485D0 00000000 */ nop +/* 07D144 7F0485D4 14400005 */ bnez $v0, .Ljp7F0485EC +/* 07D148 7F0485D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D14C 7F0485DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D150 7F0485E0 2405003A */ li $a1, 58 +/* 07D154 7F0485E4 0C002386 */ jal play_sfx_a1 +/* 07D158 7F0485E8 262600B0 */ addiu $a2, $s1, 0xb0 +.Ljp7F0485EC: +/* 07D15C 7F0485EC 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F0485F0: +/* 07D160 7F0485F0 24050008 */ li $a1, 8 +/* 07D164 7F0485F4 5080000F */ beql $a0, $zero, .Ljp7F048634 +/* 07D168 7F0485F8 92220003 */ lbu $v0, 3($s1) +/* 07D16C 7F0485FC 0C002465 */ jal sfx_c_70009184 +/* 07D170 7F048600 02003025 */ move $a2, $s0 +/* 07D174 7F048604 1000000B */ b .Ljp7F048634 +/* 07D178 7F048608 92220003 */ lbu $v0, 3($s1) +/* 07D17C 7F04860C 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F048610: +/* 07D180 7F048610 50800008 */ beql $a0, $zero, .Ljp7F048634 +/* 07D184 7F048614 92220003 */ lbu $v0, 3($s1) +/* 07D188 7F048618 0C002380 */ jal sfxGetArg0Unk3F +/* 07D18C 7F04861C 00000000 */ nop +/* 07D190 7F048620 50400004 */ beql $v0, $zero, .Ljp7F048634 +/* 07D194 7F048624 92220003 */ lbu $v0, 3($s1) +/* 07D198 7F048628 0C00240C */ jal sfxDeactivate +/* 07D19C 7F04862C 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F048630: +/* 07D1A0 7F048630 92220003 */ lbu $v0, 3($s1) +.Ljp7F048634: +/* 07D1A4 7F048634 3C018005 */ lui $at, %hi(D_80052B64) # $at, 0x8005 +/* 07D1A8 7F048638 C4342B94 */ lwc1 $f20, %lo(D_80052B64)($at) +/* 07D1AC 7F04863C 2401002F */ li $at, 47 +/* 07D1B0 7F048640 54410020 */ bnel $v0, $at, .Ljp7F0486C4 +/* 07D1B4 7F048644 24010001 */ li $at, 1 +/* 07D1B8 7F048648 8E700004 */ lw $s0, 4($s3) +/* 07D1BC 7F04864C 26240058 */ addiu $a0, $s1, 0x58 +/* 07D1C0 7F048650 8E180080 */ lw $t8, 0x80($s0) +/* 07D1C4 7F048654 8E090084 */ lw $t1, 0x84($s0) +/* 07D1C8 7F048658 8E070090 */ lw $a3, 0x90($s0) +/* 07D1CC 7F04865C 44983000 */ mtc1 $t8, $f6 +/* 07D1D0 7F048660 44895000 */ mtc1 $t1, $f10 +/* 07D1D4 7F048664 468031A0 */ cvt.s.w $f6, $f6 +/* 07D1D8 7F048668 468052A0 */ cvt.s.w $f10, $f10 +/* 07D1DC 7F04866C 44053000 */ mfc1 $a1, $f6 +/* 07D1E0 7F048670 44065000 */ mfc1 $a2, $f10 +/* 07D1E4 7F048674 0FC1156C */ jal sub_GAME_7F0451DC +/* 07D1E8 7F048678 00000000 */ nop +/* 07D1EC 7F04867C 8E04008C */ lw $a0, 0x8c($s0) +/* 07D1F0 7F048680 AE020088 */ sw $v0, 0x88($s0) +/* 07D1F4 7F048684 8FAB067C */ lw $t3, 0x67c($sp) +/* 07D1F8 7F048688 0480000B */ bltz $a0, .Ljp7F0486B8 +/* 07D1FC 7F04868C 24010001 */ li $at, 1 +/* 07D200 7F048690 15610009 */ bne $t3, $at, .Ljp7F0486B8 +/* 07D204 7F048694 240100FF */ li $at, 255 +/* 07D208 7F048698 14410005 */ bne $v0, $at, .Ljp7F0486B0 +/* 07D20C 7F04869C 00000000 */ nop +/* 07D210 7F0486A0 0FC2EA5B */ jal sub_GAME_7F0B9DBC +/* 07D214 7F0486A4 00002825 */ move $a1, $zero +/* 07D218 7F0486A8 10000003 */ b .Ljp7F0486B8 +/* 07D21C 7F0486AC 00000000 */ nop +.Ljp7F0486B0: +/* 07D220 7F0486B0 0FC2EA5B */ jal sub_GAME_7F0B9DBC +/* 07D224 7F0486B4 24050001 */ li $a1, 1 +.Ljp7F0486B8: +/* 07D228 7F0486B8 1000003B */ b .Ljp7F0487A8 +/* 07D22C 7F0486BC AFA00678 */ sw $zero, 0x678($sp) +/* 07D230 7F0486C0 24010001 */ li $at, 1 +.Ljp7F0486C4: +/* 07D234 7F0486C4 54410039 */ bnel $v0, $at, .Ljp7F0487AC +/* 07D238 7F0486C8 922C0003 */ lbu $t4, 3($s1) +/* 07D23C 7F0486CC 962C0098 */ lhu $t4, 0x98($s1) +/* 07D240 7F0486D0 318A0002 */ andi $t2, $t4, 2 +/* 07D244 7F0486D4 51400035 */ beql $t2, $zero, .Ljp7F0487AC +/* 07D248 7F0486D8 922C0003 */ lbu $t4, 3($s1) +/* 07D24C 7F0486DC 8E700004 */ lw $s0, 4($s3) +/* 07D250 7F0486E0 4407B000 */ mfc1 $a3, $f22 +/* 07D254 7F0486E4 24120001 */ li $s2, 1 +/* 07D258 7F0486E8 8E0F00C0 */ lw $t7, 0xc0($s0) +/* 07D25C 7F0486EC 8E0D00C4 */ lw $t5, 0xc4($s0) +/* 07D260 7F0486F0 26240058 */ addiu $a0, $s1, 0x58 +/* 07D264 7F0486F4 448F4000 */ mtc1 $t7, $f8 +/* 07D268 7F0486F8 448D2000 */ mtc1 $t5, $f4 +/* 07D26C 7F0486FC 46804220 */ cvt.s.w $f8, $f8 +/* 07D270 7F048700 46802120 */ cvt.s.w $f4, $f4 +/* 07D274 7F048704 44054000 */ mfc1 $a1, $f8 +/* 07D278 7F048708 44062000 */ mfc1 $a2, $f4 +/* 07D27C 7F04870C 0FC1156C */ jal sub_GAME_7F0451DC +/* 07D280 7F048710 00000000 */ nop +/* 07D284 7F048714 A60200BE */ sh $v0, 0xbe($s0) +/* 07D288 7F048718 8FB9067C */ lw $t9, 0x67c($sp) +/* 07D28C 7F04871C 24010001 */ li $at, 1 +/* 07D290 7F048720 57210022 */ bnel $t9, $at, .Ljp7F0487AC +/* 07D294 7F048724 922C0003 */ lbu $t4, 3($s1) +/* 07D298 7F048728 860800BE */ lh $t0, 0xbe($s0) +/* 07D29C 7F04872C 240100FF */ li $at, 255 +/* 07D2A0 7F048730 55010007 */ bnel $t0, $at, .Ljp7F048750 +/* 07D2A4 7F048734 00009025 */ move $s2, $zero +/* 07D2A8 7F048738 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07D2AC 7F04873C 4606B03C */ c.lt.s $f22, $f6 +/* 07D2B0 7F048740 00000000 */ nop +/* 07D2B4 7F048744 45020003 */ bc1fl .Ljp7F048754 +/* 07D2B8 7F048748 8E820008 */ lw $v0, 8($s4) +/* 07D2BC 7F04874C 00009025 */ move $s2, $zero +.Ljp7F048750: +/* 07D2C0 7F048750 8E820008 */ lw $v0, 8($s4) +.Ljp7F048754: +/* 07D2C4 7F048754 3C188004 */ lui $t8, %hi(prop_door_related) # $t8, 0x8004 +/* 07D2C8 7F048758 2718A20C */ addiu $t8, %lo(prop_door_related) # addiu $t8, $t8, -0x5df4 +/* 07D2CC 7F04875C 8C490004 */ lw $t1, 4($v0) +/* 07D2D0 7F048760 17090009 */ bne $t8, $t1, .Ljp7F048788 +/* 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 +/* 07D2E4 7F048774 8D650004 */ lw $a1, 4($t3) +/* 07D2E8 7F048778 8C4E0000 */ lw $t6, ($v0) +/* 07D2EC 7F04877C 15C00002 */ bnez $t6, .Ljp7F048788 +/* 07D2F0 7F048780 00000000 */ nop +/* 07D2F4 7F048784 00009025 */ move $s2, $zero +.Ljp7F048788: +/* 07D2F8 7F048788 12400005 */ beqz $s2, .Ljp7F0487A0 +/* 07D2FC 7F04878C 00000000 */ nop +/* 07D300 7F048790 0FC14EB0 */ jal sub_GAME_7F0535C4 +/* 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 +/* 07D314 7F0487A4 02002025 */ move $a0, $s0 +.Ljp7F0487A8: +/* 07D318 7F0487A8 922C0003 */ lbu $t4, 3($s1) +.Ljp7F0487AC: +/* 07D31C 7F0487AC 2410002D */ li $s0, 45 +/* 07D320 7F0487B0 560C0008 */ bnel $s0, $t4, .Ljp7F0487D4 +/* 07D324 7F0487B4 8E23000C */ lw $v1, 0xc($s1) +/* 07D328 7F0487B8 0FC1F52A */ jal get_ptr_for_players_tank +/* 07D32C 7F0487BC 00000000 */ nop +/* 07D330 7F0487C0 54530004 */ bnel $v0, $s3, .Ljp7F0487D4 +/* 07D334 7F0487C4 8E23000C */ lw $v1, 0xc($s1) +/* 07D338 7F0487C8 10000019 */ b .Ljp7F048830 +/* 07D33C 7F0487CC 24030001 */ li $v1, 1 +/* 07D340 7F0487D0 8E23000C */ lw $v1, 0xc($s1) +.Ljp7F0487D4: +/* 07D344 7F0487D4 00035140 */ sll $t2, $v1, 5 +/* 07D348 7F0487D8 05430004 */ bgezl $t2, .Ljp7F0487EC +/* 07D34C 7F0487DC 8E2F0064 */ lw $t7, 0x64($s1) +/* 07D350 7F0487E0 10000013 */ b .Ljp7F048830 +/* 07D354 7F0487E4 24030001 */ li $v1, 1 +/* 07D358 7F0487E8 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F0487EC: +/* 07D35C 7F0487EC 0003CB00 */ sll $t9, $v1, 0xc +/* 07D360 7F0487F0 00001825 */ move $v1, $zero +/* 07D364 7F0487F4 31ED0800 */ andi $t5, $t7, 0x800 +/* 07D368 7F0487F8 15A0000D */ bnez $t5, .Ljp7F048830 +/* 07D36C 7F0487FC 00000000 */ nop +/* 07D370 7F048800 0720000B */ bltz $t9, .Ljp7F048830 +/* 07D374 7F048804 02802025 */ move $a0, $s4 +/* 07D378 7F048808 26280058 */ addiu $t0, $s1, 0x58 +/* 07D37C 7F04880C 0FC1B57F */ jal getinstsize +/* 07D380 7F048810 AFA80074 */ sw $t0, 0x74($sp) +/* 07D384 7F048814 44060000 */ mfc1 $a2, $f0 +/* 07D388 7F048818 02602025 */ move $a0, $s3 +/* 07D38C 7F04881C 8FA50074 */ lw $a1, 0x74($sp) +/* 07D390 7F048820 0FC1549A */ jal sub_GAME_7F054D6C +/* 07D394 7F048824 8FA70678 */ lw $a3, 0x678($sp) +/* 07D398 7F048828 10000001 */ b .Ljp7F048830 +/* 07D39C 7F04882C 00401825 */ move $v1, $v0 +.Ljp7F048830: +/* 07D3A0 7F048830 1060037A */ beqz $v1, .Ljp7F04961C +/* 07D3A4 7F048834 8FB80680 */ lw $t8, 0x680($sp) +/* 07D3A8 7F048838 13000003 */ beqz $t8, .Ljp7F048848 +/* 07D3AC 7F04883C 26240078 */ addiu $a0, $s1, 0x78 +/* 07D3B0 7F048840 0FC10184 */ jal update_color_shading +/* 07D3B4 7F048844 2625007C */ addiu $a1, $s1, 0x7c +.Ljp7F048848: +/* 07D3B8 7F048848 92690001 */ lbu $t1, 1($s3) +/* 07D3BC 7F04884C 352B0002 */ ori $t3, $t1, 2 +/* 07D3C0 7F048850 A26B0001 */ sb $t3, 1($s3) +/* 07D3C4 7F048854 8E8E0008 */ lw $t6, 8($s4) +/* 07D3C8 7F048858 85C4000E */ lh $a0, 0xe($t6) +/* 07D3CC 7F04885C 00046180 */ sll $t4, $a0, 6 +/* 07D3D0 7F048860 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 07D3D4 7F048864 01802025 */ move $a0, $t4 +/* 07D3D8 7F048868 AE82000C */ sw $v0, 0xc($s4) +/* 07D3DC 7F04886C 922A0003 */ lbu $t2, 3($s1) +/* 07D3E0 7F048870 24010001 */ li $at, 1 +/* 07D3E4 7F048874 00409025 */ move $s2, $v0 +/* 07D3E8 7F048878 154100AD */ bne $t2, $at, .Ljp7F048B30 +/* 07D3EC 7F04887C 26240018 */ addiu $a0, $s1, 0x18 +/* 07D3F0 7F048880 8E640004 */ lw $a0, 4($s3) +/* 07D3F4 7F048884 00402825 */ move $a1, $v0 +/* 07D3F8 7F048888 0FC14AFA */ jal sub_GAME_7F0526EC +/* 07D3FC 7F04888C AFA403A0 */ sw $a0, 0x3a0($sp) +/* 07D400 7F048890 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D404 7F048894 00000000 */ nop +/* 07D408 7F048898 00402025 */ move $a0, $v0 +/* 07D40C 7F04889C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D410 7F0488A0 02402825 */ move $a1, $s2 +/* 07D414 7F0488A4 8E820008 */ lw $v0, 8($s4) +/* 07D418 7F0488A8 3C0F8004 */ lui $t7, %hi(prop_eyelid_door_related) # $t7, 0x8004 +/* 07D41C 7F0488AC 25EFA130 */ addiu $t7, %lo(prop_eyelid_door_related) # addiu $t7, $t7, -0x5ed0 +/* 07D420 7F0488B0 8C430004 */ lw $v1, 4($v0) +/* 07D424 7F0488B4 3C0B8004 */ lui $t3, %hi(prop_iris_door_related) # $t3, 0x8004 +/* 07D428 7F0488B8 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 07D42C 7F0488BC 15E30025 */ bne $t7, $v1, .Ljp7F048954 +/* 07D430 7F0488C0 256BA18C */ addiu $t3, %lo(prop_iris_door_related) # addiu $t3, $t3, -0x5e74 +/* 07D434 7F0488C4 C4CA00B4 */ lwc1 $f10, 0xb4($a2) +/* 07D438 7F0488C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D43C 7F0488CC 44812000 */ mtc1 $at, $f4 +/* 07D440 7F0488D0 46145202 */ mul.s $f8, $f10, $f20 +/* 07D444 7F0488D4 8C4D0008 */ lw $t5, 8($v0) +/* 07D448 7F0488D8 26450040 */ addiu $a1, $s2, 0x40 +/* 07D44C 7F0488DC 8DB90004 */ lw $t9, 4($t5) +/* 07D450 7F0488E0 46044183 */ div.s $f6, $f8, $f4 +/* 07D454 7F0488E4 8F300004 */ lw $s0, 4($t9) +/* 07D458 7F0488E8 AFA50070 */ sw $a1, 0x70($sp) +/* 07D45C 7F0488EC 4606A301 */ sub.s $f12, $f20, $f6 +/* 07D460 7F0488F0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D464 7F0488F4 E7AC0398 */ swc1 $f12, 0x398($sp) +/* 07D468 7F0488F8 02002025 */ move $a0, $s0 +/* 07D46C 7F0488FC 0FC163AE */ jal matrix_4x4_set_position +/* 07D470 7F048900 8FA50070 */ lw $a1, 0x70($sp) +/* 07D474 7F048904 02402025 */ move $a0, $s2 +/* 07D478 7F048908 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D47C 7F04890C 8FA50070 */ lw $a1, 0x70($sp) +/* 07D480 7F048910 8E880008 */ lw $t0, 8($s4) +/* 07D484 7F048914 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 07D488 7F048918 26450080 */ addiu $a1, $s2, 0x80 +/* 07D48C 7F04891C 8D180008 */ lw $t8, 8($t0) +/* 07D490 7F048920 460AA301 */ sub.s $f12, $f20, $f10 +/* 07D494 7F048924 8F090008 */ lw $t1, 8($t8) +/* 07D498 7F048928 8D300004 */ lw $s0, 4($t1) +/* 07D49C 7F04892C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D4A0 7F048930 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D4A4 7F048934 02002025 */ move $a0, $s0 +/* 07D4A8 7F048938 0FC163AE */ jal matrix_4x4_set_position +/* 07D4AC 7F04893C 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D4B0 7F048940 02402025 */ move $a0, $s2 +/* 07D4B4 7F048944 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D4B8 7F048948 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D4BC 7F04894C 1000031F */ b .Ljp7F0495CC +/* 07D4C0 7F048950 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F048954: +/* 07D4C4 7F048954 5563031D */ bnel $t3, $v1, .Ljp7F0495CC +/* 07D4C8 7F048958 8E8C0008 */ lw $t4, 8($s4) +/* 07D4CC 7F04895C C4C200B4 */ lwc1 $f2, 0xb4($a2) +/* 07D4D0 7F048960 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D4D4 7F048964 44812000 */ mtc1 $at, $f4 +/* 07D4D8 7F048968 46141202 */ mul.s $f8, $f2, $f20 +/* 07D4DC 7F04896C 3C018005 */ lui $at, %hi(D_80052B68) # $at, 0x8005 +/* 07D4E0 7F048970 C42A2B98 */ lwc1 $f10, %lo(D_80052B68)($at) +/* 07D4E4 7F048974 4600B386 */ mov.s $f14, $f22 +/* 07D4E8 7F048978 46044183 */ div.s $f6, $f8, $f4 +/* 07D4EC 7F04897C E7A60388 */ swc1 $f6, 0x388($sp) +/* 07D4F0 7F048980 C4CC0084 */ lwc1 $f12, 0x84($a2) +/* 07D4F4 7F048984 460A6002 */ mul.s $f0, $f12, $f10 +/* 07D4F8 7F048988 4602003C */ c.lt.s $f0, $f2 +/* 07D4FC 7F04898C 00000000 */ nop +/* 07D500 7F048990 4502001F */ bc1fl .Ljp7F048A10 +/* 07D504 7F048994 8FAA0680 */ lw $t2, 0x680($sp) +/* 07D508 7F048998 46001201 */ sub.s $f8, $f2, $f0 +/* 07D50C 7F04899C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D510 7F0489A0 8FAE0680 */ lw $t6, 0x680($sp) +/* 07D514 7F0489A4 46006181 */ sub.s $f6, $f12, $f0 +/* 07D518 7F0489A8 46086102 */ mul.s $f4, $f12, $f8 +/* 07D51C 7F0489AC 46062283 */ div.s $f10, $f4, $f6 +/* 07D520 7F0489B0 44812000 */ mtc1 $at, $f4 +/* 07D524 7F0489B4 46145202 */ mul.s $f8, $f10, $f20 +/* 07D528 7F0489B8 46044383 */ div.s $f14, $f8, $f4 +/* 07D52C 7F0489BC 11C00011 */ beqz $t6, .Ljp7F048A04 +/* 07D530 7F0489C0 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D534 7F0489C4 C7A60684 */ lwc1 $f6, 0x684($sp) +/* 07D538 7F0489C8 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D53C 7F0489CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D540 7F0489D0 4600303E */ c.le.s $f6, $f0 +/* 07D544 7F0489D4 240500CA */ li $a1, 202 +/* 07D548 7F0489D8 00003025 */ move $a2, $zero +/* 07D54C 7F0489DC 266C0008 */ addiu $t4, $s3, 8 +/* 07D550 7F0489E0 45000008 */ bc1f .Ljp7F048A04 +/* 07D554 7F0489E4 00000000 */ nop +/* 07D558 7F0489E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D55C 7F0489EC AFAC0074 */ sw $t4, 0x74($sp) +/* 07D560 7F0489F0 0C002386 */ jal play_sfx_a1 +/* 07D564 7F0489F4 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D568 7F0489F8 00402025 */ move $a0, $v0 +/* 07D56C 7F0489FC 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07D570 7F048A00 8FA50074 */ lw $a1, 0x74($sp) +.Ljp7F048A04: +/* 07D574 7F048A04 10000016 */ b .Ljp7F048A60 +/* 07D578 7F048A08 AFA00390 */ sw $zero, 0x390($sp) +/* 07D57C 7F048A0C 8FAA0680 */ lw $t2, 0x680($sp) +.Ljp7F048A10: +/* 07D580 7F048A10 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D584 7F048A14 51400012 */ beql $t2, $zero, .Ljp7F048A60 +/* 07D588 7F048A18 AFA00390 */ sw $zero, 0x390($sp) +/* 07D58C 7F048A1C C7AA0684 */ lwc1 $f10, 0x684($sp) +/* 07D590 7F048A20 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D594 7F048A24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D598 7F048A28 460A003C */ c.lt.s $f0, $f10 +/* 07D59C 7F048A2C 240500CB */ li $a1, 203 +/* 07D5A0 7F048A30 00003025 */ move $a2, $zero +/* 07D5A4 7F048A34 266F0008 */ addiu $t7, $s3, 8 +/* 07D5A8 7F048A38 45020009 */ bc1fl .Ljp7F048A60 +/* 07D5AC 7F048A3C AFA00390 */ sw $zero, 0x390($sp) +/* 07D5B0 7F048A40 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D5B4 7F048A44 AFAF0074 */ sw $t7, 0x74($sp) +/* 07D5B8 7F048A48 0C002386 */ jal play_sfx_a1 +/* 07D5BC 7F048A4C E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D5C0 7F048A50 00402025 */ move $a0, $v0 +/* 07D5C4 7F048A54 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07D5C8 7F048A58 8FA50074 */ lw $a1, 0x74($sp) +/* 07D5CC 7F048A5C AFA00390 */ sw $zero, 0x390($sp) +.Ljp7F048A60: +/* 07D5D0 7F048A60 8E8D0008 */ lw $t5, 8($s4) +/* 07D5D4 7F048A64 8FA30390 */ lw $v1, 0x390($sp) +/* 07D5D8 7F048A68 C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 07D5DC 7F048A6C 8DB90008 */ lw $t9, 8($t5) +/* 07D5E0 7F048A70 00031040 */ sll $v0, $v1, 1 +/* 07D5E4 7F048A74 00024080 */ sll $t0, $v0, 2 +/* 07D5E8 7F048A78 0328C021 */ addu $t8, $t9, $t0 +/* 07D5EC 7F048A7C 8F090004 */ lw $t1, 4($t8) +/* 07D5F0 7F048A80 00027180 */ sll $t6, $v0, 6 +/* 07D5F4 7F048A84 024E2821 */ addu $a1, $s2, $t6 +/* 07D5F8 7F048A88 8D2B0004 */ lw $t3, 4($t1) +/* 07D5FC 7F048A8C AFA20078 */ sw $v0, 0x78($sp) +/* 07D600 7F048A90 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D604 7F048A94 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D608 7F048A98 AFAB0394 */ sw $t3, 0x394($sp) +/* 07D60C 7F048A9C 8FAC0078 */ lw $t4, 0x78($sp) +/* 07D610 7F048AA0 8FB00390 */ lw $s0, 0x390($sp) +/* 07D614 7F048AA4 8FA40394 */ lw $a0, 0x394($sp) +/* 07D618 7F048AA8 000C5180 */ sll $t2, $t4, 6 +/* 07D61C 7F048AAC 024A2821 */ addu $a1, $s2, $t2 +/* 07D620 7F048AB0 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D624 7F048AB4 0FC163AE */ jal matrix_4x4_set_position +/* 07D628 7F048AB8 AFA50074 */ sw $a1, 0x74($sp) +/* 07D62C 7F048ABC 02402025 */ move $a0, $s2 +/* 07D630 7F048AC0 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D634 7F048AC4 8FA50074 */ lw $a1, 0x74($sp) +/* 07D638 7F048AC8 8E8F0008 */ lw $t7, 8($s4) +/* 07D63C 7F048ACC 8FA20078 */ lw $v0, 0x78($sp) +/* 07D640 7F048AD0 C7AC0388 */ lwc1 $f12, 0x388($sp) +/* 07D644 7F048AD4 8DED0008 */ lw $t5, 8($t7) +/* 07D648 7F048AD8 24420002 */ addiu $v0, $v0, 2 +/* 07D64C 7F048ADC 0002C880 */ sll $t9, $v0, 2 +/* 07D650 7F048AE0 01B94021 */ addu $t0, $t5, $t9 +/* 07D654 7F048AE4 8D180000 */ lw $t8, ($t0) +/* 07D658 7F048AE8 00025980 */ sll $t3, $v0, 6 +/* 07D65C 7F048AEC 024B2821 */ addu $a1, $s2, $t3 +/* 07D660 7F048AF0 8F090004 */ lw $t1, 4($t8) +/* 07D664 7F048AF4 AFA50070 */ sw $a1, 0x70($sp) +/* 07D668 7F048AF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D66C 7F048AFC AFA90394 */ sw $t1, 0x394($sp) +/* 07D670 7F048B00 8FA40394 */ lw $a0, 0x394($sp) +/* 07D674 7F048B04 0FC163AE */ jal matrix_4x4_set_position +/* 07D678 7F048B08 8FA50070 */ lw $a1, 0x70($sp) +/* 07D67C 7F048B0C 8FA40074 */ lw $a0, 0x74($sp) +/* 07D680 7F048B10 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D684 7F048B14 8FA50070 */ lw $a1, 0x70($sp) +/* 07D688 7F048B18 26100001 */ addiu $s0, $s0, 1 +/* 07D68C 7F048B1C 24010006 */ li $at, 6 +/* 07D690 7F048B20 1601FFCF */ bne $s0, $at, .Ljp7F048A60 +/* 07D694 7F048B24 AFB00390 */ sw $s0, 0x390($sp) +/* 07D698 7F048B28 100002A8 */ b .Ljp7F0495CC +/* 07D69C 7F048B2C 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F048B30: +/* 07D6A0 7F048B30 262E0058 */ addiu $t6, $s1, 0x58 +/* 07D6A4 7F048B34 AFAE0074 */ sw $t6, 0x74($sp) +/* 07D6A8 7F048B38 0FC16150 */ jal matrix_4x4_copy +/* 07D6AC 7F048B3C 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6B0 7F048B40 8FA40074 */ lw $a0, 0x74($sp) +/* 07D6B4 7F048B44 0FC163AE */ jal matrix_4x4_set_position +/* 07D6B8 7F048B48 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6BC 7F048B4C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D6C0 7F048B50 00000000 */ nop +/* 07D6C4 7F048B54 00402025 */ move $a0, $v0 +/* 07D6C8 7F048B58 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6CC 7F048B5C 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07D6D0 7F048B60 02403025 */ move $a2, $s2 +/* 07D6D4 7F048B64 92220003 */ lbu $v0, 3($s1) +/* 07D6D8 7F048B68 24010006 */ li $at, 6 +/* 07D6DC 7F048B6C 27A50324 */ addiu $a1, $sp, 0x324 +/* 07D6E0 7F048B70 5441002D */ bnel $v0, $at, .Ljp7F048C28 +/* 07D6E4 7F048B74 2401000D */ li $at, 13 +/* 07D6E8 7F048B78 8E620004 */ lw $v0, 4($s3) +/* 07D6EC 7F048B7C 8E8C0008 */ lw $t4, 8($s4) +/* 07D6F0 7F048B80 C44C00C8 */ lwc1 $f12, 0xc8($v0) +/* 07D6F4 7F048B84 8D8A0008 */ lw $t2, 8($t4) +/* 07D6F8 7F048B88 4616603C */ c.lt.s $f12, $f22 +/* 07D6FC 7F048B8C 8D4F0000 */ lw $t7, ($t2) +/* 07D700 7F048B90 45000003 */ bc1f .Ljp7F048BA0 +/* 07D704 7F048B94 8DF00004 */ lw $s0, 4($t7) +/* 07D708 7F048B98 10000006 */ b .Ljp7F048BB4 +/* 07D70C 7F048B9C 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F048BA0: +/* 07D710 7F048BA0 460CA03E */ c.le.s $f20, $f12 +/* 07D714 7F048BA4 00000000 */ nop +/* 07D718 7F048BA8 45000002 */ bc1f .Ljp7F048BB4 +/* 07D71C 7F048BAC 00000000 */ nop +/* 07D720 7F048BB0 46146301 */ sub.s $f12, $f12, $f20 +.Ljp7F048BB4: +/* 07D724 7F048BB4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07D728 7F048BB8 AFA20374 */ sw $v0, 0x374($sp) +/* 07D72C 7F048BBC 8FA20374 */ lw $v0, 0x374($sp) +/* 07D730 7F048BC0 26460040 */ addiu $a2, $s2, 0x40 +/* 07D734 7F048BC4 AFA60070 */ sw $a2, 0x70($sp) +/* 07D738 7F048BC8 27A40324 */ addiu $a0, $sp, 0x324 +/* 07D73C 7F048BCC 0FC1617A */ jal matrix_4x4_multiply +/* 07D740 7F048BD0 24450084 */ addiu $a1, $v0, 0x84 +/* 07D744 7F048BD4 C6080000 */ lwc1 $f8, ($s0) +/* 07D748 7F048BD8 27B20364 */ addiu $s2, $sp, 0x364 +/* 07D74C 7F048BDC 02402825 */ move $a1, $s2 +/* 07D750 7F048BE0 E7A80364 */ swc1 $f8, 0x364($sp) +/* 07D754 7F048BE4 C6040004 */ lwc1 $f4, 4($s0) +/* 07D758 7F048BE8 27A403A8 */ addiu $a0, $sp, 0x3a8 +/* 07D75C 7F048BEC E7A40368 */ swc1 $f4, 0x368($sp) +/* 07D760 7F048BF0 C6060008 */ lwc1 $f6, 8($s0) +/* 07D764 7F048BF4 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07D768 7F048BF8 E7A6036C */ swc1 $f6, 0x36c($sp) +/* 07D76C 7F048BFC 02402025 */ move $a0, $s2 +/* 07D770 7F048C00 0FC163AE */ jal matrix_4x4_set_position +/* 07D774 7F048C04 8FA50070 */ lw $a1, 0x70($sp) +/* 07D778 7F048C08 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D77C 7F048C0C 00000000 */ nop +/* 07D780 7F048C10 00402025 */ move $a0, $v0 +/* 07D784 7F048C14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D788 7F048C18 8FA50070 */ lw $a1, 0x70($sp) +/* 07D78C 7F048C1C 1000026B */ b .Ljp7F0495CC +/* 07D790 7F048C20 8E8C0008 */ lw $t4, 8($s4) +/* 07D794 7F048C24 2401000D */ li $at, 13 +.Ljp7F048C28: +/* 07D798 7F048C28 5441007F */ bnel $v0, $at, .Ljp7F048E28 +/* 07D79C 7F048C2C 24010008 */ li $at, 8 +/* 07D7A0 7F048C30 8E620004 */ lw $v0, 4($s3) +/* 07D7A4 7F048C34 3C018005 */ lui $at, %hi(D_80052B6C) # $at, 0x8005 +/* 07D7A8 7F048C38 C4282B9C */ lwc1 $f8, %lo(D_80052B6C)($at) +/* 07D7AC 7F048C3C C44A0090 */ lwc1 $f10, 0x90($v0) +/* 07D7B0 7F048C40 C444009C */ lwc1 $f4, 0x9c($v0) +/* 07D7B4 7F048C44 46085300 */ add.s $f12, $f10, $f8 +/* 07D7B8 7F048C48 46002187 */ neg.s $f6, $f4 +/* 07D7BC 7F048C4C 460CA03E */ c.le.s $f20, $f12 +/* 07D7C0 7F048C50 E7A60304 */ swc1 $f6, 0x304($sp) +/* 07D7C4 7F048C54 45020003 */ bc1fl .Ljp7F048C64 +/* 07D7C8 7F048C58 8E8D0008 */ lw $t5, 8($s4) +/* 07D7CC 7F048C5C 46146301 */ sub.s $f12, $f12, $f20 +/* 07D7D0 7F048C60 8E8D0008 */ lw $t5, 8($s4) +.Ljp7F048C64: +/* 07D7D4 7F048C64 27A403A8 */ addiu $a0, $sp, 0x3a8 +/* 07D7D8 7F048C68 27A5030C */ addiu $a1, $sp, 0x30c +/* 07D7DC 7F048C6C 8DB90008 */ lw $t9, 8($t5) +/* 07D7E0 7F048C70 8F280004 */ lw $t0, 4($t9) +/* 07D7E4 7F048C74 8D100004 */ lw $s0, 4($t0) +/* 07D7E8 7F048C78 C60A0000 */ lwc1 $f10, ($s0) +/* 07D7EC 7F048C7C E7AA030C */ swc1 $f10, 0x30c($sp) +/* 07D7F0 7F048C80 C6080004 */ lwc1 $f8, 4($s0) +/* 07D7F4 7F048C84 E7A80310 */ swc1 $f8, 0x310($sp) +/* 07D7F8 7F048C88 C6040008 */ lwc1 $f4, 8($s0) +/* 07D7FC 7F048C8C E7AC0308 */ swc1 $f12, 0x308($sp) +/* 07D800 7F048C90 AFA2031C */ sw $v0, 0x31c($sp) +/* 07D804 7F048C94 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07D808 7F048C98 E7A40314 */ swc1 $f4, 0x314($sp) +/* 07D80C 7F048C9C 26450040 */ addiu $a1, $s2, 0x40 +/* 07D810 7F048CA0 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 07D814 7F048CA4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07D818 7F048CA8 AFA50070 */ sw $a1, 0x70($sp) +/* 07D81C 7F048CAC 27A4030C */ addiu $a0, $sp, 0x30c +/* 07D820 7F048CB0 0FC163AE */ jal matrix_4x4_set_position +/* 07D824 7F048CB4 8FA50070 */ lw $a1, 0x70($sp) +/* 07D828 7F048CB8 8FB8031C */ lw $t8, 0x31c($sp) +/* 07D82C 7F048CBC 8FA50070 */ lw $a1, 0x70($sp) +/* 07D830 7F048CC0 8F090014 */ lw $t1, 0x14($t8) +/* 07D834 7F048CC4 0FC163E7 */ jal matrix_scalar_multiply +/* 07D838 7F048CC8 C52C0014 */ lwc1 $f12, 0x14($t1) +/* 07D83C 7F048CCC 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D840 7F048CD0 00000000 */ nop +/* 07D844 7F048CD4 00402025 */ move $a0, $v0 +/* 07D848 7F048CD8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D84C 7F048CDC 8FA50070 */ lw $a1, 0x70($sp) +/* 07D850 7F048CE0 8E8B0008 */ lw $t3, 8($s4) +/* 07D854 7F048CE4 26450080 */ addiu $a1, $s2, 0x80 +/* 07D858 7F048CE8 C7AC0304 */ lwc1 $f12, 0x304($sp) +/* 07D85C 7F048CEC 8D6E0008 */ lw $t6, 8($t3) +/* 07D860 7F048CF0 8DCC0008 */ lw $t4, 8($t6) +/* 07D864 7F048CF4 8D900004 */ lw $s0, 4($t4) +/* 07D868 7F048CF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D86C 7F048CFC AFA5006C */ sw $a1, 0x6c($sp) +/* 07D870 7F048D00 02002025 */ move $a0, $s0 +/* 07D874 7F048D04 0FC163AE */ jal matrix_4x4_set_position +/* 07D878 7F048D08 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D87C 7F048D0C 8FA40070 */ lw $a0, 0x70($sp) +/* 07D880 7F048D10 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D884 7F048D14 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D888 7F048D18 8E8A0008 */ lw $t2, 8($s4) +/* 07D88C 7F048D1C 02802025 */ move $a0, $s4 +/* 07D890 7F048D20 8D430008 */ lw $v1, 8($t2) +/* 07D894 7F048D24 8C65000C */ lw $a1, 0xc($v1) +/* 07D898 7F048D28 50A00016 */ beql $a1, $zero, .Ljp7F048D84 +/* 07D89C 7F048D2C 8C650010 */ lw $a1, 0x10($v1) +/* 07D8A0 7F048D30 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D8A4 7F048D34 00003025 */ move $a2, $zero +/* 07D8A8 7F048D38 AFA20300 */ sw $v0, 0x300($sp) +/* 07D8AC 7F048D3C 8E8F0008 */ lw $t7, 8($s4) +/* 07D8B0 7F048D40 8FA8031C */ lw $t0, 0x31c($sp) +/* 07D8B4 7F048D44 00402825 */ move $a1, $v0 +/* 07D8B8 7F048D48 8DED0008 */ lw $t5, 8($t7) +/* 07D8BC 7F048D4C C50C00B4 */ lwc1 $f12, 0xb4($t0) +/* 07D8C0 7F048D50 8DB9000C */ lw $t9, 0xc($t5) +/* 07D8C4 7F048D54 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D8C8 7F048D58 8F300004 */ lw $s0, 4($t9) +/* 07D8CC 7F048D5C 8FB20300 */ lw $s2, 0x300($sp) +/* 07D8D0 7F048D60 02002025 */ move $a0, $s0 +/* 07D8D4 7F048D64 0FC163AE */ jal matrix_4x4_set_position +/* 07D8D8 7F048D68 02402825 */ move $a1, $s2 +/* 07D8DC 7F048D6C 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D8E0 7F048D70 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8E4 7F048D74 02402825 */ move $a1, $s2 +/* 07D8E8 7F048D78 8E980008 */ lw $t8, 8($s4) +/* 07D8EC 7F048D7C 8F030008 */ lw $v1, 8($t8) +/* 07D8F0 7F048D80 8C650010 */ lw $a1, 0x10($v1) +.Ljp7F048D84: +/* 07D8F4 7F048D84 02802025 */ move $a0, $s4 +/* 07D8F8 7F048D88 50A00010 */ beql $a1, $zero, .Ljp7F048DCC +/* 07D8FC 7F048D8C 8C650018 */ lw $a1, 0x18($v1) +/* 07D900 7F048D90 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D904 7F048D94 00003025 */ move $a2, $zero +/* 07D908 7F048D98 8E890008 */ lw $t1, 8($s4) +/* 07D90C 7F048D9C 00409025 */ move $s2, $v0 +/* 07D910 7F048DA0 00402825 */ move $a1, $v0 +/* 07D914 7F048DA4 8D2B0008 */ lw $t3, 8($t1) +/* 07D918 7F048DA8 8D6E0010 */ lw $t6, 0x10($t3) +/* 07D91C 7F048DAC 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07D920 7F048DB0 8DC40004 */ lw $a0, 4($t6) +/* 07D924 7F048DB4 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D928 7F048DB8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D92C 7F048DBC 02402825 */ move $a1, $s2 +/* 07D930 7F048DC0 8E8C0008 */ lw $t4, 8($s4) +/* 07D934 7F048DC4 8D830008 */ lw $v1, 8($t4) +/* 07D938 7F048DC8 8C650018 */ lw $a1, 0x18($v1) +.Ljp7F048DCC: +/* 07D93C 7F048DCC 02802025 */ move $a0, $s4 +/* 07D940 7F048DD0 50A001FE */ beql $a1, $zero, .Ljp7F0495CC +/* 07D944 7F048DD4 8E8C0008 */ lw $t4, 8($s4) +/* 07D948 7F048DD8 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D94C 7F048DDC 00003025 */ move $a2, $zero +/* 07D950 7F048DE0 8E8A0008 */ lw $t2, 8($s4) +/* 07D954 7F048DE4 8FB9031C */ lw $t9, 0x31c($sp) +/* 07D958 7F048DE8 00409025 */ move $s2, $v0 +/* 07D95C 7F048DEC 8D4F0008 */ lw $t7, 8($t2) +/* 07D960 7F048DF0 00402825 */ move $a1, $v0 +/* 07D964 7F048DF4 C72C00B4 */ lwc1 $f12, 0xb4($t9) +/* 07D968 7F048DF8 8DED0018 */ lw $t5, 0x18($t7) +/* 07D96C 7F048DFC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D970 7F048E00 8DB00004 */ lw $s0, 4($t5) +/* 07D974 7F048E04 02002025 */ move $a0, $s0 +/* 07D978 7F048E08 0FC163AE */ jal matrix_4x4_set_position +/* 07D97C 7F048E0C 02402825 */ move $a1, $s2 +/* 07D980 7F048E10 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D984 7F048E14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D988 7F048E18 02402825 */ move $a1, $s2 +/* 07D98C 7F048E1C 100001EB */ b .Ljp7F0495CC +/* 07D990 7F048E20 8E8C0008 */ lw $t4, 8($s4) +/* 07D994 7F048E24 24010008 */ li $at, 8 +.Ljp7F048E28: +/* 07D998 7F048E28 54410017 */ bnel $v0, $at, .Ljp7F048E88 +/* 07D99C 7F048E2C 2401000C */ li $at, 12 +/* 07D9A0 7F048E30 8E880008 */ lw $t0, 8($s4) +/* 07D9A4 7F048E34 24020001 */ li $v0, 1 +/* 07D9A8 7F048E38 26440040 */ addiu $a0, $s2, 0x40 +/* 07D9AC 7F048E3C 8518000E */ lh $t8, 0xe($t0) +/* 07D9B0 7F048E40 2B010002 */ slti $at, $t8, 2 +/* 07D9B4 7F048E44 542001E1 */ bnezl $at, .Ljp7F0495CC +/* 07D9B8 7F048E48 8E8C0008 */ lw $t4, 8($s4) +/* 07D9BC 7F048E4C AFA202FC */ sw $v0, 0x2fc($sp) +.Ljp7F048E50: +/* 07D9C0 7F048E50 0FC1613C */ jal matrix_4x4_set_identity +/* 07D9C4 7F048E54 AFA40078 */ sw $a0, 0x78($sp) +/* 07D9C8 7F048E58 8E890008 */ lw $t1, 8($s4) +/* 07D9CC 7F048E5C 8FA202FC */ lw $v0, 0x2fc($sp) +/* 07D9D0 7F048E60 8FA40078 */ lw $a0, 0x78($sp) +/* 07D9D4 7F048E64 852B000E */ lh $t3, 0xe($t1) +/* 07D9D8 7F048E68 24420001 */ addiu $v0, $v0, 1 +/* 07D9DC 7F048E6C 24840040 */ addiu $a0, $a0, 0x40 +/* 07D9E0 7F048E70 004B082A */ slt $at, $v0, $t3 +/* 07D9E4 7F048E74 5420FFF6 */ bnezl $at, .Ljp7F048E50 +/* 07D9E8 7F048E78 AFA202FC */ sw $v0, 0x2fc($sp) +/* 07D9EC 7F048E7C 100001D3 */ b .Ljp7F0495CC +/* 07D9F0 7F048E80 8E8C0008 */ lw $t4, 8($s4) +/* 07D9F4 7F048E84 2401000C */ li $at, 12 +.Ljp7F048E88: +/* 07D9F8 7F048E88 5441002C */ bnel $v0, $at, .Ljp7F048F3C +/* 07D9FC 7F048E8C 24010027 */ li $at, 39 +/* 07DA00 7F048E90 8E8E0008 */ lw $t6, 8($s4) +/* 07DA04 7F048E94 26450040 */ addiu $a1, $s2, 0x40 +/* 07DA08 7F048E98 8DCC0008 */ lw $t4, 8($t6) +/* 07DA0C 7F048E9C 8D8A0000 */ lw $t2, ($t4) +/* 07DA10 7F048EA0 8D440004 */ lw $a0, 4($t2) +/* 07DA14 7F048EA4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA18 7F048EA8 AFA50070 */ sw $a1, 0x70($sp) +/* 07DA1C 7F048EAC 02402025 */ move $a0, $s2 +/* 07DA20 7F048EB0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA24 7F048EB4 8FA50070 */ lw $a1, 0x70($sp) +/* 07DA28 7F048EB8 8E8F0008 */ lw $t7, 8($s4) +/* 07DA2C 7F048EBC 26450080 */ addiu $a1, $s2, 0x80 +/* 07DA30 7F048EC0 8DED0008 */ lw $t5, 8($t7) +/* 07DA34 7F048EC4 8DB90004 */ lw $t9, 4($t5) +/* 07DA38 7F048EC8 8F240004 */ lw $a0, 4($t9) +/* 07DA3C 7F048ECC 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA40 7F048ED0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DA44 7F048ED4 02402025 */ move $a0, $s2 +/* 07DA48 7F048ED8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA4C 7F048EDC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DA50 7F048EE0 8E880008 */ lw $t0, 8($s4) +/* 07DA54 7F048EE4 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DA58 7F048EE8 8D180008 */ lw $t8, 8($t0) +/* 07DA5C 7F048EEC 8F090008 */ lw $t1, 8($t8) +/* 07DA60 7F048EF0 8D240004 */ lw $a0, 4($t1) +/* 07DA64 7F048EF4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA68 7F048EF8 AFA50078 */ sw $a1, 0x78($sp) +/* 07DA6C 7F048EFC 02402025 */ move $a0, $s2 +/* 07DA70 7F048F00 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA74 7F048F04 8FA50078 */ lw $a1, 0x78($sp) +/* 07DA78 7F048F08 8E8B0008 */ lw $t3, 8($s4) +/* 07DA7C 7F048F0C 26500100 */ addiu $s0, $s2, 0x100 +/* 07DA80 7F048F10 02002825 */ move $a1, $s0 +/* 07DA84 7F048F14 8D6E0008 */ lw $t6, 8($t3) +/* 07DA88 7F048F18 8DCC000C */ lw $t4, 0xc($t6) +/* 07DA8C 7F048F1C 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA90 7F048F20 8D840004 */ lw $a0, 4($t4) +/* 07DA94 7F048F24 02402025 */ move $a0, $s2 +/* 07DA98 7F048F28 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA9C 7F048F2C 02002825 */ move $a1, $s0 +/* 07DAA0 7F048F30 100001A6 */ b .Ljp7F0495CC +/* 07DAA4 7F048F34 8E8C0008 */ lw $t4, 8($s4) +/* 07DAA8 7F048F38 24010027 */ li $at, 39 +.Ljp7F048F3C: +/* 07DAAC 7F048F3C 544100B9 */ bnel $v0, $at, .Ljp7F049224 +/* 07DAB0 7F048F40 24010028 */ li $at, 40 +/* 07DAB4 7F048F44 8E8A0008 */ lw $t2, 8($s4) +/* 07DAB8 7F048F48 8FAC0680 */ lw $t4, 0x680($sp) +/* 07DABC 7F048F4C 4600B006 */ mov.s $f0, $f22 +/* 07DAC0 7F048F50 8D430008 */ lw $v1, 8($t2) +/* 07DAC4 7F048F54 8C6F0004 */ lw $t7, 4($v1) +/* 07DAC8 7F048F58 8DED0004 */ lw $t5, 4($t7) +/* 07DACC 7F048F5C AFAD0264 */ sw $t5, 0x264($sp) +/* 07DAD0 7F048F60 8C790008 */ lw $t9, 8($v1) +/* 07DAD4 7F048F64 8F280004 */ lw $t0, 4($t9) +/* 07DAD8 7F048F68 AFA80260 */ sw $t0, 0x260($sp) +/* 07DADC 7F048F6C 8C690010 */ lw $t1, 0x10($v1) +/* 07DAE0 7F048F70 8C78000C */ lw $t8, 0xc($v1) +/* 07DAE4 7F048F74 8D2B0004 */ lw $t3, 4($t1) +/* 07DAE8 7F048F78 8F100004 */ lw $s0, 4($t8) +/* 07DAEC 7F048F7C AFAB0258 */ sw $t3, 0x258($sp) +/* 07DAF0 7F048F80 8C6E0018 */ lw $t6, 0x18($v1) +/* 07DAF4 7F048F84 C6840014 */ lwc1 $f4, 0x14($s4) +/* 07DAF8 7F048F88 8DC20004 */ lw $v0, 4($t6) +/* 07DAFC 7F048F8C C4460010 */ lwc1 $f6, 0x10($v0) +/* 07DB00 7F048F90 C44A000C */ lwc1 $f10, 0xc($v0) +/* 07DB04 7F048F94 460A3201 */ sub.s $f8, $f6, $f10 +/* 07DB08 7F048F98 46044082 */ mul.s $f2, $f8, $f4 +/* 07DB0C 7F048F9C 11800026 */ beqz $t4, .Ljp7F049038 +/* 07DB10 7F048FA0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07DB14 7F048FA4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07DB18 7F048FA8 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DB1C 7F048FAC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07DB20 7F048FB0 460A3202 */ mul.s $f8, $f6, $f10 +/* 07DB24 7F048FB4 44815000 */ mtc1 $at, $f10 +/* 07DB28 7F048FB8 46144102 */ mul.s $f4, $f8, $f20 +/* 07DB2C 7F048FBC 00000000 */ nop +/* 07DB30 7F048FC0 46141182 */ mul.s $f6, $f2, $f20 +/* 07DB34 7F048FC4 00000000 */ nop +/* 07DB38 7F048FC8 460A3202 */ mul.s $f8, $f6, $f10 +/* 07DB3C 7F048FCC C626008C */ lwc1 $f6, 0x8c($s1) +/* 07DB40 7F048FD0 46082003 */ div.s $f0, $f4, $f8 +/* 07DB44 7F048FD4 46003280 */ add.s $f10, $f6, $f0 +/* 07DB48 7F048FD8 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07DB4C 7F048FDC C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB50 7F048FE0 460CA03E */ c.le.s $f20, $f12 +/* 07DB54 7F048FE4 00000000 */ nop +/* 07DB58 7F048FE8 45000008 */ bc1f .Ljp7F04900C +/* 07DB5C 7F048FEC 00000000 */ nop +/* 07DB60 7F048FF0 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F048FF4: +/* 07DB64 7F048FF4 E624008C */ swc1 $f4, 0x8c($s1) +/* 07DB68 7F048FF8 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB6C 7F048FFC 460CA03E */ c.le.s $f20, $f12 +/* 07DB70 7F049000 00000000 */ nop +/* 07DB74 7F049004 4503FFFB */ bc1tl .Ljp7F048FF4 +/* 07DB78 7F049008 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F04900C: +/* 07DB7C 7F04900C 4616603C */ c.lt.s $f12, $f22 +/* 07DB80 7F049010 00000000 */ nop +/* 07DB84 7F049014 45020009 */ bc1fl .Ljp7F04903C +/* 07DB88 7F049018 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07DB8C 7F04901C 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049020: +/* 07DB90 7F049020 E628008C */ swc1 $f8, 0x8c($s1) +/* 07DB94 7F049024 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB98 7F049028 4616603C */ c.lt.s $f12, $f22 +/* 07DB9C 7F04902C 00000000 */ nop +/* 07DBA0 7F049030 4503FFFB */ bc1tl .Ljp7F049020 +/* 07DBA4 7F049034 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049038: +/* 07DBA8 7F049038 C626008C */ lwc1 $f6, 0x8c($s1) +.Ljp7F04903C: +/* 07DBAC 7F04903C 46003280 */ add.s $f10, $f6, $f0 +/* 07DBB0 7F049040 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07DBB4 7F049044 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DBB8 7F049048 460CA03E */ c.le.s $f20, $f12 +/* 07DBBC 7F04904C 00000000 */ nop +/* 07DBC0 7F049050 45020009 */ bc1fl .Ljp7F049078 +/* 07DBC4 7F049054 4616603C */ c.lt.s $f12, $f22 +/* 07DBC8 7F049058 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F04905C: +/* 07DBCC 7F04905C E624008C */ swc1 $f4, 0x8c($s1) +/* 07DBD0 7F049060 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DBD4 7F049064 460CA03E */ c.le.s $f20, $f12 +/* 07DBD8 7F049068 00000000 */ nop +/* 07DBDC 7F04906C 4503FFFB */ bc1tl .Ljp7F04905C +/* 07DBE0 7F049070 46146101 */ sub.s $f4, $f12, $f20 +/* 07DBE4 7F049074 4616603C */ c.lt.s $f12, $f22 +.Ljp7F049078: +/* 07DBE8 7F049078 00000000 */ nop +/* 07DBEC 7F04907C 45000008 */ bc1f .Ljp7F0490A0 +/* 07DBF0 7F049080 00000000 */ nop +/* 07DBF4 7F049084 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049088: +/* 07DBF8 7F049088 E628008C */ swc1 $f8, 0x8c($s1) +/* 07DBFC 7F04908C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DC00 7F049090 4616603C */ c.lt.s $f12, $f22 +/* 07DC04 7F049094 00000000 */ nop +/* 07DC08 7F049098 4503FFFB */ bc1tl .Ljp7F049088 +/* 07DC0C 7F04909C 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F0490A0: +/* 07DC10 7F0490A0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07DC14 7F0490A4 27A502B0 */ addiu $a1, $sp, 0x2b0 +/* 07DC18 7F0490A8 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DC1C 7F0490AC 4606B03C */ c.lt.s $f22, $f6 +/* 07DC20 7F0490B0 00000000 */ nop +/* 07DC24 7F0490B4 4502002B */ bc1fl .Ljp7F049164 +/* 07DC28 7F0490B8 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07DC2C 7F0490BC 8FAA0264 */ lw $t2, 0x264($sp) +/* 07DC30 7F0490C0 C60A0008 */ lwc1 $f10, 8($s0) +/* 07DC34 7F0490C4 C62C009C */ lwc1 $f12, 0x9c($s1) +/* 07DC38 7F0490C8 C5440008 */ lwc1 $f4, 8($t2) +/* 07DC3C 7F0490CC C6860014 */ lwc1 $f6, 0x14($s4) +/* 07DC40 7F0490D0 4616603C */ c.lt.s $f12, $f22 +/* 07DC44 7F0490D4 46045201 */ sub.s $f8, $f10, $f4 +/* 07DC48 7F0490D8 46064082 */ mul.s $f2, $f8, $f6 +/* 07DC4C 7F0490DC 45020003 */ bc1fl .Ljp7F0490EC +/* 07DC50 7F0490E0 E7A20254 */ swc1 $f2, 0x254($sp) +/* 07DC54 7F0490E4 46006307 */ neg.s $f12, $f12 +/* 07DC58 7F0490E8 E7A20254 */ swc1 $f2, 0x254($sp) +.Ljp7F0490EC: +/* 07DC5C 7F0490EC 0FC160F3 */ jal sinf +/* 07DC60 7F0490F0 E7AC0250 */ swc1 $f12, 0x250($sp) +/* 07DC64 7F0490F4 C7A20254 */ lwc1 $f2, 0x254($sp) +/* 07DC68 7F0490F8 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 07DC6C 7F0490FC 46020282 */ mul.s $f10, $f0, $f2 +/* 07DC70 7F049100 0FC160F0 */ jal cosf +/* 07DC74 7F049104 E7AA024C */ swc1 $f10, 0x24c($sp) +/* 07DC78 7F049108 C7A20254 */ lwc1 $f2, 0x254($sp) +/* 07DC7C 7F04910C C6280088 */ lwc1 $f8, 0x88($s1) +/* 07DC80 7F049110 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 07DC84 7F049114 46020102 */ mul.s $f4, $f0, $f2 +/* 07DC88 7F049118 46081181 */ sub.s $f6, $f2, $f8 +/* 07DC8C 7F04911C 0FC16BD4 */ jal atan2f +/* 07DC90 7F049120 46062381 */ sub.s $f14, $f4, $f6 +/* 07DC94 7F049124 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07DC98 7F049128 E6200090 */ swc1 $f0, 0x90($s1) +/* 07DC9C 7F04912C 4602003C */ c.lt.s $f0, $f2 +/* 07DCA0 7F049130 00000000 */ nop +/* 07DCA4 7F049134 45020003 */ bc1fl .Ljp7F049144 +/* 07DCA8 7F049138 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07DCAC 7F04913C E6220090 */ swc1 $f2, 0x90($s1) +/* 07DCB0 7F049140 C62A009C */ lwc1 $f10, 0x9c($s1) +.Ljp7F049144: +/* 07DCB4 7F049144 460AB03C */ c.lt.s $f22, $f10 +/* 07DCB8 7F049148 00000000 */ nop +/* 07DCBC 7F04914C 45020005 */ bc1fl .Ljp7F049164 +/* 07DCC0 7F049150 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07DCC4 7F049154 C6280090 */ lwc1 $f8, 0x90($s1) +/* 07DCC8 7F049158 4608A101 */ sub.s $f4, $f20, $f8 +/* 07DCCC 7F04915C E6240090 */ swc1 $f4, 0x90($s1) +/* 07DCD0 7F049160 C62C0090 */ lwc1 $f12, 0x90($s1) +.Ljp7F049164: +/* 07DCD4 7F049164 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07DCD8 7F049168 27A50270 */ addiu $a1, $sp, 0x270 +/* 07DCDC 7F04916C 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DCE0 7F049170 AFA50078 */ sw $a1, 0x78($sp) +/* 07DCE4 7F049174 0FC16150 */ jal matrix_4x4_copy +/* 07DCE8 7F049178 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DCEC 7F04917C 02002025 */ move $a0, $s0 +/* 07DCF0 7F049180 0FC163AE */ jal matrix_4x4_set_position +/* 07DCF4 7F049184 8FA50078 */ lw $a1, 0x78($sp) +/* 07DCF8 7F049188 02402025 */ move $a0, $s2 +/* 07DCFC 7F04918C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD00 7F049190 8FA50078 */ lw $a1, 0x78($sp) +/* 07DD04 7F049194 26500100 */ addiu $s0, $s2, 0x100 +/* 07DD08 7F049198 02002825 */ move $a1, $s0 +/* 07DD0C 7F04919C 0FC16150 */ jal matrix_4x4_copy +/* 07DD10 7F0491A0 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD14 7F0491A4 8FA40258 */ lw $a0, 0x258($sp) +/* 07DD18 7F0491A8 0FC163AE */ jal matrix_4x4_set_position +/* 07DD1C 7F0491AC 02002825 */ move $a1, $s0 +/* 07DD20 7F0491B0 02402025 */ move $a0, $s2 +/* 07DD24 7F0491B4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD28 7F0491B8 02002825 */ move $a1, $s0 +/* 07DD2C 7F0491BC 27A40270 */ addiu $a0, $sp, 0x270 +/* 07DD30 7F0491C0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD34 7F0491C4 27A502B0 */ addiu $a1, $sp, 0x2b0 +/* 07DD38 7F0491C8 26450040 */ addiu $a1, $s2, 0x40 +/* 07DD3C 7F0491CC AFA50070 */ sw $a1, 0x70($sp) +/* 07DD40 7F0491D0 0FC16150 */ jal matrix_4x4_copy +/* 07DD44 7F0491D4 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD48 7F0491D8 8FA40264 */ lw $a0, 0x264($sp) +/* 07DD4C 7F0491DC 0FC163AE */ jal matrix_4x4_set_position +/* 07DD50 7F0491E0 8FA50070 */ lw $a1, 0x70($sp) +/* 07DD54 7F0491E4 02402025 */ move $a0, $s2 +/* 07DD58 7F0491E8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD5C 7F0491EC 8FA50070 */ lw $a1, 0x70($sp) +/* 07DD60 7F0491F0 26450080 */ addiu $a1, $s2, 0x80 +/* 07DD64 7F0491F4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DD68 7F0491F8 0FC16150 */ jal matrix_4x4_copy +/* 07DD6C 7F0491FC 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD70 7F049200 8FA40260 */ lw $a0, 0x260($sp) +/* 07DD74 7F049204 0FC163AE */ jal matrix_4x4_set_position +/* 07DD78 7F049208 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DD7C 7F04920C 02402025 */ move $a0, $s2 +/* 07DD80 7F049210 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD84 7F049214 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DD88 7F049218 100000EC */ b .Ljp7F0495CC +/* 07DD8C 7F04921C 8E8C0008 */ lw $t4, 8($s4) +/* 07DD90 7F049220 24010028 */ li $at, 40 +.Ljp7F049224: +/* 07DD94 7F049224 14410086 */ bne $v0, $at, .Ljp7F049440 +/* 07DD98 7F049228 00000000 */ nop +/* 07DD9C 7F04922C 8E8F0008 */ lw $t7, 8($s4) +/* 07DDA0 7F049230 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07DDA4 7F049234 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07DDA8 7F049238 8DED0008 */ lw $t5, 8($t7) +/* 07DDAC 7F04923C 8FA90680 */ lw $t1, 0x680($sp) +/* 07DDB0 7F049240 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 07DDB4 7F049244 8DB90008 */ lw $t9, 8($t5) +/* 07DDB8 7F049248 3C0C8003 */ lui $t4, %hi(D_80030B34) # $t4, 0x8003 +/* 07DDBC 7F04924C 02402025 */ move $a0, $s2 +/* 07DDC0 7F049250 8F280004 */ lw $t0, 4($t9) +/* 07DDC4 7F049254 26450040 */ addiu $a1, $s2, 0x40 +/* 07DDC8 7F049258 1B00001E */ blez $t8, .Ljp7F0492D4 +/* 07DDCC 7F04925C AFA80200 */ sw $t0, 0x200($sp) +/* 07DDD0 7F049260 5120001D */ beql $t1, $zero, .Ljp7F0492D8 +/* 07DDD4 7F049264 8E2B0014 */ lw $t3, 0x14($s1) +/* 07DDD8 7F049268 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DDDC 7F04926C C62A008C */ lwc1 $f10, 0x8c($s1) +/* 07DDE0 7F049270 460A3200 */ add.s $f8, $f6, $f10 +/* 07DDE4 7F049274 E6280088 */ swc1 $f8, 0x88($s1) +/* 07DDE8 7F049278 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DDEC 7F04927C 4600A03E */ c.le.s $f20, $f0 +/* 07DDF0 7F049280 00000000 */ nop +/* 07DDF4 7F049284 45020009 */ bc1fl .Ljp7F0492AC +/* 07DDF8 7F049288 4616003C */ c.lt.s $f0, $f22 +/* 07DDFC 7F04928C 46140101 */ sub.s $f4, $f0, $f20 +.Ljp7F049290: +/* 07DE00 7F049290 E6240088 */ swc1 $f4, 0x88($s1) +/* 07DE04 7F049294 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DE08 7F049298 4600A03E */ c.le.s $f20, $f0 +/* 07DE0C 7F04929C 00000000 */ nop +/* 07DE10 7F0492A0 4503FFFB */ bc1tl .Ljp7F049290 +/* 07DE14 7F0492A4 46140101 */ sub.s $f4, $f0, $f20 +/* 07DE18 7F0492A8 4616003C */ c.lt.s $f0, $f22 +.Ljp7F0492AC: +/* 07DE1C 7F0492AC 00000000 */ nop +/* 07DE20 7F0492B0 45020009 */ bc1fl .Ljp7F0492D8 +/* 07DE24 7F0492B4 8E2B0014 */ lw $t3, 0x14($s1) +/* 07DE28 7F0492B8 46140180 */ add.s $f6, $f0, $f20 +.Ljp7F0492BC: +/* 07DE2C 7F0492BC E6260088 */ swc1 $f6, 0x88($s1) +/* 07DE30 7F0492C0 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DE34 7F0492C4 4616003C */ c.lt.s $f0, $f22 +/* 07DE38 7F0492C8 00000000 */ nop +/* 07DE3C 7F0492CC 4503FFFB */ bc1tl .Ljp7F0492BC +/* 07DE40 7F0492D0 46140180 */ add.s $f6, $f0, $f20 +.Ljp7F0492D4: +/* 07DE44 7F0492D4 8E2B0014 */ lw $t3, 0x14($s1) +.Ljp7F0492D8: +/* 07DE48 7F0492D8 258C0B74 */ addiu $t4, %lo(D_80030B34) # addiu $t4, $t4, 0xb74 +/* 07DE4C 7F0492DC 258F003C */ addiu $t7, $t4, 0x3c +/* 07DE50 7F0492E0 8D6E0020 */ lw $t6, 0x20($t3) +/* 07DE54 7F0492E4 02006825 */ move $t5, $s0 +/* 07DE58 7F0492E8 11C00015 */ beqz $t6, .Ljp7F049340 +/* 07DE5C 7F0492EC 00000000 */ nop +.Ljp7F0492F0: +/* 07DE60 7F0492F0 8D810000 */ lw $at, ($t4) +/* 07DE64 7F0492F4 258C000C */ addiu $t4, $t4, 0xc +/* 07DE68 7F0492F8 25AD000C */ addiu $t5, $t5, 0xc +/* 07DE6C 7F0492FC ADA1FFF4 */ sw $at, -0xc($t5) +/* 07DE70 7F049300 8D81FFF8 */ lw $at, -8($t4) +/* 07DE74 7F049304 ADA1FFF8 */ sw $at, -8($t5) +/* 07DE78 7F049308 8D81FFFC */ lw $at, -4($t4) +/* 07DE7C 7F04930C 158FFFF8 */ bne $t4, $t7, .Ljp7F0492F0 +/* 07DE80 7F049310 ADA1FFFC */ sw $at, -4($t5) +/* 07DE84 7F049314 8D810000 */ lw $at, ($t4) +/* 07DE88 7F049318 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07DE8C 7F04931C ADA10000 */ sw $at, ($t5) +/* 07DE90 7F049320 AFA201B4 */ sw $v0, 0x1b4($sp) +/* 07DE94 7F049324 AFB201C4 */ sw $s2, 0x1c4($sp) +/* 07DE98 7F049328 8E250014 */ lw $a1, 0x14($s1) +/* 07DE9C 7F04932C 0FC1BE3A */ jal subcalcmatrices +/* 07DEA0 7F049330 02002025 */ move $a0, $s0 +/* 07DEA4 7F049334 26590040 */ addiu $t9, $s2, 0x40 +/* 07DEA8 7F049338 10000003 */ b .Ljp7F049348 +/* 07DEAC 7F04933C AFB90070 */ sw $t9, 0x70($sp) +.Ljp7F049340: +/* 07DEB0 7F049340 0FC16150 */ jal matrix_4x4_copy +/* 07DEB4 7F049344 AFA50070 */ sw $a1, 0x70($sp) +.Ljp7F049348: +/* 07DEB8 7F049348 8E280008 */ lw $t0, 8($s1) +/* 07DEBC 7F04934C 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DEC0 7F049350 0008C080 */ sll $t8, $t0, 2 +/* 07DEC4 7F049354 07010006 */ bgez $t8, .Ljp7F049370 +/* 07DEC8 7F049358 00000000 */ nop +/* 07DECC 7F04935C C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DED0 7F049360 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07DED4 7F049364 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DED8 7F049368 10000004 */ b .Ljp7F04937C +/* 07DEDC 7F04936C 26450080 */ addiu $a1, $s2, 0x80 +.Ljp7F049370: +/* 07DEE0 7F049370 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07DEE4 7F049374 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DEE8 7F049378 26450080 */ addiu $a1, $s2, 0x80 +.Ljp7F04937C: +/* 07DEEC 7F04937C AFA5006C */ sw $a1, 0x6c($sp) +/* 07DEF0 7F049380 0FC16150 */ jal matrix_4x4_copy +/* 07DEF4 7F049384 27A40204 */ addiu $a0, $sp, 0x204 +/* 07DEF8 7F049388 8FA40200 */ lw $a0, 0x200($sp) +/* 07DEFC 7F04938C 0FC163AE */ jal matrix_4x4_set_position +/* 07DF00 7F049390 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DF04 7F049394 8FA40070 */ lw $a0, 0x70($sp) +/* 07DF08 7F049398 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DF0C 7F04939C 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DF10 7F0493A0 8E890008 */ lw $t1, 8($s4) +/* 07DF14 7F0493A4 02802025 */ move $a0, $s4 +/* 07DF18 7F0493A8 00003025 */ move $a2, $zero +/* 07DF1C 7F0493AC 8D230008 */ lw $v1, 8($t1) +/* 07DF20 7F0493B0 8C65000C */ lw $a1, 0xc($v1) +/* 07DF24 7F0493B4 50A00013 */ beql $a1, $zero, .Ljp7F049404 +/* 07DF28 7F0493B8 8C650010 */ lw $a1, 0x10($v1) +/* 07DF2C 7F0493BC 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07DF30 7F0493C0 8CB20004 */ lw $s2, 4($a1) +/* 07DF34 7F0493C4 00408025 */ move $s0, $v0 +/* 07DF38 7F0493C8 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DF3C 7F0493CC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07DF40 7F0493D0 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DF44 7F0493D4 27A40204 */ addiu $a0, $sp, 0x204 +/* 07DF48 7F0493D8 0FC16150 */ jal matrix_4x4_copy +/* 07DF4C 7F0493DC 02002825 */ move $a1, $s0 +/* 07DF50 7F0493E0 02402025 */ move $a0, $s2 +/* 07DF54 7F0493E4 0FC163AE */ jal matrix_4x4_set_position +/* 07DF58 7F0493E8 02002825 */ move $a1, $s0 +/* 07DF5C 7F0493EC 8FA40070 */ lw $a0, 0x70($sp) +/* 07DF60 7F0493F0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DF64 7F0493F4 02002825 */ move $a1, $s0 +/* 07DF68 7F0493F8 8E8B0008 */ lw $t3, 8($s4) +/* 07DF6C 7F0493FC 8D630008 */ lw $v1, 8($t3) +/* 07DF70 7F049400 8C650010 */ lw $a1, 0x10($v1) +.Ljp7F049404: +/* 07DF74 7F049404 02802025 */ move $a0, $s4 +/* 07DF78 7F049408 00003025 */ move $a2, $zero +/* 07DF7C 7F04940C 50A0006F */ beql $a1, $zero, .Ljp7F0495CC +/* 07DF80 7F049410 8E8C0008 */ lw $t4, 8($s4) +/* 07DF84 7F049414 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07DF88 7F049418 8CB20004 */ lw $s2, 4($a1) +/* 07DF8C 7F04941C 00408025 */ move $s0, $v0 +/* 07DF90 7F049420 02402025 */ move $a0, $s2 +/* 07DF94 7F049424 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DF98 7F049428 00402825 */ move $a1, $v0 +/* 07DF9C 7F04942C 8FA40070 */ lw $a0, 0x70($sp) +/* 07DFA0 7F049430 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DFA4 7F049434 02002825 */ move $a1, $s0 +/* 07DFA8 7F049438 10000064 */ b .Ljp7F0495CC +/* 07DFAC 7F04943C 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F049440: +/* 07DFB0 7F049440 16020061 */ bne $s0, $v0, .Ljp7F0495C8 +/* 07DFB4 7F049444 26450040 */ addiu $a1, $s2, 0x40 +/* 07DFB8 7F049448 8E8E0008 */ lw $t6, 8($s4) +/* 07DFBC 7F04944C 8DC30008 */ lw $v1, 8($t6) +/* 07DFC0 7F049450 8C6F000C */ lw $t7, 0xc($v1) +/* 07DFC4 7F049454 8C6A0004 */ lw $t2, 4($v1) +/* 07DFC8 7F049458 8DEC0004 */ lw $t4, 4($t7) +/* 07DFCC 7F04945C 8D500004 */ lw $s0, 4($t2) +/* 07DFD0 7F049460 AFAC0168 */ sw $t4, 0x168($sp) +/* 07DFD4 7F049464 8C6D0010 */ lw $t5, 0x10($v1) +/* 07DFD8 7F049468 8DB90004 */ lw $t9, 4($t5) +/* 07DFDC 7F04946C AFB90164 */ sw $t9, 0x164($sp) +/* 07DFE0 7F049470 8C680008 */ lw $t0, 8($v1) +/* 07DFE4 7F049474 8D180004 */ lw $t8, 4($t0) +/* 07DFE8 7F049478 AFB80160 */ sw $t8, 0x160($sp) +/* 07DFEC 7F04947C 8C690018 */ lw $t1, 0x18($v1) +/* 07DFF0 7F049480 8D2B0004 */ lw $t3, 4($t1) +/* 07DFF4 7F049484 AFAB015C */ sw $t3, 0x15c($sp) +/* 07DFF8 7F049488 C62E00C8 */ lwc1 $f14, 0xc8($s1) +/* 07DFFC 7F04948C 46007387 */ neg.s $f14, $f14 +/* 07E000 7F049490 4616703C */ c.lt.s $f14, $f22 +/* 07E004 7F049494 00000000 */ nop +/* 07E008 7F049498 45020003 */ bc1fl .Ljp7F0494A8 +/* 07E00C 7F04949C C62C00CC */ lwc1 $f12, 0xcc($s1) +/* 07E010 7F0494A0 46147380 */ add.s $f14, $f14, $f20 +/* 07E014 7F0494A4 C62C00CC */ lwc1 $f12, 0xcc($s1) +.Ljp7F0494A8: +/* 07E018 7F0494A8 46006307 */ neg.s $f12, $f12 +/* 07E01C 7F0494AC 4616603C */ c.lt.s $f12, $f22 +/* 07E020 7F0494B0 00000000 */ nop +/* 07E024 7F0494B4 45020003 */ bc1fl .Ljp7F0494C4 +/* 07E028 7F0494B8 AFA50070 */ sw $a1, 0x70($sp) +/* 07E02C 7F0494BC 46146300 */ add.s $f12, $f12, $f20 +/* 07E030 7F0494C0 AFA50070 */ sw $a1, 0x70($sp) +.Ljp7F0494C4: +/* 07E034 7F0494C4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07E038 7F0494C8 E7AE0158 */ swc1 $f14, 0x158($sp) +/* 07E03C 7F0494CC 02002025 */ move $a0, $s0 +/* 07E040 7F0494D0 0FC163AE */ jal matrix_4x4_set_position +/* 07E044 7F0494D4 8FA50070 */ lw $a1, 0x70($sp) +/* 07E048 7F0494D8 02402025 */ move $a0, $s2 +/* 07E04C 7F0494DC 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E050 7F0494E0 8FA50070 */ lw $a1, 0x70($sp) +/* 07E054 7F0494E4 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07E058 7F0494E8 C7AC0158 */ lwc1 $f12, 0x158($sp) +/* 07E05C 7F0494EC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07E060 7F0494F0 AFA50078 */ sw $a1, 0x78($sp) +/* 07E064 7F0494F4 8FA40168 */ lw $a0, 0x168($sp) +/* 07E068 7F0494F8 0FC163AE */ jal matrix_4x4_set_position +/* 07E06C 7F0494FC 8FA50078 */ lw $a1, 0x78($sp) +/* 07E070 7F049500 8FA40070 */ lw $a0, 0x70($sp) +/* 07E074 7F049504 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E078 7F049508 8FA50078 */ lw $a1, 0x78($sp) +/* 07E07C 7F04950C 3C018005 */ lui $at, %hi(D_80052B70) # $at, 0x8005 +/* 07E080 7F049510 26500100 */ addiu $s0, $s2, 0x100 +/* 07E084 7F049514 02002825 */ move $a1, $s0 +/* 07E088 7F049518 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07E08C 7F04951C C42C2BA0 */ lwc1 $f12, %lo(D_80052B70)($at) +/* 07E090 7F049520 8FA40164 */ lw $a0, 0x164($sp) +/* 07E094 7F049524 0FC163AE */ jal matrix_4x4_set_position +/* 07E098 7F049528 02002825 */ move $a1, $s0 +/* 07E09C 7F04952C 8FA40078 */ lw $a0, 0x78($sp) +/* 07E0A0 7F049530 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E0A4 7F049534 02002825 */ move $a1, $s0 +/* 07E0A8 7F049538 26450080 */ addiu $a1, $s2, 0x80 +/* 07E0AC 7F04953C AFA5006C */ sw $a1, 0x6c($sp) +/* 07E0B0 7F049540 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07E0B4 7F049544 8FA40160 */ lw $a0, 0x160($sp) +/* 07E0B8 7F049548 8FA40070 */ lw $a0, 0x70($sp) +/* 07E0BC 7F04954C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E0C0 7F049550 8FA5006C */ lw $a1, 0x6c($sp) +/* 07E0C4 7F049554 0FC1E28D */ jal sub_GAME_7F078444 +/* 07E0C8 7F049558 00000000 */ nop +/* 07E0CC 7F04955C 27B00170 */ addiu $s0, $sp, 0x170 +/* 07E0D0 7F049560 02003025 */ move $a2, $s0 +/* 07E0D4 7F049564 00402025 */ move $a0, $v0 +/* 07E0D8 7F049568 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07E0DC 7F04956C 8FA50070 */ lw $a1, 0x70($sp) +/* 07E0E0 7F049570 8FA4015C */ lw $a0, 0x15c($sp) +/* 07E0E4 7F049574 02002825 */ move $a1, $s0 +/* 07E0E8 7F049578 26260084 */ addiu $a2, $s1, 0x84 +/* 07E0EC 7F04957C 0FC0FE10 */ jal sub_GAME_7F03F540 +/* 07E0F0 7F049580 26270080 */ addiu $a3, $s1, 0x80 +/* 07E0F4 7F049584 8E8E0008 */ lw $t6, 8($s4) +/* 07E0F8 7F049588 8DC30008 */ lw $v1, 8($t6) +/* 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 +/* 07E10C 7F04959C 02802025 */ move $a0, $s4 +/* 07E110 7F0495A0 8E2A00C4 */ lw $t2, 0xc4($s1) +/* 07E114 7F0495A4 A44A0000 */ sh $t2, ($v0) +/* 07E118 7F0495A8 8E8F0008 */ lw $t7, 8($s4) +/* 07E11C 7F0495AC 8DE30008 */ lw $v1, 8($t7) +/* 07E120 7F0495B0 8C650020 */ lw $a1, 0x20($v1) +.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 +/* 07E130 7F0495C0 02802025 */ move $a0, $s4 +/* 07E134 7F0495C4 AC400000 */ sw $zero, ($v0) +.Ljp7F0495C8: +/* 07E138 7F0495C8 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F0495CC: +/* 07E13C 7F0495CC 02802025 */ move $a0, $s4 +/* 07E140 7F0495D0 0FC1BD25 */ jal sub_GAME_7F06EEA4 +/* 07E144 7F0495D4 8D850000 */ lw $a1, ($t4) +/* 07E148 7F0495D8 8E8D000C */ lw $t5, 0xc($s4) +/* 07E14C 7F0495DC 02602025 */ move $a0, $s3 +/* 07E150 7F0495E0 C5AA0038 */ lwc1 $f10, 0x38($t5) +/* 07E154 7F0495E4 46005207 */ neg.s $f8, $f10 +/* 07E158 7F0495E8 0FC1101D */ jal handle_thrown_explosive_detonation +/* 07E15C 7F0495EC E6680018 */ swc1 $f8, 0x18($s3) +/* 07E160 7F0495F0 8E640020 */ lw $a0, 0x20($s3) +/* 07E164 7F0495F4 50800018 */ beql $a0, $zero, .Ljp7F049658 +/* 07E168 7F0495F8 8E230064 */ lw $v1, 0x64($s1) +/* 07E16C 7F0495FC 8C820024 */ lw $v0, 0x24($a0) +.Ljp7F049600: +/* 07E170 7F049600 0FC11171 */ jal sub_GAME_7F0442DC +/* 07E174 7F049604 AFA2068C */ sw $v0, 0x68c($sp) +/* 07E178 7F049608 8FA4068C */ lw $a0, 0x68c($sp) +/* 07E17C 7F04960C 5480FFFC */ bnezl $a0, .Ljp7F049600 +/* 07E180 7F049610 8C820024 */ lw $v0, 0x24($a0) +/* 07E184 7F049614 10000010 */ b .Ljp7F049658 +/* 07E188 7F049618 8E230064 */ lw $v1, 0x64($s1) +.Ljp7F04961C: +/* 07E18C 7F04961C 92790001 */ lbu $t9, 1($s3) +/* 07E190 7F049620 02602025 */ move $a0, $s3 +/* 07E194 7F049624 3328FFFD */ andi $t0, $t9, 0xfffd +/* 07E198 7F049628 0FC1101D */ jal handle_thrown_explosive_detonation +/* 07E19C 7F04962C A2680001 */ sb $t0, 1($s3) +/* 07E1A0 7F049630 8E640020 */ lw $a0, 0x20($s3) +/* 07E1A4 7F049634 50800008 */ beql $a0, $zero, .Ljp7F049658 +/* 07E1A8 7F049638 8E230064 */ lw $v1, 0x64($s1) +/* 07E1AC 7F04963C 8C820024 */ lw $v0, 0x24($a0) +.Ljp7F049640: +/* 07E1B0 7F049640 0FC1114D */ jal sub_GAME_7F04424C +/* 07E1B4 7F049644 AFA2068C */ sw $v0, 0x68c($sp) +/* 07E1B8 7F049648 8FA4068C */ lw $a0, 0x68c($sp) +/* 07E1BC 7F04964C 5480FFFC */ bnezl $a0, .Ljp7F049640 +/* 07E1C0 7F049650 8C820024 */ lw $v0, 0x24($a0) +/* 07E1C4 7F049654 8E230064 */ lw $v1, 0x64($s1) +.Ljp7F049658: +/* 07E1C8 7F049658 2401FEFF */ li $at, -257 +/* 07E1CC 7F04965C 266B0008 */ addiu $t3, $s3, 8 +/* 07E1D0 7F049660 30780100 */ andi $t8, $v1, 0x100 +/* 07E1D4 7F049664 1300001F */ beqz $t8, .Ljp7F0496E4 +/* 07E1D8 7F049668 00614824 */ and $t1, $v1, $at +/* 07E1DC 7F04966C AE290064 */ sw $t1, 0x64($s1) +/* 07E1E0 7F049670 0C002918 */ jal get_random_value +/* 07E1E4 7F049674 AFAB0074 */ sw $t3, 0x74($sp) +/* 07E1E8 7F049678 44822000 */ mtc1 $v0, $f4 +/* 07E1EC 7F04967C 02202025 */ move $a0, $s1 +/* 07E1F0 7F049680 04410005 */ bgez $v0, .Ljp7F049698 +/* 07E1F4 7F049684 468021A0 */ cvt.s.w $f6, $f4 +/* 07E1F8 7F049688 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E1FC 7F04968C 44815000 */ mtc1 $at, $f10 +/* 07E200 7F049690 00000000 */ nop +/* 07E204 7F049694 460A3180 */ add.s $f6, $f6, $f10 +.Ljp7F049698: +/* 07E208 7F049698 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E20C 7F04969C 44814000 */ mtc1 $at, $f8 +/* 07E210 7F0496A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07E214 7F0496A4 44815000 */ mtc1 $at, $f10 +/* 07E218 7F0496A8 46083102 */ mul.s $f4, $f6, $f8 +/* 07E21C 7F0496AC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 07E220 7F0496B0 44814000 */ mtc1 $at, $f8 +/* 07E224 7F0496B4 8E2E0064 */ lw $t6, 0x64($s1) +/* 07E228 7F0496B8 3C010006 */ lui $at, 6 +/* 07E22C 7F0496BC 8FA60074 */ lw $a2, 0x74($sp) +/* 07E230 7F0496C0 01C15024 */ and $t2, $t6, $at +/* 07E234 7F0496C4 460A2182 */ mul.s $f6, $f4, $f10 +/* 07E238 7F0496C8 00003825 */ move $a3, $zero +/* 07E23C 7F0496CC 000A7C42 */ srl $t7, $t2, 0x11 +/* 07E240 7F0496D0 AFAF0010 */ sw $t7, 0x10($sp) +/* 07E244 7F0496D4 46083100 */ add.s $f4, $f6, $f8 +/* 07E248 7F0496D8 44052000 */ mfc1 $a1, $f4 +/* 07E24C 7F0496DC 0FC13943 */ jal maybe_detonate_object +/* 07E250 7F0496E0 00000000 */ nop +.Ljp7F0496E4: +/* 07E254 7F0496E4 8FAC0680 */ lw $t4, 0x680($sp) +/* 07E258 7F0496E8 5180020D */ beql $t4, $zero, .Ljp7F049F20 +/* 07E25C 7F0496EC 8FAD0688 */ lw $t5, 0x688($sp) +/* 07E260 7F0496F0 92220003 */ lbu $v0, 3($s1) +/* 07E264 7F0496F4 24010001 */ li $at, 1 +/* 07E268 7F0496F8 54410006 */ bnel $v0, $at, .Ljp7F049714 +/* 07E26C 7F0496FC 2401000D */ li $at, 13 +/* 07E270 7F049700 0FC14FCE */ jal sub_GAME_7F053A3C +/* 07E274 7F049704 8E640004 */ lw $a0, 4($s3) +/* 07E278 7F049708 10000202 */ b .Ljp7F049F14 +/* 07E27C 7F04970C 00000000 */ nop +/* 07E280 7F049710 2401000D */ li $at, 13 +.Ljp7F049714: +/* 07E284 7F049714 144101FF */ bne $v0, $at, .Ljp7F049F14 +/* 07E288 7F049718 00000000 */ nop +/* 07E28C 7F04971C 0FC3021B */ jal get_controls_locked_flag +/* 07E290 7F049720 00000000 */ nop +/* 07E294 7F049724 144001FB */ bnez $v0, .Ljp7F049F14 +/* 07E298 7F049728 00000000 */ nop +/* 07E29C 7F04972C 8E700004 */ lw $s0, 4($s3) +/* 07E2A0 7F049730 AFA00140 */ sw $zero, 0x140($sp) +/* 07E2A4 7F049734 AFA0013C */ sw $zero, 0x13c($sp) +/* 07E2A8 7F049738 8E0D00D0 */ lw $t5, 0xd0($s0) +/* 07E2AC 7F04973C 51A001E4 */ beql $t5, $zero, .Ljp7F049ED0 +/* 07E2B0 7F049740 8E8E0008 */ lw $t6, 8($s4) +/* 07E2B4 7F049744 8E390008 */ lw $t9, 8($s1) +/* 07E2B8 7F049748 001940C0 */ sll $t0, $t9, 3 +/* 07E2BC 7F04974C 050201E0 */ bltzl $t0, .Ljp7F049ED0 +/* 07E2C0 7F049750 8E8E0008 */ lw $t6, 8($s4) +/* 07E2C4 7F049754 8E1800AC */ lw $t8, 0xac($s0) +/* 07E2C8 7F049758 3C088005 */ lui $t0, %hi(global_timer) # $t0, 0x8005 +/* 07E2CC 7F04975C 27090001 */ addiu $t1, $t8, 1 +/* 07E2D0 7F049760 312B0001 */ andi $t3, $t1, 1 +/* 07E2D4 7F049764 AE0900AC */ sw $t1, 0xac($s0) +/* 07E2D8 7F049768 2D6E0001 */ sltiu $t6, $t3, 1 +/* 07E2DC 7F04976C AFAE0140 */ sw $t6, 0x140($sp) +/* 07E2E0 7F049770 8E8A0008 */ lw $t2, 8($s4) +/* 07E2E4 7F049774 396D0001 */ xori $t5, $t3, 1 +/* 07E2E8 7F049778 2DAD0001 */ sltiu $t5, $t5, 1 +/* 07E2EC 7F04977C 8D4F0008 */ lw $t7, 8($t2) +/* 07E2F0 7F049780 8DEC0014 */ lw $t4, 0x14($t7) +/* 07E2F4 7F049784 51800003 */ beql $t4, $zero, .Ljp7F049794 +/* 07E2F8 7F049788 8E1900C0 */ lw $t9, 0xc0($s0) +/* 07E2FC 7F04978C AFAD013C */ sw $t5, 0x13c($sp) +/* 07E300 7F049790 8E1900C0 */ lw $t9, 0xc0($s0) +.Ljp7F049794: +/* 07E304 7F049794 8D0883AC */ lw $t0, %lo(global_timer)($t0) +/* 07E308 7F049798 0328082A */ slt $at, $t9, $t0 +/* 07E30C 7F04979C 50200032 */ beql $at, $zero, .Ljp7F049868 +/* 07E310 7F0497A0 8FAC0140 */ lw $t4, 0x140($sp) +/* 07E314 7F0497A4 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E318 7F0497A8 50800008 */ beql $a0, $zero, .Ljp7F0497CC +/* 07E31C 7F0497AC 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E320 7F0497B0 0C002380 */ jal sfxGetArg0Unk3F +/* 07E324 7F0497B4 00000000 */ nop +/* 07E328 7F0497B8 50400004 */ beql $v0, $zero, .Ljp7F0497CC +/* 07E32C 7F0497BC 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E330 7F0497C0 0C00240C */ jal sfxDeactivate +/* 07E334 7F0497C4 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E338 7F0497C8 8E0400C8 */ lw $a0, 0xc8($s0) +.Ljp7F0497CC: +/* 07E33C 7F0497CC 50800008 */ beql $a0, $zero, .Ljp7F0497F0 +/* 07E340 7F0497D0 8E1800C4 */ lw $t8, 0xc4($s0) +/* 07E344 7F0497D4 0C002380 */ jal sfxGetArg0Unk3F +/* 07E348 7F0497D8 00000000 */ nop +/* 07E34C 7F0497DC 50400004 */ beql $v0, $zero, .Ljp7F0497F0 +/* 07E350 7F0497E0 8E1800C4 */ lw $t8, 0xc4($s0) +/* 07E354 7F0497E4 0C00240C */ jal sfxDeactivate +/* 07E358 7F0497E8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E35C 7F0497EC 8E1800C4 */ lw $t8, 0xc4($s0) +.Ljp7F0497F0: +/* 07E360 7F0497F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E364 7F0497F4 240500FD */ li $a1, 253 +/* 07E368 7F0497F8 1700000A */ bnez $t8, .Ljp7F049824 +/* 07E36C 7F0497FC 260600C4 */ addiu $a2, $s0, 0xc4 +/* 07E370 7F049800 26690008 */ addiu $t1, $s3, 8 +/* 07E374 7F049804 AFA90074 */ sw $t1, 0x74($sp) +/* 07E378 7F049808 0C002386 */ jal play_sfx_a1 +/* 07E37C 7F04980C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E380 7F049810 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E384 7F049814 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07E388 7F049818 8FA50074 */ lw $a1, 0x74($sp) +/* 07E38C 7F04981C 1000000D */ b .Ljp7F049854 +/* 07E390 7F049820 00000000 */ nop +.Ljp7F049824: +/* 07E394 7F049824 8E0B00C8 */ lw $t3, 0xc8($s0) +/* 07E398 7F049828 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E39C 7F04982C 240500FD */ li $a1, 253 +/* 07E3A0 7F049830 15600008 */ bnez $t3, .Ljp7F049854 +/* 07E3A4 7F049834 260600C8 */ addiu $a2, $s0, 0xc8 +/* 07E3A8 7F049838 266E0008 */ addiu $t6, $s3, 8 +/* 07E3AC 7F04983C AFAE0074 */ sw $t6, 0x74($sp) +/* 07E3B0 7F049840 0C002386 */ jal play_sfx_a1 +/* 07E3B4 7F049844 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E3B8 7F049848 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E3BC 7F04984C 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07E3C0 7F049850 8FA50074 */ lw $a1, 0x74($sp) +.Ljp7F049854: +/* 07E3C4 7F049854 3C0A8005 */ lui $t2, %hi(global_timer) # $t2, 0x8005 +/* 07E3C8 7F049858 8D4A83AC */ lw $t2, %lo(global_timer)($t2) +/* 07E3CC 7F04985C 254F0002 */ addiu $t7, $t2, 2 +/* 07E3D0 7F049860 AE0F00C0 */ sw $t7, 0xc0($s0) +/* 07E3D4 7F049864 8FAC0140 */ lw $t4, 0x140($sp) +.Ljp7F049868: +/* 07E3D8 7F049868 8FAD013C */ lw $t5, 0x13c($sp) +/* 07E3DC 7F04986C 24190001 */ li $t9, 1 +/* 07E3E0 7F049870 55800004 */ bnezl $t4, .Ljp7F049884 +/* 07E3E4 7F049874 AFB90120 */ sw $t9, 0x120($sp) +/* 07E3E8 7F049878 51A00195 */ beql $t5, $zero, .Ljp7F049ED0 +/* 07E3EC 7F04987C 8E8E0008 */ lw $t6, 8($s4) +/* 07E3F0 7F049880 AFB90120 */ sw $t9, 0x120($sp) +.Ljp7F049884: +/* 07E3F4 7F049884 AFA00110 */ sw $zero, 0x110($sp) +/* 07E3F8 7F049888 8E680014 */ lw $t0, 0x14($s3) +/* 07E3FC 7F04988C AFA8010C */ sw $t0, 0x10c($sp) +/* 07E400 7F049890 8E1800AC */ lw $t8, 0xac($s0) +/* 07E404 7F049894 33090003 */ andi $t1, $t8, 3 +/* 07E408 7F049898 2D2B0001 */ sltiu $t3, $t1, 1 +/* 07E40C 7F04989C 0FC2279B */ jal get_curplayer_positiondata +/* 07E410 7F0498A0 AFAB0108 */ sw $t3, 0x108($sp) +/* 07E414 7F0498A4 AFA20104 */ sw $v0, 0x104($sp) +/* 07E418 7F0498A8 8E8E0008 */ lw $t6, 8($s4) +/* 07E41C 7F0498AC 24040005 */ li $a0, 5 +/* 07E420 7F0498B0 8DC30008 */ lw $v1, 8($t6) +/* 07E424 7F0498B4 8C6A001C */ lw $t2, 0x1c($v1) +/* 07E428 7F0498B8 51400007 */ beql $t2, $zero, .Ljp7F0498D8 +/* 07E42C 7F0498BC 926D0001 */ lbu $t5, 1($s3) +/* 07E430 7F0498C0 8E0F00AC */ lw $t7, 0xac($s0) +/* 07E434 7F0498C4 31EC0007 */ andi $t4, $t7, 7 +/* 07E438 7F0498C8 55800003 */ bnezl $t4, .Ljp7F0498D8 +/* 07E43C 7F0498CC 926D0001 */ lbu $t5, 1($s3) +/* 07E440 7F0498D0 24040007 */ li $a0, 7 +/* 07E444 7F0498D4 926D0001 */ lbu $t5, 1($s3) +.Ljp7F0498D8: +/* 07E448 7F0498D8 31B90002 */ andi $t9, $t5, 2 +/* 07E44C 7F0498DC 1320002D */ beqz $t9, .Ljp7F049994 +/* 07E450 7F0498E0 00048880 */ sll $s1, $a0, 2 +/* 07E454 7F0498E4 00714021 */ addu $t0, $v1, $s1 +/* 07E458 7F0498E8 8D050000 */ lw $a1, ($t0) +/* 07E45C 7F0498EC 02802025 */ move $a0, $s4 +/* 07E460 7F0498F0 50A00029 */ beql $a1, $zero, .Ljp7F049998 +/* 07E464 7F0498F4 C6640008 */ lwc1 $f4, 8($s3) +/* 07E468 7F0498F8 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07E46C 7F0498FC 00003025 */ move $a2, $zero +/* 07E470 7F049900 8E980008 */ lw $t8, 8($s4) +/* 07E474 7F049904 00409025 */ move $s2, $v0 +/* 07E478 7F049908 8F090008 */ lw $t1, 8($t8) +/* 07E47C 7F04990C 01315821 */ addu $t3, $t1, $s1 +/* 07E480 7F049910 8D6E0000 */ lw $t6, ($t3) +/* 07E484 7F049914 8DC30004 */ lw $v1, 4($t6) +/* 07E488 7F049918 C46A0000 */ lwc1 $f10, ($v1) +/* 07E48C 7F04991C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E490 7F049920 C4660004 */ lwc1 $f6, 4($v1) +/* 07E494 7F049924 E7A60134 */ swc1 $f6, 0x134($sp) +/* 07E498 7F049928 C4680008 */ lwc1 $f8, 8($v1) +/* 07E49C 7F04992C 0FC1E28D */ jal sub_GAME_7F078444 +/* 07E4A0 7F049930 E7A80138 */ swc1 $f8, 0x138($sp) +/* 07E4A4 7F049934 27B100BC */ addiu $s1, $sp, 0xbc +/* 07E4A8 7F049938 02203025 */ move $a2, $s1 +/* 07E4AC 7F04993C 00402025 */ move $a0, $v0 +/* 07E4B0 7F049940 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07E4B4 7F049944 02402825 */ move $a1, $s2 +/* 07E4B8 7F049948 02202025 */ move $a0, $s1 +/* 07E4BC 7F04994C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07E4C0 7F049950 27A50130 */ addiu $a1, $sp, 0x130 +/* 07E4C4 7F049954 C7A40138 */ lwc1 $f4, 0x138($sp) +/* 07E4C8 7F049958 8E650008 */ lw $a1, 8($s3) +/* 07E4CC 7F04995C 8E660010 */ lw $a2, 0x10($s3) +/* 07E4D0 7F049960 27A4010C */ addiu $a0, $sp, 0x10c +/* 07E4D4 7F049964 8FA70130 */ lw $a3, 0x130($sp) +/* 07E4D8 7F049968 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07E4DC 7F04996C E7A40010 */ swc1 $f4, 0x10($sp) +/* 07E4E0 7F049970 1440000E */ bnez $v0, .Ljp7F0499AC +/* 07E4E4 7F049974 00000000 */ nop +/* 07E4E8 7F049978 C66A0008 */ lwc1 $f10, 8($s3) +/* 07E4EC 7F04997C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E4F0 7F049980 C666000C */ lwc1 $f6, 0xc($s3) +/* 07E4F4 7F049984 E7A60134 */ swc1 $f6, 0x134($sp) +/* 07E4F8 7F049988 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07E4FC 7F04998C 10000007 */ b .Ljp7F0499AC +/* 07E500 7F049990 E7A80138 */ swc1 $f8, 0x138($sp) +.Ljp7F049994: +/* 07E504 7F049994 C6640008 */ lwc1 $f4, 8($s3) +.Ljp7F049998: +/* 07E508 7F049998 E7A40130 */ swc1 $f4, 0x130($sp) +/* 07E50C 7F04999C C66A000C */ lwc1 $f10, 0xc($s3) +/* 07E510 7F0499A0 E7AA0134 */ swc1 $f10, 0x134($sp) +/* 07E514 7F0499A4 C6660010 */ lwc1 $f6, 0x10($s3) +/* 07E518 7F0499A8 E7A60138 */ swc1 $f6, 0x138($sp) +.Ljp7F0499AC: +/* 07E51C 7F0499AC 0FC160F0 */ jal cosf +/* 07E520 7F0499B0 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E524 7F0499B4 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E528 7F0499B8 0FC160F3 */ jal sinf +/* 07E52C 7F0499BC E7A00080 */ swc1 $f0, 0x80($sp) +/* 07E530 7F0499C0 C7A20080 */ lwc1 $f2, 0x80($sp) +/* 07E534 7F0499C4 46020202 */ mul.s $f8, $f0, $f2 +/* 07E538 7F0499C8 E7A80124 */ swc1 $f8, 0x124($sp) +/* 07E53C 7F0499CC 0FC160F3 */ jal sinf +/* 07E540 7F0499D0 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E544 7F0499D4 E7A00128 */ swc1 $f0, 0x128($sp) +/* 07E548 7F0499D8 0FC160F0 */ jal cosf +/* 07E54C 7F0499DC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E550 7F0499E0 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E554 7F0499E4 0FC160F0 */ jal cosf +/* 07E558 7F0499E8 E7A00080 */ swc1 $f0, 0x80($sp) +/* 07E55C 7F0499EC C7A20080 */ lwc1 $f2, 0x80($sp) +/* 07E560 7F0499F0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07E564 7F0499F4 44816000 */ mtc1 $at, $f12 +/* 07E568 7F0499F8 46020382 */ mul.s $f14, $f0, $f2 +/* 07E56C 7F0499FC C7A40124 */ lwc1 $f4, 0x124($sp) +/* 07E570 7F049A00 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 07E574 7F049A04 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E578 7F049A08 C7A40128 */ lwc1 $f4, 0x128($sp) +/* 07E57C 7F049A0C E7AE012C */ swc1 $f14, 0x12c($sp) +/* 07E580 7F049A10 46065200 */ add.s $f8, $f10, $f6 +/* 07E584 7F049A14 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E588 7F049A18 C7A60134 */ lwc1 $f6, 0x134($sp) +/* 07E58C 7F049A1C 460C7102 */ mul.s $f4, $f14, $f12 +/* 07E590 7F049A20 E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E594 7F049A24 46065200 */ add.s $f8, $f10, $f6 +/* 07E598 7F049A28 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07E59C 7F049A2C 460A2180 */ add.s $f6, $f4, $f10 +/* 07E5A0 7F049A30 E7A80118 */ swc1 $f8, 0x118($sp) +/* 07E5A4 7F049A34 0FC2CA1D */ jal sub_GAME_7F0B1CC4 +/* 07E5A8 7F049A38 E7A6011C */ swc1 $f6, 0x11c($sp) +/* 07E5AC 7F049A3C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07E5B0 7F049A40 44810000 */ mtc1 $at, $f0 +/* 07E5B4 7F049A44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E5B8 7F049A48 44812000 */ mtc1 $at, $f4 +/* 07E5BC 7F049A4C C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 07E5C0 7F049A50 240A0002 */ li $t2, 2 +/* 07E5C4 7F049A54 AFAA0014 */ sw $t2, 0x14($sp) +/* 07E5C8 7F049A58 27A4010C */ addiu $a0, $sp, 0x10c +/* 07E5CC 7F049A5C 8FA50130 */ lw $a1, 0x130($sp) +/* 07E5D0 7F049A60 8FA60138 */ lw $a2, 0x138($sp) +/* 07E5D4 7F049A64 8FA70114 */ lw $a3, 0x114($sp) +/* 07E5D8 7F049A68 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07E5DC 7F049A6C E7A00018 */ swc1 $f0, 0x18($sp) +/* 07E5E0 7F049A70 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07E5E4 7F049A74 E7A80010 */ swc1 $f8, 0x10($sp) +/* 07E5E8 7F049A78 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07E5EC 7F049A7C E7A40024 */ swc1 $f4, 0x24($sp) +/* 07E5F0 7F049A80 14400017 */ bnez $v0, .Ljp7F049AE0 +/* 07E5F4 7F049A84 27A60114 */ addiu $a2, $sp, 0x114 +/* 07E5F8 7F049A88 27A40130 */ addiu $a0, $sp, 0x130 +/* 07E5FC 7F049A8C 0FC09955 */ jal sub_GAME_7F02624C +/* 07E600 7F049A90 27A50124 */ addiu $a1, $sp, 0x124 +/* 07E604 7F049A94 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E608 7F049A98 44818000 */ mtc1 $at, $f16 +/* 07E60C 7F049A9C C7A60124 */ lwc1 $f6, 0x124($sp) +/* 07E610 7F049AA0 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 07E614 7F049AA4 C7AE012C */ lwc1 $f14, 0x12c($sp) +/* 07E618 7F049AA8 46068202 */ mul.s $f8, $f16, $f6 +/* 07E61C 7F049AAC C7A60118 */ lwc1 $f6, 0x118($sp) +/* 07E620 7F049AB0 8FAF010C */ lw $t7, 0x10c($sp) +/* 07E624 7F049AB4 AFAF0110 */ sw $t7, 0x110($sp) +/* 07E628 7F049AB8 46085101 */ sub.s $f4, $f10, $f8 +/* 07E62C 7F049ABC C7AA0128 */ lwc1 $f10, 0x128($sp) +/* 07E630 7F049AC0 460A8202 */ mul.s $f8, $f16, $f10 +/* 07E634 7F049AC4 E7A40114 */ swc1 $f4, 0x114($sp) +/* 07E638 7F049AC8 C7AA011C */ lwc1 $f10, 0x11c($sp) +/* 07E63C 7F049ACC 46083101 */ sub.s $f4, $f6, $f8 +/* 07E640 7F049AD0 460E8182 */ mul.s $f6, $f16, $f14 +/* 07E644 7F049AD4 E7A40118 */ swc1 $f4, 0x118($sp) +/* 07E648 7F049AD8 46065201 */ sub.s $f8, $f10, $f6 +/* 07E64C 7F049ADC E7A8011C */ swc1 $f8, 0x11c($sp) +.Ljp7F049AE0: +/* 07E650 7F049AE0 3C0C8005 */ lui $t4, %hi(global_timer) # $t4, 0x8005 +/* 07E654 7F049AE4 8D8C83AC */ lw $t4, %lo(global_timer)($t4) +/* 07E658 7F049AE8 8E0D00BC */ lw $t5, 0xbc($s0) +/* 07E65C 7F049AEC 27B10114 */ addiu $s1, $sp, 0x114 +/* 07E660 7F049AF0 8FA50104 */ lw $a1, 0x104($sp) +/* 07E664 7F049AF4 158D0052 */ bne $t4, $t5, .Ljp7F049C40 +/* 07E668 7F049AF8 C7AA0130 */ lwc1 $f10, 0x130($sp) +/* 07E66C 7F049AFC C4A40008 */ lwc1 $f4, 8($a1) +/* 07E670 7F049B00 C4A6000C */ lwc1 $f6, 0xc($a1) +/* 07E674 7F049B04 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 07E678 7F049B08 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E67C 7F049B0C C4A40010 */ lwc1 $f4, 0x10($a1) +/* 07E680 7F049B10 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07E684 7F049B14 46083081 */ sub.s $f2, $f6, $f8 +/* 07E688 7F049B18 C7A60138 */ lwc1 $f6, 0x138($sp) +/* 07E68C 7F049B1C 46062301 */ sub.s $f12, $f4, $f6 +/* 07E690 7F049B20 46000102 */ mul.s $f4, $f0, $f0 +/* 07E694 7F049B24 00000000 */ nop +/* 07E698 7F049B28 46021282 */ mul.s $f10, $f2, $f2 +/* 07E69C 7F049B2C 460A2100 */ add.s $f4, $f4, $f10 +/* 07E6A0 7F049B30 460C6282 */ mul.s $f10, $f12, $f12 +/* 07E6A4 7F049B34 460A2500 */ add.s $f20, $f4, $f10 +/* 07E6A8 7F049B38 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 07E6AC 7F049B3C C7A40114 */ lwc1 $f4, 0x114($sp) +/* 07E6B0 7F049B40 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E6B4 7F049B44 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 07E6B8 7F049B48 C7AA011C */ lwc1 $f10, 0x11c($sp) +/* 07E6BC 7F049B4C 46082081 */ sub.s $f2, $f4, $f8 +/* 07E6C0 7F049B50 46000102 */ mul.s $f4, $f0, $f0 +/* 07E6C4 7F049B54 46065301 */ sub.s $f12, $f10, $f6 +/* 07E6C8 7F049B58 46021202 */ mul.s $f8, $f2, $f2 +/* 07E6CC 7F049B5C 46082280 */ add.s $f10, $f4, $f8 +/* 07E6D0 7F049B60 460C6182 */ mul.s $f6, $f12, $f12 +/* 07E6D4 7F049B64 46065100 */ add.s $f4, $f10, $f6 +/* 07E6D8 7F049B68 4604A03E */ c.le.s $f20, $f4 +/* 07E6DC 7F049B6C 00000000 */ nop +/* 07E6E0 7F049B70 45000033 */ bc1f .Ljp7F049C40 +/* 07E6E4 7F049B74 00000000 */ nop +/* 07E6E8 7F049B78 0FC2296B */ jal check_if_bond_is_invincible +/* 07E6EC 7F049B7C 00000000 */ nop +/* 07E6F0 7F049B80 54400030 */ bnezl $v0, .Ljp7F049C44 +/* 07E6F4 7F049B84 8FB90120 */ lw $t9, 0x120($sp) +/* 07E6F8 7F049B88 0C007E08 */ jal sqrtf +/* 07E6FC 7F049B8C 4600A306 */ mov.s $f12, $f20 +/* 07E700 7F049B90 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 07E704 7F049B94 44816000 */ mtc1 $at, $f12 +/* 07E708 7F049B98 3C018005 */ lui $at, %hi(D_80052B74) # $at, 0x8005 +/* 07E70C 7F049B9C C4282BA4 */ lwc1 $f8, %lo(D_80052B74)($at) +/* 07E710 7F049BA0 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 +/* 07E714 7F049BA4 C42A83A8 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 07E718 7F049BA8 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 07E71C 7F049BAC 4600603C */ c.lt.s $f12, $f0 +/* 07E720 7F049BB0 460A4182 */ mul.s $f6, $f8, $f10 +/* 07E724 7F049BB4 C4240B5C */ lwc1 $f4, %lo(D_80030B1C)($at) +/* 07E728 7F049BB8 46043082 */ mul.s $f2, $f6, $f4 +/* 07E72C 7F049BBC 45020005 */ bc1fl .Ljp7F049BD4 +/* 07E730 7F049BC0 C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 07E734 7F049BC4 46006203 */ div.s $f8, $f12, $f0 +/* 07E738 7F049BC8 46081082 */ mul.s $f2, $f2, $f8 +/* 07E73C 7F049BCC 00000000 */ nop +/* 07E740 7F049BD0 C60A00D4 */ lwc1 $f10, 0xd4($s0) +.Ljp7F049BD4: +/* 07E744 7F049BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E748 7F049BD8 44814000 */ mtc1 $at, $f8 +/* 07E74C 7F049BDC 46025180 */ add.s $f6, $f10, $f2 +/* 07E750 7F049BE0 E60600D4 */ swc1 $f6, 0xd4($s0) +/* 07E754 7F049BE4 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 07E758 7F049BE8 4604403E */ c.le.s $f8, $f4 +/* 07E75C 7F049BEC 00000000 */ nop +/* 07E760 7F049BF0 45020014 */ bc1fl .Ljp7F049C44 +/* 07E764 7F049BF4 8FB90120 */ lw $t9, 0x120($sp) +/* 07E768 7F049BF8 0FC17929 */ jal bondwalkGetItemDestructionAmount +/* 07E76C 7F049BFC 2404000E */ li $a0, 14 +/* 07E770 7F049C00 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 07E774 7F049C04 44815000 */ mtc1 $at, $f10 +/* 07E778 7F049C08 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 07E77C 7F049C0C C4240B60 */ lwc1 $f4, %lo(D_80030B20)($at) +/* 07E780 7F049C10 460A0182 */ mul.s $f6, $f0, $f10 +/* 07E784 7F049C14 C60E0090 */ lwc1 $f14, 0x90($s0) +/* 07E788 7F049C18 2406FFFF */ li $a2, -1 +/* 07E78C 7F049C1C 24070001 */ li $a3, 1 +/* 07E790 7F049C20 46043302 */ mul.s $f12, $f6, $f4 +/* 07E794 7F049C24 0FC22955 */ jal sub_GAME_7F089E4C +/* 07E798 7F049C28 00000000 */ nop +/* 07E79C 7F049C2C 0FC2296B */ jal check_if_bond_is_invincible +/* 07E7A0 7F049C30 E61600D4 */ swc1 $f22, 0xd4($s0) +/* 07E7A4 7F049C34 50400003 */ beql $v0, $zero, .Ljp7F049C44 +/* 07E7A8 7F049C38 8FB90120 */ lw $t9, 0x120($sp) +/* 07E7AC 7F049C3C AFA00120 */ sw $zero, 0x120($sp) +.Ljp7F049C40: +/* 07E7B0 7F049C40 8FB90120 */ lw $t9, 0x120($sp) +.Ljp7F049C44: +/* 07E7B4 7F049C44 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E7B8 7F049C48 44818000 */ mtc1 $at, $f16 +/* 07E7BC 7F049C4C 1320000F */ beqz $t9, .Ljp7F049C8C +/* 07E7C0 7F049C50 8FA50104 */ lw $a1, 0x104($sp) +/* 07E7C4 7F049C54 8FA80110 */ lw $t0, 0x110($sp) +/* 07E7C8 7F049C58 02202025 */ move $a0, $s1 +/* 07E7CC 7F049C5C 24050001 */ li $a1, 1 +/* 07E7D0 7F049C60 51000005 */ beql $t0, $zero, .Ljp7F049C78 +/* 07E7D4 7F049C64 2404000E */ li $a0, 14 +/* 07E7D8 7F049C68 44068000 */ mfc1 $a2, $f16 +/* 07E7DC 7F049C6C 0FC2926F */ jal sub_GAME_7F0A3E1C +/* 07E7E0 7F049C70 91070003 */ lbu $a3, 3($t0) +/* 07E7E4 7F049C74 2404000E */ li $a0, 14 +.Ljp7F049C78: +/* 07E7E8 7F049C78 02202825 */ move $a1, $s1 +/* 07E7EC 7F049C7C 0FC1932F */ jal recall_joy2_hits_edit_flag +/* 07E7F0 7F049C80 2406FFFF */ li $a2, -1 +/* 07E7F4 7F049C84 1000000B */ b .Ljp7F049CB4 +/* 07E7F8 7F049C88 8FB80108 */ lw $t8, 0x108($sp) +.Ljp7F049C8C: +/* 07E7FC 7F049C8C C4A80008 */ lwc1 $f8, 8($a1) +/* 07E800 7F049C90 2404000E */ li $a0, 14 +/* 07E804 7F049C94 2406FFFF */ li $a2, -1 +/* 07E808 7F049C98 E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E80C 7F049C9C C4AA000C */ lwc1 $f10, 0xc($a1) +/* 07E810 7F049CA0 E7AA0118 */ swc1 $f10, 0x118($sp) +/* 07E814 7F049CA4 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 07E818 7F049CA8 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07E81C 7F049CAC E7A6011C */ swc1 $f6, 0x11c($sp) +/* 07E820 7F049CB0 8FB80108 */ lw $t8, 0x108($sp) +.Ljp7F049CB4: +/* 07E824 7F049CB4 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 07E828 7F049CB8 53000085 */ beql $t8, $zero, .Ljp7F049ED0 +/* 07E82C 7F049CBC 8E8E0008 */ lw $t6, 8($s4) +/* 07E830 7F049CC0 8E0300CC */ lw $v1, 0xcc($s0) +/* 07E834 7F049CC4 E4640004 */ swc1 $f4, 4($v1) +/* 07E838 7F049CC8 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 07E83C 7F049CCC C4640004 */ lwc1 $f4, 4($v1) +/* 07E840 7F049CD0 E4680008 */ swc1 $f8, 8($v1) +/* 07E844 7F049CD4 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07E848 7F049CD8 E46A000C */ swc1 $f10, 0xc($v1) +/* 07E84C 7F049CDC C7A60114 */ lwc1 $f6, 0x114($sp) +/* 07E850 7F049CE0 46043201 */ sub.s $f8, $f6, $f4 +/* 07E854 7F049CE4 C4660008 */ lwc1 $f6, 8($v1) +/* 07E858 7F049CE8 E4680010 */ swc1 $f8, 0x10($v1) +/* 07E85C 7F049CEC C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E860 7F049CF0 C4620010 */ lwc1 $f2, 0x10($v1) +/* 07E864 7F049CF4 46065101 */ sub.s $f4, $f10, $f6 +/* 07E868 7F049CF8 C46A000C */ lwc1 $f10, 0xc($v1) +/* 07E86C 7F049CFC E4640014 */ swc1 $f4, 0x14($v1) +/* 07E870 7F049D00 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 07E874 7F049D04 46021102 */ mul.s $f4, $f2, $f2 +/* 07E878 7F049D08 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 07E87C 7F049D0C 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E880 7F049D10 460E7202 */ mul.s $f8, $f14, $f14 +/* 07E884 7F049D14 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E888 7F049D18 C4600018 */ lwc1 $f0, 0x18($v1) +/* 07E88C 7F049D1C AFA30094 */ sw $v1, 0x94($sp) +/* 07E890 7F049D20 46000182 */ mul.s $f6, $f0, $f0 +/* 07E894 7F049D24 46082280 */ add.s $f10, $f4, $f8 +/* 07E898 7F049D28 0C007E08 */ jal sqrtf +/* 07E89C 7F049D2C 460A3300 */ add.s $f12, $f6, $f10 +/* 07E8A0 7F049D30 3C018005 */ lui $at, %hi(D_80052B78) # $at, 0x8005 +/* 07E8A4 7F049D34 C42E2BA8 */ lwc1 $f14, %lo(D_80052B78)($at) +/* 07E8A8 7F049D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E8AC 7F049D3C 44812000 */ mtc1 $at, $f4 +/* 07E8B0 7F049D40 8FA30094 */ lw $v1, 0x94($sp) +/* 07E8B4 7F049D44 4600703C */ c.lt.s $f14, $f0 +/* 07E8B8 7F049D48 46000306 */ mov.s $f12, $f0 +/* 07E8BC 7F049D4C 46002083 */ div.s $f2, $f4, $f0 +/* 07E8C0 7F049D50 C4680010 */ lwc1 $f8, 0x10($v1) +/* 07E8C4 7F049D54 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 07E8C8 7F049D58 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07E8CC 7F049D5C 44810000 */ mtc1 $at, $f0 +/* 07E8D0 7F049D60 46024182 */ mul.s $f6, $f8, $f2 +/* 07E8D4 7F049D64 C4680018 */ lwc1 $f8, 0x18($v1) +/* 07E8D8 7F049D68 46025102 */ mul.s $f4, $f10, $f2 +/* 07E8DC 7F049D6C E4660010 */ swc1 $f6, 0x10($v1) +/* 07E8E0 7F049D70 46024182 */ mul.s $f6, $f8, $f2 +/* 07E8E4 7F049D74 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E8E8 7F049D78 45000002 */ bc1f .Ljp7F049D84 +/* 07E8EC 7F049D7C E4660018 */ swc1 $f6, 0x18($v1) +/* 07E8F0 7F049D80 46007306 */ mov.s $f12, $f14 +.Ljp7F049D84: +/* 07E8F4 7F049D84 4600603C */ c.lt.s $f12, $f0 +/* 07E8F8 7F049D88 2409000E */ li $t1, 14 +/* 07E8FC 7F049D8C A0600000 */ sb $zero, ($v1) +/* 07E900 7F049D90 A0690001 */ sb $t1, 1($v1) +/* 07E904 7F049D94 45000002 */ bc1f .Ljp7F049DA0 +/* 07E908 7F049D98 E46C001C */ swc1 $f12, 0x1c($v1) +/* 07E90C 7F049D9C 46000306 */ mov.s $f12, $f0 +.Ljp7F049DA0: +/* 07E910 7F049DA0 806B0001 */ lb $t3, 1($v1) +/* 07E914 7F049DA4 24010016 */ li $at, 22 +/* 07E918 7F049DA8 15610026 */ bne $t3, $at, .Ljp7F049E44 +/* 07E91C 7F049DAC 3C018005 */ lui $at, %hi(D_80052B7C) # $at, 0x8005 +/* 07E920 7F049DB0 C4222BAC */ lwc1 $f2, %lo(D_80052B7C)($at) +/* 07E924 7F049DB4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 07E928 7F049DB8 44815000 */ mtc1 $at, $f10 +/* 07E92C 7F049DBC 3C018005 */ lui $at, %hi(D_80052B80) # $at, 0x8005 +/* 07E930 7F049DC0 460C5102 */ mul.s $f4, $f10, $f12 +/* 07E934 7F049DC4 E4640020 */ swc1 $f4, 0x20($v1) +/* 07E938 7F049DC8 C4282BB0 */ lwc1 $f8, %lo(D_80052B80)($at) +/* 07E93C 7F049DCC 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E940 7F049DD0 4600103C */ c.lt.s $f2, $f0 +/* 07E944 7F049DD4 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E948 7F049DD8 45020003 */ bc1fl .Ljp7F049DE8 +/* 07E94C 7F049DDC AFA30094 */ sw $v1, 0x94($sp) +/* 07E950 7F049DE0 E4620024 */ swc1 $f2, 0x24($v1) +/* 07E954 7F049DE4 AFA30094 */ sw $v1, 0x94($sp) +.Ljp7F049DE8: +/* 07E958 7F049DE8 0C002918 */ jal get_random_value +/* 07E95C 7F049DEC E7AC0098 */ swc1 $f12, 0x98($sp) +/* 07E960 7F049DF0 44823000 */ mtc1 $v0, $f6 +/* 07E964 7F049DF4 8FA30094 */ lw $v1, 0x94($sp) +/* 07E968 7F049DF8 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 07E96C 7F049DFC 04410005 */ bgez $v0, .Ljp7F049E14 +/* 07E970 7F049E00 468032A0 */ cvt.s.w $f10, $f6 +/* 07E974 7F049E04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E978 7F049E08 44812000 */ mtc1 $at, $f4 +/* 07E97C 7F049E0C 00000000 */ nop +/* 07E980 7F049E10 46045280 */ add.s $f10, $f10, $f4 +.Ljp7F049E14: +/* 07E984 7F049E14 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E988 7F049E18 44814000 */ mtc1 $at, $f8 +/* 07E98C 7F049E1C 3C018005 */ lui $at, %hi(D_80052B84) # $at, 0x8005 +/* 07E990 7F049E20 C4242BB4 */ lwc1 $f4, %lo(D_80052B84)($at) +/* 07E994 7F049E24 46085182 */ mul.s $f6, $f10, $f8 +/* 07E998 7F049E28 3C018005 */ lui $at, %hi(D_80052B88) # $at, 0x8005 +/* 07E99C 7F049E2C C4282BB8 */ lwc1 $f8, %lo(D_80052B88)($at) +/* 07E9A0 7F049E30 46043282 */ mul.s $f10, $f6, $f4 +/* 07E9A4 7F049E34 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E9A8 7F049E38 460C3102 */ mul.s $f4, $f6, $f12 +/* 07E9AC 7F049E3C 10000023 */ b .Ljp7F049ECC +/* 07E9B0 7F049E40 E4640028 */ swc1 $f4, 0x28($v1) +.Ljp7F049E44: +/* 07E9B4 7F049E44 3C018005 */ lui $at, %hi(D_80052B8C) # $at, 0x8005 +/* 07E9B8 7F049E48 C4282BBC */ lwc1 $f8, %lo(D_80052B8C)($at) +/* 07E9BC 7F049E4C 3C018005 */ lui $at, %hi(D_80052B90) # $at, 0x8005 +/* 07E9C0 7F049E50 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E9C4 7F049E54 E4600020 */ swc1 $f0, 0x20($v1) +/* 07E9C8 7F049E58 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E9CC 7F049E5C C42A2BC0 */ lwc1 $f10, %lo(D_80052B90)($at) +/* 07E9D0 7F049E60 3C018005 */ lui $at, %hi(D_80052B94) # $at, 0x8005 +/* 07E9D4 7F049E64 4600503C */ c.lt.s $f10, $f0 +/* 07E9D8 7F049E68 00000000 */ nop +/* 07E9DC 7F049E6C 45000003 */ bc1f .Ljp7F049E7C +/* 07E9E0 7F049E70 00000000 */ nop +/* 07E9E4 7F049E74 C4262BC4 */ lwc1 $f6, %lo(D_80052B94)($at) +/* 07E9E8 7F049E78 E4660024 */ swc1 $f6, 0x24($v1) +.Ljp7F049E7C: +/* 07E9EC 7F049E7C 0C002918 */ jal get_random_value +/* 07E9F0 7F049E80 AFA30094 */ sw $v1, 0x94($sp) +/* 07E9F4 7F049E84 44822000 */ mtc1 $v0, $f4 +/* 07E9F8 7F049E88 8FA30094 */ lw $v1, 0x94($sp) +/* 07E9FC 7F049E8C 04410005 */ bgez $v0, .Ljp7F049EA4 +/* 07EA00 7F049E90 46802220 */ cvt.s.w $f8, $f4 +/* 07EA04 7F049E94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EA08 7F049E98 44815000 */ mtc1 $at, $f10 +/* 07EA0C 7F049E9C 00000000 */ nop +/* 07EA10 7F049EA0 460A4200 */ add.s $f8, $f8, $f10 +.Ljp7F049EA4: +/* 07EA14 7F049EA4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07EA18 7F049EA8 44813000 */ mtc1 $at, $f6 +/* 07EA1C 7F049EAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EA20 7F049EB0 44815000 */ mtc1 $at, $f10 +/* 07EA24 7F049EB4 46064002 */ mul.s $f0, $f8, $f6 +/* 07EA28 7F049EB8 C4660020 */ lwc1 $f6, 0x20($v1) +/* 07EA2C 7F049EBC 46000100 */ add.s $f4, $f0, $f0 +/* 07EA30 7F049EC0 460A2201 */ sub.s $f8, $f4, $f10 +/* 07EA34 7F049EC4 46064102 */ mul.s $f4, $f8, $f6 +/* 07EA38 7F049EC8 E4640028 */ swc1 $f4, 0x28($v1) +.Ljp7F049ECC: +/* 07EA3C 7F049ECC 8E8E0008 */ lw $t6, 8($s4) +.Ljp7F049ED0: +/* 07EA40 7F049ED0 8DC30008 */ lw $v1, 8($t6) +/* 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 +/* 07EA54 7F049EE4 02802025 */ move $a0, $s4 +/* 07EA58 7F049EE8 8FAA0140 */ lw $t2, 0x140($sp) +/* 07EA5C 7F049EEC A44A0000 */ sh $t2, ($v0) +/* 07EA60 7F049EF0 8E8F0008 */ lw $t7, 8($s4) +/* 07EA64 7F049EF4 8DE30008 */ lw $v1, 8($t7) +/* 07EA68 7F049EF8 8C65001C */ lw $a1, 0x1c($v1) +.Ljp7F049EFC: +/* 07EA6C 7F049EFC 10A00005 */ beqz $a1, .Ljp7F049F14 +/* 07EA70 7F049F00 00000000 */ nop +/* 07EA74 7F049F04 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07EA78 7F049F08 02802025 */ move $a0, $s4 +/* 07EA7C 7F049F0C 8FAC013C */ lw $t4, 0x13c($sp) +/* 07EA80 7F049F10 A44C0000 */ sh $t4, ($v0) +.Ljp7F049F14: +/* 07EA84 7F049F14 0FC1113A */ jal sub_GAME_7F044200 +/* 07EA88 7F049F18 02602025 */ move $a0, $s3 +/* 07EA8C 7F049F1C 8FAD0688 */ lw $t5, 0x688($sp) +.Ljp7F049F20: +/* 07EA90 7F049F20 24010005 */ li $at, 5 +/* 07EA94 7F049F24 55A10003 */ bnel $t5, $at, .Ljp7F049F34 +/* 07EA98 7F049F28 8FA20688 */ lw $v0, 0x688($sp) +/* 07EA9C 7F049F2C AE600014 */ sw $zero, 0x14($s3) +/* 07EAA0 7F049F30 8FA20688 */ lw $v0, 0x688($sp) +.Ljp7F049F34: +/* 07EAA4 7F049F34 8FBF0054 */ lw $ra, 0x54($sp) +/* 07EAA8 7F049F38 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 07EAAC 7F049F3C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 07EAB0 7F049F40 8FB00040 */ lw $s0, 0x40($sp) +/* 07EAB4 7F049F44 8FB10044 */ lw $s1, 0x44($sp) +/* 07EAB8 7F049F48 8FB20048 */ lw $s2, 0x48($sp) +/* 07EABC 7F049F4C 8FB3004C */ lw $s3, 0x4c($sp) +/* 07EAC0 7F049F50 8FB40050 */ lw $s4, 0x50($sp) +/* 07EAC4 7F049F54 03E00008 */ jr $ra +/* 07EAC8 7F049F58 27BD06B0 */ addiu $sp, $sp, 0x6b0 +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F049B58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F049B58 +/* 07E688 7F049B58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 07E68C 7F049B5C AFBF0034 */ sw $ra, 0x34($sp) +/* 07E690 7F049B60 AFB20020 */ sw $s2, 0x20($sp) +/* 07E694 7F049B64 00809025 */ move $s2, $a0 +/* 07E698 7F049B68 AFB60030 */ sw $s6, 0x30($sp) +/* 07E69C 7F049B6C AFB5002C */ sw $s5, 0x2c($sp) +/* 07E6A0 7F049B70 AFB40028 */ sw $s4, 0x28($sp) +/* 07E6A4 7F049B74 AFB30024 */ sw $s3, 0x24($sp) +/* 07E6A8 7F049B78 AFB1001C */ sw $s1, 0x1c($sp) +/* 07E6AC 7F049B7C 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 07E6B0 7F049B80 AFB00018 */ sw $s0, 0x18($sp) +/* 07E6B4 7F049B84 10400036 */ beqz $v0, .L7F049C60 +/* 07E6B8 7F049B88 00408025 */ move $s0, $v0 +/* 07E6BC 7F049B8C 24160006 */ li $s6, 6 +/* 07E6C0 7F049B90 2415000D */ li $s5, 13 +/* 07E6C4 7F049B94 24140001 */ li $s4, 1 +/* 07E6C8 7F049B98 24130003 */ li $s3, 3 +/* 07E6CC 7F049B9C 92020000 */ lbu $v0, ($s0) +.L7F049BA0: +/* 07E6D0 7F049BA0 02402025 */ move $a0, $s2 +/* 07E6D4 7F049BA4 1662000B */ bne $s3, $v0, .L7F049BD4 +/* 07E6D8 7F049BA8 00000000 */ nop +/* 07E6DC 7F049BAC 8E110004 */ lw $s1, 4($s0) +/* 07E6E0 7F049BB0 02803025 */ move $a2, $s4 +/* 07E6E4 7F049BB4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E6E8 7F049BB8 26250180 */ addiu $a1, $s1, 0x180 +/* 07E6EC 7F049BBC 00402025 */ move $a0, $v0 +/* 07E6F0 7F049BC0 262501AC */ addiu $a1, $s1, 0x1ac +/* 07E6F4 7F049BC4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E6F8 7F049BC8 02803025 */ move $a2, $s4 +/* 07E6FC 7F049BCC 10000021 */ b .L7F049C54 +/* 07E700 7F049BD0 00409025 */ move $s2, $v0 +.L7F049BD4: +/* 07E704 7F049BD4 1682000B */ bne $s4, $v0, .L7F049C04 +/* 07E708 7F049BD8 00000000 */ nop +/* 07E70C 7F049BDC 8E030004 */ lw $v1, 4($s0) +/* 07E710 7F049BE0 02402025 */ move $a0, $s2 +/* 07E714 7F049BE4 02803025 */ move $a2, $s4 +/* 07E718 7F049BE8 906E0003 */ lbu $t6, 3($v1) +/* 07E71C 7F049BEC 56AE001A */ bnel $s5, $t6, .L7F049C58 +/* 07E720 7F049BF0 8E100024 */ lw $s0, 0x24($s0) +/* 07E724 7F049BF4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E728 7F049BF8 8C6500CC */ lw $a1, 0xcc($v1) +/* 07E72C 7F049BFC 10000015 */ b .L7F049C54 +/* 07E730 7F049C00 00409025 */ move $s2, $v0 +.L7F049C04: +/* 07E734 7F049C04 56C20014 */ bnel $s6, $v0, .L7F049C58 +/* 07E738 7F049C08 8E100024 */ lw $s0, 0x24($s0) +/* 07E73C 7F049C0C 8E0F0004 */ lw $t7, 4($s0) +/* 07E740 7F049C10 51E00011 */ beql $t7, $zero, .L7F049C58 +/* 07E744 7F049C14 8E100024 */ lw $s0, 0x24($s0) +/* 07E748 7F049C18 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07E74C 7F049C1C 02002025 */ move $a0, $s0 +/* 07E750 7F049C20 0FC26C54 */ jal get_cur_playernum +/* 07E754 7F049C24 00408825 */ move $s1, $v0 +/* 07E758 7F049C28 1051000A */ beq $v0, $s1, .L7F049C54 +/* 07E75C 7F049C2C 02402025 */ move $a0, $s2 +/* 07E760 7F049C30 8E110004 */ lw $s1, 4($s0) +/* 07E764 7F049C34 02803025 */ move $a2, $s4 +/* 07E768 7F049C38 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E76C 7F049C3C 26250180 */ addiu $a1, $s1, 0x180 +/* 07E770 7F049C40 00402025 */ move $a0, $v0 +/* 07E774 7F049C44 262501AC */ addiu $a1, $s1, 0x1ac +/* 07E778 7F049C48 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E77C 7F049C4C 02803025 */ move $a2, $s4 +/* 07E780 7F049C50 00409025 */ move $s2, $v0 +.L7F049C54: +/* 07E784 7F049C54 8E100024 */ lw $s0, 0x24($s0) +.L7F049C58: +/* 07E788 7F049C58 5600FFD1 */ bnezl $s0, .L7F049BA0 +/* 07E78C 7F049C5C 92020000 */ lbu $v0, ($s0) +.L7F049C60: +/* 07E790 7F049C60 8FBF0034 */ lw $ra, 0x34($sp) +/* 07E794 7F049C64 02401025 */ move $v0, $s2 +/* 07E798 7F049C68 8FB20020 */ lw $s2, 0x20($sp) +/* 07E79C 7F049C6C 8FB00018 */ lw $s0, 0x18($sp) +/* 07E7A0 7F049C70 8FB1001C */ lw $s1, 0x1c($sp) +/* 07E7A4 7F049C74 8FB30024 */ lw $s3, 0x24($sp) +/* 07E7A8 7F049C78 8FB40028 */ lw $s4, 0x28($sp) +/* 07E7AC 7F049C7C 8FB5002C */ lw $s5, 0x2c($sp) +/* 07E7B0 7F049C80 8FB60030 */ lw $s6, 0x30($sp) +/* 07E7B4 7F049C84 03E00008 */ jr $ra +/* 07E7B8 7F049C88 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void save_ptr_monitor_ani_code_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07E7BC 7F049C8C AC850000 */ sw $a1, ($a0) +/* 07E7C0 7F049C90 03E00008 */ jr $ra +/* 07E7C4 7F049C94 A4800004 */ sh $zero, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_ptr_monitor_img_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052B98*/ +glabel jpt_80052B98 +.word def_7F049CC0 +.word .L7F049CC8 +.word .L7F049CD4 +.word .L7F049CE0 +.word .L7F049CEC +.word .L7F049CF8 +.word .L7F049D04 +.word .L7F049D10 +.word .L7F049D1C +.word .L7F049D28 +.word .L7F049D34 +.word .L7F049D40 +.word .L7F049D4C +.word .L7F049D58 +.word .L7F049D64 +.word .L7F049D70 +.word .L7F049D7C +.word .L7F049D88 +.word .L7F049D94 +.word .L7F049DA0 +.word .L7F049DAC +.word .L7F049DB8 +.word .L7F049DC4 +.word .L7F049DD0 +.word .L7F049DDC +.word .L7F049DE8 +.word .L7F049DF4 +.word .L7F049E00 +.word .L7F049E0C +.word .L7F049E18 +.word .L7F049E24 +.word .L7F049E30 +.word .L7F049E3C +.word .L7F049E48 +.word .L7F049E54 +.word .L7F049E60 +.word .L7F049E6C +.word .L7F049E78 +.word .L7F049E84 +.word .L7F049E90 +.word .L7F049E9C +.word .L7F049EA8 +.word .L7F049EB4 +.word .L7F049EC0 +.word .L7F049ECC +.word .L7F049ED8 +.word .L7F049EE4 +.word .L7F049EF0 +.word .L7F049EFC +.word .L7F049F08 +.word .L7F049F14 +.word .L7F049F20 + +.text +glabel set_ptr_monitor_img_to_obj_ani_slot +/* 07E7C8 7F049C98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07E7CC 7F049C9C 3C068003 */ lui $a2, %hi(monitor_animation_microcode) +/* 07E7D0 7F049CA0 2CA10034 */ sltiu $at, $a1, 0x34 +/* 07E7D4 7F049CA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 07E7D8 7F049CA8 1020009F */ beqz $at, .L7F049F28 +/* 07E7DC 7F049CAC 24C60B74 */ addiu $a2, %lo(monitor_animation_microcode) # addiu $a2, $a2, 0xb74 +/* 07E7E0 7F049CB0 00057080 */ sll $t6, $a1, 2 +/* 07E7E4 7F049CB4 3C018005 */ lui $at, %hi(jpt_80052B98) +/* 07E7E8 7F049CB8 002E0821 */ addu $at, $at, $t6 +/* 07E7EC 7F049CBC 8C2E2B98 */ lw $t6, %lo(jpt_80052B98)($at) +/* 07E7F0 7F049CC0 01C00008 */ jr $t6 +/* 07E7F4 7F049CC4 00000000 */ nop +.L7F049CC8: +/* 07E7F8 7F049CC8 3C068003 */ lui $a2, %hi(D_80030C00) +/* 07E7FC 7F049CCC 10000096 */ b .L7F049F28 +/* 07E800 7F049CD0 24C60C00 */ addiu $a2, %lo(D_80030C00) # addiu $a2, $a2, 0xc00 +.L7F049CD4: +/* 07E804 7F049CD4 3C068003 */ lui $a2, %hi(D_80030E24) +/* 07E808 7F049CD8 10000093 */ b .L7F049F28 +/* 07E80C 7F049CDC 24C60E24 */ addiu $a2, %lo(D_80030E24) # addiu $a2, $a2, 0xe24 +.L7F049CE0: +/* 07E810 7F049CE0 3C068003 */ lui $a2, %hi(D_80030F44) +/* 07E814 7F049CE4 10000090 */ b .L7F049F28 +/* 07E818 7F049CE8 24C60F44 */ addiu $a2, %lo(D_80030F44) # addiu $a2, $a2, 0xf44 +.L7F049CEC: +/* 07E81C 7F049CEC 3C068003 */ lui $a2, %hi(D_80031018) +/* 07E820 7F049CF0 1000008D */ b .L7F049F28 +/* 07E824 7F049CF4 24C61018 */ addiu $a2, %lo(D_80031018) # addiu $a2, $a2, 0x1018 +.L7F049CF8: +/* 07E828 7F049CF8 3C068003 */ lui $a2, %hi(D_80031074) +/* 07E82C 7F049CFC 1000008A */ b .L7F049F28 +/* 07E830 7F049D00 24C61074 */ addiu $a2, %lo(D_80031074) # addiu $a2, $a2, 0x1074 +.L7F049D04: +/* 07E834 7F049D04 3C068003 */ lui $a2, %hi(D_800310F0) +/* 07E838 7F049D08 10000087 */ b .L7F049F28 +/* 07E83C 7F049D0C 24C610F0 */ addiu $a2, %lo(D_800310F0) # addiu $a2, $a2, 0x10f0 +.L7F049D10: +/* 07E840 7F049D10 3C068003 */ lui $a2, %hi(D_8003118C) +/* 07E844 7F049D14 10000084 */ b .L7F049F28 +/* 07E848 7F049D18 24C6118C */ addiu $a2, %lo(D_8003118C) # addiu $a2, $a2, 0x118c +.L7F049D1C: +/* 07E84C 7F049D1C 3C068003 */ lui $a2, %hi(D_8003121C) +/* 07E850 7F049D20 10000081 */ b .L7F049F28 +/* 07E854 7F049D24 24C6121C */ addiu $a2, %lo(D_8003121C) # addiu $a2, $a2, 0x121c +.L7F049D28: +/* 07E858 7F049D28 3C068003 */ lui $a2, %hi(D_80031248) +/* 07E85C 7F049D2C 1000007E */ b .L7F049F28 +/* 07E860 7F049D30 24C61248 */ addiu $a2, %lo(D_80031248) # addiu $a2, $a2, 0x1248 +.L7F049D34: +/* 07E864 7F049D34 3C068003 */ lui $a2, %hi(D_80031274) +/* 07E868 7F049D38 1000007B */ b .L7F049F28 +/* 07E86C 7F049D3C 24C61274 */ addiu $a2, %lo(D_80031274) # addiu $a2, $a2, 0x1274 +.L7F049D40: +/* 07E870 7F049D40 3C068003 */ lui $a2, %hi(D_800312F4) +/* 07E874 7F049D44 10000078 */ b .L7F049F28 +/* 07E878 7F049D48 24C612F4 */ addiu $a2, %lo(D_800312F4) # addiu $a2, $a2, 0x12f4 +.L7F049D4C: +/* 07E87C 7F049D4C 3C068003 */ lui $a2, %hi(D_80031310) +/* 07E880 7F049D50 10000075 */ b .L7F049F28 +/* 07E884 7F049D54 24C61310 */ addiu $a2, %lo(D_80031310) # addiu $a2, $a2, 0x1310 +.L7F049D58: +/* 07E888 7F049D58 3C068003 */ lui $a2, %hi(D_80031490) +/* 07E88C 7F049D5C 10000072 */ b .L7F049F28 +/* 07E890 7F049D60 24C61490 */ addiu $a2, %lo(D_80031490) # addiu $a2, $a2, 0x1490 +.L7F049D64: +/* 07E894 7F049D64 3C068003 */ lui $a2, %hi(D_800314F8) +/* 07E898 7F049D68 1000006F */ b .L7F049F28 +/* 07E89C 7F049D6C 24C614F8 */ addiu $a2, %lo(D_800314F8) # addiu $a2, $a2, 0x14f8 +.L7F049D70: +/* 07E8A0 7F049D70 3C068003 */ lui $a2, %hi(D_80030EC8) +/* 07E8A4 7F049D74 1000006C */ b .L7F049F28 +/* 07E8A8 7F049D78 24C60EC8 */ addiu $a2, %lo(D_80030EC8) # addiu $a2, $a2, 0xec8 +.L7F049D7C: +/* 07E8AC 7F049D7C 3C068003 */ lui $a2, %hi(D_80031360) +/* 07E8B0 7F049D80 10000069 */ b .L7F049F28 +/* 07E8B4 7F049D84 24C61360 */ addiu $a2, %lo(D_80031360) # addiu $a2, $a2, 0x1360 +.L7F049D88: +/* 07E8B8 7F049D88 3C068003 */ lui $a2, %hi(D_8003156C) +/* 07E8BC 7F049D8C 10000066 */ b .L7F049F28 +/* 07E8C0 7F049D90 24C6156C */ addiu $a2, %lo(D_8003156C) # addiu $a2, $a2, 0x156c +.L7F049D94: +/* 07E8C4 7F049D94 3C068003 */ lui $a2, %hi(D_800315CC) +/* 07E8C8 7F049D98 10000063 */ b .L7F049F28 +/* 07E8CC 7F049D9C 24C615CC */ addiu $a2, %lo(D_800315CC) # addiu $a2, $a2, 0x15cc +.L7F049DA0: +/* 07E8D0 7F049DA0 3C068003 */ lui $a2, %hi(D_80031848) +/* 07E8D4 7F049DA4 10000060 */ b .L7F049F28 +/* 07E8D8 7F049DA8 24C61848 */ addiu $a2, %lo(D_80031848) # addiu $a2, $a2, 0x1848 +.L7F049DAC: +/* 07E8DC 7F049DAC 3C068003 */ lui $a2, %hi(D_80031898) +/* 07E8E0 7F049DB0 1000005D */ b .L7F049F28 +/* 07E8E4 7F049DB4 24C61898 */ addiu $a2, %lo(D_80031898) # addiu $a2, $a2, 0x1898 +.L7F049DB8: +/* 07E8E8 7F049DB8 3C068003 */ lui $a2, %hi(D_800318B8) +/* 07E8EC 7F049DBC 1000005A */ b .L7F049F28 +/* 07E8F0 7F049DC0 24C618B8 */ addiu $a2, %lo(D_800318B8) # addiu $a2, $a2, 0x18b8 +.L7F049DC4: +/* 07E8F4 7F049DC4 3C068003 */ lui $a2, %hi(D_8003191C) +/* 07E8F8 7F049DC8 10000057 */ b .L7F049F28 +/* 07E8FC 7F049DCC 24C6191C */ addiu $a2, %lo(D_8003191C) # addiu $a2, $a2, 0x191c +.L7F049DD0: +/* 07E900 7F049DD0 3C068003 */ lui $a2, %hi(D_80031950) +/* 07E904 7F049DD4 10000054 */ b .L7F049F28 +/* 07E908 7F049DD8 24C61950 */ addiu $a2, %lo(D_80031950) # addiu $a2, $a2, 0x1950 +.L7F049DDC: +/* 07E90C 7F049DDC 3C068003 */ lui $a2, %hi(D_800319D4) +/* 07E910 7F049DE0 10000051 */ b .L7F049F28 +/* 07E914 7F049DE4 24C619D4 */ addiu $a2, %lo(D_800319D4) # addiu $a2, $a2, 0x19d4 +.L7F049DE8: +/* 07E918 7F049DE8 3C068003 */ lui $a2, %hi(D_800319F0) +/* 07E91C 7F049DEC 1000004E */ b .L7F049F28 +/* 07E920 7F049DF0 24C619F0 */ addiu $a2, %lo(D_800319F0) # addiu $a2, $a2, 0x19f0 +.L7F049DF4: +/* 07E924 7F049DF4 3C068003 */ lui $a2, %hi(D_80031A0C) +/* 07E928 7F049DF8 1000004B */ b .L7F049F28 +/* 07E92C 7F049DFC 24C61A0C */ addiu $a2, %lo(D_80031A0C) # addiu $a2, $a2, 0x1a0c +.L7F049E00: +/* 07E930 7F049E00 3C068003 */ lui $a2, %hi(D_80031A28) +/* 07E934 7F049E04 10000048 */ b .L7F049F28 +/* 07E938 7F049E08 24C61A28 */ addiu $a2, %lo(D_80031A28) # addiu $a2, $a2, 0x1a28 +.L7F049E0C: +/* 07E93C 7F049E0C 3C068003 */ lui $a2, %hi(D_80031A44) +/* 07E940 7F049E10 10000045 */ b .L7F049F28 +/* 07E944 7F049E14 24C61A44 */ addiu $a2, %lo(D_80031A44) # addiu $a2, $a2, 0x1a44 +.L7F049E18: +/* 07E948 7F049E18 3C068003 */ lui $a2, %hi(D_80031A60) +/* 07E94C 7F049E1C 10000042 */ b .L7F049F28 +/* 07E950 7F049E20 24C61A60 */ addiu $a2, %lo(D_80031A60) # addiu $a2, $a2, 0x1a60 +.L7F049E24: +/* 07E954 7F049E24 3C068003 */ lui $a2, %hi(D_80031A7C) +/* 07E958 7F049E28 1000003F */ b .L7F049F28 +/* 07E95C 7F049E2C 24C61A7C */ addiu $a2, %lo(D_80031A7C) # addiu $a2, $a2, 0x1a7c +.L7F049E30: +/* 07E960 7F049E30 3C068003 */ lui $a2, %hi(D_80031A98) +/* 07E964 7F049E34 1000003C */ b .L7F049F28 +/* 07E968 7F049E38 24C61A98 */ addiu $a2, %lo(D_80031A98) # addiu $a2, $a2, 0x1a98 +.L7F049E3C: +/* 07E96C 7F049E3C 3C068003 */ lui $a2, %hi(D_80031AB4) +/* 07E970 7F049E40 10000039 */ b .L7F049F28 +/* 07E974 7F049E44 24C61AB4 */ addiu $a2, %lo(D_80031AB4) # addiu $a2, $a2, 0x1ab4 +.L7F049E48: +/* 07E978 7F049E48 3C068003 */ lui $a2, %hi(D_80031AD0) +/* 07E97C 7F049E4C 10000036 */ b .L7F049F28 +/* 07E980 7F049E50 24C61AD0 */ addiu $a2, %lo(D_80031AD0) # addiu $a2, $a2, 0x1ad0 +.L7F049E54: +/* 07E984 7F049E54 3C068003 */ lui $a2, %hi(D_80031AEC) +/* 07E988 7F049E58 10000033 */ b .L7F049F28 +/* 07E98C 7F049E5C 24C61AEC */ addiu $a2, %lo(D_80031AEC) # addiu $a2, $a2, 0x1aec +.L7F049E60: +/* 07E990 7F049E60 3C068003 */ lui $a2, %hi(D_80031B24) +/* 07E994 7F049E64 10000030 */ b .L7F049F28 +/* 07E998 7F049E68 24C61B24 */ addiu $a2, %lo(D_80031B24) # addiu $a2, $a2, 0x1b24 +.L7F049E6C: +/* 07E99C 7F049E6C 3C068003 */ lui $a2, %hi(D_80031B38) +/* 07E9A0 7F049E70 1000002D */ b .L7F049F28 +/* 07E9A4 7F049E74 24C61B38 */ addiu $a2, %lo(D_80031B38) # addiu $a2, $a2, 0x1b38 +.L7F049E78: +/* 07E9A8 7F049E78 3C068003 */ lui $a2, %hi(D_80031B4C) +/* 07E9AC 7F049E7C 1000002A */ b .L7F049F28 +/* 07E9B0 7F049E80 24C61B4C */ addiu $a2, %lo(D_80031B4C) # addiu $a2, $a2, 0x1b4c +.L7F049E84: +/* 07E9B4 7F049E84 3C068003 */ lui $a2, %hi(D_80031B60) +/* 07E9B8 7F049E88 10000027 */ b .L7F049F28 +/* 07E9BC 7F049E8C 24C61B60 */ addiu $a2, %lo(D_80031B60) # addiu $a2, $a2, 0x1b60 +.L7F049E90: +/* 07E9C0 7F049E90 3C068003 */ lui $a2, %hi(D_80031BB4) +/* 07E9C4 7F049E94 10000024 */ b .L7F049F28 +/* 07E9C8 7F049E98 24C61BB4 */ addiu $a2, %lo(D_80031BB4) # addiu $a2, $a2, 0x1bb4 +.L7F049E9C: +/* 07E9CC 7F049E9C 3C068003 */ lui $a2, %hi(D_80031BD0) +/* 07E9D0 7F049EA0 10000021 */ b .L7F049F28 +/* 07E9D4 7F049EA4 24C61BD0 */ addiu $a2, %lo(D_80031BD0) # addiu $a2, $a2, 0x1bd0 +.L7F049EA8: +/* 07E9D8 7F049EA8 3C068003 */ lui $a2, %hi(D_80031BEC) +/* 07E9DC 7F049EAC 1000001E */ b .L7F049F28 +/* 07E9E0 7F049EB0 24C61BEC */ addiu $a2, %lo(D_80031BEC) # addiu $a2, $a2, 0x1bec +.L7F049EB4: +/* 07E9E4 7F049EB4 3C068003 */ lui $a2, %hi(D_80031C08) +/* 07E9E8 7F049EB8 1000001B */ b .L7F049F28 +/* 07E9EC 7F049EBC 24C61C08 */ addiu $a2, %lo(D_80031C08) # addiu $a2, $a2, 0x1c08 +.L7F049EC0: +/* 07E9F0 7F049EC0 3C068003 */ lui $a2, %hi(D_80031C80) +/* 07E9F4 7F049EC4 10000018 */ b .L7F049F28 +/* 07E9F8 7F049EC8 24C61C80 */ addiu $a2, %lo(D_80031C80) # addiu $a2, $a2, 0x1c80 +.L7F049ECC: +/* 07E9FC 7F049ECC 3C068003 */ lui $a2, %hi(D_80031D30) +/* 07EA00 7F049ED0 10000015 */ b .L7F049F28 +/* 07EA04 7F049ED4 24C61D30 */ addiu $a2, %lo(D_80031D30) # addiu $a2, $a2, 0x1d30 +.L7F049ED8: +/* 07EA08 7F049ED8 3C068003 */ lui $a2, %hi(D_80031D58) +/* 07EA0C 7F049EDC 10000012 */ b .L7F049F28 +/* 07EA10 7F049EE0 24C61D58 */ addiu $a2, %lo(D_80031D58) # addiu $a2, $a2, 0x1d58 +.L7F049EE4: +/* 07EA14 7F049EE4 3C068003 */ lui $a2, %hi(D_80031DA8) +/* 07EA18 7F049EE8 1000000F */ b .L7F049F28 +/* 07EA1C 7F049EEC 24C61DA8 */ addiu $a2, %lo(D_80031DA8) # addiu $a2, $a2, 0x1da8 +.L7F049EF0: +/* 07EA20 7F049EF0 3C068003 */ lui $a2, %hi(D_80031DF4) +/* 07EA24 7F049EF4 1000000C */ b .L7F049F28 +/* 07EA28 7F049EF8 24C61DF4 */ addiu $a2, %lo(D_80031DF4) # addiu $a2, $a2, 0x1df4 +.L7F049EFC: +/* 07EA2C 7F049EFC 3C068003 */ lui $a2, %hi(D_80031E40) +/* 07EA30 7F049F00 10000009 */ b .L7F049F28 +/* 07EA34 7F049F04 24C61E40 */ addiu $a2, %lo(D_80031E40) # addiu $a2, $a2, 0x1e40 +.L7F049F08: +/* 07EA38 7F049F08 3C068003 */ lui $a2, %hi(D_80031E78) +/* 07EA3C 7F049F0C 10000006 */ b .L7F049F28 +/* 07EA40 7F049F10 24C61E78 */ addiu $a2, %lo(D_80031E78) # addiu $a2, $a2, 0x1e78 +.L7F049F14: +/* 07EA44 7F049F14 3C068003 */ lui $a2, %hi(D_80031EB0) +/* 07EA48 7F049F18 10000003 */ b .L7F049F28 +/* 07EA4C 7F049F1C 24C61EB0 */ addiu $a2, %lo(D_80031EB0) # addiu $a2, $a2, 0x1eb0 +.L7F049F20: +/* 07EA50 7F049F20 3C068003 */ lui $a2, %hi(D_80031EE8) +/* 07EA54 7F049F24 24C61EE8 */ addiu $a2, %lo(D_80031EE8) # addiu $a2, $a2, 0x1ee8 +def_7F049CC0: +.L7F049F28: +/* 07EA58 7F049F28 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EA5C 7F049F2C 00C02825 */ move $a1, $a2 +/* 07EA60 7F049F30 8FBF0014 */ lw $ra, 0x14($sp) +/* 07EA64 7F049F34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 07EA68 7F049F38 03E00008 */ jr $ra +/* 07EA6C 7F049F3C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void save_img_index_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel save_img_index_to_obj_ani_slot +/* 07EA70 7F049F40 03E00008 */ jr $ra +/* 07EA74 7F049F44 AC850008 */ sw $a1, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void process_monitor_animation_microcode(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80052C68 +.word 0x40c90fdb /*6.2831855*/ +/*D:80052C6C*/ +glabel jpt_80052C6C +.word command00_reset_scroll_shift +.word command01_horizontal_scroll +.word command02_vertical_scroll +.word command03_horizontal_pos +.word command04_vertical_pos +.word command05_zoomx +.word command06_zoomy +.word command07_use_image_from_global_monitor_table +.word command08_halt_processing_for_time +.word command09_jump +.word command0A_jump_conditional +.word command0B_restart +.word command0C_break +.word command0D_colour_transition +.word command0E_set_rotation +.word command0F_rotate + +glabel D_80052CAC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052CB0 +.word 0x3fb50481 /*1.4141999*/ +glabel D_80052CB4 +.word 0x3f59999a /*0.85000002*/ +glabel D_80052CB8 +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CBC +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CC0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel process_monitor_animation_microcode +/* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) +/* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) +/* 07EA84 7F049F54 00C08025 */ move $s0, $a2 +/* 07EA88 7F049F58 00A08825 */ move $s1, $a1 +/* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) +/* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) +/* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) +/* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 +/* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) +/* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) +/* 07EAB4 7F049F84 24010018 */ li $at, 24 +/* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff +/* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 +/* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) +/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC8 7F049F98 24040004 */ li $a0, 4 +/* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) +/* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 +/* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 +/* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) +/* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) +/* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) +/* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) +/* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) +/* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) +/* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 +/* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 +/* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 +/* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 +/* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) +/* 07EB1C 7F049FEC 00008825 */ move $s1, $zero +/* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) +.L7F049FF4: +/* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) +/* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 +/* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 +/* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) +/* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 +/* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 +/* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 +/* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) +/* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 +/* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) +/* 07EB4C 7F04A01C 01600008 */ jr $t3 +/* 07EB50 7F04A020 00000000 */ nop +command00_reset_scroll_shift: +/* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 +/* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) +/* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) +/* 07EB60 7F04A030 1000010D */ b .L7F04A468 +/* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) +command01_horizontal_scroll: +/* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) +/* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 +/* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C +/* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 +/* 07EB84 7F04A054 00000000 */ nop +/* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 +.L7F04A05C: +/* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) +/* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 +/* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) +/* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) +/* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) +/* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) +/* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 +/* 07EBAC 7F04A07C 00000000 */ nop +/* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 +/* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 +/* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 +/* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 +/* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) +command02_vertical_scroll: +/* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) +/* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 +/* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 +/* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 +/* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 +/* 07EBE0 7F04A0B0 00000000 */ nop +/* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 +.L7F04A0B8: +/* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 +/* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) +/* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 +/* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) +/* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) +/* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) +/* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) +/* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 +/* 07EC08 7F04A0D8 00000000 */ nop +/* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 +/* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 +/* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 +/* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 +/* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) +command03_horizontal_pos: +/* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) +/* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 +/* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 +/* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 +/* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 +/* 07EC3C 7F04A10C 00000000 */ nop +/* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 +.L7F04A114: +/* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 +/* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 +/* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) +/* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) +/* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) +/* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) +/* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 +/* 07EC64 7F04A134 00000000 */ nop +/* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 +/* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 +/* 07EC70 7F04A140 100000C9 */ b .L7F04A468 +/* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) +command04_vertical_pos: +/* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) +/* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 +/* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C +/* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 +/* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 +/* 07EC94 7F04A164 00000000 */ nop +/* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 +.L7F04A16C: +/* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 +/* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 +/* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) +/* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) +/* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) +/* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) +/* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 +/* 07ECBC 7F04A18C 00000000 */ nop +/* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 +/* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 +/* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 +/* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) +command05_zoomx: +/* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) +/* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) +/* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 +/* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 +/* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 +/* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 +/* 07ECEC 7F04A1BC 00000000 */ nop +/* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 +.L7F04A1C4: +/* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 +/* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 +/* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) +/* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) +/* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) +/* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) +/* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 +/* 07ED14 7F04A1E4 00000000 */ nop +/* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 +/* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 +/* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 +/* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) +command06_zoomy: +/* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) +/* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) +/* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 +/* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C +/* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 +/* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 +/* 07ED44 7F04A214 00000000 */ nop +/* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 +.L7F04A21C: +/* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 +/* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) +/* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 +/* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) +/* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) +/* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) +/* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) +/* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 +/* 07ED6C 7F04A23C 00000000 */ nop +/* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 +/* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 +/* 07ED78 7F04A248 10000087 */ b .L7F04A468 +/* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) +command07_use_image_from_global_monitor_table: +/* 07ED80 7F04A250 02002025 */ move $a0, $s0 +/* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) +/* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) +/* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 +/* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 +/* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 +/* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) +command08_halt_processing_for_time: +/* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) +/* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 +/* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) +/* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 +/* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) +/* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) +/* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 +/* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) +/* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 +/* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 +/* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) +.L7F04A2A8: +/* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 +/* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 +/* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) +/* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) +.L7F04A2B8: +/* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 +/* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 +/* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) +command09_jump: +/* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 +/* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) +/* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 +/* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 +/* 07EE0C 7F04A2DC 00000000 */ nop +command0A_jump_conditional: +/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) +/* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) +/* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 +/* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 +/* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) +/* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 +/* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 +/* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) +/* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) +/* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 +/* 07EE44 7F04A314 10000054 */ b .L7F04A468 +/* 07EE48 7F04A318 00000000 */ nop +/* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) +.L7F04A320: +/* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 +/* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 +/* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) +/* 07EE60 7F04A330 1000004D */ b .L7F04A468 +/* 07EE64 7F04A334 00000000 */ nop +command0B_restart: +/* 07EE68 7F04A338 1000004B */ b .L7F04A468 +/* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) +command0C_break: +/* 07EE70 7F04A340 10000049 */ b .L7F04A468 +/* 07EE74 7F04A344 24110001 */ li $s1, 1 +command0D_colour_transition: +/* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) +/* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) +/* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 +/* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C +/* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 +/* 07EE94 7F04A364 00000000 */ nop +/* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 +.L7F04A36C: +/* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) +/* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) +/* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) +/* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) +/* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) +/* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) +/* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) +/* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) +/* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 +/* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) +/* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) +/* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) +/* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 +/* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) +/* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) +/* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) +/* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 +/* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 +/* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) +/* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) +/* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) +/* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 +/* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) +command0E_set_rotation: +/* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) +/* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 +/* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) +/* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 +/* 07EF0C 7F04A3DC 00000000 */ nop +/* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 +/* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 +/* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 +/* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 +/* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) +command0F_rotate: +/* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) +/* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 +/* 07EF34 7F04A404 00000000 */ nop +/* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 +/* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 +/* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 +/* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 +/* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 +/* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) +/* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 +/* 07EF5C 7F04A42C 00000000 */ nop +/* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 +/* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 +/* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 +/* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) +/* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 +.L7F04A448: +/* 07EF78 7F04A448 00000000 */ nop +/* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 +/* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) +/* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 +/* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) +/* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) +.L7F04A460: +/* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 +/* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) +def_7F04A01C: +.L7F04A468: +/* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 +/* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) +/* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) +/* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 +/* 07EFA8 7F04A478 00000000 */ nop +/* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC +/* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) +/* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 +/* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 +/* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) +/* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) +/* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 +/* 07EFD4 7F04A4A4 00000000 */ nop +/* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 +/* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) +/* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) +/* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 +/* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 +/* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 +/* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC +/* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) +/* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) +.L7F04A4D0: +/* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) +/* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) +/* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) +.L7F04A4DC: +/* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) +/* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 +/* 07F01C 7F04A4EC 00000000 */ nop +/* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 +/* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) +/* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) +/* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) +/* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 +/* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 +/* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) +/* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) +/* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 +/* 07F044 7F04A514 00000000 */ nop +/* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 +/* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) +/* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) +/* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) +/* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 +/* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 +/* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 +/* 07F064 7F04A534 10000005 */ b .L7F04A54C +/* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) +/* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) +.L7F04A540: +/* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) +/* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) +/* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) +.L7F04A54C: +/* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) +.L7F04A550: +/* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 +/* 07F084 7F04A554 00000000 */ nop +/* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 +/* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) +/* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) +/* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) +/* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 +/* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 +/* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) +/* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) +/* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 +/* 07F0AC 7F04A57C 00000000 */ nop +/* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 +/* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) +/* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) +/* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 +/* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 +/* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 +/* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 +/* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) +/* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) +.L7F04A5A8: +/* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) +/* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) +/* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) +.L7F04A5B4: +/* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) +.L7F04A5B8: +/* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 +/* 07F0EC 7F04A5BC 00000000 */ nop +/* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 +/* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) +/* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) +/* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) +/* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 +/* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 +/* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) +/* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) +/* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 +/* 07F114 7F04A5E4 00000000 */ nop +/* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 +/* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) +/* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) +/* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 +/* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 +/* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 +/* 07F134 7F04A604 10000005 */ b .L7F04A61C +/* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) +/* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) +.L7F04A610: +/* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) +/* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) +/* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) +.L7F04A61C: +/* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) +.L7F04A620: +/* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 +/* 07F154 7F04A624 00000000 */ nop +/* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 +/* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) +/* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 +/* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 +/* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) +/* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) +/* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 +/* 07F17C 7F04A64C 00000000 */ nop +/* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 +/* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) +/* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) +/* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) +/* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) +/* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) +/* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 +/* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 +/* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 +/* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 +/* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 +/* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) +/* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) +/* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) +/* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) +/* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 +/* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 +/* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 +/* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 +/* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 +/* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 +/* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 +/* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 +/* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 +/* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 +/* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 +/* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 +/* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 +/* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) +/* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 +/* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 +/* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) +/* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 +/* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 +/* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 +/* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 +/* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 +/* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 +/* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) +/* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 +/* 07F224 7F04A6F4 1000000B */ b .L7F04A724 +/* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) +/* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) +.L7F04A700: +/* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) +/* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) +/* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) +/* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) +/* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) +/* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) +/* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) +/* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) +/* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) +.L7F04A724: +/* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) +.L7F04A728: +/* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) +/* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) +/* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) +/* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) +/* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) +/* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) +/* 07F270 7F04A740 8D610000 */ lw $at, ($t3) +/* 07F274 7F04A744 AE410000 */ sw $at, ($s2) +/* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) +/* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) +/* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) +/* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) +/* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) +/* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) +/* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) +/* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) +/* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) +/* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) +/* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) +/* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) +/* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) +/* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) +/* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) +/* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) +/* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) +/* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) +/* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) +/* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) +/* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) +/* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) +/* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) +/* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) +/* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) +/* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) +/* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) +/* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) +/* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) +/* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) +/* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) +/* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) +/* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) +/* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) +/* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 +/* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 +/* 07F308 7F04A7D8 00408825 */ move $s1, $v0 +/* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 +/* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) +/* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 +/* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 +/* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 +/* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 +.L7F04A7F4: +/* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C +/* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 +/* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 +/* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 +/* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 +/* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 +/* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 +/* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 +/* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 07F358 7F04A828 0FC15FA8 */ jal cosf +/* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) +/* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) +/* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) +/* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 +/* 07F370 7F04A840 0FC15FAB */ jal sinf +/* 07F374 7F04A844 00000000 */ nop +/* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 +/* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 +/* 07F388 7F04A858 00000000 */ nop +/* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 +/* 07F390 7F04A860 00000000 */ nop +/* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 +/* 07F398 7F04A868 00000000 */ nop +/* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 +/* 07F3A0 7F04A870 00000000 */ nop +.L7F04A874: +/* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) +/* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 +/* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 +/* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C +/* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 +/* 07F3C4 7F04A894 00000000 */ nop +/* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 +.L7F04A89C: +/* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 +/* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 +/* 07F3DC 7F04A8AC 00000000 */ nop +/* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 +/* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 +/* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 +/* 07F3EC 7F04A8BC 00000000 */ nop +/* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) +/* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) +/* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 +/* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 +/* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 +/* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 +/* 07F408 7F04A8D8 00000000 */ nop +/* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 +.L7F04A8E0: +/* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) +/* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 +/* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F420 7F04A8F0 00000000 */ nop +/* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 +/* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 +/* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 +/* 07F430 7F04A900 00000000 */ nop +/* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) +/* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) +/* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 +/* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 +/* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 +/* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 +/* 07F44C 7F04A91C 00000000 */ nop +/* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 +.L7F04A924: +/* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) +/* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 +/* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 +/* 07F464 7F04A934 00000000 */ nop +/* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 +/* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 +/* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 +/* 07F474 7F04A944 00000000 */ nop +/* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) +/* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) +/* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 +/* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 +/* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 +/* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 +/* 07F490 7F04A960 00000000 */ nop +/* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 +.L7F04A968: +/* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 +/* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 +/* 07F4A8 7F04A978 00000000 */ nop +/* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 +/* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 +/* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 +/* 07F4B8 7F04A988 00000000 */ nop +/* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) +/* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) +/* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 +/* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC +/* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 +/* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 +/* 07F4D4 7F04A9A4 00000000 */ nop +/* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 +.L7F04A9AC: +/* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) +/* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 +/* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 +/* 07F4EC 7F04A9BC 00000000 */ nop +/* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 +/* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 +/* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 +/* 07F4FC 7F04A9CC 00000000 */ nop +/* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) +/* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) +/* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 +/* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 +/* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 +/* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 +/* 07F518 7F04A9E8 00000000 */ nop +/* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 +.L7F04A9F0: +/* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 +/* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 +/* 07F530 7F04AA00 00000000 */ nop +/* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 +/* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 +/* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 +/* 07F540 7F04AA10 00000000 */ nop +/* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) +/* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) +/* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 +/* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 +/* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 +/* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 +/* 07F55C 7F04AA2C 00000000 */ nop +/* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 +.L7F04AA34: +/* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 +/* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F574 7F04AA44 00000000 */ nop +/* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 +/* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 +/* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 +/* 07F584 7F04AA54 00000000 */ nop +/* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) +/* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) +/* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 +/* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 +/* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 +/* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 +/* 07F5A0 7F04AA70 00000000 */ nop +/* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 +.L7F04AA78: +/* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) +/* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 +/* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 +/* 07F5B4 7F04AA84 00000000 */ nop +/* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 +/* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 +/* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 +/* 07F5C4 7F04AA94 00000000 */ nop +/* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) +.L7F04AA9C: +/* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) +/* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 +/* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 +/* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) +/* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) +/* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) +/* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) +/* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) +/* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 +/* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc +/* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) +/* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) +/* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) +/* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) +/* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) +/* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) +/* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) +/* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) +/* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) +/* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) +/* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) +/* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) +/* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) +/* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) +/* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) +/* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff +/* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 +/* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) +/* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) +.L7F04AB14: +/* 07F644 7F04AB14 240E0002 */ li $t6, 2 +/* 07F648 7F04AB18 02202825 */ move $a1, $s1 +/* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 +/* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) +/* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) +/* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) +/* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) +/* 07F664 7F04AB34 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) +/* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) +/* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 +/* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 +/* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) +/* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) +/* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) +/* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical +/* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) +/* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) +/* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) +/* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 +/* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) +/* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 +/* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical +/* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) +/* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) +/* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) +/* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 +/* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) +/* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 +/* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) +/* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) +/* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) +/* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 +/* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 +/* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 +/* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) +/* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 +/* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) +/* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) +/* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 +/* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 +/* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 +/* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) +/* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) +/* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) +/* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) +/* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) +/* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) +.L7F04ABF4: +/* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04ABF8: +/* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) +/* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) +/* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) +/* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) +/* 07F748 7F04AC18 03E00008 */ jr $ra +/* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80052C68 +.word 0x40c90fdb /*6.2831855*/ +/*D:80052C6C*/ +glabel jpt_80052C6C +.word command00_reset_scroll_shift +.word command01_horizontal_scroll +.word command02_vertical_scroll +.word command03_horizontal_pos +.word command04_vertical_pos +.word command05_zoomx +.word command06_zoomy +.word command07_use_image_from_global_monitor_table +.word command08_halt_processing_for_time +.word command09_jump +.word command0A_jump_conditional +.word command0B_restart +.word command0C_break +.word command0D_colour_transition +.word command0E_set_rotation +.word command0F_rotate + +glabel D_80052CAC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052CB0 +.word 0x3fb50481 /*1.4141999*/ +glabel D_80052CB4 +.word 0x3f59999a /*0.85000002*/ +glabel D_80052CB8 +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CBC +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CC0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel process_monitor_animation_microcode +/* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) +/* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) +/* 07EA84 7F049F54 00C08025 */ move $s0, $a2 +/* 07EA88 7F049F58 00A08825 */ move $s1, $a1 +/* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) +/* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) +/* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) +/* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 +/* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) +/* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) +/* 07EAB4 7F049F84 24010018 */ li $at, 24 +/* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff +/* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 +/* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) +/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC8 7F049F98 24040004 */ li $a0, 4 +/* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) +/* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 +/* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 +/* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) +/* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) +/* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) +/* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) +/* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) +/* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) +/* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 +/* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 +/* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 +/* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 +/* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) +/* 07EB1C 7F049FEC 00008825 */ move $s1, $zero +/* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) +.L7F049FF4: +/* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) +/* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 +/* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 +/* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) +/* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 +/* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 +/* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 +/* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) +/* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 +/* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) +/* 07EB4C 7F04A01C 01600008 */ jr $t3 +/* 07EB50 7F04A020 00000000 */ nop +command00_reset_scroll_shift: +/* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 +/* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) +/* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) +/* 07EB60 7F04A030 1000010D */ b .L7F04A468 +/* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) +command01_horizontal_scroll: +/* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) +/* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 +/* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C +/* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 +/* 07EB84 7F04A054 00000000 */ nop +/* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 +.L7F04A05C: +/* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) +/* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 +/* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) +/* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) +/* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) +/* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) +/* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 +/* 07EBAC 7F04A07C 00000000 */ nop +/* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 +/* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 +/* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 +/* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 +/* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) +command02_vertical_scroll: +/* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) +/* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 +/* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 +/* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 +/* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 +/* 07EBE0 7F04A0B0 00000000 */ nop +/* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 +.L7F04A0B8: +/* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 +/* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) +/* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 +/* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) +/* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) +/* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) +/* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) +/* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 +/* 07EC08 7F04A0D8 00000000 */ nop +/* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 +/* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 +/* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 +/* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 +/* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) +command03_horizontal_pos: +/* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) +/* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 +/* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 +/* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 +/* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 +/* 07EC3C 7F04A10C 00000000 */ nop +/* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 +.L7F04A114: +/* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 +/* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 +/* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) +/* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) +/* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) +/* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) +/* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 +/* 07EC64 7F04A134 00000000 */ nop +/* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 +/* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 +/* 07EC70 7F04A140 100000C9 */ b .L7F04A468 +/* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) +command04_vertical_pos: +/* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) +/* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 +/* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C +/* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 +/* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 +/* 07EC94 7F04A164 00000000 */ nop +/* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 +.L7F04A16C: +/* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 +/* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 +/* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) +/* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) +/* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) +/* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) +/* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 +/* 07ECBC 7F04A18C 00000000 */ nop +/* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 +/* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 +/* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 +/* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) +command05_zoomx: +/* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) +/* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) +/* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 +/* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 +/* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 +/* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 +/* 07ECEC 7F04A1BC 00000000 */ nop +/* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 +.L7F04A1C4: +/* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 +/* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 +/* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) +/* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) +/* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) +/* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) +/* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 +/* 07ED14 7F04A1E4 00000000 */ nop +/* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 +/* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 +/* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 +/* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) +command06_zoomy: +/* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) +/* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) +/* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 +/* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C +/* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 +/* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 +/* 07ED44 7F04A214 00000000 */ nop +/* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 +.L7F04A21C: +/* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 +/* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) +/* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 +/* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) +/* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) +/* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) +/* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) +/* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 +/* 07ED6C 7F04A23C 00000000 */ nop +/* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 +/* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 +/* 07ED78 7F04A248 10000087 */ b .L7F04A468 +/* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) +command07_use_image_from_global_monitor_table: +/* 07ED80 7F04A250 02002025 */ move $a0, $s0 +/* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) +/* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) +/* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 +/* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 +/* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 +/* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) +command08_halt_processing_for_time: +/* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) +/* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 +/* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) +/* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 +/* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) +/* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) +/* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 +/* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) +/* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 +/* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 +/* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) +.L7F04A2A8: +/* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 +/* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 +/* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) +/* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) +.L7F04A2B8: +/* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 +/* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 +/* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) +command09_jump: +/* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 +/* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) +/* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 +/* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 +/* 07EE0C 7F04A2DC 00000000 */ nop +command0A_jump_conditional: +/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) +/* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) +/* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 +/* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 +/* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) +/* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 +/* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 +/* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) +/* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) +/* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 +/* 07EE44 7F04A314 10000054 */ b .L7F04A468 +/* 07EE48 7F04A318 00000000 */ nop +/* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) +.L7F04A320: +/* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 +/* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 +/* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) +/* 07EE60 7F04A330 1000004D */ b .L7F04A468 +/* 07EE64 7F04A334 00000000 */ nop +command0B_restart: +/* 07EE68 7F04A338 1000004B */ b .L7F04A468 +/* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) +command0C_break: +/* 07EE70 7F04A340 10000049 */ b .L7F04A468 +/* 07EE74 7F04A344 24110001 */ li $s1, 1 +command0D_colour_transition: +/* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) +/* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) +/* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 +/* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C +/* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 +/* 07EE94 7F04A364 00000000 */ nop +/* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 +.L7F04A36C: +/* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) +/* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) +/* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) +/* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) +/* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) +/* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) +/* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) +/* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) +/* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 +/* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) +/* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) +/* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) +/* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 +/* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) +/* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) +/* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) +/* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 +/* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 +/* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) +/* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) +/* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) +/* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 +/* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) +command0E_set_rotation: +/* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) +/* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 +/* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) +/* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 +/* 07EF0C 7F04A3DC 00000000 */ nop +/* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 +/* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 +/* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 +/* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 +/* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) +command0F_rotate: +/* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) +/* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 +/* 07EF34 7F04A404 00000000 */ nop +/* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 +/* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 +/* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 +/* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 +/* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 +/* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) +/* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 +/* 07EF5C 7F04A42C 00000000 */ nop +/* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 +/* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 +/* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 +/* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) +/* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 +.L7F04A448: +/* 07EF78 7F04A448 00000000 */ nop +/* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 +/* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) +/* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 +/* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) +/* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) +.L7F04A460: +/* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 +/* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) +def_7F04A01C: +.L7F04A468: +/* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 +/* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) +/* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) +/* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 +/* 07EFA8 7F04A478 00000000 */ nop +/* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC +/* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) +/* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 +/* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 +/* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) +/* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) +/* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 +/* 07EFD4 7F04A4A4 00000000 */ nop +/* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 +/* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) +/* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) +/* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 +/* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 +/* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 +/* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC +/* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) +/* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) +.L7F04A4D0: +/* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) +/* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) +/* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) +.L7F04A4DC: +/* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) +/* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 +/* 07F01C 7F04A4EC 00000000 */ nop +/* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 +/* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) +/* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) +/* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) +/* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 +/* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 +/* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) +/* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) +/* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 +/* 07F044 7F04A514 00000000 */ nop +/* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 +/* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) +/* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) +/* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) +/* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 +/* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 +/* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 +/* 07F064 7F04A534 10000005 */ b .L7F04A54C +/* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) +/* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) +.L7F04A540: +/* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) +/* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) +/* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) +.L7F04A54C: +/* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) +.L7F04A550: +/* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 +/* 07F084 7F04A554 00000000 */ nop +/* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 +/* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) +/* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) +/* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) +/* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 +/* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 +/* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) +/* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) +/* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 +/* 07F0AC 7F04A57C 00000000 */ nop +/* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 +/* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) +/* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) +/* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 +/* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 +/* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 +/* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 +/* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) +/* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) +.L7F04A5A8: +/* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) +/* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) +/* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) +.L7F04A5B4: +/* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) +.L7F04A5B8: +/* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 +/* 07F0EC 7F04A5BC 00000000 */ nop +/* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 +/* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) +/* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) +/* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) +/* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 +/* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 +/* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) +/* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) +/* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 +/* 07F114 7F04A5E4 00000000 */ nop +/* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 +/* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) +/* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) +/* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 +/* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 +/* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 +/* 07F134 7F04A604 10000005 */ b .L7F04A61C +/* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) +/* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) +.L7F04A610: +/* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) +/* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) +/* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) +.L7F04A61C: +/* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) +.L7F04A620: +/* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 +/* 07F154 7F04A624 00000000 */ nop +/* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 +/* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) +/* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 +/* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 +/* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) +/* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) +/* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 +/* 07F17C 7F04A64C 00000000 */ nop +/* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 +/* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) +/* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) +/* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) +/* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) +/* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) +/* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 +/* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 +/* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 +/* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 +/* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 +/* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) +/* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) +/* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) +/* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) +/* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 +/* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 +/* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 +/* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 +/* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 +/* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 +/* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 +/* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 +/* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 +/* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 +/* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 +/* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 +/* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 +/* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) +/* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 +/* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 +/* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) +/* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 +/* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 +/* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 +/* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 +/* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 +/* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 +/* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) +/* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 +/* 07F224 7F04A6F4 1000000B */ b .L7F04A724 +/* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) +/* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) +.L7F04A700: +/* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) +/* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) +/* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) +/* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) +/* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) +/* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) +/* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) +/* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) +/* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) +.L7F04A724: +/* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) +.L7F04A728: +/* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) +/* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) +/* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) +/* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) +/* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) +/* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) +/* 07F270 7F04A740 8D610000 */ lw $at, ($t3) +/* 07F274 7F04A744 AE410000 */ sw $at, ($s2) +/* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) +/* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) +/* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) +/* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) +/* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) +/* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) +/* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) +/* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) +/* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) +/* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) +/* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) +/* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) +/* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) +/* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) +/* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) +/* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) +/* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) +/* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) +/* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) +/* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) +/* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) +/* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) +/* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) +/* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) +/* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) +/* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) +/* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) +/* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) +/* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) +/* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) +/* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) +/* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) +/* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) +/* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) +/* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 +/* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 +/* 07F308 7F04A7D8 00408825 */ move $s1, $v0 +/* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 +/* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) +/* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 +/* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 +/* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 +/* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 +.L7F04A7F4: +/* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C +/* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 +/* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 +/* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 +/* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 +/* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 +/* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 +/* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 +/* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 07F358 7F04A828 0FC15FA8 */ jal cosf +/* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) +/* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) +/* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) +/* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 +/* 07F370 7F04A840 0FC15FAB */ jal sinf +/* 07F374 7F04A844 00000000 */ nop +/* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 +/* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 +/* 07F388 7F04A858 00000000 */ nop +/* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 +/* 07F390 7F04A860 00000000 */ nop +/* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 +/* 07F398 7F04A868 00000000 */ nop +/* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 +/* 07F3A0 7F04A870 00000000 */ nop +.L7F04A874: +/* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) +/* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 +/* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 +/* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C +/* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 +/* 07F3C4 7F04A894 00000000 */ nop +/* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 +.L7F04A89C: +/* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 +/* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 +/* 07F3DC 7F04A8AC 00000000 */ nop +/* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 +/* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 +/* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 +/* 07F3EC 7F04A8BC 00000000 */ nop +/* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) +/* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) +/* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 +/* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 +/* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 +/* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 +/* 07F408 7F04A8D8 00000000 */ nop +/* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 +.L7F04A8E0: +/* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) +/* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 +/* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F420 7F04A8F0 00000000 */ nop +/* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 +/* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 +/* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 +/* 07F430 7F04A900 00000000 */ nop +/* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) +/* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) +/* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 +/* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 +/* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 +/* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 +/* 07F44C 7F04A91C 00000000 */ nop +/* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 +.L7F04A924: +/* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) +/* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 +/* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 +/* 07F464 7F04A934 00000000 */ nop +/* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 +/* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 +/* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 +/* 07F474 7F04A944 00000000 */ nop +/* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) +/* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) +/* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 +/* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 +/* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 +/* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 +/* 07F490 7F04A960 00000000 */ nop +/* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 +.L7F04A968: +/* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 +/* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 +/* 07F4A8 7F04A978 00000000 */ nop +/* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 +/* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 +/* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 +/* 07F4B8 7F04A988 00000000 */ nop +/* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) +/* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) +/* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 +/* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC +/* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 +/* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 +/* 07F4D4 7F04A9A4 00000000 */ nop +/* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 +.L7F04A9AC: +/* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) +/* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 +/* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 +/* 07F4EC 7F04A9BC 00000000 */ nop +/* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 +/* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 +/* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 +/* 07F4FC 7F04A9CC 00000000 */ nop +/* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) +/* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) +/* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 +/* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 +/* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 +/* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 +/* 07F518 7F04A9E8 00000000 */ nop +/* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 +.L7F04A9F0: +/* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 +/* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 +/* 07F530 7F04AA00 00000000 */ nop +/* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 +/* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 +/* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 +/* 07F540 7F04AA10 00000000 */ nop +/* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) +/* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) +/* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 +/* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 +/* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 +/* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 +/* 07F55C 7F04AA2C 00000000 */ nop +/* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 +.L7F04AA34: +/* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 +/* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F574 7F04AA44 00000000 */ nop +/* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 +/* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 +/* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 +/* 07F584 7F04AA54 00000000 */ nop +/* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) +/* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) +/* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 +/* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 +/* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 +/* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 +/* 07F5A0 7F04AA70 00000000 */ nop +/* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 +.L7F04AA78: +/* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) +/* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 +/* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 +/* 07F5B4 7F04AA84 00000000 */ nop +/* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 +/* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 +/* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 +/* 07F5C4 7F04AA94 00000000 */ nop +/* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) +.L7F04AA9C: +/* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) +/* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 +/* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 +/* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) +/* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) +/* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) +/* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) +/* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) +/* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 +/* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc +/* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) +/* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) +/* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) +/* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) +/* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) +/* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) +/* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) +/* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) +/* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) +/* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) +/* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) +/* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) +/* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) +/* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) +/* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) +/* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff +/* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 +/* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) +/* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) +.L7F04AB14: +/* 07F644 7F04AB14 240E0002 */ li $t6, 2 +/* 07F648 7F04AB18 02202825 */ move $a1, $s1 +/* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 +/* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) +/* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) +/* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) +/* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) +/* 07F664 7F04AB34 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) +/* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) +/* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 +/* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 +/* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) +/* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) +/* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) +/* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical +/* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) +/* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) +/* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) +/* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 +/* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) +/* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 +/* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical +/* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) +/* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) +/* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) +/* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 +/* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) +/* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 +/* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) +/* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) +/* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) +/* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 +/* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 +/* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 +/* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) +/* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 +/* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) +/* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) +/* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 +/* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 +/* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 +/* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) +/* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) +/* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) +/* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) +/* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) +/* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) +.L7F04ABF4: +/* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04ABF8: +/* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) +/* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) +/* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) +/* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) +/* 07F748 7F04AC18 03E00008 */ jr $ra +/* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F04AC20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04AC20 +/* 07F750 7F04AC20 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 07F754 7F04AC24 AFBF0024 */ sw $ra, 0x24($sp) +/* 07F758 7F04AC28 AFB00020 */ sw $s0, 0x20($sp) +/* 07F75C 7F04AC2C AFA40078 */ sw $a0, 0x78($sp) +/* 07F760 7F04AC30 AFA60080 */ sw $a2, 0x80($sp) +/* 07F764 7F04AC34 908F0001 */ lbu $t7, 1($a0) +/* 07F768 7F04AC38 00A08025 */ move $s0, $a1 +/* 07F76C 7F04AC3C 31F80002 */ andi $t8, $t7, 2 +/* 07F770 7F04AC40 5300013F */ beql $t8, $zero, .L7F04B140 +/* 07F774 7F04AC44 8FBF0024 */ lw $ra, 0x24($sp) +/* 07F778 7F04AC48 8C990004 */ lw $t9, 4($a0) +/* 07F77C 7F04AC4C AFB90074 */ sw $t9, 0x74($sp) +/* 07F780 7F04AC50 8F280014 */ lw $t0, 0x14($t9) +/* 07F784 7F04AC54 AFA80070 */ sw $t0, 0x70($sp) +/* 07F788 7F04AC58 8F290008 */ lw $t1, 8($t9) +/* 07F78C 7F04AC5C 312A0200 */ andi $t2, $t1, 0x200 +/* 07F790 7F04AC60 000A582B */ sltu $t3, $zero, $t2 +/* 07F794 7F04AC64 11600005 */ beqz $t3, .L7F04AC7C +/* 07F798 7F04AC68 AFAB0028 */ sw $t3, 0x28($sp) +/* 07F79C 7F04AC6C 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 07F7A0 7F04AC70 00000000 */ nop +/* 07F7A4 7F04AC74 0002602B */ sltu $t4, $zero, $v0 +/* 07F7A8 7F04AC78 AFAC0028 */ sw $t4, 0x28($sp) +.L7F04AC7C: +/* 07F7AC 7F04AC7C 8FAD0074 */ lw $t5, 0x74($sp) +/* 07F7B0 7F04AC80 2401000A */ li $at, 10 +/* 07F7B4 7F04AC84 8E07000C */ lw $a3, 0xc($s0) +/* 07F7B8 7F04AC88 91A30003 */ lbu $v1, 3($t5) +/* 07F7BC 7F04AC8C 54610022 */ bnel $v1, $at, .L7F04AD18 +/* 07F7C0 7F04AC90 2401000B */ li $at, 11 +/* 07F7C4 7F04AC94 8E0F0008 */ lw $t7, 8($s0) +/* 07F7C8 7F04AC98 8FA40070 */ lw $a0, 0x70($sp) +/* 07F7CC 7F04AC9C 31F80001 */ andi $t8, $t7, 1 +/* 07F7D0 7F04ACA0 53000075 */ beql $t8, $zero, .L7F04AE78 +/* 07F7D4 7F04ACA4 24010001 */ li $at, 1 +/* 07F7D8 7F04ACA8 8DA8000C */ lw $t0, 0xc($t5) +/* 07F7DC 7F04ACAC 8FAE0078 */ lw $t6, 0x78($sp) +/* 07F7E0 7F04ACB0 8FA90074 */ lw $t1, 0x74($sp) +/* 07F7E4 7F04ACB4 0008CBC0 */ sll $t9, $t0, 0xf +/* 07F7E8 7F04ACB8 07210003 */ bgez $t9, .L7F04ACC8 +/* 07F7EC 7F04ACBC 8DC20004 */ lw $v0, 4($t6) +/* 07F7F0 7F04ACC0 10000008 */ b .L7F04ACE4 +/* 07F7F4 7F04ACC4 00001825 */ move $v1, $zero +.L7F04ACC8: +/* 07F7F8 7F04ACC8 8D2A0008 */ lw $t2, 8($t1) +/* 07F7FC 7F04ACCC 24030001 */ li $v1, 1 +/* 07F800 7F04ACD0 000A58C0 */ sll $t3, $t2, 3 +/* 07F804 7F04ACD4 05610003 */ bgez $t3, .L7F04ACE4 +/* 07F808 7F04ACD8 00000000 */ nop +/* 07F80C 7F04ACDC 10000001 */ b .L7F04ACE4 +/* 07F810 7F04ACE0 24030008 */ li $v1, 8 +.L7F04ACE4: +/* 07F814 7F04ACE4 8C8F0008 */ lw $t7, 8($a0) +/* 07F818 7F04ACE8 240E0001 */ li $t6, 1 +/* 07F81C 7F04ACEC 24460080 */ addiu $a2, $v0, 0x80 +/* 07F820 7F04ACF0 8DF80008 */ lw $t8, 8($t7) +/* 07F824 7F04ACF4 8F050000 */ lw $a1, ($t8) +/* 07F828 7F04ACF8 AFAE0014 */ sw $t6, 0x14($sp) +/* 07F82C 7F04ACFC 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F830 7F04AD00 AFA30010 */ sw $v1, 0x10($sp) +/* 07F834 7F04AD04 8FAD0074 */ lw $t5, 0x74($sp) +/* 07F838 7F04AD08 00403825 */ move $a3, $v0 +/* 07F83C 7F04AD0C 10000059 */ b .L7F04AE74 +/* 07F840 7F04AD10 91A30003 */ lbu $v1, 3($t5) +/* 07F844 7F04AD14 2401000B */ li $at, 11 +.L7F04AD18: +/* 07F848 7F04AD18 54610057 */ bnel $v1, $at, .L7F04AE78 +/* 07F84C 7F04AD1C 24010001 */ li $at, 1 +/* 07F850 7F04AD20 8E080008 */ lw $t0, 8($s0) +/* 07F854 7F04AD24 8FAA0074 */ lw $t2, 0x74($sp) +/* 07F858 7F04AD28 8FA40070 */ lw $a0, 0x70($sp) +/* 07F85C 7F04AD2C 31190001 */ andi $t9, $t0, 1 +/* 07F860 7F04AD30 53200051 */ beql $t9, $zero, .L7F04AE78 +/* 07F864 7F04AD34 24010001 */ li $at, 1 +/* 07F868 7F04AD38 8D4B000C */ lw $t3, 0xc($t2) +/* 07F86C 7F04AD3C 8FA90078 */ lw $t1, 0x78($sp) +/* 07F870 7F04AD40 8FAF0074 */ lw $t7, 0x74($sp) +/* 07F874 7F04AD44 000B63C0 */ sll $t4, $t3, 0xf +/* 07F878 7F04AD48 05810003 */ bgez $t4, .L7F04AD58 +/* 07F87C 7F04AD4C 8D220004 */ lw $v0, 4($t1) +/* 07F880 7F04AD50 10000008 */ b .L7F04AD74 +/* 07F884 7F04AD54 00001825 */ move $v1, $zero +.L7F04AD58: +/* 07F888 7F04AD58 8DF80008 */ lw $t8, 8($t7) +/* 07F88C 7F04AD5C 24030001 */ li $v1, 1 +/* 07F890 7F04AD60 001870C0 */ sll $t6, $t8, 3 +/* 07F894 7F04AD64 05C10003 */ bgez $t6, .L7F04AD74 +/* 07F898 7F04AD68 00000000 */ nop +/* 07F89C 7F04AD6C 10000001 */ b .L7F04AD74 +/* 07F8A0 7F04AD70 24030008 */ li $v1, 8 +.L7F04AD74: +/* 07F8A4 7F04AD74 8C880008 */ lw $t0, 8($a0) +/* 07F8A8 7F04AD78 24090001 */ li $t1, 1 +/* 07F8AC 7F04AD7C 24460080 */ addiu $a2, $v0, 0x80 +/* 07F8B0 7F04AD80 8D190008 */ lw $t9, 8($t0) +/* 07F8B4 7F04AD84 8F250000 */ lw $a1, ($t9) +/* 07F8B8 7F04AD88 AFA20058 */ sw $v0, 0x58($sp) +/* 07F8BC 7F04AD8C AFA90014 */ sw $t1, 0x14($sp) +/* 07F8C0 7F04AD90 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F8C4 7F04AD94 AFA30010 */ sw $v1, 0x10($sp) +/* 07F8C8 7F04AD98 8FAA0074 */ lw $t2, 0x74($sp) +/* 07F8CC 7F04AD9C 00403825 */ move $a3, $v0 +/* 07F8D0 7F04ADA0 8FAF0074 */ lw $t7, 0x74($sp) +/* 07F8D4 7F04ADA4 8D4B000C */ lw $t3, 0xc($t2) +/* 07F8D8 7F04ADA8 8FA40070 */ lw $a0, 0x70($sp) +/* 07F8DC 7F04ADAC 000B63C0 */ sll $t4, $t3, 0xf +/* 07F8E0 7F04ADB0 05830004 */ bgezl $t4, .L7F04ADC4 +/* 07F8E4 7F04ADB4 8DF80008 */ lw $t8, 8($t7) +/* 07F8E8 7F04ADB8 10000009 */ b .L7F04ADE0 +/* 07F8EC 7F04ADBC 00001825 */ move $v1, $zero +/* 07F8F0 7F04ADC0 8DF80008 */ lw $t8, 8($t7) +.L7F04ADC4: +/* 07F8F4 7F04ADC4 3C013000 */ lui $at, 0x3000 +/* 07F8F8 7F04ADC8 24030001 */ li $v1, 1 +/* 07F8FC 7F04ADCC 03017024 */ and $t6, $t8, $at +/* 07F900 7F04ADD0 11C00003 */ beqz $t6, .L7F04ADE0 +/* 07F904 7F04ADD4 00000000 */ nop +/* 07F908 7F04ADD8 10000001 */ b .L7F04ADE0 +/* 07F90C 7F04ADDC 24030008 */ li $v1, 8 +.L7F04ADE0: +/* 07F910 7F04ADE0 8C880008 */ lw $t0, 8($a0) +/* 07F914 7F04ADE4 8FA60058 */ lw $a2, 0x58($sp) +/* 07F918 7F04ADE8 24090001 */ li $t1, 1 +/* 07F91C 7F04ADEC 8D190008 */ lw $t9, 8($t0) +/* 07F920 7F04ADF0 24C600F4 */ addiu $a2, $a2, 0xf4 +/* 07F924 7F04ADF4 8F250004 */ lw $a1, 4($t9) +/* 07F928 7F04ADF8 AFA30060 */ sw $v1, 0x60($sp) +/* 07F92C 7F04ADFC AFA90014 */ sw $t1, 0x14($sp) +/* 07F930 7F04AE00 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F934 7F04AE04 AFA30010 */ sw $v1, 0x10($sp) +/* 07F938 7F04AE08 8FA40070 */ lw $a0, 0x70($sp) +/* 07F93C 7F04AE0C 8FA30060 */ lw $v1, 0x60($sp) +/* 07F940 7F04AE10 8FA60058 */ lw $a2, 0x58($sp) +/* 07F944 7F04AE14 8C8B0008 */ lw $t3, 8($a0) +/* 07F948 7F04AE18 240F0001 */ li $t7, 1 +/* 07F94C 7F04AE1C 00403825 */ move $a3, $v0 +/* 07F950 7F04AE20 8D6C0008 */ lw $t4, 8($t3) +/* 07F954 7F04AE24 24C60168 */ addiu $a2, $a2, 0x168 +/* 07F958 7F04AE28 8D850008 */ lw $a1, 8($t4) +/* 07F95C 7F04AE2C AFAF0014 */ sw $t7, 0x14($sp) +/* 07F960 7F04AE30 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F964 7F04AE34 AFA30010 */ sw $v1, 0x10($sp) +/* 07F968 7F04AE38 8FA40070 */ lw $a0, 0x70($sp) +/* 07F96C 7F04AE3C 8FA30060 */ lw $v1, 0x60($sp) +/* 07F970 7F04AE40 8FA60058 */ lw $a2, 0x58($sp) +/* 07F974 7F04AE44 8C8E0008 */ lw $t6, 8($a0) +/* 07F978 7F04AE48 24080001 */ li $t0, 1 +/* 07F97C 7F04AE4C 00403825 */ move $a3, $v0 +/* 07F980 7F04AE50 8DCD0008 */ lw $t5, 8($t6) +/* 07F984 7F04AE54 24C601DC */ addiu $a2, $a2, 0x1dc +/* 07F988 7F04AE58 8DA5000C */ lw $a1, 0xc($t5) +/* 07F98C 7F04AE5C AFA80014 */ sw $t0, 0x14($sp) +/* 07F990 7F04AE60 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F994 7F04AE64 AFA30010 */ sw $v1, 0x10($sp) +/* 07F998 7F04AE68 8FB90074 */ lw $t9, 0x74($sp) +/* 07F99C 7F04AE6C 00403825 */ move $a3, $v0 +/* 07F9A0 7F04AE70 93230003 */ lbu $v1, 3($t9) +.L7F04AE74: +/* 07F9A4 7F04AE74 24010001 */ li $at, 1 +.L7F04AE78: +/* 07F9A8 7F04AE78 1461001A */ bne $v1, $at, .L7F04AEE4 +/* 07F9AC 7F04AE7C 8FA40074 */ lw $a0, 0x74($sp) +/* 07F9B0 7F04AE80 8FA90078 */ lw $t1, 0x78($sp) +/* 07F9B4 7F04AE84 00E01025 */ move $v0, $a3 +/* 07F9B8 7F04AE88 3C0AB600 */ lui $t2, 0xb600 +/* 07F9BC 7F04AE8C 8D230004 */ lw $v1, 4($t1) +/* 07F9C0 7F04AE90 240B3000 */ li $t3, 12288 +/* 07F9C4 7F04AE94 AC4B0004 */ sw $t3, 4($v0) +/* 07F9C8 7F04AE98 AC4A0000 */ sw $t2, ($v0) +/* 07F9CC 7F04AE9C 946C0098 */ lhu $t4, 0x98($v1) +/* 07F9D0 7F04AEA0 24E70008 */ addiu $a3, $a3, 8 +/* 07F9D4 7F04AEA4 24180002 */ li $t8, 2 +/* 07F9D8 7F04AEA8 318F0008 */ andi $t7, $t4, 8 +/* 07F9DC 7F04AEAC 11E00003 */ beqz $t7, .L7F04AEBC +/* 07F9E0 7F04AEB0 240E0003 */ li $t6, 3 +/* 07F9E4 7F04AEB4 10000002 */ b .L7F04AEC0 +/* 07F9E8 7F04AEB8 AE18003C */ sw $t8, 0x3c($s0) +.L7F04AEBC: +/* 07F9EC 7F04AEBC AE0E003C */ sw $t6, 0x3c($s0) +.L7F04AEC0: +/* 07F9F0 7F04AEC0 8E0D0030 */ lw $t5, 0x30($s0) +/* 07F9F4 7F04AEC4 24010009 */ li $at, 9 +/* 07F9F8 7F04AEC8 55A1004B */ bnel $t5, $at, .L7F04AFF8 +/* 07F9FC 7F04AECC 8FB90028 */ lw $t9, 0x28($sp) +/* 07FA00 7F04AED0 8E080034 */ lw $t0, 0x34($s0) +/* 07FA04 7F04AED4 2401FF00 */ li $at, -256 +/* 07FA08 7F04AED8 0101C824 */ and $t9, $t0, $at +/* 07FA0C 7F04AEDC 10000045 */ b .L7F04AFF4 +/* 07FA10 7F04AEE0 AE190034 */ sw $t9, 0x34($s0) +.L7F04AEE4: +/* 07FA14 7F04AEE4 0FC12D1E */ jal sub_GAME_7F04B478 +/* 07FA18 7F04AEE8 AFA70064 */ sw $a3, 0x64($sp) +/* 07FA1C 7F04AEEC 8FA70064 */ lw $a3, 0x64($sp) +/* 07FA20 7F04AEF0 1040000F */ beqz $v0, .L7F04AF30 +/* 07FA24 7F04AEF4 00002825 */ move $a1, $zero +/* 07FA28 7F04AEF8 8C430004 */ lw $v1, 4($v0) +/* 07FA2C 7F04AEFC 8FA90074 */ lw $t1, 0x74($sp) +/* 07FA30 7F04AF00 5060000C */ beql $v1, $zero, .L7F04AF34 +/* 07FA34 7F04AF04 8FA40074 */ lw $a0, 0x74($sp) +/* 07FA38 7F04AF08 8D2A0014 */ lw $t2, 0x14($t1) +/* 07FA3C 7F04AF0C 946C001A */ lhu $t4, 0x1a($v1) +/* 07FA40 7F04AF10 8C780008 */ lw $t8, 8($v1) +/* 07FA44 7F04AF14 8D4B0010 */ lw $t3, 0x10($t2) +/* 07FA48 7F04AF18 000C7880 */ sll $t7, $t4, 2 +/* 07FA4C 7F04AF1C 016F1021 */ addu $v0, $t3, $t7 +/* 07FA50 7F04AF20 8C4E0000 */ lw $t6, ($v0) +/* 07FA54 7F04AF24 530E0003 */ beql $t8, $t6, .L7F04AF34 +/* 07FA58 7F04AF28 8FA40074 */ lw $a0, 0x74($sp) +/* 07FA5C 7F04AF2C 24050001 */ li $a1, 1 +.L7F04AF30: +/* 07FA60 7F04AF30 8FA40074 */ lw $a0, 0x74($sp) +.L7F04AF34: +/* 07FA64 7F04AF34 AFA50040 */ sw $a1, 0x40($sp) +/* 07FA68 7F04AF38 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 07FA6C 7F04AF3C AFA70064 */ sw $a3, 0x64($sp) +/* 07FA70 7F04AF40 8FA50040 */ lw $a1, 0x40($sp) +/* 07FA74 7F04AF44 10400003 */ beqz $v0, .L7F04AF54 +/* 07FA78 7F04AF48 8FA70064 */ lw $a3, 0x64($sp) +/* 07FA7C 7F04AF4C 14A0000B */ bnez $a1, .L7F04AF7C +/* 07FA80 7F04AF50 8FA40074 */ lw $a0, 0x74($sp) +.L7F04AF54: +/* 07FA84 7F04AF54 8E080030 */ lw $t0, 0x30($s0) +/* 07FA88 7F04AF58 240D0003 */ li $t5, 3 +/* 07FA8C 7F04AF5C 24010009 */ li $at, 9 +/* 07FA90 7F04AF60 15010024 */ bne $t0, $at, .L7F04AFF4 +/* 07FA94 7F04AF64 AE0D003C */ sw $t5, 0x3c($s0) +/* 07FA98 7F04AF68 8E190034 */ lw $t9, 0x34($s0) +/* 07FA9C 7F04AF6C 2401FF00 */ li $at, -256 +/* 07FAA0 7F04AF70 03214824 */ and $t1, $t9, $at +/* 07FAA4 7F04AF74 1000001F */ b .L7F04AFF4 +/* 07FAA8 7F04AF78 AE090034 */ sw $t1, 0x34($s0) +.L7F04AF7C: +/* 07FAAC 7F04AF7C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 07FAB0 7F04AF80 AFA70064 */ sw $a3, 0x64($sp) +/* 07FAB4 7F04AF84 8E0C0030 */ lw $t4, 0x30($s0) +/* 07FAB8 7F04AF88 8FA70064 */ lw $a3, 0x64($sp) +/* 07FABC 7F04AF8C 240A0001 */ li $t2, 1 +/* 07FAC0 7F04AF90 24010009 */ li $at, 9 +/* 07FAC4 7F04AF94 15810012 */ bne $t4, $at, .L7F04AFE0 +/* 07FAC8 7F04AF98 AE0A003C */ sw $t2, 0x3c($s0) +/* 07FACC 7F04AF9C 00021880 */ sll $v1, $v0, 2 +/* 07FAD0 7F04AFA0 00621823 */ subu $v1, $v1, $v0 +/* 07FAD4 7F04AFA4 000318C0 */ sll $v1, $v1, 3 +/* 07FAD8 7F04AFA8 00621821 */ addu $v1, $v1, $v0 +/* 07FADC 7F04AFAC 00031840 */ sll $v1, $v1, 1 +/* 07FAE0 7F04AFB0 24640064 */ addiu $a0, $v1, 0x64 +/* 07FAE4 7F04AFB4 28810100 */ slti $at, $a0, 0x100 +/* 07FAE8 7F04AFB8 54200003 */ bnezl $at, .L7F04AFC8 +/* 07FAEC 7F04AFBC 8E0B0034 */ lw $t3, 0x34($s0) +/* 07FAF0 7F04AFC0 240400FF */ li $a0, 255 +/* 07FAF4 7F04AFC4 8E0B0034 */ lw $t3, 0x34($s0) +.L7F04AFC8: +/* 07FAF8 7F04AFC8 2401FF00 */ li $at, -256 +/* 07FAFC 7F04AFCC 01617824 */ and $t7, $t3, $at +/* 07FB00 7F04AFD0 AE0F0034 */ sw $t7, 0x34($s0) +/* 07FB04 7F04AFD4 01E47025 */ or $t6, $t7, $a0 +/* 07FB08 7F04AFD8 10000006 */ b .L7F04AFF4 +/* 07FB0C 7F04AFDC AE0E0034 */ sw $t6, 0x34($s0) +.L7F04AFE0: +/* 07FB10 7F04AFE0 58400005 */ blezl $v0, .L7F04AFF8 +/* 07FB14 7F04AFE4 8FB90028 */ lw $t9, 0x28($sp) +/* 07FB18 7F04AFE8 8E0D0034 */ lw $t5, 0x34($s0) +/* 07FB1C 7F04AFEC 35A8FF00 */ ori $t0, $t5, 0xff00 +/* 07FB20 7F04AFF0 AE080034 */ sw $t0, 0x34($s0) +.L7F04AFF4: +/* 07FB24 7F04AFF4 8FB90028 */ lw $t9, 0x28($sp) +.L7F04AFF8: +/* 07FB28 7F04AFF8 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 +/* 07FB2C 7F04AFFC 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 07FB30 7F04B000 13200009 */ beqz $t9, .L7F04B028 +/* 07FB34 7F04B004 00E01825 */ move $v1, $a3 +/* 07FB38 7F04B008 24E70008 */ addiu $a3, $a3, 8 +/* 07FB3C 7F04B00C AC690000 */ sw $t1, ($v1) +/* 07FB40 7F04B010 AFA70064 */ sw $a3, 0x64($sp) +/* 07FB44 7F04B014 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 07FB48 7F04B018 AFA30034 */ sw $v1, 0x34($sp) +/* 07FB4C 7F04B01C 8FA30034 */ lw $v1, 0x34($sp) +/* 07FB50 7F04B020 8FA70064 */ lw $a3, 0x64($sp) +/* 07FB54 7F04B024 AC620004 */ sw $v0, 4($v1) +.L7F04B028: +/* 07FB58 7F04B028 AE07000C */ sw $a3, 0xc($s0) +/* 07FB5C 7F04B02C 8FA50070 */ lw $a1, 0x70($sp) +/* 07FB60 7F04B030 0FC1D1A1 */ jal subdraw +/* 07FB64 7F04B034 02002025 */ move $a0, $s0 +/* 07FB68 7F04B038 8FA30074 */ lw $v1, 0x74($sp) +/* 07FB6C 7F04B03C 8E07000C */ lw $a3, 0xc($s0) +/* 07FB70 7F04B040 24010001 */ li $at, 1 +/* 07FB74 7F04B044 906A0003 */ lbu $t2, 3($v1) +/* 07FB78 7F04B048 3C0CB600 */ lui $t4, 0xb600 +/* 07FB7C 7F04B04C 240B3000 */ li $t3, 12288 +/* 07FB80 7F04B050 15410004 */ bne $t2, $at, .L7F04B064 +/* 07FB84 7F04B054 00E01025 */ move $v0, $a3 +/* 07FB88 7F04B058 24E70008 */ addiu $a3, $a3, 8 +/* 07FB8C 7F04B05C AC4C0000 */ sw $t4, ($v0) +/* 07FB90 7F04B060 AC4B0004 */ sw $t3, 4($v0) +.L7F04B064: +/* 07FB94 7F04B064 8FA60080 */ lw $a2, 0x80($sp) +/* 07FB98 7F04B068 906F0002 */ lbu $t7, 2($v1) +/* 07FB9C 7F04B06C 24180001 */ li $t8, 1 +/* 07FBA0 7F04B070 00D87004 */ sllv $t6, $t8, $a2 +/* 07FBA4 7F04B074 01EE6824 */ and $t5, $t7, $t6 +/* 07FBA8 7F04B078 11A00005 */ beqz $t5, .L7F04B090 +/* 07FBAC 7F04B07C 00E02025 */ move $a0, $a3 +/* 07FBB0 7F04B080 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 07FBB4 7F04B084 8FA50078 */ lw $a1, 0x78($sp) +/* 07FBB8 7F04B088 00403825 */ move $a3, $v0 +/* 07FBBC 7F04B08C 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B090: +/* 07FBC0 7F04B090 8FA80028 */ lw $t0, 0x28($sp) +/* 07FBC4 7F04B094 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 07FBC8 7F04B098 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07FBCC 7F04B09C 1100000A */ beqz $t0, .L7F04B0C8 +/* 07FBD0 7F04B0A0 00E01825 */ move $v1, $a3 +/* 07FBD4 7F04B0A4 24E70008 */ addiu $a3, $a3, 8 +/* 07FBD8 7F04B0A8 AC790000 */ sw $t9, ($v1) +/* 07FBDC 7F04B0AC AFA70064 */ sw $a3, 0x64($sp) +/* 07FBE0 7F04B0B0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 07FBE4 7F04B0B4 AFA3002C */ sw $v1, 0x2c($sp) +/* 07FBE8 7F04B0B8 8FA3002C */ lw $v1, 0x2c($sp) +/* 07FBEC 7F04B0BC 8FA70064 */ lw $a3, 0x64($sp) +/* 07FBF0 7F04B0C0 AC620004 */ sw $v0, 4($v1) +/* 07FBF4 7F04B0C4 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B0C8: +/* 07FBF8 7F04B0C8 AE07000C */ sw $a3, 0xc($s0) +/* 07FBFC 7F04B0CC 8FA90078 */ lw $t1, 0x78($sp) +/* 07FC00 7F04B0D0 8D240020 */ lw $a0, 0x20($t1) +/* 07FC04 7F04B0D4 1080000A */ beqz $a0, .L7F04B100 +/* 07FC08 7F04B0D8 00000000 */ nop +/* 07FC0C 7F04B0DC 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B0E0: +/* 07FC10 7F04B0E0 02002825 */ move $a1, $s0 +/* 07FC14 7F04B0E4 0FC12B08 */ jal sub_GAME_7F04AC20 +/* 07FC18 7F04B0E8 AFA40068 */ sw $a0, 0x68($sp) +/* 07FC1C 7F04B0EC 8FA40068 */ lw $a0, 0x68($sp) +/* 07FC20 7F04B0F0 8C840024 */ lw $a0, 0x24($a0) +/* 07FC24 7F04B0F4 5480FFFA */ bnezl $a0, .L7F04B0E0 +/* 07FC28 7F04B0F8 8FA60080 */ lw $a2, 0x80($sp) +/* 07FC2C 7F04B0FC 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B100: +/* 07FC30 7F04B100 10C0000E */ beqz $a2, .L7F04B13C +/* 07FC34 7F04B104 8FAA0028 */ lw $t2, 0x28($sp) +/* 07FC38 7F04B108 11400008 */ beqz $t2, .L7F04B12C +/* 07FC3C 7F04B10C 8FA20070 */ lw $v0, 0x70($sp) +/* 07FC40 7F04B110 8FA20070 */ lw $v0, 0x70($sp) +/* 07FC44 7F04B114 8C4C0008 */ lw $t4, 8($v0) +/* 07FC48 7F04B118 8C44000C */ lw $a0, 0xc($v0) +/* 07FC4C 7F04B11C 0FC22FBB */ jal sub_GAME_7F08BEEC +/* 07FC50 7F04B120 8585000E */ lh $a1, 0xe($t4) +/* 07FC54 7F04B124 10000006 */ b .L7F04B140 +/* 07FC58 7F04B128 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04B12C: +/* 07FC5C 7F04B12C 8C4B0008 */ lw $t3, 8($v0) +/* 07FC60 7F04B130 8C44000C */ lw $a0, 0xc($v0) +/* 07FC64 7F04B134 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 07FC68 7F04B138 8565000E */ lh $a1, 0xe($t3) +.L7F04B13C: +/* 07FC6C 7F04B13C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04B140: +/* 07FC70 7F04B140 8FB00020 */ lw $s0, 0x20($sp) +/* 07FC74 7F04B144 27BD0078 */ addiu $sp, $sp, 0x78 +/* 07FC78 7F04B148 03E00008 */ jr $ra +/* 07FC7C 7F04B14C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B150(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B150 +/* 07FC80 7F04B150 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 07FC84 7F04B154 3C0F8003 */ lui $t7, %hi(D_80031FD0) +/* 07FC88 7F04B158 AFBF0024 */ sw $ra, 0x24($sp) +/* 07FC8C 7F04B15C AFB00020 */ sw $s0, 0x20($sp) +/* 07FC90 7F04B160 AFA500C4 */ sw $a1, 0xc4($sp) +/* 07FC94 7F04B164 AFA600C8 */ sw $a2, 0xc8($sp) +/* 07FC98 7F04B168 25EF1FD0 */ addiu $t7, %lo(D_80031FD0) # addiu $t7, $t7, 0x1fd0 +/* 07FC9C 7F04B16C 8C900004 */ lw $s0, 4($a0) +/* 07FCA0 7F04B170 25E8003C */ addiu $t0, $t7, 0x3c +/* 07FCA4 7F04B174 27AE0068 */ addiu $t6, $sp, 0x68 +.L7F04B178: +/* 07FCA8 7F04B178 8DE10000 */ lw $at, ($t7) +/* 07FCAC 7F04B17C 25EF000C */ addiu $t7, $t7, 0xc +/* 07FCB0 7F04B180 25CE000C */ addiu $t6, $t6, 0xc +/* 07FCB4 7F04B184 ADC1FFF4 */ sw $at, -0xc($t6) +/* 07FCB8 7F04B188 8DE1FFF8 */ lw $at, -8($t7) +/* 07FCBC 7F04B18C ADC1FFF8 */ sw $at, -8($t6) +/* 07FCC0 7F04B190 8DE1FFFC */ lw $at, -4($t7) +/* 07FCC4 7F04B194 15E8FFF8 */ bne $t7, $t0, .L7F04B178 +/* 07FCC8 7F04B198 ADC1FFFC */ sw $at, -4($t6) +/* 07FCCC 7F04B19C 8DE10000 */ lw $at, ($t7) +/* 07FCD0 7F04B1A0 240900FF */ li $t1, 255 +/* 07FCD4 7F04B1A4 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 07FCD8 7F04B1A8 ADC10000 */ sw $at, ($t6) +/* 07FCDC 7F04B1AC AFA9003C */ sw $t1, 0x3c($sp) +/* 07FCE0 7F04B1B0 0FC2ECE9 */ jal if_sky_present_convert_values +/* 07FCE4 7F04B1B4 AFA400C0 */ sw $a0, 0xc0($sp) +/* 07FCE8 7F04B1B8 14400003 */ bnez $v0, .L7F04B1C8 +/* 07FCEC 7F04B1BC AFA200AC */ sw $v0, 0xac($sp) +/* 07FCF0 7F04B1C0 100000A8 */ b .L7F04B464 +/* 07FCF4 7F04B1C4 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B1C8: +/* 07FCF8 7F04B1C8 920A0003 */ lbu $t2, 3($s0) +/* 07FCFC 7F04B1CC 2401002F */ li $at, 47 +/* 07FD00 7F04B1D0 51410021 */ beql $t2, $at, .L7F04B258 +/* 07FD04 7F04B1D4 8FAD003C */ lw $t5, 0x3c($sp) +/* 07FD08 7F04B1D8 0FC1B403 */ jal getinstsize +/* 07FD0C 7F04B1DC 8E040014 */ lw $a0, 0x14($s0) +/* 07FD10 7F04B1E0 44050000 */ mfc1 $a1, $f0 +/* 07FD14 7F04B1E4 0FC152E0 */ jal sub_GAME_7F054B80 +/* 07FD18 7F04B1E8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FD1C 7F04B1EC 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 07FD20 7F04B1F0 46000086 */ mov.s $f2, $f0 +/* 07FD24 7F04B1F4 85620002 */ lh $v0, 2($t3) +/* 07FD28 7F04B1F8 1840000B */ blez $v0, .L7F04B228 +/* 07FD2C 7F04B1FC 2841003C */ slti $at, $v0, 0x3c +/* 07FD30 7F04B200 5020000A */ beql $at, $zero, .L7F04B22C +/* 07FD34 7F04B204 3C01437F */ lui $at, 0x437f +/* 07FD38 7F04B208 44822000 */ mtc1 $v0, $f4 +/* 07FD3C 7F04B20C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07FD40 7F04B210 44816000 */ mtc1 $at, $f12 +/* 07FD44 7F04B214 468021A0 */ cvt.s.w $f6, $f4 +/* 07FD48 7F04B218 46066201 */ sub.s $f8, $f12, $f6 +/* 07FD4C 7F04B21C 460C4283 */ div.s $f10, $f8, $f12 +/* 07FD50 7F04B220 460A0082 */ mul.s $f2, $f0, $f10 +/* 07FD54 7F04B224 00000000 */ nop +.L7F04B228: +/* 07FD58 7F04B228 3C01437F */ li $at, 0x437F0000 # 255.000000 +.L7F04B22C: +/* 07FD5C 7F04B22C 44818000 */ mtc1 $at, $f16 +/* 07FD60 7F04B230 00000000 */ nop +/* 07FD64 7F04B234 46101482 */ mul.s $f18, $f2, $f16 +/* 07FD68 7F04B238 4600910D */ trunc.w.s $f4, $f18 +/* 07FD6C 7F04B23C 44022000 */ mfc1 $v0, $f4 +/* 07FD70 7F04B240 00000000 */ nop +/* 07FD74 7F04B244 1C400003 */ bgtz $v0, .L7F04B254 +/* 07FD78 7F04B248 AFA2003C */ sw $v0, 0x3c($sp) +/* 07FD7C 7F04B24C 10000085 */ b .L7F04B464 +/* 07FD80 7F04B250 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B254: +/* 07FD84 7F04B254 8FAD003C */ lw $t5, 0x3c($sp) +.L7F04B258: +/* 07FD88 7F04B258 8FA800C8 */ lw $t0, 0xc8($sp) +/* 07FD8C 7F04B25C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FD90 7F04B260 29A100FF */ slti $at, $t5, 0xff +/* 07FD94 7F04B264 14200006 */ bnez $at, .L7F04B280 +/* 07FD98 7F04B268 27A50058 */ addiu $a1, $sp, 0x58 +/* 07FD9C 7F04B26C 8E19000C */ lw $t9, 0xc($s0) +/* 07FDA0 7F04B270 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 07FDA4 7F04B274 0019C3C0 */ sll $t8, $t9, 0xf +/* 07FDA8 7F04B278 07010007 */ bgez $t8, .L7F04B298 +/* 07FDAC 7F04B27C 00000000 */ nop +.L7F04B280: +/* 07FDB0 7F04B280 15000003 */ bnez $t0, .L7F04B290 +/* 07FDB4 7F04B284 00000000 */ nop +/* 07FDB8 7F04B288 10000076 */ b .L7F04B464 +/* 07FDBC 7F04B28C 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B290: +/* 07FDC0 7F04B290 10000005 */ b .L7F04B2A8 +/* 07FDC4 7F04B294 24030003 */ li $v1, 3 +.L7F04B298: +/* 07FDC8 7F04B298 15E00003 */ bnez $t7, .L7F04B2A8 +/* 07FDCC 7F04B29C 24030002 */ li $v1, 2 +/* 07FDD0 7F04B2A0 10000001 */ b .L7F04B2A8 +/* 07FDD4 7F04B2A4 24030001 */ li $v1, 1 +.L7F04B2A8: +/* 07FDD8 7F04B2A8 0FC15299 */ jal sub_GAME_7F054A64 +/* 07FDDC 7F04B2AC AFA30044 */ sw $v1, 0x44($sp) +/* 07FDE0 7F04B2B0 1840000E */ blez $v0, .L7F04B2EC +/* 07FDE4 7F04B2B4 8FA30044 */ lw $v1, 0x44($sp) +/* 07FDE8 7F04B2B8 8E0E000C */ lw $t6, 0xc($s0) +/* 07FDEC 7F04B2BC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 07FDF0 7F04B2C0 8FA50058 */ lw $a1, 0x58($sp) +/* 07FDF4 7F04B2C4 000E4940 */ sll $t1, $t6, 5 +/* 07FDF8 7F04B2C8 05200008 */ bltz $t1, .L7F04B2EC +/* 07FDFC 7F04B2CC 8FA6005C */ lw $a2, 0x5c($sp) +/* 07FE00 7F04B2D0 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 07FE04 7F04B2D4 8FA70060 */ lw $a3, 0x60($sp) +/* 07FE08 7F04B2D8 AFA30044 */ sw $v1, 0x44($sp) +/* 07FE0C 7F04B2DC 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 07FE10 7F04B2E0 E7A60010 */ swc1 $f6, 0x10($sp) +/* 07FE14 7F04B2E4 10000005 */ b .L7F04B2FC +/* 07FE18 7F04B2E8 8FA30044 */ lw $v1, 0x44($sp) +.L7F04B2EC: +/* 07FE1C 7F04B2EC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 07FE20 7F04B2F0 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 07FE24 7F04B2F4 AFA30044 */ sw $v1, 0x44($sp) +/* 07FE28 7F04B2F8 8FA30044 */ lw $v1, 0x44($sp) +.L7F04B2FC: +/* 07FE2C 7F04B2FC AFA30070 */ sw $v1, 0x70($sp) +/* 07FE30 7F04B300 8E0A000C */ lw $t2, 0xc($s0) +/* 07FE34 7F04B304 8FAD003C */ lw $t5, 0x3c($sp) +/* 07FE38 7F04B308 3C010001 */ lui $at, 1 +/* 07FE3C 7F04B30C 01415824 */ and $t3, $t2, $at +/* 07FE40 7F04B310 2D6C0001 */ sltiu $t4, $t3, 1 +/* 07FE44 7F04B314 29A100FF */ slti $at, $t5, 0xff +/* 07FE48 7F04B318 AFAC006C */ sw $t4, 0x6c($sp) +/* 07FE4C 7F04B31C 10200005 */ beqz $at, .L7F04B334 +/* 07FE50 7F04B320 AFA20074 */ sw $v0, 0x74($sp) +/* 07FE54 7F04B324 24190005 */ li $t9, 5 +/* 07FE58 7F04B328 AFB90098 */ sw $t9, 0x98($sp) +/* 07FE5C 7F04B32C 10000017 */ b .L7F04B38C +/* 07FE60 7F04B330 AFAD009C */ sw $t5, 0x9c($sp) +.L7F04B334: +/* 07FE64 7F04B334 24180009 */ li $t8, 9 +/* 07FE68 7F04B338 AFB80098 */ sw $t8, 0x98($sp) +/* 07FE6C 7F04B33C 92020003 */ lbu $v0, 3($s0) +/* 07FE70 7F04B340 2401002F */ li $at, 47 +/* 07FE74 7F04B344 54410006 */ bnel $v0, $at, .L7F04B360 +/* 07FE78 7F04B348 24010001 */ li $at, 1 +/* 07FE7C 7F04B34C 8E080088 */ lw $t0, 0x88($s0) +/* 07FE80 7F04B350 00087A00 */ sll $t7, $t0, 8 +/* 07FE84 7F04B354 1000000D */ b .L7F04B38C +/* 07FE88 7F04B358 AFAF009C */ sw $t7, 0x9c($sp) +/* 07FE8C 7F04B35C 24010001 */ li $at, 1 +.L7F04B360: +/* 07FE90 7F04B360 5441000A */ bnel $v0, $at, .L7F04B38C +/* 07FE94 7F04B364 AFA0009C */ sw $zero, 0x9c($sp) +/* 07FE98 7F04B368 960E0098 */ lhu $t6, 0x98($s0) +/* 07FE9C 7F04B36C 31C90002 */ andi $t1, $t6, 2 +/* 07FEA0 7F04B370 51200006 */ beql $t1, $zero, .L7F04B38C +/* 07FEA4 7F04B374 AFA0009C */ sw $zero, 0x9c($sp) +/* 07FEA8 7F04B378 860A00BE */ lh $t2, 0xbe($s0) +/* 07FEAC 7F04B37C 000A5A00 */ sll $t3, $t2, 8 +/* 07FEB0 7F04B380 10000002 */ b .L7F04B38C +/* 07FEB4 7F04B384 AFAB009C */ sw $t3, 0x9c($sp) +/* 07FEB8 7F04B388 AFA0009C */ sw $zero, 0x9c($sp) +.L7F04B38C: +/* 07FEBC 7F04B38C 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 07FEC0 7F04B390 02002025 */ move $a0, $s0 +/* 07FEC4 7F04B394 00026080 */ sll $t4, $v0, 2 +/* 07FEC8 7F04B398 01826021 */ addu $t4, $t4, $v0 +/* 07FECC 7F04B39C 000C6080 */ sll $t4, $t4, 2 +/* 07FED0 7F04B3A0 01826021 */ addu $t4, $t4, $v0 +/* 07FED4 7F04B3A4 241900FF */ li $t9, 255 +/* 07FED8 7F04B3A8 032C2023 */ subu $a0, $t9, $t4 +/* 07FEDC 7F04B3AC 04810002 */ bgez $a0, .L7F04B3B8 +/* 07FEE0 7F04B3B0 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 07FEE4 7F04B3B4 00002025 */ move $a0, $zero +.L7F04B3B8: +/* 07FEE8 7F04B3B8 920D0078 */ lbu $t5, 0x78($s0) +/* 07FEEC 7F04B3BC 01A40019 */ multu $t5, $a0 +/* 07FEF0 7F04B3C0 00026900 */ sll $t5, $v0, 4 +/* 07FEF4 7F04B3C4 01A26823 */ subu $t5, $t5, $v0 +/* 07FEF8 7F04B3C8 0000C012 */ mflo $t8 +/* 07FEFC 7F04B3CC 00184203 */ sra $t0, $t8, 8 +/* 07FF00 7F04B3D0 AFA80048 */ sw $t0, 0x48($sp) +/* 07FF04 7F04B3D4 920F0079 */ lbu $t7, 0x79($s0) +/* 07FF08 7F04B3D8 01E40019 */ multu $t7, $a0 +/* 07FF0C 7F04B3DC 240F00FF */ li $t7, 255 +/* 07FF10 7F04B3E0 00007012 */ mflo $t6 +/* 07FF14 7F04B3E4 000E4A03 */ sra $t1, $t6, 8 +/* 07FF18 7F04B3E8 AFA9004C */ sw $t1, 0x4c($sp) +/* 07FF1C 7F04B3EC 920A007A */ lbu $t2, 0x7a($s0) +/* 07FF20 7F04B3F0 01440019 */ multu $t2, $a0 +/* 07FF24 7F04B3F4 27A40048 */ addiu $a0, $sp, 0x48 +/* 07FF28 7F04B3F8 00005812 */ mflo $t3 +/* 07FF2C 7F04B3FC 000BCA03 */ sra $t9, $t3, 8 +/* 07FF30 7F04B400 AFB90050 */ sw $t9, 0x50($sp) +/* 07FF34 7F04B404 920C007B */ lbu $t4, 0x7b($s0) +/* 07FF38 7F04B408 018DC021 */ addu $t8, $t4, $t5 +/* 07FF3C 7F04B40C 2B010100 */ slti $at, $t8, 0x100 +/* 07FF40 7F04B410 14200002 */ bnez $at, .L7F04B41C +/* 07FF44 7F04B414 AFB80054 */ sw $t8, 0x54($sp) +/* 07FF48 7F04B418 AFAF0054 */ sw $t7, 0x54($sp) +.L7F04B41C: +/* 07FF4C 7F04B41C 0FC100E1 */ jal sub_GAME_7F040384 +/* 07FF50 7F04B420 8FA500AC */ lw $a1, 0xac($sp) +/* 07FF54 7F04B424 8FA90048 */ lw $t1, 0x48($sp) +/* 07FF58 7F04B428 8FAE0054 */ lw $t6, 0x54($sp) +/* 07FF5C 7F04B42C 8FB9004C */ lw $t9, 0x4c($sp) +/* 07FF60 7F04B430 8FB80050 */ lw $t8, 0x50($sp) +/* 07FF64 7F04B434 00095600 */ sll $t2, $t1, 0x18 +/* 07FF68 7F04B438 01CA5825 */ or $t3, $t6, $t2 +/* 07FF6C 7F04B43C 00196400 */ sll $t4, $t9, 0x10 +/* 07FF70 7F04B440 016C6825 */ or $t5, $t3, $t4 +/* 07FF74 7F04B444 00184200 */ sll $t0, $t8, 8 +/* 07FF78 7F04B448 01A87825 */ or $t7, $t5, $t0 +/* 07FF7C 7F04B44C AFAF00A0 */ sw $t7, 0xa0($sp) +/* 07FF80 7F04B450 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FF84 7F04B454 27A50068 */ addiu $a1, $sp, 0x68 +/* 07FF88 7F04B458 0FC12B08 */ jal sub_GAME_7F04AC20 +/* 07FF8C 7F04B45C 8FA600C8 */ lw $a2, 0xc8($sp) +/* 07FF90 7F04B460 8FA20074 */ lw $v0, 0x74($sp) +.L7F04B464: +/* 07FF94 7F04B464 8FBF0024 */ lw $ra, 0x24($sp) +/* 07FF98 7F04B468 8FB00020 */ lw $s0, 0x20($sp) +/* 07FF9C 7F04B46C 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 07FFA0 7F04B470 03E00008 */ jr $ra +/* 07FFA4 7F04B474 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B478(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B478 +/* 07FFA8 7F04B478 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 07FFAC 7F04B47C AFBF002C */ sw $ra, 0x2c($sp) +/* 07FFB0 7F04B480 AFB50028 */ sw $s5, 0x28($sp) +/* 07FFB4 7F04B484 AFB40024 */ sw $s4, 0x24($sp) +/* 07FFB8 7F04B488 AFB30020 */ sw $s3, 0x20($sp) +/* 07FFBC 7F04B48C AFB2001C */ sw $s2, 0x1c($sp) +/* 07FFC0 7F04B490 AFB10018 */ sw $s1, 0x18($sp) +/* 07FFC4 7F04B494 AFB00014 */ sw $s0, 0x14($sp) +/* 07FFC8 7F04B498 8C8E0014 */ lw $t6, 0x14($a0) +/* 07FFCC 7F04B49C 00808825 */ move $s1, $a0 +/* 07FFD0 7F04B4A0 24120008 */ li $s2, 8 +/* 07FFD4 7F04B4A4 8DC20008 */ lw $v0, 8($t6) +/* 07FFD8 7F04B4A8 24130012 */ li $s3, 18 +/* 07FFDC 7F04B4AC 24140017 */ li $s4, 23 +/* 07FFE0 7F04B4B0 8C500000 */ lw $s0, ($v0) +/* 07FFE4 7F04B4B4 24150018 */ li $s5, 24 +/* 07FFE8 7F04B4B8 5200002C */ beql $s0, $zero, .L7F04B56C +/* 07FFEC 7F04B4BC 00001025 */ move $v0, $zero +/* 07FFF0 7F04B4C0 96020000 */ lhu $v0, ($s0) +.L7F04B4C4: +/* 07FFF4 7F04B4C4 02002825 */ move $a1, $s0 +/* 07FFF8 7F04B4C8 304F00FF */ andi $t7, $v0, 0xff +/* 07FFFC 7F04B4CC 11F2000B */ beq $t7, $s2, .L7F04B4FC +/* 080000 7F04B4D0 00000000 */ nop +/* 080004 7F04B4D4 11F3000D */ beq $t7, $s3, .L7F04B50C +/* 080008 7F04B4D8 02002825 */ move $a1, $s0 +/* 08000C 7F04B4DC 11F4000F */ beq $t7, $s4, .L7F04B51C +/* 080010 7F04B4E0 02002825 */ move $a1, $s0 +/* 080014 7F04B4E4 11F50003 */ beq $t7, $s5, .L7F04B4F4 +/* 080018 7F04B4E8 00000000 */ nop +/* 08001C 7F04B4EC 1000000E */ b .L7F04B528 +/* 080020 7F04B4F0 8E020014 */ lw $v0, 0x14($s0) +.L7F04B4F4: +/* 080024 7F04B4F4 1000001D */ b .L7F04B56C +/* 080028 7F04B4F8 02001025 */ move $v0, $s0 +.L7F04B4FC: +/* 08002C 7F04B4FC 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 080030 7F04B500 8E240014 */ lw $a0, 0x14($s1) +/* 080034 7F04B504 10000008 */ b .L7F04B528 +/* 080038 7F04B508 8E020014 */ lw $v0, 0x14($s0) +.L7F04B50C: +/* 08003C 7F04B50C 0FC1BA6F */ jal process_12_handle_switch +/* 080040 7F04B510 8E240014 */ lw $a0, 0x14($s1) +/* 080044 7F04B514 10000004 */ b .L7F04B528 +/* 080048 7F04B518 8E020014 */ lw $v0, 0x14($s0) +.L7F04B51C: +/* 08004C 7F04B51C 0FC1BA82 */ jal process_17_pointer_to_head +/* 080050 7F04B520 8E240014 */ lw $a0, 0x14($s1) +/* 080054 7F04B524 8E020014 */ lw $v0, 0x14($s0) +.L7F04B528: +/* 080058 7F04B528 10400003 */ beqz $v0, .L7F04B538 +/* 08005C 7F04B52C 00000000 */ nop +/* 080060 7F04B530 1000000B */ b .L7F04B560 +/* 080064 7F04B534 00408025 */ move $s0, $v0 +.L7F04B538: +/* 080068 7F04B538 12000009 */ beqz $s0, .L7F04B560 +/* 08006C 7F04B53C 00000000 */ nop +/* 080070 7F04B540 8E02000C */ lw $v0, 0xc($s0) +.L7F04B544: +/* 080074 7F04B544 50400004 */ beql $v0, $zero, .L7F04B558 +/* 080078 7F04B548 8E100008 */ lw $s0, 8($s0) +/* 08007C 7F04B54C 10000004 */ b .L7F04B560 +/* 080080 7F04B550 00408025 */ move $s0, $v0 +/* 080084 7F04B554 8E100008 */ lw $s0, 8($s0) +.L7F04B558: +/* 080088 7F04B558 5600FFFA */ bnezl $s0, .L7F04B544 +/* 08008C 7F04B55C 8E02000C */ lw $v0, 0xc($s0) +.L7F04B560: +/* 080090 7F04B560 5600FFD8 */ bnezl $s0, .L7F04B4C4 +/* 080094 7F04B564 96020000 */ lhu $v0, ($s0) +/* 080098 7F04B568 00001025 */ move $v0, $zero +.L7F04B56C: +/* 08009C 7F04B56C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0800A0 7F04B570 8FB00014 */ lw $s0, 0x14($sp) +/* 0800A4 7F04B574 8FB10018 */ lw $s1, 0x18($sp) +/* 0800A8 7F04B578 8FB2001C */ lw $s2, 0x1c($sp) +/* 0800AC 7F04B57C 8FB30020 */ lw $s3, 0x20($sp) +/* 0800B0 7F04B580 8FB40024 */ lw $s4, 0x24($sp) +/* 0800B4 7F04B584 8FB50028 */ lw $s5, 0x28($sp) +/* 0800B8 7F04B588 03E00008 */ jr $ra +/* 0800BC 7F04B58C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B590(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B590 +/* 0800C0 7F04B590 8C820004 */ lw $v0, 4($a0) +/* 0800C4 7F04B594 3C0E8004 */ lui $t6, %hi(prop_console_one_screen_related) +/* 0800C8 7F04B598 25CEA070 */ addiu $t6, %lo(prop_console_one_screen_related) # addiu $t6, $t6, -0x5f90 +/* 0800CC 7F04B59C 15C20007 */ bne $t6, $v0, .L7F04B5BC +/* 0800D0 7F04B5A0 3C198004 */ lui $t9, %hi(prop_console_four_screen_related) +/* 0800D4 7F04B5A4 8C8F0008 */ lw $t7, 8($a0) +/* 0800D8 7F04B5A8 8DF80000 */ lw $t8, ($t7) +/* 0800DC 7F04B5AC 14B80003 */ bne $a1, $t8, .L7F04B5BC +/* 0800E0 7F04B5B0 00000000 */ nop +/* 0800E4 7F04B5B4 03E00008 */ jr $ra +/* 0800E8 7F04B5B8 00001025 */ move $v0, $zero + +.L7F04B5BC: +/* 0800EC 7F04B5BC 2739A084 */ addiu $t9, $t9, %lo(prop_console_four_screen_related) +/* 0800F0 7F04B5C0 57220011 */ bnel $t9, $v0, .L7F04B608 +/* 0800F4 7F04B5C4 24020001 */ li $v0, 1 +/* 0800F8 7F04B5C8 8C820008 */ lw $v0, 8($a0) +/* 0800FC 7F04B5CC 8C480000 */ lw $t0, ($v0) +/* 080100 7F04B5D0 10A8000A */ beq $a1, $t0, .L7F04B5FC +/* 080104 7F04B5D4 00000000 */ nop +/* 080108 7F04B5D8 8C490004 */ lw $t1, 4($v0) +/* 08010C 7F04B5DC 10A90007 */ beq $a1, $t1, .L7F04B5FC +/* 080110 7F04B5E0 00000000 */ nop +/* 080114 7F04B5E4 8C4A0008 */ lw $t2, 8($v0) +/* 080118 7F04B5E8 10AA0004 */ beq $a1, $t2, .L7F04B5FC +/* 08011C 7F04B5EC 00000000 */ nop +/* 080120 7F04B5F0 8C4B000C */ lw $t3, 0xc($v0) +/* 080124 7F04B5F4 54AB0004 */ bnel $a1, $t3, .L7F04B608 +/* 080128 7F04B5F8 24020001 */ li $v0, 1 +.L7F04B5FC: +/* 08012C 7F04B5FC 03E00008 */ jr $ra +/* 080130 7F04B600 00001025 */ move $v0, $zero + +/* 080134 7F04B604 24020001 */ li $v0, 1 +.L7F04B608: +/* 080138 7F04B608 03E00008 */ jr $ra +/* 08013C 7F04B60C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B610(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B610 +/* 080140 7F04B610 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 080144 7F04B614 AFB60030 */ sw $s6, 0x30($sp) +/* 080148 7F04B618 AFB40028 */ sw $s4, 0x28($sp) +/* 08014C 7F04B61C AFBF003C */ sw $ra, 0x3c($sp) +/* 080150 7F04B620 AFBE0038 */ sw $fp, 0x38($sp) +/* 080154 7F04B624 AFB70034 */ sw $s7, 0x34($sp) +/* 080158 7F04B628 AFB5002C */ sw $s5, 0x2c($sp) +/* 08015C 7F04B62C AFB30024 */ sw $s3, 0x24($sp) +/* 080160 7F04B630 AFB20020 */ sw $s2, 0x20($sp) +/* 080164 7F04B634 AFB1001C */ sw $s1, 0x1c($sp) +/* 080168 7F04B638 AFB00018 */ sw $s0, 0x18($sp) +/* 08016C 7F04B63C 3C14FFFE */ lui $s4, (0xFFFE7961 >> 16) # lui $s4, 0xfffe +/* 080170 7F04B640 3C160001 */ li $s6, 0x00010000 # 0.000000 +/* 080174 7F04B644 00A08025 */ move $s0, $a1 +/* 080178 7F04B648 0080F025 */ move $fp, $a0 +/* 08017C 7F04B64C 8C910014 */ lw $s1, 0x14($a0) +/* 080180 7F04B650 36D6869F */ ori $s6, (0x0001869F & 0xFFFF) # ori $s6, $s6, 0x869f +/* 080184 7F04B654 0FC12D1E */ jal sub_GAME_7F04B478 +/* 080188 7F04B658 36947961 */ ori $s4, (0xFFFE7961 & 0xFFFF) # ori $s4, $s4, 0x7961 +/* 08018C 7F04B65C 10400193 */ beqz $v0, .L7F04BCAC +/* 080190 7F04B660 00402825 */ move $a1, $v0 +/* 080194 7F04B664 8C550004 */ lw $s5, 4($v0) +/* 080198 7F04B668 52A00191 */ beql $s5, $zero, .L7F04BCB0 +/* 08019C 7F04B66C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0801A0 7F04B670 8FCE0014 */ lw $t6, 0x14($fp) +/* 0801A4 7F04B674 0FC12D64 */ jal sub_GAME_7F04B590 +/* 0801A8 7F04B678 8DC40008 */ lw $a0, 8($t6) +/* 0801AC 7F04B67C 5040018C */ beql $v0, $zero, .L7F04BCB0 +/* 0801B0 7F04B680 8FBF003C */ lw $ra, 0x3c($sp) +/* 0801B4 7F04B684 96B8001A */ lhu $t8, 0x1a($s5) +/* 0801B8 7F04B688 8E2F0010 */ lw $t7, 0x10($s1) +/* 0801BC 7F04B68C 0018C880 */ sll $t9, $t8, 2 +/* 0801C0 7F04B690 0C002914 */ jal get_random_value +/* 0801C4 7F04B694 01F99821 */ addu $s3, $t7, $t9 +/* 0801C8 7F04B698 30480001 */ andi $t0, $v0, 1 +/* 0801CC 7F04B69C 1100000C */ beqz $t0, .L7F04B6D0 +/* 0801D0 7F04B6A0 00104840 */ sll $t1, $s0, 1 +/* 0801D4 7F04B6A4 AFA90040 */ sw $t1, 0x40($sp) +/* 0801D8 7F04B6A8 87CA0004 */ lh $t2, 4($fp) +/* 0801DC 7F04B6AC 3C0E8004 */ lui $t6, %hi(object_explosion_details+2) +/* 0801E0 7F04B6B0 000A58C0 */ sll $t3, $t2, 3 +/* 0801E4 7F04B6B4 016A5823 */ subu $t3, $t3, $t2 +/* 0801E8 7F04B6B8 000B5840 */ sll $t3, $t3, 1 +/* 0801EC 7F04B6BC 01696821 */ addu $t5, $t3, $t1 +/* 0801F0 7F04B6C0 01CD7021 */ addu $t6, $t6, $t5 +/* 0801F4 7F04B6C4 95CEB226 */ lhu $t6, %lo(object_explosion_details+2)($t6) +/* 0801F8 7F04B6C8 1000000C */ b .L7F04B6FC +/* 0801FC 7F04B6CC AFAE0078 */ sw $t6, 0x78($sp) +.L7F04B6D0: +/* 080200 7F04B6D0 87D80004 */ lh $t8, 4($fp) +/* 080204 7F04B6D4 00101040 */ sll $v0, $s0, 1 +/* 080208 7F04B6D8 3C088004 */ lui $t0, %hi(object_explosion_details+8) +/* 08020C 7F04B6DC 001878C0 */ sll $t7, $t8, 3 +/* 080210 7F04B6E0 01F87823 */ subu $t7, $t7, $t8 +/* 080214 7F04B6E4 000F7840 */ sll $t7, $t7, 1 +/* 080218 7F04B6E8 01E2C821 */ addu $t9, $t7, $v0 +/* 08021C 7F04B6EC 01194021 */ addu $t0, $t0, $t9 +/* 080220 7F04B6F0 9508B22C */ lhu $t0, %lo(object_explosion_details+8)($t0) +/* 080224 7F04B6F4 AFA20040 */ sw $v0, 0x40($sp) +/* 080228 7F04B6F8 AFA80078 */ sw $t0, 0x78($sp) +.L7F04B6FC: +/* 08022C 7F04B6FC 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080230 7F04B700 00000000 */ nop +/* 080234 7F04B704 14400003 */ bnez $v0, .L7F04B714 +/* 080238 7F04B708 8FA90078 */ lw $t1, 0x78($sp) +/* 08023C 7F04B70C 1520000B */ bnez $t1, .L7F04B73C +/* 080240 7F04B710 00000000 */ nop +.L7F04B714: +/* 080244 7F04B714 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080248 7F04B718 00000000 */ nop +/* 08024C 7F04B71C 0C002914 */ jal get_random_value +/* 080250 7F04B720 00000000 */ nop +/* 080254 7F04B724 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080258 7F04B728 AFA20078 */ sw $v0, 0x78($sp) +/* 08025C 7F04B72C 10400003 */ beqz $v0, .L7F04B73C +/* 080260 7F04B730 8FAA0078 */ lw $t2, 0x78($sp) +/* 080264 7F04B734 314BFFFF */ andi $t3, $t2, 0xffff +/* 080268 7F04B738 AFAB0078 */ sw $t3, 0x78($sp) +.L7F04B73C: +/* 08026C 7F04B73C 0FC28364 */ jal sub_GAME_7F0A0D90 +/* 080270 7F04B740 8FC40010 */ lw $a0, 0x10($fp) +/* 080274 7F04B744 87CC0004 */ lh $t4, 4($fp) +/* 080278 7F04B748 2401004C */ li $at, 76 +/* 08027C 7F04B74C 24170001 */ li $s7, 1 +/* 080280 7F04B750 15810003 */ bne $t4, $at, .L7F04B760 +/* 080284 7F04B754 00000000 */ nop +/* 080288 7F04B758 10000001 */ b .L7F04B760 +/* 08028C 7F04B75C 0000B825 */ move $s7, $zero +.L7F04B760: +/* 080290 7F04B760 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 080294 7F04B764 03C02025 */ move $a0, $fp +/* 080298 7F04B768 86A4000C */ lh $a0, 0xc($s5) +/* 08029C 7F04B76C 24050B0B */ li $a1, 2827 +/* 0802A0 7F04B770 8E260008 */ lw $a2, 8($s1) +/* 0802A4 7F04B774 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 0802A8 7F04B778 00403825 */ move $a3, $v0 +/* 0802AC 7F04B77C 1040003A */ beqz $v0, .L7F04B868 +/* 0802B0 7F04B780 00408025 */ move $s0, $v0 +/* 0802B4 7F04B784 8E640000 */ lw $a0, ($s3) +/* 0802B8 7F04B788 8EAD0008 */ lw $t5, 8($s5) +/* 0802BC 7F04B78C 51A4001E */ beql $t5, $a0, .L7F04B808 +/* 0802C0 7F04B790 86AA000C */ lh $t2, 0xc($s5) +/* 0802C4 7F04B794 86AE000C */ lh $t6, 0xc($s5) +/* 0802C8 7F04B798 00009025 */ move $s2, $zero +/* 0802CC 7F04B79C 00008825 */ move $s1, $zero +/* 0802D0 7F04B7A0 19C00014 */ blez $t6, .L7F04B7F4 +/* 0802D4 7F04B7A4 00401825 */ move $v1, $v0 +/* 0802D8 7F04B7A8 8E780000 */ lw $t8, ($s3) +.L7F04B7AC: +/* 0802DC 7F04B7AC 26520001 */ addiu $s2, $s2, 1 +/* 0802E0 7F04B7B0 24630010 */ addiu $v1, $v1, 0x10 +/* 0802E4 7F04B7B4 03117821 */ addu $t7, $t8, $s1 +/* 0802E8 7F04B7B8 8DE10000 */ lw $at, ($t7) +/* 0802EC 7F04B7BC 26310010 */ addiu $s1, $s1, 0x10 +/* 0802F0 7F04B7C0 AC61FFF0 */ sw $at, -0x10($v1) +/* 0802F4 7F04B7C4 8DE80004 */ lw $t0, 4($t7) +/* 0802F8 7F04B7C8 AC68FFF4 */ sw $t0, -0xc($v1) +/* 0802FC 7F04B7CC 8DE10008 */ lw $at, 8($t7) +/* 080300 7F04B7D0 AC61FFF8 */ sw $at, -8($v1) +/* 080304 7F04B7D4 8DE8000C */ lw $t0, 0xc($t7) +/* 080308 7F04B7D8 AC68FFFC */ sw $t0, -4($v1) +/* 08030C 7F04B7DC 86A9000C */ lh $t1, 0xc($s5) +/* 080310 7F04B7E0 0249082A */ slt $at, $s2, $t1 +/* 080314 7F04B7E4 5420FFF1 */ bnezl $at, .L7F04B7AC +/* 080318 7F04B7E8 8E780000 */ lw $t8, ($s3) +/* 08031C 7F04B7EC 8E640000 */ lw $a0, ($s3) +/* 080320 7F04B7F0 00009025 */ move $s2, $zero +.L7F04B7F4: +/* 080324 7F04B7F4 0FC27011 */ jal sub_GAME_7F09C044 +/* 080328 7F04B7F8 00000000 */ nop +/* 08032C 7F04B7FC 10000018 */ b .L7F04B860 +/* 080330 7F04B800 00000000 */ nop +/* 080334 7F04B804 86AA000C */ lh $t2, 0xc($s5) +.L7F04B808: +/* 080338 7F04B808 00009025 */ move $s2, $zero +/* 08033C 7F04B80C 00008825 */ move $s1, $zero +/* 080340 7F04B810 19400013 */ blez $t2, .L7F04B860 +/* 080344 7F04B814 00401825 */ move $v1, $v0 +/* 080348 7F04B818 8EAB0008 */ lw $t3, 8($s5) +.L7F04B81C: +/* 08034C 7F04B81C 26520001 */ addiu $s2, $s2, 1 +/* 080350 7F04B820 24630010 */ addiu $v1, $v1, 0x10 +/* 080354 7F04B824 01716021 */ addu $t4, $t3, $s1 +/* 080358 7F04B828 8D810000 */ lw $at, ($t4) +/* 08035C 7F04B82C 26310010 */ addiu $s1, $s1, 0x10 +/* 080360 7F04B830 AC61FFF0 */ sw $at, -0x10($v1) +/* 080364 7F04B834 8D8E0004 */ lw $t6, 4($t4) +/* 080368 7F04B838 AC6EFFF4 */ sw $t6, -0xc($v1) +/* 08036C 7F04B83C 8D810008 */ lw $at, 8($t4) +/* 080370 7F04B840 AC61FFF8 */ sw $at, -8($v1) +/* 080374 7F04B844 8D8E000C */ lw $t6, 0xc($t4) +/* 080378 7F04B848 AC6EFFFC */ sw $t6, -4($v1) +/* 08037C 7F04B84C 86B8000C */ lh $t8, 0xc($s5) +/* 080380 7F04B850 0258082A */ slt $at, $s2, $t8 +/* 080384 7F04B854 5420FFF1 */ bnezl $at, .L7F04B81C +/* 080388 7F04B858 8EAB0008 */ lw $t3, 8($s5) +/* 08038C 7F04B85C 00009025 */ move $s2, $zero +.L7F04B860: +/* 080390 7F04B860 10000036 */ b .L7F04B93C +/* 080394 7F04B864 AE700000 */ sw $s0, ($s3) +.L7F04B868: +/* 080398 7F04B868 8E640000 */ lw $a0, ($s3) +/* 08039C 7F04B86C 8EB90008 */ lw $t9, 8($s5) +/* 0803A0 7F04B870 13240008 */ beq $t9, $a0, .L7F04B894 +/* 0803A4 7F04B874 00000000 */ nop +/* 0803A8 7F04B878 0FC27011 */ jal sub_GAME_7F09C044 +/* 0803AC 7F04B87C 00000000 */ nop +/* 0803B0 7F04B880 8EAF0008 */ lw $t7, 8($s5) +/* 0803B4 7F04B884 AE6F0000 */ sw $t7, ($s3) +/* 0803B8 7F04B888 8FC80064 */ lw $t0, 0x64($fp) +/* 0803BC 7F04B88C 35090004 */ ori $t1, $t0, 4 +/* 0803C0 7F04B890 AFC90064 */ sw $t1, 0x64($fp) +.L7F04B894: +/* 0803C4 7F04B894 3C018005 */ lui $at, %hi(D_80052CB4) +/* 0803C8 7F04B898 C4202CB4 */ lwc1 $f0, %lo(D_80052CB4)($at) +/* 0803CC 7F04B89C C7C40028 */ lwc1 $f4, 0x28($fp) +/* 0803D0 7F04B8A0 C7C8002C */ lwc1 $f8, 0x2c($fp) +/* 0803D4 7F04B8A4 C7D00030 */ lwc1 $f16, 0x30($fp) +/* 0803D8 7F04B8A8 46002182 */ mul.s $f6, $f4, $f0 +/* 0803DC 7F04B8AC 00000000 */ nop +/* 0803E0 7F04B8B0 46004282 */ mul.s $f10, $f8, $f0 +/* 0803E4 7F04B8B4 00000000 */ nop +/* 0803E8 7F04B8B8 46008482 */ mul.s $f18, $f16, $f0 +/* 0803EC 7F04B8BC E7C60028 */ swc1 $f6, 0x28($fp) +/* 0803F0 7F04B8C0 E7CA002C */ swc1 $f10, 0x2c($fp) +/* 0803F4 7F04B8C4 12E000F9 */ beqz $s7, .L7F04BCAC +/* 0803F8 7F04B8C8 E7D20030 */ swc1 $f18, 0x30($fp) +/* 0803FC 7F04B8CC 8FC20014 */ lw $v0, 0x14($fp) +/* 080400 7F04B8D0 C4440014 */ lwc1 $f4, 0x14($v0) +/* 080404 7F04B8D4 8C440008 */ lw $a0, 8($v0) +/* 080408 7F04B8D8 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 08040C 7F04B8DC E7A4005C */ swc1 $f4, 0x5c($sp) +/* 080410 7F04B8E0 00408025 */ move $s0, $v0 +/* 080414 7F04B8E4 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 080418 7F04B8E8 00402025 */ move $a0, $v0 +/* 08041C 7F04B8EC C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 080420 7F04B8F0 3C018005 */ lui $at, %hi(D_80052CB8) +/* 080424 7F04B8F4 C42A2CB8 */ lwc1 $f10, %lo(D_80052CB8)($at) +/* 080428 7F04B8F8 46003202 */ mul.s $f8, $f6, $f0 +/* 08042C 7F04B8FC 8FC20010 */ lw $v0, 0x10($fp) +/* 080430 7F04B900 02002025 */ move $a0, $s0 +/* 080434 7F04B904 C452000C */ lwc1 $f18, 0xc($v0) +/* 080438 7F04B908 460A4402 */ mul.s $f16, $f8, $f10 +/* 08043C 7F04B90C 46109100 */ add.s $f4, $f18, $f16 +/* 080440 7F04B910 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 080444 7F04B914 E444000C */ swc1 $f4, 0xc($v0) +/* 080448 7F04B918 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 08044C 7F04B91C 3C018005 */ lui $at, %hi(D_80052CBC) +/* 080450 7F04B920 C42A2CBC */ lwc1 $f10, %lo(D_80052CBC)($at) +/* 080454 7F04B924 46003202 */ mul.s $f8, $f6, $f0 +/* 080458 7F04B928 C7D0005C */ lwc1 $f16, 0x5c($fp) +/* 08045C 7F04B92C 460A4482 */ mul.s $f18, $f8, $f10 +/* 080460 7F04B930 46128100 */ add.s $f4, $f16, $f18 +/* 080464 7F04B934 100000DD */ b .L7F04BCAC +/* 080468 7F04B938 E7C4005C */ swc1 $f4, 0x5c($fp) +.L7F04B93C: +/* 08046C 7F04B93C 87C20004 */ lh $v0, 4($fp) +/* 080470 7F04B940 24010026 */ li $at, 38 +/* 080474 7F04B944 00008825 */ move $s1, $zero +/* 080478 7F04B948 10410005 */ beq $v0, $at, .L7F04B960 +/* 08047C 7F04B94C 24010027 */ li $at, 39 +/* 080480 7F04B950 10410003 */ beq $v0, $at, .L7F04B960 +/* 080484 7F04B954 24010055 */ li $at, 85 +/* 080488 7F04B958 14410003 */ bne $v0, $at, .L7F04B968 +/* 08048C 7F04B95C 240A0001 */ li $t2, 1 +.L7F04B960: +/* 080490 7F04B960 10000002 */ b .L7F04B96C +/* 080494 7F04B964 AFA00070 */ sw $zero, 0x70($sp) +.L7F04B968: +/* 080498 7F04B968 AFAA0070 */ sw $t2, 0x70($sp) +.L7F04B96C: +/* 08049C 7F04B96C 86A4000C */ lh $a0, 0xc($s5) +/* 0804A0 7F04B970 8FA50040 */ lw $a1, 0x40($sp) +/* 0804A4 7F04B974 18800010 */ blez $a0, .L7F04B9B8 +/* 0804A8 7F04B978 00041900 */ sll $v1, $a0, 4 +/* 0804AC 7F04B97C 8E700000 */ lw $s0, ($s3) +.L7F04B980: +/* 0804B0 7F04B980 86020002 */ lh $v0, 2($s0) +/* 0804B4 7F04B984 26310010 */ addiu $s1, $s1, 0x10 +/* 0804B8 7F04B988 0056082A */ slt $at, $v0, $s6 +/* 0804BC 7F04B98C 50200003 */ beql $at, $zero, .L7F04B99C +/* 0804C0 7F04B990 0282082A */ slt $at, $s4, $v0 +/* 0804C4 7F04B994 0040B025 */ move $s6, $v0 +/* 0804C8 7F04B998 0282082A */ slt $at, $s4, $v0 +.L7F04B99C: +/* 0804CC 7F04B99C 50200003 */ beql $at, $zero, .L7F04B9AC +/* 0804D0 7F04B9A0 0223082A */ slt $at, $s1, $v1 +/* 0804D4 7F04B9A4 0040A025 */ move $s4, $v0 +/* 0804D8 7F04B9A8 0223082A */ slt $at, $s1, $v1 +.L7F04B9AC: +/* 0804DC 7F04B9AC 1420FFF4 */ bnez $at, .L7F04B980 +/* 0804E0 7F04B9B0 26100010 */ addiu $s0, $s0, 0x10 +/* 0804E4 7F04B9B4 00009025 */ move $s2, $zero +.L7F04B9B8: +/* 0804E8 7F04B9B8 02D41021 */ addu $v0, $s6, $s4 +/* 0804EC 7F04B9BC 00025843 */ sra $t3, $v0, 1 +/* 0804F0 7F04B9C0 24010006 */ li $at, 6 +/* 0804F4 7F04B9C4 14A10006 */ bne $a1, $at, .L7F04B9E0 +/* 0804F8 7F04B9C8 01601825 */ move $v1, $t3 +/* 0804FC 7F04B9CC 01766823 */ subu $t5, $t3, $s6 +/* 080500 7F04B9D0 29A10029 */ slti $at, $t5, 0x29 +/* 080504 7F04B9D4 54200003 */ bnezl $at, .L7F04B9E4 +/* 080508 7F04B9D8 02961023 */ subu $v0, $s4, $s6 +/* 08050C 7F04B9DC 26C30028 */ addiu $v1, $s6, 0x28 +.L7F04B9E0: +/* 080510 7F04B9E0 02961023 */ subu $v0, $s4, $s6 +.L7F04B9E4: +/* 080514 7F04B9E4 2841003D */ slti $at, $v0, 0x3d +/* 080518 7F04B9E8 1420000E */ bnez $at, .L7F04BA24 +/* 08051C 7F04B9EC 28A10006 */ slti $at, $a1, 6 +/* 080520 7F04B9F0 10200005 */ beqz $at, .L7F04BA08 +/* 080524 7F04B9F4 244CFFC4 */ addiu $t4, $v0, -0x3c +/* 080528 7F04B9F8 3C018005 */ lui $at, %hi(D_80052CC0) +/* 08052C 7F04B9FC C4262CC0 */ lwc1 $f6, %lo(D_80052CC0)($at) +/* 080530 7F04BA00 1000000C */ b .L7F04BA34 +/* 080534 7F04BA04 E7A60068 */ swc1 $f6, 0x68($sp) +.L7F04BA08: +/* 080538 7F04BA08 448C4000 */ mtc1 $t4, $f8 +/* 08053C 7F04BA0C 44828000 */ mtc1 $v0, $f16 +/* 080540 7F04BA10 468042A0 */ cvt.s.w $f10, $f8 +/* 080544 7F04BA14 468084A0 */ cvt.s.w $f18, $f16 +/* 080548 7F04BA18 46125103 */ div.s $f4, $f10, $f18 +/* 08054C 7F04BA1C 10000005 */ b .L7F04BA34 +/* 080550 7F04BA20 E7A40068 */ swc1 $f4, 0x68($sp) +.L7F04BA24: +/* 080554 7F04BA24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 080558 7F04BA28 44813000 */ mtc1 $at, $f6 +/* 08055C 7F04BA2C 00000000 */ nop +/* 080560 7F04BA30 E7A60068 */ swc1 $f6, 0x68($sp) +.L7F04BA34: +/* 080564 7F04BA34 5880009E */ blezl $a0, .L7F04BCB0 +/* 080568 7F04BA38 8FBF003C */ lw $ra, 0x3c($sp) +/* 08056C 7F04BA3C 44964000 */ mtc1 $s6, $f8 +/* 080570 7F04BA40 00008825 */ move $s1, $zero +/* 080574 7F04BA44 AFA3007C */ sw $v1, 0x7c($sp) +/* 080578 7F04BA48 46804420 */ cvt.s.w $f16, $f8 +/* 08057C 7F04BA4C 24140050 */ li $s4, 80 +/* 080580 7F04BA50 E7B00044 */ swc1 $f16, 0x44($sp) +/* 080584 7F04BA54 8EAE0008 */ lw $t6, 8($s5) +.L7F04BA58: +/* 080588 7F04BA58 8FAA0078 */ lw $t2, 0x78($sp) +/* 08058C 7F04BA5C 01D11021 */ addu $v0, $t6, $s1 +/* 080590 7F04BA60 84580004 */ lh $t8, 4($v0) +/* 080594 7F04BA64 84590000 */ lh $t9, ($v0) +/* 080598 7F04BA68 84480002 */ lh $t0, 2($v0) +/* 08059C 7F04BA6C 03197821 */ addu $t7, $t8, $t9 +/* 0805A0 7F04BA70 01E84821 */ addu $t1, $t7, $t0 +/* 0805A4 7F04BA74 0FC26DE2 */ jal sub_GAME_7F09B788 +/* 0805A8 7F04BA78 012A2021 */ addu $a0, $t1, $t2 +/* 0805AC 7F04BA7C 8FAB0070 */ lw $t3, 0x70($sp) +/* 0805B0 7F04BA80 00008025 */ move $s0, $zero +/* 0805B4 7F04BA84 1160002E */ beqz $t3, .L7F04BB40 +/* 0805B8 7F04BA88 00000000 */ nop +/* 0805BC 7F04BA8C C7CA002C */ lwc1 $f10, 0x2c($fp) +/* 0805C0 7F04BA90 44809000 */ mtc1 $zero, $f18 +/* 0805C4 7F04BA94 00000000 */ nop +/* 0805C8 7F04BA98 460A903E */ c.le.s $f18, $f10 +/* 0805CC 7F04BA9C 00000000 */ nop +/* 0805D0 7F04BAA0 45020015 */ bc1fl .L7F04BAF8 +/* 0805D4 7F04BAA4 8E6F0000 */ lw $t7, ($s3) +/* 0805D8 7F04BAA8 8E6D0000 */ lw $t5, ($s3) +/* 0805DC 7F04BAAC 8FB8007C */ lw $t8, 0x7c($sp) +/* 0805E0 7F04BAB0 01B16021 */ addu $t4, $t5, $s1 +/* 0805E4 7F04BAB4 858E0002 */ lh $t6, 2($t4) +/* 0805E8 7F04BAB8 01D8082A */ slt $at, $t6, $t8 +/* 0805EC 7F04BABC 14200007 */ bnez $at, .L7F04BADC +/* 0805F0 7F04BAC0 00000000 */ nop +/* 0805F4 7F04BAC4 12E00003 */ beqz $s7, .L7F04BAD4 +/* 0805F8 7F04BAC8 00000000 */ nop +/* 0805FC 7F04BACC 1000001C */ b .L7F04BB40 +/* 080600 7F04BAD0 2410005A */ li $s0, 90 +.L7F04BAD4: +/* 080604 7F04BAD4 1000001A */ b .L7F04BB40 +/* 080608 7F04BAD8 24100014 */ li $s0, 20 +.L7F04BADC: +/* 08060C 7F04BADC 12E00003 */ beqz $s7, .L7F04BAEC +/* 080610 7F04BAE0 00000000 */ nop +/* 080614 7F04BAE4 10000016 */ b .L7F04BB40 +/* 080618 7F04BAE8 24100014 */ li $s0, 20 +.L7F04BAEC: +/* 08061C 7F04BAEC 10000014 */ b .L7F04BB40 +/* 080620 7F04BAF0 2410005A */ li $s0, 90 +/* 080624 7F04BAF4 8E6F0000 */ lw $t7, ($s3) +.L7F04BAF8: +/* 080628 7F04BAF8 8FB9007C */ lw $t9, 0x7c($sp) +/* 08062C 7F04BAFC 01F14021 */ addu $t0, $t7, $s1 +/* 080630 7F04BB00 85090002 */ lh $t1, 2($t0) +/* 080634 7F04BB04 0329082A */ slt $at, $t9, $t1 +/* 080638 7F04BB08 14200007 */ bnez $at, .L7F04BB28 +/* 08063C 7F04BB0C 00000000 */ nop +/* 080640 7F04BB10 12E00003 */ beqz $s7, .L7F04BB20 +/* 080644 7F04BB14 00000000 */ nop +/* 080648 7F04BB18 10000009 */ b .L7F04BB40 +/* 08064C 7F04BB1C 2410005A */ li $s0, 90 +.L7F04BB20: +/* 080650 7F04BB20 10000007 */ b .L7F04BB40 +/* 080654 7F04BB24 24100014 */ li $s0, 20 +.L7F04BB28: +/* 080658 7F04BB28 12E00003 */ beqz $s7, .L7F04BB38 +/* 08065C 7F04BB2C 00000000 */ nop +/* 080660 7F04BB30 10000003 */ b .L7F04BB40 +/* 080664 7F04BB34 24100014 */ li $s0, 20 +.L7F04BB38: +/* 080668 7F04BB38 10000001 */ b .L7F04BB40 +/* 08066C 7F04BB3C 2410005A */ li $s0, 90 +.L7F04BB40: +/* 080670 7F04BB40 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080674 7F04BB44 00000000 */ nop +/* 080678 7F04BB48 24010064 */ li $at, 100 +/* 08067C 7F04BB4C 0041001B */ divu $zero, $v0, $at +/* 080680 7F04BB50 00005010 */ mfhi $t2 +/* 080684 7F04BB54 0150082A */ slt $at, $t2, $s0 +/* 080688 7F04BB58 1020000F */ beqz $at, .L7F04BB98 +/* 08068C 7F04BB5C 8FAA0040 */ lw $t2, 0x40($sp) +/* 080690 7F04BB60 8E6B0000 */ lw $t3, ($s3) +/* 080694 7F04BB64 240800FF */ li $t0, 255 +/* 080698 7F04BB68 01716821 */ addu $t5, $t3, $s1 +/* 08069C 7F04BB6C A1A0000C */ sb $zero, 0xc($t5) +/* 0806A0 7F04BB70 8E6C0000 */ lw $t4, ($s3) +/* 0806A4 7F04BB74 01917021 */ addu $t6, $t4, $s1 +/* 0806A8 7F04BB78 A1C0000D */ sb $zero, 0xd($t6) +/* 0806AC 7F04BB7C 8E780000 */ lw $t8, ($s3) +/* 0806B0 7F04BB80 03117821 */ addu $t7, $t8, $s1 +/* 0806B4 7F04BB84 A1E0000E */ sb $zero, 0xe($t7) +/* 0806B8 7F04BB88 8E790000 */ lw $t9, ($s3) +/* 0806BC 7F04BB8C 03314821 */ addu $t1, $t9, $s1 +/* 0806C0 7F04BB90 10000007 */ b .L7F04BBB0 +/* 0806C4 7F04BB94 A128000F */ sb $t0, 0xf($t1) +.L7F04BB98: +/* 0806C8 7F04BB98 24010002 */ li $at, 2 +/* 0806CC 7F04BB9C 55410005 */ bnel $t2, $at, .L7F04BBB4 +/* 0806D0 7F04BBA0 8E6C0000 */ lw $t4, ($s3) +/* 0806D4 7F04BBA4 8E6B0000 */ lw $t3, ($s3) +/* 0806D8 7F04BBA8 01716821 */ addu $t5, $t3, $s1 +/* 0806DC 7F04BBAC A1A0000F */ sb $zero, 0xf($t5) +.L7F04BBB0: +/* 0806E0 7F04BBB0 8E6C0000 */ lw $t4, ($s3) +.L7F04BBB4: +/* 0806E4 7F04BBB4 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0806E8 7F04BBB8 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0806EC 7F04BBBC 01918021 */ addu $s0, $t4, $s1 +/* 0806F0 7F04BBC0 860E0002 */ lh $t6, 2($s0) +/* 0806F4 7F04BBC4 01D6C023 */ subu $t8, $t6, $s6 +/* 0806F8 7F04BBC8 44982000 */ mtc1 $t8, $f4 +/* 0806FC 7F04BBCC 00000000 */ nop +/* 080700 7F04BBD0 468021A0 */ cvt.s.w $f6, $f4 +/* 080704 7F04BBD4 46083402 */ mul.s $f16, $f6, $f8 +/* 080708 7F04BBD8 460A8480 */ add.s $f18, $f16, $f10 +/* 08070C 7F04BBDC 4600910D */ trunc.w.s $f4, $f18 +/* 080710 7F04BBE0 44192000 */ mfc1 $t9, $f4 +/* 080714 7F04BBE4 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080718 7F04BBE8 A6190002 */ sh $t9, 2($s0) +/* 08071C 7F04BBEC 0054001B */ divu $zero, $v0, $s4 +/* 080720 7F04BBF0 8E680000 */ lw $t0, ($s3) +/* 080724 7F04BBF4 00005010 */ mfhi $t2 +/* 080728 7F04BBF8 01118021 */ addu $s0, $t0, $s1 +/* 08072C 7F04BBFC 86090000 */ lh $t1, ($s0) +/* 080730 7F04BC00 16800002 */ bnez $s4, .L7F04BC0C +/* 080734 7F04BC04 00000000 */ nop +/* 080738 7F04BC08 0007000D */ break 7 +.L7F04BC0C: +/* 08073C 7F04BC0C 012A5821 */ addu $t3, $t1, $t2 +/* 080740 7F04BC10 256DFFD8 */ addiu $t5, $t3, -0x28 +/* 080744 7F04BC14 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080748 7F04BC18 A60D0000 */ sh $t5, ($s0) +/* 08074C 7F04BC1C 0054001B */ divu $zero, $v0, $s4 +/* 080750 7F04BC20 8E6C0000 */ lw $t4, ($s3) +/* 080754 7F04BC24 0000C010 */ mfhi $t8 +/* 080758 7F04BC28 01918021 */ addu $s0, $t4, $s1 +/* 08075C 7F04BC2C 860E0002 */ lh $t6, 2($s0) +/* 080760 7F04BC30 16800002 */ bnez $s4, .L7F04BC3C +/* 080764 7F04BC34 00000000 */ nop +/* 080768 7F04BC38 0007000D */ break 7 +.L7F04BC3C: +/* 08076C 7F04BC3C 01D87821 */ addu $t7, $t6, $t8 +/* 080770 7F04BC40 25F9FFD8 */ addiu $t9, $t7, -0x28 +/* 080774 7F04BC44 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080778 7F04BC48 A6190002 */ sh $t9, 2($s0) +/* 08077C 7F04BC4C 0054001B */ divu $zero, $v0, $s4 +/* 080780 7F04BC50 8E680000 */ lw $t0, ($s3) +/* 080784 7F04BC54 00005010 */ mfhi $t2 +/* 080788 7F04BC58 01118021 */ addu $s0, $t0, $s1 +/* 08078C 7F04BC5C 86090004 */ lh $t1, 4($s0) +/* 080790 7F04BC60 16800002 */ bnez $s4, .L7F04BC6C +/* 080794 7F04BC64 00000000 */ nop +/* 080798 7F04BC68 0007000D */ break 7 +.L7F04BC6C: +/* 08079C 7F04BC6C 012A5821 */ addu $t3, $t1, $t2 +/* 0807A0 7F04BC70 256DFFD8 */ addiu $t5, $t3, -0x28 +/* 0807A4 7F04BC74 A60D0004 */ sh $t5, 4($s0) +/* 0807A8 7F04BC78 8E6C0000 */ lw $t4, ($s3) +/* 0807AC 7F04BC7C 01918021 */ addu $s0, $t4, $s1 +/* 0807B0 7F04BC80 860E0002 */ lh $t6, 2($s0) +/* 0807B4 7F04BC84 01D6082A */ slt $at, $t6, $s6 +/* 0807B8 7F04BC88 50200003 */ beql $at, $zero, .L7F04BC98 +/* 0807BC 7F04BC8C 86B8000C */ lh $t8, 0xc($s5) +/* 0807C0 7F04BC90 A6160002 */ sh $s6, 2($s0) +/* 0807C4 7F04BC94 86B8000C */ lh $t8, 0xc($s5) +.L7F04BC98: +/* 0807C8 7F04BC98 26520001 */ addiu $s2, $s2, 1 +/* 0807CC 7F04BC9C 26310010 */ addiu $s1, $s1, 0x10 +/* 0807D0 7F04BCA0 0258082A */ slt $at, $s2, $t8 +/* 0807D4 7F04BCA4 5420FF6C */ bnezl $at, .L7F04BA58 +/* 0807D8 7F04BCA8 8EAE0008 */ lw $t6, 8($s5) +.L7F04BCAC: +/* 0807DC 7F04BCAC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F04BCB0: +/* 0807E0 7F04BCB0 8FB00018 */ lw $s0, 0x18($sp) +/* 0807E4 7F04BCB4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0807E8 7F04BCB8 8FB20020 */ lw $s2, 0x20($sp) +/* 0807EC 7F04BCBC 8FB30024 */ lw $s3, 0x24($sp) +/* 0807F0 7F04BCC0 8FB40028 */ lw $s4, 0x28($sp) +/* 0807F4 7F04BCC4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0807F8 7F04BCC8 8FB60030 */ lw $s6, 0x30($sp) +/* 0807FC 7F04BCCC 8FB70034 */ lw $s7, 0x34($sp) +/* 080800 7F04BCD0 8FBE0038 */ lw $fp, 0x38($sp) +/* 080804 7F04BCD4 03E00008 */ jr $ra +/* 080808 7F04BCD8 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04BCDC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052CC4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CC8 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CCC +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CD0 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CD4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CD8 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CDC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CE0 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CE4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CE8 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CF0 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CF4 +.word 0x40555555 /*3.3333333*/ +.text +glabel sub_GAME_7F04BCDC +/* 08080C 7F04BCDC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 080810 7F04BCE0 3C0F8003 */ lui $t7, %hi(D_80032010) +/* 080814 7F04BCE4 AFBF0024 */ sw $ra, 0x24($sp) +/* 080818 7F04BCE8 AFB00020 */ sw $s0, 0x20($sp) +/* 08081C 7F04BCEC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 080820 7F04BCF0 AFA50054 */ sw $a1, 0x54($sp) +/* 080824 7F04BCF4 25EF2010 */ addiu $t7, %lo(D_80032010) # addiu $t7, $t7, 0x2010 +/* 080828 7F04BCF8 8DE10000 */ lw $at, ($t7) +/* 08082C 7F04BCFC 27AE0038 */ addiu $t6, $sp, 0x38 +/* 080830 7F04BD00 8DE80004 */ lw $t0, 4($t7) +/* 080834 7F04BD04 ADC10000 */ sw $at, ($t6) +/* 080838 7F04BD08 8DE10008 */ lw $at, 8($t7) +/* 08083C 7F04BD0C 00803025 */ move $a2, $a0 +/* 080840 7F04BD10 ADC80004 */ sw $t0, 4($t6) +/* 080844 7F04BD14 ADC10008 */ sw $at, 8($t6) +/* 080848 7F04BD18 8C840010 */ lw $a0, 0x10($a0) +/* 08084C 7F04BD1C 00008025 */ move $s0, $zero +/* 080850 7F04BD20 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 080854 7F04BD24 AFA60050 */ sw $a2, 0x50($sp) +/* 080858 7F04BD28 8FA60050 */ lw $a2, 0x50($sp) +/* 08085C 7F04BD2C 8CC20064 */ lw $v0, 0x64($a2) +/* 080860 7F04BD30 30490040 */ andi $t1, $v0, 0x40 +/* 080864 7F04BD34 11200004 */ beqz $t1, .L7F04BD48 +/* 080868 7F04BD38 304B0080 */ andi $t3, $v0, 0x80 +/* 08086C 7F04BD3C 8CCA006C */ lw $t2, 0x6c($a2) +/* 080870 7F04BD40 10000004 */ b .L7F04BD54 +/* 080874 7F04BD44 8D500044 */ lw $s0, 0x44($t2) +.L7F04BD48: +/* 080878 7F04BD48 11600002 */ beqz $t3, .L7F04BD54 +/* 08087C 7F04BD4C 00000000 */ nop +/* 080880 7F04BD50 8CD0006C */ lw $s0, 0x6c($a2) +.L7F04BD54: +/* 080884 7F04BD54 5200009A */ beql $s0, $zero, .L7F04BFC0 +/* 080888 7F04BD58 8FBF0024 */ lw $ra, 0x24($sp) +/* 08088C 7F04BD5C 0C002914 */ jal get_random_value +/* 080890 7F04BD60 00000000 */ nop +/* 080894 7F04BD64 44822000 */ mtc1 $v0, $f4 +/* 080898 7F04BD68 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08089C 7F04BD6C 4481A000 */ mtc1 $at, $f20 +/* 0808A0 7F04BD70 04410005 */ bgez $v0, .L7F04BD88 +/* 0808A4 7F04BD74 468021A0 */ cvt.s.w $f6, $f4 +/* 0808A8 7F04BD78 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0808AC 7F04BD7C 44814000 */ mtc1 $at, $f8 +/* 0808B0 7F04BD80 00000000 */ nop +/* 0808B4 7F04BD84 46083180 */ add.s $f6, $f6, $f8 +.L7F04BD88: +/* 0808B8 7F04BD88 46143282 */ mul.s $f10, $f6, $f20 +/* 0808BC 7F04BD8C 3C018005 */ lui $at, %hi(D_80052CC4) +/* 0808C0 7F04BD90 C4302CC4 */ lwc1 $f16, %lo(D_80052CC4)($at) +/* 0808C4 7F04BD94 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0808C8 7F04BD98 44812000 */ mtc1 $at, $f4 +/* 0808CC 7F04BD9C 3C018005 */ lui $at, %hi(D_80052CC8) +/* 0808D0 7F04BDA0 C4262CC8 */ lwc1 $f6, %lo(D_80052CC8)($at) +/* 0808D4 7F04BDA4 46105482 */ mul.s $f18, $f10, $f16 +/* 0808D8 7F04BDA8 00000000 */ nop +/* 0808DC 7F04BDAC 46049202 */ mul.s $f8, $f18, $f4 +/* 0808E0 7F04BDB0 46064281 */ sub.s $f10, $f8, $f6 +/* 0808E4 7F04BDB4 0C002914 */ jal get_random_value +/* 0808E8 7F04BDB8 E60A0004 */ swc1 $f10, 4($s0) +/* 0808EC 7F04BDBC 44828000 */ mtc1 $v0, $f16 +/* 0808F0 7F04BDC0 04410005 */ bgez $v0, .L7F04BDD8 +/* 0808F4 7F04BDC4 468084A0 */ cvt.s.w $f18, $f16 +/* 0808F8 7F04BDC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0808FC 7F04BDCC 44812000 */ mtc1 $at, $f4 +/* 080900 7F04BDD0 00000000 */ nop +/* 080904 7F04BDD4 46049480 */ add.s $f18, $f18, $f4 +.L7F04BDD8: +/* 080908 7F04BDD8 46149202 */ mul.s $f8, $f18, $f20 +/* 08090C 7F04BDDC 3C018005 */ lui $at, %hi(D_80052CCC) +/* 080910 7F04BDE0 C4262CCC */ lwc1 $f6, %lo(D_80052CCC)($at) +/* 080914 7F04BDE4 3C018005 */ lui $at, %hi(D_80052CD0) +/* 080918 7F04BDE8 C4302CD0 */ lwc1 $f16, %lo(D_80052CD0)($at) +/* 08091C 7F04BDEC 46064002 */ mul.s $f0, $f8, $f6 +/* 080920 7F04BDF0 46000280 */ add.s $f10, $f0, $f0 +/* 080924 7F04BDF4 46105100 */ add.s $f4, $f10, $f16 +/* 080928 7F04BDF8 0C002914 */ jal get_random_value +/* 08092C 7F04BDFC E6040008 */ swc1 $f4, 8($s0) +/* 080930 7F04BE00 44829000 */ mtc1 $v0, $f18 +/* 080934 7F04BE04 04410005 */ bgez $v0, .L7F04BE1C +/* 080938 7F04BE08 46809220 */ cvt.s.w $f8, $f18 +/* 08093C 7F04BE0C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080940 7F04BE10 44813000 */ mtc1 $at, $f6 +/* 080944 7F04BE14 00000000 */ nop +/* 080948 7F04BE18 46064200 */ add.s $f8, $f8, $f6 +.L7F04BE1C: +/* 08094C 7F04BE1C 46144282 */ mul.s $f10, $f8, $f20 +/* 080950 7F04BE20 3C018005 */ lui $at, %hi(D_80052CD4) +/* 080954 7F04BE24 C4302CD4 */ lwc1 $f16, %lo(D_80052CD4)($at) +/* 080958 7F04BE28 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08095C 7F04BE2C 44819000 */ mtc1 $at, $f18 +/* 080960 7F04BE30 3C018005 */ lui $at, %hi(D_80052CD8) +/* 080964 7F04BE34 C4282CD8 */ lwc1 $f8, %lo(D_80052CD8)($at) +/* 080968 7F04BE38 46105102 */ mul.s $f4, $f10, $f16 +/* 08096C 7F04BE3C 00000000 */ nop +/* 080970 7F04BE40 46122182 */ mul.s $f6, $f4, $f18 +/* 080974 7F04BE44 46083281 */ sub.s $f10, $f6, $f8 +/* 080978 7F04BE48 0C002914 */ jal get_random_value +/* 08097C 7F04BE4C E60A000C */ swc1 $f10, 0xc($s0) +/* 080980 7F04BE50 44828000 */ mtc1 $v0, $f16 +/* 080984 7F04BE54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080988 7F04BE58 04410004 */ bgez $v0, .L7F04BE6C +/* 08098C 7F04BE5C 46808120 */ cvt.s.w $f4, $f16 +/* 080990 7F04BE60 44819000 */ mtc1 $at, $f18 +/* 080994 7F04BE64 00000000 */ nop +/* 080998 7F04BE68 46122100 */ add.s $f4, $f4, $f18 +.L7F04BE6C: +/* 08099C 7F04BE6C 46142182 */ mul.s $f6, $f4, $f20 +/* 0809A0 7F04BE70 3C018005 */ lui $at, %hi(D_80052CDC) +/* 0809A4 7F04BE74 C4282CDC */ lwc1 $f8, %lo(D_80052CDC)($at) +/* 0809A8 7F04BE78 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 0809AC 7F04BE7C 44818000 */ mtc1 $at, $f16 +/* 0809B0 7F04BE80 3C018005 */ lui $at, %hi(D_80052CE0) +/* 0809B4 7F04BE84 C4242CE0 */ lwc1 $f4, %lo(D_80052CE0)($at) +/* 0809B8 7F04BE88 46083282 */ mul.s $f10, $f6, $f8 +/* 0809BC 7F04BE8C 00000000 */ nop +/* 0809C0 7F04BE90 46105482 */ mul.s $f18, $f10, $f16 +/* 0809C4 7F04BE94 46049181 */ sub.s $f6, $f18, $f4 +/* 0809C8 7F04BE98 0C002914 */ jal get_random_value +/* 0809CC 7F04BE9C E7A60038 */ swc1 $f6, 0x38($sp) +/* 0809D0 7F04BEA0 44824000 */ mtc1 $v0, $f8 +/* 0809D4 7F04BEA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0809D8 7F04BEA8 04410004 */ bgez $v0, .L7F04BEBC +/* 0809DC 7F04BEAC 468042A0 */ cvt.s.w $f10, $f8 +/* 0809E0 7F04BEB0 44818000 */ mtc1 $at, $f16 +/* 0809E4 7F04BEB4 00000000 */ nop +/* 0809E8 7F04BEB8 46105280 */ add.s $f10, $f10, $f16 +.L7F04BEBC: +/* 0809EC 7F04BEBC 46145482 */ mul.s $f18, $f10, $f20 +/* 0809F0 7F04BEC0 3C018005 */ lui $at, %hi(D_80052CE4) +/* 0809F4 7F04BEC4 C4242CE4 */ lwc1 $f4, %lo(D_80052CE4)($at) +/* 0809F8 7F04BEC8 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 0809FC 7F04BECC 44814000 */ mtc1 $at, $f8 +/* 080A00 7F04BED0 3C018005 */ lui $at, %hi(D_80052CE8) +/* 080A04 7F04BED4 C42A2CE8 */ lwc1 $f10, %lo(D_80052CE8)($at) +/* 080A08 7F04BED8 46049182 */ mul.s $f6, $f18, $f4 +/* 080A0C 7F04BEDC 00000000 */ nop +/* 080A10 7F04BEE0 46083402 */ mul.s $f16, $f6, $f8 +/* 080A14 7F04BEE4 460A8481 */ sub.s $f18, $f16, $f10 +/* 080A18 7F04BEE8 0C002914 */ jal get_random_value +/* 080A1C 7F04BEEC E7B2003C */ swc1 $f18, 0x3c($sp) +/* 080A20 7F04BEF0 44822000 */ mtc1 $v0, $f4 +/* 080A24 7F04BEF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080A28 7F04BEF8 04410004 */ bgez $v0, .L7F04BF0C +/* 080A2C 7F04BEFC 468021A0 */ cvt.s.w $f6, $f4 +/* 080A30 7F04BF00 44814000 */ mtc1 $at, $f8 +/* 080A34 7F04BF04 00000000 */ nop +/* 080A38 7F04BF08 46083180 */ add.s $f6, $f6, $f8 +.L7F04BF0C: +/* 080A3C 7F04BF0C 46143402 */ mul.s $f16, $f6, $f20 +/* 080A40 7F04BF10 3C018005 */ lui $at, %hi(D_80052CEC) +/* 080A44 7F04BF14 C42A2CEC */ lwc1 $f10, %lo(D_80052CEC)($at) +/* 080A48 7F04BF18 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 080A4C 7F04BF1C 44812000 */ mtc1 $at, $f4 +/* 080A50 7F04BF20 3C018005 */ lui $at, %hi(D_80052CF0) +/* 080A54 7F04BF24 C4262CF0 */ lwc1 $f6, %lo(D_80052CF0)($at) +/* 080A58 7F04BF28 460A8482 */ mul.s $f18, $f16, $f10 +/* 080A5C 7F04BF2C 27A40038 */ addiu $a0, $sp, 0x38 +/* 080A60 7F04BF30 26050020 */ addiu $a1, $s0, 0x20 +/* 080A64 7F04BF34 46049202 */ mul.s $f8, $f18, $f4 +/* 080A68 7F04BF38 46064401 */ sub.s $f16, $f8, $f6 +/* 080A6C 7F04BF3C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 080A70 7F04BF40 E7B00040 */ swc1 $f16, 0x40($sp) +/* 080A74 7F04BF44 8E0C0000 */ lw $t4, ($s0) +/* 080A78 7F04BF48 8FA20054 */ lw $v0, 0x54($sp) +/* 080A7C 7F04BF4C 358D0001 */ ori $t5, $t4, 1 +/* 080A80 7F04BF50 AE0D0000 */ sw $t5, ($s0) +/* 080A84 7F04BF54 C44A0000 */ lwc1 $f10, ($v0) +/* 080A88 7F04BF58 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 080A8C 7F04BF5C C4520004 */ lwc1 $f18, 4($v0) +/* 080A90 7F04BF60 E7B20048 */ swc1 $f18, 0x48($sp) +/* 080A94 7F04BF64 C4440008 */ lwc1 $f4, 8($v0) +/* 080A98 7F04BF68 0FC1E111 */ jal sub_GAME_7F078444 +/* 080A9C 7F04BF6C E7A4004C */ swc1 $f4, 0x4c($sp) +/* 080AA0 7F04BF70 00402025 */ move $a0, $v0 +/* 080AA4 7F04BF74 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 080AA8 7F04BF78 27A50044 */ addiu $a1, $sp, 0x44 +/* 080AAC 7F04BF7C 3C018005 */ lui $at, %hi(D_80052CF4) +/* 080AB0 7F04BF80 C4202CF4 */ lwc1 $f0, %lo(D_80052CF4)($at) +/* 080AB4 7F04BF84 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 080AB8 7F04BF88 C6080004 */ lwc1 $f8, 4($s0) +/* 080ABC 7F04BF8C C612000C */ lwc1 $f18, 0xc($s0) +/* 080AC0 7F04BF90 46060402 */ mul.s $f16, $f0, $f6 +/* 080AC4 7F04BF94 46104280 */ add.s $f10, $f8, $f16 +/* 080AC8 7F04BF98 E60A0004 */ swc1 $f10, 4($s0) +/* 080ACC 7F04BF9C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 080AD0 7F04BFA0 46040182 */ mul.s $f6, $f0, $f4 +/* 080AD4 7F04BFA4 46069200 */ add.s $f8, $f18, $f6 +/* 080AD8 7F04BFA8 0FC225E6 */ jal get_curplayer_positiondata +/* 080ADC 7F04BFAC E608000C */ swc1 $f8, 0xc($s0) +/* 080AE0 7F04BFB0 24190001 */ li $t9, 1 +/* 080AE4 7F04BFB4 AE020088 */ sw $v0, 0x88($s0) +/* 080AE8 7F04BFB8 AE190090 */ sw $t9, 0x90($s0) +/* 080AEC 7F04BFBC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04BFC0: +/* 080AF0 7F04BFC0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 080AF4 7F04BFC4 8FB00020 */ lw $s0, 0x20($sp) +/* 080AF8 7F04BFC8 03E00008 */ jr $ra +/* 080AFC 7F04BFCC 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04BFD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04BFD0 +/* 080B00 7F04BFD0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 080B04 7F04BFD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 080B08 7F04BFD8 8C82001C */ lw $v0, 0x1c($a0) +/* 080B0C 7F04BFDC 50400016 */ beql $v0, $zero, .L7F04C038 +/* 080B10 7F04BFE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B14 7F04BFE4 8C820004 */ lw $v0, 4($a0) +/* 080B18 7F04BFE8 AFA50024 */ sw $a1, 0x24($sp) +/* 080B1C 7F04BFEC 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 080B20 7F04BFF0 AFA20018 */ sw $v0, 0x18($sp) +/* 080B24 7F04BFF4 8FA20018 */ lw $v0, 0x18($sp) +/* 080B28 7F04BFF8 8FA50024 */ lw $a1, 0x24($sp) +/* 080B2C 7F04BFFC 8C430064 */ lw $v1, 0x64($v0) +/* 080B30 7F04C000 306E0040 */ andi $t6, $v1, 0x40 +/* 080B34 7F04C004 11C00007 */ beqz $t6, .L7F04C024 +/* 080B38 7F04C008 30780080 */ andi $t8, $v1, 0x80 +/* 080B3C 7F04C00C 8C4F006C */ lw $t7, 0x6c($v0) +/* 080B40 7F04C010 8DE40044 */ lw $a0, 0x44($t7) +/* 080B44 7F04C014 10800003 */ beqz $a0, .L7F04C024 +/* 080B48 7F04C018 00000000 */ nop +/* 080B4C 7F04C01C 10000005 */ b .L7F04C034 +/* 080B50 7F04C020 AC8500B8 */ sw $a1, 0xb8($a0) +.L7F04C024: +/* 080B54 7F04C024 53000004 */ beql $t8, $zero, .L7F04C038 +/* 080B58 7F04C028 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B5C 7F04C02C 8C59006C */ lw $t9, 0x6c($v0) +/* 080B60 7F04C030 AF2500B8 */ sw $a1, 0xb8($t9) +.L7F04C034: +/* 080B64 7F04C034 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C038: +/* 080B68 7F04C038 27BD0020 */ addiu $sp, $sp, 0x20 +/* 080B6C 7F04C03C 03E00008 */ jr $ra +/* 080B70 7F04C040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04C044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04C044 +/* 080B74 7F04C044 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 080B78 7F04C048 AFBF0014 */ sw $ra, 0x14($sp) +/* 080B7C 7F04C04C 8C86001C */ lw $a2, 0x1c($a0) +/* 080B80 7F04C050 00802825 */ move $a1, $a0 +/* 080B84 7F04C054 50C00033 */ beql $a2, $zero, .L7F04C124 +/* 080B88 7F04C058 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B8C 7F04C05C 8C820004 */ lw $v0, 4($a0) +/* 080B90 7F04C060 8C4E0014 */ lw $t6, 0x14($v0) +/* 080B94 7F04C064 AFA60024 */ sw $a2, 0x24($sp) +/* 080B98 7F04C068 AFA50028 */ sw $a1, 0x28($sp) +/* 080B9C 7F04C06C AFA20020 */ sw $v0, 0x20($sp) +/* 080BA0 7F04C070 0FC0E974 */ jal sub_GAME_7F03A5D0 +/* 080BA4 7F04C074 AFAE001C */ sw $t6, 0x1c($sp) +/* 080BA8 7F04C078 8FAF001C */ lw $t7, 0x1c($sp) +/* 080BAC 7F04C07C 8FA20020 */ lw $v0, 0x20($sp) +/* 080BB0 7F04C080 8FA60024 */ lw $a2, 0x24($sp) +/* 080BB4 7F04C084 8FA50028 */ lw $a1, 0x28($sp) +/* 080BB8 7F04C088 ADE0001C */ sw $zero, 0x1c($t7) +/* 080BBC 7F04C08C 8C580064 */ lw $t8, 0x64($v0) +/* 080BC0 7F04C090 3C01FFF7 */ lui $at, (0xFFF7FFFF >> 16) # lui $at, 0xfff7 +/* 080BC4 7F04C094 3421FFFF */ ori $at, (0xFFF7FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 080BC8 7F04C098 0301C824 */ and $t9, $t8, $at +/* 080BCC 7F04C09C AC590064 */ sw $t9, 0x64($v0) +/* 080BD0 7F04C0A0 90C30000 */ lbu $v1, ($a2) +/* 080BD4 7F04C0A4 24010003 */ li $at, 3 +/* 080BD8 7F04C0A8 10610003 */ beq $v1, $at, .L7F04C0B8 +/* 080BDC 7F04C0AC 24010006 */ li $at, 6 +/* 080BE0 7F04C0B0 5461001C */ bnel $v1, $at, .L7F04C124 +/* 080BE4 7F04C0B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C0B8: +/* 080BE8 7F04C0B8 8CC40004 */ lw $a0, 4($a2) +/* 080BEC 7F04C0BC 50800019 */ beql $a0, $zero, .L7F04C124 +/* 080BF0 7F04C0C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 080BF4 7F04C0C4 8C8801D8 */ lw $t0, 0x1d8($a0) +/* 080BF8 7F04C0C8 54A80004 */ bnel $a1, $t0, .L7F04C0DC +/* 080BFC 7F04C0CC 8C890160 */ lw $t1, 0x160($a0) +/* 080C00 7F04C0D0 10000013 */ b .L7F04C120 +/* 080C04 7F04C0D4 AC8001D8 */ sw $zero, 0x1d8($a0) +/* 080C08 7F04C0D8 8C890160 */ lw $t1, 0x160($a0) +.L7F04C0DC: +/* 080C0C 7F04C0DC 00003025 */ move $a2, $zero +/* 080C10 7F04C0E0 54A90008 */ bnel $a1, $t1, .L7F04C104 +/* 080C14 7F04C0E4 8C8A0164 */ lw $t2, 0x164($a0) +/* 080C18 7F04C0E8 00002825 */ move $a1, $zero +/* 080C1C 7F04C0EC 0FC0B446 */ jal sub_GAME_7F02D118 +/* 080C20 7F04C0F0 AFA40018 */ sw $a0, 0x18($sp) +/* 080C24 7F04C0F4 8FA40018 */ lw $a0, 0x18($sp) +/* 080C28 7F04C0F8 10000009 */ b .L7F04C120 +/* 080C2C 7F04C0FC AC800160 */ sw $zero, 0x160($a0) +/* 080C30 7F04C100 8C8A0164 */ lw $t2, 0x164($a0) +.L7F04C104: +/* 080C34 7F04C104 00003025 */ move $a2, $zero +/* 080C38 7F04C108 14AA0005 */ bne $a1, $t2, .L7F04C120 +/* 080C3C 7F04C10C 24050001 */ li $a1, 1 +/* 080C40 7F04C110 0FC0B446 */ jal sub_GAME_7F02D118 +/* 080C44 7F04C114 AFA40018 */ sw $a0, 0x18($sp) +/* 080C48 7F04C118 8FA40018 */ lw $a0, 0x18($sp) +/* 080C4C 7F04C11C AC800164 */ sw $zero, 0x164($a0) +.L7F04C120: +/* 080C50 7F04C120 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C124: +/* 080C54 7F04C124 27BD0028 */ addiu $sp, $sp, 0x28 +/* 080C58 7F04C128 03E00008 */ jr $ra +/* 080C5C 7F04C12C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04C130(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052CF8 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CFC +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D00 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D08 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D10 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D14 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D18 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D1C +.word 0x41555555 /*13.333333*/ +glabel D_80052D20 +.word 0x40d55555 /*6.6666665*/ +glabel D_80052D24 +.word 0x41555555 /*13.333333*/ +glabel D_80052D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D2C +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D34 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D38 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D3C +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D40 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D44 +.word 0x40555555 /*3.3333333*/ +glabel D_80052D48 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D4C +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D50 +.word 0x40555555 /*3.3333333*/ +glabel D_80052D54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D58 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80052D5C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D60 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80052D64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D68 +.word 0x3dc90fdb /*0.098174773*/ +.text +glabel sub_GAME_7F04C130 +/* 080C60 7F04C130 27BDFEF8 */ addiu $sp, $sp, -0x108 +/* 080C64 7F04C134 AFBF003C */ sw $ra, 0x3c($sp) +/* 080C68 7F04C138 AFB20038 */ sw $s2, 0x38($sp) +/* 080C6C 7F04C13C AFB10034 */ sw $s1, 0x34($sp) +/* 080C70 7F04C140 AFB00030 */ sw $s0, 0x30($sp) +/* 080C74 7F04C144 AFA40108 */ sw $a0, 0x108($sp) +/* 080C78 7F04C148 8C8F001C */ lw $t7, 0x1c($a0) +/* 080C7C 7F04C14C AFAF0104 */ sw $t7, 0x104($sp) +/* 080C80 7F04C150 8C920004 */ lw $s2, 4($a0) +/* 080C84 7F04C154 8E580064 */ lw $t8, 0x64($s2) +/* 080C88 7F04C158 33190040 */ andi $t9, $t8, 0x40 +/* 080C8C 7F04C15C 5320000F */ beql $t9, $zero, .L7F04C19C +/* 080C90 7F04C160 8FAC0104 */ lw $t4, 0x104($sp) +/* 080C94 7F04C164 8E44006C */ lw $a0, 0x6c($s2) +/* 080C98 7F04C168 8C820044 */ lw $v0, 0x44($a0) +/* 080C9C 7F04C16C 5040000B */ beql $v0, $zero, .L7F04C19C +/* 080CA0 7F04C170 8FAC0104 */ lw $t4, 0x104($sp) +/* 080CA4 7F04C174 0FC0FFA2 */ jal sub_GAME_7F03FE88 +/* 080CA8 7F04C178 00408025 */ move $s0, $v0 +/* 080CAC 7F04C17C 8E480064 */ lw $t0, 0x64($s2) +/* 080CB0 7F04C180 2401FFBF */ li $at, -65 +/* 080CB4 7F04C184 AE50006C */ sw $s0, 0x6c($s2) +/* 080CB8 7F04C188 01014824 */ and $t1, $t0, $at +/* 080CBC 7F04C18C AE490064 */ sw $t1, 0x64($s2) +/* 080CC0 7F04C190 352B0080 */ ori $t3, $t1, 0x80 +/* 080CC4 7F04C194 AE4B0064 */ sw $t3, 0x64($s2) +/* 080CC8 7F04C198 8FAC0104 */ lw $t4, 0x104($sp) +.L7F04C19C: +/* 080CCC 7F04C19C 00001025 */ move $v0, $zero +/* 080CD0 7F04C1A0 11800222 */ beqz $t4, .L7F04CA2C +/* 080CD4 7F04C1A4 00000000 */ nop +/* 080CD8 7F04C1A8 8E4D0064 */ lw $t5, 0x64($s2) +/* 080CDC 7F04C1AC 31AF0080 */ andi $t7, $t5, 0x80 +/* 080CE0 7F04C1B0 11E0021E */ beqz $t7, .L7F04CA2C +/* 080CE4 7F04C1B4 00000000 */ nop +/* 080CE8 7F04C1B8 8E4E0014 */ lw $t6, 0x14($s2) +/* 080CEC 7F04C1BC 24010002 */ li $at, 2 +/* 080CF0 7F04C1C0 01808025 */ move $s0, $t4 +/* 080CF4 7F04C1C4 AFAE00F8 */ sw $t6, 0xf8($sp) +/* 080CF8 7F04C1C8 8E51006C */ lw $s1, 0x6c($s2) +/* 080CFC 7F04C1CC 8E380000 */ lw $t8, ($s1) +/* 080D00 7F04C1D0 8E2200B8 */ lw $v0, 0xb8($s1) +/* 080D04 7F04C1D4 37190001 */ ori $t9, $t8, 1 +/* 080D08 7F04C1D8 AE390000 */ sw $t9, ($s1) +/* 080D0C 7F04C1DC 8FA80104 */ lw $t0, 0x104($sp) +/* 080D10 7F04C1E0 1441007A */ bne $v0, $at, .L7F04C3CC +/* 080D14 7F04C1E4 AE280088 */ sw $t0, 0x88($s1) +/* 080D18 7F04C1E8 8FA90104 */ lw $t1, 0x104($sp) +/* 080D1C 7F04C1EC 24030003 */ li $v1, 3 +/* 080D20 7F04C1F0 3C0D8003 */ lui $t5, %hi(D_8003201C) +/* 080D24 7F04C1F4 912A0000 */ lbu $t2, ($t1) +/* 080D28 7F04C1F8 25AD201C */ addiu $t5, %lo(D_8003201C) # addiu $t5, $t5, 0x201c +/* 080D2C 7F04C1FC 27AB0098 */ addiu $t3, $sp, 0x98 +/* 080D30 7F04C200 546A0073 */ bnel $v1, $t2, .L7F04C3D0 +/* 080D34 7F04C204 24030003 */ li $v1, 3 +/* 080D38 7F04C208 8D220004 */ lw $v0, 4($t1) +/* 080D3C 7F04C20C 8DA10000 */ lw $at, ($t5) +/* 080D40 7F04C210 8DAE0004 */ lw $t6, 4($t5) +/* 080D44 7F04C214 8C44001C */ lw $a0, 0x1c($v0) +/* 080D48 7F04C218 AD610000 */ sw $at, ($t3) +/* 080D4C 7F04C21C 8DA10008 */ lw $at, 8($t5) +/* 080D50 7F04C220 AD6E0004 */ sw $t6, 4($t3) +/* 080D54 7F04C224 0FC1B320 */ jal getsubroty +/* 080D58 7F04C228 AD610008 */ sw $at, 8($t3) +/* 080D5C 7F04C22C E7A00094 */ swc1 $f0, 0x94($sp) +/* 080D60 7F04C230 0FC15FAB */ jal sinf +/* 080D64 7F04C234 46000306 */ mov.s $f12, $f0 +/* 080D68 7F04C238 3C018005 */ lui $at, %hi(D_80052CF8) +/* 080D6C 7F04C23C C4242CF8 */ lwc1 $f4, %lo(D_80052CF8)($at) +/* 080D70 7F04C240 46040182 */ mul.s $f6, $f0, $f4 +/* 080D74 7F04C244 0C002914 */ jal get_random_value +/* 080D78 7F04C248 E6260004 */ swc1 $f6, 4($s1) +/* 080D7C 7F04C24C 44824000 */ mtc1 $v0, $f8 +/* 080D80 7F04C250 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080D84 7F04C254 04410004 */ bgez $v0, .L7F04C268 +/* 080D88 7F04C258 468042A0 */ cvt.s.w $f10, $f8 +/* 080D8C 7F04C25C 44818000 */ mtc1 $at, $f16 +/* 080D90 7F04C260 00000000 */ nop +/* 080D94 7F04C264 46105280 */ add.s $f10, $f10, $f16 +.L7F04C268: +/* 080D98 7F04C268 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080D9C 7F04C26C 44819000 */ mtc1 $at, $f18 +/* 080DA0 7F04C270 3C018005 */ lui $at, %hi(D_80052CFC) +/* 080DA4 7F04C274 C4282CFC */ lwc1 $f8, %lo(D_80052CFC)($at) +/* 080DA8 7F04C278 46125102 */ mul.s $f4, $f10, $f18 +/* 080DAC 7F04C27C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 080DB0 7F04C280 44815000 */ mtc1 $at, $f10 +/* 080DB4 7F04C284 46002187 */ neg.s $f6, $f4 +/* 080DB8 7F04C288 46083402 */ mul.s $f16, $f6, $f8 +/* 080DBC 7F04C28C 00000000 */ nop +/* 080DC0 7F04C290 460A8482 */ mul.s $f18, $f16, $f10 +/* 080DC4 7F04C294 E6320008 */ swc1 $f18, 8($s1) +/* 080DC8 7F04C298 0FC15FA8 */ jal cosf +/* 080DCC 7F04C29C C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 080DD0 7F04C2A0 3C018005 */ lui $at, %hi(D_80052D00) +/* 080DD4 7F04C2A4 C4242D00 */ lwc1 $f4, %lo(D_80052D00)($at) +/* 080DD8 7F04C2A8 46040182 */ mul.s $f6, $f0, $f4 +/* 080DDC 7F04C2AC 0C002914 */ jal get_random_value +/* 080DE0 7F04C2B0 E626000C */ swc1 $f6, 0xc($s1) +/* 080DE4 7F04C2B4 44824000 */ mtc1 $v0, $f8 +/* 080DE8 7F04C2B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080DEC 7F04C2BC 04410004 */ bgez $v0, .L7F04C2D0 +/* 080DF0 7F04C2C0 46804420 */ cvt.s.w $f16, $f8 +/* 080DF4 7F04C2C4 44815000 */ mtc1 $at, $f10 +/* 080DF8 7F04C2C8 00000000 */ nop +/* 080DFC 7F04C2CC 460A8400 */ add.s $f16, $f16, $f10 +.L7F04C2D0: +/* 080E00 7F04C2D0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080E04 7F04C2D4 44819000 */ mtc1 $at, $f18 +/* 080E08 7F04C2D8 3C018005 */ lui $at, %hi(D_80052D04) +/* 080E0C 7F04C2DC C4262D04 */ lwc1 $f6, %lo(D_80052D04)($at) +/* 080E10 7F04C2E0 46128102 */ mul.s $f4, $f16, $f18 +/* 080E14 7F04C2E4 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080E18 7F04C2E8 44815000 */ mtc1 $at, $f10 +/* 080E1C 7F04C2EC 3C018005 */ lui $at, %hi(D_80052D08) +/* 080E20 7F04C2F0 C4322D08 */ lwc1 $f18, %lo(D_80052D08)($at) +/* 080E24 7F04C2F4 46062202 */ mul.s $f8, $f4, $f6 +/* 080E28 7F04C2F8 00000000 */ nop +/* 080E2C 7F04C2FC 460A4402 */ mul.s $f16, $f8, $f10 +/* 080E30 7F04C300 46128101 */ sub.s $f4, $f16, $f18 +/* 080E34 7F04C304 0C002914 */ jal get_random_value +/* 080E38 7F04C308 E7A40098 */ swc1 $f4, 0x98($sp) +/* 080E3C 7F04C30C 44823000 */ mtc1 $v0, $f6 +/* 080E40 7F04C310 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080E44 7F04C314 04410004 */ bgez $v0, .L7F04C328 +/* 080E48 7F04C318 46803220 */ cvt.s.w $f8, $f6 +/* 080E4C 7F04C31C 44815000 */ mtc1 $at, $f10 +/* 080E50 7F04C320 00000000 */ nop +/* 080E54 7F04C324 460A4200 */ add.s $f8, $f8, $f10 +.L7F04C328: +/* 080E58 7F04C328 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080E5C 7F04C32C 44818000 */ mtc1 $at, $f16 +/* 080E60 7F04C330 3C018005 */ lui $at, %hi(D_80052D0C) +/* 080E64 7F04C334 C4242D0C */ lwc1 $f4, %lo(D_80052D0C)($at) +/* 080E68 7F04C338 46104482 */ mul.s $f18, $f8, $f16 +/* 080E6C 7F04C33C 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080E70 7F04C340 44815000 */ mtc1 $at, $f10 +/* 080E74 7F04C344 3C018005 */ lui $at, %hi(D_80052D10) +/* 080E78 7F04C348 C4302D10 */ lwc1 $f16, %lo(D_80052D10)($at) +/* 080E7C 7F04C34C 46049182 */ mul.s $f6, $f18, $f4 +/* 080E80 7F04C350 00000000 */ nop +/* 080E84 7F04C354 460A3202 */ mul.s $f8, $f6, $f10 +/* 080E88 7F04C358 46104481 */ sub.s $f18, $f8, $f16 +/* 080E8C 7F04C35C 0C002914 */ jal get_random_value +/* 080E90 7F04C360 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 080E94 7F04C364 44822000 */ mtc1 $v0, $f4 +/* 080E98 7F04C368 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080E9C 7F04C36C 04410004 */ bgez $v0, .L7F04C380 +/* 080EA0 7F04C370 468021A0 */ cvt.s.w $f6, $f4 +/* 080EA4 7F04C374 44815000 */ mtc1 $at, $f10 +/* 080EA8 7F04C378 00000000 */ nop +/* 080EAC 7F04C37C 460A3180 */ add.s $f6, $f6, $f10 +.L7F04C380: +/* 080EB0 7F04C380 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080EB4 7F04C384 44814000 */ mtc1 $at, $f8 +/* 080EB8 7F04C388 3C018005 */ lui $at, %hi(D_80052D14) +/* 080EBC 7F04C38C C4322D14 */ lwc1 $f18, %lo(D_80052D14)($at) +/* 080EC0 7F04C390 46083402 */ mul.s $f16, $f6, $f8 +/* 080EC4 7F04C394 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080EC8 7F04C398 44815000 */ mtc1 $at, $f10 +/* 080ECC 7F04C39C 3C018005 */ lui $at, %hi(D_80052D18) +/* 080ED0 7F04C3A0 C4282D18 */ lwc1 $f8, %lo(D_80052D18)($at) +/* 080ED4 7F04C3A4 27A40098 */ addiu $a0, $sp, 0x98 +/* 080ED8 7F04C3A8 26250020 */ addiu $a1, $s1, 0x20 +/* 080EDC 7F04C3AC 46128102 */ mul.s $f4, $f16, $f18 +/* 080EE0 7F04C3B0 00000000 */ nop +/* 080EE4 7F04C3B4 460A2182 */ mul.s $f6, $f4, $f10 +/* 080EE8 7F04C3B8 46083401 */ sub.s $f16, $f6, $f8 +/* 080EEC 7F04C3BC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 080EF0 7F04C3C0 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 080EF4 7F04C3C4 1000010C */ b .L7F04C7F8 +/* 080EF8 7F04C3C8 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C3CC: +/* 080EFC 7F04C3CC 24030003 */ li $v1, 3 +.L7F04C3D0: +/* 080F00 7F04C3D0 14620068 */ bne $v1, $v0, .L7F04C574 +/* 080F04 7F04C3D4 8FAC0104 */ lw $t4, 0x104($sp) +/* 080F08 7F04C3D8 91980000 */ lbu $t8, ($t4) +/* 080F0C 7F04C3DC 3C088003 */ lui $t0, %hi(D_80032028) +/* 080F10 7F04C3E0 25082028 */ addiu $t0, %lo(D_80032028) # addiu $t0, $t0, 0x2028 +/* 080F14 7F04C3E4 14780063 */ bne $v1, $t8, .L7F04C574 +/* 080F18 7F04C3E8 27B90080 */ addiu $t9, $sp, 0x80 +/* 080F1C 7F04C3EC 8D820004 */ lw $v0, 4($t4) +/* 080F20 7F04C3F0 8D010000 */ lw $at, ($t0) +/* 080F24 7F04C3F4 8D090004 */ lw $t1, 4($t0) +/* 080F28 7F04C3F8 8C44001C */ lw $a0, 0x1c($v0) +/* 080F2C 7F04C3FC AF210000 */ sw $at, ($t9) +/* 080F30 7F04C400 8D010008 */ lw $at, 8($t0) +/* 080F34 7F04C404 AF290004 */ sw $t1, 4($t9) +/* 080F38 7F04C408 0FC1B320 */ jal getsubroty +/* 080F3C 7F04C40C AF210008 */ sw $at, 8($t9) +/* 080F40 7F04C410 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 080F44 7F04C414 0FC15FAB */ jal sinf +/* 080F48 7F04C418 46000306 */ mov.s $f12, $f0 +/* 080F4C 7F04C41C 3C018005 */ lui $at, %hi(D_80052D1C) +/* 080F50 7F04C420 C4322D1C */ lwc1 $f18, %lo(D_80052D1C)($at) +/* 080F54 7F04C424 3C018005 */ lui $at, %hi(D_80052D20) +/* 080F58 7F04C428 46120102 */ mul.s $f4, $f0, $f18 +/* 080F5C 7F04C42C E6240004 */ swc1 $f4, 4($s1) +/* 080F60 7F04C430 C42A2D20 */ lwc1 $f10, %lo(D_80052D20)($at) +/* 080F64 7F04C434 E62A0008 */ swc1 $f10, 8($s1) +/* 080F68 7F04C438 0FC15FA8 */ jal cosf +/* 080F6C 7F04C43C C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 080F70 7F04C440 3C018005 */ lui $at, %hi(D_80052D24) +/* 080F74 7F04C444 C4262D24 */ lwc1 $f6, %lo(D_80052D24)($at) +/* 080F78 7F04C448 46060202 */ mul.s $f8, $f0, $f6 +/* 080F7C 7F04C44C 0C002914 */ jal get_random_value +/* 080F80 7F04C450 E628000C */ swc1 $f8, 0xc($s1) +/* 080F84 7F04C454 44828000 */ mtc1 $v0, $f16 +/* 080F88 7F04C458 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080F8C 7F04C45C 04410004 */ bgez $v0, .L7F04C470 +/* 080F90 7F04C460 468084A0 */ cvt.s.w $f18, $f16 +/* 080F94 7F04C464 44812000 */ mtc1 $at, $f4 +/* 080F98 7F04C468 00000000 */ nop +/* 080F9C 7F04C46C 46049480 */ add.s $f18, $f18, $f4 +.L7F04C470: +/* 080FA0 7F04C470 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080FA4 7F04C474 44815000 */ mtc1 $at, $f10 +/* 080FA8 7F04C478 3C018005 */ lui $at, %hi(D_80052D28) +/* 080FAC 7F04C47C C4282D28 */ lwc1 $f8, %lo(D_80052D28)($at) +/* 080FB0 7F04C480 460A9182 */ mul.s $f6, $f18, $f10 +/* 080FB4 7F04C484 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080FB8 7F04C488 44812000 */ mtc1 $at, $f4 +/* 080FBC 7F04C48C 3C018005 */ lui $at, %hi(D_80052D2C) +/* 080FC0 7F04C490 C42A2D2C */ lwc1 $f10, %lo(D_80052D2C)($at) +/* 080FC4 7F04C494 46083402 */ mul.s $f16, $f6, $f8 +/* 080FC8 7F04C498 00000000 */ nop +/* 080FCC 7F04C49C 46048482 */ mul.s $f18, $f16, $f4 +/* 080FD0 7F04C4A0 460A9181 */ sub.s $f6, $f18, $f10 +/* 080FD4 7F04C4A4 0C002914 */ jal get_random_value +/* 080FD8 7F04C4A8 E7A60080 */ swc1 $f6, 0x80($sp) +/* 080FDC 7F04C4AC 44824000 */ mtc1 $v0, $f8 +/* 080FE0 7F04C4B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080FE4 7F04C4B4 04410004 */ bgez $v0, .L7F04C4C8 +/* 080FE8 7F04C4B8 46804420 */ cvt.s.w $f16, $f8 +/* 080FEC 7F04C4BC 44812000 */ mtc1 $at, $f4 +/* 080FF0 7F04C4C0 00000000 */ nop +/* 080FF4 7F04C4C4 46048400 */ add.s $f16, $f16, $f4 +.L7F04C4C8: +/* 080FF8 7F04C4C8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080FFC 7F04C4CC 44819000 */ mtc1 $at, $f18 +/* 081000 7F04C4D0 3C018005 */ lui $at, %hi(D_80052D30) +/* 081004 7F04C4D4 C4262D30 */ lwc1 $f6, %lo(D_80052D30)($at) +/* 081008 7F04C4D8 46128282 */ mul.s $f10, $f16, $f18 +/* 08100C 7F04C4DC 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 081010 7F04C4E0 44812000 */ mtc1 $at, $f4 +/* 081014 7F04C4E4 3C018005 */ lui $at, %hi(D_80052D34) +/* 081018 7F04C4E8 C4322D34 */ lwc1 $f18, %lo(D_80052D34)($at) +/* 08101C 7F04C4EC 46065202 */ mul.s $f8, $f10, $f6 +/* 081020 7F04C4F0 00000000 */ nop +/* 081024 7F04C4F4 46044402 */ mul.s $f16, $f8, $f4 +/* 081028 7F04C4F8 46128281 */ sub.s $f10, $f16, $f18 +/* 08102C 7F04C4FC 0C002914 */ jal get_random_value +/* 081030 7F04C500 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 081034 7F04C504 44823000 */ mtc1 $v0, $f6 +/* 081038 7F04C508 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08103C 7F04C50C 04410004 */ bgez $v0, .L7F04C520 +/* 081040 7F04C510 46803220 */ cvt.s.w $f8, $f6 +/* 081044 7F04C514 44812000 */ mtc1 $at, $f4 +/* 081048 7F04C518 00000000 */ nop +/* 08104C 7F04C51C 46044200 */ add.s $f8, $f8, $f4 +.L7F04C520: +/* 081050 7F04C520 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081054 7F04C524 44818000 */ mtc1 $at, $f16 +/* 081058 7F04C528 3C018005 */ lui $at, %hi(D_80052D38) +/* 08105C 7F04C52C C42A2D38 */ lwc1 $f10, %lo(D_80052D38)($at) +/* 081060 7F04C530 46104482 */ mul.s $f18, $f8, $f16 +/* 081064 7F04C534 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 081068 7F04C538 44812000 */ mtc1 $at, $f4 +/* 08106C 7F04C53C 3C018005 */ lui $at, %hi(D_80052D3C) +/* 081070 7F04C540 C4302D3C */ lwc1 $f16, %lo(D_80052D3C)($at) +/* 081074 7F04C544 27A40080 */ addiu $a0, $sp, 0x80 +/* 081078 7F04C548 26250020 */ addiu $a1, $s1, 0x20 +/* 08107C 7F04C54C 460A9182 */ mul.s $f6, $f18, $f10 +/* 081080 7F04C550 00000000 */ nop +/* 081084 7F04C554 46043202 */ mul.s $f8, $f6, $f4 +/* 081088 7F04C558 46104481 */ sub.s $f18, $f8, $f16 +/* 08108C 7F04C55C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 081090 7F04C560 E7B20088 */ swc1 $f18, 0x88($sp) +/* 081094 7F04C564 8E2F0000 */ lw $t7, ($s1) +/* 081098 7F04C568 35EB0040 */ ori $t3, $t7, 0x40 +/* 08109C 7F04C56C 100000A1 */ b .L7F04C7F4 +/* 0810A0 7F04C570 AE2B0000 */ sw $t3, ($s1) +.L7F04C574: +/* 0810A4 7F04C574 24010004 */ li $at, 4 +/* 0810A8 7F04C578 1441009C */ bne $v0, $at, .L7F04C7EC +/* 0810AC 7F04C57C 26240004 */ addiu $a0, $s1, 4 +/* 0810B0 7F04C580 3C0E8003 */ lui $t6, %hi(D_80032034) +/* 0810B4 7F04C584 25CE2034 */ addiu $t6, %lo(D_80032034) # addiu $t6, $t6, 0x2034 +/* 0810B8 7F04C588 8DC10000 */ lw $at, ($t6) +/* 0810BC 7F04C58C 27AD0070 */ addiu $t5, $sp, 0x70 +/* 0810C0 7F04C590 8DCC0004 */ lw $t4, 4($t6) +/* 0810C4 7F04C594 ADA10000 */ sw $at, ($t5) +/* 0810C8 7F04C598 8DC10008 */ lw $at, 8($t6) +/* 0810CC 7F04C59C ADAC0004 */ sw $t4, 4($t5) +/* 0810D0 7F04C5A0 0FC225E6 */ jal get_curplayer_positiondata +/* 0810D4 7F04C5A4 ADA10008 */ sw $at, 8($t5) +/* 0810D8 7F04C5A8 8FAA0104 */ lw $t2, 0x104($sp) +/* 0810DC 7F04C5AC C4460008 */ lwc1 $f6, 8($v0) +/* 0810E0 7F04C5B0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0810E4 7F04C5B4 C54A0008 */ lwc1 $f10, 8($t2) +/* 0810E8 7F04C5B8 C5440010 */ lwc1 $f4, 0x10($t2) +/* 0810EC 7F04C5BC 46065301 */ sub.s $f12, $f10, $f6 +/* 0810F0 7F04C5C0 0FC16A8C */ jal atan2f +/* 0810F4 7F04C5C4 46082381 */ sub.s $f14, $f4, $f8 +/* 0810F8 7F04C5C8 0C002914 */ jal get_random_value +/* 0810FC 7F04C5CC E7A00060 */ swc1 $f0, 0x60($sp) +/* 081100 7F04C5D0 AFA20050 */ sw $v0, 0x50($sp) +/* 081104 7F04C5D4 0FC15FAB */ jal sinf +/* 081108 7F04C5D8 C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 08110C 7F04C5DC 8FB90050 */ lw $t9, 0x50($sp) +/* 081110 7F04C5E0 44998000 */ mtc1 $t9, $f16 +/* 081114 7F04C5E4 07210005 */ bgez $t9, .L7F04C5FC +/* 081118 7F04C5E8 468084A0 */ cvt.s.w $f18, $f16 +/* 08111C 7F04C5EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081120 7F04C5F0 44815000 */ mtc1 $at, $f10 +/* 081124 7F04C5F4 00000000 */ nop +/* 081128 7F04C5F8 460A9480 */ add.s $f18, $f18, $f10 +.L7F04C5FC: +/* 08112C 7F04C5FC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081130 7F04C600 44813000 */ mtc1 $at, $f6 +/* 081134 7F04C604 3C018005 */ lui $at, %hi(D_80052D40) +/* 081138 7F04C608 C4282D40 */ lwc1 $f8, %lo(D_80052D40)($at) +/* 08113C 7F04C60C 46069102 */ mul.s $f4, $f18, $f6 +/* 081140 7F04C610 3C018005 */ lui $at, %hi(D_80052D44) +/* 081144 7F04C614 C42A2D44 */ lwc1 $f10, %lo(D_80052D44)($at) +/* 081148 7F04C618 46082082 */ mul.s $f2, $f4, $f8 +/* 08114C 7F04C61C 46021400 */ add.s $f16, $f2, $f2 +/* 081150 7F04C620 460A8480 */ add.s $f18, $f16, $f10 +/* 081154 7F04C624 46120182 */ mul.s $f6, $f0, $f18 +/* 081158 7F04C628 0C002914 */ jal get_random_value +/* 08115C 7F04C62C E6260004 */ swc1 $f6, 4($s1) +/* 081160 7F04C630 44822000 */ mtc1 $v0, $f4 +/* 081164 7F04C634 04410005 */ bgez $v0, .L7F04C64C +/* 081168 7F04C638 46802220 */ cvt.s.w $f8, $f4 +/* 08116C 7F04C63C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081170 7F04C640 44818000 */ mtc1 $at, $f16 +/* 081174 7F04C644 00000000 */ nop +/* 081178 7F04C648 46104200 */ add.s $f8, $f8, $f16 +.L7F04C64C: +/* 08117C 7F04C64C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081180 7F04C650 44815000 */ mtc1 $at, $f10 +/* 081184 7F04C654 3C018005 */ lui $at, %hi(D_80052D48) +/* 081188 7F04C658 C4262D48 */ lwc1 $f6, %lo(D_80052D48)($at) +/* 08118C 7F04C65C 460A4482 */ mul.s $f18, $f8, $f10 +/* 081190 7F04C660 00000000 */ nop +/* 081194 7F04C664 46069002 */ mul.s $f0, $f18, $f6 +/* 081198 7F04C668 46000100 */ add.s $f4, $f0, $f0 +/* 08119C 7F04C66C 0C002914 */ jal get_random_value +/* 0811A0 7F04C670 E6240008 */ swc1 $f4, 8($s1) +/* 0811A4 7F04C674 AFA20050 */ sw $v0, 0x50($sp) +/* 0811A8 7F04C678 0FC15FA8 */ jal cosf +/* 0811AC 7F04C67C C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 0811B0 7F04C680 8FA80050 */ lw $t0, 0x50($sp) +/* 0811B4 7F04C684 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0811B8 7F04C688 44888000 */ mtc1 $t0, $f16 +/* 0811BC 7F04C68C 05010004 */ bgez $t0, .L7F04C6A0 +/* 0811C0 7F04C690 46808220 */ cvt.s.w $f8, $f16 +/* 0811C4 7F04C694 44815000 */ mtc1 $at, $f10 +/* 0811C8 7F04C698 00000000 */ nop +/* 0811CC 7F04C69C 460A4200 */ add.s $f8, $f8, $f10 +.L7F04C6A0: +/* 0811D0 7F04C6A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0811D4 7F04C6A4 44819000 */ mtc1 $at, $f18 +/* 0811D8 7F04C6A8 3C018005 */ lui $at, %hi(D_80052D4C) +/* 0811DC 7F04C6AC C4242D4C */ lwc1 $f4, %lo(D_80052D4C)($at) +/* 0811E0 7F04C6B0 46124182 */ mul.s $f6, $f8, $f18 +/* 0811E4 7F04C6B4 3C018005 */ lui $at, %hi(D_80052D50) +/* 0811E8 7F04C6B8 C42A2D50 */ lwc1 $f10, %lo(D_80052D50)($at) +/* 0811EC 7F04C6BC 46043082 */ mul.s $f2, $f6, $f4 +/* 0811F0 7F04C6C0 46021400 */ add.s $f16, $f2, $f2 +/* 0811F4 7F04C6C4 460A8200 */ add.s $f8, $f16, $f10 +/* 0811F8 7F04C6C8 46080482 */ mul.s $f18, $f0, $f8 +/* 0811FC 7F04C6CC 0C002914 */ jal get_random_value +/* 081200 7F04C6D0 E632000C */ swc1 $f18, 0xc($s1) +/* 081204 7F04C6D4 44823000 */ mtc1 $v0, $f6 +/* 081208 7F04C6D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08120C 7F04C6DC 04410004 */ bgez $v0, .L7F04C6F0 +/* 081210 7F04C6E0 46803120 */ cvt.s.w $f4, $f6 +/* 081214 7F04C6E4 44818000 */ mtc1 $at, $f16 +/* 081218 7F04C6E8 00000000 */ nop +/* 08121C 7F04C6EC 46102100 */ add.s $f4, $f4, $f16 +.L7F04C6F0: +/* 081220 7F04C6F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081224 7F04C6F4 44815000 */ mtc1 $at, $f10 +/* 081228 7F04C6F8 3C018005 */ lui $at, %hi(D_80052D54) +/* 08122C 7F04C6FC C4322D54 */ lwc1 $f18, %lo(D_80052D54)($at) +/* 081230 7F04C700 460A2202 */ mul.s $f8, $f4, $f10 +/* 081234 7F04C704 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 081238 7F04C708 44818000 */ mtc1 $at, $f16 +/* 08123C 7F04C70C 3C018005 */ lui $at, %hi(D_80052D58) +/* 081240 7F04C710 C42A2D58 */ lwc1 $f10, %lo(D_80052D58)($at) +/* 081244 7F04C714 46124182 */ mul.s $f6, $f8, $f18 +/* 081248 7F04C718 00000000 */ nop +/* 08124C 7F04C71C 46103102 */ mul.s $f4, $f6, $f16 +/* 081250 7F04C720 460A2201 */ sub.s $f8, $f4, $f10 +/* 081254 7F04C724 0C002914 */ jal get_random_value +/* 081258 7F04C728 E7A80070 */ swc1 $f8, 0x70($sp) +/* 08125C 7F04C72C 44829000 */ mtc1 $v0, $f18 +/* 081260 7F04C730 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081264 7F04C734 04410004 */ bgez $v0, .L7F04C748 +/* 081268 7F04C738 468091A0 */ cvt.s.w $f6, $f18 +/* 08126C 7F04C73C 44818000 */ mtc1 $at, $f16 +/* 081270 7F04C740 00000000 */ nop +/* 081274 7F04C744 46103180 */ add.s $f6, $f6, $f16 +.L7F04C748: +/* 081278 7F04C748 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08127C 7F04C74C 44812000 */ mtc1 $at, $f4 +/* 081280 7F04C750 3C018005 */ lui $at, %hi(D_80052D5C) +/* 081284 7F04C754 C4282D5C */ lwc1 $f8, %lo(D_80052D5C)($at) +/* 081288 7F04C758 46043282 */ mul.s $f10, $f6, $f4 +/* 08128C 7F04C75C 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 081290 7F04C760 44818000 */ mtc1 $at, $f16 +/* 081294 7F04C764 3C018005 */ lui $at, %hi(D_80052D60) +/* 081298 7F04C768 C4242D60 */ lwc1 $f4, %lo(D_80052D60)($at) +/* 08129C 7F04C76C 46085482 */ mul.s $f18, $f10, $f8 +/* 0812A0 7F04C770 00000000 */ nop +/* 0812A4 7F04C774 46109182 */ mul.s $f6, $f18, $f16 +/* 0812A8 7F04C778 46043281 */ sub.s $f10, $f6, $f4 +/* 0812AC 7F04C77C 0C002914 */ jal get_random_value +/* 0812B0 7F04C780 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0812B4 7F04C784 44824000 */ mtc1 $v0, $f8 +/* 0812B8 7F04C788 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0812BC 7F04C78C 04410004 */ bgez $v0, .L7F04C7A0 +/* 0812C0 7F04C790 468044A0 */ cvt.s.w $f18, $f8 +/* 0812C4 7F04C794 44818000 */ mtc1 $at, $f16 +/* 0812C8 7F04C798 00000000 */ nop +/* 0812CC 7F04C79C 46109480 */ add.s $f18, $f18, $f16 +.L7F04C7A0: +/* 0812D0 7F04C7A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0812D4 7F04C7A4 44813000 */ mtc1 $at, $f6 +/* 0812D8 7F04C7A8 3C018005 */ lui $at, %hi(D_80052D64) +/* 0812DC 7F04C7AC C42A2D64 */ lwc1 $f10, %lo(D_80052D64)($at) +/* 0812E0 7F04C7B0 46069102 */ mul.s $f4, $f18, $f6 +/* 0812E4 7F04C7B4 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 0812E8 7F04C7B8 44818000 */ mtc1 $at, $f16 +/* 0812EC 7F04C7BC 3C018005 */ lui $at, %hi(D_80052D68) +/* 0812F0 7F04C7C0 C4262D68 */ lwc1 $f6, %lo(D_80052D68)($at) +/* 0812F4 7F04C7C4 27A40070 */ addiu $a0, $sp, 0x70 +/* 0812F8 7F04C7C8 26250020 */ addiu $a1, $s1, 0x20 +/* 0812FC 7F04C7CC 460A2202 */ mul.s $f8, $f4, $f10 +/* 081300 7F04C7D0 00000000 */ nop +/* 081304 7F04C7D4 46104482 */ mul.s $f18, $f8, $f16 +/* 081308 7F04C7D8 46069101 */ sub.s $f4, $f18, $f6 +/* 08130C 7F04C7DC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 081310 7F04C7E0 E7A40078 */ swc1 $f4, 0x78($sp) +/* 081314 7F04C7E4 10000004 */ b .L7F04C7F8 +/* 081318 7F04C7E8 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C7EC: +/* 08131C 7F04C7EC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 081320 7F04C7F0 26250020 */ addiu $a1, $s1, 0x20 +.L7F04C7F4: +/* 081324 7F04C7F4 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C7F8: +/* 081328 7F04C7F8 8D2F001C */ lw $t7, 0x1c($t1) +/* 08132C 7F04C7FC 51E00007 */ beql $t7, $zero, .L7F04C81C +/* 081330 7F04C800 8E0B0014 */ lw $t3, 0x14($s0) +/* 081334 7F04C804 8E02001C */ lw $v0, 0x1c($s0) +/* 081338 7F04C808 00408025 */ move $s0, $v0 +.L7F04C80C: +/* 08133C 7F04C80C 8C42001C */ lw $v0, 0x1c($v0) +/* 081340 7F04C810 5440FFFE */ bnezl $v0, .L7F04C80C +/* 081344 7F04C814 00408025 */ move $s0, $v0 +/* 081348 7F04C818 8E0B0014 */ lw $t3, 0x14($s0) +.L7F04C81C: +/* 08134C 7F04C81C 8FA20108 */ lw $v0, 0x108($sp) +/* 081350 7F04C820 AFAB00B0 */ sw $t3, 0xb0($sp) +/* 081354 7F04C824 90580001 */ lbu $t8, 1($v0) +/* 081358 7F04C828 330D0002 */ andi $t5, $t8, 2 +/* 08135C 7F04C82C 51A0004B */ beql $t5, $zero, .L7F04C95C +/* 081360 7F04C830 8E0A0014 */ lw $t2, 0x14($s0) +/* 081364 7F04C834 0FC10411 */ jal if_a0_plus_3_is_4_then_10_else_20 +/* 081368 7F04C838 02402025 */ move $a0, $s2 +/* 08136C 7F04C83C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 081370 7F04C840 0FC1B1A8 */ jal getsubmatrix +/* 081374 7F04C844 8FA400F8 */ lw $a0, 0xf8($sp) +/* 081378 7F04C848 240E001F */ li $t6, 31 +/* 08137C 7F04C84C AFA20058 */ sw $v0, 0x58($sp) +/* 081380 7F04C850 0FC1E111 */ jal sub_GAME_7F078444 +/* 081384 7F04C854 AFAE0054 */ sw $t6, 0x54($sp) +/* 081388 7F04C858 00402025 */ move $a0, $v0 +/* 08138C 7F04C85C 8FA50058 */ lw $a1, 0x58($sp) +/* 081390 7F04C860 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 081394 7F04C864 27A600B8 */ addiu $a2, $sp, 0xb8 +/* 081398 7F04C868 8E2C0000 */ lw $t4, ($s1) +/* 08139C 7F04C86C 2419001D */ li $t9, 29 +/* 0813A0 7F04C870 02002025 */ move $a0, $s0 +/* 0813A4 7F04C874 318A0040 */ andi $t2, $t4, 0x40 +/* 0813A8 7F04C878 11400002 */ beqz $t2, .L7F04C884 +/* 0813AC 7F04C87C 00000000 */ nop +/* 0813B0 7F04C880 AFB90054 */ sw $t9, 0x54($sp) +.L7F04C884: +/* 0813B4 7F04C884 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0813B8 7F04C888 00002825 */ move $a1, $zero +/* 0813BC 7F04C88C 8E050008 */ lw $a1, 8($s0) +/* 0813C0 7F04C890 8E060010 */ lw $a2, 0x10($s0) +/* 0813C4 7F04C894 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0813C8 7F04C898 44811000 */ mtc1 $at, $f2 +/* 0813CC 7F04C89C 44800000 */ mtc1 $zero, $f0 +/* 0813D0 7F04C8A0 C7AA00F0 */ lwc1 $f10, 0xf0($sp) +/* 0813D4 7F04C8A4 8FA80054 */ lw $t0, 0x54($sp) +/* 0813D8 7F04C8A8 27B100B0 */ addiu $s1, $sp, 0xb0 +/* 0813DC 7F04C8AC 02202025 */ move $a0, $s1 +/* 0813E0 7F04C8B0 8FA700E8 */ lw $a3, 0xe8($sp) +/* 0813E4 7F04C8B4 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0813E8 7F04C8B8 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0813EC 7F04C8BC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0813F0 7F04C8C0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0813F4 7F04C8C4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0813F8 7F04C8C8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0813FC 7F04C8CC AFA80014 */ sw $t0, 0x14($sp) +/* 081400 7F04C8D0 10400011 */ beqz $v0, .L7F04C918 +/* 081404 7F04C8D4 02202025 */ move $a0, $s1 +/* 081408 7F04C8D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08140C 7F04C8DC 44818000 */ mtc1 $at, $f16 +/* 081410 7F04C8E0 8FA90054 */ lw $t1, 0x54($sp) +/* 081414 7F04C8E4 44804000 */ mtc1 $zero, $f8 +/* 081418 7F04C8E8 8FA500E8 */ lw $a1, 0xe8($sp) +/* 08141C 7F04C8EC 8FA600F0 */ lw $a2, 0xf0($sp) +/* 081420 7F04C8F0 8FA7005C */ lw $a3, 0x5c($sp) +/* 081424 7F04C8F4 AFA90010 */ sw $t1, 0x10($sp) +/* 081428 7F04C8F8 E7B00018 */ swc1 $f16, 0x18($sp) +/* 08142C 7F04C8FC 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 081430 7F04C900 E7A80014 */ swc1 $f8, 0x14($sp) +/* 081434 7F04C904 04410004 */ bgez $v0, .L7F04C918 +/* 081438 7F04C908 8FAF00B0 */ lw $t7, 0xb0($sp) +/* 08143C 7F04C90C 8FAB0108 */ lw $t3, 0x108($sp) +/* 081440 7F04C910 10000008 */ b .L7F04C934 +/* 081444 7F04C914 AD6F0014 */ sw $t7, 0x14($t3) +.L7F04C918: +/* 081448 7F04C918 8E180014 */ lw $t8, 0x14($s0) +/* 08144C 7F04C91C 8FAD0108 */ lw $t5, 0x108($sp) +/* 081450 7F04C920 ADB80014 */ sw $t8, 0x14($t5) +/* 081454 7F04C924 C6120008 */ lwc1 $f18, 8($s0) +/* 081458 7F04C928 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 08145C 7F04C92C C6060010 */ lwc1 $f6, 0x10($s0) +/* 081460 7F04C930 E7A600F0 */ swc1 $f6, 0xf0($sp) +.L7F04C934: +/* 081464 7F04C934 02002025 */ move $a0, $s0 +/* 081468 7F04C938 0FC0F416 */ jal sub_GAME_7F03D058 +/* 08146C 7F04C93C 24050001 */ li $a1, 1 +/* 081470 7F04C940 8FAE0058 */ lw $t6, 0x58($sp) +/* 081474 7F04C944 8FAC0108 */ lw $t4, 0x108($sp) +/* 081478 7F04C948 C5C40038 */ lwc1 $f4, 0x38($t6) +/* 08147C 7F04C94C 46002287 */ neg.s $f10, $f4 +/* 081480 7F04C950 1000000C */ b .L7F04C984 +/* 081484 7F04C954 E58A0018 */ swc1 $f10, 0x18($t4) +/* 081488 7F04C958 8E0A0014 */ lw $t2, 0x14($s0) +.L7F04C95C: +/* 08148C 7F04C95C 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 081490 7F04C960 0FC15FF4 */ jal matrix_4x4_set_identity +/* 081494 7F04C964 AC4A0014 */ sw $t2, 0x14($v0) +/* 081498 7F04C968 8FB900F8 */ lw $t9, 0xf8($sp) +/* 08149C 7F04C96C 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 0814A0 7F04C970 0FC1629F */ jal matrix_scalar_multiply +/* 0814A4 7F04C974 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0814A8 7F04C978 26040008 */ addiu $a0, $s0, 8 +/* 0814AC 7F04C97C 0FC16266 */ jal matrix_4x4_set_position +/* 0814B0 7F04C980 27A500B8 */ addiu $a1, $sp, 0xb8 +.L7F04C984: +/* 0814B4 7F04C984 0FC13011 */ jal sub_GAME_7F04C044 +/* 0814B8 7F04C988 8FA40108 */ lw $a0, 0x108($sp) +/* 0814BC 7F04C98C 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 0814C0 7F04C990 8FA40108 */ lw $a0, 0x108($sp) +/* 0814C4 7F04C994 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0814C8 7F04C998 8FA40108 */ lw $a0, 0x108($sp) +/* 0814CC 7F04C99C C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0814D0 7F04C9A0 8FA80108 */ lw $t0, 0x108($sp) +/* 0814D4 7F04C9A4 44804000 */ mtc1 $zero, $f8 +/* 0814D8 7F04C9A8 44808000 */ mtc1 $zero, $f16 +/* 0814DC 7F04C9AC E5000008 */ swc1 $f0, 8($t0) +/* 0814E0 7F04C9B0 E6400058 */ swc1 $f0, 0x58($s2) +/* 0814E4 7F04C9B4 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0814E8 7F04C9B8 8FA90108 */ lw $t1, 0x108($sp) +/* 0814EC 7F04C9BC 44809000 */ mtc1 $zero, $f18 +/* 0814F0 7F04C9C0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0814F4 7F04C9C4 E520000C */ swc1 $f0, 0xc($t1) +/* 0814F8 7F04C9C8 E640005C */ swc1 $f0, 0x5c($s2) +/* 0814FC 7F04C9CC C7A000F0 */ lwc1 $f0, 0xf0($sp) +/* 081500 7F04C9D0 8FAF0108 */ lw $t7, 0x108($sp) +/* 081504 7F04C9D4 26450018 */ addiu $a1, $s2, 0x18 +/* 081508 7F04C9D8 E5E00010 */ swc1 $f0, 0x10($t7) +/* 08150C 7F04C9DC E6400060 */ swc1 $f0, 0x60($s2) +/* 081510 7F04C9E0 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 081514 7F04C9E4 E7B000EC */ swc1 $f16, 0xec($sp) +/* 081518 7F04C9E8 0FC16008 */ jal matrix_4x4_copy +/* 08151C 7F04C9EC E7B200F0 */ swc1 $f18, 0xf0($sp) +/* 081520 7F04C9F0 8E440010 */ lw $a0, 0x10($s2) +/* 081524 7F04C9F4 0FC100AD */ jal sub_GAME_7F0402B4 +/* 081528 7F04C9F8 2645007C */ addiu $a1, $s2, 0x7c +/* 08152C 7F04C9FC 924B007C */ lbu $t3, 0x7c($s2) +/* 081530 7F04CA00 9258007D */ lbu $t8, 0x7d($s2) +/* 081534 7F04CA04 924D007E */ lbu $t5, 0x7e($s2) +/* 081538 7F04CA08 924E007F */ lbu $t6, 0x7f($s2) +/* 08153C 7F04CA0C 02402025 */ move $a0, $s2 +/* 081540 7F04CA10 A24B0078 */ sb $t3, 0x78($s2) +/* 081544 7F04CA14 A2580079 */ sb $t8, 0x79($s2) +/* 081548 7F04CA18 A24D007A */ sb $t5, 0x7a($s2) +/* 08154C 7F04CA1C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 081550 7F04CA20 A24E007B */ sb $t6, 0x7b($s2) +/* 081554 7F04CA24 10000001 */ b .L7F04CA2C +/* 081558 7F04CA28 24020001 */ li $v0, 1 +.L7F04CA2C: +/* 08155C 7F04CA2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 081560 7F04CA30 8FB00030 */ lw $s0, 0x30($sp) +/* 081564 7F04CA34 8FB10034 */ lw $s1, 0x34($sp) +/* 081568 7F04CA38 8FB20038 */ lw $s2, 0x38($sp) +/* 08156C 7F04CA3C 03E00008 */ jr $ra +/* 081570 7F04CA40 27BD0108 */ addiu $sp, $sp, 0x108 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04CA44(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052D6C +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D70 +.word 0x3f555555 /*0.83333331*/ +glabel D_80052D74 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D78 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D7C +.word 0x3f555555 /*0.83333331*/ +glabel D_80052D80 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D84 +.word 0x3C20D97C /*0.009817477*/ +glabel D_80052D88 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D8C +.word 0x3C20D97C /*0.009817477*/ +glabel D_80052D90 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D94 +.word 0x3C20D97C /*0.009817477*/ +.text +glabel sub_GAME_7F04CA44 +/* 081574 7F04CA44 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 081578 7F04CA48 AFBF0024 */ sw $ra, 0x24($sp) +/* 08157C 7F04CA4C AFB10020 */ sw $s1, 0x20($sp) +/* 081580 7F04CA50 AFB0001C */ sw $s0, 0x1c($sp) +/* 081584 7F04CA54 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 081588 7F04CA58 8C8E0064 */ lw $t6, 0x64($a0) +/* 08158C 7F04CA5C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 081590 7F04CA60 8C89000C */ lw $t1, 0xc($a0) +/* 081594 7F04CA64 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 081598 7F04CA68 01C17824 */ and $t7, $t6, $at +/* 08159C 7F04CA6C 0005CC40 */ sll $t9, $a1, 0x11 +/* 0815A0 7F04CA70 AC8F0064 */ sw $t7, 0x64($a0) +/* 0815A4 7F04CA74 01F94025 */ or $t0, $t7, $t9 +/* 0815A8 7F04CA78 312A0100 */ andi $t2, $t1, 0x100 +/* 0815AC 7F04CA7C 00808025 */ move $s0, $a0 +/* 0815B0 7F04CA80 1540009A */ bnez $t2, .L7F04CCEC +/* 0815B4 7F04CA84 AC880064 */ sw $t0, 0x64($a0) +/* 0815B8 7F04CA88 8C8B0008 */ lw $t3, 8($a0) +/* 0815BC 7F04CA8C 310E00C0 */ andi $t6, $t0, 0xc0 +/* 0815C0 7F04CA90 316C0001 */ andi $t4, $t3, 1 +/* 0815C4 7F04CA94 51800096 */ beql $t4, $zero, .L7F04CCF0 +/* 0815C8 7F04CA98 8FBF0024 */ lw $ra, 0x24($sp) +/* 0815CC 7F04CA9C 15C00093 */ bnez $t6, .L7F04CCEC +/* 0815D0 7F04CAA0 3C188003 */ lui $t8, %hi(D_80032040) +/* 0815D4 7F04CAA4 27182040 */ addiu $t8, %lo(D_80032040) # addiu $t8, $t8, 0x2040 +/* 0815D8 7F04CAA8 8F010000 */ lw $at, ($t8) +/* 0815DC 7F04CAAC 27AF0034 */ addiu $t7, $sp, 0x34 +/* 0815E0 7F04CAB0 8F080004 */ lw $t0, 4($t8) +/* 0815E4 7F04CAB4 ADE10000 */ sw $at, ($t7) +/* 0815E8 7F04CAB8 8F010008 */ lw $at, 8($t8) +/* 0815EC 7F04CABC ADE80004 */ sw $t0, 4($t7) +/* 0815F0 7F04CAC0 00008825 */ move $s1, $zero +/* 0815F4 7F04CAC4 ADE10008 */ sw $at, 8($t7) +/* 0815F8 7F04CAC8 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 0815FC 7F04CACC 8C840010 */ lw $a0, 0x10($a0) +/* 081600 7F04CAD0 8E090064 */ lw $t1, 0x64($s0) +/* 081604 7F04CAD4 312A0080 */ andi $t2, $t1, 0x80 +/* 081608 7F04CAD8 11400002 */ beqz $t2, .L7F04CAE4 +/* 08160C 7F04CADC 00000000 */ nop +/* 081610 7F04CAE0 8E11006C */ lw $s1, 0x6c($s0) +.L7F04CAE4: +/* 081614 7F04CAE4 52200082 */ beql $s1, $zero, .L7F04CCF0 +/* 081618 7F04CAE8 8FBF0024 */ lw $ra, 0x24($sp) +/* 08161C 7F04CAEC 0C002914 */ jal get_random_value +/* 081620 7F04CAF0 00000000 */ nop +/* 081624 7F04CAF4 44822000 */ mtc1 $v0, $f4 +/* 081628 7F04CAF8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08162C 7F04CAFC 4481A000 */ mtc1 $at, $f20 +/* 081630 7F04CB00 04410005 */ bgez $v0, .L7F04CB18 +/* 081634 7F04CB04 468021A0 */ cvt.s.w $f6, $f4 +/* 081638 7F04CB08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08163C 7F04CB0C 44814000 */ mtc1 $at, $f8 +/* 081640 7F04CB10 00000000 */ nop +/* 081644 7F04CB14 46083180 */ add.s $f6, $f6, $f8 +.L7F04CB18: +/* 081648 7F04CB18 46143282 */ mul.s $f10, $f6, $f20 +/* 08164C 7F04CB1C 3C018005 */ lui $at, %hi(D_80052D6C) +/* 081650 7F04CB20 C4302D6C */ lwc1 $f16, %lo(D_80052D6C)($at) +/* 081654 7F04CB24 3C018005 */ lui $at, %hi(D_80052D70) +/* 081658 7F04CB28 C4242D70 */ lwc1 $f4, %lo(D_80052D70)($at) +/* 08165C 7F04CB2C 46105482 */ mul.s $f18, $f10, $f16 +/* 081660 7F04CB30 46049201 */ sub.s $f8, $f18, $f4 +/* 081664 7F04CB34 0C002914 */ jal get_random_value +/* 081668 7F04CB38 E6280004 */ swc1 $f8, 4($s1) +/* 08166C 7F04CB3C 44823000 */ mtc1 $v0, $f6 +/* 081670 7F04CB40 3C018005 */ lui $at, %hi(D_80052D74) +/* 081674 7F04CB44 C4222D74 */ lwc1 $f2, %lo(D_80052D74)($at) +/* 081678 7F04CB48 04410005 */ bgez $v0, .L7F04CB60 +/* 08167C 7F04CB4C 468032A0 */ cvt.s.w $f10, $f6 +/* 081680 7F04CB50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081684 7F04CB54 44818000 */ mtc1 $at, $f16 +/* 081688 7F04CB58 00000000 */ nop +/* 08168C 7F04CB5C 46105280 */ add.s $f10, $f10, $f16 +.L7F04CB60: +/* 081690 7F04CB60 46145482 */ mul.s $f18, $f10, $f20 +/* 081694 7F04CB64 00000000 */ nop +/* 081698 7F04CB68 46029002 */ mul.s $f0, $f18, $f2 +/* 08169C 7F04CB6C 46000100 */ add.s $f4, $f0, $f0 +/* 0816A0 7F04CB70 46022200 */ add.s $f8, $f4, $f2 +/* 0816A4 7F04CB74 0C002914 */ jal get_random_value +/* 0816A8 7F04CB78 E6280008 */ swc1 $f8, 8($s1) +/* 0816AC 7F04CB7C 44823000 */ mtc1 $v0, $f6 +/* 0816B0 7F04CB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0816B4 7F04CB84 04410004 */ bgez $v0, .L7F04CB98 +/* 0816B8 7F04CB88 46803420 */ cvt.s.w $f16, $f6 +/* 0816BC 7F04CB8C 44815000 */ mtc1 $at, $f10 +/* 0816C0 7F04CB90 00000000 */ nop +/* 0816C4 7F04CB94 460A8400 */ add.s $f16, $f16, $f10 +.L7F04CB98: +/* 0816C8 7F04CB98 46148482 */ mul.s $f18, $f16, $f20 +/* 0816CC 7F04CB9C 3C018005 */ lui $at, %hi(D_80052D78) +/* 0816D0 7F04CBA0 C4242D78 */ lwc1 $f4, %lo(D_80052D78)($at) +/* 0816D4 7F04CBA4 3C018005 */ lui $at, %hi(D_80052D7C) +/* 0816D8 7F04CBA8 C4262D7C */ lwc1 $f6, %lo(D_80052D7C)($at) +/* 0816DC 7F04CBAC 46049202 */ mul.s $f8, $f18, $f4 +/* 0816E0 7F04CBB0 46064281 */ sub.s $f10, $f8, $f6 +/* 0816E4 7F04CBB4 E62A000C */ swc1 $f10, 0xc($s1) +/* 0816E8 7F04CBB8 8E0B000C */ lw $t3, 0xc($s0) +/* 0816EC 7F04CBBC 316C0200 */ andi $t4, $t3, 0x200 +/* 0816F0 7F04CBC0 5580003C */ bnezl $t4, .L7F04CCB4 +/* 0816F4 7F04CBC4 27A40034 */ addiu $a0, $sp, 0x34 +/* 0816F8 7F04CBC8 0C002914 */ jal get_random_value +/* 0816FC 7F04CBCC 00000000 */ nop +/* 081700 7F04CBD0 44828000 */ mtc1 $v0, $f16 +/* 081704 7F04CBD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081708 7F04CBD8 04410004 */ bgez $v0, .L7F04CBEC +/* 08170C 7F04CBDC 468084A0 */ cvt.s.w $f18, $f16 +/* 081710 7F04CBE0 44812000 */ mtc1 $at, $f4 +/* 081714 7F04CBE4 00000000 */ nop +/* 081718 7F04CBE8 46049480 */ add.s $f18, $f18, $f4 +.L7F04CBEC: +/* 08171C 7F04CBEC 46149202 */ mul.s $f8, $f18, $f20 +/* 081720 7F04CBF0 3C018005 */ lui $at, %hi(D_80052D80) +/* 081724 7F04CBF4 C4262D80 */ lwc1 $f6, %lo(D_80052D80)($at) +/* 081728 7F04CBF8 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 08172C 7F04CBFC 44818000 */ mtc1 $at, $f16 +/* 081730 7F04CC00 3C018005 */ lui $at, %hi(D_80052D84) +/* 081734 7F04CC04 C4322D84 */ lwc1 $f18, %lo(D_80052D84)($at) +/* 081738 7F04CC08 46064282 */ mul.s $f10, $f8, $f6 +/* 08173C 7F04CC0C 46105103 */ div.s $f4, $f10, $f16 +/* 081740 7F04CC10 46122201 */ sub.s $f8, $f4, $f18 +/* 081744 7F04CC14 0C002914 */ jal get_random_value +/* 081748 7F04CC18 E7A80034 */ swc1 $f8, 0x34($sp) +/* 08174C 7F04CC1C 44823000 */ mtc1 $v0, $f6 +/* 081750 7F04CC20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081754 7F04CC24 04410004 */ bgez $v0, .L7F04CC38 +/* 081758 7F04CC28 468032A0 */ cvt.s.w $f10, $f6 +/* 08175C 7F04CC2C 44818000 */ mtc1 $at, $f16 +/* 081760 7F04CC30 00000000 */ nop +/* 081764 7F04CC34 46105280 */ add.s $f10, $f10, $f16 +.L7F04CC38: +/* 081768 7F04CC38 46145102 */ mul.s $f4, $f10, $f20 +/* 08176C 7F04CC3C 3C018005 */ lui $at, %hi(D_80052D88) +/* 081770 7F04CC40 C4322D88 */ lwc1 $f18, %lo(D_80052D88)($at) +/* 081774 7F04CC44 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 081778 7F04CC48 44813000 */ mtc1 $at, $f6 +/* 08177C 7F04CC4C 3C018005 */ lui $at, %hi(D_80052D8C) +/* 081780 7F04CC50 C42A2D8C */ lwc1 $f10, %lo(D_80052D8C)($at) +/* 081784 7F04CC54 46122202 */ mul.s $f8, $f4, $f18 +/* 081788 7F04CC58 46064403 */ div.s $f16, $f8, $f6 +/* 08178C 7F04CC5C 460A8101 */ sub.s $f4, $f16, $f10 +/* 081790 7F04CC60 0C002914 */ jal get_random_value +/* 081794 7F04CC64 E7A40038 */ swc1 $f4, 0x38($sp) +/* 081798 7F04CC68 44829000 */ mtc1 $v0, $f18 +/* 08179C 7F04CC6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0817A0 7F04CC70 04410004 */ bgez $v0, .L7F04CC84 +/* 0817A4 7F04CC74 46809220 */ cvt.s.w $f8, $f18 +/* 0817A8 7F04CC78 44813000 */ mtc1 $at, $f6 +/* 0817AC 7F04CC7C 00000000 */ nop +/* 0817B0 7F04CC80 46064200 */ add.s $f8, $f8, $f6 +.L7F04CC84: +/* 0817B4 7F04CC84 46144402 */ mul.s $f16, $f8, $f20 +/* 0817B8 7F04CC88 3C018005 */ lui $at, %hi(D_80052D90) +/* 0817BC 7F04CC8C C42A2D90 */ lwc1 $f10, %lo(D_80052D90)($at) +/* 0817C0 7F04CC90 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0817C4 7F04CC94 44819000 */ mtc1 $at, $f18 +/* 0817C8 7F04CC98 3C018005 */ lui $at, %hi(D_80052D94) +/* 0817CC 7F04CC9C C4282D94 */ lwc1 $f8, %lo(D_80052D94)($at) +/* 0817D0 7F04CCA0 460A8102 */ mul.s $f4, $f16, $f10 +/* 0817D4 7F04CCA4 46122183 */ div.s $f6, $f4, $f18 +/* 0817D8 7F04CCA8 46083401 */ sub.s $f16, $f6, $f8 +/* 0817DC 7F04CCAC E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0817E0 7F04CCB0 27A40034 */ addiu $a0, $sp, 0x34 +.L7F04CCB4: +/* 0817E4 7F04CCB4 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0817E8 7F04CCB8 26250020 */ addiu $a1, $s1, 0x20 +/* 0817EC 7F04CCBC 8E2D0000 */ lw $t5, ($s1) +/* 0817F0 7F04CCC0 2401FEFF */ li $at, -257 +/* 0817F4 7F04CCC4 35AE0001 */ ori $t6, $t5, 1 +/* 0817F8 7F04CCC8 AE2E0000 */ sw $t6, ($s1) +/* 0817FC 7F04CCCC 8E190008 */ lw $t9, 8($s0) +/* 081800 7F04CCD0 8E180064 */ lw $t8, 0x64($s0) +/* 081804 7F04CCD4 03217824 */ and $t7, $t9, $at +/* 081808 7F04CCD8 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff +/* 08180C 7F04CCDC 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff +/* 081810 7F04CCE0 03014024 */ and $t0, $t8, $at +/* 081814 7F04CCE4 AE0F0008 */ sw $t7, 8($s0) +/* 081818 7F04CCE8 AE080064 */ sw $t0, 0x64($s0) +.L7F04CCEC: +/* 08181C 7F04CCEC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04CCF0: +/* 081820 7F04CCF0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 081824 7F04CCF4 8FB0001C */ lw $s0, 0x1c($sp) +/* 081828 7F04CCF8 8FB10020 */ lw $s1, 0x20($sp) +/* 08182C 7F04CCFC 03E00008 */ jr $ra +/* 081830 7F04CD00 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04CD04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04CD04 +/* 081834 7F04CD04 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 081838 7F04CD08 AFBF0034 */ sw $ra, 0x34($sp) +/* 08183C 7F04CD0C AFB60030 */ sw $s6, 0x30($sp) +/* 081840 7F04CD10 AFB5002C */ sw $s5, 0x2c($sp) +/* 081844 7F04CD14 AFB40028 */ sw $s4, 0x28($sp) +/* 081848 7F04CD18 AFB30024 */ sw $s3, 0x24($sp) +/* 08184C 7F04CD1C AFB20020 */ sw $s2, 0x20($sp) +/* 081850 7F04CD20 AFB1001C */ sw $s1, 0x1c($sp) +/* 081854 7F04CD24 AFB00018 */ sw $s0, 0x18($sp) +/* 081858 7F04CD28 8C8E0014 */ lw $t6, 0x14($a0) +/* 08185C 7F04CD2C 00A0B025 */ move $s6, $a1 +/* 081860 7F04CD30 8C940004 */ lw $s4, 4($a0) +/* 081864 7F04CD34 27A50048 */ addiu $a1, $sp, 0x48 +/* 081868 7F04CD38 27A60044 */ addiu $a2, $sp, 0x44 +/* 08186C 7F04CD3C 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 081870 7F04CD40 91D50003 */ lbu $s5, 3($t6) +/* 081874 7F04CD44 8FAF0044 */ lw $t7, 0x44($sp) +/* 081878 7F04CD48 59E00027 */ blezl $t7, .L7F04CDE8 +/* 08187C 7F04CD4C 8FBF0034 */ lw $ra, 0x34($sp) +/* 081880 7F04CD50 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 081884 7F04CD54 00000000 */ nop +/* 081888 7F04CD58 10400022 */ beqz $v0, .L7F04CDE4 +/* 08188C 7F04CD5C 00408825 */ move $s1, $v0 +/* 081890 7F04CD60 24130004 */ li $s3, 4 +/* 081894 7F04CD64 24120001 */ li $s2, 1 +/* 081898 7F04CD68 92220000 */ lbu $v0, ($s1) +.L7F04CD6C: +/* 08189C 7F04CD6C 52420004 */ beql $s2, $v0, .L7F04CD80 +/* 0818A0 7F04CD70 8E380014 */ lw $t8, 0x14($s1) +/* 0818A4 7F04CD74 56620019 */ bnel $s3, $v0, .L7F04CDDC +/* 0818A8 7F04CD78 8E310024 */ lw $s1, 0x24($s1) +/* 0818AC 7F04CD7C 8E380014 */ lw $t8, 0x14($s1) +.L7F04CD80: +/* 0818B0 7F04CD80 93190003 */ lbu $t9, 3($t8) +/* 0818B4 7F04CD84 56B90015 */ bnel $s5, $t9, .L7F04CDDC +/* 0818B8 7F04CD88 8E310024 */ lw $s1, 0x24($s1) +/* 0818BC 7F04CD8C 8E300004 */ lw $s0, 4($s1) +/* 0818C0 7F04CD90 C684005C */ lwc1 $f4, 0x5c($s4) +/* 0818C4 7F04CD94 C606005C */ lwc1 $f6, 0x5c($s0) +/* 0818C8 7F04CD98 4606203C */ c.lt.s $f4, $f6 +/* 0818CC 7F04CD9C 00000000 */ nop +/* 0818D0 7F04CDA0 4502000E */ bc1fl .L7F04CDDC +/* 0818D4 7F04CDA4 8E310024 */ lw $s1, 0x24($s1) +/* 0818D8 7F04CDA8 8E080064 */ lw $t0, 0x64($s0) +/* 0818DC 7F04CDAC 26040058 */ addiu $a0, $s0, 0x58 +/* 0818E0 7F04CDB0 8FA50048 */ lw $a1, 0x48($sp) +/* 0818E4 7F04CDB4 31098000 */ andi $t1, $t0, 0x8000 +/* 0818E8 7F04CDB8 51200008 */ beql $t1, $zero, .L7F04CDDC +/* 0818EC 7F04CDBC 8E310024 */ lw $s1, 0x24($s1) +/* 0818F0 7F04CDC0 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0818F4 7F04CDC4 8FA60044 */ lw $a2, 0x44($sp) +/* 0818F8 7F04CDC8 10400003 */ beqz $v0, .L7F04CDD8 +/* 0818FC 7F04CDCC 02002025 */ move $a0, $s0 +/* 081900 7F04CDD0 0FC13291 */ jal sub_GAME_7F04CA44 +/* 081904 7F04CDD4 02C02825 */ move $a1, $s6 +.L7F04CDD8: +/* 081908 7F04CDD8 8E310024 */ lw $s1, 0x24($s1) +.L7F04CDDC: +/* 08190C 7F04CDDC 5620FFE3 */ bnezl $s1, .L7F04CD6C +/* 081910 7F04CDE0 92220000 */ lbu $v0, ($s1) +.L7F04CDE4: +/* 081914 7F04CDE4 8FBF0034 */ lw $ra, 0x34($sp) +.L7F04CDE8: +/* 081918 7F04CDE8 8FB00018 */ lw $s0, 0x18($sp) +/* 08191C 7F04CDEC 8FB1001C */ lw $s1, 0x1c($sp) +/* 081920 7F04CDF0 8FB20020 */ lw $s2, 0x20($sp) +/* 081924 7F04CDF4 8FB30024 */ lw $s3, 0x24($sp) +/* 081928 7F04CDF8 8FB40028 */ lw $s4, 0x28($sp) +/* 08192C 7F04CDFC 8FB5002C */ lw $s5, 0x2c($sp) +/* 081930 7F04CE00 8FB60030 */ lw $s6, 0x30($sp) +/* 081934 7F04CE04 03E00008 */ jr $ra +/* 081938 7F04CE08 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void object_explosion_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel object_explosion_related +/* 08193C 7F04CE0C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 081940 7F04CE10 AFBF002C */ sw $ra, 0x2c($sp) +/* 081944 7F04CE14 AFB10028 */ sw $s1, 0x28($sp) +/* 081948 7F04CE18 AFB00024 */ sw $s0, 0x24($sp) +/* 08194C 7F04CE1C AFA5004C */ sw $a1, 0x4c($sp) +/* 081950 7F04CE20 AFA60050 */ sw $a2, 0x50($sp) +/* 081954 7F04CE24 C4860070 */ lwc1 $f6, 0x70($a0) +/* 081958 7F04CE28 C4840074 */ lwc1 $f4, 0x74($a0) +/* 08195C 7F04CE2C 00808825 */ move $s1, $a0 +/* 081960 7F04CE30 4606203C */ c.lt.s $f4, $f6 +/* 081964 7F04CE34 00000000 */ nop +/* 081968 7F04CE38 45030006 */ bc1tl .L7F04CE54 +/* 08196C 7F04CE3C 862E0004 */ lh $t6, 4($s1) +/* 081970 7F04CE40 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 081974 7F04CE44 00000000 */ nop +/* 081978 7F04CE48 504000C4 */ beql $v0, $zero, .L7F04D15C +/* 08197C 7F04CE4C 8FBF002C */ lw $ra, 0x2c($sp) +/* 081980 7F04CE50 862E0004 */ lh $t6, 4($s1) +.L7F04CE54: +/* 081984 7F04CE54 3C188004 */ lui $t8, %hi(object_explosion_details) +/* 081988 7F04CE58 8E230010 */ lw $v1, 0x10($s1) +/* 08198C 7F04CE5C 000E78C0 */ sll $t7, $t6, 3 +/* 081990 7F04CE60 01EE7823 */ subu $t7, $t7, $t6 +/* 081994 7F04CE64 000F7840 */ sll $t7, $t7, 1 +/* 081998 7F04CE68 030FC021 */ addu $t8, $t8, $t7 +/* 08199C 7F04CE6C 8718B224 */ lh $t8, %lo(object_explosion_details)($t8) +/* 0819A0 7F04CE70 02202025 */ move $a0, $s1 +/* 0819A4 7F04CE74 00608025 */ move $s0, $v1 +/* 0819A8 7F04CE78 A7B8003E */ sh $t8, 0x3e($sp) +/* 0819AC 7F04CE7C 8C79001C */ lw $t9, 0x1c($v1) +/* 0819B0 7F04CE80 53200007 */ beql $t9, $zero, .L7F04CEA0 +/* 0819B4 7F04CE84 8E080014 */ lw $t0, 0x14($s0) +/* 0819B8 7F04CE88 8E02001C */ lw $v0, 0x1c($s0) +/* 0819BC 7F04CE8C 00408025 */ move $s0, $v0 +.L7F04CE90: +/* 0819C0 7F04CE90 8C42001C */ lw $v0, 0x1c($v0) +/* 0819C4 7F04CE94 5440FFFE */ bnezl $v0, .L7F04CE90 +/* 0819C8 7F04CE98 00408025 */ move $s0, $v0 +/* 0819CC 7F04CE9C 8E080014 */ lw $t0, 0x14($s0) +.L7F04CEA0: +/* 0819D0 7F04CEA0 AFA30044 */ sw $v1, 0x44($sp) +/* 0819D4 7F04CEA4 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0819D8 7F04CEA8 AFA80038 */ sw $t0, 0x38($sp) +/* 0819DC 7F04CEAC 14400056 */ bnez $v0, .L7F04D008 +/* 0819E0 7F04CEB0 00000000 */ nop +/* 0819E4 7F04CEB4 92290002 */ lbu $t1, 2($s1) +/* 0819E8 7F04CEB8 44804000 */ mtc1 $zero, $f8 +/* 0819EC 7F04CEBC 352A0080 */ ori $t2, $t1, 0x80 +/* 0819F0 7F04CEC0 A22A0002 */ sb $t2, 2($s1) +/* 0819F4 7F04CEC4 E6280070 */ swc1 $f8, 0x70($s1) +/* 0819F8 7F04CEC8 8FAB0038 */ lw $t3, 0x38($sp) +/* 0819FC 7F04CECC 5160002B */ beql $t3, $zero, .L7F04CF7C +/* 081A00 7F04CED0 8E2C000C */ lw $t4, 0xc($s1) +/* 081A04 7F04CED4 920C0001 */ lbu $t4, 1($s0) +/* 081A08 7F04CED8 8FA2004C */ lw $v0, 0x4c($sp) +/* 081A0C 7F04CEDC 27A40038 */ addiu $a0, $sp, 0x38 +/* 081A10 7F04CEE0 318D0008 */ andi $t5, $t4, 8 +/* 081A14 7F04CEE4 55A00019 */ bnezl $t5, .L7F04CF4C +/* 081A18 7F04CEE8 8E060014 */ lw $a2, 0x14($s0) +/* 081A1C 7F04CEEC C44A0008 */ lwc1 $f10, 8($v0) +/* 081A20 7F04CEF0 8E050008 */ lw $a1, 8($s0) +/* 081A24 7F04CEF4 8E060010 */ lw $a2, 0x10($s0) +/* 081A28 7F04CEF8 8C470000 */ lw $a3, ($v0) +/* 081A2C 7F04CEFC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 081A30 7F04CF00 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 081A34 7F04CF04 10400010 */ beqz $v0, .L7F04CF48 +/* 081A38 7F04CF08 8FA40044 */ lw $a0, 0x44($sp) +/* 081A3C 7F04CF0C 8E2E0008 */ lw $t6, 8($s1) +/* 081A40 7F04CF10 8FB90050 */ lw $t9, 0x50($sp) +/* 081A44 7F04CF14 2608002C */ addiu $t0, $s0, 0x2c +/* 081A48 7F04CF18 31CF000E */ andi $t7, $t6, 0xe +/* 081A4C 7F04CF1C 2DF80001 */ sltiu $t8, $t7, 1 +/* 081A50 7F04CF20 AFB80010 */ sw $t8, 0x10($sp) +/* 081A54 7F04CF24 AFA80018 */ sw $t0, 0x18($sp) +/* 081A58 7F04CF28 AFA0001C */ sw $zero, 0x1c($sp) +/* 081A5C 7F04CF2C 8FA5004C */ lw $a1, 0x4c($sp) +/* 081A60 7F04CF30 8FA60038 */ lw $a2, 0x38($sp) +/* 081A64 7F04CF34 87A7003E */ lh $a3, 0x3e($sp) +/* 081A68 7F04CF38 0FC27094 */ jal sub_GAME_7F09C250 +/* 081A6C 7F04CF3C AFB90014 */ sw $t9, 0x14($sp) +/* 081A70 7F04CF40 1000000E */ b .L7F04CF7C +/* 081A74 7F04CF44 8E2C000C */ lw $t4, 0xc($s1) +.L7F04CF48: +/* 081A78 7F04CF48 8E060014 */ lw $a2, 0x14($s0) +.L7F04CF4C: +/* 081A7C 7F04CF4C 8FA90050 */ lw $t1, 0x50($sp) +/* 081A80 7F04CF50 260A002C */ addiu $t2, $s0, 0x2c +/* 081A84 7F04CF54 240B0001 */ li $t3, 1 +/* 081A88 7F04CF58 AFAB001C */ sw $t3, 0x1c($sp) +/* 081A8C 7F04CF5C AFAA0018 */ sw $t2, 0x18($sp) +/* 081A90 7F04CF60 AFA00010 */ sw $zero, 0x10($sp) +/* 081A94 7F04CF64 8FA40044 */ lw $a0, 0x44($sp) +/* 081A98 7F04CF68 8FA5004C */ lw $a1, 0x4c($sp) +/* 081A9C 7F04CF6C 87A7003E */ lh $a3, 0x3e($sp) +/* 081AA0 7F04CF70 0FC27094 */ jal sub_GAME_7F09C250 +/* 081AA4 7F04CF74 AFA90014 */ sw $t1, 0x14($sp) +/* 081AA8 7F04CF78 8E2C000C */ lw $t4, 0xc($s1) +.L7F04CF7C: +/* 081AAC 7F04CF7C 02202025 */ move $a0, $s1 +/* 081AB0 7F04CF80 318D2000 */ andi $t5, $t4, 0x2000 +/* 081AB4 7F04CF84 11A00005 */ beqz $t5, .L7F04CF9C +/* 081AB8 7F04CF88 00000000 */ nop +/* 081ABC 7F04CF8C 8E2E0064 */ lw $t6, 0x64($s1) +/* 081AC0 7F04CF90 35CF0004 */ ori $t7, $t6, 4 +/* 081AC4 7F04CF94 10000070 */ b .L7F04D158 +/* 081AC8 7F04CF98 AE2F0064 */ sw $t7, 0x64($s1) +.L7F04CF9C: +/* 081ACC 7F04CF9C 0FC12D84 */ jal sub_GAME_7F04B610 +/* 081AD0 7F04CFA0 24050001 */ li $a1, 1 +/* 081AD4 7F04CFA4 8FA40044 */ lw $a0, 0x44($sp) +/* 081AD8 7F04CFA8 5604006C */ bnel $s0, $a0, .L7F04D15C +/* 081ADC 7F04CFAC 8FBF002C */ lw $ra, 0x2c($sp) +/* 081AE0 7F04CFB0 0FC13341 */ jal sub_GAME_7F04CD04 +/* 081AE4 7F04CFB4 8FA50050 */ lw $a1, 0x50($sp) +/* 081AE8 7F04CFB8 8E220064 */ lw $v0, 0x64($s1) +/* 081AEC 7F04CFBC 30588000 */ andi $t8, $v0, 0x8000 +/* 081AF0 7F04CFC0 5300000A */ beql $t8, $zero, .L7F04CFEC +/* 081AF4 7F04CFC4 3C010001 */ lui $at, 1 +/* 081AF8 7F04CFC8 0C002914 */ jal get_random_value +/* 081AFC 7F04CFCC 00000000 */ nop +/* 081B00 7F04CFD0 24010003 */ li $at, 3 +/* 081B04 7F04CFD4 0041001B */ divu $zero, $v0, $at +/* 081B08 7F04CFD8 0000C810 */ mfhi $t9 +/* 081B0C 7F04CFDC 5720005F */ bnezl $t9, .L7F04D15C +/* 081B10 7F04CFE0 8FBF002C */ lw $ra, 0x2c($sp) +/* 081B14 7F04CFE4 8E220064 */ lw $v0, 0x64($s1) +/* 081B18 7F04CFE8 3C010001 */ lui $at, 1 +.L7F04CFEC: +/* 081B1C 7F04CFEC 00414025 */ or $t0, $v0, $at +/* 081B20 7F04CFF0 AE280064 */ sw $t0, 0x64($s1) +/* 081B24 7F04CFF4 8FA50050 */ lw $a1, 0x50($sp) +/* 081B28 7F04CFF8 0FC13291 */ jal sub_GAME_7F04CA44 +/* 081B2C 7F04CFFC 02202025 */ move $a0, $s1 +/* 081B30 7F04D000 10000056 */ b .L7F04D15C +/* 081B34 7F04D004 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04D008: +/* 081B38 7F04D008 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 081B3C 7F04D00C 02202025 */ move $a0, $s1 +/* 081B40 7F04D010 30490003 */ andi $t1, $v0, 3 +/* 081B44 7F04D014 15200031 */ bnez $t1, .L7F04D0DC +/* 081B48 7F04D018 AFA20034 */ sw $v0, 0x34($sp) +/* 081B4C 7F04D01C 00025083 */ sra $t2, $v0, 2 +/* 081B50 7F04D020 25450001 */ addiu $a1, $t2, 1 +/* 081B54 7F04D024 0FC12D84 */ jal sub_GAME_7F04B610 +/* 081B58 7F04D028 02202025 */ move $a0, $s1 +/* 081B5C 7F04D02C 8FAB0038 */ lw $t3, 0x38($sp) +/* 081B60 7F04D030 1160002A */ beqz $t3, .L7F04D0DC +/* 081B64 7F04D034 00000000 */ nop +/* 081B68 7F04D038 920C0001 */ lbu $t4, 1($s0) +/* 081B6C 7F04D03C 8FA2004C */ lw $v0, 0x4c($sp) +/* 081B70 7F04D040 27A40038 */ addiu $a0, $sp, 0x38 +/* 081B74 7F04D044 318D0008 */ andi $t5, $t4, 8 +/* 081B78 7F04D048 55A00019 */ bnezl $t5, .L7F04D0B0 +/* 081B7C 7F04D04C 8E060014 */ lw $a2, 0x14($s0) +/* 081B80 7F04D050 C4500008 */ lwc1 $f16, 8($v0) +/* 081B84 7F04D054 8E050008 */ lw $a1, 8($s0) +/* 081B88 7F04D058 8E060010 */ lw $a2, 0x10($s0) +/* 081B8C 7F04D05C 8C470000 */ lw $a3, ($v0) +/* 081B90 7F04D060 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 081B94 7F04D064 E7B00010 */ swc1 $f16, 0x10($sp) +/* 081B98 7F04D068 10400010 */ beqz $v0, .L7F04D0AC +/* 081B9C 7F04D06C 8FA40044 */ lw $a0, 0x44($sp) +/* 081BA0 7F04D070 8E2E0008 */ lw $t6, 8($s1) +/* 081BA4 7F04D074 8FB90050 */ lw $t9, 0x50($sp) +/* 081BA8 7F04D078 2608002C */ addiu $t0, $s0, 0x2c +/* 081BAC 7F04D07C 31CF000E */ andi $t7, $t6, 0xe +/* 081BB0 7F04D080 2DF80001 */ sltiu $t8, $t7, 1 +/* 081BB4 7F04D084 AFB80010 */ sw $t8, 0x10($sp) +/* 081BB8 7F04D088 AFA80018 */ sw $t0, 0x18($sp) +/* 081BBC 7F04D08C AFA0001C */ sw $zero, 0x1c($sp) +/* 081BC0 7F04D090 8FA5004C */ lw $a1, 0x4c($sp) +/* 081BC4 7F04D094 8FA60038 */ lw $a2, 0x38($sp) +/* 081BC8 7F04D098 24070010 */ li $a3, 16 +/* 081BCC 7F04D09C 0FC27094 */ jal sub_GAME_7F09C250 +/* 081BD0 7F04D0A0 AFB90014 */ sw $t9, 0x14($sp) +/* 081BD4 7F04D0A4 1000000D */ b .L7F04D0DC +/* 081BD8 7F04D0A8 00000000 */ nop +.L7F04D0AC: +/* 081BDC 7F04D0AC 8E060014 */ lw $a2, 0x14($s0) +.L7F04D0B0: +/* 081BE0 7F04D0B0 8FA90050 */ lw $t1, 0x50($sp) +/* 081BE4 7F04D0B4 260A002C */ addiu $t2, $s0, 0x2c +/* 081BE8 7F04D0B8 240B0001 */ li $t3, 1 +/* 081BEC 7F04D0BC AFAB001C */ sw $t3, 0x1c($sp) +/* 081BF0 7F04D0C0 AFAA0018 */ sw $t2, 0x18($sp) +/* 081BF4 7F04D0C4 AFA00010 */ sw $zero, 0x10($sp) +/* 081BF8 7F04D0C8 8FA40044 */ lw $a0, 0x44($sp) +/* 081BFC 7F04D0CC 8FA5004C */ lw $a1, 0x4c($sp) +/* 081C00 7F04D0D0 24070010 */ li $a3, 16 +/* 081C04 7F04D0D4 0FC27094 */ jal sub_GAME_7F09C250 +/* 081C08 7F04D0D8 AFA90014 */ sw $t1, 0x14($sp) +.L7F04D0DC: +/* 081C0C 7F04D0DC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 081C10 7F04D0E0 02202025 */ move $a0, $s1 +/* 081C14 7F04D0E4 58400012 */ blezl $v0, .L7F04D130 +/* 081C18 7F04D0E8 8FA90034 */ lw $t1, 0x34($sp) +/* 081C1C 7F04D0EC 92220002 */ lbu $v0, 2($s1) +/* 081C20 7F04D0F0 304C0004 */ andi $t4, $v0, 4 +/* 081C24 7F04D0F4 5180000E */ beql $t4, $zero, .L7F04D130 +/* 081C28 7F04D0F8 8FA90034 */ lw $t1, 0x34($sp) +/* 081C2C 7F04D0FC 8E2D0064 */ lw $t5, 0x64($s1) +/* 081C30 7F04D100 344F0010 */ ori $t7, $v0, 0x10 +/* 081C34 7F04D104 3058FFEF */ andi $t8, $v0, 0xffef +/* 081C38 7F04D108 31AE1000 */ andi $t6, $t5, 0x1000 +/* 081C3C 7F04D10C 51C00004 */ beql $t6, $zero, .L7F04D120 +/* 081C40 7F04D110 A2380002 */ sb $t8, 2($s1) +/* 081C44 7F04D114 10000002 */ b .L7F04D120 +/* 081C48 7F04D118 A22F0002 */ sb $t7, 2($s1) +/* 081C4C 7F04D11C A2380002 */ sb $t8, 2($s1) +.L7F04D120: +/* 081C50 7F04D120 8FA80044 */ lw $t0, 0x44($sp) +/* 081C54 7F04D124 241904B0 */ li $t9, 1200 +/* 081C58 7F04D128 A5190002 */ sh $t9, 2($t0) +/* 081C5C 7F04D12C 8FA90034 */ lw $t1, 0x34($sp) +.L7F04D130: +/* 081C60 7F04D130 2921000C */ slti $at, $t1, 0xc +/* 081C64 7F04D134 54200009 */ bnezl $at, .L7F04D15C +/* 081C68 7F04D138 8FBF002C */ lw $ra, 0x2c($sp) +/* 081C6C 7F04D13C 8E2A0064 */ lw $t2, 0x64($s1) +/* 081C70 7F04D140 8E2C0008 */ lw $t4, 8($s1) +/* 081C74 7F04D144 2401FEFF */ li $at, -257 +/* 081C78 7F04D148 354B1000 */ ori $t3, $t2, 0x1000 +/* 081C7C 7F04D14C 01816824 */ and $t5, $t4, $at +/* 081C80 7F04D150 AE2B0064 */ sw $t3, 0x64($s1) +/* 081C84 7F04D154 AE2D0008 */ sw $t5, 8($s1) +.L7F04D158: +/* 081C88 7F04D158 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04D15C: +/* 081C8C 7F04D15C 8FB00024 */ lw $s0, 0x24($sp) +/* 081C90 7F04D160 8FB10028 */ lw $s1, 0x28($sp) +/* 081C94 7F04D164 03E00008 */ jr $ra +/* 081C98 7F04D168 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04D16C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04D16C +/* 081C9C 7F04D16C 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 081CA0 7F04D170 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 081CA4 7F04D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081CA8 7F04D178 AFBE0050 */ sw $fp, 0x50($sp) +/* 081CAC 7F04D17C AFB7004C */ sw $s7, 0x4c($sp) +/* 081CB0 7F04D180 AFB60048 */ sw $s6, 0x48($sp) +/* 081CB4 7F04D184 AFB50044 */ sw $s5, 0x44($sp) +/* 081CB8 7F04D188 AFB40040 */ sw $s4, 0x40($sp) +/* 081CBC 7F04D18C AFB3003C */ sw $s3, 0x3c($sp) +/* 081CC0 7F04D190 AFB10034 */ sw $s1, 0x34($sp) +/* 081CC4 7F04D194 AFB00030 */ sw $s0, 0x30($sp) +/* 081CC8 7F04D198 4481A000 */ mtc1 $at, $f20 +/* 081CCC 7F04D19C 00E08825 */ move $s1, $a3 +/* 081CD0 7F04D1A0 0080B825 */ move $s7, $a0 +/* 081CD4 7F04D1A4 00C0F025 */ move $fp, $a2 +/* 081CD8 7F04D1A8 AFBF0054 */ sw $ra, 0x54($sp) +/* 081CDC 7F04D1AC AFB20038 */ sw $s2, 0x38($sp) +/* 081CE0 7F04D1B0 AFA50154 */ sw $a1, 0x154($sp) +/* 081CE4 7F04D1B4 AFA00110 */ sw $zero, 0x110($sp) +/* 081CE8 7F04D1B8 00E09825 */ move $s3, $a3 +/* 081CEC 7F04D1BC 8FB0014C */ lw $s0, 0x14c($sp) +/* 081CF0 7F04D1C0 8FB40168 */ lw $s4, 0x168($sp) +/* 081CF4 7F04D1C4 241500FD */ li $s5, 253 +/* 081CF8 7F04D1C8 27B600B0 */ addiu $s6, $sp, 0xb0 +.L7F04D1CC: +/* 081CFC 7F04D1CC 82220000 */ lb $v0, ($s1) +/* 081D00 7F04D1D0 2401FFB8 */ li $at, -72 +/* 081D04 7F04D1D4 8FAE0160 */ lw $t6, 0x160($sp) +/* 081D08 7F04D1D8 54410007 */ bnel $v0, $at, .L7F04D1F8 +/* 081D0C 7F04D1DC 24010004 */ li $at, 4 +/* 081D10 7F04D1E0 11C001E5 */ beqz $t6, .L7F04D978 +/* 081D14 7F04D1E4 01C09825 */ move $s3, $t6 +/* 081D18 7F04D1E8 01C08825 */ move $s1, $t6 +/* 081D1C 7F04D1EC 1000FFF7 */ b .L7F04D1CC +/* 081D20 7F04D1F0 AFA00160 */ sw $zero, 0x160($sp) +/* 081D24 7F04D1F4 24010004 */ li $at, 4 +.L7F04D1F8: +/* 081D28 7F04D1F8 1441000C */ bne $v0, $at, .L7F04D22C +/* 081D2C 7F04D1FC 8FB90164 */ lw $t9, 0x164($sp) +/* 081D30 7F04D200 92220001 */ lbu $v0, 1($s1) +/* 081D34 7F04D204 8E230004 */ lw $v1, 4($s1) +/* 081D38 7F04D208 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 081D3C 7F04D20C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 081D40 7F04D210 304F000F */ andi $t7, $v0, 0xf +/* 081D44 7F04D214 0061C024 */ and $t8, $v1, $at +/* 081D48 7F04D218 03384021 */ addu $t0, $t9, $t8 +/* 081D4C 7F04D21C 000F4900 */ sll $t1, $t7, 4 +/* 081D50 7F04D220 01098023 */ subu $s0, $t0, $t1 +/* 081D54 7F04D224 1000FFE9 */ b .L7F04D1CC +/* 081D58 7F04D228 26310008 */ addiu $s1, $s1, 8 +.L7F04D22C: +/* 081D5C 7F04D22C 2401FFBF */ li $at, -65 +/* 081D60 7F04D230 144100E2 */ bne $v0, $at, .L7F04D5BC +/* 081D64 7F04D234 2403000A */ li $v1, 10 +/* 081D68 7F04D238 3C0B8003 */ lui $t3, %hi(D_8003204C) +/* 081D6C 7F04D23C 256B204C */ addiu $t3, %lo(D_8003204C) # addiu $t3, $t3, 0x204c +/* 081D70 7F04D240 8D610000 */ lw $at, ($t3) +/* 081D74 7F04D244 27AA00E8 */ addiu $t2, $sp, 0xe8 +/* 081D78 7F04D248 8D6D0004 */ lw $t5, 4($t3) +/* 081D7C 7F04D24C AD410000 */ sw $at, ($t2) +/* 081D80 7F04D250 8D610008 */ lw $at, 8($t3) +/* 081D84 7F04D254 3C0F8003 */ lui $t7, %hi(D_80032058) +/* 081D88 7F04D258 25EF2058 */ addiu $t7, %lo(D_80032058) # addiu $t7, $t7, 0x2058 +/* 081D8C 7F04D25C AD4D0004 */ sw $t5, 4($t2) +/* 081D90 7F04D260 AD410008 */ sw $at, 8($t2) +/* 081D94 7F04D264 8DE10000 */ lw $at, ($t7) +/* 081D98 7F04D268 27AE00DC */ addiu $t6, $sp, 0xdc +/* 081D9C 7F04D26C 8DF90004 */ lw $t9, 4($t7) +/* 081DA0 7F04D270 ADC10000 */ sw $at, ($t6) +/* 081DA4 7F04D274 8DE10008 */ lw $at, 8($t7) +/* 081DA8 7F04D278 ADD90004 */ sw $t9, 4($t6) +/* 081DAC 7F04D27C 00001025 */ move $v0, $zero +/* 081DB0 7F04D280 ADC10008 */ sw $at, 8($t6) +/* 081DB4 7F04D284 92280005 */ lbu $t0, 5($s1) +/* 081DB8 7F04D288 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 081DBC 7F04D28C 03C02825 */ move $a1, $fp +/* 081DC0 7F04D290 0103001A */ div $zero, $t0, $v1 +/* 081DC4 7F04D294 00004812 */ mflo $t1 +/* 081DC8 7F04D298 AFA900F8 */ sw $t1, 0xf8($sp) +/* 081DCC 7F04D29C 922C0006 */ lbu $t4, 6($s1) +/* 081DD0 7F04D2A0 14600002 */ bnez $v1, .L7F04D2AC +/* 081DD4 7F04D2A4 00000000 */ nop +/* 081DD8 7F04D2A8 0007000D */ break 7 +.L7F04D2AC: +/* 081DDC 7F04D2AC 2401FFFF */ li $at, -1 +/* 081DE0 7F04D2B0 14610004 */ bne $v1, $at, .L7F04D2C4 +/* 081DE4 7F04D2B4 3C018000 */ lui $at, 0x8000 +/* 081DE8 7F04D2B8 15010002 */ bne $t0, $at, .L7F04D2C4 +/* 081DEC 7F04D2BC 00000000 */ nop +/* 081DF0 7F04D2C0 0006000D */ break 6 +.L7F04D2C4: +/* 081DF4 7F04D2C4 0183001A */ div $zero, $t4, $v1 +/* 081DF8 7F04D2C8 00005012 */ mflo $t2 +/* 081DFC 7F04D2CC AFAA00FC */ sw $t2, 0xfc($sp) +/* 081E00 7F04D2D0 922B0007 */ lbu $t3, 7($s1) +/* 081E04 7F04D2D4 14600002 */ bnez $v1, .L7F04D2E0 +/* 081E08 7F04D2D8 00000000 */ nop +/* 081E0C 7F04D2DC 0007000D */ break 7 +.L7F04D2E0: +/* 081E10 7F04D2E0 2401FFFF */ li $at, -1 +/* 081E14 7F04D2E4 14610004 */ bne $v1, $at, .L7F04D2F8 +/* 081E18 7F04D2E8 3C018000 */ lui $at, 0x8000 +/* 081E1C 7F04D2EC 15810002 */ bne $t4, $at, .L7F04D2F8 +/* 081E20 7F04D2F0 00000000 */ nop +/* 081E24 7F04D2F4 0006000D */ break 6 +.L7F04D2F8: +/* 081E28 7F04D2F8 0163001A */ div $zero, $t3, $v1 +/* 081E2C 7F04D2FC 00006812 */ mflo $t5 +/* 081E30 7F04D300 AFAD0100 */ sw $t5, 0x100($sp) +/* 081E34 7F04D304 14600002 */ bnez $v1, .L7F04D310 +/* 081E38 7F04D308 00000000 */ nop +/* 081E3C 7F04D30C 0007000D */ break 7 +.L7F04D310: +/* 081E40 7F04D310 2401FFFF */ li $at, -1 +/* 081E44 7F04D314 14610004 */ bne $v1, $at, .L7F04D328 +/* 081E48 7F04D318 3C018000 */ lui $at, 0x8000 +/* 081E4C 7F04D31C 15610002 */ bne $t3, $at, .L7F04D328 +/* 081E50 7F04D320 00000000 */ nop +/* 081E54 7F04D324 0006000D */ break 6 +.L7F04D328: +/* 081E58 7F04D328 8C980000 */ lw $t8, ($a0) +.L7F04D32C: +/* 081E5C 7F04D32C 8FAF00E8 */ lw $t7, 0xe8($sp) +/* 081E60 7F04D330 24840004 */ addiu $a0, $a0, 4 +/* 081E64 7F04D334 00187100 */ sll $t6, $t8, 4 +/* 081E68 7F04D338 020E1821 */ addu $v1, $s0, $t6 +/* 081E6C 7F04D33C 84620000 */ lh $v0, ($v1) +/* 081E70 7F04D340 27AB0104 */ addiu $t3, $sp, 0x104 +/* 081E74 7F04D344 004F082A */ slt $at, $v0, $t7 +/* 081E78 7F04D348 50200004 */ beql $at, $zero, .L7F04D35C +/* 081E7C 7F04D34C 8FB900DC */ lw $t9, 0xdc($sp) +/* 081E80 7F04D350 AFA200E8 */ sw $v0, 0xe8($sp) +/* 081E84 7F04D354 84620000 */ lh $v0, ($v1) +/* 081E88 7F04D358 8FB900DC */ lw $t9, 0xdc($sp) +.L7F04D35C: +/* 081E8C 7F04D35C 0322082A */ slt $at, $t9, $v0 +/* 081E90 7F04D360 50200003 */ beql $at, $zero, .L7F04D370 +/* 081E94 7F04D364 84620002 */ lh $v0, 2($v1) +/* 081E98 7F04D368 AFA200DC */ sw $v0, 0xdc($sp) +/* 081E9C 7F04D36C 84620002 */ lh $v0, 2($v1) +.L7F04D370: +/* 081EA0 7F04D370 8FA800EC */ lw $t0, 0xec($sp) +/* 081EA4 7F04D374 0048082A */ slt $at, $v0, $t0 +/* 081EA8 7F04D378 50200004 */ beql $at, $zero, .L7F04D38C +/* 081EAC 7F04D37C 8FA900E0 */ lw $t1, 0xe0($sp) +/* 081EB0 7F04D380 AFA200EC */ sw $v0, 0xec($sp) +/* 081EB4 7F04D384 84620002 */ lh $v0, 2($v1) +/* 081EB8 7F04D388 8FA900E0 */ lw $t1, 0xe0($sp) +.L7F04D38C: +/* 081EBC 7F04D38C 0122082A */ slt $at, $t1, $v0 +/* 081EC0 7F04D390 50200003 */ beql $at, $zero, .L7F04D3A0 +/* 081EC4 7F04D394 84620004 */ lh $v0, 4($v1) +/* 081EC8 7F04D398 AFA200E0 */ sw $v0, 0xe0($sp) +/* 081ECC 7F04D39C 84620004 */ lh $v0, 4($v1) +.L7F04D3A0: +/* 081ED0 7F04D3A0 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 081ED4 7F04D3A4 004C082A */ slt $at, $v0, $t4 +/* 081ED8 7F04D3A8 50200004 */ beql $at, $zero, .L7F04D3BC +/* 081EDC 7F04D3AC 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 081EE0 7F04D3B0 AFA200F0 */ sw $v0, 0xf0($sp) +/* 081EE4 7F04D3B4 84620004 */ lh $v0, 4($v1) +/* 081EE8 7F04D3B8 8FAA00E4 */ lw $t2, 0xe4($sp) +.L7F04D3BC: +/* 081EEC 7F04D3BC 0142082A */ slt $at, $t2, $v0 +/* 081EF0 7F04D3C0 10200002 */ beqz $at, .L7F04D3CC +/* 081EF4 7F04D3C4 00000000 */ nop +/* 081EF8 7F04D3C8 AFA200E4 */ sw $v0, 0xe4($sp) +.L7F04D3CC: +/* 081EFC 7F04D3CC 548BFFD7 */ bnel $a0, $t3, .L7F04D32C +/* 081F00 7F04D3D0 8C980000 */ lw $t8, ($a0) +/* 081F04 7F04D3D4 02E02025 */ move $a0, $s7 +/* 081F08 7F04D3D8 27A600E8 */ addiu $a2, $sp, 0xe8 +/* 081F0C 7F04D3DC 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 081F10 7F04D3E0 27A700DC */ addiu $a3, $sp, 0xdc +/* 081F14 7F04D3E4 10400162 */ beqz $v0, .L7F04D970 +/* 081F18 7F04D3E8 3C0D8003 */ lui $t5, %hi(D_80032064) +/* 081F1C 7F04D3EC 25AD2064 */ addiu $t5, %lo(D_80032064) # addiu $t5, $t5, 0x2064 +/* 081F20 7F04D3F0 8DA10000 */ lw $at, ($t5) +/* 081F24 7F04D3F4 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 081F28 7F04D3F8 27B8011C */ addiu $t8, $sp, 0x11c +/* 081F2C 7F04D3FC ACE10000 */ sw $at, ($a3) +/* 081F30 7F04D400 8DAE0004 */ lw $t6, 4($t5) +/* 081F34 7F04D404 ACEE0004 */ sw $t6, 4($a3) +/* 081F38 7F04D408 8DA10008 */ lw $at, 8($t5) +/* 081F3C 7F04D40C ACE10008 */ sw $at, 8($a3) +/* 081F40 7F04D410 8FAC0100 */ lw $t4, 0x100($sp) +/* 081F44 7F04D414 8FA800FC */ lw $t0, 0xfc($sp) +/* 081F48 7F04D418 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 081F4C 7F04D41C 8FAB0154 */ lw $t3, 0x154($sp) +/* 081F50 7F04D420 000C5100 */ sll $t2, $t4, 4 +/* 081F54 7F04D424 00084900 */ sll $t1, $t0, 4 +/* 081F58 7F04D428 000FC900 */ sll $t9, $t7, 4 +/* 081F5C 7F04D42C 02192021 */ addu $a0, $s0, $t9 +/* 081F60 7F04D430 02092821 */ addu $a1, $s0, $t1 +/* 081F64 7F04D434 020A3021 */ addu $a2, $s0, $t2 +/* 081F68 7F04D438 AFB8001C */ sw $t8, 0x1c($sp) +/* 081F6C 7F04D43C AFBE0018 */ sw $fp, 0x18($sp) +/* 081F70 7F04D440 AFB70010 */ sw $s7, 0x10($sp) +/* 081F74 7F04D444 0FC24A24 */ jal sub_GAME_7F092890 +/* 081F78 7F04D448 AFAB0014 */ sw $t3, 0x14($sp) +/* 081F7C 7F04D44C 10400148 */ beqz $v0, .L7F04D970 +/* 081F80 7F04D450 00000000 */ nop +/* 081F84 7F04D454 C7A4011C */ lwc1 $f4, 0x11c($sp) +/* 081F88 7F04D458 C6E80000 */ lwc1 $f8, ($s7) +/* 081F8C 7F04D45C C7B20120 */ lwc1 $f18, 0x120($sp) +/* 081F90 7F04D460 4600218D */ trunc.w.s $f6, $f4 +/* 081F94 7F04D464 92290000 */ lbu $t1, ($s1) +/* 081F98 7F04D468 02201025 */ move $v0, $s1 +/* 081F9C 7F04D46C 4600428D */ trunc.w.s $f10, $f8 +/* 081FA0 7F04D470 440E3000 */ mfc1 $t6, $f6 +/* 081FA4 7F04D474 C6E60004 */ lwc1 $f6, 4($s7) +/* 081FA8 7F04D478 4600910D */ trunc.w.s $f4, $f18 +/* 081FAC 7F04D47C 44195000 */ mfc1 $t9, $f10 +/* 081FB0 7F04D480 0271082B */ sltu $at, $s3, $s1 +/* 081FB4 7F04D484 4600320D */ trunc.w.s $f8, $f6 +/* 081FB8 7F04D488 01D94023 */ subu $t0, $t6, $t9 +/* 081FBC 7F04D48C 44888000 */ mtc1 $t0, $f16 +/* 081FC0 7F04D490 440C2000 */ mfc1 $t4, $f4 +/* 081FC4 7F04D494 440B4000 */ mfc1 $t3, $f8 +/* 081FC8 7F04D498 468080A0 */ cvt.s.w $f2, $f16 +/* 081FCC 7F04D49C C7B00124 */ lwc1 $f16, 0x124($sp) +/* 081FD0 7F04D4A0 C6E40008 */ lwc1 $f4, 8($s7) +/* 081FD4 7F04D4A4 018BC023 */ subu $t8, $t4, $t3 +/* 081FD8 7F04D4A8 44985000 */ mtc1 $t8, $f10 +/* 081FDC 7F04D4AC 4600848D */ trunc.w.s $f18, $f16 +/* 081FE0 7F04D4B0 4600218D */ trunc.w.s $f6, $f4 +/* 081FE4 7F04D4B4 440F9000 */ mfc1 $t7, $f18 +/* 081FE8 7F04D4B8 46805320 */ cvt.s.w $f12, $f10 +/* 081FEC 7F04D4BC 44193000 */ mfc1 $t9, $f6 +/* 081FF0 7F04D4C0 46021282 */ mul.s $f10, $f2, $f2 +/* 081FF4 7F04D4C4 01F94023 */ subu $t0, $t7, $t9 +/* 081FF8 7F04D4C8 44884000 */ mtc1 $t0, $f8 +/* 081FFC 7F04D4CC 460C6402 */ mul.s $f16, $f12, $f12 +/* 082000 7F04D4D0 12A9000A */ beq $s5, $t1, .L7F04D4FC +/* 082004 7F04D4D4 468043A0 */ cvt.s.w $f14, $f8 +/* 082008 7F04D4D8 10200008 */ beqz $at, .L7F04D4FC +/* 08200C 7F04D4DC 00000000 */ nop +/* 082010 7F04D4E0 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D4E4: +/* 082014 7F04D4E4 2442FFF8 */ addiu $v0, $v0, -8 +/* 082018 7F04D4E8 0262082B */ sltu $at, $s3, $v0 +/* 08201C 7F04D4EC 12AA0003 */ beq $s5, $t2, .L7F04D4FC +/* 082020 7F04D4F0 00000000 */ nop +/* 082024 7F04D4F4 5420FFFB */ bnezl $at, .L7F04D4E4 +/* 082028 7F04D4F8 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D4FC: +/* 08202C 7F04D4FC 460E7102 */ mul.s $f4, $f14, $f14 +/* 082030 7F04D500 54530004 */ bnel $v0, $s3, .L7F04D514 +/* 082034 7F04D504 8C430004 */ lw $v1, 4($v0) +/* 082038 7F04D508 10000006 */ b .L7F04D524 +/* 08203C 7F04D50C 2404FFFF */ li $a0, -1 +/* 082040 7F04D510 8C430004 */ lw $v1, 4($v0) +.L7F04D514: +/* 082044 7F04D514 3C018000 */ lui $at, 0x8000 +/* 082048 7F04D518 2463FFF8 */ addiu $v1, $v1, -8 +/* 08204C 7F04D51C 00616025 */ or $t4, $v1, $at +/* 082050 7F04D520 95840000 */ lhu $a0, ($t4) +.L7F04D524: +/* 082054 7F04D524 46105480 */ add.s $f18, $f10, $f16 +/* 082058 7F04D528 46049000 */ add.s $f0, $f18, $f4 +/* 08205C 7F04D52C 4614003C */ c.lt.s $f0, $f20 +/* 082060 7F04D530 00000000 */ nop +/* 082064 7F04D534 4500010E */ bc1f .L7F04D970 +/* 082068 7F04D538 00000000 */ nop +/* 08206C 7F04D53C C7A6011C */ lwc1 $f6, 0x11c($sp) +/* 082070 7F04D540 240C0001 */ li $t4, 1 +/* 082074 7F04D544 46000506 */ mov.s $f20, $f0 +/* 082078 7F04D548 E6860000 */ swc1 $f6, ($s4) +/* 08207C 7F04D54C C7A80120 */ lwc1 $f8, 0x120($sp) +/* 082080 7F04D550 E6880004 */ swc1 $f8, 4($s4) +/* 082084 7F04D554 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 082088 7F04D558 E68A0008 */ swc1 $f10, 8($s4) +/* 08208C 7F04D55C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 082090 7F04D560 E690000C */ swc1 $f16, 0xc($s4) +/* 082094 7F04D564 C7B2012C */ lwc1 $f18, 0x12c($sp) +/* 082098 7F04D568 E6920010 */ swc1 $f18, 0x10($s4) +/* 08209C 7F04D56C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 0820A0 7F04D570 E6840014 */ swc1 $f4, 0x14($s4) +/* 0820A4 7F04D574 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 0820A8 7F04D578 000BC100 */ sll $t8, $t3, 4 +/* 0820AC 7F04D57C 03106821 */ addu $t5, $t8, $s0 +/* 0820B0 7F04D580 AE8D0018 */ sw $t5, 0x18($s4) +/* 0820B4 7F04D584 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0820B8 7F04D588 000E7900 */ sll $t7, $t6, 4 +/* 0820BC 7F04D58C 01F0C821 */ addu $t9, $t7, $s0 +/* 0820C0 7F04D590 AE99001C */ sw $t9, 0x1c($s4) +/* 0820C4 7F04D594 8FA80100 */ lw $t0, 0x100($sp) +/* 0820C8 7F04D598 A684002A */ sh $a0, 0x2a($s4) +/* 0820CC 7F04D59C AE910024 */ sw $s1, 0x24($s4) +/* 0820D0 7F04D5A0 00084900 */ sll $t1, $t0, 4 +/* 0820D4 7F04D5A4 01305021 */ addu $t2, $t1, $s0 +/* 0820D8 7F04D5A8 AE8A0020 */ sw $t2, 0x20($s4) +/* 0820DC 7F04D5AC A6800028 */ sh $zero, 0x28($s4) +/* 0820E0 7F04D5B0 AFAC0110 */ sw $t4, 0x110($sp) +/* 0820E4 7F04D5B4 1000FF05 */ b .L7F04D1CC +/* 0820E8 7F04D5B8 26310008 */ addiu $s1, $s1, 8 +.L7F04D5BC: +/* 0820EC 7F04D5BC 2401FFB1 */ li $at, -79 +/* 0820F0 7F04D5C0 144100EB */ bne $v0, $at, .L7F04D970 +/* 0820F4 7F04D5C4 00000000 */ nop +/* 0820F8 7F04D5C8 00009025 */ move $s2, $zero +.L7F04D5CC: +/* 0820FC 7F04D5CC 3C188003 */ lui $t8, %hi(D_80032070) +/* 082100 7F04D5D0 27182070 */ addiu $t8, %lo(D_80032070) # addiu $t8, $t8, 0x2070 +/* 082104 7F04D5D4 8F010000 */ lw $at, ($t8) +/* 082108 7F04D5D8 27AB0094 */ addiu $t3, $sp, 0x94 +/* 08210C 7F04D5DC 8F0E0004 */ lw $t6, 4($t8) +/* 082110 7F04D5E0 AD610000 */ sw $at, ($t3) +/* 082114 7F04D5E4 8F010008 */ lw $at, 8($t8) +/* 082118 7F04D5E8 3C198003 */ lui $t9, %hi(D_8003207C) +/* 08211C 7F04D5EC 2739207C */ addiu $t9, %lo(D_8003207C) # addiu $t9, $t9, 0x207c +/* 082120 7F04D5F0 AD6E0004 */ sw $t6, 4($t3) +/* 082124 7F04D5F4 AD610008 */ sw $at, 8($t3) +/* 082128 7F04D5F8 8F210000 */ lw $at, ($t9) +/* 08212C 7F04D5FC 27AF0088 */ addiu $t7, $sp, 0x88 +/* 082130 7F04D600 8F290004 */ lw $t1, 4($t9) +/* 082134 7F04D604 ADE10000 */ sw $at, ($t7) +/* 082138 7F04D608 8F210008 */ lw $at, 8($t9) +/* 08213C 7F04D60C ADE90004 */ sw $t1, 4($t7) +/* 082140 7F04D610 1640000B */ bnez $s2, .L7F04D640 +/* 082144 7F04D614 ADE10008 */ sw $at, 8($t7) +/* 082148 7F04D618 8E2A0004 */ lw $t2, 4($s1) +/* 08214C 7F04D61C 314C000F */ andi $t4, $t2, 0xf +/* 082150 7F04D620 AFAC00A4 */ sw $t4, 0xa4($sp) +/* 082154 7F04D624 922D0007 */ lbu $t5, 7($s1) +/* 082158 7F04D628 000D5902 */ srl $t3, $t5, 4 +/* 08215C 7F04D62C AFAB00A8 */ sw $t3, 0xa8($sp) +/* 082160 7F04D630 8E380000 */ lw $t8, ($s1) +/* 082164 7F04D634 330E000F */ andi $t6, $t8, 0xf +/* 082168 7F04D638 10000024 */ b .L7F04D6CC +/* 08216C 7F04D63C AFAE00AC */ sw $t6, 0xac($sp) +.L7F04D640: +/* 082170 7F04D640 24010001 */ li $at, 1 +/* 082174 7F04D644 5641000C */ bnel $s2, $at, .L7F04D678 +/* 082178 7F04D648 24010002 */ li $at, 2 +/* 08217C 7F04D64C 92280006 */ lbu $t0, 6($s1) +/* 082180 7F04D650 310F000F */ andi $t7, $t0, 0xf +/* 082184 7F04D654 AFAF00A4 */ sw $t7, 0xa4($sp) +/* 082188 7F04D658 96390006 */ lhu $t9, 6($s1) +/* 08218C 7F04D65C 00194B02 */ srl $t1, $t9, 0xc +/* 082190 7F04D660 AFA900A8 */ sw $t1, 0xa8($sp) +/* 082194 7F04D664 922A0003 */ lbu $t2, 3($s1) +/* 082198 7F04D668 000A6102 */ srl $t4, $t2, 4 +/* 08219C 7F04D66C 10000017 */ b .L7F04D6CC +/* 0821A0 7F04D670 AFAC00AC */ sw $t4, 0xac($sp) +/* 0821A4 7F04D674 24010002 */ li $at, 2 +.L7F04D678: +/* 0821A8 7F04D678 5641000C */ bnel $s2, $at, .L7F04D6AC +/* 0821AC 7F04D67C 92390004 */ lbu $t9, 4($s1) +/* 0821B0 7F04D680 962D0004 */ lhu $t5, 4($s1) +/* 0821B4 7F04D684 31AB000F */ andi $t3, $t5, 0xf +/* 0821B8 7F04D688 AFAB00A4 */ sw $t3, 0xa4($sp) +/* 0821BC 7F04D68C 92380005 */ lbu $t8, 5($s1) +/* 0821C0 7F04D690 00187102 */ srl $t6, $t8, 4 +/* 0821C4 7F04D694 AFAE00A8 */ sw $t6, 0xa8($sp) +/* 0821C8 7F04D698 92280002 */ lbu $t0, 2($s1) +/* 0821CC 7F04D69C 310F000F */ andi $t7, $t0, 0xf +/* 0821D0 7F04D6A0 1000000A */ b .L7F04D6CC +/* 0821D4 7F04D6A4 AFAF00AC */ sw $t7, 0xac($sp) +/* 0821D8 7F04D6A8 92390004 */ lbu $t9, 4($s1) +.L7F04D6AC: +/* 0821DC 7F04D6AC 3329000F */ andi $t1, $t9, 0xf +/* 0821E0 7F04D6B0 AFA900A4 */ sw $t1, 0xa4($sp) +/* 0821E4 7F04D6B4 8E2A0004 */ lw $t2, 4($s1) +/* 0821E8 7F04D6B8 000A6702 */ srl $t4, $t2, 0x1c +/* 0821EC 7F04D6BC AFAC00A8 */ sw $t4, 0xa8($sp) +/* 0821F0 7F04D6C0 962D0002 */ lhu $t5, 2($s1) +/* 0821F4 7F04D6C4 000D5B02 */ srl $t3, $t5, 0xc +/* 0821F8 7F04D6C8 AFAB00AC */ sw $t3, 0xac($sp) +.L7F04D6CC: +/* 0821FC 7F04D6CC 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 082200 7F04D6D0 8C980000 */ lw $t8, ($a0) +.L7F04D6D4: +/* 082204 7F04D6D4 8FA80094 */ lw $t0, 0x94($sp) +/* 082208 7F04D6D8 24840004 */ addiu $a0, $a0, 4 +/* 08220C 7F04D6DC 00187100 */ sll $t6, $t8, 4 +/* 082210 7F04D6E0 020E1821 */ addu $v1, $s0, $t6 +/* 082214 7F04D6E4 84620000 */ lh $v0, ($v1) +/* 082218 7F04D6E8 0048082A */ slt $at, $v0, $t0 +/* 08221C 7F04D6EC 50200004 */ beql $at, $zero, .L7F04D700 +/* 082220 7F04D6F0 8FAF0088 */ lw $t7, 0x88($sp) +/* 082224 7F04D6F4 AFA20094 */ sw $v0, 0x94($sp) +/* 082228 7F04D6F8 84620000 */ lh $v0, ($v1) +/* 08222C 7F04D6FC 8FAF0088 */ lw $t7, 0x88($sp) +.L7F04D700: +/* 082230 7F04D700 01E2082A */ slt $at, $t7, $v0 +/* 082234 7F04D704 50200003 */ beql $at, $zero, .L7F04D714 +/* 082238 7F04D708 84620002 */ lh $v0, 2($v1) +/* 08223C 7F04D70C AFA20088 */ sw $v0, 0x88($sp) +/* 082240 7F04D710 84620002 */ lh $v0, 2($v1) +.L7F04D714: +/* 082244 7F04D714 8FB90098 */ lw $t9, 0x98($sp) +/* 082248 7F04D718 0059082A */ slt $at, $v0, $t9 +/* 08224C 7F04D71C 50200004 */ beql $at, $zero, .L7F04D730 +/* 082250 7F04D720 8FA9008C */ lw $t1, 0x8c($sp) +/* 082254 7F04D724 AFA20098 */ sw $v0, 0x98($sp) +/* 082258 7F04D728 84620002 */ lh $v0, 2($v1) +/* 08225C 7F04D72C 8FA9008C */ lw $t1, 0x8c($sp) +.L7F04D730: +/* 082260 7F04D730 0122082A */ slt $at, $t1, $v0 +/* 082264 7F04D734 50200003 */ beql $at, $zero, .L7F04D744 +/* 082268 7F04D738 84620004 */ lh $v0, 4($v1) +/* 08226C 7F04D73C AFA2008C */ sw $v0, 0x8c($sp) +/* 082270 7F04D740 84620004 */ lh $v0, 4($v1) +.L7F04D744: +/* 082274 7F04D744 8FAA009C */ lw $t2, 0x9c($sp) +/* 082278 7F04D748 004A082A */ slt $at, $v0, $t2 +/* 08227C 7F04D74C 50200004 */ beql $at, $zero, .L7F04D760 +/* 082280 7F04D750 8FAC0090 */ lw $t4, 0x90($sp) +/* 082284 7F04D754 AFA2009C */ sw $v0, 0x9c($sp) +/* 082288 7F04D758 84620004 */ lh $v0, 4($v1) +/* 08228C 7F04D75C 8FAC0090 */ lw $t4, 0x90($sp) +.L7F04D760: +/* 082290 7F04D760 0182082A */ slt $at, $t4, $v0 +/* 082294 7F04D764 10200002 */ beqz $at, .L7F04D770 +/* 082298 7F04D768 00000000 */ nop +/* 08229C 7F04D76C AFA20090 */ sw $v0, 0x90($sp) +.L7F04D770: +/* 0822A0 7F04D770 5496FFD8 */ bnel $a0, $s6, .L7F04D6D4 +/* 0822A4 7F04D774 8C980000 */ lw $t8, ($a0) +/* 0822A8 7F04D778 02E02025 */ move $a0, $s7 +/* 0822AC 7F04D77C 03C02825 */ move $a1, $fp +/* 0822B0 7F04D780 27A60094 */ addiu $a2, $sp, 0x94 +/* 0822B4 7F04D784 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0822B8 7F04D788 27A70088 */ addiu $a3, $sp, 0x88 +/* 0822BC 7F04D78C 10400074 */ beqz $v0, .L7F04D960 +/* 0822C0 7F04D790 3C0D8003 */ lui $t5, %hi(D_80032088) +/* 0822C4 7F04D794 25AD2088 */ addiu $t5, %lo(D_80032088) # addiu $t5, $t5, 0x2088 +/* 0822C8 7F04D798 8DA10000 */ lw $at, ($t5) +/* 0822CC 7F04D79C 27A70070 */ addiu $a3, $sp, 0x70 +/* 0822D0 7F04D7A0 27AB011C */ addiu $t3, $sp, 0x11c +/* 0822D4 7F04D7A4 ACE10000 */ sw $at, ($a3) +/* 0822D8 7F04D7A8 8DB80004 */ lw $t8, 4($t5) +/* 0822DC 7F04D7AC ACF80004 */ sw $t8, 4($a3) +/* 0822E0 7F04D7B0 8DA10008 */ lw $at, 8($t5) +/* 0822E4 7F04D7B4 ACE10008 */ sw $at, 8($a3) +/* 0822E8 7F04D7B8 8FA900AC */ lw $t1, 0xac($sp) +/* 0822EC 7F04D7BC 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0822F0 7F04D7C0 8FAE00A4 */ lw $t6, 0xa4($sp) +/* 0822F4 7F04D7C4 8FAC0154 */ lw $t4, 0x154($sp) +/* 0822F8 7F04D7C8 00095100 */ sll $t2, $t1, 4 +/* 0822FC 7F04D7CC 000FC900 */ sll $t9, $t7, 4 +/* 082300 7F04D7D0 000E4100 */ sll $t0, $t6, 4 +/* 082304 7F04D7D4 02082021 */ addu $a0, $s0, $t0 +/* 082308 7F04D7D8 02192821 */ addu $a1, $s0, $t9 +/* 08230C 7F04D7DC 020A3021 */ addu $a2, $s0, $t2 +/* 082310 7F04D7E0 AFAB001C */ sw $t3, 0x1c($sp) +/* 082314 7F04D7E4 AFBE0018 */ sw $fp, 0x18($sp) +/* 082318 7F04D7E8 AFB70010 */ sw $s7, 0x10($sp) +/* 08231C 7F04D7EC 0FC24A24 */ jal sub_GAME_7F092890 +/* 082320 7F04D7F0 AFAC0014 */ sw $t4, 0x14($sp) +/* 082324 7F04D7F4 5040005B */ beql $v0, $zero, .L7F04D964 +/* 082328 7F04D7F8 26520001 */ addiu $s2, $s2, 1 +/* 08232C 7F04D7FC C7A6011C */ lwc1 $f6, 0x11c($sp) +/* 082330 7F04D800 C6EA0000 */ lwc1 $f10, ($s7) +/* 082334 7F04D804 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 082338 7F04D808 4600320D */ trunc.w.s $f8, $f6 +/* 08233C 7F04D80C 92390000 */ lbu $t9, ($s1) +/* 082340 7F04D810 02201025 */ move $v0, $s1 +/* 082344 7F04D814 4600540D */ trunc.w.s $f16, $f10 +/* 082348 7F04D818 44184000 */ mfc1 $t8, $f8 +/* 08234C 7F04D81C C6E80004 */ lwc1 $f8, 4($s7) +/* 082350 7F04D820 4600218D */ trunc.w.s $f6, $f4 +/* 082354 7F04D824 44088000 */ mfc1 $t0, $f16 +/* 082358 7F04D828 0271082B */ sltu $at, $s3, $s1 +/* 08235C 7F04D82C 4600428D */ trunc.w.s $f10, $f8 +/* 082360 7F04D830 03087823 */ subu $t7, $t8, $t0 +/* 082364 7F04D834 448F9000 */ mtc1 $t7, $f18 +/* 082368 7F04D838 44093000 */ mfc1 $t1, $f6 +/* 08236C 7F04D83C 440C5000 */ mfc1 $t4, $f10 +/* 082370 7F04D840 468090A0 */ cvt.s.w $f2, $f18 +/* 082374 7F04D844 C7B20124 */ lwc1 $f18, 0x124($sp) +/* 082378 7F04D848 C6E60008 */ lwc1 $f6, 8($s7) +/* 08237C 7F04D84C 012C5823 */ subu $t3, $t1, $t4 +/* 082380 7F04D850 448B8000 */ mtc1 $t3, $f16 +/* 082384 7F04D854 4600910D */ trunc.w.s $f4, $f18 +/* 082388 7F04D858 4600320D */ trunc.w.s $f8, $f6 +/* 08238C 7F04D85C 440E2000 */ mfc1 $t6, $f4 +/* 082390 7F04D860 46808320 */ cvt.s.w $f12, $f16 +/* 082394 7F04D864 44084000 */ mfc1 $t0, $f8 +/* 082398 7F04D868 46021402 */ mul.s $f16, $f2, $f2 +/* 08239C 7F04D86C 01C87823 */ subu $t7, $t6, $t0 +/* 0823A0 7F04D870 448F5000 */ mtc1 $t7, $f10 +/* 0823A4 7F04D874 460C6482 */ mul.s $f18, $f12, $f12 +/* 0823A8 7F04D878 12B9000A */ beq $s5, $t9, .L7F04D8A4 +/* 0823AC 7F04D87C 468053A0 */ cvt.s.w $f14, $f10 +/* 0823B0 7F04D880 10200008 */ beqz $at, .L7F04D8A4 +/* 0823B4 7F04D884 00000000 */ nop +/* 0823B8 7F04D888 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D88C: +/* 0823BC 7F04D88C 2442FFF8 */ addiu $v0, $v0, -8 +/* 0823C0 7F04D890 0262082B */ sltu $at, $s3, $v0 +/* 0823C4 7F04D894 12AA0003 */ beq $s5, $t2, .L7F04D8A4 +/* 0823C8 7F04D898 00000000 */ nop +/* 0823CC 7F04D89C 5420FFFB */ bnezl $at, .L7F04D88C +/* 0823D0 7F04D8A0 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D8A4: +/* 0823D4 7F04D8A4 460E7182 */ mul.s $f6, $f14, $f14 +/* 0823D8 7F04D8A8 54530004 */ bnel $v0, $s3, .L7F04D8BC +/* 0823DC 7F04D8AC 8C430004 */ lw $v1, 4($v0) +/* 0823E0 7F04D8B0 10000006 */ b .L7F04D8CC +/* 0823E4 7F04D8B4 2404FFFF */ li $a0, -1 +/* 0823E8 7F04D8B8 8C430004 */ lw $v1, 4($v0) +.L7F04D8BC: +/* 0823EC 7F04D8BC 3C018000 */ lui $at, 0x8000 +/* 0823F0 7F04D8C0 2463FFF8 */ addiu $v1, $v1, -8 +/* 0823F4 7F04D8C4 00614825 */ or $t1, $v1, $at +/* 0823F8 7F04D8C8 95240000 */ lhu $a0, ($t1) +.L7F04D8CC: +/* 0823FC 7F04D8CC 46128100 */ add.s $f4, $f16, $f18 +/* 082400 7F04D8D0 46062000 */ add.s $f0, $f4, $f6 +/* 082404 7F04D8D4 4614003C */ c.lt.s $f0, $f20 +/* 082408 7F04D8D8 00000000 */ nop +/* 08240C 7F04D8DC 45020021 */ bc1fl .L7F04D964 +/* 082410 7F04D8E0 26520001 */ addiu $s2, $s2, 1 +/* 082414 7F04D8E4 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 082418 7F04D8E8 26490001 */ addiu $t1, $s2, 1 +/* 08241C 7F04D8EC 46000506 */ mov.s $f20, $f0 +/* 082420 7F04D8F0 E6880000 */ swc1 $f8, ($s4) +/* 082424 7F04D8F4 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 082428 7F04D8F8 E68A0004 */ swc1 $f10, 4($s4) +/* 08242C 7F04D8FC C7B00124 */ lwc1 $f16, 0x124($sp) +/* 082430 7F04D900 E6900008 */ swc1 $f16, 8($s4) +/* 082434 7F04D904 C7B20128 */ lwc1 $f18, 0x128($sp) +/* 082438 7F04D908 E692000C */ swc1 $f18, 0xc($s4) +/* 08243C 7F04D90C C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 082440 7F04D910 E6840010 */ swc1 $f4, 0x10($s4) +/* 082444 7F04D914 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 082448 7F04D918 E6860014 */ swc1 $f6, 0x14($s4) +/* 08244C 7F04D91C 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 082450 7F04D920 000C5900 */ sll $t3, $t4, 4 +/* 082454 7F04D924 01706821 */ addu $t5, $t3, $s0 +/* 082458 7F04D928 AE8D0018 */ sw $t5, 0x18($s4) +/* 08245C 7F04D92C 8FB800A8 */ lw $t8, 0xa8($sp) +/* 082460 7F04D930 240C0001 */ li $t4, 1 +/* 082464 7F04D934 00187100 */ sll $t6, $t8, 4 +/* 082468 7F04D938 01D04021 */ addu $t0, $t6, $s0 +/* 08246C 7F04D93C AE88001C */ sw $t0, 0x1c($s4) +/* 082470 7F04D940 8FAF00AC */ lw $t7, 0xac($sp) +/* 082474 7F04D944 A684002A */ sh $a0, 0x2a($s4) +/* 082478 7F04D948 AE910024 */ sw $s1, 0x24($s4) +/* 08247C 7F04D94C 000FC900 */ sll $t9, $t7, 4 +/* 082480 7F04D950 03305021 */ addu $t2, $t9, $s0 +/* 082484 7F04D954 AE8A0020 */ sw $t2, 0x20($s4) +/* 082488 7F04D958 A6890028 */ sh $t1, 0x28($s4) +/* 08248C 7F04D95C AFAC0110 */ sw $t4, 0x110($sp) +.L7F04D960: +/* 082490 7F04D960 26520001 */ addiu $s2, $s2, 1 +.L7F04D964: +/* 082494 7F04D964 24010004 */ li $at, 4 +/* 082498 7F04D968 1641FF18 */ bne $s2, $at, .L7F04D5CC +/* 08249C 7F04D96C 00000000 */ nop +.L7F04D970: +/* 0824A0 7F04D970 1000FE16 */ b .L7F04D1CC +/* 0824A4 7F04D974 26310008 */ addiu $s1, $s1, 8 +.L7F04D978: +/* 0824A8 7F04D978 8FBF0054 */ lw $ra, 0x54($sp) +/* 0824AC 7F04D97C 8FA20110 */ lw $v0, 0x110($sp) +/* 0824B0 7F04D980 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0824B4 7F04D984 8FB00030 */ lw $s0, 0x30($sp) +/* 0824B8 7F04D988 8FB10034 */ lw $s1, 0x34($sp) +/* 0824BC 7F04D98C 8FB20038 */ lw $s2, 0x38($sp) +/* 0824C0 7F04D990 8FB3003C */ lw $s3, 0x3c($sp) +/* 0824C4 7F04D994 8FB40040 */ lw $s4, 0x40($sp) +/* 0824C8 7F04D998 8FB50044 */ lw $s5, 0x44($sp) +/* 0824CC 7F04D99C 8FB60048 */ lw $s6, 0x48($sp) +/* 0824D0 7F04D9A0 8FB7004C */ lw $s7, 0x4c($sp) +/* 0824D4 7F04D9A4 8FBE0050 */ lw $fp, 0x50($sp) +/* 0824D8 7F04D9A8 03E00008 */ jr $ra +/* 0824DC 7F04D9AC 27BD0150 */ addiu $sp, $sp, 0x150 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04D9B0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052D98 +.word 0x46fffe00 /*32767.0*/ +/*D:80052D9C*/ +glabel jpt_80052D9C +.word loc_CODE_7F04DAA4 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DAD8 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DAEC +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DB00 +.word loc_CODE_7F04DA48 + +/*D:80052DF0*/ +/*hack, doesn't fit in own function*/ +glabel jpt_80052DF0 +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object + + +.text +glabel sub_GAME_7F04D9B0 +/* 0824E0 7F04D9B0 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0824E4 7F04D9B4 AFBE0050 */ sw $fp, 0x50($sp) +/* 0824E8 7F04D9B8 AFB60048 */ sw $s6, 0x48($sp) +/* 0824EC 7F04D9BC AFB20038 */ sw $s2, 0x38($sp) +/* 0824F0 7F04D9C0 AFB00030 */ sw $s0, 0x30($sp) +/* 0824F4 7F04D9C4 00A09025 */ move $s2, $a1 +/* 0824F8 7F04D9C8 0080B025 */ move $s6, $a0 +/* 0824FC 7F04D9CC AFBF0054 */ sw $ra, 0x54($sp) +/* 082500 7F04D9D0 AFB7004C */ sw $s7, 0x4c($sp) +/* 082504 7F04D9D4 AFB50044 */ sw $s5, 0x44($sp) +/* 082508 7F04D9D8 AFB40040 */ sw $s4, 0x40($sp) +/* 08250C 7F04D9DC AFB3003C */ sw $s3, 0x3c($sp) +/* 082510 7F04D9E0 AFB10034 */ sw $s1, 0x34($sp) +/* 082514 7F04D9E4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 082518 7F04D9E8 AFA60100 */ sw $a2, 0x100($sp) +/* 08251C 7F04D9EC AFA70104 */ sw $a3, 0x104($sp) +/* 082520 7F04D9F0 AFA000D0 */ sw $zero, 0xd0($sp) +/* 082524 7F04D9F4 AFA000CC */ sw $zero, 0xcc($sp) +/* 082528 7F04D9F8 00A08025 */ move $s0, $a1 +/* 08252C 7F04D9FC 10A0009F */ beqz $a1, .L7F04DC7C +/* 082530 7F04DA00 0000F025 */ move $fp, $zero +/* 082534 7F04DA04 3C018005 */ lui $at, %hi(D_80052D98) +/* 082538 7F04DA08 3C1700FF */ lui $s7, (0x00FFFFFF >> 16) # lui $s7, 0xff +/* 08253C 7F04DA0C 36F7FFFF */ ori $s7, (0x00FFFFFF & 0xFFFF) # ori $s7, $s7, 0xffff +/* 082540 7F04DA10 C4342D98 */ lwc1 $f20, %lo(D_80052D98)($at) +/* 082544 7F04DA14 96020000 */ lhu $v0, ($s0) +.L7F04DA18: +/* 082548 7F04DA18 00009825 */ move $s3, $zero +/* 08254C 7F04DA1C 0000A825 */ move $s5, $zero +/* 082550 7F04DA20 304E00FF */ andi $t6, $v0, 0xff +/* 082554 7F04DA24 25CFFFFC */ addiu $t7, $t6, -4 +/* 082558 7F04DA28 2DE10015 */ sltiu $at, $t7, 0x15 +/* 08255C 7F04DA2C 10200037 */ beqz $at, .L7F04DB0C +/* 082560 7F04DA30 000F7880 */ sll $t7, $t7, 2 +/* 082564 7F04DA34 3C018005 */ lui $at, %hi(jpt_80052D9C) +/* 082568 7F04DA38 002F0821 */ addu $at, $at, $t7 +/* 08256C 7F04DA3C 8C2F2D9C */ lw $t7, %lo(jpt_80052D9C)($at) +/* 082570 7F04DA40 01E00008 */ jr $t7 +/* 082574 7F04DA44 00000000 */ nop +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 +/* 082584 7F04DA54 02002825 */ move $a1, $s0 +/* 082588 7F04DA58 8C430004 */ lw $v1, 4($v0) +/* 08258C 7F04DA5C 1060002B */ beqz $v1, .L7F04DB0C +/* 082590 7F04DA60 00000000 */ nop +/* 082594 7F04DA64 8E240000 */ lw $a0, ($s1) +/* 082598 7F04DA68 00609825 */ move $s3, $v1 +/* 08259C 7F04DA6C 14830005 */ bne $a0, $v1, .L7F04DA84 +/* 0825A0 7F04DA70 00000000 */ nop +/* 0825A4 7F04DA74 8E38001C */ lw $t8, 0x1c($s1) +/* 0825A8 7F04DA78 0097C824 */ and $t9, $a0, $s7 +/* 0825AC 7F04DA7C 10000001 */ b .L7F04DA84 +/* 0825B0 7F04DA80 03199821 */ addu $s3, $t8, $t9 +.L7F04DA84: +/* 0825B4 7F04DA84 8E230004 */ lw $v1, 4($s1) +/* 0825B8 7F04DA88 10600004 */ beqz $v1, .L7F04DA9C +/* 0825BC 7F04DA8C 00000000 */ nop +/* 0825C0 7F04DA90 8E28001C */ lw $t0, 0x1c($s1) +/* 0825C4 7F04DA94 00774824 */ and $t1, $v1, $s7 +/* 0825C8 7F04DA98 0109A821 */ addu $s5, $t0, $t1 +.L7F04DA9C: +/* 0825CC 7F04DA9C 1000001B */ b .L7F04DB0C +/* 0825D0 7F04DAA0 8C5E0000 */ lw $fp, ($v0) +loc_CODE_7F04DAA4: +/* 0825D4 7F04DAA4 8E020004 */ lw $v0, 4($s0) +/* 0825D8 7F04DAA8 8C440000 */ lw $a0, ($v0) +/* 0825DC 7F04DAAC 10800017 */ beqz $a0, .L7F04DB0C +/* 0825E0 7F04DAB0 00000000 */ nop +/* 0825E4 7F04DAB4 8C450004 */ lw $a1, 4($v0) +/* 0825E8 7F04DAB8 8C430008 */ lw $v1, 8($v0) +/* 0825EC 7F04DABC 00975024 */ and $t2, $a0, $s7 +/* 0825F0 7F04DAC0 10A00003 */ beqz $a1, .L7F04DAD0 +/* 0825F4 7F04DAC4 006A9821 */ addu $s3, $v1, $t2 +/* 0825F8 7F04DAC8 00B75824 */ and $t3, $a1, $s7 +/* 0825FC 7F04DACC 006BA821 */ addu $s5, $v1, $t3 +.L7F04DAD0: +/* 082600 7F04DAD0 1000000E */ b .L7F04DB0C +/* 082604 7F04DAD4 0060F025 */ move $fp, $v1 +loc_CODE_7F04DAD8: +/* 082608 7F04DAD8 02C02025 */ move $a0, $s6 +/* 08260C 7F04DADC 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 082610 7F04DAE0 02002825 */ move $a1, $s0 +/* 082614 7F04DAE4 10000009 */ b .L7F04DB0C +/* 082618 7F04DAE8 00000000 */ nop +loc_CODE_7F04DAEC: +/* 08261C 7F04DAEC 02C02025 */ move $a0, $s6 +/* 082620 7F04DAF0 0FC1BA6F */ jal process_12_handle_switch +/* 082624 7F04DAF4 02002825 */ move $a1, $s0 +/* 082628 7F04DAF8 10000004 */ b .L7F04DB0C +/* 08262C 7F04DAFC 00000000 */ nop +loc_CODE_7F04DB00: +/* 082630 7F04DB00 02C02025 */ move $a0, $s6 +/* 082634 7F04DB04 0FC1BA82 */ jal process_17_pointer_to_head +/* 082638 7F04DB08 02002825 */ move $a1, $s0 +def_7F04DA40: +.L7F04DB0C: +/* 08263C 7F04DB0C 12600043 */ beqz $s3, .L7F04DC1C +/* 082640 7F04DB10 02002025 */ move $a0, $s0 +/* 082644 7F04DB14 00002825 */ move $a1, $zero +/* 082648 7F04DB18 0FC1B15C */ jal sub_GAME_7F06C570 +/* 08264C 7F04DB1C 00008825 */ move $s1, $zero +/* 082650 7F04DB20 04400004 */ bltz $v0, .L7F04DB34 +/* 082654 7F04DB24 0040A025 */ move $s4, $v0 +/* 082658 7F04DB28 8ECC000C */ lw $t4, 0xc($s6) +/* 08265C 7F04DB2C 00026980 */ sll $t5, $v0, 6 +/* 082660 7F04DB30 018D8821 */ addu $s1, $t4, $t5 +.L7F04DB34: +/* 082664 7F04DB34 12200029 */ beqz $s1, .L7F04DBDC +/* 082668 7F04DB38 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 08266C 7F04DB3C 122E0027 */ beq $s1, $t6, .L7F04DBDC +/* 082670 7F04DB40 02202025 */ move $a0, $s1 +/* 082674 7F04DB44 AFB100D0 */ sw $s1, 0xd0($sp) +/* 082678 7F04DB48 0FC167EE */ jal sub_GAME_7F059FB8 +/* 08267C 7F04DB4C 27A50064 */ addiu $a1, $sp, 0x64 +/* 082680 7F04DB50 8FAF0100 */ lw $t7, 0x100($sp) +/* 082684 7F04DB54 27A40064 */ addiu $a0, $sp, 0x64 +/* 082688 7F04DB58 27A500EC */ addiu $a1, $sp, 0xec +/* 08268C 7F04DB5C C5E40000 */ lwc1 $f4, ($t7) +/* 082690 7F04DB60 E7A400EC */ swc1 $f4, 0xec($sp) +/* 082694 7F04DB64 C5E60004 */ lwc1 $f6, 4($t7) +/* 082698 7F04DB68 E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 08269C 7F04DB6C C5E80008 */ lwc1 $f8, 8($t7) +/* 0826A0 7F04DB70 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0826A4 7F04DB74 E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 0826A8 7F04DB78 8FB80104 */ lw $t8, 0x104($sp) +/* 0826AC 7F04DB7C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0826B0 7F04DB80 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0826B4 7F04DB84 C70A0000 */ lwc1 $f10, ($t8) +/* 0826B8 7F04DB88 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 0826BC 7F04DB8C C7100004 */ lwc1 $f16, 4($t8) +/* 0826C0 7F04DB90 E7B000D8 */ swc1 $f16, 0xd8($sp) +/* 0826C4 7F04DB94 C7120008 */ lwc1 $f18, 8($t8) +/* 0826C8 7F04DB98 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0826CC 7F04DB9C E7B200DC */ swc1 $f18, 0xdc($sp) +/* 0826D0 7F04DBA0 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0826D4 7F04DBA4 C7A800EC */ lwc1 $f8, 0xec($sp) +/* 0826D8 7F04DBA8 C7B000D8 */ lwc1 $f16, 0xd8($sp) +/* 0826DC 7F04DBAC 46142182 */ mul.s $f6, $f4, $f20 +/* 0826E0 7F04DBB0 C7A400F0 */ lwc1 $f4, 0xf0($sp) +/* 0826E4 7F04DBB4 46148482 */ mul.s $f18, $f16, $f20 +/* 0826E8 7F04DBB8 C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 0826EC 7F04DBBC 46083280 */ add.s $f10, $f6, $f8 +/* 0826F0 7F04DBC0 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 0826F4 7F04DBC4 46049180 */ add.s $f6, $f18, $f4 +/* 0826F8 7F04DBC8 E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 0826FC 7F04DBCC 46144282 */ mul.s $f10, $f8, $f20 +/* 082700 7F04DBD0 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 082704 7F04DBD4 46105480 */ add.s $f18, $f10, $f16 +/* 082708 7F04DBD8 E7B200E8 */ swc1 $f18, 0xe8($sp) +.L7F04DBDC: +/* 08270C 7F04DBDC 8FB90108 */ lw $t9, 0x108($sp) +/* 082710 7F04DBE0 27A400EC */ addiu $a0, $sp, 0xec +/* 082714 7F04DBE4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 082718 7F04DBE8 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 08271C 7F04DBEC 02603825 */ move $a3, $s3 +/* 082720 7F04DBF0 AFB50010 */ sw $s5, 0x10($sp) +/* 082724 7F04DBF4 AFBE0014 */ sw $fp, 0x14($sp) +/* 082728 7F04DBF8 0FC1345B */ jal sub_GAME_7F04D16C +/* 08272C 7F04DBFC AFB90018 */ sw $t9, 0x18($sp) +/* 082730 7F04DC00 10400006 */ beqz $v0, .L7F04DC1C +/* 082734 7F04DC04 8FA8010C */ lw $t0, 0x10c($sp) +/* 082738 7F04DC08 AD140000 */ sw $s4, ($t0) +/* 08273C 7F04DC0C 8FA90110 */ lw $t1, 0x110($sp) +/* 082740 7F04DC10 240A0001 */ li $t2, 1 +/* 082744 7F04DC14 AD300000 */ sw $s0, ($t1) +/* 082748 7F04DC18 AFAA00CC */ sw $t2, 0xcc($sp) +.L7F04DC1C: +/* 08274C 7F04DC1C 8E020014 */ lw $v0, 0x14($s0) +/* 082750 7F04DC20 8FAB00CC */ lw $t3, 0xcc($sp) +/* 082754 7F04DC24 10400003 */ beqz $v0, .L7F04DC34 +/* 082758 7F04DC28 00000000 */ nop +/* 08275C 7F04DC2C 1000000F */ b .L7F04DC6C +/* 082760 7F04DC30 00408025 */ move $s0, $v0 +.L7F04DC34: +/* 082764 7F04DC34 1200000D */ beqz $s0, .L7F04DC6C +/* 082768 7F04DC38 00000000 */ nop +.L7F04DC3C: +/* 08276C 7F04DC3C 56120004 */ bnel $s0, $s2, .L7F04DC50 +/* 082770 7F04DC40 8E02000C */ lw $v0, 0xc($s0) +/* 082774 7F04DC44 10000009 */ b .L7F04DC6C +/* 082778 7F04DC48 00008025 */ move $s0, $zero +/* 08277C 7F04DC4C 8E02000C */ lw $v0, 0xc($s0) +.L7F04DC50: +/* 082780 7F04DC50 50400004 */ beql $v0, $zero, .L7F04DC64 +/* 082784 7F04DC54 8E100008 */ lw $s0, 8($s0) +/* 082788 7F04DC58 10000004 */ b .L7F04DC6C +/* 08278C 7F04DC5C 00408025 */ move $s0, $v0 +/* 082790 7F04DC60 8E100008 */ lw $s0, 8($s0) +.L7F04DC64: +/* 082794 7F04DC64 1600FFF5 */ bnez $s0, .L7F04DC3C +/* 082798 7F04DC68 00000000 */ nop +.L7F04DC6C: +/* 08279C 7F04DC6C 52000004 */ beql $s0, $zero, .L7F04DC80 +/* 0827A0 7F04DC70 8FBF0054 */ lw $ra, 0x54($sp) +/* 0827A4 7F04DC74 5160FF68 */ beql $t3, $zero, .L7F04DA18 +/* 0827A8 7F04DC78 96020000 */ lhu $v0, ($s0) +.L7F04DC7C: +/* 0827AC 7F04DC7C 8FBF0054 */ lw $ra, 0x54($sp) +.L7F04DC80: +/* 0827B0 7F04DC80 8FA200CC */ lw $v0, 0xcc($sp) +/* 0827B4 7F04DC84 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0827B8 7F04DC88 8FB00030 */ lw $s0, 0x30($sp) +/* 0827BC 7F04DC8C 8FB10034 */ lw $s1, 0x34($sp) +/* 0827C0 7F04DC90 8FB20038 */ lw $s2, 0x38($sp) +/* 0827C4 7F04DC94 8FB3003C */ lw $s3, 0x3c($sp) +/* 0827C8 7F04DC98 8FB40040 */ lw $s4, 0x40($sp) +/* 0827CC 7F04DC9C 8FB50044 */ lw $s5, 0x44($sp) +/* 0827D0 7F04DCA0 8FB60048 */ lw $s6, 0x48($sp) +/* 0827D4 7F04DCA4 8FB7004C */ lw $s7, 0x4c($sp) +/* 0827D8 7F04DCA8 8FBE0050 */ lw $fp, 0x50($sp) +/* 0827DC 7F04DCAC 03E00008 */ jr $ra +/* 0827E0 7F04DCB0 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DCB4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack, doesnt fit in own data above*/ +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object + +.text +glabel sub_GAME_7F04DCB4 +/* 0827E4 7F04DCB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0827E8 7F04DCB8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0827EC 7F04DCBC AFB00030 */ sw $s0, 0x30($sp) +/* 0827F0 7F04DCC0 8C8E0010 */ lw $t6, 0x10($a0) +/* 0827F4 7F04DCC4 00808025 */ move $s0, $a0 +/* 0827F8 7F04DCC8 0FC1001E */ jal sub_GAME_7F040078 +/* 0827FC 7F04DCCC AFAE003C */ sw $t6, 0x3c($sp) +/* 082800 7F04DCD0 8FA4003C */ lw $a0, 0x3c($sp) +/* 082804 7F04DCD4 00002825 */ move $a1, $zero +/* 082808 7F04DCD8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 08280C 7F04DCDC AFA20038 */ sw $v0, 0x38($sp) +/* 082810 7F04DCE0 8FA4003C */ lw $a0, 0x3c($sp) +/* 082814 7F04DCE4 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 082818 7F04DCE8 24050001 */ li $a1, 1 +/* 08281C 7F04DCEC 8FA30038 */ lw $v1, 0x38($sp) +/* 082820 7F04DCF0 26040058 */ addiu $a0, $s0, 0x58 +/* 082824 7F04DCF4 26050018 */ addiu $a1, $s0, 0x18 +/* 082828 7F04DCF8 C4640004 */ lwc1 $f4, 4($v1) +/* 08282C 7F04DCFC 26060028 */ addiu $a2, $s0, 0x28 +/* 082830 7F04DD00 26070038 */ addiu $a3, $s0, 0x38 +/* 082834 7F04DD04 E7A40010 */ swc1 $f4, 0x10($sp) +/* 082838 7F04DD08 C4660008 */ lwc1 $f6, 8($v1) +/* 08283C 7F04DD0C E7A60014 */ swc1 $f6, 0x14($sp) +/* 082840 7F04DD10 C468000C */ lwc1 $f8, 0xc($v1) +/* 082844 7F04DD14 E7A80018 */ swc1 $f8, 0x18($sp) +/* 082848 7F04DD18 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 08284C 7F04DD1C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 082850 7F04DD20 C4700014 */ lwc1 $f16, 0x14($v1) +/* 082854 7F04DD24 E7B00020 */ swc1 $f16, 0x20($sp) +/* 082858 7F04DD28 C4720018 */ lwc1 $f18, 0x18($v1) +/* 08285C 7F04DD2C 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 082860 7F04DD30 E7B20024 */ swc1 $f18, 0x24($sp) +/* 082864 7F04DD34 8E0F0064 */ lw $t7, 0x64($s0) +/* 082868 7F04DD38 92190002 */ lbu $t9, 2($s0) +/* 08286C 7F04DD3C 44802000 */ mtc1 $zero, $f4 +/* 082870 7F04DD40 35F80004 */ ori $t8, $t7, 4 +/* 082874 7F04DD44 37280080 */ ori $t0, $t9, 0x80 +/* 082878 7F04DD48 AE180064 */ sw $t8, 0x64($s0) +/* 08287C 7F04DD4C A2080002 */ sb $t0, 2($s0) +/* 082880 7F04DD50 E6040070 */ swc1 $f4, 0x70($s0) +/* 082884 7F04DD54 8FBF0034 */ lw $ra, 0x34($sp) +/* 082888 7F04DD58 8FB00030 */ lw $s0, 0x30($sp) +/* 08288C 7F04DD5C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 082890 7F04DD60 03E00008 */ jr $ra +/* 082894 7F04DD64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DD68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04DD68 +/* 082898 7F04DD68 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08289C 7F04DD6C AFBF002C */ sw $ra, 0x2c($sp) +/* 0828A0 7F04DD70 8C8E0010 */ lw $t6, 0x10($a0) +/* 0828A4 7F04DD74 27A50030 */ addiu $a1, $sp, 0x30 +/* 0828A8 7F04DD78 AFAE007C */ sw $t6, 0x7c($sp) +/* 0828AC 7F04DD7C 8C830014 */ lw $v1, 0x14($a0) +/* 0828B0 7F04DD80 8C6F0008 */ lw $t7, 8($v1) +/* 0828B4 7F04DD84 8DF80008 */ lw $t8, 8($t7) +/* 0828B8 7F04DD88 8F190008 */ lw $t9, 8($t8) +/* 0828BC 7F04DD8C 8F220004 */ lw $v0, 4($t9) +/* 0828C0 7F04DD90 AFA30078 */ sw $v1, 0x78($sp) +/* 0828C4 7F04DD94 0FC149BB */ jal sub_GAME_7F0526EC +/* 0828C8 7F04DD98 AFA20074 */ sw $v0, 0x74($sp) +/* 0828CC 7F04DD9C 8FA20074 */ lw $v0, 0x74($sp) +/* 0828D0 7F04DDA0 27A40060 */ addiu $a0, $sp, 0x60 +/* 0828D4 7F04DDA4 27A50030 */ addiu $a1, $sp, 0x30 +/* 0828D8 7F04DDA8 C4440004 */ lwc1 $f4, 4($v0) +/* 0828DC 7F04DDAC 27A60040 */ addiu $a2, $sp, 0x40 +/* 0828E0 7F04DDB0 27A70050 */ addiu $a3, $sp, 0x50 +/* 0828E4 7F04DDB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0828E8 7F04DDB8 C4460008 */ lwc1 $f6, 8($v0) +/* 0828EC 7F04DDBC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0828F0 7F04DDC0 C448000C */ lwc1 $f8, 0xc($v0) +/* 0828F4 7F04DDC4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0828F8 7F04DDC8 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0828FC 7F04DDCC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 082900 7F04DDD0 C4500014 */ lwc1 $f16, 0x14($v0) +/* 082904 7F04DDD4 E7B00020 */ swc1 $f16, 0x20($sp) +/* 082908 7F04DDD8 C4520018 */ lwc1 $f18, 0x18($v0) +/* 08290C 7F04DDDC 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 082910 7F04DDE0 E7B20024 */ swc1 $f18, 0x24($sp) +/* 082914 7F04DDE4 8FA4007C */ lw $a0, 0x7c($sp) +/* 082918 7F04DDE8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 08291C 7F04DDEC 24050001 */ li $a1, 1 +/* 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 +/* 082930 7F04DE00 8D250004 */ lw $a1, 4($t1) +/* 082934 7F04DE04 AC400000 */ sw $zero, ($v0) +/* 082938 7F04DE08 8FBF002C */ lw $ra, 0x2c($sp) +/* 08293C 7F04DE0C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 082940 7F04DE10 03E00008 */ jr $ra +/* 082944 7F04DE14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DE18(void) { + +} +#else +GLOBAL_ASM( + .late_rodata +/*hack, part of check_if_collectable_object*/ +/*D:80052EAC*/ +glabel jpt_80052EAC +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word collectable_object +.text +glabel sub_GAME_7F04DE18 +/* 082948 7F04DE18 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 08294C 7F04DE1C AFBF0034 */ sw $ra, 0x34($sp) +/* 082950 7F04DE20 AFB00030 */ sw $s0, 0x30($sp) +/* 082954 7F04DE24 8C8E0010 */ lw $t6, 0x10($a0) +/* 082958 7F04DE28 AFAE0094 */ sw $t6, 0x94($sp) +/* 08295C 7F04DE2C 91D80001 */ lbu $t8, 1($t6) +/* 082960 7F04DE30 8C900014 */ lw $s0, 0x14($a0) +/* 082964 7F04DE34 33190002 */ andi $t9, $t8, 2 +/* 082968 7F04DE38 53200023 */ beql $t9, $zero, .L7F04DEC8 +/* 08296C 7F04DE3C 8FA40094 */ lw $a0, 0x94($sp) +/* 082970 7F04DE40 8E080008 */ lw $t0, 8($s0) +/* 082974 7F04DE44 02002025 */ move $a0, $s0 +/* 082978 7F04DE48 00003025 */ move $a2, $zero +/* 08297C 7F04DE4C 8D020008 */ lw $v0, 8($t0) +/* 082980 7F04DE50 8C490008 */ lw $t1, 8($v0) +/* 082984 7F04DE54 8C450004 */ lw $a1, 4($v0) +/* 082988 7F04DE58 8D230004 */ lw $v1, 4($t1) +/* 08298C 7F04DE5C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 082990 7F04DE60 AFA30088 */ sw $v1, 0x88($sp) +/* 082994 7F04DE64 0FC1E111 */ jal sub_GAME_7F078444 +/* 082998 7F04DE68 AFA20084 */ sw $v0, 0x84($sp) +/* 08299C 7F04DE6C 00402025 */ move $a0, $v0 +/* 0829A0 7F04DE70 8FA50084 */ lw $a1, 0x84($sp) +/* 0829A4 7F04DE74 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0829A8 7F04DE78 27A60044 */ addiu $a2, $sp, 0x44 +/* 0829AC 7F04DE7C 8FA30088 */ lw $v1, 0x88($sp) +/* 0829B0 7F04DE80 27A40074 */ addiu $a0, $sp, 0x74 +/* 0829B4 7F04DE84 27A50044 */ addiu $a1, $sp, 0x44 +/* 0829B8 7F04DE88 C4640004 */ lwc1 $f4, 4($v1) +/* 0829BC 7F04DE8C 27A60054 */ addiu $a2, $sp, 0x54 +/* 0829C0 7F04DE90 27A70064 */ addiu $a3, $sp, 0x64 +/* 0829C4 7F04DE94 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0829C8 7F04DE98 C4660008 */ lwc1 $f6, 8($v1) +/* 0829CC 7F04DE9C E7A60014 */ swc1 $f6, 0x14($sp) +/* 0829D0 7F04DEA0 C468000C */ lwc1 $f8, 0xc($v1) +/* 0829D4 7F04DEA4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0829D8 7F04DEA8 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0829DC 7F04DEAC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0829E0 7F04DEB0 C4700014 */ lwc1 $f16, 0x14($v1) +/* 0829E4 7F04DEB4 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0829E8 7F04DEB8 C4720018 */ lwc1 $f18, 0x18($v1) +/* 0829EC 7F04DEBC 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 0829F0 7F04DEC0 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0829F4 7F04DEC4 8FA40094 */ lw $a0, 0x94($sp) +.L7F04DEC8: +/* 0829F8 7F04DEC8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 0829FC 7F04DECC 24050001 */ li $a1, 1 +/* 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 +/* 082A10 7F04DEE0 8D65000C */ lw $a1, 0xc($t3) +/* 082A14 7F04DEE4 AC400000 */ sw $zero, ($v0) +/* 082A18 7F04DEE8 8FBF0034 */ lw $ra, 0x34($sp) +/* 082A1C 7F04DEEC 8FB00030 */ lw $s0, 0x30($sp) +/* 082A20 7F04DEF0 27BD0098 */ addiu $sp, $sp, 0x98 +/* 082A24 7F04DEF4 03E00008 */ jr $ra +/* 082A28 7F04DEF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DEFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04DEFC +/* 082A2C 7F04DEFC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 082A30 7F04DF00 AFBF003C */ sw $ra, 0x3c($sp) +/* 082A34 7F04DF04 AFB40038 */ sw $s4, 0x38($sp) +/* 082A38 7F04DF08 AFB30034 */ sw $s3, 0x34($sp) +/* 082A3C 7F04DF0C AFB20030 */ sw $s2, 0x30($sp) +/* 082A40 7F04DF10 AFB1002C */ sw $s1, 0x2c($sp) +/* 082A44 7F04DF14 AFB00028 */ sw $s0, 0x28($sp) +/* 082A48 7F04DF18 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 082A4C 7F04DF1C AFA40040 */ sw $a0, 0x40($sp) +/* 082A50 7F04DF20 8C820004 */ lw $v0, 4($a0) +/* 082A54 7F04DF24 8FB20050 */ lw $s2, 0x50($sp) +/* 082A58 7F04DF28 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 082A5C 7F04DF2C 8C4F0064 */ lw $t7, 0x64($v0) +/* 082A60 7F04DF30 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 082A64 7F04DF34 00124440 */ sll $t0, $s2, 0x11 +/* 082A68 7F04DF38 01E1C024 */ and $t8, $t7, $at +/* 082A6C 7F04DF3C 03084825 */ or $t1, $t8, $t0 +/* 082A70 7F04DF40 4485A000 */ mtc1 $a1, $f20 +/* 082A74 7F04DF44 00095B00 */ sll $t3, $t1, 0xc +/* 082A78 7F04DF48 AC580064 */ sw $t8, 0x64($v0) +/* 082A7C 7F04DF4C 00C09825 */ move $s3, $a2 +/* 082A80 7F04DF50 00E0A025 */ move $s4, $a3 +/* 082A84 7F04DF54 05600015 */ bltz $t3, .L7F04DFAC +/* 082A88 7F04DF58 AC490064 */ sw $t1, 0x64($v0) +/* 082A8C 7F04DF5C 8FAC0040 */ lw $t4, 0x40($sp) +/* 082A90 7F04DF60 8D900020 */ lw $s0, 0x20($t4) +/* 082A94 7F04DF64 5200000B */ beql $s0, $zero, .L7F04DF94 +/* 082A98 7F04DF68 8FAD0040 */ lw $t5, 0x40($sp) +.L7F04DF6C: +/* 082A9C 7F04DF6C 8E110024 */ lw $s1, 0x24($s0) +/* 082AA0 7F04DF70 4405A000 */ mfc1 $a1, $f20 +/* 082AA4 7F04DF74 AFB20010 */ sw $s2, 0x10($sp) +/* 082AA8 7F04DF78 02002025 */ move $a0, $s0 +/* 082AAC 7F04DF7C 02603025 */ move $a2, $s3 +/* 082AB0 7F04DF80 0FC137BF */ jal sub_GAME_7F04DEFC +/* 082AB4 7F04DF84 02803825 */ move $a3, $s4 +/* 082AB8 7F04DF88 1620FFF8 */ bnez $s1, .L7F04DF6C +/* 082ABC 7F04DF8C 02208025 */ move $s0, $s1 +/* 082AC0 7F04DF90 8FAD0040 */ lw $t5, 0x40($sp) +.L7F04DF94: +/* 082AC4 7F04DF94 4405A000 */ mfc1 $a1, $f20 +/* 082AC8 7F04DF98 02603025 */ move $a2, $s3 +/* 082ACC 7F04DF9C 8DA40004 */ lw $a0, 4($t5) +/* 082AD0 7F04DFA0 AFB20010 */ sw $s2, 0x10($sp) +/* 082AD4 7F04DFA4 0FC13842 */ jal maybe_detonate_object +/* 082AD8 7F04DFA8 02803825 */ move $a3, $s4 +.L7F04DFAC: +/* 082ADC 7F04DFAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 082AE0 7F04DFB0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 082AE4 7F04DFB4 8FB00028 */ lw $s0, 0x28($sp) +/* 082AE8 7F04DFB8 8FB1002C */ lw $s1, 0x2c($sp) +/* 082AEC 7F04DFBC 8FB20030 */ lw $s2, 0x30($sp) +/* 082AF0 7F04DFC0 8FB30034 */ lw $s3, 0x34($sp) +/* 082AF4 7F04DFC4 8FB40038 */ lw $s4, 0x38($sp) +/* 082AF8 7F04DFC8 03E00008 */ jr $ra +/* 082AFC 7F04DFCC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_destroyable_object_type(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel check_if_destroyable_object_type +/* 082B00 7F04DFD0 908E0003 */ lbu $t6, 3($a0) +/* 082B04 7F04DFD4 25CFFFFF */ addiu $t7, $t6, -1 +/* 082B08 7F04DFD8 2DE1002F */ sltiu $at, $t7, 0x2f +/* 082B0C 7F04DFDC 10200008 */ beqz $at, .L7F04E000 +/* 082B10 7F04DFE0 000F7880 */ sll $t7, $t7, 2 +/* 082B14 7F04DFE4 3C018005 */ lui $at, %hi(jpt_80052DF0) +/* 082B18 7F04DFE8 002F0821 */ addu $at, $at, $t7 +/* 082B1C 7F04DFEC 8C2F2DF0 */ lw $t7, %lo(jpt_80052DF0)($at) +/* 082B20 7F04DFF0 01E00008 */ jr $t7 +/* 082B24 7F04DFF4 00000000 */ nop +destroyable_object: +/* 082B28 7F04DFF8 03E00008 */ jr $ra +/* 082B2C 7F04DFFC 24020001 */ li $v0, 1 + +nondestroyable_object: +.L7F04E000: +/* 082B30 7F04E000 00001025 */ move $v0, $zero +/* 082B34 7F04E004 03E00008 */ jr $ra +/* 082B38 7F04E008 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_collectable_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_collectable_object +/* 082B3C 7F04E00C 908E0003 */ lbu $t6, 3($a0) +/* 082B40 7F04E010 25CFFFFC */ addiu $t7, $t6, -4 +/* 082B44 7F04E014 2DE10012 */ sltiu $at, $t7, 0x12 +/* 082B48 7F04E018 10200008 */ beqz $at, .L7F04E03C +/* 082B4C 7F04E01C 000F7880 */ sll $t7, $t7, 2 +/* 082B50 7F04E020 3C018005 */ lui $at, %hi(jpt_80052EAC) +/* 082B54 7F04E024 002F0821 */ addu $at, $at, $t7 +/* 082B58 7F04E028 8C2F2EAC */ lw $t7, %lo(jpt_80052EAC)($at) +/* 082B5C 7F04E02C 01E00008 */ jr $t7 +/* 082B60 7F04E030 00000000 */ nop +collectable_object: +/* 082B64 7F04E034 03E00008 */ jr $ra +/* 082B68 7F04E038 24020001 */ li $v0, 1 + +notcollectable_object: +.L7F04E03C: +/* 082B6C 7F04E03C 00001025 */ move $v0, $zero +/* 082B70 7F04E040 03E00008 */ jr $ra +/* 082B74 7F04E044 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_destroyable_not_invincible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_destroyable_not_invincible +/* 082B78 7F04E048 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 082B7C 7F04E04C AFBF0014 */ sw $ra, 0x14($sp) +/* 082B80 7F04E050 908E0003 */ lbu $t6, 3($a0) +/* 082B84 7F04E054 24010001 */ li $at, 1 +/* 082B88 7F04E058 15C10003 */ bne $t6, $at, .L7F04E068 +/* 082B8C 7F04E05C 00000000 */ nop +/* 082B90 7F04E060 10000016 */ b .L7F04E0BC +/* 082B94 7F04E064 00001025 */ move $v0, $zero +.L7F04E068: +/* 082B98 7F04E068 0FC13803 */ jal check_if_collectable_object +/* 082B9C 7F04E06C AFA40018 */ sw $a0, 0x18($sp) +/* 082BA0 7F04E070 1040000B */ beqz $v0, .L7F04E0A0 +/* 082BA4 7F04E074 8FA40018 */ lw $a0, 0x18($sp) +/* 082BA8 7F04E078 908F0003 */ lbu $t7, 3($a0) +/* 082BAC 7F04E07C 24010015 */ li $at, 21 +/* 082BB0 7F04E080 51E10008 */ beql $t7, $at, .L7F04E0A4 +/* 082BB4 7F04E084 8C880008 */ lw $t0, 8($a0) +/* 082BB8 7F04E088 8C980008 */ lw $t8, 8($a0) +/* 082BBC 7F04E08C 0018CBC0 */ sll $t9, $t8, 0xf +/* 082BC0 7F04E090 0722000A */ bltzl $t9, .L7F04E0BC +/* 082BC4 7F04E094 24020001 */ li $v0, 1 +/* 082BC8 7F04E098 10000008 */ b .L7F04E0BC +/* 082BCC 7F04E09C 00001025 */ move $v0, $zero +.L7F04E0A0: +/* 082BD0 7F04E0A0 8C880008 */ lw $t0, 8($a0) +.L7F04E0A4: +/* 082BD4 7F04E0A4 00084B80 */ sll $t1, $t0, 0xe +/* 082BD8 7F04E0A8 05230004 */ bgezl $t1, .L7F04E0BC +/* 082BDC 7F04E0AC 24020001 */ li $v0, 1 +/* 082BE0 7F04E0B0 10000002 */ b .L7F04E0BC +/* 082BE4 7F04E0B4 00001025 */ move $v0, $zero +/* 082BE8 7F04E0B8 24020001 */ li $v0, 1 +.L7F04E0BC: +/* 082BEC 7F04E0BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 082BF0 7F04E0C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 082BF4 7F04E0C4 03E00008 */ jr $ra +/* 082BF8 7F04E0C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E0CC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E0CC +/* 082BFC 7F04E0CC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 082C00 7F04E0D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 082C04 7F04E0D4 8C8E000C */ lw $t6, 0xc($a0) +/* 082C08 7F04E0D8 44856000 */ mtc1 $a1, $f12 +/* 082C0C 7F04E0DC 8FB80030 */ lw $t8, 0x30($sp) +/* 082C10 7F04E0E0 31CF4000 */ andi $t7, $t6, 0x4000 +/* 082C14 7F04E0E4 55E00005 */ bnezl $t7, .L7F04E0FC +/* 082C18 7F04E0E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 082C1C 7F04E0EC 44056000 */ mfc1 $a1, $f12 +/* 082C20 7F04E0F0 0FC13842 */ jal maybe_detonate_object +/* 082C24 7F04E0F4 AFB80010 */ sw $t8, 0x10($sp) +/* 082C28 7F04E0F8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E0FC: +/* 082C2C 7F04E0FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 082C30 7F04E100 03E00008 */ jr $ra +/* 082C34 7F04E104 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void maybe_detonate_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel maybe_detonate_object +/* 082C38 7F04E108 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 082C3C 7F04E10C AFBF001C */ sw $ra, 0x1c($sp) +/* 082C40 7F04E110 AFB00018 */ sw $s0, 0x18($sp) +/* 082C44 7F04E114 AFA600E8 */ sw $a2, 0xe8($sp) +/* 082C48 7F04E118 AFA700EC */ sw $a3, 0xec($sp) +/* 082C4C 7F04E11C 8C8E0064 */ lw $t6, 0x64($a0) +/* 082C50 7F04E120 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 082C54 7F04E124 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 082C58 7F04E128 01C17824 */ and $t7, $t6, $at +/* 082C5C 7F04E12C AC8F0064 */ sw $t7, 0x64($a0) +/* 082C60 7F04E130 8FB900F0 */ lw $t9, 0xf0($sp) +/* 082C64 7F04E134 908B0003 */ lbu $t3, 3($a0) +/* 082C68 7F04E138 44856000 */ mtc1 $a1, $f12 +/* 082C6C 7F04E13C 00194C40 */ sll $t1, $t9, 0x11 +/* 082C70 7F04E140 01E95025 */ or $t2, $t7, $t1 +/* 082C74 7F04E144 24010024 */ li $at, 36 +/* 082C78 7F04E148 00808025 */ move $s0, $a0 +/* 082C7C 7F04E14C 15610006 */ bne $t3, $at, .L7F04E168 +/* 082C80 7F04E150 AC8A0064 */ sw $t2, 0x64($a0) +/* 082C84 7F04E154 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082C88 7F04E158 E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082C8C 7F04E15C 24010001 */ li $at, 1 +/* 082C90 7F04E160 1041016A */ beq $v0, $at, .L7F04E70C +/* 082C94 7F04E164 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +.L7F04E168: +/* 082C98 7F04E168 8FAC00EC */ lw $t4, 0xec($sp) +/* 082C9C 7F04E16C 02002025 */ move $a0, $s0 +/* 082CA0 7F04E170 55800012 */ bnezl $t4, .L7F04E1BC +/* 082CA4 7F04E174 8E030008 */ lw $v1, 8($s0) +/* 082CA8 7F04E178 0FC13803 */ jal check_if_collectable_object +/* 082CAC 7F04E17C E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082CB0 7F04E180 10400007 */ beqz $v0, .L7F04E1A0 +/* 082CB4 7F04E184 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082CB8 7F04E188 8E0D0008 */ lw $t5, 8($s0) +/* 082CBC 7F04E18C 000D7200 */ sll $t6, $t5, 8 +/* 082CC0 7F04E190 05C20045 */ bltzl $t6, .L7F04E2A8 +/* 082CC4 7F04E194 02002025 */ move $a0, $s0 +/* 082CC8 7F04E198 1000015D */ b .L7F04E710 +/* 082CCC 7F04E19C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E1A0: +/* 082CD0 7F04E1A0 8E0F0008 */ lw $t7, 8($s0) +/* 082CD4 7F04E1A4 000FC9C0 */ sll $t9, $t7, 7 +/* 082CD8 7F04E1A8 0723003F */ bgezl $t9, .L7F04E2A8 +/* 082CDC 7F04E1AC 02002025 */ move $a0, $s0 +/* 082CE0 7F04E1B0 10000157 */ b .L7F04E710 +/* 082CE4 7F04E1B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 082CE8 7F04E1B8 8E030008 */ lw $v1, 8($s0) +.L7F04E1BC: +/* 082CEC 7F04E1BC 0003C380 */ sll $t8, $v1, 0xe +/* 082CF0 7F04E1C0 07020153 */ bltzl $t8, .L7F04E710 +/* 082CF4 7F04E1C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 082CF8 7F04E1C8 92020003 */ lbu $v0, 3($s0) +/* 082CFC 7F04E1CC 24050008 */ li $a1, 8 +/* 082D00 7F04E1D0 24040007 */ li $a0, 7 +/* 082D04 7F04E1D4 14A20015 */ bne $a1, $v0, .L7F04E22C +/* 082D08 7F04E1D8 00000000 */ nop +/* 082D0C 7F04E1DC 82020080 */ lb $v0, 0x80($s0) +/* 082D10 7F04E1E0 2401001A */ li $at, 26 +/* 082D14 7F04E1E4 1041000F */ beq $v0, $at, .L7F04E224 +/* 082D18 7F04E1E8 2401001B */ li $at, 27 +/* 082D1C 7F04E1EC 1041000D */ beq $v0, $at, .L7F04E224 +/* 082D20 7F04E1F0 2401001D */ li $at, 29 +/* 082D24 7F04E1F4 1041000B */ beq $v0, $at, .L7F04E224 +/* 082D28 7F04E1F8 2401001C */ li $at, 28 +/* 082D2C 7F04E1FC 10410009 */ beq $v0, $at, .L7F04E224 +/* 082D30 7F04E200 24010056 */ li $at, 86 +/* 082D34 7F04E204 10410007 */ beq $v0, $at, .L7F04E224 +/* 082D38 7F04E208 24010057 */ li $at, 87 +/* 082D3C 7F04E20C 10410005 */ beq $v0, $at, .L7F04E224 +/* 082D40 7F04E210 24010021 */ li $at, 33 +/* 082D44 7F04E214 10410003 */ beq $v0, $at, .L7F04E224 +/* 082D48 7F04E218 24010022 */ li $at, 34 +/* 082D4C 7F04E21C 5441013C */ bnel $v0, $at, .L7F04E710 +/* 082D50 7F04E220 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E224: +/* 082D54 7F04E224 10000139 */ b .L7F04E70C +/* 082D58 7F04E228 A6000082 */ sh $zero, 0x82($s0) +.L7F04E22C: +/* 082D5C 7F04E22C 54820019 */ bnel $a0, $v0, .L7F04E294 +/* 082D60 7F04E230 02002025 */ move $a0, $s0 +/* 082D64 7F04E234 8E020080 */ lw $v0, 0x80($s0) +/* 082D68 7F04E238 24010005 */ li $at, 5 +/* 082D6C 7F04E23C 10410010 */ beq $v0, $at, .L7F04E280 +/* 082D70 7F04E240 24010006 */ li $at, 6 +/* 082D74 7F04E244 5041000F */ beql $v0, $at, .L7F04E284 +/* 082D78 7F04E248 3C011000 */ lui $at, 0x1000 +/* 082D7C 7F04E24C 5082000D */ beql $a0, $v0, .L7F04E284 +/* 082D80 7F04E250 3C011000 */ lui $at, 0x1000 +/* 082D84 7F04E254 10A2000A */ beq $a1, $v0, .L7F04E280 +/* 082D88 7F04E258 24010009 */ li $at, 9 +/* 082D8C 7F04E25C 10410008 */ beq $v0, $at, .L7F04E280 +/* 082D90 7F04E260 2401000B */ li $at, 11 +/* 082D94 7F04E264 10410006 */ beq $v0, $at, .L7F04E280 +/* 082D98 7F04E268 2401000F */ li $at, 15 +/* 082D9C 7F04E26C 10410004 */ beq $v0, $at, .L7F04E280 +/* 082DA0 7F04E270 24010010 */ li $at, 16 +/* 082DA4 7F04E274 10410002 */ beq $v0, $at, .L7F04E280 +/* 082DA8 7F04E278 24010013 */ li $at, 19 +/* 082DAC 7F04E27C 14410123 */ bne $v0, $at, .L7F04E70C +.L7F04E280: +/* 082DB0 7F04E280 3C011000 */ li $at, 0x10000000 # 0.000000 +.L7F04E284: +/* 082DB4 7F04E284 00614825 */ or $t1, $v1, $at +/* 082DB8 7F04E288 10000120 */ b .L7F04E70C +/* 082DBC 7F04E28C AE090008 */ sw $t1, 8($s0) +/* 082DC0 7F04E290 02002025 */ move $a0, $s0 +.L7F04E294: +/* 082DC4 7F04E294 0FC13812 */ jal check_if_destroyable_not_invincible +/* 082DC8 7F04E298 E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082DCC 7F04E29C 1040011B */ beqz $v0, .L7F04E70C +/* 082DD0 7F04E2A0 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082DD4 7F04E2A4 02002025 */ move $a0, $s0 +.L7F04E2A8: +/* 082DD8 7F04E2A8 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082DDC 7F04E2AC E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082DE0 7F04E2B0 14400008 */ bnez $v0, .L7F04E2D4 +/* 082DE4 7F04E2B4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082DE8 7F04E2B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 082DEC 7F04E2BC 44813000 */ mtc1 $at, $f6 +/* 082DF0 7F04E2C0 C6040070 */ lwc1 $f4, 0x70($s0) +/* 082DF4 7F04E2C4 46066202 */ mul.s $f8, $f12, $f6 +/* 082DF8 7F04E2C8 46082280 */ add.s $f10, $f4, $f8 +/* 082DFC 7F04E2CC 1000001F */ b .L7F04E34C +/* 082E00 7F04E2D0 E60A0070 */ swc1 $f10, 0x70($s0) +.L7F04E2D4: +/* 082E04 7F04E2D4 02002025 */ move $a0, $s0 +/* 082E08 7F04E2D8 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 082E0C 7F04E2DC E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082E10 7F04E2E0 240B0004 */ li $t3, 4 +/* 082E14 7F04E2E4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082E18 7F04E2E8 04410004 */ bgez $v0, .L7F04E2FC +/* 082E1C 7F04E2EC 304A0003 */ andi $t2, $v0, 3 +/* 082E20 7F04E2F0 11400002 */ beqz $t2, .L7F04E2FC +/* 082E24 7F04E2F4 00000000 */ nop +/* 082E28 7F04E2F8 254AFFFC */ addiu $t2, $t2, -4 +.L7F04E2FC: +/* 082E2C 7F04E2FC 016A6023 */ subu $t4, $t3, $t2 +/* 082E30 7F04E300 448C8000 */ mtc1 $t4, $f16 +/* 082E34 7F04E304 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 082E38 7F04E308 46808020 */ cvt.s.w $f0, $f16 +/* 082E3C 7F04E30C 460C003C */ c.lt.s $f0, $f12 +/* 082E40 7F04E310 00000000 */ nop +/* 082E44 7F04E314 45020004 */ bc1fl .L7F04E328 +/* 082E48 7F04E318 44810000 */ mtc1 $at, $f0 +/* 082E4C 7F04E31C 10000008 */ b .L7F04E340 +/* 082E50 7F04E320 46000306 */ mov.s $f12, $f0 +/* 082E54 7F04E324 44810000 */ mtc1 $at, $f0 +.L7F04E328: +/* 082E58 7F04E328 00000000 */ nop +/* 082E5C 7F04E32C 4600603C */ c.lt.s $f12, $f0 +/* 082E60 7F04E330 00000000 */ nop +/* 082E64 7F04E334 45020003 */ bc1fl .L7F04E344 +/* 082E68 7F04E338 C6120070 */ lwc1 $f18, 0x70($s0) +/* 082E6C 7F04E33C 46000306 */ mov.s $f12, $f0 +.L7F04E340: +/* 082E70 7F04E340 C6120070 */ lwc1 $f18, 0x70($s0) +.L7F04E344: +/* 082E74 7F04E344 460C9180 */ add.s $f6, $f18, $f12 +/* 082E78 7F04E348 E6060070 */ swc1 $f6, 0x70($s0) +.L7F04E34C: +/* 082E7C 7F04E34C 92020003 */ lbu $v0, 3($s0) +/* 082E80 7F04E350 2401002A */ li $at, 42 +/* 082E84 7F04E354 10410003 */ beq $v0, $at, .L7F04E364 +/* 082E88 7F04E358 2401002F */ li $at, 47 +/* 082E8C 7F04E35C 1441000B */ bne $v0, $at, .L7F04E38C +/* 082E90 7F04E360 24050001 */ li $a1, 1 +.L7F04E364: +/* 082E94 7F04E364 C6040070 */ lwc1 $f4, 0x70($s0) +/* 082E98 7F04E368 C6080074 */ lwc1 $f8, 0x74($s0) +/* 082E9C 7F04E36C 4604403E */ c.le.s $f8, $f4 +/* 082EA0 7F04E370 00000000 */ nop +/* 082EA4 7F04E374 4502000D */ bc1fl .L7F04E3AC +/* 082EA8 7F04E378 24010014 */ li $at, 20 +/* 082EAC 7F04E37C 0FC1372D */ jal sub_GAME_7F04DCB4 +/* 082EB0 7F04E380 02002025 */ move $a0, $s0 +/* 082EB4 7F04E384 10000008 */ b .L7F04E3A8 +/* 082EB8 7F04E388 92020003 */ lbu $v0, 3($s0) +.L7F04E38C: +/* 082EBC 7F04E38C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 082EC0 7F04E390 8E040010 */ lw $a0, 0x10($s0) +/* 082EC4 7F04E394 02002025 */ move $a0, $s0 +/* 082EC8 7F04E398 8FA500E8 */ lw $a1, 0xe8($sp) +/* 082ECC 7F04E39C 0FC13383 */ jal object_explosion_related +/* 082ED0 7F04E3A0 8FA600F0 */ lw $a2, 0xf0($sp) +/* 082ED4 7F04E3A4 92020003 */ lbu $v0, 3($s0) +.L7F04E3A8: +/* 082ED8 7F04E3A8 24010014 */ li $at, 20 +.L7F04E3AC: +/* 082EDC 7F04E3AC 54410065 */ bnel $v0, $at, .L7F04E544 +/* 082EE0 7F04E3B0 92020003 */ lbu $v0, 3($s0) +/* 082EE4 7F04E3B4 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082EE8 7F04E3B8 02002025 */ move $a0, $s0 +/* 082EEC 7F04E3BC 24010001 */ li $at, 1 +/* 082EF0 7F04E3C0 54410060 */ bnel $v0, $at, .L7F04E544 +/* 082EF4 7F04E3C4 92020003 */ lbu $v0, 3($s0) +/* 082EF8 7F04E3C8 0C002914 */ jal get_random_value +/* 082EFC 7F04E3CC 00000000 */ nop +/* 082F00 7F04E3D0 2401000D */ li $at, 13 +/* 082F04 7F04E3D4 0041001B */ divu $zero, $v0, $at +/* 082F08 7F04E3D8 00002010 */ mfhi $a0 +/* 082F0C 7F04E3DC 00802825 */ move $a1, $a0 +/* 082F10 7F04E3E0 00000000 */ nop +/* 082F14 7F04E3E4 00046880 */ sll $t5, $a0, 2 +.L7F04E3E8: +/* 082F18 7F04E3E8 020D1821 */ addu $v1, $s0, $t5 +/* 082F1C 7F04E3EC 946E0082 */ lhu $t6, 0x82($v1) +/* 082F20 7F04E3F0 59C0004E */ blezl $t6, .L7F04E52C +/* 082F24 7F04E3F4 24840001 */ addiu $a0, $a0, 1 +/* 082F28 7F04E3F8 946F0080 */ lhu $t7, 0x80($v1) +/* 082F2C 7F04E3FC 3401FFFF */ li $at, 65535 +/* 082F30 7F04E400 51E1004A */ beql $t7, $at, .L7F04E52C +/* 082F34 7F04E404 24840001 */ addiu $a0, $a0, 1 +/* 082F38 7F04E408 AFA30024 */ sw $v1, 0x24($sp) +/* 082F3C 7F04E40C AFA400C4 */ sw $a0, 0xc4($sp) +/* 082F40 7F04E410 0FC14634 */ jal sub_GAME_7F0518D0 +/* 082F44 7F04E414 AFA500C8 */ sw $a1, 0xc8($sp) +/* 082F48 7F04E418 8FA30024 */ lw $v1, 0x24($sp) +/* 082F4C 7F04E41C 8FA400C4 */ lw $a0, 0xc4($sp) +/* 082F50 7F04E420 8FA500C8 */ lw $a1, 0xc8($sp) +/* 082F54 7F04E424 10400040 */ beqz $v0, .L7F04E528 +/* 082F58 7F04E428 00403025 */ move $a2, $v0 +/* 082F5C 7F04E42C 3C198003 */ lui $t9, %hi(blank_07_object) +/* 082F60 7F04E430 27A8003C */ addiu $t0, $sp, 0x3c +/* 082F64 7F04E434 27392094 */ addiu $t9, %lo(blank_07_object) # addiu $t9, $t9, 0x2094 +/* 082F68 7F04E438 94670080 */ lhu $a3, 0x80($v1) +/* 082F6C 7F04E43C 27290078 */ addiu $t1, $t9, 0x78 +/* 082F70 7F04E440 01005825 */ move $t3, $t0 +.L7F04E444: +/* 082F74 7F04E444 8F210000 */ lw $at, ($t9) +/* 082F78 7F04E448 2739000C */ addiu $t9, $t9, 0xc +/* 082F7C 7F04E44C 256B000C */ addiu $t3, $t3, 0xc +/* 082F80 7F04E450 AD61FFF4 */ sw $at, -0xc($t3) +/* 082F84 7F04E454 8F21FFF8 */ lw $at, -8($t9) +/* 082F88 7F04E458 AD61FFF8 */ sw $at, -8($t3) +/* 082F8C 7F04E45C 8F21FFFC */ lw $at, -4($t9) +/* 082F90 7F04E460 1729FFF8 */ bne $t9, $t1, .L7F04E444 +/* 082F94 7F04E464 AD61FFFC */ sw $at, -4($t3) +/* 082F98 7F04E468 8F210000 */ lw $at, ($t9) +/* 082F9C 7F04E46C 01006825 */ move $t5, $t0 +/* 082FA0 7F04E470 00407025 */ move $t6, $v0 +/* 082FA4 7F04E474 AD610000 */ sw $at, ($t3) +/* 082FA8 7F04E478 8F290004 */ lw $t1, 4($t9) +/* 082FAC 7F04E47C 250C0078 */ addiu $t4, $t0, 0x78 +/* 082FB0 7F04E480 0007C080 */ sll $t8, $a3, 2 +/* 082FB4 7F04E484 AD690004 */ sw $t1, 4($t3) +.L7F04E488: +/* 082FB8 7F04E488 8DA10000 */ lw $at, ($t5) +/* 082FBC 7F04E48C 25AD000C */ addiu $t5, $t5, 0xc +/* 082FC0 7F04E490 25CE000C */ addiu $t6, $t6, 0xc +/* 082FC4 7F04E494 ADC1FFF4 */ sw $at, -0xc($t6) +/* 082FC8 7F04E498 8DA1FFF8 */ lw $at, -8($t5) +/* 082FCC 7F04E49C ADC1FFF8 */ sw $at, -8($t6) +/* 082FD0 7F04E4A0 8DA1FFFC */ lw $at, -4($t5) +/* 082FD4 7F04E4A4 15ACFFF8 */ bne $t5, $t4, .L7F04E488 +/* 082FD8 7F04E4A8 ADC1FFFC */ sw $at, -4($t6) +/* 082FDC 7F04E4AC 8DA10000 */ lw $at, ($t5) +/* 082FE0 7F04E4B0 24850001 */ addiu $a1, $a0, 1 +/* 082FE4 7F04E4B4 00C02025 */ move $a0, $a2 +/* 082FE8 7F04E4B8 ADC10000 */ sw $at, ($t6) +/* 082FEC 7F04E4BC 8DAC0004 */ lw $t4, 4($t5) +/* 082FF0 7F04E4C0 24010002 */ li $at, 2 +/* 082FF4 7F04E4C4 0307C023 */ subu $t8, $t8, $a3 +/* 082FF8 7F04E4C8 ADCC0004 */ sw $t4, 4($t6) +/* 082FFC 7F04E4CC A4470004 */ sh $a3, 4($v0) +/* 083000 7F04E4D0 14A10003 */ bne $a1, $at, .L7F04E4E0 +/* 083004 7F04E4D4 AC450080 */ sw $a1, 0x80($v0) +/* 083008 7F04E4D8 240F0001 */ li $t7, 1 +/* 08300C 7F04E4DC AC4F0080 */ sw $t7, 0x80($v0) +.L7F04E4E0: +/* 083010 7F04E4E0 0018C080 */ sll $t8, $t8, 2 +/* 083014 7F04E4E4 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 083018 7F04E4E8 00B82821 */ addu $a1, $a1, $t8 +/* 08301C 7F04E4EC 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 083020 7F04E4F0 0FC101BE */ jal sub_GAME_7F0406F8 +/* 083024 7F04E4F4 AFA600C0 */ sw $a2, 0xc0($sp) +/* 083028 7F04E4F8 10400011 */ beqz $v0, .L7F04E540 +/* 08302C 7F04E4FC 8FA600C0 */ lw $a2, 0xc0($sp) +/* 083030 7F04E500 8CC40014 */ lw $a0, 0x14($a2) +/* 083034 7F04E504 8C850014 */ lw $a1, 0x14($a0) +/* 083038 7F04E508 0FC1B39E */ jal set_obj_instance_controller_scale +/* 08303C 7F04E50C AFA600C0 */ sw $a2, 0xc0($sp) +/* 083040 7F04E510 8FA600C0 */ lw $a2, 0xc0($sp) +/* 083044 7F04E514 8E050010 */ lw $a1, 0x10($s0) +/* 083048 7F04E518 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 08304C 7F04E51C 8CC40010 */ lw $a0, 0x10($a2) +/* 083050 7F04E520 10000008 */ b .L7F04E544 +/* 083054 7F04E524 92020003 */ lbu $v0, 3($s0) +.L7F04E528: +/* 083058 7F04E528 24840001 */ addiu $a0, $a0, 1 +.L7F04E52C: +/* 08305C 7F04E52C 2401000D */ li $at, 13 +/* 083060 7F04E530 0081001A */ div $zero, $a0, $at +/* 083064 7F04E534 00002010 */ mfhi $a0 +/* 083068 7F04E538 5485FFAB */ bnel $a0, $a1, .L7F04E3E8 +/* 08306C 7F04E53C 00046880 */ sll $t5, $a0, 2 +.L7F04E540: +/* 083070 7F04E540 92020003 */ lbu $v0, 3($s0) +.L7F04E544: +/* 083074 7F04E544 2401000D */ li $at, 13 +/* 083078 7F04E548 54410010 */ bnel $v0, $at, .L7F04E58C +/* 08307C 7F04E54C 24010006 */ li $at, 6 +/* 083080 7F04E550 8E190008 */ lw $t9, 8($s0) +/* 083084 7F04E554 3C014000 */ lui $at, 0x4000 +/* 083088 7F04E558 02002025 */ move $a0, $s0 +/* 08308C 7F04E55C 03215825 */ or $t3, $t9, $at +/* 083090 7F04E560 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083094 7F04E564 AE0B0008 */ sw $t3, 8($s0) +/* 083098 7F04E568 24010001 */ li $at, 1 +/* 08309C 7F04E56C 14410057 */ bne $v0, $at, .L7F04E6CC +/* 0830A0 7F04E570 00000000 */ nop +/* 0830A4 7F04E574 8E0A0008 */ lw $t2, 8($s0) +/* 0830A8 7F04E578 3C011000 */ lui $at, 0x1000 +/* 0830AC 7F04E57C 01416025 */ or $t4, $t2, $at +/* 0830B0 7F04E580 10000052 */ b .L7F04E6CC +/* 0830B4 7F04E584 AE0C0008 */ sw $t4, 8($s0) +/* 0830B8 7F04E588 24010006 */ li $at, 6 +.L7F04E58C: +/* 0830BC 7F04E58C 5441000C */ bnel $v0, $at, .L7F04E5C0 +/* 0830C0 7F04E590 2401000A */ li $at, 10 +/* 0830C4 7F04E594 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0830C8 7F04E598 02002025 */ move $a0, $s0 +/* 0830CC 7F04E59C 24010001 */ li $at, 1 +/* 0830D0 7F04E5A0 1441004A */ bne $v0, $at, .L7F04E6CC +/* 0830D4 7F04E5A4 00000000 */ nop +/* 0830D8 7F04E5A8 8E0D0008 */ lw $t5, 8($s0) +/* 0830DC 7F04E5AC 3C011000 */ lui $at, 0x1000 +/* 0830E0 7F04E5B0 01A17025 */ or $t6, $t5, $at +/* 0830E4 7F04E5B4 10000045 */ b .L7F04E6CC +/* 0830E8 7F04E5B8 AE0E0008 */ sw $t6, 8($s0) +/* 0830EC 7F04E5BC 2401000A */ li $at, 10 +.L7F04E5C0: +/* 0830F0 7F04E5C0 5441000C */ bnel $v0, $at, .L7F04E5F4 +/* 0830F4 7F04E5C4 2401000B */ li $at, 11 +/* 0830F8 7F04E5C8 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0830FC 7F04E5CC 02002025 */ move $a0, $s0 +/* 083100 7F04E5D0 24010001 */ li $at, 1 +/* 083104 7F04E5D4 1441003D */ bne $v0, $at, .L7F04E6CC +/* 083108 7F04E5D8 26040080 */ addiu $a0, $s0, 0x80 +/* 08310C 7F04E5DC 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083110 7F04E5E0 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083114 7F04E5E4 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083118 7F04E5E8 10000038 */ b .L7F04E6CC +/* 08311C 7F04E5EC 00000000 */ nop +/* 083120 7F04E5F0 2401000B */ li $at, 11 +.L7F04E5F4: +/* 083124 7F04E5F4 54410018 */ bnel $v0, $at, .L7F04E658 +/* 083128 7F04E5F8 24010024 */ li $at, 36 +/* 08312C 7F04E5FC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083130 7F04E600 02002025 */ move $a0, $s0 +/* 083134 7F04E604 24010001 */ li $at, 1 +/* 083138 7F04E608 14410030 */ bne $v0, $at, .L7F04E6CC +/* 08313C 7F04E60C 26040080 */ addiu $a0, $s0, 0x80 +/* 083140 7F04E610 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083144 7F04E614 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083148 7F04E618 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 08314C 7F04E61C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083150 7F04E620 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083154 7F04E624 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083158 7F04E628 260400F4 */ addiu $a0, $s0, 0xf4 +/* 08315C 7F04E62C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083160 7F04E630 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083164 7F04E634 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083168 7F04E638 26040168 */ addiu $a0, $s0, 0x168 +/* 08316C 7F04E63C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083170 7F04E640 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083174 7F04E644 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083178 7F04E648 260401DC */ addiu $a0, $s0, 0x1dc +/* 08317C 7F04E64C 1000001F */ b .L7F04E6CC +/* 083180 7F04E650 00000000 */ nop +/* 083184 7F04E654 24010024 */ li $at, 36 +.L7F04E658: +/* 083188 7F04E658 5441000B */ bnel $v0, $at, .L7F04E688 +/* 08318C 7F04E65C 24010015 */ li $at, 21 +/* 083190 7F04E660 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083194 7F04E664 02002025 */ move $a0, $s0 +/* 083198 7F04E668 24010001 */ li $at, 1 +/* 08319C 7F04E66C 14410017 */ bne $v0, $at, .L7F04E6CC +/* 0831A0 7F04E670 00000000 */ nop +/* 0831A4 7F04E674 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 0831A8 7F04E678 26040058 */ addiu $a0, $s0, 0x58 +/* 0831AC 7F04E67C 10000013 */ b .L7F04E6CC +/* 0831B0 7F04E680 00000000 */ nop +/* 0831B4 7F04E684 24010015 */ li $at, 21 +.L7F04E688: +/* 0831B8 7F04E688 14410010 */ bne $v0, $at, .L7F04E6CC +/* 0831BC 7F04E68C 00000000 */ nop +/* 0831C0 7F04E690 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0831C4 7F04E694 02002025 */ move $a0, $s0 +/* 0831C8 7F04E698 5440000A */ bnezl $v0, .L7F04E6C4 +/* 0831CC 7F04E69C 44804000 */ mtc1 $zero, $f8 +/* 0831D0 7F04E6A0 C6000074 */ lwc1 $f0, 0x74($s0) +/* 0831D4 7F04E6A4 C6100070 */ lwc1 $f16, 0x70($s0) +/* 0831D8 7F04E6A8 C60A0080 */ lwc1 $f10, 0x80($s0) +/* 0831DC 7F04E6AC 46100481 */ sub.s $f18, $f0, $f16 +/* 0831E0 7F04E6B0 46125182 */ mul.s $f6, $f10, $f18 +/* 0831E4 7F04E6B4 46003103 */ div.s $f4, $f6, $f0 +/* 0831E8 7F04E6B8 10000004 */ b .L7F04E6CC +/* 0831EC 7F04E6BC E6040084 */ swc1 $f4, 0x84($s0) +/* 0831F0 7F04E6C0 44804000 */ mtc1 $zero, $f8 +.L7F04E6C4: +/* 0831F4 7F04E6C4 00000000 */ nop +/* 0831F8 7F04E6C8 E6080084 */ swc1 $f8, 0x84($s0) +.L7F04E6CC: +/* 0831FC 7F04E6CC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083200 7F04E6D0 02002025 */ move $a0, $s0 +/* 083204 7F04E6D4 24010001 */ li $at, 1 +/* 083208 7F04E6D8 5441000D */ bnel $v0, $at, .L7F04E710 +/* 08320C 7F04E6DC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083210 7F04E6E0 8E0F0010 */ lw $t7, 0x10($s0) +/* 083214 7F04E6E4 8DE40020 */ lw $a0, 0x20($t7) +/* 083218 7F04E6E8 50800009 */ beql $a0, $zero, .L7F04E710 +/* 08321C 7F04E6EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083220 7F04E6F0 8C820024 */ lw $v0, 0x24($a0) +.L7F04E6F4: +/* 083224 7F04E6F4 24050001 */ li $a1, 1 +/* 083228 7F04E6F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 08322C 7F04E6FC AFA20028 */ sw $v0, 0x28($sp) +/* 083230 7F04E700 8FA40028 */ lw $a0, 0x28($sp) +/* 083234 7F04E704 5480FFFB */ bnezl $a0, .L7F04E6F4 +/* 083238 7F04E708 8C820024 */ lw $v0, 0x24($a0) +.L7F04E70C: +/* 08323C 7F04E70C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E710: +/* 083240 7F04E710 8FB00018 */ lw $s0, 0x18($sp) +/* 083244 7F04E714 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 083248 7F04E718 03E00008 */ jr $ra +/* 08324C 7F04E71C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E720(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E720 +/* 083250 7F04E720 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 083254 7F04E724 AFBF004C */ sw $ra, 0x4c($sp) +/* 083258 7F04E728 AFB50048 */ sw $s5, 0x48($sp) +/* 08325C 7F04E72C AFB40044 */ sw $s4, 0x44($sp) +/* 083260 7F04E730 AFB30040 */ sw $s3, 0x40($sp) +/* 083264 7F04E734 AFB2003C */ sw $s2, 0x3c($sp) +/* 083268 7F04E738 AFB10038 */ sw $s1, 0x38($sp) +/* 08326C 7F04E73C AFB00034 */ sw $s0, 0x34($sp) +/* 083270 7F04E740 AFA400C0 */ sw $a0, 0xc0($sp) +/* 083274 7F04E744 8C950004 */ lw $s5, 4($a0) +/* 083278 7F04E748 00A09825 */ move $s3, $a1 +/* 08327C 7F04E74C 8EAF0064 */ lw $t7, 0x64($s5) +/* 083280 7F04E750 31F81000 */ andi $t8, $t7, 0x1000 +/* 083284 7F04E754 57000091 */ bnezl $t8, .L7F04E99C +/* 083288 7F04E758 8FBF004C */ lw $ra, 0x4c($sp) +/* 08328C 7F04E75C 90880001 */ lbu $t0, 1($a0) +/* 083290 7F04E760 31090002 */ andi $t1, $t0, 2 +/* 083294 7F04E764 5120008D */ beql $t1, $zero, .L7F04E99C +/* 083298 7F04E768 8FBF004C */ lw $ra, 0x4c($sp) +/* 08329C 7F04E76C 8C900020 */ lw $s0, 0x20($a0) +/* 0832A0 7F04E770 52000008 */ beql $s0, $zero, .L7F04E794 +/* 0832A4 7F04E774 8EB40014 */ lw $s4, 0x14($s5) +.L7F04E778: +/* 0832A8 7F04E778 8E110024 */ lw $s1, 0x24($s0) +/* 0832AC 7F04E77C 02002025 */ move $a0, $s0 +/* 0832B0 7F04E780 0FC139C8 */ jal sub_GAME_7F04E720 +/* 0832B4 7F04E784 02602825 */ move $a1, $s3 +/* 0832B8 7F04E788 1620FFFB */ bnez $s1, .L7F04E778 +/* 0832BC 7F04E78C 02208025 */ move $s0, $s1 +/* 0832C0 7F04E790 8EB40014 */ lw $s4, 0x14($s5) +.L7F04E794: +/* 0832C4 7F04E794 AFA000A8 */ sw $zero, 0xa8($sp) +/* 0832C8 7F04E798 92AB0003 */ lbu $t3, 3($s5) +/* 0832CC 7F04E79C 24010001 */ li $at, 1 +/* 0832D0 7F04E7A0 2670000C */ addiu $s0, $s3, 0xc +/* 0832D4 7F04E7A4 15610025 */ bne $t3, $at, .L7F04E83C +/* 0832D8 7F04E7A8 27B100A8 */ addiu $s1, $sp, 0xa8 +/* 0832DC 7F04E7AC 96AC0098 */ lhu $t4, 0x98($s5) +/* 0832E0 7F04E7B0 26A400D0 */ addiu $a0, $s5, 0xd0 +/* 0832E4 7F04E7B4 02603025 */ move $a2, $s3 +/* 0832E8 7F04E7B8 318D0004 */ andi $t5, $t4, 4 +/* 0832EC 7F04E7BC 55A00008 */ bnezl $t5, .L7F04E7E0 +/* 0832F0 7F04E7C0 2670000C */ addiu $s0, $s3, 0xc +/* 0832F4 7F04E7C4 96A2009A */ lhu $v0, 0x9a($s5) +/* 0832F8 7F04E7C8 24010006 */ li $at, 6 +/* 0832FC 7F04E7CC 10410003 */ beq $v0, $at, .L7F04E7DC +/* 083300 7F04E7D0 24010007 */ li $at, 7 +/* 083304 7F04E7D4 14410019 */ bne $v0, $at, .L7F04E83C +/* 083308 7F04E7D8 00000000 */ nop +.L7F04E7DC: +/* 08330C 7F04E7DC 2670000C */ addiu $s0, $s3, 0xc +.L7F04E7E0: +/* 083310 7F04E7E0 02003825 */ move $a3, $s0 +/* 083314 7F04E7E4 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 083318 7F04E7E8 8E85000C */ lw $a1, 0xc($s4) +/* 08331C 7F04E7EC 8E8E0008 */ lw $t6, 8($s4) +/* 083320 7F04E7F0 00409025 */ move $s2, $v0 +/* 083324 7F04E7F4 02802025 */ move $a0, $s4 +/* 083328 7F04E7F8 8DCF0000 */ lw $t7, ($t6) +/* 08332C 7F04E7FC 02603025 */ move $a2, $s3 +/* 083330 7F04E800 18400024 */ blez $v0, .L7F04E894 +/* 083334 7F04E804 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 083338 7F04E808 27B80078 */ addiu $t8, $sp, 0x78 +/* 08333C 7F04E80C 27B90074 */ addiu $t9, $sp, 0x74 +/* 083340 7F04E810 27A80060 */ addiu $t0, $sp, 0x60 +/* 083344 7F04E814 AFA80018 */ sw $t0, 0x18($sp) +/* 083348 7F04E818 AFB90014 */ sw $t9, 0x14($sp) +/* 08334C 7F04E81C AFB80010 */ sw $t8, 0x10($sp) +/* 083350 7F04E820 01E02825 */ move $a1, $t7 +/* 083354 7F04E824 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 083358 7F04E828 02003825 */ move $a3, $s0 +/* 08335C 7F04E82C 14400019 */ bnez $v0, .L7F04E894 +/* 083360 7F04E830 00000000 */ nop +/* 083364 7F04E834 10000017 */ b .L7F04E894 +/* 083368 7F04E838 00009025 */ move $s2, $zero +.L7F04E83C: +/* 08336C 7F04E83C 02802025 */ move $a0, $s4 +.L7F04E840: +/* 083370 7F04E840 02602825 */ move $a1, $s3 +/* 083374 7F04E844 02003025 */ move $a2, $s0 +/* 083378 7F04E848 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 08337C 7F04E84C 02203825 */ move $a3, $s1 +/* 083380 7F04E850 1840000E */ blez $v0, .L7F04E88C +/* 083384 7F04E854 00409025 */ move $s2, $v0 +/* 083388 7F04E858 27A90078 */ addiu $t1, $sp, 0x78 +/* 08338C 7F04E85C 27AA0074 */ addiu $t2, $sp, 0x74 +/* 083390 7F04E860 27AB0060 */ addiu $t3, $sp, 0x60 +/* 083394 7F04E864 AFAB0018 */ sw $t3, 0x18($sp) +/* 083398 7F04E868 AFAA0014 */ sw $t2, 0x14($sp) +/* 08339C 7F04E86C AFA90010 */ sw $t1, 0x10($sp) +/* 0833A0 7F04E870 02802025 */ move $a0, $s4 +/* 0833A4 7F04E874 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0833A8 7F04E878 02603025 */ move $a2, $s3 +/* 0833AC 7F04E87C 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 0833B0 7F04E880 02003825 */ move $a3, $s0 +/* 0833B4 7F04E884 14400003 */ bnez $v0, .L7F04E894 +/* 0833B8 7F04E888 00000000 */ nop +.L7F04E88C: +/* 0833BC 7F04E88C 5E40FFEC */ bgtzl $s2, .L7F04E840 +/* 0833C0 7F04E890 02802025 */ move $a0, $s4 +.L7F04E894: +/* 0833C4 7F04E894 1A400040 */ blez $s2, .L7F04E998 +/* 0833C8 7F04E898 8FAD0074 */ lw $t5, 0x74($sp) +/* 0833CC 7F04E89C 8E8C000C */ lw $t4, 0xc($s4) +/* 0833D0 7F04E8A0 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0833D4 7F04E8A4 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0833D8 7F04E8A8 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0833DC 7F04E8AC 000D7180 */ sll $t6, $t5, 6 +/* 0833E0 7F04E8B0 27A50068 */ addiu $a1, $sp, 0x68 +/* 0833E4 7F04E8B4 018E2021 */ addu $a0, $t4, $t6 +/* 0833E8 7F04E8B8 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0833EC 7F04E8BC E7A6006C */ swc1 $f6, 0x6c($sp) +/* 0833F0 7F04E8C0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0833F4 7F04E8C4 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0833F8 7F04E8C8 C7A00070 */ lwc1 $f0, 0x70($sp) +/* 0833FC 7F04E8CC C66A0034 */ lwc1 $f10, 0x34($s3) +/* 083400 7F04E8D0 02602025 */ move $a0, $s3 +/* 083404 7F04E8D4 46000007 */ neg.s $f0, $f0 +/* 083408 7F04E8D8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 08340C 7F04E8DC 460A003E */ c.le.s $f0, $f10 +/* 083410 7F04E8E0 02403825 */ move $a3, $s2 +/* 083414 7F04E8E4 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 083418 7F04E8E8 27AE0078 */ addiu $t6, $sp, 0x78 +/* 08341C 7F04E8EC 4502002B */ bc1fl .L7F04E99C +/* 083420 7F04E8F0 8FBF004C */ lw $ra, 0x4c($sp) +/* 083424 7F04E8F4 8EAF0008 */ lw $t7, 8($s5) +/* 083428 7F04E8F8 24030001 */ li $v1, 1 +/* 08342C 7F04E8FC 000FC380 */ sll $t8, $t7, 0xe +/* 083430 7F04E900 07020017 */ bltzl $t8, .L7F04E960 +/* 083434 7F04E904 8FAF0074 */ lw $t7, 0x74($sp) +/* 083438 7F04E908 92A20003 */ lbu $v0, 3($s5) +/* 08343C 7F04E90C 2401002A */ li $at, 42 +/* 083440 7F04E910 10410003 */ beq $v0, $at, .L7F04E920 +/* 083444 7F04E914 2401002F */ li $at, 47 +/* 083448 7F04E918 54410004 */ bnel $v0, $at, .L7F04E92C +/* 08344C 7F04E91C 8EB90014 */ lw $t9, 0x14($s5) +.L7F04E920: +/* 083450 7F04E920 1000000E */ b .L7F04E95C +/* 083454 7F04E924 00001825 */ move $v1, $zero +/* 083458 7F04E928 8EB90014 */ lw $t9, 0x14($s5) +.L7F04E92C: +/* 08345C 7F04E92C 3C088004 */ lui $t0, %hi(prop_door_related) +/* 083460 7F04E930 2508A1DC */ addiu $t0, %lo(prop_door_related) # addiu $t0, $t0, -0x5e24 +/* 083464 7F04E934 8F220008 */ lw $v0, 8($t9) +/* 083468 7F04E938 8C490004 */ lw $t1, 4($v0) +/* 08346C 7F04E93C 55090008 */ bnel $t0, $t1, .L7F04E960 +/* 083470 7F04E940 8FAF0074 */ lw $t7, 0x74($sp) +/* 083474 7F04E944 8C4B0008 */ lw $t3, 8($v0) +/* 083478 7F04E948 8FAA0060 */ lw $t2, 0x60($sp) +/* 08347C 7F04E94C 8D6D000C */ lw $t5, 0xc($t3) +/* 083480 7F04E950 554D0003 */ bnel $t2, $t5, .L7F04E960 +/* 083484 7F04E954 8FAF0074 */ lw $t7, 0x74($sp) +/* 083488 7F04E958 00001825 */ move $v1, $zero +.L7F04E95C: +/* 08348C 7F04E95C 8FAF0074 */ lw $t7, 0x74($sp) +.L7F04E960: +/* 083490 7F04E960 8FB80060 */ lw $t8, 0x60($sp) +/* 083494 7F04E964 AFAC0010 */ sw $t4, 0x10($sp) +/* 083498 7F04E968 AFAE0014 */ sw $t6, 0x14($sp) +/* 08349C 7F04E96C AFB40020 */ sw $s4, 0x20($sp) +/* 0834A0 7F04E970 AFA30024 */ sw $v1, 0x24($sp) +/* 0834A4 7F04E974 AFAF0018 */ sw $t7, 0x18($sp) +/* 0834A8 7F04E978 AFB8001C */ sw $t8, 0x1c($sp) +/* 0834AC 7F04E97C 8EB9000C */ lw $t9, 0xc($s5) +/* 0834B0 7F04E980 3C010010 */ lui $at, 0x10 +/* 0834B4 7F04E984 44060000 */ mfc1 $a2, $f0 +/* 0834B8 7F04E988 03214024 */ and $t0, $t9, $at +/* 0834BC 7F04E98C 0008482B */ sltu $t1, $zero, $t0 +/* 0834C0 7F04E990 0FC0EE70 */ jal sub_GAME_7F03B9C0 +/* 0834C4 7F04E994 AFA90028 */ sw $t1, 0x28($sp) +.L7F04E998: +/* 0834C8 7F04E998 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04E99C: +/* 0834CC 7F04E99C 8FB00034 */ lw $s0, 0x34($sp) +/* 0834D0 7F04E9A0 8FB10038 */ lw $s1, 0x38($sp) +/* 0834D4 7F04E9A4 8FB2003C */ lw $s2, 0x3c($sp) +/* 0834D8 7F04E9A8 8FB30040 */ lw $s3, 0x40($sp) +/* 0834DC 7F04E9AC 8FB40044 */ lw $s4, 0x44($sp) +/* 0834E0 7F04E9B0 8FB50048 */ lw $s5, 0x48($sp) +/* 0834E4 7F04E9B4 03E00008 */ jr $ra +/* 0834E8 7F04E9B8 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E9BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E9BC +/* 0834EC 7F04E9BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0834F0 7F04E9C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0834F4 7F04E9C4 AFA40028 */ sw $a0, 0x28($sp) +/* 0834F8 7F04E9C8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0834FC 7F04E9CC 8C840004 */ lw $a0, 4($a0) +/* 083500 7F04E9D0 8C8F0014 */ lw $t7, 0x14($a0) +/* 083504 7F04E9D4 AFA40024 */ sw $a0, 0x24($sp) +/* 083508 7F04E9D8 0FC1001E */ jal sub_GAME_7F040078 +/* 08350C 7F04E9DC AFAF001C */ sw $t7, 0x1c($sp) +/* 083510 7F04E9E0 8FB80028 */ lw $t8, 0x28($sp) +/* 083514 7F04E9E4 8FA40024 */ lw $a0, 0x24($sp) +/* 083518 7F04E9E8 93190001 */ lbu $t9, 1($t8) +/* 08351C 7F04E9EC 33280002 */ andi $t0, $t9, 2 +/* 083520 7F04E9F0 5100001A */ beql $t0, $zero, .L7F04EA5C +/* 083524 7F04E9F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 083528 7F04E9F8 8C890064 */ lw $t1, 0x64($a0) +/* 08352C 7F04E9FC 312A1000 */ andi $t2, $t1, 0x1000 +/* 083530 7F04EA00 55400016 */ bnezl $t2, .L7F04EA5C +/* 083534 7F04EA04 8FBF0014 */ lw $ra, 0x14($sp) +/* 083538 7F04EA08 8C8B000C */ lw $t3, 0xc($a0) +/* 08353C 7F04EA0C 8FAD001C */ lw $t5, 0x1c($sp) +/* 083540 7F04EA10 316C8000 */ andi $t4, $t3, 0x8000 +/* 083544 7F04EA14 15800010 */ bnez $t4, .L7F04EA58 +/* 083548 7F04EA18 00402025 */ move $a0, $v0 +/* 08354C 7F04EA1C 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 083550 7F04EA20 8DA5000C */ lw $a1, 0xc($t5) +/* 083554 7F04EA24 8FAE001C */ lw $t6, 0x1c($sp) +/* 083558 7F04EA28 8FA5002C */ lw $a1, 0x2c($sp) +/* 08355C 7F04EA2C 8DCF000C */ lw $t7, 0xc($t6) +/* 083560 7F04EA30 C4A60034 */ lwc1 $f6, 0x34($a1) +/* 083564 7F04EA34 C5E40038 */ lwc1 $f4, 0x38($t7) +/* 083568 7F04EA38 46040080 */ add.s $f2, $f0, $f4 +/* 08356C 7F04EA3C 46001087 */ neg.s $f2, $f2 +/* 083570 7F04EA40 4606103E */ c.le.s $f2, $f6 +/* 083574 7F04EA44 00000000 */ nop +/* 083578 7F04EA48 45020004 */ bc1fl .L7F04EA5C +/* 08357C 7F04EA4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 083580 7F04EA50 0FC139C8 */ jal sub_GAME_7F04E720 +/* 083584 7F04EA54 8FA40028 */ lw $a0, 0x28($sp) +.L7F04EA58: +/* 083588 7F04EA58 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04EA5C: +/* 08358C 7F04EA5C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 083590 7F04EA60 03E00008 */ jr $ra +/* 083594 7F04EA64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04EA68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04EA68 +/* 083598 7F04EA68 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 08359C 7F04EA6C AFBF002C */ sw $ra, 0x2c($sp) +/* 0835A0 7F04EA70 AFB10028 */ sw $s1, 0x28($sp) +/* 0835A4 7F04EA74 AFB00024 */ sw $s0, 0x24($sp) +/* 0835A8 7F04EA78 8CA60004 */ lw $a2, 4($a1) +/* 0835AC 7F04EA7C 00A08025 */ move $s0, $a1 +/* 0835B0 7F04EA80 8CC2001C */ lw $v0, 0x1c($a2) +/* 0835B4 7F04EA84 00C01825 */ move $v1, $a2 +/* 0835B8 7F04EA88 50400006 */ beql $v0, $zero, .L7F04EAA4 +/* 0835BC 7F04EA8C C6040000 */ lwc1 $f4, ($s0) +/* 0835C0 7F04EA90 00401825 */ move $v1, $v0 +.L7F04EA94: +/* 0835C4 7F04EA94 8C42001C */ lw $v0, 0x1c($v0) +/* 0835C8 7F04EA98 5440FFFE */ bnezl $v0, .L7F04EA94 +/* 0835CC 7F04EA9C 00401825 */ move $v1, $v0 +/* 0835D0 7F04EAA0 C6040000 */ lwc1 $f4, ($s0) +.L7F04EAA4: +/* 0835D4 7F04EAA4 C486000C */ lwc1 $f6, 0xc($a0) +/* 0835D8 7F04EAA8 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 0835DC 7F04EAAC C4920000 */ lwc1 $f18, ($a0) +/* 0835E0 7F04EAB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0835E4 7F04EAB4 8CD10004 */ lw $s1, 4($a2) +/* 0835E8 7F04EAB8 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0835EC 7F04EABC 44810000 */ mtc1 $at, $f0 +/* 0835F0 7F04EAC0 460A4403 */ div.s $f16, $f8, $f10 +/* 0835F4 7F04EAC4 46109101 */ sub.s $f4, $f18, $f16 +/* 0835F8 7F04EAC8 E7A40060 */ swc1 $f4, 0x60($sp) +/* 0835FC 7F04EACC C4880010 */ lwc1 $f8, 0x10($a0) +/* 083600 7F04EAD0 C6060000 */ lwc1 $f6, ($s0) +/* 083604 7F04EAD4 C4920014 */ lwc1 $f18, 0x14($a0) +/* 083608 7F04EAD8 C4840004 */ lwc1 $f4, 4($a0) +/* 08360C 7F04EADC 46083282 */ mul.s $f10, $f6, $f8 +/* 083610 7F04EAE0 46125403 */ div.s $f16, $f10, $f18 +/* 083614 7F04EAE4 46102181 */ sub.s $f6, $f4, $f16 +/* 083618 7F04EAE8 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 08361C 7F04EAEC E7A60064 */ swc1 $f6, 0x64($sp) +/* 083620 7F04EAF0 C60A0000 */ lwc1 $f10, ($s0) +/* 083624 7F04EAF4 C4880008 */ lwc1 $f8, 8($a0) +/* 083628 7F04EAF8 460A4481 */ sub.s $f18, $f8, $f10 +/* 08362C 7F04EAFC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 083630 7F04EB00 E7B20068 */ swc1 $f18, 0x68($sp) +/* 083634 7F04EB04 C490000C */ lwc1 $f16, 0xc($a0) +/* 083638 7F04EB08 46100182 */ mul.s $f6, $f0, $f16 +/* 08363C 7F04EB0C 46062201 */ sub.s $f8, $f4, $f6 +/* 083640 7F04EB10 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 083644 7F04EB14 E7A80060 */ swc1 $f8, 0x60($sp) +/* 083648 7F04EB18 C4920010 */ lwc1 $f18, 0x10($a0) +/* 08364C 7F04EB1C 46120402 */ mul.s $f16, $f0, $f18 +/* 083650 7F04EB20 46105101 */ sub.s $f4, $f10, $f16 +/* 083654 7F04EB24 E7A40064 */ swc1 $f4, 0x64($sp) +/* 083658 7F04EB28 C4880014 */ lwc1 $f8, 0x14($a0) +/* 08365C 7F04EB2C AFA40070 */ sw $a0, 0x70($sp) +/* 083660 7F04EB30 AFA3005C */ sw $v1, 0x5c($sp) +/* 083664 7F04EB34 46080482 */ mul.s $f18, $f0, $f8 +/* 083668 7F04EB38 46123281 */ sub.s $f10, $f6, $f18 +/* 08366C 7F04EB3C 0FC1E111 */ jal sub_GAME_7F078444 +/* 083670 7F04EB40 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 083674 7F04EB44 00402025 */ move $a0, $v0 +/* 083678 7F04EB48 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 08367C 7F04EB4C 27A50060 */ addiu $a1, $sp, 0x60 +/* 083680 7F04EB50 8E0E004C */ lw $t6, 0x4c($s0) +/* 083684 7F04EB54 8FA3005C */ lw $v1, 0x5c($sp) +/* 083688 7F04EB58 11C00004 */ beqz $t6, .L7F04EB6C +/* 08368C 7F04EB5C 27A40060 */ addiu $a0, $sp, 0x60 +/* 083690 7F04EB60 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 083694 7F04EB64 AFA3005C */ sw $v1, 0x5c($sp) +/* 083698 7F04EB68 8FA3005C */ lw $v1, 0x5c($sp) +.L7F04EB6C: +/* 08369C 7F04EB6C 8C6F0014 */ lw $t7, 0x14($v1) +/* 0836A0 7F04EB70 27A40060 */ addiu $a0, $sp, 0x60 +/* 0836A4 7F04EB74 24050001 */ li $a1, 1 +/* 0836A8 7F04EB78 3C0641D0 */ lui $a2, 0x41d0 +/* 0836AC 7F04EB7C 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 0836B0 7F04EB80 91E70003 */ lbu $a3, 3($t7) +/* 0836B4 7F04EB84 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 0836B8 7F04EB88 02202025 */ move $a0, $s1 +/* 0836BC 7F04EB8C 5040000D */ beql $v0, $zero, .L7F04EBC4 +/* 0836C0 7F04EB90 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836C4 7F04EB94 0FC13812 */ jal check_if_destroyable_not_invincible +/* 0836C8 7F04EB98 02202025 */ move $a0, $s1 +/* 0836CC 7F04EB9C 50400009 */ beql $v0, $zero, .L7F04EBC4 +/* 0836D0 7F04EBA0 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836D4 7F04EBA4 8E18004C */ lw $t8, 0x4c($s0) +/* 0836D8 7F04EBA8 8FB90070 */ lw $t9, 0x70($sp) +/* 0836DC 7F04EBAC 24050006 */ li $a1, 6 +/* 0836E0 7F04EBB0 53000004 */ beql $t8, $zero, .L7F04EBC4 +/* 0836E4 7F04EBB4 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836E8 7F04EBB8 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 0836EC 7F04EBBC 8F240018 */ lw $a0, 0x18($t9) +/* 0836F0 7F04EBC0 8E0B004C */ lw $t3, 0x4c($s0) +.L7F04EBC4: +/* 0836F4 7F04EBC4 55600007 */ bnezl $t3, .L7F04EBE4 +/* 0836F8 7F04EBC8 8FAC0070 */ lw $t4, 0x70($sp) +/* 0836FC 7F04EBCC 8E040004 */ lw $a0, 4($s0) +/* 083700 7F04EBD0 0FC191C8 */ jal sub_GAME_7F064720 +/* 083704 7F04EBD4 24840008 */ addiu $a0, $a0, 8 +/* 083708 7F04EBD8 10000007 */ b .L7F04EBF8 +/* 08370C 7F04EBDC 8FAD0070 */ lw $t5, 0x70($sp) +/* 083710 7F04EBE0 8FAC0070 */ lw $t4, 0x70($sp) +.L7F04EBE4: +/* 083714 7F04EBE4 8E050004 */ lw $a1, 4($s0) +/* 083718 7F04EBE8 8606003A */ lh $a2, 0x3a($s0) +/* 08371C 7F04EBEC 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 083720 7F04EBF0 8D840018 */ lw $a0, 0x18($t4) +/* 083724 7F04EBF4 8FAD0070 */ lw $t5, 0x70($sp) +.L7F04EBF8: +/* 083728 7F04EBF8 24010017 */ li $at, 23 +/* 08372C 7F04EBFC 8DA40018 */ lw $a0, 0x18($t5) +/* 083730 7F04EC00 10810060 */ beq $a0, $at, .L7F04ED84 +/* 083734 7F04EC04 00000000 */ nop +/* 083738 7F04EC08 8E0E004C */ lw $t6, 0x4c($s0) +/* 08373C 7F04EC0C 55C00022 */ bnezl $t6, .L7F04EC98 +/* 083740 7F04EC10 8602003A */ lh $v0, 0x3a($s0) +/* 083744 7F04EC14 8E380014 */ lw $t8, 0x14($s1) +/* 083748 7F04EC18 3C0F8004 */ lui $t7, %hi(prop_door_related) +/* 08374C 7F04EC1C 25EFA1DC */ addiu $t7, %lo(prop_door_related) # addiu $t7, $t7, -0x5e24 +/* 083750 7F04EC20 8F190008 */ lw $t9, 8($t8) +/* 083754 7F04EC24 8E080004 */ lw $t0, 4($s0) +/* 083758 7F04EC28 00001825 */ move $v1, $zero +/* 08375C 7F04EC2C 8F2B0004 */ lw $t3, 4($t9) +/* 083760 7F04EC30 55EB0003 */ bnel $t7, $t3, .L7F04EC40 +/* 083764 7F04EC34 A3A30057 */ sb $v1, 0x57($sp) +/* 083768 7F04EC38 24030001 */ li $v1, 1 +/* 08376C 7F04EC3C A3A30057 */ sb $v1, 0x57($sp) +.L7F04EC40: +/* 083770 7F04EC40 0C002914 */ jal get_random_value +/* 083774 7F04EC44 AFA80058 */ sw $t0, 0x58($sp) +/* 083778 7F04EC48 24010003 */ li $at, 3 +/* 08377C 7F04EC4C 0041001B */ divu $zero, $v0, $at +/* 083780 7F04EC50 8FA80058 */ lw $t0, 0x58($sp) +/* 083784 7F04EC54 00003010 */ mfhi $a2 +/* 083788 7F04EC58 83A30057 */ lb $v1, 0x57($sp) +/* 08378C 7F04EC5C AFA80010 */ sw $t0, 0x10($sp) +/* 083790 7F04EC60 8E0E0040 */ lw $t6, 0x40($s0) +/* 083794 7F04EC64 24C60011 */ addiu $a2, $a2, 0x11 +/* 083798 7F04EC68 00066400 */ sll $t4, $a2, 0x10 +/* 08379C 7F04EC6C 000C3403 */ sra $a2, $t4, 0x10 +/* 0837A0 7F04EC70 26040010 */ addiu $a0, $s0, 0x10 +/* 0837A4 7F04EC74 2605001C */ addiu $a1, $s0, 0x1c +/* 0837A8 7F04EC78 24070001 */ li $a3, 1 +/* 0837AC 7F04EC7C AFA30018 */ sw $v1, 0x18($sp) +/* 0837B0 7F04EC80 0FC28423 */ jal sub_GAME_7F0A108C +/* 0837B4 7F04EC84 AFAE0014 */ sw $t6, 0x14($sp) +/* 0837B8 7F04EC88 8FB80070 */ lw $t8, 0x70($sp) +/* 0837BC 7F04EC8C 1000003D */ b .L7F04ED84 +/* 0837C0 7F04EC90 8F040018 */ lw $a0, 0x18($t8) +/* 0837C4 7F04EC94 8602003A */ lh $v0, 0x3a($s0) +.L7F04EC98: +/* 0837C8 7F04EC98 00004825 */ move $t1, $zero +/* 0837CC 7F04EC9C 3C0F8005 */ lui $t7, %hi(image_entries) +/* 0837D0 7F04ECA0 04410004 */ bgez $v0, .L7F04ECB4 +/* 0837D4 7F04ECA4 0002C8C0 */ sll $t9, $v0, 3 +/* 0837D8 7F04ECA8 3C088005 */ lui $t0, %hi(D_8004E86C) +/* 0837DC 7F04ECAC 10000008 */ b .L7F04ECD0 +/* 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) +/* 0837EC 7F04ECBC 3C088005 */ lui $t0, %hi(D_8004E86C) +/* 0837F0 7F04ECC0 31EB000F */ andi $t3, $t7, 0xf +/* 0837F4 7F04ECC4 000B6080 */ sll $t4, $t3, 2 +/* 0837F8 7F04ECC8 010C4021 */ addu $t0, $t0, $t4 +/* 0837FC 7F04ECCC 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) +.L7F04ECD0: +/* 083800 7F04ECD0 AFA80050 */ sw $t0, 0x50($sp) +/* 083804 7F04ECD4 0C002914 */ jal get_random_value +/* 083808 7F04ECD8 A3A9004B */ sb $t1, 0x4b($sp) +/* 08380C 7F04ECDC 8FA80050 */ lw $t0, 0x50($sp) +/* 083810 7F04ECE0 8E2E0014 */ lw $t6, 0x14($s1) +/* 083814 7F04ECE4 3C188004 */ lui $t8, %hi(prop_door_related) +/* 083818 7F04ECE8 850D000A */ lh $t5, 0xa($t0) +/* 08381C 7F04ECEC 8DC30008 */ lw $v1, 8($t6) +/* 083820 7F04ECF0 2718A1DC */ addiu $t8, %lo(prop_door_related) # addiu $t8, $t8, -0x5e24 +/* 083824 7F04ECF4 004D001B */ divu $zero, $v0, $t5 +/* 083828 7F04ECF8 8C640004 */ lw $a0, 4($v1) +/* 08382C 7F04ECFC 00005010 */ mfhi $t2 +/* 083830 7F04ED00 83A9004B */ lb $t1, 0x4b($sp) +/* 083834 7F04ED04 15A00002 */ bnez $t5, .L7F04ED10 +/* 083838 7F04ED08 00000000 */ nop +/* 08383C 7F04ED0C 0007000D */ break 7 +.L7F04ED10: +/* 083840 7F04ED10 2605001C */ addiu $a1, $s0, 0x1c +/* 083844 7F04ED14 17040005 */ bne $t8, $a0, .L7F04ED2C +/* 083848 7F04ED18 24070001 */ li $a3, 1 +/* 08384C 7F04ED1C 8C6F0008 */ lw $t7, 8($v1) +/* 083850 7F04ED20 8E190044 */ lw $t9, 0x44($s0) +/* 083854 7F04ED24 8DEB000C */ lw $t3, 0xc($t7) +/* 083858 7F04ED28 132B0009 */ beq $t9, $t3, .L7F04ED50 +.L7F04ED2C: +/* 08385C 7F04ED2C 3C0C8004 */ lui $t4, %hi(prop_cctv_related) +/* 083860 7F04ED30 258CA05C */ addiu $t4, %lo(prop_cctv_related) # addiu $t4, $t4, -0x5fa4 +/* 083864 7F04ED34 55840008 */ bnel $t4, $a0, .L7F04ED58 +/* 083868 7F04ED38 8D0F0004 */ lw $t7, 4($t0) +/* 08386C 7F04ED3C 8C6E0008 */ lw $t6, 8($v1) +/* 083870 7F04ED40 8E0D0044 */ lw $t5, 0x44($s0) +/* 083874 7F04ED44 8DD80004 */ lw $t8, 4($t6) +/* 083878 7F04ED48 55B80003 */ bnel $t5, $t8, .L7F04ED58 +/* 08387C 7F04ED4C 8D0F0004 */ lw $t7, 4($t0) +.L7F04ED50: +/* 083880 7F04ED50 24090001 */ li $t1, 1 +/* 083884 7F04ED54 8D0F0004 */ lw $t7, 4($t0) +.L7F04ED58: +/* 083888 7F04ED58 8E0B0004 */ lw $t3, 4($s0) +/* 08388C 7F04ED5C 26040010 */ addiu $a0, $s0, 0x10 +/* 083890 7F04ED60 01EAC821 */ addu $t9, $t7, $t2 +/* 083894 7F04ED64 93260000 */ lbu $a2, ($t9) +/* 083898 7F04ED68 AFAB0010 */ sw $t3, 0x10($sp) +/* 08389C 7F04ED6C 8E0C0040 */ lw $t4, 0x40($s0) +/* 0838A0 7F04ED70 AFA90018 */ sw $t1, 0x18($sp) +/* 0838A4 7F04ED74 0FC28423 */ jal sub_GAME_7F0A108C +/* 0838A8 7F04ED78 AFAC0014 */ sw $t4, 0x14($sp) +/* 0838AC 7F04ED7C 8FAE0070 */ lw $t6, 0x70($sp) +/* 0838B0 7F04ED80 8DC40018 */ lw $a0, 0x18($t6) +.L7F04ED84: +/* 0838B4 7F04ED84 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0838B8 7F04ED88 00000000 */ nop +/* 0838BC 7F04ED8C 92220003 */ lbu $v0, 3($s1) +/* 0838C0 7F04ED90 2401000D */ li $at, 13 +/* 0838C4 7F04ED94 46000086 */ mov.s $f2, $f0 +/* 0838C8 7F04ED98 14410005 */ bne $v0, $at, .L7F04EDB0 +/* 0838CC 7F04ED9C 3C018003 */ lui $at, %hi(D_80030B24) +/* 0838D0 7F04EDA0 C4300B24 */ lwc1 $f16, %lo(D_80030B24)($at) +/* 0838D4 7F04EDA4 46100082 */ mul.s $f2, $f0, $f16 +/* 0838D8 7F04EDA8 1000001B */ b .L7F04EE18 +/* 0838DC 7F04EDAC 00000000 */ nop +.L7F04EDB0: +/* 0838E0 7F04EDB0 24010006 */ li $at, 6 +/* 0838E4 7F04EDB4 14410018 */ bne $v0, $at, .L7F04EE18 +/* 0838E8 7F04EDB8 00000000 */ nop +/* 0838EC 7F04EDBC 8E2D0014 */ lw $t5, 0x14($s1) +/* 0838F0 7F04EDC0 3C188004 */ lui $t8, %hi(prop_cctv_related) +/* 0838F4 7F04EDC4 2718A05C */ addiu $t8, %lo(prop_cctv_related) # addiu $t8, $t8, -0x5fa4 +/* 0838F8 7F04EDC8 8DA30008 */ lw $v1, 8($t5) +/* 0838FC 7F04EDCC 8C6F0004 */ lw $t7, 4($v1) +/* 083900 7F04EDD0 170F000D */ bne $t8, $t7, .L7F04EE08 +/* 083904 7F04EDD4 00000000 */ nop +/* 083908 7F04EDD8 8C6B0008 */ lw $t3, 8($v1) +/* 08390C 7F04EDDC 8E190044 */ lw $t9, 0x44($s0) +/* 083910 7F04EDE0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 083914 7F04EDE4 8D6C0004 */ lw $t4, 4($t3) +/* 083918 7F04EDE8 172C0007 */ bne $t9, $t4, .L7F04EE08 +/* 08391C 7F04EDEC 00000000 */ nop +/* 083920 7F04EDF0 44812000 */ mtc1 $at, $f4 +/* 083924 7F04EDF4 02202025 */ move $a0, $s1 +/* 083928 7F04EDF8 46041082 */ mul.s $f2, $f2, $f4 +/* 08392C 7F04EDFC 0FC13786 */ jal sub_GAME_7F04DE18 +/* 083930 7F04EE00 E7A20044 */ swc1 $f2, 0x44($sp) +/* 083934 7F04EE04 C7A20044 */ lwc1 $f2, 0x44($sp) +.L7F04EE08: +/* 083938 7F04EE08 3C018003 */ lui $at, %hi(D_80030B18) +/* 08393C 7F04EE0C C4280B18 */ lwc1 $f8, %lo(D_80030B18)($at) +/* 083940 7F04EE10 46081082 */ mul.s $f2, $f2, $f8 +/* 083944 7F04EE14 00000000 */ nop +.L7F04EE18: +/* 083948 7F04EE18 0FC26C54 */ jal get_cur_playernum +/* 08394C 7F04EE1C E7A20044 */ swc1 $f2, 0x44($sp) +/* 083950 7F04EE20 C7A20044 */ lwc1 $f2, 0x44($sp) +/* 083954 7F04EE24 8FAE0070 */ lw $t6, 0x70($sp) +/* 083958 7F04EE28 02202025 */ move $a0, $s1 +/* 08395C 7F04EE2C 44051000 */ mfc1 $a1, $f2 +/* 083960 7F04EE30 8DC70018 */ lw $a3, 0x18($t6) +/* 083964 7F04EE34 AFA20010 */ sw $v0, 0x10($sp) +/* 083968 7F04EE38 0FC13833 */ jal sub_GAME_7F04E0CC +/* 08396C 7F04EE3C 27A60060 */ addiu $a2, $sp, 0x60 +/* 083970 7F04EE40 8E380014 */ lw $t8, 0x14($s1) +/* 083974 7F04EE44 3C0D8004 */ lui $t5, %hi(prop_door_related) +/* 083978 7F04EE48 25ADA1DC */ addiu $t5, %lo(prop_door_related) # addiu $t5, $t5, -0x5e24 +/* 08397C 7F04EE4C 8F0F0008 */ lw $t7, 8($t8) +/* 083980 7F04EE50 8DEB0004 */ lw $t3, 4($t7) +/* 083984 7F04EE54 15AB000D */ bne $t5, $t3, .L7F04EE8C +/* 083988 7F04EE58 00000000 */ nop +/* 08398C 7F04EE5C 8E19004C */ lw $t9, 0x4c($s0) +/* 083990 7F04EE60 1720000A */ bnez $t9, .L7F04EE8C +/* 083994 7F04EE64 00000000 */ nop +/* 083998 7F04EE68 822C00BD */ lb $t4, 0xbd($s1) +/* 08399C 7F04EE6C 258E0001 */ addiu $t6, $t4, 1 +/* 0839A0 7F04EE70 A22E00BD */ sb $t6, 0xbd($s1) +/* 0839A4 7F04EE74 823800BD */ lb $t8, 0xbd($s1) +/* 0839A8 7F04EE78 2B010003 */ slti $at, $t8, 3 +/* 0839AC 7F04EE7C 14200003 */ bnez $at, .L7F04EE8C +/* 0839B0 7F04EE80 00000000 */ nop +/* 0839B4 7F04EE84 0FC1375A */ jal sub_GAME_7F04DD68 +/* 0839B8 7F04EE88 02202025 */ move $a0, $s1 +.L7F04EE8C: +/* 0839BC 7F04EE8C 0FC11080 */ jal sub_GAME_7F044200 +/* 0839C0 7F04EE90 8E040004 */ lw $a0, 4($s0) +/* 0839C4 7F04EE94 00008025 */ move $s0, $zero +/* 0839C8 7F04EE98 0FC13803 */ jal check_if_collectable_object +/* 0839CC 7F04EE9C 02202025 */ move $a0, $s1 +/* 0839D0 7F04EEA0 50400008 */ beql $v0, $zero, .L7F04EEC4 +/* 0839D4 7F04EEA4 8E2B0008 */ lw $t3, 8($s1) +/* 0839D8 7F04EEA8 8E2F0008 */ lw $t7, 8($s1) +/* 0839DC 7F04EEAC 000F6A40 */ sll $t5, $t7, 9 +/* 0839E0 7F04EEB0 05A20009 */ bltzl $t5, .L7F04EED8 +/* 0839E4 7F04EEB4 8E2C000C */ lw $t4, 0xc($s1) +/* 0839E8 7F04EEB8 10000006 */ b .L7F04EED4 +/* 0839EC 7F04EEBC 24100001 */ li $s0, 1 +/* 0839F0 7F04EEC0 8E2B0008 */ lw $t3, 8($s1) +.L7F04EEC4: +/* 0839F4 7F04EEC4 000BCA80 */ sll $t9, $t3, 0xa +/* 0839F8 7F04EEC8 07230003 */ bgezl $t9, .L7F04EED8 +/* 0839FC 7F04EECC 8E2C000C */ lw $t4, 0xc($s1) +/* 083A00 7F04EED0 24100001 */ li $s0, 1 +.L7F04EED4: +/* 083A04 7F04EED4 8E2C000C */ lw $t4, 0xc($s1) +.L7F04EED8: +/* 083A08 7F04EED8 318E0002 */ andi $t6, $t4, 2 +/* 083A0C 7F04EEDC 51C00007 */ beql $t6, $zero, .L7F04EEFC +/* 083A10 7F04EEE0 8E38000C */ lw $t8, 0xc($s1) +/* 083A14 7F04EEE4 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 083A18 7F04EEE8 02202025 */ move $a0, $s1 +/* 083A1C 7F04EEEC 54400003 */ bnezl $v0, .L7F04EEFC +/* 083A20 7F04EEF0 8E38000C */ lw $t8, 0xc($s1) +/* 083A24 7F04EEF4 24100001 */ li $s0, 1 +/* 083A28 7F04EEF8 8E38000C */ lw $t8, 0xc($s1) +.L7F04EEFC: +/* 083A2C 7F04EEFC 8FA50070 */ lw $a1, 0x70($sp) +/* 083A30 7F04EF00 330F0400 */ andi $t7, $t8, 0x400 +/* 083A34 7F04EF04 11E00002 */ beqz $t7, .L7F04EF10 +/* 083A38 7F04EF08 24A5000C */ addiu $a1, $a1, 0xc +/* 083A3C 7F04EF0C 00008025 */ move $s0, $zero +.L7F04EF10: +/* 083A40 7F04EF10 52000004 */ beql $s0, $zero, .L7F04EF24 +/* 083A44 7F04EF14 8FBF002C */ lw $ra, 0x2c($sp) +/* 083A48 7F04EF18 0FC12F37 */ jal sub_GAME_7F04BCDC +/* 083A4C 7F04EF1C 02202025 */ move $a0, $s1 +/* 083A50 7F04EF20 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04EF24: +/* 083A54 7F04EF24 8FB00024 */ lw $s0, 0x24($sp) +/* 083A58 7F04EF28 8FB10028 */ lw $s1, 0x28($sp) +/* 083A5C 7F04EF2C 03E00008 */ jr $ra +/* 083A60 7F04EF30 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_object_has_not_been_destroyed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_object_has_not_been_destroyed +/* 083A64 7F04EF34 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 083A68 7F04EF38 AFBF0014 */ sw $ra, 0x14($sp) +/* 083A6C 7F04EF3C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083A70 7F04EF40 00000000 */ nop +/* 083A74 7F04EF44 8FBF0014 */ lw $ra, 0x14($sp) +/* 083A78 7F04EF48 2C4E0001 */ sltiu $t6, $v0, 1 +/* 083A7C 7F04EF4C 01C01025 */ move $v0, $t6 +/* 083A80 7F04EF50 03E00008 */ jr $ra +/* 083A84 7F04EF54 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04EF58(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052EF4 +.word 0x481c4000 /*160000.0*/ +glabel D_80052EF8 +.word 0x40060a92 /*2.0943952*/ +glabel D_80052EFC +.word 0x471c4000 /*40000.0*/ +glabel D_80052F00 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80052F04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052F08 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052F0C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F04EF58 +/* 083A88 7F04EF58 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 083A8C 7F04EF5C AFBF001C */ sw $ra, 0x1c($sp) +/* 083A90 7F04EF60 8C850004 */ lw $a1, 4($a0) +/* 083A94 7F04EF64 24010005 */ li $at, 5 +/* 083A98 7F04EF68 00803025 */ move $a2, $a0 +/* 083A9C 7F04EF6C 90AE0003 */ lbu $t6, 3($a1) +/* 083AA0 7F04EF70 51C1000A */ beql $t6, $at, .L7F04EF9C +/* 083AA4 7F04EF74 90C90001 */ lbu $t1, 1($a2) +/* 083AA8 7F04EF78 8CAF0008 */ lw $t7, 8($a1) +/* 083AAC 7F04EF7C 000FC300 */ sll $t8, $t7, 0xc +/* 083AB0 7F04EF80 07020006 */ bltzl $t8, .L7F04EF9C +/* 083AB4 7F04EF84 90C90001 */ lbu $t1, 1($a2) +/* 083AB8 7F04EF88 8CB90064 */ lw $t9, 0x64($a1) +/* 083ABC 7F04EF8C 33280013 */ andi $t0, $t9, 0x13 +/* 083AC0 7F04EF90 51000073 */ beql $t0, $zero, .L7F04F160 +/* 083AC4 7F04EF94 8FBF001C */ lw $ra, 0x1c($sp) +/* 083AC8 7F04EF98 90C90001 */ lbu $t1, 1($a2) +.L7F04EF9C: +/* 083ACC 7F04EF9C 00A02025 */ move $a0, $a1 +/* 083AD0 7F04EFA0 312A0002 */ andi $t2, $t1, 2 +/* 083AD4 7F04EFA4 5140006E */ beql $t2, $zero, .L7F04F160 +/* 083AD8 7F04EFA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 083ADC 7F04EFAC AFA50050 */ sw $a1, 0x50($sp) +/* 083AE0 7F04EFB0 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 083AE4 7F04EFB4 AFA60058 */ sw $a2, 0x58($sp) +/* 083AE8 7F04EFB8 10400068 */ beqz $v0, .L7F04F15C +/* 083AEC 7F04EFBC 8FA50050 */ lw $a1, 0x50($sp) +/* 083AF0 7F04EFC0 8CAB0008 */ lw $t3, 8($a1) +/* 083AF4 7F04EFC4 000B6180 */ sll $t4, $t3, 6 +/* 083AF8 7F04EFC8 05820065 */ bltzl $t4, .L7F04F160 +/* 083AFC 7F04EFCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083B00 7F04EFD0 0FC225E6 */ jal get_curplayer_positiondata +/* 083B04 7F04EFD4 AFA50050 */ sw $a1, 0x50($sp) +/* 083B08 7F04EFD8 8FA50050 */ lw $a1, 0x50($sp) +/* 083B0C 7F04EFDC C4460008 */ lwc1 $f6, 8($v0) +/* 083B10 7F04EFE0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 083B14 7F04EFE4 C4A40058 */ lwc1 $f4, 0x58($a1) +/* 083B18 7F04EFE8 C4A8005C */ lwc1 $f8, 0x5c($a1) +/* 083B1C 7F04EFEC 8C4D0014 */ lw $t5, 0x14($v0) +/* 083B20 7F04EFF0 46062301 */ sub.s $f12, $f4, $f6 +/* 083B24 7F04EFF4 C4460010 */ lwc1 $f6, 0x10($v0) +/* 083B28 7F04EFF8 C4A40060 */ lwc1 $f4, 0x60($a1) +/* 083B2C 7F04EFFC 460A4401 */ sub.s $f16, $f8, $f10 +/* 083B30 7F04F000 460C6202 */ mul.s $f8, $f12, $f12 +/* 083B34 7F04F004 AFAD002C */ sw $t5, 0x2c($sp) +/* 083B38 7F04F008 46062381 */ sub.s $f14, $f4, $f6 +/* 083B3C 7F04F00C 90AE0003 */ lbu $t6, 3($a1) +/* 083B40 7F04F010 24010028 */ li $at, 40 +/* 083B44 7F04F014 00401825 */ move $v1, $v0 +/* 083B48 7F04F018 460E7282 */ mul.s $f10, $f14, $f14 +/* 083B4C 7F04F01C 55C1000D */ bnel $t6, $at, .L7F04F054 +/* 083B50 7F04F020 3C014348 */ lui $at, 0x4348 +/* 083B54 7F04F024 8CAF0008 */ lw $t7, 8($a1) +/* 083B58 7F04F028 3C0143C8 */ lui $at, 0x43c8 +/* 083B5C 7F04F02C 000FC080 */ sll $t8, $t7, 2 +/* 083B60 7F04F030 07030008 */ bgezl $t8, .L7F04F054 +/* 083B64 7F04F034 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 083B68 7F04F038 44810000 */ mtc1 $at, $f0 +/* 083B6C 7F04F03C 3C018005 */ lui $at, %hi(D_80052EF4) +/* 083B70 7F04F040 C4222EF4 */ lwc1 $f2, %lo(D_80052EF4)($at) +/* 083B74 7F04F044 3C018005 */ lui $at, %hi(D_80052EF8) +/* 083B78 7F04F048 10000007 */ b .L7F04F068 +/* 083B7C 7F04F04C C4322EF8 */ lwc1 $f18, %lo(D_80052EF8)($at) +/* 083B80 7F04F050 3C014348 */ li $at, 0x43480000 # 200.000000 +.L7F04F054: +/* 083B84 7F04F054 44810000 */ mtc1 $at, $f0 +/* 083B88 7F04F058 3C018005 */ lui $at, %hi(D_80052EFC) +/* 083B8C 7F04F05C C4222EFC */ lwc1 $f2, %lo(D_80052EFC)($at) +/* 083B90 7F04F060 3C018005 */ lui $at, %hi(D_80052F00) +/* 083B94 7F04F064 C4322F00 */ lwc1 $f18, %lo(D_80052F00)($at) +.L7F04F068: +/* 083B98 7F04F068 460A4100 */ add.s $f4, $f8, $f10 +/* 083B9C 7F04F06C 4602203C */ c.lt.s $f4, $f2 +/* 083BA0 7F04F070 00000000 */ nop +/* 083BA4 7F04F074 4502003A */ bc1fl .L7F04F160 +/* 083BA8 7F04F078 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BAC 7F04F07C 4600803C */ c.lt.s $f16, $f0 +/* 083BB0 7F04F080 00000000 */ nop +/* 083BB4 7F04F084 45020036 */ bc1fl .L7F04F160 +/* 083BB8 7F04F088 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BBC 7F04F08C 46000187 */ neg.s $f6, $f0 +/* 083BC0 7F04F090 4610303C */ c.lt.s $f6, $f16 +/* 083BC4 7F04F094 00000000 */ nop +/* 083BC8 7F04F098 45020031 */ bc1fl .L7F04F160 +/* 083BCC 7F04F09C 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BD0 7F04F0A0 AFA3004C */ sw $v1, 0x4c($sp) +/* 083BD4 7F04F0A4 AFA50050 */ sw $a1, 0x50($sp) +/* 083BD8 7F04F0A8 0FC16A8C */ jal atan2f +/* 083BDC 7F04F0AC E7B20030 */ swc1 $f18, 0x30($sp) +/* 083BE0 7F04F0B0 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 083BE4 7F04F0B4 E7A00024 */ swc1 $f0, 0x24($sp) +/* 083BE8 7F04F0B8 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 083BEC 7F04F0BC 8FA3004C */ lw $v1, 0x4c($sp) +/* 083BF0 7F04F0C0 8FA50050 */ lw $a1, 0x50($sp) +/* 083BF4 7F04F0C4 4600603C */ c.lt.s $f12, $f0 +/* 083BF8 7F04F0C8 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 083BFC 7F04F0CC 46006381 */ sub.s $f14, $f12, $f0 +/* 083C00 7F04F0D0 3C018005 */ lui $at, %hi(D_80052F04) +/* 083C04 7F04F0D4 45000003 */ bc1f .L7F04F0E4 +/* 083C08 7F04F0D8 46007086 */ mov.s $f2, $f14 +/* 083C0C 7F04F0DC C4282F04 */ lwc1 $f8, %lo(D_80052F04)($at) +/* 083C10 7F04F0E0 46087080 */ add.s $f2, $f14, $f8 +.L7F04F0E4: +/* 083C14 7F04F0E4 3C018005 */ lui $at, %hi(D_80052F08) +/* 083C18 7F04F0E8 C42A2F08 */ lwc1 $f10, %lo(D_80052F08)($at) +/* 083C1C 7F04F0EC 3C018005 */ lui $at, %hi(D_80052F0C) +/* 083C20 7F04F0F0 4602503C */ c.lt.s $f10, $f2 +/* 083C24 7F04F0F4 00000000 */ nop +/* 083C28 7F04F0F8 45020004 */ bc1fl .L7F04F10C +/* 083C2C 7F04F0FC 4612103E */ c.le.s $f2, $f18 +/* 083C30 7F04F100 C4242F0C */ lwc1 $f4, %lo(D_80052F0C)($at) +/* 083C34 7F04F104 46022081 */ sub.s $f2, $f4, $f2 +/* 083C38 7F04F108 4612103E */ c.le.s $f2, $f18 +.L7F04F10C: +/* 083C3C 7F04F10C 00000000 */ nop +/* 083C40 7F04F110 45020013 */ bc1fl .L7F04F160 +/* 083C44 7F04F114 8FBF001C */ lw $ra, 0x1c($sp) +/* 083C48 7F04F118 8CB9000C */ lw $t9, 0xc($a1) +/* 083C4C 7F04F11C 8FA20058 */ lw $v0, 0x58($sp) +/* 083C50 7F04F120 27A4002C */ addiu $a0, $sp, 0x2c +/* 083C54 7F04F124 33280800 */ andi $t0, $t9, 0x800 +/* 083C58 7F04F128 5100000A */ beql $t0, $zero, .L7F04F154 +/* 083C5C 7F04F12C 8FA90058 */ lw $t1, 0x58($sp) +/* 083C60 7F04F130 C4460010 */ lwc1 $f6, 0x10($v0) +/* 083C64 7F04F134 8C650008 */ lw $a1, 8($v1) +/* 083C68 7F04F138 8C660010 */ lw $a2, 0x10($v1) +/* 083C6C 7F04F13C 8C470008 */ lw $a3, 8($v0) +/* 083C70 7F04F140 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 083C74 7F04F144 E7A60010 */ swc1 $f6, 0x10($sp) +/* 083C78 7F04F148 50400005 */ beql $v0, $zero, .L7F04F160 +/* 083C7C 7F04F14C 8FBF001C */ lw $ra, 0x1c($sp) +/* 083C80 7F04F150 8FA90058 */ lw $t1, 0x58($sp) +.L7F04F154: +/* 083C84 7F04F154 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 083C88 7F04F158 AC291DF8 */ sw $t1, %lo(dword_CODE_bss_80071DF8)($at) +.L7F04F15C: +/* 083C8C 7F04F15C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F160: +/* 083C90 7F04F160 27BD0058 */ addiu $sp, $sp, 0x58 +/* 083C94 7F04F164 24020001 */ li $v0, 1 +/* 083C98 7F04F168 03E00008 */ jr $ra +/* 083C9C 7F04F16C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04F170(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel sub_GAME_7F04F170 +/* 083CA0 7F04F170 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 083CA4 7F04F174 AFBF001C */ sw $ra, 0x1c($sp) +/* 083CA8 7F04F178 AFB00018 */ sw $s0, 0x18($sp) +/* 083CAC 7F04F17C AFA40028 */ sw $a0, 0x28($sp) +/* 083CB0 7F04F180 8C900004 */ lw $s0, 4($a0) +/* 083CB4 7F04F184 AFA00020 */ sw $zero, 0x20($sp) +/* 083CB8 7F04F188 24010005 */ li $at, 5 +/* 083CBC 7F04F18C 920F0003 */ lbu $t7, 3($s0) +/* 083CC0 7F04F190 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 083CC4 7F04F194 240500BA */ li $a1, 186 +/* 083CC8 7F04F198 15E1000D */ bne $t7, $at, .L7F04F1D0 +/* 083CCC 7F04F19C 00003025 */ move $a2, $zero +/* 083CD0 7F04F1A0 0C002382 */ jal play_sfx_a1 +/* 083CD4 7F04F1A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 083CD8 7F04F1A8 0FC15794 */ jal is_alarm_on +/* 083CDC 7F04F1AC 00000000 */ nop +/* 083CE0 7F04F1B0 10400005 */ beqz $v0, .L7F04F1C8 +/* 083CE4 7F04F1B4 00000000 */ nop +/* 083CE8 7F04F1B8 0FC1578B */ jal stop_alarm +/* 083CEC 7F04F1BC 00000000 */ nop +/* 083CF0 7F04F1C0 10000004 */ b .L7F04F1D4 +/* 083CF4 7F04F1C4 8E180008 */ lw $t8, 8($s0) +.L7F04F1C8: +/* 083CF8 7F04F1C8 0FC15772 */ jal start_alarm +/* 083CFC 7F04F1CC 00000000 */ nop +.L7F04F1D0: +/* 083D00 7F04F1D0 8E180008 */ lw $t8, 8($s0) +.L7F04F1D4: +/* 083D04 7F04F1D4 8FA40028 */ lw $a0, 0x28($sp) +/* 083D08 7F04F1D8 0018CB00 */ sll $t9, $t8, 0xc +/* 083D0C 7F04F1DC 07230005 */ bgezl $t9, .L7F04F1F4 +/* 083D10 7F04F1E0 8E080064 */ lw $t0, 0x64($s0) +/* 083D14 7F04F1E4 0FC14094 */ jal collect_or_interact_object +/* 083D18 7F04F1E8 24050001 */ li $a1, 1 +/* 083D1C 7F04F1EC AFA20020 */ sw $v0, 0x20($sp) +/* 083D20 7F04F1F0 8E080064 */ lw $t0, 0x64($s0) +.L7F04F1F4: +/* 083D24 7F04F1F4 35094000 */ ori $t1, $t0, 0x4000 +/* 083D28 7F04F1F8 AE090064 */ sw $t1, 0x64($s0) +/* 083D2C 7F04F1FC 0FC0F9A8 */ jal sub_GAME_7F03E6A0 +/* 083D30 7F04F200 8FA40028 */ lw $a0, 0x28($sp) +/* 083D34 7F04F204 8FBF001C */ lw $ra, 0x1c($sp) +/* 083D38 7F04F208 8FA20020 */ lw $v0, 0x20($sp) +/* 083D3C 7F04F20C 8FB00018 */ lw $s0, 0x18($sp) +/* 083D40 7F04F210 03E00008 */ jr $ra +/* 083D44 7F04F214 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04F218(void) { + +} +#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) +{ + u8 *puVar1; + + puVar1 = get_textptr_for_textID(0xa400); + string_append_from_obseg_textbank(buffer,puVar1); + return; +} + + + + + +void append_text_ammo_amount_word(u8 *buffer,AMMOTYPES ammotype,u32 amount) + +{ + u8 *textfiletext; + + switch(ammotype) { + case AMMO_9MM: + case AMMO_9MM_2: + case AMMO_RIFLE: + case AMMO_PLASTIQUE: + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_SHOTGUN: + case AMMO_GRENADE: + case AMMO_ROCKETS: + case AMMO_REMOTEMINE: + case AMMO_PROXMINE: + case AMMO_TIMEDMINE: + case AMMO_KNIFE: + case AMMO_GRENADEROUND: + case AMMO_MAGNUM: + case AMMO_GGUN: + case AMMO_DARTS: + case AMMO_FLARE: + case AMMO_PITON: + case AMMO_DYNAMITE: + case AMMO_BUG: + case AMMO_MICRO_CAMERA: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa402); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + break; + case AMMO_EXPLOSIVEPEN: + case AMMO_BOMBCASE: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa403); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + break; + case AMMO_GEKEY: + case AMMO_TOKEN: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa404); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + return; +} + + + + + + + +#ifdef NONMATCHING// +void apped_text_ammotype(u8 *buffer,AMMOTYPES ammotype,u32 amount) +{ + u8 *textfiletext; + + if (((ammotype == AMMO_9MM) || (ammotype == AMMO_9MM_2)) || (ammotype == AMMO_RIFLE)) { + textfiletext = get_textptr_for_textID(0xa405); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + if (ammotype == AMMO_KNIFE) { + textfiletext = get_textptr_for_textID(41999); + string_append_from_obseg_textbank(buffer,textfiletext); + if (amount == 1) { + textfiletext = get_textptr_for_textID(42000); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa411); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + else { + if (ammotype == AMMO_DYNAMITE) { + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa419); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa41a); + string_append_from_obseg_textbank(buffer,textfiletext); + } + textfiletext = get_textptr_for_textID(0xa418); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + switch(ammotype) { + case AMMO_SHOTGUN: + textfiletext = get_textptr_for_textID(0xa406); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GRENADE: + textfiletext = get_textptr_for_textID(0xa409); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_ROCKETS: + textfiletext = get_textptr_for_textID(0xa40b); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_REMOTEMINE: + textfiletext = get_textptr_for_textID(0xa40c); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PROXMINE: + textfiletext = get_textptr_for_textID(0xa40d); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_TIMEDMINE: + textfiletext = get_textptr_for_textID(0xa40e); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GRENADEROUND: + textfiletext = get_textptr_for_textID(0xa40a); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_MAGNUM: + textfiletext = get_textptr_for_textID(0xa407); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GGUN: + textfiletext = get_textptr_for_textID(0xa408); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_DARTS: + textfiletext = get_textptr_for_textID(0xa413); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_EXPLOSIVEPEN: + textfiletext = get_textptr_for_textID(0xa414); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_BOMBCASE: + textfiletext = get_textptr_for_textID(0xa415); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_FLARE: + textfiletext = get_textptr_for_textID(0xa416); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PITON: + textfiletext = get_textptr_for_textID(0xa417); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_BUG: + textfiletext = get_textptr_for_textID(0xa41b); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_MICRO_CAMERA: + textfiletext = get_textptr_for_textID(0xa41c); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GEKEY: + textfiletext = get_textptr_for_textID(0xa41d); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PLASTIQUE: + textfiletext = get_textptr_for_textID(0xa41f); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_TOKEN: + textfiletext = get_textptr_for_textID(0xa41e); + string_append_from_obseg_textbank(buffer,textfiletext); + } + if (1 < (int)amount) { + textfiletext = get_textptr_for_textID(0xa412); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052F84*/ +glabel jpt_80052F84 +.word text_pickup_shotgun_cartridge +.word text_pickup_hand_grenade +.word text_pickup_rocket +.word text_pickup_remote_mine +.word text_pickup_proximity_mine +.word text_pickup_timed_mine +.word pluralize_multiples +.word text_pickup_grenade_round +.word text_pickup_magnum_bullet +.word text_pickup_golden_bullet +.word text_pickup_dart +.word text_pickup_explosive_pen +.word text_pickup_explosive_case +.word text_pickup_flare +.word text_pickup_piton +.word pluralize_multiples +.word text_pickup_bug +.word text_pickup_micro_camera +.word text_pickup_goldeneye_key +.word text_pickup_plastique +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word text_pickup_token + + + +.text +glabel apped_text_ammotype +/* 083F3C 7F04F40C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 083F40 7F04F410 AFB00018 */ sw $s0, 0x18($sp) +/* 083F44 7F04F414 24020001 */ li $v0, 1 +/* 083F48 7F04F418 00808025 */ move $s0, $a0 +/* 083F4C 7F04F41C AFBF001C */ sw $ra, 0x1c($sp) +/* 083F50 7F04F420 10A20006 */ beq $a1, $v0, .L7F04F43C +/* 083F54 7F04F424 AFA60028 */ sw $a2, 0x28($sp) +/* 083F58 7F04F428 24010002 */ li $at, 2 +/* 083F5C 7F04F42C 10A10003 */ beq $a1, $at, .L7F04F43C +/* 083F60 7F04F430 24010003 */ li $at, 3 +/* 083F64 7F04F434 54A10009 */ bnel $a1, $at, .L7F04F45C +/* 083F68 7F04F438 2401000A */ li $at, 10 +.L7F04F43C: +/* 083F6C 7F04F43C 0FC30776 */ jal get_textptr_for_textID +/* 083F70 7F04F440 3404A405 */ li $a0, 41989 +/* 083F74 7F04F444 02002025 */ move $a0, $s0 +/* 083F78 7F04F448 0C0029FF */ jal string_append_from_obseg_textbank +/* 083F7C 7F04F44C 00402825 */ move $a1, $v0 +/* 083F80 7F04F450 100000C9 */ b .L7F04F778 +/* 083F84 7F04F454 8FBF001C */ lw $ra, 0x1c($sp) +/* 083F88 7F04F458 2401000A */ li $at, 10 +.L7F04F45C: +/* 083F8C 7F04F45C 54A10019 */ bnel $a1, $at, .L7F04F4C4 +/* 083F90 7F04F460 24010013 */ li $at, 19 +/* 083F94 7F04F464 0FC30776 */ jal get_textptr_for_textID +/* 083F98 7F04F468 3404A40F */ li $a0, 41999 +/* 083F9C 7F04F46C 02002025 */ move $a0, $s0 +/* 083FA0 7F04F470 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FA4 7F04F474 00402825 */ move $a1, $v0 +/* 083FA8 7F04F478 8FAE0028 */ lw $t6, 0x28($sp) +/* 083FAC 7F04F47C 24010001 */ li $at, 1 +/* 083FB0 7F04F480 15C10008 */ bne $t6, $at, .L7F04F4A4 +/* 083FB4 7F04F484 00000000 */ nop +/* 083FB8 7F04F488 0FC30776 */ jal get_textptr_for_textID +/* 083FBC 7F04F48C 3404A410 */ li $a0, 42000 +/* 083FC0 7F04F490 02002025 */ move $a0, $s0 +/* 083FC4 7F04F494 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FC8 7F04F498 00402825 */ move $a1, $v0 +/* 083FCC 7F04F49C 100000B6 */ b .L7F04F778 +/* 083FD0 7F04F4A0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F4A4: +/* 083FD4 7F04F4A4 0FC30776 */ jal get_textptr_for_textID +/* 083FD8 7F04F4A8 3404A411 */ li $a0, 42001 +/* 083FDC 7F04F4AC 02002025 */ move $a0, $s0 +/* 083FE0 7F04F4B0 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FE4 7F04F4B4 00402825 */ move $a1, $v0 +/* 083FE8 7F04F4B8 100000AF */ b .L7F04F778 +/* 083FEC 7F04F4BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083FF0 7F04F4C0 24010013 */ li $at, 19 +.L7F04F4C4: +/* 083FF4 7F04F4C4 14A10017 */ bne $a1, $at, .L7F04F524 +/* 083FF8 7F04F4C8 24B8FFFC */ addiu $t8, $a1, -4 +/* 083FFC 7F04F4CC 8FAF0028 */ lw $t7, 0x28($sp) +/* 084000 7F04F4D0 15E20008 */ bne $t7, $v0, .L7F04F4F4 +/* 084004 7F04F4D4 00000000 */ nop +/* 084008 7F04F4D8 0FC30776 */ jal get_textptr_for_textID +/* 08400C 7F04F4DC 3404A419 */ li $a0, 42009 +/* 084010 7F04F4E0 02002025 */ move $a0, $s0 +/* 084014 7F04F4E4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084018 7F04F4E8 00402825 */ move $a1, $v0 +/* 08401C 7F04F4EC 10000006 */ b .L7F04F508 +/* 084020 7F04F4F0 00000000 */ nop +.L7F04F4F4: +/* 084024 7F04F4F4 0FC30776 */ jal get_textptr_for_textID +/* 084028 7F04F4F8 3404A41A */ li $a0, 42010 +/* 08402C 7F04F4FC 02002025 */ move $a0, $s0 +/* 084030 7F04F500 0C0029FF */ jal string_append_from_obseg_textbank +/* 084034 7F04F504 00402825 */ move $a1, $v0 +.L7F04F508: +/* 084038 7F04F508 0FC30776 */ jal get_textptr_for_textID +/* 08403C 7F04F50C 3404A418 */ li $a0, 42008 +/* 084040 7F04F510 02002025 */ move $a0, $s0 +/* 084044 7F04F514 0C0029FF */ jal string_append_from_obseg_textbank +/* 084048 7F04F518 00402825 */ move $a1, $v0 +/* 08404C 7F04F51C 10000096 */ b .L7F04F778 +/* 084050 7F04F520 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F524: +/* 084054 7F04F524 2F01001A */ sltiu $at, $t8, 0x1a +/* 084058 7F04F528 10200089 */ beqz $at, .L7F04F750 +/* 08405C 7F04F52C 0018C080 */ sll $t8, $t8, 2 +/* 084060 7F04F530 3C018005 */ lui $at, %hi(jpt_80052F84) +/* 084064 7F04F534 00380821 */ addu $at, $at, $t8 +/* 084068 7F04F538 8C382F84 */ lw $t8, %lo(jpt_80052F84)($at) +/* 08406C 7F04F53C 03000008 */ jr $t8 +/* 084070 7F04F540 00000000 */ nop +text_pickup_shotgun_cartridge: +/* 084074 7F04F544 0FC30776 */ jal get_textptr_for_textID +/* 084078 7F04F548 3404A406 */ li $a0, 41990 +/* 08407C 7F04F54C 02002025 */ move $a0, $s0 +/* 084080 7F04F550 0C0029FF */ jal string_append_from_obseg_textbank +/* 084084 7F04F554 00402825 */ move $a1, $v0 +/* 084088 7F04F558 1000007E */ b .L7F04F754 +/* 08408C 7F04F55C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_magnum_bullet: +/* 084090 7F04F560 0FC30776 */ jal get_textptr_for_textID +/* 084094 7F04F564 3404A407 */ li $a0, 41991 +/* 084098 7F04F568 02002025 */ move $a0, $s0 +/* 08409C 7F04F56C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840A0 7F04F570 00402825 */ move $a1, $v0 +/* 0840A4 7F04F574 10000077 */ b .L7F04F754 +/* 0840A8 7F04F578 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_golden_bullet: +/* 0840AC 7F04F57C 0FC30776 */ jal get_textptr_for_textID +/* 0840B0 7F04F580 3404A408 */ li $a0, 41992 +/* 0840B4 7F04F584 02002025 */ move $a0, $s0 +/* 0840B8 7F04F588 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840BC 7F04F58C 00402825 */ move $a1, $v0 +/* 0840C0 7F04F590 10000070 */ b .L7F04F754 +/* 0840C4 7F04F594 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_hand_grenade: +/* 0840C8 7F04F598 0FC30776 */ jal get_textptr_for_textID +/* 0840CC 7F04F59C 3404A409 */ li $a0, 41993 +/* 0840D0 7F04F5A0 02002025 */ move $a0, $s0 +/* 0840D4 7F04F5A4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840D8 7F04F5A8 00402825 */ move $a1, $v0 +/* 0840DC 7F04F5AC 10000069 */ b .L7F04F754 +/* 0840E0 7F04F5B0 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_grenade_round: +/* 0840E4 7F04F5B4 0FC30776 */ jal get_textptr_for_textID +/* 0840E8 7F04F5B8 3404A40A */ li $a0, 41994 +/* 0840EC 7F04F5BC 02002025 */ move $a0, $s0 +/* 0840F0 7F04F5C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840F4 7F04F5C4 00402825 */ move $a1, $v0 +/* 0840F8 7F04F5C8 10000062 */ b .L7F04F754 +/* 0840FC 7F04F5CC 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_rocket: +/* 084100 7F04F5D0 0FC30776 */ jal get_textptr_for_textID +/* 084104 7F04F5D4 3404A40B */ li $a0, 41995 +/* 084108 7F04F5D8 02002025 */ move $a0, $s0 +/* 08410C 7F04F5DC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084110 7F04F5E0 00402825 */ move $a1, $v0 +/* 084114 7F04F5E4 1000005B */ b .L7F04F754 +/* 084118 7F04F5E8 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_remote_mine: +/* 08411C 7F04F5EC 0FC30776 */ jal get_textptr_for_textID +/* 084120 7F04F5F0 3404A40C */ li $a0, 41996 +/* 084124 7F04F5F4 02002025 */ move $a0, $s0 +/* 084128 7F04F5F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08412C 7F04F5FC 00402825 */ move $a1, $v0 +/* 084130 7F04F600 10000054 */ b .L7F04F754 +/* 084134 7F04F604 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_proximity_mine: +/* 084138 7F04F608 0FC30776 */ jal get_textptr_for_textID +/* 08413C 7F04F60C 3404A40D */ li $a0, 41997 +/* 084140 7F04F610 02002025 */ move $a0, $s0 +/* 084144 7F04F614 0C0029FF */ jal string_append_from_obseg_textbank +/* 084148 7F04F618 00402825 */ move $a1, $v0 +/* 08414C 7F04F61C 1000004D */ b .L7F04F754 +/* 084150 7F04F620 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_timed_mine: +/* 084154 7F04F624 0FC30776 */ jal get_textptr_for_textID +/* 084158 7F04F628 3404A40E */ li $a0, 41998 +/* 08415C 7F04F62C 02002025 */ move $a0, $s0 +/* 084160 7F04F630 0C0029FF */ jal string_append_from_obseg_textbank +/* 084164 7F04F634 00402825 */ move $a1, $v0 +/* 084168 7F04F638 10000046 */ b .L7F04F754 +/* 08416C 7F04F63C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_dart: +/* 084170 7F04F640 0FC30776 */ jal get_textptr_for_textID +/* 084174 7F04F644 3404A413 */ li $a0, 42003 +/* 084178 7F04F648 02002025 */ move $a0, $s0 +/* 08417C 7F04F64C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084180 7F04F650 00402825 */ move $a1, $v0 +/* 084184 7F04F654 1000003F */ b .L7F04F754 +/* 084188 7F04F658 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_explosive_pen: +/* 08418C 7F04F65C 0FC30776 */ jal get_textptr_for_textID +/* 084190 7F04F660 3404A414 */ li $a0, 42004 +/* 084194 7F04F664 02002025 */ move $a0, $s0 +/* 084198 7F04F668 0C0029FF */ jal string_append_from_obseg_textbank +/* 08419C 7F04F66C 00402825 */ move $a1, $v0 +/* 0841A0 7F04F670 10000038 */ b .L7F04F754 +/* 0841A4 7F04F674 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_explosive_case: +/* 0841A8 7F04F678 0FC30776 */ jal get_textptr_for_textID +/* 0841AC 7F04F67C 3404A415 */ li $a0, 42005 +/* 0841B0 7F04F680 02002025 */ move $a0, $s0 +/* 0841B4 7F04F684 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841B8 7F04F688 00402825 */ move $a1, $v0 +/* 0841BC 7F04F68C 10000031 */ b .L7F04F754 +/* 0841C0 7F04F690 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_flare: +/* 0841C4 7F04F694 0FC30776 */ jal get_textptr_for_textID +/* 0841C8 7F04F698 3404A416 */ li $a0, 42006 +/* 0841CC 7F04F69C 02002025 */ move $a0, $s0 +/* 0841D0 7F04F6A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841D4 7F04F6A4 00402825 */ move $a1, $v0 +/* 0841D8 7F04F6A8 1000002A */ b .L7F04F754 +/* 0841DC 7F04F6AC 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_piton: +/* 0841E0 7F04F6B0 0FC30776 */ jal get_textptr_for_textID +/* 0841E4 7F04F6B4 3404A417 */ li $a0, 42007 +/* 0841E8 7F04F6B8 02002025 */ move $a0, $s0 +/* 0841EC 7F04F6BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841F0 7F04F6C0 00402825 */ move $a1, $v0 +/* 0841F4 7F04F6C4 10000023 */ b .L7F04F754 +/* 0841F8 7F04F6C8 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_bug: +/* 0841FC 7F04F6CC 0FC30776 */ jal get_textptr_for_textID +/* 084200 7F04F6D0 3404A41B */ li $a0, 42011 +/* 084204 7F04F6D4 02002025 */ move $a0, $s0 +/* 084208 7F04F6D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08420C 7F04F6DC 00402825 */ move $a1, $v0 +/* 084210 7F04F6E0 1000001C */ b .L7F04F754 +/* 084214 7F04F6E4 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_micro_camera: +/* 084218 7F04F6E8 0FC30776 */ jal get_textptr_for_textID +/* 08421C 7F04F6EC 3404A41C */ li $a0, 42012 +/* 084220 7F04F6F0 02002025 */ move $a0, $s0 +/* 084224 7F04F6F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084228 7F04F6F8 00402825 */ move $a1, $v0 +/* 08422C 7F04F6FC 10000015 */ b .L7F04F754 +/* 084230 7F04F700 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_goldeneye_key: +/* 084234 7F04F704 0FC30776 */ jal get_textptr_for_textID +/* 084238 7F04F708 3404A41D */ li $a0, 42013 +/* 08423C 7F04F70C 02002025 */ move $a0, $s0 +/* 084240 7F04F710 0C0029FF */ jal string_append_from_obseg_textbank +/* 084244 7F04F714 00402825 */ move $a1, $v0 +/* 084248 7F04F718 1000000E */ b .L7F04F754 +/* 08424C 7F04F71C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_token: +/* 084250 7F04F720 0FC30776 */ jal get_textptr_for_textID +/* 084254 7F04F724 3404A41E */ li $a0, 42014 +/* 084258 7F04F728 02002025 */ move $a0, $s0 +/* 08425C 7F04F72C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084260 7F04F730 00402825 */ move $a1, $v0 +/* 084264 7F04F734 10000007 */ b .L7F04F754 +/* 084268 7F04F738 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_plastique: +/* 08426C 7F04F73C 0FC30776 */ jal get_textptr_for_textID +/* 084270 7F04F740 3404A41F */ li $a0, 42015 +/* 084274 7F04F744 02002025 */ move $a0, $s0 +/* 084278 7F04F748 0C0029FF */ jal string_append_from_obseg_textbank +/* 08427C 7F04F74C 00402825 */ move $a1, $v0 +pluralize_multiples: +.L7F04F750: +/* 084280 7F04F750 8FB90028 */ lw $t9, 0x28($sp) +.L7F04F754: +/* 084284 7F04F754 2B210002 */ slti $at, $t9, 2 +/* 084288 7F04F758 54200007 */ bnezl $at, .L7F04F778 +/* 08428C 7F04F75C 8FBF001C */ lw $ra, 0x1c($sp) +/* 084290 7F04F760 0FC30776 */ jal get_textptr_for_textID +/* 084294 7F04F764 3404A412 */ li $a0, 42002 +/* 084298 7F04F768 02002025 */ move $a0, $s0 +/* 08429C 7F04F76C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0842A0 7F04F770 00402825 */ move $a1, $v0 +/* 0842A4 7F04F774 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F778: +/* 0842A8 7F04F778 8FB00018 */ lw $s0, 0x18($sp) +/* 0842AC 7F04F77C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0842B0 7F04F780 03E00008 */ jr $ra +/* 0842B4 7F04F784 00000000 */ nop +) +#endif + + + + + + +void set_sound_effect_for_ammo_collection(AMMOTYPES ammotype) + +{ + switch(ammotype) { + case AMMO_9MM: + case AMMO_9MM_2: + case AMMO_RIFLE: + case AMMO_SHOTGUN: + case AMMO_GRENADE: + case AMMO_ROCKETS: + case AMMO_GRENADEROUND: + case AMMO_MAGNUM: + case AMMO_GGUN: + case AMMO_DARTS: + case AMMO_EXPLOSIVEPEN: + case AMMO_FLARE: + case AMMO_PITON: + case AMMO_DYNAMITE: + case AMMO_GEKEY: + case AMMO_TOKEN: + play_sfx_a1(ptr_sfx_buf,0xea,0); + break; + case AMMO_REMOTEMINE: + case AMMO_PROXMINE: + case AMMO_TIMEDMINE: + case AMMO_BOMBCASE: + case AMMO_BUG: + case AMMO_MICRO_CAMERA: + case AMMO_PLASTIQUE: + play_sfx_a1(ptr_sfx_buf,0xeb,0); + break; + case AMMO_KNIFE: + play_sfx_a1(ptr_sfx_buf,0xe9,0); + } + return; +} + + + + + + +void set_sound_effect_for_weapontype_collection(ITEM_IDS weapontype) +{ + if ((weapontype == ITEM_KNIFE) || (weapontype == ITEM_THROWKNIFE)) { + play_sfx_a1(ptr_sfx_buf,0xe9,0); + } + else { + if (((((weapontype == ITEM_REMOTEMINE) || (weapontype == ITEM_PROXIMITYMINE)) || + (weapontype == ITEM_TIMEDMINE)) || + ((weapontype == ITEM_BOMBCASE || (weapontype == ITEM_BUG)))) || + ((weapontype == ITEM_MICROCAMERA || (weapontype == ITEM_PLASTIQUE)))) { + play_sfx_a1(ptr_sfx_buf,0xeb,0); + } + else { + if (((weapontype == ITEM_GRENADE) || (weapontype == ITEM_57)) || (weapontype == ITEM_56) + ) { + play_sfx_a1(ptr_sfx_buf,0xea,0); + } + else { + if (weapontype == ITEM_LASER) { + play_sfx_a1(ptr_sfx_buf,0xf2,0); + } + else { + play_sfx_a1(ptr_sfx_buf,0xe8,0); + } + } + } + } + return; +} + + + +//!FIXME, i need to be properly split from chrai.c +#ifdef NONMATCHING +extern char * D_800529D0; +extern char * D_800529D4; + +void prepare_ammo_type_collection_text(u8 *finaltext, AMMOTYPES ammotype, u32 quantity) +{ + *finaltext = 0; + if (j_text_trigger != 0) + { + apped_text_ammotype(finaltext,ammotype,quantity); + if (get_num_players() < 3) + { + append_text_picked_up(finaltext, ammotype, quantity); + } + string_append_from_obseg_textbank(finaltext, (char *)D_800529D0); + return; + } + if (get_num_players() < 3) + { + append_text_picked_up(finaltext, ammotype, quantity); + append_text_ammo_amount_word(finaltext, ammotype, quantity); + } + apped_text_ammotype(finaltext, ammotype, quantity); + string_append_from_obseg_textbank(finaltext, (char *)D_800529D4); +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel prepare_ammo_type_collection_text +/* 084450 7F04F920 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 084454 7F04F924 AFBF0024 */ sw $ra, 0x24($sp) +/* 084458 7F04F928 AFB20020 */ sw $s2, 0x20($sp) +/* 08445C 7F04F92C AFB1001C */ sw $s1, 0x1c($sp) +/* 084460 7F04F930 AFB00018 */ sw $s0, 0x18($sp) +/* 084464 7F04F934 A0800000 */ sb $zero, ($a0) +/* 084468 7F04F938 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 08446C 7F04F93C 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 084470 7F04F940 00808025 */ move $s0, $a0 +/* 084474 7F04F944 00A08825 */ move $s1, $a1 +/* 084478 7F04F948 11C00011 */ beqz $t6, .L7F04F990 +/* 08447C 7F04F94C 00C09025 */ move $s2, $a2 +/* 084480 7F04F950 0FC13D03 */ jal apped_text_ammotype +/* 084484 7F04F954 00000000 */ nop +/* 084488 7F04F958 0FC26919 */ jal get_num_players +/* 08448C 7F04F95C 00000000 */ nop +/* 084490 7F04F960 28410003 */ slti $at, $v0, 3 +/* 084494 7F04F964 10200004 */ beqz $at, .L7F04F978 +/* 084498 7F04F968 02002025 */ move $a0, $s0 +/* 08449C 7F04F96C 02202825 */ move $a1, $s1 +/* 0844A0 7F04F970 0FC13CAD */ jal append_text_picked_up +/* 0844A4 7F04F974 02403025 */ move $a2, $s2 +.L7F04F978: +/* 0844A8 7F04F978 3C058005 */ lui $a1, %hi(D_800529D0) +/* 0844AC 7F04F97C 24A529D0 */ addiu $a1, %lo(D_800529D0) # addiu $a1, $a1, 0x29d0 +/* 0844B0 7F04F980 0C0029FF */ jal string_append_from_obseg_textbank +/* 0844B4 7F04F984 02002025 */ move $a0, $s0 +/* 0844B8 7F04F988 10000016 */ b .L7F04F9E4 +/* 0844BC 7F04F98C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04F990: +/* 0844C0 7F04F990 0FC26919 */ jal get_num_players +/* 0844C4 7F04F994 00000000 */ nop +/* 0844C8 7F04F998 28410003 */ slti $at, $v0, 3 +/* 0844CC 7F04F99C 10200008 */ beqz $at, .L7F04F9C0 +/* 0844D0 7F04F9A0 02002025 */ move $a0, $s0 +/* 0844D4 7F04F9A4 02202825 */ move $a1, $s1 +/* 0844D8 7F04F9A8 0FC13CAD */ jal append_text_picked_up +/* 0844DC 7F04F9AC 02403025 */ move $a2, $s2 +/* 0844E0 7F04F9B0 02002025 */ move $a0, $s0 +/* 0844E4 7F04F9B4 02202825 */ move $a1, $s1 +/* 0844E8 7F04F9B8 0FC13CBB */ jal append_text_ammo_amount_word +/* 0844EC 7F04F9BC 02403025 */ move $a2, $s2 +.L7F04F9C0: +/* 0844F0 7F04F9C0 02002025 */ move $a0, $s0 +/* 0844F4 7F04F9C4 02202825 */ move $a1, $s1 +/* 0844F8 7F04F9C8 0FC13D03 */ jal apped_text_ammotype +/* 0844FC 7F04F9CC 02403025 */ move $a2, $s2 +/* 084500 7F04F9D0 3C058005 */ lui $a1, %hi(D_800529D4) +/* 084504 7F04F9D4 24A529D4 */ addiu $a1, %lo(D_800529D4) # addiu $a1, $a1, 0x29d4 +/* 084508 7F04F9D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08450C 7F04F9DC 02002025 */ move $a0, $s0 +/* 084510 7F04F9E0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04F9E4: +/* 084514 7F04F9E4 8FB00018 */ lw $s0, 0x18($sp) +/* 084518 7F04F9E8 8FB1001C */ lw $s1, 0x1c($sp) +/* 08451C 7F04F9EC 8FB20020 */ lw $s2, 0x20($sp) +/* 084520 7F04F9F0 03E00008 */ jr $ra +/* 084524 7F04F9F4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void display_text_when_ammo_collected(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata + + +.text +glabel display_text_when_ammo_collected +/* 084528 7F04F9F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08452C 7F04F9FC AFA40080 */ sw $a0, 0x80($sp) +/* 084530 7F04FA00 3C0E8005 */ lui $t6, %hi(D_800529D8) +/* 084534 7F04FA04 27A4001C */ addiu $a0, $sp, 0x1c +/* 084538 7F04FA08 00A03025 */ move $a2, $a1 +/* 08453C 7F04FA0C 25CE29D8 */ addiu $t6, %lo(D_800529D8) # addiu $t6, $t6, 0x29d8 +/* 084540 7F04FA10 8FA50080 */ lw $a1, 0x80($sp) +/* 084544 7F04FA14 AFBF0014 */ sw $ra, 0x14($sp) +/* 084548 7F04FA18 25D90060 */ addiu $t9, $t6, 0x60 +/* 08454C 7F04FA1C 00804025 */ move $t0, $a0 +.L7F04FA20: +/* 084550 7F04FA20 8DC10000 */ lw $at, ($t6) +/* 084554 7F04FA24 25CE000C */ addiu $t6, $t6, 0xc +/* 084558 7F04FA28 2508000C */ addiu $t0, $t0, 0xc +/* 08455C 7F04FA2C AD01FFF4 */ sw $at, -0xc($t0) +/* 084560 7F04FA30 8DC1FFF8 */ lw $at, -8($t6) +/* 084564 7F04FA34 AD01FFF8 */ sw $at, -8($t0) +/* 084568 7F04FA38 8DC1FFFC */ lw $at, -4($t6) +/* 08456C 7F04FA3C 15D9FFF8 */ bne $t6, $t9, .L7F04FA20 +/* 084570 7F04FA40 AD01FFFC */ sw $at, -4($t0) +/* 084574 7F04FA44 8DC10000 */ lw $at, ($t6) +/* 084578 7F04FA48 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 08457C 7F04FA4C AD010000 */ sw $at, ($t0) +/* 084580 7F04FA50 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084584 7F04FA54 27A4001C */ addiu $a0, $sp, 0x1c +/* 084588 7F04FA58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08458C 7F04FA5C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 084590 7F04FA60 03E00008 */ jr $ra +/* 084594 7F04FA64 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata + + +.text +glabel display_text_when_ammo_collected +/* 084528 7F04F9F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08452C 7F04F9FC AFA40080 */ sw $a0, 0x80($sp) +/* 084530 7F04FA00 3C0E8005 */ lui $t6, %hi(D_800529D8) +/* 084534 7F04FA04 27A4001C */ addiu $a0, $sp, 0x1c +/* 084538 7F04FA08 00A03025 */ move $a2, $a1 +/* 08453C 7F04FA0C 25CE29D8 */ addiu $t6, %lo(D_800529D8) # addiu $t6, $t6, 0x29d8 +/* 084540 7F04FA10 8FA50080 */ lw $a1, 0x80($sp) +/* 084544 7F04FA14 AFBF0014 */ sw $ra, 0x14($sp) +/* 084548 7F04FA18 25D90060 */ addiu $t9, $t6, 0x60 +/* 08454C 7F04FA1C 00804025 */ move $t0, $a0 +.L7F04FA20: +/* 084550 7F04FA20 8DC10000 */ lw $at, ($t6) +/* 084554 7F04FA24 25CE000C */ addiu $t6, $t6, 0xc +/* 084558 7F04FA28 2508000C */ addiu $t0, $t0, 0xc +/* 08455C 7F04FA2C AD01FFF4 */ sw $at, -0xc($t0) +/* 084560 7F04FA30 8DC1FFF8 */ lw $at, -8($t6) +/* 084564 7F04FA34 AD01FFF8 */ sw $at, -8($t0) +/* 084568 7F04FA38 8DC1FFFC */ lw $at, -4($t6) +/* 08456C 7F04FA3C 15D9FFF8 */ bne $t6, $t9, .L7F04FA20 +/* 084570 7F04FA40 AD01FFFC */ sw $at, -4($t0) +/* 084574 7F04FA44 8DC10000 */ lw $at, ($t6) +/* 084578 7F04FA48 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 08457C 7F04FA4C AD010000 */ sw $at, ($t0) +/* 084580 7F04FA50 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084584 7F04FA54 27A4001C */ addiu $a0, $sp, 0x1c +/* 084588 7F04FA58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08458C 7F04FA5C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 084590 7F04FA60 03E00008 */ jr $ra +/* 084594 7F04FA64 00000000 */ nop +) +#endif +#endif + + + + +void add_ammo_to_inventory(AMMOTYPES ammotype,int amount,int doplaysound,int dodisplaytext) +{ + int curammo; + int maxammo; + + if (0 < amount) { + curammo = check_cur_player_ammo_amount_in_inventory(ammotype); + maxammo = get_max_ammo_for_type(ammotype); + if (curammo < maxammo) { + curammo = check_cur_player_ammo_amount_in_inventory(ammotype); + give_cur_player_ammo(ammotype,curammo + amount); + #ifdef VERSION_JP + } + #endif + if (dodisplaytext != 0) { + display_text_when_ammo_collected(ammotype,amount); + } + if (doplaysound != 0) { + set_sound_effect_for_ammo_collection(ammotype); + } + if (ammotype == AMMO_GRENADE) { + add_item_to_inventory(ITEM_GRENADE); + } + else if (ammotype == AMMO_REMOTEMINE) { + add_item_to_inventory(ITEM_REMOTEMINE); + add_item_to_inventory(ITEM_TRIGGER); + } + else if (ammotype == AMMO_PROXMINE) { + add_item_to_inventory(ITEM_PROXIMITYMINE); + } + else if (ammotype == AMMO_TIMEDMINE) { + add_item_to_inventory(ITEM_TIMEDMINE); + } + else if (ammotype == AMMO_KNIFE) { + add_item_to_inventory(ITEM_THROWKNIFE); + } + else if (ammotype == AMMO_BOMBCASE) { + add_item_to_inventory(ITEM_BOMBCASE); + } + else if (ammotype == AMMO_BUG) { + add_item_to_inventory(ITEM_BUG); + } + else if (ammotype == AMMO_MICRO_CAMERA) { + add_item_to_inventory(ITEM_MICROCAMERA); + } + else if (ammotype == AMMO_GEKEY) { + add_item_to_inventory(ITEM_GOLDENEYEKEY); + } + else if (ammotype == AMMO_TOKEN) { + add_item_to_inventory(ITEM_TOKEN); + } + else if (ammotype == AMMO_PLASTIQUE) { + add_item_to_inventory(ITEM_PLASTIQUE); + } + #ifndef VERSION_JP + } + #endif + } +} + + + + +#ifdef NONMATCHING +void get_ammo_in_magazine(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053060*/ +glabel ammo_collected_from_magazine +.word magazine_has_10_rounds_type1 +.word magazine_has_10_rounds_type2 +.word magazine_has_10_rounds_type3 +.word magazine_has_5_rounds_type4 +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_5_rounds_typeC +.word magazine_has_3_rounds_typeD +.word magazine_has_4_rounds_typeE + +.text +glabel get_ammo_in_magazine +/* 08476C 7F04FC3C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 084770 7F04FC40 AFBF0014 */ sw $ra, 0x14($sp) +/* 084774 7F04FC44 8C8E0080 */ lw $t6, 0x80($a0) +/* 084778 7F04FC48 24030001 */ li $v1, 1 +/* 08477C 7F04FC4C 25CFFFFF */ addiu $t7, $t6, -1 +/* 084780 7F04FC50 2DE1000E */ sltiu $at, $t7, 0xe +/* 084784 7F04FC54 10200013 */ beqz $at, .L7F04FCA4 +/* 084788 7F04FC58 000F7880 */ sll $t7, $t7, 2 +/* 08478C 7F04FC5C 3C018005 */ lui $at, %hi(ammo_collected_from_magazine) +/* 084790 7F04FC60 002F0821 */ addu $at, $at, $t7 +/* 084794 7F04FC64 8C2F3060 */ lw $t7, %lo(ammo_collected_from_magazine)($at) +/* 084798 7F04FC68 01E00008 */ jr $t7 +/* 08479C 7F04FC6C 00000000 */ nop +magazine_has_10_rounds_type1: +/* 0847A0 7F04FC70 1000000C */ b .L7F04FCA4 +/* 0847A4 7F04FC74 2403000A */ li $v1, 10 +magazine_has_10_rounds_type2: +/* 0847A8 7F04FC78 1000000A */ b .L7F04FCA4 +/* 0847AC 7F04FC7C 2403000A */ li $v1, 10 +magazine_has_10_rounds_type3: +/* 0847B0 7F04FC80 10000008 */ b .L7F04FCA4 +/* 0847B4 7F04FC84 2403000A */ li $v1, 10 +magazine_has_5_rounds_type4: +/* 0847B8 7F04FC88 10000006 */ b .L7F04FCA4 +/* 0847BC 7F04FC8C 24030005 */ li $v1, 5 +magazine_has_5_rounds_typeC: +/* 0847C0 7F04FC90 10000004 */ b .L7F04FCA4 +/* 0847C4 7F04FC94 24030005 */ li $v1, 5 +magazine_has_3_rounds_typeD: +/* 0847C8 7F04FC98 10000002 */ b .L7F04FCA4 +/* 0847CC 7F04FC9C 24030003 */ li $v1, 3 +magazine_has_4_rounds_typeE: +/* 0847D0 7F04FCA0 24030004 */ li $v1, 4 +magazine_has_default_ammo_rounds: +.L7F04FCA4: +/* 0847D4 7F04FCA4 28610002 */ slti $at, $v1, 2 +/* 0847D8 7F04FCA8 5420000F */ bnezl $at, .L7F04FCE8 +/* 0847DC 7F04FCAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0847E0 7F04FCB0 0FC26919 */ jal get_num_players +/* 0847E4 7F04FCB4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0847E8 7F04FCB8 24010001 */ li $at, 1 +/* 0847EC 7F04FCBC 14410009 */ bne $v0, $at, .L7F04FCE4 +/* 0847F0 7F04FCC0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0847F4 7F04FCC4 44832000 */ mtc1 $v1, $f4 +/* 0847F8 7F04FCC8 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0847FC 7F04FCCC C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084800 7F04FCD0 468021A0 */ cvt.s.w $f6, $f4 +/* 084804 7F04FCD4 46083282 */ mul.s $f10, $f6, $f8 +/* 084808 7F04FCD8 4600540D */ trunc.w.s $f16, $f10 +/* 08480C 7F04FCDC 44038000 */ mfc1 $v1, $f16 +/* 084810 7F04FCE0 00000000 */ nop +.L7F04FCE4: +/* 084814 7F04FCE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04FCE8: +/* 084818 7F04FCE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08481C 7F04FCEC 00601025 */ move $v0, $v1 +/* 084820 7F04FCF0 03E00008 */ jr $ra +/* 084824 7F04FCF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void ammo_collected_from_weapon(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053098*/ +glabel ammo_in_weapon +.word weapon_has_10_rounds_type1 +.word weapon_has_10_rounds_type2 +.word weapon_has_10_rounds_type3 +.word weapon_has_5_rounds_type4 +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_3_rounds_typeB +.word weapon_has_5_rounds_typeC +.word weapon_has_3_rounds_typeD +.word weapon_has_4_rounds_typeE + +.text +glabel ammo_collected_from_weapon +/* 084828 7F04FCF8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08482C 7F04FCFC AFBF0014 */ sw $ra, 0x14($sp) +/* 084830 7F04FD00 AFA40020 */ sw $a0, 0x20($sp) +/* 084834 7F04FD04 0FC1A50B */ jal get_ammo_type_for_weapon +/* 084838 7F04FD08 80840080 */ lb $a0, 0x80($a0) +/* 08483C 7F04FD0C 8FAF0020 */ lw $t7, 0x20($sp) +/* 084840 7F04FD10 2448FFFF */ addiu $t0, $v0, -1 +/* 084844 7F04FD14 24030001 */ li $v1, 1 +/* 084848 7F04FD18 8DF80008 */ lw $t8, 8($t7) +/* 08484C 7F04FD1C 2D01000E */ sltiu $at, $t0, 0xe +/* 084850 7F04FD20 0018C840 */ sll $t9, $t8, 1 +/* 084854 7F04FD24 07210003 */ bgez $t9, .L7F04FD34 +/* 084858 7F04FD28 00000000 */ nop +/* 08485C 7F04FD2C 10000028 */ b .L7F04FDD0 +/* 084860 7F04FD30 00001025 */ move $v0, $zero +.L7F04FD34: +/* 084864 7F04FD34 10200015 */ beqz $at, .L7F04FD8C +/* 084868 7F04FD38 00084080 */ sll $t0, $t0, 2 +/* 08486C 7F04FD3C 3C018005 */ lui $at, %hi(ammo_in_weapon) +/* 084870 7F04FD40 00280821 */ addu $at, $at, $t0 +/* 084874 7F04FD44 8C283098 */ lw $t0, %lo(ammo_in_weapon)($at) +/* 084878 7F04FD48 01000008 */ jr $t0 +/* 08487C 7F04FD4C 00000000 */ nop +weapon_has_10_rounds_type1: +/* 084880 7F04FD50 1000000E */ b .L7F04FD8C +/* 084884 7F04FD54 2403000A */ li $v1, 10 +weapon_has_10_rounds_type2: +/* 084888 7F04FD58 1000000C */ b .L7F04FD8C +/* 08488C 7F04FD5C 2403000A */ li $v1, 10 +weapon_has_10_rounds_type3: +/* 084890 7F04FD60 1000000A */ b .L7F04FD8C +/* 084894 7F04FD64 2403000A */ li $v1, 10 +weapon_has_5_rounds_type4: +/* 084898 7F04FD68 10000008 */ b .L7F04FD8C +/* 08489C 7F04FD6C 24030005 */ li $v1, 5 +weapon_has_5_rounds_typeC: +/* 0848A0 7F04FD70 10000006 */ b .L7F04FD8C +/* 0848A4 7F04FD74 24030005 */ li $v1, 5 +weapon_has_3_rounds_typeD: +/* 0848A8 7F04FD78 10000004 */ b .L7F04FD8C +/* 0848AC 7F04FD7C 24030003 */ li $v1, 3 +weapon_has_4_rounds_typeE: +/* 0848B0 7F04FD80 10000002 */ b .L7F04FD8C +/* 0848B4 7F04FD84 24030004 */ li $v1, 4 +weapon_has_3_rounds_typeB: +/* 0848B8 7F04FD88 24030003 */ li $v1, 3 +weapon_has_default_ammo: +.L7F04FD8C: +/* 0848BC 7F04FD8C 28610002 */ slti $at, $v1, 2 +/* 0848C0 7F04FD90 5420000F */ bnezl $at, .L7F04FDD0 +/* 0848C4 7F04FD94 00601025 */ move $v0, $v1 +/* 0848C8 7F04FD98 0FC26919 */ jal get_num_players +/* 0848CC 7F04FD9C AFA30018 */ sw $v1, 0x18($sp) +/* 0848D0 7F04FDA0 24010001 */ li $at, 1 +/* 0848D4 7F04FDA4 14410009 */ bne $v0, $at, .L7F04FDCC +/* 0848D8 7F04FDA8 8FA30018 */ lw $v1, 0x18($sp) +/* 0848DC 7F04FDAC 44832000 */ mtc1 $v1, $f4 +/* 0848E0 7F04FDB0 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0848E4 7F04FDB4 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 0848E8 7F04FDB8 468021A0 */ cvt.s.w $f6, $f4 +/* 0848EC 7F04FDBC 46083282 */ mul.s $f10, $f6, $f8 +/* 0848F0 7F04FDC0 4600540D */ trunc.w.s $f16, $f10 +/* 0848F4 7F04FDC4 44038000 */ mfc1 $v1, $f16 +/* 0848F8 7F04FDC8 00000000 */ nop +.L7F04FDCC: +/* 0848FC 7F04FDCC 00601025 */ move $v0, $v1 +.L7F04FDD0: +/* 084900 7F04FDD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 084904 7F04FDD4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 084908 7F04FDD8 03E00008 */ jr $ra +/* 08490C 7F04FDDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_language_specific_text_for_weapon(char *finalstring,ITEM_IDS itemtype) +{ + bool morethan2players; + u32 numplayers; + AMMOTYPES ammotype; + char *textfiletext; + size_t strlen; + + morethan2players = false; + if (j_text_trigger == 0) { + numplayers = get_num_players(); + if ((int)numplayers < 3) { + textfiletext = get_textptr_for_textID(0xa400); + textpointer_load_parse_something(finalstring,textfiletext); + } + } + else { + textpointer_load_parse_something(finalstring,""); + numplayers = get_num_players(); + if (2 < (int)numplayers) { + morethan2players = true; + } + } + switch(itemtype) { + case ITEM_KNIFE: + textfiletext = get_textptr_for_textID(0xa420); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_THROWKNIFE: + case ITEM_GRENADE: + case ITEM_TIMEDMINE: + case ITEM_PROXIMITYMINE: + case ITEM_REMOTEMINE: + case ITEM_BOMBCASE: + case ITEM_PLASTIQUE: + case ITEM_BUG: + case ITEM_MICROCAMERA: + case ITEM_GOLDENEYEKEY: + case ITEM_56: + case ITEM_57: + case ITEM_TOKEN: + ammotype = get_ammo_type_for_weapon(itemtype); + prepare_ammo_type_collection_text((u8 *)finalstring,ammotype,1); + return; + case ITEM_WPPK: + textfiletext = get_textptr_for_textID(0xa421); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_WPPKSIL: + textfiletext = get_textptr_for_textID(0xa422); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_TT33: + textfiletext = get_textptr_for_textID(0xa423); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SKORPION: + textfiletext = get_textptr_for_textID(0xa424); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_AK47: + textfiletext = get_textptr_for_textID(0xa425); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_UZI: + textfiletext = get_textptr_for_textID(0xa426); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_MP5K: + textfiletext = get_textptr_for_textID(0xa427); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_MP5KSIL: + textfiletext = get_textptr_for_textID(0xa428); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SPECTRE: + textfiletext = get_textptr_for_textID(0xa429); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_M16: + textfiletext = get_textptr_for_textID(0xa42a); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_FNP90: + textfiletext = get_textptr_for_textID(0xa42b); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SHOTGUN: + textfiletext = get_textptr_for_textID(0xa42c); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_AUTOSHOT: + textfiletext = get_textptr_for_textID(0xa42d); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SNIPERRIFLE: + textfiletext = get_textptr_for_textID(0xa42e); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_RUGER: + textfiletext = get_textptr_for_textID(0xa431); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GOLDENGUN: + textfiletext = get_textptr_for_textID(0xa432); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SILVERWPPK: + textfiletext = get_textptr_for_textID(0xa436); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GOLDWPPK: + textfiletext = get_textptr_for_textID(0xa437); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_LASER: + textfiletext = get_textptr_for_textID(0xa433); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + default: + textfiletext = get_textptr_for_textID(0xa43b); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GRENADELAUNCH: + textfiletext = get_textptr_for_textID(0xa42f); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_ROCKETLAUNCH: + textfiletext = get_textptr_for_textID(0xa430); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_FLAREPISTOL: + textfiletext = get_textptr_for_textID(0xa434); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_PITONGUN: + textfiletext = get_textptr_for_textID(0xa435); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYCARD: + textfiletext = get_textptr_for_textID(0xa438); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYYALE: + textfiletext = get_textptr_for_textID(0xa439); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYBOLT: + textfiletext = get_textptr_for_textID(0xa43a); + string_append_from_obseg_textbank(finalstring,textfiletext); + } + if ((j_text_trigger != 0) && (!morethan2players)) { + strlen = strlen(finalstring); + if (finalstring[strlen - 1] == '\n') { + strlen = strlen(finalstring); + finalstring[strlen - 1] = '\0'; + } + textfiletext = get_textptr_for_textID(0xa400); + string_append_from_obseg_textbank(finalstring,textfiletext); + string_append_from_obseg_textbank(finalstring,"\n"); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800530D0*/ +glabel jpt_800530D0 +.word weapon_collect_msg_a_hunting_knife +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_pp7 +.word weapon_collect_msg_a_silenced_pp7 +.word weapon_collect_msg_a_dd44 +.word weapon_collect_msg_a_klobb +.word weapon_collect_msg_a_kf7 +.word weapon_collect_msg_a_zmg +.word weapon_collect_msg_a_d5k +.word weapon_collect_msg_a_silenced_d5k +.word weapon_collect_msg_a_phantom +.word weapon_collect_msg_a_ar33 +.word weapon_collect_msg_a_rcp90 +.word weapon_collect_msg_a_shotgun +.word weapon_collect_msg_an_auto_shotgun +.word weapon_collect_msg_a_sniper +.word weapon_collect_msg_a_cougar_magnum +.word weapon_collect_msg_a_golden_gun +.word weapon_collect_msg_a_silver_pp7 +.word weapon_collect_msg_a_gold_pp7 +.word weapon_collect_msg_a_moonraker_laser +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_grenade_launcher +.word weapon_collect_msg_a_rocket_launcher +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_flare_pistol +.word weapon_collect_msg_a_piton_gun +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_keycard +.word weapon_collect_msg_a_yale_key +.word weapon_collect_msg_a_bolt_key +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK + +.text +glabel generate_language_specific_text_for_weapon +/* 084910 7F04FDE0 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 084914 7F04FDE4 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 084918 7F04FDE8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08491C 7F04FDEC AFB00018 */ sw $s0, 0x18($sp) +/* 084920 7F04FDF0 00808025 */ move $s0, $a0 +/* 084924 7F04FDF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 084928 7F04FDF8 AFA5002C */ sw $a1, 0x2c($sp) +/* 08492C 7F04FDFC 11C0000B */ beqz $t6, .L7F04FE2C +/* 084930 7F04FE00 AFA00024 */ sw $zero, 0x24($sp) +/* 084934 7F04FE04 3C058005 */ lui $a1, %hi(D_80052A3C) +/* 084938 7F04FE08 0C0029DC */ jal textpointer_load_parse_something +/* 08493C 7F04FE0C 24A52A3C */ addiu $a1, %lo(D_80052A3C) # addiu $a1, $a1, 0x2a3c +/* 084940 7F04FE10 0FC26919 */ jal get_num_players +/* 084944 7F04FE14 00000000 */ nop +/* 084948 7F04FE18 28410003 */ slti $at, $v0, 3 +/* 08494C 7F04FE1C 1420000D */ bnez $at, .L7F04FE54 +/* 084950 7F04FE20 240F0001 */ li $t7, 1 +/* 084954 7F04FE24 1000000B */ b .L7F04FE54 +/* 084958 7F04FE28 AFAF0024 */ sw $t7, 0x24($sp) +.L7F04FE2C: +/* 08495C 7F04FE2C 0FC26919 */ jal get_num_players +/* 084960 7F04FE30 00000000 */ nop +/* 084964 7F04FE34 28410003 */ slti $at, $v0, 3 +/* 084968 7F04FE38 50200007 */ beql $at, $zero, .L7F04FE58 +/* 08496C 7F04FE3C 8FB8002C */ lw $t8, 0x2c($sp) +/* 084970 7F04FE40 0FC30776 */ jal get_textptr_for_textID +/* 084974 7F04FE44 3404A400 */ li $a0, 41984 +/* 084978 7F04FE48 02002025 */ move $a0, $s0 +/* 08497C 7F04FE4C 0C0029DC */ jal textpointer_load_parse_something +/* 084980 7F04FE50 00402825 */ move $a1, $v0 +.L7F04FE54: +/* 084984 7F04FE54 8FB8002C */ lw $t8, 0x2c($sp) +.L7F04FE58: +/* 084988 7F04FE58 2719FFFE */ addiu $t9, $t8, -2 +/* 08498C 7F04FE5C 2F210057 */ sltiu $at, $t9, 0x57 +/* 084990 7F04FE60 102000CB */ beqz $at, .L7F050190 +/* 084994 7F04FE64 0019C880 */ sll $t9, $t9, 2 +/* 084998 7F04FE68 3C018005 */ lui $at, %hi(jpt_800530D0) +/* 08499C 7F04FE6C 00390821 */ addu $at, $at, $t9 +/* 0849A0 7F04FE70 8C3930D0 */ lw $t9, %lo(jpt_800530D0)($at) +/* 0849A4 7F04FE74 03200008 */ jr $t9 +/* 0849A8 7F04FE78 00000000 */ nop +weapon_collect_msg_BLANK: +/* 0849AC 7F04FE7C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0849B0 7F04FE80 8FA4002C */ lw $a0, 0x2c($sp) +/* 0849B4 7F04FE84 02002025 */ move $a0, $s0 +/* 0849B8 7F04FE88 00402825 */ move $a1, $v0 +/* 0849BC 7F04FE8C 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 0849C0 7F04FE90 24060001 */ li $a2, 1 +/* 0849C4 7F04FE94 100000DF */ b .L7F050214 +/* 0849C8 7F04FE98 8FBF001C */ lw $ra, 0x1c($sp) +weapon_collect_msg_a_hunting_knife: +/* 0849CC 7F04FE9C 0FC30776 */ jal get_textptr_for_textID +/* 0849D0 7F04FEA0 3404A420 */ li $a0, 42016 +/* 0849D4 7F04FEA4 02002025 */ move $a0, $s0 +/* 0849D8 7F04FEA8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849DC 7F04FEAC 00402825 */ move $a1, $v0 +/* 0849E0 7F04FEB0 100000BC */ b .L7F0501A4 +/* 0849E4 7F04FEB4 00000000 */ nop +weapon_collect_msg_a_pp7: +/* 0849E8 7F04FEB8 0FC30776 */ jal get_textptr_for_textID +/* 0849EC 7F04FEBC 3404A421 */ li $a0, 42017 +/* 0849F0 7F04FEC0 02002025 */ move $a0, $s0 +/* 0849F4 7F04FEC4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849F8 7F04FEC8 00402825 */ move $a1, $v0 +/* 0849FC 7F04FECC 100000B5 */ b .L7F0501A4 +/* 084A00 7F04FED0 00000000 */ nop +weapon_collect_msg_a_silenced_pp7: +/* 084A04 7F04FED4 0FC30776 */ jal get_textptr_for_textID +/* 084A08 7F04FED8 3404A422 */ li $a0, 42018 +/* 084A0C 7F04FEDC 02002025 */ move $a0, $s0 +/* 084A10 7F04FEE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A14 7F04FEE4 00402825 */ move $a1, $v0 +/* 084A18 7F04FEE8 100000AE */ b .L7F0501A4 +/* 084A1C 7F04FEEC 00000000 */ nop +weapon_collect_msg_a_dd44: +/* 084A20 7F04FEF0 0FC30776 */ jal get_textptr_for_textID +/* 084A24 7F04FEF4 3404A423 */ li $a0, 42019 +/* 084A28 7F04FEF8 02002025 */ move $a0, $s0 +/* 084A2C 7F04FEFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A30 7F04FF00 00402825 */ move $a1, $v0 +/* 084A34 7F04FF04 100000A7 */ b .L7F0501A4 +/* 084A38 7F04FF08 00000000 */ nop +weapon_collect_msg_a_klobb: +/* 084A3C 7F04FF0C 0FC30776 */ jal get_textptr_for_textID +/* 084A40 7F04FF10 3404A424 */ li $a0, 42020 +/* 084A44 7F04FF14 02002025 */ move $a0, $s0 +/* 084A48 7F04FF18 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A4C 7F04FF1C 00402825 */ move $a1, $v0 +/* 084A50 7F04FF20 100000A0 */ b .L7F0501A4 +/* 084A54 7F04FF24 00000000 */ nop +weapon_collect_msg_a_kf7: +/* 084A58 7F04FF28 0FC30776 */ jal get_textptr_for_textID +/* 084A5C 7F04FF2C 3404A425 */ li $a0, 42021 +/* 084A60 7F04FF30 02002025 */ move $a0, $s0 +/* 084A64 7F04FF34 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A68 7F04FF38 00402825 */ move $a1, $v0 +/* 084A6C 7F04FF3C 10000099 */ b .L7F0501A4 +/* 084A70 7F04FF40 00000000 */ nop +weapon_collect_msg_a_zmg: +/* 084A74 7F04FF44 0FC30776 */ jal get_textptr_for_textID +/* 084A78 7F04FF48 3404A426 */ li $a0, 42022 +/* 084A7C 7F04FF4C 02002025 */ move $a0, $s0 +/* 084A80 7F04FF50 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A84 7F04FF54 00402825 */ move $a1, $v0 +/* 084A88 7F04FF58 10000092 */ b .L7F0501A4 +/* 084A8C 7F04FF5C 00000000 */ nop +weapon_collect_msg_a_d5k: +/* 084A90 7F04FF60 0FC30776 */ jal get_textptr_for_textID +/* 084A94 7F04FF64 3404A427 */ li $a0, 42023 +/* 084A98 7F04FF68 02002025 */ move $a0, $s0 +/* 084A9C 7F04FF6C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AA0 7F04FF70 00402825 */ move $a1, $v0 +/* 084AA4 7F04FF74 1000008B */ b .L7F0501A4 +/* 084AA8 7F04FF78 00000000 */ nop +weapon_collect_msg_a_silenced_d5k: +/* 084AAC 7F04FF7C 0FC30776 */ jal get_textptr_for_textID +/* 084AB0 7F04FF80 3404A428 */ li $a0, 42024 +/* 084AB4 7F04FF84 02002025 */ move $a0, $s0 +/* 084AB8 7F04FF88 0C0029FF */ jal string_append_from_obseg_textbank +/* 084ABC 7F04FF8C 00402825 */ move $a1, $v0 +/* 084AC0 7F04FF90 10000084 */ b .L7F0501A4 +/* 084AC4 7F04FF94 00000000 */ nop +weapon_collect_msg_a_phantom: +/* 084AC8 7F04FF98 0FC30776 */ jal get_textptr_for_textID +/* 084ACC 7F04FF9C 3404A429 */ li $a0, 42025 +/* 084AD0 7F04FFA0 02002025 */ move $a0, $s0 +/* 084AD4 7F04FFA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AD8 7F04FFA8 00402825 */ move $a1, $v0 +/* 084ADC 7F04FFAC 1000007D */ b .L7F0501A4 +/* 084AE0 7F04FFB0 00000000 */ nop +weapon_collect_msg_a_ar33: +/* 084AE4 7F04FFB4 0FC30776 */ jal get_textptr_for_textID +/* 084AE8 7F04FFB8 3404A42A */ li $a0, 42026 +/* 084AEC 7F04FFBC 02002025 */ move $a0, $s0 +/* 084AF0 7F04FFC0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AF4 7F04FFC4 00402825 */ move $a1, $v0 +/* 084AF8 7F04FFC8 10000076 */ b .L7F0501A4 +/* 084AFC 7F04FFCC 00000000 */ nop +weapon_collect_msg_a_rcp90: +/* 084B00 7F04FFD0 0FC30776 */ jal get_textptr_for_textID +/* 084B04 7F04FFD4 3404A42B */ li $a0, 42027 +/* 084B08 7F04FFD8 02002025 */ move $a0, $s0 +/* 084B0C 7F04FFDC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B10 7F04FFE0 00402825 */ move $a1, $v0 +/* 084B14 7F04FFE4 1000006F */ b .L7F0501A4 +/* 084B18 7F04FFE8 00000000 */ nop +weapon_collect_msg_a_shotgun: +/* 084B1C 7F04FFEC 0FC30776 */ jal get_textptr_for_textID +/* 084B20 7F04FFF0 3404A42C */ li $a0, 42028 +/* 084B24 7F04FFF4 02002025 */ move $a0, $s0 +/* 084B28 7F04FFF8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B2C 7F04FFFC 00402825 */ move $a1, $v0 +/* 084B30 7F050000 10000068 */ b .L7F0501A4 +/* 084B34 7F050004 00000000 */ nop +weapon_collect_msg_an_auto_shotgun: +/* 084B38 7F050008 0FC30776 */ jal get_textptr_for_textID +/* 084B3C 7F05000C 3404A42D */ li $a0, 42029 +/* 084B40 7F050010 02002025 */ move $a0, $s0 +/* 084B44 7F050014 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B48 7F050018 00402825 */ move $a1, $v0 +/* 084B4C 7F05001C 10000061 */ b .L7F0501A4 +/* 084B50 7F050020 00000000 */ nop +weapon_collect_msg_a_sniper: +/* 084B54 7F050024 0FC30776 */ jal get_textptr_for_textID +/* 084B58 7F050028 3404A42E */ li $a0, 42030 +/* 084B5C 7F05002C 02002025 */ move $a0, $s0 +/* 084B60 7F050030 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B64 7F050034 00402825 */ move $a1, $v0 +/* 084B68 7F050038 1000005A */ b .L7F0501A4 +/* 084B6C 7F05003C 00000000 */ nop +weapon_collect_msg_a_grenade_launcher: +/* 084B70 7F050040 0FC30776 */ jal get_textptr_for_textID +/* 084B74 7F050044 3404A42F */ li $a0, 42031 +/* 084B78 7F050048 02002025 */ move $a0, $s0 +/* 084B7C 7F05004C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B80 7F050050 00402825 */ move $a1, $v0 +/* 084B84 7F050054 10000053 */ b .L7F0501A4 +/* 084B88 7F050058 00000000 */ nop +weapon_collect_msg_a_rocket_launcher: +/* 084B8C 7F05005C 0FC30776 */ jal get_textptr_for_textID +/* 084B90 7F050060 3404A430 */ li $a0, 42032 +/* 084B94 7F050064 02002025 */ move $a0, $s0 +/* 084B98 7F050068 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B9C 7F05006C 00402825 */ move $a1, $v0 +/* 084BA0 7F050070 1000004C */ b .L7F0501A4 +/* 084BA4 7F050074 00000000 */ nop +weapon_collect_msg_a_cougar_magnum: +/* 084BA8 7F050078 0FC30776 */ jal get_textptr_for_textID +/* 084BAC 7F05007C 3404A431 */ li $a0, 42033 +/* 084BB0 7F050080 02002025 */ move $a0, $s0 +/* 084BB4 7F050084 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BB8 7F050088 00402825 */ move $a1, $v0 +/* 084BBC 7F05008C 10000045 */ b .L7F0501A4 +/* 084BC0 7F050090 00000000 */ nop +weapon_collect_msg_a_golden_gun: +/* 084BC4 7F050094 0FC30776 */ jal get_textptr_for_textID +/* 084BC8 7F050098 3404A432 */ li $a0, 42034 +/* 084BCC 7F05009C 02002025 */ move $a0, $s0 +/* 084BD0 7F0500A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BD4 7F0500A4 00402825 */ move $a1, $v0 +/* 084BD8 7F0500A8 1000003E */ b .L7F0501A4 +/* 084BDC 7F0500AC 00000000 */ nop +weapon_collect_msg_a_moonraker_laser: +/* 084BE0 7F0500B0 0FC30776 */ jal get_textptr_for_textID +/* 084BE4 7F0500B4 3404A433 */ li $a0, 42035 +/* 084BE8 7F0500B8 02002025 */ move $a0, $s0 +/* 084BEC 7F0500BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BF0 7F0500C0 00402825 */ move $a1, $v0 +/* 084BF4 7F0500C4 10000037 */ b .L7F0501A4 +/* 084BF8 7F0500C8 00000000 */ nop +weapon_collect_msg_a_flare_pistol: +/* 084BFC 7F0500CC 0FC30776 */ jal get_textptr_for_textID +/* 084C00 7F0500D0 3404A434 */ li $a0, 42036 +/* 084C04 7F0500D4 02002025 */ move $a0, $s0 +/* 084C08 7F0500D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C0C 7F0500DC 00402825 */ move $a1, $v0 +/* 084C10 7F0500E0 10000030 */ b .L7F0501A4 +/* 084C14 7F0500E4 00000000 */ nop +weapon_collect_msg_a_piton_gun: +/* 084C18 7F0500E8 0FC30776 */ jal get_textptr_for_textID +/* 084C1C 7F0500EC 3404A435 */ li $a0, 42037 +/* 084C20 7F0500F0 02002025 */ move $a0, $s0 +/* 084C24 7F0500F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C28 7F0500F8 00402825 */ move $a1, $v0 +/* 084C2C 7F0500FC 10000029 */ b .L7F0501A4 +/* 084C30 7F050100 00000000 */ nop +weapon_collect_msg_a_silver_pp7: +/* 084C34 7F050104 0FC30776 */ jal get_textptr_for_textID +/* 084C38 7F050108 3404A436 */ li $a0, 42038 +/* 084C3C 7F05010C 02002025 */ move $a0, $s0 +/* 084C40 7F050110 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C44 7F050114 00402825 */ move $a1, $v0 +/* 084C48 7F050118 10000022 */ b .L7F0501A4 +/* 084C4C 7F05011C 00000000 */ nop +weapon_collect_msg_a_gold_pp7: +/* 084C50 7F050120 0FC30776 */ jal get_textptr_for_textID +/* 084C54 7F050124 3404A437 */ li $a0, 42039 +/* 084C58 7F050128 02002025 */ move $a0, $s0 +/* 084C5C 7F05012C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C60 7F050130 00402825 */ move $a1, $v0 +/* 084C64 7F050134 1000001B */ b .L7F0501A4 +/* 084C68 7F050138 00000000 */ nop +weapon_collect_msg_a_keycard: +/* 084C6C 7F05013C 0FC30776 */ jal get_textptr_for_textID +/* 084C70 7F050140 3404A438 */ li $a0, 42040 +/* 084C74 7F050144 02002025 */ move $a0, $s0 +/* 084C78 7F050148 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C7C 7F05014C 00402825 */ move $a1, $v0 +/* 084C80 7F050150 10000014 */ b .L7F0501A4 +/* 084C84 7F050154 00000000 */ nop +weapon_collect_msg_a_yale_key: +/* 084C88 7F050158 0FC30776 */ jal get_textptr_for_textID +/* 084C8C 7F05015C 3404A439 */ li $a0, 42041 +/* 084C90 7F050160 02002025 */ move $a0, $s0 +/* 084C94 7F050164 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C98 7F050168 00402825 */ move $a1, $v0 +/* 084C9C 7F05016C 1000000D */ b .L7F0501A4 +/* 084CA0 7F050170 00000000 */ nop +weapon_collect_msg_a_bolt_key: +/* 084CA4 7F050174 0FC30776 */ jal get_textptr_for_textID +/* 084CA8 7F050178 3404A43A */ li $a0, 42042 +/* 084CAC 7F05017C 02002025 */ move $a0, $s0 +/* 084CB0 7F050180 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CB4 7F050184 00402825 */ move $a1, $v0 +/* 084CB8 7F050188 10000006 */ b .L7F0501A4 +/* 084CBC 7F05018C 00000000 */ nop +weapon_collect_msg_a_new_weapon: +.L7F050190: +/* 084CC0 7F050190 0FC30776 */ jal get_textptr_for_textID +/* 084CC4 7F050194 3404A43B */ li $a0, 42043 +/* 084CC8 7F050198 02002025 */ move $a0, $s0 +/* 084CCC 7F05019C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CD0 7F0501A0 00402825 */ move $a1, $v0 +.L7F0501A4: +/* 084CD4 7F0501A4 3C088005 */ lui $t0, %hi(j_text_trigger) +/* 084CD8 7F0501A8 8D0884D0 */ lw $t0, %lo(j_text_trigger)($t0) +/* 084CDC 7F0501AC 8FA90024 */ lw $t1, 0x24($sp) +/* 084CE0 7F0501B0 51000018 */ beql $t0, $zero, .L7F050214 +/* 084CE4 7F0501B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 084CE8 7F0501B8 55200016 */ bnezl $t1, .L7F050214 +/* 084CEC 7F0501BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 084CF0 7F0501C0 0C004E1F */ jal strlen +/* 084CF4 7F0501C4 02002025 */ move $a0, $s0 +/* 084CF8 7F0501C8 00505021 */ addu $t2, $v0, $s0 +/* 084CFC 7F0501CC 914BFFFF */ lbu $t3, -1($t2) +/* 084D00 7F0501D0 2401000A */ li $at, 10 +/* 084D04 7F0501D4 15610005 */ bne $t3, $at, .L7F0501EC +/* 084D08 7F0501D8 00000000 */ nop +/* 084D0C 7F0501DC 0C004E1F */ jal strlen +/* 084D10 7F0501E0 02002025 */ move $a0, $s0 +/* 084D14 7F0501E4 02026021 */ addu $t4, $s0, $v0 +/* 084D18 7F0501E8 A180FFFF */ sb $zero, -1($t4) +.L7F0501EC: +/* 084D1C 7F0501EC 0FC30776 */ jal get_textptr_for_textID +/* 084D20 7F0501F0 3404A400 */ li $a0, 41984 +/* 084D24 7F0501F4 02002025 */ move $a0, $s0 +/* 084D28 7F0501F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D2C 7F0501FC 00402825 */ move $a1, $v0 +/* 084D30 7F050200 3C058005 */ lui $a1, %hi(D_80052A40) +/* 084D34 7F050204 24A52A40 */ addiu $a1, %lo(D_80052A40) # addiu $a1, $a1, 0x2a40 +/* 084D38 7F050208 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D3C 7F05020C 02002025 */ move $a0, $s0 +/* 084D40 7F050210 8FBF001C */ lw $ra, 0x1c($sp) +.L7F050214: +/* 084D44 7F050214 8FB00018 */ lw $s0, 0x18($sp) +/* 084D48 7F050218 27BD0028 */ addiu $sp, $sp, 0x28 +/* 084D4C 7F05021C 03E00008 */ jr $ra +/* 084D50 7F050220 00000000 */ nop +) +#endif + + + + + + +void display_text_for_weapon_in_lower_left_corner(ITEM_IDS weaponid) +{ + char acStack100 [100]; + + generate_language_specific_text_for_weapon(acStack100,weaponid); +#ifdef VERSION_JP + jp_display_string_in_lower_left_corner(acStack100); +#else + display_string_in_lower_left_corner(acStack100); +#endif + return; +} + + + + + + +#ifdef NONMATCHING +void collect_or_interact_object(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:8005322C*/ +glabel object_interaction_table +.word interact_default_object +.word interact_key_object +.word interact_default_object +.word interact_default_object +.word interact_magazine_object +.word interact_weapon_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_ammobox_object +.word interact_bodyarmor_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object + +.text +glabel collect_or_interact_object +/* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) +/* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) +/* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) +/* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) +/* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) +/* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) +/* 084DA4 7F050274 3C198005 */ lui $t9, %hi(clock_timer) +/* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) +/* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 +/* 084DB0 7F050280 00000000 */ nop +/* 084DB4 7F050284 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) +/* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 +/* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) +.L7F050294: +/* 084DC4 7F050294 1000010C */ b .L7F0506C8 +/* 084DC8 7F050298 00001025 */ move $v0, $zero +/* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) +.L7F0502A0: +/* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 +/* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d +/* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C +/* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 +/* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) +/* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 +/* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) +/* 084DEC 7F0502BC 01400008 */ jr $t2 +/* 084DF0 7F0502C0 00000000 */ nop +interact_key_object: +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DFC 7F0502CC 240500E5 */ li $a1, 229 +/* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 +/* 084E04 7F0502D4 00003025 */ move $a2, $zero +/* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) +/* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 +/* 084E10 7F0502E0 00000000 */ nop +/* 084E14 7F0502E4 0FC23657 */ jal obj_get_activated_text +/* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) +/* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 +/* 084E20 7F0502F0 00402025 */ move $a0, $v0 +/* 084E24 7F0502F4 0FC30776 */ jal get_textptr_for_textID +/* 084E28 7F0502F8 3404A43C */ li $a0, 42044 +/* 084E2C 7F0502FC 00402025 */ move $a0, $v0 +.L7F050300: +/* 084E30 7F050300 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084E34 7F050304 00000000 */ nop +.L7F050308: +/* 084E38 7F050308 100000DA */ b .L7F050674 +/* 084E3C 7F05030C 24030004 */ li $v1, 4 +interact_magazine_object: +/* 084E40 7F050310 00608025 */ move $s0, $v1 +/* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine +/* 084E48 7F050318 00602025 */ move $a0, $v1 +/* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) +/* 084E50 7F050320 00402825 */ move $a1, $v0 +/* 084E54 7F050324 24060001 */ li $a2, 1 +/* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory +/* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) +/* 084E60 7F050330 100000D0 */ b .L7F050674 +/* 084E64 7F050334 24030001 */ li $v1, 1 +interact_ammobox_object: +/* 084E68 7F050338 00001025 */ move $v0, $zero +/* 084E6C 7F05033C 00608025 */ move $s0, $v1 +/* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 +.L7F050344: +/* 084E74 7F050344 24010001 */ li $at, 1 +/* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 +/* 084E7C 7F05034C 00602025 */ move $a0, $v1 +/* 084E80 7F050350 24040001 */ li $a0, 1 +.L7F050354: +/* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) +/* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) +/* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) +/* 084E90 7F050360 0FC26919 */ jal get_num_players +/* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) +/* 084E98 7F050368 24010001 */ li $at, 1 +/* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) +/* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) +/* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C +/* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) +/* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 +/* 084EB0 7F050380 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 +/* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 +/* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 +/* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 +/* 084EC8 7F050398 00000000 */ nop +.L7F05039C: +/* 084ECC 7F05039C 00003025 */ move $a2, $zero +/* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) +/* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory +/* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) +/* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) +/* 084EE0 7F0503B0 2401000D */ li $at, 13 +/* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 +/* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 +/* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF8 7F0503C8 240500EA */ li $a1, 234 +/* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 +/* 084F00 7F0503D0 00003025 */ move $a2, $zero +/* 084F04 7F0503D4 100000A7 */ b .L7F050674 +/* 084F08 7F0503D8 24030001 */ li $v1, 1 +interact_weapon_object: +/* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) +/* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) +/* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection +/* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) +/* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) +/* 084F20 7F0503F0 2401001D */ li $at, 29 +/* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) +/* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 +/* 084F2C 7F0503FC 24010058 */ li $at, 88 +/* 084F30 7F050400 0FC23122 */ jal add_item_to_inventory +/* 084F34 7F050404 2404001E */ li $a0, 30 +/* 084F38 7F050408 10000007 */ b .L7F050428 +/* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) +/* 084F40 7F050410 24010058 */ li $at, 88 +.L7F050414: +/* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 +/* 084F48 7F050418 24050058 */ li $a1, 88 +/* 084F4C 7F05041C 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 084F50 7F050420 00002025 */ move $a0, $zero +.L7F050424: +/* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) +.L7F050428: +/* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) +/* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) +/* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 +/* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 +/* 084F68 7F050438 00000000 */ nop +/* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) +/* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 +/* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 +/* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) +/* 084F7C 7F05044C 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) +/* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) +.L7F050458: +/* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 +/* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) +/* 084F90 7F050460 0FC23657 */ jal obj_get_activated_text +/* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) +/* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 +/* 084F9C 7F05046C 00402025 */ move $a0, $v0 +/* 084FA0 7F050470 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084FA4 7F050474 00000000 */ nop +/* 084FA8 7F050478 10000005 */ b .L7F050490 +/* 084FAC 7F05047C 240B0001 */ li $t3, 1 +.L7F050480: +/* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) +/* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) +/* 084FBC 7F05048C 240B0001 */ li $t3, 1 +.L7F050490: +/* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) +/* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) +.L7F050498: +/* 084FC8 7F050498 24030004 */ li $v1, 4 +/* 084FCC 7F05049C 1000001C */ b .L7F050510 +/* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) +.L7F0504A4: +/* 084FD4 7F0504A4 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) +/* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 +/* 084FE0 7F0504B0 240D0001 */ li $t5, 1 +/* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0504B8: +/* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) +/* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) +/* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 +/* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) +/* 084FF8 7F0504C8 0FC23669 */ jal weapon_get_activated_text +/* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) +/* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC +/* 085004 7F0504D4 00402025 */ move $a0, $v0 +/* 085008 7F0504D8 24180001 */ li $t8, 1 +/* 08500C 7F0504DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) +/* 085014 7F0504E4 10000008 */ b .L7F050508 +/* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) +.L7F0504EC: +/* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) +/* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) +/* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 +/* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) +/* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) +/* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) +.L7F050508: +/* 085038 7F050508 24030001 */ li $v1, 1 +/* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) +.L7F050510: +/* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon +/* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) +/* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) +/* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 +/* 085050 7F050520 00408025 */ move $s0, $v0 +/* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) +/* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon +/* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) +/* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) +/* 085064 7F050534 1840004F */ blez $v0, .L7F050674 +/* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) +/* 08506C 7F05053C 02002025 */ move $a0, $s0 +/* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) +/* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) +/* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085080 7F050550 02002025 */ move $a0, $s0 +/* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) +/* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) +/* 08508C 7F05055C 02002025 */ move $a0, $s0 +/* 085090 7F050560 0142082A */ slt $at, $t2, $v0 +/* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 +/* 085098 7F050568 24010001 */ li $at, 1 +/* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) +/* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) +/* 0850A8 7F050578 02002025 */ move $a0, $s0 +/* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo +/* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 +/* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) +/* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) +/* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) +/* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 +/* 0850C4 7F050594 24010001 */ li $at, 1 +/* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 +/* 0850CC 7F05059C 02002025 */ move $a0, $s0 +/* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) +/* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected +/* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) +/* 0850DC 7F0505AC 10000031 */ b .L7F050674 +/* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) +interact_bodyarmor_object: +/* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor +/* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850F4 7F0505C4 24050051 */ li $a1, 81 +/* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 +/* 0850FC 7F0505CC 00003025 */ move $a2, $zero +/* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) +/* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 +/* 085108 7F0505D8 00000000 */ nop +/* 08510C 7F0505DC 0FC23657 */ jal obj_get_activated_text +/* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) +/* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C +/* 085118 7F0505E8 00402025 */ move $a0, $v0 +/* 08511C 7F0505EC 0FC26919 */ jal get_num_players +/* 085120 7F0505F0 00000000 */ nop +/* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 +/* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 +/* 08512C 7F0505FC 00000000 */ nop +/* 085130 7F050600 0FC30776 */ jal get_textptr_for_textID +/* 085134 7F050604 3404A43D */ li $a0, 42045 +/* 085138 7F050608 10000004 */ b .L7F05061C +/* 08513C 7F05060C 00402025 */ move $a0, $v0 +.L7F050610: +/* 085140 7F050610 0FC30776 */ jal get_textptr_for_textID +/* 085144 7F050614 3404A43E */ li $a0, 42046 +/* 085148 7F050618 00402025 */ move $a0, $v0 +.L7F05061C: +/* 08514C 7F05061C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085150 7F050620 00000000 */ nop +.L7F050624: +/* 085154 7F050624 10000013 */ b .L7F050674 +/* 085158 7F050628 24030001 */ li $v1, 1 +interact_default_object: +.L7F05062C: +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 085164 7F050634 240500E5 */ li $a1, 229 +/* 085168 7F050638 0C002382 */ jal play_sfx_a1 +/* 08516C 7F05063C 00003025 */ move $a2, $zero +/* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) +/* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 +/* 085178 7F050648 24030004 */ li $v1, 4 +/* 08517C 7F05064C 0FC23657 */ jal obj_get_activated_text +/* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) +/* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 +/* 085188 7F050658 00402025 */ move $a0, $v0 +/* 08518C 7F05065C 0FC30776 */ jal get_textptr_for_textID +/* 085190 7F050660 3404A43F */ li $a0, 42047 +/* 085194 7F050664 00402025 */ move $a0, $v0 +.L7F050668: +/* 085198 7F050668 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08519C 7F05066C 00000000 */ nop +/* 0851A0 7F050670 24030004 */ li $v1, 4 +.L7F050674: +/* 0851A4 7F050674 24010001 */ li $at, 1 +.L7F050678: +/* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 +/* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) +/* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) +/* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 +/* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 +/* 0851BC 7F05068C 00000000 */ nop +/* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) +/* 0851C4 7F050694 03002025 */ move $a0, $t8 +/* 0851C8 7F050698 00002825 */ move $a1, $zero +/* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 +/* 0851D0 7F0506A0 0FC10366 */ jal sub_GAME_7F040D98 +/* 0851D4 7F0506A4 01203025 */ move $a2, $t1 +/* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 +/* 0851DC 7F0506AC 24020001 */ li $v0, 1 +.L7F0506B0: +/* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 +/* 0851E4 7F0506B4 00001025 */ move $v0, $zero +/* 0851E8 7F0506B8 0FC231C9 */ jal add_prop_to_inventory +/* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) +/* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 +/* 0851F4 7F0506C4 24020004 */ li $v0, 4 +.L7F0506C8: +/* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) +/* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 085204 7F0506D4 03E00008 */ jr $ra +/* 085208 7F0506D8 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:8005322C*/ +glabel object_interaction_table +.word interact_default_object +.word interact_key_object +.word interact_default_object +.word interact_default_object +.word interact_magazine_object +.word interact_weapon_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_ammobox_object +.word interact_bodyarmor_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object + +.text +glabel collect_or_interact_object +/* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) +/* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) +/* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) +/* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) +/* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) +/* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) +/* 084DA4 7F050274 3C198005 */ lui $t9, %hi(clock_timer) +/* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) +/* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 +/* 084DB0 7F050280 00000000 */ nop +/* 084DB4 7F050284 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) +/* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 +/* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) +.L7F050294: +/* 084DC4 7F050294 1000010C */ b .L7F0506C8 +/* 084DC8 7F050298 00001025 */ move $v0, $zero +/* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) +.L7F0502A0: +/* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 +/* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d +/* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C +/* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 +/* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) +/* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 +/* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) +/* 084DEC 7F0502BC 01400008 */ jr $t2 +/* 084DF0 7F0502C0 00000000 */ nop +interact_key_object: +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DFC 7F0502CC 240500E5 */ li $a1, 229 +/* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 +/* 084E04 7F0502D4 00003025 */ move $a2, $zero +/* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) +/* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 +/* 084E10 7F0502E0 00000000 */ nop +/* 084E14 7F0502E4 0FC23657 */ jal obj_get_activated_text +/* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) +/* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 +/* 084E20 7F0502F0 00402025 */ move $a0, $v0 +/* 084E24 7F0502F4 0FC30776 */ jal get_textptr_for_textID +/* 084E28 7F0502F8 3404A43C */ li $a0, 42044 +/* 084E2C 7F0502FC 00402025 */ move $a0, $v0 +.L7F050300: +/* 084E30 7F050300 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084E34 7F050304 00000000 */ nop +.L7F050308: +/* 084E38 7F050308 100000DA */ b .L7F050674 +/* 084E3C 7F05030C 24030004 */ li $v1, 4 +interact_magazine_object: +/* 084E40 7F050310 00608025 */ move $s0, $v1 +/* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine +/* 084E48 7F050318 00602025 */ move $a0, $v1 +/* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) +/* 084E50 7F050320 00402825 */ move $a1, $v0 +/* 084E54 7F050324 24060001 */ li $a2, 1 +/* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory +/* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) +/* 084E60 7F050330 100000D0 */ b .L7F050674 +/* 084E64 7F050334 24030001 */ li $v1, 1 +interact_ammobox_object: +/* 084E68 7F050338 00001025 */ move $v0, $zero +/* 084E6C 7F05033C 00608025 */ move $s0, $v1 +/* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 +.L7F050344: +/* 084E74 7F050344 24010001 */ li $at, 1 +/* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 +/* 084E7C 7F05034C 00602025 */ move $a0, $v1 +/* 084E80 7F050350 24040001 */ li $a0, 1 +.L7F050354: +/* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) +/* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) +/* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) +/* 084E90 7F050360 0FC26919 */ jal get_num_players +/* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) +/* 084E98 7F050368 24010001 */ li $at, 1 +/* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) +/* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) +/* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C +/* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) +/* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 +/* 084EB0 7F050380 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 +/* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 +/* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 +/* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 +/* 084EC8 7F050398 00000000 */ nop +.L7F05039C: +/* 084ECC 7F05039C 00003025 */ move $a2, $zero +/* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) +/* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory +/* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) +/* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) +/* 084EE0 7F0503B0 2401000D */ li $at, 13 +/* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 +/* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 +/* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF8 7F0503C8 240500EA */ li $a1, 234 +/* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 +/* 084F00 7F0503D0 00003025 */ move $a2, $zero +/* 084F04 7F0503D4 100000A7 */ b .L7F050674 +/* 084F08 7F0503D8 24030001 */ li $v1, 1 +interact_weapon_object: +/* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) +/* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) +/* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection +/* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) +/* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) +/* 084F20 7F0503F0 2401001D */ li $at, 29 +/* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) +/* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 +/* 084F2C 7F0503FC 24010058 */ li $at, 88 +/* 084F30 7F050400 0FC23122 */ jal add_item_to_inventory +/* 084F34 7F050404 2404001E */ li $a0, 30 +/* 084F38 7F050408 10000007 */ b .L7F050428 +/* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) +/* 084F40 7F050410 24010058 */ li $at, 88 +.L7F050414: +/* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 +/* 084F48 7F050418 24050058 */ li $a1, 88 +/* 084F4C 7F05041C 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 084F50 7F050420 00002025 */ move $a0, $zero +.L7F050424: +/* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) +.L7F050428: +/* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) +/* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) +/* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 +/* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 +/* 084F68 7F050438 00000000 */ nop +/* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) +/* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 +/* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 +/* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) +/* 084F7C 7F05044C 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) +/* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) +.L7F050458: +/* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 +/* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) +/* 084F90 7F050460 0FC23657 */ jal obj_get_activated_text +/* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) +/* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 +/* 084F9C 7F05046C 00402025 */ move $a0, $v0 +/* 084FA0 7F050470 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084FA4 7F050474 00000000 */ nop +/* 084FA8 7F050478 10000005 */ b .L7F050490 +/* 084FAC 7F05047C 240B0001 */ li $t3, 1 +.L7F050480: +/* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) +/* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) +/* 084FBC 7F05048C 240B0001 */ li $t3, 1 +.L7F050490: +/* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) +/* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) +.L7F050498: +/* 084FC8 7F050498 24030004 */ li $v1, 4 +/* 084FCC 7F05049C 1000001C */ b .L7F050510 +/* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) +.L7F0504A4: +/* 084FD4 7F0504A4 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) +/* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 +/* 084FE0 7F0504B0 240D0001 */ li $t5, 1 +/* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0504B8: +/* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) +/* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) +/* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 +/* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) +/* 084FF8 7F0504C8 0FC23669 */ jal weapon_get_activated_text +/* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) +/* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC +/* 085004 7F0504D4 00402025 */ move $a0, $v0 +/* 085008 7F0504D8 24180001 */ li $t8, 1 +/* 08500C 7F0504DC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) +/* 085014 7F0504E4 10000008 */ b .L7F050508 +/* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) +.L7F0504EC: +/* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) +/* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) +/* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 +/* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) +/* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) +/* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) +.L7F050508: +/* 085038 7F050508 24030001 */ li $v1, 1 +/* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) +.L7F050510: +/* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon +/* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) +/* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) +/* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 +/* 085050 7F050520 00408025 */ move $s0, $v0 +/* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) +/* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon +/* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) +/* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) +/* 085064 7F050534 1840004F */ blez $v0, .L7F050674 +/* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) +/* 08506C 7F05053C 02002025 */ move $a0, $s0 +/* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) +/* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) +/* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085080 7F050550 02002025 */ move $a0, $s0 +/* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) +/* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) +/* 08508C 7F05055C 02002025 */ move $a0, $s0 +/* 085090 7F050560 0142082A */ slt $at, $t2, $v0 +/* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 +/* 085098 7F050568 24010001 */ li $at, 1 +/* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) +/* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) +/* 0850A8 7F050578 02002025 */ move $a0, $s0 +/* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo +/* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 +/* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) +/* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) +/* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) +/* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 +/* 0850C4 7F050594 24010001 */ li $at, 1 +/* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 +/* 0850CC 7F05059C 02002025 */ move $a0, $s0 +/* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) +/* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected +/* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) +/* 0850DC 7F0505AC 10000031 */ b .L7F050674 +/* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) +interact_bodyarmor_object: +/* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor +/* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850F4 7F0505C4 24050051 */ li $a1, 81 +/* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 +/* 0850FC 7F0505CC 00003025 */ move $a2, $zero +/* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) +/* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 +/* 085108 7F0505D8 00000000 */ nop +/* 08510C 7F0505DC 0FC23657 */ jal obj_get_activated_text +/* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) +/* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C +/* 085118 7F0505E8 00402025 */ move $a0, $v0 +/* 08511C 7F0505EC 0FC26919 */ jal get_num_players +/* 085120 7F0505F0 00000000 */ nop +/* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 +/* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 +/* 08512C 7F0505FC 00000000 */ nop +/* 085130 7F050600 0FC30776 */ jal get_textptr_for_textID +/* 085134 7F050604 3404A43D */ li $a0, 42045 +/* 085138 7F050608 10000004 */ b .L7F05061C +/* 08513C 7F05060C 00402025 */ move $a0, $v0 +.L7F050610: +/* 085140 7F050610 0FC30776 */ jal get_textptr_for_textID +/* 085144 7F050614 3404A43E */ li $a0, 42046 +/* 085148 7F050618 00402025 */ move $a0, $v0 +.L7F05061C: +/* 08514C 7F05061C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 085150 7F050620 00000000 */ nop +.L7F050624: +/* 085154 7F050624 10000013 */ b .L7F050674 +/* 085158 7F050628 24030001 */ li $v1, 1 +interact_default_object: +.L7F05062C: +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 085164 7F050634 240500E5 */ li $a1, 229 +/* 085168 7F050638 0C002382 */ jal play_sfx_a1 +/* 08516C 7F05063C 00003025 */ move $a2, $zero +/* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) +/* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 +/* 085178 7F050648 24030004 */ li $v1, 4 +/* 08517C 7F05064C 0FC23657 */ jal obj_get_activated_text +/* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) +/* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 +/* 085188 7F050658 00402025 */ move $a0, $v0 +/* 08518C 7F05065C 0FC30776 */ jal get_textptr_for_textID +/* 085190 7F050660 3404A43F */ li $a0, 42047 +/* 085194 7F050664 00402025 */ move $a0, $v0 +.L7F050668: +/* 085198 7F050668 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08519C 7F05066C 00000000 */ nop +/* 0851A0 7F050670 24030004 */ li $v1, 4 +.L7F050674: +/* 0851A4 7F050674 24010001 */ li $at, 1 +.L7F050678: +/* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 +/* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) +/* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) +/* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 +/* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 +/* 0851BC 7F05068C 00000000 */ nop +/* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) +/* 0851C4 7F050694 03002025 */ move $a0, $t8 +/* 0851C8 7F050698 00002825 */ move $a1, $zero +/* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 +/* 0851D0 7F0506A0 0FC10366 */ jal sub_GAME_7F040D98 +/* 0851D4 7F0506A4 01203025 */ move $a2, $t1 +/* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 +/* 0851DC 7F0506AC 24020001 */ li $v0, 1 +.L7F0506B0: +/* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 +/* 0851E4 7F0506B4 00001025 */ move $v0, $zero +/* 0851E8 7F0506B8 0FC231C9 */ jal add_prop_to_inventory +/* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) +/* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 +/* 0851F4 7F0506C4 24020004 */ li $v0, 4 +.L7F0506C8: +/* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) +/* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 085204 7F0506D4 03E00008 */ jr $ra +/* 085208 7F0506D8 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void object_collectability_routines(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800532E0 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_800532E4 +.word 0x47ef4200 /*122500.0*/ +glabel D_800532E8 +.word 0x461c4000 /*10000.0*/ +glabel D_800532EC +.word 0x47742400 /*62500.0*/ +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel object_collectability_routines +/* 08520C 7F0506DC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 085210 7F0506E0 AFBF002C */ sw $ra, 0x2c($sp) +/* 085214 7F0506E4 AFA40088 */ sw $a0, 0x88($sp) +/* 085218 7F0506E8 8C840004 */ lw $a0, 4($a0) +/* 08521C 7F0506EC 0FC13803 */ jal check_if_collectable_object +/* 085220 7F0506F0 AFA40084 */ sw $a0, 0x84($sp) +/* 085224 7F0506F4 1040000B */ beqz $v0, .L7F050724 +/* 085228 7F0506F8 8FA40084 */ lw $a0, 0x84($sp) +/* 08522C 7F0506FC 908F0003 */ lbu $t7, 3($a0) +/* 085230 7F050700 24010011 */ li $at, 17 +/* 085234 7F050704 51E10008 */ beql $t7, $at, .L7F050728 +/* 085238 7F050708 8FA40084 */ lw $a0, 0x84($sp) +/* 08523C 7F05070C 8C820008 */ lw $v0, 8($a0) +/* 085240 7F050710 0002C2C0 */ sll $t8, $v0, 0xb +/* 085244 7F050714 0703000B */ bgezl $t8, .L7F050744 +/* 085248 7F050718 00024B00 */ sll $t1, $v0, 0xc +/* 08524C 7F05071C 10000180 */ b .L7F050D20 +/* 085250 7F050720 00001025 */ move $v0, $zero +.L7F050724: +/* 085254 7F050724 8FA40084 */ lw $a0, 0x84($sp) +.L7F050728: +/* 085258 7F050728 8C820008 */ lw $v0, 8($a0) +/* 08525C 7F05072C 0002CB40 */ sll $t9, $v0, 0xd +/* 085260 7F050730 07220004 */ bltzl $t9, .L7F050744 +/* 085264 7F050734 00024B00 */ sll $t1, $v0, 0xc +/* 085268 7F050738 10000179 */ b .L7F050D20 +/* 08526C 7F05073C 00001025 */ move $v0, $zero +/* 085270 7F050740 00024B00 */ sll $t1, $v0, 0xc +.L7F050744: +/* 085274 7F050744 05230004 */ bgezl $t1, .L7F050758 +/* 085278 7F050748 8C8A0064 */ lw $t2, 0x64($a0) +/* 08527C 7F05074C 10000174 */ b .L7F050D20 +/* 085280 7F050750 00001025 */ move $v0, $zero +/* 085284 7F050754 8C8A0064 */ lw $t2, 0x64($a0) +.L7F050758: +/* 085288 7F050758 314B0080 */ andi $t3, $t2, 0x80 +/* 08528C 7F05075C 1160000A */ beqz $t3, .L7F050788 +/* 085290 7F050760 00000000 */ nop +/* 085294 7F050764 8C82006C */ lw $v0, 0x6c($a0) +/* 085298 7F050768 8C4C00BC */ lw $t4, 0xbc($v0) +/* 08529C 7F05076C 19800006 */ blez $t4, .L7F050788 +/* 0852A0 7F050770 00000000 */ nop +/* 0852A4 7F050774 8C4D0090 */ lw $t5, 0x90($v0) +/* 0852A8 7F050778 15A00003 */ bnez $t5, .L7F050788 +/* 0852AC 7F05077C 00000000 */ nop +/* 0852B0 7F050780 10000167 */ b .L7F050D20 +/* 0852B4 7F050784 00001025 */ move $v0, $zero +.L7F050788: +/* 0852B8 7F050788 0FC0F9EB */ jal sub_GAME_7F03E7AC +/* 0852BC 7F05078C 00000000 */ nop +/* 0852C0 7F050790 14400003 */ bnez $v0, .L7F0507A0 +/* 0852C4 7F050794 8FA50084 */ lw $a1, 0x84($sp) +/* 0852C8 7F050798 10000161 */ b .L7F050D20 +/* 0852CC 7F05079C 00001025 */ move $v0, $zero +.L7F0507A0: +/* 0852D0 7F0507A0 90A20003 */ lbu $v0, 3($a1) +/* 0852D4 7F0507A4 24010008 */ li $at, 8 +/* 0852D8 7F0507A8 8FAE0088 */ lw $t6, 0x88($sp) +/* 0852DC 7F0507AC 54410064 */ bnel $v0, $at, .L7F050940 +/* 0852E0 7F0507B0 24010007 */ li $at, 7 +/* 0852E4 7F0507B4 8DC30004 */ lw $v1, 4($t6) +/* 0852E8 7F0507B8 2401001A */ li $at, 26 +/* 0852EC 7F0507BC 80640080 */ lb $a0, 0x80($v1) +/* 0852F0 7F0507C0 10810003 */ beq $a0, $at, .L7F0507D0 +/* 0852F4 7F0507C4 24010057 */ li $at, 87 +/* 0852F8 7F0507C8 5481000B */ bnel $a0, $at, .L7F0507F8 +/* 0852FC 7F0507CC 2401001D */ li $at, 29 +.L7F0507D0: +/* 085300 7F0507D0 846F0082 */ lh $t7, 0x82($v1) +/* 085304 7F0507D4 05E10005 */ bgez $t7, .L7F0507EC +/* 085308 7F0507D8 00000000 */ nop +/* 08530C 7F0507DC 8CB80064 */ lw $t8, 0x64($a1) +/* 085310 7F0507E0 33190004 */ andi $t9, $t8, 4 +/* 085314 7F0507E4 53200004 */ beql $t9, $zero, .L7F0507F8 +/* 085318 7F0507E8 2401001D */ li $at, 29 +.L7F0507EC: +/* 08531C 7F0507EC 1000014C */ b .L7F050D20 +/* 085320 7F0507F0 00001025 */ move $v0, $zero +/* 085324 7F0507F4 2401001D */ li $at, 29 +.L7F0507F8: +/* 085328 7F0507F8 1081000D */ beq $a0, $at, .L7F050830 +/* 08532C 7F0507FC 2401001C */ li $at, 28 +/* 085330 7F050800 1081000B */ beq $a0, $at, .L7F050830 +/* 085334 7F050804 2401001B */ li $at, 27 +/* 085338 7F050808 10810009 */ beq $a0, $at, .L7F050830 +/* 08533C 7F05080C 24010021 */ li $at, 33 +/* 085340 7F050810 10810007 */ beq $a0, $at, .L7F050830 +/* 085344 7F050814 2401002F */ li $at, 47 +/* 085348 7F050818 10810005 */ beq $a0, $at, .L7F050830 +/* 08534C 7F05081C 24010030 */ li $at, 48 +/* 085350 7F050820 10810003 */ beq $a0, $at, .L7F050830 +/* 085354 7F050824 24010022 */ li $at, 34 +/* 085358 7F050828 5481000B */ bnel $a0, $at, .L7F050858 +/* 08535C 7F05082C 24010056 */ li $at, 86 +.L7F050830: +/* 085360 7F050830 84690082 */ lh $t1, 0x82($v1) +/* 085364 7F050834 05210005 */ bgez $t1, .L7F05084C +/* 085368 7F050838 00000000 */ nop +/* 08536C 7F05083C 8CAA0064 */ lw $t2, 0x64($a1) +/* 085370 7F050840 314B0004 */ andi $t3, $t2, 4 +/* 085374 7F050844 51600004 */ beql $t3, $zero, .L7F050858 +/* 085378 7F050848 24010056 */ li $at, 86 +.L7F05084C: +/* 08537C 7F05084C 10000134 */ b .L7F050D20 +/* 085380 7F050850 00001025 */ move $v0, $zero +/* 085384 7F050854 24010056 */ li $at, 86 +.L7F050858: +/* 085388 7F050858 14810007 */ bne $a0, $at, .L7F050878 +/* 08538C 7F05085C 00000000 */ nop +/* 085390 7F050860 8CAC0064 */ lw $t4, 0x64($a1) +/* 085394 7F050864 318D0080 */ andi $t5, $t4, 0x80 +/* 085398 7F050868 11A00003 */ beqz $t5, .L7F050878 +/* 08539C 7F05086C 00000000 */ nop +/* 0853A0 7F050870 1000012B */ b .L7F050D20 +/* 0853A4 7F050874 00001025 */ move $v0, $zero +.L7F050878: +/* 0853A8 7F050878 0FC230C5 */ jal is_weapon_in_inv +/* 0853AC 7F05087C AFA30080 */ sw $v1, 0x80($sp) +/* 0853B0 7F050880 1040009B */ beqz $v0, .L7F050AF0 +/* 0853B4 7F050884 8FA30080 */ lw $v1, 0x80($sp) +/* 0853B8 7F050888 80640080 */ lb $a0, 0x80($v1) +/* 0853BC 7F05088C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0853C0 7F050890 AFA30080 */ sw $v1, 0x80($sp) +/* 0853C4 7F050894 10400096 */ beqz $v0, .L7F050AF0 +/* 0853C8 7F050898 8FA30080 */ lw $v1, 0x80($sp) +/* 0853CC 7F05089C 80640080 */ lb $a0, 0x80($v1) +/* 0853D0 7F0508A0 0FC1A514 */ jal get_ammo_count_for_weapon +/* 0853D4 7F0508A4 AFA30080 */ sw $v1, 0x80($sp) +/* 0853D8 7F0508A8 8FA30080 */ lw $v1, 0x80($sp) +/* 0853DC 7F0508AC 80640080 */ lb $a0, 0x80($v1) +/* 0853E0 7F0508B0 0FC1A52C */ jal get_max_ammo_for_weapon +/* 0853E4 7F0508B4 AFA20038 */ sw $v0, 0x38($sp) +/* 0853E8 7F0508B8 8FA60038 */ lw $a2, 0x38($sp) +/* 0853EC 7F0508BC 8FA30080 */ lw $v1, 0x80($sp) +/* 0853F0 7F0508C0 00C2082A */ slt $at, $a2, $v0 +/* 0853F4 7F0508C4 1420008A */ bnez $at, .L7F050AF0 +/* 0853F8 7F0508C8 00000000 */ nop +/* 0853FC 7F0508CC 8C620084 */ lw $v0, 0x84($v1) +/* 085400 7F0508D0 14400004 */ bnez $v0, .L7F0508E4 +/* 085404 7F0508D4 00000000 */ nop +/* 085408 7F0508D8 806E0081 */ lb $t6, 0x81($v1) +/* 08540C 7F0508DC 05C00015 */ bltz $t6, .L7F050934 +/* 085410 7F0508E0 00000000 */ nop +.L7F0508E4: +/* 085414 7F0508E4 50400005 */ beql $v0, $zero, .L7F0508FC +/* 085418 7F0508E8 80650081 */ lb $a1, 0x81($v1) +/* 08541C 7F0508EC 80450080 */ lb $a1, 0x80($v0) +/* 085420 7F0508F0 10000003 */ b .L7F050900 +/* 085424 7F0508F4 00A02025 */ move $a0, $a1 +/* 085428 7F0508F8 80650081 */ lb $a1, 0x81($v1) +.L7F0508FC: +/* 08542C 7F0508FC 00A02025 */ move $a0, $a1 +.L7F050900: +/* 085430 7F050900 8C6F0008 */ lw $t7, 8($v1) +/* 085434 7F050904 000FC0C0 */ sll $t8, $t7, 3 +/* 085438 7F050908 07030004 */ bgezl $t8, .L7F05091C +/* 08543C 7F05090C 80640080 */ lb $a0, 0x80($v1) +/* 085440 7F050910 10000002 */ b .L7F05091C +/* 085444 7F050914 80650080 */ lb $a1, 0x80($v1) +/* 085448 7F050918 80640080 */ lb $a0, 0x80($v1) +.L7F05091C: +/* 08544C 7F05091C 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 085450 7F050920 00000000 */ nop +/* 085454 7F050924 10400072 */ beqz $v0, .L7F050AF0 +/* 085458 7F050928 00000000 */ nop +/* 08545C 7F05092C 100000FC */ b .L7F050D20 +/* 085460 7F050930 00001025 */ move $v0, $zero +.L7F050934: +/* 085464 7F050934 100000FA */ b .L7F050D20 +/* 085468 7F050938 00001025 */ move $v0, $zero +/* 08546C 7F05093C 24010007 */ li $at, 7 +.L7F050940: +/* 085470 7F050940 1441000F */ bne $v0, $at, .L7F050980 +/* 085474 7F050944 8FB90088 */ lw $t9, 0x88($sp) +/* 085478 7F050948 8F230004 */ lw $v1, 4($t9) +/* 08547C 7F05094C 8C640080 */ lw $a0, 0x80($v1) +/* 085480 7F050950 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085484 7F050954 AFA30074 */ sw $v1, 0x74($sp) +/* 085488 7F050958 8FA30074 */ lw $v1, 0x74($sp) +/* 08548C 7F05095C 8C640080 */ lw $a0, 0x80($v1) +/* 085490 7F050960 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085494 7F050964 AFA20038 */ sw $v0, 0x38($sp) +/* 085498 7F050968 8FA60038 */ lw $a2, 0x38($sp) +/* 08549C 7F05096C 00C2082A */ slt $at, $a2, $v0 +/* 0854A0 7F050970 1420005F */ bnez $at, .L7F050AF0 +/* 0854A4 7F050974 00000000 */ nop +/* 0854A8 7F050978 100000E9 */ b .L7F050D20 +/* 0854AC 7F05097C 00001025 */ move $v0, $zero +.L7F050980: +/* 0854B0 7F050980 24010014 */ li $at, 20 +/* 0854B4 7F050984 1441002C */ bne $v0, $at, .L7F050A38 +/* 0854B8 7F050988 8FA90088 */ lw $t1, 0x88($sp) +/* 0854BC 7F05098C 8D2A0004 */ lw $t2, 4($t1) +/* 0854C0 7F050990 240B0001 */ li $t3, 1 +/* 0854C4 7F050994 AFAB006C */ sw $t3, 0x6c($sp) +/* 0854C8 7F050998 00A02025 */ move $a0, $a1 +/* 0854CC 7F05099C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0854D0 7F0509A0 AFAA0070 */ sw $t2, 0x70($sp) +/* 0854D4 7F0509A4 10400003 */ beqz $v0, .L7F0509B4 +/* 0854D8 7F0509A8 8FA30070 */ lw $v1, 0x70($sp) +/* 0854DC 7F0509AC 100000DC */ b .L7F050D20 +/* 0854E0 7F0509B0 00001025 */ move $v0, $zero +.L7F0509B4: +/* 0854E4 7F0509B4 00001025 */ move $v0, $zero +.L7F0509B8: +/* 0854E8 7F0509B8 24450001 */ addiu $a1, $v0, 1 +/* 0854EC 7F0509BC 24010001 */ li $at, 1 +/* 0854F0 7F0509C0 14410002 */ bne $v0, $at, .L7F0509CC +/* 0854F4 7F0509C4 00A02025 */ move $a0, $a1 +/* 0854F8 7F0509C8 24040001 */ li $a0, 1 +.L7F0509CC: +/* 0854FC 7F0509CC 946C0082 */ lhu $t4, 0x82($v1) +/* 085500 7F0509D0 59800011 */ blezl $t4, .L7F050A18 +/* 085504 7F0509D4 2401000D */ li $at, 13 +/* 085508 7F0509D8 AFA30030 */ sw $v1, 0x30($sp) +/* 08550C 7F0509DC AFA40064 */ sw $a0, 0x64($sp) +/* 085510 7F0509E0 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085514 7F0509E4 AFA50034 */ sw $a1, 0x34($sp) +/* 085518 7F0509E8 8FA40064 */ lw $a0, 0x64($sp) +/* 08551C 7F0509EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085520 7F0509F0 AFA20038 */ sw $v0, 0x38($sp) +/* 085524 7F0509F4 8FA60038 */ lw $a2, 0x38($sp) +/* 085528 7F0509F8 8FA30030 */ lw $v1, 0x30($sp) +/* 08552C 7F0509FC 8FA50034 */ lw $a1, 0x34($sp) +/* 085530 7F050A00 00C2082A */ slt $at, $a2, $v0 +/* 085534 7F050A04 50200004 */ beql $at, $zero, .L7F050A18 +/* 085538 7F050A08 2401000D */ li $at, 13 +/* 08553C 7F050A0C 10000005 */ b .L7F050A24 +/* 085540 7F050A10 AFA0006C */ sw $zero, 0x6c($sp) +/* 085544 7F050A14 2401000D */ li $at, 13 +.L7F050A18: +/* 085548 7F050A18 00A01025 */ move $v0, $a1 +/* 08554C 7F050A1C 14A1FFE6 */ bne $a1, $at, .L7F0509B8 +/* 085550 7F050A20 24630004 */ addiu $v1, $v1, 4 +.L7F050A24: +/* 085554 7F050A24 8FAD006C */ lw $t5, 0x6c($sp) +/* 085558 7F050A28 11A00031 */ beqz $t5, .L7F050AF0 +/* 08555C 7F050A2C 00000000 */ nop +/* 085560 7F050A30 100000BB */ b .L7F050D20 +/* 085564 7F050A34 00001025 */ move $v0, $zero +.L7F050A38: +/* 085568 7F050A38 24010015 */ li $at, 21 +/* 08556C 7F050A3C 1441002C */ bne $v0, $at, .L7F050AF0 +/* 085570 7F050A40 8FAE0088 */ lw $t6, 0x88($sp) +/* 085574 7F050A44 8DCF0004 */ lw $t7, 4($t6) +/* 085578 7F050A48 AFA0005C */ sw $zero, 0x5c($sp) +/* 08557C 7F050A4C 0FC228BF */ jal get_BONDdata_watch_armor +/* 085580 7F050A50 AFAF0060 */ sw $t7, 0x60($sp) +/* 085584 7F050A54 8FB80060 */ lw $t8, 0x60($sp) +/* 085588 7F050A58 24190001 */ li $t9, 1 +/* 08558C 7F050A5C C7040084 */ lwc1 $f4, 0x84($t8) +/* 085590 7F050A60 4600203E */ c.le.s $f4, $f0 +/* 085594 7F050A64 00000000 */ nop +/* 085598 7F050A68 45000003 */ bc1f .L7F050A78 +/* 08559C 7F050A6C 00000000 */ nop +/* 0855A0 7F050A70 1000001A */ b .L7F050ADC +/* 0855A4 7F050A74 AFB9005C */ sw $t9, 0x5c($sp) +.L7F050A78: +/* 0855A8 7F050A78 0FC26919 */ jal get_num_players +/* 0855AC 7F050A7C 00000000 */ nop +/* 0855B0 7F050A80 28410002 */ slti $at, $v0, 2 +/* 0855B4 7F050A84 54200016 */ bnezl $at, .L7F050AE0 +/* 0855B8 7F050A88 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855BC 7F050A8C 0FC051D6 */ jal get_scenario +/* 0855C0 7F050A90 00000000 */ nop +/* 0855C4 7F050A94 24010002 */ li $at, 2 +/* 0855C8 7F050A98 14410008 */ bne $v0, $at, .L7F050ABC +/* 0855CC 7F050A9C 00401825 */ move $v1, $v0 +/* 0855D0 7F050AA0 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0855D4 7F050AA4 AFA20058 */ sw $v0, 0x58($sp) +/* 0855D8 7F050AA8 10400004 */ beqz $v0, .L7F050ABC +/* 0855DC 7F050AAC 8FA30058 */ lw $v1, 0x58($sp) +/* 0855E0 7F050AB0 24090001 */ li $t1, 1 +/* 0855E4 7F050AB4 10000009 */ b .L7F050ADC +/* 0855E8 7F050AB8 AFA9005C */ sw $t1, 0x5c($sp) +.L7F050ABC: +/* 0855EC 7F050ABC 24010003 */ li $at, 3 +/* 0855F0 7F050AC0 54610007 */ bnel $v1, $at, .L7F050AE0 +/* 0855F4 7F050AC4 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855F8 7F050AC8 0FC233F0 */ jal checkforgoldengun +/* 0855FC 7F050ACC 00000000 */ nop +/* 085600 7F050AD0 10400002 */ beqz $v0, .L7F050ADC +/* 085604 7F050AD4 240A0001 */ li $t2, 1 +/* 085608 7F050AD8 AFAA005C */ sw $t2, 0x5c($sp) +.L7F050ADC: +/* 08560C 7F050ADC 8FAB005C */ lw $t3, 0x5c($sp) +.L7F050AE0: +/* 085610 7F050AE0 11600003 */ beqz $t3, .L7F050AF0 +/* 085614 7F050AE4 00000000 */ nop +/* 085618 7F050AE8 1000008D */ b .L7F050D20 +/* 08561C 7F050AEC 00001025 */ move $v0, $zero +.L7F050AF0: +/* 085620 7F050AF0 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees +/* 085624 7F050AF4 00000000 */ nop +/* 085628 7F050AF8 3C018005 */ lui $at, %hi(D_800532E0) +/* 08562C 7F050AFC C42632E0 */ lwc1 $f6, %lo(D_800532E0)($at) +/* 085630 7F050B00 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 085634 7F050B04 4606003C */ c.lt.s $f0, $f6 +/* 085638 7F050B08 00000000 */ nop +/* 08563C 7F050B0C 45000007 */ bc1f .L7F050B2C +/* 085640 7F050B10 00000000 */ nop +/* 085644 7F050B14 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 085648 7F050B18 8D8D1270 */ lw $t5, 0x1270($t4) +/* 08564C 7F050B1C 05A10003 */ bgez $t5, .L7F050B2C +/* 085650 7F050B20 00000000 */ nop +/* 085654 7F050B24 1000007E */ b .L7F050D20 +/* 085658 7F050B28 00001025 */ move $v0, $zero +.L7F050B2C: +/* 08565C 7F050B2C 0FC225E6 */ jal get_curplayer_positiondata +/* 085660 7F050B30 00000000 */ nop +/* 085664 7F050B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 085668 7F050B38 8FAE0084 */ lw $t6, 0x84($sp) +/* 08566C 7F050B3C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 085670 7F050B40 C44A0008 */ lwc1 $f10, 8($v0) +/* 085674 7F050B44 C452000C */ lwc1 $f18, 0xc($v0) +/* 085678 7F050B48 8DF81270 */ lw $t8, 0x1270($t7) +/* 08567C 7F050B4C C4460010 */ lwc1 $f6, 0x10($v0) +/* 085680 7F050B50 C5C80058 */ lwc1 $f8, 0x58($t6) +/* 085684 7F050B54 C5D0005C */ lwc1 $f16, 0x5c($t6) +/* 085688 7F050B58 C5C40060 */ lwc1 $f4, 0x60($t6) +/* 08568C 7F050B5C 2B01003C */ slti $at, $t8, 0x3c +/* 085690 7F050B60 00404025 */ move $t0, $v0 +/* 085694 7F050B64 460A4001 */ sub.s $f0, $f8, $f10 +/* 085698 7F050B68 46128301 */ sub.s $f12, $f16, $f18 +/* 08569C 7F050B6C 14200022 */ bnez $at, .L7F050BF8 +/* 0856A0 7F050B70 46062081 */ sub.s $f2, $f4, $f6 +/* 0856A4 7F050B74 46000202 */ mul.s $f8, $f0, $f0 +/* 0856A8 7F050B78 3C018005 */ lui $at, %hi(D_800532E4) +/* 0856AC 7F050B7C C43232E4 */ lwc1 $f18, %lo(D_800532E4)($at) +/* 0856B0 7F050B80 46021282 */ mul.s $f10, $f2, $f2 +/* 0856B4 7F050B84 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 +/* 0856B8 7F050B88 00001025 */ move $v0, $zero +/* 0856BC 7F050B8C 460A4400 */ add.s $f16, $f8, $f10 +/* 0856C0 7F050B90 4612803E */ c.le.s $f16, $f18 +/* 0856C4 7F050B94 00000000 */ nop +/* 0856C8 7F050B98 45000002 */ bc1f .L7F050BA4 +/* 0856CC 7F050B9C 00000000 */ nop +/* 0856D0 7F050BA0 24020001 */ li $v0, 1 +.L7F050BA4: +/* 0856D4 7F050BA4 10400012 */ beqz $v0, .L7F050BF0 +/* 0856D8 7F050BA8 00403025 */ move $a2, $v0 +/* 0856DC 7F050BAC 44812000 */ mtc1 $at, $f4 +/* 0856E0 7F050BB0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0856E4 7F050BB4 00001025 */ move $v0, $zero +/* 0856E8 7F050BB8 460C203E */ c.le.s $f4, $f12 +/* 0856EC 7F050BBC 00000000 */ nop +/* 0856F0 7F050BC0 45000002 */ bc1f .L7F050BCC +/* 0856F4 7F050BC4 00000000 */ nop +/* 0856F8 7F050BC8 24020001 */ li $v0, 1 +.L7F050BCC: +/* 0856FC 7F050BCC 10400008 */ beqz $v0, .L7F050BF0 +/* 085700 7F050BD0 00403025 */ move $a2, $v0 +/* 085704 7F050BD4 44813000 */ mtc1 $at, $f6 +/* 085708 7F050BD8 00003025 */ move $a2, $zero +/* 08570C 7F050BDC 4606603E */ c.le.s $f12, $f6 +/* 085710 7F050BE0 00000000 */ nop +/* 085714 7F050BE4 45000002 */ bc1f .L7F050BF0 +/* 085718 7F050BE8 00000000 */ nop +/* 08571C 7F050BEC 24060001 */ li $a2, 1 +.L7F050BF0: +/* 085720 7F050BF0 10000021 */ b .L7F050C78 +/* 085724 7F050BF4 00C01825 */ move $v1, $a2 +.L7F050BF8: +/* 085728 7F050BF8 46000202 */ mul.s $f8, $f0, $f0 +/* 08572C 7F050BFC 3C018005 */ lui $at, %hi(D_800532E8) +/* 085730 7F050C00 C43032E8 */ lwc1 $f16, %lo(D_800532E8)($at) +/* 085734 7F050C04 46021282 */ mul.s $f10, $f2, $f2 +/* 085738 7F050C08 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 08573C 7F050C0C 00001025 */ move $v0, $zero +/* 085740 7F050C10 460A4480 */ add.s $f18, $f8, $f10 +/* 085744 7F050C14 4610903E */ c.le.s $f18, $f16 +/* 085748 7F050C18 00000000 */ nop +/* 08574C 7F050C1C 45000002 */ bc1f .L7F050C28 +/* 085750 7F050C20 00000000 */ nop +/* 085754 7F050C24 24020001 */ li $v0, 1 +.L7F050C28: +/* 085758 7F050C28 10400012 */ beqz $v0, .L7F050C74 +/* 08575C 7F050C2C 00403025 */ move $a2, $v0 +/* 085760 7F050C30 44812000 */ mtc1 $at, $f4 +/* 085764 7F050C34 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 085768 7F050C38 00001025 */ move $v0, $zero +/* 08576C 7F050C3C 460C203E */ c.le.s $f4, $f12 +/* 085770 7F050C40 00000000 */ nop +/* 085774 7F050C44 45000002 */ bc1f .L7F050C50 +/* 085778 7F050C48 00000000 */ nop +/* 08577C 7F050C4C 24020001 */ li $v0, 1 +.L7F050C50: +/* 085780 7F050C50 10400008 */ beqz $v0, .L7F050C74 +/* 085784 7F050C54 00403025 */ move $a2, $v0 +/* 085788 7F050C58 44813000 */ mtc1 $at, $f6 +/* 08578C 7F050C5C 00003025 */ move $a2, $zero +/* 085790 7F050C60 4606603E */ c.le.s $f12, $f6 +/* 085794 7F050C64 00000000 */ nop +/* 085798 7F050C68 45020003 */ bc1fl .L7F050C78 +/* 08579C 7F050C6C 00C01825 */ move $v1, $a2 +/* 0857A0 7F050C70 24060001 */ li $a2, 1 +.L7F050C74: +/* 0857A4 7F050C74 00C01825 */ move $v1, $a2 +.L7F050C78: +/* 0857A8 7F050C78 10C00022 */ beqz $a2, .L7F050D04 +/* 0857AC 7F050C7C 8FB90084 */ lw $t9, 0x84($sp) +/* 0857B0 7F050C80 8F29000C */ lw $t1, 0xc($t9) +/* 0857B4 7F050C84 8FA20088 */ lw $v0, 0x88($sp) +/* 0857B8 7F050C88 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0857BC 7F050C8C 312A1000 */ andi $t2, $t1, 0x1000 +/* 0857C0 7F050C90 1540001C */ bnez $t2, .L7F050D04 +/* 0857C4 7F050C94 27A4003C */ addiu $a0, $sp, 0x3c +/* 0857C8 7F050C98 8D0B0014 */ lw $t3, 0x14($t0) +/* 0857CC 7F050C9C 44810000 */ mtc1 $at, $f0 +/* 0857D0 7F050CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0857D4 7F050CA4 AFAB003C */ sw $t3, 0x3c($sp) +/* 0857D8 7F050CA8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0857DC 7F050CAC 8C470008 */ lw $a3, 8($v0) +/* 0857E0 7F050CB0 8D060010 */ lw $a2, 0x10($t0) +/* 0857E4 7F050CB4 8D050008 */ lw $a1, 8($t0) +/* 0857E8 7F050CB8 44818000 */ mtc1 $at, $f16 +/* 0857EC 7F050CBC 44805000 */ mtc1 $zero, $f10 +/* 0857F0 7F050CC0 240C0002 */ li $t4, 2 +/* 0857F4 7F050CC4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0857F8 7F050CC8 AFA30040 */ sw $v1, 0x40($sp) +/* 0857FC 7F050CCC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 085800 7F050CD0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 085804 7F050CD4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 085808 7F050CD8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 08580C 7F050CDC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 085810 7F050CE0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 085814 7F050CE4 10400006 */ beqz $v0, .L7F050D00 +/* 085818 7F050CE8 8FA30040 */ lw $v1, 0x40($sp) +/* 08581C 7F050CEC 8FAE0088 */ lw $t6, 0x88($sp) +/* 085820 7F050CF0 8FAD003C */ lw $t5, 0x3c($sp) +/* 085824 7F050CF4 8DCF0014 */ lw $t7, 0x14($t6) +/* 085828 7F050CF8 11AF0002 */ beq $t5, $t7, .L7F050D04 +/* 08582C 7F050CFC 00000000 */ nop +.L7F050D00: +/* 085830 7F050D00 00001825 */ move $v1, $zero +.L7F050D04: +/* 085834 7F050D04 10600006 */ beqz $v1, .L7F050D20 +/* 085838 7F050D08 00001025 */ move $v0, $zero +/* 08583C 7F050D0C 8FA40088 */ lw $a0, 0x88($sp) +/* 085840 7F050D10 0FC14094 */ jal collect_or_interact_object +/* 085844 7F050D14 24050001 */ li $a1, 1 +/* 085848 7F050D18 10000002 */ b .L7F050D24 +/* 08584C 7F050D1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D20: +/* 085850 7F050D20 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D24: +/* 085854 7F050D24 27BD0088 */ addiu $sp, $sp, 0x88 +/* 085858 7F050D28 03E00008 */ jr $ra +/* 08585C 7F050D2C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800532E0 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_800532E4 +.word 0x47ef4200 /*122500.0*/ +glabel D_800532E8 +.word 0x461c4000 /*10000.0*/ +glabel D_800532EC +.word 0x47742400 /*62500.0*/ +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel object_collectability_routines +/* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 085654 7F050AE4 AFBF0034 */ sw $ra, 0x34($sp) +/* 085658 7F050AE8 AFB00030 */ sw $s0, 0x30($sp) +/* 08565C 7F050AEC AFA40090 */ sw $a0, 0x90($sp) +/* 085660 7F050AF0 8C840004 */ lw $a0, 4($a0) +/* 085664 7F050AF4 0FC13904 */ jal check_if_collectable_object +/* 085668 7F050AF8 AFA4008C */ sw $a0, 0x8c($sp) +/* 08566C 7F050AFC 1040000B */ beqz $v0, .Ljp7F050B2C +/* 085670 7F050B00 8FA4008C */ lw $a0, 0x8c($sp) +/* 085674 7F050B04 908F0003 */ lbu $t7, 3($a0) +/* 085678 7F050B08 24010011 */ li $at, 17 +/* 08567C 7F050B0C 51E10008 */ beql $t7, $at, .Ljp7F050B30 +/* 085680 7F050B10 8FA4008C */ lw $a0, 0x8c($sp) +/* 085684 7F050B14 8C820008 */ lw $v0, 8($a0) +/* 085688 7F050B18 0002C2C0 */ sll $t8, $v0, 0xb +/* 08568C 7F050B1C 0703000B */ bgezl $t8, .Ljp7F050B4C +/* 085690 7F050B20 00024B00 */ sll $t1, $v0, 0xc +/* 085694 7F050B24 100001BC */ b .Ljp7F051218 +/* 085698 7F050B28 00001025 */ move $v0, $zero +.Ljp7F050B2C: +/* 08569C 7F050B2C 8FA4008C */ lw $a0, 0x8c($sp) +.Ljp7F050B30: +/* 0856A0 7F050B30 8C820008 */ lw $v0, 8($a0) +/* 0856A4 7F050B34 0002CB40 */ sll $t9, $v0, 0xd +/* 0856A8 7F050B38 07220004 */ bltzl $t9, .Ljp7F050B4C +/* 0856AC 7F050B3C 00024B00 */ sll $t1, $v0, 0xc +/* 0856B0 7F050B40 100001B5 */ b .Ljp7F051218 +/* 0856B4 7F050B44 00001025 */ move $v0, $zero +/* 0856B8 7F050B48 00024B00 */ sll $t1, $v0, 0xc +.Ljp7F050B4C: +/* 0856BC 7F050B4C 05230004 */ bgezl $t1, .Ljp7F050B60 +/* 0856C0 7F050B50 8C8A0064 */ lw $t2, 0x64($a0) +/* 0856C4 7F050B54 100001B0 */ b .Ljp7F051218 +/* 0856C8 7F050B58 00001025 */ move $v0, $zero +/* 0856CC 7F050B5C 8C8A0064 */ lw $t2, 0x64($a0) +.Ljp7F050B60: +/* 0856D0 7F050B60 314B0080 */ andi $t3, $t2, 0x80 +/* 0856D4 7F050B64 1160000A */ beqz $t3, .Ljp7F050B90 +/* 0856D8 7F050B68 00000000 */ nop +/* 0856DC 7F050B6C 8C82006C */ lw $v0, 0x6c($a0) +/* 0856E0 7F050B70 8C4C00BC */ lw $t4, 0xbc($v0) +/* 0856E4 7F050B74 19800006 */ blez $t4, .Ljp7F050B90 +/* 0856E8 7F050B78 00000000 */ nop +/* 0856EC 7F050B7C 8C4D0090 */ lw $t5, 0x90($v0) +/* 0856F0 7F050B80 15A00003 */ bnez $t5, .Ljp7F050B90 +/* 0856F4 7F050B84 00000000 */ nop +/* 0856F8 7F050B88 100001A3 */ b .Ljp7F051218 +/* 0856FC 7F050B8C 00001025 */ move $v0, $zero +.Ljp7F050B90: +/* 085700 7F050B90 0FC0FAAB */ jal sub_GAME_7F03E7AC +/* 085704 7F050B94 00000000 */ nop +/* 085708 7F050B98 14400003 */ bnez $v0, .Ljp7F050BA8 +/* 08570C 7F050B9C 8FA5008C */ lw $a1, 0x8c($sp) +/* 085710 7F050BA0 1000019D */ b .Ljp7F051218 +/* 085714 7F050BA4 00001025 */ move $v0, $zero +.Ljp7F050BA8: +/* 085718 7F050BA8 90A20003 */ lbu $v0, 3($a1) +/* 08571C 7F050BAC 24010008 */ li $at, 8 +/* 085720 7F050BB0 8FAE0090 */ lw $t6, 0x90($sp) +/* 085724 7F050BB4 54410060 */ bnel $v0, $at, .Ljp7F050D38 +/* 085728 7F050BB8 24010007 */ li $at, 7 +/* 08572C 7F050BBC 8DD00004 */ lw $s0, 4($t6) +/* 085730 7F050BC0 2401001A */ li $at, 26 +/* 085734 7F050BC4 82040080 */ lb $a0, 0x80($s0) +/* 085738 7F050BC8 10810003 */ beq $a0, $at, .Ljp7F050BD8 +/* 08573C 7F050BCC 24010057 */ li $at, 87 +/* 085740 7F050BD0 5481000B */ bnel $a0, $at, .Ljp7F050C00 +/* 085744 7F050BD4 2401001D */ li $at, 29 +.Ljp7F050BD8: +/* 085748 7F050BD8 860F0082 */ lh $t7, 0x82($s0) +/* 08574C 7F050BDC 05E10005 */ bgez $t7, .Ljp7F050BF4 +/* 085750 7F050BE0 00000000 */ nop +/* 085754 7F050BE4 8CB80064 */ lw $t8, 0x64($a1) +/* 085758 7F050BE8 33190004 */ andi $t9, $t8, 4 +/* 08575C 7F050BEC 53200004 */ beql $t9, $zero, .Ljp7F050C00 +/* 085760 7F050BF0 2401001D */ li $at, 29 +.Ljp7F050BF4: +/* 085764 7F050BF4 10000188 */ b .Ljp7F051218 +/* 085768 7F050BF8 00001025 */ move $v0, $zero +/* 08576C 7F050BFC 2401001D */ li $at, 29 +.Ljp7F050C00: +/* 085770 7F050C00 1081000D */ beq $a0, $at, .Ljp7F050C38 +/* 085774 7F050C04 2401001C */ li $at, 28 +/* 085778 7F050C08 1081000B */ beq $a0, $at, .Ljp7F050C38 +/* 08577C 7F050C0C 2401001B */ li $at, 27 +/* 085780 7F050C10 10810009 */ beq $a0, $at, .Ljp7F050C38 +/* 085784 7F050C14 24010021 */ li $at, 33 +/* 085788 7F050C18 10810007 */ beq $a0, $at, .Ljp7F050C38 +/* 08578C 7F050C1C 2401002F */ li $at, 47 +/* 085790 7F050C20 10810005 */ beq $a0, $at, .Ljp7F050C38 +/* 085794 7F050C24 24010030 */ li $at, 48 +/* 085798 7F050C28 10810003 */ beq $a0, $at, .Ljp7F050C38 +/* 08579C 7F050C2C 24010022 */ li $at, 34 +/* 0857A0 7F050C30 5481000B */ bnel $a0, $at, .Ljp7F050C60 +/* 0857A4 7F050C34 24010056 */ li $at, 86 +.Ljp7F050C38: +/* 0857A8 7F050C38 86090082 */ lh $t1, 0x82($s0) +/* 0857AC 7F050C3C 05210005 */ bgez $t1, .Ljp7F050C54 +/* 0857B0 7F050C40 00000000 */ nop +/* 0857B4 7F050C44 8CAA0064 */ lw $t2, 0x64($a1) +/* 0857B8 7F050C48 314B0004 */ andi $t3, $t2, 4 +/* 0857BC 7F050C4C 51600004 */ beql $t3, $zero, .Ljp7F050C60 +/* 0857C0 7F050C50 24010056 */ li $at, 86 +.Ljp7F050C54: +/* 0857C4 7F050C54 10000170 */ b .Ljp7F051218 +/* 0857C8 7F050C58 00001025 */ move $v0, $zero +/* 0857CC 7F050C5C 24010056 */ li $at, 86 +.Ljp7F050C60: +/* 0857D0 7F050C60 14810007 */ bne $a0, $at, .Ljp7F050C80 +/* 0857D4 7F050C64 00000000 */ nop +/* 0857D8 7F050C68 8CAC0064 */ lw $t4, 0x64($a1) +/* 0857DC 7F050C6C 318D0080 */ andi $t5, $t4, 0x80 +/* 0857E0 7F050C70 11A00003 */ beqz $t5, .Ljp7F050C80 +/* 0857E4 7F050C74 00000000 */ nop +/* 0857E8 7F050C78 10000167 */ b .Ljp7F051218 +/* 0857EC 7F050C7C 00001025 */ move $v0, $zero +.Ljp7F050C80: +/* 0857F0 7F050C80 0FC232E9 */ jal is_weapon_in_inv +/* 0857F4 7F050C84 00000000 */ nop +/* 0857F8 7F050C88 104000D9 */ beqz $v0, .Ljp7F050FF0 +/* 0857FC 7F050C8C 00000000 */ nop +/* 085800 7F050C90 0FC1A686 */ jal get_ammo_type_for_weapon +/* 085804 7F050C94 82040080 */ lb $a0, 0x80($s0) +/* 085808 7F050C98 104000D5 */ beqz $v0, .Ljp7F050FF0 +/* 08580C 7F050C9C 00000000 */ nop +/* 085810 7F050CA0 0FC1A68F */ jal get_ammo_count_for_weapon +/* 085814 7F050CA4 82040080 */ lb $a0, 0x80($s0) +/* 085818 7F050CA8 82040080 */ lb $a0, 0x80($s0) +/* 08581C 7F050CAC 0FC1A6A7 */ jal get_max_ammo_for_weapon +/* 085820 7F050CB0 AFA20040 */ sw $v0, 0x40($sp) +/* 085824 7F050CB4 8FA30040 */ lw $v1, 0x40($sp) +/* 085828 7F050CB8 0062082A */ slt $at, $v1, $v0 +/* 08582C 7F050CBC 142000CC */ bnez $at, .Ljp7F050FF0 +/* 085830 7F050CC0 00000000 */ nop +/* 085834 7F050CC4 8E020084 */ lw $v0, 0x84($s0) +/* 085838 7F050CC8 14400004 */ bnez $v0, .Ljp7F050CDC +/* 08583C 7F050CCC 00000000 */ nop +/* 085840 7F050CD0 820E0081 */ lb $t6, 0x81($s0) +/* 085844 7F050CD4 05C00015 */ bltz $t6, .Ljp7F050D2C +/* 085848 7F050CD8 00000000 */ nop +.Ljp7F050CDC: +/* 08584C 7F050CDC 50400005 */ beql $v0, $zero, .Ljp7F050CF4 +/* 085850 7F050CE0 82050081 */ lb $a1, 0x81($s0) +/* 085854 7F050CE4 80450080 */ lb $a1, 0x80($v0) +/* 085858 7F050CE8 10000003 */ b .Ljp7F050CF8 +/* 08585C 7F050CEC 00A02025 */ move $a0, $a1 +/* 085860 7F050CF0 82050081 */ lb $a1, 0x81($s0) +.Ljp7F050CF4: +/* 085864 7F050CF4 00A02025 */ move $a0, $a1 +.Ljp7F050CF8: +/* 085868 7F050CF8 8E0F0008 */ lw $t7, 8($s0) +/* 08586C 7F050CFC 000FC0C0 */ sll $t8, $t7, 3 +/* 085870 7F050D00 07030004 */ bgezl $t8, .Ljp7F050D14 +/* 085874 7F050D04 82040080 */ lb $a0, 0x80($s0) +/* 085878 7F050D08 10000002 */ b .Ljp7F050D14 +/* 08587C 7F050D0C 82050080 */ lb $a1, 0x80($s0) +/* 085880 7F050D10 82040080 */ lb $a0, 0x80($s0) +.Ljp7F050D14: +/* 085884 7F050D14 0FC2330B */ jal is_item_for_hand_in_inventory +/* 085888 7F050D18 00000000 */ nop +/* 08588C 7F050D1C 104000B4 */ beqz $v0, .Ljp7F050FF0 +/* 085890 7F050D20 00000000 */ nop +/* 085894 7F050D24 1000013C */ b .Ljp7F051218 +/* 085898 7F050D28 00001025 */ move $v0, $zero +.Ljp7F050D2C: +/* 08589C 7F050D2C 1000013A */ b .Ljp7F051218 +/* 0858A0 7F050D30 00001025 */ move $v0, $zero +/* 0858A4 7F050D34 24010007 */ li $at, 7 +.Ljp7F050D38: +/* 0858A8 7F050D38 14410035 */ bne $v0, $at, .Ljp7F050E10 +/* 0858AC 7F050D3C 8FB90090 */ lw $t9, 0x90($sp) +/* 0858B0 7F050D40 8F300004 */ lw $s0, 4($t9) +/* 0858B4 7F050D44 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory +/* 0858B8 7F050D48 8E040080 */ lw $a0, 0x80($s0) +/* 0858BC 7F050D4C 8E040080 */ lw $a0, 0x80($s0) +/* 0858C0 7F050D50 0FC1A630 */ jal get_max_ammo_for_type +/* 0858C4 7F050D54 AFA20040 */ sw $v0, 0x40($sp) +/* 0858C8 7F050D58 8FA30040 */ lw $v1, 0x40($sp) +/* 0858CC 7F050D5C 0062082A */ slt $at, $v1, $v0 +/* 0858D0 7F050D60 142000A3 */ bnez $at, .Ljp7F050FF0 +/* 0858D4 7F050D64 00000000 */ nop +/* 0858D8 7F050D68 8E020080 */ lw $v0, 0x80($s0) +/* 0858DC 7F050D6C 24010005 */ li $at, 5 +/* 0858E0 7F050D70 54410007 */ bnel $v0, $at, .Ljp7F050D90 +/* 0858E4 7F050D74 24010007 */ li $at, 7 +/* 0858E8 7F050D78 0FC232E9 */ jal is_weapon_in_inv +/* 0858EC 7F050D7C 2404001A */ li $a0, 26 +/* 0858F0 7F050D80 1040009B */ beqz $v0, .Ljp7F050FF0 +/* 0858F4 7F050D84 00000000 */ nop +/* 0858F8 7F050D88 8E020080 */ lw $v0, 0x80($s0) +/* 0858FC 7F050D8C 24010007 */ li $at, 7 +.Ljp7F050D90: +/* 085900 7F050D90 54410007 */ bnel $v0, $at, .Ljp7F050DB0 +/* 085904 7F050D94 24010008 */ li $at, 8 +/* 085908 7F050D98 0FC232E9 */ jal is_weapon_in_inv +/* 08590C 7F050D9C 2404001D */ li $a0, 29 +/* 085910 7F050DA0 10400093 */ beqz $v0, .Ljp7F050FF0 +/* 085914 7F050DA4 00000000 */ nop +/* 085918 7F050DA8 8E020080 */ lw $v0, 0x80($s0) +/* 08591C 7F050DAC 24010008 */ li $at, 8 +.Ljp7F050DB0: +/* 085920 7F050DB0 54410007 */ bnel $v0, $at, .Ljp7F050DD0 +/* 085924 7F050DB4 24010009 */ li $at, 9 +/* 085928 7F050DB8 0FC232E9 */ jal is_weapon_in_inv +/* 08592C 7F050DBC 2404001C */ li $a0, 28 +/* 085930 7F050DC0 1040008B */ beqz $v0, .Ljp7F050FF0 +/* 085934 7F050DC4 00000000 */ nop +/* 085938 7F050DC8 8E020080 */ lw $v0, 0x80($s0) +/* 08593C 7F050DCC 24010009 */ li $at, 9 +.Ljp7F050DD0: +/* 085940 7F050DD0 54410007 */ bnel $v0, $at, .Ljp7F050DF0 +/* 085944 7F050DD4 2401000A */ li $at, 10 +/* 085948 7F050DD8 0FC232E9 */ jal is_weapon_in_inv +/* 08594C 7F050DDC 2404001B */ li $a0, 27 +/* 085950 7F050DE0 10400083 */ beqz $v0, .Ljp7F050FF0 +/* 085954 7F050DE4 00000000 */ nop +/* 085958 7F050DE8 8E020080 */ lw $v0, 0x80($s0) +/* 08595C 7F050DEC 2401000A */ li $at, 10 +.Ljp7F050DF0: +/* 085960 7F050DF0 14410005 */ bne $v0, $at, .Ljp7F050E08 +/* 085964 7F050DF4 00000000 */ nop +/* 085968 7F050DF8 0FC232E9 */ jal is_weapon_in_inv +/* 08596C 7F050DFC 24040003 */ li $a0, 3 +/* 085970 7F050E00 1040007B */ beqz $v0, .Ljp7F050FF0 +/* 085974 7F050E04 00000000 */ nop +.Ljp7F050E08: +/* 085978 7F050E08 10000103 */ b .Ljp7F051218 +/* 08597C 7F050E0C 00001025 */ move $v0, $zero +.Ljp7F050E10: +/* 085980 7F050E10 24010014 */ li $at, 20 +/* 085984 7F050E14 1441004B */ bne $v0, $at, .Ljp7F050F44 +/* 085988 7F050E18 8FA90090 */ lw $t1, 0x90($sp) +/* 08598C 7F050E1C 8D300004 */ lw $s0, 4($t1) +/* 085990 7F050E20 240A0001 */ li $t2, 1 +/* 085994 7F050E24 AFAA0074 */ sw $t2, 0x74($sp) +/* 085998 7F050E28 0FC100B0 */ jal do_something_if_object_destroyed +/* 08599C 7F050E2C 00A02025 */ move $a0, $a1 +/* 0859A0 7F050E30 10400003 */ beqz $v0, .Ljp7F050E40 +/* 0859A4 7F050E34 02001825 */ move $v1, $s0 +/* 0859A8 7F050E38 100000F7 */ b .Ljp7F051218 +/* 0859AC 7F050E3C 00001025 */ move $v0, $zero +.Ljp7F050E40: +/* 0859B0 7F050E40 00001025 */ move $v0, $zero +.Ljp7F050E44: +/* 0859B4 7F050E44 24500001 */ addiu $s0, $v0, 1 +/* 0859B8 7F050E48 24010001 */ li $at, 1 +/* 0859BC 7F050E4C 14410002 */ bne $v0, $at, .Ljp7F050E58 +/* 0859C0 7F050E50 AFB0003C */ sw $s0, 0x3c($sp) +/* 0859C4 7F050E54 24100001 */ li $s0, 1 +.Ljp7F050E58: +/* 0859C8 7F050E58 AFA30038 */ sw $v1, 0x38($sp) +/* 0859CC 7F050E5C 946C0082 */ lhu $t4, 0x82($v1) +/* 0859D0 7F050E60 02002025 */ move $a0, $s0 +/* 0859D4 7F050E64 5980002E */ blezl $t4, .Ljp7F050F20 +/* 0859D8 7F050E68 8FA2003C */ lw $v0, 0x3c($sp) +/* 0859DC 7F050E6C 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory +/* 0859E0 7F050E70 AFA30038 */ sw $v1, 0x38($sp) +/* 0859E4 7F050E74 02002025 */ move $a0, $s0 +/* 0859E8 7F050E78 0FC1A630 */ jal get_max_ammo_for_type +/* 0859EC 7F050E7C AFA20040 */ sw $v0, 0x40($sp) +/* 0859F0 7F050E80 8FA30040 */ lw $v1, 0x40($sp) +/* 0859F4 7F050E84 0062082A */ slt $at, $v1, $v0 +/* 0859F8 7F050E88 50200004 */ beql $at, $zero, .Ljp7F050E9C +/* 0859FC 7F050E8C 24010005 */ li $at, 5 +/* 085A00 7F050E90 10000027 */ b .Ljp7F050F30 +/* 085A04 7F050E94 AFA00074 */ sw $zero, 0x74($sp) +/* 085A08 7F050E98 24010005 */ li $at, 5 +.Ljp7F050E9C: +/* 085A0C 7F050E9C 56010005 */ bnel $s0, $at, .Ljp7F050EB4 +/* 085A10 7F050EA0 24010007 */ li $at, 7 +/* 085A14 7F050EA4 0FC232E9 */ jal is_weapon_in_inv +/* 085A18 7F050EA8 2404001A */ li $a0, 26 +/* 085A1C 7F050EAC 10400019 */ beqz $v0, .Ljp7F050F14 +/* 085A20 7F050EB0 24010007 */ li $at, 7 +.Ljp7F050EB4: +/* 085A24 7F050EB4 56010005 */ bnel $s0, $at, .Ljp7F050ECC +/* 085A28 7F050EB8 24010008 */ li $at, 8 +/* 085A2C 7F050EBC 0FC232E9 */ jal is_weapon_in_inv +/* 085A30 7F050EC0 2404001D */ li $a0, 29 +/* 085A34 7F050EC4 10400013 */ beqz $v0, .Ljp7F050F14 +/* 085A38 7F050EC8 24010008 */ li $at, 8 +.Ljp7F050ECC: +/* 085A3C 7F050ECC 56010005 */ bnel $s0, $at, .Ljp7F050EE4 +/* 085A40 7F050ED0 24010009 */ li $at, 9 +/* 085A44 7F050ED4 0FC232E9 */ jal is_weapon_in_inv +/* 085A48 7F050ED8 2404001C */ li $a0, 28 +/* 085A4C 7F050EDC 1040000D */ beqz $v0, .Ljp7F050F14 +/* 085A50 7F050EE0 24010009 */ li $at, 9 +.Ljp7F050EE4: +/* 085A54 7F050EE4 56010005 */ bnel $s0, $at, .Ljp7F050EFC +/* 085A58 7F050EE8 2401000A */ li $at, 10 +/* 085A5C 7F050EEC 0FC232E9 */ jal is_weapon_in_inv +/* 085A60 7F050EF0 2404001B */ li $a0, 27 +/* 085A64 7F050EF4 10400007 */ beqz $v0, .Ljp7F050F14 +/* 085A68 7F050EF8 2401000A */ li $at, 10 +.Ljp7F050EFC: +/* 085A6C 7F050EFC 56010008 */ bnel $s0, $at, .Ljp7F050F20 +/* 085A70 7F050F00 8FA2003C */ lw $v0, 0x3c($sp) +/* 085A74 7F050F04 0FC232E9 */ jal is_weapon_in_inv +/* 085A78 7F050F08 24040003 */ li $a0, 3 +/* 085A7C 7F050F0C 54400004 */ bnezl $v0, .Ljp7F050F20 +/* 085A80 7F050F10 8FA2003C */ lw $v0, 0x3c($sp) +.Ljp7F050F14: +/* 085A84 7F050F14 10000006 */ b .Ljp7F050F30 +/* 085A88 7F050F18 AFA00074 */ sw $zero, 0x74($sp) +/* 085A8C 7F050F1C 8FA2003C */ lw $v0, 0x3c($sp) +.Ljp7F050F20: +/* 085A90 7F050F20 8FA30038 */ lw $v1, 0x38($sp) +/* 085A94 7F050F24 2401000D */ li $at, 13 +/* 085A98 7F050F28 1441FFC6 */ bne $v0, $at, .Ljp7F050E44 +/* 085A9C 7F050F2C 24630004 */ addiu $v1, $v1, 4 +.Ljp7F050F30: +/* 085AA0 7F050F30 8FAD0074 */ lw $t5, 0x74($sp) +/* 085AA4 7F050F34 11A0002E */ beqz $t5, .Ljp7F050FF0 +/* 085AA8 7F050F38 00000000 */ nop +/* 085AAC 7F050F3C 100000B6 */ b .Ljp7F051218 +/* 085AB0 7F050F40 00001025 */ move $v0, $zero +.Ljp7F050F44: +/* 085AB4 7F050F44 24010015 */ li $at, 21 +/* 085AB8 7F050F48 14410029 */ bne $v0, $at, .Ljp7F050FF0 +/* 085ABC 7F050F4C 8FAE0090 */ lw $t6, 0x90($sp) +/* 085AC0 7F050F50 8DD00004 */ lw $s0, 4($t6) +/* 085AC4 7F050F54 0FC22A8D */ jal get_BONDdata_watch_armor +/* 085AC8 7F050F58 AFA00064 */ sw $zero, 0x64($sp) +/* 085ACC 7F050F5C C6040084 */ lwc1 $f4, 0x84($s0) +/* 085AD0 7F050F60 240F0001 */ li $t7, 1 +/* 085AD4 7F050F64 4600203E */ c.le.s $f4, $f0 +/* 085AD8 7F050F68 00000000 */ nop +/* 085ADC 7F050F6C 45000003 */ bc1f .Ljp7F050F7C +/* 085AE0 7F050F70 00000000 */ nop +/* 085AE4 7F050F74 10000019 */ b .Ljp7F050FDC +/* 085AE8 7F050F78 AFAF0064 */ sw $t7, 0x64($sp) +.Ljp7F050F7C: +/* 085AEC 7F050F7C 0FC26C01 */ jal get_num_players +/* 085AF0 7F050F80 00000000 */ nop +/* 085AF4 7F050F84 28410002 */ slti $at, $v0, 2 +/* 085AF8 7F050F88 54200015 */ bnezl $at, .Ljp7F050FE0 +/* 085AFC 7F050F8C 8FA90064 */ lw $t1, 0x64($sp) +/* 085B00 7F050F90 0FC05202 */ jal get_scenario +/* 085B04 7F050F94 00000000 */ nop +/* 085B08 7F050F98 24010002 */ li $at, 2 +/* 085B0C 7F050F9C 14410007 */ bne $v0, $at, .Ljp7F050FBC +/* 085B10 7F050FA0 00408025 */ move $s0, $v0 +/* 085B14 7F050FA4 0FC23639 */ jal bondinvIsAliveWithFlag +/* 085B18 7F050FA8 00000000 */ nop +/* 085B1C 7F050FAC 10400003 */ beqz $v0, .Ljp7F050FBC +/* 085B20 7F050FB0 24180001 */ li $t8, 1 +/* 085B24 7F050FB4 10000009 */ b .Ljp7F050FDC +/* 085B28 7F050FB8 AFB80064 */ sw $t8, 0x64($sp) +.Ljp7F050FBC: +/* 085B2C 7F050FBC 24010003 */ li $at, 3 +/* 085B30 7F050FC0 56010007 */ bnel $s0, $at, .Ljp7F050FE0 +/* 085B34 7F050FC4 8FA90064 */ lw $t1, 0x64($sp) +/* 085B38 7F050FC8 0FC23649 */ jal checkforgoldengun +/* 085B3C 7F050FCC 00000000 */ nop +/* 085B40 7F050FD0 10400002 */ beqz $v0, .Ljp7F050FDC +/* 085B44 7F050FD4 24190001 */ li $t9, 1 +/* 085B48 7F050FD8 AFB90064 */ sw $t9, 0x64($sp) +.Ljp7F050FDC: +/* 085B4C 7F050FDC 8FA90064 */ lw $t1, 0x64($sp) +.Ljp7F050FE0: +/* 085B50 7F050FE0 11200003 */ beqz $t1, .Ljp7F050FF0 +/* 085B54 7F050FE4 00000000 */ nop +/* 085B58 7F050FE8 1000008B */ b .Ljp7F051218 +/* 085B5C 7F050FEC 00001025 */ move $v0, $zero +.Ljp7F050FF0: +/* 085B60 7F050FF0 0FC22992 */ jal get_curplay_vertical_rotation_in_degrees +/* 085B64 7F050FF4 00000000 */ nop +/* 085B68 7F050FF8 3C018005 */ lui $at, %hi(D_800532E0) # $at, 0x8005 +/* 085B6C 7F050FFC C4263310 */ lwc1 $f6, %lo(D_800532E0)($at) +/* 085B70 7F051000 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 085B74 7F051004 4606003C */ c.lt.s $f0, $f6 +/* 085B78 7F051008 00000000 */ nop +/* 085B7C 7F05100C 45000007 */ bc1f .Ljp7F05102C +/* 085B80 7F051010 00000000 */ nop +/* 085B84 7F051014 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 085B88 7F051018 8D4B1270 */ lw $t3, 0x1270($t2) +/* 085B8C 7F05101C 05610003 */ bgez $t3, .Ljp7F05102C +/* 085B90 7F051020 00000000 */ nop +/* 085B94 7F051024 1000007C */ b .Ljp7F051218 +/* 085B98 7F051028 00001025 */ move $v0, $zero +.Ljp7F05102C: +/* 085B9C 7F05102C 0FC2279B */ jal get_curplayer_positiondata +/* 085BA0 7F051030 00000000 */ nop +/* 085BA4 7F051034 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 085BA8 7F051038 8FAC008C */ lw $t4, 0x8c($sp) +/* 085BAC 7F05103C 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 085BB0 7F051040 C44A0008 */ lwc1 $f10, 8($v0) +/* 085BB4 7F051044 C452000C */ lwc1 $f18, 0xc($v0) +/* 085BB8 7F051048 8DAE1270 */ lw $t6, 0x1270($t5) +/* 085BBC 7F05104C C4460010 */ lwc1 $f6, 0x10($v0) +/* 085BC0 7F051050 C5880058 */ lwc1 $f8, 0x58($t4) +/* 085BC4 7F051054 C590005C */ lwc1 $f16, 0x5c($t4) +/* 085BC8 7F051058 C5840060 */ lwc1 $f4, 0x60($t4) +/* 085BCC 7F05105C 29C1003C */ slti $at, $t6, 0x3c +/* 085BD0 7F051060 00404025 */ move $t0, $v0 +/* 085BD4 7F051064 460A4001 */ sub.s $f0, $f8, $f10 +/* 085BD8 7F051068 46128301 */ sub.s $f12, $f16, $f18 +/* 085BDC 7F05106C 14200022 */ bnez $at, .Ljp7F0510F8 +/* 085BE0 7F051070 46062081 */ sub.s $f2, $f4, $f6 +/* 085BE4 7F051074 46000202 */ mul.s $f8, $f0, $f0 +/* 085BE8 7F051078 3C018005 */ lui $at, %hi(D_800532E4) # $at, 0x8005 +/* 085BEC 7F05107C C4323314 */ lwc1 $f18, %lo(D_800532E4)($at) +/* 085BF0 7F051080 46021282 */ mul.s $f10, $f2, $f2 +/* 085BF4 7F051084 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 +/* 085BF8 7F051088 00001025 */ move $v0, $zero +/* 085BFC 7F05108C 460A4400 */ add.s $f16, $f8, $f10 +/* 085C00 7F051090 4612803E */ c.le.s $f16, $f18 +/* 085C04 7F051094 00000000 */ nop +/* 085C08 7F051098 45000002 */ bc1f .Ljp7F0510A4 +/* 085C0C 7F05109C 00000000 */ nop +/* 085C10 7F0510A0 24020001 */ li $v0, 1 +.Ljp7F0510A4: +/* 085C14 7F0510A4 10400012 */ beqz $v0, .Ljp7F0510F0 +/* 085C18 7F0510A8 00401825 */ move $v1, $v0 +/* 085C1C 7F0510AC 44812000 */ mtc1 $at, $f4 +/* 085C20 7F0510B0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 085C24 7F0510B4 00001025 */ move $v0, $zero +/* 085C28 7F0510B8 460C203E */ c.le.s $f4, $f12 +/* 085C2C 7F0510BC 00000000 */ nop +/* 085C30 7F0510C0 45000002 */ bc1f .Ljp7F0510CC +/* 085C34 7F0510C4 00000000 */ nop +/* 085C38 7F0510C8 24020001 */ li $v0, 1 +.Ljp7F0510CC: +/* 085C3C 7F0510CC 10400008 */ beqz $v0, .Ljp7F0510F0 +/* 085C40 7F0510D0 00401825 */ move $v1, $v0 +/* 085C44 7F0510D4 44813000 */ mtc1 $at, $f6 +/* 085C48 7F0510D8 00001825 */ move $v1, $zero +/* 085C4C 7F0510DC 4606603E */ c.le.s $f12, $f6 +/* 085C50 7F0510E0 00000000 */ nop +/* 085C54 7F0510E4 45000002 */ bc1f .Ljp7F0510F0 +/* 085C58 7F0510E8 00000000 */ nop +/* 085C5C 7F0510EC 24030001 */ li $v1, 1 +.Ljp7F0510F0: +/* 085C60 7F0510F0 10000021 */ b .Ljp7F051178 +/* 085C64 7F0510F4 00608025 */ move $s0, $v1 +.Ljp7F0510F8: +/* 085C68 7F0510F8 46000202 */ mul.s $f8, $f0, $f0 +/* 085C6C 7F0510FC 3C018005 */ lui $at, %hi(D_800532E8) # $at, 0x8005 +/* 085C70 7F051100 C4303318 */ lwc1 $f16, %lo(D_800532E8)($at) +/* 085C74 7F051104 46021282 */ mul.s $f10, $f2, $f2 +/* 085C78 7F051108 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 085C7C 7F05110C 00001025 */ move $v0, $zero +/* 085C80 7F051110 460A4480 */ add.s $f18, $f8, $f10 +/* 085C84 7F051114 4610903E */ c.le.s $f18, $f16 +/* 085C88 7F051118 00000000 */ nop +/* 085C8C 7F05111C 45000002 */ bc1f .Ljp7F051128 +/* 085C90 7F051120 00000000 */ nop +/* 085C94 7F051124 24020001 */ li $v0, 1 +.Ljp7F051128: +/* 085C98 7F051128 10400012 */ beqz $v0, .Ljp7F051174 +/* 085C9C 7F05112C 00401825 */ move $v1, $v0 +/* 085CA0 7F051130 44812000 */ mtc1 $at, $f4 +/* 085CA4 7F051134 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 085CA8 7F051138 00001025 */ move $v0, $zero +/* 085CAC 7F05113C 460C203E */ c.le.s $f4, $f12 +/* 085CB0 7F051140 00000000 */ nop +/* 085CB4 7F051144 45000002 */ bc1f .Ljp7F051150 +/* 085CB8 7F051148 00000000 */ nop +/* 085CBC 7F05114C 24020001 */ li $v0, 1 +.Ljp7F051150: +/* 085CC0 7F051150 10400008 */ beqz $v0, .Ljp7F051174 +/* 085CC4 7F051154 00401825 */ move $v1, $v0 +/* 085CC8 7F051158 44813000 */ mtc1 $at, $f6 +/* 085CCC 7F05115C 00001825 */ move $v1, $zero +/* 085CD0 7F051160 4606603E */ c.le.s $f12, $f6 +/* 085CD4 7F051164 00000000 */ nop +/* 085CD8 7F051168 45020003 */ bc1fl .Ljp7F051178 +/* 085CDC 7F05116C 00608025 */ move $s0, $v1 +/* 085CE0 7F051170 24030001 */ li $v1, 1 +.Ljp7F051174: +/* 085CE4 7F051174 00608025 */ move $s0, $v1 +.Ljp7F051178: +/* 085CE8 7F051178 10600020 */ beqz $v1, .Ljp7F0511FC +/* 085CEC 7F05117C 8FAF008C */ lw $t7, 0x8c($sp) +/* 085CF0 7F051180 8DF8000C */ lw $t8, 0xc($t7) +/* 085CF4 7F051184 8FA20090 */ lw $v0, 0x90($sp) +/* 085CF8 7F051188 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 085CFC 7F05118C 33191000 */ andi $t9, $t8, 0x1000 +/* 085D00 7F051190 1720001A */ bnez $t9, .Ljp7F0511FC +/* 085D04 7F051194 27A40044 */ addiu $a0, $sp, 0x44 +/* 085D08 7F051198 8D090014 */ lw $t1, 0x14($t0) +/* 085D0C 7F05119C 44810000 */ mtc1 $at, $f0 +/* 085D10 7F0511A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 085D14 7F0511A4 AFA90044 */ sw $t1, 0x44($sp) +/* 085D18 7F0511A8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 085D1C 7F0511AC 8C470008 */ lw $a3, 8($v0) +/* 085D20 7F0511B0 8D060010 */ lw $a2, 0x10($t0) +/* 085D24 7F0511B4 8D050008 */ lw $a1, 8($t0) +/* 085D28 7F0511B8 44818000 */ mtc1 $at, $f16 +/* 085D2C 7F0511BC 44805000 */ mtc1 $zero, $f10 +/* 085D30 7F0511C0 240A0002 */ li $t2, 2 +/* 085D34 7F0511C4 AFAA0014 */ sw $t2, 0x14($sp) +/* 085D38 7F0511C8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 085D3C 7F0511CC E7A00018 */ swc1 $f0, 0x18($sp) +/* 085D40 7F0511D0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 085D44 7F0511D4 E7B00024 */ swc1 $f16, 0x24($sp) +/* 085D48 7F0511D8 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 085D4C 7F0511DC E7AA0020 */ swc1 $f10, 0x20($sp) +/* 085D50 7F0511E0 10400005 */ beqz $v0, .Ljp7F0511F8 +/* 085D54 7F0511E4 8FAC0090 */ lw $t4, 0x90($sp) +/* 085D58 7F0511E8 8FAB0044 */ lw $t3, 0x44($sp) +/* 085D5C 7F0511EC 8D8D0014 */ lw $t5, 0x14($t4) +/* 085D60 7F0511F0 116D0002 */ beq $t3, $t5, .Ljp7F0511FC +/* 085D64 7F0511F4 00000000 */ nop +.Ljp7F0511F8: +/* 085D68 7F0511F8 00008025 */ move $s0, $zero +.Ljp7F0511FC: +/* 085D6C 7F0511FC 12000006 */ beqz $s0, .Ljp7F051218 +/* 085D70 7F051200 00001025 */ move $v0, $zero +/* 085D74 7F051204 8FA40090 */ lw $a0, 0x90($sp) +/* 085D78 7F051208 0FC14195 */ jal collect_or_interact_object +/* 085D7C 7F05120C 24050001 */ li $a1, 1 +/* 085D80 7F051210 10000002 */ b .Ljp7F05121C +/* 085D84 7F051214 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F051218: +/* 085D88 7F051218 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F05121C: +/* 085D8C 7F05121C 8FB00030 */ lw $s0, 0x30($sp) +/* 085D90 7F051220 27BD0090 */ addiu $sp, $sp, 0x90 +/* 085D94 7F051224 03E00008 */ jr $ra +/* 085D98 7F051228 00000000 */ nop +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F050D30(void) { + +} +#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 +void sub_GAME_7F050DE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F050DE8 +/* 085918 7F050DE8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 08591C 7F050DEC AFBF003C */ sw $ra, 0x3c($sp) +/* 085920 7F050DF0 AFBE0038 */ sw $fp, 0x38($sp) +/* 085924 7F050DF4 AFB70034 */ sw $s7, 0x34($sp) +/* 085928 7F050DF8 AFB60030 */ sw $s6, 0x30($sp) +/* 08592C 7F050DFC AFB5002C */ sw $s5, 0x2c($sp) +/* 085930 7F050E00 AFB40028 */ sw $s4, 0x28($sp) +/* 085934 7F050E04 AFB30024 */ sw $s3, 0x24($sp) +/* 085938 7F050E08 AFB20020 */ sw $s2, 0x20($sp) +/* 08593C 7F050E0C AFB1001C */ sw $s1, 0x1c($sp) +/* 085940 7F050E10 AFB00018 */ sw $s0, 0x18($sp) +/* 085944 7F050E14 8C940008 */ lw $s4, 8($a0) +/* 085948 7F050E18 00809825 */ move $s3, $a0 +/* 08594C 7F050E1C 24150008 */ li $s5, 8 +/* 085950 7F050E20 8E900000 */ lw $s0, ($s4) +/* 085954 7F050E24 24160012 */ li $s6, 18 +/* 085958 7F050E28 24170017 */ li $s7, 23 +/* 08595C 7F050E2C 1200003C */ beqz $s0, .L7F050F20 +/* 085960 7F050E30 241E0018 */ li $fp, 24 +/* 085964 7F050E34 96020000 */ lhu $v0, ($s0) +.L7F050E38: +/* 085968 7F050E38 02602025 */ move $a0, $s3 +/* 08596C 7F050E3C 304E00FF */ andi $t6, $v0, 0xff +/* 085970 7F050E40 11D5001C */ beq $t6, $s5, .L7F050EB4 +/* 085974 7F050E44 00000000 */ nop +/* 085978 7F050E48 11D6001E */ beq $t6, $s6, .L7F050EC4 +/* 08597C 7F050E4C 02602025 */ move $a0, $s3 +/* 085980 7F050E50 11D70020 */ beq $t6, $s7, .L7F050ED4 +/* 085984 7F050E54 02602025 */ move $a0, $s3 +/* 085988 7F050E58 11DE0003 */ beq $t6, $fp, .L7F050E68 +/* 08598C 7F050E5C 02602025 */ move $a0, $s3 +/* 085990 7F050E60 1000001F */ b .L7F050EE0 +/* 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 +/* 0859A0 7F050E70 02002825 */ move $a1, $s0 +/* 0859A4 7F050E74 8E4F0008 */ lw $t7, 8($s2) +/* 0859A8 7F050E78 8C580000 */ lw $t8, ($v0) +/* 0859AC 7F050E7C 00408825 */ move $s1, $v0 +/* 0859B0 7F050E80 02802025 */ move $a0, $s4 +/* 0859B4 7F050E84 11F80009 */ beq $t7, $t8, .L7F050EAC +/* 0859B8 7F050E88 00000000 */ nop +/* 0859BC 7F050E8C 0FC12D64 */ jal sub_GAME_7F04B590 +/* 0859C0 7F050E90 02002825 */ move $a1, $s0 +/* 0859C4 7F050E94 10400005 */ beqz $v0, .L7F050EAC +/* 0859C8 7F050E98 00000000 */ nop +/* 0859CC 7F050E9C 0FC27011 */ jal sub_GAME_7F09C044 +/* 0859D0 7F050EA0 8E240000 */ lw $a0, ($s1) +/* 0859D4 7F050EA4 8E590008 */ lw $t9, 8($s2) +/* 0859D8 7F050EA8 AE390000 */ sw $t9, ($s1) +.L7F050EAC: +/* 0859DC 7F050EAC 1000000C */ b .L7F050EE0 +/* 0859E0 7F050EB0 8E020014 */ lw $v0, 0x14($s0) +.L7F050EB4: +/* 0859E4 7F050EB4 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0859E8 7F050EB8 02002825 */ move $a1, $s0 +/* 0859EC 7F050EBC 10000008 */ b .L7F050EE0 +/* 0859F0 7F050EC0 8E020014 */ lw $v0, 0x14($s0) +.L7F050EC4: +/* 0859F4 7F050EC4 0FC1BA6F */ jal process_12_handle_switch +/* 0859F8 7F050EC8 02002825 */ move $a1, $s0 +/* 0859FC 7F050ECC 10000004 */ b .L7F050EE0 +/* 085A00 7F050ED0 8E020014 */ lw $v0, 0x14($s0) +.L7F050ED4: +/* 085A04 7F050ED4 0FC1BA82 */ jal process_17_pointer_to_head +/* 085A08 7F050ED8 02002825 */ move $a1, $s0 +/* 085A0C 7F050EDC 8E020014 */ lw $v0, 0x14($s0) +.L7F050EE0: +/* 085A10 7F050EE0 10400003 */ beqz $v0, .L7F050EF0 +/* 085A14 7F050EE4 00000000 */ nop +/* 085A18 7F050EE8 1000000B */ b .L7F050F18 +/* 085A1C 7F050EEC 00408025 */ move $s0, $v0 +.L7F050EF0: +/* 085A20 7F050EF0 12000009 */ beqz $s0, .L7F050F18 +/* 085A24 7F050EF4 00000000 */ nop +/* 085A28 7F050EF8 8E02000C */ lw $v0, 0xc($s0) +.L7F050EFC: +/* 085A2C 7F050EFC 50400004 */ beql $v0, $zero, .L7F050F10 +/* 085A30 7F050F00 8E100008 */ lw $s0, 8($s0) +/* 085A34 7F050F04 10000004 */ b .L7F050F18 +/* 085A38 7F050F08 00408025 */ move $s0, $v0 +/* 085A3C 7F050F0C 8E100008 */ lw $s0, 8($s0) +.L7F050F10: +/* 085A40 7F050F10 5600FFFA */ bnezl $s0, .L7F050EFC +/* 085A44 7F050F14 8E02000C */ lw $v0, 0xc($s0) +.L7F050F18: +/* 085A48 7F050F18 5600FFC7 */ bnezl $s0, .L7F050E38 +/* 085A4C 7F050F1C 96020000 */ lhu $v0, ($s0) +.L7F050F20: +/* 085A50 7F050F20 8FBF003C */ lw $ra, 0x3c($sp) +/* 085A54 7F050F24 8FB00018 */ lw $s0, 0x18($sp) +/* 085A58 7F050F28 8FB1001C */ lw $s1, 0x1c($sp) +/* 085A5C 7F050F2C 8FB20020 */ lw $s2, 0x20($sp) +/* 085A60 7F050F30 8FB30024 */ lw $s3, 0x24($sp) +/* 085A64 7F050F34 8FB40028 */ lw $s4, 0x28($sp) +/* 085A68 7F050F38 8FB5002C */ lw $s5, 0x2c($sp) +/* 085A6C 7F050F3C 8FB60030 */ lw $s6, 0x30($sp) +/* 085A70 7F050F40 8FB70034 */ lw $s7, 0x34($sp) +/* 085A74 7F050F44 8FBE0038 */ lw $fp, 0x38($sp) +/* 085A78 7F050F48 03E00008 */ jr $ra +/* 085A7C 7F050F4C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F050F50(void) { + +} +#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 set_obj_instance_controller_scale +/* 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 sub_GAME_7F03A5A4 +/* 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) { + +} +#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 load_model +/* 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 sub_GAME_7F051084(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051084 +/* 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 +void sub_GAME_7F0510C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0510C0 +/* 085BF0 7F0510C0 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 085BF4 7F0510C4 00057080 */ sll $t6, $a1, 2 +/* 085BF8 7F0510C8 01C57023 */ subu $t6, $t6, $a1 +/* 085BFC 7F0510CC 000E7080 */ sll $t6, $t6, 2 +/* 085C00 7F0510D0 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 085C04 7F0510D4 01EE7821 */ addu $t7, $t7, $t6 +/* 085C08 7F0510D8 8DEFA228 */ lw $t7, %lo(PitemZ_entries)($t7) +/* 085C0C 7F0510DC AFBF002C */ sw $ra, 0x2c($sp) +/* 085C10 7F0510E0 AFA400C0 */ sw $a0, 0xc0($sp) +/* 085C14 7F0510E4 AFB20028 */ sw $s2, 0x28($sp) +/* 085C18 7F0510E8 AFB10024 */ sw $s1, 0x24($sp) +/* 085C1C 7F0510EC AFB00020 */ sw $s0, 0x20($sp) +/* 085C20 7F0510F0 AFA600C8 */ sw $a2, 0xc8($sp) +/* 085C24 7F0510F4 00A02025 */ move $a0, $a1 +/* 085C28 7F0510F8 AFA500C4 */ sw $a1, 0xc4($sp) +/* 085C2C 7F0510FC 0FC15B0E */ jal load_model +/* 085C30 7F051100 AFAF00BC */ sw $t7, 0xbc($sp) +/* 085C34 7F051104 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 085C38 7F051108 00000000 */ nop +/* 085C3C 7F05110C 00408025 */ move $s0, $v0 +/* 085C40 7F051110 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 085C44 7F051114 8FA400BC */ lw $a0, 0xbc($sp) +/* 085C48 7F051118 00408825 */ move $s1, $v0 +/* 085C4C 7F05111C 2E040001 */ sltiu $a0, $s0, 1 +/* 085C50 7F051120 2C450001 */ sltiu $a1, $v0, 1 +/* 085C54 7F051124 0FC1456C */ jal sub_GAME_7F0515B0 +/* 085C58 7F051128 8FA600BC */ lw $a2, 0xbc($sp) +/* 085C5C 7F05112C 16000004 */ bnez $s0, .L7F051140 +/* 085C60 7F051130 00409025 */ move $s2, $v0 +/* 085C64 7F051134 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 085C68 7F051138 00000000 */ nop +/* 085C6C 7F05113C 00408025 */ move $s0, $v0 +.L7F051140: +/* 085C70 7F051140 16200004 */ bnez $s1, .L7F051154 +/* 085C74 7F051144 00000000 */ nop +/* 085C78 7F051148 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 085C7C 7F05114C 8FA400BC */ lw $a0, 0xbc($sp) +/* 085C80 7F051150 00408825 */ move $s1, $v0 +.L7F051154: +/* 085C84 7F051154 12400035 */ beqz $s2, .L7F05122C +/* 085C88 7F051158 00000000 */ nop +/* 085C8C 7F05115C 12000033 */ beqz $s0, .L7F05122C +/* 085C90 7F051160 00000000 */ nop +/* 085C94 7F051164 12200031 */ beqz $s1, .L7F05122C +/* 085C98 7F051168 27A20030 */ addiu $v0, $sp, 0x30 +/* 085C9C 7F05116C 3C188003 */ lui $t8, %hi(blank_11_object) +/* 085CA0 7F051170 27182114 */ addiu $t8, %lo(blank_11_object) # addiu $t8, $t8, 0x2114 +/* 085CA4 7F051174 8FA500C0 */ lw $a1, 0xc0($sp) +/* 085CA8 7F051178 27080078 */ addiu $t0, $t8, 0x78 +/* 085CAC 7F05117C 00404825 */ move $t1, $v0 +.L7F051180: +/* 085CB0 7F051180 8F010000 */ lw $at, ($t8) +/* 085CB4 7F051184 2718000C */ addiu $t8, $t8, 0xc +/* 085CB8 7F051188 2529000C */ addiu $t1, $t1, 0xc +/* 085CBC 7F05118C AD21FFF4 */ sw $at, -0xc($t1) +/* 085CC0 7F051190 8F01FFF8 */ lw $at, -8($t8) +/* 085CC4 7F051194 AD21FFF8 */ sw $at, -8($t1) +/* 085CC8 7F051198 8F01FFFC */ lw $at, -4($t8) +/* 085CCC 7F05119C 1708FFF8 */ bne $t8, $t0, .L7F051180 +/* 085CD0 7F0511A0 AD21FFFC */ sw $at, -4($t1) +/* 085CD4 7F0511A4 8F010000 */ lw $at, ($t8) +/* 085CD8 7F0511A8 00406025 */ move $t4, $v0 +/* 085CDC 7F0511AC 02406825 */ move $t5, $s2 +/* 085CE0 7F0511B0 AD210000 */ sw $at, ($t1) +/* 085CE4 7F0511B4 8F080004 */ lw $t0, 4($t8) +/* 085CE8 7F0511B8 244B0078 */ addiu $t3, $v0, 0x78 +/* 085CEC 7F0511BC AD280004 */ sw $t0, 4($t1) +.L7F0511C0: +/* 085CF0 7F0511C0 8D810000 */ lw $at, ($t4) +/* 085CF4 7F0511C4 258C000C */ addiu $t4, $t4, 0xc +/* 085CF8 7F0511C8 25AD000C */ addiu $t5, $t5, 0xc +/* 085CFC 7F0511CC ADA1FFF4 */ sw $at, -0xc($t5) +/* 085D00 7F0511D0 8D81FFF8 */ lw $at, -8($t4) +/* 085D04 7F0511D4 ADA1FFF8 */ sw $at, -8($t5) +/* 085D08 7F0511D8 8D81FFFC */ lw $at, -4($t4) +/* 085D0C 7F0511DC 158BFFF8 */ bne $t4, $t3, .L7F0511C0 +/* 085D10 7F0511E0 ADA1FFFC */ sw $at, -4($t5) +/* 085D14 7F0511E4 8D810000 */ lw $at, ($t4) +/* 085D18 7F0511E8 02402025 */ move $a0, $s2 +/* 085D1C 7F0511EC 02003825 */ move $a3, $s0 +/* 085D20 7F0511F0 ADA10000 */ sw $at, ($t5) +/* 085D24 7F0511F4 8D8B0004 */ lw $t3, 4($t4) +/* 085D28 7F0511F8 ADAB0004 */ sw $t3, 4($t5) +/* 085D2C 7F0511FC 8FAE00C4 */ lw $t6, 0xc4($sp) +/* 085D30 7F051200 A64E0004 */ sh $t6, 4($s2) +/* 085D34 7F051204 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 085D38 7F051208 35F94000 */ ori $t9, $t7, 0x4000 +/* 085D3C 7F05120C AE590008 */ sw $t9, 8($s2) +/* 085D40 7F051210 84A80000 */ lh $t0, ($a1) +/* 085D44 7F051214 A6480006 */ sh $t0, 6($s2) +/* 085D48 7F051218 AFB10010 */ sw $s1, 0x10($sp) +/* 085D4C 7F05121C 0FC143D4 */ jal sub_GAME_7F050F50 +/* 085D50 7F051220 8FA600BC */ lw $a2, 0xbc($sp) +/* 085D54 7F051224 1000000A */ b .L7F051250 +/* 085D58 7F051228 00408025 */ move $s0, $v0 +.L7F05122C: +/* 085D5C 7F05122C 12200003 */ beqz $s1, .L7F05123C +/* 085D60 7F051230 00000000 */ nop +/* 085D64 7F051234 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 085D68 7F051238 02202025 */ move $a0, $s1 +.L7F05123C: +/* 085D6C 7F05123C 52000005 */ beql $s0, $zero, .L7F051254 +/* 085D70 7F051240 8FBF002C */ lw $ra, 0x2c($sp) +/* 085D74 7F051244 0FC0E921 */ jal set_last_obj_pos_data +/* 085D78 7F051248 02002025 */ move $a0, $s0 +/* 085D7C 7F05124C 00008025 */ move $s0, $zero +.L7F051250: +/* 085D80 7F051250 8FBF002C */ lw $ra, 0x2c($sp) +.L7F051254: +/* 085D84 7F051254 02001025 */ move $v0, $s0 +/* 085D88 7F051258 8FB00020 */ lw $s0, 0x20($sp) +/* 085D8C 7F05125C 8FB10024 */ lw $s1, 0x24($sp) +/* 085D90 7F051260 8FB20028 */ lw $s2, 0x28($sp) +/* 085D94 7F051264 03E00008 */ jr $ra +/* 085D98 7F051268 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05126C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05126C +/* 085D9C 7F05126C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 085DA0 7F051270 AFB10020 */ sw $s1, 0x20($sp) +/* 085DA4 7F051274 240EFFFF */ li $t6, -1 +/* 085DA8 7F051278 3C078003 */ lui $a3, %hi(D_80030AF8) +/* 085DAC 7F05127C 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085DB0 7F051280 00A08825 */ move $s1, $a1 +/* 085DB4 7F051284 AFBF0024 */ sw $ra, 0x24($sp) +/* 085DB8 7F051288 AFB0001C */ sw $s0, 0x1c($sp) +/* 085DBC 7F05128C AFA40058 */ sw $a0, 0x58($sp) +/* 085DC0 7F051290 AFA60060 */ sw $a2, 0x60($sp) +/* 085DC4 7F051294 AFA0004C */ sw $zero, 0x4c($sp) +/* 085DC8 7F051298 AFA00048 */ sw $zero, 0x48($sp) +/* 085DCC 7F05129C AFAE0044 */ sw $t6, 0x44($sp) +/* 085DD0 7F0512A0 2408FFFF */ li $t0, -1 +/* 085DD4 7F0512A4 2409FFFF */ li $t1, -1 +/* 085DD8 7F0512A8 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085DDC 7F0512AC 8CE70AF8 */ lw $a3, %lo(D_80030AF8)($a3) +/* 085DE0 7F0512B0 240A0088 */ li $t2, 136 +.L7F0512B4: +/* 085DE4 7F0512B4 00EA0019 */ multu $a3, $t2 +/* 085DE8 7F0512B8 8FB80058 */ lw $t8, 0x58($sp) +/* 085DEC 7F0512BC 00007812 */ mflo $t7 +/* 085DF0 7F0512C0 016F8021 */ addu $s0, $t3, $t7 +/* 085DF4 7F0512C4 8E040010 */ lw $a0, 0x10($s0) +/* 085DF8 7F0512C8 54800008 */ bnezl $a0, .L7F0512EC +/* 085DFC 7F0512CC 8E190064 */ lw $t9, 0x64($s0) +/* 085E00 7F0512D0 57000040 */ bnezl $t8, .L7F0513D4 +/* 085E04 7F0512D4 24E70001 */ addiu $a3, $a3, 1 +/* 085E08 7F0512D8 5620003E */ bnezl $s1, .L7F0513D4 +/* 085E0C 7F0512DC 24E70001 */ addiu $a3, $a3, 1 +/* 085E10 7F0512E0 10000043 */ b .L7F0513F0 +/* 085E14 7F0512E4 AFA70044 */ sw $a3, 0x44($sp) +/* 085E18 7F0512E8 8E190064 */ lw $t9, 0x64($s0) +.L7F0512EC: +/* 085E1C 7F0512EC 332C0080 */ andi $t4, $t9, 0x80 +/* 085E20 7F0512F0 55800038 */ bnezl $t4, .L7F0513D4 +/* 085E24 7F0512F4 24E70001 */ addiu $a3, $a3, 1 +/* 085E28 7F0512F8 920D0002 */ lbu $t5, 2($s0) +/* 085E2C 7F0512FC 31AE0004 */ andi $t6, $t5, 4 +/* 085E30 7F051300 55C00034 */ bnezl $t6, .L7F0513D4 +/* 085E34 7F051304 24E70001 */ addiu $a3, $a3, 1 +/* 085E38 7F051308 860F0082 */ lh $t7, 0x82($s0) +/* 085E3C 7F05130C 5DE00005 */ bgtzl $t7, .L7F051324 +/* 085E40 7F051310 82020080 */ lb $v0, 0x80($s0) +/* 085E44 7F051314 8C98001C */ lw $t8, 0x1c($a0) +/* 085E48 7F051318 13000014 */ beqz $t8, .L7F05136C +/* 085E4C 7F05131C 00000000 */ nop +/* 085E50 7F051320 82020080 */ lb $v0, 0x80($s0) +.L7F051324: +/* 085E54 7F051324 2401001D */ li $at, 29 +/* 085E58 7F051328 10410005 */ beq $v0, $at, .L7F051340 +/* 085E5C 7F05132C 2401001C */ li $at, 28 +/* 085E60 7F051330 10410003 */ beq $v0, $at, .L7F051340 +/* 085E64 7F051334 2401001B */ li $at, 27 +/* 085E68 7F051338 54410026 */ bnel $v0, $at, .L7F0513D4 +/* 085E6C 7F05133C 24E70001 */ addiu $a3, $a3, 1 +.L7F051340: +/* 085E70 7F051340 8C83001C */ lw $v1, 0x1c($a0) +/* 085E74 7F051344 10600009 */ beqz $v1, .L7F05136C +/* 085E78 7F051348 00000000 */ nop +/* 085E7C 7F05134C 90620000 */ lbu $v0, ($v1) +/* 085E80 7F051350 24010001 */ li $at, 1 +/* 085E84 7F051354 10410005 */ beq $v0, $at, .L7F05136C +/* 085E88 7F051358 24010002 */ li $at, 2 +/* 085E8C 7F05135C 10410003 */ beq $v0, $at, .L7F05136C +/* 085E90 7F051360 24010004 */ li $at, 4 +/* 085E94 7F051364 5441001B */ bnel $v0, $at, .L7F0513D4 +/* 085E98 7F051368 24E70001 */ addiu $a3, $a3, 1 +.L7F05136C: +/* 085E9C 7F05136C 1220000E */ beqz $s1, .L7F0513A8 +/* 085EA0 7F051370 8FA50060 */ lw $a1, 0x60($sp) +/* 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 +/* 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 +/* 085EC0 7F051390 8FA70054 */ lw $a3, 0x54($sp) +/* 085EC4 7F051394 8FA80040 */ lw $t0, 0x40($sp) +/* 085EC8 7F051398 8FA9003C */ lw $t1, 0x3c($sp) +/* 085ECC 7F05139C 1040000C */ beqz $v0, .L7F0513D0 +/* 085ED0 7F0513A0 240A0088 */ li $t2, 136 +/* 085ED4 7F0513A4 8E040010 */ lw $a0, 0x10($s0) +.L7F0513A8: +/* 085ED8 7F0513A8 90990001 */ lbu $t9, 1($a0) +/* 085EDC 7F0513AC 332C0002 */ andi $t4, $t9, 2 +/* 085EE0 7F0513B0 15800004 */ bnez $t4, .L7F0513C4 +/* 085EE4 7F0513B4 00000000 */ nop +/* 085EE8 7F0513B8 05010002 */ bgez $t0, .L7F0513C4 +/* 085EEC 7F0513BC 00000000 */ nop +/* 085EF0 7F0513C0 00E04025 */ move $t0, $a3 +.L7F0513C4: +/* 085EF4 7F0513C4 05230003 */ bgezl $t1, .L7F0513D4 +/* 085EF8 7F0513C8 24E70001 */ addiu $a3, $a3, 1 +/* 085EFC 7F0513CC 00E04825 */ move $t1, $a3 +.L7F0513D0: +/* 085F00 7F0513D0 24E70001 */ addiu $a3, $a3, 1 +.L7F0513D4: +/* 085F04 7F0513D4 2401001E */ li $at, 30 +/* 085F08 7F0513D8 00E1001A */ div $zero, $a3, $at +/* 085F0C 7F0513DC 3C0E8003 */ lui $t6, %hi(D_80030AF8) +/* 085F10 7F0513E0 8DCE0AF8 */ lw $t6, %lo(D_80030AF8)($t6) +/* 085F14 7F0513E4 00003810 */ mfhi $a3 +/* 085F18 7F0513E8 14EEFFB2 */ bne $a3, $t6, .L7F0512B4 +/* 085F1C 7F0513EC 00000000 */ nop +.L7F0513F0: +/* 085F20 7F0513F0 8FAF0044 */ lw $t7, 0x44($sp) +/* 085F24 7F0513F4 24040008 */ li $a0, 8 +/* 085F28 7F0513F8 27A5004C */ addiu $a1, $sp, 0x4c +/* 085F2C 7F0513FC 05E0000C */ bltz $t7, .L7F051430 +/* 085F30 7F051400 27A60048 */ addiu $a2, $sp, 0x48 +/* 085F34 7F051404 25F80001 */ addiu $t8, $t7, 1 +/* 085F38 7F051408 2401001E */ li $at, 30 +/* 085F3C 7F05140C 0301001A */ div $zero, $t8, $at +/* 085F40 7F051410 0000C810 */ mfhi $t9 +/* 085F44 7F051414 3C018003 */ lui $at, %hi(D_80030AF8) +/* 085F48 7F051418 AC390AF8 */ sw $t9, %lo(D_80030AF8)($at) +/* 085F4C 7F05141C 01EA0019 */ multu $t7, $t2 +/* 085F50 7F051420 00006012 */ mflo $t4 +/* 085F54 7F051424 016C1021 */ addu $v0, $t3, $t4 +/* 085F58 7F051428 10000053 */ b .L7F051578 +/* 085F5C 7F05142C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F051430: +/* 085F60 7F051430 8FAD0060 */ lw $t5, 0x60($sp) +/* 085F64 7F051434 8FA70058 */ lw $a3, 0x58($sp) +/* 085F68 7F051438 AFB10010 */ sw $s1, 0x10($sp) +/* 085F6C 7F05143C AFA80040 */ sw $t0, 0x40($sp) +/* 085F70 7F051440 AFA9003C */ sw $t1, 0x3c($sp) +/* 085F74 7F051444 0FC15BC2 */ jal sub_GAME_7F056F08 +/* 085F78 7F051448 AFAD0014 */ sw $t5, 0x14($sp) +/* 085F7C 7F05144C 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085F80 7F051450 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085F84 7F051454 8FA80040 */ lw $t0, 0x40($sp) +/* 085F88 7F051458 8FA9003C */ lw $t1, 0x3c($sp) +/* 085F8C 7F05145C 10400003 */ beqz $v0, .L7F05146C +/* 085F90 7F051460 240A0088 */ li $t2, 136 +/* 085F94 7F051464 10000044 */ b .L7F051578 +/* 085F98 7F051468 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05146C: +/* 085F9C 7F05146C 05000015 */ bltz $t0, .L7F0514C4 +/* 085FA0 7F051470 8FAF004C */ lw $t7, 0x4c($sp) +/* 085FA4 7F051474 010A0019 */ multu $t0, $t2 +/* 085FA8 7F051478 24050001 */ li $a1, 1 +/* 085FAC 7F05147C 00008012 */ mflo $s0 +/* 085FB0 7F051480 01702021 */ addu $a0, $t3, $s0 +/* 085FB4 7F051484 8C8E0010 */ lw $t6, 0x10($a0) +/* 085FB8 7F051488 51C00007 */ beql $t6, $zero, .L7F0514A8 +/* 085FBC 7F05148C 25180001 */ addiu $t8, $t0, 1 +/* 085FC0 7F051490 0FC10409 */ jal sub_GAME_7F041024 +/* 085FC4 7F051494 AFA80040 */ sw $t0, 0x40($sp) +/* 085FC8 7F051498 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085FCC 7F05149C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085FD0 7F0514A0 8FA80040 */ lw $t0, 0x40($sp) +/* 085FD4 7F0514A4 25180001 */ addiu $t8, $t0, 1 +.L7F0514A8: +/* 085FD8 7F0514A8 2401001E */ li $at, 30 +/* 085FDC 7F0514AC 0301001A */ div $zero, $t8, $at +/* 085FE0 7F0514B0 0000C810 */ mfhi $t9 +/* 085FE4 7F0514B4 3C018003 */ lui $at, %hi(D_80030AF8) +/* 085FE8 7F0514B8 AC390AF8 */ sw $t9, %lo(D_80030AF8)($at) +/* 085FEC 7F0514BC 1000002D */ b .L7F051574 +/* 085FF0 7F0514C0 01701021 */ addu $v0, $t3, $s0 +.L7F0514C4: +/* 085FF4 7F0514C4 11E00009 */ beqz $t7, .L7F0514EC +/* 085FF8 7F0514C8 00000000 */ nop +/* 085FFC 7F0514CC 8DEC0010 */ lw $t4, 0x10($t7) +/* 086000 7F0514D0 01E02025 */ move $a0, $t7 +/* 086004 7F0514D4 11800003 */ beqz $t4, .L7F0514E4 +/* 086008 7F0514D8 00000000 */ nop +/* 08600C 7F0514DC 0FC10409 */ jal sub_GAME_7F041024 +/* 086010 7F0514E0 24050001 */ li $a1, 1 +.L7F0514E4: +/* 086014 7F0514E4 10000023 */ b .L7F051574 +/* 086018 7F0514E8 8FA2004C */ lw $v0, 0x4c($sp) +.L7F0514EC: +/* 08601C 7F0514EC 05220016 */ bltzl $t1, .L7F051548 +/* 086020 7F0514F0 8FB90048 */ lw $t9, 0x48($sp) +/* 086024 7F0514F4 012A0019 */ multu $t1, $t2 +/* 086028 7F0514F8 24050001 */ li $a1, 1 +/* 08602C 7F0514FC 00008012 */ mflo $s0 +/* 086030 7F051500 01702021 */ addu $a0, $t3, $s0 +/* 086034 7F051504 8C8D0010 */ lw $t5, 0x10($a0) +/* 086038 7F051508 51A00007 */ beql $t5, $zero, .L7F051528 +/* 08603C 7F05150C 252E0001 */ addiu $t6, $t1, 1 +/* 086040 7F051510 0FC10409 */ jal sub_GAME_7F041024 +/* 086044 7F051514 AFA9003C */ sw $t1, 0x3c($sp) +/* 086048 7F051518 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 08604C 7F05151C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 086050 7F051520 8FA9003C */ lw $t1, 0x3c($sp) +/* 086054 7F051524 252E0001 */ addiu $t6, $t1, 1 +.L7F051528: +/* 086058 7F051528 2401001E */ li $at, 30 +/* 08605C 7F05152C 01C1001A */ div $zero, $t6, $at +/* 086060 7F051530 0000C010 */ mfhi $t8 +/* 086064 7F051534 3C018003 */ lui $at, %hi(D_80030AF8) +/* 086068 7F051538 AC380AF8 */ sw $t8, %lo(D_80030AF8)($at) +/* 08606C 7F05153C 1000000D */ b .L7F051574 +/* 086070 7F051540 01701021 */ addu $v0, $t3, $s0 +/* 086074 7F051544 8FB90048 */ lw $t9, 0x48($sp) +.L7F051548: +/* 086078 7F051548 5320000A */ beql $t9, $zero, .L7F051574 +/* 08607C 7F05154C 00001025 */ move $v0, $zero +/* 086080 7F051550 8F2C0010 */ lw $t4, 0x10($t9) +/* 086084 7F051554 03202025 */ move $a0, $t9 +/* 086088 7F051558 11800003 */ beqz $t4, .L7F051568 +/* 08608C 7F05155C 00000000 */ nop +/* 086090 7F051560 0FC10409 */ jal sub_GAME_7F041024 +/* 086094 7F051564 24050001 */ li $a1, 1 +.L7F051568: +/* 086098 7F051568 10000002 */ b .L7F051574 +/* 08609C 7F05156C 8FA20048 */ lw $v0, 0x48($sp) +/* 0860A0 7F051570 00001025 */ move $v0, $zero +.L7F051574: +/* 0860A4 7F051574 8FBF0024 */ lw $ra, 0x24($sp) +.L7F051578: +/* 0860A8 7F051578 8FB0001C */ lw $s0, 0x1c($sp) +/* 0860AC 7F05157C 8FB10020 */ lw $s1, 0x20($sp) +/* 0860B0 7F051580 03E00008 */ jr $ra +/* 0860B4 7F051584 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051588(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051588 +/* 0860B8 7F051588 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0860BC 7F05158C AFBF0014 */ sw $ra, 0x14($sp) +/* 0860C0 7F051590 00002025 */ move $a0, $zero +/* 0860C4 7F051594 00002825 */ move $a1, $zero +/* 0860C8 7F051598 0FC1449B */ jal sub_GAME_7F05126C +/* 0860CC 7F05159C 00003025 */ move $a2, $zero +/* 0860D0 7F0515A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0860D4 7F0515A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0860D8 7F0515A8 03E00008 */ jr $ra +/* 0860DC 7F0515AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0515B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0515B0 +/* 0860E0 7F0515B0 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0860E4 7F0515B4 AFB50034 */ sw $s5, 0x34($sp) +/* 0860E8 7F0515B8 3C158003 */ lui $s5, %hi(D_80030AFC) +/* 0860EC 7F0515BC AFB40030 */ sw $s4, 0x30($sp) +/* 0860F0 7F0515C0 26B50AFC */ addiu $s5, %lo(D_80030AFC) # addiu $s5, $s5, 0xafc +/* 0860F4 7F0515C4 AFB60038 */ sw $s6, 0x38($sp) +/* 0860F8 7F0515C8 AFB3002C */ sw $s3, 0x2c($sp) +/* 0860FC 7F0515CC AFB20028 */ sw $s2, 0x28($sp) +/* 086100 7F0515D0 AFB10024 */ sw $s1, 0x24($sp) +/* 086104 7F0515D4 240EFFFF */ li $t6, -1 +/* 086108 7F0515D8 3C148007 */ lui $s4, %hi(dword_CODE_bss_80072E70) +/* 08610C 7F0515DC 00A09025 */ move $s2, $a1 +/* 086110 7F0515E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 086114 7F0515E4 AFB00020 */ sw $s0, 0x20($sp) +/* 086118 7F0515E8 AFA60070 */ sw $a2, 0x70($sp) +/* 08611C 7F0515EC 00803825 */ move $a3, $a0 +/* 086120 7F0515F0 AFA0005C */ sw $zero, 0x5c($sp) +/* 086124 7F0515F4 AFA00058 */ sw $zero, 0x58($sp) +/* 086128 7F0515F8 AFAE0054 */ sw $t6, 0x54($sp) +/* 08612C 7F0515FC 2411FFFF */ li $s1, -1 +/* 086130 7F051600 2413FFFF */ li $s3, -1 +/* 086134 7F051604 26942E70 */ addiu $s4, %lo(dword_CODE_bss_80072E70) # addiu $s4, $s4, 0x2e70 +/* 086138 7F051608 2416000A */ li $s6, 10 +/* 08613C 7F05160C 8EA30000 */ lw $v1, ($s5) +/* 086140 7F051610 000379C0 */ sll $t7, $v1, 7 +.L7F051614: +/* 086144 7F051614 028F8021 */ addu $s0, $s4, $t7 +/* 086148 7F051618 8E020010 */ lw $v0, 0x10($s0) +/* 08614C 7F05161C 54400008 */ bnezl $v0, .L7F051640 +/* 086150 7F051620 8E180064 */ lw $t8, 0x64($s0) +/* 086154 7F051624 54E00022 */ bnezl $a3, .L7F0516B0 +/* 086158 7F051628 246B0001 */ addiu $t3, $v1, 1 +/* 08615C 7F05162C 56400020 */ bnezl $s2, .L7F0516B0 +/* 086160 7F051630 246B0001 */ addiu $t3, $v1, 1 +/* 086164 7F051634 1000002C */ b .L7F0516E8 +/* 086168 7F051638 AFA30054 */ sw $v1, 0x54($sp) +/* 08616C 7F05163C 8E180064 */ lw $t8, 0x64($s0) +.L7F051640: +/* 086170 7F051640 33190080 */ andi $t9, $t8, 0x80 +/* 086174 7F051644 5720001A */ bnezl $t9, .L7F0516B0 +/* 086178 7F051648 246B0001 */ addiu $t3, $v1, 1 +/* 08617C 7F05164C 8C48001C */ lw $t0, 0x1c($v0) +/* 086180 7F051650 55000017 */ bnezl $t0, .L7F0516B0 +/* 086184 7F051654 246B0001 */ addiu $t3, $v1, 1 +/* 086188 7F051658 5240000B */ beql $s2, $zero, .L7F051688 +/* 08618C 7F05165C 90490001 */ lbu $t1, 1($v0) +/* 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 +/* 0861A0 7F051670 AFA70068 */ sw $a3, 0x68($sp) +/* 0861A4 7F051674 8FA30064 */ lw $v1, 0x64($sp) +/* 0861A8 7F051678 1040000C */ beqz $v0, .L7F0516AC +/* 0861AC 7F05167C 8FA70068 */ lw $a3, 0x68($sp) +/* 0861B0 7F051680 8E020010 */ lw $v0, 0x10($s0) +/* 0861B4 7F051684 90490001 */ lbu $t1, 1($v0) +.L7F051688: +/* 0861B8 7F051688 312A0002 */ andi $t2, $t1, 2 +/* 0861BC 7F05168C 15400004 */ bnez $t2, .L7F0516A0 +/* 0861C0 7F051690 00000000 */ nop +/* 0861C4 7F051694 06210002 */ bgez $s1, .L7F0516A0 +/* 0861C8 7F051698 00000000 */ nop +/* 0861CC 7F05169C 00608825 */ move $s1, $v1 +.L7F0516A0: +/* 0861D0 7F0516A0 06630003 */ bgezl $s3, .L7F0516B0 +/* 0861D4 7F0516A4 246B0001 */ addiu $t3, $v1, 1 +/* 0861D8 7F0516A8 00609825 */ move $s3, $v1 +.L7F0516AC: +/* 0861DC 7F0516AC 246B0001 */ addiu $t3, $v1, 1 +.L7F0516B0: +/* 0861E0 7F0516B0 0176001A */ div $zero, $t3, $s6 +/* 0861E4 7F0516B4 8EAC0000 */ lw $t4, ($s5) +/* 0861E8 7F0516B8 00001810 */ mfhi $v1 +/* 0861EC 7F0516BC 16C00002 */ bnez $s6, .L7F0516C8 +/* 0861F0 7F0516C0 00000000 */ nop +/* 0861F4 7F0516C4 0007000D */ break 7 +.L7F0516C8: +/* 0861F8 7F0516C8 2401FFFF */ li $at, -1 +/* 0861FC 7F0516CC 16C10004 */ bne $s6, $at, .L7F0516E0 +/* 086200 7F0516D0 3C018000 */ lui $at, 0x8000 +/* 086204 7F0516D4 15610002 */ bne $t3, $at, .L7F0516E0 +/* 086208 7F0516D8 00000000 */ nop +/* 08620C 7F0516DC 0006000D */ break 6 +.L7F0516E0: +/* 086210 7F0516E0 546CFFCC */ bnel $v1, $t4, .L7F051614 +/* 086214 7F0516E4 000379C0 */ sll $t7, $v1, 7 +.L7F0516E8: +/* 086218 7F0516E8 8FAD0054 */ lw $t5, 0x54($sp) +/* 08621C 7F0516EC 05A00011 */ bltz $t5, .L7F051734 +/* 086220 7F0516F0 25AE0001 */ addiu $t6, $t5, 1 +/* 086224 7F0516F4 01D6001A */ div $zero, $t6, $s6 +/* 086228 7F0516F8 8FB80054 */ lw $t8, 0x54($sp) +/* 08622C 7F0516FC 00007810 */ mfhi $t7 +/* 086230 7F051700 AEAF0000 */ sw $t7, ($s5) +/* 086234 7F051704 16C00002 */ bnez $s6, .L7F051710 +/* 086238 7F051708 00000000 */ nop +/* 08623C 7F05170C 0007000D */ break 7 +.L7F051710: +/* 086240 7F051710 2401FFFF */ li $at, -1 +/* 086244 7F051714 16C10004 */ bne $s6, $at, .L7F051728 +/* 086248 7F051718 3C018000 */ lui $at, 0x8000 +/* 08624C 7F05171C 15C10002 */ bne $t6, $at, .L7F051728 +/* 086250 7F051720 00000000 */ nop +/* 086254 7F051724 0006000D */ break 6 +.L7F051728: +/* 086258 7F051728 0018C9C0 */ sll $t9, $t8, 7 +/* 08625C 7F05172C 10000054 */ b .L7F051880 +/* 086260 7F051730 02991021 */ addu $v0, $s4, $t9 +.L7F051734: +/* 086264 7F051734 8FA80070 */ lw $t0, 0x70($sp) +/* 086268 7F051738 24040011 */ li $a0, 17 +/* 08626C 7F05173C 27A5005C */ addiu $a1, $sp, 0x5c +/* 086270 7F051740 27A60058 */ addiu $a2, $sp, 0x58 +/* 086274 7F051744 AFB20010 */ sw $s2, 0x10($sp) +/* 086278 7F051748 0FC15BC2 */ jal sub_GAME_7F056F08 +/* 08627C 7F05174C AFA80014 */ sw $t0, 0x14($sp) +/* 086280 7F051750 10400003 */ beqz $v0, .L7F051760 +/* 086284 7F051754 00401825 */ move $v1, $v0 +/* 086288 7F051758 10000049 */ b .L7F051880 +/* 08628C 7F05175C 00601025 */ move $v0, $v1 +.L7F051760: +/* 086290 7F051760 06220019 */ bltzl $s1, .L7F0517C8 +/* 086294 7F051764 8FAE005C */ lw $t6, 0x5c($sp) +/* 086298 7F051768 001149C0 */ sll $t1, $s1, 7 +/* 08629C 7F05176C 02892021 */ addu $a0, $s4, $t1 +/* 0862A0 7F051770 8C8A0010 */ lw $t2, 0x10($a0) +/* 0862A4 7F051774 51400004 */ beql $t2, $zero, .L7F051788 +/* 0862A8 7F051778 262B0001 */ addiu $t3, $s1, 1 +/* 0862AC 7F05177C 0FC10409 */ jal sub_GAME_7F041024 +/* 0862B0 7F051780 24050001 */ li $a1, 1 +/* 0862B4 7F051784 262B0001 */ addiu $t3, $s1, 1 +.L7F051788: +/* 0862B8 7F051788 0176001A */ div $zero, $t3, $s6 +/* 0862BC 7F05178C 00006010 */ mfhi $t4 +/* 0862C0 7F051790 001169C0 */ sll $t5, $s1, 7 +/* 0862C4 7F051794 16C00002 */ bnez $s6, .L7F0517A0 +/* 0862C8 7F051798 00000000 */ nop +/* 0862CC 7F05179C 0007000D */ break 7 +.L7F0517A0: +/* 0862D0 7F0517A0 2401FFFF */ li $at, -1 +/* 0862D4 7F0517A4 16C10004 */ bne $s6, $at, .L7F0517B8 +/* 0862D8 7F0517A8 3C018000 */ lui $at, 0x8000 +/* 0862DC 7F0517AC 15610002 */ bne $t3, $at, .L7F0517B8 +/* 0862E0 7F0517B0 00000000 */ nop +/* 0862E4 7F0517B4 0006000D */ break 6 +.L7F0517B8: +/* 0862E8 7F0517B8 AEAC0000 */ sw $t4, ($s5) +/* 0862EC 7F0517BC 10000030 */ b .L7F051880 +/* 0862F0 7F0517C0 028D1021 */ addu $v0, $s4, $t5 +/* 0862F4 7F0517C4 8FAE005C */ lw $t6, 0x5c($sp) +.L7F0517C8: +/* 0862F8 7F0517C8 11C00009 */ beqz $t6, .L7F0517F0 +/* 0862FC 7F0517CC 00000000 */ nop +/* 086300 7F0517D0 8DCF0010 */ lw $t7, 0x10($t6) +/* 086304 7F0517D4 01C02025 */ move $a0, $t6 +/* 086308 7F0517D8 11E00003 */ beqz $t7, .L7F0517E8 +/* 08630C 7F0517DC 00000000 */ nop +/* 086310 7F0517E0 0FC10409 */ jal sub_GAME_7F041024 +/* 086314 7F0517E4 24050001 */ li $a1, 1 +.L7F0517E8: +/* 086318 7F0517E8 10000025 */ b .L7F051880 +/* 08631C 7F0517EC 8FA2005C */ lw $v0, 0x5c($sp) +.L7F0517F0: +/* 086320 7F0517F0 06600017 */ bltz $s3, .L7F051850 +/* 086324 7F0517F4 0013C1C0 */ sll $t8, $s3, 7 +/* 086328 7F0517F8 02982021 */ addu $a0, $s4, $t8 +/* 08632C 7F0517FC 8C990010 */ lw $t9, 0x10($a0) +/* 086330 7F051800 53200004 */ beql $t9, $zero, .L7F051814 +/* 086334 7F051804 26680001 */ addiu $t0, $s3, 1 +/* 086338 7F051808 0FC10409 */ jal sub_GAME_7F041024 +/* 08633C 7F05180C 24050001 */ li $a1, 1 +/* 086340 7F051810 26680001 */ addiu $t0, $s3, 1 +.L7F051814: +/* 086344 7F051814 0116001A */ div $zero, $t0, $s6 +/* 086348 7F051818 00004810 */ mfhi $t1 +/* 08634C 7F05181C 001351C0 */ sll $t2, $s3, 7 +/* 086350 7F051820 16C00002 */ bnez $s6, .L7F05182C +/* 086354 7F051824 00000000 */ nop +/* 086358 7F051828 0007000D */ break 7 +.L7F05182C: +/* 08635C 7F05182C 2401FFFF */ li $at, -1 +/* 086360 7F051830 16C10004 */ bne $s6, $at, .L7F051844 +/* 086364 7F051834 3C018000 */ lui $at, 0x8000 +/* 086368 7F051838 15010002 */ bne $t0, $at, .L7F051844 +/* 08636C 7F05183C 00000000 */ nop +/* 086370 7F051840 0006000D */ break 6 +.L7F051844: +/* 086374 7F051844 AEA90000 */ sw $t1, ($s5) +/* 086378 7F051848 1000000D */ b .L7F051880 +/* 08637C 7F05184C 028A1021 */ addu $v0, $s4, $t2 +.L7F051850: +/* 086380 7F051850 8FAB0058 */ lw $t3, 0x58($sp) +/* 086384 7F051854 5160000A */ beql $t3, $zero, .L7F051880 +/* 086388 7F051858 00001025 */ move $v0, $zero +/* 08638C 7F05185C 8D6C0010 */ lw $t4, 0x10($t3) +/* 086390 7F051860 01602025 */ move $a0, $t3 +/* 086394 7F051864 11800003 */ beqz $t4, .L7F051874 +/* 086398 7F051868 00000000 */ nop +/* 08639C 7F05186C 0FC10409 */ jal sub_GAME_7F041024 +/* 0863A0 7F051870 24050001 */ li $a1, 1 +.L7F051874: +/* 0863A4 7F051874 10000002 */ b .L7F051880 +/* 0863A8 7F051878 8FA20058 */ lw $v0, 0x58($sp) +/* 0863AC 7F05187C 00001025 */ move $v0, $zero +.L7F051880: +/* 0863B0 7F051880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0863B4 7F051884 8FB00020 */ lw $s0, 0x20($sp) +/* 0863B8 7F051888 8FB10024 */ lw $s1, 0x24($sp) +/* 0863BC 7F05188C 8FB20028 */ lw $s2, 0x28($sp) +/* 0863C0 7F051890 8FB3002C */ lw $s3, 0x2c($sp) +/* 0863C4 7F051894 8FB40030 */ lw $s4, 0x30($sp) +/* 0863C8 7F051898 8FB50034 */ lw $s5, 0x34($sp) +/* 0863CC 7F05189C 8FB60038 */ lw $s6, 0x38($sp) +/* 0863D0 7F0518A0 03E00008 */ jr $ra +/* 0863D4 7F0518A4 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0518A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0518A8 +/* 0863D8 7F0518A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0863DC 7F0518AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0863E0 7F0518B0 00002025 */ move $a0, $zero +/* 0863E4 7F0518B4 00002825 */ move $a1, $zero +/* 0863E8 7F0518B8 0FC1456C */ jal sub_GAME_7F0515B0 +/* 0863EC 7F0518BC 00003025 */ move $a2, $zero +/* 0863F0 7F0518C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0863F4 7F0518C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0863F8 7F0518C8 03E00008 */ jr $ra +/* 0863FC 7F0518CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0518D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0518D0 +/* 086400 7F0518D0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086404 7F0518D4 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 086408 7F0518D8 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 08640C 7F0518DC AFBF0014 */ sw $ra, 0x14($sp) +/* 086410 7F0518E0 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 086414 7F0518E4 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 086418 7F0518E8 00001825 */ move $v1, $zero +.L7F0518EC: +/* 08641C 7F0518EC 8C8E0010 */ lw $t6, 0x10($a0) +/* 086420 7F0518F0 24840084 */ addiu $a0, $a0, 0x84 +/* 086424 7F0518F4 0082082B */ sltu $at, $a0, $v0 +/* 086428 7F0518F8 15C00004 */ bnez $t6, .L7F05190C +/* 08642C 7F0518FC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80073370) +/* 086430 7F051900 25EF3370 */ addiu $t7, %lo(dword_CODE_bss_80073370) # addiu $t7, $t7, 0x3370 +/* 086434 7F051904 10000040 */ b .L7F051A08 +/* 086438 7F051908 006F1021 */ addu $v0, $v1, $t7 +.L7F05190C: +/* 08643C 7F05190C 1420FFF7 */ bnez $at, .L7F0518EC +/* 086440 7F051910 24630084 */ addiu $v1, $v1, 0x84 +/* 086444 7F051914 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 086448 7F051918 3C058007 */ lui $a1, %hi(dword_CODE_bss_80073DC0) +/* 08644C 7F05191C 24A53DC0 */ addiu $a1, %lo(dword_CODE_bss_80073DC0) # addiu $a1, $a1, 0x3dc0 +/* 086450 7F051920 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 086454 7F051924 00001825 */ move $v1, $zero +.L7F051928: +/* 086458 7F051928 8C980064 */ lw $t8, 0x64($a0) +/* 08645C 7F05192C 33190080 */ andi $t9, $t8, 0x80 +/* 086460 7F051930 57200016 */ bnezl $t9, .L7F05198C +/* 086464 7F051934 24840084 */ addiu $a0, $a0, 0x84 +/* 086468 7F051938 90880002 */ lbu $t0, 2($a0) +/* 08646C 7F05193C 31090004 */ andi $t1, $t0, 4 +/* 086470 7F051940 55200012 */ bnezl $t1, .L7F05198C +/* 086474 7F051944 24840084 */ addiu $a0, $a0, 0x84 +/* 086478 7F051948 8C820010 */ lw $v0, 0x10($a0) +/* 08647C 7F05194C 8C4A001C */ lw $t2, 0x1c($v0) +/* 086480 7F051950 5540000E */ bnezl $t2, .L7F05198C +/* 086484 7F051954 24840084 */ addiu $a0, $a0, 0x84 +/* 086488 7F051958 904B0001 */ lbu $t3, 1($v0) +/* 08648C 7F05195C 316C0002 */ andi $t4, $t3, 2 +/* 086490 7F051960 5580000A */ bnezl $t4, .L7F05198C +/* 086494 7F051964 24840084 */ addiu $a0, $a0, 0x84 +/* 086498 7F051968 24050001 */ li $a1, 1 +/* 08649C 7F05196C 0FC10409 */ jal sub_GAME_7F041024 +/* 0864A0 7F051970 AFA30018 */ sw $v1, 0x18($sp) +/* 0864A4 7F051974 8FA30018 */ lw $v1, 0x18($sp) +/* 0864A8 7F051978 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_80073370) +/* 0864AC 7F05197C 25AD3370 */ addiu $t5, %lo(dword_CODE_bss_80073370) # addiu $t5, $t5, 0x3370 +/* 0864B0 7F051980 10000021 */ b .L7F051A08 +/* 0864B4 7F051984 006D1021 */ addu $v0, $v1, $t5 +/* 0864B8 7F051988 24840084 */ addiu $a0, $a0, 0x84 +.L7F05198C: +/* 0864BC 7F05198C 0085082B */ sltu $at, $a0, $a1 +/* 0864C0 7F051990 1420FFE5 */ bnez $at, .L7F051928 +/* 0864C4 7F051994 24630084 */ addiu $v1, $v1, 0x84 +/* 0864C8 7F051998 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 0864CC 7F05199C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 0864D0 7F0519A0 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 0864D4 7F0519A4 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 0864D8 7F0519A8 00001825 */ move $v1, $zero +.L7F0519AC: +/* 0864DC 7F0519AC 8C8E0064 */ lw $t6, 0x64($a0) +/* 0864E0 7F0519B0 31CF0080 */ andi $t7, $t6, 0x80 +/* 0864E4 7F0519B4 55E00011 */ bnezl $t7, .L7F0519FC +/* 0864E8 7F0519B8 24840084 */ addiu $a0, $a0, 0x84 +/* 0864EC 7F0519BC 90980002 */ lbu $t8, 2($a0) +/* 0864F0 7F0519C0 33190004 */ andi $t9, $t8, 4 +/* 0864F4 7F0519C4 5720000D */ bnezl $t9, .L7F0519FC +/* 0864F8 7F0519C8 24840084 */ addiu $a0, $a0, 0x84 +/* 0864FC 7F0519CC 8C880010 */ lw $t0, 0x10($a0) +/* 086500 7F0519D0 8D09001C */ lw $t1, 0x1c($t0) +/* 086504 7F0519D4 15200008 */ bnez $t1, .L7F0519F8 +/* 086508 7F0519D8 24050001 */ li $a1, 1 +/* 08650C 7F0519DC 0FC10409 */ jal sub_GAME_7F041024 +/* 086510 7F0519E0 AFA30018 */ sw $v1, 0x18($sp) +/* 086514 7F0519E4 8FA30018 */ lw $v1, 0x18($sp) +/* 086518 7F0519E8 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80073370) +/* 08651C 7F0519EC 254A3370 */ addiu $t2, %lo(dword_CODE_bss_80073370) # addiu $t2, $t2, 0x3370 +/* 086520 7F0519F0 10000005 */ b .L7F051A08 +/* 086524 7F0519F4 006A1021 */ addu $v0, $v1, $t2 +.L7F0519F8: +/* 086528 7F0519F8 24840084 */ addiu $a0, $a0, 0x84 +.L7F0519FC: +/* 08652C 7F0519FC 1482FFEB */ bne $a0, $v0, .L7F0519AC +/* 086530 7F051A00 24630084 */ addiu $v1, $v1, 0x84 +/* 086534 7F051A04 00001025 */ move $v0, $zero +.L7F051A08: +/* 086538 7F051A08 8FBF0014 */ lw $ra, 0x14($sp) +/* 08653C 7F051A0C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 086540 7F051A10 03E00008 */ jr $ra +/* 086544 7F051A14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void trigger_remote_mine_detonation(void) +{ + u32 uVar1; + + uVar1 = get_cur_playernum(); + D_80030AF4 = D_80030AF4 | 1 << (uVar1 & 0x1f); + play_sfx_a1(ptr_sfx_buf,0xf3,0x0); +} +#else +GLOBAL_ASM( +.text +glabel trigger_remote_mine_detonation +/* 086548 7F051A18 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08654C 7F051A1C AFBF0014 */ sw $ra, 0x14($sp) +/* 086550 7F051A20 0FC26C54 */ jal get_cur_playernum +/* 086554 7F051A24 00000000 */ nop +/* 086558 7F051A28 3C038003 */ lui $v1, %hi(D_80030AF4) +/* 08655C 7F051A2C 24630AF4 */ addiu $v1, %lo(D_80030AF4) # addiu $v1, $v1, 0xaf4 +/* 086560 7F051A30 8C6E0000 */ lw $t6, ($v1) +/* 086564 7F051A34 240F0001 */ li $t7, 1 +/* 086568 7F051A38 004FC004 */ sllv $t8, $t7, $v0 +/* 08656C 7F051A3C 01D8C825 */ or $t9, $t6, $t8 +/* 086570 7F051A40 AC790000 */ sw $t9, ($v1) +/* 086574 7F051A44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 086578 7F051A48 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08657C 7F051A4C 240500F3 */ li $a1, 243 +/* 086580 7F051A50 0C002382 */ jal play_sfx_a1 +/* 086584 7F051A54 00003025 */ move $a2, $zero +/* 086588 7F051A58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08658C 7F051A5C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086590 7F051A60 03E00008 */ jr $ra +/* 086594 7F051A64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_entry_is_collectable(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_entry_is_collectable +/* 086598 7F051A68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08659C 7F051A6C AFBF001C */ sw $ra, 0x1c($sp) +/* 0865A0 7F051A70 AFB10018 */ sw $s1, 0x18($sp) +/* 0865A4 7F051A74 AFB00014 */ sw $s0, 0x14($sp) +/* 0865A8 7F051A78 90AE0000 */ lbu $t6, ($a1) +/* 0865AC 7F051A7C 24010004 */ li $at, 4 +/* 0865B0 7F051A80 00808825 */ move $s1, $a0 +/* 0865B4 7F051A84 55C10008 */ bnel $t6, $at, .L7F051AA8 +/* 0865B8 7F051A88 8CB00020 */ lw $s0, 0x20($a1) +/* 0865BC 7F051A8C 8CA30004 */ lw $v1, 4($a1) +/* 0865C0 7F051A90 806F0080 */ lb $t7, 0x80($v1) +/* 0865C4 7F051A94 548F0004 */ bnel $a0, $t7, .L7F051AA8 +/* 0865C8 7F051A98 8CB00020 */ lw $s0, 0x20($a1) +/* 0865CC 7F051A9C 1000000E */ b .L7F051AD8 +/* 0865D0 7F051AA0 00601025 */ move $v0, $v1 +/* 0865D4 7F051AA4 8CB00020 */ lw $s0, 0x20($a1) +.L7F051AA8: +/* 0865D8 7F051AA8 1200000A */ beqz $s0, .L7F051AD4 +/* 0865DC 7F051AAC 02202025 */ move $a0, $s1 +.L7F051AB0: +/* 0865E0 7F051AB0 0FC1469A */ jal check_if_entry_is_collectable +/* 0865E4 7F051AB4 02002825 */ move $a1, $s0 +/* 0865E8 7F051AB8 50400004 */ beql $v0, $zero, .L7F051ACC +/* 0865EC 7F051ABC 8E100024 */ lw $s0, 0x24($s0) +/* 0865F0 7F051AC0 10000006 */ b .L7F051ADC +/* 0865F4 7F051AC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0865F8 7F051AC8 8E100024 */ lw $s0, 0x24($s0) +.L7F051ACC: +/* 0865FC 7F051ACC 5600FFF8 */ bnezl $s0, .L7F051AB0 +/* 086600 7F051AD0 02202025 */ move $a0, $s1 +.L7F051AD4: +/* 086604 7F051AD4 00001025 */ move $v0, $zero +.L7F051AD8: +/* 086608 7F051AD8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051ADC: +/* 08660C 7F051ADC 8FB00014 */ lw $s0, 0x14($sp) +/* 086610 7F051AE0 8FB10018 */ lw $s1, 0x18($sp) +/* 086614 7F051AE4 03E00008 */ jr $ra +/* 086618 7F051AE8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_item_deposited(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_item_deposited +/* 08661C 7F051AEC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086620 7F051AF0 AFBF001C */ sw $ra, 0x1c($sp) +/* 086624 7F051AF4 AFB10018 */ sw $s1, 0x18($sp) +/* 086628 7F051AF8 00808825 */ move $s1, $a0 +/* 08662C 7F051AFC 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 086630 7F051B00 AFB00014 */ sw $s0, 0x14($sp) +/* 086634 7F051B04 1040000F */ beqz $v0, .L7F051B44 +/* 086638 7F051B08 00408025 */ move $s0, $v0 +/* 08663C 7F051B0C 02202025 */ move $a0, $s1 +.L7F051B10: +/* 086640 7F051B10 0FC1469A */ jal check_if_entry_is_collectable +/* 086644 7F051B14 02002825 */ move $a1, $s0 +/* 086648 7F051B18 50400008 */ beql $v0, $zero, .L7F051B3C +/* 08664C 7F051B1C 8E100024 */ lw $s0, 0x24($s0) +/* 086650 7F051B20 8C4E0064 */ lw $t6, 0x64($v0) +/* 086654 7F051B24 31CF0080 */ andi $t7, $t6, 0x80 +/* 086658 7F051B28 55E00004 */ bnezl $t7, .L7F051B3C +/* 08665C 7F051B2C 8E100024 */ lw $s0, 0x24($s0) +/* 086660 7F051B30 10000006 */ b .L7F051B4C +/* 086664 7F051B34 8FBF001C */ lw $ra, 0x1c($sp) +/* 086668 7F051B38 8E100024 */ lw $s0, 0x24($s0) +.L7F051B3C: +/* 08666C 7F051B3C 5600FFF4 */ bnezl $s0, .L7F051B10 +/* 086670 7F051B40 02202025 */ move $a0, $s1 +.L7F051B44: +/* 086674 7F051B44 00001025 */ move $v0, $zero +/* 086678 7F051B48 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051B4C: +/* 08667C 7F051B4C 8FB00014 */ lw $s0, 0x14($sp) +/* 086680 7F051B50 8FB10018 */ lw $s1, 0x18($sp) +/* 086684 7F051B54 03E00008 */ jr $ra +/* 086688 7F051B58 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void add_obj_to_temp_proxmine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_obj_to_temp_proxmine_table +/* 08668C 7F051B5C 3C038007 */ lui $v1, %hi(temp_mine_table) +/* 086690 7F051B60 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 086694 7F051B64 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 086698 7F051B68 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 +/* 08669C 7F051B6C 8C6E0000 */ lw $t6, ($v1) +.L7F051B70: +/* 0866A0 7F051B70 55C00004 */ bnezl $t6, .L7F051B84 +/* 0866A4 7F051B74 24630004 */ addiu $v1, $v1, 4 +/* 0866A8 7F051B78 03E00008 */ jr $ra +/* 0866AC 7F051B7C AC640000 */ sw $a0, ($v1) + +/* 0866B0 7F051B80 24630004 */ addiu $v1, $v1, 4 +.L7F051B84: +/* 0866B4 7F051B84 5462FFFA */ bnel $v1, $v0, .L7F051B70 +/* 0866B8 7F051B88 8C6E0000 */ lw $t6, ($v1) +/* 0866BC 7F051B8C 03E00008 */ jr $ra +/* 0866C0 7F051B90 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void remove_obj_from_temp_proxmine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_obj_from_temp_proxmine_table +/* 0866C4 7F051B94 3C038007 */ lui $v1, %hi(temp_mine_table) +/* 0866C8 7F051B98 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 0866CC 7F051B9C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 0866D0 7F051BA0 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 +/* 0866D4 7F051BA4 8C6E0000 */ lw $t6, ($v1) +.L7F051BA8: +/* 0866D8 7F051BA8 548E0004 */ bnel $a0, $t6, .L7F051BBC +/* 0866DC 7F051BAC 24630004 */ addiu $v1, $v1, 4 +/* 0866E0 7F051BB0 03E00008 */ jr $ra +/* 0866E4 7F051BB4 AC600000 */ sw $zero, ($v1) + +/* 0866E8 7F051BB8 24630004 */ addiu $v1, $v1, 4 +.L7F051BBC: +/* 0866EC 7F051BBC 5462FFFA */ bnel $v1, $v0, .L7F051BA8 +/* 0866F0 7F051BC0 8C6E0000 */ lw $t6, ($v1) +/* 0866F4 7F051BC4 03E00008 */ jr $ra +/* 0866F8 7F051BC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void detonate_proxmine_In_range(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void check_guard_detonate_proxmine(void) { + +} +#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 sub_GAME_7F028894 +/* 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 + + + + + +#ifdef NONMATCHING +void link_objects(void) { + +} +#else +GLOBAL_ASM( +.text +glabel link_objects +/* 0868A4 7F051D74 80AE0080 */ lb $t6, 0x80($a1) +/* 0868A8 7F051D78 808F0080 */ lb $t7, 0x80($a0) +/* 0868AC 7F051D7C AC850084 */ sw $a1, 0x84($a0) +/* 0868B0 7F051D80 A08E0081 */ sb $t6, 0x81($a0) +/* 0868B4 7F051D84 ACA40084 */ sw $a0, 0x84($a1) +/* 0868B8 7F051D88 03E00008 */ jr $ra +/* 0868BC 7F051D8C A0AF0081 */ sb $t7, 0x81($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void complete_object_data_block_return_position_entry(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051DD8(void) { + +} +#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 +void sub_GAME_7F051E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051E1C +/* 08694C 7F051E1C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 086950 7F051E20 AFBF0014 */ sw $ra, 0x14($sp) +/* 086954 7F051E24 8C820008 */ lw $v0, 8($a0) +/* 086958 7F051E28 00A03825 */ move $a3, $a1 +/* 08695C 7F051E2C 00803025 */ move $a2, $a0 +/* 086960 7F051E30 000270C0 */ sll $t6, $v0, 3 +/* 086964 7F051E34 05C10003 */ bgez $t6, .L7F051E44 +/* 086968 7F051E38 00002825 */ move $a1, $zero +/* 08696C 7F051E3C 10000001 */ b .L7F051E44 +/* 086970 7F051E40 24050001 */ li $a1, 1 +.L7F051E44: +/* 086974 7F051E44 8CC40010 */ lw $a0, 0x10($a2) +/* 086978 7F051E48 50800035 */ beql $a0, $zero, .L7F051F20 +/* 08697C 7F051E4C 24020001 */ li $v0, 1 +/* 086980 7F051E50 8CC30014 */ lw $v1, 0x14($a2) +/* 086984 7F051E54 00027880 */ sll $t7, $v0, 2 +/* 086988 7F051E58 50600031 */ beql $v1, $zero, .L7F051F20 +/* 08698C 7F051E5C 24020001 */ li $v0, 1 +/* 086990 7F051E60 05E0002C */ bltz $t7, .L7F051F14 +/* 086994 7F051E64 00000000 */ nop +/* 086998 7F051E68 00052080 */ sll $a0, $a1, 2 +/* 08699C 7F051E6C 00E41021 */ addu $v0, $a3, $a0 +/* 0869A0 7F051E70 8C580160 */ lw $t8, 0x160($v0) +/* 0869A4 7F051E74 17000025 */ bnez $t8, .L7F051F0C +/* 0869A8 7F051E78 00000000 */ nop +/* 0869AC 7F051E7C 8CF9001C */ lw $t9, 0x1c($a3) +/* 0869B0 7F051E80 14800008 */ bnez $a0, .L7F051EA4 +/* 0869B4 7F051E84 AC790018 */ sw $t9, 0x18($v1) +/* 0869B8 7F051E88 8CE8001C */ lw $t0, 0x1c($a3) +/* 0869BC 7F051E8C 8CCC0014 */ lw $t4, 0x14($a2) +/* 0869C0 7F051E90 8D090008 */ lw $t1, 8($t0) +/* 0869C4 7F051E94 8D2A0008 */ lw $t2, 8($t1) +/* 0869C8 7F051E98 8D4B000C */ lw $t3, 0xc($t2) +/* 0869CC 7F051E9C 10000007 */ b .L7F051EBC +/* 0869D0 7F051EA0 AD8B001C */ sw $t3, 0x1c($t4) +.L7F051EA4: +/* 0869D4 7F051EA4 8CED001C */ lw $t5, 0x1c($a3) +/* 0869D8 7F051EA8 8CD90014 */ lw $t9, 0x14($a2) +/* 0869DC 7F051EAC 8DAE0008 */ lw $t6, 8($t5) +/* 0869E0 7F051EB0 8DCF0008 */ lw $t7, 8($t6) +/* 0869E4 7F051EB4 8DF80014 */ lw $t8, 0x14($t7) +/* 0869E8 7F051EB8 AF38001C */ sw $t8, 0x1c($t9) +.L7F051EBC: +/* 0869EC 7F051EBC 8CC80010 */ lw $t0, 0x10($a2) +/* 0869F0 7F051EC0 00045823 */ negu $t3, $a0 +/* 0869F4 7F051EC4 00EB6021 */ addu $t4, $a3, $t3 +/* 0869F8 7F051EC8 AC480160 */ sw $t0, 0x160($v0) +/* 0869FC 7F051ECC 8CC90008 */ lw $t1, 8($a2) +/* 086A00 7F051ED0 00095000 */ sll $t2, $t1, 0 +/* 086A04 7F051ED4 0541000B */ bgez $t2, .L7F051F04 +/* 086A08 7F051ED8 00000000 */ nop +/* 086A0C 7F051EDC 8D820164 */ lw $v0, 0x164($t4) +/* 086A10 7F051EE0 00C02025 */ move $a0, $a2 +/* 086A14 7F051EE4 10400007 */ beqz $v0, .L7F051F04 +/* 086A18 7F051EE8 00000000 */ nop +/* 086A1C 7F051EEC 8C450004 */ lw $a1, 4($v0) +/* 086A20 7F051EF0 AFA7001C */ sw $a3, 0x1c($sp) +/* 086A24 7F051EF4 0FC1475D */ jal link_objects +/* 086A28 7F051EF8 AFA60018 */ sw $a2, 0x18($sp) +/* 086A2C 7F051EFC 8FA60018 */ lw $a2, 0x18($sp) +/* 086A30 7F051F00 8FA7001C */ lw $a3, 0x1c($sp) +.L7F051F04: +/* 086A34 7F051F04 10000003 */ b .L7F051F14 +/* 086A38 7F051F08 8CC40010 */ lw $a0, 0x10($a2) +.L7F051F0C: +/* 086A3C 7F051F0C 10000004 */ b .L7F051F20 +/* 086A40 7F051F10 00001025 */ move $v0, $zero +.L7F051F14: +/* 086A44 7F051F14 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 086A48 7F051F18 8CE50018 */ lw $a1, 0x18($a3) +/* 086A4C 7F051F1C 24020001 */ li $v0, 1 +.L7F051F20: +/* 086A50 7F051F20 8FBF0014 */ lw $ra, 0x14($sp) +/* 086A54 7F051F24 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086A58 7F051F28 03E00008 */ jr $ra +/* 086A5C 7F051F2C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051F30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051F30 +/* 086A60 7F051F30 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086A64 7F051F34 AFA50024 */ sw $a1, 0x24($sp) +/* 086A68 7F051F38 AFA60028 */ sw $a2, 0x28($sp) +/* 086A6C 7F051F3C 00C02825 */ move $a1, $a2 +/* 086A70 7F051F40 AFBF001C */ sw $ra, 0x1c($sp) +/* 086A74 7F051F44 AFB00018 */ sw $s0, 0x18($sp) +/* 086A78 7F051F48 AFA7002C */ sw $a3, 0x2c($sp) +/* 086A7C 7F051F4C 00E03025 */ move $a2, $a3 +/* 086A80 7F051F50 00808025 */ move $s0, $a0 +/* 086A84 7F051F54 0FC14764 */ jal complete_object_data_block_return_position_entry +/* 086A88 7F051F58 8FA70030 */ lw $a3, 0x30($sp) +/* 086A8C 7F051F5C 10400018 */ beqz $v0, .L7F051FC0 +/* 086A90 7F051F60 AFA2002C */ sw $v0, 0x2c($sp) +/* 086A94 7F051F64 8E040014 */ lw $a0, 0x14($s0) +/* 086A98 7F051F68 50800016 */ beql $a0, $zero, .L7F051FC4 +/* 086A9C 7F051F6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 086AA0 7F051F70 960E0000 */ lhu $t6, ($s0) +/* 086AA4 7F051F74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 086AA8 7F051F78 448E2000 */ mtc1 $t6, $f4 +/* 086AAC 7F051F7C 05C10004 */ bgez $t6, .L7F051F90 +/* 086AB0 7F051F80 468021A0 */ cvt.s.w $f6, $f4 +/* 086AB4 7F051F84 44814000 */ mtc1 $at, $f8 +/* 086AB8 7F051F88 00000000 */ nop +/* 086ABC 7F051F8C 46083180 */ add.s $f6, $f6, $f8 +.L7F051F90: +/* 086AC0 7F051F90 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 086AC4 7F051F94 44815000 */ mtc1 $at, $f10 +/* 086AC8 7F051F98 C4900014 */ lwc1 $f16, 0x14($a0) +/* 086ACC 7F051F9C 460A3002 */ mul.s $f0, $f6, $f10 +/* 086AD0 7F051FA0 00000000 */ nop +/* 086AD4 7F051FA4 46008482 */ mul.s $f18, $f16, $f0 +/* 086AD8 7F051FA8 44059000 */ mfc1 $a1, $f18 +/* 086ADC 7F051FAC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 086AE0 7F051FB0 00000000 */ nop +/* 086AE4 7F051FB4 02002025 */ move $a0, $s0 +/* 086AE8 7F051FB8 0FC14787 */ jal sub_GAME_7F051E1C +/* 086AEC 7F051FBC 8FA50024 */ lw $a1, 0x24($sp) +.L7F051FC0: +/* 086AF0 7F051FC0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051FC4: +/* 086AF4 7F051FC4 8FA2002C */ lw $v0, 0x2c($sp) +/* 086AF8 7F051FC8 8FB00018 */ lw $s0, 0x18($sp) +/* 086AFC 7F051FCC 03E00008 */ jr $ra +/* 086B00 7F051FD0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051FD4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051FD4 +/* 086B04 7F051FD4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 086B08 7F051FD8 AFBF001C */ sw $ra, 0x1c($sp) +/* 086B0C 7F051FDC AFA40028 */ sw $a0, 0x28($sp) +/* 086B10 7F051FE0 AFA5002C */ sw $a1, 0x2c($sp) +/* 086B14 7F051FE4 84840004 */ lh $a0, 4($a0) +/* 086B18 7F051FE8 0FC15B0E */ jal load_model +/* 086B1C 7F051FEC AFA40020 */ sw $a0, 0x20($sp) +/* 086B20 7F051FF0 8FAF0020 */ lw $t7, 0x20($sp) +/* 086B24 7F051FF4 3C068004 */ lui $a2, %hi(PitemZ_entries) +/* 086B28 7F051FF8 8FA40028 */ lw $a0, 0x28($sp) +/* 086B2C 7F051FFC 000FC080 */ sll $t8, $t7, 2 +/* 086B30 7F052000 030FC023 */ subu $t8, $t8, $t7 +/* 086B34 7F052004 0018C080 */ sll $t8, $t8, 2 +/* 086B38 7F052008 00D83021 */ addu $a2, $a2, $t8 +/* 086B3C 7F05200C 8CC6A228 */ lw $a2, %lo(PitemZ_entries)($a2) +/* 086B40 7F052010 8FA5002C */ lw $a1, 0x2c($sp) +/* 086B44 7F052014 00003825 */ move $a3, $zero +/* 086B48 7F052018 0FC147CC */ jal sub_GAME_7F051F30 +/* 086B4C 7F05201C AFA00010 */ sw $zero, 0x10($sp) +/* 086B50 7F052020 8FBF001C */ lw $ra, 0x1c($sp) +/* 086B54 7F052024 27BD0028 */ addiu $sp, $sp, 0x28 +/* 086B58 7F052028 03E00008 */ jr $ra +/* 086B5C 7F05202C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052030(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052030 +/* 086B60 7F052030 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 086B64 7F052034 AFBF0014 */ sw $ra, 0x14($sp) +/* 086B68 7F052038 8C8E0074 */ lw $t6, 0x74($a0) +/* 086B6C 7F05203C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 086B70 7F052040 44814000 */ mtc1 $at, $f8 +/* 086B74 7F052044 448E2000 */ mtc1 $t6, $f4 +/* 086B78 7F052048 00000000 */ nop +/* 086B7C 7F05204C 468021A0 */ cvt.s.w $f6, $f4 +/* 086B80 7F052050 46083283 */ div.s $f10, $f6, $f8 +/* 086B84 7F052054 0FC147F5 */ jal sub_GAME_7F051FD4 +/* 086B88 7F052058 E48A0074 */ swc1 $f10, 0x74($a0) +/* 086B8C 7F05205C 8FBF0014 */ lw $ra, 0x14($sp) +/* 086B90 7F052060 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086B94 7F052064 03E00008 */ jr $ra +/* 086B98 7F052068 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void create_new_item_instance_of_model(void) { + +} +#else +GLOBAL_ASM( +.text +glabel create_new_item_instance_of_model +/* 086B9C 7F05206C 00047080 */ sll $t6, $a0, 2 +/* 086BA0 7F052070 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 086BA4 7F052074 01C47023 */ subu $t6, $t6, $a0 +/* 086BA8 7F052078 000E7080 */ sll $t6, $t6, 2 +/* 086BAC 7F05207C 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 086BB0 7F052080 01EE7821 */ addu $t7, $t7, $t6 +/* 086BB4 7F052084 8DEFA228 */ lw $t7, %lo(PitemZ_entries)($t7) +/* 086BB8 7F052088 AFBF001C */ sw $ra, 0x1c($sp) +/* 086BBC 7F05208C AFB10018 */ sw $s1, 0x18($sp) +/* 086BC0 7F052090 AFB00014 */ sw $s0, 0x14($sp) +/* 086BC4 7F052094 AFA500BC */ sw $a1, 0xbc($sp) +/* 086BC8 7F052098 AFA400B8 */ sw $a0, 0xb8($sp) +/* 086BCC 7F05209C 0FC15B0E */ jal load_model +/* 086BD0 7F0520A0 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 086BD4 7F0520A4 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086BD8 7F0520A8 00000000 */ nop +/* 086BDC 7F0520AC 00408025 */ move $s0, $v0 +/* 086BE0 7F0520B0 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086BE4 7F0520B4 8FA400B4 */ lw $a0, 0xb4($sp) +/* 086BE8 7F0520B8 2E040001 */ sltiu $a0, $s0, 1 +/* 086BEC 7F0520BC 2C450001 */ sltiu $a1, $v0, 1 +/* 086BF0 7F0520C0 8FA600B4 */ lw $a2, 0xb4($sp) +/* 086BF4 7F0520C4 0FC1449B */ jal sub_GAME_7F05126C +/* 086BF8 7F0520C8 AFA200AC */ sw $v0, 0xac($sp) +/* 086BFC 7F0520CC 8FA700AC */ lw $a3, 0xac($sp) +/* 086C00 7F0520D0 16000005 */ bnez $s0, .L7F0520E8 +/* 086C04 7F0520D4 00408825 */ move $s1, $v0 +/* 086C08 7F0520D8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086C0C 7F0520DC AFA700AC */ sw $a3, 0xac($sp) +/* 086C10 7F0520E0 8FA700AC */ lw $a3, 0xac($sp) +/* 086C14 7F0520E4 00408025 */ move $s0, $v0 +.L7F0520E8: +/* 086C18 7F0520E8 14E00004 */ bnez $a3, .L7F0520FC +/* 086C1C 7F0520EC 00000000 */ nop +/* 086C20 7F0520F0 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086C24 7F0520F4 8FA400B4 */ lw $a0, 0xb4($sp) +/* 086C28 7F0520F8 00403825 */ move $a3, $v0 +.L7F0520FC: +/* 086C2C 7F0520FC 1220002C */ beqz $s1, .L7F0521B0 +/* 086C30 7F052100 00000000 */ nop +/* 086C34 7F052104 1200002A */ beqz $s0, .L7F0521B0 +/* 086C38 7F052108 00000000 */ nop +/* 086C3C 7F05210C 10E00028 */ beqz $a3, .L7F0521B0 +/* 086C40 7F052110 27A20020 */ addiu $v0, $sp, 0x20 +/* 086C44 7F052114 3C188003 */ lui $t8, %hi(blank_08_object_preset_1) +/* 086C48 7F052118 27182194 */ addiu $t8, %lo(blank_08_object_preset_1) # addiu $t8, $t8, 0x2194 +/* 086C4C 7F05211C 27080084 */ addiu $t0, $t8, 0x84 +/* 086C50 7F052120 00404825 */ move $t1, $v0 +.L7F052124: +/* 086C54 7F052124 8F010000 */ lw $at, ($t8) +/* 086C58 7F052128 2718000C */ addiu $t8, $t8, 0xc +/* 086C5C 7F05212C 2529000C */ addiu $t1, $t1, 0xc +/* 086C60 7F052130 AD21FFF4 */ sw $at, -0xc($t1) +/* 086C64 7F052134 8F01FFF8 */ lw $at, -8($t8) +/* 086C68 7F052138 AD21FFF8 */ sw $at, -8($t1) +/* 086C6C 7F05213C 8F01FFFC */ lw $at, -4($t8) +/* 086C70 7F052140 1708FFF8 */ bne $t8, $t0, .L7F052124 +/* 086C74 7F052144 AD21FFFC */ sw $at, -4($t1) +/* 086C78 7F052148 8F010000 */ lw $at, ($t8) +/* 086C7C 7F05214C 00406025 */ move $t4, $v0 +/* 086C80 7F052150 02206825 */ move $t5, $s1 +/* 086C84 7F052154 244B0084 */ addiu $t3, $v0, 0x84 +/* 086C88 7F052158 AD210000 */ sw $at, ($t1) +.L7F05215C: +/* 086C8C 7F05215C 8D810000 */ lw $at, ($t4) +/* 086C90 7F052160 258C000C */ addiu $t4, $t4, 0xc +/* 086C94 7F052164 25AD000C */ addiu $t5, $t5, 0xc +/* 086C98 7F052168 ADA1FFF4 */ sw $at, -0xc($t5) +/* 086C9C 7F05216C 8D81FFF8 */ lw $at, -8($t4) +/* 086CA0 7F052170 ADA1FFF8 */ sw $at, -8($t5) +/* 086CA4 7F052174 8D81FFFC */ lw $at, -4($t4) +/* 086CA8 7F052178 158BFFF8 */ bne $t4, $t3, .L7F05215C +/* 086CAC 7F05217C ADA1FFFC */ sw $at, -4($t5) +/* 086CB0 7F052180 8D810000 */ lw $at, ($t4) +/* 086CB4 7F052184 02202025 */ move $a0, $s1 +/* 086CB8 7F052188 02003025 */ move $a2, $s0 +/* 086CBC 7F05218C ADA10000 */ sw $at, ($t5) +/* 086CC0 7F052190 8FAE00BC */ lw $t6, 0xbc($sp) +/* 086CC4 7F052194 A22E0080 */ sb $t6, 0x80($s1) +/* 086CC8 7F052198 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 086CCC 7F05219C A62F0004 */ sh $t7, 4($s1) +/* 086CD0 7F0521A0 0FC14764 */ jal complete_object_data_block_return_position_entry +/* 086CD4 7F0521A4 8FA500B4 */ lw $a1, 0xb4($sp) +/* 086CD8 7F0521A8 1000000A */ b .L7F0521D4 +/* 086CDC 7F0521AC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0521B0: +/* 086CE0 7F0521B0 10E00003 */ beqz $a3, .L7F0521C0 +/* 086CE4 7F0521B4 00008825 */ move $s1, $zero +/* 086CE8 7F0521B8 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086CEC 7F0521BC 00E02025 */ move $a0, $a3 +.L7F0521C0: +/* 086CF0 7F0521C0 52000004 */ beql $s0, $zero, .L7F0521D4 +/* 086CF4 7F0521C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 086CF8 7F0521C8 0FC0E921 */ jal set_last_obj_pos_data +/* 086CFC 7F0521CC 02002025 */ move $a0, $s0 +/* 086D00 7F0521D0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0521D4: +/* 086D04 7F0521D4 02201025 */ move $v0, $s1 +/* 086D08 7F0521D8 8FB10018 */ lw $s1, 0x18($sp) +/* 086D0C 7F0521DC 8FB00014 */ lw $s0, 0x14($sp) +/* 086D10 7F0521E0 03E00008 */ jr $ra +/* 086D14 7F0521E4 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + +#ifdef NONMATCHING +void set_0x4_in_runtime_flags_for_item_in_guards_hand(PCHRdata chr, int hand_index) { + // BROKEN: we need to first identify the struct assigned to handle_positiondata ptr + // function used to remove item from right/left hand or something, maybe position holding data? + void **item_in_hand_ptr; + + if (chr->handle_positiondata[hand_index] != 0) + { + item_in_hand_ptr = chr->handle_positiondata[hand_index] + 4; + item_in_hand_ptr[0x19] = (s32)(item_in_hand_ptr[0x19]) | 4; + } +} +#else +GLOBAL_ASM( +.text +glabel set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 086D18 7F0521E8 00057080 */ sll $t6, $a1, 2 +/* 086D1C 7F0521EC 008E7821 */ addu $t7, $a0, $t6 +/* 086D20 7F0521F0 8DE20160 */ lw $v0, 0x160($t7) +/* 086D24 7F0521F4 10400005 */ beqz $v0, .L7F05220C +/* 086D28 7F0521F8 00000000 */ nop +/* 086D2C 7F0521FC 8C430004 */ lw $v1, 4($v0) +/* 086D30 7F052200 8C780064 */ lw $t8, 0x64($v1) +/* 086D34 7F052204 37190004 */ ori $t9, $t8, 4 +/* 086D38 7F052208 AC790064 */ sw $t9, 0x64($v1) +.L7F05220C: +/* 086D3C 7F05220C 03E00008 */ jr $ra +/* 086D40 7F052210 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void something_with_generating_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_generating_object +/* 086D44 7F052214 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 086D48 7F052218 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 086D4C 7F05221C AFBF002C */ sw $ra, 0x2c($sp) +/* 086D50 7F052220 AFB20028 */ sw $s2, 0x28($sp) +/* 086D54 7F052224 AFB10024 */ sw $s1, 0x24($sp) +/* 086D58 7F052228 AFB00020 */ sw $s0, 0x20($sp) +/* 086D5C 7F05222C AFA400C0 */ sw $a0, 0xc0($sp) +/* 086D60 7F052230 AFA500C4 */ sw $a1, 0xc4($sp) +/* 086D64 7F052234 AFA600C8 */ sw $a2, 0xc8($sp) +/* 086D68 7F052238 15C0000A */ bnez $t6, .L7F052264 +/* 086D6C 7F05223C AFA700CC */ sw $a3, 0xcc($sp) +/* 086D70 7F052240 0005C080 */ sll $t8, $a1, 2 +/* 086D74 7F052244 0305C023 */ subu $t8, $t8, $a1 +/* 086D78 7F052248 0018C080 */ sll $t8, $t8, 2 +/* 086D7C 7F05224C 3C198004 */ lui $t9, %hi(PitemZ_entries) +/* 086D80 7F052250 0338C821 */ addu $t9, $t9, $t8 +/* 086D84 7F052254 8F39A228 */ lw $t9, %lo(PitemZ_entries)($t9) +/* 086D88 7F052258 00A02025 */ move $a0, $a1 +/* 086D8C 7F05225C 0FC15B0E */ jal load_model +/* 086D90 7F052260 AFB900D4 */ sw $t9, 0xd4($sp) +.L7F052264: +/* 086D94 7F052264 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086D98 7F052268 00000000 */ nop +/* 086D9C 7F05226C 00408825 */ move $s1, $v0 +/* 086DA0 7F052270 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086DA4 7F052274 8FA400D4 */ lw $a0, 0xd4($sp) +/* 086DA8 7F052278 8FB000D0 */ lw $s0, 0xd0($sp) +/* 086DAC 7F05227C 00409025 */ move $s2, $v0 +/* 086DB0 7F052280 2E240001 */ sltiu $a0, $s1, 1 +/* 086DB4 7F052284 16000004 */ bnez $s0, .L7F052298 +/* 086DB8 7F052288 2C450001 */ sltiu $a1, $v0, 1 +/* 086DBC 7F05228C 0FC1449B */ jal sub_GAME_7F05126C +/* 086DC0 7F052290 8FA600D4 */ lw $a2, 0xd4($sp) +/* 086DC4 7F052294 00408025 */ move $s0, $v0 +.L7F052298: +/* 086DC8 7F052298 16200004 */ bnez $s1, .L7F0522AC +/* 086DCC 7F05229C 00000000 */ nop +/* 086DD0 7F0522A0 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086DD4 7F0522A4 00000000 */ nop +/* 086DD8 7F0522A8 00408825 */ move $s1, $v0 +.L7F0522AC: +/* 086DDC 7F0522AC 16400004 */ bnez $s2, .L7F0522C0 +/* 086DE0 7F0522B0 00000000 */ nop +/* 086DE4 7F0522B4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086DE8 7F0522B8 8FA400D4 */ lw $a0, 0xd4($sp) +/* 086DEC 7F0522BC 00409025 */ move $s2, $v0 +.L7F0522C0: +/* 086DF0 7F0522C0 12000034 */ beqz $s0, .L7F052394 +/* 086DF4 7F0522C4 00000000 */ nop +/* 086DF8 7F0522C8 12200032 */ beqz $s1, .L7F052394 +/* 086DFC 7F0522CC 00000000 */ nop +/* 086E00 7F0522D0 12400030 */ beqz $s2, .L7F052394 +/* 086E04 7F0522D4 27A20030 */ addiu $v0, $sp, 0x30 +/* 086E08 7F0522D8 3C088003 */ lui $t0, %hi(blank_08_object_preset_4001) +/* 086E0C 7F0522DC 2508221C */ addiu $t0, %lo(blank_08_object_preset_4001) # addiu $t0, $t0, 0x221c +/* 086E10 7F0522E0 250A0084 */ addiu $t2, $t0, 0x84 +/* 086E14 7F0522E4 00405825 */ move $t3, $v0 +.L7F0522E8: +/* 086E18 7F0522E8 8D010000 */ lw $at, ($t0) +/* 086E1C 7F0522EC 2508000C */ addiu $t0, $t0, 0xc +/* 086E20 7F0522F0 256B000C */ addiu $t3, $t3, 0xc +/* 086E24 7F0522F4 AD61FFF4 */ sw $at, -0xc($t3) +/* 086E28 7F0522F8 8D01FFF8 */ lw $at, -8($t0) +/* 086E2C 7F0522FC AD61FFF8 */ sw $at, -8($t3) +/* 086E30 7F052300 8D01FFFC */ lw $at, -4($t0) +/* 086E34 7F052304 150AFFF8 */ bne $t0, $t2, .L7F0522E8 +/* 086E38 7F052308 AD61FFFC */ sw $at, -4($t3) +/* 086E3C 7F05230C 8D010000 */ lw $at, ($t0) +/* 086E40 7F052310 00407025 */ move $t6, $v0 +/* 086E44 7F052314 0200C025 */ move $t8, $s0 +/* 086E48 7F052318 244D0084 */ addiu $t5, $v0, 0x84 +/* 086E4C 7F05231C AD610000 */ sw $at, ($t3) +.L7F052320: +/* 086E50 7F052320 8DC10000 */ lw $at, ($t6) +/* 086E54 7F052324 25CE000C */ addiu $t6, $t6, 0xc +/* 086E58 7F052328 2718000C */ addiu $t8, $t8, 0xc +/* 086E5C 7F05232C AF01FFF4 */ sw $at, -0xc($t8) +/* 086E60 7F052330 8DC1FFF8 */ lw $at, -8($t6) +/* 086E64 7F052334 AF01FFF8 */ sw $at, -8($t8) +/* 086E68 7F052338 8DC1FFFC */ lw $at, -4($t6) +/* 086E6C 7F05233C 15CDFFF8 */ bne $t6, $t5, .L7F052320 +/* 086E70 7F052340 AF01FFFC */ sw $at, -4($t8) +/* 086E74 7F052344 8DC10000 */ lw $at, ($t6) +/* 086E78 7F052348 02002025 */ move $a0, $s0 +/* 086E7C 7F05234C 02203825 */ move $a3, $s1 +/* 086E80 7F052350 AF010000 */ sw $at, ($t8) +/* 086E84 7F052354 8FB900C8 */ lw $t9, 0xc8($sp) +/* 086E88 7F052358 A2190080 */ sb $t9, 0x80($s0) +/* 086E8C 7F05235C 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 086E90 7F052360 A60F0004 */ sh $t7, 4($s0) +/* 086E94 7F052364 8FA900CC */ lw $t1, 0xcc($sp) +/* 086E98 7F052368 352A4000 */ ori $t2, $t1, 0x4000 +/* 086E9C 7F05236C AE0A0008 */ sw $t2, 8($s0) +/* 086EA0 7F052370 8FA800C0 */ lw $t0, 0xc0($sp) +/* 086EA4 7F052374 850B0000 */ lh $t3, ($t0) +/* 086EA8 7F052378 A60B0006 */ sh $t3, 6($s0) +/* 086EAC 7F05237C AFB20010 */ sw $s2, 0x10($sp) +/* 086EB0 7F052380 8FA600D4 */ lw $a2, 0xd4($sp) +/* 086EB4 7F052384 0FC147CC */ jal sub_GAME_7F051F30 +/* 086EB8 7F052388 8FA500C0 */ lw $a1, 0xc0($sp) +/* 086EBC 7F05238C 1000000A */ b .L7F0523B8 +/* 086EC0 7F052390 00408825 */ move $s1, $v0 +.L7F052394: +/* 086EC4 7F052394 12400003 */ beqz $s2, .L7F0523A4 +/* 086EC8 7F052398 00000000 */ nop +/* 086ECC 7F05239C 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086ED0 7F0523A0 02402025 */ move $a0, $s2 +.L7F0523A4: +/* 086ED4 7F0523A4 52200005 */ beql $s1, $zero, .L7F0523BC +/* 086ED8 7F0523A8 8FBF002C */ lw $ra, 0x2c($sp) +/* 086EDC 7F0523AC 0FC0E921 */ jal set_last_obj_pos_data +/* 086EE0 7F0523B0 02202025 */ move $a0, $s1 +/* 086EE4 7F0523B4 00008825 */ move $s1, $zero +.L7F0523B8: +/* 086EE8 7F0523B8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0523BC: +/* 086EEC 7F0523BC 02201025 */ move $v0, $s1 +/* 086EF0 7F0523C0 8FB10024 */ lw $s1, 0x24($sp) +/* 086EF4 7F0523C4 8FB00020 */ lw $s0, 0x20($sp) +/* 086EF8 7F0523C8 8FB20028 */ lw $s2, 0x28($sp) +/* 086EFC 7F0523CC 03E00008 */ jr $ra +/* 086F00 7F0523D0 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void actor_draws_weapon_with_model(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_draws_weapon_with_model +/* 086F04 7F0523D4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086F08 7F0523D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 086F0C 7F0523DC AFA00010 */ sw $zero, 0x10($sp) +/* 086F10 7F0523E0 0FC14885 */ jal something_with_generating_object +/* 086F14 7F0523E4 AFA00014 */ sw $zero, 0x14($sp) +/* 086F18 7F0523E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 086F1C 7F0523EC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 086F20 7F0523F0 03E00008 */ jr $ra +/* 086F24 7F0523F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0523F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0523F8 +/* 086F28 7F0523F8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 086F2C 7F0523FC AFBF001C */ sw $ra, 0x1c($sp) +/* 086F30 7F052400 AFB10018 */ sw $s1, 0x18($sp) +/* 086F34 7F052404 AFB00014 */ sw $s0, 0x14($sp) +/* 086F38 7F052408 AFA500BC */ sw $a1, 0xbc($sp) +/* 086F3C 7F05240C AFA600C0 */ sw $a2, 0xc0($sp) +/* 086F40 7F052410 8C870004 */ lw $a3, 4($a0) +/* 086F44 7F052414 00E02025 */ move $a0, $a3 +/* 086F48 7F052418 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 086F4C 7F05241C AFA700B4 */ sw $a3, 0xb4($sp) +/* 086F50 7F052420 8FA700B4 */ lw $a3, 0xb4($sp) +/* 086F54 7F052424 10400046 */ beqz $v0, .L7F052540 +/* 086F58 7F052428 00401825 */ move $v1, $v0 +/* 086F5C 7F05242C 8C500004 */ lw $s0, 4($v0) +/* 086F60 7F052430 8E0E0064 */ lw $t6, 0x64($s0) +/* 086F64 7F052434 31CF0800 */ andi $t7, $t6, 0x800 +/* 086F68 7F052438 55E0003F */ bnezl $t7, .L7F052538 +/* 086F6C 7F05243C 90480001 */ lbu $t0, 1($v0) +/* 086F70 7F052440 8E18000C */ lw $t8, 0xc($s0) +/* 086F74 7F052444 3C098003 */ lui $t1, %hi(D_800322A4) +/* 086F78 7F052448 252922A4 */ addiu $t1, %lo(D_800322A4) # addiu $t1, $t1, 0x22a4 +/* 086F7C 7F05244C 0018CB00 */ sll $t9, $t8, 0xc +/* 086F80 7F052450 07200038 */ bltz $t9, .L7F052534 +/* 086F84 7F052454 27A80068 */ addiu $t0, $sp, 0x68 +/* 086F88 7F052458 8E110014 */ lw $s1, 0x14($s0) +/* 086F8C 7F05245C 252B003C */ addiu $t3, $t1, 0x3c +.L7F052460: +/* 086F90 7F052460 8D210000 */ lw $at, ($t1) +/* 086F94 7F052464 2529000C */ addiu $t1, $t1, 0xc +/* 086F98 7F052468 2508000C */ addiu $t0, $t0, 0xc +/* 086F9C 7F05246C AD01FFF4 */ sw $at, -0xc($t0) +/* 086FA0 7F052470 8D21FFF8 */ lw $at, -8($t1) +/* 086FA4 7F052474 AD01FFF8 */ sw $at, -8($t0) +/* 086FA8 7F052478 8D21FFFC */ lw $at, -4($t1) +/* 086FAC 7F05247C 152BFFF8 */ bne $t1, $t3, .L7F052460 +/* 086FB0 7F052480 AD01FFFC */ sw $at, -4($t0) +/* 086FB4 7F052484 8D210000 */ lw $at, ($t1) +/* 086FB8 7F052488 00003025 */ move $a2, $zero +/* 086FBC 7F05248C AD010000 */ sw $at, ($t0) +/* 086FC0 7F052490 906C0001 */ lbu $t4, 1($v1) +/* 086FC4 7F052494 8CE4001C */ lw $a0, 0x1c($a3) +/* 086FC8 7F052498 358D0002 */ ori $t5, $t4, 2 +/* 086FCC 7F05249C A06D0001 */ sb $t5, 1($v1) +/* 086FD0 7F0524A0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 086FD4 7F0524A4 8E25001C */ lw $a1, 0x1c($s1) +/* 086FD8 7F0524A8 8FAE00BC */ lw $t6, 0xbc($sp) +/* 086FDC 7F0524AC 24010001 */ li $at, 1 +/* 086FE0 7F0524B0 AFA20068 */ sw $v0, 0x68($sp) +/* 086FE4 7F0524B4 15C10009 */ bne $t6, $at, .L7F0524DC +/* 086FE8 7F0524B8 27A50020 */ addiu $a1, $sp, 0x20 +/* 086FEC 7F0524BC 3C018005 */ lui $at, %hi(D_800532F0) +/* 086FF0 7F0524C0 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 086FF4 7F0524C4 C42C32F0 */ lwc1 $f12, %lo(D_800532F0)($at) +/* 086FF8 7F0524C8 8FA40068 */ lw $a0, 0x68($sp) +/* 086FFC 7F0524CC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087000 7F0524D0 27A50020 */ addiu $a1, $sp, 0x20 +/* 087004 7F0524D4 27AF0020 */ addiu $t7, $sp, 0x20 +/* 087008 7F0524D8 AFAF0068 */ sw $t7, 0x68($sp) +.L7F0524DC: +/* 08700C 7F0524DC 8E380008 */ lw $t8, 8($s1) +/* 087010 7F0524E0 8704000E */ lh $a0, 0xe($t8) +/* 087014 7F0524E4 0004C980 */ sll $t9, $a0, 6 +/* 087018 7F0524E8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 08701C 7F0524EC 03202025 */ move $a0, $t9 +/* 087020 7F0524F0 AFA20078 */ sw $v0, 0x78($sp) +/* 087024 7F0524F4 27A40068 */ addiu $a0, $sp, 0x68 +/* 087028 7F0524F8 0FC1BC92 */ jal instcalcmatrices +/* 08702C 7F0524FC 02202825 */ move $a1, $s1 +/* 087030 7F052500 8FA200C0 */ lw $v0, 0xc0($sp) +/* 087034 7F052504 5040000F */ beql $v0, $zero, .L7F052544 +/* 087038 7F052508 8FBF001C */ lw $ra, 0x1c($sp) +/* 08703C 7F05250C 8E0A0064 */ lw $t2, 0x64($s0) +/* 087040 7F052510 02202825 */ move $a1, $s1 +/* 087044 7F052514 314B0080 */ andi $t3, $t2, 0x80 +/* 087048 7F052518 5560000A */ bnezl $t3, .L7F052544 +/* 08704C 7F05251C 8FBF001C */ lw $ra, 0x1c($sp) +/* 087050 7F052520 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 087054 7F052524 8C440000 */ lw $a0, ($v0) +/* 087058 7F052528 8FA900C0 */ lw $t1, 0xc0($sp) +/* 08705C 7F05252C 10000004 */ b .L7F052540 +/* 087060 7F052530 AD220000 */ sw $v0, ($t1) +.L7F052534: +/* 087064 7F052534 90480001 */ lbu $t0, 1($v0) +.L7F052538: +/* 087068 7F052538 310CFFFD */ andi $t4, $t0, 0xfffd +/* 08706C 7F05253C A04C0001 */ sb $t4, 1($v0) +.L7F052540: +/* 087070 7F052540 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052544: +/* 087074 7F052544 8FB00014 */ lw $s0, 0x14($sp) +/* 087078 7F052548 8FB10018 */ lw $s1, 0x18($sp) +/* 08707C 7F05254C 03E00008 */ jr $ra +/* 087080 7F052550 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void redirect_object_collectability_routines(void) { + +} +#else +GLOBAL_ASM( +.text +glabel redirect_object_collectability_routines +/* 087084 7F052554 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 087088 7F052558 AFBF0014 */ sw $ra, 0x14($sp) +/* 08708C 7F05255C 0FC141B7 */ jal object_collectability_routines +/* 087090 7F052560 00000000 */ nop +/* 087094 7F052564 8FBF0014 */ lw $ra, 0x14($sp) +/* 087098 7F052568 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08709C 7F05256C 03E00008 */ jr $ra +/* 0870A0 7F052570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052574(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052574 +/* 0870A4 7F052574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0870A8 7F052578 AFBF0014 */ sw $ra, 0x14($sp) +/* 0870AC 7F05257C AFA50024 */ sw $a1, 0x24($sp) +/* 0870B0 7F052580 8C820004 */ lw $v0, 4($a0) +/* 0870B4 7F052584 8C460014 */ lw $a2, 0x14($v0) +/* 0870B8 7F052588 50C0001B */ beql $a2, $zero, .L7F0525F8 +/* 0870BC 7F05258C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0870C0 7F052590 8CC20008 */ lw $v0, 8($a2) +/* 0870C4 7F052594 3C0E8004 */ lui $t6, %hi(prop_weapon_related) +/* 0870C8 7F052598 25CEC4FC */ addiu $t6, %lo(prop_weapon_related) # addiu $t6, $t6, -0x3b04 +/* 0870CC 7F05259C 8C4F0004 */ lw $t7, 4($v0) +/* 0870D0 7F0525A0 55CF0015 */ bnel $t6, $t7, .L7F0525F8 +/* 0870D4 7F0525A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0870D8 7F0525A8 8C430008 */ lw $v1, 8($v0) +/* 0870DC 7F0525AC 00C02025 */ move $a0, $a2 +/* 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 +/* 0870F0 7F0525C0 AFA60018 */ sw $a2, 0x18($sp) +/* 0870F4 7F0525C4 8FB80024 */ lw $t8, 0x24($sp) +/* 0870F8 7F0525C8 8FA60018 */ lw $a2, 0x18($sp) +/* 0870FC 7F0525CC A4580000 */ sh $t8, ($v0) +/* 087100 7F0525D0 8CD90008 */ lw $t9, 8($a2) +/* 087104 7F0525D4 8F230008 */ lw $v1, 8($t9) +/* 087108 7F0525D8 8C650008 */ lw $a1, 8($v1) +.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 +/* 087118 7F0525E8 00C02025 */ move $a0, $a2 +/* 08711C 7F0525EC 8FA80024 */ lw $t0, 0x24($sp) +/* 087120 7F0525F0 AC480000 */ sw $t0, ($v0) +/* 087124 7F0525F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0525F8: +/* 087128 7F0525F8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08712C 7F0525FC 03E00008 */ jr $ra +/* 087130 7F052600 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052604(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK*/ +/*D:800532F4*/ +glabel jpt_hat_worn +.word model_hat_fur +.word model_hat_fur +.word model_hat_fur +.word model_hat_greencap +.word model_hat_greencap +.text +glabel sub_GAME_7F052604 +/* 087134 7F052604 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 087138 7F052608 AFBF0014 */ sw $ra, 0x14($sp) +/* 08713C 7F05260C 8C820004 */ lw $v0, 4($a0) +/* 087140 7F052610 8C460014 */ lw $a2, 0x14($v0) +/* 087144 7F052614 50C00017 */ beql $a2, $zero, .L7F052674 +/* 087148 7F052618 00001025 */ move $v0, $zero +/* 08714C 7F05261C 8CC20008 */ lw $v0, 8($a2) +/* 087150 7F052620 3C0E8004 */ lui $t6, %hi(prop_weapon_related) +/* 087154 7F052624 25CEC4FC */ addiu $t6, %lo(prop_weapon_related) # addiu $t6, $t6, -0x3b04 +/* 087158 7F052628 8C4F0004 */ lw $t7, 4($v0) +/* 08715C 7F05262C 55CF0011 */ bnel $t6, $t7, .L7F052674 +/* 087160 7F052630 00001025 */ move $v0, $zero +/* 087164 7F052634 8C430008 */ lw $v1, 8($v0) +/* 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 +/* 087178 7F052648 00C02025 */ move $a0, $a2 +/* 08717C 7F05264C 10000009 */ b .L7F052674 +/* 087180 7F052650 84420000 */ lh $v0, ($v0) +/* 087184 7F052654 8C650008 */ lw $a1, 8($v1) +.L7F052658: +/* 087188 7F052658 50A00006 */ beql $a1, $zero, .L7F052674 +/* 08718C 7F05265C 00001025 */ move $v0, $zero +/* 087190 7F052660 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087194 7F052664 00C02025 */ move $a0, $a2 +/* 087198 7F052668 10000002 */ b .L7F052674 +/* 08719C 7F05266C 8C420000 */ lw $v0, ($v0) +/* 0871A0 7F052670 00001025 */ move $v0, $zero +.L7F052674: +/* 0871A4 7F052674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0871A8 7F052678 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0871AC 7F05267C 03E00008 */ jr $ra +/* 0871B0 7F052680 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_hat_model(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800532F4*/ +/*glabel jpt_hat_worn*/ +/*.word model_hat_fur*/ +/*.word model_hat_fur*/ +/*.word model_hat_fur*/ +/*.word model_hat_greencap*/ +/*.word model_hat_greencap*/ +.word model_hat_combat_helmet +.word model_hat_combat_helmet +.word model_hat_moonraker_headgear +.word model_hat_beret +.word model_hat_beret +.word model_hat_beret +.word model_hat_officerhat + +.text +glabel get_hat_model +/* 0871B4 7F052684 8C820004 */ lw $v0, 4($a0) +/* 0871B8 7F052688 844E0004 */ lh $t6, 4($v0) +/* 0871BC 7F05268C 2402FFFF */ li $v0, -1 +/* 0871C0 7F052690 25CFFF2C */ addiu $t7, $t6, -0xd4 +/* 0871C4 7F052694 2DE1000C */ sltiu $at, $t7, 0xc +/* 0871C8 7F052698 10200012 */ beqz $at, .L7F0526E4 +/* 0871CC 7F05269C 000F7880 */ sll $t7, $t7, 2 +/* 0871D0 7F0526A0 3C018005 */ lui $at, %hi(jpt_hat_worn) +/* 0871D4 7F0526A4 002F0821 */ addu $at, $at, $t7 +/* 0871D8 7F0526A8 8C2F32F4 */ lw $t7, %lo(jpt_hat_worn)($at) +/* 0871DC 7F0526AC 01E00008 */ jr $t7 +/* 0871E0 7F0526B0 00000000 */ nop +model_hat_fur: +/* 0871E4 7F0526B4 03E00008 */ jr $ra +/* 0871E8 7F0526B8 24020004 */ li $v0, 4 + +model_hat_greencap: +/* 0871EC 7F0526BC 03E00008 */ jr $ra +/* 0871F0 7F0526C0 24020001 */ li $v0, 1 + +model_hat_combat_helmet: +/* 0871F4 7F0526C4 03E00008 */ jr $ra +/* 0871F8 7F0526C8 24020003 */ li $v0, 3 + +model_hat_moonraker_headgear: +/* 0871FC 7F0526CC 03E00008 */ jr $ra +/* 087200 7F0526D0 24020005 */ li $v0, 5 + +model_hat_beret: +/* 087204 7F0526D4 03E00008 */ jr $ra +/* 087208 7F0526D8 00001025 */ move $v0, $zero + +model_hat_officerhat: +/* 08720C 7F0526DC 03E00008 */ jr $ra +/* 087210 7F0526E0 24020002 */ li $v0, 2 + +model_hat_default: +.L7F0526E4: +/* 087214 7F0526E4 03E00008 */ jr $ra +/* 087218 7F0526E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0526EC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053324 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053328 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005332C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053330 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053334 +.word 0x461c4000 /*10000.0*/ +glabel D_80053338 +.word 0x3ecccccd /*0.40000001*/ +glabel D_8005333C +.word 0x3ecccccd /*0.40000001*/ +glabel D_80053340 +.word 0x461c4000 /*10000.0*/ +glabel D_80053344 +.word 0x46b1de00 /*22767.0*/ +glabel D_80053348 +.word 0x459c4000 /*5000.0*/ +.text +glabel sub_GAME_7F0526EC +/* 08721C 7F0526EC 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 087220 7F0526F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 087224 7F0526F4 AFB00018 */ sw $s0, 0x18($sp) +/* 087228 7F0526F8 AFA500A4 */ sw $a1, 0xa4($sp) +/* 08722C 7F0526FC 9482009A */ lhu $v0, 0x9a($a0) +/* 087230 7F052700 24010005 */ li $at, 5 +/* 087234 7F052704 00808025 */ move $s0, $a0 +/* 087238 7F052708 10410003 */ beq $v0, $at, .L7F052718 +/* 08723C 7F05270C 24010009 */ li $at, 9 +/* 087240 7F052710 544100CA */ bnel $v0, $at, .L7F052A3C +/* 087244 7F052714 24010006 */ li $at, 6 +.L7F052718: +/* 087248 7F052718 86190006 */ lh $t9, 6($s0) +/* 08724C 7F05271C 3C098007 */ lui $t1, %hi(ptr_2xxxpresets) +/* 087250 7F052720 8D295D1C */ lw $t1, %lo(ptr_2xxxpresets)($t1) +/* 087254 7F052724 00194100 */ sll $t0, $t9, 4 +/* 087258 7F052728 01194021 */ addu $t0, $t0, $t9 +/* 08725C 7F05272C 00084080 */ sll $t0, $t0, 2 +/* 087260 7F052730 01091021 */ addu $v0, $t0, $t1 +/* 087264 7F052734 C4460010 */ lwc1 $f6, 0x10($v0) +/* 087268 7F052738 C4480020 */ lwc1 $f8, 0x20($v0) +/* 08726C 7F05273C C452001C */ lwc1 $f18, 0x1c($v0) +/* 087270 7F052740 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 087274 7F052744 46083102 */ mul.s $f4, $f6, $f8 +/* 087278 7F052748 24010009 */ li $at, 9 +/* 08727C 7F05274C 460A9402 */ mul.s $f16, $f18, $f10 +/* 087280 7F052750 46102181 */ sub.s $f6, $f4, $f16 +/* 087284 7F052754 E7A60038 */ swc1 $f6, 0x38($sp) +/* 087288 7F052758 C4480014 */ lwc1 $f8, 0x14($v0) +/* 08728C 7F05275C C4520018 */ lwc1 $f18, 0x18($v0) +/* 087290 7F052760 C450000C */ lwc1 $f16, 0xc($v0) +/* 087294 7F052764 C4440020 */ lwc1 $f4, 0x20($v0) +/* 087298 7F052768 46124282 */ mul.s $f10, $f8, $f18 +/* 08729C 7F05276C 00000000 */ nop +/* 0872A0 7F052770 46102202 */ mul.s $f8, $f4, $f16 +/* 0872A4 7F052774 46085481 */ sub.s $f18, $f10, $f8 +/* 0872A8 7F052778 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0872AC 7F05277C C444000C */ lwc1 $f4, 0xc($v0) +/* 0872B0 7F052780 C450001C */ lwc1 $f16, 0x1c($v0) +/* 0872B4 7F052784 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0872B8 7F052788 46102282 */ mul.s $f10, $f4, $f16 +/* 0872BC 7F05278C C4440010 */ lwc1 $f4, 0x10($v0) +/* 0872C0 7F052790 46044402 */ mul.s $f16, $f8, $f4 +/* 0872C4 7F052794 46105201 */ sub.s $f8, $f10, $f16 +/* 0872C8 7F052798 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0872CC 7F05279C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0872D0 7F0527A0 C444000C */ lwc1 $f4, 0xc($v0) +/* 0872D4 7F0527A4 460A2402 */ mul.s $f16, $f4, $f10 +/* 0872D8 7F0527A8 C4440000 */ lwc1 $f4, ($v0) +/* 0872DC 7F0527AC 46048280 */ add.s $f10, $f16, $f4 +/* 0872E0 7F0527B0 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0872E4 7F0527B4 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0872E8 7F0527B8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0872EC 7F0527BC 46048402 */ mul.s $f16, $f16, $f4 +/* 0872F0 7F0527C0 C4440004 */ lwc1 $f4, 4($v0) +/* 0872F4 7F0527C4 46048400 */ add.s $f16, $f16, $f4 +/* 0872F8 7F0527C8 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0872FC 7F0527CC C4440014 */ lwc1 $f4, 0x14($v0) +/* 087300 7F0527D0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 087304 7F0527D4 C4460034 */ lwc1 $f6, 0x34($v0) +/* 087308 7F0527D8 46062102 */ mul.s $f4, $f4, $f6 +/* 08730C 7F0527DC C4460008 */ lwc1 $f6, 8($v0) +/* 087310 7F0527E0 46062100 */ add.s $f4, $f4, $f6 +/* 087314 7F0527E4 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 087318 7F0527E8 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 08731C 7F0527EC 960A009A */ lhu $t2, 0x9a($s0) +/* 087320 7F0527F0 15410010 */ bne $t2, $at, .L7F052834 +/* 087324 7F0527F4 00000000 */ nop +/* 087328 7F0527F8 E7B20020 */ swc1 $f18, 0x20($sp) +/* 08732C 7F0527FC C4520030 */ lwc1 $f18, 0x30($v0) +/* 087330 7F052800 46123182 */ mul.s $f6, $f6, $f18 +/* 087334 7F052804 46065480 */ add.s $f18, $f10, $f6 +/* 087338 7F052808 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 08733C 7F05280C E7B20054 */ swc1 $f18, 0x54($sp) +/* 087340 7F052810 C4460030 */ lwc1 $f6, 0x30($v0) +/* 087344 7F052814 46065482 */ mul.s $f18, $f10, $f6 +/* 087348 7F052818 46128280 */ add.s $f10, $f16, $f18 +/* 08734C 7F05281C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 087350 7F052820 C4460030 */ lwc1 $f6, 0x30($v0) +/* 087354 7F052824 46064402 */ mul.s $f16, $f8, $f6 +/* 087358 7F052828 46102480 */ add.s $f18, $f4, $f16 +/* 08735C 7F05282C 1000002A */ b .L7F0528D8 +/* 087360 7F052830 E7B2005C */ swc1 $f18, 0x5c($sp) +.L7F052834: +/* 087364 7F052834 8E0B0008 */ lw $t3, 8($s0) +/* 087368 7F052838 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 08736C 7F05283C C7A60038 */ lwc1 $f6, 0x38($sp) +/* 087370 7F052840 000B6080 */ sll $t4, $t3, 2 +/* 087374 7F052844 05830014 */ bgezl $t4, .L7F052898 +/* 087378 7F052848 C450002C */ lwc1 $f16, 0x2c($v0) +/* 08737C 7F05284C C4480030 */ lwc1 $f8, 0x30($v0) +/* 087380 7F052850 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 087384 7F052854 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 087388 7F052858 46085182 */ mul.s $f6, $f10, $f8 +/* 08738C 7F05285C 46062400 */ add.s $f16, $f4, $f6 +/* 087390 7F052860 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 087394 7F052864 E7B00054 */ swc1 $f16, 0x54($sp) +/* 087398 7F052868 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 08739C 7F05286C C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0873A0 7F052870 460A9202 */ mul.s $f8, $f18, $f10 +/* 0873A4 7F052874 46082180 */ add.s $f6, $f4, $f8 +/* 0873A8 7F052878 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0873AC 7F05287C E7A60058 */ swc1 $f6, 0x58($sp) +/* 0873B0 7F052880 C4520030 */ lwc1 $f18, 0x30($v0) +/* 0873B4 7F052884 46128282 */ mul.s $f10, $f16, $f18 +/* 0873B8 7F052888 460A2200 */ add.s $f8, $f4, $f10 +/* 0873BC 7F05288C 10000012 */ b .L7F0528D8 +/* 0873C0 7F052890 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0873C4 7F052894 C450002C */ lwc1 $f16, 0x2c($v0) +.L7F052898: +/* 0873C8 7F052898 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0873CC 7F05289C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0873D0 7F0528A0 46103482 */ mul.s $f18, $f6, $f16 +/* 0873D4 7F0528A4 46122280 */ add.s $f10, $f4, $f18 +/* 0873D8 7F0528A8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0873DC 7F0528AC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0873E0 7F0528B0 C446002C */ lwc1 $f6, 0x2c($v0) +/* 0873E4 7F0528B4 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0873E8 7F0528B8 46064402 */ mul.s $f16, $f8, $f6 +/* 0873EC 7F0528BC 46102480 */ add.s $f18, $f4, $f16 +/* 0873F0 7F0528C0 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0873F4 7F0528C4 E7B20058 */ swc1 $f18, 0x58($sp) +/* 0873F8 7F0528C8 C448002C */ lwc1 $f8, 0x2c($v0) +/* 0873FC 7F0528CC 46085182 */ mul.s $f6, $f10, $f8 +/* 087400 7F0528D0 46062400 */ add.s $f16, $f4, $f6 +/* 087404 7F0528D4 E7B0005C */ swc1 $f16, 0x5c($sp) +.L7F0528D8: +/* 087408 7F0528D8 C6120058 */ lwc1 $f18, 0x58($s0) +/* 08740C 7F0528DC C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 087410 7F0528E0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 087414 7F0528E4 26040018 */ addiu $a0, $s0, 0x18 +/* 087418 7F0528E8 460A9201 */ sub.s $f8, $f18, $f10 +/* 08741C 7F0528EC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 087420 7F0528F0 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087424 7F0528F4 E7A80048 */ swc1 $f8, 0x48($sp) +/* 087428 7F0528F8 C604005C */ lwc1 $f4, 0x5c($s0) +/* 08742C 7F0528FC 46062401 */ sub.s $f16, $f4, $f6 +/* 087430 7F052900 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 087434 7F052904 C6120060 */ lwc1 $f18, 0x60($s0) +/* 087438 7F052908 460A9201 */ sub.s $f8, $f18, $f10 +/* 08743C 7F05290C 0FC16008 */ jal matrix_4x4_copy +/* 087440 7F052910 E7A80050 */ swc1 $f8, 0x50($sp) +/* 087444 7F052914 27A40048 */ addiu $a0, $sp, 0x48 +/* 087448 7F052918 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 08744C 7F05291C 27A50060 */ addiu $a1, $sp, 0x60 +/* 087450 7F052920 27A40060 */ addiu $a0, $sp, 0x60 +/* 087454 7F052924 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087458 7F052928 8FA500A4 */ lw $a1, 0xa4($sp) +/* 08745C 7F05292C 960D009A */ lhu $t5, 0x9a($s0) +/* 087460 7F052930 24010009 */ li $at, 9 +/* 087464 7F052934 55A1001D */ bnel $t5, $at, .L7F0529AC +/* 087468 7F052938 8E180008 */ lw $t8, 8($s0) +/* 08746C 7F05293C 8E0E0008 */ lw $t6, 8($s0) +/* 087470 7F052940 3C018005 */ lui $at, %hi(D_80053328) +/* 087474 7F052944 000E7880 */ sll $t7, $t6, 2 +/* 087478 7F052948 05E1000D */ bgez $t7, .L7F052980 +/* 08747C 7F05294C 00000000 */ nop +/* 087480 7F052950 3C018005 */ lui $at, %hi(D_80053324) +/* 087484 7F052954 C4203324 */ lwc1 $f0, %lo(D_80053324)($at) +/* 087488 7F052958 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08748C 7F05295C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 087490 7F052960 44818000 */ mtc1 $at, $f16 +/* 087494 7F052964 46002182 */ mul.s $f6, $f4, $f0 +/* 087498 7F052968 27A50060 */ addiu $a1, $sp, 0x60 +/* 08749C 7F05296C 46103483 */ div.s $f18, $f6, $f16 +/* 0874A0 7F052970 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0874A4 7F052974 46120301 */ sub.s $f12, $f0, $f18 +/* 0874A8 7F052978 10000025 */ b .L7F052A10 +/* 0874AC 7F05297C 27A40060 */ addiu $a0, $sp, 0x60 +.L7F052980: +/* 0874B0 7F052980 C4203328 */ lwc1 $f0, %lo(D_80053328)($at) +/* 0874B4 7F052984 C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 0874B8 7F052988 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0874BC 7F05298C 44812000 */ mtc1 $at, $f4 +/* 0874C0 7F052990 46005202 */ mul.s $f8, $f10, $f0 +/* 0874C4 7F052994 27A50060 */ addiu $a1, $sp, 0x60 +/* 0874C8 7F052998 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0874CC 7F05299C 46044303 */ div.s $f12, $f8, $f4 +/* 0874D0 7F0529A0 1000001B */ b .L7F052A10 +/* 0874D4 7F0529A4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0874D8 7F0529A8 8E180008 */ lw $t8, 8($s0) +.L7F0529AC: +/* 0874DC 7F0529AC 3C018005 */ lui $at, %hi(D_80053330) +/* 0874E0 7F0529B0 0018C880 */ sll $t9, $t8, 2 +/* 0874E4 7F0529B4 0721000D */ bgez $t9, .L7F0529EC +/* 0874E8 7F0529B8 00000000 */ nop +/* 0874EC 7F0529BC 3C018005 */ lui $at, %hi(D_8005332C) +/* 0874F0 7F0529C0 C420332C */ lwc1 $f0, %lo(D_8005332C)($at) +/* 0874F4 7F0529C4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0874F8 7F0529C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0874FC 7F0529CC 44819000 */ mtc1 $at, $f18 +/* 087500 7F0529D0 46003402 */ mul.s $f16, $f6, $f0 +/* 087504 7F0529D4 27A50060 */ addiu $a1, $sp, 0x60 +/* 087508 7F0529D8 46128283 */ div.s $f10, $f16, $f18 +/* 08750C 7F0529DC 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 087510 7F0529E0 460A0301 */ sub.s $f12, $f0, $f10 +/* 087514 7F0529E4 1000000A */ b .L7F052A10 +/* 087518 7F0529E8 27A40060 */ addiu $a0, $sp, 0x60 +.L7F0529EC: +/* 08751C 7F0529EC C4203330 */ lwc1 $f0, %lo(D_80053330)($at) +/* 087520 7F0529F0 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 087524 7F0529F4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 087528 7F0529F8 44813000 */ mtc1 $at, $f6 +/* 08752C 7F0529FC 46004102 */ mul.s $f4, $f8, $f0 +/* 087530 7F052A00 27A50060 */ addiu $a1, $sp, 0x60 +/* 087534 7F052A04 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 087538 7F052A08 46062303 */ div.s $f12, $f4, $f6 +/* 08753C 7F052A0C 27A40060 */ addiu $a0, $sp, 0x60 +.L7F052A10: +/* 087540 7F052A10 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087544 7F052A14 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087548 7F052A18 27A40054 */ addiu $a0, $sp, 0x54 +/* 08754C 7F052A1C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 087550 7F052A20 27A50060 */ addiu $a1, $sp, 0x60 +/* 087554 7F052A24 27A40060 */ addiu $a0, $sp, 0x60 +/* 087558 7F052A28 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 08755C 7F052A2C 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087560 7F052A30 10000027 */ b .L7F052AD0 +/* 087564 7F052A34 96080098 */ lhu $t0, 0x98($s0) +/* 087568 7F052A38 24010006 */ li $at, 6 +.L7F052A3C: +/* 08756C 7F052A3C 10410004 */ beq $v0, $at, .L7F052A50 +/* 087570 7F052A40 26040018 */ addiu $a0, $s0, 0x18 +/* 087574 7F052A44 24010007 */ li $at, 7 +/* 087578 7F052A48 54410009 */ bnel $v0, $at, .L7F052A70 +/* 08757C 7F052A4C C61000A8 */ lwc1 $f16, 0xa8($s0) +.L7F052A50: +/* 087580 7F052A50 0FC16008 */ jal matrix_4x4_copy +/* 087584 7F052A54 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087588 7F052A58 26040058 */ addiu $a0, $s0, 0x58 +/* 08758C 7F052A5C 0FC16266 */ jal matrix_4x4_set_position +/* 087590 7F052A60 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087594 7F052A64 1000001A */ b .L7F052AD0 +/* 087598 7F052A68 96080098 */ lhu $t0, 0x98($s0) +/* 08759C 7F052A6C C61000A8 */ lwc1 $f16, 0xa8($s0) +.L7F052A70: +/* 0875A0 7F052A70 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 0875A4 7F052A74 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0875A8 7F052A78 26040018 */ addiu $a0, $s0, 0x18 +/* 0875AC 7F052A7C 46128282 */ mul.s $f10, $f16, $f18 +/* 0875B0 7F052A80 8FA500A4 */ lw $a1, 0xa4($sp) +/* 0875B4 7F052A84 46085100 */ add.s $f4, $f10, $f8 +/* 0875B8 7F052A88 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0875BC 7F052A8C C61000B4 */ lwc1 $f16, 0xb4($s0) +/* 0875C0 7F052A90 C60600AC */ lwc1 $f6, 0xac($s0) +/* 0875C4 7F052A94 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0875C8 7F052A98 46103482 */ mul.s $f18, $f6, $f16 +/* 0875CC 7F052A9C 460A9200 */ add.s $f8, $f18, $f10 +/* 0875D0 7F052AA0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0875D4 7F052AA4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0875D8 7F052AA8 C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 0875DC 7F052AAC C6120060 */ lwc1 $f18, 0x60($s0) +/* 0875E0 7F052AB0 46062402 */ mul.s $f16, $f4, $f6 +/* 0875E4 7F052AB4 46128280 */ add.s $f10, $f16, $f18 +/* 0875E8 7F052AB8 0FC16008 */ jal matrix_4x4_copy +/* 0875EC 7F052ABC E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0875F0 7F052AC0 27A4002C */ addiu $a0, $sp, 0x2c +/* 0875F4 7F052AC4 0FC16266 */ jal matrix_4x4_set_position +/* 0875F8 7F052AC8 8FA500A4 */ lw $a1, 0xa4($sp) +/* 0875FC 7F052ACC 96080098 */ lhu $t0, 0x98($s0) +.L7F052AD0: +/* 087600 7F052AD0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 087604 7F052AD4 31090008 */ andi $t1, $t0, 8 +/* 087608 7F052AD8 51200005 */ beql $t1, $zero, .L7F052AF0 +/* 08760C 7F052ADC 8FBF001C */ lw $ra, 0x1c($sp) +/* 087610 7F052AE0 44816000 */ mtc1 $at, $f12 +/* 087614 7F052AE4 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 087618 7F052AE8 8FA500A4 */ lw $a1, 0xa4($sp) +/* 08761C 7F052AEC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052AF0: +/* 087620 7F052AF0 8FB00018 */ lw $s0, 0x18($sp) +/* 087624 7F052AF4 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 087628 7F052AF8 03E00008 */ jr $ra +/* 08762C 7F052AFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052B00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052B00 +/* 087630 7F052B00 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 087634 7F052B04 AFBF001C */ sw $ra, 0x1c($sp) +/* 087638 7F052B08 AFB00018 */ sw $s0, 0x18($sp) +/* 08763C 7F052B0C 8C8E0014 */ lw $t6, 0x14($a0) +/* 087640 7F052B10 248300D0 */ addiu $v1, $a0, 0xd0 +/* 087644 7F052B14 00808025 */ move $s0, $a0 +/* 087648 7F052B18 8DCF0008 */ lw $t7, 8($t6) +/* 08764C 7F052B1C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087650 7F052B20 8DF80000 */ lw $t8, ($t7) +/* 087654 7F052B24 8F190014 */ lw $t9, 0x14($t8) +/* 087658 7F052B28 8F220004 */ lw $v0, 4($t9) +/* 08765C 7F052B2C 8C410000 */ lw $at, ($v0) +/* 087660 7F052B30 AC610000 */ sw $at, ($v1) +/* 087664 7F052B34 8C4A0004 */ lw $t2, 4($v0) +/* 087668 7F052B38 AC6A0004 */ sw $t2, 4($v1) +/* 08766C 7F052B3C 8C410008 */ lw $at, 8($v0) +/* 087670 7F052B40 AC610008 */ sw $at, 8($v1) +/* 087674 7F052B44 8C4A000C */ lw $t2, 0xc($v0) +/* 087678 7F052B48 AC6A000C */ sw $t2, 0xc($v1) +/* 08767C 7F052B4C 8C410010 */ lw $at, 0x10($v0) +/* 087680 7F052B50 AC610010 */ sw $at, 0x10($v1) +/* 087684 7F052B54 8C4A0014 */ lw $t2, 0x14($v0) +/* 087688 7F052B58 AC6A0014 */ sw $t2, 0x14($v1) +/* 08768C 7F052B5C 8C410018 */ lw $at, 0x18($v0) +/* 087690 7F052B60 AC610018 */ sw $at, 0x18($v1) +/* 087694 7F052B64 948B0098 */ lhu $t3, 0x98($a0) +/* 087698 7F052B68 316C0004 */ andi $t4, $t3, 4 +/* 08769C 7F052B6C 51800015 */ beql $t4, $zero, .L7F052BC4 +/* 0876A0 7F052B70 C61000B4 */ lwc1 $f16, 0xb4($s0) +/* 0876A4 7F052B74 948D009A */ lhu $t5, 0x9a($a0) +/* 0876A8 7F052B78 24010004 */ li $at, 4 +/* 0876AC 7F052B7C 55A1000A */ bnel $t5, $at, .L7F052BA8 +/* 0876B0 7F052B80 C4400004 */ lwc1 $f0, 4($v0) +/* 0876B4 7F052B84 C4400010 */ lwc1 $f0, 0x10($v0) +/* 0876B8 7F052B88 C444000C */ lwc1 $f4, 0xc($v0) +/* 0876BC 7F052B8C C48800B4 */ lwc1 $f8, 0xb4($a0) +/* 0876C0 7F052B90 46002181 */ sub.s $f6, $f4, $f0 +/* 0876C4 7F052B94 46083282 */ mul.s $f10, $f6, $f8 +/* 0876C8 7F052B98 460A0400 */ add.s $f16, $f0, $f10 +/* 0876CC 7F052B9C 10000008 */ b .L7F052BC0 +/* 0876D0 7F052BA0 E49000E0 */ swc1 $f16, 0xe0($a0) +/* 0876D4 7F052BA4 C4400004 */ lwc1 $f0, 4($v0) +.L7F052BA8: +/* 0876D8 7F052BA8 C4520008 */ lwc1 $f18, 8($v0) +/* 0876DC 7F052BAC C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0876E0 7F052BB0 46009101 */ sub.s $f4, $f18, $f0 +/* 0876E4 7F052BB4 46062202 */ mul.s $f8, $f4, $f6 +/* 0876E8 7F052BB8 46080280 */ add.s $f10, $f0, $f8 +/* 0876EC 7F052BBC E60A00D4 */ swc1 $f10, 0xd4($s0) +.L7F052BC0: +/* 0876F0 7F052BC0 C61000B4 */ lwc1 $f16, 0xb4($s0) +.L7F052BC4: +/* 0876F4 7F052BC4 C6120088 */ lwc1 $f18, 0x88($s0) +/* 0876F8 7F052BC8 02002025 */ move $a0, $s0 +/* 0876FC 7F052BCC 4610903E */ c.le.s $f18, $f16 +/* 087700 7F052BD0 00000000 */ nop +/* 087704 7F052BD4 45000004 */ bc1f .L7F052BE8 +/* 087708 7F052BD8 00000000 */ nop +/* 08770C 7F052BDC 8E0E0068 */ lw $t6, 0x68($s0) +/* 087710 7F052BE0 10000065 */ b .L7F052D78 +/* 087714 7F052BE4 ADC00000 */ sw $zero, ($t6) +.L7F052BE8: +/* 087718 7F052BE8 0FC149BB */ jal sub_GAME_7F0526EC +/* 08771C 7F052BEC AFA30028 */ sw $v1, 0x28($sp) +/* 087720 7F052BF0 8E070068 */ lw $a3, 0x68($s0) +/* 087724 7F052BF4 8FA40028 */ lw $a0, 0x28($sp) +/* 087728 7F052BF8 27A5002C */ addiu $a1, $sp, 0x2c +/* 08772C 7F052BFC 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 087730 7F052C00 24E60004 */ addiu $a2, $a3, 4 +/* 087734 7F052C04 9602009A */ lhu $v0, 0x9a($s0) +/* 087738 7F052C08 24010004 */ li $at, 4 +/* 08773C 7F052C0C 8FA40028 */ lw $a0, 0x28($sp) +/* 087740 7F052C10 54410009 */ bnel $v0, $at, .L7F052C38 +/* 087744 7F052C14 24010008 */ li $at, 8 +/* 087748 7F052C18 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 08774C 7F052C1C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087750 7F052C20 C604005C */ lwc1 $f4, 0x5c($s0) +/* 087754 7F052C24 8E0F0068 */ lw $t7, 0x68($s0) +/* 087758 7F052C28 46040180 */ add.s $f6, $f0, $f4 +/* 08775C 7F052C2C 1000001B */ b .L7F052C9C +/* 087760 7F052C30 E5E60048 */ swc1 $f6, 0x48($t7) +/* 087764 7F052C34 24010008 */ li $at, 8 +.L7F052C38: +/* 087768 7F052C38 14410008 */ bne $v0, $at, .L7F052C5C +/* 08776C 7F052C3C 8FA40028 */ lw $a0, 0x28($sp) +/* 087770 7F052C40 3C018005 */ lui $at, %hi(D_80053334) +/* 087774 7F052C44 C42A3334 */ lwc1 $f10, %lo(D_80053334)($at) +/* 087778 7F052C48 C608005C */ lwc1 $f8, 0x5c($s0) +/* 08777C 7F052C4C 8E180068 */ lw $t8, 0x68($s0) +/* 087780 7F052C50 460A4401 */ sub.s $f16, $f8, $f10 +/* 087784 7F052C54 10000011 */ b .L7F052C9C +/* 087788 7F052C58 E7100048 */ swc1 $f16, 0x48($t8) +.L7F052C5C: +/* 08778C 7F052C5C 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 087790 7F052C60 27A5002C */ addiu $a1, $sp, 0x2c +/* 087794 7F052C64 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 087798 7F052C68 8E190068 */ lw $t9, 0x68($s0) +/* 08779C 7F052C6C 46120100 */ add.s $f4, $f0, $f18 +/* 0877A0 7F052C70 E7240048 */ swc1 $f4, 0x48($t9) +/* 0877A4 7F052C74 96090098 */ lhu $t1, 0x98($s0) +/* 0877A8 7F052C78 31280001 */ andi $t0, $t1, 1 +/* 0877AC 7F052C7C 51000008 */ beql $t0, $zero, .L7F052CA0 +/* 0877B0 7F052C80 9602009A */ lhu $v0, 0x9a($s0) +/* 0877B4 7F052C84 8E070068 */ lw $a3, 0x68($s0) +/* 0877B8 7F052C88 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0877BC 7F052C8C 44814000 */ mtc1 $at, $f8 +/* 0877C0 7F052C90 C4E60048 */ lwc1 $f6, 0x48($a3) +/* 0877C4 7F052C94 46083281 */ sub.s $f10, $f6, $f8 +/* 0877C8 7F052C98 E4EA0048 */ swc1 $f10, 0x48($a3) +.L7F052C9C: +/* 0877CC 7F052C9C 9602009A */ lhu $v0, 0x9a($s0) +.L7F052CA0: +/* 0877D0 7F052CA0 24010006 */ li $at, 6 +/* 0877D4 7F052CA4 14410008 */ bne $v0, $at, .L7F052CC8 +/* 0877D8 7F052CA8 3C018005 */ lui $at, %hi(D_80053338) +/* 0877DC 7F052CAC C4303338 */ lwc1 $f16, %lo(D_80053338)($at) +/* 0877E0 7F052CB0 C6120084 */ lwc1 $f18, 0x84($s0) +/* 0877E4 7F052CB4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0877E8 7F052CB8 46128102 */ mul.s $f4, $f16, $f18 +/* 0877EC 7F052CBC 4606203C */ c.lt.s $f4, $f6 +/* 0877F0 7F052CC0 00000000 */ nop +/* 0877F4 7F052CC4 4501000B */ bc1t .L7F052CF4 +.L7F052CC8: +/* 0877F8 7F052CC8 24010007 */ li $at, 7 +/* 0877FC 7F052CCC 14410010 */ bne $v0, $at, .L7F052D10 +/* 087800 7F052CD0 3C018005 */ lui $at, %hi(D_8005333C) +/* 087804 7F052CD4 C428333C */ lwc1 $f8, %lo(D_8005333C)($at) +/* 087808 7F052CD8 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 08780C 7F052CDC C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 087810 7F052CE0 460A4402 */ mul.s $f16, $f8, $f10 +/* 087814 7F052CE4 4612803C */ c.lt.s $f16, $f18 +/* 087818 7F052CE8 00000000 */ nop +/* 08781C 7F052CEC 45020009 */ bc1fl .L7F052D14 +/* 087820 7F052CF0 24010008 */ li $at, 8 +.L7F052CF4: +/* 087824 7F052CF4 8E070068 */ lw $a3, 0x68($s0) +/* 087828 7F052CF8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 08782C 7F052CFC 44813000 */ mtc1 $at, $f6 +/* 087830 7F052D00 C4E40048 */ lwc1 $f4, 0x48($a3) +/* 087834 7F052D04 46062200 */ add.s $f8, $f4, $f6 +/* 087838 7F052D08 1000001B */ b .L7F052D78 +/* 08783C 7F052D0C E4E80044 */ swc1 $f8, 0x44($a3) +.L7F052D10: +/* 087840 7F052D10 24010008 */ li $at, 8 +.L7F052D14: +/* 087844 7F052D14 14410008 */ bne $v0, $at, .L7F052D38 +/* 087848 7F052D18 8FA40028 */ lw $a0, 0x28($sp) +/* 08784C 7F052D1C 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 087850 7F052D20 44818000 */ mtc1 $at, $f16 +/* 087854 7F052D24 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 087858 7F052D28 8E0A0068 */ lw $t2, 0x68($s0) +/* 08785C 7F052D2C 46105480 */ add.s $f18, $f10, $f16 +/* 087860 7F052D30 10000011 */ b .L7F052D78 +/* 087864 7F052D34 E5520044 */ swc1 $f18, 0x44($t2) +.L7F052D38: +/* 087868 7F052D38 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 08786C 7F052D3C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087870 7F052D40 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 087874 7F052D44 8E0B0068 */ lw $t3, 0x68($s0) +/* 087878 7F052D48 46040180 */ add.s $f6, $f0, $f4 +/* 08787C 7F052D4C E5660044 */ swc1 $f6, 0x44($t3) +/* 087880 7F052D50 960C0098 */ lhu $t4, 0x98($s0) +/* 087884 7F052D54 318D0001 */ andi $t5, $t4, 1 +/* 087888 7F052D58 51A00008 */ beql $t5, $zero, .L7F052D7C +/* 08788C 7F052D5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 087890 7F052D60 8E070068 */ lw $a3, 0x68($s0) +/* 087894 7F052D64 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 087898 7F052D68 44815000 */ mtc1 $at, $f10 +/* 08789C 7F052D6C C4E80044 */ lwc1 $f8, 0x44($a3) +/* 0878A0 7F052D70 460A4400 */ add.s $f16, $f8, $f10 +/* 0878A4 7F052D74 E4F00044 */ swc1 $f16, 0x44($a3) +.L7F052D78: +/* 0878A8 7F052D78 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052D7C: +/* 0878AC 7F052D7C 8FB00018 */ lw $s0, 0x18($sp) +/* 0878B0 7F052D80 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0878B4 7F052D84 03E00008 */ jr $ra +/* 0878B8 7F052D88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052D8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052D8C +/* 0878BC 7F052D8C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0878C0 7F052D90 AFBF003C */ sw $ra, 0x3c($sp) +/* 0878C4 7F052D94 AFBE0038 */ sw $fp, 0x38($sp) +/* 0878C8 7F052D98 AFB70034 */ sw $s7, 0x34($sp) +/* 0878CC 7F052D9C AFB60030 */ sw $s6, 0x30($sp) +/* 0878D0 7F052DA0 AFB5002C */ sw $s5, 0x2c($sp) +/* 0878D4 7F052DA4 AFB40028 */ sw $s4, 0x28($sp) +/* 0878D8 7F052DA8 AFB30024 */ sw $s3, 0x24($sp) +/* 0878DC 7F052DAC AFB20020 */ sw $s2, 0x20($sp) +/* 0878E0 7F052DB0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0878E4 7F052DB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0878E8 7F052DB8 948E0098 */ lhu $t6, 0x98($a0) +/* 0878EC 7F052DBC 0080B025 */ move $s6, $a0 +/* 0878F0 7F052DC0 31CF0004 */ andi $t7, $t6, 4 +/* 0878F4 7F052DC4 51E001E9 */ beql $t7, $zero, .L7F05356C +/* 0878F8 7F052DC8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0878FC 7F052DCC 8C840014 */ lw $a0, 0x14($a0) +/* 087900 7F052DD0 8C980008 */ lw $t8, 8($a0) +/* 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 +/* 087914 7F052DE4 8CB50004 */ lw $s5, 4($a1) +/* 087918 7F052DE8 96CF009A */ lhu $t7, 0x9a($s6) +/* 08791C 7F052DEC 24140004 */ li $s4, 4 +/* 087920 7F052DF0 0040B825 */ move $s7, $v0 +/* 087924 7F052DF4 168F000B */ bne $s4, $t7, .L7F052E24 +/* 087928 7F052DF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08792C 7F052DFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 087930 7F052E00 44813000 */ mtc1 $at, $f6 +/* 087934 7F052E04 C6C400E0 */ lwc1 $f4, 0xe0($s6) +/* 087938 7F052E08 46062200 */ add.s $f8, $f4, $f6 +/* 08793C 7F052E0C 4600428D */ trunc.w.s $f10, $f8 +/* 087940 7F052E10 440D5000 */ mfc1 $t5, $f10 +/* 087944 7F052E14 00000000 */ nop +/* 087948 7F052E18 000DCC00 */ sll $t9, $t5, 0x10 +/* 08794C 7F052E1C 1000000A */ b .L7F052E48 +/* 087950 7F052E20 00196C03 */ sra $t5, $t9, 0x10 +.L7F052E24: +/* 087954 7F052E24 C6D000D4 */ lwc1 $f16, 0xd4($s6) +/* 087958 7F052E28 44819000 */ mtc1 $at, $f18 +/* 08795C 7F052E2C 00000000 */ nop +/* 087960 7F052E30 46128100 */ add.s $f4, $f16, $f18 +/* 087964 7F052E34 4600218D */ trunc.w.s $f6, $f4 +/* 087968 7F052E38 440D3000 */ mfc1 $t5, $f6 +/* 08796C 7F052E3C 00000000 */ nop +/* 087970 7F052E40 000DC400 */ sll $t8, $t5, 0x10 +/* 087974 7F052E44 00186C03 */ sra $t5, $t8, 0x10 +.L7F052E48: +/* 087978 7F052E48 86A4000C */ lh $a0, 0xc($s5) +/* 08797C 7F052E4C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 087980 7F052E50 A7AD0042 */ sh $t5, 0x42($sp) +/* 087984 7F052E54 87AD0042 */ lh $t5, 0x42($sp) +/* 087988 7F052E58 AEE20000 */ sw $v0, ($s7) +/* 08798C 7F052E5C 86AE000C */ lh $t6, 0xc($s5) +/* 087990 7F052E60 00001825 */ move $v1, $zero +/* 087994 7F052E64 0000F025 */ move $fp, $zero +/* 087998 7F052E68 05C10003 */ bgez $t6, .L7F052E78 +/* 08799C 7F052E6C 000E7883 */ sra $t7, $t6, 2 +/* 0879A0 7F052E70 25C10003 */ addiu $at, $t6, 3 +/* 0879A4 7F052E74 00017883 */ sra $t7, $at, 2 +.L7F052E78: +/* 0879A8 7F052E78 19E001BB */ blez $t7, .L7F053568 +/* 0879AC 7F052E7C 00001825 */ move $v1, $zero +.L7F052E80: +/* 0879B0 7F052E80 001E9900 */ sll $s3, $fp, 4 +.L7F052E84: +/* 0879B4 7F052E84 8EF80000 */ lw $t8, ($s7) +/* 0879B8 7F052E88 24670002 */ addiu $a3, $v1, 2 +/* 0879BC 7F052E8C 246C0003 */ addiu $t4, $v1, 3 +/* 0879C0 7F052E90 03131021 */ addu $v0, $t8, $s3 +/* 0879C4 7F052E94 24720001 */ addiu $s2, $v1, 1 +/* 0879C8 7F052E98 00032100 */ sll $a0, $v1, 4 +/* 0879CC 7F052E9C 00445821 */ addu $t3, $v0, $a0 +/* 0879D0 7F052EA0 06410004 */ bgez $s2, .L7F052EB4 +/* 0879D4 7F052EA4 32450003 */ andi $a1, $s2, 3 +/* 0879D8 7F052EA8 10A00002 */ beqz $a1, .L7F052EB4 +/* 0879DC 7F052EAC 00000000 */ nop +/* 0879E0 7F052EB0 24A5FFFC */ addiu $a1, $a1, -4 +.L7F052EB4: +/* 0879E4 7F052EB4 0005C900 */ sll $t9, $a1, 4 +/* 0879E8 7F052EB8 03202825 */ move $a1, $t9 +/* 0879EC 7F052EBC 0059F821 */ addu $ra, $v0, $t9 +/* 0879F0 7F052EC0 04E10004 */ bgez $a3, .L7F052ED4 +/* 0879F4 7F052EC4 30EE0003 */ andi $t6, $a3, 3 +/* 0879F8 7F052EC8 11C00002 */ beqz $t6, .L7F052ED4 +/* 0879FC 7F052ECC 00000000 */ nop +/* 087A00 7F052ED0 25CEFFFC */ addiu $t6, $t6, -4 +.L7F052ED4: +/* 087A04 7F052ED4 000E7900 */ sll $t7, $t6, 4 +/* 087A08 7F052ED8 8EAE0008 */ lw $t6, 8($s5) +/* 087A0C 7F052EDC 01E03825 */ move $a3, $t7 +/* 087A10 7F052EE0 004F8021 */ addu $s0, $v0, $t7 +/* 087A14 7F052EE4 01D34821 */ addu $t1, $t6, $s3 +/* 087A18 7F052EE8 05810004 */ bgez $t4, .L7F052EFC +/* 087A1C 7F052EEC 31980003 */ andi $t8, $t4, 3 +/* 087A20 7F052EF0 13000002 */ beqz $t8, .L7F052EFC +/* 087A24 7F052EF4 00000000 */ nop +/* 087A28 7F052EF8 2718FFFC */ addiu $t8, $t8, -4 +.L7F052EFC: +/* 087A2C 7F052EFC 00186100 */ sll $t4, $t8, 4 +/* 087A30 7F052F00 01275021 */ addu $t2, $t1, $a3 +/* 087A34 7F052F04 004C8821 */ addu $s1, $v0, $t4 +/* 087A38 7F052F08 01243021 */ addu $a2, $t1, $a0 +/* 087A3C 7F052F0C 01254021 */ addu $t0, $t1, $a1 +/* 087A40 7F052F10 14600021 */ bnez $v1, .L7F052F98 +/* 087A44 7F052F14 012C3821 */ addu $a3, $t1, $t4 +/* 087A48 7F052F18 8CC10000 */ lw $at, ($a2) +/* 087A4C 7F052F1C AD610000 */ sw $at, ($t3) +/* 087A50 7F052F20 8CD80004 */ lw $t8, 4($a2) +/* 087A54 7F052F24 AD780004 */ sw $t8, 4($t3) +/* 087A58 7F052F28 8CC10008 */ lw $at, 8($a2) +/* 087A5C 7F052F2C AD610008 */ sw $at, 8($t3) +/* 087A60 7F052F30 8CD8000C */ lw $t8, 0xc($a2) +/* 087A64 7F052F34 AD78000C */ sw $t8, 0xc($t3) +/* 087A68 7F052F38 8D010000 */ lw $at, ($t0) +/* 087A6C 7F052F3C AFE10000 */ sw $at, ($ra) +/* 087A70 7F052F40 8D0E0004 */ lw $t6, 4($t0) +/* 087A74 7F052F44 AFEE0004 */ sw $t6, 4($ra) +/* 087A78 7F052F48 8D010008 */ lw $at, 8($t0) +/* 087A7C 7F052F4C AFE10008 */ sw $at, 8($ra) +/* 087A80 7F052F50 8D0E000C */ lw $t6, 0xc($t0) +/* 087A84 7F052F54 AFEE000C */ sw $t6, 0xc($ra) +/* 087A88 7F052F58 8D410000 */ lw $at, ($t2) +/* 087A8C 7F052F5C AE010000 */ sw $at, ($s0) +/* 087A90 7F052F60 8D580004 */ lw $t8, 4($t2) +/* 087A94 7F052F64 AE180004 */ sw $t8, 4($s0) +/* 087A98 7F052F68 8D410008 */ lw $at, 8($t2) +/* 087A9C 7F052F6C AE010008 */ sw $at, 8($s0) +/* 087AA0 7F052F70 8D58000C */ lw $t8, 0xc($t2) +/* 087AA4 7F052F74 AE18000C */ sw $t8, 0xc($s0) +/* 087AA8 7F052F78 8CE10000 */ lw $at, ($a3) +/* 087AAC 7F052F7C AE210000 */ sw $at, ($s1) +/* 087AB0 7F052F80 8CEE0004 */ lw $t6, 4($a3) +/* 087AB4 7F052F84 AE2E0004 */ sw $t6, 4($s1) +/* 087AB8 7F052F88 8CE10008 */ lw $at, 8($a3) +/* 087ABC 7F052F8C AE210008 */ sw $at, 8($s1) +/* 087AC0 7F052F90 8CEE000C */ lw $t6, 0xc($a3) +/* 087AC4 7F052F94 AE2E000C */ sw $t6, 0xc($s1) +.L7F052F98: +/* 087AC8 7F052F98 96CF009A */ lhu $t7, 0x9a($s6) +/* 087ACC 7F052F9C 568F00B5 */ bnel $s4, $t7, .L7F053274 +/* 087AD0 7F052FA0 84C50000 */ lh $a1, ($a2) +/* 087AD4 7F052FA4 84C40002 */ lh $a0, 2($a2) +/* 087AD8 7F052FA8 008D082A */ slt $at, $a0, $t5 +/* 087ADC 7F052FAC 14200162 */ bnez $at, .L7F053538 +/* 087AE0 7F052FB0 00000000 */ nop +/* 087AE4 7F052FB4 84C50000 */ lh $a1, ($a2) +/* 087AE8 7F052FB8 85180000 */ lh $t8, ($t0) +/* 087AEC 7F052FBC 57050039 */ bnel $t8, $a1, .L7F0530A4 +/* 087AF0 7F052FC0 85590000 */ lh $t9, ($t2) +/* 087AF4 7F052FC4 85190004 */ lh $t9, 4($t0) +/* 087AF8 7F052FC8 84CE0004 */ lh $t6, 4($a2) +/* 087AFC 7F052FCC 572E0035 */ bnel $t9, $t6, .L7F0530A4 +/* 087B00 7F052FD0 85590000 */ lh $t9, ($t2) +/* 087B04 7F052FD4 85090002 */ lh $t1, 2($t0) +/* 087B08 7F052FD8 51240032 */ beql $t1, $a0, .L7F0530A4 +/* 087B0C 7F052FDC 85590000 */ lh $t9, ($t2) +/* 087B10 7F052FE0 84C20008 */ lh $v0, 8($a2) +/* 087B14 7F052FE4 85180008 */ lh $t8, 8($t0) +/* 087B18 7F052FE8 008D7823 */ subu $t7, $a0, $t5 +/* 087B1C 7F052FEC 0302C823 */ subu $t9, $t8, $v0 +/* 087B20 7F052FF0 01F90019 */ multu $t7, $t9 +/* 087B24 7F052FF4 0089C023 */ subu $t8, $a0, $t1 +/* 087B28 7F052FF8 00007012 */ mflo $t6 +/* 087B2C 7F052FFC 00000000 */ nop +/* 087B30 7F053000 00000000 */ nop +/* 087B34 7F053004 01D8001A */ div $zero, $t6, $t8 +/* 087B38 7F053008 00007812 */ mflo $t7 +/* 087B3C 7F05300C 01E2C821 */ addu $t9, $t7, $v0 +/* 087B40 7F053010 A5790008 */ sh $t9, 8($t3) +/* 087B44 7F053014 17000002 */ bnez $t8, .L7F053020 +/* 087B48 7F053018 00000000 */ nop +/* 087B4C 7F05301C 0007000D */ break 7 +.L7F053020: +/* 087B50 7F053020 2401FFFF */ li $at, -1 +/* 087B54 7F053024 17010004 */ bne $t8, $at, .L7F053038 +/* 087B58 7F053028 3C018000 */ lui $at, 0x8000 +/* 087B5C 7F05302C 15C10002 */ bne $t6, $at, .L7F053038 +/* 087B60 7F053030 00000000 */ nop +/* 087B64 7F053034 0006000D */ break 6 +.L7F053038: +/* 087B68 7F053038 8518000A */ lh $t8, 0xa($t0) +/* 087B6C 7F05303C 84C3000A */ lh $v1, 0xa($a2) +/* 087B70 7F053040 84C40002 */ lh $a0, 2($a2) +/* 087B74 7F053044 03037823 */ subu $t7, $t8, $v1 +/* 087B78 7F053048 008D7023 */ subu $t6, $a0, $t5 +/* 087B7C 7F05304C 01CF0019 */ multu $t6, $t7 +/* 087B80 7F053050 85180002 */ lh $t8, 2($t0) +/* 087B84 7F053054 00987023 */ subu $t6, $a0, $t8 +/* 087B88 7F053058 0000C812 */ mflo $t9 +/* 087B8C 7F05305C 00000000 */ nop +/* 087B90 7F053060 00000000 */ nop +/* 087B94 7F053064 032E001A */ div $zero, $t9, $t6 +/* 087B98 7F053068 00007812 */ mflo $t7 +/* 087B9C 7F05306C 01E3C021 */ addu $t8, $t7, $v1 +/* 087BA0 7F053070 15C00002 */ bnez $t6, .L7F05307C +/* 087BA4 7F053074 00000000 */ nop +/* 087BA8 7F053078 0007000D */ break 7 +.L7F05307C: +/* 087BAC 7F05307C 2401FFFF */ li $at, -1 +/* 087BB0 7F053080 15C10004 */ bne $t6, $at, .L7F053094 +/* 087BB4 7F053084 3C018000 */ lui $at, 0x8000 +/* 087BB8 7F053088 17210002 */ bne $t9, $at, .L7F053094 +/* 087BBC 7F05308C 00000000 */ nop +/* 087BC0 7F053090 0006000D */ break 6 +.L7F053094: +/* 087BC4 7F053094 A578000A */ sh $t8, 0xa($t3) +/* 087BC8 7F053098 10000073 */ b .L7F053268 +/* 087BCC 7F05309C 00000000 */ nop +/* 087BD0 7F0530A0 85590000 */ lh $t9, ($t2) +.L7F0530A4: +/* 087BD4 7F0530A4 57250039 */ bnel $t9, $a1, .L7F05318C +/* 087BD8 7F0530A8 84EE0000 */ lh $t6, ($a3) +/* 087BDC 7F0530AC 854E0004 */ lh $t6, 4($t2) +/* 087BE0 7F0530B0 84CF0004 */ lh $t7, 4($a2) +/* 087BE4 7F0530B4 55CF0035 */ bnel $t6, $t7, .L7F05318C +/* 087BE8 7F0530B8 84EE0000 */ lh $t6, ($a3) +/* 087BEC 7F0530BC 85480002 */ lh $t0, 2($t2) +/* 087BF0 7F0530C0 51040032 */ beql $t0, $a0, .L7F05318C +/* 087BF4 7F0530C4 84EE0000 */ lh $t6, ($a3) +/* 087BF8 7F0530C8 84C20008 */ lh $v0, 8($a2) +/* 087BFC 7F0530CC 85590008 */ lh $t9, 8($t2) +/* 087C00 7F0530D0 008DC023 */ subu $t8, $a0, $t5 +/* 087C04 7F0530D4 03227023 */ subu $t6, $t9, $v0 +/* 087C08 7F0530D8 030E0019 */ multu $t8, $t6 +/* 087C0C 7F0530DC 0088C823 */ subu $t9, $a0, $t0 +/* 087C10 7F0530E0 00007812 */ mflo $t7 +/* 087C14 7F0530E4 00000000 */ nop +/* 087C18 7F0530E8 00000000 */ nop +/* 087C1C 7F0530EC 01F9001A */ div $zero, $t7, $t9 +/* 087C20 7F0530F0 0000C012 */ mflo $t8 +/* 087C24 7F0530F4 03027021 */ addu $t6, $t8, $v0 +/* 087C28 7F0530F8 A56E0008 */ sh $t6, 8($t3) +/* 087C2C 7F0530FC 17200002 */ bnez $t9, .L7F053108 +/* 087C30 7F053100 00000000 */ nop +/* 087C34 7F053104 0007000D */ break 7 +.L7F053108: +/* 087C38 7F053108 2401FFFF */ li $at, -1 +/* 087C3C 7F05310C 17210004 */ bne $t9, $at, .L7F053120 +/* 087C40 7F053110 3C018000 */ lui $at, 0x8000 +/* 087C44 7F053114 15E10002 */ bne $t7, $at, .L7F053120 +/* 087C48 7F053118 00000000 */ nop +/* 087C4C 7F05311C 0006000D */ break 6 +.L7F053120: +/* 087C50 7F053120 8559000A */ lh $t9, 0xa($t2) +/* 087C54 7F053124 84C3000A */ lh $v1, 0xa($a2) +/* 087C58 7F053128 84C40002 */ lh $a0, 2($a2) +/* 087C5C 7F05312C 0323C023 */ subu $t8, $t9, $v1 +/* 087C60 7F053130 008D7823 */ subu $t7, $a0, $t5 +/* 087C64 7F053134 01F80019 */ multu $t7, $t8 +/* 087C68 7F053138 85590002 */ lh $t9, 2($t2) +/* 087C6C 7F05313C 00997823 */ subu $t7, $a0, $t9 +/* 087C70 7F053140 00007012 */ mflo $t6 +/* 087C74 7F053144 00000000 */ nop +/* 087C78 7F053148 00000000 */ nop +/* 087C7C 7F05314C 01CF001A */ div $zero, $t6, $t7 +/* 087C80 7F053150 0000C012 */ mflo $t8 +/* 087C84 7F053154 0303C821 */ addu $t9, $t8, $v1 +/* 087C88 7F053158 15E00002 */ bnez $t7, .L7F053164 +/* 087C8C 7F05315C 00000000 */ nop +/* 087C90 7F053160 0007000D */ break 7 +.L7F053164: +/* 087C94 7F053164 2401FFFF */ li $at, -1 +/* 087C98 7F053168 15E10004 */ bne $t7, $at, .L7F05317C +/* 087C9C 7F05316C 3C018000 */ lui $at, 0x8000 +/* 087CA0 7F053170 15C10002 */ bne $t6, $at, .L7F05317C +/* 087CA4 7F053174 00000000 */ nop +/* 087CA8 7F053178 0006000D */ break 6 +.L7F05317C: +/* 087CAC 7F05317C A579000A */ sh $t9, 0xa($t3) +/* 087CB0 7F053180 10000039 */ b .L7F053268 +/* 087CB4 7F053184 00000000 */ nop +/* 087CB8 7F053188 84EE0000 */ lh $t6, ($a3) +.L7F05318C: +/* 087CBC 7F05318C 15C50036 */ bne $t6, $a1, .L7F053268 +/* 087CC0 7F053190 00000000 */ nop +/* 087CC4 7F053194 84EF0004 */ lh $t7, 4($a3) +/* 087CC8 7F053198 84D80004 */ lh $t8, 4($a2) +/* 087CCC 7F05319C 15F80032 */ bne $t7, $t8, .L7F053268 +/* 087CD0 7F0531A0 00000000 */ nop +/* 087CD4 7F0531A4 84E50002 */ lh $a1, 2($a3) +/* 087CD8 7F0531A8 10A4002F */ beq $a1, $a0, .L7F053268 +/* 087CDC 7F0531AC 00000000 */ nop +/* 087CE0 7F0531B0 84C20008 */ lh $v0, 8($a2) +/* 087CE4 7F0531B4 84EE0008 */ lh $t6, 8($a3) +/* 087CE8 7F0531B8 008DC823 */ subu $t9, $a0, $t5 +/* 087CEC 7F0531BC 01C27823 */ subu $t7, $t6, $v0 +/* 087CF0 7F0531C0 032F0019 */ multu $t9, $t7 +/* 087CF4 7F0531C4 00857023 */ subu $t6, $a0, $a1 +/* 087CF8 7F0531C8 0000C012 */ mflo $t8 +/* 087CFC 7F0531CC 00000000 */ nop +/* 087D00 7F0531D0 00000000 */ nop +/* 087D04 7F0531D4 030E001A */ div $zero, $t8, $t6 +/* 087D08 7F0531D8 0000C812 */ mflo $t9 +/* 087D0C 7F0531DC 03227821 */ addu $t7, $t9, $v0 +/* 087D10 7F0531E0 A56F0008 */ sh $t7, 8($t3) +/* 087D14 7F0531E4 15C00002 */ bnez $t6, .L7F0531F0 +/* 087D18 7F0531E8 00000000 */ nop +/* 087D1C 7F0531EC 0007000D */ break 7 +.L7F0531F0: +/* 087D20 7F0531F0 2401FFFF */ li $at, -1 +/* 087D24 7F0531F4 15C10004 */ bne $t6, $at, .L7F053208 +/* 087D28 7F0531F8 3C018000 */ lui $at, 0x8000 +/* 087D2C 7F0531FC 17010002 */ bne $t8, $at, .L7F053208 +/* 087D30 7F053200 00000000 */ nop +/* 087D34 7F053204 0006000D */ break 6 +.L7F053208: +/* 087D38 7F053208 84EE000A */ lh $t6, 0xa($a3) +/* 087D3C 7F05320C 84C3000A */ lh $v1, 0xa($a2) +/* 087D40 7F053210 84C40002 */ lh $a0, 2($a2) +/* 087D44 7F053214 01C3C823 */ subu $t9, $t6, $v1 +/* 087D48 7F053218 008DC023 */ subu $t8, $a0, $t5 +/* 087D4C 7F05321C 03190019 */ multu $t8, $t9 +/* 087D50 7F053220 84EE0002 */ lh $t6, 2($a3) +/* 087D54 7F053224 008EC023 */ subu $t8, $a0, $t6 +/* 087D58 7F053228 00007812 */ mflo $t7 +/* 087D5C 7F05322C 00000000 */ nop +/* 087D60 7F053230 00000000 */ nop +/* 087D64 7F053234 01F8001A */ div $zero, $t7, $t8 +/* 087D68 7F053238 0000C812 */ mflo $t9 +/* 087D6C 7F05323C 03237021 */ addu $t6, $t9, $v1 +/* 087D70 7F053240 A56E000A */ sh $t6, 0xa($t3) +/* 087D74 7F053244 17000002 */ bnez $t8, .L7F053250 +/* 087D78 7F053248 00000000 */ nop +/* 087D7C 7F05324C 0007000D */ break 7 +.L7F053250: +/* 087D80 7F053250 2401FFFF */ li $at, -1 +/* 087D84 7F053254 17010004 */ bne $t8, $at, .L7F053268 +/* 087D88 7F053258 3C018000 */ lui $at, 0x8000 +/* 087D8C 7F05325C 15E10002 */ bne $t7, $at, .L7F053268 +/* 087D90 7F053260 00000000 */ nop +/* 087D94 7F053264 0006000D */ break 6 +.L7F053268: +/* 087D98 7F053268 100000B3 */ b .L7F053538 +/* 087D9C 7F05326C A56D0002 */ sh $t5, 2($t3) +/* 087DA0 7F053270 84C50000 */ lh $a1, ($a2) +.L7F053274: +/* 087DA4 7F053274 01A5082A */ slt $at, $t5, $a1 +/* 087DA8 7F053278 142000AF */ bnez $at, .L7F053538 +/* 087DAC 7F05327C 00000000 */ nop +/* 087DB0 7F053280 84C40002 */ lh $a0, 2($a2) +/* 087DB4 7F053284 850F0002 */ lh $t7, 2($t0) +/* 087DB8 7F053288 55E40039 */ bnel $t7, $a0, .L7F053370 +/* 087DBC 7F05328C 85580002 */ lh $t8, 2($t2) +/* 087DC0 7F053290 85180004 */ lh $t8, 4($t0) +/* 087DC4 7F053294 84D90004 */ lh $t9, 4($a2) +/* 087DC8 7F053298 57190035 */ bnel $t8, $t9, .L7F053370 +/* 087DCC 7F05329C 85580002 */ lh $t8, 2($t2) +/* 087DD0 7F0532A0 85090000 */ lh $t1, ($t0) +/* 087DD4 7F0532A4 51250032 */ beql $t1, $a1, .L7F053370 +/* 087DD8 7F0532A8 85580002 */ lh $t8, 2($t2) +/* 087DDC 7F0532AC 84C20008 */ lh $v0, 8($a2) +/* 087DE0 7F0532B0 850F0008 */ lh $t7, 8($t0) +/* 087DE4 7F0532B4 01A57023 */ subu $t6, $t5, $a1 +/* 087DE8 7F0532B8 01E2C023 */ subu $t8, $t7, $v0 +/* 087DEC 7F0532BC 01D80019 */ multu $t6, $t8 +/* 087DF0 7F0532C0 01257823 */ subu $t7, $t1, $a1 +/* 087DF4 7F0532C4 0000C812 */ mflo $t9 +/* 087DF8 7F0532C8 00000000 */ nop +/* 087DFC 7F0532CC 00000000 */ nop +/* 087E00 7F0532D0 032F001A */ div $zero, $t9, $t7 +/* 087E04 7F0532D4 00007012 */ mflo $t6 +/* 087E08 7F0532D8 01C2C021 */ addu $t8, $t6, $v0 +/* 087E0C 7F0532DC A5780008 */ sh $t8, 8($t3) +/* 087E10 7F0532E0 15E00002 */ bnez $t7, .L7F0532EC +/* 087E14 7F0532E4 00000000 */ nop +/* 087E18 7F0532E8 0007000D */ break 7 +.L7F0532EC: +/* 087E1C 7F0532EC 2401FFFF */ li $at, -1 +/* 087E20 7F0532F0 15E10004 */ bne $t7, $at, .L7F053304 +/* 087E24 7F0532F4 3C018000 */ lui $at, 0x8000 +/* 087E28 7F0532F8 17210002 */ bne $t9, $at, .L7F053304 +/* 087E2C 7F0532FC 00000000 */ nop +/* 087E30 7F053300 0006000D */ break 6 +.L7F053304: +/* 087E34 7F053304 850F000A */ lh $t7, 0xa($t0) +/* 087E38 7F053308 84C3000A */ lh $v1, 0xa($a2) +/* 087E3C 7F05330C 84C50000 */ lh $a1, ($a2) +/* 087E40 7F053310 01E37023 */ subu $t6, $t7, $v1 +/* 087E44 7F053314 01A5C823 */ subu $t9, $t5, $a1 +/* 087E48 7F053318 032E0019 */ multu $t9, $t6 +/* 087E4C 7F05331C 850F0000 */ lh $t7, ($t0) +/* 087E50 7F053320 01E5C823 */ subu $t9, $t7, $a1 +/* 087E54 7F053324 0000C012 */ mflo $t8 +/* 087E58 7F053328 00000000 */ nop +/* 087E5C 7F05332C 00000000 */ nop +/* 087E60 7F053330 0319001A */ div $zero, $t8, $t9 +/* 087E64 7F053334 00007012 */ mflo $t6 +/* 087E68 7F053338 01C37821 */ addu $t7, $t6, $v1 +/* 087E6C 7F05333C 17200002 */ bnez $t9, .L7F053348 +/* 087E70 7F053340 00000000 */ nop +/* 087E74 7F053344 0007000D */ break 7 +.L7F053348: +/* 087E78 7F053348 2401FFFF */ li $at, -1 +/* 087E7C 7F05334C 17210004 */ bne $t9, $at, .L7F053360 +/* 087E80 7F053350 3C018000 */ lui $at, 0x8000 +/* 087E84 7F053354 17010002 */ bne $t8, $at, .L7F053360 +/* 087E88 7F053358 00000000 */ nop +/* 087E8C 7F05335C 0006000D */ break 6 +.L7F053360: +/* 087E90 7F053360 A56F000A */ sh $t7, 0xa($t3) +/* 087E94 7F053364 10000074 */ b .L7F053538 +/* 087E98 7F053368 A56D0000 */ sh $t5, ($t3) +/* 087E9C 7F05336C 85580002 */ lh $t8, 2($t2) +.L7F053370: +/* 087EA0 7F053370 57040039 */ bnel $t8, $a0, .L7F053458 +/* 087EA4 7F053374 84F90002 */ lh $t9, 2($a3) +/* 087EA8 7F053378 85590004 */ lh $t9, 4($t2) +/* 087EAC 7F05337C 84CE0004 */ lh $t6, 4($a2) +/* 087EB0 7F053380 572E0035 */ bnel $t9, $t6, .L7F053458 +/* 087EB4 7F053384 84F90002 */ lh $t9, 2($a3) +/* 087EB8 7F053388 85480000 */ lh $t0, ($t2) +/* 087EBC 7F05338C 51050032 */ beql $t0, $a1, .L7F053458 +/* 087EC0 7F053390 84F90002 */ lh $t9, 2($a3) +/* 087EC4 7F053394 84C20008 */ lh $v0, 8($a2) +/* 087EC8 7F053398 85580008 */ lh $t8, 8($t2) +/* 087ECC 7F05339C 01A57823 */ subu $t7, $t5, $a1 +/* 087ED0 7F0533A0 0302C823 */ subu $t9, $t8, $v0 +/* 087ED4 7F0533A4 01F90019 */ multu $t7, $t9 +/* 087ED8 7F0533A8 0105C023 */ subu $t8, $t0, $a1 +/* 087EDC 7F0533AC 00007012 */ mflo $t6 +/* 087EE0 7F0533B0 00000000 */ nop +/* 087EE4 7F0533B4 00000000 */ nop +/* 087EE8 7F0533B8 01D8001A */ div $zero, $t6, $t8 +/* 087EEC 7F0533BC 00007812 */ mflo $t7 +/* 087EF0 7F0533C0 01E2C821 */ addu $t9, $t7, $v0 +/* 087EF4 7F0533C4 A5790008 */ sh $t9, 8($t3) +/* 087EF8 7F0533C8 17000002 */ bnez $t8, .L7F0533D4 +/* 087EFC 7F0533CC 00000000 */ nop +/* 087F00 7F0533D0 0007000D */ break 7 +.L7F0533D4: +/* 087F04 7F0533D4 2401FFFF */ li $at, -1 +/* 087F08 7F0533D8 17010004 */ bne $t8, $at, .L7F0533EC +/* 087F0C 7F0533DC 3C018000 */ lui $at, 0x8000 +/* 087F10 7F0533E0 15C10002 */ bne $t6, $at, .L7F0533EC +/* 087F14 7F0533E4 00000000 */ nop +/* 087F18 7F0533E8 0006000D */ break 6 +.L7F0533EC: +/* 087F1C 7F0533EC 8558000A */ lh $t8, 0xa($t2) +/* 087F20 7F0533F0 84C3000A */ lh $v1, 0xa($a2) +/* 087F24 7F0533F4 84C50000 */ lh $a1, ($a2) +/* 087F28 7F0533F8 03037823 */ subu $t7, $t8, $v1 +/* 087F2C 7F0533FC 01A57023 */ subu $t6, $t5, $a1 +/* 087F30 7F053400 01CF0019 */ multu $t6, $t7 +/* 087F34 7F053404 85580000 */ lh $t8, ($t2) +/* 087F38 7F053408 03057023 */ subu $t6, $t8, $a1 +/* 087F3C 7F05340C 0000C812 */ mflo $t9 +/* 087F40 7F053410 00000000 */ nop +/* 087F44 7F053414 00000000 */ nop +/* 087F48 7F053418 032E001A */ div $zero, $t9, $t6 +/* 087F4C 7F05341C 00007812 */ mflo $t7 +/* 087F50 7F053420 01E3C021 */ addu $t8, $t7, $v1 +/* 087F54 7F053424 15C00002 */ bnez $t6, .L7F053430 +/* 087F58 7F053428 00000000 */ nop +/* 087F5C 7F05342C 0007000D */ break 7 +.L7F053430: +/* 087F60 7F053430 2401FFFF */ li $at, -1 +/* 087F64 7F053434 15C10004 */ bne $t6, $at, .L7F053448 +/* 087F68 7F053438 3C018000 */ lui $at, 0x8000 +/* 087F6C 7F05343C 17210002 */ bne $t9, $at, .L7F053448 +/* 087F70 7F053440 00000000 */ nop +/* 087F74 7F053444 0006000D */ break 6 +.L7F053448: +/* 087F78 7F053448 A578000A */ sh $t8, 0xa($t3) +/* 087F7C 7F05344C 1000003A */ b .L7F053538 +/* 087F80 7F053450 A56D0000 */ sh $t5, ($t3) +/* 087F84 7F053454 84F90002 */ lh $t9, 2($a3) +.L7F053458: +/* 087F88 7F053458 57240037 */ bnel $t9, $a0, .L7F053538 +/* 087F8C 7F05345C A56D0000 */ sh $t5, ($t3) +/* 087F90 7F053460 84EE0004 */ lh $t6, 4($a3) +/* 087F94 7F053464 84CF0004 */ lh $t7, 4($a2) +/* 087F98 7F053468 55CF0033 */ bnel $t6, $t7, .L7F053538 +/* 087F9C 7F05346C A56D0000 */ sh $t5, ($t3) +/* 087FA0 7F053470 84E40000 */ lh $a0, ($a3) +/* 087FA4 7F053474 50850030 */ beql $a0, $a1, .L7F053538 +/* 087FA8 7F053478 A56D0000 */ sh $t5, ($t3) +/* 087FAC 7F05347C 84C20008 */ lh $v0, 8($a2) +/* 087FB0 7F053480 84F90008 */ lh $t9, 8($a3) +/* 087FB4 7F053484 01A5C023 */ subu $t8, $t5, $a1 +/* 087FB8 7F053488 03227023 */ subu $t6, $t9, $v0 +/* 087FBC 7F05348C 030E0019 */ multu $t8, $t6 +/* 087FC0 7F053490 0085C823 */ subu $t9, $a0, $a1 +/* 087FC4 7F053494 00007812 */ mflo $t7 +/* 087FC8 7F053498 00000000 */ nop +/* 087FCC 7F05349C 00000000 */ nop +/* 087FD0 7F0534A0 01F9001A */ div $zero, $t7, $t9 +/* 087FD4 7F0534A4 0000C012 */ mflo $t8 +/* 087FD8 7F0534A8 03027021 */ addu $t6, $t8, $v0 +/* 087FDC 7F0534AC A56E0008 */ sh $t6, 8($t3) +/* 087FE0 7F0534B0 17200002 */ bnez $t9, .L7F0534BC +/* 087FE4 7F0534B4 00000000 */ nop +/* 087FE8 7F0534B8 0007000D */ break 7 +.L7F0534BC: +/* 087FEC 7F0534BC 2401FFFF */ li $at, -1 +/* 087FF0 7F0534C0 17210004 */ bne $t9, $at, .L7F0534D4 +/* 087FF4 7F0534C4 3C018000 */ lui $at, 0x8000 +/* 087FF8 7F0534C8 15E10002 */ bne $t7, $at, .L7F0534D4 +/* 087FFC 7F0534CC 00000000 */ nop +/* 088000 7F0534D0 0006000D */ break 6 +.L7F0534D4: +/* 088004 7F0534D4 84F9000A */ lh $t9, 0xa($a3) +/* 088008 7F0534D8 84C3000A */ lh $v1, 0xa($a2) +/* 08800C 7F0534DC 84C50000 */ lh $a1, ($a2) +/* 088010 7F0534E0 0323C023 */ subu $t8, $t9, $v1 +/* 088014 7F0534E4 01A57823 */ subu $t7, $t5, $a1 +/* 088018 7F0534E8 01F80019 */ multu $t7, $t8 +/* 08801C 7F0534EC 84F90000 */ lh $t9, ($a3) +/* 088020 7F0534F0 03257823 */ subu $t7, $t9, $a1 +/* 088024 7F0534F4 00007012 */ mflo $t6 +/* 088028 7F0534F8 00000000 */ nop +/* 08802C 7F0534FC 00000000 */ nop +/* 088030 7F053500 01CF001A */ div $zero, $t6, $t7 +/* 088034 7F053504 0000C012 */ mflo $t8 +/* 088038 7F053508 0303C821 */ addu $t9, $t8, $v1 +/* 08803C 7F05350C A579000A */ sh $t9, 0xa($t3) +/* 088040 7F053510 15E00002 */ bnez $t7, .L7F05351C +/* 088044 7F053514 00000000 */ nop +/* 088048 7F053518 0007000D */ break 7 +.L7F05351C: +/* 08804C 7F05351C 2401FFFF */ li $at, -1 +/* 088050 7F053520 15E10004 */ bne $t7, $at, .L7F053534 +/* 088054 7F053524 3C018000 */ lui $at, 0x8000 +/* 088058 7F053528 15C10002 */ bne $t6, $at, .L7F053534 +/* 08805C 7F05352C 00000000 */ nop +/* 088060 7F053530 0006000D */ break 6 +.L7F053534: +/* 088064 7F053534 A56D0000 */ sh $t5, ($t3) +.L7F053538: +/* 088068 7F053538 1654FE52 */ bne $s2, $s4, .L7F052E84 +/* 08806C 7F05353C 02401825 */ move $v1, $s2 +/* 088070 7F053540 86A2000C */ lh $v0, 0xc($s5) +/* 088074 7F053544 27DE0004 */ addiu $fp, $fp, 4 +/* 088078 7F053548 04410003 */ bgez $v0, .L7F053558 +/* 08807C 7F05354C 00027083 */ sra $t6, $v0, 2 +/* 088080 7F053550 24410003 */ addiu $at, $v0, 3 +/* 088084 7F053554 00017083 */ sra $t6, $at, 2 +.L7F053558: +/* 088088 7F053558 000E1880 */ sll $v1, $t6, 2 +/* 08808C 7F05355C 03C3082A */ slt $at, $fp, $v1 +/* 088090 7F053560 5420FE47 */ bnezl $at, .L7F052E80 +/* 088094 7F053564 00001825 */ move $v1, $zero +.L7F053568: +/* 088098 7F053568 8FBF003C */ lw $ra, 0x3c($sp) +.L7F05356C: +/* 08809C 7F05356C 8FB00018 */ lw $s0, 0x18($sp) +/* 0880A0 7F053570 8FB1001C */ lw $s1, 0x1c($sp) +/* 0880A4 7F053574 8FB20020 */ lw $s2, 0x20($sp) +/* 0880A8 7F053578 8FB30024 */ lw $s3, 0x24($sp) +/* 0880AC 7F05357C 8FB40028 */ lw $s4, 0x28($sp) +/* 0880B0 7F053580 8FB5002C */ lw $s5, 0x2c($sp) +/* 0880B4 7F053584 8FB60030 */ lw $s6, 0x30($sp) +/* 0880B8 7F053588 8FB70034 */ lw $s7, 0x34($sp) +/* 0880BC 7F05358C 8FBE0038 */ lw $fp, 0x38($sp) +/* 0880C0 7F053590 03E00008 */ jr $ra +/* 0880C4 7F053594 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053598(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053598 +/* 0880C8 7F053598 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0880CC 7F05359C AFBF0014 */ sw $ra, 0x14($sp) +/* 0880D0 7F0535A0 8C8600F0 */ lw $a2, 0xf0($a0) +/* 0880D4 7F0535A4 04C00003 */ bltz $a2, .L7F0535B4 +/* 0880D8 7F0535A8 00C02025 */ move $a0, $a2 +/* 0880DC 7F0535AC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0880E0 7F0535B0 24050001 */ li $a1, 1 +.L7F0535B4: +/* 0880E4 7F0535B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0880E8 7F0535B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0880EC 7F0535BC 03E00008 */ jr $ra +/* 0880F0 7F0535C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0535C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0535C4 +/* 0880F4 7F0535C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0880F8 7F0535C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0880FC 7F0535CC 8C8600F0 */ lw $a2, 0xf0($a0) +/* 088100 7F0535D0 04C00003 */ bltz $a2, .L7F0535E0 +/* 088104 7F0535D4 00C02025 */ move $a0, $a2 +/* 088108 7F0535D8 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 08810C 7F0535DC 00002825 */ move $a1, $zero +.L7F0535E0: +/* 088110 7F0535E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 088114 7F0535E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088118 7F0535E8 03E00008 */ jr $ra +/* 08811C 7F0535EC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void initialize_door(void) { + +} +#else +GLOBAL_ASM( +.text +glabel initialize_door +/* 088120 7F0535F0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 088124 7F0535F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 088128 7F0535F8 AFB00014 */ sw $s0, 0x14($sp) +/* 08812C 7F0535FC 00808025 */ move $s0, $a0 +/* 088130 7F053600 AFB10018 */ sw $s1, 0x18($sp) +/* 088134 7F053604 AFA50034 */ sw $a1, 0x34($sp) +/* 088138 7F053608 AFA60038 */ sw $a2, 0x38($sp) +/* 08813C 7F05360C 0FC101C7 */ jal sub_GAME_7F04071C +/* 088140 7F053610 AFA7003C */ sw $a3, 0x3c($sp) +/* 088144 7F053614 860E0004 */ lh $t6, 4($s0) +/* 088148 7F053618 3C018004 */ lui $at, %hi(PitemZ_entries+8) +/* 08814C 7F05361C 00408825 */ move $s1, $v0 +/* 088150 7F053620 000E7880 */ sll $t7, $t6, 2 +/* 088154 7F053624 01EE7823 */ subu $t7, $t7, $t6 +/* 088158 7F053628 000F7880 */ sll $t7, $t7, 2 +/* 08815C 7F05362C 002F0821 */ addu $at, $at, $t7 +/* 088160 7F053630 C424A230 */ lwc1 $f4, %lo(PitemZ_entries+8)($at) +/* 088164 7F053634 24040050 */ li $a0, 80 +/* 088168 7F053638 24050004 */ li $a1, 4 +/* 08816C 7F05363C 0C0025C8 */ jal mempAllocBytesInBank +/* 088170 7F053640 E7A40028 */ swc1 $f4, 0x28($sp) +/* 088174 7F053644 AE020068 */ sw $v0, 0x68($s0) +/* 088178 7F053648 26050018 */ addiu $a1, $s0, 0x18 +/* 08817C 7F05364C AFA50020 */ sw $a1, 0x20($sp) +/* 088180 7F053650 0FC16008 */ jal matrix_4x4_copy +/* 088184 7F053654 8FA40038 */ lw $a0, 0x38($sp) +/* 088188 7F053658 8FA50020 */ lw $a1, 0x20($sp) +/* 08818C 7F05365C 0FC1629F */ jal matrix_scalar_multiply +/* 088190 7F053660 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 088194 7F053664 8FA20040 */ lw $v0, 0x40($sp) +/* 088198 7F053668 8E180008 */ lw $t8, 8($s0) +/* 08819C 7F05366C 44802000 */ mtc1 $zero, $f4 +/* 0881A0 7F053670 C4460000 */ lwc1 $f6, ($v0) +/* 0881A4 7F053674 0018C800 */ sll $t9, $t8, 0 +/* 0881A8 7F053678 E60600A8 */ swc1 $f6, 0xa8($s0) +/* 0881AC 7F05367C C4480004 */ lwc1 $f8, 4($v0) +/* 0881B0 7F053680 E60800AC */ swc1 $f8, 0xac($s0) +/* 0881B4 7F053684 C44A0008 */ lwc1 $f10, 8($v0) +/* 0881B8 7F053688 07210004 */ bgez $t9, .L7F05369C +/* 0881BC 7F05368C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 0881C0 7F053690 C6100084 */ lwc1 $f16, 0x84($s0) +/* 0881C4 7F053694 10000004 */ b .L7F0536A8 +/* 0881C8 7F053698 E61000B4 */ swc1 $f16, 0xb4($s0) +.L7F05369C: +/* 0881CC 7F05369C 44809000 */ mtc1 $zero, $f18 +/* 0881D0 7F0536A0 00000000 */ nop +/* 0881D4 7F0536A4 E61200B4 */ swc1 $f18, 0xb4($s0) +.L7F0536A8: +/* 0881D8 7F0536A8 96080098 */ lhu $t0, 0x98($s0) +/* 0881DC 7F0536AC E60400B8 */ swc1 $f4, 0xb8($s0) +/* 0881E0 7F0536B0 A20000BC */ sb $zero, 0xbc($s0) +/* 0881E4 7F0536B4 31090004 */ andi $t1, $t0, 4 +/* 0881E8 7F0536B8 A20000BD */ sb $zero, 0xbd($s0) +/* 0881EC 7F0536BC 1120000E */ beqz $t1, .L7F0536F8 +/* 0881F0 7F0536C0 AE0000C8 */ sw $zero, 0xc8($s0) +/* 0881F4 7F0536C4 8E0A0014 */ lw $t2, 0x14($s0) +/* 0881F8 7F0536C8 24050004 */ li $a1, 4 +/* 0881FC 7F0536CC 8D4B0008 */ lw $t3, 8($t2) +/* 088200 7F0536D0 8D6C0000 */ lw $t4, ($t3) +/* 088204 7F0536D4 8D8D0014 */ lw $t5, 0x14($t4) +/* 088208 7F0536D8 8DAE0014 */ lw $t6, 0x14($t5) +/* 08820C 7F0536DC 8DC20004 */ lw $v0, 4($t6) +/* 088210 7F0536E0 8444000C */ lh $a0, 0xc($v0) +/* 088214 7F0536E4 00047900 */ sll $t7, $a0, 4 +/* 088218 7F0536E8 0C0025C8 */ jal mempAllocBytesInBank +/* 08821C 7F0536EC 01E02025 */ move $a0, $t7 +/* 088220 7F0536F0 10000002 */ b .L7F0536FC +/* 088224 7F0536F4 AE0200CC */ sw $v0, 0xcc($s0) +.L7F0536F8: +/* 088228 7F0536F8 AE0000CC */ sw $zero, 0xcc($s0) +.L7F0536FC: +/* 08822C 7F0536FC 8FA30034 */ lw $v1, 0x34($sp) +/* 088230 7F053700 8FA20044 */ lw $v0, 0x44($sp) +/* 088234 7F053704 2418FFFF */ li $t8, -1 +/* 088238 7F053708 AE1800F0 */ sw $t8, 0xf0($s0) +/* 08823C 7F05370C AE0000F4 */ sw $zero, 0xf4($s0) +/* 088240 7F053710 AE0000F8 */ sw $zero, 0xf8($s0) +/* 088244 7F053714 24190002 */ li $t9, 2 +/* 088248 7F053718 A2390000 */ sb $t9, ($s1) +/* 08824C 7F05371C AE300004 */ sw $s0, 4($s1) +/* 088250 7F053720 C4660000 */ lwc1 $f6, ($v1) +/* 088254 7F053724 02002025 */ move $a0, $s0 +/* 088258 7F053728 E6260008 */ swc1 $f6, 8($s1) +/* 08825C 7F05372C C4680004 */ lwc1 $f8, 4($v1) +/* 088260 7F053730 E628000C */ swc1 $f8, 0xc($s1) +/* 088264 7F053734 C46A0008 */ lwc1 $f10, 8($v1) +/* 088268 7F053738 E62A0010 */ swc1 $f10, 0x10($s1) +/* 08826C 7F05373C 8FA8003C */ lw $t0, 0x3c($sp) +/* 088270 7F053740 AE280014 */ sw $t0, 0x14($s1) +/* 088274 7F053744 C4500000 */ lwc1 $f16, ($v0) +/* 088278 7F053748 8E090008 */ lw $t1, 8($s0) +/* 08827C 7F05374C E6100058 */ swc1 $f16, 0x58($s0) +/* 088280 7F053750 C4520004 */ lwc1 $f18, 4($v0) +/* 088284 7F053754 352A0100 */ ori $t2, $t1, 0x100 +/* 088288 7F053758 E612005C */ swc1 $f18, 0x5c($s0) +/* 08828C 7F05375C C4440008 */ lwc1 $f4, 8($v0) +/* 088290 7F053760 AE0A0008 */ sw $t2, 8($s0) +/* 088294 7F053764 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 088298 7F053768 E6040060 */ swc1 $f4, 0x60($s0) +/* 08829C 7F05376C 0FC14B63 */ jal sub_GAME_7F052D8C +/* 0882A0 7F053770 02002025 */ move $a0, $s0 +/* 0882A4 7F053774 8E040010 */ lw $a0, 0x10($s0) +/* 0882A8 7F053778 0FC100AD */ jal sub_GAME_7F0402B4 +/* 0882AC 7F05377C 2605007C */ addiu $a1, $s0, 0x7c +/* 0882B0 7F053780 920B007C */ lbu $t3, 0x7c($s0) +/* 0882B4 7F053784 920C007D */ lbu $t4, 0x7d($s0) +/* 0882B8 7F053788 920D007E */ lbu $t5, 0x7e($s0) +/* 0882BC 7F05378C 920E007F */ lbu $t6, 0x7f($s0) +/* 0882C0 7F053790 A20B0078 */ sb $t3, 0x78($s0) +/* 0882C4 7F053794 A20C0079 */ sb $t4, 0x79($s0) +/* 0882C8 7F053798 A20D007A */ sb $t5, 0x7a($s0) +/* 0882CC 7F05379C A20E007B */ sb $t6, 0x7b($s0) +/* 0882D0 7F0537A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0882D4 7F0537A4 02201025 */ move $v0, $s1 +/* 0882D8 7F0537A8 8FB10018 */ lw $s1, 0x18($sp) +/* 0882DC 7F0537AC 8FB00014 */ lw $s0, 0x14($sp) +/* 0882E0 7F0537B0 03E00008 */ jr $ra +/* 0882E4 7F0537B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0537B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0537B8 +/* 0882E8 7F0537B8 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0882EC 7F0537BC 44810000 */ mtc1 $at, $f0 +/* 0882F0 7F0537C0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0882F4 7F0537C4 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0882F8 7F0537C8 4600603E */ c.le.s $f12, $f0 +/* 0882FC 7F0537CC AFA60028 */ sw $a2, 0x28($sp) +/* 088300 7F0537D0 46006506 */ mov.s $f20, $f12 +/* 088304 7F0537D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 088308 7F0537D8 45000003 */ bc1f .L7F0537E8 +/* 08830C 7F0537DC C7A40028 */ lwc1 $f4, 0x28($sp) +/* 088310 7F0537E0 10000027 */ b .L7F053880 +/* 088314 7F0537E4 24037FFF */ li $v1, 32767 +.L7F0537E8: +/* 088318 7F0537E8 4614203E */ c.le.s $f4, $f20 +/* 08831C 7F0537EC 00000000 */ nop +/* 088320 7F0537F0 45020004 */ bc1fl .L7F053804 +/* 088324 7F0537F4 4614703E */ c.le.s $f14, $f20 +/* 088328 7F0537F8 10000021 */ b .L7F053880 +/* 08832C 7F0537FC 00001825 */ move $v1, $zero +/* 088330 7F053800 4614703E */ c.le.s $f14, $f20 +.L7F053804: +/* 088334 7F053804 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 088338 7F053808 3C018005 */ lui $at, %hi(D_80053340) +/* 08833C 7F05380C 4502000B */ bc1fl .L7F05383C +/* 088340 7F053810 4600A301 */ sub.s $f12, $f20, $f0 +/* 088344 7F053814 46143201 */ sub.s $f8, $f6, $f20 +/* 088348 7F053818 C42A3340 */ lwc1 $f10, %lo(D_80053340)($at) +/* 08834C 7F05381C 460E3481 */ sub.s $f18, $f6, $f14 +/* 088350 7F053820 460A4402 */ mul.s $f16, $f8, $f10 +/* 088354 7F053824 46128103 */ div.s $f4, $f16, $f18 +/* 088358 7F053828 4600220D */ trunc.w.s $f8, $f4 +/* 08835C 7F05382C 44034000 */ mfc1 $v1, $f8 +/* 088360 7F053830 10000014 */ b .L7F053884 +/* 088364 7F053834 8FBF001C */ lw $ra, 0x1c($sp) +/* 088368 7F053838 4600A301 */ sub.s $f12, $f20, $f0 +.L7F05383C: +/* 08836C 7F05383C 0C007DF8 */ jal sqrtf +/* 088370 7F053840 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 088374 7F053844 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 088378 7F053848 44815000 */ mtc1 $at, $f10 +/* 08837C 7F05384C C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 088380 7F053850 46000506 */ mov.s $f20, $f0 +/* 088384 7F053854 0C007DF8 */ jal sqrtf +/* 088388 7F053858 460A7301 */ sub.s $f12, $f14, $f10 +/* 08838C 7F05385C 3C018005 */ lui $at, %hi(D_80053344) +/* 088390 7F053860 C4263344 */ lwc1 $f6, %lo(D_80053344)($at) +/* 088394 7F053864 24197FFF */ li $t9, 32767 +/* 088398 7F053868 4606A402 */ mul.s $f16, $f20, $f6 +/* 08839C 7F05386C 46008483 */ div.s $f18, $f16, $f0 +/* 0883A0 7F053870 4600910D */ trunc.w.s $f4, $f18 +/* 0883A4 7F053874 44182000 */ mfc1 $t8, $f4 +/* 0883A8 7F053878 00000000 */ nop +/* 0883AC 7F05387C 03381823 */ subu $v1, $t9, $t8 +.L7F053880: +/* 0883B0 7F053880 8FBF001C */ lw $ra, 0x1c($sp) +.L7F053884: +/* 0883B4 7F053884 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0883B8 7F053888 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0883BC 7F05388C 03E00008 */ jr $ra +/* 0883C0 7F053890 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053894(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053894 +/* 0883C4 7F053894 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0883C8 7F053898 AFBF002C */ sw $ra, 0x2c($sp) +/* 0883CC 7F05389C AFB10020 */ sw $s1, 0x20($sp) +/* 0883D0 7F0538A0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0883D4 7F0538A4 AFA60038 */ sw $a2, 0x38($sp) +/* 0883D8 7F0538A8 00808825 */ move $s1, $a0 +/* 0883DC 7F0538AC AFB30028 */ sw $s3, 0x28($sp) +/* 0883E0 7F0538B0 AFB20024 */ sw $s2, 0x24($sp) +/* 0883E4 7F0538B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0883E8 7F0538B8 AFA50034 */ sw $a1, 0x34($sp) +/* 0883EC 7F0538BC 0FC26919 */ jal get_num_players +/* 0883F0 7F0538C0 C7B40038 */ lwc1 $f20, 0x38($sp) +/* 0883F4 7F0538C4 1840001D */ blez $v0, .L7F05393C +/* 0883F8 7F0538C8 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0883FC 7F0538CC 25D09EE0 */ addiu $s0, $t6, %lo(ptr_BONDdata_p1) +/* 088400 7F0538D0 00027880 */ sll $t7, $v0, 2 +/* 088404 7F0538D4 01F09021 */ addu $s2, $t7, $s0 +/* 088408 7F0538D8 8E180000 */ lw $t8, ($s0) +.L7F0538DC: +/* 08840C 7F0538DC C6260000 */ lwc1 $f6, ($s1) +/* 088410 7F0538E0 C62A0004 */ lwc1 $f10, 4($s1) +/* 088414 7F0538E4 8F0200A8 */ lw $v0, 0xa8($t8) +/* 088418 7F0538E8 C6320008 */ lwc1 $f18, 8($s1) +/* 08841C 7F0538EC C4440008 */ lwc1 $f4, 8($v0) +/* 088420 7F0538F0 C448000C */ lwc1 $f8, 0xc($v0) +/* 088424 7F0538F4 C4500010 */ lwc1 $f16, 0x10($v0) +/* 088428 7F0538F8 46062001 */ sub.s $f0, $f4, $f6 +/* 08842C 7F0538FC 460A4081 */ sub.s $f2, $f8, $f10 +/* 088430 7F053900 46000102 */ mul.s $f4, $f0, $f0 +/* 088434 7F053904 46128381 */ sub.s $f14, $f16, $f18 +/* 088438 7F053908 46021182 */ mul.s $f6, $f2, $f2 +/* 08843C 7F05390C 46062200 */ add.s $f8, $f4, $f6 +/* 088440 7F053910 460E7282 */ mul.s $f10, $f14, $f14 +/* 088444 7F053914 0C007DF8 */ jal sqrtf +/* 088448 7F053918 460A4300 */ add.s $f12, $f8, $f10 +/* 08844C 7F05391C 4614003C */ c.lt.s $f0, $f20 +/* 088450 7F053920 26100004 */ addiu $s0, $s0, 4 +/* 088454 7F053924 0212082B */ sltu $at, $s0, $s2 +/* 088458 7F053928 45000002 */ bc1f .L7F053934 +/* 08845C 7F05392C 00000000 */ nop +/* 088460 7F053930 46000506 */ mov.s $f20, $f0 +.L7F053934: +/* 088464 7F053934 5420FFE9 */ bnezl $at, .L7F0538DC +/* 088468 7F053938 8E180000 */ lw $t8, ($s0) +.L7F05393C: +/* 08846C 7F05393C 4600A306 */ mov.s $f12, $f20 +/* 088470 7F053940 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 088474 7F053944 0FC14DEE */ jal sub_GAME_7F0537B8 +/* 088478 7F053948 8FA60038 */ lw $a2, 0x38($sp) +/* 08847C 7F05394C 8FBF002C */ lw $ra, 0x2c($sp) +/* 088480 7F053950 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 088484 7F053954 8FB0001C */ lw $s0, 0x1c($sp) +/* 088488 7F053958 8FB10020 */ lw $s1, 0x20($sp) +/* 08848C 7F05395C 8FB20024 */ lw $s2, 0x24($sp) +/* 088490 7F053960 8FB30028 */ lw $s3, 0x28($sp) +/* 088494 7F053964 03E00008 */ jr $ra +/* 088498 7F053968 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05396C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05396C +/* 08849C 7F05396C 44866000 */ mtc1 $a2, $f12 +/* 0884A0 7F053970 44877000 */ mtc1 $a3, $f14 +/* 0884A4 7F053974 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0884A8 7F053978 AFA40018 */ sw $a0, 0x18($sp) +/* 0884AC 7F05397C AFA5001C */ sw $a1, 0x1c($sp) +/* 0884B0 7F053980 00A02025 */ move $a0, $a1 +/* 0884B4 7F053984 AFBF0014 */ sw $ra, 0x14($sp) +/* 0884B8 7F053988 44056000 */ mfc1 $a1, $f12 +/* 0884BC 7F05398C 44067000 */ mfc1 $a2, $f14 +/* 0884C0 7F053990 0FC14E25 */ jal sub_GAME_7F053894 +/* 0884C4 7F053994 00000000 */ nop +/* 0884C8 7F053998 8FA40018 */ lw $a0, 0x18($sp) +/* 0884CC 7F05399C 24050008 */ li $a1, 8 +/* 0884D0 7F0539A0 0C002461 */ jal sfx_c_70009184 +/* 0884D4 7F0539A4 00403025 */ move $a2, $v0 +/* 0884D8 7F0539A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0884DC 7F0539AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0884E0 7F0539B0 03E00008 */ jr $ra +/* 0884E4 7F0539B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0539B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0539B8 +/* 0884E8 7F0539B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0884EC 7F0539BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0884F0 7F0539C0 3C018005 */ lui $at, %hi(D_80053348) +/* 0884F4 7F0539C4 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 0884F8 7F0539C8 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 0884FC 7F0539CC 0FC14DEE */ jal sub_GAME_7F0537B8 +/* 088500 7F0539D0 C42E3348 */ lwc1 $f14, %lo(D_80053348)($at) +/* 088504 7F0539D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 088508 7F0539D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08850C 7F0539DC 03E00008 */ jr $ra +/* 088510 7F0539E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0539E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0539E4 +/* 088514 7F0539E4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088518 7F0539E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 08851C 7F0539EC 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 088520 7F0539F0 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 088524 7F0539F4 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 088528 7F0539F8 0FC14E25 */ jal sub_GAME_7F053894 +/* 08852C 7F0539FC 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 088530 7F053A00 8FBF0014 */ lw $ra, 0x14($sp) +/* 088534 7F053A04 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088538 7F053A08 03E00008 */ jr $ra +/* 08853C 7F053A0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053A10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053A10 +/* 088540 7F053A10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088544 7F053A14 AFBF0014 */ sw $ra, 0x14($sp) +/* 088548 7F053A18 3C06459C */ lui $a2, (0x459C4000 >> 16) # lui $a2, 0x459c +/* 08854C 7F053A1C 3C0745BB */ lui $a3, (0x45BB8000 >> 16) # lui $a3, 0x45bb +/* 088550 7F053A20 34E78000 */ ori $a3, (0x45BB8000 & 0xFFFF) # ori $a3, $a3, 0x8000 +/* 088554 7F053A24 0FC14E5B */ jal sub_GAME_7F05396C +/* 088558 7F053A28 34C64000 */ ori $a2, (0x459C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 08855C 7F053A2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 088560 7F053A30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088564 7F053A34 03E00008 */ jr $ra +/* 088568 7F053A38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053A3C(void) { + +} +#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 sfxGetArg0Unk3F +/* 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 sfxGetArg0Unk3F +/* 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 get_controls_locked_flag +/* 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 sfx_c_70009184 +/* 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 sfx_c_70009184 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053B10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053B10 +/* 088640 7F053B10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088644 7F053B14 AFBF0014 */ sw $ra, 0x14($sp) +/* 088648 7F053B18 AFA40018 */ sw $a0, 0x18($sp) +/* 08864C 7F053B1C 8C8500F4 */ lw $a1, 0xf4($a0) +/* 088650 7F053B20 50A00008 */ beql $a1, $zero, .L7F053B44 +/* 088654 7F053B24 8FB80018 */ lw $t8, 0x18($sp) +/* 088658 7F053B28 0C00237C */ jal sfxGetArg0Unk3F +/* 08865C 7F053B2C 00A02025 */ move $a0, $a1 +/* 088660 7F053B30 10400003 */ beqz $v0, .L7F053B40 +/* 088664 7F053B34 8FAF0018 */ lw $t7, 0x18($sp) +/* 088668 7F053B38 0C002408 */ jal sfxDeactivate +/* 08866C 7F053B3C 8DE400F4 */ lw $a0, 0xf4($t7) +.L7F053B40: +/* 088670 7F053B40 8FB80018 */ lw $t8, 0x18($sp) +.L7F053B44: +/* 088674 7F053B44 8F0400F8 */ lw $a0, 0xf8($t8) +/* 088678 7F053B48 50800008 */ beql $a0, $zero, .L7F053B6C +/* 08867C 7F053B4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 088680 7F053B50 0C00237C */ jal sfxGetArg0Unk3F +/* 088684 7F053B54 00000000 */ nop +/* 088688 7F053B58 10400003 */ beqz $v0, .L7F053B68 +/* 08868C 7F053B5C 8FB90018 */ lw $t9, 0x18($sp) +/* 088690 7F053B60 0C002408 */ jal sfxDeactivate +/* 088694 7F053B64 8F2400F8 */ lw $a0, 0xf8($t9) +.L7F053B68: +/* 088698 7F053B68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F053B6C: +/* 08869C 7F053B6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0886A0 7F053B70 03E00008 */ jr $ra +/* 0886A4 7F053B74 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_opening_soundeffect_0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005334C*/ +glabel door_opening_sound_table_0 +.word .L7F053BEC +.word .L7F053C2C +.word .L7F053C6C +.word .L7F053CAC +.word .L7F053CEC +.word .L7F053D08 +.word .L7F053D24 +.word .L7F053D64 +.word .L7F053DA4 +.word .L7F053DC4 +.word .L7F053DE0 +.word .L7F053DFC +.word .L7F053E18 +.word .L7F053E58 +.word .L7F053E78 +.word .L7F053E98 +.word .L7F053EB4 + +.text +glabel play_door_opening_soundeffect_0 +/* 0886A8 7F053B78 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0886AC 7F053B7C AFBF0014 */ sw $ra, 0x14($sp) +/* 0886B0 7F053B80 AFA40020 */ sw $a0, 0x20($sp) +/* 0886B4 7F053B84 AFA0001C */ sw $zero, 0x1c($sp) +/* 0886B8 7F053B88 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 0886BC 7F053B8C AFA00018 */ sw $zero, 0x18($sp) +/* 0886C0 7F053B90 8FAE0020 */ lw $t6, 0x20($sp) +/* 0886C4 7F053B94 8FA70018 */ lw $a3, 0x18($sp) +/* 0886C8 7F053B98 8FB80020 */ lw $t8, 0x20($sp) +/* 0886CC 7F053B9C 8DCF00F4 */ lw $t7, 0xf4($t6) +/* 0886D0 7F053BA0 8FA80020 */ lw $t0, 0x20($sp) +/* 0886D4 7F053BA4 55E00004 */ bnezl $t7, .L7F053BB8 +/* 0886D8 7F053BA8 8F1900F8 */ lw $t9, 0xf8($t8) +/* 0886DC 7F053BAC 10000005 */ b .L7F053BC4 +/* 0886E0 7F053BB0 25C700F4 */ addiu $a3, $t6, 0xf4 +/* 0886E4 7F053BB4 8F1900F8 */ lw $t9, 0xf8($t8) +.L7F053BB8: +/* 0886E8 7F053BB8 57200003 */ bnezl $t9, .L7F053BC8 +/* 0886EC 7F053BBC 8D0900A4 */ lw $t1, 0xa4($t0) +/* 0886F0 7F053BC0 270700F8 */ addiu $a3, $t8, 0xf8 +.L7F053BC4: +/* 0886F4 7F053BC4 8D0900A4 */ lw $t1, 0xa4($t0) +.L7F053BC8: +/* 0886F8 7F053BC8 252AFFFF */ addiu $t2, $t1, -1 +/* 0886FC 7F053BCC 2D410011 */ sltiu $at, $t2, 0x11 +/* 088700 7F053BD0 102000D6 */ beqz $at, .L7F053F2C +/* 088704 7F053BD4 000A5080 */ sll $t2, $t2, 2 +/* 088708 7F053BD8 3C018005 */ lui $at, %hi(door_opening_sound_table_0) +/* 08870C 7F053BDC 002A0821 */ addu $at, $at, $t2 +/* 088710 7F053BE0 8C2A334C */ lw $t2, %lo(door_opening_sound_table_0)($at) +/* 088714 7F053BE4 01400008 */ jr $t2 +/* 088718 7F053BE8 00000000 */ nop +.L7F053BEC: +/* 08871C 7F053BEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088720 7F053BF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088724 7F053BF4 240500D2 */ li $a1, 210 +/* 088728 7F053BF8 00003025 */ move $a2, $zero +/* 08872C 7F053BFC 0C002382 */ jal play_sfx_a1 +/* 088730 7F053C00 AFA70018 */ sw $a3, 0x18($sp) +/* 088734 7F053C04 8FA70018 */ lw $a3, 0x18($sp) +/* 088738 7F053C08 AFA2001C */ sw $v0, 0x1c($sp) +/* 08873C 7F053C0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088740 7F053C10 10E000C6 */ beqz $a3, .L7F053F2C +/* 088744 7F053C14 240500D3 */ li $a1, 211 +/* 088748 7F053C18 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08874C 7F053C1C 0C002382 */ jal play_sfx_a1 +/* 088750 7F053C20 00E03025 */ move $a2, $a3 +/* 088754 7F053C24 100000C2 */ b .L7F053F30 +/* 088758 7F053C28 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053C2C: +/* 08875C 7F053C2C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088760 7F053C30 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088764 7F053C34 240500D2 */ li $a1, 210 +/* 088768 7F053C38 00003025 */ move $a2, $zero +/* 08876C 7F053C3C 0C002382 */ jal play_sfx_a1 +/* 088770 7F053C40 AFA70018 */ sw $a3, 0x18($sp) +/* 088774 7F053C44 8FA70018 */ lw $a3, 0x18($sp) +/* 088778 7F053C48 AFA2001C */ sw $v0, 0x1c($sp) +/* 08877C 7F053C4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088780 7F053C50 10E000B6 */ beqz $a3, .L7F053F2C +/* 088784 7F053C54 24050007 */ li $a1, 7 +/* 088788 7F053C58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08878C 7F053C5C 0C002382 */ jal play_sfx_a1 +/* 088790 7F053C60 00E03025 */ move $a2, $a3 +/* 088794 7F053C64 100000B2 */ b .L7F053F30 +/* 088798 7F053C68 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053C6C: +/* 08879C 7F053C6C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887A0 7F053C70 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887A4 7F053C74 240500CA */ li $a1, 202 +/* 0887A8 7F053C78 00003025 */ move $a2, $zero +/* 0887AC 7F053C7C 0C002382 */ jal play_sfx_a1 +/* 0887B0 7F053C80 AFA70018 */ sw $a3, 0x18($sp) +/* 0887B4 7F053C84 8FA70018 */ lw $a3, 0x18($sp) +/* 0887B8 7F053C88 AFA2001C */ sw $v0, 0x1c($sp) +/* 0887BC 7F053C8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887C0 7F053C90 10E000A6 */ beqz $a3, .L7F053F2C +/* 0887C4 7F053C94 240500CC */ li $a1, 204 +/* 0887C8 7F053C98 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887CC 7F053C9C 0C002382 */ jal play_sfx_a1 +/* 0887D0 7F053CA0 00E03025 */ move $a2, $a3 +/* 0887D4 7F053CA4 100000A2 */ b .L7F053F30 +/* 0887D8 7F053CA8 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053CAC: +/* 0887DC 7F053CAC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887E0 7F053CB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887E4 7F053CB4 240500D6 */ li $a1, 214 +/* 0887E8 7F053CB8 00003025 */ move $a2, $zero +/* 0887EC 7F053CBC 0C002382 */ jal play_sfx_a1 +/* 0887F0 7F053CC0 AFA70018 */ sw $a3, 0x18($sp) +/* 0887F4 7F053CC4 8FA70018 */ lw $a3, 0x18($sp) +/* 0887F8 7F053CC8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0887FC 7F053CCC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088800 7F053CD0 10E00096 */ beqz $a3, .L7F053F2C +/* 088804 7F053CD4 240500D8 */ li $a1, 216 +/* 088808 7F053CD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08880C 7F053CDC 0C002382 */ jal play_sfx_a1 +/* 088810 7F053CE0 00E03025 */ move $a2, $a3 +/* 088814 7F053CE4 10000092 */ b .L7F053F30 +/* 088818 7F053CE8 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053CEC: +/* 08881C 7F053CEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088820 7F053CF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088824 7F053CF4 240500BC */ li $a1, 188 +/* 088828 7F053CF8 0C002382 */ jal play_sfx_a1 +/* 08882C 7F053CFC 00003025 */ move $a2, $zero +/* 088830 7F053D00 1000008A */ b .L7F053F2C +/* 088834 7F053D04 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053D08: +/* 088838 7F053D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08883C 7F053D0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088840 7F053D10 24050007 */ li $a1, 7 +/* 088844 7F053D14 0C002382 */ jal play_sfx_a1 +/* 088848 7F053D18 00003025 */ move $a2, $zero +/* 08884C 7F053D1C 10000083 */ b .L7F053F2C +/* 088850 7F053D20 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053D24: +/* 088854 7F053D24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088858 7F053D28 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08885C 7F053D2C 240500C0 */ li $a1, 192 +/* 088860 7F053D30 00003025 */ move $a2, $zero +/* 088864 7F053D34 0C002382 */ jal play_sfx_a1 +/* 088868 7F053D38 AFA70018 */ sw $a3, 0x18($sp) +/* 08886C 7F053D3C 8FA70018 */ lw $a3, 0x18($sp) +/* 088870 7F053D40 AFA2001C */ sw $v0, 0x1c($sp) +/* 088874 7F053D44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088878 7F053D48 10E00078 */ beqz $a3, .L7F053F2C +/* 08887C 7F053D4C 240500BF */ li $a1, 191 +/* 088880 7F053D50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088884 7F053D54 0C002382 */ jal play_sfx_a1 +/* 088888 7F053D58 00E03025 */ move $a2, $a3 +/* 08888C 7F053D5C 10000074 */ b .L7F053F30 +/* 088890 7F053D60 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053D64: +/* 088894 7F053D64 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088898 7F053D68 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08889C 7F053D6C 240500BC */ li $a1, 188 +/* 0888A0 7F053D70 00003025 */ move $a2, $zero +/* 0888A4 7F053D74 0C002382 */ jal play_sfx_a1 +/* 0888A8 7F053D78 AFA70018 */ sw $a3, 0x18($sp) +/* 0888AC 7F053D7C 8FA70018 */ lw $a3, 0x18($sp) +/* 0888B0 7F053D80 AFA2001C */ sw $v0, 0x1c($sp) +/* 0888B4 7F053D84 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888B8 7F053D88 10E00068 */ beqz $a3, .L7F053F2C +/* 0888BC 7F053D8C 24050007 */ li $a1, 7 +/* 0888C0 7F053D90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888C4 7F053D94 0C002382 */ jal play_sfx_a1 +/* 0888C8 7F053D98 00E03025 */ move $a2, $a3 +/* 0888CC 7F053D9C 10000064 */ b .L7F053F30 +/* 0888D0 7F053DA0 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053DA4: +/* 0888D4 7F053DA4 10E00061 */ beqz $a3, .L7F053F2C +/* 0888D8 7F053DA8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888DC 7F053DAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888E0 7F053DB0 240500C2 */ li $a1, 194 +/* 0888E4 7F053DB4 0C002382 */ jal play_sfx_a1 +/* 0888E8 7F053DB8 00E03025 */ move $a2, $a3 +/* 0888EC 7F053DBC 1000005C */ b .L7F053F30 +/* 0888F0 7F053DC0 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053DC4: +/* 0888F4 7F053DC4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888F8 7F053DC8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888FC 7F053DCC 240500C4 */ li $a1, 196 +/* 088900 7F053DD0 0C002382 */ jal play_sfx_a1 +/* 088904 7F053DD4 00003025 */ move $a2, $zero +/* 088908 7F053DD8 10000054 */ b .L7F053F2C +/* 08890C 7F053DDC AFA2001C */ sw $v0, 0x1c($sp) +.L7F053DE0: +/* 088910 7F053DE0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088914 7F053DE4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088918 7F053DE8 24050007 */ li $a1, 7 +/* 08891C 7F053DEC 0C002382 */ jal play_sfx_a1 +/* 088920 7F053DF0 00003025 */ move $a2, $zero +/* 088924 7F053DF4 1000004D */ b .L7F053F2C +/* 088928 7F053DF8 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053DFC: +/* 08892C 7F053DFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088930 7F053E00 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088934 7F053E04 240500C8 */ li $a1, 200 +/* 088938 7F053E08 0C002382 */ jal play_sfx_a1 +/* 08893C 7F053E0C 00003025 */ move $a2, $zero +/* 088940 7F053E10 10000046 */ b .L7F053F2C +/* 088944 7F053E14 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053E18: +/* 088948 7F053E18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08894C 7F053E1C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088950 7F053E20 24050007 */ li $a1, 7 +/* 088954 7F053E24 00003025 */ move $a2, $zero +/* 088958 7F053E28 0C002382 */ jal play_sfx_a1 +/* 08895C 7F053E2C AFA70018 */ sw $a3, 0x18($sp) +/* 088960 7F053E30 8FA70018 */ lw $a3, 0x18($sp) +/* 088964 7F053E34 AFA2001C */ sw $v0, 0x1c($sp) +/* 088968 7F053E38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08896C 7F053E3C 10E0003B */ beqz $a3, .L7F053F2C +/* 088970 7F053E40 24050007 */ li $a1, 7 +/* 088974 7F053E44 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088978 7F053E48 0C002382 */ jal play_sfx_a1 +/* 08897C 7F053E4C 00E03025 */ move $a2, $a3 +/* 088980 7F053E50 10000037 */ b .L7F053F30 +/* 088984 7F053E54 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E58: +/* 088988 7F053E58 10E00034 */ beqz $a3, .L7F053F2C +/* 08898C 7F053E5C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088990 7F053E60 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088994 7F053E64 240500DA */ li $a1, 218 +/* 088998 7F053E68 0C002382 */ jal play_sfx_a1 +/* 08899C 7F053E6C 00E03025 */ move $a2, $a3 +/* 0889A0 7F053E70 1000002F */ b .L7F053F30 +/* 0889A4 7F053E74 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E78: +/* 0889A8 7F053E78 10E0002C */ beqz $a3, .L7F053F2C +/* 0889AC 7F053E7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889B0 7F053E80 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889B4 7F053E84 240500E1 */ li $a1, 225 +/* 0889B8 7F053E88 0C002382 */ jal play_sfx_a1 +/* 0889BC 7F053E8C 00E03025 */ move $a2, $a3 +/* 0889C0 7F053E90 10000027 */ b .L7F053F30 +/* 0889C4 7F053E94 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E98: +/* 0889C8 7F053E98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889CC 7F053E9C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889D0 7F053EA0 240500D6 */ li $a1, 214 +/* 0889D4 7F053EA4 0C002382 */ jal play_sfx_a1 +/* 0889D8 7F053EA8 00003025 */ move $a2, $zero +/* 0889DC 7F053EAC 1000001F */ b .L7F053F2C +/* 0889E0 7F053EB0 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053EB4: +/* 0889E4 7F053EB4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889E8 7F053EB8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889EC 7F053EBC 24050007 */ li $a1, 7 +/* 0889F0 7F053EC0 00003025 */ move $a2, $zero +/* 0889F4 7F053EC4 0C002382 */ jal play_sfx_a1 +/* 0889F8 7F053EC8 AFA70018 */ sw $a3, 0x18($sp) +/* 0889FC 7F053ECC 8FA70018 */ lw $a3, 0x18($sp) +/* 088A00 7F053ED0 10400008 */ beqz $v0, .L7F053EF4 +/* 088A04 7F053ED4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088A08 7F053ED8 8FAB0020 */ lw $t3, 0x20($sp) +/* 088A0C 7F053EDC 00402025 */ move $a0, $v0 +/* 088A10 7F053EE0 8D650010 */ lw $a1, 0x10($t3) +/* 088A14 7F053EE4 AFA70018 */ sw $a3, 0x18($sp) +/* 088A18 7F053EE8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088A1C 7F053EEC 24A50008 */ addiu $a1, $a1, 8 +/* 088A20 7F053EF0 8FA70018 */ lw $a3, 0x18($sp) +.L7F053EF4: +/* 088A24 7F053EF4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088A28 7F053EF8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A2C 7F053EFC 240500CA */ li $a1, 202 +/* 088A30 7F053F00 00003025 */ move $a2, $zero +/* 088A34 7F053F04 0C002382 */ jal play_sfx_a1 +/* 088A38 7F053F08 AFA70018 */ sw $a3, 0x18($sp) +/* 088A3C 7F053F0C 8FA70018 */ lw $a3, 0x18($sp) +/* 088A40 7F053F10 AFA2001C */ sw $v0, 0x1c($sp) +/* 088A44 7F053F14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088A48 7F053F18 10E00004 */ beqz $a3, .L7F053F2C +/* 088A4C 7F053F1C 240500CC */ li $a1, 204 +/* 088A50 7F053F20 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A54 7F053F24 0C002382 */ jal play_sfx_a1 +/* 088A58 7F053F28 00E03025 */ move $a2, $a3 +def_7F053BE4: +.L7F053F2C: +/* 088A5C 7F053F2C 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053F30: +/* 088A60 7F053F30 8FAD0020 */ lw $t5, 0x20($sp) +/* 088A64 7F053F34 11800005 */ beqz $t4, .L7F053F4C +/* 088A68 7F053F38 00000000 */ nop +/* 088A6C 7F053F3C 8DA50010 */ lw $a1, 0x10($t5) +/* 088A70 7F053F40 01802025 */ move $a0, $t4 +/* 088A74 7F053F44 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088A78 7F053F48 24A50008 */ addiu $a1, $a1, 8 +.L7F053F4C: +/* 088A7C 7F053F4C 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088A80 7F053F50 8FA40020 */ lw $a0, 0x20($sp) +/* 088A84 7F053F54 8FBF0014 */ lw $ra, 0x14($sp) +/* 088A88 7F053F58 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088A8C 7F053F5C 03E00008 */ jr $ra +/* 088A90 7F053F60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_opening_soundeffect_1(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053390*/ +glabel door_opening_sound_table_1 +.word .L7F053FD8 +.word .L7F054018 +.word .L7F054058 +.word .L7F054098 +.word .L7F05428C +.word .L7F05428C +.word .L7F0540D8 +.word .L7F054118 +.word .L7F054158 +.word .L7F05428C +.word .L7F05428C +.word .L7F05428C +.word .L7F054178 +.word .L7F0541B8 +.word .L7F0541D8 +.word .L7F0541F8 +.word .L7F054214 +.text +glabel play_door_opening_soundeffect_1 +/* 088A94 7F053F64 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088A98 7F053F68 AFBF0014 */ sw $ra, 0x14($sp) +/* 088A9C 7F053F6C AFA40020 */ sw $a0, 0x20($sp) +/* 088AA0 7F053F70 AFA0001C */ sw $zero, 0x1c($sp) +/* 088AA4 7F053F74 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088AA8 7F053F78 AFA00018 */ sw $zero, 0x18($sp) +/* 088AAC 7F053F7C 8FAE0020 */ lw $t6, 0x20($sp) +/* 088AB0 7F053F80 8FA70018 */ lw $a3, 0x18($sp) +/* 088AB4 7F053F84 8FB80020 */ lw $t8, 0x20($sp) +/* 088AB8 7F053F88 8DCF00F4 */ lw $t7, 0xf4($t6) +/* 088ABC 7F053F8C 8FA80020 */ lw $t0, 0x20($sp) +/* 088AC0 7F053F90 55E00004 */ bnezl $t7, .L7F053FA4 +/* 088AC4 7F053F94 8F1900F8 */ lw $t9, 0xf8($t8) +/* 088AC8 7F053F98 10000005 */ b .L7F053FB0 +/* 088ACC 7F053F9C 25C700F4 */ addiu $a3, $t6, 0xf4 +/* 088AD0 7F053FA0 8F1900F8 */ lw $t9, 0xf8($t8) +.L7F053FA4: +/* 088AD4 7F053FA4 57200003 */ bnezl $t9, .L7F053FB4 +/* 088AD8 7F053FA8 8D0900A4 */ lw $t1, 0xa4($t0) +/* 088ADC 7F053FAC 270700F8 */ addiu $a3, $t8, 0xf8 +.L7F053FB0: +/* 088AE0 7F053FB0 8D0900A4 */ lw $t1, 0xa4($t0) +.L7F053FB4: +/* 088AE4 7F053FB4 252AFFFF */ addiu $t2, $t1, -1 +/* 088AE8 7F053FB8 2D410011 */ sltiu $at, $t2, 0x11 +/* 088AEC 7F053FBC 102000B3 */ beqz $at, .L7F05428C +/* 088AF0 7F053FC0 000A5080 */ sll $t2, $t2, 2 +/* 088AF4 7F053FC4 3C018005 */ lui $at, %hi(door_opening_sound_table_1) +/* 088AF8 7F053FC8 002A0821 */ addu $at, $at, $t2 +/* 088AFC 7F053FCC 8C2A3390 */ lw $t2, %lo(door_opening_sound_table_1)($at) +.L7F053FD0: +/* 088B00 7F053FD0 01400008 */ jr $t2 +/* 088B04 7F053FD4 00000000 */ nop +.L7F053FD8: +/* 088B08 7F053FD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B0C 7F053FDC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B10 7F053FE0 240500D2 */ li $a1, 210 +/* 088B14 7F053FE4 00003025 */ move $a2, $zero +/* 088B18 7F053FE8 0C002382 */ jal play_sfx_a1 +/* 088B1C 7F053FEC AFA70018 */ sw $a3, 0x18($sp) +/* 088B20 7F053FF0 8FA70018 */ lw $a3, 0x18($sp) +/* 088B24 7F053FF4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088B28 7F053FF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B2C 7F053FFC 10E000A3 */ beqz $a3, .L7F05428C +/* 088B30 7F054000 240500D3 */ li $a1, 211 +/* 088B34 7F054004 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B38 7F054008 0C002382 */ jal play_sfx_a1 +/* 088B3C 7F05400C 00E03025 */ move $a2, $a3 +/* 088B40 7F054010 1000009F */ b .L7F054290 +/* 088B44 7F054014 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054018: +/* 088B48 7F054018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B4C 7F05401C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B50 7F054020 240500D2 */ li $a1, 210 +/* 088B54 7F054024 00003025 */ move $a2, $zero +/* 088B58 7F054028 0C002382 */ jal play_sfx_a1 +/* 088B5C 7F05402C AFA70018 */ sw $a3, 0x18($sp) +/* 088B60 7F054030 8FA70018 */ lw $a3, 0x18($sp) +/* 088B64 7F054034 AFA2001C */ sw $v0, 0x1c($sp) +/* 088B68 7F054038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B6C 7F05403C 10E00093 */ beqz $a3, .L7F05428C +/* 088B70 7F054040 24050007 */ li $a1, 7 +/* 088B74 7F054044 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B78 7F054048 0C002382 */ jal play_sfx_a1 +/* 088B7C 7F05404C 00E03025 */ move $a2, $a3 +/* 088B80 7F054050 1000008F */ b .L7F054290 +/* 088B84 7F054054 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054058: +/* 088B88 7F054058 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B8C 7F05405C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B90 7F054060 240500CA */ li $a1, 202 +/* 088B94 7F054064 00003025 */ move $a2, $zero +/* 088B98 7F054068 0C002382 */ jal play_sfx_a1 +/* 088B9C 7F05406C AFA70018 */ sw $a3, 0x18($sp) +/* 088BA0 7F054070 8FA70018 */ lw $a3, 0x18($sp) +/* 088BA4 7F054074 AFA2001C */ sw $v0, 0x1c($sp) +/* 088BA8 7F054078 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BAC 7F05407C 10E00083 */ beqz $a3, .L7F05428C +/* 088BB0 7F054080 240500CC */ li $a1, 204 +/* 088BB4 7F054084 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BB8 7F054088 0C002382 */ jal play_sfx_a1 +/* 088BBC 7F05408C 00E03025 */ move $a2, $a3 +/* 088BC0 7F054090 1000007F */ b .L7F054290 +/* 088BC4 7F054094 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054098: +/* 088BC8 7F054098 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BCC 7F05409C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BD0 7F0540A0 240500D6 */ li $a1, 214 +/* 088BD4 7F0540A4 00003025 */ move $a2, $zero +/* 088BD8 7F0540A8 0C002382 */ jal play_sfx_a1 +/* 088BDC 7F0540AC AFA70018 */ sw $a3, 0x18($sp) +/* 088BE0 7F0540B0 8FA70018 */ lw $a3, 0x18($sp) +/* 088BE4 7F0540B4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088BE8 7F0540B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BEC 7F0540BC 10E00073 */ beqz $a3, .L7F05428C +/* 088BF0 7F0540C0 240500D8 */ li $a1, 216 +/* 088BF4 7F0540C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BF8 7F0540C8 0C002382 */ jal play_sfx_a1 +/* 088BFC 7F0540CC 00E03025 */ move $a2, $a3 +/* 088C00 7F0540D0 1000006F */ b .L7F054290 +/* 088C04 7F0540D4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0540D8: +/* 088C08 7F0540D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C0C 7F0540DC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C10 7F0540E0 240500C0 */ li $a1, 192 +/* 088C14 7F0540E4 00003025 */ move $a2, $zero +/* 088C18 7F0540E8 0C002382 */ jal play_sfx_a1 +/* 088C1C 7F0540EC AFA70018 */ sw $a3, 0x18($sp) +/* 088C20 7F0540F0 8FA70018 */ lw $a3, 0x18($sp) +/* 088C24 7F0540F4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088C28 7F0540F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C2C 7F0540FC 10E00063 */ beqz $a3, .L7F05428C +/* 088C30 7F054100 240500BF */ li $a1, 191 +/* 088C34 7F054104 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C38 7F054108 0C002382 */ jal play_sfx_a1 +/* 088C3C 7F05410C 00E03025 */ move $a2, $a3 +/* 088C40 7F054110 1000005F */ b .L7F054290 +/* 088C44 7F054114 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054118: +/* 088C48 7F054118 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C4C 7F05411C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C50 7F054120 240500BC */ li $a1, 188 +/* 088C54 7F054124 00003025 */ move $a2, $zero +/* 088C58 7F054128 0C002382 */ jal play_sfx_a1 +/* 088C5C 7F05412C AFA70018 */ sw $a3, 0x18($sp) +/* 088C60 7F054130 8FA70018 */ lw $a3, 0x18($sp) +/* 088C64 7F054134 AFA2001C */ sw $v0, 0x1c($sp) +/* 088C68 7F054138 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C6C 7F05413C 10E00053 */ beqz $a3, .L7F05428C +/* 088C70 7F054140 24050007 */ li $a1, 7 +/* 088C74 7F054144 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C78 7F054148 0C002382 */ jal play_sfx_a1 +/* 088C7C 7F05414C 00E03025 */ move $a2, $a3 +/* 088C80 7F054150 1000004F */ b .L7F054290 +/* 088C84 7F054154 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054158: +/* 088C88 7F054158 10E0004C */ beqz $a3, .L7F05428C +/* 088C8C 7F05415C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C90 7F054160 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C94 7F054164 240500C2 */ li $a1, 194 +/* 088C98 7F054168 0C002382 */ jal play_sfx_a1 +/* 088C9C 7F05416C 00E03025 */ move $a2, $a3 +/* 088CA0 7F054170 10000047 */ b .L7F054290 +/* 088CA4 7F054174 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054178: +/* 088CA8 7F054178 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CAC 7F05417C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CB0 7F054180 24050007 */ li $a1, 7 +/* 088CB4 7F054184 00003025 */ move $a2, $zero +/* 088CB8 7F054188 0C002382 */ jal play_sfx_a1 +/* 088CBC 7F05418C AFA70018 */ sw $a3, 0x18($sp) +/* 088CC0 7F054190 8FA70018 */ lw $a3, 0x18($sp) +/* 088CC4 7F054194 AFA2001C */ sw $v0, 0x1c($sp) +/* 088CC8 7F054198 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CCC 7F05419C 10E0003B */ beqz $a3, .L7F05428C +/* 088CD0 7F0541A0 24050007 */ li $a1, 7 +/* 088CD4 7F0541A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CD8 7F0541A8 0C002382 */ jal play_sfx_a1 +/* 088CDC 7F0541AC 00E03025 */ move $a2, $a3 +/* 088CE0 7F0541B0 10000037 */ b .L7F054290 +/* 088CE4 7F0541B4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541B8: +/* 088CE8 7F0541B8 10E00034 */ beqz $a3, .L7F05428C +/* 088CEC 7F0541BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CF0 7F0541C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CF4 7F0541C4 240500DA */ li $a1, 218 +/* 088CF8 7F0541C8 0C002382 */ jal play_sfx_a1 +/* 088CFC 7F0541CC 00E03025 */ move $a2, $a3 +/* 088D00 7F0541D0 1000002F */ b .L7F054290 +/* 088D04 7F0541D4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541D8: +/* 088D08 7F0541D8 10E0002C */ beqz $a3, .L7F05428C +/* 088D0C 7F0541DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D10 7F0541E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D14 7F0541E4 240500E1 */ li $a1, 225 +/* 088D18 7F0541E8 0C002382 */ jal play_sfx_a1 +/* 088D1C 7F0541EC 00E03025 */ move $a2, $a3 +/* 088D20 7F0541F0 10000027 */ b .L7F054290 +/* 088D24 7F0541F4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541F8: +/* 088D28 7F0541F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D2C 7F0541FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D30 7F054200 240500D6 */ li $a1, 214 +/* 088D34 7F054204 0C002382 */ jal play_sfx_a1 +/* 088D38 7F054208 00003025 */ move $a2, $zero +/* 088D3C 7F05420C 1000001F */ b .L7F05428C +/* 088D40 7F054210 AFA2001C */ sw $v0, 0x1c($sp) +.L7F054214: +/* 088D44 7F054214 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D48 7F054218 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D4C 7F05421C 24050007 */ li $a1, 7 +/* 088D50 7F054220 00003025 */ move $a2, $zero +/* 088D54 7F054224 0C002382 */ jal play_sfx_a1 +/* 088D58 7F054228 AFA70018 */ sw $a3, 0x18($sp) +/* 088D5C 7F05422C 8FA70018 */ lw $a3, 0x18($sp) +/* 088D60 7F054230 10400008 */ beqz $v0, .L7F054254 +/* 088D64 7F054234 AFA2001C */ sw $v0, 0x1c($sp) +/* 088D68 7F054238 8FAB0020 */ lw $t3, 0x20($sp) +/* 088D6C 7F05423C 00402025 */ move $a0, $v0 +/* 088D70 7F054240 8D650010 */ lw $a1, 0x10($t3) +/* 088D74 7F054244 AFA70018 */ sw $a3, 0x18($sp) +/* 088D78 7F054248 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088D7C 7F05424C 24A50008 */ addiu $a1, $a1, 8 +/* 088D80 7F054250 8FA70018 */ lw $a3, 0x18($sp) +.L7F054254: +/* 088D84 7F054254 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D88 7F054258 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D8C 7F05425C 240500CA */ li $a1, 202 +/* 088D90 7F054260 00003025 */ move $a2, $zero +/* 088D94 7F054264 0C002382 */ jal play_sfx_a1 +/* 088D98 7F054268 AFA70018 */ sw $a3, 0x18($sp) +/* 088D9C 7F05426C 8FA70018 */ lw $a3, 0x18($sp) +/* 088DA0 7F054270 AFA2001C */ sw $v0, 0x1c($sp) +/* 088DA4 7F054274 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088DA8 7F054278 10E00004 */ beqz $a3, .L7F05428C +/* 088DAC 7F05427C 240500CC */ li $a1, 204 +/* 088DB0 7F054280 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088DB4 7F054284 0C002382 */ jal play_sfx_a1 +/* 088DB8 7F054288 00E03025 */ move $a2, $a3 +def_7F053FD0: +.L7F05428C: +/* 088DBC 7F05428C 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054290: +/* 088DC0 7F054290 8FAD0020 */ lw $t5, 0x20($sp) +/* 088DC4 7F054294 11800005 */ beqz $t4, .L7F0542AC +/* 088DC8 7F054298 00000000 */ nop +/* 088DCC 7F05429C 8DA50010 */ lw $a1, 0x10($t5) +/* 088DD0 7F0542A0 01802025 */ move $a0, $t4 +/* 088DD4 7F0542A4 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088DD8 7F0542A8 24A50008 */ addiu $a1, $a1, 8 +.L7F0542AC: +/* 088DDC 7F0542AC 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088DE0 7F0542B0 8FA40020 */ lw $a0, 0x20($sp) +/* 088DE4 7F0542B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 088DE8 7F0542B8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088DEC 7F0542BC 03E00008 */ jr $ra +/* 088DF0 7F0542C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_closing_soundeffect_0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800533D4*/ +glabel door_closing_sound_table_0 +.word .L7F054308 +.word .L7F054328 +.word .L7F054348 +.word .L7F054368 +.word .L7F054484 +.word .L7F054484 +.word .L7F054388 +.word .L7F0543A8 +.word .L7F0543C8 +.word .L7F054484 +.word .L7F054484 +.word .L7F054484 +.word .L7F0543E8 +.word .L7F054408 +.word .L7F054428 +.word .L7F054448 +.word .L7F054468 +.text +glabel play_door_closing_soundeffect_0 +/* 088DF4 7F0542C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088DF8 7F0542C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 088DFC 7F0542CC AFA40020 */ sw $a0, 0x20($sp) +/* 088E00 7F0542D0 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088E04 7F0542D4 AFA0001C */ sw $zero, 0x1c($sp) +/* 088E08 7F0542D8 8FA70020 */ lw $a3, 0x20($sp) +/* 088E0C 7F0542DC 8FA6001C */ lw $a2, 0x1c($sp) +/* 088E10 7F0542E0 8CEE00A4 */ lw $t6, 0xa4($a3) +/* 088E14 7F0542E4 25CFFFFF */ addiu $t7, $t6, -1 +/* 088E18 7F0542E8 2DE10011 */ sltiu $at, $t7, 0x11 +/* 088E1C 7F0542EC 10200065 */ beqz $at, .L7F054484 +/* 088E20 7F0542F0 000F7880 */ sll $t7, $t7, 2 +/* 088E24 7F0542F4 3C018005 */ lui $at, %hi(door_closing_sound_table_0) +/* 088E28 7F0542F8 002F0821 */ addu $at, $at, $t7 +/* 088E2C 7F0542FC 8C2F33D4 */ lw $t7, %lo(door_closing_sound_table_0)($at) +.L7F054300: +/* 088E30 7F054300 01E00008 */ jr $t7 +/* 088E34 7F054304 00000000 */ nop +.L7F054308: +/* 088E38 7F054308 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E3C 7F05430C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E40 7F054310 240500D2 */ li $a1, 210 +/* 088E44 7F054314 0C002382 */ jal play_sfx_a1 +/* 088E48 7F054318 00003025 */ move $a2, $zero +/* 088E4C 7F05431C 00403025 */ move $a2, $v0 +/* 088E50 7F054320 10000058 */ b .L7F054484 +/* 088E54 7F054324 8FA70020 */ lw $a3, 0x20($sp) +.L7F054328: +/* 088E58 7F054328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E5C 7F05432C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E60 7F054330 240500D2 */ li $a1, 210 +/* 088E64 7F054334 0C002382 */ jal play_sfx_a1 +/* 088E68 7F054338 00003025 */ move $a2, $zero +/* 088E6C 7F05433C 00403025 */ move $a2, $v0 +/* 088E70 7F054340 10000050 */ b .L7F054484 +/* 088E74 7F054344 8FA70020 */ lw $a3, 0x20($sp) +.L7F054348: +/* 088E78 7F054348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E7C 7F05434C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E80 7F054350 240500CB */ li $a1, 203 +/* 088E84 7F054354 0C002382 */ jal play_sfx_a1 +/* 088E88 7F054358 00003025 */ move $a2, $zero +/* 088E8C 7F05435C 00403025 */ move $a2, $v0 +/* 088E90 7F054360 10000048 */ b .L7F054484 +/* 088E94 7F054364 8FA70020 */ lw $a3, 0x20($sp) +.L7F054368: +/* 088E98 7F054368 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E9C 7F05436C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EA0 7F054370 240500D7 */ li $a1, 215 +/* 088EA4 7F054374 0C002382 */ jal play_sfx_a1 +/* 088EA8 7F054378 00003025 */ move $a2, $zero +/* 088EAC 7F05437C 00403025 */ move $a2, $v0 +/* 088EB0 7F054380 10000040 */ b .L7F054484 +/* 088EB4 7F054384 8FA70020 */ lw $a3, 0x20($sp) +.L7F054388: +/* 088EB8 7F054388 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EBC 7F05438C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EC0 7F054390 240500D2 */ li $a1, 210 +/* 088EC4 7F054394 0C002382 */ jal play_sfx_a1 +/* 088EC8 7F054398 00003025 */ move $a2, $zero +/* 088ECC 7F05439C 00403025 */ move $a2, $v0 +/* 088ED0 7F0543A0 10000038 */ b .L7F054484 +/* 088ED4 7F0543A4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543A8: +/* 088ED8 7F0543A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EDC 7F0543AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EE0 7F0543B0 240500BB */ li $a1, 187 +/* 088EE4 7F0543B4 0C002382 */ jal play_sfx_a1 +/* 088EE8 7F0543B8 00003025 */ move $a2, $zero +/* 088EEC 7F0543BC 00403025 */ move $a2, $v0 +/* 088EF0 7F0543C0 10000030 */ b .L7F054484 +/* 088EF4 7F0543C4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543C8: +/* 088EF8 7F0543C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EFC 7F0543CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F00 7F0543D0 240500C3 */ li $a1, 195 +/* 088F04 7F0543D4 0C002382 */ jal play_sfx_a1 +/* 088F08 7F0543D8 00003025 */ move $a2, $zero +/* 088F0C 7F0543DC 00403025 */ move $a2, $v0 +/* 088F10 7F0543E0 10000028 */ b .L7F054484 +/* 088F14 7F0543E4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543E8: +/* 088F18 7F0543E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F1C 7F0543EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F20 7F0543F0 24050007 */ li $a1, 7 +/* 088F24 7F0543F4 0C002382 */ jal play_sfx_a1 +/* 088F28 7F0543F8 00003025 */ move $a2, $zero +/* 088F2C 7F0543FC 00403025 */ move $a2, $v0 +/* 088F30 7F054400 10000020 */ b .L7F054484 +/* 088F34 7F054404 8FA70020 */ lw $a3, 0x20($sp) +.L7F054408: +/* 088F38 7F054408 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F3C 7F05440C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F40 7F054410 240500DB */ li $a1, 219 +/* 088F44 7F054414 0C002382 */ jal play_sfx_a1 +/* 088F48 7F054418 00003025 */ move $a2, $zero +/* 088F4C 7F05441C 00403025 */ move $a2, $v0 +/* 088F50 7F054420 10000018 */ b .L7F054484 +/* 088F54 7F054424 8FA70020 */ lw $a3, 0x20($sp) +.L7F054428: +/* 088F58 7F054428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F5C 7F05442C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F60 7F054430 240500E2 */ li $a1, 226 +/* 088F64 7F054434 0C002382 */ jal play_sfx_a1 +/* 088F68 7F054438 00003025 */ move $a2, $zero +/* 088F6C 7F05443C 00403025 */ move $a2, $v0 +/* 088F70 7F054440 10000010 */ b .L7F054484 +/* 088F74 7F054444 8FA70020 */ lw $a3, 0x20($sp) +.L7F054448: +/* 088F78 7F054448 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F7C 7F05444C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F80 7F054450 240500D7 */ li $a1, 215 +/* 088F84 7F054454 0C002382 */ jal play_sfx_a1 +/* 088F88 7F054458 00003025 */ move $a2, $zero +/* 088F8C 7F05445C 00403025 */ move $a2, $v0 +/* 088F90 7F054460 10000008 */ b .L7F054484 +/* 088F94 7F054464 8FA70020 */ lw $a3, 0x20($sp) +.L7F054468: +/* 088F98 7F054468 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F9C 7F05446C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088FA0 7F054470 240500CB */ li $a1, 203 +/* 088FA4 7F054474 0C002382 */ jal play_sfx_a1 +/* 088FA8 7F054478 00003025 */ move $a2, $zero +/* 088FAC 7F05447C 00403025 */ move $a2, $v0 +/* 088FB0 7F054480 8FA70020 */ lw $a3, 0x20($sp) +def_7F054300: +.L7F054484: +/* 088FB4 7F054484 10C00006 */ beqz $a2, .L7F0544A0 +/* 088FB8 7F054488 00000000 */ nop +/* 088FBC 7F05448C 8CE50010 */ lw $a1, 0x10($a3) +/* 088FC0 7F054490 00C02025 */ move $a0, $a2 +/* 088FC4 7F054494 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088FC8 7F054498 24A50008 */ addiu $a1, $a1, 8 +/* 088FCC 7F05449C 8FA70020 */ lw $a3, 0x20($sp) +.L7F0544A0: +/* 088FD0 7F0544A0 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088FD4 7F0544A4 00E02025 */ move $a0, $a3 +/* 088FD8 7F0544A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 088FDC 7F0544AC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088FE0 7F0544B0 03E00008 */ jr $ra +/* 088FE4 7F0544B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_closing_soundeffect_1(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053418*/ +glabel door_closing_sound_table_1 +.word .L7F0544FC +.word .L7F05451C +.word .L7F05453C +.word .L7F05455C +.word .L7F05457C +.word .L7F05459C +.word .L7F0545BC +.word .L7F0545DC +.word .L7F0545FC +.word .L7F05461C +.word .L7F05463C +.word .L7F05465C +.word .L7F05467C +.word .L7F05469C +.word .L7F0546BC +.word .L7F0546DC +.word .L7F0546FC + +.text +glabel play_door_closing_soundeffect_1 +/* 088FE8 7F0544B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088FEC 7F0544BC AFBF0014 */ sw $ra, 0x14($sp) +/* 088FF0 7F0544C0 AFA40020 */ sw $a0, 0x20($sp) +/* 088FF4 7F0544C4 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088FF8 7F0544C8 AFA0001C */ sw $zero, 0x1c($sp) +/* 088FFC 7F0544CC 8FA70020 */ lw $a3, 0x20($sp) +/* 089000 7F0544D0 8FA6001C */ lw $a2, 0x1c($sp) +/* 089004 7F0544D4 8CEE00A4 */ lw $t6, 0xa4($a3) +/* 089008 7F0544D8 25CFFFFF */ addiu $t7, $t6, -1 +/* 08900C 7F0544DC 2DE10011 */ sltiu $at, $t7, 0x11 +/* 089010 7F0544E0 1020008D */ beqz $at, .L7F054718 +/* 089014 7F0544E4 000F7880 */ sll $t7, $t7, 2 +/* 089018 7F0544E8 3C018005 */ lui $at, %hi(door_closing_sound_table_1) +/* 08901C 7F0544EC 002F0821 */ addu $at, $at, $t7 +/* 089020 7F0544F0 8C2F3418 */ lw $t7, %lo(door_closing_sound_table_1)($at) +/* 089024 7F0544F4 01E00008 */ jr $t7 +/* 089028 7F0544F8 00000000 */ nop +.L7F0544FC: +/* 08902C 7F0544FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089030 7F054500 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089034 7F054504 240500D2 */ li $a1, 210 +/* 089038 7F054508 0C002382 */ jal play_sfx_a1 +/* 08903C 7F05450C 00003025 */ move $a2, $zero +/* 089040 7F054510 00403025 */ move $a2, $v0 +/* 089044 7F054514 10000080 */ b .L7F054718 +/* 089048 7F054518 8FA70020 */ lw $a3, 0x20($sp) +.L7F05451C: +/* 08904C 7F05451C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089050 7F054520 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089054 7F054524 240500D2 */ li $a1, 210 +/* 089058 7F054528 0C002382 */ jal play_sfx_a1 +/* 08905C 7F05452C 00003025 */ move $a2, $zero +/* 089060 7F054530 00403025 */ move $a2, $v0 +/* 089064 7F054534 10000078 */ b .L7F054718 +/* 089068 7F054538 8FA70020 */ lw $a3, 0x20($sp) +.L7F05453C: +/* 08906C 7F05453C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089070 7F054540 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089074 7F054544 240500CB */ li $a1, 203 +/* 089078 7F054548 0C002382 */ jal play_sfx_a1 +/* 08907C 7F05454C 00003025 */ move $a2, $zero +/* 089080 7F054550 00403025 */ move $a2, $v0 +/* 089084 7F054554 10000070 */ b .L7F054718 +/* 089088 7F054558 8FA70020 */ lw $a3, 0x20($sp) +.L7F05455C: +/* 08908C 7F05455C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089090 7F054560 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089094 7F054564 240500D7 */ li $a1, 215 +/* 089098 7F054568 0C002382 */ jal play_sfx_a1 +/* 08909C 7F05456C 00003025 */ move $a2, $zero +/* 0890A0 7F054570 00403025 */ move $a2, $v0 +/* 0890A4 7F054574 10000068 */ b .L7F054718 +/* 0890A8 7F054578 8FA70020 */ lw $a3, 0x20($sp) +.L7F05457C: +/* 0890AC 7F05457C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890B0 7F054580 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890B4 7F054584 240500BB */ li $a1, 187 +/* 0890B8 7F054588 0C002382 */ jal play_sfx_a1 +/* 0890BC 7F05458C 00003025 */ move $a2, $zero +/* 0890C0 7F054590 00403025 */ move $a2, $v0 +/* 0890C4 7F054594 10000060 */ b .L7F054718 +/* 0890C8 7F054598 8FA70020 */ lw $a3, 0x20($sp) +.L7F05459C: +/* 0890CC 7F05459C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890D0 7F0545A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890D4 7F0545A4 24050007 */ li $a1, 7 +/* 0890D8 7F0545A8 0C002382 */ jal play_sfx_a1 +/* 0890DC 7F0545AC 00003025 */ move $a2, $zero +/* 0890E0 7F0545B0 00403025 */ move $a2, $v0 +/* 0890E4 7F0545B4 10000058 */ b .L7F054718 +/* 0890E8 7F0545B8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545BC: +/* 0890EC 7F0545BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890F0 7F0545C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890F4 7F0545C4 240500D2 */ li $a1, 210 +/* 0890F8 7F0545C8 0C002382 */ jal play_sfx_a1 +/* 0890FC 7F0545CC 00003025 */ move $a2, $zero +/* 089100 7F0545D0 00403025 */ move $a2, $v0 +/* 089104 7F0545D4 10000050 */ b .L7F054718 +/* 089108 7F0545D8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545DC: +/* 08910C 7F0545DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089110 7F0545E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089114 7F0545E4 240500BB */ li $a1, 187 +/* 089118 7F0545E8 0C002382 */ jal play_sfx_a1 +/* 08911C 7F0545EC 00003025 */ move $a2, $zero +/* 089120 7F0545F0 00403025 */ move $a2, $v0 +/* 089124 7F0545F4 10000048 */ b .L7F054718 +/* 089128 7F0545F8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545FC: +/* 08912C 7F0545FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089130 7F054600 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089134 7F054604 240500C3 */ li $a1, 195 +/* 089138 7F054608 0C002382 */ jal play_sfx_a1 +/* 08913C 7F05460C 00003025 */ move $a2, $zero +/* 089140 7F054610 00403025 */ move $a2, $v0 +/* 089144 7F054614 10000040 */ b .L7F054718 +/* 089148 7F054618 8FA70020 */ lw $a3, 0x20($sp) +.L7F05461C: +/* 08914C 7F05461C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089150 7F054620 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089154 7F054624 240500C5 */ li $a1, 197 +/* 089158 7F054628 0C002382 */ jal play_sfx_a1 +/* 08915C 7F05462C 00003025 */ move $a2, $zero +/* 089160 7F054630 00403025 */ move $a2, $v0 +/* 089164 7F054634 10000038 */ b .L7F054718 +/* 089168 7F054638 8FA70020 */ lw $a3, 0x20($sp) +.L7F05463C: +/* 08916C 7F05463C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089170 7F054640 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089174 7F054644 240500C7 */ li $a1, 199 +/* 089178 7F054648 0C002382 */ jal play_sfx_a1 +/* 08917C 7F05464C 00003025 */ move $a2, $zero +/* 089180 7F054650 00403025 */ move $a2, $v0 +/* 089184 7F054654 10000030 */ b .L7F054718 +/* 089188 7F054658 8FA70020 */ lw $a3, 0x20($sp) +.L7F05465C: +/* 08918C 7F05465C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089190 7F054660 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089194 7F054664 240500C9 */ li $a1, 201 +/* 089198 7F054668 0C002382 */ jal play_sfx_a1 +/* 08919C 7F05466C 00003025 */ move $a2, $zero +/* 0891A0 7F054670 00403025 */ move $a2, $v0 +/* 0891A4 7F054674 10000028 */ b .L7F054718 +/* 0891A8 7F054678 8FA70020 */ lw $a3, 0x20($sp) +.L7F05467C: +/* 0891AC 7F05467C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891B0 7F054680 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891B4 7F054684 24050007 */ li $a1, 7 +/* 0891B8 7F054688 0C002382 */ jal play_sfx_a1 +/* 0891BC 7F05468C 00003025 */ move $a2, $zero +/* 0891C0 7F054690 00403025 */ move $a2, $v0 +/* 0891C4 7F054694 10000020 */ b .L7F054718 +/* 0891C8 7F054698 8FA70020 */ lw $a3, 0x20($sp) +.L7F05469C: +/* 0891CC 7F05469C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891D0 7F0546A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891D4 7F0546A4 240500DB */ li $a1, 219 +/* 0891D8 7F0546A8 0C002382 */ jal play_sfx_a1 +/* 0891DC 7F0546AC 00003025 */ move $a2, $zero +/* 0891E0 7F0546B0 00403025 */ move $a2, $v0 +/* 0891E4 7F0546B4 10000018 */ b .L7F054718 +/* 0891E8 7F0546B8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546BC: +/* 0891EC 7F0546BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891F0 7F0546C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891F4 7F0546C4 240500E2 */ li $a1, 226 +/* 0891F8 7F0546C8 0C002382 */ jal play_sfx_a1 +/* 0891FC 7F0546CC 00003025 */ move $a2, $zero +/* 089200 7F0546D0 00403025 */ move $a2, $v0 +/* 089204 7F0546D4 10000010 */ b .L7F054718 +/* 089208 7F0546D8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546DC: +/* 08920C 7F0546DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089210 7F0546E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089214 7F0546E4 240500D7 */ li $a1, 215 +/* 089218 7F0546E8 0C002382 */ jal play_sfx_a1 +/* 08921C 7F0546EC 00003025 */ move $a2, $zero +/* 089220 7F0546F0 00403025 */ move $a2, $v0 +/* 089224 7F0546F4 10000008 */ b .L7F054718 +/* 089228 7F0546F8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546FC: +/* 08922C 7F0546FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089230 7F054700 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089234 7F054704 240500CB */ li $a1, 203 +/* 089238 7F054708 0C002382 */ jal play_sfx_a1 +/* 08923C 7F05470C 00003025 */ move $a2, $zero +/* 089240 7F054710 00403025 */ move $a2, $v0 +/* 089244 7F054714 8FA70020 */ lw $a3, 0x20($sp) +def_7F0544F4: +.L7F054718: +/* 089248 7F054718 10C00006 */ beqz $a2, .L7F054734 +/* 08924C 7F05471C 00000000 */ nop +/* 089250 7F054720 8CE50010 */ lw $a1, 0x10($a3) +/* 089254 7F054724 00C02025 */ move $a0, $a2 +/* 089258 7F054728 0FC14E84 */ jal sub_GAME_7F053A10 +/* 08925C 7F05472C 24A50008 */ addiu $a1, $a1, 8 +/* 089260 7F054730 8FA70020 */ lw $a3, 0x20($sp) +.L7F054734: +/* 089264 7F054734 0FC14E8F */ jal sub_GAME_7F053A3C +/* 089268 7F054738 00E02025 */ move $a0, $a3 +/* 08926C 7F05473C 8FBF0014 */ lw $ra, 0x14($sp) +/* 089270 7F054740 27BD0020 */ addiu $sp, $sp, 0x20 +/* 089274 7F054744 03E00008 */ jr $ra +/* 089278 7F054748 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05474C(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0547DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0547DC +/* 08930C 7F0547DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 089310 7F0547E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 089314 7F0547E4 8C8E0008 */ lw $t6, 8($a0) +/* 089318 7F0547E8 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff +/* 08931C 7F0547EC 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 089320 7F0547F0 01C17824 */ and $t7, $t6, $at +/* 089324 7F0547F4 0FC14FD9 */ jal play_door_opening_soundeffect_1 +/* 089328 7F0547F8 AC8F0008 */ sw $t7, 8($a0) +/* 08932C 7F0547FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 089330 7F054800 27BD0018 */ addiu $sp, $sp, 0x18 +/* 089334 7F054804 03E00008 */ jr $ra +/* 089338 7F054808 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05480C(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05487C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05487C +/* 0893AC 7F05487C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0893B0 7F054880 AFBF0014 */ sw $ra, 0x14($sp) +/* 0893B4 7F054884 0FC1512E */ jal play_door_closing_soundeffect_1 +/* 0893B8 7F054888 AFA40018 */ sw $a0, 0x18($sp) +/* 0893BC 7F05488C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 0893C0 7F054890 8FA40018 */ lw $a0, 0x18($sp) +/* 0893C4 7F054894 8FBF0014 */ lw $ra, 0x14($sp) +/* 0893C8 7F054898 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0893CC 7F05489C 03E00008 */ jr $ra +/* 0893D0 7F0548A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0548A4(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void set_door_state(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_door_state +/* 0894B8 7F054988 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0894BC 7F05498C AFBF0024 */ sw $ra, 0x24($sp) +/* 0894C0 7F054990 AFB20020 */ sw $s2, 0x20($sp) +/* 0894C4 7F054994 AFB1001C */ sw $s1, 0x1c($sp) +/* 0894C8 7F054998 AFB00018 */ sw $s0, 0x18($sp) +/* 0894CC 7F05499C 8C8E000C */ lw $t6, 0xc($a0) +/* 0894D0 7F0549A0 00808825 */ move $s1, $a0 +/* 0894D4 7F0549A4 00A09025 */ move $s2, $a1 +/* 0894D8 7F0549A8 000E7840 */ sll $t7, $t6, 1 +/* 0894DC 7F0549AC 05E10008 */ bgez $t7, .L7F0549D0 +/* 0894E0 7F0549B0 24010001 */ li $at, 1 +/* 0894E4 7F0549B4 14A10006 */ bne $a1, $at, .L7F0549D0 +/* 0894E8 7F0549B8 00000000 */ nop +/* 0894EC 7F0549BC 809800BC */ lb $t8, 0xbc($a0) +/* 0894F0 7F0549C0 24120002 */ li $s2, 2 +/* 0894F4 7F0549C4 17000002 */ bnez $t8, .L7F0549D0 +/* 0894F8 7F0549C8 00000000 */ nop +/* 0894FC 7F0549CC 24050003 */ li $a1, 3 +.L7F0549D0: +/* 089500 7F0549D0 0FC15229 */ jal sub_GAME_7F0548A4 +/* 089504 7F0549D4 02202025 */ move $a0, $s1 +/* 089508 7F0549D8 8E3000C8 */ lw $s0, 0xc8($s1) +/* 08950C 7F0549DC 5200000B */ beql $s0, $zero, .L7F054A0C +/* 089510 7F0549E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 089514 7F0549E4 12110008 */ beq $s0, $s1, .L7F054A08 +/* 089518 7F0549E8 02002025 */ move $a0, $s0 +.L7F0549EC: +/* 08951C 7F0549EC 0FC15229 */ jal sub_GAME_7F0548A4 +/* 089520 7F0549F0 02402825 */ move $a1, $s2 +/* 089524 7F0549F4 8E1000C8 */ lw $s0, 0xc8($s0) +/* 089528 7F0549F8 52000004 */ beql $s0, $zero, .L7F054A0C +/* 08952C 7F0549FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 089530 7F054A00 5611FFFA */ bnel $s0, $s1, .L7F0549EC +/* 089534 7F054A04 02002025 */ move $a0, $s0 +.L7F054A08: +/* 089538 7F054A08 8FBF0024 */ lw $ra, 0x24($sp) +.L7F054A0C: +/* 08953C 7F054A0C 8FB00018 */ lw $s0, 0x18($sp) +/* 089540 7F054A10 8FB1001C */ lw $s1, 0x1c($sp) +/* 089544 7F054A14 8FB20020 */ lw $s2, 0x20($sp) +/* 089548 7F054A18 03E00008 */ jr $ra +/* 08954C 7F054A1C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054A20(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054A64(void) { + +} +#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 sub_GAME_7F03CB8C +/* 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 sub_GAME_7F0B3C0C +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054B80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054B80 +/* 0896B0 7F054B80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0896B4 7F054B84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0896B8 7F054B88 44818000 */ mtc1 $at, $f16 +/* 0896BC 7F054B8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0896C0 7F054B90 AFA40020 */ sw $a0, 0x20($sp) +/* 0896C4 7F054B94 AFA50024 */ sw $a1, 0x24($sp) +/* 0896C8 7F054B98 0FC2ECE6 */ jal return_nearfog_values +/* 0896CC 7F054B9C E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0896D0 7F054BA0 10400028 */ beqz $v0, .L7F054C44 +/* 0896D4 7F054BA4 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 0896D8 7F054BA8 8FAE0020 */ lw $t6, 0x20($sp) +/* 0896DC 7F054BAC C4440008 */ lwc1 $f4, 8($v0) +/* 0896E0 7F054BB0 C5C60018 */ lwc1 $f6, 0x18($t6) +/* 0896E4 7F054BB4 4606203C */ c.lt.s $f4, $f6 +/* 0896E8 7F054BB8 00000000 */ nop +/* 0896EC 7F054BBC 45020022 */ bc1fl .L7F054C48 +/* 0896F0 7F054BC0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0896F4 7F054BC4 AFA20018 */ sw $v0, 0x18($sp) +/* 0896F8 7F054BC8 0FC1E121 */ jal getPlayer_c_lodscalez +/* 0896FC 7F054BCC E7B0001C */ swc1 $f16, 0x1c($sp) +/* 089700 7F054BD0 8FA30018 */ lw $v1, 0x18($sp) +/* 089704 7F054BD4 8FAF0020 */ lw $t7, 0x20($sp) +/* 089708 7F054BD8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 08970C 7F054BDC C4620008 */ lwc1 $f2, 8($v1) +/* 089710 7F054BE0 C5E80018 */ lwc1 $f8, 0x18($t7) +/* 089714 7F054BE4 44819000 */ mtc1 $at, $f18 +/* 089718 7F054BE8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 08971C 7F054BEC 46024281 */ sub.s $f10, $f8, $f2 +/* 089720 7F054BF0 C46E0004 */ lwc1 $f14, 4($v1) +/* 089724 7F054BF4 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 089728 7F054BF8 46125102 */ mul.s $f4, $f10, $f18 +/* 08972C 7F054BFC 46062203 */ div.s $f8, $f4, $f6 +/* 089730 7F054C00 46024280 */ add.s $f10, $f8, $f2 +/* 089734 7F054C04 46005302 */ mul.s $f12, $f10, $f0 +/* 089738 7F054C08 460C703E */ c.le.s $f14, $f12 +/* 08973C 7F054C0C 00000000 */ nop +/* 089740 7F054C10 45020005 */ bc1fl .L7F054C28 +/* 089744 7F054C14 C4600000 */ lwc1 $f0, ($v1) +/* 089748 7F054C18 44808000 */ mtc1 $zero, $f16 +/* 08974C 7F054C1C 1000000A */ b .L7F054C48 +/* 089750 7F054C20 8FBF0014 */ lw $ra, 0x14($sp) +/* 089754 7F054C24 C4600000 */ lwc1 $f0, ($v1) +.L7F054C28: +/* 089758 7F054C28 460C003C */ c.lt.s $f0, $f12 +/* 08975C 7F054C2C 00000000 */ nop +/* 089760 7F054C30 45020005 */ bc1fl .L7F054C48 +/* 089764 7F054C34 8FBF0014 */ lw $ra, 0x14($sp) +/* 089768 7F054C38 460C7481 */ sub.s $f18, $f14, $f12 +/* 08976C 7F054C3C 46007101 */ sub.s $f4, $f14, $f0 +/* 089770 7F054C40 46049403 */ div.s $f16, $f18, $f4 +.L7F054C44: +/* 089774 7F054C44 8FBF0014 */ lw $ra, 0x14($sp) +.L7F054C48: +/* 089778 7F054C48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08977C 7F054C4C 46008006 */ mov.s $f0, $f16 +/* 089780 7F054C50 03E00008 */ jr $ra +/* 089784 7F054C54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054C58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054C58 +/* 089788 7F054C58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 08978C 7F054C5C AFBF0014 */ sw $ra, 0x14($sp) +/* 089790 7F054C60 240E0001 */ li $t6, 1 +/* 089794 7F054C64 AFA40038 */ sw $a0, 0x38($sp) +/* 089798 7F054C68 AFA5003C */ sw $a1, 0x3c($sp) +/* 08979C 7F054C6C 0FC2ECE6 */ jal return_nearfog_values +/* 0897A0 7F054C70 AFAE0034 */ sw $t6, 0x34($sp) +/* 0897A4 7F054C74 50400039 */ beql $v0, $zero, .L7F054D5C +/* 0897A8 7F054C78 8FBF0014 */ lw $ra, 0x14($sp) +/* 0897AC 7F054C7C 0FC227F5 */ jal get_BONDdata_position +/* 0897B0 7F054C80 AFA20030 */ sw $v0, 0x30($sp) +/* 0897B4 7F054C84 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0897B8 7F054C88 AFA2001C */ sw $v0, 0x1c($sp) +/* 0897BC 7F054C8C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0897C0 7F054C90 8FA50038 */ lw $a1, 0x38($sp) +/* 0897C4 7F054C94 8FA40030 */ lw $a0, 0x30($sp) +/* 0897C8 7F054C98 C4660000 */ lwc1 $f6, ($v1) +/* 0897CC 7F054C9C C4A40000 */ lwc1 $f4, ($a1) +/* 0897D0 7F054CA0 46062201 */ sub.s $f8, $f4, $f6 +/* 0897D4 7F054CA4 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0897D8 7F054CA8 C4700004 */ lwc1 $f16, 4($v1) +/* 0897DC 7F054CAC C4AA0004 */ lwc1 $f10, 4($a1) +/* 0897E0 7F054CB0 46105481 */ sub.s $f18, $f10, $f16 +/* 0897E4 7F054CB4 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0897E8 7F054CB8 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0897EC 7F054CBC C4660008 */ lwc1 $f6, 8($v1) +/* 0897F0 7F054CC0 C4A40008 */ lwc1 $f4, 8($a1) +/* 0897F4 7F054CC4 46062201 */ sub.s $f8, $f4, $f6 +/* 0897F8 7F054CC8 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0897FC 7F054CCC E7A8002C */ swc1 $f8, 0x2c($sp) +/* 089800 7F054CD0 C4500000 */ lwc1 $f16, ($v0) +/* 089804 7F054CD4 C4460004 */ lwc1 $f6, 4($v0) +/* 089808 7F054CD8 46105482 */ mul.s $f18, $f10, $f16 +/* 08980C 7F054CDC C4500008 */ lwc1 $f16, 8($v0) +/* 089810 7F054CE0 46062202 */ mul.s $f8, $f4, $f6 +/* 089814 7F054CE4 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 089818 7F054CE8 46048182 */ mul.s $f6, $f16, $f4 +/* 08981C 7F054CEC 46089280 */ add.s $f10, $f18, $f8 +/* 089820 7F054CF0 C4920008 */ lwc1 $f18, 8($a0) +/* 089824 7F054CF4 460A3300 */ add.s $f12, $f6, $f10 +/* 089828 7F054CF8 460C903C */ c.lt.s $f18, $f12 +/* 08982C 7F054CFC 00000000 */ nop +/* 089830 7F054D00 45020016 */ bc1fl .L7F054D5C +/* 089834 7F054D04 8FBF0014 */ lw $ra, 0x14($sp) +/* 089838 7F054D08 AFA40030 */ sw $a0, 0x30($sp) +/* 08983C 7F054D0C 0FC1E121 */ jal getPlayer_c_lodscalez +/* 089840 7F054D10 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 089844 7F054D14 8FA40030 */ lw $a0, 0x30($sp) +/* 089848 7F054D18 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08984C 7F054D1C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 089850 7F054D20 C4820008 */ lwc1 $f2, 8($a0) +/* 089854 7F054D24 44818000 */ mtc1 $at, $f16 +/* 089858 7F054D28 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 08985C 7F054D2C 46026201 */ sub.s $f8, $f12, $f2 +/* 089860 7F054D30 46104102 */ mul.s $f4, $f8, $f16 +/* 089864 7F054D34 C4880004 */ lwc1 $f8, 4($a0) +/* 089868 7F054D38 46062283 */ div.s $f10, $f4, $f6 +/* 08986C 7F054D3C 46025480 */ add.s $f18, $f10, $f2 +/* 089870 7F054D40 46009302 */ mul.s $f12, $f18, $f0 +/* 089874 7F054D44 460C403E */ c.le.s $f8, $f12 +/* 089878 7F054D48 00000000 */ nop +/* 08987C 7F054D4C 45020003 */ bc1fl .L7F054D5C +/* 089880 7F054D50 8FBF0014 */ lw $ra, 0x14($sp) +/* 089884 7F054D54 AFA00034 */ sw $zero, 0x34($sp) +/* 089888 7F054D58 8FBF0014 */ lw $ra, 0x14($sp) +.L7F054D5C: +/* 08988C 7F054D5C 8FA20034 */ lw $v0, 0x34($sp) +/* 089890 7F054D60 27BD0038 */ addiu $sp, $sp, 0x38 +/* 089894 7F054D64 03E00008 */ jr $ra +/* 089898 7F054D68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054D6C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005345C +.word 0x4e742400 /*1.024e9*/ +glabel D_80053460 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053464 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053468 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005346C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053470 +.word 0x40490fdb /*3.1415927*/ +glabel D_80053474 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053478 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005347C +.word 0x40490fdb /*3.1415927*/ +glabel D_80053480 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053484 +.word 0x3eb2b8c3 /*0.34906587*/ +glabel D_80053488 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005348C +.word 0x471c4000 /*40000.0*/ +.text +glabel sub_GAME_7F054D6C +/* 08989C 7F054D6C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0898A0 7F054D70 AFB10018 */ sw $s1, 0x18($sp) +/* 0898A4 7F054D74 00A08825 */ move $s1, $a1 +/* 0898A8 7F054D78 AFBF001C */ sw $ra, 0x1c($sp) +/* 0898AC 7F054D7C AFB00014 */ sw $s0, 0x14($sp) +/* 0898B0 7F054D80 AFA40070 */ sw $a0, 0x70($sp) +/* 0898B4 7F054D84 AFA60078 */ sw $a2, 0x78($sp) +/* 0898B8 7F054D88 AFA7007C */ sw $a3, 0x7c($sp) +/* 0898BC 7F054D8C AFA00044 */ sw $zero, 0x44($sp) +/* 0898C0 7F054D90 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0898C4 7F054D94 27A50050 */ addiu $a1, $sp, 0x50 +/* 0898C8 7F054D98 8FA40050 */ lw $a0, 0x50($sp) +/* 0898CC 7F054D9C 27B00050 */ addiu $s0, $sp, 0x50 +/* 0898D0 7F054DA0 0482003C */ bltzl $a0, .L7F054E94 +/* 0898D4 7F054DA4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F054DA8: +/* 0898D8 7F054DA8 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0898DC 7F054DAC 00000000 */ nop +/* 0898E0 7F054DB0 10400033 */ beqz $v0, .L7F054E80 +/* 0898E4 7F054DB4 02202025 */ move $a0, $s1 +/* 0898E8 7F054DB8 0FC2ECB2 */ jal sub_GAME_7F0BB2C8 +/* 0898EC 7F054DBC 8FA50078 */ lw $a1, 0x78($sp) +/* 0898F0 7F054DC0 10400033 */ beqz $v0, .L7F054E90 +/* 0898F4 7F054DC4 8FAE007C */ lw $t6, 0x7c($sp) +/* 0898F8 7F054DC8 11C00004 */ beqz $t6, .L7F054DDC +/* 0898FC 7F054DCC 02202025 */ move $a0, $s1 +/* 089900 7F054DD0 0FC15316 */ jal sub_GAME_7F054C58 +/* 089904 7F054DD4 8FA50078 */ lw $a1, 0x78($sp) +/* 089908 7F054DD8 1040002D */ beqz $v0, .L7F054E90 +.L7F054DDC: +/* 08990C 7F054DDC 27B00034 */ addiu $s0, $sp, 0x34 +/* 089910 7F054DE0 02002825 */ move $a1, $s0 +/* 089914 7F054DE4 0FC15299 */ jal sub_GAME_7F054A64 +/* 089918 7F054DE8 8FA40070 */ lw $a0, 0x70($sp) +/* 08991C 7F054DEC 10400007 */ beqz $v0, .L7F054E0C +/* 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 +/* 089930 7F054E00 02003025 */ move $a2, $s0 +/* 089934 7F054E04 10000004 */ b .L7F054E18 +/* 089938 7F054E08 AFA20044 */ sw $v0, 0x44($sp) +.L7F054E0C: +/* 08993C 7F054E0C 0FC1E296 */ jal sub_GAME_7F078A58 +/* 089940 7F054E10 8FA50078 */ lw $a1, 0x78($sp) +/* 089944 7F054E14 AFA20044 */ sw $v0, 0x44($sp) +.L7F054E18: +/* 089948 7F054E18 5040001E */ beql $v0, $zero, .L7F054E94 +/* 08994C 7F054E1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 089950 7F054E20 0FC227F5 */ jal get_BONDdata_position +/* 089954 7F054E24 00000000 */ nop +/* 089958 7F054E28 C6240000 */ lwc1 $f4, ($s1) +/* 08995C 7F054E2C C4460000 */ lwc1 $f6, ($v0) +/* 089960 7F054E30 C6280004 */ lwc1 $f8, 4($s1) +/* 089964 7F054E34 C44A0004 */ lwc1 $f10, 4($v0) +/* 089968 7F054E38 46062001 */ sub.s $f0, $f4, $f6 +/* 08996C 7F054E3C C6300008 */ lwc1 $f16, 8($s1) +/* 089970 7F054E40 C4520008 */ lwc1 $f18, 8($v0) +/* 089974 7F054E44 460A4081 */ sub.s $f2, $f8, $f10 +/* 089978 7F054E48 46000182 */ mul.s $f6, $f0, $f0 +/* 08997C 7F054E4C 3C018005 */ lui $at, %hi(D_8005345C) +/* 089980 7F054E50 46128301 */ sub.s $f12, $f16, $f18 +/* 089984 7F054E54 46021202 */ mul.s $f8, $f2, $f2 +/* 089988 7F054E58 C424345C */ lwc1 $f4, %lo(D_8005345C)($at) +/* 08998C 7F054E5C 460C6402 */ mul.s $f16, $f12, $f12 +/* 089990 7F054E60 46083280 */ add.s $f10, $f6, $f8 +/* 089994 7F054E64 46105480 */ add.s $f18, $f10, $f16 +/* 089998 7F054E68 4612203C */ c.lt.s $f4, $f18 +/* 08999C 7F054E6C 00000000 */ nop +/* 0899A0 7F054E70 45020008 */ bc1fl .L7F054E94 +/* 0899A4 7F054E74 8FBF001C */ lw $ra, 0x1c($sp) +/* 0899A8 7F054E78 10000005 */ b .L7F054E90 +/* 0899AC 7F054E7C AFA00044 */ sw $zero, 0x44($sp) +.L7F054E80: +/* 0899B0 7F054E80 8E040004 */ lw $a0, 4($s0) +/* 0899B4 7F054E84 26100004 */ addiu $s0, $s0, 4 +/* 0899B8 7F054E88 0481FFC7 */ bgez $a0, .L7F054DA8 +/* 0899BC 7F054E8C 00000000 */ nop +.L7F054E90: +/* 0899C0 7F054E90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F054E94: +/* 0899C4 7F054E94 8FA20044 */ lw $v0, 0x44($sp) +/* 0899C8 7F054E98 8FB00014 */ lw $s0, 0x14($sp) +/* 0899CC 7F054E9C 8FB10018 */ lw $s1, 0x18($sp) +/* 0899D0 7F054EA0 03E00008 */ jr $ra +/* 0899D4 7F054EA4 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054EA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054EA8 +/* 0899D8 7F054EA8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0899DC 7F054EAC AFBF0024 */ sw $ra, 0x24($sp) +/* 0899E0 7F054EB0 AFB00020 */ sw $s0, 0x20($sp) +/* 0899E4 7F054EB4 808200BC */ lb $v0, 0xbc($a0) +/* 0899E8 7F054EB8 24010001 */ li $at, 1 +/* 0899EC 7F054EBC 00808025 */ move $s0, $a0 +/* 0899F0 7F054EC0 1441001C */ bne $v0, $at, .L7F054F34 +/* 0899F4 7F054EC4 00001825 */ move $v1, $zero +/* 0899F8 7F054EC8 C6040090 */ lwc1 $f4, 0x90($s0) +/* 0899FC 7F054ECC 8E050084 */ lw $a1, 0x84($s0) +/* 089A00 7F054ED0 8E07008C */ lw $a3, 0x8c($s0) +/* 089A04 7F054ED4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 089A08 7F054ED8 C6060094 */ lwc1 $f6, 0x94($s0) +/* 089A0C 7F054EDC 248400B4 */ addiu $a0, $a0, 0xb4 +/* 089A10 7F054EE0 260600B8 */ addiu $a2, $s0, 0xb8 +/* 089A14 7F054EE4 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 089A18 7F054EE8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 089A1C 7F054EEC C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 089A20 7F054EF0 C6000084 */ lwc1 $f0, 0x84($s0) +/* 089A24 7F054EF4 24030001 */ li $v1, 1 +/* 089A28 7F054EF8 4602003E */ c.le.s $f0, $f2 +/* 089A2C 7F054EFC 00000000 */ nop +/* 089A30 7F054F00 45020004 */ bc1fl .L7F054F14 +/* 089A34 7F054F04 44806000 */ mtc1 $zero, $f12 +/* 089A38 7F054F08 10000025 */ b .L7F054FA0 +/* 089A3C 7F054F0C E60000B4 */ swc1 $f0, 0xb4($s0) +/* 089A40 7F054F10 44806000 */ mtc1 $zero, $f12 +.L7F054F14: +/* 089A44 7F054F14 00000000 */ nop +/* 089A48 7F054F18 460C103E */ c.le.s $f2, $f12 +/* 089A4C 7F054F1C 00000000 */ nop +/* 089A50 7F054F20 45000002 */ bc1f .L7F054F2C +/* 089A54 7F054F24 00000000 */ nop +/* 089A58 7F054F28 E60C00B4 */ swc1 $f12, 0xb4($s0) +.L7F054F2C: +/* 089A5C 7F054F2C 1000001C */ b .L7F054FA0 +/* 089A60 7F054F30 24030001 */ li $v1, 1 +.L7F054F34: +/* 089A64 7F054F34 24010002 */ li $at, 2 +/* 089A68 7F054F38 14410019 */ bne $v0, $at, .L7F054FA0 +/* 089A6C 7F054F3C 260400B4 */ addiu $a0, $s0, 0xb4 +/* 089A70 7F054F40 C6080090 */ lwc1 $f8, 0x90($s0) +/* 089A74 7F054F44 44806000 */ mtc1 $zero, $f12 +/* 089A78 7F054F48 8E07008C */ lw $a3, 0x8c($s0) +/* 089A7C 7F054F4C E7A80010 */ swc1 $f8, 0x10($sp) +/* 089A80 7F054F50 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 089A84 7F054F54 44056000 */ mfc1 $a1, $f12 +/* 089A88 7F054F58 260600B8 */ addiu $a2, $s0, 0xb8 +/* 089A8C 7F054F5C 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 089A90 7F054F60 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 089A94 7F054F64 C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 089A98 7F054F68 C6000084 */ lwc1 $f0, 0x84($s0) +/* 089A9C 7F054F6C 44806000 */ mtc1 $zero, $f12 +/* 089AA0 7F054F70 24030001 */ li $v1, 1 +/* 089AA4 7F054F74 4602003E */ c.le.s $f0, $f2 +/* 089AA8 7F054F78 00000000 */ nop +/* 089AAC 7F054F7C 45020004 */ bc1fl .L7F054F90 +/* 089AB0 7F054F80 460C103E */ c.le.s $f2, $f12 +/* 089AB4 7F054F84 10000006 */ b .L7F054FA0 +/* 089AB8 7F054F88 E60000B4 */ swc1 $f0, 0xb4($s0) +/* 089ABC 7F054F8C 460C103E */ c.le.s $f2, $f12 +.L7F054F90: +/* 089AC0 7F054F90 00000000 */ nop +/* 089AC4 7F054F94 45000002 */ bc1f .L7F054FA0 +/* 089AC8 7F054F98 00000000 */ nop +/* 089ACC 7F054F9C E60C00B4 */ swc1 $f12, 0xb4($s0) +.L7F054FA0: +/* 089AD0 7F054FA0 8FBF0024 */ lw $ra, 0x24($sp) +/* 089AD4 7F054FA4 8FB00020 */ lw $s0, 0x20($sp) +/* 089AD8 7F054FA8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 089ADC 7F054FAC 03E00008 */ jr $ra +/* 089AE0 7F054FB0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054FB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054FB4 +/* 089AE4 7F054FB4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 089AE8 7F054FB8 AFB50030 */ sw $s5, 0x30($sp) +/* 089AEC 7F054FBC AFB4002C */ sw $s4, 0x2c($sp) +/* 089AF0 7F054FC0 AFB20024 */ sw $s2, 0x24($sp) +/* 089AF4 7F054FC4 AFB10020 */ sw $s1, 0x20($sp) +/* 089AF8 7F054FC8 00809025 */ move $s2, $a0 +/* 089AFC 7F054FCC AFBF0034 */ sw $ra, 0x34($sp) +/* 089B00 7F054FD0 AFB30028 */ sw $s3, 0x28($sp) +/* 089B04 7F054FD4 AFB0001C */ sw $s0, 0x1c($sp) +/* 089B08 7F054FD8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 089B0C 7F054FDC 0000A025 */ move $s4, $zero +/* 089B10 7F054FE0 24150001 */ li $s5, 1 +/* 089B14 7F054FE4 10800010 */ beqz $a0, .L7F055028 +/* 089B18 7F054FE8 00808825 */ move $s1, $a0 +/* 089B1C 7F054FEC C62400B4 */ lwc1 $f4, 0xb4($s1) +.L7F054FF0: +/* 089B20 7F054FF0 02202025 */ move $a0, $s1 +/* 089B24 7F054FF4 0FC153AA */ jal sub_GAME_7F054EA8 +/* 089B28 7F054FF8 E62400FC */ swc1 $f4, 0xfc($s1) +/* 089B2C 7F054FFC 50400003 */ beql $v0, $zero, .L7F05500C +/* 089B30 7F055000 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089B34 7F055004 24140001 */ li $s4, 1 +/* 089B38 7F055008 8E3100C8 */ lw $s1, 0xc8($s1) +.L7F05500C: +/* 089B3C 7F05500C 16320003 */ bne $s1, $s2, .L7F05501C +/* 089B40 7F055010 00000000 */ nop +/* 089B44 7F055014 10000004 */ b .L7F055028 +/* 089B48 7F055018 02408825 */ move $s1, $s2 +.L7F05501C: +/* 089B4C 7F05501C 5620FFF4 */ bnezl $s1, .L7F054FF0 +/* 089B50 7F055020 C62400B4 */ lwc1 $f4, 0xb4($s1) +/* 089B54 7F055024 02408825 */ move $s1, $s2 +.L7F055028: +/* 089B58 7F055028 12800013 */ beqz $s4, .L7F055078 +/* 089B5C 7F05502C 00000000 */ nop +/* 089B60 7F055030 12400011 */ beqz $s2, .L7F055078 +/* 089B64 7F055034 00000000 */ nop +.L7F055038: +/* 089B68 7F055038 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 089B6C 7F05503C 02202025 */ move $a0, $s1 +/* 089B70 7F055040 0FC1122A */ jal sub_GAME_7F0448A8 +/* 089B74 7F055044 8E240010 */ lw $a0, 0x10($s1) +/* 089B78 7F055048 14400003 */ bnez $v0, .L7F055058 +/* 089B7C 7F05504C 0040A825 */ move $s5, $v0 +/* 089B80 7F055050 10000009 */ b .L7F055078 +/* 089B84 7F055054 02408825 */ move $s1, $s2 +.L7F055058: +/* 089B88 7F055058 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089B8C 7F05505C 16320003 */ bne $s1, $s2, .L7F05506C +/* 089B90 7F055060 00000000 */ nop +/* 089B94 7F055064 10000004 */ b .L7F055078 +/* 089B98 7F055068 02408825 */ move $s1, $s2 +.L7F05506C: +/* 089B9C 7F05506C 1620FFF2 */ bnez $s1, .L7F055038 +/* 089BA0 7F055070 00000000 */ nop +/* 089BA4 7F055074 02408825 */ move $s1, $s2 +.L7F055078: +/* 089BA8 7F055078 12400062 */ beqz $s2, .L7F055204 +/* 089BAC 7F05507C 3C138005 */ lui $s3, %hi(global_timer) +/* 089BB0 7F055080 4480A000 */ mtc1 $zero, $f20 +/* 089BB4 7F055084 2673837C */ addiu $s3, %lo(global_timer) # addiu $s3, $s3, -0x7c84 +.L7F055088: +/* 089BB8 7F055088 52800030 */ beql $s4, $zero, .L7F05514C +/* 089BBC 7F05508C 962F0098 */ lhu $t7, 0x98($s1) +/* 089BC0 7F055090 12A00025 */ beqz $s5, .L7F055128 +/* 089BC4 7F055094 02202025 */ move $a0, $s1 +/* 089BC8 7F055098 822200BC */ lb $v0, 0xbc($s1) +/* 089BCC 7F05509C 24010001 */ li $at, 1 +/* 089BD0 7F0550A0 54410010 */ bnel $v0, $at, .L7F0550E4 +/* 089BD4 7F0550A4 24010002 */ li $at, 2 +/* 089BD8 7F0550A8 C62600B4 */ lwc1 $f6, 0xb4($s1) +/* 089BDC 7F0550AC C6280084 */ lwc1 $f8, 0x84($s1) +/* 089BE0 7F0550B0 4606403E */ c.le.s $f8, $f6 +/* 089BE4 7F0550B4 00000000 */ nop +/* 089BE8 7F0550B8 45020017 */ bc1fl .L7F055118 +/* 089BEC 7F0550BC 8E240010 */ lw $a0, 0x10($s1) +/* 089BF0 7F0550C0 A22000BC */ sb $zero, 0xbc($s1) +/* 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 +/* 089C04 7F0550D4 AE2E00EC */ sw $t6, 0xec($s1) +/* 089C08 7F0550D8 1000000F */ b .L7F055118 +/* 089C0C 7F0550DC 8E240010 */ lw $a0, 0x10($s1) +/* 089C10 7F0550E0 24010002 */ li $at, 2 +.L7F0550E4: +/* 089C14 7F0550E4 5441000C */ bnel $v0, $at, .L7F055118 +/* 089C18 7F0550E8 8E240010 */ lw $a0, 0x10($s1) +/* 089C1C 7F0550EC C62A00B4 */ lwc1 $f10, 0xb4($s1) +/* 089C20 7F0550F0 02202025 */ move $a0, $s1 +/* 089C24 7F0550F4 4614503E */ c.le.s $f10, $f20 +/* 089C28 7F0550F8 00000000 */ nop +/* 089C2C 7F0550FC 45020006 */ bc1fl .L7F055118 +/* 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 +/* 089C40 7F055110 AE2000EC */ sw $zero, 0xec($s1) +/* 089C44 7F055114 8E240010 */ lw $a0, 0x10($s1) +.L7F055118: +/* 089C48 7F055118 0FC100AD */ jal sub_GAME_7F0402B4 +/* 089C4C 7F05511C 2625007C */ addiu $a1, $s1, 0x7c +/* 089C50 7F055120 10000005 */ b .L7F055138 +/* 089C54 7F055124 00000000 */ nop +.L7F055128: +/* 089C58 7F055128 C63000FC */ lwc1 $f16, 0xfc($s1) +/* 089C5C 7F05512C E63400B8 */ swc1 $f20, 0xb8($s1) +/* 089C60 7F055130 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 089C64 7F055134 E63000B4 */ swc1 $f16, 0xb4($s1) +.L7F055138: +/* 089C68 7F055138 0FC14B63 */ jal sub_GAME_7F052D8C +/* 089C6C 7F05513C 02202025 */ move $a0, $s1 +/* 089C70 7F055140 1000002A */ b .L7F0551EC +/* 089C74 7F055144 8E690000 */ lw $t1, ($s3) +/* 089C78 7F055148 962F0098 */ lhu $t7, 0x98($s1) +.L7F05514C: +/* 089C7C 7F05514C 31F80004 */ andi $t8, $t7, 4 +/* 089C80 7F055150 53000026 */ beql $t8, $zero, .L7F0551EC +/* 089C84 7F055154 8E690000 */ lw $t1, ($s3) +/* 089C88 7F055158 8E240014 */ lw $a0, 0x14($s1) +/* 089C8C 7F05515C 8C990008 */ lw $t9, 8($a0) +/* 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 +/* 089CA0 7F055170 8CB00004 */ lw $s0, 4($a1) +/* 089CA4 7F055174 8E2300CC */ lw $v1, 0xcc($s1) +/* 089CA8 7F055178 8C4A0000 */ lw $t2, ($v0) +/* 089CAC 7F05517C 506A001A */ beql $v1, $t2, .L7F0551E8 +/* 089CB0 7F055180 AC430000 */ sw $v1, ($v0) +/* 089CB4 7F055184 860B000C */ lh $t3, 0xc($s0) +/* 089CB8 7F055188 00002025 */ move $a0, $zero +/* 089CBC 7F05518C 59600016 */ blezl $t3, .L7F0551E8 +/* 089CC0 7F055190 AC430000 */ sw $v1, ($v0) +/* 089CC4 7F055194 00001825 */ move $v1, $zero +/* 089CC8 7F055198 8C4E0000 */ lw $t6, ($v0) +.L7F05519C: +/* 089CCC 7F05519C 8E2C00CC */ lw $t4, 0xcc($s1) +/* 089CD0 7F0551A0 24840001 */ addiu $a0, $a0, 1 +/* 089CD4 7F0551A4 01C37821 */ addu $t7, $t6, $v1 +/* 089CD8 7F0551A8 8DE10000 */ lw $at, ($t7) +/* 089CDC 7F0551AC 01836821 */ addu $t5, $t4, $v1 +/* 089CE0 7F0551B0 24630010 */ addiu $v1, $v1, 0x10 +/* 089CE4 7F0551B4 ADA10000 */ sw $at, ($t5) +/* 089CE8 7F0551B8 8DF90004 */ lw $t9, 4($t7) +/* 089CEC 7F0551BC ADB90004 */ sw $t9, 4($t5) +/* 089CF0 7F0551C0 8DE10008 */ lw $at, 8($t7) +/* 089CF4 7F0551C4 ADA10008 */ sw $at, 8($t5) +/* 089CF8 7F0551C8 8DF9000C */ lw $t9, 0xc($t7) +/* 089CFC 7F0551CC ADB9000C */ sw $t9, 0xc($t5) +/* 089D00 7F0551D0 8608000C */ lh $t0, 0xc($s0) +/* 089D04 7F0551D4 0088082A */ slt $at, $a0, $t0 +/* 089D08 7F0551D8 5420FFF0 */ bnezl $at, .L7F05519C +/* 089D0C 7F0551DC 8C4E0000 */ lw $t6, ($v0) +/* 089D10 7F0551E0 8E2300CC */ lw $v1, 0xcc($s1) +/* 089D14 7F0551E4 AC430000 */ sw $v1, ($v0) +.L7F0551E8: +/* 089D18 7F0551E8 8E690000 */ lw $t1, ($s3) +.L7F0551EC: +/* 089D1C 7F0551EC AE2900FC */ sw $t1, 0xfc($s1) +/* 089D20 7F0551F0 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089D24 7F0551F4 52320004 */ beql $s1, $s2, .L7F055208 +/* 089D28 7F0551F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 089D2C 7F0551FC 1620FFA2 */ bnez $s1, .L7F055088 +/* 089D30 7F055200 00000000 */ nop +.L7F055204: +/* 089D34 7F055204 8FBF0034 */ lw $ra, 0x34($sp) +.L7F055208: +/* 089D38 7F055208 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 089D3C 7F05520C 8FB0001C */ lw $s0, 0x1c($sp) +/* 089D40 7F055210 8FB10020 */ lw $s1, 0x20($sp) +/* 089D44 7F055214 8FB20024 */ lw $s2, 0x24($sp) +/* 089D48 7F055218 8FB30028 */ lw $s3, 0x28($sp) +/* 089D4C 7F05521C 8FB4002C */ lw $s4, 0x2c($sp) +/* 089D50 7F055220 8FB50030 */ lw $s5, 0x30($sp) +/* 089D54 7F055224 03E00008 */ jr $ra +/* 089D58 7F055228 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05522C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05522C +/* 089D5C 7F05522C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 089D60 7F055230 AFBF0014 */ sw $ra, 0x14($sp) +/* 089D64 7F055234 AFA40068 */ sw $a0, 0x68($sp) +/* 089D68 7F055238 AFA5006C */ sw $a1, 0x6c($sp) +/* 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(ptr_2xxxpresets) +/* 089D7C 7F05524C 8D295D1C */ lw $t1, %lo(ptr_2xxxpresets)($t1) +/* 089D80 7F055250 00194100 */ sll $t0, $t9, 4 +/* 089D84 7F055254 01194021 */ addu $t0, $t0, $t9 +/* 089D88 7F055258 00084080 */ sll $t0, $t0, 2 +/* 089D8C 7F05525C 01091821 */ addu $v1, $t0, $t1 +/* 089D90 7F055260 0FC225E6 */ jal get_curplayer_positiondata +/* 089D94 7F055264 AFA3005C */ sw $v1, 0x5c($sp) +/* 089D98 7F055268 3C048008 */ lui $a0, %hi(pPlayer) +/* 089D9C 7F05526C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 089DA0 7F055270 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 089DA4 7F055274 44810000 */ mtc1 $at, $f0 +/* 089DA8 7F055278 C4840498 */ lwc1 $f4, 0x498($a0) +/* 089DAC 7F05527C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 089DB0 7F055280 44811000 */ mtc1 $at, $f2 +/* 089DB4 7F055284 46002282 */ mul.s $f10, $f4, $f0 +/* 089DB8 7F055288 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 089DBC 7F05528C 44816000 */ mtc1 $at, $f12 +/* 089DC0 7F055290 C4440008 */ lwc1 $f4, 8($v0) +/* 089DC4 7F055294 8FAA0074 */ lw $t2, 0x74($sp) +/* 089DC8 7F055298 8FA3005C */ lw $v1, 0x5c($sp) +/* 089DCC 7F05529C 46025202 */ mul.s $f8, $f10, $f2 +/* 089DD0 7F0552A0 00000000 */ nop +/* 089DD4 7F0552A4 460C4182 */ mul.s $f6, $f8, $f12 +/* 089DD8 7F0552A8 46043280 */ add.s $f10, $f6, $f4 +/* 089DDC 7F0552AC E7AA0030 */ swc1 $f10, 0x30($sp) +/* 089DE0 7F0552B0 C448000C */ lwc1 $f8, 0xc($v0) +/* 089DE4 7F0552B4 E7A80034 */ swc1 $f8, 0x34($sp) +/* 089DE8 7F0552B8 C48604A0 */ lwc1 $f6, 0x4a0($a0) +/* 089DEC 7F0552BC 46003102 */ mul.s $f4, $f6, $f0 +/* 089DF0 7F0552C0 C4460010 */ lwc1 $f6, 0x10($v0) +/* 089DF4 7F0552C4 46022282 */ mul.s $f10, $f4, $f2 +/* 089DF8 7F0552C8 00000000 */ nop +/* 089DFC 7F0552CC 460C5202 */ mul.s $f8, $f10, $f12 +/* 089E00 7F0552D0 46064100 */ add.s $f4, $f8, $f6 +/* 089E04 7F0552D4 1140001D */ beqz $t2, .L7F05534C +/* 089E08 7F0552D8 E7A40038 */ swc1 $f4, 0x38($sp) +/* 089E0C 7F0552DC C46A0030 */ lwc1 $f10, 0x30($v1) +/* 089E10 7F0552E0 C472002C */ lwc1 $f18, 0x2c($v1) +/* 089E14 7F0552E4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 089E18 7F0552E8 C4680010 */ lwc1 $f8, 0x10($v1) +/* 089E1C 7F0552EC C4660020 */ lwc1 $f6, 0x20($v1) +/* 089E20 7F0552F0 C46A001C */ lwc1 $f10, 0x1c($v1) +/* 089E24 7F0552F4 46064102 */ mul.s $f4, $f8, $f6 +/* 089E28 7F0552F8 C4680014 */ lwc1 $f8, 0x14($v1) +/* 089E2C 7F0552FC 46085182 */ mul.s $f6, $f10, $f8 +/* 089E30 7F055300 46062281 */ sub.s $f10, $f4, $f6 +/* 089E34 7F055304 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 089E38 7F055308 C4640018 */ lwc1 $f4, 0x18($v1) +/* 089E3C 7F05530C C4680014 */ lwc1 $f8, 0x14($v1) +/* 089E40 7F055310 C46A0020 */ lwc1 $f10, 0x20($v1) +/* 089E44 7F055314 46044182 */ mul.s $f6, $f8, $f4 +/* 089E48 7F055318 C468000C */ lwc1 $f8, 0xc($v1) +/* 089E4C 7F05531C 46085102 */ mul.s $f4, $f10, $f8 +/* 089E50 7F055320 46043281 */ sub.s $f10, $f6, $f4 +/* 089E54 7F055324 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 089E58 7F055328 C466001C */ lwc1 $f6, 0x1c($v1) +/* 089E5C 7F05532C C468000C */ lwc1 $f8, 0xc($v1) +/* 089E60 7F055330 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 089E64 7F055334 46064102 */ mul.s $f4, $f8, $f6 +/* 089E68 7F055338 C4680010 */ lwc1 $f8, 0x10($v1) +/* 089E6C 7F05533C 46085182 */ mul.s $f6, $f10, $f8 +/* 089E70 7F055340 46062281 */ sub.s $f10, $f4, $f6 +/* 089E74 7F055344 1000000A */ b .L7F055370 +/* 089E78 7F055348 E7AA004C */ swc1 $f10, 0x4c($sp) +.L7F05534C: +/* 089E7C 7F05534C C4680038 */ lwc1 $f8, 0x38($v1) +/* 089E80 7F055350 C4720034 */ lwc1 $f18, 0x34($v1) +/* 089E84 7F055354 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 089E88 7F055358 C464000C */ lwc1 $f4, 0xc($v1) +/* 089E8C 7F05535C E7A40044 */ swc1 $f4, 0x44($sp) +/* 089E90 7F055360 C4660010 */ lwc1 $f6, 0x10($v1) +/* 089E94 7F055364 E7A60048 */ swc1 $f6, 0x48($sp) +/* 089E98 7F055368 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 089E9C 7F05536C E7AA004C */ swc1 $f10, 0x4c($sp) +.L7F055370: +/* 089EA0 7F055370 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 089EA4 7F055374 C4680000 */ lwc1 $f8, ($v1) +/* 089EA8 7F055378 46122182 */ mul.s $f6, $f4, $f18 +/* 089EAC 7F05537C C7A40030 */ lwc1 $f4, 0x30($sp) +/* 089EB0 7F055380 46064280 */ add.s $f10, $f8, $f6 +/* 089EB4 7F055384 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 089EB8 7F055388 C4680008 */ lwc1 $f8, 8($v1) +/* 089EBC 7F05538C E7B20040 */ swc1 $f18, 0x40($sp) +/* 089EC0 7F055390 46045301 */ sub.s $f12, $f10, $f4 +/* 089EC4 7F055394 46123282 */ mul.s $f10, $f6, $f18 +/* 089EC8 7F055398 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 089ECC 7F05539C AFA3005C */ sw $v1, 0x5c($sp) +/* 089ED0 7F0553A0 460A4100 */ add.s $f4, $f8, $f10 +/* 089ED4 7F0553A4 0FC16A8C */ jal atan2f +/* 089ED8 7F0553A8 46062381 */ sub.s $f14, $f4, $f6 +/* 089EDC 7F0553AC 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 089EE0 7F0553B0 E7A00020 */ swc1 $f0, 0x20($sp) +/* 089EE4 7F0553B4 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 089EE8 7F0553B8 8FA3005C */ lw $v1, 0x5c($sp) +/* 089EEC 7F0553BC C7B20040 */ lwc1 $f18, 0x40($sp) +/* 089EF0 7F0553C0 4600603C */ c.lt.s $f12, $f0 +/* 089EF4 7F0553C4 3C018005 */ lui $at, %hi(D_80053460) +/* 089EF8 7F0553C8 46006381 */ sub.s $f14, $f12, $f0 +/* 089EFC 7F0553CC 8FA20068 */ lw $v0, 0x68($sp) +/* 089F00 7F0553D0 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 089F04 7F0553D4 45000003 */ bc1f .L7F0553E4 +/* 089F08 7F0553D8 46007086 */ mov.s $f2, $f14 +/* 089F0C 7F0553DC C4203460 */ lwc1 $f0, %lo(D_80053460)($at) +/* 089F10 7F0553E0 46007080 */ add.s $f2, $f14, $f0 +.L7F0553E4: +/* 089F14 7F0553E4 3C018005 */ lui $at, %hi(D_80053464) +/* 089F18 7F0553E8 C4203464 */ lwc1 $f0, %lo(D_80053464)($at) +/* 089F1C 7F0553EC 3C018005 */ lui $at, %hi(D_80053468) +/* 089F20 7F0553F0 C4283468 */ lwc1 $f8, %lo(D_80053468)($at) +/* 089F24 7F0553F4 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 089F28 7F0553F8 4602403C */ c.lt.s $f8, $f2 +/* 089F2C 7F0553FC 00000000 */ nop +/* 089F30 7F055400 45020003 */ bc1fl .L7F055410 +/* 089F34 7F055404 944B009A */ lhu $t3, 0x9a($v0) +/* 089F38 7F055408 46001081 */ sub.s $f2, $f2, $f0 +/* 089F3C 7F05540C 944B009A */ lhu $t3, 0x9a($v0) +.L7F055410: +/* 089F40 7F055410 24010005 */ li $at, 5 +/* 089F44 7F055414 15610046 */ bne $t3, $at, .L7F055530 +/* 089F48 7F055418 00000000 */ nop +/* 089F4C 7F05541C C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 089F50 7F055420 8C4C0008 */ lw $t4, 8($v0) +/* 089F54 7F055424 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 089F58 7F055428 46005102 */ mul.s $f4, $f10, $f0 +/* 089F5C 7F05542C 44813000 */ mtc1 $at, $f6 +/* 089F60 7F055430 000C6880 */ sll $t5, $t4, 2 +/* 089F64 7F055434 05A10002 */ bgez $t5, .L7F055440 +/* 089F68 7F055438 46062303 */ div.s $f12, $f4, $f6 +/* 089F6C 7F05543C 460C0301 */ sub.s $f12, $f0, $f12 +.L7F055440: +/* 089F70 7F055440 AFA3005C */ sw $v1, 0x5c($sp) +/* 089F74 7F055444 E7A20064 */ swc1 $f2, 0x64($sp) +/* 089F78 7F055448 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 089F7C 7F05544C 0FC15FA8 */ jal cosf +/* 089F80 7F055450 E7B20040 */ swc1 $f18, 0x40($sp) +/* 089F84 7F055454 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 089F88 7F055458 0FC15FAB */ jal sinf +/* 089F8C 7F05545C E7A00028 */ swc1 $f0, 0x28($sp) +/* 089F90 7F055460 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 089F94 7F055464 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 089F98 7F055468 8FA3005C */ lw $v1, 0x5c($sp) +/* 089F9C 7F05546C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 089FA0 7F055470 46122182 */ mul.s $f6, $f4, $f18 +/* 089FA4 7F055474 C46A0000 */ lwc1 $f10, ($v1) +/* 089FA8 7F055478 46124081 */ sub.s $f2, $f8, $f18 +/* 089FAC 7F05547C C7B00028 */ lwc1 $f16, 0x28($sp) +/* 089FB0 7F055480 46065200 */ add.s $f8, $f10, $f6 +/* 089FB4 7F055484 46102282 */ mul.s $f10, $f4, $f16 +/* 089FB8 7F055488 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 089FBC 7F05548C E7A80018 */ swc1 $f8, 0x18($sp) +/* 089FC0 7F055490 46003202 */ mul.s $f8, $f6, $f0 +/* 089FC4 7F055494 46085280 */ add.s $f10, $f10, $f8 +/* 089FC8 7F055498 460A1202 */ mul.s $f8, $f2, $f10 +/* 089FCC 7F05549C C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 089FD0 7F0554A0 46085280 */ add.s $f10, $f10, $f8 +/* 089FD4 7F0554A4 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 089FD8 7F0554A8 46085301 */ sub.s $f12, $f10, $f8 +/* 089FDC 7F0554AC 46123202 */ mul.s $f8, $f6, $f18 +/* 089FE0 7F0554B0 C46A0008 */ lwc1 $f10, 8($v1) +/* 089FE4 7F0554B4 46085280 */ add.s $f10, $f10, $f8 +/* 089FE8 7F0554B8 46002207 */ neg.s $f8, $f4 +/* 089FEC 7F0554BC 46004102 */ mul.s $f4, $f8, $f0 +/* 089FF0 7F0554C0 00000000 */ nop +/* 089FF4 7F0554C4 46103202 */ mul.s $f8, $f6, $f16 +/* 089FF8 7F0554C8 46082180 */ add.s $f6, $f4, $f8 +/* 089FFC 7F0554CC 46061102 */ mul.s $f4, $f2, $f6 +/* 08A000 7F0554D0 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 08A004 7F0554D4 46045200 */ add.s $f8, $f10, $f4 +/* 08A008 7F0554D8 0FC16A8C */ jal atan2f +/* 08A00C 7F0554DC 46064381 */ sub.s $f14, $f8, $f6 +/* 08A010 7F0554E0 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 08A014 7F0554E4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 08A018 7F0554E8 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08A01C 7F0554EC 3C018005 */ lui $at, %hi(D_8005346C) +/* 08A020 7F0554F0 4600603C */ c.lt.s $f12, $f0 +/* 08A024 7F0554F4 46006381 */ sub.s $f14, $f12, $f0 +/* 08A028 7F0554F8 45000003 */ bc1f .L7F055508 +/* 08A02C 7F0554FC 46007086 */ mov.s $f2, $f14 +/* 08A030 7F055500 C42A346C */ lwc1 $f10, %lo(D_8005346C)($at) +/* 08A034 7F055504 460A7080 */ add.s $f2, $f14, $f10 +.L7F055508: +/* 08A038 7F055508 3C018005 */ lui $at, %hi(D_80053470) +/* 08A03C 7F05550C C4243470 */ lwc1 $f4, %lo(D_80053470)($at) +/* 08A040 7F055510 3C018005 */ lui $at, %hi(D_80053474) +/* 08A044 7F055514 4602203C */ c.lt.s $f4, $f2 +/* 08A048 7F055518 00000000 */ nop +/* 08A04C 7F05551C 45020025 */ bc1fl .L7F0555B4 +/* 08A050 7F055520 C7A00064 */ lwc1 $f0, 0x64($sp) +/* 08A054 7F055524 C4283474 */ lwc1 $f8, %lo(D_80053474)($at) +/* 08A058 7F055528 10000021 */ b .L7F0555B0 +/* 08A05C 7F05552C 46081081 */ sub.s $f2, $f2, $f8 +.L7F055530: +/* 08A060 7F055530 46105102 */ mul.s $f4, $f10, $f16 +/* 08A064 7F055534 C4660000 */ lwc1 $f6, ($v1) +/* 08A068 7F055538 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 08A06C 7F05553C 46043200 */ add.s $f8, $f6, $f4 +/* 08A070 7F055540 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 08A074 7F055544 C4660008 */ lwc1 $f6, 8($v1) +/* 08A078 7F055548 E7A20064 */ swc1 $f2, 0x64($sp) +/* 08A07C 7F05554C 460A4301 */ sub.s $f12, $f8, $f10 +/* 08A080 7F055550 46102202 */ mul.s $f8, $f4, $f16 +/* 08A084 7F055554 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 08A088 7F055558 46083280 */ add.s $f10, $f6, $f8 +/* 08A08C 7F05555C 0FC16A8C */ jal atan2f +/* 08A090 7F055560 46045381 */ sub.s $f14, $f10, $f4 +/* 08A094 7F055564 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 08A098 7F055568 E7A00020 */ swc1 $f0, 0x20($sp) +/* 08A09C 7F05556C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08A0A0 7F055570 3C018005 */ lui $at, %hi(D_80053478) +/* 08A0A4 7F055574 4600603C */ c.lt.s $f12, $f0 +/* 08A0A8 7F055578 46006381 */ sub.s $f14, $f12, $f0 +/* 08A0AC 7F05557C 45000003 */ bc1f .L7F05558C +/* 08A0B0 7F055580 46007086 */ mov.s $f2, $f14 +/* 08A0B4 7F055584 C4263478 */ lwc1 $f6, %lo(D_80053478)($at) +/* 08A0B8 7F055588 46067080 */ add.s $f2, $f14, $f6 +.L7F05558C: +/* 08A0BC 7F05558C 3C018005 */ lui $at, %hi(D_8005347C) +/* 08A0C0 7F055590 C428347C */ lwc1 $f8, %lo(D_8005347C)($at) +/* 08A0C4 7F055594 3C018005 */ lui $at, %hi(D_80053480) +/* 08A0C8 7F055598 4602403C */ c.lt.s $f8, $f2 +/* 08A0CC 7F05559C 00000000 */ nop +/* 08A0D0 7F0555A0 45020004 */ bc1fl .L7F0555B4 +/* 08A0D4 7F0555A4 C7A00064 */ lwc1 $f0, 0x64($sp) +/* 08A0D8 7F0555A8 C42A3480 */ lwc1 $f10, %lo(D_80053480)($at) +/* 08A0DC 7F0555AC 460A1081 */ sub.s $f2, $f2, $f10 +.L7F0555B0: +/* 08A0E0 7F0555B0 C7A00064 */ lwc1 $f0, 0x64($sp) +.L7F0555B4: +/* 08A0E4 7F0555B4 8FAE006C */ lw $t6, 0x6c($sp) +/* 08A0E8 7F0555B8 8FB8006C */ lw $t8, 0x6c($sp) +/* 08A0EC 7F0555BC 4602003C */ c.lt.s $f0, $f2 +/* 08A0F0 7F0555C0 00000000 */ nop +/* 08A0F4 7F0555C4 45020006 */ bc1fl .L7F0555E0 +/* 08A0F8 7F0555C8 E7020000 */ swc1 $f2, ($t8) +/* 08A0FC 7F0555CC E5C00000 */ swc1 $f0, ($t6) +/* 08A100 7F0555D0 8FAF0070 */ lw $t7, 0x70($sp) +/* 08A104 7F0555D4 10000004 */ b .L7F0555E8 +/* 08A108 7F0555D8 E5E20000 */ swc1 $f2, ($t7) +/* 08A10C 7F0555DC E7020000 */ swc1 $f2, ($t8) +.L7F0555E0: +/* 08A110 7F0555E0 8FB90070 */ lw $t9, 0x70($sp) +/* 08A114 7F0555E4 E7200000 */ swc1 $f0, ($t9) +.L7F0555E8: +/* 08A118 7F0555E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A11C 7F0555EC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 08A120 7F0555F0 03E00008 */ jr $ra +/* 08A124 7F0555F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0555F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0555F8 +/* 08A128 7F0555F8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08A12C 7F0555FC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80071DF8) +/* 08A130 7F055600 8DEF1DF8 */ lw $t7, %lo(dword_CODE_bss_80071DF8)($t7) +/* 08A134 7F055604 AFB40030 */ sw $s4, 0x30($sp) +/* 08A138 7F055608 AFB3002C */ sw $s3, 0x2c($sp) +/* 08A13C 7F05560C 240E0001 */ li $t6, 1 +/* 08A140 7F055610 00809825 */ move $s3, $a0 +/* 08A144 7F055614 00A0A025 */ move $s4, $a1 +/* 08A148 7F055618 AFBF0034 */ sw $ra, 0x34($sp) +/* 08A14C 7F05561C AFB20028 */ sw $s2, 0x28($sp) +/* 08A150 7F055620 AFB10024 */ sw $s1, 0x24($sp) +/* 08A154 7F055624 AFB00020 */ sw $s0, 0x20($sp) +/* 08A158 7F055628 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 08A15C 7F05562C 15E0006B */ bnez $t7, .L7F0557DC +/* 08A160 7F055630 AFAE0054 */ sw $t6, 0x54($sp) +/* 08A164 7F055634 27A50050 */ addiu $a1, $sp, 0x50 +/* 08A168 7F055638 27A6004C */ addiu $a2, $sp, 0x4c +/* 08A16C 7F05563C 0FC1548B */ jal sub_GAME_7F05522C +/* 08A170 7F055640 02803825 */ move $a3, $s4 +/* 08A174 7F055644 3C018005 */ lui $at, %hi(D_80053484) +/* 08A178 7F055648 C4223484 */ lwc1 $f2, %lo(D_80053484)($at) +/* 08A17C 7F05564C C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08A180 7F055650 46001007 */ neg.s $f0, $f2 +/* 08A184 7F055654 4604003E */ c.le.s $f0, $f4 +/* 08A188 7F055658 00000000 */ nop +/* 08A18C 7F05565C 45020012 */ bc1fl .L7F0556A8 +/* 08A190 7F055660 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A194 7F055664 4602203E */ c.le.s $f4, $f2 +/* 08A198 7F055668 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08A19C 7F05566C 4502000E */ bc1fl .L7F0556A8 +/* 08A1A0 7F055670 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1A4 7F055674 4606003E */ c.le.s $f0, $f6 +/* 08A1A8 7F055678 00000000 */ nop +/* 08A1AC 7F05567C 4502000A */ bc1fl .L7F0556A8 +/* 08A1B0 7F055680 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1B4 7F055684 4602303E */ c.le.s $f6, $f2 +/* 08A1B8 7F055688 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 08A1BC 7F05568C 45020006 */ bc1fl .L7F0556A8 +/* 08A1C0 7F055690 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1C4 7F055694 8E780010 */ lw $t8, 0x10($s3) +/* 08A1C8 7F055698 AFA00054 */ sw $zero, 0x54($sp) +/* 08A1CC 7F05569C 1000004F */ b .L7F0557DC +/* 08A1D0 7F0556A0 AC381DF8 */ sw $t8, %lo(dword_CODE_bss_80071DF8)($at) +/* 08A1D4 7F0556A4 8E7000C8 */ lw $s0, 0xc8($s3) +.L7F0556A8: +/* 08A1D8 7F0556A8 52000037 */ beql $s0, $zero, .L7F055788 +/* 08A1DC 7F0556AC C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A1E0 7F0556B0 12130034 */ beq $s0, $s3, .L7F055784 +/* 08A1E4 7F0556B4 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 08A1E8 7F0556B8 4480A000 */ mtc1 $zero, $f20 +/* 08A1EC 7F0556BC C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 08A1F0 7F0556C0 4608A03E */ c.le.s $f20, $f8 +/* 08A1F4 7F0556C4 00000000 */ nop +/* 08A1F8 7F0556C8 45030005 */ bc1tl .L7F0556E0 +/* 08A1FC 7F0556CC 27A50040 */ addiu $a1, $sp, 0x40 +/* 08A200 7F0556D0 4614503C */ c.lt.s $f10, $f20 +/* 08A204 7F0556D4 00000000 */ nop +/* 08A208 7F0556D8 4500002A */ bc1f .L7F055784 +/* 08A20C 7F0556DC 27A50040 */ addiu $a1, $sp, 0x40 +.L7F0556E0: +/* 08A210 7F0556E0 27A6003C */ addiu $a2, $sp, 0x3c +/* 08A214 7F0556E4 02002025 */ move $a0, $s0 +/* 08A218 7F0556E8 0FC1548B */ jal sub_GAME_7F05522C +/* 08A21C 7F0556EC 02803825 */ move $a3, $s4 +/* 08A220 7F0556F0 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 08A224 7F0556F4 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 08A228 7F0556F8 4610A03C */ c.lt.s $f20, $f16 +/* 08A22C 7F0556FC 00000000 */ nop +/* 08A230 7F055700 45020007 */ bc1fl .L7F055720 +/* 08A234 7F055704 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 08A238 7F055708 4610003C */ c.lt.s $f0, $f16 +/* 08A23C 7F05570C 00000000 */ nop +/* 08A240 7F055710 45020003 */ bc1fl .L7F055720 +/* 08A244 7F055714 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 08A248 7F055718 E7A00050 */ swc1 $f0, 0x50($sp) +/* 08A24C 7F05571C C7B2004C */ lwc1 $f18, 0x4c($sp) +.L7F055720: +/* 08A250 7F055720 C7A0003C */ lwc1 $f0, 0x3c($sp) +/* 08A254 7F055724 4614903C */ c.lt.s $f18, $f20 +/* 08A258 7F055728 00000000 */ nop +/* 08A25C 7F05572C 45020007 */ bc1fl .L7F05574C +/* 08A260 7F055730 8E1000C8 */ lw $s0, 0xc8($s0) +/* 08A264 7F055734 4600903C */ c.lt.s $f18, $f0 +/* 08A268 7F055738 00000000 */ nop +/* 08A26C 7F05573C 45020003 */ bc1fl .L7F05574C +/* 08A270 7F055740 8E1000C8 */ lw $s0, 0xc8($s0) +/* 08A274 7F055744 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 08A278 7F055748 8E1000C8 */ lw $s0, 0xc8($s0) +.L7F05574C: +/* 08A27C 7F05574C C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08A280 7F055750 5200000D */ beql $s0, $zero, .L7F055788 +/* 08A284 7F055754 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A288 7F055758 5213000B */ beql $s0, $s3, .L7F055788 +/* 08A28C 7F05575C C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A290 7F055760 4604A03E */ c.le.s $f20, $f4 +/* 08A294 7F055764 00000000 */ nop +/* 08A298 7F055768 4503FFDD */ bc1tl .L7F0556E0 +/* 08A29C 7F05576C 27A50040 */ addiu $a1, $sp, 0x40 +/* 08A2A0 7F055770 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08A2A4 7F055774 4614303C */ c.lt.s $f6, $f20 +/* 08A2A8 7F055778 00000000 */ nop +/* 08A2AC 7F05577C 4503FFD8 */ bc1tl .L7F0556E0 +/* 08A2B0 7F055780 27A50040 */ addiu $a1, $sp, 0x40 +.L7F055784: +/* 08A2B4 7F055784 C7A8004C */ lwc1 $f8, 0x4c($sp) +.L7F055788: +/* 08A2B8 7F055788 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08A2BC 7F05578C 3C018005 */ lui $at, %hi(D_80053488) +/* 08A2C0 7F055790 C4323488 */ lwc1 $f18, %lo(D_80053488)($at) +/* 08A2C4 7F055794 460A4401 */ sub.s $f16, $f8, $f10 +/* 08A2C8 7F055798 4480A000 */ mtc1 $zero, $f20 +/* 08A2CC 7F05579C 4612803C */ c.lt.s $f16, $f18 +/* 08A2D0 7F0557A0 00000000 */ nop +/* 08A2D4 7F0557A4 4502000E */ bc1fl .L7F0557E0 +/* 08A2D8 7F0557A8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2DC 7F0557AC 4614503C */ c.lt.s $f10, $f20 +/* 08A2E0 7F0557B0 00000000 */ nop +/* 08A2E4 7F0557B4 4502000A */ bc1fl .L7F0557E0 +/* 08A2E8 7F0557B8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2EC 7F0557BC 4608A03C */ c.lt.s $f20, $f8 +/* 08A2F0 7F0557C0 00000000 */ nop +/* 08A2F4 7F0557C4 45020006 */ bc1fl .L7F0557E0 +/* 08A2F8 7F0557C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2FC 7F0557CC 8E790010 */ lw $t9, 0x10($s3) +/* 08A300 7F0557D0 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 08A304 7F0557D4 AFA00054 */ sw $zero, 0x54($sp) +/* 08A308 7F0557D8 AC391DF8 */ sw $t9, %lo(dword_CODE_bss_80071DF8)($at) +.L7F0557DC: +/* 08A30C 7F0557DC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0557E0: +/* 08A310 7F0557E0 8FA20054 */ lw $v0, 0x54($sp) +/* 08A314 7F0557E4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 08A318 7F0557E8 8FB00020 */ lw $s0, 0x20($sp) +/* 08A31C 7F0557EC 8FB10024 */ lw $s1, 0x24($sp) +/* 08A320 7F0557F0 8FB20028 */ lw $s2, 0x28($sp) +/* 08A324 7F0557F4 8FB3002C */ lw $s3, 0x2c($sp) +/* 08A328 7F0557F8 8FB40030 */ lw $s4, 0x30($sp) +/* 08A32C 7F0557FC 03E00008 */ jr $ra +/* 08A330 7F055800 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055804(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055804 +/* 08A334 7F055804 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 08A338 7F055808 240E0001 */ li $t6, 1 +/* 08A33C 7F05580C AFBF001C */ sw $ra, 0x1c($sp) +/* 08A340 7F055810 AFB00018 */ sw $s0, 0x18($sp) +/* 08A344 7F055814 AFAE0084 */ sw $t6, 0x84($sp) +/* 08A348 7F055818 8C900004 */ lw $s0, 4($a0) +/* 08A34C 7F05581C 8E0F0008 */ lw $t7, 8($s0) +/* 08A350 7F055820 000FC180 */ sll $t8, $t7, 6 +/* 08A354 7F055824 07020059 */ bltzl $t8, .L7F05598C +/* 08A358 7F055828 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A35C 7F05582C 44802000 */ mtc1 $zero, $f4 +/* 08A360 7F055830 C6060084 */ lwc1 $f6, 0x84($s0) +/* 08A364 7F055834 4606203C */ c.lt.s $f4, $f6 +/* 08A368 7F055838 00000000 */ nop +/* 08A36C 7F05583C 45020053 */ bc1fl .L7F05598C +/* 08A370 7F055840 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A374 7F055844 90990001 */ lbu $t9, 1($a0) +/* 08A378 7F055848 33280002 */ andi $t0, $t9, 2 +/* 08A37C 7F05584C 5100004F */ beql $t0, $zero, .L7F05598C +/* 08A380 7F055850 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A384 7F055854 AFA0007C */ sw $zero, 0x7c($sp) +/* 08A388 7F055858 0FC225E6 */ jal get_curplayer_positiondata +/* 08A38C 7F05585C AFA40088 */ sw $a0, 0x88($sp) +/* 08A390 7F055860 AFA20078 */ sw $v0, 0x78($sp) +/* 08A394 7F055864 C44A0008 */ lwc1 $f10, 8($v0) +/* 08A398 7F055868 C6080058 */ lwc1 $f8, 0x58($s0) +/* 08A39C 7F05586C C4460010 */ lwc1 $f6, 0x10($v0) +/* 08A3A0 7F055870 C6040060 */ lwc1 $f4, 0x60($s0) +/* 08A3A4 7F055874 460A4001 */ sub.s $f0, $f8, $f10 +/* 08A3A8 7F055878 C452000C */ lwc1 $f18, 0xc($v0) +/* 08A3AC 7F05587C C610005C */ lwc1 $f16, 0x5c($s0) +/* 08A3B0 7F055880 46062081 */ sub.s $f2, $f4, $f6 +/* 08A3B4 7F055884 46000202 */ mul.s $f8, $f0, $f0 +/* 08A3B8 7F055888 3C018005 */ lui $at, %hi(D_8005348C) +/* 08A3BC 7F05588C 46128301 */ sub.s $f12, $f16, $f18 +/* 08A3C0 7F055890 46021282 */ mul.s $f10, $f2, $f2 +/* 08A3C4 7F055894 C432348C */ lwc1 $f18, %lo(D_8005348C)($at) +/* 08A3C8 7F055898 8FA40088 */ lw $a0, 0x88($sp) +/* 08A3CC 7F05589C 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 08A3D0 7F0558A0 460A4400 */ add.s $f16, $f8, $f10 +/* 08A3D4 7F0558A4 4612803C */ c.lt.s $f16, $f18 +/* 08A3D8 7F0558A8 00000000 */ nop +/* 08A3DC 7F0558AC 4500000F */ bc1f .L7F0558EC +/* 08A3E0 7F0558B0 00000000 */ nop +/* 08A3E4 7F0558B4 44812000 */ mtc1 $at, $f4 +/* 08A3E8 7F0558B8 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 08A3EC 7F0558BC 4604603C */ c.lt.s $f12, $f4 +/* 08A3F0 7F0558C0 00000000 */ nop +/* 08A3F4 7F0558C4 45000009 */ bc1f .L7F0558EC +/* 08A3F8 7F0558C8 00000000 */ nop +/* 08A3FC 7F0558CC 44813000 */ mtc1 $at, $f6 +/* 08A400 7F0558D0 24090001 */ li $t1, 1 +/* 08A404 7F0558D4 460C303C */ c.lt.s $f6, $f12 +/* 08A408 7F0558D8 00000000 */ nop +/* 08A40C 7F0558DC 45000003 */ bc1f .L7F0558EC +/* 08A410 7F0558E0 00000000 */ nop +/* 08A414 7F0558E4 10000018 */ b .L7F055948 +/* 08A418 7F0558E8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0558EC: +/* 08A41C 7F0558EC 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 08A420 7F0558F0 27A50048 */ addiu $a1, $sp, 0x48 +/* 08A424 7F0558F4 8FA40078 */ lw $a0, 0x78($sp) +/* 08A428 7F0558F8 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 08A42C 7F0558FC 27A50028 */ addiu $a1, $sp, 0x28 +/* 08A430 7F055900 27A40048 */ addiu $a0, $sp, 0x48 +/* 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(ptr_2xxxpresets) +/* 08A444 7F055914 860A0006 */ lh $t2, 6($s0) +/* 08A448 7F055918 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 08A44C 7F05591C 8FA40078 */ lw $a0, 0x78($sp) +/* 08A450 7F055920 000A5900 */ sll $t3, $t2, 4 +/* 08A454 7F055924 016A5821 */ addu $t3, $t3, $t2 +/* 08A458 7F055928 000B5880 */ sll $t3, $t3, 2 +/* 08A45C 7F05592C 3C054316 */ lui $a1, 0x4316 +/* 08A460 7F055930 016C3021 */ addu $a2, $t3, $t4 +/* 08A464 7F055934 0FC0FD66 */ jal sub_GAME_7F03F598 +/* 08A468 7F055938 24840008 */ addiu $a0, $a0, 8 +/* 08A46C 7F05593C 10400002 */ beqz $v0, .L7F055948 +/* 08A470 7F055940 240D0001 */ li $t5, 1 +/* 08A474 7F055944 AFAD007C */ sw $t5, 0x7c($sp) +.L7F055948: +/* 08A478 7F055948 8FAE007C */ lw $t6, 0x7c($sp) +/* 08A47C 7F05594C 02002025 */ move $a0, $s0 +/* 08A480 7F055950 51C0000E */ beql $t6, $zero, .L7F05598C +/* 08A484 7F055954 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A488 7F055958 0FC1557E */ jal sub_GAME_7F0555F8 +/* 08A48C 7F05595C 00002825 */ move $a1, $zero +/* 08A490 7F055960 10400009 */ beqz $v0, .L7F055988 +/* 08A494 7F055964 AFA20084 */ sw $v0, 0x84($sp) +/* 08A498 7F055968 8E0F000C */ lw $t7, 0xc($s0) +/* 08A49C 7F05596C 02002025 */ move $a0, $s0 +/* 08A4A0 7F055970 000FC000 */ sll $t8, $t7, 0 +/* 08A4A4 7F055974 07030005 */ bgezl $t8, .L7F05598C +/* 08A4A8 7F055978 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A4AC 7F05597C 0FC1557E */ jal sub_GAME_7F0555F8 +/* 08A4B0 7F055980 24050001 */ li $a1, 1 +/* 08A4B4 7F055984 AFA20084 */ sw $v0, 0x84($sp) +.L7F055988: +/* 08A4B8 7F055988 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05598C: +/* 08A4BC 7F05598C 8FA20084 */ lw $v0, 0x84($sp) +/* 08A4C0 7F055990 8FB00018 */ lw $s0, 0x18($sp) +/* 08A4C4 7F055994 03E00008 */ jr $ra +/* 08A4C8 7F055998 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05599C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05599C +/* 08A4CC 7F05599C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08A4D0 7F0559A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A4D4 7F0559A4 AFB00018 */ sw $s0, 0x18($sp) +/* 08A4D8 7F0559A8 AFA40020 */ sw $a0, 0x20($sp) +/* 08A4DC 7F0559AC 8C900004 */ lw $s0, 4($a0) +/* 08A4E0 7F0559B0 24010001 */ li $at, 1 +/* 08A4E4 7F0559B4 820200BC */ lb $v0, 0xbc($s0) +/* 08A4E8 7F0559B8 02002025 */ move $a0, $s0 +/* 08A4EC 7F0559BC 10410003 */ beq $v0, $at, .L7F0559CC +/* 08A4F0 7F0559C0 24010003 */ li $at, 3 +/* 08A4F4 7F0559C4 54410006 */ bnel $v0, $at, .L7F0559E0 +/* 08A4F8 7F0559C8 24010002 */ li $at, 2 +.L7F0559CC: +/* 08A4FC 7F0559CC 0FC15262 */ jal set_door_state +/* 08A500 7F0559D0 24050002 */ li $a1, 2 +/* 08A504 7F0559D4 10000019 */ b .L7F055A3C +/* 08A508 7F0559D8 8E0F0064 */ lw $t7, 0x64($s0) +/* 08A50C 7F0559DC 24010002 */ li $at, 2 +.L7F0559E0: +/* 08A510 7F0559E0 14410005 */ bne $v0, $at, .L7F0559F8 +/* 08A514 7F0559E4 02002025 */ move $a0, $s0 +/* 08A518 7F0559E8 0FC15262 */ jal set_door_state +/* 08A51C 7F0559EC 24050001 */ li $a1, 1 +/* 08A520 7F0559F0 10000012 */ b .L7F055A3C +/* 08A524 7F0559F4 8E0F0064 */ lw $t7, 0x64($s0) +.L7F0559F8: +/* 08A528 7F0559F8 1440000F */ bnez $v0, .L7F055A38 +/* 08A52C 7F0559FC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A530 7F055A00 44812000 */ mtc1 $at, $f4 +/* 08A534 7F055A04 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 08A538 7F055A08 24050002 */ li $a1, 2 +/* 08A53C 7F055A0C 02002025 */ move $a0, $s0 +/* 08A540 7F055A10 4606203C */ c.lt.s $f4, $f6 +/* 08A544 7F055A14 00000000 */ nop +/* 08A548 7F055A18 45000005 */ bc1f .L7F055A30 +/* 08A54C 7F055A1C 00000000 */ nop +/* 08A550 7F055A20 0FC15262 */ jal set_door_state +/* 08A554 7F055A24 02002025 */ move $a0, $s0 +/* 08A558 7F055A28 10000004 */ b .L7F055A3C +/* 08A55C 7F055A2C 8E0F0064 */ lw $t7, 0x64($s0) +.L7F055A30: +/* 08A560 7F055A30 0FC15262 */ jal set_door_state +/* 08A564 7F055A34 24050001 */ li $a1, 1 +.L7F055A38: +/* 08A568 7F055A38 8E0F0064 */ lw $t7, 0x64($s0) +.L7F055A3C: +/* 08A56C 7F055A3C 8E19000C */ lw $t9, 0xc($s0) +/* 08A570 7F055A40 2401FFF7 */ li $at, -9 +/* 08A574 7F055A44 35F84000 */ ori $t8, $t7, 0x4000 +/* 08A578 7F055A48 03214024 */ and $t0, $t9, $at +/* 08A57C 7F055A4C AE180064 */ sw $t8, 0x64($s0) +/* 08A580 7F055A50 AE08000C */ sw $t0, 0xc($s0) +/* 08A584 7F055A54 0FC0F9A8 */ jal sub_GAME_7F03E6A0 +/* 08A588 7F055A58 8FA40020 */ lw $a0, 0x20($sp) +/* 08A58C 7F055A5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A590 7F055A60 8FB00018 */ lw $s0, 0x18($sp) +/* 08A594 7F055A64 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08A598 7F055A68 03E00008 */ jr $ra +/* 08A59C 7F055A6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055A70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055A70 +/* 08A5A0 7F055A70 84AE0006 */ lh $t6, 6($a1) +/* 08A5A4 7F055A74 3C188007 */ lui $t8, %hi(ptr_2xxxpresets) +/* 08A5A8 7F055A78 8F185D1C */ lw $t8, %lo(ptr_2xxxpresets)($t8) +/* 08A5AC 7F055A7C 000E7900 */ sll $t7, $t6, 4 +/* 08A5B0 7F055A80 01EE7821 */ addu $t7, $t7, $t6 +/* 08A5B4 7F055A84 000F7880 */ sll $t7, $t7, 2 +/* 08A5B8 7F055A88 01F81021 */ addu $v0, $t7, $t8 +/* 08A5BC 7F055A8C C4440010 */ lwc1 $f4, 0x10($v0) +/* 08A5C0 7F055A90 C4460020 */ lwc1 $f6, 0x20($v0) +/* 08A5C4 7F055A94 C44A001C */ lwc1 $f10, 0x1c($v0) +/* 08A5C8 7F055A98 C4520014 */ lwc1 $f18, 0x14($v0) +/* 08A5CC 7F055A9C 46062202 */ mul.s $f8, $f4, $f6 +/* 08A5D0 7F055AA0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08A5D4 7F055AA4 46125102 */ mul.s $f4, $f10, $f18 +/* 08A5D8 7F055AA8 46044181 */ sub.s $f6, $f8, $f4 +/* 08A5DC 7F055AAC E7A60004 */ swc1 $f6, 4($sp) +/* 08A5E0 7F055AB0 C4520018 */ lwc1 $f18, 0x18($v0) +/* 08A5E4 7F055AB4 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 08A5E8 7F055AB8 C4440020 */ lwc1 $f4, 0x20($v0) +/* 08A5EC 7F055ABC 46125202 */ mul.s $f8, $f10, $f18 +/* 08A5F0 7F055AC0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 08A5F4 7F055AC4 460A2482 */ mul.s $f18, $f4, $f10 +/* 08A5F8 7F055AC8 46124101 */ sub.s $f4, $f8, $f18 +/* 08A5FC 7F055ACC E7A40008 */ swc1 $f4, 8($sp) +/* 08A600 7F055AD0 C448001C */ lwc1 $f8, 0x1c($v0) +/* 08A604 7F055AD4 C44A000C */ lwc1 $f10, 0xc($v0) +/* 08A608 7F055AD8 46085482 */ mul.s $f18, $f10, $f8 +/* 08A60C 7F055ADC C4480010 */ lwc1 $f8, 0x10($v0) +/* 08A610 7F055AE0 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 08A614 7F055AE4 46085282 */ mul.s $f10, $f10, $f8 +/* 08A618 7F055AE8 460A9201 */ sub.s $f8, $f18, $f10 +/* 08A61C 7F055AEC E7A8000C */ swc1 $f8, 0xc($sp) +/* 08A620 7F055AF0 C44A0000 */ lwc1 $f10, ($v0) +/* 08A624 7F055AF4 C4920008 */ lwc1 $f18, 8($a0) +/* 08A628 7F055AF8 94B90098 */ lhu $t9, 0x98($a1) +/* 08A62C 7F055AFC 460A9001 */ sub.s $f0, $f18, $f10 +/* 08A630 7F055B00 C44A0004 */ lwc1 $f10, 4($v0) +/* 08A634 7F055B04 C492000C */ lwc1 $f18, 0xc($a0) +/* 08A638 7F055B08 33280008 */ andi $t0, $t9, 8 +/* 08A63C 7F055B0C 460A9081 */ sub.s $f2, $f18, $f10 +/* 08A640 7F055B10 C44A0008 */ lwc1 $f10, 8($v0) +/* 08A644 7F055B14 C4920010 */ lwc1 $f18, 0x10($a0) +/* 08A648 7F055B18 460A9301 */ sub.s $f12, $f18, $f10 +/* 08A64C 7F055B1C 46060482 */ mul.s $f18, $f0, $f6 +/* 08A650 7F055B20 44800000 */ mtc1 $zero, $f0 +/* 08A654 7F055B24 46041282 */ mul.s $f10, $f2, $f4 +/* 08A658 7F055B28 460A9180 */ add.s $f6, $f18, $f10 +/* 08A65C 7F055B2C 460C4102 */ mul.s $f4, $f8, $f12 +/* 08A660 7F055B30 46062400 */ add.s $f16, $f4, $f6 +/* 08A664 7F055B34 11000002 */ beqz $t0, .L7F055B40 +/* 08A668 7F055B38 46008386 */ mov.s $f14, $f16 +/* 08A66C 7F055B3C 46008387 */ neg.s $f14, $f16 +.L7F055B40: +/* 08A670 7F055B40 4600703C */ c.lt.s $f14, $f0 +/* 08A674 7F055B44 00000000 */ nop +/* 08A678 7F055B48 45020004 */ bc1fl .L7F055B5C +/* 08A67C 7F055B4C 460E003C */ c.lt.s $f0, $f14 +/* 08A680 7F055B50 10000007 */ b .L7F055B70 +/* 08A684 7F055B54 00001025 */ move $v0, $zero +/* 08A688 7F055B58 460E003C */ c.lt.s $f0, $f14 +.L7F055B5C: +/* 08A68C 7F055B5C 24020001 */ li $v0, 1 +/* 08A690 7F055B60 45000003 */ bc1f .L7F055B70 +/* 08A694 7F055B64 00000000 */ nop +/* 08A698 7F055B68 10000001 */ b .L7F055B70 +/* 08A69C 7F055B6C 24020001 */ li $v0, 1 +.L7F055B70: +/* 08A6A0 7F055B70 03E00008 */ jr $ra +/* 08A6A4 7F055B74 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055B78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055B78 +/* 08A6A8 7F055B78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08A6AC 7F055B7C AFBF0014 */ sw $ra, 0x14($sp) +/* 08A6B0 7F055B80 8CAE0008 */ lw $t6, 8($a1) +/* 08A6B4 7F055B84 000E7900 */ sll $t7, $t6, 4 +/* 08A6B8 7F055B88 05E3002A */ bgezl $t7, .L7F055C34 +/* 08A6BC 7F055B8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6C0 7F055B90 80B800BC */ lb $t8, 0xbc($a1) +/* 08A6C4 7F055B94 57000027 */ bnezl $t8, .L7F055C34 +/* 08A6C8 7F055B98 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6CC 7F055B9C 44802000 */ mtc1 $zero, $f4 +/* 08A6D0 7F055BA0 C4A600B4 */ lwc1 $f6, 0xb4($a1) +/* 08A6D4 7F055BA4 46062032 */ c.eq.s $f4, $f6 +/* 08A6D8 7F055BA8 00000000 */ nop +/* 08A6DC 7F055BAC 45020021 */ bc1fl .L7F055C34 +/* 08A6E0 7F055BB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6E4 7F055BB4 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A6E8 7F055BB8 AFA5001C */ sw $a1, 0x1c($sp) +/* 08A6EC 7F055BBC 8FA5001C */ lw $a1, 0x1c($sp) +/* 08A6F0 7F055BC0 00002025 */ move $a0, $zero +/* 08A6F4 7F055BC4 94B90098 */ lhu $t9, 0x98($a1) +/* 08A6F8 7F055BC8 33280008 */ andi $t0, $t9, 8 +/* 08A6FC 7F055BCC 15000006 */ bnez $t0, .L7F055BE8 +/* 08A700 7F055BD0 00000000 */ nop +/* 08A704 7F055BD4 14400002 */ bnez $v0, .L7F055BE0 +/* 08A708 7F055BD8 00000000 */ nop +/* 08A70C 7F055BDC 3C042000 */ lui $a0, 0x2000 +.L7F055BE0: +/* 08A710 7F055BE0 10000005 */ b .L7F055BF8 +/* 08A714 7F055BE4 8CA90008 */ lw $t1, 8($a1) +.L7F055BE8: +/* 08A718 7F055BE8 50400003 */ beql $v0, $zero, .L7F055BF8 +/* 08A71C 7F055BEC 8CA90008 */ lw $t1, 8($a1) +/* 08A720 7F055BF0 3C042000 */ lui $a0, 0x2000 +/* 08A724 7F055BF4 8CA90008 */ lw $t1, 8($a1) +.L7F055BF8: +/* 08A728 7F055BF8 3C032000 */ lui $v1, 0x2000 +/* 08A72C 7F055BFC 00A01025 */ move $v0, $a1 +/* 08A730 7F055C00 01245026 */ xor $t2, $t1, $a0 +/* 08A734 7F055C04 000A5880 */ sll $t3, $t2, 2 +/* 08A738 7F055C08 0563000A */ bgezl $t3, .L7F055C34 +/* 08A73C 7F055C0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A740 7F055C10 8C4C0008 */ lw $t4, 8($v0) +.L7F055C14: +/* 08A744 7F055C14 01836826 */ xor $t5, $t4, $v1 +/* 08A748 7F055C18 AC4D0008 */ sw $t5, 8($v0) +/* 08A74C 7F055C1C 8C4200C8 */ lw $v0, 0xc8($v0) +/* 08A750 7F055C20 50400004 */ beql $v0, $zero, .L7F055C34 +/* 08A754 7F055C24 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A758 7F055C28 5445FFFA */ bnel $v0, $a1, .L7F055C14 +/* 08A75C 7F055C2C 8C4C0008 */ lw $t4, 8($v0) +/* 08A760 7F055C30 8FBF0014 */ lw $ra, 0x14($sp) +.L7F055C34: +/* 08A764 7F055C34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08A768 7F055C38 03E00008 */ jr $ra +/* 08A76C 7F055C3C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055C40(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F055C40 +/* 08A770 7F055C40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08A774 7F055C44 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A778 7F055C48 AFB00018 */ sw $s0, 0x18($sp) +/* 08A77C 7F055C4C AFA40030 */ sw $a0, 0x30($sp) +/* 08A780 7F055C50 8C900004 */ lw $s0, 4($a0) +/* 08A784 7F055C54 0FC225E6 */ jal get_curplayer_positiondata +/* 08A788 7F055C58 AFA00028 */ sw $zero, 0x28($sp) +/* 08A78C 7F055C5C AFA20024 */ sw $v0, 0x24($sp) +/* 08A790 7F055C60 8E04009C */ lw $a0, 0x9c($s0) +/* 08A794 7F055C64 8FA30028 */ lw $v1, 0x28($sp) +/* 08A798 7F055C68 14800003 */ bnez $a0, .L7F055C78 +/* 08A79C 7F055C6C 00000000 */ nop +/* 08A7A0 7F055C70 1000001C */ b .L7F055CE4 +/* 08A7A4 7F055C74 24030001 */ li $v1, 1 +.L7F055C78: +/* 08A7A8 7F055C78 0FC2339C */ jal sub_GAME_7F08CE70 +/* 08A7AC 7F055C7C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7B0 7F055C80 10400003 */ beqz $v0, .L7F055C90 +/* 08A7B4 7F055C84 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7B8 7F055C88 10000016 */ b .L7F055CE4 +/* 08A7BC 7F055C8C 24030001 */ li $v1, 1 +.L7F055C90: +/* 08A7C0 7F055C90 8FA40024 */ lw $a0, 0x24($sp) +/* 08A7C4 7F055C94 02002825 */ move $a1, $s0 +/* 08A7C8 7F055C98 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A7CC 7F055C9C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7D0 7F055CA0 10400009 */ beqz $v0, .L7F055CC8 +/* 08A7D4 7F055CA4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7D8 7F055CA8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7DC 7F055CAC 000278C0 */ sll $t7, $v0, 3 +/* 08A7E0 7F055CB0 05E1000C */ bgez $t7, .L7F055CE4 +/* 08A7E4 7F055CB4 0002C100 */ sll $t8, $v0, 4 +/* 08A7E8 7F055CB8 0702000B */ bltzl $t8, .L7F055CE8 +/* 08A7EC 7F055CBC 02002025 */ move $a0, $s0 +/* 08A7F0 7F055CC0 10000008 */ b .L7F055CE4 +/* 08A7F4 7F055CC4 24030001 */ li $v1, 1 +.L7F055CC8: +/* 08A7F8 7F055CC8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7FC 7F055CCC 0002C8C0 */ sll $t9, $v0, 3 +/* 08A800 7F055CD0 07200004 */ bltz $t9, .L7F055CE4 +/* 08A804 7F055CD4 00024100 */ sll $t0, $v0, 4 +/* 08A808 7F055CD8 05030003 */ bgezl $t0, .L7F055CE8 +/* 08A80C 7F055CDC 02002025 */ move $a0, $s0 +/* 08A810 7F055CE0 24030001 */ li $v1, 1 +.L7F055CE4: +/* 08A814 7F055CE4 02002025 */ move $a0, $s0 +.L7F055CE8: +/* 08A818 7F055CE8 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 08A81C 7F055CEC AFA30028 */ sw $v1, 0x28($sp) +/* 08A820 7F055CF0 14400002 */ bnez $v0, .L7F055CFC +/* 08A824 7F055CF4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A828 7F055CF8 00001825 */ move $v1, $zero +.L7F055CFC: +/* 08A82C 7F055CFC 10600007 */ beqz $v1, .L7F055D1C +/* 08A830 7F055D00 8FA40024 */ lw $a0, 0x24($sp) +/* 08A834 7F055D04 0FC156DE */ jal sub_GAME_7F055B78 +/* 08A838 7F055D08 02002825 */ move $a1, $s0 +/* 08A83C 7F055D0C 0FC15667 */ jal sub_GAME_7F05599C +/* 08A840 7F055D10 8FA40030 */ lw $a0, 0x30($sp) +/* 08A844 7F055D14 10000028 */ b .L7F055DB8 +/* 08A848 7F055D18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055D1C: +/* 08A84C 7F055D1C 820900BC */ lb $t1, 0xbc($s0) +/* 08A850 7F055D20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A854 7F055D24 55200024 */ bnezl $t1, .L7F055DB8 +/* 08A858 7F055D28 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A85C 7F055D2C C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08A860 7F055D30 44813000 */ mtc1 $at, $f6 +/* 08A864 7F055D34 00000000 */ nop +/* 08A868 7F055D38 4606203C */ c.lt.s $f4, $f6 +/* 08A86C 7F055D3C 00000000 */ nop +/* 08A870 7F055D40 4502001D */ bc1fl .L7F055DB8 +/* 08A874 7F055D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A878 7F055D48 8E02000C */ lw $v0, 0xc($s0) +/* 08A87C 7F055D4C 304A0004 */ andi $t2, $v0, 4 +/* 08A880 7F055D50 55400014 */ bnezl $t2, .L7F055DA4 +/* 08A884 7F055D54 8E0C0064 */ lw $t4, 0x64($s0) +/* 08A888 7F055D58 0FC23487 */ jal get_textoverride_by_obj +/* 08A88C 7F055D5C 02002025 */ move $a0, $s0 +/* 08A890 7F055D60 1040000A */ beqz $v0, .L7F055D8C +/* 08A894 7F055D64 00000000 */ nop +/* 08A898 7F055D68 8C4B001C */ lw $t3, 0x1c($v0) +/* 08A89C 7F055D6C 11600007 */ beqz $t3, .L7F055D8C +/* 08A8A0 7F055D70 00000000 */ nop +/* 08A8A4 7F055D74 0FC30776 */ jal get_textptr_for_textID +/* 08A8A8 7F055D78 8C44001C */ lw $a0, 0x1c($v0) +/* 08A8AC 7F055D7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8B0 7F055D80 00402025 */ move $a0, $v0 +/* 08A8B4 7F055D84 10000006 */ b .L7F055DA0 +/* 08A8B8 7F055D88 8E02000C */ lw $v0, 0xc($s0) +.L7F055D8C: +/* 08A8BC 7F055D8C 0FC30776 */ jal get_textptr_for_textID +/* 08A8C0 7F055D90 3404A440 */ li $a0, 42048 +/* 08A8C4 7F055D94 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8C8 7F055D98 00402025 */ move $a0, $v0 +/* 08A8CC 7F055D9C 8E02000C */ lw $v0, 0xc($s0) +.L7F055DA0: +/* 08A8D0 7F055DA0 8E0C0064 */ lw $t4, 0x64($s0) +.L7F055DA4: +/* 08A8D4 7F055DA4 344E0008 */ ori $t6, $v0, 8 +/* 08A8D8 7F055DA8 AE0E000C */ sw $t6, 0xc($s0) +/* 08A8DC 7F055DAC 358D4000 */ ori $t5, $t4, 0x4000 +/* 08A8E0 7F055DB0 AE0D0064 */ sw $t5, 0x64($s0) +/* 08A8E4 7F055DB4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055DB8: +/* 08A8E8 7F055DB8 8FB00018 */ lw $s0, 0x18($sp) +/* 08A8EC 7F055DBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08A8F0 7F055DC0 03E00008 */ jr $ra +/* 08A8F4 7F055DC4 00001025 */ move $v0, $zero +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F055C40 +/* 08A770 7F055C40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08A774 7F055C44 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A778 7F055C48 AFB00018 */ sw $s0, 0x18($sp) +/* 08A77C 7F055C4C AFA40030 */ sw $a0, 0x30($sp) +/* 08A780 7F055C50 8C900004 */ lw $s0, 4($a0) +/* 08A784 7F055C54 0FC225E6 */ jal get_curplayer_positiondata +/* 08A788 7F055C58 AFA00028 */ sw $zero, 0x28($sp) +/* 08A78C 7F055C5C AFA20024 */ sw $v0, 0x24($sp) +/* 08A790 7F055C60 8E04009C */ lw $a0, 0x9c($s0) +/* 08A794 7F055C64 8FA30028 */ lw $v1, 0x28($sp) +/* 08A798 7F055C68 14800003 */ bnez $a0, .L7F055C78 +/* 08A79C 7F055C6C 00000000 */ nop +/* 08A7A0 7F055C70 1000001C */ b .L7F055CE4 +/* 08A7A4 7F055C74 24030001 */ li $v1, 1 +.L7F055C78: +/* 08A7A8 7F055C78 0FC2339C */ jal sub_GAME_7F08CE70 +/* 08A7AC 7F055C7C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7B0 7F055C80 10400003 */ beqz $v0, .L7F055C90 +/* 08A7B4 7F055C84 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7B8 7F055C88 10000016 */ b .L7F055CE4 +/* 08A7BC 7F055C8C 24030001 */ li $v1, 1 +.L7F055C90: +/* 08A7C0 7F055C90 8FA40024 */ lw $a0, 0x24($sp) +/* 08A7C4 7F055C94 02002825 */ move $a1, $s0 +/* 08A7C8 7F055C98 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A7CC 7F055C9C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7D0 7F055CA0 10400009 */ beqz $v0, .L7F055CC8 +/* 08A7D4 7F055CA4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7D8 7F055CA8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7DC 7F055CAC 000278C0 */ sll $t7, $v0, 3 +/* 08A7E0 7F055CB0 05E1000C */ bgez $t7, .L7F055CE4 +/* 08A7E4 7F055CB4 0002C100 */ sll $t8, $v0, 4 +/* 08A7E8 7F055CB8 0702000B */ bltzl $t8, .L7F055CE8 +/* 08A7EC 7F055CBC 02002025 */ move $a0, $s0 +/* 08A7F0 7F055CC0 10000008 */ b .L7F055CE4 +/* 08A7F4 7F055CC4 24030001 */ li $v1, 1 +.L7F055CC8: +/* 08A7F8 7F055CC8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7FC 7F055CCC 0002C8C0 */ sll $t9, $v0, 3 +/* 08A800 7F055CD0 07200004 */ bltz $t9, .L7F055CE4 +/* 08A804 7F055CD4 00024100 */ sll $t0, $v0, 4 +/* 08A808 7F055CD8 05030003 */ bgezl $t0, .L7F055CE8 +/* 08A80C 7F055CDC 02002025 */ move $a0, $s0 +/* 08A810 7F055CE0 24030001 */ li $v1, 1 +.L7F055CE4: +/* 08A814 7F055CE4 02002025 */ move $a0, $s0 +.L7F055CE8: +/* 08A818 7F055CE8 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 08A81C 7F055CEC AFA30028 */ sw $v1, 0x28($sp) +/* 08A820 7F055CF0 14400002 */ bnez $v0, .L7F055CFC +/* 08A824 7F055CF4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A828 7F055CF8 00001825 */ move $v1, $zero +.L7F055CFC: +/* 08A82C 7F055CFC 10600007 */ beqz $v1, .L7F055D1C +/* 08A830 7F055D00 8FA40024 */ lw $a0, 0x24($sp) +/* 08A834 7F055D04 0FC156DE */ jal sub_GAME_7F055B78 +/* 08A838 7F055D08 02002825 */ move $a1, $s0 +/* 08A83C 7F055D0C 0FC15667 */ jal sub_GAME_7F05599C +/* 08A840 7F055D10 8FA40030 */ lw $a0, 0x30($sp) +/* 08A844 7F055D14 10000028 */ b .L7F055DB8 +/* 08A848 7F055D18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055D1C: +/* 08A84C 7F055D1C 820900BC */ lb $t1, 0xbc($s0) +/* 08A850 7F055D20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A854 7F055D24 55200024 */ bnezl $t1, .L7F055DB8 +/* 08A858 7F055D28 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A85C 7F055D2C C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08A860 7F055D30 44813000 */ mtc1 $at, $f6 +/* 08A864 7F055D34 00000000 */ nop +/* 08A868 7F055D38 4606203C */ c.lt.s $f4, $f6 +/* 08A86C 7F055D3C 00000000 */ nop +/* 08A870 7F055D40 4502001D */ bc1fl .L7F055DB8 +/* 08A874 7F055D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A878 7F055D48 8E02000C */ lw $v0, 0xc($s0) +/* 08A87C 7F055D4C 304A0004 */ andi $t2, $v0, 4 +/* 08A880 7F055D50 55400014 */ bnezl $t2, .L7F055DA4 +/* 08A884 7F055D54 8E0C0064 */ lw $t4, 0x64($s0) +/* 08A888 7F055D58 0FC23487 */ jal get_textoverride_by_obj +/* 08A88C 7F055D5C 02002025 */ move $a0, $s0 +/* 08A890 7F055D60 1040000A */ beqz $v0, .L7F055D8C +/* 08A894 7F055D64 00000000 */ nop +/* 08A898 7F055D68 8C4B001C */ lw $t3, 0x1c($v0) +/* 08A89C 7F055D6C 11600007 */ beqz $t3, .L7F055D8C +/* 08A8A0 7F055D70 00000000 */ nop +/* 08A8A4 7F055D74 0FC30776 */ jal get_textptr_for_textID +/* 08A8A8 7F055D78 8C44001C */ lw $a0, 0x1c($v0) +/* 08A8AC 7F055D7C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08A8B0 7F055D80 00402025 */ move $a0, $v0 +/* 08A8B4 7F055D84 10000006 */ b .L7F055DA0 +/* 08A8B8 7F055D88 8E02000C */ lw $v0, 0xc($s0) +.L7F055D8C: +/* 08A8BC 7F055D8C 0FC30776 */ jal get_textptr_for_textID +/* 08A8C0 7F055D90 3404A440 */ li $a0, 42048 +/* 08A8C4 7F055D94 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08A8C8 7F055D98 00402025 */ move $a0, $v0 +/* 08A8CC 7F055D9C 8E02000C */ lw $v0, 0xc($s0) +.L7F055DA0: +/* 08A8D0 7F055DA0 8E0C0064 */ lw $t4, 0x64($s0) +.L7F055DA4: +/* 08A8D4 7F055DA4 344E0008 */ ori $t6, $v0, 8 +/* 08A8D8 7F055DA8 AE0E000C */ sw $t6, 0xc($s0) +/* 08A8DC 7F055DAC 358D4000 */ ori $t5, $t4, 0x4000 +/* 08A8E0 7F055DB0 AE0D0064 */ sw $t5, 0x64($s0) +/* 08A8E4 7F055DB4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055DB8: +/* 08A8E8 7F055DB8 8FB00018 */ lw $s0, 0x18($sp) +/* 08A8EC 7F055DBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08A8F0 7F055DC0 03E00008 */ jr $ra +/* 08A8F4 7F055DC4 00001025 */ move $v0, $zero +) +#endif +#endif + + + + + +void start_alarm(void) +{ + if (alarm_timer < 1) { + alarm_timer = 1; + } + return; +} + +void deactivate_alarm_sound_effect(void) +{ + if ((ptr_alarm_sfx != 0) && (sfxGetArg0Unk3F(ptr_alarm_sfx) != 0)) { + sfxDeactivate(ptr_alarm_sfx); + } + return; +} + +void stop_alarm(void) +{ + alarm_timer = 0; + deactivate_alarm_sound_effect(); + return; +} + +u32 is_alarm_on(void) +{ + return (0 < alarm_timer); +} + + + + + +#ifdef NONMATCHING +void init_trigger_toxic_gas_effect(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_trigger_toxic_gas_effect +/* 08A994 7F055E64 44802000 */ mtc1 $zero, $f4 +/* 08A998 7F055E68 240E0001 */ li $t6, 1 +/* 08A99C 7F055E6C 3C018003 */ lui $at, %hi(activate_gas_sound_timer) +/* 08A9A0 7F055E70 AC2E0ACC */ sw $t6, %lo(activate_gas_sound_timer)($at) +/* 08A9A4 7F055E74 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08A9A8 7F055E78 3C018003 */ lui $at, %hi(D_80030AE0) +/* 08A9AC 7F055E7C AFBF0014 */ sw $ra, 0x14($sp) +/* 08A9B0 7F055E80 E4240AE0 */ swc1 $f4, %lo(D_80030AE0)($at) +/* 08A9B4 7F055E84 C4860000 */ lwc1 $f6, ($a0) +/* 08A9B8 7F055E88 3C028003 */ lui $v0, %hi(D_80030AD0) +/* 08A9BC 7F055E8C 24420AD0 */ addiu $v0, %lo(D_80030AD0) # addiu $v0, $v0, 0xad0 +/* 08A9C0 7F055E90 E4460000 */ swc1 $f6, ($v0) +/* 08A9C4 7F055E94 C4880004 */ lwc1 $f8, 4($a0) +/* 08A9C8 7F055E98 E4480004 */ swc1 $f8, 4($v0) +/* 08A9CC 7F055E9C C48A0008 */ lwc1 $f10, 8($a0) +/* 08A9D0 7F055EA0 0C001A57 */ jal get_stage_num +/* 08A9D4 7F055EA4 E44A0008 */ swc1 $f10, 8($v0) +/* 08A9D8 7F055EA8 24010020 */ li $at, 32 +/* 08A9DC 7F055EAC 14410007 */ bne $v0, $at, .L7F055ECC +/* 08A9E0 7F055EB0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 08A9E4 7F055EB4 44818000 */ mtc1 $at, $f16 +/* 08A9E8 7F055EB8 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08A9EC 7F055EBC E4301E78 */ swc1 $f16, %lo(gas_damage_flag)($at) +/* 08A9F0 7F055EC0 3C018007 */ lui $at, %hi(gas_cutoff_flag) +/* 08A9F4 7F055EC4 10000008 */ b .L7F055EE8 +/* 08A9F8 7F055EC8 AC201E7C */ sw $zero, %lo(gas_cutoff_flag)($at) +.L7F055ECC: +/* 08A9FC 7F055ECC 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 08AA00 7F055ED0 44819000 */ mtc1 $at, $f18 +/* 08AA04 7F055ED4 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08AA08 7F055ED8 240F0001 */ li $t7, 1 +/* 08AA0C 7F055EDC E4321E78 */ swc1 $f18, %lo(gas_damage_flag)($at) +/* 08AA10 7F055EE0 3C018007 */ lui $at, %hi(gas_cutoff_flag) +/* 08AA14 7F055EE4 AC2F1E7C */ sw $t7, %lo(gas_cutoff_flag)($at) +.L7F055EE8: +/* 08AA18 7F055EE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08AA1C 7F055EEC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08AA20 7F055EF0 03E00008 */ jr $ra +/* 08AA24 7F055EF4 00000000 */ nop +) +#endif + + + + + + +void check_deactivate_gas_sound(void) +{ + if ((ptr_gas_sound != 0) && (sfxGetArg0Unk3F(ptr_gas_sound) != 0)) { + sfxDeactivate(ptr_gas_sound); + } + return; +} + + + +//!FIXME +//Seriously why tf is this nopping: +///* 08AA74 7F055F44 00001025 */ move $v0, $zero +//it byte matches otherwise +#ifdef NONMATCHING +s32 check_if_toxic_gas_activated(void) +{ + if (0.0f < toxic_gas_sound_timer) { + return 1; + } + return ; +} +#else +GLOBAL_ASM( +.text +glabel check_if_toxic_gas_activated +/* 08AA68 7F055F38 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) +/* 08AA6C 7F055F3C C4260AC8 */ lwc1 $f6, %lo(toxic_gas_sound_timer)($at) +/* 08AA70 7F055F40 44802000 */ mtc1 $zero, $f4 +/* 08AA74 7F055F44 00001025 */ move $v0, $zero +/* 08AA78 7F055F48 4606203C */ c.lt.s $f4, $f6 +/* 08AA7C 7F055F4C 00000000 */ nop +/* 08AA80 7F055F50 45000002 */ bc1f .L7F055F5C +/* 08AA84 7F055F54 00000000 */ nop +/* 08AA88 7F055F58 24020001 */ li $v0, 1 +.L7F055F5C: +/* 08AA8C 7F055F5C 03E00008 */ jr $ra +/* 08AA90 7F055F60 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +extern s32 disable_player_pickups_flag; +void handle_gas_damage(void) +{ + if (activate_gas_sound_timer) + { + toxic_gas_sound_timer = toxic_gas_sound_timer + global_timer_delta; + if (gas_damage_flag <= toxic_gas_sound_timer) + { + toxic_gas_sound_timer = (f32) gas_damage_flag; + activate_gas_sound_timer = 0; + } + } + if (0.0f < toxic_gas_sound_timer) + { + if (disable_player_pickups_flag == 0) + { + switch_to_solosky2(toxic_gas_sound_timer / gas_damage_flag); + if (gas_cutoff_flag != 0) + { + if (D_80030ADC < (global_timer - 0xe1)) + { + D_80030ADC = (s32) global_timer; + if (600.0f <= toxic_gas_sound_timer) + { + play_sfx_a1(ptr_sfx_buf, 0x62, 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 + global_timer_delta); + if (ptr_gas_sound == 0) + { + if (get_controls_locked_flag(&ptr_gas_sound) == 0) + { + play_sfx_a1(ptr_sfx_buf, 0x66, &ptr_gas_sound); + } + } + if (ptr_gas_sound != 0) + { + sub_GAME_7F053A10(ptr_gas_sound, &D_80030AD0); + return; + } + } + else + { + if (ptr_gas_sound != 0) + { + if (sfxGetArg0Unk3F(ptr_gas_sound) != 0) + { + sfxDeactivate(ptr_gas_sound); + } + } + } + } + } + } +} +#else +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(global_timer_delta) +/* 08AABC 7F055F8C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($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(disable_player_pickups_flag) +/* 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(disable_player_pickups_flag)($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 switch_to_solosky2 +/* 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(global_timer) +/* 08AB48 7F056018 8C42837C */ lw $v0, %lo(global_timer)($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(ptr_sfx_buf) +/* 08AB74 7F056044 4600203E */ c.le.s $f4, $f0 +/* 08AB78 7F056048 24050062 */ li $a1, 98 +/* 08AB7C 7F05604C 00003025 */ move $a2, $zero +/* 08AB80 7F056050 45020006 */ bc1fl .L7F05606C +/* 08AB84 7F056054 3C0144E1 */ lui $at, 0x44e1 +/* 08AB88 7F056058 0C002382 */ jal play_sfx_a1 +/* 08AB8C 7F05605C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 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(global_timer_delta) +/* 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(global_timer_delta)($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 get_controls_locked_flag +/* 08AC18 7F0560E8 00000000 */ nop +/* 08AC1C 7F0560EC 14400006 */ bnez $v0, .L7F056108 +/* 08AC20 7F0560F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08AC24 7F0560F4 3C068003 */ lui $a2, %hi(ptr_gas_sound) +/* 08AC28 7F0560F8 24C60AE4 */ addiu $a2, %lo(ptr_gas_sound) # addiu $a2, $a2, 0xae4 +/* 08AC2C 7F0560FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08AC30 7F056100 0C002382 */ jal play_sfx_a1 +/* 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 sfxGetArg0Unk3F +/* 08AC6C 7F05613C 00000000 */ nop +/* 08AC70 7F056140 10400003 */ beqz $v0, .L7F056150 +/* 08AC74 7F056144 3C048003 */ lui $a0, %hi(ptr_gas_sound) +/* 08AC78 7F056148 0C002408 */ jal sfxDeactivate +/* 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 + + + + + + +void set_unset_clock_lock_bits(int clocklockbits,int flag) +{ + if (flag != 0) { + clock_drawn_flag &= ~clocklockbits; + return; + } + clock_drawn_flag |= clocklockbits; +} + +u32 is_clock_drawn_onscreen(void) +{ + return clock_drawn_flag == 0; +} + +void set_clock_time(f32 time) { + clock_time = time; +} + +f32 get_clock_time(void) { + return clock_time; +} + +void set_clock_enable(s32 enable) { + clock_enable = enable; +} + +s32 get_clock_enable(void) { + return clock_enable; +} + +void if_enabled_reset_clock(void) +{ + if (clock_enable != 0) { + clock_time = clock_time - global_timer_delta; + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F056210(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel sub_GAME_7F056210 +/* 08AD40 7F056210 3C0E8003 */ lui $t6, %hi(clock_drawn_flag) +/* 08AD44 7F056214 8DCE0AE8 */ lw $t6, %lo(clock_drawn_flag)($t6) +/* 08AD48 7F056218 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 08AD4C 7F05621C AFB10028 */ sw $s1, 0x28($sp) +/* 08AD50 7F056220 00808825 */ move $s1, $a0 +/* 08AD54 7F056224 AFBF002C */ sw $ra, 0x2c($sp) +/* 08AD58 7F056228 15C000EB */ bnez $t6, .L7F0565D8 +/* 08AD5C 7F05622C AFB00024 */ sw $s0, 0x24($sp) +/* 08AD60 7F056230 3C018003 */ lui $at, %hi(clock_time) +/* 08AD64 7F056234 C4220AF0 */ lwc1 $f2, %lo(clock_time)($at) +/* 08AD68 7F056238 44802000 */ mtc1 $zero, $f4 +/* 08AD6C 7F05623C 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 08AD70 7F056240 44813000 */ mtc1 $at, $f6 +/* 08AD74 7F056244 4604103C */ c.lt.s $f2, $f4 +/* 08AD78 7F056248 00000000 */ nop +/* 08AD7C 7F05624C 45020003 */ bc1fl .L7F05625C +/* 08AD80 7F056250 46061303 */ div.s $f12, $f2, $f6 +/* 08AD84 7F056254 46001087 */ neg.s $f2, $f2 +/* 08AD88 7F056258 46061303 */ div.s $f12, $f2, $f6 +.L7F05625C: +/* 08AD8C 7F05625C 0FC170D8 */ jal truncf +/* 08AD90 7F056260 E7A20030 */ swc1 $f2, 0x30($sp) +/* 08AD94 7F056264 4600020D */ trunc.w.s $f8, $f0 +/* 08AD98 7F056268 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 08AD9C 7F05626C C7A20030 */ lwc1 $f2, 0x30($sp) +/* 08ADA0 7F056270 44815000 */ mtc1 $at, $f10 +/* 08ADA4 7F056274 44184000 */ mfc1 $t8, $f8 +/* 08ADA8 7F056278 460A1303 */ div.s $f12, $f2, $f10 +/* 08ADAC 7F05627C 0FC170D8 */ jal truncf +/* 08ADB0 7F056280 AFB80044 */ sw $t8, 0x44($sp) +/* 08ADB4 7F056284 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 08ADB8 7F056288 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 08ADBC 7F05628C 44819000 */ mtc1 $at, $f18 +/* 08ADC0 7F056290 4600040D */ trunc.w.s $f16, $f0 +/* 08ADC4 7F056294 8FA90044 */ lw $t1, 0x44($sp) +/* 08ADC8 7F056298 46121102 */ mul.s $f4, $f2, $f18 +/* 08ADCC 7F05629C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 08ADD0 7F0562A0 44088000 */ mfc1 $t0, $f16 +/* 08ADD4 7F0562A4 00095100 */ sll $t2, $t1, 4 +/* 08ADD8 7F0562A8 01495023 */ subu $t2, $t2, $t1 +/* 08ADDC 7F0562AC 44813000 */ mtc1 $at, $f6 +/* 08ADE0 7F0562B0 000A5080 */ sll $t2, $t2, 2 +/* 08ADE4 7F0562B4 010A5823 */ subu $t3, $t0, $t2 +/* 08ADE8 7F0562B8 AFAB0040 */ sw $t3, 0x40($sp) +/* 08ADEC 7F0562BC 0FC170D8 */ jal truncf +/* 08ADF0 7F0562C0 46062303 */ div.s $f12, $f4, $f6 +/* 08ADF4 7F0562C4 8FAE0044 */ lw $t6, 0x44($sp) +/* 08ADF8 7F0562C8 4600020D */ trunc.w.s $f8, $f0 +/* 08ADFC 7F0562CC 8FB90040 */ lw $t9, 0x40($sp) +/* 08AE00 7F0562D0 000E7880 */ sll $t7, $t6, 2 +/* 08AE04 7F0562D4 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE08 7F0562D8 000F7900 */ sll $t7, $t7, 4 +/* 08AE0C 7F0562DC 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE10 7F0562E0 00194880 */ sll $t1, $t9, 2 +/* 08AE14 7F0562E4 440D4000 */ mfc1 $t5, $f8 +/* 08AE18 7F0562E8 000F78C0 */ sll $t7, $t7, 3 +/* 08AE1C 7F0562EC 01394823 */ subu $t1, $t1, $t9 +/* 08AE20 7F0562F0 000948C0 */ sll $t1, $t1, 3 +/* 08AE24 7F0562F4 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE28 7F0562F8 000F7900 */ sll $t7, $t7, 4 +/* 08AE2C 7F0562FC 01394821 */ addu $t1, $t1, $t9 +/* 08AE30 7F056300 00094880 */ sll $t1, $t1, 2 +/* 08AE34 7F056304 01AFC023 */ subu $t8, $t5, $t7 +/* 08AE38 7F056308 03094023 */ subu $t0, $t8, $t1 +/* 08AE3C 7F05630C AFA8003C */ sw $t0, 0x3c($sp) +/* 08AE40 7F056310 0FC2B366 */ jal microcode_constructor +/* 08AE44 7F056314 02202025 */ move $a0, $s1 +/* 08AE48 7F056318 0C001149 */ jal get_video2_settings_uly +/* 08AE4C 7F05631C 00408825 */ move $s1, $v0 +/* 08AE50 7F056320 00028400 */ sll $s0, $v0, 0x10 +/* 08AE54 7F056324 00105403 */ sra $t2, $s0, 0x10 +/* 08AE58 7F056328 0C00112B */ jal get_video2_settings_height +/* 08AE5C 7F05632C 01408025 */ move $s0, $t2 +/* 08AE60 7F056330 8FA50044 */ lw $a1, 0x44($sp) +/* 08AE64 7F056334 24010064 */ li $at, 100 +/* 08AE68 7F056338 00507021 */ addu $t6, $v0, $s0 +/* 08AE6C 7F05633C 00A1001A */ div $zero, $a1, $at +/* 08AE70 7F056340 00005810 */ mfhi $t3 +/* 08AE74 7F056344 2401000A */ li $at, 10 +/* 08AE78 7F056348 25CDFFEE */ addiu $t5, $t6, -0x12 +/* 08AE7C 7F05634C 0161001A */ div $zero, $t3, $at +/* 08AE80 7F056350 00002812 */ mflo $a1 +/* 08AE84 7F056354 240F0002 */ li $t7, 2 +/* 08AE88 7F056358 24190001 */ li $t9, 1 +/* 08AE8C 7F05635C AFB90018 */ sw $t9, 0x18($sp) +/* 08AE90 7F056360 AFAF0014 */ sw $t7, 0x14($sp) +/* 08AE94 7F056364 AFAD0010 */ sw $t5, 0x10($sp) +/* 08AE98 7F056368 02202025 */ move $a0, $s1 +/* 08AE9C 7F05636C 24060082 */ li $a2, 130 +/* 08AEA0 7F056370 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AEA4 7F056374 24070002 */ li $a3, 2 +/* 08AEA8 7F056378 0C001149 */ jal get_video2_settings_uly +/* 08AEAC 7F05637C 00408825 */ move $s1, $v0 +/* 08AEB0 7F056380 00028400 */ sll $s0, $v0, 0x10 +/* 08AEB4 7F056384 0010C403 */ sra $t8, $s0, 0x10 +/* 08AEB8 7F056388 0C00112B */ jal get_video2_settings_height +/* 08AEBC 7F05638C 03008025 */ move $s0, $t8 +/* 08AEC0 7F056390 8FA50044 */ lw $a1, 0x44($sp) +/* 08AEC4 7F056394 2401000A */ li $at, 10 +/* 08AEC8 7F056398 00504021 */ addu $t0, $v0, $s0 +/* 08AECC 7F05639C 00A1001A */ div $zero, $a1, $at +/* 08AED0 7F0563A0 00002810 */ mfhi $a1 +/* 08AED4 7F0563A4 250AFFEE */ addiu $t2, $t0, -0x12 +/* 08AED8 7F0563A8 240B0002 */ li $t3, 2 +/* 08AEDC 7F0563AC 240C0001 */ li $t4, 1 +/* 08AEE0 7F0563B0 AFAC0018 */ sw $t4, 0x18($sp) +/* 08AEE4 7F0563B4 AFAB0014 */ sw $t3, 0x14($sp) +/* 08AEE8 7F0563B8 AFAA0010 */ sw $t2, 0x10($sp) +/* 08AEEC 7F0563BC 02202025 */ move $a0, $s1 +/* 08AEF0 7F0563C0 2406008A */ li $a2, 138 +/* 08AEF4 7F0563C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AEF8 7F0563C8 24070002 */ li $a3, 2 +/* 08AEFC 7F0563CC 0C001149 */ jal get_video2_settings_uly +/* 08AF00 7F0563D0 00408825 */ move $s1, $v0 +/* 08AF04 7F0563D4 00028400 */ sll $s0, $v0, 0x10 +/* 08AF08 7F0563D8 00107403 */ sra $t6, $s0, 0x10 +/* 08AF0C 7F0563DC 0C00112B */ jal get_video2_settings_height +/* 08AF10 7F0563E0 01C08025 */ move $s0, $t6 +/* 08AF14 7F0563E4 00506821 */ addu $t5, $v0, $s0 +/* 08AF18 7F0563E8 25AFFFEE */ addiu $t7, $t5, -0x12 +/* 08AF1C 7F0563EC 3C058005 */ lui $a1, %hi(D_80052A44) +/* 08AF20 7F0563F0 24190002 */ li $t9, 2 +/* 08AF24 7F0563F4 24180001 */ li $t8, 1 +/* 08AF28 7F0563F8 AFB80018 */ sw $t8, 0x18($sp) +/* 08AF2C 7F0563FC AFB90014 */ sw $t9, 0x14($sp) +/* 08AF30 7F056400 24A52A44 */ addiu $a1, %lo(D_80052A44) # addiu $a1, $a1, 0x2a44 +/* 08AF34 7F056404 AFAF0010 */ sw $t7, 0x10($sp) +/* 08AF38 7F056408 02202025 */ move $a0, $s1 +/* 08AF3C 7F05640C 24060093 */ li $a2, 147 +/* 08AF40 7F056410 0FC1A694 */ jal some_kind_of_display_routine +/* 08AF44 7F056414 24070002 */ li $a3, 2 +/* 08AF48 7F056418 0C001149 */ jal get_video2_settings_uly +/* 08AF4C 7F05641C 00408825 */ move $s1, $v0 +/* 08AF50 7F056420 00028400 */ sll $s0, $v0, 0x10 +/* 08AF54 7F056424 00104C03 */ sra $t1, $s0, 0x10 +/* 08AF58 7F056428 0C00112B */ jal get_video2_settings_height +/* 08AF5C 7F05642C 01208025 */ move $s0, $t1 +/* 08AF60 7F056430 8FA50040 */ lw $a1, 0x40($sp) +/* 08AF64 7F056434 2401003C */ li $at, 60 +/* 08AF68 7F056438 00505821 */ addu $t3, $v0, $s0 +/* 08AF6C 7F05643C 00A1001A */ div $zero, $a1, $at +/* 08AF70 7F056440 00004010 */ mfhi $t0 +/* 08AF74 7F056444 2401000A */ li $at, 10 +/* 08AF78 7F056448 256CFFEE */ addiu $t4, $t3, -0x12 +/* 08AF7C 7F05644C 0101001A */ div $zero, $t0, $at +/* 08AF80 7F056450 00002812 */ mflo $a1 +/* 08AF84 7F056454 240E0002 */ li $t6, 2 +/* 08AF88 7F056458 240D0001 */ li $t5, 1 +/* 08AF8C 7F05645C AFAD0018 */ sw $t5, 0x18($sp) +/* 08AF90 7F056460 AFAE0014 */ sw $t6, 0x14($sp) +/* 08AF94 7F056464 AFAC0010 */ sw $t4, 0x10($sp) +/* 08AF98 7F056468 02202025 */ move $a0, $s1 +/* 08AF9C 7F05646C 2406009C */ li $a2, 156 +/* 08AFA0 7F056470 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AFA4 7F056474 24070002 */ li $a3, 2 +/* 08AFA8 7F056478 0C001149 */ jal get_video2_settings_uly +/* 08AFAC 7F05647C 00408825 */ move $s1, $v0 +/* 08AFB0 7F056480 00028400 */ sll $s0, $v0, 0x10 +/* 08AFB4 7F056484 00107C03 */ sra $t7, $s0, 0x10 +/* 08AFB8 7F056488 0C00112B */ jal get_video2_settings_height +/* 08AFBC 7F05648C 01E08025 */ move $s0, $t7 +/* 08AFC0 7F056490 8FA50040 */ lw $a1, 0x40($sp) +/* 08AFC4 7F056494 2401000A */ li $at, 10 +/* 08AFC8 7F056498 0050C021 */ addu $t8, $v0, $s0 +/* 08AFCC 7F05649C 00A1001A */ div $zero, $a1, $at +/* 08AFD0 7F0564A0 00002810 */ mfhi $a1 +/* 08AFD4 7F0564A4 2709FFEE */ addiu $t1, $t8, -0x12 +/* 08AFD8 7F0564A8 24080002 */ li $t0, 2 +/* 08AFDC 7F0564AC 240A0001 */ li $t2, 1 +/* 08AFE0 7F0564B0 AFAA0018 */ sw $t2, 0x18($sp) +/* 08AFE4 7F0564B4 AFA80014 */ sw $t0, 0x14($sp) +/* 08AFE8 7F0564B8 AFA90010 */ sw $t1, 0x10($sp) +/* 08AFEC 7F0564BC 02202025 */ move $a0, $s1 +/* 08AFF0 7F0564C0 240600A4 */ li $a2, 164 +/* 08AFF4 7F0564C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AFF8 7F0564C8 24070002 */ li $a3, 2 +/* 08AFFC 7F0564CC 0C001149 */ jal get_video2_settings_uly +/* 08B000 7F0564D0 00408825 */ move $s1, $v0 +/* 08B004 7F0564D4 00028400 */ sll $s0, $v0, 0x10 +/* 08B008 7F0564D8 00105C03 */ sra $t3, $s0, 0x10 +/* 08B00C 7F0564DC 0C00112B */ jal get_video2_settings_height +/* 08B010 7F0564E0 01608025 */ move $s0, $t3 +/* 08B014 7F0564E4 00506021 */ addu $t4, $v0, $s0 +/* 08B018 7F0564E8 258EFFEE */ addiu $t6, $t4, -0x12 +/* 08B01C 7F0564EC 3C058005 */ lui $a1, %hi(D_80052A44) +/* 08B020 7F0564F0 240D0002 */ li $t5, 2 +/* 08B024 7F0564F4 240F0001 */ li $t7, 1 +/* 08B028 7F0564F8 AFAF0018 */ sw $t7, 0x18($sp) +/* 08B02C 7F0564FC AFAD0014 */ sw $t5, 0x14($sp) +/* 08B030 7F056500 24A52A44 */ addiu $a1, %lo(D_80052A44) # addiu $a1, $a1, 0x2a44 +/* 08B034 7F056504 AFAE0010 */ sw $t6, 0x10($sp) +/* 08B038 7F056508 02202025 */ move $a0, $s1 +/* 08B03C 7F05650C 240600AD */ li $a2, 173 +/* 08B040 7F056510 0FC1A694 */ jal some_kind_of_display_routine +/* 08B044 7F056514 24070002 */ li $a3, 2 +/* 08B048 7F056518 0C001149 */ jal get_video2_settings_uly +/* 08B04C 7F05651C 00408825 */ move $s1, $v0 +/* 08B050 7F056520 00028400 */ sll $s0, $v0, 0x10 +/* 08B054 7F056524 0010CC03 */ sra $t9, $s0, 0x10 +/* 08B058 7F056528 0C00112B */ jal get_video2_settings_height +/* 08B05C 7F05652C 03208025 */ move $s0, $t9 +/* 08B060 7F056530 8FA5003C */ lw $a1, 0x3c($sp) +/* 08B064 7F056534 24010064 */ li $at, 100 +/* 08B068 7F056538 00504021 */ addu $t0, $v0, $s0 +/* 08B06C 7F05653C 00A1001A */ div $zero, $a1, $at +/* 08B070 7F056540 0000C010 */ mfhi $t8 +/* 08B074 7F056544 2401000A */ li $at, 10 +/* 08B078 7F056548 250AFFEE */ addiu $t2, $t0, -0x12 +/* 08B07C 7F05654C 0301001A */ div $zero, $t8, $at +/* 08B080 7F056550 00002812 */ mflo $a1 +/* 08B084 7F056554 240B0002 */ li $t3, 2 +/* 08B088 7F056558 240C0001 */ li $t4, 1 +/* 08B08C 7F05655C AFAC0018 */ sw $t4, 0x18($sp) +/* 08B090 7F056560 AFAB0014 */ sw $t3, 0x14($sp) +/* 08B094 7F056564 AFAA0010 */ sw $t2, 0x10($sp) +/* 08B098 7F056568 02202025 */ move $a0, $s1 +/* 08B09C 7F05656C 240600B6 */ li $a2, 182 +/* 08B0A0 7F056570 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08B0A4 7F056574 24070002 */ li $a3, 2 +/* 08B0A8 7F056578 0C001149 */ jal get_video2_settings_uly +/* 08B0AC 7F05657C 00408825 */ move $s1, $v0 +/* 08B0B0 7F056580 00028400 */ sll $s0, $v0, 0x10 +/* 08B0B4 7F056584 00107403 */ sra $t6, $s0, 0x10 +/* 08B0B8 7F056588 0C00112B */ jal get_video2_settings_height +/* 08B0BC 7F05658C 01C08025 */ move $s0, $t6 +/* 08B0C0 7F056590 8FA5003C */ lw $a1, 0x3c($sp) +/* 08B0C4 7F056594 2401000A */ li $at, 10 +/* 08B0C8 7F056598 00507821 */ addu $t7, $v0, $s0 +/* 08B0CC 7F05659C 00A1001A */ div $zero, $a1, $at +/* 08B0D0 7F0565A0 00002810 */ mfhi $a1 +/* 08B0D4 7F0565A4 25F9FFEE */ addiu $t9, $t7, -0x12 +/* 08B0D8 7F0565A8 24180002 */ li $t8, 2 +/* 08B0DC 7F0565AC 24090001 */ li $t1, 1 +/* 08B0E0 7F0565B0 AFA90018 */ sw $t1, 0x18($sp) +/* 08B0E4 7F0565B4 AFB80014 */ sw $t8, 0x14($sp) +/* 08B0E8 7F0565B8 AFB90010 */ sw $t9, 0x10($sp) +/* 08B0EC 7F0565BC 02202025 */ move $a0, $s1 +/* 08B0F0 7F0565C0 240600BE */ li $a2, 190 +/* 08B0F4 7F0565C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08B0F8 7F0565C8 24070002 */ li $a3, 2 +/* 08B0FC 7F0565CC 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 08B100 7F0565D0 00402025 */ move $a0, $v0 +/* 08B104 7F0565D4 00408825 */ move $s1, $v0 +.L7F0565D8: +/* 08B108 7F0565D8 8FBF002C */ lw $ra, 0x2c($sp) +/* 08B10C 7F0565DC 02201025 */ move $v0, $s1 +/* 08B110 7F0565E0 8FB10028 */ lw $s1, 0x28($sp) +/* 08B114 7F0565E4 8FB00024 */ lw $s0, 0x24($sp) +/* 08B118 7F0565E8 03E00008 */ jr $ra +/* 08B11C 7F0565EC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +void handle_alarm_gas_timer_calldamage(void) +{ + if (is_alarm_on() != 0) { + if ((ptr_alarm_sfx == 0) && (get_controls_locked_flag() == 0)) { + play_sfx_a1(ptr_sfx_buf,0xa3,&ptr_alarm_sfx); + } + alarm_timer = alarm_timer + clock_timer; + if (0x708 < alarm_timer) { + stop_alarm(); + } + } + handle_gas_damage(); + if_enabled_reset_clock(); + check_guard_detonate_proxmine(); + D_80030AF4 = 0; + return; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056690(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056690 +/* 08B1C0 7F056690 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08B1C4 7F056694 AFBF002C */ sw $ra, 0x2c($sp) +/* 08B1C8 7F056698 AFB40028 */ sw $s4, 0x28($sp) +/* 08B1CC 7F05669C AFB30024 */ sw $s3, 0x24($sp) +/* 08B1D0 7F0566A0 AFB20020 */ sw $s2, 0x20($sp) +/* 08B1D4 7F0566A4 AFB1001C */ sw $s1, 0x1c($sp) +/* 08B1D8 7F0566A8 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 08B1DC 7F0566AC AFB00018 */ sw $s0, 0x18($sp) +/* 08B1E0 7F0566B0 1040002A */ beqz $v0, .L7F05675C +/* 08B1E4 7F0566B4 00409025 */ move $s2, $v0 +/* 08B1E8 7F0566B8 24140001 */ li $s4, 1 +/* 08B1EC 7F0566BC 924E0000 */ lbu $t6, ($s2) +.L7F0566C0: +/* 08B1F0 7F0566C0 568E0024 */ bnel $s4, $t6, .L7F056754 +/* 08B1F4 7F0566C4 8E520024 */ lw $s2, 0x24($s2) +/* 08B1F8 7F0566C8 924F0001 */ lbu $t7, 1($s2) +/* 08B1FC 7F0566CC 31F80002 */ andi $t8, $t7, 2 +/* 08B200 7F0566D0 57000020 */ bnezl $t8, .L7F056754 +/* 08B204 7F0566D4 8E520024 */ lw $s2, 0x24($s2) +/* 08B208 7F0566D8 8E510004 */ lw $s1, 4($s2) +/* 08B20C 7F0566DC 92390002 */ lbu $t9, 2($s1) +/* 08B210 7F0566E0 02202025 */ move $a0, $s1 +/* 08B214 7F0566E4 33280080 */ andi $t0, $t9, 0x80 +/* 08B218 7F0566E8 5100001A */ beql $t0, $zero, .L7F056754 +/* 08B21C 7F0566EC 8E520024 */ lw $s2, 0x24($s2) +/* 08B220 7F0566F0 0FC12D1E */ jal sub_GAME_7F04B478 +/* 08B224 7F0566F4 8E330014 */ lw $s3, 0x14($s1) +/* 08B228 7F0566F8 10400018 */ beqz $v0, .L7F05675C +/* 08B22C 7F0566FC 00402825 */ move $a1, $v0 +/* 08B230 7F056700 8C500004 */ lw $s0, 4($v0) +/* 08B234 7F056704 52000016 */ beql $s0, $zero, .L7F056760 +/* 08B238 7F056708 8FBF002C */ lw $ra, 0x2c($sp) +/* 08B23C 7F05670C 8E290014 */ lw $t1, 0x14($s1) +/* 08B240 7F056710 0FC12D64 */ jal sub_GAME_7F04B590 +/* 08B244 7F056714 8D240008 */ lw $a0, 8($t1) +/* 08B248 7F056718 5040000E */ beql $v0, $zero, .L7F056754 +/* 08B24C 7F05671C 8E520024 */ lw $s2, 0x24($s2) +/* 08B250 7F056720 960B001A */ lhu $t3, 0x1a($s0) +/* 08B254 7F056724 8E6A0010 */ lw $t2, 0x10($s3) +/* 08B258 7F056728 8E0D0008 */ lw $t5, 8($s0) +/* 08B25C 7F05672C 000B6080 */ sll $t4, $t3, 2 +/* 08B260 7F056730 014C1021 */ addu $v0, $t2, $t4 +/* 08B264 7F056734 8C4E0000 */ lw $t6, ($v0) +/* 08B268 7F056738 11AE0005 */ beq $t5, $t6, .L7F056750 +/* 08B26C 7F05673C 02202025 */ move $a0, $s1 +/* 08B270 7F056740 0FC10409 */ jal sub_GAME_7F041024 +/* 08B274 7F056744 24050001 */ li $a1, 1 +/* 08B278 7F056748 10000005 */ b .L7F056760 +/* 08B27C 7F05674C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F056750: +/* 08B280 7F056750 8E520024 */ lw $s2, 0x24($s2) +.L7F056754: +/* 08B284 7F056754 5640FFDA */ bnezl $s2, .L7F0566C0 +/* 08B288 7F056758 924E0000 */ lbu $t6, ($s2) +.L7F05675C: +/* 08B28C 7F05675C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F056760: +/* 08B290 7F056760 8FB00018 */ lw $s0, 0x18($sp) +/* 08B294 7F056764 8FB1001C */ lw $s1, 0x1c($sp) +/* 08B298 7F056768 8FB20020 */ lw $s2, 0x20($sp) +/* 08B29C 7F05676C 8FB30024 */ lw $s3, 0x24($sp) +/* 08B2A0 7F056770 8FB40028 */ lw $s4, 0x28($sp) +/* 08B2A4 7F056774 03E00008 */ jr $ra +/* 08B2A8 7F056778 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void drop_inventory(void) { + +} +#else +GLOBAL_ASM( +.text +glabel drop_inventory +/* 08B2AC 7F05677C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 08B2B0 7F056780 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 08B2B4 7F056784 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 08B2B8 7F056788 AFBF0034 */ sw $ra, 0x34($sp) +/* 08B2BC 7F05678C AFB40030 */ sw $s4, 0x30($sp) +/* 08B2C0 7F056790 AFB3002C */ sw $s3, 0x2c($sp) +/* 08B2C4 7F056794 AFB20028 */ sw $s2, 0x28($sp) +/* 08B2C8 7F056798 AFB10024 */ sw $s1, 0x24($sp) +/* 08B2CC 7F05679C AFB00020 */ sw $s0, 0x20($sp) +/* 08B2D0 7F0567A0 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 08B2D4 7F0567A4 00002825 */ move $a1, $zero +/* 08B2D8 7F0567A8 8DF20004 */ lw $s2, 4($t7) +/* 08B2DC 7F0567AC 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 08B2E0 7F0567B0 02402025 */ move $a0, $s2 +/* 08B2E4 7F0567B4 02402025 */ move $a0, $s2 +/* 08B2E8 7F0567B8 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 08B2EC 7F0567BC 24050001 */ li $a1, 1 +/* 08B2F0 7F0567C0 24100001 */ li $s0, 1 +/* 08B2F4 7F0567C4 24140059 */ li $s4, 89 +/* 08B2F8 7F0567C8 3C132000 */ lui $s3, 0x2000 +.L7F0567CC: +/* 08B2FC 7F0567CC 0FC26C91 */ jal sub_GAME_7F09B244 +/* 08B300 7F0567D0 02002025 */ move $a0, $s0 +/* 08B304 7F0567D4 04400012 */ bltz $v0, .L7F056820 +/* 08B308 7F0567D8 00408825 */ move $s1, $v0 +/* 08B30C 7F0567DC 0FC230C5 */ jal is_weapon_in_inv +/* 08B310 7F0567E0 02002025 */ move $a0, $s0 +/* 08B314 7F0567E4 1040000E */ beqz $v0, .L7F056820 +/* 08B318 7F0567E8 02402025 */ move $a0, $s2 +/* 08B31C 7F0567EC 02202825 */ move $a1, $s1 +/* 08B320 7F0567F0 02003025 */ move $a2, $s0 +/* 08B324 7F0567F4 02603825 */ move $a3, $s3 +/* 08B328 7F0567F8 AFA00010 */ sw $zero, 0x10($sp) +/* 08B32C 7F0567FC 0FC14885 */ jal something_with_generating_object +/* 08B330 7F056800 AFA00014 */ sw $zero, 0x14($sp) +/* 08B334 7F056804 10400006 */ beqz $v0, .L7F056820 +/* 08B338 7F056808 00408825 */ move $s1, $v0 +/* 08B33C 7F05680C 00402025 */ move $a0, $v0 +/* 08B340 7F056810 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 08B344 7F056814 24050001 */ li $a1, 1 +/* 08B348 7F056818 0FC1304C */ jal sub_GAME_7F04C130 +/* 08B34C 7F05681C 02202025 */ move $a0, $s1 +.L7F056820: +/* 08B350 7F056820 26100001 */ addiu $s0, $s0, 1 +/* 08B354 7F056824 1614FFE9 */ bne $s0, $s4, .L7F0567CC +/* 08B358 7F056828 00000000 */ nop +/* 08B35C 7F05682C 8FBF0034 */ lw $ra, 0x34($sp) +/* 08B360 7F056830 8FB00020 */ lw $s0, 0x20($sp) +/* 08B364 7F056834 8FB10024 */ lw $s1, 0x24($sp) +/* 08B368 7F056838 8FB20028 */ lw $s2, 0x28($sp) +/* 08B36C 7F05683C 8FB3002C */ lw $s3, 0x2c($sp) +/* 08B370 7F056840 8FB40030 */ lw $s4, 0x30($sp) +/* 08B374 7F056844 03E00008 */ jr $ra +/* 08B378 7F056848 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + diff --git a/src/game/cleanupSFXRelated.c b/src/game/cleanupSFXRelated.c new file mode 100644 index 0000000..e5ac9e7 --- /dev/null +++ b/src/game/cleanupSFXRelated.c @@ -0,0 +1,21 @@ +#include "ultra64.h" +#include "game/bond.h" + +void cleanupSFXRelated(void) { + if (SFX_80036458 != 0) + { + if (sfxGetArg0Unk3F(SFX_80036458) != 0) + { + sfxDeactivate(SFX_80036458); + } + } + + if (SFX_8003645C != 0) + { + if (sfxGetArg0Unk3F(SFX_8003645C) != 0) + { + sfxDeactivate(SFX_8003645C); + } + } + +} \ No newline at end of file diff --git a/src/game/cleanup_alarms.c b/src/game/cleanup_alarms.c new file mode 100644 index 0000000..e9891c8 --- /dev/null +++ b/src/game/cleanup_alarms.c @@ -0,0 +1,11 @@ +#include "ultra64.h" +#include "game/chrai.h" +#include "game/cleanup_alarms.h" + + +void cleanupAlarms(void) { + stop_alarm(); + check_deactivate_gas_sound(); +} + + diff --git a/src/game/cleanup_alarms.h b/src/game/cleanup_alarms.h new file mode 100644 index 0000000..3f4524a --- /dev/null +++ b/src/game/cleanup_alarms.h @@ -0,0 +1,6 @@ +#ifndef _CLEANUP_ALARMS_H_ +#define _CLEANUP_ALARMS_H_ +#include "ultra64.h" + +void cleanupAlarms(void); +#endif diff --git a/src/game/cleanup_objectives.c b/src/game/cleanup_objectives.c new file mode 100644 index 0000000..3cbde87 --- /dev/null +++ b/src/game/cleanup_objectives.c @@ -0,0 +1,113 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupObjectives(s32 stage) { + +} +#else +GLOBAL_ASM( +.text +glabel cleanupObjectives +/* 03C0C0 7F007590 3C028007 */ lui $v0, %hi(objective_ptrs) +/* 03C0C4 7F007594 8C425D30 */ lw $v0, %lo(objective_ptrs)($v0) +/* 03C0C8 7F007598 3C048007 */ lui $a0, %hi(objective_ptrs+8) +/* 03C0CC 7F00759C 24845D38 */ addiu $a0, %lo(objective_ptrs+8) # addiu $a0, $a0, 0x5d38 +/* 03C0D0 7F0075A0 1040000C */ beqz $v0, .L7F0075D4 +/* 03C0D4 7F0075A4 24030008 */ li $v1, 8 +/* 03C0D8 7F0075A8 904E000E */ lbu $t6, 0xe($v0) +/* 03C0DC 7F0075AC 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075D58) +/* 03C0E0 7F0075B0 31CF0001 */ andi $t7, $t6, 1 +/* 03C0E4 7F0075B4 11E00007 */ beqz $t7, .L7F0075D4 +/* 03C0E8 7F0075B8 00000000 */ nop +/* 03C0EC 7F0075BC 8F185D58 */ lw $t8, %lo(dword_CODE_bss_80075D58)($t8) +/* 03C0F0 7F0075C0 24050002 */ li $a1, 2 +/* 03C0F4 7F0075C4 24190001 */ li $t9, 1 +/* 03C0F8 7F0075C8 10B80002 */ beq $a1, $t8, .L7F0075D4 +/* 03C0FC 7F0075CC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) +/* 03C100 7F0075D0 AC395D58 */ sw $t9, %lo(dword_CODE_bss_80075D58)($at) +.L7F0075D4: +/* 03C104 7F0075D4 3C028007 */ lui $v0, %hi(objective_ptrs+4) +/* 03C108 7F0075D8 8C425D34 */ lw $v0, %lo(objective_ptrs+4)($v0) +/* 03C10C 7F0075DC 3C088007 */ lui $t0, %hi(dword_CODE_bss_80075D58) +/* 03C110 7F0075E0 25085D58 */ addiu $t0, %lo(dword_CODE_bss_80075D58) # addiu $t0, $t0, 0x5d58 +/* 03C114 7F0075E4 1040000C */ beqz $v0, .L7F007618 +/* 03C118 7F0075E8 24050002 */ li $a1, 2 +/* 03C11C 7F0075EC 9049000E */ lbu $t1, 0xe($v0) +/* 03C120 7F0075F0 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075D5C) +/* 03C124 7F0075F4 312A0001 */ andi $t2, $t1, 1 +/* 03C128 7F0075F8 11400007 */ beqz $t2, .L7F007618 +/* 03C12C 7F0075FC 00000000 */ nop +/* 03C130 7F007600 8D6B5D5C */ lw $t3, %lo(dword_CODE_bss_80075D5C)($t3) +/* 03C134 7F007604 240C0001 */ li $t4, 1 +/* 03C138 7F007608 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) +/* 03C13C 7F00760C 10AB0002 */ beq $a1, $t3, .L7F007618 +/* 03C140 7F007610 00000000 */ nop +/* 03C144 7F007614 AC2C5D5C */ sw $t4, %lo(dword_CODE_bss_80075D5C)($at) +.L7F007618: +/* 03C148 7F007618 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075D58) +/* 03C14C 7F00761C 24C65D58 */ addiu $a2, %lo(dword_CODE_bss_80075D58) # addiu $a2, $a2, 0x5d58 +/* 03C150 7F007620 24070001 */ li $a3, 1 +.L7F007624: +/* 03C154 7F007624 8C820000 */ lw $v0, ($a0) +/* 03C158 7F007628 5040000B */ beql $v0, $zero, .L7F007658 +/* 03C15C 7F00762C 8C820004 */ lw $v0, 4($a0) +/* 03C160 7F007630 904D000E */ lbu $t5, 0xe($v0) +/* 03C164 7F007634 00C31021 */ addu $v0, $a2, $v1 +/* 03C168 7F007638 31AE0001 */ andi $t6, $t5, 1 +/* 03C16C 7F00763C 51C00006 */ beql $t6, $zero, .L7F007658 +/* 03C170 7F007640 8C820004 */ lw $v0, 4($a0) +/* 03C174 7F007644 8C4F0000 */ lw $t7, ($v0) +/* 03C178 7F007648 50AF0003 */ beql $a1, $t7, .L7F007658 +/* 03C17C 7F00764C 8C820004 */ lw $v0, 4($a0) +/* 03C180 7F007650 AC470000 */ sw $a3, ($v0) +/* 03C184 7F007654 8C820004 */ lw $v0, 4($a0) +.L7F007658: +/* 03C188 7F007658 5040000B */ beql $v0, $zero, .L7F007688 +/* 03C18C 7F00765C 8C820008 */ lw $v0, 8($a0) +/* 03C190 7F007660 9058000E */ lbu $t8, 0xe($v0) +/* 03C194 7F007664 00C31021 */ addu $v0, $a2, $v1 +/* 03C198 7F007668 33190001 */ andi $t9, $t8, 1 +/* 03C19C 7F00766C 53200006 */ beql $t9, $zero, .L7F007688 +/* 03C1A0 7F007670 8C820008 */ lw $v0, 8($a0) +/* 03C1A4 7F007674 8C490004 */ lw $t1, 4($v0) +/* 03C1A8 7F007678 50A90003 */ beql $a1, $t1, .L7F007688 +/* 03C1AC 7F00767C 8C820008 */ lw $v0, 8($a0) +/* 03C1B0 7F007680 AC470004 */ sw $a3, 4($v0) +/* 03C1B4 7F007684 8C820008 */ lw $v0, 8($a0) +.L7F007688: +/* 03C1B8 7F007688 5040000B */ beql $v0, $zero, .L7F0076B8 +/* 03C1BC 7F00768C 8C82000C */ lw $v0, 0xc($a0) +/* 03C1C0 7F007690 904A000E */ lbu $t2, 0xe($v0) +/* 03C1C4 7F007694 00C31021 */ addu $v0, $a2, $v1 +/* 03C1C8 7F007698 314B0001 */ andi $t3, $t2, 1 +/* 03C1CC 7F00769C 51600006 */ beql $t3, $zero, .L7F0076B8 +/* 03C1D0 7F0076A0 8C82000C */ lw $v0, 0xc($a0) +/* 03C1D4 7F0076A4 8C4C0008 */ lw $t4, 8($v0) +/* 03C1D8 7F0076A8 50AC0003 */ beql $a1, $t4, .L7F0076B8 +/* 03C1DC 7F0076AC 8C82000C */ lw $v0, 0xc($a0) +/* 03C1E0 7F0076B0 AC470008 */ sw $a3, 8($v0) +/* 03C1E4 7F0076B4 8C82000C */ lw $v0, 0xc($a0) +.L7F0076B8: +/* 03C1E8 7F0076B8 24840010 */ addiu $a0, $a0, 0x10 +/* 03C1EC 7F0076BC 1040000A */ beqz $v0, .L7F0076E8 +/* 03C1F0 7F0076C0 00000000 */ nop +/* 03C1F4 7F0076C4 904D000E */ lbu $t5, 0xe($v0) +/* 03C1F8 7F0076C8 00C31021 */ addu $v0, $a2, $v1 +/* 03C1FC 7F0076CC 31AE0001 */ andi $t6, $t5, 1 +/* 03C200 7F0076D0 11C00005 */ beqz $t6, .L7F0076E8 +/* 03C204 7F0076D4 00000000 */ nop +/* 03C208 7F0076D8 8C4F000C */ lw $t7, 0xc($v0) +/* 03C20C 7F0076DC 10AF0002 */ beq $a1, $t7, .L7F0076E8 +/* 03C210 7F0076E0 00000000 */ nop +/* 03C214 7F0076E4 AC47000C */ sw $a3, 0xc($v0) +.L7F0076E8: +/* 03C218 7F0076E8 1488FFCE */ bne $a0, $t0, .L7F007624 +/* 03C21C 7F0076EC 24630010 */ addiu $v1, $v1, 0x10 +/* 03C220 7F0076F0 03E00008 */ jr $ra +/* 03C224 7F0076F4 00000000 */ nop +) +#endif + diff --git a/src/game/cleanup_objects.c b/src/game/cleanup_objects.c new file mode 100644 index 0000000..38b7793 --- /dev/null +++ b/src/game/cleanup_objects.c @@ -0,0 +1,107 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void cleanupObjects(s32 stage) { + +} +#else +GLOBAL_ASM( +.rdata +glabel jpt_8004F210 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 +.text +glabel cleanupObjects +/* 03C030 7F007500 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03C034 7F007504 AFB00018 */ sw $s0, 0x18($sp) +/* 03C038 7F007508 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 03C040 7F007510 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C044 7F007514 AFA40020 */ sw $a0, 0x20($sp) +/* 03C048 7F007518 52000019 */ beql $s0, $zero, .L7F007580 +/* 03C04C 7F00751C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C050 7F007520 92030003 */ lbu $v1, 3($s0) +/* 03C054 7F007524 24010030 */ li $at, 48 +/* 03C058 7F007528 10610014 */ beq $v1, $at, .L7F00757C +/* 03C05C 7F00752C 246EFFFF */ addiu $t6, $v1, -1 +.L7F007530: +/* 03C060 7F007530 2DC1002F */ sltiu $at, $t6, 0x2f +/* 03C064 7F007534 10200009 */ beqz $at, .L7F00755C +/* 03C068 7F007538 000E7080 */ sll $t6, $t6, 2 +/* 03C06C 7F00753C 3C018005 */ lui $at, %hi(jpt_8004F210) +/* 03C070 7F007540 002E0821 */ addu $at, $at, $t6 +/* 03C074 7F007544 8C2EF210 */ lw $t6, %lo(jpt_8004F210)($at) +/* 03C078 7F007548 01C00008 */ jr $t6 +/* 03C07C 7F00754C 00000000 */ nop +.L7F007550: +/* 03C080 7F007550 02002025 */ move $a0, $s0 +/* 03C084 7F007554 0FC10409 */ jal sub_GAME_7F041024 +/* 03C088 7F007558 24050001 */ li $a1, 1 +.L7F00755C: +/* 03C08C 7F00755C 0FC15A3D */ jal get_size_of_setup_object_type +/* 03C090 7F007560 02002025 */ move $a0, $s0 +/* 03C094 7F007564 00027880 */ sll $t7, $v0, 2 +/* 03C098 7F007568 01F08021 */ addu $s0, $t7, $s0 +/* 03C09C 7F00756C 92030003 */ lbu $v1, 3($s0) +/* 03C0A0 7F007570 24010030 */ li $at, 48 +/* 03C0A4 7F007574 5461FFEE */ bnel $v1, $at, .L7F007530 +/* 03C0A8 7F007578 246EFFFF */ addiu $t6, $v1, -1 +.L7F00757C: +/* 03C0AC 7F00757C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F007580: +/* 03C0B0 7F007580 8FB00018 */ lw $s0, 0x18($sp) +/* 03C0B4 7F007584 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03C0B8 7F007588 03E00008 */ jr $ra +/* 03C0BC 7F00758C 00000000 */ nop +) +#endif + + + + diff --git a/src/game/compiletime.c b/src/game/compiletime.c new file mode 100644 index 0000000..b412769 --- /dev/null +++ b/src/game/compiletime.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/compiletime.h" + +#ifdef VERSION_US +char *get_compile_time(void) { + return "Jun 29 1997 20:46:05"; +} +#endif + +#ifdef VERSION_JP +char *get_compile_time(void) { + return "Jul 10 1997 14:53:37"; +} +#endif + diff --git a/src/game/compiletime.h b/src/game/compiletime.h new file mode 100644 index 0000000..ec9e09a --- /dev/null +++ b/src/game/compiletime.h @@ -0,0 +1,10 @@ +#ifndef _COMPILETIME_H_ +#define _COMPILETIME_H_ + +#include "ultra64.h" + +char *get_compile_time(void); + +#endif + + diff --git a/src/game/convertangleusinginverse.c b/src/game/convertangleusinginverse.c new file mode 100644 index 0000000..fde2a5e --- /dev/null +++ b/src/game/convertangleusinginverse.c @@ -0,0 +1,43 @@ +#include "ultra64.h" + +#define M_PI 3.1415927f +#define M_HALF_PI M_PI / 2 +#define M_THREE_HALF_PI 3 * M_HALF_PI +#define M_TAU 2 * M_PI + +f32 acosf(f32); + +f32 atan2f(f32 y, f32 x) { + f32 angle; + if (y == 0.0f) { + if (0.0f <= x) { + angle = 0.0f; + } else { + angle = M_PI; + } + } else if (x == 0.0f) { + if (0.0f < y) { + angle = M_HALF_PI; + } else { + angle = M_THREE_HALF_PI; + } + } else { + angle = sqrtf((y * y) + (x * x)); + if (x < y) { + angle = acosf(x / angle); + if (y < 0.0f) { + angle = M_TAU - angle; + } + } else { + angle = M_HALF_PI - acosf(y / angle); + if (x < 0.0f) { + angle = M_PI - angle; + } + if (angle < 0.0f) { + angle += M_TAU; + } + } + } + return angle; +} + diff --git a/src/game/deb_loadallmodels.c b/src/game/deb_loadallmodels.c new file mode 100644 index 0000000..6b157ab --- /dev/null +++ b/src/game/deb_loadallmodels.c @@ -0,0 +1,393 @@ +#include "ultra64.h" + +//i belong in a header, probably to another file +#define PROJECTILES_MAX 0x2E +#define PROJECTILES_TYPE_KNIFE 0xBA +#define PROJECTILES_TYPE_GRENADE 0xC4 +#define PROJECTILES_TYPE_REMOTE_MINE 0xC7 +#define PROJECTILES_TYPE_PROX_MINE 0xC8 +#define PROJECTILES_TYPE_TIMED_MINE 0xC9 +#define PROJECTILES_TYPE_ROCKET_ROUND 0xCA +#define PROJECTILES_TYPE_ROCKET_ROUND2 0xCA +#define PROJECTILES_TYPE_GLAUNCH_ROUND 0xCB +#define PROJECTILES_TYPE_BOMBCASE 0xE2 +#define PROJECTILES_TYPE_BUG 0xF5 +#define PROJECTILES_TYPE_MICROCAMERA 0xF6 +#define PROJECTILES_TYPE_GE_KEY 0xF8 +#define PROJECTILES_TYPE_PLASTIQUE 0x111 + + + + + +u32 global_action_block_temp_buffer[119] = {0}; + +s32 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}; + + + +#ifdef NONMATCHING +void init_obj_register_difficulty_vals(void) { + objectiveregisters1 = 0; + ai_accuracy_modifier = 1.0f; + ai_damage_modifier = 1.0f; + ai_health_modifier = 1.0f; + ai_reaction_speed = 1.0f; + setting_007_5 = 0.0f; +} +#else +GLOBAL_ASM( +.text +glabel init_obj_register_difficulty_vals +/* 035B50 7F001020 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 035B54 7F001024 44810000 */ mtc1 $at, $f0 +/* 035B58 7F001028 3C018003 */ lui $at, %hi(objectiveregisters1) +/* 035B5C 7F00102C AC200978 */ sw $zero, %lo(objectiveregisters1)($at) +/* 035B60 7F001030 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 035B64 7F001034 E420CE40 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 035B68 7F001038 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 035B6C 7F00103C E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 035B70 7F001040 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 035B74 7F001044 E420CE48 */ swc1 $f0, %lo(ai_health_modifier)($at) +/* 035B78 7F001048 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 035B7C 7F00104C E420CE4C */ swc1 $f0, %lo(ai_reaction_speed)($at) +/* 035B80 7F001050 3C018003 */ lui $at, %hi(setting_007_5) +/* 035B84 7F001054 03E00008 */ jr $ra +/* 035B88 7F001058 AC20CE50 */ sw $zero, %lo(setting_007_5)($at) +) +#endif + + +#ifdef NONMATCHING +void alloc_false_GUARDdata_to_exec_global_action(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_false_GUARDdata_to_exec_global_action +/* 035B8C 7F00105C 3C0D8007 */ lui $t5, %hi(ptr_setup_path_tbl) +/* 035B90 7F001060 25AD5D00 */ addiu $t5, %lo(ptr_setup_path_tbl) # addiu $t5, $t5, 0x5d00 +/* 035B94 7F001064 8DA50014 */ lw $a1, 0x14($t5) +/* 035B98 7F001068 3C028003 */ lui $v0, %hi(objectiveregisters3) +/* 035B9C 7F00106C 3C068003 */ lui $a2, %hi(objectiveregisters2) +/* 035BA0 7F001070 24C6097C */ addiu $a2, %lo(objectiveregisters2) # addiu $a2, $a2, 0x97c +/* 035BA4 7F001074 24420980 */ addiu $v0, %lo(objectiveregisters3) # 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(ptr_setup_path_tbl) +/* 035C34 7F001104 25AD5D00 */ addiu $t5, %lo(ptr_setup_path_tbl) # addiu $t5, $t5, 0x5d00 +/* 035C38 7F001108 8DA50014 */ lw $a1, 0x14($t5) +/* 035C3C 7F00110C 3C068003 */ lui $a2, %hi(objectiveregisters2) +/* 035C40 7F001110 24C6097C */ addiu $a2, %lo(objectiveregisters2) # 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) { + +} +#else +GLOBAL_ASM( +.text +glabel debug_object_load_all_models +/* 035D88 7F001258 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 035D8C 7F00125C 3C0E8007 */ lui $t6, %hi(ptr_setup_actions) +/* 035D90 7F001260 8DCE5D14 */ lw $t6, %lo(ptr_setup_actions)($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(ptr_setup_actions) +/* 035DE4 7F0012B4 16230004 */ bne $s1, $v1, .L7F0012C8 +/* 035DE8 7F0012B8 00000000 */ nop +/* 035DEC 7F0012BC 8DEF5D14 */ lw $t7, %lo(ptr_setup_actions)($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 load_model +/* 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 load_model +/* 035EB8 7F001388 016C2025 */ or $a0, $t3, $t4 +/* 035EBC 7F00138C 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 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 load_model +/* 035EE4 7F0013B4 01CF2025 */ or $a0, $t6, $t7 +/* 035EE8 7F0013B8 02002025 */ move $a0, $s0 +.L7F0013BC: +/* 035EEC 7F0013BC 0FC0D27F */ jal get_length_of_action_block +/* 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) { + +} +#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 load_model +/* 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/debugmenu_08FE00.c b/src/game/debugmenu_08FE00.c new file mode 100644 index 0000000..8af6f5f --- /dev/null +++ b/src/game/debugmenu_08FE00.c @@ -0,0 +1,613 @@ +#include "ultra64.h" + + +// data +//D:80036B70 +s32 highlighted_debug_option = 0; +//D:80036B74 +s32 ptr_last_debuggrp_cutoff = 0; +//D:80036B78 +s32 ptr_textptrs = 0; +//D:80036B7C +s32 ptr_positions = 0; +//D:80036B80 +s32 number_groups = 0; +//D:80036B84 +s32 ptr_groupings = 0; +//D:80036B88 +s32 num_mcm_something = 2; +//D:80036B8C +u32 mcm_xoffset_multiplier = 0x4040400; +//D:80036B90 +u32 mcm_yoffset_multiplier = 0x7070700; +/* +D:80036B94 .word 0 +D:80036B98 .word 0 +D:80036B9C .word 0 +*/ + +// rodata +//D:80055340 +const char aMenu_cErrorTriedToCallFont_makegt[] = "menu.c: ERROR! Tried to call font_makegt\n"; + + + + +void nullsub_32(void) { + return; +} + +void sub_GAME_7F08FE08(s32 param_1) { + num_mcm_something = param_1; +} + + + + + +#ifdef NONMATCHING +void init_debug_menu_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_debug_menu_values +/* 0C4944 7F08FE14 3C018003 */ lui $at, %hi(ptr_textptrs) +/* 0C4948 7F08FE18 AC246B78 */ sw $a0, %lo(ptr_textptrs)($at) +/* 0C494C 7F08FE1C 3C018003 */ lui $at, %hi(ptr_positions) +/* 0C4950 7F08FE20 AC256B7C */ sw $a1, %lo(ptr_positions)($at) +/* 0C4954 7F08FE24 3C018003 */ lui $at, %hi(ptr_groupings) +/* 0C4958 7F08FE28 AC266B84 */ sw $a2, %lo(ptr_groupings)($at) +/* 0C495C 7F08FE2C 8CCE0000 */ lw $t6, ($a2) +/* 0C4960 7F08FE30 00001025 */ move $v0, $zero +/* 0C4964 7F08FE34 00C01825 */ move $v1, $a2 +/* 0C4968 7F08FE38 05C20007 */ bltzl $t6, .L7F08FE58 +/* 0C496C 7F08FE3C 0002C080 */ sll $t8, $v0, 2 +/* 0C4970 7F08FE40 8C6F0004 */ lw $t7, 4($v1) +.L7F08FE44: +/* 0C4974 7F08FE44 24420001 */ addiu $v0, $v0, 1 +/* 0C4978 7F08FE48 24630004 */ addiu $v1, $v1, 4 +/* 0C497C 7F08FE4C 05E3FFFD */ bgezl $t7, .L7F08FE44 +/* 0C4980 7F08FE50 8C6F0004 */ lw $t7, 4($v1) +/* 0C4984 7F08FE54 0002C080 */ sll $t8, $v0, 2 +.L7F08FE58: +/* 0C4988 7F08FE58 00D8C821 */ addu $t9, $a2, $t8 +/* 0C498C 7F08FE5C 8F28FFFC */ lw $t0, -4($t9) +/* 0C4990 7F08FE60 3C018003 */ lui $at, %hi(ptr_last_debuggrp_cutoff) +/* 0C4994 7F08FE64 AC286B74 */ sw $t0, %lo(ptr_last_debuggrp_cutoff)($at) +/* 0C4998 7F08FE68 3C018003 */ lui $at, %hi(number_groups) +/* 0C499C 7F08FE6C 03E00008 */ jr $ra +/* 0C49A0 7F08FE70 AC226B80 */ sw $v0, %lo(number_groups)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void print_debug_mcm_to_stdout(void) { + +} +#else +GLOBAL_ASM( +.text +glabel print_debug_mcm_to_stdout +/* 0C49A4 7F08FE74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C49A8 7F08FE78 3C028003 */ lui $v0, %hi(num_mcm_something) +/* 0C49AC 7F08FE7C 8C426B88 */ lw $v0, %lo(num_mcm_something)($v0) +/* 0C49B0 7F08FE80 3C0E8003 */ lui $t6, %hi(ptr_last_debuggrp_cutoff) +/* 0C49B4 7F08FE84 8DCE6B74 */ lw $t6, %lo(ptr_last_debuggrp_cutoff)($t6) +/* 0C49B8 7F08FE88 AFBE0038 */ sw $fp, 0x38($sp) +/* 0C49BC 7F08FE8C AFB70034 */ sw $s7, 0x34($sp) +/* 0C49C0 7F08FE90 3C178003 */ lui $s7, %hi(mcm_xoffset_multiplier) +/* 0C49C4 7F08FE94 3C1E8003 */ lui $fp, %hi(mcm_yoffset_multiplier) +/* 0C49C8 7F08FE98 AFB00018 */ sw $s0, 0x18($sp) +/* 0C49CC 7F08FE9C 02E2B821 */ addu $s7, $s7, $v0 +/* 0C49D0 7F08FEA0 03C2F021 */ addu $fp, $fp, $v0 +/* 0C49D4 7F08FEA4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0C49D8 7F08FEA8 AFB60030 */ sw $s6, 0x30($sp) +/* 0C49DC 7F08FEAC AFB5002C */ sw $s5, 0x2c($sp) +/* 0C49E0 7F08FEB0 AFB40028 */ sw $s4, 0x28($sp) +/* 0C49E4 7F08FEB4 AFB30024 */ sw $s3, 0x24($sp) +/* 0C49E8 7F08FEB8 AFB20020 */ sw $s2, 0x20($sp) +/* 0C49EC 7F08FEBC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C49F0 7F08FEC0 AFA40040 */ sw $a0, 0x40($sp) +/* 0C49F4 7F08FEC4 92F76B8C */ lbu $s7, %lo(mcm_xoffset_multiplier)($s7) +/* 0C49F8 7F08FEC8 93DE6B90 */ lbu $fp, %lo(mcm_yoffset_multiplier)($fp) +/* 0C49FC 7F08FECC 19C00042 */ blez $t6, .L7F08FFD8 +/* 0C4A00 7F08FED0 00008025 */ move $s0, $zero +/* 0C4A04 7F08FED4 3C168003 */ lui $s6, %hi(ptr_textptrs) +/* 0C4A08 7F08FED8 3C148003 */ lui $s4, %hi(ptr_positions) +/* 0C4A0C 7F08FEDC 3C138003 */ lui $s3, %hi(highlighted_debug_option) +/* 0C4A10 7F08FEE0 26736B70 */ addiu $s3, %lo(highlighted_debug_option) # addiu $s3, $s3, 0x6b70 +/* 0C4A14 7F08FEE4 26946B7C */ addiu $s4, %lo(ptr_positions) # addiu $s4, $s4, 0x6b7c +/* 0C4A18 7F08FEE8 26D66B78 */ addiu $s6, %lo(ptr_textptrs) # addiu $s6, $s6, 0x6b78 +/* 0C4A1C 7F08FEEC 00008825 */ move $s1, $zero +/* 0C4A20 7F08FEF0 00009025 */ move $s2, $zero +/* 0C4A24 7F08FEF4 24150007 */ li $s5, 7 +.L7F08FEF8: +/* 0C4A28 7F08FEF8 0FC23F80 */ jal nullsub_32 +/* 0C4A2C 7F08FEFC 00000000 */ nop +/* 0C4A30 7F08FF00 8E6F0000 */ lw $t7, ($s3) +/* 0C4A34 7F08FF04 240400C0 */ li $a0, 192 +/* 0C4A38 7F08FF08 240500C0 */ li $a1, 192 +/* 0C4A3C 7F08FF0C 160F0008 */ bne $s0, $t7, .L7F08FF30 +/* 0C4A40 7F08FF10 240600C0 */ li $a2, 192 +/* 0C4A44 7F08FF14 240400C0 */ li $a0, 192 +/* 0C4A48 7F08FF18 00002825 */ move $a1, $zero +/* 0C4A4C 7F08FF1C 00003025 */ move $a2, $zero +/* 0C4A50 7F08FF20 0C002C1B */ jal set_debug_text_color +/* 0C4A54 7F08FF24 240700C0 */ li $a3, 192 +/* 0C4A58 7F08FF28 10000004 */ b .L7F08FF3C +/* 0C4A5C 7F08FF2C 8E980000 */ lw $t8, ($s4) +.L7F08FF30: +/* 0C4A60 7F08FF30 0C002C1B */ jal set_debug_text_color +/* 0C4A64 7F08FF34 240700C0 */ li $a3, 192 +/* 0C4A68 7F08FF38 8E980000 */ lw $t8, ($s4) +.L7F08FF3C: +/* 0C4A6C 7F08FF3C 03111021 */ addu $v0, $t8, $s1 +/* 0C4A70 7F08FF40 8C590000 */ lw $t9, ($v0) +/* 0C4A74 7F08FF44 8C490004 */ lw $t1, 4($v0) +/* 0C4A78 7F08FF48 03370019 */ multu $t9, $s7 +/* 0C4A7C 7F08FF4C 00002012 */ mflo $a0 +/* 0C4A80 7F08FF50 2484FFEC */ addiu $a0, $a0, -0x14 +/* 0C4A84 7F08FF54 04810003 */ bgez $a0, .L7F08FF64 +/* 0C4A88 7F08FF58 00044083 */ sra $t0, $a0, 2 +/* 0C4A8C 7F08FF5C 24810003 */ addiu $at, $a0, 3 +/* 0C4A90 7F08FF60 00014083 */ sra $t0, $at, 2 +.L7F08FF64: +/* 0C4A94 7F08FF64 013E0019 */ multu $t1, $fp +/* 0C4A98 7F08FF68 01002025 */ move $a0, $t0 +/* 0C4A9C 7F08FF6C 00005012 */ mflo $t2 +/* 0C4AA0 7F08FF70 254BFFF8 */ addiu $t3, $t2, -8 +/* 0C4AA4 7F08FF74 00000000 */ nop +/* 0C4AA8 7F08FF78 0175001A */ div $zero, $t3, $s5 +/* 0C4AAC 7F08FF7C 00002812 */ mflo $a1 +/* 0C4AB0 7F08FF80 16A00002 */ bnez $s5, .L7F08FF8C +/* 0C4AB4 7F08FF84 00000000 */ nop +/* 0C4AB8 7F08FF88 0007000D */ break 7 +.L7F08FF8C: +/* 0C4ABC 7F08FF8C 2401FFFF */ li $at, -1 +/* 0C4AC0 7F08FF90 16A10004 */ bne $s5, $at, .L7F08FFA4 +/* 0C4AC4 7F08FF94 3C018000 */ lui $at, 0x8000 +/* 0C4AC8 7F08FF98 15610002 */ bne $t3, $at, .L7F08FFA4 +/* 0C4ACC 7F08FF9C 00000000 */ nop +/* 0C4AD0 7F08FFA0 0006000D */ break 6 +.L7F08FFA4: +/* 0C4AD4 7F08FFA4 0C002C10 */ jal set_final_debug_text_positions +/* 0C4AD8 7F08FFA8 00000000 */ nop +/* 0C4ADC 7F08FFAC 8ECC0000 */ lw $t4, ($s6) +/* 0C4AE0 7F08FFB0 01926821 */ addu $t5, $t4, $s2 +/* 0C4AE4 7F08FFB4 0C002C7A */ jal write_string_stdout +/* 0C4AE8 7F08FFB8 8DA40000 */ lw $a0, ($t5) +/* 0C4AEC 7F08FFBC 3C0E8003 */ lui $t6, %hi(ptr_last_debuggrp_cutoff) +/* 0C4AF0 7F08FFC0 8DCE6B74 */ lw $t6, %lo(ptr_last_debuggrp_cutoff)($t6) +/* 0C4AF4 7F08FFC4 26100001 */ addiu $s0, $s0, 1 +/* 0C4AF8 7F08FFC8 26310008 */ addiu $s1, $s1, 8 +/* 0C4AFC 7F08FFCC 020E082A */ slt $at, $s0, $t6 +/* 0C4B00 7F08FFD0 1420FFC9 */ bnez $at, .L7F08FEF8 +/* 0C4B04 7F08FFD4 26520004 */ addiu $s2, $s2, 4 +.L7F08FFD8: +/* 0C4B08 7F08FFD8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C4B0C 7F08FFDC 8FA20040 */ lw $v0, 0x40($sp) +/* 0C4B10 7F08FFE0 8FB00018 */ lw $s0, 0x18($sp) +/* 0C4B14 7F08FFE4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C4B18 7F08FFE8 8FB20020 */ lw $s2, 0x20($sp) +/* 0C4B1C 7F08FFEC 8FB30024 */ lw $s3, 0x24($sp) +/* 0C4B20 7F08FFF0 8FB40028 */ lw $s4, 0x28($sp) +/* 0C4B24 7F08FFF4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C4B28 7F08FFF8 8FB60030 */ lw $s6, 0x30($sp) +/* 0C4B2C 7F08FFFC 8FB70034 */ lw $s7, 0x34($sp) +/* 0C4B30 7F090000 8FBE0038 */ lw $fp, 0x38($sp) +/* 0C4B34 7F090004 03E00008 */ jr $ra +/* 0C4B38 7F090008 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09000C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09000C +/* 0C4B3C 7F09000C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C4B40 7F090010 AFB5002C */ sw $s5, 0x2c($sp) +/* 0C4B44 7F090014 3C028003 */ lui $v0, %hi(num_mcm_something) +/* 0C4B48 7F090018 8C426B88 */ lw $v0, %lo(num_mcm_something)($v0) +/* 0C4B4C 7F09001C 3C158003 */ lui $s5, %hi(ptr_last_debuggrp_cutoff) +/* 0C4B50 7F090020 26B56B74 */ addiu $s5, %lo(ptr_last_debuggrp_cutoff) # addiu $s5, $s5, 0x6b74 +/* 0C4B54 7F090024 8EAE0000 */ lw $t6, ($s5) +/* 0C4B58 7F090028 AFB40028 */ sw $s4, 0x28($sp) +/* 0C4B5C 7F09002C AFB30024 */ sw $s3, 0x24($sp) +/* 0C4B60 7F090030 3C138003 */ lui $s3, %hi(mcm_xoffset_multiplier) +/* 0C4B64 7F090034 3C148003 */ lui $s4, %hi(mcm_yoffset_multiplier) +/* 0C4B68 7F090038 AFB00018 */ sw $s0, 0x18($sp) +/* 0C4B6C 7F09003C 02629821 */ addu $s3, $s3, $v0 +/* 0C4B70 7F090040 0282A021 */ addu $s4, $s4, $v0 +/* 0C4B74 7F090044 AFBF003C */ sw $ra, 0x3c($sp) +/* 0C4B78 7F090048 AFBE0038 */ sw $fp, 0x38($sp) +/* 0C4B7C 7F09004C AFB70034 */ sw $s7, 0x34($sp) +/* 0C4B80 7F090050 AFB60030 */ sw $s6, 0x30($sp) +/* 0C4B84 7F090054 AFB20020 */ sw $s2, 0x20($sp) +/* 0C4B88 7F090058 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C4B8C 7F09005C AFA40040 */ sw $a0, 0x40($sp) +/* 0C4B90 7F090060 AFA50044 */ sw $a1, 0x44($sp) +/* 0C4B94 7F090064 AFA60048 */ sw $a2, 0x48($sp) +/* 0C4B98 7F090068 92736B8C */ lbu $s3, %lo(mcm_xoffset_multiplier)($s3) +/* 0C4B9C 7F09006C 92946B90 */ lbu $s4, %lo(mcm_yoffset_multiplier)($s4) +/* 0C4BA0 7F090070 19C00043 */ blez $t6, .L7F090180 +/* 0C4BA4 7F090074 00008025 */ move $s0, $zero +/* 0C4BA8 7F090078 3C178003 */ lui $s7, %hi(ptr_positions) +/* 0C4BAC 7F09007C 3C168003 */ lui $s6, %hi(highlighted_debug_option) +/* 0C4BB0 7F090080 26D66B70 */ addiu $s6, %lo(highlighted_debug_option) # addiu $s6, $s6, 0x6b70 +/* 0C4BB4 7F090084 26F76B7C */ addiu $s7, %lo(ptr_positions) # addiu $s7, $s7, 0x6b7c +/* 0C4BB8 7F090088 00008825 */ move $s1, $zero +/* 0C4BBC 7F09008C 00009025 */ move $s2, $zero +/* 0C4BC0 7F090090 241E0007 */ li $fp, 7 +.L7F090094: +/* 0C4BC4 7F090094 0FC23F80 */ jal nullsub_32 +/* 0C4BC8 7F090098 00000000 */ nop +/* 0C4BCC 7F09009C 8ECF0000 */ lw $t7, ($s6) +/* 0C4BD0 7F0900A0 240400C0 */ li $a0, 192 +/* 0C4BD4 7F0900A4 240500C0 */ li $a1, 192 +/* 0C4BD8 7F0900A8 160F0008 */ bne $s0, $t7, .L7F0900CC +/* 0C4BDC 7F0900AC 240600C0 */ li $a2, 192 +/* 0C4BE0 7F0900B0 240400C0 */ li $a0, 192 +/* 0C4BE4 7F0900B4 00002825 */ move $a1, $zero +/* 0C4BE8 7F0900B8 00003025 */ move $a2, $zero +/* 0C4BEC 7F0900BC 0C002C1B */ jal set_debug_text_color +/* 0C4BF0 7F0900C0 240700C0 */ li $a3, 192 +/* 0C4BF4 7F0900C4 10000004 */ b .L7F0900D8 +/* 0C4BF8 7F0900C8 8EF80000 */ lw $t8, ($s7) +.L7F0900CC: +/* 0C4BFC 7F0900CC 0C002C1B */ jal set_debug_text_color +/* 0C4C00 7F0900D0 240700C0 */ li $a3, 192 +/* 0C4C04 7F0900D4 8EF80000 */ lw $t8, ($s7) +.L7F0900D8: +/* 0C4C08 7F0900D8 03111021 */ addu $v0, $t8, $s1 +/* 0C4C0C 7F0900DC 8C590000 */ lw $t9, ($v0) +/* 0C4C10 7F0900E0 8C490004 */ lw $t1, 4($v0) +/* 0C4C14 7F0900E4 03330019 */ multu $t9, $s3 +/* 0C4C18 7F0900E8 00002012 */ mflo $a0 +/* 0C4C1C 7F0900EC 2484FFEC */ addiu $a0, $a0, -0x14 +/* 0C4C20 7F0900F0 04810003 */ bgez $a0, .L7F090100 +/* 0C4C24 7F0900F4 00044083 */ sra $t0, $a0, 2 +/* 0C4C28 7F0900F8 24810003 */ addiu $at, $a0, 3 +/* 0C4C2C 7F0900FC 00014083 */ sra $t0, $at, 2 +.L7F090100: +/* 0C4C30 7F090100 01340019 */ multu $t1, $s4 +/* 0C4C34 7F090104 01002025 */ move $a0, $t0 +/* 0C4C38 7F090108 00005012 */ mflo $t2 +/* 0C4C3C 7F09010C 254BFFF8 */ addiu $t3, $t2, -8 +/* 0C4C40 7F090110 00000000 */ nop +/* 0C4C44 7F090114 017E001A */ div $zero, $t3, $fp +/* 0C4C48 7F090118 00002812 */ mflo $a1 +/* 0C4C4C 7F09011C 17C00002 */ bnez $fp, .L7F090128 +/* 0C4C50 7F090120 00000000 */ nop +/* 0C4C54 7F090124 0007000D */ break 7 +.L7F090128: +/* 0C4C58 7F090128 2401FFFF */ li $at, -1 +/* 0C4C5C 7F09012C 17C10004 */ bne $fp, $at, .L7F090140 +/* 0C4C60 7F090130 3C018000 */ lui $at, 0x8000 +/* 0C4C64 7F090134 15610002 */ bne $t3, $at, .L7F090140 +/* 0C4C68 7F090138 00000000 */ nop +/* 0C4C6C 7F09013C 0006000D */ break 6 +.L7F090140: +/* 0C4C70 7F090140 0C002C10 */ jal set_final_debug_text_positions +/* 0C4C74 7F090144 00000000 */ nop +/* 0C4C78 7F090148 3C0C8003 */ lui $t4, %hi(ptr_textptrs) +/* 0C4C7C 7F09014C 8D8C6B78 */ lw $t4, %lo(ptr_textptrs)($t4) +/* 0C4C80 7F090150 01926821 */ addu $t5, $t4, $s2 +/* 0C4C84 7F090154 0C002C7A */ jal write_string_stdout +/* 0C4C88 7F090158 8DA40000 */ lw $a0, ($t5) +/* 0C4C8C 7F09015C 3C048005 */ lui $a0, %hi(aMenu_cErrorTriedToCallFont_makegt) +/* 0C4C90 7F090160 0C0033D1 */ jal osSyncPrintf +/* 0C4C94 7F090164 24845340 */ addiu $a0, %lo(aMenu_cErrorTriedToCallFont_makegt) # addiu $a0, $a0, 0x5340 +/* 0C4C98 7F090168 8EAE0000 */ lw $t6, ($s5) +/* 0C4C9C 7F09016C 26100001 */ addiu $s0, $s0, 1 +/* 0C4CA0 7F090170 26310008 */ addiu $s1, $s1, 8 +/* 0C4CA4 7F090174 020E082A */ slt $at, $s0, $t6 +/* 0C4CA8 7F090178 1420FFC6 */ bnez $at, .L7F090094 +/* 0C4CAC 7F09017C 26520004 */ addiu $s2, $s2, 4 +.L7F090180: +/* 0C4CB0 7F090180 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C4CB4 7F090184 8FB00018 */ lw $s0, 0x18($sp) +/* 0C4CB8 7F090188 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C4CBC 7F09018C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C4CC0 7F090190 8FB30024 */ lw $s3, 0x24($sp) +/* 0C4CC4 7F090194 8FB40028 */ lw $s4, 0x28($sp) +/* 0C4CC8 7F090198 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C4CCC 7F09019C 8FB60030 */ lw $s6, 0x30($sp) +/* 0C4CD0 7F0901A0 8FB70034 */ lw $s7, 0x34($sp) +/* 0C4CD4 7F0901A4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0C4CD8 7F0901A8 03E00008 */ jr $ra +/* 0C4CDC 7F0901AC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + +s32 get_highlighted_debug_option(void) { + return highlighted_debug_option; +} + +void sub_GAME_7F0901BC(s32 value) { + highlighted_debug_option = value; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0901C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0901C8 +/* 0C4CF8 7F0901C8 3C068003 */ lui $a2, %hi(highlighted_debug_option) +/* 0C4CFC 7F0901CC 24C66B70 */ addiu $a2, %lo(highlighted_debug_option) # addiu $a2, $a2, 0x6b70 +/* 0C4D00 7F0901D0 8CCE0000 */ lw $t6, ($a2) +/* 0C4D04 7F0901D4 3C188003 */ lui $t8, %hi(ptr_groupings) +/* 0C4D08 7F0901D8 3C048003 */ lui $a0, %hi(number_groups) +/* 0C4D0C 7F0901DC 25C2FFFF */ addiu $v0, $t6, -1 +/* 0C4D10 7F0901E0 04410006 */ bgez $v0, .L7F0901FC +/* 0C4D14 7F0901E4 ACC20000 */ sw $v0, ($a2) +/* 0C4D18 7F0901E8 8F186B84 */ lw $t8, %lo(ptr_groupings)($t8) +/* 0C4D1C 7F0901EC 8F190000 */ lw $t9, ($t8) +/* 0C4D20 7F0901F0 2728FFFF */ addiu $t0, $t9, -1 +/* 0C4D24 7F0901F4 03E00008 */ jr $ra +/* 0C4D28 7F0901F8 ACC80000 */ sw $t0, ($a2) + +.L7F0901FC: +/* 0C4D2C 7F0901FC 8C846B80 */ lw $a0, %lo(number_groups)($a0) +/* 0C4D30 7F090200 00001825 */ move $v1, $zero +/* 0C4D34 7F090204 3C058003 */ lui $a1, %hi(ptr_groupings) +/* 0C4D38 7F090208 1880000D */ blez $a0, .L7F090240 +/* 0C4D3C 7F09020C 00000000 */ nop +/* 0C4D40 7F090210 8CA56B84 */ lw $a1, %lo(ptr_groupings)($a1) +.L7F090214: +/* 0C4D44 7F090214 8CAA0000 */ lw $t2, ($a1) +/* 0C4D48 7F090218 24630001 */ addiu $v1, $v1, 1 +/* 0C4D4C 7F09021C 24490001 */ addiu $t1, $v0, 1 +/* 0C4D50 7F090220 152A0005 */ bne $t1, $t2, .L7F090238 +/* 0C4D54 7F090224 0064082A */ slt $at, $v1, $a0 +/* 0C4D58 7F090228 8CAB0004 */ lw $t3, 4($a1) +/* 0C4D5C 7F09022C 256CFFFF */ addiu $t4, $t3, -1 +/* 0C4D60 7F090230 03E00008 */ jr $ra +/* 0C4D64 7F090234 ACCC0000 */ sw $t4, ($a2) + +.L7F090238: +/* 0C4D68 7F090238 1420FFF6 */ bnez $at, .L7F090214 +/* 0C4D6C 7F09023C 24A50004 */ addiu $a1, $a1, 4 +.L7F090240: +/* 0C4D70 7F090240 03E00008 */ jr $ra +/* 0C4D74 7F090244 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F090248(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F090248 +/* 0C4D78 7F090248 3C078003 */ lui $a3, %hi(highlighted_debug_option) +/* 0C4D7C 7F09024C 24E76B70 */ addiu $a3, %lo(highlighted_debug_option) # addiu $a3, $a3, 0x6b70 +/* 0C4D80 7F090250 8CEE0000 */ lw $t6, ($a3) +/* 0C4D84 7F090254 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4D88 7F090258 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4D8C 7F09025C 25C20001 */ addiu $v0, $t6, 1 +/* 0C4D90 7F090260 ACE20000 */ sw $v0, ($a3) +/* 0C4D94 7F090264 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4D98 7F090268 8C780000 */ lw $t8, ($v1) +/* 0C4D9C 7F09026C 14580003 */ bne $v0, $t8, .L7F09027C +/* 0C4DA0 7F090270 00000000 */ nop +/* 0C4DA4 7F090274 03E00008 */ jr $ra +/* 0C4DA8 7F090278 ACE00000 */ sw $zero, ($a3) + +.L7F09027C: +/* 0C4DAC 7F09027C 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4DB0 7F090280 00002025 */ move $a0, $zero +/* 0C4DB4 7F090284 00603025 */ move $a2, $v1 +/* 0C4DB8 7F090288 18A0000B */ blez $a1, .L7F0902B8 +/* 0C4DBC 7F09028C 00000000 */ nop +.L7F090290: +/* 0C4DC0 7F090290 8CD90000 */ lw $t9, ($a2) +/* 0C4DC4 7F090294 24840001 */ addiu $a0, $a0, 1 +/* 0C4DC8 7F090298 0085082A */ slt $at, $a0, $a1 +/* 0C4DCC 7F09029C 14590004 */ bne $v0, $t9, .L7F0902B0 +/* 0C4DD0 7F0902A0 00000000 */ nop +/* 0C4DD4 7F0902A4 8CC8FFFC */ lw $t0, -4($a2) +/* 0C4DD8 7F0902A8 03E00008 */ jr $ra +/* 0C4DDC 7F0902AC ACE80000 */ sw $t0, ($a3) + +.L7F0902B0: +/* 0C4DE0 7F0902B0 1420FFF7 */ bnez $at, .L7F090290 +/* 0C4DE4 7F0902B4 24C60004 */ addiu $a2, $a2, 4 +.L7F0902B8: +/* 0C4DE8 7F0902B8 03E00008 */ jr $ra +/* 0C4DEC 7F0902BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0902C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0902C0 +/* 0C4DF0 7F0902C0 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4DF4 7F0902C4 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4DF8 7F0902C8 3C088003 */ lui $t0, %hi(highlighted_debug_option) +/* 0C4DFC 7F0902CC 25086B70 */ addiu $t0, %lo(highlighted_debug_option) # addiu $t0, $t0, 0x6b70 +/* 0C4E00 7F0902D0 8D020000 */ lw $v0, ($t0) +/* 0C4E04 7F0902D4 8C640000 */ lw $a0, ($v1) +/* 0C4E08 7F0902D8 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4E0C 7F0902DC 0044082A */ slt $at, $v0, $a0 +/* 0C4E10 7F0902E0 10200008 */ beqz $at, .L7F090304 +/* 0C4E14 7F0902E4 00447021 */ addu $t6, $v0, $a0 +/* 0C4E18 7F0902E8 AD0E0000 */ sw $t6, ($t0) +/* 0C4E1C 7F0902EC 8C650004 */ lw $a1, 4($v1) +/* 0C4E20 7F0902F0 01C5082A */ slt $at, $t6, $a1 +/* 0C4E24 7F0902F4 14200027 */ bnez $at, .L7F090394 +/* 0C4E28 7F0902F8 24B8FFFF */ addiu $t8, $a1, -1 +/* 0C4E2C 7F0902FC 03E00008 */ jr $ra +/* 0C4E30 7F090300 AD180000 */ sw $t8, ($t0) + +.L7F090304: +/* 0C4E34 7F090304 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4E38 7F090308 00002025 */ move $a0, $zero +/* 0C4E3C 7F09030C 00603025 */ move $a2, $v1 +/* 0C4E40 7F090310 18A00020 */ blez $a1, .L7F090394 +/* 0C4E44 7F090314 00000000 */ nop +.L7F090318: +/* 0C4E48 7F090318 8CC70000 */ lw $a3, ($a2) +/* 0C4E4C 7F09031C 24840001 */ addiu $a0, $a0, 1 +/* 0C4E50 7F090320 0047082A */ slt $at, $v0, $a3 +/* 0C4E54 7F090324 50200019 */ beql $at, $zero, .L7F09038C +/* 0C4E58 7F090328 0085082A */ slt $at, $a0, $a1 +/* 0C4E5C 7F09032C 8CC9FFFC */ lw $t1, -4($a2) +/* 0C4E60 7F090330 0047C821 */ addu $t9, $v0, $a3 +/* 0C4E64 7F090334 03295023 */ subu $t2, $t9, $t1 +/* 0C4E68 7F090338 AD0A0000 */ sw $t2, ($t0) +/* 0C4E6C 7F09033C 8CC40004 */ lw $a0, 4($a2) +/* 0C4E70 7F090340 0483000B */ bgezl $a0, .L7F090370 +/* 0C4E74 7F090344 8D180000 */ lw $t8, ($t0) +/* 0C4E78 7F090348 8CCC0000 */ lw $t4, ($a2) +/* 0C4E7C 7F09034C 014C6823 */ subu $t5, $t2, $t4 +/* 0C4E80 7F090350 AD0D0000 */ sw $t5, ($t0) +/* 0C4E84 7F090354 8C640000 */ lw $a0, ($v1) +/* 0C4E88 7F090358 01A4082A */ slt $at, $t5, $a0 +/* 0C4E8C 7F09035C 1420000D */ bnez $at, .L7F090394 +/* 0C4E90 7F090360 248FFFFF */ addiu $t7, $a0, -1 +/* 0C4E94 7F090364 03E00008 */ jr $ra +/* 0C4E98 7F090368 AD0F0000 */ sw $t7, ($t0) + +/* 0C4E9C 7F09036C 8D180000 */ lw $t8, ($t0) +.L7F090370: +/* 0C4EA0 7F090370 2499FFFF */ addiu $t9, $a0, -1 +/* 0C4EA4 7F090374 0304082A */ slt $at, $t8, $a0 +/* 0C4EA8 7F090378 14200006 */ bnez $at, .L7F090394 +/* 0C4EAC 7F09037C 00000000 */ nop +/* 0C4EB0 7F090380 03E00008 */ jr $ra +/* 0C4EB4 7F090384 AD190000 */ sw $t9, ($t0) + +/* 0C4EB8 7F090388 0085082A */ slt $at, $a0, $a1 +.L7F09038C: +/* 0C4EBC 7F09038C 1420FFE2 */ bnez $at, .L7F090318 +/* 0C4EC0 7F090390 24C60004 */ addiu $a2, $a2, 4 +.L7F090394: +/* 0C4EC4 7F090394 03E00008 */ jr $ra +/* 0C4EC8 7F090398 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09039C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09039C +/* 0C4ECC 7F09039C 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4ED0 7F0903A0 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4ED4 7F0903A4 3C078003 */ lui $a3, %hi(highlighted_debug_option) +/* 0C4ED8 7F0903A8 24E76B70 */ addiu $a3, %lo(highlighted_debug_option) # addiu $a3, $a3, 0x6b70 +/* 0C4EDC 7F0903AC 8CE20000 */ lw $v0, ($a3) +/* 0C4EE0 7F0903B0 8C640000 */ lw $a0, ($v1) +/* 0C4EE4 7F0903B4 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4EE8 7F0903B8 0044082A */ slt $at, $v0, $a0 +/* 0C4EEC 7F0903BC 50200016 */ beql $at, $zero, .L7F090418 +/* 0C4EF0 7F0903C0 0044082A */ slt $at, $v0, $a0 +/* 0C4EF4 7F0903C4 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4EF8 7F0903C8 00002025 */ move $a0, $zero +/* 0C4EFC 7F0903CC 24A5FFFF */ addiu $a1, $a1, -1 +/* 0C4F00 7F0903D0 58A00006 */ blezl $a1, .L7F0903EC +/* 0C4F04 7F0903D4 00047080 */ sll $t6, $a0, 2 +/* 0C4F08 7F0903D8 24840001 */ addiu $a0, $a0, 1 +.L7F0903DC: +/* 0C4F0C 7F0903DC 0085082A */ slt $at, $a0, $a1 +/* 0C4F10 7F0903E0 5420FFFE */ bnezl $at, .L7F0903DC +/* 0C4F14 7F0903E4 24840001 */ addiu $a0, $a0, 1 +/* 0C4F18 7F0903E8 00047080 */ sll $t6, $a0, 2 +.L7F0903EC: +/* 0C4F1C 7F0903EC 006E2821 */ addu $a1, $v1, $t6 +/* 0C4F20 7F0903F0 8CAFFFFC */ lw $t7, -4($a1) +/* 0C4F24 7F0903F4 004FC021 */ addu $t8, $v0, $t7 +/* 0C4F28 7F0903F8 ACF80000 */ sw $t8, ($a3) +/* 0C4F2C 7F0903FC 8CA60000 */ lw $a2, ($a1) +/* 0C4F30 7F090400 0306082A */ slt $at, $t8, $a2 +/* 0C4F34 7F090404 1420001E */ bnez $at, .L7F090480 +/* 0C4F38 7F090408 24C8FFFF */ addiu $t0, $a2, -1 +/* 0C4F3C 7F09040C 03E00008 */ jr $ra +/* 0C4F40 7F090410 ACE80000 */ sw $t0, ($a3) + +/* 0C4F44 7F090414 0044082A */ slt $at, $v0, $a0 +.L7F090418: +/* 0C4F48 7F090418 14200008 */ bnez $at, .L7F09043C +/* 0C4F4C 7F09041C 00002825 */ move $a1, $zero +/* 0C4F50 7F090420 00602025 */ move $a0, $v1 +/* 0C4F54 7F090424 8C890004 */ lw $t1, 4($a0) +.L7F090428: +/* 0C4F58 7F090428 24A50001 */ addiu $a1, $a1, 1 +/* 0C4F5C 7F09042C 24840004 */ addiu $a0, $a0, 4 +/* 0C4F60 7F090430 0049082A */ slt $at, $v0, $t1 +/* 0C4F64 7F090434 5020FFFC */ beql $at, $zero, .L7F090428 +/* 0C4F68 7F090438 8C890004 */ lw $t1, 4($a0) +.L7F09043C: +/* 0C4F6C 7F09043C 00055080 */ sll $t2, $a1, 2 +/* 0C4F70 7F090440 006A2021 */ addu $a0, $v1, $t2 +/* 0C4F74 7F090444 8C8BFFFC */ lw $t3, -4($a0) +/* 0C4F78 7F090448 24ADFFFE */ addiu $t5, $a1, -2 +/* 0C4F7C 7F09044C 004B6023 */ subu $t4, $v0, $t3 +/* 0C4F80 7F090450 05A00004 */ bltz $t5, .L7F090464 +/* 0C4F84 7F090454 ACEC0000 */ sw $t4, ($a3) +/* 0C4F88 7F090458 8C8FFFF8 */ lw $t7, -8($a0) +/* 0C4F8C 7F09045C 018FC021 */ addu $t8, $t4, $t7 +/* 0C4F90 7F090460 ACF80000 */ sw $t8, ($a3) +.L7F090464: +/* 0C4F94 7F090464 8C82FFFC */ lw $v0, -4($a0) +/* 0C4F98 7F090468 8CF90000 */ lw $t9, ($a3) +/* 0C4F9C 7F09046C 2448FFFF */ addiu $t0, $v0, -1 +/* 0C4FA0 7F090470 0322082A */ slt $at, $t9, $v0 +/* 0C4FA4 7F090474 14200002 */ bnez $at, .L7F090480 +/* 0C4FA8 7F090478 00000000 */ nop +/* 0C4FAC 7F09047C ACE80000 */ sw $t0, ($a3) +.L7F090480: +/* 0C4FB0 7F090480 03E00008 */ jr $ra +/* 0C4FB4 7F090484 00000000 */ nop +) +#endif + + + diff --git a/src/game/debugmenu_090490.c b/src/game/debugmenu_090490.c new file mode 100644 index 0000000..ff6d4d7 --- /dev/null +++ b/src/game/debugmenu_090490.c @@ -0,0 +1,1348 @@ +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/initgamedata.h" + +// data +//D:80036BA0 +u32 D_80036BA0 = 0; +//D:80036BA4 +s32 mcm_column_groupings[] = {8, 0x13, 0x1E, 0x2B, 0x32, 0x39, 0x45, 0x4D, -1}; + +//D:80036BC8 +struct mcm_layout mcm_onscreen_positions[] = { + {8, 5}, + {8, 6}, + {8, 7}, + {8, 8}, + {8, 9}, + {8, 0xA}, + {8, 0xB}, + {8, 0xC}, + {0x19, 5}, + {0x19, 6}, + {0x19, 7}, + {0x19, 8}, + {0x19, 9}, + {0x19, 0xA}, + {0x19, 0xB}, + {0x19, 0xC}, + {0x19, 0xD}, + {0x19, 0xE}, + {0x19, 0xF}, + {0x28, 5}, + {0x28, 6}, + {0x28, 7}, + {0x28, 8}, + {0x28, 9}, + {0x28, 0xA}, + {0x28, 0xB}, + {0x28, 0xC}, + {0x28, 0xD}, + {0x28, 0xE}, + {0x28, 0xF}, + {0x39, 5}, + {0x39, 6}, + {0x39, 7}, + {0x39, 8}, + {0x39, 9}, + {0x39, 0xA}, + {0x39, 0xB}, + {0x39, 0xC}, + {0x39, 0xD}, + {0x39, 0xE}, + {0x39, 0xF}, + {0x39, 0x10}, + {0x39, 0x11}, + {8, 0x14}, + {8, 0x15}, + {8, 0x16}, + {8, 0x17}, + {8, 0x18}, + {8, 0x19}, + {8, 0x1A}, + {0x19, 0x14}, + {0x19, 0x15}, + {0x19, 0x16}, + {0x19, 0x17}, + {0x19, 0x18}, + {0x19, 0x19}, + {0x19, 0x1A}, + {0x28, 0x14}, + {0x28, 0x15}, + {0x28, 0x16}, + {0x28, 0x17}, + {0x28, 0x18}, + {0x28, 0x19}, + {0x28, 0x1A}, + {0x28, 0x1B}, + {0x28, 0x1C}, + {0x28, 0x1D}, + {0x28, 0x1E}, + {0x28, 0x1F}, + {0x39, 0x14}, + {0x39, 0x15}, + {0x39, 0x16}, + {0x39, 0x17}, + {0x39, 0x18}, + {0x39, 0x19}, + {0x39, 0x1A}, + {0x39, 0x1B} +}; + +//D:80036E30 +char *mcm_strings[] = { + "move view", + "stan view", + "bond view", + "level", + "region", + "scale", + "play title", + "bond die", + "select anim", + "gun pos", + "flash colour", + "hit colour", + "music", + "sfx", + "invincible", + "visible", + "collisions", + "all guns", + "max ammo", + "display speed", + "background", + "props", + "stan hit", + "stan region", + "stan problems", + "print man pos", + "port close", + "port inf", + "port approx", + "pr room loads", + "show mem use", + "show mem bars", + "grab rgb", + "grab jpeg", + "grab task", + "rnd walk", + "record ramrom", + "record 1", + "record 2", + "record 3", + "replay ramrom", + "save ramrom", + "load ramrom", + "auto y aim", + "auto x aim", + "007", + "agent", + "all", + "fast", + "objectives", + "marg top", + "marg bot", + "marg left", + "marg right", + "marg reset", + "screen size", + "screen pos", + "show patrols", + "intro", + "intro edit", + "intro pos", + "world pos", + "gun key pos", + "vis cvg", + "chr num", + "room blocks", + "profile", + "obj load", + "weapon load", + "joy2 sky edit", + "joy2 hits edit", + "joy2 detail edit", + "explosion info", + "magic fog", + "gun watch pos", + "testing man pos", + "fog" +}; + +//D:80036F64 +s32 debug_render_raster = 2; +//D:80036F68 +s32 debug_freeze_processing = 2; +//D:80036F6C +s32 debug_limit_controller_input = 2; +//D:80036F70 +s32 debug_unknown = 2; +//D:80036F74 +s32 memusage_display_flag = FALSE; +//D:80036F78 +s32 debug_do_draw_bg = TRUE; +//D:80036F7C +s32 debug_do_draw_obj = TRUE; +//D:80036F80 +s32 debug_unknown2 = 1; +//D:80036F84 +s32 debug_stanhit_flag = FALSE; +//D:80036F88 +s32 debug_stanregion_flag = FALSE; +//D:80036F8C +s32 turbo_mode_flag = FALSE; +//D:80036F90 +s32 debug_man_pos_flag = 0; +//D:80036F94 +s32 debug_prroomloads_flag = 0; +//D:80036F98 +s32 debug_joy2skyedit_flag = 0; +//D:80036F9C +s32 debug_joy2hitsedit_flag = 0; +//D:80036FA0 +s32 debug_joy2detailedit_flag = 0; +//D:80036FA4 +s32 debug_explosioninfo_flag = 0; +//D:80036FA8 +s32 debug_VisCVG_flag = 0; +//D:80036FAC +s32 debug_007_unlock_flag = 0; +//D:80036FB0 +s32 debug_enable_agent_levels_flag = 0; +//D:80036FB4 +s32 debug_enable_all_levels_flag = 0; +//D:80036FB8 +s32 debug_chrnum_flag = 0; + +//D:80036FBC +s32 debug_gunwatchpos_flags = 0; +//D:80036FC0 +s32 debug_profile_flag = 0; +//D:80036FC4 +s32 debug_enable_taskgrab_flag = 0; +//D:80036FC8 +s32 debug_testingmanpos_flag = 0; +//D:80036FCC +s32 debug_fast_bond_flag = 0; +//D:80036FD0 +s32 debug_all_obj_complete_flag = 0 ; +//D:80036FD4 +s32 debug_portal_flag = 0; + +//D:80036FD8 +u32 dword_D_80036FD8[] = { + 0x80500000, + 0x40000, + 0x7F000000, + 0x7F100000 +}; + +u32 dword_D_80036FE8[] = { + 0x80600000, + 0x40000, + 0x70000000, + 0x70100000 +}; + +//D:80036FF8 +s32 show_debug_menu_flag = 0; +//D:80036FFC +s32 grab_rgb_screenshot_flag = 0; +//D:80037000 +s32 grab_jpeg_screenshot_flag = 0; +//D:80037004 +s32 player_pos_x = 0; +//D:80037008 +s32 player_pos_y = 0; +//D:8003700C +s32 player_pos_z = 0; + + + +// rodata + + +#ifdef NONMATCHING +void display_debug_menu_text_onscreen(void) +{ + init_debug_menu_values((char *)mcm_strings,mcm_onscreen_positions,mcm_column_groupings); +} +#else +GLOBAL_ASM( +.text +glabel display_debug_menu_text_onscreen +/* 0C4FC0 7F090490 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C4FC4 7F090494 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C4FC8 7F090498 3C048003 */ lui $a0, %hi(mcm_strings) +/* 0C4FCC 7F09049C 3C058003 */ lui $a1, %hi(mcm_onscreen_positions) +/* 0C4FD0 7F0904A0 3C068003 */ lui $a2, %hi(mcm_column_groupings) +/* 0C4FD4 7F0904A4 24C66BA4 */ addiu $a2, %lo(mcm_column_groupings) # addiu $a2, $a2, 0x6ba4 +/* 0C4FD8 7F0904A8 24A56BC8 */ addiu $a1, %lo(mcm_onscreen_positions) # addiu $a1, $a1, 0x6bc8 +/* 0C4FDC 7F0904AC 0FC23F85 */ jal init_debug_menu_values +/* 0C4FE0 7F0904B0 24846E30 */ addiu $a0, %lo(mcm_strings) # addiu $a0, $a0, 0x6e30 +/* 0C4FE4 7F0904B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C4FE8 7F0904B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C4FEC 7F0904BC 03E00008 */ jr $ra +/* 0C4FF0 7F0904C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0904C4(void) { + ? temp_ret; + + // Node 0 + sub_GAME_7F0916F4(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0904C4 +/* 0C4FF4 7F0904C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C4FF8 7F0904C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C4FFC 7F0904CC 0FC245BD */ jal sub_GAME_7F0916F4 +/* 0C5000 7F0904D0 00000000 */ nop +/* 0C5004 7F0904D4 0FC2406C */ jal get_highlighted_debug_option +/* 0C5008 7F0904D8 00000000 */ nop +/* 0C500C 7F0904DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5010 7F0904E0 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C5014 7F0904E4 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C5018 7F0904E8 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C501C 7F0904EC 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C5020 7F0904F0 AC620000 */ sw $v0, ($v1) +/* 0C5024 7F0904F4 AC820000 */ sw $v0, ($a0) +/* 0C5028 7F0904F8 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C502C 7F0904FC AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C5030 7F090500 03E00008 */ jr $ra +/* 0C5034 7F090504 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F090508(void) { + ? temp_ret; + + // Node 0 + maybe_solo_intro_camera_handler(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F090508 +/* 0C5038 7F090508 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C503C 7F09050C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5040 7F090510 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0C5044 7F090514 00000000 */ nop +/* 0C5048 7F090518 0FC2406C */ jal get_highlighted_debug_option +/* 0C504C 7F09051C 00000000 */ nop +/* 0C5050 7F090520 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5054 7F090524 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C5058 7F090528 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C505C 7F09052C 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C5060 7F090530 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C5064 7F090534 AC620000 */ sw $v0, ($v1) +/* 0C5068 7F090538 AC820000 */ sw $v0, ($a0) +/* 0C506C 7F09053C 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C5070 7F090540 AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C5074 7F090544 03E00008 */ jr $ra +/* 0C5078 7F090548 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09054C(void) { + ? temp_ret; + + // Node 0 + maybe_solo_intro_camera_handler(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09054C +/* 0C507C 7F09054C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C5080 7F090550 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5084 7F090554 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0C5088 7F090558 00000000 */ nop +/* 0C508C 7F09055C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5090 7F090560 00000000 */ nop +/* 0C5094 7F090564 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5098 7F090568 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C509C 7F09056C 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C50A0 7F090570 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C50A4 7F090574 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C50A8 7F090578 AC620000 */ sw $v0, ($v1) +/* 0C50AC 7F09057C AC820000 */ sw $v0, ($a0) +/* 0C50B0 7F090580 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C50B4 7F090584 AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C50B8 7F090588 03E00008 */ jr $ra +/* 0C50BC 7F09058C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +void removed_do_debug_profile_flag_false(void) { + return; +} + +void removed_do_debug_profile_flag_true(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void debug_menu_processor(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800556FC*/ +glabel jpt_debug_menu_options +.word debug_stanview +.word debug_bondview +.word .L7F090798 +.word debug_level +.word .L7F0907BC +.word debug_scale +.word debug_playtitle +.word debug_bonddie +.word debug_selectanim +.word debug_gunpos +.word debug_flashcolor +.word debug_hitcolor +.word debug_music +.word debug_sfx +.word debug_invincible +.word debug_visible +.word debug_collisions +.word debug_allguns +.word debug_maxammo +.word debug_displayspeed +.word debug_dodrawbg +.word debug_dodrawobj +.word debug_stanhit +.word debug_stanregion +.word debug_turbo +.word debug_printmanpos +.word portal_close_inf_approx +.word portal_close_inf_approx +.word portal_close_inf_approx +.word debug_prroomloads +.word debug_showmemuse +.word debug_showmembars +.word debug_grabrgb +.word debug_grabjpeg +.word debug_taskgrab +.word def_7F090770 +.word debug_recordramrom +.word debug_ramrom_record1 +.word debug_ramrom_record2 +.word debug_ramrom_record3 +.word debug_replayramrom +.word debug_saveramrom +.word debug_loadramrom +.word debug_autoyaim +.word debug_autoxaim +.word debug_007 +.word debug_agent +.word debug_all +.word fast_bond_debug +.word debug_objectives +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word .L7F090834 +.word debug_screenpos +.word debug_showpatrols +.word debug_intro +.word debug_introedit +.word debug_intropos +.word debug_worldpos +.word debug_chrkeypos +.word debug_viscvg +.word debug_chrnum +.word debug_roomblocks +.word debug_profile +.word debug_objload +.word debug_weaponload +.word debug_joy2skyedit +.word debug_joy2hitsedit +.word debug_joy2detailedit +.word debug_explosioninfo +.word debug_magicfog +.word debug_gunwatchpos +.word debug_testingmanpos +.word debug_fog + +/*D:80055830*/ +glabel jpt_80055830 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 + +.text +glabel debug_menu_processor +/* 0C50D0 7F0905A0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0C50D4 7F0905A4 3C038003 */ lui $v1, %hi(grab_rgb_screenshot_flag) +/* 0C50D8 7F0905A8 8C636FFC */ lw $v1, %lo(grab_rgb_screenshot_flag)($v1) +/* 0C50DC 7F0905AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C50E0 7F0905B0 AFA40060 */ sw $a0, 0x60($sp) +/* 0C50E4 7F0905B4 AFA50064 */ sw $a1, 0x64($sp) +/* 0C50E8 7F0905B8 AFA60068 */ sw $a2, 0x68($sp) +/* 0C50EC 7F0905BC 1060000D */ beqz $v1, .L7F0905F4 +/* 0C50F0 7F0905C0 AFA7006C */ sw $a3, 0x6c($sp) +/* 0C50F4 7F0905C4 38620003 */ xori $v0, $v1, 3 +/* 0C50F8 7F0905C8 24630001 */ addiu $v1, $v1, 1 +/* 0C50FC 7F0905CC 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C5100 7F0905D0 14400008 */ bnez $v0, .L7F0905F4 +/* 0C5104 7F0905D4 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at) +/* 0C5108 7F0905D8 0C0012ED */ jal indy_grab_rgb_32bit +/* 0C510C 7F0905DC 00000000 */ nop +/* 0C5110 7F0905E0 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C5114 7F0905E4 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5118 7F0905E8 AC206FFC */ sw $zero, %lo(grab_rgb_screenshot_flag)($at) +/* 0C511C 7F0905EC 0C0038B4 */ jal osViBlack +/* 0C5120 7F0905F0 00002025 */ move $a0, $zero +.L7F0905F4: +/* 0C5124 7F0905F4 3C038003 */ lui $v1, %hi(grab_jpeg_screenshot_flag) +/* 0C5128 7F0905F8 8C637000 */ lw $v1, %lo(grab_jpeg_screenshot_flag)($v1) +/* 0C512C 7F0905FC 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5130 7F090600 1060000B */ beqz $v1, .L7F090630 +/* 0C5134 7F090604 38620003 */ xori $v0, $v1, 3 +/* 0C5138 7F090608 24630001 */ addiu $v1, $v1, 1 +/* 0C513C 7F09060C 14400008 */ bnez $v0, .L7F090630 +/* 0C5140 7F090610 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5144 7F090614 0C001235 */ jal indy_grab_jpg_32bit +/* 0C5148 7F090618 00000000 */ nop +/* 0C514C 7F09061C 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5150 7F090620 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5154 7F090624 AC207000 */ sw $zero, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5158 7F090628 0C0038B4 */ jal osViBlack +/* 0C515C 7F09062C 00002025 */ move $a0, $zero +.L7F090630: +/* 0C5160 7F090630 3C0E8003 */ lui $t6, %hi(show_debug_menu_flag) +/* 0C5164 7F090634 8DCE6FF8 */ lw $t6, %lo(show_debug_menu_flag)($t6) +/* 0C5168 7F090638 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C516C 7F09063C 3C018003 */ lui $at, %hi(show_debug_menu_flag) +/* 0C5170 7F090640 15C00010 */ bnez $t6, .L7F090684 +/* 0C5174 7F090644 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5178 7F090648 97A4006A */ lhu $a0, 0x6a($sp) +/* 0C517C 7F09064C 30830008 */ andi $v1, $a0, 8 +/* 0C5180 7F090650 0003102B */ sltu $v0, $zero, $v1 +/* 0C5184 7F090654 10400004 */ beqz $v0, .L7F090668 +/* 0C5188 7F090658 00000000 */ nop +/* 0C518C 7F09065C 30820004 */ andi $v0, $a0, 4 +/* 0C5190 7F090660 0002C02B */ sltu $t8, $zero, $v0 +/* 0C5194 7F090664 03001025 */ move $v0, $t8 +.L7F090668: +/* 0C5198 7F090668 10400003 */ beqz $v0, .L7F090678 +/* 0C519C 7F09066C AC226FF8 */ sw $v0, %lo(show_debug_menu_flag)($at) +/* 0C51A0 7F090670 0FC301F5 */ jal stop_recording_ramrom +/* 0C51A4 7F090674 00000000 */ nop +.L7F090678: +/* 0C51A8 7F090678 3C028003 */ lui $v0, %hi(show_debug_menu_flag) +/* 0C51AC 7F09067C 1000021B */ b .L7F090EEC +/* 0C51B0 7F090680 8C426FF8 */ lw $v0, %lo(show_debug_menu_flag)($v0) +.L7F090684: +/* 0C51B4 7F090684 8C820000 */ lw $v0, ($a0) +/* 0C51B8 7F090688 2403FFFE */ li $v1, -2 +/* 0C51BC 7F09068C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C51C0 7F090690 50620004 */ beql $v1, $v0, .L7F0906A4 +/* 0C51C4 7F090694 97B9006E */ lhu $t9, 0x6e($sp) +/* 0C51C8 7F090698 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +/* 0C51CC 7F09069C AC830000 */ sw $v1, ($a0) +/* 0C51D0 7F0906A0 97B9006E */ lhu $t9, 0x6e($sp) +.L7F0906A4: +/* 0C51D4 7F0906A4 33280200 */ andi $t0, $t9, 0x200 +/* 0C51D8 7F0906A8 11000007 */ beqz $t0, .L7F0906C8 +/* 0C51DC 7F0906AC AFB90018 */ sw $t9, 0x18($sp) +/* 0C51E0 7F0906B0 0FC240E7 */ jal sub_GAME_7F09039C +/* 0C51E4 7F0906B4 00000000 */ nop +/* 0C51E8 7F0906B8 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C51EC 7F0906BC 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C51F0 7F0906C0 2403FFFE */ li $v1, -2 +/* 0C51F4 7F0906C4 AC830000 */ sw $v1, ($a0) +.L7F0906C8: +/* 0C51F8 7F0906C8 8FA90018 */ lw $t1, 0x18($sp) +/* 0C51FC 7F0906CC 312A0100 */ andi $t2, $t1, 0x100 +/* 0C5200 7F0906D0 51400008 */ beql $t2, $zero, .L7F0906F4 +/* 0C5204 7F0906D4 8FAB0018 */ lw $t3, 0x18($sp) +/* 0C5208 7F0906D8 0FC240B0 */ jal sub_GAME_7F0902C0 +/* 0C520C 7F0906DC 00000000 */ nop +/* 0C5210 7F0906E0 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C5214 7F0906E4 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5218 7F0906E8 2403FFFE */ li $v1, -2 +/* 0C521C 7F0906EC AC830000 */ sw $v1, ($a0) +/* 0C5220 7F0906F0 8FAB0018 */ lw $t3, 0x18($sp) +.L7F0906F4: +/* 0C5224 7F0906F4 316C0800 */ andi $t4, $t3, 0x800 +/* 0C5228 7F0906F8 51800008 */ beql $t4, $zero, .L7F09071C +/* 0C522C 7F0906FC 8FAD0018 */ lw $t5, 0x18($sp) +/* 0C5230 7F090700 0FC24072 */ jal sub_GAME_7F0901C8 +/* 0C5234 7F090704 00000000 */ nop +/* 0C5238 7F090708 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C523C 7F09070C 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5240 7F090710 2403FFFE */ li $v1, -2 +/* 0C5244 7F090714 AC830000 */ sw $v1, ($a0) +/* 0C5248 7F090718 8FAD0018 */ lw $t5, 0x18($sp) +.L7F09071C: +/* 0C524C 7F09071C 31AE0400 */ andi $t6, $t5, 0x400 +/* 0C5250 7F090720 51C00008 */ beql $t6, $zero, .L7F090744 +/* 0C5254 7F090724 8FAF0018 */ lw $t7, 0x18($sp) +/* 0C5258 7F090728 0FC24092 */ jal sub_GAME_7F090248 +/* 0C525C 7F09072C 00000000 */ nop +/* 0C5260 7F090730 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C5264 7F090734 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5268 7F090738 2403FFFE */ li $v1, -2 +/* 0C526C 7F09073C AC830000 */ sw $v1, ($a0) +/* 0C5270 7F090740 8FAF0018 */ lw $t7, 0x18($sp) +.L7F090744: +/* 0C5274 7F090744 31F89000 */ andi $t8, $t7, 0x9000 +/* 0C5278 7F090748 530001CB */ beql $t8, $zero, .L7F090E78 +/* 0C527C 7F09074C 8FB80018 */ lw $t8, 0x18($sp) +/* 0C5280 7F090750 0FC2406C */ jal get_highlighted_debug_option +/* 0C5284 7F090754 00000000 */ nop +/* 0C5288 7F090758 2C41004D */ sltiu $at, $v0, 0x4d +/* 0C528C 7F09075C 102001C5 */ beqz $at, .L7F090E74 +/* 0C5290 7F090760 0002C880 */ sll $t9, $v0, 2 +/* 0C5294 7F090764 3C018005 */ lui $at, %hi(jpt_debug_menu_options) +/* 0C5298 7F090768 00390821 */ addu $at, $at, $t9 +/* 0C529C 7F09076C 8C3956FC */ lw $t9, %lo(jpt_debug_menu_options)($at) +/* 0C52A0 7F090770 03200008 */ jr $t9 +/* 0C52A4 7F090774 00000000 */ nop +debug_stanview: +/* 0C52A8 7F090778 0FC24131 */ jal sub_GAME_7F0904C4 +/* 0C52AC 7F09077C 00000000 */ nop +/* 0C52B0 7F090780 100001BD */ b .L7F090E78 +/* 0C52B4 7F090784 8FB80018 */ lw $t8, 0x18($sp) +debug_bondview: +/* 0C52B8 7F090788 0FC24142 */ jal sub_GAME_7F090508 +/* 0C52BC 7F09078C 00000000 */ nop +/* 0C52C0 7F090790 100001B9 */ b .L7F090E78 +/* 0C52C4 7F090794 8FB80018 */ lw $t8, 0x18($sp) +.L7F090798: +/* 0C52C8 7F090798 0FC24153 */ jal sub_GAME_7F09054C +/* 0C52CC 7F09079C 00000000 */ nop +/* 0C52D0 7F0907A0 100001B5 */ b .L7F090E78 +/* 0C52D4 7F0907A4 8FB80018 */ lw $t8, 0x18($sp) +debug_level: +/* 0C52D8 7F0907A8 0FC2406C */ jal get_highlighted_debug_option +/* 0C52DC 7F0907AC 00000000 */ nop +/* 0C52E0 7F0907B0 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C52E4 7F0907B4 100001AF */ b .L7F090E74 +/* 0C52E8 7F0907B8 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +.L7F0907BC: +/* 0C52EC 7F0907BC 0FC2406C */ jal get_highlighted_debug_option +/* 0C52F0 7F0907C0 00000000 */ nop +/* 0C52F4 7F0907C4 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C52F8 7F0907C8 100001AA */ b .L7F090E74 +/* 0C52FC 7F0907CC AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_scale: +/* 0C5300 7F0907D0 0FC2406C */ jal get_highlighted_debug_option +/* 0C5304 7F0907D4 00000000 */ nop +/* 0C5308 7F0907D8 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C530C 7F0907DC 100001A5 */ b .L7F090E74 +/* 0C5310 7F0907E0 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_selectanim: +/* 0C5314 7F0907E4 0FC2406C */ jal get_highlighted_debug_option +/* 0C5318 7F0907E8 00000000 */ nop +/* 0C531C 7F0907EC 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5320 7F0907F0 100001A0 */ b .L7F090E74 +/* 0C5324 7F0907F4 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_gunpos: +/* 0C5328 7F0907F8 0FC2406C */ jal get_highlighted_debug_option +/* 0C532C 7F0907FC 00000000 */ nop +/* 0C5330 7F090800 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5334 7F090804 1000019B */ b .L7F090E74 +/* 0C5338 7F090808 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_flashcolor: +/* 0C533C 7F09080C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5340 7F090810 00000000 */ nop +/* 0C5344 7F090814 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5348 7F090818 10000196 */ b .L7F090E74 +/* 0C534C 7F09081C AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_hitcolor: +/* 0C5350 7F090820 0FC2406C */ jal get_highlighted_debug_option +/* 0C5354 7F090824 00000000 */ nop +/* 0C5358 7F090828 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C535C 7F09082C 10000191 */ b .L7F090E74 +/* 0C5360 7F090830 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +.L7F090834: +/* 0C5364 7F090834 0FC2406C */ jal get_highlighted_debug_option +/* 0C5368 7F090838 00000000 */ nop +/* 0C536C 7F09083C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5370 7F090840 1000018C */ b .L7F090E74 +/* 0C5374 7F090844 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_screenpos: +/* 0C5378 7F090848 0FC2406C */ jal get_highlighted_debug_option +/* 0C537C 7F09084C 00000000 */ nop +/* 0C5380 7F090850 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5384 7F090854 10000187 */ b .L7F090E74 +/* 0C5388 7F090858 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_music: +/* 0C538C 7F09085C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5390 7F090860 00000000 */ nop +/* 0C5394 7F090864 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5398 7F090868 10000182 */ b .L7F090E74 +/* 0C539C 7F09086C AC226F70 */ sw $v0, %lo(debug_unknown)($at) +portal_close_inf_approx: +/* 0C53A0 7F090870 3C028003 */ lui $v0, %hi(debug_portal_flag) +/* 0C53A4 7F090874 24426FD4 */ addiu $v0, %lo(debug_portal_flag) # addiu $v0, $v0, 0x6fd4 +/* 0C53A8 7F090878 8C480000 */ lw $t0, ($v0) +/* 0C53AC 7F09087C 39090001 */ xori $t1, $t0, 1 +/* 0C53B0 7F090880 1000017C */ b .L7F090E74 +/* 0C53B4 7F090884 AC490000 */ sw $t1, ($v0) +debug_sfx: +/* 0C53B8 7F090888 0FC2406C */ jal get_highlighted_debug_option +/* 0C53BC 7F09088C 00000000 */ nop +/* 0C53C0 7F090890 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C53C4 7F090894 10000177 */ b .L7F090E74 +/* 0C53C8 7F090898 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_invincible: +/* 0C53CC 7F09089C 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C53D0 7F0908A0 00000000 */ nop +/* 0C53D4 7F0908A4 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C53D8 7F0908A8 2C440001 */ sltiu $a0, $v0, 1 +/* 0C53DC 7F0908AC 10000172 */ b .L7F090E78 +/* 0C53E0 7F0908B0 8FB80018 */ lw $t8, 0x18($sp) +debug_visible: +/* 0C53E4 7F0908B4 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C53E8 7F0908B8 00000000 */ nop +/* 0C53EC 7F0908BC 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C53F0 7F0908C0 2C440001 */ sltiu $a0, $v0, 1 +/* 0C53F4 7F0908C4 1000016C */ b .L7F090E78 +/* 0C53F8 7F0908C8 8FB80018 */ lw $t8, 0x18($sp) +debug_collisions: +/* 0C53FC 7F0908CC 0FC227E3 */ jal get_obj_collision_flag +/* 0C5400 7F0908D0 00000000 */ nop +/* 0C5404 7F0908D4 0FC227E0 */ jal set_obj_collision_flag +/* 0C5408 7F0908D8 2C440001 */ sltiu $a0, $v0, 1 +/* 0C540C 7F0908DC 10000166 */ b .L7F090E78 +/* 0C5410 7F0908E0 8FB80018 */ lw $t8, 0x18($sp) +debug_allguns: +/* 0C5414 7F0908E4 0FC26919 */ jal get_num_players +/* 0C5418 7F0908E8 AFA0005C */ sw $zero, 0x5c($sp) +/* 0C541C 7F0908EC 58400162 */ blezl $v0, .L7F090E78 +/* 0C5420 7F0908F0 8FB80018 */ lw $t8, 0x18($sp) +.L7F0908F4: +/* 0C5424 7F0908F4 0FC26C43 */ jal set_cur_player +/* 0C5428 7F0908F8 8FA4005C */ lw $a0, 0x5c($sp) +/* 0C542C 7F0908FC 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C5430 7F090900 00000000 */ nop +/* 0C5434 7F090904 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C5438 7F090908 2C440001 */ sltiu $a0, $v0, 1 +/* 0C543C 7F09090C 8FAA005C */ lw $t2, 0x5c($sp) +/* 0C5440 7F090910 254B0001 */ addiu $t3, $t2, 1 +/* 0C5444 7F090914 0FC26919 */ jal get_num_players +/* 0C5448 7F090918 AFAB005C */ sw $t3, 0x5c($sp) +/* 0C544C 7F09091C 8FAC005C */ lw $t4, 0x5c($sp) +/* 0C5450 7F090920 0182082A */ slt $at, $t4, $v0 +/* 0C5454 7F090924 1420FFF3 */ bnez $at, .L7F0908F4 +/* 0C5458 7F090928 00000000 */ nop +/* 0C545C 7F09092C 10000152 */ b .L7F090E78 +/* 0C5460 7F090930 8FB80018 */ lw $t8, 0x18($sp) +debug_maxammo: +/* 0C5464 7F090934 0FC26C54 */ jal get_cur_playernum +/* 0C5468 7F090938 00000000 */ nop +/* 0C546C 7F09093C AFA20054 */ sw $v0, 0x54($sp) +/* 0C5470 7F090940 0FC26919 */ jal get_num_players +/* 0C5474 7F090944 AFA00058 */ sw $zero, 0x58($sp) +/* 0C5478 7F090948 1840000D */ blez $v0, .L7F090980 +/* 0C547C 7F09094C 00000000 */ nop +.L7F090950: +/* 0C5480 7F090950 0FC26C43 */ jal set_cur_player +/* 0C5484 7F090954 8FA40058 */ lw $a0, 0x58($sp) +/* 0C5488 7F090958 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0C548C 7F09095C 00000000 */ nop +/* 0C5490 7F090960 8FAD0058 */ lw $t5, 0x58($sp) +/* 0C5494 7F090964 25AE0001 */ addiu $t6, $t5, 1 +/* 0C5498 7F090968 0FC26919 */ jal get_num_players +/* 0C549C 7F09096C AFAE0058 */ sw $t6, 0x58($sp) +/* 0C54A0 7F090970 8FAF0058 */ lw $t7, 0x58($sp) +/* 0C54A4 7F090974 01E2082A */ slt $at, $t7, $v0 +/* 0C54A8 7F090978 1420FFF5 */ bnez $at, .L7F090950 +/* 0C54AC 7F09097C 00000000 */ nop +.L7F090980: +/* 0C54B0 7F090980 0FC26C43 */ jal set_cur_player +/* 0C54B4 7F090984 8FA40054 */ lw $a0, 0x54($sp) +/* 0C54B8 7F090988 1000013B */ b .L7F090E78 +/* 0C54BC 7F09098C 8FB80018 */ lw $t8, 0x18($sp) +debug_displayspeed: +/* 0C54C0 7F090990 3C028003 */ lui $v0, %hi(memusage_display_flag) +/* 0C54C4 7F090994 24426F74 */ addiu $v0, %lo(memusage_display_flag) # addiu $v0, $v0, 0x6f74 +/* 0C54C8 7F090998 8C580000 */ lw $t8, ($v0) +/* 0C54CC 7F09099C 3B190001 */ xori $t9, $t8, 1 +/* 0C54D0 7F0909A0 17200134 */ bnez $t9, .L7F090E74 +/* 0C54D4 7F0909A4 AC590000 */ sw $t9, ($v0) +/* 0C54D8 7F0909A8 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C54DC 7F0909AC 00000000 */ nop +/* 0C54E0 7F0909B0 10000131 */ b .L7F090E78 +/* 0C54E4 7F0909B4 8FB80018 */ lw $t8, 0x18($sp) +debug_dodrawbg: +/* 0C54E8 7F0909B8 3C028003 */ lui $v0, %hi(debug_do_draw_bg) +/* 0C54EC 7F0909BC 24426F78 */ addiu $v0, %lo(debug_do_draw_bg) # addiu $v0, $v0, 0x6f78 +/* 0C54F0 7F0909C0 8C490000 */ lw $t1, ($v0) +/* 0C54F4 7F0909C4 392A0001 */ xori $t2, $t1, 1 +/* 0C54F8 7F0909C8 1000012A */ b .L7F090E74 +/* 0C54FC 7F0909CC AC4A0000 */ sw $t2, ($v0) +debug_dodrawobj: +/* 0C5500 7F0909D0 3C028003 */ lui $v0, %hi(debug_do_draw_obj) +/* 0C5504 7F0909D4 24426F7C */ addiu $v0, %lo(debug_do_draw_obj) # addiu $v0, $v0, 0x6f7c +/* 0C5508 7F0909D8 8C4B0000 */ lw $t3, ($v0) +/* 0C550C 7F0909DC 396C0001 */ xori $t4, $t3, 1 +/* 0C5510 7F0909E0 10000124 */ b .L7F090E74 +/* 0C5514 7F0909E4 AC4C0000 */ sw $t4, ($v0) +debug_stanhit: +/* 0C5518 7F0909E8 3C028003 */ lui $v0, %hi(debug_stanhit_flag) +/* 0C551C 7F0909EC 24426F84 */ addiu $v0, %lo(debug_stanhit_flag) # addiu $v0, $v0, 0x6f84 +/* 0C5520 7F0909F0 8C4D0000 */ lw $t5, ($v0) +/* 0C5524 7F0909F4 39AE0001 */ xori $t6, $t5, 1 +/* 0C5528 7F0909F8 1000011E */ b .L7F090E74 +/* 0C552C 7F0909FC AC4E0000 */ sw $t6, ($v0) +debug_stanregion: +/* 0C5530 7F090A00 3C028003 */ lui $v0, %hi(debug_stanregion_flag) +/* 0C5534 7F090A04 24426F88 */ addiu $v0, %lo(debug_stanregion_flag) # addiu $v0, $v0, 0x6f88 +/* 0C5538 7F090A08 8C4F0000 */ lw $t7, ($v0) +/* 0C553C 7F090A0C 39F80001 */ xori $t8, $t7, 1 +/* 0C5540 7F090A10 10000118 */ b .L7F090E74 +/* 0C5544 7F090A14 AC580000 */ sw $t8, ($v0) +debug_turbo: +/* 0C5548 7F090A18 3C028003 */ lui $v0, %hi(turbo_mode_flag) +/* 0C554C 7F090A1C 24426F8C */ addiu $v0, %lo(turbo_mode_flag) # addiu $v0, $v0, 0x6f8c +/* 0C5550 7F090A20 8C590000 */ lw $t9, ($v0) +/* 0C5554 7F090A24 3B280001 */ xori $t0, $t9, 1 +/* 0C5558 7F090A28 10000112 */ b .L7F090E74 +/* 0C555C 7F090A2C AC480000 */ sw $t0, ($v0) +debug_printmanpos: +/* 0C5560 7F090A30 3C028003 */ lui $v0, %hi(debug_man_pos_flag) +/* 0C5564 7F090A34 24426F90 */ addiu $v0, %lo(debug_man_pos_flag) # addiu $v0, $v0, 0x6f90 +/* 0C5568 7F090A38 8C490000 */ lw $t1, ($v0) +/* 0C556C 7F090A3C 392A0001 */ xori $t2, $t1, 1 +/* 0C5570 7F090A40 1000010C */ b .L7F090E74 +/* 0C5574 7F090A44 AC4A0000 */ sw $t2, ($v0) +debug_testingmanpos: +/* 0C5578 7F090A48 3C028003 */ lui $v0, %hi(debug_testingmanpos_flag) +/* 0C557C 7F090A4C 24426FC8 */ addiu $v0, %lo(debug_testingmanpos_flag) # addiu $v0, $v0, 0x6fc8 +/* 0C5580 7F090A50 8C4B0000 */ lw $t3, ($v0) +/* 0C5584 7F090A54 396C0001 */ xori $t4, $t3, 1 +/* 0C5588 7F090A58 10000106 */ b .L7F090E74 +/* 0C558C 7F090A5C AC4C0000 */ sw $t4, ($v0) +debug_playtitle: +/* 0C5590 7F090A60 0C001A54 */ jal set_loaded_stage +/* 0C5594 7F090A64 2404005A */ li $a0, 90 +/* 0C5598 7F090A68 10000103 */ b .L7F090E78 +/* 0C559C 7F090A6C 8FB80018 */ lw $t8, 0x18($sp) +debug_bonddie: +/* 0C55A0 7F090A70 0FC225EA */ jal kill_current_player +/* 0C55A4 7F090A74 00000000 */ nop +/* 0C55A8 7F090A78 100000FF */ b .L7F090E78 +/* 0C55AC 7F090A7C 8FB80018 */ lw $t8, 0x18($sp) +debug_prroomloads: +/* 0C55B0 7F090A80 3C028003 */ lui $v0, %hi(debug_prroomloads_flag) +/* 0C55B4 7F090A84 24426F94 */ addiu $v0, %lo(debug_prroomloads_flag) # addiu $v0, $v0, 0x6f94 +/* 0C55B8 7F090A88 8C4D0000 */ lw $t5, ($v0) +/* 0C55BC 7F090A8C 39AE0001 */ xori $t6, $t5, 1 +/* 0C55C0 7F090A90 100000F8 */ b .L7F090E74 +/* 0C55C4 7F090A94 AC4E0000 */ sw $t6, ($v0) +debug_showmemuse: +/* 0C55C8 7F090A98 0C0017FD */ jal enable_show_mem_use_flag +/* 0C55CC 7F090A9C 00000000 */ nop +/* 0C55D0 7F090AA0 100000F5 */ b .L7F090E78 +/* 0C55D4 7F090AA4 8FB80018 */ lw $t8, 0x18($sp) +debug_showmembars: +/* 0C55D8 7F090AA8 0C001801 */ jal mem_bars_flag_toggle +/* 0C55DC 7F090AAC 00000000 */ nop +/* 0C55E0 7F090AB0 100000F1 */ b .L7F090E78 +/* 0C55E4 7F090AB4 8FB80018 */ lw $t8, 0x18($sp) +debug_grabrgb: +/* 0C55E8 7F090AB8 24030001 */ li $v1, 1 +/* 0C55EC 7F090ABC 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C55F0 7F090AC0 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at) +/* 0C55F4 7F090AC4 0C0038B4 */ jal osViBlack +/* 0C55F8 7F090AC8 24040001 */ li $a0, 1 +/* 0C55FC 7F090ACC 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C5600 7F090AD0 00000000 */ nop +/* 0C5604 7F090AD4 100000E8 */ b .L7F090E78 +/* 0C5608 7F090AD8 8FB80018 */ lw $t8, 0x18($sp) +debug_grabjpeg: +/* 0C560C 7F090ADC 24030001 */ li $v1, 1 +/* 0C5610 7F090AE0 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5614 7F090AE4 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5618 7F090AE8 0C0038B4 */ jal osViBlack +/* 0C561C 7F090AEC 24040001 */ li $a0, 1 +/* 0C5620 7F090AF0 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C5624 7F090AF4 00000000 */ nop +/* 0C5628 7F090AF8 100000DF */ b .L7F090E78 +/* 0C562C 7F090AFC 8FB80018 */ lw $t8, 0x18($sp) +debug_taskgrab: +/* 0C5630 7F090B00 3C028003 */ lui $v0, %hi(debug_enable_taskgrab_flag) +/* 0C5634 7F090B04 24426FC4 */ addiu $v0, %lo(debug_enable_taskgrab_flag) # addiu $v0, $v0, 0x6fc4 +/* 0C5638 7F090B08 8C4F0000 */ lw $t7, ($v0) +/* 0C563C 7F090B0C 39F80001 */ xori $t8, $t7, 1 +/* 0C5640 7F090B10 100000D8 */ b .L7F090E74 +/* 0C5644 7F090B14 AC580000 */ sw $t8, ($v0) +debug_recordramrom: +/* 0C5648 7F090B18 0FC301EF */ jal setRamRomRecordSlot +/* 0C564C 7F090B1C 00002025 */ move $a0, $zero +/* 0C5650 7F090B20 100000D5 */ b .L7F090E78 +/* 0C5654 7F090B24 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record1: +/* 0C5658 7F090B28 0FC301EF */ jal setRamRomRecordSlot +/* 0C565C 7F090B2C 24040001 */ li $a0, 1 +/* 0C5660 7F090B30 100000D1 */ b .L7F090E78 +/* 0C5664 7F090B34 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record2: +/* 0C5668 7F090B38 0FC301EF */ jal setRamRomRecordSlot +/* 0C566C 7F090B3C 24040002 */ li $a0, 2 +/* 0C5670 7F090B40 100000CD */ b .L7F090E78 +/* 0C5674 7F090B44 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record3: +/* 0C5678 7F090B48 0FC301EF */ jal setRamRomRecordSlot +/* 0C567C 7F090B4C 24040003 */ li $a0, 3 +/* 0C5680 7F090B50 100000C9 */ b .L7F090E78 +/* 0C5684 7F090B54 8FB80018 */ lw $t8, 0x18($sp) +debug_replayramrom: +/* 0C5688 7F090B58 0FC3022A */ jal replay_recorded_ramrom_from_indy +/* 0C568C 7F090B5C 00000000 */ nop +/* 0C5690 7F090B60 100000C5 */ b .L7F090E78 +/* 0C5694 7F090B64 8FB80018 */ lw $t8, 0x18($sp) +debug_saveramrom: +/* 0C5698 7F090B68 0FC2FF58 */ jal save_ramrom_to_devtool +/* 0C569C 7F090B6C 00000000 */ nop +/* 0C56A0 7F090B70 100000C1 */ b .L7F090E78 +/* 0C56A4 7F090B74 8FB80018 */ lw $t8, 0x18($sp) +debug_loadramrom: +/* 0C56A8 7F090B78 0FC2FF80 */ jal load_ramrom_from_devtool +/* 0C56AC 7F090B7C 00000000 */ nop +/* 0C56B0 7F090B80 100000BD */ b .L7F090E78 +/* 0C56B4 7F090B84 8FB80018 */ lw $t8, 0x18($sp) +debug_autoyaim: +/* 0C56B8 7F090B88 0FC1F160 */ jal get_BONDdata_autoaim_y +/* 0C56BC 7F090B8C 00000000 */ nop +/* 0C56C0 7F090B90 0FC1F15C */ jal set_BONDdata_autoaim_y +/* 0C56C4 7F090B94 2C440001 */ sltiu $a0, $v0, 1 +/* 0C56C8 7F090B98 100000B7 */ b .L7F090E78 +/* 0C56CC 7F090B9C 8FB80018 */ lw $t8, 0x18($sp) +debug_autoxaim: +/* 0C56D0 7F090BA0 0FC1F19A */ jal get_BONDdata_autoaim_x +/* 0C56D4 7F090BA4 00000000 */ nop +/* 0C56D8 7F090BA8 0FC1F196 */ jal set_BONDdata_autoaim_x +/* 0C56DC 7F090BAC 2C440001 */ sltiu $a0, $v0, 1 +/* 0C56E0 7F090BB0 100000B1 */ b .L7F090E78 +/* 0C56E4 7F090BB4 8FB80018 */ lw $t8, 0x18($sp) +debug_007: +/* 0C56E8 7F090BB8 3C028003 */ lui $v0, %hi(debug_007_unlock_flag) +/* 0C56EC 7F090BBC 24426FAC */ addiu $v0, %lo(debug_007_unlock_flag) # addiu $v0, $v0, 0x6fac +/* 0C56F0 7F090BC0 8C590000 */ lw $t9, ($v0) +/* 0C56F4 7F090BC4 3B280001 */ xori $t0, $t9, 1 +/* 0C56F8 7F090BC8 100000AA */ b .L7F090E74 +/* 0C56FC 7F090BCC AC480000 */ sw $t0, ($v0) +debug_agent: +/* 0C5700 7F090BD0 3C028003 */ lui $v0, %hi(debug_enable_agent_levels_flag) +/* 0C5704 7F090BD4 24426FB0 */ addiu $v0, %lo(debug_enable_agent_levels_flag) # addiu $v0, $v0, 0x6fb0 +/* 0C5708 7F090BD8 8C490000 */ lw $t1, ($v0) +/* 0C570C 7F090BDC 392A0001 */ xori $t2, $t1, 1 +/* 0C5710 7F090BE0 100000A4 */ b .L7F090E74 +/* 0C5714 7F090BE4 AC4A0000 */ sw $t2, ($v0) +debug_all: +/* 0C5718 7F090BE8 3C028003 */ lui $v0, %hi(debug_enable_all_levels_flag) +/* 0C571C 7F090BEC 24426FB4 */ addiu $v0, %lo(debug_enable_all_levels_flag) # addiu $v0, $v0, 0x6fb4 +/* 0C5720 7F090BF0 8C4B0000 */ lw $t3, ($v0) +/* 0C5724 7F090BF4 396C0001 */ xori $t4, $t3, 1 +/* 0C5728 7F090BF8 1000009E */ b .L7F090E74 +/* 0C572C 7F090BFC AC4C0000 */ sw $t4, ($v0) +fast_bond_debug: +/* 0C5730 7F090C00 3C028003 */ lui $v0, %hi(debug_fast_bond_flag) +/* 0C5734 7F090C04 24426FCC */ addiu $v0, %lo(debug_fast_bond_flag) # addiu $v0, $v0, 0x6fcc +/* 0C5738 7F090C08 8C4D0000 */ lw $t5, ($v0) +/* 0C573C 7F090C0C 39AE0001 */ xori $t6, $t5, 1 +/* 0C5740 7F090C10 10000098 */ b .L7F090E74 +/* 0C5744 7F090C14 AC4E0000 */ sw $t6, ($v0) +debug_objectives: +/* 0C5748 7F090C18 3C028003 */ lui $v0, %hi(debug_all_obj_complete_flag) +/* 0C574C 7F090C1C 24426FD0 */ addiu $v0, %lo(debug_all_obj_complete_flag) # addiu $v0, $v0, 0x6fd0 +/* 0C5750 7F090C20 8C4F0000 */ lw $t7, ($v0) +/* 0C5754 7F090C24 39F80001 */ xori $t8, $t7, 1 +/* 0C5758 7F090C28 10000092 */ b .L7F090E74 +/* 0C575C 7F090C2C AC580000 */ sw $t8, ($v0) +debug_showpatrols: +/* 0C5760 7F090C30 0FC07D5A */ jal get_show_patrols_flag +/* 0C5764 7F090C34 00000000 */ nop +/* 0C5768 7F090C38 0FC07D57 */ jal set_show_patrols_flag +/* 0C576C 7F090C3C 2C440001 */ sltiu $a0, $v0, 1 +/* 0C5770 7F090C40 1000008D */ b .L7F090E78 +/* 0C5774 7F090C44 8FB80018 */ lw $t8, 0x18($sp) +debug_intro: +/* 0C5778 7F090C48 0FC1EA6E */ jal set_camera_mode +/* 0C577C 7F090C4C 24040003 */ li $a0, 3 +/* 0C5780 7F090C50 10000089 */ b .L7F090E78 +/* 0C5784 7F090C54 8FB80018 */ lw $t8, 0x18($sp) +debug_intropos: +/* 0C5788 7F090C58 3C198003 */ lui $t9, %hi(debug_render_raster) +/* 0C578C 7F090C5C 8F396F64 */ lw $t9, %lo(debug_render_raster)($t9) +/* 0C5790 7F090C60 57200085 */ bnezl $t9, .L7F090E78 +/* 0C5794 7F090C64 8FB80018 */ lw $t8, 0x18($sp) +/* 0C5798 7F090C68 0FC24586 */ jal sub_GAME_7F091618 +/* 0C579C 7F090C6C 00000000 */ nop +/* 0C57A0 7F090C70 10000081 */ b .L7F090E78 +/* 0C57A4 7F090C74 8FB80018 */ lw $t8, 0x18($sp) +debug_worldpos: +/* 0C57A8 7F090C78 3C088003 */ lui $t0, %hi(debug_render_raster) +/* 0C57AC 7F090C7C 8D086F64 */ lw $t0, %lo(debug_render_raster)($t0) +/* 0C57B0 7F090C80 15000005 */ bnez $t0, .L7F090C98 +/* 0C57B4 7F090C84 00000000 */ nop +/* 0C57B8 7F090C88 0FC2459B */ jal sub_GAME_7F09166C +/* 0C57BC 7F090C8C 00000000 */ nop +/* 0C57C0 7F090C90 10000079 */ b .L7F090E78 +/* 0C57C4 7F090C94 8FB80018 */ lw $t8, 0x18($sp) +.L7F090C98: +/* 0C57C8 7F090C98 0FC225E6 */ jal get_curplayer_positiondata +/* 0C57CC 7F090C9C 00000000 */ nop +/* 0C57D0 7F090CA0 10400074 */ beqz $v0, .L7F090E74 +/* 0C57D4 7F090CA4 00401825 */ move $v1, $v0 +/* 0C57D8 7F090CA8 3C028003 */ lui $v0, %hi(player_pos_x) +/* 0C57DC 7F090CAC 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004 +/* 0C57E0 7F090CB0 C4460000 */ lwc1 $f6, ($v0) +/* 0C57E4 7F090CB4 C4640008 */ lwc1 $f4, 8($v1) +/* 0C57E8 7F090CB8 C44A0004 */ lwc1 $f10, 4($v0) +/* 0C57EC 7F090CBC C468000C */ lwc1 $f8, 0xc($v1) +/* 0C57F0 7F090CC0 46062001 */ sub.s $f0, $f4, $f6 +/* 0C57F4 7F090CC4 C4520008 */ lwc1 $f18, 8($v0) +/* 0C57F8 7F090CC8 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0C57FC 7F090CCC 460A4081 */ sub.s $f2, $f8, $f10 +/* 0C5800 7F090CD0 46000102 */ mul.s $f4, $f0, $f0 +/* 0C5804 7F090CD4 AFA30050 */ sw $v1, 0x50($sp) +/* 0C5808 7F090CD8 46128381 */ sub.s $f14, $f16, $f18 +/* 0C580C 7F090CDC 46021182 */ mul.s $f6, $f2, $f2 +/* 0C5810 7F090CE0 46062200 */ add.s $f8, $f4, $f6 +/* 0C5814 7F090CE4 460E7282 */ mul.s $f10, $f14, $f14 +/* 0C5818 7F090CE8 0C007DF8 */ jal sqrtf +/* 0C581C 7F090CEC 460A4300 */ add.s $f12, $f8, $f10 +/* 0C5820 7F090CF0 8FA30050 */ lw $v1, 0x50($sp) +/* 0C5824 7F090CF4 3C028003 */ lui $v0, %hi(player_pos_x) +/* 0C5828 7F090CF8 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004 +/* 0C582C 7F090CFC C4700008 */ lwc1 $f16, 8($v1) +/* 0C5830 7F090D00 E4500000 */ swc1 $f16, ($v0) +/* 0C5834 7F090D04 C472000C */ lwc1 $f18, 0xc($v1) +/* 0C5838 7F090D08 E4520004 */ swc1 $f18, 4($v0) +/* 0C583C 7F090D0C C4640010 */ lwc1 $f4, 0x10($v1) +/* 0C5840 7F090D10 10000058 */ b .L7F090E74 +/* 0C5844 7F090D14 E4440008 */ swc1 $f4, 8($v0) +debug_chrkeypos: +/* 0C5848 7F090D18 0FC2406C */ jal get_highlighted_debug_option +/* 0C584C 7F090D1C 00000000 */ nop +/* 0C5850 7F090D20 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5854 7F090D24 10000053 */ b .L7F090E74 +/* 0C5858 7F090D28 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_chrnum: +/* 0C585C 7F090D2C 3C028003 */ lui $v0, %hi(debug_chrnum_flag) +/* 0C5860 7F090D30 24426FB8 */ addiu $v0, %lo(debug_chrnum_flag) # addiu $v0, $v0, 0x6fb8 +/* 0C5864 7F090D34 8C490000 */ lw $t1, ($v0) +/* 0C5868 7F090D38 392A0001 */ xori $t2, $t1, 1 +/* 0C586C 7F090D3C 1000004D */ b .L7F090E74 +/* 0C5870 7F090D40 AC4A0000 */ sw $t2, ($v0) +debug_viscvg: +/* 0C5874 7F090D44 3C028003 */ lui $v0, %hi(debug_VisCVG_flag) +/* 0C5878 7F090D48 24426FA8 */ addiu $v0, %lo(debug_VisCVG_flag) # addiu $v0, $v0, 0x6fa8 +/* 0C587C 7F090D4C 8C4B0000 */ lw $t3, ($v0) +/* 0C5880 7F090D50 396C0001 */ xori $t4, $t3, 1 +/* 0C5884 7F090D54 10000047 */ b .L7F090E74 +/* 0C5888 7F090D58 AC4C0000 */ sw $t4, ($v0) +debug_joy2skyedit: +/* 0C588C 7F090D5C 3C028003 */ lui $v0, %hi(debug_joy2skyedit_flag) +/* 0C5890 7F090D60 24426F98 */ addiu $v0, %lo(debug_joy2skyedit_flag) # addiu $v0, $v0, 0x6f98 +/* 0C5894 7F090D64 8C4D0000 */ lw $t5, ($v0) +/* 0C5898 7F090D68 39AE0001 */ xori $t6, $t5, 1 +/* 0C589C 7F090D6C 10000041 */ b .L7F090E74 +/* 0C58A0 7F090D70 AC4E0000 */ sw $t6, ($v0) +debug_joy2hitsedit: +/* 0C58A4 7F090D74 3C028003 */ lui $v0, %hi(debug_joy2hitsedit_flag) +/* 0C58A8 7F090D78 24426F9C */ addiu $v0, %lo(debug_joy2hitsedit_flag) # addiu $v0, $v0, 0x6f9c +/* 0C58AC 7F090D7C 8C4F0000 */ lw $t7, ($v0) +/* 0C58B0 7F090D80 39F80001 */ xori $t8, $t7, 1 +/* 0C58B4 7F090D84 1000003B */ b .L7F090E74 +/* 0C58B8 7F090D88 AC580000 */ sw $t8, ($v0) +debug_joy2detailedit: +/* 0C58BC 7F090D8C 3C028003 */ lui $v0, %hi(debug_joy2detailedit_flag) +/* 0C58C0 7F090D90 24426FA0 */ addiu $v0, %lo(debug_joy2detailedit_flag) # addiu $v0, $v0, 0x6fa0 +/* 0C58C4 7F090D94 8C590000 */ lw $t9, ($v0) +/* 0C58C8 7F090D98 3B280001 */ xori $t0, $t9, 1 +/* 0C58CC 7F090D9C 10000035 */ b .L7F090E74 +/* 0C58D0 7F090DA0 AC480000 */ sw $t0, ($v0) +debug_explosioninfo: +/* 0C58D4 7F090DA4 3C028003 */ lui $v0, %hi(debug_explosioninfo_flag) +/* 0C58D8 7F090DA8 24426FA4 */ addiu $v0, %lo(debug_explosioninfo_flag) # addiu $v0, $v0, 0x6fa4 +/* 0C58DC 7F090DAC 8C490000 */ lw $t1, ($v0) +/* 0C58E0 7F090DB0 392A0001 */ xori $t2, $t1, 1 +/* 0C58E4 7F090DB4 1000002F */ b .L7F090E74 +/* 0C58E8 7F090DB8 AC4A0000 */ sw $t2, ($v0) +debug_magicfog: +/* 0C58EC 7F090DBC 0FC2406C */ jal get_highlighted_debug_option +/* 0C58F0 7F090DC0 00000000 */ nop +/* 0C58F4 7F090DC4 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C58F8 7F090DC8 1000002A */ b .L7F090E74 +/* 0C58FC 7F090DCC AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_fog: +/* 0C5900 7F090DD0 0FC2406C */ jal get_highlighted_debug_option +/* 0C5904 7F090DD4 00000000 */ nop +/* 0C5908 7F090DD8 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C590C 7F090DDC 10000025 */ b .L7F090E74 +/* 0C5910 7F090DE0 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_gunwatchpos: +/* 0C5914 7F090DE4 3C028003 */ lui $v0, %hi(debug_gunwatchpos_flags) +/* 0C5918 7F090DE8 24426FBC */ addiu $v0, %lo(debug_gunwatchpos_flags) # addiu $v0, $v0, 0x6fbc +/* 0C591C 7F090DEC 8C4B0000 */ lw $t3, ($v0) +/* 0C5920 7F090DF0 396C0001 */ xori $t4, $t3, 1 +/* 0C5924 7F090DF4 1000001F */ b .L7F090E74 +/* 0C5928 7F090DF8 AC4C0000 */ sw $t4, ($v0) +debug_roomblocks: +/* 0C592C 7F090DFC 0FC0F9A6 */ jal removed_debug_roomblocks_feature +/* 0C5930 7F090E00 00000000 */ nop +/* 0C5934 7F090E04 1000001C */ b .L7F090E78 +/* 0C5938 7F090E08 8FB80018 */ lw $t8, 0x18($sp) +debug_profile: +/* 0C593C 7F090E0C 3C028003 */ lui $v0, %hi(debug_profile_flag) +/* 0C5940 7F090E10 24426FC0 */ addiu $v0, %lo(debug_profile_flag) # addiu $v0, $v0, 0x6fc0 +/* 0C5944 7F090E14 8C4D0000 */ lw $t5, ($v0) +/* 0C5948 7F090E18 39AE0001 */ xori $t6, $t5, 1 +/* 0C594C 7F090E1C 11C00005 */ beqz $t6, .L7F090E34 +/* 0C5950 7F090E20 AC4E0000 */ sw $t6, ($v0) +/* 0C5954 7F090E24 0FC24164 */ jal removed_do_debug_profile_flag_false +/* 0C5958 7F090E28 00000000 */ nop +/* 0C595C 7F090E2C 10000012 */ b .L7F090E78 +/* 0C5960 7F090E30 8FB80018 */ lw $t8, 0x18($sp) +.L7F090E34: +/* 0C5964 7F090E34 0FC24166 */ jal removed_do_debug_profile_flag_true +/* 0C5968 7F090E38 00000000 */ nop +/* 0C596C 7F090E3C 1000000E */ b .L7F090E78 +/* 0C5970 7F090E40 8FB80018 */ lw $t8, 0x18($sp) +debug_objload: +/* 0C5974 7F090E44 0FC00496 */ jal debug_object_load_all_models +/* 0C5978 7F090E48 00000000 */ nop +/* 0C597C 7F090E4C 1000000A */ b .L7F090E78 +/* 0C5980 7F090E50 8FB80018 */ lw $t8, 0x18($sp) +debug_weaponload: +/* 0C5984 7F090E54 0FC00503 */ jal debug_weapon_load_table +/* 0C5988 7F090E58 00000000 */ nop +/* 0C598C 7F090E5C 10000006 */ b .L7F090E78 +/* 0C5990 7F090E60 8FB80018 */ lw $t8, 0x18($sp) +debug_introedit: +/* 0C5994 7F090E64 0FC2406C */ jal get_highlighted_debug_option +/* 0C5998 7F090E68 00000000 */ nop +/* 0C599C 7F090E6C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C59A0 7F090E70 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +def_7F090770: +.L7F090E74: +/* 0C59A4 7F090E74 8FB80018 */ lw $t8, 0x18($sp) +.L7F090E78: +/* 0C59A8 7F090E78 33190003 */ andi $t9, $t8, 3 +/* 0C59AC 7F090E7C 5320000D */ beql $t9, $zero, .L7F090EB4 +/* 0C59B0 7F090E80 8FA90018 */ lw $t1, 0x18($sp) +/* 0C59B4 7F090E84 0FC2406C */ jal get_highlighted_debug_option +/* 0C59B8 7F090E88 00000000 */ nop +/* 0C59BC 7F090E8C 2448FFCE */ addiu $t0, $v0, -0x32 +/* 0C59C0 7F090E90 2D010005 */ sltiu $at, $t0, 5 +/* 0C59C4 7F090E94 10200006 */ beqz $at, .L7F090EB0 +/* 0C59C8 7F090E98 00084080 */ sll $t0, $t0, 2 +/* 0C59CC 7F090E9C 3C018005 */ lui $at, %hi(jpt_80055830) +/* 0C59D0 7F090EA0 00280821 */ addu $at, $at, $t0 +/* 0C59D4 7F090EA4 8C285830 */ lw $t0, %lo(jpt_80055830)($at) +/* 0C59D8 7F090EA8 01000008 */ jr $t0 +/* 0C59DC 7F090EAC 00000000 */ nop +def_7F090EA8: +.L7F090EB0: +/* 0C59E0 7F090EB0 8FA90018 */ lw $t1, 0x18($sp) +.L7F090EB4: +/* 0C59E4 7F090EB4 3C0B8003 */ lui $t3, %hi(show_debug_menu_flag) +/* 0C59E8 7F090EB8 312A1000 */ andi $t2, $t1, 0x1000 +/* 0C59EC 7F090EBC 11400009 */ beqz $t2, .L7F090EE4 +/* 0C59F0 7F090EC0 00000000 */ nop +/* 0C59F4 7F090EC4 8D6B6FF8 */ lw $t3, %lo(show_debug_menu_flag)($t3) +/* 0C59F8 7F090EC8 24010001 */ li $at, 1 +/* 0C59FC 7F090ECC 15610003 */ bne $t3, $at, .L7F090EDC +/* 0C5A00 7F090ED0 00000000 */ nop +/* 0C5A04 7F090ED4 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C5A08 7F090ED8 00000000 */ nop +.L7F090EDC: +/* 0C5A0C 7F090EDC 3C018003 */ lui $at, %hi(show_debug_menu_flag) +/* 0C5A10 7F090EE0 AC206FF8 */ sw $zero, %lo(show_debug_menu_flag)($at) +.L7F090EE4: +/* 0C5A14 7F090EE4 3C028003 */ lui $v0, %hi(show_debug_menu_flag) +/* 0C5A18 7F090EE8 8C426FF8 */ lw $v0, %lo(show_debug_menu_flag)($v0) +.L7F090EEC: +/* 0C5A1C 7F090EEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5A20 7F090EF0 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0C5A24 7F090EF4 03E00008 */ jr $ra +/* 0C5A28 7F090EF8 00000000 */ nop +) +#endif + +s32 get_debug_render_raster(void) { + return debug_render_raster; +} + +s32 get_debug_freeze_processing(void) { + return debug_freeze_processing; +} + +s32 get_debug_limit_controller_input(void) { + return debug_limit_controller_input; +} + +void set_debug_limit_controller_input(void) { + debug_limit_controller_input = debug_unknown; +} + +s32 get_memusage_display_flag(void) { + return memusage_display_flag; +} + +s32 get_debug_do_draw_bg(void) { + return debug_do_draw_bg; +} + +s32 get_debug_do_draw_obj(void) { + return debug_do_draw_obj; +} + +s32 get_debug_stanhit_flag(void) { + return debug_stanhit_flag; +} + +s32 get_debug_stanregion_flag(void) { + return debug_stanregion_flag; +} + +s32 get_turbo_mode_flag(void) { + return turbo_mode_flag; +} + +s32 get_debug_man_pos_flag(void) { + return debug_man_pos_flag; +} + +s32 get_debug_testingmanpos_flag(void) { + return debug_testingmanpos_flag; +} + +void set_debug_testingmanpos_flag(s32 flag) { + debug_testingmanpos_flag = flag; +} + +s32 get_debug_joy2skyedit_flag(void) { + return debug_joy2skyedit_flag; +} + +s32 get_debug_joy2hitsedit_flag(void) { + return debug_joy2hitsedit_flag; +} + +s32 get_debug_joy2detailedit_flag(void) { + return debug_joy2detailedit_flag; +} + +s32 get_debug_explosioninfo_flag(void) { + return debug_explosioninfo_flag; +} + +s32 get_debug_prroomloads_flag(void) { + return debug_prroomloads_flag; +} + +// Get Current Status of VisCVG (True/False) +s32 get_debug_VisCVG_flag(void) { + return debug_VisCVG_flag; +} + +// Set VisCVG (True/False) +void set_debug_VisCVG_flag(s32 flag) { + debug_VisCVG_flag = flag; +} + +s32 get_debug_007_unlock_flag(void) { + return debug_007_unlock_flag; +} + +s32 get_debug_enable_agent_levels_flag(void) { + return debug_enable_agent_levels_flag; +} + +s32 get_debug_enable_all_levels_flag(void) { + return debug_enable_all_levels_flag; +} + +s32 get_debug_fast_bond_flag(void) { + return debug_fast_bond_flag; +} + +void set_debug_fast_bond_flag(s32 flag) { + debug_fast_bond_flag = flag; +} + +s32 get_debug_all_obj_complete_flag(void) { + return debug_all_obj_complete_flag; +} + +s32 get_debug_portal_flag(void) { + return debug_portal_flag; +} + +s32 get_debug_chrnum_flag(void) { + return debug_chrnum_flag; +} + +s32 get_debug_gunwatchpos_flag(void) { + return debug_gunwatchpos_flags; +} + +s32 get_debug_profile_flag(void) { + return debug_profile_flag; +} + +s32 get_debug_taskgrab_val(void) { + return debug_enable_taskgrab_flag; +} + + + + diff --git a/src/game/debugmenu_090490.h b/src/game/debugmenu_090490.h new file mode 100644 index 0000000..cb0b376 --- /dev/null +++ b/src/game/debugmenu_090490.h @@ -0,0 +1,42 @@ +#ifndef _DEBUGMENU_090490_H_ +#define _DEBUGMENU_090490_H_ +#include "ultra64.h" + +struct mcm_layout { + int xpos; + int ypos; +}; + +s32 get_debug_render_raster(void); +s32 get_debug_freeze_processing(void); +s32 get_debug_limit_controller_input(void); +void set_debug_limit_controller_input(void); +s32 get_memusage_display_flag(void); +s32 get_debug_do_draw_bg(void); +s32 get_debug_do_draw_obj(void); +s32 get_debug_stanhit_flag(void); +s32 get_debug_stanregion_flag(void); +s32 get_turbo_mode_flag(void); +s32 get_debug_man_pos_flag(void); +s32 get_debug_testingmanpos_flag(void); +void set_debug_testingmanpos_flag(s32 flag); +s32 get_debug_joy2skyedit_flag(void); +s32 get_debug_joy2hitsedit_flag(void); +s32 get_debug_joy2detailedit_flag(void); +s32 get_debug_explosioninfo_flag(void); +s32 get_debug_prroomloads_flag(void); +s32 get_debug_VisCVG_flag(void); +void set_debug_VisCVG_flag(s32 flag); +s32 get_debug_007_unlock_flag(void); +s32 get_debug_enable_agent_levels_flag(void); +s32 get_debug_enable_all_levels_flag(void); +s32 get_debug_fast_bond_flag(void); +void set_debug_fast_bond_flag(s32 flag); +s32 get_debug_all_obj_complete_flag(void); +s32 get_debug_portal_flag(void); +s32 get_debug_chrnum_flag(void); +s32 get_debug_gunwatchpos_flag(void); +s32 get_debug_profile_flag(void); +s32 get_debug_taskgrab_val(void); +void debug_menu_processor(void); +#endif diff --git a/src/game/decompress.c b/src/game/decompress.c new file mode 100644 index 0000000..b3de228 --- /dev/null +++ b/src/game/decompress.c @@ -0,0 +1,92 @@ +#include "ultra64.h" +#include "zlib.h" + +//this definately isn't proper way this data was represented, but works for now +// rodata +//D:8005BF80 +const u32 rz_header_bytes[] = { + 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000, + 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000 +}; + + + + +#ifdef NONMATCHING +u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2) { + +} +#else +GLOBAL_ASM( +.text +glabel decompressdata +/* 103320 7F0CE7F0 3C078009 */ lui $a3, %hi(dword_CODE_bss_8008D350) +/* 103324 7F0CE7F4 24E7D350 */ addiu $a3, %lo(dword_CODE_bss_8008D350) # addiu $a3, $a3, -0x2cb0 +/* 103328 7F0CE7F8 ACE40000 */ sw $a0, ($a3) +/* 10332C 7F0CE7FC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D354) +/* 103330 7F0CE800 AC25D354 */ sw $a1, %lo(dword_CODE_bss_8008D354)($at) +/* 103334 7F0CE804 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 103338 7F0CE808 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D360) +/* 10333C 7F0CE80C AFBF0014 */ sw $ra, 0x14($sp) +/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(dword_CODE_bss_8008D360)($at) +/* 103344 7F0CE814 3C0E8006 */ lui $t6, %hi(rz_header_bytes) +/* 103348 7F0CE818 91CEBF80 */ lbu $t6, %lo(rz_header_bytes)($t6) +/* 10334C 7F0CE81C 90820000 */ lbu $v0, ($a0) +/* 103350 7F0CE820 3C188006 */ lui $t8, %hi(rz_header_bytes+0x5) +/* 103354 7F0CE824 3C198006 */ lui $t9, %hi(rz_header_bytes+0x8) +/* 103358 7F0CE828 144E0005 */ bne $v0, $t6, .L7F0CE840 +/* 10335C 7F0CE82C 3C0A8006 */ lui $t2, %hi(rz_header_bytes+0x18) +/* 103360 7F0CE830 908F0001 */ lbu $t7, 1($a0) +/* 103364 7F0CE834 9318BF85 */ lbu $t8, %lo(rz_header_bytes+0x5)($t8) +/* 103368 7F0CE838 51F8000A */ beql $t7, $t8, .L7F0CE864 +/* 10336C 7F0CE83C 8CEC0000 */ lw $t4, ($a3) +.L7F0CE840: +/* 103370 7F0CE840 9083FFFF */ lbu $v1, -1($a0) +/* 103374 7F0CE844 9339BF88 */ lbu $t9, %lo(rz_header_bytes+0x8)($t9) +/* 103378 7F0CE848 54790002 */ bnel $v1, $t9, .L7F0CE854 +/* 10337C 7F0CE84C 9089FFFE */ lbu $t1, -2($a0) +/* 103380 7F0CE850 9089FFFE */ lbu $t1, -2($a0) +.L7F0CE854: +/* 103384 7F0CE854 914ABF98 */ lbu $t2, %lo(rz_header_bytes+0x18)($t2) +/* 103388 7F0CE858 552A0002 */ bnel $t1, $t2, .L7F0CE864 +/* 10338C 7F0CE85C 8CEC0000 */ lw $t4, ($a3) +/* 103390 7F0CE860 8CEC0000 */ lw $t4, ($a3) +.L7F0CE864: +/* 103394 7F0CE864 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 103398 7F0CE868 258D0002 */ addiu $t5, $t4, 2 +/* 10339C 7F0CE86C ACED0000 */ sw $t5, ($a3) +/* 1033A0 7F0CE870 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) +/* 1033A4 7F0CE874 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D358) +/* 1033A8 7F0CE878 0FC33F35 */ jal loop_to_decompress_entire_file +/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(dword_CODE_bss_8008D358)($at) +/* 1033B0 7F0CE880 8FBF0014 */ lw $ra, 0x14($sp) +/* 1033B4 7F0CE884 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D35C) +/* 1033B8 7F0CE888 8C42D35C */ lw $v0, %lo(dword_CODE_bss_8008D35C)($v0) +/* 1033BC 7F0CE88C 03E00008 */ jr $ra +/* 1033C0 7F0CE890 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CE894(void) { + // Node 0 + return (dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE894 +/* 1033C4 7F0CE894 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008D350) +/* 1033C8 7F0CE898 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D358) +/* 1033CC 7F0CE89C 8DEFD358 */ lw $t7, %lo(dword_CODE_bss_8008D358)($t7) +/* 1033D0 7F0CE8A0 8DCED350 */ lw $t6, %lo(dword_CODE_bss_8008D350)($t6) +/* 1033D4 7F0CE8A4 03E00008 */ jr $ra +/* 1033D8 7F0CE8A8 01CF1021 */ addu $v0, $t6, $t7 +) +#endif + + diff --git a/src/game/decompress.h b/src/game/decompress.h new file mode 100644 index 0000000..b9d1d86 --- /dev/null +++ b/src/game/decompress.h @@ -0,0 +1,8 @@ +#ifndef _DECOMPRESS_H_ +#define _DECOMPRESS_H_ +#include "ultra64.h" + +u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2); +s32 sub_GAME_7F0CE894(void); + +#endif diff --git a/src/game/dyn.c b/src/game/dyn.c new file mode 100644 index 0000000..cea3a03 --- /dev/null +++ b/src/game/dyn.c @@ -0,0 +1,578 @@ +#include "ultra64.h" +#include "game/dyn.h" +// bss +//CODE.bss:8008C230 +s32 *ptr_mgfx0_alloc_start; +//CODE.bss:8008C234 +s32 *ptr_mgfx1_alloc_start; +//CODE.bss:8008C238 +s32 *ptr_mgfx_end; +//CODE.bss:8008C23C +s32 D_8008C23C; +//CODE.bss:8008C240 +s32 *ptr_mvtx0_alloc_start; +//CODE.bss:8008C244 +s32 *ptr_mvtx1_alloc_start; +//CODE.bss:8008C248 +s32 *ptr_mvtx_end; +//CODE.bss:8008C24C +s32 *ptr_mvtx_cur_pos; +//CODE.bss:8008C250 +s32 bank_in_mgfx_alloc_table; +//CODE.bss:8008C254 +s32 dword_CODE_bss_8008C254; + + +// data +//D:800482E0 +s32 D_800482E0 = 0; +//D:800482E4 +s32 D_800482E4[] = {0x10000, 0x18000, 0x20000}; +//D:800482F0 +s32 D_800482F0[] = {0x28000, 0x10000, 0x18000, 0x20000, 0x28000}; + +//D:80048304 +char membars_string1[] = ">>>>>>>>>>>>>>>>>>>>>>>>>"; +//D:80048320 +char membars_string2[] = "========================="; +//D:8004833C +char membars_string3[] = "-------------------------"; + + +//rodata + +void dynInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_800482E0, "dyn_c_debug"); +} + +#ifdef NONMATCHING +void set_vtx_gfx_mem_alloc(void) { + s32 sp18; + ? temp_ret; + + if (check_token(1, "-mgfx") != 0) + { + dyn_c_debug_notice_list_entry[get_num_players()] = strtol(check_token(1, "-mgfx"), 0, 0) << 0xa; + } + + if (check_token(1, "-mvtx") != 0) + { + D_800482F0[get_num_players()] = strtol(check_token(1, "-mvtx"), 0, 0) << 0xa; + } + + mempAllocBytesInBank(dyn_c_debug_notice_list_entry[sVar1] << 1, 4); + ptr_mgfx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start); + ptr_mgfx0_alloc_start.unk8 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start.unk4); + ptr_mvtx0_alloc_start = mempAllocBytesInBank(((0x80050000 + (get_num_players() * 4))->unk-7D10 * 2), 4); + ptr_mvtx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D10 + ptr_mvtx0_alloc_start); + temp_ret = get_num_players(); + ptr_mvtx0_alloc_start.unk8 = (s32) ((0x80050000 + (temp_ret * 4))->unk-7D10 + ptr_mvtx0_alloc_start.unk4); + bank_in_mgfx_alloc_table = (u8)0; + dword_CODE_bss_8008C254 = 0; + (void *)0x80090000->unk-3DB4 = (s32) ptr_mvtx0_alloc_start; + return temp_ret; +} +#else +GLOBAL_ASM( +.rdata +/*D:8005B68C*/ +glabel aMgfx +/*"-mgfx"*/ +.word 0x2D6D6766, 0x78000000 + +/*D:8005B694*/ +glabel aMgfx_1 + /*"-mgfx"*/ +.word 0x2D6D6766, 0x78000000 + +/*D:8005B69C*/ +glabel aMvtx + /*"-mvtx"*/ +.word 0x2D6D7674, 0x78000000 + +/*D:8005B6A4*/ +glabel aMvtx_0 + /*"-mvtx"*/ +.word 0x2D6D7674, 0x78000000 + +.text +glabel set_vtx_gfx_mem_alloc +/* 0F1FBC 7F0BD48C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F1FC0 7F0BD490 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1FC4 7F0BD494 3C058006 */ lui $a1, %hi(aMgfx) +/* 0F1FC8 7F0BD498 24A5B68C */ addiu $a1, %lo(aMgfx) # addiu $a1, $a1, -0x4974 +/* 0F1FCC 7F0BD49C 0C0029A8 */ jal check_token +/* 0F1FD0 7F0BD4A0 24040001 */ li $a0, 1 +/* 0F1FD4 7F0BD4A4 10400012 */ beqz $v0, .L7F0BD4F0 +/* 0F1FD8 7F0BD4A8 00000000 */ nop +/* 0F1FDC 7F0BD4AC 0FC26919 */ jal get_num_players +/* 0F1FE0 7F0BD4B0 00000000 */ nop +/* 0F1FE4 7F0BD4B4 3C058006 */ lui $a1, %hi(aMgfx_1) +/* 0F1FE8 7F0BD4B8 24A5B694 */ addiu $a1, %lo(aMgfx_1) # addiu $a1, $a1, -0x496c +/* 0F1FEC 7F0BD4BC AFA20018 */ sw $v0, 0x18($sp) +/* 0F1FF0 7F0BD4C0 0C0029A8 */ jal check_token +/* 0F1FF4 7F0BD4C4 24040001 */ li $a0, 1 +/* 0F1FF8 7F0BD4C8 00402025 */ move $a0, $v0 +/* 0F1FFC 7F0BD4CC 00002825 */ move $a1, $zero +/* 0F2000 7F0BD4D0 0C002A78 */ jal strtol +/* 0F2004 7F0BD4D4 00003025 */ move $a2, $zero +/* 0F2008 7F0BD4D8 8FAF0018 */ lw $t7, 0x18($sp) +/* 0F200C 7F0BD4DC 3C018005 */ lui $at, %hi(D_800482E0) +/* 0F2010 7F0BD4E0 00027280 */ sll $t6, $v0, 0xa +/* 0F2014 7F0BD4E4 000FC080 */ sll $t8, $t7, 2 +/* 0F2018 7F0BD4E8 00380821 */ addu $at, $at, $t8 +/* 0F201C 7F0BD4EC AC2E82E0 */ sw $t6, %lo(D_800482E0)($at) +.L7F0BD4F0: +/* 0F2020 7F0BD4F0 3C058006 */ lui $a1, %hi(aMvtx) +/* 0F2024 7F0BD4F4 24A5B69C */ addiu $a1, %lo(aMvtx) # addiu $a1, $a1, -0x4964 +/* 0F2028 7F0BD4F8 0C0029A8 */ jal check_token +/* 0F202C 7F0BD4FC 24040001 */ li $a0, 1 +/* 0F2030 7F0BD500 10400012 */ beqz $v0, .L7F0BD54C +/* 0F2034 7F0BD504 00000000 */ nop +/* 0F2038 7F0BD508 0FC26919 */ jal get_num_players +/* 0F203C 7F0BD50C 00000000 */ nop +/* 0F2040 7F0BD510 3C058006 */ lui $a1, %hi(aMvtx_0) +/* 0F2044 7F0BD514 24A5B6A4 */ addiu $a1, %lo(aMvtx_0) # addiu $a1, $a1, -0x495c +/* 0F2048 7F0BD518 AFA20018 */ sw $v0, 0x18($sp) +/* 0F204C 7F0BD51C 0C0029A8 */ jal check_token +/* 0F2050 7F0BD520 24040001 */ li $a0, 1 +/* 0F2054 7F0BD524 00402025 */ move $a0, $v0 +/* 0F2058 7F0BD528 00002825 */ move $a1, $zero +/* 0F205C 7F0BD52C 0C002A78 */ jal strtol +/* 0F2060 7F0BD530 00003025 */ move $a2, $zero +/* 0F2064 7F0BD534 8FA80018 */ lw $t0, 0x18($sp) +/* 0F2068 7F0BD538 3C018005 */ lui $at, %hi(D_800482F0) +/* 0F206C 7F0BD53C 0002CA80 */ sll $t9, $v0, 0xa +/* 0F2070 7F0BD540 00084880 */ sll $t1, $t0, 2 +/* 0F2074 7F0BD544 00290821 */ addu $at, $at, $t1 +/* 0F2078 7F0BD548 AC3982F0 */ sw $t9, %lo(D_800482F0)($at) +.L7F0BD54C: +/* 0F207C 7F0BD54C 0FC26919 */ jal get_num_players +/* 0F2080 7F0BD550 00000000 */ nop +/* 0F2084 7F0BD554 00025080 */ sll $t2, $v0, 2 +/* 0F2088 7F0BD558 3C048005 */ lui $a0, %hi(D_800482E0) +/* 0F208C 7F0BD55C 008A2021 */ addu $a0, $a0, $t2 +/* 0F2090 7F0BD560 8C8482E0 */ lw $a0, %lo(D_800482E0)($a0) +/* 0F2094 7F0BD564 24050004 */ li $a1, 4 +/* 0F2098 7F0BD568 00045840 */ sll $t3, $a0, 1 +/* 0F209C 7F0BD56C 0C0025C8 */ jal mempAllocBytesInBank +/* 0F20A0 7F0BD570 01602025 */ move $a0, $t3 +/* 0F20A4 7F0BD574 3C018009 */ lui $at, %hi(ptr_mgfx0_alloc_start) +/* 0F20A8 7F0BD578 0FC26919 */ jal get_num_players +/* 0F20AC 7F0BD57C AC22C230 */ sw $v0, %lo(ptr_mgfx0_alloc_start)($at) +/* 0F20B0 7F0BD580 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) +/* 0F20B4 7F0BD584 00026080 */ sll $t4, $v0, 2 +/* 0F20B8 7F0BD588 3C0D8005 */ lui $t5, %hi(D_800482E0) +/* 0F20BC 7F0BD58C 01AC6821 */ addu $t5, $t5, $t4 +/* 0F20C0 7F0BD590 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 +/* 0F20C4 7F0BD594 8C6F0000 */ lw $t7, ($v1) +/* 0F20C8 7F0BD598 8DAD82E0 */ lw $t5, %lo(D_800482E0)($t5) +/* 0F20CC 7F0BD59C 01AF7021 */ addu $t6, $t5, $t7 +/* 0F20D0 7F0BD5A0 0FC26919 */ jal get_num_players +/* 0F20D4 7F0BD5A4 AC6E0004 */ sw $t6, 4($v1) +/* 0F20D8 7F0BD5A8 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) +/* 0F20DC 7F0BD5AC 0002C080 */ sll $t8, $v0, 2 +/* 0F20E0 7F0BD5B0 3C088005 */ lui $t0, %hi(D_800482E0) +/* 0F20E4 7F0BD5B4 01184021 */ addu $t0, $t0, $t8 +/* 0F20E8 7F0BD5B8 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 +/* 0F20EC 7F0BD5BC 8C790004 */ lw $t9, 4($v1) +/* 0F20F0 7F0BD5C0 8D0882E0 */ lw $t0, %lo(D_800482E0)($t0) +/* 0F20F4 7F0BD5C4 01194821 */ addu $t1, $t0, $t9 +/* 0F20F8 7F0BD5C8 0FC26919 */ jal get_num_players +/* 0F20FC 7F0BD5CC AC690008 */ sw $t1, 8($v1) +/* 0F2100 7F0BD5D0 00025080 */ sll $t2, $v0, 2 +/* 0F2104 7F0BD5D4 3C048005 */ lui $a0, %hi(D_800482F0) +/* 0F2108 7F0BD5D8 008A2021 */ addu $a0, $a0, $t2 +/* 0F210C 7F0BD5DC 8C8482F0 */ lw $a0, %lo(D_800482F0)($a0) +/* 0F2110 7F0BD5E0 24050004 */ li $a1, 4 +/* 0F2114 7F0BD5E4 00045840 */ sll $t3, $a0, 1 +/* 0F2118 7F0BD5E8 0C0025C8 */ jal mempAllocBytesInBank +/* 0F211C 7F0BD5EC 01602025 */ move $a0, $t3 +/* 0F2120 7F0BD5F0 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F2124 7F0BD5F4 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F2128 7F0BD5F8 0FC26919 */ jal get_num_players +/* 0F212C 7F0BD5FC AC620000 */ sw $v0, ($v1) +/* 0F2130 7F0BD600 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F2134 7F0BD604 00026080 */ sll $t4, $v0, 2 +/* 0F2138 7F0BD608 3C0D8005 */ lui $t5, %hi(D_800482F0) +/* 0F213C 7F0BD60C 01AC6821 */ addu $t5, $t5, $t4 +/* 0F2140 7F0BD610 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F2144 7F0BD614 8C6F0000 */ lw $t7, ($v1) +/* 0F2148 7F0BD618 8DAD82F0 */ lw $t5, %lo(D_800482F0)($t5) +/* 0F214C 7F0BD61C 01AF7021 */ addu $t6, $t5, $t7 +/* 0F2150 7F0BD620 0FC26919 */ jal get_num_players +/* 0F2154 7F0BD624 AC6E0004 */ sw $t6, 4($v1) +/* 0F2158 7F0BD628 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F215C 7F0BD62C 0002C080 */ sll $t8, $v0, 2 +/* 0F2160 7F0BD630 3C088005 */ lui $t0, %hi(D_800482F0) +/* 0F2164 7F0BD634 01184021 */ addu $t0, $t0, $t8 +/* 0F2168 7F0BD638 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F216C 7F0BD63C 8C790004 */ lw $t9, 4($v1) +/* 0F2170 7F0BD640 8D0882F0 */ lw $t0, %lo(D_800482F0)($t0) +/* 0F2174 7F0BD644 3C018009 */ lui $at, %hi(bank_in_mgfx_alloc_table) +/* 0F2178 7F0BD648 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F217C 7F0BD64C 01194821 */ addu $t1, $t0, $t9 +/* 0F2180 7F0BD650 AC690008 */ sw $t1, 8($v1) +/* 0F2184 7F0BD654 A020C250 */ sb $zero, %lo(bank_in_mgfx_alloc_table)($at) +/* 0F2188 7F0BD658 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F218C 7F0BD65C AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) +/* 0F2190 7F0BD660 8C6A0000 */ lw $t2, ($v1) +/* 0F2194 7F0BD664 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) +/* 0F2198 7F0BD668 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F219C 7F0BD66C 03E00008 */ jr $ra +/* 0F21A0 7F0BD670 AC2AC24C */ sw $t2, %lo(ptr_mvtx_cur_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void get_ptr_displaylist(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_displaylist +/* 0F21A4 7F0BD674 3C0F8009 */ lui $t7, %hi(bank_in_mgfx_alloc_table) +/* 0F21A8 7F0BD678 91EFC250 */ lbu $t7, %lo(bank_in_mgfx_alloc_table)($t7) +/* 0F21AC 7F0BD67C 3C028009 */ lui $v0, %hi(ptr_mgfx0_alloc_start) +/* 0F21B0 7F0BD680 240E0001 */ li $t6, 1 +/* 0F21B4 7F0BD684 000FC080 */ sll $t8, $t7, 2 +/* 0F21B8 7F0BD688 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F21BC 7F0BD68C 00581021 */ addu $v0, $v0, $t8 +/* 0F21C0 7F0BD690 AC2EC254 */ sw $t6, %lo(dword_CODE_bss_8008C254)($at) +/* 0F21C4 7F0BD694 03E00008 */ jr $ra +/* 0F21C8 7F0BD698 8C42C230 */ lw $v0, %lo(ptr_mgfx0_alloc_start)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void allocate_something_in_mgfx(void) { + +} +#else +GLOBAL_ASM( +.text +glabel allocate_something_in_mgfx +/* 0F21CC 7F0BD69C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F21D0 7F0BD6A0 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F21D4 7F0BD6A4 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) +/* 0F21D8 7F0BD6A8 000E7880 */ sll $t7, $t6, 2 +/* 0F21DC 7F0BD6AC 030FC021 */ addu $t8, $t8, $t7 +/* 0F21E0 7F0BD6B0 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) +/* 0F21E4 7F0BD6B4 03041023 */ subu $v0, $t8, $a0 +/* 0F21E8 7F0BD6B8 0002C8C3 */ sra $t9, $v0, 3 +/* 0F21EC 7F0BD6BC 03E00008 */ jr $ra +/* 0F21F0 7F0BD6C0 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BD6C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6C4 +/* 0F21F4 7F0BD6C4 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F21F8 7F0BD6C8 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F21FC 7F0BD6CC 8CC20000 */ lw $v0, ($a2) +/* 0F2200 7F0BD6D0 00047100 */ sll $t6, $a0, 4 +/* 0F2204 7F0BD6D4 004E7821 */ addu $t7, $v0, $t6 +/* 0F2208 7F0BD6D8 03E00008 */ jr $ra +/* 0F220C 7F0BD6DC ACCF0000 */ sw $t7, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD6E0(void) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + 0x40); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6E0 +/* 0F2210 7F0BD6E0 3C058009 */ lui $a1, %hi(ptr_mvtx_cur_pos) +/* 0F2214 7F0BD6E4 24A5C24C */ addiu $a1, %lo(ptr_mvtx_cur_pos) # addiu $a1, $a1, -0x3db4 +/* 0F2218 7F0BD6E8 8CA20000 */ lw $v0, ($a1) +/* 0F221C 7F0BD6EC 244E0040 */ addiu $t6, $v0, 0x40 +/* 0F2220 7F0BD6F0 03E00008 */ jr $ra +/* 0F2224 7F0BD6F4 ACAE0000 */ sw $t6, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD6F8(s32 arg0) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (arg0 * 0x10)); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6F8 +/* 0F2228 7F0BD6F8 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F222C 7F0BD6FC 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F2230 7F0BD700 8CC20000 */ lw $v0, ($a2) +/* 0F2234 7F0BD704 00047100 */ sll $t6, $a0, 4 +/* 0F2238 7F0BD708 004E7821 */ addu $t7, $v0, $t6 +/* 0F223C 7F0BD70C 03E00008 */ jr $ra +/* 0F2240 7F0BD710 ACCF0000 */ sw $t7, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD714(s32 arg0) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (((arg0 + 0xf) | 0xf) ^ 0xf)); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD714 +/* 0F2244 7F0BD714 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F2248 7F0BD718 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F224C 7F0BD71C 8CC20000 */ lw $v0, ($a2) +/* 0F2250 7F0BD720 2484000F */ addiu $a0, $a0, 0xf +/* 0F2254 7F0BD724 348E000F */ ori $t6, $a0, 0xf +/* 0F2258 7F0BD728 39CF000F */ xori $t7, $t6, 0xf +/* 0F225C 7F0BD72C 004FC021 */ addu $t8, $v0, $t7 +/* 0F2260 7F0BD730 03E00008 */ jr $ra +/* 0F2264 7F0BD734 ACD80000 */ sw $t8, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *allocate_something_in_mvtx(void) { + // Node 0 + bank_in_mgfx_alloc_table = (s8) (bank_in_mgfx_alloc_table ^ 1); + dword_CODE_bss_8008C254 = 0; + ptr_mvtx_cur_pos = (?32) (0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DC0; + return &bank_in_mgfx_alloc_table; +} +#else +GLOBAL_ASM( +.text +glabel allocate_something_in_mvtx +/* 0F2268 7F0BD738 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F226C 7F0BD73C 2442C250 */ addiu $v0, %lo(bank_in_mgfx_alloc_table) # addiu $v0, $v0, -0x3db0 +/* 0F2270 7F0BD740 904E0000 */ lbu $t6, ($v0) +/* 0F2274 7F0BD744 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F2278 7F0BD748 3C088009 */ lui $t0, %hi(ptr_mvtx0_alloc_start) +/* 0F227C 7F0BD74C 39CF0001 */ xori $t7, $t6, 1 +/* 0F2280 7F0BD750 A04F0000 */ sb $t7, ($v0) +/* 0F2284 7F0BD754 AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) +/* 0F2288 7F0BD758 90580000 */ lbu $t8, ($v0) +/* 0F228C 7F0BD75C 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) +/* 0F2290 7F0BD760 0018C880 */ sll $t9, $t8, 2 +/* 0F2294 7F0BD764 01194021 */ addu $t0, $t0, $t9 +/* 0F2298 7F0BD768 8D08C240 */ lw $t0, %lo(ptr_mvtx0_alloc_start)($t0) +/* 0F229C 7F0BD76C 03E00008 */ jr $ra +/* 0F22A0 7F0BD770 AC28C24C */ sw $t0, %lo(ptr_mvtx_cur_pos)($at) +) +#endif + + + + + +void removed_debug_routine(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +s32 num_microcode_cmds_that_fit(s32 arg0) { + // Node 0 + return ((s32) ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DCC - arg0) >> 3); +} +#else +GLOBAL_ASM( +.text +glabel num_microcode_cmds_that_fit +/* 0F22AC 7F0BD77C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F22B0 7F0BD780 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F22B4 7F0BD784 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) +/* 0F22B8 7F0BD788 000E7880 */ sll $t7, $t6, 2 +/* 0F22BC 7F0BD78C 030FC021 */ addu $t8, $t8, $t7 +/* 0F22C0 7F0BD790 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) +/* 0F22C4 7F0BD794 03041023 */ subu $v0, $t8, $a0 +/* 0F22C8 7F0BD798 0002C8C3 */ sra $t9, $v0, 3 +/* 0F22CC 7F0BD79C 03E00008 */ jr $ra +/* 0F22D0 7F0BD7A0 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD7A4(void) { + // Node 0 + return ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DBC - ptr_mvtx_cur_pos); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD7A4 +/* 0F22D4 7F0BD7A4 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F22D8 7F0BD7A8 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F22DC 7F0BD7AC 3C188009 */ lui $t8, %hi(ptr_mvtx1_alloc_start) +/* 0F22E0 7F0BD7B0 3C198009 */ lui $t9, %hi(ptr_mvtx_cur_pos) +/* 0F22E4 7F0BD7B4 000E7880 */ sll $t7, $t6, 2 +/* 0F22E8 7F0BD7B8 030FC021 */ addu $t8, $t8, $t7 +/* 0F22EC 7F0BD7BC 8F18C244 */ lw $t8, %lo(ptr_mvtx1_alloc_start)($t8) +/* 0F22F0 7F0BD7C0 8F39C24C */ lw $t9, %lo(ptr_mvtx_cur_pos)($t9) +/* 0F22F4 7F0BD7C4 03E00008 */ jr $ra +/* 0F22F8 7F0BD7C8 03191023 */ subu $v0, $t8, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void compute_membar_display_string(void) { + +} +#else +GLOBAL_ASM( +.text +glabel compute_membar_display_string +/* 0F22FC 7F0BD7CC 44856000 */ mtc1 $a1, $f12 +/* 0F2300 7F0BD7D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2304 7F0BD7D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2308 7F0BD7D8 AFA60020 */ sw $a2, 0x20($sp) +/* 0F230C 7F0BD7DC 0C004E1F */ jal strlen +/* 0F2310 7F0BD7E0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0F2314 7F0BD7E4 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0F2318 7F0BD7E8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0F231C 7F0BD7EC 44800000 */ mtc1 $zero, $f0 +/* 0F2320 7F0BD7F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2324 7F0BD7F4 46046303 */ div.s $f12, $f12, $f4 +/* 0F2328 7F0BD7F8 4600603C */ c.lt.s $f12, $f0 +/* 0F232C 7F0BD7FC 00000000 */ nop +/* 0F2330 7F0BD800 45000001 */ bc1f .L7F0BD808 +/* 0F2334 7F0BD804 00000000 */ nop +.L7F0BD808: +/* 0F2338 7F0BD808 03E00008 */ jr $ra +/* 0F233C 7F0BD80C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void draw_membars(s32 arg0) { + void *temp_t7; + void *temp_t7_2; + + // Node 0 + temp_t7 = (&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); + compute_membar_display_string(&membars_string2, (f32) ((s32) (temp_t7->unk4 - arg0) >> 3), (f32) ((s32) (temp_t7->unk4 - *(&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4))) >> 3), arg0); + temp_t7_2 = (&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); + return compute_membar_display_string(&membars_string2, (f32) (temp_t7_2->unk4 - ptr_mvtx_cur_pos), (f32) (temp_t7_2->unk4 - *(&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4))), &ptr_mvtx0_alloc_start); +} +#else +GLOBAL_ASM( +.text +glabel draw_membars +/* 0F2340 7F0BD810 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F2344 7F0BD814 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) +/* 0F2348 7F0BD818 3C088009 */ lui $t0, %hi(ptr_mgfx0_alloc_start) +/* 0F234C 7F0BD81C 2508C230 */ addiu $t0, %lo(ptr_mgfx0_alloc_start) # addiu $t0, $t0, -0x3dd0 +/* 0F2350 7F0BD820 00027080 */ sll $t6, $v0, 2 +/* 0F2354 7F0BD824 010E7821 */ addu $t7, $t0, $t6 +/* 0F2358 7F0BD828 00024880 */ sll $t1, $v0, 2 +/* 0F235C 7F0BD82C 8DE30004 */ lw $v1, 4($t7) +/* 0F2360 7F0BD830 01095021 */ addu $t2, $t0, $t1 +/* 0F2364 7F0BD834 8D4B0000 */ lw $t3, ($t2) +/* 0F2368 7F0BD838 00803825 */ move $a3, $a0 +/* 0F236C 7F0BD83C 0067C023 */ subu $t8, $v1, $a3 +/* 0F2370 7F0BD840 006B6023 */ subu $t4, $v1, $t3 +/* 0F2374 7F0BD844 000C68C3 */ sra $t5, $t4, 3 +/* 0F2378 7F0BD848 0018C8C3 */ sra $t9, $t8, 3 +/* 0F237C 7F0BD84C 44992000 */ mtc1 $t9, $f4 +/* 0F2380 7F0BD850 448D3000 */ mtc1 $t5, $f6 +/* 0F2384 7F0BD854 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2388 7F0BD858 46802120 */ cvt.s.w $f4, $f4 +/* 0F238C 7F0BD85C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2390 7F0BD860 3C048005 */ lui $a0, %hi(membars_string2) +/* 0F2394 7F0BD864 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 +/* 0F2398 7F0BD868 468031A0 */ cvt.s.w $f6, $f6 +/* 0F239C 7F0BD86C 44052000 */ mfc1 $a1, $f4 +/* 0F23A0 7F0BD870 44063000 */ mfc1 $a2, $f6 +/* 0F23A4 7F0BD874 0FC2F5F3 */ jal compute_membar_display_string +/* 0F23A8 7F0BD878 00000000 */ nop +/* 0F23AC 7F0BD87C 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F23B0 7F0BD880 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) +/* 0F23B4 7F0BD884 3C078009 */ lui $a3, %hi(ptr_mvtx0_alloc_start) +/* 0F23B8 7F0BD888 24E7C240 */ addiu $a3, %lo(ptr_mvtx0_alloc_start) # addiu $a3, $a3, -0x3dc0 +/* 0F23BC 7F0BD88C 00027080 */ sll $t6, $v0, 2 +/* 0F23C0 7F0BD890 00EE7821 */ addu $t7, $a3, $t6 +/* 0F23C4 7F0BD894 00024880 */ sll $t1, $v0, 2 +/* 0F23C8 7F0BD898 8DE30004 */ lw $v1, 4($t7) +/* 0F23CC 7F0BD89C 00E95021 */ addu $t2, $a3, $t1 +/* 0F23D0 7F0BD8A0 3C188009 */ lui $t8, %hi(ptr_mvtx_cur_pos) +/* 0F23D4 7F0BD8A4 8F18C24C */ lw $t8, %lo(ptr_mvtx_cur_pos)($t8) +/* 0F23D8 7F0BD8A8 8D4B0000 */ lw $t3, ($t2) +/* 0F23DC 7F0BD8AC 3C048005 */ lui $a0, %hi(membars_string2) +/* 0F23E0 7F0BD8B0 0078C823 */ subu $t9, $v1, $t8 +/* 0F23E4 7F0BD8B4 006B6023 */ subu $t4, $v1, $t3 +/* 0F23E8 7F0BD8B8 448C5000 */ mtc1 $t4, $f10 +/* 0F23EC 7F0BD8BC 44994000 */ mtc1 $t9, $f8 +/* 0F23F0 7F0BD8C0 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 +/* 0F23F4 7F0BD8C4 468052A0 */ cvt.s.w $f10, $f10 +/* 0F23F8 7F0BD8C8 46804220 */ cvt.s.w $f8, $f8 +/* 0F23FC 7F0BD8CC 44065000 */ mfc1 $a2, $f10 +/* 0F2400 7F0BD8D0 44054000 */ mfc1 $a1, $f8 +/* 0F2404 7F0BD8D4 0FC2F5F3 */ jal compute_membar_display_string +/* 0F2408 7F0BD8D8 00000000 */ nop +/* 0F240C 7F0BD8DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2410 7F0BD8E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2414 7F0BD8E4 03E00008 */ jr $ra +/* 0F2418 7F0BD8E8 00000000 */ nop +) +#endif + + diff --git a/src/game/dyn.h b/src/game/dyn.h new file mode 100644 index 0000000..b883baf --- /dev/null +++ b/src/game/dyn.h @@ -0,0 +1,7 @@ +#ifndef _DYN_H_ +#define _DYN_H_ +#include "ultra64.h" + +void dynInitDebugNoticeList(void); + +#endif diff --git a/src/game/ejectedcartridges.c b/src/game/ejectedcartridges.c new file mode 100644 index 0000000..ed27c88 --- /dev/null +++ b/src/game/ejectedcartridges.c @@ -0,0 +1,58 @@ +#include "ultra64.h" + + + + + + + +#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 load_object_into_memory +/* 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 + diff --git a/src/game/fog.c b/src/game/fog.c new file mode 100644 index 0000000..e9c3c1c --- /dev/null +++ b/src/game/fog.c @@ -0,0 +1,1284 @@ +#include "ultra64.h" +#include "game/fog.h" + +// bss +//CODE.bss:800825C0 +s32 sky_enabled; +//CODE.bss:800825C4 +u32 *ptr_nearfog_enviroment_values; +//CODE.bss:800825C8 +s32 buffer_far_pervasiveness; +//CODE.bss:800825CC +s32 far_fog; +//CODE.bss:800825D0 +s32 D_800825D0; +//CODE.bss:800825D4 +s32 D_800825D4; +//CODE.bss:800825D8 +s32 flt_CODE_bss_800825D8; +//CODE.bss:800825DC +s32 flt_CODE_bss_800825DC; +//CODE.bss:800825E0 +s32 buffer_far_ambiant; +//CODE.bss:800825E4 +s32 bg_dif_light; +//CODE.bss:800825E8 +s32 env_table_hit; +//CODE.bss:800825EC +s32 env_table_match_start; +//CODE.bss:800825F0 +s32 env_table_match_end; +//CODE.bss:800825F4 +s32 D_800825F4; +//CODE.bss:800825F8 +u32 dword_CODE_bss_800825F8; + +f32 flt_CODE_bss_800825FC; +f32 flt_CODE_bss_80082600; +u32 dword_CODE_bss_80082604; +u32 dword_CODE_bss_80082608; +u32 dword_CODE_bss_8008260c; +u32 dword_CODE_bss_80082610; +u32 dword_CODE_bss_80082614; +u32 dword_CODE_bss_80082618; +u32 dword_CODE_bss_8008261C; +u8 off_CODE_bss_80082620; +u8 byte_CODE_bss_80082621; +u8 byte_CODE_bss_80082622; +u8 byte_CODE_bss_80082623; + +u8 byte_CODE_bss_80082624; +u8 byte_CODE_bss_80082625; +u8 byte_CODE_bss_80082626; +u8 byte_CODE_bss_80082627; +u8 byte_CODE_bss_80082628; +u8 byte_CODE_bss_80082629; +u8 byte_CODE_bss_8008262a; +u8 byte_CODE_bss_8008262b; +u8 byte_CODE_bss_8008262c; +u8 byte_CODE_bss_8008262d; +u8 byte_CODE_bss_8008262e; +u8 byte_CODE_bss_8008262f; +u8 byte_CODE_bss_80082630; +u8 byte_CODE_bss_80082631; +u8 byte_CODE_bss_80082632; +u8 byte_CODE_bss_80082633; +u8 byte_CODE_bss_80082634; +u8 byte_CODE_bss_80082635; +u8 byte_CODE_bss_80082636; +u8 byte_CODE_bss_80082637; +u8 byte_CODE_bss_80082638; +u8 byte_CODE_bss_80082639; +u8 byte_CODE_bss_8008263a; +u8 byte_CODE_bss_8008263b; +u8 byte_CODE_bss_8008263c; +u8 byte_CODE_bss_8008263d; +u8 byte_CODE_bss_8008263e; +u8 byte_CODE_bss_8008263f; +u8 byte_CODE_bss_80082640; +u8 byte_CODE_bss_80082641; +u8 byte_CODE_bss_80082642; +u8 byte_CODE_bss_80082643; +u8 byte_CODE_bss_80082644; +u8 byte_CODE_bss_80082645; +u8 byte_CODE_bss_80082646; +u8 byte_CODE_bss_80082647; +u8 byte_CODE_bss_80082648; +u8 byte_CODE_bss_80082649; +u8 byte_CODE_bss_8008264a; +u8 byte_CODE_bss_8008264b; +u8 byte_CODE_bss_8008264c; +u8 byte_CODE_bss_8008264d; +u8 byte_CODE_bss_8008264e; +u8 byte_CODE_bss_8008264f; +u8 byte_CODE_bss_80082650; +u8 byte_CODE_bss_80082651; +u8 byte_CODE_bss_80082652; +u8 byte_CODE_bss_80082653; +u8 byte_CODE_bss_80082654; +u8 byte_CODE_bss_80082655; +u8 byte_CODE_bss_80082656; +u8 byte_CODE_bss_80082657; +u8 byte_CODE_bss_80082658; +u8 byte_CODE_bss_80082659; +u8 byte_CODE_bss_8008265a; +u8 byte_CODE_bss_8008265b; +u8 byte_CODE_bss_8008265c; +u8 byte_CODE_bss_8008265d; +u8 byte_CODE_bss_8008265e; +u8 byte_CODE_bss_8008265f; + + + +// data +//D:80044DC0 +s32 D_80044DC0 = 0; +//D:80044DC4 +f32 near_fog_value = 3.4028235e38; +//D:80044DC8 +f32 near_fog_times_intensity = 0.0; +//D:80044DCC +s32 ptr_current_data[] = {0x384, 0x3E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +//D:80044E10 +struct fog_element fog_tables[] = { + {0x16, 15.0, 3500.0, 2000.0, 2500.0, 2000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 170.0, 100.0, 40.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 30.0}, + {0x17, 10.0, 10000.0, 2500.0, 5000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 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}, + {0x18, 10.0, 3000.0, 2000.0, 3000.0, 500.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x19, 10.0, 1500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x7D, 20.0, 15000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x1D, 10.0, 7500.0, 5000.0, 6000.0, 1000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x18, 0x20, 1, 5000.0, 0, 0, 225.0, 175.0, 100.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 25.0}, + {0x1E, 10.0, 3000.0, 1600.0, 2000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 7500.0, 0, 0, 70.0, 199.0, 186.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x1F, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x21, 5.0, 15000.0, 3333.0, 4444.0, 600.0, 0.0, 0x3E7, 0x3E3, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x3A5, 30.0, 15000.0, 3333.0, 4444.0, 600.0, 0.0, 0x3E7, 0x3E3, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x22, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3DE, 0x3E8, 0x10, 0x20, 0x10, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x86, 10.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3DE, 0x3E8, 0x40, 0x80, 0x40, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x23, 10.0, 15000.0, 6000.0, 8000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x30, 0x40, 1, 5000.0, 0, 0, 25.0, 25.0, 25.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x24, 2.0, 2500.0, 4444.0, 5555.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x60, 0x80, 1, 10000.0, 0, 0, 240.0, 120.0, 30.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 7.0}, + {0x25, 10.0, 2500.0, 1500.0, 2500.0, 1000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x20, 0, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x26, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x28, 1, 10000.0, 0, 0, 160.0, 160.0, 190.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x27, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x29, 10.0, 9500.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x2B, 2.0, 2000.0, 2500.0, 3055.0, 750.0, 0.0, 0x3E7, 0x3BD, 0x3E8, 0x20, 0x10, 0x10, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 20.0}, + {0x3AF, 2.0, 8000.0, 6000.0, 8000.0, 800.0, 0.0, 0x3E7, 0x3DF, 0x3E8, 0x20, 0x10, 0x10, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B, 10.0, 10000.0, 1000.0, 15000.0, 750.0, 0.0, 0x3E7, 0x3E4, 0x41A, 0x10, 0, 0, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xD1, 10.0, 2500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x135, 10.0, 2000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x199, 10.0, 1500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0xF1, 10.0, 7000.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x155, 10.0, 5500.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B9, 10.0, 4000.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xEE, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x152, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1B6, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0xEF, 10.0, 7500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x153, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B7, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xC8, 10.0, 7500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 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}, + {0x12C, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 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}, + {0x190, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 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}, + {0x28, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xF0, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x154, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B8, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xE7, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x14B, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1AF, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1C, 10.0, 15000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 72.0, 65.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x80, 30.0, 15000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 72.0, 65.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x20, 10.0, 20000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x84, 10.0, 10000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3CC, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 10.0, 10.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0} +}; + +struct fog_element2 fog_tables2[] = { + {0xFFFFFFFF, 0, 0x10, 0x40, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1A, 0x10, 0x30, 0x60, 1, 3000.0, 0, 0, 230.0, 230.0, 230.0, 1, 0, 0, 0, -150.0, 2, 0, 255.0, 255.0, 150.0, 0.0}, + {0x36, 0x30, 0x40, 0x10, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0} +}; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA720(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA720 +/* 0EF250 7F0BA720 AFA40000 */ sw $a0, ($sp) +/* 0EF254 7F0BA724 03E00008 */ jr $ra +/* 0EF258 7F0BA728 AFA50004 */ sw $a1, 4($sp) +) +#endif + + + + + +s32 get_ptr_currentdata(void){ + return ptr_current_data; +} + +f32 get_near_fog_value(void) { + return near_fog_value; +} + +f32 square_near_fog_value(void) { + return near_fog_value * near_fog_value; +} + + + + + +#ifdef NONMATCHING +void copy_table1_env_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_table1_env_to_current +/* 0EF288 7F0BA758 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EF28C 7F0BA75C AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF290 7F0BA760 C48E0008 */ lwc1 $f14, 8($a0) +/* 0EF294 7F0BA764 C48C0004 */ lwc1 $f12, 4($a0) +/* 0EF298 7F0BA768 0C001194 */ jal set_page_height +/* 0EF29C 7F0BA76C AFA40038 */ sw $a0, 0x38($sp) +/* 0EF2A0 7F0BA770 0C0011AB */ jal video_related_27 +/* 0EF2A4 7F0BA774 27A40030 */ addiu $a0, $sp, 0x30 +/* 0EF2A8 7F0BA778 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 0EF2AC 7F0BA77C 00000000 */ nop +/* 0EF2B0 7F0BA780 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0EF2B4 7F0BA784 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0EF2B8 7F0BA788 8FA50038 */ lw $a1, 0x38($sp) +/* 0EF2BC 7F0BA78C 46002183 */ div.s $f6, $f4, $f0 +/* 0EF2C0 7F0BA790 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0EF2C4 7F0BA794 3C048008 */ lui $a0, %hi(bg_dif_light) +/* 0EF2C8 7F0BA798 248425E4 */ addiu $a0, %lo(bg_dif_light) # addiu $a0, $a0, 0x25e4 +/* 0EF2CC 7F0BA79C 3C068008 */ lui $a2, %hi(buffer_far_ambiant) +/* 0EF2D0 7F0BA7A0 24C625E0 */ addiu $a2, %lo(buffer_far_ambiant) # addiu $a2, $a2, 0x25e0 +/* 0EF2D4 7F0BA7A4 3C038008 */ lui $v1, %hi(buffer_far_pervasiveness) +/* 0EF2D8 7F0BA7A8 246325C8 */ addiu $v1, %lo(buffer_far_pervasiveness) # addiu $v1, $v1, 0x25c8 +/* 0EF2DC 7F0BA7AC 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EF2E0 7F0BA7B0 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EF2E4 7F0BA7B4 46004283 */ div.s $f10, $f8, $f0 +/* 0EF2E8 7F0BA7B8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0EF2EC 7F0BA7BC 44814000 */ mtc1 $at, $f8 +/* 0EF2F0 7F0BA7C0 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0EF2F4 7F0BA7C4 8CAE0020 */ lw $t6, 0x20($a1) +/* 0EF2F8 7F0BA7C8 448E2000 */ mtc1 $t6, $f4 +/* 0EF2FC 7F0BA7CC 00000000 */ nop +/* 0EF300 7F0BA7D0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF304 7F0BA7D4 46083283 */ div.s $f10, $f6, $f8 +/* 0EF308 7F0BA7D8 44814000 */ mtc1 $at, $f8 +/* 0EF30C 7F0BA7DC 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EF310 7F0BA7E0 E48A0000 */ swc1 $f10, ($a0) +/* 0EF314 7F0BA7E4 8CAF0024 */ lw $t7, 0x24($a1) +/* 0EF318 7F0BA7E8 448F2000 */ mtc1 $t7, $f4 +/* 0EF31C 7F0BA7EC 24AF000C */ addiu $t7, $a1, 0xc +/* 0EF320 7F0BA7F0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF324 7F0BA7F4 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0EF328 7F0BA7F8 46083283 */ div.s $f10, $f6, $f8 +/* 0EF32C 7F0BA7FC C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0EF330 7F0BA800 46062381 */ sub.s $f14, $f4, $f6 +/* 0EF334 7F0BA804 E4CA0000 */ swc1 $f10, ($a2) +/* 0EF338 7F0BA808 C4D00000 */ lwc1 $f16, ($a2) +/* 0EF33C 7F0BA80C 46107202 */ mul.s $f8, $f14, $f16 +/* 0EF340 7F0BA810 46083280 */ add.s $f10, $f6, $f8 +/* 0EF344 7F0BA814 E42A4DC4 */ swc1 $f10, %lo(near_fog_value)($at) +/* 0EF348 7F0BA818 C4820000 */ lwc1 $f2, ($a0) +/* 0EF34C 7F0BA81C 3C018004 */ lui $at, %hi(near_fog_times_intensity) +/* 0EF350 7F0BA820 46027102 */ mul.s $f4, $f14, $f2 +/* 0EF354 7F0BA824 46043200 */ add.s $f8, $f6, $f4 +/* 0EF358 7F0BA828 E4284DC8 */ swc1 $f8, %lo(near_fog_times_intensity)($at) +/* 0EF35C 7F0BA82C C4AA0004 */ lwc1 $f10, 4($a1) +/* 0EF360 7F0BA830 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0EF364 7F0BA834 46005183 */ div.s $f6, $f10, $f0 +/* 0EF368 7F0BA838 46028281 */ sub.s $f10, $f16, $f2 +/* 0EF36C 7F0BA83C E4660000 */ swc1 $f6, ($v1) +/* 0EF370 7F0BA840 C4A40008 */ lwc1 $f4, 8($a1) +/* 0EF374 7F0BA844 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0EF378 7F0BA848 44813000 */ mtc1 $at, $f6 +/* 0EF37C 7F0BA84C 46002203 */ div.s $f8, $f4, $f0 +/* 0EF380 7F0BA850 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0EF384 7F0BA854 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EF388 7F0BA858 44815000 */ mtc1 $at, $f10 +/* 0EF38C 7F0BA85C 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0EF390 7F0BA860 C4720000 */ lwc1 $f18, ($v1) +/* 0EF394 7F0BA864 E4680004 */ swc1 $f8, 4($v1) +/* 0EF398 7F0BA868 46043203 */ div.s $f8, $f6, $f4 +/* 0EF39C 7F0BA86C C46C0004 */ lwc1 $f12, 4($v1) +/* 0EF3A0 7F0BA870 46025181 */ sub.s $f6, $f10, $f2 +/* 0EF3A4 7F0BA874 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0EF3A8 7F0BA878 44814000 */ mtc1 $at, $f8 +/* 0EF3AC 7F0BA87C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EF3B0 7F0BA880 46083282 */ mul.s $f10, $f6, $f8 +/* 0EF3B4 7F0BA884 46126201 */ sub.s $f8, $f12, $f18 +/* 0EF3B8 7F0BA888 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0EF3BC 7F0BA88C 44814000 */ mtc1 $at, $f8 +/* 0EF3C0 7F0BA890 46045183 */ div.s $f6, $f10, $f4 +/* 0EF3C4 7F0BA894 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0EF3C8 7F0BA898 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EF3CC 7F0BA89C 46005107 */ neg.s $f4, $f10 +/* 0EF3D0 7F0BA8A0 46089280 */ add.s $f10, $f18, $f8 +/* 0EF3D4 7F0BA8A4 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0EF3D8 7F0BA8A8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0EF3DC 7F0BA8AC 460C2182 */ mul.s $f6, $f4, $f12 +/* 0EF3E0 7F0BA8B0 00000000 */ nop +/* 0EF3E4 7F0BA8B4 460A3102 */ mul.s $f4, $f6, $f10 +/* 0EF3E8 7F0BA8B8 44815000 */ mtc1 $at, $f10 +/* 0EF3EC 7F0BA8BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EF3F0 7F0BA8C0 46082183 */ div.s $f6, $f4, $f8 +/* 0EF3F4 7F0BA8C4 44814000 */ mtc1 $at, $f8 +/* 0EF3F8 7F0BA8C8 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EF3FC 7F0BA8CC 460A3103 */ div.s $f4, $f6, $f10 +/* 0EF400 7F0BA8D0 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0EF404 7F0BA8D4 46086180 */ add.s $f6, $f12, $f8 +/* 0EF408 7F0BA8D8 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0EF40C 7F0BA8DC E4640010 */ swc1 $f4, 0x10($v1) +/* 0EF410 7F0BA8E0 460A3102 */ mul.s $f4, $f6, $f10 +/* 0EF414 7F0BA8E4 C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0EF418 7F0BA8E8 46082183 */ div.s $f6, $f4, $f8 +/* 0EF41C 7F0BA8EC 44814000 */ mtc1 $at, $f8 +/* 0EF420 7F0BA8F0 3C018008 */ lui $at, %hi(ptr_nearfog_enviroment_values) +/* 0EF424 7F0BA8F4 460A3100 */ add.s $f4, $f6, $f10 +/* 0EF428 7F0BA8F8 46082183 */ div.s $f6, $f4, $f8 +/* 0EF42C 7F0BA8FC E4660014 */ swc1 $f6, 0x14($v1) +/* 0EF430 7F0BA900 8CB80020 */ lw $t8, 0x20($a1) +/* 0EF434 7F0BA904 AC580000 */ sw $t8, ($v0) +/* 0EF438 7F0BA908 8CB90024 */ lw $t9, 0x24($a1) +/* 0EF43C 7F0BA90C 24180001 */ li $t8, 1 +/* 0EF440 7F0BA910 AC590004 */ sw $t9, 4($v0) +/* 0EF444 7F0BA914 90A80028 */ lbu $t0, 0x28($a1) +/* 0EF448 7F0BA918 A0480008 */ sb $t0, 8($v0) +/* 0EF44C 7F0BA91C 90A90029 */ lbu $t1, 0x29($a1) +/* 0EF450 7F0BA920 A0490009 */ sb $t1, 9($v0) +/* 0EF454 7F0BA924 90AA002A */ lbu $t2, 0x2a($a1) +/* 0EF458 7F0BA928 A04A000A */ sb $t2, 0xa($v0) +/* 0EF45C 7F0BA92C 90AB002B */ lbu $t3, 0x2b($a1) +/* 0EF460 7F0BA930 A04B000B */ sb $t3, 0xb($v0) +/* 0EF464 7F0BA934 C4AA002C */ lwc1 $f10, 0x2c($a1) +/* 0EF468 7F0BA938 E44A000C */ swc1 $f10, 0xc($v0) +/* 0EF46C 7F0BA93C 84AC0030 */ lh $t4, 0x30($a1) +/* 0EF470 7F0BA940 A44C0010 */ sh $t4, 0x10($v0) +/* 0EF474 7F0BA944 C4A40034 */ lwc1 $f4, 0x34($a1) +/* 0EF478 7F0BA948 E4440014 */ swc1 $f4, 0x14($v0) +/* 0EF47C 7F0BA94C C4A80038 */ lwc1 $f8, 0x38($a1) +/* 0EF480 7F0BA950 E4480018 */ swc1 $f8, 0x18($v0) +/* 0EF484 7F0BA954 C4A6003C */ lwc1 $f6, 0x3c($a1) +/* 0EF488 7F0BA958 E446001C */ swc1 $f6, 0x1c($v0) +/* 0EF48C 7F0BA95C 90AD0040 */ lbu $t5, 0x40($a1) +/* 0EF490 7F0BA960 A04D0020 */ sb $t5, 0x20($v0) +/* 0EF494 7F0BA964 C4AA0044 */ lwc1 $f10, 0x44($a1) +/* 0EF498 7F0BA968 E44A0024 */ swc1 $f10, 0x24($v0) +/* 0EF49C 7F0BA96C 84AE0048 */ lh $t6, 0x48($a1) +/* 0EF4A0 7F0BA970 A44E0028 */ sh $t6, 0x28($v0) +/* 0EF4A4 7F0BA974 C4A4004C */ lwc1 $f4, 0x4c($a1) +/* 0EF4A8 7F0BA978 E444002C */ swc1 $f4, 0x2c($v0) +/* 0EF4AC 7F0BA97C C4A80050 */ lwc1 $f8, 0x50($a1) +/* 0EF4B0 7F0BA980 44802000 */ mtc1 $zero, $f4 +/* 0EF4B4 7F0BA984 E4480030 */ swc1 $f8, 0x30($v0) +/* 0EF4B8 7F0BA988 C4A60054 */ lwc1 $f6, 0x54($a1) +/* 0EF4BC 7F0BA98C E4460034 */ swc1 $f6, 0x34($v0) +/* 0EF4C0 7F0BA990 C4AA0058 */ lwc1 $f10, 0x58($a1) +/* 0EF4C4 7F0BA994 E44A0038 */ swc1 $f10, 0x38($v0) +/* 0EF4C8 7F0BA998 C4A8000C */ lwc1 $f8, 0xc($a1) +/* 0EF4CC 7F0BA99C 46082032 */ c.eq.s $f4, $f8 +/* 0EF4D0 7F0BA9A0 00000000 */ nop +/* 0EF4D4 7F0BA9A4 45000004 */ bc1f .L7F0BA9B8 +/* 0EF4D8 7F0BA9A8 00000000 */ nop +/* 0EF4DC 7F0BA9AC 3C018008 */ lui $at, %hi(ptr_nearfog_enviroment_values) +/* 0EF4E0 7F0BA9B0 10000002 */ b .L7F0BA9BC +/* 0EF4E4 7F0BA9B4 AC2025C4 */ sw $zero, %lo(ptr_nearfog_enviroment_values)($at) +.L7F0BA9B8: +/* 0EF4E8 7F0BA9B8 AC2F25C4 */ sw $t7, %lo(ptr_nearfog_enviroment_values)($at) +.L7F0BA9BC: +/* 0EF4EC 7F0BA9BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EF4F0 7F0BA9C0 3C018008 */ lui $at, %hi(sky_enabled) +/* 0EF4F4 7F0BA9C4 AC3825C0 */ sw $t8, %lo(sky_enabled)($at) +/* 0EF4F8 7F0BA9C8 03E00008 */ jr $ra +/* 0EF4FC 7F0BA9CC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void copy_table2_env_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_table2_env_to_current +/* 0EF500 7F0BA9D0 908E0004 */ lbu $t6, 4($a0) +/* 0EF504 7F0BA9D4 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EF508 7F0BA9D8 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EF50C 7F0BA9DC A04E0008 */ sb $t6, 8($v0) +/* 0EF510 7F0BA9E0 908F0005 */ lbu $t7, 5($a0) +/* 0EF514 7F0BA9E4 A04F0009 */ sb $t7, 9($v0) +/* 0EF518 7F0BA9E8 90980006 */ lbu $t8, 6($a0) +/* 0EF51C 7F0BA9EC A058000A */ sb $t8, 0xa($v0) +/* 0EF520 7F0BA9F0 90990007 */ lbu $t9, 7($a0) +/* 0EF524 7F0BA9F4 A059000B */ sb $t9, 0xb($v0) +/* 0EF528 7F0BA9F8 C4840008 */ lwc1 $f4, 8($a0) +/* 0EF52C 7F0BA9FC E444000C */ swc1 $f4, 0xc($v0) +/* 0EF530 7F0BAA00 8488000C */ lh $t0, 0xc($a0) +/* 0EF534 7F0BAA04 A4480010 */ sh $t0, 0x10($v0) +/* 0EF538 7F0BAA08 C4860010 */ lwc1 $f6, 0x10($a0) +/* 0EF53C 7F0BAA0C E4460014 */ swc1 $f6, 0x14($v0) +/* 0EF540 7F0BAA10 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0EF544 7F0BAA14 E4480018 */ swc1 $f8, 0x18($v0) +/* 0EF548 7F0BAA18 C48A0018 */ lwc1 $f10, 0x18($a0) +/* 0EF54C 7F0BAA1C E44A001C */ swc1 $f10, 0x1c($v0) +/* 0EF550 7F0BAA20 9089001C */ lbu $t1, 0x1c($a0) +/* 0EF554 7F0BAA24 A0490020 */ sb $t1, 0x20($v0) +/* 0EF558 7F0BAA28 C4900020 */ lwc1 $f16, 0x20($a0) +/* 0EF55C 7F0BAA2C E4500024 */ swc1 $f16, 0x24($v0) +/* 0EF560 7F0BAA30 848A0024 */ lh $t2, 0x24($a0) +/* 0EF564 7F0BAA34 A44A0028 */ sh $t2, 0x28($v0) +/* 0EF568 7F0BAA38 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0EF56C 7F0BAA3C E452002C */ swc1 $f18, 0x2c($v0) +/* 0EF570 7F0BAA40 C484002C */ lwc1 $f4, 0x2c($a0) +/* 0EF574 7F0BAA44 E4440030 */ swc1 $f4, 0x30($v0) +/* 0EF578 7F0BAA48 C4860030 */ lwc1 $f6, 0x30($a0) +/* 0EF57C 7F0BAA4C E4460034 */ swc1 $f6, 0x34($v0) +/* 0EF580 7F0BAA50 C4880034 */ lwc1 $f8, 0x34($a0) +/* 0EF584 7F0BAA54 03E00008 */ jr $ra +/* 0EF588 7F0BAA58 E4480038 */ swc1 $f8, 0x38($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BAA5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BAA5C +/* 0EF58C 7F0BAA5C 03E00008 */ jr $ra +/* 0EF590 7F0BAA60 AFA40000 */ sw $a0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void load_enviroment(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel default_near_fog +.word 0x7f7fffff /*3.4028235e38*/ +glabel D_80058D74 +.word 0x461c4000 /*10000.0*/ +.text +glabel load_enviroment +/* 0EF594 7F0BAA64 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EF598 7F0BAA68 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF59C 7F0BAA6C AFA5002C */ sw $a1, 0x2c($sp) +/* 0EF5A0 7F0BAA70 AFA0001C */ sw $zero, 0x1c($sp) +/* 0EF5A4 7F0BAA74 0FC26919 */ jal get_num_players +/* 0EF5A8 7F0BAA78 AFA40028 */ sw $a0, 0x28($sp) +/* 0EF5AC 7F0BAA7C 24010001 */ li $at, 1 +/* 0EF5B0 7F0BAA80 8FA6001C */ lw $a2, 0x1c($sp) +/* 0EF5B4 7F0BAA84 8FA70028 */ lw $a3, 0x28($sp) +/* 0EF5B8 7F0BAA88 14410002 */ bne $v0, $at, .L7F0BAA94 +/* 0EF5BC 7F0BAA8C 00404025 */ move $t0, $v0 +/* 0EF5C0 7F0BAA90 00004025 */ move $t0, $zero +.L7F0BAA94: +/* 0EF5C4 7F0BAA94 3C018006 */ lui $at, %hi(default_near_fog) +/* 0EF5C8 7F0BAA98 C4248D70 */ lwc1 $f4, %lo(default_near_fog)($at) +/* 0EF5CC 7F0BAA9C 8FAE002C */ lw $t6, 0x2c($sp) +/* 0EF5D0 7F0BAAA0 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EF5D4 7F0BAAA4 44803000 */ mtc1 $zero, $f6 +/* 0EF5D8 7F0BAAA8 E4244DC4 */ swc1 $f4, %lo(near_fog_value)($at) +/* 0EF5DC 7F0BAAAC 3C018004 */ lui $at, %hi(near_fog_times_intensity) +/* 0EF5E0 7F0BAAB0 11C0001A */ beqz $t6, .L7F0BAB1C +/* 0EF5E4 7F0BAAB4 E4264DC8 */ swc1 $f6, %lo(near_fog_times_intensity)($at) +/* 0EF5E8 7F0BAAB8 3C098004 */ lui $t1, %hi(fog_tables) +/* 0EF5EC 7F0BAABC 25234E10 */ addiu $v1, $t1, %lo(fog_tables) +/* 0EF5F0 7F0BAAC0 8C6F0000 */ lw $t7, ($v1) +/* 0EF5F4 7F0BAAC4 3C188004 */ lui $t8, %hi(fog_tables) +/* 0EF5F8 7F0BAAC8 27184E10 */ addiu $t8, %lo(fog_tables) # addiu $t8, $t8, 0x4e10 +/* 0EF5FC 7F0BAACC 11E00013 */ beqz $t7, .L7F0BAB1C +/* 0EF600 7F0BAAD0 24E40384 */ addiu $a0, $a3, 0x384 +/* 0EF604 7F0BAAD4 8F020000 */ lw $v0, ($t8) +.L7F0BAAD8: +/* 0EF608 7F0BAAD8 1482000C */ bne $a0, $v0, .L7F0BAB0C +/* 0EF60C 7F0BAADC 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF610 7F0BAAE0 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF614 7F0BAAE4 AC430000 */ sw $v1, ($v0) +/* 0EF618 7F0BAAE8 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF61C 7F0BAAEC AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF620 7F0BAAF0 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF624 7F0BAAF4 2479005C */ addiu $t9, $v1, 0x5c +/* 0EF628 7F0BAAF8 AC3925F0 */ sw $t9, %lo(env_table_match_end)($at) +/* 0EF62C 7F0BAAFC 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF630 7F0BAB00 8C440000 */ lw $a0, ($v0) +/* 0EF634 7F0BAB04 10000065 */ b .L7F0BAC9C +/* 0EF638 7F0BAB08 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAB0C: +/* 0EF63C 7F0BAB0C 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF640 7F0BAB10 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF644 7F0BAB14 1440FFF0 */ bnez $v0, .L7F0BAAD8 +/* 0EF648 7F0BAB18 00000000 */ nop +.L7F0BAB1C: +/* 0EF64C 7F0BAB1C 3C098004 */ lui $t1, %hi(fog_tables) +/* 0EF650 7F0BAB20 25294E10 */ addiu $t1, %lo(fog_tables) # addiu $t1, $t1, 0x4e10 +/* 0EF654 7F0BAB24 8D250000 */ lw $a1, ($t1) +/* 0EF658 7F0BAB28 3C0A8004 */ lui $t2, %hi(fog_tables) +/* 0EF65C 7F0BAB2C 254A4E10 */ addiu $t2, %lo(fog_tables) # addiu $t2, $t2, 0x4e10 +/* 0EF660 7F0BAB30 10A00019 */ beqz $a1, .L7F0BAB98 +/* 0EF664 7F0BAB34 01201825 */ move $v1, $t1 +/* 0EF668 7F0BAB38 00085880 */ sll $t3, $t0, 2 +/* 0EF66C 7F0BAB3C 01685823 */ subu $t3, $t3, $t0 +/* 0EF670 7F0BAB40 000B58C0 */ sll $t3, $t3, 3 +/* 0EF674 7F0BAB44 01685821 */ addu $t3, $t3, $t0 +/* 0EF678 7F0BAB48 000B5880 */ sll $t3, $t3, 2 +/* 0EF67C 7F0BAB4C 00EB2021 */ addu $a0, $a3, $t3 +/* 0EF680 7F0BAB50 8D420000 */ lw $v0, ($t2) +.L7F0BAB54: +/* 0EF684 7F0BAB54 1482000C */ bne $a0, $v0, .L7F0BAB88 +/* 0EF688 7F0BAB58 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF68C 7F0BAB5C 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF690 7F0BAB60 AC430000 */ sw $v1, ($v0) +/* 0EF694 7F0BAB64 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF698 7F0BAB68 AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF69C 7F0BAB6C 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF6A0 7F0BAB70 246C005C */ addiu $t4, $v1, 0x5c +/* 0EF6A4 7F0BAB74 AC2C25F0 */ sw $t4, %lo(env_table_match_end)($at) +/* 0EF6A8 7F0BAB78 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF6AC 7F0BAB7C 8C440000 */ lw $a0, ($v0) +/* 0EF6B0 7F0BAB80 10000046 */ b .L7F0BAC9C +/* 0EF6B4 7F0BAB84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAB88: +/* 0EF6B8 7F0BAB88 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF6BC 7F0BAB8C 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF6C0 7F0BAB90 1440FFF0 */ bnez $v0, .L7F0BAB54 +/* 0EF6C4 7F0BAB94 00000000 */ nop +.L7F0BAB98: +/* 0EF6C8 7F0BAB98 29010002 */ slti $at, $t0, 2 +/* 0EF6CC 7F0BAB9C 5420001D */ bnezl $at, .L7F0BAC14 +/* 0EF6D0 7F0BABA0 3C014170 */ lui $at, 0x4170 +/* 0EF6D4 7F0BABA4 10A0001A */ beqz $a1, .L7F0BAC10 +/* 0EF6D8 7F0BABA8 01201825 */ move $v1, $t1 +/* 0EF6DC 7F0BABAC 00082080 */ sll $a0, $t0, 2 +/* 0EF6E0 7F0BABB0 00882023 */ subu $a0, $a0, $t0 +/* 0EF6E4 7F0BABB4 000420C0 */ sll $a0, $a0, 3 +/* 0EF6E8 7F0BABB8 3C0D8004 */ lui $t5, %hi(fog_tables) +/* 0EF6EC 7F0BABBC 25AD4E10 */ addiu $t5, %lo(fog_tables) # addiu $t5, $t5, 0x4e10 +/* 0EF6F0 7F0BABC0 00882021 */ addu $a0, $a0, $t0 +/* 0EF6F4 7F0BABC4 00042080 */ sll $a0, $a0, 2 +/* 0EF6F8 7F0BABC8 8DA20000 */ lw $v0, ($t5) +.L7F0BABCC: +/* 0EF6FC 7F0BABCC 1482000C */ bne $a0, $v0, .L7F0BAC00 +/* 0EF700 7F0BABD0 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF704 7F0BABD4 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF708 7F0BABD8 AC430000 */ sw $v1, ($v0) +/* 0EF70C 7F0BABDC 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF710 7F0BABE0 AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF714 7F0BABE4 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF718 7F0BABE8 246E005C */ addiu $t6, $v1, 0x5c +/* 0EF71C 7F0BABEC AC2E25F0 */ sw $t6, %lo(env_table_match_end)($at) +/* 0EF720 7F0BABF0 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF724 7F0BABF4 8C440000 */ lw $a0, ($v0) +/* 0EF728 7F0BABF8 10000028 */ b .L7F0BAC9C +/* 0EF72C 7F0BABFC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAC00: +/* 0EF730 7F0BAC00 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF734 7F0BAC04 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF738 7F0BAC08 1440FFF0 */ bnez $v0, .L7F0BABCC +/* 0EF73C 7F0BAC0C 00000000 */ nop +.L7F0BAC10: +/* 0EF740 7F0BAC10 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F0BAC14: +/* 0EF744 7F0BAC14 44816000 */ mtc1 $at, $f12 +/* 0EF748 7F0BAC18 3C018006 */ lui $at, %hi(D_80058D74) +/* 0EF74C 7F0BAC1C C42E8D74 */ lwc1 $f14, %lo(D_80058D74)($at) +/* 0EF750 7F0BAC20 AFA6001C */ sw $a2, 0x1c($sp) +/* 0EF754 7F0BAC24 0C001194 */ jal set_page_height +/* 0EF758 7F0BAC28 AFA70028 */ sw $a3, 0x28($sp) +/* 0EF75C 7F0BAC2C 3C048004 */ lui $a0, %hi(fog_tables2) +/* 0EF760 7F0BAC30 3C018008 */ lui $at, %hi(sky_enabled) +/* 0EF764 7F0BAC34 24845F50 */ addiu $a0, %lo(fog_tables2) # addiu $a0, $a0, 0x5f50 +/* 0EF768 7F0BAC38 AC2025C0 */ sw $zero, %lo(sky_enabled)($at) +/* 0EF76C 7F0BAC3C 8C8F0000 */ lw $t7, ($a0) +/* 0EF770 7F0BAC40 8FA6001C */ lw $a2, 0x1c($sp) +/* 0EF774 7F0BAC44 8FA70028 */ lw $a3, 0x28($sp) +/* 0EF778 7F0BAC48 11E0000B */ beqz $t7, .L7F0BAC78 +/* 0EF77C 7F0BAC4C 00801825 */ move $v1, $a0 +/* 0EF780 7F0BAC50 3C188004 */ lui $t8, %hi(fog_tables2) +/* 0EF784 7F0BAC54 27185F50 */ addiu $t8, %lo(fog_tables2) # addiu $t8, $t8, 0x5f50 +/* 0EF788 7F0BAC58 8F020000 */ lw $v0, ($t8) +.L7F0BAC5C: +/* 0EF78C 7F0BAC5C 54E20003 */ bnel $a3, $v0, .L7F0BAC6C +/* 0EF790 7F0BAC60 8C620038 */ lw $v0, 0x38($v1) +/* 0EF794 7F0BAC64 00603025 */ move $a2, $v1 +/* 0EF798 7F0BAC68 8C620038 */ lw $v0, 0x38($v1) +.L7F0BAC6C: +/* 0EF79C 7F0BAC6C 24630038 */ addiu $v1, $v1, 0x38 +/* 0EF7A0 7F0BAC70 1440FFFA */ bnez $v0, .L7F0BAC5C +/* 0EF7A4 7F0BAC74 00000000 */ nop +.L7F0BAC78: +/* 0EF7A8 7F0BAC78 14C00002 */ bnez $a2, .L7F0BAC84 +/* 0EF7AC 7F0BAC7C 00000000 */ nop +/* 0EF7B0 7F0BAC80 00803025 */ move $a2, $a0 +.L7F0BAC84: +/* 0EF7B4 7F0BAC84 0FC2EA74 */ jal copy_table2_env_to_current +/* 0EF7B8 7F0BAC88 00C02025 */ move $a0, $a2 +/* 0EF7BC 7F0BAC8C 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF7C0 7F0BAC90 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF7C4 7F0BAC94 AC400000 */ sw $zero, ($v0) +/* 0EF7C8 7F0BAC98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAC9C: +/* 0EF7CC 7F0BAC9C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EF7D0 7F0BACA0 03E00008 */ jr $ra +/* 0EF7D4 7F0BACA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void switch_to_solosky2(void) { + +} +#else +GLOBAL_ASM( +.text +glabel switch_to_solosky2 +/* 0EF7D8 7F0BACA8 3C028008 */ lui $v0, %hi(env_table_match_start) +/* 0EF7DC 7F0BACAC 8C4225EC */ lw $v0, %lo(env_table_match_start)($v0) +/* 0EF7E0 7F0BACB0 3C048008 */ lui $a0, %hi(dword_CODE_bss_800825F8) +/* 0EF7E4 7F0BACB4 248425F8 */ addiu $a0, %lo(dword_CODE_bss_800825F8) # addiu $a0, $a0, 0x25f8 +/* 0EF7E8 7F0BACB8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EF7EC 7F0BACBC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF7F0 7F0BACC0 00804025 */ move $t0, $a0 +/* 0EF7F4 7F0BACC4 0040C825 */ move $t9, $v0 +/* 0EF7F8 7F0BACC8 24580054 */ addiu $t8, $v0, 0x54 +.L7F0BACCC: +/* 0EF7FC 7F0BACCC 8F210000 */ lw $at, ($t9) +/* 0EF800 7F0BACD0 2739000C */ addiu $t9, $t9, 0xc +/* 0EF804 7F0BACD4 2508000C */ addiu $t0, $t0, 0xc +/* 0EF808 7F0BACD8 AD01FFF4 */ sw $at, -0xc($t0) +/* 0EF80C 7F0BACDC 8F21FFF8 */ lw $at, -8($t9) +/* 0EF810 7F0BACE0 AD01FFF8 */ sw $at, -8($t0) +/* 0EF814 7F0BACE4 8F21FFFC */ lw $at, -4($t9) +/* 0EF818 7F0BACE8 1738FFF8 */ bne $t9, $t8, .L7F0BACCC +/* 0EF81C 7F0BACEC AD01FFFC */ sw $at, -4($t0) +/* 0EF820 7F0BACF0 8F210000 */ lw $at, ($t9) +/* 0EF824 7F0BACF4 3C038008 */ lui $v1, %hi(env_table_match_end) +/* 0EF828 7F0BACF8 AD010000 */ sw $at, ($t0) +/* 0EF82C 7F0BACFC 8F380004 */ lw $t8, 4($t9) +/* 0EF830 7F0BAD00 3C018008 */ lui $at, %hi(flt_CODE_bss_800825FC) +/* 0EF834 7F0BAD04 AD180004 */ sw $t8, 4($t0) +/* 0EF838 7F0BAD08 8C6325F0 */ lw $v1, %lo(env_table_match_end)($v1) +/* 0EF83C 7F0BAD0C C4400004 */ lwc1 $f0, 4($v0) +/* 0EF840 7F0BAD10 C4640004 */ lwc1 $f4, 4($v1) +/* 0EF844 7F0BAD14 46002181 */ sub.s $f6, $f4, $f0 +/* 0EF848 7F0BAD18 46066202 */ mul.s $f8, $f12, $f6 +/* 0EF84C 7F0BAD1C 46080280 */ add.s $f10, $f0, $f8 +/* 0EF850 7F0BAD20 E42A25FC */ swc1 $f10, %lo(flt_CODE_bss_800825FC)($at) +/* 0EF854 7F0BAD24 C4420008 */ lwc1 $f2, 8($v0) +/* 0EF858 7F0BAD28 C4640008 */ lwc1 $f4, 8($v1) +/* 0EF85C 7F0BAD2C 3C018008 */ lui $at, %hi(flt_CODE_bss_80082600) +/* 0EF860 7F0BAD30 46022181 */ sub.s $f6, $f4, $f2 +/* 0EF864 7F0BAD34 46066202 */ mul.s $f8, $f12, $f6 +/* 0EF868 7F0BAD38 46081280 */ add.s $f10, $f2, $f8 +/* 0EF86C 7F0BAD3C E42A2600 */ swc1 $f10, %lo(flt_CODE_bss_80082600)($at) +/* 0EF870 7F0BAD40 8C490020 */ lw $t1, 0x20($v0) +/* 0EF874 7F0BAD44 8C6A0020 */ lw $t2, 0x20($v1) +/* 0EF878 7F0BAD48 3C018008 */ lui $at, %hi(dword_CODE_bss_8008261C) +/* 0EF87C 7F0BAD4C 44892000 */ mtc1 $t1, $f4 +/* 0EF880 7F0BAD50 448A3000 */ mtc1 $t2, $f6 +/* 0EF884 7F0BAD54 468023A0 */ cvt.s.w $f14, $f4 +/* 0EF888 7F0BAD58 46803220 */ cvt.s.w $f8, $f6 +/* 0EF88C 7F0BAD5C 460E4281 */ sub.s $f10, $f8, $f14 +/* 0EF890 7F0BAD60 460A6102 */ mul.s $f4, $f12, $f10 +/* 0EF894 7F0BAD64 46047180 */ add.s $f6, $f14, $f4 +/* 0EF898 7F0BAD68 4600320D */ trunc.w.s $f8, $f6 +/* 0EF89C 7F0BAD6C 440C4000 */ mfc1 $t4, $f8 +/* 0EF8A0 7F0BAD70 00000000 */ nop +/* 0EF8A4 7F0BAD74 AC2C2618 */ sw $t4, %lo(dword_CODE_bss_80082618)($at) +/* 0EF8A8 7F0BAD78 8C4D0024 */ lw $t5, 0x24($v0) +/* 0EF8AC 7F0BAD7C 8C6F0024 */ lw $t7, 0x24($v1) +/* 0EF8B0 7F0BAD80 448D5000 */ mtc1 $t5, $f10 +/* 0EF8B4 7F0BAD84 448F2000 */ mtc1 $t7, $f4 +/* 0EF8B8 7F0BAD88 46805420 */ cvt.s.w $f16, $f10 +/* 0EF8BC 7F0BAD8C 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF8C0 7F0BAD90 46103201 */ sub.s $f8, $f6, $f16 +/* 0EF8C4 7F0BAD94 46086282 */ mul.s $f10, $f12, $f8 +/* 0EF8C8 7F0BAD98 460A8100 */ add.s $f4, $f16, $f10 +/* 0EF8CC 7F0BAD9C 4600218D */ trunc.w.s $f6, $f4 +/* 0EF8D0 7F0BADA0 44183000 */ mfc1 $t8, $f6 +/* 0EF8D4 7F0BADA4 00000000 */ nop +/* 0EF8D8 7F0BADA8 AC38261C */ sw $t8, %lo(dword_CODE_bss_8008261C)($at) +/* 0EF8DC 7F0BADAC 90590028 */ lbu $t9, 0x28($v0) +/* 0EF8E0 7F0BADB0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF8E4 7F0BADB4 44994000 */ mtc1 $t9, $f8 +/* 0EF8E8 7F0BADB8 07210004 */ bgez $t9, .L7F0BADCC +/* 0EF8EC 7F0BADBC 468044A0 */ cvt.s.w $f18, $f8 +/* 0EF8F0 7F0BADC0 44815000 */ mtc1 $at, $f10 +/* 0EF8F4 7F0BADC4 00000000 */ nop +/* 0EF8F8 7F0BADC8 460A9480 */ add.s $f18, $f18, $f10 +.L7F0BADCC: +/* 0EF8FC 7F0BADCC 90680028 */ lbu $t0, 0x28($v1) +/* 0EF900 7F0BADD0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF904 7F0BADD4 44882000 */ mtc1 $t0, $f4 +/* 0EF908 7F0BADD8 05010004 */ bgez $t0, .L7F0BADEC +/* 0EF90C 7F0BADDC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF910 7F0BADE0 44814000 */ mtc1 $at, $f8 +/* 0EF914 7F0BADE4 00000000 */ nop +/* 0EF918 7F0BADE8 46083180 */ add.s $f6, $f6, $f8 +.L7F0BADEC: +/* 0EF91C 7F0BADEC 46123281 */ sub.s $f10, $f6, $f18 +/* 0EF920 7F0BADF0 240A0001 */ li $t2, 1 +/* 0EF924 7F0BADF4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EF928 7F0BADF8 460A6102 */ mul.s $f4, $f12, $f10 +/* 0EF92C 7F0BADFC 46049200 */ add.s $f8, $f18, $f4 +/* 0EF930 7F0BAE00 4449F800 */ cfc1 $t1, $31 +/* 0EF934 7F0BAE04 44CAF800 */ ctc1 $t2, $31 +/* 0EF938 7F0BAE08 00000000 */ nop +/* 0EF93C 7F0BAE0C 460041A4 */ cvt.w.s $f6, $f8 +/* 0EF940 7F0BAE10 444AF800 */ cfc1 $t2, $31 +/* 0EF944 7F0BAE14 00000000 */ nop +/* 0EF948 7F0BAE18 314A0078 */ andi $t2, $t2, 0x78 +/* 0EF94C 7F0BAE1C 51400013 */ beql $t2, $zero, .L7F0BAE6C +/* 0EF950 7F0BAE20 440A3000 */ mfc1 $t2, $f6 +/* 0EF954 7F0BAE24 44813000 */ mtc1 $at, $f6 +/* 0EF958 7F0BAE28 240A0001 */ li $t2, 1 +/* 0EF95C 7F0BAE2C 46064181 */ sub.s $f6, $f8, $f6 +/* 0EF960 7F0BAE30 44CAF800 */ ctc1 $t2, $31 +/* 0EF964 7F0BAE34 00000000 */ nop +/* 0EF968 7F0BAE38 460031A4 */ cvt.w.s $f6, $f6 +/* 0EF96C 7F0BAE3C 444AF800 */ cfc1 $t2, $31 +/* 0EF970 7F0BAE40 00000000 */ nop +/* 0EF974 7F0BAE44 314A0078 */ andi $t2, $t2, 0x78 +/* 0EF978 7F0BAE48 15400005 */ bnez $t2, .L7F0BAE60 +/* 0EF97C 7F0BAE4C 00000000 */ nop +/* 0EF980 7F0BAE50 440A3000 */ mfc1 $t2, $f6 +/* 0EF984 7F0BAE54 3C018000 */ lui $at, 0x8000 +/* 0EF988 7F0BAE58 10000007 */ b .L7F0BAE78 +/* 0EF98C 7F0BAE5C 01415025 */ or $t2, $t2, $at +.L7F0BAE60: +/* 0EF990 7F0BAE60 10000005 */ b .L7F0BAE78 +/* 0EF994 7F0BAE64 240AFFFF */ li $t2, -1 +/* 0EF998 7F0BAE68 440A3000 */ mfc1 $t2, $f6 +.L7F0BAE6C: +/* 0EF99C 7F0BAE6C 00000000 */ nop +/* 0EF9A0 7F0BAE70 0540FFFB */ bltz $t2, .L7F0BAE60 +/* 0EF9A4 7F0BAE74 00000000 */ nop +.L7F0BAE78: +/* 0EF9A8 7F0BAE78 3C018008 */ lui $at, %hi(off_CODE_bss_80082620) +/* 0EF9AC 7F0BAE7C A02A2620 */ sb $t2, %lo(off_CODE_bss_80082620)($at) +/* 0EF9B0 7F0BAE80 904B0029 */ lbu $t3, 0x29($v0) +/* 0EF9B4 7F0BAE84 44C9F800 */ ctc1 $t1, $31 +/* 0EF9B8 7F0BAE88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF9BC 7F0BAE8C 448B5000 */ mtc1 $t3, $f10 +/* 0EF9C0 7F0BAE90 05610004 */ bgez $t3, .L7F0BAEA4 +/* 0EF9C4 7F0BAE94 46805120 */ cvt.s.w $f4, $f10 +/* 0EF9C8 7F0BAE98 44814000 */ mtc1 $at, $f8 +/* 0EF9CC 7F0BAE9C 00000000 */ nop +/* 0EF9D0 7F0BAEA0 46082100 */ add.s $f4, $f4, $f8 +.L7F0BAEA4: +/* 0EF9D4 7F0BAEA4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0EF9D8 7F0BAEA8 906C0029 */ lbu $t4, 0x29($v1) +/* 0EF9DC 7F0BAEAC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0EF9E0 7F0BAEB0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF9E4 7F0BAEB4 448C3000 */ mtc1 $t4, $f6 +/* 0EF9E8 7F0BAEB8 314B00F8 */ andi $t3, $t2, 0xf8 +/* 0EF9EC 7F0BAEBC 05810004 */ bgez $t4, .L7F0BAED0 +/* 0EF9F0 7F0BAEC0 468032A0 */ cvt.s.w $f10, $f6 +/* 0EF9F4 7F0BAEC4 44814000 */ mtc1 $at, $f8 +/* 0EF9F8 7F0BAEC8 00000000 */ nop +/* 0EF9FC 7F0BAECC 46085280 */ add.s $f10, $f10, $f8 +.L7F0BAED0: +/* 0EFA00 7F0BAED0 46045181 */ sub.s $f6, $f10, $f4 +/* 0EFA04 7F0BAED4 240F0001 */ li $t7, 1 +/* 0EFA08 7F0BAED8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EFA0C 7F0BAEDC 46066202 */ mul.s $f8, $f12, $f6 +/* 0EFA10 7F0BAEE0 46082280 */ add.s $f10, $f4, $f8 +/* 0EFA14 7F0BAEE4 444DF800 */ cfc1 $t5, $31 +/* 0EFA18 7F0BAEE8 44CFF800 */ ctc1 $t7, $31 +/* 0EFA1C 7F0BAEEC 00000000 */ nop +/* 0EFA20 7F0BAEF0 460051A4 */ cvt.w.s $f6, $f10 +/* 0EFA24 7F0BAEF4 444FF800 */ cfc1 $t7, $31 +/* 0EFA28 7F0BAEF8 00000000 */ nop +/* 0EFA2C 7F0BAEFC 31EF0078 */ andi $t7, $t7, 0x78 +/* 0EFA30 7F0BAF00 51E00013 */ beql $t7, $zero, .L7F0BAF50 +/* 0EFA34 7F0BAF04 440F3000 */ mfc1 $t7, $f6 +/* 0EFA38 7F0BAF08 44813000 */ mtc1 $at, $f6 +/* 0EFA3C 7F0BAF0C 240F0001 */ li $t7, 1 +/* 0EFA40 7F0BAF10 46065181 */ sub.s $f6, $f10, $f6 +/* 0EFA44 7F0BAF14 44CFF800 */ ctc1 $t7, $31 +/* 0EFA48 7F0BAF18 00000000 */ nop +/* 0EFA4C 7F0BAF1C 460031A4 */ cvt.w.s $f6, $f6 +/* 0EFA50 7F0BAF20 444FF800 */ cfc1 $t7, $31 +/* 0EFA54 7F0BAF24 00000000 */ nop +/* 0EFA58 7F0BAF28 31EF0078 */ andi $t7, $t7, 0x78 +/* 0EFA5C 7F0BAF2C 15E00005 */ bnez $t7, .L7F0BAF44 +/* 0EFA60 7F0BAF30 00000000 */ nop +/* 0EFA64 7F0BAF34 440F3000 */ mfc1 $t7, $f6 +/* 0EFA68 7F0BAF38 3C018000 */ lui $at, 0x8000 +/* 0EFA6C 7F0BAF3C 10000007 */ b .L7F0BAF5C +/* 0EFA70 7F0BAF40 01E17825 */ or $t7, $t7, $at +.L7F0BAF44: +/* 0EFA74 7F0BAF44 10000005 */ b .L7F0BAF5C +/* 0EFA78 7F0BAF48 240FFFFF */ li $t7, -1 +/* 0EFA7C 7F0BAF4C 440F3000 */ mfc1 $t7, $f6 +.L7F0BAF50: +/* 0EFA80 7F0BAF50 00000000 */ nop +/* 0EFA84 7F0BAF54 05E0FFFB */ bltz $t7, .L7F0BAF44 +/* 0EFA88 7F0BAF58 00000000 */ nop +.L7F0BAF5C: +/* 0EFA8C 7F0BAF5C 3C018008 */ lui $at, %hi(byte_CODE_bss_80082621) +/* 0EFA90 7F0BAF60 A02F2621 */ sb $t7, %lo(byte_CODE_bss_80082621)($at) +/* 0EFA94 7F0BAF64 904E002A */ lbu $t6, 0x2a($v0) +/* 0EFA98 7F0BAF68 44CDF800 */ ctc1 $t5, $31 +/* 0EFA9C 7F0BAF6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFAA0 7F0BAF70 448E2000 */ mtc1 $t6, $f4 +/* 0EFAA4 7F0BAF74 31ED00F8 */ andi $t5, $t7, 0xf8 +/* 0EFAA8 7F0BAF78 05C10004 */ bgez $t6, .L7F0BAF8C +/* 0EFAAC 7F0BAF7C 46802220 */ cvt.s.w $f8, $f4 +/* 0EFAB0 7F0BAF80 44815000 */ mtc1 $at, $f10 +/* 0EFAB4 7F0BAF84 00000000 */ nop +/* 0EFAB8 7F0BAF88 460A4200 */ add.s $f8, $f8, $f10 +.L7F0BAF8C: +/* 0EFABC 7F0BAF8C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0EFAC0 7F0BAF90 9078002A */ lbu $t8, 0x2a($v1) +/* 0EFAC4 7F0BAF94 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0EFAC8 7F0BAF98 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFACC 7F0BAF9C 44983000 */ mtc1 $t8, $f6 +/* 0EFAD0 7F0BAFA0 07010004 */ bgez $t8, .L7F0BAFB4 +/* 0EFAD4 7F0BAFA4 46803120 */ cvt.s.w $f4, $f6 +/* 0EFAD8 7F0BAFA8 44815000 */ mtc1 $at, $f10 +/* 0EFADC 7F0BAFAC 00000000 */ nop +/* 0EFAE0 7F0BAFB0 460A2100 */ add.s $f4, $f4, $f10 +.L7F0BAFB4: +/* 0EFAE4 7F0BAFB4 46082181 */ sub.s $f6, $f4, $f8 +/* 0EFAE8 7F0BAFB8 24080001 */ li $t0, 1 +/* 0EFAEC 7F0BAFBC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EFAF0 7F0BAFC0 46066282 */ mul.s $f10, $f12, $f6 +/* 0EFAF4 7F0BAFC4 460A4100 */ add.s $f4, $f8, $f10 +/* 0EFAF8 7F0BAFC8 4459F800 */ cfc1 $t9, $31 +/* 0EFAFC 7F0BAFCC 44C8F800 */ ctc1 $t0, $31 +/* 0EFB00 7F0BAFD0 00000000 */ nop +/* 0EFB04 7F0BAFD4 460021A4 */ cvt.w.s $f6, $f4 +/* 0EFB08 7F0BAFD8 4448F800 */ cfc1 $t0, $31 +/* 0EFB0C 7F0BAFDC 00000000 */ nop +/* 0EFB10 7F0BAFE0 31080078 */ andi $t0, $t0, 0x78 +/* 0EFB14 7F0BAFE4 51000013 */ beql $t0, $zero, .L7F0BB034 +/* 0EFB18 7F0BAFE8 44083000 */ mfc1 $t0, $f6 +/* 0EFB1C 7F0BAFEC 44813000 */ mtc1 $at, $f6 +/* 0EFB20 7F0BAFF0 24080001 */ li $t0, 1 +/* 0EFB24 7F0BAFF4 46062181 */ sub.s $f6, $f4, $f6 +/* 0EFB28 7F0BAFF8 44C8F800 */ ctc1 $t0, $31 +/* 0EFB2C 7F0BAFFC 00000000 */ nop +/* 0EFB30 7F0BB000 460031A4 */ cvt.w.s $f6, $f6 +/* 0EFB34 7F0BB004 4448F800 */ cfc1 $t0, $31 +/* 0EFB38 7F0BB008 00000000 */ nop +/* 0EFB3C 7F0BB00C 31080078 */ andi $t0, $t0, 0x78 +/* 0EFB40 7F0BB010 15000005 */ bnez $t0, .L7F0BB028 +/* 0EFB44 7F0BB014 00000000 */ nop +/* 0EFB48 7F0BB018 44083000 */ mfc1 $t0, $f6 +/* 0EFB4C 7F0BB01C 3C018000 */ lui $at, 0x8000 +/* 0EFB50 7F0BB020 10000007 */ b .L7F0BB040 +/* 0EFB54 7F0BB024 01014025 */ or $t0, $t0, $at +.L7F0BB028: +/* 0EFB58 7F0BB028 10000005 */ b .L7F0BB040 +/* 0EFB5C 7F0BB02C 2408FFFF */ li $t0, -1 +/* 0EFB60 7F0BB030 44083000 */ mfc1 $t0, $f6 +.L7F0BB034: +/* 0EFB64 7F0BB034 00000000 */ nop +/* 0EFB68 7F0BB038 0500FFFB */ bltz $t0, .L7F0BB028 +/* 0EFB6C 7F0BB03C 00000000 */ nop +.L7F0BB040: +/* 0EFB70 7F0BB040 3C018008 */ lui $at, %hi(byte_CODE_bss_80082622) +/* 0EFB74 7F0BB044 A0282622 */ sb $t0, %lo(byte_CODE_bss_80082622)($at) +/* 0EFB78 7F0BB048 44D9F800 */ ctc1 $t9, $31 +/* 0EFB7C 7F0BB04C 311800F8 */ andi $t8, $t0, 0xf8 +/* 0EFB80 7F0BB050 A02B2620 */ sb $t3, %lo(off_CODE_bss_80082620)($at) +/* 0EFB84 7F0BB054 A02D2621 */ sb $t5, %lo(byte_CODE_bss_80082621)($at) +/* 0EFB88 7F0BB058 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EFB8C 7F0BB05C A0382622 */ sb $t8, %lo(byte_CODE_bss_80082622)($at) +/* 0EFB90 7F0BB060 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EFB94 7F0BB064 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EFB98 7F0BB068 03E00008 */ jr $ra +/* 0EFB9C 7F0BB06C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB070(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB070 +/* 0EFBA0 7F0BB070 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFBA4 7F0BB074 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFBA8 7F0BB078 15C00003 */ bnez $t6, .L7F0BB088 +/* 0EFBAC 7F0BB07C 00000000 */ nop +/* 0EFBB0 7F0BB080 03E00008 */ jr $ra +/* 0EFBB4 7F0BB084 00801025 */ move $v0, $a0 + +.L7F0BB088: +/* 0EFBB8 7F0BB088 10A0003D */ beqz $a1, .L7F0BB180 +/* 0EFBBC 7F0BB08C 3C078004 */ lui $a3, %hi(ptr_current_data) +/* 0EFBC0 7F0BB090 3C078004 */ lui $a3, %hi(ptr_current_data) +/* 0EFBC4 7F0BB094 00801025 */ move $v0, $a0 +/* 0EFBC8 7F0BB098 3C0FF800 */ lui $t7, 0xf800 +/* 0EFBCC 7F0BB09C 24E74DCC */ addiu $a3, %lo(ptr_current_data) # addiu $a3, $a3, 0x4dcc +/* 0EFBD0 7F0BB0A0 AC4F0000 */ sw $t7, ($v0) +/* 0EFBD4 7F0BB0A4 90ED000A */ lbu $t5, 0xa($a3) +/* 0EFBD8 7F0BB0A8 90EA0009 */ lbu $t2, 9($a3) +/* 0EFBDC 7F0BB0AC 90F90008 */ lbu $t9, 8($a3) +/* 0EFBE0 7F0BB0B0 01A07025 */ move $t6, $t5 +/* 0EFBE4 7F0BB0B4 000A5C00 */ sll $t3, $t2, 0x10 +/* 0EFBE8 7F0BB0B8 00194600 */ sll $t0, $t9, 0x18 +/* 0EFBEC 7F0BB0BC 010B6025 */ or $t4, $t0, $t3 +/* 0EFBF0 7F0BB0C0 000E7A00 */ sll $t7, $t6, 8 +/* 0EFBF4 7F0BB0C4 018FC025 */ or $t8, $t4, $t7 +/* 0EFBF8 7F0BB0C8 371900FF */ ori $t9, $t8, 0xff +/* 0EFBFC 7F0BB0CC 24840008 */ addiu $a0, $a0, 8 +/* 0EFC00 7F0BB0D0 3C09BC00 */ lui $t1, (0xBC000008 >> 16) # lui $t1, 0xbc00 +/* 0EFC04 7F0BB0D4 AC590004 */ sw $t9, 4($v0) +/* 0EFC08 7F0BB0D8 35290008 */ ori $t1, (0xBC000008 & 0xFFFF) # ori $t1, $t1, 8 +/* 0EFC0C 7F0BB0DC 00801825 */ move $v1, $a0 +/* 0EFC10 7F0BB0E0 AC690000 */ sw $t1, ($v1) +/* 0EFC14 7F0BB0E4 8CEA0004 */ lw $t2, 4($a3) +/* 0EFC18 7F0BB0E8 8CE50000 */ lw $a1, ($a3) +/* 0EFC1C 7F0BB0EC 3C080001 */ lui $t0, (0x0001F400 >> 16) # lui $t0, 1 +/* 0EFC20 7F0BB0F0 3508F400 */ ori $t0, (0x0001F400 & 0xFFFF) # ori $t0, $t0, 0xf400 +/* 0EFC24 7F0BB0F4 01453023 */ subu $a2, $t2, $a1 +/* 0EFC28 7F0BB0F8 0106001A */ div $zero, $t0, $a2 +/* 0EFC2C 7F0BB0FC 00056023 */ negu $t4, $a1 +/* 0EFC30 7F0BB100 000C7A00 */ sll $t7, $t4, 8 +/* 0EFC34 7F0BB104 01E8C021 */ addu $t8, $t7, $t0 +/* 0EFC38 7F0BB108 00005812 */ mflo $t3 +/* 0EFC3C 7F0BB10C 316DFFFF */ andi $t5, $t3, 0xffff +/* 0EFC40 7F0BB110 000D7400 */ sll $t6, $t5, 0x10 +/* 0EFC44 7F0BB114 0306001A */ div $zero, $t8, $a2 +/* 0EFC48 7F0BB118 0000C812 */ mflo $t9 +/* 0EFC4C 7F0BB11C 3329FFFF */ andi $t1, $t9, 0xffff +/* 0EFC50 7F0BB120 01C95025 */ or $t2, $t6, $t1 +/* 0EFC54 7F0BB124 AC6A0004 */ sw $t2, 4($v1) +/* 0EFC58 7F0BB128 24840008 */ addiu $a0, $a0, 8 +/* 0EFC5C 7F0BB12C 14C00002 */ bnez $a2, .L7F0BB138 +/* 0EFC60 7F0BB130 00000000 */ nop +/* 0EFC64 7F0BB134 0007000D */ break 7 +.L7F0BB138: +/* 0EFC68 7F0BB138 2401FFFF */ li $at, -1 +/* 0EFC6C 7F0BB13C 14C10004 */ bne $a2, $at, .L7F0BB150 +/* 0EFC70 7F0BB140 3C018000 */ lui $at, 0x8000 +/* 0EFC74 7F0BB144 15010002 */ bne $t0, $at, .L7F0BB150 +/* 0EFC78 7F0BB148 00000000 */ nop +/* 0EFC7C 7F0BB14C 0006000D */ break 6 +.L7F0BB150: +/* 0EFC80 7F0BB150 01000821 */ addu $at, $t0, $zero +/* 0EFC84 7F0BB154 14C00002 */ bnez $a2, .L7F0BB160 +/* 0EFC88 7F0BB158 00000000 */ nop +/* 0EFC8C 7F0BB15C 0007000D */ break 7 +.L7F0BB160: +/* 0EFC90 7F0BB160 2401FFFF */ li $at, -1 +/* 0EFC94 7F0BB164 14C10004 */ bne $a2, $at, .L7F0BB178 +/* 0EFC98 7F0BB168 3C018000 */ lui $at, 0x8000 +/* 0EFC9C 7F0BB16C 17010002 */ bne $t8, $at, .L7F0BB178 +/* 0EFCA0 7F0BB170 00000000 */ nop +/* 0EFCA4 7F0BB174 0006000D */ break 6 +.L7F0BB178: +/* 0EFCA8 7F0BB178 1000003B */ b .L7F0BB268 +/* 0EFCAC 7F0BB17C 24850008 */ addiu $a1, $a0, 8 +.L7F0BB180: +/* 0EFCB0 7F0BB180 00801025 */ move $v0, $a0 +/* 0EFCB4 7F0BB184 3C08F800 */ lui $t0, 0xf800 +/* 0EFCB8 7F0BB188 24E74DCC */ addiu $a3, $a3, %lo(ptr_current_data) +/* 0EFCBC 7F0BB18C AC480000 */ sw $t0, ($v0) +/* 0EFCC0 7F0BB190 90E9000A */ lbu $t1, 0xa($a3) +/* 0EFCC4 7F0BB194 90F80009 */ lbu $t8, 9($a3) +/* 0EFCC8 7F0BB198 90ED0008 */ lbu $t5, 8($a3) +/* 0EFCCC 7F0BB19C 01205025 */ move $t2, $t1 +/* 0EFCD0 7F0BB1A0 0018CC00 */ sll $t9, $t8, 0x10 +/* 0EFCD4 7F0BB1A4 000D6600 */ sll $t4, $t5, 0x18 +/* 0EFCD8 7F0BB1A8 01997025 */ or $t6, $t4, $t9 +/* 0EFCDC 7F0BB1AC 000A4200 */ sll $t0, $t2, 8 +/* 0EFCE0 7F0BB1B0 01C85825 */ or $t3, $t6, $t0 +/* 0EFCE4 7F0BB1B4 356D00FF */ ori $t5, $t3, 0xff +/* 0EFCE8 7F0BB1B8 24840008 */ addiu $a0, $a0, 8 +/* 0EFCEC 7F0BB1BC 3C0FBC00 */ lui $t7, (0xBC000008 >> 16) # lui $t7, 0xbc00 +/* 0EFCF0 7F0BB1C0 AC4D0004 */ sw $t5, 4($v0) +/* 0EFCF4 7F0BB1C4 35EF0008 */ ori $t7, (0xBC000008 & 0xFFFF) # ori $t7, $t7, 8 +/* 0EFCF8 7F0BB1C8 00801825 */ move $v1, $a0 +/* 0EFCFC 7F0BB1CC AC6F0000 */ sw $t7, ($v1) +/* 0EFD00 7F0BB1D0 8CF80004 */ lw $t8, 4($a3) +/* 0EFD04 7F0BB1D4 8CE50000 */ lw $a1, ($a3) +/* 0EFD08 7F0BB1D8 3C0C0001 */ lui $t4, (0x0001F400 >> 16) # lui $t4, 1 +/* 0EFD0C 7F0BB1DC 358CF400 */ ori $t4, (0x0001F400 & 0xFFFF) # ori $t4, $t4, 0xf400 +/* 0EFD10 7F0BB1E0 03053023 */ subu $a2, $t8, $a1 +/* 0EFD14 7F0BB1E4 0186001A */ div $zero, $t4, $a2 +/* 0EFD18 7F0BB1E8 00057023 */ negu $t6, $a1 +/* 0EFD1C 7F0BB1EC 000E4200 */ sll $t0, $t6, 8 +/* 0EFD20 7F0BB1F0 010C5821 */ addu $t3, $t0, $t4 +/* 0EFD24 7F0BB1F4 0000C812 */ mflo $t9 +/* 0EFD28 7F0BB1F8 3329FFFF */ andi $t1, $t9, 0xffff +/* 0EFD2C 7F0BB1FC 00095400 */ sll $t2, $t1, 0x10 +/* 0EFD30 7F0BB200 0166001A */ div $zero, $t3, $a2 +/* 0EFD34 7F0BB204 00006812 */ mflo $t5 +/* 0EFD38 7F0BB208 31AFFFFF */ andi $t7, $t5, 0xffff +/* 0EFD3C 7F0BB20C 014FC025 */ or $t8, $t2, $t7 +/* 0EFD40 7F0BB210 AC780004 */ sw $t8, 4($v1) +/* 0EFD44 7F0BB214 24840008 */ addiu $a0, $a0, 8 +/* 0EFD48 7F0BB218 14C00002 */ bnez $a2, .L7F0BB224 +/* 0EFD4C 7F0BB21C 00000000 */ nop +/* 0EFD50 7F0BB220 0007000D */ break 7 +.L7F0BB224: +/* 0EFD54 7F0BB224 2401FFFF */ li $at, -1 +/* 0EFD58 7F0BB228 14C10004 */ bne $a2, $at, .L7F0BB23C +/* 0EFD5C 7F0BB22C 3C018000 */ lui $at, 0x8000 +/* 0EFD60 7F0BB230 15810002 */ bne $t4, $at, .L7F0BB23C +/* 0EFD64 7F0BB234 00000000 */ nop +/* 0EFD68 7F0BB238 0006000D */ break 6 +.L7F0BB23C: +/* 0EFD6C 7F0BB23C 01800821 */ addu $at, $t4, $zero +/* 0EFD70 7F0BB240 14C00002 */ bnez $a2, .L7F0BB24C +/* 0EFD74 7F0BB244 00000000 */ nop +/* 0EFD78 7F0BB248 0007000D */ break 7 +.L7F0BB24C: +/* 0EFD7C 7F0BB24C 2401FFFF */ li $at, -1 +/* 0EFD80 7F0BB250 14C10004 */ bne $a2, $at, .L7F0BB264 +/* 0EFD84 7F0BB254 3C018000 */ lui $at, 0x8000 +/* 0EFD88 7F0BB258 15610002 */ bne $t3, $at, .L7F0BB264 +/* 0EFD8C 7F0BB25C 00000000 */ nop +/* 0EFD90 7F0BB260 0006000D */ break 6 +.L7F0BB264: +/* 0EFD94 7F0BB264 24850008 */ addiu $a1, $a0, 8 +.L7F0BB268: +/* 0EFD98 7F0BB268 3C0CB700 */ lui $t4, 0xb700 +/* 0EFD9C 7F0BB26C 3C190001 */ lui $t9, 1 +/* 0EFDA0 7F0BB270 AC990004 */ sw $t9, 4($a0) +/* 0EFDA4 7F0BB274 AC8C0000 */ sw $t4, ($a0) +/* 0EFDA8 7F0BB278 3C09BA00 */ lui $t1, (0xBA000402 >> 16) # lui $t1, 0xba00 +/* 0EFDAC 7F0BB27C 35290402 */ ori $t1, (0xBA000402 & 0xFFFF) # ori $t1, $t1, 0x402 +/* 0EFDB0 7F0BB280 240E0020 */ li $t6, 32 +/* 0EFDB4 7F0BB284 ACAE0004 */ sw $t6, 4($a1) +/* 0EFDB8 7F0BB288 ACA90000 */ sw $t1, ($a1) +/* 0EFDBC 7F0BB28C 24A20008 */ addiu $v0, $a1, 8 +/* 0EFDC0 7F0BB290 03E00008 */ jr $ra +/* 0EFDC4 7F0BB294 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB298(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB298 +/* 0EFDC8 7F0BB298 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFDCC 7F0BB29C 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFDD0 7F0BB2A0 24820008 */ addiu $v0, $a0, 8 +/* 0EFDD4 7F0BB2A4 3C0FB600 */ lui $t7, 0xb600 +/* 0EFDD8 7F0BB2A8 15C00003 */ bnez $t6, .L7F0BB2B8 +/* 0EFDDC 7F0BB2AC 3C180001 */ lui $t8, 1 +/* 0EFDE0 7F0BB2B0 03E00008 */ jr $ra +/* 0EFDE4 7F0BB2B4 00801025 */ move $v0, $a0 + +.L7F0BB2B8: +/* 0EFDE8 7F0BB2B8 AC8F0000 */ sw $t7, ($a0) +/* 0EFDEC 7F0BB2BC AC980004 */ sw $t8, 4($a0) +/* 0EFDF0 7F0BB2C0 03E00008 */ jr $ra +/* 0EFDF4 7F0BB2C4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB2C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB2C8 +/* 0EFDF8 7F0BB2C8 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFDFC 7F0BB2CC 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFE00 7F0BB2D0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EFE04 7F0BB2D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EFE08 7F0BB2D8 15C00003 */ bnez $t6, .L7F0BB2E8 +/* 0EFE0C 7F0BB2DC AFA50034 */ sw $a1, 0x34($sp) +/* 0EFE10 7F0BB2E0 10000029 */ b .L7F0BB388 +/* 0EFE14 7F0BB2E4 24020001 */ li $v0, 1 +.L7F0BB2E8: +/* 0EFE18 7F0BB2E8 0FC227F5 */ jal get_BONDdata_position +/* 0EFE1C 7F0BB2EC AFA40030 */ sw $a0, 0x30($sp) +/* 0EFE20 7F0BB2F0 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0EFE24 7F0BB2F4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0EFE28 7F0BB2F8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EFE2C 7F0BB2FC 8FA40030 */ lw $a0, 0x30($sp) +/* 0EFE30 7F0BB300 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EFE34 7F0BB304 C4660000 */ lwc1 $f6, ($v1) +/* 0EFE38 7F0BB308 C4840000 */ lwc1 $f4, ($a0) +/* 0EFE3C 7F0BB30C 46062201 */ sub.s $f8, $f4, $f6 +/* 0EFE40 7F0BB310 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0EFE44 7F0BB314 C4700004 */ lwc1 $f16, 4($v1) +/* 0EFE48 7F0BB318 C48A0004 */ lwc1 $f10, 4($a0) +/* 0EFE4C 7F0BB31C 46105481 */ sub.s $f18, $f10, $f16 +/* 0EFE50 7F0BB320 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0EFE54 7F0BB324 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0EFE58 7F0BB328 C4660008 */ lwc1 $f6, 8($v1) +/* 0EFE5C 7F0BB32C C4840008 */ lwc1 $f4, 8($a0) +/* 0EFE60 7F0BB330 46062201 */ sub.s $f8, $f4, $f6 +/* 0EFE64 7F0BB334 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0EFE68 7F0BB338 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0EFE6C 7F0BB33C C4500000 */ lwc1 $f16, ($v0) +/* 0EFE70 7F0BB340 C4460004 */ lwc1 $f6, 4($v0) +/* 0EFE74 7F0BB344 46105482 */ mul.s $f18, $f10, $f16 +/* 0EFE78 7F0BB348 C4500008 */ lwc1 $f16, 8($v0) +/* 0EFE7C 7F0BB34C 24020001 */ li $v0, 1 +/* 0EFE80 7F0BB350 46062202 */ mul.s $f8, $f4, $f6 +/* 0EFE84 7F0BB354 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 0EFE88 7F0BB358 46048182 */ mul.s $f6, $f16, $f4 +/* 0EFE8C 7F0BB35C 46089280 */ add.s $f10, $f18, $f8 +/* 0EFE90 7F0BB360 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0EFE94 7F0BB364 C4324DC4 */ lwc1 $f18, %lo(near_fog_value)($at) +/* 0EFE98 7F0BB368 460A3000 */ add.s $f0, $f6, $f10 +/* 0EFE9C 7F0BB36C 46089400 */ add.s $f16, $f18, $f8 +/* 0EFEA0 7F0BB370 4600803C */ c.lt.s $f16, $f0 +/* 0EFEA4 7F0BB374 00000000 */ nop +/* 0EFEA8 7F0BB378 45000003 */ bc1f .L7F0BB388 +/* 0EFEAC 7F0BB37C 00000000 */ nop +/* 0EFEB0 7F0BB380 10000001 */ b .L7F0BB388 +/* 0EFEB4 7F0BB384 00001025 */ move $v0, $zero +.L7F0BB388: +/* 0EFEB8 7F0BB388 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EFEBC 7F0BB38C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EFEC0 7F0BB390 03E00008 */ jr $ra +/* 0EFEC4 7F0BB394 00000000 */ nop +) +#endif + + + + + +u32 return_nearfog_values(void){ + return ptr_nearfog_enviroment_values; +} + + + + + + +#ifdef NONMATCHING +void if_sky_present_convert_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_sky_present_convert_values +/* 0EFED4 7F0BB3A4 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFED8 7F0BB3A8 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFEDC 7F0BB3AC 55C00004 */ bnezl $t6, .L7F0BB3C0 +/* 0EFEE0 7F0BB3B0 44801000 */ mtc1 $zero, $f2 +/* 0EFEE4 7F0BB3B4 03E00008 */ jr $ra +/* 0EFEE8 7F0BB3B8 24020002 */ li $v0, 2 + +/* 0EFEEC 7F0BB3BC 44801000 */ mtc1 $zero, $f2 +.L7F0BB3C0: +/* 0EFEF0 7F0BB3C0 C4840018 */ lwc1 $f4, 0x18($a0) +/* 0EFEF4 7F0BB3C4 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EFEF8 7F0BB3C8 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EFEFC 7F0BB3CC 4602203C */ c.lt.s $f4, $f2 +/* 0EFF00 7F0BB3D0 3C038008 */ lui $v1, %hi(buffer_far_pervasiveness) +/* 0EFF04 7F0BB3D4 45020004 */ bc1fl .L7F0BB3E8 +/* 0EFF08 7F0BB3D8 904F0008 */ lbu $t7, 8($v0) +/* 0EFF0C 7F0BB3DC 03E00008 */ jr $ra +/* 0EFF10 7F0BB3E0 24020002 */ li $v0, 2 + +/* 0EFF14 7F0BB3E4 904F0008 */ lbu $t7, 8($v0) +.L7F0BB3E8: +/* 0EFF18 7F0BB3E8 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EFF1C 7F0BB3EC 44816000 */ mtc1 $at, $f12 +/* 0EFF20 7F0BB3F0 448F3000 */ mtc1 $t7, $f6 +/* 0EFF24 7F0BB3F4 246325C8 */ addiu $v1, $v1, %lo(buffer_far_pervasiveness) +/* 0EFF28 7F0BB3F8 05E10005 */ bgez $t7, .L7F0BB410 +/* 0EFF2C 7F0BB3FC 46803220 */ cvt.s.w $f8, $f6 +/* 0EFF30 7F0BB400 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF34 7F0BB404 44815000 */ mtc1 $at, $f10 +/* 0EFF38 7F0BB408 00000000 */ nop +/* 0EFF3C 7F0BB40C 460A4200 */ add.s $f8, $f8, $f10 +.L7F0BB410: +/* 0EFF40 7F0BB410 460C4403 */ div.s $f16, $f8, $f12 +/* 0EFF44 7F0BB414 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF48 7F0BB418 E4B00000 */ swc1 $f16, ($a1) +/* 0EFF4C 7F0BB41C 90580009 */ lbu $t8, 9($v0) +/* 0EFF50 7F0BB420 44989000 */ mtc1 $t8, $f18 +/* 0EFF54 7F0BB424 07010004 */ bgez $t8, .L7F0BB438 +/* 0EFF58 7F0BB428 46809120 */ cvt.s.w $f4, $f18 +/* 0EFF5C 7F0BB42C 44813000 */ mtc1 $at, $f6 +/* 0EFF60 7F0BB430 00000000 */ nop +/* 0EFF64 7F0BB434 46062100 */ add.s $f4, $f4, $f6 +.L7F0BB438: +/* 0EFF68 7F0BB438 460C2283 */ div.s $f10, $f4, $f12 +/* 0EFF6C 7F0BB43C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF70 7F0BB440 E4AA0004 */ swc1 $f10, 4($a1) +/* 0EFF74 7F0BB444 9059000A */ lbu $t9, 0xa($v0) +/* 0EFF78 7F0BB448 44994000 */ mtc1 $t9, $f8 +/* 0EFF7C 7F0BB44C 07210004 */ bgez $t9, .L7F0BB460 +/* 0EFF80 7F0BB450 46804420 */ cvt.s.w $f16, $f8 +/* 0EFF84 7F0BB454 44819000 */ mtc1 $at, $f18 +/* 0EFF88 7F0BB458 00000000 */ nop +/* 0EFF8C 7F0BB45C 46128400 */ add.s $f16, $f16, $f18 +.L7F0BB460: +/* 0EFF90 7F0BB460 460C8183 */ div.s $f6, $f16, $f12 +/* 0EFF94 7F0BB464 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EFF98 7F0BB468 E4A60008 */ swc1 $f6, 8($a1) +/* 0EFF9C 7F0BB46C C48A0018 */ lwc1 $f10, 0x18($a0) +/* 0EFFA0 7F0BB470 C4640010 */ lwc1 $f4, 0x10($v1) +/* 0EFFA4 7F0BB474 C4720014 */ lwc1 $f18, 0x14($v1) +/* 0EFFA8 7F0BB478 460A2203 */ div.s $f8, $f4, $f10 +/* 0EFFAC 7F0BB47C 46124400 */ add.s $f16, $f8, $f18 +/* 0EFFB0 7F0BB480 E4B0000C */ swc1 $f16, 0xc($a1) +/* 0EFFB4 7F0BB484 C4A0000C */ lwc1 $f0, 0xc($a1) +/* 0EFFB8 7F0BB488 4602003C */ c.lt.s $f0, $f2 +/* 0EFFBC 7F0BB48C 00000000 */ nop +/* 0EFFC0 7F0BB490 45020004 */ bc1fl .L7F0BB4A4 +/* 0EFFC4 7F0BB494 44813000 */ mtc1 $at, $f6 +/* 0EFFC8 7F0BB498 03E00008 */ jr $ra +/* 0EFFCC 7F0BB49C 24020002 */ li $v0, 2 + +/* 0EFFD0 7F0BB4A0 44813000 */ mtc1 $at, $f6 +.L7F0BB4A4: +/* 0EFFD4 7F0BB4A4 24020001 */ li $v0, 1 +/* 0EFFD8 7F0BB4A8 4600303C */ c.lt.s $f6, $f0 +/* 0EFFDC 7F0BB4AC 00000000 */ nop +/* 0EFFE0 7F0BB4B0 45000003 */ bc1f .L7F0BB4C0 +/* 0EFFE4 7F0BB4B4 00000000 */ nop +/* 0EFFE8 7F0BB4B8 03E00008 */ jr $ra +/* 0EFFEC 7F0BB4BC 00001025 */ move $v0, $zero + +.L7F0BB4C0: +/* 0EFFF0 7F0BB4C0 03E00008 */ jr $ra +/* 0EFFF4 7F0BB4C4 00000000 */ nop +) +#endif + + + diff --git a/src/game/fog.h b/src/game/fog.h new file mode 100644 index 0000000..6404087 --- /dev/null +++ b/src/game/fog.h @@ -0,0 +1,60 @@ +#ifndef _FOG_H_ +#define _FOG_H_ +#include "ultra64.h" + +struct fog_element { + u32 stageID; + f32 blendmultiplier; + f32 farfog; + f32 nearfog; + f32 maxvisrange; + f32 maxobfuscationrange; + f32 minvisrange; + u32 intensity; + u32 dif_in_light; + u32 far_ambiantlight; + u8 red; + u8 green; + u8 blue; + u8 clouds; + f32 cloudrepeat; + u16 skyimageid; + u16 reserved; + f32 cloudred; + f32 cloudgreen; + f32 cloudblue; + u8 iswater; + u8 padding[3]; + f32 waterrepeat; + u16 waterimageid; + u16 reserved2; + f32 waterred; + f32 watergreen; + f32 waterblue; + f32 waterconcavity; +}; + +struct fog_element2 { + u32 stageID; + u8 red; + u8 green; + u8 blue; + u8 clouds; + f32 cloudrepeat; + u16 skyimageid; + u16 reserved; + f32 cloudred; + f32 cloudgreen; + f32 cloudblue; + u8 iswater; + u8 padding[3]; + f32 waterrepeat; + u16 waterimageid; + u16 reserved2; + f32 waterred; + f32 watergreen; + f32 waterblue; + f32 waterconcavity; +}; + +#endif diff --git a/src/game/game_debug.c b/src/game/game_debug.c new file mode 100644 index 0000000..ada79da --- /dev/null +++ b/src/game/game_debug.c @@ -0,0 +1,29 @@ +#include "ultra64.h" +#include "deb.h" +#include "game/ob.h" +#include "memp.h" +#include "game/game_debug.h" + +// data +//D:8004EAE0 +s32 D_8004EAE0[] = {0, 0, 0, 0}; + +void gameInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_8004EAE0, "game_c_debug"); +} + +void reset_mem_bank_5(void) { + obBlankResourcesInBank5(); + mempResetBank(5); + obBlankResourcesLoadedInBank(5); +} + +void sub_GAME_7F0D1A7C(void) { + mempNullNextEntryInBank(5); + obBlankResourcesLoadedInBank(5); +} + + + + + diff --git a/src/game/game_debug.h b/src/game/game_debug.h new file mode 100644 index 0000000..66e02db --- /dev/null +++ b/src/game/game_debug.h @@ -0,0 +1,7 @@ +#ifndef _GAME_DEBUG_H_ +#define _GAME_DEBUG_H_ +#include "ultra64.h" + +void gameInitDebugNoticeList(void); + +#endif diff --git a/src/game/gamefile.c b/src/game/gamefile.c new file mode 100644 index 0000000..0ac8cba --- /dev/null +++ b/src/game/gamefile.c @@ -0,0 +1,484 @@ +#include "ultra64.h" +#include "game/gamefile.h" +#include "game/gamefile2.h" +#include "game/mainmenu.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 +struct save_data save1; +//CODE.bss:80069980 +struct save_data save2; +//CODE.bss:800699E0 +struct save_data save3; +//CODE.bss:80069A40 +struct save_data save4; +//CODE.bss:80069AA0 +struct save_data save5; +//CODE.bss:80069B00 +struct save_data save6; + +//CODE.bss:80069B60 +u32 dword_CODE_bss_80069B60; + + +//data +//D:8002C510 +u32 save_selected_bond[] = {0,0,0,0}; + +//D:8002C520 +struct save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C580 +struct save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C5E0 +struct save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C640 +u32 D_8002C640 = 0x00000000; +u32 D_8002C644 = 0x00000000; +u32 flt_8002C648 = 0x42000000; +u32 dword_8002C64C = 0x00000000; +u32 dword_8002C650 = 0x00000000; +u32 dword_8002C654 = 0x00000000; +u32 dword_8002C658 = 0x00000000; +u32 dword_8002C65C = 0x00000000; + + + + +//D:8002C660 +struct save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; + +//D:8002C6C0 +struct 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 +struct 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 +struct 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 +struct 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 +struct 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 +struct 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 (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_reaction; + } + return 0.f; +} + +f32 get_007_health_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_health; + } + return 1.f; +} + +f32 get_007_damage_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_accuracy; + } + return 1.f; +} + +f32 get_007_accuracy_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_damage; + } + return 1.f; +} + + + +#ifdef NONMATCHING +void end_of_mission_briefing(void) + +{ + short sVar1; + int iVar3; + save_file *folder; + ulonglong uVar2; + + if (((-1 < briefingpage) && (selected_difficulty != DIFFICULTY_007)) && (append_cheat_sp == FALSE) + ) { + sVar1 = (&solo_target_times_ARRAY_8002b564 + [mission_folder_setup_entries[briefingpage].mission_num].agent_time) + [selected_difficulty]; + + unlock_stage_in_folder_on_difficulty + (selected_folder_num,(longlong)mission_folder_setup_entries[briefingpage].mission_num, + (longlong)selected_difficulty,getMissiontime() / 0x3c); + + if ((longlong)(getMissiontime() / 0x3c) <= (longlong)sVar1) { + folder = getEEPROMforFoldernum(selected_folder_num); + if (check_if_cheat_unlocked(folder,(longlong)mission_folder_setup_entries[briefingpage].mission_num) == 0) { + proc_7F01E760(selected_folder_num,(longlong)mission_folder_setup_entries[briefingpage].mission_num); + newcheatunlocked = 1; + return; + } + } + newcheatunlocked = 0; + } + return; +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel end_of_mission_briefing +/* 051ECC 7F01D39C 3C028003 */ lui $v0, %hi(briefingpage) +/* 051ED0 7F01D3A0 8C42A8F8 */ lw $v0, %lo(briefingpage)($v0) +/* 051ED4 7F01D3A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 051ED8 7F01D3A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 051EDC 7F01D3AC 04400050 */ bltz $v0, .L7F01D4F0 +/* 051EE0 7F01D3B0 3C038003 */ lui $v1, %hi(selected_difficulty) +/* 051EE4 7F01D3B4 8C63A8FC */ lw $v1, %lo(selected_difficulty)($v1) +/* 051EE8 7F01D3B8 24010003 */ li $at, 3 +/* 051EEC 7F01D3BC 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 051EF0 7F01D3C0 5061004C */ beql $v1, $at, .L7F01D4F4 +/* 051EF4 7F01D3C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 051EF8 7F01D3C8 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 051EFC 7F01D3CC 000278C0 */ sll $t7, $v0, 3 +/* 051F00 7F01D3D0 01E27823 */ subu $t7, $t7, $v0 +/* 051F04 7F01D3D4 15C00046 */ bnez $t6, .L7F01D4F0 +/* 051F08 7F01D3D8 000F7880 */ sll $t7, $t7, 2 +/* 051F0C 7F01D3DC 3C188003 */ lui $t8, %hi(mission_folder_setup_entries+0x14) +/* 051F10 7F01D3E0 030FC021 */ addu $t8, $t8, $t7 +/* 051F14 7F01D3E4 8F18ABF8 */ lw $t8, %lo(mission_folder_setup_entries+0x14)($t8) +/* 051F18 7F01D3E8 00034040 */ sll $t0, $v1, 1 +/* 051F1C 7F01D3EC 3C0A8003 */ lui $t2, %hi(solo_target_time_array) +/* 051F20 7F01D3F0 0018C880 */ sll $t9, $t8, 2 +/* 051F24 7F01D3F4 0338C823 */ subu $t9, $t9, $t8 +/* 051F28 7F01D3F8 0019C840 */ sll $t9, $t9, 1 +/* 051F2C 7F01D3FC 03284821 */ addu $t1, $t9, $t0 +/* 051F30 7F01D400 01495021 */ addu $t2, $t2, $t1 +/* 051F34 7F01D404 854AB564 */ lh $t2, %lo(solo_target_time_array)($t2) +/* 051F38 7F01D408 0FC22FEE */ jal get_mission_timer +/* 051F3C 7F01D40C A7AA001E */ sh $t2, 0x1e($sp) +/* 051F40 7F01D410 2401003C */ li $at, 60 +/* 051F44 7F01D414 0041001A */ div $zero, $v0, $at +/* 051F48 7F01D418 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 051F4C 7F01D41C 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 051F50 7F01D420 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051F54 7F01D424 00003812 */ mflo $a3 +/* 051F58 7F01D428 000B60C0 */ sll $t4, $t3, 3 +/* 051F5C 7F01D42C 018B6023 */ subu $t4, $t4, $t3 +/* 051F60 7F01D430 000C6080 */ sll $t4, $t4, 2 +/* 051F64 7F01D434 00AC2821 */ addu $a1, $a1, $t4 +/* 051F68 7F01D438 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F6C 7F01D43C 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 051F70 7F01D440 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 051F74 7F01D444 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051F78 7F01D448 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 051F7C 7F01D44C 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051F80 7F01D450 0FC22FEE */ jal get_mission_timer +/* 051F84 7F01D454 00000000 */ nop +/* 051F88 7F01D458 2401003C */ li $at, 60 +/* 051F8C 7F01D45C 0041001A */ div $zero, $v0, $at +/* 051F90 7F01D460 87AD001E */ lh $t5, 0x1e($sp) +/* 051F94 7F01D464 00007012 */ mflo $t6 +/* 051F98 7F01D468 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F9C 7F01D46C 01AE082A */ slt $at, $t5, $t6 +/* 051FA0 7F01D470 1420001D */ bnez $at, .L7F01D4E8 +/* 051FA4 7F01D474 00000000 */ nop +/* 051FA8 7F01D478 0FC07771 */ jal get_save_folder_ptr +/* 051FAC 7F01D47C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FB0 7F01D480 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 051FB4 7F01D484 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 051FB8 7F01D488 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FBC 7F01D48C 00402025 */ move $a0, $v0 +/* 051FC0 7F01D490 000FC0C0 */ sll $t8, $t7, 3 +/* 051FC4 7F01D494 030FC023 */ subu $t8, $t8, $t7 +/* 051FC8 7F01D498 0018C080 */ sll $t8, $t8, 2 +/* 051FCC 7F01D49C 00B82821 */ addu $a1, $a1, $t8 +/* 051FD0 7F01D4A0 0FC07748 */ jal check_if_cheat_unlocked +/* 051FD4 7F01D4A4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051FD8 7F01D4A8 1440000F */ bnez $v0, .L7F01D4E8 +/* 051FDC 7F01D4AC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051FE0 7F01D4B0 3C198003 */ lui $t9, %hi(briefingpage) +/* 051FE4 7F01D4B4 8F39A8F8 */ lw $t9, %lo(briefingpage)($t9) +/* 051FE8 7F01D4B8 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FEC 7F01D4BC 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FF0 7F01D4C0 001940C0 */ sll $t0, $t9, 3 +/* 051FF4 7F01D4C4 01194023 */ subu $t0, $t0, $t9 +/* 051FF8 7F01D4C8 00084080 */ sll $t0, $t0, 2 +/* 051FFC 7F01D4CC 00A82821 */ addu $a1, $a1, $t0 +/* 052000 7F01D4D0 0FC079D8 */ jal sub_GAME_7F01E760 +/* 052004 7F01D4D4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 052008 7F01D4D8 24090001 */ li $t1, 1 +/* 05200C 7F01D4DC 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 052010 7F01D4E0 10000003 */ b .L7F01D4F0 +/* 052014 7F01D4E4 AC299790 */ sw $t1, %lo(newcheatunlocked)($at) +.L7F01D4E8: +/* 052018 7F01D4E8 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 05201C 7F01D4EC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +.L7F01D4F0: +/* 052020 7F01D4F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D4F4: +/* 052024 7F01D4F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 052028 7F01D4F8 03E00008 */ jr $ra +/* 05202C 7F01D4FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel end_of_mission_briefing +/* 0520BC 7F01D54C 3C028003 */ lui $v0, %hi(briefingpage) # $v0, 0x8003 +/* 0520C0 7F01D550 8C42A938 */ lw $v0, %lo(briefingpage)($v0) +/* 0520C4 7F01D554 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0520C8 7F01D558 AFBF0014 */ sw $ra, 0x14($sp) +/* 0520CC 7F01D55C 0440004D */ bltz $v0, .L7F01D694 +/* 0520D0 7F01D560 3C038003 */ lui $v1, %hi(selected_difficulty) # $v1, 0x8003 +/* 0520D4 7F01D564 8C63A93C */ lw $v1, %lo(selected_difficulty)($v1) +/* 0520D8 7F01D568 24010003 */ li $at, 3 +/* 0520DC 7F01D56C 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 +/* 0520E0 7F01D570 50610049 */ beql $v1, $at, .L7F01D698 +/* 0520E4 7F01D574 8FBF0014 */ lw $ra, 0x14($sp) +/* 0520E8 7F01D578 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0520EC 7F01D57C 000278C0 */ sll $t7, $v0, 3 +/* 0520F0 7F01D580 01E27823 */ subu $t7, $t7, $v0 +/* 0520F4 7F01D584 15C00043 */ bnez $t6, .L7F01D694 +/* 0520F8 7F01D588 000F7880 */ sll $t7, $t7, 2 +/* 0520FC 7F01D58C 3C188003 */ lui $t8, %hi(mission_folder_setup_entries+0x14) +/* 052100 7F01D590 030FC021 */ addu $t8, $t8, $t7 +/* 052104 7F01D594 8F18AC38 */ lw $t8, %lo(mission_folder_setup_entries+0x14)($t8) +/* 052108 7F01D598 00034040 */ sll $t0, $v1, 1 +/* 05210C 7F01D59C 3C0A8003 */ lui $t2, %hi(solo_target_time_array) +/* 052110 7F01D5A0 0018C880 */ sll $t9, $t8, 2 +/* 052114 7F01D5A4 0338C823 */ subu $t9, $t9, $t8 +/* 052118 7F01D5A8 0019C840 */ sll $t9, $t9, 1 +/* 05211C 7F01D5AC 03284821 */ addu $t1, $t9, $t0 +/* 052120 7F01D5B0 01495021 */ addu $t2, $t2, $t1 +/* 052124 7F01D5B4 854AB5A4 */ lh $t2, %lo(solo_target_time_array)($t2) +/* 052128 7F01D5B8 0FC23210 */ jal get_mission_timer +/* 05212C 7F01D5BC A7AA001E */ sh $t2, 0x1e($sp) +/* 052130 7F01D5C0 2401003C */ li $at, 60 +/* 052134 7F01D5C4 0041001A */ div $zero, $v0, $at +/* 052138 7F01D5C8 3C0B8003 */ lui $t3, %hi(briefingpage) # $t3, 0x8003 +/* 05213C 7F01D5CC 8D6BA938 */ lw $t3, %lo(briefingpage)($t3) +/* 052140 7F01D5D0 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 052144 7F01D5D4 00003812 */ mflo $a3 +/* 052148 7F01D5D8 000B60C0 */ sll $t4, $t3, 3 +/* 05214C 7F01D5DC 018B6023 */ subu $t4, $t4, $t3 +/* 052150 7F01D5E0 000C6080 */ sll $t4, $t4, 2 +/* 052154 7F01D5E4 00AC2821 */ addu $a1, $a1, $t4 +/* 052158 7F01D5E8 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 05215C 7F01D5EC 3C068003 */ lui $a2, %hi(selected_difficulty) # $a2, 0x8003 +/* 052160 7F01D5F0 8CC6A93C */ lw $a2, %lo(selected_difficulty)($a2) +/* 052164 7F01D5F4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 052168 7F01D5F8 0FC079EA */ jal unlock_stage_in_folder_on_difficulty +/* 05216C 7F01D5FC 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 052170 7F01D600 0FC23210 */ jal get_mission_timer +/* 052174 7F01D604 00000000 */ nop +/* 052178 7F01D608 2401003C */ li $at, 60 +/* 05217C 7F01D60C 0041001A */ div $zero, $v0, $at +/* 052180 7F01D610 87AD001E */ lh $t5, 0x1e($sp) +/* 052184 7F01D614 00007012 */ mflo $t6 +/* 052188 7F01D618 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 05218C 7F01D61C 01AE082A */ slt $at, $t5, $t6 +/* 052190 7F01D620 5420001D */ bnezl $at, .L7F01D698 +/* 052194 7F01D624 8FBF0014 */ lw $ra, 0x14($sp) +/* 052198 7F01D628 0FC077DD */ jal get_save_folder_ptr +/* 05219C 7F01D62C 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0521A0 7F01D630 3C0F8003 */ lui $t7, %hi(briefingpage) # $t7, 0x8003 +/* 0521A4 7F01D634 8DEFA938 */ lw $t7, %lo(briefingpage)($t7) +/* 0521A8 7F01D638 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 0521AC 7F01D63C 00402025 */ move $a0, $v0 +/* 0521B0 7F01D640 000FC0C0 */ sll $t8, $t7, 3 +/* 0521B4 7F01D644 030FC023 */ subu $t8, $t8, $t7 +/* 0521B8 7F01D648 0018C080 */ sll $t8, $t8, 2 +/* 0521BC 7F01D64C 00B82821 */ addu $a1, $a1, $t8 +/* 0521C0 7F01D650 0FC077B4 */ jal check_if_cheat_unlocked +/* 0521C4 7F01D654 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 0521C8 7F01D658 1440000E */ bnez $v0, .L7F01D694 +/* 0521CC 7F01D65C 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 0521D0 7F01D660 3C198003 */ lui $t9, %hi(briefingpage) # $t9, 0x8003 +/* 0521D4 7F01D664 8F39A938 */ lw $t9, %lo(briefingpage)($t9) +/* 0521D8 7F01D668 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 0521DC 7F01D66C 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0521E0 7F01D670 001940C0 */ sll $t0, $t9, 3 +/* 0521E4 7F01D674 01194023 */ subu $t0, $t0, $t9 +/* 0521E8 7F01D678 00084080 */ sll $t0, $t0, 2 +/* 0521EC 7F01D67C 00A82821 */ addu $a1, $a1, $t0 +/* 0521F0 7F01D680 0FC07A44 */ jal sub_GAME_7F01E760 +/* 0521F4 7F01D684 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 0521F8 7F01D688 24090001 */ li $t1, 1 +/* 0521FC 7F01D68C 3C018007 */ lui $at, %hi(newcheatunlocked) # $at, 0x8007 +/* 052200 7F01D690 AC2997D0 */ sw $t1, %lo(newcheatunlocked)($at) +.L7F01D694: +/* 052204 7F01D694 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D698: +/* 052208 7F01D698 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05220C 7F01D69C 03E00008 */ jr $ra +/* 052210 7F01D6A0 00000000 */ nop +) +#endif + +#endif + +void sub_GAME_7F01D500(void) +{ + get_screen_ratio_settings_for_mpgame_from_folder(selected_folder_num); +} + +void deleteCurrentSelectedFolder(void) +{ + delete_update_eeprom_file(selected_folder_num); +} + +void copyCurrentEEPROMtoStack(void) +{ + copy_eeprom_to_stack_set_folder_num(selected_folder_num); +} + +u8 getSelectedFolderBond(void) +{ + return removed_would_have_returned_bond_for_folder_num(selected_folder_num); +} + +void set_selected_folder_num(u32 foldernum) +{ + selected_folder_num = foldernum; +} + + + + +#ifdef NONMATCHING +void set_selected_difficulty(DIFFICULTY difficulty) +{ + if (difficulty != DIFFICULTY_AGENT) + { + if (difficulty == DIFFICULTY_SECRET) + { + selected_difficulty = DIFFICULTY_SECRET; + return; + } + if (difficulty == DIFFICULTY_00) + { + selected_difficulty = DIFFICULTY_00; + return; + } + if (difficulty == DIFFICULTY_007) + { + selected_difficulty = DIFFICULTY_007; + return; + } + } + else + { + selected_difficulty = DIFFICULTY_AGENT; + } +} +#else +GLOBAL_ASM( +.text +glabel set_selected_difficulty +/* 0520CC 7F01D59C 10800009 */ beqz $a0, .L7F01D5C4 +/* 0520D0 7F01D5A0 24020001 */ li $v0, 1 +/* 0520D4 7F01D5A4 1082000A */ beq $a0, $v0, .L7F01D5D0 +/* 0520D8 7F01D5A8 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520DC 7F01D5AC 24020002 */ li $v0, 2 +/* 0520E0 7F01D5B0 10820009 */ beq $a0, $v0, .L7F01D5D8 +/* 0520E4 7F01D5B4 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520E8 7F01D5B8 24020003 */ li $v0, 3 +/* 0520EC 7F01D5BC 10820008 */ beq $a0, $v0, .L7F01D5E0 +/* 0520F0 7F01D5C0 3C018003 */ lui $at, %hi(selected_difficulty) +.L7F01D5C4: +/* 0520F4 7F01D5C4 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520F8 7F01D5C8 03E00008 */ jr $ra +/* 0520FC 7F01D5CC AC20A8FC */ sw $zero, %lo(selected_difficulty)($at) + +.L7F01D5D0: +/* 052100 7F01D5D0 03E00008 */ jr $ra +/* 052104 7F01D5D4 AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) + +.L7F01D5D8: +/* 052108 7F01D5D8 03E00008 */ jr $ra +/* 05210C 7F01D5DC AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) + +.L7F01D5E0: +/* 052110 7F01D5E0 AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) +/* 052114 7F01D5E4 03E00008 */ jr $ra +/* 052118 7F01D5E8 00000000 */ nop +) +#endif + + + + +void set_solo_and_ptr_briefing(LEVELID stage) +{ + gamemode = GAMEMODE_SOLO; + selected_stage = stage; + briefingpage = pull_and_display_text_for_folder_a0(stage); +} + +void sub_GAME_7F01D61C(struct save_file *savefile) +{ + copy_eeprom_from_to(selected_folder_num,savefile); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F01D644(struct save_file *eeprom) +{ + selected_folder_num_copy = selected_folder_num; + selected_folder_num = 100; + copy_eepromfile_a0_from_a1_to_buffer(100,eeprom); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D644 +/* 052174 7F01D644 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 052178 7F01D648 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 05217C 7F01D64C 8C4E0000 */ lw $t6, ($v0) +/* 052180 7F01D650 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 052184 7F01D654 00802825 */ move $a1, $a0 +/* 052188 7F01D658 3C018003 */ lui $at, %hi(selected_folder_num_copy) +/* 05218C 7F01D65C AFBF0014 */ sw $ra, 0x14($sp) +/* 052190 7F01D660 24040064 */ li $a0, 100 +/* 052194 7F01D664 AC2EA8EC */ sw $t6, %lo(selected_folder_num_copy)($at) +/* 052198 7F01D668 0FC07D17 */ jal copy_eepromfile_a0_from_a1_to_buffer +/* 05219C 7F01D66C AC440000 */ sw $a0, ($v0) +/* 0521A0 7F01D670 8FBF0014 */ lw $ra, 0x14($sp) +/* 0521A4 7F01D674 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0521A8 7F01D678 03E00008 */ jr $ra +/* 0521AC 7F01D67C 00000000 */ nop +) +#endif + + +void store_favorite_weapon_current_player(u32 right,u32 left) +{ + u32 playerNum; + + playerNum = get_cur_playernum(); + array_favweapon[playerNum][0] = right; + array_favweapon[playerNum][1] = left; +} \ No newline at end of file diff --git a/src/game/gamefile.h b/src/game/gamefile.h new file mode 100644 index 0000000..cb88080 --- /dev/null +++ b/src/game/gamefile.h @@ -0,0 +1,39 @@ +#ifndef _GAMEFILE_H_ +#define _GAMEFILE_H_ +#include "ultra64.h" +//i am not "correct", i need proper fields for times again +struct save_data +{ + int chksum1; + int chksum2; + char completion_bitflags; + char flag_007; + char music_vol; + char sfx_vol; + short options; + char unlocked_cheats_1; + char unlocked_cheats_2; + char unlocked_cheats_3; + char padding; + u8 time_dam_agent[5]; + u8 field_0x17[5]; + u8 field_0x1c[5]; + u8 field_0x21[5]; + u8 field_0x26[5]; + u8 field_0x2b[5]; + u8 field_0x30[5]; + u8 field_0x35[5]; + u8 field_0x3a[5]; + u8 field_0x3f[5]; + u8 field_0x44[5]; + u8 field_0x49[5]; + u8 field_0x4e[5]; + u8 field_0x53[5]; + u8 field_0x58[5]; + u8 field_0x5d[3]; + +}; + +extern u32 save_selected_bond[]; + +#endif diff --git a/src/game/gamefile2.c b/src/game/gamefile2.c new file mode 100644 index 0000000..4538745 --- /dev/null +++ b/src/game/gamefile2.c @@ -0,0 +1,2733 @@ +#include "ultra64.h" +#include "game/gamefile.h" + +s32 sub_GAME_7F01D6C0(void) { + return save_7000C6FC(); +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F01D6E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D6E0 +/* 052210 7F01D6E0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 052214 7F01D6E4 3C0E8003 */ lui $t6, %hi(D_8002C520) +/* 052218 7F01D6E8 27A20000 */ addiu $v0, $sp, 0 +/* 05221C 7F01D6EC 25CEC520 */ addiu $t6, %lo(D_8002C520) # addiu $t6, $t6, -0x3ae0 +/* 052220 7F01D6F0 25D90060 */ addiu $t9, $t6, 0x60 +/* 052224 7F01D6F4 00404025 */ move $t0, $v0 +.L7F01D6F8: +/* 052228 7F01D6F8 8DC10000 */ lw $at, ($t6) +/* 05222C 7F01D6FC 25CE000C */ addiu $t6, $t6, 0xc +/* 052230 7F01D700 2508000C */ addiu $t0, $t0, 0xc +/* 052234 7F01D704 AD01FFF4 */ sw $at, -0xc($t0) +/* 052238 7F01D708 8DC1FFF8 */ lw $at, -8($t6) +/* 05223C 7F01D70C AD01FFF8 */ sw $at, -8($t0) +/* 052240 7F01D710 8DC1FFFC */ lw $at, -4($t6) +/* 052244 7F01D714 15D9FFF8 */ bne $t6, $t9, .L7F01D6F8 +/* 052248 7F01D718 AD01FFFC */ sw $at, -4($t0) +/* 05224C 7F01D71C 3C098007 */ lui $t1, %hi(save6) +/* 052250 7F01D720 25299B00 */ addiu $t1, %lo(save6) # addiu $t1, $t1, -0x6500 +/* 052254 7F01D724 00406825 */ move $t5, $v0 +/* 052258 7F01D728 244C0060 */ addiu $t4, $v0, 0x60 +.L7F01D72C: +/* 05225C 7F01D72C 8DA10000 */ lw $at, ($t5) +/* 052260 7F01D730 25AD000C */ addiu $t5, $t5, 0xc +/* 052264 7F01D734 2529000C */ addiu $t1, $t1, 0xc +/* 052268 7F01D738 AD21FFF4 */ sw $at, -0xc($t1) +/* 05226C 7F01D73C 8DA1FFF8 */ lw $at, -8($t5) +/* 052270 7F01D740 AD21FFF8 */ sw $at, -8($t1) +/* 052274 7F01D744 8DA1FFFC */ lw $at, -4($t5) +/* 052278 7F01D748 15ACFFF8 */ bne $t5, $t4, .L7F01D72C +/* 05227C 7F01D74C AD21FFFC */ sw $at, -4($t1) +/* 052280 7F01D750 03E00008 */ jr $ra +/* 052284 7F01D754 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D758(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D758 +/* 052288 7F01D758 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05228C 7F01D75C AFBF0014 */ sw $ra, 0x14($sp) +/* 052290 7F01D760 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052294 7F01D764 AFA40018 */ sw $a0, 0x18($sp) +/* 052298 7F01D768 10400009 */ beqz $v0, .L7F01D790 +/* 05229C 7F01D76C 8FA70018 */ lw $a3, 0x18($sp) +/* 0522A0 7F01D770 24E40008 */ addiu $a0, $a3, 8 +/* 0522A4 7F01D774 24E50020 */ addiu $a1, $a3, 0x20 +/* 0522A8 7F01D778 0FC26D80 */ jal sub_GAME_7F09B600 +/* 0522AC 7F01D77C 00E03025 */ move $a2, $a3 +/* 0522B0 7F01D780 8FA50018 */ lw $a1, 0x18($sp) +/* 0522B4 7F01D784 00002025 */ move $a0, $zero +/* 0522B8 7F01D788 0C003202 */ jal save_7000C808 +/* 0522BC 7F01D78C 24060020 */ li $a2, 32 +.L7F01D790: +/* 0522C0 7F01D790 8FBF0014 */ lw $ra, 0x14($sp) +/* 0522C4 7F01D794 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0522C8 7F01D798 03E00008 */ jr $ra +/* 0522CC 7F01D79C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D7A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D7A0 +/* 0522D0 7F01D7A0 3C0E8007 */ lui $t6, %hi(save1) +/* 0522D4 7F01D7A4 25CE9920 */ addiu $t6, %lo(save1) # addiu $t6, $t6, -0x66e0 +/* 0522D8 7F01D7A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0522DC 7F01D7AC 008E082B */ sltu $at, $a0, $t6 +/* 0522E0 7F01D7B0 1420001F */ bnez $at, .L7F01D830 +/* 0522E4 7F01D7B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0522E8 7F01D7B8 3C0F8007 */ lui $t7, %hi(save6) +/* 0522EC 7F01D7BC 25EF9B00 */ addiu $t7, %lo(save6) # addiu $t7, $t7, -0x6500 +/* 0522F0 7F01D7C0 008F082B */ sltu $at, $a0, $t7 +/* 0522F4 7F01D7C4 5020001B */ beql $at, $zero, .L7F01D834 +/* 0522F8 7F01D7C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0522FC 7F01D7CC 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052300 7F01D7D0 AFA40018 */ sw $a0, 0x18($sp) +/* 052304 7F01D7D4 10400016 */ beqz $v0, .L7F01D830 +/* 052308 7F01D7D8 8FA70018 */ lw $a3, 0x18($sp) +/* 05230C 7F01D7DC 24E40008 */ addiu $a0, $a3, 8 +/* 052310 7F01D7E0 24E50060 */ addiu $a1, $a3, 0x60 +/* 052314 7F01D7E4 00E03025 */ move $a2, $a3 +/* 052318 7F01D7E8 0FC26D80 */ jal sub_GAME_7F09B600 +/* 05231C 7F01D7EC AFA70018 */ sw $a3, 0x18($sp) +/* 052320 7F01D7F0 8FA50018 */ lw $a1, 0x18($sp) +/* 052324 7F01D7F4 3C188007 */ lui $t8, %hi(save1) +/* 052328 7F01D7F8 27189920 */ addiu $t8, %lo(save1) # addiu $t8, $t8, -0x66e0 +/* 05232C 7F01D7FC 24010060 */ li $at, 96 +/* 052330 7F01D800 00B82023 */ subu $a0, $a1, $t8 +/* 052334 7F01D804 0081001A */ div $zero, $a0, $at +/* 052338 7F01D808 0000C812 */ mflo $t9 +/* 05233C 7F01D80C 00194080 */ sll $t0, $t9, 2 +/* 052340 7F01D810 01194023 */ subu $t0, $t0, $t9 +/* 052344 7F01D814 00084140 */ sll $t0, $t0, 5 +/* 052348 7F01D818 000848C2 */ srl $t1, $t0, 3 +/* 05234C 7F01D81C 25240004 */ addiu $a0, $t1, 4 +/* 052350 7F01D820 308A00FF */ andi $t2, $a0, 0xff +/* 052354 7F01D824 01402025 */ move $a0, $t2 +/* 052358 7F01D828 0C003202 */ jal save_7000C808 +/* 05235C 7F01D82C 24060060 */ li $a2, 96 +.L7F01D830: +/* 052360 7F01D830 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D834: +/* 052364 7F01D834 27BD0018 */ addiu $sp, $sp, 0x18 +/* 052368 7F01D838 03E00008 */ jr $ra +/* 05236C 7F01D83C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D840(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D840 +/* 052370 7F01D840 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 052374 7F01D844 3C0E8003 */ lui $t6, %hi(D_8002C580) +/* 052378 7F01D848 27A20018 */ addiu $v0, $sp, 0x18 +/* 05237C 7F01D84C 25CEC580 */ addiu $t6, %lo(D_8002C580) # addiu $t6, $t6, -0x3a80 +/* 052380 7F01D850 AFBF0014 */ sw $ra, 0x14($sp) +/* 052384 7F01D854 25D90060 */ addiu $t9, $t6, 0x60 +/* 052388 7F01D858 00404025 */ move $t0, $v0 +.L7F01D85C: +/* 05238C 7F01D85C 8DC10000 */ lw $at, ($t6) +/* 052390 7F01D860 25CE000C */ addiu $t6, $t6, 0xc +/* 052394 7F01D864 2508000C */ addiu $t0, $t0, 0xc +/* 052398 7F01D868 AD01FFF4 */ sw $at, -0xc($t0) +/* 05239C 7F01D86C 8DC1FFF8 */ lw $at, -8($t6) +/* 0523A0 7F01D870 AD01FFF8 */ sw $at, -8($t0) +/* 0523A4 7F01D874 8DC1FFFC */ lw $at, -4($t6) +/* 0523A8 7F01D878 15D9FFF8 */ bne $t6, $t9, .L7F01D85C +/* 0523AC 7F01D87C AD01FFFC */ sw $at, -4($t0) +/* 0523B0 7F01D880 00406025 */ move $t4, $v0 +/* 0523B4 7F01D884 00806825 */ move $t5, $a0 +/* 0523B8 7F01D888 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01D88C: +/* 0523BC 7F01D88C 8D810000 */ lw $at, ($t4) +/* 0523C0 7F01D890 258C000C */ addiu $t4, $t4, 0xc +/* 0523C4 7F01D894 25AD000C */ addiu $t5, $t5, 0xc +/* 0523C8 7F01D898 ADA1FFF4 */ sw $at, -0xc($t5) +/* 0523CC 7F01D89C 8D81FFF8 */ lw $at, -8($t4) +/* 0523D0 7F01D8A0 ADA1FFF8 */ sw $at, -8($t5) +/* 0523D4 7F01D8A4 8D81FFFC */ lw $at, -4($t4) +/* 0523D8 7F01D8A8 158BFFF8 */ bne $t4, $t3, .L7F01D88C +/* 0523DC 7F01D8AC ADA1FFFC */ sw $at, -4($t5) +/* 0523E0 7F01D8B0 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 0523E4 7F01D8B4 00000000 */ nop +/* 0523E8 7F01D8B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0523EC 7F01D8BC 27BD0078 */ addiu $sp, $sp, 0x78 +/* 0523F0 7F01D8C0 03E00008 */ jr $ra +/* 0523F4 7F01D8C4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_foldernum_of_eeprom(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_foldernum_of_eeprom +/* 0523F8 7F01D8C8 90820008 */ lbu $v0, 8($a0) +/* 0523FC 7F01D8CC 304E0007 */ andi $t6, $v0, 7 +/* 052400 7F01D8D0 03E00008 */ jr $ra +/* 052404 7F01D8D4 01C01025 */ move $v0, $t6 +) +#endif + + + +#ifdef NONMATCHING +void set_eeprom_to_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_eeprom_to_folder_num +/* 052408 7F01D8D8 908E0008 */ lbu $t6, 8($a0) +/* 05240C 7F01D8DC 30B90007 */ andi $t9, $a1, 7 +/* 052410 7F01D8E0 31D8FFF8 */ andi $t8, $t6, 0xfff8 +/* 052414 7F01D8E4 A0980008 */ sb $t8, 8($a0) +/* 052418 7F01D8E8 03194025 */ or $t0, $t8, $t9 +/* 05241C 7F01D8EC 03E00008 */ jr $ra +/* 052420 7F01D8F0 A0880008 */ sb $t0, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void set_eeprom_flag_0x18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_eeprom_flag_0x18 +/* 052424 7F01D8F4 90820008 */ lbu $v0, 8($a0) +/* 052428 7F01D8F8 304E0018 */ andi $t6, $v0, 0x18 +/* 05242C 7F01D8FC 03E00008 */ jr $ra +/* 052430 7F01D900 000E10C3 */ sra $v0, $t6, 3 +) +#endif + + + +#ifdef NONMATCHING +void reset_eeprom_flag_0x18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_eeprom_flag_0x18 +/* 052434 7F01D904 908E0008 */ lbu $t6, 8($a0) +/* 052438 7F01D908 0005C8C0 */ sll $t9, $a1, 3 +/* 05243C 7F01D90C 33280018 */ andi $t0, $t9, 0x18 +/* 052440 7F01D910 31D8FFE7 */ andi $t8, $t6, 0xffe7 +/* 052444 7F01D914 A0980008 */ sb $t8, 8($a0) +/* 052448 7F01D918 03084825 */ or $t1, $t8, $t0 +/* 05244C 7F01D91C 03E00008 */ jr $ra +/* 052450 7F01D920 A0890008 */ sb $t1, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_selected_bond(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_selected_bond +/* 052454 7F01D924 90820008 */ lbu $v0, 8($a0) +/* 052458 7F01D928 304E0060 */ andi $t6, $v0, 0x60 +/* 05245C 7F01D92C 03E00008 */ jr $ra +/* 052460 7F01D930 000E1143 */ sra $v0, $t6, 5 +) +#endif + + + +#ifdef NONMATCHING +void set_selected_bond(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_selected_bond +/* 052464 7F01D934 908E0008 */ lbu $t6, 8($a0) +/* 052468 7F01D938 0005C940 */ sll $t9, $a1, 5 +/* 05246C 7F01D93C 33280060 */ andi $t0, $t9, 0x60 +/* 052470 7F01D940 31D8FF9F */ andi $t8, $t6, 0xff9f +/* 052474 7F01D944 A0980008 */ sb $t8, 8($a0) +/* 052478 7F01D948 03084825 */ or $t1, $t8, $t0 +/* 05247C 7F01D94C 03E00008 */ jr $ra +/* 052480 7F01D950 A0890008 */ sb $t1, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_eeprom_flag_set_0x80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_eeprom_flag_set_0x80 +/* 052484 7F01D954 90820008 */ lbu $v0, 8($a0) +/* 052488 7F01D958 304E0080 */ andi $t6, $v0, 0x80 +/* 05248C 7F01D95C 03E00008 */ jr $ra +/* 052490 7F01D960 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void toggle_eeprom_flag_set_0x80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel toggle_eeprom_flag_set_0x80 +/* 052494 7F01D964 50A00006 */ beql $a1, $zero, .L7F01D980 +/* 052498 7F01D968 90980008 */ lbu $t8, 8($a0) +/* 05249C 7F01D96C 908E0008 */ lbu $t6, 8($a0) +/* 0524A0 7F01D970 35CF0080 */ ori $t7, $t6, 0x80 +/* 0524A4 7F01D974 03E00008 */ jr $ra +/* 0524A8 7F01D978 A08F0008 */ sb $t7, 8($a0) + +/* 0524AC 7F01D97C 90980008 */ lbu $t8, 8($a0) +.L7F01D980: +/* 0524B0 7F01D980 3319FF7F */ andi $t9, $t8, 0xff7f +/* 0524B4 7F01D984 A0990008 */ sb $t9, 8($a0) +/* 0524B8 7F01D988 03E00008 */ jr $ra +/* 0524BC 7F01D98C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_eeprom_stage_complete_time_for_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_eeprom_stage_complete_time_for_difficulty +/* 0524C0 7F01D990 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0524C4 7F01D994 AFBF0014 */ sw $ra, 0x14($sp) +/* 0524C8 7F01D998 04A0004D */ bltz $a1, .L7F01DAD0 +/* 0524CC 7F01D99C 00803825 */ move $a3, $a0 +/* 0524D0 7F01D9A0 28A10014 */ slti $at, $a1, 0x14 +/* 0524D4 7F01D9A4 5020004B */ beql $at, $zero, .L7F01DAD4 +/* 0524D8 7F01D9A8 00001025 */ move $v0, $zero +/* 0524DC 7F01D9AC 04C00048 */ bltz $a2, .L7F01DAD0 +/* 0524E0 7F01D9B0 28C10004 */ slti $at, $a2, 4 +/* 0524E4 7F01D9B4 10200046 */ beqz $at, .L7F01DAD0 +/* 0524E8 7F01D9B8 24030003 */ li $v1, 3 +/* 0524EC 7F01D9BC 14C3000B */ bne $a2, $v1, .L7F01D9EC +/* 0524F0 7F01D9C0 24080007 */ li $t0, 7 +/* 0524F4 7F01D9C4 0FC07632 */ jal get_foldernum_of_eeprom +/* 0524F8 7F01D9C8 00000000 */ nop +/* 0524FC 7F01D9CC 0FC07D28 */ jal check_for_007_mode_unlocked +/* 052500 7F01D9D0 00402025 */ move $a0, $v0 +/* 052504 7F01D9D4 10400003 */ beqz $v0, .L7F01D9E4 +/* 052508 7F01D9D8 00000000 */ nop +/* 05250C 7F01D9DC 1000003D */ b .L7F01DAD4 +/* 052510 7F01D9E0 240203FF */ li $v0, 1023 +.L7F01D9E4: +/* 052514 7F01D9E4 1000003B */ b .L7F01DAD4 +/* 052518 7F01D9E8 00001025 */ move $v0, $zero +.L7F01D9EC: +/* 05251C 7F01D9EC 00067080 */ sll $t6, $a2, 2 +/* 052520 7F01D9F0 01C67021 */ addu $t6, $t6, $a2 +/* 052524 7F01D9F4 000E7080 */ sll $t6, $t6, 2 +/* 052528 7F01D9F8 01C52021 */ addu $a0, $t6, $a1 +/* 05252C 7F01D9FC 00047880 */ sll $t7, $a0, 2 +/* 052530 7F01DA00 01E47821 */ addu $t7, $t7, $a0 +/* 052534 7F01DA04 000F7840 */ sll $t7, $t7, 1 +/* 052538 7F01DA08 31F80007 */ andi $t8, $t7, 7 +/* 05253C 7F01DA0C 01181023 */ subu $v0, $t0, $t8 +/* 052540 7F01DA10 24010001 */ li $at, 1 +/* 052544 7F01DA14 10410024 */ beq $v0, $at, .L7F01DAA8 +/* 052548 7F01DA18 01E02025 */ move $a0, $t7 +/* 05254C 7F01DA1C 10430019 */ beq $v0, $v1, .L7F01DA84 +/* 052550 7F01DA20 000458C3 */ sra $t3, $a0, 3 +/* 052554 7F01DA24 24010005 */ li $at, 5 +/* 052558 7F01DA28 5041000D */ beql $v0, $at, .L7F01DA60 +/* 05255C 7F01DA2C 000478C3 */ sra $t7, $a0, 3 +/* 052560 7F01DA30 14480025 */ bne $v0, $t0, .L7F01DAC8 +/* 052564 7F01DA34 00001825 */ move $v1, $zero +/* 052568 7F01DA38 000FC8C3 */ sra $t9, $t7, 3 +/* 05256C 7F01DA3C 00F91021 */ addu $v0, $a3, $t9 +/* 052570 7F01DA40 90490013 */ lbu $t1, 0x13($v0) +/* 052574 7F01DA44 904D0012 */ lbu $t5, 0x12($v0) +/* 052578 7F01DA48 312A00C0 */ andi $t2, $t1, 0xc0 +/* 05257C 7F01DA4C 000A5983 */ sra $t3, $t2, 6 +/* 052580 7F01DA50 000D7080 */ sll $t6, $t5, 2 +/* 052584 7F01DA54 1000001F */ b .L7F01DAD4 +/* 052588 7F01DA58 016E1025 */ or $v0, $t3, $t6 +/* 05258C 7F01DA5C 000478C3 */ sra $t7, $a0, 3 +.L7F01DA60: +/* 052590 7F01DA60 00EF1021 */ addu $v0, $a3, $t7 +/* 052594 7F01DA64 90580013 */ lbu $t8, 0x13($v0) +/* 052598 7F01DA68 904A0012 */ lbu $t2, 0x12($v0) +/* 05259C 7F01DA6C 331900F0 */ andi $t9, $t8, 0xf0 +/* 0525A0 7F01DA70 314C003F */ andi $t4, $t2, 0x3f +/* 0525A4 7F01DA74 000C6900 */ sll $t5, $t4, 4 +/* 0525A8 7F01DA78 00194903 */ sra $t1, $t9, 4 +/* 0525AC 7F01DA7C 10000015 */ b .L7F01DAD4 +/* 0525B0 7F01DA80 012D1025 */ or $v0, $t1, $t5 +.L7F01DA84: +/* 0525B4 7F01DA84 00EB1021 */ addu $v0, $a3, $t3 +/* 0525B8 7F01DA88 904E0013 */ lbu $t6, 0x13($v0) +/* 0525BC 7F01DA8C 90590012 */ lbu $t9, 0x12($v0) +/* 0525C0 7F01DA90 31CF00FC */ andi $t7, $t6, 0xfc +/* 0525C4 7F01DA94 332A000F */ andi $t2, $t9, 0xf +/* 0525C8 7F01DA98 000A6180 */ sll $t4, $t2, 6 +/* 0525CC 7F01DA9C 000FC083 */ sra $t8, $t7, 2 +/* 0525D0 7F01DAA0 1000000C */ b .L7F01DAD4 +/* 0525D4 7F01DAA4 030C1025 */ or $v0, $t8, $t4 +.L7F01DAA8: +/* 0525D8 7F01DAA8 000448C3 */ sra $t1, $a0, 3 +/* 0525DC 7F01DAAC 00E91021 */ addu $v0, $a3, $t1 +/* 0525E0 7F01DAB0 904E0012 */ lbu $t6, 0x12($v0) +/* 0525E4 7F01DAB4 904B0013 */ lbu $t3, 0x13($v0) +/* 0525E8 7F01DAB8 31CF0003 */ andi $t7, $t6, 3 +/* 0525EC 7F01DABC 000FCA00 */ sll $t9, $t7, 8 +/* 0525F0 7F01DAC0 10000004 */ b .L7F01DAD4 +/* 0525F4 7F01DAC4 01791025 */ or $v0, $t3, $t9 +.L7F01DAC8: +/* 0525F8 7F01DAC8 10000002 */ b .L7F01DAD4 +/* 0525FC 7F01DACC 00601025 */ move $v0, $v1 +.L7F01DAD0: +/* 052600 7F01DAD0 00001025 */ move $v0, $zero +.L7F01DAD4: +/* 052604 7F01DAD4 8FBF0014 */ lw $ra, 0x14($sp) +/* 052608 7F01DAD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05260C 7F01DADC 03E00008 */ jr $ra +/* 052610 7F01DAE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DAE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DAE4 +/* 052614 7F01DAE4 04A0005C */ bltz $a1, .L7F01DC58 +/* 052618 7F01DAE8 28A10014 */ slti $at, $a1, 0x14 +/* 05261C 7F01DAEC 1020005A */ beqz $at, .L7F01DC58 +/* 052620 7F01DAF0 00000000 */ nop +/* 052624 7F01DAF4 04C00058 */ bltz $a2, .L7F01DC58 +/* 052628 7F01DAF8 28C10003 */ slti $at, $a2, 3 +/* 05262C 7F01DAFC 10200056 */ beqz $at, .L7F01DC58 +/* 052630 7F01DB00 24080007 */ li $t0, 7 +/* 052634 7F01DB04 14E00003 */ bnez $a3, .L7F01DB14 +/* 052638 7F01DB08 00067080 */ sll $t6, $a2, 2 +/* 05263C 7F01DB0C 10000005 */ b .L7F01DB24 +/* 052640 7F01DB10 2407004F */ li $a3, 79 +.L7F01DB14: +/* 052644 7F01DB14 28E10400 */ slti $at, $a3, 0x400 +/* 052648 7F01DB18 54200003 */ bnezl $at, .L7F01DB28 +/* 05264C 7F01DB1C 01C67021 */ addu $t6, $t6, $a2 +/* 052650 7F01DB20 240703FF */ li $a3, 1023 +.L7F01DB24: +/* 052654 7F01DB24 01C67021 */ addu $t6, $t6, $a2 +.L7F01DB28: +/* 052658 7F01DB28 000E7080 */ sll $t6, $t6, 2 +/* 05265C 7F01DB2C 01C51021 */ addu $v0, $t6, $a1 +/* 052660 7F01DB30 00027880 */ sll $t7, $v0, 2 +/* 052664 7F01DB34 01E27821 */ addu $t7, $t7, $v0 +/* 052668 7F01DB38 000F7840 */ sll $t7, $t7, 1 +/* 05266C 7F01DB3C 31F80007 */ andi $t8, $t7, 7 +/* 052670 7F01DB40 01181823 */ subu $v1, $t0, $t8 +/* 052674 7F01DB44 24010001 */ li $at, 1 +/* 052678 7F01DB48 10610035 */ beq $v1, $at, .L7F01DC20 +/* 05267C 7F01DB4C 01E01025 */ move $v0, $t7 +/* 052680 7F01DB50 24010003 */ li $at, 3 +/* 052684 7F01DB54 10610023 */ beq $v1, $at, .L7F01DBE4 +/* 052688 7F01DB58 0002C0C3 */ sra $t8, $v0, 3 +/* 05268C 7F01DB5C 24010005 */ li $at, 5 +/* 052690 7F01DB60 10610011 */ beq $v1, $at, .L7F01DBA8 +/* 052694 7F01DB64 000260C3 */ sra $t4, $v0, 3 +/* 052698 7F01DB68 1468003B */ bne $v1, $t0, .L7F01DC58 +/* 05269C 7F01DB6C 000FC8C3 */ sra $t9, $t7, 3 +/* 0526A0 7F01DB70 00991821 */ addu $v1, $a0, $t9 +/* 0526A4 7F01DB74 90690012 */ lbu $t1, 0x12($v1) +/* 0526A8 7F01DB78 906B0013 */ lbu $t3, 0x13($v1) +/* 0526AC 7F01DB7C 00077883 */ sra $t7, $a3, 2 +/* 0526B0 7F01DB80 312DFF00 */ andi $t5, $t1, 0xff00 +/* 0526B4 7F01DB84 3179FF3F */ andi $t9, $t3, 0xff3f +/* 0526B8 7F01DB88 00075180 */ sll $t2, $a3, 6 +/* 0526BC 7F01DB8C A06D0012 */ sb $t5, 0x12($v1) +/* 0526C0 7F01DB90 A0790013 */ sb $t9, 0x13($v1) +/* 0526C4 7F01DB94 01AFC025 */ or $t8, $t5, $t7 +/* 0526C8 7F01DB98 032A5825 */ or $t3, $t9, $t2 +/* 0526CC 7F01DB9C A0780012 */ sb $t8, 0x12($v1) +/* 0526D0 7F01DBA0 03E00008 */ jr $ra +/* 0526D4 7F01DBA4 A06B0013 */ sb $t3, 0x13($v1) + +.L7F01DBA8: +/* 0526D8 7F01DBA8 008C1821 */ addu $v1, $a0, $t4 +/* 0526DC 7F01DBAC 906E0012 */ lbu $t6, 0x12($v1) +/* 0526E0 7F01DBB0 906F0013 */ lbu $t7, 0x13($v1) +/* 0526E4 7F01DBB4 0007C903 */ sra $t9, $a3, 4 +/* 0526E8 7F01DBB8 31C9FFC0 */ andi $t1, $t6, 0xffc0 +/* 0526EC 7F01DBBC 31ECFF0F */ andi $t4, $t7, 0xff0f +/* 0526F0 7F01DBC0 332A003F */ andi $t2, $t9, 0x3f +/* 0526F4 7F01DBC4 00076900 */ sll $t5, $a3, 4 +/* 0526F8 7F01DBC8 A0690012 */ sb $t1, 0x12($v1) +/* 0526FC 7F01DBCC A06C0013 */ sb $t4, 0x13($v1) +/* 052700 7F01DBD0 012A5825 */ or $t3, $t1, $t2 +/* 052704 7F01DBD4 018D7825 */ or $t7, $t4, $t5 +/* 052708 7F01DBD8 A06B0012 */ sb $t3, 0x12($v1) +/* 05270C 7F01DBDC 03E00008 */ jr $ra +/* 052710 7F01DBE0 A06F0013 */ sb $t7, 0x13($v1) + +.L7F01DBE4: +/* 052714 7F01DBE4 00981821 */ addu $v1, $a0, $t8 +/* 052718 7F01DBE8 90790012 */ lbu $t9, 0x12($v1) +/* 05271C 7F01DBEC 906A0013 */ lbu $t2, 0x13($v1) +/* 052720 7F01DBF0 00076183 */ sra $t4, $a3, 6 +/* 052724 7F01DBF4 332EFFF0 */ andi $t6, $t9, 0xfff0 +/* 052728 7F01DBF8 3158FF03 */ andi $t8, $t2, 0xff03 +/* 05272C 7F01DBFC 318D000F */ andi $t5, $t4, 0xf +/* 052730 7F01DC00 00074880 */ sll $t1, $a3, 2 +/* 052734 7F01DC04 A06E0012 */ sb $t6, 0x12($v1) +/* 052738 7F01DC08 A0780013 */ sb $t8, 0x13($v1) +/* 05273C 7F01DC0C 01CD7825 */ or $t7, $t6, $t5 +/* 052740 7F01DC10 03095025 */ or $t2, $t8, $t1 +/* 052744 7F01DC14 A06F0012 */ sb $t7, 0x12($v1) +/* 052748 7F01DC18 03E00008 */ jr $ra +/* 05274C 7F01DC1C A06A0013 */ sb $t2, 0x13($v1) + +.L7F01DC20: +/* 052750 7F01DC20 000258C3 */ sra $t3, $v0, 3 +/* 052754 7F01DC24 008B1821 */ addu $v1, $a0, $t3 +/* 052758 7F01DC28 906C0012 */ lbu $t4, 0x12($v1) +/* 05275C 7F01DC2C 906D0013 */ lbu $t5, 0x13($v1) +/* 052760 7F01DC30 0007C203 */ sra $t8, $a3, 8 +/* 052764 7F01DC34 3199FFFC */ andi $t9, $t4, 0xfffc +/* 052768 7F01DC38 31ABFF00 */ andi $t3, $t5, 0xff00 +/* 05276C 7F01DC3C 33090003 */ andi $t1, $t8, 3 +/* 052770 7F01DC40 A0790012 */ sb $t9, 0x12($v1) +/* 052774 7F01DC44 A06B0013 */ sb $t3, 0x13($v1) +/* 052778 7F01DC48 03295025 */ or $t2, $t9, $t1 +/* 05277C 7F01DC4C 01677025 */ or $t6, $t3, $a3 +/* 052780 7F01DC50 A06A0012 */ sb $t2, 0x12($v1) +/* 052784 7F01DC54 A06E0013 */ sb $t6, 0x13($v1) +.L7F01DC58: +/* 052788 7F01DC58 03E00008 */ jr $ra +/* 05278C 7F01DC5C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_eeprom_stage_completed_for_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_eeprom_stage_completed_for_difficulty +/* 052790 7F01DC60 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 052794 7F01DC64 04A0000D */ bltz $a1, .L7F01DC9C +/* 052798 7F01DC68 AFBF0014 */ sw $ra, 0x14($sp) +/* 05279C 7F01DC6C 28A10014 */ slti $at, $a1, 0x14 +/* 0527A0 7F01DC70 5020000B */ beql $at, $zero, .L7F01DCA0 +/* 0527A4 7F01DC74 00001025 */ move $v0, $zero +/* 0527A8 7F01DC78 04C00008 */ bltz $a2, .L7F01DC9C +/* 0527AC 7F01DC7C 28C10004 */ slti $at, $a2, 4 +/* 0527B0 7F01DC80 50200007 */ beql $at, $zero, .L7F01DCA0 +/* 0527B4 7F01DC84 00001025 */ move $v0, $zero +/* 0527B8 7F01DC88 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 0527BC 7F01DC8C 00000000 */ nop +/* 0527C0 7F01DC90 0002702B */ sltu $t6, $zero, $v0 +/* 0527C4 7F01DC94 10000002 */ b .L7F01DCA0 +/* 0527C8 7F01DC98 01C01025 */ move $v0, $t6 +.L7F01DC9C: +/* 0527CC 7F01DC9C 00001025 */ move $v0, $zero +.L7F01DCA0: +/* 0527D0 7F01DCA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0527D4 7F01DCA4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0527D8 7F01DCA8 03E00008 */ jr $ra +/* 0527DC 7F01DCAC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DCB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DCB0 +/* 0527E0 7F01DCB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0527E4 7F01DCB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0527E8 7F01DCB8 04A00015 */ bltz $a1, .L7F01DD10 +/* 0527EC 7F01DCBC AFA40018 */ sw $a0, 0x18($sp) +/* 0527F0 7F01DCC0 28A10014 */ slti $at, $a1, 0x14 +/* 0527F4 7F01DCC4 50200013 */ beql $at, $zero, .L7F01DD14 +/* 0527F8 7F01DCC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0527FC 7F01DCCC 04C00010 */ bltz $a2, .L7F01DD10 +/* 052800 7F01DCD0 28C10004 */ slti $at, $a2, 4 +/* 052804 7F01DCD4 5020000F */ beql $at, $zero, .L7F01DD14 +/* 052808 7F01DCD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 05280C 7F01DCDC AFA5001C */ sw $a1, 0x1c($sp) +/* 052810 7F01DCE0 AFA60020 */ sw $a2, 0x20($sp) +/* 052814 7F01DCE4 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 052818 7F01DCE8 AFA70024 */ sw $a3, 0x24($sp) +/* 05281C 7F01DCEC 8FA5001C */ lw $a1, 0x1c($sp) +/* 052820 7F01DCF0 8FA60020 */ lw $a2, 0x20($sp) +/* 052824 7F01DCF4 10400004 */ beqz $v0, .L7F01DD08 +/* 052828 7F01DCF8 8FA70024 */ lw $a3, 0x24($sp) +/* 05282C 7F01DCFC 00E2082A */ slt $at, $a3, $v0 +/* 052830 7F01DD00 50200004 */ beql $at, $zero, .L7F01DD14 +/* 052834 7F01DD04 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01DD08: +/* 052838 7F01DD08 0FC076B9 */ jal sub_GAME_7F01DAE4 +/* 05283C 7F01DD0C 8FA40018 */ lw $a0, 0x18($sp) +.L7F01DD10: +/* 052840 7F01DD10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01DD14: +/* 052844 7F01DD14 27BD0018 */ addiu $sp, $sp, 0x18 +/* 052848 7F01DD18 03E00008 */ jr $ra +/* 05284C 7F01DD1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_cheat_unlocked(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_cheat_unlocked +/* 052850 7F01DD20 04A00011 */ bltz $a1, .L7F01DD68 +/* 052854 7F01DD24 28A10014 */ slti $at, $a1, 0x14 +/* 052858 7F01DD28 1020000F */ beqz $at, .L7F01DD68 +/* 05285C 7F01DD2C 240B0001 */ li $t3, 1 +/* 052860 7F01DD30 90860010 */ lbu $a2, 0x10($a0) +/* 052864 7F01DD34 908E000E */ lbu $t6, 0xe($a0) +/* 052868 7F01DD38 9089000F */ lbu $t1, 0xf($a0) +/* 05286C 7F01DD3C 00067E00 */ sll $t7, $a2, 0x18 +/* 052870 7F01DD40 0006CC00 */ sll $t9, $a2, 0x10 +/* 052874 7F01DD44 01CFC025 */ or $t8, $t6, $t7 +/* 052878 7F01DD48 03194025 */ or $t0, $t8, $t9 +/* 05287C 7F01DD4C 00095200 */ sll $t2, $t1, 8 +/* 052880 7F01DD50 010A1825 */ or $v1, $t0, $t2 +/* 052884 7F01DD54 00AB6004 */ sllv $t4, $t3, $a1 +/* 052888 7F01DD58 01831024 */ and $v0, $t4, $v1 +/* 05288C 7F01DD5C 0002682B */ sltu $t5, $zero, $v0 +/* 052890 7F01DD60 03E00008 */ jr $ra +/* 052894 7F01DD64 01A01025 */ move $v0, $t5 + +.L7F01DD68: +/* 052898 7F01DD68 00001025 */ move $v0, $zero +/* 05289C 7F01DD6C 03E00008 */ jr $ra +/* 0528A0 7F01DD70 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DD74(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DD74 +/* 0528A4 7F01DD74 04A00011 */ bltz $a1, .L7F01DDBC +/* 0528A8 7F01DD78 00803025 */ move $a2, $a0 +/* 0528AC 7F01DD7C 28A10014 */ slti $at, $a1, 0x14 +/* 0528B0 7F01DD80 1020000E */ beqz $at, .L7F01DDBC +/* 0528B4 7F01DD84 240E0001 */ li $t6, 1 +/* 0528B8 7F01DD88 00AE1004 */ sllv $v0, $t6, $a1 +/* 0528BC 7F01DD8C 2C410100 */ sltiu $at, $v0, 0x100 +/* 0528C0 7F01DD90 14200006 */ bnez $at, .L7F01DDAC +/* 0528C4 7F01DD94 00002025 */ move $a0, $zero +.L7F01DD98: +/* 0528C8 7F01DD98 00027A02 */ srl $t7, $v0, 8 +/* 0528CC 7F01DD9C 2DE10100 */ sltiu $at, $t7, 0x100 +/* 0528D0 7F01DDA0 24840001 */ addiu $a0, $a0, 1 +/* 0528D4 7F01DDA4 1020FFFC */ beqz $at, .L7F01DD98 +/* 0528D8 7F01DDA8 01E01025 */ move $v0, $t7 +.L7F01DDAC: +/* 0528DC 7F01DDAC 00C41821 */ addu $v1, $a2, $a0 +/* 0528E0 7F01DDB0 9078000E */ lbu $t8, 0xe($v1) +/* 0528E4 7F01DDB4 03024025 */ or $t0, $t8, $v0 +/* 0528E8 7F01DDB8 A068000E */ sb $t0, 0xe($v1) +.L7F01DDBC: +/* 0528EC 7F01DDBC 03E00008 */ jr $ra +/* 0528F0 7F01DDC0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_save_folder_ptr(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_save_folder_ptr +/* 0528F4 7F01DDC4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0528F8 7F01DDC8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0528FC 7F01DDCC AFB00018 */ sw $s0, 0x18($sp) +/* 052900 7F01DDD0 AFB20020 */ sw $s2, 0x20($sp) +/* 052904 7F01DDD4 3C108007 */ lui $s0, %hi(save1) +/* 052908 7F01DDD8 3C118007 */ lui $s1, %hi(save6) +/* 05290C 7F01DDDC 00809025 */ move $s2, $a0 +/* 052910 7F01DDE0 AFBF0024 */ sw $ra, 0x24($sp) +/* 052914 7F01DDE4 26319B00 */ addiu $s1, %lo(save6) # addiu $s1, $s1, -0x6500 +/* 052918 7F01DDE8 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +.L7F01DDEC: +/* 05291C 7F01DDEC 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 052920 7F01DDF0 02002025 */ move $a0, $s0 +/* 052924 7F01DDF4 54400008 */ bnezl $v0, .L7F01DE18 +/* 052928 7F01DDF8 26100060 */ addiu $s0, $s0, 0x60 +/* 05292C 7F01DDFC 0FC07632 */ jal get_foldernum_of_eeprom +/* 052930 7F01DE00 02002025 */ move $a0, $s0 +/* 052934 7F01DE04 54520004 */ bnel $v0, $s2, .L7F01DE18 +/* 052938 7F01DE08 26100060 */ addiu $s0, $s0, 0x60 +/* 05293C 7F01DE0C 1000000A */ b .L7F01DE38 +/* 052940 7F01DE10 02001025 */ move $v0, $s0 +/* 052944 7F01DE14 26100060 */ addiu $s0, $s0, 0x60 +.L7F01DE18: +/* 052948 7F01DE18 1611FFF4 */ bne $s0, $s1, .L7F01DDEC +/* 05294C 7F01DE1C 00000000 */ nop +/* 052950 7F01DE20 24010064 */ li $at, 100 +/* 052954 7F01DE24 16410004 */ bne $s2, $at, .L7F01DE38 +/* 052958 7F01DE28 00001025 */ move $v0, $zero +/* 05295C 7F01DE2C 3C028007 */ lui $v0, %hi(save6) +/* 052960 7F01DE30 10000001 */ b .L7F01DE38 +/* 052964 7F01DE34 24429B00 */ addiu $v0, %lo(save6) # addiu $v0, $v0, -0x6500 +.L7F01DE38: +/* 052968 7F01DE38 8FBF0024 */ lw $ra, 0x24($sp) +/* 05296C 7F01DE3C 8FB00018 */ lw $s0, 0x18($sp) +/* 052970 7F01DE40 8FB1001C */ lw $s1, 0x1c($sp) +/* 052974 7F01DE44 8FB20020 */ lw $s2, 0x20($sp) +/* 052978 7F01DE48 03E00008 */ jr $ra +/* 05297C 7F01DE4C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DE50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DE50 +/* 052980 7F01DE50 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 052984 7F01DE54 AFB1001C */ sw $s1, 0x1c($sp) +/* 052988 7F01DE58 AFB20020 */ sw $s2, 0x20($sp) +/* 05298C 7F01DE5C AFB00018 */ sw $s0, 0x18($sp) +/* 052990 7F01DE60 3C118007 */ lui $s1, %hi(save1) +/* 052994 7F01DE64 AFBF0024 */ sw $ra, 0x24($sp) +/* 052998 7F01DE68 26319920 */ addiu $s1, %lo(save1) # addiu $s1, $s1, -0x66e0 +/* 05299C 7F01DE6C 00008025 */ move $s0, $zero +/* 0529A0 7F01DE70 24120005 */ li $s2, 5 +.L7F01DE74: +/* 0529A4 7F01DE74 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 0529A8 7F01DE78 02202025 */ move $a0, $s1 +/* 0529AC 7F01DE7C 50400004 */ beql $v0, $zero, .L7F01DE90 +/* 0529B0 7F01DE80 26100001 */ addiu $s0, $s0, 1 +/* 0529B4 7F01DE84 10000005 */ b .L7F01DE9C +/* 0529B8 7F01DE88 02001025 */ move $v0, $s0 +/* 0529BC 7F01DE8C 26100001 */ addiu $s0, $s0, 1 +.L7F01DE90: +/* 0529C0 7F01DE90 1612FFF8 */ bne $s0, $s2, .L7F01DE74 +/* 0529C4 7F01DE94 26310060 */ addiu $s1, $s1, 0x60 +/* 0529C8 7F01DE98 2402FFFF */ li $v0, -1 +.L7F01DE9C: +/* 0529CC 7F01DE9C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0529D0 7F01DEA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0529D4 7F01DEA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0529D8 7F01DEA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0529DC 7F01DEAC 03E00008 */ jr $ra +/* 0529E0 7F01DEB0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DEB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DEB4 +/* 0529E4 7F01DEB4 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0529E8 7F01DEB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0529EC 7F01DEBC AFB00018 */ sw $s0, 0x18($sp) +/* 0529F0 7F01DEC0 0FC07794 */ jal sub_GAME_7F01DE50 +/* 0529F4 7F01DEC4 AFA40088 */ sw $a0, 0x88($sp) +/* 0529F8 7F01DEC8 0440002C */ bltz $v0, .L7F01DF7C +/* 0529FC 7F01DECC 00401825 */ move $v1, $v0 +/* 052A00 7F01DED0 3C0E8003 */ lui $t6, %hi(D_8002C5E0) +/* 052A04 7F01DED4 27A20024 */ addiu $v0, $sp, 0x24 +/* 052A08 7F01DED8 25CEC5E0 */ addiu $t6, %lo(D_8002C5E0) # addiu $t6, $t6, -0x3a20 +/* 052A0C 7F01DEDC 25D80060 */ addiu $t8, $t6, 0x60 +/* 052A10 7F01DEE0 0040C825 */ move $t9, $v0 +.L7F01DEE4: +/* 052A14 7F01DEE4 8DC10000 */ lw $at, ($t6) +/* 052A18 7F01DEE8 25CE000C */ addiu $t6, $t6, 0xc +/* 052A1C 7F01DEEC 2739000C */ addiu $t9, $t9, 0xc +/* 052A20 7F01DEF0 AF21FFF4 */ sw $at, -0xc($t9) +/* 052A24 7F01DEF4 8DC1FFF8 */ lw $at, -8($t6) +/* 052A28 7F01DEF8 AF21FFF8 */ sw $at, -8($t9) +/* 052A2C 7F01DEFC 8DC1FFFC */ lw $at, -4($t6) +/* 052A30 7F01DF00 15D8FFF8 */ bne $t6, $t8, .L7F01DEE4 +/* 052A34 7F01DF04 AF21FFFC */ sw $at, -4($t9) +/* 052A38 7F01DF08 00034080 */ sll $t0, $v1, 2 +/* 052A3C 7F01DF0C 01034023 */ subu $t0, $t0, $v1 +/* 052A40 7F01DF10 3C098007 */ lui $t1, %hi(save1) +/* 052A44 7F01DF14 25299920 */ addiu $t1, %lo(save1) # addiu $t1, $t1, -0x66e0 +/* 052A48 7F01DF18 00084140 */ sll $t0, $t0, 5 +/* 052A4C 7F01DF1C 01098021 */ addu $s0, $t0, $t1 +/* 052A50 7F01DF20 02006825 */ move $t5, $s0 +/* 052A54 7F01DF24 00406025 */ move $t4, $v0 +/* 052A58 7F01DF28 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01DF2C: +/* 052A5C 7F01DF2C 8D810000 */ lw $at, ($t4) +/* 052A60 7F01DF30 258C000C */ addiu $t4, $t4, 0xc +/* 052A64 7F01DF34 25AD000C */ addiu $t5, $t5, 0xc +/* 052A68 7F01DF38 ADA1FFF4 */ sw $at, -0xc($t5) +/* 052A6C 7F01DF3C 8D81FFF8 */ lw $at, -8($t4) +/* 052A70 7F01DF40 ADA1FFF8 */ sw $at, -8($t5) +/* 052A74 7F01DF44 8D81FFFC */ lw $at, -4($t4) +/* 052A78 7F01DF48 158BFFF8 */ bne $t4, $t3, .L7F01DF2C +/* 052A7C 7F01DF4C ADA1FFFC */ sw $at, -4($t5) +/* 052A80 7F01DF50 02002025 */ move $a0, $s0 +/* 052A84 7F01DF54 0FC07636 */ jal set_eeprom_to_folder_num +/* 052A88 7F01DF58 8FA50088 */ lw $a1, 0x88($sp) +/* 052A8C 7F01DF5C 02002025 */ move $a0, $s0 +/* 052A90 7F01DF60 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 052A94 7F01DF64 00002825 */ move $a1, $zero +/* 052A98 7F01DF68 02002025 */ move $a0, $s0 +/* 052A9C 7F01DF6C 0FC0764D */ jal set_selected_bond +/* 052AA0 7F01DF70 8FA50088 */ lw $a1, 0x88($sp) +/* 052AA4 7F01DF74 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 052AA8 7F01DF78 02002025 */ move $a0, $s0 +.L7F01DF7C: +/* 052AAC 7F01DF7C 8FBF001C */ lw $ra, 0x1c($sp) +/* 052AB0 7F01DF80 8FB00018 */ lw $s0, 0x18($sp) +/* 052AB4 7F01DF84 27BD0088 */ addiu $sp, $sp, 0x88 +/* 052AB8 7F01DF88 03E00008 */ jr $ra +/* 052ABC 7F01DF8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DF90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DF90 +/* 052AC0 7F01DF90 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 052AC4 7F01DF94 AFBF003C */ sw $ra, 0x3c($sp) +/* 052AC8 7F01DF98 AFBE0038 */ sw $fp, 0x38($sp) +/* 052ACC 7F01DF9C AFB70034 */ sw $s7, 0x34($sp) +/* 052AD0 7F01DFA0 AFB60030 */ sw $s6, 0x30($sp) +/* 052AD4 7F01DFA4 AFB5002C */ sw $s5, 0x2c($sp) +/* 052AD8 7F01DFA8 AFB40028 */ sw $s4, 0x28($sp) +/* 052ADC 7F01DFAC AFB30024 */ sw $s3, 0x24($sp) +/* 052AE0 7F01DFB0 AFB20020 */ sw $s2, 0x20($sp) +/* 052AE4 7F01DFB4 AFB1001C */ sw $s1, 0x1c($sp) +/* 052AE8 7F01DFB8 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052AEC 7F01DFBC AFB00018 */ sw $s0, 0x18($sp) +/* 052AF0 7F01DFC0 104000A6 */ beqz $v0, .L7F01E25C +/* 052AF4 7F01DFC4 27B10094 */ addiu $s1, $sp, 0x94 +/* 052AF8 7F01DFC8 24100001 */ li $s0, 1 +/* 052AFC 7F01DFCC 00002025 */ move $a0, $zero +/* 052B00 7F01DFD0 02202825 */ move $a1, $s1 +/* 052B04 7F01DFD4 0C0031EF */ jal save_7000C7BC +/* 052B08 7F01DFD8 24060020 */ li $a2, 32 +/* 052B0C 7F01DFDC 93AE009C */ lbu $t6, 0x9c($sp) +/* 052B10 7F01DFE0 24010042 */ li $at, 66 +/* 052B14 7F01DFE4 27B5008C */ addiu $s5, $sp, 0x8c +/* 052B18 7F01DFE8 11C10002 */ beq $t6, $at, .L7F01DFF4 +/* 052B1C 7F01DFEC 27A4009C */ addiu $a0, $sp, 0x9c +/* 052B20 7F01DFF0 00008025 */ move $s0, $zero +.L7F01DFF4: +/* 052B24 7F01DFF4 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 052B28 7F01DFF8 0FC26D80 */ jal sub_GAME_7F09B600 +/* 052B2C 7F01DFFC 02A03025 */ move $a2, $s5 +/* 052B30 7F01E000 8FAF008C */ lw $t7, 0x8c($sp) +/* 052B34 7F01E004 8FB80094 */ lw $t8, 0x94($sp) +/* 052B38 7F01E008 8FB90090 */ lw $t9, 0x90($sp) +/* 052B3C 7F01E00C 8FA80098 */ lw $t0, 0x98($sp) +/* 052B40 7F01E010 15F80003 */ bne $t7, $t8, .L7F01E020 +/* 052B44 7F01E014 3C098003 */ lui $t1, %hi(D_8002C640) +/* 052B48 7F01E018 13280002 */ beq $t9, $t0, .L7F01E024 +/* 052B4C 7F01E01C 00000000 */ nop +.L7F01E020: +/* 052B50 7F01E020 00008025 */ move $s0, $zero +.L7F01E024: +/* 052B54 7F01E024 16000023 */ bnez $s0, .L7F01E0B4 +/* 052B58 7F01E028 2529C640 */ addiu $t1, %lo(D_8002C640) # addiu $t1, $t1, -0x39c0 +/* 052B5C 7F01E02C 8D210000 */ lw $at, ($t1) +/* 052B60 7F01E030 27A20064 */ addiu $v0, $sp, 0x64 +/* 052B64 7F01E034 02202025 */ move $a0, $s1 +/* 052B68 7F01E038 AC410000 */ sw $at, ($v0) +/* 052B6C 7F01E03C 8D2B0004 */ lw $t3, 4($t1) +/* 052B70 7F01E040 AC4B0004 */ sw $t3, 4($v0) +/* 052B74 7F01E044 8D210008 */ lw $at, 8($t1) +/* 052B78 7F01E048 8C4D0004 */ lw $t5, 4($v0) +/* 052B7C 7F01E04C AC410008 */ sw $at, 8($v0) +/* 052B80 7F01E050 8D2B000C */ lw $t3, 0xc($t1) +/* 052B84 7F01E054 AC4B000C */ sw $t3, 0xc($v0) +/* 052B88 7F01E058 8D210010 */ lw $at, 0x10($t1) +/* 052B8C 7F01E05C AC410010 */ sw $at, 0x10($v0) +/* 052B90 7F01E060 8D2B0014 */ lw $t3, 0x14($t1) +/* 052B94 7F01E064 AC4B0014 */ sw $t3, 0x14($v0) +/* 052B98 7F01E068 8D210018 */ lw $at, 0x18($t1) +/* 052B9C 7F01E06C AC410018 */ sw $at, 0x18($v0) +/* 052BA0 7F01E070 8C410000 */ lw $at, ($v0) +/* 052BA4 7F01E074 8D2B001C */ lw $t3, 0x1c($t1) +/* 052BA8 7F01E078 AE2D0004 */ sw $t5, 4($s1) +/* 052BAC 7F01E07C AE210000 */ sw $at, ($s1) +/* 052BB0 7F01E080 8C410008 */ lw $at, 8($v0) +/* 052BB4 7F01E084 8C4D000C */ lw $t5, 0xc($v0) +/* 052BB8 7F01E088 AC4B001C */ sw $t3, 0x1c($v0) +/* 052BBC 7F01E08C AE210008 */ sw $at, 8($s1) +/* 052BC0 7F01E090 8C410010 */ lw $at, 0x10($v0) +/* 052BC4 7F01E094 AE2D000C */ sw $t5, 0xc($s1) +/* 052BC8 7F01E098 8C4D0014 */ lw $t5, 0x14($v0) +/* 052BCC 7F01E09C AE210010 */ sw $at, 0x10($s1) +/* 052BD0 7F01E0A0 8C410018 */ lw $at, 0x18($v0) +/* 052BD4 7F01E0A4 AE2B001C */ sw $t3, 0x1c($s1) +/* 052BD8 7F01E0A8 AE2D0014 */ sw $t5, 0x14($s1) +/* 052BDC 7F01E0AC 0FC075D6 */ jal sub_GAME_7F01D758 +/* 052BE0 7F01E0B0 AE210018 */ sw $at, 0x18($s1) +.L7F01E0B4: +/* 052BE4 7F01E0B4 3C058007 */ lui $a1, %hi(save1) +/* 052BE8 7F01E0B8 24A59920 */ addiu $a1, %lo(save1) # addiu $a1, $a1, -0x66e0 +/* 052BEC 7F01E0BC 24040004 */ li $a0, 4 +/* 052BF0 7F01E0C0 0C0031EF */ jal save_7000C7BC +/* 052BF4 7F01E0C4 240601E0 */ li $a2, 480 +/* 052BF8 7F01E0C8 3C108007 */ lui $s0, %hi(save1) +/* 052BFC 7F01E0CC 3C138007 */ lui $s3, %hi(save1+8) +/* 052C00 7F01E0D0 3C128007 */ lui $s2, %hi(save2) +/* 052C04 7F01E0D4 3C148007 */ lui $s4, %hi(dword_CODE_bss_80069B60) +/* 052C08 7F01E0D8 26949B60 */ addiu $s4, %lo(dword_CODE_bss_80069B60) # addiu $s4, $s4, -0x64a0 +/* 052C0C 7F01E0DC 26529980 */ addiu $s2, %lo(save2) # addiu $s2, $s2, -0x6680 +/* 052C10 7F01E0E0 26739928 */ addiu $s3, %lo(save1+8) # addiu $s3, $s3, -0x66d8 +/* 052C14 7F01E0E4 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +.L7F01E0E8: +/* 052C18 7F01E0E8 24110001 */ li $s1, 1 +/* 052C1C 7F01E0EC 02602025 */ move $a0, $s3 +/* 052C20 7F01E0F0 02402825 */ move $a1, $s2 +/* 052C24 7F01E0F4 0FC26D80 */ jal sub_GAME_7F09B600 +/* 052C28 7F01E0F8 02A03025 */ move $a2, $s5 +/* 052C2C 7F01E0FC 8FAE008C */ lw $t6, 0x8c($sp) +/* 052C30 7F01E100 8E0F0000 */ lw $t7, ($s0) +/* 052C34 7F01E104 8FB80090 */ lw $t8, 0x90($sp) +/* 052C38 7F01E108 55CF0005 */ bnel $t6, $t7, .L7F01E120 +/* 052C3C 7F01E10C 00008825 */ move $s1, $zero +/* 052C40 7F01E110 8E190004 */ lw $t9, 4($s0) +/* 052C44 7F01E114 13190002 */ beq $t8, $t9, .L7F01E120 +/* 052C48 7F01E118 00000000 */ nop +/* 052C4C 7F01E11C 00008825 */ move $s1, $zero +.L7F01E120: +/* 052C50 7F01E120 56200004 */ bnezl $s1, .L7F01E134 +/* 052C54 7F01E124 26520060 */ addiu $s2, $s2, 0x60 +/* 052C58 7F01E128 0FC07610 */ jal sub_GAME_7F01D840 +/* 052C5C 7F01E12C 02002025 */ move $a0, $s0 +/* 052C60 7F01E130 26520060 */ addiu $s2, $s2, 0x60 +.L7F01E134: +/* 052C64 7F01E134 26100060 */ addiu $s0, $s0, 0x60 +/* 052C68 7F01E138 1654FFEB */ bne $s2, $s4, .L7F01E0E8 +/* 052C6C 7F01E13C 26730060 */ addiu $s3, $s3, 0x60 +/* 052C70 7F01E140 0000B025 */ move $s6, $zero +/* 052C74 7F01E144 241E0060 */ li $fp, 96 +/* 052C78 7F01E148 24170005 */ li $s7, 5 +.L7F01E14C: +/* 052C7C 7F01E14C 3C108007 */ lui $s0, %hi(save1) +/* 052C80 7F01E150 2414FFFF */ li $s4, -1 +/* 052C84 7F01E154 2415FFFF */ li $s5, -1 +/* 052C88 7F01E158 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +/* 052C8C 7F01E15C 00008825 */ move $s1, $zero +.L7F01E160: +/* 052C90 7F01E160 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 052C94 7F01E164 02002025 */ move $a0, $s0 +/* 052C98 7F01E168 54400023 */ bnezl $v0, .L7F01E1F8 +/* 052C9C 7F01E16C 26310001 */ addiu $s1, $s1, 1 +/* 052CA0 7F01E170 0FC07632 */ jal get_foldernum_of_eeprom +/* 052CA4 7F01E174 02002025 */ move $a0, $s0 +/* 052CA8 7F01E178 5456001F */ bnel $v0, $s6, .L7F01E1F8 +/* 052CAC 7F01E17C 26310001 */ addiu $s1, $s1, 1 +/* 052CB0 7F01E180 06810006 */ bgez $s4, .L7F01E19C +/* 052CB4 7F01E184 02002025 */ move $a0, $s0 +/* 052CB8 7F01E188 0220A025 */ move $s4, $s1 +/* 052CBC 7F01E18C 0FC0763D */ jal set_eeprom_flag_0x18 +/* 052CC0 7F01E190 02002025 */ move $a0, $s0 +/* 052CC4 7F01E194 10000017 */ b .L7F01E1F4 +/* 052CC8 7F01E198 0040A825 */ move $s5, $v0 +.L7F01E19C: +/* 052CCC 7F01E19C 26B30001 */ addiu $s3, $s5, 1 +/* 052CD0 7F01E1A0 06610004 */ bgez $s3, .L7F01E1B4 +/* 052CD4 7F01E1A4 32680003 */ andi $t0, $s3, 3 +/* 052CD8 7F01E1A8 11000002 */ beqz $t0, .L7F01E1B4 +/* 052CDC 7F01E1AC 00000000 */ nop +/* 052CE0 7F01E1B0 2508FFFC */ addiu $t0, $t0, -4 +.L7F01E1B4: +/* 052CE4 7F01E1B4 0FC0763D */ jal set_eeprom_flag_0x18 +/* 052CE8 7F01E1B8 01009825 */ move $s3, $t0 +/* 052CEC 7F01E1BC 1453000B */ bne $v0, $s3, .L7F01E1EC +/* 052CF0 7F01E1C0 00409025 */ move $s2, $v0 +/* 052CF4 7F01E1C4 029E0019 */ multu $s4, $fp +/* 052CF8 7F01E1C8 3C098007 */ lui $t1, %hi(save1) +/* 052CFC 7F01E1CC 25299920 */ addiu $t1, %lo(save1) # addiu $t1, $t1, -0x66e0 +/* 052D00 7F01E1D0 00005012 */ mflo $t2 +/* 052D04 7F01E1D4 01492021 */ addu $a0, $t2, $t1 +/* 052D08 7F01E1D8 0FC07610 */ jal sub_GAME_7F01D840 +/* 052D0C 7F01E1DC 00000000 */ nop +/* 052D10 7F01E1E0 0220A025 */ move $s4, $s1 +/* 052D14 7F01E1E4 10000003 */ b .L7F01E1F4 +/* 052D18 7F01E1E8 0240A825 */ move $s5, $s2 +.L7F01E1EC: +/* 052D1C 7F01E1EC 0FC07610 */ jal sub_GAME_7F01D840 +/* 052D20 7F01E1F0 02002025 */ move $a0, $s0 +.L7F01E1F4: +/* 052D24 7F01E1F4 26310001 */ addiu $s1, $s1, 1 +.L7F01E1F8: +/* 052D28 7F01E1F8 1637FFD9 */ bne $s1, $s7, .L7F01E160 +/* 052D2C 7F01E1FC 26100060 */ addiu $s0, $s0, 0x60 +/* 052D30 7F01E200 06830004 */ bgezl $s4, .L7F01E214 +/* 052D34 7F01E204 26D60001 */ addiu $s6, $s6, 1 +/* 052D38 7F01E208 0FC077AD */ jal sub_GAME_7F01DEB4 +/* 052D3C 7F01E20C 02C02025 */ move $a0, $s6 +/* 052D40 7F01E210 26D60001 */ addiu $s6, $s6, 1 +.L7F01E214: +/* 052D44 7F01E214 2AC10004 */ slti $at, $s6, 4 +/* 052D48 7F01E218 1420FFCC */ bnez $at, .L7F01E14C +/* 052D4C 7F01E21C 00000000 */ nop +/* 052D50 7F01E220 0000B025 */ move $s6, $zero +/* 052D54 7F01E224 24110004 */ li $s1, 4 +.L7F01E228: +/* 052D58 7F01E228 0FC07771 */ jal get_save_folder_ptr +/* 052D5C 7F01E22C 02C02025 */ move $a0, $s6 +/* 052D60 7F01E230 10400007 */ beqz $v0, .L7F01E250 +/* 052D64 7F01E234 00402025 */ move $a0, $v0 +/* 052D68 7F01E238 3C0C8003 */ lui $t4, %hi(save_selected_bond) +/* 052D6C 7F01E23C 258CC510 */ addiu $t4, %lo(save_selected_bond) # addiu $t4, $t4, -0x3af0 +/* 052D70 7F01E240 00165880 */ sll $t3, $s6, 2 +/* 052D74 7F01E244 0FC07649 */ jal get_selected_bond +/* 052D78 7F01E248 016C8021 */ addu $s0, $t3, $t4 +/* 052D7C 7F01E24C AE020000 */ sw $v0, ($s0) +.L7F01E250: +/* 052D80 7F01E250 26D60001 */ addiu $s6, $s6, 1 +/* 052D84 7F01E254 16D1FFF4 */ bne $s6, $s1, .L7F01E228 +/* 052D88 7F01E258 00000000 */ nop +.L7F01E25C: +/* 052D8C 7F01E25C 8FBF003C */ lw $ra, 0x3c($sp) +/* 052D90 7F01E260 8FB00018 */ lw $s0, 0x18($sp) +/* 052D94 7F01E264 8FB1001C */ lw $s1, 0x1c($sp) +/* 052D98 7F01E268 8FB20020 */ lw $s2, 0x20($sp) +/* 052D9C 7F01E26C 8FB30024 */ lw $s3, 0x24($sp) +/* 052DA0 7F01E270 8FB40028 */ lw $s4, 0x28($sp) +/* 052DA4 7F01E274 8FB5002C */ lw $s5, 0x2c($sp) +/* 052DA8 7F01E278 8FB60030 */ lw $s6, 0x30($sp) +/* 052DAC 7F01E27C 8FB70034 */ lw $s7, 0x34($sp) +/* 052DB0 7F01E280 8FBE0038 */ lw $fp, 0x38($sp) +/* 052DB4 7F01E284 03E00008 */ jr $ra +/* 052DB8 7F01E288 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + +#ifdef NONMATCHING +void check_if_valid_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_valid_folder_num +/* 052DBC 7F01E28C 04800005 */ bltz $a0, .L7F01E2A4 +/* 052DC0 7F01E290 28810004 */ slti $at, $a0, 4 +/* 052DC4 7F01E294 50200004 */ beql $at, $zero, .L7F01E2A8 +/* 052DC8 7F01E298 24010064 */ li $at, 100 +/* 052DCC 7F01E29C 03E00008 */ jr $ra +/* 052DD0 7F01E2A0 24020001 */ li $v0, 1 + +.L7F01E2A4: +/* 052DD4 7F01E2A4 24010064 */ li $at, 100 +.L7F01E2A8: +/* 052DD8 7F01E2A8 14810003 */ bne $a0, $at, .L7F01E2B8 +/* 052DDC 7F01E2AC 00001025 */ move $v0, $zero +/* 052DE0 7F01E2B0 03E00008 */ jr $ra +/* 052DE4 7F01E2B4 24020001 */ li $v0, 1 + +.L7F01E2B8: +/* 052DE8 7F01E2B8 03E00008 */ jr $ra +/* 052DEC 7F01E2BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 isStageUnlockedAtDifficulty(int foldernum,STAGENUM stageid,DIFFICULTY difficulty) { + +} +#else +GLOBAL_ASM( +.text +glabel isStageUnlockedAtDifficulty +/* 052DF0 7F01E2C0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 052DF4 7F01E2C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 052DF8 7F01E2C8 AFB50028 */ sw $s5, 0x28($sp) +/* 052DFC 7F01E2CC AFB30020 */ sw $s3, 0x20($sp) +/* 052E00 7F01E2D0 AFB00014 */ sw $s0, 0x14($sp) +/* 052E04 7F01E2D4 00808025 */ move $s0, $a0 +/* 052E08 7F01E2D8 00A09825 */ move $s3, $a1 +/* 052E0C 7F01E2DC 00C0A825 */ move $s5, $a2 +/* 052E10 7F01E2E0 AFB40024 */ sw $s4, 0x24($sp) +/* 052E14 7F01E2E4 AFB2001C */ sw $s2, 0x1c($sp) +/* 052E18 7F01E2E8 0FC078A3 */ jal check_if_valid_folder_num +/* 052E1C 7F01E2EC AFB10018 */ sw $s1, 0x18($sp) +/* 052E20 7F01E2F0 5040007B */ beql $v0, $zero, .L7F01E4E0 +/* 052E24 7F01E2F4 00001025 */ move $v0, $zero +/* 052E28 7F01E2F8 06600078 */ bltz $s3, .L7F01E4DC +/* 052E2C 7F01E2FC 2A610014 */ slti $at, $s3, 0x14 +/* 052E30 7F01E300 50200077 */ beql $at, $zero, .L7F01E4E0 +/* 052E34 7F01E304 00001025 */ move $v0, $zero +/* 052E38 7F01E308 06A00074 */ bltz $s5, .L7F01E4DC +/* 052E3C 7F01E30C 2AA10004 */ slti $at, $s5, 4 +/* 052E40 7F01E310 50200073 */ beql $at, $zero, .L7F01E4E0 +/* 052E44 7F01E314 00001025 */ move $v0, $zero +/* 052E48 7F01E318 0FC07771 */ jal get_save_folder_ptr +/* 052E4C 7F01E31C 02002025 */ move $a0, $s0 +/* 052E50 7F01E320 1040005C */ beqz $v0, .L7F01E494 +/* 052E54 7F01E324 00409025 */ move $s2, $v0 +/* 052E58 7F01E328 00402025 */ move $a0, $v0 +/* 052E5C 7F01E32C 02602825 */ move $a1, $s3 +/* 052E60 7F01E330 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052E64 7F01E334 02A03025 */ move $a2, $s5 +/* 052E68 7F01E338 10400003 */ beqz $v0, .L7F01E348 +/* 052E6C 7F01E33C 24010012 */ li $at, 18 +/* 052E70 7F01E340 10000067 */ b .L7F01E4E0 +/* 052E74 7F01E344 24020003 */ li $v0, 3 +.L7F01E348: +/* 052E78 7F01E348 56610003 */ bnel $s3, $at, .L7F01E358 +/* 052E7C 7F01E34C 24010013 */ li $at, 19 +/* 052E80 7F01E350 1AA00005 */ blez $s5, .L7F01E368 +/* 052E84 7F01E354 24010013 */ li $at, 19 +.L7F01E358: +/* 052E88 7F01E358 16610005 */ bne $s3, $at, .L7F01E370 +/* 052E8C 7F01E35C 2AA10002 */ slti $at, $s5, 2 +/* 052E90 7F01E360 50200004 */ beql $at, $zero, .L7F01E374 +/* 052E94 7F01E364 2AA10004 */ slti $at, $s5, 4 +.L7F01E368: +/* 052E98 7F01E368 1000005D */ b .L7F01E4E0 +/* 052E9C 7F01E36C 00001025 */ move $v0, $zero +.L7F01E370: +/* 052EA0 7F01E370 2AA10004 */ slti $at, $s5, 4 +.L7F01E374: +/* 052EA4 7F01E374 10200014 */ beqz $at, .L7F01E3C8 +/* 052EA8 7F01E378 02A08825 */ move $s1, $s5 +/* 052EAC 7F01E37C 24140004 */ li $s4, 4 +.L7F01E380: +/* 052EB0 7F01E380 1A60000A */ blez $s3, .L7F01E3AC +/* 052EB4 7F01E384 00008025 */ move $s0, $zero +/* 052EB8 7F01E388 02402025 */ move $a0, $s2 +.L7F01E38C: +/* 052EBC 7F01E38C 02002825 */ move $a1, $s0 +/* 052EC0 7F01E390 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052EC4 7F01E394 02203025 */ move $a2, $s1 +/* 052EC8 7F01E398 50400005 */ beql $v0, $zero, .L7F01E3B0 +/* 052ECC 7F01E39C 0213082A */ slt $at, $s0, $s3 +/* 052ED0 7F01E3A0 26100001 */ addiu $s0, $s0, 1 +/* 052ED4 7F01E3A4 5613FFF9 */ bnel $s0, $s3, .L7F01E38C +/* 052ED8 7F01E3A8 02402025 */ move $a0, $s2 +.L7F01E3AC: +/* 052EDC 7F01E3AC 0213082A */ slt $at, $s0, $s3 +.L7F01E3B0: +/* 052EE0 7F01E3B0 14200003 */ bnez $at, .L7F01E3C0 +/* 052EE4 7F01E3B4 26310001 */ addiu $s1, $s1, 1 +/* 052EE8 7F01E3B8 10000049 */ b .L7F01E4E0 +/* 052EEC 7F01E3BC 24020001 */ li $v0, 1 +.L7F01E3C0: +/* 052EF0 7F01E3C0 1634FFEF */ bne $s1, $s4, .L7F01E380 +/* 052EF4 7F01E3C4 00000000 */ nop +.L7F01E3C8: +/* 052EF8 7F01E3C8 2AA10003 */ slti $at, $s5, 3 +/* 052EFC 7F01E3CC 10200011 */ beqz $at, .L7F01E414 +/* 052F00 7F01E3D0 24140004 */ li $s4, 4 +/* 052F04 7F01E3D4 2A610012 */ slti $at, $s3, 0x12 +/* 052F08 7F01E3D8 1020000E */ beqz $at, .L7F01E414 +/* 052F0C 7F01E3DC 2AA10004 */ slti $at, $s5, 4 +/* 052F10 7F01E3E0 1020000C */ beqz $at, .L7F01E414 +/* 052F14 7F01E3E4 02A08825 */ move $s1, $s5 +/* 052F18 7F01E3E8 2670FFFF */ addiu $s0, $s3, -1 +/* 052F1C 7F01E3EC 02402025 */ move $a0, $s2 +.L7F01E3F0: +/* 052F20 7F01E3F0 02002825 */ move $a1, $s0 +/* 052F24 7F01E3F4 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F28 7F01E3F8 02203025 */ move $a2, $s1 +/* 052F2C 7F01E3FC 10400003 */ beqz $v0, .L7F01E40C +/* 052F30 7F01E400 26310001 */ addiu $s1, $s1, 1 +/* 052F34 7F01E404 10000036 */ b .L7F01E4E0 +/* 052F38 7F01E408 24020001 */ li $v0, 1 +.L7F01E40C: +/* 052F3C 7F01E40C 5634FFF8 */ bnel $s1, $s4, .L7F01E3F0 +/* 052F40 7F01E410 02402025 */ move $a0, $s2 +.L7F01E414: +/* 052F44 7F01E414 2AA10003 */ slti $at, $s5, 3 +/* 052F48 7F01E418 1020001E */ beqz $at, .L7F01E494 +/* 052F4C 7F01E41C 00008825 */ move $s1, $zero +/* 052F50 7F01E420 02402025 */ move $a0, $s2 +.L7F01E424: +/* 052F54 7F01E424 02202825 */ move $a1, $s1 +/* 052F58 7F01E428 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F5C 7F01E42C 00003025 */ move $a2, $zero +/* 052F60 7F01E430 50400006 */ beql $v0, $zero, .L7F01E44C +/* 052F64 7F01E434 2A210012 */ slti $at, $s1, 0x12 +/* 052F68 7F01E438 26310001 */ addiu $s1, $s1, 1 +/* 052F6C 7F01E43C 2A210012 */ slti $at, $s1, 0x12 +/* 052F70 7F01E440 5420FFF8 */ bnezl $at, .L7F01E424 +/* 052F74 7F01E444 02402025 */ move $a0, $s2 +/* 052F78 7F01E448 2A210012 */ slti $at, $s1, 0x12 +.L7F01E44C: +/* 052F7C 7F01E44C 14200011 */ bnez $at, .L7F01E494 +/* 052F80 7F01E450 00000000 */ nop +/* 052F84 7F01E454 1AA0000A */ blez $s5, .L7F01E480 +/* 052F88 7F01E458 00008825 */ move $s1, $zero +/* 052F8C 7F01E45C 02402025 */ move $a0, $s2 +.L7F01E460: +/* 052F90 7F01E460 02602825 */ move $a1, $s3 +/* 052F94 7F01E464 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F98 7F01E468 02203025 */ move $a2, $s1 +/* 052F9C 7F01E46C 50400005 */ beql $v0, $zero, .L7F01E484 +/* 052FA0 7F01E470 0235082A */ slt $at, $s1, $s5 +/* 052FA4 7F01E474 26310001 */ addiu $s1, $s1, 1 +/* 052FA8 7F01E478 5635FFF9 */ bnel $s1, $s5, .L7F01E460 +/* 052FAC 7F01E47C 02402025 */ move $a0, $s2 +.L7F01E480: +/* 052FB0 7F01E480 0235082A */ slt $at, $s1, $s5 +.L7F01E484: +/* 052FB4 7F01E484 14200003 */ bnez $at, .L7F01E494 +/* 052FB8 7F01E488 00000000 */ nop +/* 052FBC 7F01E48C 10000014 */ b .L7F01E4E0 +/* 052FC0 7F01E490 24020001 */ li $v0, 1 +.L7F01E494: +/* 052FC4 7F01E494 16600003 */ bnez $s3, .L7F01E4A4 +/* 052FC8 7F01E498 00000000 */ nop +/* 052FCC 7F01E49C 10000010 */ b .L7F01E4E0 +/* 052FD0 7F01E4A0 24020001 */ li $v0, 1 +.L7F01E4A4: +/* 052FD4 7F01E4A4 0FC24400 */ jal get_debug_enable_agent_levels_flag +/* 052FD8 7F01E4A8 00000000 */ nop +/* 052FDC 7F01E4AC 10400005 */ beqz $v0, .L7F01E4C4 +/* 052FE0 7F01E4B0 00000000 */ nop +/* 052FE4 7F01E4B4 16A00003 */ bnez $s5, .L7F01E4C4 +/* 052FE8 7F01E4B8 00000000 */ nop +/* 052FEC 7F01E4BC 10000008 */ b .L7F01E4E0 +/* 052FF0 7F01E4C0 24020001 */ li $v0, 1 +.L7F01E4C4: +/* 052FF4 7F01E4C4 0FC24403 */ jal get_debug_enable_all_levels_flag +/* 052FF8 7F01E4C8 00000000 */ nop +/* 052FFC 7F01E4CC 50400004 */ beql $v0, $zero, .L7F01E4E0 +/* 053000 7F01E4D0 00001025 */ move $v0, $zero +/* 053004 7F01E4D4 10000002 */ b .L7F01E4E0 +/* 053008 7F01E4D8 24020001 */ li $v0, 1 +.L7F01E4DC: +/* 05300C 7F01E4DC 00001025 */ move $v0, $zero +.L7F01E4E0: +/* 053010 7F01E4E0 8FBF002C */ lw $ra, 0x2c($sp) +/* 053014 7F01E4E4 8FB00014 */ lw $s0, 0x14($sp) +/* 053018 7F01E4E8 8FB10018 */ lw $s1, 0x18($sp) +/* 05301C 7F01E4EC 8FB2001C */ lw $s2, 0x1c($sp) +/* 053020 7F01E4F0 8FB30020 */ lw $s3, 0x20($sp) +/* 053024 7F01E4F4 8FB40024 */ lw $s4, 0x24($sp) +/* 053028 7F01E4F8 8FB50028 */ lw $s5, 0x28($sp) +/* 05302C 7F01E4FC 03E00008 */ jr $ra +/* 053030 7F01E500 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01E504(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01E504 +/* 053034 7F01E504 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053038 7F01E508 AFBF0014 */ sw $ra, 0x14($sp) +/* 05303C 7F01E50C AFA40028 */ sw $a0, 0x28($sp) +/* 053040 7F01E510 AFA5002C */ sw $a1, 0x2c($sp) +/* 053044 7F01E514 0FC07794 */ jal sub_GAME_7F01DE50 +/* 053048 7F01E518 AFA00020 */ sw $zero, 0x20($sp) +/* 05304C 7F01E51C 04400032 */ bltz $v0, .L7F01E5E8 +/* 053050 7F01E520 00401825 */ move $v1, $v0 +/* 053054 7F01E524 8FB9002C */ lw $t9, 0x2c($sp) +/* 053058 7F01E528 00027080 */ sll $t6, $v0, 2 +/* 05305C 7F01E52C 01C27023 */ subu $t6, $t6, $v0 +/* 053060 7F01E530 3C0F8007 */ lui $t7, %hi(save1) +/* 053064 7F01E534 25EF9920 */ addiu $t7, %lo(save1) # addiu $t7, $t7, -0x66e0 +/* 053068 7F01E538 000E7140 */ sll $t6, $t6, 5 +/* 05306C 7F01E53C 01CFC021 */ addu $t8, $t6, $t7 +/* 053070 7F01E540 27290060 */ addiu $t1, $t9, 0x60 +.L7F01E544: +/* 053074 7F01E544 8F210000 */ lw $at, ($t9) +/* 053078 7F01E548 2739000C */ addiu $t9, $t9, 0xc +/* 05307C 7F01E54C 2718000C */ addiu $t8, $t8, 0xc +/* 053080 7F01E550 AF01FFF4 */ sw $at, -0xc($t8) +/* 053084 7F01E554 8F21FFF8 */ lw $at, -8($t9) +/* 053088 7F01E558 AF01FFF8 */ sw $at, -8($t8) +/* 05308C 7F01E55C 8F21FFFC */ lw $at, -4($t9) +/* 053090 7F01E560 1729FFF8 */ bne $t9, $t1, .L7F01E544 +/* 053094 7F01E564 AF01FFFC */ sw $at, -4($t8) +/* 053098 7F01E568 8FAA0028 */ lw $t2, 0x28($sp) +/* 05309C 7F01E56C 1140000B */ beqz $t2, .L7F01E59C +/* 0530A0 7F01E570 01402025 */ move $a0, $t2 +/* 0530A4 7F01E574 0FC0763D */ jal set_eeprom_flag_0x18 +/* 0530A8 7F01E578 AFA30024 */ sw $v1, 0x24($sp) +/* 0530AC 7F01E57C 244B0001 */ addiu $t3, $v0, 1 +/* 0530B0 7F01E580 8FA30024 */ lw $v1, 0x24($sp) +/* 0530B4 7F01E584 05610004 */ bgez $t3, .L7F01E598 +/* 0530B8 7F01E588 316C0003 */ andi $t4, $t3, 3 +/* 0530BC 7F01E58C 11800002 */ beqz $t4, .L7F01E598 +/* 0530C0 7F01E590 00000000 */ nop +/* 0530C4 7F01E594 258CFFFC */ addiu $t4, $t4, -4 +.L7F01E598: +/* 0530C8 7F01E598 AFAC0020 */ sw $t4, 0x20($sp) +.L7F01E59C: +/* 0530CC 7F01E59C 00036880 */ sll $t5, $v1, 2 +/* 0530D0 7F01E5A0 01A36823 */ subu $t5, $t5, $v1 +/* 0530D4 7F01E5A4 3C0E8007 */ lui $t6, %hi(save1) +/* 0530D8 7F01E5A8 25CE9920 */ addiu $t6, %lo(save1) # addiu $t6, $t6, -0x66e0 +/* 0530DC 7F01E5AC 000D6940 */ sll $t5, $t5, 5 +/* 0530E0 7F01E5B0 01AE2021 */ addu $a0, $t5, $t6 +/* 0530E4 7F01E5B4 AFA4001C */ sw $a0, 0x1c($sp) +/* 0530E8 7F01E5B8 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 0530EC 7F01E5BC 00002825 */ move $a1, $zero +/* 0530F0 7F01E5C0 8FA4001C */ lw $a0, 0x1c($sp) +/* 0530F4 7F01E5C4 0FC07641 */ jal reset_eeprom_flag_0x18 +/* 0530F8 7F01E5C8 8FA50020 */ lw $a1, 0x20($sp) +/* 0530FC 7F01E5CC 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 053100 7F01E5D0 8FA4001C */ lw $a0, 0x1c($sp) +/* 053104 7F01E5D4 8FAF0028 */ lw $t7, 0x28($sp) +/* 053108 7F01E5D8 51E00004 */ beql $t7, $zero, .L7F01E5EC +/* 05310C 7F01E5DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 053110 7F01E5E0 0FC07610 */ jal sub_GAME_7F01D840 +/* 053114 7F01E5E4 01E02025 */ move $a0, $t7 +.L7F01E5E8: +/* 053118 7F01E5E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01E5EC: +/* 05311C 7F01E5EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 053120 7F01E5F0 03E00008 */ jr $ra +/* 053124 7F01E5F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void unlock_stage_in_folder_on_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unlock_stage_in_folder_on_difficulty +/* 053128 7F01E5F8 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 05312C 7F01E5FC AFB50028 */ sw $s5, 0x28($sp) +/* 053130 7F01E600 AFB40024 */ sw $s4, 0x24($sp) +/* 053134 7F01E604 AFB2001C */ sw $s2, 0x1c($sp) +/* 053138 7F01E608 AFB00014 */ sw $s0, 0x14($sp) +/* 05313C 7F01E60C 00808025 */ move $s0, $a0 +/* 053140 7F01E610 00A09025 */ move $s2, $a1 +/* 053144 7F01E614 00C0A025 */ move $s4, $a2 +/* 053148 7F01E618 00E0A825 */ move $s5, $a3 +/* 05314C 7F01E61C AFBF002C */ sw $ra, 0x2c($sp) +/* 053150 7F01E620 AFB30020 */ sw $s3, 0x20($sp) +/* 053154 7F01E624 04800045 */ bltz $a0, .L7F01E73C +/* 053158 7F01E628 AFB10018 */ sw $s1, 0x18($sp) +/* 05315C 7F01E62C 28810004 */ slti $at, $a0, 4 +/* 053160 7F01E630 50200043 */ beql $at, $zero, .L7F01E740 +/* 053164 7F01E634 8FBF002C */ lw $ra, 0x2c($sp) +/* 053168 7F01E638 04A00040 */ bltz $a1, .L7F01E73C +/* 05316C 7F01E63C 28A10014 */ slti $at, $a1, 0x14 +/* 053170 7F01E640 5020003F */ beql $at, $zero, .L7F01E740 +/* 053174 7F01E644 8FBF002C */ lw $ra, 0x2c($sp) +/* 053178 7F01E648 04C0003C */ bltz $a2, .L7F01E73C +/* 05317C 7F01E64C 28C10004 */ slti $at, $a2, 4 +/* 053180 7F01E650 1020003A */ beqz $at, .L7F01E73C +/* 053184 7F01E654 27B10038 */ addiu $s1, $sp, 0x38 +/* 053188 7F01E658 3C0E8003 */ lui $t6, %hi(D_8002C640+0x20) +/* 05318C 7F01E65C 25CEC660 */ addiu $t6, %lo(D_8002C640+0x20) # addiu $t6, $t6, -0x39a0 +/* 053190 7F01E660 25D80060 */ addiu $t8, $t6, 0x60 +/* 053194 7F01E664 0220C825 */ move $t9, $s1 +.L7F01E668: +/* 053198 7F01E668 8DC10000 */ lw $at, ($t6) +/* 05319C 7F01E66C 25CE000C */ addiu $t6, $t6, 0xc +/* 0531A0 7F01E670 2739000C */ addiu $t9, $t9, 0xc +/* 0531A4 7F01E674 AF21FFF4 */ sw $at, -0xc($t9) +/* 0531A8 7F01E678 8DC1FFF8 */ lw $at, -8($t6) +/* 0531AC 7F01E67C AF21FFF8 */ sw $at, -8($t9) +/* 0531B0 7F01E680 8DC1FFFC */ lw $at, -4($t6) +/* 0531B4 7F01E684 15D8FFF8 */ bne $t6, $t8, .L7F01E668 +/* 0531B8 7F01E688 AF21FFFC */ sw $at, -4($t9) +/* 0531BC 7F01E68C 0FC07771 */ jal get_save_folder_ptr +/* 0531C0 7F01E690 02002025 */ move $a0, $s0 +/* 0531C4 7F01E694 1040000F */ beqz $v0, .L7F01E6D4 +/* 0531C8 7F01E698 AFA20034 */ sw $v0, 0x34($sp) +/* 0531CC 7F01E69C 00405025 */ move $t2, $v0 +/* 0531D0 7F01E6A0 02205825 */ move $t3, $s1 +/* 0531D4 7F01E6A4 24490060 */ addiu $t1, $v0, 0x60 +.L7F01E6A8: +/* 0531D8 7F01E6A8 8D410000 */ lw $at, ($t2) +/* 0531DC 7F01E6AC 254A000C */ addiu $t2, $t2, 0xc +/* 0531E0 7F01E6B0 256B000C */ addiu $t3, $t3, 0xc +/* 0531E4 7F01E6B4 AD61FFF4 */ sw $at, -0xc($t3) +/* 0531E8 7F01E6B8 8D41FFF8 */ lw $at, -8($t2) +/* 0531EC 7F01E6BC AD61FFF8 */ sw $at, -8($t3) +/* 0531F0 7F01E6C0 8D41FFFC */ lw $at, -4($t2) +/* 0531F4 7F01E6C4 1549FFF8 */ bne $t2, $t1, .L7F01E6A8 +/* 0531F8 7F01E6C8 AD61FFFC */ sw $at, -4($t3) +/* 0531FC 7F01E6CC 10000004 */ b .L7F01E6E0 +/* 053200 7F01E6D0 00000000 */ nop +.L7F01E6D4: +/* 053204 7F01E6D4 02202025 */ move $a0, $s1 +/* 053208 7F01E6D8 0FC07636 */ jal set_eeprom_to_folder_num +/* 05320C 7F01E6DC 02002825 */ move $a1, $s0 +.L7F01E6E0: +/* 053210 7F01E6E0 06800013 */ bltz $s4, .L7F01E730 +/* 053214 7F01E6E4 02808025 */ move $s0, $s4 +/* 053218 7F01E6E8 3C1305F5 */ lui $s3, (0x05F5E0FF >> 16) # lui $s3, 0x5f5 +/* 05321C 7F01E6EC 3673E0FF */ ori $s3, (0x05F5E0FF & 0xFFFF) # ori $s3, $s3, 0xe0ff +.L7F01E6F0: +/* 053220 7F01E6F0 16140008 */ bne $s0, $s4, .L7F01E714 +/* 053224 7F01E6F4 02202025 */ move $a0, $s1 +/* 053228 7F01E6F8 02202025 */ move $a0, $s1 +/* 05322C 7F01E6FC 02402825 */ move $a1, $s2 +/* 053230 7F01E700 02003025 */ move $a2, $s0 +/* 053234 7F01E704 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053238 7F01E708 02A03825 */ move $a3, $s5 +/* 05323C 7F01E70C 10000006 */ b .L7F01E728 +/* 053240 7F01E710 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E714: +/* 053244 7F01E714 02402825 */ move $a1, $s2 +/* 053248 7F01E718 02003025 */ move $a2, $s0 +/* 05324C 7F01E71C 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053250 7F01E720 02603825 */ move $a3, $s3 +/* 053254 7F01E724 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E728: +/* 053258 7F01E728 0601FFF1 */ bgez $s0, .L7F01E6F0 +/* 05325C 7F01E72C 00000000 */ nop +.L7F01E730: +/* 053260 7F01E730 8FA40034 */ lw $a0, 0x34($sp) +/* 053264 7F01E734 0FC07941 */ jal sub_GAME_7F01E504 +/* 053268 7F01E738 02202825 */ move $a1, $s1 +.L7F01E73C: +/* 05326C 7F01E73C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F01E740: +/* 053270 7F01E740 8FB00014 */ lw $s0, 0x14($sp) +/* 053274 7F01E744 8FB10018 */ lw $s1, 0x18($sp) +/* 053278 7F01E748 8FB2001C */ lw $s2, 0x1c($sp) +/* 05327C 7F01E74C 8FB30020 */ lw $s3, 0x20($sp) +/* 053280 7F01E750 8FB40024 */ lw $s4, 0x24($sp) +/* 053284 7F01E754 8FB50028 */ lw $s5, 0x28($sp) +/* 053288 7F01E758 03E00008 */ jr $ra +/* 05328C 7F01E75C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01E760(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01E760 +/* 053290 7F01E760 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 053294 7F01E764 AFBF0014 */ sw $ra, 0x14($sp) +/* 053298 7F01E768 0480003E */ bltz $a0, .L7F01E864 +/* 05329C 7F01E76C 00803825 */ move $a3, $a0 +/* 0532A0 7F01E770 28810004 */ slti $at, $a0, 4 +/* 0532A4 7F01E774 5020003C */ beql $at, $zero, .L7F01E868 +/* 0532A8 7F01E778 8FBF0014 */ lw $ra, 0x14($sp) +/* 0532AC 7F01E77C 04A00039 */ bltz $a1, .L7F01E864 +/* 0532B0 7F01E780 28A10014 */ slti $at, $a1, 0x14 +/* 0532B4 7F01E784 50200038 */ beql $at, $zero, .L7F01E868 +/* 0532B8 7F01E788 8FBF0014 */ lw $ra, 0x14($sp) +/* 0532BC 7F01E78C AFA50084 */ sw $a1, 0x84($sp) +/* 0532C0 7F01E790 0FC07771 */ jal get_save_folder_ptr +/* 0532C4 7F01E794 AFA70080 */ sw $a3, 0x80($sp) +/* 0532C8 7F01E798 8FA70080 */ lw $a3, 0x80($sp) +/* 0532CC 7F01E79C 10400009 */ beqz $v0, .L7F01E7C4 +/* 0532D0 7F01E7A0 00403025 */ move $a2, $v0 +/* 0532D4 7F01E7A4 00402025 */ move $a0, $v0 +/* 0532D8 7F01E7A8 8FA50084 */ lw $a1, 0x84($sp) +/* 0532DC 7F01E7AC AFA2007C */ sw $v0, 0x7c($sp) +/* 0532E0 7F01E7B0 0FC07748 */ jal check_if_cheat_unlocked +/* 0532E4 7F01E7B4 AFA70080 */ sw $a3, 0x80($sp) +/* 0532E8 7F01E7B8 8FA6007C */ lw $a2, 0x7c($sp) +/* 0532EC 7F01E7BC 14400029 */ bnez $v0, .L7F01E864 +/* 0532F0 7F01E7C0 8FA70080 */ lw $a3, 0x80($sp) +.L7F01E7C4: +/* 0532F4 7F01E7C4 3C0E8003 */ lui $t6, %hi(D_8002C6C0) +/* 0532F8 7F01E7C8 27A4001C */ addiu $a0, $sp, 0x1c +/* 0532FC 7F01E7CC 25CEC6C0 */ addiu $t6, %lo(D_8002C6C0) # addiu $t6, $t6, -0x3940 +/* 053300 7F01E7D0 25D80060 */ addiu $t8, $t6, 0x60 +/* 053304 7F01E7D4 0080C825 */ move $t9, $a0 +.L7F01E7D8: +/* 053308 7F01E7D8 8DC10000 */ lw $at, ($t6) +/* 05330C 7F01E7DC 25CE000C */ addiu $t6, $t6, 0xc +/* 053310 7F01E7E0 2739000C */ addiu $t9, $t9, 0xc +/* 053314 7F01E7E4 AF21FFF4 */ sw $at, -0xc($t9) +/* 053318 7F01E7E8 8DC1FFF8 */ lw $at, -8($t6) +/* 05331C 7F01E7EC AF21FFF8 */ sw $at, -8($t9) +/* 053320 7F01E7F0 8DC1FFFC */ lw $at, -4($t6) +/* 053324 7F01E7F4 15D8FFF8 */ bne $t6, $t8, .L7F01E7D8 +/* 053328 7F01E7F8 AF21FFFC */ sw $at, -4($t9) +/* 05332C 7F01E7FC 10C0000F */ beqz $a2, .L7F01E83C +/* 053330 7F01E800 00E02825 */ move $a1, $a3 +/* 053334 7F01E804 00C05025 */ move $t2, $a2 +/* 053338 7F01E808 00805825 */ move $t3, $a0 +/* 05333C 7F01E80C 24C90060 */ addiu $t1, $a2, 0x60 +.L7F01E810: +/* 053340 7F01E810 8D410000 */ lw $at, ($t2) +/* 053344 7F01E814 254A000C */ addiu $t2, $t2, 0xc +/* 053348 7F01E818 256B000C */ addiu $t3, $t3, 0xc +/* 05334C 7F01E81C AD61FFF4 */ sw $at, -0xc($t3) +/* 053350 7F01E820 8D41FFF8 */ lw $at, -8($t2) +/* 053354 7F01E824 AD61FFF8 */ sw $at, -8($t3) +/* 053358 7F01E828 8D41FFFC */ lw $at, -4($t2) +/* 05335C 7F01E82C 1549FFF8 */ bne $t2, $t1, .L7F01E810 +/* 053360 7F01E830 AD61FFFC */ sw $at, -4($t3) +/* 053364 7F01E834 10000006 */ b .L7F01E850 +/* 053368 7F01E838 8FA50084 */ lw $a1, 0x84($sp) +.L7F01E83C: +/* 05336C 7F01E83C 0FC07636 */ jal set_eeprom_to_folder_num +/* 053370 7F01E840 AFA6007C */ sw $a2, 0x7c($sp) +/* 053374 7F01E844 8FA6007C */ lw $a2, 0x7c($sp) +/* 053378 7F01E848 27A4001C */ addiu $a0, $sp, 0x1c +/* 05337C 7F01E84C 8FA50084 */ lw $a1, 0x84($sp) +.L7F01E850: +/* 053380 7F01E850 0FC0775D */ jal sub_GAME_7F01DD74 +/* 053384 7F01E854 AFA6007C */ sw $a2, 0x7c($sp) +/* 053388 7F01E858 8FA4007C */ lw $a0, 0x7c($sp) +/* 05338C 7F01E85C 0FC07941 */ jal sub_GAME_7F01E504 +/* 053390 7F01E860 27A5001C */ addiu $a1, $sp, 0x1c +.L7F01E864: +/* 053394 7F01E864 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01E868: +/* 053398 7F01E868 27BD0080 */ addiu $sp, $sp, 0x80 +/* 05339C 7F01E86C 03E00008 */ jr $ra +/* 0533A0 7F01E870 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_highest_stage_difficulty_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_highest_stage_difficulty_completed_in_folder +/* 0533A4 7F01E874 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0533A8 7F01E878 AFBF0024 */ sw $ra, 0x24($sp) +/* 0533AC 7F01E87C AFB20020 */ sw $s2, 0x20($sp) +/* 0533B0 7F01E880 AFB1001C */ sw $s1, 0x1c($sp) +/* 0533B4 7F01E884 AFB00018 */ sw $s0, 0x18($sp) +/* 0533B8 7F01E888 AFA5002C */ sw $a1, 0x2c($sp) +/* 0533BC 7F01E88C 0FC07771 */ jal get_save_folder_ptr +/* 0533C0 7F01E890 AFA60030 */ sw $a2, 0x30($sp) +/* 0533C4 7F01E894 10400014 */ beqz $v0, .L7F01E8E8 +/* 0533C8 7F01E898 00409025 */ move $s2, $v0 +/* 0533CC 7F01E89C 24110003 */ li $s1, 3 +/* 0533D0 7F01E8A0 24100013 */ li $s0, 19 +.L7F01E8A4: +/* 0533D4 7F01E8A4 02402025 */ move $a0, $s2 +.L7F01E8A8: +/* 0533D8 7F01E8A8 02002825 */ move $a1, $s0 +/* 0533DC 7F01E8AC 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 0533E0 7F01E8B0 02203025 */ move $a2, $s1 +/* 0533E4 7F01E8B4 50400007 */ beql $v0, $zero, .L7F01E8D4 +/* 0533E8 7F01E8B8 2610FFFF */ addiu $s0, $s0, -1 +/* 0533EC 7F01E8BC 8FAE002C */ lw $t6, 0x2c($sp) +/* 0533F0 7F01E8C0 ADD00000 */ sw $s0, ($t6) +/* 0533F4 7F01E8C4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0533F8 7F01E8C8 1000000C */ b .L7F01E8FC +/* 0533FC 7F01E8CC ADF10000 */ sw $s1, ($t7) +/* 053400 7F01E8D0 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E8D4: +/* 053404 7F01E8D4 0603FFF4 */ bgezl $s0, .L7F01E8A8 +/* 053408 7F01E8D8 02402025 */ move $a0, $s2 +/* 05340C 7F01E8DC 2631FFFF */ addiu $s1, $s1, -1 +/* 053410 7F01E8E0 0623FFF0 */ bgezl $s1, .L7F01E8A4 +/* 053414 7F01E8E4 24100013 */ li $s0, 19 +.L7F01E8E8: +/* 053418 7F01E8E8 8FB8002C */ lw $t8, 0x2c($sp) +/* 05341C 7F01E8EC 2402FFFF */ li $v0, -1 +/* 053420 7F01E8F0 AF020000 */ sw $v0, ($t8) +/* 053424 7F01E8F4 8FB90030 */ lw $t9, 0x30($sp) +/* 053428 7F01E8F8 AF220000 */ sw $v0, ($t9) +.L7F01E8FC: +/* 05342C 7F01E8FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 053430 7F01E900 8FB00018 */ lw $s0, 0x18($sp) +/* 053434 7F01E904 8FB1001C */ lw $s1, 0x1c($sp) +/* 053438 7F01E908 8FB20020 */ lw $s2, 0x20($sp) +/* 05343C 7F01E90C 03E00008 */ jr $ra +/* 053440 7F01E910 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void check_egypt_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_egypt_completed_in_folder +/* 053444 7F01E914 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053448 7F01E918 AFBF0024 */ sw $ra, 0x24($sp) +/* 05344C 7F01E91C AFB2001C */ sw $s2, 0x1c($sp) +/* 053450 7F01E920 00809025 */ move $s2, $a0 +/* 053454 7F01E924 AFB30020 */ sw $s3, 0x20($sp) +/* 053458 7F01E928 AFB10018 */ sw $s1, 0x18($sp) +/* 05345C 7F01E92C 0FC07771 */ jal get_save_folder_ptr +/* 053460 7F01E930 AFB00014 */ sw $s0, 0x14($sp) +/* 053464 7F01E934 10400010 */ beqz $v0, .L7F01E978 +/* 053468 7F01E938 24110013 */ li $s1, 19 +/* 05346C 7F01E93C 24130004 */ li $s3, 4 +/* 053470 7F01E940 00008025 */ move $s0, $zero +.L7F01E944: +/* 053474 7F01E944 02402025 */ move $a0, $s2 +.L7F01E948: +/* 053478 7F01E948 02202825 */ move $a1, $s1 +/* 05347C 7F01E94C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053480 7F01E950 02003025 */ move $a2, $s0 +/* 053484 7F01E954 10400003 */ beqz $v0, .L7F01E964 +/* 053488 7F01E958 26100001 */ addiu $s0, $s0, 1 +/* 05348C 7F01E95C 10000007 */ b .L7F01E97C +/* 053490 7F01E960 02201025 */ move $v0, $s1 +.L7F01E964: +/* 053494 7F01E964 5613FFF8 */ bnel $s0, $s3, .L7F01E948 +/* 053498 7F01E968 02402025 */ move $a0, $s2 +/* 05349C 7F01E96C 2631FFFF */ addiu $s1, $s1, -1 +/* 0534A0 7F01E970 0623FFF4 */ bgezl $s1, .L7F01E944 +/* 0534A4 7F01E974 00008025 */ move $s0, $zero +.L7F01E978: +/* 0534A8 7F01E978 00001025 */ move $v0, $zero +.L7F01E97C: +/* 0534AC 7F01E97C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0534B0 7F01E980 8FB00014 */ lw $s0, 0x14($sp) +/* 0534B4 7F01E984 8FB10018 */ lw $s1, 0x18($sp) +/* 0534B8 7F01E988 8FB2001C */ lw $s2, 0x1c($sp) +/* 0534BC 7F01E98C 8FB30020 */ lw $s3, 0x20($sp) +/* 0534C0 7F01E990 03E00008 */ jr $ra +/* 0534C4 7F01E994 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +u32 check_egypt_completed_any_folder(void) { + u32 isfound; + int folder; + u32 isunlocked; + + isunlocked = 0; + folder = 0; + while (folder != 4) { + isfound = check_egypt_completed_in_folder(folder); + folder += 1; + if ((int)isunlocked < (int)isfound) { + isunlocked = isfound; + } + }; + return isunlocked; +} + + + + +#ifdef NONMATCHING +void check_cradle_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cradle_completed_in_folder +/* 053524 7F01E9F4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 053528 7F01E9F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05352C 7F01E9FC AFA40018 */ sw $a0, 0x18($sp) +/* 053530 7F01EA00 24050011 */ li $a1, 17 +/* 053534 7F01EA04 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053538 7F01EA08 00003025 */ move $a2, $zero +/* 05353C 7F01EA0C 384E0003 */ xori $t6, $v0, 3 +/* 053540 7F01EA10 2DC20001 */ sltiu $v0, $t6, 1 +/* 053544 7F01EA14 1440000D */ bnez $v0, .L7F01EA4C +/* 053548 7F01EA18 8FA40018 */ lw $a0, 0x18($sp) +/* 05354C 7F01EA1C 24050011 */ li $a1, 17 +/* 053550 7F01EA20 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053554 7F01EA24 24060001 */ li $a2, 1 +/* 053558 7F01EA28 384F0003 */ xori $t7, $v0, 3 +/* 05355C 7F01EA2C 2DE20001 */ sltiu $v0, $t7, 1 +/* 053560 7F01EA30 14400006 */ bnez $v0, .L7F01EA4C +/* 053564 7F01EA34 8FA40018 */ lw $a0, 0x18($sp) +/* 053568 7F01EA38 24050011 */ li $a1, 17 +/* 05356C 7F01EA3C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053570 7F01EA40 24060002 */ li $a2, 2 +/* 053574 7F01EA44 38580003 */ xori $t8, $v0, 3 +/* 053578 7F01EA48 2F020001 */ sltiu $v0, $t8, 1 +.L7F01EA4C: +/* 05357C 7F01EA4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 053580 7F01EA50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 053584 7F01EA54 03E00008 */ jr $ra +/* 053588 7F01EA58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_aztec_completed_in_folder_secret_00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_aztec_completed_in_folder_secret_00 +/* 05358C 7F01EA5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 053590 7F01EA60 AFBF0014 */ sw $ra, 0x14($sp) +/* 053594 7F01EA64 AFA40018 */ sw $a0, 0x18($sp) +/* 053598 7F01EA68 24050012 */ li $a1, 18 +/* 05359C 7F01EA6C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535A0 7F01EA70 24060001 */ li $a2, 1 +/* 0535A4 7F01EA74 384E0003 */ xori $t6, $v0, 3 +/* 0535A8 7F01EA78 2DC20001 */ sltiu $v0, $t6, 1 +/* 0535AC 7F01EA7C 14400006 */ bnez $v0, .L7F01EA98 +/* 0535B0 7F01EA80 8FA40018 */ lw $a0, 0x18($sp) +/* 0535B4 7F01EA84 24050012 */ li $a1, 18 +/* 0535B8 7F01EA88 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535BC 7F01EA8C 24060002 */ li $a2, 2 +/* 0535C0 7F01EA90 384F0003 */ xori $t7, $v0, 3 +/* 0535C4 7F01EA94 2DE20001 */ sltiu $v0, $t7, 1 +.L7F01EA98: +/* 0535C8 7F01EA98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0535CC 7F01EA9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0535D0 7F01EAA0 03E00008 */ jr $ra +/* 0535D4 7F01EAA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_egypt_completed_in_folder_00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_egypt_completed_in_folder_00 +/* 0535D8 7F01EAA8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0535DC 7F01EAAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0535E0 7F01EAB0 24050013 */ li $a1, 19 +/* 0535E4 7F01EAB4 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535E8 7F01EAB8 24060002 */ li $a2, 2 +/* 0535EC 7F01EABC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0535F0 7F01EAC0 384E0003 */ xori $t6, $v0, 3 +/* 0535F4 7F01EAC4 2DC20001 */ sltiu $v0, $t6, 1 +/* 0535F8 7F01EAC8 03E00008 */ jr $ra +/* 0535FC 7F01EACC 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +u32 check_cradle_completed_any_folder(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_cradle_completed_in_folder(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u32 check_aztec_completed_any_folder_secret_00(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_aztec_completed_in_folder_secret_00(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u32 check_egypt_completed_any_folder_00(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_egypt_completed_in_folder_00(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u8 removed_would_have_returned_bond_for_folder_num(u32 folder) +{ + #ifdef ALL_BONDS + //likely code based on behavior + if ((folder >= 0) && (folder < 4)) + { + return save_selected_bond[folder]; + } + #endif + + #ifndef ALL_BONDS + return 0; + #endif +} + + + +#ifdef NONMATCHING +void set_selected_bond_to_folder(u32 folder,u32 bond) { + if ((folder >= 0) && (folder < 4)) + { + save_selected_bond[folder] = 0; + } +} +#else +GLOBAL_ASM( +.text +glabel set_selected_bond_to_folder +/* 0536FC 7F01EBCC 04800007 */ bltz $a0, .L7F01EBEC +/* 053700 7F01EBD0 AFA50004 */ sw $a1, 4($sp) +/* 053704 7F01EBD4 28810004 */ slti $at, $a0, 4 +/* 053708 7F01EBD8 10200004 */ beqz $at, .L7F01EBEC +/* 05370C 7F01EBDC 00047080 */ sll $t6, $a0, 2 +/* 053710 7F01EBE0 3C018003 */ lui $at, %hi(save_selected_bond) +/* 053714 7F01EBE4 002E0821 */ addu $at, $at, $t6 +/* 053718 7F01EBE8 AC20C510 */ sw $zero, %lo(save_selected_bond)($at) +.L7F01EBEC: +/* 05371C 7F01EBEC 03E00008 */ jr $ra +/* 053720 7F01EBF0 00000000 */ nop +) +#endif + + + +void sub_GAME_7F01EBF4(u32 unused) { + return; +} + +void sub_GAME_7F01EBFC(u32 unused) { + return; +} + + + + +#ifdef NONMATCHING +void delete_eeprom_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel delete_eeprom_folder +/* 053734 7F01EC04 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 053738 7F01EC08 AFB00014 */ sw $s0, 0x14($sp) +/* 05373C 7F01EC0C 00808025 */ move $s0, $a0 +/* 053740 7F01EC10 AFBF001C */ sw $ra, 0x1c($sp) +/* 053744 7F01EC14 04800039 */ bltz $a0, .L7F01ECFC +/* 053748 7F01EC18 AFB10018 */ sw $s1, 0x18($sp) +/* 05374C 7F01EC1C 28810004 */ slti $at, $a0, 4 +/* 053750 7F01EC20 50200037 */ beql $at, $zero, .L7F01ED00 +/* 053754 7F01EC24 8FBF001C */ lw $ra, 0x1c($sp) +/* 053758 7F01EC28 0FC07771 */ jal get_save_folder_ptr +/* 05375C 7F01EC2C 00000000 */ nop +/* 053760 7F01EC30 10400032 */ beqz $v0, .L7F01ECFC +/* 053764 7F01EC34 00408825 */ move $s1, $v0 +/* 053768 7F01EC38 02002025 */ move $a0, $s0 +/* 05376C 7F01EC3C 27A50088 */ addiu $a1, $sp, 0x88 +/* 053770 7F01EC40 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 053774 7F01EC44 27A60084 */ addiu $a2, $sp, 0x84 +/* 053778 7F01EC48 8FAE0088 */ lw $t6, 0x88($sp) +/* 05377C 7F01EC4C 8FAF0084 */ lw $t7, 0x84($sp) +/* 053780 7F01EC50 05C2002B */ bltzl $t6, .L7F01ED00 +/* 053784 7F01EC54 8FBF001C */ lw $ra, 0x1c($sp) +/* 053788 7F01EC58 05E00028 */ bltz $t7, .L7F01ECFC +/* 05378C 7F01EC5C 27A20024 */ addiu $v0, $sp, 0x24 +/* 053790 7F01EC60 3C188003 */ lui $t8, %hi(D_8002C720) +/* 053794 7F01EC64 2718C720 */ addiu $t8, %lo(D_8002C720) # addiu $t8, $t8, -0x38e0 +/* 053798 7F01EC68 27080060 */ addiu $t0, $t8, 0x60 +/* 05379C 7F01EC6C 00404825 */ move $t1, $v0 +.L7F01EC70: +/* 0537A0 7F01EC70 8F010000 */ lw $at, ($t8) +/* 0537A4 7F01EC74 2718000C */ addiu $t8, $t8, 0xc +/* 0537A8 7F01EC78 2529000C */ addiu $t1, $t1, 0xc +/* 0537AC 7F01EC7C AD21FFF4 */ sw $at, -0xc($t1) +/* 0537B0 7F01EC80 8F01FFF8 */ lw $at, -8($t8) +/* 0537B4 7F01EC84 AD21FFF8 */ sw $at, -8($t1) +/* 0537B8 7F01EC88 8F01FFFC */ lw $at, -4($t8) +/* 0537BC 7F01EC8C 1708FFF8 */ bne $t8, $t0, .L7F01EC70 +/* 0537C0 7F01EC90 AD21FFFC */ sw $at, -4($t1) +/* 0537C4 7F01EC94 00406025 */ move $t4, $v0 +/* 0537C8 7F01EC98 02206825 */ move $t5, $s1 +/* 0537CC 7F01EC9C 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01ECA0: +/* 0537D0 7F01ECA0 8D810000 */ lw $at, ($t4) +/* 0537D4 7F01ECA4 258C000C */ addiu $t4, $t4, 0xc +/* 0537D8 7F01ECA8 25AD000C */ addiu $t5, $t5, 0xc +/* 0537DC 7F01ECAC ADA1FFF4 */ sw $at, -0xc($t5) +/* 0537E0 7F01ECB0 8D81FFF8 */ lw $at, -8($t4) +/* 0537E4 7F01ECB4 ADA1FFF8 */ sw $at, -8($t5) +/* 0537E8 7F01ECB8 8D81FFFC */ lw $at, -4($t4) +/* 0537EC 7F01ECBC 158BFFF8 */ bne $t4, $t3, .L7F01ECA0 +/* 0537F0 7F01ECC0 ADA1FFFC */ sw $at, -4($t5) +/* 0537F4 7F01ECC4 02202025 */ move $a0, $s1 +/* 0537F8 7F01ECC8 0FC07636 */ jal set_eeprom_to_folder_num +/* 0537FC 7F01ECCC 02002825 */ move $a1, $s0 +/* 053800 7F01ECD0 02202025 */ move $a0, $s1 +/* 053804 7F01ECD4 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 053808 7F01ECD8 00002825 */ move $a1, $zero +/* 05380C 7F01ECDC 02202025 */ move $a0, $s1 +/* 053810 7F01ECE0 0FC0764D */ jal set_selected_bond +/* 053814 7F01ECE4 02002825 */ move $a1, $s0 +/* 053818 7F01ECE8 02002025 */ move $a0, $s0 +/* 05381C 7F01ECEC 0FC07AF3 */ jal set_selected_bond_to_folder +/* 053820 7F01ECF0 02002825 */ move $a1, $s0 +/* 053824 7F01ECF4 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 053828 7F01ECF8 02202025 */ move $a0, $s1 +.L7F01ECFC: +/* 05382C 7F01ECFC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01ED00: +/* 053830 7F01ED00 8FB00014 */ lw $s0, 0x14($sp) +/* 053834 7F01ED04 8FB10018 */ lw $s1, 0x18($sp) +/* 053838 7F01ED08 03E00008 */ jr $ra +/* 05383C 7F01ED0C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01ED10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01ED10 +/* 053840 7F01ED10 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 053844 7F01ED14 AFBF002C */ sw $ra, 0x2c($sp) +/* 053848 7F01ED18 AFB50028 */ sw $s5, 0x28($sp) +/* 05384C 7F01ED1C AFB40024 */ sw $s4, 0x24($sp) +/* 053850 7F01ED20 AFB30020 */ sw $s3, 0x20($sp) +/* 053854 7F01ED24 AFB2001C */ sw $s2, 0x1c($sp) +/* 053858 7F01ED28 AFB10018 */ sw $s1, 0x18($sp) +/* 05385C 7F01ED2C 0FC07771 */ jal get_save_folder_ptr +/* 053860 7F01ED30 AFB00014 */ sw $s0, 0x14($sp) +/* 053864 7F01ED34 3C1105F5 */ lui $s1, (0x05F5E0FF >> 16) # lui $s1, 0x5f5 +/* 053868 7F01ED38 0040A025 */ move $s4, $v0 +/* 05386C 7F01ED3C 3631E0FF */ ori $s1, (0x05F5E0FF & 0xFFFF) # ori $s1, $s1, 0xe0ff +/* 053870 7F01ED40 00009825 */ move $s3, $zero +/* 053874 7F01ED44 24150014 */ li $s5, 20 +/* 053878 7F01ED48 24120003 */ li $s2, 3 +/* 05387C 7F01ED4C 00008025 */ move $s0, $zero +.L7F01ED50: +/* 053880 7F01ED50 02802025 */ move $a0, $s4 +.L7F01ED54: +/* 053884 7F01ED54 02602825 */ move $a1, $s3 +/* 053888 7F01ED58 02003025 */ move $a2, $s0 +/* 05388C 7F01ED5C 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053890 7F01ED60 02203825 */ move $a3, $s1 +/* 053894 7F01ED64 26100001 */ addiu $s0, $s0, 1 +/* 053898 7F01ED68 5612FFFA */ bnel $s0, $s2, .L7F01ED54 +/* 05389C 7F01ED6C 02802025 */ move $a0, $s4 +/* 0538A0 7F01ED70 26730001 */ addiu $s3, $s3, 1 +/* 0538A4 7F01ED74 5675FFF6 */ bnel $s3, $s5, .L7F01ED50 +/* 0538A8 7F01ED78 00008025 */ move $s0, $zero +/* 0538AC 7F01ED7C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0538B0 7F01ED80 8FB00014 */ lw $s0, 0x14($sp) +/* 0538B4 7F01ED84 8FB10018 */ lw $s1, 0x18($sp) +/* 0538B8 7F01ED88 8FB2001C */ lw $s2, 0x1c($sp) +/* 0538BC 7F01ED8C 8FB30020 */ lw $s3, 0x20($sp) +/* 0538C0 7F01ED90 8FB40024 */ lw $s4, 0x24($sp) +/* 0538C4 7F01ED94 8FB50028 */ lw $s5, 0x28($sp) +/* 0538C8 7F01ED98 03E00008 */ jr $ra +/* 0538CC 7F01ED9C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01EDA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01EDA0 +/* 0538D0 7F01EDA0 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0538D4 7F01EDA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0538D8 7F01EDA8 AFB30020 */ sw $s3, 0x20($sp) +/* 0538DC 7F01EDAC AFB2001C */ sw $s2, 0x1c($sp) +/* 0538E0 7F01EDB0 AFB10018 */ sw $s1, 0x18($sp) +/* 0538E4 7F01EDB4 0480004F */ bltz $a0, .L7F01EEF4 +/* 0538E8 7F01EDB8 AFB00014 */ sw $s0, 0x14($sp) +/* 0538EC 7F01EDBC 28810004 */ slti $at, $a0, 4 +/* 0538F0 7F01EDC0 5020004D */ beql $at, $zero, .L7F01EEF8 +/* 0538F4 7F01EDC4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0538F8 7F01EDC8 0FC07771 */ jal get_save_folder_ptr +/* 0538FC 7F01EDCC AFA400A0 */ sw $a0, 0xa0($sp) +/* 053900 7F01EDD0 10400048 */ beqz $v0, .L7F01EEF4 +/* 053904 7F01EDD4 AFA2009C */ sw $v0, 0x9c($sp) +/* 053908 7F01EDD8 27B20098 */ addiu $s2, $sp, 0x98 +/* 05390C 7F01EDDC 27B30094 */ addiu $s3, $sp, 0x94 +/* 053910 7F01EDE0 02603025 */ move $a2, $s3 +/* 053914 7F01EDE4 02402825 */ move $a1, $s2 +/* 053918 7F01EDE8 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 05391C 7F01EDEC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 053920 7F01EDF0 8FAE0098 */ lw $t6, 0x98($sp) +/* 053924 7F01EDF4 8FAF0094 */ lw $t7, 0x94($sp) +/* 053928 7F01EDF8 05C2003F */ bltzl $t6, .L7F01EEF8 +/* 05392C 7F01EDFC 8FBF0024 */ lw $ra, 0x24($sp) +/* 053930 7F01EE00 05E0003C */ bltz $t7, .L7F01EEF4 +/* 053934 7F01EE04 00008025 */ move $s0, $zero +/* 053938 7F01EE08 24110004 */ li $s1, 4 +.L7F01EE0C: +/* 05393C 7F01EE0C 0FC07771 */ jal get_save_folder_ptr +/* 053940 7F01EE10 02002025 */ move $a0, $s0 +/* 053944 7F01EE14 1040000D */ beqz $v0, .L7F01EE4C +/* 053948 7F01EE18 02002025 */ move $a0, $s0 +/* 05394C 7F01EE1C 02402825 */ move $a1, $s2 +/* 053950 7F01EE20 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 053954 7F01EE24 02603025 */ move $a2, $s3 +/* 053958 7F01EE28 8FB80098 */ lw $t8, 0x98($sp) +/* 05395C 7F01EE2C 8FB90094 */ lw $t9, 0x94($sp) +/* 053960 7F01EE30 07030004 */ bgezl $t8, .L7F01EE44 +/* 053964 7F01EE34 26100001 */ addiu $s0, $s0, 1 +/* 053968 7F01EE38 07220005 */ bltzl $t9, .L7F01EE50 +/* 05396C 7F01EE3C 2A010004 */ slti $at, $s0, 4 +/* 053970 7F01EE40 26100001 */ addiu $s0, $s0, 1 +.L7F01EE44: +/* 053974 7F01EE44 1611FFF1 */ bne $s0, $s1, .L7F01EE0C +/* 053978 7F01EE48 00000000 */ nop +.L7F01EE4C: +/* 05397C 7F01EE4C 2A010004 */ slti $at, $s0, 4 +.L7F01EE50: +/* 053980 7F01EE50 10200028 */ beqz $at, .L7F01EEF4 +/* 053984 7F01EE54 27B10030 */ addiu $s1, $sp, 0x30 +/* 053988 7F01EE58 3C088003 */ lui $t0, %hi(D_8002C780) +/* 05398C 7F01EE5C 2508C780 */ addiu $t0, %lo(D_8002C780) # addiu $t0, $t0, -0x3880 +/* 053990 7F01EE60 250A0060 */ addiu $t2, $t0, 0x60 +/* 053994 7F01EE64 02205825 */ move $t3, $s1 +.L7F01EE68: +/* 053998 7F01EE68 8D010000 */ lw $at, ($t0) +/* 05399C 7F01EE6C 2508000C */ addiu $t0, $t0, 0xc +/* 0539A0 7F01EE70 256B000C */ addiu $t3, $t3, 0xc +/* 0539A4 7F01EE74 AD61FFF4 */ sw $at, -0xc($t3) +/* 0539A8 7F01EE78 8D01FFF8 */ lw $at, -8($t0) +/* 0539AC 7F01EE7C AD61FFF8 */ sw $at, -8($t3) +/* 0539B0 7F01EE80 8D01FFFC */ lw $at, -4($t0) +/* 0539B4 7F01EE84 150AFFF8 */ bne $t0, $t2, .L7F01EE68 +/* 0539B8 7F01EE88 AD61FFFC */ sw $at, -4($t3) +/* 0539BC 7F01EE8C 0FC07771 */ jal get_save_folder_ptr +/* 0539C0 7F01EE90 02002025 */ move $a0, $s0 +/* 0539C4 7F01EE94 8FAC009C */ lw $t4, 0x9c($sp) +/* 0539C8 7F01EE98 00409025 */ move $s2, $v0 +/* 0539CC 7F01EE9C 02207825 */ move $t7, $s1 +/* 0539D0 7F01EEA0 258E0060 */ addiu $t6, $t4, 0x60 +.L7F01EEA4: +/* 0539D4 7F01EEA4 8D810000 */ lw $at, ($t4) +/* 0539D8 7F01EEA8 258C000C */ addiu $t4, $t4, 0xc +/* 0539DC 7F01EEAC 25EF000C */ addiu $t7, $t7, 0xc +/* 0539E0 7F01EEB0 ADE1FFF4 */ sw $at, -0xc($t7) +/* 0539E4 7F01EEB4 8D81FFF8 */ lw $at, -8($t4) +/* 0539E8 7F01EEB8 ADE1FFF8 */ sw $at, -8($t7) +/* 0539EC 7F01EEBC 8D81FFFC */ lw $at, -4($t4) +/* 0539F0 7F01EEC0 158EFFF8 */ bne $t4, $t6, .L7F01EEA4 +/* 0539F4 7F01EEC4 ADE1FFFC */ sw $at, -4($t7) +/* 0539F8 7F01EEC8 02202025 */ move $a0, $s1 +/* 0539FC 7F01EECC 0FC07636 */ jal set_eeprom_to_folder_num +/* 053A00 7F01EED0 02002825 */ move $a1, $s0 +/* 053A04 7F01EED4 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 053A08 7F01EED8 8FA400A0 */ lw $a0, 0xa0($sp) +/* 053A0C 7F01EEDC 02002025 */ move $a0, $s0 +/* 053A10 7F01EEE0 0FC07AF3 */ jal set_selected_bond_to_folder +/* 053A14 7F01EEE4 00402825 */ move $a1, $v0 +/* 053A18 7F01EEE8 02402025 */ move $a0, $s2 +/* 053A1C 7F01EEEC 0FC07941 */ jal sub_GAME_7F01E504 +/* 053A20 7F01EEF0 02202825 */ move $a1, $s1 +.L7F01EEF4: +/* 053A24 7F01EEF4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01EEF8: +/* 053A28 7F01EEF8 8FB00014 */ lw $s0, 0x14($sp) +/* 053A2C 7F01EEFC 8FB10018 */ lw $s1, 0x18($sp) +/* 053A30 7F01EF00 8FB2001C */ lw $s2, 0x1c($sp) +/* 053A34 7F01EF04 8FB30020 */ lw $s3, 0x20($sp) +/* 053A38 7F01EF08 03E00008 */ jr $ra +/* 053A3C 7F01EF0C 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + +#ifdef NONMATCHING +void update_eeprom_to_current_solo_watch_settings(void) { + +} +#else +GLOBAL_ASM( +.text +glabel update_eeprom_to_current_solo_watch_settings +/* 053A40 7F01EF10 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 053A44 7F01EF14 AFBF001C */ sw $ra, 0x1c($sp) +/* 053A48 7F01EF18 AFB00018 */ sw $s0, 0x18($sp) +/* 053A4C 7F01EF1C AFA40020 */ sw $a0, 0x20($sp) +/* 053A50 7F01EF20 0FC2A4D6 */ jal sub_GAME_7F0A9358 +/* 053A54 7F01EF24 00008025 */ move $s0, $zero +/* 053A58 7F01EF28 8FAF0020 */ lw $t7, 0x20($sp) +/* 053A5C 7F01EF2C 000271C3 */ sra $t6, $v0, 7 +/* 053A60 7F01EF30 0FC2A460 */ jal call_sfx_c_700091C8 +/* 053A64 7F01EF34 A1EE000A */ sb $t6, 0xa($t7) +/* 053A68 7F01EF38 8FB90020 */ lw $t9, 0x20($sp) +/* 053A6C 7F01EF3C 0002C1C3 */ sra $t8, $v0, 7 +/* 053A70 7F01EF40 0FC2938E */ jal get_cur_player_look_vertical_inverted +/* 053A74 7F01EF44 A338000B */ sb $t8, 0xb($t9) +/* 053A78 7F01EF48 10400002 */ beqz $v0, .L7F01EF54 +/* 053A7C 7F01EF4C 00000000 */ nop +/* 053A80 7F01EF50 24100001 */ li $s0, 1 +.L7F01EF54: +/* 053A84 7F01EF54 0FC29394 */ jal cur_player_get_autoaim +/* 053A88 7F01EF58 00000000 */ nop +/* 053A8C 7F01EF5C 10400002 */ beqz $v0, .L7F01EF68 +/* 053A90 7F01EF60 36080002 */ ori $t0, $s0, 2 +/* 053A94 7F01EF64 3110FFFF */ andi $s0, $t0, 0xffff +.L7F01EF68: +/* 053A98 7F01EF68 0FC293A0 */ jal cur_player_get_aim_control +/* 053A9C 7F01EF6C 00000000 */ nop +/* 053AA0 7F01EF70 10400002 */ beqz $v0, .L7F01EF7C +/* 053AA4 7F01EF74 360A0004 */ ori $t2, $s0, 4 +/* 053AA8 7F01EF78 3150FFFF */ andi $s0, $t2, 0xffff +.L7F01EF7C: +/* 053AAC 7F01EF7C 0FC293A6 */ jal cur_player_get_sight_onscreen_control +/* 053AB0 7F01EF80 00000000 */ nop +/* 053AB4 7F01EF84 10400002 */ beqz $v0, .L7F01EF90 +/* 053AB8 7F01EF88 360C0008 */ ori $t4, $s0, 8 +/* 053ABC 7F01EF8C 3190FFFF */ andi $s0, $t4, 0xffff +.L7F01EF90: +/* 053AC0 7F01EF90 0FC2939A */ jal cur_player_get_lookahead +/* 053AC4 7F01EF94 00000000 */ nop +/* 053AC8 7F01EF98 10400002 */ beqz $v0, .L7F01EFA4 +/* 053ACC 7F01EF9C 360E0010 */ ori $t6, $s0, 0x10 +/* 053AD0 7F01EFA0 31D0FFFF */ andi $s0, $t6, 0xffff +.L7F01EFA4: +/* 053AD4 7F01EFA4 0FC293AC */ jal cur_player_get_ammo_onscreen_setting +/* 053AD8 7F01EFA8 00000000 */ nop +/* 053ADC 7F01EFAC 10400002 */ beqz $v0, .L7F01EFB8 +/* 053AE0 7F01EFB0 36180020 */ ori $t8, $s0, 0x20 +/* 053AE4 7F01EFB4 3310FFFF */ andi $s0, $t8, 0xffff +.L7F01EFB8: +/* 053AE8 7F01EFB8 0FC293B2 */ jal cur_player_get_screen_setting +/* 053AEC 7F01EFBC 00000000 */ nop +/* 053AF0 7F01EFC0 24010001 */ li $at, 1 +/* 053AF4 7F01EFC4 14410003 */ bne $v0, $at, .L7F01EFD4 +/* 053AF8 7F01EFC8 36080040 */ ori $t0, $s0, 0x40 +/* 053AFC 7F01EFCC 10000007 */ b .L7F01EFEC +/* 053B00 7F01EFD0 3110FFFF */ andi $s0, $t0, 0xffff +.L7F01EFD4: +/* 053B04 7F01EFD4 0FC293B2 */ jal cur_player_get_screen_setting +/* 053B08 7F01EFD8 00000000 */ nop +/* 053B0C 7F01EFDC 24010002 */ li $at, 2 +/* 053B10 7F01EFE0 14410002 */ bne $v0, $at, .L7F01EFEC +/* 053B14 7F01EFE4 360A0800 */ ori $t2, $s0, 0x800 +/* 053B18 7F01EFE8 3150FFFF */ andi $s0, $t2, 0xffff +.L7F01EFEC: +/* 053B1C 7F01EFEC 0FC293B8 */ jal get_screen_ratio +/* 053B20 7F01EFF0 00000000 */ nop +/* 053B24 7F01EFF4 10400002 */ beqz $v0, .L7F01F000 +/* 053B28 7F01EFF8 360C0080 */ ori $t4, $s0, 0x80 +/* 053B2C 7F01EFFC 3190FFFF */ andi $s0, $t4, 0xffff +.L7F01F000: +/* 053B30 7F01F000 0FC29370 */ jal cur_player_get_control_type +/* 053B34 7F01F004 00000000 */ nop +/* 053B38 7F01F008 8FA80020 */ lw $t0, 0x20($sp) +/* 053B3C 7F01F00C 00027A00 */ sll $t7, $v0, 8 +/* 053B40 7F01F010 31F80700 */ andi $t8, $t7, 0x700 +/* 053B44 7F01F014 0218C825 */ or $t9, $s0, $t8 +/* 053B48 7F01F018 A519000C */ sh $t9, 0xc($t0) +/* 053B4C 7F01F01C 8FBF001C */ lw $ra, 0x1c($sp) +/* 053B50 7F01F020 8FB00018 */ lw $s0, 0x18($sp) +/* 053B54 7F01F024 27BD0020 */ addiu $sp, $sp, 0x20 +/* 053B58 7F01F028 03E00008 */ jr $ra +/* 053B5C 7F01F02C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_screen_ratio_settings_for_mpgame_from_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_screen_ratio_settings_for_mpgame_from_folder +/* 053B60 7F01F030 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053B64 7F01F034 AFBF001C */ sw $ra, 0x1c($sp) +/* 053B68 7F01F038 0FC07771 */ jal get_save_folder_ptr +/* 053B6C 7F01F03C AFB00018 */ sw $s0, 0x18($sp) +/* 053B70 7F01F040 1040004B */ beqz $v0, .L7F01F170 +/* 053B74 7F01F044 00401825 */ move $v1, $v0 +/* 053B78 7F01F048 9042000A */ lbu $v0, 0xa($v0) +/* 053B7C 7F01F04C AFA30024 */ sw $v1, 0x24($sp) +/* 053B80 7F01F050 000271C0 */ sll $t6, $v0, 7 +/* 053B84 7F01F054 00027843 */ sra $t7, $v0, 1 +/* 053B88 7F01F058 01CF2025 */ or $a0, $t6, $t7 +/* 053B8C 7F01F05C 3098FFFF */ andi $t8, $a0, 0xffff +/* 053B90 7F01F060 0FC2A4D9 */ jal sub_GAME_7F0A9364 +/* 053B94 7F01F064 03002025 */ move $a0, $t8 +/* 053B98 7F01F068 8FB00024 */ lw $s0, 0x24($sp) +/* 053B9C 7F01F06C 9202000B */ lbu $v0, 0xb($s0) +/* 053BA0 7F01F070 0002C9C0 */ sll $t9, $v0, 7 +/* 053BA4 7F01F074 00024043 */ sra $t0, $v0, 1 +/* 053BA8 7F01F078 03282025 */ or $a0, $t9, $t0 +/* 053BAC 7F01F07C 3089FFFF */ andi $t1, $a0, 0xffff +/* 053BB0 7F01F080 0FC2A468 */ jal sub_GAME_7F0A91A0 +/* 053BB4 7F01F084 01202025 */ move $a0, $t1 +/* 053BB8 7F01F088 960A000C */ lhu $t2, 0xc($s0) +/* 053BBC 7F01F08C 0FC26919 */ jal get_num_players +/* 053BC0 7F01F090 A7AA0020 */ sh $t2, 0x20($sp) +/* 053BC4 7F01F094 24010001 */ li $at, 1 +/* 053BC8 7F01F098 14410007 */ bne $v0, $at, .L7F01F0B8 +/* 053BCC 7F01F09C 97B00020 */ lhu $s0, 0x20($sp) +/* 053BD0 7F01F0A0 32040700 */ andi $a0, $s0, 0x700 +/* 053BD4 7F01F0A4 00045A03 */ sra $t3, $a0, 8 +/* 053BD8 7F01F0A8 0FC29374 */ jal cur_player_set_control_type +/* 053BDC 7F01F0AC 3164FFFF */ andi $a0, $t3, 0xffff +/* 053BE0 7F01F0B0 10000005 */ b .L7F01F0C8 +/* 053BE4 7F01F0B4 32040001 */ andi $a0, $s0, 1 +.L7F01F0B8: +/* 053BE8 7F01F0B8 0FC29374 */ jal cur_player_set_control_type +/* 053BEC 7F01F0BC 00002025 */ move $a0, $zero +/* 053BF0 7F01F0C0 97B00020 */ lhu $s0, 0x20($sp) +/* 053BF4 7F01F0C4 32040001 */ andi $a0, $s0, 1 +.L7F01F0C8: +/* 053BF8 7F01F0C8 0004682B */ sltu $t5, $zero, $a0 +/* 053BFC 7F01F0CC 0FC29391 */ jal set_cur_player_look_vertical_inverted +/* 053C00 7F01F0D0 01A02025 */ move $a0, $t5 +/* 053C04 7F01F0D4 32040002 */ andi $a0, $s0, 2 +/* 053C08 7F01F0D8 0004702B */ sltu $t6, $zero, $a0 +/* 053C0C 7F01F0DC 0FC29397 */ jal cur_player_set_autoaim +/* 053C10 7F01F0E0 01C02025 */ move $a0, $t6 +/* 053C14 7F01F0E4 32040004 */ andi $a0, $s0, 4 +/* 053C18 7F01F0E8 0004782B */ sltu $t7, $zero, $a0 +/* 053C1C 7F01F0EC 0FC293A3 */ jal cur_player_set_aim_control +/* 053C20 7F01F0F0 01E02025 */ move $a0, $t7 +/* 053C24 7F01F0F4 32040008 */ andi $a0, $s0, 8 +/* 053C28 7F01F0F8 0004C02B */ sltu $t8, $zero, $a0 +/* 053C2C 7F01F0FC 0FC293A9 */ jal cur_player_set_sight_onscreen_control +/* 053C30 7F01F100 03002025 */ move $a0, $t8 +/* 053C34 7F01F104 32040010 */ andi $a0, $s0, 0x10 +/* 053C38 7F01F108 0004C82B */ sltu $t9, $zero, $a0 +/* 053C3C 7F01F10C 0FC2939D */ jal cur_player_set_lookahead +/* 053C40 7F01F110 03202025 */ move $a0, $t9 +/* 053C44 7F01F114 32040020 */ andi $a0, $s0, 0x20 +/* 053C48 7F01F118 0004402B */ sltu $t0, $zero, $a0 +/* 053C4C 7F01F11C 0FC293AF */ jal cur_player_set_ammo_onscreen_setting +/* 053C50 7F01F120 01002025 */ move $a0, $t0 +/* 053C54 7F01F124 32090800 */ andi $t1, $s0, 0x800 +/* 053C58 7F01F128 11200005 */ beqz $t1, .L7F01F140 +/* 053C5C 7F01F12C 320A0040 */ andi $t2, $s0, 0x40 +/* 053C60 7F01F130 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C64 7F01F134 24040002 */ li $a0, 2 +/* 053C68 7F01F138 1000000A */ b .L7F01F164 +/* 053C6C 7F01F13C 32040080 */ andi $a0, $s0, 0x80 +.L7F01F140: +/* 053C70 7F01F140 11400005 */ beqz $t2, .L7F01F158 +/* 053C74 7F01F144 00000000 */ nop +/* 053C78 7F01F148 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C7C 7F01F14C 24040001 */ li $a0, 1 +/* 053C80 7F01F150 10000004 */ b .L7F01F164 +/* 053C84 7F01F154 32040080 */ andi $a0, $s0, 0x80 +.L7F01F158: +/* 053C88 7F01F158 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C8C 7F01F15C 00002025 */ move $a0, $zero +/* 053C90 7F01F160 32040080 */ andi $a0, $s0, 0x80 +.L7F01F164: +/* 053C94 7F01F164 0004582B */ sltu $t3, $zero, $a0 +/* 053C98 7F01F168 0FC293BB */ jal set_screen_ratio +/* 053C9C 7F01F16C 01602025 */ move $a0, $t3 +.L7F01F170: +/* 053CA0 7F01F170 8FBF001C */ lw $ra, 0x1c($sp) +/* 053CA4 7F01F174 8FB00018 */ lw $s0, 0x18($sp) +/* 053CA8 7F01F178 27BD0028 */ addiu $sp, $sp, 0x28 +/* 053CAC 7F01F17C 03E00008 */ jr $ra +/* 053CB0 7F01F180 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void delete_update_eeprom_file(void) { + +} +#else +GLOBAL_ASM( +.text +glabel delete_update_eeprom_file +/* 053CB4 7F01F184 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 053CB8 7F01F188 AFBF0014 */ sw $ra, 0x14($sp) +/* 053CBC 7F01F18C 0480003F */ bltz $a0, .L7F01F28C +/* 053CC0 7F01F190 00802825 */ move $a1, $a0 +/* 053CC4 7F01F194 28810004 */ slti $at, $a0, 4 +/* 053CC8 7F01F198 5020003D */ beql $at, $zero, .L7F01F290 +/* 053CCC 7F01F19C 8FBF0014 */ lw $ra, 0x14($sp) +/* 053CD0 7F01F1A0 0FC07771 */ jal get_save_folder_ptr +/* 053CD4 7F01F1A4 AFA500E0 */ sw $a1, 0xe0($sp) +/* 053CD8 7F01F1A8 3C0E8003 */ lui $t6, %hi(D_8002C7E0) +/* 053CDC 7F01F1AC 27A6007C */ addiu $a2, $sp, 0x7c +/* 053CE0 7F01F1B0 25CEC7E0 */ addiu $t6, %lo(D_8002C7E0) # addiu $t6, $t6, -0x3820 +/* 053CE4 7F01F1B4 8FA500E0 */ lw $a1, 0xe0($sp) +/* 053CE8 7F01F1B8 AFA200DC */ sw $v0, 0xdc($sp) +/* 053CEC 7F01F1BC 25D90060 */ addiu $t9, $t6, 0x60 +/* 053CF0 7F01F1C0 00C04025 */ move $t0, $a2 +.L7F01F1C4: +/* 053CF4 7F01F1C4 8DC10000 */ lw $at, ($t6) +/* 053CF8 7F01F1C8 25CE000C */ addiu $t6, $t6, 0xc +/* 053CFC 7F01F1CC 2508000C */ addiu $t0, $t0, 0xc +/* 053D00 7F01F1D0 AD01FFF4 */ sw $at, -0xc($t0) +/* 053D04 7F01F1D4 8DC1FFF8 */ lw $at, -8($t6) +/* 053D08 7F01F1D8 AD01FFF8 */ sw $at, -8($t0) +/* 053D0C 7F01F1DC 8DC1FFFC */ lw $at, -4($t6) +/* 053D10 7F01F1E0 15D9FFF8 */ bne $t6, $t9, .L7F01F1C4 +/* 053D14 7F01F1E4 AD01FFFC */ sw $at, -4($t0) +/* 053D18 7F01F1E8 1040000E */ beqz $v0, .L7F01F224 +/* 053D1C 7F01F1EC 00405825 */ move $t3, $v0 +/* 053D20 7F01F1F0 00C06025 */ move $t4, $a2 +/* 053D24 7F01F1F4 244A0060 */ addiu $t2, $v0, 0x60 +.L7F01F1F8: +/* 053D28 7F01F1F8 8D610000 */ lw $at, ($t3) +/* 053D2C 7F01F1FC 256B000C */ addiu $t3, $t3, 0xc +/* 053D30 7F01F200 258C000C */ addiu $t4, $t4, 0xc +/* 053D34 7F01F204 AD81FFF4 */ sw $at, -0xc($t4) +/* 053D38 7F01F208 8D61FFF8 */ lw $at, -8($t3) +/* 053D3C 7F01F20C AD81FFF8 */ sw $at, -8($t4) +/* 053D40 7F01F210 8D61FFFC */ lw $at, -4($t3) +/* 053D44 7F01F214 156AFFF8 */ bne $t3, $t2, .L7F01F1F8 +/* 053D48 7F01F218 AD81FFFC */ sw $at, -4($t4) +/* 053D4C 7F01F21C 10000005 */ b .L7F01F234 +/* 053D50 7F01F220 27A4001C */ addiu $a0, $sp, 0x1c +.L7F01F224: +/* 053D54 7F01F224 0FC07636 */ jal set_eeprom_to_folder_num +/* 053D58 7F01F228 00C02025 */ move $a0, $a2 +/* 053D5C 7F01F22C 27A6007C */ addiu $a2, $sp, 0x7c +/* 053D60 7F01F230 27A4001C */ addiu $a0, $sp, 0x1c +.L7F01F234: +/* 053D64 7F01F234 0080C825 */ move $t9, $a0 +/* 053D68 7F01F238 00C07825 */ move $t7, $a2 +/* 053D6C 7F01F23C 24D80060 */ addiu $t8, $a2, 0x60 +.L7F01F240: +/* 053D70 7F01F240 8DE10000 */ lw $at, ($t7) +/* 053D74 7F01F244 25EF000C */ addiu $t7, $t7, 0xc +/* 053D78 7F01F248 2739000C */ addiu $t9, $t9, 0xc +/* 053D7C 7F01F24C AF21FFF4 */ sw $at, -0xc($t9) +/* 053D80 7F01F250 8DE1FFF8 */ lw $at, -8($t7) +/* 053D84 7F01F254 AF21FFF8 */ sw $at, -8($t9) +/* 053D88 7F01F258 8DE1FFFC */ lw $at, -4($t7) +/* 053D8C 7F01F25C 15F8FFF8 */ bne $t7, $t8, .L7F01F240 +/* 053D90 7F01F260 AF21FFFC */ sw $at, -4($t9) +/* 053D94 7F01F264 0FC07BC4 */ jal update_eeprom_to_current_solo_watch_settings +/* 053D98 7F01F268 00000000 */ nop +/* 053D9C 7F01F26C 27A4001C */ addiu $a0, $sp, 0x1c +/* 053DA0 7F01F270 27A5007C */ addiu $a1, $sp, 0x7c +/* 053DA4 7F01F274 0C005B5C */ jal _bcmp +/* 053DA8 7F01F278 24060060 */ li $a2, 96 +/* 053DAC 7F01F27C 10400003 */ beqz $v0, .L7F01F28C +/* 053DB0 7F01F280 8FA400DC */ lw $a0, 0xdc($sp) +/* 053DB4 7F01F284 0FC07941 */ jal sub_GAME_7F01E504 +/* 053DB8 7F01F288 27A5001C */ addiu $a1, $sp, 0x1c +.L7F01F28C: +/* 053DBC 7F01F28C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F290: +/* 053DC0 7F01F290 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 053DC4 7F01F294 03E00008 */ jr $ra +/* 053DC8 7F01F298 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void copy_eeprom_to_stack_set_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eeprom_to_stack_set_folder_num +/* 053DCC 7F01F29C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 053DD0 7F01F2A0 AFB00014 */ sw $s0, 0x14($sp) +/* 053DD4 7F01F2A4 00808025 */ move $s0, $a0 +/* 053DD8 7F01F2A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 053DDC 7F01F2AC 04800034 */ bltz $a0, .L7F01F380 +/* 053DE0 7F01F2B0 AFB10018 */ sw $s1, 0x18($sp) +/* 053DE4 7F01F2B4 28810004 */ slti $at, $a0, 4 +/* 053DE8 7F01F2B8 50200032 */ beql $at, $zero, .L7F01F384 +/* 053DEC 7F01F2BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 053DF0 7F01F2C0 0FC07771 */ jal get_save_folder_ptr +/* 053DF4 7F01F2C4 00000000 */ nop +/* 053DF8 7F01F2C8 3C0E8003 */ lui $t6, %hi(D_8002C840) +/* 053DFC 7F01F2CC 27B10024 */ addiu $s1, $sp, 0x24 +/* 053E00 7F01F2D0 25CEC840 */ addiu $t6, %lo(D_8002C840) # addiu $t6, $t6, -0x37c0 +/* 053E04 7F01F2D4 AFA20084 */ sw $v0, 0x84($sp) +/* 053E08 7F01F2D8 25D90060 */ addiu $t9, $t6, 0x60 +/* 053E0C 7F01F2DC 02204025 */ move $t0, $s1 +.L7F01F2E0: +/* 053E10 7F01F2E0 8DC10000 */ lw $at, ($t6) +/* 053E14 7F01F2E4 25CE000C */ addiu $t6, $t6, 0xc +/* 053E18 7F01F2E8 2508000C */ addiu $t0, $t0, 0xc +/* 053E1C 7F01F2EC AD01FFF4 */ sw $at, -0xc($t0) +/* 053E20 7F01F2F0 8DC1FFF8 */ lw $at, -8($t6) +/* 053E24 7F01F2F4 AD01FFF8 */ sw $at, -8($t0) +/* 053E28 7F01F2F8 8DC1FFFC */ lw $at, -4($t6) +/* 053E2C 7F01F2FC 15D9FFF8 */ bne $t6, $t9, .L7F01F2E0 +/* 053E30 7F01F300 AD01FFFC */ sw $at, -4($t0) +/* 053E34 7F01F304 1040000F */ beqz $v0, .L7F01F344 +/* 053E38 7F01F308 02202025 */ move $a0, $s1 +/* 053E3C 7F01F30C 00405825 */ move $t3, $v0 +/* 053E40 7F01F310 02206025 */ move $t4, $s1 +/* 053E44 7F01F314 244A0060 */ addiu $t2, $v0, 0x60 +.L7F01F318: +/* 053E48 7F01F318 8D610000 */ lw $at, ($t3) +/* 053E4C 7F01F31C 256B000C */ addiu $t3, $t3, 0xc +/* 053E50 7F01F320 258C000C */ addiu $t4, $t4, 0xc +/* 053E54 7F01F324 AD81FFF4 */ sw $at, -0xc($t4) +/* 053E58 7F01F328 8D61FFF8 */ lw $at, -8($t3) +/* 053E5C 7F01F32C AD81FFF8 */ sw $at, -8($t4) +/* 053E60 7F01F330 8D61FFFC */ lw $at, -4($t3) +/* 053E64 7F01F334 156AFFF8 */ bne $t3, $t2, .L7F01F318 +/* 053E68 7F01F338 AD81FFFC */ sw $at, -4($t4) +/* 053E6C 7F01F33C 10000003 */ b .L7F01F34C +/* 053E70 7F01F340 00000000 */ nop +.L7F01F344: +/* 053E74 7F01F344 0FC07636 */ jal set_eeprom_to_folder_num +/* 053E78 7F01F348 02002825 */ move $a1, $s0 +.L7F01F34C: +/* 053E7C 7F01F34C 0FC07649 */ jal get_selected_bond +/* 053E80 7F01F350 02202025 */ move $a0, $s1 +/* 053E84 7F01F354 00106880 */ sll $t5, $s0, 2 +/* 053E88 7F01F358 3C058003 */ lui $a1, %hi(save_selected_bond) +/* 053E8C 7F01F35C 00AD2821 */ addu $a1, $a1, $t5 +/* 053E90 7F01F360 8CA5C510 */ lw $a1, %lo(save_selected_bond)($a1) +/* 053E94 7F01F364 50450007 */ beql $v0, $a1, .L7F01F384 +/* 053E98 7F01F368 8FBF001C */ lw $ra, 0x1c($sp) +/* 053E9C 7F01F36C 0FC0764D */ jal set_selected_bond +/* 053EA0 7F01F370 02202025 */ move $a0, $s1 +/* 053EA4 7F01F374 8FA40084 */ lw $a0, 0x84($sp) +/* 053EA8 7F01F378 0FC07941 */ jal sub_GAME_7F01E504 +/* 053EAC 7F01F37C 02202825 */ move $a1, $s1 +.L7F01F380: +/* 053EB0 7F01F380 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F384: +/* 053EB4 7F01F384 8FB00014 */ lw $s0, 0x14($sp) +/* 053EB8 7F01F388 8FB10018 */ lw $s1, 0x18($sp) +/* 053EBC 7F01F38C 03E00008 */ jr $ra +/* 053EC0 7F01F390 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void copy_eeprom_from_to(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eeprom_from_to +/* 053EC4 7F01F394 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 053EC8 7F01F398 AFBF0014 */ sw $ra, 0x14($sp) +/* 053ECC 7F01F39C 0FC07771 */ jal get_save_folder_ptr +/* 053ED0 7F01F3A0 AFA50084 */ sw $a1, 0x84($sp) +/* 053ED4 7F01F3A4 1040000F */ beqz $v0, .L7F01F3E4 +/* 053ED8 7F01F3A8 8FA30084 */ lw $v1, 0x84($sp) +/* 053EDC 7F01F3AC 0040C025 */ move $t8, $v0 +/* 053EE0 7F01F3B0 0060C825 */ move $t9, $v1 +/* 053EE4 7F01F3B4 244F0060 */ addiu $t7, $v0, 0x60 +.L7F01F3B8: +/* 053EE8 7F01F3B8 8F010000 */ lw $at, ($t8) +/* 053EEC 7F01F3BC 2718000C */ addiu $t8, $t8, 0xc +/* 053EF0 7F01F3C0 2739000C */ addiu $t9, $t9, 0xc +/* 053EF4 7F01F3C4 AF21FFF4 */ sw $at, -0xc($t9) +/* 053EF8 7F01F3C8 8F01FFF8 */ lw $at, -8($t8) +/* 053EFC 7F01F3CC AF21FFF8 */ sw $at, -8($t9) +/* 053F00 7F01F3D0 8F01FFFC */ lw $at, -4($t8) +/* 053F04 7F01F3D4 170FFFF8 */ bne $t8, $t7, .L7F01F3B8 +/* 053F08 7F01F3D8 AF21FFFC */ sw $at, -4($t9) +/* 053F0C 7F01F3DC 1000001C */ b .L7F01F450 +/* 053F10 7F01F3E0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F3E4: +/* 053F14 7F01F3E4 3C088003 */ lui $t0, %hi(blank_eeprom) +/* 053F18 7F01F3E8 27A2001C */ addiu $v0, $sp, 0x1c +/* 053F1C 7F01F3EC 2508C8A0 */ addiu $t0, %lo(blank_eeprom) # addiu $t0, $t0, -0x3760 +/* 053F20 7F01F3F0 250A0060 */ addiu $t2, $t0, 0x60 +/* 053F24 7F01F3F4 00405825 */ move $t3, $v0 +.L7F01F3F8: +/* 053F28 7F01F3F8 8D010000 */ lw $at, ($t0) +/* 053F2C 7F01F3FC 2508000C */ addiu $t0, $t0, 0xc +/* 053F30 7F01F400 256B000C */ addiu $t3, $t3, 0xc +/* 053F34 7F01F404 AD61FFF4 */ sw $at, -0xc($t3) +/* 053F38 7F01F408 8D01FFF8 */ lw $at, -8($t0) +/* 053F3C 7F01F40C AD61FFF8 */ sw $at, -8($t3) +/* 053F40 7F01F410 8D01FFFC */ lw $at, -4($t0) +/* 053F44 7F01F414 150AFFF8 */ bne $t0, $t2, .L7F01F3F8 +/* 053F48 7F01F418 AD61FFFC */ sw $at, -4($t3) +/* 053F4C 7F01F41C 00407025 */ move $t6, $v0 +/* 053F50 7F01F420 00607825 */ move $t7, $v1 +/* 053F54 7F01F424 244D0060 */ addiu $t5, $v0, 0x60 +.L7F01F428: +/* 053F58 7F01F428 8DC10000 */ lw $at, ($t6) +/* 053F5C 7F01F42C 25CE000C */ addiu $t6, $t6, 0xc +/* 053F60 7F01F430 25EF000C */ addiu $t7, $t7, 0xc +/* 053F64 7F01F434 ADE1FFF4 */ sw $at, -0xc($t7) +/* 053F68 7F01F438 8DC1FFF8 */ lw $at, -8($t6) +/* 053F6C 7F01F43C ADE1FFF8 */ sw $at, -8($t7) +/* 053F70 7F01F440 8DC1FFFC */ lw $at, -4($t6) +/* 053F74 7F01F444 15CDFFF8 */ bne $t6, $t5, .L7F01F428 +/* 053F78 7F01F448 ADE1FFFC */ sw $at, -4($t7) +/* 053F7C 7F01F44C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F450: +/* 053F80 7F01F450 27BD0080 */ addiu $sp, $sp, 0x80 +/* 053F84 7F01F454 03E00008 */ jr $ra +/* 053F88 7F01F458 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void copy_eepromfile_a0_from_a1_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eepromfile_a0_from_a1_to_buffer +/* 053F8C 7F01F45C 24010064 */ li $at, 100 +/* 053F90 7F01F460 1481000D */ bne $a0, $at, .L7F01F498 +/* 053F94 7F01F464 3C0E8007 */ lui $t6, %hi(save6) +/* 053F98 7F01F468 25CE9B00 */ addiu $t6, %lo(save6) # addiu $t6, $t6, -0x6500 +/* 053F9C 7F01F46C 00A0C825 */ move $t9, $a1 +/* 053FA0 7F01F470 24B80060 */ addiu $t8, $a1, 0x60 +.L7F01F474: +/* 053FA4 7F01F474 8F210000 */ lw $at, ($t9) +/* 053FA8 7F01F478 2739000C */ addiu $t9, $t9, 0xc +/* 053FAC 7F01F47C 25CE000C */ addiu $t6, $t6, 0xc +/* 053FB0 7F01F480 ADC1FFF4 */ sw $at, -0xc($t6) +/* 053FB4 7F01F484 8F21FFF8 */ lw $at, -8($t9) +/* 053FB8 7F01F488 ADC1FFF8 */ sw $at, -8($t6) +/* 053FBC 7F01F48C 8F21FFFC */ lw $at, -4($t9) +/* 053FC0 7F01F490 1738FFF8 */ bne $t9, $t8, .L7F01F474 +/* 053FC4 7F01F494 ADC1FFFC */ sw $at, -4($t6) +.L7F01F498: +/* 053FC8 7F01F498 03E00008 */ jr $ra +/* 053FCC 7F01F49C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING + +BOOL is007ModeUnlockedinFolder(u32 foldernum) + +{ + save_file *folder; + BOOL BVar1; + BOOL found; + int stagenum; + + folder = getEEPROMforFoldernum(foldernum); + if (folder == NULL) { + BVar1 = FALSE; + } + else { + stagenum = SP_STAGE_DAM; + if ((folder->bitflags & 1) == 0) { + do { + found = doesSaveHaveStageCompletedOnDifficulty(folder,stagenum,DIFFICULTY_00); + if (found == FALSE) break; + stagenum += SP_STAGE_FACILITY; + } while (stagenum != 0x14); + if (stagenum == SP_STAGE_MAX) { + BVar1 = TRUE; + } + else { + BVar1 = FALSE; + } + } + else { + BVar1 = TRUE; + } + } + return BVar1; +} +#else +GLOBAL_ASM( +.text +glabel check_for_007_mode_unlocked +/* 053FD0 7F01F4A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053FD4 7F01F4A4 AFBF0024 */ sw $ra, 0x24($sp) +/* 053FD8 7F01F4A8 AFB20020 */ sw $s2, 0x20($sp) +/* 053FDC 7F01F4AC AFB1001C */ sw $s1, 0x1c($sp) +/* 053FE0 7F01F4B0 0FC07771 */ jal get_save_folder_ptr +/* 053FE4 7F01F4B4 AFB00018 */ sw $s0, 0x18($sp) +/* 053FE8 7F01F4B8 10400016 */ beqz $v0, .L7F01F514 +/* 053FEC 7F01F4BC 00408825 */ move $s1, $v0 +/* 053FF0 7F01F4C0 904E0009 */ lbu $t6, 9($v0) +/* 053FF4 7F01F4C4 00008025 */ move $s0, $zero +/* 053FF8 7F01F4C8 24120014 */ li $s2, 20 +/* 053FFC 7F01F4CC 31CF0001 */ andi $t7, $t6, 1 +/* 054000 7F01F4D0 11E00003 */ beqz $t7, .L7F01F4E0 +/* 054004 7F01F4D4 00000000 */ nop +/* 054008 7F01F4D8 1000000F */ b .L7F01F518 +/* 05400C 7F01F4DC 24020001 */ li $v0, 1 +.L7F01F4E0: +/* 054010 7F01F4E0 02202025 */ move $a0, $s1 +.L7F01F4E4: +/* 054014 7F01F4E4 02002825 */ move $a1, $s0 +/* 054018 7F01F4E8 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 05401C 7F01F4EC 24060002 */ li $a2, 2 +/* 054020 7F01F4F0 10400004 */ beqz $v0, .L7F01F504 +/* 054024 7F01F4F4 00000000 */ nop +/* 054028 7F01F4F8 26100001 */ addiu $s0, $s0, 1 +/* 05402C 7F01F4FC 5612FFF9 */ bnel $s0, $s2, .L7F01F4E4 +/* 054030 7F01F500 02202025 */ move $a0, $s1 +.L7F01F504: +/* 054034 7F01F504 56120004 */ bnel $s0, $s2, .L7F01F518 +/* 054038 7F01F508 00001025 */ move $v0, $zero +/* 05403C 7F01F50C 10000002 */ b .L7F01F518 +/* 054040 7F01F510 24020001 */ li $v0, 1 +.L7F01F514: +/* 054044 7F01F514 00001025 */ move $v0, $zero +.L7F01F518: +/* 054048 7F01F518 8FBF0024 */ lw $ra, 0x24($sp) +/* 05404C 7F01F51C 8FB00018 */ lw $s0, 0x18($sp) +/* 054050 7F01F520 8FB1001C */ lw $s1, 0x1c($sp) +/* 054054 7F01F524 8FB20020 */ lw $s2, 0x20($sp) +/* 054058 7F01F528 03E00008 */ jr $ra +/* 05405C 7F01F52C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + diff --git a/src/game/gamefile2.h b/src/game/gamefile2.h new file mode 100644 index 0000000..4e02382 --- /dev/null +++ b/src/game/gamefile2.h @@ -0,0 +1,7 @@ +#ifndef _GAMEFILE2_H_ +#define _GAMEFILE2_H_ +#include "ultra64.h" + +u8 removed_would_have_returned_bond_for_folder_num(u32 folder); + +#endif diff --git a/src/game/image.c b/src/game/image.c new file mode 100644 index 0000000..3ae9cc3 --- /dev/null +++ b/src/game/image.c @@ -0,0 +1,9557 @@ +#include "ultra64.h" +#include "game/image.h" +#include "assets/images/image_externs.h" + +// bss +//8008C720 +s32 ptr_texture_alloc_start; +//8008C724 +s32 ptr_texture_alloc_end; +//8008C728 +s32 ptr_next_available_space; +//8008C72C +s32 ptr_last_entry_facemapping; +//8008C730 +s32 word_CODE_bss_8008C730[0x258]; +//8008D090 +s32 dword_CODE_bss_8008D090; +//8008D094 +s32 dword_CODE_bss_8008D094; + + +// data +//D:80049170 +u32 bytes = 0x6DDD0; +//D:80049174 +u32 D_80049174 = 0; + +//D:80049178 #1 #bytes in pixel data for image +s32 pixelbytecounts[] = +{ + 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[] = +{ + 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 +}; +//D:800491E0 #3 #bits in 'samples', *2 -1=bitmask +s32 pixelsamplebits[] = +{ + 0x100, 0x20, 0x100, 0x20, 0x100, 0x10, 8, 0x100, 0x10, 0x100, 0x10, 0x100, 0x10 +}; +//D:80049214 #4 bitcount for pixel data +s32 pixelbitcount[] = +{ + 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[] = +{ + 0, 0, 0, 0, 3, 3, 3, 4, 4, 2, 2, 2, 2 +}; +//D:8004927C #6 N64 pixel sizes (0=4bit, 1=8bit, 2=16bit, 3=32bit) +s32 n64pixelsizes[] = +{ + 3, 2, 3, 2, 2, 1, 0, 1, 0, 1, 0, 1, 0 +}; +//D:800492B0 #7 imageflip values for indexed types +s32 imgflipvalues[] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x8000, 0x8000, 0xC000, 0xC000 +}; +//D:800492e4 +s32 D_800492E4[] = +{ + 0, 0, 0, 0, 0, 0, 0 +}; + +//D:80049300 +//need way to calculate size at compile time from external data +struct image_entry image_entries[] = { + { 0, 0, _image1_size, 0, 0, 0, 0}, + { 0, 0, _image2_size, 0, 0, 0, 0}, + { 0, 0, _image3_size, 0, 0, 0, 0}, + { 0, 0, _image4_size, 0, 0, 0, 0}, + { 0, 0, _image5_size, 0, 0, 0, 0}, + { 0, 0, _image6_size, 0, 0, 0, 0}, + { 0, 0, _image7_size, 0, 0, 0, 0}, + { 0, 0, _image8_size, 0, 0, 0, 0}, + { 0, 0, _image9_size, 0, 0, 0, 0}, + {0x11, 0, _image10_size, 0, 0, 0, 0}, + {0x11, 0, _image11_size, 0, 0, 0, 0}, + { 0, 0, _image12_size, 0, 0, 0, 0}, + { 0, 0, _image13_size, 0, 0, 0, 0}, + { 0, 0, _image14_size, 0, 0, 0, 0}, + { 0, 0, _image15_size, 0, 0, 0, 0}, + { 0, 0, _image16_size, 0, 0, 0, 0}, + { 0, 0, _image17_size, 0, 0, 0, 0}, + { 0, 0, _image18_size, 0, 0, 0, 0}, + { 0, 0, _image19_size, 0, 0, 0, 0}, + { 0, 0, _image20_size, 0, 0, 0, 0}, + {0x77, 0, _image21_size, 0, 0, 0, 0}, + { 0, 0, _image22_size, 0x38, 0xD2, 0, 0}, + {0x77, 0, _image23_size, 0x38, 0xD2, 0, 0}, + { 0, 0, _image24_size, 0, 0, 0, 0}, + { 0, 0, _image25_size, 0, 0, 0, 0}, + { 0, 0, _image26_size, 0, 0, 0, 0}, + { 0, 0, _image27_size, 0, 0, 0, 0}, + { 0, 0, _image28_size, 0, 0, 0, 0}, + { 0, 0, _image29_size, 0, 0, 0, 0}, + {0xAA, 0, _image30_size, 0, 0, 0, 0}, + {0xAA, 0, _image31_size, 0, 0, 0, 0}, + {0xAA, 0, _image32_size, 0, 0, 0, 0}, + {0xAA, 0, _image33_size, 0, 0, 0, 0}, + {0x22, 0, _image34_size, 0, 0, 0, 0}, + {0x22, 0, _image35_size, 0, 0, 0, 0}, + {0x22, 0, _image36_size, 0, 0, 0, 0}, + {0x22, 0, _image37_size, 0, 0, 0, 0}, + { 0, 0, _image38_size, 0, 0, 0, 0}, + { 0, 0, _image39_size, 0, 0, 0, 0}, + { 0, 0, _image40_size, 0, 0, 0, 0}, + { 0, 0, _image41_size, 0, 0, 0, 0}, + { 0, 0, _image42_size, 0, 0, 0, 0}, + { 0, 0, _image43_size, 0, 0, 0, 0}, + {0xAA, 0, _image44_size, 0, 0, 0, 0}, + { 0, 0, _image45_size, 0, 0, 0, 0}, + {0xAA, 0, _image46_size, 0, 0, 0, 0}, + { 0, 0, _image47_size, 0, 0, 0, 0}, + { 0, 0, _image48_size, 0, 0, 0, 0}, + { 0, 0, _image49_size, 0, 0, 0, 0}, + { 0, 0, _image50_size, 0, 0, 0, 0}, + {0x33, 0, _image51_size, 0, 0, 0, 0}, + { 0, 0, _image52_size, 0, 0, 0, 0}, + { 0, 0, _image53_size, 0, 0, 0, 0}, + { 0, 0, _image54_size, 0, 0, 0, 0}, + { 0, 0, _image55_size, 0, 0, 0, 0}, + { 0, 0, _image56_size, 0, 0, 0, 0}, + { 0, 0, _image57_size, 0, 0, 0, 0}, + { 0, 0, _image58_size, 0, 0, 0, 0}, + { 0, 0, _image59_size, 0, 0, 0, 0}, + { 0, 0, _image60_size, 0, 0, 0, 0}, + { 0, 0, _image61_size, 0, 0, 0, 0}, + { 0, 0, _image62_size, 0, 0, 0, 0}, + { 0, 0, _image63_size, 0, 0, 0, 0}, + { 0, 0, _image64_size, 0, 0, 0, 0}, + { 0, 0, _image65_size, 0, 0, 0, 0}, + { 0, 0, _image66_size, 0, 0, 0, 0}, + { 0, 0, _image67_size, 0, 0, 0, 0}, + { 0, 0, _image68_size, 0, 0, 0, 0}, + { 0, 0, _image69_size, 0, 0, 0, 0}, + { 0, 0, _image70_size, 0, 0, 0, 0}, + { 0, 0, _image71_size, 0, 0, 0, 0}, + { 0, 0, _image72_size, 0, 0, 0, 0}, + { 0, 0, _image73_size, 0, 0, 0, 0}, + { 0, 0, _image74_size, 0, 0, 0, 0}, + { 0, 0, _image75_size, 0, 0, 0, 0}, + {0xAA, 0, _image76_size, 0, 0, 0, 0}, + {0xAA, 0, _image77_size, 0, 0, 0, 0}, + {0xAA, 0, _image78_size, 0, 0, 0, 0}, + {0x22, 0, _image79_size, 0, 0, 0, 0}, + {0x22, 0, _image80_size, 0, 0, 0, 0}, + {0x33, 0, _image81_size, 0, 0, 0, 0}, + {0x33, 0, _image82_size, 0, 0, 0, 0}, + {0x33, 0, _image83_size, 0, 0, 0, 0}, + {0x33, 0, _image84_size, 0, 0, 0, 0}, + {0x33, 0, _image85_size, 0, 0, 0, 0}, + { 0, 0, _image86_size, 0, 0, 0, 0}, + { 0, 0, _image87_size, 0, 0, 0, 0}, + { 0, 0, _image88_size, 0, 0, 0, 0}, + {0x11, 0, _image89_size, 0, 0, 0, 0}, + {0x11, 0, _image90_size, 0, 0, 0, 0}, + {0x11, 0, _image91_size, 0, 0, 0, 0}, + {0x11, 0, _image92_size, 0, 0, 0, 0}, + {0x11, 0, _image93_size, 0, 0, 0, 0}, + {0x11, 0, _image94_size, 0, 0, 0, 0}, + {0x11, 0, _image95_size, 0, 0, 0, 0}, + {0x11, 0, _image96_size, 0, 0, 0, 0}, + {0x11, 0, _image97_size, 0, 0, 0, 0}, + {0x11, 0, _image98_size, 0, 0, 0, 0}, + {0x11, 0, _image99_size, 0, 0, 0, 0}, + {0x11, 0, _image100_size, 0, 0, 0, 0}, + {0x11, 0, _image101_size, 0, 0, 0, 0}, + {0x11, 0, _image102_size, 0, 0, 0, 0}, + {0x11, 0, _image103_size, 0, 0, 0, 0}, + {0x11, 0, _image104_size, 0, 0, 0, 0}, + {0x11, 0, _image105_size, 0, 0, 0, 0}, + {0x11, 0, _image106_size, 0, 0, 0, 0}, + {0x11, 0, _image107_size, 0, 0, 0, 0}, + {0x11, 0, _image108_size, 0, 0, 0, 0}, + {0x11, 0, _image109_size, 0, 0, 0, 0}, + {0x11, 0, _image110_size, 0, 0, 0, 0}, + {0x11, 0, _image111_size, 0, 0, 0, 0}, + {0x11, 0, _image112_size, 0, 0, 0, 0}, + {0x11, 0, _image113_size, 0, 0, 0, 0}, + {0x11, 0, _image114_size, 0, 0, 0, 0}, + {0x11, 0, _image115_size, 0, 0, 0, 0}, + {0x11, 0, _image116_size, 0, 0, 0, 0}, + {0x11, 0, _image117_size, 0, 0, 0, 0}, + {0x11, 0, _image118_size, 0, 0, 0, 0}, + {0x11, 0, _image119_size, 0, 0, 0, 0}, + {0x11, 0, _image120_size, 0, 0, 0, 0}, + {0x11, 0, _image121_size, 0, 0, 0, 0}, + {0x11, 0, _image122_size, 0, 0, 0, 0}, + {0x11, 0, _image123_size, 0, 0, 0, 0}, + {0x11, 0, _image124_size, 0, 0, 0, 0}, + {0x11, 0, _image125_size, 0, 0, 0, 0}, + {0x11, 0, _image126_size, 0, 0, 0, 0}, + {0x11, 0, _image127_size, 0, 0, 0, 0}, + {0x11, 0, _image128_size, 0, 0, 0, 0}, + {0x11, 0, _image129_size, 0, 0, 0, 0}, + {0x11, 0, _image130_size, 0, 0, 0, 0}, + {0x11, 0, _image131_size, 0, 0, 0, 0}, + {0x11, 0, _image132_size, 0, 0, 0, 0}, + {0x11, 0, _image133_size, 0, 0, 0, 0}, + {0x11, 0, _image134_size, 0, 0, 0, 0}, + {0x11, 0, _image135_size, 0, 0, 0, 0}, + {0x11, 0, _image136_size, 0, 0, 0, 0}, + {0x11, 0, _image137_size, 0, 0, 0, 0}, + {0x11, 0, _image138_size, 0, 0, 0, 0}, + {0x11, 0, _image139_size, 0, 0, 0, 0}, + {0x11, 0, _image140_size, 0, 0, 0, 0}, + {0x11, 0, _image141_size, 0, 0, 0, 0}, + {0x11, 0, _image142_size, 0, 0, 0, 0}, + {0x11, 0, _image143_size, 0, 0, 0, 0}, + {0x11, 0, _image144_size, 0, 0, 0, 0}, + {0x11, 0, _image145_size, 0, 0, 0, 0}, + {0x11, 0, _image146_size, 0, 0, 0, 0}, + {0x11, 0, _image147_size, 0, 0, 0, 0}, + { 0, 0, _image148_size, 0, 0, 0, 0}, + {0xAA, 0, _image149_size, 0, 0, 0, 0}, + {0xAA, 0, _image150_size, 0, 0, 0, 0}, + {0xAA, 0, _image151_size, 0, 0, 0, 0}, + {0xAA, 0, _image152_size, 0, 0, 0, 0}, + {0xAA, 0, _image153_size, 0, 0, 0, 0}, + {0xAA, 0, _image154_size, 0, 0, 0, 0}, + {0xAA, 0, _image155_size, 0, 0, 0, 0}, + {0xAA, 0, _image156_size, 0, 0, 0, 0}, + { 0, 0, _image157_size, 0, 0, 0, 0}, + { 0, 0, _image158_size, 0, 0, 0, 0}, + { 0, 0, _image159_size, 0, 0, 0, 0}, + { 0, 0, _image160_size, 0, 0, 0, 0}, + {0x33, 0, _image161_size, 0, 0, 0, 0}, + {0x33, 0, _image162_size, 0, 0, 0, 0}, + {0x33, 0, _image163_size, 0, 0, 0, 0}, + {0x33, 0, _image164_size, 0, 0, 0, 0}, + {0x33, 0, _image165_size, 0, 0, 0, 0}, + {0x33, 0, _image166_size, 0, 0, 0, 0}, + {0x33, 0, _image167_size, 0, 0, 0, 0}, + {0x33, 0, _image168_size, 0, 0, 0, 0}, + { 0, 0, _image169_size, 0, 0, 0, 0}, + {0x33, 0, _image170_size, 0, 0, 0, 0}, + { 0, 0, _image171_size, 0, 0, 0, 0}, + { 0, 0, _image172_size, 0, 0, 0, 0}, + { 0, 0, _image173_size, 0, 0, 0, 0}, + { 0, 0, _image174_size, 0, 0, 0, 0}, + { 0, 0, _image175_size, 0, 0, 0, 0}, + { 0, 0, _image176_size, 0, 0, 0, 0}, + { 0, 0, _image177_size, 0, 0, 0, 0}, + {0xAA, 0, _image178_size, 0, 0, 0, 0}, + {0xAA, 0, _image179_size, 0, 0, 0, 0}, + {0xAA, 0, _image180_size, 0, 0, 0, 0}, + {0x11, 0, _image181_size, 0, 0, 0, 0}, + {0x11, 0, _image182_size, 0, 0, 0, 0}, + { 0, 0, _image183_size, 0, 0, 0, 0}, + {0x11, 0, _image184_size, 0, 0, 0, 0}, + { 0, 0, _image185_size, 0, 0, 0, 0}, + {0x22, 0, _image186_size, 0, 0, 0, 0}, + {0x77, 0, _image187_size, 0, 0, 0, 0}, + {0x77, 0, _image188_size, 0, 0, 0, 0}, + {0x22, 0, _image189_size, 0, 0, 0, 0}, + { 0, 0, _image190_size, 0, 0, 0, 0}, + { 0, 0, _image191_size, 0, 0, 0, 0}, + { 0, 0, _image192_size, 0, 0, 0, 0}, + { 0, 0, _image193_size, 0, 0, 0, 0}, + { 0, 0, _image194_size, 0, 0, 0, 0}, + {0x33, 0, _image195_size, 0, 0, 0, 0}, + {0x11, 0, _image196_size, 0, 0, 0, 0}, + {0x77, 0, _image197_size, 0, 0, 0, 0}, + {0x33, 0, _image198_size, 0, 0, 0, 0}, + { 0, 0, _image199_size, 0, 0, 0, 0}, + {0x33, 0, _image200_size, 0, 0, 0, 0}, + { 0, 0, _image201_size, 0, 0, 0, 0}, + {0x44, 0, _image202_size, 0, 0, 0, 0}, + {0x44, 0, _image203_size, 0, 0, 0, 0}, + {0x44, 0, _image204_size, 0, 0, 0, 0}, + {0x44, 0, _image205_size, 0, 0, 0, 0}, + {0x44, 0, _image206_size, 0, 0, 0, 0}, + { 0, 0, _image207_size, 0, 0, 0, 0}, + { 0, 0, _image208_size, 0, 0, 0, 0}, + { 0, 0, _image209_size, 0, 0, 0, 0}, + { 0, 0, _image210_size, 0, 0, 0, 0}, + { 0, 0, _image211_size, 0, 0, 0, 0}, + { 0, 0, _image212_size, 0, 0, 0, 0}, + { 0, 0, _image213_size, 0, 0, 0, 0}, + { 0, 0, _image214_size, 0, 0, 0, 0}, + {0xAA, 0, _image215_size, 0, 0, 0, 0}, + { 0, 0, _image216_size, 0, 0, 0, 0}, + { 0, 0, _image217_size, 0, 0, 0, 0}, + { 0, 0, _image218_size, 0, 0, 0, 0}, + { 0, 0, _image219_size, 0, 0, 0, 0}, + {0x22, 0, _image220_size, 0, 0, 0, 0}, + {0x22, 0, _image221_size, 0, 0, 0, 0}, + {0x22, 0, _image222_size, 0, 0, 0, 0}, + {0x22, 0, _image223_size, 0, 0, 0, 0}, + {0x22, 0, _image224_size, 0, 0, 0, 0}, + {0x22, 0, _image225_size, 0, 0, 0, 0}, + {0x22, 0, _image226_size, 0, 0, 0, 0}, + { 0, 0, _image227_size, 0, 0, 0, 0}, + { 0, 0, _image228_size, 0, 0, 0, 0}, + { 0, 0, _image229_size, 0, 0, 0, 0}, + {0xAA, 0, _image230_size, 0, 0, 0, 0}, + { 0, 0, _image231_size, 0, 0, 0, 0}, + { 0, 0, _image232_size, 0, 0, 0, 0}, + { 0, 0, _image233_size, 0, 0, 0, 0}, + { 0, 0, _image234_size, 0, 0, 0, 0}, + { 0, 0, _image235_size, 0, 0, 0, 0}, + {0xAA, 0, _image236_size, 0, 0, 0, 0}, + {0xAA, 0, _image237_size, 0, 0, 0, 0}, + {0xAA, 0, _image238_size, 0, 0, 0, 0}, + {0xAA, 0, _image239_size, 0, 0, 0, 0}, + {0xAA, 0, _image240_size, 0, 0, 0, 0}, + {0xAA, 0, _image241_size, 0, 0, 0, 0}, + {0xAA, 0, _image242_size, 0, 0, 0, 0}, + {0x77, 0, _image243_size, 0, 0, 0, 0}, + {0x77, 0, _image244_size, 0, 0, 0, 0}, + {0x77, 0, _image245_size, 0, 0, 0, 0}, + { 0, 0, _image246_size, 0, 0, 0, 0}, + { 0, 0, _image247_size, 0, 0, 0, 0}, + {0x33, 0, _image248_size, 0, 0, 0, 0}, + {0x33, 0, _image249_size, 0, 0, 0, 0}, + {0x33, 0, _image250_size, 0, 0, 0, 0}, + {0x33, 0, _image251_size, 0, 0, 0, 0}, + {0x11, 0, _image252_size, 0, 0, 0, 0}, + {0x44, 0, _image253_size, 0, 0, 0, 0}, + {0x44, 0, _image254_size, 0, 0, 0, 0}, + {0x44, 0, _image255_size, 0, 0, 0, 0}, + {0x44, 0, _image256_size, 0, 0, 0, 0}, + {0x44, 0, _image257_size, 0, 0, 0, 0}, + {0x11, 0, _image258_size, 0, 0, 0, 0}, + {0x11, 0, _image259_size, 0, 0, 0, 0}, + {0x11, 0, _image260_size, 0, 0, 0, 0}, + {0xAA, 0, _image261_size, 0, 0, 0, 0}, + {0xAA, 0, _image262_size, 0, 0, 0, 0}, + {0xAA, 0, _image263_size, 0, 0, 0, 0}, + {0xAA, 0, _image264_size, 0, 0, 0, 0}, + {0x77, 0, _image265_size, 0, 0, 0, 0}, + {0xAA, 0, _image266_size, 0, 0, 0, 0}, + { 0, 0, _image267_size, 0, 0, 0, 0}, + { 0, 0, _image268_size, 0, 0, 0, 0}, + { 0, 0, _image269_size, 0, 0, 0, 0}, + { 0, 0, _image270_size, 0, 0, 0, 0}, + { 0, 0, _image271_size, 0, 0, 0, 0}, + { 0, 0, _image272_size, 0, 0, 0, 0}, + { 0, 0, _image273_size, 0, 0, 0, 0}, + { 0, 0, _image274_size, 0, 0, 0, 0}, + { 0, 0, _image275_size, 0, 0, 0, 0}, + { 0, 0, _image276_size, 0, 0, 0, 0}, + { 0, 0, _image277_size, 0, 0, 0, 0}, + { 0, 0, _image278_size, 0, 0, 0, 0}, + { 0, 0, _image279_size, 0, 0, 0, 0}, + {0x11, 0, _image280_size, 0, 0, 0, 0}, + {0x11, 0, _image281_size, 0, 0, 0, 0}, + {0x11, 0, _image282_size, 0, 0, 0, 0}, + {0x11, 0, _image283_size, 0, 0, 0, 0}, + {0x11, 0, _image284_size, 0, 0, 0, 0}, + {0x11, 0, _image285_size, 0, 0, 0, 0}, + {0x11, 0, _image286_size, 0, 0, 0, 0}, + {0x11, 0, _image287_size, 0, 0, 0, 0}, + {0x11, 0, _image288_size, 0, 0, 0, 0}, + {0x11, 0, _image289_size, 0, 0, 0, 0}, + {0x11, 0, _image290_size, 0, 0, 0, 0}, + {0x11, 0, _image291_size, 0, 0, 0, 0}, + {0x11, 0, _image292_size, 0, 0, 0, 0}, + { 0, 0, _image293_size, 0, 0, 0, 0}, + {0x11, 0, _image294_size, 0, 0, 0, 0}, + {0x11, 0, _image295_size, 0, 0, 0, 0}, + {0x11, 0, _image296_size, 0, 0, 0, 0}, + {0x11, 0, _image297_size, 0, 0, 0, 0}, + {0x11, 0, _image298_size, 0, 0, 0, 0}, + {0x11, 0, _image299_size, 0, 0, 0, 0}, + {0x11, 0, _image300_size, 0, 0, 0, 0}, + {0x11, 0, _image301_size, 0, 0, 0, 0}, + {0x11, 0, _image302_size, 0, 0, 0, 0}, + {0x11, 0, _image303_size, 0, 0, 0, 0}, + {0x11, 0, _image304_size, 0, 0, 0, 0}, + {0x77, 0, _image305_size, 0, 0, 0, 0}, + {0x11, 0, _image306_size, 0, 0, 0, 0}, + {0x11, 0, _image307_size, 0, 0, 0, 0}, + {0x11, 0, _image308_size, 0, 0, 0, 0}, + {0x11, 0, _image309_size, 0, 0, 0, 0}, + {0x11, 0, _image310_size, 0, 0, 0, 0}, + {0x11, 0, _image311_size, 0, 0, 0, 0}, + {0x11, 0, _image312_size, 0, 0, 0, 0}, + {0x11, 0, _image313_size, 0, 0, 0, 0}, + {0x11, 0, _image314_size, 0, 0, 0, 0}, + {0x11, 0, _image315_size, 0, 0, 0, 0}, + {0x11, 0, _image316_size, 0, 0, 0, 0}, + {0x11, 0, _image317_size, 0, 0, 0, 0}, + {0x11, 0, _image318_size, 0, 0, 0, 0}, + {0x11, 0, _image319_size, 0, 0, 0, 0}, + {0x11, 0, _image320_size, 0, 0, 0, 0}, + {0x11, 0, _image321_size, 0, 0, 0, 0}, + { 0, 0, _image322_size, 0, 0, 0, 0}, + { 0, 0, _image323_size, 0, 0, 0, 0}, + { 0, 0, _image324_size, 0, 0, 0, 0}, + { 0, 0, _image325_size, 0, 0, 0, 0}, + { 0, 0, _image326_size, 0, 0, 0, 0}, + { 0, 0, _image327_size, 0, 0, 0, 0}, + { 0, 0, _image328_size, 0, 0, 0, 0}, + { 0, 0, _image329_size, 0, 0, 0, 0}, + {0xAA, 0, _image330_size, 0, 0, 0, 0}, + {0xAA, 0, _image331_size, 0, 0, 0, 0}, + {0xAA, 0, _image332_size, 0, 0, 0, 0}, + {0xAA, 0, _image333_size, 0, 0, 0, 0}, + {0xAA, 0, _image334_size, 0, 0, 0, 0}, + {0xAA, 0, _image335_size, 0, 0, 0, 0}, + {0xAA, 0, _image336_size, 0, 0, 0, 0}, + {0xAA, 0, _image337_size, 0, 0, 0, 0}, + {0xAA, 0, _image338_size, 0, 0, 0, 0}, + {0xAA, 0, _image339_size, 0, 0, 0, 0}, + {0xAA, 0, _image340_size, 0, 0, 0, 0}, + {0xAA, 0, _image341_size, 0, 0, 0, 0}, + {0xAA, 0, _image342_size, 0, 0, 0, 0}, + {0xAA, 0, _image343_size, 0, 0, 0, 0}, + {0xAA, 0, _image344_size, 0, 0, 0, 0}, + {0xAA, 0, _image345_size, 0, 0, 0, 0}, + {0xAA, 0, _image346_size, 0, 0, 0, 0}, + {0xAA, 0, _image347_size, 0, 0, 0, 0}, + {0xAA, 0, _image348_size, 0, 0, 0, 0}, + {0xAA, 0, _image349_size, 0, 0, 0, 0}, + {0xAA, 0, _image350_size, 0, 0, 0, 0}, + {0xAA, 0, _image351_size, 0, 0, 0, 0}, + {0xAA, 0, _image352_size, 0, 0, 0, 0}, + {0xAA, 0, _image353_size, 0, 0, 0, 0}, + {0xAA, 0, _image354_size, 0, 0, 0, 0}, + {0xAA, 0, _image355_size, 0, 0, 0, 0}, + {0xAA, 0, _image356_size, 0, 0, 0, 0}, + {0xAA, 0, _image357_size, 0, 0, 0, 0}, + {0xAA, 0, _image358_size, 0, 0, 0, 0}, + {0xAA, 0, _image359_size, 0, 0, 0, 0}, + {0xAA, 0, _image360_size, 0, 0, 0, 0}, + {0xAA, 0, _image361_size, 0, 0, 0, 0}, + {0xAA, 0, _image362_size, 0, 0, 0, 0}, + {0xAA, 0, _image363_size, 0, 0, 0, 0}, + {0xAA, 0, _image364_size, 0, 0, 0, 0}, + {0xAA, 0, _image365_size, 0, 0, 0, 0}, + {0xAA, 0, _image366_size, 0, 0, 0, 0}, + {0xAA, 0, _image367_size, 0, 0, 0, 0}, + {0xAA, 0, _image368_size, 0, 0, 0, 0}, + {0xAA, 0, _image369_size, 0, 0, 0, 0}, + { 0, 0, _image370_size, 0, 0, 0, 0}, + { 0, 0, _image371_size, 0, 0, 0, 0}, + {0xAA, 0, _image372_size, 0, 0, 0, 0}, + {0xAA, 0, _image373_size, 0, 0, 0, 0}, + {0xAA, 0, _image374_size, 0, 0, 0, 0}, + {0xAA, 0, _image375_size, 0, 0, 0, 0}, + {0xAA, 0, _image376_size, 0, 0, 0, 0}, + {0xAA, 0, _image377_size, 0, 0, 0, 0}, + {0xAA, 0, _image378_size, 0, 0, 0, 0}, + {0xAA, 0, _image379_size, 0, 0, 0, 0}, + {0xAA, 0, _image380_size, 0, 0, 0, 0}, + {0xAA, 0, _image381_size, 0, 0, 0, 0}, + {0xAA, 0, _image382_size, 0, 0, 0, 0}, + {0x33, 0, _image383_size, 0, 0, 0, 0}, + {0x33, 0, _image384_size, 0, 0, 0, 0}, + {0x33, 0, _image385_size, 0, 0, 0, 0}, + {0x33, 0, _image386_size, 0, 0, 0, 0}, + { 0, 0, _image387_size, 0, 0, 0, 0}, + { 0, 0, _image388_size, 0, 0, 0, 0}, + { 0, 0, _image389_size, 0, 0, 0, 0}, + { 0, 0, _image390_size, 0, 0, 0, 0}, + { 0, 0, _image391_size, 0, 0, 0, 0}, + { 0, 0, _image392_size, 0, 0, 0, 0}, + { 0, 0, _image393_size, 0, 0, 0, 0}, + { 0, 0, _image394_size, 0, 0, 0, 0}, + {0x33, 0, _image395_size, 0, 0, 0, 0}, + {0x22, 0, _image396_size, 0, 0, 0, 0}, + {0x22, 0, _image397_size, 0, 0, 0, 0}, + {0x22, 0, _image398_size, 0, 0, 0, 0}, + {0x22, 0, _image399_size, 0, 0, 0, 0}, + {0x33, 0, _image400_size, 0, 0, 0, 0}, + {0x33, 0, _image401_size, 0, 0, 0, 0}, + {0x33, 0, _image402_size, 0, 0, 0, 0}, + {0x11, 0, _image403_size, 0, 0, 0, 0}, + {0x11, 0, _image404_size, 0, 0, 0, 0}, + {0x11, 0, _image405_size, 0, 0, 0, 0}, + {0x77, 0, _image406_size, 0, 0, 0, 0}, + {0x11, 0, _image407_size, 0, 0, 0, 0}, + {0x11, 0, _image408_size, 0, 0, 0, 0}, + {0x11, 0, _image409_size, 0, 0, 0, 0}, + {0x11, 0, _image410_size, 0, 0, 0, 0}, + {0x11, 0, _image411_size, 0, 0, 0, 0}, + { 0, 0, _image412_size, 0, 0, 0, 0}, + { 0, 0, _image413_size, 0, 0, 0, 0}, + { 0, 0, _image414_size, 0, 0, 0, 0}, + { 0, 0, _image415_size, 0, 0, 0, 0}, + { 0, 0, _image416_size, 0, 0, 0, 0}, + { 0, 0, _image417_size, 0, 0, 0, 0}, + { 0, 0, _image418_size, 0, 0, 0, 0}, + { 0, 0, _image419_size, 0, 0, 0, 0}, + { 0, 0, _image420_size, 0, 0, 0, 0}, + { 0, 0, _image421_size, 0, 0, 0, 0}, + { 0, 0, _image422_size, 0, 0, 0, 0}, + { 0, 0, _image423_size, 0, 0, 0, 0}, + { 0, 0, _image424_size, 0, 0, 0, 0}, + { 0, 0, _image425_size, 0, 0, 0, 0}, + { 0, 0, _image426_size, 0, 0, 0, 0}, + {0xAA, 0, _image427_size, 0, 0, 0, 0}, + {0xAA, 0, _image428_size, 0, 0, 0, 0}, + {0x44, 0, _image429_size, 0, 0, 0, 0}, + {0xAA, 0, _image430_size, 0, 0, 0, 0}, + {0x33, 0, _image431_size, 0, 0, 0, 0}, + { 0, 0, _image432_size, 0, 0, 0, 0}, + {0x11, 0, _image433_size, 0, 0, 0, 0}, + {0x11, 0, _image434_size, 0, 0, 0, 0}, + {0x77, 0, _image435_size, 0, 0, 0, 0}, + {0x11, 0, _image436_size, 0, 0, 0, 0}, + {0x11, 0, _image437_size, 0, 0, 0, 0}, + { 0, 0, _image438_size, 0, 0, 0, 0}, + { 0, 0, _image439_size, 0, 0, 0, 0}, + { 0, 0, _image440_size, 0, 0, 0, 0}, + { 0, 0, _image441_size, 0, 0, 0, 0}, + { 0, 0, _image442_size, 0, 0, 0, 0}, + {0x77, 0, _image443_size, 0, 0, 0, 0}, + { 0, 0, _image444_size, 0, 0, 0, 0}, + { 0, 0, _image445_size, 0, 0, 0, 0}, + { 0, 0, _image446_size, 0, 0, 0, 0}, + { 0, 0, _image447_size, 0, 0, 0, 0}, + {0x44, 0, _image448_size, 0, 0, 0, 0}, + {0x44, 0, _image449_size, 0, 0, 0, 0}, + {0x11, 0, _image450_size, 0, 0, 0, 0}, + {0x11, 0, _image451_size, 0, 0, 0, 0}, + {0xAA, 0, _image452_size, 0, 0, 0, 0}, + {0x33, 0, _image453_size, 0, 0, 0, 0}, + {0x33, 0, _image454_size, 0, 0, 0, 0}, + { 0, 0, _image455_size, 0, 0, 0, 0}, + { 0, 0, _image456_size, 0, 0, 0, 0}, + { 0, 0, _image457_size, 0, 0, 0, 0}, + {0xAA, 0, _image458_size, 0, 0, 0, 0}, + {0x33, 0, _image459_size, 0, 0, 0, 0}, + {0x33, 0, _image460_size, 0, 0, 0, 0}, + { 0, 0, _image461_size, 0, 0, 0, 0}, + {0xAA, 0, _image462_size, 0, 0, 0, 0}, + { 0, 0, _image463_size, 0, 0, 0, 0}, + { 0, 0, _image464_size, 0, 0, 0, 0}, + { 0, 0, _image465_size, 0, 0, 0, 0}, + {0xAA, 0, _image466_size, 0, 0, 0, 0}, + {0xAA, 0, _image467_size, 0, 0, 0, 0}, + {0xAA, 0, _image468_size, 0, 0, 0, 0}, + {0xAA, 0, _image469_size, 0, 0, 0, 0}, + {0xAA, 0, _image470_size, 0, 0, 0, 0}, + { 0, 0, _image471_size, 0, 0, 0, 0}, + {0xAA, 0, _image472_size, 0, 0, 0, 0}, + {0xAA, 0, _image473_size, 0, 0, 0, 0}, + {0xAA, 0, _image474_size, 0, 0, 0, 0}, + {0x33, 0, _image475_size, 0, 0, 0, 0}, + {0x33, 0, _image476_size, 0, 0, 0, 0}, + {0x33, 0, _image477_size, 0, 0, 0, 0}, + {0x33, 0, _image478_size, 0, 0, 0, 0}, + {0x33, 0, _image479_size, 0, 0, 0, 0}, + {0x33, 0, _image480_size, 0, 0, 0, 0}, + { 0, 0, _image481_size, 0, 0, 0, 0}, + {0x33, 0, _image482_size, 0, 0, 0, 0}, + {0x33, 0, _image483_size, 0, 0, 0, 0}, + {0x33, 0, _image484_size, 0, 0, 0, 0}, + {0x33, 0, _image485_size, 0, 0, 0, 0}, + {0x33, 0, _image486_size, 0, 0, 0, 0}, + {0xAA, 0, _image487_size, 0, 0, 0, 0}, + {0xAA, 0, _image488_size, 0, 0, 0, 0}, + {0xAA, 0, _image489_size, 0, 0, 0, 0}, + { 0, 0, _image490_size, 0, 0, 0, 0}, + { 0, 0, _image491_size, 0, 0, 0, 0}, + {0x33, 0, _image492_size, 0, 0, 0, 0}, + {0xAA, 0, _image493_size, 0, 0, 0, 0}, + { 0, 0, _image494_size, 0, 0, 0, 0}, + { 0, 0, _image495_size, 0, 0, 0, 0}, + { 0, 0, _image496_size, 0, 0, 0, 0}, + { 0, 0, _image497_size, 0, 0, 0, 0}, + { 0, 0, _image498_size, 0, 0, 0, 0}, + { 0, 0, _image499_size, 0, 0, 0, 0}, + {0xAA, 0, _image500_size, 0, 0, 0, 0}, + {0xAA, 0, _image501_size, 0, 0, 0, 0}, + {0xAA, 0, _image502_size, 0, 0, 0, 0}, + {0x33, 0, _image503_size, 0, 0, 0, 0}, + {0x33, 0, _image504_size, 0, 0, 0, 0}, + { 0, 0, _image505_size, 0, 0, 0, 0}, + {0x33, 0, _image506_size, 0, 0, 0, 0}, + { 0, 0, _image507_size, 0, 0, 0, 0}, + {0x33, 0, _image508_size, 0, 0, 0, 0}, + {0x33, 0, _image509_size, 0, 0, 0, 0}, + {0x33, 0, _image510_size, 0, 0, 0, 0}, + {0x33, 0, _image511_size, 0, 0, 0, 0}, + {0x33, 0, _image512_size, 0, 0, 0, 0}, + {0x33, 0, _image513_size, 0, 0, 0, 0}, + { 0, 0, _image514_size, 0, 0, 0, 0}, + {0x33, 0, _image515_size, 0, 0, 0, 0}, + {0xAA, 0, _image516_size, 0, 0, 0, 0}, + {0xAA, 0, _image517_size, 0, 0, 0, 0}, + {0xAA, 0, _image518_size, 0, 0, 0, 0}, + {0xAA, 0, _image519_size, 0, 0, 0, 0}, + {0xAA, 0, _image520_size, 0, 0, 0, 0}, + { 0, 0, _image521_size, 0, 0, 0, 0}, + {0xAA, 0, _image522_size, 0, 0, 0, 0}, + {0x33, 0, _image523_size, 0, 0, 0, 0}, + {0x33, 0, _image524_size, 0, 0, 0, 0}, + { 0, 0, _image525_size, 0, 0, 0, 0}, + {0x33, 0, _image526_size, 0, 0, 0, 0}, + {0xAA, 0, _image527_size, 0, 0, 0, 0}, + {0xAA, 0, _image528_size, 0, 0, 0, 0}, + {0xAA, 0, _image529_size, 0, 0, 0, 0}, + {0xAA, 0, _image530_size, 0, 0, 0, 0}, + { 0, 0, _image531_size, 0, 0, 0, 0}, + { 0, 0, _image532_size, 0, 0, 0, 0}, + { 0, 0, _image533_size, 0, 0, 0, 0}, + {0x33, 0, _image534_size, 0, 0, 0, 0}, + {0x33, 0, _image535_size, 0, 0, 0, 0}, + {0x33, 0, _image536_size, 0, 0, 0, 0}, + {0x44, 0, _image537_size, 0, 0, 0, 0}, + {0x77, 0, _image538_size, 0, 0, 0, 0}, + {0x77, 0, _image539_size, 0, 0, 0, 0}, + { 0, 0, _image540_size, 0, 0, 0, 0}, + { 0, 0, _image541_size, 0, 0, 0, 0}, + { 0, 0, _image542_size, 0, 0, 0, 0}, + {0xAA, 0, _image543_size, 0, 0, 0, 0}, + { 0, 0, _image544_size, 0, 0, 0, 0}, + { 0, 0, _image545_size, 0, 0, 0, 0}, + {0x33, 0, _image546_size, 0, 0, 0, 0}, + {0x33, 0, _image547_size, 0, 0, 0, 0}, + {0x33, 0, _image548_size, 0, 0, 0, 0}, + {0x33, 0, _image549_size, 0, 0, 0, 0}, + {0x33, 0, _image550_size, 0, 0, 0, 0}, + {0x33, 0, _image551_size, 0, 0, 0, 0}, + {0x33, 0, _image552_size, 0, 0, 0, 0}, + {0x33, 0, _image553_size, 0, 0, 0, 0}, + {0x33, 0, _image554_size, 0, 0, 0, 0}, + {0x33, 0, _image555_size, 0, 0, 0, 0}, + {0x33, 0, _image556_size, 0, 0, 0, 0}, + {0x33, 0, _image557_size, 0, 0, 0, 0}, + {0x33, 0, _image558_size, 0, 0, 0, 0}, + {0x33, 0, _image559_size, 0, 0, 0, 0}, + {0x33, 0, _image560_size, 0, 0, 0, 0}, + {0x33, 0, _image561_size, 0, 0, 0, 0}, + {0x33, 0, _image562_size, 0, 0, 0, 0}, + {0x33, 0, _image563_size, 0, 0, 0, 0}, + {0x33, 0, _image564_size, 0, 0, 0, 0}, + {0x33, 0, _image565_size, 0, 0, 0, 0}, + {0x33, 0, _image566_size, 0, 0, 0, 0}, + {0x33, 0, _image567_size, 0, 0, 0, 0}, + {0x33, 0, _image568_size, 0, 0, 0, 0}, + {0x33, 0, _image569_size, 0, 0, 0, 0}, + {0x33, 0, _image570_size, 0, 0, 0, 0}, + {0x33, 0, _image571_size, 0, 0, 0, 0}, + {0x33, 0, _image572_size, 0, 0, 0, 0}, + {0x33, 0, _image573_size, 0, 0, 0, 0}, + {0x33, 0, _image574_size, 0, 0, 0, 0}, + {0x33, 0, _image575_size, 0, 0, 0, 0}, + {0x33, 0, _image576_size, 0, 0, 0, 0}, + {0x22, 0, _image577_size, 0, 0, 0, 0}, + {0x33, 0, _image578_size, 0, 0, 0, 0}, + {0x33, 0, _image579_size, 0, 0, 0, 0}, + {0x33, 0, _image580_size, 0, 0, 0, 0}, + {0x33, 0, _image581_size, 0, 0, 0, 0}, + { 0, 0, _image582_size, 0, 0, 0, 0}, + { 0, 0, _image583_size, 0, 0, 0, 0}, + { 0, 0, _image584_size, 0, 0, 0, 0}, + { 0, 0, _image585_size, 0, 0, 0, 0}, + { 0, 0, _image586_size, 0, 0, 0, 0}, + { 0, 0, _image587_size, 0, 0, 0, 0}, + { 0, 0, _image588_size, 0, 0, 0, 0}, + {0x77, 0, _image589_size, 0, 0, 0, 0}, + {0x77, 0, _image590_size, 0, 0, 0, 0}, + {0x77, 0, _image591_size, 0, 0, 0, 0}, + {0x77, 0, _image592_size, 0, 0, 0, 0}, + {0x77, 0, _image593_size, 0, 0, 0, 0}, + {0x77, 0, _image594_size, 0, 0, 0, 0}, + {0x77, 0, _image595_size, 0, 0, 0, 0}, + {0x77, 0, _image596_size, 0, 0, 0, 0}, + { 0, 0, _image597_size, 0, 0, 0, 0}, + { 0, 0, _image598_size, 0, 0, 0, 0}, + { 0, 0, _image599_size, 0, 0, 0, 0}, + { 0, 0, _image600_size, 0, 0, 0, 0}, + { 0, 0, _image601_size, 0, 0, 0, 0}, + { 0, 0, _image602_size, 0, 0, 0, 0}, + { 0, 0, _image603_size, 0, 0, 0, 0}, + { 0, 0, _image604_size, 0, 0, 0, 0}, + { 0, 0, _image605_size, 0, 0, 0, 0}, + { 0, 0, _image606_size, 0, 0, 0, 0}, + { 0, 0, _image607_size, 0, 0, 0, 0}, + { 0, 0, _image608_size, 0, 0, 0, 0}, + { 0, 0, _image609_size, 0, 0, 0, 0}, + { 0, 0, _image610_size, 0, 0, 0, 0}, + { 0, 0, _image611_size, 0, 0, 0, 0}, + { 0, 0, _image612_size, 0, 0, 0, 0}, + {0x33, 0, _image613_size, 0, 0, 0, 0}, + {0x33, 0, _image614_size, 0, 0, 0, 0}, + {0x33, 0, _image615_size, 0, 0, 0, 0}, + {0x33, 0, _image616_size, 0, 0, 0, 0}, + {0x33, 0, _image617_size, 0, 0, 0, 0}, + { 0, 0, _image618_size, 0, 0, 0, 0}, + { 0, 0, _image619_size, 0, 0, 0, 0}, + {0x22, 0, _image620_size, 0, 0, 0, 0}, + {0x33, 0, _image621_size, 0, 0, 0, 0}, + {0x33, 0, _image622_size, 0, 0, 0, 0}, + {0x33, 0, _image623_size, 0, 0, 0, 0}, + { 0, 0, _image624_size, 0, 0, 0, 0}, + { 0, 0, _image625_size, 0, 0, 0, 0}, + { 0, 0, _image626_size, 0, 0, 0, 0}, + { 0, 0, _image627_size, 0, 0, 0, 0}, + { 0, 0, _image628_size, 0, 0, 0, 0}, + { 0, 0, _image629_size, 0, 0, 0, 0}, + { 0, 0, _image630_size, 0, 0, 0, 0}, + { 0, 0, _image631_size, 0, 0, 0, 0}, + {0x99, 0, _image632_size, 0, 0, 0, 0}, + {0x99, 0, _image633_size, 0, 0, 0, 0}, + { 0, 0, _image634_size, 0, 0, 0, 0}, + { 0, 0, _image635_size, 0, 0, 0, 0}, + { 0, 0, _image636_size, 0, 0, 0, 0}, + { 0, 0, _image637_size, 0, 0, 0, 0}, + { 0, 0, _image638_size, 0, 0, 0, 0}, + { 0, 0, _image639_size, 0, 0, 0, 0}, + { 0, 0, _image640_size, 0, 0, 0, 0}, + { 0, 0, _image641_size, 0, 0, 0, 0}, + { 0, 0, _image642_size, 0, 0, 0, 0}, + { 0, 0, _image643_size, 0, 0, 0, 0}, + {0x33, 0, _image644_size, 0, 0, 0, 0}, + {0x33, 0, _image645_size, 0, 0, 0, 0}, + {0x33, 0, _image646_size, 0, 0, 0, 0}, + { 0, 0, _image647_size, 0, 0, 0, 0}, + {0x33, 0, _image648_size, 0, 0, 0, 0}, + { 0, 0, _image649_size, 0, 0, 0, 0}, + { 0, 0, _image650_size, 0, 0, 0, 0}, + { 0, 0, _image651_size, 0, 0, 0, 0}, + {0x33, 0, _image652_size, 0, 0, 0, 0}, + {0x44, 0, _image653_size, 0, 0, 0, 0}, + {0x4C, 0, _image654_size, 0, 0, 0, 0}, + {0x4C, 0, _image655_size, 0, 0, 0, 0}, + {0x4C, 0, _image656_size, 0, 0, 0, 0}, + {0x44, 0, _image657_size, 0, 0, 0, 0}, + {0x44, 0, _image658_size, 0, 0, 0, 0}, + {0x44, 0, _image659_size, 0, 0, 0, 0}, + { 0, 0, _image660_size, 0, 0, 0, 0}, + { 0, 0, _image661_size, 0, 0, 0, 0}, + { 0, 0, _image662_size, 0, 0, 0, 0}, + { 0, 0, _image663_size, 0, 0, 0, 0}, + { 0, 0, _image664_size, 0, 0, 0, 0}, + { 0, 0, _image665_size, 0, 0, 0, 0}, + { 0, 0, _image666_size, 0, 0, 0, 0}, + { 0, 0, _image667_size, 0, 0, 0, 0}, + { 0, 0, _image668_size, 0, 0, 0, 0}, + { 0, 0, _image669_size, 0, 0, 0, 0}, + { 0, 0, _image670_size, 0, 0, 0, 0}, + { 0, 0, _image671_size, 0, 0, 0, 0}, + {0x33, 0, _image672_size, 0, 0, 0, 0}, + {0x33, 0, _image673_size, 0, 0, 0, 0}, + {0x33, 0, _image674_size, 0, 0, 0, 0}, + {0x33, 0, _image675_size, 0, 0, 0, 0}, + {0x11, 0, _image676_size, 0, 0, 0, 0}, + {0x11, 0, _image677_size, 0, 0, 0, 0}, + { 0, 0, _image678_size, 0, 0, 0, 0}, + {0x22, 0, _image679_size, 0, 0, 0, 0}, + {0x33, 0, _image680_size, 0, 0, 0, 0}, + {0x33, 0, _image681_size, 0, 0, 0, 0}, + {0x33, 0, _image682_size, 0, 0, 0, 0}, + {0x33, 0, _image683_size, 0, 0, 0, 0}, + {0x33, 0, _image684_size, 0, 0, 0, 0}, + {0x33, 0, _image685_size, 0, 0, 0, 0}, + {0x33, 0, _image686_size, 0, 0, 0, 0}, + {0x33, 0, _image687_size, 0, 0, 0, 0}, + {0x33, 0, _image688_size, 0, 0, 0, 0}, + {0x33, 0, _image689_size, 0, 0, 0, 0}, + { 0, 0, _image690_size, 0, 0, 0, 0}, + { 0, 0, _image691_size, 0, 0, 0, 0}, + { 0, 0, _image692_size, 0, 0, 0, 0}, + {0xAA, 0, _image693_size, 0, 0, 0, 0}, + {0x44, 0, _image694_size, 0, 0, 0, 0}, + { 0, 0, _image695_size, 0, 0, 0, 0}, + {0x99, 0, _image696_size, 0, 0, 0, 0}, + {0x99, 0, _image697_size, 0, 0, 0, 0}, + {0x77, 0, _image698_size, 0, 0, 0, 0}, + {0x99, 0, _image699_size, 0, 0, 0, 0}, + {0x99, 0, _image700_size, 0, 0, 0, 0}, + {0x33, 0, _image701_size, 0, 0, 0, 0}, + {0x33, 0, _image702_size, 0, 0, 0, 0}, + {0xAA, 0, _image703_size, 0, 0, 0, 0}, + {0xAA, 0, _image704_size, 0, 0, 0, 0}, + {0xAA, 0, _image705_size, 0, 0, 0, 0}, + {0x33, 0, _image706_size, 0, 0, 0, 0}, + {0x33, 0, _image707_size, 0, 0, 0, 0}, + {0x33, 0, _image708_size, 0, 0, 0, 0}, + {0x33, 0, _image709_size, 0, 0, 0, 0}, + {0x33, 0, _image710_size, 0, 0, 0, 0}, + {0x33, 0, _image711_size, 0, 0, 0, 0}, + {0x33, 0, _image712_size, 0, 0, 0, 0}, + { 0, 0, _image713_size, 0, 0, 0, 0}, + { 0, 0, _image714_size, 0, 0, 0, 0}, + { 0, 0, _image715_size, 0, 0, 0, 0}, + {0x33, 0, _image716_size, 0, 0, 0, 0}, + {0x33, 0, _image717_size, 0, 0, 0, 0}, + {0x33, 0, _image718_size, 0, 0, 0, 0}, + {0x99, 0, _image719_size, 0, 0, 0, 0}, + {0x99, 0, _image720_size, 0, 0, 0, 0}, + {0x11, 0, _image721_size, 0, 0, 0, 0}, + {0x11, 0, _image722_size, 0, 0, 0, 0}, + { 0, 0, _image723_size, 0, 0, 0, 0}, + {0x11, 0, _image724_size, 0, 0, 0, 0}, + {0x11, 0, _image725_size, 0, 0, 0, 0}, + {0x11, 0, _image726_size, 0, 0, 0, 0}, + {0xAA, 0, _image727_size, 0, 0, 0, 0}, + {0xAA, 0, _image728_size, 0, 0, 0, 0}, + {0xAA, 0, _image729_size, 0, 0, 0, 0}, + {0xAA, 0, _image730_size, 0, 0, 0, 0}, + {0xAA, 0, _image731_size, 0, 0, 0, 0}, + {0xAA, 0, _image732_size, 0, 0, 0, 0}, + { 0, 0, _image733_size, 0, 0, 0, 0}, + { 0, 0, _image734_size, 0, 0, 0, 0}, + { 0, 0, _image735_size, 0, 0, 0, 0}, + { 0, 0, _image736_size, 0, 0, 0, 0}, + { 0, 0, _image737_size, 0, 0, 0, 0}, + { 0, 0, _image738_size, 0, 0, 0, 0}, + { 0, 0, _image739_size, 0, 0, 0, 0}, + { 0, 0, _image740_size, 0, 0, 0, 0}, + { 0, 0, _image741_size, 0, 0, 0, 0}, + { 0, 0, _image742_size, 0, 0, 0, 0}, + { 0, 0, _image743_size, 0, 0, 0, 0}, + { 0, 0, _image744_size, 0, 0, 0, 0}, + { 0, 0, _image745_size, 0, 0, 0, 0}, + { 0, 0, _image746_size, 0, 0, 0, 0}, + { 0, 0, _image747_size, 0, 0, 0, 0}, + { 0, 0, _image748_size, 0, 0, 0, 0}, + { 0, 0, _image749_size, 0, 0, 0, 0}, + { 0, 0, _image750_size, 0, 0, 0, 0}, + { 0, 0, _image751_size, 0, 0, 0, 0}, + { 0, 0, _image752_size, 0, 0, 0, 0}, + { 0, 0, _image753_size, 0, 0, 0, 0}, + { 0, 0, _image754_size, 0, 0, 0, 0}, + { 0, 0, _image755_size, 0, 0, 0, 0}, + { 0, 0, _image756_size, 0, 0, 0, 0}, + { 0, 0, _image757_size, 0, 0, 0, 0}, + { 0, 0, _image758_size, 0, 0, 0, 0}, + { 0, 0, _image759_size, 0, 0, 0, 0}, + { 0, 0, _image760_size, 0, 0, 0, 0}, + {0x77, 0, _image761_size, 0, 0, 0, 0}, + {0x77, 0, _image762_size, 0, 0, 0, 0}, + { 0, 0, _image763_size, 0, 0, 0, 0}, + { 0, 0, _image764_size, 0, 0, 0, 0}, + { 0, 0, _image765_size, 0, 0, 0, 0}, + { 0, 0, _image766_size, 0, 0, 0, 0}, + { 0, 0, _image767_size, 0, 0, 0, 0}, + { 0, 0, _image768_size, 0, 0, 0, 0}, + { 0, 0, _image769_size, 0, 0, 0, 0}, + { 0, 0, _image770_size, 0, 0, 0, 0}, + { 0, 0, _image771_size, 0, 0, 0, 0}, + { 0, 0, _image772_size, 0, 0, 0, 0}, + {0xAA, 0, _image773_size, 0, 0, 0, 0}, + {0xAA, 0, _image774_size, 0, 0, 0, 0}, + {0xAA, 0, _image775_size, 0, 0, 0, 0}, + {0x88, 0, _image776_size, 0, 0, 0, 0}, + { 0, 0, _image777_size, 0, 0, 0, 0}, + {0x11, 0, _image778_size, 0, 0, 0, 0}, + { 0, 0, _image779_size, 0, 0, 0, 0}, + { 0, 0, _image780_size, 0, 0, 0, 0}, + { 0, 0, _image781_size, 0, 0, 0, 0}, + { 0, 0, _image782_size, 0, 0, 0, 0}, + { 0, 0, _image783_size, 0, 0, 0, 0}, + {0x77, 0, _image784_size, 0, 0, 0, 0}, + { 0, 0, _image785_size, 0, 0, 0, 0}, + { 0, 0, _image786_size, 0, 0, 0, 0}, + { 0, 0, _image787_size, 0, 0, 0, 0}, + {0xAA, 0, _image788_size, 0, 0, 0, 0}, + { 0, 0, _image789_size, 0, 0, 0, 0}, + { 0, 0, _image790_size, 0, 0, 0, 0}, + { 0, 0, _image791_size, 0, 0, 0, 0}, + { 0, 0, _image792_size, 0, 0, 0, 0}, + { 0, 0, _image793_size, 0, 0, 0, 0}, + { 0, 0, _image794_size, 0, 0, 0, 0}, + { 0, 0, _image795_size, 0, 0, 0, 0}, + { 0, 0, _image796_size, 0, 0, 0, 0}, + {0x33, 0, _image797_size, 0, 0, 0, 0}, + {0x33, 0, _image798_size, 0, 0, 0, 0}, + {0x33, 0, _image799_size, 0, 0, 0, 0}, + {0x33, 0, _image800_size, 0, 0, 0, 0}, + {0x33, 0, _image801_size, 0, 0, 0, 0}, + {0x33, 0, _image802_size, 0, 0, 0, 0}, + {0x33, 0, _image803_size, 0, 0, 0, 0}, + {0x33, 0, _image804_size, 0, 0, 0, 0}, + { 0, 0, _image805_size, 0, 0, 0, 0}, + {0xAA, 0, _image806_size, 0, 0, 0, 0}, + { 0, 0, _image807_size, 0, 0, 0, 0}, + { 0, 0, _image808_size, 0, 0, 0, 0}, + {0x44, 0, _image809_size, 0, 0, 0, 0}, + {0x44, 0, _image810_size, 0, 0, 0, 0}, + {0x44, 0, _image811_size, 0, 0, 0, 0}, + { 0, 0, _image812_size, 0, 0, 0, 0}, + { 0, 0, _image813_size, 0, 0, 0, 0}, + { 0, 0, _image814_size, 0, 0, 0, 0}, + { 0, 0, _image815_size, 0, 0, 0, 0}, + { 0, 0, _image816_size, 0, 0, 0, 0}, + { 0, 0, _image817_size, 0, 0, 0, 0}, + {0x33, 0, _image818_size, 0, 0, 0, 0}, + {0xAA, 0, _image819_size, 0, 0, 0, 0}, + {0x33, 0, _image820_size, 0, 0, 0, 0}, + {0x33, 0, _image821_size, 0, 0, 0, 0}, + { 0, 0, _image822_size, 0, 0, 0, 0}, + { 0, 0, _image823_size, 0, 0, 0, 0}, + { 0, 0, _image824_size, 0, 0, 0, 0}, + { 0, 0, _image825_size, 0, 0, 0, 0}, + { 0, 0, _image826_size, 0, 0, 0, 0}, + { 0, 0, _image827_size, 0, 0, 0, 0}, + { 0, 0, _image828_size, 0, 0, 0, 0}, + { 0, 0, _image829_size, 0, 0, 0, 0}, + { 0, 0, _image830_size, 0, 0, 0, 0}, + { 0, 0, _image831_size, 0, 0, 0, 0}, + { 0, 0, _image832_size, 0, 0, 0, 0}, + { 0, 0, _image833_size, 0, 0, 0, 0}, + { 0, 0, _image834_size, 0, 0, 0, 0}, + { 0, 0, _image835_size, 0, 0, 0, 0}, + { 0, 0, _image836_size, 0, 0, 0, 0}, + {0xAA, 0, _image837_size, 0, 0, 0, 0}, + { 0, 0, _image838_size, 0, 0, 0, 0}, + { 0, 0, _image839_size, 0, 0, 0, 0}, + { 0, 0, _image840_size, 0, 0, 0, 0}, + { 0, 0, _image841_size, 0, 0, 0, 0}, + { 0, 0, _image842_size, 0, 0, 0, 0}, + {0xAA, 0, _image843_size, 0, 0, 0, 0}, + {0xAA, 0, _image844_size, 0, 0, 0, 0}, + {0xAA, 0, _image845_size, 0, 0, 0, 0}, + {0x33, 0, _image846_size, 0, 0, 0, 0}, + {0x33, 0, _image847_size, 0, 0, 0, 0}, + {0x33, 0, _image848_size, 0, 0, 0, 0}, + {0x33, 0, _image849_size, 0, 0, 0, 0}, + { 0, 0, _image850_size, 0, 0, 0, 0}, + { 0, 0, _image851_size, 0, 0, 0, 0}, + { 0, 0, _image852_size, 0, 0, 0, 0}, + { 0, 0, _image853_size, 0, 0, 0, 0}, + { 0, 0, _image854_size, 0, 0, 0, 0}, + { 0, 0, _image855_size, 0, 0, 0, 0}, + { 0, 0, _image856_size, 0, 0, 0, 0}, + {0x44, 0, _image857_size, 0, 0, 0, 0}, + {0xAA, 0, _image858_size, 0, 0, 0, 0}, + {0xAA, 0, _image859_size, 0, 0, 0, 0}, + {0x33, 0, _image860_size, 0, 0, 0, 0}, + {0x33, 0, _image861_size, 0, 0, 0, 0}, + {0x33, 0, _image862_size, 0, 0, 0, 0}, + {0x33, 0, _image863_size, 0, 0, 0, 0}, + { 0, 0, _image864_size, 0, 0, 0, 0}, + {0x44, 0, _image865_size, 0, 0, 0, 0}, + {0x44, 0, _image866_size, 0, 0, 0, 0}, + {0x22, 0, _image867_size, 0, 0, 0, 0}, + {0x99, 0, _image868_size, 0, 0, 0, 0}, + {0x99, 0, _image869_size, 0, 0, 0, 0}, + {0xAA, 0, _image870_size, 0, 0, 0, 0}, + { 0, 0, _image871_size, 0, 0, 0, 0}, + { 0, 0, _image872_size, 0, 0, 0, 0}, + { 0, 0, _image873_size, 0, 0, 0, 0}, + { 0, 0, _image874_size, 0, 0, 0, 0}, + { 0, 0, _image875_size, 0, 0, 0, 0}, + { 0, 0, _image876_size, 0, 0, 0, 0}, + { 0, 0, _image877_size, 0, 0, 0, 0}, + { 0, 0, _image878_size, 0, 0, 0, 0}, + { 0, 0, _image879_size, 0, 0, 0, 0}, + { 0, 0, _image880_size, 0, 0, 0, 0}, + { 0, 0, _image881_size, 0, 0, 0, 0}, + { 0, 0, _image882_size, 0, 0, 0, 0}, + { 0, 0, _image883_size, 0, 0, 0, 0}, + { 0, 0, _image884_size, 0, 0, 0, 0}, + { 0, 0, _image885_size, 0, 0, 0, 0}, + { 0, 0, _image886_size, 0, 0, 0, 0}, + { 0, 0, _image887_size, 0, 0, 0, 0}, + { 0, 0, _image888_size, 0, 0, 0, 0}, + {0x33, 0, _image889_size, 0, 0, 0, 0}, + {0xAA, 0, _image890_size, 0, 0, 0, 0}, + {0xAA, 0, _image891_size, 0, 0, 0, 0}, + {0xAA, 0, _image892_size, 0, 0, 0, 0}, + {0xAA, 0, _image893_size, 0, 0, 0, 0}, + {0xAA, 0, _image894_size, 0, 0, 0, 0}, + {0xAA, 0, _image895_size, 0, 0, 0, 0}, + { 0, 0, _image896_size, 0, 0, 0, 0}, + { 0, 0, _image897_size, 0, 0, 0, 0}, + { 0, 0, _image898_size, 0, 0, 0, 0}, + { 0, 0, _image899_size, 0, 0, 0, 0}, + { 0, 0, _image900_size, 0, 0, 0, 0}, + {0x99, 0, _image901_size, 0, 0, 0, 0}, + {0x99, 0, _image902_size, 0, 0, 0, 0}, + {0x99, 0, _image903_size, 0, 0, 0, 0}, + {0x99, 0, _image904_size, 0, 0, 0, 0}, + { 0, 0, _image905_size, 0, 0, 0, 0}, + { 0, 0, _image906_size, 0, 0, 0, 0}, + { 0, 0, _image907_size, 0, 0, 0, 0}, + { 0, 0, _image908_size, 0, 0, 0, 0}, + { 0, 0, _image909_size, 0, 0, 0, 0}, + {0x33, 0, _image910_size, 0, 0, 0, 0}, + {0x33, 0, _image911_size, 0, 0, 0, 0}, + {0x33, 0, _image912_size, 0, 0, 0, 0}, + {0x33, 0, _image913_size, 0, 0, 0, 0}, + {0x33, 0, _image914_size, 0, 0, 0, 0}, + {0x33, 0, _image915_size, 0, 0, 0, 0}, + {0x33, 0, _image916_size, 0, 0, 0, 0}, + {0x33, 0, _image917_size, 0, 0, 0, 0}, + {0x33, 0, _image918_size, 0, 0, 0, 0}, + {0x33, 0, _image919_size, 0, 0, 0, 0}, + {0xAA, 0, _image920_size, 0, 0, 0, 0}, + {0x33, 0, _image921_size, 0, 0, 0, 0}, + {0x33, 0, _image922_size, 0, 0, 0, 0}, + {0x33, 0, _image923_size, 0, 0, 0, 0}, + {0x33, 0, _image924_size, 0, 0, 0, 0}, + { 0, 0, _image925_size, 0, 0, 0, 0}, + { 0, 0, _image926_size, 0, 0, 0, 0}, + { 0, 0, _image927_size, 0, 0, 0, 0}, + { 0, 0, _image928_size, 0, 0, 0, 0}, + { 0, 0, _image929_size, 0, 0, 0, 0}, + { 0, 0, _image930_size, 0, 0, 0, 0}, + { 0, 0, _image931_size, 0, 0, 0, 0}, + { 0, 0, _image932_size, 0, 0, 0, 0}, + { 0, 0, _image933_size, 0, 0, 0, 0}, + { 0, 0, _image934_size, 0, 0, 0, 0}, + { 0, 0, _image935_size, 0, 0, 0, 0}, + { 0, 0, _image936_size, 0, 0, 0, 0}, + { 0, 0, _image937_size, 0, 0, 0, 0}, + { 0, 0, _image938_size, 0, 0, 0, 0}, + { 0, 0, _image939_size, 0, 0, 0, 0}, + { 0, 0, _image940_size, 0, 0, 0, 0}, + { 0, 0, _image941_size, 0, 0, 0, 0}, + { 0, 0, _image942_size, 0, 0, 0, 0}, + { 0, 0, _image943_size, 0, 0, 0, 0}, + { 0, 0, _image944_size, 0, 0, 0, 0}, + { 0, 0, _image945_size, 0, 0, 0, 0}, + { 0, 0, _image946_size, 0, 0, 0, 0}, + { 0, 0, _image947_size, 0, 0, 0, 0}, + { 0, 0, _image948_size, 0, 0, 0, 0}, + { 0, 0, _image949_size, 0, 0, 0, 0}, + { 0, 0, _image950_size, 0, 0, 0, 0}, + { 0, 0, _image951_size, 0, 0, 0, 0}, + { 0, 0, _image952_size, 0, 0, 0, 0}, + { 0, 0, _image953_size, 0, 0, 0, 0}, + { 0, 0, _image954_size, 0, 0, 0, 0}, + { 0, 0, _image955_size, 0, 0, 0, 0}, + { 0, 0, _image956_size, 0, 0, 0, 0}, + { 0, 0, _image957_size, 0, 0, 0, 0}, + { 0, 0, _image958_size, 0, 0, 0, 0}, + { 0, 0, _image959_size, 0, 0, 0, 0}, + {0x77, 0, _image960_size, 0, 0, 0, 0}, + {0x77, 0, _image961_size, 0, 0, 0, 0}, + {0x11, 0, _image962_size, 0, 0, 0, 0}, + {0x11, 0, _image963_size, 0, 0, 0, 0}, + {0x11, 0, _image964_size, 0, 0, 0, 0}, + {0x11, 0, _image965_size, 0, 0, 0, 0}, + {0x11, 0, _image966_size, 0, 0, 0, 0}, + {0x11, 0, _image967_size, 0, 0, 0, 0}, + {0x11, 0, _image968_size, 0, 0, 0, 0}, + {0x11, 0, _image969_size, 0, 0, 0, 0}, + {0x77, 0, _image970_size, 0, 0, 0, 0}, + {0x77, 0, _image971_size, 0, 0, 0, 0}, + {0x77, 0, _image972_size, 0, 0, 0, 0}, + {0x77, 0, _image973_size, 0, 0, 0, 0}, + {0x77, 0, _image974_size, 0, 0, 0, 0}, + {0x77, 0, _image975_size, 0, 0, 0, 0}, + {0x77, 0, _image976_size, 0, 0, 0, 0}, + {0x77, 0, _image977_size, 0, 0, 0, 0}, + {0x77, 0, _image978_size, 0, 0, 0, 0}, + {0x77, 0, _image979_size, 0, 0, 0, 0}, + {0x77, 0, _image980_size, 0, 0, 0, 0}, + {0x77, 0, _image981_size, 0, 0, 0, 0}, + {0x77, 0, _image982_size, 0, 0, 0, 0}, + { 0, 0, _image983_size, 0, 0, 0, 0}, + {0xAA, 0, _image984_size, 0, 0, 0, 0}, + {0xAA, 0, _image985_size, 0, 0, 0, 0}, + { 0, 0, _image986_size, 0, 0, 0, 0}, + { 0, 0, _image987_size, 0, 0, 0, 0}, + { 0, 0, _image988_size, 0, 0, 0, 0}, + { 0, 0, _image989_size, 0, 0, 0, 0}, + { 0, 0, _image990_size, 0, 0, 0, 0}, + { 0, 0, _image991_size, 0, 0, 0, 0}, + { 0, 0, _image992_size, 0, 0, 0, 0}, + { 0, 0, _image993_size, 0, 0, 0, 0}, + { 0, 0, _image994_size, 0, 0, 0, 0}, + { 0, 0, _image995_size, 0, 0, 0, 0}, + { 0, 0, _image996_size, 0, 0, 0, 0}, + { 0, 0, _image997_size, 0, 0, 0, 0}, + { 0, 0, _image998_size, 0, 0, 0, 0}, + { 0, 0, _image999_size, 0, 0, 0, 0}, + {0x33, 0, _image1000_size, 0, 0, 0, 0}, + {0x33, 0, _image1001_size, 0, 0, 0, 0}, + {0x33, 0, _image1002_size, 0, 0, 0, 0}, + {0x33, 0, _image1003_size, 0, 0, 0, 0}, + {0x33, 0, _image1004_size, 0, 0, 0, 0}, + { 0, 0, _image1005_size, 0, 0, 0, 0}, + { 0, 0, _image1006_size, 0, 0, 0, 0}, + { 0, 0, _image1007_size, 0, 0, 0, 0}, + { 0, 0, _image1008_size, 0, 0, 0, 0}, + { 0, 0, _image1009_size, 0, 0, 0, 0}, + {0x77, 0, _image1010_size, 0, 0, 0, 0}, + {0x77, 0, _image1011_size, 0, 0, 0, 0}, + {0xAA, 0, _image1012_size, 0, 0, 0, 0}, + {0xAA, 0, _image1013_size, 0, 0, 0, 0}, + {0xAA, 0, _image1014_size, 0, 0, 0, 0}, + { 0, 0, _image1015_size, 0, 0, 0, 0}, + { 0, 0, _image1016_size, 0, 0, 0, 0}, + {0x33, 0, _image1017_size, 0, 0, 0, 0}, + {0x33, 0, _image1018_size, 0, 0, 0, 0}, + {0x33, 0, _image1019_size, 0, 0, 0, 0}, + {0x77, 0, _image1020_size, 0, 0, 0, 0}, + { 0, 0, _image1021_size, 0, 0, 0, 0}, + {0xAA, 0, _image1022_size, 0, 0, 0, 0}, + {0x11, 0, _image1023_size, 0, 0, 0, 0}, + {0x22, 0, _image1024_size, 0, 0, 0, 0}, + {0x22, 0, _image1025_size, 0, 0, 0, 0}, + { 0, 0, _image1026_size, 0, 0, 0, 0}, + {0xAA, 0, _image1027_size, 0, 0, 0, 0}, + { 0, 0, _image1028_size, 0, 0, 0, 0}, + { 0, 0, _image1029_size, 0, 0, 0, 0}, + { 0, 0, _image1030_size, 0, 0, 0, 0}, + { 0, 0, _image1031_size, 0, 0, 0, 0}, + {0xAA, 0, _image1032_size, 0, 0, 0, 0}, + { 0, 0, _image1033_size, 0, 0, 0, 0}, + { 0, 0, _image1034_size, 0, 0, 0, 0}, + { 0, 0, _image1035_size, 0, 0, 0, 0}, + { 0, 0, _image1036_size, 0, 0, 0, 0}, + { 0, 0, _image1037_size, 0, 0, 0, 0}, + { 0, 0, _image1038_size, 0, 0, 0, 0}, + { 0, 0, _image1039_size, 0, 0, 0, 0}, + { 0, 0, _image1040_size, 0, 0, 0, 0}, + { 0, 0, _image1041_size, 0, 0, 0, 0}, + { 0, 0, _image1042_size, 0, 0, 0, 0}, + { 0, 0, _image1043_size, 0, 0, 0, 0}, + { 0, 0, _image1044_size, 0, 0, 0, 0}, + { 0, 0, _image1045_size, 0, 0, 0, 0}, + { 0, 0, _image1046_size, 0, 0, 0, 0}, + { 0, 0, _image1047_size, 0, 0, 0, 0}, + { 0, 0, _image1048_size, 0, 0, 0, 0}, + {0x11, 0, _image1049_size, 0, 0, 0, 0}, + { 0, 0, _image1050_size, 0, 0, 0, 0}, + { 0, 0, _image1051_size, 0, 0, 0, 0}, + { 0, 0, _image1052_size, 0, 0, 0, 0}, + { 0, 0, _image1053_size, 0, 0, 0, 0}, + { 0, 0, _image1054_size, 0, 0, 0, 0}, + { 0, 0, _image1055_size, 0, 0, 0, 0}, + { 0, 0, _image1056_size, 0, 0, 0, 0}, + { 0, 0, _image1057_size, 0, 0, 0, 0}, + { 0, 0, _image1058_size, 0, 0, 0, 0}, + { 0, 0, _image1059_size, 0, 0, 0, 0}, + { 0, 0, _image1060_size, 0, 0, 0, 0}, + { 0, 0, _image1061_size, 0, 0, 0, 0}, + { 0, 0, _image1062_size, 0, 0, 0, 0}, + {0xAA, 0, _image1063_size, 0, 0, 0, 0}, + {0xAA, 0, _image1064_size, 0, 0, 0, 0}, + {0xAA, 0, _image1065_size, 0, 0, 0, 0}, + {0xAA, 0, _image1066_size, 0, 0, 0, 0}, + { 0, 0, _image1067_size, 0, 0, 0, 0}, + { 0, 0, _image1068_size, 0, 0, 0, 0}, + {0xAA, 0, _image1069_size, 0, 0, 0, 0}, + {0xAA, 0, _image1070_size, 0, 0, 0, 0}, + {0xAA, 0, _image1071_size, 0, 0, 0, 0}, + {0xAA, 0, _image1072_size, 0, 0, 0, 0}, + {0xAA, 0, _image1073_size, 0, 0, 0, 0}, + {0xAA, 0, _image1074_size, 0, 0, 0, 0}, + {0xAA, 0, _image1075_size, 0, 0, 0, 0}, + {0xAA, 0, _image1076_size, 0, 0, 0, 0}, + {0xAA, 0, _image1077_size, 0, 0, 0, 0}, + {0x44, 0, _image1078_size, 0, 0, 0, 0}, + { 0, 0, _image1079_size, 0, 0, 0, 0}, + { 0, 0, _image1080_size, 0, 0, 0, 0}, + {0xAA, 0, _image1081_size, 0, 0, 0, 0}, + {0xAA, 0, _image1082_size, 0, 0, 0, 0}, + {0xAA, 0, _image1083_size, 0, 0, 0, 0}, + { 0, 0, _image1084_size, 0, 0, 0, 0}, + { 0, 0, _image1085_size, 0, 0, 0, 0}, + { 0, 0, _image1086_size, 0, 0, 0, 0}, + { 0, 0, _image1087_size, 0, 0, 0, 0}, + { 0, 0, _image1088_size, 0, 0, 0, 0}, + { 0, 0, _image1089_size, 0, 0, 0, 0}, + { 0, 0, _image1090_size, 0, 0, 0, 0}, + {0xAA, 0, _image1091_size, 0, 0, 0, 0}, + {0x33, 0, _image1092_size, 0, 0, 0, 0}, + {0x33, 0, _image1093_size, 0, 0, 0, 0}, + {0x33, 0, _image1094_size, 0, 0, 0, 0}, + {0x33, 0, _image1095_size, 0, 0, 0, 0}, + {0x33, 0, _image1096_size, 0, 0, 0, 0}, + {0x33, 0, _image1097_size, 0, 0, 0, 0}, + {0x33, 0, _image1098_size, 0, 0, 0, 0}, + {0x33, 0, _image1099_size, 0, 0, 0, 0}, + {0x33, 0, _image1100_size, 0, 0, 0, 0}, + {0x33, 0, _image1101_size, 0, 0, 0, 0}, + {0x33, 0, _image1102_size, 0, 0, 0, 0}, + { 0, 0, _image1103_size, 0, 0, 0, 0}, + { 0, 0, _image1104_size, 0, 0, 0, 0}, + { 0, 0, _image1105_size, 0, 0, 0, 0}, + { 0, 0, _image1106_size, 0, 0, 0, 0}, + { 0, 0, _image1107_size, 0, 0, 0, 0}, + { 0, 0, _image1108_size, 0, 0, 0, 0}, + { 0, 0, _image1109_size, 0, 0, 0, 0}, + { 0, 0, _image1110_size, 0, 0, 0, 0}, + { 0, 0, _image1111_size, 0, 0, 0, 0}, + { 0, 0, _image1112_size, 0, 0, 0, 0}, + { 0, 0, _image1113_size, 0, 0, 0, 0}, + { 0, 0, _image1114_size, 0, 0, 0, 0}, + { 0, 0, _image1115_size, 0, 0, 0, 0}, + { 0, 0, _image1116_size, 0, 0, 0, 0}, + {0x33, 0, _image1117_size, 0, 0, 0, 0}, + {0x33, 0, _image1118_size, 0, 0, 0, 0}, + { 0, 0, _image1119_size, 0, 0, 0, 0}, + {0x77, 0, _image1120_size, 0, 0, 0, 0}, + {0x77, 0, _image1121_size, 0, 0, 0, 0}, + {0x77, 0, _image1122_size, 0, 0, 0, 0}, + {0x77, 0, _image1123_size, 0, 0, 0, 0}, + {0x77, 0, _image1124_size, 0, 0, 0, 0}, + {0x77, 0, _image1125_size, 0, 0, 0, 0}, + { 0, 0, _image1126_size, 0, 0, 0, 0}, + { 0, 0, _image1127_size, 0, 0, 0, 0}, + {0x77, 0, _image1128_size, 0, 0, 0, 0}, + {0x11, 0, _image1129_size, 0, 0, 0, 0}, + {0x11, 0, _image1130_size, 0, 0, 0, 0}, + { 0, 0, _image1131_size, 0, 0, 0, 0}, + { 0, 0, _image1132_size, 0, 0, 0, 0}, + { 0, 0, _image1133_size, 0, 0, 0, 0}, + {0x11, 0, _image1134_size, 0, 0, 0, 0}, + {0x11, 0, _image1135_size, 0, 0, 0, 0}, + {0x22, 0, _image1136_size, 0, 0, 0, 0}, + {0x22, 0, _image1137_size, 0, 0, 0, 0}, + {0x22, 0, _image1138_size, 0, 0, 0, 0}, + {0x33, 0, _image1139_size, 0, 0, 0, 0}, + {0x33, 0, _image1140_size, 0, 0, 0, 0}, + {0x33, 0, _image1141_size, 0, 0, 0, 0}, + { 0, 0, _image1142_size, 0, 0, 0, 0}, + { 0, 0, _image1143_size, 0, 0, 0, 0}, + { 0, 0, _image1144_size, 0, 0, 0, 0}, + { 0, 0, _image1145_size, 0, 0, 0, 0}, + { 0, 0, _image1146_size, 0, 0, 0, 0}, + {0x77, 0, _image1147_size, 0, 0, 0, 0}, + { 0, 0, _image1148_size, 0, 0, 0, 0}, + { 0, 0, _image1149_size, 0, 0, 0, 0}, + { 0, 0, _image1150_size, 0, 0, 0, 0}, + {0x33, 0, _image1151_size, 0, 0, 0, 0}, + {0x33, 0, _image1152_size, 0, 0, 0, 0}, + {0x33, 0, _image1153_size, 0, 0, 0, 0}, + { 0, 0, _image1154_size, 0, 0, 0, 0}, + { 0, 0, _image1155_size, 0, 0, 0, 0}, + {0x77, 0, _image1156_size, 0, 0, 0, 0}, + {0xAA, 0, _image1157_size, 0, 0, 0, 0}, + {0x66, 0, _image1158_size, 0, 0, 0, 0}, + {0xAA, 0, _image1159_size, 0, 0, 0, 0}, + {0xAA, 0, _image1160_size, 0, 0, 0, 0}, + {0xAA, 0, _image1161_size, 0, 0, 0, 0}, + {0xAA, 0, _image1162_size, 0, 0, 0, 0}, + {0xAA, 0, _image1163_size, 0, 0, 0, 0}, + {0xAA, 0, _image1164_size, 0, 0, 0, 0}, + {0xAA, 0, _image1165_size, 0, 0, 0, 0}, + { 0, 0, _image1166_size, 0, 0, 0, 0}, + {0xAA, 0, _image1167_size, 0, 0, 0, 0}, + {0xAA, 0, _image1168_size, 0, 0, 0, 0}, + {0xAA, 0, _image1169_size, 0, 0, 0, 0}, + { 0, 0, _image1170_size, 0, 0, 0, 0}, + {0xAA, 0, _image1171_size, 0, 0, 0, 0}, + {0xAA, 0, _image1172_size, 0, 0, 0, 0}, + { 0, 0, _image1173_size, 0, 0, 0, 0}, + {0x11, 0, _image1174_size, 0, 0, 0, 0}, + {0x11, 0, _image1175_size, 0, 0, 0, 0}, + {0x11, 0, _image1176_size, 0, 0, 0, 0}, + {0x33, 0, _image1177_size, 0, 0, 0, 0}, + {0x33, 0, _image1178_size, 0, 0, 0, 0}, + {0x33, 0, _image1179_size, 0, 0, 0, 0}, + {0x33, 0, _image1180_size, 0, 0, 0, 0}, + {0x33, 0, _image1181_size, 0, 0, 0, 0}, + {0x33, 0, _image1182_size, 0, 0, 0, 0}, + {0x33, 0, _image1183_size, 0, 0, 0, 0}, + {0x33, 0, _image1184_size, 0, 0, 0, 0}, + { 0, 0, _image1185_size, 0, 0, 0, 0}, + { 0, 0, _image1186_size, 0, 0, 0, 0}, + { 0, 0, _image1187_size, 0, 0, 0, 0}, + { 0, 0, _image1188_size, 0, 0, 0, 0}, + { 0, 0, _image1189_size, 0, 0, 0, 0}, + { 0, 0, _image1190_size, 0, 0, 0, 0}, + { 0, 0, _image1191_size, 0, 0, 0, 0}, + {0xAA, 0, _image1192_size, 0, 0, 0, 0}, + { 0, 0, _image1193_size, 0, 0, 0, 0}, + {0xAA, 0, _image1194_size, 0, 0, 0, 0}, + {0x33, 0, _image1195_size, 0, 0, 0, 0}, + {0xAA, 0, _image1196_size, 0, 0, 0, 0}, + { 0, 0, _image1197_size, 0, 0, 0, 0}, + {0x33, 0, _image1198_size, 0, 0, 0, 0}, + { 0, 0, _image1199_size, 0, 0, 0, 0}, + { 0, 0, _image1200_size, 0, 0, 0, 0}, + { 0, 0, _image1201_size, 0, 0, 0, 0}, + { 0, 0, _image1202_size, 0, 0, 0, 0}, + {0x33, 0, _image1203_size, 0, 0, 0, 0}, + {0x22, 0, _image1204_size, 0, 0, 0, 0}, + {0x22, 0, _image1205_size, 0, 0, 0, 0}, + {0x22, 0, _image1206_size, 0, 0, 0, 0}, + { 0, 0, _image1207_size, 0, 0, 0, 0}, + { 0, 0, _image1208_size, 0, 0, 0, 0}, + { 0, 0, _image1209_size, 0, 0, 0, 0}, + { 0, 0, _image1210_size, 0, 0, 0, 0}, + { 0, 0, _image1211_size, 0, 0, 0, 0}, + { 0, 0, _image1212_size, 0, 0, 0, 0}, + { 0, 0, _image1213_size, 0, 0, 0, 0}, + { 0, 0, _image1214_size, 0, 0, 0, 0}, + {0xAA, 0, _image1215_size, 0, 0, 0, 0}, + {0x22, 0, _image1216_size, 0, 0, 0, 0}, + {0x22, 0, _image1217_size, 0, 0, 0, 0}, + { 0, 0, _image1218_size, 0, 0, 0, 0}, + { 0, 0, _image1219_size, 0, 0, 0, 0}, + { 0, 0, _image1220_size, 0, 0, 0, 0}, + {0x33, 0, _image1221_size, 0, 0, 0, 0}, + { 0, 0, _image1222_size, 0, 0, 0, 0}, + { 0, 0, _image1223_size, 0, 0, 0, 0}, + { 0, 0, _image1224_size, 0, 0, 0, 0}, + { 0, 0, _image1225_size, 0, 0, 0, 0}, + { 0, 0, _image1226_size, 0, 0, 0, 0}, + { 0, 0, _image1227_size, 0, 0, 0, 0}, + { 0, 0, _image1228_size, 0, 0, 0, 0}, + { 0, 0, _image1229_size, 0, 0, 0, 0}, + { 0, 0, _image1230_size, 0, 0, 0, 0}, + {0x33, 0, _image1231_size, 0, 0, 0, 0}, + {0x33, 0, _image1232_size, 0, 0, 0, 0}, + {0x33, 0, _image1233_size, 0, 0, 0, 0}, + {0x33, 0, _image1234_size, 0, 0, 0, 0}, + {0x33, 0, _image1235_size, 0, 0, 0, 0}, + {0x33, 0, _image1236_size, 0, 0, 0, 0}, + {0x33, 0, _image1237_size, 0, 0, 0, 0}, + {0x33, 0, _image1238_size, 0, 0, 0, 0}, + {0x33, 0, _image1239_size, 0, 0, 0, 0}, + {0x33, 0, _image1240_size, 0, 0, 0, 0}, + {0x33, 0, _image1241_size, 0, 0, 0, 0}, + {0x33, 0, _image1242_size, 0, 0, 0, 0}, + {0xAA, 0, _image1243_size, 0, 0, 0, 0}, + {0x33, 0, _image1244_size, 0, 0, 0, 0}, + {0x33, 0, _image1245_size, 0, 0, 0, 0}, + {0x33, 0, _image1246_size, 0, 0, 0, 0}, + {0x33, 0, _image1247_size, 0, 0, 0, 0}, + { 0, 0, _image1248_size, 0, 0, 0, 0}, + {0x33, 0, _image1249_size, 0, 0, 0, 0}, + { 0, 0, _image1250_size, 0, 0, 0, 0}, + { 0, 0, _image1251_size, 0, 0, 0, 0}, + { 0, 0, _image1252_size, 0, 0, 0, 0}, + { 0, 0, _image1253_size, 0, 0, 0, 0}, + { 0, 0, _image1254_size, 0, 0, 0, 0}, + { 0, 0, _image1255_size, 0, 0, 0, 0}, + { 0, 0, _image1256_size, 0, 0, 0, 0}, + {0x22, 0, _image1257_size, 0, 0, 0, 0}, + { 0, 0, _image1258_size, 0, 0, 0, 0}, + { 0, 0, _image1259_size, 0, 0, 0, 0}, + { 0, 0, _image1260_size, 0, 0, 0, 0}, + {0x44, 0, _image1261_size, 0, 0, 0, 0}, + {0x22, 0, _image1262_size, 0, 0, 0, 0}, + {0xAA, 0, _image1263_size, 0, 0, 0, 0}, + {0x11, 0, _image1264_size, 0, 0, 0, 0}, + {0x11, 0, _image1265_size, 0, 0, 0, 0}, + {0x11, 0, _image1266_size, 0, 0, 0, 0}, + {0x11, 0, _image1267_size, 0, 0, 0, 0}, + {0x11, 0, _image1268_size, 0, 0, 0, 0}, + { 0, 0, _image1269_size, 0, 0, 0, 0}, + {0xAA, 0, _image1270_size, 0, 0, 0, 0}, + { 0, 0, _image1271_size, 0, 0, 0, 0}, + { 0, 0, _image1272_size, 0, 0, 0, 0}, + { 0, 0, _image1273_size, 0, 0, 0, 0}, + { 0, 0, _image1274_size, 0, 0, 0, 0}, + { 0, 0, _image1275_size, 0, 0, 0, 0}, + { 0, 0, _image1276_size, 0, 0, 0, 0}, + { 0, 0, _image1277_size, 0, 0, 0, 0}, + { 0, 0, _image1278_size, 0, 0, 0, 0}, + { 0, 0, _image1279_size, 0, 0, 0, 0}, + { 0, 0, _image1280_size, 0, 0, 0, 0}, + {0x11, 0, _image1281_size, 0, 0, 0, 0}, + {0x22, 0, _image1282_size, 0, 0, 0, 0}, + {0x22, 0, _image1283_size, 0, 0, 0, 0}, + { 0, 0, _image1284_size, 0, 0, 0, 0}, + { 0, 0, _image1285_size, 0, 0, 0, 0}, + {0x11, 0, _image1286_size, 0, 0, 0, 0}, + {0x11, 0, _image1287_size, 0, 0, 0, 0}, + {0x11, 0, _image1288_size, 0, 0, 0, 0}, + {0x11, 0, _image1289_size, 0, 0, 0, 0}, + {0x11, 0, _image1290_size, 0, 0, 0, 0}, + {0x11, 0, _image1291_size, 0, 0, 0, 0}, + {0x11, 0, _image1292_size, 0, 0, 0, 0}, + {0x11, 0, _image1293_size, 0, 0, 0, 0}, + {0x11, 0, _image1294_size, 0, 0, 0, 0}, + {0x11, 0, _image1295_size, 0, 0, 0, 0}, + {0x11, 0, _image1296_size, 0, 0, 0, 0}, + {0x11, 0, _image1297_size, 0, 0, 0, 0}, + {0x11, 0, _image1298_size, 0, 0, 0, 0}, + {0x11, 0, _image1299_size, 0, 0, 0, 0}, + {0x11, 0, _image1300_size, 0, 0, 0, 0}, + {0x11, 0, _image1301_size, 0, 0, 0, 0}, + {0x11, 0, _image1302_size, 0, 0, 0, 0}, + {0x11, 0, _image1303_size, 0, 0, 0, 0}, + {0x11, 0, _image1304_size, 0, 0, 0, 0}, + {0x11, 0, _image1305_size, 0, 0, 0, 0}, + {0x11, 0, _image1306_size, 0, 0, 0, 0}, + {0x11, 0, _image1307_size, 0, 0, 0, 0}, + {0x11, 0, _image1308_size, 0, 0, 0, 0}, + {0x11, 0, _image1309_size, 0, 0, 0, 0}, + {0x11, 0, _image1310_size, 0, 0, 0, 0}, + {0x11, 0, _image1311_size, 0, 0, 0, 0}, + {0x11, 0, _image1312_size, 0, 0, 0, 0}, + {0x11, 0, _image1313_size, 0, 0, 0, 0}, + {0x11, 0, _image1314_size, 0, 0, 0, 0}, + {0x11, 0, _image1315_size, 0, 0, 0, 0}, + {0x11, 0, _image1316_size, 0, 0, 0, 0}, + {0x11, 0, _image1317_size, 0, 0, 0, 0}, + {0x11, 0, _image1318_size, 0, 0, 0, 0}, + {0x11, 0, _image1319_size, 0, 0, 0, 0}, + {0x11, 0, _image1320_size, 0, 0, 0, 0}, + {0x11, 0, _image1321_size, 0, 0, 0, 0}, + {0x11, 0, _image1322_size, 0, 0, 0, 0}, + {0x11, 0, _image1323_size, 0, 0, 0, 0}, + {0x11, 0, _image1324_size, 0, 0, 0, 0}, + {0x11, 0, _image1325_size, 0, 0, 0, 0}, + {0x11, 0, _image1326_size, 0, 0, 0, 0}, + {0x11, 0, _image1327_size, 0, 0, 0, 0}, + {0x11, 0, _image1328_size, 0, 0, 0, 0}, + {0x11, 0, _image1329_size, 0, 0, 0, 0}, + {0x11, 0, _image1330_size, 0, 0, 0, 0}, + {0x11, 0, _image1331_size, 0, 0, 0, 0}, + {0x11, 0, _image1332_size, 0, 0, 0, 0}, + {0x11, 0, _image1333_size, 0, 0, 0, 0}, + {0x11, 0, _image1334_size, 0, 0, 0, 0}, + {0x11, 0, _image1335_size, 0, 0, 0, 0}, + {0x11, 0, _image1336_size, 0, 0, 0, 0}, + {0x11, 0, _image1337_size, 0, 0, 0, 0}, + {0x11, 0, _image1338_size, 0, 0, 0, 0}, + {0x11, 0, _image1339_size, 0, 0, 0, 0}, + {0x11, 0, _image1340_size, 0, 0, 0, 0}, + {0x11, 0, _image1341_size, 0, 0, 0, 0}, + {0x11, 0, _image1342_size, 0, 0, 0, 0}, + {0x11, 0, _image1343_size, 0, 0, 0, 0}, + {0x11, 0, _image1344_size, 0, 0, 0, 0}, + {0x11, 0, _image1345_size, 0, 0, 0, 0}, + {0x11, 0, _image1346_size, 0, 0, 0, 0}, + {0x11, 0, _image1347_size, 0, 0, 0, 0}, + {0x11, 0, _image1348_size, 0, 0, 0, 0}, + {0x11, 0, _image1349_size, 0, 0, 0, 0}, + {0x11, 0, _image1350_size, 0, 0, 0, 0}, + {0x11, 0, _image1351_size, 0, 0, 0, 0}, + {0x11, 0, _image1352_size, 0, 0, 0, 0}, + {0x11, 0, _image1353_size, 0, 0, 0, 0}, + {0x11, 0, _image1354_size, 0, 0, 0, 0}, + {0x11, 0, _image1355_size, 0, 0, 0, 0}, + {0x11, 0, _image1356_size, 0, 0, 0, 0}, + { 0, 0, _image1357_size, 0, 0, 0, 0}, + { 0, 0, _image1358_size, 0, 0, 0, 0}, + {0x11, 0, _image1359_size, 0, 0, 0, 0}, + {0x11, 0, _image1360_size, 0, 0, 0, 0}, + {0x11, 0, _image1361_size, 0, 0, 0, 0}, + {0x11, 0, _image1362_size, 0, 0, 0, 0}, + {0x11, 0, _image1363_size, 0, 0, 0, 0}, + {0x11, 0, _image1364_size, 0, 0, 0, 0}, + {0x11, 0, _image1365_size, 0, 0, 0, 0}, + { 0, 0, _image1366_size, 0, 0, 0, 0}, + { 0, 0, _image1367_size, 0, 0, 0, 0}, + {0x33, 0, _image1368_size, 0, 0, 0, 0}, + {0x33, 0, _image1369_size, 0, 0, 0, 0}, + {0x33, 0, _image1370_size, 0, 0, 0, 0}, + { 0, 0, _image1371_size, 0, 0, 0, 0}, + { 0, 0, _image1372_size, 0, 0, 0, 0}, + { 0, 0, _image1373_size, 0, 0, 0, 0}, + {0xAA, 0, _image1374_size, 0, 0, 0, 0}, + {0xAA, 0, _image1375_size, 0, 0, 0, 0}, + {0x33, 0, _image1376_size, 0, 0, 0, 0}, + {0x33, 0, _image1377_size, 0, 0, 0, 0}, + { 0, 0, _image1378_size, 0, 0, 0, 0}, + { 0, 0, _image1379_size, 0, 0, 0, 0}, + { 0, 0, _image1380_size, 0, 0, 0, 0}, + { 0, 0, _image1381_size, 0, 0, 0, 0}, + { 0, 0, _image1382_size, 0, 0, 0, 0}, + { 0, 0, _image1383_size, 0, 0, 0, 0}, + {0x44, 0, _image1384_size, 0, 0, 0, 0}, + { 0, 0, _image1385_size, 0, 0, 0, 0}, + {0xAA, 0, _image1386_size, 0, 0, 0, 0}, + {0xAA, 0, _image1387_size, 0, 0, 0, 0}, + {0xAA, 0, _image1388_size, 0, 0, 0, 0}, + { 0, 0, _image1389_size, 0, 0, 0, 0}, + { 0, 0, _image1390_size, 0, 0, 0, 0}, + { 0, 0, _image1391_size, 0, 0, 0, 0}, + { 0, 0, _image1392_size, 0, 0, 0, 0}, + { 0, 0, _image1393_size, 0, 0, 0, 0}, + { 0, 0, _image1394_size, 0, 0, 0, 0}, + { 0, 0, _image1395_size, 0, 0, 0, 0}, + { 0, 0, _image1396_size, 0, 0, 0, 0}, + { 0, 0, _image1397_size, 0, 0, 0, 0}, + { 0, 0, _image1398_size, 0, 0, 0, 0}, + { 0, 0, _image1399_size, 0, 0, 0, 0}, + { 0, 0, _image1400_size, 0, 0, 0, 0}, + { 0, 0, _image1401_size, 0, 0, 0, 0}, + { 0, 0, _image1402_size, 0, 0, 0, 0}, + { 0, 0, _image1403_size, 0, 0, 0, 0}, + { 0, 0, _image1404_size, 0, 0, 0, 0}, + { 0, 0, _image1405_size, 0, 0, 0, 0}, + { 0, 0, _image1406_size, 0, 0, 0, 0}, + { 0, 0, _image1407_size, 0, 0, 0, 0}, + { 0, 0, _image1408_size, 0, 0, 0, 0}, + { 0, 0, _image1409_size, 0, 0, 0, 0}, + { 0, 0, _image1410_size, 0, 0, 0, 0}, + { 0, 0, _image1411_size, 0, 0, 0, 0}, + { 0, 0, _image1412_size, 0, 0, 0, 0}, + { 0, 0, _image1413_size, 0, 0, 0, 0}, + { 0, 0, _image1414_size, 0, 0, 0, 0}, + { 0, 0, _image1415_size, 0, 0, 0, 0}, + { 0, 0, _image1416_size, 0, 0, 0, 0}, + { 0, 0, _image1417_size, 0, 0, 0, 0}, + { 0, 0, _image1418_size, 0, 0, 0, 0}, + {0x99, 0, _image1419_size, 0, 0, 0, 0}, + {0xAA, 0, _image1420_size, 0, 0, 0, 0}, + {0xAA, 0, _image1421_size, 0, 0, 0, 0}, + { 0, 0, _image1422_size, 0, 0, 0, 0}, + { 0, 0, _image1423_size, 0, 0, 0, 0}, + { 0, 0, _image1424_size, 0, 0, 0, 0}, + { 0, 0, _image1425_size, 0, 0, 0, 0}, + { 0, 0, _image1426_size, 0, 0, 0, 0}, + {0x33, 0, _image1427_size, 0, 0, 0, 0}, + { 0, 0, _image1428_size, 0, 0, 0, 0}, + { 0, 0, _image1429_size, 0, 0, 0, 0}, + { 0, 0, _image1430_size, 0, 0, 0, 0}, + {0x33, 0, _image1431_size, 0, 0, 0, 0}, + {0x33, 0, _image1432_size, 0, 0, 0, 0}, + {0x33, 0, _image1433_size, 0, 0, 0, 0}, + {0x33, 0, _image1434_size, 0, 0, 0, 0}, + {0x33, 0, _image1435_size, 0, 0, 0, 0}, + {0x44, 0, _image1436_size, 0, 0, 0, 0}, + {0x44, 0, _image1437_size, 0, 0, 0, 0}, + { 0, 0, _image1438_size, 0, 0, 0, 0}, + {0x33, 0, _image1439_size, 0, 0, 0, 0}, + {0x22, 0, _image1440_size, 0, 0, 0, 0}, + {0xAA, 0, _image1441_size, 0, 0, 0, 0}, + { 0, 0, _image1442_size, 0, 0, 0, 0}, + { 0, 0, _image1443_size, 0, 0, 0, 0}, + { 0, 0, _image1444_size, 0, 0, 0, 0}, + { 0, 0, _image1445_size, 0, 0, 0, 0}, + { 0, 0, _image1446_size, 0, 0, 0, 0}, + { 0, 0, _image1447_size, 0, 0, 0, 0}, + { 0, 0, _image1448_size, 0, 0, 0, 0}, + {0xAA, 0, _image1449_size, 0, 0, 0, 0}, + {0x44, 0, _image1450_size, 0, 0, 0, 0}, + {0xAA, 0, _image1451_size, 0, 0, 0, 0}, + {0xAA, 0, _image1452_size, 0, 0, 0, 0}, + {0xAA, 0, _image1453_size, 0, 0, 0, 0}, + {0xAA, 0, _image1454_size, 0, 0, 0, 0}, + {0xAA, 0, _image1455_size, 0, 0, 0, 0}, + { 0, 0, _image1456_size, 0, 0, 0, 0}, + { 0, 0, _image1457_size, 0, 0, 0, 0}, + { 0, 0, _image1458_size, 0, 0, 0, 0}, + { 0, 0, _image1459_size, 0, 0, 0, 0}, + { 0, 0, _image1460_size, 0, 0, 0, 0}, + {0xAA, 0, _image1461_size, 0, 0, 0, 0}, + {0x33, 0, _image1462_size, 0, 0, 0, 0}, + {0x33, 0, _image1463_size, 0, 0, 0, 0}, + {0x33, 0, _image1464_size, 0, 0, 0, 0}, + {0x33, 0, _image1465_size, 0, 0, 0, 0}, + {0x33, 0, _image1466_size, 0, 0, 0, 0}, + { 0, 0, _image1467_size, 0, 0, 0, 0}, + {0x33, 0, _image1468_size, 0, 0, 0, 0}, + {0x11, 0, _image1469_size, 0, 0, 0, 0}, + {0x11, 0, _image1470_size, 0, 0, 0, 0}, + {0x33, 0, _image1471_size, 0, 0, 0, 0}, + { 0, 0, _image1472_size, 0, 0, 0, 0}, + { 0, 0, _image1473_size, 0, 0, 0, 0}, + {0xAA, 0, _image1474_size, 0, 0, 0, 0}, + {0xAA, 0, _image1475_size, 0, 0, 0, 0}, + {0x11, 0, _image1476_size, 0, 0, 0, 0}, + {0x11, 0, _image1477_size, 0, 0, 0, 0}, + {0x11, 0, _image1478_size, 0, 0, 0, 0}, + {0x11, 0, _image1479_size, 0, 0, 0, 0}, + {0x11, 0, _image1480_size, 0, 0, 0, 0}, + { 0, 0, _image1481_size, 0, 0, 0, 0}, + { 0, 0, _image1482_size, 0, 0, 0, 0}, + { 0, 0, _image1483_size, 0, 0, 0, 0}, + { 0, 0, _image1484_size, 0, 0, 0, 0}, + {0x11, 0, _image1485_size, 0, 0, 0, 0}, + {0x11, 0, _image1486_size, 0, 0, 0, 0}, + {0x11, 0, _image1487_size, 0, 0, 0, 0}, + { 0, 0, _image1488_size, 0, 0, 0, 0}, + { 0, 0, _image1489_size, 0, 0, 0, 0}, + { 0, 0, _image1490_size, 0, 0, 0, 0}, + { 0, 0, _image1491_size, 0, 0, 0, 0}, + { 0, 0, _image1492_size, 0, 0, 0, 0}, + { 0, 0, _image1493_size, 0, 0, 0, 0}, + { 0, 0, _image1494_size, 0, 0, 0, 0}, + { 0, 0, _image1495_size, 0, 0, 0, 0}, + { 0, 0, _image1496_size, 0, 0, 0, 0}, + { 0, 0, _image1497_size, 0, 0, 0, 0}, + { 0, 0, _image1498_size, 0, 0, 0, 0}, + { 0, 0, _image1499_size, 0, 0, 0, 0}, + {0x22, 0, _image1500_size, 0, 0, 0, 0}, + {0x22, 0, _image1501_size, 0, 0, 0, 0}, + { 0, 0, _image1502_size, 0, 0, 0, 0}, + { 0, 0, _image1503_size, 0, 0, 0, 0}, + { 0, 0, _image1504_size, 0, 0, 0, 0}, + { 0, 0, _image1505_size, 0, 0, 0, 0}, + { 0, 0, _image1506_size, 0, 0, 0, 0}, + { 0, 0, _image1507_size, 0, 0, 0, 0}, + { 0, 0, _image1508_size, 0, 0, 0, 0}, + {0x55, 0, _image1509_size, 0, 0, 0, 0}, + {0x55, 0, _image1510_size, 0, 0, 0, 0}, + {0x55, 0, _image1511_size, 0, 0, 0, 0}, + {0x55, 0, _image1512_size, 0, 0, 0, 0}, + {0x55, 0, _image1513_size, 0, 0, 0, 0}, + { 0, 0, _image1514_size, 0, 0, 0, 0}, + { 0, 0, _image1515_size, 0, 0, 0, 0}, + {0x44, 0, _image1516_size, 0, 0, 0, 0}, + {0x44, 0, _image1517_size, 0, 0, 0, 0}, + {0x44, 0, _image1518_size, 0, 0, 0, 0}, + {0x44, 0, _image1519_size, 0, 0, 0, 0}, + {0x44, 0, _image1520_size, 0, 0, 0, 0}, + {0x44, 0, _image1521_size, 0, 0, 0, 0}, + {0x44, 0, _image1522_size, 0, 0, 0, 0}, + { 0, 0, _image1523_size, 0, 0, 0, 0}, + {0x22, 0, _image1524_size, 0, 0, 0, 0}, + {0x22, 0, _image1525_size, 0, 0, 0, 0}, + {0x22, 0, _image1526_size, 0, 0, 0, 0}, + {0x22, 0, _image1527_size, 0, 0, 0, 0}, + {0x22, 0, _image1528_size, 0, 0, 0, 0}, + {0x22, 0, _image1529_size, 0, 0, 0, 0}, + {0x22, 0, _image1530_size, 0, 0, 0, 0}, + {0x22, 0, _image1531_size, 0, 0, 0, 0}, + {0x22, 0, _image1532_size, 0, 0, 0, 0}, + {0x22, 0, _image1533_size, 0, 0, 0, 0}, + {0x22, 0, _image1534_size, 0, 0, 0, 0}, + {0x22, 0, _image1535_size, 0, 0, 0, 0}, + {0x22, 0, _image1536_size, 0, 0, 0, 0}, + {0x22, 0, _image1537_size, 0, 0, 0, 0}, + {0x22, 0, _image1538_size, 0, 0, 0, 0}, + {0x22, 0, _image1539_size, 0, 0, 0, 0}, + {0x22, 0, _image1540_size, 0, 0, 0, 0}, + {0x22, 0, _image1541_size, 0, 0, 0, 0}, + { 0, 0, _image1542_size, 0, 0, 0, 0}, + { 0, 0, _image1543_size, 0, 0, 0, 0}, + { 0, 0, _image1544_size, 0, 0, 0, 0}, + { 0, 0, _image1545_size, 0, 0, 0, 0}, + { 0, 0, _image1546_size, 0, 0, 0, 0}, + { 0, 0, _image1547_size, 0, 0, 0, 0}, + { 0, 0, _image1548_size, 0, 0, 0, 0}, + { 0, 0, _image1549_size, 0, 0, 0, 0}, + { 0, 0, _image1550_size, 0, 0, 0, 0}, + { 0, 0, _image1551_size, 0, 0, 0, 0}, + { 0, 0, _image1552_size, 0, 0, 0, 0}, + { 0, 0, _image1553_size, 0, 0, 0, 0}, + { 0, 0, _image1554_size, 0, 0, 0, 0}, + { 0, 0, _image1555_size, 0, 0, 0, 0}, + { 0, 0, _image1556_size, 0, 0, 0, 0}, + { 0, 0, _image1557_size, 0, 0, 0, 0}, + { 0, 0, _image1558_size, 0, 0, 0, 0}, + { 0, 0, _image1559_size, 0, 0, 0, 0}, + { 0, 0, _image1560_size, 0, 0, 0, 0}, + { 0, 0, _image1561_size, 0, 0, 0, 0}, + { 0, 0, _image1562_size, 0, 0, 0, 0}, + { 0, 0, _image1563_size, 0, 0, 0, 0}, + { 0, 0, _image1564_size, 0, 0, 0, 0}, + { 0, 0, _image1565_size, 0, 0, 0, 0}, + { 0, 0, _image1566_size, 0, 0, 0, 0}, + { 0, 0, _image1567_size, 0, 0, 0, 0}, + { 0, 0, _image1568_size, 0, 0, 0, 0}, + { 0, 0, _image1569_size, 0, 0, 0, 0}, + { 0, 0, _image1570_size, 0, 0, 0, 0}, + { 0, 0, _image1571_size, 0, 0, 0, 0}, + { 0, 0, _image1572_size, 0, 0, 0, 0}, + { 0, 0, _image1573_size, 0, 0, 0, 0}, + { 0, 0, _image1574_size, 0, 0, 0, 0}, + { 0, 0, _image1575_size, 0, 0, 0, 0}, + { 0, 0, _image1576_size, 0, 0, 0, 0}, + { 0, 0, _image1577_size, 0, 0, 0, 0}, + { 0, 0, _image1578_size, 0, 0, 0, 0}, + { 0, 0, _image1579_size, 0, 0, 0, 0}, + { 0, 0, _image1580_size, 0, 0, 0, 0}, + { 0, 0, _image1581_size, 0, 0, 0, 0}, + { 0, 0, _image1582_size, 0, 0, 0, 0}, + { 0, 0, _image1583_size, 0, 0, 0, 0}, + { 0, 0, _image1584_size, 0, 0, 0, 0}, + { 0, 0, _image1585_size, 0, 0, 0, 0}, + { 0, 0, _image1586_size, 0, 0, 0, 0}, + { 0, 0, _image1587_size, 0, 0, 0, 0}, + { 0, 0, _image1588_size, 0, 0, 0, 0}, + { 0, 0, _image1589_size, 0, 0, 0, 0}, + { 0, 0, _image1590_size, 0, 0, 0, 0}, + { 0, 0, _image1591_size, 0, 0, 0, 0}, + { 0, 0, _image1592_size, 0, 0, 0, 0}, + { 0, 0, _image1593_size, 0, 0, 0, 0}, + { 0, 0, _image1594_size, 0, 0, 0, 0}, + { 0, 0, _image1595_size, 0, 0, 0, 0}, + { 0, 0, _image1596_size, 0, 0, 0, 0}, + { 0, 0, _image1597_size, 0, 0, 0, 0}, + { 0, 0, _image1598_size, 0, 0, 0, 0}, + { 0, 0, _image1599_size, 0, 0, 0, 0}, + { 0, 0, _image1600_size, 0, 0, 0, 0}, + { 0, 0, _image1601_size, 0, 0, 0, 0}, + { 0, 0, _image1602_size, 0, 0, 0, 0}, + { 0, 0, _image1603_size, 0, 0, 0, 0}, + { 0, 0, _image1604_size, 0, 0, 0, 0}, + { 0, 0, _image1605_size, 0, 0, 0, 0}, + { 0, 0, _image1606_size, 0, 0, 0, 0}, + { 0, 0, _image1607_size, 0, 0, 0, 0}, + { 0, 0, _image1608_size, 0, 0, 0, 0}, + { 0, 0, _image1609_size, 0, 0, 0, 0}, + { 0, 0, _image1610_size, 0, 0, 0, 0}, + { 0, 0, _image1611_size, 0, 0, 0, 0}, + { 0, 0, _image1612_size, 0, 0, 0, 0}, + { 0, 0, _image1613_size, 0, 0, 0, 0}, + { 0, 0, _image1614_size, 0, 0, 0, 0}, + { 0, 0, _image1615_size, 0, 0, 0, 0}, + { 0, 0, _image1616_size, 0, 0, 0, 0}, + { 0, 0, _image1617_size, 0, 0, 0, 0}, + { 0, 0, _image1618_size, 0, 0, 0, 0}, + { 0, 0, _image1619_size, 0, 0, 0, 0}, + { 0, 0, _image1620_size, 0, 0, 0, 0}, + { 0, 0, _image1621_size, 0, 0, 0, 0}, + { 0, 0, _image1622_size, 0, 0, 0, 0}, + { 0, 0, _image1623_size, 0, 0, 0, 0}, + { 0, 0, _image1624_size, 0, 0, 0, 0}, + { 0, 0, _image1625_size, 0, 0, 0, 0}, + { 0, 0, _image1626_size, 0, 0, 0, 0}, + { 0, 0, _image1627_size, 0, 0, 0, 0}, + { 0, 0, _image1628_size, 0, 0, 0, 0}, + { 0, 0, _image1629_size, 0, 0, 0, 0}, + { 0, 0, _image1630_size, 0, 0, 0, 0}, + { 0, 0, _image1631_size, 0, 0, 0, 0}, + { 0, 0, _image1632_size, 0, 0, 0, 0}, + { 0, 0, _image1633_size, 0, 0, 0, 0}, + { 0, 0, _image1634_size, 0, 0, 0, 0}, + { 0, 0, _image1635_size, 0, 0, 0, 0}, + { 0, 0, _image1636_size, 0, 0, 0, 0}, + { 0, 0, _image1637_size, 0, 0, 0, 0}, + { 0, 0, _image1638_size, 0, 0, 0, 0}, + { 0, 0, _image1639_size, 0, 0, 0, 0}, + { 0, 0, _image1640_size, 0, 0, 0, 0}, + { 0, 0, _image1641_size, 0, 0, 0, 0}, + { 0, 0, _image1642_size, 0, 0, 0, 0}, + { 0, 0, _image1643_size, 0, 0, 0, 0}, + { 0, 0, _image1644_size, 0, 0, 0, 0}, + { 0, 0, _image1645_size, 0, 0, 0, 0}, + { 0, 0, _image1646_size, 0, 0, 0, 0}, + { 0, 0, _image1647_size, 0, 0, 0, 0}, + { 0, 0, _image1648_size, 0, 0, 0, 0}, + { 0, 0, _image1649_size, 0, 0, 0, 0}, + { 0, 0, _image1650_size, 0, 0, 0, 0}, + { 0, 0, _image1651_size, 0, 0, 0, 0}, + { 0, 0, _image1652_size, 0, 0, 0, 0}, + {0x33, 0, _image1653_size, 0, 0, 0, 0}, + { 0, 0, _image1654_size, 0, 0, 0, 0}, + { 0, 0, _image1655_size, 0, 0, 0, 0}, + { 0, 0, _image1656_size, 0, 0, 0, 0}, + { 0, 0, _image1657_size, 0, 0, 0, 0}, + { 0, 0, _image1658_size, 0, 0, 0, 0}, + { 0, 0, _image1659_size, 0, 0, 0, 0}, + { 0, 0, _image1660_size, 0, 0, 0, 0}, + { 0, 0, _image1661_size, 0, 0, 0, 0}, + { 0, 0, _image1662_size, 0, 0, 0, 0}, + { 0, 0, _image1663_size, 0, 0, 0, 0}, + { 0, 0, _image1664_size, 0, 0, 0, 0}, + { 0, 0, _image1665_size, 0, 0, 0, 0}, + { 0, 0, _image1666_size, 0, 0, 0, 0}, + {0x33, 0, _image1667_size, 0, 0, 0, 0}, + {0x33, 0, _image1668_size, 0, 0, 0, 0}, + {0xAA, 0, _image1669_size, 0, 0, 0, 0}, + {0x33, 0, _image1670_size, 0, 0, 0, 0}, + {0x33, 0, _image1671_size, 0, 0, 0, 0}, + { 0, 0, _image1672_size, 0, 0, 0, 0}, + { 0, 0, _image1673_size, 0, 0, 0, 0}, + { 0, 0, _image1674_size, 0, 0, 0, 0}, + { 0, 0, _image1675_size, 0, 0, 0, 0}, + { 0, 0, _image1676_size, 0, 0, 0, 0}, + { 0, 0, _image1677_size, 0, 0, 0, 0}, + { 0, 0, _image1678_size, 0, 0, 0, 0}, + { 0, 0, _image1679_size, 0, 0, 0, 0}, + { 0, 0, _image1680_size, 0, 0, 0, 0}, + { 0, 0, _image1681_size, 0, 0, 0, 0}, + { 0, 0, _image1682_size, 0, 0, 0, 0}, + { 0, 0, _image1683_size, 0, 0, 0, 0}, + { 0, 0, _image1684_size, 0, 0, 0, 0}, + { 0, 0, _image1685_size, 0, 0, 0, 0}, + { 0, 0, _image1686_size, 0, 0, 0, 0}, + { 0, 0, _image1687_size, 0, 0, 0, 0}, + { 0, 0, _image1688_size, 0, 0, 0, 0}, + { 0, 0, _image1689_size, 0, 0, 0, 0}, + { 0, 0, _image1690_size, 0, 0, 0, 0}, + { 0, 0, _image1691_size, 0, 0, 0, 0}, + { 0, 0, _image1692_size, 0, 0, 0, 0}, + { 0, 0, _image1693_size, 0, 0, 0, 0}, + { 0, 0, _image1694_size, 0, 0, 0, 0}, + { 0, 0, _image1695_size, 0, 0, 0, 0}, + { 0, 0, _image1696_size, 0, 0, 0, 0}, + { 0, 0, _image1697_size, 0, 0, 0, 0}, + { 0, 0, _image1698_size, 0, 0, 0, 0}, + { 0, 0, _image1699_size, 0, 0, 0, 0}, + { 0, 0, _image1700_size, 0, 0, 0, 0}, + { 0, 0, _image1701_size, 0, 0, 0, 0}, + { 0, 0, _image1702_size, 0, 0, 0, 0}, + { 0, 0, _image1703_size, 0, 0, 0, 0}, + { 0, 0, _image1704_size, 0, 0, 0, 0}, + { 0, 0, _image1705_size, 0, 0, 0, 0}, + { 0, 0, _image1706_size, 0, 0, 0, 0}, + { 0, 0, _image1707_size, 0, 0, 0, 0}, + { 0, 0, _image1708_size, 0, 0, 0, 0}, + { 0, 0, _image1709_size, 0, 0, 0, 0}, + { 0, 0, _image1710_size, 0, 0, 0, 0}, + { 0, 0, _image1711_size, 0, 0, 0, 0}, + { 0, 0, _image1712_size, 0, 0, 0, 0}, + { 0, 0, _image1713_size, 0, 0, 0, 0}, + { 0, 0, _image1714_size, 0, 0, 0, 0}, + { 0, 0, _image1715_size, 0, 0, 0, 0}, + { 0, 0, _image1716_size, 0, 0, 0, 0}, + { 0, 0, _image1717_size, 0, 0, 0, 0}, + { 0, 0, _image1718_size, 0, 0, 0, 0}, + { 0, 0, _image1719_size, 0, 0, 0, 0}, + { 0, 0, _image1720_size, 0, 0, 0, 0}, + { 0, 0, _image1721_size, 0, 0, 0, 0}, + { 0, 0, _image1722_size, 0, 0, 0, 0}, + { 0, 0, _image1723_size, 0, 0, 0, 0}, + { 0, 0, _image1724_size, 0, 0, 0, 0}, + { 0, 0, _image1725_size, 0, 0, 0, 0}, + { 0, 0, _image1726_size, 0, 0, 0, 0}, + { 0, 0, _image1727_size, 0, 0, 0, 0}, + { 0, 0, _image1728_size, 0, 0, 0, 0}, + { 0, 0, _image1729_size, 0, 0, 0, 0}, + {0x33, 0, _image1730_size, 0, 0, 0, 0}, + {0x33, 0, _image1731_size, 0, 0, 0, 0}, + {0x33, 0, _image1732_size, 0, 0, 0, 0}, + {0x33, 0, _image1733_size, 0, 0, 0, 0}, + { 0, 0, _image1734_size, 0, 0, 0, 0}, + { 0, 0, _image1735_size, 0, 0, 0, 0}, + { 0, 0, _image1736_size, 0, 0, 0, 0}, + { 0, 0, _image1737_size, 0, 0, 0, 0}, + { 0, 0, _image1738_size, 0, 0, 0, 0}, + { 0, 0, _image1739_size, 0, 0, 0, 0}, + { 0, 0, _image1740_size, 0, 0, 0, 0}, + { 0, 0, _image1741_size, 0, 0, 0, 0}, + { 0, 0, _image1742_size, 0, 0, 0, 0}, + { 0, 0, _image1743_size, 0, 0, 0, 0}, + { 0, 0, _image1744_size, 0, 0, 0, 0}, + { 0, 0, _image1745_size, 0, 0, 0, 0}, + { 0, 0, _image1746_size, 0, 0, 0, 0}, + { 0, 0, _image1747_size, 0, 0, 0, 0}, + { 0, 0, _image1748_size, 0, 0, 0, 0}, + { 0, 0, _image1749_size, 0, 0, 0, 0}, + { 0, 0, _image1750_size, 0, 0, 0, 0}, + { 0, 0, _image1751_size, 0, 0, 0, 0}, + { 0, 0, _image1752_size, 0, 0, 0, 0}, + { 0, 0, _image1753_size, 0, 0, 0, 0}, + { 0, 0, _image1754_size, 0, 0, 0, 0}, + { 0, 0, _image1755_size, 0, 0, 0, 0}, + { 0, 0, _image1756_size, 0, 0, 0, 0}, + { 0, 0, _image1757_size, 0, 0, 0, 0}, + { 0, 0, _image1758_size, 0, 0, 0, 0}, + { 0, 0, _image1759_size, 0, 0, 0, 0}, + { 0, 0, _image1760_size, 0, 0, 0, 0}, + { 0, 0, _image1761_size, 0, 0, 0, 0}, + { 0, 0, _image1762_size, 0, 0, 0, 0}, + { 0, 0, _image1763_size, 0, 0, 0, 0}, + { 0, 0, _image1764_size, 0, 0, 0, 0}, + { 0, 0, _image1765_size, 0, 0, 0, 0}, + { 0, 0, _image1766_size, 0, 0, 0, 0}, + { 0, 0, _image1767_size, 0, 0, 0, 0}, + { 0, 0, _image1768_size, 0, 0, 0, 0}, + { 0, 0, _image1769_size, 0, 0, 0, 0}, + { 0, 0, _image1770_size, 0, 0, 0, 0}, + { 0, 0, _image1771_size, 0, 0, 0, 0}, + { 0, 0, _image1772_size, 0, 0, 0, 0}, + { 0, 0, _image1773_size, 0, 0, 0, 0}, + { 0, 0, _image1774_size, 0, 0, 0, 0}, + { 0, 0, _image1775_size, 0, 0, 0, 0}, + { 0, 0, _image1776_size, 0, 0, 0, 0}, + { 0, 0, _image1777_size, 0, 0, 0, 0}, + { 0, 0, _image1778_size, 0, 0, 0, 0}, + { 0, 0, _image1779_size, 0, 0, 0, 0}, + { 0, 0, _image1780_size, 0, 0, 0, 0}, + { 0, 0, _image1781_size, 0, 0, 0, 0}, + { 0, 0, _image1782_size, 0, 0, 0, 0}, + { 0, 0, _image1783_size, 0, 0, 0, 0}, + { 0, 0, _image1784_size, 0, 0, 0, 0}, + { 0, 0, _image1785_size, 0, 0, 0, 0}, + { 0, 0, _image1786_size, 0, 0, 0, 0}, + { 0, 0, _image1787_size, 0, 0, 0, 0}, + { 0, 0, _image1788_size, 0, 0, 0, 0}, + { 0, 0, _image1789_size, 0, 0, 0, 0}, + { 0, 0, _image1790_size, 0, 0, 0, 0}, + { 0, 0, _image1791_size, 0, 0, 0, 0}, + { 0, 0, _image1792_size, 0, 0, 0, 0}, + { 0, 0, _image1793_size, 0, 0, 0, 0}, + { 0, 0, _image1794_size, 0, 0, 0, 0}, + { 0, 0, _image1795_size, 0, 0, 0, 0}, + { 0, 0, _image1796_size, 0, 0, 0, 0}, + { 0, 0, _image1797_size, 0, 0, 0, 0}, + { 0, 0, _image1798_size, 0, 0, 0, 0}, + { 0, 0, _image1799_size, 0, 0, 0, 0}, + { 0, 0, _image1800_size, 0, 0, 0, 0}, + { 0, 0, _image1801_size, 0, 0, 0, 0}, + { 0, 0, _image1802_size, 0, 0, 0, 0}, + { 0, 0, _image1803_size, 0, 0, 0, 0}, + { 0, 0, _image1804_size, 0, 0, 0, 0}, + { 0, 0, _image1805_size, 0, 0, 0, 0}, + { 0, 0, _image1806_size, 0, 0, 0, 0}, + { 0, 0, _image1807_size, 0, 0, 0, 0}, + { 0, 0, _image1808_size, 0, 0, 0, 0}, + { 0, 0, _image1809_size, 0, 0, 0, 0}, + { 0, 0, _image1810_size, 0, 0, 0, 0}, + { 0, 0, _image1811_size, 0, 0, 0, 0}, + { 0, 0, _image1812_size, 0, 0, 0, 0}, + { 0, 0, _image1813_size, 0, 0, 0, 0}, + { 0, 0, _image1814_size, 0, 0, 0, 0}, + { 0, 0, _image1815_size, 0, 0, 0, 0}, + { 0, 0, _image1816_size, 0, 0, 0, 0}, + { 0, 0, _image1817_size, 0, 0, 0, 0}, + { 0, 0, _image1818_size, 0, 0, 0, 0}, + { 0, 0, _image1819_size, 0, 0, 0, 0}, + { 0, 0, _image1820_size, 0, 0, 0, 0}, + { 0, 0, _image1821_size, 0, 0, 0, 0}, + { 0, 0, _image1822_size, 0, 0, 0, 0}, + { 0, 0, _image1823_size, 0, 0, 0, 0}, + { 0, 0, _image1824_size, 0, 0, 0, 0}, + { 0, 0, _image1825_size, 0, 0, 0, 0}, + { 0, 0, _image1826_size, 0, 0, 0, 0}, + { 0, 0, _image1827_size, 0, 0, 0, 0}, + { 0, 0, _image1828_size, 0, 0, 0, 0}, + { 0, 0, _image1829_size, 0, 0, 0, 0}, + { 0, 0, _image1830_size, 0, 0, 0, 0}, + { 0, 0, _image1831_size, 0, 0, 0, 0}, + { 0, 0, _image1832_size, 0, 0, 0, 0}, + { 0, 0, _image1833_size, 0, 0, 0, 0}, + { 0, 0, _image1834_size, 0, 0, 0, 0}, + { 0, 0, _image1835_size, 0, 0, 0, 0}, + { 0, 0, _image1836_size, 0, 0, 0, 0}, + { 0, 0, _image1837_size, 0, 0, 0, 0}, + { 0, 0, _image1838_size, 0, 0, 0, 0}, + { 0, 0, _image1839_size, 0, 0, 0, 0}, + { 0, 0, _image1840_size, 0, 0, 0, 0}, + { 0, 0, _image1841_size, 0, 0, 0, 0}, + { 0, 0, _image1842_size, 0, 0, 0, 0}, + { 0, 0, _image1843_size, 0, 0, 0, 0}, + { 0, 0, _image1844_size, 0, 0, 0, 0}, + { 0, 0, _image1845_size, 0, 0, 0, 0}, + { 0, 0, _image1846_size, 0, 0, 0, 0}, + { 0, 0, _image1847_size, 0, 0, 0, 0}, + { 0, 0, _image1848_size, 0, 0, 0, 0}, + { 0, 0, _image1849_size, 0, 0, 0, 0}, + { 0, 0, _image1850_size, 0, 0, 0, 0}, + { 0, 0, _image1851_size, 0, 0, 0, 0}, + { 0, 0, _image1852_size, 0, 0, 0, 0}, + { 0, 0, _image1853_size, 0, 0, 0, 0}, + { 0, 0, _image1854_size, 0, 0, 0, 0}, + { 0, 0, _image1855_size, 0, 0, 0, 0}, + { 0, 0, _image1856_size, 0, 0, 0, 0}, + { 0, 0, _image1857_size, 0, 0, 0, 0}, + { 0, 0, _image1858_size, 0, 0, 0, 0}, + { 0, 0, _image1859_size, 0, 0, 0, 0}, + { 0, 0, _image1860_size, 0, 0, 0, 0}, + { 0, 0, _image1861_size, 0, 0, 0, 0}, + { 0, 0, _image1862_size, 0, 0, 0, 0}, + { 0, 0, _image1863_size, 0, 0, 0, 0}, + { 0, 0, _image1864_size, 0, 0, 0, 0}, + { 0, 0, _image1865_size, 0, 0, 0, 0}, + { 0, 0, _image1866_size, 0, 0, 0, 0}, + { 0, 0, _image1867_size, 0, 0, 0, 0}, + { 0, 0, _image1868_size, 0, 0, 0, 0}, + { 0, 0, _image1869_size, 0, 0, 0, 0}, + { 0, 0, _image1870_size, 0, 0, 0, 0}, + { 0, 0, _image1871_size, 0, 0, 0, 0}, + { 0, 0, _image1872_size, 0, 0, 0, 0}, + { 0, 0, _image1873_size, 0, 0, 0, 0}, + { 0, 0, _image1874_size, 0, 0, 0, 0}, + { 0, 0, _image1875_size, 0, 0, 0, 0}, + { 0, 0, _image1876_size, 0, 0, 0, 0}, + { 0, 0, _image1877_size, 0, 0, 0, 0}, + { 0, 0, _image1878_size, 0, 0, 0, 0}, + { 0, 0, _image1879_size, 0, 0, 0, 0}, + { 0, 0, _image1880_size, 0, 0, 0, 0}, + { 0, 0, _image1881_size, 0, 0, 0, 0}, + { 0, 0, _image1882_size, 0, 0, 0, 0}, + { 0, 0, _image1883_size, 0, 0, 0, 0}, + { 0, 0, _image1884_size, 0, 0, 0, 0}, + { 0, 0, _image1885_size, 0, 0, 0, 0}, + { 0, 0, _image1886_size, 0, 0, 0, 0}, + { 0, 0, _image1887_size, 0, 0, 0, 0}, + { 0, 0, _image1888_size, 0, 0, 0, 0}, + { 0, 0, _image1889_size, 0, 0, 0, 0}, + { 0, 0, _image1890_size, 0, 0, 0, 0}, + { 0, 0, _image1891_size, 0, 0, 0, 0}, + { 0, 0, _image1892_size, 0, 0, 0, 0}, + { 0, 0, _image1893_size, 0, 0, 0, 0}, + { 0, 0, _image1894_size, 0, 0, 0, 0}, + { 0, 0, _image1895_size, 0, 0, 0, 0}, + { 0, 0, _image1896_size, 0, 0, 0, 0}, + { 0, 0, _image1897_size, 0, 0, 0, 0}, + { 0, 0, _image1898_size, 0, 0, 0, 0}, + { 0, 0, _image1899_size, 0, 0, 0, 0}, + { 0, 0, _image1900_size, 0, 0, 0, 0}, + { 0, 0, _image1901_size, 0, 0, 0, 0}, + { 0, 0, _image1902_size, 0, 0, 0, 0}, + { 0, 0, _image1903_size, 0, 0, 0, 0}, + { 0, 0, _image1904_size, 0, 0, 0, 0}, + { 0, 0, _image1905_size, 0, 0, 0, 0}, + { 0, 0, _image1906_size, 0, 0, 0, 0}, + { 0, 0, _image1907_size, 0, 0, 0, 0}, + { 0, 0, _image1908_size, 0, 0, 0, 0}, + { 0, 0, _image1909_size, 0, 0, 0, 0}, + { 0, 0, _image1910_size, 0, 0, 0, 0}, + { 0, 0, _image1911_size, 0, 0, 0, 0}, + { 0, 0, _image1912_size, 0, 0, 0, 0}, + { 0, 0, _image1913_size, 0, 0, 0, 0}, + { 0, 0, _image1914_size, 0, 0, 0, 0}, + { 0, 0, _image1915_size, 0, 0, 0, 0}, + { 0, 0, _image1916_size, 0, 0, 0, 0}, + { 0, 0, _image1917_size, 0, 0, 0, 0}, + { 0, 0, _image1918_size, 0, 0, 0, 0}, + { 0, 0, _image1919_size, 0, 0, 0, 0}, + { 0, 0, _image1920_size, 0, 0, 0, 0}, + { 0, 0, _image1921_size, 0, 0, 0, 0}, + { 0, 0, _image1922_size, 0, 0, 0, 0}, + { 0, 0, _image1923_size, 0, 0, 0, 0}, + { 0, 0, _image1924_size, 0, 0, 0, 0}, + { 0, 0, _image1925_size, 0, 0, 0, 0}, + { 0, 0, _image1926_size, 0, 0, 0, 0}, + { 0, 0, _image1927_size, 0, 0, 0, 0}, + { 0, 0, _image1928_size, 0, 0, 0, 0}, + { 0, 0, _image1929_size, 0, 0, 0, 0}, + { 0, 0, _image1930_size, 0, 0, 0, 0}, + { 0, 0, _image1931_size, 0, 0, 0, 0}, + { 0, 0, _image1932_size, 0, 0, 0, 0}, + { 0, 0, _image1933_size, 0, 0, 0, 0}, + { 0, 0, _image1934_size, 0, 0, 0, 0}, + { 0, 0, _image1935_size, 0, 0, 0, 0}, + { 0, 0, _image1936_size, 0, 0, 0, 0}, + { 0, 0, _image1937_size, 0, 0, 0, 0}, + { 0, 0, _image1938_size, 0, 0, 0, 0}, + { 0, 0, _image1939_size, 0, 0, 0, 0}, + { 0, 0, _image1940_size, 0, 0, 0, 0}, + { 0, 0, _image1941_size, 0, 0, 0, 0}, + { 0, 0, _image1942_size, 0, 0, 0, 0}, + { 0, 0, _image1943_size, 0, 0, 0, 0}, + { 0, 0, _image1944_size, 0, 0, 0, 0}, + { 0, 0, _image1945_size, 0, 0, 0, 0}, + { 0, 0, _image1946_size, 0, 0, 0, 0}, + { 0, 0, _image1947_size, 0, 0, 0, 0}, + { 0, 0, _image1948_size, 0, 0, 0, 0}, + { 0, 0, _image1949_size, 0, 0, 0, 0}, + { 0, 0, _image1950_size, 0, 0, 0, 0}, + { 0, 0, _image1951_size, 0, 0, 0, 0}, + { 0, 0, _image1952_size, 0, 0, 0, 0}, + { 0, 0, _image1953_size, 0, 0, 0, 0}, + { 0, 0, _image1954_size, 0, 0, 0, 0}, + { 0, 0, _image1955_size, 0, 0, 0, 0}, + { 0, 0, _image1956_size, 0, 0, 0, 0}, + { 0, 0, _image1957_size, 0, 0, 0, 0}, + { 0, 0, _image1958_size, 0, 0, 0, 0}, + { 0, 0, _image1959_size, 0, 0, 0, 0}, + { 0, 0, _image1960_size, 0, 0, 0, 0}, + { 0, 0, _image1961_size, 0, 0, 0, 0}, + { 0, 0, _image1962_size, 0, 0, 0, 0}, + { 0, 0, _image1963_size, 0, 0, 0, 0}, + { 0, 0, _image1964_size, 0, 0, 0, 0}, + { 0, 0, _image1965_size, 0, 0, 0, 0}, + { 0, 0, _image1966_size, 0, 0, 0, 0}, + { 0, 0, _image1967_size, 0, 0, 0, 0}, + { 0, 0, _image1968_size, 0, 0, 0, 0}, + { 0, 0, _image1969_size, 0, 0, 0, 0}, + { 0, 0, _image1970_size, 0, 0, 0, 0}, + { 0, 0, _image1971_size, 0, 0, 0, 0}, + { 0, 0, _image1972_size, 0, 0, 0, 0}, + { 0, 0, _image1973_size, 0, 0, 0, 0}, + { 0, 0, _image1974_size, 0, 0, 0, 0}, + { 0, 0, _image1975_size, 0, 0, 0, 0}, + { 0, 0, _image1976_size, 0, 0, 0, 0}, + { 0, 0, _image1977_size, 0, 0, 0, 0}, + { 0, 0, _image1978_size, 0, 0, 0, 0}, + { 0, 0, _image1979_size, 0, 0, 0, 0}, + { 0, 0, _image1980_size, 0, 0, 0, 0}, + { 0, 0, _image1981_size, 0, 0, 0, 0}, + { 0, 0, _image1982_size, 0, 0, 0, 0}, + { 0, 0, _image1983_size, 0, 0, 0, 0}, + { 0, 0, _image1984_size, 0, 0, 0, 0}, + { 0, 0, _image1985_size, 0, 0, 0, 0}, + { 0, 0, _image1986_size, 0, 0, 0, 0}, + { 0, 0, _image1987_size, 0, 0, 0, 0}, + { 0, 0, _image1988_size, 0, 0, 0, 0}, + { 0, 0, _image1989_size, 0, 0, 0, 0}, + { 0, 0, _image1990_size, 0, 0, 0, 0}, + { 0, 0, _image1991_size, 0, 0, 0, 0}, + { 0, 0, _image1992_size, 0, 0, 0, 0}, + { 0, 0, _image1993_size, 0, 0, 0, 0}, + { 0, 0, _image1994_size, 0, 0, 0, 0}, + { 0, 0, _image1995_size, 0, 0, 0, 0}, + { 0, 0, _image1996_size, 0, 0, 0, 0}, + { 0, 0, _image1997_size, 0, 0, 0, 0}, + { 0, 0, _image1998_size, 0, 0, 0, 0}, + { 0, 0, _image1999_size, 0, 0, 0, 0}, + { 0, 0, _image2000_size, 0, 0, 0, 0}, + { 0, 0, _image2001_size, 0, 0, 0, 0}, + { 0, 0, _image2002_size, 0, 0, 0, 0}, + { 0, 0, _image2003_size, 0, 0, 0, 0}, + { 0, 0, _image2004_size, 0, 0, 0, 0}, + { 0, 0, _image2005_size, 0, 0, 0, 0}, + { 0, 0, _image2006_size, 0, 0, 0, 0}, + { 0, 0, _image2007_size, 0, 0, 0, 0}, + { 0, 0, _image2008_size, 0, 0, 0, 0}, + { 0, 0, _image2009_size, 0, 0, 0, 0}, + { 0, 0, _image2010_size, 0, 0, 0, 0}, + { 0, 0, _image2011_size, 0, 0, 0, 0}, + { 0, 0, _image2012_size, 0, 0, 0, 0}, + { 0, 0, _image2013_size, 0, 0, 0, 0}, + { 0, 0, _image2014_size, 0, 0, 0, 0}, + { 0, 0, _image2015_size, 0, 0, 0, 0}, + { 0, 0, _image2016_size, 0, 0, 0, 0}, + { 0, 0, _image2017_size, 0, 0, 0, 0}, + { 0, 0, _image2018_size, 0, 0, 0, 0}, + { 0, 0, _image2019_size, 0, 0, 0, 0}, + { 0, 0, _image2020_size, 0, 0, 0, 0}, + { 0, 0, _image2021_size, 0, 0, 0, 0}, + { 0, 0, _image2022_size, 0, 0, 0, 0}, + { 0, 0, _image2023_size, 0, 0, 0, 0}, + { 0, 0, _image2024_size, 0, 0, 0, 0}, + { 0, 0, _image2025_size, 0, 0, 0, 0}, + { 0, 0, _image2026_size, 0, 0, 0, 0}, + { 0, 0, _image2027_size, 0, 0, 0, 0}, + { 0, 0, _image2028_size, 0, 0, 0, 0}, + { 0, 0, _image2029_size, 0, 0, 0, 0}, + { 0, 0, _image2030_size, 0, 0, 0, 0}, + { 0, 0, _image2031_size, 0, 0, 0, 0}, + { 0, 0, _image2032_size, 0, 0, 0, 0}, + { 0, 0, _image2033_size, 0, 0, 0, 0}, + { 0, 0, _image2034_size, 0, 0, 0, 0}, + { 0, 0, _image2035_size, 0, 0, 0, 0}, + { 0, 0, _image2036_size, 0, 0, 0, 0}, + { 0, 0, _image2037_size, 0, 0, 0, 0}, + { 0, 0, _image2038_size, 0, 0, 0, 0}, + { 0, 0, _image2039_size, 0, 0, 0, 0}, + { 0, 0, _image2040_size, 0, 0, 0, 0}, + { 0, 0, _image2041_size, 0, 0, 0, 0}, + { 0, 0, _image2042_size, 0, 0, 0, 0}, + { 0, 0, _image2043_size, 0, 0, 0, 0}, + { 0, 0, _image2044_size, 0, 0, 0, 0}, + { 0, 0, _image2045_size, 0, 0, 0, 0}, + { 0, 0, _image2046_size, 0, 0, 0, 0}, + { 0, 0, _image2047_size, 0, 0, 0, 0}, + { 0, 0, _image2048_size, 0, 0, 0, 0}, + { 0, 0, _image2049_size, 0, 0, 0, 0}, + { 0, 0, _image2050_size, 0, 0, 0, 0}, + { 0, 0, _image2051_size, 0, 0, 0, 0}, + { 0, 0, _image2052_size, 0, 0, 0, 0}, + { 0, 0, _image2053_size, 0, 0, 0, 0}, + { 0, 0, _image2054_size, 0, 0, 0, 0}, + { 0, 0, _image2055_size, 0, 0, 0, 0}, + { 0, 0, _image2056_size, 0, 0, 0, 0}, + { 0, 0, _image2057_size, 0, 0, 0, 0}, + { 0, 0, _image2058_size, 0, 0, 0, 0}, + { 0, 0, _image2059_size, 0, 0, 0, 0}, + { 0, 0, _image2060_size, 0, 0, 0, 0}, + { 0, 0, _image2061_size, 0, 0, 0, 0}, + { 0, 0, _image2062_size, 0, 0, 0, 0}, + { 0, 0, _image2063_size, 0, 0, 0, 0}, + { 0, 0, _image2064_size, 0, 0, 0, 0}, + { 0, 0, _image2065_size, 0, 0, 0, 0}, + { 0, 0, _image2066_size, 0, 0, 0, 0}, + { 0, 0, _image2067_size, 0, 0, 0, 0}, + { 0, 0, _image2068_size, 0, 0, 0, 0}, + { 0, 0, _image2069_size, 0, 0, 0, 0}, + { 0, 0, _image2070_size, 0, 0, 0, 0}, + { 0, 0, _image2071_size, 0, 0, 0, 0}, + { 0, 0, _image2072_size, 0, 0, 0, 0}, + { 0, 0, _image2073_size, 0, 0, 0, 0}, + { 0, 0, _image2074_size, 0, 0, 0, 0}, + { 0, 0, _image2075_size, 0, 0, 0, 0}, + { 0, 0, _image2076_size, 0, 0, 0, 0}, + { 0, 0, _image2077_size, 0, 0, 0, 0}, + { 0, 0, _image2078_size, 0, 0, 0, 0}, + { 0, 0, _image2079_size, 0, 0, 0, 0}, + { 0, 0, _image2080_size, 0, 0, 0, 0}, + { 0, 0, _image2081_size, 0, 0, 0, 0}, + { 0, 0, _image2082_size, 0, 0, 0, 0}, + { 0, 0, _image2083_size, 0, 0, 0, 0}, + { 0, 0, _image2084_size, 0, 0, 0, 0}, + { 0, 0, _image2085_size, 0, 0, 0, 0}, + { 0, 0, _image2086_size, 0, 0, 0, 0}, + { 0, 0, _image2087_size, 0, 0, 0, 0}, + { 0, 0, _image2088_size, 0, 0, 0, 0}, + { 0, 0, _image2089_size, 0, 0, 0, 0}, + { 0, 0, _image2090_size, 0, 0, 0, 0}, + { 0, 0, _image2091_size, 0, 0, 0, 0}, + { 0, 0, _image2092_size, 0, 0, 0, 0}, + { 0, 0, _image2093_size, 0, 0, 0, 0}, + { 0, 0, _image2094_size, 0, 0, 0, 0}, + { 0, 0, _image2095_size, 0, 0, 0, 0}, + { 0, 0, _image2096_size, 0, 0, 0, 0}, + { 0, 0, _image2097_size, 0, 0, 0, 0}, + { 0, 0, _image2098_size, 0, 0, 0, 0}, + { 0, 0, _image2099_size, 0, 0, 0, 0}, + { 0, 0, _image2100_size, 0, 0, 0, 0}, + { 0, 0, _image2101_size, 0, 0, 0, 0}, + { 0, 0, _image2102_size, 0, 0, 0, 0}, + { 0, 0, _image2103_size, 0, 0, 0, 0}, + { 0, 0, _image2104_size, 0, 0, 0, 0}, + { 0, 0, _image2105_size, 0, 0, 0, 0}, + { 0, 0, _image2106_size, 0, 0, 0, 0}, + { 0, 0, _image2107_size, 0, 0, 0, 0}, + { 0, 0, _image2108_size, 0, 0, 0, 0}, + { 0, 0, _image2109_size, 0, 0, 0, 0}, + { 0, 0, _image2110_size, 0, 0, 0, 0}, + { 0, 0, _image2111_size, 0, 0, 0, 0}, + { 0, 0, _image2112_size, 0, 0, 0, 0}, + { 0, 0, _image2113_size, 0, 0, 0, 0}, + { 0, 0, _image2114_size, 0, 0, 0, 0}, + { 0, 0, _image2115_size, 0, 0, 0, 0}, + { 0, 0, _image2116_size, 0, 0, 0, 0}, + { 0, 0, _image2117_size, 0, 0, 0, 0}, + { 0, 0, _image2118_size, 0, 0, 0, 0}, + { 0, 0, _image2119_size, 0, 0, 0, 0}, + { 0, 0, _image2120_size, 0, 0, 0, 0}, + { 0, 0, _image2121_size, 0, 0, 0, 0}, + { 0, 0, _image2122_size, 0, 0, 0, 0}, + { 0, 0, _image2123_size, 0, 0, 0, 0}, + { 0, 0, _image2124_size, 0, 0, 0, 0}, + { 0, 0, _image2125_size, 0, 0, 0, 0}, + { 0, 0, _image2126_size, 0, 0, 0, 0}, + { 0, 0, _image2127_size, 0, 0, 0, 0}, + { 0, 0, _image2128_size, 0, 0, 0, 0}, + { 0, 0, _image2129_size, 0, 0, 0, 0}, + { 0, 0, _image2130_size, 0, 0, 0, 0}, + { 0, 0, _image2131_size, 0, 0, 0, 0}, + { 0, 0, _image2132_size, 0, 0, 0, 0}, + { 0, 0, _image2133_size, 0, 0, 0, 0}, + { 0, 0, _image2134_size, 0, 0, 0, 0}, + { 0, 0, _image2135_size, 0, 0, 0, 0}, + { 0, 0, _image2136_size, 0, 0, 0, 0}, + { 0, 0, _image2137_size, 0, 0, 0, 0}, + { 0, 0, _image2138_size, 0, 0, 0, 0}, + { 0, 0, _image2139_size, 0, 0, 0, 0}, + { 0, 0, _image2140_size, 0, 0, 0, 0}, + { 0, 0, _image2141_size, 0, 0, 0, 0}, + { 0, 0, _image2142_size, 0, 0, 0, 0}, + { 0, 0, _image2143_size, 0, 0, 0, 0}, + { 0, 0, _image2144_size, 0, 0, 0, 0}, + { 0, 0, _image2145_size, 0, 0, 0, 0}, + { 0, 0, _image2146_size, 0, 0, 0, 0}, + { 0, 0, _image2147_size, 0, 0, 0, 0}, + { 0, 0, _image2148_size, 0, 0, 0, 0}, + { 0, 0, _image2149_size, 0, 0, 0, 0}, + { 0, 0, _image2150_size, 0, 0, 0, 0}, + { 0, 0, _image2151_size, 0, 0, 0, 0}, + { 0, 0, _image2152_size, 0, 0, 0, 0}, + { 0, 0, _image2153_size, 0, 0, 0, 0}, + { 0, 0, _image2154_size, 0, 0, 0, 0}, + { 0, 0, _image2155_size, 0, 0, 0, 0}, + { 0, 0, _image2156_size, 0, 0, 0, 0}, + { 0, 0, _image2157_size, 0, 0, 0, 0}, + { 0, 0, _image2158_size, 0, 0, 0, 0}, + { 0, 0, _image2159_size, 0, 0, 0, 0}, + { 0, 0, _image2160_size, 0, 0, 0, 0}, + { 0, 0, _image2161_size, 0, 0, 0, 0}, + { 0, 0, _image2162_size, 0, 0, 0, 0}, + { 0, 0, _image2163_size, 0, 0, 0, 0}, + { 0, 0, _image2164_size, 0, 0, 0, 0}, + { 0, 0, _image2165_size, 0, 0, 0, 0}, + { 0, 0, _image2166_size, 0, 0, 0, 0}, + { 0, 0, _image2167_size, 0, 0, 0, 0}, + { 0, 0, _image2168_size, 0, 0, 0, 0}, + { 0, 0, _image2169_size, 0, 0, 0, 0}, + { 0, 0, _image2170_size, 0, 0, 0, 0}, + { 0, 0, _image2171_size, 0, 0, 0, 0}, + { 0, 0, _image2172_size, 0, 0, 0, 0}, + { 0, 0, _image2173_size, 0, 0, 0, 0}, + {0x11, 0, _image2174_size, 0, 0, 0, 0}, + {0x11, 0, _image2175_size, 0, 0, 0, 0}, + {0x11, 0, _image2176_size, 0, 0, 0, 0}, + { 0, 0, _image2177_size, 0, 0, 0, 0}, + { 0, 0, _image2178_size, 0, 0, 0, 0}, + { 0, 0, _image2179_size, 0, 0, 0, 0}, + { 0, 0, _image2180_size, 0, 0, 0, 0}, + { 0, 0, _image2181_size, 0, 0, 0, 0}, + { 0, 0, _image2182_size, 0, 0, 0, 0}, + { 0, 0, _image2183_size, 0, 0, 0, 0}, + { 0, 0, _image2184_size, 0, 0, 0, 0}, + { 0, 0, _image2185_size, 0, 0, 0, 0}, + { 0, 0, _image2186_size, 0, 0, 0, 0}, + { 0, 0, _image2187_size, 0, 0, 0, 0}, + { 0, 0, _image2188_size, 0, 0, 0, 0}, + { 0, 0, _image2189_size, 0, 0, 0, 0}, + { 0, 0, _image2190_size, 0, 0, 0, 0}, + { 0, 0, _image2191_size, 0, 0, 0, 0}, + { 0, 0, _image2192_size, 0, 0, 0, 0}, + { 0, 0, _image2193_size, 0, 0, 0, 0}, + { 0, 0, _image2194_size, 0, 0, 0, 0}, + { 0, 0, _image2195_size, 0, 0, 0, 0}, + { 0, 0, _image2196_size, 0, 0, 0, 0}, + { 0, 0, _image2197_size, 0, 0, 0, 0}, + { 0, 0, _image2198_size, 0, 0, 0, 0}, + { 0, 0, _image2199_size, 0, 0, 0, 0}, + { 0, 0, _image2200_size, 0, 0, 0, 0}, + { 0, 0, _image2201_size, 0, 0, 0, 0}, + { 0, 0, _image2202_size, 0, 0, 0, 0}, + { 0, 0, _image2203_size, 0, 0, 0, 0}, + { 0, 0, _image2204_size, 0, 0, 0, 0}, + { 0, 0, _image2205_size, 0, 0, 0, 0}, + { 0, 0, _image2206_size, 0, 0, 0, 0}, + { 0, 0, _image2207_size, 0, 0, 0, 0}, + { 0, 0, _image2208_size, 0, 0, 0, 0}, + { 0, 0, _image2209_size, 0, 0, 0, 0}, + { 0, 0, _image2210_size, 0, 0, 0, 0}, + { 0, 0, _image2211_size, 0, 0, 0, 0}, + { 0, 0, _image2212_size, 0, 0, 0, 0}, + { 0, 0, _image2213_size, 0, 0, 0, 0}, + { 0, 0, _image2214_size, 0, 0, 0, 0}, + { 0, 0, _image2215_size, 0, 0, 0, 0}, + { 0, 0, _image2216_size, 0, 0, 0, 0}, + { 0, 0, _image2217_size, 0, 0, 0, 0}, + { 0, 0, _image2218_size, 0, 0, 0, 0}, + { 0, 0, _image2219_size, 0, 0, 0, 0}, + { 0, 0, _image2220_size, 0, 0, 0, 0}, + { 0, 0, _image2221_size, 0, 0, 0, 0}, + { 0, 0, _image2222_size, 0, 0, 0, 0}, + { 0, 0, _image2223_size, 0, 0, 0, 0}, + { 0, 0, _image2224_size, 0, 0, 0, 0}, + { 0, 0, _image2225_size, 0, 0, 0, 0}, + { 0, 0, _image2226_size, 0, 0, 0, 0}, + { 0, 0, _image2227_size, 0, 0, 0, 0}, + { 0, 0, _image2228_size, 0, 0, 0, 0}, + { 0, 0, _image2229_size, 0, 0, 0, 0}, + { 0, 0, _image2230_size, 0, 0, 0, 0}, + { 0, 0, _image2231_size, 0, 0, 0, 0}, + { 0, 0, _image2232_size, 0, 0, 0, 0}, + { 0, 0, _image2233_size, 0, 0, 0, 0}, + { 0, 0, _image2234_size, 0, 0, 0, 0}, + { 0, 0, _image2235_size, 0, 0, 0, 0}, + { 0, 0, _image2236_size, 0, 0, 0, 0}, + { 0, 0, _image2237_size, 0, 0, 0, 0}, + { 0, 0, _image2238_size, 0, 0, 0, 0}, + { 0, 0, _image2239_size, 0, 0, 0, 0}, + { 0, 0, _image2240_size, 0, 0, 0, 0}, + { 0, 0, _image2241_size, 0, 0, 0, 0}, + { 0, 0, _image2242_size, 0, 0, 0, 0}, + { 0, 0, _image2243_size, 0, 0, 0, 0}, + { 0, 0, _image2244_size, 0, 0, 0, 0}, + { 0, 0, _image2245_size, 0, 0, 0, 0}, + { 0, 0, _image2246_size, 0, 0, 0, 0}, + { 0, 0, _image2247_size, 0, 0, 0, 0}, + { 0, 0, _image2248_size, 0, 0, 0, 0}, + { 0, 0, _image2249_size, 0, 0, 0, 0}, + { 0, 0, _image2250_size, 0, 0, 0, 0}, + { 0, 0, _image2251_size, 0, 0, 0, 0}, + { 0, 0, _image2252_size, 0, 0, 0, 0}, + { 0, 0, _image2253_size, 0, 0, 0, 0}, + { 0, 0, _image2254_size, 0, 0, 0, 0}, + { 0, 0, _image2255_size, 0, 0, 0, 0}, + { 0, 0, _image2256_size, 0, 0, 0, 0}, + { 0, 0, _image2257_size, 0, 0, 0, 0}, + { 0, 0, _image2258_size, 0, 0, 0, 0}, + { 0, 0, _image2259_size, 0, 0, 0, 0}, + { 0, 0, _image2260_size, 0, 0, 0, 0}, + {0x33, 0, _image2261_size, 0, 0, 0, 0}, + { 0, 0, _image2262_size, 0, 0, 0, 0}, + { 0, 0, _image2263_size, 0, 0, 0, 0}, + { 0, 0, _image2264_size, 0, 0, 0, 0}, + { 0, 0, _image2265_size, 0, 0, 0, 0}, + { 0, 0, _image2266_size, 0, 0, 0, 0}, + { 0, 0, _image2267_size, 0, 0, 0, 0}, + { 0, 0, _image2268_size, 0, 0, 0, 0}, + { 0, 0, _image2269_size, 0, 0, 0, 0}, + { 0, 0, _image2270_size, 0, 0, 0, 0}, + { 0, 0, _image2271_size, 0, 0, 0, 0}, + { 0, 0, _image2272_size, 0, 0, 0, 0}, + { 0, 0, _image2273_size, 0, 0, 0, 0}, + { 0, 0, _image2274_size, 0, 0, 0, 0}, + { 0, 0, _image2275_size, 0, 0, 0, 0}, + { 0, 0, _image2276_size, 0, 0, 0, 0}, + { 0, 0, _image2277_size, 0, 0, 0, 0}, + {0x22, 0, _image2278_size, 0, 0, 0, 0}, + { 0, 0, _image2279_size, 0, 0, 0, 0}, + {0x22, 0, _image2280_size, 0, 0, 0, 0}, + {0x22, 0, _image2281_size, 0, 0, 0, 0}, + { 0, 0, _image2282_size, 0, 0, 0, 0}, + {0x22, 0, _image2283_size, 0, 0, 0, 0}, + { 0, 0, _image2284_size, 0, 0, 0, 0}, + { 0, 0, _image2285_size, 0, 0, 0, 0}, + { 0, 0, _image2286_size, 0, 0, 0, 0}, + { 0, 0, _image2287_size, 0, 0, 0, 0}, + { 0, 0, _image2288_size, 0, 0, 0, 0}, + { 0, 0, _image2289_size, 0, 0, 0, 0}, + { 0, 0, _image2290_size, 0, 0, 0, 0}, + { 0, 0, _image2291_size, 0, 0, 0, 0}, + { 0, 0, _image2292_size, 0, 0, 0, 0}, + { 0, 0, _image2293_size, 0, 0, 0, 0}, + { 0, 0, _image2294_size, 0, 0, 0, 0}, + {0xAA, 0, _image2295_size, 0, 0, 0, 0}, + {0xAA, 0, _image2296_size, 0, 0, 0, 0}, + {0xAA, 0, _image2297_size, 0, 0, 0, 0}, + { 0, 0, _image2298_size, 0, 0, 0, 0}, + {0xAA, 0, _image2299_size, 0, 0, 0, 0}, + {0xAA, 0, _image2300_size, 0, 0, 0, 0}, + {0x33, 0, _image2301_size, 0, 0, 0, 0}, + {0x77, 0, _image2302_size, 0, 0, 0, 0}, + {0x77, 0, _image2303_size, 0, 0, 0, 0}, + {0x77, 0, _image2304_size, 0, 0, 0, 0}, + {0x77, 0, _image2305_size, 0, 0, 0, 0}, + {0xAA, 0, _image2306_size, 0, 0, 0, 0}, + {0xAA, 0, _image2307_size, 0, 0, 0, 0}, + {0xAA, 0, _image2308_size, 0, 0, 0, 0}, + {0xAA, 0, _image2309_size, 0, 0, 0, 0}, + {0xAA, 0, _image2310_size, 0, 0, 0, 0}, + {0x22, 0, _image2311_size, 0, 0, 0, 0}, + {0x11, 0, _image2312_size, 0, 0, 0, 0}, + { 0, 0, _image2313_size, 0, 0, 0, 0}, + {0x77, 0, _image2314_size, 0, 0, 0, 0}, + {0x77, 0, _image2315_size, 0, 0, 0, 0}, + {0xAA, 0, _image2316_size, 0, 0, 0, 0}, + { 0, 0, _image2317_size, 0, 0, 0, 0}, + {0xAA, 0, _image2318_size, 0, 0, 0, 0}, + {0xAA, 0, _image2319_size, 0, 0, 0, 0}, + {0xAA, 0, _image2320_size, 0, 0, 0, 0}, + {0xAA, 0, _image2321_size, 0, 0, 0, 0}, + { 0, 0, _image2322_size, 0, 0, 0, 0}, + {0x33, 0, _image2323_size, 0, 0, 0, 0}, + {0x33, 0, _image2324_size, 0, 0, 0, 0}, + { 0, 0, _image2325_size, 0, 0, 0, 0}, + { 0, 0, _image2326_size, 0, 0, 0, 0}, + { 0, 0, _image2327_size, 0, 0, 0, 0}, + { 0, 0, _image2328_size, 0, 0, 0, 0}, + { 0, 0, _image2329_size, 0, 0, 0, 0}, + { 0, 0, _image2330_size, 0, 0, 0, 0}, + { 0, 0, _image2331_size, 0, 0, 0, 0}, + { 0, 0, _image2332_size, 0, 0, 0, 0}, + { 0, 0, _image2333_size, 0, 0, 0, 0}, + { 0, 0, _image2334_size, 0, 0, 0, 0}, + { 0, 0, _image2335_size, 0, 0, 0, 0}, + {0x22, 0, _image2336_size, 0, 0, 0, 0}, + {0x22, 0, _image2337_size, 0, 0, 0, 0}, + {0x22, 0, _image2338_size, 0, 0, 0, 0}, + {0x22, 0, _image2339_size, 0, 0, 0, 0}, + {0x33, 0, _image2340_size, 0, 0, 0, 0}, + { 0, 0, _image2341_size, 0, 0, 0, 0}, + { 0, 0, _image2342_size, 0, 0, 0, 0}, + {0x55, 0, _image2343_size, 0, 0, 0, 0}, + {0x55, 0, _image2344_size, 0, 0, 0, 0}, + { 0, 0, _image2345_size, 0, 0, 0, 0}, + { 0, 0, _image2346_size, 0, 0, 0, 0}, + { 0, 0, _image2347_size, 0, 0, 0, 0}, + { 0, 0, _image2348_size, 0, 0, 0, 0}, + { 0, 0, _image2349_size, 0, 0, 0, 0}, + { 0, 0, _image2350_size, 0, 0, 0, 0}, + { 0, 0, _image2351_size, 0, 0, 0, 0}, + { 0, 0, _image2352_size, 0, 0, 0, 0}, + { 0, 0, _image2353_size, 0, 0, 0, 0}, + { 0, 0, _image2354_size, 0, 0, 0, 0}, + { 0, 0, _image2355_size, 0, 0, 0, 0}, + { 0, 0, _image2356_size, 0, 0, 0, 0}, + { 0, 0, _image2357_size, 0, 0, 0, 0}, + { 0, 0, _image2358_size, 0, 0, 0, 0}, + { 0, 0, _image2359_size, 0, 0, 0, 0}, + { 0, 0, _image2360_size, 0, 0, 0, 0}, + { 0, 0, _image2361_size, 0, 0, 0, 0}, + { 0, 0, _image2362_size, 0, 0, 0, 0}, + { 0, 0, _image2363_size, 0, 0, 0, 0}, + { 0, 0, _image2364_size, 0, 0, 0, 0}, + { 0, 0, _image2365_size, 0, 0, 0, 0}, + { 0, 0, _image2366_size, 0, 0, 0, 0}, + { 0, 0, _image2367_size, 0, 0, 0, 0}, + { 0, 0, _image2368_size, 0, 0, 0, 0}, + { 0, 0, _image2369_size, 0, 0, 0, 0}, + {0x11, 0, _image2370_size, 0, 0, 0, 0}, + {0x11, 0, _image2371_size, 0, 0, 0, 0}, + {0x44, 0, _image2372_size, 0, 0, 0, 0}, + {0x44, 0, _image2373_size, 0, 0, 0, 0}, + { 0, 0, _image2374_size, 0, 0, 0, 0}, + { 0, 0, _image2375_size, 0, 0, 0, 0}, + {0xAA, 0, _image2376_size, 0, 0, 0, 0}, + {0x11, 0, _image2377_size, 0, 0, 0, 0}, + {0x33, 0, _image2378_size, 0, 0, 0, 0}, + { 0, 0, _image2379_size, 0, 0, 0, 0}, + {0x22, 0, _image2380_size, 0, 0, 0, 0}, + {0x33, 0, _image2381_size, 0, 0, 0, 0}, + {0x44, 0, _image2382_size, 0, 0, 0, 0}, + { 0, 0, _image2383_size, 0, 0, 0, 0}, + { 0, 0, _image2384_size, 0, 0, 0, 0}, + { 0, 0, _image2385_size, 0, 0, 0, 0}, + {0x33, 0, _image2386_size, 0, 0, 0, 0}, + { 0, 0, _image2387_size, 0, 0, 0, 0}, + { 0, 0, _image2388_size, 0, 0, 0, 0}, + {0x44, 0, _image2389_size, 0, 0, 0, 0}, + { 0, 0, _image2390_size, 0, 0, 0, 0}, + {0xAA, 0, _image2391_size, 0, 0, 0, 0}, + { 0, 0, _image2392_size, 0, 0, 0, 0}, + {0x44, 0, _image2393_size, 0, 0, 0, 0}, + { 0, 0, _image2394_size, 0, 0, 0, 0}, + { 0, 0, _image2395_size, 0, 0, 0, 0}, + { 0, 0, _image2396_size, 0, 0, 0, 0}, + {0x33, 0, _image2397_size, 0, 0, 0, 0}, + { 0, 0, _image2398_size, 0, 0, 0, 0}, + {0xAA, 0, _image2399_size, 0, 0, 0, 0}, + {0x33, 0, _image2400_size, 0, 0, 0, 0}, + {0x33, 0, _image2401_size, 0, 0, 0, 0}, + {0x44, 0, _image2402_size, 0, 0, 0, 0}, + {0x11, 0, _image2403_size, 0, 0, 0, 0}, + { 0, 0, _image2404_size, 0, 0, 0, 0}, + {0x22, 0, _image2405_size, 0, 0, 0, 0}, + {0x11, 0, _image2406_size, 0, 0, 0, 0}, + {0x22, 0, _image2407_size, 0, 0, 0, 0}, + { 0, 0, _image2408_size, 0, 0, 0, 0}, + {0x11, 0, _image2409_size, 0, 0, 0, 0}, + { 0, 0, _image2410_size, 0, 0, 0, 0}, + {0x11, 0, _image2411_size, 0, 0, 0, 0}, + { 0, 0, _image2412_size, 0, 0, 0, 0}, + { 0, 0, _image2413_size, 0, 0, 0, 0}, + {0x11, 0, _image2414_size, 0, 0, 0, 0}, + {0x44, 0, _image2415_size, 0, 0, 0, 0}, + { 0, 0, _image2416_size, 0, 0, 0, 0}, + { 0, 0, _image2417_size, 0, 0, 0, 0}, + {0xAA, 0, _image2418_size, 0, 0, 0, 0}, + { 0, 0, _image2419_size, 0, 0, 0, 0}, + { 0, 0, _image2420_size, 0, 0, 0, 0}, + { 0, 0, _image2421_size, 0, 0, 0, 0}, + { 0, 0, _image2422_size, 0, 0, 0, 0}, + { 0, 0, _image2423_size, 0, 0, 0, 0}, + { 0, 0, _image2424_size, 0, 0, 0, 0}, + { 0, 0, _image2425_size, 0, 0, 0, 0}, + { 0, 0, _image2426_size, 0, 0, 0, 0}, + { 0, 0, _image2427_size, 0, 0, 0, 0}, + { 0, 0, _image2428_size, 0, 0, 0, 0}, + {0x44, 0, _image2429_size, 0, 0, 0, 0}, + {0x33, 0, _image2430_size, 0, 0, 0, 0}, + {0x33, 0, _image2431_size, 0, 0, 0, 0}, + { 0, 0, _image2432_size, 0, 0, 0, 0}, + { 0, 0, _image2433_size, 0, 0, 0, 0}, + { 0, 0, _image2434_size, 0, 0, 0, 0}, + { 0, 0, _image2435_size, 0, 0, 0, 0}, + { 0, 0, _image2436_size, 0, 0, 0, 0}, + { 0, 0, _image2437_size, 0, 0, 0, 0}, + { 0, 0, _image2438_size, 0, 0, 0, 0}, + { 0, 0, _image2439_size, 0, 0, 0, 0}, + { 0, 0, _image2440_size, 0, 0, 0, 0}, + { 0, 0, _image2441_size, 0, 0, 0, 0}, + { 0, 0, _image2442_size, 0, 0, 0, 0}, + { 0, 0, _image2443_size, 0, 0, 0, 0}, + { 0, 0, _image2444_size, 0, 0, 0, 0}, + { 0, 0, _image2445_size, 0, 0, 0, 0}, + { 0, 0, _image2446_size, 0, 0, 0, 0}, + { 0, 0, _image2447_size, 0, 0, 0, 0}, + { 0, 0, _image2448_size, 0, 0, 0, 0}, + { 0, 0, _image2449_size, 0, 0, 0, 0}, + { 0, 0, _image2450_size, 0, 0, 0, 0}, + { 0, 0, _image2451_size, 0, 0, 0, 0}, + { 0, 0, _image2452_size, 0, 0, 0, 0}, + { 0, 0, _image2453_size, 0, 0, 0, 0}, + { 0, 0, _image2454_size, 0, 0, 0, 0}, + { 0, 0, _image2455_size, 0, 0, 0, 0}, + { 0, 0, _image2456_size, 0, 0, 0, 0}, + { 0, 0, _image2457_size, 0, 0, 0, 0}, + { 0, 0, _image2458_size, 0, 0, 0, 0}, + { 0, 0, _image2459_size, 0, 0, 0, 0}, + { 0, 0, _image2460_size, 0, 0, 0, 0}, + { 0, 0, _image2461_size, 0, 0, 0, 0}, + { 0, 0, _image2462_size, 0, 0, 0, 0}, + { 0, 0, _image2463_size, 0, 0, 0, 0}, + { 0, 0, _image2464_size, 0, 0, 0, 0}, + { 0, 0, _image2465_size, 0, 0, 0, 0}, + { 0, 0, _image2466_size, 0, 0, 0, 0}, + { 0, 0, _image2467_size, 0, 0, 0, 0}, + { 0, 0, _image2468_size, 0, 0, 0, 0}, + { 0, 0, _image2469_size, 0, 0, 0, 0}, + { 0, 0, _image2470_size, 0, 0, 0, 0}, + { 0, 0, _image2471_size, 0, 0, 0, 0}, + { 0, 0, _image2472_size, 0, 0, 0, 0}, + { 0, 0, _image2473_size, 0, 0, 0, 0}, + { 0, 0, _image2474_size, 0, 0, 0, 0}, + {0x11, 0, _image2475_size, 0, 0, 0, 0}, + { 0, 0, _image2476_size, 0, 0, 0, 0}, + { 0, 0, _image2477_size, 0, 0, 0, 0}, + { 0, 0, _image2478_size, 0, 0, 0, 0}, + { 0, 0, _image2479_size, 0, 0, 0, 0}, + { 0, 0, _image2480_size, 0, 0, 0, 0}, + { 0, 0, _image2481_size, 0, 0, 0, 0}, + { 0, 0, _image2482_size, 0, 0, 0, 0}, + { 0, 0, _image2483_size, 0, 0, 0, 0}, + { 0, 0, _image2484_size, 0, 0, 0, 0}, + { 0, 0, _image2485_size, 0, 0, 0, 0}, + { 0, 0, _image2486_size, 0, 0, 0, 0}, + { 0, 0, _image2487_size, 0, 0, 0, 0}, + { 0, 0, _image2488_size, 0, 0, 0, 0}, + { 0, 0, _image2489_size, 0, 0, 0, 0}, + { 0, 0, _image2490_size, 0, 0, 0, 0}, + { 0, 0, _image2491_size, 0, 0, 0, 0}, + { 0, 0, _image2492_size, 0, 0, 0, 0}, + { 0, 0, _image2493_size, 0, 0, 0, 0}, + { 0, 0, _image2494_size, 0, 0, 0, 0}, + { 0, 0, _image2495_size, 0, 0, 0, 0}, + { 0, 0, _image2496_size, 0, 0, 0, 0}, + { 0, 0, _image2497_size, 0, 0, 0, 0}, + { 0, 0, _image2498_size, 0, 0, 0, 0}, + { 0, 0, _image2499_size, 0, 0, 0, 0}, + { 0, 0, _image2500_size, 0, 0, 0, 0}, + { 0, 0, _image2501_size, 0, 0, 0, 0}, + { 0, 0, _image2502_size, 0, 0, 0, 0}, + { 0, 0, _image2503_size, 0, 0, 0, 0}, + { 0, 0, _image2504_size, 0, 0, 0, 0}, + { 0, 0, _image2505_size, 0, 0, 0, 0}, + { 0, 0, _image2506_size, 0, 0, 0, 0}, + { 0, 0, _image2507_size, 0, 0, 0, 0}, + { 0, 0, _image2508_size, 0, 0, 0, 0}, + { 0, 0, _image2509_size, 0, 0, 0, 0}, + { 0, 0, _image2510_size, 0, 0, 0, 0}, + { 0, 0, _image2511_size, 0, 0, 0, 0}, + { 0, 0, _image2512_size, 0, 0, 0, 0}, + { 0, 0, _image2513_size, 0, 0, 0, 0}, + { 0, 0, _image2514_size, 0, 0, 0, 0}, + { 0, 0, _image2515_size, 0, 0, 0, 0}, + { 0, 0, _image2516_size, 0, 0, 0, 0}, + { 0, 0, _image2517_size, 0, 0, 0, 0}, + { 0, 0, _image2518_size, 0, 0, 0, 0}, + { 0, 0, _image2519_size, 0, 0, 0, 0}, + { 0, 0, _image2520_size, 0, 0, 0, 0}, + { 0, 0, _image2521_size, 0, 0, 0, 0}, + { 0, 0, _image2522_size, 0, 0, 0, 0}, + { 0, 0, _image2523_size, 0, 0, 0, 0}, + { 0, 0, _image2524_size, 0, 0, 0, 0}, + { 0, 0, _image2525_size, 0, 0, 0, 0}, + { 0, 0, _image2526_size, 0, 0, 0, 0}, + { 0, 0, _image2527_size, 0, 0, 0, 0}, + { 0, 0, _image2528_size, 0, 0, 0, 0}, + { 0, 0, _image2529_size, 0, 0, 0, 0}, + { 0, 0, _image2530_size, 0, 0, 0, 0}, + { 0, 0, _image2531_size, 0, 0, 0, 0}, + { 0, 0, _image2532_size, 0, 0, 0, 0}, + { 0, 0, _image2533_size, 0, 0, 0, 0}, + { 0, 0, _image2534_size, 0, 0, 0, 0}, + { 0, 0, _image2535_size, 0, 0, 0, 0}, + { 0, 0, _image2536_size, 0, 0, 0, 0}, + { 0, 0, _image2537_size, 0, 0, 0, 0}, + { 0, 0, _image2538_size, 0, 0, 0, 0}, + { 0, 0, _image2539_size, 0, 0, 0, 0}, + { 0, 0, _image2540_size, 0, 0, 0, 0}, + { 0, 0, _image2541_size, 0, 0, 0, 0}, + { 0, 0, _image2542_size, 0, 0, 0, 0}, + { 0, 0, _image2543_size, 0, 0, 0, 0}, + { 0, 0, _image2544_size, 0, 0, 0, 0}, + { 0, 0, _image2545_size, 0, 0, 0, 0}, + { 0, 0, _image2546_size, 0, 0, 0, 0}, + { 0, 0, _image2547_size, 0, 0, 0, 0}, + { 0, 0, _image2548_size, 0, 0, 0, 0}, + { 0, 0, _image2549_size, 0, 0, 0, 0}, + { 0, 0, _image2550_size, 0, 0, 0, 0}, + { 0, 0, _image2551_size, 0, 0, 0, 0}, + { 0, 0, _image2552_size, 0, 0, 0, 0}, + { 0, 0, _image2553_size, 0, 0, 0, 0}, + { 0, 0, _image2554_size, 0, 0, 0, 0}, + { 0, 0, _image2555_size, 0, 0, 0, 0}, + { 0, 0, _image2556_size, 0, 0, 0, 0}, + { 0, 0, _image2557_size, 0, 0, 0, 0}, + { 0, 0, _image2558_size, 0, 0, 0, 0}, + { 0, 0, _image2559_size, 0, 0, 0, 0}, + { 0, 0, _image2560_size, 0, 0, 0, 0}, + { 0, 0, _image2561_size, 0, 0, 0, 0}, + { 0, 0, _image2562_size, 0, 0, 0, 0}, + { 0, 0, _image2563_size, 0, 0, 0, 0}, + { 0, 0, _image2564_size, 0, 0, 0, 0}, + { 0, 0, _image2565_size, 0, 0, 0, 0}, + { 0, 0, _image2566_size, 0, 0, 0, 0}, + { 0, 0, _image2567_size, 0, 0, 0, 0}, + { 0, 0, _image2568_size, 0, 0, 0, 0}, + { 0, 0, _image2569_size, 0, 0, 0, 0}, + { 0, 0, _image2570_size, 0, 0, 0, 0}, + { 0, 0, _image2571_size, 0, 0, 0, 0}, + { 0, 0, _image2572_size, 0, 0, 0, 0}, + { 0, 0, _image2573_size, 0, 0, 0, 0}, + { 0, 0, _image2574_size, 0, 0, 0, 0}, + { 0, 0, _image2575_size, 0, 0, 0, 0}, + { 0, 0, _image2576_size, 0, 0, 0, 0}, + { 0, 0, _image2577_size, 0, 0, 0, 0}, + { 0, 0, _image2578_size, 0, 0, 0, 0}, + { 0, 0, _image2579_size, 0, 0, 0, 0}, + { 0, 0, _image2580_size, 0, 0, 0, 0}, + { 0, 0, _image2581_size, 0, 0, 0, 0}, + { 0, 0, _image2582_size, 0, 0, 0, 0}, + { 0, 0, _image2583_size, 0, 0, 0, 0}, + { 0, 0, _image2584_size, 0, 0, 0, 0}, + { 0, 0, _image2585_size, 0, 0, 0, 0}, + { 0, 0, _image2586_size, 0, 0, 0, 0}, + { 0, 0, _image2587_size, 0, 0, 0, 0}, + { 0, 0, _image2588_size, 0, 0, 0, 0}, + { 0, 0, _image2589_size, 0, 0, 0, 0}, + { 0, 0, _image2590_size, 0, 0, 0, 0}, + { 0, 0, _image2591_size, 0, 0, 0, 0}, + { 0, 0, _image2592_size, 0, 0, 0, 0}, + { 0, 0, _image2593_size, 0, 0, 0, 0}, + { 0, 0, _image2594_size, 0, 0, 0, 0}, + { 0, 0, _image2595_size, 0, 0, 0, 0}, + { 0, 0, _image2596_size, 0, 0, 0, 0}, + { 0, 0, _image2597_size, 0, 0, 0, 0}, + { 0, 0, _image2598_size, 0, 0, 0, 0}, + { 0, 0, _image2599_size, 0, 0, 0, 0}, + { 0, 0, _image2600_size, 0, 0, 0, 0}, + { 0, 0, _image2601_size, 0, 0, 0, 0}, + { 0, 0, _image2602_size, 0, 0, 0, 0}, + { 0, 0, _image2603_size, 0, 0, 0, 0}, + { 0, 0, _image2604_size, 0, 0, 0, 0}, + { 0, 0, _image2605_size, 0, 0, 0, 0}, + { 0, 0, _image2606_size, 0, 0, 0, 0}, + { 0, 0, _image2607_size, 0, 0, 0, 0}, + { 0, 0, _image2608_size, 0, 0, 0, 0}, + { 0, 0, _image2609_size, 0, 0, 0, 0}, + { 0, 0, _image2610_size, 0, 0, 0, 0}, + { 0, 0, _image2611_size, 0, 0, 0, 0}, + { 0, 0, _image2612_size, 0, 0, 0, 0}, + { 0, 0, _image2613_size, 0, 0, 0, 0}, + { 0, 0, _image2614_size, 0, 0, 0, 0}, + { 0, 0, _image2615_size, 0, 0, 0, 0}, + { 0, 0, _image2616_size, 0, 0, 0, 0}, + { 0, 0, _image2617_size, 0, 0, 0, 0}, + { 0, 0, _image2618_size, 0, 0, 0, 0}, + { 0, 0, _image2619_size, 0, 0, 0, 0}, + { 0, 0, _image2620_size, 0, 0, 0, 0}, + { 0, 0, _image2621_size, 0, 0, 0, 0}, + { 0, 0, _image2622_size, 0, 0, 0, 0}, + { 0, 0, _image2623_size, 0, 0, 0, 0}, + { 0, 0, _image2624_size, 0, 0, 0, 0}, + { 0, 0, _image2625_size, 0, 0, 0, 0}, + { 0, 0, _image2626_size, 0, 0, 0, 0}, + { 0, 0, _image2627_size, 0, 0, 0, 0}, + { 0, 0, _image2628_size, 0, 0, 0, 0}, + { 0, 0, _image2629_size, 0, 0, 0, 0}, + { 0, 0, _image2630_size, 0, 0, 0, 0}, + { 0, 0, _image2631_size, 0, 0, 0, 0}, + { 0, 0, _image2632_size, 0, 0, 0, 0}, + { 0, 0, _image2633_size, 0, 0, 0, 0}, + { 0, 0, _image2634_size, 0, 0, 0, 0}, + { 0, 0, _image2635_size, 0, 0, 0, 0}, + { 0, 0, _image2636_size, 0, 0, 0, 0}, + { 0, 0, _image2637_size, 0, 0, 0, 0}, + { 0, 0, _image2638_size, 0, 0, 0, 0}, + { 0, 0, _image2639_size, 0, 0, 0, 0}, + { 0, 0, _image2640_size, 0, 0, 0, 0}, + { 0, 0, _image2641_size, 0, 0, 0, 0}, + { 0, 0, _image2642_size, 0, 0, 0, 0}, + { 0, 0, _image2643_size, 0, 0, 0, 0}, + { 0, 0, _image2644_size, 0, 0, 0, 0}, + { 0, 0, _image2645_size, 0, 0, 0, 0}, + { 0, 0, _image2646_size, 0, 0, 0, 0}, + { 0, 0, _image2647_size, 0, 0, 0, 0}, + { 0, 0, _image2648_size, 0, 0, 0, 0}, + { 0, 0, _image2649_size, 0, 0, 0, 0}, + { 0, 0, _image2650_size, 0, 0, 0, 0}, + { 0, 0, _image2651_size, 0, 0, 0, 0}, + { 0, 0, _image2652_size, 0, 0, 0, 0}, + { 0, 0, _image2653_size, 0, 0, 0, 0}, + { 0, 0, _image2654_size, 0, 0, 0, 0}, + { 0, 0, _image2655_size, 0, 0, 0, 0}, + { 0, 0, _image2656_size, 0, 0, 0, 0}, + { 0, 0, _image2657_size, 0, 0, 0, 0}, + { 0, 0, _image2658_size, 0, 0, 0, 0}, + { 0, 0, _image2659_size, 0, 0, 0, 0}, + { 0, 0, _image2660_size, 0, 0, 0, 0}, + { 0, 0, _image2661_size, 0, 0, 0, 0}, + { 0, 0, _image2662_size, 0, 0, 0, 0}, + { 0, 0, _image2663_size, 0, 0, 0, 0}, + { 0, 0, _image2664_size, 0, 0, 0, 0}, + { 0, 0, _image2665_size, 0, 0, 0, 0}, + { 0, 0, _image2666_size, 0, 0, 0, 0}, + { 0, 0, _image2667_size, 0, 0, 0, 0}, + { 0, 0, _image2668_size, 0, 0, 0, 0}, + { 0, 0, _image2669_size, 0, 0, 0, 0}, + { 0, 0, _image2670_size, 0, 0, 0, 0}, + { 0, 0, _image2671_size, 0, 0, 0, 0}, + { 0, 0, _image2672_size, 0, 0, 0, 0}, + { 0, 0, _image2673_size, 0, 0, 0, 0}, + { 0, 0, _image2674_size, 0, 0, 0, 0}, + { 0, 0, _image2675_size, 0, 0, 0, 0}, + { 0, 0, _image2676_size, 0, 0, 0, 0}, + { 0, 0, _image2677_size, 0, 0, 0, 0}, + { 0, 0, _image2678_size, 0, 0, 0, 0}, + { 0, 0, _image2679_size, 0, 0, 0, 0}, + { 0, 0, _image2680_size, 0, 0, 0, 0}, + { 0, 0, _image2681_size, 0, 0, 0, 0}, + { 0, 0, _image2682_size, 0, 0, 0, 0}, + { 0, 0, _image2683_size, 0, 0, 0, 0}, + { 0, 0, _image2684_size, 0, 0, 0, 0}, + { 0, 0, _image2685_size, 0, 0, 0, 0}, + { 0, 0, _image2686_size, 0, 0, 0, 0}, + { 0, 0, _image2687_size, 0, 0, 0, 0}, + { 0, 0, _image2688_size, 0, 0, 0, 0}, + { 0, 0, _image2689_size, 0, 0, 0, 0}, + { 0, 0, _image2690_size, 0, 0, 0, 0}, + { 0, 0, _image2691_size, 0, 0, 0, 0}, + { 0, 0, _image2692_size, 0, 0, 0, 0}, + { 0, 0, _image2693_size, 0, 0, 0, 0}, + { 0, 0, _image2694_size, 0, 0, 0, 0}, + { 0, 0, _image2695_size, 0, 0, 0, 0}, + { 0, 0, _image2696_size, 0, 0, 0, 0}, + { 0, 0, _image2697_size, 0, 0, 0, 0}, + { 0, 0, _image2698_size, 0, 0, 0, 0}, + { 0, 0, 0xFFFF, 0, 0, 0, 0} +}; + + + +void nullsub_41(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void image_related_calls_decompressdata_function(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 sub_GAME_7F0CBF2C +/* 0FB290 7F0C6760 24040008 */ li $a0, 8 +/* 0FB294 7F0C6764 AFA22B94 */ sw $v0, 0x2b94($sp) +/* 0FB298 7F0C6768 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 0FB2F8 7F0C67C8 24040008 */ li $a0, 8 +/* 0FB2FC 7F0C67CC 0040B025 */ move $s6, $v0 +/* 0FB300 7F0C67D0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 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 +/* 0FC2DC 7F0C77AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0FC2E0 7F0C77B0 AFB2000C */ sw $s2, 0xc($sp) +/* 0FC2E4 7F0C77B4 AFB10008 */ sw $s1, 8($sp) +/* 0FC2E8 7F0C77B8 AFB00004 */ sw $s0, 4($sp) +/* 0FC2EC 7F0C77BC 00C08025 */ move $s0, $a2 +/* 0FC2F0 7F0C77C0 00E08825 */ move $s1, $a3 +/* 0FC2F4 7F0C77C4 00809025 */ move $s2, $a0 +/* 0FC2F8 7F0C77C8 AFB40014 */ sw $s4, 0x14($sp) +/* 0FC2FC 7F0C77CC AFB30010 */ sw $s3, 0x10($sp) +/* 0FC300 7F0C77D0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0FC304 7F0C77D4 18A0003F */ blez $a1, .L7F0C78D4 +/* 0FC308 7F0C77D8 00001825 */ move $v1, $zero +/* 0FC30C 7F0C77DC 30A60003 */ andi $a2, $a1, 3 +/* 0FC310 7F0C77E0 10C00018 */ beqz $a2, .L7F0C7844 +/* 0FC314 7F0C77E4 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC318 7F0C77E8 00007840 */ sll $t7, $zero, 1 +/* 0FC31C 7F0C77EC 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC320 7F0C77F0 024F1021 */ addu $v0, $s2, $t7 +/* 0FC324 7F0C77F4 0010C2C0 */ sll $t8, $s0, 0xb +/* 0FC328 7F0C77F8 0007C980 */ sll $t9, $a3, 6 +/* 0FC32C 7F0C77FC 03197025 */ or $t6, $t8, $t9 +/* 0FC330 7F0C7800 00097840 */ sll $t7, $t1, 1 +/* 0FC334 7F0C7804 01CFC025 */ or $t8, $t6, $t7 +/* 0FC338 7F0C7808 030A2825 */ or $a1, $t8, $t2 +/* 0FC33C 7F0C780C 30B9FFFF */ andi $t9, $a1, 0xffff +/* 0FC340 7F0C7810 03202825 */ move $a1, $t9 +/* 0FC344 7F0C7814 00C02025 */ move $a0, $a2 +.L7F0C7818: +/* 0FC348 7F0C7818 944E0000 */ lhu $t6, ($v0) +/* 0FC34C 7F0C781C 54AE0004 */ bnel $a1, $t6, .L7F0C7830 +/* 0FC350 7F0C7820 24630001 */ addiu $v1, $v1, 1 +/* 0FC354 7F0C7824 100000E5 */ b .L7F0C7BBC +/* 0FC358 7F0C7828 00601025 */ move $v0, $v1 +/* 0FC35C 7F0C782C 24630001 */ addiu $v1, $v1, 1 +.L7F0C7830: +/* 0FC360 7F0C7830 1483FFF9 */ bne $a0, $v1, .L7F0C7818 +/* 0FC364 7F0C7834 24420002 */ addiu $v0, $v0, 2 +/* 0FC368 7F0C7838 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FC36C 7F0C783C 506F0026 */ beql $v1, $t7, .L7F0C78D8 +/* 0FC370 7F0C7840 8FA6001C */ lw $a2, 0x1c($sp) +.L7F0C7844: +/* 0FC374 7F0C7844 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC378 7F0C7848 0003C040 */ sll $t8, $v1, 1 +/* 0FC37C 7F0C784C 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC380 7F0C7850 02581021 */ addu $v0, $s2, $t8 +/* 0FC384 7F0C7854 0010CAC0 */ sll $t9, $s0, 0xb +/* 0FC388 7F0C7858 00117180 */ sll $t6, $s1, 6 +/* 0FC38C 7F0C785C 032E7825 */ or $t7, $t9, $t6 +/* 0FC390 7F0C7860 0009C040 */ sll $t8, $t1, 1 +/* 0FC394 7F0C7864 01F8C825 */ or $t9, $t7, $t8 +/* 0FC398 7F0C7868 032A2825 */ or $a1, $t9, $t2 +/* 0FC39C 7F0C786C 30AEFFFF */ andi $t6, $a1, 0xffff +/* 0FC3A0 7F0C7870 01C02825 */ move $a1, $t6 +.L7F0C7874: +/* 0FC3A4 7F0C7874 944F0000 */ lhu $t7, ($v0) +/* 0FC3A8 7F0C7878 54AF0004 */ bnel $a1, $t7, .L7F0C788C +/* 0FC3AC 7F0C787C 94580002 */ lhu $t8, 2($v0) +/* 0FC3B0 7F0C7880 100000CE */ b .L7F0C7BBC +/* 0FC3B4 7F0C7884 00601025 */ move $v0, $v1 +/* 0FC3B8 7F0C7888 94580002 */ lhu $t8, 2($v0) +.L7F0C788C: +/* 0FC3BC 7F0C788C 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FC3C0 7F0C7890 54B80004 */ bnel $a1, $t8, .L7F0C78A4 +/* 0FC3C4 7F0C7894 94590004 */ lhu $t9, 4($v0) +/* 0FC3C8 7F0C7898 100000C8 */ b .L7F0C7BBC +/* 0FC3CC 7F0C789C 24620001 */ addiu $v0, $v1, 1 +/* 0FC3D0 7F0C78A0 94590004 */ lhu $t9, 4($v0) +.L7F0C78A4: +/* 0FC3D4 7F0C78A4 54B90004 */ bnel $a1, $t9, .L7F0C78B8 +/* 0FC3D8 7F0C78A8 944E0006 */ lhu $t6, 6($v0) +/* 0FC3DC 7F0C78AC 100000C3 */ b .L7F0C7BBC +/* 0FC3E0 7F0C78B0 24620002 */ addiu $v0, $v1, 2 +/* 0FC3E4 7F0C78B4 944E0006 */ lhu $t6, 6($v0) +.L7F0C78B8: +/* 0FC3E8 7F0C78B8 54AE0004 */ bnel $a1, $t6, .L7F0C78CC +/* 0FC3EC 7F0C78BC 24630004 */ addiu $v1, $v1, 4 +/* 0FC3F0 7F0C78C0 100000BE */ b .L7F0C7BBC +/* 0FC3F4 7F0C78C4 24620003 */ addiu $v0, $v1, 3 +/* 0FC3F8 7F0C78C8 24630004 */ addiu $v1, $v1, 4 +.L7F0C78CC: +/* 0FC3FC 7F0C78CC 146FFFE9 */ bne $v1, $t7, .L7F0C7874 +/* 0FC400 7F0C78D0 24420008 */ addiu $v0, $v0, 8 +.L7F0C78D4: +/* 0FC404 7F0C78D4 8FA6001C */ lw $a2, 0x1c($sp) +.L7F0C78D8: +/* 0FC408 7F0C78D8 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC40C 7F0C78DC 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC410 7F0C78E0 24C6FFFF */ addiu $a2, $a2, -1 +/* 0FC414 7F0C78E4 28C10002 */ slti $at, $a2, 2 +/* 0FC418 7F0C78E8 00002825 */ move $a1, $zero +/* 0FC41C 7F0C78EC 1420003A */ bnez $at, .L7F0C79D8 +/* 0FC420 7F0C78F0 00C03825 */ move $a3, $a2 +/* 0FC424 7F0C78F4 02100019 */ multu $s0, $s0 +/* 0FC428 7F0C78F8 0000C012 */ mflo $t8 +/* 0FC42C 7F0C78FC 00000000 */ nop +/* 0FC430 7F0C7900 00000000 */ nop +/* 0FC434 7F0C7904 02310019 */ multu $s1, $s1 +/* 0FC438 7F0C7908 0000C812 */ mflo $t9 +/* 0FC43C 7F0C790C 03197021 */ addu $t6, $t8, $t9 +/* 0FC440 7F0C7910 000AC900 */ sll $t9, $t2, 4 +/* 0FC444 7F0C7914 01290019 */ multu $t1, $t1 +/* 0FC448 7F0C7918 032AC823 */ subu $t9, $t9, $t2 +/* 0FC44C 7F0C791C 0019C980 */ sll $t9, $t9, 6 +/* 0FC450 7F0C7920 032AC821 */ addu $t9, $t9, $t2 +/* 0FC454 7F0C7924 00007812 */ mflo $t7 +/* 0FC458 7F0C7928 01CFC021 */ addu $t8, $t6, $t7 +/* 0FC45C 7F0C792C 03194021 */ addu $t0, $t8, $t9 +/* 0FC460 7F0C7930 00E55821 */ addu $t3, $a3, $a1 +.L7F0C7934: +/* 0FC464 7F0C7934 000B2043 */ sra $a0, $t3, 1 +/* 0FC468 7F0C7938 00047840 */ sll $t7, $a0, 1 +/* 0FC46C 7F0C793C 024FC021 */ addu $t8, $s2, $t7 +/* 0FC470 7F0C7940 97030000 */ lhu $v1, ($t8) +/* 0FC474 7F0C7944 000362C3 */ sra $t4, $v1, 0xb +/* 0FC478 7F0C7948 3199001F */ andi $t9, $t4, 0x1f +/* 0FC47C 7F0C794C 03390019 */ multu $t9, $t9 +/* 0FC480 7F0C7950 00036983 */ sra $t5, $v1, 6 +/* 0FC484 7F0C7954 31AE001F */ andi $t6, $t5, 0x1f +/* 0FC488 7F0C7958 00039843 */ sra $s3, $v1, 1 +/* 0FC48C 7F0C795C 326F001F */ andi $t7, $s3, 0x1f +/* 0FC490 7F0C7960 0000C012 */ mflo $t8 +/* 0FC494 7F0C7964 00000000 */ nop +/* 0FC498 7F0C7968 00000000 */ nop +/* 0FC49C 7F0C796C 01CE0019 */ multu $t6, $t6 +/* 0FC4A0 7F0C7970 0000C812 */ mflo $t9 +/* 0FC4A4 7F0C7974 03197021 */ addu $t6, $t8, $t9 +/* 0FC4A8 7F0C7978 30790001 */ andi $t9, $v1, 1 +/* 0FC4AC 7F0C797C 01EF0019 */ multu $t7, $t7 +/* 0FC4B0 7F0C7980 00007812 */ mflo $t7 +/* 0FC4B4 7F0C7984 01CFC021 */ addu $t8, $t6, $t7 +/* 0FC4B8 7F0C7988 00197100 */ sll $t6, $t9, 4 +/* 0FC4BC 7F0C798C 01D97023 */ subu $t6, $t6, $t9 +/* 0FC4C0 7F0C7990 000E7180 */ sll $t6, $t6, 6 +/* 0FC4C4 7F0C7994 01D97021 */ addu $t6, $t6, $t9 +/* 0FC4C8 7F0C7998 030EA021 */ addu $s4, $t8, $t6 +/* 0FC4CC 7F0C799C 0288082A */ slt $at, $s4, $t0 +/* 0FC4D0 7F0C79A0 50200004 */ beql $at, $zero, .L7F0C79B4 +/* 0FC4D4 7F0C79A4 0114082A */ slt $at, $t0, $s4 +/* 0FC4D8 7F0C79A8 10000007 */ b .L7F0C79C8 +/* 0FC4DC 7F0C79AC 00802825 */ move $a1, $a0 +/* 0FC4E0 7F0C79B0 0114082A */ slt $at, $t0, $s4 +.L7F0C79B4: +/* 0FC4E4 7F0C79B4 10200003 */ beqz $at, .L7F0C79C4 +/* 0FC4E8 7F0C79B8 00803825 */ move $a3, $a0 +/* 0FC4EC 7F0C79BC 10000002 */ b .L7F0C79C8 +/* 0FC4F0 7F0C79C0 00803825 */ move $a3, $a0 +.L7F0C79C4: +/* 0FC4F4 7F0C79C4 00802825 */ move $a1, $a0 +.L7F0C79C8: +/* 0FC4F8 7F0C79C8 00E57823 */ subu $t7, $a3, $a1 +/* 0FC4FC 7F0C79CC 29E10002 */ slti $at, $t7, 2 +/* 0FC500 7F0C79D0 5020FFD8 */ beql $at, $zero, .L7F0C7934 +/* 0FC504 7F0C79D4 00E55821 */ addu $t3, $a3, $a1 +.L7F0C79D8: +/* 0FC508 7F0C79D8 24E5FFFC */ addiu $a1, $a3, -4 +/* 0FC50C 7F0C79DC 04A10002 */ bgez $a1, .L7F0C79E8 +/* 0FC510 7F0C79E0 8FB9001C */ lw $t9, 0x1c($sp) +/* 0FC514 7F0C79E4 00002825 */ move $a1, $zero +.L7F0C79E8: +/* 0FC518 7F0C79E8 24E70004 */ addiu $a3, $a3, 4 +/* 0FC51C 7F0C79EC 00F9082A */ slt $at, $a3, $t9 +/* 0FC520 7F0C79F0 14200002 */ bnez $at, .L7F0C79FC +/* 0FC524 7F0C79F4 3C14000F */ lui $s4, (0x000F423F >> 16) # lui $s4, 0xf +/* 0FC528 7F0C79F8 00C03825 */ move $a3, $a2 +.L7F0C79FC: +/* 0FC52C 7F0C79FC 3694423F */ ori $s4, (0x000F423F & 0xFFFF) # ori $s4, $s4, 0x423f +/* 0FC530 7F0C7A00 00E5082A */ slt $at, $a3, $a1 +/* 0FC534 7F0C7A04 00004025 */ move $t0, $zero +/* 0FC538 7F0C7A08 02803025 */ move $a2, $s4 +/* 0FC53C 7F0C7A0C 1420006A */ bnez $at, .L7F0C7BB8 +/* 0FC540 7F0C7A10 00A02025 */ move $a0, $a1 +/* 0FC544 7F0C7A14 00E51023 */ subu $v0, $a3, $a1 +/* 0FC548 7F0C7A18 24420001 */ addiu $v0, $v0, 1 +/* 0FC54C 7F0C7A1C 30580001 */ andi $t8, $v0, 1 +/* 0FC550 7F0C7A20 13000023 */ beqz $t8, .L7F0C7AB0 +/* 0FC554 7F0C7A24 00057040 */ sll $t6, $a1, 1 +/* 0FC558 7F0C7A28 024E7821 */ addu $t7, $s2, $t6 +/* 0FC55C 7F0C7A2C 95E20000 */ lhu $v0, ($t7) +/* 0FC560 7F0C7A30 24A40001 */ addiu $a0, $a1, 1 +/* 0FC564 7F0C7A34 240303C1 */ li $v1, 961 +/* 0FC568 7F0C7A38 30590001 */ andi $t9, $v0, 1 +/* 0FC56C 7F0C7A3C 15590003 */ bne $t2, $t9, .L7F0C7A4C +/* 0FC570 7F0C7A40 0002C2C3 */ sra $t8, $v0, 0xb +/* 0FC574 7F0C7A44 10000001 */ b .L7F0C7A4C +/* 0FC578 7F0C7A48 00001825 */ move $v1, $zero +.L7F0C7A4C: +/* 0FC57C 7F0C7A4C 330E001F */ andi $t6, $t8, 0x1f +/* 0FC580 7F0C7A50 01D05823 */ subu $t3, $t6, $s0 +/* 0FC584 7F0C7A54 016B0019 */ multu $t3, $t3 +/* 0FC588 7F0C7A58 00027983 */ sra $t7, $v0, 6 +/* 0FC58C 7F0C7A5C 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC590 7F0C7A60 03316023 */ subu $t4, $t9, $s1 +/* 0FC594 7F0C7A64 0002C043 */ sra $t8, $v0, 1 +/* 0FC598 7F0C7A68 330E001F */ andi $t6, $t8, 0x1f +/* 0FC59C 7F0C7A6C 01C96823 */ subu $t5, $t6, $t1 +/* 0FC5A0 7F0C7A70 00007812 */ mflo $t7 +/* 0FC5A4 7F0C7A74 006FC821 */ addu $t9, $v1, $t7 +/* 0FC5A8 7F0C7A78 00000000 */ nop +/* 0FC5AC 7F0C7A7C 018C0019 */ multu $t4, $t4 +/* 0FC5B0 7F0C7A80 0000C012 */ mflo $t8 +/* 0FC5B4 7F0C7A84 03387021 */ addu $t6, $t9, $t8 +/* 0FC5B8 7F0C7A88 24F90001 */ addiu $t9, $a3, 1 +/* 0FC5BC 7F0C7A8C 01AD0019 */ multu $t5, $t5 +/* 0FC5C0 7F0C7A90 00007812 */ mflo $t7 +/* 0FC5C4 7F0C7A94 01CF9821 */ addu $s3, $t6, $t7 +/* 0FC5C8 7F0C7A98 0274082A */ slt $at, $s3, $s4 +/* 0FC5CC 7F0C7A9C 10200003 */ beqz $at, .L7F0C7AAC +/* 0FC5D0 7F0C7AA0 00000000 */ nop +/* 0FC5D4 7F0C7AA4 00A04025 */ move $t0, $a1 +/* 0FC5D8 7F0C7AA8 02603025 */ move $a2, $s3 +.L7F0C7AAC: +/* 0FC5DC 7F0C7AAC 13240042 */ beq $t9, $a0, .L7F0C7BB8 +.L7F0C7AB0: +/* 0FC5E0 7F0C7AB0 0004C040 */ sll $t8, $a0, 1 +/* 0FC5E4 7F0C7AB4 02582821 */ addu $a1, $s2, $t8 +.L7F0C7AB8: +/* 0FC5E8 7F0C7AB8 94A20000 */ lhu $v0, ($a1) +/* 0FC5EC 7F0C7ABC 240303C1 */ li $v1, 961 +/* 0FC5F0 7F0C7AC0 304E0001 */ andi $t6, $v0, 1 +/* 0FC5F4 7F0C7AC4 154E0003 */ bne $t2, $t6, .L7F0C7AD4 +/* 0FC5F8 7F0C7AC8 00027AC3 */ sra $t7, $v0, 0xb +/* 0FC5FC 7F0C7ACC 10000001 */ b .L7F0C7AD4 +/* 0FC600 7F0C7AD0 00001825 */ move $v1, $zero +.L7F0C7AD4: +/* 0FC604 7F0C7AD4 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC608 7F0C7AD8 03306023 */ subu $t4, $t9, $s0 +/* 0FC60C 7F0C7ADC 018C0019 */ multu $t4, $t4 +/* 0FC610 7F0C7AE0 0002C183 */ sra $t8, $v0, 6 +/* 0FC614 7F0C7AE4 330E001F */ andi $t6, $t8, 0x1f +/* 0FC618 7F0C7AE8 01D16823 */ subu $t5, $t6, $s1 +/* 0FC61C 7F0C7AEC 00027843 */ sra $t7, $v0, 1 +/* 0FC620 7F0C7AF0 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC624 7F0C7AF4 03299023 */ subu $s2, $t9, $t1 +/* 0FC628 7F0C7AF8 0000C012 */ mflo $t8 +/* 0FC62C 7F0C7AFC 00787021 */ addu $t6, $v1, $t8 +/* 0FC630 7F0C7B00 240303C1 */ li $v1, 961 +/* 0FC634 7F0C7B04 01AD0019 */ multu $t5, $t5 +/* 0FC638 7F0C7B08 00007812 */ mflo $t7 +/* 0FC63C 7F0C7B0C 01CFC821 */ addu $t9, $t6, $t7 +/* 0FC640 7F0C7B10 00000000 */ nop +/* 0FC644 7F0C7B14 02520019 */ multu $s2, $s2 +/* 0FC648 7F0C7B18 0000C012 */ mflo $t8 +/* 0FC64C 7F0C7B1C 03389821 */ addu $s3, $t9, $t8 +/* 0FC650 7F0C7B20 0266082A */ slt $at, $s3, $a2 +/* 0FC654 7F0C7B24 50200004 */ beql $at, $zero, .L7F0C7B38 +/* 0FC658 7F0C7B28 94A20002 */ lhu $v0, 2($a1) +/* 0FC65C 7F0C7B2C 00804025 */ move $t0, $a0 +/* 0FC660 7F0C7B30 02603025 */ move $a2, $s3 +/* 0FC664 7F0C7B34 94A20002 */ lhu $v0, 2($a1) +.L7F0C7B38: +/* 0FC668 7F0C7B38 304E0001 */ andi $t6, $v0, 1 +/* 0FC66C 7F0C7B3C 154E0003 */ bne $t2, $t6, .L7F0C7B4C +/* 0FC670 7F0C7B40 00027AC3 */ sra $t7, $v0, 0xb +/* 0FC674 7F0C7B44 10000001 */ b .L7F0C7B4C +/* 0FC678 7F0C7B48 00001825 */ move $v1, $zero +.L7F0C7B4C: +/* 0FC67C 7F0C7B4C 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC680 7F0C7B50 03305823 */ subu $t3, $t9, $s0 +/* 0FC684 7F0C7B54 016B0019 */ multu $t3, $t3 +/* 0FC688 7F0C7B58 0002C183 */ sra $t8, $v0, 6 +/* 0FC68C 7F0C7B5C 330E001F */ andi $t6, $t8, 0x1f +/* 0FC690 7F0C7B60 01D16023 */ subu $t4, $t6, $s1 +/* 0FC694 7F0C7B64 00027843 */ sra $t7, $v0, 1 +/* 0FC698 7F0C7B68 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC69C 7F0C7B6C 03296823 */ subu $t5, $t9, $t1 +/* 0FC6A0 7F0C7B70 0000C012 */ mflo $t8 +/* 0FC6A4 7F0C7B74 00787021 */ addu $t6, $v1, $t8 +/* 0FC6A8 7F0C7B78 00000000 */ nop +/* 0FC6AC 7F0C7B7C 018C0019 */ multu $t4, $t4 +/* 0FC6B0 7F0C7B80 00007812 */ mflo $t7 +/* 0FC6B4 7F0C7B84 01CFC821 */ addu $t9, $t6, $t7 +/* 0FC6B8 7F0C7B88 24EE0001 */ addiu $t6, $a3, 1 +/* 0FC6BC 7F0C7B8C 01AD0019 */ multu $t5, $t5 +/* 0FC6C0 7F0C7B90 0000C012 */ mflo $t8 +/* 0FC6C4 7F0C7B94 03389021 */ addu $s2, $t9, $t8 +/* 0FC6C8 7F0C7B98 0246082A */ slt $at, $s2, $a2 +/* 0FC6CC 7F0C7B9C 50200004 */ beql $at, $zero, .L7F0C7BB0 +/* 0FC6D0 7F0C7BA0 24840002 */ addiu $a0, $a0, 2 +/* 0FC6D4 7F0C7BA4 24880001 */ addiu $t0, $a0, 1 +/* 0FC6D8 7F0C7BA8 02403025 */ move $a2, $s2 +/* 0FC6DC 7F0C7BAC 24840002 */ addiu $a0, $a0, 2 +.L7F0C7BB0: +/* 0FC6E0 7F0C7BB0 15C4FFC1 */ bne $t6, $a0, .L7F0C7AB8 +/* 0FC6E4 7F0C7BB4 24A50004 */ addiu $a1, $a1, 4 +.L7F0C7BB8: +/* 0FC6E8 7F0C7BB8 01001025 */ move $v0, $t0 +.L7F0C7BBC: +/* 0FC6EC 7F0C7BBC 8FB00004 */ lw $s0, 4($sp) +/* 0FC6F0 7F0C7BC0 8FB10008 */ lw $s1, 8($sp) +/* 0FC6F4 7F0C7BC4 8FB2000C */ lw $s2, 0xc($sp) +/* 0FC6F8 7F0C7BC8 8FB30010 */ lw $s3, 0x10($sp) +/* 0FC6FC 7F0C7BCC 8FB40014 */ lw $s4, 0x14($sp) +/* 0FC700 7F0C7BD0 03E00008 */ jr $ra +/* 0FC704 7F0C7BD4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C7BD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C7BD8 +/* 0FC708 7F0C7BD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0FC70C 7F0C7BDC AFB1000C */ sw $s1, 0xc($sp) +/* 0FC710 7F0C7BE0 AFB00008 */ sw $s0, 8($sp) +/* 0FC714 7F0C7BE4 18A00030 */ blez $a1, .L7F0C7CA8 +/* 0FC718 7F0C7BE8 00001825 */ move $v1, $zero +/* 0FC71C 7F0C7BEC 30AA0003 */ andi $t2, $a1, 3 +/* 0FC720 7F0C7BF0 11400010 */ beqz $t2, .L7F0C7C34 +/* 0FC724 7F0C7BF4 01404025 */ move $t0, $t2 +/* 0FC728 7F0C7BF8 00067A00 */ sll $t7, $a2, 8 +/* 0FC72C 7F0C7BFC 01E74825 */ or $t1, $t7, $a3 +/* 0FC730 7F0C7C00 3138FFFF */ andi $t8, $t1, 0xffff +/* 0FC734 7F0C7C04 00007040 */ sll $t6, $zero, 1 +/* 0FC738 7F0C7C08 008E1021 */ addu $v0, $a0, $t6 +/* 0FC73C 7F0C7C0C 03004825 */ move $t1, $t8 +.L7F0C7C10: +/* 0FC740 7F0C7C10 94590000 */ lhu $t9, ($v0) +/* 0FC744 7F0C7C14 55390004 */ bnel $t1, $t9, .L7F0C7C28 +/* 0FC748 7F0C7C18 24630001 */ addiu $v1, $v1, 1 +/* 0FC74C 7F0C7C1C 10000073 */ b .L7F0C7DEC +/* 0FC750 7F0C7C20 00601025 */ move $v0, $v1 +/* 0FC754 7F0C7C24 24630001 */ addiu $v1, $v1, 1 +.L7F0C7C28: +/* 0FC758 7F0C7C28 1503FFF9 */ bne $t0, $v1, .L7F0C7C10 +/* 0FC75C 7F0C7C2C 24420002 */ addiu $v0, $v0, 2 +/* 0FC760 7F0C7C30 1065001D */ beq $v1, $a1, .L7F0C7CA8 +.L7F0C7C34: +/* 0FC764 7F0C7C34 00067A00 */ sll $t7, $a2, 8 +/* 0FC768 7F0C7C38 01E74825 */ or $t1, $t7, $a3 +/* 0FC76C 7F0C7C3C 3138FFFF */ andi $t8, $t1, 0xffff +/* 0FC770 7F0C7C40 00037040 */ sll $t6, $v1, 1 +/* 0FC774 7F0C7C44 008E1021 */ addu $v0, $a0, $t6 +/* 0FC778 7F0C7C48 03004825 */ move $t1, $t8 +.L7F0C7C4C: +/* 0FC77C 7F0C7C4C 94590000 */ lhu $t9, ($v0) +/* 0FC780 7F0C7C50 55390004 */ bnel $t1, $t9, .L7F0C7C64 +/* 0FC784 7F0C7C54 944E0002 */ lhu $t6, 2($v0) +/* 0FC788 7F0C7C58 10000064 */ b .L7F0C7DEC +/* 0FC78C 7F0C7C5C 00601025 */ move $v0, $v1 +/* 0FC790 7F0C7C60 944E0002 */ lhu $t6, 2($v0) +.L7F0C7C64: +/* 0FC794 7F0C7C64 552E0004 */ bnel $t1, $t6, .L7F0C7C78 +/* 0FC798 7F0C7C68 944F0004 */ lhu $t7, 4($v0) +/* 0FC79C 7F0C7C6C 1000005F */ b .L7F0C7DEC +/* 0FC7A0 7F0C7C70 24620001 */ addiu $v0, $v1, 1 +/* 0FC7A4 7F0C7C74 944F0004 */ lhu $t7, 4($v0) +.L7F0C7C78: +/* 0FC7A8 7F0C7C78 552F0004 */ bnel $t1, $t7, .L7F0C7C8C +/* 0FC7AC 7F0C7C7C 94580006 */ lhu $t8, 6($v0) +/* 0FC7B0 7F0C7C80 1000005A */ b .L7F0C7DEC +/* 0FC7B4 7F0C7C84 24620002 */ addiu $v0, $v1, 2 +/* 0FC7B8 7F0C7C88 94580006 */ lhu $t8, 6($v0) +.L7F0C7C8C: +/* 0FC7BC 7F0C7C8C 55380004 */ bnel $t1, $t8, .L7F0C7CA0 +/* 0FC7C0 7F0C7C90 24630004 */ addiu $v1, $v1, 4 +/* 0FC7C4 7F0C7C94 10000055 */ b .L7F0C7DEC +/* 0FC7C8 7F0C7C98 24620003 */ addiu $v0, $v1, 3 +/* 0FC7CC 7F0C7C9C 24630004 */ addiu $v1, $v1, 4 +.L7F0C7CA0: +/* 0FC7D0 7F0C7CA0 1465FFEA */ bne $v1, $a1, .L7F0C7C4C +/* 0FC7D4 7F0C7CA4 24420008 */ addiu $v0, $v0, 8 +.L7F0C7CA8: +/* 0FC7D8 7F0C7CA8 24A8FFFF */ addiu $t0, $a1, -1 +/* 0FC7DC 7F0C7CAC 29010002 */ slti $at, $t0, 2 +/* 0FC7E0 7F0C7CB0 00001025 */ move $v0, $zero +/* 0FC7E4 7F0C7CB4 14200027 */ bnez $at, .L7F0C7D54 +/* 0FC7E8 7F0C7CB8 01001825 */ move $v1, $t0 +/* 0FC7EC 7F0C7CBC 00C60019 */ multu $a2, $a2 +/* 0FC7F0 7F0C7CC0 0000C812 */ mflo $t9 +/* 0FC7F4 7F0C7CC4 00000000 */ nop +/* 0FC7F8 7F0C7CC8 00000000 */ nop +/* 0FC7FC 7F0C7CCC 00E70019 */ multu $a3, $a3 +/* 0FC800 7F0C7CD0 00007012 */ mflo $t6 +/* 0FC804 7F0C7CD4 032E4821 */ addu $t1, $t9, $t6 +/* 0FC808 7F0C7CD8 00000000 */ nop +/* 0FC80C 7F0C7CDC 00625821 */ addu $t3, $v1, $v0 +.L7F0C7CE0: +/* 0FC810 7F0C7CE0 000B5043 */ sra $t2, $t3, 1 +/* 0FC814 7F0C7CE4 000AC040 */ sll $t8, $t2, 1 +/* 0FC818 7F0C7CE8 0098C821 */ addu $t9, $a0, $t8 +/* 0FC81C 7F0C7CEC 972C0000 */ lhu $t4, ($t9) +/* 0FC820 7F0C7CF0 000C6A03 */ sra $t5, $t4, 8 +/* 0FC824 7F0C7CF4 31AE00FF */ andi $t6, $t5, 0xff +/* 0FC828 7F0C7CF8 01CE0019 */ multu $t6, $t6 +/* 0FC82C 7F0C7CFC 319000FF */ andi $s0, $t4, 0xff +/* 0FC830 7F0C7D00 00007812 */ mflo $t7 +/* 0FC834 7F0C7D04 00000000 */ nop +/* 0FC838 7F0C7D08 00000000 */ nop +/* 0FC83C 7F0C7D0C 02100019 */ multu $s0, $s0 +/* 0FC840 7F0C7D10 0000C012 */ mflo $t8 +/* 0FC844 7F0C7D14 01F88821 */ addu $s1, $t7, $t8 +/* 0FC848 7F0C7D18 0229082A */ slt $at, $s1, $t1 +/* 0FC84C 7F0C7D1C 50200004 */ beql $at, $zero, .L7F0C7D30 +/* 0FC850 7F0C7D20 0131082A */ slt $at, $t1, $s1 +/* 0FC854 7F0C7D24 10000007 */ b .L7F0C7D44 +/* 0FC858 7F0C7D28 01401025 */ move $v0, $t2 +/* 0FC85C 7F0C7D2C 0131082A */ slt $at, $t1, $s1 +.L7F0C7D30: +/* 0FC860 7F0C7D30 10200003 */ beqz $at, .L7F0C7D40 +/* 0FC864 7F0C7D34 01401825 */ move $v1, $t2 +/* 0FC868 7F0C7D38 10000002 */ b .L7F0C7D44 +/* 0FC86C 7F0C7D3C 01401825 */ move $v1, $t2 +.L7F0C7D40: +/* 0FC870 7F0C7D40 01401025 */ move $v0, $t2 +.L7F0C7D44: +/* 0FC874 7F0C7D44 0062C823 */ subu $t9, $v1, $v0 +/* 0FC878 7F0C7D48 2B210002 */ slti $at, $t9, 2 +/* 0FC87C 7F0C7D4C 5020FFE4 */ beql $at, $zero, .L7F0C7CE0 +/* 0FC880 7F0C7D50 00625821 */ addu $t3, $v1, $v0 +.L7F0C7D54: +/* 0FC884 7F0C7D54 2462FFFC */ addiu $v0, $v1, -4 +/* 0FC888 7F0C7D58 04410002 */ bgez $v0, .L7F0C7D64 +/* 0FC88C 7F0C7D5C 24630004 */ addiu $v1, $v1, 4 +/* 0FC890 7F0C7D60 00001025 */ move $v0, $zero +.L7F0C7D64: +/* 0FC894 7F0C7D64 0065082A */ slt $at, $v1, $a1 +/* 0FC898 7F0C7D68 14200002 */ bnez $at, .L7F0C7D74 +/* 0FC89C 7F0C7D6C 00002825 */ move $a1, $zero +/* 0FC8A0 7F0C7D70 01001825 */ move $v1, $t0 +.L7F0C7D74: +/* 0FC8A4 7F0C7D74 3C08000F */ lui $t0, (0x000F423F >> 16) # lui $t0, 0xf +/* 0FC8A8 7F0C7D78 0062082A */ slt $at, $v1, $v0 +/* 0FC8AC 7F0C7D7C 3508423F */ ori $t0, (0x000F423F & 0xFFFF) # ori $t0, $t0, 0x423f +/* 0FC8B0 7F0C7D80 14200019 */ bnez $at, .L7F0C7DE8 +/* 0FC8B4 7F0C7D84 00405025 */ move $t2, $v0 +/* 0FC8B8 7F0C7D88 00027040 */ sll $t6, $v0, 1 +/* 0FC8BC 7F0C7D8C 008E1021 */ addu $v0, $a0, $t6 +/* 0FC8C0 7F0C7D90 246B0001 */ addiu $t3, $v1, 1 +.L7F0C7D94: +/* 0FC8C4 7F0C7D94 944C0000 */ lhu $t4, ($v0) +/* 0FC8C8 7F0C7D98 000C7A03 */ sra $t7, $t4, 8 +/* 0FC8CC 7F0C7D9C 31F800FF */ andi $t8, $t7, 0xff +/* 0FC8D0 7F0C7DA0 03061823 */ subu $v1, $t8, $a2 +/* 0FC8D4 7F0C7DA4 00630019 */ multu $v1, $v1 +/* 0FC8D8 7F0C7DA8 319900FF */ andi $t9, $t4, 0xff +/* 0FC8DC 7F0C7DAC 03272023 */ subu $a0, $t9, $a3 +/* 0FC8E0 7F0C7DB0 00007012 */ mflo $t6 +/* 0FC8E4 7F0C7DB4 00000000 */ nop +/* 0FC8E8 7F0C7DB8 00000000 */ nop +/* 0FC8EC 7F0C7DBC 00840019 */ multu $a0, $a0 +/* 0FC8F0 7F0C7DC0 00007812 */ mflo $t7 +/* 0FC8F4 7F0C7DC4 01CF4821 */ addu $t1, $t6, $t7 +/* 0FC8F8 7F0C7DC8 0128082A */ slt $at, $t1, $t0 +/* 0FC8FC 7F0C7DCC 50200004 */ beql $at, $zero, .L7F0C7DE0 +/* 0FC900 7F0C7DD0 254A0001 */ addiu $t2, $t2, 1 +/* 0FC904 7F0C7DD4 01402825 */ move $a1, $t2 +/* 0FC908 7F0C7DD8 01204025 */ move $t0, $t1 +/* 0FC90C 7F0C7DDC 254A0001 */ addiu $t2, $t2, 1 +.L7F0C7DE0: +/* 0FC910 7F0C7DE0 156AFFEC */ bne $t3, $t2, .L7F0C7D94 +/* 0FC914 7F0C7DE4 24420002 */ addiu $v0, $v0, 2 +.L7F0C7DE8: +/* 0FC918 7F0C7DE8 00A01025 */ move $v0, $a1 +.L7F0C7DEC: +/* 0FC91C 7F0C7DEC 8FB00008 */ lw $s0, 8($sp) +/* 0FC920 7F0C7DF0 8FB1000C */ lw $s1, 0xc($sp) +/* 0FC924 7F0C7DF4 03E00008 */ jr $ra +/* 0FC928 7F0C7DF8 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void process_huffman_compressed_images(void) { + +} +#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 sub_GAME_7F0CBF2C +/* 0FCA58 7F0C7F28 24040004 */ li $a0, 4 +/* 0FCA5C 7F0C7F2C AFA20080 */ sw $v0, 0x80($sp) +/* 0FCA60 7F0C7F30 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA64 7F0C7F34 24040008 */ li $a0, 8 +/* 0FCA68 7F0C7F38 0040B025 */ move $s6, $v0 +/* 0FCA6C 7F0C7F3C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA70 7F0C7F40 24040008 */ li $a0, 8 +/* 0FCA74 7F0C7F44 0040B825 */ move $s7, $v0 +/* 0FCA78 7F0C7F48 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 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 type5_6_7_getsamples +/* 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 type5_6_7_getsamples +/* 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 type5_6_7_getsamples +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 + + + + + +#ifdef NONMATCHING +void image_decompresion_related(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void generate_sample_table(void) { + +} +#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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 + + + + + +#ifdef NONMATCHING +void type4_7_9_getsamples(void) { + +} +#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 sub_GAME_7F0CBF2C +/* 0FE218 7F0C96E8 24040003 */ li $a0, 3 +/* 0FE21C 7F0C96EC AFA20034 */ sw $v0, 0x34($sp) +/* 0FE220 7F0C96F0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE224 7F0C96F4 24040003 */ li $a0, 3 +/* 0FE228 7F0C96F8 AFA20030 */ sw $v0, 0x30($sp) +/* 0FE22C 7F0C96FC 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 + + + + + +#ifdef NONMATCHING +void type5_6_7_getsamples(void) { + +} +#else +GLOBAL_ASM( +.text +glabel type5_6_7_getsamples +/* 0FE450 7F0C9920 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0FE454 7F0C9924 AFB30020 */ sw $s3, 0x20($sp) +/* 0FE458 7F0C9928 00809825 */ move $s3, $a0 +/* 0FE45C 7F0C992C AFBF002C */ sw $ra, 0x2c($sp) +/* 0FE460 7F0C9930 AFB2001C */ sw $s2, 0x1c($sp) +/* 0FE464 7F0C9934 00A09025 */ move $s2, $a1 +/* 0FE468 7F0C9938 AFB50028 */ sw $s5, 0x28($sp) +/* 0FE46C 7F0C993C AFB40024 */ sw $s4, 0x24($sp) +/* 0FE470 7F0C9940 AFB10018 */ sw $s1, 0x18($sp) +/* 0FE474 7F0C9944 AFB00014 */ sw $s0, 0x14($sp) +/* 0FE478 7F0C9948 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE47C 7F0C994C 2404000B */ li $a0, 11 +/* 0FE480 7F0C9950 2A410011 */ slti $at, $s2, 0x11 +/* 0FE484 7F0C9954 1020000C */ beqz $at, .L7F0C9988 +/* 0FE488 7F0C9958 0040A825 */ move $s5, $v0 +/* 0FE48C 7F0C995C 18400027 */ blez $v0, .L7F0C99FC +/* 0FE490 7F0C9960 00008025 */ move $s0, $zero +/* 0FE494 7F0C9964 02608825 */ move $s1, $s3 +.L7F0C9968: +/* 0FE498 7F0C9968 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE49C 7F0C996C 02402025 */ move $a0, $s2 +/* 0FE4A0 7F0C9970 26100001 */ addiu $s0, $s0, 1 +/* 0FE4A4 7F0C9974 26310002 */ addiu $s1, $s1, 2 +/* 0FE4A8 7F0C9978 1615FFFB */ bne $s0, $s5, .L7F0C9968 +/* 0FE4AC 7F0C997C A622FFFE */ sh $v0, -2($s1) +/* 0FE4B0 7F0C9980 1000001F */ b .L7F0C9A00 +/* 0FE4B4 7F0C9984 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C9988: +/* 0FE4B8 7F0C9988 2A410019 */ slti $at, $s2, 0x19 +/* 0FE4BC 7F0C998C 1020000C */ beqz $at, .L7F0C99C0 +/* 0FE4C0 7F0C9990 00000000 */ nop +/* 0FE4C4 7F0C9994 18400019 */ blez $v0, .L7F0C99FC +/* 0FE4C8 7F0C9998 00008025 */ move $s0, $zero +/* 0FE4CC 7F0C999C 02608825 */ move $s1, $s3 +.L7F0C99A0: +/* 0FE4D0 7F0C99A0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE4D4 7F0C99A4 02402025 */ move $a0, $s2 +/* 0FE4D8 7F0C99A8 26100001 */ addiu $s0, $s0, 1 +/* 0FE4DC 7F0C99AC 26310004 */ addiu $s1, $s1, 4 +/* 0FE4E0 7F0C99B0 1615FFFB */ bne $s0, $s5, .L7F0C99A0 +/* 0FE4E4 7F0C99B4 AE22FFFC */ sw $v0, -4($s1) +/* 0FE4E8 7F0C99B8 10000011 */ b .L7F0C9A00 +/* 0FE4EC 7F0C99BC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C99C0: +/* 0FE4F0 7F0C99C0 1840000E */ blez $v0, .L7F0C99FC +/* 0FE4F4 7F0C99C4 00008025 */ move $s0, $zero +/* 0FE4F8 7F0C99C8 2654FFE8 */ addiu $s4, $s2, -0x18 +/* 0FE4FC 7F0C99CC 02608825 */ move $s1, $s3 +.L7F0C99D0: +/* 0FE500 7F0C99D0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE504 7F0C99D4 24040018 */ li $a0, 24 +/* 0FE508 7F0C99D8 00409025 */ move $s2, $v0 +/* 0FE50C 7F0C99DC 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE510 7F0C99E0 02802025 */ move $a0, $s4 +/* 0FE514 7F0C99E4 00127200 */ sll $t6, $s2, 8 +/* 0FE518 7F0C99E8 26100001 */ addiu $s0, $s0, 1 +/* 0FE51C 7F0C99EC 004E7825 */ or $t7, $v0, $t6 +/* 0FE520 7F0C99F0 26310004 */ addiu $s1, $s1, 4 +/* 0FE524 7F0C99F4 1615FFF6 */ bne $s0, $s5, .L7F0C99D0 +/* 0FE528 7F0C99F8 AE2FFFFC */ sw $t7, -4($s1) +.L7F0C99FC: +/* 0FE52C 7F0C99FC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C9A00: +/* 0FE530 7F0C9A00 02A01025 */ move $v0, $s5 +/* 0FE534 7F0C9A04 8FB50028 */ lw $s5, 0x28($sp) +/* 0FE538 7F0C9A08 8FB00014 */ lw $s0, 0x14($sp) +/* 0FE53C 7F0C9A0C 8FB10018 */ lw $s1, 0x18($sp) +/* 0FE540 7F0C9A10 8FB2001C */ lw $s2, 0x1c($sp) +/* 0FE544 7F0C9A14 8FB30020 */ lw $s3, 0x20($sp) +/* 0FE548 7F0C9A18 8FB40024 */ lw $s4, 0x24($sp) +/* 0FE54C 7F0C9A1C 03E00008 */ jr $ra +/* 0FE550 7F0C9A20 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C9A24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C9A24 +/* 0FE554 7F0C9A24 2484FFFF */ addiu $a0, $a0, -1 +/* 0FE558 7F0C9A28 18800005 */ blez $a0, .L7F0C9A40 +/* 0FE55C 7F0C9A2C 00001825 */ move $v1, $zero +.L7F0C9A30: +/* 0FE560 7F0C9A30 00047043 */ sra $t6, $a0, 1 +/* 0FE564 7F0C9A34 01C02025 */ move $a0, $t6 +/* 0FE568 7F0C9A38 1DC0FFFD */ bgtz $t6, .L7F0C9A30 +/* 0FE56C 7F0C9A3C 24630001 */ addiu $v1, $v1, 1 +.L7F0C9A40: +/* 0FE570 7F0C9A40 03E00008 */ jr $ra +/* 0FE574 7F0C9A44 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void image_get_alpha_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel image_get_alpha_values +/* 0FE578 7F0C9A48 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0FE57C 7F0C9A4C AFB20020 */ sw $s2, 0x20($sp) +/* 0FE580 7F0C9A50 AFB00018 */ sw $s0, 0x18($sp) +/* 0FE584 7F0C9A54 00A09025 */ move $s2, $a1 +/* 0FE588 7F0C9A58 AFBF0024 */ sw $ra, 0x24($sp) +/* 0FE58C 7F0C9A5C AFB1001C */ sw $s1, 0x1c($sp) +/* 0FE590 7F0C9A60 18A00008 */ blez $a1, .L7F0C9A84 +/* 0FE594 7F0C9A64 00008025 */ move $s0, $zero +/* 0FE598 7F0C9A68 00808825 */ move $s1, $a0 +.L7F0C9A6C: +/* 0FE59C 7F0C9A6C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE5A0 7F0C9A70 24040001 */ li $a0, 1 +/* 0FE5A4 7F0C9A74 26100001 */ addiu $s0, $s0, 1 +/* 0FE5A8 7F0C9A78 26310001 */ addiu $s1, $s1, 1 +/* 0FE5AC 7F0C9A7C 1612FFFB */ bne $s0, $s2, .L7F0C9A6C +/* 0FE5B0 7F0C9A80 A222FFFF */ sb $v0, -1($s1) +.L7F0C9A84: +/* 0FE5B4 7F0C9A84 8FBF0024 */ lw $ra, 0x24($sp) +/* 0FE5B8 7F0C9A88 8FB00018 */ lw $s0, 0x18($sp) +/* 0FE5BC 7F0C9A8C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0FE5C0 7F0C9A90 8FB20020 */ lw $s2, 0x20($sp) +/* 0FE5C4 7F0C9A94 03E00008 */ jr $ra +/* 0FE5C8 7F0C9A98 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void image_compression0_expand(void) { + +} +#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 sub_GAME_7F0CBF2C +/* 0FE660 7F0C9B30 24040010 */ li $a0, 16 +/* 0FE664 7F0C9B34 00024C00 */ sll $t1, $v0, 0x10 +/* 0FE668 7F0C9B38 AE290000 */ sw $t1, ($s1) +/* 0FE66C 7F0C9B3C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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 sub_GAME_7F0CBF2C +/* 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) +{ + load_image_to_buffer(&image,buffer); +} +#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 + + diff --git a/src/game/image.h b/src/game/image.h new file mode 100644 index 0000000..297a603 --- /dev/null +++ b/src/game/image.h @@ -0,0 +1,19 @@ +#ifndef _IMAGE_H_ +#define _IMAGE_H_ +#include "ultra64.h" + +struct image_entry +{ + char flag1; //HitType + char flag2; //remove this line + u16 size; //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 +}; + +extern s32 ptr_texture_alloc_start; +extern struct image_entry image_entries[]; + +#endif diff --git a/src/game/image_bank.c b/src/game/image_bank.c new file mode 100644 index 0000000..d5d51b2 --- /dev/null +++ b/src/game/image_bank.c @@ -0,0 +1,559 @@ +#include "ultra64.h" +#include "ramrom.h" + +// bss +//8008D0A0 +s32 img_curpos; +//8008D0A4 +s32 img_curdatatable; +//8008D0A8 +s32 img_bitcount; +//8008D0AC +s32 dword_CODE_bss_8008D0AC; +//8008D0B0; +s32 globalbank_rdram_offset; +//8008D0B4; +s32 *pGlobalimagetable; +//8008D0B8; +struct sImageTableEntry *genericimage; +//8008D0BC +struct sImageTableEntry *impactimages; +//8008D0C0 +struct sImageTableEntry *explosion_smokeimages; +//8008D0C4 +struct sImageTableEntry *scattered_explosions; +//8008D0C8 +struct sImageTableEntry *flareimage1; +//8008D0CC +struct sImageTableEntry *flareimage2; +//8008D0D0 +struct sImageTableEntry *flareimage3; +//8008D0D4 +struct sImageTableEntry *flareimage4; +//8008D0D8 +struct sImageTableEntry *flareimage5; +//8008D0DC +struct sImageTableEntry *ammo9mmimage; +//8008D0E0 +struct sImageTableEntry *rifleammoimage; +//8008D0E4 +struct sImageTableEntry *shotgunammoimage; +//8008D0E8 +struct sImageTableEntry *knifeammoimage; +//8008D0EC +struct sImageTableEntry *glaunchammoimage; +//8008D0F0 +struct sImageTableEntry *rocketammoimage; +//8008D0F4 +struct sImageTableEntry *genericmineammoimage; +//8008D0F8 +struct sImageTableEntry *grenadeammoimage; +//8008D0FC +struct sImageTableEntry *magnumammoimage; +//8008D100 +struct sImageTableEntry *goldengunammoimage; +//8008D104 +struct sImageTableEntry *remotemineammoimage; +//8008D108 +struct sImageTableEntry *timedmineammoimage; +//8008D10C +struct sImageTableEntry *proxmineammoimage; +//8008D110 +struct sImageTableEntry *tankammoimage; +//8008D114; +struct sImageTableEntry *crosshairimage; +//8008D118 +struct sImageTableEntry *betacrosshairimage; +//8008D11C +struct sImageTableEntry *glassoverlayimage; +//8008D120 +struct sImageTableEntry *monitorimages; +//8008D124 +struct sImageTableEntry *skywaterimages; +//8008D128 +struct sImageTableEntry *mainfolderimages; +//8008D12C +struct sImageTableEntry *mpradarimages; +//8008D130 +struct sImageTableEntry *mpcharselimages; +//8008D134 +struct sImageTableEntry *mpstageselimages; + + +extern u8* _GlobalimagetableSegmentRomStart; + + +void makeemptyimageatpos(s32 pos) { + img_curpos = pos; + img_curdatatable = 0; + img_bitcount = 0; +} + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0CBF2C(s32 bits) +{ + byte bVar1; + + if (img_bitcount < bits) { + do { + img_bitcount = img_bitcount + 8; + bVar1 = *img_curpos; + img_curpos = img_curpos + 1; + img_curdatatable = bVar1 | img_curdatatable << 8; + } while (img_bitcount < bits); + } + img_bitcount = img_bitcount - bits; + return img_curdatatable >> (img_bitcount & 0x1f) & (1 << (bits & 0x1f)) - 1U; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBF2C +/* 100A5C 7F0CBF2C 3C058009 */ lui $a1, %hi(img_bitcount) +/* 100A60 7F0CBF30 24A5D0A8 */ addiu $a1, %lo(img_bitcount) # addiu $a1, $a1, -0x2f58 +/* 100A64 7F0CBF34 8CA30000 */ lw $v1, ($a1) +/* 100A68 7F0CBF38 3C078009 */ lui $a3, %hi(img_curpos) +/* 100A6C 7F0CBF3C 24E7D0A0 */ addiu $a3, %lo(img_curpos) # addiu $a3, $a3, -0x2f60 +/* 100A70 7F0CBF40 0064082A */ slt $at, $v1, $a0 +/* 100A74 7F0CBF44 1020000F */ beqz $at, .L7F0CBF84 +/* 100A78 7F0CBF48 3C068009 */ lui $a2, %hi(img_curdatatable) +/* 100A7C 7F0CBF4C 24C6D0A4 */ addiu $a2, %lo(img_curdatatable) # addiu $a2, $a2, -0x2f5c +.L7F0CBF50: +/* 100A80 7F0CBF50 8CE20000 */ lw $v0, ($a3) +/* 100A84 7F0CBF54 8CCF0000 */ lw $t7, ($a2) +/* 100A88 7F0CBF58 24690008 */ addiu $t1, $v1, 8 +/* 100A8C 7F0CBF5C 904E0000 */ lbu $t6, ($v0) +/* 100A90 7F0CBF60 000FC200 */ sll $t8, $t7, 8 +/* 100A94 7F0CBF64 0124082A */ slt $at, $t1, $a0 +/* 100A98 7F0CBF68 24480001 */ addiu $t0, $v0, 1 +/* 100A9C 7F0CBF6C 01D8C825 */ or $t9, $t6, $t8 +/* 100AA0 7F0CBF70 ACD90000 */ sw $t9, ($a2) +/* 100AA4 7F0CBF74 ACE80000 */ sw $t0, ($a3) +/* 100AA8 7F0CBF78 ACA90000 */ sw $t1, ($a1) +/* 100AAC 7F0CBF7C 1420FFF4 */ bnez $at, .L7F0CBF50 +/* 100AB0 7F0CBF80 01201825 */ move $v1, $t1 +.L7F0CBF84: +/* 100AB4 7F0CBF84 3C068009 */ lui $a2, %hi(img_curdatatable) +/* 100AB8 7F0CBF88 24C6D0A4 */ addiu $a2, %lo(img_curdatatable) # addiu $a2, $a2, -0x2f5c +/* 100ABC 7F0CBF8C 8CCB0000 */ lw $t3, ($a2) +/* 100AC0 7F0CBF90 240F0001 */ li $t7, 1 +/* 100AC4 7F0CBF94 00645023 */ subu $t2, $v1, $a0 +/* 100AC8 7F0CBF98 008F7004 */ sllv $t6, $t7, $a0 +/* 100ACC 7F0CBF9C 25D8FFFF */ addiu $t8, $t6, -1 +/* 100AD0 7F0CBFA0 014B6806 */ srlv $t5, $t3, $t2 +/* 100AD4 7F0CBFA4 ACAA0000 */ sw $t2, ($a1) +/* 100AD8 7F0CBFA8 03E00008 */ jr $ra +/* 100ADC 7F0CBFAC 01B81024 */ and $v0, $t5, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void load_prepare_global_image_bank(void) { + s32 size; + s32 i; + + size = (0x2001400 - 0x2000000); + pGlobalimagetable = ((mempAllocBytesInBank((size + 0x1000), 4) + 0xfff) & -0x1000); + romCopy(pGlobalimagetable, _GlobalimagetableSegmentRomStart, size); + globalbank_rdram_offset = (pGlobalimagetable + 0xfe000000); + genericimage = (s32) (globalbank_rdram_offset + 0x2000ac8); + impactimages = (s32) (globalbank_rdram_offset + 0x2000ad4); + explosion_smokeimages = (s32) (globalbank_rdram_offset + 0x2000bc4); + scattered_explosions = (s32) (globalbank_rdram_offset + 0x2000c0c); + flareimage1 = (s32) (globalbank_rdram_offset + 0x2000c48); + flareimage2 = (s32) (globalbank_rdram_offset + 0x2000c54); + flareimage3 = (s32) (globalbank_rdram_offset + 0x2000c60); + flareimage4 = (s32) (globalbank_rdram_offset + 0x2000c6c); + flareimage5 = (s32) (globalbank_rdram_offset + 0x2000c78); + ammo9mmimage = (s32) (globalbank_rdram_offset + 0x2000c84); + rifleammoimage = (s32) (globalbank_rdram_offset + 0x2000c90); + shotgunammoimage = (s32) (globalbank_rdram_offset + 0x2000c9c); + knifeammoimage = (s32) (globalbank_rdram_offset + 0x2000ca8); + glaunchammoimage = (s32) (globalbank_rdram_offset + 0x2000cb4); + rocketammoimage = (s32) (globalbank_rdram_offset + 0x2000cc0); + genericmineammoimage = (s32) (globalbank_rdram_offset + 0x2000ccc); + grenadeammoimage = (s32) (globalbank_rdram_offset + 0x2000cd8); + magnumammoimage = (s32) (globalbank_rdram_offset + 0x2000ce4); + goldengunammoimage = (s32) (globalbank_rdram_offset + 0x2000cf0); + remotemineammoimage = (s32) (globalbank_rdram_offset + 0x2000cfc); + timedmineammoimage = (s32) (globalbank_rdram_offset + 0x2000d08); + proxmineammoimage = (s32) (globalbank_rdram_offset + 0x2000d14); + tankammoimage = (s32) (globalbank_rdram_offset + 0x2000d20); + crosshairimage = (s32) (globalbank_rdram_offset + 0x2000d2c); + betacrosshairimage = (s32) (globalbank_rdram_offset + 0x2000d38); + glassoverlayimage = (s32) (globalbank_rdram_offset + 0x2000d44); + monitorimages = (s32) (globalbank_rdram_offset + 0x2000d5c); + skywaterimages = (s32) (globalbank_rdram_offset + 0x2000fb4); + mainfolderimages = (s32) (globalbank_rdram_offset + 0x2000fd8); + mpradarimages = (s32) (globalbank_rdram_offset + 0x2001020); + mpcharselimages = (s32) (globalbank_rdram_offset + 0x200102c); + mpstageselimages = (s32) (globalbank_rdram_offset + 0x200132c); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000000), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000078), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000120), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20001c8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000270), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000318), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20003c0), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000468), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000510), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20005b8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000660), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000708), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20007b0), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000858), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000900), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20009a8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000a50), 0); + load_image_to_buffer(genericimage, 0); + for (i = 0; i < 0x48; i + 0xC) + { + load_image_to_buffer((explosion_smokeimages + i),0x0); + }; + + for (i = 0; i != 0x3c; i + 0xc) + { + load_image_to_buffer((scattered_explosions + i),0x0); + }; +} +#else +GLOBAL_ASM( +.text +glabel load_prepare_global_image_bank +/* 100AE0 7F0CBFB0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 100AE4 7F0CBFB4 3C0E0200 */ lui $t6, %hi(0x02001400) # $t6, 0x200 +/* 100AE8 7F0CBFB8 3C0F0200 */ lui $t7, 0x200 +/* 100AEC 7F0CBFBC AFB00014 */ sw $s0, 0x14($sp) +/* 100AF0 7F0CBFC0 25EF0000 */ addiu $t7, $t7, 0 +/* 100AF4 7F0CBFC4 25CE1400 */ addiu $t6, %lo(0x02001400) # 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(0x02000AC8) # $t3, 0x200 +/* 100B58 7F0CC028 2610D0B0 */ addiu $s0, %lo(globalbank_rdram_offset) # addiu $s0, $s0, -0x2f50 +/* 100B5C 7F0CC02C 256B0AC8 */ addiu $t3, %lo(0x02000AC8) # 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(0x02000AD4) # $t5, 0x200 +/* 100B70 7F0CC040 AC2CD0B8 */ sw $t4, %lo(genericimage)($at) +/* 100B74 7F0CC044 25AD0AD4 */ addiu $t5, %lo(0x02000AD4) # 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(0x02000BC4) # $t7, 0x200 +/* 100B88 7F0CC058 3C190200 */ lui $t9, %hi(0x02000C0C) # $t9, 0x200 +/* 100B8C 7F0CC05C 3C128009 */ lui $s2, %hi(explosion_smokeimages) +/* 100B90 7F0CC060 3C138009 */ lui $s3, %hi(scattered_explosions) +/* 100B94 7F0CC064 25EF0BC4 */ addiu $t7, %lo(0x02000BC4) # addiu $t7, $t7, 0xbc4 +/* 100B98 7F0CC068 27390C0C */ addiu $t9, %lo(0x02000C0C) # addiu $t9, $t9, 0xc0c +/* 100B9C 7F0CC06C 3C090200 */ lui $t1, %hi(0x02000C48) # $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(0x02000C48) # 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(0x02000C54) # $t3, 0x200 +/* 100BC8 7F0CC098 AC2AD0C8 */ sw $t2, %lo(flareimage1)($at) +/* 100BCC 7F0CC09C 256B0C54 */ addiu $t3, %lo(0x02000C54) # addiu $t3, $t3, 0xc54 +/* 100BD0 7F0CC0A0 004B6021 */ addu $t4, $v0, $t3 +/* 100BD4 7F0CC0A4 3C018009 */ lui $at, %hi(flareimage2) +/* 100BD8 7F0CC0A8 3C0D0200 */ lui $t5, %hi(0x02000C60) # $t5, 0x200 +/* 100BDC 7F0CC0AC AC2CD0CC */ sw $t4, %lo(flareimage2)($at) +/* 100BE0 7F0CC0B0 25AD0C60 */ addiu $t5, %lo(0x02000C60) # addiu $t5, $t5, 0xc60 +/* 100BE4 7F0CC0B4 004D7021 */ addu $t6, $v0, $t5 +/* 100BE8 7F0CC0B8 3C018009 */ lui $at, %hi(flareimage3) +/* 100BEC 7F0CC0BC 3C0F0200 */ lui $t7, %hi(0x02000C6C) # $t7, 0x200 +/* 100BF0 7F0CC0C0 AC2ED0D0 */ sw $t6, %lo(flareimage3)($at) +/* 100BF4 7F0CC0C4 25EF0C6C */ addiu $t7, %lo(0x02000C6C) # addiu $t7, $t7, 0xc6c +/* 100BF8 7F0CC0C8 004FC021 */ addu $t8, $v0, $t7 +/* 100BFC 7F0CC0CC 3C018009 */ lui $at, %hi(flareimage4) +/* 100C00 7F0CC0D0 3C190200 */ lui $t9, %hi(0x02000C78) # $t9, 0x200 +/* 100C04 7F0CC0D4 AC38D0D4 */ sw $t8, %lo(flareimage4)($at) +/* 100C08 7F0CC0D8 27390C78 */ addiu $t9, %lo(0x02000C78) # addiu $t9, $t9, 0xc78 +/* 100C0C 7F0CC0DC 00594021 */ addu $t0, $v0, $t9 +/* 100C10 7F0CC0E0 3C018009 */ lui $at, %hi(flareimage5) +/* 100C14 7F0CC0E4 3C090200 */ lui $t1, %hi(0x02000C84) # $t1, 0x200 +/* 100C18 7F0CC0E8 AC28D0D8 */ sw $t0, %lo(flareimage5)($at) +/* 100C1C 7F0CC0EC 25290C84 */ addiu $t1, %lo(0x02000C84) # addiu $t1, $t1, 0xc84 +/* 100C20 7F0CC0F0 00495021 */ addu $t2, $v0, $t1 +/* 100C24 7F0CC0F4 3C018009 */ lui $at, %hi(ammo9mmimage) +/* 100C28 7F0CC0F8 3C0B0200 */ lui $t3, %hi(0x02000C90) # $t3, 0x200 +/* 100C2C 7F0CC0FC AC2AD0DC */ sw $t2, %lo(ammo9mmimage)($at) +/* 100C30 7F0CC100 256B0C90 */ addiu $t3, %lo(0x02000C90) # addiu $t3, $t3, 0xc90 +/* 100C34 7F0CC104 004B6021 */ addu $t4, $v0, $t3 +/* 100C38 7F0CC108 3C018009 */ lui $at, %hi(rifleammoimage) +/* 100C3C 7F0CC10C 3C0D0200 */ lui $t5, %hi(0x02000C9C) # $t5, 0x200 +/* 100C40 7F0CC110 AC2CD0E0 */ sw $t4, %lo(rifleammoimage)($at) +/* 100C44 7F0CC114 25AD0C9C */ addiu $t5, %lo(0x02000C9C) # addiu $t5, $t5, 0xc9c +/* 100C48 7F0CC118 004D7021 */ addu $t6, $v0, $t5 +/* 100C4C 7F0CC11C 3C018009 */ lui $at, %hi(shotgunammoimage) +/* 100C50 7F0CC120 3C0F0200 */ lui $t7, %hi(0x02000CA8) # $t7, 0x200 +/* 100C54 7F0CC124 AC2ED0E4 */ sw $t6, %lo(shotgunammoimage)($at) +/* 100C58 7F0CC128 25EF0CA8 */ addiu $t7, %lo(0x02000CA8) # addiu $t7, $t7, 0xca8 +/* 100C5C 7F0CC12C 004FC021 */ addu $t8, $v0, $t7 +/* 100C60 7F0CC130 3C018009 */ lui $at, %hi(knifeammoimage) +/* 100C64 7F0CC134 3C190200 */ lui $t9, %hi(0x02000CB4) # $t9, 0x200 +/* 100C68 7F0CC138 AC38D0E8 */ sw $t8, %lo(knifeammoimage)($at) +/* 100C6C 7F0CC13C 27390CB4 */ addiu $t9, %lo(0x02000CB4) # addiu $t9, $t9, 0xcb4 +/* 100C70 7F0CC140 00594021 */ addu $t0, $v0, $t9 +/* 100C74 7F0CC144 3C018009 */ lui $at, %hi(glaunchammoimage) +/* 100C78 7F0CC148 3C090200 */ lui $t1, %hi(0x02000CC0) # $t1, 0x200 +/* 100C7C 7F0CC14C AC28D0EC */ sw $t0, %lo(glaunchammoimage)($at) +/* 100C80 7F0CC150 25290CC0 */ addiu $t1, %lo(0x02000CC0) # addiu $t1, $t1, 0xcc0 +/* 100C84 7F0CC154 00495021 */ addu $t2, $v0, $t1 +/* 100C88 7F0CC158 3C018009 */ lui $at, %hi(rocketammoimage) +/* 100C8C 7F0CC15C 3C0B0200 */ lui $t3, %hi(0x02000CCC) # $t3, 0x200 +/* 100C90 7F0CC160 AC2AD0F0 */ sw $t2, %lo(rocketammoimage)($at) +/* 100C94 7F0CC164 256B0CCC */ addiu $t3, %lo(0x02000CCC) # addiu $t3, $t3, 0xccc +/* 100C98 7F0CC168 004B6021 */ addu $t4, $v0, $t3 +/* 100C9C 7F0CC16C 3C018009 */ lui $at, %hi(genericmineammoimage) +/* 100CA0 7F0CC170 3C0D0200 */ lui $t5, %hi(0x02000CD8) # $t5, 0x200 +/* 100CA4 7F0CC174 AC2CD0F4 */ sw $t4, %lo(genericmineammoimage)($at) +/* 100CA8 7F0CC178 25AD0CD8 */ addiu $t5, %lo(0x02000CD8) # addiu $t5, $t5, 0xcd8 +/* 100CAC 7F0CC17C 004D7021 */ addu $t6, $v0, $t5 +/* 100CB0 7F0CC180 3C018009 */ lui $at, %hi(grenadeammoimage) +/* 100CB4 7F0CC184 3C0F0200 */ lui $t7, %hi(0x02000CE4) # $t7, 0x200 +/* 100CB8 7F0CC188 AC2ED0F8 */ sw $t6, %lo(grenadeammoimage)($at) +/* 100CBC 7F0CC18C 25EF0CE4 */ addiu $t7, %lo(0x02000CE4) # addiu $t7, $t7, 0xce4 +/* 100CC0 7F0CC190 004FC021 */ addu $t8, $v0, $t7 +/* 100CC4 7F0CC194 3C018009 */ lui $at, %hi(magnumammoimage) +/* 100CC8 7F0CC198 3C190200 */ lui $t9, %hi(0x02000CF0) # $t9, 0x200 +/* 100CCC 7F0CC19C AC38D0FC */ sw $t8, %lo(magnumammoimage)($at) +/* 100CD0 7F0CC1A0 27390CF0 */ addiu $t9, %lo(0x02000CF0) # addiu $t9, $t9, 0xcf0 +/* 100CD4 7F0CC1A4 00594021 */ addu $t0, $v0, $t9 +/* 100CD8 7F0CC1A8 3C018009 */ lui $at, %hi(goldengunammoimage) +/* 100CDC 7F0CC1AC 3C090200 */ lui $t1, %hi(0x02000CFC) # $t1, 0x200 +/* 100CE0 7F0CC1B0 AC28D100 */ sw $t0, %lo(goldengunammoimage)($at) +/* 100CE4 7F0CC1B4 25290CFC */ addiu $t1, %lo(0x02000CFC) # addiu $t1, $t1, 0xcfc +/* 100CE8 7F0CC1B8 00495021 */ addu $t2, $v0, $t1 +/* 100CEC 7F0CC1BC 3C018009 */ lui $at, %hi(remotemineammoimage) +/* 100CF0 7F0CC1C0 3C0B0200 */ lui $t3, %hi(0x02000D08) # $t3, 0x200 +/* 100CF4 7F0CC1C4 AC2AD104 */ sw $t2, %lo(remotemineammoimage)($at) +/* 100CF8 7F0CC1C8 256B0D08 */ addiu $t3, %lo(0x02000D08) # addiu $t3, $t3, 0xd08 +/* 100CFC 7F0CC1CC 004B6021 */ addu $t4, $v0, $t3 +/* 100D00 7F0CC1D0 3C018009 */ lui $at, %hi(timedmineammoimage) +/* 100D04 7F0CC1D4 3C0D0200 */ lui $t5, %hi(0x02000D14) # $t5, 0x200 +/* 100D08 7F0CC1D8 AC2CD108 */ sw $t4, %lo(timedmineammoimage)($at) +/* 100D0C 7F0CC1DC 25AD0D14 */ addiu $t5, %lo(0x02000D14) # addiu $t5, $t5, 0xd14 +/* 100D10 7F0CC1E0 004D7021 */ addu $t6, $v0, $t5 +/* 100D14 7F0CC1E4 3C018009 */ lui $at, %hi(proxmineammoimage) +/* 100D18 7F0CC1E8 3C0F0200 */ lui $t7, %hi(0x02000D20) # $t7, 0x200 +/* 100D1C 7F0CC1EC AC2ED10C */ sw $t6, %lo(proxmineammoimage)($at) +/* 100D20 7F0CC1F0 25EF0D20 */ addiu $t7, %lo(0x02000D20) # addiu $t7, $t7, 0xd20 +/* 100D24 7F0CC1F4 004FC021 */ addu $t8, $v0, $t7 +/* 100D28 7F0CC1F8 3C018009 */ lui $at, %hi(tankammoimage) +/* 100D2C 7F0CC1FC 3C190200 */ lui $t9, %hi(0x02000D2C) # $t9, 0x200 +/* 100D30 7F0CC200 AC38D110 */ sw $t8, %lo(tankammoimage)($at) +/* 100D34 7F0CC204 27390D2C */ addiu $t9, %lo(0x02000D2C) # addiu $t9, $t9, 0xd2c +/* 100D38 7F0CC208 00594021 */ addu $t0, $v0, $t9 +/* 100D3C 7F0CC20C 3C018009 */ lui $at, %hi(crosshairimage) +/* 100D40 7F0CC210 3C090200 */ lui $t1, %hi(0x02000D38) # $t1, 0x200 +/* 100D44 7F0CC214 AC28D114 */ sw $t0, %lo(crosshairimage)($at) +/* 100D48 7F0CC218 25290D38 */ addiu $t1, %lo(0x02000D38) # addiu $t1, $t1, 0xd38 +/* 100D4C 7F0CC21C 00495021 */ addu $t2, $v0, $t1 +/* 100D50 7F0CC220 3C018009 */ lui $at, %hi(betacrosshairimage) +/* 100D54 7F0CC224 3C0B0200 */ lui $t3, %hi(0x02000D44) # $t3, 0x200 +/* 100D58 7F0CC228 AC2AD118 */ sw $t2, %lo(betacrosshairimage)($at) +/* 100D5C 7F0CC22C 256B0D44 */ addiu $t3, %lo(0x02000D44) # addiu $t3, $t3, 0xd44 +/* 100D60 7F0CC230 004B6021 */ addu $t4, $v0, $t3 +/* 100D64 7F0CC234 3C018009 */ lui $at, %hi(glassoverlayimage) +/* 100D68 7F0CC238 3C0D0200 */ lui $t5, %hi(0x02000D5C) # $t5, 0x200 +/* 100D6C 7F0CC23C AC2CD11C */ sw $t4, %lo(glassoverlayimage)($at) +/* 100D70 7F0CC240 25AD0D5C */ addiu $t5, %lo(0x02000D5C) # addiu $t5, $t5, 0xd5c +/* 100D74 7F0CC244 004D7021 */ addu $t6, $v0, $t5 +/* 100D78 7F0CC248 3C018009 */ lui $at, %hi(monitorimages) +/* 100D7C 7F0CC24C 3C0F0200 */ lui $t7, %hi(0x02000FB4) # $t7, 0x200 +/* 100D80 7F0CC250 AC2ED120 */ sw $t6, %lo(monitorimages)($at) +/* 100D84 7F0CC254 25EF0FB4 */ addiu $t7, %lo(0x02000FB4) # addiu $t7, $t7, 0xfb4 +/* 100D88 7F0CC258 004FC021 */ addu $t8, $v0, $t7 +/* 100D8C 7F0CC25C 3C018009 */ lui $at, %hi(skywaterimages) +/* 100D90 7F0CC260 3C190200 */ lui $t9, %hi(0x02000FD8) # $t9, 0x200 +/* 100D94 7F0CC264 AC38D124 */ sw $t8, %lo(skywaterimages)($at) +/* 100D98 7F0CC268 27390FD8 */ addiu $t9, %lo(0x02000FD8) # addiu $t9, $t9, 0xfd8 +/* 100D9C 7F0CC26C 00594021 */ addu $t0, $v0, $t9 +/* 100DA0 7F0CC270 3C018009 */ lui $at, %hi(mainfolderimages) +/* 100DA4 7F0CC274 3C090200 */ lui $t1, %hi(0x02001020) # $t1, 0x200 +/* 100DA8 7F0CC278 AC28D128 */ sw $t0, %lo(mainfolderimages)($at) +/* 100DAC 7F0CC27C 25291020 */ addiu $t1, %lo(0x02001020) # addiu $t1, $t1, 0x1020 +/* 100DB0 7F0CC280 00495021 */ addu $t2, $v0, $t1 +/* 100DB4 7F0CC284 3C018009 */ lui $at, %hi(mpradarimages) +/* 100DB8 7F0CC288 3C0B0200 */ lui $t3, %hi(0x0200102C) # $t3, 0x200 +/* 100DBC 7F0CC28C AC2AD12C */ sw $t2, %lo(mpradarimages)($at) +/* 100DC0 7F0CC290 256B102C */ addiu $t3, %lo(0x0200102C) # addiu $t3, $t3, 0x102c +/* 100DC4 7F0CC294 004B6021 */ addu $t4, $v0, $t3 +/* 100DC8 7F0CC298 3C018009 */ lui $at, %hi(mpcharselimages) +/* 100DCC 7F0CC29C 3C0D0200 */ lui $t5, %hi(0x0200132C) # $t5, 0x200 +/* 100DD0 7F0CC2A0 AC2CD130 */ sw $t4, %lo(mpcharselimages)($at) +/* 100DD4 7F0CC2A4 25AD132C */ addiu $t5, %lo(0x0200132C) # 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(0x02000078) # $t9, 0x200 +/* 100E00 7F0CC2D0 27390078 */ addiu $t9, %lo(0x02000078) # 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(0x02000120) # $t1, 0x200 +/* 100E18 7F0CC2E8 25290120 */ addiu $t1, %lo(0x02000120) # 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(0x020001C8) # $t3, 0x200 +/* 100E30 7F0CC300 256B01C8 */ addiu $t3, %lo(0x020001C8) # 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(0x02000270) # $t5, 0x200 +/* 100E48 7F0CC318 25AD0270 */ addiu $t5, %lo(0x02000270) # 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(0x02000318) # $t7, 0x200 +/* 100E60 7F0CC330 25EF0318 */ addiu $t7, %lo(0x02000318) # 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(0x020003C0) # $t9, 0x200 +/* 100E78 7F0CC348 273903C0 */ addiu $t9, %lo(0x020003C0) # 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(0x02000468) # $t1, 0x200 +/* 100E90 7F0CC360 25290468 */ addiu $t1, %lo(0x02000468) # 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(0x02000510) # $t3, 0x200 +/* 100EA8 7F0CC378 256B0510 */ addiu $t3, %lo(0x02000510) # 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(0x020005B8) # $t5, 0x200 +/* 100EC0 7F0CC390 25AD05B8 */ addiu $t5, %lo(0x020005B8) # 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(0x02000660) # $t7, 0x200 +/* 100ED8 7F0CC3A8 25EF0660 */ addiu $t7, %lo(0x02000660) # 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(0x02000708) # $t9, 0x200 +/* 100EF0 7F0CC3C0 27390708 */ addiu $t9, %lo(0x02000708) # 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(0x020007B0) # $t1, 0x200 +/* 100F08 7F0CC3D8 252907B0 */ addiu $t1, %lo(0x020007B0) # 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(0x02000858) # $t3, 0x200 +/* 100F20 7F0CC3F0 256B0858 */ addiu $t3, %lo(0x02000858) # 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(0x02000900) # $t5, 0x200 +/* 100F38 7F0CC408 25AD0900 */ addiu $t5, %lo(0x02000900) # 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(0x020009A8) # $t7, 0x200 +/* 100F50 7F0CC420 25EF09A8 */ addiu $t7, %lo(0x020009A8) # 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(0x02000A50) # $t9, 0x200 +/* 100F68 7F0CC438 27390A50 */ addiu $t9, %lo(0x02000A50) # 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/indy_commands.c b/src/game/indy_commands.c new file mode 100644 index 0000000..6983351 --- /dev/null +++ b/src/game/indy_commands.c @@ -0,0 +1,1806 @@ +#include "ultra64.h" +#include "game/indy_commands.h" + +// data +//D:8004EAC0 +s32 D_8004EAC0 = 0; +//D:8004EAC4 +s32 indy_status = 0x103; +//D:8004EAC8 +s32 indy_ready = 0; +//D:8004EACC +s32 D_8004EACC = 0x0; +//D:8004EAD0 +s32 D_8004EAD0 = 0x0; + + +#ifdef NONMATCHING +void sub_GAME_7F0D0180(u8 *buffer,u32 size) +{ + int i; + + for (i = 4; i != 100000; i + 4){;} + rmon_debug_stub_0(); + for (i = 4; i != 100000; i + 4){;} +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D0180 +/* 104CB0 7F0D0180 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104CB4 7F0D0184 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104CB8 7F0D0188 AFBF0014 */ sw $ra, 0x14($sp) +/* 104CBC 7F0D018C 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104CC0 7F0D0190 00001025 */ move $v0, $zero +/* 104CC4 7F0D0194 24420004 */ addiu $v0, $v0, 4 +.L7F0D0198: +/* 104CC8 7F0D0198 5443FFFF */ bnel $v0, $v1, .L7F0D0198 +/* 104CCC 7F0D019C 24420004 */ addiu $v0, $v0, 4 +/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon_debug_stub_0 +/* 104CD4 7F0D01A4 00000000 */ nop +/* 104CD8 7F0D01A8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104CDC 7F0D01AC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104CE0 7F0D01B0 00001025 */ move $v0, $zero +/* 104CE4 7F0D01B4 24420004 */ addiu $v0, $v0, 4 +.L7F0D01B8: +/* 104CE8 7F0D01B8 5443FFFF */ bnel $v0, $v1, .L7F0D01B8 +/* 104CEC 7F0D01BC 24420004 */ addiu $v0, $v0, 4 +/* 104CF0 7F0D01C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104CF4 7F0D01C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 104CF8 7F0D01C8 03E00008 */ jr $ra +/* 104CFC 7F0D01CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D01D0(u8 *buffer,u32 size) +{ + int i; + + for (i = 4; i != 100000; i + 4){;} + rmon_debug_stub(); + for (i = 4; i != 100000; i + 4){;} +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D01D0 +/* 104D00 7F0D01D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104D04 7F0D01D4 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104D08 7F0D01D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 104D0C 7F0D01DC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104D10 7F0D01E0 00001025 */ move $v0, $zero +/* 104D14 7F0D01E4 24420004 */ addiu $v0, $v0, 4 +.L7F0D01E8: +/* 104D18 7F0D01E8 5443FFFF */ bnel $v0, $v1, .L7F0D01E8 +/* 104D1C 7F0D01EC 24420004 */ addiu $v0, $v0, 4 +/* 104D20 7F0D01F0 0C0033AE */ jal rmon_debug_stub +/* 104D24 7F0D01F4 00000000 */ nop +/* 104D28 7F0D01F8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104D2C 7F0D01FC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104D30 7F0D0200 00001025 */ move $v0, $zero +/* 104D34 7F0D0204 24420004 */ addiu $v0, $v0, 4 +.L7F0D0208: +/* 104D38 7F0D0208 5443FFFF */ bnel $v0, $v1, .L7F0D0208 +/* 104D3C 7F0D020C 24420004 */ addiu $v0, $v0, 4 +/* 104D40 7F0D0210 8FBF0014 */ lw $ra, 0x14($sp) +/* 104D44 7F0D0214 27BD0018 */ addiu $sp, $sp, 0x18 +/* 104D48 7F0D0218 03E00008 */ jr $ra +/* 104D4C 7F0D021C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void postindyresourcecommand(indy_resource_entry *param_1,u32 param_2) +{ + +} +#else +GLOBAL_ASM( +.text +glabel postindyresourcecommand +/* 104D50 7F0D0220 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 104D54 7F0D0224 27A20040 */ addiu $v0, $sp, 0x40 +/* 104D58 7F0D0228 308F0007 */ andi $t7, $a0, 7 +/* 104D5C 7F0D022C AFBF0014 */ sw $ra, 0x14($sp) +/* 104D60 7F0D0230 AFA40540 */ sw $a0, 0x540($sp) +/* 104D64 7F0D0234 00A03025 */ move $a2, $a1 +/* 104D68 7F0D0238 00401825 */ move $v1, $v0 +/* 104D6C 7F0D023C 11E0002B */ beqz $t7, .L7F0D02EC +/* 104D70 7F0D0240 00403825 */ move $a3, $v0 +/* 104D74 7F0D0244 2CA10501 */ sltiu $at, $a1, 0x501 +/* 104D78 7F0D0248 14200003 */ bnez $at, .L7F0D0258 +/* 104D7C 7F0D024C 30580007 */ andi $t8, $v0, 7 +/* 104D80 7F0D0250 1000003D */ b .L7F0D0348 +/* 104D84 7F0D0254 00001025 */ move $v0, $zero +.L7F0D0258: +/* 104D88 7F0D0258 13000003 */ beqz $t8, .L7F0D0268 +/* 104D8C 7F0D025C 3C088005 */ lui $t0, %hi(indy_status) +/* 104D90 7F0D0260 27A70044 */ addiu $a3, $sp, 0x44 +/* 104D94 7F0D0264 00E01825 */ move $v1, $a3 +.L7F0D0268: +/* 104D98 7F0D0268 00662021 */ addu $a0, $v1, $a2 +/* 104D9C 7F0D026C 0064082B */ sltu $at, $v1, $a0 +/* 104DA0 7F0D0270 10200007 */ beqz $at, .L7F0D0290 +/* 104DA4 7F0D0274 8FA20540 */ lw $v0, 0x540($sp) +.L7F0D0278: +/* 104DA8 7F0D0278 90590000 */ lbu $t9, ($v0) +/* 104DAC 7F0D027C 24630001 */ addiu $v1, $v1, 1 +/* 104DB0 7F0D0280 0064082B */ sltu $at, $v1, $a0 +/* 104DB4 7F0D0284 24420001 */ addiu $v0, $v0, 1 +/* 104DB8 7F0D0288 1420FFFB */ bnez $at, .L7F0D0278 +/* 104DBC 7F0D028C A079FFFF */ sb $t9, -1($v1) +.L7F0D0290: +/* 104DC0 7F0D0290 8D08EAC4 */ lw $t0, %lo(indy_status)($t0) +/* 104DC4 7F0D0294 24C50003 */ addiu $a1, $a2, 3 +/* 104DC8 7F0D0298 2401FFFC */ li $at, -4 +/* 104DCC 7F0D029C 31090020 */ andi $t1, $t0, 0x20 +/* 104DD0 7F0D02A0 1120000D */ beqz $t1, .L7F0D02D8 +/* 104DD4 7F0D02A4 00A15024 */ and $t2, $a1, $at +/* 104DD8 7F0D02A8 10C0000B */ beqz $a2, .L7F0D02D8 +/* 104DDC 7F0D02AC 00001025 */ move $v0, $zero +/* 104DE0 7F0D02B0 30C40003 */ andi $a0, $a2, 3 +/* 104DE4 7F0D02B4 10800005 */ beqz $a0, .L7F0D02CC +/* 104DE8 7F0D02B8 00801825 */ move $v1, $a0 +/* 104DEC 7F0D02BC 24420001 */ addiu $v0, $v0, 1 +.L7F0D02C0: +/* 104DF0 7F0D02C0 5462FFFF */ bnel $v1, $v0, .L7F0D02C0 +/* 104DF4 7F0D02C4 24420001 */ addiu $v0, $v0, 1 +/* 104DF8 7F0D02C8 10460003 */ beq $v0, $a2, .L7F0D02D8 +.L7F0D02CC: +/* 104DFC 7F0D02CC 24420004 */ addiu $v0, $v0, 4 +.L7F0D02D0: +/* 104E00 7F0D02D0 5446FFFF */ bnel $v0, $a2, .L7F0D02D0 +/* 104E04 7F0D02D4 24420004 */ addiu $v0, $v0, 4 +.L7F0D02D8: +/* 104E08 7F0D02D8 00E02025 */ move $a0, $a3 +/* 104E0C 7F0D02DC 0FC34074 */ jal sub_GAME_7F0D01D0 +/* 104E10 7F0D02E0 01402825 */ move $a1, $t2 +/* 104E14 7F0D02E4 10000018 */ b .L7F0D0348 +/* 104E18 7F0D02E8 24020001 */ li $v0, 1 +.L7F0D02EC: +/* 104E1C 7F0D02EC 3C0B8005 */ lui $t3, %hi(indy_status) +/* 104E20 7F0D02F0 8D6BEAC4 */ lw $t3, %lo(indy_status)($t3) +/* 104E24 7F0D02F4 24C50003 */ addiu $a1, $a2, 3 +/* 104E28 7F0D02F8 2401FFFC */ li $at, -4 +/* 104E2C 7F0D02FC 316C0020 */ andi $t4, $t3, 0x20 +/* 104E30 7F0D0300 1180000D */ beqz $t4, .L7F0D0338 +/* 104E34 7F0D0304 00A16824 */ and $t5, $a1, $at +/* 104E38 7F0D0308 10C0000B */ beqz $a2, .L7F0D0338 +/* 104E3C 7F0D030C 00001025 */ move $v0, $zero +/* 104E40 7F0D0310 30C40003 */ andi $a0, $a2, 3 +/* 104E44 7F0D0314 10800005 */ beqz $a0, .L7F0D032C +/* 104E48 7F0D0318 00801825 */ move $v1, $a0 +/* 104E4C 7F0D031C 24420001 */ addiu $v0, $v0, 1 +.L7F0D0320: +/* 104E50 7F0D0320 5462FFFF */ bnel $v1, $v0, .L7F0D0320 +/* 104E54 7F0D0324 24420001 */ addiu $v0, $v0, 1 +/* 104E58 7F0D0328 10460003 */ beq $v0, $a2, .L7F0D0338 +.L7F0D032C: +/* 104E5C 7F0D032C 24420004 */ addiu $v0, $v0, 4 +.L7F0D0330: +/* 104E60 7F0D0330 5446FFFF */ bnel $v0, $a2, .L7F0D0330 +/* 104E64 7F0D0334 24420004 */ addiu $v0, $v0, 4 +.L7F0D0338: +/* 104E68 7F0D0338 8FA40540 */ lw $a0, 0x540($sp) +/* 104E6C 7F0D033C 0FC34074 */ jal sub_GAME_7F0D01D0 +/* 104E70 7F0D0340 01A02825 */ move $a1, $t5 +/* 104E74 7F0D0344 24020001 */ li $v0, 1 +.L7F0D0348: +/* 104E78 7F0D0348 8FBF0014 */ lw $ra, 0x14($sp) +/* 104E7C 7F0D034C 27BD0540 */ addiu $sp, $sp, 0x540 +/* 104E80 7F0D0350 03E00008 */ jr $ra +/* 104E84 7F0D0354 00000000 */ nop +) +#endif + + + + + + +u32 send2indyresourcecommands(struct indy_resource_entry * entry1, u32 size1, struct indy_resource_entry * entry2, u32 size2) +{ + postindyresourcecommand(entry1,size1); + postindyresourcecommand(entry2,size2); + return 1; +} + + +void post_type1_indyrescmd_sizenextcmd(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + + cmd.resourceID = 0x9abf1623; + cmd.type = 1; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + + +void post_type2_indyrescmd_cmds_rdy_to_proc(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + + cmd.resourceID = 0x9abf1623; + cmd.type = 2; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + + +void post_type0_indyrescmd_init(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + cmd.resourceID = 0x9abf1623; + cmd.type = 0; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + +#ifdef NONMATCHING +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.size = 0x114; + cmd.entry.readsize = rsize; + cmd.entry.writesize = wsize; + something_with_strings(cmd.strbuffer,strptr,0x100); + cmd.data = 0; + postindyresourcecommand(&cmd.entry,0x114); +} +#else +GLOBAL_ASM( +.text +glabel post_type3_indyrescmd +/* 104F90 7F0D0460 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 104F94 7F0D0464 AFA50134 */ sw $a1, 0x134($sp) +/* 104F98 7F0D0468 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 104F9C 7F0D046C AFA5002C */ sw $a1, 0x2c($sp) +/* 104FA0 7F0D0470 AFBF0014 */ sw $ra, 0x14($sp) +/* 104FA4 7F0D0474 AFA60138 */ sw $a2, 0x138($sp) +/* 104FA8 7F0D0478 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 104FAC 7F0D047C 240F0003 */ li $t7, 3 +/* 104FB0 7F0D0480 24180114 */ li $t8, 276 +/* 104FB4 7F0D0484 AFA40028 */ sw $a0, 0x28($sp) +/* 104FB8 7F0D0488 00C02825 */ move $a1, $a2 +/* 104FBC 7F0D048C AFAE001C */ sw $t6, 0x1c($sp) +/* 104FC0 7F0D0490 AFAF0020 */ sw $t7, 0x20($sp) +/* 104FC4 7F0D0494 AFB80024 */ sw $t8, 0x24($sp) +/* 104FC8 7F0D0498 24060100 */ li $a2, 256 +/* 104FCC 7F0D049C 0C0029E8 */ jal something_with_strings +/* 104FD0 7F0D04A0 27A40030 */ addiu $a0, $sp, 0x30 +/* 104FD4 7F0D04A4 A3A0012F */ sb $zero, 0x12f($sp) +/* 104FD8 7F0D04A8 27A4001C */ addiu $a0, $sp, 0x1c +/* 104FDC 7F0D04AC 0FC34088 */ jal postindyresourcecommand +/* 104FE0 7F0D04B0 24050114 */ li $a1, 276 +/* 104FE4 7F0D04B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 104FE8 7F0D04B8 27BD0130 */ addiu $sp, $sp, 0x130 +/* 104FEC 7F0D04BC 03E00008 */ jr $ra +/* 104FF0 7F0D04C0 00000000 */ nop +) +#endif + + + + + + +void post_type4_indyrescmd_data_recieved(s32 readsize,s32 writesize,s32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 4; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + + +#ifdef NONMATCHING +void post_type5_indyrescmd_printfsend(s32 param_1,s32 param_2,char *param_3) +{ + struct indy_resource_entry cmd; + char acStack256 [255]; + undefined uStack1; + + cmd.resourceID = 0x9abf1623; + cmd.type = 5; + cmd.size = 0x114; + cmd.readsize = param_1; + cmd.writesize = param_2; + something_with_strings(acStack256,param_3,0x100); + uStack1 = 0; + postindyresourcecommand(&cmd,0x114); +} +#else +GLOBAL_ASM( +.text +glabel post_type5_indyrescmd_printfsend +/* 105044 7F0D0514 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 105048 7F0D0518 AFA50134 */ sw $a1, 0x134($sp) +/* 10504C 7F0D051C 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105050 7F0D0520 AFA5002C */ sw $a1, 0x2c($sp) +/* 105054 7F0D0524 AFBF0014 */ sw $ra, 0x14($sp) +/* 105058 7F0D0528 AFA60138 */ sw $a2, 0x138($sp) +/* 10505C 7F0D052C 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105060 7F0D0530 240F0005 */ li $t7, 5 +/* 105064 7F0D0534 24180114 */ li $t8, 276 +/* 105068 7F0D0538 AFA40028 */ sw $a0, 0x28($sp) +/* 10506C 7F0D053C 00C02825 */ move $a1, $a2 +/* 105070 7F0D0540 AFAE001C */ sw $t6, 0x1c($sp) +/* 105074 7F0D0544 AFAF0020 */ sw $t7, 0x20($sp) +/* 105078 7F0D0548 AFB80024 */ sw $t8, 0x24($sp) +/* 10507C 7F0D054C 24060100 */ li $a2, 256 +/* 105080 7F0D0550 0C0029E8 */ jal something_with_strings +/* 105084 7F0D0554 27A40030 */ addiu $a0, $sp, 0x30 +/* 105088 7F0D0558 A3A0012F */ sb $zero, 0x12f($sp) +/* 10508C 7F0D055C 27A4001C */ addiu $a0, $sp, 0x1c +/* 105090 7F0D0560 0FC34088 */ jal postindyresourcecommand +/* 105094 7F0D0564 24050114 */ li $a1, 276 +/* 105098 7F0D0568 8FBF0014 */ lw $ra, 0x14($sp) +/* 10509C 7F0D056C 27BD0130 */ addiu $sp, $sp, 0x130 +/* 1050A0 7F0D0570 03E00008 */ jr $ra +/* 1050A4 7F0D0574 00000000 */ nop +) +#endif + + + + + + +void post_type6_indyrescmd_printfrecieved(s32 readsize,s32 writesize,u32 data1,u32 data2) +{ + struct indy_resource_entry_type6 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 6; + cmd.entry.size = 0x1c; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data1 = data1; + cmd.data2 = data2; + postindyresourcecommand(&cmd.entry,0x1c); +} + + + +#ifdef NONMATCHING +void post_type7_indyrescmd_log_send(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type7_indyrescmd_log_send +/* 105100 7F0D05D0 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 105104 7F0D05D4 AFA50134 */ sw $a1, 0x134($sp) +/* 105108 7F0D05D8 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 10510C 7F0D05DC AFA50028 */ sw $a1, 0x28($sp) +/* 105110 7F0D05E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 105114 7F0D05E4 AFA40130 */ sw $a0, 0x130($sp) +/* 105118 7F0D05E8 AFA60138 */ sw $a2, 0x138($sp) +/* 10511C 7F0D05EC 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105120 7F0D05F0 240F0007 */ li $t7, 7 +/* 105124 7F0D05F4 24180118 */ li $t8, 280 +/* 105128 7F0D05F8 AFA40024 */ sw $a0, 0x24($sp) +/* 10512C 7F0D05FC 00C02825 */ move $a1, $a2 +/* 105130 7F0D0600 AFA7013C */ sw $a3, 0x13c($sp) +/* 105134 7F0D0604 AFAE0018 */ sw $t6, 0x18($sp) +/* 105138 7F0D0608 AFAF001C */ sw $t7, 0x1c($sp) +/* 10513C 7F0D060C AFB80020 */ sw $t8, 0x20($sp) +/* 105140 7F0D0610 24060100 */ li $a2, 256 +/* 105144 7F0D0614 0C0029E8 */ jal something_with_strings +/* 105148 7F0D0618 27A4002C */ addiu $a0, $sp, 0x2c +/* 10514C 7F0D061C 8FA9013C */ lw $t1, 0x13c($sp) +/* 105150 7F0D0620 A3A0012B */ sb $zero, 0x12b($sp) +/* 105154 7F0D0624 27A40018 */ addiu $a0, $sp, 0x18 +/* 105158 7F0D0628 24050118 */ li $a1, 280 +/* 10515C 7F0D062C 0FC34088 */ jal postindyresourcecommand +/* 105160 7F0D0630 AFA9012C */ sw $t1, 0x12c($sp) +/* 105164 7F0D0634 8FBF0014 */ lw $ra, 0x14($sp) +/* 105168 7F0D0638 27BD0130 */ addiu $sp, $sp, 0x130 +/* 10516C 7F0D063C 03E00008 */ jr $ra +/* 105170 7F0D0640 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type8_indyrescmd_log_recieved(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type8_indyrescmd_log_recieved +/* 105174 7F0D0644 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105178 7F0D0648 AFA70044 */ sw $a3, 0x44($sp) +/* 10517C 7F0D064C 8FA70048 */ lw $a3, 0x48($sp) +/* 105180 7F0D0650 2401FFFC */ li $at, -4 +/* 105184 7F0D0654 8FAC0044 */ lw $t4, 0x44($sp) +/* 105188 7F0D0658 24F80003 */ addiu $t8, $a3, 3 +/* 10518C 7F0D065C 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105190 7F0D0660 0301C824 */ and $t9, $t8, $at +/* 105194 7F0D0664 AFBF0014 */ sw $ra, 0x14($sp) +/* 105198 7F0D0668 AFA40038 */ sw $a0, 0x38($sp) +/* 10519C 7F0D066C AFA5003C */ sw $a1, 0x3c($sp) +/* 1051A0 7F0D0670 AFA60040 */ sw $a2, 0x40($sp) +/* 1051A4 7F0D0674 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1051A8 7F0D0678 240F0008 */ li $t7, 8 +/* 1051AC 7F0D067C 27280020 */ addiu $t0, $t9, 0x20 +/* 1051B0 7F0D0680 AFA40024 */ sw $a0, 0x24($sp) +/* 1051B4 7F0D0684 AFA50028 */ sw $a1, 0x28($sp) +/* 1051B8 7F0D0688 AFA6002C */ sw $a2, 0x2c($sp) +/* 1051BC 7F0D068C AFAE0018 */ sw $t6, 0x18($sp) +/* 1051C0 7F0D0690 AFAF001C */ sw $t7, 0x1c($sp) +/* 1051C4 7F0D0694 AFA80020 */ sw $t0, 0x20($sp) +/* 1051C8 7F0D0698 8FA6004C */ lw $a2, 0x4c($sp) +/* 1051CC 7F0D069C 24050020 */ li $a1, 32 +/* 1051D0 7F0D06A0 27A40018 */ addiu $a0, $sp, 0x18 +/* 1051D4 7F0D06A4 AFA70034 */ sw $a3, 0x34($sp) +/* 1051D8 7F0D06A8 0FC340D6 */ jal send2indyresourcecommands +/* 1051DC 7F0D06AC AFAC0030 */ sw $t4, 0x30($sp) +/* 1051E0 7F0D06B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 1051E4 7F0D06B4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 1051E8 7F0D06B8 03E00008 */ jr $ra +/* 1051EC 7F0D06BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type9_indyrescmd_app_command_ready(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type9_indyrescmd_app_command_ready +/* 1051F0 7F0D06C0 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 1051F4 7F0D06C4 24F90003 */ addiu $t9, $a3, 3 +/* 1051F8 7F0D06C8 2401FFFC */ li $at, -4 +/* 1051FC 7F0D06CC AFA50134 */ sw $a1, 0x134($sp) +/* 105200 7F0D06D0 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105204 7F0D06D4 03214024 */ and $t0, $t9, $at +/* 105208 7F0D06D8 AFA5002C */ sw $a1, 0x2c($sp) +/* 10520C 7F0D06DC AFBF0014 */ sw $ra, 0x14($sp) +/* 105210 7F0D06E0 AFA40130 */ sw $a0, 0x130($sp) +/* 105214 7F0D06E4 AFA60138 */ sw $a2, 0x138($sp) +/* 105218 7F0D06E8 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 10521C 7F0D06EC 240F0009 */ li $t7, 9 +/* 105220 7F0D06F0 25090114 */ addiu $t1, $t0, 0x114 +/* 105224 7F0D06F4 AFA40028 */ sw $a0, 0x28($sp) +/* 105228 7F0D06F8 00C02825 */ move $a1, $a2 +/* 10522C 7F0D06FC AFA7013C */ sw $a3, 0x13c($sp) +/* 105230 7F0D0700 AFAE001C */ sw $t6, 0x1c($sp) +/* 105234 7F0D0704 AFAF0020 */ sw $t7, 0x20($sp) +/* 105238 7F0D0708 AFA90024 */ sw $t1, 0x24($sp) +/* 10523C 7F0D070C 24060100 */ li $a2, 256 +/* 105240 7F0D0710 0C0029E8 */ jal something_with_strings +/* 105244 7F0D0714 27A40030 */ addiu $a0, $sp, 0x30 +/* 105248 7F0D0718 A3A0012F */ sb $zero, 0x12f($sp) +/* 10524C 7F0D071C 27A4001C */ addiu $a0, $sp, 0x1c +/* 105250 7F0D0720 24050114 */ li $a1, 276 +/* 105254 7F0D0724 8FA60140 */ lw $a2, 0x140($sp) +/* 105258 7F0D0728 0FC340D6 */ jal send2indyresourcecommands +/* 10525C 7F0D072C 8FA7013C */ lw $a3, 0x13c($sp) +/* 105260 7F0D0730 8FBF0014 */ lw $ra, 0x14($sp) +/* 105264 7F0D0734 27BD0130 */ addiu $sp, $sp, 0x130 +/* 105268 7F0D0738 03E00008 */ jr $ra +/* 10526C 7F0D073C 00000000 */ nop +) +#endif + + + + +void post_typeA_indyrescmd_app_command_recieved(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 10; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + +#ifdef NONMATCHING +void post_typeF_indyrescmd_fault_send(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeF_indyrescmd_fault_send +/* 1052C0 7F0D0790 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 1052C4 7F0D0794 AFA5013C */ sw $a1, 0x13c($sp) +/* 1052C8 7F0D0798 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 1052CC 7F0D079C AFA5002C */ sw $a1, 0x2c($sp) +/* 1052D0 7F0D07A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 1052D4 7F0D07A4 AFA40138 */ sw $a0, 0x138($sp) +/* 1052D8 7F0D07A8 AFA60140 */ sw $a2, 0x140($sp) +/* 1052DC 7F0D07AC 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1052E0 7F0D07B0 240F000F */ li $t7, 15 +/* 1052E4 7F0D07B4 2418011C */ li $t8, 284 +/* 1052E8 7F0D07B8 AFA40028 */ sw $a0, 0x28($sp) +/* 1052EC 7F0D07BC 00C02825 */ move $a1, $a2 +/* 1052F0 7F0D07C0 AFA70144 */ sw $a3, 0x144($sp) +/* 1052F4 7F0D07C4 AFAE001C */ sw $t6, 0x1c($sp) +/* 1052F8 7F0D07C8 AFAF0020 */ sw $t7, 0x20($sp) +/* 1052FC 7F0D07CC AFB80024 */ sw $t8, 0x24($sp) +/* 105300 7F0D07D0 24060100 */ li $a2, 256 +/* 105304 7F0D07D4 0C0029E8 */ jal something_with_strings +/* 105308 7F0D07D8 27A40030 */ addiu $a0, $sp, 0x30 +/* 10530C 7F0D07DC 8FA90144 */ lw $t1, 0x144($sp) +/* 105310 7F0D07E0 8FAA0148 */ lw $t2, 0x148($sp) +/* 105314 7F0D07E4 A3A0012F */ sb $zero, 0x12f($sp) +/* 105318 7F0D07E8 27A4001C */ addiu $a0, $sp, 0x1c +/* 10531C 7F0D07EC 2405011C */ li $a1, 284 +/* 105320 7F0D07F0 AFA90130 */ sw $t1, 0x130($sp) +/* 105324 7F0D07F4 0FC34088 */ jal postindyresourcecommand +/* 105328 7F0D07F8 AFAA0134 */ sw $t2, 0x134($sp) +/* 10532C 7F0D07FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 105330 7F0D0800 27BD0138 */ addiu $sp, $sp, 0x138 +/* 105334 7F0D0804 03E00008 */ jr $ra +/* 105338 7F0D0808 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type10_indyrescmd_fault_ack_by_host(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type10_indyrescmd_fault_ack_by_host +/* 10533C 7F0D080C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105340 7F0D0810 8FA90048 */ lw $t1, 0x48($sp) +/* 105344 7F0D0814 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105348 7F0D0818 AFBF0014 */ sw $ra, 0x14($sp) +/* 10534C 7F0D081C AFA40038 */ sw $a0, 0x38($sp) +/* 105350 7F0D0820 AFA5003C */ sw $a1, 0x3c($sp) +/* 105354 7F0D0824 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105358 7F0D0828 240F0010 */ li $t7, 16 +/* 10535C 7F0D082C 24180020 */ li $t8, 32 +/* 105360 7F0D0830 AFA40024 */ sw $a0, 0x24($sp) +/* 105364 7F0D0834 AFA50028 */ sw $a1, 0x28($sp) +/* 105368 7F0D0838 AFAE0018 */ sw $t6, 0x18($sp) +/* 10536C 7F0D083C AFAF001C */ sw $t7, 0x1c($sp) +/* 105370 7F0D0840 AFB80020 */ sw $t8, 0x20($sp) +/* 105374 7F0D0844 AFA6002C */ sw $a2, 0x2c($sp) +/* 105378 7F0D0848 AFA70030 */ sw $a3, 0x30($sp) +/* 10537C 7F0D084C 24050020 */ li $a1, 32 +/* 105380 7F0D0850 27A40018 */ addiu $a0, $sp, 0x18 +/* 105384 7F0D0854 0FC34088 */ jal postindyresourcecommand +/* 105388 7F0D0858 AFA90034 */ sw $t1, 0x34($sp) +/* 10538C 7F0D085C 8FBF0014 */ lw $ra, 0x14($sp) +/* 105390 7F0D0860 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105394 7F0D0864 03E00008 */ jr $ra +/* 105398 7F0D0868 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_typeD_indyrescmd_prof_send_filename(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeD_indyrescmd_prof_send_filename +/* 10539C 7F0D086C 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 1053A0 7F0D0870 AFA5013C */ sw $a1, 0x13c($sp) +/* 1053A4 7F0D0874 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 1053A8 7F0D0878 AFA5002C */ sw $a1, 0x2c($sp) +/* 1053AC 7F0D087C AFBF0014 */ sw $ra, 0x14($sp) +/* 1053B0 7F0D0880 AFA40138 */ sw $a0, 0x138($sp) +/* 1053B4 7F0D0884 AFA60140 */ sw $a2, 0x140($sp) +/* 1053B8 7F0D0888 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1053BC 7F0D088C 240F000D */ li $t7, 13 +/* 1053C0 7F0D0890 2418011C */ li $t8, 284 +/* 1053C4 7F0D0894 AFA40028 */ sw $a0, 0x28($sp) +/* 1053C8 7F0D0898 00C02825 */ move $a1, $a2 +/* 1053CC 7F0D089C AFA70144 */ sw $a3, 0x144($sp) +/* 1053D0 7F0D08A0 AFAE001C */ sw $t6, 0x1c($sp) +/* 1053D4 7F0D08A4 AFAF0020 */ sw $t7, 0x20($sp) +/* 1053D8 7F0D08A8 AFB80024 */ sw $t8, 0x24($sp) +/* 1053DC 7F0D08AC 24060100 */ li $a2, 256 +/* 1053E0 7F0D08B0 0C0029E8 */ jal something_with_strings +/* 1053E4 7F0D08B4 27A40030 */ addiu $a0, $sp, 0x30 +/* 1053E8 7F0D08B8 8FA90144 */ lw $t1, 0x144($sp) +/* 1053EC 7F0D08BC 8FAA0148 */ lw $t2, 0x148($sp) +/* 1053F0 7F0D08C0 A3A0012F */ sb $zero, 0x12f($sp) +/* 1053F4 7F0D08C4 27A4001C */ addiu $a0, $sp, 0x1c +/* 1053F8 7F0D08C8 2405011C */ li $a1, 284 +/* 1053FC 7F0D08CC AFA90130 */ sw $t1, 0x130($sp) +/* 105400 7F0D08D0 0FC34088 */ jal postindyresourcecommand +/* 105404 7F0D08D4 AFAA0134 */ sw $t2, 0x134($sp) +/* 105408 7F0D08D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 10540C 7F0D08DC 27BD0138 */ addiu $sp, $sp, 0x138 +/* 105410 7F0D08E0 03E00008 */ jr $ra +/* 105414 7F0D08E4 00000000 */ nop +) +#endif + + + + + + +void post_typeE_indyrescmd_prof_recv(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 0xe; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + +#ifdef NONMATCHING +void post_typeB_indyrescmd_host_prof_req(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeB_indyrescmd_host_prof_req +/* 105468 7F0D0938 27BDFBD0 */ addiu $sp, $sp, -0x430 +/* 10546C 7F0D093C AFA50434 */ sw $a1, 0x434($sp) +/* 105470 7F0D0940 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105474 7F0D0944 AFA5002C */ sw $a1, 0x2c($sp) +/* 105478 7F0D0948 AFBF0014 */ sw $ra, 0x14($sp) +/* 10547C 7F0D094C AFA60438 */ sw $a2, 0x438($sp) +/* 105480 7F0D0950 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105484 7F0D0954 240F000B */ li $t7, 11 +/* 105488 7F0D0958 24180414 */ li $t8, 1044 +/* 10548C 7F0D095C AFA40028 */ sw $a0, 0x28($sp) +/* 105490 7F0D0960 00C02825 */ move $a1, $a2 +/* 105494 7F0D0964 AFAE001C */ sw $t6, 0x1c($sp) +/* 105498 7F0D0968 AFAF0020 */ sw $t7, 0x20($sp) +/* 10549C 7F0D096C AFB80024 */ sw $t8, 0x24($sp) +/* 1054A0 7F0D0970 24060400 */ li $a2, 1024 +/* 1054A4 7F0D0974 0C0029E8 */ jal something_with_strings +/* 1054A8 7F0D0978 27A40030 */ addiu $a0, $sp, 0x30 +/* 1054AC 7F0D097C A3A0042F */ sb $zero, 0x42f($sp) +/* 1054B0 7F0D0980 27A4001C */ addiu $a0, $sp, 0x1c +/* 1054B4 7F0D0984 0FC34088 */ jal postindyresourcecommand +/* 1054B8 7F0D0988 24050414 */ li $a1, 1044 +/* 1054BC 7F0D098C 8FBF0014 */ lw $ra, 0x14($sp) +/* 1054C0 7F0D0990 27BD0430 */ addiu $sp, $sp, 0x430 +/* 1054C4 7F0D0994 03E00008 */ jr $ra +/* 1054C8 7F0D0998 00000000 */ nop +) +#endif + + + + + + +void post_typeC_indyrescmd_prof_send(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 0xc; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + +void post_typeA_indyrescmd_app_data_recieved(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 10; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + +u32 post_indy__res_cmd_initialize_seq(void) +{ + post_type1_indyrescmd_sizenextcmd(0x14,0x14); + post_type0_indyrescmd_init(0x14,0x14); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_data_send(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x114,0x114); + post_type3_indyrescmd(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_debug_data_recv(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_type4_indyrescmd_data_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_printf_send(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x114,0x114); + post_type5_indyrescmd_printfsend(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_debug_printf_recv(u32 data1,u32 data2) +{ + post_type1_indyrescmd_sizenextcmd(0x1c,0x1c); + post_type6_indyrescmd_printfrecieved(0x14,0x14,data1,data2); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_req_filename_size(u8 *filename,u32 size) +{ + post_type1_indyrescmd_sizenextcmd(0x118,0x118); + post_type7_indyrescmd_log_send(0x14,0x14,filename,size); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_8_2(u32 data1,u32 data2,u32 size2,struct indy_resource_entry *cmd2) +{ + post_type1_indyrescmd_sizenextcmd((size2 + 3 & 0xfffffffc) + 0x20,0x20); + post_type8_indyrescmd_log_recieved(0x14,0x14,data1,data2,size2,cmd2); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_send_capture_data(char *string, u32 size, struct indy_resource_entry *data) +{ + post_type1_indyrescmd_sizenextcmd((size + 3 & 0xfffffffc) + 0x114,0x114); + post_type9_indyrescmd_app_command_ready(0x14,0x14,string,size,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_recv_capture_data_success(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeA_indyrescmd_app_command_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_request_ramrom_file(char *strptr,u32 ptarget,u32 filesize) +{ + post_type1_indyrescmd_sizenextcmd(0x11c,0x11c); + post_typeF_indyrescmd_fault_send(0x14,0x14,strptr,filesize,ptarget); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_10_2(u32 param_1,u32 param_2,u32 param_3) +{ + post_type1_indyrescmd_sizenextcmd(0x20,0x20); + post_type10_indyrescmd_fault_ack_by_host(0x14,0x14,param_1,param_2,param_3); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_prof_sendfile(char *strptr,u8 *phwaddr,u32 size) +{ + post_type1_indyrescmd_sizenextcmd(0x11c,0x11c); + post_typeD_indyrescmd_prof_send_filename(0x14,0x14,strptr,size,phwaddr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_host_prof_recv(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeE_indyrescmd_prof_recv(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_B_2(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x414,0x414); + post_typeB_indyrescmd_host_prof_req(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_C_2(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeC_indyrescmd_prof_send(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_A_2(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeA_indyrescmd_app_data_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + + + + + +#ifdef NONMATCHING +void post_indyrescmd_read_command(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_read_command +/* 105A7C 7F0D0F4C 27BDFBC0 */ addiu $sp, $sp, -0x440 +/* 105A80 7F0D0F50 27A20040 */ addiu $v0, $sp, 0x40 +/* 105A84 7F0D0F54 308F0007 */ andi $t7, $a0, 7 +/* 105A88 7F0D0F58 AFBF0014 */ sw $ra, 0x14($sp) +/* 105A8C 7F0D0F5C AFA40440 */ sw $a0, 0x440($sp) +/* 105A90 7F0D0F60 00A03025 */ move $a2, $a1 +/* 105A94 7F0D0F64 00401825 */ move $v1, $v0 +/* 105A98 7F0D0F68 11E00031 */ beqz $t7, .L7F0D1030 +/* 105A9C 7F0D0F6C 00403825 */ move $a3, $v0 +/* 105AA0 7F0D0F70 2CA10401 */ sltiu $at, $a1, 0x401 +/* 105AA4 7F0D0F74 14200003 */ bnez $at, .L7F0D0F84 +/* 105AA8 7F0D0F78 30580007 */ andi $t8, $v0, 7 +/* 105AAC 7F0D0F7C 10000046 */ b .L7F0D1098 +/* 105AB0 7F0D0F80 00001025 */ move $v0, $zero +.L7F0D0F84: +/* 105AB4 7F0D0F84 13000003 */ beqz $t8, .L7F0D0F94 +/* 105AB8 7F0D0F88 24C50003 */ addiu $a1, $a2, 3 +/* 105ABC 7F0D0F8C 27A30044 */ addiu $v1, $sp, 0x44 +/* 105AC0 7F0D0F90 00603825 */ move $a3, $v1 +.L7F0D0F94: +/* 105AC4 7F0D0F94 2401FFFC */ li $at, -4 +/* 105AC8 7F0D0F98 00A1C824 */ and $t9, $a1, $at +/* 105ACC 7F0D0F9C 03202825 */ move $a1, $t9 +/* 105AD0 7F0D0FA0 00E02025 */ move $a0, $a3 +/* 105AD4 7F0D0FA4 AFA3003C */ sw $v1, 0x3c($sp) +/* 105AD8 7F0D0FA8 0FC34060 */ jal sub_GAME_7F0D0180 +/* 105ADC 7F0D0FAC AFA60444 */ sw $a2, 0x444($sp) +/* 105AE0 7F0D0FB0 8FA3003C */ lw $v1, 0x3c($sp) +/* 105AE4 7F0D0FB4 8FA60444 */ lw $a2, 0x444($sp) +/* 105AE8 7F0D0FB8 8FA20440 */ lw $v0, 0x440($sp) +/* 105AEC 7F0D0FBC 3C098005 */ lui $t1, %hi(indy_status) +/* 105AF0 7F0D0FC0 00662021 */ addu $a0, $v1, $a2 +/* 105AF4 7F0D0FC4 0064082B */ sltu $at, $v1, $a0 +/* 105AF8 7F0D0FC8 10200007 */ beqz $at, .L7F0D0FE8 +/* 105AFC 7F0D0FCC 00000000 */ nop +.L7F0D0FD0: +/* 105B00 7F0D0FD0 90680000 */ lbu $t0, ($v1) +/* 105B04 7F0D0FD4 24630001 */ addiu $v1, $v1, 1 +/* 105B08 7F0D0FD8 0064082B */ sltu $at, $v1, $a0 +/* 105B0C 7F0D0FDC 24420001 */ addiu $v0, $v0, 1 +/* 105B10 7F0D0FE0 1420FFFB */ bnez $at, .L7F0D0FD0 +/* 105B14 7F0D0FE4 A048FFFF */ sb $t0, -1($v0) +.L7F0D0FE8: +/* 105B18 7F0D0FE8 8D29EAC4 */ lw $t1, %lo(indy_status)($t1) +/* 105B1C 7F0D0FEC 312A0010 */ andi $t2, $t1, 0x10 +/* 105B20 7F0D0FF0 1140000D */ beqz $t2, .L7F0D1028 +/* 105B24 7F0D0FF4 00000000 */ nop +/* 105B28 7F0D0FF8 10C0000B */ beqz $a2, .L7F0D1028 +/* 105B2C 7F0D0FFC 00001025 */ move $v0, $zero +/* 105B30 7F0D1000 30C40003 */ andi $a0, $a2, 3 +/* 105B34 7F0D1004 10800005 */ beqz $a0, .L7F0D101C +/* 105B38 7F0D1008 00801825 */ move $v1, $a0 +/* 105B3C 7F0D100C 24420001 */ addiu $v0, $v0, 1 +.L7F0D1010: +/* 105B40 7F0D1010 5462FFFF */ bnel $v1, $v0, .L7F0D1010 +/* 105B44 7F0D1014 24420001 */ addiu $v0, $v0, 1 +/* 105B48 7F0D1018 10460003 */ beq $v0, $a2, .L7F0D1028 +.L7F0D101C: +/* 105B4C 7F0D101C 24420004 */ addiu $v0, $v0, 4 +.L7F0D1020: +/* 105B50 7F0D1020 5446FFFF */ bnel $v0, $a2, .L7F0D1020 +/* 105B54 7F0D1024 24420004 */ addiu $v0, $v0, 4 +.L7F0D1028: +/* 105B58 7F0D1028 1000001B */ b .L7F0D1098 +/* 105B5C 7F0D102C 24020001 */ li $v0, 1 +.L7F0D1030: +/* 105B60 7F0D1030 24C50003 */ addiu $a1, $a2, 3 +/* 105B64 7F0D1034 2401FFFC */ li $at, -4 +/* 105B68 7F0D1038 00A15824 */ and $t3, $a1, $at +/* 105B6C 7F0D103C 01602825 */ move $a1, $t3 +/* 105B70 7F0D1040 8FA40440 */ lw $a0, 0x440($sp) +/* 105B74 7F0D1044 0FC34060 */ jal sub_GAME_7F0D0180 +/* 105B78 7F0D1048 AFA60444 */ sw $a2, 0x444($sp) +/* 105B7C 7F0D104C 3C0C8005 */ lui $t4, %hi(indy_status) +/* 105B80 7F0D1050 8D8CEAC4 */ lw $t4, %lo(indy_status)($t4) +/* 105B84 7F0D1054 8FA60444 */ lw $a2, 0x444($sp) +/* 105B88 7F0D1058 318D0010 */ andi $t5, $t4, 0x10 +/* 105B8C 7F0D105C 51A0000E */ beql $t5, $zero, .L7F0D1098 +/* 105B90 7F0D1060 24020001 */ li $v0, 1 +/* 105B94 7F0D1064 10C0000B */ beqz $a2, .L7F0D1094 +/* 105B98 7F0D1068 00001025 */ move $v0, $zero +/* 105B9C 7F0D106C 30C40003 */ andi $a0, $a2, 3 +/* 105BA0 7F0D1070 10800005 */ beqz $a0, .L7F0D1088 +/* 105BA4 7F0D1074 00801825 */ move $v1, $a0 +/* 105BA8 7F0D1078 24420001 */ addiu $v0, $v0, 1 +.L7F0D107C: +/* 105BAC 7F0D107C 5462FFFF */ bnel $v1, $v0, .L7F0D107C +/* 105BB0 7F0D1080 24420001 */ addiu $v0, $v0, 1 +/* 105BB4 7F0D1084 10460003 */ beq $v0, $a2, .L7F0D1094 +.L7F0D1088: +/* 105BB8 7F0D1088 24420004 */ addiu $v0, $v0, 4 +.L7F0D108C: +/* 105BBC 7F0D108C 5446FFFF */ bnel $v0, $a2, .L7F0D108C +/* 105BC0 7F0D1090 24420004 */ addiu $v0, $v0, 4 +.L7F0D1094: +/* 105BC4 7F0D1094 24020001 */ li $v0, 1 +.L7F0D1098: +/* 105BC8 7F0D1098 8FBF0014 */ lw $ra, 0x14($sp) +/* 105BCC 7F0D109C 27BD0440 */ addiu $sp, $sp, 0x440 +/* 105BD0 7F0D10A0 03E00008 */ jr $ra +/* 105BD4 7F0D10A4 00000000 */ nop +) +#endif + + + + + + +u32 post_indyrescmd_read_2commands(u8 *buffer1,u32 size1,u8 *buffer2,u32 size2) +{ + sub_GAME_7F0D0180(buffer1,size1 + 3 & 0xfffffffc); + sub_GAME_7F0D0180(buffer2,size2 + 3 & 0xfffffffc); + return 1; +} + + + + + +#ifdef NONMATCHING +u32 post_indyrescmd_istype1_correctsize(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if ((cmd.resourceID == 0x9abf1623) && (cmd.type == 1) && (cmd.size == 0x14) && ((readsize == 0) || (cmd.readsize == readsize))) { + ret = 1; + if (cmd.writesize != writesize) { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype1_correctsize +/* 105C30 7F0D1100 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105C34 7F0D1104 AFBF0014 */ sw $ra, 0x14($sp) +/* 105C38 7F0D1108 AFA40030 */ sw $a0, 0x30($sp) +/* 105C3C 7F0D110C AFA50034 */ sw $a1, 0x34($sp) +/* 105C40 7F0D1110 24050014 */ li $a1, 20 +/* 105C44 7F0D1114 0FC343D3 */ jal post_indyrescmd_read_command +/* 105C48 7F0D1118 27A4001C */ addiu $a0, $sp, 0x1c +/* 105C4C 7F0D111C 8FAE001C */ lw $t6, 0x1c($sp) +/* 105C50 7F0D1120 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105C54 7F0D1124 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105C58 7F0D1128 11C10003 */ beq $t6, $at, .L7F0D1138 +/* 105C5C 7F0D112C 8FA20030 */ lw $v0, 0x30($sp) +/* 105C60 7F0D1130 1000001A */ b .L7F0D119C +/* 105C64 7F0D1134 00001025 */ move $v0, $zero +.L7F0D1138: +/* 105C68 7F0D1138 8FAF0020 */ lw $t7, 0x20($sp) +/* 105C6C 7F0D113C 24010001 */ li $at, 1 +/* 105C70 7F0D1140 8FB80024 */ lw $t8, 0x24($sp) +/* 105C74 7F0D1144 51E10004 */ beql $t7, $at, .L7F0D1158 +/* 105C78 7F0D1148 24010014 */ li $at, 20 +/* 105C7C 7F0D114C 10000013 */ b .L7F0D119C +/* 105C80 7F0D1150 00001025 */ move $v0, $zero +/* 105C84 7F0D1154 24010014 */ li $at, 20 +.L7F0D1158: +/* 105C88 7F0D1158 13010003 */ beq $t8, $at, .L7F0D1168 +/* 105C8C 7F0D115C 00000000 */ nop +/* 105C90 7F0D1160 1000000E */ b .L7F0D119C +/* 105C94 7F0D1164 00001025 */ move $v0, $zero +.L7F0D1168: +/* 105C98 7F0D1168 10400005 */ beqz $v0, .L7F0D1180 +/* 105C9C 7F0D116C 8FB90028 */ lw $t9, 0x28($sp) +/* 105CA0 7F0D1170 53220004 */ beql $t9, $v0, .L7F0D1184 +/* 105CA4 7F0D1174 8FA8002C */ lw $t0, 0x2c($sp) +/* 105CA8 7F0D1178 10000008 */ b .L7F0D119C +/* 105CAC 7F0D117C 00001025 */ move $v0, $zero +.L7F0D1180: +/* 105CB0 7F0D1180 8FA8002C */ lw $t0, 0x2c($sp) +.L7F0D1184: +/* 105CB4 7F0D1184 8FA90034 */ lw $t1, 0x34($sp) +/* 105CB8 7F0D1188 24020001 */ li $v0, 1 +/* 105CBC 7F0D118C 11090003 */ beq $t0, $t1, .L7F0D119C +/* 105CC0 7F0D1190 00000000 */ nop +/* 105CC4 7F0D1194 10000001 */ b .L7F0D119C +/* 105CC8 7F0D1198 00001025 */ move $v0, $zero +.L7F0D119C: +/* 105CCC 7F0D119C 8FBF0014 */ lw $ra, 0x14($sp) +/* 105CD0 7F0D11A0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 105CD4 7F0D11A4 03E00008 */ jr $ra +/* 105CD8 7F0D11A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +u32 post_indyrescmd_istype2_correctvalue(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if ((cmd.resourceID == 0x9abf1623) && (cmd.type == 2) && (cmd.size == 0x14) && (cmd.readsize == readsize)) + { + ret = 1; + if (cmd.writesize != writesize) { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype2_correctvalue +/* 105CDC 7F0D11AC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105CE0 7F0D11B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 105CE4 7F0D11B4 AFA40030 */ sw $a0, 0x30($sp) +/* 105CE8 7F0D11B8 AFA50034 */ sw $a1, 0x34($sp) +/* 105CEC 7F0D11BC 24050014 */ li $a1, 20 +/* 105CF0 7F0D11C0 0FC343D3 */ jal post_indyrescmd_read_command +/* 105CF4 7F0D11C4 27A4001C */ addiu $a0, $sp, 0x1c +/* 105CF8 7F0D11C8 8FAE001C */ lw $t6, 0x1c($sp) +/* 105CFC 7F0D11CC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105D00 7F0D11D0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105D04 7F0D11D4 11C10003 */ beq $t6, $at, .L7F0D11E4 +/* 105D08 7F0D11D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 105D0C 7F0D11DC 10000018 */ b .L7F0D1240 +/* 105D10 7F0D11E0 00001025 */ move $v0, $zero +.L7F0D11E4: +/* 105D14 7F0D11E4 8FAF0020 */ lw $t7, 0x20($sp) +/* 105D18 7F0D11E8 24010002 */ li $at, 2 +/* 105D1C 7F0D11EC 8FB80024 */ lw $t8, 0x24($sp) +/* 105D20 7F0D11F0 51E10004 */ beql $t7, $at, .L7F0D1204 +/* 105D24 7F0D11F4 24010014 */ li $at, 20 +/* 105D28 7F0D11F8 10000011 */ b .L7F0D1240 +/* 105D2C 7F0D11FC 00001025 */ move $v0, $zero +/* 105D30 7F0D1200 24010014 */ li $at, 20 +.L7F0D1204: +/* 105D34 7F0D1204 13010003 */ beq $t8, $at, .L7F0D1214 +/* 105D38 7F0D1208 8FB90028 */ lw $t9, 0x28($sp) +/* 105D3C 7F0D120C 1000000C */ b .L7F0D1240 +/* 105D40 7F0D1210 00001025 */ move $v0, $zero +.L7F0D1214: +/* 105D44 7F0D1214 8FA80030 */ lw $t0, 0x30($sp) +/* 105D48 7F0D1218 8FA9002C */ lw $t1, 0x2c($sp) +/* 105D4C 7F0D121C 8FAA0034 */ lw $t2, 0x34($sp) +/* 105D50 7F0D1220 13280003 */ beq $t9, $t0, .L7F0D1230 +/* 105D54 7F0D1224 00000000 */ nop +/* 105D58 7F0D1228 10000005 */ b .L7F0D1240 +/* 105D5C 7F0D122C 00001025 */ move $v0, $zero +.L7F0D1230: +/* 105D60 7F0D1230 112A0003 */ beq $t1, $t2, .L7F0D1240 +/* 105D64 7F0D1234 24020001 */ li $v0, 1 +/* 105D68 7F0D1238 10000001 */ b .L7F0D1240 +/* 105D6C 7F0D123C 00001025 */ move $v0, $zero +.L7F0D1240: +/* 105D70 7F0D1240 03E00008 */ jr $ra +/* 105D74 7F0D1244 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype4_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype4_correctvalue +/* 105D78 7F0D1248 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105D7C 7F0D124C AFBF0014 */ sw $ra, 0x14($sp) +/* 105D80 7F0D1250 AFA40030 */ sw $a0, 0x30($sp) +/* 105D84 7F0D1254 AFA50034 */ sw $a1, 0x34($sp) +/* 105D88 7F0D1258 AFA60038 */ sw $a2, 0x38($sp) +/* 105D8C 7F0D125C 24050018 */ li $a1, 24 +/* 105D90 7F0D1260 0FC343D3 */ jal post_indyrescmd_read_command +/* 105D94 7F0D1264 27A40018 */ addiu $a0, $sp, 0x18 +/* 105D98 7F0D1268 8FAE0018 */ lw $t6, 0x18($sp) +/* 105D9C 7F0D126C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105DA0 7F0D1270 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105DA4 7F0D1274 11C10003 */ beq $t6, $at, .L7F0D1284 +/* 105DA8 7F0D1278 8FAF001C */ lw $t7, 0x1c($sp) +/* 105DAC 7F0D127C 10000019 */ b .L7F0D12E4 +/* 105DB0 7F0D1280 00001025 */ move $v0, $zero +.L7F0D1284: +/* 105DB4 7F0D1284 24010004 */ li $at, 4 +/* 105DB8 7F0D1288 11E10003 */ beq $t7, $at, .L7F0D1298 +/* 105DBC 7F0D128C 8FB80020 */ lw $t8, 0x20($sp) +/* 105DC0 7F0D1290 10000014 */ b .L7F0D12E4 +/* 105DC4 7F0D1294 00001025 */ move $v0, $zero +.L7F0D1298: +/* 105DC8 7F0D1298 24010018 */ li $at, 24 +/* 105DCC 7F0D129C 13010003 */ beq $t8, $at, .L7F0D12AC +/* 105DD0 7F0D12A0 8FB90024 */ lw $t9, 0x24($sp) +/* 105DD4 7F0D12A4 1000000F */ b .L7F0D12E4 +/* 105DD8 7F0D12A8 00001025 */ move $v0, $zero +.L7F0D12AC: +/* 105DDC 7F0D12AC 8FA80030 */ lw $t0, 0x30($sp) +/* 105DE0 7F0D12B0 8FA90028 */ lw $t1, 0x28($sp) +/* 105DE4 7F0D12B4 8FAA0034 */ lw $t2, 0x34($sp) +/* 105DE8 7F0D12B8 13280003 */ beq $t9, $t0, .L7F0D12C8 +/* 105DEC 7F0D12BC 00000000 */ nop +/* 105DF0 7F0D12C0 10000008 */ b .L7F0D12E4 +/* 105DF4 7F0D12C4 00001025 */ move $v0, $zero +.L7F0D12C8: +/* 105DF8 7F0D12C8 112A0003 */ beq $t1, $t2, .L7F0D12D8 +/* 105DFC 7F0D12CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 105E00 7F0D12D0 10000004 */ b .L7F0D12E4 +/* 105E04 7F0D12D4 00001025 */ move $v0, $zero +.L7F0D12D8: +/* 105E08 7F0D12D8 8FAC0038 */ lw $t4, 0x38($sp) +/* 105E0C 7F0D12DC 24020001 */ li $v0, 1 +/* 105E10 7F0D12E0 AD8B0000 */ sw $t3, ($t4) +.L7F0D12E4: +/* 105E14 7F0D12E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 105E18 7F0D12E8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 105E1C 7F0D12EC 03E00008 */ jr $ra +/* 105E20 7F0D12F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype6_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype6_correctvalue +/* 105E24 7F0D12F4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105E28 7F0D12F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 105E2C 7F0D12FC AFA40038 */ sw $a0, 0x38($sp) +/* 105E30 7F0D1300 AFA5003C */ sw $a1, 0x3c($sp) +/* 105E34 7F0D1304 AFA60040 */ sw $a2, 0x40($sp) +/* 105E38 7F0D1308 AFA70044 */ sw $a3, 0x44($sp) +/* 105E3C 7F0D130C 2405001C */ li $a1, 28 +/* 105E40 7F0D1310 0FC343D3 */ jal post_indyrescmd_read_command +/* 105E44 7F0D1314 27A4001C */ addiu $a0, $sp, 0x1c +/* 105E48 7F0D1318 8FAE001C */ lw $t6, 0x1c($sp) +/* 105E4C 7F0D131C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105E50 7F0D1320 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105E54 7F0D1324 11C10003 */ beq $t6, $at, .L7F0D1334 +/* 105E58 7F0D1328 8FAF0020 */ lw $t7, 0x20($sp) +/* 105E5C 7F0D132C 1000001C */ b .L7F0D13A0 +/* 105E60 7F0D1330 00001025 */ move $v0, $zero +.L7F0D1334: +/* 105E64 7F0D1334 24010006 */ li $at, 6 +/* 105E68 7F0D1338 11E10003 */ beq $t7, $at, .L7F0D1348 +/* 105E6C 7F0D133C 8FB80024 */ lw $t8, 0x24($sp) +/* 105E70 7F0D1340 10000017 */ b .L7F0D13A0 +/* 105E74 7F0D1344 00001025 */ move $v0, $zero +.L7F0D1348: +/* 105E78 7F0D1348 2401001C */ li $at, 28 +/* 105E7C 7F0D134C 13010003 */ beq $t8, $at, .L7F0D135C +/* 105E80 7F0D1350 8FB90028 */ lw $t9, 0x28($sp) +/* 105E84 7F0D1354 10000012 */ b .L7F0D13A0 +/* 105E88 7F0D1358 00001025 */ move $v0, $zero +.L7F0D135C: +/* 105E8C 7F0D135C 8FA80038 */ lw $t0, 0x38($sp) +/* 105E90 7F0D1360 8FA9002C */ lw $t1, 0x2c($sp) +/* 105E94 7F0D1364 8FAA003C */ lw $t2, 0x3c($sp) +/* 105E98 7F0D1368 13280003 */ beq $t9, $t0, .L7F0D1378 +/* 105E9C 7F0D136C 00000000 */ nop +/* 105EA0 7F0D1370 1000000B */ b .L7F0D13A0 +/* 105EA4 7F0D1374 00001025 */ move $v0, $zero +.L7F0D1378: +/* 105EA8 7F0D1378 112A0003 */ beq $t1, $t2, .L7F0D1388 +/* 105EAC 7F0D137C 8FAB0030 */ lw $t3, 0x30($sp) +/* 105EB0 7F0D1380 10000007 */ b .L7F0D13A0 +/* 105EB4 7F0D1384 00001025 */ move $v0, $zero +.L7F0D1388: +/* 105EB8 7F0D1388 8FAC0040 */ lw $t4, 0x40($sp) +/* 105EBC 7F0D138C 24020001 */ li $v0, 1 +/* 105EC0 7F0D1390 AD8B0000 */ sw $t3, ($t4) +/* 105EC4 7F0D1394 8FAE0044 */ lw $t6, 0x44($sp) +/* 105EC8 7F0D1398 8FAD0034 */ lw $t5, 0x34($sp) +/* 105ECC 7F0D139C ADCD0000 */ sw $t5, ($t6) +.L7F0D13A0: +/* 105ED0 7F0D13A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 105ED4 7F0D13A4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105ED8 7F0D13A8 03E00008 */ jr $ra +/* 105EDC 7F0D13AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype8_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype8_correctvalue +/* 105EE0 7F0D13B0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105EE4 7F0D13B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 105EE8 7F0D13B8 AFA40038 */ sw $a0, 0x38($sp) +/* 105EEC 7F0D13BC AFA5003C */ sw $a1, 0x3c($sp) +/* 105EF0 7F0D13C0 AFA60040 */ sw $a2, 0x40($sp) +/* 105EF4 7F0D13C4 AFA70044 */ sw $a3, 0x44($sp) +/* 105EF8 7F0D13C8 24050020 */ li $a1, 32 +/* 105EFC 7F0D13CC 0FC343D3 */ jal post_indyrescmd_read_command +/* 105F00 7F0D13D0 27A40018 */ addiu $a0, $sp, 0x18 +/* 105F04 7F0D13D4 8FAE0018 */ lw $t6, 0x18($sp) +/* 105F08 7F0D13D8 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105F0C 7F0D13DC 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105F10 7F0D13E0 11C10003 */ beq $t6, $at, .L7F0D13F0 +/* 105F14 7F0D13E4 8FAF001C */ lw $t7, 0x1c($sp) +/* 105F18 7F0D13E8 10000027 */ b .L7F0D1488 +/* 105F1C 7F0D13EC 00001025 */ move $v0, $zero +.L7F0D13F0: +/* 105F20 7F0D13F0 24010008 */ li $at, 8 +/* 105F24 7F0D13F4 11E10003 */ beq $t7, $at, .L7F0D1404 +/* 105F28 7F0D13F8 8FB90034 */ lw $t9, 0x34($sp) +/* 105F2C 7F0D13FC 10000022 */ b .L7F0D1488 +/* 105F30 7F0D1400 00001025 */ move $v0, $zero +.L7F0D1404: +/* 105F34 7F0D1404 8FB80020 */ lw $t8, 0x20($sp) +/* 105F38 7F0D1408 2402FFFC */ li $v0, -4 +/* 105F3C 7F0D140C 27280003 */ addiu $t0, $t9, 3 +/* 105F40 7F0D1410 01024824 */ and $t1, $t0, $v0 +/* 105F44 7F0D1414 252A0020 */ addiu $t2, $t1, 0x20 +/* 105F48 7F0D1418 130A0003 */ beq $t8, $t2, .L7F0D1428 +/* 105F4C 7F0D141C 8FAB0024 */ lw $t3, 0x24($sp) +/* 105F50 7F0D1420 10000019 */ b .L7F0D1488 +/* 105F54 7F0D1424 00001025 */ move $v0, $zero +.L7F0D1428: +/* 105F58 7F0D1428 8FAC0038 */ lw $t4, 0x38($sp) +/* 105F5C 7F0D142C 8FAD0028 */ lw $t5, 0x28($sp) +/* 105F60 7F0D1430 8FAE003C */ lw $t6, 0x3c($sp) +/* 105F64 7F0D1434 116C0003 */ beq $t3, $t4, .L7F0D1444 +/* 105F68 7F0D1438 00000000 */ nop +/* 105F6C 7F0D143C 10000012 */ b .L7F0D1488 +/* 105F70 7F0D1440 00001025 */ move $v0, $zero +.L7F0D1444: +/* 105F74 7F0D1444 11AE0003 */ beq $t5, $t6, .L7F0D1454 +/* 105F78 7F0D1448 8FAF002C */ lw $t7, 0x2c($sp) +/* 105F7C 7F0D144C 1000000E */ b .L7F0D1488 +/* 105F80 7F0D1450 00001025 */ move $v0, $zero +.L7F0D1454: +/* 105F84 7F0D1454 8FB90040 */ lw $t9, 0x40($sp) +/* 105F88 7F0D1458 AF2F0000 */ sw $t7, ($t9) +/* 105F8C 7F0D145C 8FA90044 */ lw $t1, 0x44($sp) +/* 105F90 7F0D1460 8FA80030 */ lw $t0, 0x30($sp) +/* 105F94 7F0D1464 AD280000 */ sw $t0, ($t1) +/* 105F98 7F0D1468 8FB80034 */ lw $t8, 0x34($sp) +/* 105F9C 7F0D146C 8FAA0048 */ lw $t2, 0x48($sp) +/* 105FA0 7F0D1470 270B0003 */ addiu $t3, $t8, 3 +/* 105FA4 7F0D1474 AD580000 */ sw $t8, ($t2) +/* 105FA8 7F0D1478 8FA4004C */ lw $a0, 0x4c($sp) +/* 105FAC 7F0D147C 0FC343D3 */ jal post_indyrescmd_read_command +/* 105FB0 7F0D1480 01622824 */ and $a1, $t3, $v0 +/* 105FB4 7F0D1484 24020001 */ li $v0, 1 +.L7F0D1488: +/* 105FB8 7F0D1488 8FBF0014 */ lw $ra, 0x14($sp) +/* 105FBC 7F0D148C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105FC0 7F0D1490 03E00008 */ jr $ra +/* 105FC4 7F0D1494 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeA_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeA_correctvalue +/* 105FC8 7F0D1498 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105FCC 7F0D149C AFBF0014 */ sw $ra, 0x14($sp) +/* 105FD0 7F0D14A0 AFA40030 */ sw $a0, 0x30($sp) +/* 105FD4 7F0D14A4 AFA50034 */ sw $a1, 0x34($sp) +/* 105FD8 7F0D14A8 AFA60038 */ sw $a2, 0x38($sp) +/* 105FDC 7F0D14AC 24050018 */ li $a1, 24 +/* 105FE0 7F0D14B0 0FC343D3 */ jal post_indyrescmd_read_command +/* 105FE4 7F0D14B4 27A40018 */ addiu $a0, $sp, 0x18 +/* 105FE8 7F0D14B8 8FAE0018 */ lw $t6, 0x18($sp) +/* 105FEC 7F0D14BC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105FF0 7F0D14C0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105FF4 7F0D14C4 11C10003 */ beq $t6, $at, .L7F0D14D4 +/* 105FF8 7F0D14C8 8FAF001C */ lw $t7, 0x1c($sp) +/* 105FFC 7F0D14CC 10000019 */ b .L7F0D1534 +/* 106000 7F0D14D0 00001025 */ move $v0, $zero +.L7F0D14D4: +/* 106004 7F0D14D4 2401000A */ li $at, 10 +/* 106008 7F0D14D8 11E10003 */ beq $t7, $at, .L7F0D14E8 +/* 10600C 7F0D14DC 8FB80020 */ lw $t8, 0x20($sp) +/* 106010 7F0D14E0 10000014 */ b .L7F0D1534 +/* 106014 7F0D14E4 00001025 */ move $v0, $zero +.L7F0D14E8: +/* 106018 7F0D14E8 24010018 */ li $at, 24 +/* 10601C 7F0D14EC 13010003 */ beq $t8, $at, .L7F0D14FC +/* 106020 7F0D14F0 8FB90024 */ lw $t9, 0x24($sp) +/* 106024 7F0D14F4 1000000F */ b .L7F0D1534 +/* 106028 7F0D14F8 00001025 */ move $v0, $zero +.L7F0D14FC: +/* 10602C 7F0D14FC 8FA80030 */ lw $t0, 0x30($sp) +/* 106030 7F0D1500 8FA90028 */ lw $t1, 0x28($sp) +/* 106034 7F0D1504 8FAA0034 */ lw $t2, 0x34($sp) +/* 106038 7F0D1508 13280003 */ beq $t9, $t0, .L7F0D1518 +/* 10603C 7F0D150C 00000000 */ nop +/* 106040 7F0D1510 10000008 */ b .L7F0D1534 +/* 106044 7F0D1514 00001025 */ move $v0, $zero +.L7F0D1518: +/* 106048 7F0D1518 112A0003 */ beq $t1, $t2, .L7F0D1528 +/* 10604C 7F0D151C 8FAB002C */ lw $t3, 0x2c($sp) +/* 106050 7F0D1520 10000004 */ b .L7F0D1534 +/* 106054 7F0D1524 00001025 */ move $v0, $zero +.L7F0D1528: +/* 106058 7F0D1528 8FAC0038 */ lw $t4, 0x38($sp) +/* 10605C 7F0D152C 24020001 */ li $v0, 1 +/* 106060 7F0D1530 AD8B0000 */ sw $t3, ($t4) +.L7F0D1534: +/* 106064 7F0D1534 8FBF0014 */ lw $ra, 0x14($sp) +/* 106068 7F0D1538 27BD0030 */ addiu $sp, $sp, 0x30 +/* 10606C 7F0D153C 03E00008 */ jr $ra +/* 106070 7F0D1540 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype10_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype10_correctvalue +/* 106074 7F0D1544 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 106078 7F0D1548 AFBF0014 */ sw $ra, 0x14($sp) +/* 10607C 7F0D154C AFA40038 */ sw $a0, 0x38($sp) +/* 106080 7F0D1550 AFA5003C */ sw $a1, 0x3c($sp) +/* 106084 7F0D1554 AFA60040 */ sw $a2, 0x40($sp) +/* 106088 7F0D1558 AFA70044 */ sw $a3, 0x44($sp) +/* 10608C 7F0D155C 24050020 */ li $a1, 32 +/* 106090 7F0D1560 0FC343D3 */ jal post_indyrescmd_read_command +/* 106094 7F0D1564 27A40018 */ addiu $a0, $sp, 0x18 +/* 106098 7F0D1568 8FAE0018 */ lw $t6, 0x18($sp) +/* 10609C 7F0D156C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 1060A0 7F0D1570 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 1060A4 7F0D1574 11C10003 */ beq $t6, $at, .L7F0D1584 +/* 1060A8 7F0D1578 8FAF001C */ lw $t7, 0x1c($sp) +/* 1060AC 7F0D157C 1000001F */ b .L7F0D15FC +/* 1060B0 7F0D1580 00001025 */ move $v0, $zero +.L7F0D1584: +/* 1060B4 7F0D1584 24010010 */ li $at, 16 +/* 1060B8 7F0D1588 11E10003 */ beq $t7, $at, .L7F0D1598 +/* 1060BC 7F0D158C 8FB80020 */ lw $t8, 0x20($sp) +/* 1060C0 7F0D1590 1000001A */ b .L7F0D15FC +/* 1060C4 7F0D1594 00001025 */ move $v0, $zero +.L7F0D1598: +/* 1060C8 7F0D1598 24010020 */ li $at, 32 +/* 1060CC 7F0D159C 13010003 */ beq $t8, $at, .L7F0D15AC +/* 1060D0 7F0D15A0 8FB90024 */ lw $t9, 0x24($sp) +/* 1060D4 7F0D15A4 10000015 */ b .L7F0D15FC +/* 1060D8 7F0D15A8 00001025 */ move $v0, $zero +.L7F0D15AC: +/* 1060DC 7F0D15AC 8FA80038 */ lw $t0, 0x38($sp) +/* 1060E0 7F0D15B0 8FA90028 */ lw $t1, 0x28($sp) +/* 1060E4 7F0D15B4 8FAA003C */ lw $t2, 0x3c($sp) +/* 1060E8 7F0D15B8 13280003 */ beq $t9, $t0, .L7F0D15C8 +/* 1060EC 7F0D15BC 00000000 */ nop +/* 1060F0 7F0D15C0 1000000E */ b .L7F0D15FC +/* 1060F4 7F0D15C4 00001025 */ move $v0, $zero +.L7F0D15C8: +/* 1060F8 7F0D15C8 112A0003 */ beq $t1, $t2, .L7F0D15D8 +/* 1060FC 7F0D15CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 106100 7F0D15D0 1000000A */ b .L7F0D15FC +/* 106104 7F0D15D4 00001025 */ move $v0, $zero +.L7F0D15D8: +/* 106108 7F0D15D8 8FAC0040 */ lw $t4, 0x40($sp) +/* 10610C 7F0D15DC 24020001 */ li $v0, 1 +/* 106110 7F0D15E0 AD8B0000 */ sw $t3, ($t4) +/* 106114 7F0D15E4 8FAE0044 */ lw $t6, 0x44($sp) +/* 106118 7F0D15E8 8FAD0030 */ lw $t5, 0x30($sp) +/* 10611C 7F0D15EC ADCD0000 */ sw $t5, ($t6) +/* 106120 7F0D15F0 8FB80048 */ lw $t8, 0x48($sp) +/* 106124 7F0D15F4 8FAF0034 */ lw $t7, 0x34($sp) +/* 106128 7F0D15F8 AF0F0000 */ sw $t7, ($t8) +.L7F0D15FC: +/* 10612C 7F0D15FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 106130 7F0D1600 27BD0038 */ addiu $sp, $sp, 0x38 +/* 106134 7F0D1604 03E00008 */ jr $ra +/* 106138 7F0D1608 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeE_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeE_correctvalue +/* 10613C 7F0D160C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 106140 7F0D1610 AFBF0014 */ sw $ra, 0x14($sp) +/* 106144 7F0D1614 AFA40030 */ sw $a0, 0x30($sp) +/* 106148 7F0D1618 AFA50034 */ sw $a1, 0x34($sp) +/* 10614C 7F0D161C AFA60038 */ sw $a2, 0x38($sp) +/* 106150 7F0D1620 24050018 */ li $a1, 24 +/* 106154 7F0D1624 0FC343D3 */ jal post_indyrescmd_read_command +/* 106158 7F0D1628 27A40018 */ addiu $a0, $sp, 0x18 +/* 10615C 7F0D162C 8FAE0018 */ lw $t6, 0x18($sp) +/* 106160 7F0D1630 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 106164 7F0D1634 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 106168 7F0D1638 11C10003 */ beq $t6, $at, .L7F0D1648 +/* 10616C 7F0D163C 8FAF001C */ lw $t7, 0x1c($sp) +/* 106170 7F0D1640 10000019 */ b .L7F0D16A8 +/* 106174 7F0D1644 00001025 */ move $v0, $zero +.L7F0D1648: +/* 106178 7F0D1648 2401000E */ li $at, 14 +/* 10617C 7F0D164C 11E10003 */ beq $t7, $at, .L7F0D165C +/* 106180 7F0D1650 8FB80020 */ lw $t8, 0x20($sp) +/* 106184 7F0D1654 10000014 */ b .L7F0D16A8 +/* 106188 7F0D1658 00001025 */ move $v0, $zero +.L7F0D165C: +/* 10618C 7F0D165C 24010018 */ li $at, 24 +/* 106190 7F0D1660 13010003 */ beq $t8, $at, .L7F0D1670 +/* 106194 7F0D1664 8FB90024 */ lw $t9, 0x24($sp) +/* 106198 7F0D1668 1000000F */ b .L7F0D16A8 +/* 10619C 7F0D166C 00001025 */ move $v0, $zero +.L7F0D1670: +/* 1061A0 7F0D1670 8FA80030 */ lw $t0, 0x30($sp) +/* 1061A4 7F0D1674 8FA90028 */ lw $t1, 0x28($sp) +/* 1061A8 7F0D1678 8FAA0034 */ lw $t2, 0x34($sp) +/* 1061AC 7F0D167C 13280003 */ beq $t9, $t0, .L7F0D168C +/* 1061B0 7F0D1680 00000000 */ nop +/* 1061B4 7F0D1684 10000008 */ b .L7F0D16A8 +/* 1061B8 7F0D1688 00001025 */ move $v0, $zero +.L7F0D168C: +/* 1061BC 7F0D168C 112A0003 */ beq $t1, $t2, .L7F0D169C +/* 1061C0 7F0D1690 8FAB002C */ lw $t3, 0x2c($sp) +/* 1061C4 7F0D1694 10000004 */ b .L7F0D16A8 +/* 1061C8 7F0D1698 00001025 */ move $v0, $zero +.L7F0D169C: +/* 1061CC 7F0D169C 8FAC0038 */ lw $t4, 0x38($sp) +/* 1061D0 7F0D16A0 24020001 */ li $v0, 1 +/* 1061D4 7F0D16A4 AD8B0000 */ sw $t3, ($t4) +.L7F0D16A8: +/* 1061D8 7F0D16A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 1061DC 7F0D16AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 1061E0 7F0D16B0 03E00008 */ jr $ra +/* 1061E4 7F0D16B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeC_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeC_correctvalue +/* 1061E8 7F0D16B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1061EC 7F0D16BC AFBF0014 */ sw $ra, 0x14($sp) +/* 1061F0 7F0D16C0 AFA40030 */ sw $a0, 0x30($sp) +/* 1061F4 7F0D16C4 AFA50034 */ sw $a1, 0x34($sp) +/* 1061F8 7F0D16C8 AFA60038 */ sw $a2, 0x38($sp) +/* 1061FC 7F0D16CC 24050018 */ li $a1, 24 +/* 106200 7F0D16D0 0FC343D3 */ jal post_indyrescmd_read_command +/* 106204 7F0D16D4 27A40018 */ addiu $a0, $sp, 0x18 +/* 106208 7F0D16D8 8FAE0018 */ lw $t6, 0x18($sp) +/* 10620C 7F0D16DC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 106210 7F0D16E0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 106214 7F0D16E4 11C10003 */ beq $t6, $at, .L7F0D16F4 +/* 106218 7F0D16E8 8FAF001C */ lw $t7, 0x1c($sp) +/* 10621C 7F0D16EC 10000019 */ b .L7F0D1754 +/* 106220 7F0D16F0 00001025 */ move $v0, $zero +.L7F0D16F4: +/* 106224 7F0D16F4 2401000C */ li $at, 12 +/* 106228 7F0D16F8 11E10003 */ beq $t7, $at, .L7F0D1708 +/* 10622C 7F0D16FC 8FB80020 */ lw $t8, 0x20($sp) +/* 106230 7F0D1700 10000014 */ b .L7F0D1754 +/* 106234 7F0D1704 00001025 */ move $v0, $zero +.L7F0D1708: +/* 106238 7F0D1708 24010018 */ li $at, 24 +/* 10623C 7F0D170C 13010003 */ beq $t8, $at, .L7F0D171C +/* 106240 7F0D1710 8FB90024 */ lw $t9, 0x24($sp) +/* 106244 7F0D1714 1000000F */ b .L7F0D1754 +/* 106248 7F0D1718 00001025 */ move $v0, $zero +.L7F0D171C: +/* 10624C 7F0D171C 8FA80030 */ lw $t0, 0x30($sp) +/* 106250 7F0D1720 8FA90028 */ lw $t1, 0x28($sp) +/* 106254 7F0D1724 8FAA0034 */ lw $t2, 0x34($sp) +/* 106258 7F0D1728 13280003 */ beq $t9, $t0, .L7F0D1738 +/* 10625C 7F0D172C 00000000 */ nop +/* 106260 7F0D1730 10000008 */ b .L7F0D1754 +/* 106264 7F0D1734 00001025 */ move $v0, $zero +.L7F0D1738: +/* 106268 7F0D1738 112A0003 */ beq $t1, $t2, .L7F0D1748 +/* 10626C 7F0D173C 8FAB002C */ lw $t3, 0x2c($sp) +/* 106270 7F0D1740 10000004 */ b .L7F0D1754 +/* 106274 7F0D1744 00001025 */ move $v0, $zero +.L7F0D1748: +/* 106278 7F0D1748 8FAC0038 */ lw $t4, 0x38($sp) +/* 10627C 7F0D174C 24020001 */ li $v0, 1 +/* 106280 7F0D1750 AD8B0000 */ sw $t3, ($t4) +.L7F0D1754: +/* 106284 7F0D1754 8FBF0014 */ lw $ra, 0x14($sp) +/* 106288 7F0D1758 27BD0030 */ addiu $sp, $sp, 0x30 +/* 10628C 7F0D175C 03E00008 */ jr $ra +/* 106290 7F0D1760 00000000 */ nop +) +#endif + + + + + + +u32 response_indyrescmd_1_4_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istype4_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_6_2(u8 *response1,u8 *response2) +{ + post_indyrescmd_istype1_correctsize(0x1c,0x1c); + post_indyrescmd_istype6_correctvalue(0x14,0x14,response1,response2); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_8_2(u8 *response1,u8 *response2,u32 childsize,u8 *child) +{ + post_indyrescmd_istype1_correctsize(0,0x20); + post_indyrescmd_istype8_correctvalue(0x14,0x14,response1,response2,childsize,child); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_A_2(u8 *param_1) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeA_correctvalue(0x14,0x14,param_1); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_10_2(u32 *param_1,u32 *param_2,u32 *param_3) +{ + post_indyrescmd_istype1_correctsize(0x20,0x20); + post_indyrescmd_istype10_correctvalue(0x14,0x14,param_1,param_2,param_3); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_E_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeE_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_C_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeC_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + + + +#ifdef NONMATCHING +u32 response_indyrescmd_curr_matches_expected(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if (cmd.resourceID == 0x9abf1623) { + if ((readsize == 0) || (cmd.readsize == readsize)) { + if (writesize == 0) { + ret = 1; + } + else { + if (cmd.writesize == writesize) { + ret = 1; + } + else { + ret = 0; + } + } + } + else { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel response_indyrescmd_curr_matches_expected +/* 1064C8 7F0D1998 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1064CC 7F0D199C AFBF0014 */ sw $ra, 0x14($sp) +/* 1064D0 7F0D19A0 AFA40030 */ sw $a0, 0x30($sp) +/* 1064D4 7F0D19A4 AFA50034 */ sw $a1, 0x34($sp) +/* 1064D8 7F0D19A8 24050014 */ li $a1, 20 +/* 1064DC 7F0D19AC 0FC343D3 */ jal post_indyrescmd_read_command +/* 1064E0 7F0D19B0 27A4001C */ addiu $a0, $sp, 0x1c +/* 1064E4 7F0D19B4 8FAE001C */ lw $t6, 0x1c($sp) +/* 1064E8 7F0D19B8 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 1064EC 7F0D19BC 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 1064F0 7F0D19C0 8FA20030 */ lw $v0, 0x30($sp) +/* 1064F4 7F0D19C4 11C10003 */ beq $t6, $at, .L7F0D19D4 +/* 1064F8 7F0D19C8 8FA30034 */ lw $v1, 0x34($sp) +/* 1064FC 7F0D19CC 1000000E */ b .L7F0D1A08 +/* 106500 7F0D19D0 00001025 */ move $v0, $zero +.L7F0D19D4: +/* 106504 7F0D19D4 10400005 */ beqz $v0, .L7F0D19EC +/* 106508 7F0D19D8 8FAF0028 */ lw $t7, 0x28($sp) +/* 10650C 7F0D19DC 11E20003 */ beq $t7, $v0, .L7F0D19EC +/* 106510 7F0D19E0 00000000 */ nop +/* 106514 7F0D19E4 10000008 */ b .L7F0D1A08 +/* 106518 7F0D19E8 00001025 */ move $v0, $zero +.L7F0D19EC: +/* 10651C 7F0D19EC 10600005 */ beqz $v1, .L7F0D1A04 +/* 106520 7F0D19F0 8FB8002C */ lw $t8, 0x2c($sp) +/* 106524 7F0D19F4 53030004 */ beql $t8, $v1, .L7F0D1A08 +/* 106528 7F0D19F8 24020001 */ li $v0, 1 +/* 10652C 7F0D19FC 10000002 */ b .L7F0D1A08 +/* 106530 7F0D1A00 00001025 */ move $v0, $zero +.L7F0D1A04: +/* 106534 7F0D1A04 24020001 */ li $v0, 1 +.L7F0D1A08: +/* 106538 7F0D1A08 8FBF0014 */ lw $ra, 0x14($sp) +/* 10653C 7F0D1A0C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 106540 7F0D1A10 03E00008 */ jr $ra +/* 106544 7F0D1A14 00000000 */ nop +) +#endif + + + diff --git a/src/game/indy_commands.h b/src/game/indy_commands.h new file mode 100644 index 0000000..2384e00 --- /dev/null +++ b/src/game/indy_commands.h @@ -0,0 +1,34 @@ +#ifndef _INDY_COMMANDS_H_ +#define _INDY_COMMANDS_H_ +#include "ultra64.h" + +struct indy_resource_entry { + u32 resourceID; + s32 type; + s32 size; + s32 readsize; + s32 writesize; +}; + +struct indy_resource_entry_type3 { + struct indy_resource_entry entry; + u8 strbuffer[255]; + u32 data; +}; + +struct indy_resource_entry_type4 { + struct indy_resource_entry entry; + u32 data; +}; + +struct indy_resource_entry_type6 { + struct indy_resource_entry entry; + u32 data1; + u32 data2; +}; + +extern s32 indy_ready; + +u32 postindyresourcecommand(struct indy_resource_entry *param_1,u32 param_2); + +#endif diff --git a/src/game/indy_comms.c b/src/game/indy_comms.c new file mode 100644 index 0000000..8a6770b --- /dev/null +++ b/src/game/indy_comms.c @@ -0,0 +1,276 @@ +#include "ultra64.h" +#include "game/indy_commands.h" +#include "game/indy_comms.h" + +s32 init_indy_if_not_ready(void) { + if (indy_ready != 1) + { + indy_ready = 1; + init_indy_if_ready(); + } +} + +void nullsub_48(void) { + return; +} + +void init_indy_if_ready(void) { + if (indy_ready != 0) + { + post_indy__res_cmd_initialize_seq(); + } +} + + +#ifdef NONMATCHING +void load_resource_on_indy(s32 arg1) { + ? sp18; + ? sp1C; + ? sp20; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_req_filename_size(0x400000); + response_indyrescmd_1_8_2(&sp20, &sp1C, &sp18, arg1); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel load_resource_on_indy +/* 104ACC 7F0CFF9C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104AD0 7F0CFFA0 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104AD4 7F0CFFA4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 104AD8 7F0CFFA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 104ADC 7F0CFFAC 11C00008 */ beqz $t6, .L7F0CFFD0 +/* 104AE0 7F0CFFB0 AFA5002C */ sw $a1, 0x2c($sp) +/* 104AE4 7F0CFFB4 0FC342E9 */ jal post_indyrescmd_req_filename_size +/* 104AE8 7F0CFFB8 3C050040 */ lui $a1, 0x40 +/* 104AEC 7F0CFFBC 27A40020 */ addiu $a0, $sp, 0x20 +/* 104AF0 7F0CFFC0 27A5001C */ addiu $a1, $sp, 0x1c +/* 104AF4 7F0CFFC4 27A60018 */ addiu $a2, $sp, 0x18 +/* 104AF8 7F0CFFC8 0FC345FF */ jal response_indyrescmd_1_8_2 +/* 104AFC 7F0CFFCC 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0CFFD0: +/* 104B00 7F0CFFD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B04 7F0CFFD4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 104B08 7F0CFFD8 03E00008 */ jr $ra +/* 104B0C 7F0CFFDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void indy_send_capture_data(s32 arg1, ? arg2) { + ? sp1C; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_send_capture_data(arg2, arg1); + response_indyrescmd_1_A_2(&sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel indy_send_capture_data +/* 104B10 7F0CFFE0 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B14 7F0CFFE4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B18 7F0CFFE8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104B1C 7F0CFFEC AFBF0014 */ sw $ra, 0x14($sp) +/* 104B20 7F0CFFF0 11C00006 */ beqz $t6, .L7F0D000C +/* 104B24 7F0CFFF4 AFA50024 */ sw $a1, 0x24($sp) +/* 104B28 7F0CFFF8 00C02825 */ move $a1, $a2 +/* 104B2C 7F0CFFFC 0FC3431A */ jal post_indyrescmd_send_capture_data +/* 104B30 7F0D0000 8FA60024 */ lw $a2, 0x24($sp) +/* 104B34 7F0D0004 0FC34619 */ jal response_indyrescmd_1_A_2 +/* 104B38 7F0D0008 27A4001C */ addiu $a0, $sp, 0x1c +.L7F0D000C: +/* 104B3C 7F0D000C 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B40 7F0D0010 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104B44 7F0D0014 03E00008 */ jr $ra +/* 104B48 7F0D0018 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void indy_loadfile(void) { + ? sp1C; + ? sp20; + ? sp24; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_request_ramrom_file(); + response_indyrescmd_1_10_2(&sp24, &sp20, &sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel indy_loadfile +/* 104B4C 7F0D001C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B50 7F0D0020 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B54 7F0D0024 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 104B58 7F0D0028 AFBF0014 */ sw $ra, 0x14($sp) +/* 104B5C 7F0D002C 51C00008 */ beql $t6, $zero, .L7F0D0050 +/* 104B60 7F0D0030 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B64 7F0D0034 0FC34346 */ jal post_indyrescmd_request_ramrom_file +/* 104B68 7F0D0038 00000000 */ nop +/* 104B6C 7F0D003C 27A40024 */ addiu $a0, $sp, 0x24 +/* 104B70 7F0D0040 27A50020 */ addiu $a1, $sp, 0x20 +/* 104B74 7F0D0044 0FC3462B */ jal response_indyrescmd_1_10_2 +/* 104B78 7F0D0048 27A6001C */ addiu $a2, $sp, 0x1c +/* 104B7C 7F0D004C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D0050: +/* 104B80 7F0D0050 27BD0028 */ addiu $sp, $sp, 0x28 +/* 104B84 7F0D0054 03E00008 */ jr $ra +/* 104B88 7F0D0058 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_file_exported(s32 arg1, ? arg2) { + ? sp1C; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_game_prof_sendfile(arg2, arg1); + response_indyrescmd_1_E_2(&sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel check_file_exported +/* 104B8C 7F0D005C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B90 7F0D0060 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B94 7F0D0064 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104B98 7F0D0068 AFBF0014 */ sw $ra, 0x14($sp) +/* 104B9C 7F0D006C 11C00006 */ beqz $t6, .L7F0D0088 +/* 104BA0 7F0D0070 AFA50024 */ sw $a1, 0x24($sp) +/* 104BA4 7F0D0074 00C02825 */ move $a1, $a2 +/* 104BA8 7F0D0078 0FC34374 */ jal post_indyrescmd_game_prof_sendfile +/* 104BAC 7F0D007C 8FA60024 */ lw $a2, 0x24($sp) +/* 104BB0 7F0D0080 0FC34642 */ jal response_indyrescmd_1_E_2 +/* 104BB4 7F0D0084 27A4001C */ addiu $a0, $sp, 0x1c +.L7F0D0088: +/* 104BB8 7F0D0088 8FBF0014 */ lw $ra, 0x14($sp) +/* 104BBC 7F0D008C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104BC0 7F0D0090 03E00008 */ jr $ra +/* 104BC4 7F0D0094 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_file_found_on_indy(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_file_found_on_indy +/* 104BC8 7F0D0098 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104BCC 7F0D009C 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104BD0 7F0D00A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104BD4 7F0D00A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 104BD8 7F0D00A8 15C00003 */ bnez $t6, .L7F0D00B8 +/* 104BDC 7F0D00AC AFA50024 */ sw $a1, 0x24($sp) +/* 104BE0 7F0D00B0 10000007 */ b .L7F0D00D0 +/* 104BE4 7F0D00B4 00001025 */ move $v0, $zero +.L7F0D00B8: +/* 104BE8 7F0D00B8 0FC342C3 */ jal post_indyrescmd_game_printf_send +/* 104BEC 7F0D00BC 00000000 */ nop +/* 104BF0 7F0D00C0 27A4001C */ addiu $a0, $sp, 0x1c +/* 104BF4 7F0D00C4 0FC345EB */ jal response_indyrescmd_1_6_2 +/* 104BF8 7F0D00C8 8FA50024 */ lw $a1, 0x24($sp) +/* 104BFC 7F0D00CC 8FA2001C */ lw $v0, 0x1c($sp) +.L7F0D00D0: +/* 104C00 7F0D00D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104C04 7F0D00D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104C08 7F0D00D8 03E00008 */ jr $ra +/* 104C0C 7F0D00DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void response_from_command_string(void) { + +} +#else +GLOBAL_ASM( +.text +glabel response_from_command_string +/* 104C10 7F0D00E0 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104C14 7F0D00E4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104C18 7F0D00E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104C1C 7F0D00EC AFBF0014 */ sw $ra, 0x14($sp) +/* 104C20 7F0D00F0 15C00003 */ bnez $t6, .L7F0D0100 +/* 104C24 7F0D00F4 00000000 */ nop +/* 104C28 7F0D00F8 10000006 */ b .L7F0D0114 +/* 104C2C 7F0D00FC 00001025 */ move $v0, $zero +.L7F0D0100: +/* 104C30 7F0D0100 0FC3439D */ jal post_indyrescmd_1_B_2 +/* 104C34 7F0D0104 00000000 */ nop +/* 104C38 7F0D0108 0FC34654 */ jal response_indyrescmd_1_C_2 +/* 104C3C 7F0D010C 27A4001C */ addiu $a0, $sp, 0x1c +/* 104C40 7F0D0110 8FA2001C */ lw $v0, 0x1c($sp) +.L7F0D0114: +/* 104C44 7F0D0114 8FBF0014 */ lw $ra, 0x14($sp) +/* 104C48 7F0D0118 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104C4C 7F0D011C 03E00008 */ jr $ra +/* 104C50 7F0D0120 00000000 */ nop +) +#endif + + +void sub_GAME_7F0D0124(void) { + if (indy_ready != 0) + { + rmon_debug_returns_neg_1(); + } + return; +} + +void send_indy_close_port_cmd(void) { + response_from_command_string("sleep 5; /etc/killall ghost gload"); +} + + + + diff --git a/src/game/indy_comms.h b/src/game/indy_comms.h new file mode 100644 index 0000000..8a13386 --- /dev/null +++ b/src/game/indy_comms.h @@ -0,0 +1,9 @@ +#ifndef _INDY_COMMS_H_ +#define _INDY_COMMS_H_ +#include "ultra64.h" + +s32 init_indy_if_not_ready(void); +void init_indy_if_ready(void); +void load_resource_on_indy(s32 arg1); + +#endif diff --git a/src/game/initBondDATA.c b/src/game/initBondDATA.c new file mode 100644 index 0000000..5ea39df --- /dev/null +++ b/src/game/initBondDATA.c @@ -0,0 +1,265 @@ +#include "ultra64.h" +#include "game/initBondDATA.h" + +struct BONDdata_item_control_blocks BONDdata_item_control_blocks_initdata = { +0, 0xFFFFFFFF, 0, 0x100, 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, 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, +0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, -1.0, 0, 1.0, 0, 0, 0, 0, 0, 0, -19.999996, 0, +19.999996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.0, 0, 0, -1.0, 0, 0, +-1.0, 0, 0, -1.0, 0, 1.0, 0, 0, 1.0, 0, 0, 1.0, 0, 0, 1.0, 0, 0, 0, 1.0, 1.0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000.0, 0, 0, 0, 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, 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 +}; + + + + + + + +#ifdef NONMATCHING +void init_player_BONDdata_stats(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004F0E0 +.word 0x3f666666 +glabel fl_neg_pi +.word 0xc0490fdb +.text +glabel init_player_BONDdata_stats +/* 039C00 7F0050D0 27BDFC30 */ addiu $sp, $sp, -0x3d0 +/* 039C04 7F0050D4 3C0F8003 */ lui $t7, %hi(BONDdata_item_control_blocks_initdata) +/* 039C08 7F0050D8 25EFA3D0 */ addiu $t7, %lo(BONDdata_item_control_blocks_initdata) # addiu $t7, $t7, -0x5c30 +/* 039C0C 7F0050DC AFBF001C */ sw $ra, 0x1c($sp) +/* 039C10 7F0050E0 AFB00018 */ sw $s0, 0x18($sp) +/* 039C14 7F0050E4 25E803A8 */ addiu $t0, $t7, 0x3a8 +/* 039C18 7F0050E8 27AE0024 */ addiu $t6, $sp, 0x24 +.L7F0050EC: +/* 039C1C 7F0050EC 8DE10000 */ lw $at, ($t7) +/* 039C20 7F0050F0 25EF000C */ addiu $t7, $t7, 0xc +/* 039C24 7F0050F4 25CE000C */ addiu $t6, $t6, 0xc +/* 039C28 7F0050F8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 039C2C 7F0050FC 8DE1FFF8 */ lw $at, -8($t7) +/* 039C30 7F005100 ADC1FFF8 */ sw $at, -8($t6) +/* 039C34 7F005104 8DE1FFFC */ lw $at, -4($t7) +/* 039C38 7F005108 15E8FFF8 */ bne $t7, $t0, .L7F0050EC +/* 039C3C 7F00510C ADC1FFFC */ sw $at, -4($t6) +/* 039C40 7F005110 3C048003 */ lui $a0, %hi(size_item_buffer) +/* 039C44 7F005114 8C84245C */ lw $a0, %lo(size_item_buffer)($a0) +/* 039C48 7F005118 0C0025C8 */ jal mempAllocBytesInBank +/* 039C4C 7F00511C 24050004 */ li $a1, 4 +/* 039C50 7F005120 3C108008 */ lui $s0, %hi(pPlayer) +/* 039C54 7F005124 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 039C58 7F005128 8E090000 */ lw $t1, ($s0) +/* 039C5C 7F00512C 0FC26919 */ jal get_num_players +/* 039C60 7F005130 AD220808 */ sw $v0, 0x808($t1) +/* 039C64 7F005134 24010001 */ li $at, 1 +/* 039C68 7F005138 14410006 */ bne $v0, $at, .L7F005154 +/* 039C6C 7F00513C 3C048003 */ lui $a0, %hi(size_item_buffer+0x4) +/* 039C70 7F005140 8C842460 */ lw $a0, %lo(size_item_buffer+0x4)($a0) +/* 039C74 7F005144 0C0025C8 */ jal mempAllocBytesInBank +/* 039C78 7F005148 24050004 */ li $a1, 4 +/* 039C7C 7F00514C 8E0A0000 */ lw $t2, ($s0) +/* 039C80 7F005150 AD42080C */ sw $v0, 0x80c($t2) +.L7F005154: +/* 039C84 7F005154 8E0B0000 */ lw $t3, ($s0) +/* 039C88 7F005158 2405FFFF */ li $a1, -1 +/* 039C8C 7F00515C 27A30024 */ addiu $v1, $sp, 0x24 +/* 039C90 7F005160 AD6007F8 */ sw $zero, 0x7f8($t3) +/* 039C94 7F005164 8E0C0000 */ lw $t4, ($s0) +/* 039C98 7F005168 246B03A8 */ addiu $t3, $v1, 0x3a8 +/* 039C9C 7F00516C 00001025 */ move $v0, $zero +/* 039CA0 7F005170 AD8007FC */ sw $zero, 0x7fc($t4) +/* 039CA4 7F005174 8E0D0000 */ lw $t5, ($s0) +/* 039CA8 7F005178 00606025 */ move $t4, $v1 +/* 039CAC 7F00517C ADA00800 */ sw $zero, 0x800($t5) +/* 039CB0 7F005180 8E190000 */ lw $t9, ($s0) +/* 039CB4 7F005184 AF200804 */ sw $zero, 0x804($t9) +/* 039CB8 7F005188 8E180000 */ lw $t8, ($s0) +/* 039CBC 7F00518C AF052A44 */ sw $a1, 0x2a44($t8) +/* 039CC0 7F005190 8E080000 */ lw $t0, ($s0) +/* 039CC4 7F005194 247803A8 */ addiu $t8, $v1, 0x3a8 +/* 039CC8 7F005198 AD052A48 */ sw $a1, 0x2a48($t0) +/* 039CCC 7F00519C 8E0F0000 */ lw $t7, ($s0) +/* 039CD0 7F0051A0 00604025 */ move $t0, $v1 +/* 039CD4 7F0051A4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 039CD8 7F0051A8 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 039CDC 7F0051AC 8E0E0000 */ lw $t6, ($s0) +/* 039CE0 7F0051B0 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 039CE4 7F0051B4 ADC02A54 */ sw $zero, 0x2a54($t6) +/* 039CE8 7F0051B8 8E090000 */ lw $t1, ($s0) +.L7F0051BC: +/* 039CEC 7F0051BC 8D810000 */ lw $at, ($t4) +/* 039CF0 7F0051C0 258C000C */ addiu $t4, $t4, 0xc +/* 039CF4 7F0051C4 2529000C */ addiu $t1, $t1, 0xc +/* 039CF8 7F0051C8 AD210864 */ sw $at, 0x864($t1) +/* 039CFC 7F0051CC 8D81FFF8 */ lw $at, -8($t4) +/* 039D00 7F0051D0 AD210868 */ sw $at, 0x868($t1) +/* 039D04 7F0051D4 8D81FFFC */ lw $at, -4($t4) +/* 039D08 7F0051D8 158BFFF8 */ bne $t4, $t3, .L7F0051BC +/* 039D0C 7F0051DC AD21086C */ sw $at, 0x86c($t1) +/* 039D10 7F0051E0 8E0D0000 */ lw $t5, ($s0) +.L7F0051E4: +/* 039D14 7F0051E4 8D010000 */ lw $at, ($t0) +/* 039D18 7F0051E8 2508000C */ addiu $t0, $t0, 0xc +/* 039D1C 7F0051EC 25AD000C */ addiu $t5, $t5, 0xc +/* 039D20 7F0051F0 ADA10C0C */ sw $at, 0xc0c($t5) +/* 039D24 7F0051F4 8D01FFF8 */ lw $at, -8($t0) +/* 039D28 7F0051F8 ADA10C10 */ sw $at, 0xc10($t5) +/* 039D2C 7F0051FC 8D01FFFC */ lw $at, -4($t0) +/* 039D30 7F005200 1518FFF8 */ bne $t0, $t8, .L7F0051E4 +/* 039D34 7F005204 ADA10C14 */ sw $at, 0xc14($t5) +.L7F005208: +/* 039D38 7F005208 8E0F0000 */ lw $t7, ($s0) +/* 039D3C 7F00520C 01E27021 */ addu $t6, $t7, $v0 +/* 039D40 7F005210 24420004 */ addiu $v0, $v0, 4 +/* 039D44 7F005214 28410078 */ slti $at, $v0, 0x78 +/* 039D48 7F005218 1420FFFB */ bnez $at, .L7F005208 +/* 039D4C 7F00521C ADC01130 */ sw $zero, 0x1130($t6) +/* 039D50 7F005220 8C6A0000 */ lw $t2, ($v1) +/* 039D54 7F005224 24040003 */ li $a0, 3 +/* 039D58 7F005228 00041080 */ sll $v0, $a0, 2 +/* 039D5C 7F00522C AD400000 */ sw $zero, ($t2) +/* 039D60 7F005230 8C6B0000 */ lw $t3, ($v1) +/* 039D64 7F005234 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 039D68 7F005238 44811000 */ mtc1 $at, $f2 +/* 039D6C 7F00523C AD600004 */ sw $zero, 4($t3) +/* 039D70 7F005240 8C6C0000 */ lw $t4, ($v1) +/* 039D74 7F005244 3C018005 */ lui $at, %hi(D_8004F0E0) +/* 039D78 7F005248 44800000 */ mtc1 $zero, $f0 +/* 039D7C 7F00524C AD800008 */ sw $zero, 8($t4) +/* 039D80 7F005250 8C690000 */ lw $t1, ($v1) +/* 039D84 7F005254 00002025 */ move $a0, $zero +/* 039D88 7F005258 0122C821 */ addu $t9, $t1, $v0 +/* 039D8C 7F00525C AF200000 */ sw $zero, ($t9) +/* 039D90 7F005260 8C780000 */ lw $t8, ($v1) +/* 039D94 7F005264 03024021 */ addu $t0, $t8, $v0 +/* 039D98 7F005268 AD000004 */ sw $zero, 4($t0) +/* 039D9C 7F00526C 8C6D0000 */ lw $t5, ($v1) +/* 039DA0 7F005270 01A27821 */ addu $t7, $t5, $v0 +/* 039DA4 7F005274 ADE00008 */ sw $zero, 8($t7) +/* 039DA8 7F005278 8C6E0000 */ lw $t6, ($v1) +/* 039DAC 7F00527C 01C25021 */ addu $t2, $t6, $v0 +/* 039DB0 7F005280 AD40000C */ sw $zero, 0xc($t2) +/* 039DB4 7F005284 8C6B0000 */ lw $t3, ($v1) +/* 039DB8 7F005288 C42CF0E0 */ lwc1 $f12, %lo(D_8004F0E0)($at) +/* 039DBC 7F00528C 240200FF */ li $v0, 255 +/* 039DC0 7F005290 AD60006C */ sw $zero, 0x6c($t3) +/* 039DC4 7F005294 8C6C0000 */ lw $t4, ($v1) +/* 039DC8 7F005298 3C018005 */ lui $at, %hi(fl_neg_pi) +/* 039DCC 7F00529C AD80001C */ sw $zero, 0x1c($t4) +/* 039DD0 7F0052A0 8C690000 */ lw $t1, ($v1) +/* 039DD4 7F0052A4 AD200020 */ sw $zero, 0x20($t1) +/* 039DD8 7F0052A8 8E190000 */ lw $t9, ($s0) +/* 039DDC 7F0052AC AF2029D8 */ sw $zero, 0x29d8($t9) +/* 039DE0 7F0052B0 8E180000 */ lw $t8, ($s0) +/* 039DE4 7F0052B4 AF0029DC */ sw $zero, 0x29dc($t8) +/* 039DE8 7F0052B8 8E080000 */ lw $t0, ($s0) +/* 039DEC 7F0052BC E5020FC0 */ swc1 $f2, 0xfc0($t0) +/* 039DF0 7F0052C0 8E0D0000 */ lw $t5, ($s0) +/* 039DF4 7F0052C4 E5A20FC4 */ swc1 $f2, 0xfc4($t5) +/* 039DF8 7F0052C8 8E0F0000 */ lw $t7, ($s0) +/* 039DFC 7F0052CC 240D0001 */ li $t5, 1 +/* 039E00 7F0052D0 ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 039E04 7F0052D4 8E0E0000 */ lw $t6, ($s0) +/* 039E08 7F0052D8 ADC00FCC */ sw $zero, 0xfcc($t6) +/* 039E0C 7F0052DC 8E0A0000 */ lw $t2, ($s0) +/* 039E10 7F0052E0 AD400FD0 */ sw $zero, 0xfd0($t2) +/* 039E14 7F0052E4 8E0B0000 */ lw $t3, ($s0) +/* 039E18 7F0052E8 AD600FD4 */ sw $zero, 0xfd4($t3) +/* 039E1C 7F0052EC 8E0C0000 */ lw $t4, ($s0) +/* 039E20 7F0052F0 AD800FD8 */ sw $zero, 0xfd8($t4) +/* 039E24 7F0052F4 8E090000 */ lw $t1, ($s0) +/* 039E28 7F0052F8 A1220FDC */ sb $v0, 0xfdc($t1) +/* 039E2C 7F0052FC 8E190000 */ lw $t9, ($s0) +/* 039E30 7F005300 A3220FDD */ sb $v0, 0xfdd($t9) +/* 039E34 7F005304 8E180000 */ lw $t8, ($s0) +/* 039E38 7F005308 A3020FDE */ sb $v0, 0xfde($t8) +/* 039E3C 7F00530C 8E080000 */ lw $t0, ($s0) +/* 039E40 7F005310 A1000FDF */ sb $zero, 0xfdf($t0) +/* 039E44 7F005314 8E0F0000 */ lw $t7, ($s0) +/* 039E48 7F005318 ADED0FE0 */ sw $t5, 0xfe0($t7) +/* 039E4C 7F00531C 8E0E0000 */ lw $t6, ($s0) +/* 039E50 7F005320 ADC00FE4 */ sw $zero, 0xfe4($t6) +/* 039E54 7F005324 8E0A0000 */ lw $t2, ($s0) +/* 039E58 7F005328 E5400FE8 */ swc1 $f0, 0xfe8($t2) +/* 039E5C 7F00532C 8E0B0000 */ lw $t3, ($s0) +/* 039E60 7F005330 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 039E64 7F005334 8E0C0000 */ lw $t4, ($s0) +/* 039E68 7F005338 E5800FF0 */ swc1 $f0, 0xff0($t4) +/* 039E6C 7F00533C 8E090000 */ lw $t1, ($s0) +/* 039E70 7F005340 E5200FF4 */ swc1 $f0, 0xff4($t1) +/* 039E74 7F005344 8E190000 */ lw $t9, ($s0) +/* 039E78 7F005348 E72C0FF8 */ swc1 $f12, 0xff8($t9) +/* 039E7C 7F00534C 8E180000 */ lw $t8, ($s0) +/* 039E80 7F005350 E7000FFC */ swc1 $f0, 0xffc($t8) +/* 039E84 7F005354 8E080000 */ lw $t0, ($s0) +/* 039E88 7F005358 E5001000 */ swc1 $f0, 0x1000($t0) +/* 039E8C 7F00535C 8E0D0000 */ lw $t5, ($s0) +/* 039E90 7F005360 E5A01004 */ swc1 $f0, 0x1004($t5) +/* 039E94 7F005364 8E0F0000 */ lw $t7, ($s0) +/* 039E98 7F005368 E5E01008 */ swc1 $f0, 0x1008($t7) +/* 039E9C 7F00536C 8E0E0000 */ lw $t6, ($s0) +/* 039EA0 7F005370 E5CC100C */ swc1 $f12, 0x100c($t6) +/* 039EA4 7F005374 8E0A0000 */ lw $t2, ($s0) +/* 039EA8 7F005378 E5401010 */ swc1 $f0, 0x1010($t2) +/* 039EAC 7F00537C 8E0B0000 */ lw $t3, ($s0) +/* 039EB0 7F005380 C424F0E4 */ lwc1 $f4, %lo(fl_neg_pi)($at) +/* 039EB4 7F005384 E5641014 */ swc1 $f4, 0x1014($t3) +/* 039EB8 7F005388 8E0C0000 */ lw $t4, ($s0) +/* 039EBC 7F00538C E5801018 */ swc1 $f0, 0x1018($t4) +/* 039EC0 7F005390 8E090000 */ lw $t1, ($s0) +/* 039EC4 7F005394 AD201060 */ sw $zero, 0x1060($t1) +/* 039EC8 7F005398 8E190000 */ lw $t9, ($s0) +/* 039ECC 7F00539C AF251270 */ sw $a1, 0x1270($t9) +/* 039ED0 7F0053A0 8E180000 */ lw $t8, ($s0) +/* 039ED4 7F0053A4 E700106C */ swc1 $f0, 0x106c($t8) +/* 039ED8 7F0053A8 8E080000 */ lw $t0, ($s0) +/* 039EDC 7F0053AC E5001070 */ swc1 $f0, 0x1070($t0) +/* 039EE0 7F0053B0 8E0D0000 */ lw $t5, ($s0) +/* 039EE4 7F0053B4 E5A01074 */ swc1 $f0, 0x1074($t5) +/* 039EE8 7F0053B8 8E0F0000 */ lw $t7, ($s0) +/* 039EEC 7F0053BC ADE01078 */ sw $zero, 0x1078($t7) +/* 039EF0 7F0053C0 8E0E0000 */ lw $t6, ($s0) +/* 039EF4 7F0053C4 E5C0107C */ swc1 $f0, 0x107c($t6) +/* 039EF8 7F0053C8 8E0A0000 */ lw $t2, ($s0) +/* 039EFC 7F0053CC 0FC17260 */ jal unknown_takes_playerhand +/* 039F00 7F0053D0 E5401080 */ swc1 $f0, 0x1080($t2) +/* 039F04 7F0053D4 0FC17260 */ jal unknown_takes_playerhand +/* 039F08 7F0053D8 00002025 */ move $a0, $zero +/* 039F0C 7F0053DC 0FC17260 */ jal unknown_takes_playerhand +/* 039F10 7F0053E0 00002025 */ move $a0, $zero +/* 039F14 7F0053E4 0FC17260 */ jal unknown_takes_playerhand +/* 039F18 7F0053E8 24040001 */ li $a0, 1 +/* 039F1C 7F0053EC 0FC17260 */ jal unknown_takes_playerhand +/* 039F20 7F0053F0 24040001 */ li $a0, 1 +/* 039F24 7F0053F4 0FC17260 */ jal unknown_takes_playerhand +/* 039F28 7F0053F8 24040001 */ li $a0, 1 +/* 039F2C 7F0053FC 8E0B0000 */ lw $t3, ($s0) +/* 039F30 7F005400 240C0002 */ li $t4, 2 +/* 039F34 7F005404 3C018003 */ lui $at, %hi(GsniperrifleZ_stats+52) +/* 039F38 7F005408 AD601064 */ sw $zero, 0x1064($t3) +/* 039F3C 7F00540C 8E090000 */ lw $t1, ($s0) +/* 039F40 7F005410 AD2C1128 */ sw $t4, 0x1128($t1) +/* 039F44 7F005414 8E190000 */ lw $t9, ($s0) +/* 039F48 7F005418 C4262C38 */ lwc1 $f6, %lo(GsniperrifleZ_stats+52)($at) +/* 039F4C 7F00541C 3C018003 */ lui $at, %hi(GcameraZ_stats+52) +/* 039F50 7F005420 E7261084 */ swc1 $f6, 0x1084($t9) +/* 039F54 7F005424 8E180000 */ lw $t8, ($s0) +/* 039F58 7F005428 C42836B8 */ lwc1 $f8, %lo(GcameraZ_stats+52)($at) +/* 039F5C 7F00542C E7081088 */ swc1 $f8, 0x1088($t8) +/* 039F60 7F005430 8FBF001C */ lw $ra, 0x1c($sp) +/* 039F64 7F005434 8FB00018 */ lw $s0, 0x18($sp) +/* 039F68 7F005438 27BD03D0 */ addiu $sp, $sp, 0x3d0 +/* 039F6C 7F00543C 03E00008 */ jr $ra +/* 039F70 7F005440 00000000 */ nop +) +#endif + diff --git a/src/game/initBondDATA.h b/src/game/initBondDATA.h new file mode 100644 index 0000000..5602d67 --- /dev/null +++ b/src/game/initBondDATA.h @@ -0,0 +1,243 @@ +#ifndef _INITBONDDATA_H_ +#define _INITBONDDATA_H_ +#include "ultra64.h" + +struct BONDdata_item_control_blocks { + int BONDdata_item_control_blocks_initdata; + int field_4; + int field_8; + int field_C; + int field_10; + int field_14; + int field_18; + int field_1C; + int field_20; + int field_24; + int field_28; + int field_2C; + int field_30; + int field_34; + int field_38; + int field_3C; + int field_40; + int field_44; + int field_48; + int field_4C; + int field_50; + int field_54; + int field_58; + int field_5C; + int field_60; + int field_64; + int field_68; + int field_6C; + int field_70; + int field_74; + int field_78; + float field_7C; + int field_80; + int field_84; + int field_88; + int field_8C; + float field_90; + int field_94; + int field_98; + int field_9C; + int field_A0; + float field_A4; + int field_A8; + int field_AC; + int field_B0; + int field_B4; + float field_B8; + int field_BC; + int field_C0; + int field_C4; + int field_C8; + int field_CC; + int field_D0; + float field_D4; + int field_D8; + float field_DC; + int field_E0; + int field_E4; + int field_E8; + int field_EC; + int field_F0; + int field_F4; + float field_F8; + int field_FC; + float field_100; + int field_104; + int field_108; + int field_10C; + int field_110; + int field_114; + int field_118; + int field_11C; + int field_120; + int field_124; + int field_128; + int field_12C; + int field_130; + int field_134; + int field_138; + int field_13C; + float field_140; + int field_144; + int field_148; + float field_14C; + int field_150; + int field_154; + float field_158; + int field_15C; + int field_160; + float field_164; + int field_168; + float field_16C; + int field_170; + int field_174; + float field_178; + int field_17C; + int field_180; + float field_184; + int field_188; + int field_18C; + float field_190; + int field_194; + int field_198; + int field_19C; + float field_1A0; + float field_1A4; + int field_1A8; + int field_1AC; + int field_1B0; + int field_1B4; + int field_1B8; + int field_1BC; + int field_1C0; + int field_1C4; + int field_1C8; + int field_1CC; + float field_1D0; + int field_1D4; + int field_1D8; + int field_1DC; + int field_1E0; + int field_1E4; + int field_1E8; + int field_1EC; + int field_1F0; + int field_1F4; + int field_1F8; + int field_1FC; + int field_200; + int field_204; + int field_208; + int field_20C; + int field_210; + int field_214; + int field_218; + int field_21C; + int field_220; + int field_224; + int field_228; + int field_22C; + int field_230; + int field_234; + int field_238; + int field_23C; + int field_240; + int field_244; + int field_248; + int field_24C; + int field_250; + int field_254; + int field_258; + int field_25C; + int field_260; + int field_264; + int field_268; + int field_26C; + int field_270; + int field_274; + int field_278; + int field_27C; + int field_280; + int field_284; + int field_288; + int field_28C; + int field_290; + int field_294; + int field_298; + int field_29C; + int field_2A0; + int field_2A4; + int field_2A8; + int field_2AC; + int field_2B0; + int field_2B4; + int field_2B8; + int field_2BC; + int field_2C0; + int field_2C4; + int field_2C8; + int field_2CC; + int field_2D0; + int field_2D4; + int field_2D8; + int field_2DC; + int field_2E0; + int field_2E4; + int field_2E8; + int field_2EC; + int field_2F0; + int field_2F4; + int field_2F8; + int field_2FC; + int field_300; + int field_304; + int field_308; + int field_30C; + int field_310; + int field_314; + int field_318; + int field_31C; + int field_320; + int field_324; + int field_328; + int field_32C; + int field_330; + int field_334; + int field_338; + int field_33C; + int field_340; + int field_344; + int field_348; + int field_34C; + int field_350; + int field_354; + int field_358; + int field_35C; + int field_360; + int field_364; + int field_368; + int field_36C; + int field_370; + int field_374; + int field_378; + int field_37C; + int field_380; + int field_384; + int field_388; + int field_38C; + int field_390; + int field_394; + int field_398; + int field_39C; + int field_3A0; + int field_3A4; + int anonymous_0; +}; + +#endif diff --git a/src/game/initBondDATAdefaults.c b/src/game/initBondDATAdefaults.c new file mode 100644 index 0000000..4b9b20e --- /dev/null +++ b/src/game/initBondDATAdefaults.c @@ -0,0 +1,663 @@ +#include "ultra64.h" + + +//data +s32 D_8002A790[] = { 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0062C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0062C0 +/* 03ADF0 7F0062C0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 03ADF4 7F0062C4 AFB30028 */ sw $s3, 0x28($sp) +/* 03ADF8 7F0062C8 AFB20024 */ sw $s2, 0x24($sp) +/* 03ADFC 7F0062CC AFB10020 */ sw $s1, 0x20($sp) +/* 03AE00 7F0062D0 AFB0001C */ sw $s0, 0x1c($sp) +/* 03AE04 7F0062D4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03AE08 7F0062D8 AFB50030 */ sw $s5, 0x30($sp) +/* 03AE0C 7F0062DC AFB4002C */ sw $s4, 0x2c($sp) +/* 03AE10 7F0062E0 00A6082A */ slt $at, $a1, $a2 +/* 03AE14 7F0062E4 00E08025 */ move $s0, $a3 +/* 03AE18 7F0062E8 00A08825 */ move $s1, $a1 +/* 03AE1C 7F0062EC 00C09025 */ move $s2, $a2 +/* 03AE20 7F0062F0 00809825 */ move $s3, $a0 +/* 03AE24 7F0062F4 ACE00000 */ sw $zero, ($a3) +/* 03AE28 7F0062F8 ACE00004 */ sw $zero, 4($a3) +/* 03AE2C 7F0062FC 1020001A */ beqz $at, .L7F006368 +/* 03AE30 7F006300 ACE00008 */ sw $zero, 8($a3) +/* 03AE34 7F006304 3C148004 */ lui $s4, %hi(model_guard_character) +/* 03AE38 7F006308 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 03AE3C 7F00630C 27B50040 */ addiu $s5, $sp, 0x40 +.L7F006310: +/* 03AE40 7F006310 00002025 */ move $a0, $zero +/* 03AE44 7F006314 00002825 */ move $a1, $zero +/* 03AE48 7F006318 02803025 */ move $a2, $s4 +/* 03AE4C 7F00631C 02603825 */ move $a3, $s3 +/* 03AE50 7F006320 AFB10010 */ sw $s1, 0x10($sp) +/* 03AE54 7F006324 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 03AE58 7F006328 AFB50014 */ sw $s5, 0x14($sp) +/* 03AE5C 7F00632C 8E0E0000 */ lw $t6, ($s0) +/* 03AE60 7F006330 87AF0040 */ lh $t7, 0x40($sp) +/* 03AE64 7F006334 8E190004 */ lw $t9, 4($s0) +/* 03AE68 7F006338 8E0A0008 */ lw $t2, 8($s0) +/* 03AE6C 7F00633C 01CFC021 */ addu $t8, $t6, $t7 +/* 03AE70 7F006340 AE180000 */ sw $t8, ($s0) +/* 03AE74 7F006344 87A80042 */ lh $t0, 0x42($sp) +/* 03AE78 7F006348 26310001 */ addiu $s1, $s1, 1 +/* 03AE7C 7F00634C 0232082A */ slt $at, $s1, $s2 +/* 03AE80 7F006350 03284821 */ addu $t1, $t9, $t0 +/* 03AE84 7F006354 AE090004 */ sw $t1, 4($s0) +/* 03AE88 7F006358 87AB0044 */ lh $t3, 0x44($sp) +/* 03AE8C 7F00635C 014B6021 */ addu $t4, $t2, $t3 +/* 03AE90 7F006360 1420FFEB */ bnez $at, .L7F006310 +/* 03AE94 7F006364 AE0C0008 */ sw $t4, 8($s0) +.L7F006368: +/* 03AE98 7F006368 8FBF0034 */ lw $ra, 0x34($sp) +/* 03AE9C 7F00636C 8FB0001C */ lw $s0, 0x1c($sp) +/* 03AEA0 7F006370 8FB10020 */ lw $s1, 0x20($sp) +/* 03AEA4 7F006374 8FB20024 */ lw $s2, 0x24($sp) +/* 03AEA8 7F006378 8FB30028 */ lw $s3, 0x28($sp) +/* 03AEAC 7F00637C 8FB4002C */ lw $s4, 0x2c($sp) +/* 03AEB0 7F006380 8FB50030 */ lw $s5, 0x30($sp) +/* 03AEB4 7F006384 03E00008 */ jr $ra +/* 03AEB8 7F006388 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sets_a_bunch_of_BONDdata_values_to_default(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8004F1F0 +.word 0x3dccccce +glabel D_8004F1F4 +.word 0x4164924b +glabel D_8004F1F8 +.word 0x3f6e147b +.text +glabel sets_a_bunch_of_BONDdata_values_to_default +/* 03AEBC 7F00638C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03AEC0 7F006390 AFB20038 */ sw $s2, 0x38($sp) +/* 03AEC4 7F006394 3C128004 */ lui $s2, %hi(player_gait_object) +/* 03AEC8 7F006398 2652C650 */ addiu $s2, %lo(player_gait_object) # addiu $s2, $s2, -0x39b0 +/* 03AECC 7F00639C 864E0014 */ lh $t6, 0x14($s2) +/* 03AED0 7F0063A0 AFBF0044 */ sw $ra, 0x44($sp) +/* 03AED4 7F0063A4 AFB40040 */ sw $s4, 0x40($sp) +/* 03AED8 7F0063A8 29C1001F */ slti $at, $t6, 0x1f +/* 03AEDC 7F0063AC AFB3003C */ sw $s3, 0x3c($sp) +/* 03AEE0 7F0063B0 AFB10034 */ sw $s1, 0x34($sp) +/* 03AEE4 7F0063B4 AFB00030 */ sw $s0, 0x30($sp) +/* 03AEE8 7F0063B8 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 03AEEC 7F0063BC 14200003 */ bnez $at, .L7F0063CC +/* 03AEF0 7F0063C0 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 03AEF4 7F0063C4 0FC1B11B */ jal return_null +/* 03AEF8 7F0063C8 00000000 */ nop +.L7F0063CC: +/* 03AEFC 7F0063CC 3C118008 */ lui $s1, %hi(pPlayer) +/* 03AF00 7F0063D0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 03AF04 7F0063D4 8E300000 */ lw $s0, ($s1) +/* 03AF08 7F0063D8 02402825 */ move $a1, $s2 +/* 03AF0C 7F0063DC 26040598 */ addiu $a0, $s0, 0x598 +/* 03AF10 7F0063E0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 03AF14 7F0063E4 26060654 */ addiu $a2, $s0, 0x654 +/* 03AF18 7F0063E8 3C018005 */ lui $at, %hi(D_8004F1F0) +/* 03AF1C 7F0063EC C436F1F0 */ lwc1 $f22, %lo(D_8004F1F0)($at) +/* 03AF20 7F0063F0 8E240000 */ lw $a0, ($s1) +/* 03AF24 7F0063F4 4405B000 */ mfc1 $a1, $f22 +/* 03AF28 7F0063F8 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03AF2C 7F0063FC 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF30 7F006400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF34 7F006404 44810000 */ mtc1 $at, $f0 +/* 03AF38 7F006408 8E2F0000 */ lw $t7, ($s1) +/* 03AF3C 7F00640C 3C018005 */ lui $at, %hi(D_8004F1F4) +/* 03AF40 7F006410 C422F1F4 */ lwc1 $f2, %lo(D_8004F1F4)($at) +/* 03AF44 7F006414 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 03AF48 7F006418 3C018005 */ lui $at, %hi(D_8004F1F8) +/* 03AF4C 7F00641C C424F1F8 */ lwc1 $f4, %lo(D_8004F1F8)($at) +/* 03AF50 7F006420 8E380000 */ lw $t8, ($s1) +/* 03AF54 7F006424 4480A000 */ mtc1 $zero, $f20 +/* 03AF58 7F006428 24020001 */ li $v0, 1 +/* 03AF5C 7F00642C E70404EC */ swc1 $f4, 0x4ec($t8) +/* 03AF60 7F006430 8E390000 */ lw $t9, ($s1) +/* 03AF64 7F006434 3C108003 */ lui $s0, %hi(D_80036AD0) +/* 03AF68 7F006438 3C148007 */ lui $s4, %hi(ptr_animation_table) +/* 03AF6C 7F00643C AF2004F0 */ sw $zero, 0x4f0($t9) +/* 03AF70 7F006440 8E280000 */ lw $t0, ($s1) +/* 03AF74 7F006444 3C138003 */ lui $s3, %hi(D_80036B00) +/* 03AF78 7F006448 26736B00 */ addiu $s3, %lo(D_80036B00) # addiu $s3, $s3, 0x6b00 +/* 03AF7C 7F00644C E50004F4 */ swc1 $f0, 0x4f4($t0) +/* 03AF80 7F006450 8E290000 */ lw $t1, ($s1) +/* 03AF84 7F006454 26949538 */ addiu $s4, %lo(ptr_animation_table) # addiu $s4, $s4, -0x6ac8 +/* 03AF88 7F006458 26106AD0 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6ad0 +/* 03AF8C 7F00645C E52004F8 */ swc1 $f0, 0x4f8($t1) +/* 03AF90 7F006460 8E2A0000 */ lw $t2, ($s1) +/* 03AF94 7F006464 27B200D0 */ addiu $s2, $sp, 0xd0 +/* 03AF98 7F006468 E55404FC */ swc1 $f20, 0x4fc($t2) +/* 03AF9C 7F00646C 8E2B0000 */ lw $t3, ($s1) +/* 03AFA0 7F006470 E5740500 */ swc1 $f20, 0x500($t3) +/* 03AFA4 7F006474 8E2C0000 */ lw $t4, ($s1) +/* 03AFA8 7F006478 E5940504 */ swc1 $f20, 0x504($t4) +/* 03AFAC 7F00647C 8E2D0000 */ lw $t5, ($s1) +/* 03AFB0 7F006480 E5B40508 */ swc1 $f20, 0x508($t5) +/* 03AFB4 7F006484 8E2E0000 */ lw $t6, ($s1) +/* 03AFB8 7F006488 E5D4050C */ swc1 $f20, 0x50c($t6) +/* 03AFBC 7F00648C 8E2F0000 */ lw $t7, ($s1) +/* 03AFC0 7F006490 E5F40510 */ swc1 $f20, 0x510($t7) +/* 03AFC4 7F006494 8E380000 */ lw $t8, ($s1) +/* 03AFC8 7F006498 E7140514 */ swc1 $f20, 0x514($t8) +/* 03AFCC 7F00649C 8E390000 */ lw $t9, ($s1) +/* 03AFD0 7F0064A0 E7340518 */ swc1 $f20, 0x518($t9) +/* 03AFD4 7F0064A4 8E280000 */ lw $t0, ($s1) +/* 03AFD8 7F0064A8 E514051C */ swc1 $f20, 0x51c($t0) +/* 03AFDC 7F0064AC 8E290000 */ lw $t1, ($s1) +/* 03AFE0 7F0064B0 E5340520 */ swc1 $f20, 0x520($t1) +/* 03AFE4 7F0064B4 8E2A0000 */ lw $t2, ($s1) +/* 03AFE8 7F0064B8 E5540524 */ swc1 $f20, 0x524($t2) +/* 03AFEC 7F0064BC 8E2B0000 */ lw $t3, ($s1) +/* 03AFF0 7F0064C0 E5740528 */ swc1 $f20, 0x528($t3) +/* 03AFF4 7F0064C4 8E2C0000 */ lw $t4, ($s1) +/* 03AFF8 7F0064C8 E594052C */ swc1 $f20, 0x52c($t4) +/* 03AFFC 7F0064CC 8E2D0000 */ lw $t5, ($s1) +/* 03B000 7F0064D0 E5B40530 */ swc1 $f20, 0x530($t5) +/* 03B004 7F0064D4 8E2E0000 */ lw $t6, ($s1) +/* 03B008 7F0064D8 E5C20534 */ swc1 $f2, 0x534($t6) +/* 03B00C 7F0064DC 8E2F0000 */ lw $t7, ($s1) +/* 03B010 7F0064E0 E5F40538 */ swc1 $f20, 0x538($t7) +/* 03B014 7F0064E4 8E380000 */ lw $t8, ($s1) +/* 03B018 7F0064E8 E702053C */ swc1 $f2, 0x53c($t8) +/* 03B01C 7F0064EC 8E390000 */ lw $t9, ($s1) +/* 03B020 7F0064F0 E7340540 */ swc1 $f20, 0x540($t9) +/* 03B024 7F0064F4 8E280000 */ lw $t0, ($s1) +/* 03B028 7F0064F8 AD0204DC */ sw $v0, 0x4dc($t0) +/* 03B02C 7F0064FC 8E290000 */ lw $t1, ($s1) +/* 03B030 7F006500 AD2204E0 */ sw $v0, 0x4e0($t1) +/* 03B034 7F006504 8E2A0000 */ lw $t2, ($s1) +/* 03B038 7F006508 AD4204E4 */ sw $v0, 0x4e4($t2) +/* 03B03C 7F00650C 8E2B0000 */ lw $t3, ($s1) +/* 03B040 7F006510 E5740544 */ swc1 $f20, 0x544($t3) +/* 03B044 7F006514 8E2C0000 */ lw $t4, ($s1) +/* 03B048 7F006518 E5940548 */ swc1 $f20, 0x548($t4) +/* 03B04C 7F00651C 8E2D0000 */ lw $t5, ($s1) +/* 03B050 7F006520 E5B4054C */ swc1 $f20, 0x54c($t5) +/* 03B054 7F006524 8E2E0000 */ lw $t6, ($s1) +/* 03B058 7F006528 E5D40550 */ swc1 $f20, 0x550($t6) +/* 03B05C 7F00652C 8E2F0000 */ lw $t7, ($s1) +/* 03B060 7F006530 E5F40554 */ swc1 $f20, 0x554($t7) +/* 03B064 7F006534 8E380000 */ lw $t8, ($s1) +/* 03B068 7F006538 E7140558 */ swc1 $f20, 0x558($t8) +/* 03B06C 7F00653C 8E390000 */ lw $t9, ($s1) +/* 03B070 7F006540 E734055C */ swc1 $f20, 0x55c($t9) +/* 03B074 7F006544 8E280000 */ lw $t0, ($s1) +/* 03B078 7F006548 E5140560 */ swc1 $f20, 0x560($t0) +/* 03B07C 7F00654C 8E290000 */ lw $t1, ($s1) +/* 03B080 7F006550 E5340564 */ swc1 $f20, 0x564($t1) +/* 03B084 7F006554 8E2A0000 */ lw $t2, ($s1) +/* 03B088 7F006558 E5540568 */ swc1 $f20, 0x568($t2) +/* 03B08C 7F00655C 8E2B0000 */ lw $t3, ($s1) +/* 03B090 7F006560 E560056C */ swc1 $f0, 0x56c($t3) +/* 03B094 7F006564 8E2C0000 */ lw $t4, ($s1) +/* 03B098 7F006568 E5940570 */ swc1 $f20, 0x570($t4) +/* 03B09C 7F00656C 8E2D0000 */ lw $t5, ($s1) +/* 03B0A0 7F006570 E5B40574 */ swc1 $f20, 0x574($t5) +/* 03B0A4 7F006574 8E2E0000 */ lw $t6, ($s1) +/* 03B0A8 7F006578 E5C00578 */ swc1 $f0, 0x578($t6) +/* 03B0AC 7F00657C 8E2F0000 */ lw $t7, ($s1) +/* 03B0B0 7F006580 E5F4057C */ swc1 $f20, 0x57c($t7) +/* 03B0B4 7F006584 8E380000 */ lw $t8, ($s1) +/* 03B0B8 7F006588 E7000580 */ swc1 $f0, 0x580($t8) +/* 03B0BC 7F00658C 8E390000 */ lw $t9, ($s1) +/* 03B0C0 7F006590 E7340584 */ swc1 $f20, 0x584($t9) +/* 03B0C4 7F006594 8E280000 */ lw $t0, ($s1) +/* 03B0C8 7F006598 E5140588 */ swc1 $f20, 0x588($t0) +/* 03B0CC 7F00659C 8E290000 */ lw $t1, ($s1) +/* 03B0D0 7F0065A0 E520058C */ swc1 $f0, 0x58c($t1) +/* 03B0D4 7F0065A4 8E2A0000 */ lw $t2, ($s1) +/* 03B0D8 7F0065A8 E5540590 */ swc1 $f20, 0x590($t2) +/* 03B0DC 7F0065AC 8E2B0000 */ lw $t3, ($s1) +/* 03B0E0 7F0065B0 AD600594 */ sw $zero, 0x594($t3) +.L7F0065B4: +/* 03B0E4 7F0065B4 C6060004 */ lwc1 $f6, 4($s0) +/* 03B0E8 7F0065B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B0EC 7F0065BC 8E0C0000 */ lw $t4, ($s0) +/* 03B0F0 7F0065C0 4600320D */ trunc.w.s $f8, $f6 +/* 03B0F4 7F0065C4 8E8D0000 */ lw $t5, ($s4) +/* 03B0F8 7F0065C8 02403825 */ move $a3, $s2 +/* 03B0FC 7F0065CC 4600540D */ trunc.w.s $f16, $f10 +/* 03B100 7F0065D0 44054000 */ mfc1 $a1, $f8 +/* 03B104 7F0065D4 018D2021 */ addu $a0, $t4, $t5 +/* 03B108 7F0065D8 44068000 */ mfc1 $a2, $f16 +/* 03B10C 7F0065DC 0FC018B0 */ jal sub_GAME_7F0062C0 +/* 03B110 7F0065E0 00000000 */ nop +/* 03B114 7F0065E4 8FB800D8 */ lw $t8, 0xd8($sp) +/* 03B118 7F0065E8 C6120008 */ lwc1 $f18, 8($s0) +/* 03B11C 7F0065EC C6040004 */ lwc1 $f4, 4($s0) +/* 03B120 7F0065F0 44984000 */ mtc1 $t8, $f8 +/* 03B124 7F0065F4 26100018 */ addiu $s0, $s0, 0x18 +/* 03B128 7F0065F8 46049181 */ sub.s $f6, $f18, $f4 +/* 03B12C 7F0065FC 468042A0 */ cvt.s.w $f10, $f8 +/* 03B130 7F006600 46165402 */ mul.s $f16, $f10, $f22 +/* 03B134 7F006604 46068483 */ div.s $f18, $f16, $f6 +/* 03B138 7F006608 1613FFEA */ bne $s0, $s3, .L7F0065B4 +/* 03B13C 7F00660C E612FFF4 */ swc1 $f18, -0xc($s0) +/* 03B140 7F006610 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03B144 7F006614 3C198003 */ lui $t9, %hi(D_8002A790) +/* 03B148 7F006618 27B20090 */ addiu $s2, $sp, 0x90 +/* 03B14C 7F00661C 2739A790 */ addiu $t9, %lo(D_8002A790) # addiu $t9, $t9, -0x5870 +/* 03B150 7F006620 4481B000 */ mtc1 $at, $f22 +/* 03B154 7F006624 2729003C */ addiu $t1, $t9, 0x3c +/* 03B158 7F006628 02405025 */ move $t2, $s2 +.L7F00662C: +/* 03B15C 7F00662C 8F210000 */ lw $at, ($t9) +/* 03B160 7F006630 2739000C */ addiu $t9, $t9, 0xc +/* 03B164 7F006634 254A000C */ addiu $t2, $t2, 0xc +/* 03B168 7F006638 AD41FFF4 */ sw $at, -0xc($t2) +/* 03B16C 7F00663C 8F21FFF8 */ lw $at, -8($t9) +/* 03B170 7F006640 AD41FFF8 */ sw $at, -8($t2) +/* 03B174 7F006644 8F21FFFC */ lw $at, -4($t9) +/* 03B178 7F006648 1729FFF8 */ bne $t9, $t1, .L7F00662C +/* 03B17C 7F00664C AD41FFFC */ sw $at, -4($t2) +/* 03B180 7F006650 8F210000 */ lw $at, ($t9) +/* 03B184 7F006654 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 03B188 7F006658 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 03B18C 7F00665C AD410000 */ sw $at, ($t2) +/* 03B190 7F006660 8E8B0000 */ lw $t3, ($s4) +/* 03B194 7F006664 8E240000 */ lw $a0, ($s1) +/* 03B198 7F006668 4407A000 */ mfc1 $a3, $f20 +/* 03B19C 7F00666C E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B1A0 7F006670 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B1A4 7F006674 00003025 */ move $a2, $zero +/* 03B1A8 7F006678 016C2821 */ addu $a1, $t3, $t4 +/* 03B1AC 7F00667C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B1B0 7F006680 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1B4 7F006684 8E240000 */ lw $a0, ($s1) +/* 03B1B8 7F006688 0FC1B5AC */ jal subcalcpos +/* 03B1BC 7F00668C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1C0 7F006690 27B30050 */ addiu $s3, $sp, 0x50 +/* 03B1C4 7F006694 0FC15FF4 */ jal matrix_4x4_set_identity +/* 03B1C8 7F006698 02602025 */ move $a0, $s3 +/* 03B1CC 7F00669C 8E300000 */ lw $s0, ($s1) +/* 03B1D0 7F0066A0 AFB30090 */ sw $s3, 0x90($sp) +/* 03B1D4 7F0066A4 02402025 */ move $a0, $s2 +/* 03B1D8 7F0066A8 260D06D0 */ addiu $t5, $s0, 0x6d0 +/* 03B1DC 7F0066AC AFAD00A0 */ sw $t5, 0xa0($sp) +/* 03B1E0 7F0066B0 0FC1BCBE */ jal subcalcmatrices +/* 03B1E4 7F0066B4 26050598 */ addiu $a1, $s0, 0x598 +/* 03B1E8 7F0066B8 8E300000 */ lw $s0, ($s1) +/* 03B1EC 7F0066BC 24130018 */ li $s3, 24 +/* 03B1F0 7F0066C0 3C128003 */ lui $s2, %hi(D_80036AD0) +/* 03B1F4 7F0066C4 C6040704 */ lwc1 $f4, 0x704($s0) +/* 03B1F8 7F0066C8 26526AD0 */ addiu $s2, %lo(D_80036AD0) # addiu $s2, $s2, 0x6ad0 +/* 03B1FC 7F0066CC 00003025 */ move $a2, $zero +/* 03B200 7F0066D0 E6040550 */ swc1 $f4, 0x550($s0) +/* 03B204 7F0066D4 8E2E0000 */ lw $t6, ($s1) +/* 03B208 7F0066D8 E5D40554 */ swc1 $f20, 0x554($t6) +/* 03B20C 7F0066DC 8E300000 */ lw $s0, ($s1) +/* 03B210 7F0066E0 C6080744 */ lwc1 $f8, 0x744($s0) +/* 03B214 7F0066E4 C60A0704 */ lwc1 $f10, 0x704($s0) +/* 03B218 7F0066E8 460A4401 */ sub.s $f16, $f8, $f10 +/* 03B21C 7F0066EC E6100558 */ swc1 $f16, 0x558($s0) +/* 03B220 7F0066F0 8E300000 */ lw $s0, ($s1) +/* 03B224 7F0066F4 C6060748 */ lwc1 $f6, 0x748($s0) +/* 03B228 7F0066F8 C6120708 */ lwc1 $f18, 0x708($s0) +/* 03B22C 7F0066FC 46123101 */ sub.s $f4, $f6, $f18 +/* 03B230 7F006700 E604055C */ swc1 $f4, 0x55c($s0) +/* 03B234 7F006704 8E300000 */ lw $s0, ($s1) +/* 03B238 7F006708 8E890000 */ lw $t1, ($s4) +/* 03B23C 7F00670C 8E0F04E8 */ lw $t7, 0x4e8($s0) +/* 03B240 7F006710 E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B244 7F006714 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B248 7F006718 01F30019 */ multu $t7, $s3 +/* 03B24C 7F00671C 26040598 */ addiu $a0, $s0, 0x598 +/* 03B250 7F006720 0000C012 */ mflo $t8 +/* 03B254 7F006724 02581021 */ addu $v0, $s2, $t8 +/* 03B258 7F006728 8C480000 */ lw $t0, ($v0) +/* 03B25C 7F00672C 8C470004 */ lw $a3, 4($v0) +/* 03B260 7F006730 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B264 7F006734 01092821 */ addu $a1, $t0, $t1 +/* 03B268 7F006738 8E300000 */ lw $s0, ($s1) +/* 03B26C 7F00673C 4406A000 */ mfc1 $a2, $f20 +/* 03B270 7F006740 8E1904E8 */ lw $t9, 0x4e8($s0) +/* 03B274 7F006744 26040598 */ addiu $a0, $s0, 0x598 +/* 03B278 7F006748 03330019 */ multu $t9, $s3 +/* 03B27C 7F00674C 00005012 */ mflo $t2 +/* 03B280 7F006750 024A5821 */ addu $t3, $s2, $t2 +/* 03B284 7F006754 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 03B288 7F006758 8D650004 */ lw $a1, 4($t3) +/* 03B28C 7F00675C 8E300000 */ lw $s0, ($s1) +/* 03B290 7F006760 8E0C04E8 */ lw $t4, 0x4e8($s0) +/* 03B294 7F006764 26040598 */ addiu $a0, $s0, 0x598 +/* 03B298 7F006768 01930019 */ multu $t4, $s3 +/* 03B29C 7F00676C 00006812 */ mflo $t5 +/* 03B2A0 7F006770 024D7021 */ addu $t6, $s2, $t5 +/* 03B2A4 7F006774 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 03B2A8 7F006778 8DC50008 */ lw $a1, 8($t6) +/* 03B2AC 7F00677C 8E240000 */ lw $a0, ($s1) +/* 03B2B0 7F006780 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 03B2B4 7F006784 24A5DBB0 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x2450 +/* 03B2B8 7F006788 0FC1BF8F */ jal sub_GAME_7F06FE3C +/* 03B2BC 7F00678C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B2C0 7F006790 0FC236F2 */ jal sub_GAME_7F08DBC8 +/* 03B2C4 7F006794 00000000 */ nop +/* 03B2C8 7F006798 8FBF0044 */ lw $ra, 0x44($sp) +/* 03B2CC 7F00679C D7B40020 */ ldc1 $f20, 0x20($sp) +/* 03B2D0 7F0067A0 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 03B2D4 7F0067A4 8FB00030 */ lw $s0, 0x30($sp) +/* 03B2D8 7F0067A8 8FB10034 */ lw $s1, 0x34($sp) +/* 03B2DC 7F0067AC 8FB20038 */ lw $s2, 0x38($sp) +/* 03B2E0 7F0067B0 8FB3003C */ lw $s3, 0x3c($sp) +/* 03B2E4 7F0067B4 8FB40040 */ lw $s4, 0x40($sp) +/* 03B2E8 7F0067B8 03E00008 */ jr $ra +/* 03B2EC 7F0067BC 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8004F1F0 +.word 0x3dccccce +glabel D_8004F1F4 +.word 0x4164924b +glabel D_8004F1F8 +.word 0x3f6e147b +.text +glabel sets_a_bunch_of_BONDdata_values_to_default +/* 03AEFC 7F00638C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03AF00 7F006390 AFB20038 */ sw $s2, 0x38($sp) +/* 03AF04 7F006394 3C128004 */ lui $s2, %hi(player_gait_object) # $s2, 0x8004 +/* 03AF08 7F006398 2652C680 */ addiu $s2, %lo(player_gait_object) # addiu $s2, $s2, -0x3980 +/* 03AF0C 7F00639C 864E0014 */ lh $t6, 0x14($s2) +/* 03AF10 7F0063A0 AFBF0044 */ sw $ra, 0x44($sp) +/* 03AF14 7F0063A4 AFB40040 */ sw $s4, 0x40($sp) +/* 03AF18 7F0063A8 29C1001F */ slti $at, $t6, 0x1f +/* 03AF1C 7F0063AC AFB3003C */ sw $s3, 0x3c($sp) +/* 03AF20 7F0063B0 AFB10034 */ sw $s1, 0x34($sp) +/* 03AF24 7F0063B4 AFB00030 */ sw $s0, 0x30($sp) +/* 03AF28 7F0063B8 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 03AF2C 7F0063BC 14200003 */ bnez $at, .L7F0063CC +/* 03AF30 7F0063C0 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 03AF34 7F0063C4 0FC1B297 */ jal return_null +/* 03AF38 7F0063C8 00000000 */ nop +.L7F0063CC: +/* 03AF3C 7F0063CC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 03AF40 7F0063D0 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 03AF44 7F0063D4 8E300000 */ lw $s0, ($s1) +/* 03AF48 7F0063D8 02402825 */ move $a1, $s2 +/* 03AF4C 7F0063DC 26040598 */ addiu $a0, $s0, 0x598 +/* 03AF50 7F0063E0 0FC1D967 */ jal sub_GAME_7F075FAC +/* 03AF54 7F0063E4 26060654 */ addiu $a2, $s0, 0x654 +/* 03AF58 7F0063E8 3C018005 */ lui $at, %hi(D_8004F1F0) # $at, 0x8005 +/* 03AF5C 7F0063EC C436F220 */ lwc1 $f22, %lo(D_8004F1F0)($at) +/* 03AF60 7F0063F0 8E240000 */ lw $a0, ($s1) +/* 03AF64 7F0063F4 4405B000 */ mfc1 $a1, $f22 +/* 03AF68 7F0063F8 0FC1B51A */ jal set_obj_instance_controller_scale +/* 03AF6C 7F0063FC 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF70 7F006400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF74 7F006404 44810000 */ mtc1 $at, $f0 +/* 03AF78 7F006408 4480A000 */ mtc1 $zero, $f20 +/* 03AF7C 7F00640C 8E240000 */ lw $a0, ($s1) +/* 03AF80 7F006410 44050000 */ mfc1 $a1, $f0 +/* 03AF84 7F006414 4406A000 */ mfc1 $a2, $f20 +/* 03AF88 7F006418 0FC1C142 */ jal sub_GAME_7F06FF18 +/* 03AF8C 7F00641C 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF90 7F006420 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF94 7F006424 44810000 */ mtc1 $at, $f0 +/* 03AF98 7F006428 8E2F0000 */ lw $t7, ($s1) +/* 03AF9C 7F00642C 3C018005 */ lui $at, %hi(D_8004F1F4) # $at, 0x8005 +/* 03AFA0 7F006430 C422F224 */ lwc1 $f2, %lo(D_8004F1F4)($at) +/* 03AFA4 7F006434 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 03AFA8 7F006438 3C018005 */ lui $at, %hi(D_8004F1F8) # $at, 0x8005 +/* 03AFAC 7F00643C C424F228 */ lwc1 $f4, %lo(D_8004F1F8)($at) +/* 03AFB0 7F006440 8E380000 */ lw $t8, ($s1) +/* 03AFB4 7F006444 24020001 */ li $v0, 1 +/* 03AFB8 7F006448 3C108003 */ lui $s0, %hi(D_80036AD0) # $s0, 0x8003 +/* 03AFBC 7F00644C E70404EC */ swc1 $f4, 0x4ec($t8) +/* 03AFC0 7F006450 8E390000 */ lw $t9, ($s1) +/* 03AFC4 7F006454 3C148007 */ lui $s4, %hi(ptr_animation_table) # $s4, 0x8007 +/* 03AFC8 7F006458 3C138003 */ lui $s3, %hi(D_80036B00) # $s3, 0x8003 +/* 03AFCC 7F00645C AF2004F0 */ sw $zero, 0x4f0($t9) +/* 03AFD0 7F006460 8E280000 */ lw $t0, ($s1) +/* 03AFD4 7F006464 26736B30 */ addiu $s3, %lo(D_80036B00) # addiu $s3, $s3, 0x6b30 +/* 03AFD8 7F006468 26949578 */ addiu $s4, %lo(ptr_animation_table) # addiu $s4, $s4, -0x6a88 +/* 03AFDC 7F00646C E50004F4 */ swc1 $f0, 0x4f4($t0) +/* 03AFE0 7F006470 8E290000 */ lw $t1, ($s1) +/* 03AFE4 7F006474 26106B00 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6b00 +/* 03AFE8 7F006478 27B200D0 */ addiu $s2, $sp, 0xd0 +/* 03AFEC 7F00647C E52004F8 */ swc1 $f0, 0x4f8($t1) +/* 03AFF0 7F006480 8E2A0000 */ lw $t2, ($s1) +/* 03AFF4 7F006484 E55404FC */ swc1 $f20, 0x4fc($t2) +/* 03AFF8 7F006488 8E2B0000 */ lw $t3, ($s1) +/* 03AFFC 7F00648C E5740500 */ swc1 $f20, 0x500($t3) +/* 03B000 7F006490 8E2C0000 */ lw $t4, ($s1) +/* 03B004 7F006494 E5940504 */ swc1 $f20, 0x504($t4) +/* 03B008 7F006498 8E2D0000 */ lw $t5, ($s1) +/* 03B00C 7F00649C E5B40508 */ swc1 $f20, 0x508($t5) +/* 03B010 7F0064A0 8E2E0000 */ lw $t6, ($s1) +/* 03B014 7F0064A4 E5D4050C */ swc1 $f20, 0x50c($t6) +/* 03B018 7F0064A8 8E2F0000 */ lw $t7, ($s1) +/* 03B01C 7F0064AC E5F40510 */ swc1 $f20, 0x510($t7) +/* 03B020 7F0064B0 8E380000 */ lw $t8, ($s1) +/* 03B024 7F0064B4 E7140514 */ swc1 $f20, 0x514($t8) +/* 03B028 7F0064B8 8E390000 */ lw $t9, ($s1) +/* 03B02C 7F0064BC E7340518 */ swc1 $f20, 0x518($t9) +/* 03B030 7F0064C0 8E280000 */ lw $t0, ($s1) +/* 03B034 7F0064C4 E514051C */ swc1 $f20, 0x51c($t0) +/* 03B038 7F0064C8 8E290000 */ lw $t1, ($s1) +/* 03B03C 7F0064CC E5340520 */ swc1 $f20, 0x520($t1) +/* 03B040 7F0064D0 8E2A0000 */ lw $t2, ($s1) +/* 03B044 7F0064D4 E5540524 */ swc1 $f20, 0x524($t2) +/* 03B048 7F0064D8 8E2B0000 */ lw $t3, ($s1) +/* 03B04C 7F0064DC E5740528 */ swc1 $f20, 0x528($t3) +/* 03B050 7F0064E0 8E2C0000 */ lw $t4, ($s1) +/* 03B054 7F0064E4 E594052C */ swc1 $f20, 0x52c($t4) +/* 03B058 7F0064E8 8E2D0000 */ lw $t5, ($s1) +/* 03B05C 7F0064EC E5B40530 */ swc1 $f20, 0x530($t5) +/* 03B060 7F0064F0 8E2E0000 */ lw $t6, ($s1) +/* 03B064 7F0064F4 E5C20534 */ swc1 $f2, 0x534($t6) +/* 03B068 7F0064F8 8E2F0000 */ lw $t7, ($s1) +/* 03B06C 7F0064FC E5F40538 */ swc1 $f20, 0x538($t7) +/* 03B070 7F006500 8E380000 */ lw $t8, ($s1) +/* 03B074 7F006504 E702053C */ swc1 $f2, 0x53c($t8) +/* 03B078 7F006508 8E390000 */ lw $t9, ($s1) +/* 03B07C 7F00650C E7340540 */ swc1 $f20, 0x540($t9) +/* 03B080 7F006510 8E280000 */ lw $t0, ($s1) +/* 03B084 7F006514 AD0204DC */ sw $v0, 0x4dc($t0) +/* 03B088 7F006518 8E290000 */ lw $t1, ($s1) +/* 03B08C 7F00651C AD2204E0 */ sw $v0, 0x4e0($t1) +/* 03B090 7F006520 8E2A0000 */ lw $t2, ($s1) +/* 03B094 7F006524 AD4204E4 */ sw $v0, 0x4e4($t2) +/* 03B098 7F006528 8E2B0000 */ lw $t3, ($s1) +/* 03B09C 7F00652C E5740544 */ swc1 $f20, 0x544($t3) +/* 03B0A0 7F006530 8E2C0000 */ lw $t4, ($s1) +/* 03B0A4 7F006534 E5940548 */ swc1 $f20, 0x548($t4) +/* 03B0A8 7F006538 8E2D0000 */ lw $t5, ($s1) +/* 03B0AC 7F00653C E5B4054C */ swc1 $f20, 0x54c($t5) +/* 03B0B0 7F006540 8E2E0000 */ lw $t6, ($s1) +/* 03B0B4 7F006544 E5D40550 */ swc1 $f20, 0x550($t6) +/* 03B0B8 7F006548 8E2F0000 */ lw $t7, ($s1) +/* 03B0BC 7F00654C E5F40554 */ swc1 $f20, 0x554($t7) +/* 03B0C0 7F006550 8E380000 */ lw $t8, ($s1) +/* 03B0C4 7F006554 E7140558 */ swc1 $f20, 0x558($t8) +/* 03B0C8 7F006558 8E390000 */ lw $t9, ($s1) +/* 03B0CC 7F00655C E734055C */ swc1 $f20, 0x55c($t9) +/* 03B0D0 7F006560 8E280000 */ lw $t0, ($s1) +/* 03B0D4 7F006564 E5140560 */ swc1 $f20, 0x560($t0) +/* 03B0D8 7F006568 8E290000 */ lw $t1, ($s1) +/* 03B0DC 7F00656C E5340564 */ swc1 $f20, 0x564($t1) +/* 03B0E0 7F006570 8E2A0000 */ lw $t2, ($s1) +/* 03B0E4 7F006574 E5540568 */ swc1 $f20, 0x568($t2) +/* 03B0E8 7F006578 8E2B0000 */ lw $t3, ($s1) +/* 03B0EC 7F00657C E560056C */ swc1 $f0, 0x56c($t3) +/* 03B0F0 7F006580 8E2C0000 */ lw $t4, ($s1) +/* 03B0F4 7F006584 E5940570 */ swc1 $f20, 0x570($t4) +/* 03B0F8 7F006588 8E2D0000 */ lw $t5, ($s1) +/* 03B0FC 7F00658C E5B40574 */ swc1 $f20, 0x574($t5) +/* 03B100 7F006590 8E2E0000 */ lw $t6, ($s1) +/* 03B104 7F006594 E5C00578 */ swc1 $f0, 0x578($t6) +/* 03B108 7F006598 8E2F0000 */ lw $t7, ($s1) +/* 03B10C 7F00659C E5F4057C */ swc1 $f20, 0x57c($t7) +/* 03B110 7F0065A0 8E380000 */ lw $t8, ($s1) +/* 03B114 7F0065A4 E7000580 */ swc1 $f0, 0x580($t8) +/* 03B118 7F0065A8 8E390000 */ lw $t9, ($s1) +/* 03B11C 7F0065AC E7340584 */ swc1 $f20, 0x584($t9) +/* 03B120 7F0065B0 8E280000 */ lw $t0, ($s1) +/* 03B124 7F0065B4 E5140588 */ swc1 $f20, 0x588($t0) +/* 03B128 7F0065B8 8E290000 */ lw $t1, ($s1) +/* 03B12C 7F0065BC E520058C */ swc1 $f0, 0x58c($t1) +/* 03B130 7F0065C0 8E2A0000 */ lw $t2, ($s1) +/* 03B134 7F0065C4 E5540590 */ swc1 $f20, 0x590($t2) +/* 03B138 7F0065C8 8E2B0000 */ lw $t3, ($s1) +/* 03B13C 7F0065CC AD600594 */ sw $zero, 0x594($t3) +.L7F0065D0: +/* 03B140 7F0065D0 C6060004 */ lwc1 $f6, 4($s0) +/* 03B144 7F0065D4 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B148 7F0065D8 8E0C0000 */ lw $t4, ($s0) +/* 03B14C 7F0065DC 4600320D */ trunc.w.s $f8, $f6 +/* 03B150 7F0065E0 8E8D0000 */ lw $t5, ($s4) +/* 03B154 7F0065E4 02403825 */ move $a3, $s2 +/* 03B158 7F0065E8 4600540D */ trunc.w.s $f16, $f10 +/* 03B15C 7F0065EC 44054000 */ mfc1 $a1, $f8 +/* 03B160 7F0065F0 018D2021 */ addu $a0, $t4, $t5 +/* 03B164 7F0065F4 44068000 */ mfc1 $a2, $f16 +/* 03B168 7F0065F8 0FC018B0 */ jal sub_GAME_7F0062C0 +/* 03B16C 7F0065FC 00000000 */ nop +/* 03B170 7F006600 8FB800D8 */ lw $t8, 0xd8($sp) +/* 03B174 7F006604 C6120008 */ lwc1 $f18, 8($s0) +/* 03B178 7F006608 C6040004 */ lwc1 $f4, 4($s0) +/* 03B17C 7F00660C 44984000 */ mtc1 $t8, $f8 +/* 03B180 7F006610 26100018 */ addiu $s0, $s0, 0x18 +/* 03B184 7F006614 46049181 */ sub.s $f6, $f18, $f4 +/* 03B188 7F006618 468042A0 */ cvt.s.w $f10, $f8 +/* 03B18C 7F00661C 46165402 */ mul.s $f16, $f10, $f22 +/* 03B190 7F006620 46068483 */ div.s $f18, $f16, $f6 +/* 03B194 7F006624 1613FFEA */ bne $s0, $s3, .L7F0065D0 +/* 03B198 7F006628 E612FFF4 */ swc1 $f18, -0xc($s0) +/* 03B19C 7F00662C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03B1A0 7F006630 3C198003 */ lui $t9, %hi(D_8002A790) # $t9, 0x8003 +/* 03B1A4 7F006634 27B20090 */ addiu $s2, $sp, 0x90 +/* 03B1A8 7F006638 2739A7D0 */ addiu $t9, %lo(D_8002A790) # addiu $t9, $t9, -0x5830 +/* 03B1AC 7F00663C 4481B000 */ mtc1 $at, $f22 +/* 03B1B0 7F006640 2729003C */ addiu $t1, $t9, 0x3c +/* 03B1B4 7F006644 02405025 */ move $t2, $s2 +.L7F006648: +/* 03B1B8 7F006648 8F210000 */ lw $at, ($t9) +/* 03B1BC 7F00664C 2739000C */ addiu $t9, $t9, 0xc +/* 03B1C0 7F006650 254A000C */ addiu $t2, $t2, 0xc +/* 03B1C4 7F006654 AD41FFF4 */ sw $at, -0xc($t2) +/* 03B1C8 7F006658 8F21FFF8 */ lw $at, -8($t9) +/* 03B1CC 7F00665C AD41FFF8 */ sw $at, -8($t2) +/* 03B1D0 7F006660 8F21FFFC */ lw $at, -4($t9) +/* 03B1D4 7F006664 1729FFF8 */ bne $t9, $t1, .L7F006648 +/* 03B1D8 7F006668 AD41FFFC */ sw $at, -4($t2) +/* 03B1DC 7F00666C 8F210000 */ lw $at, ($t9) +/* 03B1E0 7F006670 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 03B1E4 7F006674 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 03B1E8 7F006678 AD410000 */ sw $at, ($t2) +/* 03B1EC 7F00667C 8E8B0000 */ lw $t3, ($s4) +/* 03B1F0 7F006680 8E240000 */ lw $a0, ($s1) +/* 03B1F4 7F006684 4407A000 */ mfc1 $a3, $f20 +/* 03B1F8 7F006688 E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B1FC 7F00668C E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B200 7F006690 00003025 */ move $a2, $zero +/* 03B204 7F006694 016C2821 */ addu $a1, $t3, $t4 +/* 03B208 7F006698 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 03B20C 7F00669C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B210 7F0066A0 8E240000 */ lw $a0, ($s1) +/* 03B214 7F0066A4 0FC1B728 */ jal subcalcpos +/* 03B218 7F0066A8 24840598 */ addiu $a0, $a0, 0x598 +/* 03B21C 7F0066AC 27B30050 */ addiu $s3, $sp, 0x50 +/* 03B220 7F0066B0 0FC1613C */ jal matrix_4x4_set_identity +/* 03B224 7F0066B4 02602025 */ move $a0, $s3 +/* 03B228 7F0066B8 8E300000 */ lw $s0, ($s1) +/* 03B22C 7F0066BC AFB30090 */ sw $s3, 0x90($sp) +/* 03B230 7F0066C0 02402025 */ move $a0, $s2 +/* 03B234 7F0066C4 260D06D0 */ addiu $t5, $s0, 0x6d0 +/* 03B238 7F0066C8 AFAD00A0 */ sw $t5, 0xa0($sp) +/* 03B23C 7F0066CC 0FC1BE3A */ jal subcalcmatrices +/* 03B240 7F0066D0 26050598 */ addiu $a1, $s0, 0x598 +/* 03B244 7F0066D4 8E300000 */ lw $s0, ($s1) +/* 03B248 7F0066D8 24130018 */ li $s3, 24 +/* 03B24C 7F0066DC 3C128003 */ lui $s2, %hi(D_80036AD0) # $s2, 0x8003 +/* 03B250 7F0066E0 C6040704 */ lwc1 $f4, 0x704($s0) +/* 03B254 7F0066E4 26526B00 */ addiu $s2, %lo(D_80036AD0) # addiu $s2, $s2, 0x6b00 +/* 03B258 7F0066E8 00003025 */ move $a2, $zero +/* 03B25C 7F0066EC E6040550 */ swc1 $f4, 0x550($s0) +/* 03B260 7F0066F0 8E2E0000 */ lw $t6, ($s1) +/* 03B264 7F0066F4 E5D40554 */ swc1 $f20, 0x554($t6) +/* 03B268 7F0066F8 8E300000 */ lw $s0, ($s1) +/* 03B26C 7F0066FC C6080744 */ lwc1 $f8, 0x744($s0) +/* 03B270 7F006700 C60A0704 */ lwc1 $f10, 0x704($s0) +/* 03B274 7F006704 460A4401 */ sub.s $f16, $f8, $f10 +/* 03B278 7F006708 E6100558 */ swc1 $f16, 0x558($s0) +/* 03B27C 7F00670C 8E300000 */ lw $s0, ($s1) +/* 03B280 7F006710 C6060748 */ lwc1 $f6, 0x748($s0) +/* 03B284 7F006714 C6120708 */ lwc1 $f18, 0x708($s0) +/* 03B288 7F006718 46123101 */ sub.s $f4, $f6, $f18 +/* 03B28C 7F00671C E604055C */ swc1 $f4, 0x55c($s0) +/* 03B290 7F006720 8E300000 */ lw $s0, ($s1) +/* 03B294 7F006724 8E890000 */ lw $t1, ($s4) +/* 03B298 7F006728 8E0F04E8 */ lw $t7, 0x4e8($s0) +/* 03B29C 7F00672C E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B2A0 7F006730 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B2A4 7F006734 01F30019 */ multu $t7, $s3 +/* 03B2A8 7F006738 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2AC 7F00673C 0000C012 */ mflo $t8 +/* 03B2B0 7F006740 02581021 */ addu $v0, $s2, $t8 +/* 03B2B4 7F006744 8C480000 */ lw $t0, ($v0) +/* 03B2B8 7F006748 8C470004 */ lw $a3, 4($v0) +/* 03B2BC 7F00674C 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 03B2C0 7F006750 01092821 */ addu $a1, $t0, $t1 +/* 03B2C4 7F006754 8E300000 */ lw $s0, ($s1) +/* 03B2C8 7F006758 4406A000 */ mfc1 $a2, $f20 +/* 03B2CC 7F00675C 8E1904E8 */ lw $t9, 0x4e8($s0) +/* 03B2D0 7F006760 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2D4 7F006764 03330019 */ multu $t9, $s3 +/* 03B2D8 7F006768 00005012 */ mflo $t2 +/* 03B2DC 7F00676C 024A5821 */ addu $t3, $s2, $t2 +/* 03B2E0 7F006770 0FC1C0EF */ jal sub_GAME_7F06FDCC +/* 03B2E4 7F006774 8D650004 */ lw $a1, 4($t3) +/* 03B2E8 7F006778 8E300000 */ lw $s0, ($s1) +/* 03B2EC 7F00677C 8E0C04E8 */ lw $t4, 0x4e8($s0) +/* 03B2F0 7F006780 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2F4 7F006784 01930019 */ multu $t4, $s3 +/* 03B2F8 7F006788 00006812 */ mflo $t5 +/* 03B2FC 7F00678C 024D7021 */ addu $t6, $s2, $t5 +/* 03B300 7F006790 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 03B304 7F006794 8DC50008 */ lw $a1, 8($t6) +/* 03B308 7F006798 8E240000 */ lw $a0, ($s1) +/* 03B30C 7F00679C 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 03B310 7F0067A0 24A5E690 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x1970 +/* 03B314 7F0067A4 0FC1C10B */ jal sub_GAME_7F06FE3C +/* 03B318 7F0067A8 24840598 */ addiu $a0, $a0, 0x598 +/* 03B31C 7F0067AC 0FC239AA */ jal sub_GAME_7F08DBC8 +/* 03B320 7F0067B0 00000000 */ nop +/* 03B324 7F0067B4 8FBF0044 */ lw $ra, 0x44($sp) +/* 03B328 7F0067B8 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 03B32C 7F0067BC D7B60028 */ ldc1 $f22, 0x28($sp) +/* 03B330 7F0067C0 8FB00030 */ lw $s0, 0x30($sp) +/* 03B334 7F0067C4 8FB10034 */ lw $s1, 0x34($sp) +/* 03B338 7F0067C8 8FB20038 */ lw $s2, 0x38($sp) +/* 03B33C 7F0067CC 8FB3003C */ lw $s3, 0x3c($sp) +/* 03B340 7F0067D0 8FB40040 */ lw $s4, 0x40($sp) +/* 03B344 7F0067D4 03E00008 */ jr $ra +/* 03B348 7F0067D8 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + +#endif + diff --git a/src/game/initactorpropstuff.c b/src/game/initactorpropstuff.c new file mode 100644 index 0000000..763ab71 --- /dev/null +++ b/src/game/initactorpropstuff.c @@ -0,0 +1,718 @@ +#include "ultra64.h" +#include "game/initactorpropstuff.h" +#include "game/chr.h" + + + + + + + +#ifdef NONMATCHING +void reset_counter_rand_body_head(void) { + num_bodies = 0; + if (list_of_bodies[0] >= 0 ) { + num_bodies = 1; + while (list_of_bodies[num_bodies] >= 0) { + num_bodies += 1; + } + } + num_male_heads = 0; + if (random_male_heads[0] >= 0) { + num_male_heads = 1; + while (random_male_heads[num_male_heads] >= 0) { + num_male_heads += 1; + } + } + num_female_heads = 0; + if (random_female_heads[0] >= 0) { + num_female_heads = 1; + while (random_female_heads[num_female_heads] >= 0) { + num_female_heads += 1; + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel reset_counter_rand_body_head +/* 034C40 7F000110 3C048003 */ lui $a0, %hi(list_of_bodies) +/* 034C44 7F000114 2484CD0C */ addiu $a0, %lo(list_of_bodies) # addiu $a0, $a0, -0x32f4 +/* 034C48 7F000118 00007080 */ sll $t6, $zero, 2 +/* 034C4C 7F00011C 008E7821 */ addu $t7, $a0, $t6 +/* 034C50 7F000120 8DF80000 */ lw $t8, ($t7) +/* 034C54 7F000124 3C038003 */ lui $v1, %hi(num_bodies) +/* 034C58 7F000128 2463CD00 */ addiu $v1, %lo(num_bodies) # addiu $v1, $v1, -0x3300 +/* 034C5C 7F00012C AC600000 */ sw $zero, ($v1) +/* 034C60 7F000130 07000009 */ bltz $t8, .L7F000158 +/* 034C64 7F000134 00001025 */ move $v0, $zero +/* 034C68 7F000138 24590001 */ addiu $t9, $v0, 1 +.L7F00013C: +/* 034C6C 7F00013C 00194080 */ sll $t0, $t9, 2 +/* 034C70 7F000140 00884821 */ addu $t1, $a0, $t0 +/* 034C74 7F000144 8D2A0000 */ lw $t2, ($t1) +/* 034C78 7F000148 AC790000 */ sw $t9, ($v1) +/* 034C7C 7F00014C 03201025 */ move $v0, $t9 +/* 034C80 7F000150 0543FFFA */ bgezl $t2, .L7F00013C +/* 034C84 7F000154 24590001 */ addiu $t9, $v0, 1 +.L7F000158: +/* 034C88 7F000158 3C048003 */ lui $a0, %hi(random_male_heads) +/* 034C8C 7F00015C 2484CDB8 */ addiu $a0, %lo(random_male_heads) # addiu $a0, $a0, -0x3248 +/* 034C90 7F000160 00005880 */ sll $t3, $zero, 2 +/* 034C94 7F000164 008B6021 */ addu $t4, $a0, $t3 +/* 034C98 7F000168 8D8D0000 */ lw $t5, ($t4) +/* 034C9C 7F00016C 3C038003 */ lui $v1, %hi(num_male_heads) +/* 034CA0 7F000170 2463CD04 */ addiu $v1, %lo(num_male_heads) # addiu $v1, $v1, -0x32fc +/* 034CA4 7F000174 AC600000 */ sw $zero, ($v1) +/* 034CA8 7F000178 05A00009 */ bltz $t5, .L7F0001A0 +/* 034CAC 7F00017C 00001025 */ move $v0, $zero +/* 034CB0 7F000180 244E0001 */ addiu $t6, $v0, 1 +.L7F000184: +/* 034CB4 7F000184 000E7880 */ sll $t7, $t6, 2 +/* 034CB8 7F000188 008FC021 */ addu $t8, $a0, $t7 +/* 034CBC 7F00018C 8F190000 */ lw $t9, ($t8) +/* 034CC0 7F000190 AC6E0000 */ sw $t6, ($v1) +/* 034CC4 7F000194 01C01025 */ move $v0, $t6 +/* 034CC8 7F000198 0723FFFA */ bgezl $t9, .L7F000184 +/* 034CCC 7F00019C 244E0001 */ addiu $t6, $v0, 1 +.L7F0001A0: +/* 034CD0 7F0001A0 3C048003 */ lui $a0, %hi(random_female_heads) +/* 034CD4 7F0001A4 2484CE20 */ addiu $a0, %lo(random_female_heads) # addiu $a0, $a0, -0x31e0 +/* 034CD8 7F0001A8 00004080 */ sll $t0, $zero, 2 +/* 034CDC 7F0001AC 00884821 */ addu $t1, $a0, $t0 +/* 034CE0 7F0001B0 8D2A0000 */ lw $t2, ($t1) +/* 034CE4 7F0001B4 3C038003 */ lui $v1, %hi(num_female_heads) +/* 034CE8 7F0001B8 2463CD08 */ addiu $v1, %lo(num_female_heads) # addiu $v1, $v1, -0x32f8 +/* 034CEC 7F0001BC AC600000 */ sw $zero, ($v1) +/* 034CF0 7F0001C0 05400009 */ bltz $t2, .L7F0001E8 +/* 034CF4 7F0001C4 00001025 */ move $v0, $zero +/* 034CF8 7F0001C8 244B0001 */ addiu $t3, $v0, 1 +.L7F0001CC: +/* 034CFC 7F0001CC 000B6080 */ sll $t4, $t3, 2 +/* 034D00 7F0001D0 008C6821 */ addu $t5, $a0, $t4 +/* 034D04 7F0001D4 8DAE0000 */ lw $t6, ($t5) +/* 034D08 7F0001D8 AC6B0000 */ sw $t3, ($v1) +/* 034D0C 7F0001DC 01601025 */ move $v0, $t3 +/* 034D10 7F0001E0 05C3FFFA */ bgezl $t6, .L7F0001CC +/* 034D14 7F0001E4 244B0001 */ addiu $t3, $v0, 1 +.L7F0001E8: +/* 034D18 7F0001E8 03E00008 */ jr $ra +/* 034D1C 7F0001EC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0001F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0001F0 +/* 034D20 7F0001F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 034D24 7F0001F4 AFB30028 */ sw $s3, 0x28($sp) +/* 034D28 7F0001F8 AFB20024 */ sw $s2, 0x24($sp) +/* 034D2C 7F0001FC AFB10020 */ sw $s1, 0x20($sp) +/* 034D30 7F000200 AFB0001C */ sw $s0, 0x1c($sp) +/* 034D34 7F000204 00A6082A */ slt $at, $a1, $a2 +/* 034D38 7F000208 00A08025 */ move $s0, $a1 +/* 034D3C 7F00020C 00C09025 */ move $s2, $a2 +/* 034D40 7F000210 00809825 */ move $s3, $a0 +/* 034D44 7F000214 AFBF0034 */ sw $ra, 0x34($sp) +/* 034D48 7F000218 AFB50030 */ sw $s5, 0x30($sp) +/* 034D4C 7F00021C AFB4002C */ sw $s4, 0x2c($sp) +/* 034D50 7F000220 10200011 */ beqz $at, .L7F000268 +/* 034D54 7F000224 00008825 */ move $s1, $zero +/* 034D58 7F000228 3C148004 */ lui $s4, %hi(model_guard_character) +/* 034D5C 7F00022C 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 034D60 7F000230 27B50040 */ addiu $s5, $sp, 0x40 +.L7F000234: +/* 034D64 7F000234 00002025 */ move $a0, $zero +/* 034D68 7F000238 00002825 */ move $a1, $zero +/* 034D6C 7F00023C 02803025 */ move $a2, $s4 +/* 034D70 7F000240 02603825 */ move $a3, $s3 +/* 034D74 7F000244 AFB00010 */ sw $s0, 0x10($sp) +/* 034D78 7F000248 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 034D7C 7F00024C AFB50014 */ sw $s5, 0x14($sp) +/* 034D80 7F000250 02228821 */ addu $s1, $s1, $v0 +/* 034D84 7F000254 26100001 */ addiu $s0, $s0, 1 +/* 034D88 7F000258 322EFFFF */ andi $t6, $s1, 0xffff +/* 034D8C 7F00025C 0212082A */ slt $at, $s0, $s2 +/* 034D90 7F000260 1420FFF4 */ bnez $at, .L7F000234 +/* 034D94 7F000264 01C08825 */ move $s1, $t6 +.L7F000268: +/* 034D98 7F000268 8FBF0034 */ lw $ra, 0x34($sp) +/* 034D9C 7F00026C 02201025 */ move $v0, $s1 +/* 034DA0 7F000270 8FB10020 */ lw $s1, 0x20($sp) +/* 034DA4 7F000274 8FB0001C */ lw $s0, 0x1c($sp) +/* 034DA8 7F000278 8FB20024 */ lw $s2, 0x24($sp) +/* 034DAC 7F00027C 8FB30028 */ lw $s3, 0x28($sp) +/* 034DB0 7F000280 8FB4002C */ lw $s4, 0x2c($sp) +/* 034DB4 7F000284 8FB50030 */ lw $s5, 0x30($sp) +/* 034DB8 7F000288 03E00008 */ jr $ra +/* 034DBC 7F00028C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F000290(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F000290 +/* 034DC0 7F000290 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 034DC4 7F000294 AFB30028 */ sw $s3, 0x28($sp) +/* 034DC8 7F000298 AFB20024 */ sw $s2, 0x24($sp) +/* 034DCC 7F00029C AFB10020 */ sw $s1, 0x20($sp) +/* 034DD0 7F0002A0 AFB0001C */ sw $s0, 0x1c($sp) +/* 034DD4 7F0002A4 00A6082A */ slt $at, $a1, $a2 +/* 034DD8 7F0002A8 00A08025 */ move $s0, $a1 +/* 034DDC 7F0002AC 00C09025 */ move $s2, $a2 +/* 034DE0 7F0002B0 00809825 */ move $s3, $a0 +/* 034DE4 7F0002B4 AFBF0034 */ sw $ra, 0x34($sp) +/* 034DE8 7F0002B8 AFB50030 */ sw $s5, 0x30($sp) +/* 034DEC 7F0002BC AFB4002C */ sw $s4, 0x2c($sp) +/* 034DF0 7F0002C0 10200010 */ beqz $at, .L7F000304 +/* 034DF4 7F0002C4 00008825 */ move $s1, $zero +/* 034DF8 7F0002C8 3C148004 */ lui $s4, %hi(model_guard_character) +/* 034DFC 7F0002CC 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 034E00 7F0002D0 27B5003C */ addiu $s5, $sp, 0x3c +.L7F0002D4: +/* 034E04 7F0002D4 00002025 */ move $a0, $zero +/* 034E08 7F0002D8 00002825 */ move $a1, $zero +/* 034E0C 7F0002DC 02803025 */ move $a2, $s4 +/* 034E10 7F0002E0 02603825 */ move $a3, $s3 +/* 034E14 7F0002E4 AFB00010 */ sw $s0, 0x10($sp) +/* 034E18 7F0002E8 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 034E1C 7F0002EC AFB50014 */ sw $s5, 0x14($sp) +/* 034E20 7F0002F0 87AE0040 */ lh $t6, 0x40($sp) +/* 034E24 7F0002F4 26100001 */ addiu $s0, $s0, 1 +/* 034E28 7F0002F8 0212082A */ slt $at, $s0, $s2 +/* 034E2C 7F0002FC 1420FFF5 */ bnez $at, .L7F0002D4 +/* 034E30 7F000300 022E8821 */ addu $s1, $s1, $t6 +.L7F000304: +/* 034E34 7F000304 8FBF0034 */ lw $ra, 0x34($sp) +/* 034E38 7F000308 02201025 */ move $v0, $s1 +/* 034E3C 7F00030C 8FB10020 */ lw $s1, 0x20($sp) +/* 034E40 7F000310 8FB0001C */ lw $s0, 0x1c($sp) +/* 034E44 7F000314 8FB20024 */ lw $s2, 0x24($sp) +/* 034E48 7F000318 8FB30028 */ lw $s3, 0x28($sp) +/* 034E4C 7F00031C 8FB4002C */ lw $s4, 0x2c($sp) +/* 034E50 7F000320 8FB50030 */ lw $s5, 0x30($sp) +/* 034E54 7F000324 03E00008 */ jr $ra +/* 034E58 7F000328 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00032C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel F32_8004ED70 +.word 0x40c90fdb +glabel F32_8004ED74 +.word 0x38c90fdb +.text +glabel sub_GAME_7F00032C +/* 034E5C 7F00032C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 034E60 7F000330 AFBF003C */ sw $ra, 0x3c($sp) +/* 034E64 7F000334 AFB30038 */ sw $s3, 0x38($sp) +/* 034E68 7F000338 AFB20034 */ sw $s2, 0x34($sp) +/* 034E6C 7F00033C AFB10030 */ sw $s1, 0x30($sp) +/* 034E70 7F000340 AFB0002C */ sw $s0, 0x2c($sp) +/* 034E74 7F000344 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 034E78 7F000348 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 034E7C 7F00034C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 034E80 7F000350 8C8E0000 */ lw $t6, ($a0) +/* 034E84 7F000354 00008825 */ move $s1, $zero +/* 034E88 7F000358 00808025 */ move $s0, $a0 +/* 034E8C 7F00035C 11C00038 */ beqz $t6, .L7F000440 +/* 034E90 7F000360 01C01025 */ move $v0, $t6 +/* 034E94 7F000364 3C018005 */ lui $at, %hi(F32_8004ED70) +/* 034E98 7F000368 C438ED70 */ lwc1 $f24, %lo(F32_8004ED70)($at) +/* 034E9C 7F00036C 3C018005 */ lui $at, %hi(F32_8004ED74) +/* 034EA0 7F000370 3C128007 */ lui $s2, %hi(ptr_animation_table) +/* 034EA4 7F000374 4480A000 */ mtc1 $zero, $f20 +/* 034EA8 7F000378 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 +/* 034EAC 7F00037C C436ED74 */ lwc1 $f22, %lo(F32_8004ED74)($at) +/* 034EB0 7F000380 34138000 */ li $s3, 32768 +/* 034EB4 7F000384 8E4F0000 */ lw $t7, ($s2) +.L7F000388: +/* 034EB8 7F000388 C60C0004 */ lwc1 $f12, 4($s0) +/* 034EBC 7F00038C 004FC021 */ addu $t8, $v0, $t7 +/* 034EC0 7F000390 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 034EC4 7F000394 AE180000 */ sw $t8, ($s0) +/* 034EC8 7F000398 8E040000 */ lw $a0, ($s0) +/* 034ECC 7F00039C 00002825 */ move $a1, $zero +/* 034ED0 7F0003A0 0FC0007C */ jal sub_GAME_7F0001F0 +/* 034ED4 7F0003A4 00403025 */ move $a2, $v0 +/* 034ED8 7F0003A8 C6000004 */ lwc1 $f0, 4($s0) +/* 034EDC 7F0003AC 3043FFFF */ andi $v1, $v0, 0xffff +/* 034EE0 7F0003B0 0073082A */ slt $at, $v1, $s3 +/* 034EE4 7F0003B4 4600A03C */ c.lt.s $f20, $f0 +/* 034EE8 7F0003B8 00000000 */ nop +/* 034EEC 7F0003BC 4502001B */ bc1fl .L7F00042C +/* 034EF0 7F0003C0 E6140008 */ swc1 $f20, 8($s0) +/* 034EF4 7F0003C4 5020000D */ beql $at, $zero, .L7F0003FC +/* 034EF8 7F0003C8 44839000 */ mtc1 $v1, $f18 +/* 034EFC 7F0003CC 44832000 */ mtc1 $v1, $f4 +/* 034F00 7F0003D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 034F04 7F0003D4 04610004 */ bgez $v1, .L7F0003E8 +/* 034F08 7F0003D8 468021A0 */ cvt.s.w $f6, $f4 +/* 034F0C 7F0003DC 44814000 */ mtc1 $at, $f8 +/* 034F10 7F0003E0 00000000 */ nop +/* 034F14 7F0003E4 46083180 */ add.s $f6, $f6, $f8 +.L7F0003E8: +/* 034F18 7F0003E8 46163282 */ mul.s $f10, $f6, $f22 +/* 034F1C 7F0003EC 46005403 */ div.s $f16, $f10, $f0 +/* 034F20 7F0003F0 1000000E */ b .L7F00042C +/* 034F24 7F0003F4 E6100008 */ swc1 $f16, 8($s0) +/* 034F28 7F0003F8 44839000 */ mtc1 $v1, $f18 +.L7F0003FC: +/* 034F2C 7F0003FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 034F30 7F000400 04610004 */ bgez $v1, .L7F000414 +/* 034F34 7F000404 46809120 */ cvt.s.w $f4, $f18 +/* 034F38 7F000408 44814000 */ mtc1 $at, $f8 +/* 034F3C 7F00040C 00000000 */ nop +/* 034F40 7F000410 46082100 */ add.s $f4, $f4, $f8 +.L7F000414: +/* 034F44 7F000414 46162182 */ mul.s $f6, $f4, $f22 +/* 034F48 7F000418 46183281 */ sub.s $f10, $f6, $f24 +/* 034F4C 7F00041C 46005403 */ div.s $f16, $f10, $f0 +/* 034F50 7F000420 10000002 */ b .L7F00042C +/* 034F54 7F000424 E6100008 */ swc1 $f16, 8($s0) +/* 034F58 7F000428 E6140008 */ swc1 $f20, 8($s0) +.L7F00042C: +/* 034F5C 7F00042C 8E020048 */ lw $v0, 0x48($s0) +/* 034F60 7F000430 26100048 */ addiu $s0, $s0, 0x48 +/* 034F64 7F000434 26310001 */ addiu $s1, $s1, 1 +/* 034F68 7F000438 5440FFD3 */ bnezl $v0, .L7F000388 +/* 034F6C 7F00043C 8E4F0000 */ lw $t7, ($s2) +.L7F000440: +/* 034F70 7F000440 8FBF003C */ lw $ra, 0x3c($sp) +/* 034F74 7F000444 02201025 */ move $v0, $s1 +/* 034F78 7F000448 8FB10030 */ lw $s1, 0x30($sp) +/* 034F7C 7F00044C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 034F80 7F000450 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 034F84 7F000454 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 034F88 7F000458 8FB0002C */ lw $s0, 0x2c($sp) +/* 034F8C 7F00045C 8FB20034 */ lw $s2, 0x34($sp) +/* 034F90 7F000460 8FB30038 */ lw $s3, 0x38($sp) +/* 034F94 7F000464 03E00008 */ jr $ra +/* 034F98 7F000468 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00046C(void) { + +} +#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 + + + +#ifdef NONMATCHING +void sub_GAME_7F0004D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0004D0 +/* 035000 7F0004D0 8C8E0000 */ lw $t6, ($a0) +/* 035004 7F0004D4 00001825 */ move $v1, $zero +/* 035008 7F0004D8 00801025 */ move $v0, $a0 +/* 03500C 7F0004DC 11C0000C */ beqz $t6, .L7F000510 +/* 035010 7F0004E0 00000000 */ nop +/* 035014 7F0004E4 8C850000 */ lw $a1, ($a0) +/* 035018 7F0004E8 3C048007 */ lui $a0, %hi(ptr_animation_table) +/* 03501C 7F0004EC 24849538 */ addiu $a0, %lo(ptr_animation_table) # addiu $a0, $a0, -0x6ac8 +/* 035020 7F0004F0 8C8F0000 */ lw $t7, ($a0) +.L7F0004F4: +/* 035024 7F0004F4 24630001 */ addiu $v1, $v1, 1 +/* 035028 7F0004F8 2442001C */ addiu $v0, $v0, 0x1c +/* 03502C 7F0004FC 00AFC021 */ addu $t8, $a1, $t7 +/* 035030 7F000500 8C450000 */ lw $a1, ($v0) +/* 035034 7F000504 AC58FFE4 */ sw $t8, -0x1c($v0) +/* 035038 7F000508 54A0FFFA */ bnezl $a1, .L7F0004F4 +/* 03503C 7F00050C 8C8F0000 */ lw $t7, ($a0) +.L7F000510: +/* 035040 7F000510 03E00008 */ jr $ra +/* 035044 7F000514 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void somethingwith_weapon_animation_groups(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel F32_8004ED78 +.word 0x3dccccce +.text +glabel somethingwith_weapon_animation_groups +/* 035048 7F000518 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 03504C 7F00051C 3C0E8003 */ lui $t6, %hi(D_8002C914) +/* 035050 7F000520 8DCEC914 */ lw $t6, %lo(D_8002C914)($t6) +/* 035054 7F000524 AFB10024 */ sw $s1, 0x24($sp) +/* 035058 7F000528 2411FFFF */ li $s1, -1 +/* 03505C 7F00052C AFBF002C */ sw $ra, 0x2c($sp) +/* 035060 7F000530 AFB20028 */ sw $s2, 0x28($sp) +/* 035064 7F000534 AFB00020 */ sw $s0, 0x20($sp) +/* 035068 7F000538 122E0013 */ beq $s1, $t6, .L7F000588 +/* 03506C 7F00053C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 035070 7F000540 3C108003 */ lui $s0, %hi(D_8002C914) +/* 035074 7F000544 2610C914 */ addiu $s0, %lo(D_8002C914) # addiu $s0, $s0, -0x36ec +/* 035078 7F000548 8E04001C */ lw $a0, 0x1c($s0) +.L7F00054C: +/* 03507C 7F00054C 50800005 */ beql $a0, $zero, .L7F000564 +/* 035080 7F000550 8E040024 */ lw $a0, 0x24($s0) +/* 035084 7F000554 0FC00134 */ jal sub_GAME_7F0004D0 +/* 035088 7F000558 00000000 */ nop +/* 03508C 7F00055C AE020020 */ sw $v0, 0x20($s0) +/* 035090 7F000560 8E040024 */ lw $a0, 0x24($s0) +.L7F000564: +/* 035094 7F000564 50800005 */ beql $a0, $zero, .L7F00057C +/* 035098 7F000568 8E0F002C */ lw $t7, 0x2c($s0) +/* 03509C 7F00056C 0FC00134 */ jal sub_GAME_7F0004D0 +/* 0350A0 7F000570 00000000 */ nop +/* 0350A4 7F000574 AE020028 */ sw $v0, 0x28($s0) +/* 0350A8 7F000578 8E0F002C */ lw $t7, 0x2c($s0) +.L7F00057C: +/* 0350AC 7F00057C 2610002C */ addiu $s0, $s0, 0x2c +/* 0350B0 7F000580 562FFFF2 */ bnel $s1, $t7, .L7F00054C +/* 0350B4 7F000584 8E04001C */ lw $a0, 0x1c($s0) +.L7F000588: +/* 0350B8 7F000588 3C048003 */ lui $a0, %hi(D_8002DEBC) +/* 0350BC 7F00058C 0FC00134 */ jal sub_GAME_7F0004D0 +/* 0350C0 7F000590 2484DEBC */ addiu $a0, %lo(D_8002DEBC) # addiu $a0, $a0, -0x2144 +/* 0350C4 7F000594 3C048003 */ lui $a0, %hi(ptr_rifle_firing_animation_groups) +/* 0350C8 7F000598 0FC0011B */ jal sub_GAME_7F00046C +/* 0350CC 7F00059C 2484ED28 */ addiu $a0, %lo(ptr_rifle_firing_animation_groups) # addiu $a0, $a0, -0x12d8 +/* 0350D0 7F0005A0 3C048003 */ lui $a0, %hi(ptr_pistol_firing_animation_groups) +/* 0350D4 7F0005A4 0FC0011B */ jal sub_GAME_7F00046C +/* 0350D8 7F0005A8 2484F408 */ addiu $a0, %lo(ptr_pistol_firing_animation_groups) # addiu $a0, $a0, -0xbf8 +/* 0350DC 7F0005AC 3C048003 */ lui $a0, %hi(ptr_doubles_firing_animation_groups) +/* 0350E0 7F0005B0 0FC0011B */ jal sub_GAME_7F00046C +/* 0350E4 7F0005B4 2484F6E0 */ addiu $a0, %lo(ptr_doubles_firing_animation_groups) # addiu $a0, $a0, -0x920 +/* 0350E8 7F0005B8 3C048003 */ lui $a0, %hi(ptr_crouched_rifle_firing_animation_groups) +/* 0350EC 7F0005BC 0FC0011B */ jal sub_GAME_7F00046C +/* 0350F0 7F0005C0 2484F970 */ addiu $a0, %lo(ptr_crouched_rifle_firing_animation_groups) # addiu $a0, $a0, -0x690 +/* 0350F4 7F0005C4 3C048003 */ lui $a0, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 0350F8 7F0005C8 0FC0011B */ jal sub_GAME_7F00046C +/* 0350FC 7F0005CC 2484FCD8 */ addiu $a0, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a0, $a0, -0x328 +/* 035100 7F0005D0 3C048003 */ lui $a0, %hi(ptr_crouched_doubles_firing_animation_groups) +/* 035104 7F0005D4 0FC0011B */ jal sub_GAME_7F00046C +/* 035108 7F0005D8 2484FFF8 */ addiu $a0, %lo(ptr_crouched_doubles_firing_animation_groups) # addiu $a0, $a0, -8 +/* 03510C 7F0005DC 3C048003 */ lui $a0, %hi(D_80030078) +/* 035110 7F0005E0 0FC000CB */ jal sub_GAME_7F00032C +/* 035114 7F0005E4 24840078 */ addiu $a0, %lo(D_80030078) # addiu $a0, $a0, 0x78 +/* 035118 7F0005E8 3C048003 */ lui $a0, %hi(D_80030660) +/* 03511C 7F0005EC 0FC000CB */ jal sub_GAME_7F00032C +/* 035120 7F0005F0 24840660 */ addiu $a0, %lo(D_80030660) # addiu $a0, $a0, 0x660 +/* 035124 7F0005F4 3C128007 */ lui $s2, %hi(ptr_animation_table) +/* 035128 7F0005F8 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 +/* 03512C 7F0005FC 8E580000 */ lw $t8, ($s2) +/* 035130 7F000600 3C110000 */ lui $s1, %hi(0x00004018) # $s1, 0 +/* 035134 7F000604 26314018 */ addiu $s1, %lo(0x00004018) # addiu $s1, $s1, 0x4018 +/* 035138 7F000608 02382021 */ addu $a0, $s1, $t8 +/* 03513C 7F00060C 94860004 */ lhu $a2, 4($a0) +/* 035140 7F000610 00002825 */ move $a1, $zero +/* 035144 7F000614 0FC000A4 */ jal sub_GAME_7F000290 +/* 035148 7F000618 24C6FFFF */ addiu $a2, $a2, -1 +/* 03514C 7F00061C 44822000 */ mtc1 $v0, $f4 +/* 035150 7F000620 8E500000 */ lw $s0, ($s2) +/* 035154 7F000624 3C018005 */ lui $at, %hi(F32_8004ED78) +/* 035158 7F000628 468021A0 */ cvt.s.w $f6, $f4 +/* 03515C 7F00062C 0230C821 */ addu $t9, $s1, $s0 +/* 035160 7F000630 97280004 */ lhu $t0, 4($t9) +/* 035164 7F000634 C434ED78 */ lwc1 $f20, %lo(F32_8004ED78)($at) +/* 035168 7F000638 44885000 */ mtc1 $t0, $f10 +/* 03516C 7F00063C 46143202 */ mul.s $f8, $f6, $f20 +/* 035170 7F000640 05010005 */ bgez $t0, .L7F000658 +/* 035174 7F000644 46805420 */ cvt.s.w $f16, $f10 +/* 035178 7F000648 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03517C 7F00064C 44819000 */ mtc1 $at, $f18 +/* 035180 7F000650 00000000 */ nop +/* 035184 7F000654 46128400 */ add.s $f16, $f16, $f18 +.L7F000658: +/* 035188 7F000658 46104103 */ div.s $f4, $f8, $f16 +/* 03518C 7F00065C 3C030000 */ lui $v1, %hi(0x000040D4) # $v1, 0 +/* 035190 7F000660 3C018003 */ lui $at, %hi(D_80030984) +/* 035194 7F000664 246340D4 */ addiu $v1, %lo(0x000040D4) # addiu $v1, $v1, 0x40d4 +/* 035198 7F000668 00702021 */ addu $a0, $v1, $s0 +/* 03519C 7F00066C 00002825 */ move $a1, $zero +/* 0351A0 7F000670 E4240984 */ swc1 $f4, %lo(D_80030984)($at) +/* 0351A4 7F000674 94860004 */ lhu $a2, 4($a0) +/* 0351A8 7F000678 AFA30034 */ sw $v1, 0x34($sp) +/* 0351AC 7F00067C 0FC000A4 */ jal sub_GAME_7F000290 +/* 0351B0 7F000680 24C6FFFF */ addiu $a2, $a2, -1 +/* 0351B4 7F000684 44823000 */ mtc1 $v0, $f6 +/* 0351B8 7F000688 8FA30034 */ lw $v1, 0x34($sp) +/* 0351BC 7F00068C 8E500000 */ lw $s0, ($s2) +/* 0351C0 7F000690 468032A0 */ cvt.s.w $f10, $f6 +/* 0351C4 7F000694 00704821 */ addu $t1, $v1, $s0 +/* 0351C8 7F000698 952A0004 */ lhu $t2, 4($t1) +/* 0351CC 7F00069C 448A4000 */ mtc1 $t2, $f8 +/* 0351D0 7F0006A0 46145482 */ mul.s $f18, $f10, $f20 +/* 0351D4 7F0006A4 05410005 */ bgez $t2, .L7F0006BC +/* 0351D8 7F0006A8 46804420 */ cvt.s.w $f16, $f8 +/* 0351DC 7F0006AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0351E0 7F0006B0 44812000 */ mtc1 $at, $f4 +/* 0351E4 7F0006B4 00000000 */ nop +/* 0351E8 7F0006B8 46048400 */ add.s $f16, $f16, $f4 +.L7F0006BC: +/* 0351EC 7F0006BC 46109183 */ div.s $f6, $f18, $f16 +/* 0351F0 7F0006C0 3C110000 */ lui $s1, %hi(0x00004070) # $s1, 0 +/* 0351F4 7F0006C4 3C018003 */ lui $at, %hi(D_80030988) +/* 0351F8 7F0006C8 26314070 */ addiu $s1, %lo(0x00004070) # addiu $s1, $s1, 0x4070 +/* 0351FC 7F0006CC 02302021 */ addu $a0, $s1, $s0 +/* 035200 7F0006D0 00002825 */ move $a1, $zero +/* 035204 7F0006D4 E4260988 */ swc1 $f6, %lo(D_80030988)($at) +/* 035208 7F0006D8 94860004 */ lhu $a2, 4($a0) +/* 03520C 7F0006DC 0FC000A4 */ jal sub_GAME_7F000290 +/* 035210 7F0006E0 24C6FFFF */ addiu $a2, $a2, -1 +/* 035214 7F0006E4 44825000 */ mtc1 $v0, $f10 +/* 035218 7F0006E8 8E500000 */ lw $s0, ($s2) +/* 03521C 7F0006EC 46805220 */ cvt.s.w $f8, $f10 +/* 035220 7F0006F0 02305821 */ addu $t3, $s1, $s0 +/* 035224 7F0006F4 956C0004 */ lhu $t4, 4($t3) +/* 035228 7F0006F8 448C9000 */ mtc1 $t4, $f18 +/* 03522C 7F0006FC 46144102 */ mul.s $f4, $f8, $f20 +/* 035230 7F000700 05810005 */ bgez $t4, .L7F000718 +/* 035234 7F000704 46809420 */ cvt.s.w $f16, $f18 +/* 035238 7F000708 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03523C 7F00070C 44813000 */ mtc1 $at, $f6 +/* 035240 7F000710 00000000 */ nop +/* 035244 7F000714 46068400 */ add.s $f16, $f16, $f6 +.L7F000718: +/* 035248 7F000718 46102283 */ div.s $f10, $f4, $f16 +/* 03524C 7F00071C 3C030001 */ lui $v1, %hi(0x00008204) # $v1, 1 +/* 035250 7F000720 3C018003 */ lui $at, %hi(D_8003098C) +/* 035254 7F000724 24638204 */ addiu $v1, %lo(0x00008204) # addiu $v1, $v1, -0x7dfc +/* 035258 7F000728 00702021 */ addu $a0, $v1, $s0 +/* 03525C 7F00072C 00002825 */ move $a1, $zero +/* 035260 7F000730 E42A098C */ swc1 $f10, %lo(D_8003098C)($at) +/* 035264 7F000734 94860004 */ lhu $a2, 4($a0) +/* 035268 7F000738 AFA30034 */ sw $v1, 0x34($sp) +/* 03526C 7F00073C 0FC000A4 */ jal sub_GAME_7F000290 +/* 035270 7F000740 24C6FFFF */ addiu $a2, $a2, -1 +/* 035274 7F000744 44824000 */ mtc1 $v0, $f8 +/* 035278 7F000748 8FA30034 */ lw $v1, 0x34($sp) +/* 03527C 7F00074C 8E500000 */ lw $s0, ($s2) +/* 035280 7F000750 468044A0 */ cvt.s.w $f18, $f8 +/* 035284 7F000754 00706821 */ addu $t5, $v1, $s0 +/* 035288 7F000758 95AE0004 */ lhu $t6, 4($t5) +/* 03528C 7F00075C 448E2000 */ mtc1 $t6, $f4 +/* 035290 7F000760 46149182 */ mul.s $f6, $f18, $f20 +/* 035294 7F000764 05C10005 */ bgez $t6, .L7F00077C +/* 035298 7F000768 46802420 */ cvt.s.w $f16, $f4 +/* 03529C 7F00076C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0352A0 7F000770 44815000 */ mtc1 $at, $f10 +/* 0352A4 7F000774 00000000 */ nop +/* 0352A8 7F000778 460A8400 */ add.s $f16, $f16, $f10 +.L7F00077C: +/* 0352AC 7F00077C 46103203 */ div.s $f8, $f6, $f16 +/* 0352B0 7F000780 3C070000 */ lui $a3, %hi(0x0000777C) # $a3, 0 +/* 0352B4 7F000784 3C018003 */ lui $at, %hi(D_80030990) +/* 0352B8 7F000788 24E7777C */ addiu $a3, %lo(0x0000777C) # addiu $a3, $a3, 0x777c +/* 0352BC 7F00078C 00F02021 */ addu $a0, $a3, $s0 +/* 0352C0 7F000790 00002825 */ move $a1, $zero +/* 0352C4 7F000794 E4280990 */ swc1 $f8, %lo(D_80030990)($at) +/* 0352C8 7F000798 94860004 */ lhu $a2, 4($a0) +/* 0352CC 7F00079C AFA70038 */ sw $a3, 0x38($sp) +/* 0352D0 7F0007A0 0FC000A4 */ jal sub_GAME_7F000290 +/* 0352D4 7F0007A4 24C6FFFF */ addiu $a2, $a2, -1 +/* 0352D8 7F0007A8 44829000 */ mtc1 $v0, $f18 +/* 0352DC 7F0007AC 8FA70038 */ lw $a3, 0x38($sp) +/* 0352E0 7F0007B0 8E500000 */ lw $s0, ($s2) +/* 0352E4 7F0007B4 46809120 */ cvt.s.w $f4, $f18 +/* 0352E8 7F0007B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0352EC 7F0007BC 00F07821 */ addu $t7, $a3, $s0 +/* 0352F0 7F0007C0 95F80004 */ lhu $t8, 4($t7) +/* 0352F4 7F0007C4 44983000 */ mtc1 $t8, $f6 +/* 0352F8 7F0007C8 46142282 */ mul.s $f10, $f4, $f20 +/* 0352FC 7F0007CC 07010004 */ bgez $t8, .L7F0007E0 +/* 035300 7F0007D0 46803420 */ cvt.s.w $f16, $f6 +/* 035304 7F0007D4 44814000 */ mtc1 $at, $f8 +/* 035308 7F0007D8 00000000 */ nop +/* 03530C 7F0007DC 46088400 */ add.s $f16, $f16, $f8 +.L7F0007E0: +/* 035310 7F0007E0 46105483 */ div.s $f18, $f10, $f16 +/* 035314 7F0007E4 3C110000 */ lui $s1, %hi(0x000077D4) # $s1, 0 +/* 035318 7F0007E8 3C018003 */ lui $at, %hi(D_80030994) +/* 03531C 7F0007EC 263177D4 */ addiu $s1, %lo(0x000077D4) # addiu $s1, $s1, 0x77d4 +/* 035320 7F0007F0 02302021 */ addu $a0, $s1, $s0 +/* 035324 7F0007F4 00002825 */ move $a1, $zero +/* 035328 7F0007F8 E4320994 */ swc1 $f18, %lo(D_80030994)($at) +/* 03532C 7F0007FC 94860004 */ lhu $a2, 4($a0) +/* 035330 7F000800 0FC000A4 */ jal sub_GAME_7F000290 +/* 035334 7F000804 24C6FFFF */ addiu $a2, $a2, -1 +/* 035338 7F000808 44822000 */ mtc1 $v0, $f4 +/* 03533C 7F00080C 8E500000 */ lw $s0, ($s2) +/* 035340 7F000810 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035344 7F000814 468021A0 */ cvt.s.w $f6, $f4 +/* 035348 7F000818 0230C821 */ addu $t9, $s1, $s0 +/* 03534C 7F00081C 97280004 */ lhu $t0, 4($t9) +/* 035350 7F000820 44885000 */ mtc1 $t0, $f10 +/* 035354 7F000824 46143202 */ mul.s $f8, $f6, $f20 +/* 035358 7F000828 05010004 */ bgez $t0, .L7F00083C +/* 03535C 7F00082C 46805420 */ cvt.s.w $f16, $f10 +/* 035360 7F000830 44819000 */ mtc1 $at, $f18 +/* 035364 7F000834 00000000 */ nop +/* 035368 7F000838 46128400 */ add.s $f16, $f16, $f18 +.L7F00083C: +/* 03536C 7F00083C 46104103 */ div.s $f4, $f8, $f16 +/* 035370 7F000840 3C030001 */ lui $v1, %hi(0x000084C4) # $v1, 1 +/* 035374 7F000844 3C018003 */ lui $at, %hi(D_80030998) +/* 035378 7F000848 246384C4 */ addiu $v1, %lo(0x000084C4) # addiu $v1, $v1, -0x7b3c +/* 03537C 7F00084C 00702021 */ addu $a0, $v1, $s0 +/* 035380 7F000850 00002825 */ move $a1, $zero +/* 035384 7F000854 E4240998 */ swc1 $f4, %lo(D_80030998)($at) +/* 035388 7F000858 94860004 */ lhu $a2, 4($a0) +/* 03538C 7F00085C AFA30038 */ sw $v1, 0x38($sp) +/* 035390 7F000860 0FC000A4 */ jal sub_GAME_7F000290 +/* 035394 7F000864 24C6FFFF */ addiu $a2, $a2, -1 +/* 035398 7F000868 44823000 */ mtc1 $v0, $f6 +/* 03539C 7F00086C 8FA30038 */ lw $v1, 0x38($sp) +/* 0353A0 7F000870 8E500000 */ lw $s0, ($s2) +/* 0353A4 7F000874 468032A0 */ cvt.s.w $f10, $f6 +/* 0353A8 7F000878 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0353AC 7F00087C 00704821 */ addu $t1, $v1, $s0 +/* 0353B0 7F000880 952A0004 */ lhu $t2, 4($t1) +/* 0353B4 7F000884 448A4000 */ mtc1 $t2, $f8 +/* 0353B8 7F000888 46145482 */ mul.s $f18, $f10, $f20 +/* 0353BC 7F00088C 05410004 */ bgez $t2, .L7F0008A0 +/* 0353C0 7F000890 46804420 */ cvt.s.w $f16, $f8 +/* 0353C4 7F000894 44812000 */ mtc1 $at, $f4 +/* 0353C8 7F000898 00000000 */ nop +/* 0353CC 7F00089C 46048400 */ add.s $f16, $f16, $f4 +.L7F0008A0: +/* 0353D0 7F0008A0 46109183 */ div.s $f6, $f18, $f16 +/* 0353D4 7F0008A4 3C070001 */ lui $a3, %hi(0x00008520) # $a3, 1 +/* 0353D8 7F0008A8 3C018003 */ lui $at, %hi(D_8003099C) +/* 0353DC 7F0008AC 24E78520 */ addiu $a3, %lo(0x00008520) # addiu $a3, $a3, -0x7ae0 +/* 0353E0 7F0008B0 00F02021 */ addu $a0, $a3, $s0 +/* 0353E4 7F0008B4 00002825 */ move $a1, $zero +/* 0353E8 7F0008B8 E426099C */ swc1 $f6, %lo(D_8003099C)($at) +/* 0353EC 7F0008BC 94860004 */ lhu $a2, 4($a0) +/* 0353F0 7F0008C0 AFA70030 */ sw $a3, 0x30($sp) +/* 0353F4 7F0008C4 0FC000A4 */ jal sub_GAME_7F000290 +/* 0353F8 7F0008C8 24C6FFFF */ addiu $a2, $a2, -1 +/* 0353FC 7F0008CC 44825000 */ mtc1 $v0, $f10 +/* 035400 7F0008D0 8FA70030 */ lw $a3, 0x30($sp) +/* 035404 7F0008D4 8E500000 */ lw $s0, ($s2) +/* 035408 7F0008D8 46805220 */ cvt.s.w $f8, $f10 +/* 03540C 7F0008DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035410 7F0008E0 00F05821 */ addu $t3, $a3, $s0 +/* 035414 7F0008E4 956C0004 */ lhu $t4, 4($t3) +/* 035418 7F0008E8 448C9000 */ mtc1 $t4, $f18 +/* 03541C 7F0008EC 46144102 */ mul.s $f4, $f8, $f20 +/* 035420 7F0008F0 05810004 */ bgez $t4, .L7F000904 +/* 035424 7F0008F4 46809420 */ cvt.s.w $f16, $f18 +/* 035428 7F0008F8 44813000 */ mtc1 $at, $f6 +/* 03542C 7F0008FC 00000000 */ nop +/* 035430 7F000900 46068400 */ add.s $f16, $f16, $f6 +.L7F000904: +/* 035434 7F000904 46102283 */ div.s $f10, $f4, $f16 +/* 035438 7F000908 3C018003 */ lui $at, %hi(D_800309A0) +/* 03543C 7F00090C 02302021 */ addu $a0, $s1, $s0 +/* 035440 7F000910 00002825 */ move $a1, $zero +/* 035444 7F000914 E42A09A0 */ swc1 $f10, %lo(D_800309A0)($at) +/* 035448 7F000918 94860004 */ lhu $a2, 4($a0) +/* 03544C 7F00091C 0FC000A4 */ jal sub_GAME_7F000290 +/* 035450 7F000920 24C6FFFF */ addiu $a2, $a2, -1 +/* 035454 7F000924 44824000 */ mtc1 $v0, $f8 +/* 035458 7F000928 8E4D0000 */ lw $t5, ($s2) +/* 03545C 7F00092C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035460 7F000930 468044A0 */ cvt.s.w $f18, $f8 +/* 035464 7F000934 022D7021 */ addu $t6, $s1, $t5 +/* 035468 7F000938 95CF0004 */ lhu $t7, 4($t6) +/* 03546C 7F00093C 448F2000 */ mtc1 $t7, $f4 +/* 035470 7F000940 46149182 */ mul.s $f6, $f18, $f20 +/* 035474 7F000944 05E10004 */ bgez $t7, .L7F000958 +/* 035478 7F000948 46802420 */ cvt.s.w $f16, $f4 +/* 03547C 7F00094C 44815000 */ mtc1 $at, $f10 +/* 035480 7F000950 00000000 */ nop +/* 035484 7F000954 460A8400 */ add.s $f16, $f16, $f10 +.L7F000958: +/* 035488 7F000958 46103203 */ div.s $f8, $f6, $f16 +/* 03548C 7F00095C 8FBF002C */ lw $ra, 0x2c($sp) +/* 035490 7F000960 3C018003 */ lui $at, %hi(D_800309A4) +/* 035494 7F000964 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 035498 7F000968 8FB00020 */ lw $s0, 0x20($sp) +/* 03549C 7F00096C 8FB10024 */ lw $s1, 0x24($sp) +/* 0354A0 7F000970 8FB20028 */ lw $s2, 0x28($sp) +/* 0354A4 7F000974 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0354A8 7F000978 03E00008 */ jr $ra +/* 0354AC 7F00097C E42809A4 */ swc1 $f8, %lo(D_800309A4)($at) +) +#endif + + + +void sub_GAME_7F000980(void) { + sub_GAME_7F0009A0(); +} + + +extern char dword_CODE_bss_80075DC8[20][160]; // TODO: This seems like an array of 20 of these. Fix the other files? (Aliasing violation) + +void sub_GAME_7F0009A0(void) { + u32 *end = &dword_CODE_bss_80075DC8[20]; + u32 *ptr = &dword_CODE_bss_80075DC8[0]; + while(end > ptr) { + ptr[39] = 0; + ptr += 0x28; + } +} diff --git a/src/game/initactorpropstuff.h b/src/game/initactorpropstuff.h new file mode 100644 index 0000000..f82ce23 --- /dev/null +++ b/src/game/initactorpropstuff.h @@ -0,0 +1,8 @@ +#ifndef _INITACTORPROPSTUFF_H_ +#define _INITACTORPROPSTUFF_H_ + +#include "ultra64.h" + +void sub_GAME_7F0009A0(void); + +#endif diff --git a/src/game/initanitable.c b/src/game/initanitable.c new file mode 100644 index 0000000..6b9ccbf --- /dev/null +++ b/src/game/initanitable.c @@ -0,0 +1,164 @@ +#include "ultra64.h" + + +//bss +char dword_CODE_bss_80069170[0x2D0]; +OSMesgQueue animMsgQ; +char dword_CODE_bss_80069458[0xC0]; +OSMesg animMesg[8]; +s32 *ptr_animation_table; + + +//data +void * D_80029D60[] = {NULL, &dword_CODE_bss_80069170, &dword_CODE_bss_80069170}; + +s32 animation_table_ptrs1[] = { + 0x1C, 0x144, 0x214, 0x318, 0x3C4, 0x610, 0x814, 0x990, 0xB84, 0xDB4, + 0x1028, 0x1334, 0x1578, 0x17B4, 0x186C, 0x1984, 0x1A6C, 0x1B54, 0x1C9C, + 0x1E40, 0x1F84, 0x2134, 0x282C, 0x299C, 0x2E64, 0x2F94, 0x30B8, 0x31DC, + 0x32C8, 0x33AC, 0x34D4, 0x35C8, 0x36D8, 0x384C, 0x39C0, 0x3AF0, 0x3C10, + 0x3D04, 0x3D9C, 0x3FA0, 0x4018, 0x4070, 0x40D4, 0x4144, 0x4298, 0x42C8, + 0x4384, 0x4504, 0x4574, 0x45CC, 1, 1, 0x47BC, 0x4A40, 0x4CE0, 0x4F14, + 0x51C4, 0x540C, 0x54A0, 0x5554, 0x5684, 0x5744, 0x5964, 0x5D10, 0x5EF0, + 0x60D4, 0x6254, 0x637C, 0x6484, 0x6554, 0x6644, 0x6738, 0x6808, 0x694C, + 0x6A18, 0x6C18, 0x6D50, 0x6F08, 0x700C, 0x71D0, 0x7304, 0x7430, 0x74A4, + 0x7514, 0x7588, 0x75EC, 0x7650, 0x76B8, 0x7714, 0x777C, 0x77D4, 1, 1, + 1, 1, 1, 1, 0x78C8, 0x7AA8, 0x7C4C, 0x7D04, 0x7DD8, 0x7F0C, 0x7FB4, 0x8080, + 0x8164, 0x8194, 0x8204, 0x8274, 0x82E0, 0x8340, 0x83A4, 0x8404, 0x845C, + 0x84C4, 0x8520, 0x8698, 0x8800, 0x8978, 0x8AAC, 0x8BF0, 0x8D28, 0x8E1C, + 0x8F2C, 0x9084, 0x9194, 0x92EC, 0x9444, 0x95FC, 0x97BC, 0x98C8, 0x9A2C, + 0x9B48, 0x9C4C, 0x9D5C, 0x9E44, 0x9F48, 0xA094, 0xA1B8, 0xA2F8, 0xA424, + 0xA538, 0xA650, 1, 1, 1, 1, 0xA6B0, 0xA704, 0xA8BC, 0xA94C, 0xA9DC, 0xACAC, + 0xB174, 0xB2AC, 0xB528, 0xB6B0, 0xB7C8, 0xB854, 0xB9A8, 0xBC40, 0xBF80, + 0xC224, 0xC410, 0xC544, 0xC838, 0xCB78, 0xCE6C, 0xD0A8, 1, 0xD348, 0xD54C, + 0xD5E4, 0xD668, 0xD6F8, 0xD728, 0xD89C, 0xDBE4, 0xDD20, 0xE05C, 0xE08C, + 0xE0BC, 0xE18C, 0 }; + +s32 animation_table_ptrs2[] = { 0xE470, 0xE5F4, 0xE7C0, 0 }; + + +#ifdef NONMATCHING +void expand_ani_table_entries(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_ani_table_entries +/* 035530 7F000A00 8C830000 */ lw $v1, ($a0) +/* 035534 7F000A04 3C068007 */ lui $a2, %hi(ptr_animation_table) +/* 035538 7F000A08 00801025 */ move $v0, $a0 +/* 03553C 7F000A0C 10600017 */ beqz $v1, .L7F000A6C +/* 035540 7F000A10 24C69538 */ addiu $a2, %lo(ptr_animation_table) # addiu $a2, $a2, -0x6ac8 +/* 035544 7F000A14 8C830000 */ lw $v1, ($a0) +/* 035548 7F000A18 24050001 */ li $a1, 1 +.L7F000A1C: +/* 03554C 7F000A1C 50A3000E */ beql $a1, $v1, .L7F000A58 +/* 035550 7F000A20 8C430004 */ lw $v1, 4($v0) +/* 035554 7F000A24 8CCE0000 */ lw $t6, ($a2) +/* 035558 7F000A28 006E7821 */ addu $t7, $v1, $t6 +/* 03555C 7F000A2C AC4F0000 */ sw $t7, ($v0) +/* 035560 7F000A30 8CD90000 */ lw $t9, ($a2) +/* 035564 7F000A34 8DF80008 */ lw $t8, 8($t7) +/* 035568 7F000A38 03194021 */ addu $t0, $t8, $t9 +/* 03556C 7F000A3C ADE80008 */ sw $t0, 8($t7) +/* 035570 7F000A40 8C430000 */ lw $v1, ($v0) +/* 035574 7F000A44 8CCA0000 */ lw $t2, ($a2) +/* 035578 7F000A48 8C690010 */ lw $t1, 0x10($v1) +/* 03557C 7F000A4C 012A5821 */ addu $t3, $t1, $t2 +/* 035580 7F000A50 AC6B0010 */ sw $t3, 0x10($v1) +/* 035584 7F000A54 8C430004 */ lw $v1, 4($v0) +.L7F000A58: +/* 035588 7F000A58 24420004 */ addiu $v0, $v0, 4 +/* 03558C 7F000A5C 1460FFEF */ bnez $v1, .L7F000A1C +/* 035590 7F000A60 00000000 */ nop +/* 035594 7F000A64 00801025 */ move $v0, $a0 +/* 035598 7F000A68 8C830000 */ lw $v1, ($a0) +.L7F000A6C: +/* 03559C 7F000A6C 1060000D */ beqz $v1, .L7F000AA4 +/* 0355A0 7F000A70 24050001 */ li $a1, 1 +/* 0355A4 7F000A74 3C040012 */ lui $a0, %hi(_animation_tableSegmentRomStart) # $a0, 0x12 +/* 0355A8 7F000A78 24844AC0 */ addiu $a0, %lo(_animation_tableSegmentRomStart) # addiu $a0, $a0, 0x4ac0 +/* 0355AC 7F000A7C 8C430000 */ lw $v1, ($v0) +.L7F000A80: +/* 0355B0 7F000A80 50A30005 */ beql $a1, $v1, .L7F000A98 +/* 0355B4 7F000A84 8C430004 */ lw $v1, 4($v0) +/* 0355B8 7F000A88 8C6C0000 */ lw $t4, ($v1) +/* 0355BC 7F000A8C 01846821 */ addu $t5, $t4, $a0 +/* 0355C0 7F000A90 AC6D0000 */ sw $t5, ($v1) +/* 0355C4 7F000A94 8C430004 */ lw $v1, 4($v0) +.L7F000A98: +/* 0355C8 7F000A98 24420004 */ addiu $v0, $v0, 4 +/* 0355CC 7F000A9C 1460FFF8 */ bnez $v1, .L7F000A80 +/* 0355D0 7F000AA0 00000000 */ nop +.L7F000AA4: +/* 0355D4 7F000AA4 03E00008 */ jr $ra +/* 0355D8 7F000AA8 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_load_expand_ani_table(void) { + s32 temp_a2; + ? temp_ret; + + // 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); + expand_ani_table_entries(&animation_table_ptrs1); + expand_ani_table_entries(&animation_table_ptrs2); +} +#else +GLOBAL_ASM( +.text +glabel alloc_load_expand_ani_table +/* 0355DC 7F000AAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0355E0 7F000AB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0355E4 7F000AB4 3C048007 */ lui $a0, %hi(animMsgQ) +/* 0355E8 7F000AB8 3C058007 */ lui $a1, %hi(animMesg) +/* 0355EC 7F000ABC 24A59518 */ addiu $a1, %lo(animMesg) # addiu $a1, $a1, -0x6ae8 +/* 0355F0 7F000AC0 24849440 */ addiu $a0, %lo(animMsgQ) # addiu $a0, $a0, -0x6bc0 +/* 0355F4 7F000AC4 0C0035B4 */ jal osCreateMesgQueue +/* 0355F8 7F000AC8 24060008 */ li $a2, 8 +/* 0355FC 7F000ACC 3C048003 */ lui $a0, %hi(D_80029D60) +/* 035600 7F000AD0 3C058007 */ lui $a1, %hi(animMsgQ) +/* 035604 7F000AD4 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069458) +/* 035608 7F000AD8 24C69458 */ addiu $a2, %lo(dword_CODE_bss_80069458) # addiu $a2, $a2, -0x6ba8 +/* 03560C 7F000ADC 24A59440 */ addiu $a1, %lo(animMsgQ) # addiu $a1, $a1, -0x6bc0 +/* 035610 7F000AE0 0FC00278 */ jal sub_GAME_7F0009E0 +/* 035614 7F000AE4 24849D60 */ addiu $a0, %lo(D_80029D60) # addiu $a0, $a0, -0x62a0 +/* 035618 7F000AE8 3C0E0001 */ lui $t6, %hi(0x0000E7E0) # $t6, 1 +/* 03561C 7F000AEC 3C0F0000 */ lui $t7, 0 +/* 035620 7F000AF0 25EF0000 */ addiu $t7, $t7, 0 +/* 035624 7F000AF4 25CEE7E0 */ addiu $t6, %lo(0x0000E7E0) # addiu $t6, $t6, -0x1820 +/* 035628 7F000AF8 01CF3023 */ subu $a2, $t6, $t7 +/* 03562C 7F000AFC 00C02025 */ move $a0, $a2 +/* 035630 7F000B00 AFA60018 */ sw $a2, 0x18($sp) +/* 035634 7F000B04 0C0025C8 */ jal mempAllocBytesInBank +/* 035638 7F000B08 24050006 */ li $a1, 6 +/* 03563C 7F000B0C 3C038007 */ lui $v1, %hi(ptr_animation_table) +/* 035640 7F000B10 24639538 */ addiu $v1, %lo(ptr_animation_table) # addiu $v1, $v1, -0x6ac8 +/* 035644 7F000B14 3C050029 */ lui $a1, %hi(_animation_dataSegmentRomStart) # $a1, 0x29 +/* 035648 7F000B18 AC620000 */ sw $v0, ($v1) +/* 03564C 7F000B1C 8FA60018 */ lw $a2, 0x18($sp) +/* 035650 7F000B20 24A5E980 */ addiu $a1, %lo(_animation_dataSegmentRomStart) # addiu $a1, $a1, -0x1680 +/* 035654 7F000B24 0C001707 */ jal romCopy +/* 035658 7F000B28 00402025 */ move $a0, $v0 +/* 03565C 7F000B2C 3C048003 */ lui $a0, %hi(animation_table_ptrs1) +/* 035660 7F000B30 0FC00280 */ jal expand_ani_table_entries +/* 035664 7F000B34 24849D6C */ addiu $a0, %lo(animation_table_ptrs1) # addiu $a0, $a0, -0x6294 +/* 035668 7F000B38 3C048003 */ lui $a0, %hi(animation_table_ptrs2) +/* 03566C 7F000B3C 0FC00280 */ jal expand_ani_table_entries +/* 035670 7F000B40 2484A04C */ addiu $a0, %lo(animation_table_ptrs2) # addiu $a0, $a0, -0x5fb4 +/* 035674 7F000B44 8FBF0014 */ lw $ra, 0x14($sp) +/* 035678 7F000B48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03567C 7F000B4C 03E00008 */ jr $ra +/* 035680 7F000B50 00000000 */ nop +) +#endif + diff --git a/src/game/initcameraandthrown.c b/src/game/initcameraandthrown.c new file mode 100644 index 0000000..0259153 --- /dev/null +++ b/src/game/initcameraandthrown.c @@ -0,0 +1,1632 @@ +#include "ultra64.h" + + + +// data +//D:8002A780 +u32 D_8002A780 = 0; +//D:8002A784 +u32 D_8002A784 = 0; +//D:8002A788 +u32 D_8002A788 = 0; + + + + + + +#ifdef NONMATCHING +void set_weapon_model_generated_thrown_object(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +.text +glabel set_weapon_model_generated_thrown_object +/* 03A240 7F005710 248EFFFD */ addiu $t6, $a0, -3 +/* 03A244 7F005714 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03A248 7F005718 2DC1002E */ sltiu $at, $t6, 0x2e +/* 03A24C 7F00571C AFBF0014 */ sw $ra, 0x14($sp) +/* 03A250 7F005720 1020001E */ beqz $at, .L7F00579C +/* 03A254 7F005724 2405FFFF */ li $a1, -1 +/* 03A258 7F005728 000E7080 */ sll $t6, $t6, 2 +/* 03A25C 7F00572C 3C018005 */ lui $at, %hi(projectile_ptr_table) +/* 03A260 7F005730 002E0821 */ addu $at, $at, $t6 +/* 03A264 7F005734 8C2EF0F0 */ lw $t6, %lo(projectile_ptr_table)($at) +/* 03A268 7F005738 01C00008 */ jr $t6 +/* 03A26C 7F00573C 00000000 */ nop +throwingknife: +/* 03A270 7F005740 10000016 */ b .L7F00579C +/* 03A274 7F005744 240500BA */ li $a1, 186 +grenade_launch_round: +/* 03A278 7F005748 10000014 */ b .L7F00579C +/* 03A27C 7F00574C 240500CB */ li $a1, 203 +rocket: +/* 03A280 7F005750 10000012 */ b .L7F00579C +/* 03A284 7F005754 240500CA */ li $a1, 202 +grenade: +/* 03A288 7F005758 10000010 */ b .L7F00579C +/* 03A28C 7F00575C 240500C4 */ li $a1, 196 +timed_mine: +/* 03A290 7F005760 1000000E */ b .L7F00579C +/* 03A294 7F005764 240500C9 */ li $a1, 201 +prox_mine: +/* 03A298 7F005768 1000000C */ b .L7F00579C +/* 03A29C 7F00576C 240500C8 */ li $a1, 200 +remote_mine: +/* 03A2A0 7F005770 1000000A */ b .L7F00579C +/* 03A2A4 7F005774 240500C7 */ li $a1, 199 +rocket_0: +/* 03A2A8 7F005778 10000008 */ b .L7F00579C +/* 03A2AC 7F00577C 240500CA */ li $a1, 202 +bombcase: +/* 03A2B0 7F005780 10000006 */ b .L7F00579C +/* 03A2B4 7F005784 240500E2 */ li $a1, 226 +plastique: +/* 03A2B8 7F005788 10000004 */ b .L7F00579C +/* 03A2BC 7F00578C 24050111 */ li $a1, 273 +bug: +/* 03A2C0 7F005790 10000002 */ b .L7F00579C +/* 03A2C4 7F005794 240500F5 */ li $a1, 245 +microcamera: +/* 03A2C8 7F005798 240500F6 */ li $a1, 246 +default: +.L7F00579C: +/* 03A2CC 7F00579C 04A00005 */ bltz $a1, .L7F0057B4 +/* 03A2D0 7F0057A0 00001025 */ move $v0, $zero +/* 03A2D4 7F0057A4 0FC15B0E */ jal load_model +/* 03A2D8 7F0057A8 00A02025 */ move $a0, $a1 +/* 03A2DC 7F0057AC 10000002 */ b .L7F0057B8 +/* 03A2E0 7F0057B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0057B4: +/* 03A2E4 7F0057B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0057B8: +/* 03A2E8 7F0057B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03A2EC 7F0057BC 03E00008 */ jr $ra +/* 03A2F0 7F0057C0 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void load_camera_intro_type_values(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel projectile_ptr_table +.word throwingknife +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word grenade_launch_round +.word rocket +.word grenade +.word timed_mine +.word prox_mine +.word remote_mine +.word default +.word default +.word rocket_0 +.word bombcase +.word plastique +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word bug +.word microcamera + + +/*8004f1a8*/ +glabel default_zoom_speed +.word 0x3f68ba2e + +glabel jpt_8004F1AC + .word spawn_point + .word weapon + .word ammo + .word swirling_intro_cam + .word intro_ani + .word cuff_char + .word fixed_cam + .word watch_time + .word credits + +glabel D_8004F1D0 +.word 0xb8d1b717 +glabel D_8004F1D4 +.word 0x40c90fdb +glabel D_8004F1D8 +.word 0x40c90fdb +glabel D_8004F1DC +.word 0x3e2e147c +glabel D_8004F1E0 +.word 0x3dccccd0 +.text +glabel load_camera_intro_type_values +/* 03A2F4 7F0057C4 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 03A2F8 7F0057C8 3C0F8003 */ lui $t7, %hi(D_8002A780) +/* 03A2FC 7F0057CC AFBF0034 */ sw $ra, 0x34($sp) +/* 03A300 7F0057D0 AFB20030 */ sw $s2, 0x30($sp) +/* 03A304 7F0057D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 03A308 7F0057D8 AFB00028 */ sw $s0, 0x28($sp) +/* 03A30C 7F0057DC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 03A310 7F0057E0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 03A314 7F0057E4 25EFA780 */ addiu $t7, %lo(D_8002A780) # addiu $t7, $t7, -0x5880 +/* 03A318 7F0057E8 8DE10000 */ lw $at, ($t7) +/* 03A31C 7F0057EC 27AE008C */ addiu $t6, $sp, 0x8c +/* 03A320 7F0057F0 8DE80004 */ lw $t0, 4($t7) +/* 03A324 7F0057F4 ADC10000 */ sw $at, ($t6) +/* 03A328 7F0057F8 8DE10008 */ lw $at, 8($t7) +/* 03A32C 7F0057FC ADC80004 */ sw $t0, 4($t6) +/* 03A330 7F005800 3C118003 */ lui $s1, %hi(resolution) +/* 03A334 7F005804 ADC10008 */ sw $at, 8($t6) +/* 03A338 7F005808 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 03A33C 7F00580C AC20A928 */ sw $zero, %lo(mission_kia_flag)($at) +/* 03A340 7F005810 3C018003 */ lui $at, %hi(camera_80036424) +/* 03A344 7F005814 3C108007 */ lui $s0, %hi(ptr_setup_intro) +/* 03A348 7F005818 AC206424 */ sw $zero, %lo(camera_80036424)($at) +/* 03A34C 7F00581C 26316428 */ addiu $s1, %lo(resolution) # addiu $s1, $s1, 0x6428 +/* 03A350 7F005820 8E105D08 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 03A354 7F005824 AE200000 */ sw $zero, ($s1) +/* 03A358 7F005828 3C018003 */ lui $at, %hi(camera_8003642C) +/* 03A35C 7F00582C 3C128003 */ lui $s2, %hi(camera_80036430) +/* 03A360 7F005830 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 03A364 7F005834 44802000 */ mtc1 $zero, $f4 +/* 03A368 7F005838 26526430 */ addiu $s2, %lo(camera_80036430) # addiu $s2, $s2, 0x6430 +/* 03A36C 7F00583C AE400000 */ sw $zero, ($s2) +/* 03A370 7F005840 3C018003 */ lui $at, %hi(camera_80036434) +/* 03A374 7F005844 AFA0007C */ sw $zero, 0x7c($sp) +/* 03A378 7F005848 AC206434 */ sw $zero, %lo(camera_80036434)($at) +/* 03A37C 7F00584C 0C001A57 */ jal get_stage_num +/* 03A380 7F005850 E7A40088 */ swc1 $f4, 0x88($sp) +/* 03A384 7F005854 24010036 */ li $at, 54 +/* 03A388 7F005858 1441000B */ bne $v0, $at, .L7F005888 +/* 03A38C 7F00585C 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4 +/* 03A390 7F005860 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0 +/* 03A394 7F005864 0C0025C8 */ jal mempAllocBytesInBank +/* 03A398 7F005868 24050004 */ li $a1, 4 +/* 03A39C 7F00586C 244A003F */ addiu $t2, $v0, 0x3f +/* 03A3A0 7F005870 2401FFC0 */ li $at, -64 +/* 03A3A4 7F005874 AE220000 */ sw $v0, ($s1) +/* 03A3A8 7F005878 01415824 */ and $t3, $t2, $at +/* 03A3AC 7F00587C 240C0001 */ li $t4, 1 +/* 03A3B0 7F005880 AE2B0000 */ sw $t3, ($s1) +/* 03A3B4 7F005884 AE4C0000 */ sw $t4, ($s2) +.L7F005888: +/* 03A3B8 7F005888 3C018003 */ lui $at, %hi(camera_80036438) +/* 03A3BC 7F00588C AC206438 */ sw $zero, %lo(camera_80036438)($at) +/* 03A3C0 7F005890 3C018003 */ lui $at, %hi(D_8003643C) +/* 03A3C4 7F005894 AC20643C */ sw $zero, %lo(D_8003643C)($at) +/* 03A3C8 7F005898 3C018003 */ lui $at, %hi(D_80036440) +/* 03A3CC 7F00589C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 03A3D0 7F0058A0 AC206440 */ sw $zero, %lo(D_80036440)($at) +/* 03A3D4 7F0058A4 44803000 */ mtc1 $zero, $f6 +/* 03A3D8 7F0058A8 44804000 */ mtc1 $zero, $f8 +/* 03A3DC 7F0058AC 44805000 */ mtc1 $zero, $f10 +/* 03A3E0 7F0058B0 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 03A3E4 7F0058B4 3C018003 */ lui $at, %hi(D_80036444) +/* 03A3E8 7F0058B8 E4460000 */ swc1 $f6, ($v0) +/* 03A3EC 7F0058BC E4480004 */ swc1 $f8, 4($v0) +/* 03A3F0 7F0058C0 E44A0008 */ swc1 $f10, 8($v0) +/* 03A3F4 7F0058C4 AC206444 */ sw $zero, %lo(D_80036444)($at) +/* 03A3F8 7F0058C8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A3FC 7F0058CC AC209C68 */ sw $zero, %lo(dword_CODE_bss_80079C68)($at) +/* 03A400 7F0058D0 3C018003 */ lui $at, %hi(in_tank_flag) +/* 03A404 7F0058D4 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 03A408 7F0058D8 3C018003 */ lui $at, %hi(D_8003644C) +/* 03A40C 7F0058DC AC20644C */ sw $zero, %lo(D_8003644C)($at) +/* 03A410 7F0058E0 44808000 */ mtc1 $zero, $f16 +/* 03A414 7F0058E4 3C018003 */ lui $at, %hi(ptr_playerstank) +/* 03A418 7F0058E8 AC206450 */ sw $zero, %lo(ptr_playerstank)($at) +/* 03A41C 7F0058EC 3C018003 */ lui $at, %hi(D_80036454) +/* 03A420 7F0058F0 3C038003 */ lui $v1, %hi(SFX_80036458) +/* 03A424 7F0058F4 E4306454 */ swc1 $f16, %lo(D_80036454)($at) +/* 03A428 7F0058F8 44809000 */ mtc1 $zero, $f18 +/* 03A42C 7F0058FC 24636458 */ addiu $v1, %lo(SFX_80036458) # addiu $v1, $v1, 0x6458 +/* 03A430 7F005900 44802000 */ mtc1 $zero, $f4 +/* 03A434 7F005904 AC600000 */ sw $zero, ($v1) +/* 03A438 7F005908 AC600004 */ sw $zero, 4($v1) +/* 03A43C 7F00590C 3C018003 */ lui $at, %hi(D_80036460) +/* 03A440 7F005910 E4326460 */ swc1 $f18, %lo(D_80036460)($at) +/* 03A444 7F005914 44803000 */ mtc1 $zero, $f6 +/* 03A448 7F005918 3C018003 */ lui $at, %hi(D_80036464) +/* 03A44C 7F00591C E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 03A450 7F005920 44804000 */ mtc1 $zero, $f8 +/* 03A454 7F005924 3C018003 */ lui $at, %hi(D_80036468) +/* 03A458 7F005928 E4266468 */ swc1 $f6, %lo(D_80036468)($at) +/* 03A45C 7F00592C 44805000 */ mtc1 $zero, $f10 +/* 03A460 7F005930 3C018003 */ lui $at, %hi(D_8003646C) +/* 03A464 7F005934 E428646C */ swc1 $f8, %lo(D_8003646C)($at) +/* 03A468 7F005938 44808000 */ mtc1 $zero, $f16 +/* 03A46C 7F00593C 3C018003 */ lui $at, %hi(D_80036470) +/* 03A470 7F005940 E42A6470 */ swc1 $f10, %lo(D_80036470)($at) +/* 03A474 7F005944 44809000 */ mtc1 $zero, $f18 +/* 03A478 7F005948 3C018003 */ lui $at, %hi(D_80036474) +/* 03A47C 7F00594C E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 03A480 7F005950 44802000 */ mtc1 $zero, $f4 +/* 03A484 7F005954 3C018003 */ lui $at, %hi(D_80036478) +/* 03A488 7F005958 E4326478 */ swc1 $f18, %lo(D_80036478)($at) +/* 03A48C 7F00595C 3C018003 */ lui $at, %hi(D_8003647C) +/* 03A490 7F005960 E424647C */ swc1 $f4, %lo(D_8003647C)($at) +/* 03A494 7F005964 44803000 */ mtc1 $zero, $f6 +/* 03A498 7F005968 3C018003 */ lui $at, %hi(D_80036480) +/* 03A49C 7F00596C AC206480 */ sw $zero, %lo(D_80036480)($at) +/* 03A4A0 7F005970 44804000 */ mtc1 $zero, $f8 +/* 03A4A4 7F005974 3C018003 */ lui $at, %hi(D_80036484) +/* 03A4A8 7F005978 E4266484 */ swc1 $f6, %lo(D_80036484)($at) +/* 03A4AC 7F00597C 3C018003 */ lui $at, %hi(D_80036488) +/* 03A4B0 7F005980 E4286488 */ swc1 $f8, %lo(D_80036488)($at) +/* 03A4B4 7F005984 3C018003 */ lui $at, %hi(D_8003648C) +/* 03A4B8 7F005988 AC20648C */ sw $zero, %lo(D_8003648C)($at) +/* 03A4BC 7F00598C 3C018003 */ lui $at, %hi(D_800364B0) +/* 03A4C0 7F005990 240D0001 */ li $t5, 1 +/* 03A4C4 7F005994 AC2D64B0 */ sw $t5, %lo(D_800364B0)($at) +/* 03A4C8 7F005998 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 03A4CC 7F00599C AC2064B4 */ sw $zero, %lo(disable_player_pickups_flag)($at) +/* 03A4D0 7F0059A0 3C018003 */ lui $at, %hi(cameramode) +/* 03A4D4 7F0059A4 AC206494 */ sw $zero, %lo(cameramode)($at) +/* 03A4D8 7F0059A8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 03A4DC 7F0059AC AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 03A4E0 7F0059B0 3C018003 */ lui $at, %hi(D_8003649C) +/* 03A4E4 7F0059B4 AC20649C */ sw $zero, %lo(D_8003649C)($at) +/* 03A4E8 7F0059B8 44805000 */ mtc1 $zero, $f10 +/* 03A4EC 7F0059BC 3C018003 */ lui $at, %hi(stop_time_flag) +/* 03A4F0 7F0059C0 AC2064A0 */ sw $zero, %lo(stop_time_flag)($at) +/* 03A4F4 7F0059C4 3C018003 */ lui $at, %hi(D_800364A4) +/* 03A4F8 7F0059C8 E42A64A4 */ swc1 $f10, %lo(D_800364A4)($at) +/* 03A4FC 7F0059CC 3C018003 */ lui $at, %hi(D_800364A8) +/* 03A500 7F0059D0 24190001 */ li $t9, 1 +/* 03A504 7F0059D4 AC3964A8 */ sw $t9, %lo(D_800364A8)($at) +/* 03A508 7F0059D8 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A50C 7F0059DC AC2064AC */ sw $zero, %lo(D_800364AC)($at) +/* 03A510 7F0059E0 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A514 7F0059E4 AC2064C0 */ sw $zero, %lo(ptr_random06cam_entry)($at) +/* 03A518 7F0059E8 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A51C 7F0059EC AC2064B8 */ sw $zero, %lo(D_800364B8)($at) +/* 03A520 7F0059F0 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A524 7F0059F4 AC2064BC */ sw $zero, %lo(D_800364BC)($at) +/* 03A528 7F0059F8 3C018008 */ lui $at, %hi(mission_timer) +/* 03A52C 7F0059FC 3C118008 */ lui $s1, %hi(watch_time_0) +/* 03A530 7F005A00 AC209A20 */ sw $zero, %lo(mission_timer)($at) +/* 03A534 7F005A04 26319A24 */ addiu $s1, %lo(watch_time_0) # addiu $s1, $s1, -0x65dc +/* 03A538 7F005A08 AE200000 */ sw $zero, ($s1) +/* 03A53C 7F005A0C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A540 7F005A10 AC206514 */ sw $zero, %lo(D_80036514)($at) +/* 03A544 7F005A14 3C018005 */ lui $at, %hi(default_zoom_speed) +/* 03A548 7F005A18 C430F1A8 */ lwc1 $f16, %lo(default_zoom_speed)($at) +/* 03A54C 7F005A1C 3C018003 */ lui $at, %hi(watch_transition_time) +/* 03A550 7F005A20 E43065A8 */ swc1 $f16, %lo(watch_transition_time)($at) +/* 03A554 7F005A24 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A558 7F005A28 AC2099E4 */ sw $zero, %lo(starting_left_weapon)($at) +/* 03A55C 7F005A2C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A560 7F005A30 120000F0 */ beqz $s0, .L7F005DF4 +/* 03A564 7F005A34 AC2099E0 */ sw $zero, %lo(starting_right_weapon)($at) +/* 03A568 7F005A38 8E020000 */ lw $v0, ($s0) +/* 03A56C 7F005A3C 24010009 */ li $at, 9 +/* 03A570 7F005A40 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A574 7F005A44 104100EB */ beq $v0, $at, .L7F005DF4 +/* 03A578 7F005A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03A57C 7F005A4C 4481B000 */ mtc1 $at, $f22 +/* 03A580 7F005A50 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03A584 7F005A54 4481A000 */ mtc1 $at, $f20 +/* 03A588 7F005A58 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A58C 7F005A5C 2C410009 */ sltiu $at, $v0, 9 +.L7F005A60: +/* 03A590 7F005A60 102000DF */ beqz $at, .L7F005DE0 +/* 03A594 7F005A64 0002C080 */ sll $t8, $v0, 2 +/* 03A598 7F005A68 3C018005 */ lui $at, %hi(jpt_8004F1AC) +/* 03A59C 7F005A6C 00380821 */ addu $at, $at, $t8 +/* 03A5A0 7F005A70 8C38F1AC */ lw $t8, %lo(jpt_8004F1AC)($at) +/* 03A5A4 7F005A74 03000008 */ jr $t8 +/* 03A5A8 7F005A78 00000000 */ nop +spawn_point: +/* 03A5AC 7F005A7C 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 03A5B0 7F005A80 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 03A5B4 7F005A84 11C00018 */ beqz $t6, .L7F005AE8 +/* 03A5B8 7F005A88 00000000 */ nop +/* 03A5BC 7F005A8C 0FC30288 */ jal check_ramrom_flags +/* 03A5C0 7F005A90 00000000 */ nop +/* 03A5C4 7F005A94 8E0F0008 */ lw $t7, 8($s0) +/* 03A5C8 7F005A98 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 03A5CC 7F005A9C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C28) +/* 03A5D0 7F005AA0 144F0011 */ bne $v0, $t7, .L7F005AE8 +/* 03A5D4 7F005AA4 00000000 */ nop +/* 03A5D8 7F005AA8 8E080004 */ lw $t0, 4($s0) +/* 03A5DC 7F005AAC 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C68) +/* 03A5E0 7F005AB0 8C429C68 */ lw $v0, %lo(dword_CODE_bss_80079C68)($v0) +/* 03A5E4 7F005AB4 00084880 */ sll $t1, $t0, 2 +/* 03A5E8 7F005AB8 01284823 */ subu $t1, $t1, $t0 +/* 03A5EC 7F005ABC 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 03A5F0 7F005AC0 00094880 */ sll $t1, $t1, 2 +/* 03A5F4 7F005AC4 01284823 */ subu $t1, $t1, $t0 +/* 03A5F8 7F005AC8 00094880 */ sll $t1, $t1, 2 +/* 03A5FC 7F005ACC 00026080 */ sll $t4, $v0, 2 +/* 03A600 7F005AD0 002C0821 */ addu $at, $at, $t4 +/* 03A604 7F005AD4 012A5821 */ addu $t3, $t1, $t2 +/* 03A608 7F005AD8 AC2B9C28 */ sw $t3, %lo(dword_CODE_bss_80079C28)($at) +/* 03A60C 7F005ADC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A610 7F005AE0 244D0001 */ addiu $t5, $v0, 1 +/* 03A614 7F005AE4 AC2D9C68 */ sw $t5, %lo(dword_CODE_bss_80079C68)($at) +.L7F005AE8: +/* 03A618 7F005AE8 100000BE */ b .L7F005DE4 +/* 03A61C 7F005AEC 2610000C */ addiu $s0, $s0, 0xc +weapon: +/* 03A620 7F005AF0 0FC30288 */ jal check_ramrom_flags +/* 03A624 7F005AF4 00000000 */ nop +/* 03A628 7F005AF8 8E19000C */ lw $t9, 0xc($s0) +/* 03A62C 7F005AFC 1459001C */ bne $v0, $t9, .L7F005B70 +/* 03A630 7F005B00 00000000 */ nop +/* 03A634 7F005B04 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A638 7F005B08 8E040004 */ lw $a0, 4($s0) +/* 03A63C 7F005B0C 8E040008 */ lw $a0, 8($s0) +/* 03A640 7F005B10 04800008 */ bltz $a0, .L7F005B34 +/* 03A644 7F005B14 00000000 */ nop +/* 03A648 7F005B18 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A64C 7F005B1C 00000000 */ nop +/* 03A650 7F005B20 8E040004 */ lw $a0, 4($s0) +/* 03A654 7F005B24 0FC23143 */ jal add_doubles_item_to_inventory +/* 03A658 7F005B28 8E050008 */ lw $a1, 8($s0) +/* 03A65C 7F005B2C 10000004 */ b .L7F005B40 +/* 03A660 7F005B30 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B34: +/* 03A664 7F005B34 0FC23122 */ jal add_item_to_inventory +/* 03A668 7F005B38 8E040004 */ lw $a0, 4($s0) +/* 03A66C 7F005B3C 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B40: +/* 03A670 7F005B40 1700000B */ bnez $t8, .L7F005B70 +/* 03A674 7F005B44 00000000 */ nop +/* 03A678 7F005B48 8E0E0004 */ lw $t6, 4($s0) +/* 03A67C 7F005B4C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A680 7F005B50 240F0001 */ li $t7, 1 +/* 03A684 7F005B54 AC2E99E0 */ sw $t6, %lo(starting_right_weapon)($at) +/* 03A688 7F005B58 8E040008 */ lw $a0, 8($s0) +/* 03A68C 7F005B5C AFAF007C */ sw $t7, 0x7c($sp) +/* 03A690 7F005B60 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A694 7F005B64 04800002 */ bltz $a0, .L7F005B70 +/* 03A698 7F005B68 00000000 */ nop +/* 03A69C 7F005B6C AC2499E4 */ sw $a0, %lo(starting_left_weapon)($at) +.L7F005B70: +/* 03A6A0 7F005B70 1000009C */ b .L7F005DE4 +/* 03A6A4 7F005B74 26100010 */ addiu $s0, $s0, 0x10 +ammo: +/* 03A6A8 7F005B78 0FC30288 */ jal check_ramrom_flags +/* 03A6AC 7F005B7C 00000000 */ nop +/* 03A6B0 7F005B80 8E08000C */ lw $t0, 0xc($s0) +/* 03A6B4 7F005B84 14480004 */ bne $v0, $t0, .L7F005B98 +/* 03A6B8 7F005B88 00000000 */ nop +/* 03A6BC 7F005B8C 8E040004 */ lw $a0, 4($s0) +/* 03A6C0 7F005B90 0FC1A44C */ jal give_cur_player_ammo +/* 03A6C4 7F005B94 8E050008 */ lw $a1, 8($s0) +.L7F005B98: +/* 03A6C8 7F005B98 10000092 */ b .L7F005DE4 +/* 03A6CC 7F005B9C 26100010 */ addiu $s0, $s0, 0x10 +swirling_intro_cam: +/* 03A6D0 7F005BA0 3C098003 */ lui $t1, %hi(D_800364AC) +/* 03A6D4 7F005BA4 8D2964AC */ lw $t1, %lo(D_800364AC)($t1) +/* 03A6D8 7F005BA8 02001025 */ move $v0, $s0 +/* 03A6DC 7F005BAC 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A6E0 7F005BB0 55200003 */ bnezl $t1, .L7F005BC0 +/* 03A6E4 7F005BB4 8C4A0008 */ lw $t2, 8($v0) +/* 03A6E8 7F005BB8 AC3064AC */ sw $s0, %lo(D_800364AC)($at) +/* 03A6EC 7F005BBC 8C4A0008 */ lw $t2, 8($v0) +.L7F005BC0: +/* 03A6F0 7F005BC0 8C4B000C */ lw $t3, 0xc($v0) +/* 03A6F4 7F005BC4 8C4C0010 */ lw $t4, 0x10($v0) +/* 03A6F8 7F005BC8 448A9000 */ mtc1 $t2, $f18 +/* 03A6FC 7F005BCC 448B4000 */ mtc1 $t3, $f8 +/* 03A700 7F005BD0 8C4D0014 */ lw $t5, 0x14($v0) +/* 03A704 7F005BD4 46809120 */ cvt.s.w $f4, $f18 +/* 03A708 7F005BD8 448C9000 */ mtc1 $t4, $f18 +/* 03A70C 7F005BDC 8C590018 */ lw $t9, 0x18($v0) +/* 03A710 7F005BE0 26100020 */ addiu $s0, $s0, 0x20 +/* 03A714 7F005BE4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A718 7F005BE8 448D4000 */ mtc1 $t5, $f8 +/* 03A71C 7F005BEC 46142183 */ div.s $f6, $f4, $f20 +/* 03A720 7F005BF0 46809120 */ cvt.s.w $f4, $f18 +/* 03A724 7F005BF4 44999000 */ mtc1 $t9, $f18 +/* 03A728 7F005BF8 46145403 */ div.s $f16, $f10, $f20 +/* 03A72C 7F005BFC E4460008 */ swc1 $f6, 8($v0) +/* 03A730 7F005C00 468042A0 */ cvt.s.w $f10, $f8 +/* 03A734 7F005C04 46142183 */ div.s $f6, $f4, $f20 +/* 03A738 7F005C08 E450000C */ swc1 $f16, 0xc($v0) +/* 03A73C 7F005C0C 46809120 */ cvt.s.w $f4, $f18 +/* 03A740 7F005C10 46145403 */ div.s $f16, $f10, $f20 +/* 03A744 7F005C14 E4460010 */ swc1 $f6, 0x10($v0) +/* 03A748 7F005C18 46142183 */ div.s $f6, $f4, $f20 +/* 03A74C 7F005C1C E4500014 */ swc1 $f16, 0x14($v0) +/* 03A750 7F005C20 10000070 */ b .L7F005DE4 +/* 03A754 7F005C24 E4460018 */ swc1 $f6, 0x18($v0) +intro_ani: +/* 03A758 7F005C28 8E180004 */ lw $t8, 4($s0) +/* 03A75C 7F005C2C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A760 7F005C30 26100008 */ addiu $s0, $s0, 8 +/* 03A764 7F005C34 1000006B */ b .L7F005DE4 +/* 03A768 7F005C38 AC386514 */ sw $t8, %lo(D_80036514)($at) +cuff_char: +/* 03A76C 7F005C3C 8E0E0004 */ lw $t6, 4($s0) +/* 03A770 7F005C40 8E4F0000 */ lw $t7, ($s2) +/* 03A774 7F005C44 26100008 */ addiu $s0, $s0, 8 +/* 03A778 7F005C48 10000066 */ b .L7F005DE4 +/* 03A77C 7F005C4C ADEE041C */ sw $t6, 0x41c($t7) +fixed_cam: +/* 03A780 7F005C50 0FC26C54 */ jal get_cur_playernum +/* 03A784 7F005C54 00000000 */ nop +/* 03A788 7F005C58 1440002C */ bnez $v0, .L7F005D0C +/* 03A78C 7F005C5C 3C088003 */ lui $t0, %hi(D_800364B8) +/* 03A790 7F005C60 8D0864B8 */ lw $t0, %lo(D_800364B8)($t0) +/* 03A794 7F005C64 3C098003 */ lui $t1, %hi(D_800364BC) +/* 03A798 7F005C68 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A79C 7F005C6C AE080024 */ sw $t0, 0x24($s0) +/* 03A7A0 7F005C70 8D2964BC */ lw $t1, %lo(D_800364BC)($t1) +/* 03A7A4 7F005C74 AC3064B8 */ sw $s0, %lo(D_800364B8)($at) +/* 03A7A8 7F005C78 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A7AC 7F005C7C 252A0001 */ addiu $t2, $t1, 1 +/* 03A7B0 7F005C80 AC2A64BC */ sw $t2, %lo(D_800364BC)($at) +/* 03A7B4 7F005C84 8E0B0004 */ lw $t3, 4($s0) +/* 03A7B8 7F005C88 8E0C0008 */ lw $t4, 8($s0) +/* 03A7BC 7F005C8C 8E0D000C */ lw $t5, 0xc($s0) +/* 03A7C0 7F005C90 448B4000 */ mtc1 $t3, $f8 +/* 03A7C4 7F005C94 448C9000 */ mtc1 $t4, $f18 +/* 03A7C8 7F005C98 8E190010 */ lw $t9, 0x10($s0) +/* 03A7CC 7F005C9C 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7D0 7F005CA0 448D4000 */ mtc1 $t5, $f8 +/* 03A7D4 7F005CA4 8E180014 */ lw $t8, 0x14($s0) +/* 03A7D8 7F005CA8 9604001E */ lhu $a0, 0x1e($s0) +/* 03A7DC 7F005CAC 46809120 */ cvt.s.w $f4, $f18 +/* 03A7E0 7F005CB0 44999000 */ mtc1 $t9, $f18 +/* 03A7E4 7F005CB4 46165403 */ div.s $f16, $f10, $f22 +/* 03A7E8 7F005CB8 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7EC 7F005CBC 44984000 */ mtc1 $t8, $f8 +/* 03A7F0 7F005CC0 46162183 */ div.s $f6, $f4, $f22 +/* 03A7F4 7F005CC4 E6100004 */ swc1 $f16, 4($s0) +/* 03A7F8 7F005CC8 46809120 */ cvt.s.w $f4, $f18 +/* 03A7FC 7F005CCC 46165403 */ div.s $f16, $f10, $f22 +/* 03A800 7F005CD0 E6060008 */ swc1 $f6, 8($s0) +/* 03A804 7F005CD4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A808 7F005CD8 46142183 */ div.s $f6, $f4, $f20 +/* 03A80C 7F005CDC E610000C */ swc1 $f16, 0xc($s0) +/* 03A810 7F005CE0 46145403 */ div.s $f16, $f10, $f20 +/* 03A814 7F005CE4 E6060010 */ swc1 $f6, 0x10($s0) +/* 03A818 7F005CE8 0FC30776 */ jal get_textptr_for_textID +/* 03A81C 7F005CEC E6100014 */ swc1 $f16, 0x14($s0) +/* 03A820 7F005CF0 8E030020 */ lw $v1, 0x20($s0) +/* 03A824 7F005CF4 AE02001C */ sw $v0, 0x1c($s0) +/* 03A828 7F005CF8 10600004 */ beqz $v1, .L7F005D0C +/* 03A82C 7F005CFC 00000000 */ nop +/* 03A830 7F005D00 0FC30776 */ jal get_textptr_for_textID +/* 03A834 7F005D04 3064FFFF */ andi $a0, $v1, 0xffff +/* 03A838 7F005D08 AE020020 */ sw $v0, 0x20($s0) +.L7F005D0C: +/* 03A83C 7F005D0C 10000035 */ b .L7F005DE4 +/* 03A840 7F005D10 26100028 */ addiu $s0, $s0, 0x28 +watch_time: +/* 03A844 7F005D14 AE200000 */ sw $zero, ($s1) +/* 03A848 7F005D18 8E040008 */ lw $a0, 8($s0) +/* 03A84C 7F005D1C 2401003C */ li $at, 60 +/* 03A850 7F005D20 5880000B */ blezl $a0, .L7F005D50 +/* 03A854 7F005D24 8E020004 */ lw $v0, 4($s0) +/* 03A858 7F005D28 0081001A */ div $zero, $a0, $at +/* 03A85C 7F005D2C 00007810 */ mfhi $t7 +/* 03A860 7F005D30 000F40C0 */ sll $t0, $t7, 3 +/* 03A864 7F005D34 010F4023 */ subu $t0, $t0, $t7 +/* 03A868 7F005D38 00084140 */ sll $t0, $t0, 5 +/* 03A86C 7F005D3C 010F4021 */ addu $t0, $t0, $t7 +/* 03A870 7F005D40 00084100 */ sll $t0, $t0, 4 +/* 03A874 7F005D44 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A878 7F005D48 AC289A24 */ sw $t0, %lo(watch_time_0)($at) +/* 03A87C 7F005D4C 8E020004 */ lw $v0, 4($s0) +.L7F005D50: +/* 03A880 7F005D50 2401000C */ li $at, 12 +/* 03A884 7F005D54 1840000B */ blez $v0, .L7F005D84 +/* 03A888 7F005D58 00000000 */ nop +/* 03A88C 7F005D5C 0041001A */ div $zero, $v0, $at +/* 03A890 7F005D60 00005810 */ mfhi $t3 +/* 03A894 7F005D64 3C010003 */ lui $at, (0x00034BC0 >> 16) # lui $at, 3 +/* 03A898 7F005D68 34214BC0 */ ori $at, (0x00034BC0 & 0xFFFF) # ori $at, $at, 0x4bc0 +/* 03A89C 7F005D6C 01610019 */ multu $t3, $at +/* 03A8A0 7F005D70 8E2A0000 */ lw $t2, ($s1) +/* 03A8A4 7F005D74 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A8A8 7F005D78 00006012 */ mflo $t4 +/* 03A8AC 7F005D7C 014C6821 */ addu $t5, $t2, $t4 +/* 03A8B0 7F005D80 AC2D9A24 */ sw $t5, %lo(watch_time_0)($at) +.L7F005D84: +/* 03A8B4 7F005D84 10000017 */ b .L7F005DE4 +/* 03A8B8 7F005D88 2610000C */ addiu $s0, $s0, 0xc +credits: +/* 03A8BC 7F005D8C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80075D28) +/* 03A8C0 7F005D90 8F395D28 */ lw $t9, %lo(dword_CODE_bss_80075D28)($t9) +/* 03A8C4 7F005D94 8E180004 */ lw $t8, 4($s0) +/* 03A8C8 7F005D98 3C018003 */ lui $at, %hi(D_80036440) +/* 03A8CC 7F005D9C 03381021 */ addu $v0, $t9, $t8 +/* 03A8D0 7F005DA0 AC226440 */ sw $v0, %lo(D_80036440)($at) +/* 03A8D4 7F005DA4 944F0000 */ lhu $t7, ($v0) +/* 03A8D8 7F005DA8 55E00005 */ bnezl $t7, .L7F005DC0 +/* 03A8DC 7F005DAC 9448000C */ lhu $t0, 0xc($v0) +/* 03A8E0 7F005DB0 944E0002 */ lhu $t6, 2($v0) +/* 03A8E4 7F005DB4 11C00008 */ beqz $t6, .L7F005DD8 +/* 03A8E8 7F005DB8 00000000 */ nop +/* 03A8EC 7F005DBC 9448000C */ lhu $t0, 0xc($v0) +.L7F005DC0: +/* 03A8F0 7F005DC0 2442000C */ addiu $v0, $v0, 0xc +/* 03A8F4 7F005DC4 5500FFFE */ bnezl $t0, .L7F005DC0 +/* 03A8F8 7F005DC8 9448000C */ lhu $t0, 0xc($v0) +/* 03A8FC 7F005DCC 94490002 */ lhu $t1, 2($v0) +/* 03A900 7F005DD0 5520FFFB */ bnezl $t1, .L7F005DC0 +/* 03A904 7F005DD4 9448000C */ lhu $t0, 0xc($v0) +.L7F005DD8: +/* 03A908 7F005DD8 10000002 */ b .L7F005DE4 +/* 03A90C 7F005DDC 26100008 */ addiu $s0, $s0, 8 +def_7F005A74: +.L7F005DE0: +/* 03A910 7F005DE0 26100004 */ addiu $s0, $s0, 4 +.L7F005DE4: +/* 03A914 7F005DE4 8E020000 */ lw $v0, ($s0) +/* 03A918 7F005DE8 24010009 */ li $at, 9 +/* 03A91C 7F005DEC 5441FF1C */ bnel $v0, $at, .L7F005A60 +/* 03A920 7F005DF0 2C410009 */ sltiu $at, $v0, 9 +.L7F005DF4: +/* 03A924 7F005DF4 3C028003 */ lui $v0, %hi(D_800364B8) +/* 03A928 7F005DF8 8C4264B8 */ lw $v0, %lo(D_800364B8)($v0) +/* 03A92C 7F005DFC 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A930 7F005E00 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A934 7F005E04 10400012 */ beqz $v0, .L7F005E50 +/* 03A938 7F005E08 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A93C 7F005E0C 0C002914 */ jal get_random_value +/* 03A940 7F005E10 AC2264C0 */ sw $v0, %lo(ptr_random06cam_entry)($at) +/* 03A944 7F005E14 3C0B8003 */ lui $t3, %hi(D_800364BC) +/* 03A948 7F005E18 8D6B64BC */ lw $t3, %lo(D_800364BC)($t3) +/* 03A94C 7F005E1C 004B001B */ divu $zero, $v0, $t3 +/* 03A950 7F005E20 00001810 */ mfhi $v1 +/* 03A954 7F005E24 15600002 */ bnez $t3, .L7F005E30 +/* 03A958 7F005E28 00000000 */ nop +/* 03A95C 7F005E2C 0007000D */ break 7 +.L7F005E30: +/* 03A960 7F005E30 18600007 */ blez $v1, .L7F005E50 +.L7F005E34: +/* 03A964 7F005E34 3C0A8003 */ lui $t2, %hi(ptr_random06cam_entry) +/* 03A968 7F005E38 8D4A64C0 */ lw $t2, %lo(ptr_random06cam_entry)($t2) +/* 03A96C 7F005E3C 2463FFFF */ addiu $v1, $v1, -1 +/* 03A970 7F005E40 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A974 7F005E44 8D4C0024 */ lw $t4, 0x24($t2) +/* 03A978 7F005E48 1C60FFFA */ bgtz $v1, .L7F005E34 +/* 03A97C 7F005E4C AC2C64C0 */ sw $t4, %lo(ptr_random06cam_entry)($at) +.L7F005E50: +/* 03A980 7F005E50 0FC23122 */ jal add_item_to_inventory +/* 03A984 7F005E54 24040001 */ li $a0, 1 +/* 03A988 7F005E58 8FAD007C */ lw $t5, 0x7c($sp) +/* 03A98C 7F005E5C 44809000 */ mtc1 $zero, $f18 +/* 03A990 7F005E60 15A00003 */ bnez $t5, .L7F005E70 +/* 03A994 7F005E64 24190001 */ li $t9, 1 +/* 03A998 7F005E68 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A99C 7F005E6C AC3999E0 */ sw $t9, %lo(starting_right_weapon)($at) +.L7F005E70: +/* 03A9A0 7F005E70 8E580000 */ lw $t8, ($s2) +/* 03A9A4 7F005E74 3C018005 */ lui $at, %hi(D_8004F1D0) +/* 03A9A8 7F005E78 44803000 */ mtc1 $zero, $f6 +/* 03A9AC 7F005E7C E7120078 */ swc1 $f18, 0x78($t8) +/* 03A9B0 7F005E80 8E4F0000 */ lw $t7, ($s2) +/* 03A9B4 7F005E84 C424F1D0 */ lwc1 $f4, %lo(D_8004F1D0)($at) +/* 03A9B8 7F005E88 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) +/* 03A9BC 7F005E8C E5E4007C */ swc1 $f4, 0x7c($t7) +/* 03A9C0 7F005E90 8E4E0000 */ lw $t6, ($s2) +/* 03A9C4 7F005E94 E5C60080 */ swc1 $f6, 0x80($t6) +/* 03A9C8 7F005E98 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) +/* 03A9CC 7F005E9C 5900002C */ blezl $t0, .L7F005F50 +/* 03A9D0 7F005EA0 27A4008C */ addiu $a0, $sp, 0x8c +/* 03A9D4 7F005EA4 0FC26919 */ jal get_num_players +/* 03A9D8 7F005EA8 00000000 */ nop +/* 03A9DC 7F005EAC 28410002 */ slti $at, $v0, 2 +/* 03A9E0 7F005EB0 14200008 */ bnez $at, .L7F005ED4 +/* 03A9E4 7F005EB4 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 03A9E8 7F005EB8 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 03A9EC 7F005EBC 59200006 */ blezl $t1, .L7F005ED8 +/* 03A9F0 7F005EC0 00001825 */ move $v1, $zero +/* 03A9F4 7F005EC4 0FC1E43C */ jal sub_GAME_7F0790F0 +/* 03A9F8 7F005EC8 00000000 */ nop +/* 03A9FC 7F005ECC 10000002 */ b .L7F005ED8 +/* 03AA00 7F005ED0 00401825 */ move $v1, $v0 +.L7F005ED4: +/* 03AA04 7F005ED4 00001825 */ move $v1, $zero +.L7F005ED8: +/* 03AA08 7F005ED8 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_80079C28) +/* 03AA0C 7F005EDC 254A9C28 */ addiu $t2, %lo(dword_CODE_bss_80079C28) # addiu $t2, $t2, -0x63d8 +/* 03AA10 7F005EE0 00035880 */ sll $t3, $v1, 2 +/* 03AA14 7F005EE4 016A8821 */ addu $s1, $t3, $t2 +/* 03AA18 7F005EE8 8E300000 */ lw $s0, ($s1) +/* 03AA1C 7F005EEC C6080000 */ lwc1 $f8, ($s0) +/* 03AA20 7F005EF0 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 03AA24 7F005EF4 C60A0008 */ lwc1 $f10, 8($s0) +/* 03AA28 7F005EF8 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA2C 7F005EFC E7AA0094 */ swc1 $f10, 0x94($sp) +/* 03AA30 7F005F00 8E040028 */ lw $a0, 0x28($s0) +/* 03AA34 7F005F04 8FA60094 */ lw $a2, 0x94($sp) +/* 03AA38 7F005F08 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AA3C 7F005F0C AFA40084 */ sw $a0, 0x84($sp) +/* 03AA40 7F005F10 8E420000 */ lw $v0, ($s2) +/* 03AA44 7F005F14 46000506 */ mov.s $f20, $f0 +/* 03AA48 7F005F18 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 03AA4C 7F005F1C 46008480 */ add.s $f18, $f16, $f0 +/* 03AA50 7F005F20 E7B20090 */ swc1 $f18, 0x90($sp) +/* 03AA54 7F005F24 E4400070 */ swc1 $f0, 0x70($v0) +/* 03AA58 7F005F28 8E300000 */ lw $s0, ($s1) +/* 03AA5C 7F005F2C C60C0018 */ lwc1 $f12, 0x18($s0) +/* 03AA60 7F005F30 0FC16A8C */ jal atan2f +/* 03AA64 7F005F34 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 03AA68 7F005F38 3C018005 */ lui $at, %hi(D_8004F1D4) +/* 03AA6C 7F005F3C C424F1D4 */ lwc1 $f4, %lo(D_8004F1D4)($at) +/* 03AA70 7F005F40 46002181 */ sub.s $f6, $f4, $f0 +/* 03AA74 7F005F44 10000011 */ b .L7F005F8C +/* 03AA78 7F005F48 E7A60088 */ swc1 $f6, 0x88($sp) +/* 03AA7C 7F005F4C 27A4008C */ addiu $a0, $sp, 0x8c +.L7F005F50: +/* 03AA80 7F005F50 27A50090 */ addiu $a1, $sp, 0x90 +/* 03AA84 7F005F54 27A60094 */ addiu $a2, $sp, 0x94 +/* 03AA88 7F005F58 0FC2BEDE */ jal sub_GAME_7F0AFB78 +/* 03AA8C 7F005F5C 3C0741F0 */ lui $a3, 0x41f0 +/* 03AA90 7F005F60 AFA20084 */ sw $v0, 0x84($sp) +/* 03AA94 7F005F64 00402025 */ move $a0, $v0 +/* 03AA98 7F005F68 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA9C 7F005F6C 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AAA0 7F005F70 8FA60094 */ lw $a2, 0x94($sp) +/* 03AAA4 7F005F74 8E420000 */ lw $v0, ($s2) +/* 03AAA8 7F005F78 46000506 */ mov.s $f20, $f0 +/* 03AAAC 7F005F7C C44829BC */ lwc1 $f8, 0x29bc($v0) +/* 03AAB0 7F005F80 46004280 */ add.s $f10, $f8, $f0 +/* 03AAB4 7F005F84 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 03AAB8 7F005F88 E4400070 */ swc1 $f0, 0x70($v0) +.L7F005F8C: +/* 03AABC 7F005F8C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 03AAC0 7F005F90 44819000 */ mtc1 $at, $f18 +/* 03AAC4 7F005F94 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 03AAC8 7F005F98 3C018005 */ lui $at, %hi(D_8004F1D8) +/* 03AACC 7F005F9C C426F1D8 */ lwc1 $f6, %lo(D_8004F1D8)($at) +/* 03AAD0 7F005FA0 46128102 */ mul.s $f4, $f16, $f18 +/* 03AAD4 7F005FA4 8E4C0000 */ lw $t4, ($s2) +/* 03AAD8 7F005FA8 3C018005 */ lui $at, %hi(D_8004F1DC) +/* 03AADC 7F005FAC 27A5008C */ addiu $a1, $sp, 0x8c +/* 03AAE0 7F005FB0 46062203 */ div.s $f8, $f4, $f6 +/* 03AAE4 7F005FB4 E5880148 */ swc1 $f8, 0x148($t4) +/* 03AAE8 7F005FB8 8E4D0000 */ lw $t5, ($s2) +/* 03AAEC 7F005FBC E5B40074 */ swc1 $f20, 0x74($t5) +/* 03AAF0 7F005FC0 C42AF1DC */ lwc1 $f10, %lo(D_8004F1DC)($at) +/* 03AAF4 7F005FC4 8E590000 */ lw $t9, ($s2) +/* 03AAF8 7F005FC8 460AA403 */ div.s $f16, $f20, $f10 +/* 03AAFC 7F005FCC E730006C */ swc1 $f16, 0x6c($t9) +/* 03AB00 7F005FD0 8E440000 */ lw $a0, ($s2) +/* 03AB04 7F005FD4 8FA60084 */ lw $a2, 0x84($sp) +/* 03AB08 7F005FD8 0FC1F1CC */ jal change_player_pos_to_target +/* 03AB0C 7F005FDC 24840488 */ addiu $a0, $a0, 0x488 +/* 03AB10 7F005FE0 0FC15FAB */ jal sinf +/* 03AB14 7F005FE4 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB18 7F005FE8 8E580000 */ lw $t8, ($s2) +/* 03AB1C 7F005FEC 46000487 */ neg.s $f18, $f0 +/* 03AB20 7F005FF0 44802000 */ mtc1 $zero, $f4 +/* 03AB24 7F005FF4 E7120498 */ swc1 $f18, 0x498($t8) +/* 03AB28 7F005FF8 8E4F0000 */ lw $t7, ($s2) +/* 03AB2C 7F005FFC E5E4049C */ swc1 $f4, 0x49c($t7) +/* 03AB30 7F006000 0FC15FA8 */ jal cosf +/* 03AB34 7F006004 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB38 7F006008 8E4E0000 */ lw $t6, ($s2) +/* 03AB3C 7F00600C 3C018003 */ lui $at, %hi(D_800364D0) +/* 03AB40 7F006010 E5C004A0 */ swc1 $f0, 0x4a0($t6) +/* 03AB44 7F006014 0FC225C6 */ jal sub_GAME_7F089718 +/* 03AB48 7F006018 C42C64D0 */ lwc1 $f12, %lo(D_800364D0)($at) +/* 03AB4C 7F00601C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA0) +/* 03AB50 7F006020 AC209DA0 */ sw $zero, %lo(dword_CODE_bss_80079DA0)($at) +/* 03AB54 7F006024 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA4) +/* 03AB58 7F006028 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079DA8) +/* 03AB5C 7F00602C 3C038008 */ lui $v1, %hi(dword_CODE_bss_80079DC8) +/* 03AB60 7F006030 24639DC8 */ addiu $v1, %lo(dword_CODE_bss_80079DC8) # addiu $v1, $v1, -0x6238 +/* 03AB64 7F006034 24429DA8 */ addiu $v0, %lo(dword_CODE_bss_80079DA8) # addiu $v0, $v0, -0x6258 +/* 03AB68 7F006038 AC209DA4 */ sw $zero, %lo(dword_CODE_bss_80079DA4)($at) +.L7F00603C: +/* 03AB6C 7F00603C 24420010 */ addiu $v0, $v0, 0x10 +/* 03AB70 7F006040 AC40FFF4 */ sw $zero, -0xc($v0) +/* 03AB74 7F006044 AC40FFF8 */ sw $zero, -8($v0) +/* 03AB78 7F006048 AC40FFFC */ sw $zero, -4($v0) +/* 03AB7C 7F00604C 1443FFFB */ bne $v0, $v1, .L7F00603C +/* 03AB80 7F006050 AC40FFF0 */ sw $zero, -0x10($v0) +/* 03AB84 7F006054 0FC228CC */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 03AB88 7F006058 00000000 */ nop +/* 03AB8C 7F00605C 0FC22A40 */ jal sub_GAME_7F08A900 +/* 03AB90 7F006060 00000000 */ nop +/* 03AB94 7F006064 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 03AB98 7F006068 00000000 */ nop +/* 03AB9C 7F00606C 8E480000 */ lw $t0, ($s2) +/* 03ABA0 7F006070 240A0006 */ li $t2, 6 +/* 03ABA4 7F006074 AD0200A8 */ sw $v0, 0xa8($t0) +/* 03ABA8 7F006078 8E490000 */ lw $t1, ($s2) +/* 03ABAC 7F00607C 8D2B00A8 */ lw $t3, 0xa8($t1) +/* 03ABB0 7F006080 AD600004 */ sw $zero, 4($t3) +/* 03ABB4 7F006084 8E4C0000 */ lw $t4, ($s2) +/* 03ABB8 7F006088 8D8D00A8 */ lw $t5, 0xa8($t4) +/* 03ABBC 7F00608C A1AA0000 */ sb $t2, ($t5) +/* 03ABC0 7F006090 8E590000 */ lw $t9, ($s2) +/* 03ABC4 7F006094 C7A0008C */ lwc1 $f0, 0x8c($sp) +/* 03ABC8 7F006098 E7200408 */ swc1 $f0, 0x408($t9) +/* 03ABCC 7F00609C 8E580000 */ lw $t8, ($s2) +/* 03ABD0 7F0060A0 8F0F00A8 */ lw $t7, 0xa8($t8) +/* 03ABD4 7F0060A4 E5E00008 */ swc1 $f0, 8($t7) +/* 03ABD8 7F0060A8 8E4E0000 */ lw $t6, ($s2) +/* 03ABDC 7F0060AC C7A00090 */ lwc1 $f0, 0x90($sp) +/* 03ABE0 7F0060B0 E5C0040C */ swc1 $f0, 0x40c($t6) +/* 03ABE4 7F0060B4 8E480000 */ lw $t0, ($s2) +/* 03ABE8 7F0060B8 8D0900A8 */ lw $t1, 0xa8($t0) +/* 03ABEC 7F0060BC E520000C */ swc1 $f0, 0xc($t1) +/* 03ABF0 7F0060C0 8E4B0000 */ lw $t3, ($s2) +/* 03ABF4 7F0060C4 C7A00094 */ lwc1 $f0, 0x94($sp) +/* 03ABF8 7F0060C8 E5600410 */ swc1 $f0, 0x410($t3) +/* 03ABFC 7F0060CC 8E4C0000 */ lw $t4, ($s2) +/* 03AC00 7F0060D0 8D8A00A8 */ lw $t2, 0xa8($t4) +/* 03AC04 7F0060D4 E5400010 */ swc1 $f0, 0x10($t2) +/* 03AC08 7F0060D8 8E590000 */ lw $t9, ($s2) +/* 03AC0C 7F0060DC 8FAD0084 */ lw $t5, 0x84($sp) +/* 03AC10 7F0060E0 8F3800A8 */ lw $t8, 0xa8($t9) +/* 03AC14 7F0060E4 AF0D0014 */ sw $t5, 0x14($t8) +/* 03AC18 7F0060E8 8E4F0000 */ lw $t7, ($s2) +/* 03AC1C 7F0060EC 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 03AC20 7F0060F0 8DE400A8 */ lw $a0, 0xa8($t7) +/* 03AC24 7F0060F4 8E4E0000 */ lw $t6, ($s2) +/* 03AC28 7F0060F8 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 03AC2C 7F0060FC 8DC400A8 */ lw $a0, 0xa8($t6) +/* 03AC30 7F006100 8E420000 */ lw $v0, ($s2) +/* 03AC34 7F006104 3C018005 */ lui $at, %hi(D_8004F1E0) +/* 03AC38 7F006108 C420F1E0 */ lwc1 $f0, %lo(D_8004F1E0)($at) +/* 03AC3C 7F00610C C44604B4 */ lwc1 $f6, 0x4b4($v0) +/* 03AC40 7F006110 46003203 */ div.s $f8, $f6, $f0 +/* 03AC44 7F006114 E44803B8 */ swc1 $f8, 0x3b8($v0) +/* 03AC48 7F006118 8E420000 */ lw $v0, ($s2) +/* 03AC4C 7F00611C C44A04B8 */ lwc1 $f10, 0x4b8($v0) +/* 03AC50 7F006120 46005403 */ div.s $f16, $f10, $f0 +/* 03AC54 7F006124 E45003BC */ swc1 $f16, 0x3bc($v0) +/* 03AC58 7F006128 8E420000 */ lw $v0, ($s2) +/* 03AC5C 7F00612C C45204BC */ lwc1 $f18, 0x4bc($v0) +/* 03AC60 7F006130 46009103 */ div.s $f4, $f18, $f0 +/* 03AC64 7F006134 0FC26919 */ jal get_num_players +/* 03AC68 7F006138 E44403C0 */ swc1 $f4, 0x3c0($v0) +/* 03AC6C 7F00613C 24010001 */ li $at, 1 +/* 03AC70 7F006140 14410005 */ bne $v0, $at, .L7F006158 +/* 03AC74 7F006144 00000000 */ nop +/* 03AC78 7F006148 0FC1EA6E */ jal set_camera_mode +/* 03AC7C 7F00614C 24040001 */ li $a0, 1 +/* 03AC80 7F006150 10000003 */ b .L7F006160 +/* 03AC84 7F006154 00000000 */ nop +.L7F006158: +/* 03AC88 7F006158 0FC1EA6E */ jal set_camera_mode +/* 03AC8C 7F00615C 24040009 */ li $a0, 9 +.L7F006160: +/* 03AC90 7F006160 3C048003 */ lui $a0, %hi(D_800364D8) +/* 03AC94 7F006164 248464D8 */ addiu $a0, %lo(D_800364D8) # addiu $a0, $a0, 0x64d8 +/* 03AC98 7F006168 00004080 */ sll $t0, $zero, 2 +/* 03AC9C 7F00616C 00884821 */ addu $t1, $a0, $t0 +/* 03ACA0 7F006170 8D2B0000 */ lw $t3, ($t1) +/* 03ACA4 7F006174 3C038003 */ lui $v1, %hi(D_8003650C) +/* 03ACA8 7F006178 2463650C */ addiu $v1, %lo(D_8003650C) # addiu $v1, $v1, 0x650c +/* 03ACAC 7F00617C AC600000 */ sw $zero, ($v1) +/* 03ACB0 7F006180 11600009 */ beqz $t3, .L7F0061A8 +/* 03ACB4 7F006184 00001025 */ move $v0, $zero +/* 03ACB8 7F006188 244C0001 */ addiu $t4, $v0, 1 +.L7F00618C: +/* 03ACBC 7F00618C 000C5080 */ sll $t2, $t4, 2 +/* 03ACC0 7F006190 008AC821 */ addu $t9, $a0, $t2 +/* 03ACC4 7F006194 8F2D0000 */ lw $t5, ($t9) +/* 03ACC8 7F006198 AC6C0000 */ sw $t4, ($v1) +/* 03ACCC 7F00619C 01801025 */ move $v0, $t4 +/* 03ACD0 7F0061A0 55A0FFFA */ bnezl $t5, .L7F00618C +/* 03ACD4 7F0061A4 244C0001 */ addiu $t4, $v0, 1 +.L7F0061A8: +/* 03ACD8 7F0061A8 8E4F0000 */ lw $t7, ($s2) +/* 03ACDC 7F0061AC 24180001 */ li $t8, 1 +/* 03ACE0 7F0061B0 3C018003 */ lui $at, %hi(D_80036510) +/* 03ACE4 7F0061B4 ADF80420 */ sw $t8, 0x420($t7) +/* 03ACE8 7F0061B8 8E4E0000 */ lw $t6, ($s2) +/* 03ACEC 7F0061BC ADC00424 */ sw $zero, 0x424($t6) +/* 03ACF0 7F0061C0 8E480000 */ lw $t0, ($s2) +/* 03ACF4 7F0061C4 AD000428 */ sw $zero, 0x428($t0) +/* 03ACF8 7F0061C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 03ACFC 7F0061CC 8FB20030 */ lw $s2, 0x30($sp) +/* 03AD00 7F0061D0 8FB1002C */ lw $s1, 0x2c($sp) +/* 03AD04 7F0061D4 8FB00028 */ lw $s0, 0x28($sp) +/* 03AD08 7F0061D8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 03AD0C 7F0061DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 03AD10 7F0061E0 AC206510 */ sw $zero, %lo(D_80036510)($at) +/* 03AD14 7F0061E4 03E00008 */ jr $ra +/* 03AD18 7F0061E8 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel projectile_ptr_table +.word throwingknife +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word grenade_launch_round +.word rocket +.word grenade +.word timed_mine +.word prox_mine +.word remote_mine +.word default +.word default +.word rocket_0 +.word bombcase +.word plastique +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word bug +.word microcamera + + +/*8004f1a8*/ +glabel default_zoom_speed +.word 0x3f68ba2e + +glabel jpt_8004F1AC + .word spawn_point + .word weapon + .word ammo + .word swirling_intro_cam + .word intro_ani + .word cuff_char + .word fixed_cam + .word watch_time + .word credits + +glabel D_8004F1D0 +.word 0xb8d1b717 +glabel D_8004F1D4 +.word 0x40c90fdb +glabel D_8004F1D8 +.word 0x40c90fdb +glabel D_8004F1DC +.word 0x3e2e147c +glabel D_8004F1E0 +.word 0x3dccccd0 +.text +glabel load_camera_intro_type_values +/* 03A354 7F0057E4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 03A358 7F0057E8 3C0F8003 */ lui $t7, %hi(D_8002A780) # $t7, 0x8003 +/* 03A35C 7F0057EC AFBF003C */ sw $ra, 0x3c($sp) +/* 03A360 7F0057F0 AFB20038 */ sw $s2, 0x38($sp) +/* 03A364 7F0057F4 AFB10034 */ sw $s1, 0x34($sp) +/* 03A368 7F0057F8 AFB00030 */ sw $s0, 0x30($sp) +/* 03A36C 7F0057FC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 03A370 7F005800 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 03A374 7F005804 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 03A378 7F005808 25EFA7C0 */ addiu $t7, %lo(D_8002A780) # addiu $t7, $t7, -0x5840 +/* 03A37C 7F00580C 8DE10000 */ lw $at, ($t7) +/* 03A380 7F005810 27AE0094 */ addiu $t6, $sp, 0x94 +/* 03A384 7F005814 8DE80004 */ lw $t0, 4($t7) +/* 03A388 7F005818 ADC10000 */ sw $at, ($t6) +/* 03A38C 7F00581C 8DE10008 */ lw $at, 8($t7) +/* 03A390 7F005820 ADC80004 */ sw $t0, 4($t6) +/* 03A394 7F005824 3C118003 */ lui $s1, %hi(resolution) # $s1, 0x8003 +/* 03A398 7F005828 ADC10008 */ sw $at, 8($t6) +/* 03A39C 7F00582C 3C018003 */ lui $at, %hi(mission_kia_flag) # $at, 0x8003 +/* 03A3A0 7F005830 AC20A968 */ sw $zero, %lo(mission_kia_flag)($at) +/* 03A3A4 7F005834 3C018003 */ lui $at, %hi(camera_80036424) # $at, 0x8003 +/* 03A3A8 7F005838 3C108007 */ lui $s0, %hi(ptr_setup_intro) # $s0, 0x8007 +/* 03A3AC 7F00583C AC206464 */ sw $zero, %lo(camera_80036424)($at) +/* 03A3B0 7F005840 26316468 */ addiu $s1, %lo(resolution) # addiu $s1, $s1, 0x6468 +/* 03A3B4 7F005844 8E105D48 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 03A3B8 7F005848 AE200000 */ sw $zero, ($s1) +/* 03A3BC 7F00584C 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 03A3C0 7F005850 3C128003 */ lui $s2, %hi(camera_80036430) # $s2, 0x8003 +/* 03A3C4 7F005854 AC20646C */ sw $zero, %lo(camera_8003642C)($at) +/* 03A3C8 7F005858 4480C000 */ mtc1 $zero, $f24 +/* 03A3CC 7F00585C 26526470 */ addiu $s2, %lo(camera_80036430) # addiu $s2, $s2, 0x6470 +/* 03A3D0 7F005860 AE400000 */ sw $zero, ($s2) +/* 03A3D4 7F005864 3C018003 */ lui $at, %hi(camera_80036434) # $at, 0x8003 +/* 03A3D8 7F005868 AFA00084 */ sw $zero, 0x84($sp) +/* 03A3DC 7F00586C AC206474 */ sw $zero, %lo(camera_80036434)($at) +/* 03A3E0 7F005870 0C001A57 */ jal get_stage_num +/* 03A3E4 7F005874 E7B80090 */ swc1 $f24, 0x90($sp) +/* 03A3E8 7F005878 24010036 */ li $at, 54 +/* 03A3EC 7F00587C 1441000B */ bne $v0, $at, .L7F0058AC +/* 03A3F0 7F005880 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4 +/* 03A3F4 7F005884 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0 +/* 03A3F8 7F005888 0C0025CC */ jal mempAllocBytesInBank +/* 03A3FC 7F00588C 24050004 */ li $a1, 4 +/* 03A400 7F005890 244A003F */ addiu $t2, $v0, 0x3f +/* 03A404 7F005894 2401FFC0 */ li $at, -64 +/* 03A408 7F005898 AE220000 */ sw $v0, ($s1) +/* 03A40C 7F00589C 01415824 */ and $t3, $t2, $at +/* 03A410 7F0058A0 240C0001 */ li $t4, 1 +/* 03A414 7F0058A4 AE2B0000 */ sw $t3, ($s1) +/* 03A418 7F0058A8 AE4C0000 */ sw $t4, ($s2) +.L7F0058AC: +/* 03A41C 7F0058AC 3C018003 */ lui $at, %hi(camera_80036438) # $at, 0x8003 +/* 03A420 7F0058B0 AC206478 */ sw $zero, %lo(camera_80036438)($at) +/* 03A424 7F0058B4 3C018003 */ lui $at, %hi(D_8003643C) # $at, 0x8003 +/* 03A428 7F0058B8 AC20647C */ sw $zero, %lo(D_8003643C)($at) +/* 03A42C 7F0058BC 3C018003 */ lui $at, %hi(D_80036440) # $at, 0x8003 +/* 03A430 7F0058C0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) # $v0, 0x8008 +/* 03A434 7F0058C4 AC206480 */ sw $zero, %lo(D_80036440)($at) +/* 03A438 7F0058C8 244299D0 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6630 +/* 03A43C 7F0058CC E4580000 */ swc1 $f24, ($v0) +/* 03A440 7F0058D0 E4580004 */ swc1 $f24, 4($v0) +/* 03A444 7F0058D4 E4580008 */ swc1 $f24, 8($v0) +/* 03A448 7F0058D8 3C018003 */ lui $at, %hi(D_80036444) # $at, 0x8003 +/* 03A44C 7F0058DC AC206484 */ sw $zero, %lo(D_80036444)($at) +/* 03A450 7F0058E0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) # $at, 0x8008 +/* 03A454 7F0058E4 AC209CD8 */ sw $zero, %lo(dword_CODE_bss_80079C68)($at) +/* 03A458 7F0058E8 3C018003 */ lui $at, %hi(in_tank_flag) # $at, 0x8003 +/* 03A45C 7F0058EC AC206488 */ sw $zero, %lo(in_tank_flag)($at) +/* 03A460 7F0058F0 3C018003 */ lui $at, %hi(D_8003644C) # $at, 0x8003 +/* 03A464 7F0058F4 AC20648C */ sw $zero, %lo(D_8003644C)($at) +/* 03A468 7F0058F8 3C018003 */ lui $at, %hi(ptr_playerstank) # $at, 0x8003 +/* 03A46C 7F0058FC AC206490 */ sw $zero, %lo(ptr_playerstank)($at) +/* 03A470 7F005900 3C018003 */ lui $at, %hi(D_80036454) # $at, 0x8003 +/* 03A474 7F005904 3C038003 */ lui $v1, %hi(SFX_80036458) # $v1, 0x8003 +/* 03A478 7F005908 E4386494 */ swc1 $f24, %lo(D_80036454)($at) +/* 03A47C 7F00590C 24636498 */ addiu $v1, %lo(SFX_80036458) # addiu $v1, $v1, 0x6498 +/* 03A480 7F005910 AC600000 */ sw $zero, ($v1) +/* 03A484 7F005914 AC600004 */ sw $zero, 4($v1) +/* 03A488 7F005918 3C018003 */ lui $at, %hi(D_80036460) # $at, 0x8003 +/* 03A48C 7F00591C E43864A0 */ swc1 $f24, %lo(D_80036460)($at) +/* 03A490 7F005920 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 03A494 7F005924 E43864A4 */ swc1 $f24, %lo(D_80036464)($at) +/* 03A498 7F005928 3C018003 */ lui $at, %hi(D_80036468) # $at, 0x8003 +/* 03A49C 7F00592C E43864A8 */ swc1 $f24, %lo(D_80036468)($at) +/* 03A4A0 7F005930 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 03A4A4 7F005934 E43864AC */ swc1 $f24, %lo(D_8003646C)($at) +/* 03A4A8 7F005938 3C018003 */ lui $at, %hi(D_80036470) # $at, 0x8003 +/* 03A4AC 7F00593C E43864B0 */ swc1 $f24, %lo(D_80036470)($at) +/* 03A4B0 7F005940 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 03A4B4 7F005944 E43864B4 */ swc1 $f24, %lo(D_80036474)($at) +/* 03A4B8 7F005948 3C018003 */ lui $at, %hi(D_80036478) # $at, 0x8003 +/* 03A4BC 7F00594C E43864B8 */ swc1 $f24, %lo(D_80036478)($at) +/* 03A4C0 7F005950 3C018003 */ lui $at, %hi(D_8003647C) # $at, 0x8003 +/* 03A4C4 7F005954 E43864BC */ swc1 $f24, %lo(D_8003647C)($at) +/* 03A4C8 7F005958 3C018003 */ lui $at, %hi(D_80036480) # $at, 0x8003 +/* 03A4CC 7F00595C AC2064C0 */ sw $zero, %lo(D_80036480)($at) +/* 03A4D0 7F005960 3C018003 */ lui $at, %hi(D_80036484) # $at, 0x8003 +/* 03A4D4 7F005964 E43864C4 */ swc1 $f24, %lo(D_80036484)($at) +/* 03A4D8 7F005968 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 03A4DC 7F00596C E43864C8 */ swc1 $f24, %lo(D_80036488)($at) +/* 03A4E0 7F005970 3C018003 */ lui $at, %hi(D_8003648C) # $at, 0x8003 +/* 03A4E4 7F005974 AC2064CC */ sw $zero, %lo(D_8003648C)($at) +/* 03A4E8 7F005978 3C018003 */ lui $at, %hi(D_800364B0) # $at, 0x8003 +/* 03A4EC 7F00597C 240D0001 */ li $t5, 1 +/* 03A4F0 7F005980 AC2D64F0 */ sw $t5, %lo(D_800364B0)($at) +/* 03A4F4 7F005984 3C018003 */ lui $at, %hi(disable_player_pickups_flag) # $at, 0x8003 +/* 03A4F8 7F005988 AC2064F4 */ sw $zero, %lo(disable_player_pickups_flag)($at) +/* 03A4FC 7F00598C 3C018003 */ lui $at, %hi(cameramode) # $at, 0x8003 +/* 03A500 7F005990 AC2064D4 */ sw $zero, %lo(cameramode)($at) +/* 03A504 7F005994 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 03A508 7F005998 AC2064D8 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 03A50C 7F00599C 3C018003 */ lui $at, %hi(D_8003649C) # $at, 0x8003 +/* 03A510 7F0059A0 AC2064DC */ sw $zero, %lo(D_8003649C)($at) +/* 03A514 7F0059A4 3C018003 */ lui $at, %hi(stop_time_flag) # $at, 0x8003 +/* 03A518 7F0059A8 AC2064E0 */ sw $zero, %lo(stop_time_flag)($at) +/* 03A51C 7F0059AC 3C018003 */ lui $at, %hi(D_800364A4) # $at, 0x8003 +/* 03A520 7F0059B0 E43864E4 */ swc1 $f24, %lo(D_800364A4)($at) +/* 03A524 7F0059B4 3C018003 */ lui $at, %hi(D_800364A8) # $at, 0x8003 +/* 03A528 7F0059B8 24190001 */ li $t9, 1 +/* 03A52C 7F0059BC AC3964E8 */ sw $t9, %lo(D_800364A8)($at) +/* 03A530 7F0059C0 3C018003 */ lui $at, %hi(D_800364AC) # $at, 0x8003 +/* 03A534 7F0059C4 AC2064EC */ sw $zero, %lo(D_800364AC)($at) +/* 03A538 7F0059C8 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A53C 7F0059CC AC206500 */ sw $zero, %lo(ptr_random06cam_entry)($at) +/* 03A540 7F0059D0 3C018003 */ lui $at, %hi(D_800364B8) # $at, 0x8003 +/* 03A544 7F0059D4 AC2064F8 */ sw $zero, %lo(D_800364B8)($at) +/* 03A548 7F0059D8 3C018003 */ lui $at, %hi(D_800364BC) # $at, 0x8003 +/* 03A54C 7F0059DC AC2064FC */ sw $zero, %lo(D_800364BC)($at) +/* 03A550 7F0059E0 3C018008 */ lui $at, %hi(mission_timer) # $at, 0x8008 +/* 03A554 7F0059E4 3C118008 */ lui $s1, %hi(watch_time_0) # $s1, 0x8008 +/* 03A558 7F0059E8 AC209A60 */ sw $zero, %lo(mission_timer)($at) +/* 03A55C 7F0059EC 26319A64 */ addiu $s1, %lo(watch_time_0) # addiu $s1, $s1, -0x659c +/* 03A560 7F0059F0 E6380000 */ swc1 $f24, ($s1) +/* 03A564 7F0059F4 3C018003 */ lui $at, %hi(D_80036514) # $at, 0x8003 +/* 03A568 7F0059F8 AC206554 */ sw $zero, %lo(D_80036514)($at) +/* 03A56C 7F0059FC 3C018005 */ lui $at, %hi(default_zoom_speed) # $at, 0x8005 +/* 03A570 7F005A00 C424F1D8 */ lwc1 $f4, %lo(default_zoom_speed)($at) +/* 03A574 7F005A04 3C018003 */ lui $at, %hi(watch_transition_time) # $at, 0x8003 +/* 03A578 7F005A08 E42465E8 */ swc1 $f4, %lo(watch_transition_time)($at) +/* 03A57C 7F005A0C 3C018008 */ lui $at, %hi(starting_left_weapon) # $at, 0x8008 +/* 03A580 7F005A10 AC209A24 */ sw $zero, %lo(starting_left_weapon)($at) +/* 03A584 7F005A14 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A588 7F005A18 120000F7 */ beqz $s0, .L7F005DF8 +/* 03A58C 7F005A1C AC209A20 */ sw $zero, %lo(starting_right_weapon)($at) +/* 03A590 7F005A20 8E020000 */ lw $v0, ($s0) +/* 03A594 7F005A24 24010009 */ li $at, 9 +/* 03A598 7F005A28 3C128008 */ lui $s2, %hi(pPlayer) # $s2, 0x8008 +/* 03A59C 7F005A2C 104100F2 */ beq $v0, $at, .L7F005DF8 +/* 03A5A0 7F005A30 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03A5A4 7F005A34 4481B000 */ mtc1 $at, $f22 +/* 03A5A8 7F005A38 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03A5AC 7F005A3C 4481A000 */ mtc1 $at, $f20 +/* 03A5B0 7F005A40 2652A120 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5ee0 +/* 03A5B4 7F005A44 2C410009 */ sltiu $at, $v0, 9 +.L7F005A48: +/* 03A5B8 7F005A48 102000E6 */ beqz $at, .L7F005DE4 +/* 03A5BC 7F005A4C 0002C080 */ sll $t8, $v0, 2 +/* 03A5C0 7F005A50 3C018005 */ lui $at, %hi(jpt_8004F1AC) +/* 03A5C4 7F005A54 00380821 */ addu $at, $at, $t8 +/* 03A5C8 7F005A58 8C38F1DC */ lw $t8, %lo(jpt_8004F1AC)($at) +/* 03A5CC 7F005A5C 03000008 */ jr $t8 +/* 03A5D0 7F005A60 00000000 */ nop +spawn_point: +/* 03A5D4 7F005A64 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) # $t6, 0x8007 +/* 03A5D8 7F005A68 8DCE5D58 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 03A5DC 7F005A6C 11C00018 */ beqz $t6, .L7F005AD0 +/* 03A5E0 7F005A70 00000000 */ nop +/* 03A5E4 7F005A74 0FC305A4 */ jal check_ramrom_flags +/* 03A5E8 7F005A78 00000000 */ nop +/* 03A5EC 7F005A7C 8E0F0008 */ lw $t7, 8($s0) +/* 03A5F0 7F005A80 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) # $t2, 0x8007 +/* 03A5F4 7F005A84 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C28) +/* 03A5F8 7F005A88 144F0011 */ bne $v0, $t7, .L7F005AD0 +/* 03A5FC 7F005A8C 00000000 */ nop +/* 03A600 7F005A90 8E080004 */ lw $t0, 4($s0) +/* 03A604 7F005A94 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C68) # $v0, 0x8008 +/* 03A608 7F005A98 8C429CD8 */ lw $v0, %lo(dword_CODE_bss_80079C68)($v0) +/* 03A60C 7F005A9C 00084880 */ sll $t1, $t0, 2 +/* 03A610 7F005AA0 01284823 */ subu $t1, $t1, $t0 +/* 03A614 7F005AA4 8D4A5D58 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 03A618 7F005AA8 00094880 */ sll $t1, $t1, 2 +/* 03A61C 7F005AAC 01284823 */ subu $t1, $t1, $t0 +/* 03A620 7F005AB0 00094880 */ sll $t1, $t1, 2 +/* 03A624 7F005AB4 00026080 */ sll $t4, $v0, 2 +/* 03A628 7F005AB8 002C0821 */ addu $at, $at, $t4 +/* 03A62C 7F005ABC 012A5821 */ addu $t3, $t1, $t2 +/* 03A630 7F005AC0 AC2B9C98 */ sw $t3, %lo(dword_CODE_bss_80079C28)($at) +/* 03A634 7F005AC4 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) # $at, 0x8008 +/* 03A638 7F005AC8 244D0001 */ addiu $t5, $v0, 1 +/* 03A63C 7F005ACC AC2D9CD8 */ sw $t5, %lo(dword_CODE_bss_80079C68)($at) +.L7F005AD0: +/* 03A640 7F005AD0 100000C5 */ b .L7F005DE8 +/* 03A644 7F005AD4 2610000C */ addiu $s0, $s0, 0xc +weapon: +/* 03A648 7F005AD8 0FC305A4 */ jal check_ramrom_flags +/* 03A64C 7F005ADC 00000000 */ nop +/* 03A650 7F005AE0 8E19000C */ lw $t9, 0xc($s0) +/* 03A654 7F005AE4 1459001C */ bne $v0, $t9, .L7F005B58 +/* 03A658 7F005AE8 00000000 */ nop +/* 03A65C 7F005AEC 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 03A660 7F005AF0 8E040004 */ lw $a0, 4($s0) +/* 03A664 7F005AF4 8E040008 */ lw $a0, 8($s0) +/* 03A668 7F005AF8 04800008 */ bltz $a0, .L7F005B1C +/* 03A66C 7F005AFC 00000000 */ nop +/* 03A670 7F005B00 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 03A674 7F005B04 00000000 */ nop +/* 03A678 7F005B08 8E040004 */ lw $a0, 4($s0) +/* 03A67C 7F005B0C 0FC23381 */ jal add_doubles_item_to_inventory +/* 03A680 7F005B10 8E050008 */ lw $a1, 8($s0) +/* 03A684 7F005B14 10000004 */ b .L7F005B28 +/* 03A688 7F005B18 8FB80084 */ lw $t8, 0x84($sp) +.L7F005B1C: +/* 03A68C 7F005B1C 0FC2335A */ jal add_item_to_inventory +/* 03A690 7F005B20 8E040004 */ lw $a0, 4($s0) +/* 03A694 7F005B24 8FB80084 */ lw $t8, 0x84($sp) +.L7F005B28: +/* 03A698 7F005B28 1700000B */ bnez $t8, .L7F005B58 +/* 03A69C 7F005B2C 00000000 */ nop +/* 03A6A0 7F005B30 8E0E0004 */ lw $t6, 4($s0) +/* 03A6A4 7F005B34 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A6A8 7F005B38 240F0001 */ li $t7, 1 +/* 03A6AC 7F005B3C AC2E9A20 */ sw $t6, %lo(starting_right_weapon)($at) +/* 03A6B0 7F005B40 8E040008 */ lw $a0, 8($s0) +/* 03A6B4 7F005B44 AFAF0084 */ sw $t7, 0x84($sp) +/* 03A6B8 7F005B48 3C018008 */ lui $at, %hi(starting_left_weapon) # $at, 0x8008 +/* 03A6BC 7F005B4C 04800002 */ bltz $a0, .L7F005B58 +/* 03A6C0 7F005B50 00000000 */ nop +/* 03A6C4 7F005B54 AC249A24 */ sw $a0, %lo(starting_left_weapon)($at) +.L7F005B58: +/* 03A6C8 7F005B58 100000A3 */ b .L7F005DE8 +/* 03A6CC 7F005B5C 26100010 */ addiu $s0, $s0, 0x10 +ammo: +/* 03A6D0 7F005B60 0FC305A4 */ jal check_ramrom_flags +/* 03A6D4 7F005B64 00000000 */ nop +/* 03A6D8 7F005B68 8E08000C */ lw $t0, 0xc($s0) +/* 03A6DC 7F005B6C 14480004 */ bne $v0, $t0, .L7F005B80 +/* 03A6E0 7F005B70 00000000 */ nop +/* 03A6E4 7F005B74 8E040004 */ lw $a0, 4($s0) +/* 03A6E8 7F005B78 0FC1A5C7 */ jal give_cur_player_ammo +/* 03A6EC 7F005B7C 8E050008 */ lw $a1, 8($s0) +.L7F005B80: +/* 03A6F0 7F005B80 10000099 */ b .L7F005DE8 +/* 03A6F4 7F005B84 26100010 */ addiu $s0, $s0, 0x10 +swirling_intro_cam: +/* 03A6F8 7F005B88 3C098003 */ lui $t1, %hi(D_800364AC) # $t1, 0x8003 +/* 03A6FC 7F005B8C 8D2964EC */ lw $t1, %lo(D_800364AC)($t1) +/* 03A700 7F005B90 02001025 */ move $v0, $s0 +/* 03A704 7F005B94 3C018003 */ lui $at, %hi(D_800364AC) # $at, 0x8003 +/* 03A708 7F005B98 55200003 */ bnezl $t1, .L7F005BA8 +/* 03A70C 7F005B9C 8C4A0008 */ lw $t2, 8($v0) +/* 03A710 7F005BA0 AC3064EC */ sw $s0, %lo(D_800364AC)($at) +/* 03A714 7F005BA4 8C4A0008 */ lw $t2, 8($v0) +.L7F005BA8: +/* 03A718 7F005BA8 8C4B000C */ lw $t3, 0xc($v0) +/* 03A71C 7F005BAC 8C4C0010 */ lw $t4, 0x10($v0) +/* 03A720 7F005BB0 448A3000 */ mtc1 $t2, $f6 +/* 03A724 7F005BB4 448B8000 */ mtc1 $t3, $f16 +/* 03A728 7F005BB8 8C4D0014 */ lw $t5, 0x14($v0) +/* 03A72C 7F005BBC 46803220 */ cvt.s.w $f8, $f6 +/* 03A730 7F005BC0 448C3000 */ mtc1 $t4, $f6 +/* 03A734 7F005BC4 8C590018 */ lw $t9, 0x18($v0) +/* 03A738 7F005BC8 26100020 */ addiu $s0, $s0, 0x20 +/* 03A73C 7F005BCC 468084A0 */ cvt.s.w $f18, $f16 +/* 03A740 7F005BD0 448D8000 */ mtc1 $t5, $f16 +/* 03A744 7F005BD4 46144283 */ div.s $f10, $f8, $f20 +/* 03A748 7F005BD8 46803220 */ cvt.s.w $f8, $f6 +/* 03A74C 7F005BDC 44993000 */ mtc1 $t9, $f6 +/* 03A750 7F005BE0 46149103 */ div.s $f4, $f18, $f20 +/* 03A754 7F005BE4 E44A0008 */ swc1 $f10, 8($v0) +/* 03A758 7F005BE8 468084A0 */ cvt.s.w $f18, $f16 +/* 03A75C 7F005BEC 46144283 */ div.s $f10, $f8, $f20 +/* 03A760 7F005BF0 E444000C */ swc1 $f4, 0xc($v0) +/* 03A764 7F005BF4 46803220 */ cvt.s.w $f8, $f6 +/* 03A768 7F005BF8 46149103 */ div.s $f4, $f18, $f20 +/* 03A76C 7F005BFC E44A0010 */ swc1 $f10, 0x10($v0) +/* 03A770 7F005C00 46144283 */ div.s $f10, $f8, $f20 +/* 03A774 7F005C04 E4440014 */ swc1 $f4, 0x14($v0) +/* 03A778 7F005C08 10000077 */ b .L7F005DE8 +/* 03A77C 7F005C0C E44A0018 */ swc1 $f10, 0x18($v0) +intro_ani: +/* 03A780 7F005C10 8E180004 */ lw $t8, 4($s0) +/* 03A784 7F005C14 3C018003 */ lui $at, %hi(D_80036514) # $at, 0x8003 +/* 03A788 7F005C18 26100008 */ addiu $s0, $s0, 8 +/* 03A78C 7F005C1C 10000072 */ b .L7F005DE8 +/* 03A790 7F005C20 AC386554 */ sw $t8, %lo(D_80036514)($at) +cuff_char: +/* 03A794 7F005C24 8E0E0004 */ lw $t6, 4($s0) +/* 03A798 7F005C28 8E4F0000 */ lw $t7, ($s2) +/* 03A79C 7F005C2C 26100008 */ addiu $s0, $s0, 8 +/* 03A7A0 7F005C30 1000006D */ b .L7F005DE8 +/* 03A7A4 7F005C34 ADEE041C */ sw $t6, 0x41c($t7) +fixed_cam: +/* 03A7A8 7F005C38 0FC26F3C */ jal get_cur_playernum +/* 03A7AC 7F005C3C 00000000 */ nop +/* 03A7B0 7F005C40 1440002C */ bnez $v0, .L7F005CF4 +/* 03A7B4 7F005C44 3C088003 */ lui $t0, %hi(D_800364B8) # $t0, 0x8003 +/* 03A7B8 7F005C48 8D0864F8 */ lw $t0, %lo(D_800364B8)($t0) +/* 03A7BC 7F005C4C 3C098003 */ lui $t1, %hi(D_800364BC) # $t1, 0x8003 +/* 03A7C0 7F005C50 3C018003 */ lui $at, %hi(D_800364B8) # $at, 0x8003 +/* 03A7C4 7F005C54 AE080024 */ sw $t0, 0x24($s0) +/* 03A7C8 7F005C58 8D2964FC */ lw $t1, %lo(D_800364BC)($t1) +/* 03A7CC 7F005C5C AC3064F8 */ sw $s0, %lo(D_800364B8)($at) +/* 03A7D0 7F005C60 3C018003 */ lui $at, %hi(D_800364BC) # $at, 0x8003 +/* 03A7D4 7F005C64 252A0001 */ addiu $t2, $t1, 1 +/* 03A7D8 7F005C68 AC2A64FC */ sw $t2, %lo(D_800364BC)($at) +/* 03A7DC 7F005C6C 8E0B0004 */ lw $t3, 4($s0) +/* 03A7E0 7F005C70 8E0C0008 */ lw $t4, 8($s0) +/* 03A7E4 7F005C74 8E0D000C */ lw $t5, 0xc($s0) +/* 03A7E8 7F005C78 448B8000 */ mtc1 $t3, $f16 +/* 03A7EC 7F005C7C 448C3000 */ mtc1 $t4, $f6 +/* 03A7F0 7F005C80 8E190010 */ lw $t9, 0x10($s0) +/* 03A7F4 7F005C84 468084A0 */ cvt.s.w $f18, $f16 +/* 03A7F8 7F005C88 448D8000 */ mtc1 $t5, $f16 +/* 03A7FC 7F005C8C 8E180014 */ lw $t8, 0x14($s0) +/* 03A800 7F005C90 9604001E */ lhu $a0, 0x1e($s0) +/* 03A804 7F005C94 46803220 */ cvt.s.w $f8, $f6 +/* 03A808 7F005C98 44993000 */ mtc1 $t9, $f6 +/* 03A80C 7F005C9C 46169103 */ div.s $f4, $f18, $f22 +/* 03A810 7F005CA0 468084A0 */ cvt.s.w $f18, $f16 +/* 03A814 7F005CA4 44988000 */ mtc1 $t8, $f16 +/* 03A818 7F005CA8 46164283 */ div.s $f10, $f8, $f22 +/* 03A81C 7F005CAC E6040004 */ swc1 $f4, 4($s0) +/* 03A820 7F005CB0 46803220 */ cvt.s.w $f8, $f6 +/* 03A824 7F005CB4 46169103 */ div.s $f4, $f18, $f22 +/* 03A828 7F005CB8 E60A0008 */ swc1 $f10, 8($s0) +/* 03A82C 7F005CBC 468084A0 */ cvt.s.w $f18, $f16 +/* 03A830 7F005CC0 46144283 */ div.s $f10, $f8, $f20 +/* 03A834 7F005CC4 E604000C */ swc1 $f4, 0xc($s0) +/* 03A838 7F005CC8 46149103 */ div.s $f4, $f18, $f20 +/* 03A83C 7F005CCC E60A0010 */ swc1 $f10, 0x10($s0) +/* 03A840 7F005CD0 0FC30AA2 */ jal get_textptr_for_textID +/* 03A844 7F005CD4 E6040014 */ swc1 $f4, 0x14($s0) +/* 03A848 7F005CD8 8E030020 */ lw $v1, 0x20($s0) +/* 03A84C 7F005CDC AE02001C */ sw $v0, 0x1c($s0) +/* 03A850 7F005CE0 10600004 */ beqz $v1, .L7F005CF4 +/* 03A854 7F005CE4 00000000 */ nop +/* 03A858 7F005CE8 0FC30AA2 */ jal get_textptr_for_textID +/* 03A85C 7F005CEC 3064FFFF */ andi $a0, $v1, 0xffff +/* 03A860 7F005CF0 AE020020 */ sw $v0, 0x20($s0) +.L7F005CF4: +/* 03A864 7F005CF4 1000003C */ b .L7F005DE8 +/* 03A868 7F005CF8 26100028 */ addiu $s0, $s0, 0x28 +watch_time: +/* 03A86C 7F005CFC E6380000 */ swc1 $f24, ($s1) +/* 03A870 7F005D00 8E040008 */ lw $a0, 8($s0) +/* 03A874 7F005D04 2401003C */ li $at, 60 +/* 03A878 7F005D08 5880000F */ blezl $a0, .L7F005D48 +/* 03A87C 7F005D0C 8E020004 */ lw $v0, 4($s0) +/* 03A880 7F005D10 0081001A */ div $zero, $a0, $at +/* 03A884 7F005D14 00007010 */ mfhi $t6 +/* 03A888 7F005D18 000E78C0 */ sll $t7, $t6, 3 +/* 03A88C 7F005D1C 01EE7823 */ subu $t7, $t7, $t6 +/* 03A890 7F005D20 000F7940 */ sll $t7, $t7, 5 +/* 03A894 7F005D24 01EE7821 */ addu $t7, $t7, $t6 +/* 03A898 7F005D28 000F7900 */ sll $t7, $t7, 4 +/* 03A89C 7F005D2C 448F4000 */ mtc1 $t7, $f8 +/* 03A8A0 7F005D30 C6260000 */ lwc1 $f6, ($s1) +/* 03A8A4 7F005D34 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 03A8A8 7F005D38 468042A0 */ cvt.s.w $f10, $f8 +/* 03A8AC 7F005D3C 460A3400 */ add.s $f16, $f6, $f10 +/* 03A8B0 7F005D40 E4309A64 */ swc1 $f16, %lo(watch_time_0)($at) +/* 03A8B4 7F005D44 8E020004 */ lw $v0, 4($s0) +.L7F005D48: +/* 03A8B8 7F005D48 2401000C */ li $at, 12 +/* 03A8BC 7F005D4C 1840000E */ blez $v0, .L7F005D88 +/* 03A8C0 7F005D50 00000000 */ nop +/* 03A8C4 7F005D54 0041001A */ div $zero, $v0, $at +/* 03A8C8 7F005D58 00004010 */ mfhi $t0 +/* 03A8CC 7F005D5C 3C010003 */ lui $at, (0x00034BC0 >> 16) # lui $at, 3 +/* 03A8D0 7F005D60 34214BC0 */ ori $at, (0x00034BC0 & 0xFFFF) # ori $at, $at, 0x4bc0 +/* 03A8D4 7F005D64 01010019 */ multu $t0, $at +/* 03A8D8 7F005D68 C6320000 */ lwc1 $f18, ($s1) +/* 03A8DC 7F005D6C 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 03A8E0 7F005D70 00004812 */ mflo $t1 +/* 03A8E4 7F005D74 44892000 */ mtc1 $t1, $f4 +/* 03A8E8 7F005D78 00000000 */ nop +/* 03A8EC 7F005D7C 46802220 */ cvt.s.w $f8, $f4 +/* 03A8F0 7F005D80 46089180 */ add.s $f6, $f18, $f8 +/* 03A8F4 7F005D84 E4269A64 */ swc1 $f6, %lo(watch_time_0)($at) +.L7F005D88: +/* 03A8F8 7F005D88 10000017 */ b .L7F005DE8 +/* 03A8FC 7F005D8C 2610000C */ addiu $s0, $s0, 0xc +credits: +/* 03A900 7F005D90 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80075D28) # $t2, 0x8007 +/* 03A904 7F005D94 8D4A5D68 */ lw $t2, %lo(dword_CODE_bss_80075D28)($t2) +/* 03A908 7F005D98 8E0B0004 */ lw $t3, 4($s0) +/* 03A90C 7F005D9C 3C018003 */ lui $at, %hi(D_80036440) # $at, 0x8003 +/* 03A910 7F005DA0 014B1021 */ addu $v0, $t2, $t3 +/* 03A914 7F005DA4 AC226480 */ sw $v0, %lo(D_80036440)($at) +/* 03A918 7F005DA8 944C0000 */ lhu $t4, ($v0) +/* 03A91C 7F005DAC 55800005 */ bnezl $t4, .L7F005DC4 +/* 03A920 7F005DB0 9459000C */ lhu $t9, 0xc($v0) +/* 03A924 7F005DB4 944D0002 */ lhu $t5, 2($v0) +/* 03A928 7F005DB8 11A00008 */ beqz $t5, .L7F005DDC +/* 03A92C 7F005DBC 00000000 */ nop +/* 03A930 7F005DC0 9459000C */ lhu $t9, 0xc($v0) +.L7F005DC4: +/* 03A934 7F005DC4 2442000C */ addiu $v0, $v0, 0xc +/* 03A938 7F005DC8 5720FFFE */ bnezl $t9, .L7F005DC4 +/* 03A93C 7F005DCC 9459000C */ lhu $t9, 0xc($v0) +/* 03A940 7F005DD0 94580002 */ lhu $t8, 2($v0) +/* 03A944 7F005DD4 5700FFFB */ bnezl $t8, .L7F005DC4 +/* 03A948 7F005DD8 9459000C */ lhu $t9, 0xc($v0) +.L7F005DDC: +/* 03A94C 7F005DDC 10000002 */ b .L7F005DE8 +/* 03A950 7F005DE0 26100008 */ addiu $s0, $s0, 8 +def_7F005A74: +.L7F005DE4: +/* 03A954 7F005DE4 26100004 */ addiu $s0, $s0, 4 +.L7F005DE8: +/* 03A958 7F005DE8 8E020000 */ lw $v0, ($s0) +/* 03A95C 7F005DEC 24010009 */ li $at, 9 +/* 03A960 7F005DF0 5441FF15 */ bnel $v0, $at, .L7F005A48 +/* 03A964 7F005DF4 2C410009 */ sltiu $at, $v0, 9 +.L7F005DF8: +/* 03A968 7F005DF8 3C028003 */ lui $v0, %hi(D_800364B8) # $v0, 0x8003 +/* 03A96C 7F005DFC 8C4264F8 */ lw $v0, %lo(D_800364B8)($v0) +/* 03A970 7F005E00 3C128008 */ lui $s2, %hi(pPlayer) # $s2, 0x8008 +/* 03A974 7F005E04 2652A120 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5ee0 +/* 03A978 7F005E08 10400012 */ beqz $v0, .L7F005E54 +/* 03A97C 7F005E0C 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A980 7F005E10 0C002918 */ jal get_random_value +/* 03A984 7F005E14 AC226500 */ sw $v0, %lo(ptr_random06cam_entry)($at) +/* 03A988 7F005E18 3C0E8003 */ lui $t6, %hi(D_800364BC) # $t6, 0x8003 +/* 03A98C 7F005E1C 8DCE64FC */ lw $t6, %lo(D_800364BC)($t6) +/* 03A990 7F005E20 004E001B */ divu $zero, $v0, $t6 +/* 03A994 7F005E24 00001810 */ mfhi $v1 +/* 03A998 7F005E28 15C00002 */ bnez $t6, .L7F005E34 +/* 03A99C 7F005E2C 00000000 */ nop +/* 03A9A0 7F005E30 0007000D */ break 7 +.L7F005E34: +/* 03A9A4 7F005E34 18600007 */ blez $v1, .L7F005E54 +.L7F005E38: +/* 03A9A8 7F005E38 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 03A9AC 7F005E3C 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 03A9B0 7F005E40 2463FFFF */ addiu $v1, $v1, -1 +/* 03A9B4 7F005E44 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A9B8 7F005E48 8DE80024 */ lw $t0, 0x24($t7) +/* 03A9BC 7F005E4C 1C60FFFA */ bgtz $v1, .L7F005E38 +/* 03A9C0 7F005E50 AC286500 */ sw $t0, %lo(ptr_random06cam_entry)($at) +.L7F005E54: +/* 03A9C4 7F005E54 0FC2335A */ jal add_item_to_inventory +/* 03A9C8 7F005E58 24040001 */ li $a0, 1 +/* 03A9CC 7F005E5C 8FA90084 */ lw $t1, 0x84($sp) +/* 03A9D0 7F005E60 15200003 */ bnez $t1, .L7F005E70 +/* 03A9D4 7F005E64 240A0001 */ li $t2, 1 +/* 03A9D8 7F005E68 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A9DC 7F005E6C AC2A9A20 */ sw $t2, %lo(starting_right_weapon)($at) +.L7F005E70: +/* 03A9E0 7F005E70 8E4B0000 */ lw $t3, ($s2) +/* 03A9E4 7F005E74 3C018005 */ lui $at, %hi(D_8004F1D0) # $at, 0x8005 +/* 03A9E8 7F005E78 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079C68) # $t9, 0x8008 +/* 03A9EC 7F005E7C E5780078 */ swc1 $f24, 0x78($t3) +/* 03A9F0 7F005E80 8E4C0000 */ lw $t4, ($s2) +/* 03A9F4 7F005E84 C42AF200 */ lwc1 $f10, %lo(D_8004F1D0)($at) +/* 03A9F8 7F005E88 E58A007C */ swc1 $f10, 0x7c($t4) +/* 03A9FC 7F005E8C 8E4D0000 */ lw $t5, ($s2) +/* 03AA00 7F005E90 E5B80080 */ swc1 $f24, 0x80($t5) +/* 03AA04 7F005E94 8F399CD8 */ lw $t9, %lo(dword_CODE_bss_80079C68)($t9) +/* 03AA08 7F005E98 5B20002C */ blezl $t9, .L7F005F4C +/* 03AA0C 7F005E9C 27A40094 */ addiu $a0, $sp, 0x94 +/* 03AA10 7F005EA0 0FC26C01 */ jal get_num_players +/* 03AA14 7F005EA4 00000000 */ nop +/* 03AA18 7F005EA8 28410002 */ slti $at, $v0, 2 +/* 03AA1C 7F005EAC 14200008 */ bnez $at, .L7F005ED0 +/* 03AA20 7F005EB0 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079C68) # $t8, 0x8008 +/* 03AA24 7F005EB4 8F189CD8 */ lw $t8, %lo(dword_CODE_bss_80079C68)($t8) +/* 03AA28 7F005EB8 5B000006 */ blezl $t8, .L7F005ED4 +/* 03AA2C 7F005EBC 00001825 */ move $v1, $zero +/* 03AA30 7F005EC0 0FC1E5B8 */ jal sub_GAME_7F0790F0 +/* 03AA34 7F005EC4 00000000 */ nop +/* 03AA38 7F005EC8 10000002 */ b .L7F005ED4 +/* 03AA3C 7F005ECC 00401825 */ move $v1, $v0 +.L7F005ED0: +/* 03AA40 7F005ED0 00001825 */ move $v1, $zero +.L7F005ED4: +/* 03AA44 7F005ED4 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80079C28) # $t7, 0x8008 +/* 03AA48 7F005ED8 25EF9C98 */ addiu $t7, %lo(dword_CODE_bss_80079C28) # addiu $t7, $t7, -0x6368 +/* 03AA4C 7F005EDC 00037080 */ sll $t6, $v1, 2 +/* 03AA50 7F005EE0 01CF8821 */ addu $s1, $t6, $t7 +/* 03AA54 7F005EE4 8E300000 */ lw $s0, ($s1) +/* 03AA58 7F005EE8 C6100000 */ lwc1 $f16, ($s0) +/* 03AA5C 7F005EEC E7B00094 */ swc1 $f16, 0x94($sp) +/* 03AA60 7F005EF0 C6040008 */ lwc1 $f4, 8($s0) +/* 03AA64 7F005EF4 8FA50094 */ lw $a1, 0x94($sp) +/* 03AA68 7F005EF8 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 03AA6C 7F005EFC 8E040028 */ lw $a0, 0x28($s0) +/* 03AA70 7F005F00 8FA6009C */ lw $a2, 0x9c($sp) +/* 03AA74 7F005F04 0FC204DC */ jal sub_GAME_7F080D60 +/* 03AA78 7F005F08 AFA4008C */ sw $a0, 0x8c($sp) +/* 03AA7C 7F005F0C 8E420000 */ lw $v0, ($s2) +/* 03AA80 7F005F10 46000506 */ mov.s $f20, $f0 +/* 03AA84 7F005F14 C45229BC */ lwc1 $f18, 0x29bc($v0) +/* 03AA88 7F005F18 46009200 */ add.s $f8, $f18, $f0 +/* 03AA8C 7F005F1C E7A80098 */ swc1 $f8, 0x98($sp) +/* 03AA90 7F005F20 E4400070 */ swc1 $f0, 0x70($v0) +/* 03AA94 7F005F24 8E300000 */ lw $s0, ($s1) +/* 03AA98 7F005F28 C60C0018 */ lwc1 $f12, 0x18($s0) +/* 03AA9C 7F005F2C 0FC16BD4 */ jal atan2f +/* 03AAA0 7F005F30 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 03AAA4 7F005F34 3C018005 */ lui $at, %hi(D_8004F1D4) # $at, 0x8005 +/* 03AAA8 7F005F38 C426F204 */ lwc1 $f6, %lo(D_8004F1D4)($at) +/* 03AAAC 7F005F3C 46003281 */ sub.s $f10, $f6, $f0 +/* 03AAB0 7F005F40 10000011 */ b .L7F005F88 +/* 03AAB4 7F005F44 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 03AAB8 7F005F48 27A40094 */ addiu $a0, $sp, 0x94 +.L7F005F4C: +/* 03AABC 7F005F4C 27A50098 */ addiu $a1, $sp, 0x98 +/* 03AAC0 7F005F50 27A6009C */ addiu $a2, $sp, 0x9c +/* 03AAC4 7F005F54 0FC2C1CA */ jal sub_GAME_7F0AFB78 +/* 03AAC8 7F005F58 3C0741F0 */ lui $a3, 0x41f0 +/* 03AACC 7F005F5C AFA2008C */ sw $v0, 0x8c($sp) +/* 03AAD0 7F005F60 00402025 */ move $a0, $v0 +/* 03AAD4 7F005F64 8FA50094 */ lw $a1, 0x94($sp) +/* 03AAD8 7F005F68 0FC204DC */ jal sub_GAME_7F080D60 +/* 03AADC 7F005F6C 8FA6009C */ lw $a2, 0x9c($sp) +/* 03AAE0 7F005F70 8E420000 */ lw $v0, ($s2) +/* 03AAE4 7F005F74 46000506 */ mov.s $f20, $f0 +/* 03AAE8 7F005F78 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 03AAEC 7F005F7C 46008100 */ add.s $f4, $f16, $f0 +/* 03AAF0 7F005F80 E7A40098 */ swc1 $f4, 0x98($sp) +/* 03AAF4 7F005F84 E4400070 */ swc1 $f0, 0x70($v0) +.L7F005F88: +/* 03AAF8 7F005F88 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 03AAFC 7F005F8C 44814000 */ mtc1 $at, $f8 +/* 03AB00 7F005F90 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 03AB04 7F005F94 3C018005 */ lui $at, %hi(D_8004F1D8) # $at, 0x8005 +/* 03AB08 7F005F98 C42AF208 */ lwc1 $f10, %lo(D_8004F1D8)($at) +/* 03AB0C 7F005F9C 46089182 */ mul.s $f6, $f18, $f8 +/* 03AB10 7F005FA0 8E480000 */ lw $t0, ($s2) +/* 03AB14 7F005FA4 3C018005 */ lui $at, %hi(D_8004F1DC) # $at, 0x8005 +/* 03AB18 7F005FA8 27A50094 */ addiu $a1, $sp, 0x94 +/* 03AB1C 7F005FAC 460A3403 */ div.s $f16, $f6, $f10 +/* 03AB20 7F005FB0 E5100148 */ swc1 $f16, 0x148($t0) +/* 03AB24 7F005FB4 8E490000 */ lw $t1, ($s2) +/* 03AB28 7F005FB8 E5340074 */ swc1 $f20, 0x74($t1) +/* 03AB2C 7F005FBC C424F20C */ lwc1 $f4, %lo(D_8004F1DC)($at) +/* 03AB30 7F005FC0 8E4A0000 */ lw $t2, ($s2) +/* 03AB34 7F005FC4 4604A483 */ div.s $f18, $f20, $f4 +/* 03AB38 7F005FC8 E552006C */ swc1 $f18, 0x6c($t2) +/* 03AB3C 7F005FCC 8E440000 */ lw $a0, ($s2) +/* 03AB40 7F005FD0 8FA6008C */ lw $a2, 0x8c($sp) +/* 03AB44 7F005FD4 0FC1F355 */ jal change_player_pos_to_target +/* 03AB48 7F005FD8 24840488 */ addiu $a0, $a0, 0x488 +/* 03AB4C 7F005FDC 0FC160F3 */ jal sinf +/* 03AB50 7F005FE0 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 03AB54 7F005FE4 8E4B0000 */ lw $t3, ($s2) +/* 03AB58 7F005FE8 46000207 */ neg.s $f8, $f0 +/* 03AB5C 7F005FEC E5680498 */ swc1 $f8, 0x498($t3) +/* 03AB60 7F005FF0 8E4C0000 */ lw $t4, ($s2) +/* 03AB64 7F005FF4 E598049C */ swc1 $f24, 0x49c($t4) +/* 03AB68 7F005FF8 0FC160F0 */ jal cosf +/* 03AB6C 7F005FFC C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 03AB70 7F006000 8E4D0000 */ lw $t5, ($s2) +/* 03AB74 7F006004 3C018003 */ lui $at, %hi(D_800364D0) # $at, 0x8003 +/* 03AB78 7F006008 E5A004A0 */ swc1 $f0, 0x4a0($t5) +/* 03AB7C 7F00600C 0FC2277B */ jal sub_GAME_7F089718 +/* 03AB80 7F006010 C42C6510 */ lwc1 $f12, %lo(D_800364D0)($at) +/* 03AB84 7F006014 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA0) # $at, 0x8008 +/* 03AB88 7F006018 AC209E10 */ sw $zero, %lo(dword_CODE_bss_80079DA0)($at) +/* 03AB8C 7F00601C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA4) # $at, 0x8008 +/* 03AB90 7F006020 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079DA8) # $v0, 0x8008 +/* 03AB94 7F006024 3C038008 */ lui $v1, %hi(dword_CODE_bss_80079DC8) # $v1, 0x8008 +/* 03AB98 7F006028 24639E38 */ addiu $v1, %lo(dword_CODE_bss_80079DC8) # addiu $v1, $v1, -0x61c8 +/* 03AB9C 7F00602C 24429E18 */ addiu $v0, %lo(dword_CODE_bss_80079DA8) # addiu $v0, $v0, -0x61e8 +/* 03ABA0 7F006030 AC209E14 */ sw $zero, %lo(dword_CODE_bss_80079DA4)($at) +.L7F006034: +/* 03ABA4 7F006034 24420010 */ addiu $v0, $v0, 0x10 +/* 03ABA8 7F006038 AC40FFF4 */ sw $zero, -0xc($v0) +/* 03ABAC 7F00603C AC40FFF8 */ sw $zero, -8($v0) +/* 03ABB0 7F006040 AC40FFFC */ sw $zero, -4($v0) +/* 03ABB4 7F006044 1443FFFB */ bne $v0, $v1, .L7F006034 +/* 03ABB8 7F006048 AC40FFF0 */ sw $zero, -0x10($v0) +/* 03ABBC 7F00604C 0FC22A9A */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 03ABC0 7F006050 00000000 */ nop +/* 03ABC4 7F006054 0FC22C37 */ jal sub_GAME_7F08A900 +/* 03ABC8 7F006058 00000000 */ nop +/* 03ABCC 7F00605C 0FC0E9CC */ jal remove_last_obj_pos_data_entry +/* 03ABD0 7F006060 00000000 */ nop +/* 03ABD4 7F006064 8E590000 */ lw $t9, ($s2) +/* 03ABD8 7F006068 240F0006 */ li $t7, 6 +/* 03ABDC 7F00606C AF2200A8 */ sw $v0, 0xa8($t9) +/* 03ABE0 7F006070 8E580000 */ lw $t8, ($s2) +/* 03ABE4 7F006074 8F0E00A8 */ lw $t6, 0xa8($t8) +/* 03ABE8 7F006078 ADC00004 */ sw $zero, 4($t6) +/* 03ABEC 7F00607C 8E480000 */ lw $t0, ($s2) +/* 03ABF0 7F006080 8D0900A8 */ lw $t1, 0xa8($t0) +/* 03ABF4 7F006084 A12F0000 */ sb $t7, ($t1) +/* 03ABF8 7F006088 8E4A0000 */ lw $t2, ($s2) +/* 03ABFC 7F00608C C7A00094 */ lwc1 $f0, 0x94($sp) +/* 03AC00 7F006090 E5400408 */ swc1 $f0, 0x408($t2) +/* 03AC04 7F006094 8E4B0000 */ lw $t3, ($s2) +/* 03AC08 7F006098 8D6C00A8 */ lw $t4, 0xa8($t3) +/* 03AC0C 7F00609C E5800008 */ swc1 $f0, 8($t4) +/* 03AC10 7F0060A0 8E4D0000 */ lw $t5, ($s2) +/* 03AC14 7F0060A4 C7A00098 */ lwc1 $f0, 0x98($sp) +/* 03AC18 7F0060A8 E5A0040C */ swc1 $f0, 0x40c($t5) +/* 03AC1C 7F0060AC 8E590000 */ lw $t9, ($s2) +/* 03AC20 7F0060B0 8F3800A8 */ lw $t8, 0xa8($t9) +/* 03AC24 7F0060B4 E700000C */ swc1 $f0, 0xc($t8) +/* 03AC28 7F0060B8 8E4E0000 */ lw $t6, ($s2) +/* 03AC2C 7F0060BC C7A0009C */ lwc1 $f0, 0x9c($sp) +/* 03AC30 7F0060C0 E5C00410 */ swc1 $f0, 0x410($t6) +/* 03AC34 7F0060C4 8E480000 */ lw $t0, ($s2) +/* 03AC38 7F0060C8 8D0F00A8 */ lw $t7, 0xa8($t0) +/* 03AC3C 7F0060CC E5E00010 */ swc1 $f0, 0x10($t7) +/* 03AC40 7F0060D0 8E4A0000 */ lw $t2, ($s2) +/* 03AC44 7F0060D4 8FA9008C */ lw $t1, 0x8c($sp) +/* 03AC48 7F0060D8 8D4B00A8 */ lw $t3, 0xa8($t2) +/* 03AC4C 7F0060DC AD690014 */ sw $t1, 0x14($t3) +/* 03AC50 7F0060E0 8E4C0000 */ lw $t4, ($s2) +/* 03AC54 7F0060E4 0FC0E9E9 */ jal set_current_objposdata_plus_0x28 +/* 03AC58 7F0060E8 8D8400A8 */ lw $a0, 0xa8($t4) +/* 03AC5C 7F0060EC 8E4D0000 */ lw $t5, ($s2) +/* 03AC60 7F0060F0 0FC0E9C1 */ jal set_stateflag_0x04_for_posdata +/* 03AC64 7F0060F4 8DA400A8 */ lw $a0, 0xa8($t5) +/* 03AC68 7F0060F8 8E420000 */ lw $v0, ($s2) +/* 03AC6C 7F0060FC 3C018005 */ lui $at, %hi(D_8004F1E0) # $at, 0x8005 +/* 03AC70 7F006100 C420F210 */ lwc1 $f0, %lo(D_8004F1E0)($at) +/* 03AC74 7F006104 C44604B4 */ lwc1 $f6, 0x4b4($v0) +/* 03AC78 7F006108 46003283 */ div.s $f10, $f6, $f0 +/* 03AC7C 7F00610C E44A03B8 */ swc1 $f10, 0x3b8($v0) +/* 03AC80 7F006110 8E420000 */ lw $v0, ($s2) +/* 03AC84 7F006114 C45004B8 */ lwc1 $f16, 0x4b8($v0) +/* 03AC88 7F006118 46008103 */ div.s $f4, $f16, $f0 +/* 03AC8C 7F00611C E44403BC */ swc1 $f4, 0x3bc($v0) +/* 03AC90 7F006120 8E420000 */ lw $v0, ($s2) +/* 03AC94 7F006124 C45204BC */ lwc1 $f18, 0x4bc($v0) +/* 03AC98 7F006128 46009203 */ div.s $f8, $f18, $f0 +/* 03AC9C 7F00612C 0FC26C01 */ jal get_num_players +/* 03ACA0 7F006130 E44803C0 */ swc1 $f8, 0x3c0($v0) +/* 03ACA4 7F006134 24010001 */ li $at, 1 +/* 03ACA8 7F006138 14410005 */ bne $v0, $at, .L7F006150 +/* 03ACAC 7F00613C 00000000 */ nop +/* 03ACB0 7F006140 0FC1EBF6 */ jal set_camera_mode +/* 03ACB4 7F006144 24040001 */ li $a0, 1 +/* 03ACB8 7F006148 10000003 */ b .L7F006158 +/* 03ACBC 7F00614C 00000000 */ nop +.L7F006150: +/* 03ACC0 7F006150 0FC1EBF6 */ jal set_camera_mode +/* 03ACC4 7F006154 24040009 */ li $a0, 9 +.L7F006158: +/* 03ACC8 7F006158 3C048003 */ lui $a0, %hi(D_800364D8) # $a0, 0x8003 +/* 03ACCC 7F00615C 24846518 */ addiu $a0, %lo(D_800364D8) # addiu $a0, $a0, 0x6518 +/* 03ACD0 7F006160 0000C880 */ sll $t9, $zero, 2 +/* 03ACD4 7F006164 0099C021 */ addu $t8, $a0, $t9 +/* 03ACD8 7F006168 8F0E0000 */ lw $t6, ($t8) +/* 03ACDC 7F00616C 3C038003 */ lui $v1, %hi(D_8003650C) # $v1, 0x8003 +/* 03ACE0 7F006170 2463654C */ addiu $v1, %lo(D_8003650C) # addiu $v1, $v1, 0x654c +/* 03ACE4 7F006174 AC600000 */ sw $zero, ($v1) +/* 03ACE8 7F006178 11C00009 */ beqz $t6, .L7F0061A0 +/* 03ACEC 7F00617C 00001025 */ move $v0, $zero +/* 03ACF0 7F006180 24480001 */ addiu $t0, $v0, 1 +.L7F006184: +/* 03ACF4 7F006184 00087880 */ sll $t7, $t0, 2 +/* 03ACF8 7F006188 008F5021 */ addu $t2, $a0, $t7 +/* 03ACFC 7F00618C 8D490000 */ lw $t1, ($t2) +/* 03AD00 7F006190 AC680000 */ sw $t0, ($v1) +/* 03AD04 7F006194 01001025 */ move $v0, $t0 +/* 03AD08 7F006198 5520FFFA */ bnezl $t1, .L7F006184 +/* 03AD0C 7F00619C 24480001 */ addiu $t0, $v0, 1 +.L7F0061A0: +/* 03AD10 7F0061A0 8E4C0000 */ lw $t4, ($s2) +/* 03AD14 7F0061A4 240B0001 */ li $t3, 1 +/* 03AD18 7F0061A8 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 03AD1C 7F0061AC AD8B0420 */ sw $t3, 0x420($t4) +/* 03AD20 7F0061B0 8E4D0000 */ lw $t5, ($s2) +/* 03AD24 7F0061B4 ADA00424 */ sw $zero, 0x424($t5) +/* 03AD28 7F0061B8 8E590000 */ lw $t9, ($s2) +/* 03AD2C 7F0061BC AF200428 */ sw $zero, 0x428($t9) +/* 03AD30 7F0061C0 8FBF003C */ lw $ra, 0x3c($sp) +/* 03AD34 7F0061C4 8FB20038 */ lw $s2, 0x38($sp) +/* 03AD38 7F0061C8 8FB10034 */ lw $s1, 0x34($sp) +/* 03AD3C 7F0061CC 8FB00030 */ lw $s0, 0x30($sp) +/* 03AD40 7F0061D0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 03AD44 7F0061D4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 03AD48 7F0061D8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 03AD4C 7F0061DC AC206550 */ sw $zero, %lo(D_80036510)($at) +/* 03AD50 7F0061E0 03E00008 */ jr $ra +/* 03AD54 7F0061E4 27BD00A0 */ addiu $sp, $sp, 0xa0 + +) +#endif + +#endif diff --git a/src/game/initexplosioncasing.c b/src/game/initexplosioncasing.c new file mode 100644 index 0000000..e1d4356 --- /dev/null +++ b/src/game/initexplosioncasing.c @@ -0,0 +1,281 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void alloc_explosion_smoke_casing_scorch_impact_buffers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_explosion_smoke_casing_scorch_impact_buffers +/* 03B8C0 7F006D90 3C018004 */ lui $at, %hi(D_80040170) +/* 03B8C4 7F006D94 AC200170 */ sw $zero, %lo(D_80040170)($at) +/* 03B8C8 7F006D98 3C018004 */ lui $at, %hi(D_80040174) +/* 03B8CC 7F006D9C AC200174 */ sw $zero, %lo(D_80040174)($at) +/* 03B8D0 7F006DA0 3C018004 */ lui $at, %hi(D_8004017C+0x684) +/* 03B8D4 7F006DA4 AC200800 */ sw $zero, %lo(D_8004017C+0x684)($at) +/* 03B8D8 7F006DA8 3C018004 */ lui $at, %hi(D_8004017C+0x688) +/* 03B8DC 7F006DAC AC200804 */ sw $zero, %lo(D_8004017C+0x688)($at) +/* 03B8E0 7F006DB0 3C018004 */ lui $at, %hi(D_8004017C+0x68C) +/* 03B8E4 7F006DB4 AC200808 */ sw $zero, %lo(D_8004017C+0x68C)($at) +/* 03B8E8 7F006DB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03B8EC 7F006DBC 44812000 */ mtc1 $at, $f4 +/* 03B8F0 7F006DC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03B8F4 7F006DC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 03B8F8 7F006DC8 3C018004 */ lui $at, %hi(D_80040178) +/* 03B8FC 7F006DCC 24041740 */ li $a0, 5952 +/* 03B900 7F006DD0 24050004 */ li $a1, 4 +/* 03B904 7F006DD4 0C0025C8 */ jal mempAllocBytesInBank +/* 03B908 7F006DD8 E4240178 */ swc1 $f4, %lo(D_80040178)($at) +/* 03B90C 7F006DDC 3C038008 */ lui $v1, %hi(ptr_explosion_buf) +/* 03B910 7F006DE0 2463A144 */ addiu $v1, %lo(ptr_explosion_buf) # addiu $v1, $v1, -0x5ebc +/* 03B914 7F006DE4 AC620000 */ sw $v0, ($v1) +/* 03B918 7F006DE8 00002025 */ move $a0, $zero +/* 03B91C 7F006DEC 00003025 */ move $a2, $zero +/* 03B920 7F006DF0 240503C0 */ li $a1, 960 +.L7F006DF4: +/* 03B924 7F006DF4 8C6E0000 */ lw $t6, ($v1) +/* 03B928 7F006DF8 00001025 */ move $v0, $zero +/* 03B92C 7F006DFC 01C67821 */ addu $t7, $t6, $a2 +/* 03B930 7F006E00 ADE00000 */ sw $zero, ($t7) +.L7F006E04: +/* 03B934 7F006E04 8C780000 */ lw $t8, ($v1) +/* 03B938 7F006E08 0004C940 */ sll $t9, $a0, 5 +/* 03B93C 7F006E0C 0324C823 */ subu $t9, $t9, $a0 +/* 03B940 7F006E10 0019C940 */ sll $t9, $t9, 5 +/* 03B944 7F006E14 03194021 */ addu $t0, $t8, $t9 +/* 03B948 7F006E18 01024821 */ addu $t1, $t0, $v0 +/* 03B94C 7F006E1C A520001C */ sh $zero, 0x1c($t1) +/* 03B950 7F006E20 8C6A0000 */ lw $t2, ($v1) +/* 03B954 7F006E24 00045940 */ sll $t3, $a0, 5 +/* 03B958 7F006E28 01645823 */ subu $t3, $t3, $a0 +/* 03B95C 7F006E2C 000B5940 */ sll $t3, $t3, 5 +/* 03B960 7F006E30 014B6021 */ addu $t4, $t2, $t3 +/* 03B964 7F006E34 01826821 */ addu $t5, $t4, $v0 +/* 03B968 7F006E38 A5A00034 */ sh $zero, 0x34($t5) +/* 03B96C 7F006E3C 8C6E0000 */ lw $t6, ($v1) +/* 03B970 7F006E40 00047940 */ sll $t7, $a0, 5 +/* 03B974 7F006E44 01E47823 */ subu $t7, $t7, $a0 +/* 03B978 7F006E48 000F7940 */ sll $t7, $t7, 5 +/* 03B97C 7F006E4C 01CFC021 */ addu $t8, $t6, $t7 +/* 03B980 7F006E50 0302C821 */ addu $t9, $t8, $v0 +/* 03B984 7F006E54 A720004C */ sh $zero, 0x4c($t9) +/* 03B988 7F006E58 8C680000 */ lw $t0, ($v1) +/* 03B98C 7F006E5C 00044940 */ sll $t1, $a0, 5 +/* 03B990 7F006E60 01244823 */ subu $t1, $t1, $a0 +/* 03B994 7F006E64 00094940 */ sll $t1, $t1, 5 +/* 03B998 7F006E68 01095021 */ addu $t2, $t0, $t1 +/* 03B99C 7F006E6C 01425821 */ addu $t3, $t2, $v0 +/* 03B9A0 7F006E70 24420060 */ addiu $v0, $v0, 0x60 +/* 03B9A4 7F006E74 1445FFE3 */ bne $v0, $a1, .L7F006E04 +/* 03B9A8 7F006E78 A5600064 */ sh $zero, 0x64($t3) +/* 03B9AC 7F006E7C 24840001 */ addiu $a0, $a0, 1 +/* 03B9B0 7F006E80 28810006 */ slti $at, $a0, 6 +/* 03B9B4 7F006E84 1420FFDB */ bnez $at, .L7F006DF4 +/* 03B9B8 7F006E88 24C603E0 */ addiu $a2, $a2, 0x3e0 +/* 03B9BC 7F006E8C 24041FE0 */ li $a0, 8160 +/* 03B9C0 7F006E90 0C0025C8 */ jal mempAllocBytesInBank +/* 03B9C4 7F006E94 24050004 */ li $a1, 4 +/* 03B9C8 7F006E98 3C038008 */ lui $v1, %hi(ptr_smoke_buf) +/* 03B9CC 7F006E9C 2463A140 */ addiu $v1, %lo(ptr_smoke_buf) # addiu $v1, $v1, -0x5ec0 +/* 03B9D0 7F006EA0 44800000 */ mtc1 $zero, $f0 +/* 03B9D4 7F006EA4 AC620000 */ sw $v0, ($v1) +/* 03B9D8 7F006EA8 00002025 */ move $a0, $zero +/* 03B9DC 7F006EAC 00003025 */ move $a2, $zero +/* 03B9E0 7F006EB0 24050190 */ li $a1, 400 +.L7F006EB4: +/* 03B9E4 7F006EB4 8C6C0000 */ lw $t4, ($v1) +/* 03B9E8 7F006EB8 00047880 */ sll $t7, $a0, 2 +/* 03B9EC 7F006EBC 01E47823 */ subu $t7, $t7, $a0 +/* 03B9F0 7F006EC0 000F7880 */ sll $t7, $t7, 2 +/* 03B9F4 7F006EC4 01866821 */ addu $t5, $t4, $a2 +/* 03B9F8 7F006EC8 ADA00000 */ sw $zero, ($t5) +/* 03B9FC 7F006ECC 01E47821 */ addu $t7, $t7, $a0 +/* 03BA00 7F006ED0 8C6E0000 */ lw $t6, ($v1) +/* 03BA04 7F006ED4 000F7880 */ sll $t7, $t7, 2 +/* 03BA08 7F006ED8 01E47823 */ subu $t7, $t7, $a0 +/* 03BA0C 7F006EDC 00044080 */ sll $t0, $a0, 2 +/* 03BA10 7F006EE0 01044023 */ subu $t0, $t0, $a0 +/* 03BA14 7F006EE4 000F78C0 */ sll $t7, $t7, 3 +/* 03BA18 7F006EE8 00084080 */ sll $t0, $t0, 2 +/* 03BA1C 7F006EEC 01CFC021 */ addu $t8, $t6, $t7 +/* 03BA20 7F006EF0 E7000014 */ swc1 $f0, 0x14($t8) +/* 03BA24 7F006EF4 01044021 */ addu $t0, $t0, $a0 +/* 03BA28 7F006EF8 8C790000 */ lw $t9, ($v1) +/* 03BA2C 7F006EFC 00084080 */ sll $t0, $t0, 2 +/* 03BA30 7F006F00 01044023 */ subu $t0, $t0, $a0 +/* 03BA34 7F006F04 000840C0 */ sll $t0, $t0, 3 +/* 03BA38 7F006F08 03284821 */ addu $t1, $t9, $t0 +/* 03BA3C 7F006F0C E520003C */ swc1 $f0, 0x3c($t1) +/* 03BA40 7F006F10 24020050 */ li $v0, 80 +.L7F006F14: +/* 03BA44 7F006F14 00045880 */ sll $t3, $a0, 2 +/* 03BA48 7F006F18 01645823 */ subu $t3, $t3, $a0 +/* 03BA4C 7F006F1C 000B5880 */ sll $t3, $t3, 2 +/* 03BA50 7F006F20 01645821 */ addu $t3, $t3, $a0 +/* 03BA54 7F006F24 8C6A0000 */ lw $t2, ($v1) +/* 03BA58 7F006F28 000B5880 */ sll $t3, $t3, 2 +/* 03BA5C 7F006F2C 01645823 */ subu $t3, $t3, $a0 +/* 03BA60 7F006F30 00047880 */ sll $t7, $a0, 2 +/* 03BA64 7F006F34 000B58C0 */ sll $t3, $t3, 3 +/* 03BA68 7F006F38 01E47823 */ subu $t7, $t7, $a0 +/* 03BA6C 7F006F3C 014B6021 */ addu $t4, $t2, $t3 +/* 03BA70 7F006F40 000F7880 */ sll $t7, $t7, 2 +/* 03BA74 7F006F44 01826821 */ addu $t5, $t4, $v0 +/* 03BA78 7F006F48 01E47821 */ addu $t7, $t7, $a0 +/* 03BA7C 7F006F4C E5A00014 */ swc1 $f0, 0x14($t5) +/* 03BA80 7F006F50 8C6E0000 */ lw $t6, ($v1) +/* 03BA84 7F006F54 000F7880 */ sll $t7, $t7, 2 +/* 03BA88 7F006F58 01E47823 */ subu $t7, $t7, $a0 +/* 03BA8C 7F006F5C 000F78C0 */ sll $t7, $t7, 3 +/* 03BA90 7F006F60 00044880 */ sll $t1, $a0, 2 +/* 03BA94 7F006F64 01244823 */ subu $t1, $t1, $a0 +/* 03BA98 7F006F68 01CFC021 */ addu $t8, $t6, $t7 +/* 03BA9C 7F006F6C 0302C821 */ addu $t9, $t8, $v0 +/* 03BAA0 7F006F70 00094880 */ sll $t1, $t1, 2 +/* 03BAA4 7F006F74 01244821 */ addu $t1, $t1, $a0 +/* 03BAA8 7F006F78 E720003C */ swc1 $f0, 0x3c($t9) +/* 03BAAC 7F006F7C 8C680000 */ lw $t0, ($v1) +/* 03BAB0 7F006F80 00094880 */ sll $t1, $t1, 2 +/* 03BAB4 7F006F84 01244823 */ subu $t1, $t1, $a0 +/* 03BAB8 7F006F88 000948C0 */ sll $t1, $t1, 3 +/* 03BABC 7F006F8C 00046880 */ sll $t5, $a0, 2 +/* 03BAC0 7F006F90 01A46823 */ subu $t5, $t5, $a0 +/* 03BAC4 7F006F94 01095021 */ addu $t2, $t0, $t1 +/* 03BAC8 7F006F98 01425821 */ addu $t3, $t2, $v0 +/* 03BACC 7F006F9C 000D6880 */ sll $t5, $t5, 2 +/* 03BAD0 7F006FA0 01A46821 */ addu $t5, $t5, $a0 +/* 03BAD4 7F006FA4 E5600064 */ swc1 $f0, 0x64($t3) +/* 03BAD8 7F006FA8 8C6C0000 */ lw $t4, ($v1) +/* 03BADC 7F006FAC 000D6880 */ sll $t5, $t5, 2 +/* 03BAE0 7F006FB0 01A46823 */ subu $t5, $t5, $a0 +/* 03BAE4 7F006FB4 000D68C0 */ sll $t5, $t5, 3 +/* 03BAE8 7F006FB8 018D7021 */ addu $t6, $t4, $t5 +/* 03BAEC 7F006FBC 01C27821 */ addu $t7, $t6, $v0 +/* 03BAF0 7F006FC0 244200A0 */ addiu $v0, $v0, 0xa0 +/* 03BAF4 7F006FC4 1445FFD3 */ bne $v0, $a1, .L7F006F14 +/* 03BAF8 7F006FC8 E5E0008C */ swc1 $f0, 0x8c($t7) +/* 03BAFC 7F006FCC 24840001 */ addiu $a0, $a0, 1 +/* 03BB00 7F006FD0 28810014 */ slti $at, $a0, 0x14 +/* 03BB04 7F006FD4 1420FFB7 */ bnez $at, .L7F006EB4 +/* 03BB08 7F006FD8 24C60198 */ addiu $a2, $a2, 0x198 +/* 03BB0C 7F006FDC 0FC26919 */ jal get_num_players +/* 03BB10 7F006FE0 00000000 */ nop +/* 03BB14 7F006FE4 24010001 */ li $at, 1 +/* 03BB18 7F006FE8 14410017 */ bne $v0, $at, .L7F007048 +/* 03BB1C 7F006FEC 240406E0 */ li $a0, 1760 +/* 03BB20 7F006FF0 0C0025C8 */ jal mempAllocBytesInBank +/* 03BB24 7F006FF4 24050004 */ li $a1, 4 +/* 03BB28 7F006FF8 3C058008 */ lui $a1, %hi(ptr_scorch_buf) +/* 03BB2C 7F006FFC 24A5A150 */ addiu $a1, %lo(ptr_scorch_buf) # addiu $a1, $a1, -0x5eb0 +/* 03BB30 7F007000 ACA20000 */ sw $v0, ($a1) +/* 03BB34 7F007004 240206E0 */ li $v0, 1760 +/* 03BB38 7F007008 00001825 */ move $v1, $zero +/* 03BB3C 7F00700C 2406FFFF */ li $a2, -1 +.L7F007010: +/* 03BB40 7F007010 8CB80000 */ lw $t8, ($a1) +/* 03BB44 7F007014 0303C821 */ addu $t9, $t8, $v1 +/* 03BB48 7F007018 A7260000 */ sh $a2, ($t9) +/* 03BB4C 7F00701C 8CA80000 */ lw $t0, ($a1) +/* 03BB50 7F007020 01034821 */ addu $t1, $t0, $v1 +/* 03BB54 7F007024 A5260058 */ sh $a2, 0x58($t1) +/* 03BB58 7F007028 8CAA0000 */ lw $t2, ($a1) +/* 03BB5C 7F00702C 01435821 */ addu $t3, $t2, $v1 +/* 03BB60 7F007030 A56600B0 */ sh $a2, 0xb0($t3) +/* 03BB64 7F007034 8CAC0000 */ lw $t4, ($a1) +/* 03BB68 7F007038 01836821 */ addu $t5, $t4, $v1 +/* 03BB6C 7F00703C 24630160 */ addiu $v1, $v1, 0x160 +/* 03BB70 7F007040 1462FFF3 */ bne $v1, $v0, .L7F007010 +/* 03BB74 7F007044 A5A60108 */ sh $a2, 0x108($t5) +.L7F007048: +/* 03BB78 7F007048 24041F40 */ li $a0, 8000 +/* 03BB7C 7F00704C 0C0025C8 */ jal mempAllocBytesInBank +/* 03BB80 7F007050 24050004 */ li $a1, 4 +/* 03BB84 7F007054 3C058008 */ lui $a1, %hi(ptr_bullet_impact_buf) +/* 03BB88 7F007058 24A5A154 */ addiu $a1, %lo(ptr_bullet_impact_buf) # addiu $a1, $a1, -0x5eac +/* 03BB8C 7F00705C ACA20000 */ sw $v0, ($a1) +/* 03BB90 7F007060 2406FFFF */ li $a2, -1 +/* 03BB94 7F007064 00001825 */ move $v1, $zero +.L7F007068: +/* 03BB98 7F007068 8CAE0000 */ lw $t6, ($a1) +/* 03BB9C 7F00706C 01C37821 */ addu $t7, $t6, $v1 +/* 03BBA0 7F007070 24630050 */ addiu $v1, $v1, 0x50 +/* 03BBA4 7F007074 28611F40 */ slti $at, $v1, 0x1f40 +/* 03BBA8 7F007078 1420FFFB */ bnez $at, .L7F007068 +/* 03BBAC 7F00707C A5E60000 */ sh $a2, ($t7) +/* 03BBB0 7F007080 0FC26919 */ jal get_num_players +/* 03BBB4 7F007084 00000000 */ nop +/* 03BBB8 7F007088 241800C8 */ li $t8, 200 +/* 03BBBC 7F00708C 0302001A */ div $zero, $t8, $v0 +/* 03BBC0 7F007090 3C068008 */ lui $a2, %hi(max_casings) +/* 03BBC4 7F007094 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BBC8 7F007098 14400002 */ bnez $v0, .L7F0070A4 +/* 03BBCC 7F00709C 00000000 */ nop +/* 03BBD0 7F0070A0 0007000D */ break 7 +.L7F0070A4: +/* 03BBD4 7F0070A4 2401FFFF */ li $at, -1 +/* 03BBD8 7F0070A8 14410004 */ bne $v0, $at, .L7F0070BC +/* 03BBDC 7F0070AC 3C018000 */ lui $at, 0x8000 +/* 03BBE0 7F0070B0 17010002 */ bne $t8, $at, .L7F0070BC +/* 03BBE4 7F0070B4 00000000 */ nop +/* 03BBE8 7F0070B8 0006000D */ break 6 +.L7F0070BC: +/* 03BBEC 7F0070BC 0000C812 */ mflo $t9 +/* 03BBF0 7F0070C0 ACD90000 */ sw $t9, ($a2) +/* 03BBF4 7F0070C4 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BBF8 7F0070C8 00000000 */ nop +/* 03BBFC 7F0070CC 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC00 7F0070D0 2401001D */ li $at, 29 +/* 03BC04 7F0070D4 10410007 */ beq $v0, $at, .L7F0070F4 +/* 03BC08 7F0070D8 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BC0C 7F0070DC 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BC10 7F0070E0 00000000 */ nop +/* 03BC14 7F0070E4 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC18 7F0070E8 2401001E */ li $at, 30 +/* 03BC1C 7F0070EC 14410004 */ bne $v0, $at, .L7F007100 +/* 03BC20 7F0070F0 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +.L7F0070F4: +/* 03BC24 7F0070F4 8CC80000 */ lw $t0, ($a2) +/* 03BC28 7F0070F8 00084843 */ sra $t1, $t0, 1 +/* 03BC2C 7F0070FC ACC90000 */ sw $t1, ($a2) +.L7F007100: +/* 03BC30 7F007100 8CC40000 */ lw $a0, ($a2) +/* 03BC34 7F007104 2401FFF0 */ li $at, -16 +/* 03BC38 7F007108 24050004 */ li $a1, 4 +/* 03BC3C 7F00710C 00045100 */ sll $t2, $a0, 4 +/* 03BC40 7F007110 01445023 */ subu $t2, $t2, $a0 +/* 03BC44 7F007114 000A50C0 */ sll $t2, $t2, 3 +/* 03BC48 7F007118 2544000F */ addiu $a0, $t2, 0xf +/* 03BC4C 7F00711C 00815824 */ and $t3, $a0, $at +/* 03BC50 7F007120 0C0025C8 */ jal mempAllocBytesInBank +/* 03BC54 7F007124 01602025 */ move $a0, $t3 +/* 03BC58 7F007128 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC5C 7F00712C 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BC60 7F007130 8CCC0000 */ lw $t4, ($a2) +/* 03BC64 7F007134 3C038008 */ lui $v1, %hi(ptr_ejected_casing_buf) +/* 03BC68 7F007138 2463A14C */ addiu $v1, %lo(ptr_ejected_casing_buf) # addiu $v1, $v1, -0x5eb4 +/* 03BC6C 7F00713C AC620000 */ sw $v0, ($v1) +/* 03BC70 7F007140 1980000B */ blez $t4, .L7F007170 +/* 03BC74 7F007144 00002025 */ move $a0, $zero +/* 03BC78 7F007148 00001025 */ move $v0, $zero +/* 03BC7C 7F00714C 8C6D0000 */ lw $t5, ($v1) +.L7F007150: +/* 03BC80 7F007150 24840001 */ addiu $a0, $a0, 1 +/* 03BC84 7F007154 01A27021 */ addu $t6, $t5, $v0 +/* 03BC88 7F007158 ADC00000 */ sw $zero, ($t6) +/* 03BC8C 7F00715C 8CCF0000 */ lw $t7, ($a2) +/* 03BC90 7F007160 24420078 */ addiu $v0, $v0, 0x78 +/* 03BC94 7F007164 008F082A */ slt $at, $a0, $t7 +/* 03BC98 7F007168 5420FFF9 */ bnezl $at, .L7F007150 +/* 03BC9C 7F00716C 8C6D0000 */ lw $t5, ($v1) +.L7F007170: +/* 03BCA0 7F007170 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BCA4 7F007174 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03BCA8 7F007178 03E00008 */ jr $ra +/* 03BCAC 7F00717C 00000000 */ nop +) +#endif + + diff --git a/src/game/initgamedata.c b/src/game/initgamedata.c new file mode 100644 index 0000000..9b7171b --- /dev/null +++ b/src/game/initgamedata.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "game/mainmenu.h" +#include "bondconstants.h" + /** + * initGameData + * + **/ +void initGameData(void) { + current_menu = MENU_INVALID; + menu_update = 0; + maybe_prev_menu = MENU_INVALID; + menu_timer = 0; + selected_stage = -1; + briefingpage = BRIEFING_INVALID; + selected_difficulty = DIFFICULTY_MULTI; + screen_size = 0; + folder_selection_screen_option_icon = 0; + selected_folder_num = 0; + mission_failed_or_aborted = 0; + is_first_time_on_legal_screen = 1; + is_first_time_on_main_menu = 1; + prev_keypresses = 0; + maybe_is_in_menu = 1; + slider_007_mode_reaction = 0.0f; + slider_007_mode_health = 1.0f; + slider_007_mode_accuracy = 1.0f; + slider_007_mode_damage = 1.0f; + do_not_play_intro_movie = 0; + randomly_selected_intro_animation = 0; + intro_animation_count = 0; + objinstance = 0; + ptrobjinstance = 0; + full_actor_intro = 0; +} + + diff --git a/src/game/initgamedata.h b/src/game/initgamedata.h new file mode 100644 index 0000000..7f5822c --- /dev/null +++ b/src/game/initgamedata.h @@ -0,0 +1,7 @@ +#ifndef _INITGAMEDATE_H_ +#define _INITGAMEDATE_H_ +#include "ultra64.h" + +void initGameData(void); + +#endif diff --git a/src/game/initguards.c b/src/game/initguards.c new file mode 100644 index 0000000..03216d6 --- /dev/null +++ b/src/game/initguards.c @@ -0,0 +1,138 @@ +#include "ultra64.h" +#include "game/chr.h" + +void init_guards(void) { + animation_rate = 1.0f; + D_8002C904 = 0; + D_8002C908 = 0; + D_8002C90C = 0; + D_8002C910 = 0; + D_8002CC58 = 0; + show_patrols_flag = 0; + player1_guardID = 0x1388; + ptr_guard_data = 0; + num_guards = 0; + init_obj_register_difficulty_vals(); +} + + + +#ifdef NONMATCHING +void alloc_init_GUARDdata_entries(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_init_GUARDdata_entries +/* 0359E8 7F000EB8 248E000A */ addiu $t6, $a0, 0xa +/* 0359EC 7F000EBC 000E7900 */ sll $t7, $t6, 4 +/* 0359F0 7F000EC0 01EE7823 */ subu $t7, $t7, $t6 +/* 0359F4 7F000EC4 000F78C0 */ sll $t7, $t7, 3 +/* 0359F8 7F000EC8 01EE7823 */ subu $t7, $t7, $t6 +/* 0359FC 7F000ECC 000F7880 */ sll $t7, $t7, 2 +/* 035A00 7F000ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 035A04 7F000ED4 3C068003 */ lui $a2, %hi(num_guards) +/* 035A08 7F000ED8 25E4000F */ addiu $a0, $t7, 0xf +/* 035A0C 7F000EDC 24C6CC68 */ addiu $a2, %lo(num_guards) # addiu $a2, $a2, -0x3398 +/* 035A10 7F000EE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 035A14 7F000EE4 3498000F */ ori $t8, $a0, 0xf +/* 035A18 7F000EE8 ACCE0000 */ sw $t6, ($a2) +/* 035A1C 7F000EEC 3B04000F */ xori $a0, $t8, 0xf +/* 035A20 7F000EF0 0C0025C8 */ jal mempAllocBytesInBank +/* 035A24 7F000EF4 24050004 */ li $a1, 4 +/* 035A28 7F000EF8 3C068003 */ lui $a2, %hi(num_guards) +/* 035A2C 7F000EFC 24C6CC68 */ addiu $a2, %lo(num_guards) # addiu $a2, $a2, -0x3398 +/* 035A30 7F000F00 8CC80000 */ lw $t0, ($a2) +/* 035A34 7F000F04 3C048003 */ lui $a0, %hi(ptr_guard_data) +/* 035A38 7F000F08 2484CC64 */ addiu $a0, %lo(ptr_guard_data) # addiu $a0, $a0, -0x339c +/* 035A3C 7F000F0C AC820000 */ sw $v0, ($a0) +/* 035A40 7F000F10 1900000B */ blez $t0, .L7F000F40 +/* 035A44 7F000F14 00001825 */ move $v1, $zero +/* 035A48 7F000F18 00001025 */ move $v0, $zero +/* 035A4C 7F000F1C 8C890000 */ lw $t1, ($a0) +.L7F000F20: +/* 035A50 7F000F20 24630001 */ addiu $v1, $v1, 1 +/* 035A54 7F000F24 01225021 */ addu $t2, $t1, $v0 +/* 035A58 7F000F28 AD40001C */ sw $zero, 0x1c($t2) +/* 035A5C 7F000F2C 8CCB0000 */ lw $t3, ($a2) +/* 035A60 7F000F30 244201DC */ addiu $v0, $v0, 0x1dc +/* 035A64 7F000F34 006B082A */ slt $at, $v1, $t3 +/* 035A68 7F000F38 5420FFF9 */ bnezl $at, .L7F000F20 +/* 035A6C 7F000F3C 8C890000 */ lw $t1, ($a0) +.L7F000F40: +/* 035A70 7F000F40 8FBF0014 */ lw $ra, 0x14($sp) +/* 035A74 7F000F44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035A78 7F000F48 03E00008 */ jr $ra +/* 035A7C 7F000F4C 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void set_new_rand_head_bodies(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_new_rand_head_bodies +/* 035A80 7F000F50 3C0E8004 */ lui $t6, %hi(c_item_entries) +/* 035A84 7F000F54 8DCEDE10 */ lw $t6, %lo(c_item_entries)($t6) +/* 035A88 7F000F58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 035A8C 7F000F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 035A90 7F000F60 11C00009 */ beqz $t6, .L7F000F88 +/* 035A94 7F000F64 AFA40018 */ sw $a0, 0x18($sp) +/* 035A98 7F000F68 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 035A9C 7F000F6C 25E2DE10 */ addiu $v0, $t7, %lo(c_item_entries) +/* 035AA0 7F000F70 8C430000 */ lw $v1, ($v0) +/* 035AA4 7F000F74 AC600000 */ sw $zero, ($v1) +.L7F000F78: +/* 035AA8 7F000F78 8C430014 */ lw $v1, 0x14($v0) +/* 035AAC 7F000F7C 24420014 */ addiu $v0, $v0, 0x14 +/* 035AB0 7F000F80 5460FFFD */ bnezl $v1, .L7F000F78 +/* 035AB4 7F000F84 AC600000 */ sw $zero, ($v1) +.L7F000F88: +/* 035AB8 7F000F88 0C002914 */ jal get_random_value +/* 035ABC 7F000F8C 00000000 */ nop +/* 035AC0 7F000F90 3C188003 */ lui $t8, %hi(num_male_heads) +/* 035AC4 7F000F94 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) +/* 035AC8 7F000F98 3C018003 */ lui $at, %hi(current_random_male_head) +/* 035ACC 7F000F9C 0058001B */ divu $zero, $v0, $t8 +/* 035AD0 7F000FA0 0000C810 */ mfhi $t9 +/* 035AD4 7F000FA4 AC39CE38 */ sw $t9, %lo(current_random_male_head)($at) +/* 035AD8 7F000FA8 17000002 */ bnez $t8, .L7F000FB4 +/* 035ADC 7F000FAC 00000000 */ nop +/* 035AE0 7F000FB0 0007000D */ break 7 +.L7F000FB4: +/* 035AE4 7F000FB4 0C002914 */ jal get_random_value +/* 035AE8 7F000FB8 00000000 */ nop +/* 035AEC 7F000FBC 3C088003 */ lui $t0, %hi(num_female_heads) +/* 035AF0 7F000FC0 8D08CD08 */ lw $t0, %lo(num_female_heads)($t0) +/* 035AF4 7F000FC4 3C018003 */ lui $at, %hi(current_random_female_head) +/* 035AF8 7F000FC8 0048001B */ divu $zero, $v0, $t0 +/* 035AFC 7F000FCC 00004810 */ mfhi $t1 +/* 035B00 7F000FD0 AC29CE3C */ sw $t1, %lo(current_random_female_head)($at) +/* 035B04 7F000FD4 15000002 */ bnez $t0, .L7F000FE0 +/* 035B08 7F000FD8 00000000 */ nop +/* 035B0C 7F000FDC 0007000D */ break 7 +.L7F000FE0: +/* 035B10 7F000FE0 0C002914 */ jal get_random_value +/* 035B14 7F000FE4 00000000 */ nop +/* 035B18 7F000FE8 3C0A8003 */ lui $t2, %hi(num_bodies) +/* 035B1C 7F000FEC 8D4ACD00 */ lw $t2, %lo(num_bodies)($t2) +/* 035B20 7F000FF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 035B24 7F000FF4 3C018003 */ lui $at, %hi(current_random_body) +/* 035B28 7F000FF8 004A001B */ divu $zero, $v0, $t2 +/* 035B2C 7F000FFC 00005810 */ mfhi $t3 +/* 035B30 7F001000 AC2BCE34 */ sw $t3, %lo(current_random_body)($at) +/* 035B34 7F001004 15400002 */ bnez $t2, .L7F001010 +/* 035B38 7F001008 00000000 */ nop +/* 035B3C 7F00100C 0007000D */ break 7 +.L7F001010: +/* 035B40 7F001010 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035B44 7F001014 03E00008 */ jr $ra +/* 035B48 7F001018 00000000 */ nop +) +#endif + diff --git a/src/game/initimages.c b/src/game/initimages.c new file mode 100644 index 0000000..755d512 --- /dev/null +++ b/src/game/initimages.c @@ -0,0 +1,55 @@ +#include "ultra64.h" + +extern image_entries; + +#ifdef NONMATCHING +void image_entries_load(void) { + +} +#else +GLOBAL_ASM( +.text +glabel image_entries_load +/* 035700 7F000BD0 3C048005 */ lui $a0, %hi(image_entries) +/* 035704 7F000BD4 24829300 */ addiu $v0, $a0, %lo(image_entries) +/* 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 +/* 035714 7F000BE4 3407FFFF */ li $a3, 65535 +/* 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 +/* 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 +/* 035738 7F000C08 00A13024 */ and $a2, $a1, $at +.L7F000C0C: +/* 03573C 7F000C0C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035740 7F000C10 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 035744 7F000C14 0061C824 */ and $t9, $v1, $at +/* 035748 7F000C18 03254026 */ xor $t0, $t9, $a1 +/* 03574C 7F000C1C 00084A00 */ sll $t1, $t0, 8 +/* 035750 7F000C20 00095202 */ srl $t2, $t1, 8 +/* 035754 7F000C24 01455826 */ xor $t3, $t2, $a1 +/* 035758 7F000C28 8C450008 */ lw $a1, 8($v0) +/* 03575C 7F000C2C 00661821 */ addu $v1, $v1, $a2 +/* 035760 7F000C30 AC4B0000 */ sw $t3, ($v0) +/* 035764 7F000C34 00A13024 */ and $a2, $a1, $at +/* 035768 7F000C38 14E6FFF4 */ bne $a3, $a2, .L7F000C0C +/* 03576C 7F000C3C 24420008 */ addiu $v0, $v0, 8 +.L7F000C40: +/* 035770 7F000C40 8C450000 */ lw $a1, ($v0) +/* 035774 7F000C44 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035778 7F000C48 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 03577C 7F000C4C 00616024 */ and $t4, $v1, $at +/* 035780 7F000C50 01856826 */ xor $t5, $t4, $a1 +/* 035784 7F000C54 000D7200 */ sll $t6, $t5, 8 +/* 035788 7F000C58 000E7A02 */ srl $t7, $t6, 8 +/* 03578C 7F000C5C 01E5C026 */ xor $t8, $t7, $a1 +/* 035790 7F000C60 03E00008 */ jr $ra +/* 035794 7F000C64 AC580000 */ sw $t8, ($v0) +) +#endif + diff --git a/src/game/initintromatrices.c b/src/game/initintromatrices.c new file mode 100644 index 0000000..f755859 --- /dev/null +++ b/src/game/initintromatrices.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/intro_logos.h" + +void alloc_intro_matrices(void) { + D_8002A7D0 = 0; + matrix_buffer_rarelogo_0 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_gunbarrel_0 = mempAllocBytesInBank(0x40, 4); + matrix_buffer_rarelogo_1 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_rarelogo_2 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_gunbarrel_1 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_intro_backdrop = mempAllocBytesInBank(0x80, 4); + matrix_buffer_intro_bond = mempAllocBytesInBank(0x80, 4); +} + + diff --git a/src/game/inititemslots.c b/src/game/inititemslots.c new file mode 100644 index 0000000..e3e4c72 --- /dev/null +++ b/src/game/inititemslots.c @@ -0,0 +1,87 @@ +#include "ultra64.h" +#include "game/bondinv.h" + + + + +#ifdef NONMATCHING +void sub_GAME_7F0061F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0061F0 +/* 03AD20 7F0061F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 03AD24 7F0061F4 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 03AD28 7F0061F8 8C8E0000 */ lw $t6, ($a0) +/* 03AD2C 7F0061FC 2405FFFF */ li $a1, -1 +/* 03AD30 7F006200 24030018 */ li $v1, 24 +/* 03AD34 7F006204 ADC011EC */ sw $zero, 0x11ec($t6) +/* 03AD38 7F006208 8C8F0000 */ lw $t7, ($a0) +/* 03AD3C 7F00620C 24020078 */ li $v0, 120 +/* 03AD40 7F006210 ADE51200 */ sw $a1, 0x1200($t7) +/* 03AD44 7F006214 8C980000 */ lw $t8, ($a0) +/* 03AD48 7F006218 AF05120C */ sw $a1, 0x120c($t8) +.L7F00621C: +/* 03AD4C 7F00621C 8C990000 */ lw $t9, ($a0) +/* 03AD50 7F006220 03234021 */ addu $t0, $t9, $v1 +/* 03AD54 7F006224 AD051200 */ sw $a1, 0x1200($t0) +/* 03AD58 7F006228 8C890000 */ lw $t1, ($a0) +/* 03AD5C 7F00622C 01235021 */ addu $t2, $t1, $v1 +/* 03AD60 7F006230 AD45120C */ sw $a1, 0x120c($t2) +/* 03AD64 7F006234 8C8B0000 */ lw $t3, ($a0) +/* 03AD68 7F006238 01636021 */ addu $t4, $t3, $v1 +/* 03AD6C 7F00623C AD851218 */ sw $a1, 0x1218($t4) +/* 03AD70 7F006240 8C8D0000 */ lw $t5, ($a0) +/* 03AD74 7F006244 01A37021 */ addu $t6, $t5, $v1 +/* 03AD78 7F006248 24630030 */ addiu $v1, $v1, 0x30 +/* 03AD7C 7F00624C 1462FFF3 */ bne $v1, $v0, .L7F00621C +/* 03AD80 7F006250 ADC51224 */ sw $a1, 0x1224($t6) +/* 03AD84 7F006254 03E00008 */ jr $ra +/* 03AD88 7F006258 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_additional_item_slots(s32 arg0) { + // Node 0 + pPlayer->unk11E8 = (s32) (arg0 + 0x1e); + pPlayer->unk11E4 = mempAllocBytesInBank(((((pPlayer->unk11E8 * 0x14) + 0xf) | 0xf) ^ 0xf), 4); + reinit_BONDdata_inventory(); +} + +#else +GLOBAL_ASM( +.text +glabel alloc_additional_item_slots +/* 03AD8C 7F00625C 3C028008 */ lui $v0, %hi(pPlayer) +/* 03AD90 7F006260 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 03AD94 7F006264 8C4F0000 */ lw $t7, ($v0) +/* 03AD98 7F006268 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03AD9C 7F00626C AFBF0014 */ sw $ra, 0x14($sp) +/* 03ADA0 7F006270 248E001E */ addiu $t6, $a0, 0x1e +/* 03ADA4 7F006274 ADEE11E8 */ sw $t6, 0x11e8($t7) +/* 03ADA8 7F006278 8C580000 */ lw $t8, ($v0) +/* 03ADAC 7F00627C 24050004 */ li $a1, 4 +/* 03ADB0 7F006280 8F0411E8 */ lw $a0, 0x11e8($t8) +/* 03ADB4 7F006284 0004C880 */ sll $t9, $a0, 2 +/* 03ADB8 7F006288 0324C821 */ addu $t9, $t9, $a0 +/* 03ADBC 7F00628C 0019C880 */ sll $t9, $t9, 2 +/* 03ADC0 7F006290 2724000F */ addiu $a0, $t9, 0xf +/* 03ADC4 7F006294 3488000F */ ori $t0, $a0, 0xf +/* 03ADC8 7F006298 0C0025C8 */ jal mempAllocBytesInBank +/* 03ADCC 7F00629C 3904000F */ xori $a0, $t0, 0xf +/* 03ADD0 7F0062A0 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 03ADD4 7F0062A4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 03ADD8 7F0062A8 0FC22FFC */ jal reinit_BONDdata_inventory +/* 03ADDC 7F0062AC AD4211E4 */ sw $v0, 0x11e4($t2) +/* 03ADE0 7F0062B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 03ADE4 7F0062B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03ADE8 7F0062B8 03E00008 */ jr $ra +/* 03ADEC 7F0062BC 00000000 */ nop +) +#endif + + diff --git a/src/game/initmenus.c b/src/game/initmenus.c new file mode 100644 index 0000000..4f18d3c --- /dev/null +++ b/src/game/initmenus.c @@ -0,0 +1,86 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void init_menus_or_reset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_menus_or_reset +/* 035850 7F000D20 2402FFFF */ li $v0, -1 +/* 035854 7F000D24 3C018003 */ lui $at, %hi(current_menu) +/* 035858 7F000D28 AC22A8C0 */ sw $v0, %lo(current_menu)($at) +/* 03585C 7F000D2C 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 035860 7F000D30 AC22A8C8 */ sw $v0, %lo(maybe_prev_menu)($at) +/* 035864 7F000D34 3C018003 */ lui $at, %hi(screen_size) +/* 035868 7F000D38 AC20A940 */ sw $zero, %lo(screen_size)($at) +/* 03586C 7F000D3C 24030001 */ li $v1, 1 +/* 035870 7F000D40 3C018003 */ lui $at, %hi(spectrum_related_flag) +/* 035874 7F000D44 AC23A944 */ sw $v1, %lo(spectrum_related_flag)($at) +/* 035878 7F000D48 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 03587C 7F000D4C AC20A948 */ sw $zero, %lo(is_emulating_spectrum)($at) +/* 035880 7F000D50 3C018003 */ lui $at, %hi(folder_selection_screen_option_icon) +/* 035884 7F000D54 AC20A918 */ sw $zero, %lo(folder_selection_screen_option_icon)($at) +/* 035888 7F000D58 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 03588C 7F000D5C AC22A91C */ sw $v0, %lo(folder_selected_for_deletion)($at) +/* 035890 7F000D60 3C018003 */ lui $at, %hi(folder_selected_for_deletion_choice) +/* 035894 7F000D64 AC23A920 */ sw $v1, %lo(folder_selected_for_deletion_choice)($at) +/* 035898 7F000D68 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 03589C 7F000D6C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 0358A0 7F000D70 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 0358A4 7F000D74 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 0358A8 7F000D78 3C0E8003 */ lui $t6, %hi(prev_keypresses) +/* 0358AC 7F000D7C 8DCEA934 */ lw $t6, %lo(prev_keypresses)($t6) +/* 0358B0 7F000D80 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0358B4 7F000D84 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 0358B8 7F000D88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0358BC 7F000D8C 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 0358C0 7F000D90 AFBF0014 */ sw $ra, 0x14($sp) +/* 0358C4 7F000D94 11C00005 */ beqz $t6, .L7F000DAC +/* 0358C8 7F000D98 AC23A93C */ sw $v1, %lo(maybe_is_in_menu)($at) +/* 0358CC 7F000D9C 3C028003 */ lui $v0, %hi(menu_update) +/* 0358D0 7F000DA0 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 0358D4 7F000DA4 240F0005 */ li $t7, 5 +/* 0358D8 7F000DA8 AC4F0000 */ sw $t7, ($v0) +.L7F000DAC: +/* 0358DC 7F000DAC 3C028003 */ lui $v0, %hi(menu_update) +/* 0358E0 7F000DB0 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 0358E4 7F000DB4 8C580000 */ lw $t8, ($v0) +/* 0358E8 7F000DB8 3C040007 */ lui $a0, (0x00078000 >> 16) # lui $a0, 7 +/* 0358EC 7F000DBC 24190005 */ li $t9, 5 +/* 0358F0 7F000DC0 07010002 */ bgez $t8, .L7F000DCC +/* 0358F4 7F000DC4 34848000 */ ori $a0, (0x00078000 & 0xFFFF) # ori $a0, $a0, 0x8000 +/* 0358F8 7F000DC8 AC590000 */ sw $t9, ($v0) +.L7F000DCC: +/* 0358FC 7F000DCC 0C0025C8 */ jal mempAllocBytesInBank +/* 035900 7F000DD0 24050004 */ li $a1, 4 +/* 035904 7F000DD4 3C018003 */ lui $at, %hi(ptr_logo_and_walletbond_DL) +/* 035908 7F000DD8 3C040004 */ lui $a0, (0x0004B040 >> 16) # lui $a0, 4 +/* 03590C 7F000DDC AC22A950 */ sw $v0, %lo(ptr_logo_and_walletbond_DL)($at) +/* 035910 7F000DE0 3484B040 */ ori $a0, (0x0004B040 & 0xFFFF) # ori $a0, $a0, 0xb040 +/* 035914 7F000DE4 0C0025C8 */ jal mempAllocBytesInBank +/* 035918 7F000DE8 24050004 */ li $a1, 4 +/* 03591C 7F000DEC 3C038003 */ lui $v1, %hi(ptr_menu_videobuffer) +/* 035920 7F000DF0 2449003F */ addiu $t1, $v0, 0x3f +/* 035924 7F000DF4 2401FFC0 */ li $at, -64 +/* 035928 7F000DF8 2463A954 */ addiu $v1, %lo(ptr_menu_videobuffer) # addiu $v1, $v1, -0x56ac +/* 03592C 7F000DFC 01215024 */ and $t2, $t1, $at +/* 035930 7F000E00 AC620000 */ sw $v0, ($v1) +/* 035934 7F000E04 AC6A0000 */ sw $t2, ($v1) +/* 035938 7F000E08 3C018003 */ lui $at, %hi(ptr_folder_object_instance) +/* 03593C 7F000E0C AC20A95C */ sw $zero, %lo(ptr_folder_object_instance)($at) +/* 035940 7F000E10 3C018003 */ lui $at, %hi(set0_never_used) +/* 035944 7F000E14 AC20A960 */ sw $zero, %lo(set0_never_used)($at) +/* 035948 7F000E18 3C018003 */ lui $at, %hi(set0_never_used_0) +/* 03594C 7F000E1C AC20A964 */ sw $zero, %lo(set0_never_used_0)($at) +/* 035950 7F000E20 3C018003 */ lui $at, %hi(D_8002A968) +/* 035954 7F000E24 0FC0031C */ jal alloc_intro_matrices +/* 035958 7F000E28 AC20A968 */ sw $zero, %lo(D_8002A968)($at) +/* 03595C 7F000E2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 035960 7F000E30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035964 7F000E34 03E00008 */ jr $ra +/* 035968 7F000E38 00000000 */ nop +) +#endif diff --git a/src/game/initmttex.c b/src/game/initmttex.c new file mode 100644 index 0000000..186e663 --- /dev/null +++ b/src/game/initmttex.c @@ -0,0 +1,57 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void set_mt_tex_alloc(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel str_Mt +.word 0x2d6d7400 /*-mt*/ +glabel str_Mt_0 +.word 0x2d6d7400 /*-mt*/ +.text +glabel set_mt_tex_alloc +/* 03BE50 7F007320 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03BE54 7F007324 AFBF0014 */ sw $ra, 0x14($sp) +/* 03BE58 7F007328 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D090) +/* 03BE5C 7F00732C 3C058005 */ lui $a1, %hi(str_Mt) +/* 03BE60 7F007330 AC20D090 */ sw $zero, %lo(dword_CODE_bss_8008D090)($at) +/* 03BE64 7F007334 24A5F200 */ addiu $a1, %lo(str_Mt) # addiu $a1, $a1, -0xe00 +/* 03BE68 7F007338 0C0029A8 */ jal check_token +/* 03BE6C 7F00733C 24040001 */ li $a0, 1 +/* 03BE70 7F007340 1040000B */ beqz $v0, .L7F007370 +/* 03BE74 7F007344 24040001 */ li $a0, 1 +/* 03BE78 7F007348 3C058005 */ lui $a1, %hi(str_Mt_0) +/* 03BE7C 7F00734C 0C0029A8 */ jal check_token +/* 03BE80 7F007350 24A5F204 */ addiu $a1, %lo(str_Mt_0) # addiu $a1, $a1, -0xdfc +/* 03BE84 7F007354 00402025 */ move $a0, $v0 +/* 03BE88 7F007358 00002825 */ move $a1, $zero +/* 03BE8C 7F00735C 0C002A78 */ jal strtol +/* 03BE90 7F007360 00003025 */ move $a2, $zero +/* 03BE94 7F007364 00027280 */ sll $t6, $v0, 0xa +/* 03BE98 7F007368 3C018005 */ lui $at, %hi(bytes) +/* 03BE9C 7F00736C AC2E9170 */ sw $t6, %lo(bytes)($at) +.L7F007370: +/* 03BEA0 7F007370 3C048005 */ lui $a0, %hi(bytes) +/* 03BEA4 7F007374 8C849170 */ lw $a0, %lo(bytes)($a0) +/* 03BEA8 7F007378 0C0025C8 */ jal mempAllocBytesInBank +/* 03BEAC 7F00737C 24050004 */ li $a1, 4 +/* 03BEB0 7F007380 3C048009 */ lui $a0, %hi(ptr_texture_alloc_start) +/* 03BEB4 7F007384 3C068005 */ lui $a2, %hi(bytes) +/* 03BEB8 7F007388 8CC69170 */ lw $a2, %lo(bytes)($a2) +/* 03BEBC 7F00738C 2484C720 */ addiu $a0, %lo(ptr_texture_alloc_start) # addiu $a0, $a0, -0x38e0 +/* 03BEC0 7F007390 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 03BEC4 7F007394 00402825 */ move $a1, $v0 +/* 03BEC8 7F007398 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BECC 7F00739C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03BED0 7F0073A0 03E00008 */ jr $ra +/* 03BED4 7F0073A4 00000000 */ nop +) +#endif + + + diff --git a/src/game/initnull_0009D0.c b/src/game/initnull_0009D0.c new file mode 100644 index 0000000..2f85da4 --- /dev/null +++ b/src/game/initnull_0009D0.c @@ -0,0 +1,6 @@ +#include "ultra64.h" + +void null_init_main_3(void) { + return; +} + diff --git a/src/game/initnull_000BC0.c b/src/game/initnull_000BC0.c new file mode 100644 index 0000000..8f4bf85 --- /dev/null +++ b/src/game/initnull_000BC0.c @@ -0,0 +1,5 @@ +#include "ultra64.h" + +void null_init_main_2(void) { + return; +} diff --git a/src/game/initobjects.c b/src/game/initobjects.c new file mode 100644 index 0000000..3df32f2 --- /dev/null +++ b/src/game/initobjects.c @@ -0,0 +1,554 @@ +#include "ultra64.h" +#include "game/initobjects.h" +#include "game/chrai.h" +//this file may very well be a few different sub files + +struct object_animation_controller ptr_monitorimageobjectanimationcontroller = {&monitor_animation_microcode, 0, 0xFFFF, 0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1.0, 0.0}; +struct object_animation_controller unknown_object_animation_controller = {&dword_D_80031F00, 0, 0xFFFF, 0, 0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1.0}; +struct object_animation_controller taser_object_animation_controller = {&dword_D_80031F44, 0, 0xFFFF, 0, 0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1.0}; +f32 unused_8002a3bc = 0.0f; +f32 scale_1_0_item_related = 1.0f; + + +#ifdef NONMATCHING +void init_sound_effects_registers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_sound_effects_registers +/* 035FE0 7F0014B0 3C038007 */ lui $v1, %hi(sfx_related) +/* 035FE4 7F0014B4 3C028007 */ lui $v0, %hi(ptr_list_object_lookup_indices) +/* 035FE8 7F0014B8 24429C30 */ addiu $v0, %lo(ptr_list_object_lookup_indices) # addiu $v0, $v0, -0x63d0 +/* 035FEC 7F0014BC 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +.L7F0014C0: +/* 035FF0 7F0014C0 24630060 */ addiu $v1, $v1, 0x60 +/* 035FF4 7F0014C4 AC60FFB8 */ sw $zero, -0x48($v1) +/* 035FF8 7F0014C8 AC60FFD0 */ sw $zero, -0x30($v1) +/* 035FFC 7F0014CC AC60FFE8 */ sw $zero, -0x18($v1) +/* 036000 7F0014D0 1462FFFB */ bne $v1, $v0, .L7F0014C0 +/* 036004 7F0014D4 AC60FFA0 */ sw $zero, -0x60($v1) +/* 036008 7F0014D8 03E00008 */ jr $ra +/* 03600C 7F0014DC 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void init_load_objpos_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_load_objpos_table +/* 036010 7F0014E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 036014 7F0014E4 44812000 */ mtc1 $at, $f4 +/* 036018 7F0014E8 3C018003 */ lui $at, %hi(difficulty) +/* 03601C 7F0014EC 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) +/* 036020 7F0014F0 E4240AAC */ swc1 $f4, %lo(difficulty)($at) +/* 036024 7F0014F4 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 +/* 036028 7F0014F8 AC400000 */ sw $zero, ($v0) +/* 03602C 7F0014FC 3C018003 */ lui $at, %hi(ptr_obj_pos_list_current_entry) +/* 036030 7F001500 AC200AA0 */ sw $zero, %lo(ptr_obj_pos_list_current_entry)($at) +/* 036034 7F001504 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF4) +/* 036038 7F001508 3C038007 */ lui $v1, %hi(dword_CODE_bss_80071620) +/* 03603C 7F00150C AC201DF4 */ sw $zero, %lo(dword_CODE_bss_80071DF4)($at) +/* 036040 7F001510 24631620 */ addiu $v1, %lo(dword_CODE_bss_80071620) # addiu $v1, $v1, 0x1620 +/* 036044 7F001514 AC600000 */ sw $zero, ($v1) +/* 036048 7F001518 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF0) +/* 03604C 7F00151C AC231DF0 */ sw $v1, %lo(dword_CODE_bss_80071DF0)($at) +/* 036050 7F001520 3C0F8007 */ lui $t7, %hi(pos_data_entry) +/* 036054 7F001524 25EF9C38 */ addiu $t7, %lo(pos_data_entry) # addiu $t7, $t7, -0x63c8 +/* 036058 7F001528 3C018003 */ lui $at, %hi(ptr_obj_pos_list_final_entry) +/* 03605C 7F00152C AC2F0AA8 */ sw $t7, %lo(ptr_obj_pos_list_final_entry)($at) +/* 036060 7F001530 3C188007 */ lui $t8, %hi(dword_CODE_bss_80069C6C) +/* 036064 7F001534 27189C6C */ addiu $t8, %lo(dword_CODE_bss_80069C6C) # addiu $t8, $t8, -0x6394 +/* 036068 7F001538 3C018007 */ lui $at, %hi(dword_CODE_bss_80069C5C) +/* 03606C 7F00153C AC389C5C */ sw $t8, %lo(dword_CODE_bss_80069C5C)($at) +/* 036070 7F001540 3C198007 */ lui $t9, %hi(dword_CODE_bss_80069CA0) +/* 036074 7F001544 27399CA0 */ addiu $t9, %lo(dword_CODE_bss_80069CA0) # addiu $t9, $t9, -0x6360 +/* 036078 7F001548 3C018007 */ lui $at, %hi(dword_CODE_bss_80069C90) +/* 03607C 7F00154C AC399C90 */ sw $t9, %lo(dword_CODE_bss_80069C90)($at) +/* 036080 7F001550 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069CD4) +/* 036084 7F001554 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036088 7F001558 25029CD4 */ addiu $v0, $t0, %lo(dword_CODE_bss_80069CD4) +/* 03608C 7F00155C 3C018007 */ lui $at, %hi(dword_CODE_bss_80069CC4) +/* 036090 7F001560 3C038007 */ lui $v1, %hi(dword_CODE_bss_80069DA4) +/* 036094 7F001564 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069D08) +/* 036098 7F001568 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069D3C) +/* 03609C 7F00156C 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069D70) +/* 0360A0 7F001570 3C078007 */ lui $a3, %hi(dword_CODE_bss_800716B4) +/* 0360A4 7F001574 AFBF0014 */ sw $ra, 0x14($sp) +/* 0360A8 7F001578 24E716B4 */ addiu $a3, %lo(dword_CODE_bss_800716B4) # addiu $a3, $a3, 0x16b4 +/* 0360AC 7F00157C 24C69D70 */ addiu $a2, %lo(dword_CODE_bss_80069D70) # addiu $a2, $a2, -0x6290 +/* 0360B0 7F001580 24A59D3C */ addiu $a1, %lo(dword_CODE_bss_80069D3C) # addiu $a1, $a1, -0x62c4 +/* 0360B4 7F001584 24849D08 */ addiu $a0, %lo(dword_CODE_bss_80069D08) # addiu $a0, $a0, -0x62f8 +/* 0360B8 7F001588 24639DA4 */ addiu $v1, %lo(dword_CODE_bss_80069DA4) # addiu $v1, $v1, -0x625c +/* 0360BC 7F00158C AC229CC4 */ sw $v0, %lo(dword_CODE_bss_80069CC4)($at) +.L7F001590: +/* 0360C0 7F001590 AC4300C0 */ sw $v1, 0xc0($v0) +/* 0360C4 7F001594 246300D0 */ addiu $v1, $v1, 0xd0 +/* 0360C8 7F001598 AC450058 */ sw $a1, 0x58($v0) +/* 0360CC 7F00159C AC46008C */ sw $a2, 0x8c($v0) +/* 0360D0 7F0015A0 AC440024 */ sw $a0, 0x24($v0) +/* 0360D4 7F0015A4 248400D0 */ addiu $a0, $a0, 0xd0 +/* 0360D8 7F0015A8 24C600D0 */ addiu $a2, $a2, 0xd0 +/* 0360DC 7F0015AC 24A500D0 */ addiu $a1, $a1, 0xd0 +/* 0360E0 7F0015B0 1467FFF7 */ bne $v1, $a3, .L7F001590 +/* 0360E4 7F0015B4 244200D0 */ addiu $v0, $v0, 0xd0 +/* 0360E8 7F0015B8 0FC00574 */ jal alloc_lookup_buffers +/* 0360EC 7F0015BC 00000000 */ nop +/* 0360F0 7F0015C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0360F4 7F0015C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0360F8 7F0015C8 03E00008 */ jr $ra +/* 0360FC 7F0015CC 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_lookup_buffers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_lookup_buffers +/* 036100 7F0015D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036104 7F0015D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 036108 7F0015D8 24040400 */ li $a0, 1024 +/* 03610C 7F0015DC 0C0025C8 */ jal mempAllocBytesInBank +/* 036110 7F0015E0 24050004 */ li $a1, 4 +/* 036114 7F0015E4 3C068004 */ lui $a2, %hi(MaxNumRooms) +/* 036118 7F0015E8 3C018007 */ lui $at, %hi(ptr_list_object_lookup_indices) +/* 03611C 7F0015EC AC229C30 */ sw $v0, %lo(ptr_list_object_lookup_indices)($at) +/* 036120 7F0015F0 24C642F4 */ addiu $a2, %lo(MaxNumRooms) # addiu $a2, $a2, 0x42f4 +/* 036124 7F0015F4 8CC40000 */ lw $a0, ($a2) +/* 036128 7F0015F8 24050004 */ li $a1, 4 +/* 03612C 7F0015FC 00047080 */ sll $t6, $a0, 2 +/* 036130 7F001600 25C4000F */ addiu $a0, $t6, 0xf +/* 036134 7F001604 348F000F */ ori $t7, $a0, 0xf +/* 036138 7F001608 0C0025C8 */ jal mempAllocBytesInBank +/* 03613C 7F00160C 39E4000F */ xori $a0, $t7, 0xf +/* 036140 7F001610 3C078007 */ lui $a3, %hi(ptr_room_lookup_buffer_maybe) +/* 036144 7F001614 24E71618 */ addiu $a3, %lo(ptr_room_lookup_buffer_maybe) # addiu $a3, $a3, 0x1618 +/* 036148 7F001618 ACE20000 */ sw $v0, ($a3) +/* 03614C 7F00161C 24042000 */ li $a0, 8192 +/* 036150 7F001620 0C0025C8 */ jal mempAllocBytesInBank +/* 036154 7F001624 24050004 */ li $a1, 4 +/* 036158 7F001628 3C048007 */ lui $a0, %hi(dword_CODE_bss_8007161C) +/* 03615C 7F00162C 2484161C */ addiu $a0, %lo(dword_CODE_bss_8007161C) # addiu $a0, $a0, 0x161c +/* 036160 7F001630 AC820000 */ sw $v0, ($a0) +/* 036164 7F001634 3C198007 */ lui $t9, %hi(ptr_list_object_lookup_indices) +/* 036168 7F001638 8F399C30 */ lw $t9, %lo(ptr_list_object_lookup_indices)($t9) +/* 03616C 7F00163C 2405FFFF */ li $a1, -1 +/* 036170 7F001640 3C068004 */ lui $a2, %hi(MaxNumRooms) +/* 036174 7F001644 24C642F4 */ addiu $a2, %lo(MaxNumRooms) # addiu $a2, $a2, 0x42f4 +/* 036178 7F001648 A7250000 */ sh $a1, ($t9) +/* 03617C 7F00164C 8CCB0000 */ lw $t3, ($a2) +/* 036180 7F001650 3C078007 */ lui $a3, %hi(ptr_room_lookup_buffer_maybe) +/* 036184 7F001654 24E71618 */ addiu $a3, %lo(ptr_room_lookup_buffer_maybe) # addiu $a3, $a3, 0x1618 +/* 036188 7F001658 1960000C */ blez $t3, .L7F00168C +/* 03618C 7F00165C 00001825 */ move $v1, $zero +/* 036190 7F001660 00001025 */ move $v0, $zero +/* 036194 7F001664 8CEC0000 */ lw $t4, ($a3) +.L7F001668: +/* 036198 7F001668 24630001 */ addiu $v1, $v1, 1 +/* 03619C 7F00166C 01826821 */ addu $t5, $t4, $v0 +/* 0361A0 7F001670 A5A50000 */ sh $a1, ($t5) +/* 0361A4 7F001674 8CCE0000 */ lw $t6, ($a2) +/* 0361A8 7F001678 24420002 */ addiu $v0, $v0, 2 +/* 0361AC 7F00167C 006E082A */ slt $at, $v1, $t6 +/* 0361B0 7F001680 5420FFF9 */ bnezl $at, .L7F001668 +/* 0361B4 7F001684 8CEC0000 */ lw $t4, ($a3) +/* 0361B8 7F001688 00001825 */ move $v1, $zero +.L7F00168C: +/* 0361BC 7F00168C 00003825 */ move $a3, $zero +/* 0361C0 7F001690 240A0100 */ li $t2, 256 +/* 0361C4 7F001694 2409FFFE */ li $t1, -2 +/* 0361C8 7F001698 24060020 */ li $a2, 32 +.L7F00169C: +/* 0361CC 7F00169C 8C8F0000 */ lw $t7, ($a0) +/* 0361D0 7F0016A0 00035940 */ sll $t3, $v1, 5 +/* 0361D4 7F0016A4 00037140 */ sll $t6, $v1, 5 +/* 0361D8 7F0016A8 01E7C021 */ addu $t8, $t7, $a3 +/* 0361DC 7F0016AC A7090000 */ sh $t1, ($t8) +/* 0361E0 7F0016B0 8C990000 */ lw $t9, ($a0) +/* 0361E4 7F0016B4 24020008 */ li $v0, 8 +/* 0361E8 7F0016B8 032B6021 */ addu $t4, $t9, $t3 +/* 0361EC 7F0016BC A5850002 */ sh $a1, 2($t4) +/* 0361F0 7F0016C0 8C8D0000 */ lw $t5, ($a0) +/* 0361F4 7F0016C4 0003C940 */ sll $t9, $v1, 5 +/* 0361F8 7F0016C8 01AE7821 */ addu $t7, $t5, $t6 +/* 0361FC 7F0016CC A5E50004 */ sh $a1, 4($t7) +/* 036200 7F0016D0 8C980000 */ lw $t8, ($a0) +/* 036204 7F0016D4 03195821 */ addu $t3, $t8, $t9 +/* 036208 7F0016D8 A5650006 */ sh $a1, 6($t3) +.L7F0016DC: +/* 03620C 7F0016DC 8C8C0000 */ lw $t4, ($a0) +/* 036210 7F0016E0 00036940 */ sll $t5, $v1, 5 +/* 036214 7F0016E4 0003C940 */ sll $t9, $v1, 5 +/* 036218 7F0016E8 018D7021 */ addu $t6, $t4, $t5 +/* 03621C 7F0016EC 01C27821 */ addu $t7, $t6, $v0 +/* 036220 7F0016F0 A5E50000 */ sh $a1, ($t7) +/* 036224 7F0016F4 8C980000 */ lw $t8, ($a0) +/* 036228 7F0016F8 00037140 */ sll $t6, $v1, 5 +/* 03622C 7F0016FC 03195821 */ addu $t3, $t8, $t9 +/* 036230 7F001700 01626021 */ addu $t4, $t3, $v0 +/* 036234 7F001704 A5850002 */ sh $a1, 2($t4) +/* 036238 7F001708 8C8D0000 */ lw $t5, ($a0) +/* 03623C 7F00170C 00035940 */ sll $t3, $v1, 5 +/* 036240 7F001710 01AE7821 */ addu $t7, $t5, $t6 +/* 036244 7F001714 01E2C021 */ addu $t8, $t7, $v0 +/* 036248 7F001718 A7050004 */ sh $a1, 4($t8) +/* 03624C 7F00171C 8C990000 */ lw $t9, ($a0) +/* 036250 7F001720 032B6021 */ addu $t4, $t9, $t3 +/* 036254 7F001724 01826821 */ addu $t5, $t4, $v0 +/* 036258 7F001728 24420008 */ addiu $v0, $v0, 8 +/* 03625C 7F00172C 1446FFEB */ bne $v0, $a2, .L7F0016DC +/* 036260 7F001730 A5A50006 */ sh $a1, 6($t5) +/* 036264 7F001734 24630001 */ addiu $v1, $v1, 1 +/* 036268 7F001738 146AFFD8 */ bne $v1, $t2, .L7F00169C +/* 03626C 7F00173C 24E70020 */ addiu $a3, $a3, 0x20 +/* 036270 7F001740 8FBF0014 */ lw $ra, 0x14($sp) +/* 036274 7F001744 27BD0018 */ addiu $sp, $sp, 0x18 +/* 036278 7F001748 03E00008 */ jr $ra +/* 03627C 7F00174C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void reinit_between_menus(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reinit_between_menus +/* 036280 7F001750 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036284 7F001754 AFBF0014 */ sw $ra, 0x14($sp) +/* 036288 7F001758 0FC00656 */ jal write_monitor_ani_control_blocks +/* 03628C 7F00175C 00000000 */ nop +/* 036290 7F001760 0FC006C2 */ jal initialize_temp_mine_table +/* 036294 7F001764 00000000 */ nop +/* 036298 7F001768 3C018003 */ lui $at, %hi(alarm_timer) +/* 03629C 7F00176C AC200AC0 */ sw $zero, %lo(alarm_timer)($at) +/* 0362A0 7F001770 44800000 */ mtc1 $zero, $f0 +/* 0362A4 7F001774 3C018003 */ lui $at, %hi(ptr_alarm_sfx) +/* 0362A8 7F001778 AC200AC4 */ sw $zero, %lo(ptr_alarm_sfx)($at) +/* 0362AC 7F00177C 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) +/* 0362B0 7F001780 E4200AC8 */ swc1 $f0, %lo(toxic_gas_sound_timer)($at) +/* 0362B4 7F001784 3C018003 */ lui $at, %hi(activate_gas_sound_timer) +/* 0362B8 7F001788 3C048003 */ lui $a0, %hi(D_80030AD0) +/* 0362BC 7F00178C AC200ACC */ sw $zero, %lo(activate_gas_sound_timer)($at) +/* 0362C0 7F001790 24840AD0 */ addiu $a0, %lo(D_80030AD0) # addiu $a0, $a0, 0xad0 +/* 0362C4 7F001794 3C018003 */ lui $at, %hi(D_80030ADC) +/* 0362C8 7F001798 E4800000 */ swc1 $f0, ($a0) +/* 0362CC 7F00179C E4800004 */ swc1 $f0, 4($a0) +/* 0362D0 7F0017A0 E4800008 */ swc1 $f0, 8($a0) +/* 0362D4 7F0017A4 AC200ADC */ sw $zero, %lo(D_80030ADC)($at) +/* 0362D8 7F0017A8 3C018003 */ lui $at, %hi(D_80030AE0) +/* 0362DC 7F0017AC E4200AE0 */ swc1 $f0, %lo(D_80030AE0)($at) +/* 0362E0 7F0017B0 3C018003 */ lui $at, %hi(ptr_gas_sound) +/* 0362E4 7F0017B4 AC200AE4 */ sw $zero, %lo(ptr_gas_sound)($at) +/* 0362E8 7F0017B8 24050001 */ li $a1, 1 +/* 0362EC 7F0017BC 3C018003 */ lui $at, %hi(clock_drawn_flag) +/* 0362F0 7F0017C0 AC250AE8 */ sw $a1, %lo(clock_drawn_flag)($at) +/* 0362F4 7F0017C4 3C018003 */ lui $at, %hi(clock_enable) +/* 0362F8 7F0017C8 AC200AEC */ sw $zero, %lo(clock_enable)($at) +/* 0362FC 7F0017CC 3C018003 */ lui $at, %hi(clock_time) +/* 036300 7F0017D0 E4200AF0 */ swc1 $f0, %lo(clock_time)($at) +/* 036304 7F0017D4 3C018003 */ lui $at, %hi(D_80030AF4) +/* 036308 7F0017D8 3C028007 */ lui $v0, %hi(ProjectileData_start_address) +/* 03630C 7F0017DC 3C038007 */ lui $v1, %hi(dword_CODE_bss_80072E70) +/* 036310 7F0017E0 AC200AF4 */ sw $zero, %lo(D_80030AF4)($at) +/* 036314 7F0017E4 24632E70 */ addiu $v1, %lo(dword_CODE_bss_80072E70) # addiu $v1, $v1, 0x2e70 +/* 036318 7F0017E8 24421E80 */ addiu $v0, %lo(ProjectileData_start_address) # addiu $v0, $v0, 0x1e80 +.L7F0017EC: +/* 03631C 7F0017EC 24420088 */ addiu $v0, $v0, 0x88 +/* 036320 7F0017F0 0043082B */ sltu $at, $v0, $v1 +/* 036324 7F0017F4 1420FFFD */ bnez $at, .L7F0017EC +/* 036328 7F0017F8 AC40FF88 */ sw $zero, -0x78($v0) +/* 03632C 7F0017FC 3C018003 */ lui $at, %hi(D_80030AF8) +/* 036330 7F001800 3C028007 */ lui $v0, %hi(dword_CODE_bss_80072E70) +/* 036334 7F001804 3C038007 */ lui $v1, %hi(dword_CODE_bss_80073370) +/* 036338 7F001808 AC200AF8 */ sw $zero, %lo(D_80030AF8)($at) +/* 03633C 7F00180C 24633370 */ addiu $v1, %lo(dword_CODE_bss_80073370) # addiu $v1, $v1, 0x3370 +/* 036340 7F001810 24422E70 */ addiu $v0, %lo(dword_CODE_bss_80072E70) # addiu $v0, $v0, 0x2e70 +.L7F001814: +/* 036344 7F001814 24420080 */ addiu $v0, $v0, 0x80 +/* 036348 7F001818 0043082B */ sltu $at, $v0, $v1 +/* 03634C 7F00181C 1420FFFD */ bnez $at, .L7F001814 +/* 036350 7F001820 AC40FF90 */ sw $zero, -0x70($v0) +/* 036354 7F001824 3C018003 */ lui $at, %hi(D_80030AFC) +/* 036358 7F001828 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073370) +/* 03635C 7F00182C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80073DC0) +/* 036360 7F001830 AC200AFC */ sw $zero, %lo(D_80030AFC)($at) +/* 036364 7F001834 24633DC0 */ addiu $v1, %lo(dword_CODE_bss_80073DC0) # addiu $v1, $v1, 0x3dc0 +/* 036368 7F001838 24423370 */ addiu $v0, %lo(dword_CODE_bss_80073370) # addiu $v0, $v0, 0x3370 +.L7F00183C: +/* 03636C 7F00183C 24420084 */ addiu $v0, $v0, 0x84 +/* 036370 7F001840 0043082B */ sltu $at, $v0, $v1 +/* 036374 7F001844 1420FFFD */ bnez $at, .L7F00183C +/* 036378 7F001848 AC40FF8C */ sw $zero, -0x74($v0) +/* 03637C 7F00184C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 036380 7F001850 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) +/* 036384 7F001854 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 +/* 036388 7F001858 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 03638C 7F00185C 3C038000 */ lui $v1, 0x8000 +.L7F001860: +/* 036390 7F001860 244200EC */ addiu $v0, $v0, 0xec +/* 036394 7F001864 0044082B */ sltu $at, $v0, $a0 +/* 036398 7F001868 AC43FF14 */ sw $v1, -0xec($v0) +/* 03639C 7F00186C AC40FFAC */ sw $zero, -0x54($v0) +/* 0363A0 7F001870 1420FFFB */ bnez $at, .L7F001860 +/* 0363A4 7F001874 AC40FFB0 */ sw $zero, -0x50($v0) +/* 0363A8 7F001878 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075030) +/* 0363AC 7F00187C 3C038007 */ lui $v1, %hi(objinst) +/* 0363B0 7F001880 24635B70 */ addiu $v1, %lo(objinst) # addiu $v1, $v1, 0x5b70 +/* 0363B4 7F001884 24425030 */ addiu $v0, %lo(dword_CODE_bss_80075030) # addiu $v0, $v0, 0x5030 +.L7F001888: +/* 0363B8 7F001888 24420120 */ addiu $v0, $v0, 0x120 +/* 0363BC 7F00188C AC45FF28 */ sw $a1, -0xd8($v0) +/* 0363C0 7F001890 AC45FF70 */ sw $a1, -0x90($v0) +/* 0363C4 7F001894 AC45FFB8 */ sw $a1, -0x48($v0) +/* 0363C8 7F001898 1443FFFB */ bne $v0, $v1, .L7F001888 +/* 0363CC 7F00189C AC45FEE0 */ sw $a1, -0x120($v0) +/* 0363D0 7F0018A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0363D4 7F0018A4 44810000 */ mtc1 $at, $f0 +/* 0363D8 7F0018A8 3C018003 */ lui $at, %hi(D_80030B00) +/* 0363DC 7F0018AC AC200B00 */ sw $zero, %lo(D_80030B00)($at) +/* 0363E0 7F0018B0 3C018003 */ lui $at, %hi(D_80030B04) +/* 0363E4 7F0018B4 AC200B04 */ sw $zero, %lo(D_80030B04)($at) +/* 0363E8 7F0018B8 3C018003 */ lui $at, %hi(D_80030B08) +/* 0363EC 7F0018BC AC200B08 */ sw $zero, %lo(D_80030B08)($at) +/* 0363F0 7F0018C0 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0363F4 7F0018C4 AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 0363F8 7F0018C8 3C018003 */ lui $at, %hi(bodypartshot) +/* 0363FC 7F0018CC 240EFFFF */ li $t6, -1 +/* 036400 7F0018D0 AC2E0B10 */ sw $t6, %lo(bodypartshot)($at) +/* 036404 7F0018D4 3C018003 */ lui $at, %hi(D_80030B14) +/* 036408 7F0018D8 E4200B14 */ swc1 $f0, %lo(D_80030B14)($at) +/* 03640C 7F0018DC 3C018003 */ lui $at, %hi(D_80030B18) +/* 036410 7F0018E0 E4200B18 */ swc1 $f0, %lo(D_80030B18)($at) +/* 036414 7F0018E4 3C018003 */ lui $at, %hi(D_80030B1C) +/* 036418 7F0018E8 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 03641C 7F0018EC 3C018003 */ lui $at, %hi(D_80030B20) +/* 036420 7F0018F0 E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 036424 7F0018F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 036428 7F0018F8 3C018003 */ lui $at, %hi(D_80030B24) +/* 03642C 7F0018FC E4200B24 */ swc1 $f0, %lo(D_80030B24)($at) +/* 036430 7F001900 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 036434 7F001904 27BD0018 */ addiu $sp, $sp, 0x18 +/* 036438 7F001908 03E00008 */ jr $ra +/* 03643C 7F00190C E4200B28 */ swc1 $f0, %lo(solo_ammo_multiplier)($at) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001910(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001910 +/* 036440 7F001910 3C028003 */ lui $v0, %hi(D_80030B00) +/* 036444 7F001914 24420B00 */ addiu $v0, %lo(D_80030B00) # addiu $v0, $v0, 0xb00 +/* 036448 7F001918 8C4E0000 */ lw $t6, ($v0) +/* 03644C 7F00191C AC8E000C */ sw $t6, 0xc($a0) +/* 036450 7F001920 03E00008 */ jr $ra +/* 036454 7F001924 AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001928(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001928 +/* 036458 7F001928 3C028003 */ lui $v0, %hi(D_80030B04) +/* 03645C 7F00192C 24420B04 */ addiu $v0, %lo(D_80030B04) # addiu $v0, $v0, 0xb04 +/* 036460 7F001930 8C4E0000 */ lw $t6, ($v0) +/* 036464 7F001934 AC8E000C */ sw $t6, 0xc($a0) +/* 036468 7F001938 03E00008 */ jr $ra +/* 03646C 7F00193C AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001940(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001940 +/* 036470 7F001940 3C028003 */ lui $v0, %hi(D_80030B08) +/* 036474 7F001944 24420B08 */ addiu $v0, %lo(D_80030B08) # addiu $v0, $v0, 0xb08 +/* 036478 7F001948 8C4E0000 */ lw $t6, ($v0) +/* 03647C 7F00194C AC8E0010 */ sw $t6, 0x10($a0) +/* 036480 7F001950 03E00008 */ jr $ra +/* 036484 7F001954 AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void write_monitor_ani_control_blocks(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_monitor_ani_control_blocks +/* 036488 7F001958 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 03648C 7F00195C 3C0E8003 */ lui $t6, %hi(ptr_monitorimageobjectanimationcontroller) +/* 036490 7F001960 27A200EC */ addiu $v0, $sp, 0xec +/* 036494 7F001964 25CEA260 */ addiu $t6, $t6, %lo(ptr_monitorimageobjectanimationcontroller) +/* 036498 7F001968 27A30078 */ addiu $v1, $sp, 0x78 +/* 03649C 7F00196C 27A40004 */ addiu $a0, $sp, 4 +/* 0364A0 7F001970 25D9006C */ addiu $t9, $t6, 0x6c +/* 0364A4 7F001974 00404025 */ move $t0, $v0 +.L7F001978: +/* 0364A8 7F001978 8DC10000 */ lw $at, ($t6) +/* 0364AC 7F00197C 25CE000C */ addiu $t6, $t6, 0xc +/* 0364B0 7F001980 2508000C */ addiu $t0, $t0, 0xc +/* 0364B4 7F001984 AD01FFF4 */ sw $at, -0xc($t0) +/* 0364B8 7F001988 8DC1FFF8 */ lw $at, -8($t6) +/* 0364BC 7F00198C AD01FFF8 */ sw $at, -8($t0) +/* 0364C0 7F001990 8DC1FFFC */ lw $at, -4($t6) +/* 0364C4 7F001994 15D9FFF8 */ bne $t6, $t9, .L7F001978 +/* 0364C8 7F001998 AD01FFFC */ sw $at, -4($t0) +/* 0364CC 7F00199C 8DC10000 */ lw $at, ($t6) +/* 0364D0 7F0019A0 3C098007 */ lui $t1, %hi(dword_CODE_bss_80075B98) +/* 0364D4 7F0019A4 25295B98 */ addiu $t1, %lo(dword_CODE_bss_80075B98) # addiu $t1, $t1, 0x5b98 +/* 0364D8 7F0019A8 AD010000 */ sw $at, ($t0) +/* 0364DC 7F0019AC 8DD90004 */ lw $t9, 4($t6) +/* 0364E0 7F0019B0 00406825 */ move $t5, $v0 +/* 0364E4 7F0019B4 244C006C */ addiu $t4, $v0, 0x6c +/* 0364E8 7F0019B8 AD190004 */ sw $t9, 4($t0) +.L7F0019BC: +/* 0364EC 7F0019BC 8DA10000 */ lw $at, ($t5) +/* 0364F0 7F0019C0 25AD000C */ addiu $t5, $t5, 0xc +/* 0364F4 7F0019C4 2529000C */ addiu $t1, $t1, 0xc +/* 0364F8 7F0019C8 AD21FFF4 */ sw $at, -0xc($t1) +/* 0364FC 7F0019CC 8DA1FFF8 */ lw $at, -8($t5) +/* 036500 7F0019D0 AD21FFF8 */ sw $at, -8($t1) +/* 036504 7F0019D4 8DA1FFFC */ lw $at, -4($t5) +/* 036508 7F0019D8 15ACFFF8 */ bne $t5, $t4, .L7F0019BC +/* 03650C 7F0019DC AD21FFFC */ sw $at, -4($t1) +/* 036510 7F0019E0 8DA10000 */ lw $at, ($t5) +/* 036514 7F0019E4 3C188003 */ lui $t8, %hi(unknown_object_animation_controller) +/* 036518 7F0019E8 2718A2D4 */ addiu $t8, %lo(unknown_object_animation_controller) # addiu $t8, $t8, -0x5d2c +/* 03651C 7F0019EC AD210000 */ sw $at, ($t1) +/* 036520 7F0019F0 8DAC0004 */ lw $t4, 4($t5) +/* 036524 7F0019F4 270E006C */ addiu $t6, $t8, 0x6c +/* 036528 7F0019F8 00604025 */ move $t0, $v1 +/* 03652C 7F0019FC AD2C0004 */ sw $t4, 4($t1) +.L7F001A00: +/* 036530 7F001A00 8F010000 */ lw $at, ($t8) +/* 036534 7F001A04 2718000C */ addiu $t8, $t8, 0xc +/* 036538 7F001A08 2508000C */ addiu $t0, $t0, 0xc +/* 03653C 7F001A0C AD01FFF4 */ sw $at, -0xc($t0) +/* 036540 7F001A10 8F01FFF8 */ lw $at, -8($t8) +/* 036544 7F001A14 AD01FFF8 */ sw $at, -8($t0) +/* 036548 7F001A18 8F01FFFC */ lw $at, -4($t8) +/* 03654C 7F001A1C 170EFFF8 */ bne $t8, $t6, .L7F001A00 +/* 036550 7F001A20 AD01FFFC */ sw $at, -4($t0) +/* 036554 7F001A24 8F010000 */ lw $at, ($t8) +/* 036558 7F001A28 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075C10) +/* 03655C 7F001A2C 256B5C10 */ addiu $t3, %lo(dword_CODE_bss_80075C10) # addiu $t3, $t3, 0x5c10 +/* 036560 7F001A30 AD010000 */ sw $at, ($t0) +/* 036564 7F001A34 8F0E0004 */ lw $t6, 4($t8) +/* 036568 7F001A38 00604825 */ move $t1, $v1 +/* 03656C 7F001A3C 246D006C */ addiu $t5, $v1, 0x6c +/* 036570 7F001A40 AD0E0004 */ sw $t6, 4($t0) +.L7F001A44: +/* 036574 7F001A44 8D210000 */ lw $at, ($t1) +/* 036578 7F001A48 2529000C */ addiu $t1, $t1, 0xc +/* 03657C 7F001A4C 256B000C */ addiu $t3, $t3, 0xc +/* 036580 7F001A50 AD61FFF4 */ sw $at, -0xc($t3) +/* 036584 7F001A54 8D21FFF8 */ lw $at, -8($t1) +/* 036588 7F001A58 AD61FFF8 */ sw $at, -8($t3) +/* 03658C 7F001A5C 8D21FFFC */ lw $at, -4($t1) +/* 036590 7F001A60 152DFFF8 */ bne $t1, $t5, .L7F001A44 +/* 036594 7F001A64 AD61FFFC */ sw $at, -4($t3) +/* 036598 7F001A68 8D210000 */ lw $at, ($t1) +/* 03659C 7F001A6C 3C198003 */ lui $t9, %hi(taser_object_animation_controller) +/* 0365A0 7F001A70 2739A348 */ addiu $t9, %lo(taser_object_animation_controller) # addiu $t9, $t9, -0x5cb8 +/* 0365A4 7F001A74 AD610000 */ sw $at, ($t3) +/* 0365A8 7F001A78 8D2D0004 */ lw $t5, 4($t1) +/* 0365AC 7F001A7C 2738006C */ addiu $t8, $t9, 0x6c +/* 0365B0 7F001A80 00804025 */ move $t0, $a0 +/* 0365B4 7F001A84 AD6D0004 */ sw $t5, 4($t3) +.L7F001A88: +/* 0365B8 7F001A88 8F210000 */ lw $at, ($t9) +/* 0365BC 7F001A8C 2739000C */ addiu $t9, $t9, 0xc +/* 0365C0 7F001A90 2508000C */ addiu $t0, $t0, 0xc +/* 0365C4 7F001A94 AD01FFF4 */ sw $at, -0xc($t0) +/* 0365C8 7F001A98 8F21FFF8 */ lw $at, -8($t9) +/* 0365CC 7F001A9C AD01FFF8 */ sw $at, -8($t0) +/* 0365D0 7F001AA0 8F21FFFC */ lw $at, -4($t9) +/* 0365D4 7F001AA4 1738FFF8 */ bne $t9, $t8, .L7F001A88 +/* 0365D8 7F001AA8 AD01FFFC */ sw $at, -4($t0) +/* 0365DC 7F001AAC 8F210000 */ lw $at, ($t9) +/* 0365E0 7F001AB0 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80075C88) +/* 0365E4 7F001AB4 258C5C88 */ addiu $t4, %lo(dword_CODE_bss_80075C88) # addiu $t4, $t4, 0x5c88 +/* 0365E8 7F001AB8 AD010000 */ sw $at, ($t0) +/* 0365EC 7F001ABC 8F380004 */ lw $t8, 4($t9) +/* 0365F0 7F001AC0 00805825 */ move $t3, $a0 +/* 0365F4 7F001AC4 2489006C */ addiu $t1, $a0, 0x6c +/* 0365F8 7F001AC8 AD180004 */ sw $t8, 4($t0) +.L7F001ACC: +/* 0365FC 7F001ACC 8D610000 */ lw $at, ($t3) +/* 036600 7F001AD0 256B000C */ addiu $t3, $t3, 0xc +/* 036604 7F001AD4 258C000C */ addiu $t4, $t4, 0xc +/* 036608 7F001AD8 AD81FFF4 */ sw $at, -0xc($t4) +/* 03660C 7F001ADC 8D61FFF8 */ lw $at, -8($t3) +/* 036610 7F001AE0 AD81FFF8 */ sw $at, -8($t4) +/* 036614 7F001AE4 8D61FFFC */ lw $at, -4($t3) +/* 036618 7F001AE8 1569FFF8 */ bne $t3, $t1, .L7F001ACC +/* 03661C 7F001AEC AD81FFFC */ sw $at, -4($t4) +/* 036620 7F001AF0 8D610000 */ lw $at, ($t3) +/* 036624 7F001AF4 AD810000 */ sw $at, ($t4) +/* 036628 7F001AF8 8D690004 */ lw $t1, 4($t3) +/* 03662C 7F001AFC 27BD0160 */ addiu $sp, $sp, 0x160 +/* 036630 7F001B00 03E00008 */ jr $ra +/* 036634 7F001B04 AD890004 */ sw $t1, 4($t4) +) +#endif + +#ifdef NONMATCHING +void initialize_temp_mine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel initialize_temp_mine_table +/* 036638 7F001B08 3C018007 */ lui $at, %hi(temp_mine_table) +/* 03663C 7F001B0C AC201E00 */ sw $zero, %lo(temp_mine_table)($at) +/* 036640 7F001B10 3C018007 */ lui $at, %hi(temp_mine_table+0x4) +/* 036644 7F001B14 3C038007 */ lui $v1, %hi(temp_mine_table+0x8) +/* 036648 7F001B18 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 03664C 7F001B1C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 036650 7F001B20 24631E08 */ addiu $v1, %lo(temp_mine_table+0x8) # addiu $v1, $v1, 0x1e08 +/* 036654 7F001B24 AC201E04 */ sw $zero, %lo(temp_mine_table+0x4)($at) +.L7F001B28: +/* 036658 7F001B28 24630010 */ addiu $v1, $v1, 0x10 +/* 03665C 7F001B2C AC60FFF4 */ sw $zero, -0xc($v1) +/* 036660 7F001B30 AC60FFF8 */ sw $zero, -8($v1) +/* 036664 7F001B34 AC60FFFC */ sw $zero, -4($v1) +/* 036668 7F001B38 1462FFFB */ bne $v1, $v0, .L7F001B28 +/* 03666C 7F001B3C AC60FFF0 */ sw $zero, -0x10($v1) +/* 036670 7F001B40 03E00008 */ jr $ra +/* 036674 7F001B44 00000000 */ nop +) +#endif diff --git a/src/game/initobjects.h b/src/game/initobjects.h new file mode 100644 index 0000000..c317bdc --- /dev/null +++ b/src/game/initobjects.h @@ -0,0 +1,48 @@ +#ifndef _INITOBJECTS_H_ +#define _INITOBJECTS_H_ +#include "ultra64.h" + +struct object_animation_controller { + void * ptranimation; + u16 offsettocurcmd; + u16 waitcounter; + u32 imagenum; + f32 rotation; + f32 curzoomx; + f32 startzoomx; + f32 zoomxtimer; + f32 initialzoomx; + f32 finalzoomx; + f32 curzoomy; + f32 startzoomy; + f32 zoomytimer; + f32 initialzoomy; + f32 finalzoomy; + f32 curhorizontalpos; + f32 starthorscroll; + f32 horscrolltimer; + f32 horinitpos; + f32 horfinalpos; + f32 curverpos; + f32 startverscroll; + f32 verscrolltimer; + f32 verinitpos; + f32 verfinalpos; + u8 curredcomponant; + u8 initredcomponant; + u8 finalredcomponant; + u8 curgreencomponant; + u8 initgreencomponant; + u8 finalgreencomponant; + u8 curbluecomponant; + u8 initbluecomponant; + u8 finalbluecomponant; + u8 curalphacomponant; + u8 initalphacomponant; + u8 finalalphacomponant; + f32 startcolorshift; + f32 colorshifttimer; +}; + + +#endif diff --git a/src/game/initpathtablelinks.c b/src/game/initpathtablelinks.c new file mode 100644 index 0000000..74ca9f7 --- /dev/null +++ b/src/game/initpathtablelinks.c @@ -0,0 +1,385 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void init_path_table_links(void) { + +} +#else +GLOBAL_ASM( +.text +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(ptr_setup_path_tbl) +/* 03B3CC 7F00689C 26945D00 */ addiu $s4, %lo(ptr_setup_path_tbl) # addiu $s4, $s4, 0x5d00 +/* 03B3D0 7F0068A0 AFB00018 */ sw $s0, 0x18($sp) +/* 03B3D4 7F0068A4 8E900000 */ lw $s0, ($s4) +/* 03B3D8 7F0068A8 8E8E0004 */ lw $t6, 4($s4) +/* 03B3DC 7F0068AC AFB60030 */ sw $s6, 0x30($sp) +/* 03B3E0 7F0068B0 AFBF003C */ sw $ra, 0x3c($sp) +/* 03B3E4 7F0068B4 AFBE0038 */ sw $fp, 0x38($sp) +/* 03B3E8 7F0068B8 AFB70034 */ sw $s7, 0x34($sp) +/* 03B3EC 7F0068BC AFB5002C */ sw $s5, 0x2c($sp) +/* 03B3F0 7F0068C0 AFB30024 */ sw $s3, 0x24($sp) +/* 03B3F4 7F0068C4 AFB20020 */ sw $s2, 0x20($sp) +/* 03B3F8 7F0068C8 AFB1001C */ sw $s1, 0x1c($sp) +/* 03B3FC 7F0068CC 0000B025 */ move $s6, $zero +/* 03B400 7F0068D0 12000036 */ beqz $s0, .L7F0069AC +/* 03B404 7F0068D4 AFAE00D8 */ sw $t6, 0xd8($sp) +/* 03B408 7F0068D8 8E0F0000 */ lw $t7, ($s0) +/* 03B40C 7F0068DC 00003825 */ move $a3, $zero +/* 03B410 7F0068E0 02006825 */ move $t5, $s0 +/* 03B414 7F0068E4 05E20032 */ bltzl $t7, .L7F0069B0 +/* 03B418 7F0068E8 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 03B41C 7F0068EC 8DA20004 */ lw $v0, 4($t5) +.L7F0068F0: +/* 03B420 7F0068F0 8C460000 */ lw $a2, ($v0) +/* 03B424 7F0068F4 00404025 */ move $t0, $v0 +/* 03B428 7F0068F8 04C20027 */ bltzl $a2, .L7F006998 +/* 03B42C 7F0068FC 24E70001 */ addiu $a3, $a3, 1 +.L7F006900: +/* 03B430 7F006900 14C70007 */ bne $a2, $a3, .L7F006920 +/* 03B434 7F006904 0006C900 */ sll $t9, $a2, 4 +/* 03B438 7F006908 8E980020 */ lw $t8, 0x20($s4) +/* 03B43C 7F00690C 24160001 */ li $s6, 1 +/* 03B440 7F006910 5300001D */ beql $t8, $zero, .L7F006988 +/* 03B444 7F006914 8D060004 */ lw $a2, 4($t0) +/* 03B448 7F006918 1000001B */ b .L7F006988 +/* 03B44C 7F00691C 8D060004 */ lw $a2, 4($t0) +.L7F006920: +/* 03B450 7F006920 03301821 */ addu $v1, $t9, $s0 +/* 03B454 7F006924 8C650004 */ lw $a1, 4($v1) +/* 03B458 7F006928 00002025 */ move $a0, $zero +/* 03B45C 7F00692C 8CAE0000 */ lw $t6, ($a1) +/* 03B460 7F006930 05C2000F */ bltzl $t6, .L7F006970 +/* 03B464 7F006934 0004C880 */ sll $t9, $a0, 2 +/* 03B468 7F006938 10EE000C */ beq $a3, $t6, .L7F00696C +/* 03B46C 7F00693C 00001080 */ sll $v0, $zero, 2 +/* 03B470 7F006940 24420004 */ addiu $v0, $v0, 4 +.L7F006944: +/* 03B474 7F006944 00A2C021 */ addu $t8, $a1, $v0 +/* 03B478 7F006948 8F190000 */ lw $t9, ($t8) +/* 03B47C 7F00694C 24840001 */ addiu $a0, $a0, 1 +/* 03B480 7F006950 07220007 */ bltzl $t9, .L7F006970 +/* 03B484 7F006954 0004C880 */ sll $t9, $a0, 2 +/* 03B488 7F006958 8C6E0004 */ lw $t6, 4($v1) +/* 03B48C 7F00695C 01C27821 */ addu $t7, $t6, $v0 +/* 03B490 7F006960 8DF80000 */ lw $t8, ($t7) +/* 03B494 7F006964 54F8FFF7 */ bnel $a3, $t8, .L7F006944 +/* 03B498 7F006968 24420004 */ addiu $v0, $v0, 4 +.L7F00696C: +/* 03B49C 7F00696C 0004C880 */ sll $t9, $a0, 2 +.L7F006970: +/* 03B4A0 7F006970 00B97021 */ addu $t6, $a1, $t9 +/* 03B4A4 7F006974 8DCF0000 */ lw $t7, ($t6) +/* 03B4A8 7F006978 50EF0003 */ beql $a3, $t7, .L7F006988 +/* 03B4AC 7F00697C 8D060004 */ lw $a2, 4($t0) +/* 03B4B0 7F006980 24160001 */ li $s6, 1 +/* 03B4B4 7F006984 8D060004 */ lw $a2, 4($t0) +.L7F006988: +/* 03B4B8 7F006988 25080004 */ addiu $t0, $t0, 4 +/* 03B4BC 7F00698C 04C1FFDC */ bgez $a2, .L7F006900 +/* 03B4C0 7F006990 00000000 */ nop +/* 03B4C4 7F006994 24E70001 */ addiu $a3, $a3, 1 +.L7F006998: +/* 03B4C8 7F006998 0007C100 */ sll $t8, $a3, 4 +/* 03B4CC 7F00699C 03106821 */ addu $t5, $t8, $s0 +/* 03B4D0 7F0069A0 8DB90000 */ lw $t9, ($t5) +/* 03B4D4 7F0069A4 0723FFD2 */ bgezl $t9, .L7F0068F0 +/* 03B4D8 7F0069A8 8DA20004 */ lw $v0, 4($t5) +.L7F0069AC: +/* 03B4DC 7F0069AC 8FAE00D8 */ lw $t6, 0xd8($sp) +.L7F0069B0: +/* 03B4E0 7F0069B0 11C00054 */ beqz $t6, .L7F006B04 +/* 03B4E4 7F0069B4 00000000 */ nop +/* 03B4E8 7F0069B8 8DCF0000 */ lw $t7, ($t6) +/* 03B4EC 7F0069BC 00008825 */ move $s1, $zero +/* 03B4F0 7F0069C0 01C0A825 */ move $s5, $t6 +/* 03B4F4 7F0069C4 11E0004F */ beqz $t7, .L7F006B04 +/* 03B4F8 7F0069C8 27BE00A0 */ addiu $fp, $sp, 0xa0 +/* 03B4FC 7F0069CC AFAE0048 */ sw $t6, 0x48($sp) +/* 03B500 7F0069D0 2417000C */ li $s7, 12 +/* 03B504 7F0069D4 8EB80000 */ lw $t8, ($s5) +.L7F0069D8: +/* 03B508 7F0069D8 00009825 */ move $s3, $zero +/* 03B50C 7F0069DC 8F020000 */ lw $v0, ($t8) +/* 03B510 7F0069E0 04420042 */ bltzl $v0, .L7F006AEC +/* 03B514 7F0069E4 8FAE0048 */ lw $t6, 0x48($sp) +.L7F0069E8: +/* 03B518 7F0069E8 14510007 */ bne $v0, $s1, .L7F006A08 +/* 03B51C 7F0069EC 00000000 */ nop +/* 03B520 7F0069F0 8E990024 */ lw $t9, 0x24($s4) +/* 03B524 7F0069F4 24160001 */ li $s6, 1 +/* 03B528 7F0069F8 53200036 */ beql $t9, $zero, .L7F006AD4 +/* 03B52C 7F0069FC 8EB90000 */ lw $t9, ($s5) +/* 03B530 7F006A00 10000034 */ b .L7F006AD4 +/* 03B534 7F006A04 8EB90000 */ lw $t9, ($s5) +.L7F006A08: +/* 03B538 7F006A08 00570019 */ multu $v0, $s7 +/* 03B53C 7F006A0C 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 03B540 7F006A10 00002825 */ move $a1, $zero +/* 03B544 7F006A14 00007812 */ mflo $t7 +/* 03B548 7F006A18 01EE9021 */ addu $s2, $t7, $t6 +/* 03B54C 7F006A1C 8E460000 */ lw $a2, ($s2) +/* 03B550 7F006A20 02402025 */ move $a0, $s2 +/* 03B554 7F006A24 8CD80000 */ lw $t8, ($a2) +/* 03B558 7F006A28 07020011 */ bltzl $t8, .L7F006A70 +/* 03B55C 7F006A2C 00057880 */ sll $t7, $a1, 2 +/* 03B560 7F006A30 8CD90000 */ lw $t9, ($a2) +/* 03B564 7F006A34 00001080 */ sll $v0, $zero, 2 +/* 03B568 7F006A38 00C21821 */ addu $v1, $a2, $v0 +/* 03B56C 7F006A3C 5239000C */ beql $s1, $t9, .L7F006A70 +/* 03B570 7F006A40 00057880 */ sll $t7, $a1, 2 +/* 03B574 7F006A44 8C6F0004 */ lw $t7, 4($v1) +.L7F006A48: +/* 03B578 7F006A48 24A50001 */ addiu $a1, $a1, 1 +/* 03B57C 7F006A4C 24420004 */ addiu $v0, $v0, 4 +/* 03B580 7F006A50 05E00006 */ bltz $t7, .L7F006A6C +/* 03B584 7F006A54 24630004 */ addiu $v1, $v1, 4 +/* 03B588 7F006A58 8C8E0000 */ lw $t6, ($a0) +/* 03B58C 7F006A5C 01C2C021 */ addu $t8, $t6, $v0 +/* 03B590 7F006A60 8F190000 */ lw $t9, ($t8) +/* 03B594 7F006A64 5639FFF8 */ bnel $s1, $t9, .L7F006A48 +/* 03B598 7F006A68 8C6F0004 */ lw $t7, 4($v1) +.L7F006A6C: +/* 03B59C 7F006A6C 00057880 */ sll $t7, $a1, 2 +.L7F006A70: +/* 03B5A0 7F006A70 00CF7021 */ addu $t6, $a2, $t7 +/* 03B5A4 7F006A74 8DD80000 */ lw $t8, ($t6) +/* 03B5A8 7F006A78 52380008 */ beql $s1, $t8, .L7F006A9C +/* 03B5AC 7F006A7C 8E8F0000 */ lw $t7, ($s4) +/* 03B5B0 7F006A80 8E990024 */ lw $t9, 0x24($s4) +/* 03B5B4 7F006A84 24160001 */ li $s6, 1 +/* 03B5B8 7F006A88 53200012 */ beql $t9, $zero, .L7F006AD4 +/* 03B5BC 7F006A8C 8EB90000 */ lw $t9, ($s5) +/* 03B5C0 7F006A90 10000010 */ b .L7F006AD4 +/* 03B5C4 7F006A94 8EB90000 */ lw $t9, ($s5) +/* 03B5C8 7F006A98 8E8F0000 */ lw $t7, ($s4) +.L7F006A9C: +/* 03B5CC 7F006A9C 02A02025 */ move $a0, $s5 +/* 03B5D0 7F006AA0 02402825 */ move $a1, $s2 +/* 03B5D4 7F006AA4 11E0000A */ beqz $t7, .L7F006AD0 +/* 03B5D8 7F006AA8 03C03025 */ move $a2, $fp +/* 03B5DC 7F006AAC 0FC23D0E */ jal sub_GAME_7F08F438 +/* 03B5E0 7F006AB0 27A7009C */ addiu $a3, $sp, 0x9c +/* 03B5E4 7F006AB4 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 03B5E8 7F006AB8 8FB8009C */ lw $t8, 0x9c($sp) +/* 03B5EC 7F006ABC 51C00004 */ beql $t6, $zero, .L7F006AD0 +/* 03B5F0 7F006AC0 24160001 */ li $s6, 1 +/* 03B5F4 7F006AC4 57000003 */ bnezl $t8, .L7F006AD4 +/* 03B5F8 7F006AC8 8EB90000 */ lw $t9, ($s5) +/* 03B5FC 7F006ACC 24160001 */ li $s6, 1 +.L7F006AD0: +/* 03B600 7F006AD0 8EB90000 */ lw $t9, ($s5) +.L7F006AD4: +/* 03B604 7F006AD4 26730004 */ addiu $s3, $s3, 4 +/* 03B608 7F006AD8 03337821 */ addu $t7, $t9, $s3 +/* 03B60C 7F006ADC 8DE20000 */ lw $v0, ($t7) +/* 03B610 7F006AE0 0441FFC1 */ bgez $v0, .L7F0069E8 +/* 03B614 7F006AE4 00000000 */ nop +/* 03B618 7F006AE8 8FAE0048 */ lw $t6, 0x48($sp) +.L7F006AEC: +/* 03B61C 7F006AEC 26310001 */ addiu $s1, $s1, 1 +/* 03B620 7F006AF0 25D5000C */ addiu $s5, $t6, 0xc +/* 03B624 7F006AF4 AFB50048 */ sw $s5, 0x48($sp) +/* 03B628 7F006AF8 8EB90000 */ lw $t9, ($s5) +/* 03B62C 7F006AFC 5720FFB6 */ bnezl $t9, .L7F0069D8 +/* 03B630 7F006B00 8EB80000 */ lw $t8, ($s5) +.L7F006B04: +/* 03B634 7F006B04 12000091 */ beqz $s0, .L7F006D4C +/* 03B638 7F006B08 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 03B63C 7F006B0C 11E0008F */ beqz $t7, .L7F006D4C +/* 03B640 7F006B10 00000000 */ nop +/* 03B644 7F006B14 8DE30000 */ lw $v1, ($t7) +/* 03B648 7F006B18 00004825 */ move $t1, $zero +/* 03B64C 7F006B1C 01E05825 */ move $t3, $t7 +/* 03B650 7F006B20 1060001F */ beqz $v1, .L7F006BA0 +/* 03B654 7F006B24 0200B825 */ move $s7, $s0 +/* 03B658 7F006B28 01E06825 */ move $t5, $t7 +.L7F006B2C: +/* 03B65C 7F006B2C 8D640004 */ lw $a0, 4($t3) +/* 03B660 7F006B30 00003825 */ move $a3, $zero +/* 03B664 7F006B34 8C830000 */ lw $v1, ($a0) +/* 03B668 7F006B38 04600011 */ bltz $v1, .L7F006B80 +/* 03B66C 7F006B3C 00037100 */ sll $t6, $v1, 4 +.L7F006B40: +/* 03B670 7F006B40 01D02821 */ addu $a1, $t6, $s0 +/* 03B674 7F006B44 8CA60008 */ lw $a2, 8($a1) +/* 03B678 7F006B48 04C10005 */ bgez $a2, .L7F006B60 +/* 03B67C 7F006B4C 00000000 */ nop +/* 03B680 7F006B50 ACA90008 */ sw $t1, 8($a1) +/* 03B684 7F006B54 8D640004 */ lw $a0, 4($t3) +/* 03B688 7F006B58 10000004 */ b .L7F006B6C +/* 03B68C 7F006B5C 00871021 */ addu $v0, $a0, $a3 +.L7F006B60: +/* 03B690 7F006B60 11260002 */ beq $t1, $a2, .L7F006B6C +/* 03B694 7F006B64 00871021 */ addu $v0, $a0, $a3 +/* 03B698 7F006B68 24160001 */ li $s6, 1 +.L7F006B6C: +/* 03B69C 7F006B6C 8C430004 */ lw $v1, 4($v0) +/* 03B6A0 7F006B70 24E70004 */ addiu $a3, $a3, 4 +/* 03B6A4 7F006B74 24420004 */ addiu $v0, $v0, 4 +/* 03B6A8 7F006B78 0463FFF1 */ bgezl $v1, .L7F006B40 +/* 03B6AC 7F006B7C 00037100 */ sll $t6, $v1, 4 +.L7F006B80: +/* 03B6B0 7F006B80 8DB8000C */ lw $t8, 0xc($t5) +/* 03B6B4 7F006B84 25AD000C */ addiu $t5, $t5, 0xc +/* 03B6B8 7F006B88 01A05825 */ move $t3, $t5 +/* 03B6BC 7F006B8C 1700FFE7 */ bnez $t8, .L7F006B2C +/* 03B6C0 7F006B90 25290001 */ addiu $t1, $t1, 1 +/* 03B6C4 7F006B94 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 03B6C8 7F006B98 00004825 */ move $t1, $zero +/* 03B6CC 7F006B9C 8D630000 */ lw $v1, ($t3) +.L7F006BA0: +/* 03B6D0 7F006BA0 8EEF0000 */ lw $t7, ($s7) +/* 03B6D4 7F006BA4 02E03025 */ move $a2, $s7 +/* 03B6D8 7F006BA8 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 03B6DC 7F006BAC 05E0000A */ bltz $t7, .L7F006BD8 +/* 03B6E0 7F006BB0 24070001 */ li $a3, 1 +/* 03B6E4 7F006BB4 8CCE0008 */ lw $t6, 8($a2) +.L7F006BB8: +/* 03B6E8 7F006BB8 25290001 */ addiu $t1, $t1, 1 +/* 03B6EC 7F006BBC 0009C100 */ sll $t8, $t1, 4 +/* 03B6F0 7F006BC0 05C10002 */ bgez $t6, .L7F006BCC +/* 03B6F4 7F006BC4 03103021 */ addu $a2, $t8, $s0 +/* 03B6F8 7F006BC8 24160001 */ li $s6, 1 +.L7F006BCC: +/* 03B6FC 7F006BCC 8CD90000 */ lw $t9, ($a2) +/* 03B700 7F006BD0 0723FFF9 */ bgezl $t9, .L7F006BB8 +/* 03B704 7F006BD4 8CCE0008 */ lw $t6, 8($a2) +.L7F006BD8: +/* 03B708 7F006BD8 1060005C */ beqz $v1, .L7F006D4C +/* 03B70C 7F006BDC 00000000 */ nop +/* 03B710 7F006BE0 8D640004 */ lw $a0, 4($t3) +.L7F006BE4: +/* 03B714 7F006BE4 00001825 */ move $v1, $zero +/* 03B718 7F006BE8 00004025 */ move $t0, $zero +/* 03B71C 7F006BEC 8C850000 */ lw $a1, ($a0) +/* 03B720 7F006BF0 00006025 */ move $t4, $zero +/* 03B724 7F006BF4 00004825 */ move $t1, $zero +/* 03B728 7F006BF8 04A00012 */ bltz $a1, .L7F006C44 +/* 03B72C 7F006BFC 00A01025 */ move $v0, $a1 +.L7F006C00: +/* 03B730 7F006C00 15200005 */ bnez $t1, .L7F006C18 +/* 03B734 7F006C04 0002C100 */ sll $t8, $v0, 4 +/* 03B738 7F006C08 00027900 */ sll $t7, $v0, 4 +/* 03B73C 7F006C0C 01F07021 */ addu $t6, $t7, $s0 +/* 03B740 7F006C10 10000003 */ b .L7F006C20 +/* 03B744 7F006C14 ADC7000C */ sw $a3, 0xc($t6) +.L7F006C18: +/* 03B748 7F006C18 0310C821 */ addu $t9, $t8, $s0 +/* 03B74C 7F006C1C AF20000C */ sw $zero, 0xc($t9) +.L7F006C20: +/* 03B750 7F006C20 8D640004 */ lw $a0, 4($t3) +/* 03B754 7F006C24 25290004 */ addiu $t1, $t1, 4 +/* 03B758 7F006C28 00897821 */ addu $t7, $a0, $t1 +/* 03B75C 7F006C2C 8DE20000 */ lw $v0, ($t7) +/* 03B760 7F006C30 0441FFF3 */ bgez $v0, .L7F006C00 +/* 03B764 7F006C34 00000000 */ nop +/* 03B768 7F006C38 8C850000 */ lw $a1, ($a0) +/* 03B76C 7F006C3C 00001825 */ move $v1, $zero +/* 03B770 7F006C40 00A01025 */ move $v0, $a1 +.L7F006C44: +/* 03B774 7F006C44 04400020 */ bltz $v0, .L7F006CC8 +/* 03B778 7F006C48 00004825 */ move $t1, $zero +/* 03B77C 7F006C4C 00027100 */ sll $t6, $v0, 4 +.L7F006C50: +/* 03B780 7F006C50 01D03021 */ addu $a2, $t6, $s0 +/* 03B784 7F006C54 8CD8000C */ lw $t8, 0xc($a2) +/* 03B788 7F006C58 25290004 */ addiu $t1, $t1, 4 +/* 03B78C 7F006C5C 54F80014 */ bnel $a3, $t8, .L7F006CB0 +/* 03B790 7F006C60 0089C021 */ addu $t8, $a0, $t1 +/* 03B794 7F006C64 8CC50004 */ lw $a1, 4($a2) +/* 03B798 7F006C68 00001825 */ move $v1, $zero +/* 03B79C 7F006C6C 8CA20000 */ lw $v0, ($a1) +/* 03B7A0 7F006C70 0440000E */ bltz $v0, .L7F006CAC +/* 03B7A4 7F006C74 0002C900 */ sll $t9, $v0, 4 +.L7F006C78: +/* 03B7A8 7F006C78 03302021 */ addu $a0, $t9, $s0 +/* 03B7AC 7F006C7C 8C8F000C */ lw $t7, 0xc($a0) +/* 03B7B0 7F006C80 24630004 */ addiu $v1, $v1, 4 +/* 03B7B4 7F006C84 50EF0005 */ beql $a3, $t7, .L7F006C9C +/* 03B7B8 7F006C88 00A37021 */ addu $t6, $a1, $v1 +/* 03B7BC 7F006C8C AC87000C */ sw $a3, 0xc($a0) +/* 03B7C0 7F006C90 8CC50004 */ lw $a1, 4($a2) +/* 03B7C4 7F006C94 00E04025 */ move $t0, $a3 +/* 03B7C8 7F006C98 00A37021 */ addu $t6, $a1, $v1 +.L7F006C9C: +/* 03B7CC 7F006C9C 8DC20000 */ lw $v0, ($t6) +/* 03B7D0 7F006CA0 0443FFF5 */ bgezl $v0, .L7F006C78 +/* 03B7D4 7F006CA4 0002C900 */ sll $t9, $v0, 4 +/* 03B7D8 7F006CA8 8D640004 */ lw $a0, 4($t3) +.L7F006CAC: +/* 03B7DC 7F006CAC 0089C021 */ addu $t8, $a0, $t1 +.L7F006CB0: +/* 03B7E0 7F006CB0 8F020000 */ lw $v0, ($t8) +/* 03B7E4 7F006CB4 0443FFE6 */ bgezl $v0, .L7F006C50 +/* 03B7E8 7F006CB8 00027100 */ sll $t6, $v0, 4 +/* 03B7EC 7F006CBC 8C850000 */ lw $a1, ($a0) +/* 03B7F0 7F006CC0 00001825 */ move $v1, $zero +/* 03B7F4 7F006CC4 00A01025 */ move $v0, $a1 +.L7F006CC8: +/* 03B7F8 7F006CC8 0440000C */ bltz $v0, .L7F006CFC +/* 03B7FC 7F006CCC 0002C900 */ sll $t9, $v0, 4 +.L7F006CD0: +/* 03B800 7F006CD0 03307821 */ addu $t7, $t9, $s0 +/* 03B804 7F006CD4 8DEE000C */ lw $t6, 0xc($t7) +/* 03B808 7F006CD8 24630001 */ addiu $v1, $v1, 1 +/* 03B80C 7F006CDC 0003C080 */ sll $t8, $v1, 2 +/* 03B810 7F006CE0 10EE0003 */ beq $a3, $t6, .L7F006CF0 +/* 03B814 7F006CE4 0098C821 */ addu $t9, $a0, $t8 +/* 03B818 7F006CE8 10000004 */ b .L7F006CFC +/* 03B81C 7F006CEC 00E06025 */ move $t4, $a3 +.L7F006CF0: +/* 03B820 7F006CF0 8F220000 */ lw $v0, ($t9) +/* 03B824 7F006CF4 0443FFF6 */ bgezl $v0, .L7F006CD0 +/* 03B828 7F006CF8 0002C900 */ sll $t9, $v0, 4 +.L7F006CFC: +/* 03B82C 7F006CFC 11000003 */ beqz $t0, .L7F006D0C +/* 03B830 7F006D00 00001825 */ move $v1, $zero +/* 03B834 7F006D04 15800009 */ bnez $t4, .L7F006D2C +/* 03B838 7F006D08 00A01025 */ move $v0, $a1 +.L7F006D0C: +/* 03B83C 7F006D0C 5180000B */ beql $t4, $zero, .L7F006D3C +/* 03B840 7F006D10 8DAE000C */ lw $t6, 0xc($t5) +/* 03B844 7F006D14 8E8F0024 */ lw $t7, 0x24($s4) +/* 03B848 7F006D18 24160001 */ li $s6, 1 +/* 03B84C 7F006D1C 51E00007 */ beql $t7, $zero, .L7F006D3C +/* 03B850 7F006D20 8DAE000C */ lw $t6, 0xc($t5) +/* 03B854 7F006D24 10000005 */ b .L7F006D3C +/* 03B858 7F006D28 8DAE000C */ lw $t6, 0xc($t5) +.L7F006D2C: +/* 03B85C 7F006D2C 00004025 */ move $t0, $zero +/* 03B860 7F006D30 1000FFC4 */ b .L7F006C44 +/* 03B864 7F006D34 00006025 */ move $t4, $zero +/* 03B868 7F006D38 8DAE000C */ lw $t6, 0xc($t5) +.L7F006D3C: +/* 03B86C 7F006D3C 25AD000C */ addiu $t5, $t5, 0xc +/* 03B870 7F006D40 01A05825 */ move $t3, $t5 +/* 03B874 7F006D44 55C0FFA7 */ bnezl $t6, .L7F006BE4 +/* 03B878 7F006D48 8D640004 */ lw $a0, 4($t3) +.L7F006D4C: +/* 03B87C 7F006D4C 12C00003 */ beqz $s6, .L7F006D5C +/* 03B880 7F006D50 8FB00018 */ lw $s0, 0x18($sp) +.L7F006D54: +/* 03B884 7F006D54 1000FFFF */ b .L7F006D54 +/* 03B888 7F006D58 00000000 */ nop +.L7F006D5C: +/* 03B88C 7F006D5C 8FBF003C */ lw $ra, 0x3c($sp) +/* 03B890 7F006D60 8FB1001C */ lw $s1, 0x1c($sp) +/* 03B894 7F006D64 8FB20020 */ lw $s2, 0x20($sp) +/* 03B898 7F006D68 8FB30024 */ lw $s3, 0x24($sp) +/* 03B89C 7F006D6C 8FB40028 */ lw $s4, 0x28($sp) +/* 03B8A0 7F006D70 8FB5002C */ lw $s5, 0x2c($sp) +/* 03B8A4 7F006D74 8FB60030 */ lw $s6, 0x30($sp) +/* 03B8A8 7F006D78 8FB70034 */ lw $s7, 0x34($sp) +/* 03B8AC 7F006D7C 8FBE0038 */ lw $fp, 0x38($sp) +/* 03B8B0 7F006D80 03E00008 */ jr $ra +/* 03B8B4 7F006D84 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + diff --git a/src/game/initpathtablesomething.c b/src/game/initpathtablesomething.c new file mode 100644 index 0000000..9933b41 --- /dev/null +++ b/src/game/initpathtablesomething.c @@ -0,0 +1,71 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void init_pathtable_something(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_pathtable_something +/* 03B2F0 7F0067C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03B2F4 7F0067C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 03B2F8 7F0067C8 00808025 */ move $s0, $a0 +/* 03B2FC 7F0067CC AFBF0024 */ sw $ra, 0x24($sp) +/* 03B300 7F0067D0 AFB10020 */ sw $s1, 0x20($sp) +/* 03B304 7F0067D4 00C08825 */ move $s1, $a2 +/* 03B308 7F0067D8 0FC2CB96 */ jal stanMatchTileName +/* 03B30C 7F0067DC 00A02025 */ move $a0, $a1 +/* 03B310 7F0067E0 10400007 */ beqz $v0, .L7F006800 +/* 03B314 7F0067E4 AE220000 */ sw $v0, ($s1) +/* 03B318 7F0067E8 00402025 */ move $a0, $v0 +/* 03B31C 7F0067EC 8E050000 */ lw $a1, ($s0) +/* 03B320 7F0067F0 0FC2C0DB */ jal sub_GAME_7F0B036C +/* 03B324 7F0067F4 8E060008 */ lw $a2, 8($s0) +/* 03B328 7F0067F8 5440001D */ bnezl $v0, .L7F006870 +/* 03B32C 7F0067FC 24020001 */ li $v0, 1 +.L7F006800: +/* 03B330 7F006800 C6040000 */ lwc1 $f4, ($s0) +/* 03B334 7F006804 27A4002C */ addiu $a0, $sp, 0x2c +/* 03B338 7F006808 27A50030 */ addiu $a1, $sp, 0x30 +/* 03B33C 7F00680C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 03B340 7F006810 C6060004 */ lwc1 $f6, 4($s0) +/* 03B344 7F006814 27A60034 */ addiu $a2, $sp, 0x34 +/* 03B348 7F006818 24070000 */ li $a3, 0 +/* 03B34C 7F00681C E7A60030 */ swc1 $f6, 0x30($sp) +/* 03B350 7F006820 C6080008 */ lwc1 $f8, 8($s0) +/* 03B354 7F006824 0FC2BEDE */ jal sub_GAME_7F0AFB78 +/* 03B358 7F006828 E7A80034 */ swc1 $f8, 0x34($sp) +/* 03B35C 7F00682C 1040000C */ beqz $v0, .L7F006860 +/* 03B360 7F006830 AE220000 */ sw $v0, ($s1) +/* 03B364 7F006834 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B368 7F006838 8E070000 */ lw $a3, ($s0) +/* 03B36C 7F00683C 02202025 */ move $a0, $s1 +/* 03B370 7F006840 8FA5002C */ lw $a1, 0x2c($sp) +/* 03B374 7F006844 8FA60034 */ lw $a2, 0x34($sp) +/* 03B378 7F006848 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 03B37C 7F00684C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 03B380 7F006850 50400004 */ beql $v0, $zero, .L7F006864 +/* 03B384 7F006854 AE200000 */ sw $zero, ($s1) +/* 03B388 7F006858 10000005 */ b .L7F006870 +/* 03B38C 7F00685C 24020002 */ li $v0, 2 +.L7F006860: +/* 03B390 7F006860 AE200000 */ sw $zero, ($s1) +.L7F006864: +/* 03B394 7F006864 10000002 */ b .L7F006870 +/* 03B398 7F006868 00001025 */ move $v0, $zero +/* 03B39C 7F00686C 24020001 */ li $v0, 1 +.L7F006870: +/* 03B3A0 7F006870 8FBF0024 */ lw $ra, 0x24($sp) +/* 03B3A4 7F006874 8FB0001C */ lw $s0, 0x1c($sp) +/* 03B3A8 7F006878 8FB10020 */ lw $s1, 0x20($sp) +/* 03B3AC 7F00687C 03E00008 */ jr $ra +/* 03B3B0 7F006880 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + diff --git a/src/game/initpathtablesomething.h b/src/game/initpathtablesomething.h new file mode 100644 index 0000000..de60833 --- /dev/null +++ b/src/game/initpathtablesomething.h @@ -0,0 +1,7 @@ +#ifndef _INITPATHTABLESOMETHING_H_ +#define _INITPATHTABLESOMETHING_H_ +#include "ultra64.h" + +void init_pathtable_something(void); + +#endif diff --git a/src/game/initunk_0009E0.c b/src/game/initunk_0009E0.c new file mode 100644 index 0000000..d41c692 --- /dev/null +++ b/src/game/initunk_0009E0.c @@ -0,0 +1,10 @@ +#include "ultra64.h" +#include "game/objecthandler.h" + + +void sub_GAME_7F0009E0(s32 arg0, s32 arg1, s32 arg2) { + D_80036414 = arg0; + D_80036418 = arg1; + D_8003641C = arg2; +} + diff --git a/src/game/initunk_000B60.c b/src/game/initunk_000B60.c new file mode 100644 index 0000000..e29b754 --- /dev/null +++ b/src/game/initunk_000B60.c @@ -0,0 +1,8 @@ +#include "ultra64.h" +#include "game/chrobjdata.h" + +void sub_GAME_7F000B60(void) { + player_gait_object.offset_obj_table = (int)&player_gait_hdr; + return; +} + diff --git a/src/game/initunk_005450.c b/src/game/initunk_005450.c new file mode 100644 index 0000000..217f4d6 --- /dev/null +++ b/src/game/initunk_005450.c @@ -0,0 +1,68 @@ +#include "ultra64.h" + +//called by stage load + + +#ifdef NONMATCHING +void sub_GAME_7F005450(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005450 +/* 039F80 7F005450 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80076A50) +/* 039F84 7F005454 254A6A50 */ addiu $t2, %lo(dword_CODE_bss_80076A50) # addiu $t2, $t2, 0x6a50 +/* 039F88 7F005458 3C018003 */ lui $at, %hi(D_80036060) +/* 039F8C 7F00545C 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80076A64) +/* 039F90 7F005460 AC2A6060 */ sw $t2, %lo(D_80036060)($at) +/* 039F94 7F005464 256B6A64 */ addiu $t3, %lo(dword_CODE_bss_80076A64) # addiu $t3, $t3, 0x6a64 +/* 039F98 7F005468 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80076A78) +/* 039F9C 7F00546C AD4B000C */ sw $t3, 0xc($t2) +/* 039FA0 7F005470 25C66A78 */ addiu $a2, $t6, %lo(dword_CODE_bss_80076A78) +/* 039FA4 7F005474 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A70) +/* 039FA8 7F005478 AC266A70 */ sw $a2, %lo(dword_CODE_bss_80076A70)($at) +/* 039FAC 7F00547C 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A74) +/* 039FB0 7F005480 AC2A6A74 */ sw $t2, %lo(dword_CODE_bss_80076A74)($at) +/* 039FB4 7F005484 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80076A8C) +/* 039FB8 7F005488 25E46A8C */ addiu $a0, $t7, %lo(dword_CODE_bss_80076A8C) +/* 039FBC 7F00548C 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A84) +/* 039FC0 7F005490 AC246A84 */ sw $a0, %lo(dword_CODE_bss_80076A84)($at) +/* 039FC4 7F005494 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A88) +/* 039FC8 7F005498 3C058007 */ lui $a1, %hi(dword_CODE_bss_80076AA0) +/* 039FCC 7F00549C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80076AB4) +/* 039FD0 7F0054A0 3C088007 */ lui $t0, %hi(dword_CODE_bss_80076AC8) +/* 039FD4 7F0054A4 3C098007 */ lui $t1, %hi(dword_CODE_bss_80076ADC) +/* 039FD8 7F0054A8 3C028008 */ lui $v0, %hi(flt_CODE_bss_8007996C) +/* 039FDC 7F0054AC 2442996C */ addiu $v0, %lo(flt_CODE_bss_8007996C) # addiu $v0, $v0, -0x6694 +/* 039FE0 7F0054B0 25296ADC */ addiu $t1, %lo(dword_CODE_bss_80076ADC) # addiu $t1, $t1, 0x6adc +/* 039FE4 7F0054B4 25086AC8 */ addiu $t0, %lo(dword_CODE_bss_80076AC8) # addiu $t0, $t0, 0x6ac8 +/* 039FE8 7F0054B8 24E76AB4 */ addiu $a3, %lo(dword_CODE_bss_80076AB4) # addiu $a3, $a3, 0x6ab4 +/* 039FEC 7F0054BC 24A56AA0 */ addiu $a1, %lo(dword_CODE_bss_80076AA0) # addiu $a1, $a1, 0x6aa0 +/* 039FF0 7F0054C0 AC2B6A88 */ sw $t3, %lo(dword_CODE_bss_80076A88)($at) +/* 039FF4 7F0054C4 00801825 */ move $v1, $a0 +.L7F0054C8: +/* 039FF8 7F0054C8 AC690048 */ sw $t1, 0x48($v1) +/* 039FFC 7F0054CC 25290050 */ addiu $t1, $t1, 0x50 +/* 03A000 7F0054D0 AC670020 */ sw $a3, 0x20($v1) +/* 03A004 7F0054D4 AC640024 */ sw $a0, 0x24($v1) +/* 03A008 7F0054D8 AC680034 */ sw $t0, 0x34($v1) +/* 03A00C 7F0054DC AC650038 */ sw $a1, 0x38($v1) +/* 03A010 7F0054E0 AC67004C */ sw $a3, 0x4c($v1) +/* 03A014 7F0054E4 AC65000C */ sw $a1, 0xc($v1) +/* 03A018 7F0054E8 AC660010 */ sw $a2, 0x10($v1) +/* 03A01C 7F0054EC 24C60050 */ addiu $a2, $a2, 0x50 +/* 03A020 7F0054F0 24A50050 */ addiu $a1, $a1, 0x50 +/* 03A024 7F0054F4 24E70050 */ addiu $a3, $a3, 0x50 +/* 03A028 7F0054F8 25080050 */ addiu $t0, $t0, 0x50 +/* 03A02C 7F0054FC 24840050 */ addiu $a0, $a0, 0x50 +/* 03A030 7F005500 1522FFF1 */ bne $t1, $v0, .L7F0054C8 +/* 03A034 7F005504 24630050 */ addiu $v1, $v1, 0x50 +/* 03A038 7F005508 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079908) +/* 03A03C 7F00550C 27189908 */ addiu $t8, %lo(dword_CODE_bss_80079908) # addiu $t8, $t8, -0x66f8 +/* 03A040 7F005510 03E00008 */ jr $ra +/* 03A044 7F005514 AD582EDC */ sw $t8, 0x2edc($t2) +) +#endif + + diff --git a/src/game/initunk_005520.c b/src/game/initunk_005520.c new file mode 100644 index 0000000..6cbc8e6 --- /dev/null +++ b/src/game/initunk_005520.c @@ -0,0 +1,168 @@ +#include "ultra64.h" + + +extern s32 D_80036070; +extern s32 D_80036074; +extern s32 D_80036078; + + + +void zero_contents_of_80036070_74(void) { + D_80036070 = 0; + D_80036074 = 0; +} + +void set_contents_of_80036078(s32 arg0) { + D_80036078 = arg0; +} + +//this may be a file split + +#ifdef NONMATCHING +void sub_GAME_7F005540(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005540 +/* 03A070 7F005540 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03A074 7F005544 AFB40024 */ sw $s4, 0x24($sp) +/* 03A078 7F005548 3C148003 */ lui $s4, %hi(D_80036074) +/* 03A07C 7F00554C AFB50028 */ sw $s5, 0x28($sp) +/* 03A080 7F005550 0080A825 */ move $s5, $a0 +/* 03A084 7F005554 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 03A088 7F005558 AFBF002C */ sw $ra, 0x2c($sp) +/* 03A08C 7F00555C 248E001E */ addiu $t6, $a0, 0x1e +/* 03A090 7F005560 AFB30020 */ sw $s3, 0x20($sp) +/* 03A094 7F005564 AFB2001C */ sw $s2, 0x1c($sp) +/* 03A098 7F005568 AFB10018 */ sw $s1, 0x18($sp) +/* 03A09C 7F00556C AFB00014 */ sw $s0, 0x14($sp) +/* 03A0A0 7F005570 AE8E0000 */ sw $t6, ($s4) +/* 03A0A4 7F005574 000E2140 */ sll $a0, $t6, 5 +/* 03A0A8 7F005578 0C0025C8 */ jal mempAllocBytesInBank +/* 03A0AC 7F00557C 24050004 */ li $a1, 4 +/* 03A0B0 7F005580 8E980000 */ lw $t8, ($s4) +/* 03A0B4 7F005584 3C128008 */ lui $s2, %hi(ptr_allocation_1) +/* 03A0B8 7F005588 26529934 */ addiu $s2, %lo(ptr_allocation_1) # addiu $s2, $s2, -0x66cc +/* 03A0BC 7F00558C AE420000 */ sw $v0, ($s2) +/* 03A0C0 7F005590 1B00001B */ blez $t8, .L7F005600 +/* 03A0C4 7F005594 00008825 */ move $s1, $zero +/* 03A0C8 7F005598 00008025 */ move $s0, $zero +/* 03A0CC 7F00559C 24130014 */ li $s3, 20 +/* 03A0D0 7F0055A0 8E590000 */ lw $t9, ($s2) +.L7F0055A4: +/* 03A0D4 7F0055A4 0235082A */ slt $at, $s1, $s5 +/* 03A0D8 7F0055A8 24040050 */ li $a0, 80 +/* 03A0DC 7F0055AC 03304021 */ addu $t0, $t9, $s0 +/* 03A0E0 7F0055B0 10200005 */ beqz $at, .L7F0055C8 +/* 03A0E4 7F0055B4 AD000008 */ sw $zero, 8($t0) +/* 03A0E8 7F0055B8 8E490000 */ lw $t1, ($s2) +/* 03A0EC 7F0055BC 01305021 */ addu $t2, $t1, $s0 +/* 03A0F0 7F0055C0 10000009 */ b .L7F0055E8 +/* 03A0F4 7F0055C4 AD400010 */ sw $zero, 0x10($t2) +.L7F0055C8: +/* 03A0F8 7F0055C8 0C0025C8 */ jal mempAllocBytesInBank +/* 03A0FC 7F0055CC 24050004 */ li $a1, 4 +/* 03A100 7F0055D0 8E4B0000 */ lw $t3, ($s2) +/* 03A104 7F0055D4 01706021 */ addu $t4, $t3, $s0 +/* 03A108 7F0055D8 AD820010 */ sw $v0, 0x10($t4) +/* 03A10C 7F0055DC 8E4D0000 */ lw $t5, ($s2) +/* 03A110 7F0055E0 01B07021 */ addu $t6, $t5, $s0 +/* 03A114 7F0055E4 A5D30002 */ sh $s3, 2($t6) +.L7F0055E8: +/* 03A118 7F0055E8 8E8F0000 */ lw $t7, ($s4) +/* 03A11C 7F0055EC 26310001 */ addiu $s1, $s1, 1 +/* 03A120 7F0055F0 26100020 */ addiu $s0, $s0, 0x20 +/* 03A124 7F0055F4 022F082A */ slt $at, $s1, $t7 +/* 03A128 7F0055F8 5420FFEA */ bnezl $at, .L7F0055A4 +/* 03A12C 7F0055FC 8E590000 */ lw $t9, ($s2) +.L7F005600: +/* 03A130 7F005600 8FBF002C */ lw $ra, 0x2c($sp) +/* 03A134 7F005604 8FB00014 */ lw $s0, 0x14($sp) +/* 03A138 7F005608 8FB10018 */ lw $s1, 0x18($sp) +/* 03A13C 7F00560C 8FB2001C */ lw $s2, 0x1c($sp) +/* 03A140 7F005610 8FB30020 */ lw $s3, 0x20($sp) +/* 03A144 7F005614 8FB40024 */ lw $s4, 0x24($sp) +/* 03A148 7F005618 8FB50028 */ lw $s5, 0x28($sp) +/* 03A14C 7F00561C 03E00008 */ jr $ra +/* 03A150 7F005620 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F005624(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005624 +/* 03A154 7F005624 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03A158 7F005628 AFB40024 */ sw $s4, 0x24($sp) +/* 03A15C 7F00562C 248E000A */ addiu $t6, $a0, 0xa +/* 03A160 7F005630 3C148003 */ lui $s4, %hi(D_80036070) +/* 03A164 7F005634 AFB50028 */ sw $s5, 0x28($sp) +/* 03A168 7F005638 000E7880 */ sll $t7, $t6, 2 +/* 03A16C 7F00563C 0080A825 */ move $s5, $a0 +/* 03A170 7F005640 26946070 */ addiu $s4, %lo(D_80036070) # addiu $s4, $s4, 0x6070 +/* 03A174 7F005644 AFBF002C */ sw $ra, 0x2c($sp) +/* 03A178 7F005648 01EE7823 */ subu $t7, $t7, $t6 +/* 03A17C 7F00564C AFB30020 */ sw $s3, 0x20($sp) +/* 03A180 7F005650 AFB2001C */ sw $s2, 0x1c($sp) +/* 03A184 7F005654 AFB10018 */ sw $s1, 0x18($sp) +/* 03A188 7F005658 AFB00014 */ sw $s0, 0x14($sp) +/* 03A18C 7F00565C AE8E0000 */ sw $t6, ($s4) +/* 03A190 7F005660 000F2180 */ sll $a0, $t7, 6 +/* 03A194 7F005664 0C0025C8 */ jal mempAllocBytesInBank +/* 03A198 7F005668 24050004 */ li $a1, 4 +/* 03A19C 7F00566C 8E980000 */ lw $t8, ($s4) +/* 03A1A0 7F005670 3C128008 */ lui $s2, %hi(ptr_allocation_0) +/* 03A1A4 7F005674 26529930 */ addiu $s2, %lo(ptr_allocation_0) # addiu $s2, $s2, -0x66d0 +/* 03A1A8 7F005678 AE420000 */ sw $v0, ($s2) +/* 03A1AC 7F00567C 1B00001B */ blez $t8, .L7F0056EC +/* 03A1B0 7F005680 00008825 */ move $s1, $zero +/* 03A1B4 7F005684 00008025 */ move $s0, $zero +/* 03A1B8 7F005688 2413008C */ li $s3, 140 +/* 03A1BC 7F00568C 8E590000 */ lw $t9, ($s2) +.L7F005690: +/* 03A1C0 7F005690 0235082A */ slt $at, $s1, $s5 +/* 03A1C4 7F005694 24040230 */ li $a0, 560 +/* 03A1C8 7F005698 03304021 */ addu $t0, $t9, $s0 +/* 03A1CC 7F00569C 10200005 */ beqz $at, .L7F0056B4 +/* 03A1D0 7F0056A0 AD000008 */ sw $zero, 8($t0) +/* 03A1D4 7F0056A4 8E490000 */ lw $t1, ($s2) +/* 03A1D8 7F0056A8 01305021 */ addu $t2, $t1, $s0 +/* 03A1DC 7F0056AC 10000009 */ b .L7F0056D4 +/* 03A1E0 7F0056B0 AD400010 */ sw $zero, 0x10($t2) +.L7F0056B4: +/* 03A1E4 7F0056B4 0C0025C8 */ jal mempAllocBytesInBank +/* 03A1E8 7F0056B8 24050004 */ li $a1, 4 +/* 03A1EC 7F0056BC 8E4B0000 */ lw $t3, ($s2) +/* 03A1F0 7F0056C0 01706021 */ addu $t4, $t3, $s0 +/* 03A1F4 7F0056C4 AD820010 */ sw $v0, 0x10($t4) +/* 03A1F8 7F0056C8 8E4D0000 */ lw $t5, ($s2) +/* 03A1FC 7F0056CC 01B07021 */ addu $t6, $t5, $s0 +/* 03A200 7F0056D0 A5D30002 */ sh $s3, 2($t6) +.L7F0056D4: +/* 03A204 7F0056D4 8E8F0000 */ lw $t7, ($s4) +/* 03A208 7F0056D8 26310001 */ addiu $s1, $s1, 1 +/* 03A20C 7F0056DC 261000BC */ addiu $s0, $s0, 0xbc +/* 03A210 7F0056E0 022F082A */ slt $at, $s1, $t7 +/* 03A214 7F0056E4 5420FFEA */ bnezl $at, .L7F005690 +/* 03A218 7F0056E8 8E590000 */ lw $t9, ($s2) +.L7F0056EC: +/* 03A21C 7F0056EC 8FBF002C */ lw $ra, 0x2c($sp) +/* 03A220 7F0056F0 8FB00014 */ lw $s0, 0x14($sp) +/* 03A224 7F0056F4 8FB10018 */ lw $s1, 0x18($sp) +/* 03A228 7F0056F8 8FB2001C */ lw $s2, 0x1c($sp) +/* 03A22C 7F0056FC 8FB30020 */ lw $s3, 0x20($sp) +/* 03A230 7F005700 8FB40024 */ lw $s4, 0x24($sp) +/* 03A234 7F005704 8FB50028 */ lw $s5, 0x28($sp) +/* 03A238 7F005708 03E00008 */ jr $ra +/* 03A23C 7F00570C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + diff --git a/src/game/initunk_007180.c b/src/game/initunk_007180.c new file mode 100644 index 0000000..a4a5992 --- /dev/null +++ b/src/game/initunk_007180.c @@ -0,0 +1,86 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F007180(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007180 +/* 03BCB0 7F007180 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03BCB4 7F007184 AFBF0014 */ sw $ra, 0x14($sp) +/* 03BCB8 7F007188 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BCBC 7F00718C 00000000 */ nop +/* 03BCC0 7F007190 0FC26919 */ jal get_num_players +/* 03BCC4 7F007194 AFA20018 */ sw $v0, 0x18($sp) +/* 03BCC8 7F007198 240E00C8 */ li $t6, 200 +/* 03BCCC 7F00719C 01C2001A */ div $zero, $t6, $v0 +/* 03BCD0 7F0071A0 8FA30018 */ lw $v1, 0x18($sp) +/* 03BCD4 7F0071A4 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A160) +/* 03BCD8 7F0071A8 24C6A160 */ addiu $a2, %lo(dword_CODE_bss_8007A160) # addiu $a2, $a2, -0x5ea0 +/* 03BCDC 7F0071AC 14400002 */ bnez $v0, .L7F0071B8 +/* 03BCE0 7F0071B0 00000000 */ nop +/* 03BCE4 7F0071B4 0007000D */ break 7 +.L7F0071B8: +/* 03BCE8 7F0071B8 2401FFFF */ li $at, -1 +/* 03BCEC 7F0071BC 14410004 */ bne $v0, $at, .L7F0071D0 +/* 03BCF0 7F0071C0 3C018000 */ lui $at, 0x8000 +/* 03BCF4 7F0071C4 15C10002 */ bne $t6, $at, .L7F0071D0 +/* 03BCF8 7F0071C8 00000000 */ nop +/* 03BCFC 7F0071CC 0006000D */ break 6 +.L7F0071D0: +/* 03BD00 7F0071D0 00007812 */ mflo $t7 +/* 03BD04 7F0071D4 2401001D */ li $at, 29 +/* 03BD08 7F0071D8 10610004 */ beq $v1, $at, .L7F0071EC +/* 03BD0C 7F0071DC ACCF0000 */ sw $t7, ($a2) +/* 03BD10 7F0071E0 2401001E */ li $at, 30 +/* 03BD14 7F0071E4 54610005 */ bnel $v1, $at, .L7F0071FC +/* 03BD18 7F0071E8 8CC40000 */ lw $a0, ($a2) +.L7F0071EC: +/* 03BD1C 7F0071EC 8CD80000 */ lw $t8, ($a2) +/* 03BD20 7F0071F0 0018C843 */ sra $t9, $t8, 1 +/* 03BD24 7F0071F4 ACD90000 */ sw $t9, ($a2) +/* 03BD28 7F0071F8 8CC40000 */ lw $a0, ($a2) +.L7F0071FC: +/* 03BD2C 7F0071FC 2401FFF0 */ li $at, -16 +/* 03BD30 7F007200 24050004 */ li $a1, 4 +/* 03BD34 7F007204 00044080 */ sll $t0, $a0, 2 +/* 03BD38 7F007208 01044023 */ subu $t0, $t0, $a0 +/* 03BD3C 7F00720C 00084080 */ sll $t0, $t0, 2 +/* 03BD40 7F007210 01044021 */ addu $t0, $t0, $a0 +/* 03BD44 7F007214 000840C0 */ sll $t0, $t0, 3 +/* 03BD48 7F007218 2504000F */ addiu $a0, $t0, 0xf +/* 03BD4C 7F00721C 00814824 */ and $t1, $a0, $at +/* 03BD50 7F007220 0C0025C8 */ jal mempAllocBytesInBank +/* 03BD54 7F007224 01202025 */ move $a0, $t1 +/* 03BD58 7F007228 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A160) +/* 03BD5C 7F00722C 24C6A160 */ addiu $a2, %lo(dword_CODE_bss_8007A160) # addiu $a2, $a2, -0x5ea0 +/* 03BD60 7F007230 8CCA0000 */ lw $t2, ($a2) +/* 03BD64 7F007234 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A164) +/* 03BD68 7F007238 2484A164 */ addiu $a0, %lo(dword_CODE_bss_8007A164) # addiu $a0, $a0, -0x5e9c +/* 03BD6C 7F00723C AC820000 */ sw $v0, ($a0) +/* 03BD70 7F007240 1940000B */ blez $t2, .L7F007270 +/* 03BD74 7F007244 00001825 */ move $v1, $zero +/* 03BD78 7F007248 00001025 */ move $v0, $zero +/* 03BD7C 7F00724C 8C8B0000 */ lw $t3, ($a0) +.L7F007250: +/* 03BD80 7F007250 24630001 */ addiu $v1, $v1, 1 +/* 03BD84 7F007254 01626021 */ addu $t4, $t3, $v0 +/* 03BD88 7F007258 AD800000 */ sw $zero, ($t4) +/* 03BD8C 7F00725C 8CCD0000 */ lw $t5, ($a2) +/* 03BD90 7F007260 24420068 */ addiu $v0, $v0, 0x68 +/* 03BD94 7F007264 006D082A */ slt $at, $v1, $t5 +/* 03BD98 7F007268 5420FFF9 */ bnezl $at, .L7F007250 +/* 03BD9C 7F00726C 8C8B0000 */ lw $t3, ($a0) +.L7F007270: +/* 03BDA0 7F007270 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BDA4 7F007274 3C018004 */ lui $at, %hi(D_80040940) +/* 03BDA8 7F007278 AC200940 */ sw $zero, %lo(D_80040940)($at) +/* 03BDAC 7F00727C 03E00008 */ jr $ra +/* 03BDB0 7F007280 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + diff --git a/src/game/initunk_007290.c b/src/game/initunk_007290.c new file mode 100644 index 0000000..243f587 --- /dev/null +++ b/src/game/initunk_007290.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/unk_092E50.h" + + + +void sub_GAME_7F007290(void) +{ + flt_CODE_bss_80079E80 = 0.0f; + flt_CODE_bss_80079E84 = 0.0f; + flt_CODE_bss_80079E88 = 0.0f; + return; +} + + + diff --git a/src/game/initunk_0072B0.c b/src/game/initunk_0072B0.c new file mode 100644 index 0000000..f6b0f7a --- /dev/null +++ b/src/game/initunk_0072B0.c @@ -0,0 +1,41 @@ +#include "ultra64.h" +#include "initunk_0072B0.h" +#include "game/unk_093880.h" + +#ifdef NONMATCHING +void sub_GAME_7F0072B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0072B0 +/* 03BDE0 7F0072B0 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 03BDE4 7F0072B4 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +/* 03BDE8 7F0072B8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30+1) +/* 03BDEC 7F0072BC A0209E31 */ sb $zero, %lo(off_CODE_bss_80079E30+1)($at) +/* 03BDF0 7F0072C0 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30+2) +/* 03BDF4 7F0072C4 3C038008 */ lui $v1, %hi(off_CODE_bss_80079E30+3) +/* 03BDF8 7F0072C8 3C028008 */ lui $v0, %hi(off_CODE_bss_80079E30+0x4b) +/* 03BDFC 7F0072CC 24429E7B */ addiu $v0, %lo(off_CODE_bss_80079E30+0x4b) # addiu $v0, $v0, -0x6185 +/* 03BE00 7F0072D0 24639E33 */ addiu $v1, %lo(off_CODE_bss_80079E30+3) # addiu $v1, $v1, -0x61cd +/* 03BE04 7F0072D4 A0209E32 */ sb $zero, %lo(off_CODE_bss_80079E30+2)($at) +.L7F0072D8: +/* 03BE08 7F0072D8 24630004 */ addiu $v1, $v1, 4 +/* 03BE0C 7F0072DC A060FFFD */ sb $zero, -3($v1) +/* 03BE10 7F0072E0 A060FFFE */ sb $zero, -2($v1) +/* 03BE14 7F0072E4 A060FFFF */ sb $zero, -1($v1) +/* 03BE18 7F0072E8 1462FFFB */ bne $v1, $v0, .L7F0072D8 +/* 03BE1C 7F0072EC A060FFFC */ sb $zero, -4($v1) +/* 03BE20 7F0072F0 03E00008 */ jr $ra +/* 03BE24 7F0072F4 00000000 */ nop +) +#endif + + +void disable_onscreen_cheat_text(void) +{ + pPlayer->something_with_cheat_text = 0; + pPlayer->can_display_cheat_text = 0; +} + diff --git a/src/game/initunk_0072B0.h b/src/game/initunk_0072B0.h new file mode 100644 index 0000000..129c984 --- /dev/null +++ b/src/game/initunk_0072B0.h @@ -0,0 +1,7 @@ +#ifndef _INITUNK_0072B0_ +#define _INITUNK_0072B0_ +#include "ultra64.h" + +void disable_onscreen_cheat_text(void); + +#endif diff --git a/src/game/initunk_0073B0.c b/src/game/initunk_0073B0.c new file mode 100644 index 0000000..b160506 --- /dev/null +++ b/src/game/initunk_0073B0.c @@ -0,0 +1,99 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupGuardData(void) { + void *temp_v0; + s32 temp_s2; + s32 phi_s0; + s32 phi_s2; + s32 phi_v1; + + // Node 0 + if (num_guards > 0) + { + // Node 1 + phi_s0 = 0; + phi_s2 = 0; + phi_v1 = num_guards; +loop_2: + // Node 2 + temp_v0 = (ptr_guard_data + phi_s0); + if (temp_v0->unk1C != 0) + { + // Node 3 + disable_sounds_attached_to_player_then_something(temp_v0->unk18); + sub_GAME_7F03A538((ptr_guard_data + phi_s0)->unk18); + unset_stateflag_0x04_for_posdata((ptr_guard_data + phi_s0)->unk18); + set_last_obj_pos_data((ptr_guard_data + phi_s0)->unk18); + phi_v1 = num_guards; + } + // Node 4 + temp_s2 = (phi_s2 + 1); + phi_s0 = (phi_s0 + 0x1dc); + phi_s2 = temp_s2; + phi_v1 = phi_v1; + if (temp_s2 < phi_v1) + { + goto loop_2; + } + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupGuardData +/* 03BEE0 7F0073B0 3C038003 */ lui $v1, %hi(num_guards) +/* 03BEE4 7F0073B4 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 03BEE8 7F0073B8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03BEEC 7F0073BC AFB20020 */ sw $s2, 0x20($sp) +/* 03BEF0 7F0073C0 AFBF0024 */ sw $ra, 0x24($sp) +/* 03BEF4 7F0073C4 AFB1001C */ sw $s1, 0x1c($sp) +/* 03BEF8 7F0073C8 AFB00018 */ sw $s0, 0x18($sp) +/* 03BEFC 7F0073CC 1860001D */ blez $v1, .L7F007444 +/* 03BF00 7F0073D0 00009025 */ move $s2, $zero +/* 03BF04 7F0073D4 3C118003 */ lui $s1, %hi(ptr_guard_data) +/* 03BF08 7F0073D8 2631CC64 */ addiu $s1, %lo(ptr_guard_data) # addiu $s1, $s1, -0x339c +/* 03BF0C 7F0073DC 00008025 */ move $s0, $zero +.L7F0073E0: +/* 03BF10 7F0073E0 8E2E0000 */ lw $t6, ($s1) +/* 03BF14 7F0073E4 01D01021 */ addu $v0, $t6, $s0 +/* 03BF18 7F0073E8 8C4F001C */ lw $t7, 0x1c($v0) +/* 03BF1C 7F0073EC 51E00012 */ beql $t7, $zero, .L7F007438 +/* 03BF20 7F0073F0 26520001 */ addiu $s2, $s2, 1 +/* 03BF24 7F0073F4 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 03BF28 7F0073F8 8C440018 */ lw $a0, 0x18($v0) +/* 03BF2C 7F0073FC 8E380000 */ lw $t8, ($s1) +/* 03BF30 7F007400 0310C821 */ addu $t9, $t8, $s0 +/* 03BF34 7F007404 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03BF38 7F007408 8F240018 */ lw $a0, 0x18($t9) +/* 03BF3C 7F00740C 8E280000 */ lw $t0, ($s1) +/* 03BF40 7F007410 01104821 */ addu $t1, $t0, $s0 +/* 03BF44 7F007414 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03BF48 7F007418 8D240018 */ lw $a0, 0x18($t1) +/* 03BF4C 7F00741C 8E2A0000 */ lw $t2, ($s1) +/* 03BF50 7F007420 01505821 */ addu $t3, $t2, $s0 +/* 03BF54 7F007424 0FC0E921 */ jal set_last_obj_pos_data +/* 03BF58 7F007428 8D640018 */ lw $a0, 0x18($t3) +/* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(num_guards) +/* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 03BF64 7F007434 26520001 */ addiu $s2, $s2, 1 +.L7F007438: +/* 03BF68 7F007438 0243082A */ slt $at, $s2, $v1 +/* 03BF6C 7F00743C 1420FFE8 */ bnez $at, .L7F0073E0 +/* 03BF70 7F007440 261001DC */ addiu $s0, $s0, 0x1dc +.L7F007444: +/* 03BF74 7F007444 8FBF0024 */ lw $ra, 0x24($sp) +/* 03BF78 7F007448 8FB00018 */ lw $s0, 0x18($sp) +/* 03BF7C 7F00744C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03BF80 7F007450 8FB20020 */ lw $s2, 0x20($sp) +/* 03BF84 7F007454 03E00008 */ jr $ra +/* 03BF88 7F007458 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + diff --git a/src/game/initunk_007460.c b/src/game/initunk_007460.c new file mode 100644 index 0000000..5343d0b --- /dev/null +++ b/src/game/initunk_007460.c @@ -0,0 +1,70 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupObjectSounds(void) { + s32 temp_a0; + void *temp_s0; + void *phi_s0; + + // Node 0 + phi_s0 = &sfx_related; +loop_1: + // Node 1 + temp_a0 = *phi_s0; + if (temp_a0 != 0) + { + // Node 2 + if (sfxGetArg0Unk3F(temp_a0) != 0) + { + // Node 3 + sfxDeactivate(*phi_s0); + } + } + // Node 4 + temp_s0 = (phi_s0 + 0x18); + phi_s0 = temp_s0; + if (temp_s0 != &ptr_list_object_lookup_indices) + { + goto loop_1; + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupObjectSounds +/* 03BF90 7F007460 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03BF94 7F007464 AFB10018 */ sw $s1, 0x18($sp) +/* 03BF98 7F007468 AFB00014 */ sw $s0, 0x14($sp) +/* 03BF9C 7F00746C 3C108007 */ lui $s0, %hi(sfx_related) +/* 03BFA0 7F007470 3C118007 */ lui $s1, %hi(ptr_list_object_lookup_indices) +/* 03BFA4 7F007474 AFBF001C */ sw $ra, 0x1c($sp) +/* 03BFA8 7F007478 26319C30 */ addiu $s1, %lo(ptr_list_object_lookup_indices) # addiu $s1, $s1, -0x63d0 +/* 03BFAC 7F00747C 26109B70 */ addiu $s0, %lo(sfx_related) # addiu $s0, $s0, -0x6490 +/* 03BFB0 7F007480 8E040000 */ lw $a0, ($s0) +.L7F007484: +/* 03BFB4 7F007484 50800008 */ beql $a0, $zero, .L7F0074A8 +/* 03BFB8 7F007488 26100018 */ addiu $s0, $s0, 0x18 +/* 03BFBC 7F00748C 0C00237C */ jal sfxGetArg0Unk3F +/* 03BFC0 7F007490 00000000 */ nop +/* 03BFC4 7F007494 50400004 */ beql $v0, $zero, .L7F0074A8 +/* 03BFC8 7F007498 26100018 */ addiu $s0, $s0, 0x18 +/* 03BFCC 7F00749C 0C002408 */ jal sfxDeactivate +/* 03BFD0 7F0074A0 8E040000 */ lw $a0, ($s0) +/* 03BFD4 7F0074A4 26100018 */ addiu $s0, $s0, 0x18 +.L7F0074A8: +/* 03BFD8 7F0074A8 5611FFF6 */ bnel $s0, $s1, .L7F007484 +/* 03BFDC 7F0074AC 8E040000 */ lw $a0, ($s0) +/* 03BFE0 7F0074B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 03BFE4 7F0074B4 8FB00014 */ lw $s0, 0x14($sp) +/* 03BFE8 7F0074B8 8FB10018 */ lw $s1, 0x18($sp) +/* 03BFEC 7F0074BC 03E00008 */ jr $ra +/* 03BFF0 7F0074C0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + diff --git a/src/game/initweaponanigroups.c b/src/game/initweaponanigroups.c new file mode 100644 index 0000000..868cbd0 --- /dev/null +++ b/src/game/initweaponanigroups.c @@ -0,0 +1,10 @@ +#include "ultra64.h" + +//uncomment when actor is worked on +//#include "chr.h" +extern s32 get_ptr_allocated_block_for_vertices; + +void init_weapon_animation_groups_maybe(void) { + set_8003608C(&get_ptr_allocated_block_for_vertices); + somethingwith_weapon_animation_groups(); +} diff --git a/src/game/intro_logos.c b/src/game/intro_logos.c new file mode 100644 index 0000000..46edb8c --- /dev/null +++ b/src/game/intro_logos.c @@ -0,0 +1,2219 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/intro_logos.h" + +// bss +//CODE.bss:80069550 +s32 dword_CODE_bss_80069550; +//CODE.bss:80069554 +s32 dword_CODE_bss_80069554; +//CODE.bss:80069558 +s32 matrix_buffer_rarelogo_0; +//CODE.bss:8006955C +s32 matrix_buffer_gunbarrel_0; +//CODE.bss:80069560 +s32 matrix_buffer_rarelogo_1; +//CODE.bss:80069564 +s32 matrix_buffer_rarelogo_2; +//CODE.bss:80069568 +s32 matrix_buffer_gunbarrel_1; +//CODE.bss:8006956C +s32 matrix_buffer_intro_backdrop; +//CODE.bss:80069570 +s32 matrix_buffer_intro_bond; +//CODE.bss:80069574 +s32 x; +//CODE.bss:80069578 +s32 y; +//CODE.bss:8006957C +s32 dword_CODE_bss_8006957C; +//CODE.bss:80069580 +s32 dword_CODE_bss_80069580; +//CODE.bss:80069584 +s32 word_CODE_bss_80069584; +//CODE.bss:80069588 +s32 dword_CODE_bss_80069588; +//CODE.bss:8006958C +s32 dword_CODE_bss_8006958C; +//CODE.bss:80069590 +s32 virtualaddress; +//CODE.bss:80069594 +s32 dword_CODE_bss_80069594; + + +// data +u32 D_8002A7D0 = 0; +u8 D_8002A7D4 = 0x3; +u32 D_8002A7D8 = 0; +u32 D_8002A7DC = 0; +u32 D_8002A7E0 = 0; +u32 D_8002A7E4 = 0; + +u32 D_8002A7E8 = 0xFF; +u32 D_8002A7EC = 0xFF; +u32 D_8002A7F0 = 0xFF; +u32 D_8002A7F4 = 0; +u32 D_8002A7F8 = 0; +u32 D_8002A7FC = 0; + +u32 D_8002A800 = 1; +u32 D_8002A804 = 3; +u32 D_8002A808 = 0; +u32 D_8002A80C = 0; +u32 D_8002A810 = 0; +u32 D_8002A814 = 0; +u32 D_8002A818 = 0; +u32 D_8002A81C = 0; +u32 D_8002A820 = 0; +u32 D_8002A824 = 0; +u32 D_8002A828 = 0; +u32 D_8002A82C = 0; +u32 D_8002A830 = 0; +u32 D_8002A834 = 0; +u32 D_8002A838 = 0; +f32 D_8002A83C = 1758.2957f; +f32 D_8002A840 = 220.0f; +f32 D_8002A844 = 684.28143f; +f32 D_8002A848 = -0.97f; +u32 D_8002A84C = 0; +f32 D_8002A850 = 0.24f; +u32 D_8002A854 = 0; +f32 D_8002A858 = 1.0f; +u32 D_8002A85C = 0x80000000; +struct rgba_val D_8002A860 = {0xDC, 0xDC, 0xDC, 0}; +struct rgba_val D_8002A864 = {0xDC, 0xDC, 0xDC, 0}; +struct rgba_val D_8002A868 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A86C = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A870 = {0x00, 0x7F, 0x00, 0}; +u32 D_8002A874 = 0; + +u32 D_8002A878 = 0; +u32 D_8002A87C = 0; +f32 D_8002A880 = 4883.0f; +u32 D_8002A884 = 0; +u32 D_8002A888 = 0; +f32 D_8002A88C = -1.0f; +u32 D_8002A890 = 0; +f32 D_8002A894 = 1.0f; +u32 D_8002A898 = 0; + + +f32 D_8002A89C = 0.0f; +u32 intro_eye_counter = 0; +u32 intro_state_blood_animation = 0; +u32 D_8002A8A8 = 0; +u32 D_8002A8AC = 0; +u32 D_8002A8B0 = 0; +/* + .word 0 + .word 0 + .word 0 +*/ + + + +#ifdef NONMATCHING +void something_with_gunbarrel_and_rareware_logo_matrix_manip(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_gunbarrel_and_rareware_logo_matrix_manip +/* 03C570 7F007A40 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03C574 7F007A44 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03C578 7F007A48 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03C57C 7F007A4C 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) +/* 03C580 7F007A50 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) +/* 03C584 7F007A54 AFB00018 */ sw $s0, 0x18($sp) +/* 03C588 7F007A58 00808025 */ move $s0, $a0 +/* 03C58C 7F007A5C AFBF001C */ sw $ra, 0x1c($sp) +/* 03C590 7F007A60 3C058007 */ lui $a1, %hi(x) +/* 03C594 7F007A64 3C068007 */ lui $a2, %hi(y) +/* 03C598 7F007A68 000E7980 */ sll $t7, $t6, 6 +/* 03C59C 7F007A6C 8CC69578 */ lw $a2, %lo(y)($a2) +/* 03C5A0 7F007A70 8CA59574 */ lw $a1, %lo(x)($a1) +/* 03C5A4 7F007A74 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C5A8 7F007A78 0C005B46 */ jal guTranslate +/* 03C5AC 7F007A7C 01F82021 */ addu $a0, $t7, $t8 +/* 03C5B0 7F007A80 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03C5B4 7F007A84 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03C5B8 7F007A88 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) +/* 03C5BC 7F007A8C 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) +/* 03C5C0 7F007A90 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006957C) +/* 03C5C4 7F007A94 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069580) +/* 03C5C8 7F007A98 00194180 */ sll $t0, $t9, 6 +/* 03C5CC 7F007A9C 8CC69580 */ lw $a2, %lo(dword_CODE_bss_80069580)($a2) +/* 03C5D0 7F007AA0 8CA5957C */ lw $a1, %lo(dword_CODE_bss_8006957C)($a1) +/* 03C5D4 7F007AA4 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C5D8 7F007AA8 0C005B46 */ jal guTranslate +/* 03C5DC 7F007AAC 01092021 */ addu $a0, $t0, $t1 +/* 03C5E0 7F007AB0 3C0B0100 */ lui $t3, 0x100 +/* 03C5E4 7F007AB4 256B0000 */ addiu $t3, $t3, 0 +/* 03C5E8 7F007AB8 02001025 */ move $v0, $s0 +/* 03C5EC 7F007ABC 3C0A0600 */ lui $t2, 0x600 +/* 03C5F0 7F007AC0 AC4A0000 */ sw $t2, ($v0) +/* 03C5F4 7F007AC4 AC4B0004 */ sw $t3, 4($v0) +/* 03C5F8 7F007AC8 0FC07034 */ jal insert_imageDL +/* 03C5FC 7F007ACC 26040008 */ addiu $a0, $s0, 8 +/* 03C600 7F007AD0 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C604 7F007AD4 00402025 */ move $a0, $v0 +/* 03C608 7F007AD8 3C0CFCFF */ lui $t4, (0xFCFFFFFF >> 16) # lui $t4, 0xfcff +/* 03C60C 7F007ADC 3C0DFFFD */ lui $t5, (0xFFFDF6FB >> 16) # lui $t5, 0xfffd +/* 03C610 7F007AE0 3C0FE6E6 */ lui $t7, (0xE6E6E600 >> 16) # lui $t7, 0xe6e6 +/* 03C614 7F007AE4 35ADF6FB */ ori $t5, (0xFFFDF6FB & 0xFFFF) # ori $t5, $t5, 0xf6fb +/* 03C618 7F007AE8 358CFFFF */ ori $t4, (0xFCFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 03C61C 7F007AEC 35EFE600 */ ori $t7, (0xE6E6E600 & 0xFFFF) # ori $t7, $t7, 0xe600 +/* 03C620 7F007AF0 3C0EFA00 */ lui $t6, 0xfa00 +/* 03C624 7F007AF4 3C180600 */ lui $t8, 0x600 +/* 03C628 7F007AF8 AC4C0000 */ sw $t4, ($v0) +/* 03C62C 7F007AFC AC4D0004 */ sw $t5, 4($v0) +/* 03C630 7F007B00 AC4E0008 */ sw $t6, 8($v0) +/* 03C634 7F007B04 AC4F000C */ sw $t7, 0xc($v0) +/* 03C638 7F007B08 AC580010 */ sw $t8, 0x10($v0) +/* 03C63C 7F007B0C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80069554) +/* 03C640 7F007B10 8F399554 */ lw $t9, %lo(dword_CODE_bss_80069554)($t9) +/* 03C644 7F007B14 3C018000 */ lui $at, 0x8000 +/* 03C648 7F007B18 24490018 */ addiu $t1, $v0, 0x18 +/* 03C64C 7F007B1C 03214021 */ addu $t0, $t9, $at +/* 03C650 7F007B20 AC480014 */ sw $t0, 0x14($v0) +/* 03C654 7F007B24 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 +/* 03C658 7F007B28 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 03C65C 7F007B2C AFA90024 */ sw $t1, 0x24($sp) +/* 03C660 7F007B30 AC4A0018 */ sw $t2, 0x18($v0) +/* 03C664 7F007B34 3C0B8003 */ lui $t3, %hi(D_8002A7D0) +/* 03C668 7F007B38 8D6BA7D0 */ lw $t3, %lo(D_8002A7D0)($t3) +/* 03C66C 7F007B3C 3C0D8007 */ lui $t5, %hi(matrix_buffer_gunbarrel_1) +/* 03C670 7F007B40 8DAD9568 */ lw $t5, %lo(matrix_buffer_gunbarrel_1)($t5) +/* 03C674 7F007B44 000B6180 */ sll $t4, $t3, 6 +/* 03C678 7F007B48 24500020 */ addiu $s0, $v0, 0x20 +/* 03C67C 7F007B4C 0C003A2C */ jal osVirtualToPhysical +/* 03C680 7F007B50 018D2021 */ addu $a0, $t4, $t5 +/* 03C684 7F007B54 8FAE0024 */ lw $t6, 0x24($sp) +/* 03C688 7F007B58 02001825 */ move $v1, $s0 +/* 03C68C 7F007B5C 3C0F0600 */ lui $t7, 0x600 +/* 03C690 7F007B60 ADC20004 */ sw $v0, 4($t6) +/* 03C694 7F007B64 AC6F0000 */ sw $t7, ($v1) +/* 03C698 7F007B68 3C188007 */ lui $t8, %hi(dword_CODE_bss_80069554) +/* 03C69C 7F007B6C 8F189554 */ lw $t8, %lo(dword_CODE_bss_80069554)($t8) +/* 03C6A0 7F007B70 3C018000 */ lui $at, 0x8000 +/* 03C6A4 7F007B74 26020008 */ addiu $v0, $s0, 8 +/* 03C6A8 7F007B78 0301C821 */ addu $t9, $t8, $at +/* 03C6AC 7F007B7C AC790004 */ sw $t9, 4($v1) +/* 03C6B0 7F007B80 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C6B4 7F007B84 8FB00018 */ lw $s0, 0x18($sp) +/* 03C6B8 7F007B88 27BD0038 */ addiu $sp, $sp, 0x38 +/* 03C6BC 7F007B8C 03E00008 */ jr $ra +/* 03C6C0 7F007B90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void insert_sight_backdrop_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_sight_backdrop_eye_intro +/* 03C6C4 7F007B94 3C018007 */ lui $at, %hi(x) +/* 03C6C8 7F007B98 C4249574 */ lwc1 $f4, %lo(x)($at) +/* 03C6CC 7F007B9C 3C014440 */ li $at, 0x44400000 # 768.000000 +/* 03C6D0 7F007BA0 44813000 */ mtc1 $at, $f6 +/* 03C6D4 7F007BA4 3C018007 */ lui $at, %hi(y) +/* 03C6D8 7F007BA8 C42A9578 */ lwc1 $f10, %lo(y)($at) +/* 03C6DC 7F007BAC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 03C6E0 7F007BB0 44818000 */ mtc1 $at, $f16 +/* 03C6E4 7F007BB4 46062200 */ add.s $f8, $f4, $f6 +/* 03C6E8 7F007BB8 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03C6EC 7F007BBC 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03C6F0 7F007BC0 46105481 */ sub.s $f18, $f10, $f16 +/* 03C6F4 7F007BC4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C6F8 7F007BC8 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) +/* 03C6FC 7F007BCC 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) +/* 03C700 7F007BD0 AFB00018 */ sw $s0, 0x18($sp) +/* 03C704 7F007BD4 00808025 */ move $s0, $a0 +/* 03C708 7F007BD8 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C70C 7F007BDC 44069000 */ mfc1 $a2, $f18 +/* 03C710 7F007BE0 44054000 */ mfc1 $a1, $f8 +/* 03C714 7F007BE4 000E7980 */ sll $t7, $t6, 6 +/* 03C718 7F007BE8 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C71C 7F007BEC 0C005B46 */ jal guTranslate +/* 03C720 7F007BF0 01F82021 */ addu $a0, $t7, $t8 +/* 03C724 7F007BF4 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03C728 7F007BF8 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03C72C 7F007BFC 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) +/* 03C730 7F007C00 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) +/* 03C734 7F007C04 3C05402C */ lui $a1, (0x402CCCCD >> 16) # lui $a1, 0x402c +/* 03C738 7F007C08 3C064024 */ lui $a2, (0x40247AE1 >> 16) # lui $a2, 0x4024 +/* 03C73C 7F007C0C 00194180 */ sll $t0, $t9, 6 +/* 03C740 7F007C10 34C67AE1 */ ori $a2, (0x40247AE1 & 0xFFFF) # ori $a2, $a2, 0x7ae1 +/* 03C744 7F007C14 34A5CCCD */ ori $a1, (0x402CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 03C748 7F007C18 3C073F80 */ lui $a3, 0x3f80 +/* 03C74C 7F007C1C 0C005BB9 */ jal guScale +/* 03C750 7F007C20 01092021 */ addu $a0, $t0, $t1 +/* 03C754 7F007C24 02001025 */ move $v0, $s0 +/* 03C758 7F007C28 3C0A0100 */ lui $t2, 0x100 +/* 03C75C 7F007C2C 3C050600 */ lui $a1, 0x600 +/* 03C760 7F007C30 254A0000 */ addiu $t2, $t2, 0 +/* 03C764 7F007C34 26030008 */ addiu $v1, $s0, 8 +/* 03C768 7F007C38 3C0B0100 */ lui $t3, 0x100 +/* 03C76C 7F007C3C AC4A0004 */ sw $t2, 4($v0) +/* 03C770 7F007C40 AC450000 */ sw $a1, ($v0) +/* 03C774 7F007C44 256B0040 */ addiu $t3, $t3, 0x40 +/* 03C778 7F007C48 AC6B0004 */ sw $t3, 4($v1) +/* 03C77C 7F007C4C AC650000 */ sw $a1, ($v1) +/* 03C780 7F007C50 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C784 7F007C54 24640008 */ addiu $a0, $v1, 8 +/* 03C788 7F007C58 3C0C0100 */ lui $t4, (0x01000040 >> 16) # lui $t4, 0x100 +/* 03C78C 7F007C5C 358C0040 */ ori $t4, (0x01000040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 03C790 7F007C60 AFA20024 */ sw $v0, 0x24($sp) +/* 03C794 7F007C64 AC4C0000 */ sw $t4, ($v0) +/* 03C798 7F007C68 3C0D8003 */ lui $t5, %hi(D_8002A7D0) +/* 03C79C 7F007C6C 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) +/* 03C7A0 7F007C70 3C0F8007 */ lui $t7, %hi(matrix_buffer_gunbarrel_1) +/* 03C7A4 7F007C74 8DEF9568 */ lw $t7, %lo(matrix_buffer_gunbarrel_1)($t7) +/* 03C7A8 7F007C78 000D7180 */ sll $t6, $t5, 6 +/* 03C7AC 7F007C7C 24500008 */ addiu $s0, $v0, 8 +/* 03C7B0 7F007C80 0C003A2C */ jal osVirtualToPhysical +/* 03C7B4 7F007C84 01CF2021 */ addu $a0, $t6, $t7 +/* 03C7B8 7F007C88 8FB80024 */ lw $t8, 0x24($sp) +/* 03C7BC 7F007C8C 02001825 */ move $v1, $s0 +/* 03C7C0 7F007C90 3C190600 */ lui $t9, 0x600 +/* 03C7C4 7F007C94 AF020004 */ sw $v0, 4($t8) +/* 03C7C8 7F007C98 AC790000 */ sw $t9, ($v1) +/* 03C7CC 7F007C9C 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069554) +/* 03C7D0 7F007CA0 8D089554 */ lw $t0, %lo(dword_CODE_bss_80069554)($t0) +/* 03C7D4 7F007CA4 3C018000 */ lui $at, 0x8000 +/* 03C7D8 7F007CA8 26020008 */ addiu $v0, $s0, 8 +/* 03C7DC 7F007CAC 01014821 */ addu $t1, $t0, $at +/* 03C7E0 7F007CB0 AC690004 */ sw $t1, 4($v1) +/* 03C7E4 7F007CB4 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C7E8 7F007CB8 8FB00018 */ lw $s0, 0x18($sp) +/* 03C7EC 7F007CBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03C7F0 7F007CC0 03E00008 */ jr $ra +/* 03C7F4 7F007CC4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007CC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007CC8 +/* 03C7F8 7F007CC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03C7FC 7F007CCC 00801025 */ move $v0, $a0 +/* 03C800 7F007CD0 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C804 7F007CD4 AFA50024 */ sw $a1, 0x24($sp) +/* 03C808 7F007CD8 AFA60028 */ sw $a2, 0x28($sp) +/* 03C80C 7F007CDC AFA7002C */ sw $a3, 0x2c($sp) +/* 03C810 7F007CE0 24840008 */ addiu $a0, $a0, 8 +/* 03C814 7F007CE4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 03C818 7F007CE8 3C0F0F0A */ lui $t7, (0x0F0A4000 >> 16) # lui $t7, 0xf0a +/* 03C81C 7F007CEC 35EF4000 */ ori $t7, (0x0F0A4000 & 0xFFFF) # ori $t7, $t7, 0x4000 +/* 03C820 7F007CF0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 03C824 7F007CF4 00801825 */ move $v1, $a0 +/* 03C828 7F007CF8 AC4E0000 */ sw $t6, ($v0) +/* 03C82C 7F007CFC AC4F0004 */ sw $t7, 4($v0) +/* 03C830 7F007D00 24840008 */ addiu $a0, $a0, 8 +/* 03C834 7F007D04 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 03C838 7F007D08 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 03C83C 7F007D0C 00804025 */ move $t0, $a0 +/* 03C840 7F007D10 AC780000 */ sw $t8, ($v1) +/* 03C844 7F007D14 AC600004 */ sw $zero, 4($v1) +/* 03C848 7F007D18 24840008 */ addiu $a0, $a0, 8 +/* 03C84C 7F007D1C 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 +/* 03C850 7F007D20 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 +/* 03C854 7F007D24 00804825 */ move $t1, $a0 +/* 03C858 7F007D28 AD190000 */ sw $t9, ($t0) +/* 03C85C 7F007D2C AD000004 */ sw $zero, 4($t0) +/* 03C860 7F007D30 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 03C864 7F007D34 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 03C868 7F007D38 24840008 */ addiu $a0, $a0, 8 +/* 03C86C 7F007D3C AD2B0000 */ sw $t3, ($t1) +/* 03C870 7F007D40 AD200004 */ sw $zero, 4($t1) +/* 03C874 7F007D44 00805025 */ move $t2, $a0 +/* 03C878 7F007D48 3C0CE700 */ lui $t4, 0xe700 +/* 03C87C 7F007D4C AD4C0000 */ sw $t4, ($t2) +/* 03C880 7F007D50 AD400004 */ sw $zero, 4($t2) +/* 03C884 7F007D54 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006958C) +/* 03C888 7F007D58 8CA5958C */ lw $a1, %lo(dword_CODE_bss_8006958C)($a1) +/* 03C88C 7F007D5C 8FAD002C */ lw $t5, 0x2c($sp) +/* 03C890 7F007D60 3C018000 */ lui $at, 0x8000 +/* 03C894 7F007D64 24840008 */ addiu $a0, $a0, 8 +/* 03C898 7F007D68 8FA70028 */ lw $a3, 0x28($sp) +/* 03C89C 7F007D6C 8FA60024 */ lw $a2, 0x24($sp) +/* 03C8A0 7F007D70 00A12821 */ addu $a1, $a1, $at +/* 03C8A4 7F007D74 0FC06C90 */ jal sub_GAME_7F01B240 +/* 03C8A8 7F007D78 AFAD0010 */ sw $t5, 0x10($sp) +/* 03C8AC 7F007D7C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C8B0 7F007D80 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03C8B4 7F007D84 03E00008 */ jr $ra +/* 03C8B8 7F007D88 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void insert_sniper_sight_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_sniper_sight_eye_intro +/* 03C8BC 7F007D8C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 03C8C0 7F007D90 3C0F8003 */ lui $t7, %hi(D_8002A7DC) +/* 03C8C4 7F007D94 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C8C8 7F007D98 AFB00018 */ sw $s0, 0x18($sp) +/* 03C8CC 7F007D9C 25EFA7DC */ addiu $t7, %lo(D_8002A7DC) # addiu $t7, $t7, -0x5824 +/* 03C8D0 7F007DA0 8DE10000 */ lw $at, ($t7) +/* 03C8D4 7F007DA4 27AE003C */ addiu $t6, $sp, 0x3c +/* 03C8D8 7F007DA8 8DE80004 */ lw $t0, 4($t7) +/* 03C8DC 7F007DAC ADC10000 */ sw $at, ($t6) +/* 03C8E0 7F007DB0 8DE10008 */ lw $at, 8($t7) +/* 03C8E4 7F007DB4 3C0A8003 */ lui $t2, %hi(D_8002A7E8) +/* 03C8E8 7F007DB8 254AA7E8 */ addiu $t2, %lo(D_8002A7E8) # addiu $t2, $t2, -0x5818 +/* 03C8EC 7F007DBC ADC80004 */ sw $t0, 4($t6) +/* 03C8F0 7F007DC0 ADC10008 */ sw $at, 8($t6) +/* 03C8F4 7F007DC4 8D410000 */ lw $at, ($t2) +/* 03C8F8 7F007DC8 27A90030 */ addiu $t1, $sp, 0x30 +/* 03C8FC 7F007DCC 8D4D0004 */ lw $t5, 4($t2) +/* 03C900 7F007DD0 AD210000 */ sw $at, ($t1) +/* 03C904 7F007DD4 8D410008 */ lw $at, 8($t2) +/* 03C908 7F007DD8 3C180100 */ lui $t8, 0x100 +/* 03C90C 7F007DDC AD2D0004 */ sw $t5, 4($t1) +/* 03C910 7F007DE0 AD210008 */ sw $at, 8($t1) +/* 03C914 7F007DE4 27180000 */ addiu $t8, $t8, 0 +/* 03C918 7F007DE8 3C190600 */ lui $t9, 0x600 +/* 03C91C 7F007DEC AC990000 */ sw $t9, ($a0) +/* 03C920 7F007DF0 AC980004 */ sw $t8, 4($a0) +/* 03C924 7F007DF4 24900008 */ addiu $s0, $a0, 8 +/* 03C928 7F007DF8 0FC07034 */ jal insert_imageDL +/* 03C92C 7F007DFC 02002025 */ move $a0, $s0 +/* 03C930 7F007E00 3C0EFC11 */ lui $t6, (0xFC11FE23 >> 16) # lui $t6, 0xfc11 +/* 03C934 7F007E04 35CEFE23 */ ori $t6, (0xFC11FE23 & 0xFFFF) # ori $t6, $t6, 0xfe23 +/* 03C938 7F007E08 240FF7FB */ li $t7, -2053 +/* 03C93C 7F007E0C AC4F0004 */ sw $t7, 4($v0) +/* 03C940 7F007E10 AC4E0000 */ sw $t6, ($v0) +/* 03C944 7F007E14 0C001107 */ jal get_video2_settings_txtClipW +/* 03C948 7F007E18 24500008 */ addiu $s0, $v0, 8 +/* 03C94C 7F007E1C 44822000 */ mtc1 $v0, $f4 +/* 03C950 7F007E20 3C018007 */ lui $at, %hi(x) +/* 03C954 7F007E24 C4289574 */ lwc1 $f8, %lo(x)($at) +/* 03C958 7F007E28 468021A0 */ cvt.s.w $f6, $f4 +/* 03C95C 7F007E2C 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 +/* 03C960 7F007E30 44818000 */ mtc1 $at, $f16 +/* 03C964 7F007E34 46083282 */ mul.s $f10, $f6, $f8 +/* 03C968 7F007E38 0FC170D8 */ jal truncf +/* 03C96C 7F007E3C 46105303 */ div.s $f12, $f10, $f16 +/* 03C970 7F007E40 4600048D */ trunc.w.s $f18, $f0 +/* 03C974 7F007E44 02002025 */ move $a0, $s0 +/* 03C978 7F007E48 27A6003C */ addiu $a2, $sp, 0x3c +/* 03C97C 7F007E4C 27A70030 */ addiu $a3, $sp, 0x30 +/* 03C980 7F007E50 44059000 */ mfc1 $a1, $f18 +/* 03C984 7F007E54 0FC01F32 */ jal sub_GAME_7F007CC8 +/* 03C988 7F007E58 00000000 */ nop +/* 03C98C 7F007E5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C990 7F007E60 8FB00018 */ lw $s0, 0x18($sp) +/* 03C994 7F007E64 27BD0048 */ addiu $sp, $sp, 0x48 +/* 03C998 7F007E68 03E00008 */ jr $ra +/* 03C99C 7F007E6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007E70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007E70 +/* 03C9A0 7F007E70 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C9A4 7F007E74 AFBF0014 */ sw $ra, 0x14($sp) +/* 03C9A8 7F007E78 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C9AC 7F007E7C AFA50034 */ sw $a1, 0x34($sp) +/* 03C9B0 7F007E80 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 03C9B4 7F007E84 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 +/* 03C9B8 7F007E88 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 03C9BC 7F007E8C 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 03C9C0 7F007E90 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 +/* 03C9C4 7F007E94 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 03C9C8 7F007E98 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 03C9CC 7F007E9C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 03C9D0 7F007EA0 3C08FA00 */ lui $t0, 0xfa00 +/* 03C9D4 7F007EA4 AC4E0000 */ sw $t6, ($v0) +/* 03C9D8 7F007EA8 AC4F0004 */ sw $t7, 4($v0) +/* 03C9DC 7F007EAC AC580008 */ sw $t8, 8($v0) +/* 03C9E0 7F007EB0 AC59000C */ sw $t9, 0xc($v0) +/* 03C9E4 7F007EB4 AC480010 */ sw $t0, 0x10($v0) +/* 03C9E8 7F007EB8 8FA90034 */ lw $t1, 0x34($sp) +/* 03C9EC 7F007EBC 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 03C9F0 7F007EC0 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 03C9F4 7F007EC4 312A00FF */ andi $t2, $t1, 0xff +/* 03C9F8 7F007EC8 AC4A0014 */ sw $t2, 0x14($v0) +/* 03C9FC 7F007ECC AC4B0018 */ sw $t3, 0x18($v0) +/* 03CA00 7F007ED0 AC40001C */ sw $zero, 0x1c($v0) +/* 03CA04 7F007ED4 244C0020 */ addiu $t4, $v0, 0x20 +/* 03CA08 7F007ED8 244D0028 */ addiu $t5, $v0, 0x28 +/* 03CA0C 7F007EDC AFAD0030 */ sw $t5, 0x30($sp) +/* 03CA10 7F007EE0 0C001107 */ jal get_video2_settings_txtClipW +/* 03CA14 7F007EE4 AFAC001C */ sw $t4, 0x1c($sp) +/* 03CA18 7F007EE8 0C00110B */ jal get_video2_settings_txtClipH +/* 03CA1C 7F007EEC A7A2001A */ sh $v0, 0x1a($sp) +/* 03CA20 7F007EF0 87B9001A */ lh $t9, 0x1a($sp) +/* 03CA24 7F007EF4 8FA3001C */ lw $v1, 0x1c($sp) +/* 03CA28 7F007EF8 304E03FF */ andi $t6, $v0, 0x3ff +/* 03CA2C 7F007EFC 000E7880 */ sll $t7, $t6, 2 +/* 03CA30 7F007F00 3C01F600 */ lui $at, 0xf600 +/* 03CA34 7F007F04 332803FF */ andi $t0, $t9, 0x3ff +/* 03CA38 7F007F08 00084B80 */ sll $t1, $t0, 0xe +/* 03CA3C 7F007F0C 01E1C025 */ or $t8, $t7, $at +/* 03CA40 7F007F10 03095025 */ or $t2, $t8, $t1 +/* 03CA44 7F007F14 AC6A0000 */ sw $t2, ($v1) +/* 03CA48 7F007F18 AC600004 */ sw $zero, 4($v1) +/* 03CA4C 7F007F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 03CA50 7F007F20 8FA20030 */ lw $v0, 0x30($sp) +/* 03CA54 7F007F24 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03CA58 7F007F28 03E00008 */ jr $ra +/* 03CA5C 7F007F2C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007F30(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004F2D0 +.word 0x3f68f5c3 +glabel D_8004F2D4 +.word 0x461c4000 +glabel D_8004F2D8 +.word 0x459c4000 +glabel D_8004F2DC +.word 0x3f68f5c3 +.text +glabel sub_GAME_7F007F30 +/* 03CA60 7F007F30 27BDFEE0 */ addiu $sp, $sp, -0x120 +/* 03CA64 7F007F34 3C0F8003 */ lui $t7, %hi(D_8002A7FC) +/* 03CA68 7F007F38 25EFA7FC */ addiu $t7, %lo(D_8002A7FC) # addiu $t7, $t7, -0x5804 +/* 03CA6C 7F007F3C AFBF0034 */ sw $ra, 0x34($sp) +/* 03CA70 7F007F40 AFB50030 */ sw $s5, 0x30($sp) +/* 03CA74 7F007F44 AFB4002C */ sw $s4, 0x2c($sp) +/* 03CA78 7F007F48 AFB30028 */ sw $s3, 0x28($sp) +/* 03CA7C 7F007F4C AFB20024 */ sw $s2, 0x24($sp) +/* 03CA80 7F007F50 AFB10020 */ sw $s1, 0x20($sp) +/* 03CA84 7F007F54 AFB0001C */ sw $s0, 0x1c($sp) +/* 03CA88 7F007F58 AFA40120 */ sw $a0, 0x120($sp) +/* 03CA8C 7F007F5C AFA50124 */ sw $a1, 0x124($sp) +/* 03CA90 7F007F60 AFA60128 */ sw $a2, 0x128($sp) +/* 03CA94 7F007F64 25E8003C */ addiu $t0, $t7, 0x3c +/* 03CA98 7F007F68 27AE00DC */ addiu $t6, $sp, 0xdc +.L7F007F6C: +/* 03CA9C 7F007F6C 8DE10000 */ lw $at, ($t7) +/* 03CAA0 7F007F70 25EF000C */ addiu $t7, $t7, 0xc +/* 03CAA4 7F007F74 25CE000C */ addiu $t6, $t6, 0xc +/* 03CAA8 7F007F78 ADC1FFF4 */ sw $at, -0xc($t6) +/* 03CAAC 7F007F7C 8DE1FFF8 */ lw $at, -8($t7) +/* 03CAB0 7F007F80 ADC1FFF8 */ sw $at, -8($t6) +/* 03CAB4 7F007F84 8DE1FFFC */ lw $at, -4($t7) +/* 03CAB8 7F007F88 15E8FFF8 */ bne $t7, $t0, .L7F007F6C +/* 03CABC 7F007F8C ADC1FFFC */ sw $at, -4($t6) +/* 03CAC0 7F007F90 8DE10000 */ lw $at, ($t7) +/* 03CAC4 7F007F94 0000A825 */ move $s5, $zero +/* 03CAC8 7F007F98 00009025 */ move $s2, $zero +/* 03CACC 7F007F9C ADC10000 */ sw $at, ($t6) +/* 03CAD0 7F007FA0 8FA90124 */ lw $t1, 0x124($sp) +/* 03CAD4 7F007FA4 19200034 */ blez $t1, .L7F008078 +/* 03CAD8 7F007FA8 3C140000 */ lui $s4, 0 +/* 03CADC 7F007FAC 3C138003 */ lui $s3, %hi(D_8002A7F4) +/* 03CAE0 7F007FB0 3C108007 */ lui $s0, %hi(dword_CODE_bss_80069594) +/* 03CAE4 7F007FB4 26109594 */ addiu $s0, %lo(dword_CODE_bss_80069594) # addiu $s0, $s0, -0x6a6c +/* 03CAE8 7F007FB8 2673A7F4 */ addiu $s3, %lo(D_8002A7F4) # addiu $s3, $s3, -0x580c +/* 03CAEC 7F007FBC 26944298 */ addiu $s4, $s4, 0x4298 +/* 03CAF0 7F007FC0 24110089 */ li $s1, 137 +/* 03CAF4 7F007FC4 8E020000 */ lw $v0, ($s0) +.L7F007FC8: +/* 03CAF8 7F007FC8 04400019 */ bltz $v0, .L7F008030 +/* 03CAFC 7F007FCC 244A0001 */ addiu $t2, $v0, 1 +/* 03CB00 7F007FD0 AE0A0000 */ sw $t2, ($s0) +/* 03CB04 7F007FD4 162A000F */ bne $s1, $t2, .L7F008014 +/* 03CB08 7F007FD8 01401025 */ move $v0, $t2 +/* 03CB0C 7F007FDC 3C018005 */ lui $at, %hi(D_8004F2D0) +/* 03CB10 7F007FE0 C424F2D0 */ lwc1 $f4, %lo(D_8004F2D0)($at) +/* 03CB14 7F007FE4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 03CB18 7F007FE8 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 03CB1C 7F007FEC 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 03CB20 7F007FF0 44813000 */ mtc1 $at, $f6 +/* 03CB24 7F007FF4 8E640000 */ lw $a0, ($s3) +/* 03CB28 7F007FF8 00003025 */ move $a2, $zero +/* 03CB2C 7F007FFC 3C074000 */ lui $a3, 0x4000 +/* 03CB30 7F008000 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03CB34 7F008004 028B2821 */ addu $a1, $s4, $t3 +/* 03CB38 7F008008 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03CB3C 7F00800C E7A60014 */ swc1 $f6, 0x14($sp) +/* 03CB40 7F008010 8E020000 */ lw $v0, ($s0) +.L7F008014: +/* 03CB44 7F008014 240100D4 */ li $at, 212 +/* 03CB48 7F008018 14410005 */ bne $v0, $at, .L7F008030 +/* 03CB4C 7F00801C 3C053FCC */ lui $a1, (0x3FCCCCCD >> 16) # lui $a1, 0x3fcc +/* 03CB50 7F008020 8E640000 */ lw $a0, ($s3) +/* 03CB54 7F008024 34A5CCCD */ ori $a1, (0x3FCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 03CB58 7F008028 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 03CB5C 7F00802C 3C064100 */ lui $a2, 0x4100 +.L7F008030: +/* 03CB60 7F008030 8E640000 */ lw $a0, ($s3) +/* 03CB64 7F008034 24050001 */ li $a1, 1 +/* 03CB68 7F008038 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 03CB6C 7F00803C 24060001 */ li $a2, 1 +/* 03CB70 7F008040 8E0C0000 */ lw $t4, ($s0) +/* 03CB74 7F008044 240100E6 */ li $at, 230 +/* 03CB78 7F008048 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 03CB7C 7F00804C 15810005 */ bne $t4, $at, .L7F008064 +/* 03CB80 7F008050 2405006F */ li $a1, 111 +/* 03CB84 7F008054 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 03CB88 7F008058 00003025 */ move $a2, $zero +/* 03CB8C 7F00805C 0C002382 */ jal play_sfx_a1 +/* 03CB90 7F008060 24150001 */ li $s5, 1 +.L7F008064: +/* 03CB94 7F008064 8FAD0124 */ lw $t5, 0x124($sp) +/* 03CB98 7F008068 26520001 */ addiu $s2, $s2, 1 +/* 03CB9C 7F00806C 564DFFD6 */ bnel $s2, $t5, .L7F007FC8 +/* 03CBA0 7F008070 8E020000 */ lw $v0, ($s0) +/* 03CBA4 7F008074 00009025 */ move $s2, $zero +.L7F008078: +/* 03CBA8 7F008078 3C138003 */ lui $s3, %hi(D_8002A7F4) +/* 03CBAC 7F00807C 2673A7F4 */ addiu $s3, %lo(D_8002A7F4) # addiu $s3, $s3, -0x580c +/* 03CBB0 7F008080 0FC1B100 */ jal set_80036084 +/* 03CBB4 7F008084 24040001 */ li $a0, 1 +/* 03CBB8 7F008088 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 03CBBC 7F00808C 24040050 */ li $a0, 80 +/* 03CBC0 7F008090 0FC1B5AC */ jal subcalcpos +/* 03CBC4 7F008094 8E640000 */ lw $a0, ($s3) +/* 03CBC8 7F008098 3C148003 */ lui $s4, %hi(D_8002A7F8) +/* 03CBCC 7F00809C 2694A7F8 */ addiu $s4, %lo(D_8002A7F8) # addiu $s4, $s4, -0x5808 +/* 03CBD0 7F0080A0 8E860000 */ lw $a2, ($s4) +/* 03CBD4 7F0080A4 8CD90008 */ lw $t9, 8($a2) +/* 03CBD8 7F0080A8 8F230008 */ lw $v1, 8($t9) +/* 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 +/* 03CBEC 7F0080BC 00C02025 */ move $a0, $a2 +/* 03CBF0 7F0080C0 A4550000 */ sh $s5, ($v0) +/* 03CBF4 7F0080C4 8E860000 */ lw $a2, ($s4) +/* 03CBF8 7F0080C8 8CD80008 */ lw $t8, 8($a2) +/* 03CBFC 7F0080CC 8F030008 */ lw $v1, 8($t8) +/* 03CC00 7F0080D0 8C650008 */ lw $a1, 8($v1) +.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 +/* 03CC10 7F0080E0 00C02025 */ move $a0, $a2 +/* 03CC14 7F0080E4 AC550000 */ sw $s5, ($v0) +/* 03CC18 7F0080E8 8FA80128 */ lw $t0, 0x128($sp) +.L7F0080EC: +/* 03CC1C 7F0080EC 8E6F0000 */ lw $t7, ($s3) +/* 03CC20 7F0080F0 AFA800DC */ sw $t0, 0xdc($sp) +/* 03CC24 7F0080F4 8DEE0008 */ lw $t6, 8($t7) +/* 03CC28 7F0080F8 85C4000E */ lh $a0, 0xe($t6) +/* 03CC2C 7F0080FC 00044980 */ sll $t1, $a0, 6 +/* 03CC30 7F008100 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC34 7F008104 01202025 */ move $a0, $t1 +/* 03CC38 7F008108 AFA200EC */ sw $v0, 0xec($sp) +/* 03CC3C 7F00810C 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CC40 7F008110 0FC1BCBE */ jal subcalcmatrices +/* 03CC44 7F008114 8E650000 */ lw $a1, ($s3) +/* 03CC48 7F008118 8E8A0000 */ lw $t2, ($s4) +/* 03CC4C 7F00811C 8E640000 */ lw $a0, ($s3) +/* 03CC50 7F008120 00003025 */ move $a2, $zero +/* 03CC54 7F008124 0FC1B198 */ jal sub_GAME_7F06C660 +/* 03CC58 7F008128 8D45001C */ lw $a1, 0x1c($t2) +/* 03CC5C 7F00812C 8E8B0000 */ lw $t3, ($s4) +/* 03CC60 7F008130 AFA200DC */ sw $v0, 0xdc($sp) +/* 03CC64 7F008134 8D6C0008 */ lw $t4, 8($t3) +/* 03CC68 7F008138 8584000E */ lh $a0, 0xe($t4) +/* 03CC6C 7F00813C 00046980 */ sll $t5, $a0, 6 +/* 03CC70 7F008140 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC74 7F008144 01A02025 */ move $a0, $t5 +/* 03CC78 7F008148 AFA200EC */ sw $v0, 0xec($sp) +/* 03CC7C 7F00814C 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CC80 7F008150 0FC1BC92 */ jal instcalcmatrices +/* 03CC84 7F008154 8E850000 */ lw $a1, ($s4) +/* 03CC88 7F008158 00002025 */ move $a0, $zero +/* 03CC8C 7F00815C 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 03CC90 7F008160 8E650000 */ lw $a1, ($s3) +/* 03CC94 7F008164 00402025 */ move $a0, $v0 +/* 03CC98 7F008168 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 03CC9C 7F00816C 8E850000 */ lw $a1, ($s4) +/* 03CCA0 7F008170 00408025 */ move $s0, $v0 +/* 03CCA4 7F008174 0FC1ACA7 */ jal sub_GAME_7F06B29C +/* 03CCA8 7F008178 00402025 */ move $a0, $v0 +/* 03CCAC 7F00817C 0FC1AECA */ jal sub_GAME_7F06BB28 +/* 03CCB0 7F008180 02002025 */ move $a0, $s0 +/* 03CCB4 7F008184 8FB80120 */ lw $t8, 0x120($sp) +/* 03CCB8 7F008188 24190007 */ li $t9, 7 +/* 03CCBC 7F00818C 24080001 */ li $t0, 1 +/* 03CCC0 7F008190 00408025 */ move $s0, $v0 +/* 03CCC4 7F008194 AFB9010C */ sw $t9, 0x10c($sp) +/* 03CCC8 7F008198 AFA000E0 */ sw $zero, 0xe0($sp) +/* 03CCCC 7F00819C AFA800E4 */ sw $t0, 0xe4($sp) +/* 03CCD0 7F0081A0 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CCD4 7F0081A4 00402825 */ move $a1, $v0 +/* 03CCD8 7F0081A8 0FC1AF03 */ jal drawjointlist +/* 03CCDC 7F0081AC AFB800E8 */ sw $t8, 0xe8($sp) +/* 03CCE0 7F0081B0 240F0002 */ li $t7, 2 +/* 03CCE4 7F0081B4 AFAF00E4 */ sw $t7, 0xe4($sp) +/* 03CCE8 7F0081B8 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CCEC 7F0081BC 0FC1AF03 */ jal drawjointlist +/* 03CCF0 7F0081C0 02002825 */ move $a1, $s0 +/* 03CCF4 7F0081C4 0FC1B100 */ jal set_80036084 +/* 03CCF8 7F0081C8 00002025 */ move $a0, $zero +/* 03CCFC 7F0081CC 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 03CD00 7F0081D0 02002025 */ move $a0, $s0 +/* 03CD04 7F0081D4 8E620000 */ lw $v0, ($s3) +/* 03CD08 7F0081D8 00008025 */ move $s0, $zero +/* 03CD0C 7F0081DC 27B10088 */ addiu $s1, $sp, 0x88 +/* 03CD10 7F0081E0 8C4E0008 */ lw $t6, 8($v0) +/* 03CD14 7F0081E4 85C9000E */ lh $t1, 0xe($t6) +/* 03CD18 7F0081E8 59200015 */ blezl $t1, .L7F008240 +/* 03CD1C 7F0081EC 8E860000 */ lw $a2, ($s4) +/* 03CD20 7F0081F0 8C4A000C */ lw $t2, 0xc($v0) +.L7F0081F4: +/* 03CD24 7F0081F4 02202825 */ move $a1, $s1 +/* 03CD28 7F0081F8 0FC16008 */ jal matrix_4x4_copy +/* 03CD2C 7F0081FC 01502021 */ addu $a0, $t2, $s0 +/* 03CD30 7F008200 8E6B0000 */ lw $t3, ($s3) +/* 03CD34 7F008204 00126980 */ sll $t5, $s2, 6 +/* 03CD38 7F008208 02202025 */ move $a0, $s1 +/* 03CD3C 7F00820C 8D6C000C */ lw $t4, 0xc($t3) +/* 03CD40 7F008210 0FC16327 */ jal sub_GAME_7F058C9C +/* 03CD44 7F008214 018D2821 */ addu $a1, $t4, $t5 +/* 03CD48 7F008218 8E620000 */ lw $v0, ($s3) +/* 03CD4C 7F00821C 26520001 */ addiu $s2, $s2, 1 +/* 03CD50 7F008220 26100040 */ addiu $s0, $s0, 0x40 +/* 03CD54 7F008224 8C590008 */ lw $t9, 8($v0) +/* 03CD58 7F008228 8738000E */ lh $t8, 0xe($t9) +/* 03CD5C 7F00822C 0258082A */ slt $at, $s2, $t8 +/* 03CD60 7F008230 5420FFF0 */ bnezl $at, .L7F0081F4 +/* 03CD64 7F008234 8C4A000C */ lw $t2, 0xc($v0) +/* 03CD68 7F008238 00009025 */ move $s2, $zero +/* 03CD6C 7F00823C 8E860000 */ lw $a2, ($s4) +.L7F008240: +/* 03CD70 7F008240 00008025 */ move $s0, $zero +/* 03CD74 7F008244 27B10048 */ addiu $s1, $sp, 0x48 +/* 03CD78 7F008248 8CC80008 */ lw $t0, 8($a2) +/* 03CD7C 7F00824C 850F000E */ lh $t7, 0xe($t0) +/* 03CD80 7F008250 59E00014 */ blezl $t7, .L7F0082A4 +/* 03CD84 7F008254 8FBF0034 */ lw $ra, 0x34($sp) +/* 03CD88 7F008258 8CCE000C */ lw $t6, 0xc($a2) +.L7F00825C: +/* 03CD8C 7F00825C 02202825 */ move $a1, $s1 +/* 03CD90 7F008260 0FC16008 */ jal matrix_4x4_copy +/* 03CD94 7F008264 01D02021 */ addu $a0, $t6, $s0 +/* 03CD98 7F008268 8E890000 */ lw $t1, ($s4) +/* 03CD9C 7F00826C 00125980 */ sll $t3, $s2, 6 +/* 03CDA0 7F008270 02202025 */ move $a0, $s1 +/* 03CDA4 7F008274 8D2A000C */ lw $t2, 0xc($t1) +/* 03CDA8 7F008278 0FC16327 */ jal sub_GAME_7F058C9C +/* 03CDAC 7F00827C 014B2821 */ addu $a1, $t2, $t3 +/* 03CDB0 7F008280 8E860000 */ lw $a2, ($s4) +/* 03CDB4 7F008284 26520001 */ addiu $s2, $s2, 1 +/* 03CDB8 7F008288 26100040 */ addiu $s0, $s0, 0x40 +/* 03CDBC 7F00828C 8CCC0008 */ lw $t4, 8($a2) +/* 03CDC0 7F008290 858D000E */ lh $t5, 0xe($t4) +/* 03CDC4 7F008294 024D082A */ slt $at, $s2, $t5 +/* 03CDC8 7F008298 5420FFF0 */ bnezl $at, .L7F00825C +/* 03CDCC 7F00829C 8CCE000C */ lw $t6, 0xc($a2) +/* 03CDD0 7F0082A0 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0082A4: +/* 03CDD4 7F0082A4 8FA200E8 */ lw $v0, 0xe8($sp) +/* 03CDD8 7F0082A8 8FB0001C */ lw $s0, 0x1c($sp) +/* 03CDDC 7F0082AC 8FB10020 */ lw $s1, 0x20($sp) +/* 03CDE0 7F0082B0 8FB20024 */ lw $s2, 0x24($sp) +/* 03CDE4 7F0082B4 8FB30028 */ lw $s3, 0x28($sp) +/* 03CDE8 7F0082B8 8FB4002C */ lw $s4, 0x2c($sp) +/* 03CDEC 7F0082BC 8FB50030 */ lw $s5, 0x30($sp) +/* 03CDF0 7F0082C0 03E00008 */ jr $ra +/* 03CDF4 7F0082C4 27BD0120 */ addiu $sp, $sp, 0x120 +) +#endif + + + +#ifdef NONMATCHING +void insert_bond_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_bond_eye_intro +/* 03CDF8 7F0082C8 44800000 */ mtc1 $zero, $f0 +/* 03CDFC 7F0082CC 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03CE00 7F0082D0 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03CE04 7F0082D4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 03CE08 7F0082D8 3C188007 */ lui $t8, %hi(matrix_buffer_intro_backdrop) +/* 03CE0C 7F0082DC 8F18956C */ lw $t8, %lo(matrix_buffer_intro_backdrop)($t8) +/* 03CE10 7F0082E0 AFB00030 */ sw $s0, 0x30($sp) +/* 03CE14 7F0082E4 00808025 */ move $s0, $a0 +/* 03CE18 7F0082E8 AFBF0034 */ sw $ra, 0x34($sp) +/* 03CE1C 7F0082EC 44050000 */ mfc1 $a1, $f0 +/* 03CE20 7F0082F0 44060000 */ mfc1 $a2, $f0 +/* 03CE24 7F0082F4 44070000 */ mfc1 $a3, $f0 +/* 03CE28 7F0082F8 000E7980 */ sll $t7, $t6, 6 +/* 03CE2C 7F0082FC 0C005B46 */ jal guTranslate +/* 03CE30 7F008300 01F82021 */ addu $a0, $t7, $t8 +/* 03CE34 7F008304 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 03CE38 7F008308 44812000 */ mtc1 $at, $f4 +/* 03CE3C 7F00830C 3C018005 */ lui $at, %hi(D_8004F2D4) +/* 03CE40 7F008310 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03CE44 7F008314 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03CE48 7F008318 C426F2D4 */ lwc1 $f6, %lo(D_8004F2D4)($at) +/* 03CE4C 7F00831C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03CE50 7F008320 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_bond) +/* 03CE54 7F008324 8D8C9570 */ lw $t4, %lo(matrix_buffer_intro_bond)($t4) +/* 03CE58 7F008328 44814000 */ mtc1 $at, $f8 +/* 03CE5C 7F00832C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 03CE60 7F008330 00195980 */ sll $t3, $t9, 6 +/* 03CE64 7F008334 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 03CE68 7F008338 27A5005E */ addiu $a1, $sp, 0x5e +/* 03CE6C 7F00833C 3C064238 */ lui $a2, 0x4238 +/* 03CE70 7F008340 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03CE74 7F008344 E7A60014 */ swc1 $f6, 0x14($sp) +/* 03CE78 7F008348 016C2021 */ addu $a0, $t3, $t4 +/* 03CE7C 7F00834C 0C003FAC */ jal guPerspective +/* 03CE80 7F008350 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03CE84 7F008354 3C0DBC00 */ lui $t5, (0xBC00000E >> 16) # lui $t5, 0xbc00 +/* 03CE88 7F008358 35AD000E */ ori $t5, (0xBC00000E & 0xFFFF) # ori $t5, $t5, 0xe +/* 03CE8C 7F00835C 02001025 */ move $v0, $s0 +/* 03CE90 7F008360 AC4D0000 */ sw $t5, ($v0) +/* 03CE94 7F008364 97AE005E */ lhu $t6, 0x5e($sp) +/* 03CE98 7F008368 26100008 */ addiu $s0, $s0, 8 +/* 03CE9C 7F00836C 02001825 */ move $v1, $s0 +/* 03CEA0 7F008370 26100008 */ addiu $s0, $s0, 8 +/* 03CEA4 7F008374 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 03CEA8 7F008378 3C18FFFE */ lui $t8, (0xFFFE793C >> 16) # lui $t8, 0xfffe +/* 03CEAC 7F00837C AC4E0004 */ sw $t6, 4($v0) +/* 03CEB0 7F008380 3718793C */ ori $t8, (0xFFFE793C & 0xFFFF) # ori $t8, $t8, 0x793c +/* 03CEB4 7F008384 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 03CEB8 7F008388 02002825 */ move $a1, $s0 +/* 03CEBC 7F00838C AC6F0000 */ sw $t7, ($v1) +/* 03CEC0 7F008390 AC780004 */ sw $t8, 4($v1) +/* 03CEC4 7F008394 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 03CEC8 7F008398 3C0B0055 */ lui $t3, (0x00552048 >> 16) # lui $t3, 0x55 +/* 03CECC 7F00839C 356B2048 */ ori $t3, (0x00552048 & 0xFFFF) # ori $t3, $t3, 0x2048 +/* 03CED0 7F0083A0 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 03CED4 7F0083A4 26100008 */ addiu $s0, $s0, 8 +/* 03CED8 7F0083A8 3C0C0103 */ lui $t4, (0x01030040 >> 16) # lui $t4, 0x103 +/* 03CEDC 7F0083AC ACB90000 */ sw $t9, ($a1) +/* 03CEE0 7F0083B0 ACAB0004 */ sw $t3, 4($a1) +/* 03CEE4 7F0083B4 358C0040 */ ori $t4, (0x01030040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 03CEE8 7F0083B8 02003025 */ move $a2, $s0 +/* 03CEEC 7F0083BC ACCC0000 */ sw $t4, ($a2) +/* 03CEF0 7F0083C0 3C0D8003 */ lui $t5, %hi(D_8002A7D0) +/* 03CEF4 7F0083C4 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) +/* 03CEF8 7F0083C8 3C0F8007 */ lui $t7, %hi(matrix_buffer_intro_bond) +/* 03CEFC 7F0083CC 8DEF9570 */ lw $t7, %lo(matrix_buffer_intro_bond)($t7) +/* 03CF00 7F0083D0 000D7180 */ sll $t6, $t5, 6 +/* 03CF04 7F0083D4 AFA6004C */ sw $a2, 0x4c($sp) +/* 03CF08 7F0083D8 26100008 */ addiu $s0, $s0, 8 +/* 03CF0C 7F0083DC 0C003A2C */ jal osVirtualToPhysical +/* 03CF10 7F0083E0 01CF2021 */ addu $a0, $t6, $t7 +/* 03CF14 7F0083E4 8FA6004C */ lw $a2, 0x4c($sp) +/* 03CF18 7F0083E8 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 03CF1C 7F0083EC 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03CF20 7F0083F0 02005025 */ move $t2, $s0 +/* 03CF24 7F0083F4 ACC20004 */ sw $v0, 4($a2) +/* 03CF28 7F0083F8 AD580000 */ sw $t8, ($t2) +/* 03CF2C 7F0083FC 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03CF30 7F008400 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03CF34 7F008404 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_backdrop) +/* 03CF38 7F008408 8D8C956C */ lw $t4, %lo(matrix_buffer_intro_backdrop)($t4) +/* 03CF3C 7F00840C 00195980 */ sll $t3, $t9, 6 +/* 03CF40 7F008410 AFAA0048 */ sw $t2, 0x48($sp) +/* 03CF44 7F008414 26100008 */ addiu $s0, $s0, 8 +/* 03CF48 7F008418 0C003A2C */ jal osVirtualToPhysical +/* 03CF4C 7F00841C 016C2021 */ addu $a0, $t3, $t4 +/* 03CF50 7F008420 8FAA0048 */ lw $t2, 0x48($sp) +/* 03CF54 7F008424 3C038003 */ lui $v1, %hi(D_8002A83C) +/* 03CF58 7F008428 3C088003 */ lui $t0, %hi(D_8002A848) +/* 03CF5C 7F00842C AD420004 */ sw $v0, 4($t2) +/* 03CF60 7F008430 2508A848 */ addiu $t0, %lo(D_8002A848) # addiu $t0, $t0, -0x57b8 +/* 03CF64 7F008434 2463A83C */ addiu $v1, %lo(D_8002A83C) # addiu $v1, $v1, -0x57c4 +/* 03CF68 7F008438 C4600000 */ lwc1 $f0, ($v1) +/* 03CF6C 7F00843C C50A0000 */ lwc1 $f10, ($t0) +/* 03CF70 7F008440 C4620004 */ lwc1 $f2, 4($v1) +/* 03CF74 7F008444 C5120004 */ lwc1 $f18, 4($t0) +/* 03CF78 7F008448 46005400 */ add.s $f16, $f10, $f0 +/* 03CF7C 7F00844C C46C0008 */ lwc1 $f12, 8($v1) +/* 03CF80 7F008450 C5060008 */ lwc1 $f6, 8($t0) +/* 03CF84 7F008454 3C098003 */ lui $t1, %hi(D_8002A854) +/* 03CF88 7F008458 2529A854 */ addiu $t1, %lo(D_8002A854) # addiu $t1, $t1, -0x57ac +/* 03CF8C 7F00845C 46029100 */ add.s $f4, $f18, $f2 +/* 03CF90 7F008460 E7B00010 */ swc1 $f16, 0x10($sp) +/* 03CF94 7F008464 C5300004 */ lwc1 $f16, 4($t1) +/* 03CF98 7F008468 460C3200 */ add.s $f8, $f6, $f12 +/* 03CF9C 7F00846C C5320008 */ lwc1 $f18, 8($t1) +/* 03CFA0 7F008470 C52A0000 */ lwc1 $f10, ($t1) +/* 03CFA4 7F008474 44050000 */ mfc1 $a1, $f0 +/* 03CFA8 7F008478 44061000 */ mfc1 $a2, $f2 +/* 03CFAC 7F00847C 44076000 */ mfc1 $a3, $f12 +/* 03CFB0 7F008480 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03CFB4 7F008484 E7A40014 */ swc1 $f4, 0x14($sp) +/* 03CFB8 7F008488 27A40060 */ addiu $a0, $sp, 0x60 +/* 03CFBC 7F00848C E7B00020 */ swc1 $f16, 0x20($sp) +/* 03CFC0 7F008490 E7B20024 */ swc1 $f18, 0x24($sp) +/* 03CFC4 7F008494 0FC165A5 */ jal sub_GAME_7F059694 +/* 03CFC8 7F008498 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03CFCC 7F00849C 02002025 */ move $a0, $s0 +/* 03CFD0 7F0084A0 24050002 */ li $a1, 2 +/* 03CFD4 7F0084A4 0FC01FCC */ jal sub_GAME_7F007F30 +/* 03CFD8 7F0084A8 27A60060 */ addiu $a2, $sp, 0x60 +/* 03CFDC 7F0084AC 8FBF0034 */ lw $ra, 0x34($sp) +/* 03CFE0 7F0084B0 8FB00030 */ lw $s0, 0x30($sp) +/* 03CFE4 7F0084B4 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 03CFE8 7F0084B8 03E00008 */ jr $ra +/* 03CFEC 7F0084BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void load_display_rare_logo(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_display_rare_logo +/* 03CFF0 7F0084C0 44872000 */ mtc1 $a3, $f4 +/* 03CFF4 7F0084C4 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 03CFF8 7F0084C8 AFB0002C */ sw $s0, 0x2c($sp) +/* 03CFFC 7F0084CC 468021A0 */ cvt.s.w $f6, $f4 +/* 03D000 7F0084D0 3C018003 */ lui $at, %hi(D_8002A880) +/* 03D004 7F0084D4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03D008 7F0084D8 AFB10030 */ sw $s1, 0x30($sp) +/* 03D00C 7F0084DC AFA500EC */ sw $a1, 0xec($sp) +/* 03D010 7F0084E0 AFA600F0 */ sw $a2, 0xf0($sp) +/* 03D014 7F0084E4 E426A880 */ swc1 $f6, %lo(D_8002A880)($at) +/* 03D018 7F0084E8 3C0F0100 */ lui $t7, 0x100 +/* 03D01C 7F0084EC 25EF0000 */ addiu $t7, $t7, 0 +/* 03D020 7F0084F0 3C0E0600 */ lui $t6, 0x600 +/* 03D024 7F0084F4 AC8E0000 */ sw $t6, ($a0) +/* 03D028 7F0084F8 AC8F0004 */ sw $t7, 4($a0) +/* 03D02C 7F0084FC 24900008 */ addiu $s0, $a0, 8 +/* 03D030 7F008500 0FC07034 */ jal insert_imageDL +/* 03D034 7F008504 02002025 */ move $a0, $s0 +/* 03D038 7F008508 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03D03C 7F00850C 44814000 */ mtc1 $at, $f8 +/* 03D040 7F008510 3C118003 */ lui $s1, %hi(D_8002A7D0) +/* 03D044 7F008514 2631A7D0 */ addiu $s1, %lo(D_8002A7D0) # addiu $s1, $s1, -0x5830 +/* 03D048 7F008518 3C018005 */ lui $at, %hi(D_8004F2D8) +/* 03D04C 7F00851C C42AF2D8 */ lwc1 $f10, %lo(D_8004F2D8)($at) +/* 03D050 7F008520 8E380000 */ lw $t8, ($s1) +/* 03D054 7F008524 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03D058 7F008528 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_0) +/* 03D05C 7F00852C 8DCE9558 */ lw $t6, %lo(matrix_buffer_rarelogo_0)($t6) +/* 03D060 7F008530 44818000 */ mtc1 $at, $f16 +/* 03D064 7F008534 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 03D068 7F008538 0018C980 */ sll $t9, $t8, 6 +/* 03D06C 7F00853C 00408025 */ move $s0, $v0 +/* 03D070 7F008540 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 03D074 7F008544 27A500E2 */ addiu $a1, $sp, 0xe2 +/* 03D078 7F008548 3C064270 */ lui $a2, 0x4270 +/* 03D07C 7F00854C E7A80010 */ swc1 $f8, 0x10($sp) +/* 03D080 7F008550 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 03D084 7F008554 032E2021 */ addu $a0, $t9, $t6 +/* 03D088 7F008558 0C003FAC */ jal guPerspective +/* 03D08C 7F00855C E7B00018 */ swc1 $f16, 0x18($sp) +/* 03D090 7F008560 3C0FBC00 */ lui $t7, (0xBC00000E >> 16) # lui $t7, 0xbc00 +/* 03D094 7F008564 35EF000E */ ori $t7, (0xBC00000E & 0xFFFF) # ori $t7, $t7, 0xe +/* 03D098 7F008568 02001025 */ move $v0, $s0 +/* 03D09C 7F00856C AC4F0000 */ sw $t7, ($v0) +/* 03D0A0 7F008570 97B800E2 */ lhu $t8, 0xe2($sp) +/* 03D0A4 7F008574 26100008 */ addiu $s0, $s0, 8 +/* 03D0A8 7F008578 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 03D0AC 7F00857C 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 03D0B0 7F008580 02005825 */ move $t3, $s0 +/* 03D0B4 7F008584 AC580004 */ sw $t8, 4($v0) +/* 03D0B8 7F008588 AD790000 */ sw $t9, ($t3) +/* 03D0BC 7F00858C 8E2E0000 */ lw $t6, ($s1) +/* 03D0C0 7F008590 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_0) +/* 03D0C4 7F008594 8F189558 */ lw $t8, %lo(matrix_buffer_rarelogo_0)($t8) +/* 03D0C8 7F008598 000E7980 */ sll $t7, $t6, 6 +/* 03D0CC 7F00859C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 03D0D0 7F0085A0 26100008 */ addiu $s0, $s0, 8 +/* 03D0D4 7F0085A4 0C003A2C */ jal osVirtualToPhysical +/* 03D0D8 7F0085A8 01F82021 */ addu $a0, $t7, $t8 +/* 03D0DC 7F0085AC 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 03D0E0 7F0085B0 02001825 */ move $v1, $s0 +/* 03D0E4 7F0085B4 240EFFFF */ li $t6, -1 +/* 03D0E8 7F0085B8 AD620004 */ sw $v0, 4($t3) +/* 03D0EC 7F0085BC AC6E0004 */ sw $t6, 4($v1) +/* 03D0F0 7F0085C0 26100008 */ addiu $s0, $s0, 8 +/* 03D0F4 7F0085C4 3C19B600 */ lui $t9, 0xb600 +/* 03D0F8 7F0085C8 AC790000 */ sw $t9, ($v1) +/* 03D0FC 7F0085CC 02004025 */ move $t0, $s0 +/* 03D100 7F0085D0 3C0FB700 */ lui $t7, 0xb700 +/* 03D104 7F0085D4 3C180006 */ lui $t8, (0x00062204 >> 16) # lui $t8, 6 +/* 03D108 7F0085D8 37182204 */ ori $t8, (0x00062204 & 0xFFFF) # ori $t8, $t8, 0x2204 +/* 03D10C 7F0085DC AD0F0000 */ sw $t7, ($t0) +/* 03D110 7F0085E0 AD180004 */ sw $t8, 4($t0) +/* 03D114 7F0085E4 3C098003 */ lui $t1, %hi(D_8002A884) +/* 03D118 7F0085E8 3C0C8003 */ lui $t4, %hi(D_8002A878) +/* 03D11C 7F0085EC 258CA878 */ addiu $t4, %lo(D_8002A878) # addiu $t4, $t4, -0x5788 +/* 03D120 7F0085F0 2529A884 */ addiu $t1, %lo(D_8002A884) # addiu $t1, $t1, -0x577c +/* 03D124 7F0085F4 C5320000 */ lwc1 $f18, ($t1) +/* 03D128 7F0085F8 C5800000 */ lwc1 $f0, ($t4) +/* 03D12C 7F0085FC C5260004 */ lwc1 $f6, 4($t1) +/* 03D130 7F008600 C5820004 */ lwc1 $f2, 4($t4) +/* 03D134 7F008604 46009100 */ add.s $f4, $f18, $f0 +/* 03D138 7F008608 C52A0008 */ lwc1 $f10, 8($t1) +/* 03D13C 7F00860C C58C0008 */ lwc1 $f12, 8($t4) +/* 03D140 7F008610 3C0A8003 */ lui $t2, %hi(D_8002A890) +/* 03D144 7F008614 254AA890 */ addiu $t2, %lo(D_8002A890) # addiu $t2, $t2, -0x5770 +/* 03D148 7F008618 46023200 */ add.s $f8, $f6, $f2 +/* 03D14C 7F00861C 8E390000 */ lw $t9, ($s1) +/* 03D150 7F008620 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03D154 7F008624 460C5400 */ add.s $f16, $f10, $f12 +/* 03D158 7F008628 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) +/* 03D15C 7F00862C 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) +/* 03D160 7F008630 C5440004 */ lwc1 $f4, 4($t2) +/* 03D164 7F008634 C5460008 */ lwc1 $f6, 8($t2) +/* 03D168 7F008638 C5520000 */ lwc1 $f18, ($t2) +/* 03D16C 7F00863C 44050000 */ mfc1 $a1, $f0 +/* 03D170 7F008640 44061000 */ mfc1 $a2, $f2 +/* 03D174 7F008644 44076000 */ mfc1 $a3, $f12 +/* 03D178 7F008648 00197180 */ sll $t6, $t9, 6 +/* 03D17C 7F00864C 26100008 */ addiu $s0, $s0, 8 +/* 03D180 7F008650 E7B00018 */ swc1 $f16, 0x18($sp) +/* 03D184 7F008654 E7A80014 */ swc1 $f8, 0x14($sp) +/* 03D188 7F008658 01CF2021 */ addu $a0, $t6, $t7 +/* 03D18C 7F00865C E7A40020 */ swc1 $f4, 0x20($sp) +/* 03D190 7F008660 E7A60024 */ swc1 $f6, 0x24($sp) +/* 03D194 7F008664 0C005DAA */ jal guLookAt +/* 03D198 7F008668 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 03D19C 7F00866C 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 03D1A0 7F008670 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03D1A4 7F008674 02001825 */ move $v1, $s0 +/* 03D1A8 7F008678 AC780000 */ sw $t8, ($v1) +/* 03D1AC 7F00867C 8E390000 */ lw $t9, ($s1) +/* 03D1B0 7F008680 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) +/* 03D1B4 7F008684 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) +/* 03D1B8 7F008688 00197180 */ sll $t6, $t9, 6 +/* 03D1BC 7F00868C AFA300CC */ sw $v1, 0xcc($sp) +/* 03D1C0 7F008690 26100008 */ addiu $s0, $s0, 8 +/* 03D1C4 7F008694 0C003A2C */ jal osVirtualToPhysical +/* 03D1C8 7F008698 01CF2021 */ addu $a0, $t6, $t7 +/* 03D1CC 7F00869C 8FA300CC */ lw $v1, 0xcc($sp) +/* 03D1D0 7F0086A0 44800000 */ mtc1 $zero, $f0 +/* 03D1D4 7F0086A4 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) +/* 03D1D8 7F0086A8 AC620004 */ sw $v0, 4($v1) +/* 03D1DC 7F0086AC 8E380000 */ lw $t8, ($s1) +/* 03D1E0 7F0086B0 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) +/* 03D1E4 7F0086B4 3C058003 */ lui $a1, %hi(D_8002A89C) +/* 03D1E8 7F0086B8 44060000 */ mfc1 $a2, $f0 +/* 03D1EC 7F0086BC 0018C980 */ sll $t9, $t8, 6 +/* 03D1F0 7F0086C0 8CA5A89C */ lw $a1, %lo(D_8002A89C)($a1) +/* 03D1F4 7F0086C4 3C073F80 */ lui $a3, %hi(0x3F800004) # $a3, 0x3f80 +/* 03D1F8 7F0086C8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 03D1FC 7F0086CC 0C005E2D */ jal guRotate +/* 03D200 7F0086D0 032E2021 */ addu $a0, $t9, $t6 +/* 03D204 7F0086D4 3C028003 */ lui $v0, %hi(D_8002A89C) +/* 03D208 7F0086D8 2442A89C */ addiu $v0, %lo(D_8002A89C) # addiu $v0, $v0, -0x5764 +/* 03D20C 7F0086DC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 03D210 7F0086E0 44815000 */ mtc1 $at, $f10 +/* 03D214 7F0086E4 C4480000 */ lwc1 $f8, ($v0) +/* 03D218 7F0086E8 3C0F0100 */ lui $t7, (0x01000040 >> 16) # lui $t7, 0x100 +/* 03D21C 7F0086EC 35EF0040 */ ori $t7, (0x01000040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 03D220 7F0086F0 460A4400 */ add.s $f16, $f8, $f10 +/* 03D224 7F0086F4 02005025 */ move $t2, $s0 +/* 03D228 7F0086F8 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) +/* 03D22C 7F0086FC 26100008 */ addiu $s0, $s0, 8 +/* 03D230 7F008700 E4500000 */ swc1 $f16, ($v0) +/* 03D234 7F008704 AD4F0000 */ sw $t7, ($t2) +/* 03D238 7F008708 8E380000 */ lw $t8, ($s1) +/* 03D23C 7F00870C 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) +/* 03D240 7F008710 AFAA00C8 */ sw $t2, 0xc8($sp) +/* 03D244 7F008714 0018C980 */ sll $t9, $t8, 6 +/* 03D248 7F008718 0C003A2C */ jal osVirtualToPhysical +/* 03D24C 7F00871C 032E2021 */ addu $a0, $t9, $t6 +/* 03D250 7F008720 8FA800F8 */ lw $t0, 0xf8($sp) +/* 03D254 7F008724 8FAA00C8 */ lw $t2, 0xc8($sp) +/* 03D258 7F008728 02002025 */ move $a0, $s0 +/* 03D25C 7F00872C 3C0FBC00 */ lui $t7, (0xBC000002 >> 16) # lui $t7, 0xbc00 +/* 03D260 7F008730 35EF0002 */ ori $t7, (0xBC000002 & 0xFFFF) # ori $t7, $t7, 2 +/* 03D264 7F008734 26100008 */ addiu $s0, $s0, 8 +/* 03D268 7F008738 3C188000 */ lui $t8, (0x80000040 >> 16) # lui $t8, 0x8000 +/* 03D26C 7F00873C AD420004 */ sw $v0, 4($t2) +/* 03D270 7F008740 AC8F0000 */ sw $t7, ($a0) +/* 03D274 7F008744 37180040 */ ori $t8, (0x80000040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03D278 7F008748 02002825 */ move $a1, $s0 +/* 03D27C 7F00874C AC980004 */ sw $t8, 4($a0) +/* 03D280 7F008750 3C190386 */ lui $t9, (0x03860010 >> 16) # lui $t9, 0x386 +/* 03D284 7F008754 3C0E8003 */ lui $t6, %hi(D_8002A868) +/* 03D288 7F008758 25CEA868 */ addiu $t6, %lo(D_8002A868) # addiu $t6, $t6, -0x5798 +/* 03D28C 7F00875C 37390010 */ ori $t9, (0x03860010 & 0xFFFF) # ori $t9, $t9, 0x10 +/* 03D290 7F008760 26100008 */ addiu $s0, $s0, 8 +/* 03D294 7F008764 3C038003 */ lui $v1, %hi(D_8002A860) +/* 03D298 7F008768 02003025 */ move $a2, $s0 +/* 03D29C 7F00876C ACB90000 */ sw $t9, ($a1) +/* 03D2A0 7F008770 ACAE0004 */ sw $t6, 4($a1) +/* 03D2A4 7F008774 3C0F0388 */ lui $t7, (0x03880010 >> 16) # lui $t7, 0x388 +/* 03D2A8 7F008778 2463A860 */ addiu $v1, %lo(D_8002A860) # addiu $v1, $v1, -0x57a0 +/* 03D2AC 7F00877C 35EF0010 */ ori $t7, (0x03880010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 03D2B0 7F008780 ACCF0000 */ sw $t7, ($a2) +/* 03D2B4 7F008784 ACC30004 */ sw $v1, 4($a2) +/* 03D2B8 7F008788 26100008 */ addiu $s0, $s0, 8 +/* 03D2BC 7F00878C 02003825 */ move $a3, $s0 +/* 03D2C0 7F008790 A0680000 */ sb $t0, ($v1) +/* 03D2C4 7F008794 A0680001 */ sb $t0, 1($v1) +/* 03D2C8 7F008798 A0680002 */ sb $t0, 2($v1) +/* 03D2CC 7F00879C A0680004 */ sb $t0, 4($v1) +/* 03D2D0 7F0087A0 A0680005 */ sb $t0, 5($v1) +/* 03D2D4 7F0087A4 A0680006 */ sb $t0, 6($v1) +/* 03D2D8 7F0087A8 26100008 */ addiu $s0, $s0, 8 +/* 03D2DC 7F0087AC 3C09E700 */ lui $t1, 0xe700 +/* 03D2E0 7F0087B0 02005825 */ move $t3, $s0 +/* 03D2E4 7F0087B4 ACE90000 */ sw $t1, ($a3) +/* 03D2E8 7F0087B8 ACE00004 */ sw $zero, %lo(0x3F800004)($a3) +/* 03D2EC 7F0087BC 26100008 */ addiu $s0, $s0, 8 +/* 03D2F0 7F0087C0 02001025 */ move $v0, $s0 +/* 03D2F4 7F0087C4 AD600004 */ sw $zero, 4($t3) +/* 03D2F8 7F0087C8 AD690000 */ sw $t1, ($t3) +/* 03D2FC 7F0087CC 26100008 */ addiu $s0, $s0, 8 +/* 03D300 7F0087D0 3C18FC12 */ lui $t8, (0xFC127E24 >> 16) # lui $t8, 0xfc12 +/* 03D304 7F0087D4 37187E24 */ ori $t8, (0xFC127E24 & 0xFFFF) # ori $t8, $t8, 0x7e24 +/* 03D308 7F0087D8 2419F9FC */ li $t9, -1540 +/* 03D30C 7F0087DC 02001825 */ move $v1, $s0 +/* 03D310 7F0087E0 AC590004 */ sw $t9, 4($v0) +/* 03D314 7F0087E4 AC580000 */ sw $t8, ($v0) +/* 03D318 7F0087E8 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 03D31C 7F0087EC 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 03D320 7F0087F0 3C0F0008 */ lui $t7, 8 +/* 03D324 7F0087F4 AC6F0004 */ sw $t7, 4($v1) +/* 03D328 7F0087F8 AC6E0000 */ sw $t6, ($v1) +/* 03D32C 7F0087FC 26100008 */ addiu $s0, $s0, 8 +/* 03D330 7F008800 02002025 */ move $a0, $s0 +/* 03D334 7F008804 3C18BA00 */ lui $t8, (0xBA001102 >> 16) # lui $t8, 0xba00 +/* 03D338 7F008808 37181102 */ ori $t8, (0xBA001102 & 0xFFFF) # ori $t8, $t8, 0x1102 +/* 03D33C 7F00880C 26100008 */ addiu $s0, $s0, 8 +/* 03D340 7F008810 AC980000 */ sw $t8, ($a0) +/* 03D344 7F008814 02002825 */ move $a1, $s0 +/* 03D348 7F008818 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00 +/* 03D34C 7F00881C AC800004 */ sw $zero, 4($a0) +/* 03D350 7F008820 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 03D354 7F008824 26100008 */ addiu $s0, $s0, 8 +/* 03D358 7F008828 ACB90000 */ sw $t9, ($a1) +/* 03D35C 7F00882C 02003025 */ move $a2, $s0 +/* 03D360 7F008830 ACA00004 */ sw $zero, 4($a1) +/* 03D364 7F008834 26100008 */ addiu $s0, $s0, 8 +/* 03D368 7F008838 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 +/* 03D36C 7F00883C 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 03D370 7F008840 02001025 */ move $v0, $s0 +/* 03D374 7F008844 ACCE0000 */ sw $t6, ($a2) +/* 03D378 7F008848 ACC00004 */ sw $zero, 4($a2) +/* 03D37C 7F00884C 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 03D380 7F008850 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 03D384 7F008854 26100008 */ addiu $s0, $s0, 8 +/* 03D388 7F008858 24182000 */ li $t8, 8192 +/* 03D38C 7F00885C AC580004 */ sw $t8, 4($v0) +/* 03D390 7F008860 AC4F0000 */ sw $t7, ($v0) +/* 03D394 7F008864 02001825 */ move $v1, $s0 +/* 03D398 7F008868 3C19BA00 */ lui $t9, (0xBA000903 >> 16) # lui $t9, 0xba00 +/* 03D39C 7F00886C 37390903 */ ori $t9, (0xBA000903 & 0xFFFF) # ori $t9, $t9, 0x903 +/* 03D3A0 7F008870 26100008 */ addiu $s0, $s0, 8 +/* 03D3A4 7F008874 AC790000 */ sw $t9, ($v1) +/* 03D3A8 7F008878 240E0C00 */ li $t6, 3072 +/* 03D3AC 7F00887C 02002025 */ move $a0, $s0 +/* 03D3B0 7F008880 AC6E0004 */ sw $t6, 4($v1) +/* 03D3B4 7F008884 26100008 */ addiu $s0, $s0, 8 +/* 03D3B8 7F008888 02002825 */ move $a1, $s0 +/* 03D3BC 7F00888C AC800004 */ sw $zero, 4($a0) +/* 03D3C0 7F008890 AC890000 */ sw $t1, ($a0) +/* 03D3C4 7F008894 26100008 */ addiu $s0, $s0, 8 +/* 03D3C8 7F008898 ACA00004 */ sw $zero, 4($a1) +/* 03D3CC 7F00889C ACA90000 */ sw $t1, ($a1) +/* 03D3D0 7F0088A0 02003825 */ move $a3, $s0 +/* 03D3D4 7F0088A4 26100008 */ addiu $s0, $s0, 8 +/* 03D3D8 7F0088A8 3C0FBB00 */ lui $t7, (0xBB000001 >> 16) # lui $t7, 0xbb00 +/* 03D3DC 7F0088AC 3C180800 */ lui $t8, (0x08000800 >> 16) # lui $t8, 0x800 +/* 03D3E0 7F0088B0 37180800 */ ori $t8, (0x08000800 & 0xFFFF) # ori $t8, $t8, 0x800 +/* 03D3E4 7F0088B4 35EF0001 */ ori $t7, (0xBB000001 & 0xFFFF) # ori $t7, $t7, 1 +/* 03D3E8 7F0088B8 02001025 */ move $v0, $s0 +/* 03D3EC 7F0088BC ACEF0000 */ sw $t7, ($a3) +/* 03D3F0 7F0088C0 ACF80004 */ sw $t8, %lo(0x3F800004)($a3) +/* 03D3F4 7F0088C4 26100008 */ addiu $s0, $s0, 8 +/* 03D3F8 7F0088C8 3C190200 */ lui $t9, %hi(0x02004FE8) # $t9, 0x200 +/* 03D3FC 7F0088CC 3C0BFD10 */ lui $t3, 0xfd10 +/* 03D400 7F0088D0 27394FE8 */ addiu $t9, %lo(0x02004FE8) # addiu $t9, $t9, 0x4fe8 +/* 03D404 7F0088D4 02001825 */ move $v1, $s0 +/* 03D408 7F0088D8 3C0D0701 */ lui $t5, (0x07014050 >> 16) # lui $t5, 0x701 +/* 03D40C 7F0088DC 26100008 */ addiu $s0, $s0, 8 +/* 03D410 7F0088E0 AC590004 */ sw $t9, 4($v0) +/* 03D414 7F0088E4 AC4B0000 */ sw $t3, ($v0) +/* 03D418 7F0088E8 35AD4050 */ ori $t5, (0x07014050 & 0xFFFF) # ori $t5, $t5, 0x4050 +/* 03D41C 7F0088EC 3C0CF510 */ lui $t4, 0xf510 +/* 03D420 7F0088F0 02002025 */ move $a0, $s0 +/* 03D424 7F0088F4 AC6C0000 */ sw $t4, ($v1) +/* 03D428 7F0088F8 AC6D0004 */ sw $t5, 4($v1) +/* 03D42C 7F0088FC 3C1FE600 */ lui $ra, 0xe600 +/* 03D430 7F008900 26100008 */ addiu $s0, $s0, 8 +/* 03D434 7F008904 02002825 */ move $a1, $s0 +/* 03D438 7F008908 AC9F0000 */ sw $ra, ($a0) +/* 03D43C 7F00890C AC800004 */ sw $zero, 4($a0) +/* 03D440 7F008910 3C0E073F */ lui $t6, (0x073FF100 >> 16) # lui $t6, 0x73f +/* 03D444 7F008914 35CEF100 */ ori $t6, (0x073FF100 & 0xFFFF) # ori $t6, $t6, 0xf100 +/* 03D448 7F008918 26100008 */ addiu $s0, $s0, 8 +/* 03D44C 7F00891C 3C11F300 */ lui $s1, 0xf300 +/* 03D450 7F008920 02003025 */ move $a2, $s0 +/* 03D454 7F008924 ACAE0004 */ sw $t6, 4($a1) +/* 03D458 7F008928 26100008 */ addiu $s0, $s0, 8 +/* 03D45C 7F00892C ACB10000 */ sw $s1, ($a1) +/* 03D460 7F008930 02001825 */ move $v1, $s0 +/* 03D464 7F008934 ACC00004 */ sw $zero, 4($a2) +/* 03D468 7F008938 ACC90000 */ sw $t1, ($a2) +/* 03D46C 7F00893C 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 03D470 7F008940 3C0FF510 */ lui $t7, (0xF5101000 >> 16) # lui $t7, 0xf510 +/* 03D474 7F008944 35EF1000 */ ori $t7, (0xF5101000 & 0xFFFF) # ori $t7, $t7, 0x1000 +/* 03D478 7F008948 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 03D47C 7F00894C 26100008 */ addiu $s0, $s0, 8 +/* 03D480 7F008950 02002025 */ move $a0, $s0 +/* 03D484 7F008954 AC780004 */ sw $t8, 4($v1) +/* 03D488 7F008958 AC6F0000 */ sw $t7, ($v1) +/* 03D48C 7F00895C 3C0E0007 */ lui $t6, (0x0007C07C >> 16) # lui $t6, 7 +/* 03D490 7F008960 3C19F200 */ lui $t9, 0xf200 +/* 03D494 7F008964 AC990000 */ sw $t9, ($a0) +/* 03D498 7F008968 35CEC07C */ ori $t6, (0x0007C07C & 0xFFFF) # ori $t6, $t6, 0xc07c +/* 03D49C 7F00896C 26100008 */ addiu $s0, $s0, 8 +/* 03D4A0 7F008970 310200FF */ andi $v0, $t0, 0xff +/* 03D4A4 7F008974 AC8E0004 */ sw $t6, 4($a0) +/* 03D4A8 7F008978 02002825 */ move $a1, $s0 +/* 03D4AC 7F00897C 3C0FFA00 */ lui $t7, 0xfa00 +/* 03D4B0 7F008980 ACAF0000 */ sw $t7, ($a1) +/* 03D4B4 7F008984 0002C600 */ sll $t8, $v0, 0x18 +/* 03D4B8 7F008988 0002CC00 */ sll $t9, $v0, 0x10 +/* 03D4BC 7F00898C 03197025 */ or $t6, $t8, $t9 +/* 03D4C0 7F008990 00027A00 */ sll $t7, $v0, 8 +/* 03D4C4 7F008994 01CFC025 */ or $t8, $t6, $t7 +/* 03D4C8 7F008998 26100008 */ addiu $s0, $s0, 8 +/* 03D4CC 7F00899C 371900FF */ ori $t9, $t8, 0xff +/* 03D4D0 7F0089A0 02003825 */ move $a3, $s0 +/* 03D4D4 7F0089A4 ACB90004 */ sw $t9, 4($a1) +/* 03D4D8 7F0089A8 26100008 */ addiu $s0, $s0, 8 +/* 03D4DC 7F0089AC 3C0E0200 */ lui $t6, %hi(0x020043E8) # $t6, 0x200 +/* 03D4E0 7F0089B0 25CE43E8 */ addiu $t6, %lo(0x020043E8) # addiu $t6, $t6, 0x43e8 +/* 03D4E4 7F0089B4 3C060600 */ lui $a2, 0x600 +/* 03D4E8 7F0089B8 02001025 */ move $v0, $s0 +/* 03D4EC 7F0089BC ACE60000 */ sw $a2, ($a3) +/* 03D4F0 7F0089C0 ACEE0004 */ sw $t6, 4($a3) +/* 03D4F4 7F0089C4 26100008 */ addiu $s0, $s0, 8 +/* 03D4F8 7F0089C8 3C0F0200 */ lui $t7, %hi(0x020044B0) # $t7, 0x200 +/* 03D4FC 7F0089CC 25EF44B0 */ addiu $t7, %lo(0x020044B0) # addiu $t7, $t7, 0x44b0 +/* 03D500 7F0089D0 02001825 */ move $v1, $s0 +/* 03D504 7F0089D4 AC4F0004 */ sw $t7, 4($v0) +/* 03D508 7F0089D8 AC460000 */ sw $a2, ($v0) +/* 03D50C 7F0089DC 3C180200 */ lui $t8, %hi(0x02005FF0) # $t8, 0x200 +/* 03D510 7F0089E0 27185FF0 */ addiu $t8, %lo(0x02005FF0) # addiu $t8, $t8, 0x5ff0 +/* 03D514 7F0089E4 26100008 */ addiu $s0, $s0, 8 +/* 03D518 7F0089E8 02002025 */ move $a0, $s0 +/* 03D51C 7F0089EC AC780004 */ sw $t8, 4($v1) +/* 03D520 7F0089F0 AC6B0000 */ sw $t3, ($v1) +/* 03D524 7F0089F4 26100008 */ addiu $s0, $s0, 8 +/* 03D528 7F0089F8 02002825 */ move $a1, $s0 +/* 03D52C 7F0089FC 26100008 */ addiu $s0, $s0, 8 +/* 03D530 7F008A00 AC8D0004 */ sw $t5, 4($a0) +/* 03D534 7F008A04 AC8C0000 */ sw $t4, ($a0) +/* 03D538 7F008A08 02005025 */ move $t2, $s0 +/* 03D53C 7F008A0C 26100008 */ addiu $s0, $s0, 8 +/* 03D540 7F008A10 ACA00004 */ sw $zero, 4($a1) +/* 03D544 7F008A14 ACBF0000 */ sw $ra, ($a1) +/* 03D548 7F008A18 3C19073F */ lui $t9, (0x073FF100 >> 16) # lui $t9, 0x73f +/* 03D54C 7F008A1C 3739F100 */ ori $t9, (0x073FF100 & 0xFFFF) # ori $t9, $t9, 0xf100 +/* 03D550 7F008A20 02001025 */ move $v0, $s0 +/* 03D554 7F008A24 240700FF */ li $a3, 255 +/* 03D558 7F008A28 AD590004 */ sw $t9, 4($t2) +/* 03D55C 7F008A2C AD510000 */ sw $s1, ($t2) +/* 03D560 7F008A30 26100008 */ addiu $s0, $s0, 8 +/* 03D564 7F008A34 3C0F0001 */ lui $t7, (0x00014050 >> 16) # lui $t7, 1 +/* 03D568 7F008A38 35EF4050 */ ori $t7, (0x00014050 & 0xFFFF) # ori $t7, $t7, 0x4050 +/* 03D56C 7F008A3C 02001825 */ move $v1, $s0 +/* 03D570 7F008A40 AC400004 */ sw $zero, 4($v0) +/* 03D574 7F008A44 AC490000 */ sw $t1, ($v0) +/* 03D578 7F008A48 AC6F0004 */ sw $t7, 4($v1) +/* 03D57C 7F008A4C 00087900 */ sll $t7, $t0, 4 +/* 03D580 7F008A50 01E87823 */ subu $t7, $t7, $t0 +/* 03D584 7F008A54 000F7900 */ sll $t7, $t7, 4 +/* 03D588 7F008A58 01E7001A */ div $zero, $t7, $a3 +/* 03D58C 7F008A5C 3C0EF510 */ lui $t6, (0xF5101000 >> 16) # lui $t6, 0xf510 +/* 03D590 7F008A60 35CE1000 */ ori $t6, (0xF5101000 & 0xFFFF) # ori $t6, $t6, 0x1000 +/* 03D594 7F008A64 26100008 */ addiu $s0, $s0, 8 +/* 03D598 7F008A68 02002025 */ move $a0, $s0 +/* 03D59C 7F008A6C AC6E0000 */ sw $t6, ($v1) +/* 03D5A0 7F008A70 3C190007 */ lui $t9, (0x0007C07C >> 16) # lui $t9, 7 +/* 03D5A4 7F008A74 3739C07C */ ori $t9, (0x0007C07C & 0xFFFF) # ori $t9, $t9, 0xc07c +/* 03D5A8 7F008A78 26100008 */ addiu $s0, $s0, 8 +/* 03D5AC 7F008A7C 3C18F200 */ lui $t8, 0xf200 +/* 03D5B0 7F008A80 AC980000 */ sw $t8, ($a0) +/* 03D5B4 7F008A84 AC990004 */ sw $t9, 4($a0) +/* 03D5B8 7F008A88 02002825 */ move $a1, $s0 +/* 03D5BC 7F008A8C 3C0EFA00 */ lui $t6, 0xfa00 +/* 03D5C0 7F008A90 ACAE0000 */ sw $t6, ($a1) +/* 03D5C4 7F008A94 00087080 */ sll $t6, $t0, 2 +/* 03D5C8 7F008A98 01C87023 */ subu $t6, $t6, $t0 +/* 03D5CC 7F008A9C 000E7080 */ sll $t6, $t6, 2 +/* 03D5D0 7F008AA0 01C87021 */ addu $t6, $t6, $t0 +/* 03D5D4 7F008AA4 000E7100 */ sll $t6, $t6, 4 +/* 03D5D8 7F008AA8 00003012 */ mflo $a2 +/* 03D5DC 7F008AAC 30D800FF */ andi $t8, $a2, 0xff +/* 03D5E0 7F008AB0 03003025 */ move $a2, $t8 +/* 03D5E4 7F008AB4 01C7001A */ div $zero, $t6, $a3 +/* 03D5E8 7F008AB8 0018CE00 */ sll $t9, $t8, 0x18 +/* 03D5EC 7F008ABC 26100008 */ addiu $s0, $s0, 8 +/* 03D5F0 7F008AC0 14E00002 */ bnez $a3, .L7F008ACC +/* 03D5F4 7F008AC4 00000000 */ nop +/* 03D5F8 7F008AC8 0007000D */ break 7 +.L7F008ACC: +/* 03D5FC 7F008ACC 2401FFFF */ li $at, -1 +/* 03D600 7F008AD0 14E10004 */ bne $a3, $at, .L7F008AE4 +/* 03D604 7F008AD4 3C018000 */ lui $at, 0x8000 +/* 03D608 7F008AD8 15E10002 */ bne $t7, $at, .L7F008AE4 +/* 03D60C 7F008ADC 00000000 */ nop +/* 03D610 7F008AE0 0006000D */ break 6 +.L7F008AE4: +/* 03D614 7F008AE4 00007812 */ mflo $t7 +/* 03D618 7F008AE8 31F800FF */ andi $t8, $t7, 0xff +/* 03D61C 7F008AEC 14E00002 */ bnez $a3, .L7F008AF8 +/* 03D620 7F008AF0 00000000 */ nop +/* 03D624 7F008AF4 0007000D */ break 7 +.L7F008AF8: +/* 03D628 7F008AF8 2401FFFF */ li $at, -1 +/* 03D62C 7F008AFC 14E10004 */ bne $a3, $at, .L7F008B10 +/* 03D630 7F008B00 3C018000 */ lui $at, 0x8000 +/* 03D634 7F008B04 15C10002 */ bne $t6, $at, .L7F008B10 +/* 03D638 7F008B08 00000000 */ nop +/* 03D63C 7F008B0C 0006000D */ break 6 +.L7F008B10: +/* 03D640 7F008B10 00187400 */ sll $t6, $t8, 0x10 +/* 03D644 7F008B14 032E7825 */ or $t7, $t9, $t6 +/* 03D648 7F008B18 0006C200 */ sll $t8, $a2, 8 +/* 03D64C 7F008B1C 01F8C825 */ or $t9, $t7, $t8 +/* 03D650 7F008B20 372E00FF */ ori $t6, $t9, 0xff +/* 03D654 7F008B24 ACAE0004 */ sw $t6, 4($a1) +/* 03D658 7F008B28 3C180200 */ lui $t8, %hi(0x02004758) # $t8, 0x200 +/* 03D65C 7F008B2C 02001825 */ move $v1, $s0 +/* 03D660 7F008B30 27184758 */ addiu $t8, %lo(0x02004758) # addiu $t8, $t8, 0x4758 +/* 03D664 7F008B34 3C0F0600 */ lui $t7, 0x600 +/* 03D668 7F008B38 AC6F0000 */ sw $t7, ($v1) +/* 03D66C 7F008B3C AC780004 */ sw $t8, 4($v1) +/* 03D670 7F008B40 8FBF0034 */ lw $ra, 0x34($sp) +/* 03D674 7F008B44 26020008 */ addiu $v0, $s0, 8 +/* 03D678 7F008B48 8FB0002C */ lw $s0, 0x2c($sp) +/* 03D67C 7F008B4C 8FB10030 */ lw $s1, 0x30($sp) +/* 03D680 7F008B50 03E00008 */ jr $ra +/* 03D684 7F008B54 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F008B58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008B58 +/* 03D688 7F008B58 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03D68C 7F008B5C A020A7D4 */ sb $zero, %lo(D_8002A7D4)($at) +/* 03D690 7F008B60 3C01445C */ li $at, 0x445C0000 # 880.000000 +/* 03D694 7F008B64 44812000 */ mtc1 $at, $f4 +/* 03D698 7F008B68 3C018007 */ lui $at, %hi(x) +/* 03D69C 7F008B6C 3C0E0200 */ lui $t6, %hi(0x020067F0) # $t6, 0x200 +/* 03D6A0 7F008B70 E4249574 */ swc1 $f4, %lo(x)($at) +/* 03D6A4 7F008B74 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 03D6A8 7F008B78 44813000 */ mtc1 $at, $f6 +/* 03D6AC 7F008B7C 3C0F0200 */ lui $t7, 0x200 +/* 03D6B0 7F008B80 3C018003 */ lui $at, %hi(D_8002A89C) +/* 03D6B4 7F008B84 25EF0000 */ addiu $t7, $t7, 0 +/* 03D6B8 7F008B88 25CE67F0 */ addiu $t6, %lo(0x020067F0) # addiu $t6, $t6, 0x67f0 +/* 03D6BC 7F008B8C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03D6C0 7F008B90 01CF3023 */ subu $a2, $t6, $t7 +/* 03D6C4 7F008B94 E426A89C */ swc1 $f6, %lo(D_8002A89C)($at) +/* 03D6C8 7F008B98 AFA5001C */ sw $a1, 0x1c($sp) +/* 03D6CC 7F008B9C 3C028007 */ lui $v0, %hi(virtualaddress) +/* 03D6D0 7F008BA0 3C018003 */ lui $at, %hi(intro_eye_counter) +/* 03D6D4 7F008BA4 24C6003F */ addiu $a2, $a2, 0x3f +/* 03D6D8 7F008BA8 24429590 */ addiu $v0, %lo(virtualaddress) # addiu $v0, $v0, -0x6a70 +/* 03D6DC 7F008BAC AFBF0014 */ sw $ra, 0x14($sp) +/* 03D6E0 7F008BB0 AC20A8A0 */ sw $zero, %lo(intro_eye_counter)($at) +/* 03D6E4 7F008BB4 34D8003F */ ori $t8, $a2, 0x3f +/* 03D6E8 7F008BB8 3C05002A */ lui $a1, %hi(_GlobalimagetablecmdblkSegmentRomStart) # $a1, 0x2a +/* 03D6EC 7F008BBC AC440000 */ sw $a0, ($v0) +/* 03D6F0 7F008BC0 24A5E560 */ addiu $a1, %lo(_GlobalimagetablecmdblkSegmentRomStart) # addiu $a1, $a1, -0x1aa0 +/* 03D6F4 7F008BC4 0C001707 */ jal romCopy +/* 03D6F8 7F008BC8 3B06003F */ xori $a2, $t8, 0x3f +/* 03D6FC 7F008BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 03D700 7F008BD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03D704 7F008BD4 03E00008 */ jr $ra +/* 03D708 7F008BD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void retrieve_display_rareware_logo(void) { + +} +#else +GLOBAL_ASM( +.text +glabel retrieve_display_rareware_logo +/* 03D70C 7F008BDC 3C028003 */ lui $v0, %hi(D_8002A7D0) +/* 03D710 7F008BE0 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 +/* 03D714 7F008BE4 8C4E0000 */ lw $t6, ($v0) +/* 03D718 7F008BE8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03D71C 7F008BEC 240F0001 */ li $t7, 1 +/* 03D720 7F008BF0 AFB00020 */ sw $s0, 0x20($sp) +/* 03D724 7F008BF4 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00 +/* 03D728 7F008BF8 01EEC023 */ subu $t8, $t7, $t6 +/* 03D72C 7F008BFC AFBF0024 */ sw $ra, 0x24($sp) +/* 03D730 7F008C00 AC580000 */ sw $t8, ($v0) +/* 03D734 7F008C04 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806 +/* 03D738 7F008C08 AC990000 */ sw $t9, ($a0) +/* 03D73C 7F008C0C 24900008 */ addiu $s0, $a0, 8 +/* 03D740 7F008C10 00801825 */ move $v1, $a0 +/* 03D744 7F008C14 3C048007 */ lui $a0, %hi(virtualaddress) +/* 03D748 7F008C18 8C849590 */ lw $a0, %lo(virtualaddress)($a0) +/* 03D74C 7F008C1C 0C003A2C */ jal osVirtualToPhysical +/* 03D750 7F008C20 AFA3002C */ sw $v1, 0x2c($sp) +/* 03D754 7F008C24 8FA3002C */ lw $v1, 0x2c($sp) +/* 03D758 7F008C28 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03D75C 7F008C2C 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c +/* 03D760 7F008C30 AC620004 */ sw $v0, 4($v1) +/* 03D764 7F008C34 91240000 */ lbu $a0, ($t1) +/* 03D768 7F008C38 3C088003 */ lui $t0, %hi(intro_eye_counter) +/* 03D76C 7F008C3C 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 +/* 03D770 7F008C40 50800005 */ beql $a0, $zero, .L7F008C58 +/* 03D774 7F008C44 8D0B0000 */ lw $t3, ($t0) +/* 03D778 7F008C48 24010001 */ li $at, 1 +/* 03D77C 7F008C4C 5481005C */ bnel $a0, $at, .L7F008DC0 +/* 03D780 7F008C50 8FBF0024 */ lw $ra, 0x24($sp) +/* 03D784 7F008C54 8D0B0000 */ lw $t3, ($t0) +.L7F008C58: +/* 03D788 7F008C58 240A00FF */ li $t2, 255 +/* 03D78C 7F008C5C 24050046 */ li $a1, 70 +/* 03D790 7F008C60 016A0019 */ multu $t3, $t2 +/* 03D794 7F008C64 00002012 */ mflo $a0 +/* 03D798 7F008C68 00000000 */ nop +/* 03D79C 7F008C6C 00000000 */ nop +/* 03D7A0 7F008C70 0085001A */ div $zero, $a0, $a1 +/* 03D7A4 7F008C74 14A00002 */ bnez $a1, .L7F008C80 +/* 03D7A8 7F008C78 00000000 */ nop +/* 03D7AC 7F008C7C 0007000D */ break 7 +.L7F008C80: +/* 03D7B0 7F008C80 2401FFFF */ li $at, -1 +/* 03D7B4 7F008C84 14A10004 */ bne $a1, $at, .L7F008C98 +/* 03D7B8 7F008C88 3C018000 */ lui $at, 0x8000 +/* 03D7BC 7F008C8C 14810002 */ bne $a0, $at, .L7F008C98 +/* 03D7C0 7F008C90 00000000 */ nop +/* 03D7C4 7F008C94 0006000D */ break 6 +.L7F008C98: +/* 03D7C8 7F008C98 00001812 */ mflo $v1 +/* 03D7CC 7F008C9C 28610100 */ slti $at, $v1, 0x100 +/* 03D7D0 7F008CA0 14200002 */ bnez $at, .L7F008CAC +/* 03D7D4 7F008CA4 00000000 */ nop +/* 03D7D8 7F008CA8 01401825 */ move $v1, $t2 +.L7F008CAC: +/* 03D7DC 7F008CAC 04610002 */ bgez $v1, .L7F008CB8 +/* 03D7E0 7F008CB0 3C01FFFF */ lui $at, (0xFFFF60A0 >> 16) # lui $at, 0xffff +/* 03D7E4 7F008CB4 00001825 */ move $v1, $zero +.L7F008CB8: +/* 03D7E8 7F008CB8 342160A0 */ ori $at, (0xFFFF60A0 & 0xFFFF) # ori $at, $at, 0x60a0 +/* 03D7EC 7F008CBC 00816021 */ addu $t4, $a0, $at +/* 03D7F0 7F008CC0 0185001A */ div $zero, $t4, $a1 +/* 03D7F4 7F008CC4 14A00002 */ bnez $a1, .L7F008CD0 +/* 03D7F8 7F008CC8 00000000 */ nop +/* 03D7FC 7F008CCC 0007000D */ break 7 +.L7F008CD0: +/* 03D800 7F008CD0 2401FFFF */ li $at, -1 +/* 03D804 7F008CD4 14A10004 */ bne $a1, $at, .L7F008CE8 +/* 03D808 7F008CD8 3C018000 */ lui $at, 0x8000 +/* 03D80C 7F008CDC 15810002 */ bne $t4, $at, .L7F008CE8 +/* 03D810 7F008CE0 00000000 */ nop +/* 03D814 7F008CE4 0006000D */ break 6 +.L7F008CE8: +/* 03D818 7F008CE8 00006812 */ mflo $t5 +/* 03D81C 7F008CEC 014D1023 */ subu $v0, $t2, $t5 +/* 03D820 7F008CF0 28410100 */ slti $at, $v0, 0x100 +/* 03D824 7F008CF4 14200002 */ bnez $at, .L7F008D00 +/* 03D828 7F008CF8 00000000 */ nop +/* 03D82C 7F008CFC 01401025 */ move $v0, $t2 +.L7F008D00: +/* 03D830 7F008D00 04410002 */ bgez $v0, .L7F008D0C +/* 03D834 7F008D04 00000000 */ nop +/* 03D838 7F008D08 00001025 */ move $v0, $zero +.L7F008D0C: +/* 03D83C 7F008D0C 00620019 */ multu $v1, $v0 +/* 03D840 7F008D10 3C018007 */ lui $at, %hi(x) +/* 03D844 7F008D14 C4249574 */ lwc1 $f4, %lo(x)($at) +/* 03D848 7F008D18 02002025 */ move $a0, $s0 +/* 03D84C 7F008D1C 24050193 */ li $a1, 403 +/* 03D850 7F008D20 4600218D */ trunc.w.s $f6, $f4 +/* 03D854 7F008D24 240601E8 */ li $a2, 488 +/* 03D858 7F008D28 44073000 */ mfc1 $a3, $f6 +/* 03D85C 7F008D2C 00007012 */ mflo $t6 +/* 03D860 7F008D30 00000000 */ nop +/* 03D864 7F008D34 00000000 */ nop +/* 03D868 7F008D38 01CA001A */ div $zero, $t6, $t2 +/* 03D86C 7F008D3C 0000C012 */ mflo $t8 +/* 03D870 7F008D40 AFB80010 */ sw $t8, 0x10($sp) +/* 03D874 7F008D44 15400002 */ bnez $t2, .L7F008D50 +/* 03D878 7F008D48 00000000 */ nop +/* 03D87C 7F008D4C 0007000D */ break 7 +.L7F008D50: +/* 03D880 7F008D50 2401FFFF */ li $at, -1 +/* 03D884 7F008D54 15410004 */ bne $t2, $at, .L7F008D68 +/* 03D888 7F008D58 3C018000 */ lui $at, 0x8000 +/* 03D88C 7F008D5C 15C10002 */ bne $t6, $at, .L7F008D68 +/* 03D890 7F008D60 00000000 */ nop +/* 03D894 7F008D64 0006000D */ break 6 +.L7F008D68: +/* 03D898 7F008D68 0FC02130 */ jal load_display_rare_logo +/* 03D89C 7F008D6C 00000000 */ nop +/* 03D8A0 7F008D70 3C088003 */ lui $t0, %hi(intro_eye_counter) +/* 03D8A4 7F008D74 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 +/* 03D8A8 7F008D78 8D030000 */ lw $v1, ($t0) +/* 03D8AC 7F008D7C 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03D8B0 7F008D80 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c +/* 03D8B4 7F008D84 28640104 */ slti $a0, $v1, 0x104 +/* 03D8B8 7F008D88 24790001 */ addiu $t9, $v1, 1 +/* 03D8BC 7F008D8C 00408025 */ move $s0, $v0 +/* 03D8C0 7F008D90 1480000A */ bnez $a0, .L7F008DBC +/* 03D8C4 7F008D94 AD190000 */ sw $t9, ($t0) +/* 03D8C8 7F008D98 2B210122 */ slti $at, $t9, 0x122 +/* 03D8CC 7F008D9C 54200008 */ bnezl $at, .L7F008DC0 +/* 03D8D0 7F008DA0 8FBF0024 */ lw $ra, 0x24($sp) +/* 03D8D4 7F008DA4 912C0000 */ lbu $t4, ($t1) +/* 03D8D8 7F008DA8 AD000000 */ sw $zero, ($t0) +/* 03D8DC 7F008DAC 258F0001 */ addiu $t7, $t4, 1 +/* 03D8E0 7F008DB0 A12F0000 */ sb $t7, ($t1) +/* 03D8E4 7F008DB4 25EE0001 */ addiu $t6, $t7, 1 +/* 03D8E8 7F008DB8 A12E0000 */ sb $t6, ($t1) +.L7F008DBC: +/* 03D8EC 7F008DBC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F008DC0: +/* 03D8F0 7F008DC0 02001025 */ move $v0, $s0 +/* 03D8F4 7F008DC4 8FB00020 */ lw $s0, 0x20($sp) +/* 03D8F8 7F008DC8 03E00008 */ jr $ra +/* 03D8FC 7F008DCC 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +s32 sub_GAME_7F008DD0(void) +{ + return (D_8002A7D4 == 2); +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F008DE4(void *arg0, void *arg1) +{ + + dword_CODE_bss_8006958C = (s32) *arg0; + *arg1 = (s32) (*arg1 + -0x40400); + *arg0 = *arg0 + 0x40400; + + dword_CODE_bss_80069588 = arg0; + romCopy(arg0, &unknown2, (((&unknown2_end - &unknown2) + 0x3F) | 0x3F) ^ 0x3F); + sub_GAME_7F01B0E0(dword_CODE_bss_80069588, dword_CODE_bss_8006958C); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008DE4 +/* 03D914 7F008DE4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03D918 7F008DE8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03D91C 7F008DEC AFA5001C */ sw $a1, 0x1c($sp) +/* 03D920 7F008DF0 8C8E0000 */ lw $t6, ($a0) +/* 03D924 7F008DF4 3C018007 */ lui $at, %hi(dword_CODE_bss_8006958C) +/* 03D928 7F008DF8 3C03002A */ lui $v1, %hi(unknown2) # $v1, 0x2a +/* 03D92C 7F008DFC AC2E958C */ sw $t6, %lo(dword_CODE_bss_8006958C)($at) +/* 03D930 7F008E00 8CB80000 */ lw $t8, ($a1) +/* 03D934 7F008E04 3C01FFFB */ lui $at, (0xFFFBFC00 >> 16) # lui $at, 0xfffb +/* 03D938 7F008E08 3421FC00 */ ori $at, (0xFFFBFC00 & 0xFFFF) # ori $at, $at, 0xfc00 +/* 03D93C 7F008E0C 0301C821 */ addu $t9, $t8, $at +/* 03D940 7F008E10 ACB90000 */ sw $t9, ($a1) +/* 03D944 7F008E14 8C880000 */ lw $t0, ($a0) +/* 03D948 7F008E18 3C0B002C */ lui $t3, %hi(_ramromDam1SegmentRomStart) # $t3, 0x2c +/* 03D94C 7F008E1C 24634D50 */ addiu $v1, %lo(unknown2) # addiu $v1, $v1, 0x4d50 +/* 03D950 7F008E20 3C010004 */ lui $at, (0x00040400 >> 16) # lui $at, 4 +/* 03D954 7F008E24 256BF2D0 */ addiu $t3, %lo(_ramromDam1SegmentRomStart) # addiu $t3, $t3, -0xd30 +/* 03D958 7F008E28 34210400 */ ori $at, (0x00040400 & 0xFFFF) # ori $at, $at, 0x400 +/* 03D95C 7F008E2C 01633023 */ subu $a2, $t3, $v1 +/* 03D960 7F008E30 3C028007 */ lui $v0, %hi(dword_CODE_bss_80069588) +/* 03D964 7F008E34 24C6003F */ addiu $a2, $a2, 0x3f +/* 03D968 7F008E38 01014821 */ addu $t1, $t0, $at +/* 03D96C 7F008E3C 24429588 */ addiu $v0, %lo(dword_CODE_bss_80069588) # addiu $v0, $v0, -0x6a78 +/* 03D970 7F008E40 AC890000 */ sw $t1, ($a0) +/* 03D974 7F008E44 34CC003F */ ori $t4, $a2, 0x3f +/* 03D978 7F008E48 AC490000 */ sw $t1, ($v0) +/* 03D97C 7F008E4C 3986003F */ xori $a2, $t4, 0x3f +/* 03D980 7F008E50 01202025 */ move $a0, $t1 +/* 03D984 7F008E54 0C001707 */ jal romCopy +/* 03D988 7F008E58 00602825 */ move $a1, $v1 +/* 03D98C 7F008E5C 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069588) +/* 03D990 7F008E60 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006958C) +/* 03D994 7F008E64 8CA5958C */ lw $a1, %lo(dword_CODE_bss_8006958C)($a1) +/* 03D998 7F008E68 0FC06C38 */ jal sub_GAME_7F01B0E0 +/* 03D99C 7F008E6C 8C849588 */ lw $a0, %lo(dword_CODE_bss_80069588)($a0) +/* 03D9A0 7F008E70 8FBF0014 */ lw $ra, 0x14($sp) +/* 03D9A4 7F008E74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03D9A8 7F008E78 03E00008 */ jr $ra +/* 03D9AC 7F008E7C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F008E80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008E80 +/* 03D9B0 7F008E80 240E0002 */ li $t6, 2 +/* 03D9B4 7F008E84 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03D9B8 7F008E88 A02EA7D4 */ sb $t6, %lo(D_8002A7D4)($at) +/* 03D9BC 7F008E8C 3C014470 */ li $at, 0x44700000 # 960.000000 +/* 03D9C0 7F008E90 44812000 */ mtc1 $at, $f4 +/* 03D9C4 7F008E94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 03D9C8 7F008E98 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03D9CC 7F008E9C 44813000 */ mtc1 $at, $f6 +/* 03D9D0 7F008EA0 44800000 */ mtc1 $zero, $f0 +/* 03D9D4 7F008EA4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 03D9D8 7F008EA8 44814000 */ mtc1 $at, $f8 +/* 03D9DC 7F008EAC 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 03D9E0 7F008EB0 44815000 */ mtc1 $at, $f10 +/* 03D9E4 7F008EB4 AFA40060 */ sw $a0, 0x60($sp) +/* 03D9E8 7F008EB8 AFA50064 */ sw $a1, 0x64($sp) +/* 03D9EC 7F008EBC AFBF002C */ sw $ra, 0x2c($sp) +/* 03D9F0 7F008EC0 3C048007 */ lui $a0, %hi(matrix_buffer_gunbarrel_0) +/* 03D9F4 7F008EC4 44050000 */ mfc1 $a1, $f0 +/* 03D9F8 7F008EC8 44070000 */ mfc1 $a3, $f0 +/* 03D9FC 7F008ECC AFB10028 */ sw $s1, 0x28($sp) +/* 03DA00 7F008ED0 AFB00024 */ sw $s0, 0x24($sp) +/* 03DA04 7F008ED4 8C84955C */ lw $a0, %lo(matrix_buffer_gunbarrel_0)($a0) +/* 03DA08 7F008ED8 3C0644A0 */ lui $a2, 0x44a0 +/* 03DA0C 7F008EDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 03DA10 7F008EE0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 03DA14 7F008EE4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03DA18 7F008EE8 0C005AF1 */ jal guOrtho +/* 03DA1C 7F008EEC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03DA20 7F008EF0 3C0143F1 */ li $at, 0x43F10000 # 482.000000 +/* 03DA24 7F008EF4 44810000 */ mtc1 $at, $f0 +/* 03DA28 7F008EF8 3C01C1F0 */ li $at, 0xC1F00000 # -30.000000 +/* 03DA2C 7F008EFC 44818000 */ mtc1 $at, $f16 +/* 03DA30 7F008F00 3C018007 */ lui $at, %hi(x) +/* 03DA34 7F008F04 8FA20060 */ lw $v0, 0x60($sp) +/* 03DA38 7F008F08 E4309574 */ swc1 $f16, %lo(x)($at) +/* 03DA3C 7F008F0C 3C018007 */ lui $at, %hi(y) +/* 03DA40 7F008F10 E4209578 */ swc1 $f0, %lo(y)($at) +/* 03DA44 7F008F14 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 03DA48 7F008F18 44819000 */ mtc1 $at, $f18 +/* 03DA4C 7F008F1C 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03DA50 7F008F20 8FB80064 */ lw $t8, 0x64($sp) +/* 03DA54 7F008F24 E432957C */ swc1 $f18, %lo(dword_CODE_bss_8006957C)($at) +/* 03DA58 7F008F28 3C018007 */ lui $at, %hi(dword_CODE_bss_80069580) +/* 03DA5C 7F008F2C E4209580 */ swc1 $f0, %lo(dword_CODE_bss_80069580)($at) +/* 03DA60 7F008F30 3C108007 */ lui $s0, %hi(dword_CODE_bss_80069550) +/* 03DA64 7F008F34 3C018007 */ lui $at, %hi(word_CODE_bss_80069584) +/* 03DA68 7F008F38 240F0042 */ li $t7, 66 +/* 03DA6C 7F008F3C 26109550 */ addiu $s0, %lo(dword_CODE_bss_80069550) # addiu $s0, $s0, -0x6ab0 +/* 03DA70 7F008F40 A42F9584 */ sh $t7, %lo(word_CODE_bss_80069584)($at) +/* 03DA74 7F008F44 AE020000 */ sw $v0, ($s0) +/* 03DA78 7F008F48 24420200 */ addiu $v0, $v0, 0x200 +/* 03DA7C 7F008F4C 2719FE00 */ addiu $t9, $t8, -0x200 +/* 03DA80 7F008F50 AFB90064 */ sw $t9, 0x64($sp) +/* 03DA84 7F008F54 AFA20060 */ sw $v0, 0x60($sp) +/* 03DA88 7F008F58 8E040000 */ lw $a0, ($s0) +/* 03DA8C 7F008F5C 0FC06EB8 */ jal sub_GAME_7F01BAE0 +/* 03DA90 7F008F60 2405001E */ li $a1, 30 +/* 03DA94 7F008F64 8FA30060 */ lw $v1, 0x60($sp) +/* 03DA98 7F008F68 8FA80064 */ lw $t0, 0x64($sp) +/* 03DA9C 7F008F6C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80069554) +/* 03DAA0 7F008F70 24429554 */ addiu $v0, %lo(dword_CODE_bss_80069554) # addiu $v0, $v0, -0x6aac +/* 03DAA4 7F008F74 8E050000 */ lw $a1, ($s0) +/* 03DAA8 7F008F78 AC430000 */ sw $v1, ($v0) +/* 03DAAC 7F008F7C 3C018000 */ lui $at, 0x8000 +/* 03DAB0 7F008F80 24630100 */ addiu $v1, $v1, 0x100 +/* 03DAB4 7F008F84 2509FF00 */ addiu $t1, $t0, -0x100 +/* 03DAB8 7F008F88 AFA90064 */ sw $t1, 0x64($sp) +/* 03DABC 7F008F8C AFA30060 */ sw $v1, 0x60($sp) +/* 03DAC0 7F008F90 8C440000 */ lw $a0, ($v0) +/* 03DAC4 7F008F94 2406001E */ li $a2, 30 +/* 03DAC8 7F008F98 0FC06FFE */ jal sub_GAME_7F01BFF8 +/* 03DACC 7F008F9C 00A12821 */ addu $a1, $a1, $at +/* 03DAD0 7F008FA0 27A40060 */ addiu $a0, $sp, 0x60 +/* 03DAD4 7F008FA4 0FC02379 */ jal sub_GAME_7F008DE4 +/* 03DAD8 7F008FA8 27A50064 */ addiu $a1, $sp, 0x64 +/* 03DADC 7F008FAC 3C0B8003 */ lui $t3, %hi(D_8002A8A8) +/* 03DAE0 7F008FB0 256BA8A8 */ addiu $t3, %lo(D_8002A8A8) # addiu $t3, $t3, -0x5758 +/* 03DAE4 7F008FB4 8D610000 */ lw $at, ($t3) +/* 03DAE8 7F008FB8 27AA0050 */ addiu $t2, $sp, 0x50 +/* 03DAEC 7F008FBC 8D6E0004 */ lw $t6, 4($t3) +/* 03DAF0 7F008FC0 AD410000 */ sw $at, ($t2) +/* 03DAF4 7F008FC4 8D610008 */ lw $at, 8($t3) +/* 03DAF8 7F008FC8 3C110001 */ lui $s1, (0x00012C00 >> 16) # lui $s1, 1 +/* 03DAFC 7F008FCC 36312C00 */ ori $s1, (0x00012C00 & 0xFFFF) # ori $s1, $s1, 0x2c00 +/* 03DB00 7F008FD0 AD4E0004 */ sw $t6, 4($t2) +/* 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 +/* 03DB14 7F008FE4 27A40040 */ addiu $a0, $sp, 0x40 +/* 03DB18 7F008FE8 8FA60060 */ lw $a2, 0x60($sp) +/* 03DB1C 7F008FEC 8FA70064 */ lw $a3, 0x64($sp) +/* 03DB20 7F008FF0 3C108004 */ lui $s0, %hi(c_item_entries) +/* 03DB24 7F008FF4 2610DE10 */ addiu $s0, %lo(c_item_entries) # addiu $s0, $s0, -0x21f0 +/* 03DB28 7F008FF8 27AF0040 */ addiu $t7, $sp, 0x40 +/* 03DB2C 7F008FFC 00D13021 */ addu $a2, $a2, $s1 +/* 03DB30 7F009000 00F13823 */ subu $a3, $a3, $s1 +/* 03DB34 7F009004 AFA70064 */ sw $a3, 0x64($sp) +/* 03DB38 7F009008 AFA60060 */ sw $a2, 0x60($sp) +/* 03DB3C 7F00900C AFAF0010 */ sw $t7, 0x10($sp) +/* 03DB40 7F009010 8E040064 */ lw $a0, 0x64($s0) +/* 03DB44 7F009014 0FC1D929 */ jal load_object_fill_header +/* 03DB48 7F009018 8E050068 */ lw $a1, 0x68($s0) +/* 03DB4C 7F00901C 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DB50 7F009020 8E040068 */ lw $a0, 0x68($s0) +/* 03DB54 7F009024 2443003F */ addiu $v1, $v0, 0x3f +/* 03DB58 7F009028 8FA60060 */ lw $a2, 0x60($sp) +/* 03DB5C 7F00902C 8FA70064 */ lw $a3, 0x64($sp) +/* 03DB60 7F009030 3478003F */ ori $t8, $v1, 0x3f +/* 03DB64 7F009034 3B19003F */ xori $t9, $t8, 0x3f +/* 03DB68 7F009038 27A80040 */ addiu $t0, $sp, 0x40 +/* 03DB6C 7F00903C 00D93021 */ addu $a2, $a2, $t9 +/* 03DB70 7F009040 00F93823 */ subu $a3, $a3, $t9 +/* 03DB74 7F009044 AFA70064 */ sw $a3, 0x64($sp) +/* 03DB78 7F009048 AFA60060 */ sw $a2, 0x60($sp) +/* 03DB7C 7F00904C AFA80010 */ sw $t0, 0x10($sp) +/* 03DB80 7F009050 8E040618 */ lw $a0, 0x618($s0) +/* 03DB84 7F009054 0FC1D929 */ jal load_object_fill_header +/* 03DB88 7F009058 8E05061C */ lw $a1, 0x61c($s0) +/* 03DB8C 7F00905C 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DB90 7F009060 8E04061C */ lw $a0, 0x61c($s0) +/* 03DB94 7F009064 2443003F */ addiu $v1, $v0, 0x3f +/* 03DB98 7F009068 8FAC0064 */ lw $t4, 0x64($sp) +/* 03DB9C 7F00906C 8FAB0060 */ lw $t3, 0x60($sp) +/* 03DBA0 7F009070 3469003F */ ori $t1, $v1, 0x3f +/* 03DBA4 7F009074 392D003F */ xori $t5, $t1, 0x3f +/* 03DBA8 7F009078 018D5023 */ subu $t2, $t4, $t5 +/* 03DBAC 7F00907C 016D7021 */ addu $t6, $t3, $t5 +/* 03DBB0 7F009080 AFAA0064 */ sw $t2, 0x64($sp) +/* 03DBB4 7F009084 AFAE0060 */ sw $t6, 0x60($sp) +/* 03DBB8 7F009088 24040005 */ li $a0, 5 +/* 03DBBC 7F00908C 2405004E */ li $a1, 78 +/* 03DBC0 7F009090 8E060064 */ lw $a2, 0x64($s0) +/* 03DBC4 7F009094 8E070618 */ lw $a3, 0x618($s0) +/* 03DBC8 7F009098 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 03DBCC 7F00909C AFA00010 */ sw $zero, 0x10($sp) +/* 03DBD0 7F0090A0 3C118003 */ lui $s1, %hi(D_8002A7F4) +/* 03DBD4 7F0090A4 2631A7F4 */ addiu $s1, %lo(D_8002A7F4) # addiu $s1, $s1, -0x580c +/* 03DBD8 7F0090A8 3C053E40 */ lui $a1, (0x3E404CEC >> 16) # lui $a1, 0x3e40 +/* 03DBDC 7F0090AC AE220000 */ sw $v0, ($s1) +/* 03DBE0 7F0090B0 34A54CEC */ ori $a1, (0x3E404CEC & 0xFFFF) # ori $a1, $a1, 0x4cec +/* 03DBE4 7F0090B4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03DBE8 7F0090B8 00402025 */ move $a0, $v0 +/* 03DBEC 7F0090BC 8E240000 */ lw $a0, ($s1) +/* 03DBF0 7F0090C0 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 03DBF4 7F0090C4 3C053F80 */ lui $a1, 0x3f80 +/* 03DBF8 7F0090C8 8E240000 */ lw $a0, ($s1) +/* 03DBFC 7F0090CC 0FC1B303 */ jal setsuboffset +/* 03DC00 7F0090D0 27A50050 */ addiu $a1, $sp, 0x50 +/* 03DC04 7F0090D4 8E240000 */ lw $a0, ($s1) +/* 03DC08 7F0090D8 0FC1B34F */ jal setsubroty +/* 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 +/* 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) +/* 03DC28 7F0090F8 3C180000 */ lui $t8, 0 +/* 03DC2C 7F0090FC 27184144 */ addiu $t8, $t8, 0x4144 +/* 03DC30 7F009100 01F82821 */ addu $a1, $t7, $t8 +/* 03DC34 7F009104 94A30004 */ lhu $v1, 4($a1) +/* 03DC38 7F009108 2462FFBC */ addiu $v0, $v1, -0x44 +/* 03DC3C 7F00910C 04430005 */ bgezl $v0, .L7F009124 +/* 03DC40 7F009110 44822000 */ mtc1 $v0, $f4 +/* 03DC44 7F009114 00431021 */ addu $v0, $v0, $v1 +.L7F009118: +/* 03DC48 7F009118 0442FFFF */ bltzl $v0, .L7F009118 +/* 03DC4C 7F00911C 00431021 */ addu $v0, $v0, $v1 +/* 03DC50 7F009120 44822000 */ mtc1 $v0, $f4 +.L7F009124: +/* 03DC54 7F009124 3C018005 */ lui $at, %hi(D_8004F2DC) +/* 03DC58 7F009128 C426F2DC */ lwc1 $f6, %lo(D_8004F2DC)($at) +/* 03DC5C 7F00912C 46802120 */ cvt.s.w $f4, $f4 +/* 03DC60 7F009130 44804000 */ mtc1 $zero, $f8 +/* 03DC64 7F009134 8E240000 */ lw $a0, ($s1) +/* 03DC68 7F009138 00003025 */ move $a2, $zero +/* 03DC6C 7F00913C E7A60010 */ swc1 $f6, 0x10($sp) +/* 03DC70 7F009140 E7A80014 */ swc1 $f8, 0x14($sp) +/* 03DC74 7F009144 44072000 */ mfc1 $a3, $f4 +/* 03DC78 7F009148 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03DC7C 7F00914C 00000000 */ nop +/* 03DC80 7F009150 3C108004 */ lui $s0, %hi(PitemZ_entries) +/* 03DC84 7F009154 2610A228 */ addiu $s0, %lo(PitemZ_entries) # addiu $s0, $s0, -0x5dd8 +/* 03DC88 7F009158 27B90040 */ addiu $t9, $sp, 0x40 +/* 03DC8C 7F00915C AFB90010 */ sw $t9, 0x10($sp) +/* 03DC90 7F009160 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DC94 7F009164 8E0508F8 */ lw $a1, 0x8f8($s0) +/* 03DC98 7F009168 8FA60060 */ lw $a2, 0x60($sp) +/* 03DC9C 7F00916C 0FC1D929 */ jal load_object_fill_header +/* 03DCA0 7F009170 8FA70064 */ lw $a3, 0x64($sp) +/* 03DCA4 7F009174 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DCA8 7F009178 8E0408F8 */ lw $a0, 0x8f8($s0) +/* 03DCAC 7F00917C 2443003F */ addiu $v1, $v0, 0x3f +/* 03DCB0 7F009180 8FAD0064 */ lw $t5, 0x64($sp) +/* 03DCB4 7F009184 8FAA0060 */ lw $t2, 0x60($sp) +/* 03DCB8 7F009188 3468003F */ ori $t0, $v1, 0x3f +/* 03DCBC 7F00918C 3909003F */ xori $t1, $t0, 0x3f +/* 03DCC0 7F009190 01A96023 */ subu $t4, $t5, $t1 +/* 03DCC4 7F009194 01495821 */ addu $t3, $t2, $t1 +/* 03DCC8 7F009198 AFAC0064 */ sw $t4, 0x64($sp) +/* 03DCCC 7F00919C AFAB0060 */ sw $t3, 0x60($sp) +/* 03DCD0 7F0091A0 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03DCD4 7F0091A4 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DCD8 7F0091A8 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03DCDC 7F0091AC 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DCE0 7F0091B0 3C108003 */ lui $s0, %hi(D_8002A7F8) +/* 03DCE4 7F0091B4 2610A7F8 */ addiu $s0, %lo(D_8002A7F8) # addiu $s0, $s0, -0x5808 +/* 03DCE8 7F0091B8 3C053E40 */ lui $a1, (0x3E404CEC >> 16) # lui $a1, 0x3e40 +/* 03DCEC 7F0091BC AE020000 */ sw $v0, ($s0) +/* 03DCF0 7F0091C0 34A54CEC */ ori $a1, (0x3E404CEC & 0xFFFF) # ori $a1, $a1, 0x4cec +/* 03DCF4 7F0091C4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03DCF8 7F0091C8 00402025 */ move $a0, $v0 +/* 03DCFC 7F0091CC 8E2E0000 */ lw $t6, ($s1) +/* 03DD00 7F0091D0 8E0F0000 */ lw $t7, ($s0) +/* 03DD04 7F0091D4 3C018007 */ lui $at, %hi(dword_CODE_bss_80069594) +/* 03DD08 7F0091D8 ADEE0018 */ sw $t6, 0x18($t7) +/* 03DD0C 7F0091DC 8E380000 */ lw $t8, ($s1) +/* 03DD10 7F0091E0 8E0D0000 */ lw $t5, ($s0) +/* 03DD14 7F0091E4 8F190008 */ lw $t9, 8($t8) +/* 03DD18 7F0091E8 8F280008 */ lw $t0, 8($t9) +/* 03DD1C 7F0091EC 8D09000C */ lw $t1, 0xc($t0) +/* 03DD20 7F0091F0 ADA9001C */ sw $t1, 0x1c($t5) +/* 03DD24 7F0091F4 8FBF002C */ lw $ra, 0x2c($sp) +/* 03DD28 7F0091F8 8FB10028 */ lw $s1, 0x28($sp) +/* 03DD2C 7F0091FC 8FB00024 */ lw $s0, 0x24($sp) +/* 03DD30 7F009200 AC209594 */ sw $zero, %lo(dword_CODE_bss_80069594)($at) +/* 03DD34 7F009204 03E00008 */ jr $ra +/* 03DD38 7F009208 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + +void sub_GAME_7F00920C(void) +{ + if (D_8002A7F4) { + set_aircraft_obj_inst_scale_to_zero(D_8002A7F4); + } + if (D_8002A7F8) { + set_obj_instance_scale_to_zero(D_8002A7F8); + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F009254(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_8004F2E0 + .word .L7F0092A4 + .word .L7F009344 + .word .L7F009428 + .word .L7F00949C + .word .L7F009550 + .word .L7F009610 + .word .L7F0096D8 +glabel D_8004F2FC +.word 0x44adc000 +glabel D_8004F300 +.word 0x449f8000 +glabel D_8004F304 +.word 0x40ba2fbd +.text +glabel sub_GAME_7F009254 +/* 03DD84 7F009254 3C028003 */ lui $v0, %hi(D_8002A7D0) +/* 03DD88 7F009258 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 +/* 03DD8C 7F00925C 8C4E0000 */ lw $t6, ($v0) +/* 03DD90 7F009260 240F0001 */ li $t7, 1 +/* 03DD94 7F009264 3C198003 */ lui $t9, %hi(D_8002A7D4) +/* 03DD98 7F009268 01EEC023 */ subu $t8, $t7, $t6 +/* 03DD9C 7F00926C AC580000 */ sw $t8, ($v0) +/* 03DDA0 7F009270 9339A7D4 */ lbu $t9, %lo(D_8002A7D4)($t9) +/* 03DDA4 7F009274 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03DDA8 7F009278 AFBF0014 */ sw $ra, 0x14($sp) +/* 03DDAC 7F00927C 2728FFFE */ addiu $t0, $t9, -2 +/* 03DDB0 7F009280 2D010007 */ sltiu $at, $t0, 7 +/* 03DDB4 7F009284 1020012A */ beqz $at, .L7F009730 +/* 03DDB8 7F009288 00802825 */ move $a1, $a0 +/* 03DDBC 7F00928C 00084080 */ sll $t0, $t0, 2 +/* 03DDC0 7F009290 3C018005 */ lui $at, %hi(jpt_8004F2E0) +/* 03DDC4 7F009294 00280821 */ addu $at, $at, $t0 +/* 03DDC8 7F009298 8C28F2E0 */ lw $t0, %lo(jpt_8004F2E0)($at) +/* 03DDCC 7F00929C 01000008 */ jr $t0 +/* 03DDD0 7F0092A0 00000000 */ nop +.L7F0092A4: +/* 03DDD4 7F0092A4 0FC01E90 */ jal something_with_gunbarrel_and_rareware_logo_matrix_manip +/* 03DDD8 7F0092A8 00A02025 */ move $a0, $a1 +/* 03DDDC 7F0092AC 3C078007 */ lui $a3, %hi(x) +/* 03DDE0 7F0092B0 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DDE4 7F0092B4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 03DDE8 7F0092B8 44813000 */ mtc1 $at, $f6 +/* 03DDEC 7F0092BC C4E40000 */ lwc1 $f4, ($a3) +/* 03DDF0 7F0092C0 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03DDF4 7F0092C4 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03DDF8 7F0092C8 46062200 */ add.s $f8, $f4, $f6 +/* 03DDFC 7F0092CC 84640000 */ lh $a0, ($v1) +/* 03DE00 7F0092D0 00402825 */ move $a1, $v0 +/* 03DE04 7F0092D4 0481000A */ bgez $a0, .L7F009300 +/* 03DE08 7F0092D8 E4E80000 */ swc1 $f8, ($a3) +/* 03DE0C 7F0092DC 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 03DE10 7F0092E0 44815000 */ mtc1 $at, $f10 +/* 03DE14 7F0092E4 C4E00000 */ lwc1 $f0, ($a3) +/* 03DE18 7F0092E8 240900C8 */ li $t1, 200 +/* 03DE1C 7F0092EC A4690000 */ sh $t1, ($v1) +/* 03DE20 7F0092F0 460A0401 */ sub.s $f16, $f0, $f10 +/* 03DE24 7F0092F4 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03DE28 7F0092F8 10000004 */ b .L7F00930C +/* 03DE2C 7F0092FC E430957C */ swc1 $f16, %lo(dword_CODE_bss_8006957C)($at) +.L7F009300: +/* 03DE30 7F009300 248AFFFA */ addiu $t2, $a0, -6 +/* 03DE34 7F009304 A46A0000 */ sh $t2, ($v1) +/* 03DE38 7F009308 C4E00000 */ lwc1 $f0, ($a3) +.L7F00930C: +/* 03DE3C 7F00930C 3C018005 */ lui $at, %hi(D_8004F2FC) +/* 03DE40 7F009310 C432F2FC */ lwc1 $f18, %lo(D_8004F2FC)($at) +/* 03DE44 7F009314 4600903C */ c.lt.s $f18, $f0 +/* 03DE48 7F009318 00000000 */ nop +/* 03DE4C 7F00931C 45000104 */ bc1f .L7F009730 +/* 03DE50 7F009320 3C0B8003 */ lui $t3, %hi(D_8002A7D4) +/* 03DE54 7F009324 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) +/* 03DE58 7F009328 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DE5C 7F00932C 256C0001 */ addiu $t4, $t3, 1 +/* 03DE60 7F009330 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) +/* 03DE64 7F009334 3C018005 */ lui $at, %hi(D_8004F300) +/* 03DE68 7F009338 C424F300 */ lwc1 $f4, %lo(D_8004F300)($at) +/* 03DE6C 7F00933C 100000FC */ b .L7F009730 +/* 03DE70 7F009340 E4E40000 */ swc1 $f4, ($a3) +.L7F009344: +/* 03DE74 7F009344 3C0F0100 */ lui $t7, 0x100 +/* 03DE78 7F009348 25EF0000 */ addiu $t7, $t7, 0 +/* 03DE7C 7F00934C 00A01025 */ move $v0, $a1 +/* 03DE80 7F009350 3C0D0600 */ lui $t5, 0x600 +/* 03DE84 7F009354 AC4D0000 */ sw $t5, ($v0) +/* 03DE88 7F009358 AC4F0004 */ sw $t7, 4($v0) +/* 03DE8C 7F00935C 0FC07034 */ jal insert_imageDL +/* 03DE90 7F009360 24A40008 */ addiu $a0, $a1, 8 +/* 03DE94 7F009364 0FC07034 */ jal insert_imageDL +/* 03DE98 7F009368 00402025 */ move $a0, $v0 +/* 03DE9C 7F00936C 0FC07034 */ jal insert_imageDL +/* 03DEA0 7F009370 00402025 */ move $a0, $v0 +/* 03DEA4 7F009374 0FC07034 */ jal insert_imageDL +/* 03DEA8 7F009378 00402025 */ move $a0, $v0 +/* 03DEAC 7F00937C 0FC07034 */ jal insert_imageDL +/* 03DEB0 7F009380 00402025 */ move $a0, $v0 +/* 03DEB4 7F009384 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03DEB8 7F009388 00402025 */ move $a0, $v0 +/* 03DEBC 7F00938C 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03DEC0 7F009390 00402025 */ move $a0, $v0 +/* 03DEC4 7F009394 3C078007 */ lui $a3, %hi(x) +/* 03DEC8 7F009398 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DECC 7F00939C 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 03DED0 7F0093A0 44813000 */ mtc1 $at, $f6 +/* 03DED4 7F0093A4 C4E00000 */ lwc1 $f0, ($a3) +/* 03DED8 7F0093A8 00402825 */ move $a1, $v0 +/* 03DEDC 7F0093AC 4606003C */ c.lt.s $f0, $f6 +/* 03DEE0 7F0093B0 00000000 */ nop +/* 03DEE4 7F0093B4 45000007 */ bc1f .L7F0093D4 +/* 03DEE8 7F0093B8 00000000 */ nop +/* 03DEEC 7F0093BC 0FC020B2 */ jal insert_bond_eye_intro +/* 03DEF0 7F0093C0 00402025 */ move $a0, $v0 +/* 03DEF4 7F0093C4 3C078007 */ lui $a3, %hi(x) +/* 03DEF8 7F0093C8 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DEFC 7F0093CC C4E00000 */ lwc1 $f0, ($a3) +/* 03DF00 7F0093D0 00402825 */ move $a1, $v0 +.L7F0093D4: +/* 03DF04 7F0093D4 3C018005 */ lui $at, %hi(D_8004F304) +/* 03DF08 7F0093D8 C428F304 */ lwc1 $f8, %lo(D_8004F304)($at) +/* 03DF0C 7F0093DC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 +/* 03DF10 7F0093E0 44818000 */ mtc1 $at, $f16 +/* 03DF14 7F0093E4 46080281 */ sub.s $f10, $f0, $f8 +/* 03DF18 7F0093E8 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DF1C 7F0093EC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DF20 7F0093F0 3C0E8003 */ lui $t6, %hi(D_8002A7D4) +/* 03DF24 7F0093F4 E4EA0000 */ swc1 $f10, ($a3) +/* 03DF28 7F0093F8 C4F20000 */ lwc1 $f18, ($a3) +/* 03DF2C 7F0093FC 4610903E */ c.le.s $f18, $f16 +/* 03DF30 7F009400 00000000 */ nop +/* 03DF34 7F009404 450200CB */ bc1fl .L7F009734 +/* 03DF38 7F009408 8FBF0014 */ lw $ra, 0x14($sp) +/* 03DF3C 7F00940C 91CEA7D4 */ lbu $t6, %lo(D_8002A7D4)($t6) +/* 03DF40 7F009410 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DF44 7F009414 24190014 */ li $t9, 20 +/* 03DF48 7F009418 25D80001 */ addiu $t8, $t6, 1 +/* 03DF4C 7F00941C A038A7D4 */ sb $t8, %lo(D_8002A7D4)($at) +/* 03DF50 7F009420 100000C3 */ b .L7F009730 +/* 03DF54 7F009424 ACD90000 */ sw $t9, ($a2) +.L7F009428: +/* 03DF58 7F009428 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03DF5C 7F00942C 00A02025 */ move $a0, $a1 +/* 03DF60 7F009430 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03DF64 7F009434 00402025 */ move $a0, $v0 +/* 03DF68 7F009438 0FC020B2 */ jal insert_bond_eye_intro +/* 03DF6C 7F00943C 00402025 */ move $a0, $v0 +/* 03DF70 7F009440 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DF74 7F009444 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DF78 7F009448 8CC80000 */ lw $t0, ($a2) +/* 03DF7C 7F00944C 00402825 */ move $a1, $v0 +/* 03DF80 7F009450 3C0B8003 */ lui $t3, %hi(D_8002A7D4) +/* 03DF84 7F009454 2509FFFF */ addiu $t1, $t0, -1 +/* 03DF88 7F009458 052100B5 */ bgez $t1, .L7F009730 +/* 03DF8C 7F00945C ACC90000 */ sw $t1, ($a2) +/* 03DF90 7F009460 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) +/* 03DF94 7F009464 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DF98 7F009468 00002025 */ move $a0, $zero +/* 03DF9C 7F00946C 256C0001 */ addiu $t4, $t3, 1 +/* 03DFA0 7F009470 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) +/* 03DFA4 7F009474 0FC070A1 */ jal die_blood_image_routine +/* 03DFA8 7F009478 AFA20018 */ sw $v0, 0x18($sp) +/* 03DFAC 7F00947C 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFB0 7F009480 3C018003 */ lui $at, %hi(intro_state_blood_animation) +/* 03DFB4 7F009484 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DFB8 7F009488 AC20A8A4 */ sw $zero, %lo(intro_state_blood_animation)($at) +/* 03DFBC 7F00948C 240D0001 */ li $t5, 1 +/* 03DFC0 7F009490 8FA50018 */ lw $a1, 0x18($sp) +/* 03DFC4 7F009494 100000A6 */ b .L7F009730 +/* 03DFC8 7F009498 ACCD0000 */ sw $t5, ($a2) +.L7F00949C: +/* 03DFCC 7F00949C 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFD0 7F0094A0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DFD4 7F0094A4 8CCF0000 */ lw $t7, ($a2) +/* 03DFD8 7F0094A8 24040001 */ li $a0, 1 +/* 03DFDC 7F0094AC 25EEFFFF */ addiu $t6, $t7, -1 +/* 03DFE0 7F0094B0 15C0000A */ bnez $t6, .L7F0094DC +/* 03DFE4 7F0094B4 ACCE0000 */ sw $t6, ($a2) +/* 03DFE8 7F0094B8 0FC070A1 */ jal die_blood_image_routine +/* 03DFEC 7F0094BC AFA50018 */ sw $a1, 0x18($sp) +/* 03DFF0 7F0094C0 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFF4 7F0094C4 3C018003 */ lui $at, %hi(intro_state_blood_animation) +/* 03DFF8 7F0094C8 AC22A8A4 */ sw $v0, %lo(intro_state_blood_animation)($at) +/* 03DFFC 7F0094CC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E000 7F0094D0 24190002 */ li $t9, 2 +/* 03E004 7F0094D4 8FA50018 */ lw $a1, 0x18($sp) +/* 03E008 7F0094D8 ACD90000 */ sw $t9, ($a2) +.L7F0094DC: +/* 03E00C 7F0094DC 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E010 7F0094E0 00A02025 */ move $a0, $a1 +/* 03E014 7F0094E4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E018 7F0094E8 00402025 */ move $a0, $v0 +/* 03E01C 7F0094EC 0FC020B2 */ jal insert_bond_eye_intro +/* 03E020 7F0094F0 00402025 */ move $a0, $v0 +/* 03E024 7F0094F4 0FC07100 */ jal sub_GAME_7F01C400 +/* 03E028 7F0094F8 00402025 */ move $a0, $v0 +/* 03E02C 7F0094FC 3C088003 */ lui $t0, %hi(intro_state_blood_animation) +/* 03E030 7F009500 8D08A8A4 */ lw $t0, %lo(intro_state_blood_animation)($t0) +/* 03E034 7F009504 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E038 7F009508 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E03C 7F00950C 11000088 */ beqz $t0, .L7F009730 +/* 03E040 7F009510 00402825 */ move $a1, $v0 +/* 03E044 7F009514 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03E048 7F009518 9129A7D4 */ lbu $t1, %lo(D_8002A7D4)($t1) +/* 03E04C 7F00951C 3C078007 */ lui $a3, %hi(x) +/* 03E050 7F009520 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03E054 7F009524 252A0001 */ addiu $t2, $t1, 1 +/* 03E058 7F009528 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E05C 7F00952C A02AA7D4 */ sb $t2, %lo(D_8002A7D4)($at) +/* 03E060 7F009530 C4E40000 */ lwc1 $f4, ($a3) +/* 03E064 7F009534 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E068 7F009538 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E06C 7F00953C A4600000 */ sh $zero, ($v1) +/* 03E070 7F009540 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E074 7F009544 E424957C */ swc1 $f4, %lo(dword_CODE_bss_8006957C)($at) +/* 03E078 7F009548 10000079 */ b .L7F009730 +/* 03E07C 7F00954C ACC00000 */ sw $zero, ($a2) +.L7F009550: +/* 03E080 7F009550 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E084 7F009554 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E088 7F009558 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E08C 7F00955C 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E090 7F009560 846B0000 */ lh $t3, ($v1) +/* 03E094 7F009564 8CCD0000 */ lw $t5, ($a2) +/* 03E098 7F009568 AFA50018 */ sw $a1, 0x18($sp) +/* 03E09C 7F00956C 256C038E */ addiu $t4, $t3, 0x38e +/* 03E0A0 7F009570 25AF0001 */ addiu $t7, $t5, 1 +/* 03E0A4 7F009574 A46C0000 */ sh $t4, ($v1) +/* 03E0A8 7F009578 ACCF0000 */ sw $t7, ($a2) +/* 03E0AC 7F00957C 0C005B18 */ jal sins +/* 03E0B0 7F009580 3184FFFF */ andi $a0, $t4, 0xffff +/* 03E0B4 7F009584 44823000 */ mtc1 $v0, $f6 +/* 03E0B8 7F009588 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 03E0BC 7F00958C 44815000 */ mtc1 $at, $f10 +/* 03E0C0 7F009590 46803220 */ cvt.s.w $f8, $f6 +/* 03E0C4 7F009594 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 03E0C8 7F009598 44819000 */ mtc1 $at, $f18 +/* 03E0CC 7F00959C 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E0D0 7F0095A0 C426957C */ lwc1 $f6, %lo(dword_CODE_bss_8006957C)($at) +/* 03E0D4 7F0095A4 3C078007 */ lui $a3, %hi(x) +/* 03E0D8 7F0095A8 460A4402 */ mul.s $f16, $f8, $f10 +/* 03E0DC 7F0095AC 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E0E0 7F0095B0 8FA40018 */ lw $a0, 0x18($sp) +/* 03E0E4 7F0095B4 46128103 */ div.s $f4, $f16, $f18 +/* 03E0E8 7F0095B8 46062200 */ add.s $f8, $f4, $f6 +/* 03E0EC 7F0095BC 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E0F0 7F0095C0 E4E80000 */ swc1 $f8, ($a3) +/* 03E0F4 7F0095C4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E0F8 7F0095C8 00402025 */ move $a0, $v0 +/* 03E0FC 7F0095CC 0FC020B2 */ jal insert_bond_eye_intro +/* 03E100 7F0095D0 00402025 */ move $a0, $v0 +/* 03E104 7F0095D4 0FC07286 */ jal sub_GAME_7F01CA18 +/* 03E108 7F0095D8 00402025 */ move $a0, $v0 +/* 03E10C 7F0095DC 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E110 7F0095E0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E114 7F0095E4 8CCE0000 */ lw $t6, ($a2) +/* 03E118 7F0095E8 00402825 */ move $a1, $v0 +/* 03E11C 7F0095EC 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E120 7F0095F0 29C1006C */ slti $at, $t6, 0x6c +/* 03E124 7F0095F4 1420004E */ bnez $at, .L7F009730 +/* 03E128 7F0095F8 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E12C 7F0095FC 90580000 */ lbu $t8, ($v0) +/* 03E130 7F009600 ACC00000 */ sw $zero, ($a2) +/* 03E134 7F009604 27190001 */ addiu $t9, $t8, 1 +/* 03E138 7F009608 10000049 */ b .L7F009730 +/* 03E13C 7F00960C A0590000 */ sb $t9, ($v0) +.L7F009610: +/* 03E140 7F009610 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E144 7F009614 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E148 7F009618 84680000 */ lh $t0, ($v1) +/* 03E14C 7F00961C AFA50018 */ sw $a1, 0x18($sp) +/* 03E150 7F009620 2509038E */ addiu $t1, $t0, 0x38e +/* 03E154 7F009624 A4690000 */ sh $t1, ($v1) +/* 03E158 7F009628 0C005B18 */ jal sins +/* 03E15C 7F00962C 3124FFFF */ andi $a0, $t1, 0xffff +/* 03E160 7F009630 44825000 */ mtc1 $v0, $f10 +/* 03E164 7F009634 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 03E168 7F009638 44819000 */ mtc1 $at, $f18 +/* 03E16C 7F00963C 46805420 */ cvt.s.w $f16, $f10 +/* 03E170 7F009640 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 03E174 7F009644 44813000 */ mtc1 $at, $f6 +/* 03E178 7F009648 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E17C 7F00964C C42A957C */ lwc1 $f10, %lo(dword_CODE_bss_8006957C)($at) +/* 03E180 7F009650 3C078007 */ lui $a3, %hi(x) +/* 03E184 7F009654 46128102 */ mul.s $f4, $f16, $f18 +/* 03E188 7F009658 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E18C 7F00965C 8FA40018 */ lw $a0, 0x18($sp) +/* 03E190 7F009660 46062203 */ div.s $f8, $f4, $f6 +/* 03E194 7F009664 460A4400 */ add.s $f16, $f8, $f10 +/* 03E198 7F009668 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E19C 7F00966C E4F00000 */ swc1 $f16, ($a3) +/* 03E1A0 7F009670 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E1A4 7F009674 00402025 */ move $a0, $v0 +/* 03E1A8 7F009678 0FC020B2 */ jal insert_bond_eye_intro +/* 03E1AC 7F00967C 00402025 */ move $a0, $v0 +/* 03E1B0 7F009680 0FC07286 */ jal sub_GAME_7F01CA18 +/* 03E1B4 7F009684 00402025 */ move $a0, $v0 +/* 03E1B8 7F009688 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E1BC 7F00968C 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E1C0 7F009690 8CCA0000 */ lw $t2, ($a2) +/* 03E1C4 7F009694 00402025 */ move $a0, $v0 +/* 03E1C8 7F009698 25450008 */ addiu $a1, $t2, 8 +/* 03E1CC 7F00969C 0FC01F9C */ jal sub_GAME_7F007E70 +/* 03E1D0 7F0096A0 ACC50000 */ sw $a1, ($a2) +/* 03E1D4 7F0096A4 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E1D8 7F0096A8 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E1DC 7F0096AC 8CCC0000 */ lw $t4, ($a2) +/* 03E1E0 7F0096B0 00402825 */ move $a1, $v0 +/* 03E1E4 7F0096B4 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E1E8 7F0096B8 298100F7 */ slti $at, $t4, 0xf7 +/* 03E1EC 7F0096BC 1420001C */ bnez $at, .L7F009730 +/* 03E1F0 7F0096C0 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E1F4 7F0096C4 904D0000 */ lbu $t5, ($v0) +/* 03E1F8 7F0096C8 ACC00000 */ sw $zero, ($a2) +/* 03E1FC 7F0096CC 25AF0001 */ addiu $t7, $t5, 1 +/* 03E200 7F0096D0 10000017 */ b .L7F009730 +/* 03E204 7F0096D4 A04F0000 */ sb $t7, ($v0) +.L7F0096D8: +/* 03E208 7F0096D8 3C180100 */ lui $t8, 0x100 +/* 03E20C 7F0096DC 27180000 */ addiu $t8, $t8, 0 +/* 03E210 7F0096E0 00A01025 */ move $v0, $a1 +/* 03E214 7F0096E4 3C0E0600 */ lui $t6, 0x600 +/* 03E218 7F0096E8 AC4E0000 */ sw $t6, ($v0) +/* 03E21C 7F0096EC AC580004 */ sw $t8, 4($v0) +/* 03E220 7F0096F0 0FC07034 */ jal insert_imageDL +/* 03E224 7F0096F4 24A40008 */ addiu $a0, $a1, 8 +/* 03E228 7F0096F8 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E22C 7F0096FC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E230 7F009700 8CC30000 */ lw $v1, ($a2) +/* 03E234 7F009704 00402825 */ move $a1, $v0 +/* 03E238 7F009708 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E23C 7F00970C 2864001E */ slti $a0, $v1, 0x1e +/* 03E240 7F009710 24790001 */ addiu $t9, $v1, 1 +/* 03E244 7F009714 14800006 */ bnez $a0, .L7F009730 +/* 03E248 7F009718 ACD90000 */ sw $t9, ($a2) +/* 03E24C 7F00971C 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E250 7F009720 90480000 */ lbu $t0, ($v0) +/* 03E254 7F009724 ACC00000 */ sw $zero, ($a2) +/* 03E258 7F009728 25090001 */ addiu $t1, $t0, 1 +/* 03E25C 7F00972C A0490000 */ sb $t1, ($v0) +def_7F00929C: +.L7F009730: +/* 03E260 7F009730 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009734: +/* 03E264 7F009734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03E268 7F009738 00A01025 */ move $v0, $a1 +/* 03E26C 7F00973C 03E00008 */ jr $ra +/* 03E270 7F009740 00000000 */ nop +) +#endif + + + + +s32 sub_GAME_7F009744(void) { + return (D_8002A7D4 == 9); +} diff --git a/src/game/intro_logos.h b/src/game/intro_logos.h new file mode 100644 index 0000000..c702b60 --- /dev/null +++ b/src/game/intro_logos.h @@ -0,0 +1,25 @@ +#ifndef _INTRO_LOGOS_H_ +#define _INTRO_LOGOS_H_ +#include "ultra64.h" + +extern s32 dword_CODE_bss_80069550; +extern s32 dword_CODE_bss_80069554; +extern s32 matrix_buffer_rarelogo_0; +extern s32 matrix_buffer_gunbarrel_0; +extern s32 matrix_buffer_rarelogo_1; +extern s32 matrix_buffer_rarelogo_2; +extern s32 matrix_buffer_gunbarrel_1; +extern s32 matrix_buffer_intro_backdrop; +extern s32 matrix_buffer_intro_bond; +extern s32 x; +extern s32 y; +extern s32 dword_CODE_bss_8006957C; +extern s32 dword_CODE_bss_80069580; +extern s32 word_CODE_bss_80069584; +extern s32 dword_CODE_bss_80069588; +extern s32 dword_CODE_bss_8006958C; +extern s32 virtualaddress; +extern s32 dword_CODE_bss_80069594; + +extern u32 D_8002A7D0; +#endif diff --git a/src/game/lightfixture.c b/src/game/lightfixture.c new file mode 100644 index 0000000..d00098b --- /dev/null +++ b/src/game/lightfixture.c @@ -0,0 +1,1362 @@ +#include "ultra64.h" +#include "game/lightfixture.h" + +// bss +//CODE.bss:80082660 +s_lightfixture light_fixture_table[0x64]; +//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]; +//CODE.bss:80083318 +s32 dword_CODE_bss_80083318; + + +// data +//D:80046030 +s32 D_80046030[] = {0, 0, 0, 0, 0, 0, 0, 0}; + + +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=i+8) + { + word_CODE_bss_80082B18[i+2] = 0; + word_CODE_bss_80082B18[i+4] = 0; + word_CODE_bss_80082B18[i+6] = 0; + word_CODE_bss_80082B18[i+0] = 0; + } + + D_80046030[0] = 0; +} + + +s32 get_index_of_current_entry_in_init_lightfixture_table(void) +{ + s32 i; + + for (i = 0; i != 0x64; i+=4) + { + if (light_fixture_table[i].index == 0) + { + return i; + } + if (light_fixture_table[i+1].index == 0) + { + return i + 1; + } + if (light_fixture_table[i+2].index == 0) + { + return i + 2; + } + if (light_fixture_table[i+3].index == 0) + { + return i + 3; + } + } + return 0x64; +} + + +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; + } +} + + +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; + } +} + + + +#ifdef NONMATCHING +s32 check_if_imageID_is_light(s32 imageID) +{ + if (imageID == 0xC9) + { + return 1; + } + if (imageID == 0xCB) + { + return 1; + } + if (imageID == 0xCD) + { + return 1; + } + if (imageID == 0xFC) + { + return 1; + } + if (imageID == 0xFE) + { + return 1; + } + if (imageID == 0xFF) + { + return 1; + } + if (imageID == 0x100) + { + return 1; + } + if (imageID == 0x1AC) + { + return 1; + } + if (imageID == 0x3D6) + { + return 1; + } + if (imageID == 0x567) + { + return 1; + } + return 0; +} + +#else +GLOBAL_ASM( +.text +glabel check_if_imageID_is_light +/* 0F0160 7F0BB630 240100C9 */ li $at, 201 +/* 0F0164 7F0BB634 10810013 */ beq $a0, $at, .L7F0BB684 +/* 0F0168 7F0BB638 240100CB */ li $at, 203 +/* 0F016C 7F0BB63C 10810011 */ beq $a0, $at, .L7F0BB684 +/* 0F0170 7F0BB640 240100CD */ li $at, 205 +/* 0F0174 7F0BB644 1081000F */ beq $a0, $at, .L7F0BB684 +/* 0F0178 7F0BB648 240100FC */ li $at, 252 +/* 0F017C 7F0BB64C 1081000D */ beq $a0, $at, .L7F0BB684 +/* 0F0180 7F0BB650 240100FE */ li $at, 254 +/* 0F0184 7F0BB654 1081000B */ beq $a0, $at, .L7F0BB684 +/* 0F0188 7F0BB658 240100FF */ li $at, 255 +/* 0F018C 7F0BB65C 10810009 */ beq $a0, $at, .L7F0BB684 +/* 0F0190 7F0BB660 24010100 */ li $at, 256 +/* 0F0194 7F0BB664 10810007 */ beq $a0, $at, .L7F0BB684 +/* 0F0198 7F0BB668 240101AC */ li $at, 428 +/* 0F019C 7F0BB66C 10810005 */ beq $a0, $at, .L7F0BB684 +/* 0F01A0 7F0BB670 240103D6 */ li $at, 982 +/* 0F01A4 7F0BB674 10810003 */ beq $a0, $at, .L7F0BB684 +/* 0F01A8 7F0BB678 24010567 */ li $at, 1383 +/* 0F01AC 7F0BB67C 14810003 */ bne $a0, $at, .L7F0BB68C +/* 0F01B0 7F0BB680 00001025 */ move $v0, $zero +.L7F0BB684: +/* 0F01B4 7F0BB684 03E00008 */ jr $ra +/* 0F01B8 7F0BB688 24020001 */ li $v0, 1 + +.L7F0BB68C: +/* 0F01BC 7F0BB68C 03E00008 */ jr $ra +/* 0F01C0 7F0BB690 00000000 */ nop +) +#endif + + + + + +#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) +{ + s32 i; + + for (i=0;itype; i++) + { + if (object == arg0) + { + return i; + } + object = (get_size_of_setup_object_type((u8 *)object) * 4) + object; + } + } + return -1; +} + +#else +GLOBAL_ASM( +.text +glabel check_if_object_type_has_been_loaded +/* 08B64C 7F056B1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08B650 7F056B20 AFB00014 */ sw $s0, 0x14($sp) +/* 08B654 7F056B24 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08B658 7F056B28 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08B65C 7F056B2C AFB30020 */ sw $s3, 0x20($sp) +/* 08B660 7F056B30 00809825 */ move $s3, $a0 +/* 08B664 7F056B34 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B668 7F056B38 AFB2001C */ sw $s2, 0x1c($sp) +/* 08B66C 7F056B3C 12000012 */ beqz $s0, .L7F056B88 +/* 08B670 7F056B40 AFB10018 */ sw $s1, 0x18($sp) +/* 08B674 7F056B44 920E0003 */ lbu $t6, 3($s0) +/* 08B678 7F056B48 24120030 */ li $s2, 48 +/* 08B67C 7F056B4C 00008825 */ move $s1, $zero +/* 08B680 7F056B50 524E000E */ beql $s2, $t6, .L7F056B8C +/* 08B684 7F056B54 2402FFFF */ li $v0, -1 +.L7F056B58: +/* 08B688 7F056B58 16130003 */ bne $s0, $s3, .L7F056B68 +/* 08B68C 7F056B5C 00000000 */ nop +/* 08B690 7F056B60 1000000A */ b .L7F056B8C +/* 08B694 7F056B64 02201025 */ move $v0, $s1 +.L7F056B68: +/* 08B698 7F056B68 0FC15A3D */ jal get_size_of_setup_object_type +/* 08B69C 7F056B6C 02002025 */ move $a0, $s0 +/* 08B6A0 7F056B70 00027880 */ sll $t7, $v0, 2 +/* 08B6A4 7F056B74 01F08021 */ addu $s0, $t7, $s0 +/* 08B6A8 7F056B78 92180003 */ lbu $t8, 3($s0) +/* 08B6AC 7F056B7C 26310001 */ addiu $s1, $s1, 1 +/* 08B6B0 7F056B80 1658FFF5 */ bne $s2, $t8, .L7F056B58 +/* 08B6B4 7F056B84 00000000 */ nop +.L7F056B88: +/* 08B6B8 7F056B88 2402FFFF */ li $v0, -1 +.L7F056B8C: +/* 08B6BC 7F056B8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B6C0 7F056B90 8FB00014 */ lw $s0, 0x14($sp) +/* 08B6C4 7F056B94 8FB10018 */ lw $s1, 0x18($sp) +/* 08B6C8 7F056B98 8FB2001C */ lw $s2, 0x1c($sp) +/* 08B6CC 7F056B9C 8FB30020 */ lw $s3, 0x20($sp) +/* 08B6D0 7F056BA0 03E00008 */ jr $ra +/* 08B6D4 7F056BA4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056BA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056BA8 +/* 08B6D8 7F056BA8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08B6DC 7F056BAC AFB00014 */ sw $s0, 0x14($sp) +/* 08B6E0 7F056BB0 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08B6E4 7F056BB4 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08B6E8 7F056BB8 AFB30020 */ sw $s3, 0x20($sp) +/* 08B6EC 7F056BBC 00809825 */ move $s3, $a0 +/* 08B6F0 7F056BC0 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B6F4 7F056BC4 AFB2001C */ sw $s2, 0x1c($sp) +/* 08B6F8 7F056BC8 12000013 */ beqz $s0, .L7F056C18 +/* 08B6FC 7F056BCC AFB10018 */ sw $s1, 0x18($sp) +/* 08B700 7F056BD0 920E0003 */ lbu $t6, 3($s0) +/* 08B704 7F056BD4 24120030 */ li $s2, 48 +/* 08B708 7F056BD8 00008825 */ move $s1, $zero +/* 08B70C 7F056BDC 524E000F */ beql $s2, $t6, .L7F056C1C +/* 08B710 7F056BE0 2402FFFF */ li $v0, -1 +/* 08B714 7F056BE4 8E0F0010 */ lw $t7, 0x10($s0) +.L7F056BE8: +/* 08B718 7F056BE8 166F0003 */ bne $s3, $t7, .L7F056BF8 +/* 08B71C 7F056BEC 00000000 */ nop +/* 08B720 7F056BF0 1000000A */ b .L7F056C1C +/* 08B724 7F056BF4 02201025 */ move $v0, $s1 +.L7F056BF8: +/* 08B728 7F056BF8 0FC15A3D */ jal get_size_of_setup_object_type +/* 08B72C 7F056BFC 02002025 */ move $a0, $s0 +/* 08B730 7F056C00 0002C080 */ sll $t8, $v0, 2 +/* 08B734 7F056C04 03108021 */ addu $s0, $t8, $s0 +/* 08B738 7F056C08 92190003 */ lbu $t9, 3($s0) +/* 08B73C 7F056C0C 26310001 */ addiu $s1, $s1, 1 +/* 08B740 7F056C10 5659FFF5 */ bnel $s2, $t9, .L7F056BE8 +/* 08B744 7F056C14 8E0F0010 */ lw $t7, 0x10($s0) +.L7F056C18: +/* 08B748 7F056C18 2402FFFF */ li $v0, -1 +.L7F056C1C: +/* 08B74C 7F056C1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B750 7F056C20 8FB00014 */ lw $s0, 0x14($sp) +/* 08B754 7F056C24 8FB10018 */ lw $s1, 0x18($sp) +/* 08B758 7F056C28 8FB2001C */ lw $s2, 0x1c($sp) +/* 08B75C 7F056C2C 8FB30020 */ lw $s3, 0x20($sp) +/* 08B760 7F056C30 03E00008 */ jr $ra +/* 08B764 7F056C34 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +u32 load_model(u32 modelid) +{ + struct p_itementry fileentry = PitemZ_entries[modelid]; + if (fileentry.header == 0) + { + load_object_into_memory(PitemZ_entries[modelid].header, PitemZ_entries[modelid].filename); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries[modelid].header); + return 1; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel load_model +/* 08B768 7F056C38 00047080 */ sll $t6, $a0, 2 +/* 08B76C 7F056C3C 01C47023 */ subu $t6, $t6, $a0 +/* 08B770 7F056C40 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 08B774 7F056C44 25EFA228 */ addiu $t7, %lo(PitemZ_entries) # addiu $t7, $t7, -0x5dd8 +/* 08B778 7F056C48 000E7080 */ sll $t6, $t6, 2 +/* 08B77C 7F056C4C 01CF1021 */ addu $v0, $t6, $t7 +/* 08B780 7F056C50 8C460000 */ lw $a2, ($v0) +/* 08B784 7F056C54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08B788 7F056C58 AFBF0014 */ sw $ra, 0x14($sp) +/* 08B78C 7F056C5C 8CD80000 */ lw $t8, ($a2) +/* 08B790 7F056C60 00C02025 */ move $a0, $a2 +/* 08B794 7F056C64 5700000A */ bnezl $t8, .L7F056C90 +/* 08B798 7F056C68 00001025 */ move $v0, $zero +/* 08B79C 7F056C6C 8C450004 */ lw $a1, 4($v0) +/* 08B7A0 7F056C70 0FC1D953 */ jal load_object_into_memory +/* 08B7A4 7F056C74 AFA2001C */ sw $v0, 0x1c($sp) +/* 08B7A8 7F056C78 8FA2001C */ lw $v0, 0x1c($sp) +/* 08B7AC 7F056C7C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 08B7B0 7F056C80 8C440000 */ lw $a0, ($v0) +/* 08B7B4 7F056C84 10000002 */ b .L7F056C90 +/* 08B7B8 7F056C88 24020001 */ li $v0, 1 +/* 08B7BC 7F056C8C 00001025 */ move $v0, $zero +.L7F056C90: +/* 08B7C0 7F056C90 8FBF0014 */ lw $ra, 0x14($sp) +/* 08B7C4 7F056C94 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08B7C8 7F056C98 03E00008 */ jr $ra +/* 08B7CC 7F056C9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056CA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for below*/ +glabel jpt_8005354C +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EF4 +.word .L7F056EF4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 + +.text +glabel sub_GAME_7F056CA0 +/* 08B7D0 7F056CA0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 08B7D4 7F056CA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B7D8 7F056CA8 AFB10020 */ sw $s1, 0x20($sp) +/* 08B7DC 7F056CAC AFB0001C */ sw $s0, 0x1c($sp) +/* 08B7E0 7F056CB0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 08B7E4 7F056CB4 8C910010 */ lw $s1, 0x10($a0) +/* 08B7E8 7F056CB8 00808025 */ move $s0, $a0 +/* 08B7EC 7F056CBC 4480A000 */ mtc1 $zero, $f20 +/* 08B7F0 7F056CC0 0FC0F863 */ jal sub_GAME_7F03E18C +/* 08B7F4 7F056CC4 02202025 */ move $a0, $s1 +/* 08B7F8 7F056CC8 8E0E000C */ lw $t6, 0xc($s0) +/* 08B7FC 7F056CCC 000E7B80 */ sll $t7, $t6, 0xe +/* 08B800 7F056CD0 05E1000C */ bgez $t7, .L7F056D04 +/* 08B804 7F056CD4 00000000 */ nop +/* 08B808 7F056CD8 8E220014 */ lw $v0, 0x14($s1) +/* 08B80C 7F056CDC 241900FF */ li $t9, 255 +/* 08B810 7F056CE0 240800FF */ li $t0, 255 +/* 08B814 7F056CE4 10400005 */ beqz $v0, .L7F056CFC +/* 08B818 7F056CE8 00000000 */ nop +/* 08B81C 7F056CEC 90580003 */ lbu $t8, 3($v0) +/* 08B820 7F056CF0 A239002D */ sb $t9, 0x2d($s1) +/* 08B824 7F056CF4 10000062 */ b .L7F056E80 +/* 08B828 7F056CF8 A238002C */ sb $t8, 0x2c($s1) +.L7F056CFC: +/* 08B82C 7F056CFC 10000060 */ b .L7F056E80 +/* 08B830 7F056D00 A228002C */ sb $t0, 0x2c($s1) +.L7F056D04: +/* 08B834 7F056D04 0FC1001E */ jal sub_GAME_7F040078 +/* 08B838 7F056D08 02002025 */ move $a0, $s0 +/* 08B83C 7F056D0C 1040005C */ beqz $v0, .L7F056E80 +/* 08B840 7F056D10 00402025 */ move $a0, $v0 +/* 08B844 7F056D14 26050018 */ addiu $a1, $s0, 0x18 +/* 08B848 7F056D18 AFA50028 */ sw $a1, 0x28($sp) +/* 08B84C 7F056D1C 0FC0FA1F */ jal sub_GAME_7F03E87C +/* 08B850 7F056D20 AFA20030 */ sw $v0, 0x30($sp) +/* 08B854 7F056D24 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B858 7F056D28 44812000 */ mtc1 $at, $f4 +/* 08B85C 7F056D2C 8FA40030 */ lw $a0, 0x30($sp) +/* 08B860 7F056D30 8FA50028 */ lw $a1, 0x28($sp) +/* 08B864 7F056D34 46040181 */ sub.s $f6, $f0, $f4 +/* 08B868 7F056D38 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 08B86C 7F056D3C E7A60040 */ swc1 $f6, 0x40($sp) +/* 08B870 7F056D40 E7A00044 */ swc1 $f0, 0x44($sp) +/* 08B874 7F056D44 8FA40030 */ lw $a0, 0x30($sp) +/* 08B878 7F056D48 0FC0FABF */ jal sub_GAME_7F03EAFC +/* 08B87C 7F056D4C 8FA50028 */ lw $a1, 0x28($sp) +/* 08B880 7F056D50 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B884 7F056D54 44814000 */ mtc1 $at, $f8 +/* 08B888 7F056D58 8FA40030 */ lw $a0, 0x30($sp) +/* 08B88C 7F056D5C 8FA50028 */ lw $a1, 0x28($sp) +/* 08B890 7F056D60 46080281 */ sub.s $f10, $f0, $f8 +/* 08B894 7F056D64 0FC0FA47 */ jal sub_GAME_7F03E91C +/* 08B898 7F056D68 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 08B89C 7F056D6C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B8A0 7F056D70 44818000 */ mtc1 $at, $f16 +/* 08B8A4 7F056D74 8FA40030 */ lw $a0, 0x30($sp) +/* 08B8A8 7F056D78 8FA50028 */ lw $a1, 0x28($sp) +/* 08B8AC 7F056D7C 46100480 */ add.s $f18, $f0, $f16 +/* 08B8B0 7F056D80 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 08B8B4 7F056D84 E7B20034 */ swc1 $f18, 0x34($sp) +/* 08B8B8 7F056D88 E7A00038 */ swc1 $f0, 0x38($sp) +/* 08B8BC 7F056D8C 8FA40030 */ lw $a0, 0x30($sp) +/* 08B8C0 7F056D90 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 08B8C4 7F056D94 8FA50028 */ lw $a1, 0x28($sp) +/* 08B8C8 7F056D98 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 08B8CC 7F056D9C 44803000 */ mtc1 $zero, $f6 +/* 08B8D0 7F056DA0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B8D4 7F056DA4 46001087 */ neg.s $f2, $f2 +/* 08B8D8 7F056DA8 44812000 */ mtc1 $at, $f4 +/* 08B8DC 7F056DAC 4602303C */ c.lt.s $f6, $f2 +/* 08B8E0 7F056DB0 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 08B8E4 7F056DB4 46040300 */ add.s $f12, $f0, $f4 +/* 08B8E8 7F056DB8 C7A00048 */ lwc1 $f0, 0x48($sp) +/* 08B8EC 7F056DBC 45020003 */ bc1fl .L7F056DCC +/* 08B8F0 7F056DC0 46000007 */ neg.s $f0, $f0 +/* 08B8F4 7F056DC4 46001506 */ mov.s $f20, $f2 +/* 08B8F8 7F056DC8 46000007 */ neg.s $f0, $f0 +.L7F056DCC: +/* 08B8FC 7F056DCC 4600A03C */ c.lt.s $f20, $f0 +/* 08B900 7F056DD0 00000000 */ nop +/* 08B904 7F056DD4 45020003 */ bc1fl .L7F056DE4 +/* 08B908 7F056DD8 4608A03C */ c.lt.s $f20, $f8 +/* 08B90C 7F056DDC 46000506 */ mov.s $f20, $f0 +/* 08B910 7F056DE0 4608A03C */ c.lt.s $f20, $f8 +.L7F056DE4: +/* 08B914 7F056DE4 00000000 */ nop +/* 08B918 7F056DE8 45020003 */ bc1fl .L7F056DF8 +/* 08B91C 7F056DEC 460CA03C */ c.lt.s $f20, $f12 +/* 08B920 7F056DF0 46004506 */ mov.s $f20, $f8 +/* 08B924 7F056DF4 460CA03C */ c.lt.s $f20, $f12 +.L7F056DF8: +/* 08B928 7F056DF8 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 08B92C 7F056DFC 45020004 */ bc1fl .L7F056E10 +/* 08B930 7F056E00 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 08B934 7F056E04 46006506 */ mov.s $f20, $f12 +/* 08B938 7F056E08 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 08B93C 7F056E0C C7AA0040 */ lwc1 $f10, 0x40($sp) +.L7F056E10: +/* 08B940 7F056E10 C6100058 */ lwc1 $f16, 0x58($s0) +/* 08B944 7F056E14 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 08B948 7F056E18 4407A000 */ mfc1 $a3, $f20 +/* 08B94C 7F056E1C 46105480 */ add.s $f18, $f10, $f16 +/* 08B950 7F056E20 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 08B954 7F056E24 02202025 */ move $a0, $s1 +/* 08B958 7F056E28 27A50040 */ addiu $a1, $sp, 0x40 +/* 08B95C 7F056E2C E7B20040 */ swc1 $f18, 0x40($sp) +/* 08B960 7F056E30 C606005C */ lwc1 $f6, 0x5c($s0) +/* 08B964 7F056E34 27A60034 */ addiu $a2, $sp, 0x34 +/* 08B968 7F056E38 46062200 */ add.s $f8, $f4, $f6 +/* 08B96C 7F056E3C C7A40034 */ lwc1 $f4, 0x34($sp) +/* 08B970 7F056E40 E7A80044 */ swc1 $f8, 0x44($sp) +/* 08B974 7F056E44 C6100060 */ lwc1 $f16, 0x60($s0) +/* 08B978 7F056E48 46105480 */ add.s $f18, $f10, $f16 +/* 08B97C 7F056E4C C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 08B980 7F056E50 E7B20048 */ swc1 $f18, 0x48($sp) +/* 08B984 7F056E54 C6060058 */ lwc1 $f6, 0x58($s0) +/* 08B988 7F056E58 46062200 */ add.s $f8, $f4, $f6 +/* 08B98C 7F056E5C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 08B990 7F056E60 E7A80034 */ swc1 $f8, 0x34($sp) +/* 08B994 7F056E64 C610005C */ lwc1 $f16, 0x5c($s0) +/* 08B998 7F056E68 46105480 */ add.s $f18, $f10, $f16 +/* 08B99C 7F056E6C E7B20038 */ swc1 $f18, 0x38($sp) +/* 08B9A0 7F056E70 C6060060 */ lwc1 $f6, 0x60($s0) +/* 08B9A4 7F056E74 46062200 */ add.s $f8, $f4, $f6 +/* 08B9A8 7F056E78 0FC0F89F */ jal sub_GAME_7F03E27C +/* 08B9AC 7F056E7C E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F056E80: +/* 08B9B0 7F056E80 0FC0F884 */ jal sub_GAME_7F03E210 +/* 08B9B4 7F056E84 02202025 */ move $a0, $s1 +/* 08B9B8 7F056E88 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B9BC 7F056E8C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 08B9C0 7F056E90 8FB0001C */ lw $s0, 0x1c($sp) +/* 08B9C4 7F056E94 8FB10020 */ lw $s1, 0x20($sp) +/* 08B9C8 7F056E98 03E00008 */ jr $ra +/* 08B9CC 7F056E9C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056EA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005354C*/ +/*glabel jpt_8005354C*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EDC*/ +/*.word .L7F056EDC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 + +/*D:80053608 .align 4*/ +.text +glabel sub_GAME_7F056EA0 +/* 08B9D0 7F056EA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08B9D4 7F056EA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 08B9D8 7F056EA8 AFA40018 */ sw $a0, 0x18($sp) +/* 08B9DC 7F056EAC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 08B9E0 7F056EB0 00A02025 */ move $a0, $a1 +/* 08B9E4 7F056EB4 1040000F */ beqz $v0, .L7F056EF4 +/* 08B9E8 7F056EB8 00401825 */ move $v1, $v0 +/* 08B9EC 7F056EBC 904E0003 */ lbu $t6, 3($v0) +/* 08B9F0 7F056EC0 25CFFFFF */ addiu $t7, $t6, -1 +/* 08B9F4 7F056EC4 2DE1002F */ sltiu $at, $t7, 0x2f +/* 08B9F8 7F056EC8 1020000A */ beqz $at, .L7F056EF4 +/* 08B9FC 7F056ECC 000F7880 */ sll $t7, $t7, 2 +/* 08BA00 7F056ED0 3C018005 */ lui $at, %hi(jpt_8005354C) +/* 08BA04 7F056ED4 002F0821 */ addu $at, $at, $t7 +/* 08BA08 7F056ED8 8C2F354C */ lw $t7, %lo(jpt_8005354C)($at) +.L7F056EDC: +/* 08BA0C 7F056EDC 01E00008 */ jr $t7 +/* 08BA10 7F056EE0 00000000 */ nop +.L7F056EE4: +/* 08BA14 7F056EE4 10000004 */ b .L7F056EF8 +/* 08BA18 7F056EE8 00601025 */ move $v0, $v1 +.L7F056EEC: +/* 08BA1C 7F056EEC 10000002 */ b .L7F056EF8 +/* 08BA20 7F056EF0 00001025 */ move $v0, $zero +def_7F056EDC: +.L7F056EF4: +/* 08BA24 7F056EF4 00601025 */ move $v0, $v1 +.L7F056EF8: +/* 08BA28 7F056EF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08BA2C 7F056EFC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08BA30 7F056F00 03E00008 */ jr $ra +/* 08BA34 7F056F04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056F08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056F08 +/* 08BA38 7F056F08 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 08BA3C 7F056F0C AFB00018 */ sw $s0, 0x18($sp) +/* 08BA40 7F056F10 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08BA44 7F056F14 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08BA48 7F056F18 AFBE0038 */ sw $fp, 0x38($sp) +/* 08BA4C 7F056F1C AFB70034 */ sw $s7, 0x34($sp) +/* 08BA50 7F056F20 AFB30024 */ sw $s3, 0x24($sp) +/* 08BA54 7F056F24 AFB20020 */ sw $s2, 0x20($sp) +/* 08BA58 7F056F28 0080B825 */ move $s7, $a0 +/* 08BA5C 7F056F2C 00E0F025 */ move $fp, $a3 +/* 08BA60 7F056F30 AFBF003C */ sw $ra, 0x3c($sp) +/* 08BA64 7F056F34 AFB60030 */ sw $s6, 0x30($sp) +/* 08BA68 7F056F38 AFB5002C */ sw $s5, 0x2c($sp) +/* 08BA6C 7F056F3C AFB40028 */ sw $s4, 0x28($sp) +/* 08BA70 7F056F40 AFB1001C */ sw $s1, 0x1c($sp) +/* 08BA74 7F056F44 AFA50044 */ sw $a1, 0x44($sp) +/* 08BA78 7F056F48 AFA60048 */ sw $a2, 0x48($sp) +/* 08BA7C 7F056F4C 00009025 */ move $s2, $zero +/* 08BA80 7F056F50 12000039 */ beqz $s0, .L7F057038 +/* 08BA84 7F056F54 00009825 */ move $s3, $zero +/* 08BA88 7F056F58 92030003 */ lbu $v1, 3($s0) +/* 08BA8C 7F056F5C 24010030 */ li $at, 48 +/* 08BA90 7F056F60 309400FF */ andi $s4, $a0, 0xff +/* 08BA94 7F056F64 10610034 */ beq $v1, $at, .L7F057038 +/* 08BA98 7F056F68 24160008 */ li $s6, 8 +/* 08BA9C 7F056F6C 8FB50054 */ lw $s5, 0x54($sp) +/* 08BAA0 7F056F70 8FB10050 */ lw $s1, 0x50($sp) +.L7F056F74: +/* 08BAA4 7F056F74 16830028 */ bne $s4, $v1, .L7F057018 +/* 08BAA8 7F056F78 00000000 */ nop +/* 08BAAC 7F056F7C 8E020010 */ lw $v0, 0x10($s0) +/* 08BAB0 7F056F80 14400007 */ bnez $v0, .L7F056FA0 +/* 08BAB4 7F056F84 00000000 */ nop +/* 08BAB8 7F056F88 17C00023 */ bnez $fp, .L7F057018 +/* 08BABC 7F056F8C 00000000 */ nop +/* 08BAC0 7F056F90 16200021 */ bnez $s1, .L7F057018 +/* 08BAC4 7F056F94 00000000 */ nop +/* 08BAC8 7F056F98 1000002C */ b .L7F05704C +/* 08BACC 7F056F9C 02001025 */ move $v0, $s0 +.L7F056FA0: +/* 08BAD0 7F056FA0 12F6001D */ beq $s7, $s6, .L7F057018 +/* 08BAD4 7F056FA4 00000000 */ nop +/* 08BAD8 7F056FA8 8E0E0064 */ lw $t6, 0x64($s0) +/* 08BADC 7F056FAC 31CF0080 */ andi $t7, $t6, 0x80 +/* 08BAE0 7F056FB0 15E00019 */ bnez $t7, .L7F057018 +/* 08BAE4 7F056FB4 00000000 */ nop +/* 08BAE8 7F056FB8 92180002 */ lbu $t8, 2($s0) +/* 08BAEC 7F056FBC 33190004 */ andi $t9, $t8, 4 +/* 08BAF0 7F056FC0 17200015 */ bnez $t9, .L7F057018 +/* 08BAF4 7F056FC4 00000000 */ nop +/* 08BAF8 7F056FC8 8C48001C */ lw $t0, 0x1c($v0) +/* 08BAFC 7F056FCC 15000012 */ bnez $t0, .L7F057018 +/* 08BB00 7F056FD0 00000000 */ nop +/* 08BB04 7F056FD4 12200005 */ beqz $s1, .L7F056FEC +/* 08BB08 7F056FD8 02A02825 */ move $a1, $s5 +/* 08BB0C 7F056FDC 0FC1B018 */ jal sub_GAME_7F06C060 +/* 08BB10 7F056FE0 8E040014 */ lw $a0, 0x14($s0) +/* 08BB14 7F056FE4 1040000C */ beqz $v0, .L7F057018 +/* 08BB18 7F056FE8 00000000 */ nop +.L7F056FEC: +/* 08BB1C 7F056FEC 16400007 */ bnez $s2, .L7F05700C +/* 08BB20 7F056FF0 00000000 */ nop +/* 08BB24 7F056FF4 8E090010 */ lw $t1, 0x10($s0) +/* 08BB28 7F056FF8 912A0001 */ lbu $t2, 1($t1) +/* 08BB2C 7F056FFC 314B0002 */ andi $t3, $t2, 2 +/* 08BB30 7F057000 15600002 */ bnez $t3, .L7F05700C +/* 08BB34 7F057004 00000000 */ nop +/* 08BB38 7F057008 02009025 */ move $s2, $s0 +.L7F05700C: +/* 08BB3C 7F05700C 16600002 */ bnez $s3, .L7F057018 +/* 08BB40 7F057010 00000000 */ nop +/* 08BB44 7F057014 02009825 */ move $s3, $s0 +.L7F057018: +/* 08BB48 7F057018 0FC15A3D */ jal get_size_of_setup_object_type +/* 08BB4C 7F05701C 02002025 */ move $a0, $s0 +/* 08BB50 7F057020 00026080 */ sll $t4, $v0, 2 +/* 08BB54 7F057024 01908021 */ addu $s0, $t4, $s0 +/* 08BB58 7F057028 92030003 */ lbu $v1, 3($s0) +/* 08BB5C 7F05702C 24010030 */ li $at, 48 +/* 08BB60 7F057030 1461FFD0 */ bne $v1, $at, .L7F056F74 +/* 08BB64 7F057034 00000000 */ nop +.L7F057038: +/* 08BB68 7F057038 8FAD0044 */ lw $t5, 0x44($sp) +/* 08BB6C 7F05703C 00001025 */ move $v0, $zero +/* 08BB70 7F057040 ADB20000 */ sw $s2, ($t5) +/* 08BB74 7F057044 8FAE0048 */ lw $t6, 0x48($sp) +/* 08BB78 7F057048 ADD30000 */ sw $s3, ($t6) +.L7F05704C: +/* 08BB7C 7F05704C 8FBF003C */ lw $ra, 0x3c($sp) +/* 08BB80 7F057050 8FB00018 */ lw $s0, 0x18($sp) +/* 08BB84 7F057054 8FB1001C */ lw $s1, 0x1c($sp) +/* 08BB88 7F057058 8FB20020 */ lw $s2, 0x20($sp) +/* 08BB8C 7F05705C 8FB30024 */ lw $s3, 0x24($sp) +/* 08BB90 7F057060 8FB40028 */ lw $s4, 0x28($sp) +/* 08BB94 7F057064 8FB5002C */ lw $s5, 0x2c($sp) +/* 08BB98 7F057068 8FB60030 */ lw $s6, 0x30($sp) +/* 08BB9C 7F05706C 8FB70034 */ lw $s7, 0x34($sp) +/* 08BBA0 7F057070 8FBE0038 */ lw $fp, 0x38($sp) +/* 08BBA4 7F057074 03E00008 */ jr $ra +/* 08BBA8 7F057078 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + diff --git a/src/game/lvl.c b/src/game/lvl.c new file mode 100644 index 0000000..7a1a509 --- /dev/null +++ b/src/game/lvl.c @@ -0,0 +1,4569 @@ +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/lvl.h" +#include "game/initunk_0072B0.h" +#include "game/mainmenu.h" +#include "game/bondinv.h" + +// bss +//CODE.bss:8008C260 +u32 *ptr_jfont_DL; +//CODE.bss:8008C264 +s32 dword_CODE_bss_8008C264; +s32 dword_CODE_bss_8008C268; +s32 dword_CODE_bss_8008C26C; +//CODE.bss:8008C270 +char ramrom_data_target[0x380]; +//CODE.bss:8008C5F0 +s32 record_slot_num; +//CODE.bss:8008C5F4 +s32 *address_demo_loaded; +//CODE.bss:8008C5F8 +s32 dword_CODE_bss_8008C5F8; + + +// data +//D:80048360 +s32 lvl_c_debug_notice_list = 0; +//D:80048364 +s32 current_stage_to_load = 0; +//D:80048368 +f32 D_80048368 = 1.0; +//D:8004836C +s32 musictrack1_playing = 0; +//D:80048370 +s32 controls_locked_flag = 0; +//D:80048374 +s32 clock_timer = 0; +#ifdef VERSION_US +//D:80048378 +f32 global_timer_delta = 0; +//D:8004837C +s32 global_timer = 0; +//D:80048380 +s32 D_80048380 = 0; +//D:80048384 +#endif +#ifdef VERSION_JP +u32 jp_global_timer_delta = 0; +//D:8004837C +s32 global_timer = 0; +//D:80048380 +s32 D_80048380 = 0; +f32 global_timer_delta = 0; +#endif + +//D:80048384 +s32 difficulty_0 = 0; +//D:80048388 +s32 D_80048388 = 0; +//D:8004838C +s32 D_8004838C = 0; +//D:80048390 +s32 D_80048390 = 0; +//D:80048394 +s32 D_80048394 = 0; +//D:80048398 +s32 mp_time = 0x8CA0; +//D:8004839C +s32 mp_point = 0xA; +//D:800483A0 +s32 D_800483A0 = 0; +//D:800483A4 +f32 cur_mp_sec = 0.0; +//D:800483A8 +s32 D_800483A8 = 0; +//D:800483AC +f32 cur_mp_min = 0.0; +//D:800483B0 +s32 D_800483B0 = 0; +//D:800483B4 +f32 stage_time_sec = 0; +//D:800483B8 +s32 D_800483B8 = 0; +//D:800483BC +f32 poweron_time_sec = 0; +//D:800483C0 +s32 D_800483C0 = 1; +//D:800483C4 +s32 D_800483C4 = 0xFFFFFFFF; +//D:800483C8 +s32 D_800483C8 = 0; +//D:800483CC +s32 D_800483CC = 0; +//D:800483D0 +s32 D_800483D0 = 0; +//D:800483D4 +s32 D_800483D4 = 0; +//D:800483D8 +s32 D_800483D8 = 0; +//D:800483DC +s32 D_800483DC = 0; +//D:800483E0 +s32 D_800483E0 = 0; +//D:800483E4 +s32 D_800483E4 = 0; + +//D:800483E8 +//maybe alignment +//s32 D_800483E8 = 0; +//D:800483EC +//maybe alignment +//s32 D_800483EC = 0; + + + +// rodata +//D:8005B6B0 +const char aLv_c_debug[] = "lv_c_debug"; +//D:8005B6BC +const char aStanshow_[] = "-stanshow_"; +//D:8005B6C8 +const char aStanshow__5[] = "-stanshow_"; +//D:8005B6D4 +const char aStanshow__0[] = "-stanshow_"; +//D:8005B6E0 +const char aStanshow__1[] = "-stanshow_"; +//D:8005B6EC +const char aStanshow__2[] = "-stanshow_"; +//D:8005B6F8 +const char aStanshow__3[] = "-stanshow_"; +#ifndef VERSION_JP +//D:8005B704 +const char aOneMinuteLeft[] = "One minute left"; +#endif +//D:8005B714 +const char aSetdetailDDDDDDDDD[] = "setdetail %d %d %d %d %d %d %d %d %d"; + + + + + + + +s32 sub_GAME_7F0BD8F0(void) { + return D_800483C0; +} + +void sub_GAME_7F0BD8FC(s32 arg0) { + D_800483C0 = arg0; +} + + + + + + +#ifdef NONMATCHING +void lvInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&lvl_c_debug_notice_list, "lv_c_debug"); + lvl_c_debug_notice_list = 1; + ptr_jfont_DL = mempAllocBytesInBank(0xc0,'\x06'); + romCopy(ptr_jfont_DL, _jfontdlSegmentStart, 0xc0); +} +#else +GLOBAL_ASM( +.text +glabel lvInitDebugNoticeList +/* 0F2438 7F0BD908 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F243C 7F0BD90C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2440 7F0BD910 3C048005 */ lui $a0, %hi(lvl_c_debug_notice_list) +/* 0F2444 7F0BD914 3C058006 */ lui $a1, %hi(aLv_c_debug) +/* 0F2448 7F0BD918 24A5B6B0 */ addiu $a1, %lo(aLv_c_debug) # addiu $a1, $a1, -0x4950 +/* 0F244C 7F0BD91C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F2450 7F0BD920 24848360 */ addiu $a0, %lo(lvl_c_debug_notice_list) # addiu $a0, $a0, -0x7ca0 +/* 0F2454 7F0BD924 3C0F0011 */ lui $t7, %hi(_jfontdlSegmentEnd) # $t7, 0x11 +/* 0F2458 7F0BD928 3C180011 */ lui $t8, %hi(_jfontdlSegmentStart) # $t8, 0x11 +/* 0F245C 7F0BD92C 27187880 */ addiu $t8, %lo(_jfontdlSegmentStart) # addiu $t8, $t8, 0x7880 +/* 0F2460 7F0BD930 25EF7940 */ addiu $t7, %lo(_jfontdlSegmentEnd) # addiu $t7, $t7, 0x7940 +/* 0F2464 7F0BD934 240E0001 */ li $t6, 1 +/* 0F2468 7F0BD938 3C018005 */ lui $at, %hi(lvl_c_debug_notice_list) +/* 0F246C 7F0BD93C 01F83023 */ subu $a2, $t7, $t8 +/* 0F2470 7F0BD940 AC2E8360 */ sw $t6, %lo(lvl_c_debug_notice_list)($at) +/* 0F2474 7F0BD944 00C02025 */ move $a0, $a2 +/* 0F2478 7F0BD948 AFA60018 */ sw $a2, 0x18($sp) +/* 0F247C 7F0BD94C 0C0025C8 */ jal mempAllocBytesInBank +/* 0F2480 7F0BD950 24050006 */ li $a1, 6 +/* 0F2484 7F0BD954 3C038009 */ lui $v1, %hi(ptr_jfont_DL) +/* 0F2488 7F0BD958 2463C260 */ addiu $v1, %lo(ptr_jfont_DL) # addiu $v1, $v1, -0x3da0 +/* 0F248C 7F0BD95C 3C050011 */ lui $a1, %hi(_jfontdlSegmentStart) # $a1, 0x11 +/* 0F2490 7F0BD960 AC620000 */ sw $v0, ($v1) +/* 0F2494 7F0BD964 8FA60018 */ lw $a2, 0x18($sp) +/* 0F2498 7F0BD968 24A57880 */ addiu $a1, %lo(_jfontdlSegmentStart) # addiu $a1, $a1, 0x7880 +/* 0F249C 7F0BD96C 0C001707 */ jal romCopy +/* 0F24A0 7F0BD970 00402025 */ move $a0, $v0 +/* 0F24A4 7F0BD974 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F24A8 7F0BD978 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F24AC 7F0BD97C 03E00008 */ jr $ra +/* 0F24B0 7F0BD980 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void playrandommusictrack1(void) +{ + musictrack1_playing = get_random_value() % 0x3d + M_INTRO; + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD984 +/* 0F24B4 7F0BD984 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F24B8 7F0BD988 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F24BC 7F0BD98C 0C002914 */ jal get_random_value +/* 0F24C0 7F0BD990 00000000 */ nop +/* 0F24C4 7F0BD994 2401003D */ li $at, 61 +/* 0F24C8 7F0BD998 0041001B */ divu $zero, $v0, $at +/* 0F24CC 7F0BD99C 00007010 */ mfhi $t6 +/* 0F24D0 7F0BD9A0 3C038005 */ lui $v1, %hi(musictrack1_playing) +/* 0F24D4 7F0BD9A4 2463836C */ addiu $v1, %lo(musictrack1_playing) # addiu $v1, $v1, -0x7c94 +/* 0F24D8 7F0BD9A8 25C40002 */ addiu $a0, $t6, 2 +/* 0F24DC 7F0BD9AC 0C001B9F */ jal musicTrack1Play +/* 0F24E0 7F0BD9B0 AC640000 */ sw $a0, ($v1) +/* 0F24E4 7F0BD9B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F24E8 7F0BD9B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F24EC 7F0BD9BC 03E00008 */ jr $ra +/* 0F24F0 7F0BD9C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void playmusictrack1(MUSIC_TRACKS track) +{ + musictrack1_playing = track; + musicTrack1Play(track); +} +#else +GLOBAL_ASM( +.text +glabel playmusictrack1 +/* 0F24F4 7F0BD9C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F24F8 7F0BD9C8 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F24FC 7F0BD9CC 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2500 7F0BD9D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2504 7F0BD9D4 0C001B9F */ jal musicTrack1Play +/* 0F2508 7F0BD9D8 AC440000 */ sw $a0, ($v0) +/* 0F250C 7F0BD9DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2510 7F0BD9E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2514 7F0BD9E4 03E00008 */ jr $ra +/* 0F2518 7F0BD9E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void music_append_play_solo_death_short(void) + +{ + musictrack1_playing = (musictrack1_playing + M_SHORT_SOLO_DEATH) % 0x3f; + if (musictrack1_playing == M_NONE) { + musictrack1_playing = M_SHORT_SOLO_DEATH; + } + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel music_append_play_solo_death_short +/* 0F251C 7F0BD9EC 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F2520 7F0BD9F0 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2524 7F0BD9F4 8C4E0000 */ lw $t6, ($v0) +/* 0F2528 7F0BD9F8 2401003F */ li $at, 63 +/* 0F252C 7F0BD9FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2530 7F0BDA00 25CF0001 */ addiu $t7, $t6, 1 +/* 0F2534 7F0BDA04 01E1001A */ div $zero, $t7, $at +/* 0F2538 7F0BDA08 00002010 */ mfhi $a0 +/* 0F253C 7F0BDA0C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2540 7F0BDA10 14800003 */ bnez $a0, .L7F0BDA20 +/* 0F2544 7F0BDA14 AC440000 */ sw $a0, ($v0) +/* 0F2548 7F0BDA18 24040001 */ li $a0, 1 +/* 0F254C 7F0BDA1C AC440000 */ sw $a0, ($v0) +.L7F0BDA20: +/* 0F2550 7F0BDA20 0C001B9F */ jal musicTrack1Play +/* 0F2554 7F0BDA24 00000000 */ nop +/* 0F2558 7F0BDA28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F255C 7F0BDA2C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2560 7F0BDA30 03E00008 */ jr $ra +/* 0F2564 7F0BDA34 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void music_append_play_endtheme(void) +{ + musictrack1_playing = (musictrack1_playing + M_END_SOMETHING) % 0x3f; + if (musictrack1_playing == M_NONE) { + musictrack1_playing = M_END_SOMETHING; + } + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel music_append_play_endtheme +/* 0F2568 7F0BDA38 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F256C 7F0BDA3C 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2570 7F0BDA40 8C4E0000 */ lw $t6, ($v0) +/* 0F2574 7F0BDA44 2401003F */ li $at, 63 +/* 0F2578 7F0BDA48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F257C 7F0BDA4C 25CF003E */ addiu $t7, $t6, 0x3e +/* 0F2580 7F0BDA50 01E1001A */ div $zero, $t7, $at +/* 0F2584 7F0BDA54 00002010 */ mfhi $a0 +/* 0F2588 7F0BDA58 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F258C 7F0BDA5C 14800003 */ bnez $a0, .L7F0BDA6C +/* 0F2590 7F0BDA60 AC440000 */ sw $a0, ($v0) +/* 0F2594 7F0BDA64 2404003E */ li $a0, 62 +/* 0F2598 7F0BDA68 AC440000 */ sw $a0, ($v0) +.L7F0BDA6C: +/* 0F259C 7F0BDA6C 0C001B9F */ jal musicTrack1Play +/* 0F25A0 7F0BDA70 00000000 */ nop +/* 0F25A4 7F0BDA74 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F25A8 7F0BDA78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F25AC 7F0BDA7C 03E00008 */ jr $ra +/* 0F25B0 7F0BDA80 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0BDA84(void) { + playmusictrack1(getmusictrack_or_randomtrack(current_stage_to_load)); +} + + + + + +#ifdef NONMATCHING +void stage_load(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel stage_load +/* 0F25E0 7F0BDAB0 3C018005 */ lui $at, %hi(current_stage_to_load) +/* 0F25E4 7F0BDAB4 AC248364 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F25E8 7F0BDAB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F25EC 7F0BDABC 44816000 */ mtc1 $at, $f12 +/* 0F25F0 7F0BDAC0 24020001 */ li $v0, 1 +/* 0F25F4 7F0BDAC4 3C018005 */ lui $at, %hi(D_800483C0) +/* 0F25F8 7F0BDAC8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F25FC 7F0BDACC AC2283C0 */ sw $v0, %lo(D_800483C0)($at) +/* 0F2600 7F0BDAD0 AFB10024 */ sw $s1, 0x24($sp) +/* 0F2604 7F0BDAD4 3C018005 */ lui $at, %hi(controls_locked_flag) +/* 0F2608 7F0BDAD8 3C118005 */ lui $s1, %hi(clock_timer) +/* 0F260C 7F0BDADC AC208370 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F2610 7F0BDAE0 26318374 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c8c +/* 0F2614 7F0BDAE4 AE220000 */ sw $v0, ($s1) +/* 0F2618 7F0BDAE8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F261C 7F0BDAEC E42C8378 */ swc1 $f12, %lo(global_timer_delta)($at) +/* 0F2620 7F0BDAF0 3C018005 */ lui $at, %hi(D_80048380) +/* 0F2624 7F0BDAF4 AC208380 */ sw $zero, %lo(D_80048380)($at) +/* 0F2628 7F0BDAF8 3C018005 */ lui $at, %hi(global_timer) +/* 0F262C 7F0BDAFC AC20837C */ sw $zero, %lo(global_timer)($at) + +/* 0F2630 7F0BDB00 3C018005 */ lui $at, %hi(D_80048388) +/* 0F2634 7F0BDB04 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F2638 7F0BDB08 3C018005 */ lui $at, %hi(D_8004838C) +/* 0F263C 7F0BDB0C AC20838C */ sw $zero, %lo(D_8004838C)($at) +/* 0F2640 7F0BDB10 AFB00020 */ sw $s0, 0x20($sp) +/* 0F2644 7F0BDB14 3C018005 */ lui $at, %hi(D_80048390) +/* 0F2648 7F0BDB18 44800000 */ mtc1 $zero, $f0 +/* 0F264C 7F0BDB1C 3C108005 */ lui $s0, %hi(D_80048394) +/* 0F2650 7F0BDB20 AC208390 */ sw $zero, %lo(D_80048390)($at) +/* 0F2654 7F0BDB24 26108394 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c6c + +/* 0F2658 7F0BDB28 AE000000 */ sw $zero, ($s0) +/* 0F265C 7F0BDB2C 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F2660 7F0BDB30 E42083A4 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F2664 7F0BDB34 3C018005 */ lui $at, %hi(D_800483B0) +/* 0F2668 7F0BDB38 AC2083B0 */ sw $zero, %lo(D_800483B0)($at) +/* 0F266C 7F0BDB3C 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F2670 7F0BDB40 E42083B4 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F2674 7F0BDB44 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F2678 7F0BDB48 3C018005 */ lui $at, %hi(D_800483A0) +/* 0F267C 7F0BDB4C AFB40030 */ sw $s4, 0x30($sp) +/* 0F2680 7F0BDB50 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F2684 7F0BDB54 AFB20028 */ sw $s2, 0x28($sp) +/* 0F2688 7F0BDB58 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F268C 7F0BDB5C AFA40038 */ sw $a0, 0x38($sp) +/* 0F2690 7F0BDB60 0C00248E */ jal sfx_c_70009238 +/* 0F2694 7F0BDB64 AC2083A0 */ sw $zero, %lo(D_800483A0)($at) +/* 0F2698 7F0BDB68 0C001C0F */ jal musicTrack1Vol +/* 0F269C 7F0BDB6C 24047FFF */ li $a0, 32767 +/* 0F26A0 7F0BDB70 0C001CF1 */ jal musicTrack2Vol +/* 0F26A4 7F0BDB74 24047FFF */ li $a0, 32767 +/* 0F26A8 7F0BDB78 0C001DD3 */ jal musicTrack3Vol +/* 0F26AC 7F0BDB7C 24047FFF */ li $a0, 32767 +/* 0F26B0 7F0BDB80 0FC304D9 */ jal sub_GAME_7F0C1364 +/* 0F26B4 7F0BDB84 00000000 */ nop +/* 0F26B8 7F0BDB88 0FC0154D */ jal set_contents_of_80036078 +/* 0F26BC 7F0BDB8C 24040001 */ li $a0, 1 +/* 0F26C0 7F0BDB90 0FC01CC8 */ jal set_mt_tex_alloc +/* 0F26C4 7F0BDB94 00000000 */ nop +/* 0F26C8 7F0BDB98 0FC291F5 */ jal sub_GAME_7F0A47D4 +/* 0F26CC 7F0BDB9C 00000000 */ nop +/* 0F26D0 7F0BDBA0 0FC32FEC */ jal load_prepare_global_image_bank +/* 0F26D4 7F0BDBA4 00000000 */ nop +/* 0F26D8 7F0BDBA8 0FC2B2EB */ jal load_font_tables +/* 0F26DC 7F0BDBAC 00000000 */ nop +/* 0F26E0 7F0BDBB0 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F26E4 7F0BDBB4 2401005A */ li $at, 90 +/* 0F26E8 7F0BDBB8 15E10005 */ bne $t7, $at, .L7F0BDBD0 +/* 0F26EC 7F0BDBBC 00000000 */ nop +/* 0F26F0 7F0BDBC0 0FC00348 */ jal init_menus_or_reset +/* 0F26F4 7F0BDBC4 00000000 */ nop +/* 0F26F8 7F0BDBC8 10000073 */ b .L7F0BDD98 +/* 0F26FC 7F0BDBCC 00000000 */ nop +.L7F0BDBD0: +/* 0F2700 7F0BDBD0 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2704 7F0BDBD4 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F2708 7F0BDBD8 3C018007 */ lui $at, %hi(newcheatunlocked) # -0.000000 +/* 0F270C 7F0BDBDC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F2710 7F0BDBE0 2401005A */ li $at, 90 +/* 0F2714 7F0BDBE4 1081001C */ beq $a0, $at, .L7F0BDC58 +/* 0F2718 7F0BDBE8 00000000 */ nop +/* 0F271C 7F0BDBEC 8E180000 */ lw $t8, ($s0) +/* 0F2720 7F0BDBF0 17000019 */ bnez $t8, .L7F0BDC58 +/* 0F2724 7F0BDBF4 00000000 */ nop +/* 0F2728 7F0BDBF8 8E390000 */ lw $t9, ($s1) +/* 0F272C 7F0BDBFC 3C088003 */ lui $t0, %hi(append_cheat_sp) +/* 0F2730 7F0BDC00 1B200015 */ blez $t9, .L7F0BDC58 +/* 0F2734 7F0BDC04 00000000 */ nop +/* 0F2738 7F0BDC08 8D08A900 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F273C 7F0BDC0C 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F2740 7F0BDC10 263196A1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x695f +/* 0F2744 7F0BDC14 11000010 */ beqz $t0, .L7F0BDC58 +/* 0F2748 7F0BDC18 24100001 */ li $s0, 1 +/* 0F274C 7F0BDC1C 2412004B */ li $s2, 75 +.L7F0BDC20: +/* 0F2750 7F0BDC20 92290000 */ lbu $t1, ($s1) +/* 0F2754 7F0BDC24 51200008 */ beql $t1, $zero, .L7F0BDC48 +/* 0F2758 7F0BDC28 26100001 */ addiu $s0, $s0, 1 +/* 0F275C 7F0BDC2C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F2760 7F0BDC30 02002025 */ move $a0, $s0 +/* 0F2764 7F0BDC34 50400004 */ beql $v0, $zero, .L7F0BDC48 +/* 0F2768 7F0BDC38 26100001 */ addiu $s0, $s0, 1 +/* 0F276C 7F0BDC3C 0FC246AB */ jal turn_on_cheat_for_players +/* 0F2770 7F0BDC40 02002025 */ move $a0, $s0 +/* 0F2774 7F0BDC44 26100001 */ addiu $s0, $s0, 1 +.L7F0BDC48: +/* 0F2778 7F0BDC48 1612FFF5 */ bne $s0, $s2, .L7F0BDC20 +/* 0F277C 7F0BDC4C 26310001 */ addiu $s1, $s1, 1 +/* 0F2780 7F0BDC50 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2784 7F0BDC54 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +.L7F0BDC58: +/* 0F2788 7F0BDC58 0FC2D049 */ jal load_bg_file +/* 0F278C 7F0BDC5C 00000000 */ nop +/* 0F2790 7F0BDC60 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2794 7F0BDC64 0FC2510B */ jal store_stagenum_to_copyof_stagenum +/* 0F2798 7F0BDC68 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F279C 7F0BDC6C 0FC2921A */ jal init_watch_at_start_of_stage +/* 0F27A0 7F0BDC70 00000000 */ nop +/* 0F27A4 7F0BDC74 0FC3047F */ jal sub_GAME_7F0C11FC +/* 0F27A8 7F0BDC78 8FA40038 */ lw $a0, 0x38($sp) +/* 0F27AC 7F0BDC7C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F27B0 7F0BDC80 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F27B4 7F0BDC84 25529EF0 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F27B8 7F0BDC88 4481A000 */ mtc1 $at, $f20 +/* 0F27BC 7F0BDC8C 0240A025 */ move $s4, $s2 +/* 0F27C0 7F0BDC90 24130004 */ li $s3, 4 +.L7F0BDC94: +/* 0F27C4 7F0BDC94 0FC26919 */ jal get_num_players +/* 0F27C8 7F0BDC98 00000000 */ nop +/* 0F27CC 7F0BDC9C 24010001 */ li $at, 1 +/* 0F27D0 7F0BDCA0 14410009 */ bne $v0, $at, .L7F0BDCC8 +/* 0F27D4 7F0BDCA4 00008025 */ move $s0, $zero +/* 0F27D8 7F0BDCA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F27DC 7F0BDCAC 44812000 */ mtc1 $at, $f4 +/* 0F27E0 7F0BDCB0 44813000 */ mtc1 $at, $f6 +/* 0F27E4 7F0BDCB4 A280006A */ sb $zero, 0x6a($s4) +/* 0F27E8 7F0BDCB8 A280006B */ sb $zero, 0x6b($s4) +/* 0F27EC 7F0BDCBC E684005C */ swc1 $f4, 0x5c($s4) +/* 0F27F0 7F0BDCC0 1000001C */ b .L7F0BDD34 +/* 0F27F4 7F0BDCC4 E6860064 */ swc1 $f6, 0x64($s4) +.L7F0BDCC8: +/* 0F27F8 7F0BDCC8 3C118008 */ lui $s1, %hi(player1_player_data) +/* 0F27FC 7F0BDCCC 26319EF0 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x6110 +.L7F0BDCD0: +/* 0F2800 7F0BDCD0 0FC051D6 */ jal get_scenario +/* 0F2804 7F0BDCD4 00000000 */ nop +/* 0F2808 7F0BDCD8 14530003 */ bne $v0, $s3, .L7F0BDCE8 +/* 0F280C 7F0BDCDC 00000000 */ nop +/* 0F2810 7F0BDCE0 10000004 */ b .L7F0BDCF4 +/* 0F2814 7F0BDCE4 E634005C */ swc1 $f20, 0x5c($s1) +.L7F0BDCE8: +/* 0F2818 7F0BDCE8 0FC040EB */ jal get_player_mp_handicap +/* 0F281C 7F0BDCEC 02002025 */ move $a0, $s0 +/* 0F2820 7F0BDCF0 E620005C */ swc1 $f0, 0x5c($s1) +.L7F0BDCF4: +/* 0F2824 7F0BDCF4 0FC040F4 */ jal get_player_mp_char_height +/* 0F2828 7F0BDCF8 02002025 */ move $a0, $s0 +/* 0F282C 7F0BDCFC 26100001 */ addiu $s0, $s0, 1 +/* 0F2830 7F0BDD00 26310070 */ addiu $s1, $s1, 0x70 +/* 0F2834 7F0BDD04 1613FFF2 */ bne $s0, $s3, .L7F0BDCD0 +/* 0F2838 7F0BDD08 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F283C 7F0BDD0C 0FC04108 */ jal get_mp_timelimit +/* 0F2840 7F0BDD10 00000000 */ nop +/* 0F2844 7F0BDD14 0FC2FF0A */ jal set_mp_time +/* 0F2848 7F0BDD18 00402025 */ move $a0, $v0 +/* 0F284C 7F0BDD1C 0FC04111 */ jal get_mp_pointlimit +/* 0F2850 7F0BDD20 00000000 */ nop +/* 0F2854 7F0BDD24 0FC2FF0D */ jal set_mp_point +/* 0F2858 7F0BDD28 00402025 */ move $a0, $v0 +/* 0F285C 7F0BDD2C 0FC04076 */ jal copy_aim_settings_to_playerdata +/* 0F2860 7F0BDD30 00000000 */ nop +.L7F0BDD34: +/* 0F2864 7F0BDD34 44804000 */ mtc1 $zero, $f8 +/* 0F2868 7F0BDD38 44805000 */ mtc1 $zero, $f10 +/* 0F286C 7F0BDD3C 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F2870 7F0BDD40 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F2874 7F0BDD44 AE800034 */ sw $zero, 0x34($s4) +/* 0F2878 7F0BDD48 AE80003C */ sw $zero, 0x3c($s4) +/* 0F287C 7F0BDD4C AE820044 */ sw $v0, 0x44($s4) +/* 0F2880 7F0BDD50 AE800048 */ sw $zero, 0x48($s4) +/* 0F2884 7F0BDD54 AE800054 */ sw $zero, 0x54($s4) +/* 0F2888 7F0BDD58 AE800058 */ sw $zero, 0x58($s4) +/* 0F288C 7F0BDD5C AE80004C */ sw $zero, 0x4c($s4) +/* 0F2890 7F0BDD60 AE820050 */ sw $v0, 0x50($s4) +/* 0F2894 7F0BDD64 A2800068 */ sb $zero, 0x68($s4) +/* 0F2898 7F0BDD68 AE800060 */ sw $zero, 0x60($s4) +/* 0F289C 7F0BDD6C E6880038 */ swc1 $f8, 0x38($s4) +/* 0F28A0 7F0BDD70 E68A0040 */ swc1 $f10, 0x40($s4) +/* 0F28A4 7F0BDD74 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0F28A8 7F0BDD78 256BA0B0 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5f50 +/* 0F28AC 7F0BDD7C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F28B0 7F0BDD80 26940070 */ addiu $s4, $s4, 0x70 +/* 0F28B4 7F0BDD84 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F28B8 7F0BDD88 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F28BC 7F0BDD8C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F28C0 7F0BDD90 164BFFC0 */ bne $s2, $t3, .L7F0BDC94 +/* 0F28C4 7F0BDD94 AE40FFB4 */ sw $zero, -0x4c($s2) +.L7F0BDD98: +/* 0F28C8 7F0BDD98 0FC013B0 */ jal something_with_stage_objectives +/* 0F28CC 7F0BDD9C 00000000 */ nop +/* 0F28D0 7F0BDDA0 0FC30802 */ jal unpause_game +/* 0F28D4 7F0BDDA4 00000000 */ nop +/* 0F28D8 7F0BDDA8 0FC26E08 */ jal sub_GAME_7F09B820 +/* 0F28DC 7F0BDDAC 00000000 */ nop +/* 0F28E0 7F0BDDB0 0FC01514 */ jal sub_GAME_7F005450 +/* 0F28E4 7F0BDDB4 00000000 */ nop +/* 0F28E8 7F0BDDB8 0FC01548 */ jal zero_contents_of_80036070_74 +/* 0F28EC 7F0BDDBC 00000000 */ nop +/* 0F28F0 7F0BDDC0 0FC00538 */ jal init_load_objpos_table +/* 0F28F4 7F0BDDC4 00000000 */ nop +/* 0F28F8 7F0BDDC8 0FC005D4 */ jal reinit_between_menus +/* 0F28FC 7F0BDDCC 00000000 */ nop +/* 0F2900 7F0BDDD0 0FC0052C */ jal init_sound_effects_registers +/* 0F2904 7F0BDDD4 00000000 */ nop +/* 0F2908 7F0BDDD8 0FC00390 */ jal init_guards +/* 0F290C 7F0BDDDC 00000000 */ nop +/* 0F2910 7F0BDDE0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F2914 7F0BDDE4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2918 7F0BDDE8 0FC00EFC */ jal proplvreset2 +/* 0F291C 7F0BDDEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2920 7F0BDDF0 0FC01B64 */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F2924 7F0BDDF4 00000000 */ nop +/* 0F2928 7F0BDDF8 0FC01C60 */ jal sub_GAME_7F007180 +/* 0F292C 7F0BDDFC 00000000 */ nop +/* 0F2930 7F0BDE00 0FC01CA4 */ jal sub_GAME_7F007290 +/* 0F2934 7F0BDE04 00000000 */ nop +/* 0F2938 7F0BDE08 0FC01CAC */ jal sub_GAME_7F0072B0 +/* 0F293C 7F0BDE0C 00000000 */ nop +/* 0F2940 7F0BDE10 3C0C8005 */ lui $t4, %hi(current_stage_to_load) +/* 0F2944 7F0BDE14 8D8C8364 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F2948 7F0BDE18 2401005A */ li $at, 90 +/* 0F294C 7F0BDE1C 15810005 */ bne $t4, $at, .L7F0BDE34 +/* 0F2950 7F0BDE20 00000000 */ nop +/* 0F2954 7F0BDE24 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F2958 7F0BDE28 00000000 */ nop +/* 0F295C 7F0BDE2C 10000020 */ b .L7F0BDEB0 +/* 0F2960 7F0BDE30 00000000 */ nop +.L7F0BDE34: +/* 0F2964 7F0BDE34 0FC01A24 */ jal init_path_table_links +/* 0F2968 7F0BDE38 00000000 */ nop +/* 0F296C 7F0BDE3C 0FC01410 */ jal something_with_ejected_cartridges +/* 0F2970 7F0BDE40 00000000 */ nop +/* 0F2974 7F0BDE44 0FC26919 */ jal get_num_players +/* 0F2978 7F0BDE48 00008025 */ move $s0, $zero +/* 0F297C 7F0BDE4C 18400016 */ blez $v0, .L7F0BDEA8 +/* 0F2980 7F0BDE50 00000000 */ nop +.L7F0BDE54: +/* 0F2984 7F0BDE54 0FC26C43 */ jal set_cur_player +/* 0F2988 7F0BDE58 02002025 */ move $a0, $s0 +/* 0F298C 7F0BDE5C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F2990 7F0BDE60 00000000 */ nop +/* 0F2994 7F0BDE64 0FC01434 */ jal init_player_BONDdata_stats +/* 0F2998 7F0BDE68 00000000 */ nop +/* 0F299C 7F0BDE6C 0FC1E4FB */ jal init_player_BONDdata +/* 0F29A0 7F0BDE70 00000000 */ nop +/* 0F29A4 7F0BDE74 0FC015F1 */ jal load_camera_intro_type_values +/* 0F29A8 7F0BDE78 00000000 */ nop +/* 0F29AC 7F0BDE7C 0FC1E62E */ jal sub_GAME_7F0798B8 +/* 0F29B0 7F0BDE80 00000000 */ nop +/* 0F29B4 7F0BDE84 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F29B8 7F0BDE88 00000000 */ nop +/* 0F29BC 7F0BDE8C 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F29C0 7F0BDE90 00000000 */ nop +/* 0F29C4 7F0BDE94 0FC26919 */ jal get_num_players +/* 0F29C8 7F0BDE98 26100001 */ addiu $s0, $s0, 1 +/* 0F29CC 7F0BDE9C 0202082A */ slt $at, $s0, $v0 +/* 0F29D0 7F0BDEA0 1420FFEC */ bnez $at, .L7F0BDE54 +/* 0F29D4 7F0BDEA4 00000000 */ nop +.L7F0BDEA8: +/* 0F29D8 7F0BDEA8 0FC26C43 */ jal set_cur_player +/* 0F29DC 7F0BDEAC 00002025 */ move $a0, $zero +.L7F0BDEB0: +/* 0F29E0 7F0BDEB0 0FC0154D */ jal set_contents_of_80036078 +/* 0F29E4 7F0BDEB4 00002025 */ move $a0, $zero +/* 0F29E8 7F0BDEB8 0FC348E0 */ jal remove_viewport_buffer +/* 0F29EC 7F0BDEBC 00000000 */ nop +/* 0F29F0 7F0BDEC0 0C000EEC */ jal setVideoWidthHeightToMode +/* 0F29F4 7F0BDEC4 24040001 */ li $a0, 1 +/* 0F29F8 7F0BDEC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F29FC 7F0BDECC 44818000 */ mtc1 $at, $f16 +/* 0F2A00 7F0BDED0 3C018005 */ lui $at, %hi(D_80048368) +/* 0F2A04 7F0BDED4 00002025 */ move $a0, $zero +/* 0F2A08 7F0BDED8 0FC2FEFE */ jal set_controls_locked_flag +/* 0F2A0C 7F0BDEDC E4308368 */ swc1 $f16, %lo(D_80048368)($at) +/* 0F2A10 7F0BDEE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F2A14 7F0BDEE4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F2A18 7F0BDEE8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F2A1C 7F0BDEEC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F2A20 7F0BDEF0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F2A24 7F0BDEF4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F2A28 7F0BDEF8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F2A2C 7F0BDEFC 03E00008 */ jr $ra +/* 0F2A30 7F0BDF00 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel stage_load +/* 0F31D0 7F0BE660 3C018005 */ lui $at, %hi(current_stage_to_load) # $at, 0x8005 +/* 0F31D4 7F0BE664 AC248394 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F31D8 7F0BE668 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F31DC 7F0BE66C 44816000 */ mtc1 $at, $f12 +/* 0F31E0 7F0BE670 24020001 */ li $v0, 1 +/* 0F31E4 7F0BE674 3C018005 */ lui $at, %hi(D_800483C0) # $at, 0x8005 +/* 0F31E8 7F0BE678 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F31EC 7F0BE67C AC2283F4 */ sw $v0, %lo(D_800483C0)($at) +/* 0F31F0 7F0BE680 AFB10024 */ sw $s1, 0x24($sp) +/* 0F31F4 7F0BE684 3C018005 */ lui $at, %hi(controls_locked_flag) # $at, 0x8005 +/* 0F31F8 7F0BE688 3C118005 */ lui $s1, %hi(clock_timer) # $s1, 0x8005 +/* 0F31FC 7F0BE68C AC2083A0 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F3200 7F0BE690 263183A4 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c5c +/* 0F3204 7F0BE694 AE220000 */ sw $v0, ($s1) +/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 +/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(jp_global_timer_delta)($at) +/* 0F3210 7F0BE6A0 3C018005 */ lui $at, %hi(D_80048380) # $at, 0x8005 +/* 0F3214 7F0BE6A4 AC2083B0 */ sw $zero, %lo(D_80048380)($at) +/* 0F3218 7F0BE6A8 3C018005 */ lui $at, %hi(global_timer) # $at, 0x8005 +/* 0F321C 7F0BE6AC AC2083AC */ sw $zero, %lo(global_timer)($at) +/* 0F3220 7F0BE6B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3224 7F0BE6B4 44812000 */ mtc1 $at, $f4 + +/* 0F3228 7F0BE6B8 3C018005 */ lui $at, %hi(0x800483B4) # $at, 0x8005 +/* 0F322C 7F0BE6BC AFB00020 */ sw $s0, 0x20($sp) +/* 0F3230 7F0BE6C0 E42483B4 */ swc1 $f4, %lo(0x800483B4)($at) +/* 0F3234 7F0BE6C4 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F3238 7F0BE6C8 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F323C 7F0BE6CC 3C018005 */ lui $at, %hi(D_8004838C) # $at, 0x8005 +/* 0F3240 7F0BE6D0 AC2083C0 */ sw $zero, %lo(D_8004838C)($at) +/* 0F3244 7F0BE6D4 3C018005 */ lui $at, %hi(D_80048390) # $at, 0x8005 +/* 0F3248 7F0BE6D8 44800000 */ mtc1 $zero, $f0 +/* 0F324C 7F0BE6DC 3C108005 */ lui $s0, %hi(D_80048394) # $s0, 0x8005 +/* 0F3250 7F0BE6E0 AC2083C4 */ sw $zero, %lo(D_80048390)($at) +/* 0F3254 7F0BE6E4 261083C8 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c38 + +/* 0F3258 7F0BE6E8 AE000000 */ sw $zero, ($s0) +/* 0F325C 7F0BE6EC 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F3260 7F0BE6F0 E42083D8 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F3264 7F0BE6F4 3C018005 */ lui $at, %hi(D_800483B0) # $at, 0x8005 +/* 0F3268 7F0BE6F8 AC2083E4 */ sw $zero, %lo(D_800483B0)($at) +/* 0F326C 7F0BE6FC 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F3270 7F0BE700 E42083E8 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F3274 7F0BE704 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F3278 7F0BE708 3C018005 */ lui $at, %hi(D_800483A0) # $at, 0x8005 +/* 0F327C 7F0BE70C AFB40030 */ sw $s4, 0x30($sp) +/* 0F3280 7F0BE710 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F3284 7F0BE714 AFB20028 */ sw $s2, 0x28($sp) +/* 0F3288 7F0BE718 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F328C 7F0BE71C AFA40038 */ sw $a0, 0x38($sp) +/* 0F3290 7F0BE720 0C002492 */ jal sfx_c_70009238 +/* 0F3294 7F0BE724 AC2083D4 */ sw $zero, %lo(D_800483A0)($at) +/* 0F3298 7F0BE728 0C001C13 */ jal musicTrack1Vol +/* 0F329C 7F0BE72C 24047FFF */ li $a0, 32767 +/* 0F32A0 7F0BE730 0C001CF5 */ jal musicTrack2Vol +/* 0F32A4 7F0BE734 24047FFF */ li $a0, 32767 +/* 0F32A8 7F0BE738 0C001DD7 */ jal musicTrack3Vol +/* 0F32AC 7F0BE73C 24047FFF */ li $a0, 32767 +/* 0F32B0 7F0BE740 0FC30805 */ jal sub_GAME_7F0C1364 +/* 0F32B4 7F0BE744 00000000 */ nop +/* 0F32B8 7F0BE748 0FC01555 */ jal set_contents_of_80036078 +/* 0F32BC 7F0BE74C 24040001 */ li $a0, 1 +/* 0F32C0 7F0BE750 0FC01CD0 */ jal set_mt_tex_alloc +/* 0F32C4 7F0BE754 00000000 */ nop +/* 0F32C8 7F0BE758 0FC294DD */ jal sub_GAME_7F0A47D4 +/* 0F32CC 7F0BE75C 00000000 */ nop +/* 0F32D0 7F0BE760 0FC33324 */ jal load_prepare_global_image_bank +/* 0F32D4 7F0BE764 00000000 */ nop +/* 0F32D8 7F0BE768 0FC2B5D7 */ jal load_font_tables +/* 0F32DC 7F0BE76C 00000000 */ nop +/* 0F32E0 7F0BE770 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F32E4 7F0BE774 2401005A */ li $at, 90 +/* 0F32E8 7F0BE778 15E10005 */ bne $t7, $at, .Ljp7F0BE790 +/* 0F32EC 7F0BE77C 00000000 */ nop +/* 0F32F0 7F0BE780 0FC00348 */ jal init_menus_or_reset +/* 0F32F4 7F0BE784 00000000 */ nop +/* 0F32F8 7F0BE788 10000073 */ b .Ljp7F0BE958 +/* 0F32FC 7F0BE78C 00000000 */ nop +.Ljp7F0BE790: +/* 0F3300 7F0BE790 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3304 7F0BE794 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F3308 7F0BE798 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 0F330C 7F0BE79C AC2097D0 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F3310 7F0BE7A0 2401005A */ li $at, 90 +/* 0F3314 7F0BE7A4 1081001C */ beq $a0, $at, .Ljp7F0BE818 +/* 0F3318 7F0BE7A8 00000000 */ nop +/* 0F331C 7F0BE7AC 8E180000 */ lw $t8, ($s0) +/* 0F3320 7F0BE7B0 17000019 */ bnez $t8, .Ljp7F0BE818 +/* 0F3324 7F0BE7B4 00000000 */ nop +/* 0F3328 7F0BE7B8 8E390000 */ lw $t9, ($s1) +/* 0F332C 7F0BE7BC 3C088003 */ lui $t0, %hi(append_cheat_sp) # $t0, 0x8003 +/* 0F3330 7F0BE7C0 1B200015 */ blez $t9, .Ljp7F0BE818 +/* 0F3334 7F0BE7C4 00000000 */ nop +/* 0F3338 7F0BE7C8 8D08A940 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F333C 7F0BE7CC 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $s1, 0x8007 +/* 0F3340 7F0BE7D0 263196E1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x691f +/* 0F3344 7F0BE7D4 11000010 */ beqz $t0, .Ljp7F0BE818 +/* 0F3348 7F0BE7D8 24100001 */ li $s0, 1 +/* 0F334C 7F0BE7DC 2412004B */ li $s2, 75 +.Ljp7F0BE7E0: +/* 0F3350 7F0BE7E0 92290000 */ lbu $t1, ($s1) +/* 0F3354 7F0BE7E4 51200008 */ beql $t1, $zero, .Ljp7F0BE808 +/* 0F3358 7F0BE7E8 26100001 */ addiu $s0, $s0, 1 +/* 0F335C 7F0BE7EC 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F3360 7F0BE7F0 02002025 */ move $a0, $s0 +/* 0F3364 7F0BE7F4 50400004 */ beql $v0, $zero, .Ljp7F0BE808 +/* 0F3368 7F0BE7F8 26100001 */ addiu $s0, $s0, 1 +/* 0F336C 7F0BE7FC 0FC24963 */ jal turn_on_cheat_for_players +/* 0F3370 7F0BE800 02002025 */ move $a0, $s0 +/* 0F3374 7F0BE804 26100001 */ addiu $s0, $s0, 1 +.Ljp7F0BE808: +/* 0F3378 7F0BE808 1612FFF5 */ bne $s0, $s2, .Ljp7F0BE7E0 +/* 0F337C 7F0BE80C 26310001 */ addiu $s1, $s1, 1 +/* 0F3380 7F0BE810 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3384 7F0BE814 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +.Ljp7F0BE818: +/* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file +/* 0F338C 7F0BE81C 00000000 */ nop +/* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum +/* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage +/* 0F33A0 7F0BE830 00000000 */ nop +/* 0F33A4 7F0BE834 0FC307AB */ jal sub_GAME_7F0C11FC +/* 0F33A8 7F0BE838 8FA40038 */ lw $a0, 0x38($sp) +/* 0F33AC 7F0BE83C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F33B0 7F0BE840 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F33B4 7F0BE844 25529F60 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F33B8 7F0BE848 4481A000 */ mtc1 $at, $f20 +/* 0F33BC 7F0BE84C 0240A025 */ move $s4, $s2 +/* 0F33C0 7F0BE850 24130004 */ li $s3, 4 +.Ljp7F0BE854: +/* 0F33C4 7F0BE854 0FC26C01 */ jal get_num_players +/* 0F33C8 7F0BE858 00000000 */ nop +/* 0F33CC 7F0BE85C 24010001 */ li $at, 1 +/* 0F33D0 7F0BE860 14410009 */ bne $v0, $at, .Ljp7F0BE888 +/* 0F33D4 7F0BE864 00008025 */ move $s0, $zero +/* 0F33D8 7F0BE868 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F33DC 7F0BE86C 44813000 */ mtc1 $at, $f6 +/* 0F33E0 7F0BE870 44814000 */ mtc1 $at, $f8 +/* 0F33E4 7F0BE874 A280006A */ sb $zero, 0x6a($s4) +/* 0F33E8 7F0BE878 A280006B */ sb $zero, 0x6b($s4) +/* 0F33EC 7F0BE87C E686005C */ swc1 $f6, 0x5c($s4) +/* 0F33F0 7F0BE880 1000001C */ b .Ljp7F0BE8F4 +/* 0F33F4 7F0BE884 E6880064 */ swc1 $f8, 0x64($s4) +.Ljp7F0BE888: +/* 0F33F8 7F0BE888 3C118008 */ lui $s1, %hi(player1_player_data) # $s1, 0x8008 +/* 0F33FC 7F0BE88C 26319F60 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x60a0 +.Ljp7F0BE890: +/* 0F3400 7F0BE890 0FC05202 */ jal get_scenario +/* 0F3404 7F0BE894 00000000 */ nop +/* 0F3408 7F0BE898 14530003 */ bne $v0, $s3, .Ljp7F0BE8A8 +/* 0F340C 7F0BE89C 00000000 */ nop +/* 0F3410 7F0BE8A0 10000004 */ b .Ljp7F0BE8B4 +/* 0F3414 7F0BE8A4 E634005C */ swc1 $f20, 0x5c($s1) +.Ljp7F0BE8A8: +/* 0F3418 7F0BE8A8 0FC040FB */ jal get_player_mp_handicap +/* 0F341C 7F0BE8AC 02002025 */ move $a0, $s0 +/* 0F3420 7F0BE8B0 E620005C */ swc1 $f0, 0x5c($s1) +.Ljp7F0BE8B4: +/* 0F3424 7F0BE8B4 0FC04104 */ jal get_player_mp_char_height +/* 0F3428 7F0BE8B8 02002025 */ move $a0, $s0 +/* 0F342C 7F0BE8BC 26100001 */ addiu $s0, $s0, 1 +/* 0F3430 7F0BE8C0 26310070 */ addiu $s1, $s1, 0x70 +/* 0F3434 7F0BE8C4 1613FFF2 */ bne $s0, $s3, .Ljp7F0BE890 +/* 0F3438 7F0BE8C8 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F343C 7F0BE8CC 0FC04118 */ jal get_mp_timelimit +/* 0F3440 7F0BE8D0 00000000 */ nop +/* 0F3444 7F0BE8D4 0FC30224 */ jal set_mp_time +/* 0F3448 7F0BE8D8 00402025 */ move $a0, $v0 +/* 0F344C 7F0BE8DC 0FC04121 */ jal get_mp_pointlimit +/* 0F3450 7F0BE8E0 00000000 */ nop +/* 0F3454 7F0BE8E4 0FC30227 */ jal set_mp_point +/* 0F3458 7F0BE8E8 00402025 */ move $a0, $v0 +/* 0F345C 7F0BE8EC 0FC04086 */ jal copy_aim_settings_to_playerdata +/* 0F3460 7F0BE8F0 00000000 */ nop +.Ljp7F0BE8F4: +/* 0F3464 7F0BE8F4 44805000 */ mtc1 $zero, $f10 +/* 0F3468 7F0BE8F8 44808000 */ mtc1 $zero, $f16 +/* 0F346C 7F0BE8FC 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F3470 7F0BE900 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F3474 7F0BE904 AE800034 */ sw $zero, 0x34($s4) +/* 0F3478 7F0BE908 AE80003C */ sw $zero, 0x3c($s4) +/* 0F347C 7F0BE90C AE820044 */ sw $v0, 0x44($s4) +/* 0F3480 7F0BE910 AE800048 */ sw $zero, 0x48($s4) +/* 0F3484 7F0BE914 AE800054 */ sw $zero, 0x54($s4) +/* 0F3488 7F0BE918 AE800058 */ sw $zero, 0x58($s4) +/* 0F348C 7F0BE91C AE80004C */ sw $zero, 0x4c($s4) +/* 0F3490 7F0BE920 AE820050 */ sw $v0, 0x50($s4) +/* 0F3494 7F0BE924 A2800068 */ sb $zero, 0x68($s4) +/* 0F3498 7F0BE928 AE800060 */ sw $zero, 0x60($s4) +/* 0F349C 7F0BE92C E68A0038 */ swc1 $f10, 0x38($s4) +/* 0F34A0 7F0BE930 E6900040 */ swc1 $f16, 0x40($s4) +/* 0F34A4 7F0BE934 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0F34A8 7F0BE938 256BA120 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5ee0 +/* 0F34AC 7F0BE93C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F34B0 7F0BE940 26940070 */ addiu $s4, $s4, 0x70 +/* 0F34B4 7F0BE944 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F34B8 7F0BE948 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F34BC 7F0BE94C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F34C0 7F0BE950 164BFFC0 */ bne $s2, $t3, .Ljp7F0BE854 +/* 0F34C4 7F0BE954 AE40FFB4 */ sw $zero, -0x4c($s2) +.Ljp7F0BE958: +/* 0F34C8 7F0BE958 0FC013B4 */ jal something_with_stage_objectives +/* 0F34CC 7F0BE95C 00000000 */ nop +/* 0F34D0 7F0BE960 0FC30B2E */ jal unpause_game +/* 0F34D4 7F0BE964 00000000 */ nop +/* 0F34D8 7F0BE968 0FC270F0 */ jal sub_GAME_7F09B820 +/* 0F34DC 7F0BE96C 00000000 */ nop +/* 0F34E0 7F0BE970 0FC0151C */ jal sub_GAME_7F005450 +/* 0F34E4 7F0BE974 00000000 */ nop +/* 0F34E8 7F0BE978 0FC01550 */ jal zero_contents_of_80036070_74 +/* 0F34EC 7F0BE97C 00000000 */ nop +/* 0F34F0 7F0BE980 0FC00538 */ jal init_load_objpos_table +/* 0F34F4 7F0BE984 00000000 */ nop +/* 0F34F8 7F0BE988 0FC005D4 */ jal reinit_between_menus +/* 0F34FC 7F0BE98C 00000000 */ nop +/* 0F3500 7F0BE990 0FC0052C */ jal init_sound_effects_registers +/* 0F3504 7F0BE994 00000000 */ nop +/* 0F3508 7F0BE998 0FC00390 */ jal init_guards +/* 0F350C 7F0BE99C 00000000 */ nop +/* 0F3510 7F0BE9A0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F3514 7F0BE9A4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3518 7F0BE9A8 0FC00EFC */ jal proplvreset2 +/* 0F351C 7F0BE9AC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3520 7F0BE9B0 0FC01B6C */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F3524 7F0BE9B4 00000000 */ nop +/* 0F3528 7F0BE9B8 0FC01C68 */ jal sub_GAME_7F007180 +/* 0F352C 7F0BE9BC 00000000 */ nop +/* 0F3530 7F0BE9C0 0FC01CAC */ jal sub_GAME_7F007290 +/* 0F3534 7F0BE9C4 00000000 */ nop +/* 0F3538 7F0BE9C8 0FC01CB4 */ jal sub_GAME_7F0072B0 +/* 0F353C 7F0BE9CC 00000000 */ nop +/* 0F3540 7F0BE9D0 3C0C8005 */ lui $t4, %hi(current_stage_to_load) # $t4, 0x8005 +/* 0F3544 7F0BE9D4 8D8C8394 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F3548 7F0BE9D8 2401005A */ li $at, 90 +/* 0F354C 7F0BE9DC 15810005 */ bne $t4, $at, .Ljp7F0BE9F4 +/* 0F3550 7F0BE9E0 00000000 */ nop +/* 0F3554 7F0BE9E4 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F3558 7F0BE9E8 00000000 */ nop +/* 0F355C 7F0BE9EC 10000020 */ b .Ljp7F0BEA70 +/* 0F3560 7F0BE9F0 00000000 */ nop +.Ljp7F0BE9F4: +/* 0F3564 7F0BE9F4 0FC01A2C */ jal init_path_table_links +/* 0F3568 7F0BE9F8 00000000 */ nop +/* 0F356C 7F0BE9FC 0FC01418 */ jal something_with_ejected_cartridges +/* 0F3570 7F0BEA00 00000000 */ nop +/* 0F3574 7F0BEA04 0FC26C01 */ jal get_num_players +/* 0F3578 7F0BEA08 00008025 */ move $s0, $zero +/* 0F357C 7F0BEA0C 18400016 */ blez $v0, .Ljp7F0BEA68 +/* 0F3580 7F0BEA10 00000000 */ nop +.Ljp7F0BEA14: +/* 0F3584 7F0BEA14 0FC26F2B */ jal set_cur_player +/* 0F3588 7F0BEA18 02002025 */ move $a0, $s0 +/* 0F358C 7F0BEA1C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F3590 7F0BEA20 00000000 */ nop +/* 0F3594 7F0BEA24 0FC0143C */ jal init_player_BONDdata_stats +/* 0F3598 7F0BEA28 00000000 */ nop +/* 0F359C 7F0BEA2C 0FC1E677 */ jal init_player_BONDdata +/* 0F35A0 7F0BEA30 00000000 */ nop +/* 0F35A4 7F0BEA34 0FC015F9 */ jal load_camera_intro_type_values +/* 0F35A8 7F0BEA38 00000000 */ nop +/* 0F35AC 7F0BEA3C 0FC1E7AA */ jal sub_GAME_7F0798B8 +/* 0F35B0 7F0BEA40 00000000 */ nop +/* 0F35B4 7F0BEA44 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F35B8 7F0BEA48 00000000 */ nop +/* 0F35BC 7F0BEA4C 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F35C0 7F0BEA50 00000000 */ nop +/* 0F35C4 7F0BEA54 0FC26C01 */ jal get_num_players +/* 0F35C8 7F0BEA58 26100001 */ addiu $s0, $s0, 1 +/* 0F35CC 7F0BEA5C 0202082A */ slt $at, $s0, $v0 +/* 0F35D0 7F0BEA60 1420FFEC */ bnez $at, .Ljp7F0BEA14 +/* 0F35D4 7F0BEA64 00000000 */ nop +.Ljp7F0BEA68: +/* 0F35D8 7F0BEA68 0FC26F2B */ jal set_cur_player +/* 0F35DC 7F0BEA6C 00002025 */ move $a0, $zero +.Ljp7F0BEA70: +/* 0F35E0 7F0BEA70 0FC01555 */ jal set_contents_of_80036078 +/* 0F35E4 7F0BEA74 00002025 */ move $a0, $zero +/* 0F35E8 7F0BEA78 0FC34C18 */ jal remove_viewport_buffer +/* 0F35EC 7F0BEA7C 00000000 */ nop +/* 0F35F0 7F0BEA80 0C000EEC */ jal setVideoWidthHeightToMode +/* 0F35F4 7F0BEA84 24040001 */ li $a0, 1 +/* 0F35F8 7F0BEA88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35FC 7F0BEA8C 44819000 */ mtc1 $at, $f18 +/* 0F3600 7F0BEA90 3C018005 */ lui $at, %hi(D_80048368) # $at, 0x8005 +/* 0F3604 7F0BEA94 00002025 */ move $a0, $zero +/* 0F3608 7F0BEA98 0FC3020C */ jal set_controls_locked_flag +/* 0F360C 7F0BEA9C E4328398 */ swc1 $f18, %lo(D_80048368)($at) +/* 0F3610 7F0BEAA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F3614 7F0BEAA4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F3618 7F0BEAA8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F361C 7F0BEAAC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F3620 7F0BEAB0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F3624 7F0BEAB4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F3628 7F0BEAB8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F362C 7F0BEABC 03E00008 */ jr $ra +/* 0F3630 7F0BEAC0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#endif + + + +s32 sub_GAME_7F0BDF04(void) { + return current_stage_to_load; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BDF10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BDF10 +/* 0F2A40 7F0BDF10 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F2A44 7F0BDF14 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F2A48 7F0BDF18 AFB00018 */ sw $s0, 0x18($sp) +/* 0F2A4C 7F0BDF1C 1080003B */ beqz $a0, .L7F0BE00C +/* 0F2A50 7F0BDF20 AFA00020 */ sw $zero, 0x20($sp) +/* 0F2A54 7F0BDF24 3C058005 */ lui $a1, %hi(D_800483CC) +/* 0F2A58 7F0BDF28 8CA583CC */ lw $a1, %lo(D_800483CC)($a1) +/* 0F2A5C 7F0BDF2C 0FC2E779 */ jal sub_GAME_7F0B9DE4 +/* 0F2A60 7F0BDF30 2406FFFF */ li $a2, -1 +/* 0F2A64 7F0BDF34 3C0E8005 */ lui $t6, %hi(D_800483D4) +/* 0F2A68 7F0BDF38 8DCE83D4 */ lw $t6, %lo(D_800483D4)($t6) +/* 0F2A6C 7F0BDF3C 3C0F8005 */ lui $t7, %hi(D_800483D8) +/* 0F2A70 7F0BDF40 8DEF83D8 */ lw $t7, %lo(D_800483D8)($t7) +/* 0F2A74 7F0BDF44 3C018005 */ lui $at, %hi(D_800483D0) +/* 0F2A78 7F0BDF48 3C188005 */ lui $t8, %hi(D_800483DC) +/* 0F2A7C 7F0BDF4C AC2E83D0 */ sw $t6, %lo(D_800483D0)($at) +/* 0F2A80 7F0BDF50 8F1883DC */ lw $t8, %lo(D_800483DC)($t8) +/* 0F2A84 7F0BDF54 3C018005 */ lui $at, %hi(D_800483D4) +/* 0F2A88 7F0BDF58 AC2F83D4 */ sw $t7, %lo(D_800483D4)($at) +/* 0F2A8C 7F0BDF5C 3C038005 */ lui $v1, %hi(D_800483E0) +/* 0F2A90 7F0BDF60 3C018005 */ lui $at, %hi(D_800483D8) +/* 0F2A94 7F0BDF64 8C6383E0 */ lw $v1, %lo(D_800483E0)($v1) +/* 0F2A98 7F0BDF68 AC3883D8 */ sw $t8, %lo(D_800483D8)($at) +/* 0F2A9C 7F0BDF6C 3C018005 */ lui $at, %hi(D_800483DC) +/* 0F2AA0 7F0BDF70 AFA20028 */ sw $v0, 0x28($sp) +/* 0F2AA4 7F0BDF74 00002025 */ move $a0, $zero +/* 0F2AA8 7F0BDF78 34058000 */ li $a1, 32768 +/* 0F2AAC 7F0BDF7C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2AB0 7F0BDF80 AC2383DC */ sw $v1, %lo(D_800483DC)($at) +/* 0F2AB4 7F0BDF84 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2AB8 7F0BDF88 24040001 */ li $a0, 1 +/* 0F2ABC 7F0BDF8C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2AC0 7F0BDF90 34058000 */ li $a1, 32768 +/* 0F2AC4 7F0BDF94 3C198005 */ lui $t9, %hi(D_800483DC) +/* 0F2AC8 7F0BDF98 8F3983DC */ lw $t9, %lo(D_800483DC)($t9) +/* 0F2ACC 7F0BDF9C 00501825 */ or $v1, $v0, $s0 +/* 0F2AD0 7F0BDFA0 3C0B8005 */ lui $t3, %hi(D_800483D0) +/* 0F2AD4 7F0BDFA4 13230006 */ beq $t9, $v1, .L7F0BDFC0 +/* 0F2AD8 7F0BDFA8 3C0C8005 */ lui $t4, %hi(D_800483D4) +/* 0F2ADC 7F0BDFAC 3C028005 */ lui $v0, %hi(D_800483C0) +/* 0F2AE0 7F0BDFB0 244283C0 */ addiu $v0, %lo(D_800483C0) # addiu $v0, $v0, -0x7c40 +/* 0F2AE4 7F0BDFB4 8C490000 */ lw $t1, ($v0) +/* 0F2AE8 7F0BDFB8 392A0001 */ xori $t2, $t1, 1 +/* 0F2AEC 7F0BDFBC AC4A0000 */ sw $t2, ($v0) +.L7F0BDFC0: +/* 0F2AF0 7F0BDFC0 8D6B83D0 */ lw $t3, %lo(D_800483D0)($t3) +/* 0F2AF4 7F0BDFC4 8D8C83D4 */ lw $t4, %lo(D_800483D4)($t4) +/* 0F2AF8 7F0BDFC8 3C028005 */ lui $v0, %hi(D_800483C0) +/* 0F2AFC 7F0BDFCC 244283C0 */ addiu $v0, %lo(D_800483C0) # addiu $v0, $v0, -0x7c40 +/* 0F2B00 7F0BDFD0 116C0004 */ beq $t3, $t4, .L7F0BDFE4 +/* 0F2B04 7F0BDFD4 3C018005 */ lui $at, %hi(D_800483E0) +/* 0F2B08 7F0BDFD8 8C4E0000 */ lw $t6, ($v0) +/* 0F2B0C 7F0BDFDC 39CF0001 */ xori $t7, $t6, 1 +/* 0F2B10 7F0BDFE0 AC4F0000 */ sw $t7, ($v0) +.L7F0BDFE4: +/* 0F2B14 7F0BDFE4 10600004 */ beqz $v1, .L7F0BDFF8 +/* 0F2B18 7F0BDFE8 AC2383E0 */ sw $v1, %lo(D_800483E0)($at) +/* 0F2B1C 7F0BDFEC 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2B20 7F0BDFF0 10000002 */ b .L7F0BDFFC +/* 0F2B24 7F0BDFF4 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BDFF8: +/* 0F2B28 7F0BDFF8 2404FFFF */ li $a0, -1 +.L7F0BDFFC: +/* 0F2B2C 7F0BDFFC 0FC2E77D */ jal sub_GAME_7F0B9DF4 +/* 0F2B30 7F0BE000 00000000 */ nop +/* 0F2B34 7F0BE004 100000BC */ b .L7F0BE2F8 +/* 0F2B38 7F0BE008 8FA20028 */ lw $v0, 0x28($sp) +.L7F0BE00C: +/* 0F2B3C 7F0BE00C 00002025 */ move $a0, $zero +/* 0F2B40 7F0BE010 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B44 7F0BE014 24050200 */ li $a1, 512 +/* 0F2B48 7F0BE018 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2B4C 7F0BE01C 24040001 */ li $a0, 1 +/* 0F2B50 7F0BE020 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B54 7F0BE024 24050200 */ li $a1, 512 +/* 0F2B58 7F0BE028 0050C025 */ or $t8, $v0, $s0 +/* 0F2B5C 7F0BE02C 1300000B */ beqz $t8, .L7F0BE05C +/* 0F2B60 7F0BE030 24050100 */ li $a1, 256 +/* 0F2B64 7F0BE034 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2B68 7F0BE038 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2B6C 7F0BE03C 24190001 */ li $t9, 1 +/* 0F2B70 7F0BE040 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2B74 7F0BE044 2484FFFF */ addiu $a0, $a0, -1 +/* 0F2B78 7F0BE048 AC2483CC */ sw $a0, %lo(D_800483CC)($at) +/* 0F2B7C 7F0BE04C 04810003 */ bgez $a0, .L7F0BE05C +/* 0F2B80 7F0BE050 AFB90020 */ sw $t9, 0x20($sp) +/* 0F2B84 7F0BE054 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2B88 7F0BE058 AC2083CC */ sw $zero, %lo(D_800483CC)($at) +.L7F0BE05C: +/* 0F2B8C 7F0BE05C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B90 7F0BE060 00002025 */ move $a0, $zero +/* 0F2B94 7F0BE064 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2B98 7F0BE068 24040001 */ li $a0, 1 +/* 0F2B9C 7F0BE06C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2BA0 7F0BE070 24050100 */ li $a1, 256 +/* 0F2BA4 7F0BE074 00504025 */ or $t0, $v0, $s0 +/* 0F2BA8 7F0BE078 11000008 */ beqz $t0, .L7F0BE09C +/* 0F2BAC 7F0BE07C 24050010 */ li $a1, 16 +/* 0F2BB0 7F0BE080 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2BB4 7F0BE084 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2BB8 7F0BE088 24090001 */ li $t1, 1 +/* 0F2BBC 7F0BE08C 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2BC0 7F0BE090 24840001 */ addiu $a0, $a0, 1 +/* 0F2BC4 7F0BE094 AC2483CC */ sw $a0, %lo(D_800483CC)($at) +/* 0F2BC8 7F0BE098 AFA90020 */ sw $t1, 0x20($sp) +.L7F0BE09C: +/* 0F2BCC 7F0BE09C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BD0 7F0BE0A0 00002025 */ move $a0, $zero +/* 0F2BD4 7F0BE0A4 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2BD8 7F0BE0A8 24040001 */ li $a0, 1 +/* 0F2BDC 7F0BE0AC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BE0 7F0BE0B0 24050010 */ li $a1, 16 +/* 0F2BE4 7F0BE0B4 00505025 */ or $t2, $v0, $s0 +/* 0F2BE8 7F0BE0B8 11400012 */ beqz $t2, .L7F0BE104 +/* 0F2BEC 7F0BE0BC 00002025 */ move $a0, $zero +/* 0F2BF0 7F0BE0C0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BF4 7F0BE0C4 24050020 */ li $a1, 32 +/* 0F2BF8 7F0BE0C8 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2BFC 7F0BE0CC 24040001 */ li $a0, 1 +/* 0F2C00 7F0BE0D0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C04 7F0BE0D4 24050020 */ li $a1, 32 +/* 0F2C08 7F0BE0D8 00505825 */ or $t3, $v0, $s0 +/* 0F2C0C 7F0BE0DC 11600009 */ beqz $t3, .L7F0BE104 +/* 0F2C10 7F0BE0E0 00002025 */ move $a0, $zero +/* 0F2C14 7F0BE0E4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C18 7F0BE0E8 24050400 */ li $a1, 1024 +/* 0F2C1C 7F0BE0EC 10400081 */ beqz $v0, .L7F0BE2F4 +/* 0F2C20 7F0BE0F0 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C24 7F0BE0F4 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0F2C28 7F0BE0F8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2C2C 7F0BE0FC 1000007E */ b .L7F0BE2F8 +/* 0F2C30 7F0BE100 00001025 */ move $v0, $zero +.L7F0BE104: +/* 0F2C34 7F0BE104 00002025 */ move $a0, $zero +/* 0F2C38 7F0BE108 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C3C 7F0BE10C 24050010 */ li $a1, 16 +/* 0F2C40 7F0BE110 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2C44 7F0BE114 24040001 */ li $a0, 1 +/* 0F2C48 7F0BE118 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C4C 7F0BE11C 24050010 */ li $a1, 16 +/* 0F2C50 7F0BE120 00506025 */ or $t4, $v0, $s0 +/* 0F2C54 7F0BE124 11800029 */ beqz $t4, .L7F0BE1CC +/* 0F2C58 7F0BE128 00002025 */ move $a0, $zero +/* 0F2C5C 7F0BE12C 00002025 */ move $a0, $zero +/* 0F2C60 7F0BE130 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C64 7F0BE134 24050400 */ li $a1, 1024 +/* 0F2C68 7F0BE138 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2C6C 7F0BE13C 24040001 */ li $a0, 1 +/* 0F2C70 7F0BE140 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C74 7F0BE144 24050400 */ li $a1, 1024 +/* 0F2C78 7F0BE148 00506825 */ or $t5, $v0, $s0 +/* 0F2C7C 7F0BE14C 11A0000A */ beqz $t5, .L7F0BE178 +/* 0F2C80 7F0BE150 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C84 7F0BE154 0FC2E6B9 */ jal sub_GAME_7F0B9AE4 +/* 0F2C88 7F0BE158 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2C8C 7F0BE15C 14400006 */ bnez $v0, .L7F0BE178 +/* 0F2C90 7F0BE160 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C94 7F0BE164 240E0001 */ li $t6, 1 +/* 0F2C98 7F0BE168 AFAE0020 */ sw $t6, 0x20($sp) +/* 0F2C9C 7F0BE16C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CA0 7F0BE170 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0F2CA4 7F0BE174 00002825 */ move $a1, $zero +.L7F0BE178: +/* 0F2CA8 7F0BE178 00002025 */ move $a0, $zero +/* 0F2CAC 7F0BE17C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CB0 7F0BE180 24050800 */ li $a1, 2048 +/* 0F2CB4 7F0BE184 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2CB8 7F0BE188 24040001 */ li $a0, 1 +/* 0F2CBC 7F0BE18C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CC0 7F0BE190 24050800 */ li $a1, 2048 +/* 0F2CC4 7F0BE194 00507825 */ or $t7, $v0, $s0 +/* 0F2CC8 7F0BE198 11E00056 */ beqz $t7, .L7F0BE2F4 +/* 0F2CCC 7F0BE19C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2CD0 7F0BE1A0 0FC2E6B9 */ jal sub_GAME_7F0B9AE4 +/* 0F2CD4 7F0BE1A4 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CD8 7F0BE1A8 10400052 */ beqz $v0, .L7F0BE2F4 +/* 0F2CDC 7F0BE1AC 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2CE0 7F0BE1B0 24180001 */ li $t8, 1 +/* 0F2CE4 7F0BE1B4 AFB80020 */ sw $t8, 0x20($sp) +/* 0F2CE8 7F0BE1B8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CEC 7F0BE1BC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0F2CF0 7F0BE1C0 24050001 */ li $a1, 1 +/* 0F2CF4 7F0BE1C4 1000004C */ b .L7F0BE2F8 +/* 0F2CF8 7F0BE1C8 00001025 */ move $v0, $zero +.L7F0BE1CC: +/* 0F2CFC 7F0BE1CC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2D00 7F0BE1D0 24050020 */ li $a1, 32 +/* 0F2D04 7F0BE1D4 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D08 7F0BE1D8 24040001 */ li $a0, 1 +/* 0F2D0C 7F0BE1DC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2D10 7F0BE1E0 24050020 */ li $a1, 32 +/* 0F2D14 7F0BE1E4 0050C825 */ or $t9, $v0, $s0 +/* 0F2D18 7F0BE1E8 13200027 */ beqz $t9, .L7F0BE288 +/* 0F2D1C 7F0BE1EC 00002025 */ move $a0, $zero +/* 0F2D20 7F0BE1F0 00002025 */ move $a0, $zero +/* 0F2D24 7F0BE1F4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D28 7F0BE1F8 24050400 */ li $a1, 1024 +/* 0F2D2C 7F0BE1FC 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D30 7F0BE200 24040001 */ li $a0, 1 +/* 0F2D34 7F0BE204 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D38 7F0BE208 24050400 */ li $a1, 1024 +/* 0F2D3C 7F0BE20C 00504025 */ or $t0, $v0, $s0 +/* 0F2D40 7F0BE210 11000009 */ beqz $t0, .L7F0BE238 +/* 0F2D44 7F0BE214 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D48 7F0BE218 0FC2E6C1 */ jal sub_GAME_7F0B9B04 +/* 0F2D4C 7F0BE21C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2D50 7F0BE220 10400005 */ beqz $v0, .L7F0BE238 +/* 0F2D54 7F0BE224 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D58 7F0BE228 24090001 */ li $t1, 1 +/* 0F2D5C 7F0BE22C AFA90020 */ sw $t1, 0x20($sp) +/* 0F2D60 7F0BE230 0FC2E6D1 */ jal sub_GAME_7F0B9B44 +/* 0F2D64 7F0BE234 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE238: +/* 0F2D68 7F0BE238 00002025 */ move $a0, $zero +/* 0F2D6C 7F0BE23C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D70 7F0BE240 24050800 */ li $a1, 2048 +/* 0F2D74 7F0BE244 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D78 7F0BE248 24040001 */ li $a0, 1 +/* 0F2D7C 7F0BE24C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D80 7F0BE250 24050800 */ li $a1, 2048 +/* 0F2D84 7F0BE254 00505025 */ or $t2, $v0, $s0 +/* 0F2D88 7F0BE258 11400026 */ beqz $t2, .L7F0BE2F4 +/* 0F2D8C 7F0BE25C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D90 7F0BE260 0FC2E6C1 */ jal sub_GAME_7F0B9B04 +/* 0F2D94 7F0BE264 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2D98 7F0BE268 14400022 */ bnez $v0, .L7F0BE2F4 +/* 0F2D9C 7F0BE26C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2DA0 7F0BE270 240B0001 */ li $t3, 1 +/* 0F2DA4 7F0BE274 AFAB0020 */ sw $t3, 0x20($sp) +/* 0F2DA8 7F0BE278 0FC2E6C9 */ jal sub_GAME_7F0B9B24 +/* 0F2DAC 7F0BE27C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2DB0 7F0BE280 1000001D */ b .L7F0BE2F8 +/* 0F2DB4 7F0BE284 00001025 */ move $v0, $zero +.L7F0BE288: +/* 0F2DB8 7F0BE288 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DBC 7F0BE28C 24050400 */ li $a1, 1024 +/* 0F2DC0 7F0BE290 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2DC4 7F0BE294 24040001 */ li $a0, 1 +/* 0F2DC8 7F0BE298 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DCC 7F0BE29C 24050400 */ li $a1, 1024 +/* 0F2DD0 7F0BE2A0 00506025 */ or $t4, $v0, $s0 +/* 0F2DD4 7F0BE2A4 11800005 */ beqz $t4, .L7F0BE2BC +/* 0F2DD8 7F0BE2A8 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2DDC 7F0BE2AC 240D0001 */ li $t5, 1 +/* 0F2DE0 7F0BE2B0 AFAD0020 */ sw $t5, 0x20($sp) +/* 0F2DE4 7F0BE2B4 0FC2E69F */ jal sub_GAME_7F0B9A7C +/* 0F2DE8 7F0BE2B8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE2BC: +/* 0F2DEC 7F0BE2BC 00002025 */ move $a0, $zero +/* 0F2DF0 7F0BE2C0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DF4 7F0BE2C4 24050800 */ li $a1, 2048 +/* 0F2DF8 7F0BE2C8 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2DFC 7F0BE2CC 24040001 */ li $a0, 1 +/* 0F2E00 7F0BE2D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2E04 7F0BE2D4 24050800 */ li $a1, 2048 +/* 0F2E08 7F0BE2D8 00507025 */ or $t6, $v0, $s0 +/* 0F2E0C 7F0BE2DC 11C00005 */ beqz $t6, .L7F0BE2F4 +/* 0F2E10 7F0BE2E0 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2E14 7F0BE2E4 240F0001 */ li $t7, 1 +/* 0F2E18 7F0BE2E8 AFAF0020 */ sw $t7, 0x20($sp) +/* 0F2E1C 7F0BE2EC 0FC2E68B */ jal sub_GAME_7F0B9A2C +/* 0F2E20 7F0BE2F0 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE2F4: +/* 0F2E24 7F0BE2F4 00001025 */ move $v0, $zero +.L7F0BE2F8: +/* 0F2E28 7F0BE2F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F2E2C 7F0BE2FC 8FB00018 */ lw $s0, 0x18($sp) +/* 0F2E30 7F0BE300 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F2E34 7F0BE304 03E00008 */ jr $ra +/* 0F2E38 7F0BE308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BE30C(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BE30C +/* 0F2E3C 7F0BE30C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F2E40 7F0BE310 AFA40060 */ sw $a0, 0x60($sp) +/* 0F2E44 7F0BE314 248F0008 */ addiu $t7, $a0, 8 +/* 0F2E48 7F0BE318 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F2E4C 7F0BE31C AFB10018 */ sw $s1, 0x18($sp) +/* 0F2E50 7F0BE320 AFB00014 */ sw $s0, 0x14($sp) +/* 0F2E54 7F0BE324 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2E58 7F0BE328 3C18BC00 */ lui $t8, (0xBC000006 >> 16) # lui $t8, 0xbc00 +/* 0F2E5C 7F0BE32C 37180006 */ ori $t8, (0xBC000006 & 0xFFFF) # ori $t8, $t8, 6 +/* 0F2E60 7F0BE330 AC980000 */ sw $t8, ($a0) +/* 0F2E64 7F0BE334 AC800004 */ sw $zero, 4($a0) +/* 0F2E68 7F0BE338 8FB00060 */ lw $s0, 0x60($sp) +/* 0F2E6C 7F0BE33C 3C0ABC00 */ lui $t2, (0xBC000406 >> 16) # lui $t2, 0xbc00 +/* 0F2E70 7F0BE340 354A0406 */ ori $t2, (0xBC000406 & 0xFFFF) # ori $t2, $t2, 0x406 +/* 0F2E74 7F0BE344 26090008 */ addiu $t1, $s0, 8 +/* 0F2E78 7F0BE348 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2E7C 7F0BE34C 3C048009 */ lui $a0, %hi(ptr_jfont_DL) +/* 0F2E80 7F0BE350 AE0A0000 */ sw $t2, ($s0) +/* 0F2E84 7F0BE354 0C003A2C */ jal osVirtualToPhysical +/* 0F2E88 7F0BE358 8C84C260 */ lw $a0, %lo(ptr_jfont_DL)($a0) +/* 0F2E8C 7F0BE35C AE020004 */ sw $v0, 4($s0) +/* 0F2E90 7F0BE360 8FAB0060 */ lw $t3, 0x60($sp) +/* 0F2E94 7F0BE364 3C0D0100 */ lui $t5, 0x100 +/* 0F2E98 7F0BE368 3C050600 */ lui $a1, 0x600 +/* 0F2E9C 7F0BE36C 256C0008 */ addiu $t4, $t3, 8 +/* 0F2EA0 7F0BE370 AFAC0060 */ sw $t4, 0x60($sp) +/* 0F2EA4 7F0BE374 25AD0040 */ addiu $t5, $t5, 0x40 +/* 0F2EA8 7F0BE378 AD6D0004 */ sw $t5, 4($t3) +/* 0F2EAC 7F0BE37C AD650000 */ sw $a1, ($t3) +/* 0F2EB0 7F0BE380 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2EB4 7F0BE384 3C180100 */ lui $t8, 0x100 +/* 0F2EB8 7F0BE388 27180020 */ addiu $t8, $t8, 0x20 +/* 0F2EBC 7F0BE38C 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2EC0 7F0BE390 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2EC4 7F0BE394 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F2EC8 7F0BE398 ADD80004 */ sw $t8, 4($t6) +/* 0F2ECC 7F0BE39C ADC50000 */ sw $a1, ($t6) +/* 0F2ED0 7F0BE3A0 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F2ED4 7F0BE3A4 2401005A */ li $at, 90 +/* 0F2ED8 7F0BE3A8 17210025 */ bne $t9, $at, .L7F0BE440 +/* 0F2EDC 7F0BE3AC 00000000 */ nop +/* 0F2EE0 7F0BE3B0 0C000FAD */ jal video_related_10 +/* 0F2EE4 7F0BE3B4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2EE8 7F0BE3B8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F2EEC 7F0BE3BC 0C000F16 */ jal video_related_F +/* 0F2EF0 7F0BE3C0 00402025 */ move $a0, $v0 +/* 0F2EF4 7F0BE3C4 24490008 */ addiu $t1, $v0, 8 +/* 0F2EF8 7F0BE3C8 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2EFC 7F0BE3CC 3C0AED00 */ lui $t2, 0xed00 +/* 0F2F00 7F0BE3D0 AC4A0000 */ sw $t2, ($v0) +/* 0F2F04 7F0BE3D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F2F08 7F0BE3D8 00408025 */ move $s0, $v0 +/* 0F2F0C 7F0BE3DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F2F10 7F0BE3E0 A7A20022 */ sh $v0, 0x22($sp) +/* 0F2F14 7F0BE3E4 87B10022 */ lh $s1, 0x22($sp) +/* 0F2F18 7F0BE3E8 44822000 */ mtc1 $v0, $f4 +/* 0F2F1C 7F0BE3EC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F2F20 7F0BE3F0 44918000 */ mtc1 $s1, $f16 +/* 0F2F24 7F0BE3F4 468021A0 */ cvt.s.w $f6, $f4 +/* 0F2F28 7F0BE3F8 44810000 */ mtc1 $at, $f0 +/* 0F2F2C 7F0BE3FC 468084A0 */ cvt.s.w $f18, $f16 +/* 0F2F30 7F0BE400 46003202 */ mul.s $f8, $f6, $f0 +/* 0F2F34 7F0BE404 00000000 */ nop +/* 0F2F38 7F0BE408 46009102 */ mul.s $f4, $f18, $f0 +/* 0F2F3C 7F0BE40C 4600428D */ trunc.w.s $f10, $f8 +/* 0F2F40 7F0BE410 4600218D */ trunc.w.s $f6, $f4 +/* 0F2F44 7F0BE414 440C5000 */ mfc1 $t4, $f10 +/* 0F2F48 7F0BE418 440F3000 */ mfc1 $t7, $f6 +/* 0F2F4C 7F0BE41C 318D0FFF */ andi $t5, $t4, 0xfff +/* 0F2F50 7F0BE420 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F2F54 7F0BE424 0018CB00 */ sll $t9, $t8, 0xc +/* 0F2F58 7F0BE428 01B94825 */ or $t1, $t5, $t9 +/* 0F2F5C 7F0BE42C AE090004 */ sw $t1, 4($s0) +/* 0F2F60 7F0BE430 0FC06BBF */ jal menu_jump_constructor_handler +/* 0F2F64 7F0BE434 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2F68 7F0BE438 10000102 */ b .L7F0BE844 +/* 0F2F6C 7F0BE43C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE440: +/* 0F2F70 7F0BE440 0FC26919 */ jal get_num_players +/* 0F2F74 7F0BE444 00000000 */ nop +/* 0F2F78 7F0BE448 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2F7C 7F0BE44C AFA20044 */ sw $v0, 0x44($sp) +/* 0F2F80 7F0BE450 3C0CBC00 */ lui $t4, (0xBC000404 >> 16) # lui $t4, 0xbc00 +/* 0F2F84 7F0BE454 254B0008 */ addiu $t3, $t2, 8 +/* 0F2F88 7F0BE458 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2F8C 7F0BE45C 24070002 */ li $a3, 2 +/* 0F2F90 7F0BE460 358C0404 */ ori $t4, (0xBC000404 & 0xFFFF) # ori $t4, $t4, 0x404 +/* 0F2F94 7F0BE464 AD4C0000 */ sw $t4, ($t2) +/* 0F2F98 7F0BE468 AD470004 */ sw $a3, 4($t2) +/* 0F2F9C 7F0BE46C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2FA0 7F0BE470 3C18BC00 */ lui $t8, (0xBC000C04 >> 16) # lui $t8, 0xbc00 +/* 0F2FA4 7F0BE474 37180C04 */ ori $t8, (0xBC000C04 & 0xFFFF) # ori $t8, $t8, 0xc04 +/* 0F2FA8 7F0BE478 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2FAC 7F0BE47C AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2FB0 7F0BE480 ADC70004 */ sw $a3, 4($t6) +/* 0F2FB4 7F0BE484 ADD80000 */ sw $t8, ($t6) +/* 0F2FB8 7F0BE488 8FAD0060 */ lw $t5, 0x60($sp) +/* 0F2FBC 7F0BE48C 3C09BC00 */ lui $t1, (0xBC001404 >> 16) # lui $t1, 0xbc00 +/* 0F2FC0 7F0BE490 3408FFFE */ li $t0, 65534 +/* 0F2FC4 7F0BE494 25B90008 */ addiu $t9, $t5, 8 +/* 0F2FC8 7F0BE498 AFB90060 */ sw $t9, 0x60($sp) +/* 0F2FCC 7F0BE49C 35291404 */ ori $t1, (0xBC001404 & 0xFFFF) # ori $t1, $t1, 0x1404 +/* 0F2FD0 7F0BE4A0 ADA90000 */ sw $t1, ($t5) +/* 0F2FD4 7F0BE4A4 ADA80004 */ sw $t0, 4($t5) +/* 0F2FD8 7F0BE4A8 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2FDC 7F0BE4AC 3C0CBC00 */ lui $t4, (0xBC001C04 >> 16) # lui $t4, 0xbc00 +/* 0F2FE0 7F0BE4B0 358C1C04 */ ori $t4, (0xBC001C04 & 0xFFFF) # ori $t4, $t4, 0x1c04 +/* 0F2FE4 7F0BE4B4 254B0008 */ addiu $t3, $t2, 8 +/* 0F2FE8 7F0BE4B8 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2FEC 7F0BE4BC 00008825 */ move $s1, $zero +/* 0F2FF0 7F0BE4C0 AD480004 */ sw $t0, 4($t2) +/* 0F2FF4 7F0BE4C4 184000DF */ blez $v0, .L7F0BE844 +/* 0F2FF8 7F0BE4C8 AD4C0000 */ sw $t4, ($t2) +/* 0F2FFC 7F0BE4CC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0F3000 7F0BE4D0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +.L7F0BE4D4: +/* 0F3004 7F0BE4D4 0FC26D4A */ jal sub_GAME_7F09B528 +/* 0F3008 7F0BE4D8 02202025 */ move $a0, $s1 +/* 0F300C 7F0BE4DC 0FC26C43 */ jal set_cur_player +/* 0F3010 7F0BE4E0 00402025 */ move $a0, $v0 +/* 0F3014 7F0BE4E4 8E020000 */ lw $v0, ($s0) +/* 0F3018 7F0BE4E8 844407F0 */ lh $a0, 0x7f0($v0) +/* 0F301C 7F0BE4EC 0C00110F */ jal set_video2_width_height +/* 0F3020 7F0BE4F0 844507F2 */ lh $a1, 0x7f2($v0) +/* 0F3024 7F0BE4F4 8E020000 */ lw $v0, ($s0) +/* 0F3028 7F0BE4F8 844407F4 */ lh $a0, 0x7f4($v0) +/* 0F302C 7F0BE4FC 0C00112F */ jal set_video2_ulx_uly +/* 0F3030 7F0BE500 844507F6 */ lh $a1, 0x7f6($v0) +/* 0F3034 7F0BE504 8E0E0000 */ lw $t6, ($s0) +/* 0F3038 7F0BE508 0C001151 */ jal setvideo_far +/* 0F303C 7F0BE50C C5CC11D0 */ lwc1 $f12, 0x11d0($t6) +/* 0F3040 7F0BE510 8E0F0000 */ lw $t7, ($s0) +/* 0F3044 7F0BE514 0C001164 */ jal video_related_21 +/* 0F3048 7F0BE518 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) +/* 0F304C 7F0BE51C 0C000FAD */ jal video_related_10 +/* 0F3050 7F0BE520 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3054 7F0BE524 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3058 7F0BE528 0C000F16 */ jal video_related_F +/* 0F305C 7F0BE52C 00402025 */ move $a0, $v0 +/* 0F3060 7F0BE530 0FC243BF */ jal get_debug_render_raster +/* 0F3064 7F0BE534 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3068 7F0BE538 14400004 */ bnez $v0, .L7F0BE54C +/* 0F306C 7F0BE53C 00000000 */ nop +/* 0F3070 7F0BE540 0FC24560 */ jal sub_GAME_7F091580 +/* 0F3074 7F0BE544 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3078 7F0BE548 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE54C: +/* 0F307C 7F0BE54C 0FC243BF */ jal get_debug_render_raster +/* 0F3080 7F0BE550 00000000 */ nop +/* 0F3084 7F0BE554 24010001 */ li $at, 1 +/* 0F3088 7F0BE558 14410004 */ bne $v0, $at, .L7F0BE56C +/* 0F308C 7F0BE55C 00000000 */ nop +/* 0F3090 7F0BE560 0FC2CB52 */ jal sub_GAME_7F0B2D48 +/* 0F3094 7F0BE564 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3098 7F0BE568 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE56C: +/* 0F309C 7F0BE56C 0FC243BF */ jal get_debug_render_raster +/* 0F30A0 7F0BE570 00000000 */ nop +/* 0F30A4 7F0BE574 24010002 */ li $at, 2 +/* 0F30A8 7F0BE578 14410004 */ bne $v0, $at, .L7F0BE58C +/* 0F30AC 7F0BE57C 00000000 */ nop +/* 0F30B0 7F0BE580 0FC21E82 */ jal sub_GAME_7F087A08 +/* 0F30B4 7F0BE584 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30B8 7F0BE588 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE58C: +/* 0F30BC 7F0BE58C 0C000FD9 */ jal setupscreensfornumplayers +/* 0F30C0 7F0BE590 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30C4 7F0BE594 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30C8 7F0BE598 0FC25122 */ jal sub_GAME_7F094488 +/* 0F30CC 7F0BE59C 00402025 */ move $a0, $v0 +/* 0F30D0 7F0BE5A0 0FC2D221 */ jal sub_GAME_7F0B4884 +/* 0F30D4 7F0BE5A4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30D8 7F0BE5A8 0FC0F28C */ jal determing_type_of_object_and_detection +/* 0F30DC 7F0BE5AC 00000000 */ nop +/* 0F30E0 7F0BE5B0 0FC0E890 */ jal sub_GAME_7F03A240 +/* 0F30E4 7F0BE5B4 00000000 */ nop +/* 0F30E8 7F0BE5B8 0FC0F5E3 */ jal sub_GAME_7F03D78C +/* 0F30EC 7F0BE5BC 00000000 */ nop +/* 0F30F0 7F0BE5C0 0FC0F0A5 */ jal sub_GAME_7F03C294 +/* 0F30F4 7F0BE5C4 00000000 */ nop +/* 0F30F8 7F0BE5C8 0FC227CE */ jal sub_GAME_7F089F38 +/* 0F30FC 7F0BE5CC 00000000 */ nop +/* 0F3100 7F0BE5D0 10400009 */ beqz $v0, .L7F0BE5F8 +/* 0F3104 7F0BE5D4 00000000 */ nop +/* 0F3108 7F0BE5D8 0FC0F13C */ jal sub_GAME_7F03C4F0 +/* 0F310C 7F0BE5DC 00000000 */ nop +/* 0F3110 7F0BE5E0 10400005 */ beqz $v0, .L7F0BE5F8 +/* 0F3114 7F0BE5E4 00000000 */ nop +/* 0F3118 7F0BE5E8 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F311C 7F0BE5EC 00002025 */ move $a0, $zero +/* 0F3120 7F0BE5F0 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F3124 7F0BE5F4 24040001 */ li $a0, 1 +.L7F0BE5F8: +/* 0F3128 7F0BE5F8 0FC0F435 */ jal sub_GAME_7F03D0D4 +/* 0F312C 7F0BE5FC 00000000 */ nop +/* 0F3130 7F0BE600 0FC2D390 */ jal sub_GAME_7F0B4E40 +/* 0F3134 7F0BE604 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3138 7F0BE608 0FC2440F */ jal get_debug_portal_flag +/* 0F313C 7F0BE60C AFA20060 */ sw $v0, 0x60($sp) +/* 0F3140 7F0BE610 10400004 */ beqz $v0, .L7F0BE624 +/* 0F3144 7F0BE614 00000000 */ nop +/* 0F3148 7F0BE618 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F314C 7F0BE61C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3150 7F0BE620 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE624: +/* 0F3154 7F0BE624 0FC243DC */ jal get_turbo_mode_flag +/* 0F3158 7F0BE628 00000000 */ nop +/* 0F315C 7F0BE62C 10400004 */ beqz $v0, .L7F0BE640 +/* 0F3160 7F0BE630 00000000 */ nop +/* 0F3164 7F0BE634 0FC2CC0F */ jal sub_GAME_7F0B303C +/* 0F3168 7F0BE638 8FA40060 */ lw $a0, 0x60($sp) +/* 0F316C 7F0BE63C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE640: +/* 0F3170 7F0BE640 0FC243D6 */ jal get_debug_stanhit_flag +/* 0F3174 7F0BE644 00000000 */ nop +/* 0F3178 7F0BE648 10400007 */ beqz $v0, .L7F0BE668 +/* 0F317C 7F0BE64C 00000000 */ nop +/* 0F3180 7F0BE650 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3184 7F0BE654 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3188 7F0BE658 AFA20060 */ sw $v0, 0x60($sp) +/* 0F318C 7F0BE65C 0FC225B0 */ jal write_stan_tiles_in_yellow +/* 0F3190 7F0BE660 00402025 */ move $a0, $v0 +/* 0F3194 7F0BE664 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE668: +/* 0F3198 7F0BE668 0FC243D9 */ jal get_debug_stanregion_flag +/* 0F319C 7F0BE66C 00000000 */ nop +/* 0F31A0 7F0BE670 10400008 */ beqz $v0, .L7F0BE694 +/* 0F31A4 7F0BE674 00000000 */ nop +/* 0F31A8 7F0BE678 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31AC 7F0BE67C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31B0 7F0BE680 AFA20060 */ sw $v0, 0x60($sp) +/* 0F31B4 7F0BE684 00402025 */ move $a0, $v0 +/* 0F31B8 7F0BE688 0FC2CC4B */ jal sub_GAME_7F0B312C +/* 0F31BC 7F0BE68C 24058040 */ li $a1, -32704 +/* 0F31C0 7F0BE690 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE694: +/* 0F31C4 7F0BE694 3C058006 */ lui $a1, %hi(aStanshow_) +/* 0F31C8 7F0BE698 24A5B6BC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4944 +/* 0F31CC 7F0BE69C 0C0029A8 */ jal check_token +/* 0F31D0 7F0BE6A0 24040001 */ li $a0, 1 +/* 0F31D4 7F0BE6A4 10400011 */ beqz $v0, .L7F0BE6EC +/* 0F31D8 7F0BE6A8 24040001 */ li $a0, 1 +/* 0F31DC 7F0BE6AC 3C058006 */ lui $a1, %hi(aStanshow__5) +/* 0F31E0 7F0BE6B0 0C0029A8 */ jal check_token +/* 0F31E4 7F0BE6B4 24A5B6C8 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x4938 +/* 0F31E8 7F0BE6B8 0FC2CB96 */ jal stanMatchTileName +/* 0F31EC 7F0BE6BC 00402025 */ move $a0, $v0 +/* 0F31F0 7F0BE6C0 1040000A */ beqz $v0, .L7F0BE6EC +/* 0F31F4 7F0BE6C4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31F8 7F0BE6C8 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31FC 7F0BE6CC AFA20030 */ sw $v0, 0x30($sp) +/* 0F3200 7F0BE6D0 3C06FF00 */ lui $a2, (0xFF0000FF >> 16) # lui $a2, 0xff00 +/* 0F3204 7F0BE6D4 8FA50030 */ lw $a1, 0x30($sp) +/* 0F3208 7F0BE6D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F320C 7F0BE6DC 34C600FF */ ori $a2, (0xFF0000FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3210 7F0BE6E0 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F3214 7F0BE6E4 00402025 */ move $a0, $v0 +/* 0F3218 7F0BE6E8 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE6EC: +/* 0F321C 7F0BE6EC 3C058006 */ lui $a1, %hi(aStanshow__0) +/* 0F3220 7F0BE6F0 24A5B6D4 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x492c +/* 0F3224 7F0BE6F4 0C0029A8 */ jal check_token +/* 0F3228 7F0BE6F8 24040002 */ li $a0, 2 +/* 0F322C 7F0BE6FC 10400011 */ beqz $v0, .L7F0BE744 +/* 0F3230 7F0BE700 24040002 */ li $a0, 2 +/* 0F3234 7F0BE704 3C058006 */ lui $a1, %hi(aStanshow__1) +/* 0F3238 7F0BE708 0C0029A8 */ jal check_token +/* 0F323C 7F0BE70C 24A5B6E0 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x4920 +/* 0F3240 7F0BE710 0FC2CB96 */ jal stanMatchTileName +/* 0F3244 7F0BE714 00402025 */ move $a0, $v0 +/* 0F3248 7F0BE718 1040000A */ beqz $v0, .L7F0BE744 +/* 0F324C 7F0BE71C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3250 7F0BE720 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3254 7F0BE724 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F3258 7F0BE728 3C0600FF */ lui $a2, (0x00FF00FF >> 16) # lui $a2, 0xff +/* 0F325C 7F0BE72C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F3260 7F0BE730 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3264 7F0BE734 34C600FF */ ori $a2, (0x00FF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3268 7F0BE738 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F326C 7F0BE73C 00402025 */ move $a0, $v0 +/* 0F3270 7F0BE740 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE744: +/* 0F3274 7F0BE744 3C058006 */ lui $a1, %hi(aStanshow__2) +/* 0F3278 7F0BE748 24A5B6EC */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x4914 +/* 0F327C 7F0BE74C 0C0029A8 */ jal check_token +/* 0F3280 7F0BE750 24040003 */ li $a0, 3 +/* 0F3284 7F0BE754 10400010 */ beqz $v0, .L7F0BE798 +/* 0F3288 7F0BE758 24040003 */ li $a0, 3 +/* 0F328C 7F0BE75C 3C058006 */ lui $a1, %hi(aStanshow__3) +/* 0F3290 7F0BE760 0C0029A8 */ jal check_token +/* 0F3294 7F0BE764 24A5B6F8 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x4908 +/* 0F3298 7F0BE768 0FC2CB96 */ jal stanMatchTileName +/* 0F329C 7F0BE76C 00402025 */ move $a0, $v0 +/* 0F32A0 7F0BE770 10400009 */ beqz $v0, .L7F0BE798 +/* 0F32A4 7F0BE774 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32A8 7F0BE778 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F32AC 7F0BE77C AFA20028 */ sw $v0, 0x28($sp) +/* 0F32B0 7F0BE780 8FA50028 */ lw $a1, 0x28($sp) +/* 0F32B4 7F0BE784 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32B8 7F0BE788 00402025 */ move $a0, $v0 +/* 0F32BC 7F0BE78C 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F32C0 7F0BE790 3406FFFF */ li $a2, 65535 +/* 0F32C4 7F0BE794 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE798: +/* 0F32C8 7F0BE798 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F32CC 7F0BE79C 00000000 */ nop +/* 0F32D0 7F0BE7A0 38440008 */ xori $a0, $v0, 8 +/* 0F32D4 7F0BE7A4 0FC08B89 */ jal sub_GAME_7F022E24 +/* 0F32D8 7F0BE7A8 2C840001 */ sltiu $a0, $a0, 1 +/* 0F32DC 7F0BE7AC 0FC126D6 */ jal sub_GAME_7F049B58 +/* 0F32E0 7F0BE7B0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32E4 7F0BE7B4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32E8 7F0BE7B8 27A40060 */ addiu $a0, $sp, 0x60 +/* 0F32EC 7F0BE7BC 0FC29209 */ jal sub_GAME_7F0A4824 +/* 0F32F0 7F0BE7C0 24050001 */ li $a1, 1 +/* 0F32F4 7F0BE7C4 0FC28B11 */ jal sub_GAME_7F0A2C44 +/* 0F32F8 7F0BE7C8 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32FC 7F0BE7CC AFA20060 */ sw $v0, 0x60($sp) +/* 0F3300 7F0BE7D0 0FC2800D */ jal sub_GAME_7F0A0034 +/* 0F3304 7F0BE7D4 00402025 */ move $a0, $v0 +/* 0F3308 7F0BE7D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F330C 7F0BE7DC 0FC249EF */ jal cheatCheckIfOn +/* 0F3310 7F0BE7E0 2404000B */ li $a0, 11 +/* 0F3314 7F0BE7E4 10400003 */ beqz $v0, .L7F0BE7F4 +/* 0F3318 7F0BE7E8 00000000 */ nop +/* 0F331C 7F0BE7EC 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0F3320 7F0BE7F0 00000000 */ nop +.L7F0BE7F4: +/* 0F3324 7F0BE7F4 0FC243BF */ jal get_debug_render_raster +/* 0F3328 7F0BE7F8 00000000 */ nop +/* 0F332C 7F0BE7FC 24010002 */ li $at, 2 +/* 0F3330 7F0BE800 14410005 */ bne $v0, $at, .L7F0BE818 +/* 0F3334 7F0BE804 00000000 */ nop +/* 0F3338 7F0BE808 0FC22482 */ jal maybe_mp_interface +/* 0F333C 7F0BE80C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3340 7F0BE810 10000004 */ b .L7F0BE824 +/* 0F3344 7F0BE814 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE818: +/* 0F3348 7F0BE818 0FC22F2E */ jal sub_GAME_7F08BCB8 +/* 0F334C 7F0BE81C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3350 7F0BE820 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE824: +/* 0F3354 7F0BE824 0FC31009 */ jal mp_watch_menu_display +/* 0F3358 7F0BE828 8FA40060 */ lw $a0, 0x60($sp) +/* 0F335C 7F0BE82C 8FB80044 */ lw $t8, 0x44($sp) +/* 0F3360 7F0BE830 26310001 */ addiu $s1, $s1, 1 +/* 0F3364 7F0BE834 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3368 7F0BE838 0238082A */ slt $at, $s1, $t8 +/* 0F336C 7F0BE83C 1420FF25 */ bnez $at, .L7F0BE4D4 +/* 0F3370 7F0BE840 00000000 */ nop +.L7F0BE844: +/* 0F3374 7F0BE844 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3378 7F0BE848 3C09ED00 */ lui $t1, 0xed00 +/* 0F337C 7F0BE84C 26190008 */ addiu $t9, $s0, 8 +/* 0F3380 7F0BE850 AFB90060 */ sw $t9, 0x60($sp) +/* 0F3384 7F0BE854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3388 7F0BE858 AE090000 */ sw $t1, ($s0) +/* 0F338C 7F0BE85C 00028C00 */ sll $s1, $v0, 0x10 +/* 0F3390 7F0BE860 00115403 */ sra $t2, $s1, 0x10 +/* 0F3394 7F0BE864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3398 7F0BE868 01408825 */ move $s1, $t2 +/* 0F339C 7F0BE86C 44824000 */ mtc1 $v0, $f8 +/* 0F33A0 7F0BE870 44913000 */ mtc1 $s1, $f6 +/* 0F33A4 7F0BE874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F33A8 7F0BE878 468042A0 */ cvt.s.w $f10, $f8 +/* 0F33AC 7F0BE87C 44818000 */ mtc1 $at, $f16 +/* 0F33B0 7F0BE880 46803220 */ cvt.s.w $f8, $f6 +/* 0F33B4 7F0BE884 46105482 */ mul.s $f18, $f10, $f16 +/* 0F33B8 7F0BE888 44815000 */ mtc1 $at, $f10 +/* 0F33BC 7F0BE88C 00000000 */ nop +/* 0F33C0 7F0BE890 460A4402 */ mul.s $f16, $f8, $f10 +/* 0F33C4 7F0BE894 4600910D */ trunc.w.s $f4, $f18 +/* 0F33C8 7F0BE898 4600848D */ trunc.w.s $f18, $f16 +/* 0F33CC 7F0BE89C 440C2000 */ mfc1 $t4, $f4 +/* 0F33D0 7F0BE8A0 44189000 */ mfc1 $t8, $f18 +/* 0F33D4 7F0BE8A4 318E0FFF */ andi $t6, $t4, 0xfff +/* 0F33D8 7F0BE8A8 330D0FFF */ andi $t5, $t8, 0xfff +/* 0F33DC 7F0BE8AC 000DCB00 */ sll $t9, $t5, 0xc +/* 0F33E0 7F0BE8B0 01D94825 */ or $t1, $t6, $t9 +/* 0F33E4 7F0BE8B4 AE090004 */ sw $t1, 4($s0) +/* 0F33E8 7F0BE8B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F33EC 7F0BE8BC 8FB10018 */ lw $s1, 0x18($sp) +/* 0F33F0 7F0BE8C0 8FB00014 */ lw $s0, 0x14($sp) +/* 0F33F4 7F0BE8C4 8FA20060 */ lw $v0, 0x60($sp) +/* 0F33F8 7F0BE8C8 03E00008 */ jr $ra +/* 0F33FC 7F0BE8CC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BE30C +/* 0F3A3C 7F0BEECC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F3A40 7F0BEED0 AFA40060 */ sw $a0, 0x60($sp) +/* 0F3A44 7F0BEED4 248F0008 */ addiu $t7, $a0, 8 +/* 0F3A48 7F0BEED8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F3A4C 7F0BEEDC AFB10018 */ sw $s1, 0x18($sp) +/* 0F3A50 7F0BEEE0 AFB00014 */ sw $s0, 0x14($sp) +/* 0F3A54 7F0BEEE4 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3A58 7F0BEEE8 3C18BC00 */ lui $t8, (0xBC000006 >> 16) # lui $t8, 0xbc00 +/* 0F3A5C 7F0BEEEC 37180006 */ ori $t8, (0xBC000006 & 0xFFFF) # ori $t8, $t8, 6 +/* 0F3A60 7F0BEEF0 AC980000 */ sw $t8, ($a0) +/* 0F3A64 7F0BEEF4 AC800004 */ sw $zero, 4($a0) +/* 0F3A68 7F0BEEF8 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3A6C 7F0BEEFC 3C0ABC00 */ lui $t2, (0xBC000406 >> 16) # lui $t2, 0xbc00 +/* 0F3A70 7F0BEF00 354A0406 */ ori $t2, (0xBC000406 & 0xFFFF) # ori $t2, $t2, 0x406 +/* 0F3A74 7F0BEF04 26090008 */ addiu $t1, $s0, 8 +/* 0F3A78 7F0BEF08 AFA90060 */ sw $t1, 0x60($sp) +/* 0F3A7C 7F0BEF0C 3C048009 */ lui $a0, %hi(ptr_jfont_DL) # $a0, 0x8009 +/* 0F3A80 7F0BEF10 AE0A0000 */ sw $t2, ($s0) +/* 0F3A84 7F0BEF14 0C003A3C */ jal osVirtualToPhysical +/* 0F3A88 7F0BEF18 8C84C2D0 */ lw $a0, %lo(ptr_jfont_DL)($a0) +/* 0F3A8C 7F0BEF1C AE020004 */ sw $v0, 4($s0) +/* 0F3A90 7F0BEF20 8FAB0060 */ lw $t3, 0x60($sp) +/* 0F3A94 7F0BEF24 3C0D0100 */ lui $t5, 0x100 +/* 0F3A98 7F0BEF28 3C050600 */ lui $a1, 0x600 +/* 0F3A9C 7F0BEF2C 256C0008 */ addiu $t4, $t3, 8 +/* 0F3AA0 7F0BEF30 AFAC0060 */ sw $t4, 0x60($sp) +/* 0F3AA4 7F0BEF34 25AD0040 */ addiu $t5, $t5, 0x40 +/* 0F3AA8 7F0BEF38 AD6D0004 */ sw $t5, 4($t3) +/* 0F3AAC 7F0BEF3C AD650000 */ sw $a1, ($t3) +/* 0F3AB0 7F0BEF40 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F3AB4 7F0BEF44 3C180100 */ lui $t8, 0x100 +/* 0F3AB8 7F0BEF48 27180020 */ addiu $t8, $t8, 0x20 +/* 0F3ABC 7F0BEF4C 25CF0008 */ addiu $t7, $t6, 8 +/* 0F3AC0 7F0BEF50 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3AC4 7F0BEF54 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 +/* 0F3AC8 7F0BEF58 ADD80004 */ sw $t8, 4($t6) +/* 0F3ACC 7F0BEF5C ADC50000 */ sw $a1, ($t6) +/* 0F3AD0 7F0BEF60 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F3AD4 7F0BEF64 2401005A */ li $at, 90 +/* 0F3AD8 7F0BEF68 17210025 */ bne $t9, $at, .Ljp7F0BF000 +/* 0F3ADC 7F0BEF6C 00000000 */ nop +/* 0F3AE0 7F0BEF70 0C000FAD */ jal video_related_10 +/* 0F3AE4 7F0BEF74 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3AE8 7F0BEF78 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3AEC 7F0BEF7C 0C000F16 */ jal video_related_F +/* 0F3AF0 7F0BEF80 00402025 */ move $a0, $v0 +/* 0F3AF4 7F0BEF84 24490008 */ addiu $t1, $v0, 8 +/* 0F3AF8 7F0BEF88 AFA90060 */ sw $t1, 0x60($sp) +/* 0F3AFC 7F0BEF8C 3C0AED00 */ lui $t2, 0xed00 +/* 0F3B00 7F0BEF90 AC4A0000 */ sw $t2, ($v0) +/* 0F3B04 7F0BEF94 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3B08 7F0BEF98 00408025 */ move $s0, $v0 +/* 0F3B0C 7F0BEF9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3B10 7F0BEFA0 A7A20022 */ sh $v0, 0x22($sp) +/* 0F3B14 7F0BEFA4 87B10022 */ lh $s1, 0x22($sp) +/* 0F3B18 7F0BEFA8 44822000 */ mtc1 $v0, $f4 +/* 0F3B1C 7F0BEFAC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F3B20 7F0BEFB0 44918000 */ mtc1 $s1, $f16 +/* 0F3B24 7F0BEFB4 468021A0 */ cvt.s.w $f6, $f4 +/* 0F3B28 7F0BEFB8 44810000 */ mtc1 $at, $f0 +/* 0F3B2C 7F0BEFBC 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3B30 7F0BEFC0 46003202 */ mul.s $f8, $f6, $f0 +/* 0F3B34 7F0BEFC4 00000000 */ nop +/* 0F3B38 7F0BEFC8 46009102 */ mul.s $f4, $f18, $f0 +/* 0F3B3C 7F0BEFCC 4600428D */ trunc.w.s $f10, $f8 +/* 0F3B40 7F0BEFD0 4600218D */ trunc.w.s $f6, $f4 +/* 0F3B44 7F0BEFD4 440C5000 */ mfc1 $t4, $f10 +/* 0F3B48 7F0BEFD8 440F3000 */ mfc1 $t7, $f6 +/* 0F3B4C 7F0BEFDC 318D0FFF */ andi $t5, $t4, 0xfff +/* 0F3B50 7F0BEFE0 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F3B54 7F0BEFE4 0018CB00 */ sll $t9, $t8, 0xc +/* 0F3B58 7F0BEFE8 01B94825 */ or $t1, $t5, $t9 +/* 0F3B5C 7F0BEFEC AE090004 */ sw $t1, 4($s0) +/* 0F3B60 7F0BEFF0 0FC06C2C */ jal menu_jump_constructor_handler +/* 0F3B64 7F0BEFF4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3B68 7F0BEFF8 1000010B */ b .Ljp7F0BF428 +/* 0F3B6C 7F0BEFFC AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF000: +/* 0F3B70 7F0BF000 0FC26C01 */ jal get_num_players +/* 0F3B74 7F0BF004 00000000 */ nop +/* 0F3B78 7F0BF008 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F3B7C 7F0BF00C AFA20044 */ sw $v0, 0x44($sp) +/* 0F3B80 7F0BF010 3C0CBC00 */ lui $t4, (0xBC000404 >> 16) # lui $t4, 0xbc00 +/* 0F3B84 7F0BF014 254B0008 */ addiu $t3, $t2, 8 +/* 0F3B88 7F0BF018 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F3B8C 7F0BF01C 24070002 */ li $a3, 2 +/* 0F3B90 7F0BF020 358C0404 */ ori $t4, (0xBC000404 & 0xFFFF) # ori $t4, $t4, 0x404 +/* 0F3B94 7F0BF024 AD4C0000 */ sw $t4, ($t2) +/* 0F3B98 7F0BF028 AD470004 */ sw $a3, 4($t2) +/* 0F3B9C 7F0BF02C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F3BA0 7F0BF030 3C18BC00 */ lui $t8, (0xBC000C04 >> 16) # lui $t8, 0xbc00 +/* 0F3BA4 7F0BF034 37180C04 */ ori $t8, (0xBC000C04 & 0xFFFF) # ori $t8, $t8, 0xc04 +/* 0F3BA8 7F0BF038 25CF0008 */ addiu $t7, $t6, 8 +/* 0F3BAC 7F0BF03C AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3BB0 7F0BF040 ADC70004 */ sw $a3, 4($t6) +/* 0F3BB4 7F0BF044 ADD80000 */ sw $t8, ($t6) +/* 0F3BB8 7F0BF048 8FAD0060 */ lw $t5, 0x60($sp) +/* 0F3BBC 7F0BF04C 3C09BC00 */ lui $t1, (0xBC001404 >> 16) # lui $t1, 0xbc00 +/* 0F3BC0 7F0BF050 3408FFFE */ li $t0, 65534 +/* 0F3BC4 7F0BF054 25B90008 */ addiu $t9, $t5, 8 +/* 0F3BC8 7F0BF058 AFB90060 */ sw $t9, 0x60($sp) +/* 0F3BCC 7F0BF05C 35291404 */ ori $t1, (0xBC001404 & 0xFFFF) # ori $t1, $t1, 0x1404 +/* 0F3BD0 7F0BF060 ADA90000 */ sw $t1, ($t5) +/* 0F3BD4 7F0BF064 ADA80004 */ sw $t0, 4($t5) +/* 0F3BD8 7F0BF068 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F3BDC 7F0BF06C 3C0CBC00 */ lui $t4, (0xBC001C04 >> 16) # lui $t4, 0xbc00 +/* 0F3BE0 7F0BF070 358C1C04 */ ori $t4, (0xBC001C04 & 0xFFFF) # ori $t4, $t4, 0x1c04 +/* 0F3BE4 7F0BF074 254B0008 */ addiu $t3, $t2, 8 +/* 0F3BE8 7F0BF078 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F3BEC 7F0BF07C 00008825 */ move $s1, $zero +/* 0F3BF0 7F0BF080 AD480004 */ sw $t0, 4($t2) +/* 0F3BF4 7F0BF084 184000E8 */ blez $v0, .Ljp7F0BF428 +/* 0F3BF8 7F0BF088 AD4C0000 */ sw $t4, ($t2) +/* 0F3BFC 7F0BF08C 3C108008 */ lui $s0, %hi(pPlayer) # $s0, 0x8008 +/* 0F3C00 7F0BF090 2610A120 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5ee0 +.Ljp7F0BF094: +/* 0F3C04 7F0BF094 0FC27032 */ jal sub_GAME_7F09B528 +/* 0F3C08 7F0BF098 02202025 */ move $a0, $s1 +/* 0F3C0C 7F0BF09C 0FC26F2B */ jal set_cur_player +/* 0F3C10 7F0BF0A0 00402025 */ move $a0, $v0 +/* 0F3C14 7F0BF0A4 8E020000 */ lw $v0, ($s0) +/* 0F3C18 7F0BF0A8 844407F0 */ lh $a0, 0x7f0($v0) +/* 0F3C1C 7F0BF0AC 0C00110F */ jal set_video2_width_height +/* 0F3C20 7F0BF0B0 844507F2 */ lh $a1, 0x7f2($v0) +/* 0F3C24 7F0BF0B4 8E020000 */ lw $v0, ($s0) +/* 0F3C28 7F0BF0B8 844407F4 */ lh $a0, 0x7f4($v0) +/* 0F3C2C 7F0BF0BC 0C00112F */ jal set_video2_ulx_uly +/* 0F3C30 7F0BF0C0 844507F6 */ lh $a1, 0x7f6($v0) +/* 0F3C34 7F0BF0C4 8E0E0000 */ lw $t6, ($s0) +/* 0F3C38 7F0BF0C8 0C001151 */ jal setvideo_far +/* 0F3C3C 7F0BF0CC C5CC11D0 */ lwc1 $f12, 0x11d0($t6) +/* 0F3C40 7F0BF0D0 8E0F0000 */ lw $t7, ($s0) +/* 0F3C44 7F0BF0D4 0C001164 */ jal video_related_21 +/* 0F3C48 7F0BF0D8 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) +/* 0F3C4C 7F0BF0DC 0C000FAD */ jal video_related_10 +/* 0F3C50 7F0BF0E0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C54 7F0BF0E4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3C58 7F0BF0E8 0C000F16 */ jal video_related_F +/* 0F3C5C 7F0BF0EC 00402025 */ move $a0, $v0 +/* 0F3C60 7F0BF0F0 0FC24677 */ jal get_debug_render_raster +/* 0F3C64 7F0BF0F4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3C68 7F0BF0F8 14400004 */ bnez $v0, .Ljp7F0BF10C +/* 0F3C6C 7F0BF0FC 00000000 */ nop +/* 0F3C70 7F0BF100 0FC24818 */ jal sub_GAME_7F091580 +/* 0F3C74 7F0BF104 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C78 7F0BF108 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF10C: +/* 0F3C7C 7F0BF10C 0FC24677 */ jal get_debug_render_raster +/* 0F3C80 7F0BF110 00000000 */ nop +/* 0F3C84 7F0BF114 24010001 */ li $at, 1 +/* 0F3C88 7F0BF118 14410004 */ bne $v0, $at, .Ljp7F0BF12C +/* 0F3C8C 7F0BF11C 00000000 */ nop +/* 0F3C90 7F0BF120 0FC2CE3E */ jal sub_GAME_7F0B2D48 +/* 0F3C94 7F0BF124 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C98 7F0BF128 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF12C: +/* 0F3C9C 7F0BF12C 0FC24677 */ jal get_debug_render_raster +/* 0F3CA0 7F0BF130 00000000 */ nop +/* 0F3CA4 7F0BF134 24010002 */ li $at, 2 +/* 0F3CA8 7F0BF138 14410004 */ bne $v0, $at, .Ljp7F0BF14C +/* 0F3CAC 7F0BF13C 00000000 */ nop +/* 0F3CB0 7F0BF140 0FC22035 */ jal sub_GAME_7F087A08 +/* 0F3CB4 7F0BF144 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3CB8 7F0BF148 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF14C: +/* 0F3CBC 7F0BF14C 0C000FD9 */ jal setupscreensfornumplayers +/* 0F3CC0 7F0BF150 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3CC4 7F0BF154 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3CC8 7F0BF158 0FC2540A */ jal sub_GAME_7F094488 +/* 0F3CCC 7F0BF15C 00402025 */ move $a0, $v0 +/* 0F3CD0 7F0BF160 0FC2D50D */ jal sub_GAME_7F0B4884 +/* 0F3CD4 7F0BF164 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3CD8 7F0BF168 0FC0F34C */ jal determing_type_of_object_and_detection +/* 0F3CDC 7F0BF16C 00000000 */ nop +/* 0F3CE0 7F0BF170 0FC0E950 */ jal sub_GAME_7F03A240 +/* 0F3CE4 7F0BF174 00000000 */ nop +/* 0F3CE8 7F0BF178 0FC0F6A3 */ jal sub_GAME_7F03D78C +/* 0F3CEC 7F0BF17C 00000000 */ nop +/* 0F3CF0 7F0BF180 0FC0F165 */ jal sub_GAME_7F03C294 +/* 0F3CF4 7F0BF184 00000000 */ nop +/* 0F3CF8 7F0BF188 0FC2299C */ jal sub_GAME_7F089F38 +/* 0F3CFC 7F0BF18C 00000000 */ nop +/* 0F3D00 7F0BF190 10400009 */ beqz $v0, .Ljp7F0BF1B8 +/* 0F3D04 7F0BF194 00000000 */ nop +/* 0F3D08 7F0BF198 0FC0F1FC */ jal sub_GAME_7F03C4F0 +/* 0F3D0C 7F0BF19C 00000000 */ nop +/* 0F3D10 7F0BF1A0 10400005 */ beqz $v0, .Ljp7F0BF1B8 +/* 0F3D14 7F0BF1A4 00000000 */ nop +/* 0F3D18 7F0BF1A8 0FC177A1 */ jal attempt_reload_item_in_hand +/* 0F3D1C 7F0BF1AC 00002025 */ move $a0, $zero +/* 0F3D20 7F0BF1B0 0FC177A1 */ jal attempt_reload_item_in_hand +/* 0F3D24 7F0BF1B4 24040001 */ li $a0, 1 +.Ljp7F0BF1B8: +/* 0F3D28 7F0BF1B8 0FC0F4F5 */ jal sub_GAME_7F03D0D4 +/* 0F3D2C 7F0BF1BC 00000000 */ nop +/* 0F3D30 7F0BF1C0 0FC2D67C */ jal sub_GAME_7F0B4E40 +/* 0F3D34 7F0BF1C4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D38 7F0BF1C8 0FC246C7 */ jal get_debug_portal_flag +/* 0F3D3C 7F0BF1CC AFA20060 */ sw $v0, 0x60($sp) +/* 0F3D40 7F0BF1D0 10400004 */ beqz $v0, .Ljp7F0BF1E4 +/* 0F3D44 7F0BF1D4 00000000 */ nop +/* 0F3D48 7F0BF1D8 0FC2FAB4 */ jal sub_GAME_7F0BDF10 +/* 0F3D4C 7F0BF1DC 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D50 7F0BF1E0 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF1E4: +/* 0F3D54 7F0BF1E4 0FC24694 */ jal get_turbo_mode_flag +/* 0F3D58 7F0BF1E8 00000000 */ nop +/* 0F3D5C 7F0BF1EC 10400004 */ beqz $v0, .Ljp7F0BF200 +/* 0F3D60 7F0BF1F0 00000000 */ nop +/* 0F3D64 7F0BF1F4 0FC2CEFB */ jal sub_GAME_7F0B303C +/* 0F3D68 7F0BF1F8 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D6C 7F0BF1FC AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF200: +/* 0F3D70 7F0BF200 0FC2468E */ jal get_debug_stanhit_flag +/* 0F3D74 7F0BF204 00000000 */ nop +/* 0F3D78 7F0BF208 10400007 */ beqz $v0, .Ljp7F0BF228 +/* 0F3D7C 7F0BF20C 00000000 */ nop +/* 0F3D80 7F0BF210 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3D84 7F0BF214 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D88 7F0BF218 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3D8C 7F0BF21C 0FC22765 */ jal write_stan_tiles_in_yellow +/* 0F3D90 7F0BF220 00402025 */ move $a0, $v0 +/* 0F3D94 7F0BF224 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF228: +/* 0F3D98 7F0BF228 0FC24691 */ jal get_debug_stanregion_flag +/* 0F3D9C 7F0BF22C 00000000 */ nop +/* 0F3DA0 7F0BF230 10400008 */ beqz $v0, .Ljp7F0BF254 +/* 0F3DA4 7F0BF234 00000000 */ nop +/* 0F3DA8 7F0BF238 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3DAC 7F0BF23C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3DB0 7F0BF240 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3DB4 7F0BF244 00402025 */ move $a0, $v0 +/* 0F3DB8 7F0BF248 0FC2CF37 */ jal sub_GAME_7F0B312C +/* 0F3DBC 7F0BF24C 24058040 */ li $a1, -32704 +/* 0F3DC0 7F0BF250 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF254: +/* 0F3DC4 7F0BF254 3C058006 */ lui $a1, %hi(aStanshow_) # $a1, 0x8006 +/* 0F3DC8 7F0BF258 24A5B6FC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4904 +/* 0F3DCC 7F0BF25C 0C0029AC */ jal check_token +/* 0F3DD0 7F0BF260 24040001 */ li $a0, 1 +/* 0F3DD4 7F0BF264 10400011 */ beqz $v0, .Ljp7F0BF2AC +/* 0F3DD8 7F0BF268 24040001 */ li $a0, 1 +/* 0F3DDC 7F0BF26C 3C058006 */ lui $a1, %hi(aStanshow__5) # $a1, 0x8006 +/* 0F3DE0 7F0BF270 0C0029AC */ jal check_token +/* 0F3DE4 7F0BF274 24A5B708 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x48f8 +/* 0F3DE8 7F0BF278 0FC2CE82 */ jal stanMatchTileName +/* 0F3DEC 7F0BF27C 00402025 */ move $a0, $v0 +/* 0F3DF0 7F0BF280 1040000A */ beqz $v0, .Ljp7F0BF2AC +/* 0F3DF4 7F0BF284 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3DF8 7F0BF288 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3DFC 7F0BF28C AFA20030 */ sw $v0, 0x30($sp) +/* 0F3E00 7F0BF290 3C06FF00 */ lui $a2, (0xFF0000FF >> 16) # lui $a2, 0xff00 +/* 0F3E04 7F0BF294 8FA50030 */ lw $a1, 0x30($sp) +/* 0F3E08 7F0BF298 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3E0C 7F0BF29C 34C600FF */ ori $a2, (0xFF0000FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3E10 7F0BF2A0 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3E14 7F0BF2A4 00402025 */ move $a0, $v0 +/* 0F3E18 7F0BF2A8 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF2AC: +/* 0F3E1C 7F0BF2AC 3C058006 */ lui $a1, %hi(aStanshow__0) # $a1, 0x8006 +/* 0F3E20 7F0BF2B0 24A5B714 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x48ec +/* 0F3E24 7F0BF2B4 0C0029AC */ jal check_token +/* 0F3E28 7F0BF2B8 24040002 */ li $a0, 2 +/* 0F3E2C 7F0BF2BC 10400011 */ beqz $v0, .Ljp7F0BF304 +/* 0F3E30 7F0BF2C0 24040002 */ li $a0, 2 +/* 0F3E34 7F0BF2C4 3C058006 */ lui $a1, %hi(aStanshow__1) # $a1, 0x8006 +/* 0F3E38 7F0BF2C8 0C0029AC */ jal check_token +/* 0F3E3C 7F0BF2CC 24A5B720 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x48e0 +/* 0F3E40 7F0BF2D0 0FC2CE82 */ jal stanMatchTileName +/* 0F3E44 7F0BF2D4 00402025 */ move $a0, $v0 +/* 0F3E48 7F0BF2D8 1040000A */ beqz $v0, .Ljp7F0BF304 +/* 0F3E4C 7F0BF2DC 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3E50 7F0BF2E0 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3E54 7F0BF2E4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F3E58 7F0BF2E8 3C0600FF */ lui $a2, (0x00FF00FF >> 16) # lui $a2, 0xff +/* 0F3E5C 7F0BF2EC 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F3E60 7F0BF2F0 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3E64 7F0BF2F4 34C600FF */ ori $a2, (0x00FF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3E68 7F0BF2F8 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3E6C 7F0BF2FC 00402025 */ move $a0, $v0 +/* 0F3E70 7F0BF300 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF304: +/* 0F3E74 7F0BF304 3C058006 */ lui $a1, %hi(aStanshow__2) # $a1, 0x8006 +/* 0F3E78 7F0BF308 24A5B72C */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x48d4 +/* 0F3E7C 7F0BF30C 0C0029AC */ jal check_token +/* 0F3E80 7F0BF310 24040003 */ li $a0, 3 +/* 0F3E84 7F0BF314 10400010 */ beqz $v0, .Ljp7F0BF358 +/* 0F3E88 7F0BF318 24040003 */ li $a0, 3 +/* 0F3E8C 7F0BF31C 3C058006 */ lui $a1, %hi(aStanshow__3) # $a1, 0x8006 +/* 0F3E90 7F0BF320 0C0029AC */ jal check_token +/* 0F3E94 7F0BF324 24A5B738 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x48c8 +/* 0F3E98 7F0BF328 0FC2CE82 */ jal stanMatchTileName +/* 0F3E9C 7F0BF32C 00402025 */ move $a0, $v0 +/* 0F3EA0 7F0BF330 10400009 */ beqz $v0, .Ljp7F0BF358 +/* 0F3EA4 7F0BF334 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EA8 7F0BF338 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3EAC 7F0BF33C AFA20028 */ sw $v0, 0x28($sp) +/* 0F3EB0 7F0BF340 8FA50028 */ lw $a1, 0x28($sp) +/* 0F3EB4 7F0BF344 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3EB8 7F0BF348 00402025 */ move $a0, $v0 +/* 0F3EBC 7F0BF34C 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3EC0 7F0BF350 3406FFFF */ li $a2, 65535 +/* 0F3EC4 7F0BF354 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF358: +/* 0F3EC8 7F0BF358 0FC2467D */ jal get_debug_limit_controller_input +/* 0F3ECC 7F0BF35C 00000000 */ nop +/* 0F3ED0 7F0BF360 38440008 */ xori $a0, $v0, 8 +/* 0F3ED4 7F0BF364 0FC08C43 */ jal sub_GAME_7F022E24 +/* 0F3ED8 7F0BF368 2C840001 */ sltiu $a0, $a0, 1 +/* 0F3EDC 7F0BF36C 0FC127D7 */ jal sub_GAME_7F049B58 +/* 0F3EE0 7F0BF370 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EE4 7F0BF374 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3EE8 7F0BF378 27A40060 */ addiu $a0, $sp, 0x60 +/* 0F3EEC 7F0BF37C 0FC294F1 */ jal sub_GAME_7F0A4824 +/* 0F3EF0 7F0BF380 24050001 */ li $a1, 1 +/* 0F3EF4 7F0BF384 0FC28DF9 */ jal sub_GAME_7F0A2C44 +/* 0F3EF8 7F0BF388 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EFC 7F0BF38C AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F00 7F0BF390 0FC282F6 */ jal sub_GAME_7F0A0034 +/* 0F3F04 7F0BF394 00402025 */ move $a0, $v0 +/* 0F3F08 7F0BF398 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F0C 7F0BF39C 0FC24CCF */ jal cheatCheckIfOn +/* 0F3F10 7F0BF3A0 2404000B */ li $a0, 11 +/* 0F3F14 7F0BF3A4 1040000C */ beqz $v0, .Ljp7F0BF3D8 +/* 0F3F18 7F0BF3A8 00000000 */ nop +/* 0F3F1C 7F0BF3AC 0FC177BC */ jal get_item_in_hand +/* 0F3F20 7F0BF3B0 00002025 */ move $a0, $zero +/* 0F3F24 7F0BF3B4 24010017 */ li $at, 23 +/* 0F3F28 7F0BF3B8 14410005 */ bne $v0, $at, .Ljp7F0BF3D0 +/* 0F3F2C 7F0BF3BC 00000000 */ nop +/* 0F3F30 7F0BF3C0 8E180000 */ lw $t8, ($s0) +/* 0F3F34 7F0BF3C4 8F0D0FCC */ lw $t5, 0xfcc($t8) +/* 0F3F38 7F0BF3C8 15A00003 */ bnez $t5, .Ljp7F0BF3D8 +/* 0F3F3C 7F0BF3CC 00000000 */ nop +.Ljp7F0BF3D0: +/* 0F3F40 7F0BF3D0 0FC1A637 */ jal set_max_ammo_for_cur_player +/* 0F3F44 7F0BF3D4 00000000 */ nop +.Ljp7F0BF3D8: +/* 0F3F48 7F0BF3D8 0FC24677 */ jal get_debug_render_raster +/* 0F3F4C 7F0BF3DC 00000000 */ nop +/* 0F3F50 7F0BF3E0 24010002 */ li $at, 2 +/* 0F3F54 7F0BF3E4 14410005 */ bne $v0, $at, .Ljp7F0BF3FC +/* 0F3F58 7F0BF3E8 00000000 */ nop +/* 0F3F5C 7F0BF3EC 0FC22637 */ jal maybe_mp_interface +/* 0F3F60 7F0BF3F0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F64 7F0BF3F4 10000004 */ b .Ljp7F0BF408 +/* 0F3F68 7F0BF3F8 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF3FC: +/* 0F3F6C 7F0BF3FC 0FC23150 */ jal sub_GAME_7F08BCB8 +/* 0F3F70 7F0BF400 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F74 7F0BF404 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF408: +/* 0F3F78 7F0BF408 0FC31335 */ jal mp_watch_menu_display +/* 0F3F7C 7F0BF40C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F80 7F0BF410 8FB90044 */ lw $t9, 0x44($sp) +/* 0F3F84 7F0BF414 26310001 */ addiu $s1, $s1, 1 +/* 0F3F88 7F0BF418 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F8C 7F0BF41C 0239082A */ slt $at, $s1, $t9 +/* 0F3F90 7F0BF420 1420FF1C */ bnez $at, .Ljp7F0BF094 +/* 0F3F94 7F0BF424 00000000 */ nop +.Ljp7F0BF428: +/* 0F3F98 7F0BF428 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3F9C 7F0BF42C 3C0BED00 */ lui $t3, 0xed00 +/* 0F3FA0 7F0BF430 260A0008 */ addiu $t2, $s0, 8 +/* 0F3FA4 7F0BF434 AFAA0060 */ sw $t2, 0x60($sp) +/* 0F3FA8 7F0BF438 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3FAC 7F0BF43C AE0B0000 */ sw $t3, ($s0) +/* 0F3FB0 7F0BF440 00028C00 */ sll $s1, $v0, 0x10 +/* 0F3FB4 7F0BF444 00116403 */ sra $t4, $s1, 0x10 +/* 0F3FB8 7F0BF448 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3FBC 7F0BF44C 01808825 */ move $s1, $t4 +/* 0F3FC0 7F0BF450 44824000 */ mtc1 $v0, $f8 +/* 0F3FC4 7F0BF454 44913000 */ mtc1 $s1, $f6 +/* 0F3FC8 7F0BF458 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F3FCC 7F0BF45C 468042A0 */ cvt.s.w $f10, $f8 +/* 0F3FD0 7F0BF460 44818000 */ mtc1 $at, $f16 +/* 0F3FD4 7F0BF464 46803220 */ cvt.s.w $f8, $f6 +/* 0F3FD8 7F0BF468 46105482 */ mul.s $f18, $f10, $f16 +/* 0F3FDC 7F0BF46C 44815000 */ mtc1 $at, $f10 +/* 0F3FE0 7F0BF470 00000000 */ nop +/* 0F3FE4 7F0BF474 460A4402 */ mul.s $f16, $f8, $f10 +/* 0F3FE8 7F0BF478 4600910D */ trunc.w.s $f4, $f18 +/* 0F3FEC 7F0BF47C 4600848D */ trunc.w.s $f18, $f16 +/* 0F3FF0 7F0BF480 440F2000 */ mfc1 $t7, $f4 +/* 0F3FF4 7F0BF484 44199000 */ mfc1 $t9, $f18 +/* 0F3FF8 7F0BF488 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F3FFC 7F0BF48C 33290FFF */ andi $t1, $t9, 0xfff +/* 0F4000 7F0BF490 00095300 */ sll $t2, $t1, 0xc +/* 0F4004 7F0BF494 030A5825 */ or $t3, $t8, $t2 +/* 0F4008 7F0BF498 AE0B0004 */ sw $t3, 4($s0) +/* 0F400C 7F0BF49C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4010 7F0BF4A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4014 7F0BF4A4 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4018 7F0BF4A8 8FA20060 */ lw $v0, 0x60($sp) +/* 0F401C 7F0BF4AC 03E00008 */ jr $ra +/* 0F4020 7F0BF4B0 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0BE8D0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005B73C +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B740 +.word 0x3ef33334 /*0.47500002*/ +glabel D_8005B744 +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B748 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005B74C +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F0BE8D0 +/* 0F3400 7F0BE8D0 3C028005 */ lui $v0, %hi(difficulty_0) +/* 0F3404 7F0BE8D4 8C428384 */ lw $v0, %lo(difficulty_0)($v0) +/* 0F3408 7F0BE8D8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F340C 7F0BE8DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F3410 7F0BE8E0 14400048 */ bnez $v0, .L7F0BEA04 +/* 0F3414 7F0BE8E4 24010001 */ li $at, 1 +/* 0F3418 7F0BE8E8 0FC228BB */ jal get_BONDdata_watch_health +/* 0F341C 7F0BE8EC 00000000 */ nop +/* 0F3420 7F0BE8F0 0FC228BF */ jal get_BONDdata_watch_armor +/* 0F3424 7F0BE8F4 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0F3428 7F0BE8F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0F342C 7F0BE8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3430 7F0BE900 44816000 */ mtc1 $at, $f12 +/* 0F3434 7F0BE904 46040380 */ add.s $f14, $f0, $f4 +/* 0F3438 7F0BE908 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0F343C 7F0BE90C 44818000 */ mtc1 $at, $f16 +/* 0F3440 7F0BE910 3C018006 */ lui $at, %hi(D_8005B73C) +/* 0F3444 7F0BE914 4610703E */ c.le.s $f14, $f16 +/* 0F3448 7F0BE918 00000000 */ nop +/* 0F344C 7F0BE91C 45000005 */ bc1f .L7F0BE934 +/* 0F3450 7F0BE920 00000000 */ nop +/* 0F3454 7F0BE924 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F3458 7F0BE928 44816000 */ mtc1 $at, $f12 +/* 0F345C 7F0BE92C 1000000F */ b .L7F0BE96C +/* 0F3460 7F0BE930 3C014000 */ lui $at, 0x4000 +.L7F0BE934: +/* 0F3464 7F0BE934 C426B73C */ lwc1 $f6, %lo(D_8005B73C)($at) +/* 0F3468 7F0BE938 3C013F00 */ lui $at, 0x3f00 +/* 0F346C 7F0BE93C 4606703E */ c.le.s $f14, $f6 +/* 0F3470 7F0BE940 00000000 */ nop +/* 0F3474 7F0BE944 45020009 */ bc1fl .L7F0BE96C +/* 0F3478 7F0BE948 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F347C 7F0BE94C 46107201 */ sub.s $f8, $f14, $f16 +/* 0F3480 7F0BE950 44819000 */ mtc1 $at, $f18 +/* 0F3484 7F0BE954 3C018006 */ lui $at, %hi(D_8005B740) +/* 0F3488 7F0BE958 C424B740 */ lwc1 $f4, %lo(D_8005B740)($at) +/* 0F348C 7F0BE95C 46124282 */ mul.s $f10, $f8, $f18 +/* 0F3490 7F0BE960 46045183 */ div.s $f6, $f10, $f4 +/* 0F3494 7F0BE964 46123300 */ add.s $f12, $f6, $f18 +/* 0F3498 7F0BE968 3C014000 */ li $at, 0x40000000 # 2.000000 +.L7F0BE96C: +/* 0F349C 7F0BE96C 44811000 */ mtc1 $at, $f2 +/* 0F34A0 7F0BE970 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F34A4 7F0BE974 44819000 */ mtc1 $at, $f18 +/* 0F34A8 7F0BE978 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F34AC 7F0BE97C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F34B0 7F0BE980 460C9002 */ mul.s $f0, $f18, $f12 +/* 0F34B4 7F0BE984 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F34B8 7F0BE988 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F34BC 7F0BE98C 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F34C0 7F0BE990 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F34C4 7F0BE994 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F34C8 7F0BE998 E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F34CC 7F0BE99C 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F34D0 7F0BE9A0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F34D4 7F0BE9A4 3C018006 */ lui $at, %hi(D_8005B744) +/* 0F34D8 7F0BE9A8 C428B744 */ lwc1 $f8, %lo(D_8005B744)($at) +/* 0F34DC 7F0BE9AC 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F34E0 7F0BE9B0 E428CE40 */ swc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 0F34E4 7F0BE9B4 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F34E8 7F0BE9B8 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F34EC 7F0BE9BC 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F34F0 7F0BE9C0 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F34F4 7F0BE9C4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0F34F8 7F0BE9C8 44815000 */ mtc1 $at, $f10 +/* 0F34FC 7F0BE9CC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3500 7F0BE9D0 460C5102 */ mul.s $f4, $f10, $f12 +/* 0F3504 7F0BE9D4 E4240178 */ swc1 $f4, %lo(D_80040178)($at) +/* 0F3508 7F0BE9D8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F350C 7F0BE9DC 44813000 */ mtc1 $at, $f6 +/* 0F3510 7F0BE9E0 3C018003 */ lui $at, %hi(difficulty) +/* 0F3514 7F0BE9E4 E4260AAC */ swc1 $f6, %lo(difficulty)($at) +/* 0F3518 7F0BE9E8 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F351C 7F0BE9EC E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F3520 7F0BE9F0 3C018006 */ lui $at, %hi(D_8005B748) +/* 0F3524 7F0BE9F4 C428B748 */ lwc1 $f8, %lo(D_8005B748)($at) +/* 0F3528 7F0BE9F8 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F352C 7F0BE9FC 1000005E */ b .L7F0BEB78 +/* 0F3530 7F0BEA00 E428CE4C */ swc1 $f8, %lo(ai_reaction_speed)($at) +.L7F0BEA04: +/* 0F3534 7F0BEA04 14410021 */ bne $v0, $at, .L7F0BEA8C +/* 0F3538 7F0BEA08 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F353C 7F0BEA0C 44810000 */ mtc1 $at, $f0 +/* 0F3540 7F0BEA10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3544 7F0BEA14 44811000 */ mtc1 $at, $f2 +/* 0F3548 7F0BEA18 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F354C 7F0BEA1C 44819000 */ mtc1 $at, $f18 +/* 0F3550 7F0BEA20 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F3554 7F0BEA24 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3558 7F0BEA28 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F355C 7F0BEA2C E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3560 7F0BEA30 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F3564 7F0BEA34 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F3568 7F0BEA38 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F356C 7F0BEA3C E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F3570 7F0BEA40 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F3574 7F0BEA44 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3578 7F0BEA48 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F357C 7F0BEA4C E420CE40 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 0F3580 7F0BEA50 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3584 7F0BEA54 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F3588 7F0BEA58 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F358C 7F0BEA5C E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3590 7F0BEA60 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3594 7F0BEA64 E4200178 */ swc1 $f0, %lo(D_80040178)($at) +/* 0F3598 7F0BEA68 3C018003 */ lui $at, %hi(difficulty) +/* 0F359C 7F0BEA6C E4200AAC */ swc1 $f0, %lo(difficulty)($at) +/* 0F35A0 7F0BEA70 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F35A4 7F0BEA74 44815000 */ mtc1 $at, $f10 +/* 0F35A8 7F0BEA78 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F35AC 7F0BEA7C E42A0B28 */ swc1 $f10, %lo(solo_ammo_multiplier)($at) +/* 0F35B0 7F0BEA80 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F35B4 7F0BEA84 1000003C */ b .L7F0BEB78 +/* 0F35B8 7F0BEA88 E432CE4C */ swc1 $f18, %lo(ai_reaction_speed)($at) +.L7F0BEA8C: +/* 0F35BC 7F0BEA8C 24010002 */ li $at, 2 +/* 0F35C0 7F0BEA90 1441001D */ bne $v0, $at, .L7F0BEB08 +/* 0F35C4 7F0BEA94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35C8 7F0BEA98 44811000 */ mtc1 $at, $f2 +/* 0F35CC 7F0BEA9C 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F35D0 7F0BEAA0 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F35D4 7F0BEAA4 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F35D8 7F0BEAA8 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F35DC 7F0BEAAC 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F35E0 7F0BEAB0 E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F35E4 7F0BEAB4 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F35E8 7F0BEAB8 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F35EC 7F0BEABC 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F35F0 7F0BEAC0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F35F4 7F0BEAC4 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F35F8 7F0BEAC8 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F35FC 7F0BEACC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3600 7F0BEAD0 E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3604 7F0BEAD4 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3608 7F0BEAD8 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F360C 7F0BEADC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3610 7F0BEAE0 E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3614 7F0BEAE4 3C018006 */ lui $at, %hi(D_8005B74C) +/* 0F3618 7F0BEAE8 C424B74C */ lwc1 $f4, %lo(D_8005B74C)($at) +/* 0F361C 7F0BEAEC 3C018003 */ lui $at, %hi(difficulty) +/* 0F3620 7F0BEAF0 E4240AAC */ swc1 $f4, %lo(difficulty)($at) +/* 0F3624 7F0BEAF4 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F3628 7F0BEAF8 E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F362C 7F0BEAFC 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F3630 7F0BEB00 1000001D */ b .L7F0BEB78 +/* 0F3634 7F0BEB04 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB08: +/* 0F3638 7F0BEB08 24010003 */ li $at, 3 +/* 0F363C 7F0BEB0C 1441001A */ bne $v0, $at, .L7F0BEB78 +/* 0F3640 7F0BEB10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3644 7F0BEB14 44811000 */ mtc1 $at, $f2 +/* 0F3648 7F0BEB18 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F364C 7F0BEB1C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3650 7F0BEB20 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F3654 7F0BEB24 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3658 7F0BEB28 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F365C 7F0BEB2C E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F3660 7F0BEB30 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F3664 7F0BEB34 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F3668 7F0BEB38 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F366C 7F0BEB3C E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3670 7F0BEB40 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F3674 7F0BEB44 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F3678 7F0BEB48 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F367C 7F0BEB4C E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3680 7F0BEB50 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3684 7F0BEB54 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3688 7F0BEB58 3C018004 */ lui $at, %hi(D_80040178) +/* 0F368C 7F0BEB5C E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3690 7F0BEB60 3C018003 */ lui $at, %hi(difficulty) +/* 0F3694 7F0BEB64 E4220AAC */ swc1 $f2, %lo(difficulty)($at) +/* 0F3698 7F0BEB68 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F369C 7F0BEB6C E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F36A0 7F0BEB70 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F36A4 7F0BEB74 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB78: +/* 0F36A8 7F0BEB78 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F36AC 7F0BEB7C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F36B0 7F0BEB80 03E00008 */ jr $ra +/* 0F36B4 7F0BEB84 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005B73C +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B740 +.word 0x3ef33334 /*0.47500002*/ +glabel D_8005B744 +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B748 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005B74C +.word 0x3f8ccccd +glabel jpD_8005B780 +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F0BE8D0 +/* 0F4024 7F0BF4B4 3C028005 */ lui $v0, %hi(difficulty_0) # $v0, 0x8005 +/* 0F4028 7F0BF4B8 8C4283B8 */ lw $v0, %lo(difficulty_0)($v0) +/* 0F402C 7F0BF4BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F4030 7F0BF4C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4034 7F0BF4C4 14400048 */ bnez $v0, .Ljp7F0BF5E8 +/* 0F4038 7F0BF4C8 24010001 */ li $at, 1 +/* 0F403C 7F0BF4CC 0FC22A89 */ jal get_BONDdata_watch_health +/* 0F4040 7F0BF4D0 00000000 */ nop +/* 0F4044 7F0BF4D4 0FC22A8D */ jal get_BONDdata_watch_armor +/* 0F4048 7F0BF4D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0F404C 7F0BF4DC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0F4050 7F0BF4E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F4054 7F0BF4E4 44816000 */ mtc1 $at, $f12 +/* 0F4058 7F0BF4E8 46040380 */ add.s $f14, $f0, $f4 +/* 0F405C 7F0BF4EC 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0F4060 7F0BF4F0 44818000 */ mtc1 $at, $f16 +/* 0F4064 7F0BF4F4 3C018006 */ lui $at, %hi(D_8005B73C) +/* 0F4068 7F0BF4F8 4610703E */ c.le.s $f14, $f16 +/* 0F406C 7F0BF4FC 00000000 */ nop +/* 0F4070 7F0BF500 45000005 */ bc1f .Ljp7F0BF518 +/* 0F4074 7F0BF504 00000000 */ nop +/* 0F4078 7F0BF508 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F407C 7F0BF50C 44816000 */ mtc1 $at, $f12 +/* 0F4080 7F0BF510 1000000F */ b .Ljp7F0BF550 +/* 0F4084 7F0BF514 3C014000 */ lui $at, 0x4000 +.Ljp7F0BF518: +/* 0F4088 7F0BF518 C426B76C */ lwc1 $f6, %lo(D_8005B73C)($at) +/* 0F408C 7F0BF51C 3C013F00 */ lui $at, 0x3f00 +/* 0F4090 7F0BF520 4606703E */ c.le.s $f14, $f6 +/* 0F4094 7F0BF524 00000000 */ nop +/* 0F4098 7F0BF528 45020009 */ bc1fl .Ljp7F0BF550 +/* 0F409C 7F0BF52C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F40A0 7F0BF530 46107201 */ sub.s $f8, $f14, $f16 +/* 0F40A4 7F0BF534 44819000 */ mtc1 $at, $f18 +/* 0F40A8 7F0BF538 3C018006 */ lui $at, %hi(D_8005B740) # $at, 0x8006 +/* 0F40AC 7F0BF53C C424B770 */ lwc1 $f4, %lo(D_8005B740)($at) +/* 0F40B0 7F0BF540 46124282 */ mul.s $f10, $f8, $f18 +/* 0F40B4 7F0BF544 46045183 */ div.s $f6, $f10, $f4 +/* 0F40B8 7F0BF548 46123300 */ add.s $f12, $f6, $f18 +/* 0F40BC 7F0BF54C 3C014000 */ li $at, 0x40000000 # 2.000000 +.Ljp7F0BF550: +/* 0F40C0 7F0BF550 44811000 */ mtc1 $at, $f2 +/* 0F40C4 7F0BF554 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F40C8 7F0BF558 44819000 */ mtc1 $at, $f18 +/* 0F40CC 7F0BF55C 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F40D0 7F0BF560 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F40D4 7F0BF564 460C9002 */ mul.s $f0, $f18, $f12 +/* 0F40D8 7F0BF568 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F40DC 7F0BF56C E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F40E0 7F0BF570 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F40E4 7F0BF574 E4200B5C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F40E8 7F0BF578 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F40EC 7F0BF57C E4200B60 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F40F0 7F0BF580 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F40F4 7F0BF584 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F40F8 7F0BF588 3C018006 */ lui $at, %hi(D_8005B744) # $at, 0x8006 +/* 0F40FC 7F0BF58C C428B774 */ lwc1 $f8, %lo(D_8005B744)($at) +/* 0F4100 7F0BF590 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F4104 7F0BF594 E428CE80 */ swc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 0F4108 7F0BF598 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F410C 7F0BF59C E420CE84 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F4110 7F0BF5A0 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F4114 7F0BF5A4 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F4118 7F0BF5A8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0F411C 7F0BF5AC 44815000 */ mtc1 $at, $f10 +/* 0F4120 7F0BF5B0 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F4124 7F0BF5B4 460C5102 */ mul.s $f4, $f10, $f12 +/* 0F4128 7F0BF5B8 E42401A8 */ swc1 $f4, %lo(D_80040178)($at) +/* 0F412C 7F0BF5BC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F4130 7F0BF5C0 44813000 */ mtc1 $at, $f6 +/* 0F4134 7F0BF5C4 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4138 7F0BF5C8 E4260AEC */ swc1 $f6, %lo(difficulty)($at) +/* 0F413C 7F0BF5CC 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F4140 7F0BF5D0 E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4144 7F0BF5D4 3C018006 */ lui $at, %hi(D_8005B748) # $at, 0x8006 +/* 0F4148 7F0BF5D8 C428B778 */ lwc1 $f8, %lo(D_8005B748)($at) +/* 0F414C 7F0BF5DC 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4150 7F0BF5E0 1000006E */ b .Ljp7F0BF79C +/* 0F4154 7F0BF5E4 E428CE8C */ swc1 $f8, %lo(ai_reaction_speed)($at) +.Ljp7F0BF5E8: +/* 0F4158 7F0BF5E8 14410029 */ bne $v0, $at, .Ljp7F0BF690 +/* 0F415C 7F0BF5EC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 0F4160 7F0BF5F0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F4164 7F0BF5F4 44810000 */ mtc1 $at, $f0 +/* 0F4168 7F0BF5F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F416C 7F0BF5FC 44811000 */ mtc1 $at, $f2 +/* 0F4170 7F0BF600 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F4174 7F0BF604 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0F4178 7F0BF608 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F417C 7F0BF60C 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F4180 7F0BF610 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F4184 7F0BF614 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F4188 7F0BF618 E4200B5C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F418C 7F0BF61C 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F4190 7F0BF620 E4200B60 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F4194 7F0BF624 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F4198 7F0BF628 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F419C 7F0BF62C 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F41A0 7F0BF630 E420CE80 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 0F41A4 7F0BF634 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F41A8 7F0BF638 E420CE84 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F41AC 7F0BF63C 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F41B0 7F0BF640 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F41B4 7F0BF644 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F41B8 7F0BF648 11C00006 */ beqz $t6, .Ljp7F0BF664 +/* 0F41BC 7F0BF64C E42001A8 */ swc1 $f0, %lo(D_80040178)($at) +/* 0F41C0 7F0BF650 3C018006 */ lui $at, %hi(D_8005B74C) # $at, 0x8006 +/* 0F41C4 7F0BF654 C42AB77C */ lwc1 $f10, %lo(D_8005B74C)($at) +/* 0F41C8 7F0BF658 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F41CC 7F0BF65C 10000003 */ b .Ljp7F0BF66C +/* 0F41D0 7F0BF660 E42A0AEC */ swc1 $f10, %lo(difficulty)($at) +.Ljp7F0BF664: +/* 0F41D4 7F0BF664 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F41D8 7F0BF668 E4200AEC */ swc1 $f0, %lo(difficulty)($at) +.Ljp7F0BF66C: +/* 0F41DC 7F0BF66C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F41E0 7F0BF670 44819000 */ mtc1 $at, $f18 +/* 0F41E4 7F0BF674 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F41E8 7F0BF678 44812000 */ mtc1 $at, $f4 +/* 0F41EC 7F0BF67C 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F41F0 7F0BF680 E4240B68 */ swc1 $f4, %lo(solo_ammo_multiplier)($at) +/* 0F41F4 7F0BF684 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F41F8 7F0BF688 10000044 */ b .Ljp7F0BF79C +/* 0F41FC 7F0BF68C E432CE8C */ swc1 $f18, %lo(ai_reaction_speed)($at) +.Ljp7F0BF690: +/* 0F4200 7F0BF690 24010002 */ li $at, 2 +/* 0F4204 7F0BF694 14410025 */ bne $v0, $at, .Ljp7F0BF72C +/* 0F4208 7F0BF698 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0F420C 7F0BF69C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F4210 7F0BF6A0 44811000 */ mtc1 $at, $f2 +/* 0F4214 7F0BF6A4 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F4218 7F0BF6A8 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0F421C 7F0BF6AC E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F4220 7F0BF6B0 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F4224 7F0BF6B4 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F4228 7F0BF6B8 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F422C 7F0BF6BC E4220B5C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F4230 7F0BF6C0 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F4234 7F0BF6C4 E4220B60 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F4238 7F0BF6C8 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F423C 7F0BF6CC E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F4240 7F0BF6D0 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F4244 7F0BF6D4 E422CE80 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F4248 7F0BF6D8 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F424C 7F0BF6DC E422CE84 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F4250 7F0BF6E0 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F4254 7F0BF6E4 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F4258 7F0BF6E8 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F425C 7F0BF6EC 11E00006 */ beqz $t7, .Ljp7F0BF708 +/* 0F4260 7F0BF6F0 E42201A8 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F4264 7F0BF6F4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F4268 7F0BF6F8 44810000 */ mtc1 $at, $f0 +/* 0F426C 7F0BF6FC 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4270 7F0BF700 10000005 */ b .Ljp7F0BF718 +/* 0F4274 7F0BF704 E4200AEC */ swc1 $f0, %lo(difficulty)($at) +.Ljp7F0BF708: +/* 0F4278 7F0BF708 3C018006 */ lui $at, %hi(jpD_8005B780) # $at, 0x8006 +/* 0F427C 7F0BF70C C426B780 */ lwc1 $f6, %lo(jpD_8005B780)($at) +/* 0F4280 7F0BF710 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4284 7F0BF714 E4260AEC */ swc1 $f6, %lo(difficulty)($at) +.Ljp7F0BF718: +/* 0F4288 7F0BF718 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F428C 7F0BF71C E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4290 7F0BF720 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4294 7F0BF724 1000001D */ b .Ljp7F0BF79C +/* 0F4298 7F0BF728 E422CE8C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.Ljp7F0BF72C: +/* 0F429C 7F0BF72C 24010003 */ li $at, 3 +/* 0F42A0 7F0BF730 1441001A */ bne $v0, $at, .Ljp7F0BF79C +/* 0F42A4 7F0BF734 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F42A8 7F0BF738 44811000 */ mtc1 $at, $f2 +/* 0F42AC 7F0BF73C 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F42B0 7F0BF740 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F42B4 7F0BF744 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F42B8 7F0BF748 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F42BC 7F0BF74C 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F42C0 7F0BF750 E4220B5C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F42C4 7F0BF754 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F42C8 7F0BF758 E4220B60 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F42CC 7F0BF75C 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F42D0 7F0BF760 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F42D4 7F0BF764 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F42D8 7F0BF768 E422CE80 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F42DC 7F0BF76C 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F42E0 7F0BF770 E422CE84 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F42E4 7F0BF774 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F42E8 7F0BF778 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F42EC 7F0BF77C 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F42F0 7F0BF780 E42201A8 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F42F4 7F0BF784 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F42F8 7F0BF788 E4220AEC */ swc1 $f2, %lo(difficulty)($at) +/* 0F42FC 7F0BF78C 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F4300 7F0BF790 E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4304 7F0BF794 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4308 7F0BF798 E422CE8C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.Ljp7F0BF79C: +/* 0F430C 7F0BF79C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4310 7F0BF7A0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F4314 7F0BF7A4 03E00008 */ jr $ra +/* 0F4318 7F0BF7A8 00000000 */ nop +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void manage_mp_game(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F36B8 7F0BEB88 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F36BC 7F0BEB8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F36C0 7F0BEB90 0C000626 */ jal mp_tlb_related +/* 0F36C4 7F0BEB94 00000000 */ nop +/* 0F36C8 7F0BEB98 3C0E8005 */ lui $t6, %hi(controls_locked_flag) +/* 0F36CC 7F0BEB9C 8DCE8370 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F36D0 7F0BEBA0 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36D4 7F0BEBA4 11C00003 */ beqz $t6, .L7F0BEBB4 +/* 0F36D8 7F0BEBA8 00000000 */ nop +/* 0F36DC 7F0BEBAC 10000010 */ b .L7F0BEBF0 +/* 0F36E0 7F0BEBB0 AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBB4: +/* 0F36E4 7F0BEBB4 0FC31820 */ jal checkGamePaused +/* 0F36E8 7F0BEBB8 00000000 */ nop +/* 0F36EC 7F0BEBBC 10400004 */ beqz $v0, .L7F0BEBD0 +/* 0F36F0 7F0BEBC0 3C0F8005 */ lui $t7, %hi(D_80048498) +/* 0F36F4 7F0BEBC4 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36F8 7F0BEBC8 10000009 */ b .L7F0BEBF0 +/* 0F36FC 7F0BEBCC AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBD0: +/* 0F3700 7F0BEBD0 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0F3704 7F0BEBD4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0F3708 7F0BEBD8 3C018005 */ lui $at, %hi(clock_timer) +/* 0F370C 7F0BEBDC 24428380 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c80 +/* 0F3710 7F0BEBE0 AC2F8374 */ sw $t7, %lo(clock_timer)($at) +/* 0F3714 7F0BEBE4 8C580000 */ lw $t8, ($v0) +/* 0F3718 7F0BEBE8 27190001 */ addiu $t9, $t8, 1 +/* 0F371C 7F0BEBEC AC590000 */ sw $t9, ($v0) +.L7F0BEBF0: +/* 0F3720 7F0BEBF0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3724 7F0BEBF4 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3728 7F0BEBF8 3C038005 */ lui $v1, %hi(global_timer) +/* 0F372C 7F0BEBFC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F3730 7F0BEC00 44822000 */ mtc1 $v0, $f4 +/* 0F3734 7F0BEC04 2463837C */ addiu $v1, %lo(global_timer) # addiu $v1, $v1, -0x7c84 +/* 0F3738 7F0BEC08 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F373C 7F0BEC0C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F3740 7F0BEC10 3C198005 */ lui $t9, %hi(D_80048394) +/* 0F3744 7F0BEC14 E4268378 */ swc1 $f6, %lo(global_timer_delta)($at) +/* 0F3748 7F0BEC18 8C6E0000 */ lw $t6, ($v1) +/* 0F374C 7F0BEC1C 2401005A */ li $at, 90 +/* 0F3750 7F0BEC20 01C27821 */ addu $t7, $t6, $v0 +/* 0F3754 7F0BEC24 AC6F0000 */ sw $t7, ($v1) +/* 0F3758 7F0BEC28 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F375C 7F0BEC2C 1301001D */ beq $t8, $at, .L7F0BECA4 +/* 0F3760 7F0BEC30 00000000 */ nop +/* 0F3764 7F0BEC34 8F398394 */ lw $t9, %lo(D_80048394)($t9) +/* 0F3768 7F0BEC38 1720001A */ bnez $t9, .L7F0BECA4 +/* 0F376C 7F0BEC3C 00000000 */ nop +/* 0F3770 7F0BEC40 18400018 */ blez $v0, .L7F0BECA4 +/* 0F3774 7F0BEC44 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 0F3778 7F0BEC48 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F377C 7F0BEC4C 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F3780 7F0BEC50 246396A1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x695f +/* 0F3784 7F0BEC54 11C00013 */ beqz $t6, .L7F0BECA4 +/* 0F3788 7F0BEC58 24040001 */ li $a0, 1 +.L7F0BEC5C: +/* 0F378C 7F0BEC5C 906F0000 */ lbu $t7, ($v1) +/* 0F3790 7F0BEC60 51E0000D */ beql $t7, $zero, .L7F0BEC98 +/* 0F3794 7F0BEC64 24840001 */ addiu $a0, $a0, 1 +/* 0F3798 7F0BEC68 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F379C 7F0BEC6C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F37A0 7F0BEC70 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37A4 7F0BEC74 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37A8 7F0BEC78 14400006 */ bnez $v0, .L7F0BEC94 +/* 0F37AC 7F0BEC7C 8FA40194 */ lw $a0, 0x194($sp) +/* 0F37B0 7F0BEC80 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F37B4 7F0BEC84 0FC246AB */ jal turn_on_cheat_for_players +/* 0F37B8 7F0BEC88 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37BC 7F0BEC8C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37C0 7F0BEC90 8FA40194 */ lw $a0, 0x194($sp) +.L7F0BEC94: +/* 0F37C4 7F0BEC94 24840001 */ addiu $a0, $a0, 1 +.L7F0BEC98: +/* 0F37C8 7F0BEC98 2401004B */ li $at, 75 +/* 0F37CC 7F0BEC9C 1481FFEF */ bne $a0, $at, .L7F0BEC5C +/* 0F37D0 7F0BECA0 24630001 */ addiu $v1, $v1, 1 +.L7F0BECA4: +/* 0F37D4 7F0BECA4 0FC26919 */ jal get_num_players +/* 0F37D8 7F0BECA8 00000000 */ nop +/* 0F37DC 7F0BECAC 28410002 */ slti $at, $v0, 2 +/* 0F37E0 7F0BECB0 1420014B */ bnez $at, .L7F0BF1E0 +/* 0F37E4 7F0BECB4 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F37E8 7F0BECB8 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F37EC 7F0BECBC 2401005A */ li $at, 90 +/* 0F37F0 7F0BECC0 13010147 */ beq $t8, $at, .L7F0BF1E0 +/* 0F37F4 7F0BECC4 00000000 */ nop +/* 0F37F8 7F0BECC8 0FC3030C */ jal get_mission_state +/* 0F37FC 7F0BECCC 00000000 */ nop +/* 0F3800 7F0BECD0 24010006 */ li $at, 6 +/* 0F3804 7F0BECD4 14410029 */ bne $v0, $at, .L7F0BED7C +/* 0F3808 7F0BECD8 00000000 */ nop +/* 0F380C 7F0BECDC AFA00190 */ sw $zero, 0x190($sp) +/* 0F3810 7F0BECE0 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F3814 7F0BECE4 0FC26919 */ jal get_num_players +/* 0F3818 7F0BECE8 AFA00188 */ sw $zero, 0x188($sp) +/* 0F381C 7F0BECEC 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3820 7F0BECF0 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3824 7F0BECF4 1840001B */ blez $v0, .L7F0BED64 +/* 0F3828 7F0BECF8 8FA60188 */ lw $a2, 0x188($sp) +/* 0F382C 7F0BECFC 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0F3830 7F0BED00 25CE9EE0 */ addiu $t6, %lo(ptr_BONDdata_p1) # addiu $t6, $t6, -0x6120 +/* 0F3834 7F0BED04 0003C880 */ sll $t9, $v1, 2 +/* 0F3838 7F0BED08 032E2021 */ addu $a0, $t9, $t6 +.L7F0BED0C: +/* 0F383C 7F0BED0C 8C820000 */ lw $v0, ($a0) +/* 0F3840 7F0BED10 24630001 */ addiu $v1, $v1, 1 +/* 0F3844 7F0BED14 24840004 */ addiu $a0, $a0, 4 +/* 0F3848 7F0BED18 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F384C 7F0BED1C 51E00007 */ beql $t7, $zero, .L7F0BED3C +/* 0F3850 7F0BED20 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3854 7F0BED24 8C580424 */ lw $t8, 0x424($v0) +/* 0F3858 7F0BED28 24A50001 */ addiu $a1, $a1, 1 +/* 0F385C 7F0BED2C 53000003 */ beql $t8, $zero, .L7F0BED3C +/* 0F3860 7F0BED30 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3864 7F0BED34 24C60001 */ addiu $a2, $a2, 1 +/* 0F3868 7F0BED38 AFA30190 */ sw $v1, 0x190($sp) +.L7F0BED3C: +/* 0F386C 7F0BED3C AFA4001C */ sw $a0, 0x1c($sp) +/* 0F3870 7F0BED40 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F3874 7F0BED44 0FC26919 */ jal get_num_players +/* 0F3878 7F0BED48 AFA60188 */ sw $a2, 0x188($sp) +/* 0F387C 7F0BED4C 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3880 7F0BED50 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F3884 7F0BED54 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3888 7F0BED58 0062082A */ slt $at, $v1, $v0 +/* 0F388C 7F0BED5C 1420FFEB */ bnez $at, .L7F0BED0C +/* 0F3890 7F0BED60 8FA60188 */ lw $a2, 0x188($sp) +.L7F0BED64: +/* 0F3894 7F0BED64 18A00005 */ blez $a1, .L7F0BED7C +/* 0F3898 7F0BED68 00000000 */ nop +/* 0F389C 7F0BED6C 14A60003 */ bne $a1, $a2, .L7F0BED7C +/* 0F38A0 7F0BED70 00000000 */ nop +/* 0F38A4 7F0BED74 0FC3030F */ jal set_missionstate +/* 0F38A8 7F0BED78 24040001 */ li $a0, 1 +.L7F0BED7C: +/* 0F38AC 7F0BED7C 3C038005 */ lui $v1, %hi(mp_time) +/* 0F38B0 7F0BED80 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F38B4 7F0BED84 3C028005 */ lui $v0, %hi(D_80048394) +/* 0F38B8 7F0BED88 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F38BC 7F0BED8C 18600049 */ blez $v1, .L7F0BEEB4 +/* 0F38C0 7F0BED90 00000000 */ nop +/* 0F38C4 7F0BED94 8C428394 */ lw $v0, %lo(D_80048394)($v0) +/* 0F38C8 7F0BED98 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F38CC 7F0BED9C 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F38D0 7F0BEDA0 0044082A */ slt $at, $v0, $a0 +/* 0F38D4 7F0BEDA4 03227021 */ addu $t6, $t9, $v0 +/* 0F38D8 7F0BEDA8 AFAE0180 */ sw $t6, 0x180($sp) +/* 0F38DC 7F0BEDAC 10200015 */ beqz $at, .L7F0BEE04 +/* 0F38E0 7F0BEDB0 AFA20184 */ sw $v0, 0x184($sp) +/* 0F38E4 7F0BEDB4 01C4082A */ slt $at, $t6, $a0 +/* 0F38E8 7F0BEDB8 14200012 */ bnez $at, .L7F0BEE04 +/* 0F38EC 7F0BEDBC 00000000 */ nop +/* 0F38F0 7F0BEDC0 0FC26919 */ jal get_num_players +/* 0F38F4 7F0BEDC4 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F38F8 7F0BEDC8 1840000E */ blez $v0, .L7F0BEE04 +/* 0F38FC 7F0BEDCC 00000000 */ nop +.L7F0BEDD0: +/* 0F3900 7F0BEDD0 0FC26C43 */ jal set_cur_player +/* 0F3904 7F0BEDD4 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F3908 7F0BEDD8 3C048006 */ lui $a0, %hi(aOneMinuteLeft) +/* 0F390C 7F0BEDDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0F3910 7F0BEDE0 2484B704 */ addiu $a0, %lo(aOneMinuteLeft) # addiu $a0, $a0, -0x48fc +/* 0F3914 7F0BEDE4 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F3918 7F0BEDE8 25F80001 */ addiu $t8, $t7, 1 +/* 0F391C 7F0BEDEC 0FC26919 */ jal get_num_players +/* 0F3920 7F0BEDF0 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F3924 7F0BEDF4 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F3928 7F0BEDF8 0322082A */ slt $at, $t9, $v0 +/* 0F392C 7F0BEDFC 1420FFF4 */ bnez $at, .L7F0BEDD0 +/* 0F3930 7F0BEE00 00000000 */ nop +.L7F0BEE04: +/* 0F3934 7F0BEE04 3C0F8005 */ lui $t7, %hi(mp_time) +/* 0F3938 7F0BEE08 8DEF8398 */ lw $t7, %lo(mp_time)($t7) +/* 0F393C 7F0BEE0C 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F3940 7F0BEE10 3C198005 */ lui $t9, %hi(D_800483A0) +/* 0F3944 7F0BEE14 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F3948 7F0BEE18 01D8082A */ slt $at, $t6, $t8 +/* 0F394C 7F0BEE1C 1420000D */ bnez $at, .L7F0BEE54 +/* 0F3950 7F0BEE20 00000000 */ nop +/* 0F3954 7F0BEE24 8F3983A0 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F3958 7F0BEE28 1720000A */ bnez $t9, .L7F0BEE54 +/* 0F395C 7F0BEE2C 00000000 */ nop +/* 0F3960 7F0BEE30 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3964 7F0BEE34 00000000 */ nop +/* 0F3968 7F0BEE38 14400006 */ bnez $v0, .L7F0BEE54 +/* 0F396C 7F0BEE3C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F3970 7F0BEE40 3C068005 */ lui $a2, %hi(D_800483A0) +/* 0F3974 7F0BEE44 24C683A0 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c60 +/* 0F3978 7F0BEE48 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F397C 7F0BEE4C 0C002382 */ jal play_sfx_a1 +/* 0F3980 7F0BEE50 240500A1 */ li $a1, 161 +.L7F0BEE54: +/* 0F3984 7F0BEE54 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3988 7F0BEE58 00000000 */ nop +/* 0F398C 7F0BEE5C 1040000A */ beqz $v0, .L7F0BEE88 +/* 0F3990 7F0BEE60 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F3994 7F0BEE64 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F3998 7F0BEE68 10800007 */ beqz $a0, .L7F0BEE88 +/* 0F399C 7F0BEE6C 00000000 */ nop +/* 0F39A0 7F0BEE70 0C00237C */ jal sfxGetArg0Unk3F +/* 0F39A4 7F0BEE74 00000000 */ nop +/* 0F39A8 7F0BEE78 10400003 */ beqz $v0, .L7F0BEE88 +/* 0F39AC 7F0BEE7C 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F39B0 7F0BEE80 0C002408 */ jal sfxDeactivate +/* 0F39B4 7F0BEE84 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +.L7F0BEE88: +/* 0F39B8 7F0BEE88 3C038005 */ lui $v1, %hi(mp_time) +/* 0F39BC 7F0BEE8C 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F39C0 7F0BEE90 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F39C4 7F0BEE94 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F39C8 7F0BEE98 01E3082A */ slt $at, $t7, $v1 +/* 0F39CC 7F0BEE9C 10200005 */ beqz $at, .L7F0BEEB4 +/* 0F39D0 7F0BEEA0 01C3082A */ slt $at, $t6, $v1 +/* 0F39D4 7F0BEEA4 14200003 */ bnez $at, .L7F0BEEB4 +/* 0F39D8 7F0BEEA8 00000000 */ nop +/* 0F39DC 7F0BEEAC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F39E0 7F0BEEB0 00002025 */ move $a0, $zero +.L7F0BEEB4: +/* 0F39E4 7F0BEEB4 3C188005 */ lui $t8, %hi(mp_point) +/* 0F39E8 7F0BEEB8 8F18839C */ lw $t8, %lo(mp_point)($t8) +/* 0F39EC 7F0BEEBC 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F39F0 7F0BEEC0 1B00003D */ blez $t8, .L7F0BEFB8 +/* 0F39F4 7F0BEEC4 00000000 */ nop +/* 0F39F8 7F0BEEC8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F39FC 7F0BEECC 1320003A */ beqz $t9, .L7F0BEFB8 +/* 0F3A00 7F0BEED0 00000000 */ nop +/* 0F3A04 7F0BEED4 0FC26919 */ jal get_num_players +/* 0F3A08 7F0BEED8 00000000 */ nop +/* 0F3A0C 7F0BEEDC 00403825 */ move $a3, $v0 +/* 0F3A10 7F0BEEE0 00002825 */ move $a1, $zero +/* 0F3A14 7F0BEEE4 00003025 */ move $a2, $zero +/* 0F3A18 7F0BEEE8 18400029 */ blez $v0, .L7F0BEF90 +/* 0F3A1C 7F0BEEEC 00002025 */ move $a0, $zero +/* 0F3A20 7F0BEEF0 3C038008 */ lui $v1, %hi(ptr_BONDdata_p1) +/* 0F3A24 7F0BEEF4 44800000 */ mtc1 $zero, $f0 +/* 0F3A28 7F0BEEF8 24639EE0 */ addiu $v1, %lo(ptr_BONDdata_p1) # addiu $v1, $v1, -0x6120 +.L7F0BEEFC: +/* 0F3A2C 7F0BEEFC 8C620000 */ lw $v0, ($v1) +/* 0F3A30 7F0BEF00 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F3A34 7F0BEF04 51E0000E */ beql $t7, $zero, .L7F0BEF40 +/* 0F3A38 7F0BEF08 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A3C 7F0BEF0C 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F3A40 7F0BEF10 51C0000A */ beql $t6, $zero, .L7F0BEF3C +/* 0F3A44 7F0BEF14 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A48 7F0BEF18 8C580428 */ lw $t8, 0x428($v0) +/* 0F3A4C 7F0BEF1C 53000007 */ beql $t8, $zero, .L7F0BEF3C +/* 0F3A50 7F0BEF20 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A54 7F0BEF24 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0F3A58 7F0BEF28 4608003E */ c.le.s $f0, $f8 +/* 0F3A5C 7F0BEF2C 00000000 */ nop +/* 0F3A60 7F0BEF30 45020003 */ bc1fl .L7F0BEF40 +/* 0F3A64 7F0BEF34 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A68 7F0BEF38 24A50001 */ addiu $a1, $a1, 1 +.L7F0BEF3C: +/* 0F3A6C 7F0BEF3C AFA3001C */ sw $v1, 0x1c($sp) +.L7F0BEF40: +/* 0F3A70 7F0BEF40 AFA40174 */ sw $a0, 0x174($sp) +/* 0F3A74 7F0BEF44 AFA50170 */ sw $a1, 0x170($sp) +/* 0F3A78 7F0BEF48 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F3A7C 7F0BEF4C 0FC30E36 */ jal get_points_for_mp_player +/* 0F3A80 7F0BEF50 AFA70178 */ sw $a3, 0x178($sp) +/* 0F3A84 7F0BEF54 3C198005 */ lui $t9, %hi(mp_point) +/* 0F3A88 7F0BEF58 8F39839C */ lw $t9, %lo(mp_point)($t9) +/* 0F3A8C 7F0BEF5C 44800000 */ mtc1 $zero, $f0 +/* 0F3A90 7F0BEF60 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F3A94 7F0BEF64 0059082A */ slt $at, $v0, $t9 +/* 0F3A98 7F0BEF68 8FA40174 */ lw $a0, 0x174($sp) +/* 0F3A9C 7F0BEF6C 8FA50170 */ lw $a1, 0x170($sp) +/* 0F3AA0 7F0BEF70 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F3AA4 7F0BEF74 14200002 */ bnez $at, .L7F0BEF80 +/* 0F3AA8 7F0BEF78 8FA70178 */ lw $a3, 0x178($sp) +/* 0F3AAC 7F0BEF7C 24C60001 */ addiu $a2, $a2, 1 +.L7F0BEF80: +/* 0F3AB0 7F0BEF80 24840001 */ addiu $a0, $a0, 1 +/* 0F3AB4 7F0BEF84 0087082A */ slt $at, $a0, $a3 +/* 0F3AB8 7F0BEF88 1420FFDC */ bnez $at, .L7F0BEEFC +/* 0F3ABC 7F0BEF8C 24630004 */ addiu $v1, $v1, 4 +.L7F0BEF90: +/* 0F3AC0 7F0BEF90 18C00009 */ blez $a2, .L7F0BEFB8 +/* 0F3AC4 7F0BEF94 00000000 */ nop +/* 0F3AC8 7F0BEF98 14A00005 */ bnez $a1, .L7F0BEFB0 +/* 0F3ACC 7F0BEF9C 00000000 */ nop +/* 0F3AD0 7F0BEFA0 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3AD4 7F0BEFA4 00002025 */ move $a0, $zero +/* 0F3AD8 7F0BEFA8 10000003 */ b .L7F0BEFB8 +/* 0F3ADC 7F0BEFAC 00000000 */ nop +.L7F0BEFB0: +/* 0F3AE0 7F0BEFB0 0FC30948 */ jal set_stopplay_flag +/* 0F3AE4 7F0BEFB4 00000000 */ nop +.L7F0BEFB8: +/* 0F3AE8 7F0BEFB8 0FC051D6 */ jal get_scenario +/* 0F3AEC 7F0BEFBC 00000000 */ nop +/* 0F3AF0 7F0BEFC0 24010001 */ li $at, 1 +/* 0F3AF4 7F0BEFC4 14410086 */ bne $v0, $at, .L7F0BF1E0 +/* 0F3AF8 7F0BEFC8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0F3AFC 7F0BEFCC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0F3B00 7F0BEFD0 11E00083 */ beqz $t7, .L7F0BF1E0 +/* 0F3B04 7F0BEFD4 00000000 */ nop +/* 0F3B08 7F0BEFD8 0FC26919 */ jal get_num_players +/* 0F3B0C 7F0BEFDC 00000000 */ nop +/* 0F3B10 7F0BEFE0 44800000 */ mtc1 $zero, $f0 +/* 0F3B14 7F0BEFE4 00405025 */ move $t2, $v0 +/* 0F3B18 7F0BEFE8 00006825 */ move $t5, $zero +/* 0F3B1C 7F0BEFEC 0000F825 */ move $ra, $zero +/* 0F3B20 7F0BEFF0 1840006E */ blez $v0, .L7F0BF1AC +/* 0F3B24 7F0BEFF4 00006025 */ move $t4, $zero +/* 0F3B28 7F0BEFF8 00002825 */ move $a1, $zero +.L7F0BEFFC: +/* 0F3B2C 7F0BEFFC 00003025 */ move $a2, $zero +/* 0F3B30 7F0BF000 18400048 */ blez $v0, .L7F0BF124 +/* 0F3B34 7F0BF004 00003825 */ move $a3, $zero +/* 0F3B38 7F0BF008 30490003 */ andi $t1, $v0, 3 +/* 0F3B3C 7F0BF00C 11200019 */ beqz $t1, .L7F0BF074 +/* 0F3B40 7F0BF010 000C5880 */ sll $t3, $t4, 2 +/* 0F3B44 7F0BF014 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3B48 7F0BF018 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3B4C 7F0BF01C 00007080 */ sll $t6, $zero, 2 +/* 0F3B50 7F0BF020 0000C8C0 */ sll $t9, $zero, 3 +/* 0F3B54 7F0BF024 0320C823 */ subu $t9, $t9, $zero +/* 0F3B58 7F0BF028 01D81821 */ addu $v1, $t6, $t8 +/* 0F3B5C 7F0BF02C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3B60 7F0BF030 0019C900 */ sll $t9, $t9, 4 +/* 0F3B64 7F0BF034 032B7821 */ addu $t7, $t9, $t3 +/* 0F3B68 7F0BF038 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3B6C 7F0BF03C 01EE2021 */ addu $a0, $t7, $t6 +/* 0F3B70 7F0BF040 01204025 */ move $t0, $t1 +.L7F0BF044: +/* 0F3B74 7F0BF044 8C780000 */ lw $t8, ($v1) +/* 0F3B78 7F0BF048 24E70001 */ addiu $a3, $a3, 1 +/* 0F3B7C 7F0BF04C 24630004 */ addiu $v1, $v1, 4 +/* 0F3B80 7F0BF050 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F3B84 7F0BF054 57200003 */ bnezl $t9, .L7F0BF064 +/* 0F3B88 7F0BF058 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F3B8C 7F0BF05C 24C60001 */ addiu $a2, $a2, 1 +/* 0F3B90 7F0BF060 8C8F0024 */ lw $t7, 0x24($a0) +.L7F0BF064: +/* 0F3B94 7F0BF064 24840070 */ addiu $a0, $a0, 0x70 +/* 0F3B98 7F0BF068 1507FFF6 */ bne $t0, $a3, .L7F0BF044 +/* 0F3B9C 7F0BF06C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3BA0 7F0BF070 10E2002C */ beq $a3, $v0, .L7F0BF124 +.L7F0BF074: +/* 0F3BA4 7F0BF074 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3BA8 7F0BF078 0007C8C0 */ sll $t9, $a3, 3 +/* 0F3BAC 7F0BF07C 0327C823 */ subu $t9, $t9, $a3 +/* 0F3BB0 7F0BF080 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3BB4 7F0BF084 00077080 */ sll $t6, $a3, 2 +/* 0F3BB8 7F0BF088 01D81821 */ addu $v1, $t6, $t8 +/* 0F3BBC 7F0BF08C 0019C900 */ sll $t9, $t9, 4 +/* 0F3BC0 7F0BF090 032B7821 */ addu $t7, $t9, $t3 +/* 0F3BC4 7F0BF094 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3BC8 7F0BF098 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3BCC 7F0BF09C 000AC880 */ sll $t9, $t2, 2 +/* 0F3BD0 7F0BF0A0 03384021 */ addu $t0, $t9, $t8 +/* 0F3BD4 7F0BF0A4 01EE2021 */ addu $a0, $t7, $t6 +.L7F0BF0A8: +/* 0F3BD8 7F0BF0A8 8C6F0000 */ lw $t7, ($v1) +/* 0F3BDC 7F0BF0AC 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F3BE0 7F0BF0B0 55C00003 */ bnezl $t6, .L7F0BF0C0 +/* 0F3BE4 7F0BF0B4 8C780004 */ lw $t8, 4($v1) +/* 0F3BE8 7F0BF0B8 24C60001 */ addiu $a2, $a2, 1 +/* 0F3BEC 7F0BF0BC 8C780004 */ lw $t8, 4($v1) +.L7F0BF0C0: +/* 0F3BF0 7F0BF0C0 8C990024 */ lw $t9, 0x24($a0) +/* 0F3BF4 7F0BF0C4 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F3BF8 7F0BF0C8 00B92821 */ addu $a1, $a1, $t9 +/* 0F3BFC 7F0BF0CC 55E00003 */ bnezl $t7, .L7F0BF0DC +/* 0F3C00 7F0BF0D0 8C790008 */ lw $t9, 8($v1) +/* 0F3C04 7F0BF0D4 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C08 7F0BF0D8 8C790008 */ lw $t9, 8($v1) +.L7F0BF0DC: +/* 0F3C0C 7F0BF0DC 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F3C10 7F0BF0E0 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F3C14 7F0BF0E4 00AE2821 */ addu $a1, $a1, $t6 +/* 0F3C18 7F0BF0E8 57000003 */ bnezl $t8, .L7F0BF0F8 +/* 0F3C1C 7F0BF0EC 8C6E000C */ lw $t6, 0xc($v1) +/* 0F3C20 7F0BF0F0 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C24 7F0BF0F4 8C6E000C */ lw $t6, 0xc($v1) +.L7F0BF0F8: +/* 0F3C28 7F0BF0F8 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F3C2C 7F0BF0FC 24630010 */ addiu $v1, $v1, 0x10 +/* 0F3C30 7F0BF100 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F3C34 7F0BF104 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3C38 7F0BF108 57200003 */ bnezl $t9, .L7F0BF118 +/* 0F3C3C 7F0BF10C 8C980174 */ lw $t8, 0x174($a0) +/* 0F3C40 7F0BF110 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C44 7F0BF114 8C980174 */ lw $t8, 0x174($a0) +.L7F0BF118: +/* 0F3C48 7F0BF118 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F3C4C 7F0BF11C 1468FFE2 */ bne $v1, $t0, .L7F0BF0A8 +/* 0F3C50 7F0BF120 00B82821 */ addu $a1, $a1, $t8 +.L7F0BF124: +/* 0F3C54 7F0BF124 28A10002 */ slti $at, $a1, 2 +/* 0F3C58 7F0BF128 1420001C */ bnez $at, .L7F0BF19C +/* 0F3C5C 7F0BF12C 000C78C0 */ sll $t7, $t4, 3 +/* 0F3C60 7F0BF130 01EC7823 */ subu $t7, $t7, $t4 +/* 0F3C64 7F0BF134 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3C68 7F0BF138 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3C6C 7F0BF13C 000F7900 */ sll $t7, $t7, 4 +/* 0F3C70 7F0BF140 01EE1821 */ addu $v1, $t7, $t6 +/* 0F3C74 7F0BF144 906F0068 */ lbu $t7, 0x68($v1) +/* 0F3C78 7F0BF148 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3C7C 7F0BF14C 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3C80 7F0BF150 000CC880 */ sll $t9, $t4, 2 +/* 0F3C84 7F0BF154 15E00003 */ bnez $t7, .L7F0BF164 +/* 0F3C88 7F0BF158 03382021 */ addu $a0, $t9, $t8 +/* 0F3C8C 7F0BF15C 24CE0001 */ addiu $t6, $a2, 1 +/* 0F3C90 7F0BF160 A06E0068 */ sb $t6, 0x68($v1) +.L7F0BF164: +/* 0F3C94 7F0BF164 8C830000 */ lw $v1, ($a0) +/* 0F3C98 7F0BF168 25AD0001 */ addiu $t5, $t5, 1 +/* 0F3C9C 7F0BF16C 8C790424 */ lw $t9, 0x424($v1) +/* 0F3CA0 7F0BF170 5320000B */ beql $t9, $zero, .L7F0BF1A0 +/* 0F3CA4 7F0BF174 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CA8 7F0BF178 8C780428 */ lw $t8, 0x428($v1) +/* 0F3CAC 7F0BF17C 53000008 */ beql $t8, $zero, .L7F0BF1A0 +/* 0F3CB0 7F0BF180 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CB4 7F0BF184 C46A03E4 */ lwc1 $f10, 0x3e4($v1) +/* 0F3CB8 7F0BF188 4600503C */ c.lt.s $f10, $f0 +/* 0F3CBC 7F0BF18C 00000000 */ nop +/* 0F3CC0 7F0BF190 45020003 */ bc1fl .L7F0BF1A0 +/* 0F3CC4 7F0BF194 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CC8 7F0BF198 27FF0001 */ addiu $ra, $ra, 1 +.L7F0BF19C: +/* 0F3CCC 7F0BF19C 258C0001 */ addiu $t4, $t4, 1 +.L7F0BF1A0: +/* 0F3CD0 7F0BF1A0 018A082A */ slt $at, $t4, $t2 +/* 0F3CD4 7F0BF1A4 5420FF95 */ bnezl $at, .L7F0BEFFC +/* 0F3CD8 7F0BF1A8 00002825 */ move $a1, $zero +.L7F0BF1AC: +/* 0F3CDC 7F0BF1AC 2443FFFF */ addiu $v1, $v0, -1 +/* 0F3CE0 7F0BF1B0 03E3082A */ slt $at, $ra, $v1 +/* 0F3CE4 7F0BF1B4 54200006 */ bnezl $at, .L7F0BF1D0 +/* 0F3CE8 7F0BF1B8 01A3082A */ slt $at, $t5, $v1 +/* 0F3CEC 7F0BF1BC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3CF0 7F0BF1C0 00002025 */ move $a0, $zero +/* 0F3CF4 7F0BF1C4 10000006 */ b .L7F0BF1E0 +/* 0F3CF8 7F0BF1C8 00000000 */ nop +/* 0F3CFC 7F0BF1CC 01A3082A */ slt $at, $t5, $v1 +.L7F0BF1D0: +/* 0F3D00 7F0BF1D0 14200003 */ bnez $at, .L7F0BF1E0 +/* 0F3D04 7F0BF1D4 00000000 */ nop +/* 0F3D08 7F0BF1D8 0FC30948 */ jal set_stopplay_flag +/* 0F3D0C 7F0BF1DC 00000000 */ nop +.L7F0BF1E0: +/* 0F3D10 7F0BF1E0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3D14 7F0BF1E4 3C0F8005 */ lui $t7, %hi(D_80048394) +/* 0F3D18 7F0BF1E8 8DEF8394 */ lw $t7, %lo(D_80048394)($t7) +/* 0F3D1C 7F0BF1EC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3D20 7F0BF1F0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D24 7F0BF1F4 44810000 */ mtc1 $at, $f0 +/* 0F3D28 7F0BF1F8 01E27021 */ addu $t6, $t7, $v0 +/* 0F3D2C 7F0BF1FC 448E8000 */ mtc1 $t6, $f16 +/* 0F3D30 7F0BF200 3C018005 */ lui $at, %hi(D_80048394) +/* 0F3D34 7F0BF204 AC2E8394 */ sw $t6, %lo(D_80048394)($at) +/* 0F3D38 7F0BF208 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3D3C 7F0BF20C 3C038005 */ lui $v1, %hi(D_800483A8) +/* 0F3D40 7F0BF210 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F3D44 7F0BF214 246383A8 */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c58 +/* 0F3D48 7F0BF218 00002025 */ move $a0, $zero +/* 0F3D4C 7F0BF21C 3405FFFF */ li $a1, 65535 +/* 0F3D50 7F0BF220 46009103 */ div.s $f4, $f18, $f0 +/* 0F3D54 7F0BF224 E42483A4 */ swc1 $f4, %lo(cur_mp_sec)($at) +/* 0F3D58 7F0BF228 8C790000 */ lw $t9, ($v1) +/* 0F3D5C 7F0BF22C 3C018005 */ lui $at, %hi(cur_mp_min) +/* 0F3D60 7F0BF230 03227821 */ addu $t7, $t9, $v0 +/* 0F3D64 7F0BF234 448F3000 */ mtc1 $t7, $f6 +/* 0F3D68 7F0BF238 AC6F0000 */ sw $t7, ($v1) +/* 0F3D6C 7F0BF23C 46803220 */ cvt.s.w $f8, $f6 +/* 0F3D70 7F0BF240 46004283 */ div.s $f10, $f8, $f0 +/* 0F3D74 7F0BF244 0C0030EB */ jal get_controller_buttons_pressed +/* 0F3D78 7F0BF248 E42A83AC */ swc1 $f10, %lo(cur_mp_min)($at) +/* 0F3D7C 7F0BF24C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D80 7F0BF250 44810000 */ mtc1 $at, $f0 +/* 0F3D84 7F0BF254 10400009 */ beqz $v0, .L7F0BF27C +/* 0F3D88 7F0BF258 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D8C 7F0BF25C 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D90 7F0BF260 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3D94 7F0BF264 24638390 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c70 +/* 0F3D98 7F0BF268 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F3D9C 7F0BF26C AC600000 */ sw $zero, ($v1) +/* 0F3DA0 7F0BF270 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DA4 7F0BF274 1000000C */ b .L7F0BF2A8 +/* 0F3DA8 7F0BF278 8C428374 */ lw $v0, %lo(clock_timer)($v0) +.L7F0BF27C: +/* 0F3DAC 7F0BF27C 24638390 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F3DB0 7F0BF280 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DB4 7F0BF284 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3DB8 7F0BF288 8C6E0000 */ lw $t6, ($v1) +/* 0F3DBC 7F0BF28C 240F0001 */ li $t7, 1 +/* 0F3DC0 7F0BF290 01C2C821 */ addu $t9, $t6, $v0 +/* 0F3DC4 7F0BF294 2B210708 */ slti $at, $t9, 0x708 +/* 0F3DC8 7F0BF298 14200003 */ bnez $at, .L7F0BF2A8 +/* 0F3DCC 7F0BF29C AC790000 */ sw $t9, ($v1) +/* 0F3DD0 7F0BF2A0 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3DD4 7F0BF2A4 AC2F8388 */ sw $t7, %lo(D_80048388)($at) +.L7F0BF2A8: +/* 0F3DD8 7F0BF2A8 3C0E8005 */ lui $t6, %hi(D_80048388) +/* 0F3DDC 7F0BF2AC 8DCE8388 */ lw $t6, %lo(D_80048388)($t6) +/* 0F3DE0 7F0BF2B0 3C038005 */ lui $v1, %hi(D_8004838C) +/* 0F3DE4 7F0BF2B4 2463838C */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c74 +/* 0F3DE8 7F0BF2B8 11C00005 */ beqz $t6, .L7F0BF2D0 +/* 0F3DEC 7F0BF2BC 00000000 */ nop +/* 0F3DF0 7F0BF2C0 8C790000 */ lw $t9, ($v1) +/* 0F3DF4 7F0BF2C4 0322C021 */ addu $t8, $t9, $v0 +/* 0F3DF8 7F0BF2C8 10000015 */ b .L7F0BF320 +/* 0F3DFC 7F0BF2CC AC780000 */ sw $t8, ($v1) +.L7F0BF2D0: +/* 0F3E00 7F0BF2D0 3C038005 */ lui $v1, %hi(D_800483B0) +/* 0F3E04 7F0BF2D4 246383B0 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c50 +/* 0F3E08 7F0BF2D8 8C6F0000 */ lw $t7, ($v1) +/* 0F3E0C 7F0BF2DC 3C048005 */ lui $a0, %hi(D_800483B8) +/* 0F3E10 7F0BF2E0 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F3E14 7F0BF2E4 01E2C821 */ addu $t9, $t7, $v0 +/* 0F3E18 7F0BF2E8 44998000 */ mtc1 $t9, $f16 +/* 0F3E1C 7F0BF2EC AC790000 */ sw $t9, ($v1) +/* 0F3E20 7F0BF2F0 248483B8 */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c48 +/* 0F3E24 7F0BF2F4 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3E28 7F0BF2F8 46009103 */ div.s $f4, $f18, $f0 +/* 0F3E2C 7F0BF2FC E42483B4 */ swc1 $f4, %lo(stage_time_sec)($at) +/* 0F3E30 7F0BF300 8C980000 */ lw $t8, ($a0) +/* 0F3E34 7F0BF304 3C018005 */ lui $at, %hi(poweron_time_sec) +/* 0F3E38 7F0BF308 03027021 */ addu $t6, $t8, $v0 +/* 0F3E3C 7F0BF30C 448E3000 */ mtc1 $t6, $f6 +/* 0F3E40 7F0BF310 AC8E0000 */ sw $t6, ($a0) +/* 0F3E44 7F0BF314 46803220 */ cvt.s.w $f8, $f6 +/* 0F3E48 7F0BF318 46004283 */ div.s $f10, $f8, $f0 +/* 0F3E4C 7F0BF31C E42A83BC */ swc1 $f10, %lo(poweron_time_sec)($at) +.L7F0BF320: +/* 0F3E50 7F0BF320 0C00114D */ jal set_video2_settings_offset_24 +/* 0F3E54 7F0BF324 24040001 */ li $a0, 1 +/* 0F3E58 7F0BF328 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F3E5C 7F0BF32C 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F3E60 7F0BF330 2401005A */ li $at, 90 +/* 0F3E64 7F0BF334 17210009 */ bne $t9, $at, .L7F0BF35C +/* 0F3E68 7F0BF338 00000000 */ nop +/* 0F3E6C 7F0BF33C 0FC2464F */ jal cheat_buttons_mp_related +/* 0F3E70 7F0BF340 00000000 */ nop +/* 0F3E74 7F0BF344 0FC06987 */ jal menu_init +/* 0F3E78 7F0BF348 00000000 */ nop +/* 0F3E7C 7F0BF34C 0FC30650 */ jal something_with_LnameJ +/* 0F3E80 7F0BF350 00000000 */ nop +/* 0F3E84 7F0BF354 100000A9 */ b .L7F0BF5FC +/* 0F3E88 7F0BF358 00000000 */ nop +.L7F0BF35C: +/* 0F3E8C 7F0BF35C 0FC26EEF */ jal sub_GAME_7F09BBBC +/* 0F3E90 7F0BF360 00000000 */ nop +/* 0F3E94 7F0BF364 0FC2FA34 */ jal sub_GAME_7F0BE8D0 +/* 0F3E98 7F0BF368 00000000 */ nop +/* 0F3E9C 7F0BF36C 0FC2F1F5 */ jal sub_GAME_7F0BC7D4 +/* 0F3EA0 7F0BF370 00000000 */ nop +/* 0F3EA4 7F0BF374 0FC24B94 */ jal sub_GAME_7F092E50 +/* 0F3EA8 7F0BF378 00000000 */ nop +/* 0F3EAC 7F0BF37C 0FC2510E */ jal sub_GAME_7F094438 +/* 0F3EB0 7F0BF380 00000000 */ nop +/* 0F3EB4 7F0BF384 0FC291FF */ jal sub_GAME_7F0A47FC +/* 0F3EB8 7F0BF388 00000000 */ nop +/* 0F3EBC 7F0BF38C 0FC1A39B */ jal sub_GAME_7F068E6C +/* 0F3EC0 7F0BF390 00000000 */ nop +/* 0F3EC4 7F0BF394 0FC28A35 */ jal sub_GAME_7F0A28D4 +/* 0F3EC8 7F0BF398 00000000 */ nop +/* 0F3ECC 7F0BF39C 0FC27F4F */ jal sub_GAME_7F09FD3C +/* 0F3ED0 7F0BF3A0 00000000 */ nop +/* 0F3ED4 7F0BF3A4 0FC0F192 */ jal handle_mp_respawn_and_some_things +/* 0F3ED8 7F0BF3A8 00000000 */ nop +/* 0F3EDC 7F0BF3AC 0FC304F2 */ jal reset_all_music_slots +/* 0F3EE0 7F0BF3B0 00000000 */ nop +/* 0F3EE4 7F0BF3B4 0FC30650 */ jal something_with_LnameJ +/* 0F3EE8 7F0BF3B8 00000000 */ nop +/* 0F3EEC 7F0BF3BC 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 0F3EF0 7F0BF3C0 00000000 */ nop +/* 0F3EF4 7F0BF3C4 1040004D */ beqz $v0, .L7F0BF4FC +/* 0F3EF8 7F0BF3C8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3EFC 7F0BF3CC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F00 7F0BF3D0 8CD80000 */ lw $t8, ($a2) +/* 0F3F04 7F0BF3D4 24043000 */ li $a0, 12288 +/* 0F3F08 7F0BF3D8 17000048 */ bnez $t8, .L7F0BF4FC +/* 0F3F0C 7F0BF3DC 00000000 */ nop +/* 0F3F10 7F0BF3E0 0C0025C8 */ jal mempAllocBytesInBank +/* 0F3F14 7F0BF3E4 24050004 */ li $a1, 4 +/* 0F3F18 7F0BF3E8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3F1C 7F0BF3EC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F20 7F0BF3F0 10400042 */ beqz $v0, .L7F0BF4FC +/* 0F3F24 7F0BF3F4 ACC20000 */ sw $v0, ($a2) +/* 0F3F28 7F0BF3F8 00001825 */ move $v1, $zero +/* 0F3F2C 7F0BF3FC 24052EE0 */ li $a1, 12000 +/* 0F3F30 7F0BF400 240400FF */ li $a0, 255 +.L7F0BF404: +/* 0F3F34 7F0BF404 8CCE0000 */ lw $t6, ($a2) +/* 0F3F38 7F0BF408 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3F3C 7F0BF40C A3240000 */ sb $a0, ($t9) +/* 0F3F40 7F0BF410 8CD80000 */ lw $t8, ($a2) +/* 0F3F44 7F0BF414 03031021 */ addu $v0, $t8, $v1 +/* 0F3F48 7F0BF418 904F0001 */ lbu $t7, 1($v0) +/* 0F3F4C 7F0BF41C 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3F50 7F0BF420 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3F54 7F0BF424 A0590001 */ sb $t9, 1($v0) +/* 0F3F58 7F0BF428 8CD80000 */ lw $t8, ($a2) +/* 0F3F5C 7F0BF42C 03031021 */ addu $v0, $t8, $v1 +/* 0F3F60 7F0BF430 904F0001 */ lbu $t7, 1($v0) +/* 0F3F64 7F0BF434 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3F68 7F0BF438 35D90004 */ ori $t9, $t6, 4 +/* 0F3F6C 7F0BF43C A0590001 */ sb $t9, 1($v0) +/* 0F3F70 7F0BF440 8CD80000 */ lw $t8, ($a2) +/* 0F3F74 7F0BF444 03037821 */ addu $t7, $t8, $v1 +/* 0F3F78 7F0BF448 A1E40004 */ sb $a0, 4($t7) +/* 0F3F7C 7F0BF44C 8CCE0000 */ lw $t6, ($a2) +/* 0F3F80 7F0BF450 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F84 7F0BF454 90590005 */ lbu $t9, 5($v0) +/* 0F3F88 7F0BF458 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F3F8C 7F0BF45C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F3F90 7F0BF460 A04F0005 */ sb $t7, 5($v0) +/* 0F3F94 7F0BF464 8CCE0000 */ lw $t6, ($a2) +/* 0F3F98 7F0BF468 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F9C 7F0BF46C 90590005 */ lbu $t9, 5($v0) +/* 0F3FA0 7F0BF470 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F3FA4 7F0BF474 370F0004 */ ori $t7, $t8, 4 +/* 0F3FA8 7F0BF478 A04F0005 */ sb $t7, 5($v0) +/* 0F3FAC 7F0BF47C 8CCE0000 */ lw $t6, ($a2) +/* 0F3FB0 7F0BF480 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3FB4 7F0BF484 A3240008 */ sb $a0, 8($t9) +/* 0F3FB8 7F0BF488 8CD80000 */ lw $t8, ($a2) +/* 0F3FBC 7F0BF48C 03031021 */ addu $v0, $t8, $v1 +/* 0F3FC0 7F0BF490 904F0009 */ lbu $t7, 9($v0) +/* 0F3FC4 7F0BF494 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3FC8 7F0BF498 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3FCC 7F0BF49C A0590009 */ sb $t9, 9($v0) +/* 0F3FD0 7F0BF4A0 8CD80000 */ lw $t8, ($a2) +/* 0F3FD4 7F0BF4A4 03031021 */ addu $v0, $t8, $v1 +/* 0F3FD8 7F0BF4A8 904F0009 */ lbu $t7, 9($v0) +/* 0F3FDC 7F0BF4AC 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3FE0 7F0BF4B0 35D90004 */ ori $t9, $t6, 4 +/* 0F3FE4 7F0BF4B4 A0590009 */ sb $t9, 9($v0) +/* 0F3FE8 7F0BF4B8 8CD80000 */ lw $t8, ($a2) +/* 0F3FEC 7F0BF4BC 03037821 */ addu $t7, $t8, $v1 +/* 0F3FF0 7F0BF4C0 A1E4000C */ sb $a0, 0xc($t7) +/* 0F3FF4 7F0BF4C4 8CCE0000 */ lw $t6, ($a2) +/* 0F3FF8 7F0BF4C8 01C31021 */ addu $v0, $t6, $v1 +/* 0F3FFC 7F0BF4CC 9059000D */ lbu $t9, 0xd($v0) +/* 0F4000 7F0BF4D0 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4004 7F0BF4D4 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4008 7F0BF4D8 A04F000D */ sb $t7, 0xd($v0) +/* 0F400C 7F0BF4DC 8CCE0000 */ lw $t6, ($a2) +/* 0F4010 7F0BF4E0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4014 7F0BF4E4 9059000D */ lbu $t9, 0xd($v0) +/* 0F4018 7F0BF4E8 24630010 */ addiu $v1, $v1, 0x10 +/* 0F401C 7F0BF4EC 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4020 7F0BF4F0 370F0004 */ ori $t7, $t8, 4 +/* 0F4024 7F0BF4F4 1465FFC3 */ bne $v1, $a1, .L7F0BF404 +/* 0F4028 7F0BF4F8 A04F000D */ sb $t7, 0xd($v0) +.L7F0BF4FC: +/* 0F402C 7F0BF4FC 0FC2440F */ jal get_debug_portal_flag +/* 0F4030 7F0BF500 00000000 */ nop +/* 0F4034 7F0BF504 10400003 */ beqz $v0, .L7F0BF514 +/* 0F4038 7F0BF508 00000000 */ nop +/* 0F403C 7F0BF50C 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F4040 7F0BF510 00002025 */ move $a0, $zero +.L7F0BF514: +/* 0F4044 7F0BF514 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4048 7F0BF518 00000000 */ nop +/* 0F404C 7F0BF51C 24010004 */ li $at, 4 +/* 0F4050 7F0BF520 10410006 */ beq $v0, $at, .L7F0BF53C +/* 0F4054 7F0BF524 00002025 */ move $a0, $zero +/* 0F4058 7F0BF528 24010008 */ li $at, 8 +/* 0F405C 7F0BF52C 1041001A */ beq $v0, $at, .L7F0BF598 +/* 0F4060 7F0BF530 00002025 */ move $a0, $zero +/* 0F4064 7F0BF534 10000031 */ b .L7F0BF5FC +/* 0F4068 7F0BF538 00000000 */ nop +.L7F0BF53C: +/* 0F406C 7F0BF53C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4070 7F0BF540 24050002 */ li $a1, 2 +/* 0F4074 7F0BF544 50400008 */ beql $v0, $zero, .L7F0BF568 +/* 0F4078 7F0BF548 00002025 */ move $a0, $zero +/* 0F407C 7F0BF54C 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F4080 7F0BF550 2404FFFF */ li $a0, -1 +/* 0F4084 7F0BF554 00002025 */ move $a0, $zero +/* 0F4088 7F0BF558 00002825 */ move $a1, $zero +/* 0F408C 7F0BF55C 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4090 7F0BF560 00003025 */ move $a2, $zero +/* 0F4094 7F0BF564 00002025 */ move $a0, $zero +.L7F0BF568: +/* 0F4098 7F0BF568 0C0030EB */ jal get_controller_buttons_pressed +/* 0F409C 7F0BF56C 24050001 */ li $a1, 1 +/* 0F40A0 7F0BF570 10400022 */ beqz $v0, .L7F0BF5FC +/* 0F40A4 7F0BF574 00000000 */ nop +/* 0F40A8 7F0BF578 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F40AC 7F0BF57C 24040001 */ li $a0, 1 +/* 0F40B0 7F0BF580 00002025 */ move $a0, $zero +/* 0F40B4 7F0BF584 00002825 */ move $a1, $zero +/* 0F40B8 7F0BF588 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F40BC 7F0BF58C 00003025 */ move $a2, $zero +/* 0F40C0 7F0BF590 1000001A */ b .L7F0BF5FC +/* 0F40C4 7F0BF594 00000000 */ nop +.L7F0BF598: +/* 0F40C8 7F0BF598 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40CC 7F0BF59C 24050002 */ li $a1, 2 +/* 0F40D0 7F0BF5A0 50400004 */ beql $v0, $zero, .L7F0BF5B4 +/* 0F40D4 7F0BF5A4 00002025 */ move $a0, $zero +/* 0F40D8 7F0BF5A8 0FC08B8C */ jal sub_GAME_7F022E30 +/* 0F40DC 7F0BF5AC 00000000 */ nop +/* 0F40E0 7F0BF5B0 00002025 */ move $a0, $zero +.L7F0BF5B4: +/* 0F40E4 7F0BF5B4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40E8 7F0BF5B8 24050001 */ li $a1, 1 +/* 0F40EC 7F0BF5BC 50400004 */ beql $v0, $zero, .L7F0BF5D0 +/* 0F40F0 7F0BF5C0 00002025 */ move $a0, $zero +/* 0F40F4 7F0BF5C4 0FC08BA4 */ jal sub_GAME_7F022E90 +/* 0F40F8 7F0BF5C8 00000000 */ nop +/* 0F40FC 7F0BF5CC 00002025 */ move $a0, $zero +.L7F0BF5D0: +/* 0F4100 7F0BF5D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4104 7F0BF5D4 24050020 */ li $a1, 32 +/* 0F4108 7F0BF5D8 50400004 */ beql $v0, $zero, .L7F0BF5EC +/* 0F410C 7F0BF5DC 00002025 */ move $a0, $zero +/* 0F4110 7F0BF5E0 0FC08BB2 */ jal sub_GAME_7F022EC8 +/* 0F4114 7F0BF5E4 00000000 */ nop +/* 0F4118 7F0BF5E8 00002025 */ move $a0, $zero +.L7F0BF5EC: +/* 0F411C 7F0BF5EC 0C0030C3 */ jal get_controller_buttons_held +/* 0F4120 7F0BF5F0 24050010 */ li $a1, 16 +/* 0F4124 7F0BF5F4 0FC08BB8 */ jal sub_GAME_7F022EE0 +/* 0F4128 7F0BF5F8 0002202B */ sltu $a0, $zero, $v0 +.L7F0BF5FC: +/* 0F412C 7F0BF5FC 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4130 7F0BF600 00000000 */ nop +/* 0F4134 7F0BF604 2401000C */ li $at, 12 +/* 0F4138 7F0BF608 1041002E */ beq $v0, $at, .L7F0BF6C4 +/* 0F413C 7F0BF60C 00002025 */ move $a0, $zero +/* 0F4140 7F0BF610 2401000D */ li $at, 13 +/* 0F4144 7F0BF614 10410048 */ beq $v0, $at, .L7F0BF738 +/* 0F4148 7F0BF618 00002025 */ move $a0, $zero +/* 0F414C 7F0BF61C 24010038 */ li $at, 56 +/* 0F4150 7F0BF620 54410074 */ bnel $v0, $at, .L7F0BF7F4 +/* 0F4154 7F0BF624 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4158 7F0BF628 0C0010EA */ jal get_D_8002329C +/* 0F415C 7F0BF62C 00000000 */ nop +/* 0F4160 7F0BF630 0C0010E4 */ jal get_D_800232A0 +/* 0F4164 7F0BF634 AFA20030 */ sw $v0, 0x30($sp) +/* 0F4168 7F0BF638 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F416C 7F0BF63C 00002025 */ move $a0, $zero +/* 0F4170 7F0BF640 0C0030C3 */ jal get_controller_buttons_held +/* 0F4174 7F0BF644 24050004 */ li $a1, 4 +/* 0F4178 7F0BF648 10400004 */ beqz $v0, .L7F0BF65C +/* 0F417C 7F0BF64C 00002025 */ move $a0, $zero +/* 0F4180 7F0BF650 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4184 7F0BF654 25D90001 */ addiu $t9, $t6, 1 +/* 0F4188 7F0BF658 AFB9002C */ sw $t9, 0x2c($sp) +.L7F0BF65C: +/* 0F418C 7F0BF65C 0C0030C3 */ jal get_controller_buttons_held +/* 0F4190 7F0BF660 24050008 */ li $a1, 8 +/* 0F4194 7F0BF664 10400004 */ beqz $v0, .L7F0BF678 +/* 0F4198 7F0BF668 00002025 */ move $a0, $zero +/* 0F419C 7F0BF66C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F41A0 7F0BF670 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41A4 7F0BF674 AFAF002C */ sw $t7, 0x2c($sp) +.L7F0BF678: +/* 0F41A8 7F0BF678 0C0030C3 */ jal get_controller_buttons_held +/* 0F41AC 7F0BF67C 24050001 */ li $a1, 1 +/* 0F41B0 7F0BF680 10400004 */ beqz $v0, .L7F0BF694 +/* 0F41B4 7F0BF684 00002025 */ move $a0, $zero +/* 0F41B8 7F0BF688 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F41BC 7F0BF68C 25D90001 */ addiu $t9, $t6, 1 +/* 0F41C0 7F0BF690 AFB90030 */ sw $t9, 0x30($sp) +.L7F0BF694: +/* 0F41C4 7F0BF694 0C0030C3 */ jal get_controller_buttons_held +/* 0F41C8 7F0BF698 24050002 */ li $a1, 2 +/* 0F41CC 7F0BF69C 10400003 */ beqz $v0, .L7F0BF6AC +/* 0F41D0 7F0BF6A0 8FB80030 */ lw $t8, 0x30($sp) +/* 0F41D4 7F0BF6A4 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41D8 7F0BF6A8 AFAF0030 */ sw $t7, 0x30($sp) +.L7F0BF6AC: +/* 0F41DC 7F0BF6AC 0C0010E7 */ jal set_D_8002329C +/* 0F41E0 7F0BF6B0 8FA40030 */ lw $a0, 0x30($sp) +/* 0F41E4 7F0BF6B4 0C0010E1 */ jal set_D_800232A0 +/* 0F41E8 7F0BF6B8 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F41EC 7F0BF6BC 1000004D */ b .L7F0BF7F4 +/* 0F41F0 7F0BF6C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF6C4: +/* 0F41F4 7F0BF6C4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F41F8 7F0BF6C8 24050202 */ li $a1, 514 +/* 0F41FC 7F0BF6CC 50400004 */ beql $v0, $zero, .L7F0BF6E0 +/* 0F4200 7F0BF6D0 00002025 */ move $a0, $zero +/* 0F4204 7F0BF6D4 0FC2F68E */ jal music_append_play_endtheme +/* 0F4208 7F0BF6D8 00000000 */ nop +/* 0F420C 7F0BF6DC 00002025 */ move $a0, $zero +.L7F0BF6E0: +/* 0F4210 7F0BF6E0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4214 7F0BF6E4 24050101 */ li $a1, 257 +/* 0F4218 7F0BF6E8 50400004 */ beql $v0, $zero, .L7F0BF6FC +/* 0F421C 7F0BF6EC 00002025 */ move $a0, $zero +/* 0F4220 7F0BF6F0 0FC2F67B */ jal music_append_play_solo_death_short +/* 0F4224 7F0BF6F4 00000000 */ nop +/* 0F4228 7F0BF6F8 00002025 */ move $a0, $zero +.L7F0BF6FC: +/* 0F422C 7F0BF6FC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4230 7F0BF700 24050400 */ li $a1, 1024 +/* 0F4234 7F0BF704 50400004 */ beql $v0, $zero, .L7F0BF718 +/* 0F4238 7F0BF708 00002025 */ move $a0, $zero +/* 0F423C 7F0BF70C 0C001BF4 */ jal musicTrack1Stop +/* 0F4240 7F0BF710 00000000 */ nop +/* 0F4244 7F0BF714 00002025 */ move $a0, $zero +.L7F0BF718: +/* 0F4248 7F0BF718 0C0030EB */ jal get_controller_buttons_pressed +/* 0F424C 7F0BF71C 24054000 */ li $a1, 16384 +/* 0F4250 7F0BF720 50400034 */ beql $v0, $zero, .L7F0BF7F4 +/* 0F4254 7F0BF724 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4258 7F0BF728 0C001C28 */ jal musicTrack1Tempo +/* 0F425C 7F0BF72C 00000000 */ nop +/* 0F4260 7F0BF730 10000030 */ b .L7F0BF7F4 +/* 0F4264 7F0BF734 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF738: +/* 0F4268 7F0BF738 0C0030EB */ jal get_controller_buttons_pressed +/* 0F426C 7F0BF73C 24050622 */ li $a1, 1570 +/* 0F4270 7F0BF740 1040000B */ beqz $v0, .L7F0BF770 +/* 0F4274 7F0BF744 3C058005 */ lui $a1, 0x8005 +/* 0F4278 7F0BF748 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F427C 7F0BF74C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F4280 7F0BF750 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F4284 7F0BF754 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4288 7F0BF758 00057400 */ sll $t6, $a1, 0x10 +/* 0F428C 7F0BF75C 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4290 7F0BF760 A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4294 7F0BF764 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4298 7F0BF768 0C002382 */ jal play_sfx_a1 +/* 0F429C 7F0BF76C 00003025 */ move $a2, $zero +.L7F0BF770: +/* 0F42A0 7F0BF770 00002025 */ move $a0, $zero +/* 0F42A4 7F0BF774 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42A8 7F0BF778 24050911 */ li $a1, 2321 +/* 0F42AC 7F0BF77C 1040000B */ beqz $v0, .L7F0BF7AC +/* 0F42B0 7F0BF780 3C058005 */ lui $a1, 0x8005 +/* 0F42B4 7F0BF784 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F42B8 7F0BF788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F42BC 7F0BF78C 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F42C0 7F0BF790 24A50001 */ addiu $a1, $a1, 1 +/* 0F42C4 7F0BF794 0005C400 */ sll $t8, $a1, 0x10 +/* 0F42C8 7F0BF798 00182C03 */ sra $a1, $t8, 0x10 +/* 0F42CC 7F0BF79C A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F42D0 7F0BF7A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F42D4 7F0BF7A4 0C002382 */ jal play_sfx_a1 +/* 0F42D8 7F0BF7A8 00003025 */ move $a2, $zero +.L7F0BF7AC: +/* 0F42DC 7F0BF7AC 00002025 */ move $a0, $zero +/* 0F42E0 7F0BF7B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42E4 7F0BF7B4 24050004 */ li $a1, 4 +/* 0F42E8 7F0BF7B8 50400004 */ beql $v0, $zero, .L7F0BF7CC +/* 0F42EC 7F0BF7BC 00002025 */ move $a0, $zero +/* 0F42F0 7F0BF7C0 0C002449 */ jal sfx_c_70009124 +/* 0F42F4 7F0BF7C4 00000000 */ nop +/* 0F42F8 7F0BF7C8 00002025 */ move $a0, $zero +.L7F0BF7CC: +/* 0F42FC 7F0BF7CC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4300 7F0BF7D0 24050008 */ li $a1, 8 +/* 0F4304 7F0BF7D4 10400006 */ beqz $v0, .L7F0BF7F0 +/* 0F4308 7F0BF7D8 3C058005 */ lui $a1, %hi(D_800483E4) +/* 0F430C 7F0BF7DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F4310 7F0BF7E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4314 7F0BF7E4 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4318 7F0BF7E8 0C002382 */ jal play_sfx_a1 +/* 0F431C 7F0BF7EC 00003025 */ move $a2, $zero +.L7F0BF7F0: +/* 0F4320 7F0BF7F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF7F4: +/* 0F4324 7F0BF7F4 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4328 7F0BF7F8 03E00008 */ jr $ra +/* 0F432C 7F0BF7FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F431C 7F0BF7AC 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F4320 7F0BF7B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4324 7F0BF7B4 0C000626 */ jal mp_tlb_related +/* 0F4328 7F0BF7B8 00000000 */ nop +/* 0F432C 7F0BF7BC 3C0E8005 */ lui $t6, %hi(controls_locked_flag) # $t6, 0x8005 +/* 0F4330 7F0BF7C0 8DCE83A0 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F4334 7F0BF7C4 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4338 7F0BF7C8 11C00003 */ beqz $t6, .Ljp7F0BF7D8 +/* 0F433C 7F0BF7CC 00000000 */ nop +/* 0F4340 7F0BF7D0 10000010 */ b .Ljp7F0BF814 +/* 0F4344 7F0BF7D4 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7D8: +/* 0F4348 7F0BF7D8 0FC31B59 */ jal checkGamePaused +/* 0F434C 7F0BF7DC 00000000 */ nop +/* 0F4350 7F0BF7E0 10400004 */ beqz $v0, .Ljp7F0BF7F4 +/* 0F4354 7F0BF7E4 3C0F8005 */ lui $t7, %hi(D_80048498) # $t7, 0x8005 +/* 0F4358 7F0BF7E8 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F435C 7F0BF7EC 10000009 */ b .Ljp7F0BF814 +/* 0F4360 7F0BF7F0 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7F4: +/* 0F4364 7F0BF7F4 8DEF84C8 */ lw $t7, %lo(D_80048498)($t7) +/* 0F4368 7F0BF7F8 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0F436C 7F0BF7FC 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4370 7F0BF800 244283B0 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c50 +/* 0F4374 7F0BF804 AC2F83A4 */ sw $t7, %lo(clock_timer)($at) +/* 0F4378 7F0BF808 8C580000 */ lw $t8, ($v0) +/* 0F437C 7F0BF80C 27190001 */ addiu $t9, $t8, 1 +/* 0F4380 7F0BF810 AC590000 */ sw $t9, ($v0) +.Ljp7F0BF814: +/* 0F4384 7F0BF814 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4388 7F0BF818 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(jp_global_timer_delta) # $v1, 0x8005 +/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(jp_global_timer_delta) # addiu $v1, $v1, -0x7c58 +/* 0F4394 7F0BF824 44822000 */ mtc1 $v0, $f4 +/* 0F4398 7F0BF828 3C048005 */ lui $a0, %hi(global_timer) # $a0, 0x8005 +/* 0F439C 7F0BF82C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0F43A0 7F0BF830 468021A0 */ cvt.s.w $f6, $f4 +/* 0F43A4 7F0BF834 248483AC */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c54 +/* 0F43A8 7F0BF838 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F43AC 7F0BF83C 3C198005 */ lui $t9, %hi(D_80048394) # $t9, 0x8005 +/* 0F43B0 7F0BF840 E4660000 */ swc1 $f6, ($v1) +/* 0F43B4 7F0BF844 C4680000 */ lwc1 $f8, ($v1) +/* 0F43B8 7F0BF848 E42883B4 */ swc1 $f8, %lo(global_timer_delta)($at) +/* 0F43BC 7F0BF84C 8C8E0000 */ lw $t6, ($a0) +/* 0F43C0 7F0BF850 2401005A */ li $at, 90 +/* 0F43C4 7F0BF854 01C27821 */ addu $t7, $t6, $v0 +/* 0F43C8 7F0BF858 AC8F0000 */ sw $t7, ($a0) +/* 0F43CC 7F0BF85C 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F43D0 7F0BF860 1301001D */ beq $t8, $at, .Ljp7F0BF8D8 +/* 0F43D4 7F0BF864 00000000 */ nop +/* 0F43D8 7F0BF868 8F3983C8 */ lw $t9, %lo(D_80048394)($t9) +/* 0F43DC 7F0BF86C 1720001A */ bnez $t9, .Ljp7F0BF8D8 +/* 0F43E0 7F0BF870 00000000 */ nop +/* 0F43E4 7F0BF874 18400018 */ blez $v0, .Ljp7F0BF8D8 +/* 0F43E8 7F0BF878 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 +/* 0F43EC 7F0BF87C 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F43F0 7F0BF880 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $v1, 0x8007 +/* 0F43F4 7F0BF884 246396E1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x691f +/* 0F43F8 7F0BF888 11C00013 */ beqz $t6, .Ljp7F0BF8D8 +/* 0F43FC 7F0BF88C 24040001 */ li $a0, 1 +.Ljp7F0BF890: +/* 0F4400 7F0BF890 906F0000 */ lbu $t7, ($v1) +/* 0F4404 7F0BF894 51E0000D */ beql $t7, $zero, .Ljp7F0BF8CC +/* 0F4408 7F0BF898 24840001 */ addiu $a0, $a0, 1 +/* 0F440C 7F0BF89C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4410 7F0BF8A0 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F4414 7F0BF8A4 AFA40194 */ sw $a0, 0x194($sp) +/* 0F4418 7F0BF8A8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F441C 7F0BF8AC 14400006 */ bnez $v0, .Ljp7F0BF8C8 +/* 0F4420 7F0BF8B0 8FA40194 */ lw $a0, 0x194($sp) +/* 0F4424 7F0BF8B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4428 7F0BF8B8 0FC24963 */ jal turn_on_cheat_for_players +/* 0F442C 7F0BF8BC AFA40194 */ sw $a0, 0x194($sp) +/* 0F4430 7F0BF8C0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F4434 7F0BF8C4 8FA40194 */ lw $a0, 0x194($sp) +.Ljp7F0BF8C8: +/* 0F4438 7F0BF8C8 24840001 */ addiu $a0, $a0, 1 +.Ljp7F0BF8CC: +/* 0F443C 7F0BF8CC 2401004B */ li $at, 75 +/* 0F4440 7F0BF8D0 1481FFEF */ bne $a0, $at, .Ljp7F0BF890 +/* 0F4444 7F0BF8D4 24630001 */ addiu $v1, $v1, 1 +.Ljp7F0BF8D8: +/* 0F4448 7F0BF8D8 0FC26C01 */ jal get_num_players +/* 0F444C 7F0BF8DC 00000000 */ nop +/* 0F4450 7F0BF8E0 28410002 */ slti $at, $v0, 2 +/* 0F4454 7F0BF8E4 1420014C */ bnez $at, .Ljp7F0BFE18 +/* 0F4458 7F0BF8E8 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F445C 7F0BF8EC 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F4460 7F0BF8F0 2401005A */ li $at, 90 +/* 0F4464 7F0BF8F4 13010148 */ beq $t8, $at, .Ljp7F0BFE18 +/* 0F4468 7F0BF8F8 00000000 */ nop +/* 0F446C 7F0BF8FC 0FC30630 */ jal get_mission_state +/* 0F4470 7F0BF900 00000000 */ nop +/* 0F4474 7F0BF904 24010006 */ li $at, 6 +/* 0F4478 7F0BF908 14410029 */ bne $v0, $at, .Ljp7F0BF9B0 +/* 0F447C 7F0BF90C 00000000 */ nop +/* 0F4480 7F0BF910 AFA00190 */ sw $zero, 0x190($sp) +/* 0F4484 7F0BF914 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F4488 7F0BF918 0FC26C01 */ jal get_num_players +/* 0F448C 7F0BF91C AFA00188 */ sw $zero, 0x188($sp) +/* 0F4490 7F0BF920 8FA30190 */ lw $v1, 0x190($sp) +/* 0F4494 7F0BF924 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F4498 7F0BF928 1840001B */ blez $v0, .Ljp7F0BF998 +/* 0F449C 7F0BF92C 8FA60188 */ lw $a2, 0x188($sp) +/* 0F44A0 7F0BF930 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) # $t6, 0x8008 +/* 0F44A4 7F0BF934 25CE9F50 */ addiu $t6, %lo(ptr_BONDdata_p1) # addiu $t6, $t6, -0x60b0 +/* 0F44A8 7F0BF938 0003C880 */ sll $t9, $v1, 2 +/* 0F44AC 7F0BF93C 032E2021 */ addu $a0, $t9, $t6 +.Ljp7F0BF940: +/* 0F44B0 7F0BF940 8C820000 */ lw $v0, ($a0) +/* 0F44B4 7F0BF944 24630001 */ addiu $v1, $v1, 1 +/* 0F44B8 7F0BF948 24840004 */ addiu $a0, $a0, 4 +/* 0F44BC 7F0BF94C 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F44C0 7F0BF950 51E00007 */ beql $t7, $zero, .Ljp7F0BF970 +/* 0F44C4 7F0BF954 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44C8 7F0BF958 8C580424 */ lw $t8, 0x424($v0) +/* 0F44CC 7F0BF95C 24A50001 */ addiu $a1, $a1, 1 +/* 0F44D0 7F0BF960 53000003 */ beql $t8, $zero, .Ljp7F0BF970 +/* 0F44D4 7F0BF964 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44D8 7F0BF968 24C60001 */ addiu $a2, $a2, 1 +/* 0F44DC 7F0BF96C AFA30190 */ sw $v1, 0x190($sp) +.Ljp7F0BF970: +/* 0F44E0 7F0BF970 AFA4001C */ sw $a0, 0x1c($sp) +/* 0F44E4 7F0BF974 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F44E8 7F0BF978 0FC26C01 */ jal get_num_players +/* 0F44EC 7F0BF97C AFA60188 */ sw $a2, 0x188($sp) +/* 0F44F0 7F0BF980 8FA30190 */ lw $v1, 0x190($sp) +/* 0F44F4 7F0BF984 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F44F8 7F0BF988 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F44FC 7F0BF98C 0062082A */ slt $at, $v1, $v0 +/* 0F4500 7F0BF990 1420FFEB */ bnez $at, .Ljp7F0BF940 +/* 0F4504 7F0BF994 8FA60188 */ lw $a2, 0x188($sp) +.Ljp7F0BF998: +/* 0F4508 7F0BF998 18A00005 */ blez $a1, .Ljp7F0BF9B0 +/* 0F450C 7F0BF99C 00000000 */ nop +/* 0F4510 7F0BF9A0 14A60003 */ bne $a1, $a2, .Ljp7F0BF9B0 +/* 0F4514 7F0BF9A4 00000000 */ nop +/* 0F4518 7F0BF9A8 0FC30633 */ jal set_missionstate +/* 0F451C 7F0BF9AC 24040001 */ li $a0, 1 +.Ljp7F0BF9B0: +/* 0F4520 7F0BF9B0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4524 7F0BF9B4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4528 7F0BF9B8 3C028005 */ lui $v0, %hi(D_80048394) # $v0, 0x8005 +/* 0F452C 7F0BF9BC 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4530 7F0BF9C0 1860004A */ blez $v1, .Ljp7F0BFAEC +/* 0F4534 7F0BF9C4 00000000 */ nop +/* 0F4538 7F0BF9C8 8C4283C8 */ lw $v0, %lo(D_80048394)($v0) +/* 0F453C 7F0BF9CC 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4540 7F0BF9D0 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F4544 7F0BF9D4 0044082A */ slt $at, $v0, $a0 +/* 0F4548 7F0BF9D8 03227021 */ addu $t6, $t9, $v0 +/* 0F454C 7F0BF9DC AFAE0180 */ sw $t6, 0x180($sp) +/* 0F4550 7F0BF9E0 10200016 */ beqz $at, .Ljp7F0BFA3C +/* 0F4554 7F0BF9E4 AFA20184 */ sw $v0, 0x184($sp) +/* 0F4558 7F0BF9E8 01C4082A */ slt $at, $t6, $a0 +/* 0F455C 7F0BF9EC 14200013 */ bnez $at, .Ljp7F0BFA3C +/* 0F4560 7F0BF9F0 00000000 */ nop +/* 0F4564 7F0BF9F4 0FC26C01 */ jal get_num_players +/* 0F4568 7F0BF9F8 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F456C 7F0BF9FC 1840000F */ blez $v0, .Ljp7F0BFA3C +/* 0F4570 7F0BFA00 00000000 */ nop +.Ljp7F0BFA04: +/* 0F4574 7F0BFA04 0FC26F2B */ jal set_cur_player +/* 0F4578 7F0BFA08 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F457C 7F0BFA0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0F4580 7F0BFA10 3404B044 */ li $a0, 45124 +/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0F4588 7F0BFA18 00402025 */ move $a0, $v0 +/* 0F458C 7F0BFA1C 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F4590 7F0BFA20 25F80001 */ addiu $t8, $t7, 1 +/* 0F4594 7F0BFA24 0FC26C01 */ jal get_num_players +/* 0F4598 7F0BFA28 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F459C 7F0BFA2C 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F45A0 7F0BFA30 0322082A */ slt $at, $t9, $v0 +/* 0F45A4 7F0BFA34 1420FFF3 */ bnez $at, .Ljp7F0BFA04 +/* 0F45A8 7F0BFA38 00000000 */ nop +.Ljp7F0BFA3C: +/* 0F45AC 7F0BFA3C 3C0F8005 */ lui $t7, %hi(mp_time) # $t7, 0x8005 +/* 0F45B0 7F0BFA40 8DEF83CC */ lw $t7, %lo(mp_time)($t7) +/* 0F45B4 7F0BFA44 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F45B8 7F0BFA48 3C198005 */ lui $t9, %hi(D_800483A0) # $t9, 0x8005 +/* 0F45BC 7F0BFA4C 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F45C0 7F0BFA50 01D8082A */ slt $at, $t6, $t8 +/* 0F45C4 7F0BFA54 1420000D */ bnez $at, .Ljp7F0BFA8C +/* 0F45C8 7F0BFA58 00000000 */ nop +/* 0F45CC 7F0BFA5C 8F3983D4 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F45D0 7F0BFA60 1720000A */ bnez $t9, .Ljp7F0BFA8C +/* 0F45D4 7F0BFA64 00000000 */ nop +/* 0F45D8 7F0BFA68 0FC3021B */ jal get_controls_locked_flag +/* 0F45DC 7F0BFA6C 00000000 */ nop +/* 0F45E0 7F0BFA70 14400006 */ bnez $v0, .Ljp7F0BFA8C +/* 0F45E4 7F0BFA74 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F45E8 7F0BFA78 3C068005 */ lui $a2, %hi(D_800483A0) # $a2, 0x8005 +/* 0F45EC 7F0BFA7C 24C683D4 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c2c +/* 0F45F0 7F0BFA80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F45F4 7F0BFA84 0C002386 */ jal play_sfx_a1 +/* 0F45F8 7F0BFA88 240500A1 */ li $a1, 161 +.Ljp7F0BFA8C: +/* 0F45FC 7F0BFA8C 0FC3021B */ jal get_controls_locked_flag +/* 0F4600 7F0BFA90 00000000 */ nop +/* 0F4604 7F0BFA94 1040000A */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4608 7F0BFA98 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F460C 7F0BFA9C 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F4610 7F0BFAA0 10800007 */ beqz $a0, .Ljp7F0BFAC0 +/* 0F4614 7F0BFAA4 00000000 */ nop +/* 0F4618 7F0BFAA8 0C002380 */ jal sfxGetArg0Unk3F +/* 0F461C 7F0BFAAC 00000000 */ nop +/* 0F4620 7F0BFAB0 10400003 */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4624 7F0BFAB4 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F4628 7F0BFAB8 0C00240C */ jal sfxDeactivate +/* 0F462C 7F0BFABC 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +.Ljp7F0BFAC0: +/* 0F4630 7F0BFAC0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4634 7F0BFAC4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4638 7F0BFAC8 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F463C 7F0BFACC 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F4640 7F0BFAD0 01E3082A */ slt $at, $t7, $v1 +/* 0F4644 7F0BFAD4 10200005 */ beqz $at, .Ljp7F0BFAEC +/* 0F4648 7F0BFAD8 01C3082A */ slt $at, $t6, $v1 +/* 0F464C 7F0BFADC 14200003 */ bnez $at, .Ljp7F0BFAEC +/* 0F4650 7F0BFAE0 00000000 */ nop +/* 0F4654 7F0BFAE4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4658 7F0BFAE8 00002025 */ move $a0, $zero +.Ljp7F0BFAEC: +/* 0F465C 7F0BFAEC 3C188005 */ lui $t8, %hi(mp_point) # $t8, 0x8005 +/* 0F4660 7F0BFAF0 8F1883D0 */ lw $t8, %lo(mp_point)($t8) +/* 0F4664 7F0BFAF4 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4668 7F0BFAF8 1B00003D */ blez $t8, .Ljp7F0BFBF0 +/* 0F466C 7F0BFAFC 00000000 */ nop +/* 0F4670 7F0BFB00 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4674 7F0BFB04 1320003A */ beqz $t9, .Ljp7F0BFBF0 +/* 0F4678 7F0BFB08 00000000 */ nop +/* 0F467C 7F0BFB0C 0FC26C01 */ jal get_num_players +/* 0F4680 7F0BFB10 00000000 */ nop +/* 0F4684 7F0BFB14 00403825 */ move $a3, $v0 +/* 0F4688 7F0BFB18 00002825 */ move $a1, $zero +/* 0F468C 7F0BFB1C 00003025 */ move $a2, $zero +/* 0F4690 7F0BFB20 18400029 */ blez $v0, .Ljp7F0BFBC8 +/* 0F4694 7F0BFB24 00002025 */ move $a0, $zero +/* 0F4698 7F0BFB28 3C038008 */ lui $v1, %hi(ptr_BONDdata_p1) # $v1, 0x8008 +/* 0F469C 7F0BFB2C 44800000 */ mtc1 $zero, $f0 +/* 0F46A0 7F0BFB30 24639F50 */ addiu $v1, %lo(ptr_BONDdata_p1) # addiu $v1, $v1, -0x60b0 +.Ljp7F0BFB34: +/* 0F46A4 7F0BFB34 8C620000 */ lw $v0, ($v1) +/* 0F46A8 7F0BFB38 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F46AC 7F0BFB3C 51E0000E */ beql $t7, $zero, .Ljp7F0BFB78 +/* 0F46B0 7F0BFB40 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46B4 7F0BFB44 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F46B8 7F0BFB48 51C0000A */ beql $t6, $zero, .Ljp7F0BFB74 +/* 0F46BC 7F0BFB4C 24A50001 */ addiu $a1, $a1, 1 +/* 0F46C0 7F0BFB50 8C580428 */ lw $t8, 0x428($v0) +/* 0F46C4 7F0BFB54 53000007 */ beql $t8, $zero, .Ljp7F0BFB74 +/* 0F46C8 7F0BFB58 24A50001 */ addiu $a1, $a1, 1 +/* 0F46CC 7F0BFB5C C44A03E4 */ lwc1 $f10, 0x3e4($v0) +/* 0F46D0 7F0BFB60 460A003E */ c.le.s $f0, $f10 +/* 0F46D4 7F0BFB64 00000000 */ nop +/* 0F46D8 7F0BFB68 45020003 */ bc1fl .Ljp7F0BFB78 +/* 0F46DC 7F0BFB6C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46E0 7F0BFB70 24A50001 */ addiu $a1, $a1, 1 +.Ljp7F0BFB74: +/* 0F46E4 7F0BFB74 AFA3001C */ sw $v1, 0x1c($sp) +.Ljp7F0BFB78: +/* 0F46E8 7F0BFB78 AFA40174 */ sw $a0, 0x174($sp) +/* 0F46EC 7F0BFB7C AFA50170 */ sw $a1, 0x170($sp) +/* 0F46F0 7F0BFB80 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F46F4 7F0BFB84 0FC31162 */ jal get_points_for_mp_player +/* 0F46F8 7F0BFB88 AFA70178 */ sw $a3, 0x178($sp) +/* 0F46FC 7F0BFB8C 3C198005 */ lui $t9, %hi(mp_point) # $t9, 0x8005 +/* 0F4700 7F0BFB90 8F3983D0 */ lw $t9, %lo(mp_point)($t9) +/* 0F4704 7F0BFB94 44800000 */ mtc1 $zero, $f0 +/* 0F4708 7F0BFB98 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F470C 7F0BFB9C 0059082A */ slt $at, $v0, $t9 +/* 0F4710 7F0BFBA0 8FA40174 */ lw $a0, 0x174($sp) +/* 0F4714 7F0BFBA4 8FA50170 */ lw $a1, 0x170($sp) +/* 0F4718 7F0BFBA8 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F471C 7F0BFBAC 14200002 */ bnez $at, .Ljp7F0BFBB8 +/* 0F4720 7F0BFBB0 8FA70178 */ lw $a3, 0x178($sp) +/* 0F4724 7F0BFBB4 24C60001 */ addiu $a2, $a2, 1 +.Ljp7F0BFBB8: +/* 0F4728 7F0BFBB8 24840001 */ addiu $a0, $a0, 1 +/* 0F472C 7F0BFBBC 0087082A */ slt $at, $a0, $a3 +/* 0F4730 7F0BFBC0 1420FFDC */ bnez $at, .Ljp7F0BFB34 +/* 0F4734 7F0BFBC4 24630004 */ addiu $v1, $v1, 4 +.Ljp7F0BFBC8: +/* 0F4738 7F0BFBC8 18C00009 */ blez $a2, .Ljp7F0BFBF0 +/* 0F473C 7F0BFBCC 00000000 */ nop +/* 0F4740 7F0BFBD0 14A00005 */ bnez $a1, .Ljp7F0BFBE8 +/* 0F4744 7F0BFBD4 00000000 */ nop +/* 0F4748 7F0BFBD8 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F474C 7F0BFBDC 00002025 */ move $a0, $zero +/* 0F4750 7F0BFBE0 10000003 */ b .Ljp7F0BFBF0 +/* 0F4754 7F0BFBE4 00000000 */ nop +.Ljp7F0BFBE8: +/* 0F4758 7F0BFBE8 0FC30C74 */ jal set_stopplay_flag +/* 0F475C 7F0BFBEC 00000000 */ nop +.Ljp7F0BFBF0: +/* 0F4760 7F0BFBF0 0FC05202 */ jal get_scenario +/* 0F4764 7F0BFBF4 00000000 */ nop +/* 0F4768 7F0BFBF8 24010001 */ li $at, 1 +/* 0F476C 7F0BFBFC 14410086 */ bne $v0, $at, .Ljp7F0BFE18 +/* 0F4770 7F0BFC00 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 0F4774 7F0BFC04 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 0F4778 7F0BFC08 11E00083 */ beqz $t7, .Ljp7F0BFE18 +/* 0F477C 7F0BFC0C 00000000 */ nop +/* 0F4780 7F0BFC10 0FC26C01 */ jal get_num_players +/* 0F4784 7F0BFC14 00000000 */ nop +/* 0F4788 7F0BFC18 44800000 */ mtc1 $zero, $f0 +/* 0F478C 7F0BFC1C 00405025 */ move $t2, $v0 +/* 0F4790 7F0BFC20 00006825 */ move $t5, $zero +/* 0F4794 7F0BFC24 0000F825 */ move $ra, $zero +/* 0F4798 7F0BFC28 1840006E */ blez $v0, .Ljp7F0BFDE4 +/* 0F479C 7F0BFC2C 00006025 */ move $t4, $zero +/* 0F47A0 7F0BFC30 00002825 */ move $a1, $zero +.Ljp7F0BFC34: +/* 0F47A4 7F0BFC34 00003025 */ move $a2, $zero +/* 0F47A8 7F0BFC38 18400048 */ blez $v0, .Ljp7F0BFD5C +/* 0F47AC 7F0BFC3C 00003825 */ move $a3, $zero +/* 0F47B0 7F0BFC40 30490003 */ andi $t1, $v0, 3 +/* 0F47B4 7F0BFC44 11200019 */ beqz $t1, .Ljp7F0BFCAC +/* 0F47B8 7F0BFC48 000C5880 */ sll $t3, $t4, 2 +/* 0F47BC 7F0BFC4C 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F47C0 7F0BFC50 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F47C4 7F0BFC54 00007080 */ sll $t6, $zero, 2 +/* 0F47C8 7F0BFC58 0000C8C0 */ sll $t9, $zero, 3 +/* 0F47CC 7F0BFC5C 0320C823 */ subu $t9, $t9, $zero +/* 0F47D0 7F0BFC60 01D81821 */ addu $v1, $t6, $t8 +/* 0F47D4 7F0BFC64 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F47D8 7F0BFC68 0019C900 */ sll $t9, $t9, 4 +/* 0F47DC 7F0BFC6C 032B7821 */ addu $t7, $t9, $t3 +/* 0F47E0 7F0BFC70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F47E4 7F0BFC74 01EE2021 */ addu $a0, $t7, $t6 +/* 0F47E8 7F0BFC78 01204025 */ move $t0, $t1 +.Ljp7F0BFC7C: +/* 0F47EC 7F0BFC7C 8C780000 */ lw $t8, ($v1) +/* 0F47F0 7F0BFC80 24E70001 */ addiu $a3, $a3, 1 +/* 0F47F4 7F0BFC84 24630004 */ addiu $v1, $v1, 4 +/* 0F47F8 7F0BFC88 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F47FC 7F0BFC8C 57200003 */ bnezl $t9, .Ljp7F0BFC9C +/* 0F4800 7F0BFC90 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F4804 7F0BFC94 24C60001 */ addiu $a2, $a2, 1 +/* 0F4808 7F0BFC98 8C8F0024 */ lw $t7, 0x24($a0) +.Ljp7F0BFC9C: +/* 0F480C 7F0BFC9C 24840070 */ addiu $a0, $a0, 0x70 +/* 0F4810 7F0BFCA0 1507FFF6 */ bne $t0, $a3, .Ljp7F0BFC7C +/* 0F4814 7F0BFCA4 00AF2821 */ addu $a1, $a1, $t7 +/* 0F4818 7F0BFCA8 10E2002C */ beq $a3, $v0, .Ljp7F0BFD5C +.Ljp7F0BFCAC: +/* 0F481C 7F0BFCAC 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F4820 7F0BFCB0 0007C8C0 */ sll $t9, $a3, 3 +/* 0F4824 7F0BFCB4 0327C823 */ subu $t9, $t9, $a3 +/* 0F4828 7F0BFCB8 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F482C 7F0BFCBC 00077080 */ sll $t6, $a3, 2 +/* 0F4830 7F0BFCC0 01D81821 */ addu $v1, $t6, $t8 +/* 0F4834 7F0BFCC4 0019C900 */ sll $t9, $t9, 4 +/* 0F4838 7F0BFCC8 032B7821 */ addu $t7, $t9, $t3 +/* 0F483C 7F0BFCCC 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F4840 7F0BFCD0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F4844 7F0BFCD4 000AC880 */ sll $t9, $t2, 2 +/* 0F4848 7F0BFCD8 03384021 */ addu $t0, $t9, $t8 +/* 0F484C 7F0BFCDC 01EE2021 */ addu $a0, $t7, $t6 +.Ljp7F0BFCE0: +/* 0F4850 7F0BFCE0 8C6F0000 */ lw $t7, ($v1) +/* 0F4854 7F0BFCE4 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F4858 7F0BFCE8 55C00003 */ bnezl $t6, .Ljp7F0BFCF8 +/* 0F485C 7F0BFCEC 8C780004 */ lw $t8, 4($v1) +/* 0F4860 7F0BFCF0 24C60001 */ addiu $a2, $a2, 1 +/* 0F4864 7F0BFCF4 8C780004 */ lw $t8, 4($v1) +.Ljp7F0BFCF8: +/* 0F4868 7F0BFCF8 8C990024 */ lw $t9, 0x24($a0) +/* 0F486C 7F0BFCFC 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F4870 7F0BFD00 00B92821 */ addu $a1, $a1, $t9 +/* 0F4874 7F0BFD04 55E00003 */ bnezl $t7, .Ljp7F0BFD14 +/* 0F4878 7F0BFD08 8C790008 */ lw $t9, 8($v1) +/* 0F487C 7F0BFD0C 24C60001 */ addiu $a2, $a2, 1 +/* 0F4880 7F0BFD10 8C790008 */ lw $t9, 8($v1) +.Ljp7F0BFD14: +/* 0F4884 7F0BFD14 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F4888 7F0BFD18 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F488C 7F0BFD1C 00AE2821 */ addu $a1, $a1, $t6 +/* 0F4890 7F0BFD20 57000003 */ bnezl $t8, .Ljp7F0BFD30 +/* 0F4894 7F0BFD24 8C6E000C */ lw $t6, 0xc($v1) +/* 0F4898 7F0BFD28 24C60001 */ addiu $a2, $a2, 1 +/* 0F489C 7F0BFD2C 8C6E000C */ lw $t6, 0xc($v1) +.Ljp7F0BFD30: +/* 0F48A0 7F0BFD30 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F48A4 7F0BFD34 24630010 */ addiu $v1, $v1, 0x10 +/* 0F48A8 7F0BFD38 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F48AC 7F0BFD3C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F48B0 7F0BFD40 57200003 */ bnezl $t9, .Ljp7F0BFD50 +/* 0F48B4 7F0BFD44 8C980174 */ lw $t8, 0x174($a0) +/* 0F48B8 7F0BFD48 24C60001 */ addiu $a2, $a2, 1 +/* 0F48BC 7F0BFD4C 8C980174 */ lw $t8, 0x174($a0) +.Ljp7F0BFD50: +/* 0F48C0 7F0BFD50 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F48C4 7F0BFD54 1468FFE2 */ bne $v1, $t0, .Ljp7F0BFCE0 +/* 0F48C8 7F0BFD58 00B82821 */ addu $a1, $a1, $t8 +.Ljp7F0BFD5C: +/* 0F48CC 7F0BFD5C 28A10002 */ slti $at, $a1, 2 +/* 0F48D0 7F0BFD60 1420001C */ bnez $at, .Ljp7F0BFDD4 +/* 0F48D4 7F0BFD64 000C78C0 */ sll $t7, $t4, 3 +/* 0F48D8 7F0BFD68 01EC7823 */ subu $t7, $t7, $t4 +/* 0F48DC 7F0BFD6C 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F48E0 7F0BFD70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F48E4 7F0BFD74 000F7900 */ sll $t7, $t7, 4 +/* 0F48E8 7F0BFD78 01EE1821 */ addu $v1, $t7, $t6 +/* 0F48EC 7F0BFD7C 906F0068 */ lbu $t7, 0x68($v1) +/* 0F48F0 7F0BFD80 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F48F4 7F0BFD84 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F48F8 7F0BFD88 000CC880 */ sll $t9, $t4, 2 +/* 0F48FC 7F0BFD8C 15E00003 */ bnez $t7, .Ljp7F0BFD9C +/* 0F4900 7F0BFD90 03382021 */ addu $a0, $t9, $t8 +/* 0F4904 7F0BFD94 24CE0001 */ addiu $t6, $a2, 1 +/* 0F4908 7F0BFD98 A06E0068 */ sb $t6, 0x68($v1) +.Ljp7F0BFD9C: +/* 0F490C 7F0BFD9C 8C830000 */ lw $v1, ($a0) +/* 0F4910 7F0BFDA0 25AD0001 */ addiu $t5, $t5, 1 +/* 0F4914 7F0BFDA4 8C790424 */ lw $t9, 0x424($v1) +/* 0F4918 7F0BFDA8 5320000B */ beql $t9, $zero, .Ljp7F0BFDD8 +/* 0F491C 7F0BFDAC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4920 7F0BFDB0 8C780428 */ lw $t8, 0x428($v1) +/* 0F4924 7F0BFDB4 53000008 */ beql $t8, $zero, .Ljp7F0BFDD8 +/* 0F4928 7F0BFDB8 258C0001 */ addiu $t4, $t4, 1 +/* 0F492C 7F0BFDBC C47003E4 */ lwc1 $f16, 0x3e4($v1) +/* 0F4930 7F0BFDC0 4600803C */ c.lt.s $f16, $f0 +/* 0F4934 7F0BFDC4 00000000 */ nop +/* 0F4938 7F0BFDC8 45020003 */ bc1fl .Ljp7F0BFDD8 +/* 0F493C 7F0BFDCC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4940 7F0BFDD0 27FF0001 */ addiu $ra, $ra, 1 +.Ljp7F0BFDD4: +/* 0F4944 7F0BFDD4 258C0001 */ addiu $t4, $t4, 1 +.Ljp7F0BFDD8: +/* 0F4948 7F0BFDD8 018A082A */ slt $at, $t4, $t2 +/* 0F494C 7F0BFDDC 5420FF95 */ bnezl $at, .Ljp7F0BFC34 +/* 0F4950 7F0BFDE0 00002825 */ move $a1, $zero +.Ljp7F0BFDE4: +/* 0F4954 7F0BFDE4 2443FFFF */ addiu $v1, $v0, -1 +/* 0F4958 7F0BFDE8 03E3082A */ slt $at, $ra, $v1 +/* 0F495C 7F0BFDEC 54200006 */ bnezl $at, .Ljp7F0BFE08 +/* 0F4960 7F0BFDF0 01A3082A */ slt $at, $t5, $v1 +/* 0F4964 7F0BFDF4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4968 7F0BFDF8 00002025 */ move $a0, $zero +/* 0F496C 7F0BFDFC 10000006 */ b .Ljp7F0BFE18 +/* 0F4970 7F0BFE00 00000000 */ nop +/* 0F4974 7F0BFE04 01A3082A */ slt $at, $t5, $v1 +.Ljp7F0BFE08: +/* 0F4978 7F0BFE08 14200003 */ bnez $at, .Ljp7F0BFE18 +/* 0F497C 7F0BFE0C 00000000 */ nop +/* 0F4980 7F0BFE10 0FC30C74 */ jal set_stopplay_flag +/* 0F4984 7F0BFE14 00000000 */ nop +.Ljp7F0BFE18: +/* 0F4988 7F0BFE18 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F498C 7F0BFE1C 3C0F8005 */ lui $t7, %hi(D_80048394) # $t7, 0x8005 +/* 0F4990 7F0BFE20 8DEF83C8 */ lw $t7, %lo(D_80048394)($t7) +/* 0F4994 7F0BFE24 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4998 7F0BFE28 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F499C 7F0BFE2C 44810000 */ mtc1 $at, $f0 +/* 0F49A0 7F0BFE30 01E27021 */ addu $t6, $t7, $v0 +/* 0F49A4 7F0BFE34 448E9000 */ mtc1 $t6, $f18 +/* 0F49A8 7F0BFE38 3C018005 */ lui $at, %hi(D_80048394) # $at, 0x8005 +/* 0F49AC 7F0BFE3C AC2E83C8 */ sw $t6, %lo(D_80048394)($at) +/* 0F49B0 7F0BFE40 46809120 */ cvt.s.w $f4, $f18 +/* 0F49B4 7F0BFE44 3C038005 */ lui $v1, %hi(D_800483A8) # $v1, 0x8005 +/* 0F49B8 7F0BFE48 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F49BC 7F0BFE4C 246383DC */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c24 +/* 0F49C0 7F0BFE50 00002025 */ move $a0, $zero +/* 0F49C4 7F0BFE54 3405FFFF */ li $a1, 65535 +/* 0F49C8 7F0BFE58 46002183 */ div.s $f6, $f4, $f0 +/* 0F49CC 7F0BFE5C E42683D8 */ swc1 $f6, %lo(cur_mp_sec)($at) +/* 0F49D0 7F0BFE60 8C790000 */ lw $t9, ($v1) +/* 0F49D4 7F0BFE64 3C018005 */ lui $at, %hi(cur_mp_min) # $at, 0x8005 +/* 0F49D8 7F0BFE68 03227821 */ addu $t7, $t9, $v0 +/* 0F49DC 7F0BFE6C 448F4000 */ mtc1 $t7, $f8 +/* 0F49E0 7F0BFE70 AC6F0000 */ sw $t7, ($v1) +/* 0F49E4 7F0BFE74 468042A0 */ cvt.s.w $f10, $f8 +/* 0F49E8 7F0BFE78 46005403 */ div.s $f16, $f10, $f0 +/* 0F49EC 7F0BFE7C 0C003104 */ jal get_controller_buttons_pressed +/* 0F49F0 7F0BFE80 E43083E0 */ swc1 $f16, %lo(cur_mp_min)($at) +/* 0F49F4 7F0BFE84 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F49F8 7F0BFE88 44810000 */ mtc1 $at, $f0 +/* 0F49FC 7F0BFE8C 10400009 */ beqz $v0, .Ljp7F0BFEB4 +/* 0F4A00 7F0BFE90 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F4A04 7F0BFE94 3C038005 */ lui $v1, %hi(D_80048390) # $v1, 0x8005 +/* 0F4A08 7F0BFE98 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A0C 7F0BFE9C 246383C4 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c3c +/* 0F4A10 7F0BFEA0 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F4A14 7F0BFEA4 AC600000 */ sw $zero, ($v1) +/* 0F4A18 7F0BFEA8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A1C 7F0BFEAC 1000000C */ b .Ljp7F0BFEE0 +/* 0F4A20 7F0BFEB0 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +.Ljp7F0BFEB4: +/* 0F4A24 7F0BFEB4 246383C4 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F4A28 7F0BFEB8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A2C 7F0BFEBC 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4A30 7F0BFEC0 8C6E0000 */ lw $t6, ($v1) +/* 0F4A34 7F0BFEC4 240F0001 */ li $t7, 1 +/* 0F4A38 7F0BFEC8 01C2C821 */ addu $t9, $t6, $v0 +/* 0F4A3C 7F0BFECC 2B210708 */ slti $at, $t9, 0x708 +/* 0F4A40 7F0BFED0 14200003 */ bnez $at, .Ljp7F0BFEE0 +/* 0F4A44 7F0BFED4 AC790000 */ sw $t9, ($v1) +/* 0F4A48 7F0BFED8 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A4C 7F0BFEDC AC2F83BC */ sw $t7, %lo(D_80048388)($at) +.Ljp7F0BFEE0: +/* 0F4A50 7F0BFEE0 3C0E8005 */ lui $t6, %hi(D_80048388) # $t6, 0x8005 +/* 0F4A54 7F0BFEE4 8DCE83BC */ lw $t6, %lo(D_80048388)($t6) +/* 0F4A58 7F0BFEE8 3C038005 */ lui $v1, %hi(D_8004838C) # $v1, 0x8005 +/* 0F4A5C 7F0BFEEC 246383C0 */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c40 +/* 0F4A60 7F0BFEF0 11C00005 */ beqz $t6, .Ljp7F0BFF08 +/* 0F4A64 7F0BFEF4 00000000 */ nop +/* 0F4A68 7F0BFEF8 8C790000 */ lw $t9, ($v1) +/* 0F4A6C 7F0BFEFC 0322C021 */ addu $t8, $t9, $v0 +/* 0F4A70 7F0BFF00 10000015 */ b .Ljp7F0BFF58 +/* 0F4A74 7F0BFF04 AC780000 */ sw $t8, ($v1) +.Ljp7F0BFF08: +/* 0F4A78 7F0BFF08 3C038005 */ lui $v1, %hi(D_800483B0) # $v1, 0x8005 +/* 0F4A7C 7F0BFF0C 246383E4 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c1c +/* 0F4A80 7F0BFF10 8C6F0000 */ lw $t7, ($v1) +/* 0F4A84 7F0BFF14 3C048005 */ lui $a0, %hi(D_800483B8) # $a0, 0x8005 +/* 0F4A88 7F0BFF18 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F4A8C 7F0BFF1C 01E2C821 */ addu $t9, $t7, $v0 +/* 0F4A90 7F0BFF20 44999000 */ mtc1 $t9, $f18 +/* 0F4A94 7F0BFF24 AC790000 */ sw $t9, ($v1) +/* 0F4A98 7F0BFF28 248483EC */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c14 +/* 0F4A9C 7F0BFF2C 46809120 */ cvt.s.w $f4, $f18 +/* 0F4AA0 7F0BFF30 46002183 */ div.s $f6, $f4, $f0 +/* 0F4AA4 7F0BFF34 E42683E8 */ swc1 $f6, %lo(stage_time_sec)($at) +/* 0F4AA8 7F0BFF38 8C980000 */ lw $t8, ($a0) +/* 0F4AAC 7F0BFF3C 3C018005 */ lui $at, %hi(poweron_time_sec) # $at, 0x8005 +/* 0F4AB0 7F0BFF40 03027021 */ addu $t6, $t8, $v0 +/* 0F4AB4 7F0BFF44 448E4000 */ mtc1 $t6, $f8 +/* 0F4AB8 7F0BFF48 AC8E0000 */ sw $t6, ($a0) +/* 0F4ABC 7F0BFF4C 468042A0 */ cvt.s.w $f10, $f8 +/* 0F4AC0 7F0BFF50 46005403 */ div.s $f16, $f10, $f0 +/* 0F4AC4 7F0BFF54 E43083F0 */ swc1 $f16, %lo(poweron_time_sec)($at) +.Ljp7F0BFF58: +/* 0F4AC8 7F0BFF58 0C00114D */ jal set_video2_settings_offset_24 +/* 0F4ACC 7F0BFF5C 24040001 */ li $a0, 1 +/* 0F4AD0 7F0BFF60 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 +/* 0F4AD4 7F0BFF64 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F4AD8 7F0BFF68 2401005A */ li $at, 90 +/* 0F4ADC 7F0BFF6C 17210009 */ bne $t9, $at, .Ljp7F0BFF94 +/* 0F4AE0 7F0BFF70 00000000 */ nop +/* 0F4AE4 7F0BFF74 0FC24907 */ jal cheat_buttons_mp_related +/* 0F4AE8 7F0BFF78 00000000 */ nop +/* 0F4AEC 7F0BFF7C 0FC069F4 */ jal menu_init +/* 0F4AF0 7F0BFF80 00000000 */ nop +/* 0F4AF4 7F0BFF84 0FC3097C */ jal something_with_LnameJ +/* 0F4AF8 7F0BFF88 00000000 */ nop +/* 0F4AFC 7F0BFF8C 100000A9 */ b .Ljp7F0C0234 +/* 0F4B00 7F0BFF90 00000000 */ nop +.Ljp7F0BFF94: +/* 0F4B04 7F0BFF94 0FC271D7 */ jal sub_GAME_7F09BBBC +/* 0F4B08 7F0BFF98 00000000 */ nop +/* 0F4B0C 7F0BFF9C 0FC2FD2D */ jal sub_GAME_7F0BE8D0 +/* 0F4B10 7F0BFFA0 00000000 */ nop +/* 0F4B14 7F0BFFA4 0FC2F4E1 */ jal sub_GAME_7F0BC7D4 +/* 0F4B18 7F0BFFA8 00000000 */ nop +/* 0F4B1C 7F0BFFAC 0FC24E7C */ jal sub_GAME_7F092E50 +/* 0F4B20 7F0BFFB0 00000000 */ nop +/* 0F4B24 7F0BFFB4 0FC253F6 */ jal sub_GAME_7F094438 +/* 0F4B28 7F0BFFB8 00000000 */ nop +/* 0F4B2C 7F0BFFBC 0FC294E7 */ jal sub_GAME_7F0A47FC +/* 0F4B30 7F0BFFC0 00000000 */ nop +/* 0F4B34 7F0BFFC4 0FC1A516 */ jal sub_GAME_7F068E6C +/* 0F4B38 7F0BFFC8 00000000 */ nop +/* 0F4B3C 7F0BFFCC 0FC28D1D */ jal sub_GAME_7F0A28D4 +/* 0F4B40 7F0BFFD0 00000000 */ nop +/* 0F4B44 7F0BFFD4 0FC28238 */ jal sub_GAME_7F09FD3C +/* 0F4B48 7F0BFFD8 00000000 */ nop +/* 0F4B4C 7F0BFFDC 0FC0F252 */ jal handle_mp_respawn_and_some_things +/* 0F4B50 7F0BFFE0 00000000 */ nop +/* 0F4B54 7F0BFFE4 0FC3081E */ jal reset_all_music_slots +/* 0F4B58 7F0BFFE8 00000000 */ nop +/* 0F4B5C 7F0BFFEC 0FC3097C */ jal something_with_LnameJ +/* 0F4B60 7F0BFFF0 00000000 */ nop +/* 0F4B64 7F0BFFF4 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 0F4B68 7F0BFFF8 00000000 */ nop +/* 0F4B6C 7F0BFFFC 1040004D */ beqz $v0, .Ljp7F0C0134 +/* 0F4B70 7F0C0000 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B74 7F0C0004 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B78 7F0C0008 8CD80000 */ lw $t8, ($a2) +/* 0F4B7C 7F0C000C 24043000 */ li $a0, 12288 +/* 0F4B80 7F0C0010 17000048 */ bnez $t8, .Ljp7F0C0134 +/* 0F4B84 7F0C0014 00000000 */ nop +/* 0F4B88 7F0C0018 0C0025CC */ jal mempAllocBytesInBank +/* 0F4B8C 7F0C001C 24050004 */ li $a1, 4 +/* 0F4B90 7F0C0020 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B94 7F0C0024 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B98 7F0C0028 10400042 */ beqz $v0, .Ljp7F0C0134 +/* 0F4B9C 7F0C002C ACC20000 */ sw $v0, ($a2) +/* 0F4BA0 7F0C0030 00001825 */ move $v1, $zero +/* 0F4BA4 7F0C0034 24052EE0 */ li $a1, 12000 +/* 0F4BA8 7F0C0038 240400FF */ li $a0, 255 +.Ljp7F0C003C: +/* 0F4BAC 7F0C003C 8CCE0000 */ lw $t6, ($a2) +/* 0F4BB0 7F0C0040 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4BB4 7F0C0044 A3240000 */ sb $a0, ($t9) +/* 0F4BB8 7F0C0048 8CD80000 */ lw $t8, ($a2) +/* 0F4BBC 7F0C004C 03031021 */ addu $v0, $t8, $v1 +/* 0F4BC0 7F0C0050 904F0001 */ lbu $t7, 1($v0) +/* 0F4BC4 7F0C0054 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4BC8 7F0C0058 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4BCC 7F0C005C A0590001 */ sb $t9, 1($v0) +/* 0F4BD0 7F0C0060 8CD80000 */ lw $t8, ($a2) +/* 0F4BD4 7F0C0064 03031021 */ addu $v0, $t8, $v1 +/* 0F4BD8 7F0C0068 904F0001 */ lbu $t7, 1($v0) +/* 0F4BDC 7F0C006C 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4BE0 7F0C0070 35D90004 */ ori $t9, $t6, 4 +/* 0F4BE4 7F0C0074 A0590001 */ sb $t9, 1($v0) +/* 0F4BE8 7F0C0078 8CD80000 */ lw $t8, ($a2) +/* 0F4BEC 7F0C007C 03037821 */ addu $t7, $t8, $v1 +/* 0F4BF0 7F0C0080 A1E40004 */ sb $a0, 4($t7) +/* 0F4BF4 7F0C0084 8CCE0000 */ lw $t6, ($a2) +/* 0F4BF8 7F0C0088 01C31021 */ addu $v0, $t6, $v1 +/* 0F4BFC 7F0C008C 90590005 */ lbu $t9, 5($v0) +/* 0F4C00 7F0C0090 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C04 7F0C0094 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C08 7F0C0098 A04F0005 */ sb $t7, 5($v0) +/* 0F4C0C 7F0C009C 8CCE0000 */ lw $t6, ($a2) +/* 0F4C10 7F0C00A0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C14 7F0C00A4 90590005 */ lbu $t9, 5($v0) +/* 0F4C18 7F0C00A8 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C1C 7F0C00AC 370F0004 */ ori $t7, $t8, 4 +/* 0F4C20 7F0C00B0 A04F0005 */ sb $t7, 5($v0) +/* 0F4C24 7F0C00B4 8CCE0000 */ lw $t6, ($a2) +/* 0F4C28 7F0C00B8 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4C2C 7F0C00BC A3240008 */ sb $a0, 8($t9) +/* 0F4C30 7F0C00C0 8CD80000 */ lw $t8, ($a2) +/* 0F4C34 7F0C00C4 03031021 */ addu $v0, $t8, $v1 +/* 0F4C38 7F0C00C8 904F0009 */ lbu $t7, 9($v0) +/* 0F4C3C 7F0C00CC 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4C40 7F0C00D0 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4C44 7F0C00D4 A0590009 */ sb $t9, 9($v0) +/* 0F4C48 7F0C00D8 8CD80000 */ lw $t8, ($a2) +/* 0F4C4C 7F0C00DC 03031021 */ addu $v0, $t8, $v1 +/* 0F4C50 7F0C00E0 904F0009 */ lbu $t7, 9($v0) +/* 0F4C54 7F0C00E4 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4C58 7F0C00E8 35D90004 */ ori $t9, $t6, 4 +/* 0F4C5C 7F0C00EC A0590009 */ sb $t9, 9($v0) +/* 0F4C60 7F0C00F0 8CD80000 */ lw $t8, ($a2) +/* 0F4C64 7F0C00F4 03037821 */ addu $t7, $t8, $v1 +/* 0F4C68 7F0C00F8 A1E4000C */ sb $a0, 0xc($t7) +/* 0F4C6C 7F0C00FC 8CCE0000 */ lw $t6, ($a2) +/* 0F4C70 7F0C0100 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C74 7F0C0104 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C78 7F0C0108 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C7C 7F0C010C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C80 7F0C0110 A04F000D */ sb $t7, 0xd($v0) +/* 0F4C84 7F0C0114 8CCE0000 */ lw $t6, ($a2) +/* 0F4C88 7F0C0118 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C8C 7F0C011C 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C90 7F0C0120 24630010 */ addiu $v1, $v1, 0x10 +/* 0F4C94 7F0C0124 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C98 7F0C0128 370F0004 */ ori $t7, $t8, 4 +/* 0F4C9C 7F0C012C 1465FFC3 */ bne $v1, $a1, .Ljp7F0C003C +/* 0F4CA0 7F0C0130 A04F000D */ sb $t7, 0xd($v0) +.Ljp7F0C0134: +/* 0F4CA4 7F0C0134 0FC246C7 */ jal get_debug_portal_flag +/* 0F4CA8 7F0C0138 00000000 */ nop +/* 0F4CAC 7F0C013C 10400003 */ beqz $v0, .Ljp7F0C014C +/* 0F4CB0 7F0C0140 00000000 */ nop +/* 0F4CB4 7F0C0144 0FC2FAB4 */ jal sub_GAME_7F0BDF10 +/* 0F4CB8 7F0C0148 00002025 */ move $a0, $zero +.Ljp7F0C014C: +/* 0F4CBC 7F0C014C 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4CC0 7F0C0150 00000000 */ nop +/* 0F4CC4 7F0C0154 24010004 */ li $at, 4 +/* 0F4CC8 7F0C0158 10410006 */ beq $v0, $at, .Ljp7F0C0174 +/* 0F4CCC 7F0C015C 00002025 */ move $a0, $zero +/* 0F4CD0 7F0C0160 24010008 */ li $at, 8 +/* 0F4CD4 7F0C0164 1041001A */ beq $v0, $at, .Ljp7F0C01D0 +/* 0F4CD8 7F0C0168 00002025 */ move $a0, $zero +/* 0F4CDC 7F0C016C 10000031 */ b .Ljp7F0C0234 +/* 0F4CE0 7F0C0170 00000000 */ nop +.Ljp7F0C0174: +/* 0F4CE4 7F0C0174 0C003104 */ jal get_controller_buttons_pressed +/* 0F4CE8 7F0C0178 24050002 */ li $a1, 2 +/* 0F4CEC 7F0C017C 50400008 */ beql $v0, $zero, .Ljp7F0C01A0 +/* 0F4CF0 7F0C0180 00002025 */ move $a0, $zero +/* 0F4CF4 7F0C0184 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4CF8 7F0C0188 2404FFFF */ li $a0, -1 +/* 0F4CFC 7F0C018C 00002025 */ move $a0, $zero +/* 0F4D00 7F0C0190 00002825 */ move $a1, $zero +/* 0F4D04 7F0C0194 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D08 7F0C0198 00003025 */ move $a2, $zero +/* 0F4D0C 7F0C019C 00002025 */ move $a0, $zero +.Ljp7F0C01A0: +/* 0F4D10 7F0C01A0 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D14 7F0C01A4 24050001 */ li $a1, 1 +/* 0F4D18 7F0C01A8 10400022 */ beqz $v0, .Ljp7F0C0234 +/* 0F4D1C 7F0C01AC 00000000 */ nop +/* 0F4D20 7F0C01B0 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4D24 7F0C01B4 24040001 */ li $a0, 1 +/* 0F4D28 7F0C01B8 00002025 */ move $a0, $zero +/* 0F4D2C 7F0C01BC 00002825 */ move $a1, $zero +/* 0F4D30 7F0C01C0 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D34 7F0C01C4 00003025 */ move $a2, $zero +/* 0F4D38 7F0C01C8 1000001A */ b .Ljp7F0C0234 +/* 0F4D3C 7F0C01CC 00000000 */ nop +.Ljp7F0C01D0: +/* 0F4D40 7F0C01D0 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D44 7F0C01D4 24050002 */ li $a1, 2 +/* 0F4D48 7F0C01D8 50400004 */ beql $v0, $zero, .Ljp7F0C01EC +/* 0F4D4C 7F0C01DC 00002025 */ move $a0, $zero +/* 0F4D50 7F0C01E0 0FC08C46 */ jal sub_GAME_7F022E30 +/* 0F4D54 7F0C01E4 00000000 */ nop +/* 0F4D58 7F0C01E8 00002025 */ move $a0, $zero +.Ljp7F0C01EC: +/* 0F4D5C 7F0C01EC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D60 7F0C01F0 24050001 */ li $a1, 1 +/* 0F4D64 7F0C01F4 50400004 */ beql $v0, $zero, .Ljp7F0C0208 +/* 0F4D68 7F0C01F8 00002025 */ move $a0, $zero +/* 0F4D6C 7F0C01FC 0FC08C5E */ jal sub_GAME_7F022E90 +/* 0F4D70 7F0C0200 00000000 */ nop +/* 0F4D74 7F0C0204 00002025 */ move $a0, $zero +.Ljp7F0C0208: +/* 0F4D78 7F0C0208 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D7C 7F0C020C 24050020 */ li $a1, 32 +/* 0F4D80 7F0C0210 50400004 */ beql $v0, $zero, .Ljp7F0C0224 +/* 0F4D84 7F0C0214 00002025 */ move $a0, $zero +/* 0F4D88 7F0C0218 0FC08C6C */ jal sub_GAME_7F022EC8 +/* 0F4D8C 7F0C021C 00000000 */ nop +/* 0F4D90 7F0C0220 00002025 */ move $a0, $zero +.Ljp7F0C0224: +/* 0F4D94 7F0C0224 0C0030DC */ jal get_controller_buttons_held +/* 0F4D98 7F0C0228 24050010 */ li $a1, 16 +/* 0F4D9C 7F0C022C 0FC08C72 */ jal sub_GAME_7F022EE0 +/* 0F4DA0 7F0C0230 0002202B */ sltu $a0, $zero, $v0 +.Ljp7F0C0234: +/* 0F4DA4 7F0C0234 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4DA8 7F0C0238 00000000 */ nop +/* 0F4DAC 7F0C023C 2401000C */ li $at, 12 +/* 0F4DB0 7F0C0240 1041002E */ beq $v0, $at, .Ljp7F0C02FC +/* 0F4DB4 7F0C0244 00002025 */ move $a0, $zero +/* 0F4DB8 7F0C0248 2401000D */ li $at, 13 +/* 0F4DBC 7F0C024C 10410048 */ beq $v0, $at, .Ljp7F0C0370 +/* 0F4DC0 7F0C0250 00002025 */ move $a0, $zero +/* 0F4DC4 7F0C0254 24010038 */ li $at, 56 +/* 0F4DC8 7F0C0258 54410074 */ bnel $v0, $at, .Ljp7F0C042C +/* 0F4DCC 7F0C025C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4DD0 7F0C0260 0C0010EA */ jal get_D_8002329C +/* 0F4DD4 7F0C0264 00000000 */ nop +/* 0F4DD8 7F0C0268 0C0010E4 */ jal get_D_800232A0 +/* 0F4DDC 7F0C026C AFA20030 */ sw $v0, 0x30($sp) +/* 0F4DE0 7F0C0270 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F4DE4 7F0C0274 00002025 */ move $a0, $zero +/* 0F4DE8 7F0C0278 0C0030DC */ jal get_controller_buttons_held +/* 0F4DEC 7F0C027C 24050004 */ li $a1, 4 +/* 0F4DF0 7F0C0280 10400004 */ beqz $v0, .Ljp7F0C0294 +/* 0F4DF4 7F0C0284 00002025 */ move $a0, $zero +/* 0F4DF8 7F0C0288 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4DFC 7F0C028C 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E00 7F0C0290 AFB9002C */ sw $t9, 0x2c($sp) +.Ljp7F0C0294: +/* 0F4E04 7F0C0294 0C0030DC */ jal get_controller_buttons_held +/* 0F4E08 7F0C0298 24050008 */ li $a1, 8 +/* 0F4E0C 7F0C029C 10400004 */ beqz $v0, .Ljp7F0C02B0 +/* 0F4E10 7F0C02A0 00002025 */ move $a0, $zero +/* 0F4E14 7F0C02A4 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F4E18 7F0C02A8 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E1C 7F0C02AC AFAF002C */ sw $t7, 0x2c($sp) +.Ljp7F0C02B0: +/* 0F4E20 7F0C02B0 0C0030DC */ jal get_controller_buttons_held +/* 0F4E24 7F0C02B4 24050001 */ li $a1, 1 +/* 0F4E28 7F0C02B8 10400004 */ beqz $v0, .Ljp7F0C02CC +/* 0F4E2C 7F0C02BC 00002025 */ move $a0, $zero +/* 0F4E30 7F0C02C0 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F4E34 7F0C02C4 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E38 7F0C02C8 AFB90030 */ sw $t9, 0x30($sp) +.Ljp7F0C02CC: +/* 0F4E3C 7F0C02CC 0C0030DC */ jal get_controller_buttons_held +/* 0F4E40 7F0C02D0 24050002 */ li $a1, 2 +/* 0F4E44 7F0C02D4 10400003 */ beqz $v0, .Ljp7F0C02E4 +/* 0F4E48 7F0C02D8 8FB80030 */ lw $t8, 0x30($sp) +/* 0F4E4C 7F0C02DC 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E50 7F0C02E0 AFAF0030 */ sw $t7, 0x30($sp) +.Ljp7F0C02E4: +/* 0F4E54 7F0C02E4 0C0010E7 */ jal set_D_8002329C +/* 0F4E58 7F0C02E8 8FA40030 */ lw $a0, 0x30($sp) +/* 0F4E5C 7F0C02EC 0C0010E1 */ jal set_D_800232A0 +/* 0F4E60 7F0C02F0 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F4E64 7F0C02F4 1000004D */ b .Ljp7F0C042C +/* 0F4E68 7F0C02F8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C02FC: +/* 0F4E6C 7F0C02FC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4E70 7F0C0300 24050202 */ li $a1, 514 +/* 0F4E74 7F0C0304 50400004 */ beql $v0, $zero, .Ljp7F0C0318 +/* 0F4E78 7F0C0308 00002025 */ move $a0, $zero +/* 0F4E7C 7F0C030C 0FC2F97A */ jal music_append_play_endtheme +/* 0F4E80 7F0C0310 00000000 */ nop +/* 0F4E84 7F0C0314 00002025 */ move $a0, $zero +.Ljp7F0C0318: +/* 0F4E88 7F0C0318 0C003104 */ jal get_controller_buttons_pressed +/* 0F4E8C 7F0C031C 24050101 */ li $a1, 257 +/* 0F4E90 7F0C0320 50400004 */ beql $v0, $zero, .Ljp7F0C0334 +/* 0F4E94 7F0C0324 00002025 */ move $a0, $zero +/* 0F4E98 7F0C0328 0FC2F967 */ jal music_append_play_solo_death_short +/* 0F4E9C 7F0C032C 00000000 */ nop +/* 0F4EA0 7F0C0330 00002025 */ move $a0, $zero +.Ljp7F0C0334: +/* 0F4EA4 7F0C0334 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EA8 7F0C0338 24050400 */ li $a1, 1024 +/* 0F4EAC 7F0C033C 50400004 */ beql $v0, $zero, .Ljp7F0C0350 +/* 0F4EB0 7F0C0340 00002025 */ move $a0, $zero +/* 0F4EB4 7F0C0344 0C001BF8 */ jal musicTrack1Stop +/* 0F4EB8 7F0C0348 00000000 */ nop +/* 0F4EBC 7F0C034C 00002025 */ move $a0, $zero +.Ljp7F0C0350: +/* 0F4EC0 7F0C0350 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EC4 7F0C0354 24054000 */ li $a1, 16384 +/* 0F4EC8 7F0C0358 50400034 */ beql $v0, $zero, .Ljp7F0C042C +/* 0F4ECC 7F0C035C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4ED0 7F0C0360 0C001C2C */ jal musicTrack1Tempo +/* 0F4ED4 7F0C0364 00000000 */ nop +/* 0F4ED8 7F0C0368 10000030 */ b .Ljp7F0C042C +/* 0F4EDC 7F0C036C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C0370: +/* 0F4EE0 7F0C0370 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EE4 7F0C0374 24050622 */ li $a1, 1570 +/* 0F4EE8 7F0C0378 1040000B */ beqz $v0, .Ljp7F0C03A8 +/* 0F4EEC 7F0C037C 3C058005 */ lui $a1, 0x8005 +/* 0F4EF0 7F0C0380 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4EF4 7F0C0384 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4EF8 7F0C0388 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4EFC 7F0C038C 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4F00 7F0C0390 00057400 */ sll $t6, $a1, 0x10 +/* 0F4F04 7F0C0394 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4F08 7F0C0398 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F0C 7F0C039C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F10 7F0C03A0 0C002386 */ jal play_sfx_a1 +/* 0F4F14 7F0C03A4 00003025 */ move $a2, $zero +.Ljp7F0C03A8: +/* 0F4F18 7F0C03A8 00002025 */ move $a0, $zero +/* 0F4F1C 7F0C03AC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F20 7F0C03B0 24050911 */ li $a1, 2321 +/* 0F4F24 7F0C03B4 1040000B */ beqz $v0, .Ljp7F0C03E4 +/* 0F4F28 7F0C03B8 3C058005 */ lui $a1, 0x8005 +/* 0F4F2C 7F0C03BC 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F30 7F0C03C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4F34 7F0C03C4 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4F38 7F0C03C8 24A50001 */ addiu $a1, $a1, 1 +/* 0F4F3C 7F0C03CC 0005C400 */ sll $t8, $a1, 0x10 +/* 0F4F40 7F0C03D0 00182C03 */ sra $a1, $t8, 0x10 +/* 0F4F44 7F0C03D4 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F48 7F0C03D8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F4C 7F0C03DC 0C002386 */ jal play_sfx_a1 +/* 0F4F50 7F0C03E0 00003025 */ move $a2, $zero +.Ljp7F0C03E4: +/* 0F4F54 7F0C03E4 00002025 */ move $a0, $zero +/* 0F4F58 7F0C03E8 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F5C 7F0C03EC 24050004 */ li $a1, 4 +/* 0F4F60 7F0C03F0 50400004 */ beql $v0, $zero, .Ljp7F0C0404 +/* 0F4F64 7F0C03F4 00002025 */ move $a0, $zero +/* 0F4F68 7F0C03F8 0C00244D */ jal sfx_c_70009124 +/* 0F4F6C 7F0C03FC 00000000 */ nop +/* 0F4F70 7F0C0400 00002025 */ move $a0, $zero +.Ljp7F0C0404: +/* 0F4F74 7F0C0404 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F78 7F0C0408 24050008 */ li $a1, 8 +/* 0F4F7C 7F0C040C 10400006 */ beqz $v0, .Ljp7F0C0428 +/* 0F4F80 7F0C0410 3C058005 */ lui $a1, %hi(D_800483E4) # $a1, 0x8005 +/* 0F4F84 7F0C0414 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4F88 7F0C0418 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F8C 7F0C041C 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F90 7F0C0420 0C002386 */ jal play_sfx_a1 +/* 0F4F94 7F0C0424 00003025 */ move $a2, $zero +.Ljp7F0C0428: +/* 0F4F98 7F0C0428 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C042C: +/* 0F4F9C 7F0C042C 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4FA0 7F0C0430 03E00008 */ jr $ra +/* 0F4FA4 7F0C0434 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0BF800(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BF800 +/* 0F4330 7F0BF800 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0F4334 7F0BF804 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4338 7F0BF808 0FC26C54 */ jal get_cur_playernum +/* 0F433C 7F0BF80C 00000000 */ nop +/* 0F4340 7F0BF810 0FC2464F */ jal cheat_buttons_mp_related +/* 0F4344 7F0BF814 A3A2002F */ sb $v0, 0x2f($sp) +/* 0F4348 7F0BF818 0FC243C2 */ jal get_debug_freeze_processing +/* 0F434C 7F0BF81C 00000000 */ nop +/* 0F4350 7F0BF820 10400007 */ beqz $v0, .L7F0BF840 +/* 0F4354 7F0BF824 24010001 */ li $at, 1 +/* 0F4358 7F0BF828 1041002D */ beq $v0, $at, .L7F0BF8E0 +/* 0F435C 7F0BF82C 24010002 */ li $at, 2 +/* 0F4360 7F0BF830 1041004C */ beq $v0, $at, .L7F0BF964 +/* 0F4364 7F0BF834 00000000 */ nop +/* 0F4368 7F0BF838 1000006B */ b .L7F0BF9E8 +/* 0F436C 7F0BF83C 00000000 */ nop +.L7F0BF840: +/* 0F4370 7F0BF840 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4374 7F0BF844 00000000 */ nop +/* 0F4378 7F0BF848 10400009 */ beqz $v0, .L7F0BF870 +/* 0F437C 7F0BF84C 00000000 */ nop +/* 0F4380 7F0BF850 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4384 7F0BF854 00000000 */ nop +/* 0F4388 7F0BF858 2401003B */ li $at, 59 +/* 0F438C 7F0BF85C 14410013 */ bne $v0, $at, .L7F0BF8AC +/* 0F4390 7F0BF860 3C0E8003 */ lui $t6, %hi(D_80036ABC) +/* 0F4394 7F0BF864 8DCE6ABC */ lw $t6, %lo(D_80036ABC)($t6) +/* 0F4398 7F0BF868 05C10010 */ bgez $t6, .L7F0BF8AC +/* 0F439C 7F0BF86C 00000000 */ nop +.L7F0BF870: +/* 0F43A0 7F0BF870 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43A4 7F0BF874 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43A8 7F0BF878 A3A20018 */ sb $v0, 0x18($sp) +/* 0F43AC 7F0BF87C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43B0 7F0BF880 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43B4 7F0BF884 A3A20019 */ sb $v0, 0x19($sp) +/* 0F43B8 7F0BF888 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43BC 7F0BF88C 0C0030C3 */ jal get_controller_buttons_held +/* 0F43C0 7F0BF890 3405FFFF */ li $a1, 65535 +/* 0F43C4 7F0BF894 83A40018 */ lb $a0, 0x18($sp) +/* 0F43C8 7F0BF898 83A50019 */ lb $a1, 0x19($sp) +/* 0F43CC 7F0BF89C 0FC24420 */ jal sub_GAME_7F091080 +/* 0F43D0 7F0BF8A0 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F43D4 7F0BF8A4 10000050 */ b .L7F0BF9E8 +/* 0F43D8 7F0BF8A8 00000000 */ nop +.L7F0BF8AC: +/* 0F43DC 7F0BF8AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43E0 7F0BF8B0 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43E4 7F0BF8B4 A3A20018 */ sb $v0, 0x18($sp) +/* 0F43E8 7F0BF8B8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43EC 7F0BF8BC 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43F0 7F0BF8C0 00022E00 */ sll $a1, $v0, 0x18 +/* 0F43F4 7F0BF8C4 00057E03 */ sra $t7, $a1, 0x18 +/* 0F43F8 7F0BF8C8 01E02825 */ move $a1, $t7 +/* 0F43FC 7F0BF8CC 83A40018 */ lb $a0, 0x18($sp) +/* 0F4400 7F0BF8D0 0FC24420 */ jal sub_GAME_7F091080 +/* 0F4404 7F0BF8D4 00003025 */ move $a2, $zero +/* 0F4408 7F0BF8D8 10000043 */ b .L7F0BF9E8 +/* 0F440C 7F0BF8DC 00000000 */ nop +.L7F0BF8E0: +/* 0F4410 7F0BF8E0 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4414 7F0BF8E4 00000000 */ nop +/* 0F4418 7F0BF8E8 24010001 */ li $at, 1 +/* 0F441C 7F0BF8EC 14410010 */ bne $v0, $at, .L7F0BF930 +/* 0F4420 7F0BF8F0 00000000 */ nop +/* 0F4424 7F0BF8F4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4428 7F0BF8F8 83A4002F */ lb $a0, 0x2f($sp) +/* 0F442C 7F0BF8FC A3A20018 */ sb $v0, 0x18($sp) +/* 0F4430 7F0BF900 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F4434 7F0BF904 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4438 7F0BF908 A3A20019 */ sb $v0, 0x19($sp) +/* 0F443C 7F0BF90C 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4440 7F0BF910 0C0030C3 */ jal get_controller_buttons_held +/* 0F4444 7F0BF914 3405FFFF */ li $a1, 65535 +/* 0F4448 7F0BF918 83A40018 */ lb $a0, 0x18($sp) +/* 0F444C 7F0BF91C 83A50019 */ lb $a1, 0x19($sp) +/* 0F4450 7F0BF920 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4454 7F0BF924 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F4458 7F0BF928 1000002F */ b .L7F0BF9E8 +/* 0F445C 7F0BF92C 00000000 */ nop +.L7F0BF930: +/* 0F4460 7F0BF930 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4464 7F0BF934 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4468 7F0BF938 A3A20018 */ sb $v0, 0x18($sp) +/* 0F446C 7F0BF93C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F4470 7F0BF940 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4474 7F0BF944 00022E00 */ sll $a1, $v0, 0x18 +/* 0F4478 7F0BF948 0005C603 */ sra $t8, $a1, 0x18 +/* 0F447C 7F0BF94C 03002825 */ move $a1, $t8 +/* 0F4480 7F0BF950 83A40018 */ lb $a0, 0x18($sp) +/* 0F4484 7F0BF954 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4488 7F0BF958 00003025 */ move $a2, $zero +/* 0F448C 7F0BF95C 10000022 */ b .L7F0BF9E8 +/* 0F4490 7F0BF960 00000000 */ nop +.L7F0BF964: +/* 0F4494 7F0BF964 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4498 7F0BF968 00000000 */ nop +/* 0F449C 7F0BF96C 24010002 */ li $at, 2 +/* 0F44A0 7F0BF970 14410010 */ bne $v0, $at, .L7F0BF9B4 +/* 0F44A4 7F0BF974 00000000 */ nop +/* 0F44A8 7F0BF978 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44AC 7F0BF97C 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44B0 7F0BF980 A3A20018 */ sb $v0, 0x18($sp) +/* 0F44B4 7F0BF984 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44B8 7F0BF988 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44BC 7F0BF98C A3A20019 */ sb $v0, 0x19($sp) +/* 0F44C0 7F0BF990 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44C4 7F0BF994 0C0030C3 */ jal get_controller_buttons_held +/* 0F44C8 7F0BF998 3405FFFF */ li $a1, 65535 +/* 0F44CC 7F0BF99C 83A40018 */ lb $a0, 0x18($sp) +/* 0F44D0 7F0BF9A0 83A50019 */ lb $a1, 0x19($sp) +/* 0F44D4 7F0BF9A4 0FC21BE7 */ jal possibly_reset_viewport_options_for_player +/* 0F44D8 7F0BF9A8 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F44DC 7F0BF9AC 1000000C */ b .L7F0BF9E0 +/* 0F44E0 7F0BF9B0 00000000 */ nop +.L7F0BF9B4: +/* 0F44E4 7F0BF9B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44E8 7F0BF9B8 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44EC 7F0BF9BC A3A20018 */ sb $v0, 0x18($sp) +/* 0F44F0 7F0BF9C0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44F4 7F0BF9C4 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44F8 7F0BF9C8 00022E00 */ sll $a1, $v0, 0x18 +/* 0F44FC 7F0BF9CC 0005CE03 */ sra $t9, $a1, 0x18 +/* 0F4500 7F0BF9D0 03202825 */ move $a1, $t9 +/* 0F4504 7F0BF9D4 83A40018 */ lb $a0, 0x18($sp) +/* 0F4508 7F0BF9D8 0FC21BE7 */ jal possibly_reset_viewport_options_for_player +/* 0F450C 7F0BF9DC 00003025 */ move $a2, $zero +.L7F0BF9E0: +/* 0F4510 7F0BF9E0 0FC30BA0 */ jal sub_GAME_7F0C2E80 +/* 0F4514 7F0BF9E4 00000000 */ nop +.L7F0BF9E8: +/* 0F4518 7F0BF9E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F451C 7F0BF9EC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F4520 7F0BF9F0 8C4300A8 */ lw $v1, 0xa8($v0) +/* 0F4524 7F0BF9F4 C4460408 */ lwc1 $f6, 0x408($v0) +/* 0F4528 7F0BF9F8 C44A0410 */ lwc1 $f10, 0x410($v0) +/* 0F452C 7F0BF9FC C4640008 */ lwc1 $f4, 8($v1) +/* 0F4530 7F0BFA00 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0F4534 7F0BFA04 46062001 */ sub.s $f0, $f4, $f6 +/* 0F4538 7F0BFA08 460A4081 */ sub.s $f2, $f8, $f10 +/* 0F453C 7F0BFA0C 46000402 */ mul.s $f16, $f0, $f0 +/* 0F4540 7F0BFA10 00000000 */ nop +/* 0F4544 7F0BFA14 46021482 */ mul.s $f18, $f2, $f2 +/* 0F4548 7F0BFA18 0C007DF8 */ jal sqrtf +/* 0F454C 7F0BFA1C 46128300 */ add.s $f12, $f16, $f18 +/* 0F4550 7F0BFA20 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 0F4554 7F0BFA24 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 0F4558 7F0BFA28 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0F455C 7F0BFA2C 46002180 */ add.s $f6, $f4, $f0 +/* 0F4560 7F0BFA30 0FC051D6 */ jal get_scenario +/* 0F4564 7F0BFA34 E4460038 */ swc1 $f6, 0x38($v0) +/* 0F4568 7F0BFA38 24010002 */ li $at, 2 +/* 0F456C 7F0BFA3C 14410024 */ bne $v0, $at, .L7F0BFAD0 +/* 0F4570 7F0BFA40 00000000 */ nop +/* 0F4574 7F0BFA44 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0F4578 7F0BFA48 00000000 */ nop +/* 0F457C 7F0BFA4C 1040001C */ beqz $v0, .L7F0BFAC0 +/* 0F4580 7F0BFA50 00000000 */ nop +/* 0F4584 7F0BFA54 0FC17674 */ jal get_item_in_hand +/* 0F4588 7F0BFA58 00002025 */ move $a0, $zero +/* 0F458C 7F0BFA5C 24010058 */ li $at, 88 +/* 0F4590 7F0BFA60 1041000B */ beq $v0, $at, .L7F0BFA90 +/* 0F4594 7F0BFA64 00002025 */ move $a0, $zero +/* 0F4598 7F0BFA68 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0F459C 7F0BFA6C 24050058 */ li $a1, 88 +/* 0F45A0 7F0BFA70 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F45A4 7F0BFA74 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F45A8 7F0BFA78 24010002 */ li $at, 2 +/* 0F45AC 7F0BFA7C 24090005 */ li $t1, 5 +/* 0F45B0 7F0BFA80 8C480894 */ lw $t0, 0x894($v0) +/* 0F45B4 7F0BFA84 15010002 */ bne $t0, $at, .L7F0BFA90 +/* 0F45B8 7F0BFA88 00000000 */ nop +/* 0F45BC 7F0BFA8C AC490894 */ sw $t1, 0x894($v0) +.L7F0BFA90: +/* 0F45C0 7F0BFA90 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 0F45C4 7F0BFA94 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 0F45C8 7F0BFA98 8C620000 */ lw $v0, ($v1) +/* 0F45CC 7F0BFA9C 3C0B8005 */ lui $t3, %hi(clock_timer) +/* 0F45D0 7F0BFAA0 8D6B8374 */ lw $t3, %lo(clock_timer)($t3) +/* 0F45D4 7F0BFAA4 8C4A0060 */ lw $t2, 0x60($v0) +/* 0F45D8 7F0BFAA8 240D0001 */ li $t5, 1 +/* 0F45DC 7F0BFAAC 014B6021 */ addu $t4, $t2, $t3 +/* 0F45E0 7F0BFAB0 AC4C0060 */ sw $t4, 0x60($v0) +/* 0F45E4 7F0BFAB4 8C6E0000 */ lw $t6, ($v1) +/* 0F45E8 7F0BFAB8 10000015 */ b .L7F0BFB10 +/* 0F45EC 7F0BFABC A1CD0069 */ sb $t5, 0x69($t6) +.L7F0BFAC0: +/* 0F45F0 7F0BFAC0 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0F45F4 7F0BFAC4 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0F45F8 7F0BFAC8 10000011 */ b .L7F0BFB10 +/* 0F45FC 7F0BFACC A1E00069 */ sb $zero, 0x69($t7) +.L7F0BFAD0: +/* 0F4600 7F0BFAD0 0FC051D6 */ jal get_scenario +/* 0F4604 7F0BFAD4 00000000 */ nop +/* 0F4608 7F0BFAD8 24010003 */ li $at, 3 +/* 0F460C 7F0BFADC 5441000D */ bnel $v0, $at, .L7F0BFB14 +/* 0F4610 7F0BFAE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4614 7F0BFAE4 0FC233F0 */ jal checkforgoldengun +/* 0F4618 7F0BFAE8 00000000 */ nop +/* 0F461C 7F0BFAEC 10400006 */ beqz $v0, .L7F0BFB08 +/* 0F4620 7F0BFAF0 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 0F4624 7F0BFAF4 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0F4628 7F0BFAF8 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0F462C 7F0BFAFC 24180001 */ li $t8, 1 +/* 0F4630 7F0BFB00 10000003 */ b .L7F0BFB10 +/* 0F4634 7F0BFB04 A3380069 */ sb $t8, 0x69($t9) +.L7F0BFB08: +/* 0F4638 7F0BFB08 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 0F463C 7F0BFB0C A1000069 */ sb $zero, 0x69($t0) +.L7F0BFB10: +/* 0F4640 7F0BFB10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BFB14: +/* 0F4644 7F0BFB14 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0F4648 7F0BFB18 03E00008 */ jr $ra +/* 0F464C 7F0BFB1C 00000000 */ nop +) +#endif + + + + + +void unload_stage_text_data(void) { + if (D_800483A0 != 0) + { + if (sfxGetArg0Unk3F(D_800483A0) != 0) + { + sfxDeactivate(D_800483A0); + } + } + if (current_stage_to_load != 0x5a) + { + blank_text_bank(get_textbank_number_for_stagenum(current_stage_to_load)); + sub_GAME_7F007770(); + } + cheatDisableAllCheats(); + cleanupGuardData(); + cleanupObjectSounds(); + cleanupExplosions(); + sub_GAME_7F007920(); + cleanup_REMOVED_(); + cleanupAlarms(); + cleanupObjects(current_stage_to_load); + cleanupObjectives(); + cleanupSFXRelated(); + cleanupplayersoundrelated(); + sub_GAME_7F0C1268(); + sub_GAME_7F0B47E0(); +} + + +void set_controls_locked_flag(s32 arg0) { + #ifdef VERSION_JP + if ((arg0 != 0) && (controls_locked_flag == 0)) { + reset_cont_rumble_detect(); + } + #endif + controls_locked_flag = arg0; +} + + +s32 get_controls_locked_flag(void) { + + return controls_locked_flag; +} + + +DIFFICULTY get_current_difficulty(void) { + return difficulty_0; +} + + +void set_difficulty(s32 arg0) { + difficulty_0 = arg0; +} + +void set_mp_time(s32 arg0) { + mp_time = arg0; +} + + +void set_mp_point(s32 arg0) { + mp_point = arg0; +} + + +f32 get_cur_mp_sec(void) { + return cur_mp_sec; +} + + +f32 get_cur_mp_min(void) { + return cur_mp_min; +} + + +f32 get_stage_time_sec(void) { + return stage_time_sec; +} + + +f32 get_poweron_time_sec(void) { + return poweron_time_sec; +} + + diff --git a/src/game/lvl.h b/src/game/lvl.h new file mode 100644 index 0000000..8d4958b --- /dev/null +++ b/src/game/lvl.h @@ -0,0 +1,25 @@ +#ifndef _LVL_H_ +#define _LVL_H_ +#include "ultra64.h" + +struct ramrom_struct { + u32 *address; + u32 unk; +}; + +extern s32 D_800483C4; +extern s32 clock_timer; +extern s32 global_timer; +extern f32 global_timer_delta; +extern u32 *ptr_jfont_DL; +extern s32 dword_CODE_bss_8008C264; +extern s32 dword_CODE_bss_8008C268; +extern s32 dword_CODE_bss_8008C26C; +extern char ramrom_data_target[0x380]; +extern s32 record_slot_num; +extern s32 *address_demo_loaded; +extern s32 dword_CODE_bss_8008C5F8; + +void lvInitDebugNoticeList(void); + +#endif diff --git a/src/game/lvl_text.c b/src/game/lvl_text.c new file mode 100644 index 0000000..ecdccc1 --- /dev/null +++ b/src/game/lvl_text.c @@ -0,0 +1,895 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/lvl_text.h" + +// bss +//CODE.bss:8008C640 +s32 ptr_text; +//CODE.bss:8008C644 +s32 table_text_pointers; +//8008C648 +char dword_CODE_bss_8008C648[0x90]; +//CODE.bss:8008C6D8 +s32 dword_CODE_bss_8008C6D8; +//CODE.bss:8008C6DC +s32 dword_CODE_bss_8008C6DC; +//CODE.bss:8008C6E0 +s32 dword_CODE_bss_8008C6E0; +//CODE.bss:8008C6E4 +s32 dword_CODE_bss_8008C6E4; +//CODE.bss:8008C6E8 +s32 dword_CODE_bss_8008C6E8; +//CODE.bss:8008C6EC +s32 dword_CODE_bss_8008C6EC; +//CODE.bss:8008C6F0 +s32 dword_CODE_bss_8008C6F0; +//CODE.bss:8008C6F4 +s32 ptr_j_char_data_buf; +//CODE.bss:8008C6F8 +s32 ptr_j_char_registry; + + +#ifdef VERSION_JP +s32 j_text_trigger = 1; +#else +s32 j_text_trigger = 0; +#endif + +void *LnameX_lookuptable[] = { + NULL, NULL, /* Null (unused) */ + "LameE", "LameJ", /* Library (multi) */ + "LarchE", "LarchJ", /* Archives */ + "LarkE", "LarkJ", /* Facility */ + "LashE", "LashJ", /* Stack (multi) */ + "LaztE", "LaztJ", /* Aztec */ + "LcatE", "LcatJ", /* Citadel (multi) */ + "LcaveE", "LcaveJ", /* Caverns */ + "LarecE", "LarecJ", /* Control */ + "LcradE", "LcradJ", /* Cradle */ + "LcrypE", "LcrypJ", /* Egypt */ + "LdamE", "LdamJ", /* Dam */ + "LdepoE", "LdepoJ", /* Depot */ + "LdestE", "LdestJ", /* Frigate */ + "LdishE", "LdishJ", /* Temple (multi) */ + "LearE", "LearJ", /* Ear (unused) */ + "LeldE", "LeldJ", /* Eld (unused) */ + "LimpE", "LimpJ", /* Basement (multi) */ + "LjunE", "LjunJ", /* Jungle */ + "LleeE", "LleeJ", /* Lee (unused) */ + "LlenE", "LlenJ", /* Cuba */ + "LlipE", "LlipJ", /* Lip (unused) */ + "LlueE", "LlueJ", /* Lue (unused) */ + "LoatE", "LoatJ", /* Cave (multi) */ + "LpamE", "LpamJ", /* Pam (unused) */ + "LpeteE", "LpeteJ", /* Streets */ + "LrefE", "LrefJ", /* Complex (multi) */ + "LritE", "LritJ", /* Rit (unused) */ + "LrunE", "LrunJ", /* Runway */ + "LsevbE", "LsevbJ", /* Bunker 2 */ + "LsevE", "LsevJ", /* Bunker 1 */ + "LsevxE", "LsevxJ", /* Surface 1 */ + "LsevxbE", "LsevxbJ", /* Surface 2 */ + "LshoE", "LshoJ", /* Sho (unused) */ + "LsiloE", "LsiloJ", /* Silo */ + "LstatE", "LstatJ", /* Statue */ + "LtraE", "LtraJ", /* Train */ + "LwaxE", "LwaxJ", /* Wax (unused) */ + "LgunE", "LgunJ", /* Guns */ + "LtitleE", "LtitleJ", /* Stage and menu titles */ + "LmpmenuE", "LmpmenuJ", /* Multi menus */ + "LpropobjE", "LpropobjJ", /* In-game pickups */ + "LmpweaponsE", "LmpweaponsJ", /* Multi weapon select */ + "LoptionsE", "LoptionsJ", /* Solo in-game menus */ + "LmiscE", "LmiscJ"}; /* Cheat options */ + +LEVELID get_textbank_number_for_stagenum(LEVELID level) +{ + LEVELID return_id; + + switch(level) + { + case LEVELID_DAM: + return_id = LDAM; + break; + case LEVELID_FACILITY: + return_id = LARK; + break; + case LEVELID_RUNWAY: + return_id = LRUN; + break; + case LEVELID_SURFACE: + return_id = LSEVX; + break; + case LEVELID_BUNKER1: + return_id = LSEV; + break; + case LEVELID_SILO: + return_id = LSILO; + break; + case LEVELID_FRIGATE: + return_id = LDEST; + break; + case LEVELID_SURFACE2: + return_id = LSEVXB; + break; + case LEVELID_BUNKER2: + return_id = LSEVB; + break; + case LEVELID_STATUE: + return_id = LSTAT; + break; + case LEVELID_ARCHIVES: + return_id = LARCH; + break; + case LEVELID_STREETS: + return_id = LPETE; + break; + case LEVELID_DEPOT: + return_id = LDEPO; + break; + case LEVELID_TRAIN: + return_id = LTRA; + break; + case LEVELID_JUNGLE: + return_id = LJUN; + break; + case LEVELID_CONTROL: + return_id = LAREC; + break; + case LEVELID_CAVERNS: + return_id = LCAVE; + break; + case LEVELID_CRADLE: + return_id = LCRAD; + break; + case LEVELID_AZTEC: + return_id = LAZT; + break; + case LEVELID_EGYPT: + return_id = LCRYP; + break; + case LEVELID_TEMPLE: + return_id = LDISH; + break; + case LEVELID_COMPLEX: + return_id = LREF; + break; + case LEVELID_LIBRARY: + return_id = LAME; + break; + case LEVELID_BASEMENT: + return_id = LIMP; + break; + case LEVELID_STACK: + return_id = LASH; + break; + case LEVELID_CAVES: + return_id = LOAT; + break; + case LEVELID_CUBA: + return_id = LLEN; + break; + default: + { + /* infinite loop on invalid text bank */ + while(1) {}; + } + } + + return return_id; +} + + +#ifdef NONMATCHING +void init_LnameX(void) + +{ + undefined *puVar1; + u8 **ppuVar2; + int iVar3; + + if (j_text_trigger != 0) { + ptr_char_data_buf = mempAllocBytesInBank(0x2e80,'\x06'); + ptr_char_registry = mempAllocBytesInBank(0x100,'\x06'); + iVar3 = 0; + do { + ptr_char_registry[iVar3] = ptr_char_registry[iVar3] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3) = *(ushort *)(ptr_char_registry + iVar3) | 0x3fff; + (ptr_char_registry + iVar3)[2] = (ptr_char_registry + iVar3)[2] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3 + 2) = *(ushort *)(ptr_char_registry + iVar3 + 2) | 0x3fff; + (ptr_char_registry + iVar3)[4] = (ptr_char_registry + iVar3)[4] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3 + 4) = *(ushort *)(ptr_char_registry + iVar3 + 4) | 0x3fff; + (ptr_char_registry + iVar3)[6] = (ptr_char_registry + iVar3)[6] & 0x3f; + puVar1 = ptr_char_registry + iVar3; + iVar3 += 8; + *(ushort *)(puVar1 + 6) = *(ushort *)(puVar1 + 6) | 0x3fff; + } while (iVar3 != 0xf8); + } + + ptr_text = 0; + ppuVar2 = (u8 **)table_text_pointers; + do { + ppuVar2 = ppuVar2 + 4; + ppuVar2[1] = NULL; + ppuVar2[2] = NULL; + ppuVar2[3] = NULL; + *ppuVar2 = NULL; + ppuVar2 = ppuVar2; + } while (ppuVar2 != &ptr_char_data_buf); + table_text_pointers[37] = _load_resource_named_to_membank((&ptr_LgunX)[j_text_trigger],1,0x100,6); + table_text_pointers[38] = _load_resource_named_to_membank((&ptr_LtitleX)[j_text_trigger],1,0x100,6); + table_text_pointers[39] = _load_resource_named_to_membank((&ptr_LmpmenuX)[j_text_trigger],1,0x100,6); + table_text_pointers[40] = _load_resource_named_to_membank((&ptr_LpropobjX)[j_text_trigger],1,0x100,6); + table_text_pointers[41] = _load_resource_named_to_membank((&ptr_LmpweaponsX)[j_text_trigger],1,0x100,6); + table_text_pointers[42] = _load_resource_named_to_membank((&ptr_LoptionsX)[j_text_trigger],1,0x100,6); + table_text_pointers[43] = _load_resource_named_to_membank((&ptr_LmiscX)[j_text_trigger],1,0x100,6); + return; +} +#else +GLOBAL_ASM( +.text +glabel init_LnameX +/* 0F621C 7F0C16EC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F6220 7F0C16F0 AFB20020 */ sw $s2, 0x20($sp) +/* 0F6224 7F0C16F4 3C128005 */ lui $s2, %hi(j_text_trigger) +/* 0F6228 7F0C16F8 265284D0 */ addiu $s2, %lo(j_text_trigger) # addiu $s2, $s2, -0x7b30 +/* 0F622C 7F0C16FC 8E480000 */ lw $t0, ($s2) +/* 0F6230 7F0C1700 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F6234 7F0C1704 AFB1001C */ sw $s1, 0x1c($sp) +/* 0F6238 7F0C1708 11000039 */ beqz $t0, .L7F0C17F0 +/* 0F623C 7F0C170C AFB00018 */ sw $s0, 0x18($sp) +/* 0F6240 7F0C1710 24042E80 */ li $a0, 11904 +/* 0F6244 7F0C1714 0C0025C8 */ jal mempAllocBytesInBank +/* 0F6248 7F0C1718 24050006 */ li $a1, 6 +/* 0F624C 7F0C171C 3C018009 */ lui $at, %hi(ptr_j_char_data_buf) +/* 0F6250 7F0C1720 AC22C6F4 */ sw $v0, %lo(ptr_j_char_data_buf)($at) +/* 0F6254 7F0C1724 24040100 */ li $a0, 256 +/* 0F6258 7F0C1728 0C0025C8 */ jal mempAllocBytesInBank +/* 0F625C 7F0C172C 24050006 */ li $a1, 6 +/* 0F6260 7F0C1730 3C048009 */ lui $a0, %hi(ptr_j_char_registry) +/* 0F6264 7F0C1734 2484C6F8 */ addiu $a0, %lo(ptr_j_char_registry) # addiu $a0, $a0, -0x3908 +/* 0F6268 7F0C1738 AC820000 */ sw $v0, ($a0) +/* 0F626C 7F0C173C 00001825 */ move $v1, $zero +/* 0F6270 7F0C1740 240500F8 */ li $a1, 248 +.L7F0C1744: +/* 0F6274 7F0C1744 8C8E0000 */ lw $t6, ($a0) +/* 0F6278 7F0C1748 01C31021 */ addu $v0, $t6, $v1 +/* 0F627C 7F0C174C 904F0000 */ lbu $t7, ($v0) +/* 0F6280 7F0C1750 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F6284 7F0C1754 A0580000 */ sb $t8, ($v0) +/* 0F6288 7F0C1758 8C990000 */ lw $t9, ($a0) +/* 0F628C 7F0C175C 03231021 */ addu $v0, $t9, $v1 +/* 0F6290 7F0C1760 944A0000 */ lhu $t2, ($v0) +/* 0F6294 7F0C1764 354B3FFF */ ori $t3, $t2, 0x3fff +/* 0F6298 7F0C1768 A44B0000 */ sh $t3, ($v0) +/* 0F629C 7F0C176C 8C8C0000 */ lw $t4, ($a0) +/* 0F62A0 7F0C1770 01831021 */ addu $v0, $t4, $v1 +/* 0F62A4 7F0C1774 904D0002 */ lbu $t5, 2($v0) +/* 0F62A8 7F0C1778 31AEFF3F */ andi $t6, $t5, 0xff3f +/* 0F62AC 7F0C177C A04E0002 */ sb $t6, 2($v0) +/* 0F62B0 7F0C1780 8C8F0000 */ lw $t7, ($a0) +/* 0F62B4 7F0C1784 01E31021 */ addu $v0, $t7, $v1 +/* 0F62B8 7F0C1788 94590002 */ lhu $t9, 2($v0) +/* 0F62BC 7F0C178C 37293FFF */ ori $t1, $t9, 0x3fff +/* 0F62C0 7F0C1790 A4490002 */ sh $t1, 2($v0) +/* 0F62C4 7F0C1794 8C8A0000 */ lw $t2, ($a0) +/* 0F62C8 7F0C1798 01431021 */ addu $v0, $t2, $v1 +/* 0F62CC 7F0C179C 904B0004 */ lbu $t3, 4($v0) +/* 0F62D0 7F0C17A0 316CFF3F */ andi $t4, $t3, 0xff3f +/* 0F62D4 7F0C17A4 A04C0004 */ sb $t4, 4($v0) +/* 0F62D8 7F0C17A8 8C8D0000 */ lw $t5, ($a0) +/* 0F62DC 7F0C17AC 01A31021 */ addu $v0, $t5, $v1 +/* 0F62E0 7F0C17B0 944F0004 */ lhu $t7, 4($v0) +/* 0F62E4 7F0C17B4 35F83FFF */ ori $t8, $t7, 0x3fff +/* 0F62E8 7F0C17B8 A4580004 */ sh $t8, 4($v0) +/* 0F62EC 7F0C17BC 8C990000 */ lw $t9, ($a0) +/* 0F62F0 7F0C17C0 03231021 */ addu $v0, $t9, $v1 +/* 0F62F4 7F0C17C4 90490006 */ lbu $t1, 6($v0) +/* 0F62F8 7F0C17C8 312AFF3F */ andi $t2, $t1, 0xff3f +/* 0F62FC 7F0C17CC A04A0006 */ sb $t2, 6($v0) +/* 0F6300 7F0C17D0 8C8B0000 */ lw $t3, ($a0) +/* 0F6304 7F0C17D4 01631021 */ addu $v0, $t3, $v1 +/* 0F6308 7F0C17D8 944D0006 */ lhu $t5, 6($v0) +/* 0F630C 7F0C17DC 24630008 */ addiu $v1, $v1, 8 +/* 0F6310 7F0C17E0 35AE3FFF */ ori $t6, $t5, 0x3fff +/* 0F6314 7F0C17E4 1465FFD7 */ bne $v1, $a1, .L7F0C1744 +/* 0F6318 7F0C17E8 A44E0006 */ sh $t6, 6($v0) +/* 0F631C 7F0C17EC 8E480000 */ lw $t0, ($s2) +.L7F0C17F0: +/* 0F6320 7F0C17F0 3C018009 */ lui $at, %hi(ptr_text) +/* 0F6324 7F0C17F4 3C028009 */ lui $v0, %hi(table_text_pointers) +/* 0F6328 7F0C17F8 3C038009 */ lui $v1, %hi(ptr_j_char_data_buf) +/* 0F632C 7F0C17FC 2463C6F4 */ addiu $v1, %lo(ptr_j_char_data_buf) # addiu $v1, $v1, -0x390c +/* 0F6330 7F0C1800 2442C644 */ addiu $v0, %lo(table_text_pointers) # addiu $v0, $v0, -0x39bc +/* 0F6334 7F0C1804 AC20C640 */ sw $zero, %lo(ptr_text)($at) +.L7F0C1808: +/* 0F6338 7F0C1808 24420010 */ addiu $v0, $v0, 0x10 +/* 0F633C 7F0C180C AC40FFF4 */ sw $zero, -0xc($v0) +/* 0F6340 7F0C1810 AC40FFF8 */ sw $zero, -8($v0) +/* 0F6344 7F0C1814 AC40FFFC */ sw $zero, -4($v0) +/* 0F6348 7F0C1818 1443FFFB */ bne $v0, $v1, .L7F0C1808 +/* 0F634C 7F0C181C AC40FFF0 */ sw $zero, -0x10($v0) +/* 0F6350 7F0C1820 3C108005 */ lui $s0, %hi(LnameX_lookuptable) +/* 0F6354 7F0C1824 261084D4 */ addiu $s0, %lo(LnameX_lookuptable) # addiu $s0, $s0, -0x7b2c +/* 0F6358 7F0C1828 00087880 */ sll $t7, $t0, 2 +/* 0F635C 7F0C182C 020FC021 */ addu $t8, $s0, $t7 +/* 0F6360 7F0C1830 8F040130 */ lw $a0, 0x130($t8) +/* 0F6364 7F0C1834 24050001 */ li $a1, 1 +/* 0F6368 7F0C1838 24060100 */ li $a2, 256 +/* 0F636C 7F0C183C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6370 7F0C1840 24070006 */ li $a3, 6 +/* 0F6374 7F0C1844 8E590000 */ lw $t9, ($s2) +/* 0F6378 7F0C1848 3C118009 */ lui $s1, %hi(ptr_text) +/* 0F637C 7F0C184C 2631C640 */ addiu $s1, %lo(ptr_text) # addiu $s1, $s1, -0x39c0 +/* 0F6380 7F0C1850 00194880 */ sll $t1, $t9, 2 +/* 0F6384 7F0C1854 02095021 */ addu $t2, $s0, $t1 +/* 0F6388 7F0C1858 AE220098 */ sw $v0, 0x98($s1) +/* 0F638C 7F0C185C 8D440138 */ lw $a0, 0x138($t2) +/* 0F6390 7F0C1860 24050001 */ li $a1, 1 +/* 0F6394 7F0C1864 24060100 */ li $a2, 256 +/* 0F6398 7F0C1868 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F639C 7F0C186C 24070006 */ li $a3, 6 +/* 0F63A0 7F0C1870 8E4B0000 */ lw $t3, ($s2) +/* 0F63A4 7F0C1874 AE22009C */ sw $v0, 0x9c($s1) +/* 0F63A8 7F0C1878 24050001 */ li $a1, 1 +/* 0F63AC 7F0C187C 000B6080 */ sll $t4, $t3, 2 +/* 0F63B0 7F0C1880 020C6821 */ addu $t5, $s0, $t4 +/* 0F63B4 7F0C1884 8DA40140 */ lw $a0, 0x140($t5) +/* 0F63B8 7F0C1888 24060100 */ li $a2, 256 +/* 0F63BC 7F0C188C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F63C0 7F0C1890 24070006 */ li $a3, 6 +/* 0F63C4 7F0C1894 8E4E0000 */ lw $t6, ($s2) +/* 0F63C8 7F0C1898 AE2200A0 */ sw $v0, 0xa0($s1) +/* 0F63CC 7F0C189C 24050001 */ li $a1, 1 +/* 0F63D0 7F0C18A0 000E7880 */ sll $t7, $t6, 2 +/* 0F63D4 7F0C18A4 020FC021 */ addu $t8, $s0, $t7 +/* 0F63D8 7F0C18A8 8F040148 */ lw $a0, 0x148($t8) +/* 0F63DC 7F0C18AC 24060100 */ li $a2, 256 +/* 0F63E0 7F0C18B0 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F63E4 7F0C18B4 24070006 */ li $a3, 6 +/* 0F63E8 7F0C18B8 8E590000 */ lw $t9, ($s2) +/* 0F63EC 7F0C18BC AE2200A4 */ sw $v0, 0xa4($s1) +/* 0F63F0 7F0C18C0 24050001 */ li $a1, 1 +/* 0F63F4 7F0C18C4 00194880 */ sll $t1, $t9, 2 +/* 0F63F8 7F0C18C8 02095021 */ addu $t2, $s0, $t1 +/* 0F63FC 7F0C18CC 8D440150 */ lw $a0, 0x150($t2) +/* 0F6400 7F0C18D0 24060100 */ li $a2, 256 +/* 0F6404 7F0C18D4 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6408 7F0C18D8 24070006 */ li $a3, 6 +/* 0F640C 7F0C18DC 8E4B0000 */ lw $t3, ($s2) +/* 0F6410 7F0C18E0 AE2200A8 */ sw $v0, 0xa8($s1) +/* 0F6414 7F0C18E4 24050001 */ li $a1, 1 +/* 0F6418 7F0C18E8 000B6080 */ sll $t4, $t3, 2 +/* 0F641C 7F0C18EC 020C6821 */ addu $t5, $s0, $t4 +/* 0F6420 7F0C18F0 8DA40158 */ lw $a0, 0x158($t5) +/* 0F6424 7F0C18F4 24060100 */ li $a2, 256 +/* 0F6428 7F0C18F8 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F642C 7F0C18FC 24070006 */ li $a3, 6 +/* 0F6430 7F0C1900 8E4E0000 */ lw $t6, ($s2) +/* 0F6434 7F0C1904 AE2200AC */ sw $v0, 0xac($s1) +/* 0F6438 7F0C1908 24050001 */ li $a1, 1 +/* 0F643C 7F0C190C 000E7880 */ sll $t7, $t6, 2 +/* 0F6440 7F0C1910 020FC021 */ addu $t8, $s0, $t7 +/* 0F6444 7F0C1914 8F040160 */ lw $a0, 0x160($t8) +/* 0F6448 7F0C1918 24060100 */ li $a2, 256 +/* 0F644C 7F0C191C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6450 7F0C1920 24070006 */ li $a3, 6 +/* 0F6454 7F0C1924 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F6458 7F0C1928 AE2200B0 */ sw $v0, 0xb0($s1) +/* 0F645C 7F0C192C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F6460 7F0C1930 8FB00018 */ lw $s0, 0x18($sp) +/* 0F6464 7F0C1934 8FB20020 */ lw $s2, 0x20($sp) +/* 0F6468 7F0C1938 03E00008 */ jr $ra +/* 0F646C 7F0C193C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void something_with_LnameJ(void) +{ + ushort uVar1; + ushort *puVar2; + int iVar3; + + iVar3 = 0; + if (j_text_trigger != 0) { + do { + puVar2 = (ushort *)(ptr_char_registry + iVar3); + if (*puVar2 >> 0xe == 0) { + uVar1 = puVar2[1]; + } + else { + *(byte *)puVar2 = ((byte)(*puVar2 >> 0xe) - 1) * '@' | *(byte *)puVar2 & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[1]; + } + if (uVar1 >> 0xe == 0) { + uVar1 = puVar2[2]; + } + else { + *(byte *)(puVar2 + 1) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 1) & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[2]; + } + if (uVar1 >> 0xe == 0) { + uVar1 = puVar2[3]; + } + else { + *(byte *)(puVar2 + 2) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 2) & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[3]; + } + iVar3 += 8; + if (uVar1 >> 0xe != 0) { + *(byte *)(puVar2 + 3) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 3) & 0x3f; + } + } while (iVar3 != 0xf8); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel something_with_LnameJ +/* 0F6470 7F0C1940 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0F6474 7F0C1944 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0F6478 7F0C1948 00001825 */ move $v1, $zero +/* 0F647C 7F0C194C 240600F8 */ li $a2, 248 +/* 0F6480 7F0C1950 11C00035 */ beqz $t6, .L7F0C1A28 +/* 0F6484 7F0C1954 3C058009 */ lui $a1, %hi(ptr_j_char_registry) +/* 0F6488 7F0C1958 24A5C6F8 */ addiu $a1, %lo(ptr_j_char_registry) # addiu $a1, $a1, -0x3908 +/* 0F648C 7F0C195C 8CAF0000 */ lw $t7, ($a1) +.L7F0C1960: +/* 0F6490 7F0C1960 01E31021 */ addu $v0, $t7, $v1 +/* 0F6494 7F0C1964 94440000 */ lhu $a0, ($v0) +/* 0F6498 7F0C1968 0004C382 */ srl $t8, $a0, 0xe +/* 0F649C 7F0C196C 5300000A */ beql $t8, $zero, .L7F0C1998 +/* 0F64A0 7F0C1970 94440002 */ lhu $a0, 2($v0) +/* 0F64A4 7F0C1974 904A0000 */ lbu $t2, ($v0) +/* 0F64A8 7F0C1978 2719FFFF */ addiu $t9, $t8, -1 +/* 0F64AC 7F0C197C 00194980 */ sll $t1, $t9, 6 +/* 0F64B0 7F0C1980 314BFF3F */ andi $t3, $t2, 0xff3f +/* 0F64B4 7F0C1984 012B6025 */ or $t4, $t1, $t3 +/* 0F64B8 7F0C1988 A04C0000 */ sb $t4, ($v0) +/* 0F64BC 7F0C198C 8CAD0000 */ lw $t5, ($a1) +/* 0F64C0 7F0C1990 01A31021 */ addu $v0, $t5, $v1 +/* 0F64C4 7F0C1994 94440002 */ lhu $a0, 2($v0) +.L7F0C1998: +/* 0F64C8 7F0C1998 00047382 */ srl $t6, $a0, 0xe +/* 0F64CC 7F0C199C 51C0000A */ beql $t6, $zero, .L7F0C19C8 +/* 0F64D0 7F0C19A0 94440004 */ lhu $a0, 4($v0) +/* 0F64D4 7F0C19A4 90480002 */ lbu $t0, 2($v0) +/* 0F64D8 7F0C19A8 25CFFFFF */ addiu $t7, $t6, -1 +/* 0F64DC 7F0C19AC 000FC980 */ sll $t9, $t7, 6 +/* 0F64E0 7F0C19B0 310AFF3F */ andi $t2, $t0, 0xff3f +/* 0F64E4 7F0C19B4 032A4825 */ or $t1, $t9, $t2 +/* 0F64E8 7F0C19B8 A0490002 */ sb $t1, 2($v0) +/* 0F64EC 7F0C19BC 8CAB0000 */ lw $t3, ($a1) +/* 0F64F0 7F0C19C0 01631021 */ addu $v0, $t3, $v1 +/* 0F64F4 7F0C19C4 94440004 */ lhu $a0, 4($v0) +.L7F0C19C8: +/* 0F64F8 7F0C19C8 00046382 */ srl $t4, $a0, 0xe +/* 0F64FC 7F0C19CC 5180000A */ beql $t4, $zero, .L7F0C19F8 +/* 0F6500 7F0C19D0 94440006 */ lhu $a0, 6($v0) +/* 0F6504 7F0C19D4 90580004 */ lbu $t8, 4($v0) +/* 0F6508 7F0C19D8 258DFFFF */ addiu $t5, $t4, -1 +/* 0F650C 7F0C19DC 000D7980 */ sll $t7, $t5, 6 +/* 0F6510 7F0C19E0 3308FF3F */ andi $t0, $t8, 0xff3f +/* 0F6514 7F0C19E4 01E8C825 */ or $t9, $t7, $t0 +/* 0F6518 7F0C19E8 A0590004 */ sb $t9, 4($v0) +/* 0F651C 7F0C19EC 8CAA0000 */ lw $t2, ($a1) +/* 0F6520 7F0C19F0 01431021 */ addu $v0, $t2, $v1 +/* 0F6524 7F0C19F4 94440006 */ lhu $a0, 6($v0) +.L7F0C19F8: +/* 0F6528 7F0C19F8 24630008 */ addiu $v1, $v1, 8 +/* 0F652C 7F0C19FC 00044B82 */ srl $t1, $a0, 0xe +/* 0F6530 7F0C1A00 11200007 */ beqz $t1, .L7F0C1A20 +/* 0F6534 7F0C1A04 00000000 */ nop +/* 0F6538 7F0C1A08 904E0006 */ lbu $t6, 6($v0) +/* 0F653C 7F0C1A0C 252BFFFF */ addiu $t3, $t1, -1 +/* 0F6540 7F0C1A10 000B6980 */ sll $t5, $t3, 6 +/* 0F6544 7F0C1A14 31D8FF3F */ andi $t8, $t6, 0xff3f +/* 0F6548 7F0C1A18 01B87825 */ or $t7, $t5, $t8 +/* 0F654C 7F0C1A1C A04F0006 */ sb $t7, 6($v0) +.L7F0C1A20: +/* 0F6550 7F0C1A20 5466FFCF */ bnel $v1, $a2, .L7F0C1960 +/* 0F6554 7F0C1A24 8CAF0000 */ lw $t7, ($a1) +.L7F0C1A28: +/* 0F6558 7F0C1A28 03E00008 */ jr $ra +/* 0F655C 7F0C1A2C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +int something_with_LnameX(uint param_1) +{ + bool bVar1; + ushort uVar3; + u8 *puVar2; + int iVar4; + ushort *puVar5; + int iVar6; + int iVar7; + int indexto; + int iVar8; + int iVar9; + int indexfrom; + + indexto = -1; + bVar1 = (param_1 & 0x2000) != 0; + iVar7 = 0; + iVar4 = 0; + iVar9 = -1; + puVar5 = (ushort *)ptr_char_registry; + do { + indexfrom = (int)param_1 >> 1; + if ((!bVar1) && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) break; + if ((bVar1) && + (((iVar4 + 1 < 0x7c && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) && + ((longlong)indexfrom == ((ulonglong)puVar5[1] & 0x3fff))))) break; + uVar3 = *puVar5 >> 0xe; + iVar6 = iVar4 + 1; + if (uVar3 == 0) { + indexto = iVar4; + } + iVar7 += 2; + iVar8 = iVar9; + if (((uVar3 == 0) && (puVar5[1] >> 0xe == 0)) && (iVar8 = iVar4, 0x7b < iVar6)) { + iVar8 = iVar9; + } + puVar5 = puVar5 + 1; + iVar4 = iVar6; + iVar9 = iVar8; + } while (iVar6 != 0x7c); + if (iVar4 < 0x7c) { + if (bVar1) { + *(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80; + (ptr_char_registry + iVar7)[2] = (ptr_char_registry + iVar7)[2] & 0x3f | 0x80; + puVar2 = ptr_char_data_buf + iVar4 * 0x60; + } + else { + *(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80; + puVar2 = ptr_char_data_buf + iVar4 * 0x60; + } + } + else { + if ((bVar1) || (indexto < 0)) { + puVar2 = ptr_char_data_buf; + if ((bVar1) && (iVar4 = iVar9 * 2, -1 < iVar9)) { + ptr_char_registry[iVar4] = ptr_char_registry[iVar4] & 0x3f | 0x80; + (ptr_char_registry + iVar4)[2] = (ptr_char_registry + iVar4)[2] & 0x3f | 0x80; + uVar3 = (ushort)indexfrom & 0x3fff; + *(ushort *)(ptr_char_registry + iVar4) = + uVar3 | *(ushort *)(ptr_char_registry + iVar4) & 0xc000; + *(ushort *)(ptr_char_registry + iVar4 + 2) = + uVar3 | *(ushort *)(ptr_char_registry + iVar4 + 2) & 0xc000; + romCopy((char *)(ptr_char_data_buf + iVar9 * 0x60), + (char *)(_efontcharSegmentStart + ((int)(param_1 & 0x1fff) >> 1) * 0x20), + 0x80); + puVar2 = ptr_char_data_buf + iVar9 * 0x60; + } + } + else { + ptr_char_registry[indexto * 2] = ptr_char_registry[indexto * 2] & 0x3f | 0x80; + *(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 *)(_jfontcharSegmentStart + indexfrom * 0x18),0x60); + puVar2 = ptr_char_data_buf + indexto * 0x60; + } + } + return (int)puVar2; +} +#else +GLOBAL_ASM( +.text +glabel something_with_LnameX +/* 0F6560 7F0C1A30 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F6564 7F0C1A34 AFB00018 */ sw $s0, 0x18($sp) +/* 0F6568 7F0C1A38 308E2000 */ andi $t6, $a0, 0x2000 +/* 0F656C 7F0C1A3C 00808025 */ move $s0, $a0 +/* 0F6570 7F0C1A40 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F6574 7F0C1A44 240AFFFF */ li $t2, -1 +/* 0F6578 7F0C1A48 240BFFFF */ li $t3, -1 +/* 0F657C 7F0C1A4C 11C00002 */ beqz $t6, .L7F0C1A58 +/* 0F6580 7F0C1A50 00004025 */ move $t0, $zero +/* 0F6584 7F0C1A54 24080001 */ li $t0, 1 +.L7F0C1A58: +/* 0F6588 7F0C1A58 3C0C8009 */ lui $t4, %hi(ptr_j_char_registry) +/* 0F658C 7F0C1A5C 8D8CC6F8 */ lw $t4, %lo(ptr_j_char_registry)($t4) +/* 0F6590 7F0C1A60 00002825 */ move $a1, $zero +/* 0F6594 7F0C1A64 00003825 */ move $a3, $zero +/* 0F6598 7F0C1A68 2409007C */ li $t1, 124 +/* 0F659C 7F0C1A6C 01802025 */ move $a0, $t4 +.L7F0C1A70: +/* 0F65A0 7F0C1A70 15000006 */ bnez $t0, .L7F0C1A8C +/* 0F65A4 7F0C1A74 00000000 */ nop +/* 0F65A8 7F0C1A78 94980000 */ lhu $t8, ($a0) +/* 0F65AC 7F0C1A7C 00107843 */ sra $t7, $s0, 1 +/* 0F65B0 7F0C1A80 33193FFF */ andi $t9, $t8, 0x3fff +/* 0F65B4 7F0C1A84 51F9001F */ beql $t7, $t9, .L7F0C1B04 +/* 0F65B8 7F0C1A88 28A1007C */ slti $at, $a1, 0x7c +.L7F0C1A8C: +/* 0F65BC 7F0C1A8C 1100000B */ beqz $t0, .L7F0C1ABC +/* 0F65C0 7F0C1A90 94830000 */ lhu $v1, ($a0) +/* 0F65C4 7F0C1A94 24AE0001 */ addiu $t6, $a1, 1 +/* 0F65C8 7F0C1A98 29C1007C */ slti $at, $t6, 0x7c +/* 0F65CC 7F0C1A9C 10200007 */ beqz $at, .L7F0C1ABC +/* 0F65D0 7F0C1AA0 00101043 */ sra $v0, $s0, 1 +/* 0F65D4 7F0C1AA4 30783FFF */ andi $t8, $v1, 0x3fff +/* 0F65D8 7F0C1AA8 54580005 */ bnel $v0, $t8, .L7F0C1AC0 +/* 0F65DC 7F0C1AAC 00031382 */ srl $v0, $v1, 0xe +/* 0F65E0 7F0C1AB0 948F0002 */ lhu $t7, 2($a0) +/* 0F65E4 7F0C1AB4 31F93FFF */ andi $t9, $t7, 0x3fff +/* 0F65E8 7F0C1AB8 10590011 */ beq $v0, $t9, .L7F0C1B00 +.L7F0C1ABC: +/* 0F65EC 7F0C1ABC 00031382 */ srl $v0, $v1, 0xe +.L7F0C1AC0: +/* 0F65F0 7F0C1AC0 14400002 */ bnez $v0, .L7F0C1ACC +/* 0F65F4 7F0C1AC4 24A60001 */ addiu $a2, $a1, 1 +/* 0F65F8 7F0C1AC8 00A05025 */ move $t2, $a1 +.L7F0C1ACC: +/* 0F65FC 7F0C1ACC 14400009 */ bnez $v0, .L7F0C1AF4 +/* 0F6600 7F0C1AD0 24E70002 */ addiu $a3, $a3, 2 +/* 0F6604 7F0C1AD4 948E0002 */ lhu $t6, 2($a0) +/* 0F6608 7F0C1AD8 28C1007C */ slti $at, $a2, 0x7c +/* 0F660C 7F0C1ADC 000EC382 */ srl $t8, $t6, 0xe +/* 0F6610 7F0C1AE0 57000005 */ bnezl $t8, .L7F0C1AF8 +/* 0F6614 7F0C1AE4 00C02825 */ move $a1, $a2 +/* 0F6618 7F0C1AE8 50200003 */ beql $at, $zero, .L7F0C1AF8 +/* 0F661C 7F0C1AEC 00C02825 */ move $a1, $a2 +/* 0F6620 7F0C1AF0 00A05825 */ move $t3, $a1 +.L7F0C1AF4: +/* 0F6624 7F0C1AF4 00C02825 */ move $a1, $a2 +.L7F0C1AF8: +/* 0F6628 7F0C1AF8 14C9FFDD */ bne $a2, $t1, .L7F0C1A70 +/* 0F662C 7F0C1AFC 24840002 */ addiu $a0, $a0, 2 +.L7F0C1B00: +/* 0F6630 7F0C1B00 28A1007C */ slti $at, $a1, 0x7c +.L7F0C1B04: +/* 0F6634 7F0C1B04 10200021 */ beqz $at, .L7F0C1B8C +/* 0F6638 7F0C1B08 00000000 */ nop +/* 0F663C 7F0C1B0C 1500000C */ bnez $t0, .L7F0C1B40 +/* 0F6640 7F0C1B10 240D0060 */ li $t5, 96 +/* 0F6644 7F0C1B14 00AD0019 */ multu $a1, $t5 +/* 0F6648 7F0C1B18 908F0000 */ lbu $t7, ($a0) +/* 0F664C 7F0C1B1C 31F9FF3F */ andi $t9, $t7, 0xff3f +/* 0F6650 7F0C1B20 372E0080 */ ori $t6, $t9, 0x80 +/* 0F6654 7F0C1B24 A08E0000 */ sb $t6, ($a0) +/* 0F6658 7F0C1B28 3C0F8009 */ lui $t7, %hi(ptr_j_char_data_buf) +/* 0F665C 7F0C1B2C 8DEFC6F4 */ lw $t7, %lo(ptr_j_char_data_buf)($t7) +/* 0F6660 7F0C1B30 0000C012 */ mflo $t8 +/* 0F6664 7F0C1B34 030F1021 */ addu $v0, $t8, $t7 +/* 0F6668 7F0C1B38 1000006F */ b .L7F0C1CF8 +/* 0F666C 7F0C1B3C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C1B40: +/* 0F6670 7F0C1B40 90990000 */ lbu $t9, ($a0) +/* 0F6674 7F0C1B44 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F6678 7F0C1B48 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F667C 7F0C1B4C 332EFF3F */ andi $t6, $t9, 0xff3f +/* 0F6680 7F0C1B50 35D80080 */ ori $t8, $t6, 0x80 +/* 0F6684 7F0C1B54 A0980000 */ sb $t8, ($a0) +/* 0F6688 7F0C1B58 8D2F0000 */ lw $t7, ($t1) +/* 0F668C 7F0C1B5C 240D0060 */ li $t5, 96 +/* 0F6690 7F0C1B60 00AD0019 */ multu $a1, $t5 +/* 0F6694 7F0C1B64 01E72021 */ addu $a0, $t7, $a3 +/* 0F6698 7F0C1B68 90990002 */ lbu $t9, 2($a0) +/* 0F669C 7F0C1B6C 332EFF3F */ andi $t6, $t9, 0xff3f +/* 0F66A0 7F0C1B70 35D80080 */ ori $t8, $t6, 0x80 +/* 0F66A4 7F0C1B74 A0980002 */ sb $t8, 2($a0) +/* 0F66A8 7F0C1B78 3C198009 */ lui $t9, %hi(ptr_j_char_data_buf) +/* 0F66AC 7F0C1B7C 8F39C6F4 */ lw $t9, %lo(ptr_j_char_data_buf)($t9) +/* 0F66B0 7F0C1B80 00007812 */ mflo $t7 +/* 0F66B4 7F0C1B84 1000005B */ b .L7F0C1CF4 +/* 0F66B8 7F0C1B88 01F91021 */ addu $v0, $t7, $t9 +.L7F0C1B8C: +/* 0F66BC 7F0C1B8C 15000025 */ bnez $t0, .L7F0C1C24 +/* 0F66C0 7F0C1B90 00000000 */ nop +/* 0F66C4 7F0C1B94 05400023 */ bltz $t2, .L7F0C1C24 +/* 0F66C8 7F0C1B98 240D0060 */ li $t5, 96 +/* 0F66CC 7F0C1B9C 014D0019 */ multu $t2, $t5 +/* 0F66D0 7F0C1BA0 000A3840 */ sll $a3, $t2, 1 +/* 0F66D4 7F0C1BA4 01871821 */ addu $v1, $t4, $a3 +/* 0F66D8 7F0C1BA8 906E0000 */ lbu $t6, ($v1) +/* 0F66DC 7F0C1BAC 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F66E0 7F0C1BB0 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F66E4 7F0C1BB4 31D8FF3F */ andi $t8, $t6, 0xff3f +/* 0F66E8 7F0C1BB8 370F0080 */ ori $t7, $t8, 0x80 +/* 0F66EC 7F0C1BBC A06F0000 */ sb $t7, ($v1) +/* 0F66F0 7F0C1BC0 8D390000 */ lw $t9, ($t1) +/* 0F66F4 7F0C1BC4 00004012 */ mflo $t0 +/* 0F66F8 7F0C1BC8 00101043 */ sra $v0, $s0, 1 +/* 0F66FC 7F0C1BCC 03271821 */ addu $v1, $t9, $a3 +/* 0F6700 7F0C1BD0 004D0019 */ multu $v0, $t5 +/* 0F6704 7F0C1BD4 946F0000 */ lhu $t7, ($v1) +/* 0F6708 7F0C1BD8 30583FFF */ andi $t8, $v0, 0x3fff +/* 0F670C 7F0C1BDC 24060060 */ li $a2, 96 +/* 0F6710 7F0C1BE0 31F9C000 */ andi $t9, $t7, 0xc000 +/* 0F6714 7F0C1BE4 03197025 */ or $t6, $t8, $t9 +/* 0F6718 7F0C1BE8 A46E0000 */ sh $t6, ($v1) +/* 0F671C 7F0C1BEC 3C0F8009 */ lui $t7, %hi(ptr_j_char_data_buf) +/* 0F6720 7F0C1BF0 8DEFC6F4 */ lw $t7, %lo(ptr_j_char_data_buf)($t7) +/* 0F6724 7F0C1BF4 3C190011 */ lui $t9, %hi(_jfontcharSegmentStart) # $t9, 0x11 +/* 0F6728 7F0C1BF8 27397940 */ addiu $t9, %lo(_jfontcharSegmentStart) # addiu $t9, $t9, 0x7940 +/* 0F672C 7F0C1BFC 0000C012 */ mflo $t8 +/* 0F6730 7F0C1C00 03192821 */ addu $a1, $t8, $t9 +/* 0F6734 7F0C1C04 AFA80024 */ sw $t0, 0x24($sp) +/* 0F6738 7F0C1C08 0C001707 */ jal romCopy +/* 0F673C 7F0C1C0C 010F2021 */ addu $a0, $t0, $t7 +/* 0F6740 7F0C1C10 3C0E8009 */ lui $t6, %hi(ptr_j_char_data_buf) +/* 0F6744 7F0C1C14 8FA80024 */ lw $t0, 0x24($sp) +/* 0F6748 7F0C1C18 8DCEC6F4 */ lw $t6, %lo(ptr_j_char_data_buf)($t6) +/* 0F674C 7F0C1C1C 10000035 */ b .L7F0C1CF4 +/* 0F6750 7F0C1C20 010E1021 */ addu $v0, $t0, $t6 +.L7F0C1C24: +/* 0F6754 7F0C1C24 11000032 */ beqz $t0, .L7F0C1CF0 +/* 0F6758 7F0C1C28 3C028009 */ lui $v0, %hi(ptr_j_char_data_buf) +/* 0F675C 7F0C1C2C 05600030 */ bltz $t3, .L7F0C1CF0 +/* 0F6760 7F0C1C30 000B1840 */ sll $v1, $t3, 1 +/* 0F6764 7F0C1C34 01831021 */ addu $v0, $t4, $v1 +/* 0F6768 7F0C1C38 904F0000 */ lbu $t7, ($v0) +/* 0F676C 7F0C1C3C 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F6770 7F0C1C40 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F6774 7F0C1C44 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F6778 7F0C1C48 37190080 */ ori $t9, $t8, 0x80 +/* 0F677C 7F0C1C4C A0590000 */ sb $t9, ($v0) +/* 0F6780 7F0C1C50 8D2E0000 */ lw $t6, ($t1) +/* 0F6784 7F0C1C54 240D0060 */ li $t5, 96 +/* 0F6788 7F0C1C58 016D0019 */ multu $t3, $t5 +/* 0F678C 7F0C1C5C 01C31021 */ addu $v0, $t6, $v1 +/* 0F6790 7F0C1C60 904F0002 */ lbu $t7, 2($v0) +/* 0F6794 7F0C1C64 24060080 */ li $a2, 128 +/* 0F6798 7F0C1C68 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F679C 7F0C1C6C 37190080 */ ori $t9, $t8, 0x80 +/* 0F67A0 7F0C1C70 A0590002 */ sb $t9, 2($v0) +/* 0F67A4 7F0C1C74 8D2E0000 */ lw $t6, ($t1) +/* 0F67A8 7F0C1C78 00107843 */ sra $t7, $s0, 1 +/* 0F67AC 7F0C1C7C 31E73FFF */ andi $a3, $t7, 0x3fff +/* 0F67B0 7F0C1C80 01C31021 */ addu $v0, $t6, $v1 +/* 0F67B4 7F0C1C84 94590000 */ lhu $t9, ($v0) +/* 0F67B8 7F0C1C88 00004012 */ mflo $t0 +/* 0F67BC 7F0C1C8C 332EC000 */ andi $t6, $t9, 0xc000 +/* 0F67C0 7F0C1C90 00EE7825 */ or $t7, $a3, $t6 +/* 0F67C4 7F0C1C94 A44F0000 */ sh $t7, ($v0) +/* 0F67C8 7F0C1C98 8D380000 */ lw $t8, ($t1) +/* 0F67CC 7F0C1C9C 03031021 */ addu $v0, $t8, $v1 +/* 0F67D0 7F0C1CA0 94590002 */ lhu $t9, 2($v0) +/* 0F67D4 7F0C1CA4 3C188009 */ lui $t8, %hi(ptr_j_char_data_buf) +/* 0F67D8 7F0C1CA8 332EC000 */ andi $t6, $t9, 0xc000 +/* 0F67DC 7F0C1CAC 00EE7825 */ or $t7, $a3, $t6 +/* 0F67E0 7F0C1CB0 A44F0002 */ sh $t7, 2($v0) +/* 0F67E4 7F0C1CB4 8F18C6F4 */ lw $t8, %lo(ptr_j_char_data_buf)($t8) +/* 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(_efontcharSegmentStart) # $t8, 0x12 +/* 0F67F8 7F0C1CC8 27183040 */ addiu $t8, %lo(_efontcharSegmentStart) # addiu $t8, $t8, 0x3040 +/* 0F67FC 7F0C1CCC 000E79C0 */ sll $t7, $t6, 7 +/* 0F6800 7F0C1CD0 01F82821 */ addu $a1, $t7, $t8 +/* 0F6804 7F0C1CD4 0C001707 */ jal romCopy +/* 0F6808 7F0C1CD8 AFA80024 */ sw $t0, 0x24($sp) +/* 0F680C 7F0C1CDC 3C198009 */ lui $t9, %hi(ptr_j_char_data_buf) +/* 0F6810 7F0C1CE0 8FA80024 */ lw $t0, 0x24($sp) +/* 0F6814 7F0C1CE4 8F39C6F4 */ lw $t9, %lo(ptr_j_char_data_buf)($t9) +/* 0F6818 7F0C1CE8 10000002 */ b .L7F0C1CF4 +/* 0F681C 7F0C1CEC 01191021 */ addu $v0, $t0, $t9 +.L7F0C1CF0: +/* 0F6820 7F0C1CF0 8C42C6F4 */ lw $v0, %lo(ptr_j_char_data_buf)($v0) +.L7F0C1CF4: +/* 0F6824 7F0C1CF4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C1CF8: +/* 0F6828 7F0C1CF8 8FB00018 */ lw $s0, 0x18($sp) +/* 0F682C 7F0C1CFC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F6830 7F0C1D00 03E00008 */ jr $ra +/* 0F6834 7F0C1D04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_mission_text_bank(u32 param_1) +{ + *(u8 **)(&ptr_text + param_1) = _load_resource_named_to_membank((byte *)(&(&LnameX_lookuptable)[param_1].en_file)[j_text_trigger],1,0x100,4); +} +#else +GLOBAL_ASM( +.text +glabel load_mission_text_bank +/* 0F6838 7F0C1D08 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0F683C 7F0C1D0C 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0F6840 7F0C1D10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F6844 7F0C1D14 000478C0 */ sll $t7, $a0, 3 +/* 0F6848 7F0C1D18 AFA40018 */ sw $a0, 0x18($sp) +/* 0F684C 7F0C1D1C 0018C880 */ sll $t9, $t8, 2 +/* 0F6850 7F0C1D20 01F94021 */ addu $t0, $t7, $t9 +/* 0F6854 7F0C1D24 3C048005 */ lui $a0, %hi(LnameX_lookuptable) +/* 0F6858 7F0C1D28 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F685C 7F0C1D2C 00882021 */ addu $a0, $a0, $t0 +/* 0F6860 7F0C1D30 8C8484D4 */ lw $a0, %lo(LnameX_lookuptable)($a0) +/* 0F6864 7F0C1D34 24050001 */ li $a1, 1 +/* 0F6868 7F0C1D38 24060100 */ li $a2, 256 +/* 0F686C 7F0C1D3C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6870 7F0C1D40 24070004 */ li $a3, 4 +/* 0F6874 7F0C1D44 8FA90018 */ lw $t1, 0x18($sp) +/* 0F6878 7F0C1D48 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F687C 7F0C1D4C 3C018009 */ lui $at, %hi(ptr_text) +/* 0F6880 7F0C1D50 00095080 */ sll $t2, $t1, 2 +/* 0F6884 7F0C1D54 002A0821 */ addu $at, $at, $t2 +/* 0F6888 7F0C1D58 AC22C640 */ sw $v0, %lo(ptr_text)($at) +/* 0F688C 7F0C1D5C 03E00008 */ jr $ra +/* 0F6890 7F0C1D60 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void load_briefing_text_bank(int lnameID,undefined *target,int size) +{ + *(u8 **)(&ptr_text + lnameID) = _load_resource_named_to_buffer((byte *)(&(&LnameX_lookuptable)[lnameID].en_file)[j_text_trigger],1,target, size); +} +#else +GLOBAL_ASM( +.text +glabel load_briefing_text_bank +/* 0F6894 7F0C1D64 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0F6898 7F0C1D68 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0F689C 7F0C1D6C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F68A0 7F0C1D70 000478C0 */ sll $t7, $a0, 3 +/* 0F68A4 7F0C1D74 AFA40018 */ sw $a0, 0x18($sp) +/* 0F68A8 7F0C1D78 0018C880 */ sll $t9, $t8, 2 +/* 0F68AC 7F0C1D7C 00C03825 */ move $a3, $a2 +/* 0F68B0 7F0C1D80 01F94021 */ addu $t0, $t7, $t9 +/* 0F68B4 7F0C1D84 3C048005 */ lui $a0, %hi(LnameX_lookuptable) +/* 0F68B8 7F0C1D88 00A03025 */ move $a2, $a1 +/* 0F68BC 7F0C1D8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F68C0 7F0C1D90 AFA5001C */ sw $a1, 0x1c($sp) +/* 0F68C4 7F0C1D94 00882021 */ addu $a0, $a0, $t0 +/* 0F68C8 7F0C1D98 8C8484D4 */ lw $a0, %lo(LnameX_lookuptable)($a0) +/* 0F68CC 7F0C1D9C 0FC2F350 */ jal _load_resource_named_to_buffer +/* 0F68D0 7F0C1DA0 24050001 */ li $a1, 1 +/* 0F68D4 7F0C1DA4 8FA90018 */ lw $t1, 0x18($sp) +/* 0F68D8 7F0C1DA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F68DC 7F0C1DAC 3C018009 */ lui $at, %hi(ptr_text) +/* 0F68E0 7F0C1DB0 00095080 */ sll $t2, $t1, 2 +/* 0F68E4 7F0C1DB4 002A0821 */ addu $at, $at, $t2 +/* 0F68E8 7F0C1DB8 AC22C640 */ sw $v0, %lo(ptr_text)($at) +/* 0F68EC 7F0C1DBC 03E00008 */ jr $ra +/* 0F68F0 7F0C1DC0 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +void blank_text_bank(s32 textBank) { + (&ptr_text)[textBank] = 0; +} + + +u8 * get_textptr_for_textID(s32 slotID) +{ + u32 * textbank_ptr = (&ptr_text)[slotID >> 10]; /* get the text file bank ID index the text ptr table */ + u32 textslot_offset = textbank_ptr[slotID & 0x03FF]; /* load the textbank ptr table then get the slot's offset */ + + 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; +} diff --git a/src/game/lvl_text.h b/src/game/lvl_text.h new file mode 100644 index 0000000..c059aa9 --- /dev/null +++ b/src/game/lvl_text.h @@ -0,0 +1,11 @@ +#ifndef _LVL_TEXT_H_ +#define _LVL_TEXT_H_ +#include "ultra64.h" + +struct stringentry { + char *string[]; +}; + +extern s32 j_text_trigger; + +#endif diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c new file mode 100644 index 0000000..354f79b --- /dev/null +++ b/src/game/mainmenu.c @@ -0,0 +1,29739 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/spectrum.h" +#include "game/mainmenu.h" +#include "game/unk_093880.h" +#include "music.h" +#include "game/textrelated.h" +#include "game/lvl.h" +#include "game/bond.h" +#include "game/chrobjdata.h" +#include "joy.h" +struct point { + f32 x; + f32 y; + f32 z; +}; +// bss +//CODE.bss:800695A0 +f32 flt_CODE_bss_800695A0; +//CODE.bss:800695A4 +f32 flt_CODE_bss_800695A4; +//CODE.bss:800695A8 +f32 flt_CODE_bss_800695A8; +//CODE.bss:800695AC +f32 flt_CODE_bss_800695AC; +//CODE.bss:800695B0 +f32 flt_CODE_bss_800695B0; +//CODE.bss:800695B4 +f32 flt_CODE_bss_800695B4; +//CODE.bss:800695B8 +f32 flt_CODE_bss_800695B8; +//CODE.bss:800695BC +f32 flt_CODE_bss_800695BC; +//CODE.bss:800695C0 +f32 flt_CODE_bss_800695C0; +//CODE.bss:800695C4 +f32 flt_CODE_bss_800695C4; +//CODE.bss:800695C8 +f32 flt_CODE_bss_800695C8; +//CODE.bss:800695CC +f32 flt_CODE_bss_800695CC; +//CODE.bss:800695D0 +f32 flt_CODE_bss_800695D0; +//CODE.bss:800695D4 +f32 flt_CODE_bss_800695D4; +//CODE.bss:800695D8 +f32 flt_CODE_bss_800695D8; +//CODE.bss:800695DC +f32 flt_CODE_bss_800695DC; +//CODE.bss:800695E0 +f32 flt_CODE_bss_800695E0; +//CODE.bss:800695E4 +f32 flt_CODE_bss_800695E4; +//CODE.bss:800695E8 +f32 flt_CODE_bss_800695E8; +//CODE.bss:800695EC +f32 flt_CODE_bss_800695EC; +//CODE.bss:800695F0 +f32 flt_CODE_bss_800695F0; +//CODE.bss:800695F4 +f32 flt_CODE_bss_800695F4; +//CODE.bss:800695F8 +f32 flt_CODE_bss_800695F8; +//CODE.bss:800695FC +f32 flt_CODE_bss_800695FC; +//CODE.bss:80069600 +f32 flt_CODE_bss_80069600; +//CODE.bss:80069604 +f32 flt_CODE_bss_80069604; +//CODE.bss:80069608 +f32 flt_CODE_bss_80069608; +//CODE.bss:8006960C +f32 flt_CODE_bss_8006960C; +//CODE.bss:80069610 +f32 flt_CODE_bss_80069610; +//CODE.bss:80069614 +f32 flt_CODE_bss_80069614; +//CODE.bss:80069618 +f32 flt_CODE_bss_80069618; +//CODE.bss:8006961C +f32 flt_CODE_bss_8006961C; +//CODE.bss:80069620 +char dword_CODE_bss_80069620[0x30]; + +//CODE.bss:80069650 +u8 CHEAT_80069650; +//CODE.bss:80069651 +u8 cheat_available; +//CODE.bss:80069652 +u8 CHEAT_AVAILABLE_INVINCIBLE; +//CODE.bss:80069653 +u8 CHEAT_AVAILABLE_ALLGUNS; +//CODE.bss:80069654 +u8 CHEAT_80069654; +//CODE.bss:80069655 +u8 CHEAT_80069655; +//CODE.bss:80069656 +u8 CHEAT_80069656; +//CODE.bss:80069657 +u8 CHEAT_AVAILABLE_LINEMODE; +//CODE.bss:80069658 +u8 CHEAT_AVAILABLE_2X_HEALTH; +//CODE.bss:80069659 +u8 CHEAT_AVAILABLE_2X_ARMOR; +//CODE.bss:8006965A +u8 CHEAT_AVAILABLE_BOND_INVIS; +//CODE.bss:8006965B +u8 CHEAT_AVAILABLE_INFINITE_AMMO; +//CODE.bss:8006965C +u8 CHEAT_AVAILABLE_DK_MODE; +//CODE.bss:8006965D +u8 CHEAT_AVAILABLE_EXTRA_WEAPONS; +//CODE.bss:8006965E +u8 CHEAT_AVAILABLE_TINY_BOND; +//CODE.bss:8006965F +u8 CHEAT_AVAILABLE_PAINTBALL; +//CODE.bss:80069660 +u8 CHEAT_AVAILABLE_10X_HEALTH; +//CODE.bss:80069661 +u8 CHEAT_AVAILABLE_MAGNUM; +//CODE.bss:80069662 +u8 CHEAT_AVAILABLE_LASER; +//CODE.bss:80069663 +u8 CHEAT_AVAILABLE_GOLDENGUN; +//CODE.bss:80069664 +u8 CHEAT_AVAILABLE_SILVERPP7; +//CODE.bss:80069665 +u8 CHEAT_AVAILABLE_GOLDPP7; +//CODE.bss:80069666 +u8 CHEAT_AVAILABLE_MP_INVINCIBILITY; +//CODE.bss:80069667 +u8 CHEAT_AVAILABLE_NO_MP_RADAR; +//CODE.bss:80069668 +u8 CHEAT_AVAILABLE_TURBO; +//CODE.bss:80069669 +u8 CHEAT_AVAILABLE_DEBUG_MODE; +//CODE.bss:8006966A +u8 CHEAT_AVAILABLE_FAST_ANI; +//CODE.bss:8006966B +u8 CHEAT_AVAILABLE_SLOW_ANI; +//CODE.bss:8006966C +u8 CHEAT_AVAILABLE_ENMY_ROCKETS; +//CODE.bss:8006966D +u8 CHEAT_AVAILABLE_2X_ROCKET; +//CODE.bss:8006966E +u8 CHEAT_AVAILABLE_2X_GRENADE_LAUNCHER; +//CODE.bss:8006966F +u8 CHEAT_AVAILABLE_2X_RCP90; +//CODE.bss:80069670 +u8 CHEAT_AVAILABLE_2X_THROWING_KNIVES; +//CODE.bss:80069671 +u8 CHEAT_AVAILABLE_2X_HUNTING_KNIVES; +//CODE.bss:80069672 +u8 CHEAT_AVAILABLE_2X_LASER; +//CODE.bss:80069673 +u8 CHEAT_80069673; +//CODE.bss:80069674 +u8 CHEAT_80069674; +u8 CHEAT_80069675; +u8 CHEAT_80069676; +u8 CHEAT_80069677; +u8 CHEAT_80069678[0x28]; + +//CODE.bss:800696A0 +u8 cheat_activated; +//CODE.bss:800696A1 +u8 CHEAT_AVAILABLE_EXTRA_CHARS; +//CODE.bss:800696A2 +u8 cheat_activated_1; +//CODE.bss:800696A3 +u8 cheat_activated_2; +//CODE.bss:800696A4 +u8 CHEAT_AVAILABLE_MAX_AMMO; +//CODE.bss:800696A5 +u8 cheat_activated_4; +//CODE.bss:800696A6 +u8 cheat_activated_5; +//CODE.bss:800696A7 +u8 cheat_activated_6; +//CODE.bss:800696A8 +u8 cheat_activated_7; +//CODE.bss:800696A9 +u8 cheat_activated_8; +//CODE.bss:800696AA +u8 cheat_activated_9; +//CODE.bss:800696AB +u8 cheat_activated_10; +//CODE.bss:800696AC +u8 cheat_activated_11; +//CODE.bss:800696AD +u8 cheat_activated_12; +//CODE.bss:800696AE +u8 cheat_activated_13; +//CODE.bss:800696AF +u8 cheat_activated_14; +//CODE.bss:800696B0 +u8 cheat_activated_15; +//CODE.bss:800696B1 +u8 cheat_activated_16; +//CODE.bss:800696B2 +u8 cheat_activated_17; +//CODE.bss:800696B3 +u8 cheat_activated_18; +//CODE.bss:800696B4 +u8 cheat_activated_19; +//CODE.bss:800696B5 +u8 cheat_activated_20; +//CODE.bss:800696B6 +u8 cheat_activated_21; +//CODE.bss:800696B7 +u8 cheat_activated_22; +//CODE.bss:800696B8 +u8 cheat_activated_23; +//CODE.bss:800696B9 +u8 cheat_activated_24; +//CODE.bss:800696BA +u8 cheat_activated_25; +//CODE.bss:800696BB +u8 cheat_activated_26; +//CODE.bss:800696BC +u8 cheat_activated_27; +//CODE.bss:800696BD +u8 cheat_activated_28; +//CODE.bss:800696BE +u8 cheat_activated_29; +//CODE.bss:800696BF +u8 cheat_activated_30; +//CODE.bss:800696C0 +u8 cheat_activated_31; +//CODE.bss:800696C1 +u8 cheat_activated_32; +//CODE.bss:800696C2 +u8 cheat_activated_33; +//CODE.bss:800696C3 +u8 cheat_activated_34; +//CODE.bss:800696C4 +u8 cheat_activated_35; +//CODE.bss:800696C5 +u8 cheat_activated_36; +//CODE.bss:800696C6 +u8 cheat_activated_37; +//CODE.bss:800696C7 +u8 cheat_activated_38; +//CODE.bss:800696C8 +u8 cheat_activated_39; +//CODE.bss:800696C9 +u8 cheat_activated_40; +//CODE.bss:800696CA +u8 cheat_activated_41; +//CODE.bss:800696CB +u8 cheat_activated_42; +//CODE.bss:800696CC +u8 cheat_activated_43; +//CODE.bss:800696CD +u8 cheat_activated_44; +//CODE.bss:800696CE +u8 cheat_activated_45; +//CODE.bss:800696CF +u8 cheat_activated_46; +//CODE.bss:800696D0 +u8 cheat_activated_47; +//CODE.bss:800696D1 +u8 cheat_activated_48; +//CODE.bss:800696D2 +u8 cheat_activated_49; +//CODE.bss:800696D3 +u8 cheat_activated_50; +//CODE.bss:800696D4 +u8 cheat_activated_51; +//CODE.bss:800696D5 +u8 cheat_activated_52; +//CODE.bss:800696D6 +u8 cheat_activated_53; +//CODE.bss:800696D7 +u8 cheat_activated_54; +//CODE.bss:800696D8 +u8 cheat_activated_55; +//CODE.bss:800696D9 +u8 cheat_activated_56; +//CODE.bss:800696DA +u8 cheat_activated_57; +//CODE.bss:800696DB +u8 cheat_activated_58; +//CODE.bss:800696DC +u8 cheat_activated_59; +//CODE.bss:800696DD +u8 cheat_activated_60; +//CODE.bss:800696DE +u8 cheat_activated_61; +//CODE.bss:800696DF +u8 cheat_activated_62; +//CODE.bss:800696E0 +u8 cheat_activated_63; +//CODE.bss:800696E1 +u8 cheat_activated_64; +//CODE.bss:800696E2 +u8 cheat_activated_65; +//CODE.bss:800696E3 +u8 cheat_activated_66; +//CODE.bss:800696E4 +u8 cheat_activated_67; +//CODE.bss:800696E5 +u8 cheat_activated_68; +//CODE.bss:800696E6 +u8 cheat_activated_69; +//CODE.bss:800696E7 +u8 cheat_activated_70; +//CODE.bss:800696E8 +u8 cheat_activated_71; +//CODE.bss:800696E9 +u8 cheat_activated_72; +//CODE.bss:800696EA +u8 cheat_activated_73; +//CODE.bss:800696EB +u8 cheat_activated_74; +//CODE.bss:800696EC +u8 cheat_activated_75; +//CODE.bss:800696ED +u8 cheat_activated_76; +//CODE.bss:800696EE +u8 cheat_activated_77; +//CODE.bss:800696EF +u8 cheat_activated_78; + + +//CODE.bss:800696F0 +s32 array_favweapon[4][2]; + +//CODE.bss:80069710 +s32 mp_char_cur_select_player1; +//CODE.bss:80069714 +s32 mp_char_cur_select_player2; +//CODE.bss:80069718 +s32 mp_char_cur_select_player3; +//CODE.bss:8006971C +s32 mp_char_cur_select_player4; +//CODE.bss:80069720 +s32 mp_char_prev_select_player1; +//CODE.bss:80069724 +s32 mp_char_prev_select_player2; +//CODE.bss:80069728 +s32 mp_char_prev_select_player3; +//CODE.bss:8006972C +s32 mp_char_prev_select_player4; +//CODE.bss:80069730 +s32 dword_CODE_bss_80069730; +//CODE.bss:80069734 +s32 dword_CODE_bss_80069734; +//CODE.bss:80069738 +s32 dword_CODE_bss_80069738; +//CODE.bss:8006973C +s32 dword_CODE_bss_8006973C; +//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; +//CODE.bss:80069750 +s32 size_mp_select_image_player1; +//CODE.bss:80069754 +s32 size_mp_select_image_player2; +//CODE.bss:80069758 +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; +//CODE.bss:80069770 +s32 dword_CODE_bss_80069770; +//CODE.bss:80069774 +s32 dword_CODE_bss_80069774; +//CODE.bss:80069778 +s32 dword_CODE_bss_80069778; +//CODE.bss:8006977C +s32 current_mp_stage_highlighted; +//CODE.bss:80069780 +s32 dword_CODE_bss_80069780; +//CODE.bss:80069784 +s32 mission_difficulty_highlighted; +//CODE.bss:80069788 +s32 teamsize; +//CODE.bss:8006978C +s32 ptrbriefingdata; +//CODE.bss:80069790 +s32 newcheatunlocked; +//CODE.bss:80069794 +s32 highlight_enemy_reaction; +//CODE.bss:80069798 +s32 highlight_enemy_health; +//CODE.bss:8006979C +s32 highlight_enemy_accuracy; +//CODE.bss:800697A0 +s32 highlight_enemy_damage; + +//CODE.bss:800697A4 +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; +//CODE.bss:800697B8 +u32 controlstyle_player[4]; + +//CODE.bss:800697C8 +s32 highlight_players; +//CODE.bss:800697CC +s32 highlight_scenario; +//CODE.bss:800697D0 +s32 highlight_gameselect; +//CODE.bss:800697D4 +s32 highlight_gamelength; +//CODE.bss:800697D8 +s32 highlight_character; +//CODE.bss:800697DC +s32 highlight_weaponselect; +//CODE.bss:800697E0 +s32 highlight_health; +//CODE.bss:800697E4 +s32 highlight_controlstyle; +//CODE.bss:800697E8 +s32 highlight_aimadjustment; +//CODE.bss:800697EC .align 4 + +//CODE.bss:800697F0 +char dword_CODE_bss_800697F0[0x130]; + + +s32 current_menu = -1; +s32 menu_update = -1; +s32 maybe_prev_menu = -1; +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 selected_folder_num = 0; +s32 selected_folder_num_copy = 0; + +s32 gamemode = GAMEMODE_INTRO; +s32 selected_stage = -1; +s32 briefingpage = -1; +DIFFICULTY selected_difficulty = DIFFICULTY_MULTI; + +s32 append_cheat_sp = FALSE; +s32 append_cheat_mp = 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 folder_selection_screen_option_icon = 0; +s32 folder_selected_for_deletion = -1; +s32 folder_selected_for_deletion_choice = 1; + +s32 mission_failed_or_aborted = FALSE; +s32 mission_kia_flag = FALSE; + +s32 is_first_time_on_legal_screen = TRUE; +s32 is_first_time_on_main_menu = TRUE; + +s32 prev_keypresses = 0; +s32 D_8002A938 = 0; + +s32 maybe_is_in_menu = TRUE; +s32 screen_size = SCREEN_SIZE_320x240; + +s32 spectrum_related_flag = 0; +s32 is_emulating_spectrum = FALSE; + +s32 is_cheat_menu_available = FALSE; + +s32 ptr_logo_and_walletbond_DL = 0; +s32 ptr_menu_videobuffer = 0; +s32 something_legalscreen_constructor = 0; +s32 ptr_folder_object_instance = 0; +s32 set0_never_used = 0; +s32 set0_never_used_0 = 0; +s32 D_8002A968 = 0; +s32 D_8002A96C = 0; +struct rgba_val D_8002A970 = {0x96, 0x96, 0x96, 0}; +struct rgba_val D_8002A974 = {0x96, 0x96, 0x96, 0}; +struct rgba_val D_8002A978 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A97C = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A980 = {0x4D, 0x4D, 0x2E, 0}; +struct rgba_val D_8002A984 = {0}; +struct rgba_val D_8002A988 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A98C = {0xFF, 0xFF, 0xFF, 0}; +u32 D_8002A990 = 0; +u32 D_8002A994 = 0; +u32 D_8002A998 = 0; +u32 D_8002A99C = 0; + +f32 slider_007_mode_reaction = 0.0f; +f32 slider_007_mode_health = 1.0f; +f32 slider_007_mode_accuracy = 1.0f; +f32 slider_007_mode_damage = 1.0f; + +u32 D_8002A9B0 = 0xA0000000; +u32 D_8002A9B4 = 0x96000000; +u32 D_8002A9B8 = 0x28000000; +u32 D_8002A9BC = 0x8C000000; +struct point D_8002A9C0 = {0.0f, 0.0f, 0.0f}; + +struct legal_screen_text D_8002A9CC[] = { + {220, 30, 1, 1, TEXT(LTITLE, 0x07), 0}, + { 34, 83, 0, 1, TEXT(LTITLE, 0x08), 0}, + {226, 84, 0, 1, TEXT(LTITLE, 0x09), 0}, + {226, 97, 0, 1, TEXT(LTITLE, 0x0A), 0}, + {226, 110, 0, 1, TEXT(LTITLE, 0x0B), 0}, + {226, 122, 0, 1, TEXT(LTITLE, 0x0C), 0}, + {227, 134, 0, 1, TEXT(LTITLE, 0x0D), 0}, + {219, 211, 0, 1, TEXT(LTITLE, 0x0E), 0}, + { 60, 169, 0, 1, TEXT(LTITLE, 0x0F), 0}, + { 60, 201, 0, 1, TEXT(LTITLE, 0x10), 0}, + { 99, 266, 0, 1, TEXT(LTITLE, 0x11), 0}, + { 80, 280, 0, 1, TEXT(LTITLE, 0x12), 0} +}; + +u32 D_8002AABC = 0; + +u32 D_8002AAC0 = 1; +u32 D_8002AAC4 = 3; +u32 D_8002AAC8 = 0; +u32 D_8002AACC = 0; +u32 D_8002AAD0 = 0; +u32 D_8002AAD4 = 0; +u32 D_8002AAD8 = 0; +u32 D_8002AADC = 0; +u32 D_8002AAE0 = 0; +u32 D_8002AAE4 = 0; +u32 D_8002AAE8 = 0; +u32 D_8002AAEC = 0; +u32 D_8002AAF0 = 0; +u32 D_8002AAF4 = 0; +u32 D_8002AAF8 = 0; +u32 D_8002AAFC = 0; +u32 D_8002AB00 = 0; +u32 D_8002AB04 = 0; +u32 D_8002AB08 = 0; + +u32 D_8002AB0C = 1; +u32 D_8002AB10 = 3; +u32 D_8002AB14 = 0; +u32 D_8002AB18 = 0; +u32 D_8002AB1C = 0; +u32 D_8002AB20 = 0; +u32 D_8002AB24 = 0; +u32 D_8002AB28 = 0; +u32 D_8002AB2C = 0; +u32 D_8002AB30 = 0; +u32 D_8002AB34 = 0; +u32 D_8002AB38 = 0; +u32 D_8002AB3C = 0; +u32 D_8002AB40 = 0; +u32 D_8002AB44 = 0; +u32 D_8002AB48 = 0; +u32 D_8002AB4C = 0; +u32 D_8002AB50 = 0; +u32 D_8002AB54 = 0; + +u32 D_8002AB58 = 1; +u32 D_8002AB5C = 3; +u32 D_8002AB60 = 0; +u32 D_8002AB64 = 0; +u32 D_8002AB68 = 0; +u32 D_8002AB6C = 0; +u32 D_8002AB70 = 0; +u32 D_8002AB74 = 0; +u32 D_8002AB78 = 0; +u32 D_8002AB7C = 0; +u32 D_8002AB80 = 0; +u32 D_8002AB84 = 0; +u32 D_8002AB88 = 0; +u32 D_8002AB8C = 0; +u32 D_8002AB90 = 0; + +f32 D_8002AB94 = -900.0f; +f32 D_8002AB98 = 800.0f; +f32 D_8002AB9C = 0.0f; +f32 D_8002ABA0 = 1800.0f; +f32 D_8002ABA4 = 800.0f; +f32 D_8002ABA8 = 0.0f; +f32 D_8002ABAC = -1800.0f; +f32 D_8002ABB0 = -200.0f; +f32 D_8002ABB4 = 0.0f; +f32 D_8002ABB8 = 900.0f; +f32 D_8002ABBC = -200.0f; +f32 D_8002ABC0 = 0.0f; + +f32 folder_option_COPY_left_bound = 0.0f; +f32 folder_option_COPY_upper_bound = 0.0f; +f32 folder_option_COPY_right_bound = 0.0f; +f32 folder_option_COPY_lower_bound = 0.0f; +f32 folder_option_ERASE_left_bound = 0.0f; +f32 folder_option_ERASE_upper_bound = 0.0f; +f32 folder_option_ERASE_right_bound = 0.0f; +f32 folder_option_ERASE_lower_bound = 0.0f; + +struct mission_folder_setup mission_folder_setup_entries[] = { + {"1", TEXT(LTITLE, 0x78), 0, LEVELID_NONE, 0, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x79), 0, LEVELID_DAM, 0, MISSION_PART, 0, "UbriefdamZ"}, + {"ii", TEXT(LTITLE, 0x7A), 0, LEVELID_FACILITY, 0, MISSION_PART, 1, "UbriefarkZ"}, + {"iii", TEXT(LTITLE, 0x7B), 0, LEVELID_RUNWAY, 0, MISSION_PART, 2, "UbriefrunZ"}, + {"2", TEXT(LTITLE, 0x7C), 0, LEVELID_NONE, 0, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x7D), 0, LEVELID_SURFACE, 0, MISSION_PART, 3, "UbriefsevxZ"}, + {"ii", TEXT(LTITLE, 0x7E), 0, LEVELID_BUNKER1, 0, MISSION_PART, 4, "UbriefsevbunkerZ"}, + {"3", TEXT(LTITLE, 0x7F), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x80), TEXT(LTITLE, 0x81), LEVELID_SILO, 1, MISSION_PART, 5, "UbriefsiloZ"}, + {"4", TEXT(LTITLE, 0x82), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x83), 0, LEVELID_FRIGATE, 1, MISSION_PART, 6, "UbriefdestZ"}, + {"5", TEXT(LTITLE, 0x7C), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x7D), 0, LEVELID_SURFACE2, 1, MISSION_PART, 7, "UbriefsevxbZ"}, + {"ii", TEXT(LTITLE, 0x7E), 0, LEVELID_BUNKER2, 1, MISSION_PART, 8, "UbriefsevbZ"}, + {"6", TEXT(LTITLE, 0x84), 0, LEVELID_NONE, 2, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x85), TEXT(LTITLE, 0x86), LEVELID_STATUE, 2, MISSION_PART, 9, "UbriefstatueZ"}, + {"ii", TEXT(LTITLE, 0x87), TEXT(LTITLE, 0x88), LEVELID_ARCHIVES, 2, MISSION_PART, 0xA, "UbriefarchZ"}, + {"iii", TEXT(LTITLE, 0x89), 0, LEVELID_STREETS, 2, MISSION_PART, 0xB, "UbriefpeteZ"}, + {"iv", TEXT(LTITLE, 0x8A), 0, LEVELID_DEPOT, 2, MISSION_PART, 0xC, "UbriefdepoZ"}, + {"v", TEXT(LTITLE, 0x8B), 0, LEVELID_TRAIN, 2, MISSION_PART, 0xD, "UbrieftraZ"}, + {"7", TEXT(LTITLE, 0x8C), 0, LEVELID_NONE, 3, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x8D), 0, LEVELID_JUNGLE, 3, MISSION_PART, 0xE, "UbriefjunZ"}, + {"ii", TEXT(LTITLE, 0x8E), TEXT(LTITLE, 0x8F), LEVELID_CONTROL, 3, MISSION_PART, 0xF, "UbriefcontrolZ"}, + {"iii", TEXT(LTITLE, 0x90), TEXT(LTITLE, 0x91), LEVELID_CAVERNS, 3, MISSION_PART, 0x10, "UbriefcaveZ"}, + {"iv", TEXT(LTITLE, 0x92), TEXT(LTITLE, 0x93), LEVELID_CRADLE, 3, MISSION_PART, 0x11, "UbriefcradZ"}, + {"8", TEXT(LTITLE, 0x94), 0, LEVELID_NONE, 4, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x95), TEXT(LTITLE, 0x96), LEVELID_AZTEC, 4, MISSION_PART, 0x12, "UbriefaztZ"}, + {"9", TEXT(LTITLE, 0x97), 0, LEVELID_NONE, 4, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x98), TEXT(LTITLE, 0x99), LEVELID_EGYPT, 4, MISSION_PART, 0x13, "UbriefcrypZ"}, + {NULL, 0, 0, LEVELID_NONE, -1, MISSION_PART, -1, 0} +}; + +u32 unknown_folderselect_constructor = 0x14; +u32 D_8002AF30 = 0x14; +u32 D_8002AF34 = 0x14; +u32 unknown_folderselect_constructor_0 = 0x32; +u32 D_8002AF3C = 0x32; +u32 D_8002AF40 = 0x32; + +u32 unknown_folderselect[] = { + 0, 1, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0 +}; + +u32 D_8002AF84[] = { + 0, 1, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0 +}; + +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}; +u32 cursor_ypos_table_mission_select[] = {62, 131, 201, 270}; + +struct MP_game_length_settings multi_game_lengths[] = { + {TEXT(LTITLE, 0x2D), 0, 0, 0}, /* unlimited */ + {TEXT(LTITLE, 0x2E), 0, MINS_TO_TIMER60(5), 0}, /* 5 minutes */ + {TEXT(LTITLE, 0x2F), 0, MINS_TO_TIMER60(10), 0}, /* 10 minutes */ + {TEXT(LTITLE, 0x30), 0, MINS_TO_TIMER60(20), 0}, /* 20 minutes */ + {TEXT(LTITLE, 0x31), 0, 0, 5}, /* first to 5 points */ + {TEXT(LTITLE, 0x32), 0, 0, 10}, /* first to 10 points */ + {TEXT(LTITLE, 0x33), 0, 0, 20}, /* first to 20 points */ + {TEXT(LTITLE, 0x34), 0, 0, 0} /* last person alive wins */ +}; + +struct mp_stage_playercount mp_player_counts[] = { + {TEXT(LTITLE, 0x35), 2, 4}, + {TEXT(LTITLE, 0x36), 2, 4}, + {TEXT(LTITLE, 0x37), 2, 4}, + {TEXT(LTITLE, 0x38), 2, 4}, + {TEXT(LTITLE, 0x39), 2, 4}, + {TEXT(LTITLE, 0x3A), 4, 4}, + {TEXT(LTITLE, 0x3B), 4, 4}, + {TEXT(LTITLE, 0x3C), 3, 3} +}; + +struct mp_stage_setup multi_stage_setups[] = { + /* unlocked by default */ + {TEXT(LTITLE, 0x9A), TEXT(LTITLE, 0x9B), 16, LEVELID_NONE, -1, 1, 4}, + {TEXT(LTITLE, 0x9C), TEXT(LTITLE, 0x9D), 12, LEVELID_TEMPLE, -1, 1, 4}, + {TEXT(LTITLE, 0x9E), TEXT(LTITLE, 0x9F), 14, LEVELID_COMPLEX, -1, 1, 4}, + {TEXT(LTITLE, 0xA2), TEXT(LTITLE, 0xA3), 15, LEVELID_CAVES, -1, 1, 4}, + {TEXT(LTITLE, 0xA0), TEXT(LTITLE, 0xA1), 13, LEVELID_LIBRARY, -1, 1, 4}, + {TEXT(LTITLE, 0x10D), TEXT(LTITLE, 0x10E), 13, LEVELID_BASEMENT, -1, 1, 4}, + {TEXT(LTITLE, 0x10F), TEXT(LTITLE, 0x110), 13, LEVELID_STACK, -1, 1, 4}, + /* unlocked on level progression */ + {TEXT(LTITLE, 0xA4), TEXT(LTITLE, 0xA5), 04, LEVELID_FACILITY, SP_LEVEL_DAM, 1, 4}, + {TEXT(LTITLE, 0xA6), TEXT(LTITLE, 0xA7), 00, LEVELID_BUNKER2, SP_LEVEL_SURFACE2, 1, 3}, + {TEXT(LTITLE, 0xA8), TEXT(LTITLE, 0xA9), 02, LEVELID_ARCHIVES, SP_LEVEL_STATUE, 1, 3}, + {TEXT(LTITLE, 0xAA), TEXT(LTITLE, 0xAB), 01, LEVELID_CAVERNS, SP_LEVEL_CONTROL, 1, 3}, + {TEXT(LTITLE, 0xAC), TEXT(LTITLE, 0xAD), 10, LEVELID_EGYPT, SP_LEVEL_AZTEC, 1, 2} +}; + +u32 num_chars_selectable_mp = 8; + +#ifdef VERSION_US +struct MP_selectable_chars mp_chr_setup[] = { + {TEXT(LTITLE, 0xB8), MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBF), FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998}, + {TEXT(LTITLE, 0xBC), MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBE), FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBB), MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778}, + {TEXT(LTITLE, 0xBA), MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702}, + {TEXT(LTITLE, 0xBD), MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999}, + {TEXT(LTITLE, 0xB9), MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0}, + {TEXT(LTITLE, 0xC2), FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xC1), MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199}, + {TEXT(LTITLE, 0xC3), MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001}, + {TEXT(LTITLE, 0xC0), MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xFD), MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0}, + {TEXT(LTITLE, 0xFC), MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0}, + {TEXT(LTITLE, 0x107), MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0}, + {TEXT(LTITLE, 0x107), FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0}, + {TEXT(LTITLE, 0x100), MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0}, + {TEXT(LTITLE, 0xFE), MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0}, + {TEXT(LTITLE, 0x101), MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0}, + {TEXT(LTITLE, 0x106), MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0}, + {TEXT(LTITLE, 0xFB), MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0}, + {TEXT(LTITLE, 0x108), FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0}, + {TEXT(LTITLE, 0x102), MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0}, + {TEXT(LTITLE, 0x103), MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0}, + {TEXT(LTITLE, 0x102), MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0}, + {TEXT(LTITLE, 0x104), MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0}, + {TEXT(LTITLE, 0xFA), MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0}, + {TEXT(LTITLE, 0xFF), MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0}, + {TEXT(LTITLE, 0x105), MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0}, + {TEXT(LTITLE, 0x105), FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0}, + {TEXT(LTITLE, 0xC4), FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998}, + {TEXT(LTITLE, 0xC5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446}, + {TEXT(LTITLE, 0xC6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446}, + {TEXT(LTITLE, 0xC7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446}, + {TEXT(LTITLE, 0xC8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446}, + {TEXT(LTITLE, 0xC9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446}, + {TEXT(LTITLE, 0xCA), FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446}, + {TEXT(LTITLE, 0xCB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446}, + {TEXT(LTITLE, 0xCC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446}, + {TEXT(LTITLE, 0xCD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446}, + {TEXT(LTITLE, 0xCE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446}, + {TEXT(LTITLE, 0xCF), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446}, + {TEXT(LTITLE, 0xD0), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446}, + {TEXT(LTITLE, 0xD1), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446}, + {TEXT(LTITLE, 0xD2), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446}, + {TEXT(LTITLE, 0xD3), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446}, + {TEXT(LTITLE, 0xD4), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446}, + {TEXT(LTITLE, 0xD5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446}, + {TEXT(LTITLE, 0xD6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446}, + {TEXT(LTITLE, 0xD7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446}, + {TEXT(LTITLE, 0xD8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446}, + {TEXT(LTITLE, 0xD9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446}, + {TEXT(LTITLE, 0xDA), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446}, + {TEXT(LTITLE, 0xDB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446}, + {TEXT(LTITLE, 0xDC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446}, + {TEXT(LTITLE, 0xDD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446}, + {TEXT(LTITLE, 0xDE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446}, + {TEXT(LTITLE, 0xDF), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446}, + {TEXT(LTITLE, 0xE0), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446}, + {TEXT(LTITLE, 0xE1), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446}, + {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} +}; +#endif +#ifdef VERSION_JP +struct MP_selectable_chars mp_chr_setup[] = { + {TEXT(LTITLE, 0xB8), MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBF), FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998}, + {TEXT(LTITLE, 0xBC), MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBE), FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBB), MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778}, + {TEXT(LTITLE, 0xBA), MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702}, + {TEXT(LTITLE, 0xBD), MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999}, + {TEXT(LTITLE, 0xB9), MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0}, + {TEXT(LTITLE, 0xC2), FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xC1), MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199}, + {TEXT(LTITLE, 0xC3), MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001}, + {TEXT(LTITLE, 0xC0), MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0x11F), MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0}, + {TEXT(LTITLE, 0x120), MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0}, + {TEXT(LTITLE, 0x121), MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0}, + {TEXT(LTITLE, 0x121), FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0}, + {TEXT(LTITLE, 0x122), MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0}, + {TEXT(LTITLE, 0x123), MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0}, + {TEXT(LTITLE, 0x124), MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0}, + {TEXT(LTITLE, 0x125), MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0}, + {TEXT(LTITLE, 0x126), MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0}, + {TEXT(LTITLE, 0x127), FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0}, + {TEXT(LTITLE, 0x129), MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0}, + {TEXT(LTITLE, 0x12A), MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0}, + {TEXT(LTITLE, 0x12B), MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0}, + {TEXT(LTITLE, 0x12C), MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0}, + {TEXT(LTITLE, 0x12D), MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0}, + {TEXT(LTITLE, 0x12D), FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0}, + {TEXT(LTITLE, 0xC4), FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998}, + {TEXT(LTITLE, 0xC5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446}, + {TEXT(LTITLE, 0xC6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446}, + {TEXT(LTITLE, 0xC7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446}, + {TEXT(LTITLE, 0xC8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446}, + {TEXT(LTITLE, 0xC9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446}, + {TEXT(LTITLE, 0xCA), FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446}, + {TEXT(LTITLE, 0xCB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446}, + {TEXT(LTITLE, 0xCC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446}, + {TEXT(LTITLE, 0xCD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446}, + {TEXT(LTITLE, 0xCE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446}, + {TEXT(LTITLE, 0xCF), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446}, + {TEXT(LTITLE, 0xD0), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446}, + {TEXT(LTITLE, 0xD1), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446}, + {TEXT(LTITLE, 0xD2), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446}, + {TEXT(LTITLE, 0xD3), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446}, + {TEXT(LTITLE, 0xD4), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446}, + {TEXT(LTITLE, 0xD5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446}, + {TEXT(LTITLE, 0xD6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446}, + {TEXT(LTITLE, 0xD7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446}, + {TEXT(LTITLE, 0xD8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446}, + {TEXT(LTITLE, 0xD9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446}, + {TEXT(LTITLE, 0xDA), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446}, + {TEXT(LTITLE, 0xDB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446}, + {TEXT(LTITLE, 0xDC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446}, + {TEXT(LTITLE, 0xDD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446}, + {TEXT(LTITLE, 0xDE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446}, + {TEXT(LTITLE, 0xDF), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446}, + {TEXT(LTITLE, 0xE0), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446}, + {TEXT(LTITLE, 0xE1), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446}, + {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} +}; +#endif + +struct MP_handicap_menu MP_handicap_table[] = { + {TEXT(LTITLE, 0x3D), 0, 10.0}, + {TEXT(LTITLE, 0x3E), 0, 2.8560996}, + {TEXT(LTITLE, 0x3F), 0, 2.1969998}, + {TEXT(LTITLE, 0x40), 0, 1.6899998}, + {TEXT(LTITLE, 0x41), 0, 1.3}, + {TEXT(LTITLE, 0x42), 0, 1.0}, + {TEXT(LTITLE, 0x43), 0, 0.76923078}, + {TEXT(LTITLE, 0x44), 0, 0.59171599}, + {TEXT(LTITLE, 0x45), 0, 0.45516616}, + {TEXT(LTITLE, 0x46), 0, 0.35012782}, + {TEXT(LTITLE, 0x47), 0, 0.1} +}; + +struct MP_controller_configuration_menu MP_controller_configuration_table[] = { + {0x9D, 0x15, 0, 1}, + {0x9D, 0x16, 1, 1}, + {0x9D, 0x17, 2, 1}, + {0x9D, 0x18, 3, 1}, + {0x9D, 0x19, 4, 2}, + {0x9D, 0x1A, 5, 2}, + {0x9D, 0x1B, 6, 2}, + {0x9D, 0x1C, 7, 2} +}; + +struct MP_sight_aim_settings mp_sight_adjust_table[] = { + {0x9C, 0x48, 0, 0}, + {0x9C, 0x49, 1, 0}, + {0x9C, 0x4A, 0, 1}, + {0x9C, 0x4B, 1, 1} +}; + +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 MP_stage_selected = MP_STAGE_TEMPLE; +s32 game_length = 2; +s32 aim_sight_adjustment = 3; +s32 scenario = SCENARIO_NORMAL; +s32 unlock_stage_select = 1; +s32 unlock_game_length = 1; +s32 unlock_chars = 1; +s32 unlock_weapon_select = 1; +s32 unlock_handicap = 1; +s32 unlock_control_style = 1; +s32 unlock_aim_sight = 1; + +u32 D_8002B560 = 0; + +struct solo_target_times solo_target_time_array[] = { + {0, 160, 0}, + {0, 0, 125}, + {300, 0, 0}, + {0, 210, 0}, + {0, 0, 240}, + {180, 0, 0}, + {0, 270, 0}, + {0, 0, 255}, + {90, 0, 0}, + {0, 195, 0}, + {0, 0, 80}, + {105, 0, 0}, + {0, 100, 0}, + {0, 0, 325}, + {225, 0, 0}, + {0, 600, 0}, + {0, 0, 570}, + {135, 0, 0}, + {0, 540, 0}, + {0, 0, 360} +}; + +u32 D_8002B5DC = 0; +u32 D_8002B5E0 = 0; + + +u32 MP_menu_selected_option = 0; +u32 do_not_play_intro_movie = 0; +u32 randomly_selected_intro_animation = 0; +u32 intro_animation_count = 0; +u32 objinstance = 0; +u32 ptrobjinstance = 0; +u32 full_actor_intro = 0; + +struct intro_char intro_char_table[] = { + {BODY_Tuxedo, 0x4E, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xE4), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Special_Operations_Uniform, 0x4A, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xE8), TEXT(LTITLE, 0xE9), 0, 0}, + {BODY_Natalya_Skirt, 0xFFFFFFFF, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xEA), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Trevelyan_006, 0xFFFFFFFF, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xEB), TEXT(LTITLE, 0xEC), 0, 0}, + {BODY_Xenia, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xED), TEXT(LTITLE, 0xEE), 0, 0}, + {BODY_Ourumov, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xEF), TEXT(LTITLE, 0xF0), 0, 0}, + {BODY_Boris, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF1), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Valentin_, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF2), TEXT(LTITLE, 0xF3), 0, 0}, + {BODY_Siberian_Guard_1_Mishkin, 0x45, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF4), TEXT(LTITLE, 0xF5), 0, 0}, + {BODY_Russian_Soldier, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFD), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Russian_Infantry, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFC), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Scientist_1_Male, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x107), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Scientist_2_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x107), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Russian_Commandant, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x100), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Janus_Marine, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFE), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Naval_Officer, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x101), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Helicopter_Pilot, 0xFFFFFFFF, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x106), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_St_Petersburg_Guard, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFB), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_1_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_2, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_3, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_4, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Guard_1_Mishkin, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x102), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Arctic_Commando, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x103), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Guard_2, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x102), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Special_Forces, 0xFFFFFFFF, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x104), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Jungle_Commando, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFA), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Janus_Special_Forces, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFF), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Moonraker_Elite_1_Male, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x105), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Moonraker_Elite_2_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x105), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Mayday, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF6), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Jaws, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF7), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Oddjob, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF8), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Baron_Samedi, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF9), TEXT(LTITLE, 0xE3), 0, 0}, + {0xFFFFFFFF, 0, 0, 0, 0, 0, 0} +}; + +struct intro_animation intro_animation_table[] = { + {0x3F, 98.0, 1.0, 0}, + {0x42, 21.0, 1.0, 1}, + {0x43, 26.0, 1.0, 1}, + {0x48, 0.0, 1.0, 1}, + {0x4C, 0.0, 1.0, 1}, + {0x59, 0.0, 0.91000003, 1}, + {0x62, 31.0, 1.0, 1}, + {0x63, 0.0, 1.0, 1}, + {0x64, 0.0, 1.0, 1}, + {0x66, 0.0, 1.0, 1}, + {0x67, 0.0, 1.0, 1}, + {0x99, 248.0, 1.0, 0}, + {0xA3, 150.0, 1.0, 0}, + {0x46, 0.0, 0.89999998, 1}, + {0x4A, 0.0, 0.89999998, 1}, + {0x50, 0.0, 0.89999998, 1}, + {0x61, 51.0, 1.0, 1}, + {0x96, 0.0, 0.89999998, 1}, + {0x97, 0.0, 0.89999998, 1}, + {0x98, 37.0, 1.0, 2}, + {0xA1, 300.0, 1.0, 2}, + {0xA0, 120.0, 1.0, 2}, + {0xFFFFFFFF, 0.0, 0.0, 0} +}; + +u32 D_8002BA2C = 0; +u32 D_8002BA30 = 0; +u32 D_8002BA34 = 0; + +PROPS random_rifles_in_intro[] = +{ + PROP_chrkalash, + PROP_chrm16, + PROP_chrfnp90, + PROP_chrautoshot, + PROP_chrgrenadelaunch, + PROP_chrsniperrifle +}; + +PROPS random_pistols_in_intro[] = +{ + PROP_chrwppk, + PROP_chrwppksil, + PROP_chrskorpion, + PROP_chruzi, + PROP_chruzi, + PROP_chrtt33, + PROP_chrtt33, + PROP_chrruger, + PROP_chrlaser, + PROP_chrgolden +}; + +f32 D_8002BA78 = 0.0f; +f32 D_8002BA7C = 0.0f; +f32 D_8002BA80 = 1.0f; + +f32 D_8002BA84 = 0.0f; +f32 D_8002BA88 = 0.0f; +f32 D_8002BA8C = 0.0f; + +f32 D_8002BA90 = 0.0f; +f32 D_8002BA94 = 1.0f; +f32 D_8002BA98 = 0.0f; + +u32 D_8002BA9C = 0; +u32 D_8002BAA0 = 1; +u32 D_8002BAA4 = 3; +u32 D_8002BAA8 = 0; +u32 D_8002BAAC = 0; +u32 D_8002BAB0 = 0; +u32 D_8002BAB4 = 0; +u32 D_8002BAB8 = 0; +u32 D_8002BABC = 0; +u32 D_8002BAC0 = 0; +u32 D_8002BAC4 = 0; +u32 D_8002BAC8 = 0; +u32 D_8002BACC = 0; +u32 D_8002BAD0 = 0; +u32 D_8002BAD4 = 0; +u32 D_8002BAD8 = 0; +u32 D_8002BADC = 0; + +f32 D_8002BAE0 = 40.0f; +f32 D_8002BAE4 = 25.0f; +u32 D_8002BAE8 = 0; +u32 D_8002BAEC = 1; + +u16 color_palette_entries_50_percent[] = {1, 0x1F, 0x3C1, 0x3DF, 0x7801, 0x781F, 0x7BC1, 0x7BDF}; + + + + + + +#ifdef NONMATCHING +s32 write_text_at_abs_coord(s32 arg12, s32 arg13, s32 arg14, s32 arg15, s32 arg16, s32 arg17, s32 arg18) { + // Node 0 + if (j_text_trigger != 0) + { + // Node 1 + jp_text_write_stuff(arg12, arg13, arg14, (s32) ((((D_8002A9B0 << 0x18) | (D_8002A9B4 << 0x10)) | (D_8002A9B8 << 8)) | D_8002A9BC), arg15, arg16, arg17, arg18); + return; + // (possible return value: en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18)) + } + // Node 2 + en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18); + return; + // (possible return value: en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18)) +} +#else +GLOBAL_ASM( +.text +glabel write_text_at_abs_coord +/* 03E290 7F009760 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 03E294 7F009764 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 03E298 7F009768 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03E29C 7F00976C AFBF0034 */ sw $ra, 0x34($sp) +/* 03E2A0 7F009770 11C00021 */ beqz $t6, .L7F0097F8 +/* 03E2A4 7F009774 8FAD0048 */ lw $t5, 0x48($sp) +/* 03E2A8 7F009778 3C088003 */ lui $t0, %hi(D_8002A9B0) +/* 03E2AC 7F00977C 3C0A8003 */ lui $t2, %hi(D_8002A9B4) +/* 03E2B0 7F009780 914AA9B4 */ lbu $t2, %lo(D_8002A9B4)($t2) +/* 03E2B4 7F009784 9108A9B0 */ lbu $t0, %lo(D_8002A9B0)($t0) +/* 03E2B8 7F009788 8FB8004C */ lw $t8, 0x4c($sp) +/* 03E2BC 7F00978C 3C0D8003 */ lui $t5, %hi(D_8002A9B8) +/* 03E2C0 7F009790 91ADA9B8 */ lbu $t5, %lo(D_8002A9B8)($t5) +/* 03E2C4 7F009794 8FAF0048 */ lw $t7, 0x48($sp) +/* 03E2C8 7F009798 000A5C00 */ sll $t3, $t2, 0x10 +/* 03E2CC 7F00979C 00084E00 */ sll $t1, $t0, 0x18 +/* 03E2D0 7F0097A0 AFB80014 */ sw $t8, 0x14($sp) +/* 03E2D4 7F0097A4 8FB90050 */ lw $t9, 0x50($sp) +/* 03E2D8 7F0097A8 3C188003 */ lui $t8, %hi(D_8002A9BC) +/* 03E2DC 7F0097AC 012B6025 */ or $t4, $t1, $t3 +/* 03E2E0 7F0097B0 9318A9BC */ lbu $t8, %lo(D_8002A9BC)($t8) +/* 03E2E4 7F0097B4 000D7200 */ sll $t6, $t5, 8 +/* 03E2E8 7F0097B8 AFAF0010 */ sw $t7, 0x10($sp) +/* 03E2EC 7F0097BC 8FAB0060 */ lw $t3, 0x60($sp) +/* 03E2F0 7F0097C0 8FA9005C */ lw $t1, 0x5c($sp) +/* 03E2F4 7F0097C4 8FA80054 */ lw $t0, 0x54($sp) +/* 03E2F8 7F0097C8 8FAA0058 */ lw $t2, 0x58($sp) +/* 03E2FC 7F0097CC 018E7825 */ or $t7, $t4, $t6 +/* 03E300 7F0097D0 AFB90018 */ sw $t9, 0x18($sp) +/* 03E304 7F0097D4 01F8C825 */ or $t9, $t7, $t8 +/* 03E308 7F0097D8 AFB9001C */ sw $t9, 0x1c($sp) +/* 03E30C 7F0097DC AFAB002C */ sw $t3, 0x2c($sp) +/* 03E310 7F0097E0 AFA90028 */ sw $t1, 0x28($sp) +/* 03E314 7F0097E4 AFA80020 */ sw $t0, 0x20($sp) +/* 03E318 7F0097E8 0FC2B9BB */ jal jp_text_write_stuff +/* 03E31C 7F0097EC AFAA0024 */ sw $t2, 0x24($sp) +/* 03E320 7F0097F0 10000010 */ b .L7F009834 +/* 03E324 7F0097F4 00402025 */ move $a0, $v0 +.L7F0097F8: +/* 03E328 7F0097F8 8FAC004C */ lw $t4, 0x4c($sp) +/* 03E32C 7F0097FC 8FAE0050 */ lw $t6, 0x50($sp) +/* 03E330 7F009800 8FAF0054 */ lw $t7, 0x54($sp) +/* 03E334 7F009804 8FB80058 */ lw $t8, 0x58($sp) +/* 03E338 7F009808 8FB9005C */ lw $t9, 0x5c($sp) +/* 03E33C 7F00980C 8FA80060 */ lw $t0, 0x60($sp) +/* 03E340 7F009810 AFAD0010 */ sw $t5, 0x10($sp) +/* 03E344 7F009814 AFAC0014 */ sw $t4, 0x14($sp) +/* 03E348 7F009818 AFAE0018 */ sw $t6, 0x18($sp) +/* 03E34C 7F00981C AFAF001C */ sw $t7, 0x1c($sp) +/* 03E350 7F009820 AFB80020 */ sw $t8, 0x20($sp) +/* 03E354 7F009824 AFB90024 */ sw $t9, 0x24($sp) +/* 03E358 7F009828 0FC2B6AF */ jal en_text_write_stuff +/* 03E35C 7F00982C AFA80028 */ sw $t0, 0x28($sp) +/* 03E360 7F009830 00402025 */ move $a0, $v0 +.L7F009834: +/* 03E364 7F009834 8FBF0034 */ lw $ra, 0x34($sp) +/* 03E368 7F009838 27BD0038 */ addiu $sp, $sp, 0x38 +/* 03E36C 7F00983C 00801025 */ move $v0, $a0 +/* 03E370 7F009840 03E00008 */ jr $ra +/* 03E374 7F009844 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 check_if_cheat_available(s32 cheat) +{ + s32 uVar1; + save_file *folder; + u32 uVar2; + u32 BVar3; + + switch(cheat) { + case 1: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 0xd: + case 0x10: + case 0x16: + case 0x19: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2a: + case 0x2b: + case 0x2c: + case 0x2d: + case 0x2e: + case 0x2f: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4a: + uVar1 = 0; + break; + case 2: + folder = getEEPROMforFoldernum(selected_folder_num); + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),1); + break; + case 3: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x13); + break; + case 10: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),10); + break; + case 0xb: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xf); + break; + case 0xc: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),2); + break; + case 0xe: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),7); + break; + case 0xf: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0); + break; + case 0x11: + uVar2 = check_cradle_completed_in_folder(selected_folder_num); + uVar1 = SEXT48((int)uVar2); + break; + case 0x12: + uVar2 = check_aztec_completed_in_folder_secret_00(selected_folder_num); + uVar1 = SEXT48((int)uVar2); + break; + case 0x13: + BVar3 = check_egypt_completed_in_folder_00(selected_folder_num); + uVar1 = SEXT48((int)BVar3); + break; + case 0x14: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xd); + break; + case 0x15: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x11); + break; + case 0x17: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),6); + break; + case 0x18: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),5); + break; + case 0x1a: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),9); + break; + case 0x1b: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xc); + break; + case 0x1c: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xb); + break; + case 0x1d: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),4); + break; + case 0x1e: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),3); + break; + case 0x1f: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x10); + break; + case 0x20: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),8); + break; + case 0x21: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xe); + break; + case 0x22: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x12); + break; + default: + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + return uVar1; +} +#else +GLOBAL_ASM( +.late_rodata + +glabel cheat_available_table + .word default_nonmenucheats + .word cheat_invincible + .word cheat_allguns + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word cheat_invisible + .word cheat_infinite_ammo + .word cheat_dk_mode + .word default_nonmenucheats + .word cheat_tinybond + .word cheat_paintball + .word default_nonmenucheats + .word cheat_unlockcradle + .word cheat_unlockaztec + .word cheat_unlockegypt + .word cheat_silverpp7 + .word cheat_goldpp7 + .word default_nonmenucheats + .word cheat_noradar + .word cheat_turbo + .word default_nonmenucheats + .word cheat_fast + .word cheat_slow + .word cheat_enemyrockets + .word cheat_2xrocket + .word cheat_2xgrenadelauncher + .word cheat_2xrcp90 + .word cheat_2xthrowingknife + .word cheat_2xhuntingknife + .word cheat_2xlaser + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + /*HACK FIXME*/ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ + +.text +glabel check_if_cheat_available +/* 03E378 7F009848 248EFFFF */ addiu $t6, $a0, -1 +/* 03E37C 7F00984C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03E380 7F009850 2DC1004A */ sltiu $at, $t6, 0x4a +/* 03E384 7F009854 102000B8 */ beqz $at, .L7F009B38 +/* 03E388 7F009858 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E38C 7F00985C 000E7080 */ sll $t6, $t6, 2 +/* 03E390 7F009860 3C018005 */ lui $at, %hi(cheat_available_table) +/* 03E394 7F009864 002E0821 */ addu $at, $at, $t6 +/* 03E398 7F009868 8C2E18A0 */ lw $t6, %lo(cheat_available_table)($at) +/* 03E39C 7F00986C 01C00008 */ jr $t6 +/* 03E3A0 7F009870 00000000 */ nop +default_nonmenucheats: +/* 03E3A4 7F009874 100000B2 */ b .L7F009B40 +/* 03E3A8 7F009878 00001025 */ move $v0, $zero +cheat_invincible: +/* 03E3AC 7F00987C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3B0 7F009880 0FC07771 */ jal get_save_folder_ptr +/* 03E3B4 7F009884 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3B8 7F009888 00402025 */ move $a0, $v0 +/* 03E3BC 7F00988C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E3C0 7F009890 24050001 */ li $a1, 1 +/* 03E3C4 7F009894 100000AB */ b .L7F009B44 +/* 03E3C8 7F009898 8FBF0014 */ lw $ra, 0x14($sp) +cheat_allguns: +/* 03E3CC 7F00989C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3D0 7F0098A0 0FC07771 */ jal get_save_folder_ptr +/* 03E3D4 7F0098A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3D8 7F0098A8 00402025 */ move $a0, $v0 +/* 03E3DC 7F0098AC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E3E0 7F0098B0 24050013 */ li $a1, 19 +/* 03E3E4 7F0098B4 100000A3 */ b .L7F009B44 +/* 03E3E8 7F0098B8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_noradar: +/* 03E3EC 7F0098BC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3F0 7F0098C0 0FC07771 */ jal get_save_folder_ptr +/* 03E3F4 7F0098C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3F8 7F0098C8 00402025 */ move $a0, $v0 +/* 03E3FC 7F0098CC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E400 7F0098D0 24050006 */ li $a1, 6 +/* 03E404 7F0098D4 1000009B */ b .L7F009B44 +/* 03E408 7F0098D8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_fast: +/* 03E40C 7F0098DC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E410 7F0098E0 0FC07771 */ jal get_save_folder_ptr +/* 03E414 7F0098E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E418 7F0098E8 00402025 */ move $a0, $v0 +/* 03E41C 7F0098EC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E420 7F0098F0 24050009 */ li $a1, 9 +/* 03E424 7F0098F4 10000093 */ b .L7F009B44 +/* 03E428 7F0098F8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_invisible: +/* 03E42C 7F0098FC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E430 7F009900 0FC07771 */ jal get_save_folder_ptr +/* 03E434 7F009904 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E438 7F009908 00402025 */ move $a0, $v0 +/* 03E43C 7F00990C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E440 7F009910 2405000A */ li $a1, 10 +/* 03E444 7F009914 1000008B */ b .L7F009B44 +/* 03E448 7F009918 8FBF0014 */ lw $ra, 0x14($sp) +cheat_infinite_ammo: +/* 03E44C 7F00991C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E450 7F009920 0FC07771 */ jal get_save_folder_ptr +/* 03E454 7F009924 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E458 7F009928 00402025 */ move $a0, $v0 +/* 03E45C 7F00992C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E460 7F009930 2405000F */ li $a1, 15 +/* 03E464 7F009934 10000083 */ b .L7F009B44 +/* 03E468 7F009938 8FBF0014 */ lw $ra, 0x14($sp) +cheat_dk_mode: +/* 03E46C 7F00993C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E470 7F009940 0FC07771 */ jal get_save_folder_ptr +/* 03E474 7F009944 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E478 7F009948 00402025 */ move $a0, $v0 +/* 03E47C 7F00994C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E480 7F009950 24050002 */ li $a1, 2 +/* 03E484 7F009954 1000007B */ b .L7F009B44 +/* 03E488 7F009958 8FBF0014 */ lw $ra, 0x14($sp) +cheat_tinybond: +/* 03E48C 7F00995C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E490 7F009960 0FC07771 */ jal get_save_folder_ptr +/* 03E494 7F009964 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E498 7F009968 00402025 */ move $a0, $v0 +/* 03E49C 7F00996C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4A0 7F009970 24050007 */ li $a1, 7 +/* 03E4A4 7F009974 10000073 */ b .L7F009B44 +/* 03E4A8 7F009978 8FBF0014 */ lw $ra, 0x14($sp) +cheat_slow: +/* 03E4AC 7F00997C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4B0 7F009980 0FC07771 */ jal get_save_folder_ptr +/* 03E4B4 7F009984 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4B8 7F009988 00402025 */ move $a0, $v0 +/* 03E4BC 7F00998C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4C0 7F009990 2405000C */ li $a1, 12 +/* 03E4C4 7F009994 1000006B */ b .L7F009B44 +/* 03E4C8 7F009998 8FBF0014 */ lw $ra, 0x14($sp) +cheat_paintball: +/* 03E4CC 7F00999C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4D0 7F0099A0 0FC07771 */ jal get_save_folder_ptr +/* 03E4D4 7F0099A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4D8 7F0099A8 00402025 */ move $a0, $v0 +/* 03E4DC 7F0099AC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4E0 7F0099B0 00002825 */ move $a1, $zero +/* 03E4E4 7F0099B4 10000063 */ b .L7F009B44 +/* 03E4E8 7F0099B8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_silverpp7: +/* 03E4EC 7F0099BC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4F0 7F0099C0 0FC07771 */ jal get_save_folder_ptr +/* 03E4F4 7F0099C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4F8 7F0099C8 00402025 */ move $a0, $v0 +/* 03E4FC 7F0099CC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E500 7F0099D0 2405000D */ li $a1, 13 +/* 03E504 7F0099D4 1000005B */ b .L7F009B44 +/* 03E508 7F0099D8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_goldpp7: +/* 03E50C 7F0099DC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E510 7F0099E0 0FC07771 */ jal get_save_folder_ptr +/* 03E514 7F0099E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E518 7F0099E8 00402025 */ move $a0, $v0 +/* 03E51C 7F0099EC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E520 7F0099F0 24050011 */ li $a1, 17 +/* 03E524 7F0099F4 10000053 */ b .L7F009B44 +/* 03E528 7F0099F8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_enemyrockets: +/* 03E52C 7F0099FC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E530 7F009A00 0FC07771 */ jal get_save_folder_ptr +/* 03E534 7F009A04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E538 7F009A08 00402025 */ move $a0, $v0 +/* 03E53C 7F009A0C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E540 7F009A10 2405000B */ li $a1, 11 +/* 03E544 7F009A14 1000004B */ b .L7F009B44 +/* 03E548 7F009A18 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xrocket: +/* 03E54C 7F009A1C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E550 7F009A20 0FC07771 */ jal get_save_folder_ptr +/* 03E554 7F009A24 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E558 7F009A28 00402025 */ move $a0, $v0 +/* 03E55C 7F009A2C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E560 7F009A30 24050004 */ li $a1, 4 +/* 03E564 7F009A34 10000043 */ b .L7F009B44 +/* 03E568 7F009A38 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xgrenadelauncher: +/* 03E56C 7F009A3C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E570 7F009A40 0FC07771 */ jal get_save_folder_ptr +/* 03E574 7F009A44 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E578 7F009A48 00402025 */ move $a0, $v0 +/* 03E57C 7F009A4C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E580 7F009A50 24050003 */ li $a1, 3 +/* 03E584 7F009A54 1000003B */ b .L7F009B44 +/* 03E588 7F009A58 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xrcp90: +/* 03E58C 7F009A5C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E590 7F009A60 0FC07771 */ jal get_save_folder_ptr +/* 03E594 7F009A64 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E598 7F009A68 00402025 */ move $a0, $v0 +/* 03E59C 7F009A6C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5A0 7F009A70 24050010 */ li $a1, 16 +/* 03E5A4 7F009A74 10000033 */ b .L7F009B44 +/* 03E5A8 7F009A78 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xthrowingknife: +/* 03E5AC 7F009A7C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5B0 7F009A80 0FC07771 */ jal get_save_folder_ptr +/* 03E5B4 7F009A84 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5B8 7F009A88 00402025 */ move $a0, $v0 +/* 03E5BC 7F009A8C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5C0 7F009A90 24050008 */ li $a1, 8 +/* 03E5C4 7F009A94 1000002B */ b .L7F009B44 +/* 03E5C8 7F009A98 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xhuntingknife: +/* 03E5CC 7F009A9C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5D0 7F009AA0 0FC07771 */ jal get_save_folder_ptr +/* 03E5D4 7F009AA4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5D8 7F009AA8 00402025 */ move $a0, $v0 +/* 03E5DC 7F009AAC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5E0 7F009AB0 2405000E */ li $a1, 14 +/* 03E5E4 7F009AB4 10000023 */ b .L7F009B44 +/* 03E5E8 7F009AB8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xlaser: +/* 03E5EC 7F009ABC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5F0 7F009AC0 0FC07771 */ jal get_save_folder_ptr +/* 03E5F4 7F009AC4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5F8 7F009AC8 00402025 */ move $a0, $v0 +/* 03E5FC 7F009ACC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E600 7F009AD0 24050012 */ li $a1, 18 +/* 03E604 7F009AD4 1000001B */ b .L7F009B44 +/* 03E608 7F009AD8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_turbo: +/* 03E60C 7F009ADC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E610 7F009AE0 0FC07771 */ jal get_save_folder_ptr +/* 03E614 7F009AE4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E618 7F009AE8 00402025 */ move $a0, $v0 +/* 03E61C 7F009AEC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E620 7F009AF0 24050005 */ li $a1, 5 +/* 03E624 7F009AF4 10000013 */ b .L7F009B44 +/* 03E628 7F009AF8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockcradle: +/* 03E62C 7F009AFC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E630 7F009B00 0FC07A7D */ jal check_cradle_completed_in_folder +/* 03E634 7F009B04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E638 7F009B08 1000000E */ b .L7F009B44 +/* 03E63C 7F009B0C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockaztec: +/* 03E640 7F009B10 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E644 7F009B14 0FC07A97 */ jal check_aztec_completed_in_folder_secret_00 +/* 03E648 7F009B18 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E64C 7F009B1C 10000009 */ b .L7F009B44 +/* 03E650 7F009B20 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockegypt: +/* 03E654 7F009B24 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E658 7F009B28 0FC07AAA */ jal check_egypt_completed_in_folder_00 +/* 03E65C 7F009B2C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E660 7F009B30 10000004 */ b .L7F009B44 +/* 03E664 7F009B34 8FBF0014 */ lw $ra, 0x14($sp) +def_7F00986C: +.L7F009B38: +/* 03E668 7F009B38 1000FFFF */ b .L7F009B38 +/* 03E66C 7F009B3C 00000000 */ nop +.L7F009B40: +/* 03E670 7F009B40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009B44: +/* 03E674 7F009B44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03E678 7F009B48 03E00008 */ jr $ra +/* 03E67C 7F009B4C 00000000 */ nop +) +#endif + + + + +int getplayerfavoredweapon(int player,int hand) { + return get_ptr_long_watch_text_for_item(array_favweapon[player][hand]); +} + + + + +#ifdef NONMATCHING +void menu_control_stick_tracking(void) { + f32 sp18; + s8 sp1E; + s8 sp1F; + s32 temp_t2; + + // Node 0 + sp1F = get_cur_controller_horz_stick_pos(0); + temp_t2 = ((s32) (-get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18); + if (sp1F < -5) + { + // Node 1 + } + else + { + // Node 2 + if (sp1F >= 6) + { + // Node 3 + } + else + { + // Node 4 + } + } + // Node 5 + if (0 >= 0x47) + { + // Node 6 + } + else + { + // Node 7 + if (0 < -0x46) + { + // Node 8 + } + } + // Node 9 + if (temp_t2 < -5) + { + // Node 10 + } + else + { + // Node 11 + if (temp_t2 >= 6) + { + // Node 12 + } + } + // Node 13 + if ((u8)0 >= 0x47) + { + // Node 14 + } + else + { + // Node 15 + if ((u8)0 < -0x46) + { + // Node 16 + } + } + // Node 17 + if (0 > 0) + { + // Node 18 + cursor_h_pos = (f32) (cursor_h_pos + ((((f32) 0 * folder_menu_x_dim) + 0.5f) * global_timer_delta)); + } + else + { + // Node 19 + if (0 < 0) + { + // Node 20 + cursor_h_pos = (f32) (cursor_h_pos + ((((f32) 0 * folder_menu_z_dim) - 0.5f) * global_timer_delta)); + } + } + // Node 21 + sp1E = (u8)0; + sp18 = getPlayer_c_screenleft(0); + if (((getPlayer_c_screenwidth() + sp18) - 20.0f) < cursor_h_pos) + { + // Node 22 + sp1E = sp1E; + sp18 = getPlayer_c_screenleft(); + cursor_h_pos = (f32) ((getPlayer_c_screenwidth() + sp18) - 20.0f); + } + else + { + // Node 23 + sp1E = sp1E; + if (cursor_h_pos < (getPlayer_c_screenleft() + 20.0f)) + { + // Node 24 + sp1E = sp1E; + cursor_h_pos = (f32) (getPlayer_c_screenleft() + 20.0f); + } + } + // Node 25 + if (sp1E > 0) + { + // Node 26 + cursor_v_pos = (f32) (cursor_v_pos + ((((f32) sp1E * D_800519D0) + 0.5f) * global_timer_delta)); + } + else + { + // Node 27 + if (sp1E < 0) + { + // Node 28 + cursor_v_pos = (f32) (cursor_v_pos + ((((f32) sp1E * D_800519D4) - 0.5f) * global_timer_delta)); + } + } + // Node 29 + sp18 = getPlayer_c_screentop(); + if (((getPlayer_c_screenheight() + sp18) - 20.0f) < cursor_v_pos) + { + // Node 30 + sp18 = getPlayer_c_screentop(); + cursor_v_pos = (f32) ((getPlayer_c_screenheight() + sp18) - 20.0f); + return; + // (possible return value: getPlayer_c_screenheight()) + } + // Node 31 + if (cursor_v_pos < (getPlayer_c_screentop() + 20.0f)) + { + // Node 32 + cursor_v_pos = (f32) (getPlayer_c_screentop() + 20.0f); + return; + // (possible return value: getPlayer_c_screentop()) + } + // (possible return value: getPlayer_c_screentop()) +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*HACK FIXME*/ +/*from above to add bytes till fixed*/ +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +/*end from above to add bytes till fixed*/ + +glabel folder_menu_x_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel folder_menu_z_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D0 +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D4 +.word 0x3D99999A /* 0.075000003;*/ + +.text +glabel menu_control_stick_tracking +/* 03E6B4 7F009B84 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03E6B8 7F009B88 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E6BC 7F009B8C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 03E6C0 7F009B90 00002025 */ move $a0, $zero +/* 03E6C4 7F009B94 00002025 */ move $a0, $zero +/* 03E6C8 7F009B98 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 03E6CC 7F009B9C A3A2001F */ sb $v0, 0x1f($sp) +/* 03E6D0 7F009BA0 83A5001F */ lb $a1, 0x1f($sp) +/* 03E6D4 7F009BA4 00021823 */ negu $v1, $v0 +/* 03E6D8 7F009BA8 00034E00 */ sll $t1, $v1, 0x18 +/* 03E6DC 7F009BAC 28A1FFFB */ slti $at, $a1, -5 +/* 03E6E0 7F009BB0 10200005 */ beqz $at, .L7F009BC8 +/* 03E6E4 7F009BB4 00095603 */ sra $t2, $t1, 0x18 +/* 03E6E8 7F009BB8 24A50005 */ addiu $a1, $a1, 5 +/* 03E6EC 7F009BBC 00057E00 */ sll $t7, $a1, 0x18 +/* 03E6F0 7F009BC0 10000008 */ b .L7F009BE4 +/* 03E6F4 7F009BC4 000F2E03 */ sra $a1, $t7, 0x18 +.L7F009BC8: +/* 03E6F8 7F009BC8 28A10006 */ slti $at, $a1, 6 +/* 03E6FC 7F009BCC 14200004 */ bnez $at, .L7F009BE0 +/* 03E700 7F009BD0 24A5FFFB */ addiu $a1, $a1, -5 +/* 03E704 7F009BD4 0005CE00 */ sll $t9, $a1, 0x18 +/* 03E708 7F009BD8 10000002 */ b .L7F009BE4 +/* 03E70C 7F009BDC 00192E03 */ sra $a1, $t9, 0x18 +.L7F009BE0: +/* 03E710 7F009BE0 00002825 */ move $a1, $zero +.L7F009BE4: +/* 03E714 7F009BE4 28A10047 */ slti $at, $a1, 0x47 +/* 03E718 7F009BE8 54200004 */ bnezl $at, .L7F009BFC +/* 03E71C 7F009BEC 28A1FFBA */ slti $at, $a1, -0x46 +/* 03E720 7F009BF0 10000005 */ b .L7F009C08 +/* 03E724 7F009BF4 24050046 */ li $a1, 70 +/* 03E728 7F009BF8 28A1FFBA */ slti $at, $a1, -0x46 +.L7F009BFC: +/* 03E72C 7F009BFC 50200003 */ beql $at, $zero, .L7F009C0C +/* 03E730 7F009C00 2941FFFB */ slti $at, $t2, -5 +/* 03E734 7F009C04 2405FFBA */ li $a1, -70 +.L7F009C08: +/* 03E738 7F009C08 2941FFFB */ slti $at, $t2, -5 +.L7F009C0C: +/* 03E73C 7F009C0C 10200005 */ beqz $at, .L7F009C24 +/* 03E740 7F009C10 01401825 */ move $v1, $t2 +/* 03E744 7F009C14 25420005 */ addiu $v0, $t2, 5 +/* 03E748 7F009C18 00025E00 */ sll $t3, $v0, 0x18 +/* 03E74C 7F009C1C 10000008 */ b .L7F009C40 +/* 03E750 7F009C20 000B1603 */ sra $v0, $t3, 0x18 +.L7F009C24: +/* 03E754 7F009C24 28610006 */ slti $at, $v1, 6 +/* 03E758 7F009C28 14200005 */ bnez $at, .L7F009C40 +/* 03E75C 7F009C2C 00001025 */ move $v0, $zero +/* 03E760 7F009C30 2462FFFB */ addiu $v0, $v1, -5 +/* 03E764 7F009C34 00026E00 */ sll $t5, $v0, 0x18 +/* 03E768 7F009C38 10000001 */ b .L7F009C40 +/* 03E76C 7F009C3C 000D1603 */ sra $v0, $t5, 0x18 +.L7F009C40: +/* 03E770 7F009C40 28410047 */ slti $at, $v0, 0x47 +/* 03E774 7F009C44 54200004 */ bnezl $at, .L7F009C58 +/* 03E778 7F009C48 2841FFBA */ slti $at, $v0, -0x46 +/* 03E77C 7F009C4C 10000005 */ b .L7F009C64 +/* 03E780 7F009C50 24020046 */ li $v0, 70 +/* 03E784 7F009C54 2841FFBA */ slti $at, $v0, -0x46 +.L7F009C58: +/* 03E788 7F009C58 10200002 */ beqz $at, .L7F009C64 +/* 03E78C 7F009C5C 00000000 */ nop +/* 03E790 7F009C60 2402FFBA */ li $v0, -70 +.L7F009C64: +/* 03E794 7F009C64 18A00011 */ blez $a1, .L7F009CAC +/* 03E798 7F009C68 00000000 */ nop +/* 03E79C 7F009C6C 44852000 */ mtc1 $a1, $f4 +/* 03E7A0 7F009C70 3C018005 */ lui $at, %hi(folder_menu_x_dim) +/* 03E7A4 7F009C74 C42819C8 */ lwc1 $f8, %lo(folder_menu_x_dim)($at) +/* 03E7A8 7F009C78 468021A0 */ cvt.s.w $f6, $f4 +/* 03E7AC 7F009C7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7B0 7F009C80 44818000 */ mtc1 $at, $f16 +/* 03E7B4 7F009C84 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E7B8 7F009C88 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 03E7BC 7F009C8C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E7C0 7F009C90 46083282 */ mul.s $f10, $f6, $f8 +/* 03E7C4 7F009C94 C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 03E7C8 7F009C98 46105480 */ add.s $f18, $f10, $f16 +/* 03E7CC 7F009C9C 46049182 */ mul.s $f6, $f18, $f4 +/* 03E7D0 7F009CA0 46064280 */ add.s $f10, $f8, $f6 +/* 03E7D4 7F009CA4 10000012 */ b .L7F009CF0 +/* 03E7D8 7F009CA8 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009CAC: +/* 03E7DC 7F009CAC 04A10010 */ bgez $a1, .L7F009CF0 +/* 03E7E0 7F009CB0 00000000 */ nop +/* 03E7E4 7F009CB4 44858000 */ mtc1 $a1, $f16 +/* 03E7E8 7F009CB8 3C018005 */ lui $at, %hi(folder_menu_z_dim) +/* 03E7EC 7F009CBC C42419CC */ lwc1 $f4, %lo(folder_menu_z_dim)($at) +/* 03E7F0 7F009CC0 468084A0 */ cvt.s.w $f18, $f16 +/* 03E7F4 7F009CC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7F8 7F009CC8 44813000 */ mtc1 $at, $f6 +/* 03E7FC 7F009CCC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E800 7F009CD0 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E804 7F009CD4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E808 7F009CD8 46049202 */ mul.s $f8, $f18, $f4 +/* 03E80C 7F009CDC C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E810 7F009CE0 46064281 */ sub.s $f10, $f8, $f6 +/* 03E814 7F009CE4 46105482 */ mul.s $f18, $f10, $f16 +/* 03E818 7F009CE8 46122200 */ add.s $f8, $f4, $f18 +/* 03E81C 7F009CEC E428A908 */ swc1 $f8, %lo(cursor_h_pos)($at) +.L7F009CF0: +/* 03E820 7F009CF0 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E824 7F009CF4 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E828 7F009CF8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E82C 7F009CFC E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E830 7F009D00 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 03E834 7F009D04 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E838 7F009D08 44818000 */ mtc1 $at, $f16 +/* 03E83C 7F009D0C 46060280 */ add.s $f10, $f0, $f6 +/* 03E840 7F009D10 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E844 7F009D14 C432A908 */ lwc1 $f18, %lo(cursor_h_pos)($at) +/* 03E848 7F009D18 83A2001E */ lb $v0, 0x1e($sp) +/* 03E84C 7F009D1C 46105101 */ sub.s $f4, $f10, $f16 +/* 03E850 7F009D20 4612203C */ c.lt.s $f4, $f18 +/* 03E854 7F009D24 00000000 */ nop +/* 03E858 7F009D28 4500000E */ bc1f .L7F009D64 +/* 03E85C 7F009D2C 00000000 */ nop +/* 03E860 7F009D30 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E864 7F009D34 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E868 7F009D38 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E86C 7F009D3C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E870 7F009D40 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 03E874 7F009D44 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E878 7F009D48 44815000 */ mtc1 $at, $f10 +/* 03E87C 7F009D4C 46080180 */ add.s $f6, $f0, $f8 +/* 03E880 7F009D50 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E884 7F009D54 83A2001E */ lb $v0, 0x1e($sp) +/* 03E888 7F009D58 460A3401 */ sub.s $f16, $f6, $f10 +/* 03E88C 7F009D5C 10000015 */ b .L7F009DB4 +/* 03E890 7F009D60 E430A908 */ swc1 $f16, %lo(cursor_h_pos)($at) +.L7F009D64: +/* 03E894 7F009D64 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E898 7F009D68 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E89C 7F009D6C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8A0 7F009D70 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E8A4 7F009D74 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8A8 7F009D78 44819000 */ mtc1 $at, $f18 +/* 03E8AC 7F009D7C 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8B0 7F009D80 46120200 */ add.s $f8, $f0, $f18 +/* 03E8B4 7F009D84 4608203C */ c.lt.s $f4, $f8 +/* 03E8B8 7F009D88 00000000 */ nop +/* 03E8BC 7F009D8C 45000009 */ bc1f .L7F009DB4 +/* 03E8C0 7F009D90 00000000 */ nop +/* 03E8C4 7F009D94 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E8C8 7F009D98 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8CC 7F009D9C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8D0 7F009DA0 44813000 */ mtc1 $at, $f6 +/* 03E8D4 7F009DA4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8D8 7F009DA8 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8DC 7F009DAC 46060280 */ add.s $f10, $f0, $f6 +/* 03E8E0 7F009DB0 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009DB4: +/* 03E8E4 7F009DB4 18400011 */ blez $v0, .L7F009DFC +/* 03E8E8 7F009DB8 00000000 */ nop +/* 03E8EC 7F009DBC 44828000 */ mtc1 $v0, $f16 +/* 03E8F0 7F009DC0 3C018005 */ lui $at, %hi(D_800519D0) +/* 03E8F4 7F009DC4 C42419D0 */ lwc1 $f4, %lo(D_800519D0)($at) +/* 03E8F8 7F009DC8 468084A0 */ cvt.s.w $f18, $f16 +/* 03E8FC 7F009DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E900 7F009DD0 44813000 */ mtc1 $at, $f6 +/* 03E904 7F009DD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E908 7F009DD8 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E90C 7F009DDC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E910 7F009DE0 46049202 */ mul.s $f8, $f18, $f4 +/* 03E914 7F009DE4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 03E918 7F009DE8 46064280 */ add.s $f10, $f8, $f6 +/* 03E91C 7F009DEC 46105482 */ mul.s $f18, $f10, $f16 +/* 03E920 7F009DF0 46122200 */ add.s $f8, $f4, $f18 +/* 03E924 7F009DF4 10000012 */ b .L7F009E40 +/* 03E928 7F009DF8 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009DFC: +/* 03E92C 7F009DFC 04410010 */ bgez $v0, .L7F009E40 +/* 03E930 7F009E00 00000000 */ nop +/* 03E934 7F009E04 44823000 */ mtc1 $v0, $f6 +/* 03E938 7F009E08 3C018005 */ lui $at, %hi(D_800519D4) +/* 03E93C 7F009E0C C43019D4 */ lwc1 $f16, %lo(D_800519D4)($at) +/* 03E940 7F009E10 468032A0 */ cvt.s.w $f10, $f6 +/* 03E944 7F009E14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E948 7F009E18 44819000 */ mtc1 $at, $f18 +/* 03E94C 7F009E1C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E950 7F009E20 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 03E954 7F009E24 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E958 7F009E28 46105102 */ mul.s $f4, $f10, $f16 +/* 03E95C 7F009E2C C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E960 7F009E30 46122201 */ sub.s $f8, $f4, $f18 +/* 03E964 7F009E34 46064282 */ mul.s $f10, $f8, $f6 +/* 03E968 7F009E38 460A8100 */ add.s $f4, $f16, $f10 +/* 03E96C 7F009E3C E424A90C */ swc1 $f4, %lo(cursor_v_pos)($at) +.L7F009E40: +/* 03E970 7F009E40 0FC1E135 */ jal getPlayer_c_screentop +/* 03E974 7F009E44 00000000 */ nop +/* 03E978 7F009E48 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E97C 7F009E4C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E980 7F009E50 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 03E984 7F009E54 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E988 7F009E58 44813000 */ mtc1 $at, $f6 +/* 03E98C 7F009E5C 46120200 */ add.s $f8, $f0, $f18 +/* 03E990 7F009E60 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E994 7F009E64 C42AA90C */ lwc1 $f10, %lo(cursor_v_pos)($at) +/* 03E998 7F009E68 46064401 */ sub.s $f16, $f8, $f6 +/* 03E99C 7F009E6C 460A803C */ c.lt.s $f16, $f10 +/* 03E9A0 7F009E70 00000000 */ nop +/* 03E9A4 7F009E74 4500000D */ bc1f .L7F009EAC +/* 03E9A8 7F009E78 00000000 */ nop +/* 03E9AC 7F009E7C 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9B0 7F009E80 00000000 */ nop +/* 03E9B4 7F009E84 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E9B8 7F009E88 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E9BC 7F009E8C C7A40018 */ lwc1 $f4, 0x18($sp) +/* 03E9C0 7F009E90 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9C4 7F009E94 44814000 */ mtc1 $at, $f8 +/* 03E9C8 7F009E98 46040480 */ add.s $f18, $f0, $f4 +/* 03E9CC 7F009E9C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9D0 7F009EA0 46089181 */ sub.s $f6, $f18, $f8 +/* 03E9D4 7F009EA4 10000014 */ b .L7F009EF8 +/* 03E9D8 7F009EA8 E426A90C */ swc1 $f6, %lo(cursor_v_pos)($at) +.L7F009EAC: +/* 03E9DC 7F009EAC 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9E0 7F009EB0 00000000 */ nop +/* 03E9E4 7F009EB4 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9E8 7F009EB8 C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E9EC 7F009EBC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9F0 7F009EC0 44815000 */ mtc1 $at, $f10 +/* 03E9F4 7F009EC4 00000000 */ nop +/* 03E9F8 7F009EC8 460A0100 */ add.s $f4, $f0, $f10 +/* 03E9FC 7F009ECC 4604803C */ c.lt.s $f16, $f4 +/* 03EA00 7F009ED0 00000000 */ nop +/* 03EA04 7F009ED4 45020009 */ bc1fl .L7F009EFC +/* 03EA08 7F009ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 03EA0C 7F009EDC 0FC1E135 */ jal getPlayer_c_screentop +/* 03EA10 7F009EE0 00000000 */ nop +/* 03EA14 7F009EE4 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA18 7F009EE8 44819000 */ mtc1 $at, $f18 +/* 03EA1C 7F009EEC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03EA20 7F009EF0 46120200 */ add.s $f8, $f0, $f18 +/* 03EA24 7F009EF4 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009EF8: +/* 03EA28 7F009EF8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009EFC: +/* 03EA2C 7F009EFC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03EA30 7F009F00 03E00008 */ jr $ra +/* 03EA34 7F009F04 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*HACK FIXME*/ +/*from above to add bytes till fixed*/ +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +/*end from above to add bytes till fixed*/ + +glabel folder_menu_x_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel folder_menu_z_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D0 +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D4 +.word 0x3D99999A /* 0.075000003;*/ + +.text +glabel menu_control_stick_tracking +/* 03E714 7F009BA4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03E718 7F009BA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E71C 7F009BAC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 03E720 7F009BB0 00002025 */ move $a0, $zero +/* 03E724 7F009BB4 00002025 */ move $a0, $zero +/* 03E728 7F009BB8 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 03E72C 7F009BBC A3A2001F */ sb $v0, 0x1f($sp) +/* 03E730 7F009BC0 83A5001F */ lb $a1, 0x1f($sp) +/* 03E734 7F009BC4 00021823 */ negu $v1, $v0 +/* 03E738 7F009BC8 00034E00 */ sll $t1, $v1, 0x18 +/* 03E73C 7F009BCC 28A1FFFB */ slti $at, $a1, -5 +/* 03E740 7F009BD0 10200005 */ beqz $at, .L7F009BE8 +/* 03E744 7F009BD4 00095603 */ sra $t2, $t1, 0x18 +/* 03E748 7F009BD8 24A50005 */ addiu $a1, $a1, 5 +/* 03E74C 7F009BDC 00057E00 */ sll $t7, $a1, 0x18 +/* 03E750 7F009BE0 10000008 */ b .L7F009C04 +/* 03E754 7F009BE4 000F2E03 */ sra $a1, $t7, 0x18 +.L7F009BE8: +/* 03E758 7F009BE8 28A10006 */ slti $at, $a1, 6 +/* 03E75C 7F009BEC 14200004 */ bnez $at, .L7F009C00 +/* 03E760 7F009BF0 24A5FFFB */ addiu $a1, $a1, -5 +/* 03E764 7F009BF4 0005CE00 */ sll $t9, $a1, 0x18 +/* 03E768 7F009BF8 10000002 */ b .L7F009C04 +/* 03E76C 7F009BFC 00192E03 */ sra $a1, $t9, 0x18 +.L7F009C00: +/* 03E770 7F009C00 00002825 */ move $a1, $zero +.L7F009C04: +/* 03E774 7F009C04 28A10047 */ slti $at, $a1, 0x47 +/* 03E778 7F009C08 54200004 */ bnezl $at, .L7F009C1C +/* 03E77C 7F009C0C 28A1FFBA */ slti $at, $a1, -0x46 +/* 03E780 7F009C10 10000005 */ b .L7F009C28 +/* 03E784 7F009C14 24050046 */ li $a1, 70 +/* 03E788 7F009C18 28A1FFBA */ slti $at, $a1, -0x46 +.L7F009C1C: +/* 03E78C 7F009C1C 50200003 */ beql $at, $zero, .L7F009C2C +/* 03E790 7F009C20 2941FFFB */ slti $at, $t2, -5 +/* 03E794 7F009C24 2405FFBA */ li $a1, -70 +.L7F009C28: +/* 03E798 7F009C28 2941FFFB */ slti $at, $t2, -5 +.L7F009C2C: +/* 03E79C 7F009C2C 10200005 */ beqz $at, .L7F009C44 +/* 03E7A0 7F009C30 01401825 */ move $v1, $t2 +/* 03E7A4 7F009C34 25420005 */ addiu $v0, $t2, 5 +/* 03E7A8 7F009C38 00025E00 */ sll $t3, $v0, 0x18 +/* 03E7AC 7F009C3C 10000008 */ b .L7F009C60 +/* 03E7B0 7F009C40 000B1603 */ sra $v0, $t3, 0x18 +.L7F009C44: +/* 03E7B4 7F009C44 28610006 */ slti $at, $v1, 6 +/* 03E7B8 7F009C48 14200005 */ bnez $at, .L7F009C60 +/* 03E7BC 7F009C4C 00001025 */ move $v0, $zero +/* 03E7C0 7F009C50 2462FFFB */ addiu $v0, $v1, -5 +/* 03E7C4 7F009C54 00026E00 */ sll $t5, $v0, 0x18 +/* 03E7C8 7F009C58 10000001 */ b .L7F009C60 +/* 03E7CC 7F009C5C 000D1603 */ sra $v0, $t5, 0x18 +.L7F009C60: +/* 03E7D0 7F009C60 28410047 */ slti $at, $v0, 0x47 +/* 03E7D4 7F009C64 54200004 */ bnezl $at, .L7F009C78 +/* 03E7D8 7F009C68 2841FFBA */ slti $at, $v0, -0x46 +/* 03E7DC 7F009C6C 10000005 */ b .L7F009C84 +/* 03E7E0 7F009C70 24020046 */ li $v0, 70 +/* 03E7E4 7F009C74 2841FFBA */ slti $at, $v0, -0x46 +.L7F009C78: +/* 03E7E8 7F009C78 10200002 */ beqz $at, .L7F009C84 +/* 03E7EC 7F009C7C 00000000 */ nop +/* 03E7F0 7F009C80 2402FFBA */ li $v0, -70 +.L7F009C84: +/* 03E7F4 7F009C84 18A00011 */ blez $a1, .L7F009CCC +/* 03E7F8 7F009C88 00000000 */ nop +/* 03E7FC 7F009C8C 44852000 */ mtc1 $a1, $f4 +/* 03E800 7F009C90 3C018005 */ lui $at, %hi(folder_menu_x_dim) # $at, 0x8005 +/* 03E804 7F009C94 C42819F8 */ lwc1 $f8, %lo(folder_menu_x_dim)($at) +/* 03E808 7F009C98 468021A0 */ cvt.s.w $f6, $f4 +/* 03E80C 7F009C9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E810 7F009CA0 44818000 */ mtc1 $at, $f16 +/* 03E814 7F009CA4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E818 7F009CA8 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 03E81C 7F009CAC 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E820 7F009CB0 46083282 */ mul.s $f10, $f6, $f8 +/* 03E824 7F009CB4 C428A948 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 03E828 7F009CB8 46105480 */ add.s $f18, $f10, $f16 +/* 03E82C 7F009CBC 46049182 */ mul.s $f6, $f18, $f4 +/* 03E830 7F009CC0 46064280 */ add.s $f10, $f8, $f6 +/* 03E834 7F009CC4 10000012 */ b .L7F009D10 +/* 03E838 7F009CC8 E42AA948 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009CCC: +/* 03E83C 7F009CCC 04A10010 */ bgez $a1, .L7F009D10 +/* 03E840 7F009CD0 00000000 */ nop +/* 03E844 7F009CD4 44858000 */ mtc1 $a1, $f16 +/* 03E848 7F009CD8 3C018005 */ lui $at, %hi(folder_menu_z_dim) # $at, 0x8005 +/* 03E84C 7F009CDC C42419FC */ lwc1 $f4, %lo(folder_menu_z_dim)($at) +/* 03E850 7F009CE0 468084A0 */ cvt.s.w $f18, $f16 +/* 03E854 7F009CE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E858 7F009CE8 44813000 */ mtc1 $at, $f6 +/* 03E85C 7F009CEC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E860 7F009CF0 C43083B4 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E864 7F009CF4 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E868 7F009CF8 46049202 */ mul.s $f8, $f18, $f4 +/* 03E86C 7F009CFC C424A948 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E870 7F009D00 46064281 */ sub.s $f10, $f8, $f6 +/* 03E874 7F009D04 46105482 */ mul.s $f18, $f10, $f16 +/* 03E878 7F009D08 46122200 */ add.s $f8, $f4, $f18 +/* 03E87C 7F009D0C E428A948 */ swc1 $f8, %lo(cursor_h_pos)($at) +.L7F009D10: +/* 03E880 7F009D10 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E884 7F009D14 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E888 7F009D18 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 03E88C 7F009D1C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E890 7F009D20 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 03E894 7F009D24 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E898 7F009D28 44818000 */ mtc1 $at, $f16 +/* 03E89C 7F009D2C 46060280 */ add.s $f10, $f0, $f6 +/* 03E8A0 7F009D30 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E8A4 7F009D34 C432A948 */ lwc1 $f18, %lo(cursor_h_pos)($at) +/* 03E8A8 7F009D38 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8AC 7F009D3C 46105101 */ sub.s $f4, $f10, $f16 +/* 03E8B0 7F009D40 4612203C */ c.lt.s $f4, $f18 +/* 03E8B4 7F009D44 00000000 */ nop +/* 03E8B8 7F009D48 4500000E */ bc1f .L7F009D84 +/* 03E8BC 7F009D4C 00000000 */ nop +/* 03E8C0 7F009D50 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E8C4 7F009D54 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8C8 7F009D58 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 03E8CC 7F009D5C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E8D0 7F009D60 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 03E8D4 7F009D64 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8D8 7F009D68 44815000 */ mtc1 $at, $f10 +/* 03E8DC 7F009D6C 46080180 */ add.s $f6, $f0, $f8 +/* 03E8E0 7F009D70 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E8E4 7F009D74 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8E8 7F009D78 460A3401 */ sub.s $f16, $f6, $f10 +/* 03E8EC 7F009D7C 10000015 */ b .L7F009DD4 +/* 03E8F0 7F009D80 E430A948 */ swc1 $f16, %lo(cursor_h_pos)($at) +.L7F009D84: +/* 03E8F4 7F009D84 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E8F8 7F009D88 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8FC 7F009D8C 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E900 7F009D90 C424A948 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E904 7F009D94 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E908 7F009D98 44819000 */ mtc1 $at, $f18 +/* 03E90C 7F009D9C 83A2001E */ lb $v0, 0x1e($sp) +/* 03E910 7F009DA0 46120200 */ add.s $f8, $f0, $f18 +/* 03E914 7F009DA4 4608203C */ c.lt.s $f4, $f8 +/* 03E918 7F009DA8 00000000 */ nop +/* 03E91C 7F009DAC 45000009 */ bc1f .L7F009DD4 +/* 03E920 7F009DB0 00000000 */ nop +/* 03E924 7F009DB4 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E928 7F009DB8 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E92C 7F009DBC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E930 7F009DC0 44813000 */ mtc1 $at, $f6 +/* 03E934 7F009DC4 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E938 7F009DC8 83A2001E */ lb $v0, 0x1e($sp) +/* 03E93C 7F009DCC 46060280 */ add.s $f10, $f0, $f6 +/* 03E940 7F009DD0 E42AA948 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009DD4: +/* 03E944 7F009DD4 18400011 */ blez $v0, .L7F009E1C +/* 03E948 7F009DD8 00000000 */ nop +/* 03E94C 7F009DDC 44828000 */ mtc1 $v0, $f16 +/* 03E950 7F009DE0 3C018005 */ lui $at, %hi(D_800519D0) # $at, 0x8005 +/* 03E954 7F009DE4 C4241A00 */ lwc1 $f4, %lo(D_800519D0)($at) +/* 03E958 7F009DE8 468084A0 */ cvt.s.w $f18, $f16 +/* 03E95C 7F009DEC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E960 7F009DF0 44813000 */ mtc1 $at, $f6 +/* 03E964 7F009DF4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E968 7F009DF8 C43083B4 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E96C 7F009DFC 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E970 7F009E00 46049202 */ mul.s $f8, $f18, $f4 +/* 03E974 7F009E04 C424A94C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 03E978 7F009E08 46064280 */ add.s $f10, $f8, $f6 +/* 03E97C 7F009E0C 46105482 */ mul.s $f18, $f10, $f16 +/* 03E980 7F009E10 46122200 */ add.s $f8, $f4, $f18 +/* 03E984 7F009E14 10000012 */ b .L7F009E60 +/* 03E988 7F009E18 E428A94C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009E1C: +/* 03E98C 7F009E1C 04410010 */ bgez $v0, .L7F009E60 +/* 03E990 7F009E20 00000000 */ nop +/* 03E994 7F009E24 44823000 */ mtc1 $v0, $f6 +/* 03E998 7F009E28 3C018005 */ lui $at, %hi(D_800519D4) # $at, 0x8005 +/* 03E99C 7F009E2C C4301A04 */ lwc1 $f16, %lo(D_800519D4)($at) +/* 03E9A0 7F009E30 468032A0 */ cvt.s.w $f10, $f6 +/* 03E9A4 7F009E34 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E9A8 7F009E38 44819000 */ mtc1 $at, $f18 +/* 03E9AC 7F009E3C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E9B0 7F009E40 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 03E9B4 7F009E44 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E9B8 7F009E48 46105102 */ mul.s $f4, $f10, $f16 +/* 03E9BC 7F009E4C C430A94C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E9C0 7F009E50 46122201 */ sub.s $f8, $f4, $f18 +/* 03E9C4 7F009E54 46064282 */ mul.s $f10, $f8, $f6 +/* 03E9C8 7F009E58 460A8100 */ add.s $f4, $f16, $f10 +/* 03E9CC 7F009E5C E424A94C */ swc1 $f4, %lo(cursor_v_pos)($at) +.L7F009E60: +/* 03E9D0 7F009E60 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03E9D4 7F009E64 00000000 */ nop +/* 03E9D8 7F009E68 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 03E9DC 7F009E6C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E9E0 7F009E70 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 03E9E4 7F009E74 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9E8 7F009E78 44813000 */ mtc1 $at, $f6 +/* 03E9EC 7F009E7C 46120200 */ add.s $f8, $f0, $f18 +/* 03E9F0 7F009E80 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E9F4 7F009E84 C42AA94C */ lwc1 $f10, %lo(cursor_v_pos)($at) +/* 03E9F8 7F009E88 46064401 */ sub.s $f16, $f8, $f6 +/* 03E9FC 7F009E8C 460A803C */ c.lt.s $f16, $f10 +/* 03EA00 7F009E90 00000000 */ nop +/* 03EA04 7F009E94 4500000D */ bc1f .L7F009ECC +/* 03EA08 7F009E98 00000000 */ nop +/* 03EA0C 7F009E9C 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA10 7F009EA0 00000000 */ nop +/* 03EA14 7F009EA4 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 03EA18 7F009EA8 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03EA1C 7F009EAC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 03EA20 7F009EB0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA24 7F009EB4 44814000 */ mtc1 $at, $f8 +/* 03EA28 7F009EB8 46040480 */ add.s $f18, $f0, $f4 +/* 03EA2C 7F009EBC 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA30 7F009EC0 46089181 */ sub.s $f6, $f18, $f8 +/* 03EA34 7F009EC4 10000014 */ b .L7F009F18 +/* 03EA38 7F009EC8 E426A94C */ swc1 $f6, %lo(cursor_v_pos)($at) +.L7F009ECC: +/* 03EA3C 7F009ECC 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA40 7F009ED0 00000000 */ nop +/* 03EA44 7F009ED4 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA48 7F009ED8 C430A94C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03EA4C 7F009EDC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA50 7F009EE0 44815000 */ mtc1 $at, $f10 +/* 03EA54 7F009EE4 00000000 */ nop +/* 03EA58 7F009EE8 460A0100 */ add.s $f4, $f0, $f10 +/* 03EA5C 7F009EEC 4604803C */ c.lt.s $f16, $f4 +/* 03EA60 7F009EF0 00000000 */ nop +/* 03EA64 7F009EF4 45020009 */ bc1fl .L7F009F1C +/* 03EA68 7F009EF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 03EA6C 7F009EFC 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA70 7F009F00 00000000 */ nop +/* 03EA74 7F009F04 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA78 7F009F08 44819000 */ mtc1 $at, $f18 +/* 03EA7C 7F009F0C 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA80 7F009F10 46120200 */ add.s $f8, $f0, $f18 +/* 03EA84 7F009F14 E428A94C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009F18: +/* 03EA88 7F009F18 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009F1C: +/* 03EA8C 7F009F1C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03EA90 7F009F20 03E00008 */ jr $ra +/* 03EA94 7F009F24 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void load_draw_selected_icon_folder_select(s32 arg0, s32 arg1A) { + f32 sp58; + f32 sp5C; + f32 sp60; + f32 sp64; + + // Node 0 + if (folder_selection_screen_option_icon == 0) + { + // Node 1 + } + else + { + // Node 2 + if (folder_selection_screen_option_icon == 1) + { + // Node 3 + } + else + { + // Node 4 + if (folder_selection_screen_option_icon == 2) + { + // Node 5 + } + } + } + // Node 6 + likely_generate_DL_for_image_declaration(&arg1A, sp54, 4, 0, 0); + sp60 = truncf((cursor_h_pos + 0.5f)); + sp64 = truncf((cursor_v_pos + 0.5f)); + sp58 = (f32) ((f32) (u32) sp54->unk4 * 0.5f); + if (sp54->unk5 < 0) + { + // Node 7 + } + // Node 8 + sp5C = (f32) ((f32) sp54->unk5 * 0.5f); + display_image_at_on_screen_coord(&arg1A, &sp60, &sp58, sp54->unk4, (s32) sp54->unk5, 0, 0, 1, 0xff, 0xff, 0xff, 0xdc, (s32) (0 < sp54->unk6), 0); + return; + // (possible return value: arg1A) +} +#else +GLOBAL_ASM( +.text +glabel load_draw_selected_icon_folder_select +/* 03EA38 7F009F08 3C028003 */ lui $v0, %hi(folder_selection_screen_option_icon) +/* 03EA3C 7F009F0C 8C42A918 */ lw $v0, %lo(folder_selection_screen_option_icon)($v0) +/* 03EA40 7F009F10 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 03EA44 7F009F14 AFBF0044 */ sw $ra, 0x44($sp) +/* 03EA48 7F009F18 AFB00040 */ sw $s0, 0x40($sp) +/* 03EA4C 7F009F1C 14400005 */ bnez $v0, .L7F009F34 +/* 03EA50 7F009F20 AFA40068 */ sw $a0, 0x68($sp) +/* 03EA54 7F009F24 3C108009 */ lui $s0, %hi(crosshairimage) +/* 03EA58 7F009F28 8E10D114 */ lw $s0, %lo(crosshairimage)($s0) +/* 03EA5C 7F009F2C 1000000D */ b .L7F009F64 +/* 03EA60 7F009F30 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F34: +/* 03EA64 7F009F34 24010001 */ li $at, 1 +/* 03EA68 7F009F38 14410004 */ bne $v0, $at, .L7F009F4C +/* 03EA6C 7F009F3C 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 03EA70 7F009F40 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 03EA74 7F009F44 10000007 */ b .L7F009F64 +/* 03EA78 7F009F48 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F4C: +/* 03EA7C 7F009F4C 24010002 */ li $at, 2 +/* 03EA80 7F009F50 14410004 */ bne $v0, $at, .L7F009F64 +/* 03EA84 7F009F54 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 03EA88 7F009F58 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 03EA8C 7F009F5C 2610000C */ addiu $s0, $s0, 0xc +/* 03EA90 7F009F60 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F64: +/* 03EA94 7F009F64 8FB00054 */ lw $s0, 0x54($sp) +/* 03EA98 7F009F68 27A40068 */ addiu $a0, $sp, 0x68 +/* 03EA9C 7F009F6C 24060004 */ li $a2, 4 +/* 03EAA0 7F009F70 00003825 */ move $a3, $zero +/* 03EAA4 7F009F74 AFA00010 */ sw $zero, 0x10($sp) +/* 03EAA8 7F009F78 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 03EAAC 7F009F7C 02002825 */ move $a1, $s0 +/* 03EAB0 7F009F80 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03EAB4 7F009F84 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03EAB8 7F009F88 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EABC 7F009F8C 44813000 */ mtc1 $at, $f6 +/* 03EAC0 7F009F90 0FC170D8 */ jal truncf +/* 03EAC4 7F009F94 46062300 */ add.s $f12, $f4, $f6 +/* 03EAC8 7F009F98 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03EACC 7F009F9C C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 03EAD0 7F009FA0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EAD4 7F009FA4 44815000 */ mtc1 $at, $f10 +/* 03EAD8 7F009FA8 E7A00060 */ swc1 $f0, 0x60($sp) +/* 03EADC 7F009FAC 0FC170D8 */ jal truncf +/* 03EAE0 7F009FB0 460A4300 */ add.s $f12, $f8, $f10 +/* 03EAE4 7F009FB4 E7A00064 */ swc1 $f0, 0x64($sp) +/* 03EAE8 7F009FB8 920E0004 */ lbu $t6, 4($s0) +/* 03EAEC 7F009FBC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EAF0 7F009FC0 44811000 */ mtc1 $at, $f2 +/* 03EAF4 7F009FC4 448E8000 */ mtc1 $t6, $f16 +/* 03EAF8 7F009FC8 27A40068 */ addiu $a0, $sp, 0x68 +/* 03EAFC 7F009FCC 05C10005 */ bgez $t6, .L7F009FE4 +/* 03EB00 7F009FD0 468084A0 */ cvt.s.w $f18, $f16 +/* 03EB04 7F009FD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03EB08 7F009FD8 44812000 */ mtc1 $at, $f4 +/* 03EB0C 7F009FDC 00000000 */ nop +/* 03EB10 7F009FE0 46049480 */ add.s $f18, $f18, $f4 +.L7F009FE4: +/* 03EB14 7F009FE4 46029182 */ mul.s $f6, $f18, $f2 +/* 03EB18 7F009FE8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03EB1C 7F009FEC E7A60058 */ swc1 $f6, 0x58($sp) +/* 03EB20 7F009FF0 920F0005 */ lbu $t7, 5($s0) +/* 03EB24 7F009FF4 448F4000 */ mtc1 $t7, $f8 +/* 03EB28 7F009FF8 05E10004 */ bgez $t7, .L7F00A00C +/* 03EB2C 7F009FFC 468042A0 */ cvt.s.w $f10, $f8 +/* 03EB30 7F00A000 44818000 */ mtc1 $at, $f16 +/* 03EB34 7F00A004 00000000 */ nop +/* 03EB38 7F00A008 46105280 */ add.s $f10, $f10, $f16 +.L7F00A00C: +/* 03EB3C 7F00A00C 46025102 */ mul.s $f4, $f10, $f2 +/* 03EB40 7F00A010 24190001 */ li $t9, 1 +/* 03EB44 7F00A014 240800FF */ li $t0, 255 +/* 03EB48 7F00A018 240900FF */ li $t1, 255 +/* 03EB4C 7F00A01C 240A00FF */ li $t2, 255 +/* 03EB50 7F00A020 240B00DC */ li $t3, 220 +/* 03EB54 7F00A024 27A50060 */ addiu $a1, $sp, 0x60 +/* 03EB58 7F00A028 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 03EB5C 7F00A02C 92180005 */ lbu $t8, 5($s0) +/* 03EB60 7F00A030 92070004 */ lbu $a3, 4($s0) +/* 03EB64 7F00A034 AFAB002C */ sw $t3, 0x2c($sp) +/* 03EB68 7F00A038 AFAA0028 */ sw $t2, 0x28($sp) +/* 03EB6C 7F00A03C AFA90024 */ sw $t1, 0x24($sp) +/* 03EB70 7F00A040 AFA80020 */ sw $t0, 0x20($sp) +/* 03EB74 7F00A044 AFB9001C */ sw $t9, 0x1c($sp) +/* 03EB78 7F00A048 AFA00018 */ sw $zero, 0x18($sp) +/* 03EB7C 7F00A04C AFA00014 */ sw $zero, 0x14($sp) +/* 03EB80 7F00A050 AFB80010 */ sw $t8, 0x10($sp) +/* 03EB84 7F00A054 920C0006 */ lbu $t4, 6($s0) +/* 03EB88 7F00A058 AFA00034 */ sw $zero, 0x34($sp) +/* 03EB8C 7F00A05C 27A60058 */ addiu $a2, $sp, 0x58 +/* 03EB90 7F00A060 000C682A */ slt $t5, $zero, $t4 +/* 03EB94 7F00A064 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 03EB98 7F00A068 AFAD0030 */ sw $t5, 0x30($sp) +/* 03EB9C 7F00A06C 8FBF0044 */ lw $ra, 0x44($sp) +/* 03EBA0 7F00A070 8FA20068 */ lw $v0, 0x68($sp) +/* 03EBA4 7F00A074 8FB00040 */ lw $s0, 0x40($sp) +/* 03EBA8 7F00A078 03E00008 */ jr $ra +/* 03EBAC 7F00A07C 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +s32 add_tab1_start(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069770 = get_textptr_for_textID(TEXT(LTITLE, 0x04)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069770, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0x33; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_1_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0x33, temp_a3, 0x75, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0x54 - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab1_start +/* 03EBB0 7F00A080 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03EBB4 7F00A084 AFB00038 */ sw $s0, 0x38($sp) +/* 03EBB8 7F00A088 00808025 */ move $s0, $a0 +/* 03EBBC 7F00A08C AFBF003C */ sw $ra, 0x3c($sp) +/* 03EBC0 7F00A090 0FC30776 */ jal get_textptr_for_textID +/* 03EBC4 7F00A094 34049C04 */ li $a0, 39940 +/* 03EBC8 7F00A098 3C018007 */ lui $at, %hi(dword_CODE_bss_80069770) +/* 03EBCC 7F00A09C AC229770 */ sw $v0, %lo(dword_CODE_bss_80069770)($at) +/* 03EBD0 7F00A0A0 0FC2B2DE */ jal setTextSpacingInverted +/* 03EBD4 7F00A0A4 24040001 */ li $a0, 1 +/* 03EBD8 7F00A0A8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03EBDC 7F00A0AC 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03EBE0 7F00A0B0 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069770) +/* 03EBE4 7F00A0B4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EBE8 7F00A0B8 AFA00048 */ sw $zero, 0x48($sp) +/* 03EBEC 7F00A0BC AFA0004C */ sw $zero, 0x4c($sp) +/* 03EBF0 7F00A0C0 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EBF4 7F00A0C4 8CC69770 */ lw $a2, %lo(dword_CODE_bss_80069770)($a2) +/* 03EBF8 7F00A0C8 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EBFC 7F00A0CC 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EC00 7F00A0D0 AFA00014 */ sw $zero, 0x14($sp) +/* 03EC04 7F00A0D4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EC08 7F00A0D8 AFAE0010 */ sw $t6, 0x10($sp) +/* 03EC0C 7F00A0DC 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EC10 7F00A0E0 3C098003 */ lui $t1, %hi(tab_1_highlight) +/* 03EC14 7F00A0E4 8D29A8DC */ lw $t1, %lo(tab_1_highlight)($t1) +/* 03EC18 7F00A0E8 2408019B */ li $t0, 411 +/* 03EC1C 7F00A0EC 240F0033 */ li $t7, 51 +/* 03EC20 7F00A0F0 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EC24 7F00A0F4 07010003 */ bgez $t8, .L7F00A104 +/* 03EC28 7F00A0F8 0018C843 */ sra $t9, $t8, 1 +/* 03EC2C 7F00A0FC 27010001 */ addiu $at, $t8, 1 +/* 03EC30 7F00A100 0001C843 */ sra $t9, $at, 1 +.L7F00A104: +/* 03EC34 7F00A104 01193823 */ subu $a3, $t0, $t9 +/* 03EC38 7F00A108 1120000C */ beqz $t1, .L7F00A13C +/* 03EC3C 7F00A10C AFA70050 */ sw $a3, 0x50($sp) +/* 03EC40 7F00A110 00F82823 */ subu $a1, $a3, $t8 +/* 03EC44 7F00A114 240A0075 */ li $t2, 117 +/* 03EC48 7F00A118 240B0032 */ li $t3, 50 +/* 03EC4C 7F00A11C AFAB0014 */ sw $t3, 0x14($sp) +/* 03EC50 7F00A120 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EC54 7F00A124 24A50001 */ addiu $a1, $a1, 1 +/* 03EC58 7F00A128 02002025 */ move $a0, $s0 +/* 03EC5C 7F00A12C 24060033 */ li $a2, 51 +/* 03EC60 7F00A130 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EC64 7F00A134 AFA70050 */ sw $a3, 0x50($sp) +/* 03EC68 7F00A138 00408025 */ move $s0, $v0 +.L7F00A13C: +/* 03EC6C 7F00A13C 0FC2B2E2 */ jal setTextOrientation +/* 03EC70 7F00A140 24040001 */ li $a0, 1 +/* 03EC74 7F00A144 8FAC0048 */ lw $t4, 0x48($sp) +/* 03EC78 7F00A148 240E0054 */ li $t6, 84 +/* 03EC7C 7F00A14C 05810003 */ bgez $t4, .L7F00A15C +/* 03EC80 7F00A150 000C6843 */ sra $t5, $t4, 1 +/* 03EC84 7F00A154 25810001 */ addiu $at, $t4, 1 +/* 03EC88 7F00A158 00016843 */ sra $t5, $at, 1 +.L7F00A15C: +/* 03EC8C 7F00A15C 01CD7823 */ subu $t7, $t6, $t5 +/* 03EC90 7F00A160 0C00110B */ jal get_video2_settings_txtClipH +/* 03EC94 7F00A164 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EC98 7F00A168 0C001107 */ jal get_video2_settings_txtClipW +/* 03EC9C 7F00A16C A7A20044 */ sh $v0, 0x44($sp) +/* 03ECA0 7F00A170 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03ECA4 7F00A174 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03ECA8 7F00A178 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03ECAC 7F00A17C 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03ECB0 7F00A180 87B80044 */ lh $t8, 0x44($sp) +/* 03ECB4 7F00A184 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069770) +/* 03ECB8 7F00A188 240900FF */ li $t1, 255 +/* 03ECBC 7F00A18C AFA90018 */ sw $t1, 0x18($sp) +/* 03ECC0 7F00A190 8CE79770 */ lw $a3, %lo(dword_CODE_bss_80069770)($a3) +/* 03ECC4 7F00A194 02002025 */ move $a0, $s0 +/* 03ECC8 7F00A198 27A50054 */ addiu $a1, $sp, 0x54 +/* 03ECCC 7F00A19C 27A60050 */ addiu $a2, $sp, 0x50 +/* 03ECD0 7F00A1A0 AFA20020 */ sw $v0, 0x20($sp) +/* 03ECD4 7F00A1A4 AFA00024 */ sw $zero, 0x24($sp) +/* 03ECD8 7F00A1A8 AFA00028 */ sw $zero, 0x28($sp) +/* 03ECDC 7F00A1AC AFB90014 */ sw $t9, 0x14($sp) +/* 03ECE0 7F00A1B0 AFA80010 */ sw $t0, 0x10($sp) +/* 03ECE4 7F00A1B4 0FC2B6AF */ jal en_text_write_stuff +/* 03ECE8 7F00A1B8 AFB8001C */ sw $t8, 0x1c($sp) +/* 03ECEC 7F00A1BC 00408025 */ move $s0, $v0 +/* 03ECF0 7F00A1C0 0FC2B2E2 */ jal setTextOrientation +/* 03ECF4 7F00A1C4 00002025 */ move $a0, $zero +/* 03ECF8 7F00A1C8 0FC2B2DE */ jal setTextSpacingInverted +/* 03ECFC 7F00A1CC 00002025 */ move $a0, $zero +/* 03ED00 7F00A1D0 8FBF003C */ lw $ra, 0x3c($sp) +/* 03ED04 7F00A1D4 02001025 */ move $v0, $s0 +/* 03ED08 7F00A1D8 8FB00038 */ lw $s0, 0x38($sp) +/* 03ED0C 7F00A1DC 03E00008 */ jr $ra +/* 03ED10 7F00A1E0 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + + +s32 isontab1(void) { + if ((390.00000000f < cursor_h_pos) && (cursor_v_pos <= 130.5f)) { + return TRUE; + } + return FALSE; +} + + +#ifdef NONMATCHING +s32 add_tab3_previous(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069778 = get_textptr_for_textID(TEXT(LTITLE, 0x06)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069778, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0xec; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_3_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0xec, temp_a3, 0x12e, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0x10d - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab3_previous +/* 03ED68 7F00A238 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03ED6C 7F00A23C AFB00038 */ sw $s0, 0x38($sp) +/* 03ED70 7F00A240 00808025 */ move $s0, $a0 +/* 03ED74 7F00A244 AFBF003C */ sw $ra, 0x3c($sp) +/* 03ED78 7F00A248 0FC30776 */ jal get_textptr_for_textID +/* 03ED7C 7F00A24C 34049C06 */ li $a0, 39942 +/* 03ED80 7F00A250 3C018007 */ lui $at, %hi(dword_CODE_bss_80069778) +/* 03ED84 7F00A254 AC229778 */ sw $v0, %lo(dword_CODE_bss_80069778)($at) +/* 03ED88 7F00A258 0FC2B2DE */ jal setTextSpacingInverted +/* 03ED8C 7F00A25C 24040001 */ li $a0, 1 +/* 03ED90 7F00A260 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03ED94 7F00A264 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03ED98 7F00A268 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069778) +/* 03ED9C 7F00A26C 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EDA0 7F00A270 AFA00048 */ sw $zero, 0x48($sp) +/* 03EDA4 7F00A274 AFA0004C */ sw $zero, 0x4c($sp) +/* 03EDA8 7F00A278 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EDAC 7F00A27C 8CC69778 */ lw $a2, %lo(dword_CODE_bss_80069778)($a2) +/* 03EDB0 7F00A280 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EDB4 7F00A284 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EDB8 7F00A288 AFA00014 */ sw $zero, 0x14($sp) +/* 03EDBC 7F00A28C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EDC0 7F00A290 AFAE0010 */ sw $t6, 0x10($sp) +/* 03EDC4 7F00A294 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EDC8 7F00A298 3C098003 */ lui $t1, %hi(tab_3_highlight) +/* 03EDCC 7F00A29C 8D29A8E4 */ lw $t1, %lo(tab_3_highlight)($t1) +/* 03EDD0 7F00A2A0 2408019B */ li $t0, 411 +/* 03EDD4 7F00A2A4 240F00EC */ li $t7, 236 +/* 03EDD8 7F00A2A8 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EDDC 7F00A2AC 07010003 */ bgez $t8, .L7F00A2BC +/* 03EDE0 7F00A2B0 0018C843 */ sra $t9, $t8, 1 +/* 03EDE4 7F00A2B4 27010001 */ addiu $at, $t8, 1 +/* 03EDE8 7F00A2B8 0001C843 */ sra $t9, $at, 1 +.L7F00A2BC: +/* 03EDEC 7F00A2BC 01193823 */ subu $a3, $t0, $t9 +/* 03EDF0 7F00A2C0 1120000C */ beqz $t1, .L7F00A2F4 +/* 03EDF4 7F00A2C4 AFA70050 */ sw $a3, 0x50($sp) +/* 03EDF8 7F00A2C8 00F82823 */ subu $a1, $a3, $t8 +/* 03EDFC 7F00A2CC 240A012E */ li $t2, 302 +/* 03EE00 7F00A2D0 240B0032 */ li $t3, 50 +/* 03EE04 7F00A2D4 AFAB0014 */ sw $t3, 0x14($sp) +/* 03EE08 7F00A2D8 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EE0C 7F00A2DC 24A50001 */ addiu $a1, $a1, 1 +/* 03EE10 7F00A2E0 02002025 */ move $a0, $s0 +/* 03EE14 7F00A2E4 240600EC */ li $a2, 236 +/* 03EE18 7F00A2E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EE1C 7F00A2EC AFA70050 */ sw $a3, 0x50($sp) +/* 03EE20 7F00A2F0 00408025 */ move $s0, $v0 +.L7F00A2F4: +/* 03EE24 7F00A2F4 0FC2B2E2 */ jal setTextOrientation +/* 03EE28 7F00A2F8 24040001 */ li $a0, 1 +/* 03EE2C 7F00A2FC 8FAC0048 */ lw $t4, 0x48($sp) +/* 03EE30 7F00A300 240E010D */ li $t6, 269 +/* 03EE34 7F00A304 05810003 */ bgez $t4, .L7F00A314 +/* 03EE38 7F00A308 000C6843 */ sra $t5, $t4, 1 +/* 03EE3C 7F00A30C 25810001 */ addiu $at, $t4, 1 +/* 03EE40 7F00A310 00016843 */ sra $t5, $at, 1 +.L7F00A314: +/* 03EE44 7F00A314 01CD7823 */ subu $t7, $t6, $t5 +/* 03EE48 7F00A318 0C00110B */ jal get_video2_settings_txtClipH +/* 03EE4C 7F00A31C AFAF0054 */ sw $t7, 0x54($sp) +/* 03EE50 7F00A320 0C001107 */ jal get_video2_settings_txtClipW +/* 03EE54 7F00A324 A7A20044 */ sh $v0, 0x44($sp) +/* 03EE58 7F00A328 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03EE5C 7F00A32C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03EE60 7F00A330 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03EE64 7F00A334 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03EE68 7F00A338 87B80044 */ lh $t8, 0x44($sp) +/* 03EE6C 7F00A33C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069778) +/* 03EE70 7F00A340 240900FF */ li $t1, 255 +/* 03EE74 7F00A344 AFA90018 */ sw $t1, 0x18($sp) +/* 03EE78 7F00A348 8CE79778 */ lw $a3, %lo(dword_CODE_bss_80069778)($a3) +/* 03EE7C 7F00A34C 02002025 */ move $a0, $s0 +/* 03EE80 7F00A350 27A50054 */ addiu $a1, $sp, 0x54 +/* 03EE84 7F00A354 27A60050 */ addiu $a2, $sp, 0x50 +/* 03EE88 7F00A358 AFA20020 */ sw $v0, 0x20($sp) +/* 03EE8C 7F00A35C AFA00024 */ sw $zero, 0x24($sp) +/* 03EE90 7F00A360 AFA00028 */ sw $zero, 0x28($sp) +/* 03EE94 7F00A364 AFB90014 */ sw $t9, 0x14($sp) +/* 03EE98 7F00A368 AFA80010 */ sw $t0, 0x10($sp) +/* 03EE9C 7F00A36C 0FC2B6AF */ jal en_text_write_stuff +/* 03EEA0 7F00A370 AFB8001C */ sw $t8, 0x1c($sp) +/* 03EEA4 7F00A374 00408025 */ move $s0, $v0 +/* 03EEA8 7F00A378 0FC2B2E2 */ jal setTextOrientation +/* 03EEAC 7F00A37C 00002025 */ move $a0, $zero +/* 03EEB0 7F00A380 0FC2B2DE */ jal setTextSpacingInverted +/* 03EEB4 7F00A384 00002025 */ move $a0, $zero +/* 03EEB8 7F00A388 8FBF003C */ lw $ra, 0x3c($sp) +/* 03EEBC 7F00A38C 02001025 */ move $v0, $s0 +/* 03EEC0 7F00A390 8FB00038 */ lw $s0, 0x38($sp) +/* 03EEC4 7F00A394 03E00008 */ jr $ra +/* 03EEC8 7F00A398 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +u32 isontab3(void) +{ + if ((390.0f < cursor_h_pos) && (223.0f < cursor_v_pos)) { + return 1; + } + else { + return 0; + } +} + +void set_cursor_pos_tab2(void) +{ + cursor_h_pos = 399.0f; + cursor_v_pos = 144.0f; +} + + +#ifdef NONMATCHING +s32 add_tab2_next(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069774 = get_textptr_for_textID(TEXT(LTITLE, 0x05)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069774, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0x90; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_2_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0x90, temp_a3, 0xd2, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0xb1 - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab2_next +/* 03EF44 7F00A414 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03EF48 7F00A418 AFB00038 */ sw $s0, 0x38($sp) +/* 03EF4C 7F00A41C 00808025 */ move $s0, $a0 +/* 03EF50 7F00A420 AFBF003C */ sw $ra, 0x3c($sp) +/* 03EF54 7F00A424 0FC30776 */ jal get_textptr_for_textID +/* 03EF58 7F00A428 34049C05 */ li $a0, 39941 +/* 03EF5C 7F00A42C 3C018007 */ lui $at, %hi(dword_CODE_bss_80069774) +/* 03EF60 7F00A430 AC229774 */ sw $v0, %lo(dword_CODE_bss_80069774)($at) +/* 03EF64 7F00A434 0FC2B2DE */ jal setTextSpacingInverted +/* 03EF68 7F00A438 24040001 */ li $a0, 1 +/* 03EF6C 7F00A43C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03EF70 7F00A440 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03EF74 7F00A444 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069774) +/* 03EF78 7F00A448 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EF7C 7F00A44C AFA00048 */ sw $zero, 0x48($sp) +/* 03EF80 7F00A450 AFA0004C */ sw $zero, 0x4c($sp) +/* 03EF84 7F00A454 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EF88 7F00A458 8CC69774 */ lw $a2, %lo(dword_CODE_bss_80069774)($a2) +/* 03EF8C 7F00A45C 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EF90 7F00A460 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EF94 7F00A464 AFA00014 */ sw $zero, 0x14($sp) +/* 03EF98 7F00A468 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EF9C 7F00A46C AFAE0010 */ sw $t6, 0x10($sp) +/* 03EFA0 7F00A470 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EFA4 7F00A474 3C098003 */ lui $t1, %hi(tab_2_highlight) +/* 03EFA8 7F00A478 8D29A8E0 */ lw $t1, %lo(tab_2_highlight)($t1) +/* 03EFAC 7F00A47C 2408019B */ li $t0, 411 +/* 03EFB0 7F00A480 240F0090 */ li $t7, 144 +/* 03EFB4 7F00A484 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EFB8 7F00A488 07010003 */ bgez $t8, .L7F00A498 +/* 03EFBC 7F00A48C 0018C843 */ sra $t9, $t8, 1 +/* 03EFC0 7F00A490 27010001 */ addiu $at, $t8, 1 +/* 03EFC4 7F00A494 0001C843 */ sra $t9, $at, 1 +.L7F00A498: +/* 03EFC8 7F00A498 01193823 */ subu $a3, $t0, $t9 +/* 03EFCC 7F00A49C 1120000C */ beqz $t1, .L7F00A4D0 +/* 03EFD0 7F00A4A0 AFA70050 */ sw $a3, 0x50($sp) +/* 03EFD4 7F00A4A4 00F82823 */ subu $a1, $a3, $t8 +/* 03EFD8 7F00A4A8 240A00D2 */ li $t2, 210 +/* 03EFDC 7F00A4AC 240B0032 */ li $t3, 50 +/* 03EFE0 7F00A4B0 AFAB0014 */ sw $t3, 0x14($sp) +/* 03EFE4 7F00A4B4 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EFE8 7F00A4B8 24A50001 */ addiu $a1, $a1, 1 +/* 03EFEC 7F00A4BC 02002025 */ move $a0, $s0 +/* 03EFF0 7F00A4C0 24060090 */ li $a2, 144 +/* 03EFF4 7F00A4C4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EFF8 7F00A4C8 AFA70050 */ sw $a3, 0x50($sp) +/* 03EFFC 7F00A4CC 00408025 */ move $s0, $v0 +.L7F00A4D0: +/* 03F000 7F00A4D0 0FC2B2E2 */ jal setTextOrientation +/* 03F004 7F00A4D4 24040001 */ li $a0, 1 +/* 03F008 7F00A4D8 8FAC0048 */ lw $t4, 0x48($sp) +/* 03F00C 7F00A4DC 240E00B1 */ li $t6, 177 +/* 03F010 7F00A4E0 05810003 */ bgez $t4, .L7F00A4F0 +/* 03F014 7F00A4E4 000C6843 */ sra $t5, $t4, 1 +/* 03F018 7F00A4E8 25810001 */ addiu $at, $t4, 1 +/* 03F01C 7F00A4EC 00016843 */ sra $t5, $at, 1 +.L7F00A4F0: +/* 03F020 7F00A4F0 01CD7823 */ subu $t7, $t6, $t5 +/* 03F024 7F00A4F4 0C00110B */ jal get_video2_settings_txtClipH +/* 03F028 7F00A4F8 AFAF0054 */ sw $t7, 0x54($sp) +/* 03F02C 7F00A4FC 0C001107 */ jal get_video2_settings_txtClipW +/* 03F030 7F00A500 A7A20044 */ sh $v0, 0x44($sp) +/* 03F034 7F00A504 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03F038 7F00A508 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03F03C 7F00A50C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03F040 7F00A510 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03F044 7F00A514 87B80044 */ lh $t8, 0x44($sp) +/* 03F048 7F00A518 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069774) +/* 03F04C 7F00A51C 240900FF */ li $t1, 255 +/* 03F050 7F00A520 AFA90018 */ sw $t1, 0x18($sp) +/* 03F054 7F00A524 8CE79774 */ lw $a3, %lo(dword_CODE_bss_80069774)($a3) +/* 03F058 7F00A528 02002025 */ move $a0, $s0 +/* 03F05C 7F00A52C 27A50054 */ addiu $a1, $sp, 0x54 +/* 03F060 7F00A530 27A60050 */ addiu $a2, $sp, 0x50 +/* 03F064 7F00A534 AFA20020 */ sw $v0, 0x20($sp) +/* 03F068 7F00A538 AFA00024 */ sw $zero, 0x24($sp) +/* 03F06C 7F00A53C AFA00028 */ sw $zero, 0x28($sp) +/* 03F070 7F00A540 AFB90014 */ sw $t9, 0x14($sp) +/* 03F074 7F00A544 AFA80010 */ sw $t0, 0x10($sp) +/* 03F078 7F00A548 0FC2B6AF */ jal en_text_write_stuff +/* 03F07C 7F00A54C AFB8001C */ sw $t8, 0x1c($sp) +/* 03F080 7F00A550 00408025 */ move $s0, $v0 +/* 03F084 7F00A554 0FC2B2E2 */ jal setTextOrientation +/* 03F088 7F00A558 00002025 */ move $a0, $zero +/* 03F08C 7F00A55C 0FC2B2DE */ jal setTextSpacingInverted +/* 03F090 7F00A560 00002025 */ move $a0, $zero +/* 03F094 7F00A564 8FBF003C */ lw $ra, 0x3c($sp) +/* 03F098 7F00A568 02001025 */ move $v0, $s0 +/* 03F09C 7F00A56C 8FB00038 */ lw $s0, 0x38($sp) +/* 03F0A0 7F00A570 03E00008 */ jr $ra +/* 03F0A4 7F00A574 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + +u32 isontab2(void) +{ + if (((390.0f < cursor_h_pos) && (130.5f < cursor_v_pos)) && (cursor_v_pos <= 223.00000000f)) { + return TRUE; + } + return FALSE; +} + + + + + + +#ifdef NONMATCHING +void init_menu00_legalscreen(void) +{ + struct point sp20; + + musicTrack1Stop(); + maybe_is_in_menu = 1; + menu_timer = 0; + sp20 = D_8002A9C0; + load_object_fill_header(&PitemZ_entries[0xEF4], &PitemZ_entries[0xEF8], ptr_logo_and_walletbond_DL, 0x3c000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(&PlegalpageZ_header); + + something_legalscreen_constructor = get_obj_instance_controller_for_header(PlegalpageZ_header); + set_obj_instance_controller_scale(something_legalscreen_constructor, 1.0f); + setsuboffset(something_legalscreen_constructor, &sp20); + sub_GAME_7F01DF90(); +} +#else +GLOBAL_ASM( +.text +glabel init_menu00_legalscreen +/* 03F118 7F00A5E8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03F11C 7F00A5EC AFBF001C */ sw $ra, 0x1c($sp) +/* 03F120 7F00A5F0 0C001BF4 */ jal musicTrack1Stop +/* 03F124 7F00A5F4 00000000 */ nop +/* 03F128 7F00A5F8 240E0001 */ li $t6, 1 +/* 03F12C 7F00A5FC 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 03F130 7F00A600 AC2EA93C */ sw $t6, %lo(maybe_is_in_menu)($at) +/* 03F134 7F00A604 3C018003 */ lui $at, %hi(menu_timer) +/* 03F138 7F00A608 3C188003 */ lui $t8, %hi(D_8002A9C0) +/* 03F13C 7F00A60C AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03F140 7F00A610 2718A9C0 */ addiu $t8, %lo(D_8002A9C0) # addiu $t8, $t8, -0x5640 +/* 03F144 7F00A614 8F010000 */ lw $at, ($t8) +/* 03F148 7F00A618 27AF0020 */ addiu $t7, $sp, 0x20 +/* 03F14C 7F00A61C 8F090004 */ lw $t1, 4($t8) +/* 03F150 7F00A620 ADE10000 */ sw $at, ($t7) +/* 03F154 7F00A624 8F010008 */ lw $at, 8($t8) +/* 03F158 7F00A628 ADE90004 */ sw $t1, 4($t7) +/* 03F15C 7F00A62C 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03F160 7F00A630 ADE10008 */ sw $at, 8($t7) +/* 03F164 7F00A634 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03F168 7F00A638 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03F16C 7F00A63C 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03F170 7F00A640 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03F174 7F00A644 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03F178 7F00A648 8C440EF4 */ lw $a0, 0xef4($v0) +/* 03F17C 7F00A64C 8C450EF8 */ lw $a1, 0xef8($v0) +/* 03F180 7F00A650 0FC1D929 */ jal load_object_fill_header +/* 03F184 7F00A654 AFA00010 */ sw $zero, 0x10($sp) +/* 03F188 7F00A658 3C048004 */ lui $a0, %hi(PitemZ_entries+0xEF4) +/* 03F18C 7F00A65C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03F190 7F00A660 8C84B11C */ lw $a0, %lo(PitemZ_entries+0xEF4)($a0) +/* 03F194 7F00A664 3C048004 */ lui $a0, %hi(PitemZ_entries+0xEF4) +/* 03F198 7F00A668 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03F19C 7F00A66C 8C84B11C */ lw $a0, %lo(PitemZ_entries+0xEF4)($a0) +/* 03F1A0 7F00A670 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03F1A4 7F00A674 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03F1A8 7F00A678 AC620000 */ sw $v0, ($v1) +/* 03F1AC 7F00A67C 00402025 */ move $a0, $v0 +/* 03F1B0 7F00A680 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03F1B4 7F00A684 3C053F80 */ lui $a1, 0x3f80 +/* 03F1B8 7F00A688 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03F1BC 7F00A68C 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03F1C0 7F00A690 0FC1B303 */ jal setsuboffset +/* 03F1C4 7F00A694 27A50020 */ addiu $a1, $sp, 0x20 +/* 03F1C8 7F00A698 0FC077E4 */ jal sub_GAME_7F01DF90 +/* 03F1CC 7F00A69C 00000000 */ nop +/* 03F1D0 7F00A6A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 03F1D4 7F00A6A4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03F1D8 7F00A6A8 03E00008 */ jr $ra +/* 03F1DC 7F00A6AC 00000000 */ nop +) +#endif + + + + + +void update_menu00_legalscreen(void) +{ + is_first_time_on_legal_screen = FALSE; + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + + +#ifdef NONMATCHING +void interface_menu00_legalscreen(void) { + s32 temp; + setvideo_far(60.0f); + video_related_21(1.3333334f); + set_page_height(100.0f, 10000.0f); + set_video2_settings_offset_24(0); + temp = menu_timer + clock_timer; + menu_timer = temp; + if (temp >= 0xF1) { + if (get_attached_controller_count() > 0) { + while (is_first_time_on_legal_screen == 0) { + set_menu_to_mode(MENU_NINTENDO_LOGO,1); + return; + } + set_menu_to_mode(MENU_NO_CONTROLLERS,1); + return; + } + if (get_controller_buttons_pressed(0, 0xFFFF)) { + if ((is_first_time_on_legal_screen == 0) && (is_first_time_on_main_menu == 0)) { + set_menu_to_mode(MENU_FILE_SELECT,1); + return; + } + set_menu_to_mode(MENU_NINTENDO_LOGO,1); + } + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519E4 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_800519E8 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu00_legalscreen +/* 03F20C 7F00A6DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F210 7F00A6E0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F214 7F00A6E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F218 7F00A6E8 44816000 */ mtc1 $at, $f12 +/* 03F21C 7F00A6EC 0C001151 */ jal setvideo_far +/* 03F220 7F00A6F0 00000000 */ nop +/* 03F224 7F00A6F4 3C018005 */ lui $at, %hi(D_800519E4) +/* 03F228 7F00A6F8 0C001164 */ jal video_related_21 +/* 03F22C 7F00A6FC C42C19E4 */ lwc1 $f12, %lo(D_800519E4)($at) +/* 03F230 7F00A700 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F234 7F00A704 44816000 */ mtc1 $at, $f12 +/* 03F238 7F00A708 3C018005 */ lui $at, %hi(D_800519E8) +/* 03F23C 7F00A70C 0C001194 */ jal set_page_height +/* 03F240 7F00A710 C42E19E8 */ lwc1 $f14, %lo(D_800519E8)($at) +/* 03F244 7F00A714 0C00114D */ jal set_video2_settings_offset_24 +/* 03F248 7F00A718 00002025 */ move $a0, $zero +/* 03F24C 7F00A71C 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F250 7F00A720 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F254 7F00A724 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03F258 7F00A728 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03F25C 7F00A72C 8C4E0000 */ lw $t6, ($v0) +/* 03F260 7F00A730 00002025 */ move $a0, $zero +/* 03F264 7F00A734 01CFC021 */ addu $t8, $t6, $t7 +/* 03F268 7F00A738 2B0100F1 */ slti $at, $t8, 0xf1 +/* 03F26C 7F00A73C 14200012 */ bnez $at, .L7F00A788 +/* 03F270 7F00A740 AC580000 */ sw $t8, ($v0) +/* 03F274 7F00A744 0C002E7E */ jal get_attached_controller_count +/* 03F278 7F00A748 00000000 */ nop +/* 03F27C 7F00A74C 1C400009 */ bgtz $v0, .L7F00A774 +/* 03F280 7F00A750 3C088003 */ lui $t0, %hi(is_first_time_on_legal_screen) +/* 03F284 7F00A754 8D08A92C */ lw $t0, %lo(is_first_time_on_legal_screen)($t0) +/* 03F288 7F00A758 24040016 */ li $a0, 22 +/* 03F28C 7F00A75C 51000006 */ beql $t0, $zero, .L7F00A778 +/* 03F290 7F00A760 24040001 */ li $a0, 1 +/* 03F294 7F00A764 0FC06975 */ jal set_menu_to_mode +/* 03F298 7F00A768 24050001 */ li $a1, 1 +/* 03F29C 7F00A76C 1000001A */ b .L7F00A7D8 +/* 03F2A0 7F00A770 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A774: +/* 03F2A4 7F00A774 24040001 */ li $a0, 1 +.L7F00A778: +/* 03F2A8 7F00A778 0FC06975 */ jal set_menu_to_mode +/* 03F2AC 7F00A77C 24050001 */ li $a1, 1 +/* 03F2B0 7F00A780 10000015 */ b .L7F00A7D8 +/* 03F2B4 7F00A784 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A788: +/* 03F2B8 7F00A788 0C0030EB */ jal get_controller_buttons_pressed +/* 03F2BC 7F00A78C 3405FFFF */ li $a1, 65535 +/* 03F2C0 7F00A790 10400010 */ beqz $v0, .L7F00A7D4 +/* 03F2C4 7F00A794 3C098003 */ lui $t1, %hi(is_first_time_on_legal_screen) +/* 03F2C8 7F00A798 8D29A92C */ lw $t1, %lo(is_first_time_on_legal_screen)($t1) +/* 03F2CC 7F00A79C 3C0A8003 */ lui $t2, %hi(is_first_time_on_main_menu) +/* 03F2D0 7F00A7A0 5520000D */ bnezl $t1, .L7F00A7D8 +/* 03F2D4 7F00A7A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F2D8 7F00A7A8 8D4AA930 */ lw $t2, %lo(is_first_time_on_main_menu)($t2) +/* 03F2DC 7F00A7AC 24050001 */ li $a1, 1 +/* 03F2E0 7F00A7B0 24040001 */ li $a0, 1 +/* 03F2E4 7F00A7B4 15400005 */ bnez $t2, .L7F00A7CC +/* 03F2E8 7F00A7B8 00000000 */ nop +/* 03F2EC 7F00A7BC 0FC06975 */ jal set_menu_to_mode +/* 03F2F0 7F00A7C0 24040005 */ li $a0, 5 +/* 03F2F4 7F00A7C4 10000004 */ b .L7F00A7D8 +/* 03F2F8 7F00A7C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A7CC: +/* 03F2FC 7F00A7CC 0FC06975 */ jal set_menu_to_mode +/* 03F300 7F00A7D0 24050001 */ li $a1, 1 +.L7F00A7D4: +/* 03F304 7F00A7D4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A7D8: +/* 03F308 7F00A7D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F30C 7F00A7DC 03E00008 */ jr $ra +/* 03F310 7F00A7E0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void display_aligned_white_text_to_screen(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) +{ + s32 sp4C; + s32 sp48; + s32 sp44; + s32 sp40; + s16 sp3C; + s32 temp_lo; + s32 temp_lo_2; + s32 phi_t0; + s32 phi_t6; + + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, arg5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + temp_lo = arg3 * sp48; + phi_t0 = temp_lo >> 1; + if (temp_lo < 0) + { + phi_t0 = (s32) (temp_lo + 1) >> 1; + } + temp_lo_2 = arg4 * sp4C; + sp44 = (s32) (arg1 - phi_t0); + phi_t6 = temp_lo_2 >> 1; + if (temp_lo_2 < 0) + { + phi_t6 = (s32) (temp_lo_2 + 1) >> 1; + } + sp40 = (s32) (arg2 - phi_t6); + sp3C = get_video2_settings_txtClipW(); + en_text_write_stuff(arg0, &sp44, &sp40, arg5, arg6, arg7, -1, sp3C, get_video2_settings_txtClipH(), 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel display_aligned_white_text_to_screen +/* 03F314 7F00A7E4 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 03F318 7F00A7E8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 03F31C 7F00A7EC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 03F320 7F00A7F0 AFA7005C */ sw $a3, 0x5c($sp) +/* 03F324 7F00A7F4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03F328 7F00A7F8 AFA40050 */ sw $a0, 0x50($sp) +/* 03F32C 7F00A7FC AFA50054 */ sw $a1, 0x54($sp) +/* 03F330 7F00A800 AFA60058 */ sw $a2, 0x58($sp) +/* 03F334 7F00A804 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 03F338 7F00A808 AFA00048 */ sw $zero, 0x48($sp) +/* 03F33C 7F00A80C AFA0004C */ sw $zero, 0x4c($sp) +/* 03F340 7F00A810 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 03F344 7F00A814 8FA60064 */ lw $a2, 0x64($sp) +/* 03F348 7F00A818 27A50048 */ addiu $a1, $sp, 0x48 +/* 03F34C 7F00A81C 27A4004C */ addiu $a0, $sp, 0x4c +/* 03F350 7F00A820 AFA00014 */ sw $zero, 0x14($sp) +/* 03F354 7F00A824 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03F358 7F00A828 AFAE0010 */ sw $t6, 0x10($sp) +/* 03F35C 7F00A82C 8FAF005C */ lw $t7, 0x5c($sp) +/* 03F360 7F00A830 8FB80048 */ lw $t8, 0x48($sp) +/* 03F364 7F00A834 8FAB0060 */ lw $t3, 0x60($sp) +/* 03F368 7F00A838 8FAC004C */ lw $t4, 0x4c($sp) +/* 03F36C 7F00A83C 01F80019 */ multu $t7, $t8 +/* 03F370 7F00A840 8FA90054 */ lw $t1, 0x54($sp) +/* 03F374 7F00A844 8FAF0058 */ lw $t7, 0x58($sp) +/* 03F378 7F00A848 0000C812 */ mflo $t9 +/* 03F37C 7F00A84C 07210003 */ bgez $t9, .L7F00A85C +/* 03F380 7F00A850 00194043 */ sra $t0, $t9, 1 +/* 03F384 7F00A854 27210001 */ addiu $at, $t9, 1 +/* 03F388 7F00A858 00014043 */ sra $t0, $at, 1 +.L7F00A85C: +/* 03F38C 7F00A85C 016C0019 */ multu $t3, $t4 +/* 03F390 7F00A860 01285023 */ subu $t2, $t1, $t0 +/* 03F394 7F00A864 AFAA0044 */ sw $t2, 0x44($sp) +/* 03F398 7F00A868 00006812 */ mflo $t5 +/* 03F39C 7F00A86C 05A10003 */ bgez $t5, .L7F00A87C +/* 03F3A0 7F00A870 000D7043 */ sra $t6, $t5, 1 +/* 03F3A4 7F00A874 25A10001 */ addiu $at, $t5, 1 +/* 03F3A8 7F00A878 00017043 */ sra $t6, $at, 1 +.L7F00A87C: +/* 03F3AC 7F00A87C 01EEC023 */ subu $t8, $t7, $t6 +/* 03F3B0 7F00A880 0C001107 */ jal get_video2_settings_txtClipW +/* 03F3B4 7F00A884 AFB80040 */ sw $t8, 0x40($sp) +/* 03F3B8 7F00A888 0C00110B */ jal get_video2_settings_txtClipH +/* 03F3BC 7F00A88C A7A2003C */ sh $v0, 0x3c($sp) +/* 03F3C0 7F00A890 8FB90068 */ lw $t9, 0x68($sp) +/* 03F3C4 7F00A894 8FA9006C */ lw $t1, 0x6c($sp) +/* 03F3C8 7F00A898 87AA003C */ lh $t2, 0x3c($sp) +/* 03F3CC 7F00A89C 2408FFFF */ li $t0, -1 +/* 03F3D0 7F00A8A0 AFA80018 */ sw $t0, 0x18($sp) +/* 03F3D4 7F00A8A4 8FA40050 */ lw $a0, 0x50($sp) +/* 03F3D8 7F00A8A8 27A50044 */ addiu $a1, $sp, 0x44 +/* 03F3DC 7F00A8AC 27A60040 */ addiu $a2, $sp, 0x40 +/* 03F3E0 7F00A8B0 8FA70064 */ lw $a3, 0x64($sp) +/* 03F3E4 7F00A8B4 AFA20020 */ sw $v0, 0x20($sp) +/* 03F3E8 7F00A8B8 AFA00024 */ sw $zero, 0x24($sp) +/* 03F3EC 7F00A8BC AFA00028 */ sw $zero, 0x28($sp) +/* 03F3F0 7F00A8C0 AFB90010 */ sw $t9, 0x10($sp) +/* 03F3F4 7F00A8C4 AFA90014 */ sw $t1, 0x14($sp) +/* 03F3F8 7F00A8C8 0FC2B6AF */ jal en_text_write_stuff +/* 03F3FC 7F00A8CC AFAA001C */ sw $t2, 0x1c($sp) +/* 03F400 7F00A8D0 8FBF0034 */ lw $ra, 0x34($sp) +/* 03F404 7F00A8D4 27BD0050 */ addiu $sp, $sp, 0x50 +/* 03F408 7F00A8D8 03E00008 */ jr $ra +/* 03F40C 7F00A8DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu00_legalscreen(s32 arg0) +{ + s32 spF4; + s32 spEC; + s32 spE8; + s32 spE4; + s32 spA0; + s32 sp58; + s32 temp_ret; + s32 temp_s0; + u32 temp_s0_2; + void *temp_t0; + void *temp_t6; + void *phi_t6; + void *phi_t0; + s32 phi_s1; + s32 phi_s0; + void *phi_s0_2; + s32 phi_s4; + + phi_t6 = &D_8002AABC; + phi_t0 = &spE4; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t0 = phi_t0 + 0xc; + temp_t0->unk-C = (s32) *phi_t6; + temp_t0->unk-8 = (s32) temp_t6->unk-8; + temp_t0->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&D_8002AABC + 0x3c)) + { + goto loop_1; + } + temp_t0->unk0 = (s32) temp_t6->unk0; + insert_imageDL(arg0); + sub_GAME_7F059694(&spA0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + temp_ret = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + spF4 = temp_ret; + matrix_4x4_copy(&spA0, temp_ret); + something_legalscreen_constructor->unkC = spF4; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + spEC = 3; + spE8 = 0; + subdraw(&spE4, something_legalscreen_constructor); + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp58); + sub_GAME_7F058C9C(&sp58, something_legalscreen_constructor->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) + { + goto loop_3; + } + } + phi_s0_2 = &D_8002A9CC; + phi_s4 = microcode_constructor(spF0); +loop_5: + temp_s0_2 = phi_s0_2 + 0x14; + phi_s0_2 = temp_s0_2; + phi_s4 = display_aligned_white_text_to_screen(phi_s4, phi_s0_2->unk0, phi_s0_2->unk4, phi_s0_2->unk8, (s32) phi_s0_2->unkC, get_textptr_for_textID(phi_s0_2->unk10), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge); + if (temp_s0_2 < &D_8002AABC) + { + goto loop_5; + } +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu00_legalscreen +/* 03F410 7F00A8E0 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 03F414 7F00A8E4 AFB10034 */ sw $s1, 0x34($sp) +/* 03F418 7F00A8E8 3C0E8003 */ lui $t6, %hi(D_8002AABC) +/* 03F41C 7F00A8EC 27B100E4 */ addiu $s1, $sp, 0xe4 +/* 03F420 7F00A8F0 AFB40040 */ sw $s4, 0x40($sp) +/* 03F424 7F00A8F4 25CEAABC */ addiu $t6, %lo(D_8002AABC) # addiu $t6, $t6, -0x5544 +/* 03F428 7F00A8F8 0080A025 */ move $s4, $a0 +/* 03F42C 7F00A8FC AFBF0044 */ sw $ra, 0x44($sp) +/* 03F430 7F00A900 AFB3003C */ sw $s3, 0x3c($sp) +/* 03F434 7F00A904 AFB20038 */ sw $s2, 0x38($sp) +/* 03F438 7F00A908 AFB00030 */ sw $s0, 0x30($sp) +/* 03F43C 7F00A90C 25D9003C */ addiu $t9, $t6, 0x3c +/* 03F440 7F00A910 02204025 */ move $t0, $s1 +.L7F00A914: +/* 03F444 7F00A914 8DC10000 */ lw $at, ($t6) +/* 03F448 7F00A918 25CE000C */ addiu $t6, $t6, 0xc +/* 03F44C 7F00A91C 2508000C */ addiu $t0, $t0, 0xc +/* 03F450 7F00A920 AD01FFF4 */ sw $at, -0xc($t0) +/* 03F454 7F00A924 8DC1FFF8 */ lw $at, -8($t6) +/* 03F458 7F00A928 AD01FFF8 */ sw $at, -8($t0) +/* 03F45C 7F00A92C 8DC1FFFC */ lw $at, -4($t6) +/* 03F460 7F00A930 15D9FFF8 */ bne $t6, $t9, .L7F00A914 +/* 03F464 7F00A934 AD01FFFC */ sw $at, -4($t0) +/* 03F468 7F00A938 8DC10000 */ lw $at, ($t6) +/* 03F46C 7F00A93C 02802025 */ move $a0, $s4 +/* 03F470 7F00A940 0FC07034 */ jal insert_imageDL +/* 03F474 7F00A944 AD010000 */ sw $at, ($t0) +/* 03F478 7F00A948 44800000 */ mtc1 $zero, $f0 +/* 03F47C 7F00A94C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03F480 7F00A950 44812000 */ mtc1 $at, $f4 +/* 03F484 7F00A954 27B000A0 */ addiu $s0, $sp, 0xa0 +/* 03F488 7F00A958 44050000 */ mfc1 $a1, $f0 +/* 03F48C 7F00A95C 44060000 */ mfc1 $a2, $f0 +/* 03F490 7F00A960 0040A025 */ move $s4, $v0 +/* 03F494 7F00A964 02002025 */ move $a0, $s0 +/* 03F498 7F00A968 3C07457A */ lui $a3, 0x457a +/* 03F49C 7F00A96C E7A00010 */ swc1 $f0, 0x10($sp) +/* 03F4A0 7F00A970 E7A00014 */ swc1 $f0, 0x14($sp) +/* 03F4A4 7F00A974 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03F4A8 7F00A978 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 03F4AC 7F00A97C E7A00024 */ swc1 $f0, 0x24($sp) +/* 03F4B0 7F00A980 0FC165A5 */ jal sub_GAME_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 +/* 03F4C0 7F00A990 8E690000 */ lw $t1, ($s3) +/* 03F4C4 7F00A994 AFB000E4 */ sw $s0, 0xe4($sp) +/* 03F4C8 7F00A998 8D2A0008 */ lw $t2, 8($t1) +/* 03F4CC 7F00A99C 8544000E */ lh $a0, 0xe($t2) +/* 03F4D0 7F00A9A0 00045980 */ sll $t3, $a0, 6 +/* 03F4D4 7F00A9A4 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03F4D8 7F00A9A8 01602025 */ move $a0, $t3 +/* 03F4DC 7F00A9AC AFA200F4 */ sw $v0, 0xf4($sp) +/* 03F4E0 7F00A9B0 02002025 */ move $a0, $s0 +/* 03F4E4 7F00A9B4 0FC16008 */ jal matrix_4x4_copy +/* 03F4E8 7F00A9B8 00402825 */ move $a1, $v0 +/* 03F4EC 7F00A9BC 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 03F4F0 7F00A9C0 8E6D0000 */ lw $t5, ($s3) +/* 03F4F4 7F00A9C4 ADAC000C */ sw $t4, 0xc($t5) +/* 03F4F8 7F00A9C8 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 03F4FC 7F00A9CC 8E640000 */ lw $a0, ($s3) +/* 03F500 7F00A9D0 24180003 */ li $t8, 3 +/* 03F504 7F00A9D4 AFB800EC */ sw $t8, 0xec($sp) +/* 03F508 7F00A9D8 AFA000E8 */ sw $zero, 0xe8($sp) +/* 03F50C 7F00A9DC AFB400F0 */ sw $s4, 0xf0($sp) +/* 03F510 7F00A9E0 02202025 */ move $a0, $s1 +/* 03F514 7F00A9E4 0FC1D1A1 */ jal subdraw +/* 03F518 7F00A9E8 8E650000 */ lw $a1, ($s3) +/* 03F51C 7F00A9EC 8E620000 */ lw $v0, ($s3) +/* 03F520 7F00A9F0 8FB400F0 */ lw $s4, 0xf0($sp) +/* 03F524 7F00A9F4 00008025 */ move $s0, $zero +/* 03F528 7F00A9F8 8C4F0008 */ lw $t7, 8($v0) +/* 03F52C 7F00A9FC 00008825 */ move $s1, $zero +/* 03F530 7F00AA00 27B20058 */ addiu $s2, $sp, 0x58 +/* 03F534 7F00AA04 85F9000E */ lh $t9, 0xe($t7) +/* 03F538 7F00AA08 1B200013 */ blez $t9, .L7F00AA58 +/* 03F53C 7F00AA0C 00000000 */ nop +/* 03F540 7F00AA10 8C4E000C */ lw $t6, 0xc($v0) +.L7F00AA14: +/* 03F544 7F00AA14 02402825 */ move $a1, $s2 +/* 03F548 7F00AA18 0FC16008 */ jal matrix_4x4_copy +/* 03F54C 7F00AA1C 01D12021 */ addu $a0, $t6, $s1 +/* 03F550 7F00AA20 8E680000 */ lw $t0, ($s3) +/* 03F554 7F00AA24 00105180 */ sll $t2, $s0, 6 +/* 03F558 7F00AA28 02402025 */ move $a0, $s2 +/* 03F55C 7F00AA2C 8D09000C */ lw $t1, 0xc($t0) +/* 03F560 7F00AA30 0FC16327 */ jal sub_GAME_7F058C9C +/* 03F564 7F00AA34 012A2821 */ addu $a1, $t1, $t2 +/* 03F568 7F00AA38 8E620000 */ lw $v0, ($s3) +/* 03F56C 7F00AA3C 26100001 */ addiu $s0, $s0, 1 +/* 03F570 7F00AA40 26310040 */ addiu $s1, $s1, 0x40 +/* 03F574 7F00AA44 8C4B0008 */ lw $t3, 8($v0) +/* 03F578 7F00AA48 856C000E */ lh $t4, 0xe($t3) +/* 03F57C 7F00AA4C 020C082A */ slt $at, $s0, $t4 +/* 03F580 7F00AA50 5420FFF0 */ bnezl $at, .L7F00AA14 +/* 03F584 7F00AA54 8C4E000C */ lw $t6, 0xc($v0) +.L7F00AA58: +/* 03F588 7F00AA58 0FC2B366 */ jal microcode_constructor +/* 03F58C 7F00AA5C 02802025 */ move $a0, $s4 +/* 03F590 7F00AA60 3C108003 */ lui $s0, %hi(D_8002A9CC) +/* 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 +/* 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 +.L7F00AA84: +/* 03F5B4 7F00AA84 0FC30776 */ jal get_textptr_for_textID +/* 03F5B8 7F00AA88 96040010 */ lhu $a0, 0x10($s0) +/* 03F5BC 7F00AA8C 8E0D000C */ lw $t5, 0xc($s0) +/* 03F5C0 7F00AA90 8E050000 */ lw $a1, ($s0) +/* 03F5C4 7F00AA94 8E060004 */ lw $a2, 4($s0) +/* 03F5C8 7F00AA98 8E070008 */ lw $a3, 8($s0) +/* 03F5CC 7F00AA9C 8E580000 */ lw $t8, ($s2) +/* 03F5D0 7F00AAA0 8E6F0000 */ lw $t7, ($s3) +/* 03F5D4 7F00AAA4 AFA20014 */ sw $v0, 0x14($sp) +/* 03F5D8 7F00AAA8 02802025 */ move $a0, $s4 +/* 03F5DC 7F00AAAC AFAD0010 */ sw $t5, 0x10($sp) +/* 03F5E0 7F00AAB0 AFB80018 */ sw $t8, 0x18($sp) +/* 03F5E4 7F00AAB4 0FC029F9 */ jal display_aligned_white_text_to_screen +/* 03F5E8 7F00AAB8 AFAF001C */ sw $t7, 0x1c($sp) +/* 03F5EC 7F00AABC 26100014 */ addiu $s0, $s0, 0x14 +/* 03F5F0 7F00AAC0 0211082B */ sltu $at, $s0, $s1 +/* 03F5F4 7F00AAC4 1420FFEF */ bnez $at, .L7F00AA84 +/* 03F5F8 7F00AAC8 0040A025 */ move $s4, $v0 +/* 03F5FC 7F00AACC 8FBF0044 */ lw $ra, 0x44($sp) +/* 03F600 7F00AAD0 8FB00030 */ lw $s0, 0x30($sp) +/* 03F604 7F00AAD4 8FB10034 */ lw $s1, 0x34($sp) +/* 03F608 7F00AAD8 8FB20038 */ lw $s2, 0x38($sp) +/* 03F60C 7F00AADC 8FB3003C */ lw $s3, 0x3c($sp) +/* 03F610 7F00AAE0 8FB40040 */ lw $s4, 0x40($sp) +/* 03F614 7F00AAE4 03E00008 */ jr $ra +/* 03F618 7F00AAE8 27BD0128 */ addiu $sp, $sp, 0x128 +) +#endif + + + +void reset_menutimer(void) { + menu_timer = 0; +} + +void dummy7F00AAF8(void) { + // (function likely stub) +} + + + + + +#ifdef NONMATCHING +void *interface_menu17_switchscreens(void) +{ + s32 temp_t7; + + setvideo_far(0x42700000); + video_related_21(D_800519EC); + set_page_height(0x42c80000, D_800519F0); + set_video2_settings_offset_24(0); + temp_t7 = menu_timer + 1; + menu_timer = temp_t7; + if (temp_t7 >= 4) + { + if (spectrum_related_flag == 0) + { + if (is_emulating_spectrum == 0) + { + maybe_prev_menu = (s32) menu_update; + menu_update = -1; + } + } + } + return &menu_timer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519EC +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_800519F0 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu17_switchscreens +/* 03F630 7F00AB00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F634 7F00AB04 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F638 7F00AB08 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F63C 7F00AB0C 44816000 */ mtc1 $at, $f12 +/* 03F640 7F00AB10 0C001151 */ jal setvideo_far +/* 03F644 7F00AB14 00000000 */ nop +/* 03F648 7F00AB18 3C018005 */ lui $at, %hi(D_800519EC) +/* 03F64C 7F00AB1C 0C001164 */ jal video_related_21 +/* 03F650 7F00AB20 C42C19EC */ lwc1 $f12, %lo(D_800519EC)($at) +/* 03F654 7F00AB24 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F658 7F00AB28 44816000 */ mtc1 $at, $f12 +/* 03F65C 7F00AB2C 3C018005 */ lui $at, %hi(D_800519F0) +/* 03F660 7F00AB30 0C001194 */ jal set_page_height +/* 03F664 7F00AB34 C42E19F0 */ lwc1 $f14, %lo(D_800519F0)($at) +/* 03F668 7F00AB38 0C00114D */ jal set_video2_settings_offset_24 +/* 03F66C 7F00AB3C 00002025 */ move $a0, $zero +/* 03F670 7F00AB40 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F674 7F00AB44 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F678 7F00AB48 8C4E0000 */ lw $t6, ($v0) +/* 03F67C 7F00AB4C 3C198003 */ lui $t9, %hi(spectrum_related_flag) +/* 03F680 7F00AB50 25CF0001 */ addiu $t7, $t6, 1 +/* 03F684 7F00AB54 29E10004 */ slti $at, $t7, 4 +/* 03F688 7F00AB58 1420000F */ bnez $at, .L7F00AB98 +/* 03F68C 7F00AB5C AC4F0000 */ sw $t7, ($v0) +/* 03F690 7F00AB60 8F39A944 */ lw $t9, %lo(spectrum_related_flag)($t9) +/* 03F694 7F00AB64 3C088003 */ lui $t0, %hi(is_emulating_spectrum) +/* 03F698 7F00AB68 5720000C */ bnezl $t9, .L7F00AB9C +/* 03F69C 7F00AB6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F6A0 7F00AB70 8D08A948 */ lw $t0, %lo(is_emulating_spectrum)($t0) +/* 03F6A4 7F00AB74 3C028003 */ lui $v0, %hi(menu_update) +/* 03F6A8 7F00AB78 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 03F6AC 7F00AB7C 55000007 */ bnezl $t0, .L7F00AB9C +/* 03F6B0 7F00AB80 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F6B4 7F00AB84 8C490000 */ lw $t1, ($v0) +/* 03F6B8 7F00AB88 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 03F6BC 7F00AB8C 240AFFFF */ li $t2, -1 +/* 03F6C0 7F00AB90 AC29A8C8 */ sw $t1, %lo(maybe_prev_menu)($at) +/* 03F6C4 7F00AB94 AC4A0000 */ sw $t2, ($v0) +.L7F00AB98: +/* 03F6C8 7F00AB98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AB9C: +/* 03F6CC 7F00AB9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F6D0 7F00ABA0 03E00008 */ jr $ra +/* 03F6D4 7F00ABA4 00000000 */ nop +) +#endif + + + + +void constructor_menu17_switchscreens(Gfx * DL) +{ + insert_imageDL(DL); +} + + + + + + + +#ifdef NONMATCHING +void init_menu01_nintendo(void) +{ + struct xyzpoint local_c; + + menu_timer = 0; + local_c.x = xyzpoint_8002aafc.x; + local_c.y = xyzpoint_8002aafc.y; + local_c.z = xyzpoint_8002aafc.z; + load_object_fill_header(PitemZ_entries[276].header, PitemZ_entries[276].filename, ptr_logo_and_walletbond_DL,0x3c000,0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries[276].header); + something_screen_constructor = get_obj_instance_controller_for_header(PitemZ_entries[276].header); + set_obj_instance_controller_scale(something_screen_constructor, 1.0f); + setsuboffset(something_screen_constructor, &local_c); + musicTrack1Play(M_INTROSWOOSH); + maybe_is_in_menu = TRUE; + flt_CODE_bss_80069614 = D_800519F4; + flt_CODE_bss_80069618 = D_800519F8; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519F4 +.word 0xBFB2B8C3 /* -1.3962635;*/ +glabel D_800519F8 +.word 0x3C962FC9 /* 0.018333333;*/ +.text +glabel init_menu01_nintendo +/* 03F6F8 7F00ABC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03F6FC 7F00ABCC 3C018003 */ lui $at, %hi(menu_timer) +/* 03F700 7F00ABD0 3C0F8003 */ lui $t7, %hi(D_8002AAFC) +/* 03F704 7F00ABD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 03F708 7F00ABD8 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03F70C 7F00ABDC 25EFAAFC */ addiu $t7, %lo(D_8002AAFC) # addiu $t7, $t7, -0x5504 +/* 03F710 7F00ABE0 8DE10000 */ lw $at, ($t7) +/* 03F714 7F00ABE4 27AE0024 */ addiu $t6, $sp, 0x24 +/* 03F718 7F00ABE8 8DE80004 */ lw $t0, 4($t7) +/* 03F71C 7F00ABEC ADC10000 */ sw $at, ($t6) +/* 03F720 7F00ABF0 8DE10008 */ lw $at, 8($t7) +/* 03F724 7F00ABF4 ADC80004 */ sw $t0, 4($t6) +/* 03F728 7F00ABF8 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03F72C 7F00ABFC ADC10008 */ sw $at, 8($t6) +/* 03F730 7F00AC00 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03F734 7F00AC04 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03F738 7F00AC08 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03F73C 7F00AC0C 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03F740 7F00AC10 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03F744 7F00AC14 8C440CF0 */ lw $a0, 0xcf0($v0) +/* 03F748 7F00AC18 8C450CF4 */ lw $a1, 0xcf4($v0) +/* 03F74C 7F00AC1C 0FC1D929 */ jal load_object_fill_header +/* 03F750 7F00AC20 AFA00010 */ sw $zero, 0x10($sp) +/* 03F754 7F00AC24 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCF0) +/* 03F758 7F00AC28 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03F75C 7F00AC2C 8C84AF18 */ lw $a0, %lo(PitemZ_entries+0xCF0)($a0) +/* 03F760 7F00AC30 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCF0) +/* 03F764 7F00AC34 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03F768 7F00AC38 8C84AF18 */ lw $a0, %lo(PitemZ_entries+0xCF0)($a0) +/* 03F76C 7F00AC3C 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03F770 7F00AC40 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03F774 7F00AC44 AC620000 */ sw $v0, ($v1) +/* 03F778 7F00AC48 00402025 */ move $a0, $v0 +/* 03F77C 7F00AC4C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03F780 7F00AC50 3C053F80 */ lui $a1, 0x3f80 +/* 03F784 7F00AC54 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03F788 7F00AC58 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03F78C 7F00AC5C 0FC1B303 */ jal setsuboffset +/* 03F790 7F00AC60 27A50024 */ addiu $a1, $sp, 0x24 +/* 03F794 7F00AC64 0C001B9F */ jal musicTrack1Play +/* 03F798 7F00AC68 2404002C */ li $a0, 44 +/* 03F79C 7F00AC6C 24090001 */ li $t1, 1 +/* 03F7A0 7F00AC70 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 03F7A4 7F00AC74 AC29A93C */ sw $t1, %lo(maybe_is_in_menu)($at) +/* 03F7A8 7F00AC78 3C018005 */ lui $at, %hi(D_800519F4) +/* 03F7AC 7F00AC7C C42419F4 */ lwc1 $f4, %lo(D_800519F4)($at) +/* 03F7B0 7F00AC80 3C018007 */ lui $at, %hi(flt_CODE_bss_80069614) +/* 03F7B4 7F00AC84 8FBF001C */ lw $ra, 0x1c($sp) +/* 03F7B8 7F00AC88 E4249614 */ swc1 $f4, %lo(flt_CODE_bss_80069614)($at) +/* 03F7BC 7F00AC8C 3C018005 */ lui $at, %hi(D_800519F8) +/* 03F7C0 7F00AC90 C42619F8 */ lwc1 $f6, %lo(D_800519F8)($at) +/* 03F7C4 7F00AC94 3C018007 */ lui $at, %hi(flt_CODE_bss_80069618) +/* 03F7C8 7F00AC98 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03F7CC 7F00AC9C 03E00008 */ jr $ra +/* 03F7D0 7F00ACA0 E4269618 */ swc1 $f6, %lo(flt_CODE_bss_80069618)($at) +) +#endif + + + + + +void update_menu01_nintendo(void) +{ + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + +#ifdef NONMATCHING +extern f32 menu01_aspect; +extern f32 menu01_pageheight; + +void interface_menu01_nintendo(void) +{ + setvideo_far(60.0f); + video_related_21(menu01_aspect); + set_page_height(100.0f, menu01_pageheight); + set_video2_settings_offset_24(0.0f); + + menu_timer = menu_timer + clock_timer; + if (menu_timer < 501) + { + if (get_controller_buttons_pressed(0, 0xffff) != 0) + { + if (is_first_time_on_main_menu == 0) + { + set_menu_to_mode(MENU_FILE_SELECT, 1); + } + else + { + prev_keypresses = 1; + set_menu_to_mode(MENU_RAREWARE_LOGO, 1); + } + } + } + else + { + set_menu_to_mode(MENU_RAREWARE_LOGO, 1); + return; + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu01_aspect +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel menu01_pageheight +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu01_nintendo +/* 03F7F8 7F00ACC8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F7FC 7F00ACCC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F800 7F00ACD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F804 7F00ACD4 44816000 */ mtc1 $at, $f12 +/* 03F808 7F00ACD8 0C001151 */ jal setvideo_far +/* 03F80C 7F00ACDC 00000000 */ nop +/* 03F810 7F00ACE0 3C018005 */ lui $at, %hi(menu01_aspect) +/* 03F814 7F00ACE4 0C001164 */ jal video_related_21 +/* 03F818 7F00ACE8 C42C19FC */ lwc1 $f12, %lo(menu01_aspect)($at) +/* 03F81C 7F00ACEC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F820 7F00ACF0 44816000 */ mtc1 $at, $f12 +/* 03F824 7F00ACF4 3C018005 */ lui $at, %hi(menu01_pageheight) +/* 03F828 7F00ACF8 0C001194 */ jal set_page_height +/* 03F82C 7F00ACFC C42E1A00 */ lwc1 $f14, %lo(menu01_pageheight)($at) +/* 03F830 7F00AD00 0C00114D */ jal set_video2_settings_offset_24 +/* 03F834 7F00AD04 00002025 */ move $a0, $zero +/* 03F838 7F00AD08 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F83C 7F00AD0C 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F840 7F00AD10 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03F844 7F00AD14 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03F848 7F00AD18 8C4E0000 */ lw $t6, ($v0) +/* 03F84C 7F00AD1C 24050001 */ li $a1, 1 +/* 03F850 7F00AD20 00002025 */ move $a0, $zero +/* 03F854 7F00AD24 01CFC021 */ addu $t8, $t6, $t7 +/* 03F858 7F00AD28 2B0101F5 */ slti $at, $t8, 0x1f5 +/* 03F85C 7F00AD2C 14200005 */ bnez $at, .L7F00AD44 +/* 03F860 7F00AD30 AC580000 */ sw $t8, ($v0) +/* 03F864 7F00AD34 0FC06975 */ jal set_menu_to_mode +/* 03F868 7F00AD38 24040002 */ li $a0, 2 +/* 03F86C 7F00AD3C 10000013 */ b .L7F00AD8C +/* 03F870 7F00AD40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD44: +/* 03F874 7F00AD44 0C0030EB */ jal get_controller_buttons_pressed +/* 03F878 7F00AD48 3405FFFF */ li $a1, 65535 +/* 03F87C 7F00AD4C 1040000E */ beqz $v0, .L7F00AD88 +/* 03F880 7F00AD50 3C088003 */ lui $t0, %hi(is_first_time_on_main_menu) +/* 03F884 7F00AD54 8D08A930 */ lw $t0, %lo(is_first_time_on_main_menu)($t0) +/* 03F888 7F00AD58 24090001 */ li $t1, 1 +/* 03F88C 7F00AD5C 3C018003 */ lui $at, %hi(prev_keypresses) +/* 03F890 7F00AD60 15000006 */ bnez $t0, .L7F00AD7C +/* 03F894 7F00AD64 24040002 */ li $a0, 2 +/* 03F898 7F00AD68 24040005 */ li $a0, 5 +/* 03F89C 7F00AD6C 0FC06975 */ jal set_menu_to_mode +/* 03F8A0 7F00AD70 24050001 */ li $a1, 1 +/* 03F8A4 7F00AD74 10000005 */ b .L7F00AD8C +/* 03F8A8 7F00AD78 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD7C: +/* 03F8AC 7F00AD7C AC29A934 */ sw $t1, %lo(prev_keypresses)($at) +/* 03F8B0 7F00AD80 0FC06975 */ jal set_menu_to_mode +/* 03F8B4 7F00AD84 24050001 */ li $a1, 1 +.L7F00AD88: +/* 03F8B8 7F00AD88 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD8C: +/* 03F8BC 7F00AD8C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F8C0 7F00AD90 03E00008 */ jr $ra +/* 03F8C4 7F00AD94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 constructor_menu01_nintendo(s32 arg0) +{ + s32 sp138; + s32 sp134; + s32 sp130; + s32 sp12C; + s32 sp128; + s32 spE0; + s32 sp90; + s32 sp50; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s8 temp_v1; + void *temp_t0; + void *temp_t6; + void *phi_t6; + void *phi_t0; + s8 phi_v1; + s8 phi_v1_2; + s32 phi_s1; + s32 phi_s0; + + phi_t6 = &D_8002AB08; + phi_t0 = &sp128; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t0 = phi_t0 + 0xc; + temp_t0->unk-C = (s32) *phi_t6; + temp_t0->unk-8 = (s32) temp_t6->unk-8; + temp_t0->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&D_8002AB08 + 0x3c)) + { + goto loop_1; + } + temp_t0->unk0 = (s32) temp_t6->unk0; + temp_ret = insert_imageDL(); + temp_ret->unk0 = 0xbc000002; + temp_ret->unk4 = 0x80000040; + temp_ret->unk8 = 0x3860010; + temp_ret->unkC = &D_8002A990; + arg0 = (s32) (temp_ret + 0x18); + temp_ret->unk10 = 0x3880010; + temp_ret->unk14 = &D_8002A988; + temp_v1 = 0xff - ((s32) ((menu_timer * 0xff) + 0xfffe8f72) / 0x64); + phi_v1 = temp_v1; + if (temp_v1 >= 0x100) + { + phi_v1 = (u8)0xff; + } + phi_v1_2 = phi_v1; + if (phi_v1 < 0) + { + phi_v1_2 = (u8)0; + } + D_8002A988.unk6 = (s8) phi_v1_2; + D_8002A988.unk5 = (s8) phi_v1_2; + D_8002A988.unk4 = (s8) phi_v1_2; + D_8002A988.unk2 = (s8) phi_v1_2; + D_8002A988.unk1 = (s8) phi_v1_2; + D_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, &D_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) + { + flt_CODE_bss_80069618 = (f32) D_80051A08; + } + sub_GAME_7F059694(&spE0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + matrix_4x4_multiply_in_place(&spE0, &sp90); + matrix_4x4_copy(&sp90, &spE0); + temp_ret_2 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + sp138 = temp_ret_2; + matrix_4x4_copy(&spE0, temp_ret_2); + something_legalscreen_constructor->unkC = sp138; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + sp130 = 3; + sp12C = 0; + sp134 = arg0; + subdraw(&sp128, something_legalscreen_constructor); + arg0 = sp134; + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_9: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp50); + sub_GAME_7F058C9C(&sp50, something_legalscreen_constructor->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) + { + goto loop_9; + } + } + return arg0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A04 +.word 0x3C8EFA35 /* 0.017453292;*/ +glabel D_80051A08 +.word 0x3F8CCCCD /* 1.1;*/ +glabel D_80051A0C +.word 0x3F8A35E7 /* 1.07977;*/ +.text +glabel constructor_menu01_nintendo +/* 03F8C8 7F00AD98 27BDFE98 */ addiu $sp, $sp, -0x168 +/* 03F8CC 7F00AD9C AFB20034 */ sw $s2, 0x34($sp) +/* 03F8D0 7F00ADA0 3C0E8003 */ lui $t6, %hi(D_8002AB08) +/* 03F8D4 7F00ADA4 27B20128 */ addiu $s2, $sp, 0x128 +/* 03F8D8 7F00ADA8 25CEAB08 */ addiu $t6, %lo(D_8002AB08) # addiu $t6, $t6, -0x54f8 +/* 03F8DC 7F00ADAC AFBF003C */ sw $ra, 0x3c($sp) +/* 03F8E0 7F00ADB0 AFB30038 */ sw $s3, 0x38($sp) +/* 03F8E4 7F00ADB4 AFB10030 */ sw $s1, 0x30($sp) +/* 03F8E8 7F00ADB8 AFB0002C */ sw $s0, 0x2c($sp) +/* 03F8EC 7F00ADBC 25D9003C */ addiu $t9, $t6, 0x3c +/* 03F8F0 7F00ADC0 02404025 */ move $t0, $s2 +.L7F00ADC4: +/* 03F8F4 7F00ADC4 8DC10000 */ lw $at, ($t6) +/* 03F8F8 7F00ADC8 25CE000C */ addiu $t6, $t6, 0xc +/* 03F8FC 7F00ADCC 2508000C */ addiu $t0, $t0, 0xc +/* 03F900 7F00ADD0 AD01FFF4 */ sw $at, -0xc($t0) +/* 03F904 7F00ADD4 8DC1FFF8 */ lw $at, -8($t6) +/* 03F908 7F00ADD8 AD01FFF8 */ sw $at, -8($t0) +/* 03F90C 7F00ADDC 8DC1FFFC */ lw $at, -4($t6) +/* 03F910 7F00ADE0 15D9FFF8 */ bne $t6, $t9, .L7F00ADC4 +/* 03F914 7F00ADE4 AD01FFFC */ sw $at, -4($t0) +/* 03F918 7F00ADE8 8DC10000 */ lw $at, ($t6) +/* 03F91C 7F00ADEC 0FC07034 */ jal insert_imageDL +/* 03F920 7F00ADF0 AD010000 */ sw $at, ($t0) +/* 03F924 7F00ADF4 3C09BC00 */ lui $t1, (0xBC000002 >> 16) # lui $t1, 0xbc00 +/* 03F928 7F00ADF8 3C0A8000 */ lui $t2, (0x80000040 >> 16) # lui $t2, 0x8000 +/* 03F92C 7F00ADFC 3C0B0386 */ lui $t3, (0x03860010 >> 16) # lui $t3, 0x386 +/* 03F930 7F00AE00 3C0C8003 */ lui $t4, %hi(D_8002A990) +/* 03F934 7F00AE04 258CA990 */ addiu $t4, %lo(D_8002A990) # addiu $t4, $t4, -0x5670 +/* 03F938 7F00AE08 356B0010 */ ori $t3, (0x03860010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 03F93C 7F00AE0C 354A0040 */ ori $t2, (0x80000040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 03F940 7F00AE10 35290002 */ ori $t1, (0xBC000002 & 0xFFFF) # ori $t1, $t1, 2 +/* 03F944 7F00AE14 AC490000 */ sw $t1, ($v0) +/* 03F948 7F00AE18 AC4A0004 */ sw $t2, 4($v0) +/* 03F94C 7F00AE1C AC4B0008 */ sw $t3, 8($v0) +/* 03F950 7F00AE20 AC4C000C */ sw $t4, 0xc($v0) +/* 03F954 7F00AE24 244D0018 */ addiu $t5, $v0, 0x18 +/* 03F958 7F00AE28 3C048003 */ lui $a0, %hi(D_8002A988) +/* 03F95C 7F00AE2C AFAD0168 */ sw $t5, 0x168($sp) +/* 03F960 7F00AE30 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 03F964 7F00AE34 2484A988 */ addiu $a0, %lo(D_8002A988) # addiu $a0, $a0, -0x5678 +/* 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) +/* 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 +/* 03F994 7F00AE64 0000C812 */ mflo $t9 +/* 03F998 7F00AE68 03217021 */ addu $t6, $t9, $at +/* 03F99C 7F00AE6C 24010064 */ li $at, 100 +/* 03F9A0 7F00AE70 01C1001A */ div $zero, $t6, $at +/* 03F9A4 7F00AE74 00004012 */ mflo $t0 +/* 03F9A8 7F00AE78 00A81823 */ subu $v1, $a1, $t0 +/* 03F9AC 7F00AE7C 28610100 */ slti $at, $v1, 0x100 +/* 03F9B0 7F00AE80 14200002 */ bnez $at, .L7F00AE8C +/* 03F9B4 7F00AE84 00000000 */ nop +/* 03F9B8 7F00AE88 240300FF */ li $v1, 255 +.L7F00AE8C: +/* 03F9BC 7F00AE8C 04610002 */ bgez $v1, .L7F00AE98 +/* 03F9C0 7F00AE90 3C018005 */ lui $at, %hi(D_80051A04) +/* 03F9C4 7F00AE94 00001825 */ move $v1, $zero +.L7F00AE98: +/* 03F9C8 7F00AE98 A0830006 */ sb $v1, 6($a0) +/* 03F9CC 7F00AE9C A0830005 */ sb $v1, 5($a0) +/* 03F9D0 7F00AEA0 A0830004 */ sb $v1, 4($a0) +/* 03F9D4 7F00AEA4 A0830002 */ sb $v1, 2($a0) +/* 03F9D8 7F00AEA8 A0830001 */ sb $v1, 1($a0) +/* 03F9DC 7F00AEAC A0830000 */ sb $v1, ($a0) +/* 03F9E0 7F00AEB0 C4261A04 */ lwc1 $f6, %lo(D_80051A04)($at) +/* 03F9E4 7F00AEB4 C4440000 */ lwc1 $f4, ($v0) +/* 03F9E8 7F00AEB8 27B10090 */ addiu $s1, $sp, 0x90 +/* 03F9EC 7F00AEBC 02202825 */ move $a1, $s1 +/* 03F9F0 7F00AEC0 46062200 */ add.s $f8, $f4, $f6 +/* 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 +/* 03FA08 7F00AED8 C60C0000 */ lwc1 $f12, ($s0) +/* 03FA0C 7F00AEDC 0FC162EE */ jal matrix_scalar_multiply_3 +/* 03FA10 7F00AEE0 02202825 */ move $a1, $s1 +/* 03FA14 7F00AEE4 3C018005 */ lui $at, %hi(D_80051A08) +/* 03FA18 7F00AEE8 C4201A08 */ lwc1 $f0, %lo(D_80051A08)($at) +/* 03FA1C 7F00AEEC 3C018005 */ lui $at, %hi(D_80051A0C) +/* 03FA20 7F00AEF0 C4301A0C */ lwc1 $f16, %lo(D_80051A0C)($at) +/* 03FA24 7F00AEF4 C60A0000 */ lwc1 $f10, ($s0) +/* 03FA28 7F00AEF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03FA2C 7F00AEFC 44813000 */ mtc1 $at, $f6 +/* 03FA30 7F00AF00 46105482 */ mul.s $f18, $f10, $f16 +/* 03FA34 7F00AF04 3C07457A */ lui $a3, 0x457a +/* 03FA38 7F00AF08 E6120000 */ swc1 $f18, ($s0) +/* 03FA3C 7F00AF0C C6040000 */ lwc1 $f4, ($s0) +/* 03FA40 7F00AF10 4604003C */ c.lt.s $f0, $f4 +/* 03FA44 7F00AF14 00000000 */ nop +/* 03FA48 7F00AF18 45020003 */ bc1fl .L7F00AF28 +/* 03FA4C 7F00AF1C 44800000 */ mtc1 $zero, $f0 +/* 03FA50 7F00AF20 E6000000 */ swc1 $f0, ($s0) +/* 03FA54 7F00AF24 44800000 */ mtc1 $zero, $f0 +.L7F00AF28: +/* 03FA58 7F00AF28 27B000E0 */ addiu $s0, $sp, 0xe0 +/* 03FA5C 7F00AF2C 02002025 */ move $a0, $s0 +/* 03FA60 7F00AF30 44050000 */ mfc1 $a1, $f0 +/* 03FA64 7F00AF34 44060000 */ mfc1 $a2, $f0 +/* 03FA68 7F00AF38 E7A60020 */ swc1 $f6, 0x20($sp) +/* 03FA6C 7F00AF3C E7A00010 */ swc1 $f0, 0x10($sp) +/* 03FA70 7F00AF40 E7A00014 */ swc1 $f0, 0x14($sp) +/* 03FA74 7F00AF44 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03FA78 7F00AF48 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 03FA7C 7F00AF4C 0FC165A5 */ jal sub_GAME_7F059694 +/* 03FA80 7F00AF50 E7A00024 */ swc1 $f0, 0x24($sp) +/* 03FA84 7F00AF54 02002025 */ move $a0, $s0 +/* 03FA88 7F00AF58 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 03FA8C 7F00AF5C 02202825 */ move $a1, $s1 +/* 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 +/* 03FAA4 7F00AF74 8E690000 */ lw $t1, ($s3) +/* 03FAA8 7F00AF78 AFB00128 */ sw $s0, 0x128($sp) +/* 03FAAC 7F00AF7C 8D2A0008 */ lw $t2, 8($t1) +/* 03FAB0 7F00AF80 8544000E */ lh $a0, 0xe($t2) +/* 03FAB4 7F00AF84 00045980 */ sll $t3, $a0, 6 +/* 03FAB8 7F00AF88 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03FABC 7F00AF8C 01602025 */ move $a0, $t3 +/* 03FAC0 7F00AF90 AFA20138 */ sw $v0, 0x138($sp) +/* 03FAC4 7F00AF94 02002025 */ move $a0, $s0 +/* 03FAC8 7F00AF98 0FC16008 */ jal matrix_4x4_copy +/* 03FACC 7F00AF9C 00402825 */ move $a1, $v0 +/* 03FAD0 7F00AFA0 8FAC0138 */ lw $t4, 0x138($sp) +/* 03FAD4 7F00AFA4 8E6D0000 */ lw $t5, ($s3) +/* 03FAD8 7F00AFA8 ADAC000C */ sw $t4, 0xc($t5) +/* 03FADC 7F00AFAC 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 03FAE0 7F00AFB0 8E640000 */ lw $a0, ($s3) +/* 03FAE4 7F00AFB4 8FAF0168 */ lw $t7, 0x168($sp) +/* 03FAE8 7F00AFB8 24180003 */ li $t8, 3 +/* 03FAEC 7F00AFBC AFB80130 */ sw $t8, 0x130($sp) +/* 03FAF0 7F00AFC0 AFA0012C */ sw $zero, 0x12c($sp) +/* 03FAF4 7F00AFC4 02402025 */ move $a0, $s2 +/* 03FAF8 7F00AFC8 8E650000 */ lw $a1, ($s3) +/* 03FAFC 7F00AFCC 0FC1D1A1 */ jal subdraw +/* 03FB00 7F00AFD0 AFAF0134 */ sw $t7, 0x134($sp) +/* 03FB04 7F00AFD4 8FB90134 */ lw $t9, 0x134($sp) +/* 03FB08 7F00AFD8 8E620000 */ lw $v0, ($s3) +/* 03FB0C 7F00AFDC 00008025 */ move $s0, $zero +/* 03FB10 7F00AFE0 AFB90168 */ sw $t9, 0x168($sp) +/* 03FB14 7F00AFE4 8C4E0008 */ lw $t6, 8($v0) +/* 03FB18 7F00AFE8 00008825 */ move $s1, $zero +/* 03FB1C 7F00AFEC 27B20050 */ addiu $s2, $sp, 0x50 +/* 03FB20 7F00AFF0 85C8000E */ lh $t0, 0xe($t6) +/* 03FB24 7F00AFF4 59000014 */ blezl $t0, .L7F00B048 +/* 03FB28 7F00AFF8 8FBF003C */ lw $ra, 0x3c($sp) +/* 03FB2C 7F00AFFC 8C49000C */ lw $t1, 0xc($v0) +.L7F00B000: +/* 03FB30 7F00B000 02402825 */ move $a1, $s2 +/* 03FB34 7F00B004 0FC16008 */ jal matrix_4x4_copy +/* 03FB38 7F00B008 01312021 */ addu $a0, $t1, $s1 +/* 03FB3C 7F00B00C 8E6A0000 */ lw $t2, ($s3) +/* 03FB40 7F00B010 00106180 */ sll $t4, $s0, 6 +/* 03FB44 7F00B014 02402025 */ move $a0, $s2 +/* 03FB48 7F00B018 8D4B000C */ lw $t3, 0xc($t2) +/* 03FB4C 7F00B01C 0FC16327 */ jal sub_GAME_7F058C9C +/* 03FB50 7F00B020 016C2821 */ addu $a1, $t3, $t4 +/* 03FB54 7F00B024 8E620000 */ lw $v0, ($s3) +/* 03FB58 7F00B028 26100001 */ addiu $s0, $s0, 1 +/* 03FB5C 7F00B02C 26310040 */ addiu $s1, $s1, 0x40 +/* 03FB60 7F00B030 8C4D0008 */ lw $t5, 8($v0) +/* 03FB64 7F00B034 85B8000E */ lh $t8, 0xe($t5) +/* 03FB68 7F00B038 0218082A */ slt $at, $s0, $t8 +/* 03FB6C 7F00B03C 5420FFF0 */ bnezl $at, .L7F00B000 +/* 03FB70 7F00B040 8C49000C */ lw $t1, 0xc($v0) +/* 03FB74 7F00B044 8FBF003C */ lw $ra, 0x3c($sp) +.L7F00B048: +/* 03FB78 7F00B048 8FA20168 */ lw $v0, 0x168($sp) +/* 03FB7C 7F00B04C 8FB0002C */ lw $s0, 0x2c($sp) +/* 03FB80 7F00B050 8FB10030 */ lw $s1, 0x30($sp) +/* 03FB84 7F00B054 8FB20034 */ lw $s2, 0x34($sp) +/* 03FB88 7F00B058 8FB30038 */ lw $s3, 0x38($sp) +/* 03FB8C 7F00B05C 03E00008 */ jr $ra +/* 03FB90 7F00B060 27BD0168 */ addiu $sp, $sp, 0x168 +) +#endif + + + +void init_menu02_rarelogo(void) +{ + sub_GAME_7F008B58(ptr_logo_and_walletbond_DL, 0x78000); + play_sfx_a1(ptr_sfx_buf, 0x102, 0); +} + +void update_menu02_rareware(void) { + return; +} + +void interface_menu02_rareware(void) +{ + set_video2_settings_offset_24(0); + if (sub_GAME_7F008DD0() != 0) + { + set_menu_to_mode(MENU_EYE_INTRO, 1); + return; + } + if (get_controller_buttons_pressed(0, 0xffff) != 0) + { + if (is_first_time_on_main_menu == 0) + { + set_menu_to_mode(MENU_FILE_SELECT, 1); + return; + } + prev_keypresses = 1; + set_menu_to_mode(MENU_EYE_INTRO, 1); + } +} + +void constructor_menu02_rareware(Gfx * DL) { + retrieve_display_rareware_logo(DL); +} + + + +void init_menu03_eyeintro(void) { + sub_GAME_7F008E80(ptr_logo_and_walletbond_DL, 0x78000); + musicTrack1Play(2); + maybe_is_in_menu = 1; +} + +void update_menu_03_eye(void) { + sub_GAME_7F00920C(); +} + +void interface_menu03_eye(void) { + set_video2_settings_offset_24(0); + if (sub_GAME_7F009744() != 0) { + set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); + return; + } + if (get_controller_buttons_pressed(0, 0xffff) != 0) { + if (is_first_time_on_main_menu == 0) { + set_menu_to_mode(MENU_FILE_SELECT, 1); + return; + } + prev_keypresses = 1; + set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); + } +} + +void constructor_menu03_eye(Gfx * DL) { + sub_GAME_7F009254(DL); +} + + + + + +#ifdef NONMATCHING +void init_menu04_goldeneyelogo(void) +{ + s32 sp24; + s32 temp_ret; + + menu_timer = 0; + sp24.unk0 = (s32) D_8002AB48.unk0; + sp24.unk4 = (s32) D_8002AB48.unk4; + sp24.unk8 = (s32) D_8002AB48.unk8; + load_object_fill_header(PitemZ_entries.unkCFC, PitemZ_entries.unkD00, ptr_logo_and_walletbond_DL, 0x3c000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PgoldeneyelogoZ_header); + temp_ret = get_obj_instance_controller_for_header(PgoldeneyelogoZ_header); + something_legalscreen_constructor = temp_ret; + set_obj_instance_controller_scale(temp_ret, 0x3f800000); + setsuboffset(something_legalscreen_constructor, &sp24); +} +#else +GLOBAL_ASM( +.text +glabel init_menu04_goldeneyelogo +/* 03FD88 7F00B258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03FD8C 7F00B25C 3C018003 */ lui $at, %hi(menu_timer) +/* 03FD90 7F00B260 3C0F8003 */ lui $t7, %hi(D_8002AB48) +/* 03FD94 7F00B264 AFBF001C */ sw $ra, 0x1c($sp) +/* 03FD98 7F00B268 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03FD9C 7F00B26C 25EFAB48 */ addiu $t7, %lo(D_8002AB48) # addiu $t7, $t7, -0x54b8 +/* 03FDA0 7F00B270 8DE10000 */ lw $at, ($t7) +/* 03FDA4 7F00B274 27AE0024 */ addiu $t6, $sp, 0x24 +/* 03FDA8 7F00B278 8DE80004 */ lw $t0, 4($t7) +/* 03FDAC 7F00B27C ADC10000 */ sw $at, ($t6) +/* 03FDB0 7F00B280 8DE10008 */ lw $at, 8($t7) +/* 03FDB4 7F00B284 ADC80004 */ sw $t0, 4($t6) +/* 03FDB8 7F00B288 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03FDBC 7F00B28C ADC10008 */ sw $at, 8($t6) +/* 03FDC0 7F00B290 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03FDC4 7F00B294 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03FDC8 7F00B298 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03FDCC 7F00B29C 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03FDD0 7F00B2A0 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03FDD4 7F00B2A4 8C440CFC */ lw $a0, 0xcfc($v0) +/* 03FDD8 7F00B2A8 8C450D00 */ lw $a1, 0xd00($v0) +/* 03FDDC 7F00B2AC 0FC1D929 */ jal load_object_fill_header +/* 03FDE0 7F00B2B0 AFA00010 */ sw $zero, 0x10($sp) +/* 03FDE4 7F00B2B4 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCFC) +/* 03FDE8 7F00B2B8 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03FDEC 7F00B2BC 8C84AF24 */ lw $a0, %lo(PitemZ_entries+0xCFC)($a0) +/* 03FDF0 7F00B2C0 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCFC) +/* 03FDF4 7F00B2C4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03FDF8 7F00B2C8 8C84AF24 */ lw $a0, %lo(PitemZ_entries+0xCFC)($a0) +/* 03FDFC 7F00B2CC 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03FE00 7F00B2D0 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03FE04 7F00B2D4 AC620000 */ sw $v0, ($v1) +/* 03FE08 7F00B2D8 00402025 */ move $a0, $v0 +/* 03FE0C 7F00B2DC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03FE10 7F00B2E0 3C053F80 */ lui $a1, 0x3f80 +/* 03FE14 7F00B2E4 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03FE18 7F00B2E8 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03FE1C 7F00B2EC 0FC1B303 */ jal setsuboffset +/* 03FE20 7F00B2F0 27A50024 */ addiu $a1, $sp, 0x24 +/* 03FE24 7F00B2F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 03FE28 7F00B2F8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03FE2C 7F00B2FC 03E00008 */ jr $ra +/* 03FE30 7F00B300 00000000 */ nop +) +#endif + + + + + +void update_menu04_goldeneye(void) { + is_first_time_on_main_menu = 0; + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + + +#ifdef NONMATCHING +void interface_menu04_goldeneyelogo(void) +{ + u32 uVar1; + + setvideo_far(60.00000000); + video_related_21(menu04_aspect); + set_page_height(100.00000000,(f32)menu04_pageheight); + set_video2_settings_offset_24(0); + menu_timer += clock_timer; + if (((is_first_time_on_main_menu == FALSE) || (0xb4 < menu_timer)) || + ((ge_logo_bool != FALSE && (0x5a < menu_timer)))) { + if (menu_timer < 0xb5) { + uVar1 = get_controller_buttons_pressed + ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG| + DUMMY_2|DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG| + B_BUTTON|A_BUTTON); + if ((uVar1 != 0) || ((is_first_time_on_main_menu != FALSE && (ge_logo_bool != FALSE)))) + { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + } + else { + if (prev_keypresses == 0) { + do_extended_cast_display(0); + set_menu_to_mode(MENU_DISPLAY_CAST,1); + } + else { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + } + } + else { + uVar1 = get_controller_buttons_pressed + ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2| + DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON| + A_BUTTON); + if (uVar1 != 0) { + ge_logo_bool = TRUE; + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A10 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A14 +.word 0x461C4000 /* 10000.0;*/ + +.text +glabel interface_menu04_goldeneyelogo +/* 03FE60 7F00B330 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03FE64 7F00B334 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03FE68 7F00B338 AFBF0014 */ sw $ra, 0x14($sp) +/* 03FE6C 7F00B33C 44816000 */ mtc1 $at, $f12 +/* 03FE70 7F00B340 0C001151 */ jal setvideo_far +/* 03FE74 7F00B344 00000000 */ nop +/* 03FE78 7F00B348 3C018005 */ lui $at, %hi(D_80051A10) +/* 03FE7C 7F00B34C 0C001164 */ jal video_related_21 +/* 03FE80 7F00B350 C42C1A10 */ lwc1 $f12, %lo(D_80051A10)($at) +/* 03FE84 7F00B354 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03FE88 7F00B358 44816000 */ mtc1 $at, $f12 +/* 03FE8C 7F00B35C 3C018005 */ lui $at, %hi(D_80051A14) +/* 03FE90 7F00B360 0C001194 */ jal set_page_height +/* 03FE94 7F00B364 C42E1A14 */ lwc1 $f14, %lo(D_80051A14)($at) +/* 03FE98 7F00B368 0C00114D */ jal set_video2_settings_offset_24 +/* 03FE9C 7F00B36C 00002025 */ move $a0, $zero +/* 03FEA0 7F00B370 3C038003 */ lui $v1, %hi(menu_timer) +/* 03FEA4 7F00B374 2463A8CC */ addiu $v1, %lo(menu_timer) # addiu $v1, $v1, -0x5734 +/* 03FEA8 7F00B378 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03FEAC 7F00B37C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03FEB0 7F00B380 8C6E0000 */ lw $t6, ($v1) +/* 03FEB4 7F00B384 3C198003 */ lui $t9, %hi(is_first_time_on_main_menu) +/* 03FEB8 7F00B388 01CFC021 */ addu $t8, $t6, $t7 +/* 03FEBC 7F00B38C AC780000 */ sw $t8, ($v1) +/* 03FEC0 7F00B390 8F39A930 */ lw $t9, %lo(is_first_time_on_main_menu)($t9) +/* 03FEC4 7F00B394 2B0100B5 */ slti $at, $t8, 0xb5 +/* 03FEC8 7F00B398 5320000B */ beql $t9, $zero, .L7F00B3C8 +/* 03FECC 7F00B39C 8C690000 */ lw $t1, ($v1) +/* 03FED0 7F00B3A0 10200008 */ beqz $at, .L7F00B3C4 +/* 03FED4 7F00B3A4 3C088003 */ lui $t0, %hi(D_8002A938) +/* 03FED8 7F00B3A8 8D08A938 */ lw $t0, %lo(D_8002A938)($t0) +/* 03FEDC 7F00B3AC 2B01005B */ slti $at, $t8, 0x5b +/* 03FEE0 7F00B3B0 00002025 */ move $a0, $zero +/* 03FEE4 7F00B3B4 11000027 */ beqz $t0, .L7F00B454 +/* 03FEE8 7F00B3B8 00000000 */ nop +/* 03FEEC 7F00B3BC 14200025 */ bnez $at, .L7F00B454 +/* 03FEF0 7F00B3C0 00000000 */ nop +.L7F00B3C4: +/* 03FEF4 7F00B3C4 8C690000 */ lw $t1, ($v1) +.L7F00B3C8: +/* 03FEF8 7F00B3C8 3C0A8003 */ lui $t2, %hi(prev_keypresses) +/* 03FEFC 7F00B3CC 00002025 */ move $a0, $zero +/* 03FF00 7F00B3D0 292100B5 */ slti $at, $t1, 0xb5 +/* 03FF04 7F00B3D4 14200010 */ bnez $at, .L7F00B418 +/* 03FF08 7F00B3D8 00000000 */ nop +/* 03FF0C 7F00B3DC 8D4AA934 */ lw $t2, %lo(prev_keypresses)($t2) +/* 03FF10 7F00B3E0 24040005 */ li $a0, 5 +/* 03FF14 7F00B3E4 11400005 */ beqz $t2, .L7F00B3FC +/* 03FF18 7F00B3E8 00000000 */ nop +/* 03FF1C 7F00B3EC 0FC06975 */ jal set_menu_to_mode +/* 03FF20 7F00B3F0 24050001 */ li $a1, 1 +/* 03FF24 7F00B3F4 1000001E */ b .L7F00B470 +/* 03FF28 7F00B3F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B3FC: +/* 03FF2C 7F00B3FC 0FC0619C */ jal do_extended_cast_display +/* 03FF30 7F00B400 00002025 */ move $a0, $zero +/* 03FF34 7F00B404 24040018 */ li $a0, 24 +/* 03FF38 7F00B408 0FC06975 */ jal set_menu_to_mode +/* 03FF3C 7F00B40C 24050001 */ li $a1, 1 +/* 03FF40 7F00B410 10000017 */ b .L7F00B470 +/* 03FF44 7F00B414 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B418: +/* 03FF48 7F00B418 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF4C 7F00B41C 3405FFFF */ li $a1, 65535 +/* 03FF50 7F00B420 14400007 */ bnez $v0, .L7F00B440 +/* 03FF54 7F00B424 3C0B8003 */ lui $t3, %hi(is_first_time_on_main_menu) +/* 03FF58 7F00B428 8D6BA930 */ lw $t3, %lo(is_first_time_on_main_menu)($t3) +/* 03FF5C 7F00B42C 3C0C8003 */ lui $t4, %hi(D_8002A938) +/* 03FF60 7F00B430 5160000F */ beql $t3, $zero, .L7F00B470 +/* 03FF64 7F00B434 8FBF0014 */ lw $ra, 0x14($sp) +/* 03FF68 7F00B438 8D8CA938 */ lw $t4, %lo(D_8002A938)($t4) +/* 03FF6C 7F00B43C 1180000B */ beqz $t4, .L7F00B46C +.L7F00B440: +/* 03FF70 7F00B440 24040005 */ li $a0, 5 +/* 03FF74 7F00B444 0FC06975 */ jal set_menu_to_mode +/* 03FF78 7F00B448 24050001 */ li $a1, 1 +/* 03FF7C 7F00B44C 10000008 */ b .L7F00B470 +/* 03FF80 7F00B450 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B454: +/* 03FF84 7F00B454 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF88 7F00B458 3405FFFF */ li $a1, 65535 +/* 03FF8C 7F00B45C 10400003 */ beqz $v0, .L7F00B46C +/* 03FF90 7F00B460 240D0001 */ li $t5, 1 +/* 03FF94 7F00B464 3C018003 */ lui $at, %hi(D_8002A938) +/* 03FF98 7F00B468 AC2DA938 */ sw $t5, %lo(D_8002A938)($at) +.L7F00B46C: +/* 03FF9C 7F00B46C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B470: +/* 03FFA0 7F00B470 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03FFA4 7F00B474 03E00008 */ jr $ra +/* 03FFA8 7F00B478 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 constructor_menu04_goldeneyelogo(s32 arg0) +{ + s32 sp150; + s32 sp148; + s32 sp144; + s32 sp140; + s32 spF8; + s32 spB0; + s32 sp5C; + s32 temp_a0; + s32 temp_ret; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s4; + s32 temp_v0; + s32 temp_v1; + void *temp_t1; + void *temp_t6; + void *phi_t6; + void *phi_t1; + s32 phi_s1; + s32 phi_s0; + + phi_t6 = &D_8002AB54; + phi_t1 = &sp140; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t1 = phi_t1 + 0xc; + temp_t1->unk-C = (s32) *phi_t6; + temp_t1->unk-8 = (s32) temp_t6->unk-8; + temp_t1->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t1 = temp_t1; + if (temp_t6 != (&D_8002AB54 + 0x3c)) + { + goto loop_1; + } + temp_t1->unk0 = (s32) temp_t6->unk0; + temp_s4 = insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)); + temp_ret = sub_GAME_7F0BD6F8(2); + temp_s0 = temp_ret; + guLookAtReflect(&spB0, temp_ret, 0.0f, 0.0f, 4000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + temp_v0 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v1 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v0->unk0 = 0xbc000002; + temp_v0->unk4 = 0x80000040; + temp_a0 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v1->unk0 = 0x3860010; + temp_v1->unk4 = &D_8002A978; + temp_a0->unk0 = 0x3880010; + temp_a0->unk4 = &D_8002A970; + temp_s4->unk0 = 0x3840010; + temp_s4->unk4 = temp_s0; + temp_s4 = temp_s4 + 8; + temp_s4->unk4 = (s32) (temp_s0 + 0x10); + temp_s4->unk0 = 0x3820010; + sub_GAME_7F059694(&spF8, 0.0f, 0.0f, 0x453b8000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + sp150 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + matrix_scalar_multiply(D_80051A18, &spF8); + matrix_4x4_copy(&spF8, sp150); + something_legalscreen_constructor->unkC = sp150; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + sp148 = 3; + sp144 = 0; + subdraw(&sp140, something_legalscreen_constructor); + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp5C); + sub_GAME_7F058C9C(&sp5C, something_legalscreen_constructor->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) + { + goto loop_3; + } + } + return sp14C; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A18 +.word 0x3F99999A /* 1.2;*/ +.text +glabel constructor_menu04_goldeneyelogo +/* 03FFAC 7F00B47C 27BDFE80 */ addiu $sp, $sp, -0x180 +/* 03FFB0 7F00B480 AFB20040 */ sw $s2, 0x40($sp) +/* 03FFB4 7F00B484 3C0E8003 */ lui $t6, %hi(D_8002AB54) +/* 03FFB8 7F00B488 27B20140 */ addiu $s2, $sp, 0x140 +/* 03FFBC 7F00B48C AFB40048 */ sw $s4, 0x48($sp) +/* 03FFC0 7F00B490 25CEAB54 */ addiu $t6, %lo(D_8002AB54) # addiu $t6, $t6, -0x54ac +/* 03FFC4 7F00B494 0080A025 */ move $s4, $a0 +/* 03FFC8 7F00B498 AFBF004C */ sw $ra, 0x4c($sp) +/* 03FFCC 7F00B49C AFB30044 */ sw $s3, 0x44($sp) +/* 03FFD0 7F00B4A0 AFB1003C */ sw $s1, 0x3c($sp) +/* 03FFD4 7F00B4A4 AFB00038 */ sw $s0, 0x38($sp) +/* 03FFD8 7F00B4A8 25D9003C */ addiu $t9, $t6, 0x3c +/* 03FFDC 7F00B4AC 02404825 */ move $t1, $s2 +.L7F00B4B0: +/* 03FFE0 7F00B4B0 8DC10000 */ lw $at, ($t6) +/* 03FFE4 7F00B4B4 25CE000C */ addiu $t6, $t6, 0xc +/* 03FFE8 7F00B4B8 2529000C */ addiu $t1, $t1, 0xc +/* 03FFEC 7F00B4BC AD21FFF4 */ sw $at, -0xc($t1) +/* 03FFF0 7F00B4C0 8DC1FFF8 */ lw $at, -8($t6) +/* 03FFF4 7F00B4C4 AD21FFF8 */ sw $at, -8($t1) +/* 03FFF8 7F00B4C8 8DC1FFFC */ lw $at, -4($t6) +/* 03FFFC 7F00B4CC 15D9FFF8 */ bne $t6, $t9, .L7F00B4B0 +/* 040000 7F00B4D0 AD21FFFC */ sw $at, -4($t1) +/* 040004 7F00B4D4 8DC10000 */ lw $at, ($t6) +/* 040008 7F00B4D8 02802025 */ move $a0, $s4 +/* 04000C 7F00B4DC 00002825 */ move $a1, $zero +/* 040010 7F00B4E0 00003025 */ move $a2, $zero +/* 040014 7F00B4E4 00003825 */ move $a3, $zero +/* 040018 7F00B4E8 0C0011B4 */ jal set_setfillcolor +/* 04001C 7F00B4EC AD210000 */ sw $at, ($t1) +/* 040020 7F00B4F0 0C000FBE */ jal insert_generic_fillrect +/* 040024 7F00B4F4 00402025 */ move $a0, $v0 +/* 040028 7F00B4F8 0040A025 */ move $s4, $v0 +/* 04002C 7F00B4FC 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 040030 7F00B500 24040002 */ li $a0, 2 +/* 040034 7F00B504 44800000 */ mtc1 $zero, $f0 +/* 040038 7F00B508 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 04003C 7F00B50C 44812000 */ mtc1 $at, $f4 +/* 040040 7F00B510 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040044 7F00B514 44813000 */ mtc1 $at, $f6 +/* 040048 7F00B518 44060000 */ mfc1 $a2, $f0 +/* 04004C 7F00B51C 44070000 */ mfc1 $a3, $f0 +/* 040050 7F00B520 00408025 */ move $s0, $v0 +/* 040054 7F00B524 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 040058 7F00B528 00402825 */ move $a1, $v0 +/* 04005C 7F00B52C E7A00014 */ swc1 $f0, 0x14($sp) +/* 040060 7F00B530 E7A00018 */ swc1 $f0, 0x18($sp) +/* 040064 7F00B534 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 040068 7F00B538 E7A00020 */ swc1 $f0, 0x20($sp) +/* 04006C 7F00B53C E7A00028 */ swc1 $f0, 0x28($sp) +/* 040070 7F00B540 E7A40010 */ swc1 $f4, 0x10($sp) +/* 040074 7F00B544 0C005CDC */ jal guLookAtReflect +/* 040078 7F00B548 E7A60024 */ swc1 $f6, 0x24($sp) +/* 04007C 7F00B54C 02801025 */ move $v0, $s4 +/* 040080 7F00B550 26940008 */ addiu $s4, $s4, 8 +/* 040084 7F00B554 3C0ABC00 */ lui $t2, (0xBC000002 >> 16) # lui $t2, 0xbc00 +/* 040088 7F00B558 3C0B8000 */ lui $t3, (0x80000040 >> 16) # lui $t3, 0x8000 +/* 04008C 7F00B55C 356B0040 */ ori $t3, (0x80000040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 040090 7F00B560 354A0002 */ ori $t2, (0xBC000002 & 0xFFFF) # ori $t2, $t2, 2 +/* 040094 7F00B564 02801825 */ move $v1, $s4 +/* 040098 7F00B568 26940008 */ addiu $s4, $s4, 8 +/* 04009C 7F00B56C AC4A0000 */ sw $t2, ($v0) +/* 0400A0 7F00B570 AC4B0004 */ sw $t3, 4($v0) +/* 0400A4 7F00B574 3C0C0386 */ lui $t4, (0x03860010 >> 16) # lui $t4, 0x386 +/* 0400A8 7F00B578 3C0D8003 */ lui $t5, %hi(D_8002A978) +/* 0400AC 7F00B57C 25ADA978 */ addiu $t5, %lo(D_8002A978) # addiu $t5, $t5, -0x5688 +/* 0400B0 7F00B580 358C0010 */ ori $t4, (0x03860010 & 0xFFFF) # ori $t4, $t4, 0x10 +/* 0400B4 7F00B584 02802025 */ move $a0, $s4 +/* 0400B8 7F00B588 26940008 */ addiu $s4, $s4, 8 +/* 0400BC 7F00B58C AC6C0000 */ sw $t4, ($v1) +/* 0400C0 7F00B590 AC6D0004 */ sw $t5, 4($v1) +/* 0400C4 7F00B594 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 0400C8 7F00B598 3C0F8003 */ lui $t7, %hi(D_8002A970) +/* 0400CC 7F00B59C 25EFA970 */ addiu $t7, %lo(D_8002A970) # addiu $t7, $t7, -0x5690 +/* 0400D0 7F00B5A0 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 0400D4 7F00B5A4 02802825 */ move $a1, $s4 +/* 0400D8 7F00B5A8 AC980000 */ sw $t8, ($a0) +/* 0400DC 7F00B5AC AC8F0004 */ sw $t7, 4($a0) +/* 0400E0 7F00B5B0 3C190384 */ lui $t9, (0x03840010 >> 16) # lui $t9, 0x384 +/* 0400E4 7F00B5B4 37390010 */ ori $t9, (0x03840010 & 0xFFFF) # ori $t9, $t9, 0x10 +/* 0400E8 7F00B5B8 44800000 */ mtc1 $zero, $f0 +/* 0400EC 7F00B5BC ACB90000 */ sw $t9, ($a1) +/* 0400F0 7F00B5C0 ACB00004 */ sw $s0, 4($a1) +/* 0400F4 7F00B5C4 26940008 */ addiu $s4, $s4, 8 +/* 0400F8 7F00B5C8 02804025 */ move $t0, $s4 +/* 0400FC 7F00B5CC 3C0E0382 */ lui $t6, (0x03820010 >> 16) # lui $t6, 0x382 +/* 040100 7F00B5D0 35CE0010 */ ori $t6, (0x03820010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 040104 7F00B5D4 26090010 */ addiu $t1, $s0, 0x10 +/* 040108 7F00B5D8 AD090004 */ sw $t1, 4($t0) +/* 04010C 7F00B5DC AD0E0000 */ sw $t6, ($t0) +/* 040110 7F00B5E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040114 7F00B5E4 44814000 */ mtc1 $at, $f8 +/* 040118 7F00B5E8 27B100F8 */ addiu $s1, $sp, 0xf8 +/* 04011C 7F00B5EC 3C07453B */ lui $a3, (0x453B8000 >> 16) # lui $a3, 0x453b +/* 040120 7F00B5F0 44050000 */ mfc1 $a1, $f0 +/* 040124 7F00B5F4 44060000 */ mfc1 $a2, $f0 +/* 040128 7F00B5F8 26940008 */ addiu $s4, $s4, 8 +/* 04012C 7F00B5FC 34E78000 */ ori $a3, (0x453B8000 & 0xFFFF) # ori $a3, $a3, 0x8000 +/* 040130 7F00B600 02202025 */ move $a0, $s1 +/* 040134 7F00B604 E7A00024 */ swc1 $f0, 0x24($sp) +/* 040138 7F00B608 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 04013C 7F00B60C E7A00018 */ swc1 $f0, 0x18($sp) +/* 040140 7F00B610 E7A00014 */ swc1 $f0, 0x14($sp) +/* 040144 7F00B614 E7A00010 */ swc1 $f0, 0x10($sp) +/* 040148 7F00B618 0FC165A5 */ jal sub_GAME_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 +/* 040158 7F00B628 8E6A0000 */ lw $t2, ($s3) +/* 04015C 7F00B62C AFB10140 */ sw $s1, 0x140($sp) +/* 040160 7F00B630 8D4B0008 */ lw $t3, 8($t2) +/* 040164 7F00B634 8564000E */ lh $a0, 0xe($t3) +/* 040168 7F00B638 00046180 */ sll $t4, $a0, 6 +/* 04016C 7F00B63C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 040170 7F00B640 01802025 */ move $a0, $t4 +/* 040174 7F00B644 3C018005 */ lui $at, %hi(D_80051A18) +/* 040178 7F00B648 AFA20150 */ sw $v0, 0x150($sp) +/* 04017C 7F00B64C C42C1A18 */ lwc1 $f12, %lo(D_80051A18)($at) +/* 040180 7F00B650 0FC1629F */ jal matrix_scalar_multiply +/* 040184 7F00B654 02202825 */ move $a1, $s1 +/* 040188 7F00B658 02202025 */ move $a0, $s1 +/* 04018C 7F00B65C 0FC16008 */ jal matrix_4x4_copy +/* 040190 7F00B660 8FA50150 */ lw $a1, 0x150($sp) +/* 040194 7F00B664 8FAD0150 */ lw $t5, 0x150($sp) +/* 040198 7F00B668 8E780000 */ lw $t8, ($s3) +/* 04019C 7F00B66C AF0D000C */ sw $t5, 0xc($t8) +/* 0401A0 7F00B670 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0401A4 7F00B674 8E640000 */ lw $a0, ($s3) +/* 0401A8 7F00B678 240F0003 */ li $t7, 3 +/* 0401AC 7F00B67C AFAF0148 */ sw $t7, 0x148($sp) +/* 0401B0 7F00B680 AFA00144 */ sw $zero, 0x144($sp) +/* 0401B4 7F00B684 AFB4014C */ sw $s4, 0x14c($sp) +/* 0401B8 7F00B688 02402025 */ move $a0, $s2 +/* 0401BC 7F00B68C 0FC1D1A1 */ jal subdraw +/* 0401C0 7F00B690 8E650000 */ lw $a1, ($s3) +/* 0401C4 7F00B694 8E620000 */ lw $v0, ($s3) +/* 0401C8 7F00B698 8FB4014C */ lw $s4, 0x14c($sp) +/* 0401CC 7F00B69C 00008025 */ move $s0, $zero +/* 0401D0 7F00B6A0 8C590008 */ lw $t9, 8($v0) +/* 0401D4 7F00B6A4 00008825 */ move $s1, $zero +/* 0401D8 7F00B6A8 27B2005C */ addiu $s2, $sp, 0x5c +/* 0401DC 7F00B6AC 872E000E */ lh $t6, 0xe($t9) +/* 0401E0 7F00B6B0 59C00014 */ blezl $t6, .L7F00B704 +/* 0401E4 7F00B6B4 8FBF004C */ lw $ra, 0x4c($sp) +/* 0401E8 7F00B6B8 8C49000C */ lw $t1, 0xc($v0) +.L7F00B6BC: +/* 0401EC 7F00B6BC 02402825 */ move $a1, $s2 +/* 0401F0 7F00B6C0 0FC16008 */ jal matrix_4x4_copy +/* 0401F4 7F00B6C4 01312021 */ addu $a0, $t1, $s1 +/* 0401F8 7F00B6C8 8E6A0000 */ lw $t2, ($s3) +/* 0401FC 7F00B6CC 00106180 */ sll $t4, $s0, 6 +/* 040200 7F00B6D0 02402025 */ move $a0, $s2 +/* 040204 7F00B6D4 8D4B000C */ lw $t3, 0xc($t2) +/* 040208 7F00B6D8 0FC16327 */ jal sub_GAME_7F058C9C +/* 04020C 7F00B6DC 016C2821 */ addu $a1, $t3, $t4 +/* 040210 7F00B6E0 8E620000 */ lw $v0, ($s3) +/* 040214 7F00B6E4 26100001 */ addiu $s0, $s0, 1 +/* 040218 7F00B6E8 26310040 */ addiu $s1, $s1, 0x40 +/* 04021C 7F00B6EC 8C4D0008 */ lw $t5, 8($v0) +/* 040220 7F00B6F0 85B8000E */ lh $t8, 0xe($t5) +/* 040224 7F00B6F4 0218082A */ slt $at, $s0, $t8 +/* 040228 7F00B6F8 5420FFF0 */ bnezl $at, .L7F00B6BC +/* 04022C 7F00B6FC 8C49000C */ lw $t1, 0xc($v0) +/* 040230 7F00B700 8FBF004C */ lw $ra, 0x4c($sp) +.L7F00B704: +/* 040234 7F00B704 02801025 */ move $v0, $s4 +/* 040238 7F00B708 8FB40048 */ lw $s4, 0x48($sp) +/* 04023C 7F00B70C 8FB00038 */ lw $s0, 0x38($sp) +/* 040240 7F00B710 8FB1003C */ lw $s1, 0x3c($sp) +/* 040244 7F00B714 8FB20040 */ lw $s2, 0x40($sp) +/* 040248 7F00B718 8FB30044 */ lw $s3, 0x44($sp) +/* 04024C 7F00B71C 03E00008 */ jr $ra +/* 040250 7F00B720 27BD0180 */ addiu $sp, $sp, 0x180 +) +#endif + + + +#ifdef NONMATCHING +void disable_all_switches(void *arg0) +{ + s32 temp_s0; + void *temp_t7; + void *phi_v1; + s32 phi_s1; + s32 phi_a2; + s32 phi_s0; + s32 phi_a2_2; + + phi_v1 = arg0->unk8; + phi_s1 = 0; + phi_a2 = arg0->unk8->unkC; + phi_s0 = 0; + if (arg0->unk8->unkC > 0) + { +loop_1: + temp_t7 = phi_v1->unk8 + phi_s1; + phi_a2_2 = phi_a2; + phi_v1 = phi_v1; + if (*temp_t7 != 0) + { + phi_a2_2 = phi_a2; + phi_v1 = phi_v1; + if (0x12 == (**temp_t7 & 0xff)) + { + *extract_id_from_object_structure_microcode(arg0, *temp_t7, phi_a2) = 0; + phi_a2_2 = arg0->unk8->unkC; + phi_v1 = arg0->unk8; + } + } + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 4; + phi_a2 = phi_a2_2; + phi_s0 = temp_s0; + if (temp_s0 < phi_a2_2) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel disable_all_switches +/* 040254 7F00B724 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 040258 7F00B728 AFBF0024 */ sw $ra, 0x24($sp) +/* 04025C 7F00B72C AFB30020 */ sw $s3, 0x20($sp) +/* 040260 7F00B730 AFB2001C */ sw $s2, 0x1c($sp) +/* 040264 7F00B734 AFB10018 */ sw $s1, 0x18($sp) +/* 040268 7F00B738 AFB00014 */ sw $s0, 0x14($sp) +/* 04026C 7F00B73C 8C830008 */ lw $v1, 8($a0) +/* 040270 7F00B740 00809025 */ move $s2, $a0 +/* 040274 7F00B744 00008025 */ move $s0, $zero +/* 040278 7F00B748 8466000C */ lh $a2, 0xc($v1) +/* 04027C 7F00B74C 00008825 */ move $s1, $zero +/* 040280 7F00B750 24130012 */ li $s3, 18 +/* 040284 7F00B754 58C00014 */ blezl $a2, .L7F00B7A8 +/* 040288 7F00B758 8FBF0024 */ lw $ra, 0x24($sp) +.L7F00B75C: +/* 04028C 7F00B75C 8C6E0008 */ lw $t6, 8($v1) +/* 040290 7F00B760 01D17821 */ addu $t7, $t6, $s1 +/* 040294 7F00B764 8DE50000 */ lw $a1, ($t7) +/* 040298 7F00B768 50A0000B */ beql $a1, $zero, .L7F00B798 +/* 04029C 7F00B76C 26100001 */ addiu $s0, $s0, 1 +/* 0402A0 7F00B770 94B80000 */ lhu $t8, ($a1) +/* 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 +/* 0402B4 7F00B784 02402025 */ move $a0, $s2 +/* 0402B8 7F00B788 AC400000 */ sw $zero, ($v0) +/* 0402BC 7F00B78C 8E430008 */ lw $v1, 8($s2) +/* 0402C0 7F00B790 8466000C */ lh $a2, 0xc($v1) +/* 0402C4 7F00B794 26100001 */ addiu $s0, $s0, 1 +.L7F00B798: +/* 0402C8 7F00B798 0206082A */ slt $at, $s0, $a2 +/* 0402CC 7F00B79C 1420FFEF */ bnez $at, .L7F00B75C +/* 0402D0 7F00B7A0 26310004 */ addiu $s1, $s1, 4 +/* 0402D4 7F00B7A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F00B7A8: +/* 0402D8 7F00B7A8 8FB00014 */ lw $s0, 0x14($sp) +/* 0402DC 7F00B7AC 8FB10018 */ lw $s1, 0x18($sp) +/* 0402E0 7F00B7B0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0402E4 7F00B7B4 8FB30020 */ lw $s3, 0x20($sp) +/* 0402E8 7F00B7B8 03E00008 */ jr $ra +/* 0402EC 7F00B7BC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void set_item_visibility_in_objinstance(void *arg0, s32 arg1, s32 arg2) +{ + void *temp_t9; + + temp_t9 = arg0->unk8->unk8 + (arg1 * 4); + if (*temp_t9 != 0) + { + *extract_id_from_object_structure_microcode(*temp_t9, *temp_t9) = arg2; + } +} +#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 + + + + + +void select_load_bond_picture(s32 *objinstance,u32 bondID) { + set_item_visibility_in_objinstance(objinstance,8,1); + set_item_visibility_in_objinstance(objinstance,9,0); + set_item_visibility_in_objinstance(objinstance,10,0); + set_item_visibility_in_objinstance(objinstance,0xb,0); + set_item_visibility_in_objinstance(objinstance,0xf,1); + set_item_visibility_in_objinstance(objinstance,0x10,0); + set_item_visibility_in_objinstance(objinstance,0x11,0); + set_item_visibility_in_objinstance(objinstance,0x12,0); +} + + + + + + +#ifdef NONMATCHING +void load_walletbond(void) +{ + s32 temp_ret; + void *temp_s0; + void *phi_s0; + + if (ptr_folder_object_instance == 0) + { + load_object_fill_header(PitemZ_entries.unkD08, PitemZ_entries.unkD0C, ptr_logo_and_walletbond_DL, 0xa000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries.unkD08); + phi_s0 = &ptr_folder_object_instance; +loop_2: + temp_ret = get_aircraft_obj_instance_controller(PitemZ_entries.unkD08); + *phi_s0 = temp_ret; + set_obj_instance_controller_scale(temp_ret, 0x3f800000); + temp_s0 = phi_s0 + 4; + phi_s0 = temp_s0; + if (temp_s0 != &D_8002A96C) + { + goto loop_2; + } + if (PitemZ_entries.unkD08->unk8->unk54 != 0) + { + sub_GAME_7F0BA640(PitemZ_entries.unkD08->unk8->unk54->unk4->unk1C + (PitemZ_entries.unkD08->unk8->unk54->unk4->unk0 & 0xffffff), 0, 8); + } + } +} +#else +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) +/* 0403E8 7F00B8B8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0403EC 7F00B8BC AFB20030 */ sw $s2, 0x30($sp) +/* 0403F0 7F00B8C0 AFB1002C */ sw $s1, 0x2c($sp) +/* 0403F4 7F00B8C4 AFB00028 */ sw $s0, 0x28($sp) +/* 0403F8 7F00B8C8 15C0002A */ bnez $t6, .L7F00B974 +/* 0403FC 7F00B8CC F7B40020 */ sdc1 $f20, 0x20($sp) +/* 040400 7F00B8D0 3C128004 */ lui $s2, %hi(PitemZ_entries) +/* 040404 7F00B8D4 2652A228 */ addiu $s2, %lo(PitemZ_entries) # addiu $s2, $s2, -0x5dd8 +/* 040408 7F00B8D8 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 04040C 7F00B8DC 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 040410 7F00B8E0 8E440D08 */ lw $a0, 0xd08($s2) +/* 040414 7F00B8E4 8E450D0C */ lw $a1, 0xd0c($s2) +/* 040418 7F00B8E8 3407A000 */ li $a3, 40960 +/* 04041C 7F00B8EC 0FC1D929 */ jal load_object_fill_header +/* 040420 7F00B8F0 AFA00010 */ sw $zero, 0x10($sp) +/* 040424 7F00B8F4 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 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) +/* 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 +.L7F00B914: +/* 040444 7F00B914 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 040448 7F00B918 8E440D08 */ lw $a0, 0xd08($s2) +/* 04044C 7F00B91C 4405A000 */ mfc1 $a1, $f20 +/* 040450 7F00B920 AE020000 */ sw $v0, ($s0) +/* 040454 7F00B924 0FC1B39E */ jal set_obj_instance_controller_scale +/* 040458 7F00B928 00402025 */ move $a0, $v0 +/* 04045C 7F00B92C 26100004 */ addiu $s0, $s0, 4 +/* 040460 7F00B930 1611FFF8 */ bne $s0, $s1, .L7F00B914 +/* 040464 7F00B934 00000000 */ nop +/* 040468 7F00B938 8E4F0D08 */ lw $t7, 0xd08($s2) +/* 04046C 7F00B93C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 040470 7F00B940 8DF80008 */ lw $t8, 8($t7) +/* 040474 7F00B944 8F030054 */ lw $v1, 0x54($t8) +/* 040478 7F00B948 5060000B */ beql $v1, $zero, .L7F00B978 +/* 04047C 7F00B94C 8FBF0034 */ lw $ra, 0x34($sp) +/* 040480 7F00B950 8C620004 */ lw $v0, 4($v1) +/* 040484 7F00B954 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 040488 7F00B958 00002825 */ move $a1, $zero +/* 04048C 7F00B95C 8C480000 */ lw $t0, ($v0) +/* 040490 7F00B960 8C59001C */ lw $t9, 0x1c($v0) +/* 040494 7F00B964 24060008 */ li $a2, 8 +/* 040498 7F00B968 01014824 */ and $t1, $t0, $at +/* 04049C 7F00B96C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0404A0 7F00B970 03292021 */ addu $a0, $t9, $t1 +.L7F00B974: +/* 0404A4 7F00B974 8FBF0034 */ lw $ra, 0x34($sp) +.L7F00B978: +/* 0404A8 7F00B978 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0404AC 7F00B97C 8FB00028 */ lw $s0, 0x28($sp) +/* 0404B0 7F00B980 8FB1002C */ lw $s1, 0x2c($sp) +/* 0404B4 7F00B984 8FB20030 */ lw $s2, 0x30($sp) +/* 0404B8 7F00B988 03E00008 */ jr $ra +/* 0404BC 7F00B98C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00B990(void) +{ + s32 temp_a0; + void *temp_s0; + void *phi_s0; + + 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; + } +} +#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 + + + +#ifdef NONMATCHING +void *init_menu05_fileselect(void) +{ + s32 sp24; + s32 sp20; + void *temp_v0; + void *phi_v0; + + prev_keypresses = 0; + sp24 = 0x6e000; + sp20 = (s32) (ptr_logo_and_walletbond_DL + 0xa000); + if (selected_folder_num < 0) + { + selected_folder_num = 0; + } + tab_2_selected = 0; + tab_3_selected = 0; + folder_selected_for_deletion = -1; + folder_selected_for_deletion_choice = 1; + sub_GAME_7F008DE4(&sp20, &sp24); + load_walletbond(); + if (maybe_is_in_menu != 0) + { + musicTrack1Play(0x17); + maybe_is_in_menu = 0; + } + menu_timer = 0; + cheat_activated_1 = (u8)0; + cheat_activated_1 = (u8)0; + phi_v0 = &cheat_activated_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 != &cheat_activated_74) + { + goto loop_5; + } + append_cheat_sp = 0; + append_cheat_mp = 0; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel init_menu05_fileselect +/* 040518 7F00B9E8 3C0F8003 */ lui $t7, %hi(ptr_logo_and_walletbond_DL) +/* 04051C 7F00B9EC 8DEFA950 */ lw $t7, %lo(ptr_logo_and_walletbond_DL)($t7) +/* 040520 7F00B9F0 3401A000 */ li $at, 40960 +/* 040524 7F00B9F4 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 040528 7F00B9F8 01E1C021 */ addu $t8, $t7, $at +/* 04052C 7F00B9FC 3C018003 */ lui $at, %hi(prev_keypresses) +/* 040530 7F00BA00 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 040534 7F00BA04 AC20A934 */ sw $zero, %lo(prev_keypresses)($at) +/* 040538 7F00BA08 8C590000 */ lw $t9, ($v0) +/* 04053C 7F00BA0C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 040540 7F00BA10 3C0E0006 */ lui $t6, (0x0006E000 >> 16) # lui $t6, 6 +/* 040544 7F00BA14 35CEE000 */ ori $t6, (0x0006E000 & 0xFFFF) # ori $t6, $t6, 0xe000 +/* 040548 7F00BA18 AFBF0014 */ sw $ra, 0x14($sp) +/* 04054C 7F00BA1C AFAE0024 */ sw $t6, 0x24($sp) +/* 040550 7F00BA20 07210002 */ bgez $t9, .L7F00BA2C +/* 040554 7F00BA24 AFB80020 */ sw $t8, 0x20($sp) +/* 040558 7F00BA28 AC400000 */ sw $zero, ($v0) +.L7F00BA2C: +/* 04055C 7F00BA2C 3C018003 */ lui $at, %hi(tab_2_selected) +/* 040560 7F00BA30 AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) +/* 040564 7F00BA34 3C018003 */ lui $at, %hi(tab_3_selected) +/* 040568 7F00BA38 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) +/* 04056C 7F00BA3C 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040570 7F00BA40 2408FFFF */ li $t0, -1 +/* 040574 7F00BA44 AC28A91C */ sw $t0, %lo(folder_selected_for_deletion)($at) +/* 040578 7F00BA48 3C018003 */ lui $at, %hi(folder_selected_for_deletion_choice) +/* 04057C 7F00BA4C 24090001 */ li $t1, 1 +/* 040580 7F00BA50 AC29A920 */ sw $t1, %lo(folder_selected_for_deletion_choice)($at) +/* 040584 7F00BA54 27A40020 */ addiu $a0, $sp, 0x20 +/* 040588 7F00BA58 0FC02379 */ jal sub_GAME_7F008DE4 +/* 04058C 7F00BA5C 27A50024 */ addiu $a1, $sp, 0x24 +/* 040590 7F00BA60 0FC02E2B */ jal load_walletbond +/* 040594 7F00BA64 00000000 */ nop +/* 040598 7F00BA68 3C0A8003 */ lui $t2, %hi(maybe_is_in_menu) +/* 04059C 7F00BA6C 8D4AA93C */ lw $t2, %lo(maybe_is_in_menu)($t2) +/* 0405A0 7F00BA70 11400005 */ beqz $t2, .L7F00BA88 +/* 0405A4 7F00BA74 00000000 */ nop +/* 0405A8 7F00BA78 0C001B9F */ jal musicTrack1Play +/* 0405AC 7F00BA7C 24040017 */ li $a0, 23 +/* 0405B0 7F00BA80 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 0405B4 7F00BA84 AC20A93C */ sw $zero, %lo(maybe_is_in_menu)($at) +.L7F00BA88: +/* 0405B8 7F00BA88 3C018003 */ lui $at, %hi(menu_timer) +/* 0405BC 7F00BA8C AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 0405C0 7F00BA90 3C018007 */ lui $at, %hi(cheat_activated_1) +/* 0405C4 7F00BA94 3C028007 */ lui $v0, %hi(cheat_activated_2) +/* 0405C8 7F00BA98 3C038007 */ lui $v1, %hi(cheat_activated_74) +/* 0405CC 7F00BA9C 246396EB */ addiu $v1, %lo(cheat_activated_74) # addiu $v1, $v1, -0x6915 +/* 0405D0 7F00BAA0 244296A3 */ addiu $v0, %lo(cheat_activated_2) # addiu $v0, $v0, -0x695d +/* 0405D4 7F00BAA4 A02096A1 */ sb $zero, %lo(CHEAT_AVAILABLE_EXTRA_CHARS)($at) +/* 0405D8 7F00BAA8 A02096A2 */ sb $zero, %lo(cheat_activated_1)($at) +.L7F00BAAC: +/* 0405DC 7F00BAAC 24420004 */ addiu $v0, $v0, 4 +/* 0405E0 7F00BAB0 A040FFFD */ sb $zero, -3($v0) +/* 0405E4 7F00BAB4 A040FFFE */ sb $zero, -2($v0) +/* 0405E8 7F00BAB8 A040FFFF */ sb $zero, -1($v0) +/* 0405EC 7F00BABC 1443FFFB */ bne $v0, $v1, .L7F00BAAC +/* 0405F0 7F00BAC0 A040FFFC */ sb $zero, -4($v0) +/* 0405F4 7F00BAC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0405F8 7F00BAC8 3C018003 */ lui $at, %hi(append_cheat_sp) +/* 0405FC 7F00BACC AC20A900 */ sw $zero, %lo(append_cheat_sp)($at) +/* 040600 7F00BAD0 3C018003 */ lui $at, %hi(append_cheat_mp) +/* 040604 7F00BAD4 AC20A904 */ sw $zero, %lo(append_cheat_mp)($at) +/* 040608 7F00BAD8 03E00008 */ jr $ra +/* 04060C 7F00BADC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + +void update_menu05_filesel(void) { + if ((menu_update == 0) || (maybe_prev_menu == 0)) { + sub_GAME_7F00B990(); + } +} + + + + + +#ifdef NONMATCHING +s32 get_chapter_briefing_entry(s32 arg0) +{ + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + + if (arg0 >= 0) + { + phi_v0 = (arg0 * 0x1c) + &mission_folder_setup_entries; + phi_v1 = arg0; +loop_2: + if (phi_v0->unk10 != 0) + { + return phi_v1; + } + temp_v1 = phi_v1 + -1; + phi_v0 = phi_v0 + -0x1c; + phi_v1 = temp_v1; + if (temp_v1 >= 0) + { + goto loop_2; + } + } + 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 + +/* 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 + + + +#ifdef NONMATCHING +void toggle_deletion_menu_for_folder(s32 arg0) +{ + f32 sp18; + + sub_GAME_7F077FF4((arg0 * 0xc) + &dword_CODE_bss_80069620, &sp18); + cursor_h_pos = (f32) (sp18 + -1.0f); + cursor_v_pos = (f32) (sp1C + 20.0f); +} +#else +GLOBAL_ASM( +.text +glabel toggle_deletion_menu_for_folder +/* 040698 7F00BB68 00047080 */ sll $t6, $a0, 2 +/* 04069C 7F00BB6C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0406A0 7F00BB70 01C47023 */ subu $t6, $t6, $a0 +/* 0406A4 7F00BB74 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80069620) +/* 0406A8 7F00BB78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0406AC 7F00BB7C 25EF9620 */ addiu $t7, %lo(dword_CODE_bss_80069620) # addiu $t7, $t7, -0x69e0 +/* 0406B0 7F00BB80 000E7080 */ sll $t6, $t6, 2 +/* 0406B4 7F00BB84 01CF2021 */ addu $a0, $t6, $t7 +/* 0406B8 7F00BB88 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0406BC 7F00BB8C 27A50018 */ addiu $a1, $sp, 0x18 +/* 0406C0 7F00BB90 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0406C4 7F00BB94 44813000 */ mtc1 $at, $f6 +/* 0406C8 7F00BB98 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0406CC 7F00BB9C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0406D0 7F00BBA0 C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0406D4 7F00BBA4 46062200 */ add.s $f8, $f4, $f6 +/* 0406D8 7F00BBA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0406DC 7F00BBAC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0406E0 7F00BBB0 E428A908 */ swc1 $f8, %lo(cursor_h_pos)($at) +/* 0406E4 7F00BBB4 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0406E8 7F00BBB8 44818000 */ mtc1 $at, $f16 +/* 0406EC 7F00BBBC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 0406F0 7F00BBC0 46105480 */ add.s $f18, $f10, $f16 +/* 0406F4 7F00BBC4 03E00008 */ jr $ra +/* 0406F8 7F00BBC8 E432A90C */ swc1 $f18, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 interface_menu05_fileselect(void) +{ + s32 spC8; + s32 sp88; + s32 sp80; + s32 sp7C; + s32 sp78; + s32 sp74; + f32 sp6C; + f32 sp64; + s32 sp60; + s32 sp5C; + void *sp54; + s32 temp_ret; + s32 temp_s2; + s32 temp_s2_2; + void *temp_a0; + void *phi_s0; + void *phi_s1; + s32 phi_s2; + s32 phi_a0; + s32 phi_a0_2; + void *phi_s0_2; + void *phi_s1_2; + s32 phi_s2_2; + s32 phi_return; + + if (((((get_controller_buttons_pressed(0, 0xffff) != 0) || (get_cur_controller_horz_stick_pos(0) < -5)) || (get_cur_controller_horz_stick_pos(0) >= 6)) || (get_cur_controller_vert_stick_pos(0) < -5)) || (get_cur_controller_vert_stick_pos(0) >= 6)) + { + menu_timer = 0; + } + else + { + menu_timer = (s32) (menu_timer + clock_timer); + } + setvideo_far(0x42700000); + video_related_21(D_80051A1C); + set_page_height(0x42c80000, D_80051A20); + set_video2_settings_offset_24(0); + sp54 = &D_8002AB94; + phi_s0 = &ptr_folder_object_instance; + phi_s1 = &dword_CODE_bss_80069620; + phi_s2 = 0; +loop_8: + sub_GAME_7F059694(&spC8, 0, 0, 0x457a0000, 1.0f); + matrix_4x4_set_identity_and_position(sp54, &sp88); + matrix_scalar_multiply(D_80051A24, &sp88); + matrix_4x4_multiply_in_place(&spC8, &sp88); + (*phi_s0)->unkC = sub_GAME_7F0BD714((*phi_s0)->unk8->unkE << 6); + matrix_4x4_copy(&sp88, (*phi_s0)->unkC); + temp_a0 = *phi_s0; + phi_s1->unk0 = (f32) temp_a0->unkC->unk30; + phi_s1->unk4 = (f32) temp_a0->unkC->unk34; + phi_s1->unk8 = (f32) temp_a0->unkC->unk38; + disable_all_switches(temp_a0); + select_load_bond_picture(*phi_s0, removed_would_have_returned_bond_for_folder_num(phi_s2)); + set_item_visibility_in_objinstance(*phi_s0, 0xe, 1); + set_item_visibility_in_objinstance(*phi_s0, 0xd, 1); + temp_s2 = phi_s2 + 1; + sp54 = (void *) (sp54 + 0xc); + phi_s0 = phi_s0 + 4; + phi_s1 = phi_s1 + 0xc; + phi_s2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_8; + } + if (selected_folder_num >= 0) + { + phi_a0 = selected_folder_num; + if (selected_folder_num == 0x64) + { + selected_folder_num = (s32) selected_folder_num_copy; + phi_a0 = selected_folder_num_copy; + } + if ((phi_a0 < 0) || (phi_a0 >= 4)) + { + selected_folder_num = 0; + phi_a0_2 = 0; + } + else + { + + } + toggle_deletion_menu_for_folder(phi_a0_2); + selected_folder_num = -1; + } + if (folder_selected_for_deletion >= 0) + { + if ((get_controller_buttons_pressed(0, 0x222) != 0) && (folder_selected_for_deletion_choice == 0)) + { + folder_selected_for_deletion_choice = 1; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x111) != 0) + { + if (folder_selected_for_deletion_choice != 0) + { + folder_selected_for_deletion_choice = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + if ((get_cur_controller_horz_stick_pos(0) < -0x2d) && (*&folder_selected_for_deletion_choice == 0)) + { + *&folder_selected_for_deletion_choice = 1; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + else + { + if (get_cur_controller_horz_stick_pos(0) >= 0x2e) + { + if (*&folder_selected_for_deletion_choice != 0) + { + *&folder_selected_for_deletion_choice = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (*&folder_selected_for_deletion_choice == 0) + { + delete_eeprom_folder(folder_selected_for_deletion, 0x76, 0); + play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + else + { + play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + folder_selected_for_deletion = -1; + phi_return = toggle_deletion_menu_for_folder(folder_selected_for_deletion); + } + else + { + temp_ret = get_controller_buttons_pressed(0, 0x4000); + phi_return = temp_ret; + if (temp_ret != 0) + { + toggle_deletion_menu_for_folder(folder_selected_for_deletion); + folder_selected_for_deletion = -1; + phi_return = play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + } + } + else + { + phi_s0_2 = 0x80030000 + -0x56a4; + phi_s1_2 = &dword_CODE_bss_80069620; + phi_s2_2 = 0; +loop_38: + sub_GAME_7F03F90C(*phi_s0_2, &sp80, &sp7C, &sp78, &sp74); + sub_GAME_7F03F948(phi_s1_2, &sp7C, &sp74, &sp6C, &sp64); + if (((((sp6C <= cursor_h_pos) && (cursor_h_pos <= sp64)) && (sp70 <= cursor_v_pos)) && (cursor_v_pos <= sp68)) && (get_controller_buttons_pressed(0, 0xb000) != 0)) + { + if (folder_selection_screen_option_icon == 0) + { + selected_folder_num = (s32) phi_s2_2; + play_sfx_a1(ptr_sfx_buf, 0x4d, 0); + } + else + { + if (folder_selection_screen_option_icon == 1) + { + sub_GAME_7F01EDA0(phi_s2_2); + folder_selection_screen_option_icon = 0; + play_sfx_a1(ptr_sfx_buf, 0x4f, 0); + } + else + { + if (folder_selection_screen_option_icon == 2) + { + if (sp60 >= 0) + { + if (sp5C >= 0) + { + folder_selected_for_deletion = (s32) phi_s2_2; + folder_selected_for_deletion_choice = 1; + } + } + folder_selection_screen_option_icon = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + } + else + { + temp_s2_2 = phi_s2_2 + 1; + phi_s0_2 = phi_s0_2 + 4; + phi_s1_2 = phi_s1_2 + 0xc; + phi_s2_2 = temp_s2_2; + if (temp_s2_2 != 4) + { + goto loop_38; + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if ((((folder_option_COPY_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_COPY_left_bound.unk8)) && (folder_option_COPY_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_COPY_left_bound.unkC)) + { + *&folder_selection_screen_option_icon = 1; + play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + } + else + { + if ((((folder_option_ERASE_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_ERASE_left_bound.unk8)) && (folder_option_ERASE_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_ERASE_left_bound.unkC)) + { + *&folder_selection_screen_option_icon = 2; + play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + } + else + { + if (*&folder_selection_screen_option_icon != 0) + { + *&folder_selection_screen_option_icon = 0; + play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + } + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + if (*&folder_selection_screen_option_icon != 0) + { + *&folder_selection_screen_option_icon = 0; + play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + } + } + } + phi_return = menu_control_stick_tracking(); + } + if (selected_folder_num >= 0) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + return set_menu_cursor_pos_to_setting(0); + } + if (menu_timer >= 0x709) + { + phi_return = set_menu_to_mode(MENU_LEGAL_SCREEN, 1); + } + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A1C +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A20 +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A24 +.word 0x3EBD70A4 /* 0.37;*/ +.text +glabel interface_menu05_fileselect +/* 0406FC 7F00BBCC 27BDFEF0 */ addiu $sp, $sp, -0x110 +/* 040700 7F00BBD0 AFBF0044 */ sw $ra, 0x44($sp) +/* 040704 7F00BBD4 AFB30040 */ sw $s3, 0x40($sp) +/* 040708 7F00BBD8 AFB2003C */ sw $s2, 0x3c($sp) +/* 04070C 7F00BBDC AFB10038 */ sw $s1, 0x38($sp) +/* 040710 7F00BBE0 AFB00034 */ sw $s0, 0x34($sp) +/* 040714 7F00BBE4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 040718 7F00BBE8 00002025 */ move $a0, $zero +/* 04071C 7F00BBEC 0C0030EB */ jal get_controller_buttons_pressed +/* 040720 7F00BBF0 3405FFFF */ li $a1, 65535 +/* 040724 7F00BBF4 14400015 */ bnez $v0, .L7F00BC4C +/* 040728 7F00BBF8 00000000 */ nop +/* 04072C 7F00BBFC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040730 7F00BC00 00002025 */ move $a0, $zero +/* 040734 7F00BC04 2841FFFB */ slti $at, $v0, -5 +/* 040738 7F00BC08 14200010 */ bnez $at, .L7F00BC4C +/* 04073C 7F00BC0C 00000000 */ nop +/* 040740 7F00BC10 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040744 7F00BC14 00002025 */ move $a0, $zero +/* 040748 7F00BC18 28410006 */ slti $at, $v0, 6 +/* 04074C 7F00BC1C 1020000B */ beqz $at, .L7F00BC4C +/* 040750 7F00BC20 00000000 */ nop +/* 040754 7F00BC24 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 040758 7F00BC28 00002025 */ move $a0, $zero +/* 04075C 7F00BC2C 2841FFFB */ slti $at, $v0, -5 +/* 040760 7F00BC30 14200006 */ bnez $at, .L7F00BC4C +/* 040764 7F00BC34 00000000 */ nop +/* 040768 7F00BC38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 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) +.L7F00BC4C: +/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(menu_timer) +/* 040780 7F00BC50 10000007 */ b .L7F00BC70 +/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +.L7F00BC58: +/* 040788 7F00BC58 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 04078C 7F00BC5C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(menu_timer)($t6) +/* 040794 7F00BC64 3C018003 */ lui $at, %hi(menu_timer) +/* 040798 7F00BC68 01CFC021 */ addu $t8, $t6, $t7 +/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(menu_timer)($at) +.L7F00BC70: +/* 0407A0 7F00BC70 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0407A4 7F00BC74 44816000 */ mtc1 $at, $f12 +/* 0407A8 7F00BC78 0C001151 */ jal setvideo_far +/* 0407AC 7F00BC7C 00000000 */ nop +/* 0407B0 7F00BC80 3C018005 */ lui $at, %hi(D_80051A1C) +/* 0407B4 7F00BC84 0C001164 */ jal video_related_21 +/* 0407B8 7F00BC88 C42C1A1C */ lwc1 $f12, %lo(D_80051A1C)($at) +/* 0407BC 7F00BC8C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0407C0 7F00BC90 44816000 */ mtc1 $at, $f12 +/* 0407C4 7F00BC94 3C018005 */ lui $at, %hi(D_80051A20) +/* 0407C8 7F00BC98 0C001194 */ jal set_page_height +/* 0407CC 7F00BC9C C42E1A20 */ lwc1 $f14, %lo(D_80051A20)($at) +/* 0407D0 7F00BCA0 0C00114D */ jal set_video2_settings_offset_24 +/* 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) +/* 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 +/* 0407F4 7F00BCC4 AFB90054 */ sw $t9, 0x54($sp) +/* 0407F8 7F00BCC8 00009025 */ move $s2, $zero +/* 0407FC 7F00BCCC 27B30088 */ addiu $s3, $sp, 0x88 +.L7F00BCD0: +/* 040800 7F00BCD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040804 7F00BCD4 44812000 */ mtc1 $at, $f4 +/* 040808 7F00BCD8 4405A000 */ mfc1 $a1, $f20 +/* 04080C 7F00BCDC 4406A000 */ mfc1 $a2, $f20 +/* 040810 7F00BCE0 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 040814 7F00BCE4 3C07457A */ lui $a3, 0x457a +/* 040818 7F00BCE8 E7B40010 */ swc1 $f20, 0x10($sp) +/* 04081C 7F00BCEC E7B40014 */ swc1 $f20, 0x14($sp) +/* 040820 7F00BCF0 E7B40018 */ swc1 $f20, 0x18($sp) +/* 040824 7F00BCF4 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 040828 7F00BCF8 E7B40024 */ swc1 $f20, 0x24($sp) +/* 04082C 7F00BCFC 0FC165A5 */ jal sub_GAME_7F059694 +/* 040830 7F00BD00 E7A40020 */ swc1 $f4, 0x20($sp) +/* 040834 7F00BD04 8FA40054 */ lw $a0, 0x54($sp) +/* 040838 7F00BD08 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 04083C 7F00BD0C 02602825 */ move $a1, $s3 +/* 040840 7F00BD10 3C018005 */ lui $at, %hi(D_80051A24) +/* 040844 7F00BD14 C42C1A24 */ lwc1 $f12, %lo(D_80051A24)($at) +/* 040848 7F00BD18 0FC1629F */ jal matrix_scalar_multiply +/* 04084C 7F00BD1C 02602825 */ move $a1, $s3 +/* 040850 7F00BD20 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 040854 7F00BD24 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 040858 7F00BD28 02602825 */ move $a1, $s3 +/* 04085C 7F00BD2C 8E080000 */ lw $t0, ($s0) +/* 040860 7F00BD30 8D090008 */ lw $t1, 8($t0) +/* 040864 7F00BD34 8524000E */ lh $a0, 0xe($t1) +/* 040868 7F00BD38 00045180 */ sll $t2, $a0, 6 +/* 04086C 7F00BD3C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 040870 7F00BD40 01402025 */ move $a0, $t2 +/* 040874 7F00BD44 8E0B0000 */ lw $t3, ($s0) +/* 040878 7F00BD48 02602025 */ move $a0, $s3 +/* 04087C 7F00BD4C AD62000C */ sw $v0, 0xc($t3) +/* 040880 7F00BD50 8E0C0000 */ lw $t4, ($s0) +/* 040884 7F00BD54 0FC16008 */ jal matrix_4x4_copy +/* 040888 7F00BD58 8D85000C */ lw $a1, 0xc($t4) +/* 04088C 7F00BD5C 8E040000 */ lw $a0, ($s0) +/* 040890 7F00BD60 8C8D000C */ lw $t5, 0xc($a0) +/* 040894 7F00BD64 C5A60030 */ lwc1 $f6, 0x30($t5) +/* 040898 7F00BD68 E6260000 */ swc1 $f6, ($s1) +/* 04089C 7F00BD6C 8C8E000C */ lw $t6, 0xc($a0) +/* 0408A0 7F00BD70 C5C80034 */ lwc1 $f8, 0x34($t6) +/* 0408A4 7F00BD74 E6280004 */ swc1 $f8, 4($s1) +/* 0408A8 7F00BD78 8C8F000C */ lw $t7, 0xc($a0) +/* 0408AC 7F00BD7C C5EA0038 */ lwc1 $f10, 0x38($t7) +/* 0408B0 7F00BD80 0FC02DC9 */ jal disable_all_switches +/* 0408B4 7F00BD84 E62A0008 */ swc1 $f10, 8($s1) +/* 0408B8 7F00BD88 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 0408BC 7F00BD8C 02402025 */ move $a0, $s2 +/* 0408C0 7F00BD90 8E040000 */ lw $a0, ($s0) +/* 0408C4 7F00BD94 0FC02E02 */ jal select_load_bond_picture +/* 0408C8 7F00BD98 00402825 */ move $a1, $v0 +/* 0408CC 7F00BD9C 8E040000 */ lw $a0, ($s0) +/* 0408D0 7F00BDA0 2405000E */ li $a1, 14 +/* 0408D4 7F00BDA4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0408D8 7F00BDA8 24060001 */ li $a2, 1 +/* 0408DC 7F00BDAC 8E040000 */ lw $a0, ($s0) +/* 0408E0 7F00BDB0 2405000D */ li $a1, 13 +/* 0408E4 7F00BDB4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0408E8 7F00BDB8 24060001 */ li $a2, 1 +/* 0408EC 7F00BDBC 8FB80054 */ lw $t8, 0x54($sp) +/* 0408F0 7F00BDC0 26520001 */ addiu $s2, $s2, 1 +/* 0408F4 7F00BDC4 24010004 */ li $at, 4 +/* 0408F8 7F00BDC8 2719000C */ addiu $t9, $t8, 0xc +/* 0408FC 7F00BDCC AFB90054 */ sw $t9, 0x54($sp) +/* 040900 7F00BDD0 26100004 */ addiu $s0, $s0, 4 +/* 040904 7F00BDD4 1641FFBE */ bne $s2, $at, .L7F00BCD0 +/* 040908 7F00BDD8 2631000C */ addiu $s1, $s1, 0xc +/* 04090C 7F00BDDC 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 040910 7F00BDE0 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 040914 7F00BDE4 8C440000 */ lw $a0, ($v0) +/* 040918 7F00BDE8 24010064 */ li $at, 100 +/* 04091C 7F00BDEC 04800010 */ bltz $a0, .L7F00BE30 +/* 040920 7F00BDF0 00000000 */ nop +/* 040924 7F00BDF4 14810003 */ bne $a0, $at, .L7F00BE04 +/* 040928 7F00BDF8 3C088003 */ lui $t0, %hi(selected_folder_num_copy) +/* 04092C 7F00BDFC 8D04A8EC */ lw $a0, %lo(selected_folder_num_copy)($t0) +/* 040930 7F00BE00 AC440000 */ sw $a0, ($v0) +.L7F00BE04: +/* 040934 7F00BE04 04800003 */ bltz $a0, .L7F00BE14 +/* 040938 7F00BE08 28810004 */ slti $at, $a0, 4 +/* 04093C 7F00BE0C 14200003 */ bnez $at, .L7F00BE1C +/* 040940 7F00BE10 00000000 */ nop +.L7F00BE14: +/* 040944 7F00BE14 AC400000 */ sw $zero, ($v0) +/* 040948 7F00BE18 00002025 */ move $a0, $zero +.L7F00BE1C: +/* 04094C 7F00BE1C 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040950 7F00BE20 00000000 */ nop +/* 040954 7F00BE24 2411FFFF */ li $s1, -1 +/* 040958 7F00BE28 3C018003 */ lui $at, %hi(selected_folder_num) +/* 04095C 7F00BE2C AC31A8E8 */ sw $s1, %lo(selected_folder_num)($at) +.L7F00BE30: +/* 040960 7F00BE30 3C098003 */ lui $t1, %hi(folder_selected_for_deletion) +/* 040964 7F00BE34 8D29A91C */ lw $t1, %lo(folder_selected_for_deletion)($t1) +/* 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) +/* 040978 7F00BE48 00002025 */ move $a0, $zero +/* 04097C 7F00BE4C 0C0030EB */ jal get_controller_buttons_pressed +/* 040980 7F00BE50 24050222 */ li $a1, 546 +/* 040984 7F00BE54 1040000E */ beqz $v0, .L7F00BE90 +/* 040988 7F00BE58 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 04098C 7F00BE5C 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 040990 7F00BE60 8E0A0000 */ lw $t2, ($s0) +/* 040994 7F00BE64 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040998 7F00BE68 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 04099C 7F00BE6C 15400008 */ bnez $t2, .L7F00BE90 +/* 0409A0 7F00BE70 240B0001 */ li $t3, 1 +/* 0409A4 7F00BE74 AE0B0000 */ sw $t3, ($s0) +/* 0409A8 7F00BE78 8E640000 */ lw $a0, ($s3) +/* 0409AC 7F00BE7C 24050012 */ li $a1, 18 +/* 0409B0 7F00BE80 0C002382 */ jal play_sfx_a1 +/* 0409B4 7F00BE84 00003025 */ move $a2, $zero +/* 0409B8 7F00BE88 10000011 */ b .L7F00BED0 +/* 0409BC 7F00BE8C 00000000 */ nop +.L7F00BE90: +/* 0409C0 7F00BE90 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 0409C4 7F00BE94 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 0409C8 7F00BE98 00002025 */ move $a0, $zero +/* 0409CC 7F00BE9C 0C0030EB */ jal get_controller_buttons_pressed +/* 0409D0 7F00BEA0 24050111 */ li $a1, 273 +/* 0409D4 7F00BEA4 1040000A */ beqz $v0, .L7F00BED0 +/* 0409D8 7F00BEA8 00000000 */ nop +/* 0409DC 7F00BEAC 8E0C0000 */ lw $t4, ($s0) +/* 0409E0 7F00BEB0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 0409E4 7F00BEB4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 0409E8 7F00BEB8 11800005 */ beqz $t4, .L7F00BED0 +/* 0409EC 7F00BEBC 24050012 */ li $a1, 18 +/* 0409F0 7F00BEC0 AE000000 */ sw $zero, ($s0) +/* 0409F4 7F00BEC4 8E640000 */ lw $a0, ($s3) +/* 0409F8 7F00BEC8 0C002382 */ jal play_sfx_a1 +/* 0409FC 7F00BECC 00003025 */ move $a2, $zero +.L7F00BED0: +/* 040A00 7F00BED0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040A04 7F00BED4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040A08 7F00BED8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A0C 7F00BEDC 00002025 */ move $a0, $zero +/* 040A10 7F00BEE0 2841FFD3 */ slti $at, $v0, -0x2d +/* 040A14 7F00BEE4 1020000B */ beqz $at, .L7F00BF14 +/* 040A18 7F00BEE8 00000000 */ nop +/* 040A1C 7F00BEEC 8E0D0000 */ lw $t5, ($s0) +/* 040A20 7F00BEF0 240E0001 */ li $t6, 1 +/* 040A24 7F00BEF4 24050012 */ li $a1, 18 +/* 040A28 7F00BEF8 15A00006 */ bnez $t5, .L7F00BF14 +/* 040A2C 7F00BEFC 00003025 */ move $a2, $zero +/* 040A30 7F00BF00 AE0E0000 */ sw $t6, ($s0) +/* 040A34 7F00BF04 0C002382 */ jal play_sfx_a1 +/* 040A38 7F00BF08 8E640000 */ lw $a0, ($s3) +/* 040A3C 7F00BF0C 1000000F */ b .L7F00BF4C +/* 040A40 7F00BF10 00002025 */ move $a0, $zero +.L7F00BF14: +/* 040A44 7F00BF14 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A48 7F00BF18 00002025 */ move $a0, $zero +/* 040A4C 7F00BF1C 2841002E */ slti $at, $v0, 0x2e +/* 040A50 7F00BF20 5420000A */ bnezl $at, .L7F00BF4C +/* 040A54 7F00BF24 00002025 */ move $a0, $zero +/* 040A58 7F00BF28 8E0F0000 */ lw $t7, ($s0) +/* 040A5C 7F00BF2C 24050012 */ li $a1, 18 +/* 040A60 7F00BF30 00003025 */ move $a2, $zero +/* 040A64 7F00BF34 51E00005 */ beql $t7, $zero, .L7F00BF4C +/* 040A68 7F00BF38 00002025 */ move $a0, $zero +/* 040A6C 7F00BF3C AE000000 */ sw $zero, ($s0) +/* 040A70 7F00BF40 0C002382 */ jal play_sfx_a1 +/* 040A74 7F00BF44 8E640000 */ lw $a0, ($s3) +/* 040A78 7F00BF48 00002025 */ move $a0, $zero +.L7F00BF4C: +/* 040A7C 7F00BF4C 0C0030EB */ jal get_controller_buttons_pressed +/* 040A80 7F00BF50 3405B000 */ li $a1, 45056 +/* 040A84 7F00BF54 50400017 */ beql $v0, $zero, .L7F00BFB4 +/* 040A88 7F00BF58 00002025 */ move $a0, $zero +/* 040A8C 7F00BF5C 8E180000 */ lw $t8, ($s0) +/* 040A90 7F00BF60 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040A94 7F00BF64 24050076 */ li $a1, 118 +/* 040A98 7F00BF68 17000009 */ bnez $t8, .L7F00BF90 +/* 040A9C 7F00BF6C 00003025 */ move $a2, $zero +/* 040AA0 7F00BF70 0FC07B01 */ jal delete_eeprom_folder +/* 040AA4 7F00BF74 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AA8 7F00BF78 8E640000 */ lw $a0, ($s3) +/* 040AAC 7F00BF7C 24050076 */ li $a1, 118 +/* 040AB0 7F00BF80 0C002382 */ jal play_sfx_a1 +/* 040AB4 7F00BF84 00003025 */ move $a2, $zero +/* 040AB8 7F00BF88 10000003 */ b .L7F00BF98 +/* 040ABC 7F00BF8C 00000000 */ nop +.L7F00BF90: +/* 040AC0 7F00BF90 0C002382 */ jal play_sfx_a1 +/* 040AC4 7F00BF94 8E640000 */ lw $a0, ($s3) +.L7F00BF98: +/* 040AC8 7F00BF98 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040ACC 7F00BF9C 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040AD0 7F00BFA0 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AD4 7F00BFA4 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040AD8 7F00BFA8 100000DC */ b .L7F00C31C +/* 040ADC 7F00BFAC AC31A91C */ sw $s1, %lo(folder_selected_for_deletion)($at) +/* 040AE0 7F00BFB0 00002025 */ move $a0, $zero +.L7F00BFB4: +/* 040AE4 7F00BFB4 0C0030EB */ jal get_controller_buttons_pressed +/* 040AE8 7F00BFB8 24054000 */ li $a1, 16384 +/* 040AEC 7F00BFBC 104000D7 */ beqz $v0, .L7F00C31C +/* 040AF0 7F00BFC0 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040AF4 7F00BFC4 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040AF8 7F00BFC8 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AFC 7F00BFCC 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040B00 7F00BFD0 AC31A91C */ sw $s1, %lo(folder_selected_for_deletion)($at) +/* 040B04 7F00BFD4 8E640000 */ lw $a0, ($s3) +/* 040B08 7F00BFD8 24050076 */ li $a1, 118 +/* 040B0C 7F00BFDC 0C002382 */ jal play_sfx_a1 +/* 040B10 7F00BFE0 00003025 */ move $a2, $zero +/* 040B14 7F00BFE4 100000CD */ b .L7F00C31C +/* 040B18 7F00BFE8 00000000 */ nop +.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) +/* 040B28 7F00BFF8 27B3007C */ addiu $s3, $sp, 0x7c +.L7F00BFFC: +/* 040B2C 7F00BFFC 27B90074 */ addiu $t9, $sp, 0x74 +/* 040B30 7F00C000 AFB90010 */ sw $t9, 0x10($sp) +/* 040B34 7F00C004 8E040000 */ lw $a0, ($s0) +/* 040B38 7F00C008 27A50080 */ addiu $a1, $sp, 0x80 +/* 040B3C 7F00C00C 02603025 */ move $a2, $s3 +/* 040B40 7F00C010 0FC0FE43 */ jal sub_GAME_7F03F90C +/* 040B44 7F00C014 27A70078 */ addiu $a3, $sp, 0x78 +/* 040B48 7F00C018 27A80064 */ addiu $t0, $sp, 0x64 +/* 040B4C 7F00C01C AFA80010 */ sw $t0, 0x10($sp) +/* 040B50 7F00C020 02202025 */ move $a0, $s1 +/* 040B54 7F00C024 02602825 */ move $a1, $s3 +/* 040B58 7F00C028 27A60074 */ addiu $a2, $sp, 0x74 +/* 040B5C 7F00C02C 0FC0FE52 */ jal sub_GAME_7F03F948 +/* 040B60 7F00C030 27A7006C */ addiu $a3, $sp, 0x6c +/* 040B64 7F00C034 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 040B68 7F00C038 C422A908 */ lwc1 $f2, %lo(cursor_h_pos)($at) +/* 040B6C 7F00C03C C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 040B70 7F00C040 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 040B74 7F00C044 4602803E */ c.le.s $f16, $f2 +/* 040B78 7F00C048 00000000 */ nop +/* 040B7C 7F00C04C 4502004E */ bc1fl .L7F00C188 +/* 040B80 7F00C050 26520001 */ addiu $s2, $s2, 1 +/* 040B84 7F00C054 4612103E */ c.le.s $f2, $f18 +/* 040B88 7F00C058 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040B8C 7F00C05C C7A40070 */ lwc1 $f4, 0x70($sp) +/* 040B90 7F00C060 45020049 */ bc1fl .L7F00C188 +/* 040B94 7F00C064 26520001 */ addiu $s2, $s2, 1 +/* 040B98 7F00C068 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040B9C 7F00C06C C7A60068 */ lwc1 $f6, 0x68($sp) +/* 040BA0 7F00C070 4600203E */ c.le.s $f4, $f0 +/* 040BA4 7F00C074 00000000 */ nop +/* 040BA8 7F00C078 45020043 */ bc1fl .L7F00C188 +/* 040BAC 7F00C07C 26520001 */ addiu $s2, $s2, 1 +/* 040BB0 7F00C080 4606003E */ c.le.s $f0, $f6 +/* 040BB4 7F00C084 02402025 */ move $a0, $s2 +/* 040BB8 7F00C088 27A50060 */ addiu $a1, $sp, 0x60 +/* 040BBC 7F00C08C 4502003E */ bc1fl .L7F00C188 +/* 040BC0 7F00C090 26520001 */ addiu $s2, $s2, 1 +/* 040BC4 7F00C094 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 040BC8 7F00C098 27A6005C */ addiu $a2, $sp, 0x5c +/* 040BCC 7F00C09C 00002025 */ move $a0, $zero +/* 040BD0 7F00C0A0 0C0030EB */ jal get_controller_buttons_pressed +/* 040BD4 7F00C0A4 3405B000 */ li $a1, 45056 +/* 040BD8 7F00C0A8 50400037 */ beql $v0, $zero, .L7F00C188 +/* 040BDC 7F00C0AC 26520001 */ addiu $s2, $s2, 1 +/* 040BE0 7F00C0B0 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) +/* 040BE4 7F00C0B4 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 +/* 040BE8 7F00C0B8 8E220000 */ lw $v0, ($s1) +/* 040BEC 7F00C0BC 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040BF0 7F00C0C0 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040BF4 7F00C0C4 14400009 */ bnez $v0, .L7F00C0EC +/* 040BF8 7F00C0C8 3C018003 */ lui $at, %hi(selected_folder_num) +/* 040BFC 7F00C0CC AC32A8E8 */ sw $s2, %lo(selected_folder_num)($at) +/* 040C00 7F00C0D0 8E640000 */ lw $a0, ($s3) +/* 040C04 7F00C0D4 2405004D */ li $a1, 77 +/* 040C08 7F00C0D8 0C002382 */ jal play_sfx_a1 +/* 040C0C 7F00C0DC 00003025 */ move $a2, $zero +/* 040C10 7F00C0E0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C14 7F00C0E4 10000030 */ b .L7F00C1A8 +/* 040C18 7F00C0E8 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +.L7F00C0EC: +/* 040C1C 7F00C0EC 24010001 */ li $at, 1 +/* 040C20 7F00C0F0 5441000E */ bnel $v0, $at, .L7F00C12C +/* 040C24 7F00C0F4 24010002 */ li $at, 2 +/* 040C28 7F00C0F8 0FC07B68 */ jal sub_GAME_7F01EDA0 +/* 040C2C 7F00C0FC 02402025 */ move $a0, $s2 +/* 040C30 7F00C100 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C34 7F00C104 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C38 7F00C108 AE200000 */ sw $zero, ($s1) +/* 040C3C 7F00C10C 8E640000 */ lw $a0, ($s3) +/* 040C40 7F00C110 2405004F */ li $a1, 79 +/* 040C44 7F00C114 0C002382 */ jal play_sfx_a1 +/* 040C48 7F00C118 00003025 */ move $a2, $zero +/* 040C4C 7F00C11C 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C50 7F00C120 10000021 */ b .L7F00C1A8 +/* 040C54 7F00C124 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C58 7F00C128 24010002 */ li $at, 2 +.L7F00C12C: +/* 040C5C 7F00C12C 14410012 */ bne $v0, $at, .L7F00C178 +/* 040C60 7F00C130 00000000 */ nop +/* 040C64 7F00C134 8FA90060 */ lw $t1, 0x60($sp) +/* 040C68 7F00C138 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C6C 7F00C13C 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C70 7F00C140 05200009 */ bltz $t1, .L7F00C168 +/* 040C74 7F00C144 24050012 */ li $a1, 18 +/* 040C78 7F00C148 8FAA005C */ lw $t2, 0x5c($sp) +/* 040C7C 7F00C14C 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 040C80 7F00C150 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 040C84 7F00C154 05400004 */ bltz $t2, .L7F00C168 +/* 040C88 7F00C158 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040C8C 7F00C15C AC32A91C */ sw $s2, %lo(folder_selected_for_deletion)($at) +/* 040C90 7F00C160 240B0001 */ li $t3, 1 +/* 040C94 7F00C164 AE0B0000 */ sw $t3, ($s0) +.L7F00C168: +/* 040C98 7F00C168 AE200000 */ sw $zero, ($s1) +/* 040C9C 7F00C16C 8E640000 */ lw $a0, ($s3) +/* 040CA0 7F00C170 0C002382 */ jal play_sfx_a1 +/* 040CA4 7F00C174 00003025 */ move $a2, $zero +.L7F00C178: +/* 040CA8 7F00C178 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CAC 7F00C17C 1000000A */ b .L7F00C1A8 +/* 040CB0 7F00C180 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040CB4 7F00C184 26520001 */ addiu $s2, $s2, 1 +.L7F00C188: +/* 040CB8 7F00C188 24010004 */ li $at, 4 +/* 040CBC 7F00C18C 26100004 */ addiu $s0, $s0, 4 +/* 040CC0 7F00C190 1641FF9A */ bne $s2, $at, .L7F00BFFC +/* 040CC4 7F00C194 2631000C */ addiu $s1, $s1, 0xc +/* 040CC8 7F00C198 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CCC 7F00C19C 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) +/* 040CD0 7F00C1A0 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 +/* 040CD4 7F00C1A4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +.L7F00C1A8: +/* 040CD8 7F00C1A8 00002025 */ move $a0, $zero +/* 040CDC 7F00C1AC 0C0030EB */ jal get_controller_buttons_pressed +/* 040CE0 7F00C1B0 3405B000 */ li $a1, 45056 +/* 040CE4 7F00C1B4 1040004A */ beqz $v0, .L7F00C2E0 +/* 040CE8 7F00C1B8 3C028003 */ lui $v0, %hi(folder_option_COPY_left_bound) +/* 040CEC 7F00C1BC 2442ABC4 */ addiu $v0, %lo(folder_option_COPY_left_bound) # addiu $v0, $v0, -0x543c +/* 040CF0 7F00C1C0 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 040CF4 7F00C1C4 C422A908 */ lwc1 $f2, %lo(cursor_h_pos)($at) +/* 040CF8 7F00C1C8 C4480000 */ lwc1 $f8, ($v0) +/* 040CFC 7F00C1CC 4602403E */ c.le.s $f8, $f2 +/* 040D00 7F00C1D0 00000000 */ nop +/* 040D04 7F00C1D4 45000019 */ bc1f .L7F00C23C +/* 040D08 7F00C1D8 00000000 */ nop +/* 040D0C 7F00C1DC C44A0008 */ lwc1 $f10, 8($v0) +/* 040D10 7F00C1E0 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040D14 7F00C1E4 460A103E */ c.le.s $f2, $f10 +/* 040D18 7F00C1E8 00000000 */ nop +/* 040D1C 7F00C1EC 45000013 */ bc1f .L7F00C23C +/* 040D20 7F00C1F0 00000000 */ nop +/* 040D24 7F00C1F4 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040D28 7F00C1F8 C4500004 */ lwc1 $f16, 4($v0) +/* 040D2C 7F00C1FC 4600803E */ c.le.s $f16, $f0 +/* 040D30 7F00C200 00000000 */ nop +/* 040D34 7F00C204 4500000D */ bc1f .L7F00C23C +/* 040D38 7F00C208 00000000 */ nop +/* 040D3C 7F00C20C C452000C */ lwc1 $f18, 0xc($v0) +/* 040D40 7F00C210 240C0001 */ li $t4, 1 +/* 040D44 7F00C214 240500DE */ li $a1, 222 +/* 040D48 7F00C218 4612003E */ c.le.s $f0, $f18 +/* 040D4C 7F00C21C 00003025 */ move $a2, $zero +/* 040D50 7F00C220 45000006 */ bc1f .L7F00C23C +/* 040D54 7F00C224 00000000 */ nop +/* 040D58 7F00C228 AE2C0000 */ sw $t4, ($s1) +/* 040D5C 7F00C22C 0C002382 */ jal play_sfx_a1 +/* 040D60 7F00C230 8E640000 */ lw $a0, ($s3) +/* 040D64 7F00C234 10000037 */ b .L7F00C314 +/* 040D68 7F00C238 00000000 */ nop +.L7F00C23C: +/* 040D6C 7F00C23C 3C028003 */ lui $v0, %hi(folder_option_ERASE_left_bound) +/* 040D70 7F00C240 2442ABD4 */ addiu $v0, %lo(folder_option_ERASE_left_bound) # addiu $v0, $v0, -0x542c +/* 040D74 7F00C244 C4440000 */ lwc1 $f4, ($v0) +/* 040D78 7F00C248 4602203E */ c.le.s $f4, $f2 +/* 040D7C 7F00C24C 00000000 */ nop +/* 040D80 7F00C250 4502001A */ bc1fl .L7F00C2BC +/* 040D84 7F00C254 8E2E0000 */ lw $t6, ($s1) +/* 040D88 7F00C258 C4460008 */ lwc1 $f6, 8($v0) +/* 040D8C 7F00C25C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040D90 7F00C260 4606103E */ c.le.s $f2, $f6 +/* 040D94 7F00C264 00000000 */ nop +/* 040D98 7F00C268 45020014 */ bc1fl .L7F00C2BC +/* 040D9C 7F00C26C 8E2E0000 */ lw $t6, ($s1) +/* 040DA0 7F00C270 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040DA4 7F00C274 C4480004 */ lwc1 $f8, 4($v0) +/* 040DA8 7F00C278 4600403E */ c.le.s $f8, $f0 +/* 040DAC 7F00C27C 00000000 */ nop +/* 040DB0 7F00C280 4502000E */ bc1fl .L7F00C2BC +/* 040DB4 7F00C284 8E2E0000 */ lw $t6, ($s1) +/* 040DB8 7F00C288 C44A000C */ lwc1 $f10, 0xc($v0) +/* 040DBC 7F00C28C 240D0002 */ li $t5, 2 +/* 040DC0 7F00C290 240500DE */ li $a1, 222 +/* 040DC4 7F00C294 460A003E */ c.le.s $f0, $f10 +/* 040DC8 7F00C298 00003025 */ move $a2, $zero +/* 040DCC 7F00C29C 45020007 */ bc1fl .L7F00C2BC +/* 040DD0 7F00C2A0 8E2E0000 */ lw $t6, ($s1) +/* 040DD4 7F00C2A4 AE2D0000 */ sw $t5, ($s1) +/* 040DD8 7F00C2A8 0C002382 */ jal play_sfx_a1 +/* 040DDC 7F00C2AC 8E640000 */ lw $a0, ($s3) +/* 040DE0 7F00C2B0 10000018 */ b .L7F00C314 +/* 040DE4 7F00C2B4 00000000 */ nop +/* 040DE8 7F00C2B8 8E2E0000 */ lw $t6, ($s1) +.L7F00C2BC: +/* 040DEC 7F00C2BC 24050076 */ li $a1, 118 +/* 040DF0 7F00C2C0 00003025 */ move $a2, $zero +/* 040DF4 7F00C2C4 11C00013 */ beqz $t6, .L7F00C314 +/* 040DF8 7F00C2C8 00000000 */ nop +/* 040DFC 7F00C2CC AE200000 */ sw $zero, ($s1) +/* 040E00 7F00C2D0 0C002382 */ jal play_sfx_a1 +/* 040E04 7F00C2D4 8E640000 */ lw $a0, ($s3) +/* 040E08 7F00C2D8 1000000E */ b .L7F00C314 +/* 040E0C 7F00C2DC 00000000 */ nop +.L7F00C2E0: +/* 040E10 7F00C2E0 00002025 */ move $a0, $zero +/* 040E14 7F00C2E4 0C0030EB */ jal get_controller_buttons_pressed +/* 040E18 7F00C2E8 24054000 */ li $a1, 16384 +/* 040E1C 7F00C2EC 10400009 */ beqz $v0, .L7F00C314 +/* 040E20 7F00C2F0 00000000 */ nop +/* 040E24 7F00C2F4 8E2F0000 */ lw $t7, ($s1) +/* 040E28 7F00C2F8 24050076 */ li $a1, 118 +/* 040E2C 7F00C2FC 00003025 */ move $a2, $zero +/* 040E30 7F00C300 11E00004 */ beqz $t7, .L7F00C314 +/* 040E34 7F00C304 00000000 */ nop +/* 040E38 7F00C308 AE200000 */ sw $zero, ($s1) +/* 040E3C 7F00C30C 0C002382 */ jal play_sfx_a1 +/* 040E40 7F00C310 8E640000 */ lw $a0, ($s3) +.L7F00C314: +/* 040E44 7F00C314 0FC026E1 */ jal menu_control_stick_tracking +/* 040E48 7F00C318 00000000 */ nop +.L7F00C31C: +/* 040E4C 7F00C31C 3C188003 */ lui $t8, %hi(selected_folder_num) +/* 040E50 7F00C320 8F18A8E8 */ lw $t8, %lo(selected_folder_num)($t8) +/* 040E54 7F00C324 07000007 */ bltz $t8, .L7F00C344 +/* 040E58 7F00C328 24040006 */ li $a0, 6 +/* 040E5C 7F00C32C 0FC06975 */ jal set_menu_to_mode +/* 040E60 7F00C330 00002825 */ move $a1, $zero +/* 040E64 7F00C334 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 040E68 7F00C338 00002025 */ move $a0, $zero +/* 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) +/* 040E7C 7F00C34C 00002025 */ move $a0, $zero +/* 040E80 7F00C350 2B210709 */ slti $at, $t9, 0x709 +/* 040E84 7F00C354 54200004 */ bnezl $at, .L7F00C368 +/* 040E88 7F00C358 8FBF0044 */ lw $ra, 0x44($sp) +/* 040E8C 7F00C35C 0FC06975 */ jal set_menu_to_mode +/* 040E90 7F00C360 24050001 */ li $a1, 1 +/* 040E94 7F00C364 8FBF0044 */ lw $ra, 0x44($sp) +.L7F00C368: +/* 040E98 7F00C368 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 040E9C 7F00C36C 8FB00034 */ lw $s0, 0x34($sp) +/* 040EA0 7F00C370 8FB10038 */ lw $s1, 0x38($sp) +/* 040EA4 7F00C374 8FB2003C */ lw $s2, 0x3c($sp) +/* 040EA8 7F00C378 8FB30040 */ lw $s3, 0x40($sp) +/* 040EAC 7F00C37C 03E00008 */ jr $ra +/* 040EB0 7F00C380 27BD0110 */ addiu $sp, $sp, 0x110 +) +#endif + + + +#ifdef NONMATCHING +int get_ptr_difficulty_name(s32 difficulty) +{ + u8 *return; + + return = NULL; + if (difficulty == 0) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x13)); + } + else { + if (difficulty == 1) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x14)); + } + else { + if (difficulty == 2) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x15)); + } + else { + if (difficulty == 3) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x16)); + } + } + } + } + return (int)return; +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_difficulty_name +/* 040EB4 7F00C384 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 040EB8 7F00C388 AFBF0014 */ sw $ra, 0x14($sp) +/* 040EBC 7F00C38C 1080000A */ beqz $a0, .L7F00C3B8 +/* 040EC0 7F00C390 00001825 */ move $v1, $zero +/* 040EC4 7F00C394 24010001 */ li $at, 1 +/* 040EC8 7F00C398 1081000B */ beq $a0, $at, .L7F00C3C8 +/* 040ECC 7F00C39C 24010002 */ li $at, 2 +/* 040ED0 7F00C3A0 1081000D */ beq $a0, $at, .L7F00C3D8 +/* 040ED4 7F00C3A4 24010003 */ li $at, 3 +/* 040ED8 7F00C3A8 1081000F */ beq $a0, $at, .L7F00C3E8 +/* 040EDC 7F00C3AC 00000000 */ nop +/* 040EE0 7F00C3B0 10000011 */ b .L7F00C3F8 +/* 040EE4 7F00C3B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00C3B8: +/* 040EE8 7F00C3B8 0FC30776 */ jal get_textptr_for_textID +/* 040EEC 7F00C3BC 34049C13 */ li $a0, 39955 +/* 040EF0 7F00C3C0 1000000C */ b .L7F00C3F4 +/* 040EF4 7F00C3C4 00401825 */ move $v1, $v0 +.L7F00C3C8: +/* 040EF8 7F00C3C8 0FC30776 */ jal get_textptr_for_textID +/* 040EFC 7F00C3CC 34049C14 */ li $a0, 39956 +/* 040F00 7F00C3D0 10000008 */ b .L7F00C3F4 +/* 040F04 7F00C3D4 00401825 */ move $v1, $v0 +.L7F00C3D8: +/* 040F08 7F00C3D8 0FC30776 */ jal get_textptr_for_textID +/* 040F0C 7F00C3DC 34049C15 */ li $a0, 39957 +/* 040F10 7F00C3E0 10000004 */ b .L7F00C3F4 +/* 040F14 7F00C3E4 00401825 */ move $v1, $v0 +.L7F00C3E8: +/* 040F18 7F00C3E8 0FC30776 */ jal get_textptr_for_textID +/* 040F1C 7F00C3EC 34049C16 */ li $a0, 39958 +/* 040F20 7F00C3F0 00401825 */ move $v1, $v0 +.L7F00C3F4: +/* 040F24 7F00C3F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00C3F8: +/* 040F28 7F00C3F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 040F2C 7F00C3FC 00601025 */ move $v0, $v1 +/* 040F30 7F00C400 03E00008 */ jr $ra +/* 040F34 7F00C404 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *constructor_menu05_fileselect(void *arg0) +{ + s32 sp1B4; + s32 sp1A8; + s32 sp19C; + void *sp158; + s32 sp154; + s32 sp150; + s32 sp14C; + s32 sp108; + s32 sp100; + s32 spFC; + s32 spF8; + s32 spF4; + s32 spF0; + s32 spEC; + s32 spE4; + s32 spD0; + s32 spBC; + f32 spB0; + f32 spAC; + f32 spA8; + f32 spA4; + f32 spA0; + f32 sp9C; + f32 sp98; + f32 sp94; + f32 sp90; + f32 sp8C; + f32 sp88; + f32 sp84; + void *sp74; + f32 temp_f10; + f32 temp_f10_2; + f32 temp_f18; + f32 temp_f6; + f32 temp_f6_2; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s1_3; + s32 temp_s1_4; + s32 temp_t0; + s32 temp_v0; + s32 temp_v0_2; + u32 temp_s2; + void *temp_a0; + void *temp_a0_2; + void *temp_a1; + void *temp_a1_2; + void *temp_t2; + void *temp_t4; + void *temp_t7; + void *temp_t9; + void *temp_v0_3; + void *phi_t9; + void *phi_t2; + void *phi_s2; + s32 phi_s0; + s32 phi_s1; + void *phi_s0_2; + s32 phi_s1_2; + s32 phi_s2_2; + s32 phi_s1_3; + f32 phi_f6; + f32 phi_f18; + f32 phi_f6_2; + f32 phi_f10; + + sp1A8.unk0 = (s32) unknown_folderselect_constructor.unk0; + sp1A8.unk4 = (s32) unknown_folderselect_constructor.unk4; + sp1A8.unk8 = (s32) unknown_folderselect_constructor.unk8; + sp19C.unk0 = (s32) unknown_folderselect_constructor_0.unk0; + sp19C.unk4 = (s32) unknown_folderselect_constructor_0.unk4; + sp19C.unk8 = (s32) unknown_folderselect_constructor_0.unk8; + temp_ret = insert_imageDL(arg0); + arg0 = (void *) (temp_ret + 8); + temp_v0 = temp_ret; + temp_v0->unk0 = 0xfc167e2c; + temp_v0->unk4 = 0x33fdf6fb; + temp_t7 = arg0; + arg0 = (void *) (temp_t7 + 8); + temp_t7->unk4 = -0xec; + temp_t7->unk0 = &0xFB00000C; + temp_ret_2 = sub_GAME_7F007CC8(arg0, (s32) truncf(((f32) get_video2_settings_txtClipW() * -80.0f) / 1280.0f), &sp1A8, &sp19C); + arg0 = (void *) (temp_ret_2 + 8); + temp_v0_2 = temp_ret_2; + temp_v0_2->unk4 = 0x1000000; + temp_v0_2->unk0 = 0x6000000; + temp_t4 = arg0; + arg0 = (void *) (temp_t4 + 8); + temp_t4->unk4 = &D_01000040; + temp_t4->unk0 = 0x6000000; + phi_s2 = &D_8002A968; +loop_1: + phi_t9 = &unknown_folderselect; + phi_t2 = &sp14C; +loop_2: + temp_t9 = phi_t9; + temp_t2 = phi_t2 + 0xc; + temp_t2->unk-C = (s32) phi_t9->unk0; + temp_t2->unk-8 = (s32) temp_t9->unk-8; + temp_t2->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t2 = temp_t2; + if (temp_t9 != (&unknown_folderselect + 0x3c)) + { + goto loop_2; + } + temp_t2->unk0 = (s32) temp_t9->unk0; + sp154 = 3; + sp150 = 0; + sp158 = arg0; + subdraw(&sp14C, *phi_s2); + arg0 = sp158; + phi_s0 = 0; + phi_s1 = 0; + if ((*phi_s2)->unk8->unkE > 0) + { +loop_4: + matrix_4x4_copy(temp_v0_3->unkC + phi_s0, &sp108); + sub_GAME_7F058C9C(&sp108, (*phi_s2)->unkC + (phi_s1 << 6)); + temp_v0_3 = *phi_s2; + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 0x40; + phi_s1 = temp_s1; + if (temp_s1 < temp_v0_3->unk8->unkE) + { + goto loop_4; + } + } + temp_s2 = phi_s2 + -4; + phi_s2 = temp_s2; + if (temp_s2 >= &ptr_folder_object_instance) + { + goto loop_1; + } + arg0 = microcode_constructor(arg0); + setTextSpacingInverted(0); + sp74 = &dword_CODE_bss_80069620; + sp1B4 = 0; +loop_7: + sub_GAME_7F077FF4(sp74, &spE4); + if (sp1B4 == folder_selected_for_deletion) + { + truncf(spE4, sp1B4, &spF0); + temp_a2 = (s32) truncf(spE8) + 0x19; + arg0 = microcode_constructor_related_to_menus(arg0, sp100, temp_a2, sp100 + 0x63, (s32) (temp_a2 + 0x2a), 0x32); + truncf(spE4); + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, get_textptr_for_textID(TEXT(LTITLE, 0x17)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + temp_s1_2 = get_textptr_for_textID(TEXT(LTITLE, 0x18)); + truncf(spE4); + truncf(spE8); + temp_a0 = &spF8; + temp_a1 = &spF4; + if (folder_selected_for_deletion_choice != 0) + { + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(temp_a0, temp_a1, temp_s1_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + } + else + { + get_video2_settings_txtClipW(temp_a0, temp_a1, temp_s1_2); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + temp_s1_3 = get_textptr_for_textID(TEXT(LTITLE, 0x19)); + truncf(spE4); + if (j_text_trigger != 0) + { + + } + truncf(spE8); + temp_a0_2 = &spF8; + temp_a1_2 = &spF4; + if (folder_selected_for_deletion_choice != 0) + { + get_video2_settings_txtClipW(temp_a0_2, temp_a1_2, temp_s1_3); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + else + { + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(temp_a0_2, temp_a1_2, temp_s1_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + } + } + else + { + get_highest_stage_difficulty_completed_in_folder(sp1B4, &spF0, &spEC); + if (spF0 >= 0) + { + if (spEC >= 0) + { + temp_ret_3 = get_ptr_difficulty_name(spEC); + if (temp_ret_3 != 0) + { + textpointer_load_parse_something(&spD0, temp_ret_3); + string_append_from_obseg_textbank(&spD0, &asc_D_8004F488); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, &spD0, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + truncf(spE4); + if (spF4 < 0) + { + + } + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spD0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + if (spEC != 3) + { + textpointer_load_parse_something(&spBC, get_textptr_for_textID(TEXT(LTITLE, 0x1a)); + phi_s0_2 = &mission_folder_setup_entries; + phi_s1_2 = 0; + phi_s2_2 = -1; + phi_s1_3 = 0; + if (D_8002ABE8 != 0) + { +loop_24: + if (spF0 == phi_s0_2->unk14) + { + phi_s2_2 = get_chapter_briefing_entry(phi_s1_2); + phi_s1_3 = phi_s1_2; + } + else + { + temp_s1_4 = phi_s1_2 + 1; + phi_s0_2 = phi_s0_2 + 0x1c; + phi_s1_2 = temp_s1_4; + phi_s2_2 = -1; + phi_s1_3 = temp_s1_4; + if (phi_s0_2->unk20 != 0) + { + goto loop_24; + } + } + } + if (phi_s2_2 >= 0) + { + string_append_from_obseg_textbank(&spBC, *((((phi_s2_2 * 8) - phi_s2_2) * 4) + &mission_folder_setup_entries)); + string_append_from_obseg_textbank(&spBC, &a_); + } + string_append_from_obseg_textbank(&spBC, *((((phi_s1_3 * 8) - phi_s1_3) * 4) + &mission_folder_setup_entries)); + string_append_from_obseg_textbank(&spBC, &asc_D_8004F490); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, &spBC, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + truncf(spE4); + if (spF4 < 0) + { + + } + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spBC, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + } + } + } + temp_t0 = sp1B4 + 1; + sp74 = (void *) (sp74 + 0xc); + sp1B4 = temp_t0; + if (temp_t0 != 4) + { + goto loop_7; + } + setTextSpacingInverted(0); + temp_ret_4 = get_textptr_for_textID(TEXT(LTITLE, 0x1b)); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + if (spF8 < 0) + { + + } + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + folder_option_COPY_left_bound.unk8 = (f32) (sp100 + spF4); + temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x1c)); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, temp_ret_5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + if (spF8 < 0) + { + + } + get_video2_settings_txtClipW(); + folder_option_ERASE_left_bound.unk8 = (f32) (sp100 + spF4); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_5, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + spAC = 225.0f; + spB0 = (f32) D_80051A28; + temp_f10 = (f32) (u32) mainfolderimages->unk4 * 0.5f; + spA4 = temp_f10; + spA8 = (f32) ((f32) (u32) mainfolderimages->unk5 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &spAC, &spA4, mainfolderimages->unk4, (s32) mainfolderimages->unk5, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk6), 0); + folder_option_COPY_left_bound.unk0 = (f32) (spAC - temp_f10); + folder_option_COPY_left_bound.unk4 = (f32) (spB0 - spA8); + folder_option_COPY_left_bound.unkC = (f32) (spA8 + spB0); + sp9C = (f32) D_80051A2C; + spA0 = (f32) D_80051A30; + temp_f6 = (f32) mainfolderimages->unk10; + phi_f6 = temp_f6; + if (mainfolderimages->unk10 < 0) + { + phi_f6 = temp_f6 + 4294967296.0f; + } + sp94 = (f32) (phi_f6 * 0.5f); + temp_f18 = (f32) mainfolderimages->unk11; + phi_f18 = temp_f18; + if (mainfolderimages->unk11 < 0) + { + phi_f18 = temp_f18 + 4294967296.0f; + } + sp98 = (f32) (phi_f18 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages + 0xc, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp9C, &sp94, mainfolderimages->unk10, (s32) mainfolderimages->unk11, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk12), 0); + folder_option_ERASE_left_bound.unk0 = (f32) (sp9C - sp94); + folder_option_ERASE_left_bound.unk4 = (f32) (spA0 - sp98); + folder_option_ERASE_left_bound.unkC = (f32) (sp98 + spA0); + sp8C = 110.0f; + sp90 = (f32) D_80051A34; + temp_f6_2 = (f32) mainfolderimages->unk1C; + phi_f6_2 = temp_f6_2; + if (mainfolderimages->unk1C < 0) + { + phi_f6_2 = temp_f6_2 + 4294967296.0f; + } + sp84 = (f32) (phi_f6_2 * 0.5f); + temp_f10_2 = (f32) mainfolderimages->unk1D; + phi_f10 = temp_f10_2; + if (mainfolderimages->unk1D < 0) + { + phi_f10 = temp_f10_2 + 4294967296.0f; + } + sp88 = (f32) (phi_f10 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages + 0x18, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp8C, &sp84, mainfolderimages->unk1C, (s32) mainfolderimages->unk1D, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk1E), 0); + if (folder_selected_for_deletion < 0) + { + arg0 = load_draw_selected_icon_folder_select(arg0); + } + return arg0; +} +#else +const char asc_D_8004F488[] = "\n"; +const char a_[] = "."; +const char asc_D_8004F490[] = "\n"; +GLOBAL_ASM( +.rdata + +.late_rodata +glabel D_80051A28 +.word 0x438E8000 /* 285.0;*/ +glabel D_80051A2C +.word 0x43A78000 /* 335.0;*/ +glabel D_80051A30 +.word 0x438E8000 /* 285.0;*/ +glabel D_80051A34 +.word 0x438E8000 /* 285.0;*/ +.text +glabel constructor_menu05_fileselect +/* 040F38 7F00C408 27BDFE48 */ addiu $sp, $sp, -0x1b8 +/* 040F3C 7F00C40C 3C0E8003 */ lui $t6, %hi(unknown_folderselect_constructor) +/* 040F40 7F00C410 AFBF0064 */ sw $ra, 0x64($sp) +/* 040F44 7F00C414 AFBE0060 */ sw $fp, 0x60($sp) +/* 040F48 7F00C418 AFB7005C */ sw $s7, 0x5c($sp) +/* 040F4C 7F00C41C AFB60058 */ sw $s6, 0x58($sp) +/* 040F50 7F00C420 AFB50054 */ sw $s5, 0x54($sp) +/* 040F54 7F00C424 AFB40050 */ sw $s4, 0x50($sp) +/* 040F58 7F00C428 AFB3004C */ sw $s3, 0x4c($sp) +/* 040F5C 7F00C42C AFB20048 */ sw $s2, 0x48($sp) +/* 040F60 7F00C430 AFB10044 */ sw $s1, 0x44($sp) +/* 040F64 7F00C434 AFB00040 */ sw $s0, 0x40($sp) +/* 040F68 7F00C438 AFA401B8 */ sw $a0, 0x1b8($sp) +/* 040F6C 7F00C43C 25CEAF2C */ addiu $t6, %lo(unknown_folderselect_constructor) # addiu $t6, $t6, -0x50d4 +/* 040F70 7F00C440 8DC10000 */ lw $at, ($t6) +/* 040F74 7F00C444 27B001A8 */ addiu $s0, $sp, 0x1a8 +/* 040F78 7F00C448 3C088003 */ lui $t0, %hi(unknown_folderselect_constructor_0) +/* 040F7C 7F00C44C AE010000 */ sw $at, ($s0) +/* 040F80 7F00C450 8DD90004 */ lw $t9, 4($t6) +/* 040F84 7F00C454 2508AF38 */ addiu $t0, %lo(unknown_folderselect_constructor_0) # addiu $t0, $t0, -0x50c8 +/* 040F88 7F00C458 27B1019C */ addiu $s1, $sp, 0x19c +/* 040F8C 7F00C45C AE190004 */ sw $t9, 4($s0) +/* 040F90 7F00C460 8DC10008 */ lw $at, 8($t6) +/* 040F94 7F00C464 AE010008 */ sw $at, 8($s0) +/* 040F98 7F00C468 8D010000 */ lw $at, ($t0) +/* 040F9C 7F00C46C AE210000 */ sw $at, ($s1) +/* 040FA0 7F00C470 8D0B0004 */ lw $t3, 4($t0) +/* 040FA4 7F00C474 AE2B0004 */ sw $t3, 4($s1) +/* 040FA8 7F00C478 8D010008 */ lw $at, 8($t0) +/* 040FAC 7F00C47C AE210008 */ sw $at, 8($s1) +/* 040FB0 7F00C480 0FC07034 */ jal insert_imageDL +/* 040FB4 7F00C484 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 040FB8 7F00C488 244C0008 */ addiu $t4, $v0, 8 +/* 040FBC 7F00C48C AFAC01B8 */ sw $t4, 0x1b8($sp) +/* 040FC0 7F00C490 3C0DFC16 */ lui $t5, (0xFC167E2C >> 16) # lui $t5, 0xfc16 +/* 040FC4 7F00C494 3C1833FD */ lui $t8, (0x33FDF6FB >> 16) # lui $t8, 0x33fd +/* 040FC8 7F00C498 3718F6FB */ ori $t8, (0x33FDF6FB & 0xFFFF) # ori $t8, $t8, 0xf6fb +/* 040FCC 7F00C49C 35AD7E2C */ ori $t5, (0xFC167E2C & 0xFFFF) # ori $t5, $t5, 0x7e2c +/* 040FD0 7F00C4A0 AC4D0000 */ sw $t5, ($v0) +/* 040FD4 7F00C4A4 AC580004 */ sw $t8, 4($v0) +/* 040FD8 7F00C4A8 8FAF01B8 */ lw $t7, 0x1b8($sp) +/* 040FDC 7F00C4AC 3C19FB00 */ lui $t9, %hi(0xFB00000C) # $t9, 0xfb00 +/* 040FE0 7F00C4B0 240AFF14 */ li $t2, -236 +/* 040FE4 7F00C4B4 25EE0008 */ addiu $t6, $t7, 8 +/* 040FE8 7F00C4B8 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 040FEC 7F00C4BC ADEA0004 */ sw $t2, 4($t7) +/* 040FF0 7F00C4C0 0C001107 */ jal get_video2_settings_txtClipW +/* 040FF4 7F00C4C4 ADF90000 */ sw $t9, ($t7) +/* 040FF8 7F00C4C8 44822000 */ mtc1 $v0, $f4 +/* 040FFC 7F00C4CC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 +/* 041000 7F00C4D0 44814000 */ mtc1 $at, $f8 +/* 041004 7F00C4D4 468021A0 */ cvt.s.w $f6, $f4 +/* 041008 7F00C4D8 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 +/* 04100C 7F00C4DC 44818000 */ mtc1 $at, $f16 +/* 041010 7F00C4E0 46083282 */ mul.s $f10, $f6, $f8 +/* 041014 7F00C4E4 0FC170D8 */ jal truncf +/* 041018 7F00C4E8 46105303 */ div.s $f12, $f10, $f16 +/* 04101C 7F00C4EC 4600048D */ trunc.w.s $f18, $f0 +/* 041020 7F00C4F0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041024 7F00C4F4 02003025 */ move $a2, $s0 +/* 041028 7F00C4F8 02203825 */ move $a3, $s1 +/* 04102C 7F00C4FC 44059000 */ mfc1 $a1, $f18 +/* 041030 7F00C500 0FC01F32 */ jal sub_GAME_7F007CC8 +/* 041034 7F00C504 00000000 */ nop +/* 041038 7F00C508 24480008 */ addiu $t0, $v0, 8 +/* 04103C 7F00C50C AFA801B8 */ sw $t0, 0x1b8($sp) +/* 041040 7F00C510 3C0B0100 */ lui $t3, 0x100 +/* 041044 7F00C514 3C050600 */ lui $a1, 0x600 +/* 041048 7F00C518 256B0000 */ addiu $t3, $t3, 0 +/* 04104C 7F00C51C AC4B0004 */ sw $t3, 4($v0) +/* 041050 7F00C520 AC450000 */ sw $a1, ($v0) +/* 041054 7F00C524 8FAC01B8 */ lw $t4, 0x1b8($sp) +/* 041058 7F00C528 3C180100 */ lui $t8, 0x100 +/* 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) +/* 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 +/* 041078 7F00C548 27B30108 */ addiu $s3, $sp, 0x108 +/* 04107C 7F00C54C AD980004 */ sw $t8, 4($t4) +/* 041080 7F00C550 AD850000 */ sw $a1, ($t4) +/* 041084 7F00C554 27A4014C */ addiu $a0, $sp, 0x14c +.L7F00C558: +/* 041088 7F00C558 00805025 */ move $t2, $a0 +/* 04108C 7F00C55C 0280C825 */ move $t9, $s4 +/* 041090 7F00C560 268E003C */ addiu $t6, $s4, 0x3c +.L7F00C564: +/* 041094 7F00C564 8F210000 */ lw $at, ($t9) +/* 041098 7F00C568 2739000C */ addiu $t9, %lo(0xFB00000C) # addiu $t9, $t9, 0xc +/* 04109C 7F00C56C 254A000C */ addiu $t2, $t2, 0xc +/* 0410A0 7F00C570 AD41FFF4 */ sw $at, -0xc($t2) +/* 0410A4 7F00C574 8F21FFF8 */ lw $at, -8($t9) +/* 0410A8 7F00C578 AD41FFF8 */ sw $at, -8($t2) +/* 0410AC 7F00C57C 8F21FFFC */ lw $at, -4($t9) +/* 0410B0 7F00C580 172EFFF8 */ bne $t9, $t6, .L7F00C564 +/* 0410B4 7F00C584 AD41FFFC */ sw $at, -4($t2) +/* 0410B8 7F00C588 8F210000 */ lw $at, ($t9) +/* 0410BC 7F00C58C 24090003 */ li $t1, 3 +/* 0410C0 7F00C590 00008825 */ move $s1, $zero +/* 0410C4 7F00C594 AD410000 */ sw $at, ($t2) +/* 0410C8 7F00C598 8FA801B8 */ lw $t0, 0x1b8($sp) +/* 0410CC 7F00C59C AFA90154 */ sw $t1, 0x154($sp) +/* 0410D0 7F00C5A0 AFA00150 */ sw $zero, 0x150($sp) +/* 0410D4 7F00C5A4 8E450000 */ lw $a1, ($s2) +/* 0410D8 7F00C5A8 0FC1D1A1 */ jal subdraw +/* 0410DC 7F00C5AC AFA80158 */ sw $t0, 0x158($sp) +/* 0410E0 7F00C5B0 8FAB0158 */ lw $t3, 0x158($sp) +/* 0410E4 7F00C5B4 8E420000 */ lw $v0, ($s2) +/* 0410E8 7F00C5B8 00008025 */ move $s0, $zero +/* 0410EC 7F00C5BC AFAB01B8 */ sw $t3, 0x1b8($sp) +/* 0410F0 7F00C5C0 8C4C0008 */ lw $t4, 8($v0) +/* 0410F4 7F00C5C4 858D000E */ lh $t5, 0xe($t4) +/* 0410F8 7F00C5C8 19A00013 */ blez $t5, .L7F00C618 +/* 0410FC 7F00C5CC 00000000 */ nop +/* 041100 7F00C5D0 8C58000C */ lw $t8, 0xc($v0) +.L7F00C5D4: +/* 041104 7F00C5D4 02602825 */ move $a1, $s3 +/* 041108 7F00C5D8 0FC16008 */ jal matrix_4x4_copy +/* 04110C 7F00C5DC 03102021 */ addu $a0, $t8, $s0 +/* 041110 7F00C5E0 8E4F0000 */ lw $t7, ($s2) +/* 041114 7F00C5E4 0011C980 */ sll $t9, $s1, 6 +/* 041118 7F00C5E8 02602025 */ move $a0, $s3 +/* 04111C 7F00C5EC 8DEE000C */ lw $t6, 0xc($t7) +/* 041120 7F00C5F0 0FC16327 */ jal sub_GAME_7F058C9C +/* 041124 7F00C5F4 01D92821 */ addu $a1, $t6, $t9 +/* 041128 7F00C5F8 8E420000 */ lw $v0, ($s2) +/* 04112C 7F00C5FC 26310001 */ addiu $s1, $s1, 1 +/* 041130 7F00C600 26100040 */ addiu $s0, $s0, 0x40 +/* 041134 7F00C604 8C4A0008 */ lw $t2, 8($v0) +/* 041138 7F00C608 8549000E */ lh $t1, 0xe($t2) +/* 04113C 7F00C60C 0229082A */ slt $at, $s1, $t1 +/* 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 +/* 041150 7F00C620 2652FFFC */ addiu $s2, $s2, -4 +/* 041154 7F00C624 0248082B */ sltu $at, $s2, $t0 +/* 041158 7F00C628 5020FFCB */ beql $at, $zero, .L7F00C558 +/* 04115C 7F00C62C 27A4014C */ addiu $a0, $sp, 0x14c +/* 041160 7F00C630 0FC2B366 */ jal microcode_constructor +/* 041164 7F00C634 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041168 7F00C638 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04116C 7F00C63C 0FC2B2DE */ jal setTextSpacingInverted +/* 041170 7F00C640 00002025 */ move $a0, $zero +/* 041174 7F00C644 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80069620) +/* 041178 7F00C648 256B9620 */ addiu $t3, %lo(dword_CODE_bss_80069620) # addiu $t3, $t3, -0x69e0 +/* 04117C 7F00C64C 3C1EEBD8 */ lui $fp, (0xEBD879FF >> 16) # lui $fp, 0xebd8 +/* 041180 7F00C650 3C148004 */ lui $s4, %hi(ptrFirstFontTableLarge) +/* 041184 7F00C654 3C138004 */ lui $s3, %hi(ptrSecondFontTableLarge) +/* 041188 7F00C658 26730EB8 */ addiu $s3, %lo(ptrSecondFontTableLarge) # addiu $s3, $s3, 0xeb8 +/* 04118C 7F00C65C 26940EB4 */ addiu $s4, %lo(ptrFirstFontTableLarge) # addiu $s4, $s4, 0xeb4 +/* 041190 7F00C660 37DE79FF */ ori $fp, (0xEBD879FF & 0xFFFF) # ori $fp, $fp, 0x79ff +/* 041194 7F00C664 AFAB0074 */ sw $t3, 0x74($sp) +/* 041198 7F00C668 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 04119C 7F00C66C 27B700FC */ addiu $s7, $sp, 0xfc +/* 0411A0 7F00C670 27B60100 */ addiu $s6, $sp, 0x100 +/* 0411A4 7F00C674 27B500BC */ addiu $s5, $sp, 0xbc +.L7F00C678: +/* 0411A8 7F00C678 8FA40074 */ lw $a0, 0x74($sp) +/* 0411AC 7F00C67C 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0411B0 7F00C680 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0411B4 7F00C684 3C0C8003 */ lui $t4, %hi(folder_selected_for_deletion) +/* 0411B8 7F00C688 8FA401B4 */ lw $a0, 0x1b4($sp) +/* 0411BC 7F00C68C 8D8CA91C */ lw $t4, %lo(folder_selected_for_deletion)($t4) +/* 0411C0 7F00C690 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0411C4 7F00C694 148C00F2 */ bne $a0, $t4, .L7F00CA60 +/* 0411C8 7F00C698 00000000 */ nop +/* 0411CC 7F00C69C 0FC170D8 */ jal truncf +/* 0411D0 7F00C6A0 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0411D4 7F00C6A4 4600010D */ trunc.w.s $f4, $f0 +/* 0411D8 7F00C6A8 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0411DC 7F00C6AC 44122000 */ mfc1 $s2, $f4 +/* 0411E0 7F00C6B0 00000000 */ nop +/* 0411E4 7F00C6B4 2652FFCF */ addiu $s2, $s2, -0x31 +/* 0411E8 7F00C6B8 0FC170D8 */ jal truncf +/* 0411EC 7F00C6BC AFB20100 */ sw $s2, 0x100($sp) +/* 0411F0 7F00C6C0 4600018D */ trunc.w.s $f6, $f0 +/* 0411F4 7F00C6C4 8FA50100 */ lw $a1, 0x100($sp) +/* 0411F8 7F00C6C8 240E0032 */ li $t6, 50 +/* 0411FC 7F00C6CC AFAE0014 */ sw $t6, 0x14($sp) +/* 041200 7F00C6D0 44103000 */ mfc1 $s0, $f6 +/* 041204 7F00C6D4 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041208 7F00C6D8 24A70063 */ addiu $a3, $a1, 0x63 +/* 04120C 7F00C6DC 26060019 */ addiu $a2, $s0, 0x19 +/* 041210 7F00C6E0 24CF002A */ addiu $t7, $a2, 0x2a +/* 041214 7F00C6E4 AFAF0010 */ sw $t7, 0x10($sp) +/* 041218 7F00C6E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04121C 7F00C6EC AFA600FC */ sw $a2, 0xfc($sp) +/* 041220 7F00C6F0 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041224 7F00C6F4 0FC30776 */ jal get_textptr_for_textID +/* 041228 7F00C6F8 34049C17 */ li $a0, 39959 +/* 04122C 7F00C6FC 00408825 */ move $s1, $v0 +/* 041230 7F00C700 0FC170D8 */ jal truncf +/* 041234 7F00C704 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041238 7F00C708 4600020D */ trunc.w.s $f8, $f0 +/* 04123C 7F00C70C C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041240 7F00C710 44124000 */ mfc1 $s2, $f8 +/* 041244 7F00C714 00000000 */ nop +/* 041248 7F00C718 2652FFD1 */ addiu $s2, $s2, -0x2f +/* 04124C 7F00C71C 0FC170D8 */ jal truncf +/* 041250 7F00C720 AFB20100 */ sw $s2, 0x100($sp) +/* 041254 7F00C724 4600028D */ trunc.w.s $f10, $f0 +/* 041258 7F00C728 44105000 */ mfc1 $s0, $f10 +/* 04125C 7F00C72C 00000000 */ nop +/* 041260 7F00C730 2610001E */ addiu $s0, $s0, 0x1e +/* 041264 7F00C734 0C001107 */ jal get_video2_settings_txtClipW +/* 041268 7F00C738 AFB000FC */ sw $s0, 0xfc($sp) +/* 04126C 7F00C73C 00028400 */ sll $s0, $v0, 0x10 +/* 041270 7F00C740 00104C03 */ sra $t1, $s0, 0x10 +/* 041274 7F00C744 0C00110B */ jal get_video2_settings_txtClipH +/* 041278 7F00C748 01208025 */ move $s0, $t1 +/* 04127C 7F00C74C 8E680000 */ lw $t0, ($s3) +/* 041280 7F00C750 8E8B0000 */ lw $t3, ($s4) +/* 041284 7F00C754 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041288 7F00C758 02C02825 */ move $a1, $s6 +/* 04128C 7F00C75C 02E03025 */ move $a2, $s7 +/* 041290 7F00C760 02203825 */ move $a3, $s1 +/* 041294 7F00C764 AFBE0018 */ sw $fp, 0x18($sp) +/* 041298 7F00C768 AFB0001C */ sw $s0, 0x1c($sp) +/* 04129C 7F00C76C AFA20020 */ sw $v0, 0x20($sp) +/* 0412A0 7F00C770 AFA00024 */ sw $zero, 0x24($sp) +/* 0412A4 7F00C774 AFA00028 */ sw $zero, 0x28($sp) +/* 0412A8 7F00C778 AFA80010 */ sw $t0, 0x10($sp) +/* 0412AC 7F00C77C 0FC2B6AF */ jal en_text_write_stuff +/* 0412B0 7F00C780 AFAB0014 */ sw $t3, 0x14($sp) +/* 0412B4 7F00C784 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 0412B8 7F00C788 0FC30776 */ jal get_textptr_for_textID +/* 0412BC 7F00C78C 34049C18 */ li $a0, 39960 +/* 0412C0 7F00C790 00408825 */ move $s1, $v0 +/* 0412C4 7F00C794 0FC170D8 */ jal truncf +/* 0412C8 7F00C798 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0412CC 7F00C79C 4600040D */ trunc.w.s $f16, $f0 +/* 0412D0 7F00C7A0 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0412D4 7F00C7A4 44128000 */ mfc1 $s2, $f16 +/* 0412D8 7F00C7A8 00000000 */ nop +/* 0412DC 7F00C7AC 2652FFD1 */ addiu $s2, $s2, -0x2f +/* 0412E0 7F00C7B0 0FC170D8 */ jal truncf +/* 0412E4 7F00C7B4 AFB20100 */ sw $s2, 0x100($sp) +/* 0412E8 7F00C7B8 4600048D */ trunc.w.s $f18, $f0 +/* 0412EC 7F00C7BC 3C188003 */ lui $t8, %hi(folder_selected_for_deletion_choice) +/* 0412F0 7F00C7C0 8F18A920 */ lw $t8, %lo(folder_selected_for_deletion_choice)($t8) +/* 0412F4 7F00C7C4 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 0412F8 7F00C7C8 44109000 */ mfc1 $s0, $f18 +/* 0412FC 7F00C7CC 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041300 7F00C7D0 02203025 */ move $a2, $s1 +/* 041304 7F00C7D4 26100032 */ addiu $s0, $s0, 0x32 +/* 041308 7F00C7D8 1300002D */ beqz $t8, .L7F00C890 +/* 04130C 7F00C7DC AFB000FC */ sw $s0, 0xfc($sp) +/* 041310 7F00C7E0 8E8F0000 */ lw $t7, ($s4) +/* 041314 7F00C7E4 AFA000F4 */ sw $zero, 0xf4($sp) +/* 041318 7F00C7E8 AFA000F8 */ sw $zero, 0xf8($sp) +/* 04131C 7F00C7EC 8E670000 */ lw $a3, ($s3) +/* 041320 7F00C7F0 AFA00014 */ sw $zero, 0x14($sp) +/* 041324 7F00C7F4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 041328 7F00C7F8 AFAF0010 */ sw $t7, 0x10($sp) +/* 04132C 7F00C7FC 8FB000FC */ lw $s0, 0xfc($sp) +/* 041330 7F00C800 8FB20100 */ lw $s2, 0x100($sp) +/* 041334 7F00C804 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 041338 7F00C808 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04133C 7F00C80C 24090032 */ li $t1, 50 +/* 041340 7F00C810 024E3821 */ addu $a3, $s2, $t6 +/* 041344 7F00C814 02195021 */ addu $t2, $s0, $t9 +/* 041348 7F00C818 AFAA0010 */ sw $t2, 0x10($sp) +/* 04134C 7F00C81C 24E70003 */ addiu $a3, $a3, 3 +/* 041350 7F00C820 AFA90014 */ sw $t1, 0x14($sp) +/* 041354 7F00C824 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041358 7F00C828 2606FFFF */ addiu $a2, $s0, -1 +/* 04135C 7F00C82C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 041360 7F00C830 2645FFFF */ addiu $a1, $s2, -1 +/* 041364 7F00C834 0C001107 */ jal get_video2_settings_txtClipW +/* 041368 7F00C838 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04136C 7F00C83C 00028400 */ sll $s0, $v0, 0x10 +/* 041370 7F00C840 00104403 */ sra $t0, $s0, 0x10 +/* 041374 7F00C844 0C00110B */ jal get_video2_settings_txtClipH +/* 041378 7F00C848 01008025 */ move $s0, $t0 +/* 04137C 7F00C84C 8E6B0000 */ lw $t3, ($s3) +/* 041380 7F00C850 8E8C0000 */ lw $t4, ($s4) +/* 041384 7F00C854 240DFFFF */ li $t5, -1 +/* 041388 7F00C858 AFAD0018 */ sw $t5, 0x18($sp) +/* 04138C 7F00C85C 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041390 7F00C860 02C02825 */ move $a1, $s6 +/* 041394 7F00C864 02E03025 */ move $a2, $s7 +/* 041398 7F00C868 02203825 */ move $a3, $s1 +/* 04139C 7F00C86C AFB0001C */ sw $s0, 0x1c($sp) +/* 0413A0 7F00C870 AFA20020 */ sw $v0, 0x20($sp) +/* 0413A4 7F00C874 AFA00024 */ sw $zero, 0x24($sp) +/* 0413A8 7F00C878 AFA00028 */ sw $zero, 0x28($sp) +/* 0413AC 7F00C87C AFAB0010 */ sw $t3, 0x10($sp) +/* 0413B0 7F00C880 0FC2B6AF */ jal en_text_write_stuff +/* 0413B4 7F00C884 AFAC0014 */ sw $t4, 0x14($sp) +/* 0413B8 7F00C888 10000016 */ b .L7F00C8E4 +/* 0413BC 7F00C88C AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C890: +/* 0413C0 7F00C890 0C001107 */ jal get_video2_settings_txtClipW +/* 0413C4 7F00C894 00000000 */ nop +/* 0413C8 7F00C898 00028400 */ sll $s0, $v0, 0x10 +/* 0413CC 7F00C89C 0010C403 */ sra $t8, $s0, 0x10 +/* 0413D0 7F00C8A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0413D4 7F00C8A4 03008025 */ move $s0, $t8 +/* 0413D8 7F00C8A8 8E6F0000 */ lw $t7, ($s3) +/* 0413DC 7F00C8AC 8E8E0000 */ lw $t6, ($s4) +/* 0413E0 7F00C8B0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0413E4 7F00C8B4 02C02825 */ move $a1, $s6 +/* 0413E8 7F00C8B8 02E03025 */ move $a2, $s7 +/* 0413EC 7F00C8BC 02203825 */ move $a3, $s1 +/* 0413F0 7F00C8C0 AFBE0018 */ sw $fp, 0x18($sp) +/* 0413F4 7F00C8C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0413F8 7F00C8C8 AFA20020 */ sw $v0, 0x20($sp) +/* 0413FC 7F00C8CC AFA00024 */ sw $zero, 0x24($sp) +/* 041400 7F00C8D0 AFA00028 */ sw $zero, 0x28($sp) +/* 041404 7F00C8D4 AFAF0010 */ sw $t7, 0x10($sp) +/* 041408 7F00C8D8 0FC2B6AF */ jal en_text_write_stuff +/* 04140C 7F00C8DC AFAE0014 */ sw $t6, 0x14($sp) +/* 041410 7F00C8E0 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C8E4: +/* 041414 7F00C8E4 0FC30776 */ jal get_textptr_for_textID +/* 041418 7F00C8E8 34049C19 */ li $a0, 39961 +/* 04141C 7F00C8EC 00408825 */ move $s1, $v0 +/* 041420 7F00C8F0 0FC170D8 */ jal truncf +/* 041424 7F00C8F4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041428 7F00C8F8 3C198005 */ lui $t9, %hi(j_text_trigger) +/* 04142C 7F00C8FC 8F3984D0 */ lw $t9, %lo(j_text_trigger)($t9) +/* 041430 7F00C900 46000086 */ mov.s $f2, $f0 +/* 041434 7F00C904 4600110D */ trunc.w.s $f4, $f2 +/* 041438 7F00C908 13200003 */ beqz $t9, .L7F00C918 +/* 04143C 7F00C90C 2402FFFF */ li $v0, -1 +/* 041440 7F00C910 10000001 */ b .L7F00C918 +/* 041444 7F00C914 24020017 */ li $v0, 23 +.L7F00C918: +/* 041448 7F00C918 44092000 */ mfc1 $t1, $f4 +/* 04144C 7F00C91C C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041450 7F00C920 00499021 */ addu $s2, $v0, $t1 +/* 041454 7F00C924 2652FFFF */ addiu $s2, $s2, -1 +/* 041458 7F00C928 0FC170D8 */ jal truncf +/* 04145C 7F00C92C AFB20100 */ sw $s2, 0x100($sp) +/* 041460 7F00C930 4600018D */ trunc.w.s $f6, $f0 +/* 041464 7F00C934 3C0B8003 */ lui $t3, %hi(folder_selected_for_deletion_choice) +/* 041468 7F00C938 8D6BA920 */ lw $t3, %lo(folder_selected_for_deletion_choice)($t3) +/* 04146C 7F00C93C 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041470 7F00C940 44103000 */ mfc1 $s0, $f6 +/* 041474 7F00C944 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041478 7F00C948 02203025 */ move $a2, $s1 +/* 04147C 7F00C94C 26100032 */ addiu $s0, $s0, 0x32 +/* 041480 7F00C950 11600017 */ beqz $t3, .L7F00C9B0 +/* 041484 7F00C954 AFB000FC */ sw $s0, 0xfc($sp) +/* 041488 7F00C958 0C001107 */ jal get_video2_settings_txtClipW +/* 04148C 7F00C95C 00000000 */ nop +/* 041490 7F00C960 00028400 */ sll $s0, $v0, 0x10 +/* 041494 7F00C964 00106403 */ sra $t4, $s0, 0x10 +/* 041498 7F00C968 0C00110B */ jal get_video2_settings_txtClipH +/* 04149C 7F00C96C 01808025 */ move $s0, $t4 +/* 0414A0 7F00C970 8E6D0000 */ lw $t5, ($s3) +/* 0414A4 7F00C974 8E980000 */ lw $t8, ($s4) +/* 0414A8 7F00C978 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0414AC 7F00C97C 02C02825 */ move $a1, $s6 +/* 0414B0 7F00C980 02E03025 */ move $a2, $s7 +/* 0414B4 7F00C984 02203825 */ move $a3, $s1 +/* 0414B8 7F00C988 AFBE0018 */ sw $fp, 0x18($sp) +/* 0414BC 7F00C98C AFB0001C */ sw $s0, 0x1c($sp) +/* 0414C0 7F00C990 AFA20020 */ sw $v0, 0x20($sp) +/* 0414C4 7F00C994 AFA00024 */ sw $zero, 0x24($sp) +/* 0414C8 7F00C998 AFA00028 */ sw $zero, 0x28($sp) +/* 0414CC 7F00C99C AFAD0010 */ sw $t5, 0x10($sp) +/* 0414D0 7F00C9A0 0FC2B6AF */ jal en_text_write_stuff +/* 0414D4 7F00C9A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0414D8 7F00C9A8 100000D6 */ b .L7F00CD04 +/* 0414DC 7F00C9AC AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C9B0: +/* 0414E0 7F00C9B0 8E8F0000 */ lw $t7, ($s4) +/* 0414E4 7F00C9B4 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0414E8 7F00C9B8 AFA000F8 */ sw $zero, 0xf8($sp) +/* 0414EC 7F00C9BC 8E670000 */ lw $a3, ($s3) +/* 0414F0 7F00C9C0 AFA00014 */ sw $zero, 0x14($sp) +/* 0414F4 7F00C9C4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0414F8 7F00C9C8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0414FC 7F00C9CC 8FB000FC */ lw $s0, 0xfc($sp) +/* 041500 7F00C9D0 8FB20100 */ lw $s2, 0x100($sp) +/* 041504 7F00C9D4 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 041508 7F00C9D8 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04150C 7F00C9DC 24090032 */ li $t1, 50 +/* 041510 7F00C9E0 024E3821 */ addu $a3, $s2, $t6 +/* 041514 7F00C9E4 02195021 */ addu $t2, $s0, $t9 +/* 041518 7F00C9E8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04151C 7F00C9EC 24E70003 */ addiu $a3, $a3, 3 +/* 041520 7F00C9F0 AFA90014 */ sw $t1, 0x14($sp) +/* 041524 7F00C9F4 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041528 7F00C9F8 2606FFFF */ addiu $a2, $s0, -1 +/* 04152C 7F00C9FC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 041530 7F00CA00 2645FFFF */ addiu $a1, $s2, -1 +/* 041534 7F00CA04 0C001107 */ jal get_video2_settings_txtClipW +/* 041538 7F00CA08 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04153C 7F00CA0C 00028400 */ sll $s0, $v0, 0x10 +/* 041540 7F00CA10 00104403 */ sra $t0, $s0, 0x10 +/* 041544 7F00CA14 0C00110B */ jal get_video2_settings_txtClipH +/* 041548 7F00CA18 01008025 */ move $s0, $t0 +/* 04154C 7F00CA1C 8E6B0000 */ lw $t3, ($s3) +/* 041550 7F00CA20 8E8C0000 */ lw $t4, ($s4) +/* 041554 7F00CA24 240DFFFF */ li $t5, -1 +/* 041558 7F00CA28 AFAD0018 */ sw $t5, 0x18($sp) +/* 04155C 7F00CA2C 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041560 7F00CA30 02C02825 */ move $a1, $s6 +/* 041564 7F00CA34 02E03025 */ move $a2, $s7 +/* 041568 7F00CA38 02203825 */ move $a3, $s1 +/* 04156C 7F00CA3C AFB0001C */ sw $s0, 0x1c($sp) +/* 041570 7F00CA40 AFA20020 */ sw $v0, 0x20($sp) +/* 041574 7F00CA44 AFA00024 */ sw $zero, 0x24($sp) +/* 041578 7F00CA48 AFA00028 */ sw $zero, 0x28($sp) +/* 04157C 7F00CA4C AFAB0010 */ sw $t3, 0x10($sp) +/* 041580 7F00CA50 0FC2B6AF */ jal en_text_write_stuff +/* 041584 7F00CA54 AFAC0014 */ sw $t4, 0x14($sp) +/* 041588 7F00CA58 100000AA */ b .L7F00CD04 +/* 04158C 7F00CA5C AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CA60: +/* 041590 7F00CA60 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 041594 7F00CA64 27A600EC */ addiu $a2, $sp, 0xec +/* 041598 7F00CA68 8FA200F0 */ lw $v0, 0xf0($sp) +/* 04159C 7F00CA6C 8FA400EC */ lw $a0, 0xec($sp) +/* 0415A0 7F00CA70 044200A5 */ bltzl $v0, .L7F00CD08 +/* 0415A4 7F00CA74 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0415A8 7F00CA78 048200A3 */ bltzl $a0, .L7F00CD08 +/* 0415AC 7F00CA7C 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0415B0 7F00CA80 0FC030E1 */ jal get_ptr_difficulty_name +/* 0415B4 7F00CA84 00000000 */ nop +/* 0415B8 7F00CA88 10400038 */ beqz $v0, .L7F00CB6C +/* 0415BC 7F00CA8C 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0415C0 7F00CA90 0C0029DC */ jal textpointer_load_parse_something +/* 0415C4 7F00CA94 00402825 */ move $a1, $v0 +/* 0415C8 7F00CA98 3C058005 */ lui $a1, %hi(asc_D_8004F488) +/* 0415CC 7F00CA9C 24A5F488 */ addiu $a1, %lo(asc_D_8004F488) # addiu $a1, $a1, -0xb78 +/* 0415D0 7F00CAA0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0415D4 7F00CAA4 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0415D8 7F00CAA8 8E980000 */ lw $t8, ($s4) +/* 0415DC 7F00CAAC AFA000F4 */ sw $zero, 0xf4($sp) +/* 0415E0 7F00CAB0 AFA000F8 */ sw $zero, 0xf8($sp) +/* 0415E4 7F00CAB4 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 0415E8 7F00CAB8 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 0415EC 7F00CABC 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0415F0 7F00CAC0 8E670000 */ lw $a3, ($s3) +/* 0415F4 7F00CAC4 AFA00014 */ sw $zero, 0x14($sp) +/* 0415F8 7F00CAC8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0415FC 7F00CACC AFB80010 */ sw $t8, 0x10($sp) +/* 041600 7F00CAD0 0FC170D8 */ jal truncf +/* 041604 7F00CAD4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041608 7F00CAD8 4600020D */ trunc.w.s $f8, $f0 +/* 04160C 7F00CADC 8FB900F4 */ lw $t9, 0xf4($sp) +/* 041610 7F00CAE0 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041614 7F00CAE4 440E4000 */ mfc1 $t6, $f8 +/* 041618 7F00CAE8 07210003 */ bgez $t9, .L7F00CAF8 +/* 04161C 7F00CAEC 00195043 */ sra $t2, $t9, 1 +/* 041620 7F00CAF0 27210001 */ addiu $at, $t9, 1 +/* 041624 7F00CAF4 00015043 */ sra $t2, $at, 1 +.L7F00CAF8: +/* 041628 7F00CAF8 01CA9023 */ subu $s2, $t6, $t2 +/* 04162C 7F00CAFC 2652FFFF */ addiu $s2, $s2, -1 +/* 041630 7F00CB00 0FC170D8 */ jal truncf +/* 041634 7F00CB04 AFB20100 */ sw $s2, 0x100($sp) +/* 041638 7F00CB08 4600028D */ trunc.w.s $f10, $f0 +/* 04163C 7F00CB0C 44105000 */ mfc1 $s0, $f10 +/* 041640 7F00CB10 00000000 */ nop +/* 041644 7F00CB14 26100015 */ addiu $s0, $s0, 0x15 +/* 041648 7F00CB18 0C001107 */ jal get_video2_settings_txtClipW +/* 04164C 7F00CB1C AFB000FC */ sw $s0, 0xfc($sp) +/* 041650 7F00CB20 00028400 */ sll $s0, $v0, 0x10 +/* 041654 7F00CB24 00104403 */ sra $t0, $s0, 0x10 +/* 041658 7F00CB28 0C00110B */ jal get_video2_settings_txtClipH +/* 04165C 7F00CB2C 01008025 */ move $s0, $t0 +/* 041660 7F00CB30 8E6B0000 */ lw $t3, ($s3) +/* 041664 7F00CB34 8E8C0000 */ lw $t4, ($s4) +/* 041668 7F00CB38 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 04166C 7F00CB3C 02C02825 */ move $a1, $s6 +/* 041670 7F00CB40 02E03025 */ move $a2, $s7 +/* 041674 7F00CB44 27A700D0 */ addiu $a3, $sp, 0xd0 +/* 041678 7F00CB48 AFBE0018 */ sw $fp, 0x18($sp) +/* 04167C 7F00CB4C AFB0001C */ sw $s0, 0x1c($sp) +/* 041680 7F00CB50 AFA20020 */ sw $v0, 0x20($sp) +/* 041684 7F00CB54 AFA00024 */ sw $zero, 0x24($sp) +/* 041688 7F00CB58 AFA00028 */ sw $zero, 0x28($sp) +/* 04168C 7F00CB5C AFAB0010 */ sw $t3, 0x10($sp) +/* 041690 7F00CB60 0FC2B6AF */ jal en_text_write_stuff +/* 041694 7F00CB64 AFAC0014 */ sw $t4, 0x14($sp) +/* 041698 7F00CB68 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CB6C: +/* 04169C 7F00CB6C 8FA400EC */ lw $a0, 0xec($sp) +/* 0416A0 7F00CB70 24010003 */ li $at, 3 +/* 0416A4 7F00CB74 2412FFFF */ li $s2, -1 +/* 0416A8 7F00CB78 10810062 */ beq $a0, $at, .L7F00CD04 +/* 0416AC 7F00CB7C 00008825 */ move $s1, $zero +/* 0416B0 7F00CB80 0FC30776 */ jal get_textptr_for_textID +/* 0416B4 7F00CB84 34049C1A */ li $a0, 39962 +/* 0416B8 7F00CB88 02A02025 */ move $a0, $s5 +/* 0416BC 7F00CB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0416C0 7F00CB90 00402825 */ move $a1, $v0 +/* 0416C4 7F00CB94 3C0D8003 */ lui $t5, %hi(mission_folder_setup_entries+0x4) +/* 0416C8 7F00CB98 95ADABE8 */ lhu $t5, %lo(mission_folder_setup_entries+0x4)($t5) +/* 0416CC 7F00CB9C 3C108003 */ lui $s0, %hi(mission_folder_setup_entries) +/* 0416D0 7F00CBA0 2610ABE4 */ addiu $s0, %lo(mission_folder_setup_entries) # addiu $s0, $s0, -0x541c +/* 0416D4 7F00CBA4 11A0000D */ beqz $t5, .L7F00CBDC +/* 0416D8 7F00CBA8 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0416DC 7F00CBAC 8E180014 */ lw $t8, 0x14($s0) +.L7F00CBB0: +/* 0416E0 7F00CBB0 54580006 */ bnel $v0, $t8, .L7F00CBCC +/* 0416E4 7F00CBB4 960F0020 */ lhu $t7, 0x20($s0) +/* 0416E8 7F00CBB8 0FC02EC7 */ jal get_chapter_briefing_entry +/* 0416EC 7F00CBBC 02202025 */ move $a0, $s1 +/* 0416F0 7F00CBC0 10000006 */ b .L7F00CBDC +/* 0416F4 7F00CBC4 00409025 */ move $s2, $v0 +/* 0416F8 7F00CBC8 960F0020 */ lhu $t7, 0x20($s0) +.L7F00CBCC: +/* 0416FC 7F00CBCC 26310001 */ addiu $s1, $s1, 1 +/* 041700 7F00CBD0 2610001C */ addiu $s0, $s0, 0x1c +/* 041704 7F00CBD4 55E0FFF6 */ bnezl $t7, .L7F00CBB0 +/* 041708 7F00CBD8 8E180014 */ lw $t8, 0x14($s0) +.L7F00CBDC: +/* 04170C 7F00CBDC 0011C8C0 */ sll $t9, $s1, 3 +/* 041710 7F00CBE0 0331C823 */ subu $t9, $t9, $s1 +/* 041714 7F00CBE4 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries) +/* 041718 7F00CBE8 25CEABE4 */ addiu $t6, %lo(mission_folder_setup_entries) # addiu $t6, $t6, -0x541c +/* 04171C 7F00CBEC 0019C880 */ sll $t9, $t9, 2 +/* 041720 7F00CBF0 0640000C */ bltz $s2, .L7F00CC24 +/* 041724 7F00CBF4 032E8021 */ addu $s0, $t9, $t6 +/* 041728 7F00CBF8 001250C0 */ sll $t2, $s2, 3 +/* 04172C 7F00CBFC 01525023 */ subu $t2, $t2, $s2 +/* 041730 7F00CC00 000A5080 */ sll $t2, $t2, 2 +/* 041734 7F00CC04 014E4821 */ addu $t1, $t2, $t6 +/* 041738 7F00CC08 8D250000 */ lw $a1, ($t1) +/* 04173C 7F00CC0C 0C0029FF */ jal string_append_from_obseg_textbank +/* 041740 7F00CC10 02A02025 */ move $a0, $s5 +/* 041744 7F00CC14 3C058005 */ lui $a1, %hi(a_) +/* 041748 7F00CC18 24A5F48C */ addiu $a1, %lo(a_) # addiu $a1, $a1, -0xb74 +/* 04174C 7F00CC1C 0C0029FF */ jal string_append_from_obseg_textbank +/* 041750 7F00CC20 02A02025 */ move $a0, $s5 +.L7F00CC24: +/* 041754 7F00CC24 02A02025 */ move $a0, $s5 +/* 041758 7F00CC28 0C0029FF */ jal string_append_from_obseg_textbank +/* 04175C 7F00CC2C 8E050000 */ lw $a1, ($s0) +/* 041760 7F00CC30 3C058005 */ lui $a1, %hi(asc_D_8004F490) +/* 041764 7F00CC34 24A5F490 */ addiu $a1, %lo(asc_D_8004F490) # addiu $a1, $a1, -0xb70 +/* 041768 7F00CC38 0C0029FF */ jal string_append_from_obseg_textbank +/* 04176C 7F00CC3C 02A02025 */ move $a0, $s5 +/* 041770 7F00CC40 8E880000 */ lw $t0, ($s4) +/* 041774 7F00CC44 AFA000F4 */ sw $zero, 0xf4($sp) +/* 041778 7F00CC48 AFA000F8 */ sw $zero, 0xf8($sp) +/* 04177C 7F00CC4C 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041780 7F00CC50 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041784 7F00CC54 02A03025 */ move $a2, $s5 +/* 041788 7F00CC58 8E670000 */ lw $a3, ($s3) +/* 04178C 7F00CC5C AFA00014 */ sw $zero, 0x14($sp) +/* 041790 7F00CC60 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 041794 7F00CC64 AFA80010 */ sw $t0, 0x10($sp) +/* 041798 7F00CC68 0FC170D8 */ jal truncf +/* 04179C 7F00CC6C C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0417A0 7F00CC70 4600040D */ trunc.w.s $f16, $f0 +/* 0417A4 7F00CC74 8FAD00F4 */ lw $t5, 0xf4($sp) +/* 0417A8 7F00CC78 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0417AC 7F00CC7C 440C8000 */ mfc1 $t4, $f16 +/* 0417B0 7F00CC80 05A10003 */ bgez $t5, .L7F00CC90 +/* 0417B4 7F00CC84 000DC043 */ sra $t8, $t5, 1 +/* 0417B8 7F00CC88 25A10001 */ addiu $at, $t5, 1 +/* 0417BC 7F00CC8C 0001C043 */ sra $t8, $at, 1 +.L7F00CC90: +/* 0417C0 7F00CC90 01989023 */ subu $s2, $t4, $t8 +/* 0417C4 7F00CC94 2652FFFF */ addiu $s2, $s2, -1 +/* 0417C8 7F00CC98 0FC170D8 */ jal truncf +/* 0417CC 7F00CC9C AFB20100 */ sw $s2, 0x100($sp) +/* 0417D0 7F00CCA0 4600048D */ trunc.w.s $f18, $f0 +/* 0417D4 7F00CCA4 44109000 */ mfc1 $s0, $f18 +/* 0417D8 7F00CCA8 00000000 */ nop +/* 0417DC 7F00CCAC 2610002D */ addiu $s0, $s0, 0x2d +/* 0417E0 7F00CCB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0417E4 7F00CCB4 AFB000FC */ sw $s0, 0xfc($sp) +/* 0417E8 7F00CCB8 00028400 */ sll $s0, $v0, 0x10 +/* 0417EC 7F00CCBC 0010CC03 */ sra $t9, $s0, 0x10 +/* 0417F0 7F00CCC0 0C00110B */ jal get_video2_settings_txtClipH +/* 0417F4 7F00CCC4 03208025 */ move $s0, $t9 +/* 0417F8 7F00CCC8 8E6A0000 */ lw $t2, ($s3) +/* 0417FC 7F00CCCC 8E8E0000 */ lw $t6, ($s4) +/* 041800 7F00CCD0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041804 7F00CCD4 02C02825 */ move $a1, $s6 +/* 041808 7F00CCD8 02E03025 */ move $a2, $s7 +/* 04180C 7F00CCDC 02A03825 */ move $a3, $s5 +/* 041810 7F00CCE0 AFBE0018 */ sw $fp, 0x18($sp) +/* 041814 7F00CCE4 AFB0001C */ sw $s0, 0x1c($sp) +/* 041818 7F00CCE8 AFA20020 */ sw $v0, 0x20($sp) +/* 04181C 7F00CCEC AFA00024 */ sw $zero, 0x24($sp) +/* 041820 7F00CCF0 AFA00028 */ sw $zero, 0x28($sp) +/* 041824 7F00CCF4 AFAA0010 */ sw $t2, 0x10($sp) +/* 041828 7F00CCF8 0FC2B6AF */ jal en_text_write_stuff +/* 04182C 7F00CCFC AFAE0014 */ sw $t6, 0x14($sp) +/* 041830 7F00CD00 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CD04: +/* 041834 7F00CD04 8FA901B4 */ lw $t1, 0x1b4($sp) +.L7F00CD08: +/* 041838 7F00CD08 8FAB0074 */ lw $t3, 0x74($sp) +/* 04183C 7F00CD0C 24010004 */ li $at, 4 +/* 041840 7F00CD10 25280001 */ addiu $t0, $t1, 1 +/* 041844 7F00CD14 256D000C */ addiu $t5, $t3, 0xc +/* 041848 7F00CD18 AFAD0074 */ sw $t5, 0x74($sp) +/* 04184C 7F00CD1C 1501FE56 */ bne $t0, $at, .L7F00C678 +/* 041850 7F00CD20 AFA801B4 */ sw $t0, 0x1b4($sp) +/* 041854 7F00CD24 0FC2B2DE */ jal setTextSpacingInverted +/* 041858 7F00CD28 00002025 */ move $a0, $zero +/* 04185C 7F00CD2C 0FC30776 */ jal get_textptr_for_textID +/* 041860 7F00CD30 34049C1B */ li $a0, 39963 +/* 041864 7F00CD34 8E8C0000 */ lw $t4, ($s4) +/* 041868 7F00CD38 00408825 */ move $s1, $v0 +/* 04186C 7F00CD3C AFA000F4 */ sw $zero, 0xf4($sp) +/* 041870 7F00CD40 AFA000F8 */ sw $zero, 0xf8($sp) +/* 041874 7F00CD44 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041878 7F00CD48 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 04187C 7F00CD4C 00403025 */ move $a2, $v0 +/* 041880 7F00CD50 8E670000 */ lw $a3, ($s3) +/* 041884 7F00CD54 AFA00014 */ sw $zero, 0x14($sp) +/* 041888 7F00CD58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04188C 7F00CD5C AFAC0010 */ sw $t4, 0x10($sp) +/* 041890 7F00CD60 8FB800F8 */ lw $t8, 0xf8($sp) +/* 041894 7F00CD64 241E011D */ li $fp, 285 +/* 041898 7F00CD68 241200F7 */ li $s2, 247 +/* 04189C 7F00CD6C 07010003 */ bgez $t8, .L7F00CD7C +/* 0418A0 7F00CD70 00187843 */ sra $t7, $t8, 1 +/* 0418A4 7F00CD74 27010001 */ addiu $at, $t8, 1 +/* 0418A8 7F00CD78 00017843 */ sra $t7, $at, 1 +.L7F00CD7C: +/* 0418AC 7F00CD7C 03CF8023 */ subu $s0, $fp, $t7 +/* 0418B0 7F00CD80 AFB000FC */ sw $s0, 0xfc($sp) +/* 0418B4 7F00CD84 0C001107 */ jal get_video2_settings_txtClipW +/* 0418B8 7F00CD88 AFB20100 */ sw $s2, 0x100($sp) +/* 0418BC 7F00CD8C 00028400 */ sll $s0, $v0, 0x10 +/* 0418C0 7F00CD90 0010CC03 */ sra $t9, $s0, 0x10 +/* 0418C4 7F00CD94 0C00110B */ jal get_video2_settings_txtClipH +/* 0418C8 7F00CD98 03208025 */ move $s0, $t9 +/* 0418CC 7F00CD9C 8E6A0000 */ lw $t2, ($s3) +/* 0418D0 7F00CDA0 8E8E0000 */ lw $t6, ($s4) +/* 0418D4 7F00CDA4 2409FFFF */ li $t1, -1 +/* 0418D8 7F00CDA8 AFA90018 */ sw $t1, 0x18($sp) +/* 0418DC 7F00CDAC 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0418E0 7F00CDB0 02C02825 */ move $a1, $s6 +/* 0418E4 7F00CDB4 02E03025 */ move $a2, $s7 +/* 0418E8 7F00CDB8 02203825 */ move $a3, $s1 +/* 0418EC 7F00CDBC AFB0001C */ sw $s0, 0x1c($sp) +/* 0418F0 7F00CDC0 AFA20020 */ sw $v0, 0x20($sp) +/* 0418F4 7F00CDC4 AFA00024 */ sw $zero, 0x24($sp) +/* 0418F8 7F00CDC8 AFA00028 */ sw $zero, 0x28($sp) +/* 0418FC 7F00CDCC AFAA0010 */ sw $t2, 0x10($sp) +/* 041900 7F00CDD0 0FC2B6AF */ jal en_text_write_stuff +/* 041904 7F00CDD4 AFAE0014 */ sw $t6, 0x14($sp) +/* 041908 7F00CDD8 8FB20100 */ lw $s2, 0x100($sp) +/* 04190C 7F00CDDC 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 041910 7F00CDE0 3C158003 */ lui $s5, %hi(folder_option_COPY_left_bound) +/* 041914 7F00CDE4 26B5ABC4 */ addiu $s5, %lo(folder_option_COPY_left_bound) # addiu $s5, $s5, -0x543c +/* 041918 7F00CDE8 024B6821 */ addu $t5, $s2, $t3 +/* 04191C 7F00CDEC 448D2000 */ mtc1 $t5, $f4 +/* 041920 7F00CDF0 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041924 7F00CDF4 34049C1C */ li $a0, 39964 +/* 041928 7F00CDF8 468021A0 */ cvt.s.w $f6, $f4 +/* 04192C 7F00CDFC 0FC30776 */ jal get_textptr_for_textID +/* 041930 7F00CE00 E6A60008 */ swc1 $f6, 8($s5) +/* 041934 7F00CE04 8E880000 */ lw $t0, ($s4) +/* 041938 7F00CE08 00408825 */ move $s1, $v0 +/* 04193C 7F00CE0C AFA000F4 */ sw $zero, 0xf4($sp) +/* 041940 7F00CE10 AFA000F8 */ sw $zero, 0xf8($sp) +/* 041944 7F00CE14 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041948 7F00CE18 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 04194C 7F00CE1C 00403025 */ move $a2, $v0 +/* 041950 7F00CE20 8E670000 */ lw $a3, ($s3) +/* 041954 7F00CE24 AFA00014 */ sw $zero, 0x14($sp) +/* 041958 7F00CE28 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04195C 7F00CE2C AFA80010 */ sw $t0, 0x10($sp) +/* 041960 7F00CE30 8FAC00F8 */ lw $t4, 0xf8($sp) +/* 041964 7F00CE34 24120165 */ li $s2, 357 +/* 041968 7F00CE38 AFB20100 */ sw $s2, 0x100($sp) +/* 04196C 7F00CE3C 05810003 */ bgez $t4, .L7F00CE4C +/* 041970 7F00CE40 000CC043 */ sra $t8, $t4, 1 +/* 041974 7F00CE44 25810001 */ addiu $at, $t4, 1 +/* 041978 7F00CE48 0001C043 */ sra $t8, $at, 1 +.L7F00CE4C: +/* 04197C 7F00CE4C 03D88023 */ subu $s0, $fp, $t8 +/* 041980 7F00CE50 0C001107 */ jal get_video2_settings_txtClipW +/* 041984 7F00CE54 AFB000FC */ sw $s0, 0xfc($sp) +/* 041988 7F00CE58 00028400 */ sll $s0, $v0, 0x10 +/* 04198C 7F00CE5C 00107C03 */ sra $t7, $s0, 0x10 +/* 041990 7F00CE60 0C00110B */ jal get_video2_settings_txtClipH +/* 041994 7F00CE64 01E08025 */ move $s0, $t7 +/* 041998 7F00CE68 8E790000 */ lw $t9, ($s3) +/* 04199C 7F00CE6C 8E8A0000 */ lw $t2, ($s4) +/* 0419A0 7F00CE70 240EFFFF */ li $t6, -1 +/* 0419A4 7F00CE74 AFAE0018 */ sw $t6, 0x18($sp) +/* 0419A8 7F00CE78 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0419AC 7F00CE7C 02C02825 */ move $a1, $s6 +/* 0419B0 7F00CE80 02E03025 */ move $a2, $s7 +/* 0419B4 7F00CE84 02203825 */ move $a3, $s1 +/* 0419B8 7F00CE88 AFB0001C */ sw $s0, 0x1c($sp) +/* 0419BC 7F00CE8C AFA20020 */ sw $v0, 0x20($sp) +/* 0419C0 7F00CE90 AFA00024 */ sw $zero, 0x24($sp) +/* 0419C4 7F00CE94 AFA00028 */ sw $zero, 0x28($sp) +/* 0419C8 7F00CE98 AFB90010 */ sw $t9, 0x10($sp) +/* 0419CC 7F00CE9C 0FC2B6AF */ jal en_text_write_stuff +/* 0419D0 7F00CEA0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0419D4 7F00CEA4 8FA90100 */ lw $t1, 0x100($sp) +/* 0419D8 7F00CEA8 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 0419DC 7F00CEAC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0419E0 7F00CEB0 44810000 */ mtc1 $at, $f0 +/* 0419E4 7F00CEB4 012B6821 */ addu $t5, $t1, $t3 +/* 0419E8 7F00CEB8 448D4000 */ mtc1 $t5, $f8 +/* 0419EC 7F00CEBC 3C138003 */ lui $s3, %hi(folder_option_ERASE_left_bound) +/* 0419F0 7F00CEC0 3C014361 */ li $at, 0x43610000 # 225.000000 +/* 0419F4 7F00CEC4 468042A0 */ cvt.s.w $f10, $f8 +/* 0419F8 7F00CEC8 44818000 */ mtc1 $at, $f16 +/* 0419FC 7F00CECC 2673ABD4 */ addiu $s3, %lo(folder_option_ERASE_left_bound) # addiu $s3, $s3, -0x542c +/* 041A00 7F00CED0 3C118009 */ lui $s1, %hi(mainfolderimages) +/* 041A04 7F00CED4 3C018005 */ lui $at, %hi(D_80051A28) +/* 041A08 7F00CED8 2631D128 */ addiu $s1, %lo(mainfolderimages) # addiu $s1, $s1, -0x2ed8 +/* 041A0C 7F00CEDC E66A0008 */ swc1 $f10, 8($s3) +/* 041A10 7F00CEE0 C4321A28 */ lwc1 $f18, %lo(D_80051A28)($at) +/* 041A14 7F00CEE4 8E300000 */ lw $s0, ($s1) +/* 041A18 7F00CEE8 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041A1C 7F00CEEC E7B000AC */ swc1 $f16, 0xac($sp) +/* 041A20 7F00CEF0 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 041A24 7F00CEF4 92080004 */ lbu $t0, 4($s0) +/* 041A28 7F00CEF8 27B201B8 */ addiu $s2, $sp, 0x1b8 +/* 041A2C 7F00CEFC 44882000 */ mtc1 $t0, $f4 +/* 041A30 7F00CF00 05010005 */ bgez $t0, .L7F00CF18 +/* 041A34 7F00CF04 468021A0 */ cvt.s.w $f6, $f4 +/* 041A38 7F00CF08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041A3C 7F00CF0C 44814000 */ mtc1 $at, $f8 +/* 041A40 7F00CF10 00000000 */ nop +/* 041A44 7F00CF14 46083180 */ add.s $f6, $f6, $f8 +.L7F00CF18: +/* 041A48 7F00CF18 46003282 */ mul.s $f10, $f6, $f0 +/* 041A4C 7F00CF1C E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 041A50 7F00CF20 920C0005 */ lbu $t4, 5($s0) +/* 041A54 7F00CF24 448C8000 */ mtc1 $t4, $f16 +/* 041A58 7F00CF28 05810005 */ bgez $t4, .L7F00CF40 +/* 041A5C 7F00CF2C 468084A0 */ cvt.s.w $f18, $f16 +/* 041A60 7F00CF30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041A64 7F00CF34 44812000 */ mtc1 $at, $f4 +/* 041A68 7F00CF38 00000000 */ nop +/* 041A6C 7F00CF3C 46049480 */ add.s $f18, $f18, $f4 +.L7F00CF40: +/* 041A70 7F00CF40 46009202 */ mul.s $f8, $f18, $f0 +/* 041A74 7F00CF44 02402025 */ move $a0, $s2 +/* 041A78 7F00CF48 02002825 */ move $a1, $s0 +/* 041A7C 7F00CF4C 24060004 */ li $a2, 4 +/* 041A80 7F00CF50 00003825 */ move $a3, $zero +/* 041A84 7F00CF54 AFA00010 */ sw $zero, 0x10($sp) +/* 041A88 7F00CF58 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041A8C 7F00CF5C E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 041A90 7F00CF60 8E300000 */ lw $s0, ($s1) +/* 041A94 7F00CF64 240F0001 */ li $t7, 1 +/* 041A98 7F00CF68 241900FF */ li $t9, 255 +/* 041A9C 7F00CF6C 92180005 */ lbu $t8, 5($s0) +/* 041AA0 7F00CF70 92070004 */ lbu $a3, 4($s0) +/* 041AA4 7F00CF74 240A00FF */ li $t2, 255 +/* 041AA8 7F00CF78 240E00FF */ li $t6, 255 +/* 041AAC 7F00CF7C 240900FF */ li $t1, 255 +/* 041AB0 7F00CF80 AFA9002C */ sw $t1, 0x2c($sp) +/* 041AB4 7F00CF84 AFAE0028 */ sw $t6, 0x28($sp) +/* 041AB8 7F00CF88 AFAA0024 */ sw $t2, 0x24($sp) +/* 041ABC 7F00CF8C AFB90020 */ sw $t9, 0x20($sp) +/* 041AC0 7F00CF90 AFAF001C */ sw $t7, 0x1c($sp) +/* 041AC4 7F00CF94 AFA00018 */ sw $zero, 0x18($sp) +/* 041AC8 7F00CF98 AFA00014 */ sw $zero, 0x14($sp) +/* 041ACC 7F00CF9C AFB80010 */ sw $t8, 0x10($sp) +/* 041AD0 7F00CFA0 920B0006 */ lbu $t3, 6($s0) +/* 041AD4 7F00CFA4 AFA00034 */ sw $zero, 0x34($sp) +/* 041AD8 7F00CFA8 02402025 */ move $a0, $s2 +/* 041ADC 7F00CFAC 000B682A */ slt $t5, $zero, $t3 +/* 041AE0 7F00CFB0 AFAD0030 */ sw $t5, 0x30($sp) +/* 041AE4 7F00CFB4 27A500AC */ addiu $a1, $sp, 0xac +/* 041AE8 7F00CFB8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041AEC 7F00CFBC 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 041AF0 7F00CFC0 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 041AF4 7F00CFC4 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 041AF8 7F00CFC8 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 041AFC 7F00CFCC C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 041B00 7F00CFD0 460A3401 */ sub.s $f16, $f6, $f10 +/* 041B04 7F00CFD4 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 041B08 7F00CFD8 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 041B0C 7F00CFDC 46122201 */ sub.s $f8, $f4, $f18 +/* 041B10 7F00CFE0 E6B00000 */ swc1 $f16, ($s5) +/* 041B14 7F00CFE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041B18 7F00CFE8 460A3400 */ add.s $f16, $f6, $f10 +/* 041B1C 7F00CFEC 44810000 */ mtc1 $at, $f0 +/* 041B20 7F00CFF0 E6A80004 */ swc1 $f8, 4($s5) +/* 041B24 7F00CFF4 3C018005 */ lui $at, %hi(D_80051A2C) +/* 041B28 7F00CFF8 E6B0000C */ swc1 $f16, 0xc($s5) +/* 041B2C 7F00CFFC C4241A2C */ lwc1 $f4, %lo(D_80051A2C)($at) +/* 041B30 7F00D000 3C018005 */ lui $at, %hi(D_80051A30) +/* 041B34 7F00D004 C4321A30 */ lwc1 $f18, %lo(D_80051A30)($at) +/* 041B38 7F00D008 8E300000 */ lw $s0, ($s1) +/* 041B3C 7F00D00C E7A4009C */ swc1 $f4, 0x9c($sp) +/* 041B40 7F00D010 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 041B44 7F00D014 92080010 */ lbu $t0, 0x10($s0) +/* 041B48 7F00D018 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041B4C 7F00D01C 44884000 */ mtc1 $t0, $f8 +/* 041B50 7F00D020 05010004 */ bgez $t0, .L7F00D034 +/* 041B54 7F00D024 468041A0 */ cvt.s.w $f6, $f8 +/* 041B58 7F00D028 44815000 */ mtc1 $at, $f10 +/* 041B5C 7F00D02C 00000000 */ nop +/* 041B60 7F00D030 460A3180 */ add.s $f6, $f6, $f10 +.L7F00D034: +/* 041B64 7F00D034 46003402 */ mul.s $f16, $f6, $f0 +/* 041B68 7F00D038 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041B6C 7F00D03C E7B00094 */ swc1 $f16, 0x94($sp) +/* 041B70 7F00D040 920C0011 */ lbu $t4, 0x11($s0) +/* 041B74 7F00D044 448C2000 */ mtc1 $t4, $f4 +/* 041B78 7F00D048 05810004 */ bgez $t4, .L7F00D05C +/* 041B7C 7F00D04C 468024A0 */ cvt.s.w $f18, $f4 +/* 041B80 7F00D050 44814000 */ mtc1 $at, $f8 +/* 041B84 7F00D054 00000000 */ nop +/* 041B88 7F00D058 46089480 */ add.s $f18, $f18, $f8 +.L7F00D05C: +/* 041B8C 7F00D05C 46009282 */ mul.s $f10, $f18, $f0 +/* 041B90 7F00D060 02402025 */ move $a0, $s2 +/* 041B94 7F00D064 2605000C */ addiu $a1, $s0, 0xc +/* 041B98 7F00D068 24060004 */ li $a2, 4 +/* 041B9C 7F00D06C 00003825 */ move $a3, $zero +/* 041BA0 7F00D070 AFA00010 */ sw $zero, 0x10($sp) +/* 041BA4 7F00D074 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041BA8 7F00D078 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 041BAC 7F00D07C 8E300000 */ lw $s0, ($s1) +/* 041BB0 7F00D080 240F0001 */ li $t7, 1 +/* 041BB4 7F00D084 241900FF */ li $t9, 255 +/* 041BB8 7F00D088 92180011 */ lbu $t8, 0x11($s0) +/* 041BBC 7F00D08C 92070010 */ lbu $a3, 0x10($s0) +/* 041BC0 7F00D090 240A00FF */ li $t2, 255 +/* 041BC4 7F00D094 240E00FF */ li $t6, 255 +/* 041BC8 7F00D098 240900FF */ li $t1, 255 +/* 041BCC 7F00D09C AFA9002C */ sw $t1, 0x2c($sp) +/* 041BD0 7F00D0A0 AFAE0028 */ sw $t6, 0x28($sp) +/* 041BD4 7F00D0A4 AFAA0024 */ sw $t2, 0x24($sp) +/* 041BD8 7F00D0A8 AFB90020 */ sw $t9, 0x20($sp) +/* 041BDC 7F00D0AC AFAF001C */ sw $t7, 0x1c($sp) +/* 041BE0 7F00D0B0 AFA00018 */ sw $zero, 0x18($sp) +/* 041BE4 7F00D0B4 AFA00014 */ sw $zero, 0x14($sp) +/* 041BE8 7F00D0B8 AFB80010 */ sw $t8, 0x10($sp) +/* 041BEC 7F00D0BC 920B0012 */ lbu $t3, 0x12($s0) +/* 041BF0 7F00D0C0 AFA00034 */ sw $zero, 0x34($sp) +/* 041BF4 7F00D0C4 02402025 */ move $a0, $s2 +/* 041BF8 7F00D0C8 000B682A */ slt $t5, $zero, $t3 +/* 041BFC 7F00D0CC AFAD0030 */ sw $t5, 0x30($sp) +/* 041C00 7F00D0D0 27A5009C */ addiu $a1, $sp, 0x9c +/* 041C04 7F00D0D4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041C08 7F00D0D8 27A60094 */ addiu $a2, $sp, 0x94 +/* 041C0C 7F00D0DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 041C10 7F00D0E0 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 041C14 7F00D0E4 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 041C18 7F00D0E8 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 041C1C 7F00D0EC 46103101 */ sub.s $f4, $f6, $f16 +/* 041C20 7F00D0F0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 041C24 7F00D0F4 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 041C28 7F00D0F8 46124281 */ sub.s $f10, $f8, $f18 +/* 041C2C 7F00D0FC E6640000 */ swc1 $f4, ($s3) +/* 041C30 7F00D100 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 041C34 7F00D104 46103100 */ add.s $f4, $f6, $f16 +/* 041C38 7F00D108 44814000 */ mtc1 $at, $f8 +/* 041C3C 7F00D10C E66A0004 */ swc1 $f10, 4($s3) +/* 041C40 7F00D110 3C018005 */ lui $at, %hi(D_80051A34) +/* 041C44 7F00D114 E664000C */ swc1 $f4, 0xc($s3) +/* 041C48 7F00D118 C4321A34 */ lwc1 $f18, %lo(D_80051A34)($at) +/* 041C4C 7F00D11C 8E300000 */ lw $s0, ($s1) +/* 041C50 7F00D120 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 041C54 7F00D124 E7B20090 */ swc1 $f18, 0x90($sp) +/* 041C58 7F00D128 9208001C */ lbu $t0, 0x1c($s0) +/* 041C5C 7F00D12C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041C60 7F00D130 44885000 */ mtc1 $t0, $f10 +/* 041C64 7F00D134 05010004 */ bgez $t0, .L7F00D148 +/* 041C68 7F00D138 468051A0 */ cvt.s.w $f6, $f10 +/* 041C6C 7F00D13C 44818000 */ mtc1 $at, $f16 +/* 041C70 7F00D140 00000000 */ nop +/* 041C74 7F00D144 46103180 */ add.s $f6, $f6, $f16 +.L7F00D148: +/* 041C78 7F00D148 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041C7C 7F00D14C 44812000 */ mtc1 $at, $f4 +/* 041C80 7F00D150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041C84 7F00D154 46043202 */ mul.s $f8, $f6, $f4 +/* 041C88 7F00D158 E7A80084 */ swc1 $f8, 0x84($sp) +/* 041C8C 7F00D15C 920C001D */ lbu $t4, 0x1d($s0) +/* 041C90 7F00D160 448C9000 */ mtc1 $t4, $f18 +/* 041C94 7F00D164 05810004 */ bgez $t4, .L7F00D178 +/* 041C98 7F00D168 468092A0 */ cvt.s.w $f10, $f18 +/* 041C9C 7F00D16C 44818000 */ mtc1 $at, $f16 +/* 041CA0 7F00D170 00000000 */ nop +/* 041CA4 7F00D174 46105280 */ add.s $f10, $f10, $f16 +.L7F00D178: +/* 041CA8 7F00D178 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041CAC 7F00D17C 44813000 */ mtc1 $at, $f6 +/* 041CB0 7F00D180 02402025 */ move $a0, $s2 +/* 041CB4 7F00D184 26050018 */ addiu $a1, $s0, 0x18 +/* 041CB8 7F00D188 46065102 */ mul.s $f4, $f10, $f6 +/* 041CBC 7F00D18C 24060004 */ li $a2, 4 +/* 041CC0 7F00D190 00003825 */ move $a3, $zero +/* 041CC4 7F00D194 AFA00010 */ sw $zero, 0x10($sp) +/* 041CC8 7F00D198 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041CCC 7F00D19C E7A40088 */ swc1 $f4, 0x88($sp) +/* 041CD0 7F00D1A0 8E300000 */ lw $s0, ($s1) +/* 041CD4 7F00D1A4 240F0001 */ li $t7, 1 +/* 041CD8 7F00D1A8 241900FF */ li $t9, 255 +/* 041CDC 7F00D1AC 9218001D */ lbu $t8, 0x1d($s0) +/* 041CE0 7F00D1B0 9207001C */ lbu $a3, 0x1c($s0) +/* 041CE4 7F00D1B4 240A00FF */ li $t2, 255 +/* 041CE8 7F00D1B8 240E00FF */ li $t6, 255 +/* 041CEC 7F00D1BC 240900FF */ li $t1, 255 +/* 041CF0 7F00D1C0 AFA9002C */ sw $t1, 0x2c($sp) +/* 041CF4 7F00D1C4 AFAE0028 */ sw $t6, 0x28($sp) +/* 041CF8 7F00D1C8 AFAA0024 */ sw $t2, 0x24($sp) +/* 041CFC 7F00D1CC AFB90020 */ sw $t9, 0x20($sp) +/* 041D00 7F00D1D0 AFAF001C */ sw $t7, 0x1c($sp) +/* 041D04 7F00D1D4 AFA00018 */ sw $zero, 0x18($sp) +/* 041D08 7F00D1D8 AFA00014 */ sw $zero, 0x14($sp) +/* 041D0C 7F00D1DC AFB80010 */ sw $t8, 0x10($sp) +/* 041D10 7F00D1E0 920B001E */ lbu $t3, 0x1e($s0) +/* 041D14 7F00D1E4 AFA00034 */ sw $zero, 0x34($sp) +/* 041D18 7F00D1E8 02402025 */ move $a0, $s2 +/* 041D1C 7F00D1EC 000B682A */ slt $t5, $zero, $t3 +/* 041D20 7F00D1F0 AFAD0030 */ sw $t5, 0x30($sp) +/* 041D24 7F00D1F4 27A5008C */ addiu $a1, $sp, 0x8c +/* 041D28 7F00D1F8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041D2C 7F00D1FC 27A60084 */ addiu $a2, $sp, 0x84 +/* 041D30 7F00D200 3C088003 */ lui $t0, %hi(folder_selected_for_deletion) +/* 041D34 7F00D204 8D08A91C */ lw $t0, %lo(folder_selected_for_deletion)($t0) +/* 041D38 7F00D208 05030005 */ bgezl $t0, .L7F00D220 +/* 041D3C 7F00D20C 8FBF0064 */ lw $ra, 0x64($sp) +/* 041D40 7F00D210 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 041D44 7F00D214 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041D48 7F00D218 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041D4C 7F00D21C 8FBF0064 */ lw $ra, 0x64($sp) +.L7F00D220: +/* 041D50 7F00D220 8FA201B8 */ lw $v0, 0x1b8($sp) +/* 041D54 7F00D224 8FB00040 */ lw $s0, 0x40($sp) +/* 041D58 7F00D228 8FB10044 */ lw $s1, 0x44($sp) +/* 041D5C 7F00D22C 8FB20048 */ lw $s2, 0x48($sp) +/* 041D60 7F00D230 8FB3004C */ lw $s3, 0x4c($sp) +/* 041D64 7F00D234 8FB40050 */ lw $s4, 0x50($sp) +/* 041D68 7F00D238 8FB50054 */ lw $s5, 0x54($sp) +/* 041D6C 7F00D23C 8FB60058 */ lw $s6, 0x58($sp) +/* 041D70 7F00D240 8FB7005C */ lw $s7, 0x5c($sp) +/* 041D74 7F00D244 8FBE0060 */ lw $fp, 0x60($sp) +/* 041D78 7F00D248 03E00008 */ jr $ra +/* 041D7C 7F00D24C 27BD01B8 */ addiu $sp, $sp, 0x1b8 +) +#endif + + + +void init_menu06_modeselect(void) +{ + gamemode = -1; + tab_2_selected = 0; + tab_3_selected = 0; + load_walletbond(); + copyCurrentEEPROMtoStack(); +} + +void update_menu06_modesel(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void interface_menu06_modesel(void) +{ + u32 i; + + is_cheat_menu_available = FALSE; + for (i=1; i != 0x4b; i++) + { + if (check_if_cheat_available(i) == 0) + { + cheat_available[i] = FALSE; + } + else + { + cheat_available[i] = TRUE; + is_cheat_menu_available = TRUE; + } + } + + setvideo_far(60.0f); + video_related_21((1.33333337f); + set_page_height(100.0f, 10000.0f); + set_video2_settings_offset_24(0); + disable_all_switches(ptr_folder_object_instance); + + select_load_bond_picture(ptr_folder_object_instance, removed_would_have_returned_bond_for_folder_num(selected_folder_num)); + 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, 7, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 2, 1); + tab_3_highlight = FALSE; + mission_difficulty_highlighted = DIFFICULTY_MULTI; + if (isontab3() == 0) { + if ((is_cheat_menu_available == FALSE) || (cursor_v_pos < 275.0f)) { + if ((cursor_v_pos < 243.0f) || + (get_attached_controller_count() < 2)) { + mission_difficulty_highlighted = DIFFICULTY_AGENT; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_SOLO; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + else { + mission_difficulty_highlighted = DIFFICULTY_SECRET; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_MULTI; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + } + else { + mission_difficulty_highlighted = DIFFICULTY_00; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_CHEATS; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + } + else { + tab_3_highlight = TRUE; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + tab_3_selected = TRUE; + play_sfx_a1(ptr_sfx_buf, 199, NULL); + } + } + if (get_controller_buttons_pressed('\0',B_BUTTON)) { + tab_3_selected = TRUE; + play_sfx_a1(ptr_sfx_buf, 199, NULL); + } + menu_control_stick_tracking(); + if (gamemode == GAMEMODE_SOLO) { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo(0); + } + else { + if (gamemode == GAMEMODE_MULTI) { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } + else { + if (gamemode == GAMEMODE_CHEATS) { + set_menu_to_mode(MENU_CHEAT, 0); + } + else { + if (tab_3_selected != FALSE) { + set_menu_to_mode(MENU_FILE_SELECT, 0); + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A38 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A3C +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A40 +.word 0x43898000 /* 275.0;*/ +.text +glabel interface_menu06_modesel +/* 041DC8 7F00D298 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 041DCC 7F00D29C AFB00018 */ sw $s0, 0x18($sp) +/* 041DD0 7F00D2A0 3C018003 */ lui $at, %hi(is_cheat_menu_available) +/* 041DD4 7F00D2A4 3C038007 */ lui $v1, %hi(cheat_available) +/* 041DD8 7F00D2A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 041DDC 7F00D2AC AC20A94C */ sw $zero, %lo(is_cheat_menu_available)($at) +/* 041DE0 7F00D2B0 24639651 */ addiu $v1, %lo(cheat_available) # addiu $v1, $v1, -0x69af +/* 041DE4 7F00D2B4 24100001 */ li $s0, 1 +.L7F00D2B8: +/* 041DE8 7F00D2B8 02002025 */ move $a0, $s0 +/* 041DEC 7F00D2BC 0FC02612 */ jal check_if_cheat_available +/* 041DF0 7F00D2C0 AFA30024 */ sw $v1, 0x24($sp) +/* 041DF4 7F00D2C4 10400007 */ beqz $v0, .L7F00D2E4 +/* 041DF8 7F00D2C8 8FA30024 */ lw $v1, 0x24($sp) +/* 041DFC 7F00D2CC 240E0001 */ li $t6, 1 +/* 041E00 7F00D2D0 A06E0000 */ sb $t6, ($v1) +/* 041E04 7F00D2D4 240F0001 */ li $t7, 1 +/* 041E08 7F00D2D8 3C018003 */ lui $at, %hi(is_cheat_menu_available) +/* 041E0C 7F00D2DC 10000002 */ b .L7F00D2E8 +/* 041E10 7F00D2E0 AC2FA94C */ sw $t7, %lo(is_cheat_menu_available)($at) +.L7F00D2E4: +/* 041E14 7F00D2E4 A0600000 */ sb $zero, ($v1) +.L7F00D2E8: +/* 041E18 7F00D2E8 26100001 */ addiu $s0, $s0, 1 +/* 041E1C 7F00D2EC 2401004B */ li $at, 75 +/* 041E20 7F00D2F0 1601FFF1 */ bne $s0, $at, .L7F00D2B8 +/* 041E24 7F00D2F4 24630001 */ addiu $v1, $v1, 1 +/* 041E28 7F00D2F8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 041E2C 7F00D2FC 44816000 */ mtc1 $at, $f12 +/* 041E30 7F00D300 0C001151 */ jal setvideo_far +/* 041E34 7F00D304 00000000 */ nop +/* 041E38 7F00D308 3C018005 */ lui $at, %hi(D_80051A38) +/* 041E3C 7F00D30C 0C001164 */ jal video_related_21 +/* 041E40 7F00D310 C42C1A38 */ lwc1 $f12, %lo(D_80051A38)($at) +/* 041E44 7F00D314 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 041E48 7F00D318 44816000 */ mtc1 $at, $f12 +/* 041E4C 7F00D31C 3C018005 */ lui $at, %hi(D_80051A3C) +/* 041E50 7F00D320 0C001194 */ jal set_page_height +/* 041E54 7F00D324 C42E1A3C */ lwc1 $f14, %lo(D_80051A3C)($at) +/* 041E58 7F00D328 0C00114D */ jal set_video2_settings_offset_24 +/* 041E5C 7F00D32C 00002025 */ move $a0, $zero +/* 041E60 7F00D330 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 041E64 7F00D334 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 041E68 7F00D338 0FC02DC9 */ jal disable_all_switches +/* 041E6C 7F00D33C 8E040000 */ lw $a0, ($s0) +/* 041E70 7F00D340 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 041E74 7F00D344 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 041E78 7F00D348 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 041E7C 7F00D34C 8E040000 */ lw $a0, ($s0) +/* 041E80 7F00D350 0FC02E02 */ jal select_load_bond_picture +/* 041E84 7F00D354 00402825 */ move $a1, $v0 +/* 041E88 7F00D358 8E040000 */ lw $a0, ($s0) +/* 041E8C 7F00D35C 00002825 */ move $a1, $zero +/* 041E90 7F00D360 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041E94 7F00D364 24060001 */ li $a2, 1 +/* 041E98 7F00D368 8E040000 */ lw $a0, ($s0) +/* 041E9C 7F00D36C 24050001 */ li $a1, 1 +/* 041EA0 7F00D370 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EA4 7F00D374 24060001 */ li $a2, 1 +/* 041EA8 7F00D378 8E040000 */ lw $a0, ($s0) +/* 041EAC 7F00D37C 24050003 */ li $a1, 3 +/* 041EB0 7F00D380 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EB4 7F00D384 24060001 */ li $a2, 1 +/* 041EB8 7F00D388 8E040000 */ lw $a0, ($s0) +/* 041EBC 7F00D38C 24050007 */ li $a1, 7 +/* 041EC0 7F00D390 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EC4 7F00D394 24060001 */ li $a2, 1 +/* 041EC8 7F00D398 8E040000 */ lw $a0, ($s0) +/* 041ECC 7F00D39C 24050002 */ li $a1, 2 +/* 041ED0 7F00D3A0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041ED4 7F00D3A4 24060001 */ li $a2, 1 +/* 041ED8 7F00D3A8 3C108007 */ lui $s0, %hi(mission_difficulty_highlighted) +/* 041EDC 7F00D3AC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 041EE0 7F00D3B0 26109784 */ addiu $s0, %lo(mission_difficulty_highlighted) # addiu $s0, $s0, -0x687c +/* 041EE4 7F00D3B4 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 041EE8 7F00D3B8 2418FFFF */ li $t8, -1 +/* 041EEC 7F00D3BC 0FC028E7 */ jal isontab3 +/* 041EF0 7F00D3C0 AE180000 */ sw $t8, ($s0) +/* 041EF4 7F00D3C4 10400012 */ beqz $v0, .L7F00D410 +/* 041EF8 7F00D3C8 3C098003 */ lui $t1, %hi(is_cheat_menu_available) +/* 041EFC 7F00D3CC 24190001 */ li $t9, 1 +/* 041F00 7F00D3D0 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 041F04 7F00D3D4 AC39A8E4 */ sw $t9, %lo(tab_3_highlight)($at) +/* 041F08 7F00D3D8 00002025 */ move $a0, $zero +/* 041F0C 7F00D3DC 0C0030EB */ jal get_controller_buttons_pressed +/* 041F10 7F00D3E0 3405B000 */ li $a1, 45056 +/* 041F14 7F00D3E4 1040004D */ beqz $v0, .L7F00D51C +/* 041F18 7F00D3E8 24080001 */ li $t0, 1 +/* 041F1C 7F00D3EC 3C018003 */ lui $at, %hi(tab_3_selected) +/* 041F20 7F00D3F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F24 7F00D3F4 AC28A8D8 */ sw $t0, %lo(tab_3_selected)($at) +/* 041F28 7F00D3F8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F2C 7F00D3FC 240500C7 */ li $a1, 199 +/* 041F30 7F00D400 0C002382 */ jal play_sfx_a1 +/* 041F34 7F00D404 00003025 */ move $a2, $zero +/* 041F38 7F00D408 10000045 */ b .L7F00D520 +/* 041F3C 7F00D40C 00002025 */ move $a0, $zero +.L7F00D410: +/* 041F40 7F00D410 8D29A94C */ lw $t1, %lo(is_cheat_menu_available)($t1) +/* 041F44 7F00D414 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 041F48 7F00D418 11200017 */ beqz $t1, .L7F00D478 +/* 041F4C 7F00D41C 00000000 */ nop +/* 041F50 7F00D420 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 041F54 7F00D424 3C018005 */ lui $at, %hi(D_80051A40) +/* 041F58 7F00D428 C4261A40 */ lwc1 $f6, %lo(D_80051A40)($at) +/* 041F5C 7F00D42C 240A0002 */ li $t2, 2 +/* 041F60 7F00D430 00002025 */ move $a0, $zero +/* 041F64 7F00D434 4604303E */ c.le.s $f6, $f4 +/* 041F68 7F00D438 3405B000 */ li $a1, 45056 +/* 041F6C 7F00D43C 4500000E */ bc1f .L7F00D478 +/* 041F70 7F00D440 00000000 */ nop +/* 041F74 7F00D444 0C0030EB */ jal get_controller_buttons_pressed +/* 041F78 7F00D448 AE0A0000 */ sw $t2, ($s0) +/* 041F7C 7F00D44C 10400033 */ beqz $v0, .L7F00D51C +/* 041F80 7F00D450 240B0002 */ li $t3, 2 +/* 041F84 7F00D454 3C018003 */ lui $at, %hi(gamemode) +/* 041F88 7F00D458 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F8C 7F00D45C AC2BA8F0 */ sw $t3, %lo(gamemode)($at) +/* 041F90 7F00D460 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F94 7F00D464 240500C5 */ li $a1, 197 +/* 041F98 7F00D468 0C002382 */ jal play_sfx_a1 +/* 041F9C 7F00D46C 00003025 */ move $a2, $zero +/* 041FA0 7F00D470 1000002B */ b .L7F00D520 +/* 041FA4 7F00D474 00002025 */ move $a0, $zero +.L7F00D478: +/* 041FA8 7F00D478 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 041FAC 7F00D47C C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 041FB0 7F00D480 3C014373 */ li $at, 0x43730000 # 243.000000 +/* 041FB4 7F00D484 44815000 */ mtc1 $at, $f10 +/* 041FB8 7F00D488 00000000 */ nop +/* 041FBC 7F00D48C 4608503E */ c.le.s $f10, $f8 +/* 041FC0 7F00D490 00000000 */ nop +/* 041FC4 7F00D494 45020016 */ bc1fl .L7F00D4F0 +/* 041FC8 7F00D498 AE000000 */ sw $zero, ($s0) +/* 041FCC 7F00D49C 0C002E7E */ jal get_attached_controller_count +/* 041FD0 7F00D4A0 00000000 */ nop +/* 041FD4 7F00D4A4 28410002 */ slti $at, $v0, 2 +/* 041FD8 7F00D4A8 14200010 */ bnez $at, .L7F00D4EC +/* 041FDC 7F00D4AC 240C0001 */ li $t4, 1 +/* 041FE0 7F00D4B0 AE0C0000 */ sw $t4, ($s0) +/* 041FE4 7F00D4B4 00002025 */ move $a0, $zero +/* 041FE8 7F00D4B8 0C0030EB */ jal get_controller_buttons_pressed +/* 041FEC 7F00D4BC 3405B000 */ li $a1, 45056 +/* 041FF0 7F00D4C0 10400016 */ beqz $v0, .L7F00D51C +/* 041FF4 7F00D4C4 240D0001 */ li $t5, 1 +/* 041FF8 7F00D4C8 3C018003 */ lui $at, %hi(gamemode) +/* 041FFC 7F00D4CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042000 7F00D4D0 AC2DA8F0 */ sw $t5, %lo(gamemode)($at) +/* 042004 7F00D4D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042008 7F00D4D8 240500C5 */ li $a1, 197 +/* 04200C 7F00D4DC 0C002382 */ jal play_sfx_a1 +/* 042010 7F00D4E0 00003025 */ move $a2, $zero +/* 042014 7F00D4E4 1000000E */ b .L7F00D520 +/* 042018 7F00D4E8 00002025 */ move $a0, $zero +.L7F00D4EC: +/* 04201C 7F00D4EC AE000000 */ sw $zero, ($s0) +.L7F00D4F0: +/* 042020 7F00D4F0 00002025 */ move $a0, $zero +/* 042024 7F00D4F4 0C0030EB */ jal get_controller_buttons_pressed +/* 042028 7F00D4F8 3405B000 */ li $a1, 45056 +/* 04202C 7F00D4FC 10400007 */ beqz $v0, .L7F00D51C +/* 042030 7F00D500 3C018003 */ lui $at, %hi(gamemode) +/* 042034 7F00D504 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042038 7F00D508 AC20A8F0 */ sw $zero, %lo(gamemode)($at) +/* 04203C 7F00D50C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042040 7F00D510 240500C5 */ li $a1, 197 +/* 042044 7F00D514 0C002382 */ jal play_sfx_a1 +/* 042048 7F00D518 00003025 */ move $a2, $zero +.L7F00D51C: +/* 04204C 7F00D51C 00002025 */ move $a0, $zero +.L7F00D520: +/* 042050 7F00D520 0C0030EB */ jal get_controller_buttons_pressed +/* 042054 7F00D524 24054000 */ li $a1, 16384 +/* 042058 7F00D528 10400008 */ beqz $v0, .L7F00D54C +/* 04205C 7F00D52C 240E0001 */ li $t6, 1 +/* 042060 7F00D530 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042064 7F00D534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042068 7F00D538 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 04206C 7F00D53C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042070 7F00D540 240500C7 */ li $a1, 199 +/* 042074 7F00D544 0C002382 */ jal play_sfx_a1 +/* 042078 7F00D548 00003025 */ move $a2, $zero +.L7F00D54C: +/* 04207C 7F00D54C 0FC026E1 */ jal menu_control_stick_tracking +/* 042080 7F00D550 00000000 */ nop +/* 042084 7F00D554 3C028003 */ lui $v0, %hi(gamemode) +/* 042088 7F00D558 8C42A8F0 */ lw $v0, %lo(gamemode)($v0) +/* 04208C 7F00D55C 24040007 */ li $a0, 7 +/* 042090 7F00D560 24010001 */ li $at, 1 +/* 042094 7F00D564 14400007 */ bnez $v0, .L7F00D584 +/* 042098 7F00D568 00000000 */ nop +/* 04209C 7F00D56C 0FC06975 */ jal set_menu_to_mode +/* 0420A0 7F00D570 00002825 */ move $a1, $zero +/* 0420A4 7F00D574 0FC038F8 */ jal set_cursor_to_stage_solo +/* 0420A8 7F00D578 00002025 */ move $a0, $zero +/* 0420AC 7F00D57C 10000016 */ b .L7F00D5D8 +/* 0420B0 7F00D580 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D584: +/* 0420B4 7F00D584 14410005 */ bne $v0, $at, .L7F00D59C +/* 0420B8 7F00D588 2404000E */ li $a0, 14 +/* 0420BC 7F00D58C 0FC06975 */ jal set_menu_to_mode +/* 0420C0 7F00D590 00002825 */ move $a1, $zero +/* 0420C4 7F00D594 10000010 */ b .L7F00D5D8 +/* 0420C8 7F00D598 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D59C: +/* 0420CC 7F00D59C 24010002 */ li $at, 2 +/* 0420D0 7F00D5A0 14410006 */ bne $v0, $at, .L7F00D5BC +/* 0420D4 7F00D5A4 3C0F8003 */ lui $t7, %hi(tab_3_selected) +/* 0420D8 7F00D5A8 24040015 */ li $a0, 21 +/* 0420DC 7F00D5AC 0FC06975 */ jal set_menu_to_mode +/* 0420E0 7F00D5B0 00002825 */ move $a1, $zero +/* 0420E4 7F00D5B4 10000008 */ b .L7F00D5D8 +/* 0420E8 7F00D5B8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D5BC: +/* 0420EC 7F00D5BC 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 0420F0 7F00D5C0 24040005 */ li $a0, 5 +/* 0420F4 7F00D5C4 51E00004 */ beql $t7, $zero, .L7F00D5D8 +/* 0420F8 7F00D5C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0420FC 7F00D5CC 0FC06975 */ jal set_menu_to_mode +/* 042100 7F00D5D0 00002825 */ move $a1, $zero +/* 042104 7F00D5D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D5D8: +/* 042108 7F00D5D8 8FB00018 */ lw $s0, 0x18($sp) +/* 04210C 7F00D5DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 042110 7F00D5E0 03E00008 */ jr $ra +/* 042114 7F00D5E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F00D5E8(s32 arg0) +{ + s32 sp11C; + s32 sp118; + s32 sp114; + s32 sp110; + s32 sp10C; + s32 spC8; + s32 sp88; + s32 sp48; + f32 temp_f0; + f32 temp_f2; + s32 temp_ret; + s32 temp_s0; + void *temp_t8; + void *temp_t9; + void *temp_v0; + void *phi_t9; + void *phi_t8; + s32 phi_s1; + s32 phi_s0; + + temp_v0 = &D_8002AB94 + (selected_folder_num * 0xc); + phi_t9 = &D_8002AF84; + phi_t8 = &sp10C; +loop_1: + temp_t9 = phi_t9 + 0xc; + temp_t8 = phi_t8 + 0xc; + temp_t8->unk-C = (s32) *phi_t9; + temp_t8->unk-8 = (s32) temp_t9->unk-8; + temp_t8->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&D_8002AF84 + 0x3c)) + { + goto loop_1; + } + temp_t8->unk0 = (s32) temp_t9->unk0; + temp_f0 = temp_v0->unk0 + D_8002AFC4; + temp_f2 = temp_v0->unk4 + D_8002AFC8; + sub_GAME_7F059694(0, &spC8, temp_f0, temp_f2, 4000.0f + D_8002AFCC, temp_f0, temp_f2, 1.0f); + matrix_4x4_set_identity_and_position(&D_8002AB94 + (selected_folder_num * 0xc), &sp88); + matrix_scalar_multiply(0x3e800000, &sp88); + matrix_4x4_multiply_in_place(&spC8, &sp88); + temp_ret = sub_GAME_7F0BD714(ptr_folder_object_instance->unk8->unkE << 6); + sp11C = temp_ret; + matrix_4x4_copy(&sp88, temp_ret); + ptr_folder_object_instance->unkC = sp11C; + sp114 = 3; + sp110 = 0; + sp118 = arg0; + subdraw(&sp10C, ptr_folder_object_instance); + arg0 = sp118; + phi_s1 = 0; + phi_s0 = 0; + if (ptr_folder_object_instance->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(ptr_folder_object_instance->unkC + phi_s1, &sp48); + sub_GAME_7F058C9C(&sp48, ptr_folder_object_instance->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) + { + goto loop_3; + } + } + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00D5E8 +/* 042118 7F00D5E8 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 04211C 7F00D5EC AFB20034 */ sw $s2, 0x34($sp) +/* 042120 7F00D5F0 3C128003 */ lui $s2, %hi(selected_folder_num) +/* 042124 7F00D5F4 2652A8E8 */ addiu $s2, %lo(selected_folder_num) # addiu $s2, $s2, -0x5718 +/* 042128 7F00D5F8 8E4E0000 */ lw $t6, ($s2) +/* 04212C 7F00D5FC AFB30038 */ sw $s3, 0x38($sp) +/* 042130 7F00D600 2413000C */ li $s3, 12 +/* 042134 7F00D604 01D30019 */ multu $t6, $s3 +/* 042138 7F00D608 AFB10030 */ sw $s1, 0x30($sp) +/* 04213C 7F00D60C 3C118003 */ lui $s1, %hi(D_8002AB94) +/* 042140 7F00D610 2631AB94 */ addiu $s1, %lo(D_8002AB94) # addiu $s1, $s1, -0x546c +/* 042144 7F00D614 3C198003 */ lui $t9, %hi(D_8002AF84) +/* 042148 7F00D618 2739AF84 */ addiu $t9, %lo(D_8002AF84) # addiu $t9, $t9, -0x507c +/* 04214C 7F00D61C 44806000 */ mtc1 $zero, $f12 +/* 042150 7F00D620 AFBF003C */ sw $ra, 0x3c($sp) +/* 042154 7F00D624 AFB0002C */ sw $s0, 0x2c($sp) +/* 042158 7F00D628 AFA40158 */ sw $a0, 0x158($sp) +/* 04215C 7F00D62C 00007812 */ mflo $t7 +/* 042160 7F00D630 022F1021 */ addu $v0, $s1, $t7 +/* 042164 7F00D634 C4400000 */ lwc1 $f0, ($v0) +/* 042168 7F00D638 C4420004 */ lwc1 $f2, 4($v0) +/* 04216C 7F00D63C 272A003C */ addiu $t2, $t9, 0x3c +/* 042170 7F00D640 27B8010C */ addiu $t8, $sp, 0x10c +.L7F00D644: +/* 042174 7F00D644 8F210000 */ lw $at, ($t9) +/* 042178 7F00D648 2739000C */ addiu $t9, $t9, 0xc +/* 04217C 7F00D64C 2718000C */ addiu $t8, $t8, 0xc +/* 042180 7F00D650 AF01FFF4 */ sw $at, -0xc($t8) +/* 042184 7F00D654 8F21FFF8 */ lw $at, -8($t9) +/* 042188 7F00D658 AF01FFF8 */ sw $at, -8($t8) +/* 04218C 7F00D65C 8F21FFFC */ lw $at, -4($t9) +/* 042190 7F00D660 172AFFF8 */ bne $t9, $t2, .L7F00D644 +/* 042194 7F00D664 AF01FFFC */ sw $at, -4($t8) +/* 042198 7F00D668 8F210000 */ lw $at, ($t9) +/* 04219C 7F00D66C 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 0421A0 7F00D670 AF010000 */ sw $at, ($t8) +/* 0421A4 7F00D674 3C018003 */ lui $at, %hi(D_8002AFC4) +/* 0421A8 7F00D678 C424AFC4 */ lwc1 $f4, %lo(D_8002AFC4)($at) +/* 0421AC 7F00D67C 3C018003 */ lui $at, %hi(D_8002AFC8) +/* 0421B0 7F00D680 C426AFC8 */ lwc1 $f6, %lo(D_8002AFC8)($at) +/* 0421B4 7F00D684 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 0421B8 7F00D688 44814000 */ mtc1 $at, $f8 +/* 0421BC 7F00D68C 3C018003 */ lui $at, %hi(D_8002AFCC) +/* 0421C0 7F00D690 C42AAFCC */ lwc1 $f10, %lo(D_8002AFCC)($at) +/* 0421C4 7F00D694 46040000 */ add.s $f0, $f0, $f4 +/* 0421C8 7F00D698 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0421CC 7F00D69C 44819000 */ mtc1 $at, $f18 +/* 0421D0 7F00D6A0 46061080 */ add.s $f2, $f2, $f6 +/* 0421D4 7F00D6A4 44050000 */ mfc1 $a1, $f0 +/* 0421D8 7F00D6A8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0421DC 7F00D6AC 460A4400 */ add.s $f16, $f8, $f10 +/* 0421E0 7F00D6B0 44061000 */ mfc1 $a2, $f2 +/* 0421E4 7F00D6B4 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0421E8 7F00D6B8 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0421EC 7F00D6BC 44078000 */ mfc1 $a3, $f16 +/* 0421F0 7F00D6C0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0421F4 7F00D6C4 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0421F8 7F00D6C8 0FC165A5 */ jal sub_GAME_7F059694 +/* 0421FC 7F00D6CC E7B20020 */ swc1 $f18, 0x20($sp) +/* 042200 7F00D6D0 8E4B0000 */ lw $t3, ($s2) +/* 042204 7F00D6D4 27B00088 */ addiu $s0, $sp, 0x88 +/* 042208 7F00D6D8 02002825 */ move $a1, $s0 +/* 04220C 7F00D6DC 01730019 */ multu $t3, $s3 +/* 042210 7F00D6E0 00006012 */ mflo $t4 +/* 042214 7F00D6E4 022C2021 */ addu $a0, $s1, $t4 +/* 042218 7F00D6E8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 04221C 7F00D6EC 00000000 */ nop +/* 042220 7F00D6F0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 042224 7F00D6F4 44816000 */ mtc1 $at, $f12 +/* 042228 7F00D6F8 0FC1629F */ jal matrix_scalar_multiply +/* 04222C 7F00D6FC 02002825 */ move $a1, $s0 +/* 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 +/* 042244 7F00D714 8E6D0000 */ lw $t5, ($s3) +/* 042248 7F00D718 AFB0010C */ sw $s0, 0x10c($sp) +/* 04224C 7F00D71C 8DAE0008 */ lw $t6, 8($t5) +/* 042250 7F00D720 85C4000E */ lh $a0, 0xe($t6) +/* 042254 7F00D724 00047980 */ sll $t7, $a0, 6 +/* 042258 7F00D728 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04225C 7F00D72C 01E02025 */ move $a0, $t7 +/* 042260 7F00D730 AFA2011C */ sw $v0, 0x11c($sp) +/* 042264 7F00D734 02002025 */ move $a0, $s0 +/* 042268 7F00D738 0FC16008 */ jal matrix_4x4_copy +/* 04226C 7F00D73C 00402825 */ move $a1, $v0 +/* 042270 7F00D740 8FA9011C */ lw $t1, 0x11c($sp) +/* 042274 7F00D744 8E680000 */ lw $t0, ($s3) +/* 042278 7F00D748 240A0003 */ li $t2, 3 +/* 04227C 7F00D74C 27A4010C */ addiu $a0, $sp, 0x10c +/* 042280 7F00D750 AD09000C */ sw $t1, 0xc($t0) +/* 042284 7F00D754 8FB90158 */ lw $t9, 0x158($sp) +/* 042288 7F00D758 AFAA0114 */ sw $t2, 0x114($sp) +/* 04228C 7F00D75C AFA00110 */ sw $zero, 0x110($sp) +/* 042290 7F00D760 8E650000 */ lw $a1, ($s3) +/* 042294 7F00D764 0FC1D1A1 */ jal subdraw +/* 042298 7F00D768 AFB90118 */ sw $t9, 0x118($sp) +/* 04229C 7F00D76C 8FB80118 */ lw $t8, 0x118($sp) +/* 0422A0 7F00D770 8E620000 */ lw $v0, ($s3) +/* 0422A4 7F00D774 00008025 */ move $s0, $zero +/* 0422A8 7F00D778 AFB80158 */ sw $t8, 0x158($sp) +/* 0422AC 7F00D77C 8C4B0008 */ lw $t3, 8($v0) +/* 0422B0 7F00D780 00008825 */ move $s1, $zero +/* 0422B4 7F00D784 27B20048 */ addiu $s2, $sp, 0x48 +/* 0422B8 7F00D788 856C000E */ lh $t4, 0xe($t3) +/* 0422BC 7F00D78C 59800014 */ blezl $t4, .L7F00D7E0 +/* 0422C0 7F00D790 8FBF003C */ lw $ra, 0x3c($sp) +/* 0422C4 7F00D794 8C4D000C */ lw $t5, 0xc($v0) +.L7F00D798: +/* 0422C8 7F00D798 02402825 */ move $a1, $s2 +/* 0422CC 7F00D79C 0FC16008 */ jal matrix_4x4_copy +/* 0422D0 7F00D7A0 01B12021 */ addu $a0, $t5, $s1 +/* 0422D4 7F00D7A4 8E6E0000 */ lw $t6, ($s3) +/* 0422D8 7F00D7A8 00104980 */ sll $t1, $s0, 6 +/* 0422DC 7F00D7AC 02402025 */ move $a0, $s2 +/* 0422E0 7F00D7B0 8DCF000C */ lw $t7, 0xc($t6) +/* 0422E4 7F00D7B4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0422E8 7F00D7B8 01E92821 */ addu $a1, $t7, $t1 +/* 0422EC 7F00D7BC 8E620000 */ lw $v0, ($s3) +/* 0422F0 7F00D7C0 26100001 */ addiu $s0, $s0, 1 +/* 0422F4 7F00D7C4 26310040 */ addiu $s1, $s1, 0x40 +/* 0422F8 7F00D7C8 8C480008 */ lw $t0, 8($v0) +/* 0422FC 7F00D7CC 850A000E */ lh $t2, 0xe($t0) +/* 042300 7F00D7D0 020A082A */ slt $at, $s0, $t2 +/* 042304 7F00D7D4 5420FFF0 */ bnezl $at, .L7F00D798 +/* 042308 7F00D7D8 8C4D000C */ lw $t5, 0xc($v0) +/* 04230C 7F00D7DC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F00D7E0: +/* 042310 7F00D7E0 8FA20158 */ lw $v0, 0x158($sp) +/* 042314 7F00D7E4 8FB0002C */ lw $s0, 0x2c($sp) +/* 042318 7F00D7E8 8FB10030 */ lw $s1, 0x30($sp) +/* 04231C 7F00D7EC 8FB20034 */ lw $s2, 0x34($sp) +/* 042320 7F00D7F0 8FB30038 */ lw $s3, 0x38($sp) +/* 042324 7F00D7F4 03E00008 */ jr $ra +/* 042328 7F00D7F8 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + + +#ifdef NONMATCHING +void set_menu_cursor_pos_to_setting(s32 arg0) { + // Node 0 + cursor_h_pos = 126.0f; + cursor_v_pos = (f32) ((arg0 << 5) + 0xe2); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel set_menu_cursor_pos_to_setting +/* 04232C 7F00D7FC 00047140 */ sll $t6, $a0, 5 +/* 042330 7F00D800 25CF00E2 */ addiu $t7, $t6, 0xe2 +/* 042334 7F00D804 448F3000 */ mtc1 $t7, $f6 +/* 042338 7F00D808 3C0142FC */ li $at, 0x42FC0000 # 126.000000 +/* 04233C 7F00D80C 44812000 */ mtc1 $at, $f4 +/* 042340 7F00D810 46803220 */ cvt.s.w $f8, $f6 +/* 042344 7F00D814 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 042348 7F00D818 E424A908 */ swc1 $f4, %lo(cursor_h_pos)($at) +/* 04234C 7F00D81C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 042350 7F00D820 03E00008 */ jr $ra +/* 042354 7F00D824 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu06_modesel(void) +{ + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 phi_a0; + s32 phi_s0; + s32 phi_a0_2; + s32 phi_s0_2; + s32 phi_s0_3; + s32 phi_s0_4; + + sp58 = 0x96; + sp54 = 0xdc; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, &a1_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + if (append_cheat_sp != 0) + { + phi_a0 = TEXT(LTITLE, 0x75); + } + else + { + phi_a0 = TEXT(LTITLE, 0x1d); + } + temp_ret = get_textptr_for_textID(phi_a0); + sp5C = temp_ret; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0xdc; + phi_s0 = temp_s0; + if (mission_difficulty_highlighted == 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x94, 0xda, sp50 + 0xaf, 0xea, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp58 = 0x96; + sp54 = 0xfc; + if (get_attached_controller_count() >= 2) + { + sp48 = 0xff; + } + else + { + sp48 = 0x70; + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &sp58, &sp54, &a2_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + phi_a0_2 = TEXT(LTITLE, 0x1e); + if (append_cheat_mp != 0) + { + phi_a0_2 = TEXT(LTITLE, 0x114); + } + temp_ret_2 = get_textptr_for_textID(phi_a0_2); + sp5C = temp_ret_2; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0xfc; + phi_s0_2 = temp_s0_3; + if (mission_difficulty_highlighted == 1) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_3, 0x94, 0xfa, sp50 + 0xaf, 0x10a, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + phi_s0_4 = temp_s0_4; + if (is_cheat_menu_available != 0) + { + sp58 = 0x96; + sp54 = 0x11c; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &sp58, &sp54, &a3_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x1f)); + sp5C = temp_ret_3; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0x11c; + phi_s0_3 = temp_s0_5; + if (mission_difficulty_highlighted == 2) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_s0_5, 0x94, 0x11a, sp50 + 0xaf, 0x12a, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + phi_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + load_draw_selected_icon_folder_select(add_tab3_previous(phi_s0_4)); +} +#else +const char a1_[] = "1.\n"; +const char a2_[] = "2.\n"; +const char a3_[] = "3.\n"; +GLOBAL_ASM( +.text +glabel constructor_menu06_modesel +/* 042358 7F00D828 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04235C 7F00D82C AFBF003C */ sw $ra, 0x3c($sp) +/* 042360 7F00D830 AFB00038 */ sw $s0, 0x38($sp) +/* 042364 7F00D834 00002825 */ move $a1, $zero +/* 042368 7F00D838 00003025 */ move $a2, $zero +/* 04236C 7F00D83C 0C0011B4 */ jal set_setfillcolor +/* 042370 7F00D840 00003825 */ move $a3, $zero +/* 042374 7F00D844 0C000FBE */ jal insert_generic_fillrect +/* 042378 7F00D848 00402025 */ move $a0, $v0 +/* 04237C 7F00D84C 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 042380 7F00D850 00402025 */ move $a0, $v0 +/* 042384 7F00D854 0FC2B366 */ jal microcode_constructor +/* 042388 7F00D858 00402025 */ move $a0, $v0 +/* 04238C 7F00D85C 240E0096 */ li $t6, 150 +/* 042390 7F00D860 240F00DC */ li $t7, 220 +/* 042394 7F00D864 00408025 */ move $s0, $v0 +/* 042398 7F00D868 AFAE0058 */ sw $t6, 0x58($sp) +/* 04239C 7F00D86C 0C001107 */ jal get_video2_settings_txtClipW +/* 0423A0 7F00D870 AFAF0054 */ sw $t7, 0x54($sp) +/* 0423A4 7F00D874 0C00110B */ jal get_video2_settings_txtClipH +/* 0423A8 7F00D878 A7A20044 */ sh $v0, 0x44($sp) +/* 0423AC 7F00D87C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 0423B0 7F00D880 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0423B4 7F00D884 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0423B8 7F00D888 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0423BC 7F00D88C 87A90044 */ lh $t1, 0x44($sp) +/* 0423C0 7F00D890 3C078005 */ lui $a3, %hi(a1_) +/* 0423C4 7F00D894 240800FF */ li $t0, 255 +/* 0423C8 7F00D898 AFA80018 */ sw $t0, 0x18($sp) +/* 0423CC 7F00D89C 24E7F494 */ addiu $a3, %lo(a1_) # addiu $a3, $a3, -0xb6c +/* 0423D0 7F00D8A0 02002025 */ move $a0, $s0 +/* 0423D4 7F00D8A4 27A50058 */ addiu $a1, $sp, 0x58 +/* 0423D8 7F00D8A8 27A60054 */ addiu $a2, $sp, 0x54 +/* 0423DC 7F00D8AC AFA20020 */ sw $v0, 0x20($sp) +/* 0423E0 7F00D8B0 AFA00024 */ sw $zero, 0x24($sp) +/* 0423E4 7F00D8B4 AFA00028 */ sw $zero, 0x28($sp) +/* 0423E8 7F00D8B8 AFB90014 */ sw $t9, 0x14($sp) +/* 0423EC 7F00D8BC AFB80010 */ sw $t8, 0x10($sp) +/* 0423F0 7F00D8C0 0FC025D8 */ jal write_text_at_abs_coord +/* 0423F4 7F00D8C4 AFA9001C */ sw $t1, 0x1c($sp) +/* 0423F8 7F00D8C8 3C0A8003 */ lui $t2, %hi(append_cheat_sp) +/* 0423FC 7F00D8CC 8D4AA900 */ lw $t2, %lo(append_cheat_sp)($t2) +/* 042400 7F00D8D0 00408025 */ move $s0, $v0 +/* 042404 7F00D8D4 51400004 */ beql $t2, $zero, .L7F00D8E8 +/* 042408 7F00D8D8 34049C1D */ li $a0, 39965 +/* 04240C 7F00D8DC 10000002 */ b .L7F00D8E8 +/* 042410 7F00D8E0 34049C75 */ li $a0, 40053 +/* 042414 7F00D8E4 34049C1D */ li $a0, 39965 +.L7F00D8E8: +/* 042418 7F00D8E8 0FC30776 */ jal get_textptr_for_textID +/* 04241C 7F00D8EC 00000000 */ nop +/* 042420 7F00D8F0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 042424 7F00D8F4 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 042428 7F00D8F8 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04242C 7F00D8FC AFA2005C */ sw $v0, 0x5c($sp) +/* 042430 7F00D900 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 042434 7F00D904 27A4004C */ addiu $a0, $sp, 0x4c +/* 042438 7F00D908 27A50050 */ addiu $a1, $sp, 0x50 +/* 04243C 7F00D90C 00403025 */ move $a2, $v0 +/* 042440 7F00D910 AFA00014 */ sw $zero, 0x14($sp) +/* 042444 7F00D914 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 042448 7F00D918 AFAB0010 */ sw $t3, 0x10($sp) +/* 04244C 7F00D91C 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) +/* 042450 7F00D920 8DCE9784 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042454 7F00D924 240C00AA */ li $t4, 170 +/* 042458 7F00D928 240D00DC */ li $t5, 220 +/* 04245C 7F00D92C AFAC0058 */ sw $t4, 0x58($sp) +/* 042460 7F00D930 15C0000C */ bnez $t6, .L7F00D964 +/* 042464 7F00D934 AFAD0054 */ sw $t5, 0x54($sp) +/* 042468 7F00D938 8FA70050 */ lw $a3, 0x50($sp) +/* 04246C 7F00D93C 240F00EA */ li $t7, 234 +/* 042470 7F00D940 24180032 */ li $t8, 50 +/* 042474 7F00D944 AFB80014 */ sw $t8, 0x14($sp) +/* 042478 7F00D948 AFAF0010 */ sw $t7, 0x10($sp) +/* 04247C 7F00D94C 02002025 */ move $a0, $s0 +/* 042480 7F00D950 24050094 */ li $a1, 148 +/* 042484 7F00D954 240600DA */ li $a2, 218 +/* 042488 7F00D958 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04248C 7F00D95C 24E700AF */ addiu $a3, $a3, 0xaf +/* 042490 7F00D960 00408025 */ move $s0, $v0 +.L7F00D964: +/* 042494 7F00D964 0C001107 */ jal get_video2_settings_txtClipW +/* 042498 7F00D968 00000000 */ nop +/* 04249C 7F00D96C 0C00110B */ jal get_video2_settings_txtClipH +/* 0424A0 7F00D970 A7A20044 */ sh $v0, 0x44($sp) +/* 0424A4 7F00D974 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 0424A8 7F00D978 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 0424AC 7F00D97C 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 0424B0 7F00D980 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 0424B4 7F00D984 87AA0044 */ lh $t2, 0x44($sp) +/* 0424B8 7F00D988 240900FF */ li $t1, 255 +/* 0424BC 7F00D98C AFA90018 */ sw $t1, 0x18($sp) +/* 0424C0 7F00D990 02002025 */ move $a0, $s0 +/* 0424C4 7F00D994 27A50058 */ addiu $a1, $sp, 0x58 +/* 0424C8 7F00D998 27A60054 */ addiu $a2, $sp, 0x54 +/* 0424CC 7F00D99C 8FA7005C */ lw $a3, 0x5c($sp) +/* 0424D0 7F00D9A0 AFA20020 */ sw $v0, 0x20($sp) +/* 0424D4 7F00D9A4 AFA00024 */ sw $zero, 0x24($sp) +/* 0424D8 7F00D9A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0424DC 7F00D9AC AFA80014 */ sw $t0, 0x14($sp) +/* 0424E0 7F00D9B0 AFB90010 */ sw $t9, 0x10($sp) +/* 0424E4 7F00D9B4 0FC025D8 */ jal write_text_at_abs_coord +/* 0424E8 7F00D9B8 AFAA001C */ sw $t2, 0x1c($sp) +/* 0424EC 7F00D9BC 240B0096 */ li $t3, 150 +/* 0424F0 7F00D9C0 240C00FC */ li $t4, 252 +/* 0424F4 7F00D9C4 00408025 */ move $s0, $v0 +/* 0424F8 7F00D9C8 AFAB0058 */ sw $t3, 0x58($sp) +/* 0424FC 7F00D9CC 0C002E7E */ jal get_attached_controller_count +/* 042500 7F00D9D0 AFAC0054 */ sw $t4, 0x54($sp) +/* 042504 7F00D9D4 28410002 */ slti $at, $v0, 2 +/* 042508 7F00D9D8 14200003 */ bnez $at, .L7F00D9E8 +/* 04250C 7F00D9DC 240D00FF */ li $t5, 255 +/* 042510 7F00D9E0 10000003 */ b .L7F00D9F0 +/* 042514 7F00D9E4 AFAD0048 */ sw $t5, 0x48($sp) +.L7F00D9E8: +/* 042518 7F00D9E8 240E0070 */ li $t6, 112 +/* 04251C 7F00D9EC AFAE0048 */ sw $t6, 0x48($sp) +.L7F00D9F0: +/* 042520 7F00D9F0 0C001107 */ jal get_video2_settings_txtClipW +/* 042524 7F00D9F4 00000000 */ nop +/* 042528 7F00D9F8 0C00110B */ jal get_video2_settings_txtClipH +/* 04252C 7F00D9FC A7A20044 */ sh $v0, 0x44($sp) +/* 042530 7F00DA00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 042534 7F00DA04 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 042538 7F00DA08 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04253C 7F00DA0C 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 042540 7F00DA10 8FB90048 */ lw $t9, 0x48($sp) +/* 042544 7F00DA14 87A80044 */ lh $t0, 0x44($sp) +/* 042548 7F00DA18 3C078005 */ lui $a3, %hi(a2_) +/* 04254C 7F00DA1C 24E7F498 */ addiu $a3, %lo(a2_) # addiu $a3, $a3, -0xb68 +/* 042550 7F00DA20 02002025 */ move $a0, $s0 +/* 042554 7F00DA24 27A50058 */ addiu $a1, $sp, 0x58 +/* 042558 7F00DA28 27A60054 */ addiu $a2, $sp, 0x54 +/* 04255C 7F00DA2C AFA20020 */ sw $v0, 0x20($sp) +/* 042560 7F00DA30 AFA00024 */ sw $zero, 0x24($sp) +/* 042564 7F00DA34 AFA00028 */ sw $zero, 0x28($sp) +/* 042568 7F00DA38 AFB80014 */ sw $t8, 0x14($sp) +/* 04256C 7F00DA3C AFAF0010 */ sw $t7, 0x10($sp) +/* 042570 7F00DA40 AFB90018 */ sw $t9, 0x18($sp) +/* 042574 7F00DA44 0FC025D8 */ jal write_text_at_abs_coord +/* 042578 7F00DA48 AFA8001C */ sw $t0, 0x1c($sp) +/* 04257C 7F00DA4C 3C098003 */ lui $t1, %hi(append_cheat_mp) +/* 042580 7F00DA50 8D29A904 */ lw $t1, %lo(append_cheat_mp)($t1) +/* 042584 7F00DA54 00408025 */ move $s0, $v0 +/* 042588 7F00DA58 34049C1E */ li $a0, 39966 +/* 04258C 7F00DA5C 11200003 */ beqz $t1, .L7F00DA6C +/* 042590 7F00DA60 00000000 */ nop +/* 042594 7F00DA64 10000001 */ b .L7F00DA6C +/* 042598 7F00DA68 34049D14 */ li $a0, 40212 +.L7F00DA6C: +/* 04259C 7F00DA6C 0FC30776 */ jal get_textptr_for_textID +/* 0425A0 7F00DA70 00000000 */ nop +/* 0425A4 7F00DA74 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 0425A8 7F00DA78 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 0425AC 7F00DA7C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0425B0 7F00DA80 AFA2005C */ sw $v0, 0x5c($sp) +/* 0425B4 7F00DA84 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0425B8 7F00DA88 27A4004C */ addiu $a0, $sp, 0x4c +/* 0425BC 7F00DA8C 27A50050 */ addiu $a1, $sp, 0x50 +/* 0425C0 7F00DA90 00403025 */ move $a2, $v0 +/* 0425C4 7F00DA94 AFA00014 */ sw $zero, 0x14($sp) +/* 0425C8 7F00DA98 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0425CC 7F00DA9C AFAA0010 */ sw $t2, 0x10($sp) +/* 0425D0 7F00DAA0 3C0D8007 */ lui $t5, %hi(mission_difficulty_highlighted) +/* 0425D4 7F00DAA4 8DAD9784 */ lw $t5, %lo(mission_difficulty_highlighted)($t5) +/* 0425D8 7F00DAA8 240B00AA */ li $t3, 170 +/* 0425DC 7F00DAAC 240C00FC */ li $t4, 252 +/* 0425E0 7F00DAB0 24010001 */ li $at, 1 +/* 0425E4 7F00DAB4 AFAB0058 */ sw $t3, 0x58($sp) +/* 0425E8 7F00DAB8 15A1000C */ bne $t5, $at, .L7F00DAEC +/* 0425EC 7F00DABC AFAC0054 */ sw $t4, 0x54($sp) +/* 0425F0 7F00DAC0 8FA70050 */ lw $a3, 0x50($sp) +/* 0425F4 7F00DAC4 240E010A */ li $t6, 266 +/* 0425F8 7F00DAC8 240F0032 */ li $t7, 50 +/* 0425FC 7F00DACC AFAF0014 */ sw $t7, 0x14($sp) +/* 042600 7F00DAD0 AFAE0010 */ sw $t6, 0x10($sp) +/* 042604 7F00DAD4 02002025 */ move $a0, $s0 +/* 042608 7F00DAD8 24050094 */ li $a1, 148 +/* 04260C 7F00DADC 240600FA */ li $a2, 250 +/* 042610 7F00DAE0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 042614 7F00DAE4 24E700AF */ addiu $a3, $a3, 0xaf +/* 042618 7F00DAE8 00408025 */ move $s0, $v0 +.L7F00DAEC: +/* 04261C 7F00DAEC 0C001107 */ jal get_video2_settings_txtClipW +/* 042620 7F00DAF0 00000000 */ nop +/* 042624 7F00DAF4 0C00110B */ jal get_video2_settings_txtClipH +/* 042628 7F00DAF8 A7A20044 */ sh $v0, 0x44($sp) +/* 04262C 7F00DAFC 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 042630 7F00DB00 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 042634 7F00DB04 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 042638 7F00DB08 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04263C 7F00DB0C 8FA80048 */ lw $t0, 0x48($sp) +/* 042640 7F00DB10 87A90044 */ lh $t1, 0x44($sp) +/* 042644 7F00DB14 02002025 */ move $a0, $s0 +/* 042648 7F00DB18 27A50058 */ addiu $a1, $sp, 0x58 +/* 04264C 7F00DB1C 27A60054 */ addiu $a2, $sp, 0x54 +/* 042650 7F00DB20 8FA7005C */ lw $a3, 0x5c($sp) +/* 042654 7F00DB24 AFA20020 */ sw $v0, 0x20($sp) +/* 042658 7F00DB28 AFA00024 */ sw $zero, 0x24($sp) +/* 04265C 7F00DB2C AFA00028 */ sw $zero, 0x28($sp) +/* 042660 7F00DB30 AFB90014 */ sw $t9, 0x14($sp) +/* 042664 7F00DB34 AFB80010 */ sw $t8, 0x10($sp) +/* 042668 7F00DB38 AFA80018 */ sw $t0, 0x18($sp) +/* 04266C 7F00DB3C 0FC025D8 */ jal write_text_at_abs_coord +/* 042670 7F00DB40 AFA9001C */ sw $t1, 0x1c($sp) +/* 042674 7F00DB44 3C0A8003 */ lui $t2, %hi(is_cheat_menu_available) +/* 042678 7F00DB48 8D4AA94C */ lw $t2, %lo(is_cheat_menu_available)($t2) +/* 04267C 7F00DB4C 00408025 */ move $s0, $v0 +/* 042680 7F00DB50 240B0096 */ li $t3, 150 +/* 042684 7F00DB54 11400051 */ beqz $t2, .L7F00DC9C +/* 042688 7F00DB58 240C011C */ li $t4, 284 +/* 04268C 7F00DB5C AFAB0058 */ sw $t3, 0x58($sp) +/* 042690 7F00DB60 0C001107 */ jal get_video2_settings_txtClipW +/* 042694 7F00DB64 AFAC0054 */ sw $t4, 0x54($sp) +/* 042698 7F00DB68 0C00110B */ jal get_video2_settings_txtClipH +/* 04269C 7F00DB6C A7A20044 */ sh $v0, 0x44($sp) +/* 0426A0 7F00DB70 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0426A4 7F00DB74 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0426A8 7F00DB78 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0426AC 7F00DB7C 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 0426B0 7F00DB80 87B80044 */ lh $t8, 0x44($sp) +/* 0426B4 7F00DB84 3C078005 */ lui $a3, %hi(a3_) +/* 0426B8 7F00DB88 240F00FF */ li $t7, 255 +/* 0426BC 7F00DB8C AFAF0018 */ sw $t7, 0x18($sp) +/* 0426C0 7F00DB90 24E7F49C */ addiu $a3, %lo(a3_) # addiu $a3, $a3, -0xb64 +/* 0426C4 7F00DB94 02002025 */ move $a0, $s0 +/* 0426C8 7F00DB98 27A50058 */ addiu $a1, $sp, 0x58 +/* 0426CC 7F00DB9C 27A60054 */ addiu $a2, $sp, 0x54 +/* 0426D0 7F00DBA0 AFA20020 */ sw $v0, 0x20($sp) +/* 0426D4 7F00DBA4 AFA00024 */ sw $zero, 0x24($sp) +/* 0426D8 7F00DBA8 AFA00028 */ sw $zero, 0x28($sp) +/* 0426DC 7F00DBAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0426E0 7F00DBB0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0426E4 7F00DBB4 0FC025D8 */ jal write_text_at_abs_coord +/* 0426E8 7F00DBB8 AFB8001C */ sw $t8, 0x1c($sp) +/* 0426EC 7F00DBBC 00408025 */ move $s0, $v0 +/* 0426F0 7F00DBC0 0FC30776 */ jal get_textptr_for_textID +/* 0426F4 7F00DBC4 34049C1F */ li $a0, 39967 +/* 0426F8 7F00DBC8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0426FC 7F00DBCC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 042700 7F00DBD0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 042704 7F00DBD4 AFA2005C */ sw $v0, 0x5c($sp) +/* 042708 7F00DBD8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04270C 7F00DBDC 27A4004C */ addiu $a0, $sp, 0x4c +/* 042710 7F00DBE0 27A50050 */ addiu $a1, $sp, 0x50 +/* 042714 7F00DBE4 00403025 */ move $a2, $v0 +/* 042718 7F00DBE8 AFA00014 */ sw $zero, 0x14($sp) +/* 04271C 7F00DBEC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 042720 7F00DBF0 AFB90010 */ sw $t9, 0x10($sp) +/* 042724 7F00DBF4 3C0A8007 */ lui $t2, %hi(mission_difficulty_highlighted) +/* 042728 7F00DBF8 8D4A9784 */ lw $t2, %lo(mission_difficulty_highlighted)($t2) +/* 04272C 7F00DBFC 240800AA */ li $t0, 170 +/* 042730 7F00DC00 2409011C */ li $t1, 284 +/* 042734 7F00DC04 24010002 */ li $at, 2 +/* 042738 7F00DC08 AFA80058 */ sw $t0, 0x58($sp) +/* 04273C 7F00DC0C 1541000C */ bne $t2, $at, .L7F00DC40 +/* 042740 7F00DC10 AFA90054 */ sw $t1, 0x54($sp) +/* 042744 7F00DC14 8FA70050 */ lw $a3, 0x50($sp) +/* 042748 7F00DC18 240B012A */ li $t3, 298 +/* 04274C 7F00DC1C 240C0032 */ li $t4, 50 +/* 042750 7F00DC20 AFAC0014 */ sw $t4, 0x14($sp) +/* 042754 7F00DC24 AFAB0010 */ sw $t3, 0x10($sp) +/* 042758 7F00DC28 02002025 */ move $a0, $s0 +/* 04275C 7F00DC2C 24050094 */ li $a1, 148 +/* 042760 7F00DC30 2406011A */ li $a2, 282 +/* 042764 7F00DC34 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 042768 7F00DC38 24E700AF */ addiu $a3, $a3, 0xaf +/* 04276C 7F00DC3C 00408025 */ move $s0, $v0 +.L7F00DC40: +/* 042770 7F00DC40 0C001107 */ jal get_video2_settings_txtClipW +/* 042774 7F00DC44 00000000 */ nop +/* 042778 7F00DC48 0C00110B */ jal get_video2_settings_txtClipH +/* 04277C 7F00DC4C A7A20044 */ sh $v0, 0x44($sp) +/* 042780 7F00DC50 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 042784 7F00DC54 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 042788 7F00DC58 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04278C 7F00DC5C 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 042790 7F00DC60 87B80044 */ lh $t8, 0x44($sp) +/* 042794 7F00DC64 240F00FF */ li $t7, 255 +/* 042798 7F00DC68 AFAF0018 */ sw $t7, 0x18($sp) +/* 04279C 7F00DC6C 02002025 */ move $a0, $s0 +/* 0427A0 7F00DC70 27A50058 */ addiu $a1, $sp, 0x58 +/* 0427A4 7F00DC74 27A60054 */ addiu $a2, $sp, 0x54 +/* 0427A8 7F00DC78 8FA7005C */ lw $a3, 0x5c($sp) +/* 0427AC 7F00DC7C AFA20020 */ sw $v0, 0x20($sp) +/* 0427B0 7F00DC80 AFA00024 */ sw $zero, 0x24($sp) +/* 0427B4 7F00DC84 AFA00028 */ sw $zero, 0x28($sp) +/* 0427B8 7F00DC88 AFAE0014 */ sw $t6, 0x14($sp) +/* 0427BC 7F00DC8C AFAD0010 */ sw $t5, 0x10($sp) +/* 0427C0 7F00DC90 0FC025D8 */ jal write_text_at_abs_coord +/* 0427C4 7F00DC94 AFB8001C */ sw $t8, 0x1c($sp) +/* 0427C8 7F00DC98 00408025 */ move $s0, $v0 +.L7F00DC9C: +/* 0427CC 7F00DC9C 0FC0288E */ jal add_tab3_previous +/* 0427D0 7F00DCA0 02002025 */ move $a0, $s0 +/* 0427D4 7F00DCA4 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 0427D8 7F00DCA8 00402025 */ move $a0, $v0 +/* 0427DC 7F00DCAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0427E0 7F00DCB0 8FB00038 */ lw $s0, 0x38($sp) +/* 0427E4 7F00DCB4 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0427E8 7F00DCB8 03E00008 */ jr $ra +/* 0427EC 7F00DCBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 pull_and_display_text_for_folder_a0(s32 arg0) +{ + void *phi_v0; + s32 phi_v1; + + phi_v0 = &mission_folder_setup_entries; + phi_v1 = 0; + if (D_8002ABE8 != 0) + { +loop_1: + if (arg0 == phi_v0->unk14) + { + return phi_v1; + } + phi_v0 = phi_v0 + 0x1c; + phi_v1 = phi_v1 + 1; + if (phi_v0->unk20 != 0) + { + goto loop_1; + } + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel pull_and_display_text_for_folder_a0 +/* 0427F0 7F00DCC0 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+4) +/* 0427F4 7F00DCC4 95CEABE8 */ lhu $t6, %lo(mission_folder_setup_entries+4)($t6) +/* 0427F8 7F00DCC8 3C028003 */ lui $v0, %hi(mission_folder_setup_entries) +/* 0427FC 7F00DCCC 2442ABE4 */ addiu $v0, %lo(mission_folder_setup_entries) # addiu $v0, $v0, -0x541c +/* 042800 7F00DCD0 11C0000B */ beqz $t6, .L7F00DD00 +/* 042804 7F00DCD4 00001825 */ move $v1, $zero +/* 042808 7F00DCD8 8C4F0014 */ lw $t7, 0x14($v0) +.L7F00DCDC: +/* 04280C 7F00DCDC 548F0004 */ bnel $a0, $t7, .L7F00DCF0 +/* 042810 7F00DCE0 94580020 */ lhu $t8, 0x20($v0) +/* 042814 7F00DCE4 03E00008 */ jr $ra +/* 042818 7F00DCE8 00601025 */ move $v0, $v1 +/* 04281C 7F00DCEC 94580020 */ lhu $t8, 0x20($v0) +.L7F00DCF0: +/* 042820 7F00DCF0 24630001 */ addiu $v1, $v1, 1 +/* 042824 7F00DCF4 2442001C */ addiu $v0, $v0, 0x1c +/* 042828 7F00DCF8 5700FFF8 */ bnezl $t8, .L7F00DCDC +/* 04282C 7F00DCFC 8C4F0014 */ lw $t7, 0x14($v0) +.L7F00DD00: +/* 042830 7F00DD00 2402FFFF */ li $v0, -1 +/* 042834 7F00DD04 03E00008 */ jr $ra +/* 042838 7F00DD08 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +u32 check_if_stage_completed_on_difficulty(int stage, DIFFICULTY difficulty) { + u32 completed; + + if (mission_folder_setup_entries[stage].mission_num < 0) { + completed = FALSE; + } + else { + completed = isStageUnlockedAtDifficulty(selected_folder_num,mission_folder_setup_entries[stage].mission_num,difficulty); + } + return completed; +} +#else +GLOBAL_ASM( +.text +glabel check_if_stage_completed_on_difficulty +/* 04283C 7F00DD0C 000470C0 */ sll $t6, $a0, 3 +/* 042840 7F00DD10 01C47023 */ subu $t6, $t6, $a0 +/* 042844 7F00DD14 000E7080 */ sll $t6, $t6, 2 +/* 042848 7F00DD18 3C078003 */ lui $a3, %hi(mission_folder_setup_entries+0x14) +/* 04284C 7F00DD1C 00EE3821 */ addu $a3, $a3, $t6 +/* 042850 7F00DD20 8CE7ABF8 */ lw $a3, %lo(mission_folder_setup_entries+0x14)($a3) +/* 042854 7F00DD24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 042858 7F00DD28 AFBF0014 */ sw $ra, 0x14($sp) +/* 04285C 7F00DD2C 04E00007 */ bltz $a3, .L7F00DD4C +/* 042860 7F00DD30 00A03025 */ move $a2, $a1 +/* 042864 7F00DD34 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 042868 7F00DD38 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 04286C 7F00DD3C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 042870 7F00DD40 00E02825 */ move $a1, $a3 +/* 042874 7F00DD44 10000003 */ b .L7F00DD54 +/* 042878 7F00DD48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00DD4C: +/* 04287C 7F00DD4C 00001025 */ move $v0, $zero +/* 042880 7F00DD50 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00DD54: +/* 042884 7F00DD54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 042888 7F00DD58 03E00008 */ jr $ra +/* 04288C 7F00DD5C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_highest_unlocked_difficulty_for_level(s32 arg0) +{ + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s32 phi_s1; + s32 phi_s0; + + temp_ret = pull_and_display_text_for_folder_a0(); + if ((0x80030000 + (((temp_ret * 8) - temp_ret) * 4))->unk-5414 >= 0) + { + if ((check_for_007_mode_unlocked(selected_folder_num) != 0) || (get_debug_007_unlock_flag() != 0)) + { + phi_s1 = 3; + } + else + { + + } + if (phi_s1 >= 0) + { + phi_s0 = phi_s1; +loop_6: + temp_ret_2 = isStageUnlockedAtDifficulty(selected_folder_num, arg0, phi_s0); + if (append_cheat_sp == 0) + { + if (temp_ret_2 != 0) + { + return phi_s0; + } + } + else + { + if (temp_ret_2 == 3) + { + return phi_s0; + } + } + temp_s0 = phi_s0 + -1; + phi_s0 = temp_s0; + if (temp_s0 >= 0) + { + goto loop_6; + } + } + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel get_highest_unlocked_difficulty_for_level +/* 042890 7F00DD60 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 042894 7F00DD64 AFBF002C */ sw $ra, 0x2c($sp) +/* 042898 7F00DD68 AFB30024 */ sw $s3, 0x24($sp) +/* 04289C 7F00DD6C 00809825 */ move $s3, $a0 +/* 0428A0 7F00DD70 AFB40028 */ sw $s4, 0x28($sp) +/* 0428A4 7F00DD74 AFB20020 */ sw $s2, 0x20($sp) +/* 0428A8 7F00DD78 AFB1001C */ sw $s1, 0x1c($sp) +/* 0428AC 7F00DD7C 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 0428B0 7F00DD80 AFB00018 */ sw $s0, 0x18($sp) +/* 0428B4 7F00DD84 000270C0 */ sll $t6, $v0, 3 +/* 0428B8 7F00DD88 01C27023 */ subu $t6, $t6, $v0 +/* 0428BC 7F00DD8C 000E7080 */ sll $t6, $t6, 2 +/* 0428C0 7F00DD90 3C0F8003 */ lui $t7, %hi(mission_folder_setup_entries+8) +/* 0428C4 7F00DD94 01EE7821 */ addu $t7, $t7, $t6 +/* 0428C8 7F00DD98 8DEFABEC */ lw $t7, %lo(mission_folder_setup_entries+8)($t7) +/* 0428CC 7F00DD9C 3C148003 */ lui $s4, %hi(selected_folder_num) +/* 0428D0 7F00DDA0 2694A8E8 */ addiu $s4, %lo(selected_folder_num) # addiu $s4, $s4, -0x5718 +/* 0428D4 7F00DDA4 05E00021 */ bltz $t7, .L7F00DE2C +/* 0428D8 7F00DDA8 24110002 */ li $s1, 2 +/* 0428DC 7F00DDAC 0FC07D28 */ jal check_for_007_mode_unlocked +/* 0428E0 7F00DDB0 8E840000 */ lw $a0, ($s4) +/* 0428E4 7F00DDB4 54400006 */ bnezl $v0, .L7F00DDD0 +/* 0428E8 7F00DDB8 24110003 */ li $s1, 3 +/* 0428EC 7F00DDBC 0FC243FD */ jal get_debug_007_unlock_flag +/* 0428F0 7F00DDC0 00000000 */ nop +/* 0428F4 7F00DDC4 10400002 */ beqz $v0, .L7F00DDD0 +/* 0428F8 7F00DDC8 00000000 */ nop +/* 0428FC 7F00DDCC 24110003 */ li $s1, 3 +.L7F00DDD0: +/* 042900 7F00DDD0 06200016 */ bltz $s1, .L7F00DE2C +/* 042904 7F00DDD4 02208025 */ move $s0, $s1 +/* 042908 7F00DDD8 3C118003 */ lui $s1, %hi(append_cheat_sp) +/* 04290C 7F00DDDC 2631A900 */ addiu $s1, %lo(append_cheat_sp) # addiu $s1, $s1, -0x5700 +/* 042910 7F00DDE0 24120003 */ li $s2, 3 +/* 042914 7F00DDE4 8E840000 */ lw $a0, ($s4) +.L7F00DDE8: +/* 042918 7F00DDE8 02602825 */ move $a1, $s3 +/* 04291C 7F00DDEC 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 042920 7F00DDF0 02003025 */ move $a2, $s0 +/* 042924 7F00DDF4 8E380000 */ lw $t8, ($s1) +/* 042928 7F00DDF8 17000005 */ bnez $t8, .L7F00DE10 +/* 04292C 7F00DDFC 00000000 */ nop +/* 042930 7F00DE00 50400008 */ beql $v0, $zero, .L7F00DE24 +/* 042934 7F00DE04 2610FFFF */ addiu $s0, $s0, -1 +/* 042938 7F00DE08 10000009 */ b .L7F00DE30 +/* 04293C 7F00DE0C 02001025 */ move $v0, $s0 +.L7F00DE10: +/* 042940 7F00DE10 54520004 */ bnel $v0, $s2, .L7F00DE24 +/* 042944 7F00DE14 2610FFFF */ addiu $s0, $s0, -1 +/* 042948 7F00DE18 10000005 */ b .L7F00DE30 +/* 04294C 7F00DE1C 02001025 */ move $v0, $s0 +/* 042950 7F00DE20 2610FFFF */ addiu $s0, $s0, -1 +.L7F00DE24: +/* 042954 7F00DE24 0603FFF0 */ bgezl $s0, .L7F00DDE8 +/* 042958 7F00DE28 8E840000 */ lw $a0, ($s4) +.L7F00DE2C: +/* 04295C 7F00DE2C 2402FFFF */ li $v0, -1 +.L7F00DE30: +/* 042960 7F00DE30 8FBF002C */ lw $ra, 0x2c($sp) +/* 042964 7F00DE34 8FB00018 */ lw $s0, 0x18($sp) +/* 042968 7F00DE38 8FB1001C */ lw $s1, 0x1c($sp) +/* 04296C 7F00DE3C 8FB20020 */ lw $s2, 0x20($sp) +/* 042970 7F00DE40 8FB30024 */ lw $s3, 0x24($sp) +/* 042974 7F00DE44 8FB40028 */ lw $s4, 0x28($sp) +/* 042978 7F00DE48 03E00008 */ jr $ra +/* 04297C 7F00DE4C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +void init_menu07_missionselect(void) +{ + selected_stage = -1; + briefingpage = -1; + tab_2_selected = 0; + tab_3_selected = 0; + if (maybe_is_in_menu != 0) + { + musicTrack1Play(0x17); + maybe_is_in_menu = 0; + } + load_walletbond(); +} + +void update_menu07_missionsel(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void interface_menu07_missionsel(void) +{ + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s2; + s32 temp_s2_2; + s32 temp_s2_3; + s32 temp_s4; + s32 temp_s4_2; + s32 temp_s4_3; + s32 temp_s5; + void *temp_t1; + void *temp_t3; + void *temp_v0; + void *temp_v0_2; + s32 phi_s4; + s32 phi_s2; + s32 phi_s2_2; + s32 phi_s0; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_s2_3; + s32 phi_s4_2; + s32 phi_s0_2; + s32 phi_s4_3; + s32 phi_s4_4; + s32 phi_s0_3; + s32 phi_s4_5; + s32 phi_s2_4; + s32 phi_s4_6; + s32 phi_s0_4; + s32 phi_s2_5; + s32 phi_a0; + s32 phi_s5; + + setvideo_far(0x42700000); + video_related_21(D_80051A44); + set_page_height(0x42c80000, D_80051A48); + set_video2_settings_offset_24(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; + mission_difficulty_highlighted = -1; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + phi_s4 = 0; +loop_3: + phi_s4_2 = phi_s4; + if (phi_s4 < 4) + { + temp_v0 = &cursor_xpos_table_mission_select + (phi_s4 * 4); + phi_s4_2 = phi_s4; + if (!(cursor_h_pos < ((f32) (temp_v0->unk4 + temp_v0->unk0) * 0.5f))) + { + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s4_2 = temp_s4; + if (temp_s4 != 5) + { + goto loop_3; + } + } + } + phi_s2 = 0; +loop_7: + phi_s2_2 = phi_s2; + if (phi_s2 < 3) + { + temp_v0_2 = &cursor_ypos_table_mission_select + (phi_s2 * 4); + phi_s2_2 = phi_s2; + if (!(cursor_v_pos < ((f32) (temp_v0_2->unk4 + temp_v0_2->unk0) * 0.5f))) + { + temp_s2 = phi_s2 + 1; + phi_s2 = temp_s2; + phi_s2_2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_7; + } + } + } + phi_s2_4 = phi_s2_2; + if (phi_s2_2 > 0) + { + phi_s2_3 = phi_s2_2; + phi_s5 = (phi_s2_2 * 4) + phi_s2_2; +loop_12: + phi_s0 = phi_s5; + phi_s1 = 0; +loop_13: + phi_s1_2 = phi_s1; + if (get_highest_unlocked_difficulty_for_level(phi_s0) < 0) + { + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 1; + phi_s1 = temp_s1; + phi_s1_2 = temp_s1; + if (temp_s1 != 5) + { + goto loop_13; + } + } + phi_s2_4 = phi_s2_3; + if (phi_s1_2 >= 5) + { + temp_s2_2 = phi_s2_3 + -1; + phi_s2_3 = temp_s2_2; + phi_s2_4 = temp_s2_2; + phi_s5 = phi_s5 + -5; + if (temp_s2_2 > 0) + { + goto loop_12; + } + } + } + temp_s5 = (phi_s2_4 * 4) + phi_s2_4; + phi_s4_4 = phi_s4_2; + if (phi_s4_2 >= 0) + { + phi_s0_2 = temp_s5 + phi_s4_2; + phi_s4_3 = phi_s4_2; +loop_19: + phi_s4_4 = phi_s4_3; + if (get_highest_unlocked_difficulty_for_level(phi_s0_2) < 0) + { + temp_s4_2 = phi_s4_3 + -1; + phi_s0_2 = phi_s0_2 + -1; + phi_s4_3 = temp_s4_2; + phi_s4_4 = temp_s4_2; + if (temp_s4_2 >= 0) + { + goto loop_19; + } + } + } + phi_s4_6 = phi_s4_4; + if (phi_s4_4 < 0) + { + phi_s0_3 = temp_s5; + phi_s4_5 = 0; +loop_23: + phi_s4_6 = phi_s4_5; + if (get_highest_unlocked_difficulty_for_level(phi_s0_3) < 0) + { + temp_s4_3 = phi_s4_5 + 1; + phi_s0_3 = phi_s0_3 + 1; + phi_s4_5 = temp_s4_3; + phi_s4_6 = temp_s4_3; + if (temp_s4_3 != 5) + { + goto loop_23; + } + } + } + mission_difficulty_highlighted = (s32) (temp_s5 + phi_s4_6); + } + if (ptr_folder_object_instance->unk8->unk8->unk54 != 0) + { + temp_s1_2 = extract_id_from_object_structure_microcode(ptr_folder_object_instance, ptr_folder_object_instance->unk8->unk8->unk54); + *temp_s1_2 = sub_GAME_7F0BD6C4(ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC); + if (ptr_folder_object_instance->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_t1 = *temp_s1_2 + phi_s0_4; + temp_t1->unk0 = (s32) temp_t3->unk0; + temp_t1->unk4 = (s32) temp_t3->unk4; + temp_t1->unk8 = (s32) temp_t3->unk8; + temp_t1->unkC = (s32) temp_t3->unkC; + phi_a0 = (s32) phi_s2_5 >> 2; + if (phi_s2_5 < 0) + { + phi_a0 = (s32) (phi_s2_5 + 3) >> 2; + } + if (get_highest_unlocked_difficulty_for_level(phi_a0) >= 0) + { + if (sp30 == mission_difficulty_highlighted) + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xf5; + } + else + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xff; + } + } + else + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xff; + } + 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) + { + goto loop_29; + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if ((void *)0x80070000->unk-687C >= 0) + { + briefingpage = pull_and_display_text_for_folder_a0((void *)0x80070000->unk-687C); + selected_stage = (s32) (0x80030000 + (briefingpage * 0x1c))->unk-5414; + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + menu_control_stick_tracking(); + if (tab_2_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) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(0); + } +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051A44 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A48 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu07_missionsel +/* 0429E8 7F00DEB8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0429EC 7F00DEBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0429F0 7F00DEC0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0429F4 7F00DEC4 44816000 */ mtc1 $at, $f12 +/* 0429F8 7F00DEC8 AFB50028 */ sw $s5, 0x28($sp) +/* 0429FC 7F00DECC AFB40024 */ sw $s4, 0x24($sp) +/* 042A00 7F00DED0 AFB30020 */ sw $s3, 0x20($sp) +/* 042A04 7F00DED4 AFB2001C */ sw $s2, 0x1c($sp) +/* 042A08 7F00DED8 AFB10018 */ sw $s1, 0x18($sp) +/* 042A0C 7F00DEDC 0C001151 */ jal setvideo_far +/* 042A10 7F00DEE0 AFB00014 */ sw $s0, 0x14($sp) +/* 042A14 7F00DEE4 3C018005 */ lui $at, %hi(D_80051A44) +/* 042A18 7F00DEE8 0C001164 */ jal video_related_21 +/* 042A1C 7F00DEEC C42C1A44 */ lwc1 $f12, %lo(D_80051A44)($at) +/* 042A20 7F00DEF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 042A24 7F00DEF4 44816000 */ mtc1 $at, $f12 +/* 042A28 7F00DEF8 3C018005 */ lui $at, %hi(D_80051A48) +/* 042A2C 7F00DEFC 0C001194 */ jal set_page_height +/* 042A30 7F00DF00 C42E1A48 */ lwc1 $f14, %lo(D_80051A48)($at) +/* 042A34 7F00DF04 0C00114D */ jal set_video2_settings_offset_24 +/* 042A38 7F00DF08 00002025 */ move $a0, $zero +/* 042A3C 7F00DF0C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A40 7F00DF10 0FC02DC9 */ jal disable_all_switches +/* 042A44 7F00DF14 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A48 7F00DF18 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A4C 7F00DF1C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A50 7F00DF20 00002825 */ move $a1, $zero +/* 042A54 7F00DF24 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A58 7F00DF28 24060001 */ li $a2, 1 +/* 042A5C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A60 7F00DF30 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A64 7F00DF34 24050013 */ li $a1, 19 +/* 042A68 7F00DF38 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A6C 7F00DF3C 24060001 */ li $a2, 1 +/* 042A70 7F00DF40 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A74 7F00DF44 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A78 7F00DF48 24050014 */ li $a1, 20 +/* 042A7C 7F00DF4C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A80 7F00DF50 24060001 */ li $a2, 1 +/* 042A84 7F00DF54 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042A88 7F00DF58 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042A8C 7F00DF5C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042A90 7F00DF60 240EFFFF */ li $t6, -1 +/* 042A94 7F00DF64 0FC028E7 */ jal isontab3 +/* 042A98 7F00DF68 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +/* 042A9C 7F00DF6C 10400005 */ beqz $v0, .L7F00DF84 +/* 042AA0 7F00DF70 0000A025 */ move $s4, $zero +/* 042AA4 7F00DF74 240F0001 */ li $t7, 1 +/* 042AA8 7F00DF78 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042AAC 7F00DF7C 1000005E */ b .L7F00E0F8 +/* 042AB0 7F00DF80 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F00DF84: +/* 042AB4 7F00DF84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 042AB8 7F00DF88 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) +/* 042ABC 7F00DF8C 3C038003 */ lui $v1, %hi(cursor_h_pos) +/* 042AC0 7F00DF90 44810000 */ mtc1 $at, $f0 +/* 042AC4 7F00DF94 2463A908 */ addiu $v1, %lo(cursor_h_pos) # addiu $v1, $v1, -0x56f8 +/* 042AC8 7F00DF98 2484AFD0 */ addiu $a0, %lo(cursor_xpos_table_mission_select) # addiu $a0, $a0, -0x5030 +/* 042ACC 7F00DF9C 24130005 */ li $s3, 5 +/* 042AD0 7F00DFA0 2A810004 */ slti $at, $s4, 4 +.L7F00DFA4: +/* 042AD4 7F00DFA4 10200011 */ beqz $at, .L7F00DFEC +/* 042AD8 7F00DFA8 0014C080 */ sll $t8, $s4, 2 +/* 042ADC 7F00DFAC 00981021 */ addu $v0, $a0, $t8 +/* 042AE0 7F00DFB0 8C590004 */ lw $t9, 4($v0) +/* 042AE4 7F00DFB4 8C480000 */ lw $t0, ($v0) +/* 042AE8 7F00DFB8 C4640000 */ lwc1 $f4, ($v1) +/* 042AEC 7F00DFBC 03284821 */ addu $t1, $t9, $t0 +/* 042AF0 7F00DFC0 44893000 */ mtc1 $t1, $f6 +/* 042AF4 7F00DFC4 00000000 */ nop +/* 042AF8 7F00DFC8 46803220 */ cvt.s.w $f8, $f6 +/* 042AFC 7F00DFCC 46004282 */ mul.s $f10, $f8, $f0 +/* 042B00 7F00DFD0 460A203C */ c.lt.s $f4, $f10 +/* 042B04 7F00DFD4 00000000 */ nop +/* 042B08 7F00DFD8 45010004 */ bc1t .L7F00DFEC +/* 042B0C 7F00DFDC 00000000 */ nop +/* 042B10 7F00DFE0 26940001 */ addiu $s4, $s4, 1 +/* 042B14 7F00DFE4 5693FFEF */ bnel $s4, $s3, .L7F00DFA4 +/* 042B18 7F00DFE8 2A810004 */ slti $at, $s4, 4 +.L7F00DFEC: +/* 042B1C 7F00DFEC 3C048003 */ lui $a0, %hi(cursor_ypos_table_mission_select) +/* 042B20 7F00DFF0 3C038003 */ lui $v1, %hi(cursor_v_pos) +/* 042B24 7F00DFF4 2463A90C */ addiu $v1, %lo(cursor_v_pos) # addiu $v1, $v1, -0x56f4 +/* 042B28 7F00DFF8 2484AFE4 */ addiu $a0, %lo(cursor_ypos_table_mission_select) # addiu $a0, $a0, -0x501c +/* 042B2C 7F00DFFC 00009025 */ move $s2, $zero +/* 042B30 7F00E000 24050004 */ li $a1, 4 +/* 042B34 7F00E004 2A410003 */ slti $at, $s2, 3 +.L7F00E008: +/* 042B38 7F00E008 10200011 */ beqz $at, .L7F00E050 +/* 042B3C 7F00E00C 00125080 */ sll $t2, $s2, 2 +/* 042B40 7F00E010 008A1021 */ addu $v0, $a0, $t2 +/* 042B44 7F00E014 8C4B0004 */ lw $t3, 4($v0) +/* 042B48 7F00E018 8C4C0000 */ lw $t4, ($v0) +/* 042B4C 7F00E01C C4700000 */ lwc1 $f16, ($v1) +/* 042B50 7F00E020 016C6821 */ addu $t5, $t3, $t4 +/* 042B54 7F00E024 448D9000 */ mtc1 $t5, $f18 +/* 042B58 7F00E028 00000000 */ nop +/* 042B5C 7F00E02C 468091A0 */ cvt.s.w $f6, $f18 +/* 042B60 7F00E030 46003202 */ mul.s $f8, $f6, $f0 +/* 042B64 7F00E034 4608803C */ c.lt.s $f16, $f8 +/* 042B68 7F00E038 00000000 */ nop +/* 042B6C 7F00E03C 45010004 */ bc1t .L7F00E050 +/* 042B70 7F00E040 00000000 */ nop +/* 042B74 7F00E044 26520001 */ addiu $s2, $s2, 1 +/* 042B78 7F00E048 5645FFEF */ bnel $s2, $a1, .L7F00E008 +/* 042B7C 7F00E04C 2A410003 */ slti $at, $s2, 3 +.L7F00E050: +/* 042B80 7F00E050 1A400011 */ blez $s2, .L7F00E098 +/* 042B84 7F00E054 0012A880 */ sll $s5, $s2, 2 +/* 042B88 7F00E058 02B2A821 */ addu $s5, $s5, $s2 +.L7F00E05C: +/* 042B8C 7F00E05C 00008825 */ move $s1, $zero +/* 042B90 7F00E060 02A08025 */ move $s0, $s5 +.L7F00E064: +/* 042B94 7F00E064 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042B98 7F00E068 02002025 */ move $a0, $s0 +/* 042B9C 7F00E06C 04430005 */ bgezl $v0, .L7F00E084 +/* 042BA0 7F00E070 2A210005 */ slti $at, $s1, 5 +/* 042BA4 7F00E074 26310001 */ addiu $s1, $s1, 1 +/* 042BA8 7F00E078 1633FFFA */ bne $s1, $s3, .L7F00E064 +/* 042BAC 7F00E07C 26100001 */ addiu $s0, $s0, 1 +/* 042BB0 7F00E080 2A210005 */ slti $at, $s1, 5 +.L7F00E084: +/* 042BB4 7F00E084 54200005 */ bnezl $at, .L7F00E09C +/* 042BB8 7F00E088 0012A880 */ sll $s5, $s2, 2 +/* 042BBC 7F00E08C 2652FFFF */ addiu $s2, $s2, -1 +/* 042BC0 7F00E090 1E40FFF2 */ bgtz $s2, .L7F00E05C +/* 042BC4 7F00E094 26B5FFFB */ addiu $s5, $s5, -5 +.L7F00E098: +/* 042BC8 7F00E098 0012A880 */ sll $s5, $s2, 2 +.L7F00E09C: +/* 042BCC 7F00E09C 06800009 */ bltz $s4, .L7F00E0C4 +/* 042BD0 7F00E0A0 02B2A821 */ addu $s5, $s5, $s2 +/* 042BD4 7F00E0A4 02B48021 */ addu $s0, $s5, $s4 +.L7F00E0A8: +/* 042BD8 7F00E0A8 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042BDC 7F00E0AC 02002025 */ move $a0, $s0 +/* 042BE0 7F00E0B0 04410004 */ bgez $v0, .L7F00E0C4 +/* 042BE4 7F00E0B4 00000000 */ nop +/* 042BE8 7F00E0B8 2694FFFF */ addiu $s4, $s4, -1 +/* 042BEC 7F00E0BC 0681FFFA */ bgez $s4, .L7F00E0A8 +/* 042BF0 7F00E0C0 2610FFFF */ addiu $s0, $s0, -1 +.L7F00E0C4: +/* 042BF4 7F00E0C4 06810009 */ bgez $s4, .L7F00E0EC +/* 042BF8 7F00E0C8 02A08025 */ move $s0, $s5 +/* 042BFC 7F00E0CC 0000A025 */ move $s4, $zero +.L7F00E0D0: +/* 042C00 7F00E0D0 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042C04 7F00E0D4 02002025 */ move $a0, $s0 +/* 042C08 7F00E0D8 04430005 */ bgezl $v0, .L7F00E0F0 +/* 042C0C 7F00E0DC 02B47021 */ addu $t6, $s5, $s4 +/* 042C10 7F00E0E0 26940001 */ addiu $s4, $s4, 1 +/* 042C14 7F00E0E4 1693FFFA */ bne $s4, $s3, .L7F00E0D0 +/* 042C18 7F00E0E8 26100001 */ addiu $s0, $s0, 1 +.L7F00E0EC: +/* 042C1C 7F00E0EC 02B47021 */ addu $t6, $s5, $s4 +.L7F00E0F0: +/* 042C20 7F00E0F0 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042C24 7F00E0F4 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +.L7F00E0F8: +/* 042C28 7F00E0F8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042C2C 7F00E0FC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C30 7F00E100 8C8F0008 */ lw $t7, 8($a0) +/* 042C34 7F00E104 8DF80008 */ lw $t8, 8($t7) +/* 042C38 7F00E108 8F050054 */ lw $a1, 0x54($t8) +/* 042C3C 7F00E10C 50A00054 */ beql $a1, $zero, .L7F00E260 +/* 042C40 7F00E110 00002025 */ move $a0, $zero +/* 042C44 7F00E114 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 042C48 7F00E118 8CB40004 */ lw $s4, 4($a1) +/* 042C4C 7F00E11C 00408825 */ move $s1, $v0 +/* 042C50 7F00E120 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 042C54 7F00E124 8684000C */ lh $a0, 0xc($s4) +/* 042C58 7F00E128 AE220000 */ sw $v0, ($s1) +/* 042C5C 7F00E12C 8699000C */ lh $t9, 0xc($s4) +/* 042C60 7F00E130 00009025 */ move $s2, $zero +/* 042C64 7F00E134 00008025 */ move $s0, $zero +/* 042C68 7F00E138 1B200048 */ blez $t9, .L7F00E25C +/* 042C6C 7F00E13C 241500F5 */ li $s5, 245 +/* 042C70 7F00E140 2413006E */ li $s3, 110 +/* 042C74 7F00E144 8E8A0008 */ lw $t2, 8($s4) +.L7F00E148: +/* 042C78 7F00E148 8E280000 */ lw $t0, ($s1) +/* 042C7C 7F00E14C 01505821 */ addu $t3, $t2, $s0 +/* 042C80 7F00E150 8D610000 */ lw $at, ($t3) +/* 042C84 7F00E154 01104821 */ addu $t1, $t0, $s0 +/* 042C88 7F00E158 AD210000 */ sw $at, ($t1) +/* 042C8C 7F00E15C 8D6D0004 */ lw $t5, 4($t3) +/* 042C90 7F00E160 AD2D0004 */ sw $t5, 4($t1) +/* 042C94 7F00E164 8D610008 */ lw $at, 8($t3) +/* 042C98 7F00E168 AD210008 */ sw $at, 8($t1) +/* 042C9C 7F00E16C 8D6D000C */ lw $t5, 0xc($t3) +/* 042CA0 7F00E170 AD2D000C */ sw $t5, 0xc($t1) +/* 042CA4 7F00E174 06410003 */ bgez $s2, .L7F00E184 +/* 042CA8 7F00E178 00122083 */ sra $a0, $s2, 2 +/* 042CAC 7F00E17C 26410003 */ addiu $at, $s2, 3 +/* 042CB0 7F00E180 00012083 */ sra $a0, $at, 2 +.L7F00E184: +/* 042CB4 7F00E184 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042CB8 7F00E188 AFA40030 */ sw $a0, 0x30($sp) +/* 042CBC 7F00E18C 240300FF */ li $v1, 255 +/* 042CC0 7F00E190 8FA40030 */ lw $a0, 0x30($sp) +/* 042CC4 7F00E194 0440001F */ bltz $v0, .L7F00E214 +/* 042CC8 7F00E198 2405000F */ li $a1, 15 +/* 042CCC 7F00E19C 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) +/* 042CD0 7F00E1A0 8DCE9784 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042CD4 7F00E1A4 548E000F */ bnel $a0, $t6, .L7F00E1E4 +/* 042CD8 7F00E1A8 8E2D0000 */ lw $t5, ($s1) +/* 042CDC 7F00E1AC 8E2F0000 */ lw $t7, ($s1) +/* 042CE0 7F00E1B0 01F0C021 */ addu $t8, $t7, $s0 +/* 042CE4 7F00E1B4 A303000C */ sb $v1, 0xc($t8) +/* 042CE8 7F00E1B8 8E390000 */ lw $t9, ($s1) +/* 042CEC 7F00E1BC 03304021 */ addu $t0, $t9, $s0 +/* 042CF0 7F00E1C0 A103000D */ sb $v1, 0xd($t0) +/* 042CF4 7F00E1C4 8E2A0000 */ lw $t2, ($s1) +/* 042CF8 7F00E1C8 01506021 */ addu $t4, $t2, $s0 +/* 042CFC 7F00E1CC A183000E */ sb $v1, 0xe($t4) +/* 042D00 7F00E1D0 8E290000 */ lw $t1, ($s1) +/* 042D04 7F00E1D4 01305821 */ addu $t3, $t1, $s0 +/* 042D08 7F00E1D8 1000001A */ b .L7F00E244 +/* 042D0C 7F00E1DC A175000F */ sb $s5, 0xf($t3) +/* 042D10 7F00E1E0 8E2D0000 */ lw $t5, ($s1) +.L7F00E1E4: +/* 042D14 7F00E1E4 01B07021 */ addu $t6, $t5, $s0 +/* 042D18 7F00E1E8 A1D3000C */ sb $s3, 0xc($t6) +/* 042D1C 7F00E1EC 8E2F0000 */ lw $t7, ($s1) +/* 042D20 7F00E1F0 01F0C021 */ addu $t8, $t7, $s0 +/* 042D24 7F00E1F4 A313000D */ sb $s3, 0xd($t8) +/* 042D28 7F00E1F8 8E390000 */ lw $t9, ($s1) +/* 042D2C 7F00E1FC 03304021 */ addu $t0, $t9, $s0 +/* 042D30 7F00E200 A113000E */ sb $s3, 0xe($t0) +/* 042D34 7F00E204 8E2A0000 */ lw $t2, ($s1) +/* 042D38 7F00E208 01506021 */ addu $t4, $t2, $s0 +/* 042D3C 7F00E20C 1000000D */ b .L7F00E244 +/* 042D40 7F00E210 A183000F */ sb $v1, 0xf($t4) +.L7F00E214: +/* 042D44 7F00E214 8E290000 */ lw $t1, ($s1) +/* 042D48 7F00E218 01305821 */ addu $t3, $t1, $s0 +/* 042D4C 7F00E21C A165000C */ sb $a1, 0xc($t3) +/* 042D50 7F00E220 8E2D0000 */ lw $t5, ($s1) +/* 042D54 7F00E224 01B07021 */ addu $t6, $t5, $s0 +/* 042D58 7F00E228 A1C5000D */ sb $a1, 0xd($t6) +/* 042D5C 7F00E22C 8E2F0000 */ lw $t7, ($s1) +/* 042D60 7F00E230 01F0C021 */ addu $t8, $t7, $s0 +/* 042D64 7F00E234 A305000E */ sb $a1, 0xe($t8) +/* 042D68 7F00E238 8E390000 */ lw $t9, ($s1) +/* 042D6C 7F00E23C 03304021 */ addu $t0, $t9, $s0 +/* 042D70 7F00E240 A103000F */ sb $v1, 0xf($t0) +.L7F00E244: +/* 042D74 7F00E244 868A000C */ lh $t2, 0xc($s4) +/* 042D78 7F00E248 26520001 */ addiu $s2, $s2, 1 +/* 042D7C 7F00E24C 26100010 */ addiu $s0, $s0, 0x10 +/* 042D80 7F00E250 024A082A */ slt $at, $s2, $t2 +/* 042D84 7F00E254 5420FFBC */ bnezl $at, .L7F00E148 +/* 042D88 7F00E258 8E8A0008 */ lw $t2, 8($s4) +.L7F00E25C: +/* 042D8C 7F00E25C 00002025 */ move $a0, $zero +.L7F00E260: +/* 042D90 7F00E260 0C0030EB */ jal get_controller_buttons_pressed +/* 042D94 7F00E264 3405B000 */ li $a1, 45056 +/* 042D98 7F00E268 1040002A */ beqz $v0, .L7F00E314 +/* 042D9C 7F00E26C 00002025 */ move $a0, $zero +/* 042DA0 7F00E270 3C0C8003 */ lui $t4, %hi(tab_3_highlight) +/* 042DA4 7F00E274 8D8CA8E4 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042DA8 7F00E278 24090001 */ li $t1, 1 +/* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042DB0 7F00E280 11800009 */ beqz $t4, .L7F00E2A8 +/* 042DB4 7F00E284 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) +/* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_3_selected)($at) +/* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042DC4 7F00E294 240500C7 */ li $a1, 199 +/* 042DC8 7F00E298 0C002382 */ jal play_sfx_a1 +/* 042DCC 7F00E29C 00003025 */ move $a2, $zero +/* 042DD0 7F00E2A0 10000027 */ b .L7F00E340 +/* 042DD4 7F00E2A4 00000000 */ nop +.L7F00E2A8: +/* 042DD8 7F00E2A8 8C849784 */ lw $a0, %lo(mission_difficulty_highlighted)($a0) +/* 042DDC 7F00E2AC 04800024 */ bltz $a0, .L7F00E340 +/* 042DE0 7F00E2B0 00000000 */ nop +/* 042DE4 7F00E2B4 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 042DE8 7F00E2B8 00000000 */ nop +/* 042DEC 7F00E2BC 3C018003 */ lui $at, %hi(briefingpage) +/* 042DF0 7F00E2C0 AC22A8F8 */ sw $v0, %lo(briefingpage)($at) +/* 042DF4 7F00E2C4 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 042DF8 7F00E2C8 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 042DFC 7F00E2CC 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+8) +/* 042E00 7F00E2D0 3C018003 */ lui $at, %hi(selected_stage) +/* 042E04 7F00E2D4 000B68C0 */ sll $t5, $t3, 3 +/* 042E08 7F00E2D8 01AB6823 */ subu $t5, $t5, $t3 +/* 042E0C 7F00E2DC 000D6880 */ sll $t5, $t5, 2 +/* 042E10 7F00E2E0 01CD7021 */ addu $t6, $t6, $t5 +/* 042E14 7F00E2E4 8DCEABEC */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) +/* 042E18 7F00E2E8 240F0001 */ li $t7, 1 +/* 042E1C 7F00E2EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E20 7F00E2F0 AC2EA8F4 */ sw $t6, %lo(selected_stage)($at) +/* 042E24 7F00E2F4 3C018003 */ lui $at, %hi(tab_2_selected) +/* 042E28 7F00E2F8 AC2FA8D4 */ sw $t7, %lo(tab_2_selected)($at) +/* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E30 7F00E300 240500C7 */ li $a1, 199 +/* 042E34 7F00E304 0C002382 */ jal play_sfx_a1 +/* 042E38 7F00E308 00003025 */ move $a2, $zero +/* 042E3C 7F00E30C 1000000C */ b .L7F00E340 +/* 042E40 7F00E310 00000000 */ nop +.L7F00E314: +/* 042E44 7F00E314 0C0030EB */ jal get_controller_buttons_pressed +/* 042E48 7F00E318 24054000 */ li $a1, 16384 +/* 042E4C 7F00E31C 10400008 */ beqz $v0, .L7F00E340 +/* 042E50 7F00E320 24180001 */ li $t8, 1 +/* 042E54 7F00E324 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042E58 7F00E328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +/* 042E60 7F00E330 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E64 7F00E334 240500C7 */ li $a1, 199 +/* 042E68 7F00E338 0C002382 */ jal play_sfx_a1 +/* 042E6C 7F00E33C 00003025 */ move $a2, $zero +.L7F00E340: +/* 042E70 7F00E340 0FC026E1 */ jal menu_control_stick_tracking +/* 042E74 7F00E344 00000000 */ nop +/* 042E78 7F00E348 3C198003 */ lui $t9, %hi(tab_2_selected) +/* 042E7C 7F00E34C 8F39A8D4 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042E80 7F00E350 24040008 */ li $a0, 8 +/* 042E84 7F00E354 3C0C8003 */ lui $t4, %hi(tab_3_selected) +/* 042E88 7F00E358 13200010 */ beqz $t9, .L7F00E39C +/* 042E8C 7F00E35C 00000000 */ nop +/* 042E90 7F00E360 0FC06975 */ jal set_menu_to_mode +/* 042E94 7F00E364 00002825 */ move $a1, $zero +/* 042E98 7F00E368 3C088003 */ lui $t0, %hi(briefingpage) +/* 042E9C 7F00E36C 8D08A8F8 */ lw $t0, %lo(briefingpage)($t0) +/* 042EA0 7F00E370 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 042EA4 7F00E374 000850C0 */ sll $t2, $t0, 3 +/* 042EA8 7F00E378 01485023 */ subu $t2, $t2, $t0 +/* 042EAC 7F00E37C 000A5080 */ sll $t2, $t2, 2 +/* 042EB0 7F00E380 008A2021 */ addu $a0, $a0, $t2 +/* 042EB4 7F00E384 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042EB8 7F00E388 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 042EBC 7F00E38C 0FC03B59 */ jal set_cursor_pos_difficulty +/* 042EC0 7F00E390 00402025 */ move $a0, $v0 +/* 042EC4 7F00E394 1000000A */ b .L7F00E3C0 +/* 042EC8 7F00E398 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E39C: +/* 042ECC 7F00E39C 8D8CA8D8 */ lw $t4, %lo(tab_3_selected)($t4) +/* 042ED0 7F00E3A0 24040006 */ li $a0, 6 +/* 042ED4 7F00E3A4 51800006 */ beql $t4, $zero, .L7F00E3C0 +/* 042ED8 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) +/* 042EDC 7F00E3AC 0FC06975 */ jal set_menu_to_mode +/* 042EE0 7F00E3B0 00002825 */ move $a1, $zero +/* 042EE4 7F00E3B4 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 042EE8 7F00E3B8 00002025 */ move $a0, $zero +/* 042EEC 7F00E3BC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3C0: +/* 042EF0 7F00E3C0 8FB00014 */ lw $s0, 0x14($sp) +/* 042EF4 7F00E3C4 8FB10018 */ lw $s1, 0x18($sp) +/* 042EF8 7F00E3C8 8FB2001C */ lw $s2, 0x1c($sp) +/* 042EFC 7F00E3CC 8FB30020 */ lw $s3, 0x20($sp) +/* 042F00 7F00E3D0 8FB40024 */ lw $s4, 0x24($sp) +/* 042F04 7F00E3D4 8FB50028 */ lw $s5, 0x28($sp) +/* 042F08 7F00E3D8 03E00008 */ jr $ra +/* 042F0C 7F00E3DC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051A44 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A48 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu07_missionsel +/* 042A48 7F00DED8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 042A4C 7F00DEDC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 042A50 7F00DEE0 AFBF002C */ sw $ra, 0x2c($sp) +/* 042A54 7F00DEE4 44816000 */ mtc1 $at, $f12 +/* 042A58 7F00DEE8 AFB50028 */ sw $s5, 0x28($sp) +/* 042A5C 7F00DEEC AFB40024 */ sw $s4, 0x24($sp) +/* 042A60 7F00DEF0 AFB30020 */ sw $s3, 0x20($sp) +/* 042A64 7F00DEF4 AFB2001C */ sw $s2, 0x1c($sp) +/* 042A68 7F00DEF8 AFB10018 */ sw $s1, 0x18($sp) +/* 042A6C 7F00DEFC 0C001151 */ jal setvideo_far +/* 042A70 7F00DF00 AFB00014 */ sw $s0, 0x14($sp) +/* 042A74 7F00DF04 3C018005 */ lui $at, %hi(D_80051A44) # $at, 0x8005 +/* 042A78 7F00DF08 0C001164 */ jal video_related_21 +/* 042A7C 7F00DF0C C42C1A74 */ lwc1 $f12, %lo(D_80051A44)($at) +/* 042A80 7F00DF10 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 042A84 7F00DF14 44816000 */ mtc1 $at, $f12 +/* 042A88 7F00DF18 3C018005 */ lui $at, %hi(D_80051A48) # $at, 0x8005 +/* 042A8C 7F00DF1C 0C001194 */ jal set_page_height +/* 042A90 7F00DF20 C42E1A78 */ lwc1 $f14, %lo(D_80051A48)($at) +/* 042A94 7F00DF24 0C00114D */ jal set_video2_settings_offset_24 +/* 042A98 7F00DF28 00002025 */ move $a0, $zero +/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042AA0 7F00DF30 0FC02DD1 */ jal disable_all_switches +/* 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) +/* 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) +/* 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) +/* 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) +/* 042AEC 7F00DF7C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 +/* 042AF0 7F00DF80 240EFFFF */ li $t6, -1 +/* 042AF4 7F00DF84 0FC028EF */ jal isontab3 +/* 042AF8 7F00DF88 AC2E97C4 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +/* 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 +/* 042B0C 7F00DF9C 1000005E */ b .L7F00E118 +/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F00DFA4: +/* 042B14 7F00DFA4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 042B18 7F00DFA8 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) # $a0, 0x8003 +/* 042B1C 7F00DFAC 3C038003 */ lui $v1, %hi(cursor_h_pos) # $v1, 0x8003 +/* 042B20 7F00DFB0 44810000 */ mtc1 $at, $f0 +/* 042B24 7F00DFB4 2463A948 */ addiu $v1, %lo(cursor_h_pos) # addiu $v1, $v1, -0x56b8 +/* 042B28 7F00DFB8 2484B010 */ addiu $a0, %lo(cursor_xpos_table_mission_select) # addiu $a0, $a0, -0x4ff0 +/* 042B2C 7F00DFBC 24130005 */ li $s3, 5 +/* 042B30 7F00DFC0 2A810004 */ slti $at, $s4, 4 +.L7F00DFC4: +/* 042B34 7F00DFC4 10200011 */ beqz $at, .L7F00E00C +/* 042B38 7F00DFC8 0014C080 */ sll $t8, $s4, 2 +/* 042B3C 7F00DFCC 00981021 */ addu $v0, $a0, $t8 +/* 042B40 7F00DFD0 8C590004 */ lw $t9, 4($v0) +/* 042B44 7F00DFD4 8C480000 */ lw $t0, ($v0) +/* 042B48 7F00DFD8 C4640000 */ lwc1 $f4, ($v1) +/* 042B4C 7F00DFDC 03284821 */ addu $t1, $t9, $t0 +/* 042B50 7F00DFE0 44893000 */ mtc1 $t1, $f6 +/* 042B54 7F00DFE4 00000000 */ nop +/* 042B58 7F00DFE8 46803220 */ cvt.s.w $f8, $f6 +/* 042B5C 7F00DFEC 46004282 */ mul.s $f10, $f8, $f0 +/* 042B60 7F00DFF0 460A203C */ c.lt.s $f4, $f10 +/* 042B64 7F00DFF4 00000000 */ nop +/* 042B68 7F00DFF8 45010004 */ bc1t .L7F00E00C +/* 042B6C 7F00DFFC 00000000 */ nop +/* 042B70 7F00E000 26940001 */ addiu $s4, $s4, 1 +/* 042B74 7F00E004 5693FFEF */ bnel $s4, $s3, .L7F00DFC4 +/* 042B78 7F00E008 2A810004 */ slti $at, $s4, 4 +.L7F00E00C: +/* 042B7C 7F00E00C 3C048003 */ lui $a0, %hi(cursor_ypos_table_mission_select) # $a0, 0x8003 +/* 042B80 7F00E010 3C038003 */ lui $v1, %hi(cursor_v_pos) # $v1, 0x8003 +/* 042B84 7F00E014 2463A94C */ addiu $v1, %lo(cursor_v_pos) # addiu $v1, $v1, -0x56b4 +/* 042B88 7F00E018 2484B024 */ addiu $a0, %lo(cursor_ypos_table_mission_select) # addiu $a0, $a0, -0x4fdc +/* 042B8C 7F00E01C 00009025 */ move $s2, $zero +/* 042B90 7F00E020 24050004 */ li $a1, 4 +/* 042B94 7F00E024 2A410003 */ slti $at, $s2, 3 +.L7F00E028: +/* 042B98 7F00E028 10200011 */ beqz $at, .L7F00E070 +/* 042B9C 7F00E02C 00125080 */ sll $t2, $s2, 2 +/* 042BA0 7F00E030 008A1021 */ addu $v0, $a0, $t2 +/* 042BA4 7F00E034 8C4B0004 */ lw $t3, 4($v0) +/* 042BA8 7F00E038 8C4C0000 */ lw $t4, ($v0) +/* 042BAC 7F00E03C C4700000 */ lwc1 $f16, ($v1) +/* 042BB0 7F00E040 016C6821 */ addu $t5, $t3, $t4 +/* 042BB4 7F00E044 448D9000 */ mtc1 $t5, $f18 +/* 042BB8 7F00E048 00000000 */ nop +/* 042BBC 7F00E04C 468091A0 */ cvt.s.w $f6, $f18 +/* 042BC0 7F00E050 46003202 */ mul.s $f8, $f6, $f0 +/* 042BC4 7F00E054 4608803C */ c.lt.s $f16, $f8 +/* 042BC8 7F00E058 00000000 */ nop +/* 042BCC 7F00E05C 45010004 */ bc1t .L7F00E070 +/* 042BD0 7F00E060 00000000 */ nop +/* 042BD4 7F00E064 26520001 */ addiu $s2, $s2, 1 +/* 042BD8 7F00E068 5645FFEF */ bnel $s2, $a1, .L7F00E028 +/* 042BDC 7F00E06C 2A410003 */ slti $at, $s2, 3 +.L7F00E070: +/* 042BE0 7F00E070 1A400011 */ blez $s2, .L7F00E0B8 +/* 042BE4 7F00E074 0012A880 */ sll $s5, $s2, 2 +/* 042BE8 7F00E078 02B2A821 */ addu $s5, $s5, $s2 +.L7F00E07C: +/* 042BEC 7F00E07C 00008825 */ move $s1, $zero +/* 042BF0 7F00E080 02A08025 */ move $s0, $s5 +.L7F00E084: +/* 042BF4 7F00E084 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042BF8 7F00E088 02002025 */ move $a0, $s0 +/* 042BFC 7F00E08C 04430005 */ bgezl $v0, .L7F00E0A4 +/* 042C00 7F00E090 2A210005 */ slti $at, $s1, 5 +/* 042C04 7F00E094 26310001 */ addiu $s1, $s1, 1 +/* 042C08 7F00E098 1633FFFA */ bne $s1, $s3, .L7F00E084 +/* 042C0C 7F00E09C 26100001 */ addiu $s0, $s0, 1 +/* 042C10 7F00E0A0 2A210005 */ slti $at, $s1, 5 +.L7F00E0A4: +/* 042C14 7F00E0A4 54200005 */ bnezl $at, .L7F00E0BC +/* 042C18 7F00E0A8 0012A880 */ sll $s5, $s2, 2 +/* 042C1C 7F00E0AC 2652FFFF */ addiu $s2, $s2, -1 +/* 042C20 7F00E0B0 1E40FFF2 */ bgtz $s2, .L7F00E07C +/* 042C24 7F00E0B4 26B5FFFB */ addiu $s5, $s5, -5 +.L7F00E0B8: +/* 042C28 7F00E0B8 0012A880 */ sll $s5, $s2, 2 +.L7F00E0BC: +/* 042C2C 7F00E0BC 06800009 */ bltz $s4, .L7F00E0E4 +/* 042C30 7F00E0C0 02B2A821 */ addu $s5, $s5, $s2 +/* 042C34 7F00E0C4 02B48021 */ addu $s0, $s5, $s4 +.L7F00E0C8: +/* 042C38 7F00E0C8 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042C3C 7F00E0CC 02002025 */ move $a0, $s0 +/* 042C40 7F00E0D0 04410004 */ bgez $v0, .L7F00E0E4 +/* 042C44 7F00E0D4 00000000 */ nop +/* 042C48 7F00E0D8 2694FFFF */ addiu $s4, $s4, -1 +/* 042C4C 7F00E0DC 0681FFFA */ bgez $s4, .L7F00E0C8 +/* 042C50 7F00E0E0 2610FFFF */ addiu $s0, $s0, -1 +.L7F00E0E4: +/* 042C54 7F00E0E4 06810009 */ bgez $s4, .L7F00E10C +/* 042C58 7F00E0E8 02A08025 */ move $s0, $s5 +/* 042C5C 7F00E0EC 0000A025 */ move $s4, $zero +.L7F00E0F0: +/* 042C60 7F00E0F0 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042C64 7F00E0F4 02002025 */ move $a0, $s0 +/* 042C68 7F00E0F8 04430005 */ bgezl $v0, .L7F00E110 +/* 042C6C 7F00E0FC 02B47021 */ addu $t6, $s5, $s4 +/* 042C70 7F00E100 26940001 */ addiu $s4, $s4, 1 +/* 042C74 7F00E104 1693FFFA */ bne $s4, $s3, .L7F00E0F0 +/* 042C78 7F00E108 26100001 */ addiu $s0, $s0, 1 +.L7F00E10C: +/* 042C7C 7F00E10C 02B47021 */ addu $t6, $s5, $s4 +.L7F00E110: +/* 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) +/* 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 +/* 042CA8 7F00E138 8CB40004 */ lw $s4, 4($a1) +/* 042CAC 7F00E13C 00408825 */ move $s1, $v0 +/* 042CB0 7F00E140 0FC2F89D */ jal sub_GAME_7F0BD6C4 +/* 042CB4 7F00E144 8684000C */ lh $a0, 0xc($s4) +/* 042CB8 7F00E148 AE220000 */ sw $v0, ($s1) +/* 042CBC 7F00E14C 8699000C */ lh $t9, 0xc($s4) +/* 042CC0 7F00E150 00009025 */ move $s2, $zero +/* 042CC4 7F00E154 00008025 */ move $s0, $zero +/* 042CC8 7F00E158 1B200048 */ blez $t9, .L7F00E27C +/* 042CCC 7F00E15C 241500F5 */ li $s5, 245 +/* 042CD0 7F00E160 2413006E */ li $s3, 110 +/* 042CD4 7F00E164 8E8A0008 */ lw $t2, 8($s4) +.L7F00E168: +/* 042CD8 7F00E168 8E280000 */ lw $t0, ($s1) +/* 042CDC 7F00E16C 01505821 */ addu $t3, $t2, $s0 +/* 042CE0 7F00E170 8D610000 */ lw $at, ($t3) +/* 042CE4 7F00E174 01104821 */ addu $t1, $t0, $s0 +/* 042CE8 7F00E178 AD210000 */ sw $at, ($t1) +/* 042CEC 7F00E17C 8D6D0004 */ lw $t5, 4($t3) +/* 042CF0 7F00E180 AD2D0004 */ sw $t5, 4($t1) +/* 042CF4 7F00E184 8D610008 */ lw $at, 8($t3) +/* 042CF8 7F00E188 AD210008 */ sw $at, 8($t1) +/* 042CFC 7F00E18C 8D6D000C */ lw $t5, 0xc($t3) +/* 042D00 7F00E190 AD2D000C */ sw $t5, 0xc($t1) +/* 042D04 7F00E194 06410003 */ bgez $s2, .L7F00E1A4 +/* 042D08 7F00E198 00122083 */ sra $a0, $s2, 2 +/* 042D0C 7F00E19C 26410003 */ addiu $at, $s2, 3 +/* 042D10 7F00E1A0 00012083 */ sra $a0, $at, 2 +.L7F00E1A4: +/* 042D14 7F00E1A4 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042D18 7F00E1A8 AFA40030 */ sw $a0, 0x30($sp) +/* 042D1C 7F00E1AC 240300FF */ li $v1, 255 +/* 042D20 7F00E1B0 8FA40030 */ lw $a0, 0x30($sp) +/* 042D24 7F00E1B4 0440001F */ bltz $v0, .L7F00E234 +/* 042D28 7F00E1B8 2405000F */ li $a1, 15 +/* 042D2C 7F00E1BC 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) # $t6, 0x8007 +/* 042D30 7F00E1C0 8DCE97C4 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042D34 7F00E1C4 548E000F */ bnel $a0, $t6, .L7F00E204 +/* 042D38 7F00E1C8 8E2D0000 */ lw $t5, ($s1) +/* 042D3C 7F00E1CC 8E2F0000 */ lw $t7, ($s1) +/* 042D40 7F00E1D0 01F0C021 */ addu $t8, $t7, $s0 +/* 042D44 7F00E1D4 A303000C */ sb $v1, 0xc($t8) +/* 042D48 7F00E1D8 8E390000 */ lw $t9, ($s1) +/* 042D4C 7F00E1DC 03304021 */ addu $t0, $t9, $s0 +/* 042D50 7F00E1E0 A103000D */ sb $v1, 0xd($t0) +/* 042D54 7F00E1E4 8E2A0000 */ lw $t2, ($s1) +/* 042D58 7F00E1E8 01506021 */ addu $t4, $t2, $s0 +/* 042D5C 7F00E1EC A183000E */ sb $v1, 0xe($t4) +/* 042D60 7F00E1F0 8E290000 */ lw $t1, ($s1) +/* 042D64 7F00E1F4 01305821 */ addu $t3, $t1, $s0 +/* 042D68 7F00E1F8 1000001A */ b .L7F00E264 +/* 042D6C 7F00E1FC A175000F */ sb $s5, 0xf($t3) +/* 042D70 7F00E200 8E2D0000 */ lw $t5, ($s1) +.L7F00E204: +/* 042D74 7F00E204 01B07021 */ addu $t6, $t5, $s0 +/* 042D78 7F00E208 A1D3000C */ sb $s3, 0xc($t6) +/* 042D7C 7F00E20C 8E2F0000 */ lw $t7, ($s1) +/* 042D80 7F00E210 01F0C021 */ addu $t8, $t7, $s0 +/* 042D84 7F00E214 A313000D */ sb $s3, 0xd($t8) +/* 042D88 7F00E218 8E390000 */ lw $t9, ($s1) +/* 042D8C 7F00E21C 03304021 */ addu $t0, $t9, $s0 +/* 042D90 7F00E220 A113000E */ sb $s3, 0xe($t0) +/* 042D94 7F00E224 8E2A0000 */ lw $t2, ($s1) +/* 042D98 7F00E228 01506021 */ addu $t4, $t2, $s0 +/* 042D9C 7F00E22C 1000000D */ b .L7F00E264 +/* 042DA0 7F00E230 A183000F */ sb $v1, 0xf($t4) +.L7F00E234: +/* 042DA4 7F00E234 8E290000 */ lw $t1, ($s1) +/* 042DA8 7F00E238 01305821 */ addu $t3, $t1, $s0 +/* 042DAC 7F00E23C A165000C */ sb $a1, 0xc($t3) +/* 042DB0 7F00E240 8E2D0000 */ lw $t5, ($s1) +/* 042DB4 7F00E244 01B07021 */ addu $t6, $t5, $s0 +/* 042DB8 7F00E248 A1C5000D */ sb $a1, 0xd($t6) +/* 042DBC 7F00E24C 8E2F0000 */ lw $t7, ($s1) +/* 042DC0 7F00E250 01F0C021 */ addu $t8, $t7, $s0 +/* 042DC4 7F00E254 A305000E */ sb $a1, 0xe($t8) +/* 042DC8 7F00E258 8E390000 */ lw $t9, ($s1) +/* 042DCC 7F00E25C 03304021 */ addu $t0, $t9, $s0 +/* 042DD0 7F00E260 A103000F */ sb $v1, 0xf($t0) +.L7F00E264: +/* 042DD4 7F00E264 868A000C */ lh $t2, 0xc($s4) +/* 042DD8 7F00E268 26520001 */ addiu $s2, $s2, 1 +/* 042DDC 7F00E26C 26100010 */ addiu $s0, $s0, 0x10 +/* 042DE0 7F00E270 024A082A */ slt $at, $s2, $t2 +/* 042DE4 7F00E274 5420FFBC */ bnezl $at, .L7F00E168 +/* 042DE8 7F00E278 8E8A0008 */ lw $t2, 8($s4) +.L7F00E27C: +/* 042DEC 7F00E27C 00002025 */ move $a0, $zero +.L7F00E280: +/* 042DF0 7F00E280 0C003104 */ jal get_controller_buttons_pressed +/* 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) +/* 042E08 7F00E298 24090001 */ li $t1, 1 +/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042E10 7F00E2A0 11800009 */ beqz $t4, .L7F00E2C8 +/* 042E14 7F00E2A4 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) +/* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_3_selected)($at) +/* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E24 7F00E2B4 240500C7 */ li $a1, 199 +/* 042E28 7F00E2B8 0C002386 */ jal play_sfx_a1 +/* 042E2C 7F00E2BC 00003025 */ move $a2, $zero +/* 042E30 7F00E2C0 10000027 */ b .L7F00E360 +/* 042E34 7F00E2C4 00000000 */ nop +.L7F00E2C8: +/* 042E38 7F00E2C8 8C8497C4 */ lw $a0, %lo(mission_difficulty_highlighted)($a0) +/* 042E3C 7F00E2CC 04800024 */ bltz $a0, .L7F00E360 +/* 042E40 7F00E2D0 00000000 */ nop +/* 042E44 7F00E2D4 0FC03738 */ jal pull_and_display_text_for_folder_a0 +/* 042E48 7F00E2D8 00000000 */ nop +/* 042E4C 7F00E2DC 3C018003 */ lui $at, %hi(briefingpage) # $at, 0x8003 +/* 042E50 7F00E2E0 AC22A938 */ sw $v0, %lo(briefingpage)($at) +/* 042E54 7F00E2E4 3C0B8003 */ lui $t3, %hi(briefingpage) # $t3, 0x8003 +/* 042E58 7F00E2E8 8D6BA938 */ lw $t3, %lo(briefingpage)($t3) +/* 042E5C 7F00E2EC 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+8) +/* 042E60 7F00E2F0 3C018003 */ lui $at, %hi(selected_stage) # $at, 0x8003 +/* 042E64 7F00E2F4 000B68C0 */ sll $t5, $t3, 3 +/* 042E68 7F00E2F8 01AB6823 */ subu $t5, $t5, $t3 +/* 042E6C 7F00E2FC 000D6880 */ sll $t5, $t5, 2 +/* 042E70 7F00E300 01CD7021 */ addu $t6, $t6, $t5 +/* 042E74 7F00E304 8DCEAC2C */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) +/* 042E78 7F00E308 240F0001 */ li $t7, 1 +/* 042E7C 7F00E30C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E80 7F00E310 AC2EA934 */ sw $t6, %lo(selected_stage)($at) +/* 042E84 7F00E314 3C018003 */ lui $at, %hi(tab_2_selected) # $at, 0x8003 +/* 042E88 7F00E318 AC2FA914 */ sw $t7, %lo(tab_2_selected)($at) +/* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E90 7F00E320 240500C7 */ li $a1, 199 +/* 042E94 7F00E324 0C002386 */ jal play_sfx_a1 +/* 042E98 7F00E328 00003025 */ move $a2, $zero +/* 042E9C 7F00E32C 1000000C */ b .L7F00E360 +/* 042EA0 7F00E330 00000000 */ nop +.L7F00E334: +/* 042EA4 7F00E334 0C003104 */ jal get_controller_buttons_pressed +/* 042EA8 7F00E338 24054000 */ li $a1, 16384 +/* 042EAC 7F00E33C 10400008 */ beqz $v0, .L7F00E360 +/* 042EB0 7F00E340 24180001 */ li $t8, 1 +/* 042EB4 7F00E344 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_3_selected)($at) +/* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042EC4 7F00E354 240500C7 */ li $a1, 199 +/* 042EC8 7F00E358 0C002386 */ jal play_sfx_a1 +/* 042ECC 7F00E35C 00003025 */ move $a2, $zero +.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) +/* 042EE0 7F00E370 24040008 */ li $a0, 8 +/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_3_selected) # $t1, 0x8003 +/* 042EE8 7F00E378 13200018 */ beqz $t9, .L7F00E3DC +/* 042EEC 7F00E37C 00000000 */ nop +/* 042EF0 7F00E380 0FC069E2 */ jal set_menu_to_mode +/* 042EF4 7F00E384 00002825 */ move $a1, $zero +/* 042EF8 7F00E388 3C088005 */ lui $t0, %hi(j_text_trigger) # $t0, 0x8005 +/* 042EFC 7F00E38C 8D088500 */ lw $t0, %lo(j_text_trigger)($t0) +/* 042F00 7F00E390 3C0A8003 */ lui $t2, %hi(briefingpage) # $t2, 0x8003 +/* 042F04 7F00E394 11000005 */ beqz $t0, .L7F00E3AC +/* 042F08 7F00E398 00000000 */ nop +/* 042F0C 7F00E39C 0FC03B69 */ jal set_cursor_pos_difficulty +/* 042F10 7F00E3A0 00002025 */ move $a0, $zero +/* 042F14 7F00E3A4 10000016 */ b .L7F00E400 +/* 042F18 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3AC: +/* 042F1C 7F00E3AC 8D4AA938 */ lw $t2, %lo(briefingpage)($t2) +/* 042F20 7F00E3B0 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 042F24 7F00E3B4 000A60C0 */ sll $t4, $t2, 3 +/* 042F28 7F00E3B8 018A6023 */ subu $t4, $t4, $t2 +/* 042F2C 7F00E3BC 000C6080 */ sll $t4, $t4, 2 +/* 042F30 7F00E3C0 008C2021 */ addu $a0, $a0, $t4 +/* 042F34 7F00E3C4 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042F38 7F00E3C8 8C84AC38 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 042F3C 7F00E3CC 0FC03B69 */ jal set_cursor_pos_difficulty +/* 042F40 7F00E3D0 00402025 */ move $a0, $v0 +/* 042F44 7F00E3D4 1000000A */ b .L7F00E400 +/* 042F48 7F00E3D8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3DC: +/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_3_selected)($t1) +/* 042F50 7F00E3E0 24040006 */ li $a0, 6 +/* 042F54 7F00E3E4 51200006 */ beql $t1, $zero, .L7F00E400 +/* 042F58 7F00E3E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 042F5C 7F00E3EC 0FC069E2 */ jal set_menu_to_mode +/* 042F60 7F00E3F0 00002825 */ move $a1, $zero +/* 042F64 7F00E3F4 0FC03607 */ jal set_menu_cursor_pos_to_setting +/* 042F68 7F00E3F8 00002025 */ move $a0, $zero +/* 042F6C 7F00E3FC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E400: +/* 042F70 7F00E400 8FB00014 */ lw $s0, 0x14($sp) +/* 042F74 7F00E404 8FB10018 */ lw $s1, 0x18($sp) +/* 042F78 7F00E408 8FB2001C */ lw $s2, 0x1c($sp) +/* 042F7C 7F00E40C 8FB30020 */ lw $s3, 0x20($sp) +/* 042F80 7F00E410 8FB40024 */ lw $s4, 0x24($sp) +/* 042F84 7F00E414 8FB50028 */ lw $s5, 0x28($sp) +/* 042F88 7F00E418 03E00008 */ jr $ra +/* 042F8C 7F00E41C 27BD0060 */ addiu $sp, $sp, 0x60 + +) +#endif + +#endif + + +#ifdef NONMATCHING +s32 set_cursor_to_stage_solo(s32 arg0) +{ + 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; +} +#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 +void constructor_menu07_missionsel(void) +{ + s32 spD8; + s32 spC8; + s32 spC4; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 temp_a1; + s32 temp_a2; + s32 temp_ret; + s32 temp_s6; + s32 temp_t3; + s32 temp_v1; + s8 temp_v1_2; + u32 temp_v0_2; + void *temp_a0; + void *temp_s7; + void *temp_v0; + s32 phi_s3; + void *phi_v0; + s32 phi_s4; + s32 phi_s5; + s32 phi_s6; + s32 phi_s4_2; + + temp_ret = insert_generic_fillrect(set_setfillcolor(0, 0, 0)); + temp_ret->unk4 = -1; + temp_ret->unk0 = 0xf8000000; + spD8 = 0; + phi_s4 = microcode_constructor(sub_GAME_7F00D5E8(temp_ret + 8)); +loop_1: + phi_s3 = spD8; + phi_s6 = 0; +loop_2: + phi_s4_2 = phi_s4; + if (get_highest_unlocked_difficulty_for_level(phi_s3) >= 0) + { + temp_s7 = (spD8 * 4) + &cursor_xpos_table_mission_select; + phi_s5 = 0x96969600; + if (phi_s3 == mission_difficulty_highlighted) + { + phi_s5 = -0x100; + } + temp_v0 = (pull_and_display_text_for_folder_a0(phi_s3) * 0x1c) + &mission_folder_setup_entries; + if (temp_v0->unk6 != 0) + { + textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk6)); + } + else + { + textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk4)); + } + if (j_text_trigger == 0) + { + temp_v1 = strlen(&sp90) + -1; + phi_v0 = &sp90 + temp_v1; + if (temp_v1 >= 0) + { +loop_10: + temp_v1_2 = *phi_v0; + if (temp_v1_2 >= 0x61) + { + *phi_v0 = (s8) (temp_v1_2 + -0x20); + } + temp_v0_2 = phi_v0 + -1; + phi_v0 = temp_v0_2; + if (temp_v0_2 >= &sp90) + { + goto loop_10; + } + } + } + string_append_from_obseg_textbank(&sp90, &asc_D_8004F4A0); + spC4 = 0; + temp_a0 = &spC8; + spC8 = 0; + sub_GAME_7F0AE98C(temp_a0, &spC4, &sp90, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + temp_a2 = (subroutine_arg0 - spC8) + 0x1d; + temp_a1 = *temp_s7 + -0x1f; + get_video2_settings_txtClipW(); + get_video2_settings_txtClipW(*temp_s7 + -0x1f, (subroutine_arg0 - spC8) + 0x1d); + phi_s4_2 = en_text_write_stuff(en_text_write_stuff(microcode_constructor_related_to_menus(phi_s4, temp_a1, temp_a2, temp_a1 + spC4, (s32) (temp_a2 + spC8), 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0xff), get_video2_settings_txtClipH(), 0, 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0x64), get_video2_settings_txtClipH(), 0, 0); + } + temp_s6 = phi_s6 + 1; + phi_s3 = phi_s3 + 5; + phi_s4 = phi_s4_2; + phi_s6 = temp_s6; + if (temp_s6 != 4) + { + goto loop_2; + } + temp_t3 = spD8 + 1; + spD8 = temp_t3; + phi_s4 = phi_s4_2; + if (temp_t3 != 5) + { + goto loop_1; + } + load_draw_selected_icon_folder_select(add_tab3_previous(phi_s4_2)); +} +#else +const char asc_D_8004F4A0[] = "\n"; +GLOBAL_ASM( +.text +glabel constructor_menu07_missionsel +/* 042F88 7F00E458 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 042F8C 7F00E45C AFBF005C */ sw $ra, 0x5c($sp) +/* 042F90 7F00E460 AFBE0058 */ sw $fp, 0x58($sp) +/* 042F94 7F00E464 AFB70054 */ sw $s7, 0x54($sp) +/* 042F98 7F00E468 AFB60050 */ sw $s6, 0x50($sp) +/* 042F9C 7F00E46C AFB5004C */ sw $s5, 0x4c($sp) +/* 042FA0 7F00E470 AFB40048 */ sw $s4, 0x48($sp) +/* 042FA4 7F00E474 AFB30044 */ sw $s3, 0x44($sp) +/* 042FA8 7F00E478 AFB20040 */ sw $s2, 0x40($sp) +/* 042FAC 7F00E47C AFB1003C */ sw $s1, 0x3c($sp) +/* 042FB0 7F00E480 AFB00038 */ sw $s0, 0x38($sp) +/* 042FB4 7F00E484 00002825 */ move $a1, $zero +/* 042FB8 7F00E488 00003025 */ move $a2, $zero +/* 042FBC 7F00E48C 0C0011B4 */ jal set_setfillcolor +/* 042FC0 7F00E490 00003825 */ move $a3, $zero +/* 042FC4 7F00E494 0C000FBE */ jal insert_generic_fillrect +/* 042FC8 7F00E498 00402025 */ move $a0, $v0 +/* 042FCC 7F00E49C 3C0EF800 */ lui $t6, 0xf800 +/* 042FD0 7F00E4A0 240FFFFF */ li $t7, -1 +/* 042FD4 7F00E4A4 AC4F0004 */ sw $t7, 4($v0) +/* 042FD8 7F00E4A8 AC4E0000 */ sw $t6, ($v0) +/* 042FDC 7F00E4AC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 042FE0 7F00E4B0 24440008 */ addiu $a0, $v0, 8 +/* 042FE4 7F00E4B4 0FC2B366 */ jal microcode_constructor +/* 042FE8 7F00E4B8 00402025 */ move $a0, $v0 +/* 042FEC 7F00E4BC 27B10090 */ addiu $s1, $sp, 0x90 +/* 042FF0 7F00E4C0 0040A025 */ move $s4, $v0 +/* 042FF4 7F00E4C4 02209025 */ move $s2, $s1 +/* 042FF8 7F00E4C8 AFA000D8 */ sw $zero, 0xd8($sp) +.L7F00E4CC: +/* 042FFC 7F00E4CC 8FB300D8 */ lw $s3, 0xd8($sp) +/* 043000 7F00E4D0 0000B025 */ move $s6, $zero +.L7F00E4D4: +/* 043004 7F00E4D4 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 043008 7F00E4D8 02602025 */ move $a0, $s3 +/* 04300C 7F00E4DC 00408025 */ move $s0, $v0 +/* 043010 7F00E4E0 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 043014 7F00E4E4 02602025 */ move $a0, $s3 +/* 043018 7F00E4E8 0440008C */ bltz $v0, .L7F00E71C +/* 04301C 7F00E4EC 3C159696 */ lui $s5, (0x96969600 >> 16) # lui $s5, 0x9696 +/* 043020 7F00E4F0 8FB900D8 */ lw $t9, 0xd8($sp) +/* 043024 7F00E4F4 3C0C8007 */ lui $t4, %hi(mission_difficulty_highlighted) +/* 043028 7F00E4F8 8D8C9784 */ lw $t4, %lo(mission_difficulty_highlighted)($t4) +/* 04302C 7F00E4FC 3C098003 */ lui $t1, %hi(cursor_xpos_table_mission_select) +/* 043030 7F00E500 3C0B8003 */ lui $t3, %hi(cursor_ypos_table_mission_select) +/* 043034 7F00E504 256BAFE4 */ addiu $t3, %lo(cursor_ypos_table_mission_select) # addiu $t3, $t3, -0x501c +/* 043038 7F00E508 2529AFD0 */ addiu $t1, %lo(cursor_xpos_table_mission_select) # addiu $t1, $t1, -0x5030 +/* 04303C 7F00E50C 00165080 */ sll $t2, $s6, 2 +/* 043040 7F00E510 00194080 */ sll $t0, $t9, 2 +/* 043044 7F00E514 36B59600 */ ori $s5, (0x96969600 & 0xFFFF) # ori $s5, $s5, 0x9600 +/* 043048 7F00E518 0109B821 */ addu $s7, $t0, $t1 +/* 04304C 7F00E51C 166C0002 */ bne $s3, $t4, .L7F00E528 +/* 043050 7F00E520 014BF021 */ addu $fp, $t2, $t3 +/* 043054 7F00E524 2415FF00 */ li $s5, -256 +.L7F00E528: +/* 043058 7F00E528 001068C0 */ sll $t5, $s0, 3 +/* 04305C 7F00E52C 01B06823 */ subu $t5, $t5, $s0 +/* 043060 7F00E530 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries) +/* 043064 7F00E534 25CEABE4 */ addiu $t6, %lo(mission_folder_setup_entries) # addiu $t6, $t6, -0x541c +/* 043068 7F00E538 000D6880 */ sll $t5, $t5, 2 +/* 04306C 7F00E53C 01AE1021 */ addu $v0, $t5, $t6 +/* 043070 7F00E540 94430006 */ lhu $v1, 6($v0) +/* 043074 7F00E544 10600008 */ beqz $v1, .L7F00E568 +/* 043078 7F00E548 00000000 */ nop +/* 04307C 7F00E54C 0FC30776 */ jal get_textptr_for_textID +/* 043080 7F00E550 00602025 */ move $a0, $v1 +/* 043084 7F00E554 02402025 */ move $a0, $s2 +/* 043088 7F00E558 0C0029DC */ jal textpointer_load_parse_something +/* 04308C 7F00E55C 00402825 */ move $a1, $v0 +/* 043090 7F00E560 10000006 */ b .L7F00E57C +/* 043094 7F00E564 00000000 */ nop +.L7F00E568: +/* 043098 7F00E568 0FC30776 */ jal get_textptr_for_textID +/* 04309C 7F00E56C 94440004 */ lhu $a0, 4($v0) +/* 0430A0 7F00E570 02402025 */ move $a0, $s2 +/* 0430A4 7F00E574 0C0029DC */ jal textpointer_load_parse_something +/* 0430A8 7F00E578 00402825 */ move $a1, $v0 +.L7F00E57C: +/* 0430AC 7F00E57C 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0430B0 7F00E580 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0430B4 7F00E584 15E0000F */ bnez $t7, .L7F00E5C4 +/* 0430B8 7F00E588 00000000 */ nop +/* 0430BC 7F00E58C 0C004E1F */ jal strlen +/* 0430C0 7F00E590 02402025 */ move $a0, $s2 +/* 0430C4 7F00E594 2443FFFF */ addiu $v1, $v0, -1 +/* 0430C8 7F00E598 0460000A */ bltz $v1, .L7F00E5C4 +/* 0430CC 7F00E59C 02431021 */ addu $v0, $s2, $v1 +/* 0430D0 7F00E5A0 90430000 */ lbu $v1, ($v0) +.L7F00E5A4: +/* 0430D4 7F00E5A4 28610061 */ slti $at, $v1, 0x61 +/* 0430D8 7F00E5A8 14200002 */ bnez $at, .L7F00E5B4 +/* 0430DC 7F00E5AC 2478FFE0 */ addiu $t8, $v1, -0x20 +/* 0430E0 7F00E5B0 A0580000 */ sb $t8, ($v0) +.L7F00E5B4: +/* 0430E4 7F00E5B4 2442FFFF */ addiu $v0, $v0, -1 +/* 0430E8 7F00E5B8 0051082B */ sltu $at, $v0, $s1 +/* 0430EC 7F00E5BC 5020FFF9 */ beql $at, $zero, .L7F00E5A4 +/* 0430F0 7F00E5C0 90430000 */ lbu $v1, ($v0) +.L7F00E5C4: +/* 0430F4 7F00E5C4 3C058005 */ lui $a1, %hi(asc_D_8004F4A0) +/* 0430F8 7F00E5C8 24A5F4A0 */ addiu $a1, %lo(asc_D_8004F4A0) # addiu $a1, $a1, -0xb60 +/* 0430FC 7F00E5CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 043100 7F00E5D0 02402025 */ move $a0, $s2 +/* 043104 7F00E5D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 043108 7F00E5D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 04310C 7F00E5DC 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 043110 7F00E5E0 AFA000C4 */ sw $zero, 0xc4($sp) +/* 043114 7F00E5E4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 043118 7F00E5E8 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 04311C 7F00E5EC 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 043120 7F00E5F0 02403025 */ move $a2, $s2 +/* 043124 7F00E5F4 AFA00014 */ sw $zero, 0x14($sp) +/* 043128 7F00E5F8 AFA000C8 */ sw $zero, 0xc8($sp) +/* 04312C 7F00E5FC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 043130 7F00E600 AFB90010 */ sw $t9, 0x10($sp) +/* 043134 7F00E604 8FA300C8 */ lw $v1, 0xc8($sp) +/* 043138 7F00E608 8FC80000 */ lw $t0, ($fp) +/* 04313C 7F00E60C 8EE50000 */ lw $a1, ($s7) +/* 043140 7F00E610 8FA900C4 */ lw $t1, 0xc4($sp) +/* 043144 7F00E614 01033023 */ subu $a2, $t0, $v1 +/* 043148 7F00E618 24C6001D */ addiu $a2, $a2, 0x1d +/* 04314C 7F00E61C 00C35021 */ addu $t2, $a2, $v1 +/* 043150 7F00E620 24A5FFE1 */ addiu $a1, $a1, -0x1f +/* 043154 7F00E624 AFA5008C */ sw $a1, 0x8c($sp) +/* 043158 7F00E628 AFAA0010 */ sw $t2, 0x10($sp) +/* 04315C 7F00E62C AFA60088 */ sw $a2, 0x88($sp) +/* 043160 7F00E630 02802025 */ move $a0, $s4 +/* 043164 7F00E634 AFA00014 */ sw $zero, 0x14($sp) +/* 043168 7F00E638 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04316C 7F00E63C 00A93821 */ addu $a3, $a1, $t1 +/* 043170 7F00E640 0C001107 */ jal get_video2_settings_txtClipW +/* 043174 7F00E644 0040A025 */ move $s4, $v0 +/* 043178 7F00E648 00028400 */ sll $s0, $v0, 0x10 +/* 04317C 7F00E64C 00105C03 */ sra $t3, $s0, 0x10 +/* 043180 7F00E650 0C00110B */ jal get_video2_settings_txtClipH +/* 043184 7F00E654 01608025 */ move $s0, $t3 +/* 043188 7F00E658 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) +/* 04318C 7F00E65C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 043190 7F00E660 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 043194 7F00E664 8D8C0EB0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 043198 7F00E668 36AE00FF */ ori $t6, $s5, 0xff +/* 04319C 7F00E66C AFAE0018 */ sw $t6, 0x18($sp) +/* 0431A0 7F00E670 02802025 */ move $a0, $s4 +/* 0431A4 7F00E674 27A5008C */ addiu $a1, $sp, 0x8c +/* 0431A8 7F00E678 27A60088 */ addiu $a2, $sp, 0x88 +/* 0431AC 7F00E67C 02403825 */ move $a3, $s2 +/* 0431B0 7F00E680 AFB0001C */ sw $s0, 0x1c($sp) +/* 0431B4 7F00E684 AFA20020 */ sw $v0, 0x20($sp) +/* 0431B8 7F00E688 AFA00024 */ sw $zero, 0x24($sp) +/* 0431BC 7F00E68C AFA00028 */ sw $zero, 0x28($sp) +/* 0431C0 7F00E690 AFAD0014 */ sw $t5, 0x14($sp) +/* 0431C4 7F00E694 0FC2B6AF */ jal en_text_write_stuff +/* 0431C8 7F00E698 AFAC0010 */ sw $t4, 0x10($sp) +/* 0431CC 7F00E69C 8FA300C8 */ lw $v1, 0xc8($sp) +/* 0431D0 7F00E6A0 8FCF0000 */ lw $t7, ($fp) +/* 0431D4 7F00E6A4 8EE50000 */ lw $a1, ($s7) +/* 0431D8 7F00E6A8 0040A025 */ move $s4, $v0 +/* 0431DC 7F00E6AC 01E33023 */ subu $a2, $t7, $v1 +/* 0431E0 7F00E6B0 24C6001D */ addiu $a2, $a2, 0x1d +/* 0431E4 7F00E6B4 24A5FFE1 */ addiu $a1, $a1, -0x1f +/* 0431E8 7F00E6B8 AFA5008C */ sw $a1, 0x8c($sp) +/* 0431EC 7F00E6BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0431F0 7F00E6C0 AFA60088 */ sw $a2, 0x88($sp) +/* 0431F4 7F00E6C4 00028400 */ sll $s0, $v0, 0x10 +/* 0431F8 7F00E6C8 0010C403 */ sra $t8, $s0, 0x10 +/* 0431FC 7F00E6CC 0C00110B */ jal get_video2_settings_txtClipH +/* 043200 7F00E6D0 03008025 */ move $s0, $t8 +/* 043204 7F00E6D4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 043208 7F00E6D8 3C088004 */ lui $t0, %hi(ptrFirstFontTableSmall) +/* 04320C 7F00E6DC 8D080EAC */ lw $t0, %lo(ptrFirstFontTableSmall)($t0) +/* 043210 7F00E6E0 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 043214 7F00E6E4 36A90064 */ ori $t1, $s5, 0x64 +/* 043218 7F00E6E8 AFA90018 */ sw $t1, 0x18($sp) +/* 04321C 7F00E6EC 02802025 */ move $a0, $s4 +/* 043220 7F00E6F0 27A5008C */ addiu $a1, $sp, 0x8c +/* 043224 7F00E6F4 27A60088 */ addiu $a2, $sp, 0x88 +/* 043228 7F00E6F8 02403825 */ move $a3, $s2 +/* 04322C 7F00E6FC AFB0001C */ sw $s0, 0x1c($sp) +/* 043230 7F00E700 AFA20020 */ sw $v0, 0x20($sp) +/* 043234 7F00E704 AFA00024 */ sw $zero, 0x24($sp) +/* 043238 7F00E708 AFA00028 */ sw $zero, 0x28($sp) +/* 04323C 7F00E70C AFA80014 */ sw $t0, 0x14($sp) +/* 043240 7F00E710 0FC2B6AF */ jal en_text_write_stuff +/* 043244 7F00E714 AFB90010 */ sw $t9, 0x10($sp) +/* 043248 7F00E718 0040A025 */ move $s4, $v0 +.L7F00E71C: +/* 04324C 7F00E71C 26D60001 */ addiu $s6, $s6, 1 +/* 043250 7F00E720 24010004 */ li $at, 4 +/* 043254 7F00E724 16C1FF6B */ bne $s6, $at, .L7F00E4D4 +/* 043258 7F00E728 26730005 */ addiu $s3, $s3, 5 +/* 04325C 7F00E72C 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 043260 7F00E730 24010005 */ li $at, 5 +/* 043264 7F00E734 254B0001 */ addiu $t3, $t2, 1 +/* 043268 7F00E738 1561FF64 */ bne $t3, $at, .L7F00E4CC +/* 04326C 7F00E73C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 043270 7F00E740 0FC0288E */ jal add_tab3_previous +/* 043274 7F00E744 02802025 */ move $a0, $s4 +/* 043278 7F00E748 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04327C 7F00E74C 00402025 */ move $a0, $v0 +/* 043280 7F00E750 8FBF005C */ lw $ra, 0x5c($sp) +/* 043284 7F00E754 8FB00038 */ lw $s0, 0x38($sp) +/* 043288 7F00E758 8FB1003C */ lw $s1, 0x3c($sp) +/* 04328C 7F00E75C 8FB20040 */ lw $s2, 0x40($sp) +/* 043290 7F00E760 8FB30044 */ lw $s3, 0x44($sp) +/* 043294 7F00E764 8FB40048 */ lw $s4, 0x48($sp) +/* 043298 7F00E768 8FB5004C */ lw $s5, 0x4c($sp) +/* 04329C 7F00E76C 8FB60050 */ lw $s6, 0x50($sp) +/* 0432A0 7F00E770 8FB70054 */ lw $s7, 0x54($sp) +/* 0432A4 7F00E774 8FBE0058 */ lw $fp, 0x58($sp) +/* 0432A8 7F00E778 03E00008 */ jr $ra +/* 0432AC 7F00E77C 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + +void init_menu08_difficultyselect(void) +{ + selected_difficulty = DIFFICULTY_MULTI; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + load_walletbond(); +} + +void update_menu08_difficulty(void) { + return; +} + + + + + +#ifdef NONMATCHING +void interface_menu08_difficulty(void) +{ + s32 sp1C; + + sp1C = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); + setvideo_far(0x42700000); + video_related_21(D_80051A4C); + set_page_height(0x42c80000, D_80051A50); + set_video2_settings_offset_24(0); + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 4, 1); + tab_3_highlight = 0; + mission_difficulty_highlighted = -1; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if ((sp1C >= 3) && (D_80051A54 <= cursor_v_pos)) + { + mission_difficulty_highlighted = 3; + } + else + { + if ((sp1C >= 2) && (243.0f <= cursor_v_pos)) + { + mission_difficulty_highlighted = 2; + } + else + { + if ((sp1C > 0) && (211.0f <= cursor_v_pos)) + { + mission_difficulty_highlighted = 1; + } + else + { + mission_difficulty_highlighted = 0; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + } + else + { + if (mission_difficulty_highlighted >= 0) + { + selected_difficulty = (s32) mission_difficulty_highlighted; + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0x4d, 0, 1); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000, 1) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + } + } + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + if (selected_difficulty != DIFFICULTY_007) + { + set_menu_to_mode(MENU_BRIEFING, 0); + set_cursor_pos_tab2(); + return; + } + set_menu_to_mode(MENU_007_OPTIONS, 0); + set_cursor_pos_tab2(); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo((0x80030000 + (briefingpage * 0x1c))->unk-5408); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A4C +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A50 +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A54 +.word 0x43898000 /* 275.0;*/ +.text +glabel interface_menu08_difficulty +/* 0432F0 7F00E7C0 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0432F4 7F00E7C4 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0432F8 7F00E7C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0432FC 7F00E7CC 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+0x14) +/* 043300 7F00E7D0 000E78C0 */ sll $t7, $t6, 3 +/* 043304 7F00E7D4 01EE7823 */ subu $t7, $t7, $t6 +/* 043308 7F00E7D8 000F7880 */ sll $t7, $t7, 2 +/* 04330C 7F00E7DC AFBF0014 */ sw $ra, 0x14($sp) +/* 043310 7F00E7E0 008F2021 */ addu $a0, $a0, $t7 +/* 043314 7F00E7E4 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 043318 7F00E7E8 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+0x14)($a0) +/* 04331C 7F00E7EC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 043320 7F00E7F0 44816000 */ mtc1 $at, $f12 +/* 043324 7F00E7F4 0C001151 */ jal setvideo_far +/* 043328 7F00E7F8 AFA2001C */ sw $v0, 0x1c($sp) +/* 04332C 7F00E7FC 3C018005 */ lui $at, %hi(D_80051A4C) +/* 043330 7F00E800 0C001164 */ jal video_related_21 +/* 043334 7F00E804 C42C1A4C */ lwc1 $f12, %lo(D_80051A4C)($at) +/* 043338 7F00E808 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04333C 7F00E80C 44816000 */ mtc1 $at, $f12 +/* 043340 7F00E810 3C018005 */ lui $at, %hi(D_80051A50) +/* 043344 7F00E814 0C001194 */ jal set_page_height +/* 043348 7F00E818 C42E1A50 */ lwc1 $f14, %lo(D_80051A50)($at) +/* 04334C 7F00E81C 0C00114D */ jal set_video2_settings_offset_24 +/* 043350 7F00E820 00002025 */ move $a0, $zero +/* 043354 7F00E824 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043358 7F00E828 0FC02DC9 */ jal disable_all_switches +/* 04335C 7F00E82C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043360 7F00E830 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043364 7F00E834 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043368 7F00E838 00002825 */ move $a1, $zero +/* 04336C 7F00E83C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043370 7F00E840 24060001 */ li $a2, 1 +/* 043374 7F00E844 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043378 7F00E848 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04337C 7F00E84C 24050001 */ li $a1, 1 +/* 043380 7F00E850 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043384 7F00E854 24060001 */ li $a2, 1 +/* 043388 7F00E858 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04338C 7F00E85C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043390 7F00E860 24050003 */ li $a1, 3 +/* 043394 7F00E864 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043398 7F00E868 24060001 */ li $a2, 1 +/* 04339C 7F00E86C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0433A0 7F00E870 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0433A4 7F00E874 24050004 */ li $a1, 4 +/* 0433A8 7F00E878 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0433AC 7F00E87C 24060001 */ li $a2, 1 +/* 0433B0 7F00E880 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 0433B4 7F00E884 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0433B8 7F00E888 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0433BC 7F00E88C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 0433C0 7F00E890 2418FFFF */ li $t8, -1 +/* 0433C4 7F00E894 0FC028E7 */ jal isontab3 +/* 0433C8 7F00E898 AC780000 */ sw $t8, ($v1) +/* 0433CC 7F00E89C 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 0433D0 7F00E8A0 10400005 */ beqz $v0, .L7F00E8B8 +/* 0433D4 7F00E8A4 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0433D8 7F00E8A8 24190001 */ li $t9, 1 +/* 0433DC 7F00E8AC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0433E0 7F00E8B0 1000002A */ b .L7F00E95C +/* 0433E4 7F00E8B4 AC39A8E4 */ sw $t9, %lo(tab_3_highlight)($at) +.L7F00E8B8: +/* 0433E8 7F00E8B8 8FA4001C */ lw $a0, 0x1c($sp) +/* 0433EC 7F00E8BC 3C028003 */ lui $v0, %hi(cursor_v_pos) +/* 0433F0 7F00E8C0 2442A90C */ addiu $v0, %lo(cursor_v_pos) # addiu $v0, $v0, -0x56f4 +/* 0433F4 7F00E8C4 28810003 */ slti $at, $a0, 3 +/* 0433F8 7F00E8C8 1420000A */ bnez $at, .L7F00E8F4 +/* 0433FC 7F00E8CC 3C018005 */ lui $at, %hi(D_80051A54) +/* 043400 7F00E8D0 C4261A54 */ lwc1 $f6, %lo(D_80051A54)($at) +/* 043404 7F00E8D4 C4440000 */ lwc1 $f4, ($v0) +/* 043408 7F00E8D8 24080003 */ li $t0, 3 +/* 04340C 7F00E8DC 4604303E */ c.le.s $f6, $f4 +/* 043410 7F00E8E0 00000000 */ nop +/* 043414 7F00E8E4 45000003 */ bc1f .L7F00E8F4 +/* 043418 7F00E8E8 00000000 */ nop +/* 04341C 7F00E8EC 1000001B */ b .L7F00E95C +/* 043420 7F00E8F0 AC680000 */ sw $t0, ($v1) +.L7F00E8F4: +/* 043424 7F00E8F4 3C028003 */ lui $v0, %hi(cursor_v_pos) +/* 043428 7F00E8F8 28810002 */ slti $at, $a0, 2 +/* 04342C 7F00E8FC 1420000B */ bnez $at, .L7F00E92C +/* 043430 7F00E900 2442A90C */ addiu $v0, %lo(cursor_v_pos) # addiu $v0, $v0, -0x56f4 +/* 043434 7F00E904 3C014373 */ li $at, 0x43730000 # 243.000000 +/* 043438 7F00E908 44815000 */ mtc1 $at, $f10 +/* 04343C 7F00E90C C4480000 */ lwc1 $f8, ($v0) +/* 043440 7F00E910 24090002 */ li $t1, 2 +/* 043444 7F00E914 4608503E */ c.le.s $f10, $f8 +/* 043448 7F00E918 00000000 */ nop +/* 04344C 7F00E91C 45000003 */ bc1f .L7F00E92C +/* 043450 7F00E920 00000000 */ nop +/* 043454 7F00E924 1000000D */ b .L7F00E95C +/* 043458 7F00E928 AC690000 */ sw $t1, ($v1) +.L7F00E92C: +/* 04345C 7F00E92C 1880000A */ blez $a0, .L7F00E958 +/* 043460 7F00E930 3C014353 */ li $at, 0x43530000 # 211.000000 +/* 043464 7F00E934 C4500000 */ lwc1 $f16, ($v0) +/* 043468 7F00E938 44819000 */ mtc1 $at, $f18 +/* 04346C 7F00E93C 24070001 */ li $a3, 1 +/* 043470 7F00E940 4610903E */ c.le.s $f18, $f16 +/* 043474 7F00E944 00000000 */ nop +/* 043478 7F00E948 45020004 */ bc1fl .L7F00E95C +/* 04347C 7F00E94C AC600000 */ sw $zero, ($v1) +/* 043480 7F00E950 10000002 */ b .L7F00E95C +/* 043484 7F00E954 AC670000 */ sw $a3, ($v1) +.L7F00E958: +/* 043488 7F00E958 AC600000 */ sw $zero, ($v1) +.L7F00E95C: +/* 04348C 7F00E95C 00002025 */ move $a0, $zero +/* 043490 7F00E960 0C0030EB */ jal get_controller_buttons_pressed +/* 043494 7F00E964 3405B000 */ li $a1, 45056 +/* 043498 7F00E968 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 04349C 7F00E96C 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0434A0 7F00E970 1040001A */ beqz $v0, .L7F00E9DC +/* 0434A4 7F00E974 24070001 */ li $a3, 1 +/* 0434A8 7F00E978 3C0A8003 */ lui $t2, %hi(tab_3_highlight) +/* 0434AC 7F00E97C 8D4AA8E4 */ lw $t2, %lo(tab_3_highlight)($t2) +/* 0434B0 7F00E980 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0434B4 7F00E984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434B8 7F00E988 11400007 */ beqz $t2, .L7F00E9A8 +/* 0434BC 7F00E98C 240500C7 */ li $a1, 199 +/* 0434C0 7F00E990 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) +/* 0434C4 7F00E994 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434C8 7F00E998 0C002382 */ jal play_sfx_a1 +/* 0434CC 7F00E99C 00003025 */ move $a2, $zero +/* 0434D0 7F00E9A0 1000001A */ b .L7F00EA0C +/* 0434D4 7F00E9A4 00000000 */ nop +.L7F00E9A8: +/* 0434D8 7F00E9A8 8C620000 */ lw $v0, ($v1) +/* 0434DC 7F00E9AC 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0434E0 7F00E9B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434E4 7F00E9B4 04400015 */ bltz $v0, .L7F00EA0C +/* 0434E8 7F00E9B8 2405004D */ li $a1, 77 +/* 0434EC 7F00E9BC AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) +/* 0434F0 7F00E9C0 3C018003 */ lui $at, %hi(tab_2_selected) +/* 0434F4 7F00E9C4 AC27A8D4 */ sw $a3, %lo(tab_2_selected)($at) +/* 0434F8 7F00E9C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434FC 7F00E9CC 0C002382 */ jal play_sfx_a1 +/* 043500 7F00E9D0 00003025 */ move $a2, $zero +/* 043504 7F00E9D4 1000000D */ b .L7F00EA0C +/* 043508 7F00E9D8 00000000 */ nop +.L7F00E9DC: +/* 04350C 7F00E9DC 00002025 */ move $a0, $zero +/* 043510 7F00E9E0 0C0030EB */ jal get_controller_buttons_pressed +/* 043514 7F00E9E4 24054000 */ li $a1, 16384 +/* 043518 7F00E9E8 10400008 */ beqz $v0, .L7F00EA0C +/* 04351C 7F00E9EC 24070001 */ li $a3, 1 +/* 043520 7F00E9F0 3C018003 */ lui $at, %hi(tab_3_selected) +/* 043524 7F00E9F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 043528 7F00E9F8 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) +/* 04352C 7F00E9FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 043530 7F00EA00 240500C7 */ li $a1, 199 +/* 043534 7F00EA04 0C002382 */ jal play_sfx_a1 +/* 043538 7F00EA08 00003025 */ move $a2, $zero +.L7F00EA0C: +/* 04353C 7F00EA0C 0FC026E1 */ jal menu_control_stick_tracking +/* 043540 7F00EA10 00000000 */ nop +/* 043544 7F00EA14 3C0B8003 */ lui $t3, %hi(tab_2_selected) +/* 043548 7F00EA18 8D6BA8D4 */ lw $t3, %lo(tab_2_selected)($t3) +/* 04354C 7F00EA1C 3C0C8003 */ lui $t4, %hi(selected_difficulty) +/* 043550 7F00EA20 3C0D8003 */ lui $t5, %hi(tab_3_selected) +/* 043554 7F00EA24 11600012 */ beqz $t3, .L7F00EA70 +/* 043558 7F00EA28 00000000 */ nop +/* 04355C 7F00EA2C 8D8CA8FC */ lw $t4, %lo(selected_difficulty)($t4) +/* 043560 7F00EA30 24010003 */ li $at, 3 +/* 043564 7F00EA34 00002825 */ move $a1, $zero +/* 043568 7F00EA38 15810007 */ bne $t4, $at, .L7F00EA58 +/* 04356C 7F00EA3C 2404000A */ li $a0, 10 +/* 043570 7F00EA40 0FC06975 */ jal set_menu_to_mode +/* 043574 7F00EA44 24040009 */ li $a0, 9 +/* 043578 7F00EA48 0FC028FC */ jal set_cursor_pos_tab2 +/* 04357C 7F00EA4C 00000000 */ nop +/* 043580 7F00EA50 10000017 */ b .L7F00EAB0 +/* 043584 7F00EA54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EA58: +/* 043588 7F00EA58 0FC06975 */ jal set_menu_to_mode +/* 04358C 7F00EA5C 00002825 */ move $a1, $zero +/* 043590 7F00EA60 0FC028FC */ jal set_cursor_pos_tab2 +/* 043594 7F00EA64 00000000 */ nop +/* 043598 7F00EA68 10000011 */ b .L7F00EAB0 +/* 04359C 7F00EA6C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EA70: +/* 0435A0 7F00EA70 8DADA8D8 */ lw $t5, %lo(tab_3_selected)($t5) +/* 0435A4 7F00EA74 24040007 */ li $a0, 7 +/* 0435A8 7F00EA78 51A0000D */ beql $t5, $zero, .L7F00EAB0 +/* 0435AC 7F00EA7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0435B0 7F00EA80 0FC06975 */ jal set_menu_to_mode +/* 0435B4 7F00EA84 00002825 */ move $a1, $zero +/* 0435B8 7F00EA88 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0435BC 7F00EA8C 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0435C0 7F00EA90 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 0435C4 7F00EA94 000E78C0 */ sll $t7, $t6, 3 +/* 0435C8 7F00EA98 01EE7823 */ subu $t7, $t7, $t6 +/* 0435CC 7F00EA9C 000F7880 */ sll $t7, $t7, 2 +/* 0435D0 7F00EAA0 008F2021 */ addu $a0, $a0, $t7 +/* 0435D4 7F00EAA4 0FC038F8 */ jal set_cursor_to_stage_solo +/* 0435D8 7F00EAA8 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 0435DC 7F00EAAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EAB0: +/* 0435E0 7F00EAB0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0435E4 7F00EAB4 03E00008 */ jr $ra +/* 0435E8 7F00EAB8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void print_current_solo_briefing_stage_name(s32 arg0, s32 arg1) +{ + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + void *sp40; + s32 temp_ret; + void *temp_v1; + + if (selected_difficulty >= DIFFICULTY_AGENT) + { + textpointer_load_parse_something(arg1, get_ptr_difficulty_name(selected_difficulty, selected_difficulty)); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x20))); + sp54 = 0x37; + sp50 = 0x57; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret = get_chapter_briefing_entry(briefingpage); + sp4C = temp_ret; + if (temp_ret >= 0) + { + textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x21))); + temp_v1 = (sp4C * 0x1c) + &mission_folder_setup_entries; + sp40 = temp_v1; + string_append_from_obseg_textbank(arg1, *temp_v1); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4A4); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(sp40->unk4)); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4A8); + sp54 = 0x37; + sp50 = 0x67; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x22))); + string_append_from_obseg_textbank(arg1, *(&mission_folder_setup_entries + (briefingpage * 0x1c))); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4AC); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(*(&mission_folder_setup_entries + (briefingpage * 0x1c)))); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4B0); + sp54 = 0x37; + sp50 = 0x77; + sp44 = get_video2_settings_txtClipW(); + write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); +} +#else +const char asc_D_8004F4A4[] = ": "; +const char asc_D_8004F4A8[] = "\n"; +const char asc_D_8004F4AC[] = ": "; +const char asc_D_8004F4B0[] = "\n"; +GLOBAL_ASM( +.text +glabel print_current_solo_briefing_stage_name +/* 0435EC 7F00EABC 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 0435F0 7F00EAC0 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 0435F4 7F00EAC4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0435F8 7F00EAC8 AFB00038 */ sw $s0, 0x38($sp) +/* 0435FC 7F00EACC 00A08025 */ move $s0, $a1 +/* 043600 7F00EAD0 AFBF003C */ sw $ra, 0x3c($sp) +/* 043604 7F00EAD4 04C00025 */ bltz $a2, .L7F00EB6C +/* 043608 7F00EAD8 AFA40058 */ sw $a0, 0x58($sp) +/* 04360C 7F00EADC 0FC030E1 */ jal get_ptr_difficulty_name +/* 043610 7F00EAE0 00C02025 */ move $a0, $a2 +/* 043614 7F00EAE4 02002025 */ move $a0, $s0 +/* 043618 7F00EAE8 0C0029DC */ jal textpointer_load_parse_something +/* 04361C 7F00EAEC 00402825 */ move $a1, $v0 +/* 043620 7F00EAF0 0FC30776 */ jal get_textptr_for_textID +/* 043624 7F00EAF4 34049C20 */ li $a0, 39968 +/* 043628 7F00EAF8 02002025 */ move $a0, $s0 +/* 04362C 7F00EAFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 043630 7F00EB00 00402825 */ move $a1, $v0 +/* 043634 7F00EB04 240E0037 */ li $t6, 55 +/* 043638 7F00EB08 240F0057 */ li $t7, 87 +/* 04363C 7F00EB0C AFAE0054 */ sw $t6, 0x54($sp) +/* 043640 7F00EB10 0C001107 */ jal get_video2_settings_txtClipW +/* 043644 7F00EB14 AFAF0050 */ sw $t7, 0x50($sp) +/* 043648 7F00EB18 0C00110B */ jal get_video2_settings_txtClipH +/* 04364C 7F00EB1C A7A20044 */ sh $v0, 0x44($sp) +/* 043650 7F00EB20 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 043654 7F00EB24 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 043658 7F00EB28 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04365C 7F00EB2C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043660 7F00EB30 87A90044 */ lh $t1, 0x44($sp) +/* 043664 7F00EB34 240800FF */ li $t0, 255 +/* 043668 7F00EB38 AFA80018 */ sw $t0, 0x18($sp) +/* 04366C 7F00EB3C 8FA40058 */ lw $a0, 0x58($sp) +/* 043670 7F00EB40 27A50054 */ addiu $a1, $sp, 0x54 +/* 043674 7F00EB44 27A60050 */ addiu $a2, $sp, 0x50 +/* 043678 7F00EB48 02003825 */ move $a3, $s0 +/* 04367C 7F00EB4C AFA20020 */ sw $v0, 0x20($sp) +/* 043680 7F00EB50 AFA00024 */ sw $zero, 0x24($sp) +/* 043684 7F00EB54 AFA00028 */ sw $zero, 0x28($sp) +/* 043688 7F00EB58 AFB90014 */ sw $t9, 0x14($sp) +/* 04368C 7F00EB5C AFB80010 */ sw $t8, 0x10($sp) +/* 043690 7F00EB60 0FC025D8 */ jal write_text_at_abs_coord +/* 043694 7F00EB64 AFA9001C */ sw $t1, 0x1c($sp) +/* 043698 7F00EB68 AFA20058 */ sw $v0, 0x58($sp) +.L7F00EB6C: +/* 04369C 7F00EB6C 3C048003 */ lui $a0, %hi(briefingpage) +/* 0436A0 7F00EB70 0FC02EC7 */ jal get_chapter_briefing_entry +/* 0436A4 7F00EB74 8C84A8F8 */ lw $a0, %lo(briefingpage)($a0) +/* 0436A8 7F00EB78 04400039 */ bltz $v0, .L7F00EC60 +/* 0436AC 7F00EB7C AFA2004C */ sw $v0, 0x4c($sp) +/* 0436B0 7F00EB80 0FC30776 */ jal get_textptr_for_textID +/* 0436B4 7F00EB84 34049C21 */ li $a0, 39969 +/* 0436B8 7F00EB88 02002025 */ move $a0, $s0 +/* 0436BC 7F00EB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0436C0 7F00EB90 00402825 */ move $a1, $v0 +/* 0436C4 7F00EB94 8FAA004C */ lw $t2, 0x4c($sp) +/* 0436C8 7F00EB98 3C0C8003 */ lui $t4, %hi(mission_folder_setup_entries) +/* 0436CC 7F00EB9C 258CABE4 */ addiu $t4, %lo(mission_folder_setup_entries) # addiu $t4, $t4, -0x541c +/* 0436D0 7F00EBA0 000A58C0 */ sll $t3, $t2, 3 +/* 0436D4 7F00EBA4 016A5823 */ subu $t3, $t3, $t2 +/* 0436D8 7F00EBA8 000B5880 */ sll $t3, $t3, 2 +/* 0436DC 7F00EBAC 016C1821 */ addu $v1, $t3, $t4 +/* 0436E0 7F00EBB0 8C650000 */ lw $a1, ($v1) +/* 0436E4 7F00EBB4 AFA30040 */ sw $v1, 0x40($sp) +/* 0436E8 7F00EBB8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436EC 7F00EBBC 02002025 */ move $a0, $s0 +/* 0436F0 7F00EBC0 3C058005 */ lui $a1, %hi(asc_D_8004F4A4) +/* 0436F4 7F00EBC4 24A5F4A4 */ addiu $a1, %lo(asc_D_8004F4A4) # addiu $a1, $a1, -0xb5c +/* 0436F8 7F00EBC8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436FC 7F00EBCC 02002025 */ move $a0, $s0 +/* 043700 7F00EBD0 8FAD0040 */ lw $t5, 0x40($sp) +/* 043704 7F00EBD4 0FC30776 */ jal get_textptr_for_textID +/* 043708 7F00EBD8 95A40004 */ lhu $a0, 4($t5) +/* 04370C 7F00EBDC 02002025 */ move $a0, $s0 +/* 043710 7F00EBE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043714 7F00EBE4 00402825 */ move $a1, $v0 +/* 043718 7F00EBE8 3C058005 */ lui $a1, %hi(asc_D_8004F4A8) +/* 04371C 7F00EBEC 24A5F4A8 */ addiu $a1, %lo(asc_D_8004F4A8) # addiu $a1, $a1, -0xb58 +/* 043720 7F00EBF0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043724 7F00EBF4 02002025 */ move $a0, $s0 +/* 043728 7F00EBF8 240E0037 */ li $t6, 55 +/* 04372C 7F00EBFC 240F0067 */ li $t7, 103 +/* 043730 7F00EC00 AFAE0054 */ sw $t6, 0x54($sp) +/* 043734 7F00EC04 0C001107 */ jal get_video2_settings_txtClipW +/* 043738 7F00EC08 AFAF0050 */ sw $t7, 0x50($sp) +/* 04373C 7F00EC0C 0C00110B */ jal get_video2_settings_txtClipH +/* 043740 7F00EC10 A7A20044 */ sh $v0, 0x44($sp) +/* 043744 7F00EC14 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 043748 7F00EC18 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04374C 7F00EC1C 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 043750 7F00EC20 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043754 7F00EC24 87A90044 */ lh $t1, 0x44($sp) +/* 043758 7F00EC28 240800FF */ li $t0, 255 +/* 04375C 7F00EC2C AFA80018 */ sw $t0, 0x18($sp) +/* 043760 7F00EC30 8FA40058 */ lw $a0, 0x58($sp) +/* 043764 7F00EC34 27A50054 */ addiu $a1, $sp, 0x54 +/* 043768 7F00EC38 27A60050 */ addiu $a2, $sp, 0x50 +/* 04376C 7F00EC3C 02003825 */ move $a3, $s0 +/* 043770 7F00EC40 AFA20020 */ sw $v0, 0x20($sp) +/* 043774 7F00EC44 AFA00024 */ sw $zero, 0x24($sp) +/* 043778 7F00EC48 AFA00028 */ sw $zero, 0x28($sp) +/* 04377C 7F00EC4C AFB90014 */ sw $t9, 0x14($sp) +/* 043780 7F00EC50 AFB80010 */ sw $t8, 0x10($sp) +/* 043784 7F00EC54 0FC025D8 */ jal write_text_at_abs_coord +/* 043788 7F00EC58 AFA9001C */ sw $t1, 0x1c($sp) +/* 04378C 7F00EC5C AFA20058 */ sw $v0, 0x58($sp) +.L7F00EC60: +/* 043790 7F00EC60 0FC30776 */ jal get_textptr_for_textID +/* 043794 7F00EC64 34049C22 */ li $a0, 39970 +/* 043798 7F00EC68 02002025 */ move $a0, $s0 +/* 04379C 7F00EC6C 0C0029DC */ jal textpointer_load_parse_something +/* 0437A0 7F00EC70 00402825 */ move $a1, $v0 +/* 0437A4 7F00EC74 3C0A8003 */ lui $t2, %hi(briefingpage) +/* 0437A8 7F00EC78 8D4AA8F8 */ lw $t2, %lo(briefingpage)($t2) +/* 0437AC 7F00EC7C 3C058003 */ lui $a1, %hi(mission_folder_setup_entries) +/* 0437B0 7F00EC80 02002025 */ move $a0, $s0 +/* 0437B4 7F00EC84 000A58C0 */ sll $t3, $t2, 3 +/* 0437B8 7F00EC88 016A5823 */ subu $t3, $t3, $t2 +/* 0437BC 7F00EC8C 000B5880 */ sll $t3, $t3, 2 +/* 0437C0 7F00EC90 00AB2821 */ addu $a1, $a1, $t3 +/* 0437C4 7F00EC94 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437C8 7F00EC98 8CA5ABE4 */ lw $a1, %lo(mission_folder_setup_entries)($a1) +/* 0437CC 7F00EC9C 3C058005 */ lui $a1, %hi(asc_D_8004F4AC) +/* 0437D0 7F00ECA0 24A5F4AC */ addiu $a1, %lo(asc_D_8004F4AC) # addiu $a1, $a1, -0xb54 +/* 0437D4 7F00ECA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437D8 7F00ECA8 02002025 */ move $a0, $s0 +/* 0437DC 7F00ECAC 3C0C8003 */ lui $t4, %hi(briefingpage) +/* 0437E0 7F00ECB0 8D8CA8F8 */ lw $t4, %lo(briefingpage)($t4) +/* 0437E4 7F00ECB4 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+0x4) +/* 0437E8 7F00ECB8 000C68C0 */ sll $t5, $t4, 3 +/* 0437EC 7F00ECBC 01AC6823 */ subu $t5, $t5, $t4 +/* 0437F0 7F00ECC0 000D6880 */ sll $t5, $t5, 2 +/* 0437F4 7F00ECC4 008D2021 */ addu $a0, $a0, $t5 +/* 0437F8 7F00ECC8 0FC30776 */ jal get_textptr_for_textID +/* 0437FC 7F00ECCC 9484ABE8 */ lhu $a0, %lo(mission_folder_setup_entries+0x4)($a0) +/* 043800 7F00ECD0 02002025 */ move $a0, $s0 +/* 043804 7F00ECD4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043808 7F00ECD8 00402825 */ move $a1, $v0 +/* 04380C 7F00ECDC 3C058005 */ lui $a1, %hi(asc_D_8004F4B0) +/* 043810 7F00ECE0 24A5F4B0 */ addiu $a1, %lo(asc_D_8004F4B0) # addiu $a1, $a1, -0xb50 +/* 043814 7F00ECE4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043818 7F00ECE8 02002025 */ move $a0, $s0 +/* 04381C 7F00ECEC 240E0037 */ li $t6, 55 +/* 043820 7F00ECF0 240F0077 */ li $t7, 119 +/* 043824 7F00ECF4 AFAE0054 */ sw $t6, 0x54($sp) +/* 043828 7F00ECF8 0C001107 */ jal get_video2_settings_txtClipW +/* 04382C 7F00ECFC AFAF0050 */ sw $t7, 0x50($sp) +/* 043830 7F00ED00 0C00110B */ jal get_video2_settings_txtClipH +/* 043834 7F00ED04 A7A20044 */ sh $v0, 0x44($sp) +/* 043838 7F00ED08 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04383C 7F00ED0C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 043840 7F00ED10 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 043844 7F00ED14 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043848 7F00ED18 87A90044 */ lh $t1, 0x44($sp) +/* 04384C 7F00ED1C 240800FF */ li $t0, 255 +/* 043850 7F00ED20 AFA80018 */ sw $t0, 0x18($sp) +/* 043854 7F00ED24 8FA40058 */ lw $a0, 0x58($sp) +/* 043858 7F00ED28 27A50054 */ addiu $a1, $sp, 0x54 +/* 04385C 7F00ED2C 27A60050 */ addiu $a2, $sp, 0x50 +/* 043860 7F00ED30 02003825 */ move $a3, $s0 +/* 043864 7F00ED34 AFA20020 */ sw $v0, 0x20($sp) +/* 043868 7F00ED38 AFA00024 */ sw $zero, 0x24($sp) +/* 04386C 7F00ED3C AFA00028 */ sw $zero, 0x28($sp) +/* 043870 7F00ED40 AFB90014 */ sw $t9, 0x14($sp) +/* 043874 7F00ED44 AFB80010 */ sw $t8, 0x10($sp) +/* 043878 7F00ED48 0FC025D8 */ jal write_text_at_abs_coord +/* 04387C 7F00ED4C AFA9001C */ sw $t1, 0x1c($sp) +/* 043880 7F00ED50 8FBF003C */ lw $ra, 0x3c($sp) +/* 043884 7F00ED54 8FB00038 */ lw $s0, 0x38($sp) +/* 043888 7F00ED58 27BD0058 */ addiu $sp, $sp, 0x58 +/* 04388C 7F00ED5C 03E00008 */ jr $ra +/* 043890 7F00ED60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_cursor_pos_difficulty(s32 arg0) +{ + cursor_h_pos = 106.0f; + cursor_v_pos = (f32) ((arg0 * 0x1e) + 0xba); +} +#else +GLOBAL_ASM( +.text +glabel set_cursor_pos_difficulty +/* 043894 7F00ED64 00047100 */ sll $t6, $a0, 4 +/* 043898 7F00ED68 01C47023 */ subu $t6, $t6, $a0 +/* 04389C 7F00ED6C 000E7040 */ sll $t6, $t6, 1 +/* 0438A0 7F00ED70 25CF00BA */ addiu $t7, $t6, 0xba +/* 0438A4 7F00ED74 448F3000 */ mtc1 $t7, $f6 +/* 0438A8 7F00ED78 3C0142D4 */ li $at, 0x42D40000 # 106.000000 +/* 0438AC 7F00ED7C 44812000 */ mtc1 $at, $f4 +/* 0438B0 7F00ED80 46803220 */ cvt.s.w $f8, $f6 +/* 0438B4 7F00ED84 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0438B8 7F00ED88 E424A908 */ swc1 $f4, %lo(cursor_h_pos)($at) +/* 0438BC 7F00ED8C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 0438C0 7F00ED90 03E00008 */ jr $ra +/* 0438C4 7F00ED94 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu08_difficulty(s32 arg0) +{ + s32 spC68; + s32 spC60; + s32 spC5C; + s32 spA4; + s32 sp9C; + s32 sp98; + f32 sp94; + f32 sp90; + f32 sp8C; + f32 sp88; + f32 temp_f16; + f32 temp_f8; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_v0; + s32 temp_v0_2; + s32 temp_v0_3; + s32 temp_v0_4; + s32 temp_v1; + void *temp_s0; + void *temp_t8; + void *temp_t9; + void *phi_t9; + void *phi_t8; + s32 phi_v0; + s32 phi_s1; + void *phi_s2; + s32 phi_v0_2; + void *phi_s2_2; + s32 phi_s1_2; + f32 phi_f16; + f32 phi_f8; + void *phi_s2_3; + + spC68 = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); + temp_ret = set_setfillcolor(arg0, 0, 0, 0); + arg0 = temp_ret; + temp_v0 = temp_ret; + temp_ret_2 = insert_generic_fillrect(temp_v0); + arg0 = temp_ret_2; + temp_v0_2 = temp_ret_2; + temp_ret_3 = sub_GAME_7F00D5E8(temp_v0_2); + arg0 = temp_ret_3; + temp_v0_3 = temp_ret_3; + phi_t9 = &asc_D_8004F4B4; + phi_t8 = &spA4; +loop_1: + temp_t9 = phi_t9 + 0xc; + temp_t8 = phi_t8 + 0xc; + temp_t8->unk-C = (s32) *phi_t9; + temp_t8->unk-8 = (s32) temp_t9->unk-8; + temp_t8->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&asc_D_8004F4B4 + 0xbb8)) + { + goto loop_1; + } + temp_ret_4 = microcode_constructor(temp_v0_3); + arg0 = temp_ret_4; + temp_v0_4 = temp_ret_4; + arg0 = print_current_solo_briefing_stage_name(temp_v0_4, &spA4); + spC60 = 0x37; + spC5C = 0x8f; + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, get_textptr_for_textID(TEXT(LTITLE, 0x23)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + if (mission_difficulty_highlighted >= 0) + { + if (j_text_trigger != 0) + { + phi_v0 = 0x32; + } + else + { + phi_v0 = 0; + } + temp_v1 = mission_difficulty_highlighted * 0x1e; + arg0 = microcode_constructor_related_to_menus(arg0, 0x7e - phi_v0, temp_v1 + 0xb2, 0xf0, (s32) (temp_v1 + 0xc3), 0x32); + } + phi_s1 = 0; + phi_s2_3 = spA0; +loop_8: + if ((phi_s1 == 0) || (spC68 >= phi_s1)) + { + if (j_text_trigger != 0) + { + if (phi_s1 != 0) + { + if (phi_s1 != 1) + { + if (phi_s1 != 2) + { + if (phi_s1 != 3) + { + phi_s2 = phi_s2_3; + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10c)); +block_21: + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10b)); + goto block_21; + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10a)); + goto block_21; + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x109)); + goto block_21; + } + } + else + { + sprintf(&spA4, &aD_, phi_s1 + 1); + phi_s2 = &spA4; + goto block_21; + } + sub_GAME_7F0AE98C(&sp98, &sp9C, phi_s2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + phi_v0_2 = 0; + if (j_text_trigger != 0) + { + phi_v0_2 = sp9C + -0xa; + } + spC60 = (s32) (0x82 - phi_v0_2); + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + if (phi_s1 != 0) + { + if (phi_s1 != 1) + { + if (phi_s1 != 2) + { + if (phi_s1 != 3) + { + phi_s2_2 = phi_s2; + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x27)); +block_33: + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x26)); + goto block_33; + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x25)); + goto block_33; + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x24)); + goto block_33; + } + spC60 = (s32) 0x96; + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + phi_s2_3 = phi_s2_2; + } + else + { + + } + temp_s1 = phi_s1 + 1; + phi_s1 = temp_s1; + if (temp_s1 < 4) + { + goto loop_8; + } + arg0 = add_tab3_previous(arg0); + phi_s1_2 = 0; +loop_37: + if ((phi_s1_2 == 0) || (spC68 >= phi_s1_2)) + { + if (check_if_stage_completed_on_difficulty(briefingpage, phi_s1_2) == 3) + { + sp90 = 280.0f; + temp_s0 = mainfolderimages + 0x30; + sp94 = (f32) ((((phi_s1_2 * 0x10) - phi_s1_2) * 2) + 0xba); + temp_f16 = (f32) temp_s0->unk4; + phi_f16 = temp_f16; + if (temp_s0->unk4 < 0) + { + phi_f16 = temp_f16 + 4294967296.0f; + } + sp88 = (f32) (phi_f16 * 0.5f); + temp_f8 = (f32) temp_s0->unk5; + phi_f8 = temp_f8; + if (temp_s0->unk5 < 0) + { + phi_f8 = temp_f8 + 4294967296.0f; + } + sp8C = (f32) (phi_f8 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, temp_s0, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp90, &sp88, temp_s0->unk4, (s32) temp_s0->unk5, 0, 0, 1, 0xb4, 0, 0, 0xff, (s32) (0 < temp_s0->unk6), 0); + } + } + else + { + + } + temp_s1_2 = phi_s1_2 + 1; + phi_s1_2 = temp_s1_2; + if (temp_s1_2 != 3) + { + goto loop_37; + } + load_draw_selected_icon_folder_select(arg0); +} +#else +const char asc_D_8004F4B4[3000] = {0xA, 0}; +const char aD_[] = "%d.\n"; +GLOBAL_ASM( +.text +glabel constructor_menu08_difficulty +/* 0438C8 7F00ED98 27BDF390 */ addiu $sp, $sp, -0xc70 +/* 0438CC 7F00ED9C 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0438D0 7F00EDA0 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0438D4 7F00EDA4 AFA40C70 */ sw $a0, 0xc70($sp) +/* 0438D8 7F00EDA8 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 0438DC 7F00EDAC 000E78C0 */ sll $t7, $t6, 3 +/* 0438E0 7F00EDB0 01EE7823 */ subu $t7, $t7, $t6 +/* 0438E4 7F00EDB4 000F7880 */ sll $t7, $t7, 2 +/* 0438E8 7F00EDB8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0438EC 7F00EDBC 008F2021 */ addu $a0, $a0, $t7 +/* 0438F0 7F00EDC0 AFBE0068 */ sw $fp, 0x68($sp) +/* 0438F4 7F00EDC4 AFB70064 */ sw $s7, 0x64($sp) +/* 0438F8 7F00EDC8 AFB60060 */ sw $s6, 0x60($sp) +/* 0438FC 7F00EDCC AFB5005C */ sw $s5, 0x5c($sp) +/* 043900 7F00EDD0 AFB40058 */ sw $s4, 0x58($sp) +/* 043904 7F00EDD4 AFB30054 */ sw $s3, 0x54($sp) +/* 043908 7F00EDD8 AFB20050 */ sw $s2, 0x50($sp) +/* 04390C 7F00EDDC AFB1004C */ sw $s1, 0x4c($sp) +/* 043910 7F00EDE0 AFB00048 */ sw $s0, 0x48($sp) +/* 043914 7F00EDE4 F7B40040 */ sdc1 $f20, 0x40($sp) +/* 043918 7F00EDE8 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 04391C 7F00EDEC 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 043920 7F00EDF0 AFA20C68 */ sw $v0, 0xc68($sp) +/* 043924 7F00EDF4 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043928 7F00EDF8 00002825 */ move $a1, $zero +/* 04392C 7F00EDFC 00003025 */ move $a2, $zero +/* 043930 7F00EE00 0C0011B4 */ jal set_setfillcolor +/* 043934 7F00EE04 00003825 */ move $a3, $zero +/* 043938 7F00EE08 AFA20C70 */ sw $v0, 0xc70($sp) +/* 04393C 7F00EE0C 0C000FBE */ jal insert_generic_fillrect +/* 043940 7F00EE10 00402025 */ move $a0, $v0 +/* 043944 7F00EE14 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043948 7F00EE18 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04394C 7F00EE1C 00402025 */ move $a0, $v0 +/* 043950 7F00EE20 3C198005 */ lui $t9, %hi(asc_D_8004F4B4) +/* 043954 7F00EE24 2739F4B4 */ addiu $t9, %lo(asc_D_8004F4B4) # addiu $t9, $t9, -0xb4c +/* 043958 7F00EE28 AFA20C70 */ sw $v0, 0xc70($sp) +/* 04395C 7F00EE2C 272B0BB8 */ addiu $t3, $t9, 0xbb8 +/* 043960 7F00EE30 27B800A4 */ addiu $t8, $sp, 0xa4 +.L7F00EE34: +/* 043964 7F00EE34 8F210000 */ lw $at, ($t9) +/* 043968 7F00EE38 2739000C */ addiu $t9, $t9, 0xc +/* 04396C 7F00EE3C 2718000C */ addiu $t8, $t8, 0xc +/* 043970 7F00EE40 AF01FFF4 */ sw $at, -0xc($t8) +/* 043974 7F00EE44 8F21FFF8 */ lw $at, -8($t9) +/* 043978 7F00EE48 AF01FFF8 */ sw $at, -8($t8) +/* 04397C 7F00EE4C 8F21FFFC */ lw $at, -4($t9) +/* 043980 7F00EE50 172BFFF8 */ bne $t9, $t3, .L7F00EE34 +/* 043984 7F00EE54 AF01FFFC */ sw $at, -4($t8) +/* 043988 7F00EE58 0FC2B366 */ jal microcode_constructor +/* 04398C 7F00EE5C 00402025 */ move $a0, $v0 +/* 043990 7F00EE60 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043994 7F00EE64 00402025 */ move $a0, $v0 +/* 043998 7F00EE68 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04399C 7F00EE6C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0439A0 7F00EE70 AFA20C70 */ sw $v0, 0xc70($sp) +/* 0439A4 7F00EE74 0FC30776 */ jal get_textptr_for_textID +/* 0439A8 7F00EE78 34049C23 */ li $a0, 39971 +/* 0439AC 7F00EE7C 240C0037 */ li $t4, 55 +/* 0439B0 7F00EE80 240D008F */ li $t5, 143 +/* 0439B4 7F00EE84 00408825 */ move $s1, $v0 +/* 0439B8 7F00EE88 AFAC0C60 */ sw $t4, 0xc60($sp) +/* 0439BC 7F00EE8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0439C0 7F00EE90 AFAD0C5C */ sw $t5, 0xc5c($sp) +/* 0439C4 7F00EE94 00028400 */ sll $s0, $v0, 0x10 +/* 0439C8 7F00EE98 00107403 */ sra $t6, $s0, 0x10 +/* 0439CC 7F00EE9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0439D0 7F00EEA0 01C08025 */ move $s0, $t6 +/* 0439D4 7F00EEA4 3C158004 */ lui $s5, %hi(ptrSecondFontTableLarge) +/* 0439D8 7F00EEA8 3C168004 */ lui $s6, %hi(ptrFirstFontTableLarge) +/* 0439DC 7F00EEAC 26D60EB4 */ addiu $s6, %lo(ptrFirstFontTableLarge) # addiu $s6, $s6, 0xeb4 +/* 0439E0 7F00EEB0 26B50EB8 */ addiu $s5, %lo(ptrSecondFontTableLarge) # addiu $s5, $s5, 0xeb8 +/* 0439E4 7F00EEB4 8EAF0000 */ lw $t7, ($s5) +/* 0439E8 7F00EEB8 8ECA0000 */ lw $t2, ($s6) +/* 0439EC 7F00EEBC 240900FF */ li $t1, 255 +/* 0439F0 7F00EEC0 AFA90018 */ sw $t1, 0x18($sp) +/* 0439F4 7F00EEC4 8FA40C70 */ lw $a0, 0xc70($sp) +/* 0439F8 7F00EEC8 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 0439FC 7F00EECC 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043A00 7F00EED0 02203825 */ move $a3, $s1 +/* 043A04 7F00EED4 AFB0001C */ sw $s0, 0x1c($sp) +/* 043A08 7F00EED8 AFA20020 */ sw $v0, 0x20($sp) +/* 043A0C 7F00EEDC AFA00024 */ sw $zero, 0x24($sp) +/* 043A10 7F00EEE0 AFA00028 */ sw $zero, 0x28($sp) +/* 043A14 7F00EEE4 AFAF0010 */ sw $t7, 0x10($sp) +/* 043A18 7F00EEE8 0FC025D8 */ jal write_text_at_abs_coord +/* 043A1C 7F00EEEC AFAA0014 */ sw $t2, 0x14($sp) +/* 043A20 7F00EEF0 3C088007 */ lui $t0, %hi(mission_difficulty_highlighted) +/* 043A24 7F00EEF4 8D089784 */ lw $t0, %lo(mission_difficulty_highlighted)($t0) +/* 043A28 7F00EEF8 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043A2C 7F00EEFC 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043A30 7F00EF00 05000013 */ bltz $t0, .L7F00EF50 +/* 043A34 7F00EF04 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 043A38 7F00EF08 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 043A3C 7F00EF0C 00081900 */ sll $v1, $t0, 4 +/* 043A40 7F00EF10 00681823 */ subu $v1, $v1, $t0 +/* 043A44 7F00EF14 11600003 */ beqz $t3, .L7F00EF24 +/* 043A48 7F00EF18 2419007E */ li $t9, 126 +/* 043A4C 7F00EF1C 10000002 */ b .L7F00EF28 +/* 043A50 7F00EF20 24020032 */ li $v0, 50 +.L7F00EF24: +/* 043A54 7F00EF24 00001025 */ move $v0, $zero +.L7F00EF28: +/* 043A58 7F00EF28 00031840 */ sll $v1, $v1, 1 +/* 043A5C 7F00EF2C 247800C3 */ addiu $t8, $v1, 0xc3 +/* 043A60 7F00EF30 240C0032 */ li $t4, 50 +/* 043A64 7F00EF34 AFAC0014 */ sw $t4, 0x14($sp) +/* 043A68 7F00EF38 AFB80010 */ sw $t8, 0x10($sp) +/* 043A6C 7F00EF3C 246600B2 */ addiu $a2, $v1, 0xb2 +/* 043A70 7F00EF40 03222823 */ subu $a1, $t9, $v0 +/* 043A74 7F00EF44 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 043A78 7F00EF48 240700F0 */ li $a3, 240 +/* 043A7C 7F00EF4C AFA20C70 */ sw $v0, 0xc70($sp) +.L7F00EF50: +/* 043A80 7F00EF50 00008825 */ move $s1, $zero +/* 043A84 7F00EF54 241E0002 */ li $fp, 2 +/* 043A88 7F00EF58 24170001 */ li $s7, 1 +/* 043A8C 7F00EF5C 24140003 */ li $s4, 3 +/* 043A90 7F00EF60 8FB200A0 */ lw $s2, 0xa0($sp) +.L7F00EF64: +/* 043A94 7F00EF64 12200003 */ beqz $s1, .L7F00EF74 +/* 043A98 7F00EF68 8FAD0C68 */ lw $t5, 0xc68($sp) +/* 043A9C 7F00EF6C 01B1082A */ slt $at, $t5, $s1 +/* 043AA0 7F00EF70 14200080 */ bnez $at, .L7F00F174 +.L7F00EF74: +/* 043AA4 7F00EF74 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 043AA8 7F00EF78 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 043AAC 7F00EF7C 00119900 */ sll $s3, $s1, 4 +/* 043AB0 7F00EF80 02719823 */ subu $s3, $s3, $s1 +/* 043AB4 7F00EF84 00139840 */ sll $s3, $s3, 1 +/* 043AB8 7F00EF88 11C0001B */ beqz $t6, .L7F00EFF8 +/* 043ABC 7F00EF8C 267300B4 */ addiu $s3, $s3, 0xb4 +/* 043AC0 7F00EF90 12200009 */ beqz $s1, .L7F00EFB8 +/* 043AC4 7F00EF94 00000000 */ nop +/* 043AC8 7F00EF98 1237000B */ beq $s1, $s7, .L7F00EFC8 +/* 043ACC 7F00EF9C 00000000 */ nop +/* 043AD0 7F00EFA0 123E000D */ beq $s1, $fp, .L7F00EFD8 +/* 043AD4 7F00EFA4 00000000 */ nop +/* 043AD8 7F00EFA8 1234000F */ beq $s1, $s4, .L7F00EFE8 +/* 043ADC 7F00EFAC 00000000 */ nop +/* 043AE0 7F00EFB0 10000018 */ b .L7F00F014 +/* 043AE4 7F00EFB4 8ECA0000 */ lw $t2, ($s6) +.L7F00EFB8: +/* 043AE8 7F00EFB8 0FC30776 */ jal get_textptr_for_textID +/* 043AEC 7F00EFBC 34049D09 */ li $a0, 40201 +/* 043AF0 7F00EFC0 10000013 */ b .L7F00F010 +/* 043AF4 7F00EFC4 00409025 */ move $s2, $v0 +.L7F00EFC8: +/* 043AF8 7F00EFC8 0FC30776 */ jal get_textptr_for_textID +/* 043AFC 7F00EFCC 34049D0A */ li $a0, 40202 +/* 043B00 7F00EFD0 1000000F */ b .L7F00F010 +/* 043B04 7F00EFD4 00409025 */ move $s2, $v0 +.L7F00EFD8: +/* 043B08 7F00EFD8 0FC30776 */ jal get_textptr_for_textID +/* 043B0C 7F00EFDC 34049D0B */ li $a0, 40203 +/* 043B10 7F00EFE0 1000000B */ b .L7F00F010 +/* 043B14 7F00EFE4 00409025 */ move $s2, $v0 +.L7F00EFE8: +/* 043B18 7F00EFE8 0FC30776 */ jal get_textptr_for_textID +/* 043B1C 7F00EFEC 34049D0C */ li $a0, 40204 +/* 043B20 7F00EFF0 10000007 */ b .L7F00F010 +/* 043B24 7F00EFF4 00409025 */ move $s2, $v0 +.L7F00EFF8: +/* 043B28 7F00EFF8 27B200A4 */ addiu $s2, $sp, 0xa4 +/* 043B2C 7F00EFFC 3C058005 */ lui $a1, %hi(aD_) +/* 043B30 7F00F000 24A5006C */ addiu $a1, %lo(aD_) # addiu $a1, $a1, 0x6c +/* 043B34 7F00F004 02402025 */ move $a0, $s2 +/* 043B38 7F00F008 0C002B25 */ jal sprintf +/* 043B3C 7F00F00C 26260001 */ addiu $a2, $s1, 1 +.L7F00F010: +/* 043B40 7F00F010 8ECA0000 */ lw $t2, ($s6) +.L7F00F014: +/* 043B44 7F00F014 27A40098 */ addiu $a0, $sp, 0x98 +/* 043B48 7F00F018 27A5009C */ addiu $a1, $sp, 0x9c +/* 043B4C 7F00F01C 02403025 */ move $a2, $s2 +/* 043B50 7F00F020 8EA70000 */ lw $a3, ($s5) +/* 043B54 7F00F024 AFA00014 */ sw $zero, 0x14($sp) +/* 043B58 7F00F028 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 043B5C 7F00F02C AFAA0010 */ sw $t2, 0x10($sp) +/* 043B60 7F00F030 3C098005 */ lui $t1, %hi(j_text_trigger) +/* 043B64 7F00F034 8D2984D0 */ lw $t1, %lo(j_text_trigger)($t1) +/* 043B68 7F00F038 240B0082 */ li $t3, 130 +/* 043B6C 7F00F03C 00001025 */ move $v0, $zero +/* 043B70 7F00F040 11200004 */ beqz $t1, .L7F00F054 +/* 043B74 7F00F044 00000000 */ nop +/* 043B78 7F00F048 8FA2009C */ lw $v0, 0x9c($sp) +/* 043B7C 7F00F04C 10000001 */ b .L7F00F054 +/* 043B80 7F00F050 2442FFF6 */ addiu $v0, $v0, -0xa +.L7F00F054: +/* 043B84 7F00F054 0162C823 */ subu $t9, $t3, $v0 +/* 043B88 7F00F058 AFB90C60 */ sw $t9, 0xc60($sp) +/* 043B8C 7F00F05C 0C001107 */ jal get_video2_settings_txtClipW +/* 043B90 7F00F060 AFB30C5C */ sw $s3, 0xc5c($sp) +/* 043B94 7F00F064 00028400 */ sll $s0, $v0, 0x10 +/* 043B98 7F00F068 0010C403 */ sra $t8, $s0, 0x10 +/* 043B9C 7F00F06C 0C00110B */ jal get_video2_settings_txtClipH +/* 043BA0 7F00F070 03008025 */ move $s0, $t8 +/* 043BA4 7F00F074 8EAC0000 */ lw $t4, ($s5) +/* 043BA8 7F00F078 8ECD0000 */ lw $t5, ($s6) +/* 043BAC 7F00F07C 240E00FF */ li $t6, 255 +/* 043BB0 7F00F080 AFAE0018 */ sw $t6, 0x18($sp) +/* 043BB4 7F00F084 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043BB8 7F00F088 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 043BBC 7F00F08C 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043BC0 7F00F090 02403825 */ move $a3, $s2 +/* 043BC4 7F00F094 AFB0001C */ sw $s0, 0x1c($sp) +/* 043BC8 7F00F098 AFA20020 */ sw $v0, 0x20($sp) +/* 043BCC 7F00F09C AFA00024 */ sw $zero, 0x24($sp) +/* 043BD0 7F00F0A0 AFA00028 */ sw $zero, 0x28($sp) +/* 043BD4 7F00F0A4 AFAC0010 */ sw $t4, 0x10($sp) +/* 043BD8 7F00F0A8 0FC025D8 */ jal write_text_at_abs_coord +/* 043BDC 7F00F0AC AFAD0014 */ sw $t5, 0x14($sp) +/* 043BE0 7F00F0B0 12200009 */ beqz $s1, .L7F00F0D8 +/* 043BE4 7F00F0B4 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043BE8 7F00F0B8 1237000B */ beq $s1, $s7, .L7F00F0E8 +/* 043BEC 7F00F0BC 00000000 */ nop +/* 043BF0 7F00F0C0 123E000D */ beq $s1, $fp, .L7F00F0F8 +/* 043BF4 7F00F0C4 00000000 */ nop +/* 043BF8 7F00F0C8 1234000F */ beq $s1, $s4, .L7F00F108 +/* 043BFC 7F00F0CC 00000000 */ nop +/* 043C00 7F00F0D0 10000011 */ b .L7F00F118 +/* 043C04 7F00F0D4 240F0096 */ li $t7, 150 +.L7F00F0D8: +/* 043C08 7F00F0D8 0FC30776 */ jal get_textptr_for_textID +/* 043C0C 7F00F0DC 34049C24 */ li $a0, 39972 +/* 043C10 7F00F0E0 1000000C */ b .L7F00F114 +/* 043C14 7F00F0E4 00409025 */ move $s2, $v0 +.L7F00F0E8: +/* 043C18 7F00F0E8 0FC30776 */ jal get_textptr_for_textID +/* 043C1C 7F00F0EC 34049C25 */ li $a0, 39973 +/* 043C20 7F00F0F0 10000008 */ b .L7F00F114 +/* 043C24 7F00F0F4 00409025 */ move $s2, $v0 +.L7F00F0F8: +/* 043C28 7F00F0F8 0FC30776 */ jal get_textptr_for_textID +/* 043C2C 7F00F0FC 34049C26 */ li $a0, 39974 +/* 043C30 7F00F100 10000004 */ b .L7F00F114 +/* 043C34 7F00F104 00409025 */ move $s2, $v0 +.L7F00F108: +/* 043C38 7F00F108 0FC30776 */ jal get_textptr_for_textID +/* 043C3C 7F00F10C 34049C27 */ li $a0, 39975 +/* 043C40 7F00F110 00409025 */ move $s2, $v0 +.L7F00F114: +/* 043C44 7F00F114 240F0096 */ li $t7, 150 +.L7F00F118: +/* 043C48 7F00F118 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 043C4C 7F00F11C 0C001107 */ jal get_video2_settings_txtClipW +/* 043C50 7F00F120 AFB30C5C */ sw $s3, 0xc5c($sp) +/* 043C54 7F00F124 00028400 */ sll $s0, $v0, 0x10 +/* 043C58 7F00F128 00105403 */ sra $t2, $s0, 0x10 +/* 043C5C 7F00F12C 0C00110B */ jal get_video2_settings_txtClipH +/* 043C60 7F00F130 01408025 */ move $s0, $t2 +/* 043C64 7F00F134 8EA90000 */ lw $t1, ($s5) +/* 043C68 7F00F138 8ECB0000 */ lw $t3, ($s6) +/* 043C6C 7F00F13C 241900FF */ li $t9, 255 +/* 043C70 7F00F140 AFB90018 */ sw $t9, 0x18($sp) +/* 043C74 7F00F144 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043C78 7F00F148 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 043C7C 7F00F14C 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043C80 7F00F150 02403825 */ move $a3, $s2 +/* 043C84 7F00F154 AFB0001C */ sw $s0, 0x1c($sp) +/* 043C88 7F00F158 AFA20020 */ sw $v0, 0x20($sp) +/* 043C8C 7F00F15C AFA00024 */ sw $zero, 0x24($sp) +/* 043C90 7F00F160 AFA00028 */ sw $zero, 0x28($sp) +/* 043C94 7F00F164 AFA90010 */ sw $t1, 0x10($sp) +/* 043C98 7F00F168 0FC025D8 */ jal write_text_at_abs_coord +/* 043C9C 7F00F16C AFAB0014 */ sw $t3, 0x14($sp) +/* 043CA0 7F00F170 AFA20C70 */ sw $v0, 0xc70($sp) +.L7F00F174: +/* 043CA4 7F00F174 26310001 */ addiu $s1, $s1, 1 +/* 043CA8 7F00F178 2A210004 */ slti $at, $s1, 4 +/* 043CAC 7F00F17C 1420FF79 */ bnez $at, .L7F00EF64 +/* 043CB0 7F00F180 00000000 */ nop +/* 043CB4 7F00F184 AFB200A0 */ sw $s2, 0xa0($sp) +/* 043CB8 7F00F188 0FC0288E */ jal add_tab3_previous +/* 043CBC 7F00F18C 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043CC0 7F00F190 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 043CC4 7F00F194 4481A000 */ mtc1 $at, $f20 +/* 043CC8 7F00F198 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043CCC 7F00F19C 00008825 */ move $s1, $zero +/* 043CD0 7F00F1A0 27B20C70 */ addiu $s2, $sp, 0xc70 +.L7F00F1A4: +/* 043CD4 7F00F1A4 12200003 */ beqz $s1, .L7F00F1B4 +/* 043CD8 7F00F1A8 8FB80C68 */ lw $t8, 0xc68($sp) +/* 043CDC 7F00F1AC 0311082A */ slt $at, $t8, $s1 +/* 043CE0 7F00F1B0 14200041 */ bnez $at, .L7F00F2B8 +.L7F00F1B4: +/* 043CE4 7F00F1B4 3C048003 */ lui $a0, %hi(briefingpage) +/* 043CE8 7F00F1B8 8C84A8F8 */ lw $a0, %lo(briefingpage)($a0) +/* 043CEC 7F00F1BC 0FC03743 */ jal check_if_stage_completed_on_difficulty +/* 043CF0 7F00F1C0 02202825 */ move $a1, $s1 +/* 043CF4 7F00F1C4 1454003C */ bne $v0, $s4, .L7F00F2B8 +/* 043CF8 7F00F1C8 00116100 */ sll $t4, $s1, 4 +/* 043CFC 7F00F1CC 01916023 */ subu $t4, $t4, $s1 +/* 043D00 7F00F1D0 000C6040 */ sll $t4, $t4, 1 +/* 043D04 7F00F1D4 258D00BA */ addiu $t5, $t4, 0xba +/* 043D08 7F00F1D8 448D3000 */ mtc1 $t5, $f6 +/* 043D0C 7F00F1DC 3C01438C */ li $at, 0x438C0000 # 280.000000 +/* 043D10 7F00F1E0 44812000 */ mtc1 $at, $f4 +/* 043D14 7F00F1E4 46803220 */ cvt.s.w $f8, $f6 +/* 043D18 7F00F1E8 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 043D1C 7F00F1EC 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 043D20 7F00F1F0 E7A40090 */ swc1 $f4, 0x90($sp) +/* 043D24 7F00F1F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 043D28 7F00F1F8 26100030 */ addiu $s0, $s0, 0x30 +/* 043D2C 7F00F1FC E7A80094 */ swc1 $f8, 0x94($sp) +/* 043D30 7F00F200 920E0004 */ lbu $t6, 4($s0) +/* 043D34 7F00F204 448E5000 */ mtc1 $t6, $f10 +/* 043D38 7F00F208 05C10004 */ bgez $t6, .L7F00F21C +/* 043D3C 7F00F20C 46805420 */ cvt.s.w $f16, $f10 +/* 043D40 7F00F210 44819000 */ mtc1 $at, $f18 +/* 043D44 7F00F214 00000000 */ nop +/* 043D48 7F00F218 46128400 */ add.s $f16, $f16, $f18 +.L7F00F21C: +/* 043D4C 7F00F21C 46148102 */ mul.s $f4, $f16, $f20 +/* 043D50 7F00F220 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 043D54 7F00F224 E7A40088 */ swc1 $f4, 0x88($sp) +/* 043D58 7F00F228 920F0005 */ lbu $t7, 5($s0) +/* 043D5C 7F00F22C 448F3000 */ mtc1 $t7, $f6 +/* 043D60 7F00F230 05E10004 */ bgez $t7, .L7F00F244 +/* 043D64 7F00F234 46803220 */ cvt.s.w $f8, $f6 +/* 043D68 7F00F238 44815000 */ mtc1 $at, $f10 +/* 043D6C 7F00F23C 00000000 */ nop +/* 043D70 7F00F240 460A4200 */ add.s $f8, $f8, $f10 +.L7F00F244: +/* 043D74 7F00F244 46144482 */ mul.s $f18, $f8, $f20 +/* 043D78 7F00F248 02402025 */ move $a0, $s2 +/* 043D7C 7F00F24C 02002825 */ move $a1, $s0 +/* 043D80 7F00F250 24060004 */ li $a2, 4 +/* 043D84 7F00F254 00003825 */ move $a3, $zero +/* 043D88 7F00F258 AFA00010 */ sw $zero, 0x10($sp) +/* 043D8C 7F00F25C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 043D90 7F00F260 E7B2008C */ swc1 $f18, 0x8c($sp) +/* 043D94 7F00F264 920A0005 */ lbu $t2, 5($s0) +/* 043D98 7F00F268 92070004 */ lbu $a3, 4($s0) +/* 043D9C 7F00F26C 24090001 */ li $t1, 1 +/* 043DA0 7F00F270 240B00B4 */ li $t3, 180 +/* 043DA4 7F00F274 241900FF */ li $t9, 255 +/* 043DA8 7F00F278 AFB9002C */ sw $t9, 0x2c($sp) +/* 043DAC 7F00F27C AFAB0020 */ sw $t3, 0x20($sp) +/* 043DB0 7F00F280 AFA9001C */ sw $t1, 0x1c($sp) +/* 043DB4 7F00F284 AFA00028 */ sw $zero, 0x28($sp) +/* 043DB8 7F00F288 AFA00024 */ sw $zero, 0x24($sp) +/* 043DBC 7F00F28C AFA00018 */ sw $zero, 0x18($sp) +/* 043DC0 7F00F290 AFA00014 */ sw $zero, 0x14($sp) +/* 043DC4 7F00F294 AFAA0010 */ sw $t2, 0x10($sp) +/* 043DC8 7F00F298 92180006 */ lbu $t8, 6($s0) +/* 043DCC 7F00F29C AFA00034 */ sw $zero, 0x34($sp) +/* 043DD0 7F00F2A0 02402025 */ move $a0, $s2 +/* 043DD4 7F00F2A4 0018602A */ slt $t4, $zero, $t8 +/* 043DD8 7F00F2A8 AFAC0030 */ sw $t4, 0x30($sp) +/* 043DDC 7F00F2AC 27A50090 */ addiu $a1, $sp, 0x90 +/* 043DE0 7F00F2B0 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 043DE4 7F00F2B4 27A60088 */ addiu $a2, $sp, 0x88 +.L7F00F2B8: +/* 043DE8 7F00F2B8 26310001 */ addiu $s1, $s1, 1 +/* 043DEC 7F00F2BC 1634FFB9 */ bne $s1, $s4, .L7F00F1A4 +/* 043DF0 7F00F2C0 00000000 */ nop +/* 043DF4 7F00F2C4 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 043DF8 7F00F2C8 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043DFC 7F00F2CC 8FBF006C */ lw $ra, 0x6c($sp) +/* 043E00 7F00F2D0 D7B40040 */ ldc1 $f20, 0x40($sp) +/* 043E04 7F00F2D4 8FB00048 */ lw $s0, 0x48($sp) +/* 043E08 7F00F2D8 8FB1004C */ lw $s1, 0x4c($sp) +/* 043E0C 7F00F2DC 8FB20050 */ lw $s2, 0x50($sp) +/* 043E10 7F00F2E0 8FB30054 */ lw $s3, 0x54($sp) +/* 043E14 7F00F2E4 8FB40058 */ lw $s4, 0x58($sp) +/* 043E18 7F00F2E8 8FB5005C */ lw $s5, 0x5c($sp) +/* 043E1C 7F00F2EC 8FB60060 */ lw $s6, 0x60($sp) +/* 043E20 7F00F2F0 8FB70064 */ lw $s7, 0x64($sp) +/* 043E24 7F00F2F4 8FBE0068 */ lw $fp, 0x68($sp) +/* 043E28 7F00F2F8 03E00008 */ jr $ra +/* 043E2C 7F00F2FC 27BD0C70 */ addiu $sp, $sp, 0xc70 +) +#endif + + + +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; + highlight_enemy_reaction = 0; + highlight_enemy_health = 0; + highlight_enemy_accuracy = 0; + highlight_enemy_damage = 0; + load_walletbond(); +} + +void update_menu09_007options(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu09_007options(void) +{ + f32 temp_f0; + s32 temp_f6; + f32 phi_f0; + f32 phi_f0_2; + + setvideo_far(0x42700000); + video_related_21(D_80051A58); + set_page_height(0x42c80000, D_80051A5C); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xa000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + highlight_enemy_reaction = 0; + highlight_enemy_health = 0; + highlight_enemy_accuracy = 0; + highlight_enemy_damage = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if (isontab2() != 0) + { + tab_2_highlight = 1; + } + else + { + if (isontab1() != 0) + { + cursor_v_pos = 1; + } + else + { + temp_f6 = (s32) cursor_v_pos; + if (temp_f6 >= 0x107) + { + highlight_enemy_reaction = 1; + } + else + { + if (temp_f6 >= 0xe6) + { + highlight_enemy_damage = 1; + } + else + { + if (temp_f6 >= 0xc5) + { + highlight_enemy_accuracy = 1; + } + else + { + if (temp_f6 >= 0xa4) + { + highlight_enemy_health = 1; + } + else + { + tab_2_highlight = 1; + } + } + } + } + } + } + } + } + if (get_controller_buttons_pressed(0, 0x1000) != 0) + { + tab_1_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0xa000) != 0) + { + if (tab_2_highlight != 0) + { + tab_2_selected = 1; + } + else + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + if (tab_1_highlight != 0) + { + tab_1_selected = 1; + } + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + if (get_controller_buttons_held(0, 0xa000) != 0) + { + temp_f0 = (cursor_h_pos - 55.0f) / 300.0f; + phi_f0 = temp_f0; + if (1.0f < temp_f0) + { + phi_f0 = 1.0f; + } + phi_f0_2 = phi_f0; + if (phi_f0 < 0.0f) + { + phi_f0_2 = 0.0f; + } + if (highlight_enemy_reaction != 0) + { + slider_007_mode_reaction = (f32) phi_f0_2; + } + else + { + if (highlight_enemy_health != 0) + { + slider_007_mode_health = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + else + { + if (highlight_enemy_accuracy != 0) + { + slider_007_mode_accuracy = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + else + { + if (highlight_enemy_damage != 0) + { + slider_007_mode_damage = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + } + } + } + } + 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); + menu_control_stick_tracking(); + if (tab_1_selected != 0) + { + set_menu_to_mode(MENU_RUN_STAGE, 1); + return; + } + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_BRIEFING, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_DIFFICULTY, 0); + set_cursor_pos_difficulty(selected_difficulty); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A58 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A5C +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu09_007options +/* 043EA4 7F00F374 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 043EA8 7F00F378 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 043EAC 7F00F37C AFBF0014 */ sw $ra, 0x14($sp) +/* 043EB0 7F00F380 44816000 */ mtc1 $at, $f12 +/* 043EB4 7F00F384 0C001151 */ jal setvideo_far +/* 043EB8 7F00F388 00000000 */ nop +/* 043EBC 7F00F38C 3C018005 */ lui $at, %hi(D_80051A58) +/* 043EC0 7F00F390 0C001164 */ jal video_related_21 +/* 043EC4 7F00F394 C42C1A58 */ lwc1 $f12, %lo(D_80051A58)($at) +/* 043EC8 7F00F398 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 043ECC 7F00F39C 44816000 */ mtc1 $at, $f12 +/* 043ED0 7F00F3A0 3C018005 */ lui $at, %hi(D_80051A5C) +/* 043ED4 7F00F3A4 0C001194 */ jal set_page_height +/* 043ED8 7F00F3A8 C42E1A5C */ lwc1 $f14, %lo(D_80051A5C)($at) +/* 043EDC 7F00F3AC 0C00114D */ jal set_video2_settings_offset_24 +/* 043EE0 7F00F3B0 00002025 */ move $a0, $zero +/* 043EE4 7F00F3B4 00002025 */ move $a0, $zero +/* 043EE8 7F00F3B8 0C0030C3 */ jal get_controller_buttons_held +/* 043EEC 7F00F3BC 3405A000 */ li $a1, 40960 +/* 043EF0 7F00F3C0 14400042 */ bnez $v0, .L7F00F4CC +/* 043EF4 7F00F3C4 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 043EF8 7F00F3C8 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 043EFC 7F00F3CC 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043F00 7F00F3D0 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 043F04 7F00F3D4 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 043F08 7F00F3D8 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 043F0C 7F00F3DC 3C018007 */ lui $at, %hi(highlight_enemy_reaction) +/* 043F10 7F00F3E0 AC209794 */ sw $zero, %lo(highlight_enemy_reaction)($at) +/* 043F14 7F00F3E4 3C018007 */ lui $at, %hi(highlight_enemy_health) +/* 043F18 7F00F3E8 AC209798 */ sw $zero, %lo(highlight_enemy_health)($at) +/* 043F1C 7F00F3EC 3C018007 */ lui $at, %hi(highlight_enemy_accuracy) +/* 043F20 7F00F3F0 AC20979C */ sw $zero, %lo(highlight_enemy_accuracy)($at) +/* 043F24 7F00F3F4 3C018007 */ lui $at, %hi(highlight_enemy_damage) +/* 043F28 7F00F3F8 0FC028E7 */ jal isontab3 +/* 043F2C 7F00F3FC AC2097A0 */ sw $zero, %lo(highlight_enemy_damage)($at) +/* 043F30 7F00F400 10400004 */ beqz $v0, .L7F00F414 +/* 043F34 7F00F404 240E0001 */ li $t6, 1 +/* 043F38 7F00F408 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 043F3C 7F00F40C 1000002F */ b .L7F00F4CC +/* 043F40 7F00F410 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F00F414: +/* 043F44 7F00F414 0FC0295E */ jal isontab2 +/* 043F48 7F00F418 00000000 */ nop +/* 043F4C 7F00F41C 10400004 */ beqz $v0, .L7F00F430 +/* 043F50 7F00F420 24030001 */ li $v1, 1 +/* 043F54 7F00F424 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043F58 7F00F428 10000028 */ b .L7F00F4CC +/* 043F5C 7F00F42C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F00F430: +/* 043F60 7F00F430 0FC02879 */ jal isontab1 +/* 043F64 7F00F434 00000000 */ nop +/* 043F68 7F00F438 10400005 */ beqz $v0, .L7F00F450 +/* 043F6C 7F00F43C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 043F70 7F00F440 24030001 */ li $v1, 1 +/* 043F74 7F00F444 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 043F78 7F00F448 10000020 */ b .L7F00F4CC +/* 043F7C 7F00F44C AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F00F450: +/* 043F80 7F00F450 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 043F84 7F00F454 24030001 */ li $v1, 1 +/* 043F88 7F00F458 4600218D */ trunc.w.s $f6, $f4 +/* 043F8C 7F00F45C 44023000 */ mfc1 $v0, $f6 +/* 043F90 7F00F460 00000000 */ nop +/* 043F94 7F00F464 28410107 */ slti $at, $v0, 0x107 +/* 043F98 7F00F468 14200003 */ bnez $at, .L7F00F478 +/* 043F9C 7F00F46C 3C018007 */ lui $at, %hi(highlight_enemy_reaction) +/* 043FA0 7F00F470 10000016 */ b .L7F00F4CC +/* 043FA4 7F00F474 AC239794 */ sw $v1, %lo(highlight_enemy_reaction)($at) +.L7F00F478: +/* 043FA8 7F00F478 284100E6 */ slti $at, $v0, 0xe6 +/* 043FAC 7F00F47C 14200004 */ bnez $at, .L7F00F490 +/* 043FB0 7F00F480 24030001 */ li $v1, 1 +/* 043FB4 7F00F484 3C018007 */ lui $at, %hi(highlight_enemy_damage) +/* 043FB8 7F00F488 10000010 */ b .L7F00F4CC +/* 043FBC 7F00F48C AC2397A0 */ sw $v1, %lo(highlight_enemy_damage)($at) +.L7F00F490: +/* 043FC0 7F00F490 284100C5 */ slti $at, $v0, 0xc5 +/* 043FC4 7F00F494 14200004 */ bnez $at, .L7F00F4A8 +/* 043FC8 7F00F498 24030001 */ li $v1, 1 +/* 043FCC 7F00F49C 3C018007 */ lui $at, %hi(highlight_enemy_accuracy) +/* 043FD0 7F00F4A0 1000000A */ b .L7F00F4CC +/* 043FD4 7F00F4A4 AC23979C */ sw $v1, %lo(highlight_enemy_accuracy)($at) +.L7F00F4A8: +/* 043FD8 7F00F4A8 284100A4 */ slti $at, $v0, 0xa4 +/* 043FDC 7F00F4AC 14200005 */ bnez $at, .L7F00F4C4 +/* 043FE0 7F00F4B0 24030001 */ li $v1, 1 +/* 043FE4 7F00F4B4 24030001 */ li $v1, 1 +/* 043FE8 7F00F4B8 3C018007 */ lui $at, %hi(highlight_enemy_health) +/* 043FEC 7F00F4BC 10000003 */ b .L7F00F4CC +/* 043FF0 7F00F4C0 AC239798 */ sw $v1, %lo(highlight_enemy_health)($at) +.L7F00F4C4: +/* 043FF4 7F00F4C4 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043FF8 7F00F4C8 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F00F4CC: +/* 043FFC 7F00F4CC 00002025 */ move $a0, $zero +/* 044000 7F00F4D0 0C0030EB */ jal get_controller_buttons_pressed +/* 044004 7F00F4D4 24051000 */ li $a1, 4096 +/* 044008 7F00F4D8 1040000A */ beqz $v0, .L7F00F504 +/* 04400C 7F00F4DC 24030001 */ li $v1, 1 +/* 044010 7F00F4E0 3C018003 */ lui $at, %hi(tab_1_selected) +/* 044014 7F00F4E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044018 7F00F4E8 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 04401C 7F00F4EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 044020 7F00F4F0 240500C7 */ li $a1, 199 +/* 044024 7F00F4F4 0C002382 */ jal play_sfx_a1 +/* 044028 7F00F4F8 00003025 */ move $a2, $zero +/* 04402C 7F00F4FC 1000002D */ b .L7F00F5B4 +/* 044030 7F00F500 00002025 */ move $a0, $zero +.L7F00F504: +/* 044034 7F00F504 00002025 */ move $a0, $zero +/* 044038 7F00F508 0C0030EB */ jal get_controller_buttons_pressed +/* 04403C 7F00F50C 3405A000 */ li $a1, 40960 +/* 044040 7F00F510 1040001B */ beqz $v0, .L7F00F580 +/* 044044 7F00F514 24030001 */ li $v1, 1 +/* 044048 7F00F518 3C188003 */ lui $t8, %hi(tab_2_highlight) +/* 04404C 7F00F51C 8F18A8E0 */ lw $t8, %lo(tab_2_highlight)($t8) +/* 044050 7F00F520 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044054 7F00F524 240500C7 */ li $a1, 199 +/* 044058 7F00F528 13000004 */ beqz $t8, .L7F00F53C +/* 04405C 7F00F52C 00003025 */ move $a2, $zero +/* 044060 7F00F530 3C018003 */ lui $at, %hi(tab_2_selected) +/* 044064 7F00F534 1000000E */ b .L7F00F570 +/* 044068 7F00F538 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +.L7F00F53C: +/* 04406C 7F00F53C 3C198003 */ lui $t9, %hi(tab_3_highlight) +/* 044070 7F00F540 8F39A8E4 */ lw $t9, %lo(tab_3_highlight)($t9) +/* 044074 7F00F544 3C018003 */ lui $at, %hi(tab_3_selected) +/* 044078 7F00F548 3C088003 */ lui $t0, %hi(tab_1_highlight) +/* 04407C 7F00F54C 13200003 */ beqz $t9, .L7F00F55C +/* 044080 7F00F550 00000000 */ nop +/* 044084 7F00F554 10000006 */ b .L7F00F570 +/* 044088 7F00F558 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F00F55C: +/* 04408C 7F00F55C 8D08A8DC */ lw $t0, %lo(tab_1_highlight)($t0) +/* 044090 7F00F560 3C018003 */ lui $at, %hi(tab_1_selected) +/* 044094 7F00F564 11000002 */ beqz $t0, .L7F00F570 +/* 044098 7F00F568 00000000 */ nop +/* 04409C 7F00F56C AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +.L7F00F570: +/* 0440A0 7F00F570 0C002382 */ jal play_sfx_a1 +/* 0440A4 7F00F574 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440A8 7F00F578 1000000E */ b .L7F00F5B4 +/* 0440AC 7F00F57C 00002025 */ move $a0, $zero +.L7F00F580: +/* 0440B0 7F00F580 00002025 */ move $a0, $zero +/* 0440B4 7F00F584 0C0030EB */ jal get_controller_buttons_pressed +/* 0440B8 7F00F588 24054000 */ li $a1, 16384 +/* 0440BC 7F00F58C 10400008 */ beqz $v0, .L7F00F5B0 +/* 0440C0 7F00F590 24030001 */ li $v1, 1 +/* 0440C4 7F00F594 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0440C8 7F00F598 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0440CC 7F00F59C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 0440D0 7F00F5A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440D4 7F00F5A4 240500C7 */ li $a1, 199 +/* 0440D8 7F00F5A8 0C002382 */ jal play_sfx_a1 +/* 0440DC 7F00F5AC 00003025 */ move $a2, $zero +.L7F00F5B0: +/* 0440E0 7F00F5B0 00002025 */ move $a0, $zero +.L7F00F5B4: +/* 0440E4 7F00F5B4 0C0030C3 */ jal get_controller_buttons_held +/* 0440E8 7F00F5B8 3405A000 */ li $a1, 40960 +/* 0440EC 7F00F5BC 1040003E */ beqz $v0, .L7F00F6B8 +/* 0440F0 7F00F5C0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0440F4 7F00F5C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0440F8 7F00F5C8 44811000 */ mtc1 $at, $f2 +/* 0440FC 7F00F5CC 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 044100 7F00F5D0 C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 044104 7F00F5D4 3C01425C */ li $at, 0x425C0000 # 55.000000 +/* 044108 7F00F5D8 44815000 */ mtc1 $at, $f10 +/* 04410C 7F00F5DC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044110 7F00F5E0 44819000 */ mtc1 $at, $f18 +/* 044114 7F00F5E4 460A4401 */ sub.s $f16, $f8, $f10 +/* 044118 7F00F5E8 3C098007 */ lui $t1, %hi(highlight_enemy_reaction) +/* 04411C 7F00F5EC 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044120 7F00F5F0 3C0A8007 */ lui $t2, %hi(highlight_enemy_health) +/* 044124 7F00F5F4 46128003 */ div.s $f0, $f16, $f18 +/* 044128 7F00F5F8 4600103C */ c.lt.s $f2, $f0 +/* 04412C 7F00F5FC 00000000 */ nop +/* 044130 7F00F600 45020003 */ bc1fl .L7F00F610 +/* 044134 7F00F604 44801000 */ mtc1 $zero, $f2 +/* 044138 7F00F608 46001006 */ mov.s $f0, $f2 +/* 04413C 7F00F60C 44801000 */ mtc1 $zero, $f2 +.L7F00F610: +/* 044140 7F00F610 00000000 */ nop +/* 044144 7F00F614 4602003C */ c.lt.s $f0, $f2 +/* 044148 7F00F618 00000000 */ nop +/* 04414C 7F00F61C 45000002 */ bc1f .L7F00F628 +/* 044150 7F00F620 00000000 */ nop +/* 044154 7F00F624 46001006 */ mov.s $f0, $f2 +.L7F00F628: +/* 044158 7F00F628 8D299794 */ lw $t1, %lo(highlight_enemy_reaction)($t1) +/* 04415C 7F00F62C 11200003 */ beqz $t1, .L7F00F63C +/* 044160 7F00F630 00000000 */ nop +/* 044164 7F00F634 10000020 */ b .L7F00F6B8 +/* 044168 7F00F638 E420A9A0 */ swc1 $f0, %lo(slider_007_mode_reaction)($at) +.L7F00F63C: +/* 04416C 7F00F63C 8D4A9798 */ lw $t2, %lo(highlight_enemy_health)($t2) +/* 044170 7F00F640 3C0B8007 */ lui $t3, %hi(highlight_enemy_accuracy) +/* 044174 7F00F644 11400008 */ beqz $t2, .L7F00F668 +/* 044178 7F00F648 00000000 */ nop +/* 04417C 7F00F64C 46000102 */ mul.s $f4, $f0, $f0 +/* 044180 7F00F650 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044184 7F00F654 44813000 */ mtc1 $at, $f6 +/* 044188 7F00F658 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 04418C 7F00F65C 46062202 */ mul.s $f8, $f4, $f6 +/* 044190 7F00F660 10000015 */ b .L7F00F6B8 +/* 044194 7F00F664 E428A9A4 */ swc1 $f8, %lo(slider_007_mode_health)($at) +.L7F00F668: +/* 044198 7F00F668 8D6B979C */ lw $t3, %lo(highlight_enemy_accuracy)($t3) +/* 04419C 7F00F66C 3C0C8007 */ lui $t4, %hi(highlight_enemy_damage) +/* 0441A0 7F00F670 11600008 */ beqz $t3, .L7F00F694 +/* 0441A4 7F00F674 00000000 */ nop +/* 0441A8 7F00F678 46000282 */ mul.s $f10, $f0, $f0 +/* 0441AC 7F00F67C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0441B0 7F00F680 44818000 */ mtc1 $at, $f16 +/* 0441B4 7F00F684 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0441B8 7F00F688 46105482 */ mul.s $f18, $f10, $f16 +/* 0441BC 7F00F68C 1000000A */ b .L7F00F6B8 +/* 0441C0 7F00F690 E432A9A8 */ swc1 $f18, %lo(slider_007_mode_accuracy)($at) +.L7F00F694: +/* 0441C4 7F00F694 8D8C97A0 */ lw $t4, %lo(highlight_enemy_damage)($t4) +/* 0441C8 7F00F698 11800007 */ beqz $t4, .L7F00F6B8 +/* 0441CC 7F00F69C 00000000 */ nop +/* 0441D0 7F00F6A0 46000102 */ mul.s $f4, $f0, $f0 +/* 0441D4 7F00F6A4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0441D8 7F00F6A8 44813000 */ mtc1 $at, $f6 +/* 0441DC 7F00F6AC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 0441E0 7F00F6B0 46062202 */ mul.s $f8, $f4, $f6 +/* 0441E4 7F00F6B4 E428A9AC */ swc1 $f8, %lo(slider_007_mode_damage)($at) +.L7F00F6B8: +/* 0441E8 7F00F6B8 0FC02DC9 */ jal disable_all_switches +/* 0441EC 7F00F6BC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0441F0 7F00F6C0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0441F4 7F00F6C4 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0441F8 7F00F6C8 00002825 */ move $a1, $zero +/* 0441FC 7F00F6CC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044200 7F00F6D0 24060001 */ li $a2, 1 +/* 044204 7F00F6D4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 044208 7F00F6D8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04420C 7F00F6DC 24050001 */ li $a1, 1 +/* 044210 7F00F6E0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044214 7F00F6E4 24060001 */ li $a2, 1 +/* 044218 7F00F6E8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04421C 7F00F6EC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 044220 7F00F6F0 24050003 */ li $a1, 3 +/* 044224 7F00F6F4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044228 7F00F6F8 24060001 */ li $a2, 1 +/* 04422C 7F00F6FC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 044230 7F00F700 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 044234 7F00F704 24050006 */ li $a1, 6 +/* 044238 7F00F708 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04423C 7F00F70C 24060001 */ li $a2, 1 +/* 044240 7F00F710 0FC026E1 */ jal menu_control_stick_tracking +/* 044244 7F00F714 00000000 */ nop +/* 044248 7F00F718 3C0D8003 */ lui $t5, %hi(tab_1_selected) +/* 04424C 7F00F71C 8DADA8D0 */ lw $t5, %lo(tab_1_selected)($t5) +/* 044250 7F00F720 2404000B */ li $a0, 11 +/* 044254 7F00F724 3C0E8003 */ lui $t6, %hi(tab_2_selected) +/* 044258 7F00F728 11A00005 */ beqz $t5, .L7F00F740 +/* 04425C 7F00F72C 00000000 */ nop +/* 044260 7F00F730 0FC06975 */ jal set_menu_to_mode +/* 044264 7F00F734 24050001 */ li $a1, 1 +/* 044268 7F00F738 10000014 */ b .L7F00F78C +/* 04426C 7F00F73C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F740: +/* 044270 7F00F740 8DCEA8D4 */ lw $t6, %lo(tab_2_selected)($t6) +/* 044274 7F00F744 2404000A */ li $a0, 10 +/* 044278 7F00F748 3C0F8003 */ lui $t7, %hi(tab_3_selected) +/* 04427C 7F00F74C 11C00005 */ beqz $t6, .L7F00F764 +/* 044280 7F00F750 00000000 */ nop +/* 044284 7F00F754 0FC06975 */ jal set_menu_to_mode +/* 044288 7F00F758 00002825 */ move $a1, $zero +/* 04428C 7F00F75C 1000000B */ b .L7F00F78C +/* 044290 7F00F760 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F764: +/* 044294 7F00F764 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 044298 7F00F768 24040008 */ li $a0, 8 +/* 04429C 7F00F76C 51E00007 */ beql $t7, $zero, .L7F00F78C +/* 0442A0 7F00F770 8FBF0014 */ lw $ra, 0x14($sp) +/* 0442A4 7F00F774 0FC06975 */ jal set_menu_to_mode +/* 0442A8 7F00F778 00002825 */ move $a1, $zero +/* 0442AC 7F00F77C 3C048003 */ lui $a0, %hi(selected_difficulty) +/* 0442B0 7F00F780 0FC03B59 */ jal set_cursor_pos_difficulty +/* 0442B4 7F00F784 8C84A8FC */ lw $a0, %lo(selected_difficulty)($a0) +/* 0442B8 7F00F788 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F78C: +/* 0442BC 7F00F78C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0442C0 7F00F790 03E00008 */ jr $ra +/* 0442C4 7F00F794 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu09_007options(void) +{ + s32 spC14; + s32 spC10; + s32 spC0C; + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 temp_s0_6; + s32 temp_s0_7; + s32 temp_s0_8; + void *temp_t6; + void *temp_t7; + void *phi_t7; + void *phi_t6; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_s0_3; + s32 phi_s0_4; + + phi_t7 = &asc_D_80050074; + phi_t6 = &sp54; +loop_1: + temp_t7 = phi_t7 + 0xc; + temp_t6 = phi_t6 + 0xc; + temp_t6->unk-C = (s32) *phi_t7; + temp_t6->unk-8 = (s32) temp_t7->unk-8; + temp_t6->unk-4 = (s32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t6 = temp_t6; + if (temp_t7 != (&asc_D_80050074 + 0xbb8)) + { + goto loop_1; + } + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x28)); + spC10 = 0x37; + spC0C = 0x8f; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp54), &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2a)); + spC10 = 0x39; + spC0C = 0xa4; + temp_ret = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0, 0x37, 0xb5, 0x163, 0xc0, 0x32), 0x37, 0xa4 + 0x11, (s32) (sqrtf(slider_007_mode_health / 10.0f) * 300.0f) + 0x37, (s32) (0xa4 + 0x1c), 0x64); + phi_s0 = temp_ret; + if (highlight_enemy_health != 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_ret, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD, (s32) (slider_007_mode_health * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xa4; + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2b)); + spC10 = 0x39; + spC0C = 0xc5; + temp_ret_2 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_3, 0x37, 0xd6, 0x163, 0xe1, 0x32), 0x37, 0xc5 + 0x11, (s32) (sqrtf(slider_007_mode_accuracy / 10.0f) * 300.0f) + 0x37, (s32) (0xc5 + 0x1c), 0x64); + phi_s0_2 = temp_ret_2; + if (highlight_enemy_accuracy != 0) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_ret_2, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_0, (s32) (slider_007_mode_accuracy * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xc5; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2c)); + spC10 = 0x39; + spC0C = 0xe6; + temp_ret_3 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_5, 0x37, 0xf7, 0x163, 0x102, 0x32), 0x37, 0xe6 + 0x11, (s32) (sqrtf(slider_007_mode_damage / 10.0f) * 300.0f) + 0x37, (s32) (0xe6 + 0x1c), 0x64); + phi_s0_3 = temp_ret_3; + if (highlight_enemy_damage != 0) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_ret_3, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_3, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_1, (s32) (slider_007_mode_damage * 10.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xe6; + sp44 = get_video2_settings_txtClipW(); + temp_s0_7 = write_text_at_abs_coord(temp_s0_6, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x29)); + spC10 = 0x39; + spC0C = 0x107; + temp_ret_4 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_7, 0x37, 0x118, 0x163, 0x123, 0x32), 0x37, 0x107 + 0x11, (s32) ((slider_007_mode_reaction * 300.0f) * 1.0f) + 0x37, (s32) (0x107 + 0x1c), 0x64); + phi_s0_4 = temp_ret_4; + if (highlight_enemy_reaction != 0) + { + phi_s0_4 = microcode_constructor_related_to_menus(temp_ret_4, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_4, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_2, (s32) (slider_007_mode_reaction * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0x107; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab2_next(add_tab3_previous(add_tab1_start(write_text_at_abs_coord(temp_s0_8, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0))))); +} +#else +const char asc_D_80050074[3000] = {0xA, 0}; +const char aD[] = "%d%%\n"; +const char aD_0[] = "%d%%\n"; +const char aD_1[] = "%d%%\n"; +const char aD_2[] = "%d%%\n"; +GLOBAL_ASM( +.text +glabel constructor_menu09_007options +/* 0442C8 7F00F798 27BDF3E8 */ addiu $sp, $sp, -0xc18 +/* 0442CC 7F00F79C AFBF003C */ sw $ra, 0x3c($sp) +/* 0442D0 7F00F7A0 AFB00038 */ sw $s0, 0x38($sp) +/* 0442D4 7F00F7A4 00002825 */ move $a1, $zero +/* 0442D8 7F00F7A8 00003025 */ move $a2, $zero +/* 0442DC 7F00F7AC 0C0011B4 */ jal set_setfillcolor +/* 0442E0 7F00F7B0 00003825 */ move $a3, $zero +/* 0442E4 7F00F7B4 0C000FBE */ jal insert_generic_fillrect +/* 0442E8 7F00F7B8 00402025 */ move $a0, $v0 +/* 0442EC 7F00F7BC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 0442F0 7F00F7C0 00402025 */ move $a0, $v0 +/* 0442F4 7F00F7C4 3C0F8005 */ lui $t7, %hi(asc_D_80050074) +/* 0442F8 7F00F7C8 25EF0074 */ addiu $t7, %lo(asc_D_80050074) # addiu $t7, $t7, 0x74 +/* 0442FC 7F00F7CC 25E80BB8 */ addiu $t0, $t7, 0xbb8 +/* 044300 7F00F7D0 27AE0054 */ addiu $t6, $sp, 0x54 +.L7F00F7D4: +/* 044304 7F00F7D4 8DE10000 */ lw $at, ($t7) +/* 044308 7F00F7D8 25EF000C */ addiu $t7, $t7, 0xc +/* 04430C 7F00F7DC 25CE000C */ addiu $t6, $t6, 0xc +/* 044310 7F00F7E0 ADC1FFF4 */ sw $at, -0xc($t6) +/* 044314 7F00F7E4 8DE1FFF8 */ lw $at, -8($t7) +/* 044318 7F00F7E8 ADC1FFF8 */ sw $at, -8($t6) +/* 04431C 7F00F7EC 8DE1FFFC */ lw $at, -4($t7) +/* 044320 7F00F7F0 15E8FFF8 */ bne $t7, $t0, .L7F00F7D4 +/* 044324 7F00F7F4 ADC1FFFC */ sw $at, -4($t6) +/* 044328 7F00F7F8 0FC2B366 */ jal microcode_constructor +/* 04432C 7F00F7FC 00402025 */ move $a0, $v0 +/* 044330 7F00F800 00402025 */ move $a0, $v0 +/* 044334 7F00F804 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 044338 7F00F808 27A50054 */ addiu $a1, $sp, 0x54 +/* 04433C 7F00F80C 00408025 */ move $s0, $v0 +/* 044340 7F00F810 0FC30776 */ jal get_textptr_for_textID +/* 044344 7F00F814 34049C28 */ li $a0, 39976 +/* 044348 7F00F818 24090037 */ li $t1, 55 +/* 04434C 7F00F81C 2403008F */ li $v1, 143 +/* 044350 7F00F820 AFA20C14 */ sw $v0, 0xc14($sp) +/* 044354 7F00F824 AFA90C10 */ sw $t1, 0xc10($sp) +/* 044358 7F00F828 0C001107 */ jal get_video2_settings_txtClipW +/* 04435C 7F00F82C AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044360 7F00F830 0C00110B */ jal get_video2_settings_txtClipH +/* 044364 7F00F834 A7A20044 */ sh $v0, 0x44($sp) +/* 044368 7F00F838 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04436C 7F00F83C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 044370 7F00F840 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 044374 7F00F844 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 044378 7F00F848 87AD0044 */ lh $t5, 0x44($sp) +/* 04437C 7F00F84C 240C00FF */ li $t4, 255 +/* 044380 7F00F850 AFAC0018 */ sw $t4, 0x18($sp) +/* 044384 7F00F854 02002025 */ move $a0, $s0 +/* 044388 7F00F858 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 04438C 7F00F85C 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044390 7F00F860 8FA70C14 */ lw $a3, 0xc14($sp) +/* 044394 7F00F864 AFA20020 */ sw $v0, 0x20($sp) +/* 044398 7F00F868 AFA00024 */ sw $zero, 0x24($sp) +/* 04439C 7F00F86C AFA00028 */ sw $zero, 0x28($sp) +/* 0443A0 7F00F870 AFAB0014 */ sw $t3, 0x14($sp) +/* 0443A4 7F00F874 AFAA0010 */ sw $t2, 0x10($sp) +/* 0443A8 7F00F878 0FC025D8 */ jal write_text_at_abs_coord +/* 0443AC 7F00F87C AFAD001C */ sw $t5, 0x1c($sp) +/* 0443B0 7F00F880 00408025 */ move $s0, $v0 +/* 0443B4 7F00F884 0FC30776 */ jal get_textptr_for_textID +/* 0443B8 7F00F888 34049C2A */ li $a0, 39978 +/* 0443BC 7F00F88C 24190039 */ li $t9, 57 +/* 0443C0 7F00F890 240300A4 */ li $v1, 164 +/* 0443C4 7F00F894 241800C0 */ li $t8, 192 +/* 0443C8 7F00F898 24080032 */ li $t0, 50 +/* 0443CC 7F00F89C AFA20C14 */ sw $v0, 0xc14($sp) +/* 0443D0 7F00F8A0 AFB90C10 */ sw $t9, 0xc10($sp) +/* 0443D4 7F00F8A4 AFA80014 */ sw $t0, 0x14($sp) +/* 0443D8 7F00F8A8 AFB80010 */ sw $t8, 0x10($sp) +/* 0443DC 7F00F8AC AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0443E0 7F00F8B0 02002025 */ move $a0, $s0 +/* 0443E4 7F00F8B4 24050037 */ li $a1, 55 +/* 0443E8 7F00F8B8 240600B5 */ li $a2, 181 +/* 0443EC 7F00F8BC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0443F0 7F00F8C0 24070163 */ li $a3, 355 +/* 0443F4 7F00F8C4 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 0443F8 7F00F8C8 C424A9A4 */ lwc1 $f4, %lo(slider_007_mode_health)($at) +/* 0443FC 7F00F8CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044400 7F00F8D0 44813000 */ mtc1 $at, $f6 +/* 044404 7F00F8D4 00408025 */ move $s0, $v0 +/* 044408 7F00F8D8 0C007DF8 */ jal sqrtf +/* 04440C 7F00F8DC 46062303 */ div.s $f12, $f4, $f6 +/* 044410 7F00F8E0 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044414 7F00F8E4 44814000 */ mtc1 $at, $f8 +/* 044418 7F00F8E8 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 04441C 7F00F8EC 24090064 */ li $t1, 100 +/* 044420 7F00F8F0 46080282 */ mul.s $f10, $f0, $f8 +/* 044424 7F00F8F4 246E001C */ addiu $t6, $v1, 0x1c +/* 044428 7F00F8F8 AFAE0010 */ sw $t6, 0x10($sp) +/* 04442C 7F00F8FC AFA90014 */ sw $t1, 0x14($sp) +/* 044430 7F00F900 02002025 */ move $a0, $s0 +/* 044434 7F00F904 24050037 */ li $a1, 55 +/* 044438 7F00F908 24660011 */ addiu $a2, $v1, 0x11 +/* 04443C 7F00F90C 4600540D */ trunc.w.s $f16, $f10 +/* 044440 7F00F910 44078000 */ mfc1 $a3, $f16 +/* 044444 7F00F914 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044448 7F00F918 24E70037 */ addiu $a3, $a3, 0x37 +/* 04444C 7F00F91C 3C0A8007 */ lui $t2, %hi(highlight_enemy_health) +/* 044450 7F00F920 8D4A9798 */ lw $t2, %lo(highlight_enemy_health)($t2) +/* 044454 7F00F924 00408025 */ move $s0, $v0 +/* 044458 7F00F928 1140000C */ beqz $t2, .L7F00F95C +/* 04445C 7F00F92C 00000000 */ nop +/* 044460 7F00F930 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044464 7F00F934 240C0032 */ li $t4, 50 +/* 044468 7F00F938 AFAC0014 */ sw $t4, 0x14($sp) +/* 04446C 7F00F93C 246B000E */ addiu $t3, $v1, 0xe +/* 044470 7F00F940 AFAB0010 */ sw $t3, 0x10($sp) +/* 044474 7F00F944 00402025 */ move $a0, $v0 +/* 044478 7F00F948 24050037 */ li $a1, 55 +/* 04447C 7F00F94C 240700C7 */ li $a3, 199 +/* 044480 7F00F950 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044484 7F00F954 2466FFFF */ addiu $a2, $v1, -1 +/* 044488 7F00F958 00408025 */ move $s0, $v0 +.L7F00F95C: +/* 04448C 7F00F95C 0C001107 */ jal get_video2_settings_txtClipW +/* 044490 7F00F960 00000000 */ nop +/* 044494 7F00F964 0C00110B */ jal get_video2_settings_txtClipH +/* 044498 7F00F968 A7A20044 */ sh $v0, 0x44($sp) +/* 04449C 7F00F96C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0444A0 7F00F970 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0444A4 7F00F974 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0444A8 7F00F978 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 0444AC 7F00F97C 87A80044 */ lh $t0, 0x44($sp) +/* 0444B0 7F00F980 241800FF */ li $t8, 255 +/* 0444B4 7F00F984 AFB80018 */ sw $t8, 0x18($sp) +/* 0444B8 7F00F988 02002025 */ move $a0, $s0 +/* 0444BC 7F00F98C 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0444C0 7F00F990 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0444C4 7F00F994 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0444C8 7F00F998 AFA20020 */ sw $v0, 0x20($sp) +/* 0444CC 7F00F99C AFA00024 */ sw $zero, 0x24($sp) +/* 0444D0 7F00F9A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0444D4 7F00F9A4 AFB90014 */ sw $t9, 0x14($sp) +/* 0444D8 7F00F9A8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0444DC 7F00F9AC 0FC025D8 */ jal write_text_at_abs_coord +/* 0444E0 7F00F9B0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0444E4 7F00F9B4 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 0444E8 7F00F9B8 C432A9A4 */ lwc1 $f18, %lo(slider_007_mode_health)($at) +/* 0444EC 7F00F9BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0444F0 7F00F9C0 44812000 */ mtc1 $at, $f4 +/* 0444F4 7F00F9C4 3C058005 */ lui $a1, %hi(aD) +/* 0444F8 7F00F9C8 00408025 */ move $s0, $v0 +/* 0444FC 7F00F9CC 46049182 */ mul.s $f6, $f18, $f4 +/* 044500 7F00F9D0 24A50C2C */ addiu $a1, %lo(aD) # addiu $a1, $a1, 0xc2c +/* 044504 7F00F9D4 27A40054 */ addiu $a0, $sp, 0x54 +/* 044508 7F00F9D8 4600320D */ trunc.w.s $f8, $f6 +/* 04450C 7F00F9DC 44064000 */ mfc1 $a2, $f8 +/* 044510 7F00F9E0 0C002B25 */ jal sprintf +/* 044514 7F00F9E4 00000000 */ nop +/* 044518 7F00F9E8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04451C 7F00F9EC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 044520 7F00F9F0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044524 7F00F9F4 AFA0004C */ sw $zero, 0x4c($sp) +/* 044528 7F00F9F8 AFA00050 */ sw $zero, 0x50($sp) +/* 04452C 7F00F9FC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044530 7F00FA00 27A40050 */ addiu $a0, $sp, 0x50 +/* 044534 7F00FA04 27A5004C */ addiu $a1, $sp, 0x4c +/* 044538 7F00FA08 27A60054 */ addiu $a2, $sp, 0x54 +/* 04453C 7F00FA0C AFA00014 */ sw $zero, 0x14($sp) +/* 044540 7F00FA10 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044544 7F00FA14 AFAE0010 */ sw $t6, 0x10($sp) +/* 044548 7F00FA18 8FA9004C */ lw $t1, 0x4c($sp) +/* 04454C 7F00FA1C 240A011D */ li $t2, 285 +/* 044550 7F00FA20 240300A4 */ li $v1, 164 +/* 044554 7F00FA24 01495823 */ subu $t3, $t2, $t1 +/* 044558 7F00FA28 AFAB0C10 */ sw $t3, 0xc10($sp) +/* 04455C 7F00FA2C 0C001107 */ jal get_video2_settings_txtClipW +/* 044560 7F00FA30 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044564 7F00FA34 0C00110B */ jal get_video2_settings_txtClipH +/* 044568 7F00FA38 A7A20044 */ sh $v0, 0x44($sp) +/* 04456C 7F00FA3C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 044570 7F00FA40 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 044574 7F00FA44 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 044578 7F00FA48 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04457C 7F00FA4C 87B80044 */ lh $t8, 0x44($sp) +/* 044580 7F00FA50 241900FF */ li $t9, 255 +/* 044584 7F00FA54 AFB90018 */ sw $t9, 0x18($sp) +/* 044588 7F00FA58 02002025 */ move $a0, $s0 +/* 04458C 7F00FA5C 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044590 7F00FA60 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044594 7F00FA64 27A70054 */ addiu $a3, $sp, 0x54 +/* 044598 7F00FA68 AFA20020 */ sw $v0, 0x20($sp) +/* 04459C 7F00FA6C AFA00024 */ sw $zero, 0x24($sp) +/* 0445A0 7F00FA70 AFA00028 */ sw $zero, 0x28($sp) +/* 0445A4 7F00FA74 AFAD0014 */ sw $t5, 0x14($sp) +/* 0445A8 7F00FA78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0445AC 7F00FA7C 0FC025D8 */ jal write_text_at_abs_coord +/* 0445B0 7F00FA80 AFB8001C */ sw $t8, 0x1c($sp) +/* 0445B4 7F00FA84 00408025 */ move $s0, $v0 +/* 0445B8 7F00FA88 0FC30776 */ jal get_textptr_for_textID +/* 0445BC 7F00FA8C 34049C2B */ li $a0, 39979 +/* 0445C0 7F00FA90 24080039 */ li $t0, 57 +/* 0445C4 7F00FA94 240300C5 */ li $v1, 197 +/* 0445C8 7F00FA98 240F00E1 */ li $t7, 225 +/* 0445CC 7F00FA9C 240E0032 */ li $t6, 50 +/* 0445D0 7F00FAA0 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0445D4 7F00FAA4 AFA80C10 */ sw $t0, 0xc10($sp) +/* 0445D8 7F00FAA8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0445DC 7F00FAAC AFAF0010 */ sw $t7, 0x10($sp) +/* 0445E0 7F00FAB0 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0445E4 7F00FAB4 02002025 */ move $a0, $s0 +/* 0445E8 7F00FAB8 24050037 */ li $a1, 55 +/* 0445EC 7F00FABC 240600D6 */ li $a2, 214 +/* 0445F0 7F00FAC0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0445F4 7F00FAC4 24070163 */ li $a3, 355 +/* 0445F8 7F00FAC8 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0445FC 7F00FACC C42AA9A8 */ lwc1 $f10, %lo(slider_007_mode_accuracy)($at) +/* 044600 7F00FAD0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044604 7F00FAD4 44818000 */ mtc1 $at, $f16 +/* 044608 7F00FAD8 00408025 */ move $s0, $v0 +/* 04460C 7F00FADC 0C007DF8 */ jal sqrtf +/* 044610 7F00FAE0 46105303 */ div.s $f12, $f10, $f16 +/* 044614 7F00FAE4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044618 7F00FAE8 44819000 */ mtc1 $at, $f18 +/* 04461C 7F00FAEC 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044620 7F00FAF0 240B0064 */ li $t3, 100 +/* 044624 7F00FAF4 46120102 */ mul.s $f4, $f0, $f18 +/* 044628 7F00FAF8 2469001C */ addiu $t1, $v1, 0x1c +/* 04462C 7F00FAFC AFA90010 */ sw $t1, 0x10($sp) +/* 044630 7F00FB00 AFAB0014 */ sw $t3, 0x14($sp) +/* 044634 7F00FB04 02002025 */ move $a0, $s0 +/* 044638 7F00FB08 24050037 */ li $a1, 55 +/* 04463C 7F00FB0C 24660011 */ addiu $a2, $v1, 0x11 +/* 044640 7F00FB10 4600218D */ trunc.w.s $f6, $f4 +/* 044644 7F00FB14 44073000 */ mfc1 $a3, $f6 +/* 044648 7F00FB18 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04464C 7F00FB1C 24E70037 */ addiu $a3, $a3, 0x37 +/* 044650 7F00FB20 3C0C8007 */ lui $t4, %hi(highlight_enemy_accuracy) +/* 044654 7F00FB24 8D8C979C */ lw $t4, %lo(highlight_enemy_accuracy)($t4) +/* 044658 7F00FB28 00408025 */ move $s0, $v0 +/* 04465C 7F00FB2C 1180000C */ beqz $t4, .L7F00FB60 +/* 044660 7F00FB30 00000000 */ nop +/* 044664 7F00FB34 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044668 7F00FB38 24190032 */ li $t9, 50 +/* 04466C 7F00FB3C AFB90014 */ sw $t9, 0x14($sp) +/* 044670 7F00FB40 246D000E */ addiu $t5, $v1, 0xe +/* 044674 7F00FB44 AFAD0010 */ sw $t5, 0x10($sp) +/* 044678 7F00FB48 00402025 */ move $a0, $v0 +/* 04467C 7F00FB4C 24050037 */ li $a1, 55 +/* 044680 7F00FB50 240700C7 */ li $a3, 199 +/* 044684 7F00FB54 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044688 7F00FB58 2466FFFF */ addiu $a2, $v1, -1 +/* 04468C 7F00FB5C 00408025 */ move $s0, $v0 +.L7F00FB60: +/* 044690 7F00FB60 0C001107 */ jal get_video2_settings_txtClipW +/* 044694 7F00FB64 00000000 */ nop +/* 044698 7F00FB68 0C00110B */ jal get_video2_settings_txtClipH +/* 04469C 7F00FB6C A7A20044 */ sh $v0, 0x44($sp) +/* 0446A0 7F00FB70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 0446A4 7F00FB74 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 0446A8 7F00FB78 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 0446AC 7F00FB7C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0446B0 7F00FB80 87AE0044 */ lh $t6, 0x44($sp) +/* 0446B4 7F00FB84 240F00FF */ li $t7, 255 +/* 0446B8 7F00FB88 AFAF0018 */ sw $t7, 0x18($sp) +/* 0446BC 7F00FB8C 02002025 */ move $a0, $s0 +/* 0446C0 7F00FB90 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0446C4 7F00FB94 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0446C8 7F00FB98 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0446CC 7F00FB9C AFA20020 */ sw $v0, 0x20($sp) +/* 0446D0 7F00FBA0 AFA00024 */ sw $zero, 0x24($sp) +/* 0446D4 7F00FBA4 AFA00028 */ sw $zero, 0x28($sp) +/* 0446D8 7F00FBA8 AFA80014 */ sw $t0, 0x14($sp) +/* 0446DC 7F00FBAC AFB80010 */ sw $t8, 0x10($sp) +/* 0446E0 7F00FBB0 0FC025D8 */ jal write_text_at_abs_coord +/* 0446E4 7F00FBB4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0446E8 7F00FBB8 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0446EC 7F00FBBC C428A9A8 */ lwc1 $f8, %lo(slider_007_mode_accuracy)($at) +/* 0446F0 7F00FBC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0446F4 7F00FBC4 44815000 */ mtc1 $at, $f10 +/* 0446F8 7F00FBC8 3C058005 */ lui $a1, %hi(aD_0) +/* 0446FC 7F00FBCC 00408025 */ move $s0, $v0 +/* 044700 7F00FBD0 460A4402 */ mul.s $f16, $f8, $f10 +/* 044704 7F00FBD4 24A50C34 */ addiu $a1, %lo(aD_0) # addiu $a1, $a1, 0xc34 +/* 044708 7F00FBD8 27A40054 */ addiu $a0, $sp, 0x54 +/* 04470C 7F00FBDC 4600848D */ trunc.w.s $f18, $f16 +/* 044710 7F00FBE0 44069000 */ mfc1 $a2, $f18 +/* 044714 7F00FBE4 0C002B25 */ jal sprintf +/* 044718 7F00FBE8 00000000 */ nop +/* 04471C 7F00FBEC 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 044720 7F00FBF0 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 044724 7F00FBF4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044728 7F00FBF8 AFA0004C */ sw $zero, 0x4c($sp) +/* 04472C 7F00FBFC AFA00050 */ sw $zero, 0x50($sp) +/* 044730 7F00FC00 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044734 7F00FC04 27A40050 */ addiu $a0, $sp, 0x50 +/* 044738 7F00FC08 27A5004C */ addiu $a1, $sp, 0x4c +/* 04473C 7F00FC0C 27A60054 */ addiu $a2, $sp, 0x54 +/* 044740 7F00FC10 AFA00014 */ sw $zero, 0x14($sp) +/* 044744 7F00FC14 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044748 7F00FC18 AFA90010 */ sw $t1, 0x10($sp) +/* 04474C 7F00FC1C 8FAB004C */ lw $t3, 0x4c($sp) +/* 044750 7F00FC20 240C011D */ li $t4, 285 +/* 044754 7F00FC24 240300C5 */ li $v1, 197 +/* 044758 7F00FC28 018B6823 */ subu $t5, $t4, $t3 +/* 04475C 7F00FC2C AFAD0C10 */ sw $t5, 0xc10($sp) +/* 044760 7F00FC30 0C001107 */ jal get_video2_settings_txtClipW +/* 044764 7F00FC34 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044768 7F00FC38 0C00110B */ jal get_video2_settings_txtClipH +/* 04476C 7F00FC3C A7A20044 */ sh $v0, 0x44($sp) +/* 044770 7F00FC40 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 044774 7F00FC44 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 044778 7F00FC48 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04477C 7F00FC4C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 044780 7F00FC50 87AF0044 */ lh $t7, 0x44($sp) +/* 044784 7F00FC54 240800FF */ li $t0, 255 +/* 044788 7F00FC58 AFA80018 */ sw $t0, 0x18($sp) +/* 04478C 7F00FC5C 02002025 */ move $a0, $s0 +/* 044790 7F00FC60 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044794 7F00FC64 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044798 7F00FC68 27A70054 */ addiu $a3, $sp, 0x54 +/* 04479C 7F00FC6C AFA20020 */ sw $v0, 0x20($sp) +/* 0447A0 7F00FC70 AFA00024 */ sw $zero, 0x24($sp) +/* 0447A4 7F00FC74 AFA00028 */ sw $zero, 0x28($sp) +/* 0447A8 7F00FC78 AFB80014 */ sw $t8, 0x14($sp) +/* 0447AC 7F00FC7C AFB90010 */ sw $t9, 0x10($sp) +/* 0447B0 7F00FC80 0FC025D8 */ jal write_text_at_abs_coord +/* 0447B4 7F00FC84 AFAF001C */ sw $t7, 0x1c($sp) +/* 0447B8 7F00FC88 00408025 */ move $s0, $v0 +/* 0447BC 7F00FC8C 0FC30776 */ jal get_textptr_for_textID +/* 0447C0 7F00FC90 34049C2C */ li $a0, 39980 +/* 0447C4 7F00FC94 240E0039 */ li $t6, 57 +/* 0447C8 7F00FC98 240300E6 */ li $v1, 230 +/* 0447CC 7F00FC9C 240A0102 */ li $t2, 258 +/* 0447D0 7F00FCA0 24090032 */ li $t1, 50 +/* 0447D4 7F00FCA4 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0447D8 7F00FCA8 AFAE0C10 */ sw $t6, 0xc10($sp) +/* 0447DC 7F00FCAC AFA90014 */ sw $t1, 0x14($sp) +/* 0447E0 7F00FCB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0447E4 7F00FCB4 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0447E8 7F00FCB8 02002025 */ move $a0, $s0 +/* 0447EC 7F00FCBC 24050037 */ li $a1, 55 +/* 0447F0 7F00FCC0 240600F7 */ li $a2, 247 +/* 0447F4 7F00FCC4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0447F8 7F00FCC8 24070163 */ li $a3, 355 +/* 0447FC 7F00FCCC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 044800 7F00FCD0 C424A9AC */ lwc1 $f4, %lo(slider_007_mode_damage)($at) +/* 044804 7F00FCD4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044808 7F00FCD8 44813000 */ mtc1 $at, $f6 +/* 04480C 7F00FCDC 00408025 */ move $s0, $v0 +/* 044810 7F00FCE0 0C007DF8 */ jal sqrtf +/* 044814 7F00FCE4 46062303 */ div.s $f12, $f4, $f6 +/* 044818 7F00FCE8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 04481C 7F00FCEC 44814000 */ mtc1 $at, $f8 +/* 044820 7F00FCF0 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044824 7F00FCF4 240D0064 */ li $t5, 100 +/* 044828 7F00FCF8 46080282 */ mul.s $f10, $f0, $f8 +/* 04482C 7F00FCFC 246B001C */ addiu $t3, $v1, 0x1c +/* 044830 7F00FD00 AFAB0010 */ sw $t3, 0x10($sp) +/* 044834 7F00FD04 AFAD0014 */ sw $t5, 0x14($sp) +/* 044838 7F00FD08 02002025 */ move $a0, $s0 +/* 04483C 7F00FD0C 24050037 */ li $a1, 55 +/* 044840 7F00FD10 24660011 */ addiu $a2, $v1, 0x11 +/* 044844 7F00FD14 4600540D */ trunc.w.s $f16, $f10 +/* 044848 7F00FD18 44078000 */ mfc1 $a3, $f16 +/* 04484C 7F00FD1C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044850 7F00FD20 24E70037 */ addiu $a3, $a3, 0x37 +/* 044854 7F00FD24 3C198007 */ lui $t9, %hi(highlight_enemy_damage) +/* 044858 7F00FD28 8F3997A0 */ lw $t9, %lo(highlight_enemy_damage)($t9) +/* 04485C 7F00FD2C 00408025 */ move $s0, $v0 +/* 044860 7F00FD30 1320000C */ beqz $t9, .L7F00FD64 +/* 044864 7F00FD34 00000000 */ nop +/* 044868 7F00FD38 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 04486C 7F00FD3C 24080032 */ li $t0, 50 +/* 044870 7F00FD40 AFA80014 */ sw $t0, 0x14($sp) +/* 044874 7F00FD44 2478000E */ addiu $t8, $v1, 0xe +/* 044878 7F00FD48 AFB80010 */ sw $t8, 0x10($sp) +/* 04487C 7F00FD4C 00402025 */ move $a0, $v0 +/* 044880 7F00FD50 24050037 */ li $a1, 55 +/* 044884 7F00FD54 240700C7 */ li $a3, 199 +/* 044888 7F00FD58 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04488C 7F00FD5C 2466FFFF */ addiu $a2, $v1, -1 +/* 044890 7F00FD60 00408025 */ move $s0, $v0 +.L7F00FD64: +/* 044894 7F00FD64 0C001107 */ jal get_video2_settings_txtClipW +/* 044898 7F00FD68 00000000 */ nop +/* 04489C 7F00FD6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0448A0 7F00FD70 A7A20044 */ sh $v0, 0x44($sp) +/* 0448A4 7F00FD74 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 0448A8 7F00FD78 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0448AC 7F00FD7C 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0448B0 7F00FD80 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 0448B4 7F00FD84 87A90044 */ lh $t1, 0x44($sp) +/* 0448B8 7F00FD88 240A00FF */ li $t2, 255 +/* 0448BC 7F00FD8C AFAA0018 */ sw $t2, 0x18($sp) +/* 0448C0 7F00FD90 02002025 */ move $a0, $s0 +/* 0448C4 7F00FD94 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0448C8 7F00FD98 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0448CC 7F00FD9C 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0448D0 7F00FDA0 AFA20020 */ sw $v0, 0x20($sp) +/* 0448D4 7F00FDA4 AFA00024 */ sw $zero, 0x24($sp) +/* 0448D8 7F00FDA8 AFA00028 */ sw $zero, 0x28($sp) +/* 0448DC 7F00FDAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0448E0 7F00FDB0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0448E4 7F00FDB4 0FC025D8 */ jal write_text_at_abs_coord +/* 0448E8 7F00FDB8 AFA9001C */ sw $t1, 0x1c($sp) +/* 0448EC 7F00FDBC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 0448F0 7F00FDC0 C432A9AC */ lwc1 $f18, %lo(slider_007_mode_damage)($at) +/* 0448F4 7F00FDC4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0448F8 7F00FDC8 44812000 */ mtc1 $at, $f4 +/* 0448FC 7F00FDCC 3C058005 */ lui $a1, %hi(aD_1) +/* 044900 7F00FDD0 00408025 */ move $s0, $v0 +/* 044904 7F00FDD4 46049182 */ mul.s $f6, $f18, $f4 +/* 044908 7F00FDD8 24A50C3C */ addiu $a1, %lo(aD_1) # addiu $a1, $a1, 0xc3c +/* 04490C 7F00FDDC 27A40054 */ addiu $a0, $sp, 0x54 +/* 044910 7F00FDE0 4600320D */ trunc.w.s $f8, $f6 +/* 044914 7F00FDE4 44064000 */ mfc1 $a2, $f8 +/* 044918 7F00FDE8 0C002B25 */ jal sprintf +/* 04491C 7F00FDEC 00000000 */ nop +/* 044920 7F00FDF0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 044924 7F00FDF4 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 044928 7F00FDF8 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04492C 7F00FDFC AFA0004C */ sw $zero, 0x4c($sp) +/* 044930 7F00FE00 AFA00050 */ sw $zero, 0x50($sp) +/* 044934 7F00FE04 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044938 7F00FE08 27A40050 */ addiu $a0, $sp, 0x50 +/* 04493C 7F00FE0C 27A5004C */ addiu $a1, $sp, 0x4c +/* 044940 7F00FE10 27A60054 */ addiu $a2, $sp, 0x54 +/* 044944 7F00FE14 AFA00014 */ sw $zero, 0x14($sp) +/* 044948 7F00FE18 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04494C 7F00FE1C AFAB0010 */ sw $t3, 0x10($sp) +/* 044950 7F00FE20 8FAD004C */ lw $t5, 0x4c($sp) +/* 044954 7F00FE24 2419011D */ li $t9, 285 +/* 044958 7F00FE28 240300E6 */ li $v1, 230 +/* 04495C 7F00FE2C 032DC023 */ subu $t8, $t9, $t5 +/* 044960 7F00FE30 AFB80C10 */ sw $t8, 0xc10($sp) +/* 044964 7F00FE34 0C001107 */ jal get_video2_settings_txtClipW +/* 044968 7F00FE38 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 04496C 7F00FE3C 0C00110B */ jal get_video2_settings_txtClipH +/* 044970 7F00FE40 A7A20044 */ sh $v0, 0x44($sp) +/* 044974 7F00FE44 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 044978 7F00FE48 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04497C 7F00FE4C 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 044980 7F00FE50 8D080EB8 */ lw $t0, %lo(ptrSecondFontTableLarge)($t0) +/* 044984 7F00FE54 87AA0044 */ lh $t2, 0x44($sp) +/* 044988 7F00FE58 240E00FF */ li $t6, 255 +/* 04498C 7F00FE5C AFAE0018 */ sw $t6, 0x18($sp) +/* 044990 7F00FE60 02002025 */ move $a0, $s0 +/* 044994 7F00FE64 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044998 7F00FE68 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 04499C 7F00FE6C 27A70054 */ addiu $a3, $sp, 0x54 +/* 0449A0 7F00FE70 AFA20020 */ sw $v0, 0x20($sp) +/* 0449A4 7F00FE74 AFA00024 */ sw $zero, 0x24($sp) +/* 0449A8 7F00FE78 AFA00028 */ sw $zero, 0x28($sp) +/* 0449AC 7F00FE7C AFAF0014 */ sw $t7, 0x14($sp) +/* 0449B0 7F00FE80 AFA80010 */ sw $t0, 0x10($sp) +/* 0449B4 7F00FE84 0FC025D8 */ jal write_text_at_abs_coord +/* 0449B8 7F00FE88 AFAA001C */ sw $t2, 0x1c($sp) +/* 0449BC 7F00FE8C 00408025 */ move $s0, $v0 +/* 0449C0 7F00FE90 0FC30776 */ jal get_textptr_for_textID +/* 0449C4 7F00FE94 34049C29 */ li $a0, 39977 +/* 0449C8 7F00FE98 24090039 */ li $t1, 57 +/* 0449CC 7F00FE9C 24030107 */ li $v1, 263 +/* 0449D0 7F00FEA0 240C0123 */ li $t4, 291 +/* 0449D4 7F00FEA4 240B0032 */ li $t3, 50 +/* 0449D8 7F00FEA8 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0449DC 7F00FEAC AFA90C10 */ sw $t1, 0xc10($sp) +/* 0449E0 7F00FEB0 AFAB0014 */ sw $t3, 0x14($sp) +/* 0449E4 7F00FEB4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0449E8 7F00FEB8 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0449EC 7F00FEBC 02002025 */ move $a0, $s0 +/* 0449F0 7F00FEC0 24050037 */ li $a1, 55 +/* 0449F4 7F00FEC4 24060118 */ li $a2, 280 +/* 0449F8 7F00FEC8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0449FC 7F00FECC 24070163 */ li $a3, 355 +/* 044A00 7F00FED0 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044A04 7F00FED4 C42AA9A0 */ lwc1 $f10, %lo(slider_007_mode_reaction)($at) +/* 044A08 7F00FED8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044A0C 7F00FEDC 44818000 */ mtc1 $at, $f16 +/* 044A10 7F00FEE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 044A14 7F00FEE4 44812000 */ mtc1 $at, $f4 +/* 044A18 7F00FEE8 46105482 */ mul.s $f18, $f10, $f16 +/* 044A1C 7F00FEEC 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044A20 7F00FEF0 24180064 */ li $t8, 100 +/* 044A24 7F00FEF4 AFB80014 */ sw $t8, 0x14($sp) +/* 044A28 7F00FEF8 246D001C */ addiu $t5, $v1, 0x1c +/* 044A2C 7F00FEFC AFAD0010 */ sw $t5, 0x10($sp) +/* 044A30 7F00FF00 00402025 */ move $a0, $v0 +/* 044A34 7F00FF04 46049182 */ mul.s $f6, $f18, $f4 +/* 044A38 7F00FF08 24050037 */ li $a1, 55 +/* 044A3C 7F00FF0C 24660011 */ addiu $a2, $v1, 0x11 +/* 044A40 7F00FF10 4600320D */ trunc.w.s $f8, $f6 +/* 044A44 7F00FF14 44074000 */ mfc1 $a3, $f8 +/* 044A48 7F00FF18 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044A4C 7F00FF1C 24E70037 */ addiu $a3, $a3, 0x37 +/* 044A50 7F00FF20 3C088007 */ lui $t0, %hi(highlight_enemy_reaction) +/* 044A54 7F00FF24 8D089794 */ lw $t0, %lo(highlight_enemy_reaction)($t0) +/* 044A58 7F00FF28 00408025 */ move $s0, $v0 +/* 044A5C 7F00FF2C 1100000C */ beqz $t0, .L7F00FF60 +/* 044A60 7F00FF30 00000000 */ nop +/* 044A64 7F00FF34 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044A68 7F00FF38 240E0032 */ li $t6, 50 +/* 044A6C 7F00FF3C AFAE0014 */ sw $t6, 0x14($sp) +/* 044A70 7F00FF40 246F000E */ addiu $t7, $v1, 0xe +/* 044A74 7F00FF44 AFAF0010 */ sw $t7, 0x10($sp) +/* 044A78 7F00FF48 00402025 */ move $a0, $v0 +/* 044A7C 7F00FF4C 24050037 */ li $a1, 55 +/* 044A80 7F00FF50 240700C7 */ li $a3, 199 +/* 044A84 7F00FF54 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044A88 7F00FF58 2466FFFF */ addiu $a2, $v1, -1 +/* 044A8C 7F00FF5C 00408025 */ move $s0, $v0 +.L7F00FF60: +/* 044A90 7F00FF60 0C001107 */ jal get_video2_settings_txtClipW +/* 044A94 7F00FF64 00000000 */ nop +/* 044A98 7F00FF68 0C00110B */ jal get_video2_settings_txtClipH +/* 044A9C 7F00FF6C A7A20044 */ sh $v0, 0x44($sp) +/* 044AA0 7F00FF70 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 044AA4 7F00FF74 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 044AA8 7F00FF78 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 044AAC 7F00FF7C 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 044AB0 7F00FF80 87AB0044 */ lh $t3, 0x44($sp) +/* 044AB4 7F00FF84 240C00FF */ li $t4, 255 +/* 044AB8 7F00FF88 AFAC0018 */ sw $t4, 0x18($sp) +/* 044ABC 7F00FF8C 02002025 */ move $a0, $s0 +/* 044AC0 7F00FF90 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044AC4 7F00FF94 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044AC8 7F00FF98 8FA70C14 */ lw $a3, 0xc14($sp) +/* 044ACC 7F00FF9C AFA20020 */ sw $v0, 0x20($sp) +/* 044AD0 7F00FFA0 AFA00024 */ sw $zero, 0x24($sp) +/* 044AD4 7F00FFA4 AFA00028 */ sw $zero, 0x28($sp) +/* 044AD8 7F00FFA8 AFA90014 */ sw $t1, 0x14($sp) +/* 044ADC 7F00FFAC AFAA0010 */ sw $t2, 0x10($sp) +/* 044AE0 7F00FFB0 0FC025D8 */ jal write_text_at_abs_coord +/* 044AE4 7F00FFB4 AFAB001C */ sw $t3, 0x1c($sp) +/* 044AE8 7F00FFB8 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044AEC 7F00FFBC C42AA9A0 */ lwc1 $f10, %lo(slider_007_mode_reaction)($at) +/* 044AF0 7F00FFC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 044AF4 7F00FFC4 44818000 */ mtc1 $at, $f16 +/* 044AF8 7F00FFC8 3C058005 */ lui $a1, %hi(aD_2) +/* 044AFC 7F00FFCC 00408025 */ move $s0, $v0 +/* 044B00 7F00FFD0 46105482 */ mul.s $f18, $f10, $f16 +/* 044B04 7F00FFD4 24A50C44 */ addiu $a1, %lo(aD_2) # addiu $a1, $a1, 0xc44 +/* 044B08 7F00FFD8 27A40054 */ addiu $a0, $sp, 0x54 +/* 044B0C 7F00FFDC 4600910D */ trunc.w.s $f4, $f18 +/* 044B10 7F00FFE0 44062000 */ mfc1 $a2, $f4 +/* 044B14 7F00FFE4 0C002B25 */ jal sprintf +/* 044B18 7F00FFE8 00000000 */ nop +/* 044B1C 7F00FFEC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 044B20 7F00FFF0 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 044B24 7F00FFF4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044B28 7F00FFF8 AFA0004C */ sw $zero, 0x4c($sp) +/* 044B2C 7F00FFFC AFA00050 */ sw $zero, 0x50($sp) +/* 044B30 7F010000 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044B34 7F010004 27A40050 */ addiu $a0, $sp, 0x50 +/* 044B38 7F010008 27A5004C */ addiu $a1, $sp, 0x4c +/* 044B3C 7F01000C 27A60054 */ addiu $a2, $sp, 0x54 +/* 044B40 7F010010 AFA00014 */ sw $zero, 0x14($sp) +/* 044B44 7F010014 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044B48 7F010018 AFAD0010 */ sw $t5, 0x10($sp) +/* 044B4C 7F01001C 8FB8004C */ lw $t8, 0x4c($sp) +/* 044B50 7F010020 2408011D */ li $t0, 285 +/* 044B54 7F010024 24030107 */ li $v1, 263 +/* 044B58 7F010028 01187823 */ subu $t7, $t0, $t8 +/* 044B5C 7F01002C AFAF0C10 */ sw $t7, 0xc10($sp) +/* 044B60 7F010030 0C001107 */ jal get_video2_settings_txtClipW +/* 044B64 7F010034 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044B68 7F010038 0C00110B */ jal get_video2_settings_txtClipH +/* 044B6C 7F01003C A7A20044 */ sh $v0, 0x44($sp) +/* 044B70 7F010040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 044B74 7F010044 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 044B78 7F010048 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 044B7C 7F01004C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 044B80 7F010050 87AC0044 */ lh $t4, 0x44($sp) +/* 044B84 7F010054 240900FF */ li $t1, 255 +/* 044B88 7F010058 AFA90018 */ sw $t1, 0x18($sp) +/* 044B8C 7F01005C 02002025 */ move $a0, $s0 +/* 044B90 7F010060 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044B94 7F010064 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044B98 7F010068 27A70054 */ addiu $a3, $sp, 0x54 +/* 044B9C 7F01006C AFA20020 */ sw $v0, 0x20($sp) +/* 044BA0 7F010070 AFA00024 */ sw $zero, 0x24($sp) +/* 044BA4 7F010074 AFA00028 */ sw $zero, 0x28($sp) +/* 044BA8 7F010078 AFAA0014 */ sw $t2, 0x14($sp) +/* 044BAC 7F01007C AFAE0010 */ sw $t6, 0x10($sp) +/* 044BB0 7F010080 0FC025D8 */ jal write_text_at_abs_coord +/* 044BB4 7F010084 AFAC001C */ sw $t4, 0x1c($sp) +/* 044BB8 7F010088 0FC02820 */ jal add_tab1_start +/* 044BBC 7F01008C 00402025 */ move $a0, $v0 +/* 044BC0 7F010090 0FC0288E */ jal add_tab3_previous +/* 044BC4 7F010094 00402025 */ move $a0, $v0 +/* 044BC8 7F010098 0FC02905 */ jal add_tab2_next +/* 044BCC 7F01009C 00402025 */ move $a0, $v0 +/* 044BD0 7F0100A0 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 044BD4 7F0100A4 00402025 */ move $a0, $v0 +/* 044BD8 7F0100A8 8FBF003C */ lw $ra, 0x3c($sp) +/* 044BDC 7F0100AC 8FB00038 */ lw $s0, 0x38($sp) +/* 044BE0 7F0100B0 27BD0C18 */ addiu $sp, $sp, 0xc18 +/* 044BE4 7F0100B4 03E00008 */ jr $ra +/* 044BE8 7F0100B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_player_control_style(int playernum) { + return (&controlstyle_player)[playernum]; +} +#else +GLOBAL_ASM( +.text +glabel get_player_control_style +/* 044BEC 7F0100BC 00047080 */ sll $t6, $a0, 2 +/* 044BF0 7F0100C0 3C028007 */ lui $v0, %hi(controlstyle_player) +/* 044BF4 7F0100C4 004E1021 */ addu $v0, $v0, $t6 +/* 044BF8 7F0100C8 03E00008 */ jr $ra +/* 044BFC 7F0100CC 8C4297B8 */ lw $v0, %lo(controlstyle_player)($v0) +) +#endif + + + + + + +s32 check_if_mp_stage_unlocked(s32 stage) +{ + s32 players; + if (!multi_stage_setups[stage].min_player) + { + return 0; + } + players=get_selected_num_players(); + if (multi_stage_setups[stage].max_player < players) + { + return 0; + } + if (multi_stage_setups[stage].unlock_after == -1) + { + return 1; + } + if (isStageUnlockedAtDifficulty(selected_folder_num, multi_stage_setups[stage].unlock_after, DIFFICULTY_AGENT)) + { + return 1; + } + return 0; +} + + + + + +#ifdef NONMATCHING +void *select_game_length(void) +{ + s32 temp_t1; + s32 temp_t2; + s32 phi_t2; + + if (scenario != 2) + { + game_length = (s32) ((s32) (game_length + 1) % 7); + return &game_length; + } + temp_t1 = game_length + 1; + temp_t2 = temp_t1 & 3; + phi_t2 = temp_t2; + if (temp_t1 < 0) + { + phi_t2 = temp_t2; + if (temp_t2 != 0) + { + phi_t2 = temp_t2 + -4; + } + } + game_length = (s32) phi_t2; + return &game_length; +} +#else +GLOBAL_ASM( +.text +glabel select_game_length +/* 044CA0 7F010170 3C0E8003 */ lui $t6, %hi(scenario) +/* 044CA4 7F010174 8DCEB540 */ lw $t6, %lo(scenario)($t6) +/* 044CA8 7F010178 24010002 */ li $at, 2 +/* 044CAC 7F01017C 3C028003 */ lui $v0, %hi(game_length) +/* 044CB0 7F010180 11C1000B */ beq $t6, $at, .L7F0101B0 +/* 044CB4 7F010184 2442B538 */ addiu $v0, %lo(game_length) # addiu $v0, $v0, -0x4ac8 +/* 044CB8 7F010188 3C028003 */ lui $v0, %hi(game_length) +/* 044CBC 7F01018C 2442B538 */ addiu $v0, %lo(game_length) # addiu $v0, $v0, -0x4ac8 +/* 044CC0 7F010190 8C4F0000 */ lw $t7, ($v0) +/* 044CC4 7F010194 24010007 */ li $at, 7 +/* 044CC8 7F010198 25F80001 */ addiu $t8, $t7, 1 +/* 044CCC 7F01019C 0301001A */ div $zero, $t8, $at +/* 044CD0 7F0101A0 0000C810 */ mfhi $t9 +/* 044CD4 7F0101A4 AC590000 */ sw $t9, ($v0) +/* 044CD8 7F0101A8 03E00008 */ jr $ra +/* 044CDC 7F0101AC 00000000 */ nop +.L7F0101B0: +/* 044CE0 7F0101B0 8C480000 */ lw $t0, ($v0) +/* 044CE4 7F0101B4 25090001 */ addiu $t1, $t0, 1 +/* 044CE8 7F0101B8 05210004 */ bgez $t1, .L7F0101CC +/* 044CEC 7F0101BC 312A0003 */ andi $t2, $t1, 3 +/* 044CF0 7F0101C0 11400002 */ beqz $t2, .L7F0101CC +/* 044CF4 7F0101C4 00000000 */ nop +/* 044CF8 7F0101C8 254AFFFC */ addiu $t2, $t2, -4 +.L7F0101CC: +/* 044CFC 7F0101CC AC4A0000 */ sw $t2, ($v0) +/* 044D00 7F0101D0 03E00008 */ jr $ra +/* 044D04 7F0101D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_aim_settings_to_playerdata(void) +{ + player1_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player1_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player2_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player2_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player3_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player3_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player4_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player4_player_data.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(player1_player_data+0x6A) +/* 044D28 7F0101F8 A0239F5A */ sb $v1, %lo(player1_player_data+0x6A)($at) +/* 044D2C 7F0101FC 90440002 */ lbu $a0, 2($v0) +/* 044D30 7F010200 3C018008 */ lui $at, %hi(player1_player_data+0x6B) +/* 044D34 7F010204 A0249F5B */ sb $a0, %lo(player1_player_data+0x6B)($at) +/* 044D38 7F010208 3C018008 */ lui $at, %hi(player2_player_data+0x6A) +/* 044D3C 7F01020C A0239FCA */ sb $v1, %lo(player2_player_data+0x6A)($at) +/* 044D40 7F010210 3C018008 */ lui $at, %hi(player2_player_data+0x6B) +/* 044D44 7F010214 A0249FCB */ sb $a0, %lo(player2_player_data+0x6B)($at) +/* 044D48 7F010218 3C018008 */ lui $at, %hi(player3_player_data+0x6A) +/* 044D4C 7F01021C A023A03A */ sb $v1, %lo(player3_player_data+0x6A)($at) +/* 044D50 7F010220 3C018008 */ lui $at, %hi(player3_player_data+0x6B) +/* 044D54 7F010224 A024A03B */ sb $a0, %lo(player3_player_data+0x6B)($at) +/* 044D58 7F010228 3C018008 */ lui $at, %hi(player4_player_data+0x6A) +/* 044D5C 7F01022C A023A0AA */ sb $v1, %lo(player4_player_data+0x6A)($at) +/* 044D60 7F010230 3C018008 */ lui $at, %hi(player4_player_data+0x6B) +/* 044D64 7F010234 03E00008 */ jr $ra +/* 044D68 7F010238 A024A0AB */ sb $a0, %lo(player4_player_data+0x6B)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void advance_aim_settings_selection(void) +{ + s32 temp_t7; + s32 temp_t8; + s32 phi_t8; + + temp_t7 = aim_sight_adjustment + 1; + temp_t8 = temp_t7 & 3; + phi_t8 = temp_t8; + if (temp_t7 < 0) + { + phi_t8 = temp_t8; + if (temp_t8 != 0) + { + phi_t8 = temp_t8 + -4; + } + } + aim_sight_adjustment = (s32) phi_t8; + copy_aim_settings_to_playerdata(); +} +#else +GLOBAL_ASM( +.text +glabel advance_aim_settings_selection +/* 044D6C 7F01023C 3C028003 */ lui $v0, %hi(aim_sight_adjustment) +/* 044D70 7F010240 2442B53C */ addiu $v0, %lo(aim_sight_adjustment) # addiu $v0, $v0, -0x4ac4 +/* 044D74 7F010244 8C4E0000 */ lw $t6, ($v0) +/* 044D78 7F010248 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 044D7C 7F01024C AFBF0014 */ sw $ra, 0x14($sp) +/* 044D80 7F010250 25CF0001 */ addiu $t7, $t6, 1 +/* 044D84 7F010254 05E10004 */ bgez $t7, .L7F010268 +/* 044D88 7F010258 31F80003 */ andi $t8, $t7, 3 +/* 044D8C 7F01025C 13000002 */ beqz $t8, .L7F010268 +/* 044D90 7F010260 00000000 */ nop +/* 044D94 7F010264 2718FFFC */ addiu $t8, $t8, -4 +.L7F010268: +/* 044D98 7F010268 0FC04076 */ jal copy_aim_settings_to_playerdata +/* 044D9C 7F01026C AC580000 */ sw $t8, ($v0) +/* 044DA0 7F010270 8FBF0014 */ lw $ra, 0x14($sp) +/* 044DA4 7F010274 27BD0018 */ addiu $sp, $sp, 0x18 +/* 044DA8 7F010278 03E00008 */ jr $ra +/* 044DAC 7F01027C 00000000 */ nop +) +#endif + + + + + +void unlock_all_mp_chars(void) { + num_chars_selectable_mp = 0x40; +} + + +s32 get_selected_num_players(void) +{ + if (gamemode == GAMEMODE_MULTI) + { + return selected_num_players; + } + return 1; +} + +u16 get_player_mp_char_head(s32 player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].head; + } + return mp_chr_setup[(&player_1_char)[player]].head; +} + +u8 get_player_mp_char_gender(int player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].gender; + } + return mp_chr_setup[(&player_1_char)[player]].gender; +} + +u16 get_player_mp_char_body(int player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].body; + } + return mp_chr_setup[(&player_1_char)[player]].body; +} + +f32 get_player_mp_handicap(int player) +{ + return MP_handicap_table[(&handicap_player1)[player]].damage_modifier; +} + +f32 get_player_mp_char_height(int player) +{ + if ((&player_1_char)[player] < 0) { + return mp_chr_setup[player].pov; + } + return mp_chr_setup[(&player_1_char)[player]].pov; +} + +int get_mp_timelimit(void) { + return multi_game_lengths[game_length].time; +} + +int get_mp_pointlimit(void) { + return multi_game_lengths[game_length].points; +} + +void reset_mp_options_for_scenario(MPSCENARIOS scenarioid) +{ + scenario = scenarioid; + + unlock_stage_select = 1; + unlock_game_length = 1; + unlock_chars = 1; + unlock_weapon_select = 1; + unlock_handicap = 1; + unlock_control_style = 1; + unlock_aim_sight = 1; + + + switch(scenario) + { + case SCENARIO_NORMAL: + case SCENARIO_2v2: + case SCENARIO_3v1: + case SCENARIO_2v1: + if (6 < game_length) + { + game_length = 2; + } + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + break; + case SCENARIO_YOLT: + game_length = 7; + + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + unlock_game_length = 0; + break; + case SCENARIO_TLD: + if (3 < game_length) + { + game_length = 2; + } + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + break; + case SCENARIO_MWTGG: + if (6 < game_length) + { + game_length = 2; + } + setMPWeaponSet(0xd); + unlock_weapon_select = 0; + break; + case SCENARIO_LTK: + if (6 < game_length) + { + game_length = 2; + } + setMPWeaponSet(1); + unlock_handicap = 0; + } + return; +} + + + + + + +#ifdef NONMATCHING +void init_mp_options_for_scenario(s32 numplayers) +{ + s32 lVar1; + int iVar2; + int *piVar3; + + if (numplayers < 2) { + numplayers = 2; + } + selected_num_players = (u32)numplayers; + lVar1 = 0; + if (0 < numplayers) { + piVar3 = &player_1_char; + iVar2 = 0; + do { + if (*piVar3 == -1) { + *piVar3 = (int)lVar1; + *(s32 *)((int)&handicap_player1 + iVar2) = 5; + } + lVar1 = (s32)((int)lVar1 + 1); + if ((2 < numplayers) && (3 < *(int *)((int)&controlstyle_player + iVar2))) { + *(int *)((int)&controlstyle_player + iVar2) = 0; + } + iVar2 += 4; + piVar3 = piVar3 + 1; + } while (lVar1 < numplayers); + } + if (((s32)(s32)(u8)mp_stage_playercounts[scenario].max < numplayers) || + (numplayers < (s32)(s32)(u8)mp_stage_playercounts[scenario].min)) { + reset_mp_options_for_scenario(0); + numplayers = (s32)(int)selected_num_players; + } + if ((s32)multi_stage_setups[MP_stage_selected].max_player < numplayers) { + MP_stage_selected = MP_STAGE_TEMPLE; + } + return; +} +#else +GLOBAL_ASM( +.text +glabel init_mp_options_for_scenario +/* 045138 7F010608 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04513C 7F01060C AFB00018 */ sw $s0, 0x18($sp) +/* 045140 7F010610 28810002 */ slti $at, $a0, 2 +/* 045144 7F010614 00808025 */ move $s0, $a0 +/* 045148 7F010618 10200002 */ beqz $at, .L7F010624 +/* 04514C 7F01061C AFBF001C */ sw $ra, 0x1c($sp) +/* 045150 7F010620 24100002 */ li $s0, 2 +.L7F010624: +/* 045154 7F010624 3C028003 */ lui $v0, %hi(selected_num_players) +/* 045158 7F010628 2442B520 */ addiu $v0, %lo(selected_num_players) # addiu $v0, $v0, -0x4ae0 +/* 04515C 7F01062C AC500000 */ sw $s0, ($v0) +/* 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) +/* 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 +/* 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 +/* 045184 7F010654 00002025 */ move $a0, $zero +/* 045188 7F010658 24090005 */ li $t1, 5 +/* 04518C 7F01065C 2407FFFF */ li $a3, -1 +.L7F010660: +/* 045190 7F010660 8CAE0000 */ lw $t6, ($a1) +/* 045194 7F010664 01047821 */ addu $t7, $t0, $a0 +/* 045198 7F010668 2A010003 */ slti $at, $s0, 3 +/* 04519C 7F01066C 14EE0003 */ bne $a3, $t6, .L7F01067C +/* 0451A0 7F010670 01441021 */ addu $v0, $t2, $a0 +/* 0451A4 7F010674 ACA30000 */ sw $v1, ($a1) +/* 0451A8 7F010678 ADE90000 */ sw $t1, ($t7) +.L7F01067C: +/* 0451AC 7F01067C 14200006 */ bnez $at, .L7F010698 +/* 0451B0 7F010680 24630001 */ addiu $v1, $v1, 1 +/* 0451B4 7F010684 8C580000 */ lw $t8, ($v0) +/* 0451B8 7F010688 2B010004 */ slti $at, $t8, 4 +/* 0451BC 7F01068C 54200003 */ bnezl $at, .L7F01069C +/* 0451C0 7F010690 0066082A */ slt $at, $v1, $a2 +/* 0451C4 7F010694 AC400000 */ sw $zero, ($v0) +.L7F010698: +/* 0451C8 7F010698 0066082A */ slt $at, $v1, $a2 +.L7F01069C: +/* 0451CC 7F01069C 24840004 */ addiu $a0, $a0, 4 +/* 0451D0 7F0106A0 1420FFEF */ bnez $at, .L7F010660 +/* 0451D4 7F0106A4 24A50004 */ addiu $a1, $a1, 4 +.L7F0106A8: +/* 0451D8 7F0106A8 3C198003 */ lui $t9, %hi(scenario) +/* 0451DC 7F0106AC 8F39B540 */ lw $t9, %lo(scenario)($t9) +/* 0451E0 7F0106B0 3C0C8003 */ lui $t4, %hi(mp_player_counts) +/* 0451E4 7F0106B4 258CB054 */ addiu $t4, %lo(mp_player_counts) # addiu $t4, $t4, -0x4fac +/* 0451E8 7F0106B8 00195880 */ sll $t3, $t9, 2 +/* 0451EC 7F0106BC 016C1021 */ addu $v0, $t3, $t4 +/* 0451F0 7F0106C0 904D0003 */ lbu $t5, 3($v0) +/* 0451F4 7F0106C4 01A6082A */ slt $at, $t5, $a2 +/* 0451F8 7F0106C8 14200005 */ bnez $at, .L7F0106E0 +/* 0451FC 7F0106CC 00000000 */ nop +/* 045200 7F0106D0 904E0002 */ lbu $t6, 2($v0) +/* 045204 7F0106D4 00CE082A */ slt $at, $a2, $t6 +/* 045208 7F0106D8 10200005 */ beqz $at, .L7F0106F0 +/* 04520C 7F0106DC 00000000 */ nop +.L7F0106E0: +/* 045210 7F0106E0 0FC0411A */ jal reset_mp_options_for_scenario +/* 045214 7F0106E4 00002025 */ move $a0, $zero +/* 045218 7F0106E8 3C068003 */ lui $a2, %hi(selected_num_players) +/* 04521C 7F0106EC 8CC6B520 */ lw $a2, %lo(selected_num_players)($a2) +.L7F0106F0: +/* 045220 7F0106F0 3C028003 */ lui $v0, %hi(MP_stage_selected) +/* 045224 7F0106F4 2442B534 */ addiu $v0, %lo(MP_stage_selected) # addiu $v0, $v0, -0x4acc +/* 045228 7F0106F8 8C4F0000 */ lw $t7, ($v0) +/* 04522C 7F0106FC 3C198003 */ lui $t9, %hi(multi_stage_setups+20) +/* 045230 7F010700 240B0001 */ li $t3, 1 +/* 045234 7F010704 000FC080 */ sll $t8, $t7, 2 +/* 045238 7F010708 030FC023 */ subu $t8, $t8, $t7 +/* 04523C 7F01070C 0018C0C0 */ sll $t8, $t8, 3 +/* 045240 7F010710 0338C821 */ addu $t9, $t9, $t8 +/* 045244 7F010714 8F39B088 */ lw $t9, %lo(multi_stage_setups+20)($t9) +/* 045248 7F010718 0326082A */ slt $at, $t9, $a2 +/* 04524C 7F01071C 50200003 */ beql $at, $zero, .L7F01072C +/* 045250 7F010720 8FBF001C */ lw $ra, 0x1c($sp) +/* 045254 7F010724 AC4B0000 */ sw $t3, ($v0) +/* 045258 7F010728 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01072C: +/* 04525C 7F01072C 8FB00018 */ lw $s0, 0x18($sp) +/* 045260 7F010730 27BD0020 */ addiu $sp, $sp, 0x20 +/* 045264 7F010734 03E00008 */ jr $ra +/* 045268 7F010738 00000000 */ nop +) +#endif + + + +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; + + if (maybe_is_in_menu != FALSE) + { + sfx_c_700091E8(0x7fff); + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_FOLDERS); + maybe_is_in_menu = FALSE; + } + + if (selected_num_players == 0) + { + numplayers = get_attached_controller_count(); + init_mp_options_for_scenario(numplayers); + } + + if (check_if_mp_stage_unlocked(MP_stage_selected) == FALSE) + { + MP_stage_selected = MP_STAGE_TEMPLE; + } + + highlight_players = FALSE; + highlight_scenario = FALSE; + highlight_gameselect = FALSE; + highlight_gamelength = FALSE; + highlight_character = FALSE; + highlight_weaponselect = FALSE; + highlight_health = FALSE; + highlight_controlstyle = FALSE; + highlight_aimadjustment = FALSE; + load_walletbond(); +} + +void update_menu0E_mpoptions(void) +{ + return; +} + + + + + + + + +#ifdef NONMATCHING +void interface_menu0E_mpoptions(void) +{ + s32 players_selected; + s32 scenario_selected; + s32 gameselect_selected; + s32 gamelength_selected; + s32 character_selected; + s32 weaponselect_selected; + s32 health_selected; + s32 controlstyle_selected; + s32 aimadjustment_selected; + + s32 cursor_v; + s32 temp_v1; + u32 temp_hi; + void *temp_v0; + s32 phi_a0; + + players_selected = 0; + scenario_selected = 0; + gameselect_selected = 0; + gamelength_selected = 0; + character_selected = 0; + weaponselect_selected = 0; + health_selected = 0; + controlstyle_selected = 0; + aimadjustment_selected = 0; + setvideo_far(60.0f); + video_related_21(menu0E_aspect); + set_page_height(100.0f, menu0E_pageheight); + set_video2_settings_offset_24(0); + if (get_attached_controller_count() < 2) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(gamemode); + } + if (get_attached_controller_count() < selected_num_players) + { + init_mp_options_for_scenario(get_attached_controller_count()); + } + if (get_controller_buttons_held(0, Z_TRIG|A_BUTTON) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + highlight_players = 0; + highlight_scenario = 0; + highlight_gameselect = 0; + highlight_gamelength = 0; + highlight_character = 0; + highlight_weaponselect = 0; + highlight_health = 0; + highlight_controlstyle = 0; + highlight_aimadjustment = 0; + if (isontab3()) + { + tab_3_highlight = 1; + } + + if (isontab1()) + { + cursor_v_pos = 1; + } + + cursor_v = (s32)cursor_v_pos; + if ((cursor_v >= 0x119) && (unlock_aim_sight != 0)) + { + highlight_aimadjustment = 1; + } + + if ((cursor_v >= 0x105) && (unlock_control_style != 0)) + { + highlight_controlstyle = 1; + } + + if ((cursor_v >= 0xf1) && (unlock_handicap != 0)) + { + highlight_health = 1; + } + + if ((cursor_v >= 0xdd) && (unlock_chars != 0)) + { + highlight_character = 1; + } + + if ((cursor_v >= 0xc9) && (unlock_weapon_select != 0)) + { + highlight_weaponselect = 1; + } + + if ((cursor_v >= 0xb5) && (unlock_game_length != 0)) + { + highlight_gamelength = 1; + } + + if ((cursor_v >= 0xa1) && (unlock_stage_select != 0)) + { + highlight_gameselect = 1; + } + + if (cursor_v >= 0x8d) + { + highlight_scenario = 1; + } + else + { + highlight_players = 1; + } + } + + if (get_controller_buttons_pressed(0, START_BUTTON) != 0) + { + tab_1_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + if (tab_1_highlight != 0) + { + tab_1_selected = 1; + } + if (highlight_players != 0) + { + players_selected = 1; + } + if (highlight_scenario != 0) + { + scenario_selected = 1; + } + if (highlight_gameselect != 0) + { + gameselect_selected = 1; + } + if (highlight_gamelength != 0) + { + gamelength_selected = 1; + } + if (highlight_character != 0) + { + character_selected = 1; + } + if (highlight_weaponselect != 0) + { + weaponselect_selected = 1; + } + if (highlight_health != 0) + { + health_selected = 1; + } + if (highlight_controlstyle != 0) + { + controlstyle_selected = 1; + } + if (highlight_aimadjustment != 0) + { + aimadjustment_selected = 1; + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, B_BUTTON) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 5, 1); + menu_control_stick_tracking(); + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(gamemode); + return; + } + if (tab_1_selected != 0) + { + curstageid = multi_stage_setups[MP_stage_selected].stage_id; + if (multi_stage_setups[MP_stage_selected].stage_id < 0) { + do { + numplayers = get_random_value(); + selected_stage = multi_stage_setups[numplayers % 0xb + 1].stage_id; + curstageid = selected_stage; + } while (check_if_mp_stage_unlocked(numplayers % 0xb + 1) == FALSE); + } + selected_stage = curstageid; + briefingpage = 0xffffffff; + set_menu_to_mode(MENU_RUN_STAGE,1); + } + if (players_selected != 0) + { + temp_v1 = selected_num_players + 1; + phi_a0 = temp_v1; + if (get_attached_controller_count() < temp_v1) + { + phi_a0 = 2; + } + init_mp_options_for_scenario(phi_a0); + return; + } + if (scenario_selected != 0) + { + set_menu_to_mode(MENU_MP_SCENARIO_SELECT, 0); + return; + } + if (gameselect_selected != 0) + { + set_menu_to_mode(MENU_MP_STAGE_SELECT, 0); + return; + } + if (gamelength_selected != 0) + { + select_game_length(); + return; + } + if (character_selected != 0) + { + set_menu_to_mode(MENU_MP_CHAR_SELECT, 0); + return; + } + if (weaponselect_selected != 0) + { + incrementMPWeaponSet(); + return; + } + if (health_selected != 0) + { + set_menu_to_mode(MENU_MP_HANDICAP, 0); + return; + } + if (controlstyle_selected != 0) + { + set_menu_to_mode(MENU_MP_CONTROL_STYLE, 0); + return; + } + if (aimadjustment_selected != 0) + { + advance_aim_settings_selection(); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0E_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0E_pageheight +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0E_mpoptions +/* 045378 7F010848 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 04537C 7F01084C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 045380 7F010850 AFBF0014 */ sw $ra, 0x14($sp) +/* 045384 7F010854 44816000 */ mtc1 $at, $f12 +/* 045388 7F010858 AFA0003C */ sw $zero, 0x3c($sp) +/* 04538C 7F01085C AFA00038 */ sw $zero, 0x38($sp) +/* 045390 7F010860 AFA00034 */ sw $zero, 0x34($sp) +/* 045394 7F010864 AFA00030 */ sw $zero, 0x30($sp) +/* 045398 7F010868 AFA0002C */ sw $zero, 0x2c($sp) +/* 04539C 7F01086C AFA00028 */ sw $zero, 0x28($sp) +/* 0453A0 7F010870 AFA00024 */ sw $zero, 0x24($sp) +/* 0453A4 7F010874 AFA00020 */ sw $zero, 0x20($sp) +/* 0453A8 7F010878 0C001151 */ jal setvideo_far +/* 0453AC 7F01087C AFA0001C */ sw $zero, 0x1c($sp) +/* 0453B0 7F010880 3C018005 */ lui $at, %hi(menu0E_aspect) +/* 0453B4 7F010884 0C001164 */ jal video_related_21 +/* 0453B8 7F010888 C42C1A80 */ lwc1 $f12, %lo(menu0E_aspect)($at) +/* 0453BC 7F01088C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0453C0 7F010890 44816000 */ mtc1 $at, $f12 +/* 0453C4 7F010894 3C018005 */ lui $at, %hi(menu0E_pageheight) +/* 0453C8 7F010898 0C001194 */ jal set_page_height +/* 0453CC 7F01089C C42E1A84 */ lwc1 $f14, %lo(menu0E_pageheight)($at) +/* 0453D0 7F0108A0 0C00114D */ jal set_video2_settings_offset_24 +/* 0453D4 7F0108A4 00002025 */ move $a0, $zero +/* 0453D8 7F0108A8 0C002E7E */ jal get_attached_controller_count +/* 0453DC 7F0108AC 00000000 */ nop +/* 0453E0 7F0108B0 28410002 */ slti $at, $v0, 2 +/* 0453E4 7F0108B4 10200006 */ beqz $at, .L7F0108D0 +/* 0453E8 7F0108B8 24040006 */ li $a0, 6 +/* 0453EC 7F0108BC 0FC06975 */ jal set_menu_to_mode +/* 0453F0 7F0108C0 00002825 */ move $a1, $zero +/* 0453F4 7F0108C4 3C048003 */ lui $a0, %hi(gamemode) +/* 0453F8 7F0108C8 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 0453FC 7F0108CC 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +.L7F0108D0: +/* 045400 7F0108D0 0C002E7E */ jal get_attached_controller_count +/* 045404 7F0108D4 00000000 */ nop +/* 045408 7F0108D8 3C0E8003 */ lui $t6, %hi(selected_num_players) +/* 04540C 7F0108DC 8DCEB520 */ lw $t6, %lo(selected_num_players)($t6) +/* 045410 7F0108E0 004E082A */ slt $at, $v0, $t6 +/* 045414 7F0108E4 50200006 */ beql $at, $zero, .L7F010900 +/* 045418 7F0108E8 00002025 */ move $a0, $zero +/* 04541C 7F0108EC 0C002E7E */ jal get_attached_controller_count +/* 045420 7F0108F0 00000000 */ nop +/* 045424 7F0108F4 0FC04182 */ jal init_mp_options_for_scenario +/* 045428 7F0108F8 00402025 */ move $a0, $v0 +/* 04542C 7F0108FC 00002025 */ move $a0, $zero +.L7F010900: +/* 045430 7F010900 0C0030C3 */ jal get_controller_buttons_held +/* 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) +/* 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) +/* 045460 7F010930 AC2097CC */ sw $zero, %lo(highlight_scenario)($at) +/* 045464 7F010934 3C018007 */ lui $at, %hi(highlight_gameselect) +/* 045468 7F010938 AC2097D0 */ sw $zero, %lo(highlight_gameselect)($at) +/* 04546C 7F01093C 3C018007 */ lui $at, %hi(highlight_gamelength) +/* 045470 7F010940 AC2097D4 */ sw $zero, %lo(highlight_gamelength)($at) +/* 045474 7F010944 3C018007 */ lui $at, %hi(highlight_character) +/* 045478 7F010948 AC2097D8 */ sw $zero, %lo(highlight_character)($at) +/* 04547C 7F01094C 3C018007 */ lui $at, %hi(highlight_weaponselect) +/* 045480 7F010950 AC2097DC */ sw $zero, %lo(highlight_weaponselect)($at) +/* 045484 7F010954 3C018007 */ lui $at, %hi(highlight_health) +/* 045488 7F010958 AC2097E0 */ sw $zero, %lo(highlight_health)($at) +/* 04548C 7F01095C 3C018007 */ lui $at, %hi(highlight_controlstyle) +/* 045490 7F010960 AC2097E4 */ sw $zero, %lo(highlight_controlstyle)($at) +/* 045494 7F010964 3C018007 */ lui $at, %hi(highlight_aimadjustment) +/* 045498 7F010968 0FC028E7 */ jal isontab3 +/* 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) +/* 0454AC 7F01097C 1000005D */ b .L7F010AF4 +/* 0454B0 7F010980 AC2FA8E4 */ sw $t7, %lo(tab_3_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) +/* 0454CC 7F01099C 10000055 */ b .L7F010AF4 +/* 0454D0 7F0109A0 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F0109A4: +/* 0454D4 7F0109A4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 0454D8 7F0109A8 3C198003 */ lui $t9, %hi(unlock_aim_sight) +/* 0454DC 7F0109AC 4600218D */ trunc.w.s $f6, $f4 +/* 0454E0 7F0109B0 44023000 */ mfc1 $v0, $f6 +/* 0454E4 7F0109B4 00000000 */ nop +/* 0454E8 7F0109B8 28410119 */ slti $at, $v0, 0x119 +/* 0454EC 7F0109BC 54200009 */ bnezl $at, .L7F0109E4 +/* 0454F0 7F0109C0 28410105 */ slti $at, $v0, 0x105 +/* 0454F4 7F0109C4 8F39B55C */ lw $t9, %lo(unlock_aim_sight)($t9) +/* 0454F8 7F0109C8 24030001 */ li $v1, 1 +/* 0454FC 7F0109CC 3C018007 */ lui $at, %hi(highlight_aimadjustment) +/* 045500 7F0109D0 53200004 */ beql $t9, $zero, .L7F0109E4 +/* 045504 7F0109D4 28410105 */ slti $at, $v0, 0x105 +/* 045508 7F0109D8 10000046 */ b .L7F010AF4 +/* 04550C 7F0109DC AC2397E8 */ sw $v1, %lo(highlight_aimadjustment)($at) +/* 045510 7F0109E0 28410105 */ slti $at, $v0, 0x105 +.L7F0109E4: +/* 045514 7F0109E4 14200008 */ bnez $at, .L7F010A08 +/* 045518 7F0109E8 3C088003 */ lui $t0, %hi(unlock_control_style) +/* 04551C 7F0109EC 8D08B558 */ lw $t0, %lo(unlock_control_style)($t0) +/* 045520 7F0109F0 24030001 */ li $v1, 1 +/* 045524 7F0109F4 3C018007 */ lui $at, %hi(highlight_controlstyle) +/* 045528 7F0109F8 51000004 */ beql $t0, $zero, .L7F010A0C +/* 04552C 7F0109FC 284100F1 */ slti $at, $v0, 0xf1 +/* 045530 7F010A00 1000003C */ b .L7F010AF4 +/* 045534 7F010A04 AC2397E4 */ sw $v1, %lo(highlight_controlstyle)($at) +.L7F010A08: +/* 045538 7F010A08 284100F1 */ slti $at, $v0, 0xf1 +.L7F010A0C: +/* 04553C 7F010A0C 14200008 */ bnez $at, .L7F010A30 +/* 045540 7F010A10 3C098003 */ lui $t1, %hi(unlock_handicap) +/* 045544 7F010A14 8D29B554 */ lw $t1, %lo(unlock_handicap)($t1) +/* 045548 7F010A18 24030001 */ li $v1, 1 +/* 04554C 7F010A1C 3C018007 */ lui $at, %hi(highlight_health) +/* 045550 7F010A20 51200004 */ beql $t1, $zero, .L7F010A34 +/* 045554 7F010A24 284100DD */ slti $at, $v0, 0xdd +/* 045558 7F010A28 10000032 */ b .L7F010AF4 +/* 04555C 7F010A2C AC2397E0 */ sw $v1, %lo(highlight_health)($at) +.L7F010A30: +/* 045560 7F010A30 284100DD */ slti $at, $v0, 0xdd +.L7F010A34: +/* 045564 7F010A34 14200008 */ bnez $at, .L7F010A58 +/* 045568 7F010A38 3C0A8003 */ lui $t2, %hi(unlock_chars) +/* 04556C 7F010A3C 8D4AB54C */ lw $t2, %lo(unlock_chars)($t2) +/* 045570 7F010A40 24030001 */ li $v1, 1 +/* 045574 7F010A44 3C018007 */ lui $at, %hi(highlight_character) +/* 045578 7F010A48 51400004 */ beql $t2, $zero, .L7F010A5C +/* 04557C 7F010A4C 284100C9 */ slti $at, $v0, 0xc9 +/* 045580 7F010A50 10000028 */ b .L7F010AF4 +/* 045584 7F010A54 AC2397D8 */ sw $v1, %lo(highlight_character)($at) +.L7F010A58: +/* 045588 7F010A58 284100C9 */ slti $at, $v0, 0xc9 +.L7F010A5C: +/* 04558C 7F010A5C 14200008 */ bnez $at, .L7F010A80 +/* 045590 7F010A60 3C0B8003 */ lui $t3, %hi(unlock_weapon_select) +/* 045594 7F010A64 8D6BB550 */ lw $t3, %lo(unlock_weapon_select)($t3) +/* 045598 7F010A68 24030001 */ li $v1, 1 +/* 04559C 7F010A6C 3C018007 */ lui $at, %hi(highlight_weaponselect) +/* 0455A0 7F010A70 51600004 */ beql $t3, $zero, .L7F010A84 +/* 0455A4 7F010A74 284100B5 */ slti $at, $v0, 0xb5 +/* 0455A8 7F010A78 1000001E */ b .L7F010AF4 +/* 0455AC 7F010A7C AC2397DC */ sw $v1, %lo(highlight_weaponselect)($at) +.L7F010A80: +/* 0455B0 7F010A80 284100B5 */ slti $at, $v0, 0xb5 +.L7F010A84: +/* 0455B4 7F010A84 14200008 */ bnez $at, .L7F010AA8 +/* 0455B8 7F010A88 3C0C8003 */ lui $t4, %hi(unlock_game_length) +/* 0455BC 7F010A8C 8D8CB548 */ lw $t4, %lo(unlock_game_length)($t4) +/* 0455C0 7F010A90 24030001 */ li $v1, 1 +/* 0455C4 7F010A94 3C018007 */ lui $at, %hi(highlight_gamelength) +/* 0455C8 7F010A98 51800004 */ beql $t4, $zero, .L7F010AAC +/* 0455CC 7F010A9C 284100A1 */ slti $at, $v0, 0xa1 +/* 0455D0 7F010AA0 10000014 */ b .L7F010AF4 +/* 0455D4 7F010AA4 AC2397D4 */ sw $v1, %lo(highlight_gamelength)($at) +.L7F010AA8: +/* 0455D8 7F010AA8 284100A1 */ slti $at, $v0, 0xa1 +.L7F010AAC: +/* 0455DC 7F010AAC 14200008 */ bnez $at, .L7F010AD0 +/* 0455E0 7F010AB0 3C0D8003 */ lui $t5, %hi(unlock_stage_select) +/* 0455E4 7F010AB4 8DADB544 */ lw $t5, %lo(unlock_stage_select)($t5) +/* 0455E8 7F010AB8 24030001 */ li $v1, 1 +/* 0455EC 7F010ABC 3C018007 */ lui $at, %hi(highlight_gameselect) +/* 0455F0 7F010AC0 51A00004 */ beql $t5, $zero, .L7F010AD4 +/* 0455F4 7F010AC4 2841008D */ slti $at, $v0, 0x8d +/* 0455F8 7F010AC8 1000000A */ b .L7F010AF4 +/* 0455FC 7F010ACC AC2397D0 */ sw $v1, %lo(highlight_gameselect)($at) +.L7F010AD0: +/* 045600 7F010AD0 2841008D */ slti $at, $v0, 0x8d +.L7F010AD4: +/* 045604 7F010AD4 14200005 */ bnez $at, .L7F010AEC +/* 045608 7F010AD8 24030001 */ li $v1, 1 +/* 04560C 7F010ADC 24030001 */ li $v1, 1 +/* 045610 7F010AE0 3C018007 */ lui $at, %hi(highlight_scenario) +/* 045614 7F010AE4 10000003 */ b .L7F010AF4 +/* 045618 7F010AE8 AC2397CC */ sw $v1, %lo(highlight_scenario)($at) +.L7F010AEC: +/* 04561C 7F010AEC 3C018007 */ lui $at, %hi(highlight_players) +/* 045620 7F010AF0 AC2397C8 */ sw $v1, %lo(highlight_players)($at) +.L7F010AF4: +/* 045624 7F010AF4 00002025 */ move $a0, $zero +/* 045628 7F010AF8 0C0030EB */ jal get_controller_buttons_pressed +/* 04562C 7F010AFC 24051000 */ li $a1, 4096 +/* 045630 7F010B00 1040000A */ beqz $v0, .L7F010B2C +/* 045634 7F010B04 24030001 */ li $v1, 1 +/* 045638 7F010B08 3C018003 */ lui $at, %hi(tab_1_selected) +/* 04563C 7F010B0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 045640 7F010B10 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 045644 7F010B14 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 045648 7F010B18 240500C7 */ li $a1, 199 +/* 04564C 7F010B1C 0C002382 */ jal play_sfx_a1 +/* 045650 7F010B20 00003025 */ move $a2, $zero +/* 045654 7F010B24 10000062 */ b .L7F010CB0 +/* 045658 7F010B28 00000000 */ nop +.L7F010B2C: +/* 04565C 7F010B2C 00002025 */ move $a0, $zero +/* 045660 7F010B30 0C0030EB */ jal get_controller_buttons_pressed +/* 045664 7F010B34 3405A000 */ li $a1, 40960 +/* 045668 7F010B38 10400051 */ beqz $v0, .L7F010C80 +/* 04566C 7F010B3C 24030001 */ li $v1, 1 +/* 045670 7F010B40 3C0E8003 */ lui $t6, %hi(tab_3_highlight) +/* 045674 7F010B44 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) +/* 045678 7F010B48 3C0F8003 */ lui $t7, %hi(tab_1_highlight) +/* 04567C 7F010B4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 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) +.L7F010B60: +/* 045690 7F010B60 8DEFA8DC */ lw $t7, %lo(tab_1_highlight)($t7) +/* 045694 7F010B64 3C018003 */ lui $at, %hi(tab_1_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) +.L7F010B7C: +/* 0456AC 7F010B7C 8F1897C8 */ lw $t8, %lo(highlight_players)($t8) +/* 0456B0 7F010B80 24190001 */ li $t9, 1 +/* 0456B4 7F010B84 3C088007 */ lui $t0, %hi(highlight_scenario) +/* 0456B8 7F010B88 13000003 */ beqz $t8, .L7F010B98 +/* 0456BC 7F010B8C 00000000 */ nop +/* 0456C0 7F010B90 10000037 */ b .L7F010C70 +/* 0456C4 7F010B94 AFB9003C */ sw $t9, 0x3c($sp) +.L7F010B98: +/* 0456C8 7F010B98 8D0897CC */ lw $t0, %lo(highlight_scenario)($t0) +/* 0456CC 7F010B9C 24090001 */ li $t1, 1 +/* 0456D0 7F010BA0 3C0A8007 */ lui $t2, %hi(highlight_gameselect) +/* 0456D4 7F010BA4 11000003 */ beqz $t0, .L7F010BB4 +/* 0456D8 7F010BA8 00000000 */ nop +/* 0456DC 7F010BAC 10000030 */ b .L7F010C70 +/* 0456E0 7F010BB0 AFA90038 */ sw $t1, 0x38($sp) +.L7F010BB4: +/* 0456E4 7F010BB4 8D4A97D0 */ lw $t2, %lo(highlight_gameselect)($t2) +/* 0456E8 7F010BB8 240B0001 */ li $t3, 1 +/* 0456EC 7F010BBC 3C0C8007 */ lui $t4, %hi(highlight_gamelength) +/* 0456F0 7F010BC0 11400003 */ beqz $t2, .L7F010BD0 +/* 0456F4 7F010BC4 00000000 */ nop +/* 0456F8 7F010BC8 10000029 */ b .L7F010C70 +/* 0456FC 7F010BCC AFAB0034 */ sw $t3, 0x34($sp) +.L7F010BD0: +/* 045700 7F010BD0 8D8C97D4 */ lw $t4, %lo(highlight_gamelength)($t4) +/* 045704 7F010BD4 240D0001 */ li $t5, 1 +/* 045708 7F010BD8 3C0E8007 */ lui $t6, %hi(highlight_character) +/* 04570C 7F010BDC 11800003 */ beqz $t4, .L7F010BEC +/* 045710 7F010BE0 00000000 */ nop +/* 045714 7F010BE4 10000022 */ b .L7F010C70 +/* 045718 7F010BE8 AFAD0030 */ sw $t5, 0x30($sp) +.L7F010BEC: +/* 04571C 7F010BEC 8DCE97D8 */ lw $t6, %lo(highlight_character)($t6) +/* 045720 7F010BF0 240F0001 */ li $t7, 1 +/* 045724 7F010BF4 3C188007 */ lui $t8, %hi(highlight_weaponselect) +/* 045728 7F010BF8 11C00003 */ beqz $t6, .L7F010C08 +/* 04572C 7F010BFC 00000000 */ nop +/* 045730 7F010C00 1000001B */ b .L7F010C70 +/* 045734 7F010C04 AFAF002C */ sw $t7, 0x2c($sp) +.L7F010C08: +/* 045738 7F010C08 8F1897DC */ lw $t8, %lo(highlight_weaponselect)($t8) +/* 04573C 7F010C0C 24190001 */ li $t9, 1 +/* 045740 7F010C10 3C088007 */ lui $t0, %hi(highlight_health) +/* 045744 7F010C14 13000003 */ beqz $t8, .L7F010C24 +/* 045748 7F010C18 00000000 */ nop +/* 04574C 7F010C1C 10000014 */ b .L7F010C70 +/* 045750 7F010C20 AFB90028 */ sw $t9, 0x28($sp) +.L7F010C24: +/* 045754 7F010C24 8D0897E0 */ lw $t0, %lo(highlight_health)($t0) +/* 045758 7F010C28 24090001 */ li $t1, 1 +/* 04575C 7F010C2C 3C0A8007 */ lui $t2, %hi(highlight_controlstyle) +/* 045760 7F010C30 11000003 */ beqz $t0, .L7F010C40 +/* 045764 7F010C34 00000000 */ nop +/* 045768 7F010C38 1000000D */ b .L7F010C70 +/* 04576C 7F010C3C AFA90024 */ sw $t1, 0x24($sp) +.L7F010C40: +/* 045770 7F010C40 8D4A97E4 */ lw $t2, %lo(highlight_controlstyle)($t2) +/* 045774 7F010C44 240B0001 */ li $t3, 1 +/* 045778 7F010C48 3C0C8007 */ lui $t4, %hi(highlight_aimadjustment) +/* 04577C 7F010C4C 11400003 */ beqz $t2, .L7F010C5C +/* 045780 7F010C50 00000000 */ nop +/* 045784 7F010C54 10000006 */ b .L7F010C70 +/* 045788 7F010C58 AFAB0020 */ sw $t3, 0x20($sp) +.L7F010C5C: +/* 04578C 7F010C5C 8D8C97E8 */ lw $t4, %lo(highlight_aimadjustment)($t4) +/* 045790 7F010C60 240D0001 */ li $t5, 1 +/* 045794 7F010C64 11800002 */ beqz $t4, .L7F010C70 +/* 045798 7F010C68 00000000 */ nop +/* 04579C 7F010C6C AFAD001C */ sw $t5, 0x1c($sp) +.L7F010C70: +/* 0457A0 7F010C70 0C002382 */ jal play_sfx_a1 +/* 0457A4 7F010C74 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457A8 7F010C78 1000000D */ b .L7F010CB0 +/* 0457AC 7F010C7C 00000000 */ nop +.L7F010C80: +/* 0457B0 7F010C80 00002025 */ move $a0, $zero +/* 0457B4 7F010C84 0C0030EB */ jal get_controller_buttons_pressed +/* 0457B8 7F010C88 24054000 */ li $a1, 16384 +/* 0457BC 7F010C8C 10400008 */ beqz $v0, .L7F010CB0 +/* 0457C0 7F010C90 24030001 */ li $v1, 1 +/* 0457C4 7F010C94 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0457C8 7F010C98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0457CC 7F010C9C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 0457D0 7F010CA0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457D4 7F010CA4 240500C7 */ li $a1, 199 +/* 0457D8 7F010CA8 0C002382 */ jal play_sfx_a1 +/* 0457DC 7F010CAC 00003025 */ move $a2, $zero +.L7F010CB0: +/* 0457E0 7F010CB0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 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) +/* 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) +/* 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) +/* 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) +/* 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) +/* 04584C 7F010D1C 24040006 */ li $a0, 6 +/* 045850 7F010D20 3C0F8003 */ lui $t7, %hi(tab_1_selected) +/* 045854 7F010D24 11C00008 */ beqz $t6, .L7F010D48 +/* 045858 7F010D28 00000000 */ nop +/* 04585C 7F010D2C 0FC06975 */ jal set_menu_to_mode +/* 045860 7F010D30 00002825 */ move $a1, $zero +/* 045864 7F010D34 3C048003 */ lui $a0, %hi(gamemode) +/* 045868 7F010D38 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 04586C 7F010D3C 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +/* 045870 7F010D40 10000070 */ b .L7F010F04 +/* 045874 7F010D44 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010D48: +/* 045878 7F010D48 8DEFA8D0 */ lw $t7, %lo(tab_1_selected)($t7) +/* 04587C 7F010D4C 3C188003 */ lui $t8, %hi(MP_stage_selected) +/* 045880 7F010D50 8FAB003C */ lw $t3, 0x3c($sp) +/* 045884 7F010D54 11E00027 */ beqz $t7, .L7F010DF4 +/* 045888 7F010D58 00000000 */ nop +/* 04588C 7F010D5C 8F18B534 */ lw $t8, %lo(MP_stage_selected)($t8) +/* 045890 7F010D60 3C028003 */ lui $v0, %hi(multi_stage_setups+8) +/* 045894 7F010D64 3C018003 */ lui $at, %hi(selected_stage) +/* 045898 7F010D68 0018C880 */ sll $t9, $t8, 2 +/* 04589C 7F010D6C 0338C823 */ subu $t9, $t9, $t8 +/* 0458A0 7F010D70 0019C8C0 */ sll $t9, $t9, 3 +/* 0458A4 7F010D74 00591021 */ addu $v0, $v0, $t9 +/* 0458A8 7F010D78 8C42B07C */ lw $v0, %lo(multi_stage_setups+8)($v0) +/* 0458AC 7F010D7C 04410014 */ bgez $v0, .L7F010DD0 +/* 0458B0 7F010D80 00000000 */ nop +.L7F010D84: +/* 0458B4 7F010D84 0C002914 */ jal get_random_value +/* 0458B8 7F010D88 00000000 */ nop +/* 0458BC 7F010D8C 2401000B */ li $at, 11 +/* 0458C0 7F010D90 0041001B */ divu $zero, $v0, $at +/* 0458C4 7F010D94 00001810 */ mfhi $v1 +/* 0458C8 7F010D98 00034080 */ sll $t0, $v1, 2 +/* 0458CC 7F010D9C 01034023 */ subu $t0, $t0, $v1 +/* 0458D0 7F010DA0 000840C0 */ sll $t0, $t0, 3 +/* 0458D4 7F010DA4 3C098003 */ lui $t1, %hi(multi_stage_setups+32) +/* 0458D8 7F010DA8 01284821 */ addu $t1, $t1, $t0 +/* 0458DC 7F010DAC 8D29B094 */ lw $t1, %lo(multi_stage_setups+32)($t1) +/* 0458E0 7F010DB0 3C018003 */ lui $at, %hi(selected_stage) +/* 0458E4 7F010DB4 24640001 */ addiu $a0, $v1, 1 +/* 0458E8 7F010DB8 0FC04034 */ jal check_if_mp_stage_unlocked +/* 0458EC 7F010DBC AC29A8F4 */ sw $t1, %lo(selected_stage)($at) +/* 0458F0 7F010DC0 1040FFF0 */ beqz $v0, .L7F010D84 +/* 0458F4 7F010DC4 00000000 */ nop +/* 0458F8 7F010DC8 10000003 */ b .L7F010DD8 +/* 0458FC 7F010DCC 240AFFFF */ li $t2, -1 +.L7F010DD0: +/* 045900 7F010DD0 AC22A8F4 */ sw $v0, %lo(selected_stage)($at) +/* 045904 7F010DD4 240AFFFF */ li $t2, -1 +.L7F010DD8: +/* 045908 7F010DD8 3C018003 */ lui $at, %hi(briefingpage) +/* 04590C 7F010DDC AC2AA8F8 */ sw $t2, %lo(briefingpage)($at) +/* 045910 7F010DE0 2404000B */ li $a0, 11 +/* 045914 7F010DE4 0FC06975 */ jal set_menu_to_mode +/* 045918 7F010DE8 24050001 */ li $a1, 1 +/* 04591C 7F010DEC 10000045 */ b .L7F010F04 +/* 045920 7F010DF0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010DF4: +/* 045924 7F010DF4 1160000F */ beqz $t3, .L7F010E34 +/* 045928 7F010DF8 8FAC0038 */ lw $t4, 0x38($sp) +/* 04592C 7F010DFC 0C002E7E */ jal get_attached_controller_count +/* 045930 7F010E00 00000000 */ nop +/* 045934 7F010E04 3C038003 */ lui $v1, %hi(selected_num_players) +/* 045938 7F010E08 8C63B520 */ lw $v1, %lo(selected_num_players)($v1) +/* 04593C 7F010E0C 24630001 */ addiu $v1, $v1, 1 +/* 045940 7F010E10 0043082A */ slt $at, $v0, $v1 +/* 045944 7F010E14 10200003 */ beqz $at, .L7F010E24 +/* 045948 7F010E18 00602025 */ move $a0, $v1 +/* 04594C 7F010E1C 10000001 */ b .L7F010E24 +/* 045950 7F010E20 24040002 */ li $a0, 2 +.L7F010E24: +/* 045954 7F010E24 0FC04182 */ jal init_mp_options_for_scenario +/* 045958 7F010E28 00000000 */ nop +/* 04595C 7F010E2C 10000035 */ b .L7F010F04 +/* 045960 7F010E30 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E34: +/* 045964 7F010E34 11800006 */ beqz $t4, .L7F010E50 +/* 045968 7F010E38 8FAD0034 */ lw $t5, 0x34($sp) +/* 04596C 7F010E3C 24040013 */ li $a0, 19 +/* 045970 7F010E40 0FC06975 */ jal set_menu_to_mode +/* 045974 7F010E44 00002825 */ move $a1, $zero +/* 045978 7F010E48 1000002E */ b .L7F010F04 +/* 04597C 7F010E4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E50: +/* 045980 7F010E50 11A00006 */ beqz $t5, .L7F010E6C +/* 045984 7F010E54 8FAE0030 */ lw $t6, 0x30($sp) +/* 045988 7F010E58 24040012 */ li $a0, 18 +/* 04598C 7F010E5C 0FC06975 */ jal set_menu_to_mode +/* 045990 7F010E60 00002825 */ move $a1, $zero +/* 045994 7F010E64 10000027 */ b .L7F010F04 +/* 045998 7F010E68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E6C: +/* 04599C 7F010E6C 11C00005 */ beqz $t6, .L7F010E84 +/* 0459A0 7F010E70 8FAF002C */ lw $t7, 0x2c($sp) +/* 0459A4 7F010E74 0FC0405C */ jal select_game_length +/* 0459A8 7F010E78 00000000 */ nop +/* 0459AC 7F010E7C 10000021 */ b .L7F010F04 +/* 0459B0 7F010E80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E84: +/* 0459B4 7F010E84 11E00006 */ beqz $t7, .L7F010EA0 +/* 0459B8 7F010E88 8FB80028 */ lw $t8, 0x28($sp) +/* 0459BC 7F010E8C 2404000F */ li $a0, 15 +/* 0459C0 7F010E90 0FC06975 */ jal set_menu_to_mode +/* 0459C4 7F010E94 00002825 */ move $a1, $zero +/* 0459C8 7F010E98 1000001A */ b .L7F010F04 +/* 0459CC 7F010E9C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EA0: +/* 0459D0 7F010EA0 13000005 */ beqz $t8, .L7F010EB8 +/* 0459D4 7F010EA4 8FB90024 */ lw $t9, 0x24($sp) +/* 0459D8 7F010EA8 0FC31974 */ jal incrementMPWeaponSet +/* 0459DC 7F010EAC 00000000 */ nop +/* 0459E0 7F010EB0 10000014 */ b .L7F010F04 +/* 0459E4 7F010EB4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EB8: +/* 0459E8 7F010EB8 13200006 */ beqz $t9, .L7F010ED4 +/* 0459EC 7F010EBC 8FA80020 */ lw $t0, 0x20($sp) +/* 0459F0 7F010EC0 24040010 */ li $a0, 16 +/* 0459F4 7F010EC4 0FC06975 */ jal set_menu_to_mode +/* 0459F8 7F010EC8 00002825 */ move $a1, $zero +/* 0459FC 7F010ECC 1000000D */ b .L7F010F04 +/* 045A00 7F010ED0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010ED4: +/* 045A04 7F010ED4 11000006 */ beqz $t0, .L7F010EF0 +/* 045A08 7F010ED8 8FA9001C */ lw $t1, 0x1c($sp) +/* 045A0C 7F010EDC 24040011 */ li $a0, 17 +/* 045A10 7F010EE0 0FC06975 */ jal set_menu_to_mode +/* 045A14 7F010EE4 00002825 */ move $a1, $zero +/* 045A18 7F010EE8 10000006 */ b .L7F010F04 +/* 045A1C 7F010EEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EF0: +/* 045A20 7F010EF0 51200004 */ beql $t1, $zero, .L7F010F04 +/* 045A24 7F010EF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 045A28 7F010EF8 0FC0408F */ jal advance_aim_settings_selection +/* 045A2C 7F010EFC 00000000 */ nop +/* 045A30 7F010F00 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010F04: +/* 045A34 7F010F04 27BD0040 */ addiu $sp, $sp, 0x40 +/* 045A38 7F010F08 03E00008 */ jr $ra +/* 045A3C 7F010F0C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0E_mpoptions(void) +{ + s32 sp64; + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_ret_8; + s32 temp_ret_9; + s32 temp_s0; + s32 temp_s0_10; + s32 temp_s0_11; + s32 temp_s0_12; + s32 temp_s0_13; + s32 temp_s0_14; + s32 temp_s0_15; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 temp_s0_6; + s32 temp_s0_7; + s32 temp_s0_8; + s32 temp_s0_9; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_v1; + s32 phi_s0_3; + s32 phi_v1_2; + s32 phi_s0_4; + s32 phi_v1_3; + s32 phi_s0_5; + s32 phi_v1_4; + s32 phi_s0_6; + s32 phi_v1_5; + s32 phi_s0_7; + s32 phi_v1_6; + s32 phi_s0_8; + s32 phi_v1_7; + s32 phi_s0_9; + s32 phi_v1_8; + s32 phi_v1_9; + s32 phi_v1_10; + s32 phi_v1_11; + + sp64 = get_textptr_for_textID(TEXT(LTITLE, 0x4c)); + sp58 = 0x37; + sp54 = 0x5f; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x4d)); + sp64 = temp_ret; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x79; + phi_s0 = temp_s0; + if (highlight_players != 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x37, 0x78, sp4C + 0x3c, 0x87, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x4e)); + sp64 = temp_ret_2; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x8d; + phi_s0_2 = temp_s0_2; + if (highlight_scenario != 0) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_2, 0x37, 0x8c, sp4C + 0x3c, 0x9b, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x4f)); + sp64 = temp_ret_3; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xa1; + phi_s0_3 = temp_s0_3; + if (highlight_gameselect != 0) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_s0_3, 0x37, 0xa0, sp4C + 0x3c, 0xaf, 0x32); + } + if (unlock_stage_select != 0) + { + phi_v1 = 0xff; + } + else + { + phi_v1 = 0x70; + } + sp48 = (s32) phi_v1; + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_4 = get_textptr_for_textID(TEXT(LTITLE, 0x50)); + sp64 = temp_ret_4; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xb5; + phi_s0_4 = temp_s0_4; + if (highlight_gamelength != 0) + { + phi_s0_4 = microcode_constructor_related_to_menus(temp_s0_4, 0x37, 0xb4, sp4C + 0x3c, 0xc3, 0x32); + } + if (unlock_game_length != 0) + { + phi_v1_2 = 0xff; + } + else + { + phi_v1_2 = 0x70; + } + sp48 = (s32) phi_v1_2; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(phi_s0_4, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_2, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x51)); + sp64 = temp_ret_5; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xc9; + phi_s0_5 = temp_s0_5; + if (highlight_weaponselect != 0) + { + phi_s0_5 = microcode_constructor_related_to_menus(temp_s0_5, 0x37, 0xc8, sp4C + 0x3c, 0xd7, 0x32); + } + if (unlock_weapon_select != 0) + { + phi_v1_3 = 0xff; + } + else + { + phi_v1_3 = 0x70; + } + sp48 = (s32) phi_v1_3; + sp44 = get_video2_settings_txtClipW(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_5, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_3, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_6 = get_textptr_for_textID(TEXT(LTITLE, 0x52)); + sp64 = temp_ret_6; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_6, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xdd; + phi_s0_6 = temp_s0_6; + if (highlight_character != 0) + { + phi_s0_6 = microcode_constructor_related_to_menus(temp_s0_6, 0x37, 0xdc, sp4C + 0x3c, 0xeb, 0x32); + } + if (unlock_chars != 0) + { + phi_v1_4 = 0xff; + } + else + { + phi_v1_4 = 0x70; + } + sp48 = (s32) phi_v1_4; + sp44 = get_video2_settings_txtClipW(); + temp_s0_7 = write_text_at_abs_coord(phi_s0_6, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_4, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_7 = get_textptr_for_textID(TEXT(LTITLE, 0x53)); + sp64 = temp_ret_7; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_7, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xf1; + phi_s0_7 = temp_s0_7; + if (highlight_health != 0) + { + phi_s0_7 = microcode_constructor_related_to_menus(temp_s0_7, 0x37, 0xf0, sp4C + 0x3c, 0xff, 0x32); + } + if (unlock_handicap != 0) + { + phi_v1_5 = 0xff; + } + else + { + phi_v1_5 = 0x70; + } + sp48 = (s32) phi_v1_5; + sp44 = get_video2_settings_txtClipW(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_7, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_5, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_8 = get_textptr_for_textID(TEXT(LTITLE, 0x11e)); + sp64 = temp_ret_8; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_8, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x105; + phi_s0_8 = temp_s0_8; + if (highlight_controlstyle != 0) + { + phi_s0_8 = microcode_constructor_related_to_menus(temp_s0_8, 0x37, 0x104, sp4C + 0x3c, 0x113, 0x32); + } + if (unlock_control_style != 0) + { + phi_v1_6 = 0xff; + } + else + { + phi_v1_6 = 0x70; + } + sp48 = (s32) phi_v1_6; + sp44 = get_video2_settings_txtClipW(); + temp_s0_9 = write_text_at_abs_coord(phi_s0_8, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_6, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_9 = get_textptr_for_textID(TEXT(LTITLE, 0x54)); + sp64 = temp_ret_9; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_9, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x119; + phi_s0_9 = temp_s0_9; + if (highlight_aimadjustment != 0) + { + phi_s0_9 = microcode_constructor_related_to_menus(temp_s0_9, 0x37, 0x118, sp4C + 0x3c, 0x127, 0x32); + } + if (unlock_aim_sight != 0) + { + phi_v1_7 = 0xff; + } + else + { + phi_v1_7 = 0x70; + } + sp48 = (s32) phi_v1_7; + sp44 = get_video2_settings_txtClipW(); + temp_s0_10 = write_text_at_abs_coord(phi_s0_9, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_7, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp5C, &aD_7, selected_num_players); + sp58 = 0xa0; + sp54 = 0x79; + sp44 = get_video2_settings_txtClipW(); + temp_s0_11 = write_text_at_abs_coord(temp_s0_10, &sp58, &sp54, &sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (scenario * 4))->unk-4FAC); + sp58 = 0xa0; + sp54 = 0x8d; + sp44 = get_video2_settings_txtClipW(); + temp_s0_12 = write_text_at_abs_coord(temp_s0_11, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (MP_stage_selected * 0x18))->unk-4F8C); + sp58 = 0xa0; + sp54 = 0xa1; + if (unlock_stage_select != 0) + { + phi_v1_8 = 0xff; + } + else + { + phi_v1_8 = 0x70; + } + sp48 = (s32) phi_v1_8; + sp44 = get_video2_settings_txtClipW(); + temp_s0_13 = write_text_at_abs_coord(temp_s0_12, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_8, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (game_length * 0xc))->unk-500C); + sp58 = 0xa0; + sp54 = 0xb5; + if (unlock_game_length != 0) + { + phi_v1_9 = 0xff; + } + else + { + phi_v1_9 = 0x70; + } + sp48 = (s32) phi_v1_9; + sp44 = get_video2_settings_txtClipW(); + temp_s0_14 = write_text_at_abs_coord(temp_s0_13, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_9, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID(*getPtrMPWeaponSetTextID()); + sp58 = 0xa0; + sp54 = 0xc9; + if (unlock_weapon_select != 0) + { + phi_v1_10 = 0xff; + } + else + { + phi_v1_10 = 0x70; + } + sp48 = (s32) phi_v1_10; + sp44 = get_video2_settings_txtClipW(); + temp_s0_15 = write_text_at_abs_coord(temp_s0_14, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_10, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (aim_sight_adjustment * 4))->unk-4AF0); + sp58 = 0xa0; + sp54 = 0x119; + if (unlock_aim_sight != 0) + { + phi_v1_11 = 0xff; + } + else + { + phi_v1_11 = 0x70; + } + sp48 = (s32) phi_v1_11; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab1_start(add_tab3_previous(write_text_at_abs_coord(temp_s0_15, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_11, sp44, get_video2_settings_txtClipH(), 0, 0)))); +} +#else +const char aD_7[] = "%d"; +GLOBAL_ASM( +.text +glabel constructor_menu0E_mpoptions +/* 045A40 7F010F10 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 045A44 7F010F14 AFBF003C */ sw $ra, 0x3c($sp) +/* 045A48 7F010F18 AFB00038 */ sw $s0, 0x38($sp) +/* 045A4C 7F010F1C 00002825 */ move $a1, $zero +/* 045A50 7F010F20 00003025 */ move $a2, $zero +/* 045A54 7F010F24 0C0011B4 */ jal set_setfillcolor +/* 045A58 7F010F28 00003825 */ move $a3, $zero +/* 045A5C 7F010F2C 0C000FBE */ jal insert_generic_fillrect +/* 045A60 7F010F30 00402025 */ move $a0, $v0 +/* 045A64 7F010F34 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 045A68 7F010F38 00402025 */ move $a0, $v0 +/* 045A6C 7F010F3C 0FC2B366 */ jal microcode_constructor +/* 045A70 7F010F40 00402025 */ move $a0, $v0 +/* 045A74 7F010F44 00408025 */ move $s0, $v0 +/* 045A78 7F010F48 0FC30776 */ jal get_textptr_for_textID +/* 045A7C 7F010F4C 34049C4C */ li $a0, 40012 +/* 045A80 7F010F50 240E0037 */ li $t6, 55 +/* 045A84 7F010F54 240F005F */ li $t7, 95 +/* 045A88 7F010F58 AFA20064 */ sw $v0, 0x64($sp) +/* 045A8C 7F010F5C AFAE0058 */ sw $t6, 0x58($sp) +/* 045A90 7F010F60 0C001107 */ jal get_video2_settings_txtClipW +/* 045A94 7F010F64 AFAF0054 */ sw $t7, 0x54($sp) +/* 045A98 7F010F68 0C00110B */ jal get_video2_settings_txtClipH +/* 045A9C 7F010F6C A7A20044 */ sh $v0, 0x44($sp) +/* 045AA0 7F010F70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045AA4 7F010F74 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045AA8 7F010F78 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045AAC 7F010F7C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045AB0 7F010F80 87A90044 */ lh $t1, 0x44($sp) +/* 045AB4 7F010F84 240800FF */ li $t0, 255 +/* 045AB8 7F010F88 AFA80018 */ sw $t0, 0x18($sp) +/* 045ABC 7F010F8C 02002025 */ move $a0, $s0 +/* 045AC0 7F010F90 27A50058 */ addiu $a1, $sp, 0x58 +/* 045AC4 7F010F94 27A60054 */ addiu $a2, $sp, 0x54 +/* 045AC8 7F010F98 8FA70064 */ lw $a3, 0x64($sp) +/* 045ACC 7F010F9C AFA20020 */ sw $v0, 0x20($sp) +/* 045AD0 7F010FA0 AFA00024 */ sw $zero, 0x24($sp) +/* 045AD4 7F010FA4 AFA00028 */ sw $zero, 0x28($sp) +/* 045AD8 7F010FA8 AFB90014 */ sw $t9, 0x14($sp) +/* 045ADC 7F010FAC AFB80010 */ sw $t8, 0x10($sp) +/* 045AE0 7F010FB0 0FC025D8 */ jal write_text_at_abs_coord +/* 045AE4 7F010FB4 AFA9001C */ sw $t1, 0x1c($sp) +/* 045AE8 7F010FB8 00408025 */ move $s0, $v0 +/* 045AEC 7F010FBC 0FC30776 */ jal get_textptr_for_textID +/* 045AF0 7F010FC0 34049C4D */ li $a0, 40013 +/* 045AF4 7F010FC4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045AF8 7F010FC8 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045AFC 7F010FCC 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045B00 7F010FD0 AFA20064 */ sw $v0, 0x64($sp) +/* 045B04 7F010FD4 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045B08 7F010FD8 27A40050 */ addiu $a0, $sp, 0x50 +/* 045B0C 7F010FDC 27A5004C */ addiu $a1, $sp, 0x4c +/* 045B10 7F010FE0 00403025 */ move $a2, $v0 +/* 045B14 7F010FE4 AFA00014 */ sw $zero, 0x14($sp) +/* 045B18 7F010FE8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045B1C 7F010FEC AFAA0010 */ sw $t2, 0x10($sp) +/* 045B20 7F010FF0 3C0D8007 */ lui $t5, %hi(highlight_players) +/* 045B24 7F010FF4 8DAD97C8 */ lw $t5, %lo(highlight_players)($t5) +/* 045B28 7F010FF8 240B0039 */ li $t3, 57 +/* 045B2C 7F010FFC 240C0079 */ li $t4, 121 +/* 045B30 7F011000 AFAB0058 */ sw $t3, 0x58($sp) +/* 045B34 7F011004 11A0000C */ beqz $t5, .L7F011038 +/* 045B38 7F011008 AFAC0054 */ sw $t4, 0x54($sp) +/* 045B3C 7F01100C 8FA7004C */ lw $a3, 0x4c($sp) +/* 045B40 7F011010 240E0087 */ li $t6, 135 +/* 045B44 7F011014 240F0032 */ li $t7, 50 +/* 045B48 7F011018 AFAF0014 */ sw $t7, 0x14($sp) +/* 045B4C 7F01101C AFAE0010 */ sw $t6, 0x10($sp) +/* 045B50 7F011020 02002025 */ move $a0, $s0 +/* 045B54 7F011024 24050037 */ li $a1, 55 +/* 045B58 7F011028 24060078 */ li $a2, 120 +/* 045B5C 7F01102C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045B60 7F011030 24E7003C */ addiu $a3, $a3, 0x3c +/* 045B64 7F011034 00408025 */ move $s0, $v0 +.L7F011038: +/* 045B68 7F011038 0C001107 */ jal get_video2_settings_txtClipW +/* 045B6C 7F01103C 00000000 */ nop +/* 045B70 7F011040 0C00110B */ jal get_video2_settings_txtClipH +/* 045B74 7F011044 A7A20044 */ sh $v0, 0x44($sp) +/* 045B78 7F011048 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045B7C 7F01104C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045B80 7F011050 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045B84 7F011054 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045B88 7F011058 87A90044 */ lh $t1, 0x44($sp) +/* 045B8C 7F01105C 240800FF */ li $t0, 255 +/* 045B90 7F011060 AFA80018 */ sw $t0, 0x18($sp) +/* 045B94 7F011064 02002025 */ move $a0, $s0 +/* 045B98 7F011068 27A50058 */ addiu $a1, $sp, 0x58 +/* 045B9C 7F01106C 27A60054 */ addiu $a2, $sp, 0x54 +/* 045BA0 7F011070 8FA70064 */ lw $a3, 0x64($sp) +/* 045BA4 7F011074 AFA20020 */ sw $v0, 0x20($sp) +/* 045BA8 7F011078 AFA00024 */ sw $zero, 0x24($sp) +/* 045BAC 7F01107C AFA00028 */ sw $zero, 0x28($sp) +/* 045BB0 7F011080 AFB90014 */ sw $t9, 0x14($sp) +/* 045BB4 7F011084 AFB80010 */ sw $t8, 0x10($sp) +/* 045BB8 7F011088 0FC025D8 */ jal write_text_at_abs_coord +/* 045BBC 7F01108C AFA9001C */ sw $t1, 0x1c($sp) +/* 045BC0 7F011090 00408025 */ move $s0, $v0 +/* 045BC4 7F011094 0FC30776 */ jal get_textptr_for_textID +/* 045BC8 7F011098 34049C4E */ li $a0, 40014 +/* 045BCC 7F01109C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045BD0 7F0110A0 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045BD4 7F0110A4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045BD8 7F0110A8 AFA20064 */ sw $v0, 0x64($sp) +/* 045BDC 7F0110AC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045BE0 7F0110B0 27A40050 */ addiu $a0, $sp, 0x50 +/* 045BE4 7F0110B4 27A5004C */ addiu $a1, $sp, 0x4c +/* 045BE8 7F0110B8 00403025 */ move $a2, $v0 +/* 045BEC 7F0110BC AFA00014 */ sw $zero, 0x14($sp) +/* 045BF0 7F0110C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045BF4 7F0110C4 AFAA0010 */ sw $t2, 0x10($sp) +/* 045BF8 7F0110C8 3C0D8007 */ lui $t5, %hi(highlight_scenario) +/* 045BFC 7F0110CC 8DAD97CC */ lw $t5, %lo(highlight_scenario)($t5) +/* 045C00 7F0110D0 240B0039 */ li $t3, 57 +/* 045C04 7F0110D4 240C008D */ li $t4, 141 +/* 045C08 7F0110D8 AFAB0058 */ sw $t3, 0x58($sp) +/* 045C0C 7F0110DC 11A0000C */ beqz $t5, .L7F011110 +/* 045C10 7F0110E0 AFAC0054 */ sw $t4, 0x54($sp) +/* 045C14 7F0110E4 8FA7004C */ lw $a3, 0x4c($sp) +/* 045C18 7F0110E8 240E009B */ li $t6, 155 +/* 045C1C 7F0110EC 240F0032 */ li $t7, 50 +/* 045C20 7F0110F0 AFAF0014 */ sw $t7, 0x14($sp) +/* 045C24 7F0110F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 045C28 7F0110F8 02002025 */ move $a0, $s0 +/* 045C2C 7F0110FC 24050037 */ li $a1, 55 +/* 045C30 7F011100 2406008C */ li $a2, 140 +/* 045C34 7F011104 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045C38 7F011108 24E7003C */ addiu $a3, $a3, 0x3c +/* 045C3C 7F01110C 00408025 */ move $s0, $v0 +.L7F011110: +/* 045C40 7F011110 0C001107 */ jal get_video2_settings_txtClipW +/* 045C44 7F011114 00000000 */ nop +/* 045C48 7F011118 0C00110B */ jal get_video2_settings_txtClipH +/* 045C4C 7F01111C A7A20044 */ sh $v0, 0x44($sp) +/* 045C50 7F011120 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045C54 7F011124 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045C58 7F011128 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045C5C 7F01112C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045C60 7F011130 87A90044 */ lh $t1, 0x44($sp) +/* 045C64 7F011134 240800FF */ li $t0, 255 +/* 045C68 7F011138 AFA80018 */ sw $t0, 0x18($sp) +/* 045C6C 7F01113C 02002025 */ move $a0, $s0 +/* 045C70 7F011140 27A50058 */ addiu $a1, $sp, 0x58 +/* 045C74 7F011144 27A60054 */ addiu $a2, $sp, 0x54 +/* 045C78 7F011148 8FA70064 */ lw $a3, 0x64($sp) +/* 045C7C 7F01114C AFA20020 */ sw $v0, 0x20($sp) +/* 045C80 7F011150 AFA00024 */ sw $zero, 0x24($sp) +/* 045C84 7F011154 AFA00028 */ sw $zero, 0x28($sp) +/* 045C88 7F011158 AFB90014 */ sw $t9, 0x14($sp) +/* 045C8C 7F01115C AFB80010 */ sw $t8, 0x10($sp) +/* 045C90 7F011160 0FC025D8 */ jal write_text_at_abs_coord +/* 045C94 7F011164 AFA9001C */ sw $t1, 0x1c($sp) +/* 045C98 7F011168 00408025 */ move $s0, $v0 +/* 045C9C 7F01116C 0FC30776 */ jal get_textptr_for_textID +/* 045CA0 7F011170 34049C4F */ li $a0, 40015 +/* 045CA4 7F011174 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045CA8 7F011178 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045CAC 7F01117C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045CB0 7F011180 AFA20064 */ sw $v0, 0x64($sp) +/* 045CB4 7F011184 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045CB8 7F011188 27A40050 */ addiu $a0, $sp, 0x50 +/* 045CBC 7F01118C 27A5004C */ addiu $a1, $sp, 0x4c +/* 045CC0 7F011190 00403025 */ move $a2, $v0 +/* 045CC4 7F011194 AFA00014 */ sw $zero, 0x14($sp) +/* 045CC8 7F011198 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045CCC 7F01119C AFAA0010 */ sw $t2, 0x10($sp) +/* 045CD0 7F0111A0 3C0D8007 */ lui $t5, %hi(highlight_gameselect) +/* 045CD4 7F0111A4 8DAD97D0 */ lw $t5, %lo(highlight_gameselect)($t5) +/* 045CD8 7F0111A8 240B0039 */ li $t3, 57 +/* 045CDC 7F0111AC 240C00A1 */ li $t4, 161 +/* 045CE0 7F0111B0 AFAB0058 */ sw $t3, 0x58($sp) +/* 045CE4 7F0111B4 11A0000C */ beqz $t5, .L7F0111E8 +/* 045CE8 7F0111B8 AFAC0054 */ sw $t4, 0x54($sp) +/* 045CEC 7F0111BC 8FA7004C */ lw $a3, 0x4c($sp) +/* 045CF0 7F0111C0 240E00AF */ li $t6, 175 +/* 045CF4 7F0111C4 240F0032 */ li $t7, 50 +/* 045CF8 7F0111C8 AFAF0014 */ sw $t7, 0x14($sp) +/* 045CFC 7F0111CC AFAE0010 */ sw $t6, 0x10($sp) +/* 045D00 7F0111D0 02002025 */ move $a0, $s0 +/* 045D04 7F0111D4 24050037 */ li $a1, 55 +/* 045D08 7F0111D8 240600A0 */ li $a2, 160 +/* 045D0C 7F0111DC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045D10 7F0111E0 24E7003C */ addiu $a3, $a3, 0x3c +/* 045D14 7F0111E4 00408025 */ move $s0, $v0 +.L7F0111E8: +/* 045D18 7F0111E8 3C188003 */ lui $t8, %hi(unlock_stage_select) +/* 045D1C 7F0111EC 8F18B544 */ lw $t8, %lo(unlock_stage_select)($t8) +/* 045D20 7F0111F0 53000004 */ beql $t8, $zero, .L7F011204 +/* 045D24 7F0111F4 24030070 */ li $v1, 112 +/* 045D28 7F0111F8 10000002 */ b .L7F011204 +/* 045D2C 7F0111FC 240300FF */ li $v1, 255 +/* 045D30 7F011200 24030070 */ li $v1, 112 +.L7F011204: +/* 045D34 7F011204 0C001107 */ jal get_video2_settings_txtClipW +/* 045D38 7F011208 AFA30048 */ sw $v1, 0x48($sp) +/* 045D3C 7F01120C 0C00110B */ jal get_video2_settings_txtClipH +/* 045D40 7F011210 A7A20044 */ sh $v0, 0x44($sp) +/* 045D44 7F011214 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045D48 7F011218 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045D4C 7F01121C 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045D50 7F011220 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045D54 7F011224 8FA30048 */ lw $v1, 0x48($sp) +/* 045D58 7F011228 87A90044 */ lh $t1, 0x44($sp) +/* 045D5C 7F01122C 02002025 */ move $a0, $s0 +/* 045D60 7F011230 27A50058 */ addiu $a1, $sp, 0x58 +/* 045D64 7F011234 27A60054 */ addiu $a2, $sp, 0x54 +/* 045D68 7F011238 8FA70064 */ lw $a3, 0x64($sp) +/* 045D6C 7F01123C AFA20020 */ sw $v0, 0x20($sp) +/* 045D70 7F011240 AFA00024 */ sw $zero, 0x24($sp) +/* 045D74 7F011244 AFA00028 */ sw $zero, 0x28($sp) +/* 045D78 7F011248 AFA80014 */ sw $t0, 0x14($sp) +/* 045D7C 7F01124C AFB90010 */ sw $t9, 0x10($sp) +/* 045D80 7F011250 AFA30018 */ sw $v1, 0x18($sp) +/* 045D84 7F011254 0FC025D8 */ jal write_text_at_abs_coord +/* 045D88 7F011258 AFA9001C */ sw $t1, 0x1c($sp) +/* 045D8C 7F01125C 00408025 */ move $s0, $v0 +/* 045D90 7F011260 0FC30776 */ jal get_textptr_for_textID +/* 045D94 7F011264 34049C50 */ li $a0, 40016 +/* 045D98 7F011268 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045D9C 7F01126C 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045DA0 7F011270 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045DA4 7F011274 AFA20064 */ sw $v0, 0x64($sp) +/* 045DA8 7F011278 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045DAC 7F01127C 27A40050 */ addiu $a0, $sp, 0x50 +/* 045DB0 7F011280 27A5004C */ addiu $a1, $sp, 0x4c +/* 045DB4 7F011284 00403025 */ move $a2, $v0 +/* 045DB8 7F011288 AFA00014 */ sw $zero, 0x14($sp) +/* 045DBC 7F01128C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045DC0 7F011290 AFAA0010 */ sw $t2, 0x10($sp) +/* 045DC4 7F011294 3C0D8007 */ lui $t5, %hi(highlight_gamelength) +/* 045DC8 7F011298 8DAD97D4 */ lw $t5, %lo(highlight_gamelength)($t5) +/* 045DCC 7F01129C 240B0039 */ li $t3, 57 +/* 045DD0 7F0112A0 240C00B5 */ li $t4, 181 +/* 045DD4 7F0112A4 AFAB0058 */ sw $t3, 0x58($sp) +/* 045DD8 7F0112A8 11A0000C */ beqz $t5, .L7F0112DC +/* 045DDC 7F0112AC AFAC0054 */ sw $t4, 0x54($sp) +/* 045DE0 7F0112B0 8FA7004C */ lw $a3, 0x4c($sp) +/* 045DE4 7F0112B4 240E00C3 */ li $t6, 195 +/* 045DE8 7F0112B8 240F0032 */ li $t7, 50 +/* 045DEC 7F0112BC AFAF0014 */ sw $t7, 0x14($sp) +/* 045DF0 7F0112C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 045DF4 7F0112C4 02002025 */ move $a0, $s0 +/* 045DF8 7F0112C8 24050037 */ li $a1, 55 +/* 045DFC 7F0112CC 240600B4 */ li $a2, 180 +/* 045E00 7F0112D0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045E04 7F0112D4 24E7003C */ addiu $a3, $a3, 0x3c +/* 045E08 7F0112D8 00408025 */ move $s0, $v0 +.L7F0112DC: +/* 045E0C 7F0112DC 3C188003 */ lui $t8, %hi(unlock_game_length) +/* 045E10 7F0112E0 8F18B548 */ lw $t8, %lo(unlock_game_length)($t8) +/* 045E14 7F0112E4 53000004 */ beql $t8, $zero, .L7F0112F8 +/* 045E18 7F0112E8 24030070 */ li $v1, 112 +/* 045E1C 7F0112EC 10000002 */ b .L7F0112F8 +/* 045E20 7F0112F0 240300FF */ li $v1, 255 +/* 045E24 7F0112F4 24030070 */ li $v1, 112 +.L7F0112F8: +/* 045E28 7F0112F8 0C001107 */ jal get_video2_settings_txtClipW +/* 045E2C 7F0112FC AFA30048 */ sw $v1, 0x48($sp) +/* 045E30 7F011300 0C00110B */ jal get_video2_settings_txtClipH +/* 045E34 7F011304 A7A20044 */ sh $v0, 0x44($sp) +/* 045E38 7F011308 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045E3C 7F01130C 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045E40 7F011310 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045E44 7F011314 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045E48 7F011318 8FA30048 */ lw $v1, 0x48($sp) +/* 045E4C 7F01131C 87A90044 */ lh $t1, 0x44($sp) +/* 045E50 7F011320 02002025 */ move $a0, $s0 +/* 045E54 7F011324 27A50058 */ addiu $a1, $sp, 0x58 +/* 045E58 7F011328 27A60054 */ addiu $a2, $sp, 0x54 +/* 045E5C 7F01132C 8FA70064 */ lw $a3, 0x64($sp) +/* 045E60 7F011330 AFA20020 */ sw $v0, 0x20($sp) +/* 045E64 7F011334 AFA00024 */ sw $zero, 0x24($sp) +/* 045E68 7F011338 AFA00028 */ sw $zero, 0x28($sp) +/* 045E6C 7F01133C AFA80014 */ sw $t0, 0x14($sp) +/* 045E70 7F011340 AFB90010 */ sw $t9, 0x10($sp) +/* 045E74 7F011344 AFA30018 */ sw $v1, 0x18($sp) +/* 045E78 7F011348 0FC025D8 */ jal write_text_at_abs_coord +/* 045E7C 7F01134C AFA9001C */ sw $t1, 0x1c($sp) +/* 045E80 7F011350 00408025 */ move $s0, $v0 +/* 045E84 7F011354 0FC30776 */ jal get_textptr_for_textID +/* 045E88 7F011358 34049C51 */ li $a0, 40017 +/* 045E8C 7F01135C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045E90 7F011360 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045E94 7F011364 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045E98 7F011368 AFA20064 */ sw $v0, 0x64($sp) +/* 045E9C 7F01136C 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045EA0 7F011370 27A40050 */ addiu $a0, $sp, 0x50 +/* 045EA4 7F011374 27A5004C */ addiu $a1, $sp, 0x4c +/* 045EA8 7F011378 00403025 */ move $a2, $v0 +/* 045EAC 7F01137C AFA00014 */ sw $zero, 0x14($sp) +/* 045EB0 7F011380 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045EB4 7F011384 AFAA0010 */ sw $t2, 0x10($sp) +/* 045EB8 7F011388 3C0D8007 */ lui $t5, %hi(highlight_weaponselect) +/* 045EBC 7F01138C 8DAD97DC */ lw $t5, %lo(highlight_weaponselect)($t5) +/* 045EC0 7F011390 240B0039 */ li $t3, 57 +/* 045EC4 7F011394 240C00C9 */ li $t4, 201 +/* 045EC8 7F011398 AFAB0058 */ sw $t3, 0x58($sp) +/* 045ECC 7F01139C 11A0000C */ beqz $t5, .L7F0113D0 +/* 045ED0 7F0113A0 AFAC0054 */ sw $t4, 0x54($sp) +/* 045ED4 7F0113A4 8FA7004C */ lw $a3, 0x4c($sp) +/* 045ED8 7F0113A8 240E00D7 */ li $t6, 215 +/* 045EDC 7F0113AC 240F0032 */ li $t7, 50 +/* 045EE0 7F0113B0 AFAF0014 */ sw $t7, 0x14($sp) +/* 045EE4 7F0113B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 045EE8 7F0113B8 02002025 */ move $a0, $s0 +/* 045EEC 7F0113BC 24050037 */ li $a1, 55 +/* 045EF0 7F0113C0 240600C8 */ li $a2, 200 +/* 045EF4 7F0113C4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045EF8 7F0113C8 24E7003C */ addiu $a3, $a3, 0x3c +/* 045EFC 7F0113CC 00408025 */ move $s0, $v0 +.L7F0113D0: +/* 045F00 7F0113D0 3C188003 */ lui $t8, %hi(unlock_weapon_select) +/* 045F04 7F0113D4 8F18B550 */ lw $t8, %lo(unlock_weapon_select)($t8) +/* 045F08 7F0113D8 53000004 */ beql $t8, $zero, .L7F0113EC +/* 045F0C 7F0113DC 24030070 */ li $v1, 112 +/* 045F10 7F0113E0 10000002 */ b .L7F0113EC +/* 045F14 7F0113E4 240300FF */ li $v1, 255 +/* 045F18 7F0113E8 24030070 */ li $v1, 112 +.L7F0113EC: +/* 045F1C 7F0113EC 0C001107 */ jal get_video2_settings_txtClipW +/* 045F20 7F0113F0 AFA30048 */ sw $v1, 0x48($sp) +/* 045F24 7F0113F4 0C00110B */ jal get_video2_settings_txtClipH +/* 045F28 7F0113F8 A7A20044 */ sh $v0, 0x44($sp) +/* 045F2C 7F0113FC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045F30 7F011400 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045F34 7F011404 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045F38 7F011408 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045F3C 7F01140C 8FA30048 */ lw $v1, 0x48($sp) +/* 045F40 7F011410 87A90044 */ lh $t1, 0x44($sp) +/* 045F44 7F011414 02002025 */ move $a0, $s0 +/* 045F48 7F011418 27A50058 */ addiu $a1, $sp, 0x58 +/* 045F4C 7F01141C 27A60054 */ addiu $a2, $sp, 0x54 +/* 045F50 7F011420 8FA70064 */ lw $a3, 0x64($sp) +/* 045F54 7F011424 AFA20020 */ sw $v0, 0x20($sp) +/* 045F58 7F011428 AFA00024 */ sw $zero, 0x24($sp) +/* 045F5C 7F01142C AFA00028 */ sw $zero, 0x28($sp) +/* 045F60 7F011430 AFA80014 */ sw $t0, 0x14($sp) +/* 045F64 7F011434 AFB90010 */ sw $t9, 0x10($sp) +/* 045F68 7F011438 AFA30018 */ sw $v1, 0x18($sp) +/* 045F6C 7F01143C 0FC025D8 */ jal write_text_at_abs_coord +/* 045F70 7F011440 AFA9001C */ sw $t1, 0x1c($sp) +/* 045F74 7F011444 00408025 */ move $s0, $v0 +/* 045F78 7F011448 0FC30776 */ jal get_textptr_for_textID +/* 045F7C 7F01144C 34049C52 */ li $a0, 40018 +/* 045F80 7F011450 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045F84 7F011454 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045F88 7F011458 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045F8C 7F01145C AFA20064 */ sw $v0, 0x64($sp) +/* 045F90 7F011460 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045F94 7F011464 27A40050 */ addiu $a0, $sp, 0x50 +/* 045F98 7F011468 27A5004C */ addiu $a1, $sp, 0x4c +/* 045F9C 7F01146C 00403025 */ move $a2, $v0 +/* 045FA0 7F011470 AFA00014 */ sw $zero, 0x14($sp) +/* 045FA4 7F011474 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045FA8 7F011478 AFAA0010 */ sw $t2, 0x10($sp) +/* 045FAC 7F01147C 3C0D8007 */ lui $t5, %hi(highlight_character) +/* 045FB0 7F011480 8DAD97D8 */ lw $t5, %lo(highlight_character)($t5) +/* 045FB4 7F011484 240B0039 */ li $t3, 57 +/* 045FB8 7F011488 240C00DD */ li $t4, 221 +/* 045FBC 7F01148C AFAB0058 */ sw $t3, 0x58($sp) +/* 045FC0 7F011490 11A0000C */ beqz $t5, .L7F0114C4 +/* 045FC4 7F011494 AFAC0054 */ sw $t4, 0x54($sp) +/* 045FC8 7F011498 8FA7004C */ lw $a3, 0x4c($sp) +/* 045FCC 7F01149C 240E00EB */ li $t6, 235 +/* 045FD0 7F0114A0 240F0032 */ li $t7, 50 +/* 045FD4 7F0114A4 AFAF0014 */ sw $t7, 0x14($sp) +/* 045FD8 7F0114A8 AFAE0010 */ sw $t6, 0x10($sp) +/* 045FDC 7F0114AC 02002025 */ move $a0, $s0 +/* 045FE0 7F0114B0 24050037 */ li $a1, 55 +/* 045FE4 7F0114B4 240600DC */ li $a2, 220 +/* 045FE8 7F0114B8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045FEC 7F0114BC 24E7003C */ addiu $a3, $a3, 0x3c +/* 045FF0 7F0114C0 00408025 */ move $s0, $v0 +.L7F0114C4: +/* 045FF4 7F0114C4 3C188003 */ lui $t8, %hi(unlock_chars) +/* 045FF8 7F0114C8 8F18B54C */ lw $t8, %lo(unlock_chars)($t8) +/* 045FFC 7F0114CC 53000004 */ beql $t8, $zero, .L7F0114E0 +/* 046000 7F0114D0 24030070 */ li $v1, 112 +/* 046004 7F0114D4 10000002 */ b .L7F0114E0 +/* 046008 7F0114D8 240300FF */ li $v1, 255 +/* 04600C 7F0114DC 24030070 */ li $v1, 112 +.L7F0114E0: +/* 046010 7F0114E0 0C001107 */ jal get_video2_settings_txtClipW +/* 046014 7F0114E4 AFA30048 */ sw $v1, 0x48($sp) +/* 046018 7F0114E8 0C00110B */ jal get_video2_settings_txtClipH +/* 04601C 7F0114EC A7A20044 */ sh $v0, 0x44($sp) +/* 046020 7F0114F0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046024 7F0114F4 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046028 7F0114F8 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 04602C 7F0114FC 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046030 7F011500 8FA30048 */ lw $v1, 0x48($sp) +/* 046034 7F011504 87A90044 */ lh $t1, 0x44($sp) +/* 046038 7F011508 02002025 */ move $a0, $s0 +/* 04603C 7F01150C 27A50058 */ addiu $a1, $sp, 0x58 +/* 046040 7F011510 27A60054 */ addiu $a2, $sp, 0x54 +/* 046044 7F011514 8FA70064 */ lw $a3, 0x64($sp) +/* 046048 7F011518 AFA20020 */ sw $v0, 0x20($sp) +/* 04604C 7F01151C AFA00024 */ sw $zero, 0x24($sp) +/* 046050 7F011520 AFA00028 */ sw $zero, 0x28($sp) +/* 046054 7F011524 AFA80014 */ sw $t0, 0x14($sp) +/* 046058 7F011528 AFB90010 */ sw $t9, 0x10($sp) +/* 04605C 7F01152C AFA30018 */ sw $v1, 0x18($sp) +/* 046060 7F011530 0FC025D8 */ jal write_text_at_abs_coord +/* 046064 7F011534 AFA9001C */ sw $t1, 0x1c($sp) +/* 046068 7F011538 00408025 */ move $s0, $v0 +/* 04606C 7F01153C 0FC30776 */ jal get_textptr_for_textID +/* 046070 7F011540 34049C53 */ li $a0, 40019 +/* 046074 7F011544 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 046078 7F011548 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04607C 7F01154C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046080 7F011550 AFA20064 */ sw $v0, 0x64($sp) +/* 046084 7F011554 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 046088 7F011558 27A40050 */ addiu $a0, $sp, 0x50 +/* 04608C 7F01155C 27A5004C */ addiu $a1, $sp, 0x4c +/* 046090 7F011560 00403025 */ move $a2, $v0 +/* 046094 7F011564 AFA00014 */ sw $zero, 0x14($sp) +/* 046098 7F011568 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04609C 7F01156C AFAA0010 */ sw $t2, 0x10($sp) +/* 0460A0 7F011570 3C0D8007 */ lui $t5, %hi(highlight_health) +/* 0460A4 7F011574 8DAD97E0 */ lw $t5, %lo(highlight_health)($t5) +/* 0460A8 7F011578 240B0039 */ li $t3, 57 +/* 0460AC 7F01157C 240C00F1 */ li $t4, 241 +/* 0460B0 7F011580 AFAB0058 */ sw $t3, 0x58($sp) +/* 0460B4 7F011584 11A0000C */ beqz $t5, .L7F0115B8 +/* 0460B8 7F011588 AFAC0054 */ sw $t4, 0x54($sp) +/* 0460BC 7F01158C 8FA7004C */ lw $a3, 0x4c($sp) +/* 0460C0 7F011590 240E00FF */ li $t6, 255 +/* 0460C4 7F011594 240F0032 */ li $t7, 50 +/* 0460C8 7F011598 AFAF0014 */ sw $t7, 0x14($sp) +/* 0460CC 7F01159C AFAE0010 */ sw $t6, 0x10($sp) +/* 0460D0 7F0115A0 02002025 */ move $a0, $s0 +/* 0460D4 7F0115A4 24050037 */ li $a1, 55 +/* 0460D8 7F0115A8 240600F0 */ li $a2, 240 +/* 0460DC 7F0115AC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0460E0 7F0115B0 24E7003C */ addiu $a3, $a3, 0x3c +/* 0460E4 7F0115B4 00408025 */ move $s0, $v0 +.L7F0115B8: +/* 0460E8 7F0115B8 3C188003 */ lui $t8, %hi(unlock_handicap) +/* 0460EC 7F0115BC 8F18B554 */ lw $t8, %lo(unlock_handicap)($t8) +/* 0460F0 7F0115C0 53000004 */ beql $t8, $zero, .L7F0115D4 +/* 0460F4 7F0115C4 24030070 */ li $v1, 112 +/* 0460F8 7F0115C8 10000002 */ b .L7F0115D4 +/* 0460FC 7F0115CC 240300FF */ li $v1, 255 +/* 046100 7F0115D0 24030070 */ li $v1, 112 +.L7F0115D4: +/* 046104 7F0115D4 0C001107 */ jal get_video2_settings_txtClipW +/* 046108 7F0115D8 AFA30048 */ sw $v1, 0x48($sp) +/* 04610C 7F0115DC 0C00110B */ jal get_video2_settings_txtClipH +/* 046110 7F0115E0 A7A20044 */ sh $v0, 0x44($sp) +/* 046114 7F0115E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046118 7F0115E8 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 04611C 7F0115EC 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046120 7F0115F0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046124 7F0115F4 8FA30048 */ lw $v1, 0x48($sp) +/* 046128 7F0115F8 87A90044 */ lh $t1, 0x44($sp) +/* 04612C 7F0115FC 02002025 */ move $a0, $s0 +/* 046130 7F011600 27A50058 */ addiu $a1, $sp, 0x58 +/* 046134 7F011604 27A60054 */ addiu $a2, $sp, 0x54 +/* 046138 7F011608 8FA70064 */ lw $a3, 0x64($sp) +/* 04613C 7F01160C AFA20020 */ sw $v0, 0x20($sp) +/* 046140 7F011610 AFA00024 */ sw $zero, 0x24($sp) +/* 046144 7F011614 AFA00028 */ sw $zero, 0x28($sp) +/* 046148 7F011618 AFA80014 */ sw $t0, 0x14($sp) +/* 04614C 7F01161C AFB90010 */ sw $t9, 0x10($sp) +/* 046150 7F011620 AFA30018 */ sw $v1, 0x18($sp) +/* 046154 7F011624 0FC025D8 */ jal write_text_at_abs_coord +/* 046158 7F011628 AFA9001C */ sw $t1, 0x1c($sp) +/* 04615C 7F01162C 00408025 */ move $s0, $v0 +/* 046160 7F011630 0FC30776 */ jal get_textptr_for_textID +/* 046164 7F011634 34049D1E */ li $a0, 40222 +/* 046168 7F011638 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04616C 7F01163C 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 046170 7F011640 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046174 7F011644 AFA20064 */ sw $v0, 0x64($sp) +/* 046178 7F011648 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04617C 7F01164C 27A40050 */ addiu $a0, $sp, 0x50 +/* 046180 7F011650 27A5004C */ addiu $a1, $sp, 0x4c +/* 046184 7F011654 00403025 */ move $a2, $v0 +/* 046188 7F011658 AFA00014 */ sw $zero, 0x14($sp) +/* 04618C 7F01165C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 046190 7F011660 AFAA0010 */ sw $t2, 0x10($sp) +/* 046194 7F011664 3C0D8007 */ lui $t5, %hi(highlight_controlstyle) +/* 046198 7F011668 8DAD97E4 */ lw $t5, %lo(highlight_controlstyle)($t5) +/* 04619C 7F01166C 240B0039 */ li $t3, 57 +/* 0461A0 7F011670 240C0105 */ li $t4, 261 +/* 0461A4 7F011674 AFAB0058 */ sw $t3, 0x58($sp) +/* 0461A8 7F011678 11A0000C */ beqz $t5, .L7F0116AC +/* 0461AC 7F01167C AFAC0054 */ sw $t4, 0x54($sp) +/* 0461B0 7F011680 8FA7004C */ lw $a3, 0x4c($sp) +/* 0461B4 7F011684 240E0113 */ li $t6, 275 +/* 0461B8 7F011688 240F0032 */ li $t7, 50 +/* 0461BC 7F01168C AFAF0014 */ sw $t7, 0x14($sp) +/* 0461C0 7F011690 AFAE0010 */ sw $t6, 0x10($sp) +/* 0461C4 7F011694 02002025 */ move $a0, $s0 +/* 0461C8 7F011698 24050037 */ li $a1, 55 +/* 0461CC 7F01169C 24060104 */ li $a2, 260 +/* 0461D0 7F0116A0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0461D4 7F0116A4 24E7003C */ addiu $a3, $a3, 0x3c +/* 0461D8 7F0116A8 00408025 */ move $s0, $v0 +.L7F0116AC: +/* 0461DC 7F0116AC 3C188003 */ lui $t8, %hi(unlock_control_style) +/* 0461E0 7F0116B0 8F18B558 */ lw $t8, %lo(unlock_control_style)($t8) +/* 0461E4 7F0116B4 53000004 */ beql $t8, $zero, .L7F0116C8 +/* 0461E8 7F0116B8 24030070 */ li $v1, 112 +/* 0461EC 7F0116BC 10000002 */ b .L7F0116C8 +/* 0461F0 7F0116C0 240300FF */ li $v1, 255 +/* 0461F4 7F0116C4 24030070 */ li $v1, 112 +.L7F0116C8: +/* 0461F8 7F0116C8 0C001107 */ jal get_video2_settings_txtClipW +/* 0461FC 7F0116CC AFA30048 */ sw $v1, 0x48($sp) +/* 046200 7F0116D0 0C00110B */ jal get_video2_settings_txtClipH +/* 046204 7F0116D4 A7A20044 */ sh $v0, 0x44($sp) +/* 046208 7F0116D8 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04620C 7F0116DC 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046210 7F0116E0 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046214 7F0116E4 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046218 7F0116E8 8FA30048 */ lw $v1, 0x48($sp) +/* 04621C 7F0116EC 87A90044 */ lh $t1, 0x44($sp) +/* 046220 7F0116F0 02002025 */ move $a0, $s0 +/* 046224 7F0116F4 27A50058 */ addiu $a1, $sp, 0x58 +/* 046228 7F0116F8 27A60054 */ addiu $a2, $sp, 0x54 +/* 04622C 7F0116FC 8FA70064 */ lw $a3, 0x64($sp) +/* 046230 7F011700 AFA20020 */ sw $v0, 0x20($sp) +/* 046234 7F011704 AFA00024 */ sw $zero, 0x24($sp) +/* 046238 7F011708 AFA00028 */ sw $zero, 0x28($sp) +/* 04623C 7F01170C AFA80014 */ sw $t0, 0x14($sp) +/* 046240 7F011710 AFB90010 */ sw $t9, 0x10($sp) +/* 046244 7F011714 AFA30018 */ sw $v1, 0x18($sp) +/* 046248 7F011718 0FC025D8 */ jal write_text_at_abs_coord +/* 04624C 7F01171C AFA9001C */ sw $t1, 0x1c($sp) +/* 046250 7F011720 00408025 */ move $s0, $v0 +/* 046254 7F011724 0FC30776 */ jal get_textptr_for_textID +/* 046258 7F011728 34049C54 */ li $a0, 40020 +/* 04625C 7F01172C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 046260 7F011730 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 046264 7F011734 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046268 7F011738 AFA20064 */ sw $v0, 0x64($sp) +/* 04626C 7F01173C 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 046270 7F011740 27A40050 */ addiu $a0, $sp, 0x50 +/* 046274 7F011744 27A5004C */ addiu $a1, $sp, 0x4c +/* 046278 7F011748 00403025 */ move $a2, $v0 +/* 04627C 7F01174C AFA00014 */ sw $zero, 0x14($sp) +/* 046280 7F011750 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 046284 7F011754 AFAA0010 */ sw $t2, 0x10($sp) +/* 046288 7F011758 3C0D8007 */ lui $t5, %hi(highlight_aimadjustment) +/* 04628C 7F01175C 8DAD97E8 */ lw $t5, %lo(highlight_aimadjustment)($t5) +/* 046290 7F011760 240B0039 */ li $t3, 57 +/* 046294 7F011764 240C0119 */ li $t4, 281 +/* 046298 7F011768 AFAB0058 */ sw $t3, 0x58($sp) +/* 04629C 7F01176C 11A0000C */ beqz $t5, .L7F0117A0 +/* 0462A0 7F011770 AFAC0054 */ sw $t4, 0x54($sp) +/* 0462A4 7F011774 8FA7004C */ lw $a3, 0x4c($sp) +/* 0462A8 7F011778 240E0127 */ li $t6, 295 +/* 0462AC 7F01177C 240F0032 */ li $t7, 50 +/* 0462B0 7F011780 AFAF0014 */ sw $t7, 0x14($sp) +/* 0462B4 7F011784 AFAE0010 */ sw $t6, 0x10($sp) +/* 0462B8 7F011788 02002025 */ move $a0, $s0 +/* 0462BC 7F01178C 24050037 */ li $a1, 55 +/* 0462C0 7F011790 24060118 */ li $a2, 280 +/* 0462C4 7F011794 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0462C8 7F011798 24E7003C */ addiu $a3, $a3, 0x3c +/* 0462CC 7F01179C 00408025 */ move $s0, $v0 +.L7F0117A0: +/* 0462D0 7F0117A0 3C188003 */ lui $t8, %hi(unlock_aim_sight) +/* 0462D4 7F0117A4 8F18B55C */ lw $t8, %lo(unlock_aim_sight)($t8) +/* 0462D8 7F0117A8 53000004 */ beql $t8, $zero, .L7F0117BC +/* 0462DC 7F0117AC 24030070 */ li $v1, 112 +/* 0462E0 7F0117B0 10000002 */ b .L7F0117BC +/* 0462E4 7F0117B4 240300FF */ li $v1, 255 +/* 0462E8 7F0117B8 24030070 */ li $v1, 112 +.L7F0117BC: +/* 0462EC 7F0117BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0462F0 7F0117C0 AFA30048 */ sw $v1, 0x48($sp) +/* 0462F4 7F0117C4 0C00110B */ jal get_video2_settings_txtClipH +/* 0462F8 7F0117C8 A7A20044 */ sh $v0, 0x44($sp) +/* 0462FC 7F0117CC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046300 7F0117D0 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046304 7F0117D4 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046308 7F0117D8 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04630C 7F0117DC 8FA30048 */ lw $v1, 0x48($sp) +/* 046310 7F0117E0 87A90044 */ lh $t1, 0x44($sp) +/* 046314 7F0117E4 02002025 */ move $a0, $s0 +/* 046318 7F0117E8 27A50058 */ addiu $a1, $sp, 0x58 +/* 04631C 7F0117EC 27A60054 */ addiu $a2, $sp, 0x54 +/* 046320 7F0117F0 8FA70064 */ lw $a3, 0x64($sp) +/* 046324 7F0117F4 AFA20020 */ sw $v0, 0x20($sp) +/* 046328 7F0117F8 AFA00024 */ sw $zero, 0x24($sp) +/* 04632C 7F0117FC AFA00028 */ sw $zero, 0x28($sp) +/* 046330 7F011800 AFA80014 */ sw $t0, 0x14($sp) +/* 046334 7F011804 AFB90010 */ sw $t9, 0x10($sp) +/* 046338 7F011808 AFA30018 */ sw $v1, 0x18($sp) +/* 04633C 7F01180C 0FC025D8 */ jal write_text_at_abs_coord +/* 046340 7F011810 AFA9001C */ sw $t1, 0x1c($sp) +/* 046344 7F011814 3C058005 */ lui $a1, %hi(aD_7) +/* 046348 7F011818 3C068003 */ lui $a2, %hi(selected_num_players) +/* 04634C 7F01181C 00408025 */ move $s0, $v0 +/* 046350 7F011820 8CC6B520 */ lw $a2, %lo(selected_num_players)($a2) +/* 046354 7F011824 24A50C4C */ addiu $a1, %lo(aD_7) # addiu $a1, $a1, 0xc4c +/* 046358 7F011828 0C002B25 */ jal sprintf +/* 04635C 7F01182C 27A4005C */ addiu $a0, $sp, 0x5c +/* 046360 7F011830 240A00A0 */ li $t2, 160 +/* 046364 7F011834 240B0079 */ li $t3, 121 +/* 046368 7F011838 AFAA0058 */ sw $t2, 0x58($sp) +/* 04636C 7F01183C 0C001107 */ jal get_video2_settings_txtClipW +/* 046370 7F011840 AFAB0054 */ sw $t3, 0x54($sp) +/* 046374 7F011844 0C00110B */ jal get_video2_settings_txtClipH +/* 046378 7F011848 A7A20044 */ sh $v0, 0x44($sp) +/* 04637C 7F01184C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 046380 7F011850 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 046384 7F011854 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 046388 7F011858 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04638C 7F01185C 87AF0044 */ lh $t7, 0x44($sp) +/* 046390 7F011860 240E00FF */ li $t6, 255 +/* 046394 7F011864 AFAE0018 */ sw $t6, 0x18($sp) +/* 046398 7F011868 02002025 */ move $a0, $s0 +/* 04639C 7F01186C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0463A0 7F011870 27A60054 */ addiu $a2, $sp, 0x54 +/* 0463A4 7F011874 27A7005C */ addiu $a3, $sp, 0x5c +/* 0463A8 7F011878 AFA20020 */ sw $v0, 0x20($sp) +/* 0463AC 7F01187C AFA00024 */ sw $zero, 0x24($sp) +/* 0463B0 7F011880 AFA00028 */ sw $zero, 0x28($sp) +/* 0463B4 7F011884 AFAD0014 */ sw $t5, 0x14($sp) +/* 0463B8 7F011888 AFAC0010 */ sw $t4, 0x10($sp) +/* 0463BC 7F01188C 0FC025D8 */ jal write_text_at_abs_coord +/* 0463C0 7F011890 AFAF001C */ sw $t7, 0x1c($sp) +/* 0463C4 7F011894 3C188003 */ lui $t8, %hi(scenario) +/* 0463C8 7F011898 8F18B540 */ lw $t8, %lo(scenario)($t8) +/* 0463CC 7F01189C 3C048003 */ lui $a0, %hi(mp_player_counts) +/* 0463D0 7F0118A0 00408025 */ move $s0, $v0 +/* 0463D4 7F0118A4 0018C880 */ sll $t9, $t8, 2 +/* 0463D8 7F0118A8 00992021 */ addu $a0, $a0, $t9 +/* 0463DC 7F0118AC 0FC30776 */ jal get_textptr_for_textID +/* 0463E0 7F0118B0 9484B054 */ lhu $a0, %lo(mp_player_counts)($a0) +/* 0463E4 7F0118B4 240800A0 */ li $t0, 160 +/* 0463E8 7F0118B8 2409008D */ li $t1, 141 +/* 0463EC 7F0118BC AFA20064 */ sw $v0, 0x64($sp) +/* 0463F0 7F0118C0 AFA80058 */ sw $t0, 0x58($sp) +/* 0463F4 7F0118C4 0C001107 */ jal get_video2_settings_txtClipW +/* 0463F8 7F0118C8 AFA90054 */ sw $t1, 0x54($sp) +/* 0463FC 7F0118CC 0C00110B */ jal get_video2_settings_txtClipH +/* 046400 7F0118D0 A7A20044 */ sh $v0, 0x44($sp) +/* 046404 7F0118D4 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 046408 7F0118D8 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04640C 7F0118DC 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 046410 7F0118E0 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 046414 7F0118E4 87AD0044 */ lh $t5, 0x44($sp) +/* 046418 7F0118E8 240C00FF */ li $t4, 255 +/* 04641C 7F0118EC AFAC0018 */ sw $t4, 0x18($sp) +/* 046420 7F0118F0 02002025 */ move $a0, $s0 +/* 046424 7F0118F4 27A50058 */ addiu $a1, $sp, 0x58 +/* 046428 7F0118F8 27A60054 */ addiu $a2, $sp, 0x54 +/* 04642C 7F0118FC 8FA70064 */ lw $a3, 0x64($sp) +/* 046430 7F011900 AFA20020 */ sw $v0, 0x20($sp) +/* 046434 7F011904 AFA00024 */ sw $zero, 0x24($sp) +/* 046438 7F011908 AFA00028 */ sw $zero, 0x28($sp) +/* 04643C 7F01190C AFAB0014 */ sw $t3, 0x14($sp) +/* 046440 7F011910 AFAA0010 */ sw $t2, 0x10($sp) +/* 046444 7F011914 0FC025D8 */ jal write_text_at_abs_coord +/* 046448 7F011918 AFAD001C */ sw $t5, 0x1c($sp) +/* 04644C 7F01191C 3C0E8003 */ lui $t6, %hi(MP_stage_selected) +/* 046450 7F011920 8DCEB534 */ lw $t6, %lo(MP_stage_selected)($t6) +/* 046454 7F011924 3C048003 */ lui $a0, %hi(multi_stage_setups) +/* 046458 7F011928 00408025 */ move $s0, $v0 +/* 04645C 7F01192C 000E7880 */ sll $t7, $t6, 2 +/* 046460 7F011930 01EE7823 */ subu $t7, $t7, $t6 +/* 046464 7F011934 000F78C0 */ sll $t7, $t7, 3 +/* 046468 7F011938 008F2021 */ addu $a0, $a0, $t7 +/* 04646C 7F01193C 0FC30776 */ jal get_textptr_for_textID +/* 046470 7F011940 9484B074 */ lhu $a0, %lo(multi_stage_setups)($a0) +/* 046474 7F011944 3C088003 */ lui $t0, %hi(unlock_stage_select) +/* 046478 7F011948 8D08B544 */ lw $t0, %lo(unlock_stage_select)($t0) +/* 04647C 7F01194C 241800A0 */ li $t8, 160 +/* 046480 7F011950 241900A1 */ li $t9, 161 +/* 046484 7F011954 AFA20064 */ sw $v0, 0x64($sp) +/* 046488 7F011958 AFB80058 */ sw $t8, 0x58($sp) +/* 04648C 7F01195C 11000003 */ beqz $t0, .L7F01196C +/* 046490 7F011960 AFB90054 */ sw $t9, 0x54($sp) +/* 046494 7F011964 10000002 */ b .L7F011970 +/* 046498 7F011968 240300FF */ li $v1, 255 +.L7F01196C: +/* 04649C 7F01196C 24030070 */ li $v1, 112 +.L7F011970: +/* 0464A0 7F011970 0C001107 */ jal get_video2_settings_txtClipW +/* 0464A4 7F011974 AFA30048 */ sw $v1, 0x48($sp) +/* 0464A8 7F011978 0C00110B */ jal get_video2_settings_txtClipH +/* 0464AC 7F01197C A7A20044 */ sh $v0, 0x44($sp) +/* 0464B0 7F011980 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) +/* 0464B4 7F011984 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 0464B8 7F011988 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 0464BC 7F01198C 8D290EB8 */ lw $t1, %lo(ptrSecondFontTableLarge)($t1) +/* 0464C0 7F011990 8FA30048 */ lw $v1, 0x48($sp) +/* 0464C4 7F011994 87AB0044 */ lh $t3, 0x44($sp) +/* 0464C8 7F011998 02002025 */ move $a0, $s0 +/* 0464CC 7F01199C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0464D0 7F0119A0 27A60054 */ addiu $a2, $sp, 0x54 +/* 0464D4 7F0119A4 8FA70064 */ lw $a3, 0x64($sp) +/* 0464D8 7F0119A8 AFA20020 */ sw $v0, 0x20($sp) +/* 0464DC 7F0119AC AFA00024 */ sw $zero, 0x24($sp) +/* 0464E0 7F0119B0 AFA00028 */ sw $zero, 0x28($sp) +/* 0464E4 7F0119B4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0464E8 7F0119B8 AFA90010 */ sw $t1, 0x10($sp) +/* 0464EC 7F0119BC AFA30018 */ sw $v1, 0x18($sp) +/* 0464F0 7F0119C0 0FC025D8 */ jal write_text_at_abs_coord +/* 0464F4 7F0119C4 AFAB001C */ sw $t3, 0x1c($sp) +/* 0464F8 7F0119C8 3C0C8003 */ lui $t4, %hi(game_length) +/* 0464FC 7F0119CC 8D8CB538 */ lw $t4, %lo(game_length)($t4) +/* 046500 7F0119D0 3C048003 */ lui $a0, %hi(multi_game_lengths) +/* 046504 7F0119D4 00408025 */ move $s0, $v0 +/* 046508 7F0119D8 000C6880 */ sll $t5, $t4, 2 +/* 04650C 7F0119DC 01AC6823 */ subu $t5, $t5, $t4 +/* 046510 7F0119E0 000D6880 */ sll $t5, $t5, 2 +/* 046514 7F0119E4 008D2021 */ addu $a0, $a0, $t5 +/* 046518 7F0119E8 0FC30776 */ jal get_textptr_for_textID +/* 04651C 7F0119EC 9484AFF4 */ lhu $a0, %lo(multi_game_lengths)($a0) +/* 046520 7F0119F0 3C188003 */ lui $t8, %hi(unlock_game_length) +/* 046524 7F0119F4 8F18B548 */ lw $t8, %lo(unlock_game_length)($t8) +/* 046528 7F0119F8 240E00A0 */ li $t6, 160 +/* 04652C 7F0119FC 240F00B5 */ li $t7, 181 +/* 046530 7F011A00 AFA20064 */ sw $v0, 0x64($sp) +/* 046534 7F011A04 AFAE0058 */ sw $t6, 0x58($sp) +/* 046538 7F011A08 13000003 */ beqz $t8, .L7F011A18 +/* 04653C 7F011A0C AFAF0054 */ sw $t7, 0x54($sp) +/* 046540 7F011A10 10000002 */ b .L7F011A1C +/* 046544 7F011A14 240300FF */ li $v1, 255 +.L7F011A18: +/* 046548 7F011A18 24030070 */ li $v1, 112 +.L7F011A1C: +/* 04654C 7F011A1C 0C001107 */ jal get_video2_settings_txtClipW +/* 046550 7F011A20 AFA30048 */ sw $v1, 0x48($sp) +/* 046554 7F011A24 0C00110B */ jal get_video2_settings_txtClipH +/* 046558 7F011A28 A7A20044 */ sh $v0, 0x44($sp) +/* 04655C 7F011A2C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046560 7F011A30 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046564 7F011A34 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046568 7F011A38 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04656C 7F011A3C 8FA30048 */ lw $v1, 0x48($sp) +/* 046570 7F011A40 87A90044 */ lh $t1, 0x44($sp) +/* 046574 7F011A44 02002025 */ move $a0, $s0 +/* 046578 7F011A48 27A50058 */ addiu $a1, $sp, 0x58 +/* 04657C 7F011A4C 27A60054 */ addiu $a2, $sp, 0x54 +/* 046580 7F011A50 8FA70064 */ lw $a3, 0x64($sp) +/* 046584 7F011A54 AFA20020 */ sw $v0, 0x20($sp) +/* 046588 7F011A58 AFA00024 */ sw $zero, 0x24($sp) +/* 04658C 7F011A5C AFA00028 */ sw $zero, 0x28($sp) +/* 046590 7F011A60 AFA80014 */ sw $t0, 0x14($sp) +/* 046594 7F011A64 AFB90010 */ sw $t9, 0x10($sp) +/* 046598 7F011A68 AFA30018 */ sw $v1, 0x18($sp) +/* 04659C 7F011A6C 0FC025D8 */ jal write_text_at_abs_coord +/* 0465A0 7F011A70 AFA9001C */ sw $t1, 0x1c($sp) +/* 0465A4 7F011A74 0FC3197E */ jal getPtrMPWeaponSetTextID +/* 0465A8 7F011A78 00408025 */ move $s0, $v0 +/* 0465AC 7F011A7C 0FC30776 */ jal get_textptr_for_textID +/* 0465B0 7F011A80 94440000 */ lhu $a0, ($v0) +/* 0465B4 7F011A84 3C0C8003 */ lui $t4, %hi(unlock_weapon_select) +/* 0465B8 7F011A88 8D8CB550 */ lw $t4, %lo(unlock_weapon_select)($t4) +/* 0465BC 7F011A8C 240A00A0 */ li $t2, 160 +/* 0465C0 7F011A90 240B00C9 */ li $t3, 201 +/* 0465C4 7F011A94 AFA20064 */ sw $v0, 0x64($sp) +/* 0465C8 7F011A98 AFAA0058 */ sw $t2, 0x58($sp) +/* 0465CC 7F011A9C 11800003 */ beqz $t4, .L7F011AAC +/* 0465D0 7F011AA0 AFAB0054 */ sw $t3, 0x54($sp) +/* 0465D4 7F011AA4 10000002 */ b .L7F011AB0 +/* 0465D8 7F011AA8 240300FF */ li $v1, 255 +.L7F011AAC: +/* 0465DC 7F011AAC 24030070 */ li $v1, 112 +.L7F011AB0: +/* 0465E0 7F011AB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0465E4 7F011AB4 AFA30048 */ sw $v1, 0x48($sp) +/* 0465E8 7F011AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0465EC 7F011ABC A7A20044 */ sh $v0, 0x44($sp) +/* 0465F0 7F011AC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0465F4 7F011AC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0465F8 7F011AC8 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0465FC 7F011ACC 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 046600 7F011AD0 8FA30048 */ lw $v1, 0x48($sp) +/* 046604 7F011AD4 87AF0044 */ lh $t7, 0x44($sp) +/* 046608 7F011AD8 02002025 */ move $a0, $s0 +/* 04660C 7F011ADC 27A50058 */ addiu $a1, $sp, 0x58 +/* 046610 7F011AE0 27A60054 */ addiu $a2, $sp, 0x54 +/* 046614 7F011AE4 8FA70064 */ lw $a3, 0x64($sp) +/* 046618 7F011AE8 AFA20020 */ sw $v0, 0x20($sp) +/* 04661C 7F011AEC AFA00024 */ sw $zero, 0x24($sp) +/* 046620 7F011AF0 AFA00028 */ sw $zero, 0x28($sp) +/* 046624 7F011AF4 AFAE0014 */ sw $t6, 0x14($sp) +/* 046628 7F011AF8 AFAD0010 */ sw $t5, 0x10($sp) +/* 04662C 7F011AFC AFA30018 */ sw $v1, 0x18($sp) +/* 046630 7F011B00 0FC025D8 */ jal write_text_at_abs_coord +/* 046634 7F011B04 AFAF001C */ sw $t7, 0x1c($sp) +/* 046638 7F011B08 3C188003 */ lui $t8, %hi(aim_sight_adjustment) +/* 04663C 7F011B0C 8F18B53C */ lw $t8, %lo(aim_sight_adjustment)($t8) +/* 046640 7F011B10 3C048003 */ lui $a0, %hi(mp_sight_adjust_table) +/* 046644 7F011B14 00408025 */ move $s0, $v0 +/* 046648 7F011B18 0018C880 */ sll $t9, $t8, 2 +/* 04664C 7F011B1C 00992021 */ addu $a0, $a0, $t9 +/* 046650 7F011B20 0FC30776 */ jal get_textptr_for_textID +/* 046654 7F011B24 9484B510 */ lhu $a0, %lo(mp_sight_adjust_table)($a0) +/* 046658 7F011B28 3C0A8003 */ lui $t2, %hi(unlock_aim_sight) +/* 04665C 7F011B2C 8D4AB55C */ lw $t2, %lo(unlock_aim_sight)($t2) +/* 046660 7F011B30 240800A0 */ li $t0, 160 +/* 046664 7F011B34 24090119 */ li $t1, 281 +/* 046668 7F011B38 AFA20064 */ sw $v0, 0x64($sp) +/* 04666C 7F011B3C AFA80058 */ sw $t0, 0x58($sp) +/* 046670 7F011B40 11400003 */ beqz $t2, .L7F011B50 +/* 046674 7F011B44 AFA90054 */ sw $t1, 0x54($sp) +/* 046678 7F011B48 10000002 */ b .L7F011B54 +/* 04667C 7F011B4C 240300FF */ li $v1, 255 +.L7F011B50: +/* 046680 7F011B50 24030070 */ li $v1, 112 +.L7F011B54: +/* 046684 7F011B54 0C001107 */ jal get_video2_settings_txtClipW +/* 046688 7F011B58 AFA30048 */ sw $v1, 0x48($sp) +/* 04668C 7F011B5C 0C00110B */ jal get_video2_settings_txtClipH +/* 046690 7F011B60 A7A20044 */ sh $v0, 0x44($sp) +/* 046694 7F011B64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 046698 7F011B68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04669C 7F011B6C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 0466A0 7F011B70 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 0466A4 7F011B74 8FA30048 */ lw $v1, 0x48($sp) +/* 0466A8 7F011B78 87AD0044 */ lh $t5, 0x44($sp) +/* 0466AC 7F011B7C 02002025 */ move $a0, $s0 +/* 0466B0 7F011B80 27A50058 */ addiu $a1, $sp, 0x58 +/* 0466B4 7F011B84 27A60054 */ addiu $a2, $sp, 0x54 +/* 0466B8 7F011B88 8FA70064 */ lw $a3, 0x64($sp) +/* 0466BC 7F011B8C AFA20020 */ sw $v0, 0x20($sp) +/* 0466C0 7F011B90 AFA00024 */ sw $zero, 0x24($sp) +/* 0466C4 7F011B94 AFA00028 */ sw $zero, 0x28($sp) +/* 0466C8 7F011B98 AFAC0014 */ sw $t4, 0x14($sp) +/* 0466CC 7F011B9C AFAB0010 */ sw $t3, 0x10($sp) +/* 0466D0 7F011BA0 AFA30018 */ sw $v1, 0x18($sp) +/* 0466D4 7F011BA4 0FC025D8 */ jal write_text_at_abs_coord +/* 0466D8 7F011BA8 AFAD001C */ sw $t5, 0x1c($sp) +/* 0466DC 7F011BAC 0FC0288E */ jal add_tab3_previous +/* 0466E0 7F011BB0 00402025 */ move $a0, $v0 +/* 0466E4 7F011BB4 0FC02820 */ jal add_tab1_start +/* 0466E8 7F011BB8 00402025 */ move $a0, $v0 +/* 0466EC 7F011BBC 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 0466F0 7F011BC0 00402025 */ move $a0, $v0 +/* 0466F4 7F011BC4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0466F8 7F011BC8 8FB00038 */ lw $s0, 0x38($sp) +/* 0466FC 7F011BCC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 046700 7F011BD0 03E00008 */ jr $ra +/* 046704 7F011BD4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_players_who_have_selected_mp_char(s32 arg0) +{ + u32 temp_a0_2; + void *temp_a0; + void *phi_a0; + s32 phi_v0; + s32 phi_v1; + s32 phi_v1_2; + s32 phi_v1_3; + + phi_v1 = 0; + if (selected_num_players > 0) + { + 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) + { + 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; + } + } + 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 + + + +#ifdef NONMATCHING +void init_menu0f_mpcharsel(void) +{ + s32 temp_lo; + s32 temp_s0; + u32 temp_s1; + u32 temp_v1; + u32 temp_v1_2; + u32 temp_v1_3; + void *temp_s2; + void *temp_v0; + void *phi_s1; + void *phi_v0; + void *phi_v0_2; + void *phi_v0_3; + void *phi_s2; + 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; + phi_s1 = &mp_chr_setup; +loop_1: + temp_lo = (phi_s1->unk3 * 4) * 0xc; + temp_v0 = mpcharselimages + temp_lo; + phi_v0 = temp_v0; + if ((u32) *temp_v0 < 0xbb8U) + { + calls_load_image_to_buffer(*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); + 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); + 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); + } + temp_s1 = phi_s1 + 0xc; + phi_s1 = temp_s1; + if (temp_s1 < &MP_handicap_table) + { + goto loop_1; + } + if (num_chars_selectable_mp != 0x40) + { + if (isStageUnlockedAtDifficulty(selected_folder_num, 0x11, 0) == 3) + { + num_chars_selectable_mp = 0x21; + } + else + { + num_chars_selectable_mp = 8; + phi_s2 = &player_1_char; +loop_14: + if (*phi_s2 >= num_chars_selectable_mp) + { + phi_s0 = 0; + phi_s0_2 = 0; + if (num_chars_selectable_mp > 0) + { +loop_16: + phi_s0_2 = phi_s0; + if (get_players_who_have_selected_mp_char(phi_s0) != 0) + { + temp_s0 = phi_s0 + 1; + phi_s0 = temp_s0; + phi_s0_2 = temp_s0; + if (temp_s0 < num_chars_selectable_mp) + { + goto loop_16; + } + } + } + *phi_s2 = (s32) phi_s0_2; + } + temp_s2 = phi_s2 + 4; + phi_s2 = temp_s2; + if (temp_s2 != &MP_stage_selected) + { + goto loop_14; + } + } + } + mp_char_cur_select_player1 = (s32) player_1_char; + mp_char_prev_select_player1 = (s32) player_1_char; + dword_CODE_bss_80069730 = 0; + has_selected_char_player1 = 0; + size_mp_select_image_player1 = 0; + mp_char_cur_select_player2 = (s32) player_2_char; + mp_char_prev_select_player2 = (s32) player_2_char; + dword_CODE_bss_80069734 = 0; + has_selected_char_player2 = 0; + size_mp_select_image_player2 = 0; + mp_char_cur_select_player3 = (s32) player_3_char; + mp_char_prev_select_player3 = (s32) player_3_char; + dword_CODE_bss_80069738 = 0; + has_selected_char_player3 = 0; + size_mp_select_image_player3 = 0; + mp_char_cur_select_player4 = (s32) player_4_char; + mp_char_prev_select_player4 = (s32) player_4_char; + dword_CODE_bss_8006973C = 0; + has_selected_char_player4 = 0; + size_mp_select_image_player4 = 0; + load_walletbond(player_3_char, player_4_char); +} +#else +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) +/* 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) +/* 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) +/* 0467A4 7F011C74 AFB30024 */ sw $s3, 0x24($sp) +/* 0467A8 7F011C78 3C018003 */ lui $at, %hi(tab_1_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) +/* 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 +/* 0467D0 7F011CA0 2413000C */ li $s3, 12 +/* 0467D4 7F011CA4 92230003 */ lbu $v1, 3($s1) +.L7F011CA8: +/* 0467D8 7F011CA8 8E4F0000 */ lw $t7, ($s2) +/* 0467DC 7F011CAC 00037080 */ sll $t6, $v1, 2 +/* 0467E0 7F011CB0 01D30019 */ multu $t6, $s3 +/* 0467E4 7F011CB4 00008012 */ mflo $s0 +/* 0467E8 7F011CB8 01F01021 */ addu $v0, $t7, $s0 +/* 0467EC 7F011CBC 8C460000 */ lw $a2, ($v0) +/* 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 +/* 046800 7F011CD0 00002825 */ move $a1, $zero +/* 046804 7F011CD4 8E580000 */ lw $t8, ($s2) +/* 046808 7F011CD8 03101021 */ addu $v0, $t8, $s0 +.L7F011CDC: +/* 04680C 7F011CDC 8C43000C */ lw $v1, 0xc($v0) +/* 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 +/* 046820 7F011CF0 00002825 */ move $a1, $zero +/* 046824 7F011CF4 8E590000 */ lw $t9, ($s2) +/* 046828 7F011CF8 03301021 */ addu $v0, $t9, $s0 +.L7F011CFC: +/* 04682C 7F011CFC 8C430018 */ lw $v1, 0x18($v0) +/* 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 +/* 046840 7F011D10 00002825 */ move $a1, $zero +/* 046844 7F011D14 8E480000 */ lw $t0, ($s2) +/* 046848 7F011D18 01101021 */ addu $v0, $t0, $s0 +.L7F011D1C: +/* 04684C 7F011D1C 8C430024 */ lw $v1, 0x24($v0) +/* 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 +/* 046860 7F011D30 00002825 */ move $a1, $zero +.L7F011D34: +/* 046864 7F011D34 2631000C */ addiu $s1, $s1, 0xc +/* 046868 7F011D38 0234082B */ sltu $at, $s1, $s4 +/* 04686C 7F011D3C 5420FFDA */ bnezl $at, .L7F011CA8 +/* 046870 7F011D40 92230003 */ lbu $v1, 3($s1) +/* 046874 7F011D44 3C118003 */ lui $s1, %hi(num_chars_selectable_mp) +/* 046878 7F011D48 2631B194 */ addiu $s1, %lo(num_chars_selectable_mp) # addiu $s1, $s1, -0x4e6c +/* 04687C 7F011D4C 8E290000 */ lw $t1, ($s1) +/* 046880 7F011D50 24010040 */ li $at, 64 +/* 046884 7F011D54 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 046888 7F011D58 11210023 */ beq $t1, $at, .L7F011DE8 +/* 04688C 7F011D5C 24050011 */ li $a1, 17 +/* 046890 7F011D60 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 046894 7F011D64 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 046898 7F011D68 00003025 */ move $a2, $zero +/* 04689C 7F011D6C 24010003 */ li $at, 3 +/* 0468A0 7F011D70 14410004 */ bne $v0, $at, .L7F011D84 +/* 0468A4 7F011D74 240B0008 */ li $t3, 8 +/* 0468A8 7F011D78 240A0021 */ li $t2, 33 +/* 0468AC 7F011D7C 1000001A */ b .L7F011DE8 +/* 0468B0 7F011D80 AE2A0000 */ sw $t2, ($s1) +.L7F011D84: +/* 0468B4 7F011D84 3C128003 */ lui $s2, %hi(player_1_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 +/* 0468C8 7F011D98 8E220000 */ lw $v0, ($s1) +.L7F011D9C: +/* 0468CC 7F011D9C 8E4C0000 */ lw $t4, ($s2) +/* 0468D0 7F011DA0 0182082A */ slt $at, $t4, $v0 +/* 0468D4 7F011DA4 5420000E */ bnezl $at, .L7F011DE0 +/* 0468D8 7F011DA8 26520004 */ addiu $s2, $s2, 4 +/* 0468DC 7F011DAC 1840000A */ blez $v0, .L7F011DD8 +/* 0468E0 7F011DB0 00008025 */ move $s0, $zero +.L7F011DB4: +/* 0468E4 7F011DB4 0FC046F6 */ jal get_players_who_have_selected_mp_char +/* 0468E8 7F011DB8 02002025 */ move $a0, $s0 +/* 0468EC 7F011DBC 50400007 */ beql $v0, $zero, .L7F011DDC +/* 0468F0 7F011DC0 AE500000 */ sw $s0, ($s2) +/* 0468F4 7F011DC4 8E2D0000 */ lw $t5, ($s1) +/* 0468F8 7F011DC8 26100001 */ addiu $s0, $s0, 1 +/* 0468FC 7F011DCC 020D082A */ slt $at, $s0, $t5 +/* 046900 7F011DD0 1420FFF8 */ bnez $at, .L7F011DB4 +/* 046904 7F011DD4 00000000 */ nop +.L7F011DD8: +/* 046908 7F011DD8 AE500000 */ sw $s0, ($s2) +.L7F011DDC: +/* 04690C 7F011DDC 26520004 */ addiu $s2, $s2, 4 +.L7F011DE0: +/* 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) +/* 046920 7F011DF0 3C018007 */ lui $at, %hi(mp_char_cur_select_player1) +/* 046924 7F011DF4 3C038003 */ lui $v1, %hi(player_2_char) +/* 046928 7F011DF8 AC229710 */ sw $v0, %lo(mp_char_cur_select_player1)($at) +/* 04692C 7F011DFC 3C018007 */ lui $at, %hi(mp_char_prev_select_player1) +/* 046930 7F011E00 AC229720 */ sw $v0, %lo(mp_char_prev_select_player1)($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) +/* 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_player2) +/* 046954 7F011E24 AC239714 */ sw $v1, %lo(mp_char_cur_select_player2)($at) +/* 046958 7F011E28 3C018007 */ lui $at, %hi(mp_char_prev_select_player2) +/* 04695C 7F011E2C AC239724 */ sw $v1, %lo(mp_char_prev_select_player2)($at) +/* 046960 7F011E30 3C018007 */ lui $at, %hi(dword_CODE_bss_80069734) +/* 046964 7F011E34 AC209734 */ sw $zero, %lo(dword_CODE_bss_80069734)($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) +/* 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_player3) +/* 046984 7F011E54 AC249718 */ sw $a0, %lo(mp_char_cur_select_player3)($at) +/* 046988 7F011E58 3C018007 */ lui $at, %hi(mp_char_prev_select_player3) +/* 04698C 7F011E5C AC249728 */ sw $a0, %lo(mp_char_prev_select_player3)($at) +/* 046990 7F011E60 3C018007 */ lui $at, %hi(dword_CODE_bss_80069738) +/* 046994 7F011E64 AC209738 */ sw $zero, %lo(dword_CODE_bss_80069738)($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) +/* 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_player4) +/* 0469B4 7F011E84 AC25971C */ sw $a1, %lo(mp_char_cur_select_player4)($at) +/* 0469B8 7F011E88 3C018007 */ lui $at, %hi(mp_char_prev_select_player4) +/* 0469BC 7F011E8C AC25972C */ sw $a1, %lo(mp_char_prev_select_player4)($at) +/* 0469C0 7F011E90 3C018007 */ lui $at, %hi(dword_CODE_bss_8006973C) +/* 0469C4 7F011E94 AC20973C */ sw $zero, %lo(dword_CODE_bss_8006973C)($at) +/* 0469C8 7F011E98 3C018007 */ lui $at, %hi(has_selected_char_player4) +/* 0469CC 7F011E9C AC20974C */ sw $zero, %lo(has_selected_char_player4)($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) +/* 0469DC 7F011EAC 8FBF002C */ lw $ra, 0x2c($sp) +/* 0469E0 7F011EB0 8FB00018 */ lw $s0, 0x18($sp) +/* 0469E4 7F011EB4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0469E8 7F011EB8 8FB20020 */ lw $s2, 0x20($sp) +/* 0469EC 7F011EBC 8FB30024 */ lw $s3, 0x24($sp) +/* 0469F0 7F011EC0 8FB40028 */ lw $s4, 0x28($sp) +/* 0469F4 7F011EC4 03E00008 */ jr $ra +/* 0469F8 7F011EC8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +void update_menu0F_mpcharsel(void) { + +} + + + + +#ifdef NONMATCHING +void interface_menu0F_mpcharsel(void) + +{ + int iVar1; + int iVar2; + int iVar4; + s32 uVar3; + u32 BVar5; + int iVar6; + int iVar7; + char controller; + int *piVar8; + int *piVar9; + int iVar10; + u32 *pBVar11; + int *piVar12; + int iVar13; + int iStack12; + + iVar4 = get_selected_num_players(); + iStack12 = 0; + setvideo_far(60.00000000); + video_related_21((f32)flt_80051A88); + set_page_height(100.00000000,(f32)flt_80051A8C); + set_video2_settings_offset_24(0); + iVar13 = 0; + iVar10 = 0; + if (0 < iVar4) { + piVar9 = &mp_unknown1_player1; + piVar8 = &mp_char_cur_select_player1; + piVar12 = &mp_char_prev_select_player1; + pBVar11 = &has_selected_char_player1; + do { + controller = (char)iVar13; + if (*pBVar11 != FALSE) { + iVar6 = *(int *)((int)&size_mp_select_image_player1 + iVar10); + if ((iVar6 < 0xb) && (*piVar12 == *piVar8)) { + *(int *)((int)&size_mp_select_image_player1 + iVar10) = iVar6 + 1; + } + uVar3 = get_controller_buttons_pressed(controller,B_BUTTON); + if (uVar3 != 0) { + *pBVar11 = FALSE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + if ((*pBVar11 == FALSE) && + (iVar6 = *(int *)((int)&size_mp_select_image_player1 + iVar10), 0 < iVar6)) { + *(int *)((int)&size_mp_select_image_player1 + iVar10) = iVar6 + -1; +LAB_7f012164: + iVar6 = *piVar12; + } + else { + if (*pBVar11 != FALSE) goto LAB_7f012164; + uVar3 = get_controller_buttons_pressed(controller,L_CBUTTONS|L_JPAD); + if (uVar3 != 0) { + if (0 < *piVar8) { + *piVar8 = *piVar8 + -1; + } + goto LAB_7f012164; + } + uVar3 = get_controller_buttons_pressed(controller,R_CBUTTONS|R_JPAD); + if (uVar3 != 0) { + if (*piVar8 < (int)(num_chars_selectable_mp - 1)) { + *piVar8 = *piVar8 + 1; + } + goto LAB_7f012164; + } + uVar3 = get_controller_buttons_pressed(controller,START_BUTTON|Z_TRIG|A_BUTTON); + if (uVar3 == 0) { + iVar6 = get_controller_3dstick_L_R(controller,-2,1); + if (iVar6 < 1) { + iVar6 = get_controller_3dstick_L_R(controller,-2,1); + if (iVar6 < -1) { + if (*piVar9 == 0) { + if (0 < *piVar8) { + *piVar8 = *piVar8 + -1; + } + goto LAB_7f012164; + } + iVar6 = *piVar12; + } + else { + iVar6 = *piVar12; + } + } + else { + if (*piVar9 == 0) { + if (*piVar8 < (int)(num_chars_selectable_mp - 1)) { + *piVar8 = *piVar8 + 1; + } + goto LAB_7f012164; + } + iVar6 = *piVar12; + } + } + else { + BVar5 = hasPlayerSelectedMPChar(*piVar8); + if (BVar5 != FALSE) goto LAB_7f012164; + *(int *)((int)&player_1_char + iVar10) = *piVar8; + *(s32 *)((int)&size_mp_select_image_player1 + iVar10) = 1; + *pBVar11 = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + iVar6 = *piVar12; + } + } + iVar1 = *piVar8; + iVar2 = *piVar9; + iVar13 += 1; + piVar8 = piVar8 + 1; + BVar5 = *pBVar11; + iVar7 = iVar2 + iVar6 * 0x54; + if (iVar1 * 0x54 < iVar7) { + *piVar9 = iVar2 + -0xc; + if (iVar2 + -0xc < 0) { + *piVar9 = iVar2 + 0x48; + *piVar12 = iVar6 + -1; + } + } + else { + if ((iVar7 < iVar1 * 0x54) && (*piVar9 = iVar2 + 0xc, 0x53 < iVar2 + 0xc)) { + *piVar9 = iVar2 + -0x48; + *piVar12 = iVar6 + 1; + } + } + if ((BVar5 != FALSE) && (*(int *)((int)&size_mp_select_image_player1 + iVar10) == 0xb)) { + iStack12 = iStack12 + 1; + } + iVar10 += 4; + piVar12 = piVar12 + 1; + piVar9 = piVar9 + 1; + 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); + menu_control_stick_tracking(); + if (iStack12 == iVar4) { + set_menu_to_mode(MENU_MP_OPTIONS,0); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A88 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A8C +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0F_mpcharsel +/* 046A04 7F011ED4 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 046A08 7F011ED8 AFBF003C */ sw $ra, 0x3c($sp) +/* 046A0C 7F011EDC AFBE0038 */ sw $fp, 0x38($sp) +/* 046A10 7F011EE0 AFB70034 */ sw $s7, 0x34($sp) +/* 046A14 7F011EE4 AFB60030 */ sw $s6, 0x30($sp) +/* 046A18 7F011EE8 AFB5002C */ sw $s5, 0x2c($sp) +/* 046A1C 7F011EEC AFB40028 */ sw $s4, 0x28($sp) +/* 046A20 7F011EF0 AFB30024 */ sw $s3, 0x24($sp) +/* 046A24 7F011EF4 AFB20020 */ sw $s2, 0x20($sp) +/* 046A28 7F011EF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 046A2C 7F011EFC 0FC040A4 */ jal get_selected_num_players +/* 046A30 7F011F00 AFB00018 */ sw $s0, 0x18($sp) +/* 046A34 7F011F04 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 046A38 7F011F08 44816000 */ mtc1 $at, $f12 +/* 046A3C 7F011F0C AFA2004C */ sw $v0, 0x4c($sp) +/* 046A40 7F011F10 0C001151 */ jal setvideo_far +/* 046A44 7F011F14 AFA00044 */ sw $zero, 0x44($sp) +/* 046A48 7F011F18 3C018005 */ lui $at, %hi(D_80051A88) +/* 046A4C 7F011F1C 0C001164 */ jal video_related_21 +/* 046A50 7F011F20 C42C1A88 */ lwc1 $f12, %lo(D_80051A88)($at) +/* 046A54 7F011F24 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 046A58 7F011F28 44816000 */ mtc1 $at, $f12 +/* 046A5C 7F011F2C 3C018005 */ lui $at, %hi(D_80051A8C) +/* 046A60 7F011F30 0C001194 */ jal set_page_height +/* 046A64 7F011F34 C42E1A8C */ lwc1 $f14, %lo(D_80051A8C)($at) +/* 046A68 7F011F38 0C00114D */ jal set_video2_settings_offset_24 +/* 046A6C 7F011F3C 00002025 */ move $a0, $zero +/* 046A70 7F011F40 8FAE004C */ lw $t6, 0x4c($sp) +/* 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) +/* 046A84 7F011F54 3C158007 */ lui $s5, %hi(mp_char_prev_select_player1) +/* 046A88 7F011F58 3C118007 */ lui $s1, %hi(mp_char_cur_select_player1) +/* 046A8C 7F011F5C 3C128007 */ lui $s2, %hi(dword_CODE_bss_80069730) +/* 046A90 7F011F60 3C1E8006 */ lui $fp, %hi(ptr_sfx_buf) +/* 046A94 7F011F64 3C178007 */ lui $s7, %hi(size_mp_select_image_player1) +/* 046A98 7F011F68 26F79750 */ addiu $s7, %lo(size_mp_select_image_player1) # addiu $s7, $s7, -0x68b0 +/* 046A9C 7F011F6C 27DE3720 */ addiu $fp, %lo(ptr_sfx_buf) # addiu $fp, $fp, 0x3720 +/* 046AA0 7F011F70 26529730 */ addiu $s2, %lo(dword_CODE_bss_80069730) # addiu $s2, $s2, -0x68d0 +/* 046AA4 7F011F74 26319710 */ addiu $s1, %lo(mp_char_cur_select_player1) # addiu $s1, $s1, -0x68f0 +/* 046AA8 7F011F78 26B59720 */ addiu $s5, %lo(mp_char_prev_select_player1) # addiu $s5, $s5, -0x68e0 +/* 046AAC 7F011F7C 26949740 */ addiu $s4, %lo(has_selected_char_player1) # addiu $s4, $s4, -0x68c0 +.L7F011F80: +/* 046AB0 7F011F80 8E8F0000 */ lw $t7, ($s4) +/* 046AB4 7F011F84 00162600 */ sll $a0, $s6, 0x18 +/* 046AB8 7F011F88 02F31021 */ addu $v0, $s7, $s3 +/* 046ABC 7F011F8C 11E00014 */ beqz $t7, .L7F011FE0 +/* 046AC0 7F011F90 00044E03 */ sra $t1, $a0, 0x18 +/* 046AC4 7F011F94 8C430000 */ lw $v1, ($v0) +/* 046AC8 7F011F98 01202025 */ move $a0, $t1 +/* 046ACC 7F011F9C 2861000B */ slti $at, $v1, 0xb +/* 046AD0 7F011FA0 10200007 */ beqz $at, .L7F011FC0 +/* 046AD4 7F011FA4 00000000 */ nop +/* 046AD8 7F011FA8 8EB80000 */ lw $t8, ($s5) +/* 046ADC 7F011FAC 8E390000 */ lw $t9, ($s1) +/* 046AE0 7F011FB0 24680001 */ addiu $t0, $v1, 1 +/* 046AE4 7F011FB4 17190002 */ bne $t8, $t9, .L7F011FC0 +/* 046AE8 7F011FB8 00000000 */ nop +/* 046AEC 7F011FBC AC480000 */ sw $t0, ($v0) +.L7F011FC0: +/* 046AF0 7F011FC0 0C0030EB */ jal get_controller_buttons_pressed +/* 046AF4 7F011FC4 24054000 */ li $a1, 16384 +/* 046AF8 7F011FC8 10400005 */ beqz $v0, .L7F011FE0 +/* 046AFC 7F011FCC 240500C7 */ li $a1, 199 +/* 046B00 7F011FD0 AE800000 */ sw $zero, ($s4) +/* 046B04 7F011FD4 8FC40000 */ lw $a0, ($fp) +/* 046B08 7F011FD8 0C002382 */ jal play_sfx_a1 +/* 046B0C 7F011FDC 00003025 */ move $a2, $zero +.L7F011FE0: +/* 046B10 7F011FE0 8E860000 */ lw $a2, ($s4) +/* 046B14 7F011FE4 02F31021 */ addu $v0, $s7, $s3 +/* 046B18 7F011FE8 14C00006 */ bnez $a2, .L7F012004 +/* 046B1C 7F011FEC 00000000 */ nop +/* 046B20 7F011FF0 8C430000 */ lw $v1, ($v0) +/* 046B24 7F011FF4 18600003 */ blez $v1, .L7F012004 +/* 046B28 7F011FF8 246AFFFF */ addiu $t2, $v1, -1 +/* 046B2C 7F011FFC 10000059 */ b .L7F012164 +/* 046B30 7F012000 AC4A0000 */ sw $t2, ($v0) +.L7F012004: +/* 046B34 7F012004 14C00057 */ bnez $a2, .L7F012164 +/* 046B38 7F012008 00168600 */ sll $s0, $s6, 0x18 +/* 046B3C 7F01200C 00105E03 */ sra $t3, $s0, 0x18 +/* 046B40 7F012010 000B2600 */ sll $a0, $t3, 0x18 +/* 046B44 7F012014 00046603 */ sra $t4, $a0, 0x18 +/* 046B48 7F012018 01802025 */ move $a0, $t4 +/* 046B4C 7F01201C 01608025 */ move $s0, $t3 +/* 046B50 7F012020 0C0030EB */ jal get_controller_buttons_pressed +/* 046B54 7F012024 24050202 */ li $a1, 514 +/* 046B58 7F012028 10400006 */ beqz $v0, .L7F012044 +/* 046B5C 7F01202C 00102600 */ sll $a0, $s0, 0x18 +/* 046B60 7F012030 8E220000 */ lw $v0, ($s1) +/* 046B64 7F012034 1840004B */ blez $v0, .L7F012164 +/* 046B68 7F012038 244DFFFF */ addiu $t5, $v0, -1 +/* 046B6C 7F01203C 10000049 */ b .L7F012164 +/* 046B70 7F012040 AE2D0000 */ sw $t5, ($s1) +.L7F012044: +/* 046B74 7F012044 00047603 */ sra $t6, $a0, 0x18 +/* 046B78 7F012048 01C02025 */ move $a0, $t6 +/* 046B7C 7F01204C 0C0030EB */ jal get_controller_buttons_pressed +/* 046B80 7F012050 24050101 */ li $a1, 257 +/* 046B84 7F012054 1040000A */ beqz $v0, .L7F012080 +/* 046B88 7F012058 00102600 */ sll $a0, $s0, 0x18 +/* 046B8C 7F01205C 3C0F8003 */ lui $t7, %hi(num_chars_selectable_mp) +/* 046B90 7F012060 8DEFB194 */ lw $t7, %lo(num_chars_selectable_mp)($t7) +/* 046B94 7F012064 8E220000 */ lw $v0, ($s1) +/* 046B98 7F012068 25F8FFFF */ addiu $t8, $t7, -1 +/* 046B9C 7F01206C 0058082A */ slt $at, $v0, $t8 +/* 046BA0 7F012070 1020003C */ beqz $at, .L7F012164 +/* 046BA4 7F012074 24590001 */ addiu $t9, $v0, 1 +/* 046BA8 7F012078 1000003A */ b .L7F012164 +/* 046BAC 7F01207C AE390000 */ sw $t9, ($s1) +.L7F012080: +/* 046BB0 7F012080 00044603 */ sra $t0, $a0, 0x18 +/* 046BB4 7F012084 01002025 */ move $a0, $t0 +/* 046BB8 7F012088 0C0030EB */ jal get_controller_buttons_pressed +/* 046BBC 7F01208C 3405B000 */ li $a1, 45056 +/* 046BC0 7F012090 10400012 */ beqz $v0, .L7F0120DC +/* 046BC4 7F012094 00102600 */ sll $a0, $s0, 0x18 +/* 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) +/* 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) +/* 046BEC 7F0120BC AD420000 */ sw $v0, ($t2) +/* 046BF0 7F0120C0 AE820000 */ sw $v0, ($s4) +/* 046BF4 7F0120C4 8FC40000 */ lw $a0, ($fp) +/* 046BF8 7F0120C8 240500C7 */ li $a1, 199 +/* 046BFC 7F0120CC 0C002382 */ jal play_sfx_a1 +/* 046C00 7F0120D0 00003025 */ move $a2, $zero +/* 046C04 7F0120D4 10000024 */ b .L7F012168 +/* 046C08 7F0120D8 8EA50000 */ lw $a1, ($s5) +.L7F0120DC: +/* 046C0C 7F0120DC 00045E03 */ sra $t3, $a0, 0x18 +/* 046C10 7F0120E0 01602025 */ move $a0, $t3 +/* 046C14 7F0120E4 2405FFFE */ li $a1, -2 +/* 046C18 7F0120E8 0C00312D */ jal get_controller_3dstick_L_R +/* 046C1C 7F0120EC 24060001 */ li $a2, 1 +/* 046C20 7F0120F0 1840000D */ blez $v0, .L7F012128 +/* 046C24 7F0120F4 00102600 */ sll $a0, $s0, 0x18 +/* 046C28 7F0120F8 8E4C0000 */ lw $t4, ($s2) +/* 046C2C 7F0120FC 3C0D8003 */ lui $t5, %hi(num_chars_selectable_mp) +/* 046C30 7F012100 55800019 */ bnezl $t4, .L7F012168 +/* 046C34 7F012104 8EA50000 */ lw $a1, ($s5) +/* 046C38 7F012108 8DADB194 */ lw $t5, %lo(num_chars_selectable_mp)($t5) +/* 046C3C 7F01210C 8E220000 */ lw $v0, ($s1) +/* 046C40 7F012110 25AEFFFF */ addiu $t6, $t5, -1 +/* 046C44 7F012114 004E082A */ slt $at, $v0, $t6 +/* 046C48 7F012118 10200012 */ beqz $at, .L7F012164 +/* 046C4C 7F01211C 244F0001 */ addiu $t7, $v0, 1 +/* 046C50 7F012120 10000010 */ b .L7F012164 +/* 046C54 7F012124 AE2F0000 */ sw $t7, ($s1) +.L7F012128: +/* 046C58 7F012128 0004C603 */ sra $t8, $a0, 0x18 +/* 046C5C 7F01212C 03002025 */ move $a0, $t8 +/* 046C60 7F012130 2405FFFE */ li $a1, -2 +/* 046C64 7F012134 0C00312D */ jal get_controller_3dstick_L_R +/* 046C68 7F012138 24060001 */ li $a2, 1 +/* 046C6C 7F01213C 2841FFFF */ slti $at, $v0, -1 +/* 046C70 7F012140 50200009 */ beql $at, $zero, .L7F012168 +/* 046C74 7F012144 8EA50000 */ lw $a1, ($s5) +/* 046C78 7F012148 8E590000 */ lw $t9, ($s2) +/* 046C7C 7F01214C 57200006 */ bnezl $t9, .L7F012168 +/* 046C80 7F012150 8EA50000 */ lw $a1, ($s5) +/* 046C84 7F012154 8E220000 */ lw $v0, ($s1) +/* 046C88 7F012158 18400002 */ blez $v0, .L7F012164 +/* 046C8C 7F01215C 2448FFFF */ addiu $t0, $v0, -1 +/* 046C90 7F012160 AE280000 */ sw $t0, ($s1) +.L7F012164: +/* 046C94 7F012164 8EA50000 */ lw $a1, ($s5) +.L7F012168: +/* 046C98 7F012168 24070054 */ li $a3, 84 +/* 046C9C 7F01216C 8E2A0000 */ lw $t2, ($s1) +/* 046CA0 7F012170 00A70019 */ multu $a1, $a3 +/* 046CA4 7F012174 8E420000 */ lw $v0, ($s2) +/* 046CA8 7F012178 26D60001 */ addiu $s6, $s6, 1 +/* 046CAC 7F01217C 26940004 */ addiu $s4, $s4, 4 +/* 046CB0 7F012180 26310004 */ addiu $s1, $s1, 4 +/* 046CB4 7F012184 8E86FFFC */ lw $a2, -4($s4) +/* 046CB8 7F012188 02F3C821 */ addu $t9, $s7, $s3 +/* 046CBC 7F01218C 244BFFF4 */ addiu $t3, $v0, -0xc +/* 046CC0 7F012190 00004812 */ mflo $t1 +/* 046CC4 7F012194 00491821 */ addu $v1, $v0, $t1 +/* 046CC8 7F012198 00000000 */ nop +/* 046CCC 7F01219C 01470019 */ multu $t2, $a3 +/* 046CD0 7F0121A0 00002012 */ mflo $a0 +/* 046CD4 7F0121A4 0083082A */ slt $at, $a0, $v1 +/* 046CD8 7F0121A8 50200009 */ beql $at, $zero, .L7F0121D0 +/* 046CDC 7F0121AC 0064082A */ slt $at, $v1, $a0 +/* 046CE0 7F0121B0 05610010 */ bgez $t3, .L7F0121F4 +/* 046CE4 7F0121B4 AE4B0000 */ sw $t3, ($s2) +/* 046CE8 7F0121B8 256C0054 */ addiu $t4, $t3, 0x54 +/* 046CEC 7F0121BC 24ADFFFF */ addiu $t5, $a1, -1 +/* 046CF0 7F0121C0 AE4C0000 */ sw $t4, ($s2) +/* 046CF4 7F0121C4 1000000B */ b .L7F0121F4 +/* 046CF8 7F0121C8 AEAD0000 */ sw $t5, ($s5) +/* 046CFC 7F0121CC 0064082A */ slt $at, $v1, $a0 +.L7F0121D0: +/* 046D00 7F0121D0 10200008 */ beqz $at, .L7F0121F4 +/* 046D04 7F0121D4 244E000C */ addiu $t6, $v0, 0xc +/* 046D08 7F0121D8 29C10054 */ slti $at, $t6, 0x54 +/* 046D0C 7F0121DC 14200005 */ bnez $at, .L7F0121F4 +/* 046D10 7F0121E0 AE4E0000 */ sw $t6, ($s2) +/* 046D14 7F0121E4 25CFFFAC */ addiu $t7, $t6, -0x54 +/* 046D18 7F0121E8 24B80001 */ addiu $t8, $a1, 1 +/* 046D1C 7F0121EC AE4F0000 */ sw $t7, ($s2) +/* 046D20 7F0121F0 AEB80000 */ sw $t8, ($s5) +.L7F0121F4: +/* 046D24 7F0121F4 50C00008 */ beql $a2, $zero, .L7F012218 +/* 046D28 7F0121F8 8FAB004C */ lw $t3, 0x4c($sp) +/* 046D2C 7F0121FC 8F280000 */ lw $t0, ($t9) +/* 046D30 7F012200 8FA90044 */ lw $t1, 0x44($sp) +/* 046D34 7F012204 2401000B */ li $at, 11 +/* 046D38 7F012208 15010002 */ bne $t0, $at, .L7F012214 +/* 046D3C 7F01220C 252A0001 */ addiu $t2, $t1, 1 +/* 046D40 7F012210 AFAA0044 */ sw $t2, 0x44($sp) +.L7F012214: +/* 046D44 7F012214 8FAB004C */ lw $t3, 0x4c($sp) +.L7F012218: +/* 046D48 7F012218 26730004 */ addiu $s3, $s3, 4 +/* 046D4C 7F01221C 26B50004 */ addiu $s5, $s5, 4 +/* 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 +/* 046D60 7F012230 0FC02DC9 */ jal disable_all_switches +/* 046D64 7F012234 8E040000 */ lw $a0, ($s0) +/* 046D68 7F012238 8E040000 */ lw $a0, ($s0) +/* 046D6C 7F01223C 00002825 */ move $a1, $zero +/* 046D70 7F012240 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 046D74 7F012244 24060001 */ li $a2, 1 +/* 046D78 7F012248 8E040000 */ lw $a0, ($s0) +/* 046D7C 7F01224C 2405002A */ li $a1, 42 +/* 046D80 7F012250 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 046D84 7F012254 24060001 */ li $a2, 1 +/* 046D88 7F012258 0FC026E1 */ jal menu_control_stick_tracking +/* 046D8C 7F01225C 00000000 */ nop +/* 046D90 7F012260 8FAC0044 */ lw $t4, 0x44($sp) +/* 046D94 7F012264 8FAD004C */ lw $t5, 0x4c($sp) +/* 046D98 7F012268 158D0003 */ bne $t4, $t5, .L7F012278 +/* 046D9C 7F01226C 2404000E */ li $a0, 14 +/* 046DA0 7F012270 0FC06975 */ jal set_menu_to_mode +/* 046DA4 7F012274 00002825 */ move $a1, $zero +.L7F012278: +/* 046DA8 7F012278 8FBF003C */ lw $ra, 0x3c($sp) +/* 046DAC 7F01227C 8FB00018 */ lw $s0, 0x18($sp) +/* 046DB0 7F012280 8FB1001C */ lw $s1, 0x1c($sp) +/* 046DB4 7F012284 8FB20020 */ lw $s2, 0x20($sp) +/* 046DB8 7F012288 8FB30024 */ lw $s3, 0x24($sp) +/* 046DBC 7F01228C 8FB40028 */ lw $s4, 0x28($sp) +/* 046DC0 7F012290 8FB5002C */ lw $s5, 0x2c($sp) +/* 046DC4 7F012294 8FB60030 */ lw $s6, 0x30($sp) +/* 046DC8 7F012298 8FB70034 */ lw $s7, 0x34($sp) +/* 046DCC 7F01229C 8FBE0038 */ lw $fp, 0x38($sp) +/* 046DD0 7F0122A0 03E00008 */ jr $ra +/* 046DD4 7F0122A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0122A8(s32 arg0, s32 arg1, s32 arg2) +{ + if (arg1 >= arg0) + { + return 0; + } + if (arg0 >= arg2) + { + return 0; + } + if (arg0 < (arg1 + 0x28)) + { + 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 + + + +#ifdef NONMATCHING +s32 sub_GAME_7F01231C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) +{ + s32 spD4; + s32 spD0; + s32 spCC; + s32 sp58; + s32 sp54; + s32 sp50; + s32 temp_s1; + s32 temp_s4; + s32 temp_t2; + s32 temp_t2_2; + s32 temp_t3; + s32 temp_t3_2; + s32 temp_t5; + s32 temp_t5_2; + s32 temp_t6; + s32 temp_t7; + s32 temp_t7_2; + s32 temp_t8; + s32 temp_t9; + void *temp_s0; + void *temp_s2; + void *temp_s5; + s32 phi_s1; + s32 phi_s4; + s32 phi_s3; + void *phi_s0; + s32 phi_s2; + s8 phi_v0; + + spD4 = sub_GAME_7F0BD6E0(); + spD0 = sub_GAME_7F0BD6E0(); + spCC = sub_GAME_7F0BD6C4(0x10); + arg0 = microcode_constructor(arg0); + guOrtho(spD4, 0, 0x43dc0000, 0, 330.0f, 1.0f, 10.0f, 1.0f); + guRotate(spD0, 0x40490fdb, 0x3f800000, 0.0f, 0.0f); + sp54 = (s32) (0x14a - arg4); + sp50 = (s32) (arg6 + 0x2a); + sp58 = (s32) (arg6 + 0x23); + phi_s4 = 0; + phi_s0 = spCC; +loop_1: + phi_s1 = 0; +loop_2: + phi_s3 = phi_s1; + if (phi_s1 >= 2) + { + phi_s3 = phi_s1 + -1; + } + phi_s2 = phi_s4; + if (phi_s4 >= 2) + { + phi_s2 = phi_s4 + -1; + } + if ((get_players_who_have_selected_mp_char(arg5) != 0) && (arg6 == 0)) + { + phi_v0 = (u8)0x6e; + } + else + { + phi_v0 = (u8)0xff; + } + phi_s0->unk0 = (s16) (((phi_s3 + -1) * sp58) + arg3); + phi_s0->unk4 = (u16)-5; + phi_s0->unk6 = (u16)0; + phi_s0->unk2 = (s16) ((sp54 + ((phi_s2 + -1) * sp50)) + arg6); + if ((phi_s1 & 1) != 0) + { + phi_s0->unk8 = (u16)0x1000; + } + else + { + phi_s0->unk8 = (u16)0; + } + if ((phi_s4 & 1) != 0) + { + phi_s0->unkA = (u16)0x1000; + } + else + { + phi_s0->unkA = (u16)0; + } + phi_s0->unkC = (s8) phi_v0; + phi_s0->unkD = (s8) phi_v0; + phi_s0->unkE = (s8) phi_v0; + if (arg6 == 0) + { + phi_s0->unkF = sub_GAME_7F0122A8(phi_s0->unk0, arg1, arg2); + } + else + { + phi_s0->unkF = (u8)0xff; + } + temp_s1 = phi_s1 + 1; + temp_s0 = phi_s0 + 0x10; + phi_s1 = temp_s1; + phi_s0 = temp_s0; + if (temp_s1 != 4) + { + goto loop_2; + } + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s0 = temp_s0; + if (temp_s4 != 4) + { + goto loop_1; + } + temp_t9 = arg0; + arg0 = (s32) (temp_t9 + 8); + temp_t9->unk0 = 0x1030040; + temp_t9->unk4 = (s32) (spD4 + 0x80000000); + temp_t6 = arg0; + arg0 = (s32) (temp_t6 + 8); + temp_t6->unk0 = 0x1020040; + temp_t6->unk4 = (s32) (spD0 + 0x80000000); + temp_t2 = arg0; + arg0 = (s32) (temp_t2 + 8); + temp_t2->unk0 = 0x4f00100; + temp_t2->unk4 = spCC; + temp_s5 = &arg0; + temp_s2 = (arg5 * 0xc) + &mp_chr_setup; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0x18, 2, 0, 2); + temp_t8 = arg0; + arg0 = (s32) (temp_t8 + 8); + temp_t8->unk4 = 0xa28; + temp_t8->unk0 = 0xbf000000; + temp_t3 = arg0; + arg0 = (s32) (temp_t3 + 8); + temp_t3->unk4 = 0x280a32; + temp_t3->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0x24, 2, 0, 2); + temp_t3_2 = arg0; + arg0 = (s32) (temp_t3_2 + 8); + temp_t3_2->unk4 = 0x141e3c; + temp_t3_2->unk0 = 0xbf000000; + temp_t5 = arg0; + arg0 = (s32) (temp_t5 + 8); + temp_t5->unk4 = 0x3c1e46; + temp_t5->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, ((temp_s2->unk3 * 4) * 0xc) + mpcharselimages, 2, 0, 2); + temp_t5_2 = arg0; + arg0 = (s32) (temp_t5_2 + 8); + temp_t5_2->unk4 = 0x505a78; + temp_t5_2->unk0 = 0xbf000000; + temp_t7 = arg0; + arg0 = (s32) (temp_t7 + 8); + temp_t7->unk4 = 0x785a82; + temp_t7->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0xc, 2, 0, 2); + temp_t7_2 = arg0; + arg0 = (s32) (temp_t7_2 + 8); + temp_t7_2->unk4 = 0x646e8c; + temp_t7_2->unk0 = 0xbf000000; + temp_t2_2 = arg0; + arg0 = (s32) (temp_t2_2 + 8); + temp_t2_2->unk4 = 0x8c6e96; + temp_t2_2->unk0 = 0xbf000000; + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01231C +/* 046E4C 7F01231C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 046E50 7F012320 AFBF004C */ sw $ra, 0x4c($sp) +/* 046E54 7F012324 AFBE0048 */ sw $fp, 0x48($sp) +/* 046E58 7F012328 AFB70044 */ sw $s7, 0x44($sp) +/* 046E5C 7F01232C AFB60040 */ sw $s6, 0x40($sp) +/* 046E60 7F012330 AFB5003C */ sw $s5, 0x3c($sp) +/* 046E64 7F012334 AFB40038 */ sw $s4, 0x38($sp) +/* 046E68 7F012338 AFB30034 */ sw $s3, 0x34($sp) +/* 046E6C 7F01233C AFB20030 */ sw $s2, 0x30($sp) +/* 046E70 7F012340 AFB1002C */ sw $s1, 0x2c($sp) +/* 046E74 7F012344 AFB00028 */ sw $s0, 0x28($sp) +/* 046E78 7F012348 AFA400D8 */ sw $a0, 0xd8($sp) +/* 046E7C 7F01234C AFA500DC */ sw $a1, 0xdc($sp) +/* 046E80 7F012350 AFA600E0 */ sw $a2, 0xe0($sp) +/* 046E84 7F012354 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E88 7F012358 AFA700E4 */ sw $a3, 0xe4($sp) +/* 046E8C 7F01235C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E90 7F012360 AFA200D4 */ sw $v0, 0xd4($sp) +/* 046E94 7F012364 AFA200D0 */ sw $v0, 0xd0($sp) +/* 046E98 7F012368 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 046E9C 7F01236C 24040010 */ li $a0, 16 +/* 046EA0 7F012370 AFA200CC */ sw $v0, 0xcc($sp) +/* 046EA4 7F012374 0FC2B366 */ jal microcode_constructor +/* 046EA8 7F012378 8FA400D8 */ lw $a0, 0xd8($sp) +/* 046EAC 7F01237C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 046EB0 7F012380 44811000 */ mtc1 $at, $f2 +/* 046EB4 7F012384 44800000 */ mtc1 $zero, $f0 +/* 046EB8 7F012388 3C0143A5 */ li $at, 0x43A50000 # 330.000000 +/* 046EBC 7F01238C 44812000 */ mtc1 $at, $f4 +/* 046EC0 7F012390 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 046EC4 7F012394 44813000 */ mtc1 $at, $f6 +/* 046EC8 7F012398 44050000 */ mfc1 $a1, $f0 +/* 046ECC 7F01239C 44070000 */ mfc1 $a3, $f0 +/* 046ED0 7F0123A0 AFA200D8 */ sw $v0, 0xd8($sp) +/* 046ED4 7F0123A4 8FA400D4 */ lw $a0, 0xd4($sp) +/* 046ED8 7F0123A8 3C0643DC */ lui $a2, 0x43dc +/* 046EDC 7F0123AC E7A20014 */ swc1 $f2, 0x14($sp) +/* 046EE0 7F0123B0 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 046EE4 7F0123B4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 046EE8 7F0123B8 0C005AF1 */ jal guOrtho +/* 046EEC 7F0123BC E7A60018 */ swc1 $f6, 0x18($sp) +/* 046EF0 7F0123C0 44800000 */ mtc1 $zero, $f0 +/* 046EF4 7F0123C4 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 046EF8 7F0123C8 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 046EFC 7F0123CC 44070000 */ mfc1 $a3, $f0 +/* 046F00 7F0123D0 8FA400D0 */ lw $a0, 0xd0($sp) +/* 046F04 7F0123D4 3C063F80 */ lui $a2, 0x3f80 +/* 046F08 7F0123D8 0C005E2D */ jal guRotate +/* 046F0C 7F0123DC E7A00010 */ swc1 $f0, 0x10($sp) +/* 046F10 7F0123E0 8FB500F0 */ lw $s5, 0xf0($sp) +/* 046F14 7F0123E4 8FAF00E8 */ lw $t7, 0xe8($sp) +/* 046F18 7F0123E8 2418014A */ li $t8, 330 +/* 046F1C 7F0123EC 26AE0023 */ addiu $t6, $s5, 0x23 +/* 046F20 7F0123F0 26AA002A */ addiu $t2, $s5, 0x2a +/* 046F24 7F0123F4 030FC823 */ subu $t9, $t8, $t7 +/* 046F28 7F0123F8 AFB90054 */ sw $t9, 0x54($sp) +/* 046F2C 7F0123FC AFAA0050 */ sw $t2, 0x50($sp) +/* 046F30 7F012400 AFAE0058 */ sw $t6, 0x58($sp) +/* 046F34 7F012404 0000A025 */ move $s4, $zero +/* 046F38 7F012408 8FB000CC */ lw $s0, 0xcc($sp) +/* 046F3C 7F01240C 241E0004 */ li $fp, 4 +/* 046F40 7F012410 24161000 */ li $s6, 4096 +/* 046F44 7F012414 00008825 */ move $s1, $zero +.L7F012418: +/* 046F48 7F012418 32970001 */ andi $s7, $s4, 1 +.L7F01241C: +/* 046F4C 7F01241C 2A210002 */ slti $at, $s1, 2 +/* 046F50 7F012420 14200003 */ bnez $at, .L7F012430 +/* 046F54 7F012424 02209825 */ move $s3, $s1 +/* 046F58 7F012428 10000001 */ b .L7F012430 +/* 046F5C 7F01242C 2633FFFF */ addiu $s3, $s1, -1 +.L7F012430: +/* 046F60 7F012430 2A810002 */ slti $at, $s4, 2 +/* 046F64 7F012434 14200003 */ bnez $at, .L7F012444 +/* 046F68 7F012438 02809025 */ move $s2, $s4 +/* 046F6C 7F01243C 10000001 */ b .L7F012444 +/* 046F70 7F012440 2692FFFF */ addiu $s2, $s4, -1 +.L7F012444: +/* 046F74 7F012444 0FC046F6 */ jal get_players_who_have_selected_mp_char +/* 046F78 7F012448 8FA400EC */ lw $a0, 0xec($sp) +/* 046F7C 7F01244C 10400005 */ beqz $v0, .L7F012464 +/* 046F80 7F012450 8FAC0058 */ lw $t4, 0x58($sp) +/* 046F84 7F012454 56A00004 */ bnezl $s5, .L7F012468 +/* 046F88 7F012458 240200FF */ li $v0, 255 +/* 046F8C 7F01245C 10000002 */ b .L7F012468 +/* 046F90 7F012460 2402006E */ li $v0, 110 +.L7F012464: +/* 046F94 7F012464 240200FF */ li $v0, 255 +.L7F012468: +/* 046F98 7F012468 266BFFFF */ addiu $t3, $s3, -1 +/* 046F9C 7F01246C 016C0019 */ multu $t3, $t4 +/* 046FA0 7F012470 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 046FA4 7F012474 264FFFFF */ addiu $t7, $s2, -1 +/* 046FA8 7F012478 00006812 */ mflo $t5 +/* 046FAC 7F01247C 01AEC021 */ addu $t8, $t5, $t6 +/* 046FB0 7F012480 A6180000 */ sh $t8, ($s0) +/* 046FB4 7F012484 8FB90050 */ lw $t9, 0x50($sp) +/* 046FB8 7F012488 8FAB0054 */ lw $t3, 0x54($sp) +/* 046FBC 7F01248C 240EFFFB */ li $t6, -5 +/* 046FC0 7F012490 01F90019 */ multu $t7, $t9 +/* 046FC4 7F012494 32380001 */ andi $t8, $s1, 1 +/* 046FC8 7F012498 A60E0004 */ sh $t6, 4($s0) +/* 046FCC 7F01249C A6000006 */ sh $zero, 6($s0) +/* 046FD0 7F0124A0 240F00FF */ li $t7, 255 +/* 046FD4 7F0124A4 00005012 */ mflo $t2 +/* 046FD8 7F0124A8 016A6021 */ addu $t4, $t3, $t2 +/* 046FDC 7F0124AC 01956821 */ addu $t5, $t4, $s5 +/* 046FE0 7F0124B0 13000003 */ beqz $t8, .L7F0124C0 +/* 046FE4 7F0124B4 A60D0002 */ sh $t5, 2($s0) +/* 046FE8 7F0124B8 10000002 */ b .L7F0124C4 +/* 046FEC 7F0124BC A6160008 */ sh $s6, 8($s0) +.L7F0124C0: +/* 046FF0 7F0124C0 A6000008 */ sh $zero, 8($s0) +.L7F0124C4: +/* 046FF4 7F0124C4 52E00004 */ beql $s7, $zero, .L7F0124D8 +/* 046FF8 7F0124C8 A600000A */ sh $zero, 0xa($s0) +/* 046FFC 7F0124CC 10000002 */ b .L7F0124D8 +/* 047000 7F0124D0 A616000A */ sh $s6, 0xa($s0) +/* 047004 7F0124D4 A600000A */ sh $zero, 0xa($s0) +.L7F0124D8: +/* 047008 7F0124D8 A202000C */ sb $v0, 0xc($s0) +/* 04700C 7F0124DC A202000D */ sb $v0, 0xd($s0) +/* 047010 7F0124E0 16A00007 */ bnez $s5, .L7F012500 +/* 047014 7F0124E4 A202000E */ sb $v0, 0xe($s0) +/* 047018 7F0124E8 86040000 */ lh $a0, ($s0) +/* 04701C 7F0124EC 8FA500DC */ lw $a1, 0xdc($sp) +/* 047020 7F0124F0 0FC048AA */ jal sub_GAME_7F0122A8 +/* 047024 7F0124F4 8FA600E0 */ lw $a2, 0xe0($sp) +/* 047028 7F0124F8 10000002 */ b .L7F012504 +/* 04702C 7F0124FC A202000F */ sb $v0, 0xf($s0) +.L7F012500: +/* 047030 7F012500 A20F000F */ sb $t7, 0xf($s0) +.L7F012504: +/* 047034 7F012504 26310001 */ addiu $s1, $s1, 1 +/* 047038 7F012508 163EFFC4 */ bne $s1, $fp, .L7F01241C +/* 04703C 7F01250C 26100010 */ addiu $s0, $s0, 0x10 +/* 047040 7F012510 26940001 */ addiu $s4, $s4, 1 +/* 047044 7F012514 569EFFC0 */ bnel $s4, $fp, .L7F012418 +/* 047048 7F012518 00008825 */ move $s1, $zero +/* 04704C 7F01251C 8FB900D8 */ lw $t9, 0xd8($sp) +/* 047050 7F012520 3C0A0103 */ lui $t2, (0x01030040 >> 16) # lui $t2, 0x103 +/* 047054 7F012524 354A0040 */ ori $t2, (0x01030040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 047058 7F012528 272B0008 */ addiu $t3, $t9, 8 +/* 04705C 7F01252C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 047060 7F012530 AF2A0000 */ sw $t2, ($t9) +/* 047064 7F012534 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 047068 7F012538 3C098000 */ lui $t1, 0x8000 +/* 04706C 7F01253C 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 047070 7F012540 01896821 */ addu $t5, $t4, $t1 +/* 047074 7F012544 AF2D0004 */ sw $t5, 4($t9) +/* 047078 7F012548 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 04707C 7F01254C 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 047080 7F012550 3C0D04F0 */ lui $t5, (0x04F00100 >> 16) # lui $t5, 0x4f0 +/* 047084 7F012554 25D80008 */ addiu $t8, $t6, 8 +/* 047088 7F012558 AFB800D8 */ sw $t8, 0xd8($sp) +/* 04708C 7F01255C ADCF0000 */ sw $t7, ($t6) +/* 047090 7F012560 8FB900D0 */ lw $t9, 0xd0($sp) +/* 047094 7F012564 35AD0100 */ ori $t5, (0x04F00100 & 0xFFFF) # ori $t5, $t5, 0x100 +/* 047098 7F012568 2413000C */ li $s3, 12 +/* 04709C 7F01256C 03295821 */ addu $t3, $t9, $t1 +/* 0470A0 7F012570 ADCB0004 */ sw $t3, 4($t6) +/* 0470A4 7F012574 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 0470A8 7F012578 3C198003 */ lui $t9, %hi(mp_chr_setup) +/* 0470AC 7F01257C 2739B198 */ addiu $t9, %lo(mp_chr_setup) # addiu $t9, $t9, -0x4e68 +/* 0470B0 7F012580 254C0008 */ addiu $t4, $t2, 8 +/* 0470B4 7F012584 AFAC00D8 */ sw $t4, 0xd8($sp) +/* 0470B8 7F012588 AD4D0000 */ sw $t5, ($t2) +/* 0470BC 7F01258C 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0470C0 7F012590 3C148009 */ lui $s4, %hi(mpcharselimages) +/* 0470C4 7F012594 2694D130 */ addiu $s4, %lo(mpcharselimages) # addiu $s4, $s4, -0x2ed0 +/* 0470C8 7F012598 AD4E0004 */ sw $t6, 4($t2) +/* 0470CC 7F01259C 8FB800EC */ lw $t8, 0xec($sp) +/* 0470D0 7F0125A0 8E8D0000 */ lw $t5, ($s4) +/* 0470D4 7F0125A4 27B500D8 */ addiu $s5, $sp, 0xd8 +/* 0470D8 7F0125A8 03130019 */ multu $t8, $s3 +/* 0470DC 7F0125AC 240E0002 */ li $t6, 2 +/* 0470E0 7F0125B0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0470E4 7F0125B4 02A02025 */ move $a0, $s5 +/* 0470E8 7F0125B8 24060002 */ li $a2, 2 +/* 0470EC 7F0125BC 00003825 */ move $a3, $zero +/* 0470F0 7F0125C0 00007812 */ mflo $t7 +/* 0470F4 7F0125C4 01F99021 */ addu $s2, $t7, $t9 +/* 0470F8 7F0125C8 924B0003 */ lbu $t3, 3($s2) +/* 0470FC 7F0125CC 000B5080 */ sll $t2, $t3, 2 +/* 047100 7F0125D0 01530019 */ multu $t2, $s3 +/* 047104 7F0125D4 00006012 */ mflo $t4 +/* 047108 7F0125D8 018D8021 */ addu $s0, $t4, $t5 +/* 04710C 7F0125DC 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 047110 7F0125E0 26050018 */ addiu $a1, $s0, 0x18 +/* 047114 7F0125E4 8FB800D8 */ lw $t8, 0xd8($sp) +/* 047118 7F0125E8 3C11BF00 */ lui $s1, 0xbf00 +/* 04711C 7F0125EC 24190A28 */ li $t9, 2600 +/* 047120 7F0125F0 270F0008 */ addiu $t7, $t8, 8 +/* 047124 7F0125F4 AFAF00D8 */ sw $t7, 0xd8($sp) +/* 047128 7F0125F8 AF190004 */ sw $t9, 4($t8) +/* 04712C 7F0125FC AF110000 */ sw $s1, ($t8) +/* 047130 7F012600 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 047134 7F012604 3C0C0028 */ lui $t4, (0x00280A32 >> 16) # lui $t4, 0x28 +/* 047138 7F012608 358C0A32 */ ori $t4, (0x00280A32 & 0xFFFF) # ori $t4, $t4, 0xa32 +/* 04713C 7F01260C 256A0008 */ addiu $t2, $t3, 8 +/* 047140 7F012610 AFAA00D8 */ sw $t2, 0xd8($sp) +/* 047144 7F012614 AD6C0004 */ sw $t4, 4($t3) +/* 047148 7F012618 AD710000 */ sw $s1, ($t3) +/* 04714C 7F01261C 924D0003 */ lbu $t5, 3($s2) +/* 047150 7F012620 8E8F0000 */ lw $t7, ($s4) +/* 047154 7F012624 24190002 */ li $t9, 2 +/* 047158 7F012628 000D7080 */ sll $t6, $t5, 2 +/* 04715C 7F01262C 01D30019 */ multu $t6, $s3 +/* 047160 7F012630 AFB90010 */ sw $t9, 0x10($sp) +/* 047164 7F012634 02A02025 */ move $a0, $s5 +/* 047168 7F012638 24060002 */ li $a2, 2 +/* 04716C 7F01263C 00003825 */ move $a3, $zero +/* 047170 7F012640 0000C012 */ mflo $t8 +/* 047174 7F012644 030F8021 */ addu $s0, $t8, $t7 +/* 047178 7F012648 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 04717C 7F01264C 26050024 */ addiu $a1, $s0, 0x24 +/* 047180 7F012650 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 047184 7F012654 3C0C0014 */ lui $t4, (0x00141E3C >> 16) # lui $t4, 0x14 +/* 047188 7F012658 358C1E3C */ ori $t4, (0x00141E3C & 0xFFFF) # ori $t4, $t4, 0x1e3c +/* 04718C 7F01265C 256A0008 */ addiu $t2, $t3, 8 +/* 047190 7F012660 AFAA00D8 */ sw $t2, 0xd8($sp) +/* 047194 7F012664 AD6C0004 */ sw $t4, 4($t3) +/* 047198 7F012668 AD710000 */ sw $s1, ($t3) +/* 04719C 7F01266C 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 0471A0 7F012670 3C18003C */ lui $t8, (0x003C1E46 >> 16) # lui $t8, 0x3c +/* 0471A4 7F012674 37181E46 */ ori $t8, (0x003C1E46 & 0xFFFF) # ori $t8, $t8, 0x1e46 +/* 0471A8 7F012678 25AE0008 */ addiu $t6, $t5, 8 +/* 0471AC 7F01267C AFAE00D8 */ sw $t6, 0xd8($sp) +/* 0471B0 7F012680 ADB80004 */ sw $t8, 4($t5) +/* 0471B4 7F012684 ADB10000 */ sw $s1, ($t5) +/* 0471B8 7F012688 924F0003 */ lbu $t7, 3($s2) +/* 0471BC 7F01268C 8E8A0000 */ lw $t2, ($s4) +/* 0471C0 7F012690 240C0002 */ li $t4, 2 +/* 0471C4 7F012694 000FC880 */ sll $t9, $t7, 2 +/* 0471C8 7F012698 03330019 */ multu $t9, $s3 +/* 0471CC 7F01269C AFAC0010 */ sw $t4, 0x10($sp) +/* 0471D0 7F0126A0 02A02025 */ move $a0, $s5 +/* 0471D4 7F0126A4 24060002 */ li $a2, 2 +/* 0471D8 7F0126A8 00003825 */ move $a3, $zero +/* 0471DC 7F0126AC 00005812 */ mflo $t3 +/* 0471E0 7F0126B0 016A2821 */ addu $a1, $t3, $t2 +/* 0471E4 7F0126B4 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0471E8 7F0126B8 00000000 */ nop +/* 0471EC 7F0126BC 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 0471F0 7F0126C0 3C180050 */ lui $t8, (0x00505A78 >> 16) # lui $t8, 0x50 +/* 0471F4 7F0126C4 37185A78 */ ori $t8, (0x00505A78 & 0xFFFF) # ori $t8, $t8, 0x5a78 +/* 0471F8 7F0126C8 25AE0008 */ addiu $t6, $t5, 8 +/* 0471FC 7F0126CC AFAE00D8 */ sw $t6, 0xd8($sp) +/* 047200 7F0126D0 ADB80004 */ sw $t8, 4($t5) +/* 047204 7F0126D4 ADB10000 */ sw $s1, ($t5) +/* 047208 7F0126D8 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 04720C 7F0126DC 3C0B0078 */ lui $t3, (0x00785A82 >> 16) # lui $t3, 0x78 +/* 047210 7F0126E0 356B5A82 */ ori $t3, (0x00785A82 & 0xFFFF) # ori $t3, $t3, 0x5a82 +/* 047214 7F0126E4 25F90008 */ addiu $t9, $t7, 8 +/* 047218 7F0126E8 AFB900D8 */ sw $t9, 0xd8($sp) +/* 04721C 7F0126EC ADEB0004 */ sw $t3, 4($t7) +/* 047220 7F0126F0 ADF10000 */ sw $s1, ($t7) +/* 047224 7F0126F4 924A0003 */ lbu $t2, 3($s2) +/* 047228 7F0126F8 8E8E0000 */ lw $t6, ($s4) +/* 04722C 7F0126FC 24180002 */ li $t8, 2 +/* 047230 7F012700 000A6080 */ sll $t4, $t2, 2 +/* 047234 7F012704 01930019 */ multu $t4, $s3 +/* 047238 7F012708 AFB80010 */ sw $t8, 0x10($sp) +/* 04723C 7F01270C 02A02025 */ move $a0, $s5 +/* 047240 7F012710 24060002 */ li $a2, 2 +/* 047244 7F012714 00003825 */ move $a3, $zero +/* 047248 7F012718 00006812 */ mflo $t5 +/* 04724C 7F01271C 01AE8021 */ addu $s0, $t5, $t6 +/* 047250 7F012720 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 047254 7F012724 2605000C */ addiu $a1, $s0, 0xc +/* 047258 7F012728 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 04725C 7F01272C 3C0B0064 */ lui $t3, (0x00646E8C >> 16) # lui $t3, 0x64 +/* 047260 7F012730 356B6E8C */ ori $t3, (0x00646E8C & 0xFFFF) # ori $t3, $t3, 0x6e8c +/* 047264 7F012734 25F90008 */ addiu $t9, $t7, 8 +/* 047268 7F012738 AFB900D8 */ sw $t9, 0xd8($sp) +/* 04726C 7F01273C ADEB0004 */ sw $t3, 4($t7) +/* 047270 7F012740 ADF10000 */ sw $s1, ($t7) +/* 047274 7F012744 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 047278 7F012748 3C0D008C */ lui $t5, (0x008C6E96 >> 16) # lui $t5, 0x8c +/* 04727C 7F01274C 35AD6E96 */ ori $t5, (0x008C6E96 & 0xFFFF) # ori $t5, $t5, 0x6e96 +/* 047280 7F012750 254C0008 */ addiu $t4, $t2, 8 +/* 047284 7F012754 AFAC00D8 */ sw $t4, 0xd8($sp) +/* 047288 7F012758 AD4D0004 */ sw $t5, 4($t2) +/* 04728C 7F01275C AD510000 */ sw $s1, ($t2) +/* 047290 7F012760 8FBF004C */ lw $ra, 0x4c($sp) +/* 047294 7F012764 8FBE0048 */ lw $fp, 0x48($sp) +/* 047298 7F012768 8FB70044 */ lw $s7, 0x44($sp) +/* 04729C 7F01276C 8FB60040 */ lw $s6, 0x40($sp) +/* 0472A0 7F012770 8FB5003C */ lw $s5, 0x3c($sp) +/* 0472A4 7F012774 8FB40038 */ lw $s4, 0x38($sp) +/* 0472A8 7F012778 8FB30034 */ lw $s3, 0x34($sp) +/* 0472AC 7F01277C 8FB20030 */ lw $s2, 0x30($sp) +/* 0472B0 7F012780 8FB1002C */ lw $s1, 0x2c($sp) +/* 0472B4 7F012784 8FB00028 */ lw $s0, 0x28($sp) +/* 0472B8 7F012788 8FA200D8 */ lw $v0, 0xd8($sp) +/* 0472BC 7F01278C 03E00008 */ jr $ra +/* 0472C0 7F012790 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0F_mpcharsel(s32 arg0) +{ + s32 spE4; + s32 spE0; + s32 spBC; + s32 spB8; + s32 spB4; + s32 spB0; + s32 spA8; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp8C; + void *sp88; + void *sp80; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_10; + s32 temp_ret_11; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_ret_8; + s32 temp_ret_9; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s1_3; + s32 temp_s3; + s32 temp_s4; + s32 temp_s6; + s32 temp_t7; + s32 temp_t9; + s32 phi_s2; + s32 phi_s7; + void *phi_v0; + s32 phi_s4; + s32 phi_s1; + s32 phi_s0; + s32 phi_s1_2; + s32 phi_s0_2; + s32 phi_s1_3; + s32 phi_s0_3; + s32 phi_s1_4; + s32 phi_s0_4; + s32 phi_v1; + s32 phi_s1_5; + s32 phi_s0_5; + s32 phi_v1_2; + s32 phi_s1_6; + s32 phi_s1_7; + s32 phi_v1_3; + s32 phi_v1_4; + + spE4 = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_7 = temp_s1; + if (spE4 >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_7 = temp_ret_2; + } + if (spE4 > 0) + { + sp88 = &has_selected_char_player1; + sp80 = &mp_char_cur_select_player1; + sp74 = &dword_CODE_bss_80069730; + sp70 = &mp_char_prev_select_player1; + spE0 = 0; +loop_4: + if (spE4 == 2) + { + if (spE0 > 0) + { + phi_s2 = 0x26; + phi_s7 = 0xaa; + phi_s4 = 0x15e; + } + else + { + phi_s2 = 0x26; + phi_s7 = 0 + 0x1e; + phi_s4 = 0x15e; + } + } + else + { + if (spE0 >= 2) + { + phi_v1_4 = 0x8c; + } + else + { + phi_v1_4 = 0; + } + if ((spE0 & 1) != 0) + { + phi_v1_3 = 0xaf; + } + else + { + phi_v1_3 = 0; + } + phi_s2 = phi_v1_3 + 0x26; + phi_s7 = phi_v1_4 + 0x1e; + phi_s4 = 0xaf; + } + temp_t7 = phi_s2 + phi_s4; + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s2 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s7 + 5) * 4.0f) & 0xfff)); + sp8C = temp_t7; + phi_v0->unk4 = (s32) ((((s32) ((f32) (temp_t7 + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s7 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp88 == 0) + { + phi_s1 = temp_s1_2; + if (subroutine_arg0 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x55)); + sub_GAME_7F0AE98C(&spBC, &spB8, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spB4 = (s32) ((((s32) phi_s4 >> 1) + phi_s2) - (spB8 >> 1)); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &spB4, &spB0, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + } + temp_s6 = ((s32) phi_s4 >> 1) + phi_s2; + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp80 * 0xc))->unk-4E68); + sub_GAME_7F0AE98C(&spA8, &spA4, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp9C = (s32) (phi_s7 + 0x78); + spA0 = (s32) (temp_s6 - (spA4 >> 1)); + get_video2_settings_txtClipW(); + temp_s3 = phi_s2 + 0xd; + temp_s4 = sp8C + -0xe; + temp_ret_5 = sub_GAME_7F01231C(write_text_at_abs_coord(microcode_constructor(phi_s1), &spA0, &sp9C, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0), temp_s3, temp_s4, temp_s6 - *sp74, (s32) *sp70, (s32) subroutine_arg0); + temp_s1_3 = temp_ret_5; + if ((*sp88 != 0) || (subroutine_arg0 != 0)) + { + phi_v0 = temp_ret_5; + phi_s1_7 = temp_s1_3; + if (*sp70 != *sp80) + { +block_21: + phi_s0 = *sp70; + phi_s1_2 = temp_s1_3; + phi_v0 = temp_ret_5; + if (*sp70 >= 3) + { + temp_ret_6 = sub_GAME_7F01231C(temp_s1_3, temp_s3, temp_s4, (temp_s6 - *sp74) + -0xfc, (s32) (*sp70 + -3), (s32) subroutine_arg0); + phi_s0 = *sp70; + phi_s1_2 = temp_ret_6; + phi_v0 = temp_ret_6; + } + phi_s0_2 = phi_s0; + phi_s1_3 = phi_s1_2; + if (phi_s0 >= 2) + { + temp_ret_7 = sub_GAME_7F01231C(phi_s1_2, temp_s3, temp_s4, (temp_s6 - *sp74) + -0xa8, (s32) (phi_s0 + -2), (s32) subroutine_arg0); + phi_s0_2 = *sp70; + phi_s1_3 = temp_ret_7; + phi_v0 = temp_ret_7; + } + phi_s0_3 = phi_s0_2; + phi_s1_4 = phi_s1_3; + if (phi_s0_2 > 0) + { + temp_ret_8 = sub_GAME_7F01231C(phi_s1_3, temp_s3, temp_s4, (temp_s6 - *sp74) + -0x54, (s32) (phi_s0_2 + -1), (s32) subroutine_arg0); + phi_s0_3 = *sp70; + phi_s1_4 = temp_ret_8; + phi_v0 = temp_ret_8; + } + phi_s0_4 = phi_s0_3; + phi_v1 = num_chars_selectable_mp; + phi_s1_5 = phi_s1_4; + if (phi_s0_3 < (num_chars_selectable_mp + -1)) + { + temp_ret_9 = sub_GAME_7F01231C(phi_s1_4, temp_s3, temp_s4, (temp_s6 - *sp74) + 0x54, (s32) (phi_s0_3 + 1), (s32) subroutine_arg0); + phi_s0_4 = *sp70; + phi_v1 = num_chars_selectable_mp; + phi_s1_5 = temp_ret_9; + phi_v0 = temp_ret_9; + } + phi_s0_5 = phi_s0_4; + phi_v1_2 = phi_v1; + phi_s1_6 = phi_s1_5; + if (phi_s0_4 < (phi_v1 + -2)) + { + temp_ret_10 = sub_GAME_7F01231C(phi_s1_5, temp_s3, temp_s4, (temp_s6 - *sp74) + 0xa8, (s32) (phi_s0_4 + 2), (s32) subroutine_arg0); + phi_s0_5 = *sp70; + phi_v1_2 = num_chars_selectable_mp; + phi_s1_6 = temp_ret_10; + phi_v0 = temp_ret_10; + } + phi_s1_7 = phi_s1_6; + if (phi_s0_5 < (phi_v1_2 + -3)) + { + temp_ret_11 = sub_GAME_7F01231C(phi_s1_6, temp_s3, temp_s4, (temp_s6 - *sp74) + 0xfc, (s32) (phi_s0_5 + 3), (s32) subroutine_arg0); + phi_v0 = temp_ret_11; + phi_s1_7 = temp_ret_11; + } + } + } + else + { + goto block_21; + } + temp_t9 = spE0 + 1; + sp70 = (void *) (sp70 + 4); + sp74 = (void *) (sp74 + 4); + sp80 = (void *) (sp80 + 4); + spE0 = temp_t9; + sp88 = (void *) (sp88 + 4); + if (temp_t9 != spE4) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_7); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu0F_mpcharsel +/* 0472C4 7F012794 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0472C8 7F012798 AFBF0064 */ sw $ra, 0x64($sp) +/* 0472CC 7F01279C AFB10044 */ sw $s1, 0x44($sp) +/* 0472D0 7F0127A0 00808825 */ move $s1, $a0 +/* 0472D4 7F0127A4 AFBE0060 */ sw $fp, 0x60($sp) +/* 0472D8 7F0127A8 AFB7005C */ sw $s7, 0x5c($sp) +/* 0472DC 7F0127AC AFB60058 */ sw $s6, 0x58($sp) +/* 0472E0 7F0127B0 AFB50054 */ sw $s5, 0x54($sp) +/* 0472E4 7F0127B4 AFB40050 */ sw $s4, 0x50($sp) +/* 0472E8 7F0127B8 AFB3004C */ sw $s3, 0x4c($sp) +/* 0472EC 7F0127BC AFB20048 */ sw $s2, 0x48($sp) +/* 0472F0 7F0127C0 AFB00040 */ sw $s0, 0x40($sp) +/* 0472F4 7F0127C4 0FC040A4 */ jal get_selected_num_players +/* 0472F8 7F0127C8 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 0472FC 7F0127CC AFA200E4 */ sw $v0, 0xe4($sp) +/* 047300 7F0127D0 02202025 */ move $a0, $s1 +/* 047304 7F0127D4 00002825 */ move $a1, $zero +/* 047308 7F0127D8 00003025 */ move $a2, $zero +/* 04730C 7F0127DC 0C0011B4 */ jal set_setfillcolor +/* 047310 7F0127E0 00003825 */ move $a3, $zero +/* 047314 7F0127E4 0C000FBE */ jal insert_generic_fillrect +/* 047318 7F0127E8 00402025 */ move $a0, $v0 +/* 04731C 7F0127EC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 047320 7F0127F0 00402025 */ move $a0, $v0 +/* 047324 7F0127F4 0FC2B366 */ jal microcode_constructor +/* 047328 7F0127F8 00402025 */ move $a0, $v0 +/* 04732C 7F0127FC 240E00AB */ li $t6, 171 +/* 047330 7F012800 240F0090 */ li $t7, 144 +/* 047334 7F012804 AFAF0014 */ sw $t7, 0x14($sp) +/* 047338 7F012808 AFAE0010 */ sw $t6, 0x10($sp) +/* 04733C 7F01280C 00402025 */ move $a0, $v0 +/* 047340 7F012810 24050026 */ li $a1, 38 +/* 047344 7F012814 240600A9 */ li $a2, 169 +/* 047348 7F012818 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04734C 7F01281C 24070184 */ li $a3, 388 +/* 047350 7F012820 8FA800E4 */ lw $t0, 0xe4($sp) +/* 047354 7F012824 00408825 */ move $s1, $v0 +/* 047358 7F012828 02202025 */ move $a0, $s1 +/* 04735C 7F01282C 29010003 */ slti $at, $t0, 3 +/* 047360 7F012830 1420000A */ bnez $at, .L7F01285C +/* 047364 7F012834 240500D4 */ li $a1, 212 +/* 047368 7F012838 24180136 */ li $t8, 310 +/* 04736C 7F01283C 24190080 */ li $t9, 128 +/* 047370 7F012840 AFB90014 */ sw $t9, 0x14($sp) +/* 047374 7F012844 AFB80010 */ sw $t8, 0x10($sp) +/* 047378 7F012848 2406001E */ li $a2, 30 +/* 04737C 7F01284C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047380 7F012850 240700D6 */ li $a3, 214 +/* 047384 7F012854 00408825 */ move $s1, $v0 +/* 047388 7F012858 8FA800E4 */ lw $t0, 0xe4($sp) +.L7F01285C: +/* 04738C 7F01285C 19000165 */ blez $t0, .L7F012DF4 +/* 047390 7F012860 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 047394 7F012864 3C0A8007 */ lui $t2, %hi(mp_char_cur_select_player1) +/* 047398 7F012868 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80069730) +/* 04739C 7F01286C 3C0C8007 */ lui $t4, %hi(mp_char_prev_select_player1) +/* 0473A0 7F012870 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0473A4 7F012874 258C9720 */ addiu $t4, %lo(mp_char_prev_select_player1) # 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_player1) # addiu $t2, $t2, -0x68f0 +/* 0473B0 7F012880 25299740 */ addiu $t1, %lo(has_selected_char_player1) # 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 +/* 0473C0 7F012890 AFA90088 */ sw $t1, 0x88($sp) +/* 0473C4 7F012894 AFAA0080 */ sw $t2, 0x80($sp) +/* 0473C8 7F012898 AFAB0074 */ sw $t3, 0x74($sp) +/* 0473CC 7F01289C AFAC0070 */ sw $t4, 0x70($sp) +/* 0473D0 7F0128A0 AFA000E0 */ sw $zero, 0xe0($sp) +.L7F0128A4: +/* 0473D4 7F0128A4 8FA800E4 */ lw $t0, 0xe4($sp) +/* 0473D8 7F0128A8 8FA400E0 */ lw $a0, 0xe0($sp) +/* 0473DC 7F0128AC 24010002 */ li $at, 2 +/* 0473E0 7F0128B0 15010009 */ bne $t0, $at, .L7F0128D8 +/* 0473E4 7F0128B4 308D0001 */ andi $t5, $a0, 1 +/* 0473E8 7F0128B8 24120026 */ li $s2, 38 +/* 0473EC 7F0128BC 18800003 */ blez $a0, .L7F0128CC +/* 0473F0 7F0128C0 2414015E */ li $s4, 350 +/* 0473F4 7F0128C4 10000010 */ b .L7F012908 +/* 0473F8 7F0128C8 241700AA */ li $s7, 170 +.L7F0128CC: +/* 0473FC 7F0128CC 00001825 */ move $v1, $zero +/* 047400 7F0128D0 1000000D */ b .L7F012908 +/* 047404 7F0128D4 2477001E */ addiu $s7, $v1, 0x1e +.L7F0128D8: +/* 047408 7F0128D8 28810002 */ slti $at, $a0, 2 +/* 04740C 7F0128DC 14200003 */ bnez $at, .L7F0128EC +/* 047410 7F0128E0 241400AF */ li $s4, 175 +/* 047414 7F0128E4 10000002 */ b .L7F0128F0 +/* 047418 7F0128E8 2403008C */ li $v1, 140 +.L7F0128EC: +/* 04741C 7F0128EC 00001825 */ move $v1, $zero +.L7F0128F0: +/* 047420 7F0128F0 11A00003 */ beqz $t5, .L7F012900 +/* 047424 7F0128F4 2477001E */ addiu $s7, $v1, 0x1e +/* 047428 7F0128F8 10000002 */ b .L7F012904 +/* 04742C 7F0128FC 240300AF */ li $v1, 175 +.L7F012900: +/* 047430 7F012900 00001825 */ move $v1, $zero +.L7F012904: +/* 047434 7F012904 24720026 */ addiu $s2, $v1, 0x26 +.L7F012908: +/* 047438 7F012908 264E0006 */ addiu $t6, $s2, 6 +/* 04743C 7F01290C 448E2000 */ mtc1 $t6, $f4 +/* 047440 7F012910 26F00005 */ addiu $s0, $s7, 5 +/* 047444 7F012914 44908000 */ mtc1 $s0, $f16 +/* 047448 7F012918 468021A0 */ cvt.s.w $f6, $f4 +/* 04744C 7F01291C 02547821 */ addu $t7, $s2, $s4 +/* 047450 7F012920 3C01ED00 */ lui $at, 0xed00 +/* 047454 7F012924 24510008 */ addiu $s1, $v0, 8 +/* 047458 7F012928 468084A0 */ cvt.s.w $f18, $f16 +/* 04745C 7F01292C 46143202 */ mul.s $f8, $f6, $f20 +/* 047460 7F012930 4600428D */ trunc.w.s $f10, $f8 +/* 047464 7F012934 46149102 */ mul.s $f4, $f18, $f20 +/* 047468 7F012938 44185000 */ mfc1 $t8, $f10 +/* 04746C 7F01293C 00000000 */ nop +/* 047470 7F012940 33190FFF */ andi $t9, $t8, 0xfff +/* 047474 7F012944 4600218D */ trunc.w.s $f6, $f4 +/* 047478 7F012948 00194B00 */ sll $t1, $t9, 0xc +/* 04747C 7F01294C 25F9FFFA */ addiu $t9, $t7, -6 +/* 047480 7F012950 44994000 */ mtc1 $t9, $f8 +/* 047484 7F012954 440C3000 */ mfc1 $t4, $f6 +/* 047488 7F012958 01215025 */ or $t2, $t1, $at +/* 04748C 7F01295C 468042A0 */ cvt.s.w $f10, $f8 +/* 047490 7F012960 318D0FFF */ andi $t5, $t4, 0xfff +/* 047494 7F012964 014D7025 */ or $t6, $t2, $t5 +/* 047498 7F012968 26ED0087 */ addiu $t5, $s7, 0x87 +/* 04749C 7F01296C 448D2000 */ mtc1 $t5, $f4 +/* 0474A0 7F012970 AC4E0000 */ sw $t6, ($v0) +/* 0474A4 7F012974 46145402 */ mul.s $f16, $f10, $f20 +/* 0474A8 7F012978 AFAF008C */ sw $t7, 0x8c($sp) +/* 0474AC 7F01297C 468021A0 */ cvt.s.w $f6, $f4 +/* 0474B0 7F012980 4600848D */ trunc.w.s $f18, $f16 +/* 0474B4 7F012984 46143202 */ mul.s $f8, $f6, $f20 +/* 0474B8 7F012988 440B9000 */ mfc1 $t3, $f18 +/* 0474BC 7F01298C 00000000 */ nop +/* 0474C0 7F012990 316C0FFF */ andi $t4, $t3, 0xfff +/* 0474C4 7F012994 4600428D */ trunc.w.s $f10, $f8 +/* 0474C8 7F012998 000C5300 */ sll $t2, $t4, 0xc +/* 0474CC 7F01299C 440F5000 */ mfc1 $t7, $f10 +/* 0474D0 7F0129A0 00000000 */ nop +/* 0474D4 7F0129A4 31F80FFF */ andi $t8, $t7, 0xfff +/* 0474D8 7F0129A8 0158C825 */ or $t9, $t2, $t8 +/* 0474DC 7F0129AC AC590004 */ sw $t9, 4($v0) +/* 0474E0 7F0129B0 8FA90088 */ lw $t1, 0x88($sp) +/* 0474E4 7F0129B4 AFA400E0 */ sw $a0, 0xe0($sp) +/* 0474E8 7F0129B8 8D2B0000 */ lw $t3, ($t1) +/* 0474EC 7F0129BC 55600034 */ bnezl $t3, .L7F012A90 +/* 0474F0 7F0129C0 8FAE0080 */ lw $t6, 0x80($sp) +/* 0474F4 7F0129C4 8FCC0000 */ lw $t4, ($fp) +/* 0474F8 7F0129C8 AFA400E0 */ sw $a0, 0xe0($sp) +/* 0474FC 7F0129CC 55800030 */ bnezl $t4, .L7F012A90 +/* 047500 7F0129D0 8FAE0080 */ lw $t6, 0x80($sp) +/* 047504 7F0129D4 0FC30776 */ jal get_textptr_for_textID +/* 047508 7F0129D8 34049C55 */ li $a0, 40021 +/* 04750C 7F0129DC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 047510 7F0129E0 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 047514 7F0129E4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 047518 7F0129E8 00409825 */ move $s3, $v0 +/* 04751C 7F0129EC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 047520 7F0129F0 27A400BC */ addiu $a0, $sp, 0xbc +/* 047524 7F0129F4 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 047528 7F0129F8 00403025 */ move $a2, $v0 +/* 04752C 7F0129FC AFA00014 */ sw $zero, 0x14($sp) +/* 047530 7F012A00 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047534 7F012A04 AFAD0010 */ sw $t5, 0x10($sp) +/* 047538 7F012A08 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 04753C 7F012A0C 00147043 */ sra $t6, $s4, 1 +/* 047540 7F012A10 01D27821 */ addu $t7, $t6, $s2 +/* 047544 7F012A14 000AC043 */ sra $t8, $t2, 1 +/* 047548 7F012A18 01F8C823 */ subu $t9, $t7, $t8 +/* 04754C 7F012A1C AFB900B4 */ sw $t9, 0xb4($sp) +/* 047550 7F012A20 AFB000B0 */ sw $s0, 0xb0($sp) +/* 047554 7F012A24 0FC2B366 */ jal microcode_constructor +/* 047558 7F012A28 02202025 */ move $a0, $s1 +/* 04755C 7F012A2C 0C001107 */ jal get_video2_settings_txtClipW +/* 047560 7F012A30 00408825 */ move $s1, $v0 +/* 047564 7F012A34 00028400 */ sll $s0, $v0, 0x10 +/* 047568 7F012A38 00104C03 */ sra $t1, $s0, 0x10 +/* 04756C 7F012A3C 0C00110B */ jal get_video2_settings_txtClipH +/* 047570 7F012A40 01208025 */ move $s0, $t1 +/* 047574 7F012A44 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 047578 7F012A48 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04757C 7F012A4C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 047580 7F012A50 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 047584 7F012A54 240D00FF */ li $t5, 255 +/* 047588 7F012A58 AFAD0018 */ sw $t5, 0x18($sp) +/* 04758C 7F012A5C 02202025 */ move $a0, $s1 +/* 047590 7F012A60 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 047594 7F012A64 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 047598 7F012A68 02603825 */ move $a3, $s3 +/* 04759C 7F012A6C AFB0001C */ sw $s0, 0x1c($sp) +/* 0475A0 7F012A70 AFA20020 */ sw $v0, 0x20($sp) +/* 0475A4 7F012A74 AFA00024 */ sw $zero, 0x24($sp) +/* 0475A8 7F012A78 AFA00028 */ sw $zero, 0x28($sp) +/* 0475AC 7F012A7C AFAC0014 */ sw $t4, 0x14($sp) +/* 0475B0 7F012A80 0FC025D8 */ jal write_text_at_abs_coord +/* 0475B4 7F012A84 AFAB0010 */ sw $t3, 0x10($sp) +/* 0475B8 7F012A88 00408825 */ move $s1, $v0 +/* 0475BC 7F012A8C 8FAE0080 */ lw $t6, 0x80($sp) +.L7F012A90: +/* 0475C0 7F012A90 3C048003 */ lui $a0, %hi(mp_chr_setup) +/* 0475C4 7F012A94 0014C043 */ sra $t8, $s4, 1 +/* 0475C8 7F012A98 8DCA0000 */ lw $t2, ($t6) +/* 0475CC 7F012A9C 0312B021 */ addu $s6, $t8, $s2 +/* 0475D0 7F012AA0 000A7880 */ sll $t7, $t2, 2 +/* 0475D4 7F012AA4 01EA7823 */ subu $t7, $t7, $t2 +/* 0475D8 7F012AA8 000F7880 */ sll $t7, $t7, 2 +/* 0475DC 7F012AAC 008F2021 */ addu $a0, $a0, $t7 +/* 0475E0 7F012AB0 0FC30776 */ jal get_textptr_for_textID +/* 0475E4 7F012AB4 9484B198 */ lhu $a0, %lo(mp_chr_setup)($a0) +/* 0475E8 7F012AB8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0475EC 7F012ABC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0475F0 7F012AC0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0475F4 7F012AC4 00409825 */ move $s3, $v0 +/* 0475F8 7F012AC8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0475FC 7F012ACC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 047600 7F012AD0 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 047604 7F012AD4 00403025 */ move $a2, $v0 +/* 047608 7F012AD8 AFA00014 */ sw $zero, 0x14($sp) +/* 04760C 7F012ADC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047610 7F012AE0 AFB90010 */ sw $t9, 0x10($sp) +/* 047614 7F012AE4 8FA900A4 */ lw $t1, 0xa4($sp) +/* 047618 7F012AE8 26ED0078 */ addiu $t5, $s7, 0x78 +/* 04761C 7F012AEC AFAD009C */ sw $t5, 0x9c($sp) +/* 047620 7F012AF0 00095843 */ sra $t3, $t1, 1 +/* 047624 7F012AF4 02CB6023 */ subu $t4, $s6, $t3 +/* 047628 7F012AF8 AFAC00A0 */ sw $t4, 0xa0($sp) +/* 04762C 7F012AFC 0FC2B366 */ jal microcode_constructor +/* 047630 7F012B00 02202025 */ move $a0, $s1 +/* 047634 7F012B04 0C001107 */ jal get_video2_settings_txtClipW +/* 047638 7F012B08 00408825 */ move $s1, $v0 +/* 04763C 7F012B0C 00028400 */ sll $s0, $v0, 0x10 +/* 047640 7F012B10 00107403 */ sra $t6, $s0, 0x10 +/* 047644 7F012B14 0C00110B */ jal get_video2_settings_txtClipH +/* 047648 7F012B18 01C08025 */ move $s0, $t6 +/* 04764C 7F012B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 047650 7F012B20 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 047654 7F012B24 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 047658 7F012B28 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04765C 7F012B2C 241800FF */ li $t8, 255 +/* 047660 7F012B30 AFB80018 */ sw $t8, 0x18($sp) +/* 047664 7F012B34 02202025 */ move $a0, $s1 +/* 047668 7F012B38 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 04766C 7F012B3C 27A6009C */ addiu $a2, $sp, 0x9c +/* 047670 7F012B40 02603825 */ move $a3, $s3 +/* 047674 7F012B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 047678 7F012B48 AFA20020 */ sw $v0, 0x20($sp) +/* 04767C 7F012B4C AFA00024 */ sw $zero, 0x24($sp) +/* 047680 7F012B50 AFA00028 */ sw $zero, 0x28($sp) +/* 047684 7F012B54 AFAF0014 */ sw $t7, 0x14($sp) +/* 047688 7F012B58 0FC025D8 */ jal write_text_at_abs_coord +/* 04768C 7F012B5C AFAA0010 */ sw $t2, 0x10($sp) +/* 047690 7F012B60 8FB90074 */ lw $t9, 0x74($sp) +/* 047694 7F012B64 8FAB0070 */ lw $t3, 0x70($sp) +/* 047698 7F012B68 8FB4008C */ lw $s4, 0x8c($sp) +/* 04769C 7F012B6C 8F290000 */ lw $t1, ($t9) +/* 0476A0 7F012B70 26F50046 */ addiu $s5, $s7, 0x46 +/* 0476A4 7F012B74 AFB50010 */ sw $s5, 0x10($sp) +/* 0476A8 7F012B78 8FCD0000 */ lw $t5, ($fp) +/* 0476AC 7F012B7C 8D6C0000 */ lw $t4, ($t3) +/* 0476B0 7F012B80 2653000D */ addiu $s3, $s2, 0xd +/* 0476B4 7F012B84 2694FFF2 */ addiu $s4, $s4, -0xe +/* 0476B8 7F012B88 02803025 */ move $a2, $s4 +/* 0476BC 7F012B8C 02602825 */ move $a1, $s3 +/* 0476C0 7F012B90 00402025 */ move $a0, $v0 +/* 0476C4 7F012B94 02C93823 */ subu $a3, $s6, $t1 +/* 0476C8 7F012B98 AFAD0018 */ sw $t5, 0x18($sp) +/* 0476CC 7F012B9C 0FC048C7 */ jal sub_GAME_7F01231C +/* 0476D0 7F012BA0 AFAC0014 */ sw $t4, 0x14($sp) +/* 0476D4 7F012BA4 8FAE0088 */ lw $t6, 0x88($sp) +/* 0476D8 7F012BA8 00408825 */ move $s1, $v0 +/* 0476DC 7F012BAC 8FB80070 */ lw $t8, 0x70($sp) +/* 0476E0 7F012BB0 8DCA0000 */ lw $t2, ($t6) +/* 0476E4 7F012BB4 8FA90080 */ lw $t1, 0x80($sp) +/* 0476E8 7F012BB8 55400005 */ bnezl $t2, .L7F012BD0 +/* 0476EC 7F012BBC 8F190000 */ lw $t9, ($t8) +/* 0476F0 7F012BC0 8FCF0000 */ lw $t7, ($fp) +/* 0476F4 7F012BC4 51E00006 */ beql $t7, $zero, .L7F012BE0 +/* 0476F8 7F012BC8 8FAC0070 */ lw $t4, 0x70($sp) +/* 0476FC 7F012BCC 8F190000 */ lw $t9, ($t8) +.L7F012BD0: +/* 047700 7F012BD0 8D2B0000 */ lw $t3, ($t1) +/* 047704 7F012BD4 532B0076 */ beql $t9, $t3, .L7F012DB0 +/* 047708 7F012BD8 8FAB0088 */ lw $t3, 0x88($sp) +/* 04770C 7F012BDC 8FAC0070 */ lw $t4, 0x70($sp) +.L7F012BE0: +/* 047710 7F012BE0 02202025 */ move $a0, $s1 +/* 047714 7F012BE4 02602825 */ move $a1, $s3 +/* 047718 7F012BE8 8D900000 */ lw $s0, ($t4) +/* 04771C 7F012BEC 02803025 */ move $a2, $s4 +/* 047720 7F012BF0 8FAD0074 */ lw $t5, 0x74($sp) +/* 047724 7F012BF4 2A010003 */ slti $at, $s0, 3 +/* 047728 7F012BF8 1420000C */ bnez $at, .L7F012C2C +/* 04772C 7F012BFC 260AFFFD */ addiu $t2, $s0, -3 +/* 047730 7F012C00 8DAE0000 */ lw $t6, ($t5) +/* 047734 7F012C04 8FCF0000 */ lw $t7, ($fp) +/* 047738 7F012C08 AFAA0014 */ sw $t2, 0x14($sp) +/* 04773C 7F012C0C 02CE3823 */ subu $a3, $s6, $t6 +/* 047740 7F012C10 24E7FF04 */ addiu $a3, $a3, -0xfc +/* 047744 7F012C14 AFB50010 */ sw $s5, 0x10($sp) +/* 047748 7F012C18 0FC048C7 */ jal sub_GAME_7F01231C +/* 04774C 7F012C1C AFAF0018 */ sw $t7, 0x18($sp) +/* 047750 7F012C20 8FB80070 */ lw $t8, 0x70($sp) +/* 047754 7F012C24 00408825 */ move $s1, $v0 +/* 047758 7F012C28 8F100000 */ lw $s0, ($t8) +.L7F012C2C: +/* 04775C 7F012C2C 2A010002 */ slti $at, $s0, 2 +/* 047760 7F012C30 14200010 */ bnez $at, .L7F012C74 +/* 047764 7F012C34 02202025 */ move $a0, $s1 +/* 047768 7F012C38 8FA90074 */ lw $t1, 0x74($sp) +/* 04776C 7F012C3C 8FCC0000 */ lw $t4, ($fp) +/* 047770 7F012C40 260BFFFE */ addiu $t3, $s0, -2 +/* 047774 7F012C44 8D390000 */ lw $t9, ($t1) +/* 047778 7F012C48 AFAB0014 */ sw $t3, 0x14($sp) +/* 04777C 7F012C4C AFB50010 */ sw $s5, 0x10($sp) +/* 047780 7F012C50 02D93823 */ subu $a3, $s6, $t9 +/* 047784 7F012C54 24E7FF58 */ addiu $a3, $a3, -0xa8 +/* 047788 7F012C58 02602825 */ move $a1, $s3 +/* 04778C 7F012C5C 02803025 */ move $a2, $s4 +/* 047790 7F012C60 0FC048C7 */ jal sub_GAME_7F01231C +/* 047794 7F012C64 AFAC0018 */ sw $t4, 0x18($sp) +/* 047798 7F012C68 8FAD0070 */ lw $t5, 0x70($sp) +/* 04779C 7F012C6C 00408825 */ move $s1, $v0 +/* 0477A0 7F012C70 8DB00000 */ lw $s0, ($t5) +.L7F012C74: +/* 0477A4 7F012C74 1A000010 */ blez $s0, .L7F012CB8 +/* 0477A8 7F012C78 02202025 */ move $a0, $s1 +/* 0477AC 7F012C7C 8FAE0074 */ lw $t6, 0x74($sp) +/* 0477B0 7F012C80 8FD80000 */ lw $t8, ($fp) +/* 0477B4 7F012C84 260FFFFF */ addiu $t7, $s0, -1 +/* 0477B8 7F012C88 8DCA0000 */ lw $t2, ($t6) +/* 0477BC 7F012C8C AFAF0014 */ sw $t7, 0x14($sp) +/* 0477C0 7F012C90 AFB50010 */ sw $s5, 0x10($sp) +/* 0477C4 7F012C94 02CA3823 */ subu $a3, $s6, $t2 +/* 0477C8 7F012C98 24E7FFAC */ addiu $a3, $a3, -0x54 +/* 0477CC 7F012C9C 02602825 */ move $a1, $s3 +/* 0477D0 7F012CA0 02803025 */ move $a2, $s4 +/* 0477D4 7F012CA4 0FC048C7 */ jal sub_GAME_7F01231C +/* 0477D8 7F012CA8 AFB80018 */ sw $t8, 0x18($sp) +/* 0477DC 7F012CAC 8FA90070 */ lw $t1, 0x70($sp) +/* 0477E0 7F012CB0 00408825 */ move $s1, $v0 +/* 0477E4 7F012CB4 8D300000 */ lw $s0, ($t1) +.L7F012CB8: +/* 0477E8 7F012CB8 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 0477EC 7F012CBC 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 0477F0 7F012CC0 02202025 */ move $a0, $s1 +/* 0477F4 7F012CC4 02602825 */ move $a1, $s3 +/* 0477F8 7F012CC8 2479FFFF */ addiu $t9, $v1, -1 +/* 0477FC 7F012CCC 0219082A */ slt $at, $s0, $t9 +/* 047800 7F012CD0 10200010 */ beqz $at, .L7F012D14 +/* 047804 7F012CD4 02803025 */ move $a2, $s4 +/* 047808 7F012CD8 8FAB0074 */ lw $t3, 0x74($sp) +/* 04780C 7F012CDC 8FCE0000 */ lw $t6, ($fp) +/* 047810 7F012CE0 260D0001 */ addiu $t5, $s0, 1 +/* 047814 7F012CE4 8D6C0000 */ lw $t4, ($t3) +/* 047818 7F012CE8 AFAD0014 */ sw $t5, 0x14($sp) +/* 04781C 7F012CEC AFB50010 */ sw $s5, 0x10($sp) +/* 047820 7F012CF0 02CC3823 */ subu $a3, $s6, $t4 +/* 047824 7F012CF4 24E70054 */ addiu $a3, $a3, 0x54 +/* 047828 7F012CF8 0FC048C7 */ jal sub_GAME_7F01231C +/* 04782C 7F012CFC AFAE0018 */ sw $t6, 0x18($sp) +/* 047830 7F012D00 8FAA0070 */ lw $t2, 0x70($sp) +/* 047834 7F012D04 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 047838 7F012D08 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 04783C 7F012D0C 00408825 */ move $s1, $v0 +/* 047840 7F012D10 8D500000 */ lw $s0, ($t2) +.L7F012D14: +/* 047844 7F012D14 246FFFFE */ addiu $t7, $v1, -2 +/* 047848 7F012D18 020F082A */ slt $at, $s0, $t7 +/* 04784C 7F012D1C 10200012 */ beqz $at, .L7F012D68 +/* 047850 7F012D20 02202025 */ move $a0, $s1 +/* 047854 7F012D24 8FB80074 */ lw $t8, 0x74($sp) +/* 047858 7F012D28 8FCB0000 */ lw $t3, ($fp) +/* 04785C 7F012D2C 26190002 */ addiu $t9, $s0, 2 +/* 047860 7F012D30 8F090000 */ lw $t1, ($t8) +/* 047864 7F012D34 AFB90014 */ sw $t9, 0x14($sp) +/* 047868 7F012D38 AFB50010 */ sw $s5, 0x10($sp) +/* 04786C 7F012D3C 02C93823 */ subu $a3, $s6, $t1 +/* 047870 7F012D40 24E700A8 */ addiu $a3, $a3, 0xa8 +/* 047874 7F012D44 02602825 */ move $a1, $s3 +/* 047878 7F012D48 02803025 */ move $a2, $s4 +/* 04787C 7F012D4C 0FC048C7 */ jal sub_GAME_7F01231C +/* 047880 7F012D50 AFAB0018 */ sw $t3, 0x18($sp) +/* 047884 7F012D54 8FAC0070 */ lw $t4, 0x70($sp) +/* 047888 7F012D58 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 04788C 7F012D5C 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 047890 7F012D60 00408825 */ move $s1, $v0 +/* 047894 7F012D64 8D900000 */ lw $s0, ($t4) +.L7F012D68: +/* 047898 7F012D68 246DFFFD */ addiu $t5, $v1, -3 +/* 04789C 7F012D6C 020D082A */ slt $at, $s0, $t5 +/* 0478A0 7F012D70 1020000E */ beqz $at, .L7F012DAC +/* 0478A4 7F012D74 02202025 */ move $a0, $s1 +/* 0478A8 7F012D78 8FAE0074 */ lw $t6, 0x74($sp) +/* 0478AC 7F012D7C 8FD80000 */ lw $t8, ($fp) +/* 0478B0 7F012D80 260F0003 */ addiu $t7, $s0, 3 +/* 0478B4 7F012D84 8DCA0000 */ lw $t2, ($t6) +/* 0478B8 7F012D88 AFAF0014 */ sw $t7, 0x14($sp) +/* 0478BC 7F012D8C AFB50010 */ sw $s5, 0x10($sp) +/* 0478C0 7F012D90 02CA3823 */ subu $a3, $s6, $t2 +/* 0478C4 7F012D94 24E700FC */ addiu $a3, $a3, 0xfc +/* 0478C8 7F012D98 02602825 */ move $a1, $s3 +/* 0478CC 7F012D9C 02803025 */ move $a2, $s4 +/* 0478D0 7F012DA0 0FC048C7 */ jal sub_GAME_7F01231C +/* 0478D4 7F012DA4 AFB80018 */ sw $t8, 0x18($sp) +/* 0478D8 7F012DA8 00408825 */ move $s1, $v0 +.L7F012DAC: +/* 0478DC 7F012DAC 8FAB0088 */ lw $t3, 0x88($sp) +.L7F012DB0: +/* 0478E0 7F012DB0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0478E4 7F012DB4 8FAD0080 */ lw $t5, 0x80($sp) +/* 0478E8 7F012DB8 8FAA0074 */ lw $t2, 0x74($sp) +/* 0478EC 7F012DBC 8FB80070 */ lw $t8, 0x70($sp) +/* 0478F0 7F012DC0 256C0004 */ addiu $t4, $t3, 4 +/* 0478F4 7F012DC4 8FAB00E4 */ lw $t3, 0xe4($sp) +/* 0478F8 7F012DC8 25390001 */ addiu $t9, $t1, 1 +/* 0478FC 7F012DCC 25AE0004 */ addiu $t6, $t5, 4 +/* 047900 7F012DD0 254F0004 */ addiu $t7, $t2, 4 +/* 047904 7F012DD4 27090004 */ addiu $t1, $t8, 4 +/* 047908 7F012DD8 AFA90070 */ sw $t1, 0x70($sp) +/* 04790C 7F012DDC AFAF0074 */ sw $t7, 0x74($sp) +/* 047910 7F012DE0 AFAE0080 */ sw $t6, 0x80($sp) +/* 047914 7F012DE4 AFB900E0 */ sw $t9, 0xe0($sp) +/* 047918 7F012DE8 AFAC0088 */ sw $t4, 0x88($sp) +/* 04791C 7F012DEC 172BFEAD */ bne $t9, $t3, .L7F0128A4 +/* 047920 7F012DF0 27DE0004 */ addiu $fp, $fp, 4 +.L7F012DF4: +/* 047924 7F012DF4 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 047928 7F012DF8 02202025 */ move $a0, $s1 +/* 04792C 7F012DFC 8FBF0064 */ lw $ra, 0x64($sp) +/* 047930 7F012E00 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 047934 7F012E04 8FB00040 */ lw $s0, 0x40($sp) +/* 047938 7F012E08 8FB10044 */ lw $s1, 0x44($sp) +/* 04793C 7F012E0C 8FB20048 */ lw $s2, 0x48($sp) +/* 047940 7F012E10 8FB3004C */ lw $s3, 0x4c($sp) +/* 047944 7F012E14 8FB40050 */ lw $s4, 0x50($sp) +/* 047948 7F012E18 8FB50054 */ lw $s5, 0x54($sp) +/* 04794C 7F012E1C 8FB60058 */ lw $s6, 0x58($sp) +/* 047950 7F012E20 8FB7005C */ lw $s7, 0x5c($sp) +/* 047954 7F012E24 8FBE0060 */ lw $fp, 0x60($sp) +/* 047958 7F012E28 03E00008 */ jr $ra +/* 04795C 7F012E2C 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + + + +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(); +} + +void update_menu10_mphandicap(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu10_mphandicap(void) +{ + s32 sp44; + s32 temp_s3; + s32 temp_t9; + void *temp_s2; + void *temp_v0; + void *temp_v0_2; + void *phi_s1; + s32 phi_s3; + s32 phi_s4; + s32 phi_fp; + s32 phi_fp_2; + + sp44 = get_selected_num_players(); + setvideo_far(0x42700000); + video_related_21(D_80051A90); + set_page_height(0x42c80000, D_80051A94); + set_video2_settings_offset_24(0); + phi_fp = 0; + if (sp44 > 0) + { + phi_s1 = &has_selected_char_player1; + phi_s3 = 0; + phi_s4 = 0; + phi_fp_2 = 0; +loop_2: + if (*phi_s1 != 0) + { + if (get_controller_buttons_pressed((s32) (phi_s3 << 0x18) >> 0x18, 0x4000) != 0) + { + *phi_s1 = 0; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + temp_t9 = (s32) (phi_s3 << 0x18) >> 0x18; + if (*phi_s1 == 0) + { + temp_s2 = phi_s4 + &handicap_player1; + if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) < -1)) + { + if ((*temp_s2 != 0) && (*temp_v0 > 0)) + { +block_10: + *temp_v0 = (s32) (*temp_v0 + -1); + } + else + { + if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) > 0)) + { + if ((*temp_s2 != 0) && (*temp_v0_2 < 0xa)) + { +block_15: + *temp_v0_2 = (s32) (*temp_v0_2 + 1); + } + else + { + if (get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0xb000) != 0) + { + *phi_s1 = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + temp_v0_2 = &handicap_player1 + phi_s4; + if (*temp_v0_2 < 0xa) + { + goto block_15; + } + } + } + } + else + { + temp_v0 = &handicap_player1 + phi_s4; + if (*temp_v0 > 0) + { + goto block_10; + } + } + if ((get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == 0)) + { + *temp_s2 = 1; + } + else + { + *temp_s2 = 0; + } + } + if (*phi_s1 != 0) + { + + } + temp_s3 = phi_s3 + 1; + phi_s1 = phi_s1 + 4; + phi_s3 = temp_s3; + phi_s4 = phi_s4 + 4; + phi_fp = phi_fp_2; + phi_fp_2 = phi_fp_2; + if (temp_s3 != sp44) + { + 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); + menu_control_stick_tracking(); + if (phi_fp == sp44) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A90 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A94 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu10_mphandicap +/* 0479F4 7F012EC4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0479F8 7F012EC8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0479FC 7F012ECC AFBE0038 */ sw $fp, 0x38($sp) +/* 047A00 7F012ED0 AFB70034 */ sw $s7, 0x34($sp) +/* 047A04 7F012ED4 AFB60030 */ sw $s6, 0x30($sp) +/* 047A08 7F012ED8 AFB5002C */ sw $s5, 0x2c($sp) +/* 047A0C 7F012EDC AFB40028 */ sw $s4, 0x28($sp) +/* 047A10 7F012EE0 AFB30024 */ sw $s3, 0x24($sp) +/* 047A14 7F012EE4 AFB20020 */ sw $s2, 0x20($sp) +/* 047A18 7F012EE8 AFB1001C */ sw $s1, 0x1c($sp) +/* 047A1C 7F012EEC 0FC040A4 */ jal get_selected_num_players +/* 047A20 7F012EF0 AFB00018 */ sw $s0, 0x18($sp) +/* 047A24 7F012EF4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 047A28 7F012EF8 44816000 */ mtc1 $at, $f12 +/* 047A2C 7F012EFC AFA20044 */ sw $v0, 0x44($sp) +/* 047A30 7F012F00 0C001151 */ jal setvideo_far +/* 047A34 7F012F04 0000F025 */ move $fp, $zero +/* 047A38 7F012F08 3C018005 */ lui $at, %hi(D_80051A90) +/* 047A3C 7F012F0C 0C001164 */ jal video_related_21 +/* 047A40 7F012F10 C42C1A90 */ lwc1 $f12, %lo(D_80051A90)($at) +/* 047A44 7F012F14 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 047A48 7F012F18 44816000 */ mtc1 $at, $f12 +/* 047A4C 7F012F1C 3C018005 */ lui $at, %hi(D_80051A94) +/* 047A50 7F012F20 0C001194 */ jal set_page_height +/* 047A54 7F012F24 C42E1A94 */ lwc1 $f14, %lo(D_80051A94)($at) +/* 047A58 7F012F28 0C00114D */ jal set_video2_settings_offset_24 +/* 047A5C 7F012F2C 00002025 */ move $a0, $zero +/* 047A60 7F012F30 8FAE0044 */ lw $t6, 0x44($sp) +/* 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) +/* 047A78 7F012F48 3C158006 */ lui $s5, %hi(ptr_sfx_buf) +/* 047A7C 7F012F4C 26B53720 */ addiu $s5, %lo(ptr_sfx_buf) # addiu $s5, $s5, 0x3720 +/* 047A80 7F012F50 26D697A8 */ addiu $s6, %lo(handicap_player1) # addiu $s6, $s6, -0x6858 +/* 047A84 7F012F54 26319740 */ addiu $s1, %lo(has_selected_char_player1) # addiu $s1, $s1, -0x68c0 +/* 047A88 7F012F58 24170001 */ li $s7, 1 +.L7F012F5C: +/* 047A8C 7F012F5C 8E2F0000 */ lw $t7, ($s1) +/* 047A90 7F012F60 00132600 */ sll $a0, $s3, 0x18 +/* 047A94 7F012F64 0004C603 */ sra $t8, $a0, 0x18 +/* 047A98 7F012F68 11E00009 */ beqz $t7, .L7F012F90 +/* 047A9C 7F012F6C 03002025 */ move $a0, $t8 +/* 047AA0 7F012F70 0C0030EB */ jal get_controller_buttons_pressed +/* 047AA4 7F012F74 24054000 */ li $a1, 16384 +/* 047AA8 7F012F78 10400005 */ beqz $v0, .L7F012F90 +/* 047AAC 7F012F7C 240500C7 */ li $a1, 199 +/* 047AB0 7F012F80 AE200000 */ sw $zero, ($s1) +/* 047AB4 7F012F84 8EA40000 */ lw $a0, ($s5) +/* 047AB8 7F012F88 0C002382 */ jal play_sfx_a1 +/* 047ABC 7F012F8C 00003025 */ move $a2, $zero +.L7F012F90: +/* 047AC0 7F012F90 8E220000 */ lw $v0, ($s1) +/* 047AC4 7F012F94 00138600 */ sll $s0, $s3, 0x18 +/* 047AC8 7F012F98 0010CE03 */ sra $t9, $s0, 0x18 +/* 047ACC 7F012F9C 14400050 */ bnez $v0, .L7F0130E0 +/* 047AD0 7F012FA0 03208025 */ move $s0, $t9 +/* 047AD4 7F012FA4 00192600 */ sll $a0, $t9, 0x18 +/* 047AD8 7F012FA8 3C098007 */ lui $t1, %hi(dword_CODE_bss_80069760) +/* 047ADC 7F012FAC 25299760 */ addiu $t1, $t1, %lo(dword_CODE_bss_80069760) +/* 047AE0 7F012FB0 00044603 */ sra $t0, $a0, 0x18 +/* 047AE4 7F012FB4 01002025 */ move $a0, $t0 +/* 047AE8 7F012FB8 02899021 */ addu $s2, $s4, $t1 +/* 047AEC 7F012FBC 0C0030EB */ jal get_controller_buttons_pressed +/* 047AF0 7F012FC0 24050202 */ li $a1, 514 +/* 047AF4 7F012FC4 1440000B */ bnez $v0, .L7F012FF4 +/* 047AF8 7F012FC8 00102600 */ sll $a0, $s0, 0x18 +/* 047AFC 7F012FCC 00045603 */ sra $t2, $a0, 0x18 +/* 047B00 7F012FD0 01402025 */ move $a0, $t2 +/* 047B04 7F012FD4 2405FFFE */ li $a1, -2 +/* 047B08 7F012FD8 0C00312D */ jal get_controller_3dstick_L_R +/* 047B0C 7F012FDC 02E03025 */ move $a2, $s7 +/* 047B10 7F012FE0 2841FFFF */ slti $at, $v0, -1 +/* 047B14 7F012FE4 10200009 */ beqz $at, .L7F01300C +/* 047B18 7F012FE8 00102600 */ sll $a0, $s0, 0x18 +/* 047B1C 7F012FEC 8E4B0000 */ lw $t3, ($s2) +/* 047B20 7F012FF0 11600006 */ beqz $t3, .L7F01300C +.L7F012FF4: +/* 047B24 7F012FF4 02D41021 */ addu $v0, $s6, $s4 +/* 047B28 7F012FF8 8C430000 */ lw $v1, ($v0) +/* 047B2C 7F012FFC 18600023 */ blez $v1, .L7F01308C +/* 047B30 7F013000 246CFFFF */ addiu $t4, $v1, -1 +/* 047B34 7F013004 10000021 */ b .L7F01308C +/* 047B38 7F013008 AC4C0000 */ sw $t4, ($v0) +.L7F01300C: +/* 047B3C 7F01300C 00046E03 */ sra $t5, $a0, 0x18 +/* 047B40 7F013010 01A02025 */ move $a0, $t5 +/* 047B44 7F013014 0C0030EB */ jal get_controller_buttons_pressed +/* 047B48 7F013018 24050101 */ li $a1, 257 +/* 047B4C 7F01301C 1440000A */ bnez $v0, .L7F013048 +/* 047B50 7F013020 00102600 */ sll $a0, $s0, 0x18 +/* 047B54 7F013024 00047603 */ sra $t6, $a0, 0x18 +/* 047B58 7F013028 01C02025 */ move $a0, $t6 +/* 047B5C 7F01302C 2405FFFE */ li $a1, -2 +/* 047B60 7F013030 0C00312D */ jal get_controller_3dstick_L_R +/* 047B64 7F013034 02E03025 */ move $a2, $s7 +/* 047B68 7F013038 1840000A */ blez $v0, .L7F013064 +/* 047B6C 7F01303C 00102600 */ sll $a0, $s0, 0x18 +/* 047B70 7F013040 8E4F0000 */ lw $t7, ($s2) +/* 047B74 7F013044 11E00007 */ beqz $t7, .L7F013064 +.L7F013048: +/* 047B78 7F013048 02D41021 */ addu $v0, $s6, $s4 +/* 047B7C 7F01304C 8C430000 */ lw $v1, ($v0) +/* 047B80 7F013050 2861000A */ slti $at, $v1, 0xa +/* 047B84 7F013054 1020000D */ beqz $at, .L7F01308C +/* 047B88 7F013058 24780001 */ addiu $t8, $v1, 1 +/* 047B8C 7F01305C 1000000B */ b .L7F01308C +/* 047B90 7F013060 AC580000 */ sw $t8, ($v0) +.L7F013064: +/* 047B94 7F013064 0004CE03 */ sra $t9, $a0, 0x18 +/* 047B98 7F013068 03202025 */ move $a0, $t9 +/* 047B9C 7F01306C 0C0030EB */ jal get_controller_buttons_pressed +/* 047BA0 7F013070 3405B000 */ li $a1, 45056 +/* 047BA4 7F013074 10400005 */ beqz $v0, .L7F01308C +/* 047BA8 7F013078 240500C7 */ li $a1, 199 +/* 047BAC 7F01307C AE370000 */ sw $s7, ($s1) +/* 047BB0 7F013080 8EA40000 */ lw $a0, ($s5) +/* 047BB4 7F013084 0C002382 */ jal play_sfx_a1 +/* 047BB8 7F013088 00003025 */ move $a2, $zero +.L7F01308C: +/* 047BBC 7F01308C 00102600 */ sll $a0, $s0, 0x18 +/* 047BC0 7F013090 00044603 */ sra $t0, $a0, 0x18 +/* 047BC4 7F013094 01002025 */ move $a0, $t0 +/* 047BC8 7F013098 2405FFFE */ li $a1, -2 +/* 047BCC 7F01309C 0C00312D */ jal get_controller_3dstick_L_R +/* 047BD0 7F0130A0 02E03025 */ move $a2, $s7 +/* 047BD4 7F0130A4 2401FFFF */ li $at, -1 +/* 047BD8 7F0130A8 10410008 */ beq $v0, $at, .L7F0130CC +/* 047BDC 7F0130AC 00102600 */ sll $a0, $s0, 0x18 +/* 047BE0 7F0130B0 00044E03 */ sra $t1, $a0, 0x18 +/* 047BE4 7F0130B4 01202025 */ move $a0, $t1 +/* 047BE8 7F0130B8 2405FFFE */ li $a1, -2 +/* 047BEC 7F0130BC 0C00312D */ jal get_controller_3dstick_L_R +/* 047BF0 7F0130C0 02E03025 */ move $a2, $s7 +/* 047BF4 7F0130C4 54400005 */ bnezl $v0, .L7F0130DC +/* 047BF8 7F0130C8 AE400000 */ sw $zero, ($s2) +.L7F0130CC: +/* 047BFC 7F0130CC AE570000 */ sw $s7, ($s2) +/* 047C00 7F0130D0 10000003 */ b .L7F0130E0 +/* 047C04 7F0130D4 8E220000 */ lw $v0, ($s1) +/* 047C08 7F0130D8 AE400000 */ sw $zero, ($s2) +.L7F0130DC: +/* 047C0C 7F0130DC 8E220000 */ lw $v0, ($s1) +.L7F0130E0: +/* 047C10 7F0130E0 10400002 */ beqz $v0, .L7F0130EC +/* 047C14 7F0130E4 8FAA0044 */ lw $t2, 0x44($sp) +/* 047C18 7F0130E8 27DE0001 */ addiu $fp, $fp, 1 +.L7F0130EC: +/* 047C1C 7F0130EC 26730001 */ addiu $s3, $s3, 1 +/* 047C20 7F0130F0 26940004 */ addiu $s4, $s4, 4 +/* 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 +/* 047C34 7F013104 0FC02DC9 */ jal disable_all_switches +/* 047C38 7F013108 8E040000 */ lw $a0, ($s0) +/* 047C3C 7F01310C 8E040000 */ lw $a0, ($s0) +/* 047C40 7F013110 00002825 */ move $a1, $zero +/* 047C44 7F013114 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 047C48 7F013118 24060001 */ li $a2, 1 +/* 047C4C 7F01311C 8E040000 */ lw $a0, ($s0) +/* 047C50 7F013120 2405002A */ li $a1, 42 +/* 047C54 7F013124 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 047C58 7F013128 24060001 */ li $a2, 1 +/* 047C5C 7F01312C 0FC026E1 */ jal menu_control_stick_tracking +/* 047C60 7F013130 00000000 */ nop +/* 047C64 7F013134 8FAB0044 */ lw $t3, 0x44($sp) +/* 047C68 7F013138 2404000E */ li $a0, 14 +/* 047C6C 7F01313C 57CB0004 */ bnel $fp, $t3, .L7F013150 +/* 047C70 7F013140 8FBF003C */ lw $ra, 0x3c($sp) +/* 047C74 7F013144 0FC06975 */ jal set_menu_to_mode +/* 047C78 7F013148 00002825 */ move $a1, $zero +/* 047C7C 7F01314C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013150: +/* 047C80 7F013150 8FB00018 */ lw $s0, 0x18($sp) +/* 047C84 7F013154 8FB1001C */ lw $s1, 0x1c($sp) +/* 047C88 7F013158 8FB20020 */ lw $s2, 0x20($sp) +/* 047C8C 7F01315C 8FB30024 */ lw $s3, 0x24($sp) +/* 047C90 7F013160 8FB40028 */ lw $s4, 0x28($sp) +/* 047C94 7F013164 8FB5002C */ lw $s5, 0x2c($sp) +/* 047C98 7F013168 8FB60030 */ lw $s6, 0x30($sp) +/* 047C9C 7F01316C 8FB70034 */ lw $s7, 0x34($sp) +/* 047CA0 7F013170 8FBE0038 */ lw $fp, 0x38($sp) +/* 047CA4 7F013174 03E00008 */ jr $ra +/* 047CA8 7F013178 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu10_mphandicap(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s6; + s32 temp_v0; + s32 phi_s6; + s32 phi_s3; + s32 phi_s2; + void *phi_v0; + s32 phi_s5; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_v1; + s32 phi_v1_2; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_2 = temp_s1; + if (spCC >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_2 = temp_ret_2; + } + if (spCC > 0) + { + sp74 = &has_selected_char_player1; + sp70 = &handicap_player1; + phi_s6 = 0; +loop_4: + if (spCC == 2) + { + if (phi_s6 > 0) + { + phi_s3 = 0x26; + phi_s2 = 0xaa; + phi_s5 = 0x15e; + } + else + { + phi_s3 = 0x26; + phi_s2 = 0 + 0x1e; + phi_s5 = 0x15e; + } + } + else + { + if (phi_s6 >= 2) + { + phi_v1_2 = 0x8c; + } + else + { + phi_v1_2 = 0; + } + if ((phi_s6 & 1) != 0) + { + phi_v1 = 0xaf; + } + else + { + phi_v1 = 0; + } + phi_s3 = phi_v1 + 0x26; + phi_s2 = phi_v1_2 + 0x1e; + phi_s5 = 0xaf; + } + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s3 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s2 + 5) * 4.0f) & 0xfff)); + phi_v0->unk4 = (s32) ((((s32) ((f32) ((phi_s3 + phi_s5) + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s2 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp74 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x56)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); + sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 8))->unk-4B68); + sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); + sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); + get_video2_settings_txtClipW(); + temp_s6 = phi_s6 + 1; + sp70 = (void *) (sp70 + 4); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + sp74 = (void *) (sp74 + 4); + phi_s6 = temp_s6; + phi_v0 = temp_v0; + phi_s1_2 = temp_v0; + if (temp_s6 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_2); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu10_mphandicap +/* 047CAC 7F01317C 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 047CB0 7F013180 AFBF0064 */ sw $ra, 0x64($sp) +/* 047CB4 7F013184 AFB10044 */ sw $s1, 0x44($sp) +/* 047CB8 7F013188 00808825 */ move $s1, $a0 +/* 047CBC 7F01318C AFBE0060 */ sw $fp, 0x60($sp) +/* 047CC0 7F013190 AFB7005C */ sw $s7, 0x5c($sp) +/* 047CC4 7F013194 AFB60058 */ sw $s6, 0x58($sp) +/* 047CC8 7F013198 AFB50054 */ sw $s5, 0x54($sp) +/* 047CCC 7F01319C AFB40050 */ sw $s4, 0x50($sp) +/* 047CD0 7F0131A0 AFB3004C */ sw $s3, 0x4c($sp) +/* 047CD4 7F0131A4 AFB20048 */ sw $s2, 0x48($sp) +/* 047CD8 7F0131A8 AFB00040 */ sw $s0, 0x40($sp) +/* 047CDC 7F0131AC 0FC040A4 */ jal get_selected_num_players +/* 047CE0 7F0131B0 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 047CE4 7F0131B4 AFA200CC */ sw $v0, 0xcc($sp) +/* 047CE8 7F0131B8 02202025 */ move $a0, $s1 +/* 047CEC 7F0131BC 00002825 */ move $a1, $zero +/* 047CF0 7F0131C0 00003025 */ move $a2, $zero +/* 047CF4 7F0131C4 0C0011B4 */ jal set_setfillcolor +/* 047CF8 7F0131C8 00003825 */ move $a3, $zero +/* 047CFC 7F0131CC 0C000FBE */ jal insert_generic_fillrect +/* 047D00 7F0131D0 00402025 */ move $a0, $v0 +/* 047D04 7F0131D4 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 047D08 7F0131D8 00402025 */ move $a0, $v0 +/* 047D0C 7F0131DC 0FC2B366 */ jal microcode_constructor +/* 047D10 7F0131E0 00402025 */ move $a0, $v0 +/* 047D14 7F0131E4 240E00AB */ li $t6, 171 +/* 047D18 7F0131E8 240F0090 */ li $t7, 144 +/* 047D1C 7F0131EC AFAF0014 */ sw $t7, 0x14($sp) +/* 047D20 7F0131F0 AFAE0010 */ sw $t6, 0x10($sp) +/* 047D24 7F0131F4 00402025 */ move $a0, $v0 +/* 047D28 7F0131F8 24050026 */ li $a1, 38 +/* 047D2C 7F0131FC 240600A9 */ li $a2, 169 +/* 047D30 7F013200 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047D34 7F013204 24070184 */ li $a3, 388 +/* 047D38 7F013208 8FA800CC */ lw $t0, 0xcc($sp) +/* 047D3C 7F01320C 00408825 */ move $s1, $v0 +/* 047D40 7F013210 02202025 */ move $a0, $s1 +/* 047D44 7F013214 29010003 */ slti $at, $t0, 3 +/* 047D48 7F013218 1420000A */ bnez $at, .L7F013244 +/* 047D4C 7F01321C 240500D4 */ li $a1, 212 +/* 047D50 7F013220 24180136 */ li $t8, 310 +/* 047D54 7F013224 24190080 */ li $t9, 128 +/* 047D58 7F013228 AFB90014 */ sw $t9, 0x14($sp) +/* 047D5C 7F01322C AFB80010 */ sw $t8, 0x10($sp) +/* 047D60 7F013230 2406001E */ li $a2, 30 +/* 047D64 7F013234 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047D68 7F013238 240700D6 */ li $a3, 214 +/* 047D6C 7F01323C 00408825 */ move $s1, $v0 +/* 047D70 7F013240 8FA800CC */ lw $t0, 0xcc($sp) +.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) +/* 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 +/* 047D90 7F013260 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 047D94 7F013264 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 047D98 7F013268 4481A000 */ mtc1 $at, $f20 +/* 047D9C 7F01326C 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 047DA0 7F013270 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 047DA4 7F013274 AFA90074 */ sw $t1, 0x74($sp) +/* 047DA8 7F013278 AFAA0070 */ sw $t2, 0x70($sp) +.L7F01327C: +/* 047DAC 7F01327C 8FA800CC */ lw $t0, 0xcc($sp) +/* 047DB0 7F013280 24010002 */ li $at, 2 +/* 047DB4 7F013284 24130026 */ li $s3, 38 +/* 047DB8 7F013288 15010008 */ bne $t0, $at, .L7F0132AC +/* 047DBC 7F01328C 32CB0001 */ andi $t3, $s6, 1 +/* 047DC0 7F013290 1AC00003 */ blez $s6, .L7F0132A0 +/* 047DC4 7F013294 2415015E */ li $s5, 350 +/* 047DC8 7F013298 10000010 */ b .L7F0132DC +/* 047DCC 7F01329C 241200AA */ li $s2, 170 +.L7F0132A0: +/* 047DD0 7F0132A0 00001825 */ move $v1, $zero +/* 047DD4 7F0132A4 1000000D */ b .L7F0132DC +/* 047DD8 7F0132A8 2472001E */ addiu $s2, $v1, 0x1e +.L7F0132AC: +/* 047DDC 7F0132AC 2AC10002 */ slti $at, $s6, 2 +/* 047DE0 7F0132B0 14200003 */ bnez $at, .L7F0132C0 +/* 047DE4 7F0132B4 241500AF */ li $s5, 175 +/* 047DE8 7F0132B8 10000002 */ b .L7F0132C4 +/* 047DEC 7F0132BC 2403008C */ li $v1, 140 +.L7F0132C0: +/* 047DF0 7F0132C0 00001825 */ move $v1, $zero +.L7F0132C4: +/* 047DF4 7F0132C4 11600003 */ beqz $t3, .L7F0132D4 +/* 047DF8 7F0132C8 2472001E */ addiu $s2, $v1, 0x1e +/* 047DFC 7F0132CC 10000002 */ b .L7F0132D8 +/* 047E00 7F0132D0 240300AF */ li $v1, 175 +.L7F0132D4: +/* 047E04 7F0132D4 00001825 */ move $v1, $zero +.L7F0132D8: +/* 047E08 7F0132D8 24730026 */ addiu $s3, $v1, 0x26 +.L7F0132DC: +/* 047E0C 7F0132DC 266C0006 */ addiu $t4, $s3, 6 +/* 047E10 7F0132E0 448C2000 */ mtc1 $t4, $f4 +/* 047E14 7F0132E4 26490005 */ addiu $t1, $s2, 5 +/* 047E18 7F0132E8 44898000 */ mtc1 $t1, $f16 +/* 047E1C 7F0132EC 468021A0 */ cvt.s.w $f6, $f4 +/* 047E20 7F0132F0 3C01ED00 */ lui $at, 0xed00 +/* 047E24 7F0132F4 24510008 */ addiu $s1, $v0, 8 +/* 047E28 7F0132F8 468084A0 */ cvt.s.w $f18, $f16 +/* 047E2C 7F0132FC 46143202 */ mul.s $f8, $f6, $f20 +/* 047E30 7F013300 4600428D */ trunc.w.s $f10, $f8 +/* 047E34 7F013304 46149102 */ mul.s $f4, $f18, $f20 +/* 047E38 7F013308 440E5000 */ mfc1 $t6, $f10 +/* 047E3C 7F01330C 00000000 */ nop +/* 047E40 7F013310 31CF0FFF */ andi $t7, $t6, 0xfff +/* 047E44 7F013314 4600218D */ trunc.w.s $f6, $f4 +/* 047E48 7F013318 000FC300 */ sll $t8, $t7, 0xc +/* 047E4C 7F01331C 02757021 */ addu $t6, $s3, $s5 +/* 047E50 7F013320 25CFFFFA */ addiu $t7, $t6, -6 +/* 047E54 7F013324 440B3000 */ mfc1 $t3, $f6 +/* 047E58 7F013328 448F4000 */ mtc1 $t7, $f8 +/* 047E5C 7F01332C 0301C825 */ or $t9, $t8, $at +/* 047E60 7F013330 316C0FFF */ andi $t4, $t3, 0xfff +/* 047E64 7F013334 032C6825 */ or $t5, $t9, $t4 +/* 047E68 7F013338 26590087 */ addiu $t9, $s2, 0x87 +/* 047E6C 7F01333C 468042A0 */ cvt.s.w $f10, $f8 +/* 047E70 7F013340 44992000 */ mtc1 $t9, $f4 +/* 047E74 7F013344 AC4D0000 */ sw $t5, ($v0) +/* 047E78 7F013348 468021A0 */ cvt.s.w $f6, $f4 +/* 047E7C 7F01334C 46145402 */ mul.s $f16, $f10, $f20 +/* 047E80 7F013350 00000000 */ nop +/* 047E84 7F013354 46143202 */ mul.s $f8, $f6, $f20 +/* 047E88 7F013358 4600848D */ trunc.w.s $f18, $f16 +/* 047E8C 7F01335C 4600428D */ trunc.w.s $f10, $f8 +/* 047E90 7F013360 44099000 */ mfc1 $t1, $f18 +/* 047E94 7F013364 440D5000 */ mfc1 $t5, $f10 +/* 047E98 7F013368 312A0FFF */ andi $t2, $t1, 0xfff +/* 047E9C 7F01336C 000A5B00 */ sll $t3, $t2, 0xc +/* 047EA0 7F013370 31AE0FFF */ andi $t6, $t5, 0xfff +/* 047EA4 7F013374 016E7825 */ or $t7, $t3, $t6 +/* 047EA8 7F013378 AC4F0004 */ sw $t7, 4($v0) +/* 047EAC 7F01337C 8FB80074 */ lw $t8, 0x74($sp) +/* 047EB0 7F013380 8F090000 */ lw $t1, ($t8) +/* 047EB4 7F013384 1520002F */ bnez $t1, .L7F013444 +/* 047EB8 7F013388 00000000 */ nop +/* 047EBC 7F01338C 0FC30776 */ jal get_textptr_for_textID +/* 047EC0 7F013390 34049C56 */ li $a0, 40022 +/* 047EC4 7F013394 8FCA0000 */ lw $t2, ($fp) +/* 047EC8 7F013398 0040A025 */ move $s4, $v0 +/* 047ECC 7F01339C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 047ED0 7F0133A0 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 047ED4 7F0133A4 00403025 */ move $a2, $v0 +/* 047ED8 7F0133A8 8EE70000 */ lw $a3, ($s7) +/* 047EDC 7F0133AC AFA00014 */ sw $zero, 0x14($sp) +/* 047EE0 7F0133B0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047EE4 7F0133B4 AFAA0010 */ sw $t2, 0x10($sp) +/* 047EE8 7F0133B8 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 047EEC 7F0133BC 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 047EF0 7F0133C0 0015C843 */ sra $t9, $s5, 1 +/* 047EF4 7F0133C4 000FC043 */ sra $t8, $t7, 1 +/* 047EF8 7F0133C8 03336021 */ addu $t4, $t9, $s3 +/* 047EFC 7F0133CC 02584823 */ subu $t1, $s2, $t8 +/* 047F00 7F0133D0 000D5843 */ sra $t3, $t5, 1 +/* 047F04 7F0133D4 018B7023 */ subu $t6, $t4, $t3 +/* 047F08 7F0133D8 252A0037 */ addiu $t2, $t1, 0x37 +/* 047F0C 7F0133DC AFAE009C */ sw $t6, 0x9c($sp) +/* 047F10 7F0133E0 AFAA0098 */ sw $t2, 0x98($sp) +/* 047F14 7F0133E4 0FC2B366 */ jal microcode_constructor +/* 047F18 7F0133E8 02202025 */ move $a0, $s1 +/* 047F1C 7F0133EC 0C001107 */ jal get_video2_settings_txtClipW +/* 047F20 7F0133F0 00408825 */ move $s1, $v0 +/* 047F24 7F0133F4 00028400 */ sll $s0, $v0, 0x10 +/* 047F28 7F0133F8 0010CC03 */ sra $t9, $s0, 0x10 +/* 047F2C 7F0133FC 0C00110B */ jal get_video2_settings_txtClipH +/* 047F30 7F013400 03208025 */ move $s0, $t9 +/* 047F34 7F013404 8EED0000 */ lw $t5, ($s7) +/* 047F38 7F013408 8FCC0000 */ lw $t4, ($fp) +/* 047F3C 7F01340C 240B00FF */ li $t3, 255 +/* 047F40 7F013410 AFAB0018 */ sw $t3, 0x18($sp) +/* 047F44 7F013414 02202025 */ move $a0, $s1 +/* 047F48 7F013418 27A5009C */ addiu $a1, $sp, 0x9c +/* 047F4C 7F01341C 27A60098 */ addiu $a2, $sp, 0x98 +/* 047F50 7F013420 02803825 */ move $a3, $s4 +/* 047F54 7F013424 AFB0001C */ sw $s0, 0x1c($sp) +/* 047F58 7F013428 AFA20020 */ sw $v0, 0x20($sp) +/* 047F5C 7F01342C AFA00024 */ sw $zero, 0x24($sp) +/* 047F60 7F013430 AFA00028 */ sw $zero, 0x28($sp) +/* 047F64 7F013434 AFAD0010 */ sw $t5, 0x10($sp) +/* 047F68 7F013438 0FC025D8 */ jal write_text_at_abs_coord +/* 047F6C 7F01343C AFAC0014 */ sw $t4, 0x14($sp) +/* 047F70 7F013440 00408825 */ move $s1, $v0 +.L7F013444: +/* 047F74 7F013444 8FAE0070 */ lw $t6, 0x70($sp) +/* 047F78 7F013448 3C048003 */ lui $a0, %hi(MP_handicap_table) +/* 047F7C 7F01344C 00154843 */ sra $t1, $s5, 1 +/* 047F80 7F013450 8DCF0000 */ lw $t7, ($t6) +/* 047F84 7F013454 01338021 */ addu $s0, $t1, $s3 +/* 047F88 7F013458 26540046 */ addiu $s4, $s2, 0x46 +/* 047F8C 7F01345C 000FC0C0 */ sll $t8, $t7, 3 +/* 047F90 7F013460 00982021 */ addu $a0, $a0, $t8 +/* 047F94 7F013464 0FC30776 */ jal get_textptr_for_textID +/* 047F98 7F013468 9484B498 */ lhu $a0, %lo(MP_handicap_table)($a0) +/* 047F9C 7F01346C 8FCA0000 */ lw $t2, ($fp) +/* 047FA0 7F013470 00409025 */ move $s2, $v0 +/* 047FA4 7F013474 27A40090 */ addiu $a0, $sp, 0x90 +/* 047FA8 7F013478 27A5008C */ addiu $a1, $sp, 0x8c +/* 047FAC 7F01347C 00403025 */ move $a2, $v0 +/* 047FB0 7F013480 8EE70000 */ lw $a3, ($s7) +/* 047FB4 7F013484 AFA00014 */ sw $zero, 0x14($sp) +/* 047FB8 7F013488 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047FBC 7F01348C AFAA0010 */ sw $t2, 0x10($sp) +/* 047FC0 7F013490 8FAB0090 */ lw $t3, 0x90($sp) +/* 047FC4 7F013494 8FB9008C */ lw $t9, 0x8c($sp) +/* 047FC8 7F013498 02202025 */ move $a0, $s1 +/* 047FCC 7F01349C 000B7043 */ sra $t6, $t3, 1 +/* 047FD0 7F0134A0 028E7823 */ subu $t7, $s4, $t6 +/* 047FD4 7F0134A4 00196843 */ sra $t5, $t9, 1 +/* 047FD8 7F0134A8 020D6023 */ subu $t4, $s0, $t5 +/* 047FDC 7F0134AC 25F8000F */ addiu $t8, $t7, 0xf +/* 047FE0 7F0134B0 AFAC0088 */ sw $t4, 0x88($sp) +/* 047FE4 7F0134B4 0FC2B366 */ jal microcode_constructor +/* 047FE8 7F0134B8 AFB80084 */ sw $t8, 0x84($sp) +/* 047FEC 7F0134BC 0C001107 */ jal get_video2_settings_txtClipW +/* 047FF0 7F0134C0 00408825 */ move $s1, $v0 +/* 047FF4 7F0134C4 00028400 */ sll $s0, $v0, 0x10 +/* 047FF8 7F0134C8 00104C03 */ sra $t1, $s0, 0x10 +/* 047FFC 7F0134CC 0C00110B */ jal get_video2_settings_txtClipH +/* 048000 7F0134D0 01208025 */ move $s0, $t1 +/* 048004 7F0134D4 8EEA0000 */ lw $t2, ($s7) +/* 048008 7F0134D8 8FD90000 */ lw $t9, ($fp) +/* 04800C 7F0134DC 240D00FF */ li $t5, 255 +/* 048010 7F0134E0 AFAD0018 */ sw $t5, 0x18($sp) +/* 048014 7F0134E4 02202025 */ move $a0, $s1 +/* 048018 7F0134E8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04801C 7F0134EC 27A60084 */ addiu $a2, $sp, 0x84 +/* 048020 7F0134F0 02403825 */ move $a3, $s2 +/* 048024 7F0134F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 048028 7F0134F8 AFA20020 */ sw $v0, 0x20($sp) +/* 04802C 7F0134FC AFA00024 */ sw $zero, 0x24($sp) +/* 048030 7F013500 AFA00028 */ sw $zero, 0x28($sp) +/* 048034 7F013504 AFAA0010 */ sw $t2, 0x10($sp) +/* 048038 7F013508 0FC025D8 */ jal write_text_at_abs_coord +/* 04803C 7F01350C AFB90014 */ sw $t9, 0x14($sp) +/* 048040 7F013510 8FAC0074 */ lw $t4, 0x74($sp) +/* 048044 7F013514 8FAE0070 */ lw $t6, 0x70($sp) +/* 048048 7F013518 8FB800CC */ lw $t8, 0xcc($sp) +/* 04804C 7F01351C 26D60001 */ addiu $s6, $s6, 1 +/* 048050 7F013520 258B0004 */ addiu $t3, $t4, 4 +/* 048054 7F013524 25CF0004 */ addiu $t7, $t6, 4 +/* 048058 7F013528 AFAF0070 */ sw $t7, 0x70($sp) +/* 04805C 7F01352C AFAB0074 */ sw $t3, 0x74($sp) +/* 048060 7F013530 16D8FF52 */ bne $s6, $t8, .L7F01327C +/* 048064 7F013534 00408825 */ move $s1, $v0 +.L7F013538: +/* 048068 7F013538 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 04806C 7F01353C 02202025 */ move $a0, $s1 +/* 048070 7F013540 8FBF0064 */ lw $ra, 0x64($sp) +/* 048074 7F013544 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 048078 7F013548 8FB00040 */ lw $s0, 0x40($sp) +/* 04807C 7F01354C 8FB10044 */ lw $s1, 0x44($sp) +/* 048080 7F013550 8FB20048 */ lw $s2, 0x48($sp) +/* 048084 7F013554 8FB3004C */ lw $s3, 0x4c($sp) +/* 048088 7F013558 8FB40050 */ lw $s4, 0x50($sp) +/* 04808C 7F01355C 8FB50054 */ lw $s5, 0x54($sp) +/* 048090 7F013560 8FB60058 */ lw $s6, 0x58($sp) +/* 048094 7F013564 8FB7005C */ lw $s7, 0x5c($sp) +/* 048098 7F013568 8FBE0060 */ lw $fp, 0x60($sp) +/* 04809C 7F01356C 03E00008 */ jr $ra +/* 0480A0 7F013570 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +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(); +} + +void update_menu11_mpcontrols(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu11_mpcontrols(void) +{ + s32 sp44; + s32 temp_s1; + s32 temp_s6; + s32 temp_t8; + void *temp_s4; + void *temp_v1; + void *temp_v1_2; + void *phi_s2; + s32 phi_s1; + s32 phi_s5; + + temp_s6 = get_selected_num_players(); + sp44 = 0; + setvideo_far(0x42700000); + video_related_21(D_80051A98); + set_page_height(0x42c80000, D_80051A9C); + set_video2_settings_offset_24(0); + if (temp_s6 > 0) + { + phi_s2 = &has_selected_char_player1; + phi_s1 = 0; + phi_s5 = 0; +loop_2: + if (*phi_s2 != 0) + { + if (get_controller_buttons_pressed((s32) (phi_s1 << 0x18) >> 0x18, 0x4000) != 0) + { + *phi_s2 = 0; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + temp_t8 = (s32) (phi_s1 << 0x18) >> 0x18; + if (*phi_s2 == 0) + { + temp_s4 = phi_s5 + &handicap_player1; + if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) < -1)) + { + if ((*temp_s4 != 0) && (*temp_v1 > 0)) + { +block_10: + if ((((temp_s6 != 2) || (phi_s1 != 1)) || (controlstyle_player.unk0 < 4)) || (*temp_v1 >= 5)) + { + *temp_v1 = (s32) (*temp_v1 + -1); + } + else + { + + } + if (temp_s6 == 2) + { + if (phi_s1 == 0) + { + if (controlstyle_player.unk0 < 4) + { + if (controlstyle_player.unk4 >= 4) + { + controlstyle_player.unk4 = 0; + } + } + } + } + } + else + { + if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) > 0)) + { + if ((*temp_s4 != 0) && (temp_s6 == 2)) + { + if ((phi_s1 == 0) || (*temp_v1_2 >= 4)) + { +block_26: + if (*temp_v1_2 < 7) + { + *temp_v1_2 = (s32) (*temp_v1_2 + 1); + if (phi_s1 == 0) + { + if (controlstyle_player.unk0 == 4) + { + if (controlstyle_player.unk4 < 4) + { + controlstyle_player.unk4 = 4; + } + } + } + } + } + else + { +block_31: + if (*temp_v1_2 < 3) + { + *temp_v1_2 = (s32) (*temp_v1_2 + 1); + } + } + } + else + { + if (get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0xb000) != 0) + { + *phi_s2 = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + temp_v1_2 = &controlstyle_player + phi_s5; + if ((temp_s6 != 2) || (phi_s1 != 0)) + { + if (*temp_v1_2 >= 4) + { + goto block_26; + } + else + { + goto block_31; + } + } + else + { + goto block_26; + } + } + } + } + else + { + temp_v1 = &controlstyle_player + phi_s5; + if (*temp_v1 > 0) + { + goto block_10; + } + } + if ((get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == 0)) + { + *temp_s4 = 1; + } + else + { + *temp_s4 = 0; + } + } + temp_s1 = phi_s1 + 1; + if (*phi_s2 != 0) + { + sp44 = (s32) (sp44 + 1); + } + phi_s2 = phi_s2 + 4; + phi_s1 = temp_s1; + phi_s5 = phi_s5 + 4; + if (temp_s1 != temp_s6) + { + 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); + menu_control_stick_tracking(); + if (sp44 == temp_s6) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051A98 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A9C +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu11_mpcontrols +/* 048138 7F013608 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 04813C 7F01360C AFBF003C */ sw $ra, 0x3c($sp) +/* 048140 7F013610 AFBE0038 */ sw $fp, 0x38($sp) +/* 048144 7F013614 AFB70034 */ sw $s7, 0x34($sp) +/* 048148 7F013618 AFB60030 */ sw $s6, 0x30($sp) +/* 04814C 7F01361C AFB5002C */ sw $s5, 0x2c($sp) +/* 048150 7F013620 AFB40028 */ sw $s4, 0x28($sp) +/* 048154 7F013624 AFB30024 */ sw $s3, 0x24($sp) +/* 048158 7F013628 AFB20020 */ sw $s2, 0x20($sp) +/* 04815C 7F01362C AFB1001C */ sw $s1, 0x1c($sp) +/* 048160 7F013630 0FC040A4 */ jal get_selected_num_players +/* 048164 7F013634 AFB00018 */ sw $s0, 0x18($sp) +/* 048168 7F013638 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04816C 7F01363C 44816000 */ mtc1 $at, $f12 +/* 048170 7F013640 0040B025 */ move $s6, $v0 +/* 048174 7F013644 0C001151 */ jal setvideo_far +/* 048178 7F013648 AFA00044 */ sw $zero, 0x44($sp) +/* 04817C 7F01364C 3C018005 */ lui $at, %hi(D_80051A98) +/* 048180 7F013650 0C001164 */ jal video_related_21 +/* 048184 7F013654 C42C1A98 */ lwc1 $f12, %lo(D_80051A98)($at) +/* 048188 7F013658 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04818C 7F01365C 44816000 */ mtc1 $at, $f12 +/* 048190 7F013660 3C018005 */ lui $at, %hi(D_80051A9C) +/* 048194 7F013664 0C001194 */ jal set_page_height +/* 048198 7F013668 C42E1A9C */ lwc1 $f14, %lo(D_80051A9C)($at) +/* 04819C 7F01366C 0C00114D */ jal set_video2_settings_offset_24 +/* 0481A0 7F013670 00002025 */ move $a0, $zero +/* 0481A4 7F013674 1AC000A2 */ blez $s6, .L7F013900 +/* 0481A8 7F013678 00008825 */ move $s1, $zero +/* 0481AC 7F01367C 3C128007 */ lui $s2, %hi(has_selected_char_player1) +/* 0481B0 7F013680 3C138007 */ lui $s3, %hi(controlstyle_player) +/* 0481B4 7F013684 267397B8 */ addiu $s3, %lo(controlstyle_player) # addiu $s3, $s3, -0x6848 +/* 0481B8 7F013688 26529740 */ addiu $s2, %lo(has_selected_char_player1) # addiu $s2, $s2, -0x68c0 +/* 0481BC 7F01368C 0000A825 */ move $s5, $zero +/* 0481C0 7F013690 241E0001 */ li $fp, 1 +/* 0481C4 7F013694 24170002 */ li $s7, 2 +.L7F013698: +/* 0481C8 7F013698 8E4E0000 */ lw $t6, ($s2) +/* 0481CC 7F01369C 00112600 */ sll $a0, $s1, 0x18 +/* 0481D0 7F0136A0 00047E03 */ sra $t7, $a0, 0x18 +/* 0481D4 7F0136A4 11C0000A */ beqz $t6, .L7F0136D0 +/* 0481D8 7F0136A8 01E02025 */ move $a0, $t7 +/* 0481DC 7F0136AC 0C0030EB */ jal get_controller_buttons_pressed +/* 0481E0 7F0136B0 24054000 */ li $a1, 16384 +/* 0481E4 7F0136B4 10400006 */ beqz $v0, .L7F0136D0 +/* 0481E8 7F0136B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0481EC 7F0136BC AE400000 */ sw $zero, ($s2) +/* 0481F0 7F0136C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0481F4 7F0136C4 240500C7 */ li $a1, 199 +/* 0481F8 7F0136C8 0C002382 */ jal play_sfx_a1 +/* 0481FC 7F0136CC 00003025 */ move $a2, $zero +.L7F0136D0: +/* 048200 7F0136D0 8E420000 */ lw $v0, ($s2) +/* 048204 7F0136D4 00118600 */ sll $s0, $s1, 0x18 +/* 048208 7F0136D8 0010C603 */ sra $t8, $s0, 0x18 +/* 04820C 7F0136DC 14400080 */ bnez $v0, .L7F0138E0 +/* 048210 7F0136E0 03008025 */ move $s0, $t8 +/* 048214 7F0136E4 00182600 */ sll $a0, $t8, 0x18 +/* 048218 7F0136E8 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069760) +/* 04821C 7F0136EC 25089760 */ addiu $t0, $t0, %lo(dword_CODE_bss_80069760) +/* 048220 7F0136F0 0004CE03 */ sra $t9, $a0, 0x18 +/* 048224 7F0136F4 03202025 */ move $a0, $t9 +/* 048228 7F0136F8 02A8A021 */ addu $s4, $s5, $t0 +/* 04822C 7F0136FC 0C0030EB */ jal get_controller_buttons_pressed +/* 048230 7F013700 24050202 */ li $a1, 514 +/* 048234 7F013704 1440000B */ bnez $v0, .L7F013734 +/* 048238 7F013708 00102600 */ sll $a0, $s0, 0x18 +/* 04823C 7F01370C 00044E03 */ sra $t1, $a0, 0x18 +/* 048240 7F013710 01202025 */ move $a0, $t1 +/* 048244 7F013714 2405FFFE */ li $a1, -2 +/* 048248 7F013718 0C00312D */ jal get_controller_3dstick_L_R +/* 04824C 7F01371C 03C03025 */ move $a2, $fp +/* 048250 7F013720 2841FFFF */ slti $at, $v0, -1 +/* 048254 7F013724 10200020 */ beqz $at, .L7F0137A8 +/* 048258 7F013728 00102600 */ sll $a0, $s0, 0x18 +/* 04825C 7F01372C 8E8A0000 */ lw $t2, ($s4) +/* 048260 7F013730 1140001D */ beqz $t2, .L7F0137A8 +.L7F013734: +/* 048264 7F013734 02751821 */ addu $v1, $s3, $s5 +/* 048268 7F013738 8C620000 */ lw $v0, ($v1) +/* 04826C 7F01373C 58400054 */ blezl $v0, .L7F013890 +/* 048270 7F013740 00102600 */ sll $a0, $s0, 0x18 +/* 048274 7F013744 16D70009 */ bne $s6, $s7, .L7F01376C +/* 048278 7F013748 244CFFFF */ addiu $t4, $v0, -1 +/* 04827C 7F01374C 563E0008 */ bnel $s1, $fp, .L7F013770 +/* 048280 7F013750 AC6C0000 */ sw $t4, ($v1) +/* 048284 7F013754 8E6B0000 */ lw $t3, ($s3) +/* 048288 7F013758 29610004 */ slti $at, $t3, 4 +/* 04828C 7F01375C 14200003 */ bnez $at, .L7F01376C +/* 048290 7F013760 28410005 */ slti $at, $v0, 5 +/* 048294 7F013764 14200002 */ bnez $at, .L7F013770 +/* 048298 7F013768 00000000 */ nop +.L7F01376C: +/* 04829C 7F01376C AC6C0000 */ sw $t4, ($v1) +.L7F013770: +/* 0482A0 7F013770 56D70047 */ bnel $s6, $s7, .L7F013890 +/* 0482A4 7F013774 00102600 */ sll $a0, $s0, 0x18 +/* 0482A8 7F013778 56200045 */ bnezl $s1, .L7F013890 +/* 0482AC 7F01377C 00102600 */ sll $a0, $s0, 0x18 +/* 0482B0 7F013780 8E6D0000 */ lw $t5, ($s3) +/* 0482B4 7F013784 29A10004 */ slti $at, $t5, 4 +/* 0482B8 7F013788 50200041 */ beql $at, $zero, .L7F013890 +/* 0482BC 7F01378C 00102600 */ sll $a0, $s0, 0x18 +/* 0482C0 7F013790 8E6E0004 */ lw $t6, 4($s3) +/* 0482C4 7F013794 29C10004 */ slti $at, $t6, 4 +/* 0482C8 7F013798 5420003D */ bnezl $at, .L7F013890 +/* 0482CC 7F01379C 00102600 */ sll $a0, $s0, 0x18 +/* 0482D0 7F0137A0 1000003A */ b .L7F01388C +/* 0482D4 7F0137A4 AE600004 */ sw $zero, 4($s3) +.L7F0137A8: +/* 0482D8 7F0137A8 00047E03 */ sra $t7, $a0, 0x18 +/* 0482DC 7F0137AC 01E02025 */ move $a0, $t7 +/* 0482E0 7F0137B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0482E4 7F0137B4 24050101 */ li $a1, 257 +/* 0482E8 7F0137B8 1440000B */ bnez $v0, .L7F0137E8 +/* 0482EC 7F0137BC 00102600 */ sll $a0, $s0, 0x18 +/* 0482F0 7F0137C0 0004C603 */ sra $t8, $a0, 0x18 +/* 0482F4 7F0137C4 03002025 */ move $a0, $t8 +/* 0482F8 7F0137C8 2405FFFE */ li $a1, -2 +/* 0482FC 7F0137CC 0C00312D */ jal get_controller_3dstick_L_R +/* 048300 7F0137D0 03C03025 */ move $a2, $fp +/* 048304 7F0137D4 18400022 */ blez $v0, .L7F013860 +/* 048308 7F0137D8 00102600 */ sll $a0, $s0, 0x18 +/* 04830C 7F0137DC 8E990000 */ lw $t9, ($s4) +/* 048310 7F0137E0 53200020 */ beql $t9, $zero, .L7F013864 +/* 048314 7F0137E4 00046E03 */ sra $t5, $a0, 0x18 +.L7F0137E8: +/* 048318 7F0137E8 16D70003 */ bne $s6, $s7, .L7F0137F8 +/* 04831C 7F0137EC 02751821 */ addu $v1, $s3, $s5 +/* 048320 7F0137F0 52200006 */ beql $s1, $zero, .L7F01380C +/* 048324 7F0137F4 8C620000 */ lw $v0, ($v1) +.L7F0137F8: +/* 048328 7F0137F8 8C620000 */ lw $v0, ($v1) +/* 04832C 7F0137FC 28410004 */ slti $at, $v0, 4 +/* 048330 7F013800 54200013 */ bnezl $at, .L7F013850 +/* 048334 7F013804 28410003 */ slti $at, $v0, 3 +/* 048338 7F013808 8C620000 */ lw $v0, ($v1) +.L7F01380C: +/* 04833C 7F01380C 28410007 */ slti $at, $v0, 7 +/* 048340 7F013810 1020001E */ beqz $at, .L7F01388C +/* 048344 7F013814 24480001 */ addiu $t0, $v0, 1 +/* 048348 7F013818 1620001C */ bnez $s1, .L7F01388C +/* 04834C 7F01381C AC680000 */ sw $t0, ($v1) +/* 048350 7F013820 8E690000 */ lw $t1, ($s3) +/* 048354 7F013824 24010004 */ li $at, 4 +/* 048358 7F013828 55210019 */ bnel $t1, $at, .L7F013890 +/* 04835C 7F01382C 00102600 */ sll $a0, $s0, 0x18 +/* 048360 7F013830 8E6A0004 */ lw $t2, 4($s3) +/* 048364 7F013834 240B0004 */ li $t3, 4 +/* 048368 7F013838 29410004 */ slti $at, $t2, 4 +/* 04836C 7F01383C 50200014 */ beql $at, $zero, .L7F013890 +/* 048370 7F013840 00102600 */ sll $a0, $s0, 0x18 +/* 048374 7F013844 10000011 */ b .L7F01388C +/* 048378 7F013848 AE6B0004 */ sw $t3, 4($s3) +/* 04837C 7F01384C 28410003 */ slti $at, $v0, 3 +.L7F013850: +/* 048380 7F013850 1020000E */ beqz $at, .L7F01388C +/* 048384 7F013854 244C0001 */ addiu $t4, $v0, 1 +/* 048388 7F013858 1000000C */ b .L7F01388C +/* 04838C 7F01385C AC6C0000 */ sw $t4, ($v1) +.L7F013860: +/* 048390 7F013860 00046E03 */ sra $t5, $a0, 0x18 +.L7F013864: +/* 048394 7F013864 01A02025 */ move $a0, $t5 +/* 048398 7F013868 0C0030EB */ jal get_controller_buttons_pressed +/* 04839C 7F01386C 3405B000 */ li $a1, 45056 +/* 0483A0 7F013870 10400006 */ beqz $v0, .L7F01388C +/* 0483A4 7F013874 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0483A8 7F013878 AE5E0000 */ sw $fp, ($s2) +/* 0483AC 7F01387C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0483B0 7F013880 240500C7 */ li $a1, 199 +/* 0483B4 7F013884 0C002382 */ jal play_sfx_a1 +/* 0483B8 7F013888 00003025 */ move $a2, $zero +.L7F01388C: +/* 0483BC 7F01388C 00102600 */ sll $a0, $s0, 0x18 +.L7F013890: +/* 0483C0 7F013890 00047603 */ sra $t6, $a0, 0x18 +/* 0483C4 7F013894 01C02025 */ move $a0, $t6 +/* 0483C8 7F013898 2405FFFE */ li $a1, -2 +/* 0483CC 7F01389C 0C00312D */ jal get_controller_3dstick_L_R +/* 0483D0 7F0138A0 03C03025 */ move $a2, $fp +/* 0483D4 7F0138A4 2401FFFF */ li $at, -1 +/* 0483D8 7F0138A8 10410008 */ beq $v0, $at, .L7F0138CC +/* 0483DC 7F0138AC 00102600 */ sll $a0, $s0, 0x18 +/* 0483E0 7F0138B0 00047E03 */ sra $t7, $a0, 0x18 +/* 0483E4 7F0138B4 01E02025 */ move $a0, $t7 +/* 0483E8 7F0138B8 2405FFFE */ li $a1, -2 +/* 0483EC 7F0138BC 0C00312D */ jal get_controller_3dstick_L_R +/* 0483F0 7F0138C0 03C03025 */ move $a2, $fp +/* 0483F4 7F0138C4 54400005 */ bnezl $v0, .L7F0138DC +/* 0483F8 7F0138C8 AE800000 */ sw $zero, ($s4) +.L7F0138CC: +/* 0483FC 7F0138CC AE9E0000 */ sw $fp, ($s4) +/* 048400 7F0138D0 10000003 */ b .L7F0138E0 +/* 048404 7F0138D4 8E420000 */ lw $v0, ($s2) +/* 048408 7F0138D8 AE800000 */ sw $zero, ($s4) +.L7F0138DC: +/* 04840C 7F0138DC 8E420000 */ lw $v0, ($s2) +.L7F0138E0: +/* 048410 7F0138E0 10400004 */ beqz $v0, .L7F0138F4 +/* 048414 7F0138E4 26310001 */ addiu $s1, $s1, 1 +/* 048418 7F0138E8 8FB80044 */ lw $t8, 0x44($sp) +/* 04841C 7F0138EC 27190001 */ addiu $t9, $t8, 1 +/* 048420 7F0138F0 AFB90044 */ sw $t9, 0x44($sp) +.L7F0138F4: +/* 048424 7F0138F4 26B50004 */ addiu $s5, $s5, 4 +/* 048428 7F0138F8 1636FF67 */ bne $s1, $s6, .L7F013698 +/* 04842C 7F0138FC 26520004 */ addiu $s2, $s2, 4 +.L7F013900: +/* 048430 7F013900 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 048434 7F013904 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 048438 7F013908 0FC02DC9 */ jal disable_all_switches +/* 04843C 7F01390C 8E040000 */ lw $a0, ($s0) +/* 048440 7F013910 8E040000 */ lw $a0, ($s0) +/* 048444 7F013914 00002825 */ move $a1, $zero +/* 048448 7F013918 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04844C 7F01391C 24060001 */ li $a2, 1 +/* 048450 7F013920 8E040000 */ lw $a0, ($s0) +/* 048454 7F013924 2405002A */ li $a1, 42 +/* 048458 7F013928 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04845C 7F01392C 24060001 */ li $a2, 1 +/* 048460 7F013930 0FC026E1 */ jal menu_control_stick_tracking +/* 048464 7F013934 00000000 */ nop +/* 048468 7F013938 8FA80044 */ lw $t0, 0x44($sp) +/* 04846C 7F01393C 2404000E */ li $a0, 14 +/* 048470 7F013940 55160004 */ bnel $t0, $s6, .L7F013954 +/* 048474 7F013944 8FBF003C */ lw $ra, 0x3c($sp) +/* 048478 7F013948 0FC06975 */ jal set_menu_to_mode +/* 04847C 7F01394C 00002825 */ move $a1, $zero +/* 048480 7F013950 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013954: +/* 048484 7F013954 8FB00018 */ lw $s0, 0x18($sp) +/* 048488 7F013958 8FB1001C */ lw $s1, 0x1c($sp) +/* 04848C 7F01395C 8FB20020 */ lw $s2, 0x20($sp) +/* 048490 7F013960 8FB30024 */ lw $s3, 0x24($sp) +/* 048494 7F013964 8FB40028 */ lw $s4, 0x28($sp) +/* 048498 7F013968 8FB5002C */ lw $s5, 0x2c($sp) +/* 04849C 7F01396C 8FB60030 */ lw $s6, 0x30($sp) +/* 0484A0 7F013970 8FB70034 */ lw $s7, 0x34($sp) +/* 0484A4 7F013974 8FBE0038 */ lw $fp, 0x38($sp) +/* 0484A8 7F013978 03E00008 */ jr $ra +/* 0484AC 7F01397C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051A98 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A9C +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu11_mpcontrols +/* 0481B8 7F013648 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0481BC 7F01364C AFBF003C */ sw $ra, 0x3c($sp) +/* 0481C0 7F013650 AFBE0038 */ sw $fp, 0x38($sp) +/* 0481C4 7F013654 AFB70034 */ sw $s7, 0x34($sp) +/* 0481C8 7F013658 AFB60030 */ sw $s6, 0x30($sp) +/* 0481CC 7F01365C AFB5002C */ sw $s5, 0x2c($sp) +/* 0481D0 7F013660 AFB40028 */ sw $s4, 0x28($sp) +/* 0481D4 7F013664 AFB30024 */ sw $s3, 0x24($sp) +/* 0481D8 7F013668 AFB20020 */ sw $s2, 0x20($sp) +/* 0481DC 7F01366C AFB1001C */ sw $s1, 0x1c($sp) +/* 0481E0 7F013670 0FC040B4 */ jal get_selected_num_players +/* 0481E4 7F013674 AFB00018 */ sw $s0, 0x18($sp) +/* 0481E8 7F013678 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0481EC 7F01367C 44816000 */ mtc1 $at, $f12 +/* 0481F0 7F013680 0040B825 */ move $s7, $v0 +/* 0481F4 7F013684 0C001151 */ jal setvideo_far +/* 0481F8 7F013688 AFA00054 */ sw $zero, 0x54($sp) +/* 0481FC 7F01368C 3C018005 */ lui $at, %hi(D_80051A98) # $at, 0x8005 +/* 048200 7F013690 0C001164 */ jal video_related_21 +/* 048204 7F013694 C42C1AC8 */ lwc1 $f12, %lo(D_80051A98)($at) +/* 048208 7F013698 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04820C 7F01369C 44816000 */ mtc1 $at, $f12 +/* 048210 7F0136A0 3C018005 */ lui $at, %hi(D_80051A9C) # $at, 0x8005 +/* 048214 7F0136A4 0C001194 */ jal set_page_height +/* 048218 7F0136A8 C42E1ACC */ lwc1 $f14, %lo(D_80051A9C)($at) +/* 04821C 7F0136AC 0C00114D */ jal set_video2_settings_offset_24 +/* 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 +/* 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 +/* 04823C 7F0136CC 0000B025 */ move $s6, $zero +/* 048240 7F0136D0 241E0002 */ li $fp, 2 +/* 048244 7F0136D4 24140004 */ li $s4, 4 +.L7F0136D8: +/* 048248 7F0136D8 8E6E0000 */ lw $t6, ($s3) +/* 04824C 7F0136DC 00122600 */ sll $a0, $s2, 0x18 +/* 048250 7F0136E0 00047E03 */ sra $t7, $a0, 0x18 +/* 048254 7F0136E4 11C0000A */ beqz $t6, .L7F013710 +/* 048258 7F0136E8 01E02025 */ move $a0, $t7 +/* 04825C 7F0136EC 0C003104 */ jal get_controller_buttons_pressed +/* 048260 7F0136F0 24054000 */ li $a1, 16384 +/* 048264 7F0136F4 10400006 */ beqz $v0, .L7F013710 +/* 048268 7F0136F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 04826C 7F0136FC AE600000 */ sw $zero, ($s3) +/* 048270 7F013700 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048274 7F013704 240500C7 */ li $a1, 199 +/* 048278 7F013708 0C002386 */ jal play_sfx_a1 +/* 04827C 7F01370C 00003025 */ move $a2, $zero +.L7F013710: +/* 048280 7F013710 8E620000 */ lw $v0, ($s3) +/* 048284 7F013714 00128E00 */ sll $s1, $s2, 0x18 +/* 048288 7F013718 0011C603 */ sra $t8, $s1, 0x18 +/* 04828C 7F01371C 1440009C */ bnez $v0, .L7F013990 +/* 048290 7F013720 03008825 */ move $s1, $t8 +/* 048294 7F013724 00182600 */ sll $a0, $t8, 0x18 +/* 048298 7F013728 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069760) # $t0, 0x8007 +/* 04829C 7F01372C 250897A0 */ addiu $t0, %lo(dword_CODE_bss_80069760) # addiu $t0, $t0, -0x6860 +/* 0482A0 7F013730 0004CE03 */ sra $t9, $a0, 0x18 +/* 0482A4 7F013734 03202025 */ move $a0, $t9 +/* 0482A8 7F013738 02C8A821 */ addu $s5, $s6, $t0 +/* 0482AC 7F01373C 0C003104 */ jal get_controller_buttons_pressed +/* 0482B0 7F013740 24050202 */ li $a1, 514 +/* 0482B4 7F013744 1440000B */ bnez $v0, .L7F013774 +/* 0482B8 7F013748 00112600 */ sll $a0, $s1, 0x18 +/* 0482BC 7F01374C 00044E03 */ sra $t1, $a0, 0x18 +/* 0482C0 7F013750 01202025 */ move $a0, $t1 +/* 0482C4 7F013754 2405FFFE */ li $a1, -2 +/* 0482C8 7F013758 0C003146 */ jal get_controller_3dstick_L_R +/* 0482CC 7F01375C 24060001 */ li $a2, 1 +/* 0482D0 7F013760 2841FFFF */ slti $at, $v0, -1 +/* 0482D4 7F013764 1020002C */ beqz $at, .L7F013818 +/* 0482D8 7F013768 00112600 */ sll $a0, $s1, 0x18 +/* 0482DC 7F01376C 8EAA0000 */ lw $t2, ($s5) +/* 0482E0 7F013770 11400029 */ beqz $t2, .L7F013818 +.L7F013774: +/* 0482E4 7F013774 02161821 */ addu $v1, $s0, $s6 +/* 0482E8 7F013778 8C6B0000 */ lw $t3, ($v1) +/* 0482EC 7F01377C 19600062 */ blez $t3, .L7F013908 +/* 0482F0 7F013780 00000000 */ nop +/* 0482F4 7F013784 16FE000F */ bne $s7, $fp, .L7F0137C4 +/* 0482F8 7F013788 24010001 */ li $at, 1 +/* 0482FC 7F01378C 5641000E */ bnel $s2, $at, .L7F0137C8 +/* 048300 7F013790 8C6E0000 */ lw $t6, ($v1) +/* 048304 7F013794 0C002E82 */ jal get_attached_controller_count +/* 048308 7F013798 AFA30040 */ sw $v1, 0x40($sp) +/* 04830C 7F01379C 14540009 */ bne $v0, $s4, .L7F0137C4 +/* 048310 7F0137A0 8FA30040 */ lw $v1, 0x40($sp) +/* 048314 7F0137A4 8E0C0000 */ lw $t4, ($s0) +/* 048318 7F0137A8 29810004 */ slti $at, $t4, 4 +/* 04831C 7F0137AC 54200006 */ bnezl $at, .L7F0137C8 +/* 048320 7F0137B0 8C6E0000 */ lw $t6, ($v1) +/* 048324 7F0137B4 8C6D0000 */ lw $t5, ($v1) +/* 048328 7F0137B8 29A10005 */ slti $at, $t5, 5 +/* 04832C 7F0137BC 14200004 */ bnez $at, .L7F0137D0 +/* 048330 7F0137C0 00000000 */ nop +.L7F0137C4: +/* 048334 7F0137C4 8C6E0000 */ lw $t6, ($v1) +.L7F0137C8: +/* 048338 7F0137C8 25CFFFFF */ addiu $t7, $t6, -1 +/* 04833C 7F0137CC AC6F0000 */ sw $t7, ($v1) +.L7F0137D0: +/* 048340 7F0137D0 16FE004D */ bne $s7, $fp, .L7F013908 +/* 048344 7F0137D4 00000000 */ nop +/* 048348 7F0137D8 1640004B */ bnez $s2, .L7F013908 +/* 04834C 7F0137DC 00000000 */ nop +/* 048350 7F0137E0 0C002E82 */ jal get_attached_controller_count +/* 048354 7F0137E4 00000000 */ nop +/* 048358 7F0137E8 14540047 */ bne $v0, $s4, .L7F013908 +/* 04835C 7F0137EC 00000000 */ nop +/* 048360 7F0137F0 8E180000 */ lw $t8, ($s0) +/* 048364 7F0137F4 2B010004 */ slti $at, $t8, 4 +/* 048368 7F0137F8 10200043 */ beqz $at, .L7F013908 +/* 04836C 7F0137FC 00000000 */ nop +/* 048370 7F013800 8E190004 */ lw $t9, 4($s0) +/* 048374 7F013804 2B210004 */ slti $at, $t9, 4 +/* 048378 7F013808 1420003F */ bnez $at, .L7F013908 +/* 04837C 7F01380C 00000000 */ nop +/* 048380 7F013810 1000003D */ b .L7F013908 +/* 048384 7F013814 AE000004 */ sw $zero, 4($s0) +.L7F013818: +/* 048388 7F013818 00044603 */ sra $t0, $a0, 0x18 +/* 04838C 7F01381C 01002025 */ move $a0, $t0 +/* 048390 7F013820 0C003104 */ jal get_controller_buttons_pressed +/* 048394 7F013824 24050101 */ li $a1, 257 +/* 048398 7F013828 1440000B */ bnez $v0, .L7F013858 +/* 04839C 7F01382C 00112600 */ sll $a0, $s1, 0x18 +/* 0483A0 7F013830 00044E03 */ sra $t1, $a0, 0x18 +/* 0483A4 7F013834 01202025 */ move $a0, $t1 +/* 0483A8 7F013838 2405FFFE */ li $a1, -2 +/* 0483AC 7F01383C 0C003146 */ jal get_controller_3dstick_L_R +/* 0483B0 7F013840 24060001 */ li $a2, 1 +/* 0483B4 7F013844 18400024 */ blez $v0, .L7F0138D8 +/* 0483B8 7F013848 00112600 */ sll $a0, $s1, 0x18 +/* 0483BC 7F01384C 8EAA0000 */ lw $t2, ($s5) +/* 0483C0 7F013850 51400022 */ beql $t2, $zero, .L7F0138DC +/* 0483C4 7F013854 00047E03 */ sra $t7, $a0, 0x18 +.L7F013858: +/* 0483C8 7F013858 16FE0007 */ bne $s7, $fp, .L7F013878 +/* 0483CC 7F01385C 02161821 */ addu $v1, $s0, $s6 +/* 0483D0 7F013860 56400006 */ bnezl $s2, .L7F01387C +/* 0483D4 7F013864 8C620000 */ lw $v0, ($v1) +/* 0483D8 7F013868 0C002E82 */ jal get_attached_controller_count +/* 0483DC 7F01386C AFA30040 */ sw $v1, 0x40($sp) +/* 0483E0 7F013870 10540005 */ beq $v0, $s4, .L7F013888 +/* 0483E4 7F013874 8FA30040 */ lw $v1, 0x40($sp) +.L7F013878: +/* 0483E8 7F013878 8C620000 */ lw $v0, ($v1) +.L7F01387C: +/* 0483EC 7F01387C 28410004 */ slti $at, $v0, 4 +/* 0483F0 7F013880 54200011 */ bnezl $at, .L7F0138C8 +/* 0483F4 7F013884 28410003 */ slti $at, $v0, 3 +.L7F013888: +/* 0483F8 7F013888 8C620000 */ lw $v0, ($v1) +/* 0483FC 7F01388C 28410007 */ slti $at, $v0, 7 +/* 048400 7F013890 1020001D */ beqz $at, .L7F013908 +/* 048404 7F013894 244B0001 */ addiu $t3, $v0, 1 +/* 048408 7F013898 1640001B */ bnez $s2, .L7F013908 +/* 04840C 7F01389C AC6B0000 */ sw $t3, ($v1) +/* 048410 7F0138A0 8E0C0000 */ lw $t4, ($s0) +/* 048414 7F0138A4 168C0018 */ bne $s4, $t4, .L7F013908 +/* 048418 7F0138A8 00000000 */ nop +/* 04841C 7F0138AC 8E0D0004 */ lw $t5, 4($s0) +/* 048420 7F0138B0 29A10004 */ slti $at, $t5, 4 +/* 048424 7F0138B4 10200014 */ beqz $at, .L7F013908 +/* 048428 7F0138B8 00000000 */ nop +/* 04842C 7F0138BC 10000012 */ b .L7F013908 +/* 048430 7F0138C0 AE140004 */ sw $s4, 4($s0) +/* 048434 7F0138C4 28410003 */ slti $at, $v0, 3 +.L7F0138C8: +/* 048438 7F0138C8 1020000F */ beqz $at, .L7F013908 +/* 04843C 7F0138CC 244E0001 */ addiu $t6, $v0, 1 +/* 048440 7F0138D0 1000000D */ b .L7F013908 +/* 048444 7F0138D4 AC6E0000 */ sw $t6, ($v1) +.L7F0138D8: +/* 048448 7F0138D8 00047E03 */ sra $t7, $a0, 0x18 +.L7F0138DC: +/* 04844C 7F0138DC 01E02025 */ move $a0, $t7 +/* 048450 7F0138E0 0C003104 */ jal get_controller_buttons_pressed +/* 048454 7F0138E4 3405B000 */ li $a1, 45056 +/* 048458 7F0138E8 10400007 */ beqz $v0, .L7F013908 +/* 04845C 7F0138EC 24180001 */ li $t8, 1 +/* 048460 7F0138F0 AE780000 */ sw $t8, ($s3) +/* 048464 7F0138F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 048468 7F0138F8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04846C 7F0138FC 240500C7 */ li $a1, 199 +/* 048470 7F013900 0C002386 */ jal play_sfx_a1 +/* 048474 7F013904 00003025 */ move $a2, $zero +.L7F013908: +/* 048478 7F013908 0C002E82 */ jal get_attached_controller_count +/* 04847C 7F01390C 00000000 */ nop +/* 048480 7F013910 1054000B */ beq $v0, $s4, .L7F013940 +/* 048484 7F013914 00112600 */ sll $a0, $s1, 0x18 +/* 048488 7F013918 8E190000 */ lw $t9, ($s0) +/* 04848C 7F01391C 2B210004 */ slti $at, $t9, 4 +/* 048490 7F013920 54200003 */ bnezl $at, .L7F013930 +/* 048494 7F013924 8E080004 */ lw $t0, 4($s0) +/* 048498 7F013928 AE000000 */ sw $zero, ($s0) +/* 04849C 7F01392C 8E080004 */ lw $t0, 4($s0) +.L7F013930: +/* 0484A0 7F013930 29010004 */ slti $at, $t0, 4 +/* 0484A4 7F013934 54200003 */ bnezl $at, .L7F013944 +/* 0484A8 7F013938 00044E03 */ sra $t1, $a0, 0x18 +/* 0484AC 7F01393C AE000004 */ sw $zero, 4($s0) +.L7F013940: +/* 0484B0 7F013940 00044E03 */ sra $t1, $a0, 0x18 +.L7F013944: +/* 0484B4 7F013944 01202025 */ move $a0, $t1 +/* 0484B8 7F013948 2405FFFE */ li $a1, -2 +/* 0484BC 7F01394C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484C0 7F013950 24060001 */ li $a2, 1 +/* 0484C4 7F013954 2401FFFF */ li $at, -1 +/* 0484C8 7F013958 10410007 */ beq $v0, $at, .L7F013978 +/* 0484CC 7F01395C 00112600 */ sll $a0, $s1, 0x18 +/* 0484D0 7F013960 00045603 */ sra $t2, $a0, 0x18 +/* 0484D4 7F013964 01402025 */ move $a0, $t2 +/* 0484D8 7F013968 2405FFFE */ li $a1, -2 +/* 0484DC 7F01396C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484E0 7F013970 24060001 */ li $a2, 1 +/* 0484E4 7F013974 14400004 */ bnez $v0, .L7F013988 +.L7F013978: +/* 0484E8 7F013978 240B0001 */ li $t3, 1 +/* 0484EC 7F01397C AEAB0000 */ sw $t3, ($s5) +/* 0484F0 7F013980 10000003 */ b .L7F013990 +/* 0484F4 7F013984 8E620000 */ lw $v0, ($s3) +.L7F013988: +/* 0484F8 7F013988 AEA00000 */ sw $zero, ($s5) +/* 0484FC 7F01398C 8E620000 */ lw $v0, ($s3) +.L7F013990: +/* 048500 7F013990 10400004 */ beqz $v0, .L7F0139A4 +/* 048504 7F013994 26520001 */ addiu $s2, $s2, 1 +/* 048508 7F013998 8FAC0054 */ lw $t4, 0x54($sp) +/* 04850C 7F01399C 258D0001 */ addiu $t5, $t4, 1 +/* 048510 7F0139A0 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0139A4: +/* 048514 7F0139A4 26D60004 */ addiu $s6, $s6, 4 +/* 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 +/* 048528 7F0139B8 0FC02DD1 */ jal disable_all_switches +/* 04852C 7F0139BC 8E040000 */ lw $a0, ($s0) +/* 048530 7F0139C0 8E040000 */ lw $a0, ($s0) +/* 048534 7F0139C4 00002825 */ move $a1, $zero +/* 048538 7F0139C8 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 04853C 7F0139CC 24060001 */ li $a2, 1 +/* 048540 7F0139D0 8E040000 */ lw $a0, ($s0) +/* 048544 7F0139D4 2405002A */ li $a1, 42 +/* 048548 7F0139D8 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 04854C 7F0139DC 24060001 */ li $a2, 1 +/* 048550 7F0139E0 0FC026E9 */ jal menu_control_stick_tracking +/* 048554 7F0139E4 00000000 */ nop +/* 048558 7F0139E8 8FAE0054 */ lw $t6, 0x54($sp) +/* 04855C 7F0139EC 2404000E */ li $a0, 14 +/* 048560 7F0139F0 55D70004 */ bnel $t6, $s7, .L7F013A04 +/* 048564 7F0139F4 8FBF003C */ lw $ra, 0x3c($sp) +/* 048568 7F0139F8 0FC069E2 */ jal set_menu_to_mode +/* 04856C 7F0139FC 00002825 */ move $a1, $zero +/* 048570 7F013A00 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013A04: +/* 048574 7F013A04 8FB00018 */ lw $s0, 0x18($sp) +/* 048578 7F013A08 8FB1001C */ lw $s1, 0x1c($sp) +/* 04857C 7F013A0C 8FB20020 */ lw $s2, 0x20($sp) +/* 048580 7F013A10 8FB30024 */ lw $s3, 0x24($sp) +/* 048584 7F013A14 8FB40028 */ lw $s4, 0x28($sp) +/* 048588 7F013A18 8FB5002C */ lw $s5, 0x2c($sp) +/* 04858C 7F013A1C 8FB60030 */ lw $s6, 0x30($sp) +/* 048590 7F013A20 8FB70034 */ lw $s7, 0x34($sp) +/* 048594 7F013A24 8FBE0038 */ lw $fp, 0x38($sp) +/* 048598 7F013A28 03E00008 */ jr $ra +/* 04859C 7F013A2C 27BD0060 */ addiu $sp, $sp, 0x60 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void constructor_menu11_mpcontrol(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s6; + s32 temp_v0; + s32 phi_s6; + s32 phi_s3; + s32 phi_s2; + void *phi_v0; + s32 phi_s5; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_v1; + s32 phi_v1_2; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_2 = temp_s1; + if (spCC >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_2 = temp_ret_2; + } + if (spCC > 0) + { + sp74 = &has_selected_char_player1; + sp70 = &controlstyle_player; + phi_s6 = 0; +loop_4: + if (spCC == 2) + { + if (phi_s6 > 0) + { + phi_s3 = 0x26; + phi_s2 = 0xaa; + phi_s5 = 0x15e; + } + else + { + phi_s3 = 0x26; + phi_s2 = 0 + 0x1e; + phi_s5 = 0x15e; + } + } + else + { + if (phi_s6 >= 2) + { + phi_v1_2 = 0x8c; + } + else + { + phi_v1_2 = 0; + } + if ((phi_s6 & 1) != 0) + { + phi_v1 = 0xaf; + } + else + { + phi_v1 = 0; + } + phi_s3 = phi_v1 + 0x26; + phi_s2 = phi_v1_2 + 0x1e; + phi_s5 = 0xaf; + } + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s3 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s2 + 5) * 4.0f) & 0xfff)); + phi_v0->unk4 = (s32) ((((s32) ((f32) ((phi_s3 + phi_s5) + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s2 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp74 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x11d)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); + sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 4))->unk-4B10); + sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); + sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); + get_video2_settings_txtClipW(); + temp_s6 = phi_s6 + 1; + sp70 = (void *) (sp70 + 4); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + sp74 = (void *) (sp74 + 4); + phi_s6 = temp_s6; + phi_v0 = temp_v0; + phi_s1_2 = temp_v0; + if (temp_s6 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_2); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu11_mpcontrol +/* 0484B0 7F013980 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0484B4 7F013984 AFBF0064 */ sw $ra, 0x64($sp) +/* 0484B8 7F013988 AFB10044 */ sw $s1, 0x44($sp) +/* 0484BC 7F01398C 00808825 */ move $s1, $a0 +/* 0484C0 7F013990 AFBE0060 */ sw $fp, 0x60($sp) +/* 0484C4 7F013994 AFB7005C */ sw $s7, 0x5c($sp) +/* 0484C8 7F013998 AFB60058 */ sw $s6, 0x58($sp) +/* 0484CC 7F01399C AFB50054 */ sw $s5, 0x54($sp) +/* 0484D0 7F0139A0 AFB40050 */ sw $s4, 0x50($sp) +/* 0484D4 7F0139A4 AFB3004C */ sw $s3, 0x4c($sp) +/* 0484D8 7F0139A8 AFB20048 */ sw $s2, 0x48($sp) +/* 0484DC 7F0139AC AFB00040 */ sw $s0, 0x40($sp) +/* 0484E0 7F0139B0 0FC040A4 */ jal get_selected_num_players +/* 0484E4 7F0139B4 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 0484E8 7F0139B8 AFA200CC */ sw $v0, 0xcc($sp) +/* 0484EC 7F0139BC 02202025 */ move $a0, $s1 +/* 0484F0 7F0139C0 00002825 */ move $a1, $zero +/* 0484F4 7F0139C4 00003025 */ move $a2, $zero +/* 0484F8 7F0139C8 0C0011B4 */ jal set_setfillcolor +/* 0484FC 7F0139CC 00003825 */ move $a3, $zero +/* 048500 7F0139D0 0C000FBE */ jal insert_generic_fillrect +/* 048504 7F0139D4 00402025 */ move $a0, $v0 +/* 048508 7F0139D8 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04850C 7F0139DC 00402025 */ move $a0, $v0 +/* 048510 7F0139E0 0FC2B366 */ jal microcode_constructor +/* 048514 7F0139E4 00402025 */ move $a0, $v0 +/* 048518 7F0139E8 240E00AB */ li $t6, 171 +/* 04851C 7F0139EC 240F0090 */ li $t7, 144 +/* 048520 7F0139F0 AFAF0014 */ sw $t7, 0x14($sp) +/* 048524 7F0139F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 048528 7F0139F8 00402025 */ move $a0, $v0 +/* 04852C 7F0139FC 24050026 */ li $a1, 38 +/* 048530 7F013A00 240600A9 */ li $a2, 169 +/* 048534 7F013A04 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 048538 7F013A08 24070184 */ li $a3, 388 +/* 04853C 7F013A0C 8FA800CC */ lw $t0, 0xcc($sp) +/* 048540 7F013A10 00408825 */ move $s1, $v0 +/* 048544 7F013A14 02202025 */ move $a0, $s1 +/* 048548 7F013A18 29010003 */ slti $at, $t0, 3 +/* 04854C 7F013A1C 1420000A */ bnez $at, .L7F013A48 +/* 048550 7F013A20 240500D4 */ li $a1, 212 +/* 048554 7F013A24 24180136 */ li $t8, 310 +/* 048558 7F013A28 24190080 */ li $t9, 128 +/* 04855C 7F013A2C AFB90014 */ sw $t9, 0x14($sp) +/* 048560 7F013A30 AFB80010 */ sw $t8, 0x10($sp) +/* 048564 7F013A34 2406001E */ li $a2, 30 +/* 048568 7F013A38 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04856C 7F013A3C 240700D6 */ li $a3, 214 +/* 048570 7F013A40 00408825 */ move $s1, $v0 +/* 048574 7F013A44 8FA800CC */ lw $t0, 0xcc($sp) +.L7F013A48: +/* 048578 7F013A48 190000BC */ blez $t0, .L7F013D3C +/* 04857C 7F013A4C 0000B025 */ move $s6, $zero +/* 048580 7F013A50 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 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 +/* 048594 7F013A64 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 048598 7F013A68 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 04859C 7F013A6C 4481A000 */ mtc1 $at, $f20 +/* 0485A0 7F013A70 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 0485A4 7F013A74 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 0485A8 7F013A78 AFA90074 */ sw $t1, 0x74($sp) +/* 0485AC 7F013A7C AFAA0070 */ sw $t2, 0x70($sp) +.L7F013A80: +/* 0485B0 7F013A80 8FA800CC */ lw $t0, 0xcc($sp) +/* 0485B4 7F013A84 24010002 */ li $at, 2 +/* 0485B8 7F013A88 24130026 */ li $s3, 38 +/* 0485BC 7F013A8C 15010008 */ bne $t0, $at, .L7F013AB0 +/* 0485C0 7F013A90 32CB0001 */ andi $t3, $s6, 1 +/* 0485C4 7F013A94 1AC00003 */ blez $s6, .L7F013AA4 +/* 0485C8 7F013A98 2415015E */ li $s5, 350 +/* 0485CC 7F013A9C 10000010 */ b .L7F013AE0 +/* 0485D0 7F013AA0 241200AA */ li $s2, 170 +.L7F013AA4: +/* 0485D4 7F013AA4 00001825 */ move $v1, $zero +/* 0485D8 7F013AA8 1000000D */ b .L7F013AE0 +/* 0485DC 7F013AAC 2472001E */ addiu $s2, $v1, 0x1e +.L7F013AB0: +/* 0485E0 7F013AB0 2AC10002 */ slti $at, $s6, 2 +/* 0485E4 7F013AB4 14200003 */ bnez $at, .L7F013AC4 +/* 0485E8 7F013AB8 241500AF */ li $s5, 175 +/* 0485EC 7F013ABC 10000002 */ b .L7F013AC8 +/* 0485F0 7F013AC0 2403008C */ li $v1, 140 +.L7F013AC4: +/* 0485F4 7F013AC4 00001825 */ move $v1, $zero +.L7F013AC8: +/* 0485F8 7F013AC8 11600003 */ beqz $t3, .L7F013AD8 +/* 0485FC 7F013ACC 2472001E */ addiu $s2, $v1, 0x1e +/* 048600 7F013AD0 10000002 */ b .L7F013ADC +/* 048604 7F013AD4 240300AF */ li $v1, 175 +.L7F013AD8: +/* 048608 7F013AD8 00001825 */ move $v1, $zero +.L7F013ADC: +/* 04860C 7F013ADC 24730026 */ addiu $s3, $v1, 0x26 +.L7F013AE0: +/* 048610 7F013AE0 266C0006 */ addiu $t4, $s3, 6 +/* 048614 7F013AE4 448C2000 */ mtc1 $t4, $f4 +/* 048618 7F013AE8 26490005 */ addiu $t1, $s2, 5 +/* 04861C 7F013AEC 44898000 */ mtc1 $t1, $f16 +/* 048620 7F013AF0 468021A0 */ cvt.s.w $f6, $f4 +/* 048624 7F013AF4 3C01ED00 */ lui $at, 0xed00 +/* 048628 7F013AF8 24510008 */ addiu $s1, $v0, 8 +/* 04862C 7F013AFC 468084A0 */ cvt.s.w $f18, $f16 +/* 048630 7F013B00 46143202 */ mul.s $f8, $f6, $f20 +/* 048634 7F013B04 4600428D */ trunc.w.s $f10, $f8 +/* 048638 7F013B08 46149102 */ mul.s $f4, $f18, $f20 +/* 04863C 7F013B0C 440E5000 */ mfc1 $t6, $f10 +/* 048640 7F013B10 00000000 */ nop +/* 048644 7F013B14 31CF0FFF */ andi $t7, $t6, 0xfff +/* 048648 7F013B18 4600218D */ trunc.w.s $f6, $f4 +/* 04864C 7F013B1C 000FC300 */ sll $t8, $t7, 0xc +/* 048650 7F013B20 02757021 */ addu $t6, $s3, $s5 +/* 048654 7F013B24 25CFFFFA */ addiu $t7, $t6, -6 +/* 048658 7F013B28 440B3000 */ mfc1 $t3, $f6 +/* 04865C 7F013B2C 448F4000 */ mtc1 $t7, $f8 +/* 048660 7F013B30 0301C825 */ or $t9, $t8, $at +/* 048664 7F013B34 316C0FFF */ andi $t4, $t3, 0xfff +/* 048668 7F013B38 032C6825 */ or $t5, $t9, $t4 +/* 04866C 7F013B3C 26590087 */ addiu $t9, $s2, 0x87 +/* 048670 7F013B40 468042A0 */ cvt.s.w $f10, $f8 +/* 048674 7F013B44 44992000 */ mtc1 $t9, $f4 +/* 048678 7F013B48 AC4D0000 */ sw $t5, ($v0) +/* 04867C 7F013B4C 468021A0 */ cvt.s.w $f6, $f4 +/* 048680 7F013B50 46145402 */ mul.s $f16, $f10, $f20 +/* 048684 7F013B54 00000000 */ nop +/* 048688 7F013B58 46143202 */ mul.s $f8, $f6, $f20 +/* 04868C 7F013B5C 4600848D */ trunc.w.s $f18, $f16 +/* 048690 7F013B60 4600428D */ trunc.w.s $f10, $f8 +/* 048694 7F013B64 44099000 */ mfc1 $t1, $f18 +/* 048698 7F013B68 440D5000 */ mfc1 $t5, $f10 +/* 04869C 7F013B6C 312A0FFF */ andi $t2, $t1, 0xfff +/* 0486A0 7F013B70 000A5B00 */ sll $t3, $t2, 0xc +/* 0486A4 7F013B74 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0486A8 7F013B78 016E7825 */ or $t7, $t3, $t6 +/* 0486AC 7F013B7C AC4F0004 */ sw $t7, 4($v0) +/* 0486B0 7F013B80 8FB80074 */ lw $t8, 0x74($sp) +/* 0486B4 7F013B84 8F090000 */ lw $t1, ($t8) +/* 0486B8 7F013B88 1520002F */ bnez $t1, .L7F013C48 +/* 0486BC 7F013B8C 00000000 */ nop +/* 0486C0 7F013B90 0FC30776 */ jal get_textptr_for_textID +/* 0486C4 7F013B94 34049D1D */ li $a0, 40221 +/* 0486C8 7F013B98 8FCA0000 */ lw $t2, ($fp) +/* 0486CC 7F013B9C 0040A025 */ move $s4, $v0 +/* 0486D0 7F013BA0 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0486D4 7F013BA4 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0486D8 7F013BA8 00403025 */ move $a2, $v0 +/* 0486DC 7F013BAC 8EE70000 */ lw $a3, ($s7) +/* 0486E0 7F013BB0 AFA00014 */ sw $zero, 0x14($sp) +/* 0486E4 7F013BB4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0486E8 7F013BB8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0486EC 7F013BBC 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0486F0 7F013BC0 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 0486F4 7F013BC4 0015C843 */ sra $t9, $s5, 1 +/* 0486F8 7F013BC8 000FC043 */ sra $t8, $t7, 1 +/* 0486FC 7F013BCC 03336021 */ addu $t4, $t9, $s3 +/* 048700 7F013BD0 02584823 */ subu $t1, $s2, $t8 +/* 048704 7F013BD4 000D5843 */ sra $t3, $t5, 1 +/* 048708 7F013BD8 018B7023 */ subu $t6, $t4, $t3 +/* 04870C 7F013BDC 252A0037 */ addiu $t2, $t1, 0x37 +/* 048710 7F013BE0 AFAE009C */ sw $t6, 0x9c($sp) +/* 048714 7F013BE4 AFAA0098 */ sw $t2, 0x98($sp) +/* 048718 7F013BE8 0FC2B366 */ jal microcode_constructor +/* 04871C 7F013BEC 02202025 */ move $a0, $s1 +/* 048720 7F013BF0 0C001107 */ jal get_video2_settings_txtClipW +/* 048724 7F013BF4 00408825 */ move $s1, $v0 +/* 048728 7F013BF8 00028400 */ sll $s0, $v0, 0x10 +/* 04872C 7F013BFC 0010CC03 */ sra $t9, $s0, 0x10 +/* 048730 7F013C00 0C00110B */ jal get_video2_settings_txtClipH +/* 048734 7F013C04 03208025 */ move $s0, $t9 +/* 048738 7F013C08 8EED0000 */ lw $t5, ($s7) +/* 04873C 7F013C0C 8FCC0000 */ lw $t4, ($fp) +/* 048740 7F013C10 240B00FF */ li $t3, 255 +/* 048744 7F013C14 AFAB0018 */ sw $t3, 0x18($sp) +/* 048748 7F013C18 02202025 */ move $a0, $s1 +/* 04874C 7F013C1C 27A5009C */ addiu $a1, $sp, 0x9c +/* 048750 7F013C20 27A60098 */ addiu $a2, $sp, 0x98 +/* 048754 7F013C24 02803825 */ move $a3, $s4 +/* 048758 7F013C28 AFB0001C */ sw $s0, 0x1c($sp) +/* 04875C 7F013C2C AFA20020 */ sw $v0, 0x20($sp) +/* 048760 7F013C30 AFA00024 */ sw $zero, 0x24($sp) +/* 048764 7F013C34 AFA00028 */ sw $zero, 0x28($sp) +/* 048768 7F013C38 AFAD0010 */ sw $t5, 0x10($sp) +/* 04876C 7F013C3C 0FC025D8 */ jal write_text_at_abs_coord +/* 048770 7F013C40 AFAC0014 */ sw $t4, 0x14($sp) +/* 048774 7F013C44 00408825 */ move $s1, $v0 +.L7F013C48: +/* 048778 7F013C48 8FAE0070 */ lw $t6, 0x70($sp) +/* 04877C 7F013C4C 3C048003 */ lui $a0, %hi(MP_controller_configuration_table) +/* 048780 7F013C50 00154843 */ sra $t1, $s5, 1 +/* 048784 7F013C54 8DCF0000 */ lw $t7, ($t6) +/* 048788 7F013C58 01338021 */ addu $s0, $t1, $s3 +/* 04878C 7F013C5C 26540046 */ addiu $s4, $s2, 0x46 +/* 048790 7F013C60 000FC080 */ sll $t8, $t7, 2 +/* 048794 7F013C64 00982021 */ addu $a0, $a0, $t8 +/* 048798 7F013C68 0FC30776 */ jal get_textptr_for_textID +/* 04879C 7F013C6C 9484B4F0 */ lhu $a0, %lo(MP_controller_configuration_table)($a0) +/* 0487A0 7F013C70 8FCA0000 */ lw $t2, ($fp) +/* 0487A4 7F013C74 00409025 */ move $s2, $v0 +/* 0487A8 7F013C78 27A40090 */ addiu $a0, $sp, 0x90 +/* 0487AC 7F013C7C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0487B0 7F013C80 00403025 */ move $a2, $v0 +/* 0487B4 7F013C84 8EE70000 */ lw $a3, ($s7) +/* 0487B8 7F013C88 AFA00014 */ sw $zero, 0x14($sp) +/* 0487BC 7F013C8C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0487C0 7F013C90 AFAA0010 */ sw $t2, 0x10($sp) +/* 0487C4 7F013C94 8FAB0090 */ lw $t3, 0x90($sp) +/* 0487C8 7F013C98 8FB9008C */ lw $t9, 0x8c($sp) +/* 0487CC 7F013C9C 02202025 */ move $a0, $s1 +/* 0487D0 7F013CA0 000B7043 */ sra $t6, $t3, 1 +/* 0487D4 7F013CA4 028E7823 */ subu $t7, $s4, $t6 +/* 0487D8 7F013CA8 00196843 */ sra $t5, $t9, 1 +/* 0487DC 7F013CAC 020D6023 */ subu $t4, $s0, $t5 +/* 0487E0 7F013CB0 25F8000F */ addiu $t8, $t7, 0xf +/* 0487E4 7F013CB4 AFAC0088 */ sw $t4, 0x88($sp) +/* 0487E8 7F013CB8 0FC2B366 */ jal microcode_constructor +/* 0487EC 7F013CBC AFB80084 */ sw $t8, 0x84($sp) +/* 0487F0 7F013CC0 0C001107 */ jal get_video2_settings_txtClipW +/* 0487F4 7F013CC4 00408825 */ move $s1, $v0 +/* 0487F8 7F013CC8 00028400 */ sll $s0, $v0, 0x10 +/* 0487FC 7F013CCC 00104C03 */ sra $t1, $s0, 0x10 +/* 048800 7F013CD0 0C00110B */ jal get_video2_settings_txtClipH +/* 048804 7F013CD4 01208025 */ move $s0, $t1 +/* 048808 7F013CD8 8EEA0000 */ lw $t2, ($s7) +/* 04880C 7F013CDC 8FD90000 */ lw $t9, ($fp) +/* 048810 7F013CE0 240D00FF */ li $t5, 255 +/* 048814 7F013CE4 AFAD0018 */ sw $t5, 0x18($sp) +/* 048818 7F013CE8 02202025 */ move $a0, $s1 +/* 04881C 7F013CEC 27A50088 */ addiu $a1, $sp, 0x88 +/* 048820 7F013CF0 27A60084 */ addiu $a2, $sp, 0x84 +/* 048824 7F013CF4 02403825 */ move $a3, $s2 +/* 048828 7F013CF8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04882C 7F013CFC AFA20020 */ sw $v0, 0x20($sp) +/* 048830 7F013D00 AFA00024 */ sw $zero, 0x24($sp) +/* 048834 7F013D04 AFA00028 */ sw $zero, 0x28($sp) +/* 048838 7F013D08 AFAA0010 */ sw $t2, 0x10($sp) +/* 04883C 7F013D0C 0FC025D8 */ jal write_text_at_abs_coord +/* 048840 7F013D10 AFB90014 */ sw $t9, 0x14($sp) +/* 048844 7F013D14 8FAC0074 */ lw $t4, 0x74($sp) +/* 048848 7F013D18 8FAE0070 */ lw $t6, 0x70($sp) +/* 04884C 7F013D1C 8FB800CC */ lw $t8, 0xcc($sp) +/* 048850 7F013D20 26D60001 */ addiu $s6, $s6, 1 +/* 048854 7F013D24 258B0004 */ addiu $t3, $t4, 4 +/* 048858 7F013D28 25CF0004 */ addiu $t7, $t6, 4 +/* 04885C 7F013D2C AFAF0070 */ sw $t7, 0x70($sp) +/* 048860 7F013D30 AFAB0074 */ sw $t3, 0x74($sp) +/* 048864 7F013D34 16D8FF52 */ bne $s6, $t8, .L7F013A80 +/* 048868 7F013D38 00408825 */ move $s1, $v0 +.L7F013D3C: +/* 04886C 7F013D3C 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 048870 7F013D40 02202025 */ move $a0, $s1 +/* 048874 7F013D44 8FBF0064 */ lw $ra, 0x64($sp) +/* 048878 7F013D48 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 04887C 7F013D4C 8FB00040 */ lw $s0, 0x40($sp) +/* 048880 7F013D50 8FB10044 */ lw $s1, 0x44($sp) +/* 048884 7F013D54 8FB20048 */ lw $s2, 0x48($sp) +/* 048888 7F013D58 8FB3004C */ lw $s3, 0x4c($sp) +/* 04888C 7F013D5C 8FB40050 */ lw $s4, 0x50($sp) +/* 048890 7F013D60 8FB50054 */ lw $s5, 0x54($sp) +/* 048894 7F013D64 8FB60058 */ lw $s6, 0x58($sp) +/* 048898 7F013D68 8FB7005C */ lw $s7, 0x5c($sp) +/* 04889C 7F013D6C 8FBE0060 */ lw $fp, 0x60($sp) +/* 0488A0 7F013D70 03E00008 */ jr $ra +/* 0488A4 7F013D74 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +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; + current_mp_stage_highlighted = MP_STAGE_RANDOM; + load_walletbond(); +} + +void update_menu12_mpstage(void) { +return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu12_mpstage(void) +{ + s32 temp_a0; + s32 temp_a0_2; + s32 temp_f10; + s32 temp_f6; + s32 phi_v1; + s32 phi_v0; + + setvideo_far(0x42700000); + video_related_21(D_80051AA0); + set_page_height(0x42c80000, D_80051AA4); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xb000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + cursor_v_pos = 1; + } + else + { + temp_f6 = (s32) *(void *)0x80030000; + if (temp_f6 >= 0xf0) + { + phi_v1 = 2; + } + else + { + phi_v1 = 0; + if (temp_f6 >= 0xaa) + { + phi_v1 = 1; + } + } + temp_f10 = (s32) cursor_h_pos; + if (temp_f10 >= 0x124) + { + phi_v0 = 3; + } + else + { + if (temp_f10 >= 0xcf) + { + phi_v0 = 2; + } + else + { + phi_v0 = 0; + if (temp_f10 >= 0x7a) + { + phi_v0 = 1; + } + } + } + temp_a0 = (phi_v1 * 4) + phi_v0; + current_mp_stage_highlighted = temp_a0; + if (check_if_mp_stage_unlocked(temp_a0) == 0) + { +loop_14: + temp_a0_2 = current_mp_stage_highlighted + -1; + current_mp_stage_highlighted = temp_a0_2; + if (check_if_mp_stage_unlocked(temp_a0_2) == 0) + { + goto loop_14; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + if (current_mp_stage_highlighted >= 0) + { + tab_2_selected = 1; + MP_stage_selected = (s32) current_mp_stage_highlighted; + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 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, 0x2a, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AA0 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AA4 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu12_mpstage +/* 048904 7F013DD4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 048908 7F013DD8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04890C 7F013DDC AFBF001C */ sw $ra, 0x1c($sp) +/* 048910 7F013DE0 44816000 */ mtc1 $at, $f12 +/* 048914 7F013DE4 0C001151 */ jal setvideo_far +/* 048918 7F013DE8 AFB00018 */ sw $s0, 0x18($sp) +/* 04891C 7F013DEC 3C018005 */ lui $at, %hi(D_80051AA0) +/* 048920 7F013DF0 0C001164 */ jal video_related_21 +/* 048924 7F013DF4 C42C1AA0 */ lwc1 $f12, %lo(D_80051AA0)($at) +/* 048928 7F013DF8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04892C 7F013DFC 44816000 */ mtc1 $at, $f12 +/* 048930 7F013E00 3C018005 */ lui $at, %hi(D_80051AA4) +/* 048934 7F013E04 0C001194 */ jal set_page_height +/* 048938 7F013E08 C42E1AA4 */ lwc1 $f14, %lo(D_80051AA4)($at) +/* 04893C 7F013E0C 0C00114D */ jal set_video2_settings_offset_24 +/* 048940 7F013E10 00002025 */ move $a0, $zero +/* 048944 7F013E14 00002025 */ move $a0, $zero +/* 048948 7F013E18 0C0030C3 */ jal get_controller_buttons_held +/* 04894C 7F013E1C 3405B000 */ li $a1, 45056 +/* 048950 7F013E20 1440003D */ bnez $v0, .L7F013F18 +/* 048954 7F013E24 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 048958 7F013E28 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04895C 7F013E2C 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 048960 7F013E30 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 048964 7F013E34 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 048968 7F013E38 0FC028E7 */ jal isontab3 +/* 04896C 7F013E3C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 048970 7F013E40 10400005 */ beqz $v0, .L7F013E58 +/* 048974 7F013E44 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 048978 7F013E48 240E0001 */ li $t6, 1 +/* 04897C 7F013E4C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 048980 7F013E50 10000031 */ b .L7F013F18 +/* 048984 7F013E54 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F013E58: +/* 048988 7F013E58 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 04898C 7F013E5C 3C108007 */ lui $s0, %hi(current_mp_stage_highlighted) +/* 048990 7F013E60 2610977C */ addiu $s0, %lo(current_mp_stage_highlighted) # addiu $s0, $s0, -0x6884 +/* 048994 7F013E64 4600218D */ trunc.w.s $f6, $f4 +/* 048998 7F013E68 44023000 */ mfc1 $v0, $f6 +/* 04899C 7F013E6C 00000000 */ nop +/* 0489A0 7F013E70 284100F0 */ slti $at, $v0, 0xf0 +/* 0489A4 7F013E74 54200004 */ bnezl $at, .L7F013E88 +/* 0489A8 7F013E78 284100AA */ slti $at, $v0, 0xaa +/* 0489AC 7F013E7C 10000006 */ b .L7F013E98 +/* 0489B0 7F013E80 24030002 */ li $v1, 2 +/* 0489B4 7F013E84 284100AA */ slti $at, $v0, 0xaa +.L7F013E88: +/* 0489B8 7F013E88 14200003 */ bnez $at, .L7F013E98 +/* 0489BC 7F013E8C 00001825 */ move $v1, $zero +/* 0489C0 7F013E90 10000001 */ b .L7F013E98 +/* 0489C4 7F013E94 24030001 */ li $v1, 1 +.L7F013E98: +/* 0489C8 7F013E98 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0489CC 7F013E9C C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 0489D0 7F013EA0 0003C880 */ sll $t9, $v1, 2 +/* 0489D4 7F013EA4 4600428D */ trunc.w.s $f10, $f8 +/* 0489D8 7F013EA8 44025000 */ mfc1 $v0, $f10 +/* 0489DC 7F013EAC 00000000 */ nop +/* 0489E0 7F013EB0 28410124 */ slti $at, $v0, 0x124 +/* 0489E4 7F013EB4 54200004 */ bnezl $at, .L7F013EC8 +/* 0489E8 7F013EB8 284100CF */ slti $at, $v0, 0xcf +/* 0489EC 7F013EBC 1000000B */ b .L7F013EEC +/* 0489F0 7F013EC0 24020003 */ li $v0, 3 +/* 0489F4 7F013EC4 284100CF */ slti $at, $v0, 0xcf +.L7F013EC8: +/* 0489F8 7F013EC8 54200004 */ bnezl $at, .L7F013EDC +/* 0489FC 7F013ECC 2841007A */ slti $at, $v0, 0x7a +/* 048A00 7F013ED0 10000006 */ b .L7F013EEC +/* 048A04 7F013ED4 24020002 */ li $v0, 2 +/* 048A08 7F013ED8 2841007A */ slti $at, $v0, 0x7a +.L7F013EDC: +/* 048A0C 7F013EDC 14200003 */ bnez $at, .L7F013EEC +/* 048A10 7F013EE0 00001025 */ move $v0, $zero +/* 048A14 7F013EE4 10000001 */ b .L7F013EEC +/* 048A18 7F013EE8 24020001 */ li $v0, 1 +.L7F013EEC: +/* 048A1C 7F013EEC 03222021 */ addu $a0, $t9, $v0 +/* 048A20 7F013EF0 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048A24 7F013EF4 AE040000 */ sw $a0, ($s0) +/* 048A28 7F013EF8 14400007 */ bnez $v0, .L7F013F18 +/* 048A2C 7F013EFC 00000000 */ nop +/* 048A30 7F013F00 8E090000 */ lw $t1, ($s0) +.L7F013F04: +/* 048A34 7F013F04 2524FFFF */ addiu $a0, $t1, -1 +/* 048A38 7F013F08 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048A3C 7F013F0C AE040000 */ sw $a0, ($s0) +/* 048A40 7F013F10 5040FFFC */ beql $v0, $zero, .L7F013F04 +/* 048A44 7F013F14 8E090000 */ lw $t1, ($s0) +.L7F013F18: +/* 048A48 7F013F18 3C108007 */ lui $s0, %hi(current_mp_stage_highlighted) +/* 048A4C 7F013F1C 2610977C */ addiu $s0, %lo(current_mp_stage_highlighted) # addiu $s0, $s0, -0x6884 +/* 048A50 7F013F20 00002025 */ move $a0, $zero +/* 048A54 7F013F24 0C0030EB */ jal get_controller_buttons_pressed +/* 048A58 7F013F28 3405B000 */ li $a1, 45056 +/* 048A5C 7F013F2C 10400015 */ beqz $v0, .L7F013F84 +/* 048A60 7F013F30 24030001 */ li $v1, 1 +/* 048A64 7F013F34 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 048A68 7F013F38 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 048A6C 7F013F3C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048A70 7F013F40 240500C7 */ li $a1, 199 +/* 048A74 7F013F44 11600004 */ beqz $t3, .L7F013F58 +/* 048A78 7F013F48 00003025 */ move $a2, $zero +/* 048A7C 7F013F4C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 048A80 7F013F50 10000008 */ b .L7F013F74 +/* 048A84 7F013F54 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F013F58: +/* 048A88 7F013F58 8E020000 */ lw $v0, ($s0) +/* 048A8C 7F013F5C 3C018003 */ lui $at, %hi(tab_2_selected) +/* 048A90 7F013F60 04400004 */ bltz $v0, .L7F013F74 +/* 048A94 7F013F64 00000000 */ nop +/* 048A98 7F013F68 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 048A9C 7F013F6C 3C018003 */ lui $at, %hi(MP_stage_selected) +/* 048AA0 7F013F70 AC22B534 */ sw $v0, %lo(MP_stage_selected)($at) +.L7F013F74: +/* 048AA4 7F013F74 0C002382 */ jal play_sfx_a1 +/* 048AA8 7F013F78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AAC 7F013F7C 1000000D */ b .L7F013FB4 +/* 048AB0 7F013F80 00000000 */ nop +.L7F013F84: +/* 048AB4 7F013F84 00002025 */ move $a0, $zero +/* 048AB8 7F013F88 0C0030EB */ jal get_controller_buttons_pressed +/* 048ABC 7F013F8C 24054000 */ li $a1, 16384 +/* 048AC0 7F013F90 10400008 */ beqz $v0, .L7F013FB4 +/* 048AC4 7F013F94 24030001 */ li $v1, 1 +/* 048AC8 7F013F98 3C018003 */ lui $at, %hi(tab_3_selected) +/* 048ACC 7F013F9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048AD0 7F013FA0 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 048AD4 7F013FA4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AD8 7F013FA8 240500C7 */ li $a1, 199 +/* 048ADC 7F013FAC 0C002382 */ jal play_sfx_a1 +/* 048AE0 7F013FB0 00003025 */ move $a2, $zero +.L7F013FB4: +/* 048AE4 7F013FB4 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 048AE8 7F013FB8 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 048AEC 7F013FBC 0FC02DC9 */ jal disable_all_switches +/* 048AF0 7F013FC0 8E040000 */ lw $a0, ($s0) +/* 048AF4 7F013FC4 8E040000 */ lw $a0, ($s0) +/* 048AF8 7F013FC8 00002825 */ move $a1, $zero +/* 048AFC 7F013FCC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B00 7F013FD0 24060001 */ li $a2, 1 +/* 048B04 7F013FD4 8E040000 */ lw $a0, ($s0) +/* 048B08 7F013FD8 2405002A */ li $a1, 42 +/* 048B0C 7F013FDC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B10 7F013FE0 24060001 */ li $a2, 1 +/* 048B14 7F013FE4 8E040000 */ lw $a0, ($s0) +/* 048B18 7F013FE8 24050003 */ li $a1, 3 +/* 048B1C 7F013FEC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B20 7F013FF0 24060001 */ li $a2, 1 +/* 048B24 7F013FF4 0FC026E1 */ jal menu_control_stick_tracking +/* 048B28 7F013FF8 00000000 */ nop +/* 048B2C 7F013FFC 3C0C8003 */ lui $t4, %hi(tab_2_selected) +/* 048B30 7F014000 8D8CA8D4 */ lw $t4, %lo(tab_2_selected)($t4) +/* 048B34 7F014004 2404000E */ li $a0, 14 +/* 048B38 7F014008 3C0D8003 */ lui $t5, %hi(tab_3_selected) +/* 048B3C 7F01400C 11800005 */ beqz $t4, .L7F014024 +/* 048B40 7F014010 00000000 */ nop +/* 048B44 7F014014 0FC06975 */ jal set_menu_to_mode +/* 048B48 7F014018 00002825 */ move $a1, $zero +/* 048B4C 7F01401C 10000008 */ b .L7F014040 +/* 048B50 7F014020 8FBF001C */ lw $ra, 0x1c($sp) +.L7F014024: +/* 048B54 7F014024 8DADA8D8 */ lw $t5, %lo(tab_3_selected)($t5) +/* 048B58 7F014028 2404000E */ li $a0, 14 +/* 048B5C 7F01402C 51A00004 */ beql $t5, $zero, .L7F014040 +/* 048B60 7F014030 8FBF001C */ lw $ra, 0x1c($sp) +/* 048B64 7F014034 0FC06975 */ jal set_menu_to_mode +/* 048B68 7F014038 00002825 */ move $a1, $zero +/* 048B6C 7F01403C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F014040: +/* 048B70 7F014040 8FB00018 */ lw $s0, 0x18($sp) +/* 048B74 7F014044 27BD0020 */ addiu $sp, $sp, 0x20 +/* 048B78 7F014048 03E00008 */ jr $ra +/* 048B7C 7F01404C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu12_mpstage(s32 arg0) +{ + s32 sp130; + s32 sp12C; + s32 sp128; + s32 sp124; + f32 sp104; + f32 sp100; + f32 spF8; + f32 spDC; + f32 spD8; + f32 spD4; + f32 spD0; + s32 spB4; + s32 sp9C; + s32 sp90; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_s0; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s2; + s32 temp_s4_3; + s32 temp_s5_2; + s32 temp_s7; + s32 temp_t1; + s32 temp_t4; + s32 temp_t5; + s32 temp_t7; + s32 temp_t9; + s32 temp_v0; + s32 temp_v0_2; + s32 temp_v0_3; + s32 temp_v0_4; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s3; + void *temp_s3_2; + void *temp_s4; + void *temp_s4_2; + void *temp_s5; + s32 phi_s1; + s32 phi_s0; + s32 phi_s1_2; + s32 phi_s1_3; + s32 phi_s2; + s32 phi_s5; + s32 phi_s6; + s32 phi_s2_2; + s32 phi_s7; + + temp_ret = set_setfillcolor(0, 0, 0); + arg0 = temp_ret; + temp_ret_2 = insert_generic_fillrect(temp_ret); + arg0 = temp_ret_2; + temp_ret_3 = sub_GAME_7F00D5E8(temp_ret_2); + arg0 = temp_ret_3; + arg0 = microcode_constructor(temp_ret_3); + phi_s1 = 0x6c; + phi_s0 = 0xa0; +loop_1: + temp_ret_4 = microcode_constructor_related_to_menus(arg0, 0x25, phi_s1, 0x185); + temp_s0 = phi_s0 + 0x46; + arg0 = temp_ret_4; + temp_v0 = temp_ret_4; + phi_s1 = phi_s1 + 0x46; + phi_s0 = temp_s0; + if (temp_s0 != 0x172) + { + goto loop_1; + } + temp_ret_5 = combiner_bayer_lod_perspective(temp_v0); + arg0 = (s32) (temp_ret_5 + 8); + temp_v0_2 = temp_ret_5; + temp_v0_2->unk0 = 0xba000c02; + temp_v0_2->unk4 = 0; + temp_s3 = &arg0; + temp_s0_2 = mainfolderimages + 0x3c; + likely_generate_DL_for_image_declaration(temp_s3, temp_s0_2, 1, 0, 2); + sp100 = (f32) (176.0f + 37.0f); + sp104 = (f32) (4.0f + 100.0f); + temp_s4 = &spF8; + spF8 = 176.0f; + phi_s1_2 = 0; +loop_3: + display_image_at_on_screen_coord(temp_s3, &sp100, temp_s4, 0x2f0, 0x12, 0, 0, 1, 0x6b, 0x67, 0x53, 0xff, (s32) (0 < temp_s0_2->unk6), 0); + sp104 = (f32) (sp104 + 60.0f); + display_image_at_on_screen_coord(temp_s3, &sp100, temp_s4, 0x2f0, 0x12, 0, 0, 1, 0x6b, 0x67, 0x53, 0xff, (s32) (0 < temp_s0_2->unk6), 0); + temp_s1 = phi_s1_2 + 1; + sp104 = (f32) ((sp104 - 60.0f) + 70.0f); + phi_s1_2 = temp_s1; + if (temp_s1 != 3) + { + goto loop_3; + } + spB4 = 0; + spDC = (f32) ((22.0f + 108.0f) + 4.0f); + temp_s5 = &spD0; + temp_s4_2 = &spD8; + spD0 = 34.0f; + spD4 = 22.0f; + phi_s1_3 = 0; +loop_5: + spD8 = 86.0f; + phi_s2 = 0; +loop_6: + if (phi_s1_3 < 0xc) + { + temp_s0_3 = ((&multi_stage_setups + (phi_s1_3 * 0x18))->unk4 * 0xc) + mpstageselimages; + likely_generate_DL_for_image_declaration(temp_s3, temp_s0_3, 1, 0, 2); + temp_t5 = arg0; + if (phi_s1_3 == current_mp_stage_highlighted) + { + arg0 = (s32) (temp_t5 + 8); + temp_t5->unk4 = 0x100000; + temp_t5->unk0 = 0xba001402; + temp_t9 = arg0; + arg0 = (s32) (temp_t9 + 8); + temp_t9->unk4 = -0xf6; + temp_t9->unk0 = 0xf8000000; + temp_t4 = arg0; + arg0 = (s32) (temp_t4 + 8); + temp_t4->unk4 = 0xc4112048; + temp_t4->unk0 = 0xb900031d; + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < temp_s0_3->unk6), 1); + } + else + { + if (check_if_mp_stage_unlocked(phi_s1_3) != 0) + { + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0x6e, 0x6e, 0x6e, 0xff, (s32) (0 < temp_s0_3->unk6), 0); + } + else + { + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0xf, 0xf, 0xf, 0xff, (s32) (0 < temp_s0_3->unk6), 0); +block_12: + } + } + } + else + { + goto block_12; + } + temp_s2 = phi_s2 + 1; + temp_s1_2 = phi_s1_3 + 1; + spD8 = (f32) (spD8 + 85.0f); + phi_s1_3 = temp_s1_2; + phi_s2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_6; + } + temp_t7 = spB4 + 1; + spB4 = temp_t7; + spDC = (f32) (spDC + 70.0f); + phi_s1_3 = temp_s1_2; + if (temp_t7 != 3) + { + goto loop_5; + } + arg0 = microcode_constructor(arg0); + sp90 = 0x97; + sp9C = 0; + phi_s5 = 0; +loop_16: + phi_s6 = 0x56; + phi_s7 = 0; +loop_17: + if (phi_s5 < 0xc) + { + if (check_if_mp_stage_unlocked(phi_s5) != 0) + { + temp_s3_2 = (((phi_s5 * 4) - phi_s5) * 8) + &multi_stage_setups; + phi_s2_2 = 0x96969600; + if (phi_s5 == current_mp_stage_highlighted) + { + phi_s2_2 = -0x100; + } + sub_GAME_7F0AE98C(&sp128, &sp124, get_textptr_for_textID(temp_s3_2->unk2), subroutine_arg0, (s32) ptrFirstFontTableSmall, 0); + temp_s4_3 = phi_s6 + -0x1f; + temp_a2 = sp90 - sp128; + arg0 = microcode_constructor_related_to_menus(arg0, temp_s4_3, temp_a2, temp_s4_3 + sp124, (s32) (temp_a2 + sp128), 0); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0xff), get_video2_settings_txtClipH(), 0, 0); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2, sp90 - sp128), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0x64), get_video2_settings_txtClipH(), 0, 0); + } + } + temp_s7 = phi_s7 + 1; + temp_s5_2 = phi_s5 + 1; + phi_s5 = temp_s5_2; + phi_s6 = phi_s6 + 0x55; + phi_s7 = temp_s7; + if (temp_s7 != 4) + { + goto loop_17; + } + temp_t1 = sp9C + 1; + sp9C = temp_t1; + sp90 = (s32) (sp90 + 0x46); + phi_s5 = temp_s5_2; + if (temp_t1 != 3) + { + goto loop_16; + } + temp_ret_6 = microcode_constructor(arg0); + arg0 = temp_ret_6; + temp_v0_3 = temp_ret_6; + temp_ret_7 = add_tab3_previous(temp_v0_3); + arg0 = temp_ret_7; + temp_v0_4 = temp_ret_7; + load_draw_selected_icon_folder_select(temp_v0_4); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu12_mpstage +/* 048B80 7F014050 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 048B84 7F014054 AFBF0074 */ sw $ra, 0x74($sp) +/* 048B88 7F014058 AFBE0070 */ sw $fp, 0x70($sp) +/* 048B8C 7F01405C AFB7006C */ sw $s7, 0x6c($sp) +/* 048B90 7F014060 AFB60068 */ sw $s6, 0x68($sp) +/* 048B94 7F014064 AFB50064 */ sw $s5, 0x64($sp) +/* 048B98 7F014068 AFB40060 */ sw $s4, 0x60($sp) +/* 048B9C 7F01406C AFB3005C */ sw $s3, 0x5c($sp) +/* 048BA0 7F014070 AFB20058 */ sw $s2, 0x58($sp) +/* 048BA4 7F014074 AFB10054 */ sw $s1, 0x54($sp) +/* 048BA8 7F014078 AFB00050 */ sw $s0, 0x50($sp) +/* 048BAC 7F01407C F7B60048 */ sdc1 $f22, 0x48($sp) +/* 048BB0 7F014080 F7B40040 */ sdc1 $f20, 0x40($sp) +/* 048BB4 7F014084 AFA40138 */ sw $a0, 0x138($sp) +/* 048BB8 7F014088 00002825 */ move $a1, $zero +/* 048BBC 7F01408C 00003025 */ move $a2, $zero +/* 048BC0 7F014090 0C0011B4 */ jal set_setfillcolor +/* 048BC4 7F014094 00003825 */ move $a3, $zero +/* 048BC8 7F014098 AFA20138 */ sw $v0, 0x138($sp) +/* 048BCC 7F01409C 0C000FBE */ jal insert_generic_fillrect +/* 048BD0 7F0140A0 00402025 */ move $a0, $v0 +/* 048BD4 7F0140A4 AFA20138 */ sw $v0, 0x138($sp) +/* 048BD8 7F0140A8 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 048BDC 7F0140AC 00402025 */ move $a0, $v0 +/* 048BE0 7F0140B0 AFA20138 */ sw $v0, 0x138($sp) +/* 048BE4 7F0140B4 0FC2B366 */ jal microcode_constructor +/* 048BE8 7F0140B8 00402025 */ move $a0, $v0 +/* 048BEC 7F0140BC 3C121010 */ lui $s2, (0x101010FF >> 16) # lui $s2, 0x1010 +/* 048BF0 7F0140C0 AFA20138 */ sw $v0, 0x138($sp) +/* 048BF4 7F0140C4 365210FF */ ori $s2, (0x101010FF & 0xFFFF) # ori $s2, $s2, 0x10ff +/* 048BF8 7F0140C8 2411006C */ li $s1, 108 +/* 048BFC 7F0140CC 241000A0 */ li $s0, 160 +/* 048C00 7F0140D0 24130172 */ li $s3, 370 +.L7F0140D4: +/* 048C04 7F0140D4 8FA40138 */ lw $a0, 0x138($sp) +/* 048C08 7F0140D8 24050025 */ li $a1, 37 +/* 048C0C 7F0140DC 02203025 */ move $a2, $s1 +/* 048C10 7F0140E0 24070185 */ li $a3, 389 +/* 048C14 7F0140E4 AFB00010 */ sw $s0, 0x10($sp) +/* 048C18 7F0140E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 048C1C 7F0140EC AFB20014 */ sw $s2, 0x14($sp) +/* 048C20 7F0140F0 26100046 */ addiu $s0, $s0, 0x46 +/* 048C24 7F0140F4 26310046 */ addiu $s1, $s1, 0x46 +/* 048C28 7F0140F8 1613FFF6 */ bne $s0, $s3, .L7F0140D4 +/* 048C2C 7F0140FC AFA20138 */ sw $v0, 0x138($sp) +/* 048C30 7F014100 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 048C34 7F014104 00402025 */ move $a0, $v0 +/* 048C38 7F014108 244E0008 */ addiu $t6, $v0, 8 +/* 048C3C 7F01410C AFAE0138 */ sw $t6, 0x138($sp) +/* 048C40 7F014110 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 048C44 7F014114 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 048C48 7F014118 AC4F0000 */ sw $t7, ($v0) +/* 048C4C 7F01411C AC400004 */ sw $zero, 4($v0) +/* 048C50 7F014120 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 048C54 7F014124 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 048C58 7F014128 27B30138 */ addiu $s3, $sp, 0x138 +/* 048C5C 7F01412C 24180002 */ li $t8, 2 +/* 048C60 7F014130 2610003C */ addiu $s0, $s0, 0x3c +/* 048C64 7F014134 02002825 */ move $a1, $s0 +/* 048C68 7F014138 AFB80010 */ sw $t8, 0x10($sp) +/* 048C6C 7F01413C 02602025 */ move $a0, $s3 +/* 048C70 7F014140 24060001 */ li $a2, 1 +/* 048C74 7F014144 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 048C78 7F014148 00003825 */ move $a3, $zero +/* 048C7C 7F01414C 3C014330 */ li $at, 0x43300000 # 176.000000 +/* 048C80 7F014150 44811000 */ mtc1 $at, $f2 +/* 048C84 7F014154 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 048C88 7F014158 44816000 */ mtc1 $at, $f12 +/* 048C8C 7F01415C 3C014214 */ li $at, 0x42140000 # 37.000000 +/* 048C90 7F014160 44812000 */ mtc1 $at, $f4 +/* 048C94 7F014164 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 048C98 7F014168 44814000 */ mtc1 $at, $f8 +/* 048C9C 7F01416C 46041180 */ add.s $f6, $f2, $f4 +/* 048CA0 7F014170 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 048CA4 7F014174 4481B000 */ mtc1 $at, $f22 +/* 048CA8 7F014178 46086000 */ add.s $f0, $f12, $f8 +/* 048CAC 7F01417C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 048CB0 7F014180 4481A000 */ mtc1 $at, $f20 +/* 048CB4 7F014184 E7A60100 */ swc1 $f6, 0x100($sp) +/* 048CB8 7F014188 E7A00104 */ swc1 $f0, 0x104($sp) +/* 048CBC 7F01418C 00008825 */ move $s1, $zero +/* 048CC0 7F014190 27B400F8 */ addiu $s4, $sp, 0xf8 +/* 048CC4 7F014194 27B20100 */ addiu $s2, $sp, 0x100 +/* 048CC8 7F014198 E7A200F8 */ swc1 $f2, 0xf8($sp) +/* 048CCC 7F01419C E7AC00FC */ swc1 $f12, 0xfc($sp) +.L7F0141A0: +/* 048CD0 7F0141A0 24190012 */ li $t9, 18 +/* 048CD4 7F0141A4 24090001 */ li $t1, 1 +/* 048CD8 7F0141A8 240A006B */ li $t2, 107 +/* 048CDC 7F0141AC 240B0067 */ li $t3, 103 +/* 048CE0 7F0141B0 240C0053 */ li $t4, 83 +/* 048CE4 7F0141B4 240D00FF */ li $t5, 255 +/* 048CE8 7F0141B8 AFAD002C */ sw $t5, 0x2c($sp) +/* 048CEC 7F0141BC AFAC0028 */ sw $t4, 0x28($sp) +/* 048CF0 7F0141C0 AFAB0024 */ sw $t3, 0x24($sp) +/* 048CF4 7F0141C4 AFAA0020 */ sw $t2, 0x20($sp) +/* 048CF8 7F0141C8 AFA9001C */ sw $t1, 0x1c($sp) +/* 048CFC 7F0141CC AFB90010 */ sw $t9, 0x10($sp) +/* 048D00 7F0141D0 AFA00014 */ sw $zero, 0x14($sp) +/* 048D04 7F0141D4 AFA00018 */ sw $zero, 0x18($sp) +/* 048D08 7F0141D8 920E0006 */ lbu $t6, 6($s0) +/* 048D0C 7F0141DC AFA00034 */ sw $zero, 0x34($sp) +/* 048D10 7F0141E0 02602025 */ move $a0, $s3 +/* 048D14 7F0141E4 000E782A */ slt $t7, $zero, $t6 +/* 048D18 7F0141E8 AFAF0030 */ sw $t7, 0x30($sp) +/* 048D1C 7F0141EC 02402825 */ move $a1, $s2 +/* 048D20 7F0141F0 02803025 */ move $a2, $s4 +/* 048D24 7F0141F4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048D28 7F0141F8 240702F0 */ li $a3, 752 +/* 048D2C 7F0141FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 048D30 7F014200 24180012 */ li $t8, 18 +/* 048D34 7F014204 24190001 */ li $t9, 1 +/* 048D38 7F014208 46145400 */ add.s $f16, $f10, $f20 +/* 048D3C 7F01420C 2409006B */ li $t1, 107 +/* 048D40 7F014210 240A0067 */ li $t2, 103 +/* 048D44 7F014214 240B0053 */ li $t3, 83 +/* 048D48 7F014218 240C00FF */ li $t4, 255 +/* 048D4C 7F01421C E7B00104 */ swc1 $f16, 0x104($sp) +/* 048D50 7F014220 AFAC002C */ sw $t4, 0x2c($sp) +/* 048D54 7F014224 AFAB0028 */ sw $t3, 0x28($sp) +/* 048D58 7F014228 AFAA0024 */ sw $t2, 0x24($sp) +/* 048D5C 7F01422C AFA90020 */ sw $t1, 0x20($sp) +/* 048D60 7F014230 AFB9001C */ sw $t9, 0x1c($sp) +/* 048D64 7F014234 AFB80010 */ sw $t8, 0x10($sp) +/* 048D68 7F014238 AFA00014 */ sw $zero, 0x14($sp) +/* 048D6C 7F01423C AFA00018 */ sw $zero, 0x18($sp) +/* 048D70 7F014240 920D0006 */ lbu $t5, 6($s0) +/* 048D74 7F014244 AFA00034 */ sw $zero, 0x34($sp) +/* 048D78 7F014248 02602025 */ move $a0, $s3 +/* 048D7C 7F01424C 000D702A */ slt $t6, $zero, $t5 +/* 048D80 7F014250 AFAE0030 */ sw $t6, 0x30($sp) +/* 048D84 7F014254 02402825 */ move $a1, $s2 +/* 048D88 7F014258 02803025 */ move $a2, $s4 +/* 048D8C 7F01425C 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048D90 7F014260 240702F0 */ li $a3, 752 +/* 048D94 7F014264 C7A00104 */ lwc1 $f0, 0x104($sp) +/* 048D98 7F014268 26310001 */ addiu $s1, $s1, 1 +/* 048D9C 7F01426C 24010003 */ li $at, 3 +/* 048DA0 7F014270 46140001 */ sub.s $f0, $f0, $f20 +/* 048DA4 7F014274 46160000 */ add.s $f0, $f0, $f22 +/* 048DA8 7F014278 1621FFC9 */ bne $s1, $at, .L7F0141A0 +/* 048DAC 7F01427C E7A00104 */ swc1 $f0, 0x104($sp) +/* 048DB0 7F014280 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 048DB4 7F014284 44819000 */ mtc1 $at, $f18 +/* 048DB8 7F014288 3C0141B0 */ li $at, 0x41B00000 # 22.000000 +/* 048DBC 7F01428C 44810000 */ mtc1 $at, $f0 +/* 048DC0 7F014290 3C0142D8 */ li $at, 0x42D80000 # 108.000000 +/* 048DC4 7F014294 44812000 */ mtc1 $at, $f4 +/* 048DC8 7F014298 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 048DCC 7F01429C 44814000 */ mtc1 $at, $f8 +/* 048DD0 7F0142A0 46040180 */ add.s $f6, $f0, $f4 +/* 048DD4 7F0142A4 3C0142AA */ li $at, 0x42AA0000 # 85.000000 +/* 048DD8 7F0142A8 3C168003 */ lui $s6, %hi(multi_stage_setups) +/* 048DDC 7F0142AC 4481A000 */ mtc1 $at, $f20 +/* 048DE0 7F0142B0 46083280 */ add.s $f10, $f6, $f8 +/* 048DE4 7F0142B4 00008825 */ move $s1, $zero +/* 048DE8 7F0142B8 26D6B074 */ addiu $s6, %lo(multi_stage_setups) # addiu $s6, $s6, -0x4f8c +/* 048DEC 7F0142BC AFA000B4 */ sw $zero, 0xb4($sp) +/* 048DF0 7F0142C0 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 048DF4 7F0142C4 241E000C */ li $fp, 12 +/* 048DF8 7F0142C8 24170018 */ li $s7, 24 +/* 048DFC 7F0142CC 27B500D0 */ addiu $s5, $sp, 0xd0 +/* 048E00 7F0142D0 27B400D8 */ addiu $s4, $sp, 0xd8 +/* 048E04 7F0142D4 E7B200D0 */ swc1 $f18, 0xd0($sp) +/* 048E08 7F0142D8 E7A000D4 */ swc1 $f0, 0xd4($sp) +.L7F0142DC: +/* 048E0C 7F0142DC 3C0142AC */ li $at, 0x42AC0000 # 86.000000 +/* 048E10 7F0142E0 44818000 */ mtc1 $at, $f16 +/* 048E14 7F0142E4 00009025 */ move $s2, $zero +/* 048E18 7F0142E8 E7B000D8 */ swc1 $f16, 0xd8($sp) +.L7F0142EC: +/* 048E1C 7F0142EC 2A21000C */ slti $at, $s1, 0xc +/* 048E20 7F0142F0 5020007A */ beql $at, $zero, .L7F0144DC +/* 048E24 7F0142F4 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 048E28 7F0142F8 02370019 */ multu $s1, $s7 +/* 048E2C 7F0142FC 3C0A8009 */ lui $t2, %hi(mpstageselimages) +/* 048E30 7F014300 8D4AD134 */ lw $t2, %lo(mpstageselimages)($t2) +/* 048E34 7F014304 240B0002 */ li $t3, 2 +/* 048E38 7F014308 02602025 */ move $a0, $s3 +/* 048E3C 7F01430C 24060001 */ li $a2, 1 +/* 048E40 7F014310 00003825 */ move $a3, $zero +/* 048E44 7F014314 00007812 */ mflo $t7 +/* 048E48 7F014318 02CFC021 */ addu $t8, $s6, $t7 +/* 048E4C 7F01431C 8F190004 */ lw $t9, 4($t8) +/* 048E50 7F014320 AFAB0010 */ sw $t3, 0x10($sp) +/* 048E54 7F014324 033E0019 */ multu $t9, $fp +/* 048E58 7F014328 00004812 */ mflo $t1 +/* 048E5C 7F01432C 012A8021 */ addu $s0, $t1, $t2 +/* 048E60 7F014330 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 048E64 7F014334 02002825 */ move $a1, $s0 +/* 048E68 7F014338 3C0C8007 */ lui $t4, %hi(current_mp_stage_highlighted) +/* 048E6C 7F01433C 8D8C977C */ lw $t4, %lo(current_mp_stage_highlighted)($t4) +/* 048E70 7F014340 8FAD0138 */ lw $t5, 0x138($sp) +/* 048E74 7F014344 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 048E78 7F014348 162C0030 */ bne $s1, $t4, .L7F01440C +/* 048E7C 7F01434C 25AE0008 */ addiu $t6, $t5, 8 +/* 048E80 7F014350 AFAE0138 */ sw $t6, 0x138($sp) +/* 048E84 7F014354 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 048E88 7F014358 3C180010 */ lui $t8, 0x10 +/* 048E8C 7F01435C ADB80004 */ sw $t8, 4($t5) +/* 048E90 7F014360 ADAF0000 */ sw $t7, ($t5) +/* 048E94 7F014364 8FB90138 */ lw $t9, 0x138($sp) +/* 048E98 7F014368 3C0AF800 */ lui $t2, 0xf800 +/* 048E9C 7F01436C 240BFF0A */ li $t3, -246 +/* 048EA0 7F014370 27290008 */ addiu $t1, $t9, 8 +/* 048EA4 7F014374 AFA90138 */ sw $t1, 0x138($sp) +/* 048EA8 7F014378 AF2B0004 */ sw $t3, 4($t9) +/* 048EAC 7F01437C AF2A0000 */ sw $t2, ($t9) +/* 048EB0 7F014380 8FAC0138 */ lw $t4, 0x138($sp) +/* 048EB4 7F014384 3C0FC411 */ lui $t7, (0xC4112048 >> 16) # lui $t7, 0xc411 +/* 048EB8 7F014388 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 048EBC 7F01438C 258D0008 */ addiu $t5, $t4, 8 +/* 048EC0 7F014390 AFAD0138 */ sw $t5, 0x138($sp) +/* 048EC4 7F014394 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 048EC8 7F014398 35EF2048 */ ori $t7, (0xC4112048 & 0xFFFF) # ori $t7, $t7, 0x2048 +/* 048ECC 7F01439C AD8F0004 */ sw $t7, 4($t4) +/* 048ED0 7F0143A0 AD8E0000 */ sw $t6, ($t4) +/* 048ED4 7F0143A4 240C00FF */ li $t4, 255 +/* 048ED8 7F0143A8 240A00FF */ li $t2, 255 +/* 048EDC 7F0143AC 24190001 */ li $t9, 1 +/* 048EE0 7F0143B0 240B00FF */ li $t3, 255 +/* 048EE4 7F0143B4 240900FF */ li $t1, 255 +/* 048EE8 7F0143B8 2418002C */ li $t8, 44 +/* 048EEC 7F0143BC AFB80010 */ sw $t8, 0x10($sp) +/* 048EF0 7F0143C0 AFA90020 */ sw $t1, 0x20($sp) +/* 048EF4 7F0143C4 AFAB0028 */ sw $t3, 0x28($sp) +/* 048EF8 7F0143C8 AFB9001C */ sw $t9, 0x1c($sp) +/* 048EFC 7F0143CC AFAA0024 */ sw $t2, 0x24($sp) +/* 048F00 7F0143D0 AFAC002C */ sw $t4, 0x2c($sp) +/* 048F04 7F0143D4 AFA00018 */ sw $zero, 0x18($sp) +/* 048F08 7F0143D8 AFA00014 */ sw $zero, 0x14($sp) +/* 048F0C 7F0143DC 920D0006 */ lbu $t5, 6($s0) +/* 048F10 7F0143E0 240F0001 */ li $t7, 1 +/* 048F14 7F0143E4 AFAF0034 */ sw $t7, 0x34($sp) +/* 048F18 7F0143E8 000D702A */ slt $t6, $zero, $t5 +/* 048F1C 7F0143EC AFAE0030 */ sw $t6, 0x30($sp) +/* 048F20 7F0143F0 02602025 */ move $a0, $s3 +/* 048F24 7F0143F4 02802825 */ move $a1, $s4 +/* 048F28 7F0143F8 02A03025 */ move $a2, $s5 +/* 048F2C 7F0143FC 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048F30 7F014400 24070044 */ li $a3, 68 +/* 048F34 7F014404 10000035 */ b .L7F0144DC +/* 048F38 7F014408 C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F01440C: +/* 048F3C 7F01440C 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048F40 7F014410 02202025 */ move $a0, $s1 +/* 048F44 7F014414 1040001A */ beqz $v0, .L7F014480 +/* 048F48 7F014418 02602025 */ move $a0, $s3 +/* 048F4C 7F01441C 2418002C */ li $t8, 44 +/* 048F50 7F014420 24190001 */ li $t9, 1 +/* 048F54 7F014424 2409006E */ li $t1, 110 +/* 048F58 7F014428 240A006E */ li $t2, 110 +/* 048F5C 7F01442C 240B006E */ li $t3, 110 +/* 048F60 7F014430 240C00FF */ li $t4, 255 +/* 048F64 7F014434 AFAC002C */ sw $t4, 0x2c($sp) +/* 048F68 7F014438 AFAB0028 */ sw $t3, 0x28($sp) +/* 048F6C 7F01443C AFAA0024 */ sw $t2, 0x24($sp) +/* 048F70 7F014440 AFA90020 */ sw $t1, 0x20($sp) +/* 048F74 7F014444 AFB9001C */ sw $t9, 0x1c($sp) +/* 048F78 7F014448 AFB80010 */ sw $t8, 0x10($sp) +/* 048F7C 7F01444C AFA00014 */ sw $zero, 0x14($sp) +/* 048F80 7F014450 AFA00018 */ sw $zero, 0x18($sp) +/* 048F84 7F014454 920D0006 */ lbu $t5, 6($s0) +/* 048F88 7F014458 AFA00034 */ sw $zero, 0x34($sp) +/* 048F8C 7F01445C 02602025 */ move $a0, $s3 +/* 048F90 7F014460 000D702A */ slt $t6, $zero, $t5 +/* 048F94 7F014464 AFAE0030 */ sw $t6, 0x30($sp) +/* 048F98 7F014468 02802825 */ move $a1, $s4 +/* 048F9C 7F01446C 02A03025 */ move $a2, $s5 +/* 048FA0 7F014470 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048FA4 7F014474 24070044 */ li $a3, 68 +/* 048FA8 7F014478 10000018 */ b .L7F0144DC +/* 048FAC 7F01447C C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F014480: +/* 048FB0 7F014480 240F002C */ li $t7, 44 +/* 048FB4 7F014484 24180001 */ li $t8, 1 +/* 048FB8 7F014488 2419000F */ li $t9, 15 +/* 048FBC 7F01448C 2409000F */ li $t1, 15 +/* 048FC0 7F014490 240A000F */ li $t2, 15 +/* 048FC4 7F014494 240B00FF */ li $t3, 255 +/* 048FC8 7F014498 AFAB002C */ sw $t3, 0x2c($sp) +/* 048FCC 7F01449C AFAA0028 */ sw $t2, 0x28($sp) +/* 048FD0 7F0144A0 AFA90024 */ sw $t1, 0x24($sp) +/* 048FD4 7F0144A4 AFB90020 */ sw $t9, 0x20($sp) +/* 048FD8 7F0144A8 AFB8001C */ sw $t8, 0x1c($sp) +/* 048FDC 7F0144AC AFAF0010 */ sw $t7, 0x10($sp) +/* 048FE0 7F0144B0 AFA00014 */ sw $zero, 0x14($sp) +/* 048FE4 7F0144B4 AFA00018 */ sw $zero, 0x18($sp) +/* 048FE8 7F0144B8 920C0006 */ lbu $t4, 6($s0) +/* 048FEC 7F0144BC AFA00034 */ sw $zero, 0x34($sp) +/* 048FF0 7F0144C0 02802825 */ move $a1, $s4 +/* 048FF4 7F0144C4 000C682A */ slt $t5, $zero, $t4 +/* 048FF8 7F0144C8 AFAD0030 */ sw $t5, 0x30($sp) +/* 048FFC 7F0144CC 02A03025 */ move $a2, $s5 +/* 049000 7F0144D0 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 049004 7F0144D4 24070044 */ li $a3, 68 +/* 049008 7F0144D8 C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F0144DC: +/* 04900C 7F0144DC 26520001 */ addiu $s2, $s2, 1 +/* 049010 7F0144E0 24010004 */ li $at, 4 +/* 049014 7F0144E4 46149100 */ add.s $f4, $f18, $f20 +/* 049018 7F0144E8 26310001 */ addiu $s1, $s1, 1 +/* 04901C 7F0144EC 1641FF7F */ bne $s2, $at, .L7F0142EC +/* 049020 7F0144F0 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 049024 7F0144F4 C7A600DC */ lwc1 $f6, 0xdc($sp) +/* 049028 7F0144F8 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 04902C 7F0144FC 24010003 */ li $at, 3 +/* 049030 7F014500 46163200 */ add.s $f8, $f6, $f22 +/* 049034 7F014504 25CF0001 */ addiu $t7, $t6, 1 +/* 049038 7F014508 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 04903C 7F01450C 15E1FF73 */ bne $t7, $at, .L7F0142DC +/* 049040 7F014510 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 049044 7F014514 0FC2B366 */ jal microcode_constructor +/* 049048 7F014518 8FA40138 */ lw $a0, 0x138($sp) +/* 04904C 7F01451C 24180097 */ li $t8, 151 +/* 049050 7F014520 3C1E8004 */ lui $fp, %hi(ptrSecondFontTableSmall) +/* 049054 7F014524 AFA20138 */ sw $v0, 0x138($sp) +/* 049058 7F014528 0000A825 */ move $s5, $zero +/* 04905C 7F01452C AFB80090 */ sw $t8, 0x90($sp) +/* 049060 7F014530 27DE0EB0 */ addiu $fp, %lo(ptrSecondFontTableSmall) # addiu $fp, $fp, 0xeb0 +/* 049064 7F014534 AFA0009C */ sw $zero, 0x9c($sp) +.L7F014538: +/* 049068 7F014538 24160056 */ li $s6, 86 +/* 04906C 7F01453C 0000B825 */ move $s7, $zero +.L7F014540: +/* 049070 7F014540 2AA1000C */ slti $at, $s5, 0xc +/* 049074 7F014544 50200062 */ beql $at, $zero, .L7F0146D0 +/* 049078 7F014548 26F70001 */ addiu $s7, $s7, 1 +/* 04907C 7F01454C 0FC04034 */ jal check_if_mp_stage_unlocked +/* 049080 7F014550 02A02025 */ move $a0, $s5 +/* 049084 7F014554 1040005D */ beqz $v0, .L7F0146CC +/* 049088 7F014558 3C129696 */ lui $s2, (0x96969600 >> 16) # lui $s2, 0x9696 +/* 04908C 7F01455C 3C0A8007 */ lui $t2, %hi(current_mp_stage_highlighted) +/* 049090 7F014560 8D4A977C */ lw $t2, %lo(current_mp_stage_highlighted)($t2) +/* 049094 7F014564 0015C880 */ sll $t9, $s5, 2 +/* 049098 7F014568 0335C823 */ subu $t9, $t9, $s5 +/* 04909C 7F01456C 3C098003 */ lui $t1, %hi(multi_stage_setups) +/* 0490A0 7F014570 2529B074 */ addiu $t1, %lo(multi_stage_setups) # addiu $t1, $t1, -0x4f8c +/* 0490A4 7F014574 0019C8C0 */ sll $t9, $t9, 3 +/* 0490A8 7F014578 36529600 */ ori $s2, (0x96969600 & 0xFFFF) # ori $s2, $s2, 0x9600 +/* 0490AC 7F01457C 16AA0002 */ bne $s5, $t2, .L7F014588 +/* 0490B0 7F014580 03299821 */ addu $s3, $t9, $t1 +/* 0490B4 7F014584 2412FF00 */ li $s2, -256 +.L7F014588: +/* 0490B8 7F014588 0FC30776 */ jal get_textptr_for_textID +/* 0490BC 7F01458C 96640002 */ lhu $a0, 2($s3) +/* 0490C0 7F014590 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0490C4 7F014594 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0490C8 7F014598 27A40128 */ addiu $a0, $sp, 0x128 +/* 0490CC 7F01459C 27A50124 */ addiu $a1, $sp, 0x124 +/* 0490D0 7F0145A0 00403025 */ move $a2, $v0 +/* 0490D4 7F0145A4 8FC70000 */ lw $a3, ($fp) +/* 0490D8 7F0145A8 AFA00014 */ sw $zero, 0x14($sp) +/* 0490DC 7F0145AC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0490E0 7F0145B0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0490E4 7F0145B4 8FA30128 */ lw $v1, 0x128($sp) +/* 0490E8 7F0145B8 8FAC0090 */ lw $t4, 0x90($sp) +/* 0490EC 7F0145BC 8FAD0124 */ lw $t5, 0x124($sp) +/* 0490F0 7F0145C0 26D4FFE1 */ addiu $s4, $s6, -0x1f +/* 0490F4 7F0145C4 01833023 */ subu $a2, $t4, $v1 +/* 0490F8 7F0145C8 00C37021 */ addu $t6, $a2, $v1 +/* 0490FC 7F0145CC 02802825 */ move $a1, $s4 +/* 049100 7F0145D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 049104 7F0145D4 AFA6012C */ sw $a2, 0x12c($sp) +/* 049108 7F0145D8 AFB40130 */ sw $s4, 0x130($sp) +/* 04910C 7F0145DC 8FA40138 */ lw $a0, 0x138($sp) +/* 049110 7F0145E0 AFA00014 */ sw $zero, 0x14($sp) +/* 049114 7F0145E4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049118 7F0145E8 028D3821 */ addu $a3, $s4, $t5 +/* 04911C 7F0145EC AFA20138 */ sw $v0, 0x138($sp) +/* 049120 7F0145F0 0FC30776 */ jal get_textptr_for_textID +/* 049124 7F0145F4 96640002 */ lhu $a0, 2($s3) +/* 049128 7F0145F8 0C001107 */ jal get_video2_settings_txtClipW +/* 04912C 7F0145FC 00408825 */ move $s1, $v0 +/* 049130 7F014600 00028400 */ sll $s0, $v0, 0x10 +/* 049134 7F014604 00107C03 */ sra $t7, $s0, 0x10 +/* 049138 7F014608 0C00110B */ jal get_video2_settings_txtClipH +/* 04913C 7F01460C 01E08025 */ move $s0, $t7 +/* 049140 7F014610 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 049144 7F014614 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 049148 7F014618 8FD80000 */ lw $t8, ($fp) +/* 04914C 7F01461C 364900FF */ ori $t1, $s2, 0xff +/* 049150 7F014620 AFA90018 */ sw $t1, 0x18($sp) +/* 049154 7F014624 8FA40138 */ lw $a0, 0x138($sp) +/* 049158 7F014628 27A50130 */ addiu $a1, $sp, 0x130 +/* 04915C 7F01462C 27A6012C */ addiu $a2, $sp, 0x12c +/* 049160 7F014630 02203825 */ move $a3, $s1 +/* 049164 7F014634 AFB0001C */ sw $s0, 0x1c($sp) +/* 049168 7F014638 AFA20020 */ sw $v0, 0x20($sp) +/* 04916C 7F01463C AFA00024 */ sw $zero, 0x24($sp) +/* 049170 7F014640 AFA00028 */ sw $zero, 0x28($sp) +/* 049174 7F014644 AFB90014 */ sw $t9, 0x14($sp) +/* 049178 7F014648 0FC2B6AF */ jal en_text_write_stuff +/* 04917C 7F01464C AFB80010 */ sw $t8, 0x10($sp) +/* 049180 7F014650 8FA30128 */ lw $v1, 0x128($sp) +/* 049184 7F014654 8FAA0090 */ lw $t2, 0x90($sp) +/* 049188 7F014658 AFA20138 */ sw $v0, 0x138($sp) +/* 04918C 7F01465C 96640002 */ lhu $a0, 2($s3) +/* 049190 7F014660 01433023 */ subu $a2, $t2, $v1 +/* 049194 7F014664 AFA6012C */ sw $a2, 0x12c($sp) +/* 049198 7F014668 0FC30776 */ jal get_textptr_for_textID +/* 04919C 7F01466C AFB40130 */ sw $s4, 0x130($sp) +/* 0491A0 7F014670 0C001107 */ jal get_video2_settings_txtClipW +/* 0491A4 7F014674 00408825 */ move $s1, $v0 +/* 0491A8 7F014678 00028400 */ sll $s0, $v0, 0x10 +/* 0491AC 7F01467C 00105C03 */ sra $t3, $s0, 0x10 +/* 0491B0 7F014680 0C00110B */ jal get_video2_settings_txtClipH +/* 0491B4 7F014684 01608025 */ move $s0, $t3 +/* 0491B8 7F014688 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0491BC 7F01468C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0491C0 7F014690 8FCC0000 */ lw $t4, ($fp) +/* 0491C4 7F014694 364E0064 */ ori $t6, $s2, 0x64 +/* 0491C8 7F014698 AFAE0018 */ sw $t6, 0x18($sp) +/* 0491CC 7F01469C 8FA40138 */ lw $a0, 0x138($sp) +/* 0491D0 7F0146A0 27A50130 */ addiu $a1, $sp, 0x130 +/* 0491D4 7F0146A4 27A6012C */ addiu $a2, $sp, 0x12c +/* 0491D8 7F0146A8 02203825 */ move $a3, $s1 +/* 0491DC 7F0146AC AFB0001C */ sw $s0, 0x1c($sp) +/* 0491E0 7F0146B0 AFA20020 */ sw $v0, 0x20($sp) +/* 0491E4 7F0146B4 AFA00024 */ sw $zero, 0x24($sp) +/* 0491E8 7F0146B8 AFA00028 */ sw $zero, 0x28($sp) +/* 0491EC 7F0146BC AFAD0014 */ sw $t5, 0x14($sp) +/* 0491F0 7F0146C0 0FC2B6AF */ jal en_text_write_stuff +/* 0491F4 7F0146C4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0491F8 7F0146C8 AFA20138 */ sw $v0, 0x138($sp) +.L7F0146CC: +/* 0491FC 7F0146CC 26F70001 */ addiu $s7, $s7, 1 +.L7F0146D0: +/* 049200 7F0146D0 24010004 */ li $at, 4 +/* 049204 7F0146D4 26D60055 */ addiu $s6, $s6, 0x55 +/* 049208 7F0146D8 16E1FF99 */ bne $s7, $at, .L7F014540 +/* 04920C 7F0146DC 26B50001 */ addiu $s5, $s5, 1 +/* 049210 7F0146E0 8FB9009C */ lw $t9, 0x9c($sp) +/* 049214 7F0146E4 8FAF0090 */ lw $t7, 0x90($sp) +/* 049218 7F0146E8 24010003 */ li $at, 3 +/* 04921C 7F0146EC 27290001 */ addiu $t1, $t9, 1 +/* 049220 7F0146F0 25F80046 */ addiu $t8, $t7, 0x46 +/* 049224 7F0146F4 AFA9009C */ sw $t1, 0x9c($sp) +/* 049228 7F0146F8 1521FF8F */ bne $t1, $at, .L7F014538 +/* 04922C 7F0146FC AFB80090 */ sw $t8, 0x90($sp) +/* 049230 7F014700 0FC2B366 */ jal microcode_constructor +/* 049234 7F014704 8FA40138 */ lw $a0, 0x138($sp) +/* 049238 7F014708 AFA20138 */ sw $v0, 0x138($sp) +/* 04923C 7F01470C 0FC0288E */ jal add_tab3_previous +/* 049240 7F014710 00402025 */ move $a0, $v0 +/* 049244 7F014714 AFA20138 */ sw $v0, 0x138($sp) +/* 049248 7F014718 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04924C 7F01471C 00402025 */ move $a0, $v0 +/* 049250 7F014720 8FBF0074 */ lw $ra, 0x74($sp) +/* 049254 7F014724 D7B40040 */ ldc1 $f20, 0x40($sp) +/* 049258 7F014728 D7B60048 */ ldc1 $f22, 0x48($sp) +/* 04925C 7F01472C 8FB00050 */ lw $s0, 0x50($sp) +/* 049260 7F014730 8FB10054 */ lw $s1, 0x54($sp) +/* 049264 7F014734 8FB20058 */ lw $s2, 0x58($sp) +/* 049268 7F014738 8FB3005C */ lw $s3, 0x5c($sp) +/* 04926C 7F01473C 8FB40060 */ lw $s4, 0x60($sp) +/* 049270 7F014740 8FB50064 */ lw $s5, 0x64($sp) +/* 049274 7F014744 8FB60068 */ lw $s6, 0x68($sp) +/* 049278 7F014748 8FB7006C */ lw $s7, 0x6c($sp) +/* 04927C 7F01474C 8FBE0070 */ lw $fp, 0x70($sp) +/* 049280 7F014750 03E00008 */ jr $ra +/* 049284 7F014754 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + + + +MPSCENARIOS get_scenario(void) +{ + return scenario; +} + +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; + load_walletbond(); +} + +void update_menu13_mpscenario(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu13_mpscenario(void) +{ + s32 sp2C; + s32 temp_a0; + s32 temp_s1; + void *temp_s0; + s32 phi_s2; + s32 phi_s1; + + sp2C = 0; + setvideo_far(0x42700000); + video_related_21(D_80051AA8); + set_page_height(0x42c80000, D_80051AAC); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xa000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + dword_CODE_bss_80069780 = 0; + } + else + { + dword_CODE_bss_80069780 = 1; + phi_s2 = 0x11d; + phi_s1 = 7; +loop_4: + if ((((s32) cursor_v_pos >= phi_s2) && (get_selected_num_players() >= temp_s0->unk2)) && (temp_s0->unk3 >= get_selected_num_players())) + { + dword_CODE_bss_80069780 = (s32) (phi_s1 + 1); + } + else + { + temp_s1 = phi_s1 + -1; + phi_s2 = phi_s2 + -0x16; + phi_s1 = temp_s1; + if (temp_s1 != 0) + { + goto loop_4; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + temp_a0 = dword_CODE_bss_80069780 + -1; + if (((temp_a0 == 5) || (temp_a0 == 6)) || (temp_a0 == 7)) + { + reset_mp_options_for_scenario(temp_a0); + sp2C = 1; + } + else + { + reset_mp_options_for_scenario(temp_a0); + tab_3_selected = 1; + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (sp2C != 0) + { + set_menu_to_mode(MENU_MP_TEAMS, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AA8 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AAC +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu13_mpscenario +/* 0492E8 7F0147B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0492EC 7F0147BC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0492F0 7F0147C0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0492F4 7F0147C4 44816000 */ mtc1 $at, $f12 +/* 0492F8 7F0147C8 AFB20020 */ sw $s2, 0x20($sp) +/* 0492FC 7F0147CC AFB1001C */ sw $s1, 0x1c($sp) +/* 049300 7F0147D0 AFB00018 */ sw $s0, 0x18($sp) +/* 049304 7F0147D4 0C001151 */ jal setvideo_far +/* 049308 7F0147D8 AFA0002C */ sw $zero, 0x2c($sp) +/* 04930C 7F0147DC 3C018005 */ lui $at, %hi(D_80051AA8) +/* 049310 7F0147E0 0C001164 */ jal video_related_21 +/* 049314 7F0147E4 C42C1AA8 */ lwc1 $f12, %lo(D_80051AA8)($at) +/* 049318 7F0147E8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04931C 7F0147EC 44816000 */ mtc1 $at, $f12 +/* 049320 7F0147F0 3C018005 */ lui $at, %hi(D_80051AAC) +/* 049324 7F0147F4 0C001194 */ jal set_page_height +/* 049328 7F0147F8 C42E1AAC */ lwc1 $f14, %lo(D_80051AAC)($at) +/* 04932C 7F0147FC 0C00114D */ jal set_video2_settings_offset_24 +/* 049330 7F014800 00002025 */ move $a0, $zero +/* 049334 7F014804 00002025 */ move $a0, $zero +/* 049338 7F014808 0C0030C3 */ jal get_controller_buttons_held +/* 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) +/* 049358 7F014828 0FC028E7 */ jal isontab3 +/* 04935C 7F01482C AC20A8DC */ sw $zero, %lo(tab_1_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) +/* 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) +.L7F014850: +/* 049380 7F014850 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) +/* 049384 7F014854 AC2F9780 */ sw $t7, %lo(dword_CODE_bss_80069780)($at) +/* 049388 7F014858 24110007 */ li $s1, 7 +/* 04938C 7F01485C 2412011D */ li $s2, 285 +.L7F014860: +/* 049390 7F014860 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 049394 7F014864 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 049398 7F014868 3C098003 */ lui $t1, %hi(mp_player_counts) +/* 04939C 7F01486C 2529B054 */ addiu $t1, %lo(mp_player_counts) # addiu $t1, $t1, -0x4fac +/* 0493A0 7F014870 4600218D */ trunc.w.s $f6, $f4 +/* 0493A4 7F014874 00114080 */ sll $t0, $s1, 2 +/* 0493A8 7F014878 44193000 */ mfc1 $t9, $f6 +/* 0493AC 7F01487C 00000000 */ nop +/* 0493B0 7F014880 0332082A */ slt $at, $t9, $s2 +/* 0493B4 7F014884 54200011 */ bnezl $at, .L7F0148CC +/* 0493B8 7F014888 2631FFFF */ addiu $s1, $s1, -1 +/* 0493BC 7F01488C 0FC040A4 */ jal get_selected_num_players +/* 0493C0 7F014890 01098021 */ addu $s0, $t0, $t1 +/* 0493C4 7F014894 920A0002 */ lbu $t2, 2($s0) +/* 0493C8 7F014898 004A082A */ slt $at, $v0, $t2 +/* 0493CC 7F01489C 5420000B */ bnezl $at, .L7F0148CC +/* 0493D0 7F0148A0 2631FFFF */ addiu $s1, $s1, -1 +/* 0493D4 7F0148A4 0FC040A4 */ jal get_selected_num_players +/* 0493D8 7F0148A8 00000000 */ nop +/* 0493DC 7F0148AC 920B0003 */ lbu $t3, 3($s0) +/* 0493E0 7F0148B0 0162082A */ slt $at, $t3, $v0 +/* 0493E4 7F0148B4 14200004 */ bnez $at, .L7F0148C8 +/* 0493E8 7F0148B8 262C0001 */ addiu $t4, $s1, 1 +/* 0493EC 7F0148BC 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) +/* 0493F0 7F0148C0 10000004 */ b .L7F0148D4 +/* 0493F4 7F0148C4 AC2C9780 */ sw $t4, %lo(dword_CODE_bss_80069780)($at) +.L7F0148C8: +/* 0493F8 7F0148C8 2631FFFF */ addiu $s1, $s1, -1 +.L7F0148CC: +/* 0493FC 7F0148CC 1620FFE4 */ bnez $s1, .L7F014860 +/* 049400 7F0148D0 2652FFEA */ addiu $s2, $s2, -0x16 +.L7F0148D4: +/* 049404 7F0148D4 00002025 */ move $a0, $zero +/* 049408 7F0148D8 0C0030EB */ jal get_controller_buttons_pressed +/* 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) +/* 049420 7F0148F0 240E0001 */ li $t6, 1 +/* 049424 7F0148F4 3C018003 */ lui $at, %hi(tab_3_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) +.L7F014908: +/* 049438 7F014908 8C849780 */ lw $a0, %lo(dword_CODE_bss_80069780)($a0) +/* 04943C 7F01490C 24010005 */ li $at, 5 +/* 049440 7F014910 2484FFFF */ addiu $a0, $a0, -1 +/* 049444 7F014914 10810005 */ beq $a0, $at, .L7F01492C +/* 049448 7F014918 24010006 */ li $at, 6 +/* 04944C 7F01491C 10810003 */ beq $a0, $at, .L7F01492C +/* 049450 7F014920 24010007 */ li $at, 7 +/* 049454 7F014924 14810006 */ bne $a0, $at, .L7F014940 +/* 049458 7F014928 00000000 */ nop +.L7F01492C: +/* 04945C 7F01492C 0FC0411A */ jal reset_mp_options_for_scenario +/* 049460 7F014930 00000000 */ nop +/* 049464 7F014934 240F0001 */ li $t7, 1 +/* 049468 7F014938 10000006 */ b .L7F014954 +/* 04946C 7F01493C AFAF002C */ sw $t7, 0x2c($sp) +.L7F014940: +/* 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) +.L7F014954: +/* 049484 7F014954 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049488 7F014958 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04948C 7F01495C 240500C7 */ li $a1, 199 +/* 049490 7F014960 0C002382 */ jal play_sfx_a1 +/* 049494 7F014964 00003025 */ move $a2, $zero +/* 049498 7F014968 1000000C */ b .L7F01499C +/* 04949C 7F01496C 00000000 */ nop +.L7F014970: +/* 0494A0 7F014970 0C0030EB */ jal get_controller_buttons_pressed +/* 0494A4 7F014974 24054000 */ li $a1, 16384 +/* 0494A8 7F014978 10400008 */ beqz $v0, .L7F01499C +/* 0494AC 7F01497C 24190001 */ li $t9, 1 +/* 0494B0 7F014980 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0494B4 7F014984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0494B8 7F014988 AC39A8D8 */ sw $t9, %lo(tab_3_selected)($at) +/* 0494BC 7F01498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0494C0 7F014990 240500C7 */ li $a1, 199 +/* 0494C4 7F014994 0C002382 */ jal play_sfx_a1 +/* 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 +/* 0494D4 7F0149A4 0FC02DC9 */ jal disable_all_switches +/* 0494D8 7F0149A8 8E040000 */ lw $a0, ($s0) +/* 0494DC 7F0149AC 8E040000 */ lw $a0, ($s0) +/* 0494E0 7F0149B0 00002825 */ move $a1, $zero +/* 0494E4 7F0149B4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0494E8 7F0149B8 24060001 */ li $a2, 1 +/* 0494EC 7F0149BC 8E040000 */ lw $a0, ($s0) +/* 0494F0 7F0149C0 24050001 */ li $a1, 1 +/* 0494F4 7F0149C4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0494F8 7F0149C8 24060001 */ li $a2, 1 +/* 0494FC 7F0149CC 8E040000 */ lw $a0, ($s0) +/* 049500 7F0149D0 24050003 */ li $a1, 3 +/* 049504 7F0149D4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049508 7F0149D8 24060001 */ li $a2, 1 +/* 04950C 7F0149DC 8E040000 */ lw $a0, ($s0) +/* 049510 7F0149E0 24050006 */ li $a1, 6 +/* 049514 7F0149E4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049518 7F0149E8 24060001 */ li $a2, 1 +/* 04951C 7F0149EC 0FC026E1 */ jal menu_control_stick_tracking +/* 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) +/* 049530 7F014A00 11000005 */ beqz $t0, .L7F014A18 +/* 049534 7F014A04 00000000 */ nop +/* 049538 7F014A08 0FC06975 */ jal set_menu_to_mode +/* 04953C 7F014A0C 00002825 */ move $a1, $zero +/* 049540 7F014A10 10000008 */ b .L7F014A34 +/* 049544 7F014A14 8FBF0024 */ lw $ra, 0x24($sp) +.L7F014A18: +/* 049548 7F014A18 8D29A8D8 */ lw $t1, %lo(tab_3_selected)($t1) +/* 04954C 7F014A1C 2404000E */ li $a0, 14 +/* 049550 7F014A20 51200004 */ beql $t1, $zero, .L7F014A34 +/* 049554 7F014A24 8FBF0024 */ lw $ra, 0x24($sp) +/* 049558 7F014A28 0FC06975 */ jal set_menu_to_mode +/* 04955C 7F014A2C 00002825 */ move $a1, $zero +/* 049560 7F014A30 8FBF0024 */ lw $ra, 0x24($sp) +.L7F014A34: +/* 049564 7F014A34 8FB00018 */ lw $s0, 0x18($sp) +/* 049568 7F014A38 8FB1001C */ lw $s1, 0x1c($sp) +/* 04956C 7F014A3C 8FB20020 */ lw $s2, 0x20($sp) +/* 049570 7F014A40 03E00008 */ jr $ra +/* 049574 7F014A44 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu13_mpscenario(void) +{ + s32 sp88; + s32 sp84; + s32 sp7C; + s32 sp78; + s32 sp28; + s32 sp24; + s32 sp20; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s2; + s32 temp_v1; + void *phi_s1; + s32 phi_s2; + s32 phi_s5; + s32 phi_s4; + s32 phi_s4_2; + + sp88 = 0x37; + sp84 = 0x66; + get_video2_settings_txtClipW(); + sp20 = get_video2_settings_txtClipH(); + sp24 = 0; + sp28 = 0; + phi_s1 = &mp_player_counts; + phi_s2 = 0; + phi_s5 = 0x83; + phi_s4 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp88, &sp84, get_textptr_for_textID(TEXT(LTITLE, 0x57)), (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff); +loop_1: + if ((phi_s1->unk3 < get_selected_num_players()) || (get_selected_num_players() < phi_s1->unk2)) + { + + } + else + { + + } + temp_ret = get_textptr_for_textID(phi_s1->unk0); + sub_GAME_7F0AE98C(&sp7C, &sp78, temp_ret, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = 0x39; + temp_v1 = phi_s5; + phi_s4_2 = phi_s4; + if ((phi_s2 + 1) == dword_CODE_bss_80069780) + { + sp84 = temp_v1; + phi_s4_2 = microcode_constructor_related_to_menus(phi_s4, 0x37, temp_v1 + -1, sp78 + 0x3c, (s32) (temp_v1 + 0xe), 0x32); + } + get_video2_settings_txtClipW(); + sp20 = get_video2_settings_txtClipH(); + sp24 = 0; + sp28 = 0; + temp_ret_2 = write_text_at_abs_coord(phi_s4_2, &sp88, &sp84, temp_ret, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0); + temp_s2 = phi_s2 + 1; + phi_s1 = phi_s1 + 4; + phi_s2 = temp_s2; + phi_s5 = phi_s5 + 0x16; + phi_s4 = temp_ret_2; + if (temp_s2 != 8) + { + goto loop_1; + } + load_draw_selected_icon_folder_select(add_tab3_previous(temp_ret_2)); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu13_mpscenario +/* 049578 7F014A48 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 04957C 7F014A4C AFBF005C */ sw $ra, 0x5c($sp) +/* 049580 7F014A50 AFBE0058 */ sw $fp, 0x58($sp) +/* 049584 7F014A54 AFB70054 */ sw $s7, 0x54($sp) +/* 049588 7F014A58 AFB60050 */ sw $s6, 0x50($sp) +/* 04958C 7F014A5C AFB5004C */ sw $s5, 0x4c($sp) +/* 049590 7F014A60 AFB40048 */ sw $s4, 0x48($sp) +/* 049594 7F014A64 AFB30044 */ sw $s3, 0x44($sp) +/* 049598 7F014A68 AFB20040 */ sw $s2, 0x40($sp) +/* 04959C 7F014A6C AFB1003C */ sw $s1, 0x3c($sp) +/* 0495A0 7F014A70 AFB00038 */ sw $s0, 0x38($sp) +/* 0495A4 7F014A74 00002825 */ move $a1, $zero +/* 0495A8 7F014A78 00003025 */ move $a2, $zero +/* 0495AC 7F014A7C 0C0011B4 */ jal set_setfillcolor +/* 0495B0 7F014A80 00003825 */ move $a3, $zero +/* 0495B4 7F014A84 0C000FBE */ jal insert_generic_fillrect +/* 0495B8 7F014A88 00402025 */ move $a0, $v0 +/* 0495BC 7F014A8C 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 0495C0 7F014A90 00402025 */ move $a0, $v0 +/* 0495C4 7F014A94 0FC2B366 */ jal microcode_constructor +/* 0495C8 7F014A98 00402025 */ move $a0, $v0 +/* 0495CC 7F014A9C 0040A025 */ move $s4, $v0 +/* 0495D0 7F014AA0 0FC30776 */ jal get_textptr_for_textID +/* 0495D4 7F014AA4 34049C57 */ li $a0, 40023 +/* 0495D8 7F014AA8 240E0037 */ li $t6, 55 +/* 0495DC 7F014AAC 24030066 */ li $v1, 102 +/* 0495E0 7F014AB0 0040B025 */ move $s6, $v0 +/* 0495E4 7F014AB4 AFAE0088 */ sw $t6, 0x88($sp) +/* 0495E8 7F014AB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0495EC 7F014ABC AFA30084 */ sw $v1, 0x84($sp) +/* 0495F0 7F014AC0 00028400 */ sll $s0, $v0, 0x10 +/* 0495F4 7F014AC4 00107C03 */ sra $t7, $s0, 0x10 +/* 0495F8 7F014AC8 0C00110B */ jal get_video2_settings_txtClipH +/* 0495FC 7F014ACC 01E08025 */ move $s0, $t7 +/* 049600 7F014AD0 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 049604 7F014AD4 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 049608 7F014AD8 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 04960C 7F014ADC 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 049610 7F014AE0 8EF80000 */ lw $t8, ($s7) +/* 049614 7F014AE4 8FD90000 */ lw $t9, ($fp) +/* 049618 7F014AE8 240800FF */ li $t0, 255 +/* 04961C 7F014AEC AFA80018 */ sw $t0, 0x18($sp) +/* 049620 7F014AF0 02802025 */ move $a0, $s4 +/* 049624 7F014AF4 27A50088 */ addiu $a1, $sp, 0x88 +/* 049628 7F014AF8 27A60084 */ addiu $a2, $sp, 0x84 +/* 04962C 7F014AFC 02C03825 */ move $a3, $s6 +/* 049630 7F014B00 AFB0001C */ sw $s0, 0x1c($sp) +/* 049634 7F014B04 AFA20020 */ sw $v0, 0x20($sp) +/* 049638 7F014B08 AFA00024 */ sw $zero, 0x24($sp) +/* 04963C 7F014B0C AFA00028 */ sw $zero, 0x28($sp) +/* 049640 7F014B10 AFB80010 */ sw $t8, 0x10($sp) +/* 049644 7F014B14 0FC025D8 */ jal write_text_at_abs_coord +/* 049648 7F014B18 AFB90014 */ sw $t9, 0x14($sp) +/* 04964C 7F014B1C 3C118003 */ lui $s1, %hi(mp_player_counts) +/* 049650 7F014B20 0040A025 */ move $s4, $v0 +/* 049654 7F014B24 2631B054 */ addiu $s1, %lo(mp_player_counts) # addiu $s1, $s1, -0x4fac +/* 049658 7F014B28 00009025 */ move $s2, $zero +/* 04965C 7F014B2C 24150083 */ li $s5, 131 +.L7F014B30: +/* 049660 7F014B30 0FC040A4 */ jal get_selected_num_players +/* 049664 7F014B34 241300FF */ li $s3, 255 +/* 049668 7F014B38 92290003 */ lbu $t1, 3($s1) +/* 04966C 7F014B3C 0122082A */ slt $at, $t1, $v0 +/* 049670 7F014B40 54200008 */ bnezl $at, .L7F014B64 +/* 049674 7F014B44 24130070 */ li $s3, 112 +/* 049678 7F014B48 0FC040A4 */ jal get_selected_num_players +/* 04967C 7F014B4C 00000000 */ nop +/* 049680 7F014B50 922A0002 */ lbu $t2, 2($s1) +/* 049684 7F014B54 004A082A */ slt $at, $v0, $t2 +/* 049688 7F014B58 10200002 */ beqz $at, .L7F014B64 +/* 04968C 7F014B5C 00000000 */ nop +/* 049690 7F014B60 24130070 */ li $s3, 112 +.L7F014B64: +/* 049694 7F014B64 0FC30776 */ jal get_textptr_for_textID +/* 049698 7F014B68 96240000 */ lhu $a0, ($s1) +/* 04969C 7F014B6C 8FCB0000 */ lw $t3, ($fp) +/* 0496A0 7F014B70 0040B025 */ move $s6, $v0 +/* 0496A4 7F014B74 27A4007C */ addiu $a0, $sp, 0x7c +/* 0496A8 7F014B78 27A50078 */ addiu $a1, $sp, 0x78 +/* 0496AC 7F014B7C 00403025 */ move $a2, $v0 +/* 0496B0 7F014B80 8EE70000 */ lw $a3, ($s7) +/* 0496B4 7F014B84 AFA00014 */ sw $zero, 0x14($sp) +/* 0496B8 7F014B88 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0496BC 7F014B8C AFAB0010 */ sw $t3, 0x10($sp) +/* 0496C0 7F014B90 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069780) +/* 0496C4 7F014B94 8DCE9780 */ lw $t6, %lo(dword_CODE_bss_80069780)($t6) +/* 0496C8 7F014B98 240C0039 */ li $t4, 57 +/* 0496CC 7F014B9C 264D0001 */ addiu $t5, $s2, 1 +/* 0496D0 7F014BA0 AFAC0088 */ sw $t4, 0x88($sp) +/* 0496D4 7F014BA4 02A01825 */ move $v1, $s5 +/* 0496D8 7F014BA8 15AE000D */ bne $t5, $t6, .L7F014BE0 +/* 0496DC 7F014BAC AFB50084 */ sw $s5, 0x84($sp) +/* 0496E0 7F014BB0 8FA70078 */ lw $a3, 0x78($sp) +/* 0496E4 7F014BB4 246F000E */ addiu $t7, $v1, 0xe +/* 0496E8 7F014BB8 24180032 */ li $t8, 50 +/* 0496EC 7F014BBC AFB80014 */ sw $t8, 0x14($sp) +/* 0496F0 7F014BC0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0496F4 7F014BC4 02802025 */ move $a0, $s4 +/* 0496F8 7F014BC8 24050037 */ li $a1, 55 +/* 0496FC 7F014BCC 2466FFFF */ addiu $a2, $v1, -1 +/* 049700 7F014BD0 AFA30084 */ sw $v1, 0x84($sp) +/* 049704 7F014BD4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049708 7F014BD8 24E7003C */ addiu $a3, $a3, 0x3c +/* 04970C 7F014BDC 0040A025 */ move $s4, $v0 +.L7F014BE0: +/* 049710 7F014BE0 0C001107 */ jal get_video2_settings_txtClipW +/* 049714 7F014BE4 00000000 */ nop +/* 049718 7F014BE8 00028400 */ sll $s0, $v0, 0x10 +/* 04971C 7F014BEC 0010CC03 */ sra $t9, $s0, 0x10 +/* 049720 7F014BF0 0C00110B */ jal get_video2_settings_txtClipH +/* 049724 7F014BF4 03208025 */ move $s0, $t9 +/* 049728 7F014BF8 8EE80000 */ lw $t0, ($s7) +/* 04972C 7F014BFC 8FC90000 */ lw $t1, ($fp) +/* 049730 7F014C00 02802025 */ move $a0, $s4 +/* 049734 7F014C04 27A50088 */ addiu $a1, $sp, 0x88 +/* 049738 7F014C08 27A60084 */ addiu $a2, $sp, 0x84 +/* 04973C 7F014C0C 02C03825 */ move $a3, $s6 +/* 049740 7F014C10 AFB30018 */ sw $s3, 0x18($sp) +/* 049744 7F014C14 AFB0001C */ sw $s0, 0x1c($sp) +/* 049748 7F014C18 AFA20020 */ sw $v0, 0x20($sp) +/* 04974C 7F014C1C AFA00024 */ sw $zero, 0x24($sp) +/* 049750 7F014C20 AFA00028 */ sw $zero, 0x28($sp) +/* 049754 7F014C24 AFA80010 */ sw $t0, 0x10($sp) +/* 049758 7F014C28 0FC025D8 */ jal write_text_at_abs_coord +/* 04975C 7F014C2C AFA90014 */ sw $t1, 0x14($sp) +/* 049760 7F014C30 26520001 */ addiu $s2, $s2, 1 +/* 049764 7F014C34 24010008 */ li $at, 8 +/* 049768 7F014C38 26310004 */ addiu $s1, $s1, 4 +/* 04976C 7F014C3C 26B50016 */ addiu $s5, $s5, 0x16 +/* 049770 7F014C40 1641FFBB */ bne $s2, $at, .L7F014B30 +/* 049774 7F014C44 0040A025 */ move $s4, $v0 +/* 049778 7F014C48 0FC0288E */ jal add_tab3_previous +/* 04977C 7F014C4C 00402025 */ move $a0, $v0 +/* 049780 7F014C50 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 049784 7F014C54 00402025 */ move $a0, $v0 +/* 049788 7F014C58 8FBF005C */ lw $ra, 0x5c($sp) +/* 04978C 7F014C5C 8FB00038 */ lw $s0, 0x38($sp) +/* 049790 7F014C60 8FB1003C */ lw $s1, 0x3c($sp) +/* 049794 7F014C64 8FB20040 */ lw $s2, 0x40($sp) +/* 049798 7F014C68 8FB30044 */ lw $s3, 0x44($sp) +/* 04979C 7F014C6C 8FB40048 */ lw $s4, 0x48($sp) +/* 0497A0 7F014C70 8FB5004C */ lw $s5, 0x4c($sp) +/* 0497A4 7F014C74 8FB60050 */ lw $s6, 0x50($sp) +/* 0497A8 7F014C78 8FB70054 */ lw $s7, 0x54($sp) +/* 0497AC 7F014C7C 8FBE0058 */ lw $fp, 0x58($sp) +/* 0497B0 7F014C80 03E00008 */ jr $ra +/* 0497B4 7F014C84 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +s32 get_players_team_or_scenario_item_flag(int player) +{ + return (s32)(u8)(&player1_player_data)[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(player1_player_data+105) +/* 0497C8 7F014C98 004E1021 */ addu $v0, $v0, $t6 +/* 0497CC 7F014C9C 03E00008 */ jr $ra +/* 0497D0 7F014CA0 90429F59 */ lbu $v0, %lo(player1_player_data+105)($v0) +) +#endif + + + + + + +#ifdef NONMATCHING +void set_players_team_or_scenario_item_flag(int player,char flag) +{ + (&player1_player_data)[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(player1_player_data+105) +/* 0497E4 7F014CB4 002E0821 */ addu $at, $at, $t6 +/* 0497E8 7F014CB8 03E00008 */ jr $ra +/* 0497EC 7F014CBC A0259F59 */ sb $a1, %lo(player1_player_data+105)($at) +) +#endif + + + + + + +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; + if (scenario == SCENARIO_2v1) { + teamsize = 2; + } + else { + teamsize = 3; + } + D_8002B560 = 0; + load_walletbond(); +} + +void update_menu14_mpteams(void) { +return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu14_mpteams(void) +{ + s32 phi_s0; + s32 phi_a1; + s32 phi_a1_2; + s32 phi_s0_2; + + setvideo_far(0x42700000); + video_related_21(D_80051AB0); + set_page_height(0x42c80000, D_80051AB4); + set_video2_settings_offset_24(0); + D_8002B560 = (s32) ((s32) (D_8002B560 + 1) % 0x14); + if ((get_controller_buttons_pressed(0, 0x101) != 0) || (get_controller_3dstick_L_R(0, -2, 1) > 0)) + { + if (scenario == 7) + { + if ((teamsize & 1) == 0) + { + teamsize = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 1) == 0) + { + teamsize = (s32) (teamsize + 1); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x808) != 0) || (get_controller_3dstick_U_D(0, -2, 1) > 0)) + { + if (scenario == 5) + { + if ((teamsize & 2) != 0) + { + teamsize = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 2) != 0) + { + teamsize = (s32) (teamsize + -2); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x202) != 0) || (get_controller_3dstick_L_R(0, -2, 1) < -1)) + { + if (scenario == 5) + { + if ((teamsize & 1) != 0) + { + teamsize = 2; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 1) != 0) + { + teamsize = (s32) (teamsize + -1); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x404) != 0) || (get_controller_3dstick_U_D(0, -2, 1) < -1)) + { + if (scenario == 7) + { + if ((teamsize & 2) == 0) + { + teamsize = 2; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 2) == 0) + { + teamsize = (s32) (teamsize + 2); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + + } + } + } + } + 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); + menu_control_stick_tracking(); + phi_s0 = 0; + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { +loop_29: + if (scenario == 5) + { + if ((phi_s0 == 0) || (phi_s0 == teamsize)) + { + phi_a1 = 0; + } + else + { + + } + set_players_team_or_scenario_item_flag(phi_s0, phi_a1); + phi_s0_2 = phi_s0 + 1; + } + else + { + phi_a1_2 = 1; + if (phi_s0 != teamsize) + { + phi_a1_2 = 0; + } + set_players_team_or_scenario_item_flag(phi_s0, phi_a1_2); + phi_s0_2 = phi_s0 + 1; + } + phi_s0 = phi_s0_2; + if (phi_s0_2 != 4) + { + goto loop_29; + } + set_menu_to_mode(MENU_MP_OPTIONS, 0); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AB0 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AB4 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu14_mpteams +/* 049878 7F014D48 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04987C 7F014D4C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 049880 7F014D50 AFBF001C */ sw $ra, 0x1c($sp) +/* 049884 7F014D54 44816000 */ mtc1 $at, $f12 +/* 049888 7F014D58 AFB10018 */ sw $s1, 0x18($sp) +/* 04988C 7F014D5C 0C001151 */ jal setvideo_far +/* 049890 7F014D60 AFB00014 */ sw $s0, 0x14($sp) +/* 049894 7F014D64 3C018005 */ lui $at, %hi(D_80051AB0) +/* 049898 7F014D68 0C001164 */ jal video_related_21 +/* 04989C 7F014D6C C42C1AB0 */ lwc1 $f12, %lo(D_80051AB0)($at) +/* 0498A0 7F014D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0498A4 7F014D74 44816000 */ mtc1 $at, $f12 +/* 0498A8 7F014D78 3C018005 */ lui $at, %hi(D_80051AB4) +/* 0498AC 7F014D7C 0C001194 */ jal set_page_height +/* 0498B0 7F014D80 C42E1AB4 */ lwc1 $f14, %lo(D_80051AB4)($at) +/* 0498B4 7F014D84 0C00114D */ jal set_video2_settings_offset_24 +/* 0498B8 7F014D88 00002025 */ move $a0, $zero +/* 0498BC 7F014D8C 3C028003 */ lui $v0, %hi(D_8002B560) +/* 0498C0 7F014D90 2442B560 */ addiu $v0, %lo(D_8002B560) # addiu $v0, $v0, -0x4aa0 +/* 0498C4 7F014D94 8C4E0000 */ lw $t6, ($v0) +/* 0498C8 7F014D98 24010014 */ li $at, 20 +/* 0498CC 7F014D9C 00002025 */ move $a0, $zero +/* 0498D0 7F014DA0 25CF0001 */ addiu $t7, $t6, 1 +/* 0498D4 7F014DA4 01E1001A */ div $zero, $t7, $at +/* 0498D8 7F014DA8 0000C010 */ mfhi $t8 +/* 0498DC 7F014DAC AC580000 */ sw $t8, ($v0) +/* 0498E0 7F014DB0 0C0030EB */ jal get_controller_buttons_pressed +/* 0498E4 7F014DB4 24050101 */ li $a1, 257 +/* 0498E8 7F014DB8 14400005 */ bnez $v0, .L7F014DD0 +/* 0498EC 7F014DBC 00002025 */ move $a0, $zero +/* 0498F0 7F014DC0 2405FFFE */ li $a1, -2 +/* 0498F4 7F014DC4 0C00312D */ jal get_controller_3dstick_L_R +/* 0498F8 7F014DC8 24060001 */ li $a2, 1 +/* 0498FC 7F014DCC 18400020 */ blez $v0, .L7F014E50 +.L7F014DD0: +/* 049900 7F014DD0 3C198003 */ lui $t9, %hi(scenario) +/* 049904 7F014DD4 8F39B540 */ lw $t9, %lo(scenario)($t9) +/* 049908 7F014DD8 24010007 */ li $at, 7 +/* 04990C 7F014DDC 3C118007 */ lui $s1, %hi(teamsize) +/* 049910 7F014DE0 1721000F */ bne $t9, $at, .L7F014E20 +/* 049914 7F014DE4 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049918 7F014DE8 3C118007 */ lui $s1, %hi(teamsize) +/* 04991C 7F014DEC 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049920 7F014DF0 8E280000 */ lw $t0, ($s1) +/* 049924 7F014DF4 240A0001 */ li $t2, 1 +/* 049928 7F014DF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04992C 7F014DFC 31090001 */ andi $t1, $t0, 1 +/* 049930 7F014E00 1520008E */ bnez $t1, .L7F01503C +/* 049934 7F014E04 240500C7 */ li $a1, 199 +/* 049938 7F014E08 AE2A0000 */ sw $t2, ($s1) +/* 04993C 7F014E0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049940 7F014E10 0C002382 */ jal play_sfx_a1 +/* 049944 7F014E14 00003025 */ move $a2, $zero +/* 049948 7F014E18 10000088 */ b .L7F01503C +/* 04994C 7F014E1C 00000000 */ nop +.L7F014E20: +/* 049950 7F014E20 8E220000 */ lw $v0, ($s1) +/* 049954 7F014E24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049958 7F014E28 240500C7 */ li $a1, 199 +/* 04995C 7F014E2C 304B0001 */ andi $t3, $v0, 1 +/* 049960 7F014E30 15600082 */ bnez $t3, .L7F01503C +/* 049964 7F014E34 244C0001 */ addiu $t4, $v0, 1 +/* 049968 7F014E38 AE2C0000 */ sw $t4, ($s1) +/* 04996C 7F014E3C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049970 7F014E40 0C002382 */ jal play_sfx_a1 +/* 049974 7F014E44 00003025 */ move $a2, $zero +/* 049978 7F014E48 1000007C */ b .L7F01503C +/* 04997C 7F014E4C 00000000 */ nop +.L7F014E50: +/* 049980 7F014E50 00002025 */ move $a0, $zero +/* 049984 7F014E54 0C0030EB */ jal get_controller_buttons_pressed +/* 049988 7F014E58 24050808 */ li $a1, 2056 +/* 04998C 7F014E5C 14400005 */ bnez $v0, .L7F014E74 +/* 049990 7F014E60 00002025 */ move $a0, $zero +/* 049994 7F014E64 2405FFFE */ li $a1, -2 +/* 049998 7F014E68 0C00314A */ jal get_controller_3dstick_U_D +/* 04999C 7F014E6C 24060001 */ li $a2, 1 +/* 0499A0 7F014E70 18400020 */ blez $v0, .L7F014EF4 +.L7F014E74: +/* 0499A4 7F014E74 3C0D8003 */ lui $t5, %hi(scenario) +/* 0499A8 7F014E78 8DADB540 */ lw $t5, %lo(scenario)($t5) +/* 0499AC 7F014E7C 24010005 */ li $at, 5 +/* 0499B0 7F014E80 3C118007 */ lui $s1, %hi(teamsize) +/* 0499B4 7F014E84 15A1000F */ bne $t5, $at, .L7F014EC4 +/* 0499B8 7F014E88 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 0499BC 7F014E8C 3C118007 */ lui $s1, %hi(teamsize) +/* 0499C0 7F014E90 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 0499C4 7F014E94 8E2E0000 */ lw $t6, ($s1) +/* 0499C8 7F014E98 24180001 */ li $t8, 1 +/* 0499CC 7F014E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499D0 7F014EA0 31CF0002 */ andi $t7, $t6, 2 +/* 0499D4 7F014EA4 11E00065 */ beqz $t7, .L7F01503C +/* 0499D8 7F014EA8 240500C7 */ li $a1, 199 +/* 0499DC 7F014EAC AE380000 */ sw $t8, ($s1) +/* 0499E0 7F014EB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0499E4 7F014EB4 0C002382 */ jal play_sfx_a1 +/* 0499E8 7F014EB8 00003025 */ move $a2, $zero +/* 0499EC 7F014EBC 1000005F */ b .L7F01503C +/* 0499F0 7F014EC0 00000000 */ nop +.L7F014EC4: +/* 0499F4 7F014EC4 8E220000 */ lw $v0, ($s1) +/* 0499F8 7F014EC8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499FC 7F014ECC 240500C7 */ li $a1, 199 +/* 049A00 7F014ED0 30590002 */ andi $t9, $v0, 2 +/* 049A04 7F014ED4 13200059 */ beqz $t9, .L7F01503C +/* 049A08 7F014ED8 2448FFFE */ addiu $t0, $v0, -2 +/* 049A0C 7F014EDC AE280000 */ sw $t0, ($s1) +/* 049A10 7F014EE0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A14 7F014EE4 0C002382 */ jal play_sfx_a1 +/* 049A18 7F014EE8 00003025 */ move $a2, $zero +/* 049A1C 7F014EEC 10000053 */ b .L7F01503C +/* 049A20 7F014EF0 00000000 */ nop +.L7F014EF4: +/* 049A24 7F014EF4 00002025 */ move $a0, $zero +/* 049A28 7F014EF8 0C0030EB */ jal get_controller_buttons_pressed +/* 049A2C 7F014EFC 24050202 */ li $a1, 514 +/* 049A30 7F014F00 14400006 */ bnez $v0, .L7F014F1C +/* 049A34 7F014F04 00002025 */ move $a0, $zero +/* 049A38 7F014F08 2405FFFE */ li $a1, -2 +/* 049A3C 7F014F0C 0C00312D */ jal get_controller_3dstick_L_R +/* 049A40 7F014F10 24060001 */ li $a2, 1 +/* 049A44 7F014F14 2841FFFF */ slti $at, $v0, -1 +/* 049A48 7F014F18 10200020 */ beqz $at, .L7F014F9C +.L7F014F1C: +/* 049A4C 7F014F1C 3C098003 */ lui $t1, %hi(scenario) +/* 049A50 7F014F20 8D29B540 */ lw $t1, %lo(scenario)($t1) +/* 049A54 7F014F24 24010005 */ li $at, 5 +/* 049A58 7F014F28 3C118007 */ lui $s1, %hi(teamsize) +/* 049A5C 7F014F2C 1521000F */ bne $t1, $at, .L7F014F6C +/* 049A60 7F014F30 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049A64 7F014F34 3C118007 */ lui $s1, %hi(teamsize) +/* 049A68 7F014F38 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049A6C 7F014F3C 8E2A0000 */ lw $t2, ($s1) +/* 049A70 7F014F40 240C0002 */ li $t4, 2 +/* 049A74 7F014F44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049A78 7F014F48 314B0001 */ andi $t3, $t2, 1 +/* 049A7C 7F014F4C 1160003B */ beqz $t3, .L7F01503C +/* 049A80 7F014F50 240500C7 */ li $a1, 199 +/* 049A84 7F014F54 AE2C0000 */ sw $t4, ($s1) +/* 049A88 7F014F58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A8C 7F014F5C 0C002382 */ jal play_sfx_a1 +/* 049A90 7F014F60 00003025 */ move $a2, $zero +/* 049A94 7F014F64 10000035 */ b .L7F01503C +/* 049A98 7F014F68 00000000 */ nop +.L7F014F6C: +/* 049A9C 7F014F6C 8E220000 */ lw $v0, ($s1) +/* 049AA0 7F014F70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049AA4 7F014F74 240500C7 */ li $a1, 199 +/* 049AA8 7F014F78 304D0001 */ andi $t5, $v0, 1 +/* 049AAC 7F014F7C 11A0002F */ beqz $t5, .L7F01503C +/* 049AB0 7F014F80 244EFFFF */ addiu $t6, $v0, -1 +/* 049AB4 7F014F84 AE2E0000 */ sw $t6, ($s1) +/* 049AB8 7F014F88 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049ABC 7F014F8C 0C002382 */ jal play_sfx_a1 +/* 049AC0 7F014F90 00003025 */ move $a2, $zero +/* 049AC4 7F014F94 10000029 */ b .L7F01503C +/* 049AC8 7F014F98 00000000 */ nop +.L7F014F9C: +/* 049ACC 7F014F9C 00002025 */ move $a0, $zero +/* 049AD0 7F014FA0 0C0030EB */ jal get_controller_buttons_pressed +/* 049AD4 7F014FA4 24050404 */ li $a1, 1028 +/* 049AD8 7F014FA8 14400006 */ bnez $v0, .L7F014FC4 +/* 049ADC 7F014FAC 00002025 */ move $a0, $zero +/* 049AE0 7F014FB0 2405FFFE */ li $a1, -2 +/* 049AE4 7F014FB4 0C00314A */ jal get_controller_3dstick_U_D +/* 049AE8 7F014FB8 24060001 */ li $a2, 1 +/* 049AEC 7F014FBC 2841FFFF */ slti $at, $v0, -1 +/* 049AF0 7F014FC0 1020001E */ beqz $at, .L7F01503C +.L7F014FC4: +/* 049AF4 7F014FC4 3C0F8003 */ lui $t7, %hi(scenario) +/* 049AF8 7F014FC8 8DEFB540 */ lw $t7, %lo(scenario)($t7) +/* 049AFC 7F014FCC 24010007 */ li $at, 7 +/* 049B00 7F014FD0 3C118007 */ lui $s1, %hi(teamsize) +/* 049B04 7F014FD4 15E1000F */ bne $t7, $at, .L7F015014 +/* 049B08 7F014FD8 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049B0C 7F014FDC 3C118007 */ lui $s1, %hi(teamsize) +/* 049B10 7F014FE0 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049B14 7F014FE4 8E380000 */ lw $t8, ($s1) +/* 049B18 7F014FE8 24080002 */ li $t0, 2 +/* 049B1C 7F014FEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B20 7F014FF0 33190002 */ andi $t9, $t8, 2 +/* 049B24 7F014FF4 17200011 */ bnez $t9, .L7F01503C +/* 049B28 7F014FF8 240500C7 */ li $a1, 199 +/* 049B2C 7F014FFC AE280000 */ sw $t0, ($s1) +/* 049B30 7F015000 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B34 7F015004 0C002382 */ jal play_sfx_a1 +/* 049B38 7F015008 00003025 */ move $a2, $zero +/* 049B3C 7F01500C 1000000B */ b .L7F01503C +/* 049B40 7F015010 00000000 */ nop +.L7F015014: +/* 049B44 7F015014 8E220000 */ lw $v0, ($s1) +/* 049B48 7F015018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B4C 7F01501C 240500C7 */ li $a1, 199 +/* 049B50 7F015020 30490002 */ andi $t1, $v0, 2 +/* 049B54 7F015024 15200005 */ bnez $t1, .L7F01503C +/* 049B58 7F015028 244A0002 */ addiu $t2, $v0, 2 +/* 049B5C 7F01502C AE2A0000 */ sw $t2, ($s1) +/* 049B60 7F015030 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B64 7F015034 0C002382 */ jal play_sfx_a1 +/* 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 +/* 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 +/* 049B80 7F015050 8E040000 */ lw $a0, ($s0) +/* 049B84 7F015054 8E040000 */ lw $a0, ($s0) +/* 049B88 7F015058 00002825 */ move $a1, $zero +/* 049B8C 7F01505C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049B90 7F015060 24060001 */ li $a2, 1 +/* 049B94 7F015064 8E040000 */ lw $a0, ($s0) +/* 049B98 7F015068 2405002A */ li $a1, 42 +/* 049B9C 7F01506C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049BA0 7F015070 24060001 */ li $a2, 1 +/* 049BA4 7F015074 0FC026E1 */ jal menu_control_stick_tracking +/* 049BA8 7F015078 00000000 */ nop +/* 049BAC 7F01507C 00002025 */ move $a0, $zero +/* 049BB0 7F015080 0C0030EB */ jal get_controller_buttons_pressed +/* 049BB4 7F015084 3405B000 */ li $a1, 45056 +/* 049BB8 7F015088 10400026 */ beqz $v0, .L7F015124 +/* 049BBC 7F01508C 00008025 */ move $s0, $zero +.L7F015090: +/* 049BC0 7F015090 3C0B8003 */ lui $t3, %hi(scenario) +/* 049BC4 7F015094 8D6BB540 */ lw $t3, %lo(scenario)($t3) +/* 049BC8 7F015098 24010005 */ li $at, 5 +/* 049BCC 7F01509C 5561000E */ bnel $t3, $at, .L7F0150D8 +/* 049BD0 7F0150A0 8E2D0000 */ lw $t5, ($s1) +/* 049BD4 7F0150A4 12000005 */ beqz $s0, .L7F0150BC +/* 049BD8 7F0150A8 00000000 */ nop +/* 049BDC 7F0150AC 8E2C0000 */ lw $t4, ($s1) +/* 049BE0 7F0150B0 24050001 */ li $a1, 1 +/* 049BE4 7F0150B4 160C0003 */ bne $s0, $t4, .L7F0150C4 +/* 049BE8 7F0150B8 00000000 */ nop +.L7F0150BC: +/* 049BEC 7F0150BC 10000001 */ b .L7F0150C4 +/* 049BF0 7F0150C0 00002825 */ move $a1, $zero +.L7F0150C4: +/* 049BF4 7F0150C4 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 049BF8 7F0150C8 02002025 */ move $a0, $s0 +/* 049BFC 7F0150CC 1000000A */ b .L7F0150F8 +/* 049C00 7F0150D0 26100001 */ addiu $s0, $s0, 1 +/* 049C04 7F0150D4 8E2D0000 */ lw $t5, ($s1) +.L7F0150D8: +/* 049C08 7F0150D8 24050001 */ li $a1, 1 +/* 049C0C 7F0150DC 120D0003 */ beq $s0, $t5, .L7F0150EC +/* 049C10 7F0150E0 00000000 */ nop +/* 049C14 7F0150E4 10000001 */ b .L7F0150EC +/* 049C18 7F0150E8 00002825 */ move $a1, $zero +.L7F0150EC: +/* 049C1C 7F0150EC 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 049C20 7F0150F0 02002025 */ move $a0, $s0 +/* 049C24 7F0150F4 26100001 */ addiu $s0, $s0, 1 +.L7F0150F8: +/* 049C28 7F0150F8 24010004 */ li $at, 4 +/* 049C2C 7F0150FC 1601FFE4 */ bne $s0, $at, .L7F015090 +/* 049C30 7F015100 00000000 */ nop +/* 049C34 7F015104 2404000E */ li $a0, 14 +/* 049C38 7F015108 0FC06975 */ jal set_menu_to_mode +/* 049C3C 7F01510C 00002825 */ move $a1, $zero +/* 049C40 7F015110 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049C44 7F015114 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049C48 7F015118 240500C7 */ li $a1, 199 +/* 049C4C 7F01511C 0C002382 */ jal play_sfx_a1 +/* 049C50 7F015120 00003025 */ move $a2, $zero +.L7F015124: +/* 049C54 7F015124 8FBF001C */ lw $ra, 0x1c($sp) +/* 049C58 7F015128 8FB00014 */ lw $s0, 0x14($sp) +/* 049C5C 7F01512C 8FB10018 */ lw $s1, 0x18($sp) +/* 049C60 7F015130 03E00008 */ jr $ra +/* 049C64 7F015134 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu14_mpteams(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s5; + s32 temp_s6; + u32 temp_s2; + u32 temp_s4; + void *temp_v1; + u32 phi_s4; + s32 phi_v0; + s32 phi_v0_2; + void *phi_s5; + u32 phi_s0; + s32 phi_s1; + s32 phi_s5_2; + void *phi_s5_3; + void *phi_s5_4; + void *phi_s5_5; + u32 phi_v0_3; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + phi_s5_5 = temp_ret; + if (spCC >= 3) + { + phi_s5_5 = microcode_constructor_related_to_menus(temp_ret, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + } + phi_s5_3 = phi_s5_5; + if (spCC > 0) + { + phi_s4 = 0U; + phi_s5 = phi_s5_5; +loop_4: + if (phi_s4 >= 2) + { + phi_v0_2 = 0x8c; + } + else + { + phi_v0_2 = 0; + } + temp_s6 = phi_v0_2 + 0x1e; + if ((phi_s4 & 1) != 0) + { + phi_v0 = 0xaf; + } + else + { + phi_v0 = 0; + } + temp_v1 = phi_s5; + temp_s2 = (u32) phi_s4 < 1U; + temp_s5 = phi_s5 + 8; + temp_v1->unk0 = (s32) (((((s32) ((f32) (phi_v0 + 0x2c) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (temp_s6 + 5) * 4.0f) & 0xfff)); + temp_v1->unk4 = (s32) ((((s32) ((f32) (phi_v0 + 0xcf) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (temp_s6 + 0x87) * 4.0f) & 0xfff)); + phi_s5_2 = temp_s5; + if (temp_s2 != 0) + { + temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x58)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_2, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((phi_v0 + 0x7d) - (spA0 >> 1)); + get_video2_settings_txtClipW(); + phi_s5_2 = write_text_at_abs_coord(temp_s5, &sp9C, &sp98, temp_ret_2, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + if (scenario == 5) + { + phi_v0_3 = temp_s2; + if (temp_s2 == 0) + { + phi_v0_3 = (u32) (phi_s4 ^ teamsize) < 1U; + } + phi_s0 = phi_v0_3; + } + else + { + phi_s0 = 0U < (u32) (phi_s4 ^ teamsize); + } + if (phi_s0 != 0) + { + phi_s1 = get_textptr_for_textID(TEXT(LTITLE, 0x59)); + } + else + { + phi_s1 = get_textptr_for_textID(TEXT(LTITLE, 0x5a)); + } + if (phi_s0 != 0) + { + + } + else + { + + } + sub_GAME_7F0AE98C(&sp90, &sp8C, phi_s1, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) (spB4 - (sp8C >> 1)); + sp84 = (s32) ((temp_s6 - (sp90 >> 1)) + 0x46); + if ((phi_s4 == teamsize) && (phi_s4 == teamsize)) + { + phi_s5_4 = (void *) phi_s5_2; + if (D_8002B560 < 0xa) + { +block_26: + get_video2_settings_txtClipW(); + phi_s5_4 = write_text_at_abs_coord(phi_s5_2, &sp88, &sp84, phi_s1, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, get_video2_settings_txtClipH(), 0, 0); + } + } + else + { + goto block_26; + } + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s5 = phi_s5_4; + phi_s5_3 = phi_s5_4; + if (temp_s4 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s5_3); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu14_mpteams +/* 049C68 7F015138 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 049C6C 7F01513C AFBF0064 */ sw $ra, 0x64($sp) +/* 049C70 7F015140 AFB50054 */ sw $s5, 0x54($sp) +/* 049C74 7F015144 0080A825 */ move $s5, $a0 +/* 049C78 7F015148 AFBE0060 */ sw $fp, 0x60($sp) +/* 049C7C 7F01514C AFB7005C */ sw $s7, 0x5c($sp) +/* 049C80 7F015150 AFB60058 */ sw $s6, 0x58($sp) +/* 049C84 7F015154 AFB40050 */ sw $s4, 0x50($sp) +/* 049C88 7F015158 AFB3004C */ sw $s3, 0x4c($sp) +/* 049C8C 7F01515C AFB20048 */ sw $s2, 0x48($sp) +/* 049C90 7F015160 AFB10044 */ sw $s1, 0x44($sp) +/* 049C94 7F015164 AFB00040 */ sw $s0, 0x40($sp) +/* 049C98 7F015168 0FC040A4 */ jal get_selected_num_players +/* 049C9C 7F01516C F7B40038 */ sdc1 $f20, 0x38($sp) +/* 049CA0 7F015170 AFA200CC */ sw $v0, 0xcc($sp) +/* 049CA4 7F015174 02A02025 */ move $a0, $s5 +/* 049CA8 7F015178 00002825 */ move $a1, $zero +/* 049CAC 7F01517C 00003025 */ move $a2, $zero +/* 049CB0 7F015180 0C0011B4 */ jal set_setfillcolor +/* 049CB4 7F015184 00003825 */ move $a3, $zero +/* 049CB8 7F015188 0C000FBE */ jal insert_generic_fillrect +/* 049CBC 7F01518C 00402025 */ move $a0, $v0 +/* 049CC0 7F015190 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 049CC4 7F015194 00402025 */ move $a0, $v0 +/* 049CC8 7F015198 0FC2B366 */ jal microcode_constructor +/* 049CCC 7F01519C 00402025 */ move $a0, $v0 +/* 049CD0 7F0151A0 240E00AB */ li $t6, 171 +/* 049CD4 7F0151A4 240F0090 */ li $t7, 144 +/* 049CD8 7F0151A8 AFAF0014 */ sw $t7, 0x14($sp) +/* 049CDC 7F0151AC AFAE0010 */ sw $t6, 0x10($sp) +/* 049CE0 7F0151B0 00402025 */ move $a0, $v0 +/* 049CE4 7F0151B4 24050026 */ li $a1, 38 +/* 049CE8 7F0151B8 240600A9 */ li $a2, 169 +/* 049CEC 7F0151BC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049CF0 7F0151C0 24070184 */ li $a3, 388 +/* 049CF4 7F0151C4 8FB800CC */ lw $t8, 0xcc($sp) +/* 049CF8 7F0151C8 0040A825 */ move $s5, $v0 +/* 049CFC 7F0151CC 00402025 */ move $a0, $v0 +/* 049D00 7F0151D0 2B010003 */ slti $at, $t8, 3 +/* 049D04 7F0151D4 14200009 */ bnez $at, .L7F0151FC +/* 049D08 7F0151D8 240500D4 */ li $a1, 212 +/* 049D0C 7F0151DC 24190136 */ li $t9, 310 +/* 049D10 7F0151E0 24080080 */ li $t0, 128 +/* 049D14 7F0151E4 AFA80014 */ sw $t0, 0x14($sp) +/* 049D18 7F0151E8 AFB90010 */ sw $t9, 0x10($sp) +/* 049D1C 7F0151EC 2406001E */ li $a2, 30 +/* 049D20 7F0151F0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049D24 7F0151F4 240700D6 */ li $a3, 214 +/* 049D28 7F0151F8 0040A825 */ move $s5, $v0 +.L7F0151FC: +/* 049D2C 7F0151FC 8FA900CC */ lw $t1, 0xcc($sp) +/* 049D30 7F015200 0000A025 */ move $s4, $zero +/* 049D34 7F015204 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 049D38 7F015208 192000B2 */ blez $t1, .L7F0154D4 +/* 049D3C 7F01520C 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 049D40 7F015210 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 049D44 7F015214 4481A000 */ mtc1 $at, $f20 +/* 049D48 7F015218 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 049D4C 7F01521C 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 049D50 7F015220 2A810002 */ slti $at, $s4, 2 +.L7F015224: +/* 049D54 7F015224 14200003 */ bnez $at, .L7F015234 +/* 049D58 7F015228 328A0001 */ andi $t2, $s4, 1 +/* 049D5C 7F01522C 10000002 */ b .L7F015238 +/* 049D60 7F015230 2402008C */ li $v0, 140 +.L7F015234: +/* 049D64 7F015234 00001025 */ move $v0, $zero +.L7F015238: +/* 049D68 7F015238 11400003 */ beqz $t2, .L7F015248 +/* 049D6C 7F01523C 2456001E */ addiu $s6, $v0, 0x1e +/* 049D70 7F015240 10000002 */ b .L7F01524C +/* 049D74 7F015244 240200AF */ li $v0, 175 +.L7F015248: +/* 049D78 7F015248 00001025 */ move $v0, $zero +.L7F01524C: +/* 049D7C 7F01524C 244B002C */ addiu $t3, $v0, 0x2c +/* 049D80 7F015250 448B2000 */ mtc1 $t3, $f4 +/* 049D84 7F015254 26D00005 */ addiu $s0, $s6, 5 +/* 049D88 7F015258 44908000 */ mtc1 $s0, $f16 +/* 049D8C 7F01525C 468021A0 */ cvt.s.w $f6, $f4 +/* 049D90 7F015260 244B00CF */ addiu $t3, $v0, 0xcf +/* 049D94 7F015264 26D90087 */ addiu $t9, $s6, 0x87 +/* 049D98 7F015268 3C01ED00 */ lui $at, 0xed00 +/* 049D9C 7F01526C 02A01825 */ move $v1, $s5 +/* 049DA0 7F015270 468084A0 */ cvt.s.w $f18, $f16 +/* 049DA4 7F015274 46143202 */ mul.s $f8, $f6, $f20 +/* 049DA8 7F015278 2451007D */ addiu $s1, $v0, 0x7d +/* 049DAC 7F01527C 2E920001 */ sltiu $s2, $s4, 1 +/* 049DB0 7F015280 26B50008 */ addiu $s5, $s5, 8 +/* 049DB4 7F015284 46149102 */ mul.s $f4, $f18, $f20 +/* 049DB8 7F015288 4600428D */ trunc.w.s $f10, $f8 +/* 049DBC 7F01528C 448B4000 */ mtc1 $t3, $f8 +/* 049DC0 7F015290 4600218D */ trunc.w.s $f6, $f4 +/* 049DC4 7F015294 440D5000 */ mfc1 $t5, $f10 +/* 049DC8 7F015298 44992000 */ mtc1 $t9, $f4 +/* 049DCC 7F01529C 468042A0 */ cvt.s.w $f10, $f8 +/* 049DD0 7F0152A0 44083000 */ mfc1 $t0, $f6 +/* 049DD4 7F0152A4 31AE0FFF */ andi $t6, $t5, 0xfff +/* 049DD8 7F0152A8 000E7B00 */ sll $t7, $t6, 0xc +/* 049DDC 7F0152AC 01E1C025 */ or $t8, $t7, $at +/* 049DE0 7F0152B0 468021A0 */ cvt.s.w $f6, $f4 +/* 049DE4 7F0152B4 46145402 */ mul.s $f16, $f10, $f20 +/* 049DE8 7F0152B8 31090FFF */ andi $t1, $t0, 0xfff +/* 049DEC 7F0152BC 03095025 */ or $t2, $t8, $t1 +/* 049DF0 7F0152C0 AC6A0000 */ sw $t2, ($v1) +/* 049DF4 7F0152C4 46143202 */ mul.s $f8, $f6, $f20 +/* 049DF8 7F0152C8 4600848D */ trunc.w.s $f18, $f16 +/* 049DFC 7F0152CC 4600428D */ trunc.w.s $f10, $f8 +/* 049E00 7F0152D0 440D9000 */ mfc1 $t5, $f18 +/* 049E04 7F0152D4 44185000 */ mfc1 $t8, $f10 +/* 049E08 7F0152D8 31AE0FFF */ andi $t6, $t5, 0xfff +/* 049E0C 7F0152DC 000E7B00 */ sll $t7, $t6, 0xc +/* 049E10 7F0152E0 33090FFF */ andi $t1, $t8, 0xfff +/* 049E14 7F0152E4 01E95025 */ or $t2, $t7, $t1 +/* 049E18 7F0152E8 AC6A0004 */ sw $t2, 4($v1) +/* 049E1C 7F0152EC 12400026 */ beqz $s2, .L7F015388 +/* 049E20 7F0152F0 AFB100B4 */ sw $s1, 0xb4($sp) +/* 049E24 7F0152F4 0FC30776 */ jal get_textptr_for_textID +/* 049E28 7F0152F8 34049C58 */ li $a0, 40024 +/* 049E2C 7F0152FC 8FCB0000 */ lw $t3, ($fp) +/* 049E30 7F015300 00409825 */ move $s3, $v0 +/* 049E34 7F015304 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 049E38 7F015308 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 049E3C 7F01530C 00403025 */ move $a2, $v0 +/* 049E40 7F015310 8EE70000 */ lw $a3, ($s7) +/* 049E44 7F015314 AFA00014 */ sw $zero, 0x14($sp) +/* 049E48 7F015318 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 049E4C 7F01531C AFAB0010 */ sw $t3, 0x10($sp) +/* 049E50 7F015320 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 049E54 7F015324 AFB00098 */ sw $s0, 0x98($sp) +/* 049E58 7F015328 000C6843 */ sra $t5, $t4, 1 +/* 049E5C 7F01532C 022D7023 */ subu $t6, $s1, $t5 +/* 049E60 7F015330 0C001107 */ jal get_video2_settings_txtClipW +/* 049E64 7F015334 AFAE009C */ sw $t6, 0x9c($sp) +/* 049E68 7F015338 00028400 */ sll $s0, $v0, 0x10 +/* 049E6C 7F01533C 0010CC03 */ sra $t9, $s0, 0x10 +/* 049E70 7F015340 0C00110B */ jal get_video2_settings_txtClipH +/* 049E74 7F015344 03208025 */ move $s0, $t9 +/* 049E78 7F015348 8EE80000 */ lw $t0, ($s7) +/* 049E7C 7F01534C 8FD80000 */ lw $t8, ($fp) +/* 049E80 7F015350 240F00FF */ li $t7, 255 +/* 049E84 7F015354 AFAF0018 */ sw $t7, 0x18($sp) +/* 049E88 7F015358 02A02025 */ move $a0, $s5 +/* 049E8C 7F01535C 27A5009C */ addiu $a1, $sp, 0x9c +/* 049E90 7F015360 27A60098 */ addiu $a2, $sp, 0x98 +/* 049E94 7F015364 02603825 */ move $a3, $s3 +/* 049E98 7F015368 AFB0001C */ sw $s0, 0x1c($sp) +/* 049E9C 7F01536C AFA20020 */ sw $v0, 0x20($sp) +/* 049EA0 7F015370 AFA00024 */ sw $zero, 0x24($sp) +/* 049EA4 7F015374 AFA00028 */ sw $zero, 0x28($sp) +/* 049EA8 7F015378 AFA80010 */ sw $t0, 0x10($sp) +/* 049EAC 7F01537C 0FC025D8 */ jal write_text_at_abs_coord +/* 049EB0 7F015380 AFB80014 */ sw $t8, 0x14($sp) +/* 049EB4 7F015384 0040A825 */ move $s5, $v0 +.L7F015388: +/* 049EB8 7F015388 3C098003 */ lui $t1, %hi(scenario) +/* 049EBC 7F01538C 8D29B540 */ lw $t1, %lo(scenario)($t1) +/* 049EC0 7F015390 24010005 */ li $at, 5 +/* 049EC4 7F015394 3C0B8007 */ lui $t3, %hi(teamsize) +/* 049EC8 7F015398 15210009 */ bne $t1, $at, .L7F0153C0 +/* 049ECC 7F01539C 00000000 */ nop +/* 049ED0 7F0153A0 16400005 */ bnez $s2, .L7F0153B8 +/* 049ED4 7F0153A4 02401025 */ move $v0, $s2 +/* 049ED8 7F0153A8 3C0A8007 */ lui $t2, %hi(teamsize) +/* 049EDC 7F0153AC 8D4A9788 */ lw $t2, %lo(teamsize)($t2) +/* 049EE0 7F0153B0 028A1026 */ xor $v0, $s4, $t2 +/* 049EE4 7F0153B4 2C420001 */ sltiu $v0, $v0, 1 +.L7F0153B8: +/* 049EE8 7F0153B8 10000004 */ b .L7F0153CC +/* 049EEC 7F0153BC 00408025 */ move $s0, $v0 +.L7F0153C0: +/* 049EF0 7F0153C0 8D6B9788 */ lw $t3, %lo(teamsize)($t3) +/* 049EF4 7F0153C4 028B8026 */ xor $s0, $s4, $t3 +/* 049EF8 7F0153C8 0010802B */ sltu $s0, $zero, $s0 +.L7F0153CC: +/* 049EFC 7F0153CC 12000005 */ beqz $s0, .L7F0153E4 +/* 049F00 7F0153D0 00000000 */ nop +/* 049F04 7F0153D4 0FC30776 */ jal get_textptr_for_textID +/* 049F08 7F0153D8 34049C59 */ li $a0, 40025 +/* 049F0C 7F0153DC 10000004 */ b .L7F0153F0 +/* 049F10 7F0153E0 00408825 */ move $s1, $v0 +.L7F0153E4: +/* 049F14 7F0153E4 0FC30776 */ jal get_textptr_for_textID +/* 049F18 7F0153E8 34049C5A */ li $a0, 40026 +/* 049F1C 7F0153EC 00408825 */ move $s1, $v0 +.L7F0153F0: +/* 049F20 7F0153F0 12000004 */ beqz $s0, .L7F015404 +/* 049F24 7F0153F4 27A40090 */ addiu $a0, $sp, 0x90 +/* 049F28 7F0153F8 3C12FF00 */ lui $s2, (0xFF0000FF >> 16) # lui $s2, 0xff00 +/* 049F2C 7F0153FC 10000002 */ b .L7F015408 +/* 049F30 7F015400 365200FF */ ori $s2, (0xFF0000FF & 0xFFFF) # ori $s2, $s2, 0xff +.L7F015404: +/* 049F34 7F015404 3412FFFF */ li $s2, 65535 +.L7F015408: +/* 049F38 7F015408 8FCC0000 */ lw $t4, ($fp) +/* 049F3C 7F01540C 27A5008C */ addiu $a1, $sp, 0x8c +/* 049F40 7F015410 02203025 */ move $a2, $s1 +/* 049F44 7F015414 8EE70000 */ lw $a3, ($s7) +/* 049F48 7F015418 AFA00014 */ sw $zero, 0x14($sp) +/* 049F4C 7F01541C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 049F50 7F015420 AFAC0010 */ sw $t4, 0x10($sp) +/* 049F54 7F015424 8FB80090 */ lw $t8, 0x90($sp) +/* 049F58 7F015428 8FAE008C */ lw $t6, 0x8c($sp) +/* 049F5C 7F01542C 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 049F60 7F015430 3C028007 */ lui $v0, %hi(teamsize) +/* 049F64 7F015434 8C429788 */ lw $v0, %lo(teamsize)($v0) +/* 049F68 7F015438 00187843 */ sra $t7, $t8, 1 +/* 049F6C 7F01543C 02CF4823 */ subu $t1, $s6, $t7 +/* 049F70 7F015440 000EC843 */ sra $t9, $t6, 1 +/* 049F74 7F015444 252A0046 */ addiu $t2, $t1, 0x46 +/* 049F78 7F015448 01B94023 */ subu $t0, $t5, $t9 +/* 049F7C 7F01544C AFA80088 */ sw $t0, 0x88($sp) +/* 049F80 7F015450 16820007 */ bne $s4, $v0, .L7F015470 +/* 049F84 7F015454 AFAA0084 */ sw $t2, 0x84($sp) +/* 049F88 7F015458 1682001A */ bne $s4, $v0, .L7F0154C4 +/* 049F8C 7F01545C 3C0B8003 */ lui $t3, %hi(D_8002B560) +/* 049F90 7F015460 8D6BB560 */ lw $t3, %lo(D_8002B560)($t3) +/* 049F94 7F015464 2961000A */ slti $at, $t3, 0xa +/* 049F98 7F015468 50200017 */ beql $at, $zero, .L7F0154C8 +/* 049F9C 7F01546C 8FB900CC */ lw $t9, 0xcc($sp) +.L7F015470: +/* 049FA0 7F015470 0C001107 */ jal get_video2_settings_txtClipW +/* 049FA4 7F015474 00000000 */ nop +/* 049FA8 7F015478 00028400 */ sll $s0, $v0, 0x10 +/* 049FAC 7F01547C 00106403 */ sra $t4, $s0, 0x10 +/* 049FB0 7F015480 0C00110B */ jal get_video2_settings_txtClipH +/* 049FB4 7F015484 01808025 */ move $s0, $t4 +/* 049FB8 7F015488 8EEE0000 */ lw $t6, ($s7) +/* 049FBC 7F01548C 8FCD0000 */ lw $t5, ($fp) +/* 049FC0 7F015490 02A02025 */ move $a0, $s5 +/* 049FC4 7F015494 27A50088 */ addiu $a1, $sp, 0x88 +/* 049FC8 7F015498 27A60084 */ addiu $a2, $sp, 0x84 +/* 049FCC 7F01549C 02203825 */ move $a3, $s1 +/* 049FD0 7F0154A0 AFB20018 */ sw $s2, 0x18($sp) +/* 049FD4 7F0154A4 AFB0001C */ sw $s0, 0x1c($sp) +/* 049FD8 7F0154A8 AFA20020 */ sw $v0, 0x20($sp) +/* 049FDC 7F0154AC AFA00024 */ sw $zero, 0x24($sp) +/* 049FE0 7F0154B0 AFA00028 */ sw $zero, 0x28($sp) +/* 049FE4 7F0154B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 049FE8 7F0154B8 0FC025D8 */ jal write_text_at_abs_coord +/* 049FEC 7F0154BC AFAD0014 */ sw $t5, 0x14($sp) +/* 049FF0 7F0154C0 0040A825 */ move $s5, $v0 +.L7F0154C4: +/* 049FF4 7F0154C4 8FB900CC */ lw $t9, 0xcc($sp) +.L7F0154C8: +/* 049FF8 7F0154C8 26940001 */ addiu $s4, $s4, 1 +/* 049FFC 7F0154CC 5699FF55 */ bnel $s4, $t9, .L7F015224 +/* 04A000 7F0154D0 2A810002 */ slti $at, $s4, 2 +.L7F0154D4: +/* 04A004 7F0154D4 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 04A008 7F0154D8 02A02025 */ move $a0, $s5 +/* 04A00C 7F0154DC 8FBF0064 */ lw $ra, 0x64($sp) +/* 04A010 7F0154E0 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 04A014 7F0154E4 8FB00040 */ lw $s0, 0x40($sp) +/* 04A018 7F0154E8 8FB10044 */ lw $s1, 0x44($sp) +/* 04A01C 7F0154EC 8FB20048 */ lw $s2, 0x48($sp) +/* 04A020 7F0154F0 8FB3004C */ lw $s3, 0x4c($sp) +/* 04A024 7F0154F4 8FB40050 */ lw $s4, 0x50($sp) +/* 04A028 7F0154F8 8FB50054 */ lw $s5, 0x54($sp) +/* 04A02C 7F0154FC 8FB60058 */ lw $s6, 0x58($sp) +/* 04A030 7F015500 8FB7005C */ lw $s7, 0x5c($sp) +/* 04A034 7F015504 8FBE0060 */ lw $fp, 0x60($sp) +/* 04A038 7F015508 03E00008 */ jr $ra +/* 04A03C 7F01550C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +#ifdef NONMATCHING +void set_briefing_page(WATCH_BRIEFING_PAGE page) +{ + current_menu_briefing_page = page; +} +#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; + + 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) + { + phi_v1 = phi_v1 + 4; + phi_v0 = temp_v0; + if (temp_v0 != 0x28) + { + goto loop_1; + } + } + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel load_briefing_text_for_stage +/* 04A050 7F015520 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 04A054 7F015524 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 04A058 7F015528 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 04A05C 7F01552C AFB00018 */ sw $s0, 0x18($sp) +/* 04A060 7F015530 3C108003 */ lui $s0, %hi(ptr_logo_and_walletbond_DL) +/* 04A064 7F015534 8E10A950 */ lw $s0, %lo(ptr_logo_and_walletbond_DL)($s0) +/* 04A068 7F015538 000E78C0 */ sll $t7, $t6, 3 +/* 04A06C 7F01553C 01EE7823 */ subu $t7, $t7, $t6 +/* 04A070 7F015540 3401A000 */ li $at, 40960 +/* 04A074 7F015544 000F7880 */ sll $t7, $t7, 2 +/* 04A078 7F015548 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+24) +/* 04A07C 7F01554C AFBF001C */ sw $ra, 0x1c($sp) +/* 04A080 7F015550 008F2021 */ addu $a0, $a0, $t7 +/* 04A084 7F015554 02018021 */ addu $s0, $s0, $at +/* 04A088 7F015558 02003025 */ move $a2, $s0 +/* 04A08C 7F01555C 8C84ABFC */ lw $a0, %lo(mission_folder_setup_entries+24)($a0) +/* 04A090 7F015560 24050001 */ li $a1, 1 +/* 04A094 7F015564 0FC2F350 */ jal _load_resource_named_to_buffer +/* 04A098 7F015568 24070200 */ li $a3, 512 +/* 04A09C 7F01556C 3C198003 */ lui $t9, %hi(briefingpage) +/* 04A0A0 7F015570 8F39A8F8 */ lw $t9, %lo(briefingpage)($t9) +/* 04A0A4 7F015574 3C180006 */ lui $t8, (0x0006DE00 >> 16) # lui $t8, 6 +/* 04A0A8 7F015578 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+8) +/* 04A0AC 7F01557C 001940C0 */ sll $t0, $t9, 3 +/* 04A0B0 7F015580 01194023 */ subu $t0, $t0, $t9 +/* 04A0B4 7F015584 00084080 */ sll $t0, $t0, 2 +/* 04A0B8 7F015588 3C018007 */ lui $at, %hi(ptrbriefingdata) +/* 04A0BC 7F01558C 3718DE00 */ ori $t8, (0x0006DE00 & 0xFFFF) # ori $t8, $t8, 0xde00 +/* 04A0C0 7F015590 00882021 */ addu $a0, $a0, $t0 +/* 04A0C4 7F015594 AC22978C */ sw $v0, %lo(ptrbriefingdata)($at) +/* 04A0C8 7F015598 26100200 */ addiu $s0, $s0, 0x200 +/* 04A0CC 7F01559C AFB80020 */ sw $t8, 0x20($sp) +/* 04A0D0 7F0155A0 0FC30578 */ jal get_textbank_number_for_stagenum +/* 04A0D4 7F0155A4 8C84ABEC */ lw $a0, %lo(mission_folder_setup_entries+8)($a0) +/* 04A0D8 7F0155A8 00402025 */ move $a0, $v0 +/* 04A0DC 7F0155AC 02002825 */ move $a1, $s0 +/* 04A0E0 7F0155B0 0FC30759 */ jal load_briefing_text_bank +/* 04A0E4 7F0155B4 8FA60020 */ lw $a2, 0x20($sp) +/* 04A0E8 7F0155B8 3C038007 */ lui $v1, %hi(ptrbriefingdata) +/* 04A0EC 7F0155BC 8C63978C */ lw $v1, %lo(ptrbriefingdata)($v1) +/* 04A0F0 7F0155C0 00001025 */ move $v0, $zero +/* 04A0F4 7F0155C4 24040028 */ li $a0, 40 +.L7F0155C8: +/* 04A0F8 7F0155C8 94690008 */ lhu $t1, 8($v1) +/* 04A0FC 7F0155CC 24420004 */ addiu $v0, $v0, 4 +/* 04A100 7F0155D0 51200004 */ beql $t1, $zero, .L7F0155E4 +/* 04A104 7F0155D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 04A108 7F0155D8 1444FFFB */ bne $v0, $a0, .L7F0155C8 +/* 04A10C 7F0155DC 24630004 */ addiu $v1, $v1, 4 +/* 04A110 7F0155E0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0155E4: +/* 04A114 7F0155E4 8FB00018 */ lw $s0, 0x18($sp) +/* 04A118 7F0155E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 04A11C 7F0155EC 03E00008 */ jr $ra +/* 04A120 7F0155F0 00000000 */ nop +) +#endif + + + +void init_menu0A_briefing(void) +{ + tab_2_selected = 0; + tab_3_selected = 0; + final_menu_briefing_page = 5; + set_briefing_page(0); + load_walletbond(); + load_briefing_text_for_stage(); +} + +void update_menu0A_briefing(void) +{ + blank_text_bank(get_textbank_number_for_stagenum(mission_folder_setup_entries[briefingpage].stage_id)); + if (-1 < menu_update) { + sub_GAME_7F00B990(); + } +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0A_briefing(void) +{ + setvideo_far(0x42700000); + video_related_21(D_80051AB8); + set_page_height(0x42c80000, D_80051ABC); + set_video2_settings_offset_24(0); + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if ((isontab2() != 0) && (current_menu_briefing_page < (final_menu_briefing_page + -1))) + { + tab_2_highlight = 1; + } + else + { + if (isontab1() != 0) + { + tab_1_highlight = 1; + } + else + { + if (current_menu_briefing_page < (final_menu_briefing_page + -1)) + { + tab_2_highlight = 1; + } + else + { + tab_1_highlight = 1; + } + } + } + } + if (get_controller_buttons_pressed(0, 0x1000) != 0) + { + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0xa000) != 0) + { + if (tab_2_highlight != 0) + { + set_briefing_page(current_menu_briefing_page + 1); + } + else + { + if (tab_3_highlight != 0) + { + if (current_menu_briefing_page > 0) + { + set_briefing_page(current_menu_briefing_page + -1); + } + else + { + tab_3_selected = 1; + } + } + else + { + if (tab_1_highlight != 0) + { + tab_2_selected = 1; + } + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + if (current_menu_briefing_page > 0) + { + set_briefing_page(current_menu_briefing_page + -1); + } + else + { + tab_3_selected = 1; + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0xc, (u32) current_menu_briefing_page < 1U); + set_item_visibility_in_objinstance(ptr_folder_object_instance, (0x80030000 + (briefingpage * 0x1c))->unk-5408 + 0x16, (u32) current_menu_briefing_page < 1U); + 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); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_RUN_STAGE, 1); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo((0x80030000 + (briefingpage * 0x1c))->unk-5408); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AB8 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051ABC +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu0A_briefing +/* 04A1CC 7F01569C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04A1D0 7F0156A0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04A1D4 7F0156A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 04A1D8 7F0156A8 44816000 */ mtc1 $at, $f12 +/* 04A1DC 7F0156AC 0C001151 */ jal setvideo_far +/* 04A1E0 7F0156B0 00000000 */ nop +/* 04A1E4 7F0156B4 3C018005 */ lui $at, %hi(D_80051AB8) +/* 04A1E8 7F0156B8 0C001164 */ jal video_related_21 +/* 04A1EC 7F0156BC C42C1AB8 */ lwc1 $f12, %lo(D_80051AB8)($at) +/* 04A1F0 7F0156C0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04A1F4 7F0156C4 44816000 */ mtc1 $at, $f12 +/* 04A1F8 7F0156C8 3C018005 */ lui $at, %hi(D_80051ABC) +/* 04A1FC 7F0156CC 0C001194 */ jal set_page_height +/* 04A200 7F0156D0 C42E1ABC */ lwc1 $f14, %lo(D_80051ABC)($at) +/* 04A204 7F0156D4 0C00114D */ jal set_video2_settings_offset_24 +/* 04A208 7F0156D8 00002025 */ move $a0, $zero +/* 04A20C 7F0156DC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04A210 7F0156E0 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04A214 7F0156E4 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A218 7F0156E8 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04A21C 7F0156EC 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A220 7F0156F0 0FC028E7 */ jal isontab3 +/* 04A224 7F0156F4 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04A228 7F0156F8 10400004 */ beqz $v0, .L7F01570C +/* 04A22C 7F0156FC 24030001 */ li $v1, 1 +/* 04A230 7F015700 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04A234 7F015704 10000025 */ b .L7F01579C +/* 04A238 7F015708 AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F01570C: +/* 04A23C 7F01570C 0FC0295E */ jal isontab2 +/* 04A240 7F015710 00000000 */ nop +/* 04A244 7F015714 1040000B */ beqz $v0, .L7F015744 +/* 04A248 7F015718 3C0E8003 */ lui $t6, %hi(current_menu_briefing_page) +/* 04A24C 7F01571C 3C0F8003 */ lui $t7, %hi(final_menu_briefing_page) +/* 04A250 7F015720 8DEFA910 */ lw $t7, %lo(final_menu_briefing_page)($t7) +/* 04A254 7F015724 8DCEA914 */ lw $t6, %lo(current_menu_briefing_page)($t6) +/* 04A258 7F015728 24030001 */ li $v1, 1 +/* 04A25C 7F01572C 25F8FFFF */ addiu $t8, $t7, -1 +/* 04A260 7F015730 01D8082A */ slt $at, $t6, $t8 +/* 04A264 7F015734 10200003 */ beqz $at, .L7F015744 +/* 04A268 7F015738 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A26C 7F01573C 10000017 */ b .L7F01579C +/* 04A270 7F015740 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F015744: +/* 04A274 7F015744 0FC02879 */ jal isontab1 +/* 04A278 7F015748 00000000 */ nop +/* 04A27C 7F01574C 10400005 */ beqz $v0, .L7F015764 +/* 04A280 7F015750 3C198003 */ lui $t9, %hi(current_menu_briefing_page) +/* 04A284 7F015754 24030001 */ li $v1, 1 +/* 04A288 7F015758 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A28C 7F01575C 1000000F */ b .L7F01579C +/* 04A290 7F015760 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F015764: +/* 04A294 7F015764 3C088003 */ lui $t0, %hi(final_menu_briefing_page) +/* 04A298 7F015768 8D08A910 */ lw $t0, %lo(final_menu_briefing_page)($t0) +/* 04A29C 7F01576C 8F39A914 */ lw $t9, %lo(current_menu_briefing_page)($t9) +/* 04A2A0 7F015770 24030001 */ li $v1, 1 +/* 04A2A4 7F015774 2509FFFF */ addiu $t1, $t0, -1 +/* 04A2A8 7F015778 0329082A */ slt $at, $t9, $t1 +/* 04A2AC 7F01577C 10200005 */ beqz $at, .L7F015794 +/* 04A2B0 7F015780 00000000 */ nop +/* 04A2B4 7F015784 24030001 */ li $v1, 1 +/* 04A2B8 7F015788 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A2BC 7F01578C 10000003 */ b .L7F01579C +/* 04A2C0 7F015790 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F015794: +/* 04A2C4 7F015794 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A2C8 7F015798 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F01579C: +/* 04A2CC 7F01579C 00002025 */ move $a0, $zero +/* 04A2D0 7F0157A0 0C0030EB */ jal get_controller_buttons_pressed +/* 04A2D4 7F0157A4 24051000 */ li $a1, 4096 +/* 04A2D8 7F0157A8 1040000A */ beqz $v0, .L7F0157D4 +/* 04A2DC 7F0157AC 24030001 */ li $v1, 1 +/* 04A2E0 7F0157B0 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04A2E4 7F0157B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A2E8 7F0157B8 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04A2EC 7F0157BC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A2F0 7F0157C0 240500C7 */ li $a1, 199 +/* 04A2F4 7F0157C4 0C002382 */ jal play_sfx_a1 +/* 04A2F8 7F0157C8 00003025 */ move $a2, $zero +/* 04A2FC 7F0157CC 10000040 */ b .L7F0158D0 +/* 04A300 7F0157D0 00000000 */ nop +.L7F0157D4: +/* 04A304 7F0157D4 00002025 */ move $a0, $zero +/* 04A308 7F0157D8 0C0030EB */ jal get_controller_buttons_pressed +/* 04A30C 7F0157DC 3405A000 */ li $a1, 40960 +/* 04A310 7F0157E0 10400027 */ beqz $v0, .L7F015880 +/* 04A314 7F0157E4 24030001 */ li $v1, 1 +/* 04A318 7F0157E8 3C0A8003 */ lui $t2, %hi(tab_2_highlight) +/* 04A31C 7F0157EC 8D4AA8E0 */ lw $t2, %lo(tab_2_highlight)($t2) +/* 04A320 7F0157F0 3C048003 */ lui $a0, %hi(current_menu_briefing_page) +/* 04A324 7F0157F4 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 04A328 7F0157F8 11400006 */ beqz $t2, .L7F015814 +/* 04A32C 7F0157FC 00000000 */ nop +/* 04A330 7F015800 8C84A914 */ lw $a0, %lo(current_menu_briefing_page)($a0) +/* 04A334 7F015804 0FC05544 */ jal set_briefing_page +/* 04A338 7F015808 24840001 */ addiu $a0, $a0, 1 +/* 04A33C 7F01580C 10000015 */ b .L7F015864 +/* 04A340 7F015810 00000000 */ nop +.L7F015814: +/* 04A344 7F015814 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 04A348 7F015818 3C028003 */ lui $v0, %hi(current_menu_briefing_page) +/* 04A34C 7F01581C 3C0C8003 */ lui $t4, %hi(tab_1_highlight) +/* 04A350 7F015820 1160000B */ beqz $t3, .L7F015850 +/* 04A354 7F015824 00000000 */ nop +/* 04A358 7F015828 8C42A914 */ lw $v0, %lo(current_menu_briefing_page)($v0) +/* 04A35C 7F01582C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04A360 7F015830 18400005 */ blez $v0, .L7F015848 +/* 04A364 7F015834 00000000 */ nop +/* 04A368 7F015838 0FC05544 */ jal set_briefing_page +/* 04A36C 7F01583C 2444FFFF */ addiu $a0, $v0, -1 +/* 04A370 7F015840 10000008 */ b .L7F015864 +/* 04A374 7F015844 00000000 */ nop +.L7F015848: +/* 04A378 7F015848 10000006 */ b .L7F015864 +/* 04A37C 7F01584C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F015850: +/* 04A380 7F015850 8D8CA8DC */ lw $t4, %lo(tab_1_highlight)($t4) +/* 04A384 7F015854 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04A388 7F015858 11800002 */ beqz $t4, .L7F015864 +/* 04A38C 7F01585C 00000000 */ nop +/* 04A390 7F015860 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +.L7F015864: +/* 04A394 7F015864 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A398 7F015868 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A39C 7F01586C 240500C7 */ li $a1, 199 +/* 04A3A0 7F015870 0C002382 */ jal play_sfx_a1 +/* 04A3A4 7F015874 00003025 */ move $a2, $zero +/* 04A3A8 7F015878 10000015 */ b .L7F0158D0 +/* 04A3AC 7F01587C 00000000 */ nop +.L7F015880: +/* 04A3B0 7F015880 00002025 */ move $a0, $zero +/* 04A3B4 7F015884 0C0030EB */ jal get_controller_buttons_pressed +/* 04A3B8 7F015888 24054000 */ li $a1, 16384 +/* 04A3BC 7F01588C 10400010 */ beqz $v0, .L7F0158D0 +/* 04A3C0 7F015890 24030001 */ li $v1, 1 +/* 04A3C4 7F015894 3C028003 */ lui $v0, %hi(current_menu_briefing_page) +/* 04A3C8 7F015898 8C42A914 */ lw $v0, %lo(current_menu_briefing_page)($v0) +/* 04A3CC 7F01589C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04A3D0 7F0158A0 18400005 */ blez $v0, .L7F0158B8 +/* 04A3D4 7F0158A4 00000000 */ nop +/* 04A3D8 7F0158A8 0FC05544 */ jal set_briefing_page +/* 04A3DC 7F0158AC 2444FFFF */ addiu $a0, $v0, -1 +/* 04A3E0 7F0158B0 10000002 */ b .L7F0158BC +/* 04A3E4 7F0158B4 00000000 */ nop +.L7F0158B8: +/* 04A3E8 7F0158B8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F0158BC: +/* 04A3EC 7F0158BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A3F0 7F0158C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A3F4 7F0158C4 240500C7 */ li $a1, 199 +/* 04A3F8 7F0158C8 0C002382 */ jal play_sfx_a1 +/* 04A3FC 7F0158CC 00003025 */ move $a2, $zero +.L7F0158D0: +/* 04A400 7F0158D0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A404 7F0158D4 0FC02DC9 */ jal disable_all_switches +/* 04A408 7F0158D8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A40C 7F0158DC 3C068003 */ lui $a2, %hi(current_menu_briefing_page) +/* 04A410 7F0158E0 8CC6A914 */ lw $a2, %lo(current_menu_briefing_page)($a2) +/* 04A414 7F0158E4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A418 7F0158E8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A41C 7F0158EC 2CCD0001 */ sltiu $t5, $a2, 1 +/* 04A420 7F0158F0 01A03025 */ move $a2, $t5 +/* 04A424 7F0158F4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A428 7F0158F8 2405000C */ li $a1, 12 +/* 04A42C 7F0158FC 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 04A430 7F015900 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 04A434 7F015904 3C068003 */ lui $a2, %hi(current_menu_briefing_page) +/* 04A438 7F015908 8CC6A914 */ lw $a2, %lo(current_menu_briefing_page)($a2) +/* 04A43C 7F01590C 000F70C0 */ sll $t6, $t7, 3 +/* 04A440 7F015910 01CF7023 */ subu $t6, $t6, $t7 +/* 04A444 7F015914 000E7080 */ sll $t6, $t6, 2 +/* 04A448 7F015918 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+20) +/* 04A44C 7F01591C 00AE2821 */ addu $a1, $a1, $t6 +/* 04A450 7F015920 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+20)($a1) +/* 04A454 7F015924 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A458 7F015928 2CD80001 */ sltiu $t8, $a2, 1 +/* 04A45C 7F01592C 03003025 */ move $a2, $t8 +/* 04A460 7F015930 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A464 7F015934 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A468 7F015938 24A50016 */ addiu $a1, $a1, 0x16 +/* 04A46C 7F01593C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A470 7F015940 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A474 7F015944 00002825 */ move $a1, $zero +/* 04A478 7F015948 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A47C 7F01594C 24060001 */ li $a2, 1 +/* 04A480 7F015950 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A484 7F015954 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A488 7F015958 24050001 */ li $a1, 1 +/* 04A48C 7F01595C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A490 7F015960 24060001 */ li $a2, 1 +/* 04A494 7F015964 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A498 7F015968 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A49C 7F01596C 24050003 */ li $a1, 3 +/* 04A4A0 7F015970 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A4A4 7F015974 24060001 */ li $a2, 1 +/* 04A4A8 7F015978 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A4AC 7F01597C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A4B0 7F015980 24050006 */ li $a1, 6 +/* 04A4B4 7F015984 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A4B8 7F015988 24060001 */ li $a2, 1 +/* 04A4BC 7F01598C 0FC026E1 */ jal menu_control_stick_tracking +/* 04A4C0 7F015990 00000000 */ nop +/* 04A4C4 7F015994 3C088003 */ lui $t0, %hi(tab_2_selected) +/* 04A4C8 7F015998 8D08A8D4 */ lw $t0, %lo(tab_2_selected)($t0) +/* 04A4CC 7F01599C 2404000B */ li $a0, 11 +/* 04A4D0 7F0159A0 3C198003 */ lui $t9, %hi(tab_3_selected) +/* 04A4D4 7F0159A4 11000005 */ beqz $t0, .L7F0159BC +/* 04A4D8 7F0159A8 00000000 */ nop +/* 04A4DC 7F0159AC 0FC06975 */ jal set_menu_to_mode +/* 04A4E0 7F0159B0 24050001 */ li $a1, 1 +/* 04A4E4 7F0159B4 10000011 */ b .L7F0159FC +/* 04A4E8 7F0159B8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0159BC: +/* 04A4EC 7F0159BC 8F39A8D8 */ lw $t9, %lo(tab_3_selected)($t9) +/* 04A4F0 7F0159C0 24040007 */ li $a0, 7 +/* 04A4F4 7F0159C4 5320000D */ beql $t9, $zero, .L7F0159FC +/* 04A4F8 7F0159C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 04A4FC 7F0159CC 0FC06975 */ jal set_menu_to_mode +/* 04A500 7F0159D0 00002825 */ move $a1, $zero +/* 04A504 7F0159D4 3C098003 */ lui $t1, %hi(briefingpage) +/* 04A508 7F0159D8 8D29A8F8 */ lw $t1, %lo(briefingpage)($t1) +/* 04A50C 7F0159DC 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 04A510 7F0159E0 000950C0 */ sll $t2, $t1, 3 +/* 04A514 7F0159E4 01495023 */ subu $t2, $t2, $t1 +/* 04A518 7F0159E8 000A5080 */ sll $t2, $t2, 2 +/* 04A51C 7F0159EC 008A2021 */ addu $a0, $a0, $t2 +/* 04A520 7F0159F0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04A524 7F0159F4 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 04A528 7F0159F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0159FC: +/* 04A52C 7F0159FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04A530 7F015A00 03E00008 */ jr $ra +/* 04A534 7F015A04 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,int param_4) +{ + ushort uVar1; + u8 *pbVar2; + short sVar5; + short sVar6; + u32 *puVar3; + int iVar4; + int iVar7; + u32 uVar8; + int iVar9; + u32 uStack24; + u32 uStack20; + int iStack16; + int iStack12; + int iStack8; + int iStack4; + + iStack8 = 0; + iVar9 = 0; + iStack4 = 0; + iVar7 = 0; + do { + uVar1 = *(ushort *)(ptrbriefingdata + iVar7 + 8); + if (uVar1 == 0) { + iStack4 += 1; + } + else { + if ((s32)selected_difficulty < + (s32)(s32)*(ushort *)(ptrbriefingdata + iVar7 + 10)) { + iStack4 += 1; + } + else { + pbVar2 = get_textptr_for_textID((u32)uVar1); + textpointer_load_parse_something((char *)param_3,aA_); + *param_3 = *param_3 + (char)iStack8; + iStack12 = 0; + iStack16 = 0; + proc_7F0AE98C(&iStack12,&iStack16,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge,0 + ); + uStack20 = 0x37; + uStack24 = iStack12 * iVar9 + param_2; + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + puVar3 = write_text_at_abs_coord + (param_1,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); + uStack20 = 0x4b; + uStack24 = iStack12 * iVar9 + param_2; + if (param_4 == 0) { + proc_7F0AEB64(0x140,pbVar2,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge); + } + else { + proc_7F0ACB94(2); + proc_7F0AEB64(0xdc,pbVar2,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge); + proc_7F0ACB94(0); + } + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + param_1 = write_text_at_abs_coord + (puVar3,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); + if (param_4 != 0) { + iVar4 = get_status_of_objective((s32)iStack4); + if ((iVar4 == 0) || (iVar4 != 1)) { + uVar8 = 0x780000ff; + pbVar2 = get_textptr_for_textID(TEXT(LTITLE, 0x5c)); + } + else { + uVar8 = 0xff; + pbVar2 = get_textptr_for_textID(TEXT(LTITLE, 0x5b)); + } + uStack20 = 0x136; + uStack24 = iStack12 * iVar9 + param_2; + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + param_1 = write_text_at_abs_coord + (param_1,&uStack20,&uStack24,pbVar2,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,uVar8,(int)sVar5,(int)sVar6,0,0); + } + iVar4 = proc_7F0AC0E8((char *)param_3); + iVar9 += iVar4; + iStack8 += 1; + iStack4 += 1; + } + } + iVar7 += 4; + } while (iStack4 != 10); + return param_1; +} +#else +const char aA_[] = "a.\n"; +GLOBAL_ASM( +.text +glabel print_objectives_and_status_to_menu +/* 04A538 7F015A08 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 04A53C 7F015A0C AFB5004C */ sw $s5, 0x4c($sp) +/* 04A540 7F015A10 AFB40048 */ sw $s4, 0x48($sp) +/* 04A544 7F015A14 AFBE0058 */ sw $fp, 0x58($sp) +/* 04A548 7F015A18 AFB60050 */ sw $s6, 0x50($sp) +/* 04A54C 7F015A1C AFB30044 */ sw $s3, 0x44($sp) +/* 04A550 7F015A20 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04A554 7F015A24 3C158004 */ lui $s5, %hi(ptrFirstFontTableLarge) +/* 04A558 7F015A28 00C09825 */ move $s3, $a2 +/* 04A55C 7F015A2C 0080B025 */ move $s6, $a0 +/* 04A560 7F015A30 AFBF005C */ sw $ra, 0x5c($sp) +/* 04A564 7F015A34 AFB70054 */ sw $s7, 0x54($sp) +/* 04A568 7F015A38 AFB20040 */ sw $s2, 0x40($sp) +/* 04A56C 7F015A3C AFB1003C */ sw $s1, 0x3c($sp) +/* 04A570 7F015A40 AFB00038 */ sw $s0, 0x38($sp) +/* 04A574 7F015A44 AFA500A4 */ sw $a1, 0xa4($sp) +/* 04A578 7F015A48 AFA700AC */ sw $a3, 0xac($sp) +/* 04A57C 7F015A4C AFA00098 */ sw $zero, 0x98($sp) +/* 04A580 7F015A50 0000F025 */ move $fp, $zero +/* 04A584 7F015A54 26B50EB4 */ addiu $s5, %lo(ptrFirstFontTableLarge) # addiu $s5, $s5, 0xeb4 +/* 04A588 7F015A58 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04A58C 7F015A5C 00004025 */ move $t0, $zero +/* 04A590 7F015A60 00004825 */ move $t1, $zero +.L7F015A64: +/* 04A594 7F015A64 3C0E8007 */ lui $t6, %hi(ptrbriefingdata) +/* 04A598 7F015A68 8DCE978C */ lw $t6, %lo(ptrbriefingdata)($t6) +/* 04A59C 7F015A6C 3C0F8003 */ lui $t7, %hi(selected_difficulty) +/* 04A5A0 7F015A70 01C91021 */ addu $v0, $t6, $t1 +/* 04A5A4 7F015A74 94430008 */ lhu $v1, 8($v0) +/* 04A5A8 7F015A78 506000AE */ beql $v1, $zero, .L7F015D34 +/* 04A5AC 7F015A7C 25080001 */ addiu $t0, $t0, 1 +/* 04A5B0 7F015A80 8DEFA8FC */ lw $t7, %lo(selected_difficulty)($t7) +/* 04A5B4 7F015A84 9458000A */ lhu $t8, 0xa($v0) +/* 04A5B8 7F015A88 00602025 */ move $a0, $v1 +/* 04A5BC 7F015A8C 0000B825 */ move $s7, $zero +/* 04A5C0 7F015A90 01F8082A */ slt $at, $t7, $t8 +/* 04A5C4 7F015A94 542000A7 */ bnezl $at, .L7F015D34 +/* 04A5C8 7F015A98 25080001 */ addiu $t0, $t0, 1 +/* 04A5CC 7F015A9C AFA9006C */ sw $t1, 0x6c($sp) +/* 04A5D0 7F015AA0 0FC30776 */ jal get_textptr_for_textID +/* 04A5D4 7F015AA4 AFA8009C */ sw $t0, 0x9c($sp) +/* 04A5D8 7F015AA8 3C058005 */ lui $a1, %hi(aA_) +/* 04A5DC 7F015AAC 00408825 */ move $s1, $v0 +/* 04A5E0 7F015AB0 24A50C50 */ addiu $a1, %lo(aA_) # addiu $a1, $a1, 0xc50 +/* 04A5E4 7F015AB4 0C0029DC */ jal textpointer_load_parse_something +/* 04A5E8 7F015AB8 02602025 */ move $a0, $s3 +/* 04A5EC 7F015ABC 92790000 */ lbu $t9, ($s3) +/* 04A5F0 7F015AC0 8FAA0098 */ lw $t2, 0x98($sp) +/* 04A5F4 7F015AC4 27A40094 */ addiu $a0, $sp, 0x94 +/* 04A5F8 7F015AC8 27A50090 */ addiu $a1, $sp, 0x90 +/* 04A5FC 7F015ACC 032A5821 */ addu $t3, $t9, $t2 +/* 04A600 7F015AD0 A26B0000 */ sb $t3, ($s3) +/* 04A604 7F015AD4 8EAC0000 */ lw $t4, ($s5) +/* 04A608 7F015AD8 AFA00094 */ sw $zero, 0x94($sp) +/* 04A60C 7F015ADC AFA00090 */ sw $zero, 0x90($sp) +/* 04A610 7F015AE0 AFA00014 */ sw $zero, 0x14($sp) +/* 04A614 7F015AE4 8E870000 */ lw $a3, ($s4) +/* 04A618 7F015AE8 02603025 */ move $a2, $s3 +/* 04A61C 7F015AEC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04A620 7F015AF0 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A624 7F015AF4 8FAE0094 */ lw $t6, 0x94($sp) +/* 04A628 7F015AF8 8FB800A4 */ lw $t8, 0xa4($sp) +/* 04A62C 7F015AFC 240D0037 */ li $t5, 55 +/* 04A630 7F015B00 01DE0019 */ multu $t6, $fp +/* 04A634 7F015B04 AFAD008C */ sw $t5, 0x8c($sp) +/* 04A638 7F015B08 00007812 */ mflo $t7 +/* 04A63C 7F015B0C 01F8C821 */ addu $t9, $t7, $t8 +/* 04A640 7F015B10 03375021 */ addu $t2, $t9, $s7 +/* 04A644 7F015B14 0C001107 */ jal get_video2_settings_txtClipW +/* 04A648 7F015B18 AFAA0088 */ sw $t2, 0x88($sp) +/* 04A64C 7F015B1C 00028400 */ sll $s0, $v0, 0x10 +/* 04A650 7F015B20 00105C03 */ sra $t3, $s0, 0x10 +/* 04A654 7F015B24 0C00110B */ jal get_video2_settings_txtClipH +/* 04A658 7F015B28 01608025 */ move $s0, $t3 +/* 04A65C 7F015B2C 8E8C0000 */ lw $t4, ($s4) +/* 04A660 7F015B30 8EAD0000 */ lw $t5, ($s5) +/* 04A664 7F015B34 240E00FF */ li $t6, 255 +/* 04A668 7F015B38 AFAE0018 */ sw $t6, 0x18($sp) +/* 04A66C 7F015B3C 02C02025 */ move $a0, $s6 +/* 04A670 7F015B40 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A674 7F015B44 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A678 7F015B48 02603825 */ move $a3, $s3 +/* 04A67C 7F015B4C AFB0001C */ sw $s0, 0x1c($sp) +/* 04A680 7F015B50 AFA20020 */ sw $v0, 0x20($sp) +/* 04A684 7F015B54 AFA00024 */ sw $zero, 0x24($sp) +/* 04A688 7F015B58 AFA00028 */ sw $zero, 0x28($sp) +/* 04A68C 7F015B5C AFAC0010 */ sw $t4, 0x10($sp) +/* 04A690 7F015B60 0FC025D8 */ jal write_text_at_abs_coord +/* 04A694 7F015B64 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A698 7F015B68 8FB80094 */ lw $t8, 0x94($sp) +/* 04A69C 7F015B6C 8FAA00A4 */ lw $t2, 0xa4($sp) +/* 04A6A0 7F015B70 8FAD00AC */ lw $t5, 0xac($sp) +/* 04A6A4 7F015B74 031E0019 */ multu $t8, $fp +/* 04A6A8 7F015B78 240F004B */ li $t7, 75 +/* 04A6AC 7F015B7C 0040B025 */ move $s6, $v0 +/* 04A6B0 7F015B80 AFAF008C */ sw $t7, 0x8c($sp) +/* 04A6B4 7F015B84 24040140 */ li $a0, 320 +/* 04A6B8 7F015B88 02202825 */ move $a1, $s1 +/* 04A6BC 7F015B8C 02603025 */ move $a2, $s3 +/* 04A6C0 7F015B90 0000C812 */ mflo $t9 +/* 04A6C4 7F015B94 032A5821 */ addu $t3, $t9, $t2 +/* 04A6C8 7F015B98 01776021 */ addu $t4, $t3, $s7 +/* 04A6CC 7F015B9C 11A0000E */ beqz $t5, .L7F015BD8 +/* 04A6D0 7F015BA0 AFAC0088 */ sw $t4, 0x88($sp) +/* 04A6D4 7F015BA4 0FC2B2E5 */ jal setTextWordWrap +/* 04A6D8 7F015BA8 24040002 */ li $a0, 2 +/* 04A6DC 7F015BAC 8EAE0000 */ lw $t6, ($s5) +/* 04A6E0 7F015BB0 240400DC */ li $a0, 220 +/* 04A6E4 7F015BB4 02202825 */ move $a1, $s1 +/* 04A6E8 7F015BB8 02603025 */ move $a2, $s3 +/* 04A6EC 7F015BBC 8E870000 */ lw $a3, ($s4) +/* 04A6F0 7F015BC0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04A6F4 7F015BC4 AFAE0010 */ sw $t6, 0x10($sp) +/* 04A6F8 7F015BC8 0FC2B2E5 */ jal setTextWordWrap +/* 04A6FC 7F015BCC 00002025 */ move $a0, $zero +/* 04A700 7F015BD0 10000005 */ b .L7F015BE8 +/* 04A704 7F015BD4 00000000 */ nop +.L7F015BD8: +/* 04A708 7F015BD8 8EAF0000 */ lw $t7, ($s5) +/* 04A70C 7F015BDC 8E870000 */ lw $a3, ($s4) +/* 04A710 7F015BE0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04A714 7F015BE4 AFAF0010 */ sw $t7, 0x10($sp) +.L7F015BE8: +/* 04A718 7F015BE8 0C001107 */ jal get_video2_settings_txtClipW +/* 04A71C 7F015BEC 00000000 */ nop +/* 04A720 7F015BF0 00028400 */ sll $s0, $v0, 0x10 +/* 04A724 7F015BF4 0010C403 */ sra $t8, $s0, 0x10 +/* 04A728 7F015BF8 0C00110B */ jal get_video2_settings_txtClipH +/* 04A72C 7F015BFC 03008025 */ move $s0, $t8 +/* 04A730 7F015C00 8E990000 */ lw $t9, ($s4) +/* 04A734 7F015C04 8EAA0000 */ lw $t2, ($s5) +/* 04A738 7F015C08 240B00FF */ li $t3, 255 +/* 04A73C 7F015C0C AFAB0018 */ sw $t3, 0x18($sp) +/* 04A740 7F015C10 02C02025 */ move $a0, $s6 +/* 04A744 7F015C14 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A748 7F015C18 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A74C 7F015C1C 02603825 */ move $a3, $s3 +/* 04A750 7F015C20 AFB0001C */ sw $s0, 0x1c($sp) +/* 04A754 7F015C24 AFA20020 */ sw $v0, 0x20($sp) +/* 04A758 7F015C28 AFA00024 */ sw $zero, 0x24($sp) +/* 04A75C 7F015C2C AFA00028 */ sw $zero, 0x28($sp) +/* 04A760 7F015C30 AFB90010 */ sw $t9, 0x10($sp) +/* 04A764 7F015C34 0FC025D8 */ jal write_text_at_abs_coord +/* 04A768 7F015C38 AFAA0014 */ sw $t2, 0x14($sp) +/* 04A76C 7F015C3C 8FAC00AC */ lw $t4, 0xac($sp) +/* 04A770 7F015C40 0040B025 */ move $s6, $v0 +/* 04A774 7F015C44 11800032 */ beqz $t4, .L7F015D10 +/* 04A778 7F015C48 00000000 */ nop +/* 04A77C 7F015C4C 0FC15C8E */ jal get_status_of_objective +/* 04A780 7F015C50 8FA4009C */ lw $a0, 0x9c($sp) +/* 04A784 7F015C54 1040000C */ beqz $v0, .L7F015C88 +/* 04A788 7F015C58 24010001 */ li $at, 1 +/* 04A78C 7F015C5C 10410006 */ beq $v0, $at, .L7F015C78 +/* 04A790 7F015C60 34049C5B */ li $a0, 40027 +/* 04A794 7F015C64 24010002 */ li $at, 2 +/* 04A798 7F015C68 50410008 */ beql $v0, $at, .L7F015C8C +/* 04A79C 7F015C6C 3C127800 */ lui $s2, 0x7800 +/* 04A7A0 7F015C70 10000006 */ b .L7F015C8C +/* 04A7A4 7F015C74 3C127800 */ lui $s2, 0x7800 +.L7F015C78: +/* 04A7A8 7F015C78 0FC30776 */ jal get_textptr_for_textID +/* 04A7AC 7F015C7C 241200FF */ li $s2, 255 +/* 04A7B0 7F015C80 10000006 */ b .L7F015C9C +/* 04A7B4 7F015C84 00408825 */ move $s1, $v0 +.L7F015C88: +/* 04A7B8 7F015C88 3C127800 */ lui $s2, (0x780000FF >> 16) # lui $s2, 0x7800 +.L7F015C8C: +/* 04A7BC 7F015C8C 365200FF */ ori $s2, (0x780000FF & 0xFFFF) # ori $s2, $s2, 0xff +/* 04A7C0 7F015C90 0FC30776 */ jal get_textptr_for_textID +/* 04A7C4 7F015C94 34049C5C */ li $a0, 40028 +/* 04A7C8 7F015C98 00408825 */ move $s1, $v0 +.L7F015C9C: +/* 04A7CC 7F015C9C 8FAE0094 */ lw $t6, 0x94($sp) +/* 04A7D0 7F015CA0 8FB800A4 */ lw $t8, 0xa4($sp) +/* 04A7D4 7F015CA4 240D0136 */ li $t5, 310 +/* 04A7D8 7F015CA8 01DE0019 */ multu $t6, $fp +/* 04A7DC 7F015CAC AFAD008C */ sw $t5, 0x8c($sp) +/* 04A7E0 7F015CB0 00007812 */ mflo $t7 +/* 04A7E4 7F015CB4 01F8C821 */ addu $t9, $t7, $t8 +/* 04A7E8 7F015CB8 03375021 */ addu $t2, $t9, $s7 +/* 04A7EC 7F015CBC 0C001107 */ jal get_video2_settings_txtClipW +/* 04A7F0 7F015CC0 AFAA0088 */ sw $t2, 0x88($sp) +/* 04A7F4 7F015CC4 00028400 */ sll $s0, $v0, 0x10 +/* 04A7F8 7F015CC8 00105C03 */ sra $t3, $s0, 0x10 +/* 04A7FC 7F015CCC 0C00110B */ jal get_video2_settings_txtClipH +/* 04A800 7F015CD0 01608025 */ move $s0, $t3 +/* 04A804 7F015CD4 8E8C0000 */ lw $t4, ($s4) +/* 04A808 7F015CD8 8EAD0000 */ lw $t5, ($s5) +/* 04A80C 7F015CDC 02C02025 */ move $a0, $s6 +/* 04A810 7F015CE0 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A814 7F015CE4 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A818 7F015CE8 02203825 */ move $a3, $s1 +/* 04A81C 7F015CEC AFB20018 */ sw $s2, 0x18($sp) +/* 04A820 7F015CF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 04A824 7F015CF4 AFA20020 */ sw $v0, 0x20($sp) +/* 04A828 7F015CF8 AFA00024 */ sw $zero, 0x24($sp) +/* 04A82C 7F015CFC AFA00028 */ sw $zero, 0x28($sp) +/* 04A830 7F015D00 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A834 7F015D04 0FC025D8 */ jal write_text_at_abs_coord +/* 04A838 7F015D08 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A83C 7F015D0C 0040B025 */ move $s6, $v0 +.L7F015D10: +/* 04A840 7F015D10 0FC2B03A */ jal sub_GAME_7F0AC0E8 +/* 04A844 7F015D14 02602025 */ move $a0, $s3 +/* 04A848 7F015D18 8FAE0098 */ lw $t6, 0x98($sp) +/* 04A84C 7F015D1C 03C2F021 */ addu $fp, $fp, $v0 +/* 04A850 7F015D20 8FA9006C */ lw $t1, 0x6c($sp) +/* 04A854 7F015D24 25CF0001 */ addiu $t7, $t6, 1 +/* 04A858 7F015D28 AFAF0098 */ sw $t7, 0x98($sp) +/* 04A85C 7F015D2C 8FA8009C */ lw $t0, 0x9c($sp) +/* 04A860 7F015D30 25080001 */ addiu $t0, $t0, 1 +.L7F015D34: +/* 04A864 7F015D34 2401000A */ li $at, 10 +/* 04A868 7F015D38 1501FF4A */ bne $t0, $at, .L7F015A64 +/* 04A86C 7F015D3C 25290004 */ addiu $t1, $t1, 4 +/* 04A870 7F015D40 8FBF005C */ lw $ra, 0x5c($sp) +/* 04A874 7F015D44 02C01025 */ move $v0, $s6 +/* 04A878 7F015D48 8FB60050 */ lw $s6, 0x50($sp) +/* 04A87C 7F015D4C 8FB00038 */ lw $s0, 0x38($sp) +/* 04A880 7F015D50 8FB1003C */ lw $s1, 0x3c($sp) +/* 04A884 7F015D54 8FB20040 */ lw $s2, 0x40($sp) +/* 04A888 7F015D58 8FB30044 */ lw $s3, 0x44($sp) +/* 04A88C 7F015D5C 8FB40048 */ lw $s4, 0x48($sp) +/* 04A890 7F015D60 8FB5004C */ lw $s5, 0x4c($sp) +/* 04A894 7F015D64 8FB70054 */ lw $s7, 0x54($sp) +/* 04A898 7F015D68 8FBE0058 */ lw $fp, 0x58($sp) +/* 04A89C 7F015D6C 03E00008 */ jr $ra +/* 04A8A0 7F015D70 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + +#ifdef NONMATCHING +s32 constructor_menu0A_briefing(s32 *param_1) +{ + s32 *puVar1; + s32 *DL; + u32 *puVar2; + short sVar4; + short sVar5; + s32 uVar3; + s32 *puVar6; + s32 *puVar7; + s32 auStack3012 [750]; + u32 uStack12; + u32 uStack8; + u8 *pbStack4; + + puVar1 = set_setfillcolor(param_1,0,0,0); + puVar1 = insert_generic_fillrect(puVar1); + DL = (s32 *)proc_7F00D5E8(puVar1); + puVar1 = (s32 *)array_80050C54; + puVar6 = auStack3012; + do { + puVar7 = puVar1 + 3; + *puVar6 = *puVar1; + puVar6[1] = puVar1[1]; + puVar6[2] = puVar1[2]; + puVar1 = puVar7; + puVar6 = puVar6 + 3; + } while (puVar7 != (s32 *)a02d02d); + puVar2 = microcode_constructor(DL); + puVar2 = print_current_solo_briefing_stage_name(puVar2,(u8 *)auStack3012); + switch(current_menu_briefing_page) { + case BRIEFING_TITLE: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5d)); + break; + case BRIEFING_OVERVIEW: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5e)); + break; + case BRIEFING_M: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5f)); + break; + case BRIEFING_Q: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x60)); + break; + case BRIEFING_MONEYPENNY: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x61)); + } + uStack8 = 0x37; + uStack12 = 0x8f; + sVar4 = get_video2_settings_txtClipW(); + sVar5 = get_video2_settings_txtClipH(); + puVar2 = write_text_at_abs_coord + (puVar2,&uStack8,&uStack12,pbStack4,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); + if (current_menu_briefing_page == BRIEFING_TITLE) { + puVar2 = print_objectives_and_status_to_menu(puVar2,0xa7,(u8 *)auStack3012,0); + } + else { + if (current_menu_briefing_page == BRIEFING_OVERVIEW) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)ptrbriefingdata); + } + else { + if (current_menu_briefing_page == BRIEFING_M) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 2)); + } + else { + if (current_menu_briefing_page == BRIEFING_Q) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 4)); + } + else { + if (current_menu_briefing_page == BRIEFING_MONEYPENNY) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 6)); + } + } + } + } + uStack8 = 0x37; + uStack12 = 0xa7; + proc_7F0AEB64(0x140,pbStack4,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, + (int *)ptrFirstFontTableLarge); + proc_7F0ACBA0(8); + sVar4 = get_video2_settings_txtClipW(); + sVar5 = get_video2_settings_txtClipH(); + puVar2 = write_text_at_abs_coord + (puVar2,&uStack8,&uStack12,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); + proc_7F0ACBA0(0xffffffff); + } + puVar2 = add_tab1_start(puVar2); + puVar2 = add_tab3_previous(puVar2); + if ((int)current_menu_briefing_page < 4) { + puVar2 = add_tab2_next(puVar2); + } + uVar3 = load_draw_selected_icon_folder_select(puVar2); + return uVar3; +} +#else +const char asc_D_80050C54[3000] = {0xA,0}; +GLOBAL_ASM( +.late_rodata +glabel jpt_briefingpage_name + .word .L7F015E14 + .word .L7F015E24 + .word .L7F015E34 + .word .L7F015E44 + .word .L7F015E54 + +.text +glabel constructor_menu0A_briefing +/* 04A8A4 7F015D74 27BDF3F0 */ addiu $sp, $sp, -0xc10 +/* 04A8A8 7F015D78 AFBF003C */ sw $ra, 0x3c($sp) +/* 04A8AC 7F015D7C AFB00038 */ sw $s0, 0x38($sp) +/* 04A8B0 7F015D80 00002825 */ move $a1, $zero +/* 04A8B4 7F015D84 00003025 */ move $a2, $zero +/* 04A8B8 7F015D88 0C0011B4 */ jal set_setfillcolor +/* 04A8BC 7F015D8C 00003825 */ move $a3, $zero +/* 04A8C0 7F015D90 0C000FBE */ jal insert_generic_fillrect +/* 04A8C4 7F015D94 00402025 */ move $a0, $v0 +/* 04A8C8 7F015D98 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04A8CC 7F015D9C 00402025 */ move $a0, $v0 +/* 04A8D0 7F015DA0 3C0F8005 */ lui $t7, %hi(asc_D_80050C54) +/* 04A8D4 7F015DA4 25EF0C54 */ addiu $t7, %lo(asc_D_80050C54) # addiu $t7, $t7, 0xc54 +/* 04A8D8 7F015DA8 25E80BB8 */ addiu $t0, $t7, 0xbb8 +/* 04A8DC 7F015DAC 27AE004C */ addiu $t6, $sp, 0x4c +.L7F015DB0: +/* 04A8E0 7F015DB0 8DE10000 */ lw $at, ($t7) +/* 04A8E4 7F015DB4 25EF000C */ addiu $t7, $t7, 0xc +/* 04A8E8 7F015DB8 25CE000C */ addiu $t6, $t6, 0xc +/* 04A8EC 7F015DBC ADC1FFF4 */ sw $at, -0xc($t6) +/* 04A8F0 7F015DC0 8DE1FFF8 */ lw $at, -8($t7) +/* 04A8F4 7F015DC4 ADC1FFF8 */ sw $at, -8($t6) +/* 04A8F8 7F015DC8 8DE1FFFC */ lw $at, -4($t7) +/* 04A8FC 7F015DCC 15E8FFF8 */ bne $t7, $t0, .L7F015DB0 +/* 04A900 7F015DD0 ADC1FFFC */ sw $at, -4($t6) +/* 04A904 7F015DD4 0FC2B366 */ jal microcode_constructor +/* 04A908 7F015DD8 00402025 */ move $a0, $v0 +/* 04A90C 7F015DDC 00402025 */ move $a0, $v0 +/* 04A910 7F015DE0 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04A914 7F015DE4 27A5004C */ addiu $a1, $sp, 0x4c +/* 04A918 7F015DE8 3C098003 */ lui $t1, %hi(current_menu_briefing_page) +/* 04A91C 7F015DEC 8D29A914 */ lw $t1, %lo(current_menu_briefing_page)($t1) +/* 04A920 7F015DF0 00408025 */ move $s0, $v0 +/* 04A924 7F015DF4 2D210005 */ sltiu $at, $t1, 5 +/* 04A928 7F015DF8 10200019 */ beqz $at, .L7F015E60 +/* 04A92C 7F015DFC 00094880 */ sll $t1, $t1, 2 +/* 04A930 7F015E00 3C018005 */ lui $at, %hi(jpt_briefingpage_name) +/* 04A934 7F015E04 00290821 */ addu $at, $at, $t1 +/* 04A938 7F015E08 8C291AC0 */ lw $t1, %lo(jpt_briefingpage_name)($at) +/* 04A93C 7F015E0C 01200008 */ jr $t1 +/* 04A940 7F015E10 00000000 */ nop +.L7F015E14: +/* 04A944 7F015E14 0FC30776 */ jal get_textptr_for_textID +/* 04A948 7F015E18 34049C5D */ li $a0, 40029 +/* 04A94C 7F015E1C 10000010 */ b .L7F015E60 +/* 04A950 7F015E20 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E24: +/* 04A954 7F015E24 0FC30776 */ jal get_textptr_for_textID +/* 04A958 7F015E28 34049C5E */ li $a0, 40030 +/* 04A95C 7F015E2C 1000000C */ b .L7F015E60 +/* 04A960 7F015E30 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E34: +/* 04A964 7F015E34 0FC30776 */ jal get_textptr_for_textID +/* 04A968 7F015E38 34049C5F */ li $a0, 40031 +/* 04A96C 7F015E3C 10000008 */ b .L7F015E60 +/* 04A970 7F015E40 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E44: +/* 04A974 7F015E44 0FC30776 */ jal get_textptr_for_textID +/* 04A978 7F015E48 34049C60 */ li $a0, 40032 +/* 04A97C 7F015E4C 10000004 */ b .L7F015E60 +/* 04A980 7F015E50 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E54: +/* 04A984 7F015E54 0FC30776 */ jal get_textptr_for_textID +/* 04A988 7F015E58 34049C61 */ li $a0, 40033 +/* 04A98C 7F015E5C AFA20C0C */ sw $v0, 0xc0c($sp) +def_7F015E0C: +.L7F015E60: +/* 04A990 7F015E60 240A0037 */ li $t2, 55 +/* 04A994 7F015E64 240B008F */ li $t3, 143 +/* 04A998 7F015E68 AFAA0C08 */ sw $t2, 0xc08($sp) +/* 04A99C 7F015E6C 0C001107 */ jal get_video2_settings_txtClipW +/* 04A9A0 7F015E70 AFAB0C04 */ sw $t3, 0xc04($sp) +/* 04A9A4 7F015E74 0C00110B */ jal get_video2_settings_txtClipH +/* 04A9A8 7F015E78 A7A20048 */ sh $v0, 0x48($sp) +/* 04A9AC 7F015E7C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04A9B0 7F015E80 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04A9B4 7F015E84 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04A9B8 7F015E88 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04A9BC 7F015E8C 87B80048 */ lh $t8, 0x48($sp) +/* 04A9C0 7F015E90 241900FF */ li $t9, 255 +/* 04A9C4 7F015E94 AFB90018 */ sw $t9, 0x18($sp) +/* 04A9C8 7F015E98 02002025 */ move $a0, $s0 +/* 04A9CC 7F015E9C 27A50C08 */ addiu $a1, $sp, 0xc08 +/* 04A9D0 7F015EA0 27A60C04 */ addiu $a2, $sp, 0xc04 +/* 04A9D4 7F015EA4 8FA70C0C */ lw $a3, 0xc0c($sp) +/* 04A9D8 7F015EA8 AFA20020 */ sw $v0, 0x20($sp) +/* 04A9DC 7F015EAC AFA00024 */ sw $zero, 0x24($sp) +/* 04A9E0 7F015EB0 AFA00028 */ sw $zero, 0x28($sp) +/* 04A9E4 7F015EB4 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A9E8 7F015EB8 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A9EC 7F015EBC 0FC025D8 */ jal write_text_at_abs_coord +/* 04A9F0 7F015EC0 AFB8001C */ sw $t8, 0x1c($sp) +/* 04A9F4 7F015EC4 3C038003 */ lui $v1, %hi(current_menu_briefing_page) +/* 04A9F8 7F015EC8 8C63A914 */ lw $v1, %lo(current_menu_briefing_page)($v1) +/* 04A9FC 7F015ECC 00408025 */ move $s0, $v0 +/* 04AA00 7F015ED0 24010001 */ li $at, 1 +/* 04AA04 7F015ED4 14600007 */ bnez $v1, .L7F015EF4 +/* 04AA08 7F015ED8 00402025 */ move $a0, $v0 +/* 04AA0C 7F015EDC 240500A7 */ li $a1, 167 +/* 04AA10 7F015EE0 27A6004C */ addiu $a2, $sp, 0x4c +/* 04AA14 7F015EE4 0FC05682 */ jal print_objectives_and_status_to_menu +/* 04AA18 7F015EE8 00003825 */ move $a3, $zero +/* 04AA1C 7F015EEC 10000049 */ b .L7F016014 +/* 04AA20 7F015EF0 00408025 */ move $s0, $v0 +.L7F015EF4: +/* 04AA24 7F015EF4 1061000C */ beq $v1, $at, .L7F015F28 +/* 04AA28 7F015EF8 3C088007 */ lui $t0, %hi(ptrbriefingdata) +/* 04AA2C 7F015EFC 24010002 */ li $at, 2 +/* 04AA30 7F015F00 1061000E */ beq $v1, $at, .L7F015F3C +/* 04AA34 7F015F04 3C0F8007 */ lui $t7, %hi(ptrbriefingdata) +/* 04AA38 7F015F08 24010003 */ li $at, 3 +/* 04AA3C 7F015F0C 10610010 */ beq $v1, $at, .L7F015F50 +/* 04AA40 7F015F10 3C0E8007 */ lui $t6, %hi(ptrbriefingdata) +/* 04AA44 7F015F14 24010004 */ li $at, 4 +/* 04AA48 7F015F18 10610012 */ beq $v1, $at, .L7F015F64 +/* 04AA4C 7F015F1C 3C098007 */ lui $t1, %hi(ptrbriefingdata) +/* 04AA50 7F015F20 10000014 */ b .L7F015F74 +/* 04AA54 7F015F24 00000000 */ nop +.L7F015F28: +/* 04AA58 7F015F28 8D08978C */ lw $t0, %lo(ptrbriefingdata)($t0) +/* 04AA5C 7F015F2C 0FC30776 */ jal get_textptr_for_textID +/* 04AA60 7F015F30 95040000 */ lhu $a0, ($t0) +/* 04AA64 7F015F34 1000000F */ b .L7F015F74 +/* 04AA68 7F015F38 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F3C: +/* 04AA6C 7F015F3C 8DEF978C */ lw $t7, %lo(ptrbriefingdata)($t7) +/* 04AA70 7F015F40 0FC30776 */ jal get_textptr_for_textID +/* 04AA74 7F015F44 95E40002 */ lhu $a0, 2($t7) +/* 04AA78 7F015F48 1000000A */ b .L7F015F74 +/* 04AA7C 7F015F4C AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F50: +/* 04AA80 7F015F50 8DCE978C */ lw $t6, %lo(ptrbriefingdata)($t6) +/* 04AA84 7F015F54 0FC30776 */ jal get_textptr_for_textID +/* 04AA88 7F015F58 95C40004 */ lhu $a0, 4($t6) +/* 04AA8C 7F015F5C 10000005 */ b .L7F015F74 +/* 04AA90 7F015F60 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F64: +/* 04AA94 7F015F64 8D29978C */ lw $t1, %lo(ptrbriefingdata)($t1) +/* 04AA98 7F015F68 0FC30776 */ jal get_textptr_for_textID +/* 04AA9C 7F015F6C 95240006 */ lhu $a0, 6($t1) +/* 04AAA0 7F015F70 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F74: +/* 04AAA4 7F015F74 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04AAA8 7F015F78 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04AAAC 7F015F7C 240A0037 */ li $t2, 55 +/* 04AAB0 7F015F80 240B00A7 */ li $t3, 167 +/* 04AAB4 7F015F84 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04AAB8 7F015F88 AFAA0C08 */ sw $t2, 0xc08($sp) +/* 04AABC 7F015F8C AFAB0C04 */ sw $t3, 0xc04($sp) +/* 04AAC0 7F015F90 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04AAC4 7F015F94 24040140 */ li $a0, 320 +/* 04AAC8 7F015F98 8FA50C0C */ lw $a1, 0xc0c($sp) +/* 04AACC 7F015F9C 27A6004C */ addiu $a2, $sp, 0x4c +/* 04AAD0 7F015FA0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04AAD4 7F015FA4 AFAC0010 */ sw $t4, 0x10($sp) +/* 04AAD8 7F015FA8 0FC2B2E8 */ jal setTextOverlapCorrection +/* 04AADC 7F015FAC 24040008 */ li $a0, 8 +/* 04AAE0 7F015FB0 0C001107 */ jal get_video2_settings_txtClipW +/* 04AAE4 7F015FB4 00000000 */ nop +/* 04AAE8 7F015FB8 0C00110B */ jal get_video2_settings_txtClipH +/* 04AAEC 7F015FBC A7A20048 */ sh $v0, 0x48($sp) +/* 04AAF0 7F015FC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04AAF4 7F015FC4 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04AAF8 7F015FC8 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04AAFC 7F015FCC 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04AB00 7F015FD0 87A80048 */ lh $t0, 0x48($sp) +/* 04AB04 7F015FD4 241800FF */ li $t8, 255 +/* 04AB08 7F015FD8 AFB80018 */ sw $t8, 0x18($sp) +/* 04AB0C 7F015FDC 02002025 */ move $a0, $s0 +/* 04AB10 7F015FE0 27A50C08 */ addiu $a1, $sp, 0xc08 +/* 04AB14 7F015FE4 27A60C04 */ addiu $a2, $sp, 0xc04 +/* 04AB18 7F015FE8 27A7004C */ addiu $a3, $sp, 0x4c +/* 04AB1C 7F015FEC AFA20020 */ sw $v0, 0x20($sp) +/* 04AB20 7F015FF0 AFA00024 */ sw $zero, 0x24($sp) +/* 04AB24 7F015FF4 AFA00028 */ sw $zero, 0x28($sp) +/* 04AB28 7F015FF8 AFB90014 */ sw $t9, 0x14($sp) +/* 04AB2C 7F015FFC AFAD0010 */ sw $t5, 0x10($sp) +/* 04AB30 7F016000 0FC025D8 */ jal write_text_at_abs_coord +/* 04AB34 7F016004 AFA8001C */ sw $t0, 0x1c($sp) +/* 04AB38 7F016008 00408025 */ move $s0, $v0 +/* 04AB3C 7F01600C 0FC2B2E8 */ jal setTextOverlapCorrection +/* 04AB40 7F016010 2404FFFF */ li $a0, -1 +.L7F016014: +/* 04AB44 7F016014 0FC02820 */ jal add_tab1_start +/* 04AB48 7F016018 02002025 */ move $a0, $s0 +/* 04AB4C 7F01601C 0FC0288E */ jal add_tab3_previous +/* 04AB50 7F016020 00402025 */ move $a0, $v0 +/* 04AB54 7F016024 3C0F8003 */ lui $t7, %hi(current_menu_briefing_page) +/* 04AB58 7F016028 8DEFA914 */ lw $t7, %lo(current_menu_briefing_page)($t7) +/* 04AB5C 7F01602C 00408025 */ move $s0, $v0 +/* 04AB60 7F016030 29E10004 */ slti $at, $t7, 4 +/* 04AB64 7F016034 10200004 */ beqz $at, .L7F016048 +/* 04AB68 7F016038 00000000 */ nop +/* 04AB6C 7F01603C 0FC02905 */ jal add_tab2_next +/* 04AB70 7F016040 00402025 */ move $a0, $v0 +/* 04AB74 7F016044 00408025 */ move $s0, $v0 +.L7F016048: +/* 04AB78 7F016048 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04AB7C 7F01604C 02002025 */ move $a0, $s0 +/* 04AB80 7F016050 8FBF003C */ lw $ra, 0x3c($sp) +/* 04AB84 7F016054 8FB00038 */ lw $s0, 0x38($sp) +/* 04AB88 7F016058 27BD0C10 */ addiu $sp, $sp, 0xc10 +/* 04AB8C 7F01605C 03E00008 */ jr $ra +/* 04AB90 7F016060 00000000 */ nop +) +#endif + + + +void init_menu0B_runstage(void) +{ + set_loaded_stage(selected_stage); + set_difficulty(selected_difficulty); +} + +void init_menu0C_missionfailed(void) +{ + tab_2_selected = FALSE; + tab_3_selected = FALSE; + load_walletbond(); + load_briefing_text_for_stage(); + set_cursor_pos_tab2(); + if (maybe_is_in_menu != FALSE) { + sfx_c_700091E8(0x7fff); + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_FOLDERS); + maybe_is_in_menu = FALSE; + } +} + +void update_menu0C_missionfailed(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0C_missionfailed(void) +{ + const f32 menu0C_aspect = 1.3333334; + const f32 menu0C_pageheight = 10000.0; + + setvideo_far(60.00000000); + video_related_21(menu0C_aspect); + set_page_height(100.00000000, menu0C_pageheight); + set_video2_settings_offset_24(0); + tab_2_highlight = 0; + tab_3_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if (isontab2() != 0) + { + tab_2_highlight = 1; + } + else + { + tab_2_highlight = 1; + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (tab_2_highlight != 0) + { + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_MISSION_COMPLETE, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo(mission_folder_setup_entries[briefingpage].mission_num); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0C_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0C_pageheight +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu0C_missionfailed +/* 04AC40 7F016110 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04AC44 7F016114 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04AC48 7F016118 AFBF0014 */ sw $ra, 0x14($sp) +/* 04AC4C 7F01611C 44816000 */ mtc1 $at, $f12 +/* 04AC50 7F016120 0C001151 */ jal setvideo_far +/* 04AC54 7F016124 00000000 */ nop +/* 04AC58 7F016128 3C018005 */ lui $at, %hi(menu0C_aspect) +/* 04AC5C 7F01612C 0C001164 */ jal video_related_21 +/* 04AC60 7F016130 C42C1AD4 */ lwc1 $f12, %lo(menu0C_aspect)($at) +/* 04AC64 7F016134 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04AC68 7F016138 44816000 */ mtc1 $at, $f12 +/* 04AC6C 7F01613C 3C018005 */ lui $at, %hi(menu0C_pageheight) +/* 04AC70 7F016140 0C001194 */ jal set_page_height +/* 04AC74 7F016144 C42E1AD8 */ lwc1 $f14, %lo(menu0C_pageheight)($at) +/* 04AC78 7F016148 0C00114D */ jal set_video2_settings_offset_24 +/* 04AC7C 7F01614C 00002025 */ move $a0, $zero +/* 04AC80 7F016150 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04AC84 7F016154 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04AC88 7F016158 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04AC8C 7F01615C 0FC028E7 */ jal isontab3 +/* 04AC90 7F016160 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04AC94 7F016164 10400004 */ beqz $v0, .L7F016178 +/* 04AC98 7F016168 24030001 */ li $v1, 1 +/* 04AC9C 7F01616C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04ACA0 7F016170 1000000B */ b .L7F0161A0 +/* 04ACA4 7F016174 AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F016178: +/* 04ACA8 7F016178 0FC0295E */ jal isontab2 +/* 04ACAC 7F01617C 00000000 */ nop +/* 04ACB0 7F016180 10400005 */ beqz $v0, .L7F016198 +/* 04ACB4 7F016184 24030001 */ li $v1, 1 +/* 04ACB8 7F016188 24030001 */ li $v1, 1 +/* 04ACBC 7F01618C 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04ACC0 7F016190 10000003 */ b .L7F0161A0 +/* 04ACC4 7F016194 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016198: +/* 04ACC8 7F016198 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04ACCC 7F01619C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F0161A0: +/* 04ACD0 7F0161A0 00002025 */ move $a0, $zero +/* 04ACD4 7F0161A4 0C0030EB */ jal get_controller_buttons_pressed +/* 04ACD8 7F0161A8 3405B000 */ li $a1, 45056 +/* 04ACDC 7F0161AC 10400019 */ beqz $v0, .L7F016214 +/* 04ACE0 7F0161B0 24030001 */ li $v1, 1 +/* 04ACE4 7F0161B4 3C0E8003 */ lui $t6, %hi(tab_3_highlight) +/* 04ACE8 7F0161B8 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) +/* 04ACEC 7F0161BC 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04ACF0 7F0161C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04ACF4 7F0161C4 11C00008 */ beqz $t6, .L7F0161E8 +/* 04ACF8 7F0161C8 3C0F8003 */ lui $t7, %hi(tab_2_highlight) +/* 04ACFC 7F0161CC AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04AD00 7F0161D0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD04 7F0161D4 240500C7 */ li $a1, 199 +/* 04AD08 7F0161D8 0C002382 */ jal play_sfx_a1 +/* 04AD0C 7F0161DC 00003025 */ move $a2, $zero +/* 04AD10 7F0161E0 10000018 */ b .L7F016244 +/* 04AD14 7F0161E4 00000000 */ nop +.L7F0161E8: +/* 04AD18 7F0161E8 8DEFA8E0 */ lw $t7, %lo(tab_2_highlight)($t7) +/* 04AD1C 7F0161EC 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04AD20 7F0161F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD24 7F0161F4 11E00013 */ beqz $t7, .L7F016244 +/* 04AD28 7F0161F8 240500C7 */ li $a1, 199 +/* 04AD2C 7F0161FC AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04AD30 7F016200 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD34 7F016204 0C002382 */ jal play_sfx_a1 +/* 04AD38 7F016208 00003025 */ move $a2, $zero +/* 04AD3C 7F01620C 1000000D */ b .L7F016244 +/* 04AD40 7F016210 00000000 */ nop +.L7F016214: +/* 04AD44 7F016214 00002025 */ move $a0, $zero +/* 04AD48 7F016218 0C0030EB */ jal get_controller_buttons_pressed +/* 04AD4C 7F01621C 24054000 */ li $a1, 16384 +/* 04AD50 7F016220 10400008 */ beqz $v0, .L7F016244 +/* 04AD54 7F016224 24030001 */ li $v1, 1 +/* 04AD58 7F016228 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04AD5C 7F01622C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD60 7F016230 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04AD64 7F016234 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD68 7F016238 240500C7 */ li $a1, 199 +/* 04AD6C 7F01623C 0C002382 */ jal play_sfx_a1 +/* 04AD70 7F016240 00003025 */ move $a2, $zero +.L7F016244: +/* 04AD74 7F016244 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD78 7F016248 0FC02DC9 */ jal disable_all_switches +/* 04AD7C 7F01624C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD80 7F016250 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD84 7F016254 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD88 7F016258 00002825 */ move $a1, $zero +/* 04AD8C 7F01625C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04AD90 7F016260 24060001 */ li $a2, 1 +/* 04AD94 7F016264 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD98 7F016268 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD9C 7F01626C 24050001 */ li $a1, 1 +/* 04ADA0 7F016270 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADA4 7F016274 24060001 */ li $a2, 1 +/* 04ADA8 7F016278 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04ADAC 7F01627C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04ADB0 7F016280 24050003 */ li $a1, 3 +/* 04ADB4 7F016284 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADB8 7F016288 24060001 */ li $a2, 1 +/* 04ADBC 7F01628C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04ADC0 7F016290 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04ADC4 7F016294 24050006 */ li $a1, 6 +/* 04ADC8 7F016298 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADCC 7F01629C 24060001 */ li $a2, 1 +/* 04ADD0 7F0162A0 0FC026E1 */ jal menu_control_stick_tracking +/* 04ADD4 7F0162A4 00000000 */ nop +/* 04ADD8 7F0162A8 3C188003 */ lui $t8, %hi(tab_2_selected) +/* 04ADDC 7F0162AC 8F18A8D4 */ lw $t8, %lo(tab_2_selected)($t8) +/* 04ADE0 7F0162B0 2404000D */ li $a0, 13 +/* 04ADE4 7F0162B4 3C198003 */ lui $t9, %hi(tab_3_selected) +/* 04ADE8 7F0162B8 13000005 */ beqz $t8, .L7F0162D0 +/* 04ADEC 7F0162BC 00000000 */ nop +/* 04ADF0 7F0162C0 0FC06975 */ jal set_menu_to_mode +/* 04ADF4 7F0162C4 00002825 */ move $a1, $zero +/* 04ADF8 7F0162C8 10000011 */ b .L7F016310 +/* 04ADFC 7F0162CC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0162D0: +/* 04AE00 7F0162D0 8F39A8D8 */ lw $t9, %lo(tab_3_selected)($t9) +/* 04AE04 7F0162D4 24040007 */ li $a0, 7 +/* 04AE08 7F0162D8 5320000D */ beql $t9, $zero, .L7F016310 +/* 04AE0C 7F0162DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 04AE10 7F0162E0 0FC06975 */ jal set_menu_to_mode +/* 04AE14 7F0162E4 00002825 */ move $a1, $zero +/* 04AE18 7F0162E8 3C088003 */ lui $t0, %hi(briefingpage) +/* 04AE1C 7F0162EC 8D08A8F8 */ lw $t0, %lo(briefingpage)($t0) +/* 04AE20 7F0162F0 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+200) +/* 04AE24 7F0162F4 000848C0 */ sll $t1, $t0, 3 +/* 04AE28 7F0162F8 01284823 */ subu $t1, $t1, $t0 +/* 04AE2C 7F0162FC 00094880 */ sll $t1, $t1, 2 +/* 04AE30 7F016300 00892021 */ addu $a0, $a0, $t1 +/* 04AE34 7F016304 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04AE38 7F016308 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 04AE3C 7F01630C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F016310: +/* 04AE40 7F016310 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04AE44 7F016314 03E00008 */ jr $ra +/* 04AE48 7F016318 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F01631C(void) +{ + s32 temp_s0; + s32 phi_s1; + s32 phi_s0; + + if (mission_failed_or_aborted != 0) + { +block_2: + return 0; + } + if (mission_kia_flag != 0) + { + goto block_2; + } + phi_s1 = 0; + phi_s0 = 0; +loop_4: + if ((ptrbriefingdata + phi_s1)->unk8 != 0) + { + if (get_current_difficulty() >= (ptrbriefingdata + phi_s1)->unkA) + { + if (get_status_of_objective(phi_s0) != 1) + { + return 0; + } + } + } + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 4; + phi_s0 = temp_s0; + if (temp_s0 != 0xa) + { + goto loop_4; + } + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01631C +/* 04AE4C 7F01631C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 04AE50 7F016320 3C0E8003 */ lui $t6, %hi(mission_failed_or_aborted) +/* 04AE54 7F016324 8DCEA924 */ lw $t6, %lo(mission_failed_or_aborted)($t6) +/* 04AE58 7F016328 AFBF002C */ sw $ra, 0x2c($sp) +/* 04AE5C 7F01632C AFB40028 */ sw $s4, 0x28($sp) +/* 04AE60 7F016330 AFB30024 */ sw $s3, 0x24($sp) +/* 04AE64 7F016334 AFB20020 */ sw $s2, 0x20($sp) +/* 04AE68 7F016338 AFB1001C */ sw $s1, 0x1c($sp) +/* 04AE6C 7F01633C 15C00007 */ bnez $t6, .L7F01635C +/* 04AE70 7F016340 AFB00018 */ sw $s0, 0x18($sp) +/* 04AE74 7F016344 3C0F8003 */ lui $t7, %hi(mission_kia_flag) +/* 04AE78 7F016348 8DEFA928 */ lw $t7, %lo(mission_kia_flag)($t7) +/* 04AE7C 7F01634C 00008025 */ move $s0, $zero +/* 04AE80 7F016350 00008825 */ move $s1, $zero +/* 04AE84 7F016354 11E00003 */ beqz $t7, .L7F016364 +/* 04AE88 7F016358 2414000A */ li $s4, 10 +.L7F01635C: +/* 04AE8C 7F01635C 1000001B */ b .L7F0163CC +/* 04AE90 7F016360 00001025 */ move $v0, $zero +.L7F016364: +/* 04AE94 7F016364 3C128007 */ lui $s2, %hi(ptrbriefingdata) +/* 04AE98 7F016368 2652978C */ addiu $s2, %lo(ptrbriefingdata) # addiu $s2, $s2, -0x6874 +/* 04AE9C 7F01636C 24130001 */ li $s3, 1 +.L7F016370: +/* 04AEA0 7F016370 8E580000 */ lw $t8, ($s2) +/* 04AEA4 7F016374 0311C821 */ addu $t9, $t8, $s1 +/* 04AEA8 7F016378 97280008 */ lhu $t0, 8($t9) +/* 04AEAC 7F01637C 51000010 */ beql $t0, $zero, .L7F0163C0 +/* 04AEB0 7F016380 26100001 */ addiu $s0, $s0, 1 +/* 04AEB4 7F016384 0FC2FF04 */ jal get_current_difficulty +/* 04AEB8 7F016388 00000000 */ nop +/* 04AEBC 7F01638C 8E490000 */ lw $t1, ($s2) +/* 04AEC0 7F016390 01315021 */ addu $t2, $t1, $s1 +/* 04AEC4 7F016394 954B000A */ lhu $t3, 0xa($t2) +/* 04AEC8 7F016398 004B082A */ slt $at, $v0, $t3 +/* 04AECC 7F01639C 54200008 */ bnezl $at, .L7F0163C0 +/* 04AED0 7F0163A0 26100001 */ addiu $s0, $s0, 1 +/* 04AED4 7F0163A4 0FC15C8E */ jal get_status_of_objective +/* 04AED8 7F0163A8 02002025 */ move $a0, $s0 +/* 04AEDC 7F0163AC 50530004 */ beql $v0, $s3, .L7F0163C0 +/* 04AEE0 7F0163B0 26100001 */ addiu $s0, $s0, 1 +/* 04AEE4 7F0163B4 10000005 */ b .L7F0163CC +/* 04AEE8 7F0163B8 00001025 */ move $v0, $zero +/* 04AEEC 7F0163BC 26100001 */ addiu $s0, $s0, 1 +.L7F0163C0: +/* 04AEF0 7F0163C0 1614FFEB */ bne $s0, $s4, .L7F016370 +/* 04AEF4 7F0163C4 26310004 */ addiu $s1, $s1, 4 +/* 04AEF8 7F0163C8 24020001 */ li $v0, 1 +.L7F0163CC: +/* 04AEFC 7F0163CC 8FBF002C */ lw $ra, 0x2c($sp) +/* 04AF00 7F0163D0 8FB00018 */ lw $s0, 0x18($sp) +/* 04AF04 7F0163D4 8FB1001C */ lw $s1, 0x1c($sp) +/* 04AF08 7F0163D8 8FB20020 */ lw $s2, 0x20($sp) +/* 04AF0C 7F0163DC 8FB30024 */ lw $s3, 0x24($sp) +/* 04AF10 7F0163E0 8FB40028 */ lw $s4, 0x28($sp) +/* 04AF14 7F0163E4 03E00008 */ jr $ra +/* 04AF18 7F0163E8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0C_missionfailed(s32 arg0) +{ + s32 spC14; + s32 spC10; + s32 sp58; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 phi_v1; + s32 phi_s0; + + arg0 = print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58); + spC14 = 0x37; + spC10 = 0x8f; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, get_textptr_for_textID(TEXT(LTITLE, 0x62)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x63)); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC14 = 0x37; + spC10 = 0xa7; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, temp_ret, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + if (mission_kia_flag != 0) + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x64)); + } + else + { + if (mission_failed_or_aborted != 0) + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x65)); + } + else + { + if (sub_GAME_7F01631C() != 0) + { + phi_v1 = 0xff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x66)); + } + else + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x67)); + } + } + } + spC10 = 0xa7; + spC14 = (s32) (sp48 + 0x37); + sp50 = (s32) phi_v1; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab3_previous(add_tab2_next(print_objectives_and_status_to_menu(write_text_at_abs_coord(arg0, &spC14, &spC10, phi_s0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0), 0xbf, &sp58, 1)))); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu0C_missionfailed +/* 04AF1C 7F0163EC 27BDF3E8 */ addiu $sp, $sp, -0xc18 +/* 04AF20 7F0163F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 04AF24 7F0163F4 AFB00038 */ sw $s0, 0x38($sp) +/* 04AF28 7F0163F8 00002825 */ move $a1, $zero +/* 04AF2C 7F0163FC 00003025 */ move $a2, $zero +/* 04AF30 7F016400 0C0011B4 */ jal set_setfillcolor +/* 04AF34 7F016404 00003825 */ move $a3, $zero +/* 04AF38 7F016408 0C000FBE */ jal insert_generic_fillrect +/* 04AF3C 7F01640C 00402025 */ move $a0, $v0 +/* 04AF40 7F016410 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04AF44 7F016414 00402025 */ move $a0, $v0 +/* 04AF48 7F016418 0FC2B366 */ jal microcode_constructor +/* 04AF4C 7F01641C 00402025 */ move $a0, $v0 +/* 04AF50 7F016420 00402025 */ move $a0, $v0 +/* 04AF54 7F016424 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04AF58 7F016428 27A50058 */ addiu $a1, $sp, 0x58 +/* 04AF5C 7F01642C AFA20C18 */ sw $v0, 0xc18($sp) +/* 04AF60 7F016430 0FC30776 */ jal get_textptr_for_textID +/* 04AF64 7F016434 34049C62 */ li $a0, 40034 +/* 04AF68 7F016438 240E0037 */ li $t6, 55 +/* 04AF6C 7F01643C 240F008F */ li $t7, 143 +/* 04AF70 7F016440 00408025 */ move $s0, $v0 +/* 04AF74 7F016444 AFAE0C14 */ sw $t6, 0xc14($sp) +/* 04AF78 7F016448 0C001107 */ jal get_video2_settings_txtClipW +/* 04AF7C 7F01644C AFAF0C10 */ sw $t7, 0xc10($sp) +/* 04AF80 7F016450 0C00110B */ jal get_video2_settings_txtClipH +/* 04AF84 7F016454 A7A20044 */ sh $v0, 0x44($sp) +/* 04AF88 7F016458 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04AF8C 7F01645C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04AF90 7F016460 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04AF94 7F016464 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04AF98 7F016468 87A90044 */ lh $t1, 0x44($sp) +/* 04AF9C 7F01646C 240800FF */ li $t0, 255 +/* 04AFA0 7F016470 AFA80018 */ sw $t0, 0x18($sp) +/* 04AFA4 7F016474 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04AFA8 7F016478 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04AFAC 7F01647C 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04AFB0 7F016480 02003825 */ move $a3, $s0 +/* 04AFB4 7F016484 AFA20020 */ sw $v0, 0x20($sp) +/* 04AFB8 7F016488 AFA00024 */ sw $zero, 0x24($sp) +/* 04AFBC 7F01648C AFA00028 */ sw $zero, 0x28($sp) +/* 04AFC0 7F016490 AFB90014 */ sw $t9, 0x14($sp) +/* 04AFC4 7F016494 AFB80010 */ sw $t8, 0x10($sp) +/* 04AFC8 7F016498 0FC025D8 */ jal write_text_at_abs_coord +/* 04AFCC 7F01649C AFA9001C */ sw $t1, 0x1c($sp) +/* 04AFD0 7F0164A0 AFA20C18 */ sw $v0, 0xc18($sp) +/* 04AFD4 7F0164A4 0FC30776 */ jal get_textptr_for_textID +/* 04AFD8 7F0164A8 34049C63 */ li $a0, 40035 +/* 04AFDC 7F0164AC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04AFE0 7F0164B0 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04AFE4 7F0164B4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04AFE8 7F0164B8 00408025 */ move $s0, $v0 +/* 04AFEC 7F0164BC AFA00048 */ sw $zero, 0x48($sp) +/* 04AFF0 7F0164C0 AFA0004C */ sw $zero, 0x4c($sp) +/* 04AFF4 7F0164C4 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04AFF8 7F0164C8 27A4004C */ addiu $a0, $sp, 0x4c +/* 04AFFC 7F0164CC 27A50048 */ addiu $a1, $sp, 0x48 +/* 04B000 7F0164D0 00403025 */ move $a2, $v0 +/* 04B004 7F0164D4 AFA00014 */ sw $zero, 0x14($sp) +/* 04B008 7F0164D8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04B00C 7F0164DC AFAA0010 */ sw $t2, 0x10($sp) +/* 04B010 7F0164E0 240B0037 */ li $t3, 55 +/* 04B014 7F0164E4 240C00A7 */ li $t4, 167 +/* 04B018 7F0164E8 AFAB0C14 */ sw $t3, 0xc14($sp) +/* 04B01C 7F0164EC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B020 7F0164F0 AFAC0C10 */ sw $t4, 0xc10($sp) +/* 04B024 7F0164F4 0C00110B */ jal get_video2_settings_txtClipH +/* 04B028 7F0164F8 A7A20044 */ sh $v0, 0x44($sp) +/* 04B02C 7F0164FC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04B030 7F016500 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04B034 7F016504 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04B038 7F016508 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04B03C 7F01650C 87B80044 */ lh $t8, 0x44($sp) +/* 04B040 7F016510 240F00FF */ li $t7, 255 +/* 04B044 7F016514 AFAF0018 */ sw $t7, 0x18($sp) +/* 04B048 7F016518 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04B04C 7F01651C 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04B050 7F016520 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04B054 7F016524 02003825 */ move $a3, $s0 +/* 04B058 7F016528 AFA20020 */ sw $v0, 0x20($sp) +/* 04B05C 7F01652C AFA00024 */ sw $zero, 0x24($sp) +/* 04B060 7F016530 AFA00028 */ sw $zero, 0x28($sp) +/* 04B064 7F016534 AFAE0014 */ sw $t6, 0x14($sp) +/* 04B068 7F016538 AFAD0010 */ sw $t5, 0x10($sp) +/* 04B06C 7F01653C 0FC025D8 */ jal write_text_at_abs_coord +/* 04B070 7F016540 AFB8001C */ sw $t8, 0x1c($sp) +/* 04B074 7F016544 3C198003 */ lui $t9, %hi(mission_kia_flag) +/* 04B078 7F016548 8F39A928 */ lw $t9, %lo(mission_kia_flag)($t9) +/* 04B07C 7F01654C AFA20C18 */ sw $v0, 0xc18($sp) +/* 04B080 7F016550 3C088003 */ lui $t0, %hi(mission_failed_or_aborted) +/* 04B084 7F016554 13200007 */ beqz $t9, .L7F016574 +/* 04B088 7F016558 00000000 */ nop +/* 04B08C 7F01655C 0FC30776 */ jal get_textptr_for_textID +/* 04B090 7F016560 34049C64 */ li $a0, 40036 +/* 04B094 7F016564 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B098 7F016568 00408025 */ move $s0, $v0 +/* 04B09C 7F01656C 10000018 */ b .L7F0165D0 +/* 04B0A0 7F016570 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F016574: +/* 04B0A4 7F016574 8D08A924 */ lw $t0, %lo(mission_failed_or_aborted)($t0) +/* 04B0A8 7F016578 11000007 */ beqz $t0, .L7F016598 +/* 04B0AC 7F01657C 00000000 */ nop +/* 04B0B0 7F016580 0FC30776 */ jal get_textptr_for_textID +/* 04B0B4 7F016584 34049C65 */ li $a0, 40037 +/* 04B0B8 7F016588 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B0BC 7F01658C 00408025 */ move $s0, $v0 +/* 04B0C0 7F016590 1000000F */ b .L7F0165D0 +/* 04B0C4 7F016594 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F016598: +/* 04B0C8 7F016598 0FC058C7 */ jal sub_GAME_7F01631C +/* 04B0CC 7F01659C 00000000 */ nop +/* 04B0D0 7F0165A0 10400006 */ beqz $v0, .L7F0165BC +/* 04B0D4 7F0165A4 00000000 */ nop +/* 04B0D8 7F0165A8 0FC30776 */ jal get_textptr_for_textID +/* 04B0DC 7F0165AC 34049C66 */ li $a0, 40038 +/* 04B0E0 7F0165B0 00408025 */ move $s0, $v0 +/* 04B0E4 7F0165B4 10000006 */ b .L7F0165D0 +/* 04B0E8 7F0165B8 240300FF */ li $v1, 255 +.L7F0165BC: +/* 04B0EC 7F0165BC 0FC30776 */ jal get_textptr_for_textID +/* 04B0F0 7F0165C0 34049C67 */ li $a0, 40039 +/* 04B0F4 7F0165C4 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B0F8 7F0165C8 00408025 */ move $s0, $v0 +/* 04B0FC 7F0165CC 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F0165D0: +/* 04B100 7F0165D0 8FA90048 */ lw $t1, 0x48($sp) +/* 04B104 7F0165D4 240B00A7 */ li $t3, 167 +/* 04B108 7F0165D8 AFAB0C10 */ sw $t3, 0xc10($sp) +/* 04B10C 7F0165DC 252A0037 */ addiu $t2, $t1, 0x37 +/* 04B110 7F0165E0 AFAA0C14 */ sw $t2, 0xc14($sp) +/* 04B114 7F0165E4 0C001107 */ jal get_video2_settings_txtClipW +/* 04B118 7F0165E8 AFA30050 */ sw $v1, 0x50($sp) +/* 04B11C 7F0165EC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B120 7F0165F0 A7A20044 */ sh $v0, 0x44($sp) +/* 04B124 7F0165F4 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04B128 7F0165F8 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04B12C 7F0165FC 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04B130 7F016600 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04B134 7F016604 8FA30050 */ lw $v1, 0x50($sp) +/* 04B138 7F016608 87AE0044 */ lh $t6, 0x44($sp) +/* 04B13C 7F01660C 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04B140 7F016610 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04B144 7F016614 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04B148 7F016618 02003825 */ move $a3, $s0 +/* 04B14C 7F01661C AFA20020 */ sw $v0, 0x20($sp) +/* 04B150 7F016620 AFA00024 */ sw $zero, 0x24($sp) +/* 04B154 7F016624 AFA00028 */ sw $zero, 0x28($sp) +/* 04B158 7F016628 AFAD0014 */ sw $t5, 0x14($sp) +/* 04B15C 7F01662C AFAC0010 */ sw $t4, 0x10($sp) +/* 04B160 7F016630 AFA30018 */ sw $v1, 0x18($sp) +/* 04B164 7F016634 0FC025D8 */ jal write_text_at_abs_coord +/* 04B168 7F016638 AFAE001C */ sw $t6, 0x1c($sp) +/* 04B16C 7F01663C 00402025 */ move $a0, $v0 +/* 04B170 7F016640 240500BF */ li $a1, 191 +/* 04B174 7F016644 27A60058 */ addiu $a2, $sp, 0x58 +/* 04B178 7F016648 0FC05682 */ jal print_objectives_and_status_to_menu +/* 04B17C 7F01664C 24070001 */ li $a3, 1 +/* 04B180 7F016650 0FC02905 */ jal add_tab2_next +/* 04B184 7F016654 00402025 */ move $a0, $v0 +/* 04B188 7F016658 0FC0288E */ jal add_tab3_previous +/* 04B18C 7F01665C 00402025 */ move $a0, $v0 +/* 04B190 7F016660 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04B194 7F016664 00402025 */ move $a0, $v0 +/* 04B198 7F016668 8FBF003C */ lw $ra, 0x3c($sp) +/* 04B19C 7F01666C 8FB00038 */ lw $s0, 0x38($sp) +/* 04B1A0 7F016670 27BD0C18 */ addiu $sp, $sp, 0xc18 +/* 04B1A4 7F016674 03E00008 */ jr $ra +/* 04B1A8 7F016678 00000000 */ nop +) +#endif + + + + + + +void init_menu0D_missioncomplete(void) +{ + tab_2_selected = 0; + tab_3_selected = 0; + load_walletbond(); + load_briefing_text_for_stage(); + if (newcheatunlocked != 0) + { + play_sfx_a1(ptr_sfx_buf, 0x102, 0); + } +} + +void update_menu0D_missioncomplete(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0D_missioncomplete(u32 param_1,u32 param_2) +{ + u32 BVar3; + s32 uVar1; + s32 lVar2; + mission_folder_setup *pmVar4; + mission_folder_setup *pmVar5; + int entry; + short sVar6; + int iVar7; + + setvideo_far(60.00000000); + video_related_21((f32)menu0D_aspect); + set_page_height(100.00000000,(f32)menu0D_pageheight); + set_video2_settings_offset_24(0); + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + if (isontab3() == FALSE) { + if (isontab2() == FALSE) { + tab_2_highlight = TRUE; + } + else { + tab_2_highlight = TRUE; + } + } + else { + tab_3_highlight = TRUE; + } + if (get_controller_buttons_pressed(0,START_BUTTON|Z_TRIG|A_BUTTON) == 0) { + if (get_controller_buttons_pressed(0,B_BUTTON) != 0) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + if (tab_2_highlight == FALSE) { + if (tab_3_highlight != FALSE) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + tab_2_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,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,1,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,3,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,6,1); + menu_control_stick_tracking(); + if (tab_2_selected == FALSE) { + if (tab_3_selected != FALSE) { + set_menu_to_mode(MENU_MISSION_SELECT,0); + set_cursor_to_stage_solo((s32)mission_folder_setup_entries[briefingpage].mission_num); + } + } + else { + lVar2 = proc_7F01631C(); + if ((lVar2 == 0) || (append_cheat_sp != FALSE)) { + set_menu_to_mode(MENU_BRIEFING,0); + } + else { + if (mission_folder_setup_entries[briefingpage].mission_num == 0x11) { + set_menu_to_mode(MENU_RUN_STAGE,1); + selected_stage = LEVELID_CUBA; + } + else { + entry = briefingpage + 1; + if (mission_folder_setup_entries[briefingpage].mission_num < 0x12) { + sVar6 = mission_folder_setup_entries[entry].folder_text_preset; + pmVar5 = mission_folder_setup_entries + entry; + if (sVar6 != 0) { + iVar7 = mission_folder_setup_entries[entry].stage_id; + pmVar4 = mission_folder_setup_entries + entry; + while (pmVar5 = pmVar4, iVar7 < 0) { + sVar6 = pmVar4[1].folder_text_preset; + entry += 1; + pmVar5 = pmVar4 + 1; + if (sVar6 == 0) break; + iVar7 = pmVar4[1].stage_id; + pmVar4 = pmVar5; + } + } + if (sVar6 != 0) { + selected_stage = pmVar5->stage_id; + briefingpage = entry; + } + set_menu_to_mode(MENU_BRIEFING,0); + } + else { + set_menu_to_mode(MENU_MISSION_SELECT,0); + set_cursor_to_stage_solo((s32)mission_folder_setup_entries[briefingpage].mission_num) + ; + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0D_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0D_pageheight +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0D_missioncomplete +/* 04B208 7F0166D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04B20C 7F0166DC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04B210 7F0166E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 04B214 7F0166E4 44816000 */ mtc1 $at, $f12 +/* 04B218 7F0166E8 0C001151 */ jal setvideo_far +/* 04B21C 7F0166EC 00000000 */ nop +/* 04B220 7F0166F0 3C018005 */ lui $at, %hi(menu0D_aspect) +/* 04B224 7F0166F4 0C001164 */ jal video_related_21 +/* 04B228 7F0166F8 C42C1ADC */ lwc1 $f12, %lo(menu0D_aspect)($at) +/* 04B22C 7F0166FC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04B230 7F016700 44816000 */ mtc1 $at, $f12 +/* 04B234 7F016704 3C018005 */ lui $at, %hi(menu0D_pageheight) +/* 04B238 7F016708 0C001194 */ jal set_page_height +/* 04B23C 7F01670C C42E1AE0 */ lwc1 $f14, %lo(menu0D_pageheight)($at) +/* 04B240 7F016710 0C00114D */ jal set_video2_settings_offset_24 +/* 04B244 7F016714 00002025 */ move $a0, $zero +/* 04B248 7F016718 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04B24C 7F01671C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04B250 7F016720 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B254 7F016724 0FC028E7 */ jal isontab3 +/* 04B258 7F016728 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04B25C 7F01672C 10400004 */ beqz $v0, .L7F016740 +/* 04B260 7F016730 24030001 */ li $v1, 1 +/* 04B264 7F016734 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04B268 7F016738 1000000B */ b .L7F016768 +/* 04B26C 7F01673C AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F016740: +/* 04B270 7F016740 0FC0295E */ jal isontab2 +/* 04B274 7F016744 00000000 */ nop +/* 04B278 7F016748 10400005 */ beqz $v0, .L7F016760 +/* 04B27C 7F01674C 24030001 */ li $v1, 1 +/* 04B280 7F016750 24030001 */ li $v1, 1 +/* 04B284 7F016754 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B288 7F016758 10000003 */ b .L7F016768 +/* 04B28C 7F01675C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016760: +/* 04B290 7F016760 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B294 7F016764 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016768: +/* 04B298 7F016768 00002025 */ move $a0, $zero +/* 04B29C 7F01676C 0C0030EB */ jal get_controller_buttons_pressed +/* 04B2A0 7F016770 3405B000 */ li $a1, 45056 +/* 04B2A4 7F016774 10400019 */ beqz $v0, .L7F0167DC +/* 04B2A8 7F016778 24030001 */ li $v1, 1 +/* 04B2AC 7F01677C 3C0E8003 */ lui $t6, %hi(tab_2_highlight) +/* 04B2B0 7F016780 8DCEA8E0 */ lw $t6, %lo(tab_2_highlight)($t6) +/* 04B2B4 7F016784 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04B2B8 7F016788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2BC 7F01678C 11C00008 */ beqz $t6, .L7F0167B0 +/* 04B2C0 7F016790 3C0F8003 */ lui $t7, %hi(tab_3_highlight) +/* 04B2C4 7F016794 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04B2C8 7F016798 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2CC 7F01679C 240500C7 */ li $a1, 199 +/* 04B2D0 7F0167A0 0C002382 */ jal play_sfx_a1 +/* 04B2D4 7F0167A4 00003025 */ move $a2, $zero +/* 04B2D8 7F0167A8 10000018 */ b .L7F01680C +/* 04B2DC 7F0167AC 00000000 */ nop +.L7F0167B0: +/* 04B2E0 7F0167B0 8DEFA8E4 */ lw $t7, %lo(tab_3_highlight)($t7) +/* 04B2E4 7F0167B4 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04B2E8 7F0167B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2EC 7F0167BC 11E00013 */ beqz $t7, .L7F01680C +/* 04B2F0 7F0167C0 240500C7 */ li $a1, 199 +/* 04B2F4 7F0167C4 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04B2F8 7F0167C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2FC 7F0167CC 0C002382 */ jal play_sfx_a1 +/* 04B300 7F0167D0 00003025 */ move $a2, $zero +/* 04B304 7F0167D4 1000000D */ b .L7F01680C +/* 04B308 7F0167D8 00000000 */ nop +.L7F0167DC: +/* 04B30C 7F0167DC 00002025 */ move $a0, $zero +/* 04B310 7F0167E0 0C0030EB */ jal get_controller_buttons_pressed +/* 04B314 7F0167E4 24054000 */ li $a1, 16384 +/* 04B318 7F0167E8 10400008 */ beqz $v0, .L7F01680C +/* 04B31C 7F0167EC 24030001 */ li $v1, 1 +/* 04B320 7F0167F0 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04B324 7F0167F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B328 7F0167F8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04B32C 7F0167FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B330 7F016800 240500C7 */ li $a1, 199 +/* 04B334 7F016804 0C002382 */ jal play_sfx_a1 +/* 04B338 7F016808 00003025 */ move $a2, $zero +.L7F01680C: +/* 04B33C 7F01680C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B340 7F016810 0FC02DC9 */ jal disable_all_switches +/* 04B344 7F016814 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B348 7F016818 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B34C 7F01681C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B350 7F016820 00002825 */ move $a1, $zero +/* 04B354 7F016824 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B358 7F016828 24060001 */ li $a2, 1 +/* 04B35C 7F01682C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B360 7F016830 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B364 7F016834 24050001 */ li $a1, 1 +/* 04B368 7F016838 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B36C 7F01683C 24060001 */ li $a2, 1 +/* 04B370 7F016840 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B374 7F016844 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B378 7F016848 24050003 */ li $a1, 3 +/* 04B37C 7F01684C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B380 7F016850 24060001 */ li $a2, 1 +/* 04B384 7F016854 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B388 7F016858 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B38C 7F01685C 24050006 */ li $a1, 6 +/* 04B390 7F016860 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B394 7F016864 24060001 */ li $a2, 1 +/* 04B398 7F016868 0FC026E1 */ jal menu_control_stick_tracking +/* 04B39C 7F01686C 00000000 */ nop +/* 04B3A0 7F016870 3C188003 */ lui $t8, %hi(tab_2_selected) +/* 04B3A4 7F016874 8F18A8D4 */ lw $t8, %lo(tab_2_selected)($t8) +/* 04B3A8 7F016878 3C098003 */ lui $t1, %hi(tab_3_selected) +/* 04B3AC 7F01687C 1300004D */ beqz $t8, .L7F0169B4 +/* 04B3B0 7F016880 00000000 */ nop +/* 04B3B4 7F016884 0FC058C7 */ jal sub_GAME_7F01631C +/* 04B3B8 7F016888 00000000 */ nop +/* 04B3BC 7F01688C 10400044 */ beqz $v0, .L7F0169A0 +/* 04B3C0 7F016890 3C198003 */ lui $t9, %hi(append_cheat_sp) +/* 04B3C4 7F016894 8F39A900 */ lw $t9, %lo(append_cheat_sp)($t9) +/* 04B3C8 7F016898 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B3CC 7F01689C 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B3D0 7F0168A0 57200040 */ bnezl $t9, .L7F0169A4 +/* 04B3D4 7F0168A4 2404000A */ li $a0, 10 +/* 04B3D8 7F0168A8 8D050000 */ lw $a1, ($t0) +/* 04B3DC 7F0168AC 2407001C */ li $a3, 28 +/* 04B3E0 7F0168B0 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B3E4 7F0168B4 00A70019 */ multu $a1, $a3 +/* 04B3E8 7F0168B8 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B3EC 7F0168BC 24010011 */ li $at, 17 +/* 04B3F0 7F0168C0 2404000B */ li $a0, 11 +/* 04B3F4 7F0168C4 00004812 */ mflo $t1 +/* 04B3F8 7F0168C8 00C95021 */ addu $t2, $a2, $t1 +/* 04B3FC 7F0168CC 8D420014 */ lw $v0, 0x14($t2) +/* 04B400 7F0168D0 54410008 */ bnel $v0, $at, .L7F0168F4 +/* 04B404 7F0168D4 28410012 */ slti $at, $v0, 0x12 +/* 04B408 7F0168D8 0FC06975 */ jal set_menu_to_mode +/* 04B40C 7F0168DC 24050001 */ li $a1, 1 +/* 04B410 7F0168E0 240B0036 */ li $t3, 54 +/* 04B414 7F0168E4 3C018003 */ lui $at, %hi(selected_stage) +/* 04B418 7F0168E8 10000043 */ b .L7F0169F8 +/* 04B41C 7F0168EC AC2BA8F4 */ sw $t3, %lo(selected_stage)($at) +/* 04B420 7F0168F0 28410012 */ slti $at, $v0, 0x12 +.L7F0168F4: +/* 04B424 7F0168F4 14200011 */ bnez $at, .L7F01693C +/* 04B428 7F0168F8 24A30001 */ addiu $v1, $a1, 1 +/* 04B42C 7F0168FC 24040007 */ li $a0, 7 +/* 04B430 7F016900 0FC06975 */ jal set_menu_to_mode +/* 04B434 7F016904 00002825 */ move $a1, $zero +/* 04B438 7F016908 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B43C 7F01690C 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B440 7F016910 8D0C0000 */ lw $t4, ($t0) +/* 04B444 7F016914 2407001C */ li $a3, 28 +/* 04B448 7F016918 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B44C 7F01691C 01870019 */ multu $t4, $a3 +/* 04B450 7F016920 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B454 7F016924 00006812 */ mflo $t5 +/* 04B458 7F016928 00CD7021 */ addu $t6, $a2, $t5 +/* 04B45C 7F01692C 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04B460 7F016930 8DC40014 */ lw $a0, 0x14($t6) +/* 04B464 7F016934 10000031 */ b .L7F0169FC +/* 04B468 7F016938 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01693C: +/* 04B46C 7F01693C 00670019 */ multu $v1, $a3 +/* 04B470 7F016940 00002825 */ move $a1, $zero +/* 04B474 7F016944 00007812 */ mflo $t7 +/* 04B478 7F016948 00CF1021 */ addu $v0, $a2, $t7 +/* 04B47C 7F01694C 94440004 */ lhu $a0, 4($v0) +/* 04B480 7F016950 10800009 */ beqz $a0, .L7F016978 +/* 04B484 7F016954 00000000 */ nop +/* 04B488 7F016958 8C580008 */ lw $t8, 8($v0) +.L7F01695C: +/* 04B48C 7F01695C 07010006 */ bgez $t8, .L7F016978 +/* 04B490 7F016960 00000000 */ nop +/* 04B494 7F016964 94440020 */ lhu $a0, 0x20($v0) +/* 04B498 7F016968 24630001 */ addiu $v1, $v1, 1 +/* 04B49C 7F01696C 2442001C */ addiu $v0, $v0, 0x1c +/* 04B4A0 7F016970 5480FFFA */ bnezl $a0, .L7F01695C +/* 04B4A4 7F016974 8C580008 */ lw $t8, 8($v0) +.L7F016978: +/* 04B4A8 7F016978 10800005 */ beqz $a0, .L7F016990 +/* 04B4AC 7F01697C 00000000 */ nop +/* 04B4B0 7F016980 8C590008 */ lw $t9, 8($v0) +/* 04B4B4 7F016984 AD030000 */ sw $v1, ($t0) +/* 04B4B8 7F016988 3C018003 */ lui $at, %hi(selected_stage) +/* 04B4BC 7F01698C AC39A8F4 */ sw $t9, %lo(selected_stage)($at) +.L7F016990: +/* 04B4C0 7F016990 0FC06975 */ jal set_menu_to_mode +/* 04B4C4 7F016994 2404000A */ li $a0, 10 +/* 04B4C8 7F016998 10000018 */ b .L7F0169FC +/* 04B4CC 7F01699C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169A0: +/* 04B4D0 7F0169A0 2404000A */ li $a0, 10 +.L7F0169A4: +/* 04B4D4 7F0169A4 0FC06975 */ jal set_menu_to_mode +/* 04B4D8 7F0169A8 00002825 */ move $a1, $zero +/* 04B4DC 7F0169AC 10000013 */ b .L7F0169FC +/* 04B4E0 7F0169B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169B4: +/* 04B4E4 7F0169B4 8D29A8D8 */ lw $t1, %lo(tab_3_selected)($t1) +/* 04B4E8 7F0169B8 24040007 */ li $a0, 7 +/* 04B4EC 7F0169BC 5120000F */ beql $t1, $zero, .L7F0169FC +/* 04B4F0 7F0169C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 04B4F4 7F0169C4 0FC06975 */ jal set_menu_to_mode +/* 04B4F8 7F0169C8 00002825 */ move $a1, $zero +/* 04B4FC 7F0169CC 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B500 7F0169D0 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B504 7F0169D4 8D0A0000 */ lw $t2, ($t0) +/* 04B508 7F0169D8 2407001C */ li $a3, 28 +/* 04B50C 7F0169DC 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B510 7F0169E0 01470019 */ multu $t2, $a3 +/* 04B514 7F0169E4 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B518 7F0169E8 00005812 */ mflo $t3 +/* 04B51C 7F0169EC 00CB6021 */ addu $t4, $a2, $t3 +/* 04B520 7F0169F0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04B524 7F0169F4 8D840014 */ lw $a0, 0x14($t4) +.L7F0169F8: +/* 04B528 7F0169F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169FC: +/* 04B52C 7F0169FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04B530 7F016A00 03E00008 */ jr $ra +/* 04B534 7F016A04 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0D_missioncomplete(void) { + +} +#else +const char a02d02d[] = "%02d:%02d"; +const char aS[] = " [%s]"; +const char a02d02d_0[] = "%02d:%02d"; +const char aS02d02d[] = " (%s %02d:%02d)"; +const char D_80051848[] = ""; +const char a02d02d_1[] = "%02d:%02d"; +const char a_1f[] = "%.1f%%"; +const char aX2[] = " x 2\n"; +const char aD_8[] = "%d"; +const char aDD_0[] = "%d (%d%%)"; +const char aDD_1[] = "%d (%d%%)"; +const char aDD_2[] = "%d (%d%%)"; +const char aDD_3[] = "%d (%d%%)"; +const char aD_10[] = "%d"; +GLOBAL_ASM( +.text +glabel constructor_menu0D_missioncomplete +/* 04B538 7F016A08 27BDF398 */ addiu $sp, $sp, -0xc68 +/* 04B53C 7F016A0C AFBF003C */ sw $ra, 0x3c($sp) +/* 04B540 7F016A10 AFB10038 */ sw $s1, 0x38($sp) +/* 04B544 7F016A14 AFB00034 */ sw $s0, 0x34($sp) +/* 04B548 7F016A18 00002825 */ move $a1, $zero +/* 04B54C 7F016A1C 00003025 */ move $a2, $zero +/* 04B550 7F016A20 0C0011B4 */ jal set_setfillcolor +/* 04B554 7F016A24 00003825 */ move $a3, $zero +/* 04B558 7F016A28 0C000FBE */ jal insert_generic_fillrect +/* 04B55C 7F016A2C 00402025 */ move $a0, $v0 +/* 04B560 7F016A30 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04B564 7F016A34 00402025 */ move $a0, $v0 +/* 04B568 7F016A38 0FC2B366 */ jal microcode_constructor +/* 04B56C 7F016A3C 00402025 */ move $a0, $v0 +/* 04B570 7F016A40 0FC22FEE */ jal get_mission_timer +/* 04B574 7F016A44 00408825 */ move $s1, $v0 +/* 04B578 7F016A48 0FC1AA49 */ jal get_curplay_killcount +/* 04B57C 7F016A4C AFA20098 */ sw $v0, 0x98($sp) +/* 04B580 7F016A50 AFA20094 */ sw $v0, 0x94($sp) +/* 04B584 7F016A54 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B588 7F016A58 00002025 */ move $a0, $zero +/* 04B58C 7F016A5C AFA20090 */ sw $v0, 0x90($sp) +/* 04B590 7F016A60 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B594 7F016A64 24040001 */ li $a0, 1 +/* 04B598 7F016A68 AFA2008C */ sw $v0, 0x8c($sp) +/* 04B59C 7F016A6C 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5A0 7F016A70 24040002 */ li $a0, 2 +/* 04B5A4 7F016A74 AFA20088 */ sw $v0, 0x88($sp) +/* 04B5A8 7F016A78 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5AC 7F016A7C 24040003 */ li $a0, 3 +/* 04B5B0 7F016A80 AFA20084 */ sw $v0, 0x84($sp) +/* 04B5B4 7F016A84 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5B8 7F016A88 24040004 */ li $a0, 4 +/* 04B5BC 7F016A8C AFA20080 */ sw $v0, 0x80($sp) +/* 04B5C0 7F016A90 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5C4 7F016A94 24040005 */ li $a0, 5 +/* 04B5C8 7F016A98 AFA2007C */ sw $v0, 0x7c($sp) +/* 04B5CC 7F016A9C 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5D0 7F016AA0 24040006 */ li $a0, 6 +/* 04B5D4 7F016AA4 8FAE008C */ lw $t6, 0x8c($sp) +/* 04B5D8 7F016AA8 8FAF0088 */ lw $t7, 0x88($sp) +/* 04B5DC 7F016AAC 8FB90084 */ lw $t9, 0x84($sp) +/* 04B5E0 7F016AB0 8FAB0080 */ lw $t3, 0x80($sp) +/* 04B5E4 7F016AB4 8FAD007C */ lw $t5, 0x7c($sp) +/* 04B5E8 7F016AB8 01CFC021 */ addu $t8, $t6, $t7 +/* 04B5EC 7F016ABC 03195021 */ addu $t2, $t8, $t9 +/* 04B5F0 7F016AC0 014B6021 */ addu $t4, $t2, $t3 +/* 04B5F4 7F016AC4 018D3021 */ addu $a2, $t4, $t5 +/* 04B5F8 7F016AC8 00C27021 */ addu $t6, $a2, $v0 +/* 04B5FC 7F016ACC 1CC00002 */ bgtz $a2, .L7F016AD8 +/* 04B600 7F016AD0 AFAE0074 */ sw $t6, 0x74($sp) +/* 04B604 7F016AD4 24060001 */ li $a2, 1 +.L7F016AD8: +/* 04B608 7F016AD8 02202025 */ move $a0, $s1 +/* 04B60C 7F016ADC 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 04B610 7F016AE0 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04B614 7F016AE4 AFA60070 */ sw $a2, 0x70($sp) +/* 04B618 7F016AE8 00408825 */ move $s1, $v0 +/* 04B61C 7F016AEC 0FC30776 */ jal get_textptr_for_textID +/* 04B620 7F016AF0 34049C68 */ li $a0, 40040 +/* 04B624 7F016AF4 240F0037 */ li $t7, 55 +/* 04B628 7F016AF8 2418008F */ li $t8, 143 +/* 04B62C 7F016AFC AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B630 7F016B00 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04B634 7F016B04 0C001107 */ jal get_video2_settings_txtClipW +/* 04B638 7F016B08 AFB80C60 */ sw $t8, 0xc60($sp) +/* 04B63C 7F016B0C 00028400 */ sll $s0, $v0, 0x10 +/* 04B640 7F016B10 0010CC03 */ sra $t9, $s0, 0x10 +/* 04B644 7F016B14 0C00110B */ jal get_video2_settings_txtClipH +/* 04B648 7F016B18 03208025 */ move $s0, $t9 +/* 04B64C 7F016B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04B650 7F016B20 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04B654 7F016B24 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04B658 7F016B28 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04B65C 7F016B2C 240C00FF */ li $t4, 255 +/* 04B660 7F016B30 AFAC0018 */ sw $t4, 0x18($sp) +/* 04B664 7F016B34 02202025 */ move $a0, $s1 +/* 04B668 7F016B38 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B66C 7F016B3C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B670 7F016B40 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B674 7F016B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B678 7F016B48 AFA20020 */ sw $v0, 0x20($sp) +/* 04B67C 7F016B4C AFA00024 */ sw $zero, 0x24($sp) +/* 04B680 7F016B50 AFA00028 */ sw $zero, 0x28($sp) +/* 04B684 7F016B54 AFAB0014 */ sw $t3, 0x14($sp) +/* 04B688 7F016B58 0FC025D8 */ jal write_text_at_abs_coord +/* 04B68C 7F016B5C AFAA0010 */ sw $t2, 0x10($sp) +/* 04B690 7F016B60 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04B694 7F016B64 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04B698 7F016B68 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04B69C 7F016B6C 00408825 */ move $s1, $v0 +/* 04B6A0 7F016B70 AFA0009C */ sw $zero, 0x9c($sp) +/* 04B6A4 7F016B74 AFA000A0 */ sw $zero, 0xa0($sp) +/* 04B6A8 7F016B78 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04B6AC 7F016B7C 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 04B6B0 7F016B80 27A5009C */ addiu $a1, $sp, 0x9c +/* 04B6B4 7F016B84 8FA600A4 */ lw $a2, 0xa4($sp) +/* 04B6B8 7F016B88 AFA00014 */ sw $zero, 0x14($sp) +/* 04B6BC 7F016B8C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04B6C0 7F016B90 AFAD0010 */ sw $t5, 0x10($sp) +/* 04B6C4 7F016B94 0FC30776 */ jal get_textptr_for_textID +/* 04B6C8 7F016B98 34049C69 */ li $a0, 40041 +/* 04B6CC 7F016B9C 240E0037 */ li $t6, 55 +/* 04B6D0 7F016BA0 240F00A7 */ li $t7, 167 +/* 04B6D4 7F016BA4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B6D8 7F016BA8 AFAE0C64 */ sw $t6, 0xc64($sp) +/* 04B6DC 7F016BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B6E0 7F016BB0 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04B6E4 7F016BB4 00028400 */ sll $s0, $v0, 0x10 +/* 04B6E8 7F016BB8 0010C403 */ sra $t8, $s0, 0x10 +/* 04B6EC 7F016BBC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B6F0 7F016BC0 03008025 */ move $s0, $t8 +/* 04B6F4 7F016BC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04B6F8 7F016BC8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04B6FC 7F016BCC 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04B700 7F016BD0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04B704 7F016BD4 240B00FF */ li $t3, 255 +/* 04B708 7F016BD8 AFAB0018 */ sw $t3, 0x18($sp) +/* 04B70C 7F016BDC 02202025 */ move $a0, $s1 +/* 04B710 7F016BE0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B714 7F016BE4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B718 7F016BE8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B71C 7F016BEC AFB0001C */ sw $s0, 0x1c($sp) +/* 04B720 7F016BF0 AFA20020 */ sw $v0, 0x20($sp) +/* 04B724 7F016BF4 AFA00024 */ sw $zero, 0x24($sp) +/* 04B728 7F016BF8 AFA00028 */ sw $zero, 0x28($sp) +/* 04B72C 7F016BFC AFAA0014 */ sw $t2, 0x14($sp) +/* 04B730 7F016C00 0FC025D8 */ jal write_text_at_abs_coord +/* 04B734 7F016C04 AFB90010 */ sw $t9, 0x10($sp) +/* 04B738 7F016C08 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 04B73C 7F016C0C 00408825 */ move $s1, $v0 +/* 04B740 7F016C10 0FC07771 */ jal get_save_folder_ptr +/* 04B744 7F016C14 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 04B748 7F016C18 3C0C8003 */ lui $t4, %hi(briefingpage) +/* 04B74C 7F016C1C 8D8CA8F8 */ lw $t4, %lo(briefingpage)($t4) +/* 04B750 7F016C20 3C108003 */ lui $s0, %hi(mission_folder_setup_entries) +/* 04B754 7F016C24 2610ABE4 */ addiu $s0, %lo(mission_folder_setup_entries) # addiu $s0, $s0, -0x541c +/* 04B758 7F016C28 000C68C0 */ sll $t5, $t4, 3 +/* 04B75C 7F016C2C 01AC6823 */ subu $t5, $t5, $t4 +/* 04B760 7F016C30 000D6880 */ sll $t5, $t5, 2 +/* 04B764 7F016C34 020D7021 */ addu $t6, $s0, $t5 +/* 04B768 7F016C38 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 04B76C 7F016C3C 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 04B770 7F016C40 8DC50014 */ lw $a1, 0x14($t6) +/* 04B774 7F016C44 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 04B778 7F016C48 00402025 */ move $a0, $v0 +/* 04B77C 7F016C4C 10400004 */ beqz $v0, .L7F016C60 +/* 04B780 7F016C50 00404825 */ move $t1, $v0 +/* 04B784 7F016C54 284103FF */ slti $at, $v0, 0x3ff +/* 04B788 7F016C58 14200002 */ bnez $at, .L7F016C64 +/* 04B78C 7F016C5C 00000000 */ nop +.L7F016C60: +/* 04B790 7F016C60 2409FFFF */ li $t1, -1 +.L7F016C64: +/* 04B794 7F016C64 3C028003 */ lui $v0, %hi(selected_difficulty) +/* 04B798 7F016C68 8C42A8FC */ lw $v0, %lo(selected_difficulty)($v0) +/* 04B79C 7F016C6C 2408003C */ li $t0, 60 +/* 04B7A0 7F016C70 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 04B7A4 7F016C74 28410003 */ slti $at, $v0, 3 +/* 04B7A8 7F016C78 14200003 */ bnez $at, .L7F016C88 +/* 04B7AC 7F016C7C 3C0E8003 */ lui $t6, %hi(solo_target_time_array) +/* 04B7B0 7F016C80 10000002 */ b .L7F016C8C +/* 04B7B4 7F016C84 24030002 */ li $v1, 2 +.L7F016C88: +/* 04B7B8 7F016C88 00401825 */ move $v1, $v0 +.L7F016C8C: +/* 04B7BC 7F016C8C 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 04B7C0 7F016C90 00036040 */ sll $t4, $v1, 1 +/* 04B7C4 7F016C94 3C058005 */ lui $a1, %hi(a02d02d) +/* 04B7C8 7F016C98 000FC0C0 */ sll $t8, $t7, 3 +/* 04B7CC 7F016C9C 030FC023 */ subu $t8, $t8, $t7 +/* 04B7D0 7F016CA0 8FAF0098 */ lw $t7, 0x98($sp) +/* 04B7D4 7F016CA4 0018C080 */ sll $t8, $t8, 2 +/* 04B7D8 7F016CA8 0218C821 */ addu $t9, $s0, $t8 +/* 04B7DC 7F016CAC 01E8001A */ div $zero, $t7, $t0 +/* 04B7E0 7F016CB0 00001012 */ mflo $v0 +/* 04B7E4 7F016CB4 8F2A0014 */ lw $t2, 0x14($t9) +/* 04B7E8 7F016CB8 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04B7EC 7F016CBC 0048001A */ div $zero, $v0, $t0 +/* 04B7F0 7F016CC0 000A5880 */ sll $t3, $t2, 2 +/* 04B7F4 7F016CC4 016A5823 */ subu $t3, $t3, $t2 +/* 04B7F8 7F016CC8 000B5840 */ sll $t3, $t3, 1 +/* 04B7FC 7F016CCC 016C6821 */ addu $t5, $t3, $t4 +/* 04B800 7F016CD0 01CD7021 */ addu $t6, $t6, $t5 +/* 04B804 7F016CD4 85CEB564 */ lh $t6, %lo(solo_target_time_array)($t6) +/* 04B808 7F016CD8 00003810 */ mfhi $a3 +/* 04B80C 7F016CDC 00003012 */ mflo $a2 +/* 04B810 7F016CE0 AFA90064 */ sw $t1, 0x64($sp) +/* 04B814 7F016CE4 24A5180C */ addiu $a1, %lo(a02d02d) # addiu $a1, $a1, 0x180c +/* 04B818 7F016CE8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04B81C 7F016CEC AFAE0060 */ sw $t6, 0x60($sp) +/* 04B820 7F016CF0 15000002 */ bnez $t0, .L7F016CFC +/* 04B824 7F016CF4 00000000 */ nop +/* 04B828 7F016CF8 0007000D */ break 7 +.L7F016CFC: +/* 04B82C 7F016CFC 2401FFFF */ li $at, -1 +/* 04B830 7F016D00 15010004 */ bne $t0, $at, .L7F016D14 +/* 04B834 7F016D04 3C018000 */ lui $at, 0x8000 +/* 04B838 7F016D08 15E10002 */ bne $t7, $at, .L7F016D14 +/* 04B83C 7F016D0C 00000000 */ nop +/* 04B840 7F016D10 0006000D */ break 6 +.L7F016D14: +/* 04B844 7F016D14 15000002 */ bnez $t0, .L7F016D20 +/* 04B848 7F016D18 00000000 */ nop +/* 04B84C 7F016D1C 0007000D */ break 7 +.L7F016D20: +/* 04B850 7F016D20 2401FFFF */ li $at, -1 +/* 04B854 7F016D24 15010004 */ bne $t0, $at, .L7F016D38 +/* 04B858 7F016D28 3C018000 */ lui $at, 0x8000 +/* 04B85C 7F016D2C 14410002 */ bne $v0, $at, .L7F016D38 +/* 04B860 7F016D30 00000000 */ nop +/* 04B864 7F016D34 0006000D */ break 6 +.L7F016D38: +/* 04B868 7F016D38 0C002B25 */ jal sprintf +/* 04B86C 7F016D3C 00000000 */ nop +/* 04B870 7F016D40 24180082 */ li $t8, 130 +/* 04B874 7F016D44 241900A7 */ li $t9, 167 +/* 04B878 7F016D48 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04B87C 7F016D4C 0C001107 */ jal get_video2_settings_txtClipW +/* 04B880 7F016D50 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04B884 7F016D54 00028400 */ sll $s0, $v0, 0x10 +/* 04B888 7F016D58 00105403 */ sra $t2, $s0, 0x10 +/* 04B88C 7F016D5C 0C00110B */ jal get_video2_settings_txtClipH +/* 04B890 7F016D60 01408025 */ move $s0, $t2 +/* 04B894 7F016D64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04B898 7F016D68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04B89C 7F016D6C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04B8A0 7F016D70 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04B8A4 7F016D74 240D00FF */ li $t5, 255 +/* 04B8A8 7F016D78 AFAD0018 */ sw $t5, 0x18($sp) +/* 04B8AC 7F016D7C 02202025 */ move $a0, $s1 +/* 04B8B0 7F016D80 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B8B4 7F016D84 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B8B8 7F016D88 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04B8BC 7F016D8C AFB0001C */ sw $s0, 0x1c($sp) +/* 04B8C0 7F016D90 AFA20020 */ sw $v0, 0x20($sp) +/* 04B8C4 7F016D94 AFA00024 */ sw $zero, 0x24($sp) +/* 04B8C8 7F016D98 AFA00028 */ sw $zero, 0x28($sp) +/* 04B8CC 7F016D9C AFAC0014 */ sw $t4, 0x14($sp) +/* 04B8D0 7F016DA0 0FC025D8 */ jal write_text_at_abs_coord +/* 04B8D4 7F016DA4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04B8D8 7F016DA8 3C0E8007 */ lui $t6, %hi(newcheatunlocked) +/* 04B8DC 7F016DAC 8DCE9790 */ lw $t6, %lo(newcheatunlocked)($t6) +/* 04B8E0 7F016DB0 00408825 */ move $s1, $v0 +/* 04B8E4 7F016DB4 51C00023 */ beql $t6, $zero, .L7F016E44 +/* 04B8E8 7F016DB8 8FAB0060 */ lw $t3, 0x60($sp) +/* 04B8EC 7F016DBC A3A000A8 */ sb $zero, 0xa8($sp) +/* 04B8F0 7F016DC0 0FC30776 */ jal get_textptr_for_textID +/* 04B8F4 7F016DC4 34049D13 */ li $a0, 40211 +/* 04B8F8 7F016DC8 3C058005 */ lui $a1, %hi(aS) +/* 04B8FC 7F016DCC 24A51818 */ addiu $a1, %lo(aS) # addiu $a1, $a1, 0x1818 +/* 04B900 7F016DD0 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04B904 7F016DD4 0C002B25 */ jal sprintf +/* 04B908 7F016DD8 00403025 */ move $a2, $v0 +/* 04B90C 7F016DDC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B910 7F016DE0 00000000 */ nop +/* 04B914 7F016DE4 00028400 */ sll $s0, $v0, 0x10 +/* 04B918 7F016DE8 00107C03 */ sra $t7, $s0, 0x10 +/* 04B91C 7F016DEC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B920 7F016DF0 01E08025 */ move $s0, $t7 +/* 04B924 7F016DF4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04B928 7F016DF8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04B92C 7F016DFC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04B930 7F016E00 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04B934 7F016E04 3C0AA000 */ lui $t2, (0xA00000FF >> 16) # lui $t2, 0xa000 +/* 04B938 7F016E08 354A00FF */ ori $t2, (0xA00000FF & 0xFFFF) # ori $t2, $t2, 0xff +/* 04B93C 7F016E0C AFAA0018 */ sw $t2, 0x18($sp) +/* 04B940 7F016E10 02202025 */ move $a0, $s1 +/* 04B944 7F016E14 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B948 7F016E18 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B94C 7F016E1C 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04B950 7F016E20 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B954 7F016E24 AFA20020 */ sw $v0, 0x20($sp) +/* 04B958 7F016E28 AFA00024 */ sw $zero, 0x24($sp) +/* 04B95C 7F016E2C AFA00028 */ sw $zero, 0x28($sp) +/* 04B960 7F016E30 AFB90014 */ sw $t9, 0x14($sp) +/* 04B964 7F016E34 0FC025D8 */ jal write_text_at_abs_coord +/* 04B968 7F016E38 AFB80010 */ sw $t8, 0x10($sp) +/* 04B96C 7F016E3C 00408825 */ move $s1, $v0 +/* 04B970 7F016E40 8FAB0060 */ lw $t3, 0x60($sp) +.L7F016E44: +/* 04B974 7F016E44 19600091 */ blez $t3, .L7F01708C +/* 04B978 7F016E48 3C0C8003 */ lui $t4, %hi(selected_difficulty) +/* 04B97C 7F016E4C 8D8CA8FC */ lw $t4, %lo(selected_difficulty)($t4) +/* 04B980 7F016E50 24010003 */ li $at, 3 +/* 04B984 7F016E54 5181008E */ beql $t4, $at, .L7F017090 +/* 04B988 7F016E58 8FA20064 */ lw $v0, 0x64($sp) +/* 04B98C 7F016E5C 0FC30776 */ jal get_textptr_for_textID +/* 04B990 7F016E60 34049D12 */ li $a0, 40210 +/* 04B994 7F016E64 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 04B998 7F016E68 240D0037 */ li $t5, 55 +/* 04B99C 7F016E6C AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B9A0 7F016E70 25CF00A9 */ addiu $t7, $t6, 0xa9 +/* 04B9A4 7F016E74 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04B9A8 7F016E78 0C001107 */ jal get_video2_settings_txtClipW +/* 04B9AC 7F016E7C AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04B9B0 7F016E80 00028400 */ sll $s0, $v0, 0x10 +/* 04B9B4 7F016E84 0010C403 */ sra $t8, $s0, 0x10 +/* 04B9B8 7F016E88 0C00110B */ jal get_video2_settings_txtClipH +/* 04B9BC 7F016E8C 03008025 */ move $s0, $t8 +/* 04B9C0 7F016E90 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04B9C4 7F016E94 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04B9C8 7F016E98 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04B9CC 7F016E9C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04B9D0 7F016EA0 240B00FF */ li $t3, 255 +/* 04B9D4 7F016EA4 AFAB0018 */ sw $t3, 0x18($sp) +/* 04B9D8 7F016EA8 02202025 */ move $a0, $s1 +/* 04B9DC 7F016EAC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B9E0 7F016EB0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B9E4 7F016EB4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B9E8 7F016EB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B9EC 7F016EBC AFA20020 */ sw $v0, 0x20($sp) +/* 04B9F0 7F016EC0 AFA00024 */ sw $zero, 0x24($sp) +/* 04B9F4 7F016EC4 AFA00028 */ sw $zero, 0x28($sp) +/* 04B9F8 7F016EC8 AFAA0014 */ sw $t2, 0x14($sp) +/* 04B9FC 7F016ECC 0FC025D8 */ jal write_text_at_abs_coord +/* 04BA00 7F016ED0 AFB90010 */ sw $t9, 0x10($sp) +/* 04BA04 7F016ED4 8FAC0060 */ lw $t4, 0x60($sp) +/* 04BA08 7F016ED8 2403003C */ li $v1, 60 +/* 04BA0C 7F016EDC 3C058005 */ lui $a1, %hi(a02d02d_0) +/* 04BA10 7F016EE0 0183001A */ div $zero, $t4, $v1 +/* 04BA14 7F016EE4 00003810 */ mfhi $a3 +/* 04BA18 7F016EE8 00003012 */ mflo $a2 +/* 04BA1C 7F016EEC 00408825 */ move $s1, $v0 +/* 04BA20 7F016EF0 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BA24 7F016EF4 24A51824 */ addiu $a1, %lo(a02d02d_0) # addiu $a1, $a1, 0x1824 +/* 04BA28 7F016EF8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BA2C 7F016EFC 14600002 */ bnez $v1, .L7F016F08 +/* 04BA30 7F016F00 00000000 */ nop +/* 04BA34 7F016F04 0007000D */ break 7 +.L7F016F08: +/* 04BA38 7F016F08 2401FFFF */ li $at, -1 +/* 04BA3C 7F016F0C 14610004 */ bne $v1, $at, .L7F016F20 +/* 04BA40 7F016F10 3C018000 */ lui $at, 0x8000 +/* 04BA44 7F016F14 15810002 */ bne $t4, $at, .L7F016F20 +/* 04BA48 7F016F18 00000000 */ nop +/* 04BA4C 7F016F1C 0006000D */ break 6 +.L7F016F20: +/* 04BA50 7F016F20 0C002B25 */ jal sprintf +/* 04BA54 7F016F24 00000000 */ nop +/* 04BA58 7F016F28 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 04BA5C 7F016F2C 240D0082 */ li $t5, 130 +/* 04BA60 7F016F30 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04BA64 7F016F34 25CF00A9 */ addiu $t7, $t6, 0xa9 +/* 04BA68 7F016F38 0C001107 */ jal get_video2_settings_txtClipW +/* 04BA6C 7F016F3C AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04BA70 7F016F40 00028400 */ sll $s0, $v0, 0x10 +/* 04BA74 7F016F44 0010C403 */ sra $t8, $s0, 0x10 +/* 04BA78 7F016F48 0C00110B */ jal get_video2_settings_txtClipH +/* 04BA7C 7F016F4C 03008025 */ move $s0, $t8 +/* 04BA80 7F016F50 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04BA84 7F016F54 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04BA88 7F016F58 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04BA8C 7F016F5C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04BA90 7F016F60 240B00FF */ li $t3, 255 +/* 04BA94 7F016F64 AFAB0018 */ sw $t3, 0x18($sp) +/* 04BA98 7F016F68 02202025 */ move $a0, $s1 +/* 04BA9C 7F016F6C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BAA0 7F016F70 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BAA4 7F016F74 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BAA8 7F016F78 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BAAC 7F016F7C AFA20020 */ sw $v0, 0x20($sp) +/* 04BAB0 7F016F80 AFA00024 */ sw $zero, 0x24($sp) +/* 04BAB4 7F016F84 AFA00028 */ sw $zero, 0x28($sp) +/* 04BAB8 7F016F88 AFAA0014 */ sw $t2, 0x14($sp) +/* 04BABC 7F016F8C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BAC0 7F016F90 AFB90010 */ sw $t9, 0x10($sp) +/* 04BAC4 7F016F94 8FA30064 */ lw $v1, 0x64($sp) +/* 04BAC8 7F016F98 00408825 */ move $s1, $v0 +/* 04BACC 7F016F9C 04600085 */ bltz $v1, .L7F0171B4 +/* 04BAD0 7F016FA0 286103FF */ slti $at, $v1, 0x3ff +/* 04BAD4 7F016FA4 10200083 */ beqz $at, .L7F0171B4 +/* 04BAD8 7F016FA8 00000000 */ nop +/* 04BADC 7F016FAC 0460001A */ bltz $v1, .L7F017018 +/* 04BAE0 7F016FB0 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BAE4 7F016FB4 0FC30776 */ jal get_textptr_for_textID +/* 04BAE8 7F016FB8 34049D11 */ li $a0, 40209 +/* 04BAEC 7F016FBC 8FA30064 */ lw $v1, 0x64($sp) +/* 04BAF0 7F016FC0 2408003C */ li $t0, 60 +/* 04BAF4 7F016FC4 3C058005 */ lui $a1, %hi(aS02d02d) +/* 04BAF8 7F016FC8 0068001A */ div $zero, $v1, $t0 +/* 04BAFC 7F016FCC 00006010 */ mfhi $t4 +/* 04BB00 7F016FD0 00003812 */ mflo $a3 +/* 04BB04 7F016FD4 AFAC0010 */ sw $t4, 0x10($sp) +/* 04BB08 7F016FD8 24A51830 */ addiu $a1, %lo(aS02d02d) # addiu $a1, $a1, 0x1830 +/* 04BB0C 7F016FDC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BB10 7F016FE0 00403025 */ move $a2, $v0 +/* 04BB14 7F016FE4 15000002 */ bnez $t0, .L7F016FF0 +/* 04BB18 7F016FE8 00000000 */ nop +/* 04BB1C 7F016FEC 0007000D */ break 7 +.L7F016FF0: +/* 04BB20 7F016FF0 2401FFFF */ li $at, -1 +/* 04BB24 7F016FF4 15010004 */ bne $t0, $at, .L7F017008 +/* 04BB28 7F016FF8 3C018000 */ lui $at, 0x8000 +/* 04BB2C 7F016FFC 14610002 */ bne $v1, $at, .L7F017008 +/* 04BB30 7F017000 00000000 */ nop +/* 04BB34 7F017004 0006000D */ break 6 +.L7F017008: +/* 04BB38 7F017008 0C002B25 */ jal sprintf +/* 04BB3C 7F01700C 00000000 */ nop +/* 04BB40 7F017010 10000005 */ b .L7F017028 +/* 04BB44 7F017014 00000000 */ nop +.L7F017018: +/* 04BB48 7F017018 3C058005 */ lui $a1, %hi(D_80051848) +/* 04BB4C 7F01701C 24A51848 */ addiu $a1, %lo(D_80051848) # addiu $a1, $a1, 0x1848 +/* 04BB50 7F017020 0C002B25 */ jal sprintf +/* 04BB54 7F017024 27A400A8 */ addiu $a0, $sp, 0xa8 +.L7F017028: +/* 04BB58 7F017028 0C001107 */ jal get_video2_settings_txtClipW +/* 04BB5C 7F01702C 00000000 */ nop +/* 04BB60 7F017030 00028400 */ sll $s0, $v0, 0x10 +/* 04BB64 7F017034 00106C03 */ sra $t5, $s0, 0x10 +/* 04BB68 7F017038 0C00110B */ jal get_video2_settings_txtClipH +/* 04BB6C 7F01703C 01A08025 */ move $s0, $t5 +/* 04BB70 7F017040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04BB74 7F017044 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04BB78 7F017048 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04BB7C 7F01704C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04BB80 7F017050 241800FF */ li $t8, 255 +/* 04BB84 7F017054 AFB80018 */ sw $t8, 0x18($sp) +/* 04BB88 7F017058 02202025 */ move $a0, $s1 +/* 04BB8C 7F01705C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BB90 7F017060 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BB94 7F017064 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BB98 7F017068 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BB9C 7F01706C AFA20020 */ sw $v0, 0x20($sp) +/* 04BBA0 7F017070 AFA00024 */ sw $zero, 0x24($sp) +/* 04BBA4 7F017074 AFA00028 */ sw $zero, 0x28($sp) +/* 04BBA8 7F017078 AFAF0014 */ sw $t7, 0x14($sp) +/* 04BBAC 7F01707C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BBB0 7F017080 AFAE0010 */ sw $t6, 0x10($sp) +/* 04BBB4 7F017084 1000004B */ b .L7F0171B4 +/* 04BBB8 7F017088 00408825 */ move $s1, $v0 +.L7F01708C: +/* 04BBBC 7F01708C 8FA20064 */ lw $v0, 0x64($sp) +.L7F017090: +/* 04BBC0 7F017090 04400048 */ bltz $v0, .L7F0171B4 +/* 04BBC4 7F017094 284103FF */ slti $at, $v0, 0x3ff +/* 04BBC8 7F017098 10200046 */ beqz $at, .L7F0171B4 +/* 04BBCC 7F01709C 00000000 */ nop +/* 04BBD0 7F0170A0 0FC30776 */ jal get_textptr_for_textID +/* 04BBD4 7F0170A4 34049D11 */ li $a0, 40209 +/* 04BBD8 7F0170A8 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04BBDC 7F0170AC 24190037 */ li $t9, 55 +/* 04BBE0 7F0170B0 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BBE4 7F0170B4 254B00A9 */ addiu $t3, $t2, 0xa9 +/* 04BBE8 7F0170B8 AFB90C64 */ sw $t9, 0xc64($sp) +/* 04BBEC 7F0170BC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BBF0 7F0170C0 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BBF4 7F0170C4 00028400 */ sll $s0, $v0, 0x10 +/* 04BBF8 7F0170C8 00106403 */ sra $t4, $s0, 0x10 +/* 04BBFC 7F0170CC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BC00 7F0170D0 01808025 */ move $s0, $t4 +/* 04BC04 7F0170D4 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04BC08 7F0170D8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04BC0C 7F0170DC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04BC10 7F0170E0 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04BC14 7F0170E4 240F00FF */ li $t7, 255 +/* 04BC18 7F0170E8 AFAF0018 */ sw $t7, 0x18($sp) +/* 04BC1C 7F0170EC 02202025 */ move $a0, $s1 +/* 04BC20 7F0170F0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BC24 7F0170F4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BC28 7F0170F8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BC2C 7F0170FC AFB0001C */ sw $s0, 0x1c($sp) +/* 04BC30 7F017100 AFA20020 */ sw $v0, 0x20($sp) +/* 04BC34 7F017104 AFA00024 */ sw $zero, 0x24($sp) +/* 04BC38 7F017108 AFA00028 */ sw $zero, 0x28($sp) +/* 04BC3C 7F01710C AFAE0014 */ sw $t6, 0x14($sp) +/* 04BC40 7F017110 0FC025D8 */ jal write_text_at_abs_coord +/* 04BC44 7F017114 AFAD0010 */ sw $t5, 0x10($sp) +/* 04BC48 7F017118 8FB80064 */ lw $t8, 0x64($sp) +/* 04BC4C 7F01711C 2401003C */ li $at, 60 +/* 04BC50 7F017120 3C058005 */ lui $a1, %hi(a02d02d_1) +/* 04BC54 7F017124 0301001A */ div $zero, $t8, $at +/* 04BC58 7F017128 00003810 */ mfhi $a3 +/* 04BC5C 7F01712C 00003012 */ mflo $a2 +/* 04BC60 7F017130 00408825 */ move $s1, $v0 +/* 04BC64 7F017134 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BC68 7F017138 24A5184C */ addiu $a1, %lo(a02d02d_1) # addiu $a1, $a1, 0x184c +/* 04BC6C 7F01713C 0C002B25 */ jal sprintf +/* 04BC70 7F017140 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BC74 7F017144 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04BC78 7F017148 24190082 */ li $t9, 130 +/* 04BC7C 7F01714C AFB90C64 */ sw $t9, 0xc64($sp) +/* 04BC80 7F017150 254B00A9 */ addiu $t3, $t2, 0xa9 +/* 04BC84 7F017154 0C001107 */ jal get_video2_settings_txtClipW +/* 04BC88 7F017158 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BC8C 7F01715C 00028400 */ sll $s0, $v0, 0x10 +/* 04BC90 7F017160 00106403 */ sra $t4, $s0, 0x10 +/* 04BC94 7F017164 0C00110B */ jal get_video2_settings_txtClipH +/* 04BC98 7F017168 01808025 */ move $s0, $t4 +/* 04BC9C 7F01716C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04BCA0 7F017170 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04BCA4 7F017174 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04BCA8 7F017178 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04BCAC 7F01717C 240F00FF */ li $t7, 255 +/* 04BCB0 7F017180 AFAF0018 */ sw $t7, 0x18($sp) +/* 04BCB4 7F017184 02202025 */ move $a0, $s1 +/* 04BCB8 7F017188 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BCBC 7F01718C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BCC0 7F017190 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BCC4 7F017194 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BCC8 7F017198 AFA20020 */ sw $v0, 0x20($sp) +/* 04BCCC 7F01719C AFA00024 */ sw $zero, 0x24($sp) +/* 04BCD0 7F0171A0 AFA00028 */ sw $zero, 0x28($sp) +/* 04BCD4 7F0171A4 AFAE0014 */ sw $t6, 0x14($sp) +/* 04BCD8 7F0171A8 0FC025D8 */ jal write_text_at_abs_coord +/* 04BCDC 7F0171AC AFAD0010 */ sw $t5, 0x10($sp) +/* 04BCE0 7F0171B0 00408825 */ move $s1, $v0 +.L7F0171B4: +/* 04BCE4 7F0171B4 0FC30776 */ jal get_textptr_for_textID +/* 04BCE8 7F0171B8 34049C6A */ li $a0, 40042 +/* 04BCEC 7F0171BC 24180037 */ li $t8, 55 +/* 04BCF0 7F0171C0 241900CC */ li $t9, 204 +/* 04BCF4 7F0171C4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BCF8 7F0171C8 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04BCFC 7F0171CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BD00 7F0171D0 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04BD04 7F0171D4 00028400 */ sll $s0, $v0, 0x10 +/* 04BD08 7F0171D8 00105403 */ sra $t2, $s0, 0x10 +/* 04BD0C 7F0171DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BD10 7F0171E0 01408025 */ move $s0, $t2 +/* 04BD14 7F0171E4 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04BD18 7F0171E8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04BD1C 7F0171EC 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04BD20 7F0171F0 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04BD24 7F0171F4 240D00FF */ li $t5, 255 +/* 04BD28 7F0171F8 AFAD0018 */ sw $t5, 0x18($sp) +/* 04BD2C 7F0171FC 02202025 */ move $a0, $s1 +/* 04BD30 7F017200 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BD34 7F017204 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BD38 7F017208 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BD3C 7F01720C AFB0001C */ sw $s0, 0x1c($sp) +/* 04BD40 7F017210 AFA20020 */ sw $v0, 0x20($sp) +/* 04BD44 7F017214 AFA00024 */ sw $zero, 0x24($sp) +/* 04BD48 7F017218 AFA00028 */ sw $zero, 0x28($sp) +/* 04BD4C 7F01721C AFAC0014 */ sw $t4, 0x14($sp) +/* 04BD50 7F017220 0FC025D8 */ jal write_text_at_abs_coord +/* 04BD54 7F017224 AFAB0010 */ sw $t3, 0x10($sp) +/* 04BD58 7F017228 8FA30090 */ lw $v1, 0x90($sp) +/* 04BD5C 7F01722C 00408825 */ move $s1, $v0 +/* 04BD60 7F017230 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BD64 7F017234 5860000C */ blezl $v1, .L7F017268 +/* 04BD68 7F017238 44800000 */ mtc1 $zero, $f0 +/* 04BD6C 7F01723C 8FAE0074 */ lw $t6, 0x74($sp) +/* 04BD70 7F017240 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04BD74 7F017244 44814000 */ mtc1 $at, $f8 +/* 04BD78 7F017248 448E2000 */ mtc1 $t6, $f4 +/* 04BD7C 7F01724C 44838000 */ mtc1 $v1, $f16 +/* 04BD80 7F017250 468021A0 */ cvt.s.w $f6, $f4 +/* 04BD84 7F017254 468084A0 */ cvt.s.w $f18, $f16 +/* 04BD88 7F017258 46083282 */ mul.s $f10, $f6, $f8 +/* 04BD8C 7F01725C 10000003 */ b .L7F01726C +/* 04BD90 7F017260 46125003 */ div.s $f0, $f10, $f18 +/* 04BD94 7F017264 44800000 */ mtc1 $zero, $f0 +.L7F017268: +/* 04BD98 7F017268 00000000 */ nop +.L7F01726C: +/* 04BD9C 7F01726C 46000121 */ cvt.d.s $f4, $f0 +/* 04BDA0 7F017270 3C058005 */ lui $a1, %hi(a_1f) +/* 04BDA4 7F017274 44072000 */ mfc1 $a3, $f4 +/* 04BDA8 7F017278 44062800 */ mfc1 $a2, $f5 +/* 04BDAC 7F01727C 0C002B25 */ jal sprintf +/* 04BDB0 7F017280 24A51858 */ addiu $a1, %lo(a_1f) # addiu $a1, $a1, 0x1858 +/* 04BDB4 7F017284 240F0082 */ li $t7, 130 +/* 04BDB8 7F017288 241800CC */ li $t8, 204 +/* 04BDBC 7F01728C AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04BDC0 7F017290 0C001107 */ jal get_video2_settings_txtClipW +/* 04BDC4 7F017294 AFB80C60 */ sw $t8, 0xc60($sp) +/* 04BDC8 7F017298 00028400 */ sll $s0, $v0, 0x10 +/* 04BDCC 7F01729C 0010CC03 */ sra $t9, $s0, 0x10 +/* 04BDD0 7F0172A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04BDD4 7F0172A4 03208025 */ move $s0, $t9 +/* 04BDD8 7F0172A8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04BDDC 7F0172AC 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04BDE0 7F0172B0 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04BDE4 7F0172B4 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04BDE8 7F0172B8 240C00FF */ li $t4, 255 +/* 04BDEC 7F0172BC AFAC0018 */ sw $t4, 0x18($sp) +/* 04BDF0 7F0172C0 02202025 */ move $a0, $s1 +/* 04BDF4 7F0172C4 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BDF8 7F0172C8 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BDFC 7F0172CC 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BE00 7F0172D0 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BE04 7F0172D4 AFA20020 */ sw $v0, 0x20($sp) +/* 04BE08 7F0172D8 AFA00024 */ sw $zero, 0x24($sp) +/* 04BE0C 7F0172DC AFA00028 */ sw $zero, 0x28($sp) +/* 04BE10 7F0172E0 AFAB0014 */ sw $t3, 0x14($sp) +/* 04BE14 7F0172E4 0FC025D8 */ jal write_text_at_abs_coord +/* 04BE18 7F0172E8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04BE1C 7F0172EC 00408825 */ move $s1, $v0 +/* 04BE20 7F0172F0 0FC30776 */ jal get_textptr_for_textID +/* 04BE24 7F0172F4 34049C6B */ li $a0, 40043 +/* 04BE28 7F0172F8 240D0037 */ li $t5, 55 +/* 04BE2C 7F0172FC 240E00DC */ li $t6, 220 +/* 04BE30 7F017300 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BE34 7F017304 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04BE38 7F017308 0C001107 */ jal get_video2_settings_txtClipW +/* 04BE3C 7F01730C AFAE0C60 */ sw $t6, 0xc60($sp) +/* 04BE40 7F017310 00028400 */ sll $s0, $v0, 0x10 +/* 04BE44 7F017314 00107C03 */ sra $t7, $s0, 0x10 +/* 04BE48 7F017318 0C00110B */ jal get_video2_settings_txtClipH +/* 04BE4C 7F01731C 01E08025 */ move $s0, $t7 +/* 04BE50 7F017320 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04BE54 7F017324 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04BE58 7F017328 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04BE5C 7F01732C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04BE60 7F017330 240A00FF */ li $t2, 255 +/* 04BE64 7F017334 AFAA0018 */ sw $t2, 0x18($sp) +/* 04BE68 7F017338 02202025 */ move $a0, $s1 +/* 04BE6C 7F01733C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BE70 7F017340 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BE74 7F017344 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BE78 7F017348 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BE7C 7F01734C AFA20020 */ sw $v0, 0x20($sp) +/* 04BE80 7F017350 AFA00024 */ sw $zero, 0x24($sp) +/* 04BE84 7F017354 AFA00028 */ sw $zero, 0x28($sp) +/* 04BE88 7F017358 AFB90014 */ sw $t9, 0x14($sp) +/* 04BE8C 7F01735C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BE90 7F017360 AFB80010 */ sw $t8, 0x10($sp) +/* 04BE94 7F017364 00408825 */ move $s1, $v0 +/* 04BE98 7F017368 00002025 */ move $a0, $zero +/* 04BE9C 7F01736C 0FC026D4 */ jal getplayerfavoredweapon +/* 04BEA0 7F017370 00002825 */ move $a1, $zero +/* 04BEA4 7F017374 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BEA8 7F017378 0C0029DC */ jal textpointer_load_parse_something +/* 04BEAC 7F01737C 00402825 */ move $a1, $v0 +/* 04BEB0 7F017380 3C048007 */ lui $a0, %hi(array_favweapon) +/* 04BEB4 7F017384 248496F0 */ addiu $a0, %lo(array_favweapon) # addiu $a0, $a0, -0x6910 +/* 04BEB8 7F017388 8C830000 */ lw $v1, ($a0) +/* 04BEBC 7F01738C 5860000D */ blezl $v1, .L7F0173C4 +/* 04BEC0 7F017390 240E00BE */ li $t6, 190 +/* 04BEC4 7F017394 8C8B0004 */ lw $t3, 4($a0) +/* 04BEC8 7F017398 5563000A */ bnel $t3, $v1, .L7F0173C4 +/* 04BECC 7F01739C 240E00BE */ li $t6, 190 +/* 04BED0 7F0173A0 0C004E1F */ jal strlen +/* 04BED4 7F0173A4 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BED8 7F0173A8 244CFFFF */ addiu $t4, $v0, -1 +/* 04BEDC 7F0173AC 27AD00A8 */ addiu $t5, $sp, 0xa8 +/* 04BEE0 7F0173B0 3C058005 */ lui $a1, %hi(aX2) +/* 04BEE4 7F0173B4 24A51860 */ addiu $a1, %lo(aX2) # addiu $a1, $a1, 0x1860 +/* 04BEE8 7F0173B8 0C002B25 */ jal sprintf +/* 04BEEC 7F0173BC 018D2021 */ addu $a0, $t4, $t5 +/* 04BEF0 7F0173C0 240E00BE */ li $t6, 190 +.L7F0173C4: +/* 04BEF4 7F0173C4 240F00DC */ li $t7, 220 +/* 04BEF8 7F0173C8 AFAE0C64 */ sw $t6, 0xc64($sp) +/* 04BEFC 7F0173CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BF00 7F0173D0 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04BF04 7F0173D4 00028400 */ sll $s0, $v0, 0x10 +/* 04BF08 7F0173D8 0010C403 */ sra $t8, $s0, 0x10 +/* 04BF0C 7F0173DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF10 7F0173E0 03008025 */ move $s0, $t8 +/* 04BF14 7F0173E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04BF18 7F0173E8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04BF1C 7F0173EC 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04BF20 7F0173F0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04BF24 7F0173F4 240B00FF */ li $t3, 255 +/* 04BF28 7F0173F8 AFAB0018 */ sw $t3, 0x18($sp) +/* 04BF2C 7F0173FC 02202025 */ move $a0, $s1 +/* 04BF30 7F017400 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BF34 7F017404 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BF38 7F017408 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BF3C 7F01740C AFB0001C */ sw $s0, 0x1c($sp) +/* 04BF40 7F017410 AFA20020 */ sw $v0, 0x20($sp) +/* 04BF44 7F017414 AFA00024 */ sw $zero, 0x24($sp) +/* 04BF48 7F017418 AFA00028 */ sw $zero, 0x28($sp) +/* 04BF4C 7F01741C AFAA0014 */ sw $t2, 0x14($sp) +/* 04BF50 7F017420 0FC025D8 */ jal write_text_at_abs_coord +/* 04BF54 7F017424 AFB90010 */ sw $t9, 0x10($sp) +/* 04BF58 7F017428 00408825 */ move $s1, $v0 +/* 04BF5C 7F01742C 0FC30776 */ jal get_textptr_for_textID +/* 04BF60 7F017430 34049C6C */ li $a0, 40044 +/* 04BF64 7F017434 240C0037 */ li $t4, 55 +/* 04BF68 7F017438 240D00F4 */ li $t5, 244 +/* 04BF6C 7F01743C AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BF70 7F017440 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04BF74 7F017444 0C001107 */ jal get_video2_settings_txtClipW +/* 04BF78 7F017448 AFAD0C60 */ sw $t5, 0xc60($sp) +/* 04BF7C 7F01744C 00028400 */ sll $s0, $v0, 0x10 +/* 04BF80 7F017450 00107403 */ sra $t6, $s0, 0x10 +/* 04BF84 7F017454 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF88 7F017458 01C08025 */ move $s0, $t6 +/* 04BF8C 7F01745C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 04BF90 7F017460 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04BF94 7F017464 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04BF98 7F017468 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04BF9C 7F01746C 241900FF */ li $t9, 255 +/* 04BFA0 7F017470 AFB90018 */ sw $t9, 0x18($sp) +/* 04BFA4 7F017474 02202025 */ move $a0, $s1 +/* 04BFA8 7F017478 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BFAC 7F01747C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BFB0 7F017480 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BFB4 7F017484 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BFB8 7F017488 AFA20020 */ sw $v0, 0x20($sp) +/* 04BFBC 7F01748C AFA00024 */ sw $zero, 0x24($sp) +/* 04BFC0 7F017490 AFA00028 */ sw $zero, 0x28($sp) +/* 04BFC4 7F017494 AFB80014 */ sw $t8, 0x14($sp) +/* 04BFC8 7F017498 0FC025D8 */ jal write_text_at_abs_coord +/* 04BFCC 7F01749C AFAF0010 */ sw $t7, 0x10($sp) +/* 04BFD0 7F0174A0 3C058005 */ lui $a1, %hi(aD_8) +/* 04BFD4 7F0174A4 00408825 */ move $s1, $v0 +/* 04BFD8 7F0174A8 24A51868 */ addiu $a1, %lo(aD_8) # addiu $a1, $a1, 0x1868 +/* 04BFDC 7F0174AC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BFE0 7F0174B0 0C002B25 */ jal sprintf +/* 04BFE4 7F0174B4 8FA60090 */ lw $a2, 0x90($sp) +/* 04BFE8 7F0174B8 240A0082 */ li $t2, 130 +/* 04BFEC 7F0174BC 240B00F4 */ li $t3, 244 +/* 04BFF0 7F0174C0 AFAA0C64 */ sw $t2, 0xc64($sp) +/* 04BFF4 7F0174C4 0C001107 */ jal get_video2_settings_txtClipW +/* 04BFF8 7F0174C8 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BFFC 7F0174CC 00028400 */ sll $s0, $v0, 0x10 +/* 04C000 7F0174D0 00106403 */ sra $t4, $s0, 0x10 +/* 04C004 7F0174D4 0C00110B */ jal get_video2_settings_txtClipH +/* 04C008 7F0174D8 01808025 */ move $s0, $t4 +/* 04C00C 7F0174DC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04C010 7F0174E0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04C014 7F0174E4 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04C018 7F0174E8 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04C01C 7F0174EC 240F00FF */ li $t7, 255 +/* 04C020 7F0174F0 AFAF0018 */ sw $t7, 0x18($sp) +/* 04C024 7F0174F4 02202025 */ move $a0, $s1 +/* 04C028 7F0174F8 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C02C 7F0174FC 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C030 7F017500 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C034 7F017504 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C038 7F017508 AFA20020 */ sw $v0, 0x20($sp) +/* 04C03C 7F01750C AFA00024 */ sw $zero, 0x24($sp) +/* 04C040 7F017510 AFA00028 */ sw $zero, 0x28($sp) +/* 04C044 7F017514 AFAE0014 */ sw $t6, 0x14($sp) +/* 04C048 7F017518 0FC025D8 */ jal write_text_at_abs_coord +/* 04C04C 7F01751C AFAD0010 */ sw $t5, 0x10($sp) +/* 04C050 7F017520 00408825 */ move $s1, $v0 +/* 04C054 7F017524 0FC30776 */ jal get_textptr_for_textID +/* 04C058 7F017528 34049C6D */ li $a0, 40045 +/* 04C05C 7F01752C 241800B4 */ li $t8, 180 +/* 04C060 7F017530 241900F4 */ li $t9, 244 +/* 04C064 7F017534 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C068 7F017538 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04C06C 7F01753C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C070 7F017540 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04C074 7F017544 00028400 */ sll $s0, $v0, 0x10 +/* 04C078 7F017548 00105403 */ sra $t2, $s0, 0x10 +/* 04C07C 7F01754C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C080 7F017550 01408025 */ move $s0, $t2 +/* 04C084 7F017554 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04C088 7F017558 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04C08C 7F01755C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04C090 7F017560 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04C094 7F017564 240D00FF */ li $t5, 255 +/* 04C098 7F017568 AFAD0018 */ sw $t5, 0x18($sp) +/* 04C09C 7F01756C 02202025 */ move $a0, $s1 +/* 04C0A0 7F017570 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C0A4 7F017574 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C0A8 7F017578 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C0AC 7F01757C AFB0001C */ sw $s0, 0x1c($sp) +/* 04C0B0 7F017580 AFA20020 */ sw $v0, 0x20($sp) +/* 04C0B4 7F017584 AFA00024 */ sw $zero, 0x24($sp) +/* 04C0B8 7F017588 AFA00028 */ sw $zero, 0x28($sp) +/* 04C0BC 7F01758C AFAC0014 */ sw $t4, 0x14($sp) +/* 04C0C0 7F017590 0FC025D8 */ jal write_text_at_abs_coord +/* 04C0C4 7F017594 AFAB0010 */ sw $t3, 0x10($sp) +/* 04C0C8 7F017598 8FAF008C */ lw $t7, 0x8c($sp) +/* 04C0CC 7F01759C 8FAE0070 */ lw $t6, 0x70($sp) +/* 04C0D0 7F0175A0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C0D4 7F0175A4 448F4000 */ mtc1 $t7, $f8 +/* 04C0D8 7F0175A8 44815000 */ mtc1 $at, $f10 +/* 04C0DC 7F0175AC 448E3000 */ mtc1 $t6, $f6 +/* 04C0E0 7F0175B0 46804420 */ cvt.s.w $f16, $f8 +/* 04C0E4 7F0175B4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C0E8 7F0175B8 00408825 */ move $s1, $v0 +/* 04C0EC 7F0175BC 46803020 */ cvt.s.w $f0, $f6 +/* 04C0F0 7F0175C0 460A8482 */ mul.s $f18, $f16, $f10 +/* 04C0F4 7F0175C4 44813000 */ mtc1 $at, $f6 +/* 04C0F8 7F0175C8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 04C0FC 7F0175CC 46009103 */ div.s $f4, $f18, $f0 +/* 04C100 7F0175D0 0FC170D8 */ jal truncf +/* 04C104 7F0175D4 46062300 */ add.s $f12, $f4, $f6 +/* 04C108 7F0175D8 4600020D */ trunc.w.s $f8, $f0 +/* 04C10C 7F0175DC 3C058005 */ lui $a1, %hi(aDD_0) +/* 04C110 7F0175E0 24A5186C */ addiu $a1, %lo(aDD_0) # addiu $a1, $a1, 0x186c +/* 04C114 7F0175E4 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C118 7F0175E8 44074000 */ mfc1 $a3, $f8 +/* 04C11C 7F0175EC 0C002B25 */ jal sprintf +/* 04C120 7F0175F0 8FA6008C */ lw $a2, 0x8c($sp) +/* 04C124 7F0175F4 2419012C */ li $t9, 300 +/* 04C128 7F0175F8 240A00F4 */ li $t2, 244 +/* 04C12C 7F0175FC AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C130 7F017600 0C001107 */ jal get_video2_settings_txtClipW +/* 04C134 7F017604 AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C138 7F017608 00028400 */ sll $s0, $v0, 0x10 +/* 04C13C 7F01760C 00105C03 */ sra $t3, $s0, 0x10 +/* 04C140 7F017610 0C00110B */ jal get_video2_settings_txtClipH +/* 04C144 7F017614 01608025 */ move $s0, $t3 +/* 04C148 7F017618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C14C 7F01761C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C150 7F017620 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C154 7F017624 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C158 7F017628 240E00FF */ li $t6, 255 +/* 04C15C 7F01762C AFAE0018 */ sw $t6, 0x18($sp) +/* 04C160 7F017630 02202025 */ move $a0, $s1 +/* 04C164 7F017634 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C168 7F017638 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C16C 7F01763C 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C170 7F017640 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C174 7F017644 AFA20020 */ sw $v0, 0x20($sp) +/* 04C178 7F017648 AFA00024 */ sw $zero, 0x24($sp) +/* 04C17C 7F01764C AFA00028 */ sw $zero, 0x28($sp) +/* 04C180 7F017650 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C184 7F017654 0FC025D8 */ jal write_text_at_abs_coord +/* 04C188 7F017658 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C18C 7F01765C 00408825 */ move $s1, $v0 +/* 04C190 7F017660 0FC30776 */ jal get_textptr_for_textID +/* 04C194 7F017664 34049C6E */ li $a0, 40046 +/* 04C198 7F017668 8FB800A0 */ lw $t8, 0xa0($sp) +/* 04C19C 7F01766C 240F00B4 */ li $t7, 180 +/* 04C1A0 7F017670 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C1A4 7F017674 271900F4 */ addiu $t9, $t8, 0xf4 +/* 04C1A8 7F017678 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04C1AC 7F01767C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C1B0 7F017680 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04C1B4 7F017684 00028400 */ sll $s0, $v0, 0x10 +/* 04C1B8 7F017688 00105403 */ sra $t2, $s0, 0x10 +/* 04C1BC 7F01768C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C1C0 7F017690 01408025 */ move $s0, $t2 +/* 04C1C4 7F017694 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04C1C8 7F017698 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04C1CC 7F01769C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04C1D0 7F0176A0 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04C1D4 7F0176A4 240D00FF */ li $t5, 255 +/* 04C1D8 7F0176A8 AFAD0018 */ sw $t5, 0x18($sp) +/* 04C1DC 7F0176AC 02202025 */ move $a0, $s1 +/* 04C1E0 7F0176B0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C1E4 7F0176B4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C1E8 7F0176B8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C1EC 7F0176BC AFB0001C */ sw $s0, 0x1c($sp) +/* 04C1F0 7F0176C0 AFA20020 */ sw $v0, 0x20($sp) +/* 04C1F4 7F0176C4 AFA00024 */ sw $zero, 0x24($sp) +/* 04C1F8 7F0176C8 AFA00028 */ sw $zero, 0x28($sp) +/* 04C1FC 7F0176CC AFAC0014 */ sw $t4, 0x14($sp) +/* 04C200 7F0176D0 0FC025D8 */ jal write_text_at_abs_coord +/* 04C204 7F0176D4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04C208 7F0176D8 8FAE0088 */ lw $t6, 0x88($sp) +/* 04C20C 7F0176DC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C210 7F0176E0 44819000 */ mtc1 $at, $f18 +/* 04C214 7F0176E4 448E8000 */ mtc1 $t6, $f16 +/* 04C218 7F0176E8 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 04C21C 7F0176EC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C220 7F0176F0 468082A0 */ cvt.s.w $f10, $f16 +/* 04C224 7F0176F4 44818000 */ mtc1 $at, $f16 +/* 04C228 7F0176F8 00408825 */ move $s1, $v0 +/* 04C22C 7F0176FC 46125102 */ mul.s $f4, $f10, $f18 +/* 04C230 7F017700 46062203 */ div.s $f8, $f4, $f6 +/* 04C234 7F017704 0FC170D8 */ jal truncf +/* 04C238 7F017708 46104300 */ add.s $f12, $f8, $f16 +/* 04C23C 7F01770C 4600028D */ trunc.w.s $f10, $f0 +/* 04C240 7F017710 3C058005 */ lui $a1, %hi(aDD_1) +/* 04C244 7F017714 24A51878 */ addiu $a1, %lo(aDD_1) # addiu $a1, $a1, 0x1878 +/* 04C248 7F017718 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C24C 7F01771C 44075000 */ mfc1 $a3, $f10 +/* 04C250 7F017720 0C002B25 */ jal sprintf +/* 04C254 7F017724 8FA60088 */ lw $a2, 0x88($sp) +/* 04C258 7F017728 8FB900A0 */ lw $t9, 0xa0($sp) +/* 04C25C 7F01772C 2418012C */ li $t8, 300 +/* 04C260 7F017730 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04C264 7F017734 272A00F4 */ addiu $t2, $t9, 0xf4 +/* 04C268 7F017738 0C001107 */ jal get_video2_settings_txtClipW +/* 04C26C 7F01773C AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C270 7F017740 00028400 */ sll $s0, $v0, 0x10 +/* 04C274 7F017744 00105C03 */ sra $t3, $s0, 0x10 +/* 04C278 7F017748 0C00110B */ jal get_video2_settings_txtClipH +/* 04C27C 7F01774C 01608025 */ move $s0, $t3 +/* 04C280 7F017750 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C284 7F017754 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C288 7F017758 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C28C 7F01775C 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C290 7F017760 240E00FF */ li $t6, 255 +/* 04C294 7F017764 AFAE0018 */ sw $t6, 0x18($sp) +/* 04C298 7F017768 02202025 */ move $a0, $s1 +/* 04C29C 7F01776C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C2A0 7F017770 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C2A4 7F017774 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C2A8 7F017778 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C2AC 7F01777C AFA20020 */ sw $v0, 0x20($sp) +/* 04C2B0 7F017780 AFA00024 */ sw $zero, 0x24($sp) +/* 04C2B4 7F017784 AFA00028 */ sw $zero, 0x28($sp) +/* 04C2B8 7F017788 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C2BC 7F01778C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C2C0 7F017790 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C2C4 7F017794 00408825 */ move $s1, $v0 +/* 04C2C8 7F017798 0FC30776 */ jal get_textptr_for_textID +/* 04C2CC 7F01779C 34049C6F */ li $a0, 40047 +/* 04C2D0 7F0177A0 8FB800A0 */ lw $t8, 0xa0($sp) +/* 04C2D4 7F0177A4 240F00B4 */ li $t7, 180 +/* 04C2D8 7F0177A8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C2DC 7F0177AC 0018C840 */ sll $t9, $t8, 1 +/* 04C2E0 7F0177B0 272A00F4 */ addiu $t2, $t9, 0xf4 +/* 04C2E4 7F0177B4 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04C2E8 7F0177B8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C2EC 7F0177BC AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C2F0 7F0177C0 00028400 */ sll $s0, $v0, 0x10 +/* 04C2F4 7F0177C4 00105C03 */ sra $t3, $s0, 0x10 +/* 04C2F8 7F0177C8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C2FC 7F0177CC 01608025 */ move $s0, $t3 +/* 04C300 7F0177D0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C304 7F0177D4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C308 7F0177D8 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C30C 7F0177DC 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C310 7F0177E0 240E00FF */ li $t6, 255 +/* 04C314 7F0177E4 AFAE0018 */ sw $t6, 0x18($sp) +/* 04C318 7F0177E8 02202025 */ move $a0, $s1 +/* 04C31C 7F0177EC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C320 7F0177F0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C324 7F0177F4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C328 7F0177F8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C32C 7F0177FC AFA20020 */ sw $v0, 0x20($sp) +/* 04C330 7F017800 AFA00024 */ sw $zero, 0x24($sp) +/* 04C334 7F017804 AFA00028 */ sw $zero, 0x28($sp) +/* 04C338 7F017808 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C33C 7F01780C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C340 7F017810 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C344 7F017814 8FAF0084 */ lw $t7, 0x84($sp) +/* 04C348 7F017818 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C34C 7F01781C 44813000 */ mtc1 $at, $f6 +/* 04C350 7F017820 448F9000 */ mtc1 $t7, $f18 +/* 04C354 7F017824 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 04C358 7F017828 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C35C 7F01782C 46809120 */ cvt.s.w $f4, $f18 +/* 04C360 7F017830 44819000 */ mtc1 $at, $f18 +/* 04C364 7F017834 00408825 */ move $s1, $v0 +/* 04C368 7F017838 46062202 */ mul.s $f8, $f4, $f6 +/* 04C36C 7F01783C 46104283 */ div.s $f10, $f8, $f16 +/* 04C370 7F017840 0FC170D8 */ jal truncf +/* 04C374 7F017844 46125300 */ add.s $f12, $f10, $f18 +/* 04C378 7F017848 4600010D */ trunc.w.s $f4, $f0 +/* 04C37C 7F01784C 3C058005 */ lui $a1, %hi(aDD_2) +/* 04C380 7F017850 24A51884 */ addiu $a1, %lo(aDD_2) # addiu $a1, $a1, 0x1884 +/* 04C384 7F017854 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C388 7F017858 44072000 */ mfc1 $a3, $f4 +/* 04C38C 7F01785C 0C002B25 */ jal sprintf +/* 04C390 7F017860 8FA60084 */ lw $a2, 0x84($sp) +/* 04C394 7F017864 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04C398 7F017868 2419012C */ li $t9, 300 +/* 04C39C 7F01786C AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C3A0 7F017870 000A5840 */ sll $t3, $t2, 1 +/* 04C3A4 7F017874 256C00F4 */ addiu $t4, $t3, 0xf4 +/* 04C3A8 7F017878 0C001107 */ jal get_video2_settings_txtClipW +/* 04C3AC 7F01787C AFAC0C60 */ sw $t4, 0xc60($sp) +/* 04C3B0 7F017880 00028400 */ sll $s0, $v0, 0x10 +/* 04C3B4 7F017884 00106C03 */ sra $t5, $s0, 0x10 +/* 04C3B8 7F017888 0C00110B */ jal get_video2_settings_txtClipH +/* 04C3BC 7F01788C 01A08025 */ move $s0, $t5 +/* 04C3C0 7F017890 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04C3C4 7F017894 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04C3C8 7F017898 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04C3CC 7F01789C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04C3D0 7F0178A0 241800FF */ li $t8, 255 +/* 04C3D4 7F0178A4 AFB80018 */ sw $t8, 0x18($sp) +/* 04C3D8 7F0178A8 02202025 */ move $a0, $s1 +/* 04C3DC 7F0178AC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C3E0 7F0178B0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C3E4 7F0178B4 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C3E8 7F0178B8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C3EC 7F0178BC AFA20020 */ sw $v0, 0x20($sp) +/* 04C3F0 7F0178C0 AFA00024 */ sw $zero, 0x24($sp) +/* 04C3F4 7F0178C4 AFA00028 */ sw $zero, 0x28($sp) +/* 04C3F8 7F0178C8 AFAF0014 */ sw $t7, 0x14($sp) +/* 04C3FC 7F0178CC 0FC025D8 */ jal write_text_at_abs_coord +/* 04C400 7F0178D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 04C404 7F0178D4 00408825 */ move $s1, $v0 +/* 04C408 7F0178D8 0FC30776 */ jal get_textptr_for_textID +/* 04C40C 7F0178DC 34049C70 */ li $a0, 40048 +/* 04C410 7F0178E0 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04C414 7F0178E4 241900B4 */ li $t9, 180 +/* 04C418 7F0178E8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C41C 7F0178EC 000A5880 */ sll $t3, $t2, 2 +/* 04C420 7F0178F0 016A5823 */ subu $t3, $t3, $t2 +/* 04C424 7F0178F4 256C00F4 */ addiu $t4, $t3, 0xf4 +/* 04C428 7F0178F8 AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C42C 7F0178FC 0C001107 */ jal get_video2_settings_txtClipW +/* 04C430 7F017900 AFAC0C60 */ sw $t4, 0xc60($sp) +/* 04C434 7F017904 00028400 */ sll $s0, $v0, 0x10 +/* 04C438 7F017908 00106C03 */ sra $t5, $s0, 0x10 +/* 04C43C 7F01790C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C440 7F017910 01A08025 */ move $s0, $t5 +/* 04C444 7F017914 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04C448 7F017918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04C44C 7F01791C 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04C450 7F017920 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04C454 7F017924 241800FF */ li $t8, 255 +/* 04C458 7F017928 AFB80018 */ sw $t8, 0x18($sp) +/* 04C45C 7F01792C 02202025 */ move $a0, $s1 +/* 04C460 7F017930 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C464 7F017934 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C468 7F017938 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C46C 7F01793C AFB0001C */ sw $s0, 0x1c($sp) +/* 04C470 7F017940 AFA20020 */ sw $v0, 0x20($sp) +/* 04C474 7F017944 AFA00024 */ sw $zero, 0x24($sp) +/* 04C478 7F017948 AFA00028 */ sw $zero, 0x28($sp) +/* 04C47C 7F01794C AFAF0014 */ sw $t7, 0x14($sp) +/* 04C480 7F017950 0FC025D8 */ jal write_text_at_abs_coord +/* 04C484 7F017954 AFAE0010 */ sw $t6, 0x10($sp) +/* 04C488 7F017958 8FB9007C */ lw $t9, 0x7c($sp) +/* 04C48C 7F01795C 8FAA0080 */ lw $t2, 0x80($sp) +/* 04C490 7F017960 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C494 7F017964 44818000 */ mtc1 $at, $f16 +/* 04C498 7F017968 032A8021 */ addu $s0, $t9, $t2 +/* 04C49C 7F01796C 44903000 */ mtc1 $s0, $f6 +/* 04C4A0 7F017970 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 04C4A4 7F017974 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C4A8 7F017978 46803220 */ cvt.s.w $f8, $f6 +/* 04C4AC 7F01797C 44813000 */ mtc1 $at, $f6 +/* 04C4B0 7F017980 00408825 */ move $s1, $v0 +/* 04C4B4 7F017984 46104282 */ mul.s $f10, $f8, $f16 +/* 04C4B8 7F017988 46125103 */ div.s $f4, $f10, $f18 +/* 04C4BC 7F01798C 0FC170D8 */ jal truncf +/* 04C4C0 7F017990 46062300 */ add.s $f12, $f4, $f6 +/* 04C4C4 7F017994 4600020D */ trunc.w.s $f8, $f0 +/* 04C4C8 7F017998 3C058005 */ lui $a1, %hi(aDD_3) +/* 04C4CC 7F01799C 24A51890 */ addiu $a1, %lo(aDD_3) # addiu $a1, $a1, 0x1890 +/* 04C4D0 7F0179A0 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C4D4 7F0179A4 44074000 */ mfc1 $a3, $f8 +/* 04C4D8 7F0179A8 0C002B25 */ jal sprintf +/* 04C4DC 7F0179AC 02003025 */ move $a2, $s0 +/* 04C4E0 7F0179B0 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 04C4E4 7F0179B4 240C012C */ li $t4, 300 +/* 04C4E8 7F0179B8 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04C4EC 7F0179BC 000D7080 */ sll $t6, $t5, 2 +/* 04C4F0 7F0179C0 01CD7023 */ subu $t6, $t6, $t5 +/* 04C4F4 7F0179C4 25CF00F4 */ addiu $t7, $t6, 0xf4 +/* 04C4F8 7F0179C8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C4FC 7F0179CC AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04C500 7F0179D0 00028400 */ sll $s0, $v0, 0x10 +/* 04C504 7F0179D4 0010C403 */ sra $t8, $s0, 0x10 +/* 04C508 7F0179D8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C50C 7F0179DC 03008025 */ move $s0, $t8 +/* 04C510 7F0179E0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04C514 7F0179E4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04C518 7F0179E8 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04C51C 7F0179EC 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04C520 7F0179F0 240B00FF */ li $t3, 255 +/* 04C524 7F0179F4 AFAB0018 */ sw $t3, 0x18($sp) +/* 04C528 7F0179F8 02202025 */ move $a0, $s1 +/* 04C52C 7F0179FC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C530 7F017A00 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C534 7F017A04 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C538 7F017A08 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C53C 7F017A0C AFA20020 */ sw $v0, 0x20($sp) +/* 04C540 7F017A10 AFA00024 */ sw $zero, 0x24($sp) +/* 04C544 7F017A14 AFA00028 */ sw $zero, 0x28($sp) +/* 04C548 7F017A18 AFAA0014 */ sw $t2, 0x14($sp) +/* 04C54C 7F017A1C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C550 7F017A20 AFB90010 */ sw $t9, 0x10($sp) +/* 04C554 7F017A24 00408825 */ move $s1, $v0 +/* 04C558 7F017A28 0FC30776 */ jal get_textptr_for_textID +/* 04C55C 7F017A2C 34049C71 */ li $a0, 40049 +/* 04C560 7F017A30 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 04C564 7F017A34 240C0037 */ li $t4, 55 +/* 04C568 7F017A38 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C56C 7F017A3C 25AE00F4 */ addiu $t6, $t5, 0xf4 +/* 04C570 7F017A40 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04C574 7F017A44 0C001107 */ jal get_video2_settings_txtClipW +/* 04C578 7F017A48 AFAE0C60 */ sw $t6, 0xc60($sp) +/* 04C57C 7F017A4C 00028400 */ sll $s0, $v0, 0x10 +/* 04C580 7F017A50 00107C03 */ sra $t7, $s0, 0x10 +/* 04C584 7F017A54 0C00110B */ jal get_video2_settings_txtClipH +/* 04C588 7F017A58 01E08025 */ move $s0, $t7 +/* 04C58C 7F017A5C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04C590 7F017A60 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04C594 7F017A64 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04C598 7F017A68 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04C59C 7F017A6C 240A00FF */ li $t2, 255 +/* 04C5A0 7F017A70 AFAA0018 */ sw $t2, 0x18($sp) +/* 04C5A4 7F017A74 02202025 */ move $a0, $s1 +/* 04C5A8 7F017A78 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C5AC 7F017A7C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C5B0 7F017A80 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C5B4 7F017A84 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C5B8 7F017A88 AFA20020 */ sw $v0, 0x20($sp) +/* 04C5BC 7F017A8C AFA00024 */ sw $zero, 0x24($sp) +/* 04C5C0 7F017A90 AFA00028 */ sw $zero, 0x28($sp) +/* 04C5C4 7F017A94 AFB90014 */ sw $t9, 0x14($sp) +/* 04C5C8 7F017A98 0FC025D8 */ jal write_text_at_abs_coord +/* 04C5CC 7F017A9C AFB80010 */ sw $t8, 0x10($sp) +/* 04C5D0 7F017AA0 3C058005 */ lui $a1, %hi(aD_10) +/* 04C5D4 7F017AA4 00408825 */ move $s1, $v0 +/* 04C5D8 7F017AA8 24A5189C */ addiu $a1, %lo(aD_10) # addiu $a1, $a1, 0x189c +/* 04C5DC 7F017AAC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C5E0 7F017AB0 0C002B25 */ jal sprintf +/* 04C5E4 7F017AB4 8FA60094 */ lw $a2, 0x94($sp) +/* 04C5E8 7F017AB8 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 04C5EC 7F017ABC 240B0082 */ li $t3, 130 +/* 04C5F0 7F017AC0 AFAB0C64 */ sw $t3, 0xc64($sp) +/* 04C5F4 7F017AC4 258D00F4 */ addiu $t5, $t4, 0xf4 +/* 04C5F8 7F017AC8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C5FC 7F017ACC AFAD0C60 */ sw $t5, 0xc60($sp) +/* 04C600 7F017AD0 00028400 */ sll $s0, $v0, 0x10 +/* 04C604 7F017AD4 00107403 */ sra $t6, $s0, 0x10 +/* 04C608 7F017AD8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C60C 7F017ADC 01C08025 */ move $s0, $t6 +/* 04C610 7F017AE0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 04C614 7F017AE4 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04C618 7F017AE8 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04C61C 7F017AEC 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04C620 7F017AF0 241900FF */ li $t9, 255 +/* 04C624 7F017AF4 AFB90018 */ sw $t9, 0x18($sp) +/* 04C628 7F017AF8 02202025 */ move $a0, $s1 +/* 04C62C 7F017AFC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C630 7F017B00 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C634 7F017B04 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C638 7F017B08 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C63C 7F017B0C AFA20020 */ sw $v0, 0x20($sp) +/* 04C640 7F017B10 AFA00024 */ sw $zero, 0x24($sp) +/* 04C644 7F017B14 AFA00028 */ sw $zero, 0x28($sp) +/* 04C648 7F017B18 AFB80014 */ sw $t8, 0x14($sp) +/* 04C64C 7F017B1C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C650 7F017B20 AFAF0010 */ sw $t7, 0x10($sp) +/* 04C654 7F017B24 0FC02905 */ jal add_tab2_next +/* 04C658 7F017B28 00402025 */ move $a0, $v0 +/* 04C65C 7F017B2C 0FC0288E */ jal add_tab3_previous +/* 04C660 7F017B30 00402025 */ move $a0, $v0 +/* 04C664 7F017B34 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04C668 7F017B38 00402025 */ move $a0, $v0 +/* 04C66C 7F017B3C 8FBF003C */ lw $ra, 0x3c($sp) +/* 04C670 7F017B40 8FB00034 */ lw $s0, 0x34($sp) +/* 04C674 7F017B44 8FB10038 */ lw $s1, 0x38($sp) +/* 04C678 7F017B48 03E00008 */ jr $ra +/* 04C67C 7F017B4C 27BD0C68 */ addiu $sp, $sp, 0xc68 +) +#endif + + + +#ifdef NONMATCHING +void init_menu15_cheat(void) + +{ + int iVar1; + undefined1 *puVar2; + + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + dword_8002B5DC = NULL; + puVar2 = cheat_available; + iVar1 = 1; + do { + if (*puVar2 != '\0') { + (&DAT_800697f0)[(int)dword_8002B5DC] = iVar1; + dword_8002B5DC = dword_8002B5DC + 1; + } + iVar1 += 1; + puVar2 = puVar2 + 1; + } while (iVar1 != 0x4b); + load_walletbond(); + return; +} +#else +GLOBAL_ASM( +.text +glabel init_menu15_cheat +/* 04C680 7F017B50 3C018003 */ lui $at, %hi(tab_1_selected) +/* 04C684 7F017B54 AC20A8D0 */ sw $zero, %lo(tab_1_selected)($at) +/* 04C688 7F017B58 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04C68C 7F017B5C AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) +/* 04C690 7F017B60 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C694 7F017B64 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) +/* 04C698 7F017B68 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C69C 7F017B6C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04C6A0 7F017B70 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04C6A4 7F017B74 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04C6A8 7F017B78 3C058003 */ lui $a1, %hi(D_8002B5DC) +/* 04C6AC 7F017B7C 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04C6B0 7F017B80 24A5B5DC */ addiu $a1, %lo(D_8002B5DC) # addiu $a1, $a1, -0x4a24 +/* 04C6B4 7F017B84 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04C6B8 7F017B88 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04C6BC 7F017B8C 3C048007 */ lui $a0, %hi(cheat_available) +/* 04C6C0 7F017B90 3C068007 */ lui $a2, %hi(dword_CODE_bss_800697F0) +/* 04C6C4 7F017B94 AFBF0014 */ sw $ra, 0x14($sp) +/* 04C6C8 7F017B98 ACA00000 */ sw $zero, ($a1) +/* 04C6CC 7F017B9C 24C697F0 */ addiu $a2, %lo(dword_CODE_bss_800697F0) # addiu $a2, $a2, -0x6810 +/* 04C6D0 7F017BA0 24849651 */ addiu $a0, %lo(cheat_available) # addiu $a0, $a0, -0x69af +/* 04C6D4 7F017BA4 24030001 */ li $v1, 1 +/* 04C6D8 7F017BA8 2407004B */ li $a3, 75 +.L7F017BAC: +/* 04C6DC 7F017BAC 908E0000 */ lbu $t6, ($a0) +/* 04C6E0 7F017BB0 51C00008 */ beql $t6, $zero, .L7F017BD4 +/* 04C6E4 7F017BB4 24630001 */ addiu $v1, $v1, 1 +/* 04C6E8 7F017BB8 8CA20000 */ lw $v0, ($a1) +/* 04C6EC 7F017BBC 00027880 */ sll $t7, $v0, 2 +/* 04C6F0 7F017BC0 00CFC021 */ addu $t8, $a2, $t7 +/* 04C6F4 7F017BC4 AF030000 */ sw $v1, ($t8) +/* 04C6F8 7F017BC8 24590001 */ addiu $t9, $v0, 1 +/* 04C6FC 7F017BCC ACB90000 */ sw $t9, ($a1) +/* 04C700 7F017BD0 24630001 */ addiu $v1, $v1, 1 +.L7F017BD4: +/* 04C704 7F017BD4 1467FFF5 */ bne $v1, $a3, .L7F017BAC +/* 04C708 7F017BD8 24840001 */ addiu $a0, $a0, 1 +/* 04C70C 7F017BDC 0FC02E2B */ jal load_walletbond +/* 04C710 7F017BE0 00000000 */ nop +/* 04C714 7F017BE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 04C718 7F017BE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04C71C 7F017BEC 03E00008 */ jr $ra +/* 04C720 7F017BF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void update_menu15_cheat(void) +{ + s32 lVar1; + int i; + undefined1 *puVar2; + u32 appendsp; + u32 appendmp; + + appendsp = FALSE; + appendmp = FALSE; + puVar2 = CHEAT_AVAILABLE_EXTRA_CHARS; + i = 1; + do { + if (*puVar2 != 0) { + appendsp = TRUE; + lVar1 = proc_7F091A78(i); + if (lVar1 != 0) { + appendmp = TRUE; + } + } + i += 1; + puVar2 = puVar2 + 1; + } while (i != 0x4b); + append_cheat_sp = appendsp; + append_cheat_mp = appendmp; +} +#else +GLOBAL_ASM( +.text +glabel update_menu15_cheat +/* 04C724 7F017BF4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 04C728 7F017BF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 04C72C 7F017BFC AFB40028 */ sw $s4, 0x28($sp) +/* 04C730 7F017C00 AFB30024 */ sw $s3, 0x24($sp) +/* 04C734 7F017C04 AFB20020 */ sw $s2, 0x20($sp) +/* 04C738 7F017C08 AFB00018 */ sw $s0, 0x18($sp) +/* 04C73C 7F017C0C 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 04C740 7F017C10 AFBF002C */ sw $ra, 0x2c($sp) +/* 04C744 7F017C14 00009825 */ move $s3, $zero +/* 04C748 7F017C18 0000A025 */ move $s4, $zero +/* 04C74C 7F017C1C 263196A1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x695f +/* 04C750 7F017C20 24100001 */ li $s0, 1 +/* 04C754 7F017C24 2412004B */ li $s2, 75 +.L7F017C28: +/* 04C758 7F017C28 922E0000 */ lbu $t6, ($s1) +/* 04C75C 7F017C2C 02002025 */ move $a0, $s0 +/* 04C760 7F017C30 51C00007 */ beql $t6, $zero, .L7F017C50 +/* 04C764 7F017C34 26100001 */ addiu $s0, $s0, 1 +/* 04C768 7F017C38 0FC2469E */ jal cheatCheckIfMPCheat +/* 04C76C 7F017C3C 24130001 */ li $s3, 1 +/* 04C770 7F017C40 50400003 */ beql $v0, $zero, .L7F017C50 +/* 04C774 7F017C44 26100001 */ addiu $s0, $s0, 1 +/* 04C778 7F017C48 24140001 */ li $s4, 1 +/* 04C77C 7F017C4C 26100001 */ addiu $s0, $s0, 1 +.L7F017C50: +/* 04C780 7F017C50 1612FFF5 */ bne $s0, $s2, .L7F017C28 +/* 04C784 7F017C54 26310001 */ addiu $s1, $s1, 1 +/* 04C788 7F017C58 3C018003 */ lui $at, %hi(append_cheat_sp) +/* 04C78C 7F017C5C AC33A900 */ sw $s3, %lo(append_cheat_sp)($at) +/* 04C790 7F017C60 8FBF002C */ lw $ra, 0x2c($sp) +/* 04C794 7F017C64 3C018003 */ lui $at, %hi(append_cheat_mp) +/* 04C798 7F017C68 AC34A904 */ sw $s4, %lo(append_cheat_mp)($at) +/* 04C79C 7F017C6C 8FB40028 */ lw $s4, 0x28($sp) +/* 04C7A0 7F017C70 8FB30024 */ lw $s3, 0x24($sp) +/* 04C7A4 7F017C74 8FB00018 */ lw $s0, 0x18($sp) +/* 04C7A8 7F017C78 8FB1001C */ lw $s1, 0x1c($sp) +/* 04C7AC 7F017C7C 8FB20020 */ lw $s2, 0x20($sp) +/* 04C7B0 7F017C80 03E00008 */ jr $ra +/* 04C7B4 7F017C84 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void interface_menu15_cheat(u32 param_1,u32 param_2) +{ + int iVar1; + u32 BVar3; + int iVar4; + int iVar5; + + setvideo_far(60.00000000); + video_related_21(menu15_aspect); + set_page_height(100.00000000, menu15_pageheight); + set_video2_settings_offset_24(0); + MP_menu_selected_option = 0; + iVar1 = dword_8002B5E0; + if (get_controller_buttons_held(0,Z_TRIG|A_BUTTON) == 0) { + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + dword_8002B5E0 = 0; + BVar3 = isontab3(); + if (BVar3 == FALSE) { + iVar1 = dword_8002B5E0; + if (((0xc < dword_8002B5DC) && + (iVar5 = dword_8002B5DC + -0xd, iVar1 = dword_8002B5E0, 0xdb < (int)(float)cursor_h_pos)) + && (iVar1 = dword_8002B5E0, -1 < iVar5)) { + iVar4 = iVar5 * 0x14 + 0x35; + do { + iVar1 = iVar5 + 0xc; + if (iVar4 <= (int)(float)cursor_v_pos) break; + iVar5 += -1; + iVar4 += -0x14; + iVar1 = dword_8002B5E0; + } while (-1 < iVar5); + } + dword_8002B5E0 = iVar1; + iVar1 = dword_8002B5E0; + if (dword_8002B5E0 == 0) { + iVar5 = dword_8002B5DC + -1; + if (0xc < dword_8002B5DC) { + iVar5 = 0xb; + } + iVar1 = dword_8002B5E0; + if (-1 < iVar5) { + iVar4 = iVar5 * 0x14 + 0x35; + do { + iVar1 = iVar5; + if (iVar4 <= (int)(float)cursor_v_pos) break; + iVar5 += -1; + iVar4 += -0x14; + iVar1 = dword_8002B5E0; + } while (-1 < iVar5); + } + } + } + else { + tab_3_highlight = TRUE; + iVar1 = dword_8002B5E0; + } + } + dword_8002B5E0 = iVar1; + uVar2 = get_controller_buttons_pressed(0,Z_TRIG|A_BUTTON); + if (uVar2 == 0) { + uVar2 = get_controller_buttons_pressed(0,B_BUTTON); + if (uVar2 != 0) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + if (tab_3_highlight == FALSE) { + MP_menu_selected_option = 1; + } + else { + tab_3_selected = TRUE; + } + play_sfx_a1((s32)(int)ptr_sfx_buf,199,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); + menu_control_stick_tracking(); + if (tab_3_selected == FALSE) { + if (MP_menu_selected_option != 0) { + *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960) = + 1 - *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960); + } + } + else { + set_menu_to_mode(MENU_MODE_SELECT,0); + set_menu_cursor_pos_to_setting(gamemode); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu15_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu15_pageheight +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu15_cheat +/* 04C7B8 7F017C88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04C7BC 7F017C8C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04C7C0 7F017C90 AFBF0014 */ sw $ra, 0x14($sp) +/* 04C7C4 7F017C94 44816000 */ mtc1 $at, $f12 +/* 04C7C8 7F017C98 0C001151 */ jal setvideo_far +/* 04C7CC 7F017C9C 00000000 */ nop +/* 04C7D0 7F017CA0 3C018005 */ lui $at, %hi(menu15_aspect) +/* 04C7D4 7F017CA4 0C001164 */ jal video_related_21 +/* 04C7D8 7F017CA8 C42C1AE4 */ lwc1 $f12, %lo(menu15_aspect)($at) +/* 04C7DC 7F017CAC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C7E0 7F017CB0 44816000 */ mtc1 $at, $f12 +/* 04C7E4 7F017CB4 3C018005 */ lui $at, %hi(menu15_pageheight) +/* 04C7E8 7F017CB8 0C001194 */ jal set_page_height +/* 04C7EC 7F017CBC C42E1AE8 */ lwc1 $f14, %lo(menu15_pageheight)($at) +/* 04C7F0 7F017CC0 0C00114D */ jal set_video2_settings_offset_24 +/* 04C7F4 7F017CC4 00002025 */ move $a0, $zero +/* 04C7F8 7F017CC8 3C018003 */ lui $at, %hi(MP_menu_selected_option) +/* 04C7FC 7F017CCC AC20B5E4 */ sw $zero, %lo(MP_menu_selected_option)($at) +/* 04C800 7F017CD0 00002025 */ move $a0, $zero +/* 04C804 7F017CD4 0C0030C3 */ jal get_controller_buttons_held +/* 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) +/* 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(D_8002B5DC) +/* 04C83C 7F017D0C 240E0001 */ li $t6, 1 +/* 04C840 7F017D10 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C844 7F017D14 1000003B */ b .L7F017E04 +/* 04C848 7F017D18 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F017D1C: +/* 04C84C 7F017D1C 8CA5B5DC */ lw $a1, %lo(D_8002B5DC)($a1) +/* 04C850 7F017D20 3C098003 */ lui $t1, %hi(D_8002B5E0) +/* 04C854 7F017D24 28A1000D */ slti $at, $a1, 0xd +/* 04C858 7F017D28 1420001C */ bnez $at, .L7F017D9C +/* 04C85C 7F017D2C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 04C860 7F017D30 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 04C864 7F017D34 24A3FFF3 */ addiu $v1, $a1, -0xd +/* 04C868 7F017D38 4600218D */ trunc.w.s $f6, $f4 +/* 04C86C 7F017D3C 44183000 */ mfc1 $t8, $f6 +/* 04C870 7F017D40 00000000 */ nop +/* 04C874 7F017D44 2B0100DC */ slti $at, $t8, 0xdc +/* 04C878 7F017D48 14200014 */ bnez $at, .L7F017D9C +/* 04C87C 7F017D4C 00000000 */ nop +/* 04C880 7F017D50 04600012 */ bltz $v1, .L7F017D9C +/* 04C884 7F017D54 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 04C888 7F017D58 C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 04C88C 7F017D5C 00031080 */ sll $v0, $v1, 2 +/* 04C890 7F017D60 00431021 */ addu $v0, $v0, $v1 +/* 04C894 7F017D64 4600428D */ trunc.w.s $f10, $f8 +/* 04C898 7F017D68 00021080 */ sll $v0, $v0, 2 +/* 04C89C 7F017D6C 24420035 */ addiu $v0, $v0, 0x35 +/* 04C8A0 7F017D70 44045000 */ mfc1 $a0, $f10 +/* 04C8A4 7F017D74 00000000 */ nop +.L7F017D78: +/* 04C8A8 7F017D78 0082082A */ slt $at, $a0, $v0 +/* 04C8AC 7F017D7C 14200004 */ bnez $at, .L7F017D90 +/* 04C8B0 7F017D80 2468000C */ addiu $t0, $v1, 0xc +/* 04C8B4 7F017D84 3C018003 */ lui $at, %hi(D_8002B5E0) +/* 04C8B8 7F017D88 10000004 */ b .L7F017D9C +/* 04C8BC 7F017D8C AC28B5E0 */ sw $t0, %lo(D_8002B5E0)($at) +.L7F017D90: +/* 04C8C0 7F017D90 2463FFFF */ addiu $v1, $v1, -1 +/* 04C8C4 7F017D94 0461FFF8 */ bgez $v1, .L7F017D78 +/* 04C8C8 7F017D98 2442FFEC */ addiu $v0, $v0, -0x14 +.L7F017D9C: +/* 04C8CC 7F017D9C 8D29B5E0 */ lw $t1, %lo(D_8002B5E0)($t1) +/* 04C8D0 7F017DA0 28A1000D */ slti $at, $a1, 0xd +/* 04C8D4 7F017DA4 55200018 */ bnezl $t1, .L7F017E08 +/* 04C8D8 7F017DA8 00002025 */ move $a0, $zero +/* 04C8DC 7F017DAC 14200003 */ bnez $at, .L7F017DBC +/* 04C8E0 7F017DB0 24A3FFFF */ addiu $v1, $a1, -1 +/* 04C8E4 7F017DB4 10000001 */ b .L7F017DBC +/* 04C8E8 7F017DB8 2403000B */ li $v1, 11 +.L7F017DBC: +/* 04C8EC 7F017DBC 04600011 */ bltz $v1, .L7F017E04 +/* 04C8F0 7F017DC0 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 04C8F4 7F017DC4 C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 04C8F8 7F017DC8 00031080 */ sll $v0, $v1, 2 +/* 04C8FC 7F017DCC 00431021 */ addu $v0, $v0, $v1 +/* 04C900 7F017DD0 4600848D */ trunc.w.s $f18, $f16 +/* 04C904 7F017DD4 00021080 */ sll $v0, $v0, 2 +/* 04C908 7F017DD8 24420035 */ addiu $v0, $v0, 0x35 +/* 04C90C 7F017DDC 44049000 */ mfc1 $a0, $f18 +/* 04C910 7F017DE0 00000000 */ nop +.L7F017DE4: +/* 04C914 7F017DE4 0082082A */ slt $at, $a0, $v0 +/* 04C918 7F017DE8 14200003 */ bnez $at, .L7F017DF8 +/* 04C91C 7F017DEC 3C018003 */ lui $at, %hi(D_8002B5E0) +/* 04C920 7F017DF0 10000004 */ b .L7F017E04 +/* 04C924 7F017DF4 AC23B5E0 */ sw $v1, %lo(D_8002B5E0)($at) +.L7F017DF8: +/* 04C928 7F017DF8 2463FFFF */ addiu $v1, $v1, -1 +/* 04C92C 7F017DFC 0461FFF9 */ bgez $v1, .L7F017DE4 +/* 04C930 7F017E00 2442FFEC */ addiu $v0, $v0, -0x14 +.L7F017E04: +/* 04C934 7F017E04 00002025 */ move $a0, $zero +.L7F017E08: +/* 04C938 7F017E08 0C0030EB */ jal get_controller_buttons_pressed +/* 04C93C 7F017E0C 3405A000 */ li $a1, 40960 +/* 04C940 7F017E10 10400012 */ beqz $v0, .L7F017E5C +/* 04C944 7F017E14 00002025 */ move $a0, $zero +/* 04C948 7F017E18 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 04C94C 7F017E1C 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 04C950 7F017E20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 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) +/* 04C968 7F017E38 10000004 */ b .L7F017E4C +/* 04C96C 7F017E3C AC2CA8D8 */ sw $t4, %lo(tab_3_selected)($at) +.L7F017E40: +/* 04C970 7F017E40 240D0001 */ li $t5, 1 +/* 04C974 7F017E44 3C018003 */ lui $at, %hi(MP_menu_selected_option) +/* 04C978 7F017E48 AC2DB5E4 */ sw $t5, %lo(MP_menu_selected_option)($at) +.L7F017E4C: +/* 04C97C 7F017E4C 0C002382 */ jal play_sfx_a1 +/* 04C980 7F017E50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C984 7F017E54 1000000C */ b .L7F017E88 +/* 04C988 7F017E58 00000000 */ nop +.L7F017E5C: +/* 04C98C 7F017E5C 0C0030EB */ jal get_controller_buttons_pressed +/* 04C990 7F017E60 24054000 */ li $a1, 16384 +/* 04C994 7F017E64 10400008 */ beqz $v0, .L7F017E88 +/* 04C998 7F017E68 240E0001 */ li $t6, 1 +/* 04C99C 7F017E6C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C9A0 7F017E70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04C9A4 7F017E74 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 04C9A8 7F017E78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C9AC 7F017E7C 240500C7 */ li $a1, 199 +/* 04C9B0 7F017E80 0C002382 */ jal play_sfx_a1 +/* 04C9B4 7F017E84 00003025 */ move $a2, $zero +.L7F017E88: +/* 04C9B8 7F017E88 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 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) +/* 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) +/* 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) +/* 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) +/* 04CA10 7F017EE0 24040006 */ li $a0, 6 +/* 04CA14 7F017EE4 3C188003 */ lui $t8, %hi(MP_menu_selected_option) +/* 04CA18 7F017EE8 11E00008 */ beqz $t7, .L7F017F0C +/* 04CA1C 7F017EEC 00000000 */ nop +/* 04CA20 7F017EF0 0FC06975 */ jal set_menu_to_mode +/* 04CA24 7F017EF4 00002825 */ move $a1, $zero +/* 04CA28 7F017EF8 3C048003 */ lui $a0, %hi(gamemode) +/* 04CA2C 7F017EFC 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 04CA30 7F017F00 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +/* 04CA34 7F017F04 10000012 */ b .L7F017F50 +/* 04CA38 7F017F08 8FBF0014 */ lw $ra, 0x14($sp) +.L7F017F0C: +/* 04CA3C 7F017F0C 8F18B5E4 */ lw $t8, %lo(MP_menu_selected_option)($t8) +/* 04CA40 7F017F10 3C198003 */ lui $t9, %hi(D_8002B5E0) +/* 04CA44 7F017F14 5300000E */ beql $t8, $zero, .L7F017F50 +/* 04CA48 7F017F18 8FBF0014 */ lw $ra, 0x14($sp) +/* 04CA4C 7F017F1C 8F39B5E0 */ lw $t9, %lo(D_8002B5E0)($t9) +/* 04CA50 7F017F20 3C038007 */ lui $v1, %hi(dword_CODE_bss_800697F0) +/* 04CA54 7F017F24 3C098007 */ lui $t1, %hi(cheat_activated) +/* 04CA58 7F017F28 00194080 */ sll $t0, $t9, 2 +/* 04CA5C 7F017F2C 00681821 */ addu $v1, $v1, $t0 +/* 04CA60 7F017F30 8C6397F0 */ lw $v1, %lo(dword_CODE_bss_800697F0)($v1) +/* 04CA64 7F017F34 252996A0 */ addiu $t1, %lo(cheat_activated) # addiu $t1, $t1, -0x6960 +/* 04CA68 7F017F38 240B0001 */ li $t3, 1 +/* 04CA6C 7F017F3C 00691021 */ addu $v0, $v1, $t1 +/* 04CA70 7F017F40 904A0000 */ lbu $t2, ($v0) +/* 04CA74 7F017F44 016A6023 */ subu $t4, $t3, $t2 +/* 04CA78 7F017F48 A04C0000 */ sb $t4, ($v0) +/* 04CA7C 7F017F4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F017F50: +/* 04CA80 7F017F50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04CA84 7F017F54 03E00008 */ jr $ra +/* 04CA88 7F017F58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu15_cheat(void) { + +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu15_cheat +/* 04CA8C 7F017F5C 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 04CA90 7F017F60 AFBF005C */ sw $ra, 0x5c($sp) +/* 04CA94 7F017F64 AFBE0058 */ sw $fp, 0x58($sp) +/* 04CA98 7F017F68 AFB70054 */ sw $s7, 0x54($sp) +/* 04CA9C 7F017F6C AFB60050 */ sw $s6, 0x50($sp) +/* 04CAA0 7F017F70 AFB5004C */ sw $s5, 0x4c($sp) +/* 04CAA4 7F017F74 AFB40048 */ sw $s4, 0x48($sp) +/* 04CAA8 7F017F78 AFB30044 */ sw $s3, 0x44($sp) +/* 04CAAC 7F017F7C AFB20040 */ sw $s2, 0x40($sp) +/* 04CAB0 7F017F80 AFB1003C */ sw $s1, 0x3c($sp) +/* 04CAB4 7F017F84 AFB00038 */ sw $s0, 0x38($sp) +/* 04CAB8 7F017F88 00002825 */ move $a1, $zero +/* 04CABC 7F017F8C 00003025 */ move $a2, $zero +/* 04CAC0 7F017F90 0C0011B4 */ jal set_setfillcolor +/* 04CAC4 7F017F94 00003825 */ move $a3, $zero +/* 04CAC8 7F017F98 0C000FBE */ jal insert_generic_fillrect +/* 04CACC 7F017F9C 00402025 */ move $a0, $v0 +/* 04CAD0 7F017FA0 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04CAD4 7F017FA4 00402025 */ move $a0, $v0 +/* 04CAD8 7F017FA8 0FC2B366 */ jal microcode_constructor +/* 04CADC 7F017FAC 00402025 */ move $a0, $v0 +/* 04CAE0 7F017FB0 3C038003 */ lui $v1, %hi(D_8002B5DC) +/* 04CAE4 7F017FB4 8C63B5DC */ lw $v1, %lo(D_8002B5DC)($v1) +/* 04CAE8 7F017FB8 0040A025 */ move $s4, $v0 +/* 04CAEC 7F017FBC 0000F025 */ move $fp, $zero +/* 04CAF0 7F017FC0 2861000D */ slti $at, $v1, 0xd +/* 04CAF4 7F017FC4 14200003 */ bnez $at, .L7F017FD4 +/* 04CAF8 7F017FC8 00608825 */ move $s1, $v1 +/* 04CAFC 7F017FCC 10000001 */ b .L7F017FD4 +/* 04CB00 7F017FD0 2411000C */ li $s1, 12 +.L7F017FD4: +/* 04CB04 7F017FD4 1A200086 */ blez $s1, .L7F0181F0 +/* 04CB08 7F017FD8 001E7080 */ sll $t6, $fp, 2 +/* 04CB0C 7F017FDC 001EA880 */ sll $s5, $fp, 2 +/* 04CB10 7F017FE0 02BEA821 */ addu $s5, $s5, $fp +/* 04CB14 7F017FE4 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_800697F0) +/* 04CB18 7F017FE8 25EF97F0 */ addiu $t7, %lo(dword_CODE_bss_800697F0) # addiu $t7, $t7, -0x6810 +/* 04CB1C 7F017FEC 0015A880 */ sll $s5, $s5, 2 +/* 04CB20 7F017FF0 3C178004 */ lui $s7, %hi(ptrFirstFontTableLarge) +/* 04CB24 7F017FF4 3C168004 */ lui $s6, %hi(ptrSecondFontTableLarge) +/* 04CB28 7F017FF8 26D60EB8 */ addiu $s6, %lo(ptrSecondFontTableLarge) # addiu $s6, $s6, 0xeb8 +/* 04CB2C 7F017FFC 26F70EB4 */ addiu $s7, %lo(ptrFirstFontTableLarge) # addiu $s7, $s7, 0xeb4 +/* 04CB30 7F018000 26B50035 */ addiu $s5, $s5, 0x35 +/* 04CB34 7F018004 01CF9821 */ addu $s3, $t6, $t7 +.L7F018008: +/* 04CB38 7F018008 0FC249DD */ jal cheatGetMenuTextPointer +/* 04CB3C 7F01800C 8E640000 */ lw $a0, ($s3) +/* 04CB40 7F018010 8EF80000 */ lw $t8, ($s7) +/* 04CB44 7F018014 00409025 */ move $s2, $v0 +/* 04CB48 7F018018 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CB4C 7F01801C 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CB50 7F018020 00403025 */ move $a2, $v0 +/* 04CB54 7F018024 8EC70000 */ lw $a3, ($s6) +/* 04CB58 7F018028 AFA00014 */ sw $zero, 0x14($sp) +/* 04CB5C 7F01802C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CB60 7F018030 AFB80010 */ sw $t8, 0x10($sp) +/* 04CB64 7F018034 3C198003 */ lui $t9, %hi(D_8002B5E0) +/* 04CB68 7F018038 8F39B5E0 */ lw $t9, %lo(D_8002B5E0)($t9) +/* 04CB6C 7F01803C 24020037 */ li $v0, 55 +/* 04CB70 7F018040 AFA20088 */ sw $v0, 0x88($sp) +/* 04CB74 7F018044 17D90012 */ bne $fp, $t9, .L7F018090 +/* 04CB78 7F018048 AFB50084 */ sw $s5, 0x84($sp) +/* 04CB7C 7F01804C 0FC028E7 */ jal isontab3 +/* 04CB80 7F018050 00000000 */ nop +/* 04CB84 7F018054 1440000E */ bnez $v0, .L7F018090 +/* 04CB88 7F018058 8FA30084 */ lw $v1, 0x84($sp) +/* 04CB8C 7F01805C 8FA20088 */ lw $v0, 0x88($sp) +/* 04CB90 7F018060 8FA8007C */ lw $t0, 0x7c($sp) +/* 04CB94 7F018064 2469000E */ addiu $t1, $v1, 0xe +/* 04CB98 7F018068 240A0032 */ li $t2, 50 +/* 04CB9C 7F01806C 00483821 */ addu $a3, $v0, $t0 +/* 04CBA0 7F018070 24E70005 */ addiu $a3, $a3, 5 +/* 04CBA4 7F018074 AFAA0014 */ sw $t2, 0x14($sp) +/* 04CBA8 7F018078 AFA90010 */ sw $t1, 0x10($sp) +/* 04CBAC 7F01807C 02802025 */ move $a0, $s4 +/* 04CBB0 7F018080 2466FFFF */ addiu $a2, $v1, -1 +/* 04CBB4 7F018084 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04CBB8 7F018088 2445FFFE */ addiu $a1, $v0, -2 +/* 04CBBC 7F01808C 0040A025 */ move $s4, $v0 +.L7F018090: +/* 04CBC0 7F018090 0C001107 */ jal get_video2_settings_txtClipW +/* 04CBC4 7F018094 00000000 */ nop +/* 04CBC8 7F018098 00028400 */ sll $s0, $v0, 0x10 +/* 04CBCC 7F01809C 00105C03 */ sra $t3, $s0, 0x10 +/* 04CBD0 7F0180A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04CBD4 7F0180A4 01608025 */ move $s0, $t3 +/* 04CBD8 7F0180A8 8ECC0000 */ lw $t4, ($s6) +/* 04CBDC 7F0180AC 8EED0000 */ lw $t5, ($s7) +/* 04CBE0 7F0180B0 240E00FF */ li $t6, 255 +/* 04CBE4 7F0180B4 AFAE0018 */ sw $t6, 0x18($sp) +/* 04CBE8 7F0180B8 02802025 */ move $a0, $s4 +/* 04CBEC 7F0180BC 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CBF0 7F0180C0 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CBF4 7F0180C4 02403825 */ move $a3, $s2 +/* 04CBF8 7F0180C8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CBFC 7F0180CC AFA20020 */ sw $v0, 0x20($sp) +/* 04CC00 7F0180D0 AFA00024 */ sw $zero, 0x24($sp) +/* 04CC04 7F0180D4 AFA00028 */ sw $zero, 0x28($sp) +/* 04CC08 7F0180D8 AFAC0010 */ sw $t4, 0x10($sp) +/* 04CC0C 7F0180DC 0FC025D8 */ jal write_text_at_abs_coord +/* 04CC10 7F0180E0 AFAD0014 */ sw $t5, 0x14($sp) +/* 04CC14 7F0180E4 8E6F0000 */ lw $t7, ($s3) +/* 04CC18 7F0180E8 3C188007 */ lui $t8, %hi(cheat_activated) +/* 04CC1C 7F0180EC 0040A025 */ move $s4, $v0 +/* 04CC20 7F0180F0 030FC021 */ addu $t8, $t8, $t7 +/* 04CC24 7F0180F4 931896A0 */ lbu $t8, %lo(cheat_activated)($t8) +/* 04CC28 7F0180F8 34119C74 */ li $s1, 40052 +/* 04CC2C 7F0180FC 13000003 */ beqz $t8, .L7F01810C +/* 04CC30 7F018100 00000000 */ nop +/* 04CC34 7F018104 10000001 */ b .L7F01810C +/* 04CC38 7F018108 34119C73 */ li $s1, 40051 +.L7F01810C: +/* 04CC3C 7F01810C 0FC30776 */ jal get_textptr_for_textID +/* 04CC40 7F018110 02202025 */ move $a0, $s1 +/* 04CC44 7F018114 8EF90000 */ lw $t9, ($s7) +/* 04CC48 7F018118 00409025 */ move $s2, $v0 +/* 04CC4C 7F01811C 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CC50 7F018120 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CC54 7F018124 00403025 */ move $a2, $v0 +/* 04CC58 7F018128 8EC70000 */ lw $a3, ($s6) +/* 04CC5C 7F01812C AFA00014 */ sw $zero, 0x14($sp) +/* 04CC60 7F018130 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CC64 7F018134 AFB90010 */ sw $t9, 0x10($sp) +/* 04CC68 7F018138 8E680000 */ lw $t0, ($s3) +/* 04CC6C 7F01813C 3C098007 */ lui $t1, %hi(cheat_activated) +/* 04CC70 7F018140 240200B3 */ li $v0, 179 +/* 04CC74 7F018144 01284821 */ addu $t1, $t1, $t0 +/* 04CC78 7F018148 912996A0 */ lbu $t1, %lo(cheat_activated)($t1) +/* 04CC7C 7F01814C AFA20088 */ sw $v0, 0x88($sp) +/* 04CC80 7F018150 AFB50084 */ sw $s5, 0x84($sp) +/* 04CC84 7F018154 11200004 */ beqz $t1, .L7F018168 +/* 04CC88 7F018158 241100FF */ li $s1, 255 +/* 04CC8C 7F01815C 3C11A000 */ lui $s1, (0xA00000FF >> 16) # lui $s1, 0xa000 +/* 04CC90 7F018160 10000001 */ b .L7F018168 +/* 04CC94 7F018164 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff +.L7F018168: +/* 04CC98 7F018168 0C001107 */ jal get_video2_settings_txtClipW +/* 04CC9C 7F01816C 00000000 */ nop +/* 04CCA0 7F018170 00028400 */ sll $s0, $v0, 0x10 +/* 04CCA4 7F018174 00105403 */ sra $t2, $s0, 0x10 +/* 04CCA8 7F018178 0C00110B */ jal get_video2_settings_txtClipH +/* 04CCAC 7F01817C 01408025 */ move $s0, $t2 +/* 04CCB0 7F018180 8ECB0000 */ lw $t3, ($s6) +/* 04CCB4 7F018184 8EEC0000 */ lw $t4, ($s7) +/* 04CCB8 7F018188 02802025 */ move $a0, $s4 +/* 04CCBC 7F01818C 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CCC0 7F018190 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CCC4 7F018194 02403825 */ move $a3, $s2 +/* 04CCC8 7F018198 AFB10018 */ sw $s1, 0x18($sp) +/* 04CCCC 7F01819C AFB0001C */ sw $s0, 0x1c($sp) +/* 04CCD0 7F0181A0 AFA20020 */ sw $v0, 0x20($sp) +/* 04CCD4 7F0181A4 AFA00024 */ sw $zero, 0x24($sp) +/* 04CCD8 7F0181A8 AFA00028 */ sw $zero, 0x28($sp) +/* 04CCDC 7F0181AC AFAB0010 */ sw $t3, 0x10($sp) +/* 04CCE0 7F0181B0 0FC025D8 */ jal write_text_at_abs_coord +/* 04CCE4 7F0181B4 AFAC0014 */ sw $t4, 0x14($sp) +/* 04CCE8 7F0181B8 3C038003 */ lui $v1, %hi(D_8002B5DC) +/* 04CCEC 7F0181BC 8C63B5DC */ lw $v1, %lo(D_8002B5DC)($v1) +/* 04CCF0 7F0181C0 27DE0001 */ addiu $fp, $fp, 1 +/* 04CCF4 7F0181C4 26730004 */ addiu $s3, $s3, 4 +/* 04CCF8 7F0181C8 2861000D */ slti $at, $v1, 0xd +/* 04CCFC 7F0181CC 26B50014 */ addiu $s5, $s5, 0x14 +/* 04CD00 7F0181D0 14200003 */ bnez $at, .L7F0181E0 +/* 04CD04 7F0181D4 0040A025 */ move $s4, $v0 +/* 04CD08 7F0181D8 10000002 */ b .L7F0181E4 +/* 04CD0C 7F0181DC 2411000C */ li $s1, 12 +.L7F0181E0: +/* 04CD10 7F0181E0 00608825 */ move $s1, $v1 +.L7F0181E4: +/* 04CD14 7F0181E4 03D1082A */ slt $at, $fp, $s1 +/* 04CD18 7F0181E8 1420FF87 */ bnez $at, .L7F018008 +/* 04CD1C 7F0181EC 00000000 */ nop +.L7F0181F0: +/* 04CD20 7F0181F0 3C168004 */ lui $s6, %hi(ptrSecondFontTableLarge) +/* 04CD24 7F0181F4 3C178004 */ lui $s7, %hi(ptrFirstFontTableLarge) +/* 04CD28 7F0181F8 2861000D */ slti $at, $v1, 0xd +/* 04CD2C 7F0181FC 26F70EB4 */ addiu $s7, %lo(ptrFirstFontTableLarge) # addiu $s7, $s7, 0xeb4 +/* 04CD30 7F018200 1420007D */ bnez $at, .L7F0183F8 +/* 04CD34 7F018204 26D60EB8 */ addiu $s6, %lo(ptrSecondFontTableLarge) # addiu $s6, $s6, 0xeb8 +/* 04CD38 7F018208 246DFFF4 */ addiu $t5, $v1, -0xc +/* 04CD3C 7F01820C 19A0007A */ blez $t5, .L7F0183F8 +/* 04CD40 7F018210 0000F025 */ move $fp, $zero +/* 04CD44 7F018214 3C138007 */ lui $s3, %hi(dword_CODE_bss_800697F0) +/* 04CD48 7F018218 267397F0 */ addiu $s3, %lo(dword_CODE_bss_800697F0) # addiu $s3, $s3, -0x6810 +/* 04CD4C 7F01821C 24150035 */ li $s5, 53 +.L7F018220: +/* 04CD50 7F018220 0FC249DD */ jal cheatGetMenuTextPointer +/* 04CD54 7F018224 8E640030 */ lw $a0, 0x30($s3) +/* 04CD58 7F018228 8EEE0000 */ lw $t6, ($s7) +/* 04CD5C 7F01822C 00409025 */ move $s2, $v0 +/* 04CD60 7F018230 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CD64 7F018234 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CD68 7F018238 00403025 */ move $a2, $v0 +/* 04CD6C 7F01823C 8EC70000 */ lw $a3, ($s6) +/* 04CD70 7F018240 AFA00014 */ sw $zero, 0x14($sp) +/* 04CD74 7F018244 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CD78 7F018248 AFAE0010 */ sw $t6, 0x10($sp) +/* 04CD7C 7F01824C 3C188003 */ lui $t8, %hi(D_8002B5E0) +/* 04CD80 7F018250 8F18B5E0 */ lw $t8, %lo(D_8002B5E0)($t8) +/* 04CD84 7F018254 240200DC */ li $v0, 220 +/* 04CD88 7F018258 27CF000C */ addiu $t7, $fp, 0xc +/* 04CD8C 7F01825C AFA20088 */ sw $v0, 0x88($sp) +/* 04CD90 7F018260 15F80012 */ bne $t7, $t8, .L7F0182AC +/* 04CD94 7F018264 AFB50084 */ sw $s5, 0x84($sp) +/* 04CD98 7F018268 0FC028E7 */ jal isontab3 +/* 04CD9C 7F01826C 00000000 */ nop +/* 04CDA0 7F018270 1440000E */ bnez $v0, .L7F0182AC +/* 04CDA4 7F018274 8FA30084 */ lw $v1, 0x84($sp) +/* 04CDA8 7F018278 8FA20088 */ lw $v0, 0x88($sp) +/* 04CDAC 7F01827C 8FB9007C */ lw $t9, 0x7c($sp) +/* 04CDB0 7F018280 2468000E */ addiu $t0, $v1, 0xe +/* 04CDB4 7F018284 24090032 */ li $t1, 50 +/* 04CDB8 7F018288 00593821 */ addu $a3, $v0, $t9 +/* 04CDBC 7F01828C 24E70005 */ addiu $a3, $a3, 5 +/* 04CDC0 7F018290 AFA90014 */ sw $t1, 0x14($sp) +/* 04CDC4 7F018294 AFA80010 */ sw $t0, 0x10($sp) +/* 04CDC8 7F018298 02802025 */ move $a0, $s4 +/* 04CDCC 7F01829C 2466FFFF */ addiu $a2, $v1, -1 +/* 04CDD0 7F0182A0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04CDD4 7F0182A4 2445FFFE */ addiu $a1, $v0, -2 +/* 04CDD8 7F0182A8 0040A025 */ move $s4, $v0 +.L7F0182AC: +/* 04CDDC 7F0182AC 0C001107 */ jal get_video2_settings_txtClipW +/* 04CDE0 7F0182B0 00000000 */ nop +/* 04CDE4 7F0182B4 00028400 */ sll $s0, $v0, 0x10 +/* 04CDE8 7F0182B8 00105403 */ sra $t2, $s0, 0x10 +/* 04CDEC 7F0182BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04CDF0 7F0182C0 01408025 */ move $s0, $t2 +/* 04CDF4 7F0182C4 8ECB0000 */ lw $t3, ($s6) +/* 04CDF8 7F0182C8 8EEC0000 */ lw $t4, ($s7) +/* 04CDFC 7F0182CC 240D00FF */ li $t5, 255 +/* 04CE00 7F0182D0 AFAD0018 */ sw $t5, 0x18($sp) +/* 04CE04 7F0182D4 02802025 */ move $a0, $s4 +/* 04CE08 7F0182D8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CE0C 7F0182DC 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CE10 7F0182E0 02403825 */ move $a3, $s2 +/* 04CE14 7F0182E4 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CE18 7F0182E8 AFA20020 */ sw $v0, 0x20($sp) +/* 04CE1C 7F0182EC AFA00024 */ sw $zero, 0x24($sp) +/* 04CE20 7F0182F0 AFA00028 */ sw $zero, 0x28($sp) +/* 04CE24 7F0182F4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04CE28 7F0182F8 0FC025D8 */ jal write_text_at_abs_coord +/* 04CE2C 7F0182FC AFAC0014 */ sw $t4, 0x14($sp) +/* 04CE30 7F018300 8E6E0030 */ lw $t6, 0x30($s3) +/* 04CE34 7F018304 3C0F8007 */ lui $t7, %hi(cheat_activated) +/* 04CE38 7F018308 0040A025 */ move $s4, $v0 +/* 04CE3C 7F01830C 01EE7821 */ addu $t7, $t7, $t6 +/* 04CE40 7F018310 91EF96A0 */ lbu $t7, %lo(cheat_activated)($t7) +/* 04CE44 7F018314 34119C74 */ li $s1, 40052 +/* 04CE48 7F018318 11E00003 */ beqz $t7, .L7F018328 +/* 04CE4C 7F01831C 00000000 */ nop +/* 04CE50 7F018320 10000001 */ b .L7F018328 +/* 04CE54 7F018324 34119C73 */ li $s1, 40051 +.L7F018328: +/* 04CE58 7F018328 0FC30776 */ jal get_textptr_for_textID +/* 04CE5C 7F01832C 02202025 */ move $a0, $s1 +/* 04CE60 7F018330 8EF80000 */ lw $t8, ($s7) +/* 04CE64 7F018334 00409025 */ move $s2, $v0 +/* 04CE68 7F018338 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CE6C 7F01833C 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CE70 7F018340 00403025 */ move $a2, $v0 +/* 04CE74 7F018344 8EC70000 */ lw $a3, ($s6) +/* 04CE78 7F018348 AFA00014 */ sw $zero, 0x14($sp) +/* 04CE7C 7F01834C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CE80 7F018350 AFB80010 */ sw $t8, 0x10($sp) +/* 04CE84 7F018354 8E790030 */ lw $t9, 0x30($s3) +/* 04CE88 7F018358 3C088007 */ lui $t0, %hi(cheat_activated) +/* 04CE8C 7F01835C 24020158 */ li $v0, 344 +/* 04CE90 7F018360 01194021 */ addu $t0, $t0, $t9 +/* 04CE94 7F018364 910896A0 */ lbu $t0, %lo(cheat_activated)($t0) +/* 04CE98 7F018368 AFA20088 */ sw $v0, 0x88($sp) +/* 04CE9C 7F01836C AFB50084 */ sw $s5, 0x84($sp) +/* 04CEA0 7F018370 11000004 */ beqz $t0, .L7F018384 +/* 04CEA4 7F018374 241100FF */ li $s1, 255 +/* 04CEA8 7F018378 3C11A000 */ lui $s1, (0xA00000FF >> 16) # lui $s1, 0xa000 +/* 04CEAC 7F01837C 10000001 */ b .L7F018384 +/* 04CEB0 7F018380 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff +.L7F018384: +/* 04CEB4 7F018384 0C001107 */ jal get_video2_settings_txtClipW +/* 04CEB8 7F018388 00000000 */ nop +/* 04CEBC 7F01838C 00028400 */ sll $s0, $v0, 0x10 +/* 04CEC0 7F018390 00104C03 */ sra $t1, $s0, 0x10 +/* 04CEC4 7F018394 0C00110B */ jal get_video2_settings_txtClipH +/* 04CEC8 7F018398 01208025 */ move $s0, $t1 +/* 04CECC 7F01839C 8ECA0000 */ lw $t2, ($s6) +/* 04CED0 7F0183A0 8EEB0000 */ lw $t3, ($s7) +/* 04CED4 7F0183A4 02802025 */ move $a0, $s4 +/* 04CED8 7F0183A8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CEDC 7F0183AC 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CEE0 7F0183B0 02403825 */ move $a3, $s2 +/* 04CEE4 7F0183B4 AFB10018 */ sw $s1, 0x18($sp) +/* 04CEE8 7F0183B8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CEEC 7F0183BC AFA20020 */ sw $v0, 0x20($sp) +/* 04CEF0 7F0183C0 AFA00024 */ sw $zero, 0x24($sp) +/* 04CEF4 7F0183C4 AFA00028 */ sw $zero, 0x28($sp) +/* 04CEF8 7F0183C8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04CEFC 7F0183CC 0FC025D8 */ jal write_text_at_abs_coord +/* 04CF00 7F0183D0 AFAB0014 */ sw $t3, 0x14($sp) +/* 04CF04 7F0183D4 3C0C8003 */ lui $t4, %hi(D_8002B5DC) +/* 04CF08 7F0183D8 8D8CB5DC */ lw $t4, %lo(D_8002B5DC)($t4) +/* 04CF0C 7F0183DC 27DE0001 */ addiu $fp, $fp, 1 +/* 04CF10 7F0183E0 26730004 */ addiu $s3, $s3, 4 +/* 04CF14 7F0183E4 258DFFF4 */ addiu $t5, $t4, -0xc +/* 04CF18 7F0183E8 03CD082A */ slt $at, $fp, $t5 +/* 04CF1C 7F0183EC 26B50014 */ addiu $s5, $s5, 0x14 +/* 04CF20 7F0183F0 1420FF8B */ bnez $at, .L7F018220 +/* 04CF24 7F0183F4 0040A025 */ move $s4, $v0 +.L7F0183F8: +/* 04CF28 7F0183F8 0FC0288E */ jal add_tab3_previous +/* 04CF2C 7F0183FC 02802025 */ move $a0, $s4 +/* 04CF30 7F018400 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04CF34 7F018404 00402025 */ move $a0, $v0 +/* 04CF38 7F018408 8FBF005C */ lw $ra, 0x5c($sp) +/* 04CF3C 7F01840C 8FB00038 */ lw $s0, 0x38($sp) +/* 04CF40 7F018410 8FB1003C */ lw $s1, 0x3c($sp) +/* 04CF44 7F018414 8FB20040 */ lw $s2, 0x40($sp) +/* 04CF48 7F018418 8FB30044 */ lw $s3, 0x44($sp) +/* 04CF4C 7F01841C 8FB40048 */ lw $s4, 0x48($sp) +/* 04CF50 7F018420 8FB5004C */ lw $s5, 0x4c($sp) +/* 04CF54 7F018424 8FB60050 */ lw $s6, 0x50($sp) +/* 04CF58 7F018428 8FB70054 */ lw $s7, 0x54($sp) +/* 04CF5C 7F01842C 8FBE0058 */ lw $fp, 0x58($sp) +/* 04CF60 7F018430 03E00008 */ jr $ra +/* 04CF64 7F018434 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + +void init_menu16_nocontroller(void) { + return; +} + +void update_menu16_nocontrollers(void) { + return; +} + +void interface_menu16_nocontrollers(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void constructor_menu16_nocontrollers(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel constructor_menu16_nocontrollers +/* 04CF80 7F018450 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04CF84 7F018454 AFBF0034 */ sw $ra, 0x34($sp) +/* 04CF88 7F018458 0C002E9C */ jal get_num_controllers_plugged_in +/* 04CF8C 7F01845C AFA40060 */ sw $a0, 0x60($sp) +/* 04CF90 7F018460 304E0008 */ andi $t6, $v0, 8 +/* 04CF94 7F018464 00004025 */ move $t0, $zero +/* 04CF98 7F018468 11C00002 */ beqz $t6, .L7F018474 +/* 04CF9C 7F01846C 00401825 */ move $v1, $v0 +/* 04CFA0 7F018470 24080001 */ li $t0, 1 +.L7F018474: +/* 04CFA4 7F018474 306F0004 */ andi $t7, $v1, 4 +/* 04CFA8 7F018478 11E00002 */ beqz $t7, .L7F018484 +/* 04CFAC 7F01847C 30780002 */ andi $t8, $v1, 2 +/* 04CFB0 7F018480 25080001 */ addiu $t0, $t0, 1 +.L7F018484: +/* 04CFB4 7F018484 13000002 */ beqz $t8, .L7F018490 +/* 04CFB8 7F018488 8FA40060 */ lw $a0, 0x60($sp) +/* 04CFBC 7F01848C 25080001 */ addiu $t0, $t0, 1 +.L7F018490: +/* 04CFC0 7F018490 0FC07034 */ jal insert_imageDL +/* 04CFC4 7F018494 AFA80044 */ sw $t0, 0x44($sp) +/* 04CFC8 7F018498 0FC2B366 */ jal microcode_constructor +/* 04CFCC 7F01849C 00402025 */ move $a0, $v0 +/* 04CFD0 7F0184A0 8FA80044 */ lw $t0, 0x44($sp) +/* 04CFD4 7F0184A4 AFA20060 */ sw $v0, 0x60($sp) +/* 04CFD8 7F0184A8 24010001 */ li $at, 1 +/* 04CFDC 7F0184AC 51000007 */ beql $t0, $zero, .L7F0184CC +/* 04CFE0 7F0184B0 34049C76 */ li $a0, 40054 +/* 04CFE4 7F0184B4 11010004 */ beq $t0, $at, .L7F0184C8 +/* 04CFE8 7F0184B8 24010002 */ li $at, 2 +/* 04CFEC 7F0184BC 11010002 */ beq $t0, $at, .L7F0184C8 +/* 04CFF0 7F0184C0 24010003 */ li $at, 3 +/* 04CFF4 7F0184C4 15010005 */ bne $t0, $at, .L7F0184DC +.L7F0184C8: +/* 04CFF8 7F0184C8 34049C76 */ li $a0, 40054 +.L7F0184CC: +/* 04CFFC 7F0184CC 0FC30776 */ jal get_textptr_for_textID +/* 04D000 7F0184D0 AFA80044 */ sw $t0, 0x44($sp) +/* 04D004 7F0184D4 8FA80044 */ lw $t0, 0x44($sp) +/* 04D008 7F0184D8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0184DC: +/* 04D00C 7F0184DC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04D010 7F0184E0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04D014 7F0184E4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D018 7F0184E8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D01C 7F0184EC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D020 7F0184F0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D024 7F0184F4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D028 7F0184F8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D02C 7F0184FC AFA80044 */ sw $t0, 0x44($sp) +/* 04D030 7F018500 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D034 7F018504 AFB90010 */ sw $t9, 0x10($sp) +/* 04D038 7F018508 8FA90058 */ lw $t1, 0x58($sp) +/* 04D03C 7F01850C 8FAD005C */ lw $t5, 0x5c($sp) +/* 04D040 7F018510 240B00DC */ li $t3, 220 +/* 04D044 7F018514 240F0099 */ li $t7, 153 +/* 04D048 7F018518 00095043 */ sra $t2, $t1, 1 +/* 04D04C 7F01851C 000D7043 */ sra $t6, $t5, 1 +/* 04D050 7F018520 016A6023 */ subu $t4, $t3, $t2 +/* 04D054 7F018524 01EEC023 */ subu $t8, $t7, $t6 +/* 04D058 7F018528 AFAC0054 */ sw $t4, 0x54($sp) +/* 04D05C 7F01852C 0C001107 */ jal get_video2_settings_txtClipW +/* 04D060 7F018530 AFB80050 */ sw $t8, 0x50($sp) +/* 04D064 7F018534 0C00110B */ jal get_video2_settings_txtClipH +/* 04D068 7F018538 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D06C 7F01853C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04D070 7F018540 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 04D074 7F018544 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 04D078 7F018548 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04D07C 7F01854C 87AA003C */ lh $t2, 0x3c($sp) +/* 04D080 7F018550 240BFFFF */ li $t3, -1 +/* 04D084 7F018554 AFAB0018 */ sw $t3, 0x18($sp) +/* 04D088 7F018558 8FA40060 */ lw $a0, 0x60($sp) +/* 04D08C 7F01855C 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D090 7F018560 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D094 7F018564 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D098 7F018568 AFA20020 */ sw $v0, 0x20($sp) +/* 04D09C 7F01856C AFA00024 */ sw $zero, 0x24($sp) +/* 04D0A0 7F018570 AFA00028 */ sw $zero, 0x28($sp) +/* 04D0A4 7F018574 AFA90014 */ sw $t1, 0x14($sp) +/* 04D0A8 7F018578 AFB90010 */ sw $t9, 0x10($sp) +/* 04D0AC 7F01857C 0FC2B6AF */ jal en_text_write_stuff +/* 04D0B0 7F018580 AFAA001C */ sw $t2, 0x1c($sp) +/* 04D0B4 7F018584 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0B8 7F018588 AFA20060 */ sw $v0, 0x60($sp) +/* 04D0BC 7F01858C 24010001 */ li $at, 1 +/* 04D0C0 7F018590 11000007 */ beqz $t0, .L7F0185B0 +/* 04D0C4 7F018594 00000000 */ nop +/* 04D0C8 7F018598 11010005 */ beq $t0, $at, .L7F0185B0 +/* 04D0CC 7F01859C 24010002 */ li $at, 2 +/* 04D0D0 7F0185A0 11010003 */ beq $t0, $at, .L7F0185B0 +/* 04D0D4 7F0185A4 24010003 */ li $at, 3 +/* 04D0D8 7F0185A8 15010004 */ bne $t0, $at, .L7F0185BC +/* 04D0DC 7F0185AC 00000000 */ nop +.L7F0185B0: +/* 04D0E0 7F0185B0 0FC30776 */ jal get_textptr_for_textID +/* 04D0E4 7F0185B4 34049C77 */ li $a0, 40055 +/* 04D0E8 7F0185B8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0185BC: +/* 04D0EC 7F0185BC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04D0F0 7F0185C0 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04D0F4 7F0185C4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D0F8 7F0185C8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D0FC 7F0185CC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D100 7F0185D0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D104 7F0185D4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D108 7F0185D8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D10C 7F0185DC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D110 7F0185E0 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D114 7F0185E4 8FAD0058 */ lw $t5, 0x58($sp) +/* 04D118 7F0185E8 8FB9005C */ lw $t9, 0x5c($sp) +/* 04D11C 7F0185EC 240E00DC */ li $t6, 220 +/* 04D120 7F0185F0 240B00B1 */ li $t3, 177 +/* 04D124 7F0185F4 000D7843 */ sra $t7, $t5, 1 +/* 04D128 7F0185F8 00194843 */ sra $t1, $t9, 1 +/* 04D12C 7F0185FC 01CFC023 */ subu $t8, $t6, $t7 +/* 04D130 7F018600 01695023 */ subu $t2, $t3, $t1 +/* 04D134 7F018604 AFB80054 */ sw $t8, 0x54($sp) +/* 04D138 7F018608 0C001107 */ jal get_video2_settings_txtClipW +/* 04D13C 7F01860C AFAA0050 */ sw $t2, 0x50($sp) +/* 04D140 7F018610 0C00110B */ jal get_video2_settings_txtClipH +/* 04D144 7F018614 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D148 7F018618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04D14C 7F01861C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04D150 7F018620 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04D154 7F018624 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04D158 7F018628 87AF003C */ lh $t7, 0x3c($sp) +/* 04D15C 7F01862C 240EFFFF */ li $t6, -1 +/* 04D160 7F018630 AFAE0018 */ sw $t6, 0x18($sp) +/* 04D164 7F018634 8FA40060 */ lw $a0, 0x60($sp) +/* 04D168 7F018638 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D16C 7F01863C 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D170 7F018640 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D174 7F018644 AFA20020 */ sw $v0, 0x20($sp) +/* 04D178 7F018648 AFA00024 */ sw $zero, 0x24($sp) +/* 04D17C 7F01864C AFA00028 */ sw $zero, 0x28($sp) +/* 04D180 7F018650 AFAD0014 */ sw $t5, 0x14($sp) +/* 04D184 7F018654 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D188 7F018658 0FC2B6AF */ jal en_text_write_stuff +/* 04D18C 7F01865C AFAF001C */ sw $t7, 0x1c($sp) +/* 04D190 7F018660 8FBF0034 */ lw $ra, 0x34($sp) +/* 04D194 7F018664 27BD0060 */ addiu $sp, $sp, 0x60 +/* 04D198 7F018668 03E00008 */ jr $ra +/* 04D19C 7F01866C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel constructor_menu16_nocontrollers +/* 04D070 7F018500 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04D074 7F018504 AFBF0034 */ sw $ra, 0x34($sp) +/* 04D078 7F018508 0C002EA0 */ jal get_num_controllers_plugged_in +/* 04D07C 7F01850C AFA40060 */ sw $a0, 0x60($sp) +/* 04D080 7F018510 304E0008 */ andi $t6, $v0, 8 +/* 04D084 7F018514 00004025 */ move $t0, $zero +/* 04D088 7F018518 11C00002 */ beqz $t6, .L7F018524 +/* 04D08C 7F01851C 00401825 */ move $v1, $v0 +/* 04D090 7F018520 24080001 */ li $t0, 1 +.L7F018524: +/* 04D094 7F018524 306F0004 */ andi $t7, $v1, 4 +/* 04D098 7F018528 11E00002 */ beqz $t7, .L7F018534 +/* 04D09C 7F01852C 30780002 */ andi $t8, $v1, 2 +/* 04D0A0 7F018530 25080001 */ addiu $t0, $t0, 1 +.L7F018534: +/* 04D0A4 7F018534 13000002 */ beqz $t8, .L7F018540 +/* 04D0A8 7F018538 8FA40060 */ lw $a0, 0x60($sp) +/* 04D0AC 7F01853C 25080001 */ addiu $t0, $t0, 1 +.L7F018540: +/* 04D0B0 7F018540 0FC070A0 */ jal insert_imageDL +/* 04D0B4 7F018544 AFA80044 */ sw $t0, 0x44($sp) +/* 04D0B8 7F018548 0FC2B652 */ jal microcode_constructor +/* 04D0BC 7F01854C 00402025 */ move $a0, $v0 +/* 04D0C0 7F018550 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0C4 7F018554 AFA20060 */ sw $v0, 0x60($sp) +/* 04D0C8 7F018558 24010001 */ li $at, 1 +/* 04D0CC 7F01855C 11000007 */ beqz $t0, .L7F01857C +/* 04D0D0 7F018560 34049C76 */ li $a0, 40054 +/* 04D0D4 7F018564 11010005 */ beq $t0, $at, .L7F01857C +/* 04D0D8 7F018568 24010002 */ li $at, 2 +/* 04D0DC 7F01856C 11010003 */ beq $t0, $at, .L7F01857C +/* 04D0E0 7F018570 24010003 */ li $at, 3 +/* 04D0E4 7F018574 15010005 */ bne $t0, $at, .L7F01858C +/* 04D0E8 7F018578 00000000 */ nop +.L7F01857C: +/* 04D0EC 7F01857C 0FC30AA2 */ jal get_textptr_for_textID +/* 04D0F0 7F018580 AFA80044 */ sw $t0, 0x44($sp) +/* 04D0F4 7F018584 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0F8 7F018588 AFA2004C */ sw $v0, 0x4c($sp) +.L7F01858C: +/* 04D0FC 7F01858C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) # $t9, 0x8004 +/* 04D100 7F018590 8F390EE4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04D104 7F018594 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 04D108 7F018598 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D10C 7F01859C 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D110 7F0185A0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D114 7F0185A4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D118 7F0185A8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D11C 7F0185AC AFA80044 */ sw $t0, 0x44($sp) +/* 04D120 7F0185B0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 04D124 7F0185B4 AFB90010 */ sw $t9, 0x10($sp) +/* 04D128 7F0185B8 8FA90058 */ lw $t1, 0x58($sp) +/* 04D12C 7F0185BC 8FAD005C */ lw $t5, 0x5c($sp) +/* 04D130 7F0185C0 3C198005 */ lui $t9, %hi(j_text_trigger) # $t9, 0x8005 +/* 04D134 7F0185C4 8F398500 */ lw $t9, %lo(j_text_trigger)($t9) +/* 04D138 7F0185C8 240B00DC */ li $t3, 220 +/* 04D13C 7F0185CC 240F0099 */ li $t7, 153 +/* 04D140 7F0185D0 00095043 */ sra $t2, $t1, 1 +/* 04D144 7F0185D4 000D7043 */ sra $t6, $t5, 1 +/* 04D148 7F0185D8 016A6023 */ subu $t4, $t3, $t2 +/* 04D14C 7F0185DC 01EEC023 */ subu $t8, $t7, $t6 +/* 04D150 7F0185E0 8FA80044 */ lw $t0, 0x44($sp) +/* 04D154 7F0185E4 AFAC0054 */ sw $t4, 0x54($sp) +/* 04D158 7F0185E8 1320001D */ beqz $t9, .L7F018660 +/* 04D15C 7F0185EC AFB80050 */ sw $t8, 0x50($sp) +/* 04D160 7F0185F0 0C001107 */ jal get_video2_settings_txtClipW +/* 04D164 7F0185F4 AFA80044 */ sw $t0, 0x44($sp) +/* 04D168 7F0185F8 0C00110B */ jal get_video2_settings_txtClipH +/* 04D16C 7F0185FC A7A2003C */ sh $v0, 0x3c($sp) +/* 04D170 7F018600 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) # $t1, 0x8004 +/* 04D174 7F018604 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) # $t3, 0x8004 +/* 04D178 7F018608 8D6B0EE4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04D17C 7F01860C 8D290EE8 */ lw $t1, %lo(ptrSecondFontTableLarge)($t1) +/* 04D180 7F018610 87AD003C */ lh $t5, 0x3c($sp) +/* 04D184 7F018614 3C0C0080 */ lui $t4, (0x008000FF >> 16) # lui $t4, 0x80 +/* 04D188 7F018618 358C00FF */ ori $t4, (0x008000FF & 0xFFFF) # ori $t4, $t4, 0xff +/* 04D18C 7F01861C 240AFFFF */ li $t2, -1 +/* 04D190 7F018620 AFAA0018 */ sw $t2, 0x18($sp) +/* 04D194 7F018624 AFAC001C */ sw $t4, 0x1c($sp) +/* 04D198 7F018628 8FA40060 */ lw $a0, 0x60($sp) +/* 04D19C 7F01862C 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D1A0 7F018630 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D1A4 7F018634 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D1A8 7F018638 AFA20024 */ sw $v0, 0x24($sp) +/* 04D1AC 7F01863C AFA00028 */ sw $zero, 0x28($sp) +/* 04D1B0 7F018640 AFA0002C */ sw $zero, 0x2c($sp) +/* 04D1B4 7F018644 AFAB0014 */ sw $t3, 0x14($sp) +/* 04D1B8 7F018648 AFA90010 */ sw $t1, 0x10($sp) +/* 04D1BC 7F01864C 0FC2BCA7 */ jal jp_text_write_stuff +/* 04D1C0 7F018650 AFAD0020 */ sw $t5, 0x20($sp) +/* 04D1C4 7F018654 8FA80044 */ lw $t0, 0x44($sp) +/* 04D1C8 7F018658 10000019 */ b .L7F0186C0 +/* 04D1CC 7F01865C AFA20060 */ sw $v0, 0x60($sp) +.L7F018660: +/* 04D1D0 7F018660 0C001107 */ jal get_video2_settings_txtClipW +/* 04D1D4 7F018664 AFA80044 */ sw $t0, 0x44($sp) +/* 04D1D8 7F018668 0C00110B */ jal get_video2_settings_txtClipH +/* 04D1DC 7F01866C A7A2003C */ sh $v0, 0x3c($sp) +/* 04D1E0 7F018670 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) # $t7, 0x8004 +/* 04D1E4 7F018674 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 04D1E8 7F018678 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04D1EC 7F01867C 8DEF0EE8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04D1F0 7F018680 87B9003C */ lh $t9, 0x3c($sp) +/* 04D1F4 7F018684 2418FFFF */ li $t8, -1 +/* 04D1F8 7F018688 AFB80018 */ sw $t8, 0x18($sp) +/* 04D1FC 7F01868C 8FA40060 */ lw $a0, 0x60($sp) +/* 04D200 7F018690 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D204 7F018694 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D208 7F018698 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D20C 7F01869C AFA20020 */ sw $v0, 0x20($sp) +/* 04D210 7F0186A0 AFA00024 */ sw $zero, 0x24($sp) +/* 04D214 7F0186A4 AFA00028 */ sw $zero, 0x28($sp) +/* 04D218 7F0186A8 AFAE0014 */ sw $t6, 0x14($sp) +/* 04D21C 7F0186AC AFAF0010 */ sw $t7, 0x10($sp) +/* 04D220 7F0186B0 0FC2B99B */ jal en_text_write_stuff +/* 04D224 7F0186B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 04D228 7F0186B8 8FA80044 */ lw $t0, 0x44($sp) +/* 04D22C 7F0186BC AFA20060 */ sw $v0, 0x60($sp) +.L7F0186C0: +/* 04D230 7F0186C0 11000007 */ beqz $t0, .L7F0186E0 +/* 04D234 7F0186C4 24010001 */ li $at, 1 +/* 04D238 7F0186C8 11010005 */ beq $t0, $at, .L7F0186E0 +/* 04D23C 7F0186CC 24010002 */ li $at, 2 +/* 04D240 7F0186D0 11010003 */ beq $t0, $at, .L7F0186E0 +/* 04D244 7F0186D4 24010003 */ li $at, 3 +/* 04D248 7F0186D8 15010004 */ bne $t0, $at, .L7F0186EC +/* 04D24C 7F0186DC 00000000 */ nop +.L7F0186E0: +/* 04D250 7F0186E0 0FC30AA2 */ jal get_textptr_for_textID +/* 04D254 7F0186E4 34049C77 */ li $a0, 40055 +/* 04D258 7F0186E8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0186EC: +/* 04D25C 7F0186EC 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) # $t1, 0x8004 +/* 04D260 7F0186F0 8D290EE4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 04D264 7F0186F4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 04D268 7F0186F8 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D26C 7F0186FC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D270 7F018700 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D274 7F018704 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D278 7F018708 AFA00014 */ sw $zero, 0x14($sp) +/* 04D27C 7F01870C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 04D280 7F018710 AFA90010 */ sw $t1, 0x10($sp) +/* 04D284 7F018714 8FAB0058 */ lw $t3, 0x58($sp) +/* 04D288 7F018718 8FAF005C */ lw $t7, 0x5c($sp) +/* 04D28C 7F01871C 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 04D290 7F018720 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 04D294 7F018724 240C00DC */ li $t4, 220 +/* 04D298 7F018728 241800B1 */ li $t8, 177 +/* 04D29C 7F01872C 000B5043 */ sra $t2, $t3, 1 +/* 04D2A0 7F018730 000F7043 */ sra $t6, $t7, 1 +/* 04D2A4 7F018734 018A6823 */ subu $t5, $t4, $t2 +/* 04D2A8 7F018738 030EC823 */ subu $t9, $t8, $t6 +/* 04D2AC 7F01873C AFAD0054 */ sw $t5, 0x54($sp) +/* 04D2B0 7F018740 1120001C */ beqz $t1, .L7F0187B4 +/* 04D2B4 7F018744 AFB90050 */ sw $t9, 0x50($sp) +/* 04D2B8 7F018748 0C001107 */ jal get_video2_settings_txtClipW +/* 04D2BC 7F01874C 00000000 */ nop +/* 04D2C0 7F018750 0C00110B */ jal get_video2_settings_txtClipH +/* 04D2C4 7F018754 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D2C8 7F018758 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) # $t3, 0x8004 +/* 04D2CC 7F01875C 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) # $t4, 0x8004 +/* 04D2D0 7F018760 8D8C0EE4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04D2D4 7F018764 8D6B0EE8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04D2D8 7F018768 87AF003C */ lh $t7, 0x3c($sp) +/* 04D2DC 7F01876C 3C0D0080 */ lui $t5, (0x008000FF >> 16) # lui $t5, 0x80 +/* 04D2E0 7F018770 35AD00FF */ ori $t5, (0x008000FF & 0xFFFF) # ori $t5, $t5, 0xff +/* 04D2E4 7F018774 240AFFFF */ li $t2, -1 +/* 04D2E8 7F018778 AFAA0018 */ sw $t2, 0x18($sp) +/* 04D2EC 7F01877C AFAD001C */ sw $t5, 0x1c($sp) +/* 04D2F0 7F018780 8FA40060 */ lw $a0, 0x60($sp) +/* 04D2F4 7F018784 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D2F8 7F018788 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D2FC 7F01878C 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D300 7F018790 AFA20024 */ sw $v0, 0x24($sp) +/* 04D304 7F018794 AFA00028 */ sw $zero, 0x28($sp) +/* 04D308 7F018798 AFA0002C */ sw $zero, 0x2c($sp) +/* 04D30C 7F01879C AFAC0014 */ sw $t4, 0x14($sp) +/* 04D310 7F0187A0 AFAB0010 */ sw $t3, 0x10($sp) +/* 04D314 7F0187A4 0FC2BCA7 */ jal jp_text_write_stuff +/* 04D318 7F0187A8 AFAF0020 */ sw $t7, 0x20($sp) +/* 04D31C 7F0187AC 10000018 */ b .L7F018810 +/* 04D320 7F0187B0 AFA20060 */ sw $v0, 0x60($sp) +.L7F0187B4: +/* 04D324 7F0187B4 0C001107 */ jal get_video2_settings_txtClipW +/* 04D328 7F0187B8 00000000 */ nop +/* 04D32C 7F0187BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04D330 7F0187C0 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D334 7F0187C4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) # $t8, 0x8004 +/* 04D338 7F0187C8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 04D33C 7F0187CC 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04D340 7F0187D0 8F180EE8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04D344 7F0187D4 87A9003C */ lh $t1, 0x3c($sp) +/* 04D348 7F0187D8 2419FFFF */ li $t9, -1 +/* 04D34C 7F0187DC AFB90018 */ sw $t9, 0x18($sp) +/* 04D350 7F0187E0 8FA40060 */ lw $a0, 0x60($sp) +/* 04D354 7F0187E4 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D358 7F0187E8 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D35C 7F0187EC 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D360 7F0187F0 AFA20020 */ sw $v0, 0x20($sp) +/* 04D364 7F0187F4 AFA00024 */ sw $zero, 0x24($sp) +/* 04D368 7F0187F8 AFA00028 */ sw $zero, 0x28($sp) +/* 04D36C 7F0187FC AFAE0014 */ sw $t6, 0x14($sp) +/* 04D370 7F018800 AFB80010 */ sw $t8, 0x10($sp) +/* 04D374 7F018804 0FC2B99B */ jal en_text_write_stuff +/* 04D378 7F018808 AFA9001C */ sw $t1, 0x1c($sp) +/* 04D37C 7F01880C AFA20060 */ sw $v0, 0x60($sp) +.L7F018810: +/* 04D380 7F018810 8FBF0034 */ lw $ra, 0x34($sp) +/* 04D384 7F018814 8FA20060 */ lw $v0, 0x60($sp) +/* 04D388 7F018818 27BD0060 */ addiu $sp, $sp, 0x60 +/* 04D38C 7F01881C 03E00008 */ jr $ra +/* 04D390 7F018820 00000000 */ nop +) +#endif + +#endif + +#ifdef NONMATCHING +void do_extended_cast_display(u32 flag) +{ + if (flag != FALSE) { + do_not_play_intro_movie = 0; + full_actor_intro = flag; + return; + } + do_not_play_intro_movie = 1; + full_actor_intro = flag; +} +#else +GLOBAL_ASM( +.text +glabel do_extended_cast_display +/* 04D1A0 7F018670 3C018003 */ lui $at, %hi(full_actor_intro) +/* 04D1A4 7F018674 10800004 */ beqz $a0, .L7F018688 +/* 04D1A8 7F018678 AC24B5FC */ sw $a0, %lo(full_actor_intro)($at) +/* 04D1AC 7F01867C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) +/* 04D1B0 7F018680 03E00008 */ jr $ra +/* 04D1B4 7F018684 AC20B5E8 */ sw $zero, %lo(do_not_play_intro_movie)($at) +.L7F018688: +/* 04D1B8 7F018688 240E0001 */ li $t6, 1 +/* 04D1BC 7F01868C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) +/* 04D1C0 7F018690 AC2EB5E8 */ sw $t6, %lo(do_not_play_intro_movie)($at) +/* 04D1C4 7F018694 03E00008 */ jr $ra +/* 04D1C8 7F018698 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void init_menu18_displaycast(void) +{ + object_header *objheader; + u32 uVar2; + u32 uVar3; + int iVar4; + s32 lVar1; + u32 BVar5; + int iVar6; + s32 extraout_a2_lo; + s32 extraout_a2_lo_00; + s32 extraout_a3_lo; + int *piVar7; + int *piVar8; + int *piVar9; + int *piVar10; + float fVar11; + f32 scale; + f32 scale_00; + float extraout_f12; + f32 extraout_f12_00; + float extraout_f12_01; + f32 extraout_f14; + float extraout_f14_00; + int local_8c [10]; + int rifles [6]; + object_header *headHeader; + HEADS headID; + BODIES bodyID; + int aiStack40 [4]; + float local_18; + s32 local_14; + s32 local_10; + undefined *local_8; + undefined *local_4; + + local_4 = ptr_logo_and_walletbond_DL; + local_18 = dword_8002BA2C; + local_14 = DAT_8002ba30; + local_10 = DAT_8002ba34; + headHeader = NULL; + uVar2 = get_random_value(); + if ((full_actor_intro != FALSE) && (do_not_play_intro_movie == 0)) { + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_INTRO); + } + intro_animation_count = 0; + if (-1 < intro_animation_table[0].animID) { + intro_animation_count = 1; + while (-1 < intro_animation_table[intro_animation_count].animID) { + intro_animation_count += 1; + } + } + randomly_selected_intro_animation = get_random_value(); + randomly_selected_intro_animation %= intro_animation_count; + bodyID = intro_char_table[do_not_play_intro_movie].body; + headID = intro_char_table[do_not_play_intro_movie].head; + iVar6 = intro_animation_table[randomly_selected_intro_animation].camera_preset; + if (intro_animation_count == 0) { + trap(0x1c00); + } + if (bodyID == BODY_Special_Operations_Uniform) { + uVar3 = get_random_value(); + if (true) { + switch(uVar3 % 5) { + case 1: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Formal_Wear; + break; + case 2: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Jungle_Fatigues; + break; + case 3: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Parka; + break; + case 4: + headID = HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT; + bodyID = BODY_Tuxedo; + } + } + } + else { + if (bodyID == BODY_Natalya_Skirt) { + uVar3 = get_random_value(); + if ((uVar3 & 1) != 0) { + bodyID = BODY_Natalya_Jungle_Fatigues; + } + } + else { + if ((bodyID == BODY_Trevelyan_006) && (uVar3 = get_random_value(), (uVar3 & 1) != 0)) { + bodyID = BODY_Trevelyan_Janus; + } + } + } + if (headID == 0xffffff9f) { + headID = get_random_head(bodyID); + } + local_8 = &DAT_00031160; + proc_7F0D2448(((u32)(local_4 + 0x3119f) | 0x3f) ^ 0x3f,0x1b8,0x14a); + proc_7F0CBAF4(aiStack40,(int)local_4,0x19000); + objheader = c_item_entries[bodyID].header; + local_4 = local_4 + 0x19000; + local_8 = local_8 + -0x19000; + load_object_fill_header + (objheader,(int *)c_item_entries[bodyID].filename,(int)local_4,(int)local_8, + (int)aiStack40); + iVar4 = proc_7F0BD188((u8 *)c_item_entries[bodyID].filename); + uVar3 = (iVar4 + 0x3fU | 0x3f) ^ 0x3f; + local_8 = local_8 + -uVar3; + local_4 = local_4 + uVar3; + if (-1 < (int)headID) { + headHeader = c_item_entries[headID].header; + load_object_fill_header + (headHeader,(int *)c_item_entries[headID].filename,(int)local_4,(int)local_8, + (int)aiStack40); + iVar4 = proc_7F0BD188((u8 *)c_item_entries[headID].filename); + uVar3 = (iVar4 + 0x3fU | 0x3f) ^ 0x3f; + local_8 = local_8 + -uVar3; + local_4 = local_4 + uVar3; + } + objinstance = (undefined *)setup_chr_instance(bodyID,headID,objheader,headHeader,0); + set_obj_instance_controller_scale((int)objinstance,scale); + if (iVar6 == 0) { + ptrobjinstance = NULL; + } + else { + if (iVar6 == 2) { + rifles[0] = random_rifles_in_intro[0]; + rifles[1] = random_rifles_in_intro[1]; + rifles[3] = random_rifles_in_intro[3]; + rifles[2] = random_rifles_in_intro[2]; + rifles[4] = random_rifles_in_intro[4]; + rifles[5] = random_rifles_in_intro[5]; + uVar3 = get_random_value(); + iVar6 = rifles[uVar3 % 6]; + } + else { + piVar7 = random_pistols_in_intro; + piVar9 = local_8c; + do { + piVar8 = piVar7 + 3; + piVar10 = piVar9 + 3; + *piVar9 = *piVar7; + piVar9[1] = piVar7[1]; + piVar9[2] = piVar7[2]; + piVar7 = piVar8; + piVar9 = piVar10; + } while (piVar8 != random_pistols_in_intro + 9); + *piVar10 = random_pistols_in_intro[9]; + uVar3 = get_random_value(); + iVar6 = local_8c[uVar3 % 10]; + } + if ((iVar6 == 0xbe) && (lVar1 = check_cradle_completed_any_folder(), lVar1 == 0)) { + iVar6 = 0xbf; + } + if ((iVar6 == 0xbb) && (BVar5 = check_aztec_completed_any_folder_secret_00(), BVar5 == FALSE)) { + iVar6 = 0xbf; + } + if ((iVar6 == 0xd0) && (BVar5 = check_egypt_completed_any_folder_00(), BVar5 == FALSE)) { + iVar6 = 0xbf; + } + objheader = (object_header *)PitemZ_entries[iVar6].header; + load_object_fill_header + (objheader,(int *)PitemZ_entries[iVar6].filename,(int)local_4,(int)local_8, + (int)aiStack40); + proc_7F0BD188((u8 *)PitemZ_entries[iVar6].filename); + set_objuse_flag_compute_grp_nums_set_obj_loaded(objheader); + ptrobjinstance = (undefined *)get_obj_instance_controller_for_header((PitemZ_header *)objheader) + ; + set_obj_instance_controller_scale((int)ptrobjinstance,scale_00); + iVar6 = 3; + *(undefined **)(ptrobjinstance + 0x18) = objinstance; + if ((uVar2 & 1) != 0) { + iVar6 = 5; + } + *(s32 *)(ptrobjinstance + 0x1c) = + *(s32 *)(*(int *)(*(int *)(objinstance + 8) + 8) + iVar6 * 4); + } + proc_7F06CE84((int)objinstance,0x3dcccccd); + setsuboffset((int)objinstance,&local_18,extraout_a2_lo,extraout_a3_lo); + setsubroty((int)objinstance,extraout_f12,0.00000000,extraout_a2_lo_00); + proc_7F06FF18((int)objinstance,extraout_f12_00,extraout_f14); + proc_7F06FCA8((int)objinstance, + *(s32 *) + (animation_table_ptrs1 + + intro_animation_table[randomly_selected_intro_animation].animID * 4), + (char)(uVar2 & 1),extraout_f12_01, + intro_animation_table[randomly_selected_intro_animation].startframeoffset, + extraout_f14_00); + menu_timer = 0; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a4 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a8 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695b0 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B00; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695b4 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B04; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695bc = fVar11 * 0.00000000 * 200.00000000 + -100.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a0 = DAT_800695a4; + dword_80069C6C = DAT_800695b0; + DAT_800695b8 = DAT_800695bc; + DAT_800695c0 = fVar11 * 0.00000000 * 200.00000000 + -100.00000000; + DAT_800695e4 = 1; + DAT_800695e8 = 0; + DAT_800695ec = 0; + DAT_800695f0 = 0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_intro_bond_head + .word set_body_mp_choice_maybe + .word set_body_default + .word set_body_jungle + .word set_body_snowsuit + .word set_body_5 +glabel D_80051B00 +.word 0x40C90FDB /*6.2831855;*/ +glabel D_80051B04 +.word 0x4020D97C /*2.5132742;*/ +glabel D_80051B08 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B0C +.word 0x40C90FDB /*6.2831855;*/ +glabel D_80051B10 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B14 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B18 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B1C +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B20 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B24 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B28 +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B2C +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B30 +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B34 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B38 +.word 0x40490FDB /*3.1415927;*/ +glabel D_80051B3C +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B40 +.word 0x461C4000 /*10000.0;*/ +glabel D_80051B44 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B48 +.word 0x3FAAAAAB /*1.3333334;*/ +.text +glabel init_menu18_displaycast +/* 04D1CC 7F01869C 3C0E8003 */ lui $t6, %hi(ptr_logo_and_walletbond_DL) +/* 04D1D0 7F0186A0 8DCEA950 */ lw $t6, %lo(ptr_logo_and_walletbond_DL)($t6) +/* 04D1D4 7F0186A4 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 04D1D8 7F0186A8 3C188003 */ lui $t8, %hi(D_8002BA2C) +/* 04D1DC 7F0186AC AFBF001C */ sw $ra, 0x1c($sp) +/* 04D1E0 7F0186B0 2718BA2C */ addiu $t8, %lo(D_8002BA2C) # addiu $t8, $t8, -0x45d4 +/* 04D1E4 7F0186B4 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 04D1E8 7F0186B8 8F010000 */ lw $at, ($t8) +/* 04D1EC 7F0186BC 27AF00A0 */ addiu $t7, $sp, 0xa0 +/* 04D1F0 7F0186C0 8F090004 */ lw $t1, 4($t8) +/* 04D1F4 7F0186C4 ADE10000 */ sw $at, ($t7) +/* 04D1F8 7F0186C8 8F010008 */ lw $at, 8($t8) +/* 04D1FC 7F0186CC ADE90004 */ sw $t1, 4($t7) +/* 04D200 7F0186D0 ADE10008 */ sw $at, 8($t7) +/* 04D204 7F0186D4 0C002914 */ jal get_random_value +/* 04D208 7F0186D8 AFA0007C */ sw $zero, 0x7c($sp) +/* 04D20C 7F0186DC 3C0B8003 */ lui $t3, %hi(full_actor_intro) +/* 04D210 7F0186E0 8D6BB5FC */ lw $t3, %lo(full_actor_intro)($t3) +/* 04D214 7F0186E4 304A0001 */ andi $t2, $v0, 1 +/* 04D218 7F0186E8 AFAA0070 */ sw $t2, 0x70($sp) +/* 04D21C 7F0186EC 1160000A */ beqz $t3, .L7F018718 +/* 04D220 7F0186F0 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04D224 7F0186F4 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04D228 7F0186F8 15800007 */ bnez $t4, .L7F018718 +/* 04D22C 7F0186FC 00000000 */ nop +/* 04D230 7F018700 0C001C0F */ jal musicTrack1Vol +/* 04D234 7F018704 24047FFF */ li $a0, 32767 +/* 04D238 7F018708 3C018002 */ lui $at, %hi(music1_playing) +/* 04D23C 7F01870C AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 04D240 7F018710 0C001B9F */ jal musicTrack1Play +/* 04D244 7F018714 24040002 */ li $a0, 2 +.L7F018718: +/* 04D248 7F018718 3C048003 */ lui $a0, %hi(intro_animation_table) +/* 04D24C 7F01871C 2484B8BC */ addiu $a0, %lo(intro_animation_table) # addiu $a0, $a0, -0x4744 +/* 04D250 7F018720 00006900 */ sll $t5, $zero, 4 +/* 04D254 7F018724 008D7021 */ addu $t6, $a0, $t5 +/* 04D258 7F018728 8DC80000 */ lw $t0, ($t6) +/* 04D25C 7F01872C 3C038003 */ lui $v1, %hi(intro_animation_count) +/* 04D260 7F018730 2463B5F0 */ addiu $v1, %lo(intro_animation_count) # addiu $v1, $v1, -0x4a10 +/* 04D264 7F018734 AC600000 */ sw $zero, ($v1) +/* 04D268 7F018738 05000009 */ bltz $t0, .L7F018760 +/* 04D26C 7F01873C 00001025 */ move $v0, $zero +/* 04D270 7F018740 24590001 */ addiu $t9, $v0, 1 +.L7F018744: +/* 04D274 7F018744 00197900 */ sll $t7, $t9, 4 +/* 04D278 7F018748 008FC021 */ addu $t8, $a0, $t7 +/* 04D27C 7F01874C 8F090000 */ lw $t1, ($t8) +/* 04D280 7F018750 AC790000 */ sw $t9, ($v1) +/* 04D284 7F018754 03201025 */ move $v0, $t9 +/* 04D288 7F018758 0523FFFA */ bgezl $t1, .L7F018744 +/* 04D28C 7F01875C 24590001 */ addiu $t9, $v0, 1 +.L7F018760: +/* 04D290 7F018760 0C002914 */ jal get_random_value +/* 04D294 7F018764 00000000 */ nop +/* 04D298 7F018768 3C038003 */ lui $v1, %hi(intro_animation_count) +/* 04D29C 7F01876C 2463B5F0 */ addiu $v1, %lo(intro_animation_count) # addiu $v1, $v1, -0x4a10 +/* 04D2A0 7F018770 8C6A0000 */ lw $t2, ($v1) +/* 04D2A4 7F018774 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04D2A8 7F018778 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04D2AC 7F01877C 004A001B */ divu $zero, $v0, $t2 +/* 04D2B0 7F018780 00005810 */ mfhi $t3 +/* 04D2B4 7F018784 3C018003 */ lui $at, %hi(randomly_selected_intro_animation) +/* 04D2B8 7F018788 AC2BB5EC */ sw $t3, %lo(randomly_selected_intro_animation)($at) +/* 04D2BC 7F01878C 3C0F8003 */ lui $t7, %hi(randomly_selected_intro_animation) +/* 04D2C0 7F018790 000C6880 */ sll $t5, $t4, 2 +/* 04D2C4 7F018794 8DEFB5EC */ lw $t7, %lo(randomly_selected_intro_animation)($t7) +/* 04D2C8 7F018798 3C0E8003 */ lui $t6, %hi(intro_char_table) +/* 04D2CC 7F01879C 01AC6821 */ addu $t5, $t5, $t4 +/* 04D2D0 7F0187A0 000D6880 */ sll $t5, $t5, 2 +/* 04D2D4 7F0187A4 25CEB600 */ addiu $t6, %lo(intro_char_table) # addiu $t6, $t6, -0x4a00 +/* 04D2D8 7F0187A8 01AE2021 */ addu $a0, $t5, $t6 +/* 04D2DC 7F0187AC 8C880000 */ lw $t0, ($a0) +/* 04D2E0 7F0187B0 3C098003 */ lui $t1, %hi(intro_animation_table+12) +/* 04D2E4 7F0187B4 000FC100 */ sll $t8, $t7, 4 +/* 04D2E8 7F0187B8 01384821 */ addu $t1, $t1, $t8 +/* 04D2EC 7F0187BC 8C990004 */ lw $t9, 4($a0) +/* 04D2F0 7F0187C0 8D29B8C8 */ lw $t1, %lo(intro_animation_table+12)($t1) +/* 04D2F4 7F0187C4 24010016 */ li $at, 22 +/* 04D2F8 7F0187C8 15400002 */ bnez $t2, .L7F0187D4 +/* 04D2FC 7F0187CC 00000000 */ nop +/* 04D300 7F0187D0 0007000D */ break 7 +.L7F0187D4: +/* 04D304 7F0187D4 AFA8008C */ sw $t0, 0x8c($sp) +/* 04D308 7F0187D8 01005025 */ move $t2, $t0 +/* 04D30C 7F0187DC AFB90088 */ sw $t9, 0x88($sp) +/* 04D310 7F0187E0 15010022 */ bne $t0, $at, .L7F01886C +/* 04D314 7F0187E4 AFA9006C */ sw $t1, 0x6c($sp) +/* 04D318 7F0187E8 0C002914 */ jal get_random_value +/* 04D31C 7F0187EC 00000000 */ nop +/* 04D320 7F0187F0 24010005 */ li $at, 5 +/* 04D324 7F0187F4 0041001B */ divu $zero, $v0, $at +/* 04D328 7F0187F8 00005810 */ mfhi $t3 +/* 04D32C 7F0187FC 2D610005 */ sltiu $at, $t3, 5 +/* 04D330 7F018800 1020002F */ beqz $at, .L7F0188C0 +/* 04D334 7F018804 000B5880 */ sll $t3, $t3, 2 +/* 04D338 7F018808 3C018005 */ lui $at, %hi(jpt_intro_bond_head) +/* 04D33C 7F01880C 002B0821 */ addu $at, $at, $t3 +/* 04D340 7F018810 8C2B1AEC */ lw $t3, %lo(jpt_intro_bond_head)($at) +/* 04D344 7F018814 01600008 */ jr $t3 +/* 04D348 7F018818 00000000 */ nop +set_body_default: +/* 04D34C 7F01881C 240C0017 */ li $t4, 23 +/* 04D350 7F018820 240D004B */ li $t5, 75 +/* 04D354 7F018824 AFAD0088 */ sw $t5, 0x88($sp) +/* 04D358 7F018828 10000025 */ b .L7F0188C0 +/* 04D35C 7F01882C AFAC008C */ sw $t4, 0x8c($sp) +set_body_jungle: +/* 04D360 7F018830 240E0018 */ li $t6, 24 +/* 04D364 7F018834 2408004B */ li $t0, 75 +/* 04D368 7F018838 AFA80088 */ sw $t0, 0x88($sp) +/* 04D36C 7F01883C 10000020 */ b .L7F0188C0 +/* 04D370 7F018840 AFAE008C */ sw $t6, 0x8c($sp) +set_body_snowsuit: +/* 04D374 7F018844 24190019 */ li $t9, 25 +/* 04D378 7F018848 240F004B */ li $t7, 75 +/* 04D37C 7F01884C AFAF0088 */ sw $t7, 0x88($sp) +/* 04D380 7F018850 1000001B */ b .L7F0188C0 +/* 04D384 7F018854 AFB9008C */ sw $t9, 0x8c($sp) +set_body_5: +/* 04D388 7F018858 24180005 */ li $t8, 5 +/* 04D38C 7F01885C 2409004E */ li $t1, 78 +/* 04D390 7F018860 AFA90088 */ sw $t1, 0x88($sp) +/* 04D394 7F018864 10000016 */ b .L7F0188C0 +/* 04D398 7F018868 AFB8008C */ sw $t8, 0x8c($sp) +.L7F01886C: +/* 04D39C 7F01886C 8FAA008C */ lw $t2, 0x8c($sp) +/* 04D3A0 7F018870 24010010 */ li $at, 16 +/* 04D3A4 7F018874 8FAD008C */ lw $t5, 0x8c($sp) +/* 04D3A8 7F018878 55410009 */ bnel $t2, $at, .L7F0188A0 +/* 04D3AC 7F01887C 24010009 */ li $at, 9 +/* 04D3B0 7F018880 0C002914 */ jal get_random_value +/* 04D3B4 7F018884 00000000 */ nop +/* 04D3B8 7F018888 304B0001 */ andi $t3, $v0, 1 +/* 04D3BC 7F01888C 1160000C */ beqz $t3, .L7F0188C0 +/* 04D3C0 7F018890 240C004F */ li $t4, 79 +/* 04D3C4 7F018894 1000000A */ b .L7F0188C0 +/* 04D3C8 7F018898 AFAC008C */ sw $t4, 0x8c($sp) +/* 04D3CC 7F01889C 24010009 */ li $at, 9 +.L7F0188A0: +/* 04D3D0 7F0188A0 55A10008 */ bnel $t5, $at, .L7F0188C4 +/* 04D3D4 7F0188A4 8FB90088 */ lw $t9, 0x88($sp) +/* 04D3D8 7F0188A8 0C002914 */ jal get_random_value +/* 04D3DC 7F0188AC 00000000 */ nop +/* 04D3E0 7F0188B0 304E0001 */ andi $t6, $v0, 1 +/* 04D3E4 7F0188B4 11C00002 */ beqz $t6, .L7F0188C0 +/* 04D3E8 7F0188B8 24080008 */ li $t0, 8 +/* 04D3EC 7F0188BC AFA8008C */ sw $t0, 0x8c($sp) +set_body_mp_choice_maybe: +.L7F0188C0: +/* 04D3F0 7F0188C0 8FB90088 */ lw $t9, 0x88($sp) +.L7F0188C4: +/* 04D3F4 7F0188C4 2401FF9F */ li $at, -97 +/* 04D3F8 7F0188C8 57210005 */ bnel $t9, $at, .L7F0188E0 +/* 04D3FC 7F0188CC 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 04D400 7F0188D0 0FC08D98 */ jal get_random_head +/* 04D404 7F0188D4 8FA4008C */ lw $a0, 0x8c($sp) +/* 04D408 7F0188D8 AFA20088 */ sw $v0, 0x88($sp) +/* 04D40C 7F0188DC 8FAF00B4 */ lw $t7, 0xb4($sp) +.L7F0188E0: +/* 04D410 7F0188E0 3C020003 */ lui $v0, (0x00031160 >> 16) # lui $v0, 3 +/* 04D414 7F0188E4 34421160 */ ori $v0, (0x00031160 & 0xFFFF) # ori $v0, $v0, 0x1160 +/* 04D418 7F0188E8 01E22021 */ addu $a0, $t7, $v0 +/* 04D41C 7F0188EC 2484003F */ addiu $a0, $a0, 0x3f +/* 04D420 7F0188F0 3498003F */ ori $t8, $a0, 0x3f +/* 04D424 7F0188F4 3B04003F */ xori $a0, $t8, 0x3f +/* 04D428 7F0188F8 AFA200B0 */ sw $v0, 0xb0($sp) +/* 04D42C 7F0188FC 240501B8 */ li $a1, 440 +/* 04D430 7F018900 0FC34912 */ jal sub_GAME_7F0D2448 +/* 04D434 7F018904 2406014A */ li $a2, 330 +/* 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 +/* 04D448 7F018918 8FA500B4 */ lw $a1, 0xb4($sp) +/* 04D44C 7F01891C 8FAA008C */ lw $t2, 0x8c($sp) +/* 04D450 7F018920 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 04D454 7F018924 8FA600B4 */ lw $a2, 0xb4($sp) +/* 04D458 7F018928 000A5880 */ sll $t3, $t2, 2 +/* 04D45C 7F01892C 016A5821 */ addu $t3, $t3, $t2 +/* 04D460 7F018930 8FA700B0 */ lw $a3, 0xb0($sp) +/* 04D464 7F018934 3C030001 */ lui $v1, (0x00019000 >> 16) # lui $v1, 1 +/* 04D468 7F018938 000B5880 */ sll $t3, $t3, 2 +/* 04D46C 7F01893C 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 04D470 7F018940 34639000 */ ori $v1, (0x00019000 & 0xFFFF) # ori $v1, $v1, 0x9000 +/* 04D474 7F018944 016C1021 */ addu $v0, $t3, $t4 +/* 04D478 7F018948 8C440000 */ lw $a0, ($v0) +/* 04D47C 7F01894C 27AD0090 */ addiu $t5, $sp, 0x90 +/* 04D480 7F018950 00C33021 */ addu $a2, $a2, $v1 +/* 04D484 7F018954 00E33823 */ subu $a3, $a3, $v1 +/* 04D488 7F018958 AFA700B0 */ sw $a3, 0xb0($sp) +/* 04D48C 7F01895C AFA600B4 */ sw $a2, 0xb4($sp) +/* 04D490 7F018960 AFAD0010 */ sw $t5, 0x10($sp) +/* 04D494 7F018964 8C450004 */ lw $a1, 4($v0) +/* 04D498 7F018968 AFA20024 */ sw $v0, 0x24($sp) +/* 04D49C 7F01896C 0FC1D929 */ jal load_object_fill_header +/* 04D4A0 7F018970 AFA40080 */ sw $a0, 0x80($sp) +/* 04D4A4 7F018974 8FA20024 */ lw $v0, 0x24($sp) +/* 04D4A8 7F018978 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D4AC 7F01897C 8C440004 */ lw $a0, 4($v0) +/* 04D4B0 7F018980 2443003F */ addiu $v1, $v0, 0x3f +/* 04D4B4 7F018984 8FB900B0 */ lw $t9, 0xb0($sp) +/* 04D4B8 7F018988 8FB800B4 */ lw $t8, 0xb4($sp) +/* 04D4BC 7F01898C 346E003F */ ori $t6, $v1, 0x3f +/* 04D4C0 7F018990 8FAA0088 */ lw $t2, 0x88($sp) +/* 04D4C4 7F018994 39C8003F */ xori $t0, $t6, 0x3f +/* 04D4C8 7F018998 03287823 */ subu $t7, $t9, $t0 +/* 04D4CC 7F01899C 03084821 */ addu $t1, $t8, $t0 +/* 04D4D0 7F0189A0 AFAF00B0 */ sw $t7, 0xb0($sp) +/* 04D4D4 7F0189A4 0540001C */ bltz $t2, .L7F018A18 +/* 04D4D8 7F0189A8 AFA900B4 */ sw $t1, 0xb4($sp) +/* 04D4DC 7F0189AC 000A5880 */ sll $t3, $t2, 2 +/* 04D4E0 7F0189B0 016A5821 */ addu $t3, $t3, $t2 +/* 04D4E4 7F0189B4 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 04D4E8 7F0189B8 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 04D4EC 7F0189BC 000B5880 */ sll $t3, $t3, 2 +/* 04D4F0 7F0189C0 016C1021 */ addu $v0, $t3, $t4 +/* 04D4F4 7F0189C4 8C440000 */ lw $a0, ($v0) +/* 04D4F8 7F0189C8 27AD0090 */ addiu $t5, $sp, 0x90 +/* 04D4FC 7F0189CC AFAD0010 */ sw $t5, 0x10($sp) +/* 04D500 7F0189D0 8C450004 */ lw $a1, 4($v0) +/* 04D504 7F0189D4 AFA20024 */ sw $v0, 0x24($sp) +/* 04D508 7F0189D8 01203025 */ move $a2, $t1 +/* 04D50C 7F0189DC 01E03825 */ move $a3, $t7 +/* 04D510 7F0189E0 0FC1D929 */ jal load_object_fill_header +/* 04D514 7F0189E4 AFA4007C */ sw $a0, 0x7c($sp) +/* 04D518 7F0189E8 8FA20024 */ lw $v0, 0x24($sp) +/* 04D51C 7F0189EC 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D520 7F0189F0 8C440004 */ lw $a0, 4($v0) +/* 04D524 7F0189F4 2443003F */ addiu $v1, $v0, 0x3f +/* 04D528 7F0189F8 8FB900B0 */ lw $t9, 0xb0($sp) +/* 04D52C 7F0189FC 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 04D530 7F018A00 346E003F */ ori $t6, $v1, 0x3f +/* 04D534 7F018A04 39C8003F */ xori $t0, $t6, 0x3f +/* 04D538 7F018A08 0328C023 */ subu $t8, $t9, $t0 +/* 04D53C 7F018A0C 01485821 */ addu $t3, $t2, $t0 +/* 04D540 7F018A10 AFB800B0 */ sw $t8, 0xb0($sp) +/* 04D544 7F018A14 AFAB00B4 */ sw $t3, 0xb4($sp) +.L7F018A18: +/* 04D548 7F018A18 8FA4008C */ lw $a0, 0x8c($sp) +/* 04D54C 7F018A1C 8FA50088 */ lw $a1, 0x88($sp) +/* 04D550 7F018A20 8FA60080 */ lw $a2, 0x80($sp) +/* 04D554 7F018A24 8FA7007C */ lw $a3, 0x7c($sp) +/* 04D558 7F018A28 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 04D55C 7F018A2C AFA00010 */ sw $zero, 0x10($sp) +/* 04D560 7F018A30 3C038003 */ lui $v1, %hi(objinstance) +/* 04D564 7F018A34 2463B5F4 */ addiu $v1, %lo(objinstance) # addiu $v1, $v1, -0x4a0c +/* 04D568 7F018A38 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D56C 7F018A3C AC620000 */ sw $v0, ($v1) +/* 04D570 7F018A40 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D574 7F018A44 0FC1B39E */ jal set_obj_instance_controller_scale +/* 04D578 7F018A48 00402025 */ move $a0, $v0 +/* 04D57C 7F018A4C 8FAC006C */ lw $t4, 0x6c($sp) +/* 04D580 7F018A50 24010002 */ li $at, 2 +/* 04D584 7F018A54 1180007A */ beqz $t4, .L7F018C40 +/* 04D588 7F018A58 00000000 */ nop +/* 04D58C 7F018A5C 15810018 */ bne $t4, $at, .L7F018AC0 +/* 04D590 7F018A60 27B8002C */ addiu $t8, $sp, 0x2c +/* 04D594 7F018A64 3C0F8003 */ lui $t7, %hi(random_rifles_in_intro) +/* 04D598 7F018A68 25EFBA38 */ addiu $t7, %lo(random_rifles_in_intro) # addiu $t7, $t7, -0x45c8 +/* 04D59C 7F018A6C 8DE10000 */ lw $at, ($t7) +/* 04D5A0 7F018A70 8DEE0004 */ lw $t6, 4($t7) +/* 04D5A4 7F018A74 27A90054 */ addiu $t1, $sp, 0x54 +/* 04D5A8 7F018A78 AD210000 */ sw $at, ($t1) +/* 04D5AC 7F018A7C AD2E0004 */ sw $t6, 4($t1) +/* 04D5B0 7F018A80 8DEE000C */ lw $t6, 0xc($t7) +/* 04D5B4 7F018A84 8DE10008 */ lw $at, 8($t7) +/* 04D5B8 7F018A88 AD2E000C */ sw $t6, 0xc($t1) +/* 04D5BC 7F018A8C AD210008 */ sw $at, 8($t1) +/* 04D5C0 7F018A90 8DE10010 */ lw $at, 0x10($t7) +/* 04D5C4 7F018A94 8DEE0014 */ lw $t6, 0x14($t7) +/* 04D5C8 7F018A98 AD210010 */ sw $at, 0x10($t1) +/* 04D5CC 7F018A9C 0C002914 */ jal get_random_value +/* 04D5D0 7F018AA0 AD2E0014 */ sw $t6, 0x14($t1) +/* 04D5D4 7F018AA4 24010006 */ li $at, 6 +/* 04D5D8 7F018AA8 0041001B */ divu $zero, $v0, $at +/* 04D5DC 7F018AAC 00004010 */ mfhi $t0 +/* 04D5E0 7F018AB0 0008C880 */ sll $t9, $t0, 2 +/* 04D5E4 7F018AB4 03B91821 */ addu $v1, $sp, $t9 +/* 04D5E8 7F018AB8 10000016 */ b .L7F018B14 +/* 04D5EC 7F018ABC 8C630054 */ lw $v1, 0x54($v1) +.L7F018AC0: +/* 04D5F0 7F018AC0 3C0A8003 */ lui $t2, %hi(random_pistols_in_intro) +/* 04D5F4 7F018AC4 254ABA50 */ addiu $t2, %lo(random_pistols_in_intro) # addiu $t2, $t2, -0x45b0 +/* 04D5F8 7F018AC8 254C0024 */ addiu $t4, $t2, 0x24 +.L7F018ACC: +/* 04D5FC 7F018ACC 8D410000 */ lw $at, ($t2) +/* 04D600 7F018AD0 254A000C */ addiu $t2, $t2, 0xc +/* 04D604 7F018AD4 2718000C */ addiu $t8, $t8, 0xc +/* 04D608 7F018AD8 AF01FFF4 */ sw $at, -0xc($t8) +/* 04D60C 7F018ADC 8D41FFF8 */ lw $at, -8($t2) +/* 04D610 7F018AE0 AF01FFF8 */ sw $at, -8($t8) +/* 04D614 7F018AE4 8D41FFFC */ lw $at, -4($t2) +/* 04D618 7F018AE8 154CFFF8 */ bne $t2, $t4, .L7F018ACC +/* 04D61C 7F018AEC AF01FFFC */ sw $at, -4($t8) +/* 04D620 7F018AF0 8D410000 */ lw $at, ($t2) +/* 04D624 7F018AF4 0C002914 */ jal get_random_value +/* 04D628 7F018AF8 AF010000 */ sw $at, ($t8) +/* 04D62C 7F018AFC 2401000A */ li $at, 10 +/* 04D630 7F018B00 0041001B */ divu $zero, $v0, $at +/* 04D634 7F018B04 00006810 */ mfhi $t5 +/* 04D638 7F018B08 000D4880 */ sll $t1, $t5, 2 +/* 04D63C 7F018B0C 03A91821 */ addu $v1, $sp, $t1 +/* 04D640 7F018B10 8C63002C */ lw $v1, 0x2c($v1) +.L7F018B14: +/* 04D644 7F018B14 240100BE */ li $at, 190 +/* 04D648 7F018B18 54610007 */ bnel $v1, $at, .L7F018B38 +/* 04D64C 7F018B1C 240100BB */ li $at, 187 +/* 04D650 7F018B20 0FC07AB4 */ jal check_cradle_completed_any_folder +/* 04D654 7F018B24 AFA30084 */ sw $v1, 0x84($sp) +/* 04D658 7F018B28 14400002 */ bnez $v0, .L7F018B34 +/* 04D65C 7F018B2C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D660 7F018B30 240300BF */ li $v1, 191 +.L7F018B34: +/* 04D664 7F018B34 240100BB */ li $at, 187 +.L7F018B38: +/* 04D668 7F018B38 54610007 */ bnel $v1, $at, .L7F018B58 +/* 04D66C 7F018B3C 240100D0 */ li $at, 208 +/* 04D670 7F018B40 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04D674 7F018B44 AFA30084 */ sw $v1, 0x84($sp) +/* 04D678 7F018B48 14400002 */ bnez $v0, .L7F018B54 +/* 04D67C 7F018B4C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D680 7F018B50 240300BF */ li $v1, 191 +.L7F018B54: +/* 04D684 7F018B54 240100D0 */ li $at, 208 +.L7F018B58: +/* 04D688 7F018B58 54610007 */ bnel $v1, $at, .L7F018B78 +/* 04D68C 7F018B5C 00037880 */ sll $t7, $v1, 2 +/* 04D690 7F018B60 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04D694 7F018B64 AFA30084 */ sw $v1, 0x84($sp) +/* 04D698 7F018B68 14400002 */ bnez $v0, .L7F018B74 +/* 04D69C 7F018B6C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D6A0 7F018B70 240300BF */ li $v1, 191 +.L7F018B74: +/* 04D6A4 7F018B74 00037880 */ sll $t7, $v1, 2 +.L7F018B78: +/* 04D6A8 7F018B78 01E37823 */ subu $t7, $t7, $v1 +/* 04D6AC 7F018B7C 3C0E8004 */ lui $t6, %hi(PitemZ_entries) +/* 04D6B0 7F018B80 25CEA228 */ addiu $t6, %lo(PitemZ_entries) # addiu $t6, $t6, -0x5dd8 +/* 04D6B4 7F018B84 000F7880 */ sll $t7, $t7, 2 +/* 04D6B8 7F018B88 01EE1021 */ addu $v0, $t7, $t6 +/* 04D6BC 7F018B8C 8C440000 */ lw $a0, ($v0) +/* 04D6C0 7F018B90 27A80090 */ addiu $t0, $sp, 0x90 +/* 04D6C4 7F018B94 AFA80010 */ sw $t0, 0x10($sp) +/* 04D6C8 7F018B98 8C450004 */ lw $a1, 4($v0) +/* 04D6CC 7F018B9C AFA20024 */ sw $v0, 0x24($sp) +/* 04D6D0 7F018BA0 8FA600B4 */ lw $a2, 0xb4($sp) +/* 04D6D4 7F018BA4 8FA700B0 */ lw $a3, 0xb0($sp) +/* 04D6D8 7F018BA8 0FC1D929 */ jal load_object_fill_header +/* 04D6DC 7F018BAC AFA40078 */ sw $a0, 0x78($sp) +/* 04D6E0 7F018BB0 8FA20024 */ lw $v0, 0x24($sp) +/* 04D6E4 7F018BB4 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D6E8 7F018BB8 8C440004 */ lw $a0, 4($v0) +/* 04D6EC 7F018BBC 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 04D6F0 7F018BC0 8FA40078 */ lw $a0, 0x78($sp) +/* 04D6F4 7F018BC4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 04D6F8 7F018BC8 8FA40078 */ lw $a0, 0x78($sp) +/* 04D6FC 7F018BCC 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D700 7F018BD0 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D704 7F018BD4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D708 7F018BD8 AC620000 */ sw $v0, ($v1) +/* 04D70C 7F018BDC 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D710 7F018BE0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 04D714 7F018BE4 00402025 */ move $a0, $v0 +/* 04D718 7F018BE8 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D71C 7F018BEC 3C068003 */ lui $a2, %hi(objinstance) +/* 04D720 7F018BF0 24C6B5F4 */ addiu $a2, %lo(objinstance) # addiu $a2, $a2, -0x4a0c +/* 04D724 7F018BF4 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D728 7F018BF8 8C6B0000 */ lw $t3, ($v1) +/* 04D72C 7F018BFC 8CD90000 */ lw $t9, ($a2) +/* 04D730 7F018C00 24020003 */ li $v0, 3 +/* 04D734 7F018C04 AD790018 */ sw $t9, 0x18($t3) +/* 04D738 7F018C08 8FAC0070 */ lw $t4, 0x70($sp) +/* 04D73C 7F018C0C 11800003 */ beqz $t4, .L7F018C1C +/* 04D740 7F018C10 00000000 */ nop +/* 04D744 7F018C14 10000001 */ b .L7F018C1C +/* 04D748 7F018C18 24020005 */ li $v0, 5 +.L7F018C1C: +/* 04D74C 7F018C1C 8CCA0000 */ lw $t2, ($a2) +/* 04D750 7F018C20 00024880 */ sll $t1, $v0, 2 +/* 04D754 7F018C24 8C680000 */ lw $t0, ($v1) +/* 04D758 7F018C28 8D580008 */ lw $t8, 8($t2) +/* 04D75C 7F018C2C 8F0D0008 */ lw $t5, 8($t8) +/* 04D760 7F018C30 01A97821 */ addu $t7, $t5, $t1 +/* 04D764 7F018C34 8DEE0000 */ lw $t6, ($t7) +/* 04D768 7F018C38 10000006 */ b .L7F018C54 +/* 04D76C 7F018C3C AD0E001C */ sw $t6, 0x1c($t0) +.L7F018C40: +/* 04D770 7F018C40 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D774 7F018C44 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D778 7F018C48 3C068003 */ lui $a2, %hi(objinstance) +/* 04D77C 7F018C4C 24C6B5F4 */ addiu $a2, %lo(objinstance) # addiu $a2, $a2, -0x4a0c +/* 04D780 7F018C50 AC600000 */ sw $zero, ($v1) +.L7F018C54: +/* 04D784 7F018C54 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D788 7F018C58 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D78C 7F018C5C 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 04D790 7F018C60 8CC40000 */ lw $a0, ($a2) +/* 04D794 7F018C64 3C048003 */ lui $a0, %hi(objinstance) +/* 04D798 7F018C68 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D79C 7F018C6C 0FC1B303 */ jal setsuboffset +/* 04D7A0 7F018C70 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 04D7A4 7F018C74 3C048003 */ lui $a0, %hi(objinstance) +/* 04D7A8 7F018C78 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D7AC 7F018C7C 0FC1B34F */ jal setsubroty +/* 04D7B0 7F018C80 24050000 */ li $a1, 0 +/* 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 +/* 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) +/* 04D7D0 7F018CA0 3C0C8003 */ lui $t4, %hi(intro_animation_table) +/* 04D7D4 7F018CA4 258CB8BC */ addiu $t4, %lo(intro_animation_table) # addiu $t4, $t4, -0x4744 +/* 04D7D8 7F018CA8 00195900 */ sll $t3, $t9, 4 +/* 04D7DC 7F018CAC 016C1021 */ addu $v0, $t3, $t4 +/* 04D7E0 7F018CB0 8C4A0000 */ lw $t2, ($v0) +/* 04D7E4 7F018CB4 C4440008 */ lwc1 $f4, 8($v0) +/* 04D7E8 7F018CB8 44803000 */ mtc1 $zero, $f6 +/* 04D7EC 7F018CBC 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 04D7F0 7F018CC0 000AC080 */ sll $t8, $t2, 2 +/* 04D7F4 7F018CC4 00B82821 */ addu $a1, $a1, $t8 +/* 04D7F8 7F018CC8 3C048003 */ lui $a0, %hi(objinstance) +/* 04D7FC 7F018CCC 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D800 7F018CD0 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 04D804 7F018CD4 8C470004 */ lw $a3, 4($v0) +/* 04D808 7F018CD8 8FA60070 */ lw $a2, 0x70($sp) +/* 04D80C 7F018CDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 04D810 7F018CE0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 04D814 7F018CE4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 04D818 7F018CE8 3C018003 */ lui $at, %hi(menu_timer) +/* 04D81C 7F018CEC 0C002914 */ jal get_random_value +/* 04D820 7F018CF0 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 04D824 7F018CF4 44824000 */ mtc1 $v0, $f8 +/* 04D828 7F018CF8 04410005 */ bgez $v0, .L7F018D10 +/* 04D82C 7F018CFC 468042A0 */ cvt.s.w $f10, $f8 +/* 04D830 7F018D00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D834 7F018D04 44818000 */ mtc1 $at, $f16 +/* 04D838 7F018D08 00000000 */ nop +/* 04D83C 7F018D0C 46105280 */ add.s $f10, $f10, $f16 +.L7F018D10: +/* 04D840 7F018D10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D844 7F018D14 44819000 */ mtc1 $at, $f18 +/* 04D848 7F018D18 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 04D84C 7F018D1C 44813000 */ mtc1 $at, $f6 +/* 04D850 7F018D20 46125102 */ mul.s $f4, $f10, $f18 +/* 04D854 7F018D24 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 04D858 7F018D28 44818000 */ mtc1 $at, $f16 +/* 04D85C 7F018D2C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04D860 7F018D30 46062202 */ mul.s $f8, $f4, $f6 +/* 04D864 7F018D34 46104280 */ add.s $f10, $f8, $f16 +/* 04D868 7F018D38 0C002914 */ jal get_random_value +/* 04D86C 7F018D3C E42A95A4 */ swc1 $f10, %lo(flt_CODE_bss_800695A4)($at) +/* 04D870 7F018D40 44829000 */ mtc1 $v0, $f18 +/* 04D874 7F018D44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D878 7F018D48 04410004 */ bgez $v0, .L7F018D5C +/* 04D87C 7F018D4C 46809120 */ cvt.s.w $f4, $f18 +/* 04D880 7F018D50 44813000 */ mtc1 $at, $f6 +/* 04D884 7F018D54 00000000 */ nop +/* 04D888 7F018D58 46062100 */ add.s $f4, $f4, $f6 +.L7F018D5C: +/* 04D88C 7F018D5C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D890 7F018D60 44814000 */ mtc1 $at, $f8 +/* 04D894 7F018D64 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 04D898 7F018D68 44815000 */ mtc1 $at, $f10 +/* 04D89C 7F018D6C 46082402 */ mul.s $f16, $f4, $f8 +/* 04D8A0 7F018D70 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 04D8A4 7F018D74 44813000 */ mtc1 $at, $f6 +/* 04D8A8 7F018D78 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A8) +/* 04D8AC 7F018D7C 460A8482 */ mul.s $f18, $f16, $f10 +/* 04D8B0 7F018D80 46069100 */ add.s $f4, $f18, $f6 +/* 04D8B4 7F018D84 0C002914 */ jal get_random_value +/* 04D8B8 7F018D88 E42495A8 */ swc1 $f4, %lo(flt_CODE_bss_800695A8)($at) +/* 04D8BC 7F018D8C 44824000 */ mtc1 $v0, $f8 +/* 04D8C0 7F018D90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D8C4 7F018D94 04410004 */ bgez $v0, .L7F018DA8 +/* 04D8C8 7F018D98 46804420 */ cvt.s.w $f16, $f8 +/* 04D8CC 7F018D9C 44815000 */ mtc1 $at, $f10 +/* 04D8D0 7F018DA0 00000000 */ nop +/* 04D8D4 7F018DA4 460A8400 */ add.s $f16, $f16, $f10 +.L7F018DA8: +/* 04D8D8 7F018DA8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D8DC 7F018DAC 44819000 */ mtc1 $at, $f18 +/* 04D8E0 7F018DB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04D8E4 7F018DB4 44812000 */ mtc1 $at, $f4 +/* 04D8E8 7F018DB8 46128182 */ mul.s $f6, $f16, $f18 +/* 04D8EC 7F018DBC 3C018005 */ lui $at, %hi(D_80051B00) +/* 04D8F0 7F018DC0 C42A1B00 */ lwc1 $f10, %lo(D_80051B00)($at) +/* 04D8F4 7F018DC4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04D8F8 7F018DC8 46043201 */ sub.s $f8, $f6, $f4 +/* 04D8FC 7F018DCC 460A4402 */ mul.s $f16, $f8, $f10 +/* 04D900 7F018DD0 0C002914 */ jal get_random_value +/* 04D904 7F018DD4 E43095B0 */ swc1 $f16, %lo(flt_CODE_bss_800695B0)($at) +/* 04D908 7F018DD8 44829000 */ mtc1 $v0, $f18 +/* 04D90C 7F018DDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D910 7F018DE0 04410004 */ bgez $v0, .L7F018DF4 +/* 04D914 7F018DE4 468091A0 */ cvt.s.w $f6, $f18 +/* 04D918 7F018DE8 44812000 */ mtc1 $at, $f4 +/* 04D91C 7F018DEC 00000000 */ nop +/* 04D920 7F018DF0 46043180 */ add.s $f6, $f6, $f4 +.L7F018DF4: +/* 04D924 7F018DF4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D928 7F018DF8 44814000 */ mtc1 $at, $f8 +/* 04D92C 7F018DFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04D930 7F018E00 44818000 */ mtc1 $at, $f16 +/* 04D934 7F018E04 46083282 */ mul.s $f10, $f6, $f8 +/* 04D938 7F018E08 3C018005 */ lui $at, %hi(D_80051B04) +/* 04D93C 7F018E0C C4241B04 */ lwc1 $f4, %lo(D_80051B04)($at) +/* 04D940 7F018E10 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B4) +/* 04D944 7F018E14 46105481 */ sub.s $f18, $f10, $f16 +/* 04D948 7F018E18 46049182 */ mul.s $f6, $f18, $f4 +/* 04D94C 7F018E1C 0C002914 */ jal get_random_value +/* 04D950 7F018E20 E42695B4 */ swc1 $f6, %lo(flt_CODE_bss_800695B4)($at) +/* 04D954 7F018E24 44824000 */ mtc1 $v0, $f8 +/* 04D958 7F018E28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D95C 7F018E2C 04410004 */ bgez $v0, .L7F018E40 +/* 04D960 7F018E30 468042A0 */ cvt.s.w $f10, $f8 +/* 04D964 7F018E34 44818000 */ mtc1 $at, $f16 +/* 04D968 7F018E38 00000000 */ nop +/* 04D96C 7F018E3C 46105280 */ add.s $f10, $f10, $f16 +.L7F018E40: +/* 04D970 7F018E40 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D974 7F018E44 44819000 */ mtc1 $at, $f18 +/* 04D978 7F018E48 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 04D97C 7F018E4C 44813000 */ mtc1 $at, $f6 +/* 04D980 7F018E50 46125102 */ mul.s $f4, $f10, $f18 +/* 04D984 7F018E54 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 04D988 7F018E58 44818000 */ mtc1 $at, $f16 +/* 04D98C 7F018E5C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04D990 7F018E60 46062202 */ mul.s $f8, $f4, $f6 +/* 04D994 7F018E64 46104280 */ add.s $f10, $f8, $f16 +/* 04D998 7F018E68 0C002914 */ jal get_random_value +/* 04D99C 7F018E6C E42A95BC */ swc1 $f10, %lo(flt_CODE_bss_800695BC)($at) +/* 04D9A0 7F018E70 44829000 */ mtc1 $v0, $f18 +/* 04D9A4 7F018E74 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695E8) +/* 04D9A8 7F018E78 44800000 */ mtc1 $zero, $f0 +/* 04D9AC 7F018E7C 246395E8 */ addiu $v1, %lo(flt_CODE_bss_800695E8) # addiu $v1, $v1, -0x6a18 +/* 04D9B0 7F018E80 04410005 */ bgez $v0, .L7F018E98 +/* 04D9B4 7F018E84 46809120 */ cvt.s.w $f4, $f18 +/* 04D9B8 7F018E88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D9BC 7F018E8C 44813000 */ mtc1 $at, $f6 +/* 04D9C0 7F018E90 00000000 */ nop +/* 04D9C4 7F018E94 46062100 */ add.s $f4, $f4, $f6 +.L7F018E98: +/* 04D9C8 7F018E98 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D9CC 7F018E9C 44814000 */ mtc1 $at, $f8 +/* 04D9D0 7F018EA0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 04D9D4 7F018EA4 44815000 */ mtc1 $at, $f10 +/* 04D9D8 7F018EA8 46082402 */ mul.s $f16, $f4, $f8 +/* 04D9DC 7F018EAC 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 04D9E0 7F018EB0 44813000 */ mtc1 $at, $f6 +/* 04D9E4 7F018EB4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695C0) +/* 04D9E8 7F018EB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 04D9EC 7F018EBC 240D0001 */ li $t5, 1 +/* 04D9F0 7F018EC0 460A8482 */ mul.s $f18, $f16, $f10 +/* 04D9F4 7F018EC4 46069100 */ add.s $f4, $f18, $f6 +/* 04D9F8 7F018EC8 E42495C0 */ swc1 $f4, %lo(flt_CODE_bss_800695C0)($at) +/* 04D9FC 7F018ECC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04DA00 7F018ED0 C42895A4 */ lwc1 $f8, %lo(flt_CODE_bss_800695A4)($at) +/* 04DA04 7F018ED4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A0) +/* 04DA08 7F018ED8 E42895A0 */ swc1 $f8, %lo(flt_CODE_bss_800695A0)($at) +/* 04DA0C 7F018EDC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04DA10 7F018EE0 C43095B0 */ lwc1 $f16, %lo(flt_CODE_bss_800695B0)($at) +/* 04DA14 7F018EE4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695AC) +/* 04DA18 7F018EE8 E43095AC */ swc1 $f16, %lo(flt_CODE_bss_800695AC)($at) +/* 04DA1C 7F018EEC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04DA20 7F018EF0 C42A95BC */ lwc1 $f10, %lo(flt_CODE_bss_800695BC)($at) +/* 04DA24 7F018EF4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B8) +/* 04DA28 7F018EF8 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 04DA2C 7F018EFC E42A95B8 */ swc1 $f10, %lo(flt_CODE_bss_800695B8)($at) +/* 04DA30 7F018F00 3C018007 */ lui $at, %hi(flt_CODE_bss_800695E4) +/* 04DA34 7F018F04 AC2D95E4 */ sw $t5, %lo(flt_CODE_bss_800695E4)($at) +/* 04DA38 7F018F08 E4600000 */ swc1 $f0, ($v1) +/* 04DA3C 7F018F0C E4600004 */ swc1 $f0, 4($v1) +/* 04DA40 7F018F10 03E00008 */ jr $ra +/* 04DA44 7F018F14 E4600008 */ swc1 $f0, 8($v1) +) +#endif + + + +void update_menu18_displaycast(void) { + if (objinstance != 0) { + set_aircraft_obj_inst_scale_to_zero(objinstance); + } + if (ptrobjinstance != 0) { + set_obj_instance_scale_to_zero(ptrobjinstance); + return; + } +} + + + + + + +#ifdef NONMATCHING +void interface_menu18_displaycast(u32 param_1,u32 param_2) +{ + u32 BVar2; + u32 uVar3; + s32 uVar1; + int iVar4; + + setvideo_far(46.00000000); + set_page_height(10.00000000,2000.00000000); + set_video2_settings_offset_24(1); + video_related_21((f32)flt_80051B08); + set_cur_player_screen_size(0x1b8,0x14a); + set_video2_width_height(0x1b8,0x14a); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + menu_timer += clock_timer; + if (menu_timer < 0xb5) { + uVar1 = get_controller_buttons_pressed + (0,R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2|DUMMY_1| + R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON|A_BUTTON); + if ((uVar1 != 0) && (full_actor_intro == FALSE)) { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + return; + } + iVar4 = do_not_play_intro_movie + 1; +LAB_7f01902c: + do_not_play_intro_movie = iVar4; + if (intro_char_table[do_not_play_intro_movie].flag != 0) goto code_r0x7f01904c; + iVar4 = intro_char_table[do_not_play_intro_movie].body; + goto LAB_7f019068; +code_r0x7f01904c: + iVar4 = do_not_play_intro_movie + 1; + if (full_actor_intro != FALSE) { + iVar4 = intro_char_table[do_not_play_intro_movie].body; +LAB_7f019068: + if ((iVar4 == 0x27) && (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + if ((intro_char_table[do_not_play_intro_movie].body == 0x28) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xe) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xd) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xf) && + (BVar2 = check_egypt_completed_any_folder_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body != 0xc) || + (BVar2 = check_egypt_completed_any_folder_00(), BVar2 != FALSE)) { +LAB_7f019268: + if (intro_char_table[do_not_play_intro_movie].body < 0) { + do_not_play_intro_movie = 0; + } + if (do_not_play_intro_movie < 1) { + if (full_actor_intro != FALSE) { + set_menu_to_mode(MENU_MISSION_SELECT,1); + set_cursor_to_stage_solo(0x11); + full_actor_intro = FALSE; + return; + } + select_ramrom_to_play(); + return; + } + set_menu_to_mode(MENU_DISPLAY_CAST,1); + return; + } + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 == 0) goto LAB_7f019268; + iVar4 = do_not_play_intro_movie + 1; + } + goto LAB_7f01902c; +} +#else +GLOBAL_ASM( +.text +glabel interface_menu18_displaycast +/* 04DA90 7F018F60 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 04DA94 7F018F64 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 04DA98 7F018F68 AFBF0024 */ sw $ra, 0x24($sp) +/* 04DA9C 7F018F6C 44816000 */ mtc1 $at, $f12 +/* 04DAA0 7F018F70 AFB30020 */ sw $s3, 0x20($sp) +/* 04DAA4 7F018F74 AFB2001C */ sw $s2, 0x1c($sp) +/* 04DAA8 7F018F78 AFB10018 */ sw $s1, 0x18($sp) +/* 04DAAC 7F018F7C 0C001151 */ jal setvideo_far +/* 04DAB0 7F018F80 AFB00014 */ sw $s0, 0x14($sp) +/* 04DAB4 7F018F84 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04DAB8 7F018F88 44816000 */ mtc1 $at, $f12 +/* 04DABC 7F018F8C 3C0144FA */ li $at, 0x44FA0000 # 2000.000000 +/* 04DAC0 7F018F90 44817000 */ mtc1 $at, $f14 +/* 04DAC4 7F018F94 0C001194 */ jal set_page_height +/* 04DAC8 7F018F98 00000000 */ nop +/* 04DACC 7F018F9C 0C00114D */ jal set_video2_settings_offset_24 +/* 04DAD0 7F018FA0 24040001 */ li $a0, 1 +/* 04DAD4 7F018FA4 3C018005 */ lui $at, %hi(D_80051B08) +/* 04DAD8 7F018FA8 0C001164 */ jal video_related_21 +/* 04DADC 7F018FAC C42C1B08 */ lwc1 $f12, %lo(D_80051B08)($at) +/* 04DAE0 7F018FB0 240401B8 */ li $a0, 440 +/* 04DAE4 7F018FB4 0FC26C77 */ jal set_cur_player_screen_size +/* 04DAE8 7F018FB8 2405014A */ li $a1, 330 +/* 04DAEC 7F018FBC 240401B8 */ li $a0, 440 +/* 04DAF0 7F018FC0 0C00110F */ jal set_video2_width_height +/* 04DAF4 7F018FC4 2405014A */ li $a1, 330 +/* 04DAF8 7F018FC8 00002025 */ move $a0, $zero +/* 04DAFC 7F018FCC 0FC26C7E */ jal set_cur_player_viewport_size +/* 04DB00 7F018FD0 00002825 */ move $a1, $zero +/* 04DB04 7F018FD4 00002025 */ move $a0, $zero +/* 04DB08 7F018FD8 0C00112F */ jal set_video2_ulx_uly +/* 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 +/* 04DB18 7F018FE8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 04DB1C 7F018FEC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 04DB20 7F018FF0 8C4E0000 */ lw $t6, ($v0) +/* 04DB24 7F018FF4 3C108003 */ lui $s0, %hi(do_not_play_intro_movie) +/* 04DB28 7F018FF8 00002025 */ move $a0, $zero +/* 04DB2C 7F018FFC 01CFC021 */ addu $t8, $t6, $t7 +/* 04DB30 7F019000 2B0100B5 */ slti $at, $t8, 0xb5 +/* 04DB34 7F019004 142000B7 */ bnez $at, .L7F0192E4 +/* 04DB38 7F019008 AC580000 */ sw $t8, ($v0) +/* 04DB3C 7F01900C 2610B5E8 */ addiu $s0, %lo(do_not_play_intro_movie) # addiu $s0, $s0, -0x4a18 +/* 04DB40 7F019010 8E080000 */ lw $t0, ($s0) +/* 04DB44 7F019014 3C118003 */ lui $s1, %hi(intro_char_table) +/* 04DB48 7F019018 2631B600 */ addiu $s1, %lo(intro_char_table) # addiu $s1, $s1, -0x4a00 +/* 04DB4C 7F01901C 25090001 */ addiu $t1, $t0, 1 +/* 04DB50 7F019020 AE090000 */ sw $t1, ($s0) +/* 04DB54 7F019024 24132710 */ li $s3, 10000 +/* 04DB58 7F019028 24120014 */ li $s2, 20 +.L7F01902C: +/* 04DB5C 7F01902C 8E030000 */ lw $v1, ($s0) +/* 04DB60 7F019030 3C0C8003 */ lui $t4, %hi(full_actor_intro) +/* 04DB64 7F019034 00720019 */ multu $v1, $s2 +/* 04DB68 7F019038 00005012 */ mflo $t2 +/* 04DB6C 7F01903C 022A1021 */ addu $v0, $s1, $t2 +/* 04DB70 7F019040 8C4B0010 */ lw $t3, 0x10($v0) +/* 04DB74 7F019044 51600008 */ beql $t3, $zero, .L7F019068 +/* 04DB78 7F019048 8C4E0000 */ lw $t6, ($v0) +/* 04DB7C 7F01904C 8D8CB5FC */ lw $t4, %lo(full_actor_intro)($t4) +/* 04DB80 7F019050 246D0001 */ addiu $t5, $v1, 1 +/* 04DB84 7F019054 55800004 */ bnezl $t4, .L7F019068 +/* 04DB88 7F019058 8C4E0000 */ lw $t6, ($v0) +/* 04DB8C 7F01905C 1000FFF3 */ b .L7F01902C +/* 04DB90 7F019060 AE0D0000 */ sw $t5, ($s0) +/* 04DB94 7F019064 8C4E0000 */ lw $t6, ($v0) +.L7F019068: +/* 04DB98 7F019068 24010027 */ li $at, 39 +/* 04DB9C 7F01906C 55C1000A */ bnel $t6, $at, .L7F019098 +/* 04DBA0 7F019070 8E190000 */ lw $t9, ($s0) +/* 04DBA4 7F019074 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DBA8 7F019078 00000000 */ nop +/* 04DBAC 7F01907C 54400006 */ bnezl $v0, .L7F019098 +/* 04DBB0 7F019080 8E190000 */ lw $t9, ($s0) +/* 04DBB4 7F019084 8E0F0000 */ lw $t7, ($s0) +/* 04DBB8 7F019088 25F80001 */ addiu $t8, $t7, 1 +/* 04DBBC 7F01908C 1000FFE7 */ b .L7F01902C +/* 04DBC0 7F019090 AE180000 */ sw $t8, ($s0) +/* 04DBC4 7F019094 8E190000 */ lw $t9, ($s0) +.L7F019098: +/* 04DBC8 7F019098 24010028 */ li $at, 40 +/* 04DBCC 7F01909C 03320019 */ multu $t9, $s2 +/* 04DBD0 7F0190A0 00004012 */ mflo $t0 +/* 04DBD4 7F0190A4 02284821 */ addu $t1, $s1, $t0 +/* 04DBD8 7F0190A8 8D2A0000 */ lw $t2, ($t1) +/* 04DBDC 7F0190AC 5541000A */ bnel $t2, $at, .L7F0190D8 +/* 04DBE0 7F0190B0 8E0D0000 */ lw $t5, ($s0) +/* 04DBE4 7F0190B4 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DBE8 7F0190B8 00000000 */ nop +/* 04DBEC 7F0190BC 54400006 */ bnezl $v0, .L7F0190D8 +/* 04DBF0 7F0190C0 8E0D0000 */ lw $t5, ($s0) +/* 04DBF4 7F0190C4 8E0B0000 */ lw $t3, ($s0) +/* 04DBF8 7F0190C8 256C0001 */ addiu $t4, $t3, 1 +/* 04DBFC 7F0190CC 1000FFD7 */ b .L7F01902C +/* 04DC00 7F0190D0 AE0C0000 */ sw $t4, ($s0) +/* 04DC04 7F0190D4 8E0D0000 */ lw $t5, ($s0) +.L7F0190D8: +/* 04DC08 7F0190D8 2401000E */ li $at, 14 +/* 04DC0C 7F0190DC 01B20019 */ multu $t5, $s2 +/* 04DC10 7F0190E0 00007012 */ mflo $t6 +/* 04DC14 7F0190E4 022E7821 */ addu $t7, $s1, $t6 +/* 04DC18 7F0190E8 8DF80000 */ lw $t8, ($t7) +/* 04DC1C 7F0190EC 57010013 */ bnel $t8, $at, .L7F01913C +/* 04DC20 7F0190F0 8E0A0000 */ lw $t2, ($s0) +/* 04DC24 7F0190F4 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DC28 7F0190F8 00000000 */ nop +/* 04DC2C 7F0190FC 5440000F */ bnezl $v0, .L7F01913C +/* 04DC30 7F019100 8E0A0000 */ lw $t2, ($s0) +/* 04DC34 7F019104 0C002914 */ jal get_random_value +/* 04DC38 7F019108 00000000 */ nop +/* 04DC3C 7F01910C 0053001B */ divu $zero, $v0, $s3 +/* 04DC40 7F019110 0000C810 */ mfhi $t9 +/* 04DC44 7F019114 16600002 */ bnez $s3, .L7F019120 +/* 04DC48 7F019118 00000000 */ nop +/* 04DC4C 7F01911C 0007000D */ break 7 +.L7F019120: +/* 04DC50 7F019120 53200006 */ beql $t9, $zero, .L7F01913C +/* 04DC54 7F019124 8E0A0000 */ lw $t2, ($s0) +/* 04DC58 7F019128 8E080000 */ lw $t0, ($s0) +/* 04DC5C 7F01912C 25090001 */ addiu $t1, $t0, 1 +/* 04DC60 7F019130 1000FFBE */ b .L7F01902C +/* 04DC64 7F019134 AE090000 */ sw $t1, ($s0) +/* 04DC68 7F019138 8E0A0000 */ lw $t2, ($s0) +.L7F01913C: +/* 04DC6C 7F01913C 2401000D */ li $at, 13 +/* 04DC70 7F019140 01520019 */ multu $t2, $s2 +/* 04DC74 7F019144 00005812 */ mflo $t3 +/* 04DC78 7F019148 022B6021 */ addu $t4, $s1, $t3 +/* 04DC7C 7F01914C 8D8D0000 */ lw $t5, ($t4) +/* 04DC80 7F019150 55A10013 */ bnel $t5, $at, .L7F0191A0 +/* 04DC84 7F019154 8E190000 */ lw $t9, ($s0) +/* 04DC88 7F019158 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DC8C 7F01915C 00000000 */ nop +/* 04DC90 7F019160 5440000F */ bnezl $v0, .L7F0191A0 +/* 04DC94 7F019164 8E190000 */ lw $t9, ($s0) +/* 04DC98 7F019168 0C002914 */ jal get_random_value +/* 04DC9C 7F01916C 00000000 */ nop +/* 04DCA0 7F019170 0053001B */ divu $zero, $v0, $s3 +/* 04DCA4 7F019174 00007010 */ mfhi $t6 +/* 04DCA8 7F019178 16600002 */ bnez $s3, .L7F019184 +/* 04DCAC 7F01917C 00000000 */ nop +/* 04DCB0 7F019180 0007000D */ break 7 +.L7F019184: +/* 04DCB4 7F019184 51C00006 */ beql $t6, $zero, .L7F0191A0 +/* 04DCB8 7F019188 8E190000 */ lw $t9, ($s0) +/* 04DCBC 7F01918C 8E0F0000 */ lw $t7, ($s0) +/* 04DCC0 7F019190 25F80001 */ addiu $t8, $t7, 1 +/* 04DCC4 7F019194 1000FFA5 */ b .L7F01902C +/* 04DCC8 7F019198 AE180000 */ sw $t8, ($s0) +/* 04DCCC 7F01919C 8E190000 */ lw $t9, ($s0) +.L7F0191A0: +/* 04DCD0 7F0191A0 2401000F */ li $at, 15 +/* 04DCD4 7F0191A4 03320019 */ multu $t9, $s2 +/* 04DCD8 7F0191A8 00004012 */ mflo $t0 +/* 04DCDC 7F0191AC 02284821 */ addu $t1, $s1, $t0 +/* 04DCE0 7F0191B0 8D2A0000 */ lw $t2, ($t1) +/* 04DCE4 7F0191B4 55410013 */ bnel $t2, $at, .L7F019204 +/* 04DCE8 7F0191B8 8E0E0000 */ lw $t6, ($s0) +/* 04DCEC 7F0191BC 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04DCF0 7F0191C0 00000000 */ nop +/* 04DCF4 7F0191C4 5440000F */ bnezl $v0, .L7F019204 +/* 04DCF8 7F0191C8 8E0E0000 */ lw $t6, ($s0) +/* 04DCFC 7F0191CC 0C002914 */ jal get_random_value +/* 04DD00 7F0191D0 00000000 */ nop +/* 04DD04 7F0191D4 0053001B */ divu $zero, $v0, $s3 +/* 04DD08 7F0191D8 00005810 */ mfhi $t3 +/* 04DD0C 7F0191DC 16600002 */ bnez $s3, .L7F0191E8 +/* 04DD10 7F0191E0 00000000 */ nop +/* 04DD14 7F0191E4 0007000D */ break 7 +.L7F0191E8: +/* 04DD18 7F0191E8 51600006 */ beql $t3, $zero, .L7F019204 +/* 04DD1C 7F0191EC 8E0E0000 */ lw $t6, ($s0) +/* 04DD20 7F0191F0 8E0C0000 */ lw $t4, ($s0) +/* 04DD24 7F0191F4 258D0001 */ addiu $t5, $t4, 1 +/* 04DD28 7F0191F8 1000FF8C */ b .L7F01902C +/* 04DD2C 7F0191FC AE0D0000 */ sw $t5, ($s0) +/* 04DD30 7F019200 8E0E0000 */ lw $t6, ($s0) +.L7F019204: +/* 04DD34 7F019204 2401000C */ li $at, 12 +/* 04DD38 7F019208 01D20019 */ multu $t6, $s2 +/* 04DD3C 7F01920C 00007812 */ mflo $t7 +/* 04DD40 7F019210 022FC021 */ addu $t8, $s1, $t7 +/* 04DD44 7F019214 8F190000 */ lw $t9, ($t8) +/* 04DD48 7F019218 57210013 */ bnel $t9, $at, .L7F019268 +/* 04DD4C 7F01921C 8E030000 */ lw $v1, ($s0) +/* 04DD50 7F019220 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04DD54 7F019224 00000000 */ nop +/* 04DD58 7F019228 5440000F */ bnezl $v0, .L7F019268 +/* 04DD5C 7F01922C 8E030000 */ lw $v1, ($s0) +/* 04DD60 7F019230 0C002914 */ jal get_random_value +/* 04DD64 7F019234 00000000 */ nop +/* 04DD68 7F019238 0053001B */ divu $zero, $v0, $s3 +/* 04DD6C 7F01923C 00004010 */ mfhi $t0 +/* 04DD70 7F019240 16600002 */ bnez $s3, .L7F01924C +/* 04DD74 7F019244 00000000 */ nop +/* 04DD78 7F019248 0007000D */ break 7 +.L7F01924C: +/* 04DD7C 7F01924C 51000006 */ beql $t0, $zero, .L7F019268 +/* 04DD80 7F019250 8E030000 */ lw $v1, ($s0) +/* 04DD84 7F019254 8E090000 */ lw $t1, ($s0) +/* 04DD88 7F019258 252A0001 */ addiu $t2, $t1, 1 +/* 04DD8C 7F01925C 1000FF73 */ b .L7F01902C +/* 04DD90 7F019260 AE0A0000 */ sw $t2, ($s0) +/* 04DD94 7F019264 8E030000 */ lw $v1, ($s0) +.L7F019268: +/* 04DD98 7F019268 24040018 */ li $a0, 24 +/* 04DD9C 7F01926C 3C0E8003 */ lui $t6, %hi(full_actor_intro) +/* 04DDA0 7F019270 00720019 */ multu $v1, $s2 +/* 04DDA4 7F019274 00005812 */ mflo $t3 +/* 04DDA8 7F019278 022B6021 */ addu $t4, $s1, $t3 +/* 04DDAC 7F01927C 8D8D0000 */ lw $t5, ($t4) +/* 04DDB0 7F019280 05A10003 */ bgez $t5, .L7F019290 +/* 04DDB4 7F019284 00000000 */ nop +/* 04DDB8 7F019288 AE000000 */ sw $zero, ($s0) +/* 04DDBC 7F01928C 00001825 */ move $v1, $zero +.L7F019290: +/* 04DDC0 7F019290 18600005 */ blez $v1, .L7F0192A8 +/* 04DDC4 7F019294 00000000 */ nop +/* 04DDC8 7F019298 0FC06975 */ jal set_menu_to_mode +/* 04DDCC 7F01929C 24050001 */ li $a1, 1 +/* 04DDD0 7F0192A0 1000001B */ b .L7F019310 +/* 04DDD4 7F0192A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0192A8: +/* 04DDD8 7F0192A8 8DCEB5FC */ lw $t6, %lo(full_actor_intro)($t6) +/* 04DDDC 7F0192AC 24040007 */ li $a0, 7 +/* 04DDE0 7F0192B0 11C00008 */ beqz $t6, .L7F0192D4 +/* 04DDE4 7F0192B4 00000000 */ nop +/* 04DDE8 7F0192B8 0FC06975 */ jal set_menu_to_mode +/* 04DDEC 7F0192BC 24050001 */ li $a1, 1 +/* 04DDF0 7F0192C0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04DDF4 7F0192C4 24040011 */ li $a0, 17 +/* 04DDF8 7F0192C8 3C018003 */ lui $at, %hi(full_actor_intro) +/* 04DDFC 7F0192CC 1000000F */ b .L7F01930C +/* 04DE00 7F0192D0 AC20B5FC */ sw $zero, %lo(full_actor_intro)($at) +.L7F0192D4: +/* 04DE04 7F0192D4 0FC3025C */ jal select_ramrom_to_play +/* 04DE08 7F0192D8 00000000 */ nop +/* 04DE0C 7F0192DC 1000000C */ b .L7F019310 +/* 04DE10 7F0192E0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0192E4: +/* 04DE14 7F0192E4 0C0030EB */ jal get_controller_buttons_pressed +/* 04DE18 7F0192E8 3405FFFF */ li $a1, 65535 +/* 04DE1C 7F0192EC 10400007 */ beqz $v0, .L7F01930C +/* 04DE20 7F0192F0 3C0F8003 */ lui $t7, %hi(full_actor_intro) +/* 04DE24 7F0192F4 8DEFB5FC */ lw $t7, %lo(full_actor_intro)($t7) +/* 04DE28 7F0192F8 24040005 */ li $a0, 5 +/* 04DE2C 7F0192FC 55E00004 */ bnezl $t7, .L7F019310 +/* 04DE30 7F019300 8FBF0024 */ lw $ra, 0x24($sp) +/* 04DE34 7F019304 0FC06975 */ jal set_menu_to_mode +/* 04DE38 7F019308 24050001 */ li $a1, 1 +.L7F01930C: +/* 04DE3C 7F01930C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F019310: +/* 04DE40 7F019310 8FB00014 */ lw $s0, 0x14($sp) +/* 04DE44 7F019314 8FB10018 */ lw $s1, 0x18($sp) +/* 04DE48 7F019318 8FB2001C */ lw $s2, 0x1c($sp) +/* 04DE4C 7F01931C 8FB30020 */ lw $s3, 0x20($sp) +/* 04DE50 7F019320 03E00008 */ jr $ra +/* 04DE54 7F019324 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu18_displaycast(void) { + +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu18_displaycast +/* 04DE58 7F019328 27BDFDB0 */ addiu $sp, $sp, -0x250 +/* 04DE5C 7F01932C 3C0E8003 */ lui $t6, %hi(D_8002BA78) +/* 04DE60 7F019330 AFBF004C */ sw $ra, 0x4c($sp) +/* 04DE64 7F019334 AFB40048 */ sw $s4, 0x48($sp) +/* 04DE68 7F019338 AFB30044 */ sw $s3, 0x44($sp) +/* 04DE6C 7F01933C AFB20040 */ sw $s2, 0x40($sp) +/* 04DE70 7F019340 AFB1003C */ sw $s1, 0x3c($sp) +/* 04DE74 7F019344 AFB00038 */ sw $s0, 0x38($sp) +/* 04DE78 7F019348 25CEBA78 */ addiu $t6, %lo(D_8002BA78) # addiu $t6, $t6, -0x4588 +/* 04DE7C 7F01934C 8DC10000 */ lw $at, ($t6) +/* 04DE80 7F019350 27AF0244 */ addiu $t7, $sp, 0x244 +/* 04DE84 7F019354 8DCC0004 */ lw $t4, 4($t6) +/* 04DE88 7F019358 ADE10000 */ sw $at, ($t7) +/* 04DE8C 7F01935C 8DC10008 */ lw $at, 8($t6) +/* 04DE90 7F019360 3C0D8003 */ lui $t5, %hi(D_8002BA84) +/* 04DE94 7F019364 25ADBA84 */ addiu $t5, %lo(D_8002BA84) # addiu $t5, $t5, -0x457c +/* 04DE98 7F019368 ADEC0004 */ sw $t4, 4($t7) +/* 04DE9C 7F01936C ADE10008 */ sw $at, 8($t7) +/* 04DEA0 7F019370 8DA10000 */ lw $at, ($t5) +/* 04DEA4 7F019374 27B90238 */ addiu $t9, $sp, 0x238 +/* 04DEA8 7F019378 8DAF0004 */ lw $t7, 4($t5) +/* 04DEAC 7F01937C AF210000 */ sw $at, ($t9) +/* 04DEB0 7F019380 8DA10008 */ lw $at, 8($t5) +/* 04DEB4 7F019384 3C0C8003 */ lui $t4, %hi(D_8002BA90) +/* 04DEB8 7F019388 258CBA90 */ addiu $t4, %lo(D_8002BA90) # addiu $t4, $t4, -0x4570 +/* 04DEBC 7F01938C AF2F0004 */ sw $t7, 4($t9) +/* 04DEC0 7F019390 AF210008 */ sw $at, 8($t9) +/* 04DEC4 7F019394 8D810000 */ lw $at, ($t4) +/* 04DEC8 7F019398 27AE022C */ addiu $t6, $sp, 0x22c +/* 04DECC 7F01939C 8D990004 */ lw $t9, 4($t4) +/* 04DED0 7F0193A0 ADC10000 */ sw $at, ($t6) +/* 04DED4 7F0193A4 8D810008 */ lw $at, 8($t4) +/* 04DED8 7F0193A8 3C0F8003 */ lui $t7, %hi(D_8002BA9C) +/* 04DEDC 7F0193AC 25EFBA9C */ addiu $t7, %lo(D_8002BA9C) # addiu $t7, $t7, -0x4564 +/* 04DEE0 7F0193B0 ADD90004 */ sw $t9, 4($t6) +/* 04DEE4 7F0193B4 ADC10008 */ sw $at, 8($t6) +/* 04DEE8 7F0193B8 00809825 */ move $s3, $a0 +/* 04DEEC 7F0193BC 25EE003C */ addiu $t6, $t7, 0x3c +/* 04DEF0 7F0193C0 27AD01A8 */ addiu $t5, $sp, 0x1a8 +.L7F0193C4: +/* 04DEF4 7F0193C4 8DE10000 */ lw $at, ($t7) +/* 04DEF8 7F0193C8 25EF000C */ addiu $t7, $t7, 0xc +/* 04DEFC 7F0193CC 25AD000C */ addiu $t5, $t5, 0xc +/* 04DF00 7F0193D0 ADA1FFF4 */ sw $at, -0xc($t5) +/* 04DF04 7F0193D4 8DE1FFF8 */ lw $at, -8($t7) +/* 04DF08 7F0193D8 ADA1FFF8 */ sw $at, -8($t5) +/* 04DF0C 7F0193DC 8DE1FFFC */ lw $at, -4($t7) +/* 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) +/* 04DF20 7F0193F0 3C198003 */ lui $t9, %hi(D_8002BADC) +/* 04DF24 7F0193F4 ADA10000 */ sw $at, ($t5) +/* 04DF28 7F0193F8 8C42A8CC */ lw $v0, %lo(menu_timer)($v0) +/* 04DF2C 7F0193FC 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 04DF30 7F019400 44819000 */ mtc1 $at, $f18 +/* 04DF34 7F019404 44827000 */ mtc1 $v0, $f14 +/* 04DF38 7F019408 2739BADC */ addiu $t9, %lo(D_8002BADC) # addiu $t9, $t9, -0x4524 +/* 04DF3C 7F01940C 8F210000 */ lw $at, ($t9) +/* 04DF40 7F019410 46807020 */ cvt.s.w $f0, $f14 +/* 04DF44 7F019414 8F2E0004 */ lw $t6, 4($t9) +/* 04DF48 7F019418 27AC0134 */ addiu $t4, $sp, 0x134 +/* 04DF4C 7F01941C AD810000 */ sw $at, ($t4) +/* 04DF50 7F019420 8F210008 */ lw $at, 8($t9) +/* 04DF54 7F019424 AD8E0004 */ sw $t6, 4($t4) +/* 04DF58 7F019428 46120403 */ div.s $f16, $f0, $f18 +/* 04DF5C 7F01942C 04400004 */ bltz $v0, .L7F019440 +/* 04DF60 7F019430 AD810008 */ sw $at, 8($t4) +/* 04DF64 7F019434 284100B4 */ slti $at, $v0, 0xb4 +/* 04DF68 7F019438 54200005 */ bnezl $at, .L7F019450 +/* 04DF6C 7F01943C 2841001E */ slti $at, $v0, 0x1e +.L7F019440: +/* 04DF70 7F019440 44802000 */ mtc1 $zero, $f4 +/* 04DF74 7F019444 10000018 */ b .L7F0194A8 +/* 04DF78 7F019448 E7A40144 */ swc1 $f4, 0x144($sp) +/* 04DF7C 7F01944C 2841001E */ slti $at, $v0, 0x1e +.L7F019450: +/* 04DF80 7F019450 10200006 */ beqz $at, .L7F01946C +/* 04DF84 7F019454 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 04DF88 7F019458 44815000 */ mtc1 $at, $f10 +/* 04DF8C 7F01945C 00000000 */ nop +/* 04DF90 7F019460 460A0203 */ div.s $f8, $f0, $f10 +/* 04DF94 7F019464 10000010 */ b .L7F0194A8 +/* 04DF98 7F019468 E7A80144 */ swc1 $f8, 0x144($sp) +.L7F01946C: +/* 04DF9C 7F01946C 28410097 */ slti $at, $v0, 0x97 +/* 04DFA0 7F019470 14200009 */ bnez $at, .L7F019498 +/* 04DFA4 7F019474 240F00B4 */ li $t7, 180 +/* 04DFA8 7F019478 01E26823 */ subu $t5, $t7, $v0 +/* 04DFAC 7F01947C 448D3000 */ mtc1 $t5, $f6 +/* 04DFB0 7F019480 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 04DFB4 7F019484 44815000 */ mtc1 $at, $f10 +/* 04DFB8 7F019488 46803120 */ cvt.s.w $f4, $f6 +/* 04DFBC 7F01948C 460A2203 */ div.s $f8, $f4, $f10 +/* 04DFC0 7F019490 10000005 */ b .L7F0194A8 +/* 04DFC4 7F019494 E7A80144 */ swc1 $f8, 0x144($sp) +.L7F019498: +/* 04DFC8 7F019498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04DFCC 7F01949C 44813000 */ mtc1 $at, $f6 +/* 04DFD0 7F0194A0 00000000 */ nop +/* 04DFD4 7F0194A4 E7A60144 */ swc1 $f6, 0x144($sp) +.L7F0194A8: +/* 04DFD8 7F0194A8 02602025 */ move $a0, $s3 +/* 04DFDC 7F0194AC 00002825 */ move $a1, $zero +/* 04DFE0 7F0194B0 00003025 */ move $a2, $zero +/* 04DFE4 7F0194B4 00003825 */ move $a3, $zero +/* 04DFE8 7F0194B8 0C0011B4 */ jal set_setfillcolor +/* 04DFEC 7F0194BC E7B00148 */ swc1 $f16, 0x148($sp) +/* 04DFF0 7F0194C0 0C000FBE */ jal insert_generic_fillrect +/* 04DFF4 7F0194C4 00402025 */ move $a0, $v0 +/* 04DFF8 7F0194C8 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04DFFC 7F0194CC C42095A4 */ lwc1 $f0, %lo(flt_CODE_bss_800695A4)($at) +/* 04E000 7F0194D0 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A8) +/* 04E004 7F0194D4 C42495A8 */ lwc1 $f4, %lo(flt_CODE_bss_800695A8)($at) +/* 04E008 7F0194D8 C7B00148 */ lwc1 $f16, 0x148($sp) +/* 04E00C 7F0194DC 3C118007 */ lui $s1, %hi(flt_CODE_bss_800695A0) +/* 04E010 7F0194E0 46002281 */ sub.s $f10, $f4, $f0 +/* 04E014 7F0194E4 263195A0 */ addiu $s1, %lo(flt_CODE_bss_800695A0) # addiu $s1, $s1, -0x6a60 +/* 04E018 7F0194E8 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04E01C 7F0194EC 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695AC) +/* 04E020 7F0194F0 46105202 */ mul.s $f8, $f10, $f16 +/* 04E024 7F0194F4 261095AC */ addiu $s0, %lo(flt_CODE_bss_800695AC) # addiu $s0, $s0, -0x6a54 +/* 04E028 7F0194F8 3C128007 */ lui $s2, %hi(flt_CODE_bss_800695B8) +/* 04E02C 7F0194FC 265295B8 */ addiu $s2, %lo(flt_CODE_bss_800695B8) # addiu $s2, $s2, -0x6a48 +/* 04E030 7F019500 00409825 */ move $s3, $v0 +/* 04E034 7F019504 46004180 */ add.s $f6, $f8, $f0 +/* 04E038 7F019508 E6260000 */ swc1 $f6, ($s1) +/* 04E03C 7F01950C C42295B0 */ lwc1 $f2, %lo(flt_CODE_bss_800695B0)($at) +/* 04E040 7F019510 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B4) +/* 04E044 7F019514 C42495B4 */ lwc1 $f4, %lo(flt_CODE_bss_800695B4)($at) +/* 04E048 7F019518 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04E04C 7F01951C 46022281 */ sub.s $f10, $f4, $f2 +/* 04E050 7F019520 46105202 */ mul.s $f8, $f10, $f16 +/* 04E054 7F019524 46024180 */ add.s $f6, $f8, $f2 +/* 04E058 7F019528 E6060000 */ swc1 $f6, ($s0) +/* 04E05C 7F01952C C42C95BC */ lwc1 $f12, %lo(flt_CODE_bss_800695BC)($at) +/* 04E060 7F019530 3C018007 */ lui $at, %hi(flt_CODE_bss_800695C0) +/* 04E064 7F019534 C42495C0 */ lwc1 $f4, %lo(flt_CODE_bss_800695C0)($at) +/* 04E068 7F019538 C60E0000 */ lwc1 $f14, ($s0) +/* 04E06C 7F01953C 460C2281 */ sub.s $f10, $f4, $f12 +/* 04E070 7F019540 44802000 */ mtc1 $zero, $f4 +/* 04E074 7F019544 46105202 */ mul.s $f8, $f10, $f16 +/* 04E078 7F019548 4604703C */ c.lt.s $f14, $f4 +/* 04E07C 7F01954C 460C4180 */ add.s $f6, $f8, $f12 +/* 04E080 7F019550 45000006 */ bc1f .L7F01956C +/* 04E084 7F019554 E6460000 */ swc1 $f6, ($s2) +/* 04E088 7F019558 3C018005 */ lui $at, %hi(D_80051B0C) +/* 04E08C 7F01955C C42A1B0C */ lwc1 $f10, %lo(D_80051B0C)($at) +/* 04E090 7F019560 460A7200 */ add.s $f8, $f14, $f10 +/* 04E094 7F019564 E6080000 */ swc1 $f8, ($s0) +/* 04E098 7F019568 C60E0000 */ lwc1 $f14, ($s0) +.L7F01956C: +/* 04E09C 7F01956C 0FC15FAB */ jal sinf +/* 04E0A0 7F019570 46007306 */ mov.s $f12, $f14 +/* 04E0A4 7F019574 E7A00078 */ swc1 $f0, 0x78($sp) +/* 04E0A8 7F019578 0FC15FA8 */ jal cosf +/* 04E0AC 7F01957C C60C0000 */ lwc1 $f12, ($s0) +/* 04E0B0 7F019580 3C018005 */ lui $at, %hi(D_80051B10) +/* 04E0B4 7F019584 C4261B10 */ lwc1 $f6, %lo(D_80051B10)($at) +/* 04E0B8 7F019588 C6220000 */ lwc1 $f2, ($s1) +/* 04E0BC 7F01958C C7A80078 */ lwc1 $f8, 0x78($sp) +/* 04E0C0 7F019590 46060102 */ mul.s $f4, $f0, $f6 +/* 04E0C4 7F019594 C60C0000 */ lwc1 $f12, ($s0) +/* 04E0C8 7F019598 46022282 */ mul.s $f10, $f4, $f2 +/* 04E0CC 7F01959C 00000000 */ nop +/* 04E0D0 7F0195A0 46081182 */ mul.s $f6, $f2, $f8 +/* 04E0D4 7F0195A4 C6480000 */ lwc1 $f8, ($s2) +/* 04E0D8 7F0195A8 E7A80248 */ swc1 $f8, 0x248($sp) +/* 04E0DC 7F0195AC 46065100 */ add.s $f4, $f10, $f6 +/* 04E0E0 7F0195B0 0FC15FA8 */ jal cosf +/* 04E0E4 7F0195B4 E7A40244 */ swc1 $f4, 0x244($sp) +/* 04E0E8 7F0195B8 E7A00078 */ swc1 $f0, 0x78($sp) +/* 04E0EC 7F0195BC 0FC15FAB */ jal sinf +/* 04E0F0 7F0195C0 C60C0000 */ lwc1 $f12, ($s0) +/* 04E0F4 7F0195C4 C6220000 */ lwc1 $f2, ($s1) +/* 04E0F8 7F0195C8 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 04E0FC 7F0195CC 3C018005 */ lui $at, %hi(D_80051B14) +/* 04E100 7F0195D0 C4241B14 */ lwc1 $f4, %lo(D_80051B14)($at) +/* 04E104 7F0195D4 460A1182 */ mul.s $f6, $f2, $f10 +/* 04E108 7F0195D8 C60C0000 */ lwc1 $f12, ($s0) +/* 04E10C 7F0195DC 46040202 */ mul.s $f8, $f0, $f4 +/* 04E110 7F0195E0 00000000 */ nop +/* 04E114 7F0195E4 46024282 */ mul.s $f10, $f8, $f2 +/* 04E118 7F0195E8 460A3101 */ sub.s $f4, $f6, $f10 +/* 04E11C 7F0195EC 0FC15FA8 */ jal cosf +/* 04E120 7F0195F0 E7A4024C */ swc1 $f4, 0x24c($sp) +/* 04E124 7F0195F4 3C018005 */ lui $at, %hi(D_80051B18) +/* 04E128 7F0195F8 C4281B18 */ lwc1 $f8, %lo(D_80051B18)($at) +/* 04E12C 7F0195FC C62A0000 */ lwc1 $f10, ($s1) +/* 04E130 7F019600 C60C0000 */ lwc1 $f12, ($s0) +/* 04E134 7F019604 46080182 */ mul.s $f6, $f0, $f8 +/* 04E138 7F019608 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 04E13C 7F01960C 460A3102 */ mul.s $f4, $f6, $f10 +/* 04E140 7F019610 46044180 */ add.s $f6, $f8, $f4 +/* 04E144 7F019614 0FC15FAB */ jal sinf +/* 04E148 7F019618 E7A60238 */ swc1 $f6, 0x238($sp) +/* 04E14C 7F01961C 3C018005 */ lui $at, %hi(D_80051B1C) +/* 04E150 7F019620 C4281B1C */ lwc1 $f8, %lo(D_80051B1C)($at) +/* 04E154 7F019624 46000287 */ neg.s $f10, $f0 +/* 04E158 7F019628 C6260000 */ lwc1 $f6, ($s1) +/* 04E15C 7F01962C 46085102 */ mul.s $f4, $f10, $f8 +/* 04E160 7F019630 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 04E164 7F019634 24040002 */ li $a0, 2 +/* 04E168 7F019638 46062282 */ mul.s $f10, $f4, $f6 +/* 04E16C 7F01963C 460A4100 */ add.s $f4, $f8, $f10 +/* 04E170 7F019640 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 04E174 7F019644 E7A40240 */ swc1 $f4, 0x240($sp) +/* 04E178 7F019648 44800000 */ mtc1 $zero, $f0 +/* 04E17C 7F01964C 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 04E180 7F019650 44813000 */ mtc1 $at, $f6 +/* 04E184 7F019654 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04E188 7F019658 44814000 */ mtc1 $at, $f8 +/* 04E18C 7F01965C 44060000 */ mfc1 $a2, $f0 +/* 04E190 7F019660 44070000 */ mfc1 $a3, $f0 +/* 04E194 7F019664 00408025 */ move $s0, $v0 +/* 04E198 7F019668 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 04E19C 7F01966C 00402825 */ move $a1, $v0 +/* 04E1A0 7F019670 E7A00014 */ swc1 $f0, 0x14($sp) +/* 04E1A4 7F019674 E7A00018 */ swc1 $f0, 0x18($sp) +/* 04E1A8 7F019678 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 04E1AC 7F01967C E7A00020 */ swc1 $f0, 0x20($sp) +/* 04E1B0 7F019680 E7A00028 */ swc1 $f0, 0x28($sp) +/* 04E1B4 7F019684 E7A60010 */ swc1 $f6, 0x10($sp) +/* 04E1B8 7F019688 0C005CDC */ jal guLookAtReflect +/* 04E1BC 7F01968C E7A80024 */ swc1 $f8, 0x24($sp) +/* 04E1C0 7F019690 02601025 */ move $v0, $s3 +/* 04E1C4 7F019694 26730008 */ addiu $s3, $s3, 8 +/* 04E1C8 7F019698 3C0BBC00 */ lui $t3, (0xBC000002 >> 16) # lui $t3, 0xbc00 +/* 04E1CC 7F01969C 3C188000 */ lui $t8, (0x80000040 >> 16) # lui $t8, 0x8000 +/* 04E1D0 7F0196A0 37180040 */ ori $t8, (0x80000040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 04E1D4 7F0196A4 356B0002 */ ori $t3, (0xBC000002 & 0xFFFF) # ori $t3, $t3, 2 +/* 04E1D8 7F0196A8 02601825 */ move $v1, $s3 +/* 04E1DC 7F0196AC 26730008 */ addiu $s3, $s3, 8 +/* 04E1E0 7F0196B0 AC4B0000 */ sw $t3, ($v0) +/* 04E1E4 7F0196B4 AC580004 */ sw $t8, 4($v0) +/* 04E1E8 7F0196B8 3C0C0386 */ lui $t4, (0x03860010 >> 16) # lui $t4, 0x386 +/* 04E1EC 7F0196BC 3C198003 */ lui $t9, %hi(D_8002A978) +/* 04E1F0 7F0196C0 2739A978 */ addiu $t9, %lo(D_8002A978) # addiu $t9, $t9, -0x5688 +/* 04E1F4 7F0196C4 358C0010 */ ori $t4, (0x03860010 & 0xFFFF) # ori $t4, $t4, 0x10 +/* 04E1F8 7F0196C8 02602025 */ move $a0, $s3 +/* 04E1FC 7F0196CC 26730008 */ addiu $s3, $s3, 8 +/* 04E200 7F0196D0 AC6C0000 */ sw $t4, ($v1) +/* 04E204 7F0196D4 AC790004 */ sw $t9, 4($v1) +/* 04E208 7F0196D8 3C0E0388 */ lui $t6, (0x03880010 >> 16) # lui $t6, 0x388 +/* 04E20C 7F0196DC 3C0F8003 */ lui $t7, %hi(D_8002A970) +/* 04E210 7F0196E0 25EFA970 */ addiu $t7, %lo(D_8002A970) # addiu $t7, $t7, -0x5690 +/* 04E214 7F0196E4 35CE0010 */ ori $t6, (0x03880010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 04E218 7F0196E8 02602825 */ move $a1, $s3 +/* 04E21C 7F0196EC AC8E0000 */ sw $t6, ($a0) +/* 04E220 7F0196F0 AC8F0004 */ sw $t7, 4($a0) +/* 04E224 7F0196F4 3C0D0384 */ lui $t5, (0x03840010 >> 16) # lui $t5, 0x384 +/* 04E228 7F0196F8 35AD0010 */ ori $t5, (0x03840010 & 0xFFFF) # ori $t5, $t5, 0x10 +/* 04E22C 7F0196FC ACAD0000 */ sw $t5, ($a1) +/* 04E230 7F019700 ACB00004 */ sw $s0, 4($a1) +/* 04E234 7F019704 26730008 */ addiu $s3, $s3, 8 +/* 04E238 7F019708 02603825 */ move $a3, $s3 +/* 04E23C 7F01970C 3C0B0382 */ lui $t3, (0x03820010 >> 16) # lui $t3, 0x382 +/* 04E240 7F019710 356B0010 */ ori $t3, (0x03820010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 04E244 7F019714 26180010 */ addiu $t8, $s0, 0x10 +/* 04E248 7F019718 3C148003 */ lui $s4, %hi(objinstance) +/* 04E24C 7F01971C 2694B5F4 */ addiu $s4, %lo(objinstance) # addiu $s4, $s4, -0x4a0c +/* 04E250 7F019720 ACF80004 */ sw $t8, 4($a3) +/* 04E254 7F019724 ACEB0000 */ sw $t3, ($a3) +/* 04E258 7F019728 3C058005 */ lui $a1, %hi(clock_timer) +/* 04E25C 7F01972C 26730008 */ addiu $s3, $s3, 8 +/* 04E260 7F019730 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 04E264 7F019734 8E840000 */ lw $a0, ($s4) +/* 04E268 7F019738 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 04E26C 7F01973C 24060001 */ li $a2, 1 +/* 04E270 7F019740 0FC1B100 */ jal set_80036084 +/* 04E274 7F019744 24040001 */ li $a0, 1 +/* 04E278 7F019748 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 04E27C 7F01974C 00002025 */ move $a0, $zero +/* 04E280 7F019750 0FC1B5AC */ jal subcalcpos +/* 04E284 7F019754 8E840000 */ lw $a0, ($s4) +/* 04E288 7F019758 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E28C 7F01975C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E290 7F019760 10E0000B */ beqz $a3, .L7F019790 +/* 04E294 7F019764 00000000 */ nop +/* 04E298 7F019768 8CEC0008 */ lw $t4, 8($a3) +/* 04E29C 7F01976C 8D990008 */ lw $t9, 8($t4) +/* 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 +/* 04E2B0 7F019780 00E02025 */ move $a0, $a3 +/* 04E2B4 7F019784 A4400000 */ sh $zero, ($v0) +/* 04E2B8 7F019788 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E2BC 7F01978C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +.L7F019790: +/* 04E2C0 7F019790 50E0000A */ beql $a3, $zero, .L7F0197BC +/* 04E2C4 7F019794 8E8D0000 */ lw $t5, ($s4) +/* 04E2C8 7F019798 8CEE0008 */ lw $t6, 8($a3) +/* 04E2CC 7F01979C 8DCF0008 */ lw $t7, 8($t6) +/* 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 +/* 04E2E0 7F0197B0 00E02025 */ move $a0, $a3 +/* 04E2E4 7F0197B4 AC400000 */ sw $zero, ($v0) +/* 04E2E8 7F0197B8 8E8D0000 */ lw $t5, ($s4) +.L7F0197BC: +/* 04E2EC 7F0197BC 8DAB0008 */ lw $t3, 8($t5) +/* 04E2F0 7F0197C0 8564000E */ lh $a0, 0xe($t3) +/* 04E2F4 7F0197C4 0004C180 */ sll $t8, $a0, 6 +/* 04E2F8 7F0197C8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E2FC 7F0197CC 03002025 */ move $a0, $t8 +/* 04E300 7F0197D0 27B201E8 */ addiu $s2, $sp, 0x1e8 +/* 04E304 7F0197D4 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E308 7F0197D8 0FC15FF4 */ jal matrix_4x4_set_identity +/* 04E30C 7F0197DC 02402025 */ move $a0, $s2 +/* 04E310 7F0197E0 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E314 7F0197E4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E318 7F0197E8 0FC1BCBE */ jal subcalcmatrices +/* 04E31C 7F0197EC 8E850000 */ lw $a1, ($s4) +/* 04E320 7F0197F0 8E840000 */ lw $a0, ($s4) +/* 04E324 7F0197F4 0FC1B2E6 */ jal getsuboffset +/* 04E328 7F0197F8 27A50128 */ addiu $a1, $sp, 0x128 +/* 04E32C 7F0197FC 3C068007 */ lui $a2, %hi(flt_CODE_bss_800695E4) +/* 04E330 7F019800 24C695E4 */ addiu $a2, %lo(flt_CODE_bss_800695E4) # addiu $a2, $a2, -0x6a1c +/* 04E334 7F019804 8CC20000 */ lw $v0, ($a2) +/* 04E338 7F019808 00008825 */ move $s1, $zero +/* 04E33C 7F01980C 3C038005 */ lui $v1, %hi(clock_timer) +/* 04E340 7F019810 10400005 */ beqz $v0, .L7F019828 +/* 04E344 7F019814 00000000 */ nop +/* 04E348 7F019818 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 04E34C 7F01981C 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695E8) +/* 04E350 7F019820 261095E8 */ addiu $s0, %lo(flt_CODE_bss_800695E8) # addiu $s0, $s0, -0x6a18 +/* 04E354 7F019824 E60A0004 */ swc1 $f10, 4($s0) +.L7F019828: +/* 04E358 7F019828 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695E8) +/* 04E35C 7F01982C 261095E8 */ addiu $s0, %lo(flt_CODE_bss_800695E8) # addiu $s0, $s0, -0x6a18 +/* 04E360 7F019830 C6040000 */ lwc1 $f4, ($s0) +/* 04E364 7F019834 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 04E368 7F019838 3C018005 */ lui $at, %hi(global_timer_delta) +/* 04E36C 7F01983C E7A4006C */ swc1 $f4, 0x6c($sp) +/* 04E370 7F019840 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 04E374 7F019844 C6040004 */ lwc1 $f4, 4($s0) +/* 04E378 7F019848 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 04E37C 7F01984C 46083281 */ sub.s $f10, $f6, $f8 +/* 04E380 7F019850 E7A40064 */ swc1 $f4, 0x64($sp) +/* 04E384 7F019854 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 04E388 7F019858 C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 04E38C 7F01985C C6040008 */ lwc1 $f4, 8($s0) +/* 04E390 7F019860 46125083 */ div.s $f2, $f10, $f18 +/* 04E394 7F019864 E7A40060 */ swc1 $f4, 0x60($sp) +/* 04E398 7F019868 46083281 */ sub.s $f10, $f6, $f8 +/* 04E39C 7F01986C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 04E3A0 7F019870 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 04E3A4 7F019874 46125303 */ div.s $f12, $f10, $f18 +/* 04E3A8 7F019878 46083281 */ sub.s $f10, $f6, $f8 +/* 04E3AC 7F01987C 1040000B */ beqz $v0, .L7F0198AC +/* 04E3B0 7F019880 46125383 */ div.s $f14, $f10, $f18 +/* 04E3B4 7F019884 3C018005 */ lui $at, %hi(D_80051B20) +/* 04E3B8 7F019888 C4301B20 */ lwc1 $f16, %lo(D_80051B20)($at) +/* 04E3BC 7F01988C 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069608) +/* 04E3C0 7F019890 24429608 */ addiu $v0, %lo(flt_CODE_bss_80069608) # addiu $v0, $v0, -0x69f8 +/* 04E3C4 7F019894 46101103 */ div.s $f4, $f2, $f16 +/* 04E3C8 7F019898 46106183 */ div.s $f6, $f12, $f16 +/* 04E3CC 7F01989C E4440000 */ swc1 $f4, ($v0) +/* 04E3D0 7F0198A0 46107203 */ div.s $f8, $f14, $f16 +/* 04E3D4 7F0198A4 E4460004 */ swc1 $f6, 4($v0) +/* 04E3D8 7F0198A8 E4480008 */ swc1 $f8, 8($v0) +.L7F0198AC: +/* 04E3DC 7F0198AC 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 04E3E0 7F0198B0 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069608) +/* 04E3E4 7F0198B4 3C018005 */ lui $at, %hi(D_80051B24) +/* 04E3E8 7F0198B8 C4301B24 */ lwc1 $f16, %lo(D_80051B24)($at) +/* 04E3EC 7F0198BC 24429608 */ addiu $v0, %lo(flt_CODE_bss_80069608) # addiu $v0, $v0, -0x69f8 +/* 04E3F0 7F0198C0 E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E3F4 7F0198C4 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E3F8 7F0198C8 18600025 */ blez $v1, .L7F019960 +/* 04E3FC 7F0198CC E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E400 7F0198D0 3C018005 */ lui $at, %hi(D_80051B28) +/* 04E404 7F0198D4 C4201B28 */ lwc1 $f0, %lo(D_80051B28)($at) +/* 04E408 7F0198D8 C4440000 */ lwc1 $f4, ($v0) +/* 04E40C 7F0198DC 26310001 */ addiu $s1, $s1, 1 +/* 04E410 7F0198E0 0223082A */ slt $at, $s1, $v1 +/* 04E414 7F0198E4 46040282 */ mul.s $f10, $f0, $f4 +/* 04E418 7F0198E8 10200010 */ beqz $at, .L7F01992C +/* 04E41C 7F0198EC C4480004 */ lwc1 $f8, 4($v0) +.L7F0198F0: +/* 04E420 7F0198F0 46080182 */ mul.s $f6, $f0, $f8 +/* 04E424 7F0198F4 460A1100 */ add.s $f4, $f2, $f10 +/* 04E428 7F0198F8 C4480008 */ lwc1 $f8, 8($v0) +/* 04E42C 7F0198FC 26310001 */ addiu $s1, $s1, 1 +/* 04E430 7F019900 0223082A */ slt $at, $s1, $v1 +/* 04E434 7F019904 46080282 */ mul.s $f10, $f0, $f8 +/* 04E438 7F019908 E4440000 */ swc1 $f4, ($v0) +/* 04E43C 7F01990C 46066180 */ add.s $f6, $f12, $f6 +/* 04E440 7F019910 C4440000 */ lwc1 $f4, ($v0) +/* 04E444 7F019914 E4460004 */ swc1 $f6, 4($v0) +/* 04E448 7F019918 460A7180 */ add.s $f6, $f14, $f10 +/* 04E44C 7F01991C 46040282 */ mul.s $f10, $f0, $f4 +/* 04E450 7F019920 C4480004 */ lwc1 $f8, 4($v0) +/* 04E454 7F019924 1420FFF2 */ bnez $at, .L7F0198F0 +/* 04E458 7F019928 E4460008 */ swc1 $f6, 8($v0) +.L7F01992C: +/* 04E45C 7F01992C 46080182 */ mul.s $f6, $f0, $f8 +/* 04E460 7F019930 C4480008 */ lwc1 $f8, 8($v0) +/* 04E464 7F019934 460A1100 */ add.s $f4, $f2, $f10 +/* 04E468 7F019938 46080282 */ mul.s $f10, $f0, $f8 +/* 04E46C 7F01993C E4440000 */ swc1 $f4, ($v0) +/* 04E470 7F019940 46066180 */ add.s $f6, $f12, $f6 +/* 04E474 7F019944 E4460004 */ swc1 $f6, 4($v0) +/* 04E478 7F019948 460A7180 */ add.s $f6, $f14, $f10 +/* 04E47C 7F01994C E4460008 */ swc1 $f6, 8($v0) +/* 04E480 7F019950 E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E484 7F019954 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E488 7F019958 E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E48C 7F01995C 00008825 */ move $s1, $zero +.L7F019960: +/* 04E490 7F019960 C4440000 */ lwc1 $f4, ($v0) +/* 04E494 7F019964 C4480004 */ lwc1 $f8, 4($v0) +/* 04E498 7F019968 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695F8) +/* 04E49C 7F01996C 46102182 */ mul.s $f6, $f4, $f16 +/* 04E4A0 7F019970 C4440008 */ lwc1 $f4, 8($v0) +/* 04E4A4 7F019974 246395F8 */ addiu $v1, %lo(flt_CODE_bss_800695F8) # addiu $v1, $v1, -0x6a08 +/* 04E4A8 7F019978 46104282 */ mul.s $f10, $f8, $f16 +/* 04E4AC 7F01997C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 04E4B0 7F019980 8E8C0000 */ lw $t4, ($s4) +/* 04E4B4 7F019984 27A50134 */ addiu $a1, $sp, 0x134 +/* 04E4B8 7F019988 E4660000 */ swc1 $f6, ($v1) +/* 04E4BC 7F01998C 46102182 */ mul.s $f6, $f4, $f16 +/* 04E4C0 7F019990 E46A0004 */ swc1 $f10, 4($v1) +/* 04E4C4 7F019994 C46A0000 */ lwc1 $f10, ($v1) +/* 04E4C8 7F019998 46125102 */ mul.s $f4, $f10, $f18 +/* 04E4CC 7F01999C E4660008 */ swc1 $f6, 8($v1) +/* 04E4D0 7F0199A0 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 04E4D4 7F0199A4 46044180 */ add.s $f6, $f8, $f4 +/* 04E4D8 7F0199A8 C4680004 */ lwc1 $f8, 4($v1) +/* 04E4DC 7F0199AC 46124102 */ mul.s $f4, $f8, $f18 +/* 04E4E0 7F0199B0 E6060000 */ swc1 $f6, ($s0) +/* 04E4E4 7F0199B4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 04E4E8 7F0199B8 46045180 */ add.s $f6, $f10, $f4 +/* 04E4EC 7F0199BC C46A0008 */ lwc1 $f10, 8($v1) +/* 04E4F0 7F0199C0 46125102 */ mul.s $f4, $f10, $f18 +/* 04E4F4 7F0199C4 E6060004 */ swc1 $f6, 4($s0) +/* 04E4F8 7F0199C8 46044180 */ add.s $f6, $f8, $f4 +/* 04E4FC 7F0199CC E6060008 */ swc1 $f6, 8($s0) +/* 04E500 7F0199D0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 04E504 7F0199D4 8D84000C */ lw $a0, 0xc($t4) +/* 04E508 7F0199D8 C60A0004 */ lwc1 $f10, 4($s0) +/* 04E50C 7F0199DC C6040008 */ lwc1 $f4, 8($s0) +/* 04E510 7F0199E0 3C068007 */ lui $a2, %hi(flt_CODE_bss_800695E4) +/* 04E514 7F0199E4 24C695E4 */ addiu $a2, %lo(flt_CODE_bss_800695E4) # addiu $a2, $a2, -0x6a1c +/* 04E518 7F0199E8 8CD90000 */ lw $t9, ($a2) +/* 04E51C 7F0199EC 3C018005 */ lui $at, %hi(D_80051B30) +/* 04E520 7F0199F0 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 04E524 7F0199F4 E7A40060 */ swc1 $f4, 0x60($sp) +/* 04E528 7F0199F8 C7A20134 */ lwc1 $f2, 0x134($sp) +/* 04E52C 7F0199FC C7AC0138 */ lwc1 $f12, 0x138($sp) +/* 04E530 7F019A00 C7AE013C */ lwc1 $f14, 0x13c($sp) +/* 04E534 7F019A04 C6120000 */ lwc1 $f18, ($s0) +/* 04E538 7F019A08 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 04E53C 7F019A0C C7A60060 */ lwc1 $f6, 0x60($sp) +/* 04E540 7F019A10 C4201B30 */ lwc1 $f0, %lo(D_80051B30)($at) +/* 04E544 7F019A14 3C018005 */ lui $at, %hi(D_80051B34) +/* 04E548 7F019A18 C4301B34 */ lwc1 $f16, %lo(D_80051B34)($at) +/* 04E54C 7F019A1C 46121081 */ sub.s $f2, $f2, $f18 +/* 04E550 7F019A20 46086301 */ sub.s $f12, $f12, $f8 +/* 04E554 7F019A24 1320000A */ beqz $t9, .L7F019A50 +/* 04E558 7F019A28 46067381 */ sub.s $f14, $f14, $f6 +/* 04E55C 7F019A2C 46101283 */ div.s $f10, $f2, $f16 +/* 04E560 7F019A30 3C028007 */ lui $v0, %hi(flt_CODE_bss_800695D8) +/* 04E564 7F019A34 244295D8 */ addiu $v0, %lo(flt_CODE_bss_800695D8) # addiu $v0, $v0, -0x6a28 +/* 04E568 7F019A38 ACC00000 */ sw $zero, ($a2) +/* 04E56C 7F019A3C 46106203 */ div.s $f8, $f12, $f16 +/* 04E570 7F019A40 E44A0000 */ swc1 $f10, ($v0) +/* 04E574 7F019A44 46107103 */ div.s $f4, $f14, $f16 +/* 04E578 7F019A48 E4480004 */ swc1 $f8, 4($v0) +/* 04E57C 7F019A4C E4440008 */ swc1 $f4, 8($v0) +.L7F019A50: +/* 04E580 7F019A50 3C038005 */ lui $v1, %hi(clock_timer) +/* 04E584 7F019A54 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 04E588 7F019A58 3C028007 */ lui $v0, %hi(flt_CODE_bss_800695D8) +/* 04E58C 7F019A5C 244295D8 */ addiu $v0, %lo(flt_CODE_bss_800695D8) # addiu $v0, $v0, -0x6a28 +/* 04E590 7F019A60 58600021 */ blezl $v1, .L7F019AE8 +/* 04E594 7F019A64 C44A0000 */ lwc1 $f10, ($v0) +/* 04E598 7F019A68 C4440000 */ lwc1 $f4, ($v0) +/* 04E59C 7F019A6C 26310001 */ addiu $s1, $s1, 1 +/* 04E5A0 7F019A70 0223082A */ slt $at, $s1, $v1 +/* 04E5A4 7F019A74 46040202 */ mul.s $f8, $f0, $f4 +/* 04E5A8 7F019A78 10200010 */ beqz $at, .L7F019ABC +/* 04E5AC 7F019A7C C44A0004 */ lwc1 $f10, 4($v0) +.L7F019A80: +/* 04E5B0 7F019A80 460A0182 */ mul.s $f6, $f0, $f10 +/* 04E5B4 7F019A84 46081100 */ add.s $f4, $f2, $f8 +/* 04E5B8 7F019A88 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E5BC 7F019A8C 26310001 */ addiu $s1, $s1, 1 +/* 04E5C0 7F019A90 0223082A */ slt $at, $s1, $v1 +/* 04E5C4 7F019A94 460A0202 */ mul.s $f8, $f0, $f10 +/* 04E5C8 7F019A98 E4440000 */ swc1 $f4, ($v0) +/* 04E5CC 7F019A9C 46066180 */ add.s $f6, $f12, $f6 +/* 04E5D0 7F019AA0 C4440000 */ lwc1 $f4, ($v0) +/* 04E5D4 7F019AA4 E4460004 */ swc1 $f6, 4($v0) +/* 04E5D8 7F019AA8 46087180 */ add.s $f6, $f14, $f8 +/* 04E5DC 7F019AAC 46040202 */ mul.s $f8, $f0, $f4 +/* 04E5E0 7F019AB0 C44A0004 */ lwc1 $f10, 4($v0) +/* 04E5E4 7F019AB4 1420FFF2 */ bnez $at, .L7F019A80 +/* 04E5E8 7F019AB8 E4460008 */ swc1 $f6, 8($v0) +.L7F019ABC: +/* 04E5EC 7F019ABC 460A0182 */ mul.s $f6, $f0, $f10 +/* 04E5F0 7F019AC0 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E5F4 7F019AC4 46081100 */ add.s $f4, $f2, $f8 +/* 04E5F8 7F019AC8 460A0202 */ mul.s $f8, $f0, $f10 +/* 04E5FC 7F019ACC E4440000 */ swc1 $f4, ($v0) +/* 04E600 7F019AD0 46066180 */ add.s $f6, $f12, $f6 +/* 04E604 7F019AD4 E4460004 */ swc1 $f6, 4($v0) +/* 04E608 7F019AD8 46087180 */ add.s $f6, $f14, $f8 +/* 04E60C 7F019ADC E4460008 */ swc1 $f6, 8($v0) +/* 04E610 7F019AE0 00008825 */ move $s1, $zero +/* 04E614 7F019AE4 C44A0000 */ lwc1 $f10, ($v0) +.L7F019AE8: +/* 04E618 7F019AE8 C4440004 */ lwc1 $f4, 4($v0) +/* 04E61C 7F019AEC 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695C8) +/* 04E620 7F019AF0 46105202 */ mul.s $f8, $f10, $f16 +/* 04E624 7F019AF4 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E628 7F019AF8 246395C8 */ addiu $v1, %lo(flt_CODE_bss_800695C8) # addiu $v1, $v1, -0x6a38 +/* 04E62C 7F019AFC 46102182 */ mul.s $f6, $f4, $f16 +/* 04E630 7F019B00 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04E634 7F019B04 C7A0023C */ lwc1 $f0, 0x23c($sp) +/* 04E638 7F019B08 02402025 */ move $a0, $s2 +/* 04E63C 7F019B0C E4680000 */ swc1 $f8, ($v1) +/* 04E640 7F019B10 46105202 */ mul.s $f8, $f10, $f16 +/* 04E644 7F019B14 C4640000 */ lwc1 $f4, ($v1) +/* 04E648 7F019B18 E4660004 */ swc1 $f6, 4($v1) +/* 04E64C 7F019B1C C46A0004 */ lwc1 $f10, 4($v1) +/* 04E650 7F019B20 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 04E654 7F019B24 46049080 */ add.s $f2, $f18, $f4 +/* 04E658 7F019B28 44812000 */ mtc1 $at, $f4 +/* 04E65C 7F019B2C E4680008 */ swc1 $f8, 8($v1) +/* 04E660 7F019B30 460A3200 */ add.s $f8, $f6, $f10 +/* 04E664 7F019B34 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 04E668 7F019B38 E7A60050 */ swc1 $f6, 0x50($sp) +/* 04E66C 7F019B3C 3C014252 */ li $at, 0x42520000 # 52.500000 +/* 04E670 7F019B40 46044301 */ sub.s $f12, $f8, $f4 +/* 04E674 7F019B44 C4680008 */ lwc1 $f8, 8($v1) +/* 04E678 7F019B48 C7A40238 */ lwc1 $f4, 0x238($sp) +/* 04E67C 7F019B4C E7AA0054 */ swc1 $f10, 0x54($sp) +/* 04E680 7F019B50 46085380 */ add.s $f14, $f10, $f8 +/* 04E684 7F019B54 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 04E688 7F019B58 C7A60244 */ lwc1 $f6, 0x244($sp) +/* 04E68C 7F019B5C 46022200 */ add.s $f8, $f4, $f2 +/* 04E690 7F019B60 C7A40240 */ lwc1 $f4, 0x240($sp) +/* 04E694 7F019B64 E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E698 7F019B68 46123180 */ add.s $f6, $f6, $f18 +/* 04E69C 7F019B6C E7A80238 */ swc1 $f8, 0x238($sp) +/* 04E6A0 7F019B70 E7A80050 */ swc1 $f8, 0x50($sp) +/* 04E6A4 7F019B74 44814000 */ mtc1 $at, $f8 +/* 04E6A8 7F019B78 460E2100 */ add.s $f4, $f4, $f14 +/* 04E6AC 7F019B7C E7A60244 */ swc1 $f6, 0x244($sp) +/* 04E6B0 7F019B80 44053000 */ mfc1 $a1, $f6 +/* 04E6B4 7F019B84 46085280 */ add.s $f10, $f10, $f8 +/* 04E6B8 7F019B88 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 04E6BC 7F019B8C E7A40240 */ swc1 $f4, 0x240($sp) +/* 04E6C0 7F019B90 E7A40058 */ swc1 $f4, 0x58($sp) +/* 04E6C4 7F019B94 460A4200 */ add.s $f8, $f8, $f10 +/* 04E6C8 7F019B98 C7AA024C */ lwc1 $f10, 0x24c($sp) +/* 04E6CC 7F019B9C C7A40054 */ lwc1 $f4, 0x54($sp) +/* 04E6D0 7F019BA0 460C0000 */ add.s $f0, $f0, $f12 +/* 04E6D4 7F019BA4 E7A80248 */ swc1 $f8, 0x248($sp) +/* 04E6D8 7F019BA8 44064000 */ mfc1 $a2, $f8 +/* 04E6DC 7F019BAC 46045280 */ add.s $f10, $f10, $f4 +/* 04E6E0 7F019BB0 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 04E6E4 7F019BB4 C7A8022C */ lwc1 $f8, 0x22c($sp) +/* 04E6E8 7F019BB8 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 04E6EC 7F019BBC E7AA024C */ swc1 $f10, 0x24c($sp) +/* 04E6F0 7F019BC0 44075000 */ mfc1 $a3, $f10 +/* 04E6F4 7F019BC4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 04E6F8 7F019BC8 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 04E6FC 7F019BCC C7AA0230 */ lwc1 $f10, 0x230($sp) +/* 04E700 7F019BD0 E7A00014 */ swc1 $f0, 0x14($sp) +/* 04E704 7F019BD4 E7A0023C */ swc1 $f0, 0x23c($sp) +/* 04E708 7F019BD8 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E70C 7F019BDC E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E710 7F019BE0 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 04E714 7F019BE4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 04E718 7F019BE8 E7A40024 */ swc1 $f4, 0x24($sp) +/* 04E71C 7F019BEC 0FC165A5 */ jal sub_GAME_7F059694 +/* 04E720 7F019BF0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 04E724 7F019BF4 8E8E0000 */ lw $t6, ($s4) +/* 04E728 7F019BF8 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E72C 7F019BFC 8DCF0008 */ lw $t7, 8($t6) +/* 04E730 7F019C00 85E4000E */ lh $a0, 0xe($t7) +/* 04E734 7F019C04 00046980 */ sll $t5, $a0, 6 +/* 04E738 7F019C08 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E73C 7F019C0C 01A02025 */ move $a0, $t5 +/* 04E740 7F019C10 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E744 7F019C14 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E748 7F019C18 0FC1BCBE */ jal subcalcmatrices +/* 04E74C 7F019C1C 8E850000 */ lw $a1, ($s4) +/* 04E750 7F019C20 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E754 7F019C24 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E758 7F019C28 50E00025 */ beql $a3, $zero, .L7F019CC0 +/* 04E75C 7F019C2C 24180007 */ li $t8, 7 +/* 04E760 7F019C30 8E840000 */ lw $a0, ($s4) +/* 04E764 7F019C34 8CE5001C */ lw $a1, 0x1c($a3) +/* 04E768 7F019C38 0FC1B198 */ jal sub_GAME_7F06C660 +/* 04E76C 7F019C3C 00003025 */ move $a2, $zero +/* 04E770 7F019C40 8E980000 */ lw $t8, ($s4) +/* 04E774 7F019C44 AFA201A8 */ sw $v0, 0x1a8($sp) +/* 04E778 7F019C48 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E77C 7F019C4C 8F0C0008 */ lw $t4, 8($t8) +/* 04E780 7F019C50 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E784 7F019C54 27B20160 */ addiu $s2, $sp, 0x160 +/* 04E788 7F019C58 8D990008 */ lw $t9, 8($t4) +/* 04E78C 7F019C5C 8CEB001C */ lw $t3, 0x1c($a3) +/* 04E790 7F019C60 02402825 */ move $a1, $s2 +/* 04E794 7F019C64 8F2E0014 */ lw $t6, 0x14($t9) +/* 04E798 7F019C68 3C018005 */ lui $at, %hi(D_80051B38) +/* 04E79C 7F019C6C 556E000A */ bnel $t3, $t6, .L7F019C98 +/* 04E7A0 7F019C70 8CEF0008 */ lw $t7, 8($a3) +/* 04E7A4 7F019C74 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 04E7A8 7F019C78 C42C1B38 */ lwc1 $f12, %lo(D_80051B38)($at) +/* 04E7AC 7F019C7C 8FA401A8 */ lw $a0, 0x1a8($sp) +/* 04E7B0 7F019C80 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 04E7B4 7F019C84 02402825 */ move $a1, $s2 +/* 04E7B8 7F019C88 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E7BC 7F019C8C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E7C0 7F019C90 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E7C4 7F019C94 8CEF0008 */ lw $t7, 8($a3) +.L7F019C98: +/* 04E7C8 7F019C98 85E4000E */ lh $a0, 0xe($t7) +/* 04E7CC 7F019C9C 00046980 */ sll $t5, $a0, 6 +/* 04E7D0 7F019CA0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E7D4 7F019CA4 01A02025 */ move $a0, $t5 +/* 04E7D8 7F019CA8 3C058003 */ lui $a1, %hi(ptrobjinstance) +/* 04E7DC 7F019CAC AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E7E0 7F019CB0 8CA5B5F8 */ lw $a1, %lo(ptrobjinstance)($a1) +/* 04E7E4 7F019CB4 0FC1BC92 */ jal instcalcmatrices +/* 04E7E8 7F019CB8 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E7EC 7F019CBC 24180007 */ li $t8, 7 +.L7F019CC0: +/* 04E7F0 7F019CC0 240C0001 */ li $t4, 1 +/* 04E7F4 7F019CC4 24190003 */ li $t9, 3 +/* 04E7F8 7F019CC8 27B20160 */ addiu $s2, $sp, 0x160 +/* 04E7FC 7F019CCC AFB801D8 */ sw $t8, 0x1d8($sp) +/* 04E800 7F019CD0 AFAC01AC */ sw $t4, 0x1ac($sp) +/* 04E804 7F019CD4 AFB301B4 */ sw $s3, 0x1b4($sp) +/* 04E808 7F019CD8 AFB901B0 */ sw $t9, 0x1b0($sp) +/* 04E80C 7F019CDC 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E810 7F019CE0 0FC1D1A1 */ jal subdraw +/* 04E814 7F019CE4 8E850000 */ lw $a1, ($s4) +/* 04E818 7F019CE8 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E81C 7F019CEC 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E820 7F019CF0 10E00003 */ beqz $a3, .L7F019D00 +/* 04E824 7F019CF4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E828 7F019CF8 0FC1D1A1 */ jal subdraw +/* 04E82C 7F019CFC 00E02825 */ move $a1, $a3 +.L7F019D00: +/* 04E830 7F019D00 8FB301B4 */ lw $s3, 0x1b4($sp) +/* 04E834 7F019D04 0FC1B100 */ jal set_80036084 +/* 04E838 7F019D08 00002025 */ move $a0, $zero +/* 04E83C 7F019D0C 8E820000 */ lw $v0, ($s4) +/* 04E840 7F019D10 8C4B0008 */ lw $t3, 8($v0) +/* 04E844 7F019D14 856E000E */ lh $t6, 0xe($t3) +/* 04E848 7F019D18 19C00013 */ blez $t6, .L7F019D68 +/* 04E84C 7F019D1C 00008025 */ move $s0, $zero +/* 04E850 7F019D20 8C4F000C */ lw $t7, 0xc($v0) +.L7F019D24: +/* 04E854 7F019D24 02402825 */ move $a1, $s2 +/* 04E858 7F019D28 0FC16008 */ jal matrix_4x4_copy +/* 04E85C 7F019D2C 01F02021 */ addu $a0, $t7, $s0 +/* 04E860 7F019D30 8E8D0000 */ lw $t5, ($s4) +/* 04E864 7F019D34 00116180 */ sll $t4, $s1, 6 +/* 04E868 7F019D38 02402025 */ move $a0, $s2 +/* 04E86C 7F019D3C 8DB8000C */ lw $t8, 0xc($t5) +/* 04E870 7F019D40 0FC16327 */ jal sub_GAME_7F058C9C +/* 04E874 7F019D44 030C2821 */ addu $a1, $t8, $t4 +/* 04E878 7F019D48 8E820000 */ lw $v0, ($s4) +/* 04E87C 7F019D4C 26310001 */ addiu $s1, $s1, 1 +/* 04E880 7F019D50 26100040 */ addiu $s0, $s0, 0x40 +/* 04E884 7F019D54 8C590008 */ lw $t9, 8($v0) +/* 04E888 7F019D58 872B000E */ lh $t3, 0xe($t9) +/* 04E88C 7F019D5C 022B082A */ slt $at, $s1, $t3 +/* 04E890 7F019D60 5420FFF0 */ bnezl $at, .L7F019D24 +/* 04E894 7F019D64 8C4F000C */ lw $t7, 0xc($v0) +.L7F019D68: +/* 04E898 7F019D68 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E89C 7F019D6C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E8A0 7F019D70 50E0001C */ beql $a3, $zero, .L7F019DE4 +/* 04E8A4 7F019D74 02601025 */ move $v0, $s3 +/* 04E8A8 7F019D78 8CEE0008 */ lw $t6, 8($a3) +/* 04E8AC 7F019D7C 00008825 */ move $s1, $zero +/* 04E8B0 7F019D80 00008025 */ move $s0, $zero +/* 04E8B4 7F019D84 85CF000E */ lh $t7, 0xe($t6) +/* 04E8B8 7F019D88 59E00016 */ blezl $t7, .L7F019DE4 +/* 04E8BC 7F019D8C 02601025 */ move $v0, $s3 +/* 04E8C0 7F019D90 8CED000C */ lw $t5, 0xc($a3) +.L7F019D94: +/* 04E8C4 7F019D94 02402825 */ move $a1, $s2 +/* 04E8C8 7F019D98 0FC16008 */ jal matrix_4x4_copy +/* 04E8CC 7F019D9C 01B02021 */ addu $a0, $t5, $s0 +/* 04E8D0 7F019DA0 3C188003 */ lui $t8, %hi(ptrobjinstance) +/* 04E8D4 7F019DA4 8F18B5F8 */ lw $t8, %lo(ptrobjinstance)($t8) +/* 04E8D8 7F019DA8 0011C980 */ sll $t9, $s1, 6 +/* 04E8DC 7F019DAC 02402025 */ move $a0, $s2 +/* 04E8E0 7F019DB0 8F0C000C */ lw $t4, 0xc($t8) +/* 04E8E4 7F019DB4 0FC16327 */ jal sub_GAME_7F058C9C +/* 04E8E8 7F019DB8 01992821 */ addu $a1, $t4, $t9 +/* 04E8EC 7F019DBC 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E8F0 7F019DC0 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E8F4 7F019DC4 26310001 */ addiu $s1, $s1, 1 +/* 04E8F8 7F019DC8 26100040 */ addiu $s0, $s0, 0x40 +/* 04E8FC 7F019DCC 8CEB0008 */ lw $t3, 8($a3) +/* 04E900 7F019DD0 856E000E */ lh $t6, 0xe($t3) +/* 04E904 7F019DD4 022E082A */ slt $at, $s1, $t6 +/* 04E908 7F019DD8 5420FFEE */ bnezl $at, .L7F019D94 +/* 04E90C 7F019DDC 8CED000C */ lw $t5, 0xc($a3) +/* 04E910 7F019DE0 02601025 */ move $v0, $s3 +.L7F019DE4: +/* 04E914 7F019DE4 3C0D006E */ lui $t5, (0x006E0528 >> 16) # lui $t5, 0x6e +/* 04E918 7F019DE8 35AD0528 */ ori $t5, (0x006E0528 & 0xFFFF) # ori $t5, $t5, 0x528 +/* 04E91C 7F019DEC 3C0FED00 */ lui $t7, 0xed00 +/* 04E920 7F019DF0 AC4F0000 */ sw $t7, ($v0) +/* 04E924 7F019DF4 AC4D0004 */ sw $t5, 4($v0) +/* 04E928 7F019DF8 26730008 */ addiu $s3, $s3, 8 +/* 04E92C 7F019DFC 3C07E700 */ lui $a3, 0xe700 +/* 04E930 7F019E00 26640008 */ addiu $a0, $s3, 8 +/* 04E934 7F019E04 AE670000 */ sw $a3, ($s3) +/* 04E938 7F019E08 AE600004 */ sw $zero, 4($s3) +/* 04E93C 7F019E0C 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 04E940 7F019E10 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 04E944 7F019E14 AC980000 */ sw $t8, ($a0) +/* 04E948 7F019E18 AC800004 */ sw $zero, 4($a0) +/* 04E94C 7F019E1C 24850008 */ addiu $a1, $a0, 8 +/* 04E950 7F019E20 3C08BA00 */ lui $t0, (0xBA000602 >> 16) # lui $t0, 0xba00 +/* 04E954 7F019E24 35080602 */ ori $t0, (0xBA000602 & 0xFFFF) # ori $t0, $t0, 0x602 +/* 04E958 7F019E28 24A60008 */ addiu $a2, $a1, 8 +/* 04E95C 7F019E2C 240C00C0 */ li $t4, 192 +/* 04E960 7F019E30 3C09BA00 */ lui $t1, (0xBA001301 >> 16) # lui $t1, 0xba00 +/* 04E964 7F019E34 ACAC0004 */ sw $t4, 4($a1) +/* 04E968 7F019E38 ACA80000 */ sw $t0, ($a1) +/* 04E96C 7F019E3C 35291301 */ ori $t1, (0xBA001301 & 0xFFFF) # ori $t1, $t1, 0x1301 +/* 04E970 7F019E40 24C20008 */ addiu $v0, $a2, 8 +/* 04E974 7F019E44 ACC90000 */ sw $t1, ($a2) +/* 04E978 7F019E48 ACC00004 */ sw $zero, 4($a2) +/* 04E97C 7F019E4C 3C19B900 */ lui $t9, (0xB9000002 >> 16) # lui $t9, 0xb900 +/* 04E980 7F019E50 37390002 */ ori $t9, (0xB9000002 & 0xFFFF) # ori $t9, $t9, 2 +/* 04E984 7F019E54 24430008 */ addiu $v1, $v0, 8 +/* 04E988 7F019E58 3C0ABA00 */ lui $t2, (0xBA001001 >> 16) # lui $t2, 0xba00 +/* 04E98C 7F019E5C AC590000 */ sw $t9, ($v0) +/* 04E990 7F019E60 AC400004 */ sw $zero, 4($v0) +/* 04E994 7F019E64 354A1001 */ ori $t2, (0xBA001001 & 0xFFFF) # ori $t2, $t2, 0x1001 +/* 04E998 7F019E68 24730008 */ addiu $s3, $v1, 8 +/* 04E99C 7F019E6C AC6A0000 */ sw $t2, ($v1) +/* 04E9A0 7F019E70 AC600004 */ sw $zero, 4($v1) +/* 04E9A4 7F019E74 02602025 */ move $a0, $s3 +/* 04E9A8 7F019E78 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 04E9AC 7F019E7C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 04E9B0 7F019E80 240E2000 */ li $t6, 8192 +/* 04E9B4 7F019E84 AC8E0004 */ sw $t6, 4($a0) +/* 04E9B8 7F019E88 AC8B0000 */ sw $t3, ($a0) +/* 04E9BC 7F019E8C 26650008 */ addiu $a1, $s3, 8 +/* 04E9C0 7F019E90 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00 +/* 04E9C4 7F019E94 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903 +/* 04E9C8 7F019E98 ACAF0000 */ sw $t7, ($a1) +/* 04E9CC 7F019E9C 24A60008 */ addiu $a2, $a1, 8 +/* 04E9D0 7F019EA0 240D0C00 */ li $t5, 3072 +/* 04E9D4 7F019EA4 ACAD0004 */ sw $t5, 4($a1) +/* 04E9D8 7F019EA8 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 04E9DC 7F019EAC 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 04E9E0 7F019EB0 24C20008 */ addiu $v0, $a2, 8 +/* 04E9E4 7F019EB4 ACD80000 */ sw $t8, ($a2) +/* 04E9E8 7F019EB8 ACC00004 */ sw $zero, 4($a2) +/* 04E9EC 7F019EBC 3C190050 */ lui $t9, (0x00504340 >> 16) # lui $t9, 0x50 +/* 04E9F0 7F019EC0 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 04E9F4 7F019EC4 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 04E9F8 7F019EC8 37394340 */ ori $t9, (0x00504340 & 0xFFFF) # ori $t9, $t9, 0x4340 +/* 04E9FC 7F019ECC 24430008 */ addiu $v1, $v0, 8 +/* 04EA00 7F019ED0 AC590004 */ sw $t9, 4($v0) +/* 04EA04 7F019ED4 AC4C0000 */ sw $t4, ($v0) +/* 04EA08 7F019ED8 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 04EA0C 7F019EDC 3C0EFFFD */ lui $t6, (0xFFFDF6FB >> 16) # lui $t6, 0xfffd +/* 04EA10 7F019EE0 35CEF6FB */ ori $t6, (0xFFFDF6FB & 0xFFFF) # ori $t6, $t6, 0xf6fb +/* 04EA14 7F019EE4 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 04EA18 7F019EE8 AC6B0000 */ sw $t3, ($v1) +/* 04EA1C 7F019EEC AC6E0004 */ sw $t6, 4($v1) +/* 04EA20 7F019EF0 24640008 */ addiu $a0, $v1, 8 +/* 04EA24 7F019EF4 3C0FFA00 */ lui $t7, 0xfa00 +/* 04EA28 7F019EF8 AC8F0000 */ sw $t7, ($a0) +/* 04EA2C 7F019EFC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 04EA30 7F019F00 44813000 */ mtc1 $at, $f6 +/* 04EA34 7F019F04 C7A80144 */ lwc1 $f8, 0x144($sp) +/* 04EA38 7F019F08 240C00FF */ li $t4, 255 +/* 04EA3C 7F019F0C 24930008 */ addiu $s3, $a0, 8 +/* 04EA40 7F019F10 46083002 */ mul.s $f0, $f6, $f8 +/* 04EA44 7F019F14 3C0EF66E */ lui $t6, (0xF66E0528 >> 16) # lui $t6, 0xf66e +/* 04EA48 7F019F18 35CE0528 */ ori $t6, (0xF66E0528 & 0xFFFF) # ori $t6, $t6, 0x528 +/* 04EA4C 7F019F1C 26660008 */ addiu $a2, $s3, 8 +/* 04EA50 7F019F20 24C20008 */ addiu $v0, $a2, 8 +/* 04EA54 7F019F24 24430008 */ addiu $v1, $v0, 8 +/* 04EA58 7F019F28 240F0040 */ li $t7, 64 +/* 04EA5C 7F019F2C 4600028D */ trunc.w.s $f10, $f0 +/* 04EA60 7F019F30 3C0D0008 */ lui $t5, 8 +/* 04EA64 7F019F34 24650008 */ addiu $a1, $v1, 8 +/* 04EA68 7F019F38 44185000 */ mfc1 $t8, $f10 +/* 04EA6C 7F019F3C 00000000 */ nop +/* 04EA70 7F019F40 0198C823 */ subu $t9, $t4, $t8 +/* 04EA74 7F019F44 332B00FF */ andi $t3, $t9, 0xff +/* 04EA78 7F019F48 AC8B0004 */ sw $t3, 4($a0) +/* 04EA7C 7F019F4C AE600004 */ sw $zero, 4($s3) +/* 04EA80 7F019F50 AE6E0000 */ sw $t6, ($s3) +/* 04EA84 7F019F54 ACC00004 */ sw $zero, 4($a2) +/* 04EA88 7F019F58 ACC70000 */ sw $a3, ($a2) +/* 04EA8C 7F019F5C AC4F0004 */ sw $t7, 4($v0) +/* 04EA90 7F019F60 AC480000 */ sw $t0, ($v0) +/* 04EA94 7F019F64 AC6D0004 */ sw $t5, 4($v1) +/* 04EA98 7F019F68 AC690000 */ sw $t1, ($v1) +/* 04EA9C 7F019F6C 3C0C0001 */ lui $t4, 1 +/* 04EAA0 7F019F70 ACAC0004 */ sw $t4, 4($a1) +/* 04EAA4 7F019F74 ACAA0000 */ sw $t2, ($a1) +/* 04EAA8 7F019F78 24A40008 */ addiu $a0, $a1, 8 +/* 04EAAC 7F019F7C 0FC2B366 */ jal microcode_constructor +/* 04EAB0 7F019F80 E7A00070 */ swc1 $f0, 0x70($sp) +/* 04EAB4 7F019F84 3C188003 */ lui $t8, %hi(full_actor_intro) +/* 04EAB8 7F019F88 8F18B5FC */ lw $t8, %lo(full_actor_intro)($t8) +/* 04EABC 7F019F8C 00409825 */ move $s3, $v0 +/* 04EAC0 7F019F90 1700005F */ bnez $t8, .L7F01A110 +/* 04EAC4 7F019F94 3C198003 */ lui $t9, %hi(do_not_play_intro_movie) +/* 04EAC8 7F019F98 8F39B5E8 */ lw $t9, %lo(do_not_play_intro_movie)($t9) +/* 04EACC 7F019F9C 3C048003 */ lui $a0, %hi(intro_char_table+8) +/* 04EAD0 7F019FA0 00195880 */ sll $t3, $t9, 2 +/* 04EAD4 7F019FA4 01795821 */ addu $t3, $t3, $t9 +/* 04EAD8 7F019FA8 000B5880 */ sll $t3, $t3, 2 +/* 04EADC 7F019FAC 008B2021 */ addu $a0, $a0, $t3 +/* 04EAE0 7F019FB0 0FC30776 */ jal get_textptr_for_textID +/* 04EAE4 7F019FB4 9484B608 */ lhu $a0, %lo(intro_char_table+8)($a0) +/* 04EAE8 7F019FB8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04EAEC 7F019FBC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04EAF0 7F019FC0 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04EAF4 7F019FC4 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04EAF8 7F019FC8 00408825 */ move $s1, $v0 +/* 04EAFC 7F019FCC 8E870000 */ lw $a3, ($s4) +/* 04EB00 7F019FD0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04EB04 7F019FD4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04EB08 7F019FD8 00403025 */ move $a2, $v0 +/* 04EB0C 7F019FDC AFA00014 */ sw $zero, 0x14($sp) +/* 04EB10 7F019FE0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04EB14 7F019FE4 AFAE0010 */ sw $t6, 0x10($sp) +/* 04EB18 7F019FE8 8FA20154 */ lw $v0, 0x154($sp) +/* 04EB1C 7F019FEC 8FB80150 */ lw $t8, 0x150($sp) +/* 04EB20 7F019FF0 240D013B */ li $t5, 315 +/* 04EB24 7F019FF4 04410003 */ bgez $v0, .L7F01A004 +/* 04EB28 7F019FF8 00027843 */ sra $t7, $v0, 1 +/* 04EB2C 7F019FFC 24410001 */ addiu $at, $v0, 1 +/* 04EB30 7F01A000 00017843 */ sra $t7, $at, 1 +.L7F01A004: +/* 04EB34 7F01A004 01AF2823 */ subu $a1, $t5, $t7 +/* 04EB38 7F01A008 240C006C */ li $t4, 108 +/* 04EB3C 7F01A00C 00A23821 */ addu $a3, $a1, $v0 +/* 04EB40 7F01A010 2719006D */ addiu $t9, $t8, 0x6d +/* 04EB44 7F01A014 AFAC0158 */ sw $t4, 0x158($sp) +/* 04EB48 7F01A018 AFB90010 */ sw $t9, 0x10($sp) +/* 04EB4C 7F01A01C 24E70001 */ addiu $a3, $a3, 1 +/* 04EB50 7F01A020 AFA5015C */ sw $a1, 0x15c($sp) +/* 04EB54 7F01A024 02602025 */ move $a0, $s3 +/* 04EB58 7F01A028 2406006C */ li $a2, 108 +/* 04EB5C 7F01A02C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04EB60 7F01A030 AFA00014 */ sw $zero, 0x14($sp) +/* 04EB64 7F01A034 0C001107 */ jal get_video2_settings_txtClipW +/* 04EB68 7F01A038 00409825 */ move $s3, $v0 +/* 04EB6C 7F01A03C 00028400 */ sll $s0, $v0, 0x10 +/* 04EB70 7F01A040 00105C03 */ sra $t3, $s0, 0x10 +/* 04EB74 7F01A044 0C00110B */ jal get_video2_settings_txtClipH +/* 04EB78 7F01A048 01608025 */ move $s0, $t3 +/* 04EB7C 7F01A04C 444FF800 */ cfc1 $t7, $31 +/* 04EB80 7F01A050 240C0001 */ li $t4, 1 +/* 04EB84 7F01A054 44CCF800 */ ctc1 $t4, $31 +/* 04EB88 7F01A058 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 04EB8C 7F01A05C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04EB90 7F01A060 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04EB94 7F01A064 460021A4 */ cvt.w.s $f6, $f4 +/* 04EB98 7F01A068 8E8E0000 */ lw $t6, ($s4) +/* 04EB9C 7F01A06C 02602025 */ move $a0, $s3 +/* 04EBA0 7F01A070 27A5015C */ addiu $a1, $sp, 0x15c +/* 04EBA4 7F01A074 444CF800 */ cfc1 $t4, $31 +/* 04EBA8 7F01A078 27A60158 */ addiu $a2, $sp, 0x158 +/* 04EBAC 7F01A07C 02203825 */ move $a3, $s1 +/* 04EBB0 7F01A080 318C0078 */ andi $t4, $t4, 0x78 +/* 04EBB4 7F01A084 AFAD0014 */ sw $t5, 0x14($sp) +/* 04EBB8 7F01A088 11800013 */ beqz $t4, .L7F01A0D8 +/* 04EBBC 7F01A08C AFAE0010 */ sw $t6, 0x10($sp) +/* 04EBC0 7F01A090 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04EBC4 7F01A094 44813000 */ mtc1 $at, $f6 +/* 04EBC8 7F01A098 240C0001 */ li $t4, 1 +/* 04EBCC 7F01A09C 46062181 */ sub.s $f6, $f4, $f6 +/* 04EBD0 7F01A0A0 44CCF800 */ ctc1 $t4, $31 +/* 04EBD4 7F01A0A4 00000000 */ nop +/* 04EBD8 7F01A0A8 460031A4 */ cvt.w.s $f6, $f6 +/* 04EBDC 7F01A0AC 444CF800 */ cfc1 $t4, $31 +/* 04EBE0 7F01A0B0 00000000 */ nop +/* 04EBE4 7F01A0B4 318C0078 */ andi $t4, $t4, 0x78 +/* 04EBE8 7F01A0B8 15800005 */ bnez $t4, .L7F01A0D0 +/* 04EBEC 7F01A0BC 00000000 */ nop +/* 04EBF0 7F01A0C0 440C3000 */ mfc1 $t4, $f6 +/* 04EBF4 7F01A0C4 3C018000 */ lui $at, 0x8000 +/* 04EBF8 7F01A0C8 10000007 */ b .L7F01A0E8 +/* 04EBFC 7F01A0CC 01816025 */ or $t4, $t4, $at +.L7F01A0D0: +/* 04EC00 7F01A0D0 10000005 */ b .L7F01A0E8 +/* 04EC04 7F01A0D4 240CFFFF */ li $t4, -1 +.L7F01A0D8: +/* 04EC08 7F01A0D8 440C3000 */ mfc1 $t4, $f6 +/* 04EC0C 7F01A0DC 00000000 */ nop +/* 04EC10 7F01A0E0 0580FFFB */ bltz $t4, .L7F01A0D0 +/* 04EC14 7F01A0E4 00000000 */ nop +.L7F01A0E8: +/* 04EC18 7F01A0E8 2401FF00 */ li $at, -256 +/* 04EC1C 7F01A0EC 0181C025 */ or $t8, $t4, $at +/* 04EC20 7F01A0F0 44CFF800 */ ctc1 $t7, $31 +/* 04EC24 7F01A0F4 AFB80018 */ sw $t8, 0x18($sp) +/* 04EC28 7F01A0F8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EC2C 7F01A0FC AFA20020 */ sw $v0, 0x20($sp) +/* 04EC30 7F01A100 AFA00024 */ sw $zero, 0x24($sp) +/* 04EC34 7F01A104 0FC2B6AF */ jal en_text_write_stuff +/* 04EC38 7F01A108 AFA00028 */ sw $zero, 0x28($sp) +/* 04EC3C 7F01A10C 00409825 */ move $s3, $v0 +.L7F01A110: +/* 04EC40 7F01A110 444EF800 */ cfc1 $t6, $31 +/* 04EC44 7F01A114 24120001 */ li $s2, 1 +/* 04EC48 7F01A118 44D2F800 */ ctc1 $s2, $31 +/* 04EC4C 7F01A11C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 04EC50 7F01A120 3C198003 */ lui $t9, %hi(do_not_play_intro_movie) +/* 04EC54 7F01A124 8F39B5E8 */ lw $t9, %lo(do_not_play_intro_movie)($t9) +/* 04EC58 7F01A128 460042A4 */ cvt.w.s $f10, $f8 +/* 04EC5C 7F01A12C 3C048003 */ lui $a0, %hi(intro_char_table+10) +/* 04EC60 7F01A130 00195880 */ sll $t3, $t9, 2 +/* 04EC64 7F01A134 01795821 */ addu $t3, $t3, $t9 +/* 04EC68 7F01A138 4452F800 */ cfc1 $s2, $31 +/* 04EC6C 7F01A13C 000B5880 */ sll $t3, $t3, 2 +/* 04EC70 7F01A140 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04EC74 7F01A144 008B2021 */ addu $a0, $a0, $t3 +/* 04EC78 7F01A148 32520078 */ andi $s2, $s2, 0x78 +/* 04EC7C 7F01A14C 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04EC80 7F01A150 12400013 */ beqz $s2, .L7F01A1A0 +/* 04EC84 7F01A154 9484B60A */ lhu $a0, %lo(intro_char_table+10)($a0) +/* 04EC88 7F01A158 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04EC8C 7F01A15C 44815000 */ mtc1 $at, $f10 +/* 04EC90 7F01A160 24120001 */ li $s2, 1 +/* 04EC94 7F01A164 460A4281 */ sub.s $f10, $f8, $f10 +/* 04EC98 7F01A168 44D2F800 */ ctc1 $s2, $31 +/* 04EC9C 7F01A16C 00000000 */ nop +/* 04ECA0 7F01A170 460052A4 */ cvt.w.s $f10, $f10 +/* 04ECA4 7F01A174 4452F800 */ cfc1 $s2, $31 +/* 04ECA8 7F01A178 00000000 */ nop +/* 04ECAC 7F01A17C 32520078 */ andi $s2, $s2, 0x78 +/* 04ECB0 7F01A180 16400005 */ bnez $s2, .L7F01A198 +/* 04ECB4 7F01A184 00000000 */ nop +/* 04ECB8 7F01A188 44125000 */ mfc1 $s2, $f10 +/* 04ECBC 7F01A18C 3C018000 */ lui $at, 0x8000 +/* 04ECC0 7F01A190 10000007 */ b .L7F01A1B0 +/* 04ECC4 7F01A194 02419025 */ or $s2, $s2, $at +.L7F01A198: +/* 04ECC8 7F01A198 10000005 */ b .L7F01A1B0 +/* 04ECCC 7F01A19C 2412FFFF */ li $s2, -1 +.L7F01A1A0: +/* 04ECD0 7F01A1A0 44125000 */ mfc1 $s2, $f10 +/* 04ECD4 7F01A1A4 00000000 */ nop +/* 04ECD8 7F01A1A8 0640FFFB */ bltz $s2, .L7F01A198 +/* 04ECDC 7F01A1AC 00000000 */ nop +.L7F01A1B0: +/* 04ECE0 7F01A1B0 2401FF00 */ li $at, -256 +/* 04ECE4 7F01A1B4 02416825 */ or $t5, $s2, $at +/* 04ECE8 7F01A1B8 44CEF800 */ ctc1 $t6, $31 +/* 04ECEC 7F01A1BC 0FC30776 */ jal get_textptr_for_textID +/* 04ECF0 7F01A1C0 01A09025 */ move $s2, $t5 +/* 04ECF4 7F01A1C4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04ECF8 7F01A1C8 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04ECFC 7F01A1CC 00408825 */ move $s1, $v0 +/* 04ED00 7F01A1D0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04ED04 7F01A1D4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04ED08 7F01A1D8 00403025 */ move $a2, $v0 +/* 04ED0C 7F01A1DC 8E870000 */ lw $a3, ($s4) +/* 04ED10 7F01A1E0 AFA00014 */ sw $zero, 0x14($sp) +/* 04ED14 7F01A1E4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04ED18 7F01A1E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 04ED1C 7F01A1EC 8FA20154 */ lw $v0, 0x154($sp) +/* 04ED20 7F01A1F0 8FAB0150 */ lw $t3, 0x150($sp) +/* 04ED24 7F01A1F4 2418013B */ li $t8, 315 +/* 04ED28 7F01A1F8 04410003 */ bgez $v0, .L7F01A208 +/* 04ED2C 7F01A1FC 00026043 */ sra $t4, $v0, 1 +/* 04ED30 7F01A200 24410001 */ addiu $at, $v0, 1 +/* 04ED34 7F01A204 00016043 */ sra $t4, $at, 1 +.L7F01A208: +/* 04ED38 7F01A208 030C2823 */ subu $a1, $t8, $t4 +/* 04ED3C 7F01A20C 24190098 */ li $t9, 152 +/* 04ED40 7F01A210 00A23821 */ addu $a3, $a1, $v0 +/* 04ED44 7F01A214 256E0099 */ addiu $t6, $t3, 0x99 +/* 04ED48 7F01A218 AFB90158 */ sw $t9, 0x158($sp) +/* 04ED4C 7F01A21C AFAE0010 */ sw $t6, 0x10($sp) +/* 04ED50 7F01A220 24E70001 */ addiu $a3, $a3, 1 +/* 04ED54 7F01A224 AFA5015C */ sw $a1, 0x15c($sp) +/* 04ED58 7F01A228 02602025 */ move $a0, $s3 +/* 04ED5C 7F01A22C 24060098 */ li $a2, 152 +/* 04ED60 7F01A230 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04ED64 7F01A234 AFA00014 */ sw $zero, 0x14($sp) +/* 04ED68 7F01A238 0C001107 */ jal get_video2_settings_txtClipW +/* 04ED6C 7F01A23C 00409825 */ move $s3, $v0 +/* 04ED70 7F01A240 00028400 */ sll $s0, $v0, 0x10 +/* 04ED74 7F01A244 00106C03 */ sra $t5, $s0, 0x10 +/* 04ED78 7F01A248 0C00110B */ jal get_video2_settings_txtClipH +/* 04ED7C 7F01A24C 01A08025 */ move $s0, $t5 +/* 04ED80 7F01A250 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04ED84 7F01A254 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04ED88 7F01A258 8E8F0000 */ lw $t7, ($s4) +/* 04ED8C 7F01A25C 02602025 */ move $a0, $s3 +/* 04ED90 7F01A260 27A5015C */ addiu $a1, $sp, 0x15c +/* 04ED94 7F01A264 27A60158 */ addiu $a2, $sp, 0x158 +/* 04ED98 7F01A268 02203825 */ move $a3, $s1 +/* 04ED9C 7F01A26C AFB20018 */ sw $s2, 0x18($sp) +/* 04EDA0 7F01A270 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EDA4 7F01A274 AFA20020 */ sw $v0, 0x20($sp) +/* 04EDA8 7F01A278 AFA00024 */ sw $zero, 0x24($sp) +/* 04EDAC 7F01A27C AFA00028 */ sw $zero, 0x28($sp) +/* 04EDB0 7F01A280 AFB80014 */ sw $t8, 0x14($sp) +/* 04EDB4 7F01A284 0FC2B6AF */ jal en_text_write_stuff +/* 04EDB8 7F01A288 AFAF0010 */ sw $t7, 0x10($sp) +/* 04EDBC 7F01A28C 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04EDC0 7F01A290 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04EDC4 7F01A294 3C048003 */ lui $a0, %hi(intro_char_table+12) +/* 04EDC8 7F01A298 00409825 */ move $s3, $v0 +/* 04EDCC 7F01A29C 000CC880 */ sll $t9, $t4, 2 +/* 04EDD0 7F01A2A0 032CC821 */ addu $t9, $t9, $t4 +/* 04EDD4 7F01A2A4 0019C880 */ sll $t9, $t9, 2 +/* 04EDD8 7F01A2A8 00992021 */ addu $a0, $a0, $t9 +/* 04EDDC 7F01A2AC 0FC30776 */ jal get_textptr_for_textID +/* 04EDE0 7F01A2B0 9484B60C */ lhu $a0, %lo(intro_char_table+12)($a0) +/* 04EDE4 7F01A2B4 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04EDE8 7F01A2B8 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04EDEC 7F01A2BC 00408825 */ move $s1, $v0 +/* 04EDF0 7F01A2C0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04EDF4 7F01A2C4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04EDF8 7F01A2C8 00403025 */ move $a2, $v0 +/* 04EDFC 7F01A2CC 8E870000 */ lw $a3, ($s4) +/* 04EE00 7F01A2D0 AFA00014 */ sw $zero, 0x14($sp) +/* 04EE04 7F01A2D4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04EE08 7F01A2D8 AFAB0010 */ sw $t3, 0x10($sp) +/* 04EE0C 7F01A2DC 8FA20154 */ lw $v0, 0x154($sp) +/* 04EE10 7F01A2E0 8FB80150 */ lw $t8, 0x150($sp) +/* 04EE14 7F01A2E4 240D013B */ li $t5, 315 +/* 04EE18 7F01A2E8 04410003 */ bgez $v0, .L7F01A2F8 +/* 04EE1C 7F01A2EC 00027043 */ sra $t6, $v0, 1 +/* 04EE20 7F01A2F0 24410001 */ addiu $at, $v0, 1 +/* 04EE24 7F01A2F4 00017043 */ sra $t6, $at, 1 +.L7F01A2F8: +/* 04EE28 7F01A2F8 01AE2823 */ subu $a1, $t5, $t6 +/* 04EE2C 7F01A2FC 240F00AE */ li $t7, 174 +/* 04EE30 7F01A300 00A23821 */ addu $a3, $a1, $v0 +/* 04EE34 7F01A304 270C00AF */ addiu $t4, $t8, 0xaf +/* 04EE38 7F01A308 AFAF0158 */ sw $t7, 0x158($sp) +/* 04EE3C 7F01A30C AFAC0010 */ sw $t4, 0x10($sp) +/* 04EE40 7F01A310 24E70001 */ addiu $a3, $a3, 1 +/* 04EE44 7F01A314 AFA5015C */ sw $a1, 0x15c($sp) +/* 04EE48 7F01A318 02602025 */ move $a0, $s3 +/* 04EE4C 7F01A31C 240600AE */ li $a2, 174 +/* 04EE50 7F01A320 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04EE54 7F01A324 AFA00014 */ sw $zero, 0x14($sp) +/* 04EE58 7F01A328 0C001107 */ jal get_video2_settings_txtClipW +/* 04EE5C 7F01A32C 00409825 */ move $s3, $v0 +/* 04EE60 7F01A330 00028400 */ sll $s0, $v0, 0x10 +/* 04EE64 7F01A334 0010CC03 */ sra $t9, $s0, 0x10 +/* 04EE68 7F01A338 0C00110B */ jal get_video2_settings_txtClipH +/* 04EE6C 7F01A33C 03208025 */ move $s0, $t9 +/* 04EE70 7F01A340 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04EE74 7F01A344 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04EE78 7F01A348 8E8B0000 */ lw $t3, ($s4) +/* 04EE7C 7F01A34C 02602025 */ move $a0, $s3 +/* 04EE80 7F01A350 27A5015C */ addiu $a1, $sp, 0x15c +/* 04EE84 7F01A354 27A60158 */ addiu $a2, $sp, 0x158 +/* 04EE88 7F01A358 02203825 */ move $a3, $s1 +/* 04EE8C 7F01A35C AFB20018 */ sw $s2, 0x18($sp) +/* 04EE90 7F01A360 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EE94 7F01A364 AFA20020 */ sw $v0, 0x20($sp) +/* 04EE98 7F01A368 AFA00024 */ sw $zero, 0x24($sp) +/* 04EE9C 7F01A36C AFA00028 */ sw $zero, 0x28($sp) +/* 04EEA0 7F01A370 AFAD0014 */ sw $t5, 0x14($sp) +/* 04EEA4 7F01A374 0FC2B6AF */ jal en_text_write_stuff +/* 04EEA8 7F01A378 AFAB0010 */ sw $t3, 0x10($sp) +/* 04EEAC 7F01A37C 8FBF004C */ lw $ra, 0x4c($sp) +/* 04EEB0 7F01A380 8FB00038 */ lw $s0, 0x38($sp) +/* 04EEB4 7F01A384 8FB1003C */ lw $s1, 0x3c($sp) +/* 04EEB8 7F01A388 8FB20040 */ lw $s2, 0x40($sp) +/* 04EEBC 7F01A38C 8FB30044 */ lw $s3, 0x44($sp) +/* 04EEC0 7F01A390 8FB40048 */ lw $s4, 0x48($sp) +/* 04EEC4 7F01A394 03E00008 */ jr $ra +/* 04EEC8 7F01A398 27BD0250 */ addiu $sp, $sp, 0x250 +) +#endif + + + +#ifdef NONMATCHING +void init_menu19_spectrum(void) { + u8 rom; + + // Node 0 + rom = 0; + if (get_controller_buttons_held(2, 2) == 0) + { + // Node 1 + if (get_controller_buttons_held(2, 1) != 0) + { + // Node 2 + rom = 1; + } + else + { + // Node 3 + if (get_controller_buttons_held(2, 8) != 0) + { + // Node 4 + rom = 2; + } + else + { + // Node 5 + if (get_controller_buttons_held(2, 4) != 0) + { + // Node 6 + rom = 3; + } + else + { + // Node 7 + if (get_controller_buttons_held(2, 0x200) != 0) + { + // Node 8 + rom = 4; + } + else + { + // Node 9 + if (get_controller_buttons_held(2, 0x100) != 0) + { + // Node 10 + rom = 5; + } + else + { + // Node 11 + if (get_controller_buttons_held(2, 0x800) != 0) + { + // Node 12 + rom = 6; + } + else + { + // Node 13 + rom = 0; + if (get_controller_buttons_held(2, 0x400) != 0) + { + // Node 14 + rom = 7; + } + } + } + } + } + } + } + } + // Node 15 + return init_spectrum_game(rom); +} +#else +GLOBAL_ASM( +.text +glabel init_menu19_spectrum +/* 04EECC 7F01A39C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04EED0 7F01A3A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 04EED4 7F01A3A4 AFB00018 */ sw $s0, 0x18($sp) +/* 04EED8 7F01A3A8 00008025 */ move $s0, $zero +/* 04EEDC 7F01A3AC 24040002 */ li $a0, 2 +/* 04EEE0 7F01A3B0 0C0030C3 */ jal get_controller_buttons_held +/* 04EEE4 7F01A3B4 24050002 */ li $a1, 2 +/* 04EEE8 7F01A3B8 1440002A */ bnez $v0, .L7F01A464 +/* 04EEEC 7F01A3BC 24040002 */ li $a0, 2 +/* 04EEF0 7F01A3C0 0C0030C3 */ jal get_controller_buttons_held +/* 04EEF4 7F01A3C4 24050001 */ li $a1, 1 +/* 04EEF8 7F01A3C8 10400003 */ beqz $v0, .L7F01A3D8 +/* 04EEFC 7F01A3CC 24040002 */ li $a0, 2 +/* 04EF00 7F01A3D0 10000024 */ b .L7F01A464 +/* 04EF04 7F01A3D4 24100001 */ li $s0, 1 +.L7F01A3D8: +/* 04EF08 7F01A3D8 0C0030C3 */ jal get_controller_buttons_held +/* 04EF0C 7F01A3DC 24050008 */ li $a1, 8 +/* 04EF10 7F01A3E0 10400003 */ beqz $v0, .L7F01A3F0 +/* 04EF14 7F01A3E4 24040002 */ li $a0, 2 +/* 04EF18 7F01A3E8 1000001E */ b .L7F01A464 +/* 04EF1C 7F01A3EC 24100002 */ li $s0, 2 +.L7F01A3F0: +/* 04EF20 7F01A3F0 0C0030C3 */ jal get_controller_buttons_held +/* 04EF24 7F01A3F4 24050004 */ li $a1, 4 +/* 04EF28 7F01A3F8 10400003 */ beqz $v0, .L7F01A408 +/* 04EF2C 7F01A3FC 24040002 */ li $a0, 2 +/* 04EF30 7F01A400 10000018 */ b .L7F01A464 +/* 04EF34 7F01A404 24100003 */ li $s0, 3 +.L7F01A408: +/* 04EF38 7F01A408 0C0030C3 */ jal get_controller_buttons_held +/* 04EF3C 7F01A40C 24050200 */ li $a1, 512 +/* 04EF40 7F01A410 10400003 */ beqz $v0, .L7F01A420 +/* 04EF44 7F01A414 24040002 */ li $a0, 2 +/* 04EF48 7F01A418 10000012 */ b .L7F01A464 +/* 04EF4C 7F01A41C 24100004 */ li $s0, 4 +.L7F01A420: +/* 04EF50 7F01A420 0C0030C3 */ jal get_controller_buttons_held +/* 04EF54 7F01A424 24050100 */ li $a1, 256 +/* 04EF58 7F01A428 10400003 */ beqz $v0, .L7F01A438 +/* 04EF5C 7F01A42C 24040002 */ li $a0, 2 +/* 04EF60 7F01A430 1000000C */ b .L7F01A464 +/* 04EF64 7F01A434 24100005 */ li $s0, 5 +.L7F01A438: +/* 04EF68 7F01A438 0C0030C3 */ jal get_controller_buttons_held +/* 04EF6C 7F01A43C 24050800 */ li $a1, 2048 +/* 04EF70 7F01A440 10400003 */ beqz $v0, .L7F01A450 +/* 04EF74 7F01A444 24040002 */ li $a0, 2 +/* 04EF78 7F01A448 10000006 */ b .L7F01A464 +/* 04EF7C 7F01A44C 24100006 */ li $s0, 6 +.L7F01A450: +/* 04EF80 7F01A450 0C0030C3 */ jal get_controller_buttons_held +/* 04EF84 7F01A454 24050400 */ li $a1, 1024 +/* 04EF88 7F01A458 10400002 */ beqz $v0, .L7F01A464 +/* 04EF8C 7F01A45C 00000000 */ nop +/* 04EF90 7F01A460 24100007 */ li $s0, 7 +.L7F01A464: +/* 04EF94 7F01A464 0FC34BF1 */ jal init_spectrum_game +/* 04EF98 7F01A468 02002025 */ move $a0, $s0 +/* 04EF9C 7F01A46C 8FBF001C */ lw $ra, 0x1c($sp) +/* 04EFA0 7F01A470 8FB00018 */ lw $s0, 0x18($sp) +/* 04EFA4 7F01A474 27BD0020 */ addiu $sp, $sp, 0x20 +/* 04EFA8 7F01A478 03E00008 */ jr $ra +/* 04EFAC 7F01A47C 00000000 */ nop +) +#endif + + + + + + +void update_menu19_spectrum(void) { + return; +} + + + +#ifdef NONMATCHING +void interface_menu19_spectrum(void) { + setvideo_far(60.0f); + video_related_21(D_80051B3C); + set_page_height(100.0f, D_80051B40); + set_video2_settings_offset_24(0); + run_spectrum_game(); +} +#else +GLOBAL_ASM( +.text +glabel interface_menu19_spectrum +/* 04EFB8 7F01A488 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04EFBC 7F01A48C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04EFC0 7F01A490 AFBF0014 */ sw $ra, 0x14($sp) +/* 04EFC4 7F01A494 44816000 */ mtc1 $at, $f12 +/* 04EFC8 7F01A498 0C001151 */ jal setvideo_far +/* 04EFCC 7F01A49C 00000000 */ nop +/* 04EFD0 7F01A4A0 3C018005 */ lui $at, %hi(D_80051B3C) +/* 04EFD4 7F01A4A4 0C001164 */ jal video_related_21 +/* 04EFD8 7F01A4A8 C42C1B3C */ lwc1 $f12, %lo(D_80051B3C)($at) +/* 04EFDC 7F01A4AC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04EFE0 7F01A4B0 44816000 */ mtc1 $at, $f12 +/* 04EFE4 7F01A4B4 3C018005 */ lui $at, %hi(D_80051B40) +/* 04EFE8 7F01A4B8 0C001194 */ jal set_page_height +/* 04EFEC 7F01A4BC C42E1B40 */ lwc1 $f14, %lo(D_80051B40)($at) +/* 04EFF0 7F01A4C0 0C00114D */ jal set_video2_settings_offset_24 +/* 04EFF4 7F01A4C4 00002025 */ move $a0, $zero +/* 04EFF8 7F01A4C8 0FC34CDD */ jal run_spectrum_game +/* 04EFFC 7F01A4CC 00000000 */ nop +/* 04F000 7F01A4D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 04F004 7F01A4D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04F008 7F01A4D8 03E00008 */ jr $ra +/* 04F00C 7F01A4DC 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void constructor_menu19_spectrum(void) { + s32 temp_ret; + + // Node 0 + temp_ret = insert_imageDL(); + *temp_ret = 0xba001402; + temp_ret->unk14 = 0x204; + temp_ret->unk10 = 0xb6000000; + temp_ret->unk1C = 0xfffcf87c; + temp_ret->unk8 = 0xb900031d; + temp_ret->unkC = 0x552048; + temp_ret->unk18 = 0xfcffffff; + temp_ret->unk20 = 0xba000c02; + temp_ret->unk4 = 0; + temp_ret->unk24 = 0; + temp_ret->unk28 = 0xfd500000; + temp_ret->unk2C = &color_palette_entries_50_percent; + temp_ret->unk34 = 0x7000000; + temp_ret->unk30 = 0xf5000300; + temp_ret->unk38 = 0xe6000000; + temp_ret->unk3C = 0; + temp_ret->unk40 = 0xf0000ff0; + temp_ret->unk44 = 0x701cff0; + temp_ret->unk48 = 0xe7000000; + temp_ret->unk4C = 0; + temp_ret->unk54 = 0x8000; + temp_ret->unk50 = 0xba000e02; + spectrum_draw_screen((temp_ret + 0x58)); + return; + // (possible return value: spectrum_draw_screen((temp_ret + 0x58))) +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu19_spectrum +/* 04F010 7F01A4E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04F014 7F01A4E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 04F018 7F01A4E8 0FC07034 */ jal insert_imageDL +/* 04F01C 7F01A4EC 00000000 */ nop +/* 04F020 7F01A4F0 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 04F024 7F01A4F4 3C0AFFFC */ lui $t2, (0xFFFCF87C >> 16) # lui $t2, 0xfffc +/* 04F028 7F01A4F8 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 04F02C 7F01A4FC 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 04F030 7F01A500 3C180055 */ lui $t8, (0x00552048 >> 16) # lui $t8, 0x55 +/* 04F034 7F01A504 3C19B600 */ lui $t9, 0xb600 +/* 04F038 7F01A508 24080204 */ li $t0, 516 +/* 04F03C 7F01A50C 354AF87C */ ori $t2, (0xFFFCF87C & 0xFFFF) # ori $t2, $t2, 0xf87c +/* 04F040 7F01A510 3C09FCFF */ lui $t1, (0xFCFFFFFF >> 16) # lui $t1, 0xfcff +/* 04F044 7F01A514 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 04F048 7F01A518 AC4E0000 */ sw $t6, ($v0) +/* 04F04C 7F01A51C 37182048 */ ori $t8, (0x00552048 & 0xFFFF) # ori $t8, $t8, 0x2048 +/* 04F050 7F01A520 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 04F054 7F01A524 AC480014 */ sw $t0, 0x14($v0) +/* 04F058 7F01A528 AC590010 */ sw $t9, 0x10($v0) +/* 04F05C 7F01A52C 3529FFFF */ ori $t1, (0xFCFFFFFF & 0xFFFF) # ori $t1, $t1, 0xffff +/* 04F060 7F01A530 AC4A001C */ sw $t2, 0x1c($v0) +/* 04F064 7F01A534 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 04F068 7F01A538 AC4F0008 */ sw $t7, 8($v0) +/* 04F06C 7F01A53C AC58000C */ sw $t8, 0xc($v0) +/* 04F070 7F01A540 AC490018 */ sw $t1, 0x18($v0) +/* 04F074 7F01A544 AC4B0020 */ sw $t3, 0x20($v0) +/* 04F078 7F01A548 3C0D8003 */ lui $t5, %hi(color_palette_entries_50_percent) +/* 04F07C 7F01A54C 3C0EF500 */ lui $t6, (0xF5000300 >> 16) # lui $t6, 0xf500 +/* 04F080 7F01A550 3C19F000 */ lui $t9, (0xF0000FF0 >> 16) # lui $t9, 0xf000 +/* 04F084 7F01A554 3C080701 */ lui $t0, (0x0701CFF0 >> 16) # lui $t0, 0x701 +/* 04F088 7F01A558 3C0ABA00 */ lui $t2, (0xBA000E02 >> 16) # lui $t2, 0xba00 +/* 04F08C 7F01A55C 25ADBAF0 */ addiu $t5, %lo(color_palette_entries_50_percent) # addiu $t5, $t5, -0x4510 +/* 04F090 7F01A560 3C0CFD50 */ lui $t4, 0xfd50 +/* 04F094 7F01A564 35CE0300 */ ori $t6, (0xF5000300 & 0xFFFF) # ori $t6, $t6, 0x300 +/* 04F098 7F01A568 3C0F0700 */ lui $t7, 0x700 +/* 04F09C 7F01A56C 3C18E600 */ lui $t8, 0xe600 +/* 04F0A0 7F01A570 3508CFF0 */ ori $t0, (0x0701CFF0 & 0xFFFF) # ori $t0, $t0, 0xcff0 +/* 04F0A4 7F01A574 37390FF0 */ ori $t9, (0xF0000FF0 & 0xFFFF) # ori $t9, $t9, 0xff0 +/* 04F0A8 7F01A578 3C09E700 */ lui $t1, 0xe700 +/* 04F0AC 7F01A57C 354A0E02 */ ori $t2, (0xBA000E02 & 0xFFFF) # ori $t2, $t2, 0xe02 +/* 04F0B0 7F01A580 340B8000 */ li $t3, 32768 +/* 04F0B4 7F01A584 AC400004 */ sw $zero, 4($v0) +/* 04F0B8 7F01A588 AC400024 */ sw $zero, 0x24($v0) +/* 04F0BC 7F01A58C AC4C0028 */ sw $t4, 0x28($v0) +/* 04F0C0 7F01A590 AC4D002C */ sw $t5, 0x2c($v0) +/* 04F0C4 7F01A594 AC4F0034 */ sw $t7, 0x34($v0) +/* 04F0C8 7F01A598 AC4E0030 */ sw $t6, 0x30($v0) +/* 04F0CC 7F01A59C AC580038 */ sw $t8, 0x38($v0) +/* 04F0D0 7F01A5A0 AC40003C */ sw $zero, 0x3c($v0) +/* 04F0D4 7F01A5A4 AC590040 */ sw $t9, 0x40($v0) +/* 04F0D8 7F01A5A8 AC480044 */ sw $t0, 0x44($v0) +/* 04F0DC 7F01A5AC AC490048 */ sw $t1, 0x48($v0) +/* 04F0E0 7F01A5B0 AC40004C */ sw $zero, 0x4c($v0) +/* 04F0E4 7F01A5B4 AC4B0054 */ sw $t3, 0x54($v0) +/* 04F0E8 7F01A5B8 AC4A0050 */ sw $t2, 0x50($v0) +/* 04F0EC 7F01A5BC 0FC34CED */ jal spectrum_draw_screen +/* 04F0F0 7F01A5C0 24440058 */ addiu $a0, $v0, 0x58 +/* 04F0F4 7F01A5C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 04F0F8 7F01A5C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04F0FC 7F01A5CC 03E00008 */ jr $ra +/* 04F100 7F01A5D0 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void set_menu_to_mode(MENU menu, u32 mode) +{ + if ((menu == MENU_RUN_STAGE) || (menu == MENU_SPECTRUM_EMU)) { + is_emulating_spectrum = TRUE; + } + if (mode == 0) { + maybe_prev_menu = menu; + return; + } + menu_update = menu; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_menu_to_mode +/* 04F104 7F01A5D4 2401000B */ li $at, 11 +/* 04F108 7F01A5D8 10810003 */ beq $a0, $at, .L7F01A5E8 +/* 04F10C 7F01A5DC 240E0001 */ li $t6, 1 +/* 04F110 7F01A5E0 24010019 */ li $at, 25 +/* 04F114 7F01A5E4 14810002 */ bne $a0, $at, .L7F01A5F0 +.L7F01A5E8: +/* 04F118 7F01A5E8 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 04F11C 7F01A5EC AC2EA948 */ sw $t6, %lo(is_emulating_spectrum)($at) +.L7F01A5F0: +/* 04F120 7F01A5F0 10A00004 */ beqz $a1, .L7F01A604 +/* 04F124 7F01A5F4 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 04F128 7F01A5F8 3C018003 */ lui $at, %hi(menu_update) +/* 04F12C 7F01A5FC 03E00008 */ jr $ra +/* 04F130 7F01A600 AC24A8C4 */ sw $a0, %lo(menu_update)($at) +.L7F01A604: +/* 04F134 7F01A604 AC24A8C8 */ sw $a0, %lo(maybe_prev_menu)($at) +/* 04F138 7F01A608 03E00008 */ jr $ra +/* 04F13C 7F01A60C 00000000 */ nop +) +#endif + + + +MENU get_currentmenu(void) +{ + return current_menu; +} + + + + + +#ifdef NONMATCHING +void menu_init(u32 param_1,u32 param_2) +{ + MENU MVar1; + + if (current_menu == MENU_SWITCH_SCREENS) { + if (spectrum_related_flag == FALSE) { + if ((is_emulating_spectrum != FALSE) && + (get_video_settings2_frameb() == cfb_16_a)) { + screen_size = SCREEN_SIZE_320x240; + is_emulating_spectrum = FALSE; + } + } + else { + if (get_video_settings2_frameb() == cfb_16_b) { + screen_size = SCREEN_SIZE_440x330; + spectrum_related_flag = FALSE; + } + } + } + + if (screen_size == SCREEN_SIZE_320x240) { + video_related_21((f32)flt_80051B48); + set_video2_text_clip_size(320,240); + set_video2_settings_offset_18_1A(320,240); + set_cur_player_screen_size(320,240); + set_video2_width_height(320,240); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + } + else { + if (get_video_settings2_frameb() == cfb_16_b) { + set_video_settings2_frameb(ptr_menu_videobuffer); + } + video_related_21((f32)flt_80051B44); + set_video2_text_clip_size(440,330); + set_video2_settings_offset_18_1A(440,330); + set_cur_player_screen_size(440,330); + set_video2_width_height(440,330); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + } + if (((-1 < menu_update) || (-1 < maybe_prev_menu)) && + (current_menu != MENU_SWITCH_SCREENS)) { + if (true) { + switch(current_menu) { + case MENU_LEGAL_SCREEN: + update_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + update_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + update_menu02_rareware(); + break; + case MENU_EYE_INTRO: + update_menu_03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + update_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + update_menu05_filesel(); + break; + case MENU_MODE_SELECT: + update_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + update_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + update_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + update_menu09_007options(); + break; + case MENU_BRIEFING: + update_menu0A_briefing(); + break; + case MENU_MISSION_FAILED: + update_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + update_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + update_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + update_menu0F_mpcharsel(); + break; + case MENU_MP_HANDICAP: + update_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + update_menu11_mpcontrols(); + break; + case MENU_MP_STAGE_SELECT: + update_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + update_menu13_mpscenario(); + break; + case MENU_MP_TEAMS: + update_menu14_mpteams(); + break; + case MENU_CHEAT: + update_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + update_menu16_nocontrollers(); + break; + case MENU_DISPLAY_CAST: + update_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + update_menu19_spectrum(); + } + } + if (-1 < menu_update) { + current_menu = MENU_SWITCH_SCREENS; + reset_menutimer(); + } + } + MVar1 = maybe_prev_menu; + if (true) { + current_menu = maybe_prev_menu; + maybe_prev_menu = ~MENU_LEGAL_SCREEN; + if (true) { + switch(MVar1) { + case MENU_LEGAL_SCREEN: + init_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + init_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + init_menu02_rareware(); + break; + case MENU_EYE_INTRO: + init_menu03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + init_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + init_menu05_filesel(); + break; + case MENU_MODE_SELECT: + init_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + init_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + init_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + init_menu09_007options(); + break; + case MENU_BRIEFING: + init_menu0A_briefing(); + break; + case MENU_RUN_STAGE: + init_menu0B_runstage(); + break; + case MENU_MISSION_FAILED: + init_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + init_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + init_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + init_menu0f_mpcharsel(); + break; + case MENU_MP_HANDICAP: + init_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + init_menu11_mpcontrol(); + break; + case MENU_MP_STAGE_SELECT: + init_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + init_menu13_mpscenariosel(); + break; + case MENU_MP_TEAMS: + init_menu14_mpteamsel(); + break; + case MENU_CHEAT: + init_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + init_menu16_nocontroller(); + break; + case MENU_DISPLAY_CAST: + init_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + init_menu19_spectrum(); + } + } + } + switch(current_menu) { + case MENU_LEGAL_SCREEN: + interface_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + interface_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + interface_menu02_rareware(); + break; + case MENU_EYE_INTRO: + interface_menu03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + interface_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + interface_menu05_filesel(); + break; + case MENU_MODE_SELECT: + interface_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + interface_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + interface_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + interface_menu09_007options(); + break; + case MENU_BRIEFING: + interface_menu0A_briefing(); + break; + case MENU_RUN_STAGE: + if (interface_menu0B_runstage() == 0) { + if (gamemode == GAMEMODE_MULTI) { + set_menu_to_mode(MENU_MP_OPTIONS,1); + } + else { + if (selected_stage == LEVELID_CUBA) { + do_extended_cast_display(1); + set_menu_to_mode(MENU_DISPLAY_CAST,1); + } + else { + set_menu_to_mode(MENU_MISSION_FAILED,1); + } + } + } + else { + set_menu_to_mode(MENU_LEGAL_SCREEN,1); + } + break; + case MENU_MISSION_FAILED: + interface_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + interface_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + interface_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + interface_menu0F_mpcharsel(); + break; + case MENU_MP_HANDICAP: + interface_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + interface_menu11_mpcontrols(); + break; + case MENU_MP_STAGE_SELECT: + interface_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + interface_menu13_mpscenario(); + break; + case MENU_MP_TEAMS: + interface_menu14_mpteams(); + break; + case MENU_CHEAT: + interface_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + interface_menu16_nocontrollers(); + break; + case MENU_SWITCH_SCREENS: + interface_menu17_switchscreens(); + break; + case MENU_DISPLAY_CAST: + interface_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + interface_menu19_spectrum(); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_menu_update + .word menu_legal_screen_update + .word menu_nintendo_logo_update + .word menu_rareware_logo_update + .word menu_eye_intro_update + .word menu_goldeneye_logo_update + .word menu_file_select_update + .word menu_mode_select_update + .word menu_mission_select_update + .word menu_difficulty_update + .word menu_007_options_update + .word menu_briefing_update + .word menu_switch_screen_update + .word menu_mission_failed_update + .word menu_mission_complete_update + .word menu_mp_options_update + .word menu_mp_char_select_update + .word menu_mp_handicap_update + .word menu_mp_control_style_update + .word menu_mp_stage_select_update + .word menu_mp_scenario_select_update + .word menu_mp_teams_update + .word menu_cheat_update + .word menu_no_controllers_update + .word menu_switch_screen_update + .word menu_display_cast_update + .word menu_spectrum_emu_update + + glabel jpt_menu_init + .word menu_legal_screen_init + .word menu_nintendo_logo_init + .word menu_rareware_logo_init + .word menu_eye_intro_init + .word menu_goldeneye_logo_init + .word menu_file_select_init + .word menu_mode_select_init + .word menu_mission_select_init + .word menu_difficulty_init + .word menu_007_options_init + .word menu_briefing_init + .word menu_runstage_init + .word menu_mission_failed_init + .word menu_mission_complete_init + .word menu_mp_options_init + .word menu_mp_char_select_init + .word menu_mp_handicap_init + .word menu_mp_control_style_init + .word menu_mp_stage_select_init + .word menu_mp_scenario_select_init + .word menu_mp_teams_init + .word menu_cheat_init + .word menu_no_controllers_init + .word menu_switch_screens_init + .word menu_display_cast_init + .word menu_spectrum_emu_init + +glabel jpt_menu_interface + .word menu00_legal_interface + .word menu01_nintendo_interface + .word menu02_rareware_interface + .word menu03_eye_interface + .word menu04_goldeneye_interface + .word menu05_filesel_interface + .word menu06_modesel_interface + .word menu07_missionsel_interface + .word menu08_difficulty_interface + .word menu09_007options_interface + .word menu0A_briefing_interface + .word menu0B_runstage_interface + .word menu0C_missionfailed_interface + .word menu0D_missioncomplete_interface + .word menu0E_mpoptions_interface + .word menu0F_mpcharsel_interface + .word menu10_mphandicap_interface + .word menu11_mpcontrol_interface + .word menu12_mpstage_interface + .word menu13_mpscenario_interface + .word menu14_mpteams_interface + .word menu15_cheat_interface + .word menu16_nocontrollers_interface + .word menu17_switchscreen_interface + .word menu18_displaycast_interface + .word menu19_spectrum_interface +.text +glabel menu_init +/* 04F14C 7F01A61C 3C0E8003 */ lui $t6, %hi(current_menu) +/* 04F150 7F01A620 8DCEA8C0 */ lw $t6, %lo(current_menu)($t6) +/* 04F154 7F01A624 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04F158 7F01A628 24010017 */ li $at, 23 +/* 04F15C 7F01A62C 15C1001D */ bne $t6, $at, .L7F01A6A4 +/* 04F160 7F01A630 AFBF0014 */ sw $ra, 0x14($sp) +/* 04F164 7F01A634 3C0F8003 */ lui $t7, %hi(spectrum_related_flag) +/* 04F168 7F01A638 8DEFA944 */ lw $t7, %lo(spectrum_related_flag)($t7) +/* 04F16C 7F01A63C 3C088003 */ lui $t0, %hi(is_emulating_spectrum) +/* 04F170 7F01A640 11E0000C */ beqz $t7, .L7F01A674 +/* 04F174 7F01A644 00000000 */ nop +/* 04F178 7F01A648 0C000F07 */ jal get_video_settings2_frameb +/* 04F17C 7F01A64C 00000000 */ nop +/* 04F180 7F01A650 3C18803E */ lui $t8, %hi(cfb_16_b) # $t8, 0x803e +/* 04F184 7F01A654 2718A800 */ addiu $t8, %lo(cfb_16_b) # addiu $t8, $t8, -0x5800 +/* 04F188 7F01A658 14580012 */ bne $v0, $t8, .L7F01A6A4 +/* 04F18C 7F01A65C 24190001 */ li $t9, 1 +/* 04F190 7F01A660 3C018003 */ lui $at, %hi(screen_size) +/* 04F194 7F01A664 AC39A940 */ sw $t9, %lo(screen_size)($at) +/* 04F198 7F01A668 3C018003 */ lui $at, %hi(spectrum_related_flag) +/* 04F19C 7F01A66C 1000000D */ b .L7F01A6A4 +/* 04F1A0 7F01A670 AC20A944 */ sw $zero, %lo(spectrum_related_flag)($at) +.L7F01A674: +/* 04F1A4 7F01A674 8D08A948 */ lw $t0, %lo(is_emulating_spectrum)($t0) +/* 04F1A8 7F01A678 1100000A */ beqz $t0, .L7F01A6A4 +/* 04F1AC 7F01A67C 00000000 */ nop +/* 04F1B0 7F01A680 0C000F07 */ jal get_video_settings2_frameb +/* 04F1B4 7F01A684 00000000 */ nop +/* 04F1B8 7F01A688 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 04F1BC 7F01A68C 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 04F1C0 7F01A690 14490004 */ bne $v0, $t1, .L7F01A6A4 +/* 04F1C4 7F01A694 3C018003 */ lui $at, %hi(screen_size) +/* 04F1C8 7F01A698 AC20A940 */ sw $zero, %lo(screen_size)($at) +/* 04F1CC 7F01A69C 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 04F1D0 7F01A6A0 AC20A948 */ sw $zero, %lo(is_emulating_spectrum)($at) +.L7F01A6A4: +/* 04F1D4 7F01A6A4 3C0A8003 */ lui $t2, %hi(screen_size) +/* 04F1D8 7F01A6A8 8D4AA940 */ lw $t2, %lo(screen_size)($t2) +/* 04F1DC 7F01A6AC 3C018005 */ lui $at, %hi(D_80051B48) +/* 04F1E0 7F01A6B0 11400020 */ beqz $t2, .L7F01A734 +/* 04F1E4 7F01A6B4 00000000 */ nop +/* 04F1E8 7F01A6B8 0C000F07 */ jal get_video_settings2_frameb +/* 04F1EC 7F01A6BC 00000000 */ nop +/* 04F1F0 7F01A6C0 3C0B803E */ lui $t3, %hi(cfb_16_b) # $t3, 0x803e +/* 04F1F4 7F01A6C4 256BA800 */ addiu $t3, %lo(cfb_16_b) # addiu $t3, $t3, -0x5800 +/* 04F1F8 7F01A6C8 144B0003 */ bne $v0, $t3, .L7F01A6D8 +/* 04F1FC 7F01A6CC 3C048003 */ lui $a0, %hi(ptr_menu_videobuffer) +/* 04F200 7F01A6D0 0C000F0F */ jal set_video2buf_frameb +/* 04F204 7F01A6D4 8C84A954 */ lw $a0, %lo(ptr_menu_videobuffer)($a0) +.L7F01A6D8: +/* 04F208 7F01A6D8 3C018005 */ lui $at, %hi(D_80051B48) +/* 04F20C 7F01A6DC 0C001164 */ jal video_related_21 +/* 04F210 7F01A6E0 C42C1B44 */ lwc1 $f12, %lo(D_80051B44)($at) +/* 04F214 7F01A6E4 240401B8 */ li $a0, 440 +/* 04F218 7F01A6E8 0C0010FE */ jal set_video2_text_clip_size +/* 04F21C 7F01A6EC 2405014A */ li $a1, 330 +/* 04F220 7F01A6F0 240401B8 */ li $a0, 440 +/* 04F224 7F01A6F4 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F228 7F01A6F8 2405014A */ li $a1, 330 +/* 04F22C 7F01A6FC 240401B8 */ li $a0, 440 +/* 04F230 7F01A700 0FC26C77 */ jal set_cur_player_screen_size +/* 04F234 7F01A704 2405014A */ li $a1, 330 +/* 04F238 7F01A708 240401B8 */ li $a0, 440 +/* 04F23C 7F01A70C 0C00110F */ jal set_video2_width_height +/* 04F240 7F01A710 2405014A */ li $a1, 330 +/* 04F244 7F01A714 00002025 */ move $a0, $zero +/* 04F248 7F01A718 0FC26C7E */ jal set_cur_player_viewport_size +/* 04F24C 7F01A71C 00002825 */ move $a1, $zero +/* 04F250 7F01A720 00002025 */ move $a0, $zero +/* 04F254 7F01A724 0C00112F */ jal set_video2_ulx_uly +/* 04F258 7F01A728 00002825 */ move $a1, $zero +/* 04F25C 7F01A72C 10000015 */ b .L7F01A784 +/* 04F260 7F01A730 00000000 */ nop +.L7F01A734: +/* 04F264 7F01A734 0C001164 */ jal video_related_21 +/* 04F268 7F01A738 C42C1B48 */ lwc1 $f12, %lo(D_80051B48)($at) +/* 04F26C 7F01A73C 24040140 */ li $a0, 320 +/* 04F270 7F01A740 0C0010FE */ jal set_video2_text_clip_size +/* 04F274 7F01A744 240500F0 */ li $a1, 240 +/* 04F278 7F01A748 24040140 */ li $a0, 320 +/* 04F27C 7F01A74C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F280 7F01A750 240500F0 */ li $a1, 240 +/* 04F284 7F01A754 24040140 */ li $a0, 320 +/* 04F288 7F01A758 0FC26C77 */ jal set_cur_player_screen_size +/* 04F28C 7F01A75C 240500F0 */ li $a1, 240 +/* 04F290 7F01A760 24040140 */ li $a0, 320 +/* 04F294 7F01A764 0C00110F */ jal set_video2_width_height +/* 04F298 7F01A768 240500F0 */ li $a1, 240 +/* 04F29C 7F01A76C 00002025 */ move $a0, $zero +/* 04F2A0 7F01A770 0FC26C7E */ jal set_cur_player_viewport_size +/* 04F2A4 7F01A774 00002825 */ move $a1, $zero +/* 04F2A8 7F01A778 00002025 */ move $a0, $zero +/* 04F2AC 7F01A77C 0C00112F */ jal set_video2_ulx_uly +/* 04F2B0 7F01A780 00002825 */ move $a1, $zero +.L7F01A784: +/* 04F2B4 7F01A784 3C028003 */ lui $v0, %hi(menu_update) +/* 04F2B8 7F01A788 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +/* 04F2BC 7F01A78C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F2C0 7F01A790 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F2C4 7F01A794 04410004 */ bgez $v0, .L7F01A7A8 +/* 04F2C8 7F01A798 3C0C8003 */ lui $t4, %hi(maybe_prev_menu) +/* 04F2CC 7F01A79C 8D8CA8C8 */ lw $t4, %lo(maybe_prev_menu)($t4) +/* 04F2D0 7F01A7A0 058000B7 */ bltz $t4, .L7F01AA80 +/* 04F2D4 7F01A7A4 00000000 */ nop +.L7F01A7A8: +/* 04F2D8 7F01A7A8 8C830000 */ lw $v1, ($a0) +/* 04F2DC 7F01A7AC 24010017 */ li $at, 23 +/* 04F2E0 7F01A7B0 106100B3 */ beq $v1, $at, .L7F01AA80 +/* 04F2E4 7F01A7B4 2C61001A */ sltiu $at, $v1, 0x1a +/* 04F2E8 7F01A7B8 102000AD */ beqz $at, .L7F01AA70 +/* 04F2EC 7F01A7BC 00036880 */ sll $t5, $v1, 2 +/* 04F2F0 7F01A7C0 3C018005 */ lui $at, %hi(jpt_menu_update) +/* 04F2F4 7F01A7C4 002D0821 */ addu $at, $at, $t5 +/* 04F2F8 7F01A7C8 8C2D1B4C */ lw $t5, %lo(jpt_menu_update)($at) +/* 04F2FC 7F01A7CC 01A00008 */ jr $t5 +/* 04F300 7F01A7D0 00000000 */ nop +menu_legal_screen_update: +/* 04F304 7F01A7D4 0FC029AC */ jal update_menu00_legalscreen +/* 04F308 7F01A7D8 00000000 */ nop +/* 04F30C 7F01A7DC 3C028003 */ lui $v0, %hi(menu_update) +/* 04F310 7F01A7E0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F314 7F01A7E4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F318 7F01A7E8 100000A1 */ b .L7F01AA70 +/* 04F31C 7F01A7EC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_nintendo_logo_update: +/* 04F320 7F01A7F0 0FC02B29 */ jal update_menu01_nintendo +/* 04F324 7F01A7F4 00000000 */ nop +/* 04F328 7F01A7F8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F32C 7F01A7FC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F330 7F01A800 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F334 7F01A804 1000009A */ b .L7F01AA70 +/* 04F338 7F01A808 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_rareware_logo_update: +/* 04F33C 7F01A80C 0FC02C29 */ jal update_menu02_rareware +/* 04F340 7F01A810 00000000 */ nop +/* 04F344 7F01A814 3C028003 */ lui $v0, %hi(menu_update) +/* 04F348 7F01A818 3C048003 */ lui $a0, %hi(current_menu) +/* 04F34C 7F01A81C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F350 7F01A820 10000093 */ b .L7F01AA70 +/* 04F354 7F01A824 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_eye_intro_update: +/* 04F358 7F01A828 0FC02C64 */ jal update_menu_03_eye +/* 04F35C 7F01A82C 00000000 */ nop +/* 04F360 7F01A830 3C028003 */ lui $v0, %hi(menu_update) +/* 04F364 7F01A834 3C048003 */ lui $a0, %hi(current_menu) +/* 04F368 7F01A838 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F36C 7F01A83C 1000008C */ b .L7F01AA70 +/* 04F370 7F01A840 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_goldeneye_logo_update: +/* 04F374 7F01A844 0FC02CC1 */ jal update_menu04_goldeneye +/* 04F378 7F01A848 00000000 */ nop +/* 04F37C 7F01A84C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F380 7F01A850 3C048003 */ lui $a0, %hi(current_menu) +/* 04F384 7F01A854 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F388 7F01A858 10000085 */ b .L7F01AA70 +/* 04F38C 7F01A85C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_file_select_update: +/* 04F390 7F01A860 0FC02EB8 */ jal update_menu05_filesel +/* 04F394 7F01A864 00000000 */ nop +/* 04F398 7F01A868 3C028003 */ lui $v0, %hi(menu_update) +/* 04F39C 7F01A86C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3A0 7F01A870 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3A4 7F01A874 1000007E */ b .L7F01AA70 +/* 04F3A8 7F01A878 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mode_select_update: +/* 04F3AC 7F01A87C 0FC034A4 */ jal update_menu06_modesel +/* 04F3B0 7F01A880 00000000 */ nop +/* 04F3B4 7F01A884 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3B8 7F01A888 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3BC 7F01A88C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3C0 7F01A890 10000077 */ b .L7F01AA70 +/* 04F3C4 7F01A894 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_select_update: +/* 04F3C8 7F01A898 0FC037AC */ jal update_menu07_missionsel +/* 04F3CC 7F01A89C 00000000 */ nop +/* 04F3D0 7F01A8A0 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3D4 7F01A8A4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3D8 7F01A8A8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3DC 7F01A8AC 10000070 */ b .L7F01AA70 +/* 04F3E0 7F01A8B0 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_difficulty_update: +/* 04F3E4 7F01A8B4 0FC039EE */ jal update_menu08_difficulty +/* 04F3E8 7F01A8B8 00000000 */ nop +/* 04F3EC 7F01A8BC 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3F0 7F01A8C0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3F4 7F01A8C4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3F8 7F01A8C8 10000069 */ b .L7F01AA70 +/* 04F3FC 7F01A8CC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_007_options_update: +/* 04F400 7F01A8D0 0FC03CDB */ jal update_menu09_007options +/* 04F404 7F01A8D4 00000000 */ nop +/* 04F408 7F01A8D8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F40C 7F01A8DC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F410 7F01A8E0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F414 7F01A8E4 10000062 */ b .L7F01AA70 +/* 04F418 7F01A8E8 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_briefing_update: +/* 04F41C 7F01A8EC 0FC05590 */ jal update_menu0A_briefing +/* 04F420 7F01A8F0 00000000 */ nop +/* 04F424 7F01A8F4 3C028003 */ lui $v0, %hi(menu_update) +/* 04F428 7F01A8F8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F42C 7F01A8FC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F430 7F01A900 1000005B */ b .L7F01AA70 +/* 04F434 7F01A904 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_failed_update: +/* 04F438 7F01A908 0FC05842 */ jal update_menu0C_missionfailed +/* 04F43C 7F01A90C 00000000 */ nop +/* 04F440 7F01A910 3C028003 */ lui $v0, %hi(menu_update) +/* 04F444 7F01A914 3C048003 */ lui $a0, %hi(current_menu) +/* 04F448 7F01A918 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F44C 7F01A91C 10000054 */ b .L7F01AA70 +/* 04F450 7F01A920 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_complete_update: +/* 04F454 7F01A924 0FC059B4 */ jal update_menu0D_missioncomplete +/* 04F458 7F01A928 00000000 */ nop +/* 04F45C 7F01A92C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F460 7F01A930 3C048003 */ lui $a0, %hi(current_menu) +/* 04F464 7F01A934 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F468 7F01A938 1000004D */ b .L7F01AA70 +/* 04F46C 7F01A93C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_options_update: +/* 04F470 7F01A940 0FC04210 */ jal update_menu0E_mpoptions +/* 04F474 7F01A944 00000000 */ nop +/* 04F478 7F01A948 3C028003 */ lui $v0, %hi(menu_update) +/* 04F47C 7F01A94C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F480 7F01A950 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F484 7F01A954 10000046 */ b .L7F01AA70 +/* 04F488 7F01A958 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_scenario_select_update: +/* 04F48C 7F01A95C 0FC051EC */ jal update_menu13_mpscenario +/* 04F490 7F01A960 00000000 */ nop +/* 04F494 7F01A964 3C028003 */ lui $v0, %hi(menu_update) +/* 04F498 7F01A968 3C048003 */ lui $a0, %hi(current_menu) +/* 04F49C 7F01A96C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4A0 7F01A970 1000003F */ b .L7F01AA70 +/* 04F4A4 7F01A974 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_char_select_update: +/* 04F4A8 7F01A978 0FC047B3 */ jal update_menu0F_mpcharsel +/* 04F4AC 7F01A97C 00000000 */ nop +/* 04F4B0 7F01A980 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4B4 7F01A984 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4B8 7F01A988 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4BC 7F01A98C 10000038 */ b .L7F01AA70 +/* 04F4C0 7F01A990 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_teams_update: +/* 04F4C4 7F01A994 0FC05350 */ jal update_menu14_mpteams +/* 04F4C8 7F01A998 00000000 */ nop +/* 04F4CC 7F01A99C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4D0 7F01A9A0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4D4 7F01A9A4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4D8 7F01A9A8 10000031 */ b .L7F01AA70 +/* 04F4DC 7F01A9AC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_handicap_update: +/* 04F4E0 7F01A9B0 0FC04BAF */ jal update_menu10_mphandicap +/* 04F4E4 7F01A9B4 00000000 */ nop +/* 04F4E8 7F01A9B8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4EC 7F01A9BC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4F0 7F01A9C0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4F4 7F01A9C4 1000002A */ b .L7F01AA70 +/* 04F4F8 7F01A9C8 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_control_style_update: +/* 04F4FC 7F01A9CC 0FC04D80 */ jal update_menu11_mpcontrols +/* 04F500 7F01A9D0 00000000 */ nop +/* 04F504 7F01A9D4 3C028003 */ lui $v0, %hi(menu_update) +/* 04F508 7F01A9D8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F50C 7F01A9DC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F510 7F01A9E0 10000023 */ b .L7F01AA70 +/* 04F514 7F01A9E4 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_stage_select_update: +/* 04F518 7F01A9E8 0FC04F73 */ jal update_menu12_mpstage +/* 04F51C 7F01A9EC 00000000 */ nop +/* 04F520 7F01A9F0 3C028003 */ lui $v0, %hi(menu_update) +/* 04F524 7F01A9F4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F528 7F01A9F8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F52C 7F01A9FC 1000001C */ b .L7F01AA70 +/* 04F530 7F01AA00 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_cheat_update: +/* 04F534 7F01AA04 0FC05EFD */ jal update_menu15_cheat +/* 04F538 7F01AA08 00000000 */ nop +/* 04F53C 7F01AA0C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F540 7F01AA10 3C048003 */ lui $a0, %hi(current_menu) +/* 04F544 7F01AA14 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F548 7F01AA18 10000015 */ b .L7F01AA70 +/* 04F54C 7F01AA1C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_no_controllers_update: +/* 04F550 7F01AA20 0FC06110 */ jal update_menu16_nocontrollers +/* 04F554 7F01AA24 00000000 */ nop +/* 04F558 7F01AA28 3C028003 */ lui $v0, %hi(menu_update) +/* 04F55C 7F01AA2C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F560 7F01AA30 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F564 7F01AA34 1000000E */ b .L7F01AA70 +/* 04F568 7F01AA38 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_display_cast_update: +/* 04F56C 7F01AA3C 0FC063C6 */ jal update_menu18_displaycast +/* 04F570 7F01AA40 00000000 */ nop +/* 04F574 7F01AA44 3C028003 */ lui $v0, %hi(menu_update) +/* 04F578 7F01AA48 3C048003 */ lui $a0, %hi(current_menu) +/* 04F57C 7F01AA4C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F580 7F01AA50 10000007 */ b .L7F01AA70 +/* 04F584 7F01AA54 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_spectrum_emu_update: +/* 04F588 7F01AA58 0FC06920 */ jal update_menu19_spectrum +/* 04F58C 7F01AA5C 00000000 */ nop +/* 04F590 7F01AA60 3C028003 */ lui $v0, %hi(menu_update) +/* 04F594 7F01AA64 3C048003 */ lui $a0, %hi(current_menu) +/* 04F598 7F01AA68 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F59C 7F01AA6C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_switch_screen_update: +.L7F01AA70: +/* 04F5A0 7F01AA70 04400003 */ bltz $v0, .L7F01AA80 +/* 04F5A4 7F01AA74 240E0017 */ li $t6, 23 +/* 04F5A8 7F01AA78 0FC02ABB */ jal reset_menutimer +/* 04F5AC 7F01AA7C AC8E0000 */ sw $t6, ($a0) +.L7F01AA80: +/* 04F5B0 7F01AA80 3C028003 */ lui $v0, %hi(maybe_prev_menu) +/* 04F5B4 7F01AA84 8C42A8C8 */ lw $v0, %lo(maybe_prev_menu)($v0) +/* 04F5B8 7F01AA88 3C048003 */ lui $a0, %hi(current_menu) +/* 04F5BC 7F01AA8C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F5C0 7F01AA90 04400089 */ bltz $v0, .L7F01ACB8 +/* 04F5C4 7F01AA94 240FFFFF */ li $t7, -1 +/* 04F5C8 7F01AA98 AC820000 */ sw $v0, ($a0) +/* 04F5CC 7F01AA9C 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 04F5D0 7F01AAA0 AC2FA8C8 */ sw $t7, %lo(maybe_prev_menu)($at) +/* 04F5D4 7F01AAA4 8C980000 */ lw $t8, ($a0) +/* 04F5D8 7F01AAA8 2F01001A */ sltiu $at, $t8, 0x1a +/* 04F5DC 7F01AAAC 10200082 */ beqz $at, .L7F01ACB8 +/* 04F5E0 7F01AAB0 0018C080 */ sll $t8, $t8, 2 +/* 04F5E4 7F01AAB4 3C018005 */ lui $at, %hi(jpt_menu_init) +/* 04F5E8 7F01AAB8 00380821 */ addu $at, $at, $t8 +/* 04F5EC 7F01AABC 8C381BB4 */ lw $t8, %lo(jpt_menu_init)($at) +/* 04F5F0 7F01AAC0 03000008 */ jr $t8 +/* 04F5F4 7F01AAC4 00000000 */ nop +menu_legal_screen_init: +/* 04F5F8 7F01AAC8 0FC0297A */ jal init_menu00_legalscreen +/* 04F5FC 7F01AACC 00000000 */ nop +/* 04F600 7F01AAD0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F604 7F01AAD4 10000078 */ b .L7F01ACB8 +/* 04F608 7F01AAD8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_nintendo_logo_init: +/* 04F60C 7F01AADC 0FC02AF2 */ jal init_menu01_nintendo +/* 04F610 7F01AAE0 00000000 */ nop +/* 04F614 7F01AAE4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F618 7F01AAE8 10000073 */ b .L7F01ACB8 +/* 04F61C 7F01AAEC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_rareware_logo_init: +/* 04F620 7F01AAF0 0FC02C19 */ jal init_menu02_rarelogo +/* 04F624 7F01AAF4 00000000 */ nop +/* 04F628 7F01AAF8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F62C 7F01AAFC 1000006E */ b .L7F01ACB8 +/* 04F630 7F01AB00 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_eye_intro_init: +/* 04F634 7F01AB04 0FC02C55 */ jal init_menu03_eyeintro +/* 04F638 7F01AB08 00000000 */ nop +/* 04F63C 7F01AB0C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F640 7F01AB10 10000069 */ b .L7F01ACB8 +/* 04F644 7F01AB14 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_goldeneye_logo_init: +/* 04F648 7F01AB18 0FC02C96 */ jal init_menu04_goldeneyelogo +/* 04F64C 7F01AB1C 00000000 */ nop +/* 04F650 7F01AB20 3C048003 */ lui $a0, %hi(current_menu) +/* 04F654 7F01AB24 10000064 */ b .L7F01ACB8 +/* 04F658 7F01AB28 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_file_select_init: +/* 04F65C 7F01AB2C 0FC02E7A */ jal init_menu05_fileselect +/* 04F660 7F01AB30 00000000 */ nop +/* 04F664 7F01AB34 3C048003 */ lui $a0, %hi(current_menu) +/* 04F668 7F01AB38 1000005F */ b .L7F01ACB8 +/* 04F66C 7F01AB3C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mode_select_init: +/* 04F670 7F01AB40 0FC03494 */ jal init_menu06_modeselect +/* 04F674 7F01AB44 00000000 */ nop +/* 04F678 7F01AB48 3C048003 */ lui $a0, %hi(current_menu) +/* 04F67C 7F01AB4C 1000005A */ b .L7F01ACB8 +/* 04F680 7F01AB50 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_select_init: +/* 04F684 7F01AB54 0FC03794 */ jal init_menu07_missionselect +/* 04F688 7F01AB58 00000000 */ nop +/* 04F68C 7F01AB5C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F690 7F01AB60 10000055 */ b .L7F01ACB8 +/* 04F694 7F01AB64 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_difficulty_init: +/* 04F698 7F01AB68 0FC039E0 */ jal init_menu08_difficultyselect +/* 04F69C 7F01AB6C 00000000 */ nop +/* 04F6A0 7F01AB70 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6A4 7F01AB74 10000050 */ b .L7F01ACB8 +/* 04F6A8 7F01AB78 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_007_options_init: +/* 04F6AC 7F01AB7C 0FC03CC0 */ jal init_menu09_007difficultyselect +/* 04F6B0 7F01AB80 00000000 */ nop +/* 04F6B4 7F01AB84 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6B8 7F01AB88 1000004B */ b .L7F01ACB8 +/* 04F6BC 7F01AB8C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_briefing_init: +/* 04F6C0 7F01AB90 0FC0557D */ jal init_menu0A_briefing +/* 04F6C4 7F01AB94 00000000 */ nop +/* 04F6C8 7F01AB98 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6CC 7F01AB9C 10000046 */ b .L7F01ACB8 +/* 04F6D0 7F01ABA0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_runstage_init: +/* 04F6D4 7F01ABA4 0FC05819 */ jal init_menu0B_runstage +/* 04F6D8 7F01ABA8 00000000 */ nop +/* 04F6DC 7F01ABAC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6E0 7F01ABB0 10000041 */ b .L7F01ACB8 +/* 04F6E4 7F01ABB4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_failed_init: +/* 04F6E8 7F01ABB8 0FC05825 */ jal init_menu0C_missionfailed +/* 04F6EC 7F01ABBC 00000000 */ nop +/* 04F6F0 7F01ABC0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6F4 7F01ABC4 1000003C */ b .L7F01ACB8 +/* 04F6F8 7F01ABC8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_complete_init: +/* 04F6FC 7F01ABCC 0FC0599F */ jal init_menu0D_missioncomplete +/* 04F700 7F01ABD0 00000000 */ nop +/* 04F704 7F01ABD4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F708 7F01ABD8 10000037 */ b .L7F01ACB8 +/* 04F70C 7F01ABDC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_options_init: +/* 04F710 7F01ABE0 0FC041CF */ jal init_menu0E_mpoptions +/* 04F714 7F01ABE4 00000000 */ nop +/* 04F718 7F01ABE8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F71C 7F01ABEC 10000032 */ b .L7F01ACB8 +/* 04F720 7F01ABF0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_scenario_select_init: +/* 04F724 7F01ABF4 0FC051D9 */ jal init_menu13_mpscenariosel +/* 04F728 7F01ABF8 00000000 */ nop +/* 04F72C 7F01ABFC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F730 7F01AC00 1000002D */ b .L7F01ACB8 +/* 04F734 7F01AC04 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_char_select_init: +/* 04F738 7F01AC08 0FC0470F */ jal init_menu0f_mpcharsel +/* 04F73C 7F01AC0C 00000000 */ nop +/* 04F740 7F01AC10 3C048003 */ lui $a0, %hi(current_menu) +/* 04F744 7F01AC14 10000028 */ b .L7F01ACB8 +/* 04F748 7F01AC18 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_teams_init: +/* 04F74C 7F01AC1C 0FC05330 */ jal init_menu14_mpteamsel +/* 04F750 7F01AC20 00000000 */ nop +/* 04F754 7F01AC24 3C048003 */ lui $a0, %hi(current_menu) +/* 04F758 7F01AC28 10000023 */ b .L7F01ACB8 +/* 04F75C 7F01AC2C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_handicap_init: +/* 04F760 7F01AC30 0FC04B8C */ jal init_menu10_mphandicap +/* 04F764 7F01AC34 00000000 */ nop +/* 04F768 7F01AC38 3C048003 */ lui $a0, %hi(current_menu) +/* 04F76C 7F01AC3C 1000001E */ b .L7F01ACB8 +/* 04F770 7F01AC40 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_control_style_init: +/* 04F774 7F01AC44 0FC04D5D */ jal init_menu11_mpcontrol +/* 04F778 7F01AC48 00000000 */ nop +/* 04F77C 7F01AC4C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F780 7F01AC50 10000019 */ b .L7F01ACB8 +/* 04F784 7F01AC54 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_stage_select_init: +/* 04F788 7F01AC58 0FC04F5E */ jal init_menu12_mpstage +/* 04F78C 7F01AC5C 00000000 */ nop +/* 04F790 7F01AC60 3C048003 */ lui $a0, %hi(current_menu) +/* 04F794 7F01AC64 10000014 */ b .L7F01ACB8 +/* 04F798 7F01AC68 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_cheat_init: +/* 04F79C 7F01AC6C 0FC05ED4 */ jal init_menu15_cheat +/* 04F7A0 7F01AC70 00000000 */ nop +/* 04F7A4 7F01AC74 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7A8 7F01AC78 1000000F */ b .L7F01ACB8 +/* 04F7AC 7F01AC7C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_no_controllers_init: +/* 04F7B0 7F01AC80 0FC0610E */ jal init_menu16_nocontroller +/* 04F7B4 7F01AC84 00000000 */ nop +/* 04F7B8 7F01AC88 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7BC 7F01AC8C 1000000A */ b .L7F01ACB8 +/* 04F7C0 7F01AC90 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_display_cast_init: +/* 04F7C4 7F01AC94 0FC061A7 */ jal init_menu18_displaycast +/* 04F7C8 7F01AC98 00000000 */ nop +/* 04F7CC 7F01AC9C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7D0 7F01ACA0 10000005 */ b .L7F01ACB8 +/* 04F7D4 7F01ACA4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_spectrum_emu_init: +/* 04F7D8 7F01ACA8 0FC068E7 */ jal init_menu19_spectrum +/* 04F7DC 7F01ACAC 00000000 */ nop +/* 04F7E0 7F01ACB0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7E4 7F01ACB4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_switch_screens_init: +.L7F01ACB8: +/* 04F7E8 7F01ACB8 8C990000 */ lw $t9, ($a0) +/* 04F7EC 7F01ACBC 2F21001A */ sltiu $at, $t9, 0x1a +/* 04F7F0 7F01ACC0 1020008A */ beqz $at, .L7F01AEEC +/* 04F7F4 7F01ACC4 0019C880 */ sll $t9, $t9, 2 +/* 04F7F8 7F01ACC8 3C018005 */ lui $at, %hi(jpt_menu_interface) +/* 04F7FC 7F01ACCC 00390821 */ addu $at, $at, $t9 +/* 04F800 7F01ACD0 8C391C1C */ lw $t9, %lo(jpt_menu_interface)($at) +/* 04F804 7F01ACD4 03200008 */ jr $t9 +/* 04F808 7F01ACD8 00000000 */ nop +menu00_legal_interface: +/* 04F80C 7F01ACDC 0FC029B7 */ jal interface_menu00_legalscreen +/* 04F810 7F01ACE0 00000000 */ nop +/* 04F814 7F01ACE4 10000082 */ b .L7F01AEF0 +/* 04F818 7F01ACE8 8FBF0014 */ lw $ra, 0x14($sp) +menu17_switchscreen_interface: +/* 04F81C 7F01ACEC 0FC02AC0 */ jal interface_menu17_switchscreens +/* 04F820 7F01ACF0 00000000 */ nop +/* 04F824 7F01ACF4 1000007E */ b .L7F01AEF0 +/* 04F828 7F01ACF8 8FBF0014 */ lw $ra, 0x14($sp) +menu01_nintendo_interface: +/* 04F82C 7F01ACFC 0FC02B32 */ jal interface_menu01_nintendo +/* 04F830 7F01AD00 00000000 */ nop +/* 04F834 7F01AD04 1000007A */ b .L7F01AEF0 +/* 04F838 7F01AD08 8FBF0014 */ lw $ra, 0x14($sp) +menu02_rareware_interface: +/* 04F83C 7F01AD0C 0FC02C2B */ jal interface_menu02_rareware +/* 04F840 7F01AD10 00000000 */ nop +/* 04F844 7F01AD14 10000076 */ b .L7F01AEF0 +/* 04F848 7F01AD18 8FBF0014 */ lw $ra, 0x14($sp) +menu03_eye_interface: +/* 04F84C 7F01AD1C 0FC02C6C */ jal interface_menu03_eye +/* 04F850 7F01AD20 00000000 */ nop +/* 04F854 7F01AD24 10000072 */ b .L7F01AEF0 +/* 04F858 7F01AD28 8FBF0014 */ lw $ra, 0x14($sp) +menu04_goldeneye_interface: +/* 04F85C 7F01AD2C 0FC02CCC */ jal interface_menu04_goldeneyelogo +/* 04F860 7F01AD30 00000000 */ nop +/* 04F864 7F01AD34 1000006E */ b .L7F01AEF0 +/* 04F868 7F01AD38 8FBF0014 */ lw $ra, 0x14($sp) +menu05_filesel_interface: +/* 04F86C 7F01AD3C 0FC02EF3 */ jal interface_menu05_fileselect +/* 04F870 7F01AD40 00000000 */ nop +/* 04F874 7F01AD44 1000006A */ b .L7F01AEF0 +/* 04F878 7F01AD48 8FBF0014 */ lw $ra, 0x14($sp) +menu06_modesel_interface: +/* 04F87C 7F01AD4C 0FC034A6 */ jal interface_menu06_modesel +/* 04F880 7F01AD50 00000000 */ nop +/* 04F884 7F01AD54 10000066 */ b .L7F01AEF0 +/* 04F888 7F01AD58 8FBF0014 */ lw $ra, 0x14($sp) +menu07_missionsel_interface: +/* 04F88C 7F01AD5C 0FC037AE */ jal interface_menu07_missionsel +/* 04F890 7F01AD60 00000000 */ nop +/* 04F894 7F01AD64 10000062 */ b .L7F01AEF0 +/* 04F898 7F01AD68 8FBF0014 */ lw $ra, 0x14($sp) +menu08_difficulty_interface: +/* 04F89C 7F01AD6C 0FC039F0 */ jal interface_menu08_difficulty +/* 04F8A0 7F01AD70 00000000 */ nop +/* 04F8A4 7F01AD74 1000005E */ b .L7F01AEF0 +/* 04F8A8 7F01AD78 8FBF0014 */ lw $ra, 0x14($sp) +menu09_007options_interface: +/* 04F8AC 7F01AD7C 0FC03CDD */ jal interface_menu09_007options +/* 04F8B0 7F01AD80 00000000 */ nop +/* 04F8B4 7F01AD84 1000005A */ b .L7F01AEF0 +/* 04F8B8 7F01AD88 8FBF0014 */ lw $ra, 0x14($sp) +menu0A_briefing_interface: +/* 04F8BC 7F01AD8C 0FC055A7 */ jal interface_menu0A_briefing +/* 04F8C0 7F01AD90 00000000 */ nop +/* 04F8C4 7F01AD94 10000056 */ b .L7F01AEF0 +/* 04F8C8 7F01AD98 8FBF0014 */ lw $ra, 0x14($sp) +menu0C_missionfailed_interface: +/* 04F8CC 7F01AD9C 0FC05844 */ jal interface_menu0C_missionfailed +/* 04F8D0 7F01ADA0 00000000 */ nop +/* 04F8D4 7F01ADA4 10000052 */ b .L7F01AEF0 +/* 04F8D8 7F01ADA8 8FBF0014 */ lw $ra, 0x14($sp) +menu0D_missioncomplete_interface: +/* 04F8DC 7F01ADAC 0FC059B6 */ jal interface_menu0D_missioncomplete +/* 04F8E0 7F01ADB0 00000000 */ nop +/* 04F8E4 7F01ADB4 1000004E */ b .L7F01AEF0 +/* 04F8E8 7F01ADB8 8FBF0014 */ lw $ra, 0x14($sp) +menu0E_mpoptions_interface: +/* 04F8EC 7F01ADBC 0FC04212 */ jal interface_menu0E_mpoptions +/* 04F8F0 7F01ADC0 00000000 */ nop +/* 04F8F4 7F01ADC4 1000004A */ b .L7F01AEF0 +/* 04F8F8 7F01ADC8 8FBF0014 */ lw $ra, 0x14($sp) +menu13_mpscenario_interface: +/* 04F8FC 7F01ADCC 0FC051EE */ jal interface_menu13_mpscenario +/* 04F900 7F01ADD0 00000000 */ nop +/* 04F904 7F01ADD4 10000046 */ b .L7F01AEF0 +/* 04F908 7F01ADD8 8FBF0014 */ lw $ra, 0x14($sp) +menu0F_mpcharsel_interface: +/* 04F90C 7F01ADDC 0FC047B5 */ jal interface_menu0F_mpcharsel +/* 04F910 7F01ADE0 00000000 */ nop +/* 04F914 7F01ADE4 10000042 */ b .L7F01AEF0 +/* 04F918 7F01ADE8 8FBF0014 */ lw $ra, 0x14($sp) +menu14_mpteams_interface: +/* 04F91C 7F01ADEC 0FC05352 */ jal interface_menu14_mpteams +/* 04F920 7F01ADF0 00000000 */ nop +/* 04F924 7F01ADF4 1000003E */ b .L7F01AEF0 +/* 04F928 7F01ADF8 8FBF0014 */ lw $ra, 0x14($sp) +menu10_mphandicap_interface: +/* 04F92C 7F01ADFC 0FC04BB1 */ jal interface_menu10_mphandicap +/* 04F930 7F01AE00 00000000 */ nop +/* 04F934 7F01AE04 1000003A */ b .L7F01AEF0 +/* 04F938 7F01AE08 8FBF0014 */ lw $ra, 0x14($sp) +menu11_mpcontrol_interface: +/* 04F93C 7F01AE0C 0FC04D82 */ jal interface_menu11_mpcontrols +/* 04F940 7F01AE10 00000000 */ nop +/* 04F944 7F01AE14 10000036 */ b .L7F01AEF0 +/* 04F948 7F01AE18 8FBF0014 */ lw $ra, 0x14($sp) +menu12_mpstage_interface: +/* 04F94C 7F01AE1C 0FC04F75 */ jal interface_menu12_mpstage +/* 04F950 7F01AE20 00000000 */ nop +/* 04F954 7F01AE24 10000032 */ b .L7F01AEF0 +/* 04F958 7F01AE28 8FBF0014 */ lw $ra, 0x14($sp) +menu15_cheat_interface: +/* 04F95C 7F01AE2C 0FC05F22 */ jal interface_menu15_cheat +/* 04F960 7F01AE30 00000000 */ nop +/* 04F964 7F01AE34 1000002E */ b .L7F01AEF0 +/* 04F968 7F01AE38 8FBF0014 */ lw $ra, 0x14($sp) +menu16_nocontrollers_interface: +/* 04F96C 7F01AE3C 0FC06112 */ jal interface_menu16_nocontrollers +/* 04F970 7F01AE40 00000000 */ nop +/* 04F974 7F01AE44 1000002A */ b .L7F01AEF0 +/* 04F978 7F01AE48 8FBF0014 */ lw $ra, 0x14($sp) +menu18_displaycast_interface: +/* 04F97C 7F01AE4C 0FC063D8 */ jal interface_menu18_displaycast +/* 04F980 7F01AE50 00000000 */ nop +/* 04F984 7F01AE54 10000026 */ b .L7F01AEF0 +/* 04F988 7F01AE58 8FBF0014 */ lw $ra, 0x14($sp) +menu19_spectrum_interface: +/* 04F98C 7F01AE5C 0FC06922 */ jal interface_menu19_spectrum +/* 04F990 7F01AE60 00000000 */ nop +/* 04F994 7F01AE64 10000022 */ b .L7F01AEF0 +/* 04F998 7F01AE68 8FBF0014 */ lw $ra, 0x14($sp) +menu0B_runstage_interface: +/* 04F99C 7F01AE6C 0FC2FF29 */ jal interface_menu0B_runstage +/* 04F9A0 7F01AE70 00000000 */ nop +/* 04F9A4 7F01AE74 10400006 */ beqz $v0, .L7F01AE90 +/* 04F9A8 7F01AE78 3C088003 */ lui $t0, %hi(gamemode) +/* 04F9AC 7F01AE7C 00002025 */ move $a0, $zero +/* 04F9B0 7F01AE80 0FC06975 */ jal set_menu_to_mode +/* 04F9B4 7F01AE84 24050001 */ li $a1, 1 +/* 04F9B8 7F01AE88 10000019 */ b .L7F01AEF0 +/* 04F9BC 7F01AE8C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AE90: +/* 04F9C0 7F01AE90 8D08A8F0 */ lw $t0, %lo(gamemode)($t0) +/* 04F9C4 7F01AE94 24010001 */ li $at, 1 +/* 04F9C8 7F01AE98 2404000E */ li $a0, 14 +/* 04F9CC 7F01AE9C 15010005 */ bne $t0, $at, .L7F01AEB4 +/* 04F9D0 7F01AEA0 3C098003 */ lui $t1, %hi(selected_stage) +/* 04F9D4 7F01AEA4 0FC06975 */ jal set_menu_to_mode +/* 04F9D8 7F01AEA8 24050001 */ li $a1, 1 +/* 04F9DC 7F01AEAC 10000010 */ b .L7F01AEF0 +/* 04F9E0 7F01AEB0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEB4: +/* 04F9E4 7F01AEB4 8D29A8F4 */ lw $t1, %lo(selected_stage)($t1) +/* 04F9E8 7F01AEB8 24010036 */ li $at, 54 +/* 04F9EC 7F01AEBC 2404000C */ li $a0, 12 +/* 04F9F0 7F01AEC0 15210008 */ bne $t1, $at, .L7F01AEE4 +/* 04F9F4 7F01AEC4 00000000 */ nop +/* 04F9F8 7F01AEC8 0FC0619C */ jal do_extended_cast_display +/* 04F9FC 7F01AECC 24040001 */ li $a0, 1 +/* 04FA00 7F01AED0 24040018 */ li $a0, 24 +/* 04FA04 7F01AED4 0FC06975 */ jal set_menu_to_mode +/* 04FA08 7F01AED8 24050001 */ li $a1, 1 +/* 04FA0C 7F01AEDC 10000004 */ b .L7F01AEF0 +/* 04FA10 7F01AEE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEE4: +/* 04FA14 7F01AEE4 0FC06975 */ jal set_menu_to_mode +/* 04FA18 7F01AEE8 24050001 */ li $a1, 1 +.L7F01AEEC: +/* 04FA1C 7F01AEEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEF0: +/* 04FA20 7F01AEF0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04FA24 7F01AEF4 03E00008 */ jr $ra +/* 04FA28 7F01AEF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void menu_jump_constructor_handler(Gfx *DL) +{ + switch(current_menu) { + case MENU_LEGAL_SCREEN: + constructor_menu00_legalscreen(DL); + break; + case MENU_NINTENDO_LOGO: + constructor_menu01_nintendo(DL); + break; + case MENU_RAREWARE_LOGO: + constructor_menu02_rareware(DL); + break; + case MENU_EYE_INTRO: + constructor_menu03_eye(DL); + break; + case MENU_GOLDENEYE_LOGO: + constructor_menu04_goldeneyelogo(DL); + break; + case MENU_FILE_SELECT: + constructor_menu05_fileselect(DL); + break; + case MENU_MODE_SELECT: + constructor_menu06_modesel(DL); + break; + case MENU_MISSION_SELECT: + constructor_menu07_missionsel(DL); + break; + case MENU_DIFFICULTY: + constructor_menu08_difficulty(DL); + break; + case MENU_007_OPTIONS: + constructor_menu09_007options(DL); + break; + case MENU_BRIEFING: + constructor_menu0A_briefing(DL); + break; + case MENU_MISSION_FAILED: + constructor_menu0C_missionfailed(DL); + break; + case MENU_MISSION_COMPLETE: + constructor_menu0D_missioncomplete(DL); + break; + case MENU_MP_OPTIONS: + constructor_menu0E_mpoptions(DL); + break; + case MENU_MP_CHAR_SELECT: + constructor_menu0F_mpcharsel(DL); + break; + case MENU_MP_HANDICAP: + constructor_menu10_mphandicap(DL); + break; + case MENU_MP_CONTROL_STYLE: + constructor_menu11_mpcontrol(DL); + break; + case MENU_MP_STAGE_SELECT: + constructor_menu12_mpstage(DL); + break; + case MENU_MP_SCENARIO_SELECT: + constructor_menu13_mpscenario(DL); + break; + case MENU_MP_TEAMS: + constructor_menu14_mpteams(DL); + break; + case MENU_CHEAT: + constructor_menu15_cheat(DL); + break; + case MENU_NO_CONTROLLERS: + constructor_menu16_nocontrollers(DL); + break; + case MENU_SWITCH_SCREENS: + constructor_menu17_switchscreens(DL); + break; + case MENU_DISPLAY_CAST: + constructor_menu18_displaycast(DL); + break; + case MENU_SPECTRUM_EMU: + constructor_menu19_spectrum(DL); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_menu_constructor + .word menu00_legal_constructor + .word menu01_nintendo_constructor + .word menu02_rareware_constructor + .word menu03_eyeintro_constructor + .word menu04_goldeneye_constructor + .word menu05_fileselect_constructor + .word menu06_modesel_constructor + .word menu07_missionsel_constructor + .word menu08_difficulty_constructor + .word menu09_007options_constructor + .word menu0A_briefing_constructor + .word menu0B_runstage_constructor + .word menu0C_missionfailed_constructor + .word menu0D_missioncomplete_constructor + .word menu0E_mpoptions_constructor + .word menu0F_mpcharsel_constructor + .word menu10_mphandicap_constructor + .word menu11_mpcontrol_constructor + .word menu12_mpstage_constructor + .word menu13_mpscenario_constructor + .word menu14_mpteams_constructor + .word menu15_cheat_constructor + .word menu16_nocontrollers_constructor + .word menu17_switchscreens_constructor + .word menu18_displaycast_constructor + .word menu19_spectrum_constructor + +.text +glabel menu_jump_constructor_handler +/* 04FA2C 7F01AEFC 3C0E8003 */ lui $t6, %hi(current_menu) +/* 04FA30 7F01AF00 8DCEA8C0 */ lw $t6, %lo(current_menu)($t6) +/* 04FA34 7F01AF04 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04FA38 7F01AF08 AFB00018 */ sw $s0, 0x18($sp) +/* 04FA3C 7F01AF0C 2DC1001A */ sltiu $at, $t6, 0x1a +/* 04FA40 7F01AF10 00808025 */ move $s0, $a0 +/* 04FA44 7F01AF14 1020006A */ beqz $at, menu0B_runstage_constructor +/* 04FA48 7F01AF18 AFBF001C */ sw $ra, 0x1c($sp) +/* 04FA4C 7F01AF1C 000E7080 */ sll $t6, $t6, 2 +/* 04FA50 7F01AF20 3C018005 */ lui $at, %hi(jpt_menu_constructor) +/* 04FA54 7F01AF24 002E0821 */ addu $at, $at, $t6 +/* 04FA58 7F01AF28 8C2E1C84 */ lw $t6, %lo(jpt_menu_constructor)($at) +/* 04FA5C 7F01AF2C 01C00008 */ jr $t6 +/* 04FA60 7F01AF30 00000000 */ nop +glabel menu00_legal_constructor +/* 04FA64 7F01AF34 0FC02A38 */ jal constructor_menu00_legalscreen +/* 04FA68 7F01AF38 02002025 */ move $a0, $s0 +/* 04FA6C 7F01AF3C 10000060 */ b menu0B_runstage_constructor +/* 04FA70 7F01AF40 00408025 */ move $s0, $v0 +glabel menu17_switchscreens_constructor +/* 04FA74 7F01AF44 0FC02AEA */ jal constructor_menu17_switchscreens +/* 04FA78 7F01AF48 02002025 */ move $a0, $s0 +/* 04FA7C 7F01AF4C 1000005C */ b menu0B_runstage_constructor +/* 04FA80 7F01AF50 00408025 */ move $s0, $v0 +glabel menu01_nintendo_constructor +/* 04FA84 7F01AF54 0FC02B66 */ jal constructor_menu01_nintendo +/* 04FA88 7F01AF58 02002025 */ move $a0, $s0 +/* 04FA8C 7F01AF5C 10000058 */ b menu0B_runstage_constructor +/* 04FA90 7F01AF60 00408025 */ move $s0, $v0 +glabel menu02_rareware_constructor +/* 04FA94 7F01AF64 0FC02C4D */ jal constructor_menu02_rareware +/* 04FA98 7F01AF68 02002025 */ move $a0, $s0 +/* 04FA9C 7F01AF6C 10000054 */ b menu0B_runstage_constructor +/* 04FAA0 7F01AF70 00408025 */ move $s0, $v0 +glabel menu03_eyeintro_constructor +/* 04FAA4 7F01AF74 0FC02C8E */ jal constructor_menu03_eye +/* 04FAA8 7F01AF78 02002025 */ move $a0, $s0 +/* 04FAAC 7F01AF7C 10000050 */ b menu0B_runstage_constructor +/* 04FAB0 7F01AF80 00408025 */ move $s0, $v0 +glabel menu04_goldeneye_constructor +/* 04FAB4 7F01AF84 0FC02D1F */ jal constructor_menu04_goldeneyelogo +/* 04FAB8 7F01AF88 02002025 */ move $a0, $s0 +/* 04FABC 7F01AF8C 1000004C */ b menu0B_runstage_constructor +/* 04FAC0 7F01AF90 00408025 */ move $s0, $v0 +glabel menu05_fileselect_constructor +/* 04FAC4 7F01AF94 0FC03102 */ jal constructor_menu05_fileselect +/* 04FAC8 7F01AF98 02002025 */ move $a0, $s0 +/* 04FACC 7F01AF9C 10000048 */ b menu0B_runstage_constructor +/* 04FAD0 7F01AFA0 00408025 */ move $s0, $v0 +glabel menu06_modesel_constructor +/* 04FAD4 7F01AFA4 0FC0360A */ jal constructor_menu06_modesel +/* 04FAD8 7F01AFA8 02002025 */ move $a0, $s0 +/* 04FADC 7F01AFAC 10000044 */ b menu0B_runstage_constructor +/* 04FAE0 7F01AFB0 00408025 */ move $s0, $v0 +glabel menu07_missionsel_constructor +/* 04FAE4 7F01AFB4 0FC03916 */ jal constructor_menu07_missionsel +/* 04FAE8 7F01AFB8 02002025 */ move $a0, $s0 +/* 04FAEC 7F01AFBC 10000040 */ b menu0B_runstage_constructor +/* 04FAF0 7F01AFC0 00408025 */ move $s0, $v0 +glabel menu08_difficulty_constructor +/* 04FAF4 7F01AFC4 0FC03B66 */ jal constructor_menu08_difficulty +/* 04FAF8 7F01AFC8 02002025 */ move $a0, $s0 +/* 04FAFC 7F01AFCC 1000003C */ b menu0B_runstage_constructor +/* 04FB00 7F01AFD0 00408025 */ move $s0, $v0 +glabel menu09_007options_constructor +/* 04FB04 7F01AFD4 0FC03DE6 */ jal constructor_menu09_007options +/* 04FB08 7F01AFD8 02002025 */ move $a0, $s0 +/* 04FB0C 7F01AFDC 10000038 */ b menu0B_runstage_constructor +/* 04FB10 7F01AFE0 00408025 */ move $s0, $v0 +glabel menu0A_briefing_constructor +/* 04FB14 7F01AFE4 0FC0575D */ jal constructor_menu0A_briefing +/* 04FB18 7F01AFE8 02002025 */ move $a0, $s0 +/* 04FB1C 7F01AFEC 10000034 */ b menu0B_runstage_constructor +/* 04FB20 7F01AFF0 00408025 */ move $s0, $v0 +glabel menu0C_missionfailed_constructor +/* 04FB24 7F01AFF4 0FC058FB */ jal constructor_menu0C_missionfailed +/* 04FB28 7F01AFF8 02002025 */ move $a0, $s0 +/* 04FB2C 7F01AFFC 10000030 */ b menu0B_runstage_constructor +/* 04FB30 7F01B000 00408025 */ move $s0, $v0 +glabel menu0D_missioncomplete_constructor +/* 04FB34 7F01B004 0FC05A82 */ jal constructor_menu0D_missioncomplete +/* 04FB38 7F01B008 02002025 */ move $a0, $s0 +/* 04FB3C 7F01B00C 1000002C */ b menu0B_runstage_constructor +/* 04FB40 7F01B010 00408025 */ move $s0, $v0 +glabel menu0E_mpoptions_constructor +/* 04FB44 7F01B014 0FC043C4 */ jal constructor_menu0E_mpoptions +/* 04FB48 7F01B018 02002025 */ move $a0, $s0 +/* 04FB4C 7F01B01C 10000028 */ b menu0B_runstage_constructor +/* 04FB50 7F01B020 00408025 */ move $s0, $v0 +glabel menu13_mpscenario_constructor +/* 04FB54 7F01B024 0FC05292 */ jal constructor_menu13_mpscenario +/* 04FB58 7F01B028 02002025 */ move $a0, $s0 +/* 04FB5C 7F01B02C 10000024 */ b menu0B_runstage_constructor +/* 04FB60 7F01B030 00408025 */ move $s0, $v0 +glabel menu0F_mpcharsel_constructor +/* 04FB64 7F01B034 0FC049E5 */ jal constructor_menu0F_mpcharsel +/* 04FB68 7F01B038 02002025 */ move $a0, $s0 +/* 04FB6C 7F01B03C 10000020 */ b menu0B_runstage_constructor +/* 04FB70 7F01B040 00408025 */ move $s0, $v0 +glabel menu14_mpteams_constructor +/* 04FB74 7F01B044 0FC0544E */ jal constructor_menu14_mpteams +/* 04FB78 7F01B048 02002025 */ move $a0, $s0 +/* 04FB7C 7F01B04C 1000001C */ b menu0B_runstage_constructor +/* 04FB80 7F01B050 00408025 */ move $s0, $v0 +glabel menu10_mphandicap_constructor +/* 04FB84 7F01B054 0FC04C5F */ jal constructor_menu10_mphandicap +/* 04FB88 7F01B058 02002025 */ move $a0, $s0 +/* 04FB8C 7F01B05C 10000018 */ b menu0B_runstage_constructor +/* 04FB90 7F01B060 00408025 */ move $s0, $v0 +glabel menu11_mpcontrol_constructor +/* 04FB94 7F01B064 0FC04E60 */ jal constructor_menu11_mpcontrol +/* 04FB98 7F01B068 02002025 */ move $a0, $s0 +/* 04FB9C 7F01B06C 10000014 */ b menu0B_runstage_constructor +/* 04FBA0 7F01B070 00408025 */ move $s0, $v0 +glabel menu12_mpstage_constructor +/* 04FBA4 7F01B074 0FC05014 */ jal constructor_menu12_mpstage +/* 04FBA8 7F01B078 02002025 */ move $a0, $s0 +/* 04FBAC 7F01B07C 10000010 */ b menu0B_runstage_constructor +/* 04FBB0 7F01B080 00408025 */ move $s0, $v0 +glabel menu15_cheat_constructor +/* 04FBB4 7F01B084 0FC05FD7 */ jal constructor_menu15_cheat +/* 04FBB8 7F01B088 02002025 */ move $a0, $s0 +/* 04FBBC 7F01B08C 1000000C */ b menu0B_runstage_constructor +/* 04FBC0 7F01B090 00408025 */ move $s0, $v0 +glabel menu16_nocontrollers_constructor +/* 04FBC4 7F01B094 0FC06114 */ jal constructor_menu16_nocontrollers +/* 04FBC8 7F01B098 02002025 */ move $a0, $s0 +/* 04FBCC 7F01B09C 10000008 */ b menu0B_runstage_constructor +/* 04FBD0 7F01B0A0 00408025 */ move $s0, $v0 +glabel menu18_displaycast_constructor +/* 04FBD4 7F01B0A4 0FC064CA */ jal constructor_menu18_displaycast +/* 04FBD8 7F01B0A8 02002025 */ move $a0, $s0 +/* 04FBDC 7F01B0AC 10000004 */ b menu0B_runstage_constructor +/* 04FBE0 7F01B0B0 00408025 */ move $s0, $v0 +glabel menu19_spectrum_constructor +/* 04FBE4 7F01B0B4 0FC06938 */ jal constructor_menu19_spectrum +/* 04FBE8 7F01B0B8 02002025 */ move $a0, $s0 +/* 04FBEC 7F01B0BC 00408025 */ move $s0, $v0 +glabel menu0B_runstage_constructor +/* 04FBF0 7F01B0C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 04FBF4 7F01B0C4 02001025 */ move $v0, $s0 +/* 04FBF8 7F01B0C8 8FB00018 */ lw $s0, 0x18($sp) +/* 04FBFC 7F01B0CC 03E00008 */ jr $ra +/* 04FC00 7F01B0D0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + diff --git a/src/game/mainmenu.h b/src/game/mainmenu.h new file mode 100644 index 0000000..6ca60c5 --- /dev/null +++ b/src/game/mainmenu.h @@ -0,0 +1,797 @@ +#ifndef _MAINMENU_H_ +#define _MAINMENU_H_ +#include "ultra64.h" +#include "bondgame.h" +#include "bondconstants.h" + +struct legal_screen_text { + int h_pos; + int v_pos; + int flag; + int flag2; + short txtID; + short anonymous_5; +}; + +struct mission_folder_setup { + void * string_ptr; + short folder_text_preset; + short icon_text_preset; + int stage_id; + int unknown; + int type; + int mission_num; + void * briefing_name_ptr; +}; + +struct MP_game_length_settings { + u16 text_preset; + u16 padding; + int time; + int points; +}; + +struct mp_stage_playercount { + short stage; + char min; + char max; +}; + +struct mp_stage_setup { + s16 folder_text_preset; + s16 select_screen_text_preset; + s32 photo; + s32 stage_id; + s32 unlock_after; + s32 min_player; + s32 max_player; +}; + +struct MP_selectable_chars { + short text_preset; + char gender; + char select_photo; + short body; + short head; + float pov; +}; + +struct MP_handicap_menu { + short text_preset; + short padding; + float damage_modifier; +}; + +struct MP_controller_configuration_menu { + char anonymous_0; + char field_1; + char field_2; + char field_3; +}; + +struct MP_sight_aim_settings { + char anonymous_0; + char field_1; + char sight; + char autoaim; +}; + +struct intro_char { + int body; + int head; + short text1; + short text2; + short text3; + short RESERVED; + int flag; +}; + +struct intro_animation { + int animID; + float startframeoffset; + float playback_speed; + int camera_preset; +}; + +struct solo_target_times { + u16 agent_time; + u16 secret_agent_time; + u16 OO_agent_time; +}; + + + +extern f32 flt_CODE_bss_800695A0; +//CODE.bss:800695A4 +extern f32 flt_CODE_bss_800695A4; +//CODE.bss:800695A8 +extern f32 flt_CODE_bss_800695A8; +//CODE.bss:800695AC +extern f32 flt_CODE_bss_800695AC; +//CODE.bss:800695B0 +extern f32 flt_CODE_bss_800695B0; +//CODE.bss:800695B4 +extern f32 flt_CODE_bss_800695B4; +//CODE.bss:800695B8 +extern f32 flt_CODE_bss_800695B8; +//CODE.bss:800695BC +extern f32 flt_CODE_bss_800695BC; +//CODE.bss:800695C0 +extern f32 flt_CODE_bss_800695C0; +//CODE.bss:800695C4 .align 3 +//CODE.bss:800695C8 +extern f32 flt_CODE_bss_800695C8; +//CODE.bss:800695CC +extern f32 flt_CODE_bss_800695CC; +//CODE.bss:800695D0 +extern f32 flt_CODE_bss_800695D0; +//CODE.bss:800695D4 .align 3 +//CODE.bss:800695D8 +extern f32 flt_CODE_bss_800695D8; +//CODE.bss:800695DC +extern f32 flt_CODE_bss_800695DC; +//CODE.bss:800695E0 +extern f32 flt_CODE_bss_800695E0; +//CODE.bss:800695E4 +extern f32 flt_CODE_bss_800695E4; +//CODE.bss:800695E8 +extern f32 flt_CODE_bss_800695E8; +//CODE.bss:800695EC +extern f32 flt_CODE_bss_800695EC; +//CODE.bss:800695F0 +extern f32 flt_CODE_bss_800695F0; +//CODE.bss:800695F4 .align 3 +//CODE.bss:800695F8 +extern f32 flt_CODE_bss_800695F8; +//CODE.bss:800695FC +extern f32 flt_CODE_bss_800695FC; +//CODE.bss:80069600 +extern f32 flt_CODE_bss_80069600; +//CODE.bss:80069604 .align 3 +//CODE.bss:80069608 +extern f32 flt_CODE_bss_80069608; +//CODE.bss:8006960C +extern f32 flt_CODE_bss_8006960C; +//CODE.bss:80069610 +extern f32 flt_CODE_bss_80069610; +//CODE.bss:80069614 +extern f32 flt_CODE_bss_80069614; +//CODE.bss:80069618 +extern f32 flt_CODE_bss_80069618; +//CODE.bss:8006961C .align 4 +/* +CODE.bss:80069620 dword_CODE_bss_80069620:.space 0x30 +CODE.bss:80069650 .space 1 +CODE.bss:80069651 cheat_available:.space 1 +CODE.bss:80069652 CHEAT_AVAILABLE_INVINCIBLE:.space 1 +CODE.bss:80069653 CHEAT_AVAILABLE_ALLGUNS:.space 1 +CODE.bss:80069654 .space 1 +CODE.bss:80069655 .space 2 +CODE.bss:80069657 CHEAT_AVAILABLE_LINEMODE:.space 1 +CODE.bss:80069658 CHEAT_AVAILABLE_2X_HEALTH:.space 1 +CODE.bss:80069659 CHEAT_AVAILABLE_2X_ARMOR:.space 1 +CODE.bss:8006965A CHEAT_AVAILABLE_BOND_INVIS:.space 1 +CODE.bss:8006965B CHEAT_AVAILABLE_INFINITE_AMMO:.space 1 +CODE.bss:8006965C CHEAT_AVAILABLE_DK_MODE:.space 1 +CODE.bss:8006965D CHEAT_AVAILABLE_EXTRA_WEAPONS:.space 1 +CODE.bss:8006965E CHEAT_AVAILABLE_TINY_BOND:.space 1 +CODE.bss:8006965F CHEAT_AVAILABLE_PAINTBALL:.space 1 +CODE.bss:80069660 CHEAT_AVAILABLE_10X_HEALTH:.space 1 +CODE.bss:80069661 CHEAT_AVAILABLE_MAGNUM:.space 1 +CODE.bss:80069662 CHEAT_AVAILABLE_LASER:.space 1 +CODE.bss:80069663 CHEAT_AVAILABLE_GOLDENGUN:.space 1 +CODE.bss:80069664 CHEAT_AVAILABLE_SILVERPP7:.space 1 +CODE.bss:80069665 CHEAT_AVAILABLE_GOLDPP7:.space 1 +CODE.bss:80069666 CHEAT_AVAILABLE_MP_INVINCIBILITY:.space 1 +CODE.bss:80069667 CHEAT_AVAILABLE_NO_MP_RADAR:.space 1 +CODE.bss:80069668 CHEAT_AVAILABLE_TURBO:.space 1 +CODE.bss:80069669 CHEAT_AVAILABLE_DEBUG_MODE:.space 1 +CODE.bss:8006966A CHEAT_AVAILABLE_FAST_ANI:.space 1 +CODE.bss:8006966B CHEAT_AVAILABLE_SLOW_ANI:.space 1 +CODE.bss:8006966C CHEAT_AVAILABLE_ENMY_ROCKETS:.space 1 +CODE.bss:8006966D CHEAT_AVAILABLE_2X_ROCKET:.space 1 +CODE.bss:8006966E CHEAT_AVAILABLE_2X_GRENADE_LAUNCHER:.space 1 +CODE.bss:8006966F CHEAT_AVAILABLE_2X_RCP90:.space 1 +CODE.bss:80069670 CHEAT_AVAILABLE_2X_THROWING_KNIVES:.space 1 +CODE.bss:80069671 CHEAT_AVAILABLE_2X_HUNTING_KNIVES:.space 1 +CODE.bss:80069672 CHEAT_AVAILABLE_2X_LASER:.space 2 +CODE.bss:80069674 .space 0x2C +*/ +//CODE.bss:800696A0 +extern u8 cheat_activated; +//CODE.bss:800696A1 +extern u8 CHEAT_AVAILABLE_EXTRA_CHARS; +//CODE.bss:800696A2 +extern u8 cheat_activated_1; +//CODE.bss:800696A3 +extern u8 cheat_activated_2; +//CODE.bss:800696A4 +extern u8 CHEAT_AVAILABLE_MAX_AMMO; +//CODE.bss:800696A5 +extern u8 cheat_activated_4; +//CODE.bss:800696A6 +extern u8 cheat_activated_5; +//CODE.bss:800696A7 +extern u8 cheat_activated_6; +//CODE.bss:800696A8 +extern u8 cheat_activated_7; +//CODE.bss:800696A9 +extern u8 cheat_activated_8; +//CODE.bss:800696AA +extern u8 cheat_activated_9; +//CODE.bss:800696AB +extern u8 cheat_activated_10; +//CODE.bss:800696AC +extern u8 cheat_activated_11; +//CODE.bss:800696AD +extern u8 cheat_activated_12; +//CODE.bss:800696AE +extern u8 cheat_activated_13; +//CODE.bss:800696AF +extern u8 cheat_activated_14; +//CODE.bss:800696B0 +extern u8 cheat_activated_15; +//CODE.bss:800696B1 +extern u8 cheat_activated_16; +//CODE.bss:800696B2 +extern u8 cheat_activated_17; +//CODE.bss:800696B3 +extern u8 cheat_activated_18; +//CODE.bss:800696B4 +extern u8 cheat_activated_19; +//CODE.bss:800696B5 +extern u8 cheat_activated_20; +//CODE.bss:800696B6 +extern u8 cheat_activated_21; +//CODE.bss:800696B7 +extern u8 cheat_activated_22; +//CODE.bss:800696B8 +extern u8 cheat_activated_23; +//CODE.bss:800696B9 +extern u8 cheat_activated_24; +//CODE.bss:800696BA +extern u8 cheat_activated_25; +//CODE.bss:800696BB +extern u8 cheat_activated_26; +//CODE.bss:800696BC +extern u8 cheat_activated_27; +//CODE.bss:800696BD +extern u8 cheat_activated_28; +//CODE.bss:800696BE +extern u8 cheat_activated_29; +//CODE.bss:800696BF +extern u8 cheat_activated_30; +//CODE.bss:800696C0 +extern u8 cheat_activated_31; +//CODE.bss:800696C1 +extern u8 cheat_activated_32; +//CODE.bss:800696C2 +extern u8 cheat_activated_33; +//CODE.bss:800696C3 +extern u8 cheat_activated_34; +//CODE.bss:800696C4 +extern u8 cheat_activated_35; +//CODE.bss:800696C5 +extern u8 cheat_activated_36; +//CODE.bss:800696C6 +extern u8 cheat_activated_37; +//CODE.bss:800696C7 +extern u8 cheat_activated_38; +//CODE.bss:800696C8 +extern u8 cheat_activated_39; +//CODE.bss:800696C9 +extern u8 cheat_activated_40; +//CODE.bss:800696CA +extern u8 cheat_activated_41; +//CODE.bss:800696CB +extern u8 cheat_activated_42; +//CODE.bss:800696CC +extern u8 cheat_activated_43; +//CODE.bss:800696CD +extern u8 cheat_activated_44; +//CODE.bss:800696CE +extern u8 cheat_activated_45; +//CODE.bss:800696CF +extern u8 cheat_activated_46; +//CODE.bss:800696D0 +extern u8 cheat_activated_47; +//CODE.bss:800696D1 +extern u8 cheat_activated_48; +//CODE.bss:800696D2 +extern u8 cheat_activated_49; +//CODE.bss:800696D3 +extern u8 cheat_activated_50; +//CODE.bss:800696D4 +extern u8 cheat_activated_51; +//CODE.bss:800696D5 +extern u8 cheat_activated_52; +//CODE.bss:800696D6 +extern u8 cheat_activated_53; +//CODE.bss:800696D7 +extern u8 cheat_activated_54; +//CODE.bss:800696D8 +extern u8 cheat_activated_55; +//CODE.bss:800696D9 +extern u8 cheat_activated_56; +//CODE.bss:800696DA +extern u8 cheat_activated_57; +//CODE.bss:800696DB +extern u8 cheat_activated_58; +//CODE.bss:800696DC +extern u8 cheat_activated_59; +//CODE.bss:800696DD +extern u8 cheat_activated_60; +//CODE.bss:800696DE +extern u8 cheat_activated_61; +//CODE.bss:800696DF +extern u8 cheat_activated_62; +//CODE.bss:800696E0 +extern u8 cheat_activated_63; +//CODE.bss:800696E1 +extern u8 cheat_activated_64; +//CODE.bss:800696E2 +extern u8 cheat_activated_65; +//CODE.bss:800696E3 +extern u8 cheat_activated_66; +//CODE.bss:800696E4 +extern u8 cheat_activated_67; +//CODE.bss:800696E5 +extern u8 cheat_activated_68; +//CODE.bss:800696E6 +extern u8 cheat_activated_69; +//CODE.bss:800696E7 +extern u8 cheat_activated_70; +//CODE.bss:800696E8 +extern u8 cheat_activated_71; +//CODE.bss:800696E9 +extern u8 cheat_activated_72; +//CODE.bss:800696EA +extern u8 cheat_activated_73; +//CODE.bss:800696EB +extern u8 cheat_activated_74; +//CODE.bss:800696EC +extern u8 cheat_activated_75; +//CODE.bss:800696ED +extern u8 cheat_activated_76; +//CODE.bss:800696EE +extern u8 cheat_activated_77; +//CODE.bss:800696EF +extern u8 cheat_activated_78; + +//CODE.bss:800696F0 +extern s32 array_favweapon[4][2]; +//CODE.bss:80069710 +extern s32 mp_char_cur_select_player1; +//CODE.bss:80069714 +extern s32 mp_char_cur_select_player2; +//CODE.bss:80069718 +extern s32 mp_char_cur_select_player3; +//CODE.bss:8006971C +extern s32 mp_char_cur_select_player4; +//CODE.bss:80069720 +extern s32 mp_char_prev_select_player1; +//CODE.bss:80069724 +extern s32 mp_char_prev_select_player2; +//CODE.bss:80069728 +extern s32 mp_char_prev_select_player3; +//CODE.bss:8006972C +extern s32 mp_char_prev_select_player4; +//CODE.bss:80069730 +extern s32 dword_CODE_bss_80069730; +//CODE.bss:80069734 +extern s32 dword_CODE_bss_80069734; +//CODE.bss:80069738 +extern s32 dword_CODE_bss_80069738; +//CODE.bss:8006973C +extern s32 dword_CODE_bss_8006973C; +//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; +//CODE.bss:80069750 +extern s32 size_mp_select_image_player1; +//CODE.bss:80069754 +extern s32 size_mp_select_image_player2; +//CODE.bss:80069758 +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; +//CODE.bss:80069770 +extern s32 dword_CODE_bss_80069770; +//CODE.bss:80069774 +extern s32 dword_CODE_bss_80069774; +//CODE.bss:80069778 +extern s32 dword_CODE_bss_80069778; +//CODE.bss:8006977C +extern s32 current_mp_stage_highlighted; +//CODE.bss:80069780 +extern s32 dword_CODE_bss_80069780; +//CODE.bss:80069784 +extern s32 mission_difficulty_highlighted; +//CODE.bss:80069788 +extern s32 teamsize; +//CODE.bss:8006978C +extern s32 ptrbriefingdata; +//CODE.bss:80069790 +extern s32 newcheatunlocked; +//CODE.bss:80069794 +extern s32 highlight_enemy_reaction; +//CODE.bss:80069798 +extern s32 highlight_enemy_health; +//CODE.bss:8006979C +extern s32 highlight_enemy_accuracy; +//CODE.bss:800697A0 +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; +//CODE.bss:800697B8 +extern u32 controlstyle_player[]; + + +//CODE.bss:800697C8 +extern s32 highlight_players; +//CODE.bss:800697CC +extern s32 highlight_scenario; +//CODE.bss:800697D0 +extern s32 highlight_gameselect; +//CODE.bss:800697D4 +extern s32 highlight_gamelength; +//CODE.bss:800697D8 +extern s32 highlight_character; +//CODE.bss:800697DC +extern s32 highlight_weaponselect; +//CODE.bss:800697E0 +extern s32 highlight_health; +//CODE.bss:800697E4 +extern s32 highlight_controlstyle; +//CODE.bss:800697E8 +extern s32 highlight_aimadjustment; +//CODE.bss:800697EC .align 4 +/* +CODE.bss:800697F0 dword_CODE_bss_800697F0:.space 0x130 +*/ + +extern s32 current_menu; +extern s32 menu_update; +extern s32 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 f32 tab2_first_x_coord; +extern f32 tab1_max_x_coord; +extern f32 tab2_bottom_y_coord; + +extern s32 selected_folder_num; +extern s32 selected_folder_num_copy; +extern s32 gamemode; +extern s32 selected_stage; +extern s32 briefingpage; +extern DIFFICULTY selected_difficulty; +extern s32 append_cheat_sp; +extern s32 append_cheat_mp; +extern f32 cursor_h_pos; +extern f32 cursor_v_pos; +extern s32 final_menu_briefing_page; +extern s32 current_menu_briefing_page; +extern s32 folder_selection_screen_option_icon; +extern s32 folder_selected_for_deletion; +extern s32 folder_selected_for_deletion_choice; +extern s32 mission_failed_or_aborted; +extern s32 mission_kia_flag; +extern s32 is_first_time_on_legal_screen; +extern s32 is_first_time_on_main_menu; +extern s32 prev_keypresses; +extern s32 dword_D_8002A938; +extern s32 maybe_is_in_menu; +extern s32 screen_size; +extern s32 spectrum_related_flag; +extern s32 is_emulating_spectrum; +extern s32 is_cheat_menu_available; +extern s32 ptr_logo_and_walletbond_DL; +extern s32 ptr_menu_videobuffer; +extern s32 something_legalscreen_constructor; +extern s32 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 struct rgba_val stru_D_8002A970; +extern struct rgba_val stru_D_8002A974; +extern struct rgba_val stru_D_8002A978; +extern struct rgba_val stru_D_8002A97C; +extern struct rgba_val stru_D_8002A980; +extern struct rgba_val stru_D_8002A984; +extern struct rgba_val stru_D_8002A988; +extern struct rgba_val stru_D_8002A98C; +extern u32 dword_D_8002A990; +extern u32 dword_D_8002A994; +extern u32 dword_D_8002A998; +extern u32 dword_D_8002A99C; +extern f32 slider_007_mode_reaction; +extern f32 slider_007_mode_health; +extern f32 slider_007_mode_damage; +extern f32 slider_007_mode_accuracy; + +/* +dword_D_8002A9B0:.word 0xA0000000 +dword_D_8002A9B4:.word 0x96000000 +dword_D_8002A9B8:.word 0x28000000 +dword_D_8002A9BC:.word 0x8C000000 +dword_D_8002A9C0:.word 0 +dword_D_8002A9C4:.word 0 +dword_D_8002A9C8:.word 0 +stru_D_8002A9CC:legal_screen_text <220, 30, 1, 1, 0x9C07, 0> + legal_screen_text <34, 83, 0, 1, 0x9C08, 0> + legal_screen_text <226, 84, 0, 1, 0x9C09, 0> + legal_screen_text <226, 97, 0, 1, 0x9C0A, 0> + legal_screen_text <226, 110, 0, 1, 0x9C0B, 0> + legal_screen_text <226, 122, 0, 1, 0x9C0C, 0> + legal_screen_text <227, 134, 0, 1, 0x9C0D, 0> + legal_screen_text <219, 211, 0, 1, 0x9C0E, 0> + legal_screen_text <60, 169, 0, 1, 0x9C0F, 0> + legal_screen_text <60, 201, 0, 1, 0x9C10, 0> + legal_screen_text <99, 266, 0, 1, 0x9C11, 0> + legal_screen_text <80, 280, 0, 1, 0x9C12, 0> +dword_D_8002AABC:.word 0 +dword_D_8002AAC0:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB0C:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB58:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB94:.word 0xC4610000, 0x44480000, 0 + .word 0x44E10000, 0x44480000, 0 + .word 0xC4E10000, 0xC3480000, 0 + .float 900.0 + .float -200.0 + .word 0 +f32 folder_option_COPY_left_bound = 0.0; +f32 folder_option_COPY_upper_bound = 0.0; +f32 folder_option_COPY_right_bound = 0.0; +f32 folder_option_COPY_lower_bound = 0.0; +f32 folder_option_ERASE_left_bound = 0.0; +f32 folder_option_ERASE_upper_bound = 0.0; +f32 folder_option_ERASE_right_bound = 0.0; +f32 folder_option_ERASE_lower_bound = 0.0; +mission_folder_setup_entries: + mission_folder_setup <"1", 0x9C78, 0, LEVELID_NONE, 0, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C79, 0, LEVELID_DAM, 0, MISSION_PART, 0, "UbriefdamZ"> + mission_folder_setup <"ii", 0x9C7A, 0, LEVELID_FACILITY, 0, MISSION_PART, 1, "UbriefarkZ"> + mission_folder_setup <"iii", 0x9C7B, 0, LEVELID_RUNWAY, 0, MISSION_PART, 2, "UbriefrunZ"> + mission_folder_setup <"2", 0x9C7C, 0, LEVELID_NONE, 0, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C7D, 0, LEVELID_SURFACE, 0, MISSION_PART, 3, "UbriefsevxZ"> + mission_folder_setup <"ii", 0x9C7E, 0, LEVELID_BUNKER1, 0, MISSION_PART, 4, "UbriefsevbunkerZ"> + mission_folder_setup <"3", 0x9C7F, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C80, 0x9C81, LEVELID_SILO, 1, MISSION_PART, 5, "UbriefsiloZ"> + mission_folder_setup <"4", 0x9C82, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C83, 0, LEVELID_FRIGATE, 1, MISSION_PART, 6, "UbriefdestZ"> + mission_folder_setup <"5", 0x9C7C, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C7D, 0, LEVELID_SURFACE2, 1, MISSION_PART, 7, "UbriefsevxbZ"> + mission_folder_setup <"ii", 0x9C7E, 0, LEVELID_BUNKER2, 1, MISSION_PART, 8, "UbriefsevbZ"> + mission_folder_setup <"6", 0x9C84, 0, LEVELID_NONE, 2, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C85, 0x9C86, LEVELID_STATUE, 2, MISSION_PART, 9, "UbriefstatueZ"> + mission_folder_setup <"ii", 0x9C87, 0x9C88, LEVELID_ARCHIVES, 2, MISSION_PART, 0xA, "UbriefarchZ"> + mission_folder_setup <"iii", 0x9C89, 0, LEVELID_STREETS, 2, MISSION_PART, 0xB, "UbriefpeteZ"> + mission_folder_setup <"iv", 0x9C8A, 0, LEVELID_DEPOT, 2, MISSION_PART, 0xC, "UbriefdepoZ"> + mission_folder_setup <"v", 0x9C8B, 0, LEVELID_TRAIN, 2, MISSION_PART, 0xD, "UbrieftraZ"> + mission_folder_setup <"7", 0x9C8C, 0, LEVELID_NONE, 3, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i" , 0x9C8D, 0, LEVELID_JUNGLE, 3, MISSION_PART, 0xE, "UbriefjunZ"> + mission_folder_setup <"ii", 0x9C8E, 0x9C8F, LEVELID_CONTROL, 3, MISSION_PART, 0xF, "UbriefcontrolZ"> + mission_folder_setup <"iii", 0x9C90, 0x9C91, LEVELID_CAVERNS, 3, MISSION_PART, 0x10, "UbriefcaveZ"> + mission_folder_setup <"iv", 0x9C92, 0x9C93, LEVELID_CRADLE, 3, MISSION_PART, 0x11, "UbriefcradZ"> + mission_folder_setup <"8", 0x9C94, 0, LEVELID_NONE, 4, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C95, 0x9C96, LEVELID_AZTEC, 4, MISSION_PART, 0x12, "UbriefaztZ"> + mission_folder_setup <"9", 0x9C97, 0, LEVELID_NONE, 4, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C98, 0x9C99, LEVELID_EGYPT, 4, MISSION_PART, 0x13, "UbriefcrypZ"> + mission_folder_setup <0, 0, 0, LEVELID_NONE, 0xFFFFFFFF, MISSION_PART, 0xFFFFFFFF, 0> + +unknown_folderselect_constructor:.word 0x14 +dword_D_8002AF30:.word 0x14 +dword_D_8002AF34:.word 0x14 +unknown_folderselect_constructor_0:.word 0x32 +dword_D_8002AF3C:.word 0x32 +dword_D_8002AF40:.word 0x32 +unknown_folderselect:.word 0, 1, 3, 0, 0, 0, 0 + .word 0, 0, 0, 0, 0, 0, 0 + .word 0, 0 +dword_D_8002AF84:.word 0, 1, 3, 0, 0, 0, 0 + .word 0, 0, 0, 0, 0, 0, 0 + .word 0 +dword_D_8002AFC0:.word 0 +dword_D_8002AFC4:.word 0 +flt_D_8002AFC8: .float 190.0 +flt_D_8002AFCC: .float -3300.0 +cursor_xpos_table_mission_select:.word 73, 142, 212, 282, 352 +cursor_ypos_table_mission_select:.word 62, 131, 201, 270 + MP_game_length_settings <0x9C2D, 0, 0, 0> + MP_game_length_settings <0x9C2E, 0, 0x4650, 0> + MP_game_length_settings <0x9C2F, 0, 0x8CA0, 0> + MP_game_length_settings <0x9C30, 0, 0x11940, 0> + MP_game_length_settings <0x9C31, 0, 0, 5> + MP_game_length_settings <0x9C32, 0, 0, 0xA> + MP_game_length_settings <0x9C33, 0, 0, 0x14> + MP_game_length_settings <0x9C34, 0, 0, 0> +mp_player_counts:mp_stage_playercount <0x9C35, 2, 4> + mp_stage_playercount <0x9C36, 2, 4> + mp_stage_playercount <0x9C37, 2, 4> + mp_stage_playercount <0x9C38, 2, 4> + mp_stage_playercount <0x9C39, 2, 4> + mp_stage_playercount <0x9C3A, 4, 4> + mp_stage_playercount <0x9C3B, 4, 4> + mp_stage_playercount <0x9C3C, 3, 3> +multi_stage_setups:mp_stage_setup <0x9C9A, 0x9C9B, 0x10, 0xFFFFFFFF, 0xFFFFFFFF, 1, 4> +stru_D_8002B08C:mp_stage_setup <0x9C9C, 0x9C9D, 0xC, 0x26, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9C9E, 0x9C9F, 0xE, 0x1F, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA2, 0x9CA3, 0xF, 0x32, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA0, 0x9CA1, 0xD, 0x30, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9D0D, 0x9D0E, 0xD, 0x2D, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9D0F, 0x9D10, 0xD, 0x2E, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA4, 0x9CA5, 4, 0x22, 1, 1, 4> + mp_stage_setup <0x9CA6, 0x9CA7, 0, 0x1B, 8, 1, 3> + mp_stage_setup <0x9CA8, 0x9CA9, 2, 0x18, 0xA, 1, 3> + mp_stage_setup <0x9CAA, 0x9CAB, 1, 0x27, 0x10, 1, 3> + mp_stage_setup <0x9CAC, 0x9CAD, 0xA, 0x20, 0x13, 1, 2> +num_chars_selectable_mp:.word 8 +mp_chr_setup: MP_selectable_chars <0x9CB8, MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBF, FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998> + MP_selectable_chars <0x9CBC, MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBE, FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBB, MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778> + MP_selectable_chars <0x9CBA, MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702> + MP_selectable_chars <0x9CBD, MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999> + MP_selectable_chars <0x9CB9, MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0> + MP_selectable_chars <0x9CC2, FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CC1, MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199> + MP_selectable_chars <0x9CC3, MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001> + MP_selectable_chars <0x9CC0, MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CFD, MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0> + MP_selectable_chars <0x9CFC, MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0> + MP_selectable_chars <0x9D07, MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0> + MP_selectable_chars <0x9D07, FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0> + MP_selectable_chars <0x9D00, MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0> + MP_selectable_chars <0x9CFE, MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0> + MP_selectable_chars <0x9D01, MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0> + MP_selectable_chars <0x9D06, MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0> + MP_selectable_chars <0x9CFB, MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0> + MP_selectable_chars <0x9D08, FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0> + MP_selectable_chars <0x9D02, MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0> + MP_selectable_chars <0x9D03, MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0> + MP_selectable_chars <0x9D02, MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0> + MP_selectable_chars <0x9D04, MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0> + MP_selectable_chars <0x9CFA, MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0> + MP_selectable_chars <0x9CFF, MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0> + MP_selectable_chars <0x9D05, MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0> + MP_selectable_chars <0x9D05, FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0> + MP_selectable_chars <0x9CC4, FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998> + MP_selectable_chars <0x9CC5, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446> + MP_selectable_chars <0x9CC6, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446> + MP_selectable_chars <0x9CC7, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446> + MP_selectable_chars <0x9CC8, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446> + MP_selectable_chars <0x9CC9, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446> + MP_selectable_chars <0x9CCA, FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446> + MP_selectable_chars <0x9CCB, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446> + MP_selectable_chars <0x9CCC, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446> + MP_selectable_chars <0x9CCD, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446> + MP_selectable_chars <0x9CCE, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446> + MP_selectable_chars <0x9CCF, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446> + MP_selectable_chars <0x9CD0, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446> + MP_selectable_chars <0x9CD1, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446> + MP_selectable_chars <0x9CD2, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446> + MP_selectable_chars <0x9CD3, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446> + MP_selectable_chars <0x9CD4, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446> + MP_selectable_chars <0x9CD5, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446> + MP_selectable_chars <0x9CD6, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446> + MP_selectable_chars <0x9CD7, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446> + MP_selectable_chars <0x9CD8, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446> + MP_selectable_chars <0x9CD9, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446> + MP_selectable_chars <0x9CDA, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446> + MP_selectable_chars <0x9CDB, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446> + MP_selectable_chars <0x9CDC, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446> + MP_selectable_chars <0x9CDD, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446> + MP_selectable_chars <0x9CDE, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446> + MP_selectable_chars <0x9CDF, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446> + MP_selectable_chars <0x9CE0, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446> + MP_selectable_chars <0x9CE1, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446> + MP_selectable_chars <0x9CE2, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446> + +MP_handicap_table:MP_handicap_menu <0x9C3D, 0, 10.0> + MP_handicap_menu <0x9C3E, 0, 2.8560996> + MP_handicap_menu <0x9C3F, 0, 2.1969998> + MP_handicap_menu <0x9C40, 0, 1.6899998> + MP_handicap_menu <0x9C41, 0, 1.3> + MP_handicap_menu <0x9C42, 0, 1.0> + MP_handicap_menu <0x9C43, 0, 0.76923078> + MP_handicap_menu <0x9C44, 0, 0.59171599> + MP_handicap_menu <0x9C45, 0, 0.45516616> + MP_handicap_menu <0x9C46, 0, 0.35012782> + MP_handicap_menu <0x9C47, 0, 0.1> + MP_controller_configuration_menu <0x9D, 0x15, 0, 1> + MP_controller_configuration_menu <0x9D, 0x16, 1, 1> + MP_controller_configuration_menu <0x9D, 0x17, 2, 1> + MP_controller_configuration_menu <0x9D, 0x18, 3, 1> + MP_controller_configuration_menu <0x9D, 0x19, 4, 2> + MP_controller_configuration_menu <0x9D, 0x1A, 5, 2> + MP_controller_configuration_menu <0x9D, 0x1B, 6, 2> + MP_controller_configuration_menu <0x9D, 0x1C, 7, 2> +stru_mp_sight_adjust_table:MP_sight_aim_settings <0x9C, 0x48, 0, 0> + MP_sight_aim_settings <0x9C, 0x49, 1, 0> + MP_sight_aim_settings <0x9C, 0x4A, 0, 1> + MP_sight_aim_settings <0x9C, 0x4B, 1, 1> +*/ +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 MP_stage_selected; +extern s32 game_length; +extern s32 aim_sight_adjustment; +extern s32 scenario; +extern s32 unlock_stage_select; +extern s32 unlock_game_length; +extern s32 unlock_chars; +extern s32 unlock_weapon_select; +extern s32 unlock_handicap; +extern s32 unlock_control_style; +extern s32 unlock_aim_sight; +/* +dword_D_8002B560:.word 0 + solo_target_times <0, 160, 0> + solo_target_times <0, 0, 125> + solo_target_times <300, 0, 0> + solo_target_times <0, 210, 0> + solo_target_times <0, 0, 240> + solo_target_times <180, 0, 0> + solo_target_times <0, 270, 0> + solo_target_times <0, 0, 255> + solo_target_times <90, 0, 0> + solo_target_times <0, 195, 0> + solo_target_times <0, 0, 80> + solo_target_times <105, 0, 0> + solo_target_times <0, 100, 0> + solo_target_times <0, 0, 325> + solo_target_times <225, 0, 0> + solo_target_times <0, 600, 0> + solo_target_times <0, 0, 570> + solo_target_times <135, 0, 0> + solo_target_times <0, 540, 0> + solo_target_times <0, 0, 360> +dword_D_8002B5DC:.word 0 +dword_D_8002B5E0:.word 0 +MP_menu_selected_option:.word 0 +*/ +extern u32 do_not_play_intro_movie; +extern u32 randomly_selected_intro_animation; +extern u32 intro_animation_count; +extern u32 objinstance; +extern u32 ptrobjinstance; +extern u32 full_actor_intro; +void set_menu_to_mode(MENU menu, u32 mode); + +#endif diff --git a/src/game/matrixmath.c b/src/game/matrixmath.c new file mode 100644 index 0000000..7e1612c --- /dev/null +++ b/src/game/matrixmath.c @@ -0,0 +1,2392 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80075DA0 +f32 flt_CODE_bss_80075DA0; + + +// data +//D:80032310 +f32 D_80032310[2] = {65536.0f, 65536.0f}; + +// f32 D_80032310 = 65536.0; +// //D:80032314 +// f32 D_80032314 = 65536.0; + + +// rodata +//D:800536F0 + +typedef f32 vec3[3]; +typedef f32 mat44[4][4]; + +void matrix_4x4_set_identity(mat44 matrix) { + matrix[0][0] = 1.0f; + matrix[0][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = 0.0f; + matrix[2][2] = 1.0f; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_copy(mat44 src, mat44 dst) { + s32 i; + for (i = 0; i < 4; i++) { + dst[i][0] = src[i][0]; + dst[i][1] = src[i][1]; + dst[i][2] = src[i][2]; + dst[i][3] = src[i][3]; + } +} + +void matrix_4x4_multiply(mat44 lhs, mat44 rhs, mat44 result); + +void matrix_4x4_multiply_in_place(mat44 lhs, mat44 rhs) { + mat44 result; + matrix_4x4_multiply(lhs, rhs, result); + matrix_4x4_copy(result, rhs); +} + +void matrix_4x4_multiply_homogeneous_in_place(mat44 lhs, mat44 rhs) { + mat44 result; + matrix_4x4_multiply_homogeneous(lhs, rhs, result); + matrix_4x4_copy(result, rhs); +} + +#ifdef NONMATCHING +// 8cbf8: move v1,zero 8cbf8: move v1,zero +// 8cbfc: move t0,a0 r 8cbfc: move t1,a0 +// 8cc00: li t2,0x10 r 8cc00: li t3,0x10 +// 8cc04: li t1,4 r 8cc04: li t2,0x40 +// 8cc08: move v0,zero | 8cc08: addu a0,a2,v1 +// 8cc0c: addu a0,a2,v1 | 8cc0c: move a3,zero +// 8cc10: move a3,a1 r 8cc10: move t0,a1 +// 8cc14: lwc1 $f18,0(t0) r 8cc14: lwc1 $f18,0(t1) +// 8cc18: lwc1 $f16,0(a3) r 8cc18: lwc1 $f16,0(t0) +// 8cc1c: lwc1 $f14,0x10(t0) r 8cc1c: lwc1 $f14,0x10(t1) +// 8cc20: lwc1 $f12,4(a3) r 8cc20: lwc1 $f12,4(t0) +// 8cc24: mul.s $f16,$f18,$f16 8cc24: mul.s $f16,$f18,$f16 +// 8cc28: lwc1 $f18,0x20(t0) r 8cc28: lwc1 $f18,0x20(t1) +// 8cc2c: lwc1 $f10,8(a3) r 8cc2c: lwc1 $f10,8(t0) +// 8cc30: mul.s $f12,$f14,$f12 8cc30: mul.s $f12,$f14,$f12 +// 8cc34: lwc1 $f14,0xc(a3) r 8cc34: lwc1 $f14,0xc(t0) +// 8cc38: lwc1 $f8,0x30(t0) r 8cc38: lwc1 $f8,0x30(t1) +// 8cc3c: mul.s $f10,$f18,$f10 8cc3c: mul.s $f10,$f18,$f10 +// 8cc40: addiu v0,v0,2 r 8cc40: addiu a3,a3,0x20 +// 8cc44: addiu a0,a0,0x20 8cc44: addiu a0,a0,0x20 +// 8cc48: mul.s $f8,$f14,$f8 8cc48: mul.s $f8,$f14,$f8 +// 8cc4c: addiu a3,a3,0x20 r 8cc4c: addiu t0,t0,0x20 +// 8cc50: add.s $f12,$f16,$f12 8cc50: add.s $f12,$f16,$f12 +// 8cc54: add.s $f10,$f12,$f10 8cc54: add.s $f10,$f12,$f10 +// 8cc58: add.s $f10,$f8,$f10 8cc58: add.s $f10,$f8,$f10 +// 8cc5c: swc1 $f10,-0x20(a0) 8cc5c: swc1 $f10,-0x20(a0) +// 8cc60: lwc1 $f10,0(t0) r 8cc60: lwc1 $f10,0(t1) +// 8cc64: lwc1 $f8,-0x10(a3) r 8cc64: lwc1 $f8,-0x10(t0) +// 8cc68: lwc1 $f12,0x10(t0) r 8cc68: lwc1 $f12,0x10(t1) +// 8cc6c: lwc1 $f16,-0xc(a3) r 8cc6c: lwc1 $f16,-0xc(t0) +// 8cc70: mul.s $f8,$f10,$f8 8cc70: mul.s $f8,$f10,$f8 +// 8cc74: lwc1 $f10,0x20(t0) r 8cc74: lwc1 $f10,0x20(t1) +// 8cc78: lwc1 $f14,-8(a3) r 8cc78: lwc1 $f14,-8(t0) +// 8cc7c: mul.s $f16,$f12,$f16 8cc7c: mul.s $f16,$f12,$f16 +// 8cc80: lwc1 $f12,-4(a3) r 8cc80: lwc1 $f12,-4(t0) +// 8cc84: lwc1 $f18,0x30(t0) r 8cc84: lwc1 $f18,0x30(t1) +// 8cc88: mul.s $f14,$f10,$f14 8cc88: mul.s $f14,$f10,$f14 +// 8cc8c: nop 8cc8c: nop +// 8cc90: mul.s $f18,$f12,$f18 8cc90: mul.s $f18,$f12,$f18 +// 8cc94: add.s $f16,$f8,$f16 8cc94: add.s $f16,$f8,$f16 +// 8cc98: add.s $f14,$f16,$f14 8cc98: add.s $f14,$f16,$f14 +// 8cc9c: add.s $f14,$f18,$f14 8cc9c: add.s $f14,$f18,$f14 +// 8cca0: bne v0,t1,0x8cc14 ~> r 8cca0: bne a3,t2,0x8cc14 ~> +// 8cca4: swc1 $f14,-0x10(a0) 8cca4: swc1 $f14,-0x10(a0) +// 8cca8: addiu v1,v1,4 8cca8: addiu v1,v1,4 +// 8ccac: bne v1,t2,0x8cc08 ~> r 8ccac: bne v1,t3,0x8cc08 ~> +// 8ccb0: addiu t0,t0,4 r 8ccb0: addiu t1,t1,4 +// 8ccb4: jr ra 8ccb4: jr ra +void matrix_4x4_multiply(mat44 lhs, mat44 rhs, mat44 result) { + s32 i, j; + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j += 2) { + result[j + 0][i] = lhs[0][i] * rhs[j + 0][0] + lhs[1][i] * rhs[j + 0][1] + lhs[2][i] * rhs[j + 0][2] + lhs[3][i] * rhs[j + 0][3]; + result[j + 1][i] = lhs[0][i] * rhs[j + 1][0] + lhs[1][i] * rhs[j + 1][1] + lhs[2][i] * rhs[j + 1][2] + lhs[3][i] * rhs[j + 1][3]; + } + } +} +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_multiply +/* 08CBF8 7F0580C8 00001825 */ move $v1, $zero +/* 08CBFC 7F0580CC 00804025 */ move $t0, $a0 +/* 08CC00 7F0580D0 240A0010 */ li $t2, 16 +/* 08CC04 7F0580D4 24090004 */ li $t1, 4 +.L7F0580D8: +/* 08CC08 7F0580D8 00001025 */ move $v0, $zero +/* 08CC0C 7F0580DC 00C32021 */ addu $a0, $a2, $v1 +/* 08CC10 7F0580E0 00A03825 */ move $a3, $a1 +.L7F0580E4: +/* 08CC14 7F0580E4 C5120000 */ lwc1 $f18, ($t0) +/* 08CC18 7F0580E8 C4F00000 */ lwc1 $f16, ($a3) +/* 08CC1C 7F0580EC C50E0010 */ lwc1 $f14, 0x10($t0) +/* 08CC20 7F0580F0 C4EC0004 */ lwc1 $f12, 4($a3) +/* 08CC24 7F0580F4 46109402 */ mul.s $f16, $f18, $f16 +/* 08CC28 7F0580F8 C5120020 */ lwc1 $f18, 0x20($t0) +/* 08CC2C 7F0580FC C4EA0008 */ lwc1 $f10, 8($a3) +/* 08CC30 7F058100 460C7302 */ mul.s $f12, $f14, $f12 +/* 08CC34 7F058104 C4EE000C */ lwc1 $f14, 0xc($a3) +/* 08CC38 7F058108 C5080030 */ lwc1 $f8, 0x30($t0) +/* 08CC3C 7F05810C 460A9282 */ mul.s $f10, $f18, $f10 +/* 08CC40 7F058110 24420002 */ addiu $v0, $v0, 2 +/* 08CC44 7F058114 24840020 */ addiu $a0, $a0, 0x20 +/* 08CC48 7F058118 46087202 */ mul.s $f8, $f14, $f8 +/* 08CC4C 7F05811C 24E70020 */ addiu $a3, $a3, 0x20 +/* 08CC50 7F058120 460C8300 */ add.s $f12, $f16, $f12 +/* 08CC54 7F058124 460A6280 */ add.s $f10, $f12, $f10 +/* 08CC58 7F058128 460A4280 */ add.s $f10, $f8, $f10 +/* 08CC5C 7F05812C E48AFFE0 */ swc1 $f10, -0x20($a0) +/* 08CC60 7F058130 C50A0000 */ lwc1 $f10, ($t0) +/* 08CC64 7F058134 C4E8FFF0 */ lwc1 $f8, -0x10($a3) +/* 08CC68 7F058138 C50C0010 */ lwc1 $f12, 0x10($t0) +/* 08CC6C 7F05813C C4F0FFF4 */ lwc1 $f16, -0xc($a3) +/* 08CC70 7F058140 46085202 */ mul.s $f8, $f10, $f8 +/* 08CC74 7F058144 C50A0020 */ lwc1 $f10, 0x20($t0) +/* 08CC78 7F058148 C4EEFFF8 */ lwc1 $f14, -8($a3) +/* 08CC7C 7F05814C 46106402 */ mul.s $f16, $f12, $f16 +/* 08CC80 7F058150 C4ECFFFC */ lwc1 $f12, -4($a3) +/* 08CC84 7F058154 C5120030 */ lwc1 $f18, 0x30($t0) +/* 08CC88 7F058158 460E5382 */ mul.s $f14, $f10, $f14 +/* 08CC8C 7F05815C 00000000 */ nop +/* 08CC90 7F058160 46126482 */ mul.s $f18, $f12, $f18 +/* 08CC94 7F058164 46104400 */ add.s $f16, $f8, $f16 +/* 08CC98 7F058168 460E8380 */ add.s $f14, $f16, $f14 +/* 08CC9C 7F05816C 460E9380 */ add.s $f14, $f18, $f14 +/* 08CCA0 7F058170 1449FFDC */ bne $v0, $t1, .L7F0580E4 +/* 08CCA4 7F058174 E48EFFF0 */ swc1 $f14, -0x10($a0) +/* 08CCA8 7F058178 24630004 */ addiu $v1, $v1, 4 +/* 08CCAC 7F05817C 146AFFD6 */ bne $v1, $t2, .L7F0580D8 +/* 08CCB0 7F058180 25080004 */ addiu $t0, $t0, 4 +/* 08CCB4 7F058184 03E00008 */ jr $ra +/* 08CCB8 7F058188 00000000 */ nop +) +#endif + +s32 matrix_4x4_multiply_homogeneous(mat44 lhs, mat44 rhs, mat44 result) { + s32 i, j; + for (i = 0; i < 3; i++) { + for (j = 0; j < 4; j += 2) { + result[j + 0][i] = (lhs[0][i] * rhs[j + 0][0]) + (lhs[1][i] * rhs[j + 0][1]) + (lhs[2][i] * rhs[j + 0][2]); + if (j == 3) { + result[j + 0][i] += lhs[3][i]; + } + result[j + 1][i] = (lhs[0][i] * rhs[j + 1][0]) + (lhs[1][i] * rhs[j + 1][1]) + (lhs[2][i] * rhs[j + 1][2]); + if (j == 2) { + result[j + 1][i] += lhs[3][i]; + } + } + } + + result[0][3] = 0.0f; + result[1][3] = 0.0f; + result[2][3] = 0.0f; + result[3][3] = 1.0f; +} + +void sub_GAME_7F058274(mat44 arg0, mat44 arg1, mat44 arg2) { + arg2[0][0] = (arg0[0][0] * arg1[0][0]); + arg2[1][0] = (arg0[0][0] * arg1[1][0]); + arg2[2][0] = (arg0[0][0] * arg1[2][0]); + arg2[3][0] = (arg0[0][0] * arg1[3][0]); + arg2[0][1] = (arg0[1][1] * arg1[0][1]); + arg2[1][1] = (arg0[1][1] * arg1[1][1]); + arg2[2][1] = (arg0[1][1] * arg1[2][1]); + arg2[3][1] = (arg0[1][1] * arg1[3][1]); + arg2[0][2] = (arg0[2][2] * arg1[0][2]); + arg2[1][2] = (arg0[2][2] * arg1[1][2]); + arg2[2][2] = (arg0[2][2] * arg1[2][2]); + arg2[3][2] = (arg0[2][2] * arg1[3][2]) + arg0[3][2]; + arg2[0][3] = (arg0[2][3] * arg1[0][2]); + arg2[1][3] = (arg0[2][3] * arg1[1][2]); + arg2[2][3] = (arg0[2][3] * arg1[2][2]); + arg2[3][3] = (arg0[2][3] * arg1[3][2]); +} + +void matrix_4x4_rotate_vector(mat44 matrix, vec3 vector, vec3 result) { + s32 i; + for (i = 0; i < 3; i++) { + result[i] = matrix[0][i] * vector[0] + matrix[1][i] * vector[1] + matrix[2][i] * vector[2]; + } +} + +void matrix_4x4_rotate_vector_in_place(mat44 matrix, vec3 vector) { + vec3 result; + matrix_4x4_rotate_vector(matrix, vector, result); + vector[0] = result[0]; + vector[1] = result[1]; + vector[2] = result[2]; +} + +void matrix_4x4_transform_vector(mat44 matrix, vec3 vector, vec3 result) { + matrix_4x4_rotate_vector(matrix, vector, result); + result[0] += matrix[3][0]; + result[1] += matrix[3][1]; + result[2] += matrix[3][2]; +} + +void matrix_4x4_transform_vector_in_place(mat44 matrix, vec3 vector) { + matrix_4x4_rotate_vector_in_place(matrix, vector); + vector[0] += matrix[3][0]; + vector[1] += matrix[3][1]; + vector[2] += matrix[3][2]; +} + +void matrix_4x4_set_position_and_rotation_around_y(f32* position, f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = 0.0f; + matrix[0][2] = -sine; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = sine; + matrix[2][1] = 0.0f; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_x(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = 1.0f; + matrix[0][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = cosine; + matrix[1][2] = sine; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = -sine; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_y(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = 0.0f; + matrix[0][2] = -sine; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = sine; + matrix[2][1] = 0.0f; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_z(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = sine; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = -sine; + matrix[1][1] = cosine; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = 0.0f; + matrix[2][2] = 1.0f; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +#ifdef NONMATCHING +// 8d300: lwc1 $f10,0x54(sp) r 8d300: lwc1 $f8,0x54(sp) +// 8d304: mul.s $f18,$f4,$f0 r 8d304: mul.s $f10,$f4,$f0 +// 8d308: nop 8d308: nop +// 8d30c: mul.s $f8,$f10,$f16 r 8d30c: mul.s $f18,$f8,$f16 +// 8d310: nop 8d310: nop +// 8d314: mul.s $f6,$f18,$f2 r 8d314: mul.s $f6,$f10,$f2 +// 8d318: swc1 $f8,0x20(sp) r 8d318: swc1 $f10,0x20(sp) +// 8d31c: add.s $f4,$f6,$f8 r 8d31c: add.s $f4,$f6,$f18 +// 8d320: swc1 $f4,0x14(s0) 8d320: swc1 $f4,0x14(s0) +// 8d324: lwc1 $f10,0x50(sp) r 8d324: lwc1 $f8,0x50(sp) +// 8d328: swc1 $f12,0x1c(s0) 8d328: swc1 $f12,0x1c(s0) +// 8d32c: mul.s $f6,$f10,$f14 r 8d32c: mul.s $f10,$f8,$f14 +// 8d330: swc1 $f6,0x18(s0) r 8d330: swc1 $f10,0x18(s0) +// 8d334: lwc1 $f8,0x20(sp) | 8d334: mul.s $f6,$f18,$f2 +// 8d338: mul.s $f4,$f8,$f2 | 8d338: lwc1 $f4,0x20(sp) +// 8d33c: add.s $f10,$f4,$f18 r 8d33c: add.s $f8,$f6,$f4 +// 8d340: swc1 $f10,0x20(s0) r 8d340: swc1 $f8,0x20(s0) +// 8d344: lwc1 $f6,0x28(sp) r 8d344: lwc1 $f10,0x28(sp) +// 8d348: lwc1 $f4,0x24(sp) 8d348: lwc1 $f4,0x24(sp) +// 8d34c: mul.s $f8,$f6,$f2 r 8d34c: mul.s $f6,$f10,$f2 +// 8d350: sub.s $f10,$f8,$f4 r 8d350: sub.s $f8,$f6,$f4 +// 8d354: mtc1 at,$f4 8d354: mtc1 at,$f4 +// 8d358: swc1 $f10,0x24(s0) r 8d358: swc1 $f8,0x24(s0) +// 8d35c: lwc1 $f6,0x54(sp) r 8d35c: lwc1 $f10,0x54(sp) +// 8d360: swc1 $f12,0x2c(s0) 8d360: swc1 $f12,0x2c(s0) +// 8d364: swc1 $f12,0x30(s0) 8d364: swc1 $f12,0x30(s0) +// 8d368: mul.s $f8,$f6,$f14 r 8d368: mul.s $f6,$f10,$f14 +// 8d36c: swc1 $f12,0x34(s0) 8d36c: swc1 $f12,0x34(s0) +// 8d370: swc1 $f12,0x38(s0) 8d370: swc1 $f12,0x38(s0) +// 8d374: swc1 $f4,0x3c(s0) 8d374: swc1 $f4,0x3c(s0) +// 8d378: swc1 $f8,0x28(s0) r 8d378: swc1 $f6,0x28(s0) +// void matrix_4x4_set_rotation_around_xyz(vec3 angles, mat44 matrix) { +// f32 cos_x = cosf(angles[0]); +// f32 sin_x = sinf(angles[0]); +// f32 cos_y = cosf(angles[1]); +// f32 sin_y = sinf(angles[1]); +// f32 cos_z = cosf(angles[2]); +// f32 sin_z = sinf(angles[2]); +// f32 cos_x_cos_z = cos_x * cos_z; +// f32 cos_x_sin_z = cos_x * sin_z; +// f32 sin_x_cos_z = sin_x * cos_z; +// f32 sin_x_sin_z = sin_x * sin_z; +// matrix[0][0] = (cos_y * cos_z); +// matrix[0][1] = (cos_y * sin_z); +// matrix[0][2] = -sin_y; +// matrix[0][3] = 0.0f; +// matrix[1][0] = ((sin_x_cos_z * sin_y) - cos_x_sin_z); +// matrix[1][1] = ((sin_x_sin_z * sin_y) + cos_x_cos_z); +// matrix[1][2] = sin_x * cos_y; +// matrix[1][3] = 0.0f; +// matrix[2][0] = ((cos_x_cos_z * sin_y) + sin_x_sin_z); +// matrix[2][1] = ((cos_x_sin_z * sin_y) - sin_x_cos_z); +// matrix[2][2] = cos_x * cos_y; +// matrix[2][3] = 0.0f; +// matrix[3][0] = 0.0f; +// matrix[3][1] = 0.0f; +// matrix[3][2] = 0.0f; +// matrix[3][3] = 1.0f; +// } +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_set_rotation_around_xyz +/* 08D244 7F058714 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08D248 7F058718 AFBF001C */ sw $ra, 0x1c($sp) +/* 08D24C 7F05871C AFB10018 */ sw $s1, 0x18($sp) +/* 08D250 7F058720 AFB00014 */ sw $s0, 0x14($sp) +/* 08D254 7F058724 00A08025 */ move $s0, $a1 +/* 08D258 7F058728 00808825 */ move $s1, $a0 +/* 08D25C 7F05872C 0FC15FA8 */ jal cosf +/* 08D260 7F058730 C48C0000 */ lwc1 $f12, ($a0) +/* 08D264 7F058734 E7A00054 */ swc1 $f0, 0x54($sp) +/* 08D268 7F058738 0FC15FAB */ jal sinf +/* 08D26C 7F05873C C62C0000 */ lwc1 $f12, ($s1) +/* 08D270 7F058740 E7A00050 */ swc1 $f0, 0x50($sp) +/* 08D274 7F058744 0FC15FA8 */ jal cosf +/* 08D278 7F058748 C62C0004 */ lwc1 $f12, 4($s1) +/* 08D27C 7F05874C C62C0004 */ lwc1 $f12, 4($s1) +/* 08D280 7F058750 0FC15FAB */ jal sinf +/* 08D284 7F058754 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 08D288 7F058758 C62C0008 */ lwc1 $f12, 8($s1) +/* 08D28C 7F05875C 0FC15FA8 */ jal cosf +/* 08D290 7F058760 E7A00048 */ swc1 $f0, 0x48($sp) +/* 08D294 7F058764 C62C0008 */ lwc1 $f12, 8($s1) +/* 08D298 7F058768 0FC15FAB */ jal sinf +/* 08D29C 7F05876C E7A00044 */ swc1 $f0, 0x44($sp) +/* 08D2A0 7F058770 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 08D2A4 7F058774 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 08D2A8 7F058778 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 08D2AC 7F05877C 44806000 */ mtc1 $zero, $f12 +/* 08D2B0 7F058780 46107102 */ mul.s $f4, $f14, $f16 +/* 08D2B4 7F058784 46001207 */ neg.s $f8, $f2 +/* 08D2B8 7F058788 E60C000C */ swc1 $f12, 0xc($s0) +/* 08D2BC 7F05878C 46007182 */ mul.s $f6, $f14, $f0 +/* 08D2C0 7F058790 E6080008 */ swc1 $f8, 8($s0) +/* 08D2C4 7F058794 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08D2C8 7F058798 E6040000 */ swc1 $f4, ($s0) +/* 08D2CC 7F05879C E6060004 */ swc1 $f6, 4($s0) +/* 08D2D0 7F0587A0 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08D2D4 7F0587A4 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 08D2D8 7F0587A8 46105102 */ mul.s $f4, $f10, $f16 +/* 08D2DC 7F0587AC 00000000 */ nop +/* 08D2E0 7F0587B0 46003202 */ mul.s $f8, $f6, $f0 +/* 08D2E4 7F0587B4 00000000 */ nop +/* 08D2E8 7F0587B8 46022282 */ mul.s $f10, $f4, $f2 +/* 08D2EC 7F0587BC E7A40024 */ swc1 $f4, 0x24($sp) +/* 08D2F0 7F0587C0 E7A80028 */ swc1 $f8, 0x28($sp) +/* 08D2F4 7F0587C4 46085181 */ sub.s $f6, $f10, $f8 +/* 08D2F8 7F0587C8 E6060010 */ swc1 $f6, 0x10($s0) +/* 08D2FC 7F0587CC C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08D300 7F0587D0 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 08D304 7F0587D4 46002482 */ mul.s $f18, $f4, $f0 +/* 08D308 7F0587D8 00000000 */ nop +/* 08D30C 7F0587DC 46105202 */ mul.s $f8, $f10, $f16 +/* 08D310 7F0587E0 00000000 */ nop +/* 08D314 7F0587E4 46029182 */ mul.s $f6, $f18, $f2 +/* 08D318 7F0587E8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08D31C 7F0587EC 46083100 */ add.s $f4, $f6, $f8 +/* 08D320 7F0587F0 E6040014 */ swc1 $f4, 0x14($s0) +/* 08D324 7F0587F4 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08D328 7F0587F8 E60C001C */ swc1 $f12, 0x1c($s0) +/* 08D32C 7F0587FC 460E5182 */ mul.s $f6, $f10, $f14 +/* 08D330 7F058800 E6060018 */ swc1 $f6, 0x18($s0) +/* 08D334 7F058804 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 08D338 7F058808 46024102 */ mul.s $f4, $f8, $f2 +/* 08D33C 7F05880C 46122280 */ add.s $f10, $f4, $f18 +/* 08D340 7F058810 E60A0020 */ swc1 $f10, 0x20($s0) +/* 08D344 7F058814 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 08D348 7F058818 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 08D34C 7F05881C 46023202 */ mul.s $f8, $f6, $f2 +/* 08D350 7F058820 46044281 */ sub.s $f10, $f8, $f4 +/* 08D354 7F058824 44812000 */ mtc1 $at, $f4 +/* 08D358 7F058828 E60A0024 */ swc1 $f10, 0x24($s0) +/* 08D35C 7F05882C C7A60054 */ lwc1 $f6, 0x54($sp) +/* 08D360 7F058830 E60C002C */ swc1 $f12, 0x2c($s0) +/* 08D364 7F058834 E60C0030 */ swc1 $f12, 0x30($s0) +/* 08D368 7F058838 460E3202 */ mul.s $f8, $f6, $f14 +/* 08D36C 7F05883C E60C0034 */ swc1 $f12, 0x34($s0) +/* 08D370 7F058840 E60C0038 */ swc1 $f12, 0x38($s0) +/* 08D374 7F058844 E604003C */ swc1 $f4, 0x3c($s0) +/* 08D378 7F058848 E6080028 */ swc1 $f8, 0x28($s0) +/* 08D37C 7F05884C 8FBF001C */ lw $ra, 0x1c($sp) +/* 08D380 7F058850 8FB10018 */ lw $s1, 0x18($sp) +/* 08D384 7F058854 8FB00014 */ lw $s0, 0x14($sp) +/* 08D388 7F058858 03E00008 */ jr $ra +/* 08D38C 7F05885C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + +f32 atan2f(f32, f32); + +#define EPSILON 0.0000019073486f + +// https://stackoverflow.com/a/15029416 +void matrix_4x4_get_rotation_around_xyz(mat44 matrix, vec3 angles) { + f32 norm; + f32 sin_x_cos_y = matrix[1][2]; + f32 cos_x_cos_y = matrix[2][2]; + norm = sqrtf((sin_x_cos_y * sin_x_cos_y) + (cos_x_cos_y * cos_x_cos_y)); + if (EPSILON < norm) { + angles[0] = atan2f(matrix[1][2], matrix[2][2]); + angles[1] = atan2f(-matrix[0][2], norm); + angles[2] = atan2f(matrix[0][1], matrix[0][0]); + } else { + angles[0] = 0.0f; + angles[1] = atan2f(-matrix[0][2], norm); + angles[2] = atan2f(-matrix[1][0], matrix[1][1]); + } +} + +void matrix_4x4_set_position(vec3 position, mat44 matrix); + +void matrix_4x4_set_position_and_rotation_around_xyz(vec3 position, vec3 rotation, mat44 matrix) { + matrix_4x4_set_rotation_around_xyz(rotation, matrix); + matrix_4x4_set_position(position, matrix); +} + +void matrix_4x4_set_identity_and_position(vec3 position, mat44 matrix) { + matrix_4x4_set_identity(matrix); + matrix_4x4_set_position(position, matrix); +} + +void matrix_4x4_set_position(vec3 position, mat44 matrix) { + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; +} + +void matrix_column_1_scalar_multiply(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; +} + +void matrix_column_2_scalar_multiply(f32 scalar, f32* matrix) { + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; +} + +void matrix_column_3_scalar_multiply(f32 scalar, f32* matrix) { + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; + matrix[11] *= scalar; +} + +void matrix_column_3_scalar_multiply_2(f32 scalar, f32* matrix) { + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; +} + +void matrix_scalar_multiply(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; + matrix[3] *= scalar; + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; + matrix[7] *= scalar; + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; + matrix[11] *= scalar; +} + +void matrix_scalar_multiply_2(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; +} + +void matrix_row_3_scalar_multiply(f32 scalar, f32* matrix) { + matrix[2] *= scalar; + matrix[6] *= scalar; + matrix[10] *= scalar; + matrix[14] *= scalar; +} + +void matrix_scalar_multiply_3(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[4] *= scalar; + matrix[8] *= scalar; + matrix[12] *= scalar; + matrix[1] *= scalar; + matrix[5] *= scalar; + matrix[9] *= scalar; + matrix[13] *= scalar; + matrix[2] *= scalar; + matrix[6] *= scalar; + matrix[10] *= scalar; + matrix[14] *= scalar; +} + +void sub_GAME_7F058C4C(f32 arg0) { + D_80032310[0] = (65536.0f * arg0); +} + +void sub_GAME_7F058C64(void) { + flt_CODE_bss_80075DA0 = D_80032310[0]; + D_80032310[0] = 65536.0f; +} + +void sub_GAME_7F058C88(void) { + D_80032310[0] = flt_CODE_bss_80075DA0; +} + +#ifdef NONMATCHING +// #define GET_HIGH_S16(x, y) (x & 0xFFFF0000) | (y >> 16); +// #define GET_LOW_S16(x, y) (x << 16) | (y & 0xFFFF); + +// #define STORE_HIGH_AND_LOW_16(index) \ +// var1 = (s32)(matrix[(index) * 2 + 0] * D_80032310[(index) & 0]); \ +// var2 = (s32)(matrix[(index) * 2 + 1] * D_80032310[(index) & 1]); \ +// result[index + 0] = GET_HIGH_S16(var1, var2); \ +// result[index + 8] = GET_LOW_S16(var1, var2); +// void sub_GAME_7F058C9C(f32* matrix, s32* result) { +// // s32 i; +// // s32 x; +// // s32 y; +// // for (i = 0; i < 8; i++) { +// // result[i] = +// // //x = D_80032310[(i + 0) & 0] * matrix[i][0]; +// // //y = D_80032310[(i + 0) & 0] * matrix[0][i]; +// // //y = D_80032310[(i + 0) & 1] +// // } + +// s32 i; +// u32 var1; +// u32 var2; +// // u32 var3; +// // u32 var4; +// // u32 var5; +// // u32 var6; +// // u32 var7; +// // u32 var8; +// for (i = 0; i < 8; i += 4) { +// STORE_HIGH_AND_LOW_16(i + 0) +// STORE_HIGH_AND_LOW_16(i + 1) +// STORE_HIGH_AND_LOW_16(i + 2) +// STORE_HIGH_AND_LOW_16(i + 3) + + + +// // var1 = (s32)(D_80032310[0] * matrix[(i + 0) * 2 + 0]); +// // var2 = (s32)(D_80032310[0] * matrix[(i + 0) * 2 + 1]); +// // result[i + 0] = GET_HIGH_S16(var1, var2); +// // result[i + 8] = GET_LOW_S16(var1, var2); +// // var3 = (s32)(D_80032310[0] * matrix[(i + 1) * 2 + 0]); +// // var4 = (s32)(D_80032310[1] * matrix[(i + 1) * 2 + 1]); +// // result[i + 1]= GET_HIGH_S16(var3, var4); +// // result[i + 9] = GET_LOW_S16(var3, var4); +// // var5 = (s32)(D_80032310[0] * matrix[(i + 2) * 2 + 0]); +// // var6 = (s32)(D_80032310[0] * matrix[(i + 2) * 2 + 1]); +// // result[i + 2] = GET_HIGH_S16(var5, var6); +// // result[i + 10] = GET_LOW_S16(var5, var6); +// // var7 = (s32)(D_80032310[0] * matrix[(i + 3) * 2 + 0]); +// // var8 = (s32)(D_80032310[1] * matrix[(i + 3) * 2 + 1]); +// // result[i + 3] = GET_HIGH_S16(var7, var8); +// // result[i + 11] = GET_LOW_S16(var7, var8); +// } +// } +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F058C9C +/* 08D7CC 7F058C9C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08D7D0 7F058CA0 AFB1000C */ sw $s1, 0xc($sp) +/* 08D7D4 7F058CA4 AFB30014 */ sw $s3, 0x14($sp) +/* 08D7D8 7F058CA8 AFB20010 */ sw $s2, 0x10($sp) +/* 08D7DC 7F058CAC 3C118003 */ lui $s1, %hi(D_80032310) +/* 08D7E0 7F058CB0 AFB00008 */ sw $s0, 8($sp) +/* 08D7E4 7F058CB4 26312310 */ addiu $s1, %lo(D_80032310) # addiu $s1, $s1, 0x2310 +/* 08D7E8 7F058CB8 3C12FFFF */ lui $s2, 0xffff +/* 08D7EC 7F058CBC 24130008 */ li $s3, 8 +/* 08D7F0 7F058CC0 00001025 */ move $v0, $zero +/* 08D7F4 7F058CC4 00A05825 */ move $t3, $a1 +.L7F058CC8: +/* 08D7F8 7F058CC8 C6320000 */ lwc1 $f18, ($s1) +/* 08D7FC 7F058CCC 000278C0 */ sll $t7, $v0, 3 +/* 08D800 7F058CD0 008F5021 */ addu $t2, $a0, $t7 +/* 08D804 7F058CD4 C5500000 */ lwc1 $f16, ($t2) +/* 08D808 7F058CD8 C54E0004 */ lwc1 $f14, 4($t2) +/* 08D80C 7F058CDC 30590001 */ andi $t9, $v0, 1 +/* 08D810 7F058CE0 46109402 */ mul.s $f16, $f18, $f16 +/* 08D814 7F058CE4 00197080 */ sll $t6, $t9, 2 +/* 08D818 7F058CE8 022E7821 */ addu $t7, $s1, $t6 +/* 08D81C 7F058CEC C5F20000 */ lwc1 $f18, ($t7) +/* 08D820 7F058CF0 24470001 */ addiu $a3, $v0, 1 +/* 08D824 7F058CF4 24480002 */ addiu $t0, $v0, 2 +/* 08D828 7F058CF8 460E9382 */ mul.s $f14, $f18, $f14 +/* 08D82C 7F058CFC 4600840D */ trunc.w.s $f16, $f16 +/* 08D830 7F058D00 24490003 */ addiu $t1, $v0, 3 +/* 08D834 7F058D04 24420004 */ addiu $v0, $v0, 4 +/* 08D838 7F058D08 256B0010 */ addiu $t3, $t3, 0x10 +/* 08D83C 7F058D0C 44038000 */ mfc1 $v1, $f16 +/* 08D840 7F058D10 4600738D */ trunc.w.s $f14, $f14 +/* 08D844 7F058D14 0072C824 */ and $t9, $v1, $s2 +/* 08D848 7F058D18 0003C400 */ sll $t8, $v1, 0x10 +/* 08D84C 7F058D1C 44067000 */ mfc1 $a2, $f14 +/* 08D850 7F058D20 00000000 */ nop +/* 08D854 7F058D24 00067402 */ srl $t6, $a2, 0x10 +/* 08D858 7F058D28 032E7825 */ or $t7, $t9, $t6 +/* 08D85C 7F058D2C AD6FFFF0 */ sw $t7, -0x10($t3) +/* 08D860 7F058D30 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08D864 7F058D34 03197025 */ or $t6, $t8, $t9 +/* 08D868 7F058D38 AD6E0010 */ sw $t6, 0x10($t3) +/* 08D86C 7F058D3C C62E0000 */ lwc1 $f14, ($s1) +/* 08D870 7F058D40 0007C0C0 */ sll $t8, $a3, 3 +/* 08D874 7F058D44 00986021 */ addu $t4, $a0, $t8 +/* 08D878 7F058D48 C5900000 */ lwc1 $f16, ($t4) +/* 08D87C 7F058D4C C5920004 */ lwc1 $f18, 4($t4) +/* 08D880 7F058D50 30EE0001 */ andi $t6, $a3, 1 +/* 08D884 7F058D54 46107402 */ mul.s $f16, $f14, $f16 +/* 08D888 7F058D58 000E7880 */ sll $t7, $t6, 2 +/* 08D88C 7F058D5C 022FC021 */ addu $t8, $s1, $t7 +/* 08D890 7F058D60 C70E0000 */ lwc1 $f14, ($t8) +/* 08D894 7F058D64 46127482 */ mul.s $f18, $f14, $f18 +/* 08D898 7F058D68 4600840D */ trunc.w.s $f16, $f16 +/* 08D89C 7F058D6C 44038000 */ mfc1 $v1, $f16 +/* 08D8A0 7F058D70 4600948D */ trunc.w.s $f18, $f18 +/* 08D8A4 7F058D74 00727024 */ and $t6, $v1, $s2 +/* 08D8A8 7F058D78 0003CC00 */ sll $t9, $v1, 0x10 +/* 08D8AC 7F058D7C 44069000 */ mfc1 $a2, $f18 +/* 08D8B0 7F058D80 00000000 */ nop +/* 08D8B4 7F058D84 00067C02 */ srl $t7, $a2, 0x10 +/* 08D8B8 7F058D88 01CFC025 */ or $t8, $t6, $t7 +/* 08D8BC 7F058D8C AD78FFF4 */ sw $t8, -0xc($t3) +/* 08D8C0 7F058D90 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08D8C4 7F058D94 032E7825 */ or $t7, $t9, $t6 +/* 08D8C8 7F058D98 AD6F0014 */ sw $t7, 0x14($t3) +/* 08D8CC 7F058D9C C6320000 */ lwc1 $f18, ($s1) +/* 08D8D0 7F058DA0 0008C8C0 */ sll $t9, $t0, 3 +/* 08D8D4 7F058DA4 00996821 */ addu $t5, $a0, $t9 +/* 08D8D8 7F058DA8 C5B00000 */ lwc1 $f16, ($t5) +/* 08D8DC 7F058DAC C5AE0004 */ lwc1 $f14, 4($t5) +/* 08D8E0 7F058DB0 310F0001 */ andi $t7, $t0, 1 +/* 08D8E4 7F058DB4 46109402 */ mul.s $f16, $f18, $f16 +/* 08D8E8 7F058DB8 000FC080 */ sll $t8, $t7, 2 +/* 08D8EC 7F058DBC 0238C821 */ addu $t9, $s1, $t8 +/* 08D8F0 7F058DC0 C7320000 */ lwc1 $f18, ($t9) +/* 08D8F4 7F058DC4 460E9382 */ mul.s $f14, $f18, $f14 +/* 08D8F8 7F058DC8 4600840D */ trunc.w.s $f16, $f16 +/* 08D8FC 7F058DCC 44038000 */ mfc1 $v1, $f16 +/* 08D900 7F058DD0 4600738D */ trunc.w.s $f14, $f14 +/* 08D904 7F058DD4 00727824 */ and $t7, $v1, $s2 +/* 08D908 7F058DD8 00037400 */ sll $t6, $v1, 0x10 +/* 08D90C 7F058DDC 44067000 */ mfc1 $a2, $f14 +/* 08D910 7F058DE0 00000000 */ nop +/* 08D914 7F058DE4 0006C402 */ srl $t8, $a2, 0x10 +/* 08D918 7F058DE8 01F8C825 */ or $t9, $t7, $t8 +/* 08D91C 7F058DEC 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08D920 7F058DF0 AD79FFF8 */ sw $t9, -8($t3) +/* 08D924 7F058DF4 01CFC025 */ or $t8, $t6, $t7 +/* 08D928 7F058DF8 AD780018 */ sw $t8, 0x18($t3) +/* 08D92C 7F058DFC C62E0000 */ lwc1 $f14, ($s1) +/* 08D930 7F058E00 000970C0 */ sll $t6, $t1, 3 +/* 08D934 7F058E04 008E8021 */ addu $s0, $a0, $t6 +/* 08D938 7F058E08 C6100000 */ lwc1 $f16, ($s0) +/* 08D93C 7F058E0C C6120004 */ lwc1 $f18, 4($s0) +/* 08D940 7F058E10 31380001 */ andi $t8, $t1, 1 +/* 08D944 7F058E14 46107402 */ mul.s $f16, $f14, $f16 +/* 08D948 7F058E18 0018C880 */ sll $t9, $t8, 2 +/* 08D94C 7F058E1C 02397021 */ addu $t6, $s1, $t9 +/* 08D950 7F058E20 C5CE0000 */ lwc1 $f14, ($t6) +/* 08D954 7F058E24 46127482 */ mul.s $f18, $f14, $f18 +/* 08D958 7F058E28 4600840D */ trunc.w.s $f16, $f16 +/* 08D95C 7F058E2C 44038000 */ mfc1 $v1, $f16 +/* 08D960 7F058E30 4600948D */ trunc.w.s $f18, $f18 +/* 08D964 7F058E34 0072C024 */ and $t8, $v1, $s2 +/* 08D968 7F058E38 00037C00 */ sll $t7, $v1, 0x10 +/* 08D96C 7F058E3C 44069000 */ mfc1 $a2, $f18 +/* 08D970 7F058E40 00000000 */ nop +/* 08D974 7F058E44 0006CC02 */ srl $t9, $a2, 0x10 +/* 08D978 7F058E48 03197025 */ or $t6, $t8, $t9 +/* 08D97C 7F058E4C 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08D980 7F058E50 01F8C825 */ or $t9, $t7, $t8 +/* 08D984 7F058E54 AD6EFFFC */ sw $t6, -4($t3) +/* 08D988 7F058E58 1453FF9B */ bne $v0, $s3, .L7F058CC8 +/* 08D98C 7F058E5C AD79001C */ sw $t9, 0x1c($t3) +/* 08D990 7F058E60 8FB00008 */ lw $s0, 8($sp) +/* 08D994 7F058E64 8FB1000C */ lw $s1, 0xc($sp) +/* 08D998 7F058E68 8FB20010 */ lw $s2, 0x10($sp) +/* 08D99C 7F058E6C 8FB30014 */ lw $s3, 0x14($sp) +/* 08D9A0 7F058E70 03E00008 */ jr $ra +/* 08D9A4 7F058E74 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F058E78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F058E78 +/* 08D9A8 7F058E78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08D9AC 7F058E7C AFB20010 */ sw $s2, 0x10($sp) +/* 08D9B0 7F058E80 AFB30014 */ sw $s3, 0x14($sp) +/* 08D9B4 7F058E84 AFB1000C */ sw $s1, 0xc($sp) +/* 08D9B8 7F058E88 3C128003 */ lui $s2, %hi(D_80032310) +/* 08D9BC 7F058E8C AFB00008 */ sw $s0, 8($sp) +/* 08D9C0 7F058E90 26522310 */ addiu $s2, %lo(D_80032310) # addiu $s2, $s2, 0x2310 +/* 08D9C4 7F058E94 3C11FFFF */ lui $s1, 0xffff +/* 08D9C8 7F058E98 24130008 */ li $s3, 8 +/* 08D9CC 7F058E9C 00001025 */ move $v0, $zero +/* 08D9D0 7F058EA0 00805025 */ move $t2, $a0 +.L7F058EA4: +/* 08D9D4 7F058EA4 8D430000 */ lw $v1, ($t2) +/* 08D9D8 7F058EA8 8D460020 */ lw $a2, 0x20($t2) +/* 08D9DC 7F058EAC C6480000 */ lwc1 $f8, ($s2) +/* 08D9E0 7F058EB0 0071C024 */ and $t8, $v1, $s1 +/* 08D9E4 7F058EB4 0006CC02 */ srl $t9, $a2, 0x10 +/* 08D9E8 7F058EB8 03197025 */ or $t6, $t8, $t9 +/* 08D9EC 7F058EBC 448E2000 */ mtc1 $t6, $f4 +/* 08D9F0 7F058EC0 000278C0 */ sll $t7, $v0, 3 +/* 08D9F4 7F058EC4 00AF5821 */ addu $t3, $a1, $t7 +/* 08D9F8 7F058EC8 468021A0 */ cvt.s.w $f6, $f4 +/* 08D9FC 7F058ECC 00037C00 */ sll $t7, $v1, 0x10 +/* 08DA00 7F058ED0 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DA04 7F058ED4 01F8C825 */ or $t9, $t7, $t8 +/* 08DA08 7F058ED8 44998000 */ mtc1 $t9, $f16 +/* 08DA0C 7F058EDC 304E0001 */ andi $t6, $v0, 1 +/* 08DA10 7F058EE0 46083283 */ div.s $f10, $f6, $f8 +/* 08DA14 7F058EE4 000E7880 */ sll $t7, $t6, 2 +/* 08DA18 7F058EE8 024FC021 */ addu $t8, $s2, $t7 +/* 08DA1C 7F058EEC 24470001 */ addiu $a3, $v0, 1 +/* 08DA20 7F058EF0 468084A0 */ cvt.s.w $f18, $f16 +/* 08DA24 7F058EF4 000770C0 */ sll $t6, $a3, 3 +/* 08DA28 7F058EF8 00AE6021 */ addu $t4, $a1, $t6 +/* 08DA2C 7F058EFC 24480002 */ addiu $t0, $v0, 2 +/* 08DA30 7F058F00 24490003 */ addiu $t1, $v0, 3 +/* 08DA34 7F058F04 24420004 */ addiu $v0, $v0, 4 +/* 08DA38 7F058F08 254A0010 */ addiu $t2, $t2, 0x10 +/* 08DA3C 7F058F0C E56A0000 */ swc1 $f10, ($t3) +/* 08DA40 7F058F10 C7040000 */ lwc1 $f4, ($t8) +/* 08DA44 7F058F14 46049183 */ div.s $f6, $f18, $f4 +/* 08DA48 7F058F18 E5660004 */ swc1 $f6, 4($t3) +/* 08DA4C 7F058F1C 8D460014 */ lw $a2, 0x14($t2) +/* 08DA50 7F058F20 8D43FFF4 */ lw $v1, -0xc($t2) +/* 08DA54 7F058F24 C6500000 */ lwc1 $f16, ($s2) +/* 08DA58 7F058F28 0006C402 */ srl $t8, $a2, 0x10 +/* 08DA5C 7F058F2C 00717824 */ and $t7, $v1, $s1 +/* 08DA60 7F058F30 01F8C825 */ or $t9, $t7, $t8 +/* 08DA64 7F058F34 44994000 */ mtc1 $t9, $f8 +/* 08DA68 7F058F38 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DA6C 7F058F3C 00037400 */ sll $t6, $v1, 0x10 +/* 08DA70 7F058F40 468042A0 */ cvt.s.w $f10, $f8 +/* 08DA74 7F058F44 01CFC025 */ or $t8, $t6, $t7 +/* 08DA78 7F058F48 44982000 */ mtc1 $t8, $f4 +/* 08DA7C 7F058F4C 30F90001 */ andi $t9, $a3, 1 +/* 08DA80 7F058F50 00197080 */ sll $t6, $t9, 2 +/* 08DA84 7F058F54 468021A0 */ cvt.s.w $f6, $f4 +/* 08DA88 7F058F58 024E7821 */ addu $t7, $s2, $t6 +/* 08DA8C 7F058F5C 0008C8C0 */ sll $t9, $t0, 3 +/* 08DA90 7F058F60 00B96821 */ addu $t5, $a1, $t9 +/* 08DA94 7F058F64 46105483 */ div.s $f18, $f10, $f16 +/* 08DA98 7F058F68 E5920000 */ swc1 $f18, ($t4) +/* 08DA9C 7F058F6C C5E80000 */ lwc1 $f8, ($t7) +/* 08DAA0 7F058F70 46083283 */ div.s $f10, $f6, $f8 +/* 08DAA4 7F058F74 E58A0004 */ swc1 $f10, 4($t4) +/* 08DAA8 7F058F78 8D460018 */ lw $a2, 0x18($t2) +/* 08DAAC 7F058F7C 8D43FFF8 */ lw $v1, -8($t2) +/* 08DAB0 7F058F80 C6440000 */ lwc1 $f4, ($s2) +/* 08DAB4 7F058F84 00067C02 */ srl $t7, $a2, 0x10 +/* 08DAB8 7F058F88 00717024 */ and $t6, $v1, $s1 +/* 08DABC 7F058F8C 01CFC025 */ or $t8, $t6, $t7 +/* 08DAC0 7F058F90 44988000 */ mtc1 $t8, $f16 +/* 08DAC4 7F058F94 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DAC8 7F058F98 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DACC 7F058F9C 468084A0 */ cvt.s.w $f18, $f16 +/* 08DAD0 7F058FA0 032E7825 */ or $t7, $t9, $t6 +/* 08DAD4 7F058FA4 448F4000 */ mtc1 $t7, $f8 +/* 08DAD8 7F058FA8 31180001 */ andi $t8, $t0, 1 +/* 08DADC 7F058FAC 0018C880 */ sll $t9, $t8, 2 +/* 08DAE0 7F058FB0 468042A0 */ cvt.s.w $f10, $f8 +/* 08DAE4 7F058FB4 02597021 */ addu $t6, $s2, $t9 +/* 08DAE8 7F058FB8 0009C0C0 */ sll $t8, $t1, 3 +/* 08DAEC 7F058FBC 00B88021 */ addu $s0, $a1, $t8 +/* 08DAF0 7F058FC0 46049183 */ div.s $f6, $f18, $f4 +/* 08DAF4 7F058FC4 E5A60000 */ swc1 $f6, ($t5) +/* 08DAF8 7F058FC8 C5D00000 */ lwc1 $f16, ($t6) +/* 08DAFC 7F058FCC 46105483 */ div.s $f18, $f10, $f16 +/* 08DB00 7F058FD0 E5B20004 */ swc1 $f18, 4($t5) +/* 08DB04 7F058FD4 8D46001C */ lw $a2, 0x1c($t2) +/* 08DB08 7F058FD8 8D43FFFC */ lw $v1, -4($t2) +/* 08DB0C 7F058FDC C6480000 */ lwc1 $f8, ($s2) +/* 08DB10 7F058FE0 00067402 */ srl $t6, $a2, 0x10 +/* 08DB14 7F058FE4 0071C824 */ and $t9, $v1, $s1 +/* 08DB18 7F058FE8 032E7825 */ or $t7, $t9, $t6 +/* 08DB1C 7F058FEC 448F2000 */ mtc1 $t7, $f4 +/* 08DB20 7F058FF0 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DB24 7F058FF4 0003C400 */ sll $t8, $v1, 0x10 +/* 08DB28 7F058FF8 468021A0 */ cvt.s.w $f6, $f4 +/* 08DB2C 7F058FFC 03197025 */ or $t6, $t8, $t9 +/* 08DB30 7F059000 448E8000 */ mtc1 $t6, $f16 +/* 08DB34 7F059004 312F0001 */ andi $t7, $t1, 1 +/* 08DB38 7F059008 000FC080 */ sll $t8, $t7, 2 +/* 08DB3C 7F05900C 468084A0 */ cvt.s.w $f18, $f16 +/* 08DB40 7F059010 0258C821 */ addu $t9, $s2, $t8 +/* 08DB44 7F059014 46083283 */ div.s $f10, $f6, $f8 +/* 08DB48 7F059018 E60A0000 */ swc1 $f10, ($s0) +/* 08DB4C 7F05901C C7240000 */ lwc1 $f4, ($t9) +/* 08DB50 7F059020 46049183 */ div.s $f6, $f18, $f4 +/* 08DB54 7F059024 1453FF9F */ bne $v0, $s3, .L7F058EA4 +/* 08DB58 7F059028 E6060004 */ swc1 $f6, 4($s0) +/* 08DB5C 7F05902C 8FB00008 */ lw $s0, 8($sp) +/* 08DB60 7F059030 8FB1000C */ lw $s1, 0xc($sp) +/* 08DB64 7F059034 8FB20010 */ lw $s2, 0x10($sp) +/* 08DB68 7F059038 8FB30014 */ lw $s3, 0x14($sp) +/* 08DB6C 7F05903C 03E00008 */ jr $ra +/* 08DB70 7F059040 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F059044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059044 +/* 08DB74 7F059044 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 08DB78 7F059048 00803025 */ move $a2, $a0 +/* 08DB7C 7F05904C 44810000 */ mtc1 $at, $f0 +/* 08DB80 7F059050 24040004 */ li $a0, 4 +/* 08DB84 7F059054 00001025 */ move $v0, $zero +/* 08DB88 7F059058 00A01825 */ move $v1, $a1 +/* 08DB8C 7F05905C C4D00000 */ lwc1 $f16, ($a2) +/* 08DB90 7F059060 24420001 */ addiu $v0, $v0, 1 +/* 08DB94 7F059064 46008482 */ mul.s $f18, $f16, $f0 +/* 08DB98 7F059068 5044001F */ beql $v0, $a0, .L7F0590E8 +/* 08DB9C 7F05906C 4600940D */ trunc.w.s $f16, $f18 +/* 08DBA0 7F059070 4600940D */ trunc.w.s $f16, $f18 +.L7F059074: +/* 08DBA4 7F059074 24420001 */ addiu $v0, $v0, 1 +/* 08DBA8 7F059078 24630010 */ addiu $v1, $v1, 0x10 +/* 08DBAC 7F05907C 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DBB0 7F059080 440F8000 */ mfc1 $t7, $f16 +/* 08DBB4 7F059084 00000000 */ nop +/* 08DBB8 7F059088 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 08DBBC 7F05908C C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 08DBC0 7F059090 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBC4 7F059094 4600840D */ trunc.w.s $f16, $f16 +/* 08DBC8 7F059098 44198000 */ mfc1 $t9, $f16 +/* 08DBCC 7F05909C 00000000 */ nop +/* 08DBD0 7F0590A0 AC79FFF4 */ sw $t9, -0xc($v1) +/* 08DBD4 7F0590A4 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 08DBD8 7F0590A8 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBDC 7F0590AC 4600840D */ trunc.w.s $f16, $f16 +/* 08DBE0 7F0590B0 44098000 */ mfc1 $t1, $f16 +/* 08DBE4 7F0590B4 00000000 */ nop +/* 08DBE8 7F0590B8 AC69FFF8 */ sw $t1, -8($v1) +/* 08DBEC 7F0590BC C4D0FFFC */ lwc1 $f16, -4($a2) +/* 08DBF0 7F0590C0 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBF4 7F0590C4 4600840D */ trunc.w.s $f16, $f16 +/* 08DBF8 7F0590C8 440B8000 */ mfc1 $t3, $f16 +/* 08DBFC 7F0590CC 00000000 */ nop +/* 08DC00 7F0590D0 AC6BFFFC */ sw $t3, -4($v1) +/* 08DC04 7F0590D4 C4D00000 */ lwc1 $f16, ($a2) +/* 08DC08 7F0590D8 46008482 */ mul.s $f18, $f16, $f0 +/* 08DC0C 7F0590DC 5444FFE5 */ bnel $v0, $a0, .L7F059074 +/* 08DC10 7F0590E0 4600940D */ trunc.w.s $f16, $f18 +/* 08DC14 7F0590E4 4600940D */ trunc.w.s $f16, $f18 +.L7F0590E8: +/* 08DC18 7F0590E8 24630010 */ addiu $v1, $v1, 0x10 +/* 08DC1C 7F0590EC 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DC20 7F0590F0 440F8000 */ mfc1 $t7, $f16 +/* 08DC24 7F0590F4 00000000 */ nop +/* 08DC28 7F0590F8 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 08DC2C 7F0590FC C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 08DC30 7F059100 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC34 7F059104 4600840D */ trunc.w.s $f16, $f16 +/* 08DC38 7F059108 44198000 */ mfc1 $t9, $f16 +/* 08DC3C 7F05910C 00000000 */ nop +/* 08DC40 7F059110 AC79FFF4 */ sw $t9, -0xc($v1) +/* 08DC44 7F059114 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 08DC48 7F059118 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC4C 7F05911C 4600840D */ trunc.w.s $f16, $f16 +/* 08DC50 7F059120 44098000 */ mfc1 $t1, $f16 +/* 08DC54 7F059124 00000000 */ nop +/* 08DC58 7F059128 AC69FFF8 */ sw $t1, -8($v1) +/* 08DC5C 7F05912C C4D0FFFC */ lwc1 $f16, -4($a2) +/* 08DC60 7F059130 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC64 7F059134 4600840D */ trunc.w.s $f16, $f16 +/* 08DC68 7F059138 440B8000 */ mfc1 $t3, $f16 +/* 08DC6C 7F05913C 00000000 */ nop +/* 08DC70 7F059140 AC6BFFFC */ sw $t3, -4($v1) +/* 08DC74 7F059144 03E00008 */ jr $ra +/* 08DC78 7F059148 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05914C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05914C +/* 08DC7C 7F05914C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 08DC80 7F059150 00803025 */ move $a2, $a0 +/* 08DC84 7F059154 44810000 */ mtc1 $at, $f0 +/* 08DC88 7F059158 24040004 */ li $a0, 4 +/* 08DC8C 7F05915C 00001025 */ move $v0, $zero +/* 08DC90 7F059160 00A01825 */ move $v1, $a1 +/* 08DC94 7F059164 24420001 */ addiu $v0, $v0, 1 +/* 08DC98 7F059168 1044001C */ beq $v0, $a0, .L7F0591DC +/* 08DC9C 7F05916C 8CCE0000 */ lw $t6, ($a2) +.L7F059170: +/* 08DCA0 7F059170 448E9000 */ mtc1 $t6, $f18 +/* 08DCA4 7F059174 24420001 */ addiu $v0, $v0, 1 +/* 08DCA8 7F059178 24630010 */ addiu $v1, $v1, 0x10 +/* 08DCAC 7F05917C 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCB0 7F059180 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DCB4 7F059184 46009483 */ div.s $f18, $f18, $f0 +/* 08DCB8 7F059188 E472FFF0 */ swc1 $f18, -0x10($v1) +/* 08DCBC 7F05918C 8CCFFFF4 */ lw $t7, -0xc($a2) +/* 08DCC0 7F059190 448F9000 */ mtc1 $t7, $f18 +/* 08DCC4 7F059194 00000000 */ nop +/* 08DCC8 7F059198 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCCC 7F05919C 46009483 */ div.s $f18, $f18, $f0 +/* 08DCD0 7F0591A0 E472FFF4 */ swc1 $f18, -0xc($v1) +/* 08DCD4 7F0591A4 8CD8FFF8 */ lw $t8, -8($a2) +/* 08DCD8 7F0591A8 44989000 */ mtc1 $t8, $f18 +/* 08DCDC 7F0591AC 00000000 */ nop +/* 08DCE0 7F0591B0 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCE4 7F0591B4 46009483 */ div.s $f18, $f18, $f0 +/* 08DCE8 7F0591B8 E472FFF8 */ swc1 $f18, -8($v1) +/* 08DCEC 7F0591BC 8CD9FFFC */ lw $t9, -4($a2) +/* 08DCF0 7F0591C0 44999000 */ mtc1 $t9, $f18 +/* 08DCF4 7F0591C4 00000000 */ nop +/* 08DCF8 7F0591C8 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCFC 7F0591CC 46009483 */ div.s $f18, $f18, $f0 +/* 08DD00 7F0591D0 E472FFFC */ swc1 $f18, -4($v1) +/* 08DD04 7F0591D4 1444FFE6 */ bne $v0, $a0, .L7F059170 +/* 08DD08 7F0591D8 8CCE0000 */ lw $t6, ($a2) +.L7F0591DC: +/* 08DD0C 7F0591DC 448E9000 */ mtc1 $t6, $f18 +/* 08DD10 7F0591E0 24630010 */ addiu $v1, $v1, 0x10 +/* 08DD14 7F0591E4 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DD18 7F0591E8 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD1C 7F0591EC 46009483 */ div.s $f18, $f18, $f0 +/* 08DD20 7F0591F0 E472FFF0 */ swc1 $f18, -0x10($v1) +/* 08DD24 7F0591F4 8CCFFFF4 */ lw $t7, -0xc($a2) +/* 08DD28 7F0591F8 448F9000 */ mtc1 $t7, $f18 +/* 08DD2C 7F0591FC 00000000 */ nop +/* 08DD30 7F059200 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD34 7F059204 46009483 */ div.s $f18, $f18, $f0 +/* 08DD38 7F059208 E472FFF4 */ swc1 $f18, -0xc($v1) +/* 08DD3C 7F05920C 8CD8FFF8 */ lw $t8, -8($a2) +/* 08DD40 7F059210 44989000 */ mtc1 $t8, $f18 +/* 08DD44 7F059214 00000000 */ nop +/* 08DD48 7F059218 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD4C 7F05921C 46009483 */ div.s $f18, $f18, $f0 +/* 08DD50 7F059220 E472FFF8 */ swc1 $f18, -8($v1) +/* 08DD54 7F059224 8CD9FFFC */ lw $t9, -4($a2) +/* 08DD58 7F059228 44999000 */ mtc1 $t9, $f18 +/* 08DD5C 7F05922C 00000000 */ nop +/* 08DD60 7F059230 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD64 7F059234 46009483 */ div.s $f18, $f18, $f0 +/* 08DD68 7F059238 E472FFFC */ swc1 $f18, -4($v1) +/* 08DD6C 7F05923C 03E00008 */ jr $ra +/* 08DD70 7F059240 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F059244(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059244 +/* 08DD74 7F059244 00001025 */ move $v0, $zero +/* 08DD78 7F059248 00A04025 */ move $t0, $a1 +/* 08DD7C 7F05924C 240D0008 */ li $t5, 8 +/* 08DD80 7F059250 3C0CFFFF */ lui $t4, 0xffff +.L7F059254: +/* 08DD84 7F059254 000278C0 */ sll $t7, $v0, 3 +/* 08DD88 7F059258 008F3821 */ addu $a3, $a0, $t7 +/* 08DD8C 7F05925C 8CE30000 */ lw $v1, ($a3) +/* 08DD90 7F059260 8CE60004 */ lw $a2, 4($a3) +/* 08DD94 7F059264 25080010 */ addiu $t0, $t0, 0x10 +/* 08DD98 7F059268 006CC024 */ and $t8, $v1, $t4 +/* 08DD9C 7F05926C 0006CC02 */ srl $t9, $a2, 0x10 +/* 08DDA0 7F059270 03197025 */ or $t6, $t8, $t9 +/* 08DDA4 7F059274 00037C00 */ sll $t7, $v1, 0x10 +/* 08DDA8 7F059278 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DDAC 7F05927C 01F8C825 */ or $t9, $t7, $t8 +/* 08DDB0 7F059280 244F0001 */ addiu $t7, $v0, 1 +/* 08DDB4 7F059284 000FC0C0 */ sll $t8, $t7, 3 +/* 08DDB8 7F059288 00984821 */ addu $t1, $a0, $t8 +/* 08DDBC 7F05928C AD0EFFF0 */ sw $t6, -0x10($t0) +/* 08DDC0 7F059290 AD190010 */ sw $t9, 0x10($t0) +/* 08DDC4 7F059294 8D260004 */ lw $a2, 4($t1) +/* 08DDC8 7F059298 8D230000 */ lw $v1, ($t1) +/* 08DDCC 7F05929C 00067402 */ srl $t6, $a2, 0x10 +/* 08DDD0 7F0592A0 006CC824 */ and $t9, $v1, $t4 +/* 08DDD4 7F0592A4 032E7825 */ or $t7, $t9, $t6 +/* 08DDD8 7F0592A8 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DDDC 7F0592AC 0003C400 */ sll $t8, $v1, 0x10 +/* 08DDE0 7F0592B0 03197025 */ or $t6, $t8, $t9 +/* 08DDE4 7F0592B4 24580002 */ addiu $t8, $v0, 2 +/* 08DDE8 7F0592B8 0018C8C0 */ sll $t9, $t8, 3 +/* 08DDEC 7F0592BC 00995021 */ addu $t2, $a0, $t9 +/* 08DDF0 7F0592C0 AD0E0014 */ sw $t6, 0x14($t0) +/* 08DDF4 7F0592C4 AD0FFFF4 */ sw $t7, -0xc($t0) +/* 08DDF8 7F0592C8 8D460004 */ lw $a2, 4($t2) +/* 08DDFC 7F0592CC 8D430000 */ lw $v1, ($t2) +/* 08DE00 7F0592D0 00067C02 */ srl $t7, $a2, 0x10 +/* 08DE04 7F0592D4 006C7024 */ and $t6, $v1, $t4 +/* 08DE08 7F0592D8 01CFC025 */ or $t8, $t6, $t7 +/* 08DE0C 7F0592DC 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DE10 7F0592E0 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DE14 7F0592E4 032E7825 */ or $t7, $t9, $t6 +/* 08DE18 7F0592E8 24590003 */ addiu $t9, $v0, 3 +/* 08DE1C 7F0592EC 001970C0 */ sll $t6, $t9, 3 +/* 08DE20 7F0592F0 008E5821 */ addu $t3, $a0, $t6 +/* 08DE24 7F0592F4 AD0F0018 */ sw $t7, 0x18($t0) +/* 08DE28 7F0592F8 AD18FFF8 */ sw $t8, -8($t0) +/* 08DE2C 7F0592FC 8D660004 */ lw $a2, 4($t3) +/* 08DE30 7F059300 8D630000 */ lw $v1, ($t3) +/* 08DE34 7F059304 24420004 */ addiu $v0, $v0, 4 +/* 08DE38 7F059308 0006C402 */ srl $t8, $a2, 0x10 +/* 08DE3C 7F05930C 006C7824 */ and $t7, $v1, $t4 +/* 08DE40 7F059310 01F8C825 */ or $t9, $t7, $t8 +/* 08DE44 7F059314 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DE48 7F059318 00037400 */ sll $t6, $v1, 0x10 +/* 08DE4C 7F05931C 01CFC025 */ or $t8, $t6, $t7 +/* 08DE50 7F059320 AD18001C */ sw $t8, 0x1c($t0) +/* 08DE54 7F059324 144DFFCB */ bne $v0, $t5, .L7F059254 +/* 08DE58 7F059328 AD19FFFC */ sw $t9, -4($t0) +/* 08DE5C 7F05932C 03E00008 */ jr $ra +/* 08DE60 7F059330 00000000 */ nop +) +#endif + +/* +for ($v0 = 0; $v0 < 2; $v0++) { // pointers? + $a1[$v0 * 2 + 0][0] = $a0[$v0][0] & 0xFFFF0000 | ($a0[$v0 + 2][0] >> 16) + $a1[$v0 * 2 + 0][1] = $a0[$v0][0] << 16 | ($a0[$v0 + 2][0] & 0xFFFF) + $a1[$v0 * 2 + 0][2] = $a0[$v0][1] & 0xFFFF0000 | $a0[$v0 + 2][1] >> 16 + $a1[$v0 * 2 + 0][3] = $a0[$v0][1] << 16 | $a0[$v0 + 2][1] & 0xFFFF + $a1[$v0 * 2 + 1][0] = $a0[$v0][2] & 0xFFFF0000 | $a0[$v0 + 2][2] << 16 + $a1[$v0 * 2 + 1][1] = $a0[$v0][2] << 16 | $a0[$v0 + 2][2] & 0xFFFF + $a1[$v0 * 2 + 1][2] = $a0[$v0][3] & 0xFFFF0000 | $a0[$v0 + 2][3] >> 16 + $a1[$v0 * 2 + 1][3] = $a0[$v0][3] << 16 | $a0[$v0 + 2][3] & 0xffff +} + +*/ + +/* +$v0 = 0 +$a3 = $a0 +loop: + $v1 = *($a3) + $a2 = *($a3 + 0x20) + $t0 = $a1 + (($v0 + 0) * 8) + *($t0) = ($v1 & 0xFFFF0000) | ($a2 >> 16) + *($t0 + 0x4) = ($v1 << 16) | ($a2 & 0xFFFF) + $a2 = *($a3 + 0x24) + $v1 = *($a3 + 0x4) + $t1 = $a1 + (($v0 + 1) * 8) + *($t1 + 0) = $v1 & 0xFFFF0000 | $a2 >> 16 + *($t1 + 4) = $v1 << 16 | $a2 & 0xFFFF + $a2 = *($a3 + 0x28) + $v1 = *($a3 + 0x8) + $t2 = $a1 + (($v0 + 2) * 8) + *($t2 + 0) = $v1 & 0xFFFF0000 | $a2 << 16 + *($t2 + 4) = $v1 << 16 | $a2 & 0xFFFF + $a2 = *($a3 + 0x2C) + $v1 = *($a3 + 0xC) + $t3 = $a1 + (($v0 + 3) * 8) + $v0 += 4 + *($t3 + 0) = $v1 & 0xFFFF0000 | $a2 >> 16 + *($t3 + 4) = $v1 << 16 | $a2 & 0xffff + if ($v0 != 8) + { + $a3 += 0x10; + goto loop; + } +return + +*/ +//typedef s32 mat4s[4][4]; + +//void sub_GAME_7F059334(mat4s arg0, mat4s arg1) { +//sub_GAME_7F059334(s32* arg0, s32* arg1) { + //s32* var1 = arg0; + //s32* var2 = arg1; + //for (i = 0; i < 2; i++) { + // for (; var1 < (arg0 + 8); var1++, var2 += 4) + // var1 = arg0[i + 0][0]; + // var2 = arg0[i + 2][0]; + // arg1[i * 2 + 0][0] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][1]; + // var2 = arg0[i + 2][1]; + // arg1[i * 2 + 0][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][3] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][2]; + // var2 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((var1 & 0xFFFF0000) | (var2 << 16)); + // arg1[i * 2 + 1][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][3]; + // var2 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 1][3] = ((var1 << 16) | (var2 & 0xffff)); + // } + + // s32 var1; + // s32 var2; + // s32 i; + // for (i = 0; i < 2; i++) { + // var1 = arg0[i + 0][0]; + // var2 = arg0[i + 2][0]; + // arg1[i * 2 + 0][0] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][1]; + // var2 = arg0[i + 2][1]; + // arg1[i * 2 + 0][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][3] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][2]; + // var2 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((var1 & 0xFFFF0000) | (var2 << 16)); + // arg1[i * 2 + 1][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][3]; + // var2 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 1][3] = ((var1 << 16) | (var2 & 0xffff)); + // } + + // s32 temp_v1; + // s32 temp_v1_2; + // s32 temp_v1_3; + // s32 temp_v1_4; + // u32 temp_a2; + // u32 temp_a2_2; + // u32 temp_a2_3; + // u32 temp_a2_4; + // s32 i; + + // for (i = 0; i < 2; i++) { + // temp_v1 = arg0[i + 0][0]; + // temp_a2 = arg0[i + 2][0]; + // arg1[i * 2][0] = ((temp_v1 & 0xFFFF0000) | (temp_a2 >> 0x10)); + // arg1[i * 2][1] = ((temp_v1 << 0x10) | (temp_a2 & 0xFFFF)); + // temp_v1_2 = arg0[i + 0][1]; + // temp_a2_2 = arg0[i + 2][1]; + // arg1[i * 2][2] = ((temp_v1_2 & 0xFFFF0000) | (temp_a2_2 >> 0x10)); + // arg1[i * 2][3] = ((temp_v1_2 << 0x10) | (temp_a2_2 & 0xFFFF)); + // temp_v1_3 = arg0[i + 0][2]; + // temp_a2_3 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((temp_v1_3 & 0xFFFF0000) | (temp_a2_3 >> 0x10)); + // arg1[i * 2 + 1][1] = ((temp_v1_3 << 0x10) | (temp_a2_3 & 0xFFFF)); + // temp_v1_4 = arg0[i + 0][3]; + // temp_a2_4 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((temp_v1_4 & 0xFFFF0000) | (temp_a2_4 >> 0x10)); + // arg1[i * 2 + 1][3] = ((temp_v1_4 << 0x10) | (temp_a2_4 & 0xFFFF)); + // } +//} + +#ifdef NONMATCHING +void sub_GAME_7F059334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059334 +/* 08DE64 7F059334 00001025 */ move $v0, $zero +/* 08DE68 7F059338 00803825 */ move $a3, $a0 +/* 08DE6C 7F05933C 240D0008 */ li $t5, 8 +/* 08DE70 7F059340 3C0CFFFF */ lui $t4, 0xffff +.L7F059344: +/* 08DE74 7F059344 8CE30000 */ lw $v1, ($a3) +/* 08DE78 7F059348 8CE60020 */ lw $a2, 0x20($a3) +/* 08DE7C 7F05934C 000278C0 */ sll $t7, $v0, 3 +/* 08DE80 7F059350 006CC024 */ and $t8, $v1, $t4 +/* 08DE84 7F059354 0006CC02 */ srl $t9, $a2, 0x10 +/* 08DE88 7F059358 03197025 */ or $t6, $t8, $t9 +/* 08DE8C 7F05935C 00AF4021 */ addu $t0, $a1, $t7 +/* 08DE90 7F059360 00037C00 */ sll $t7, $v1, 0x10 +/* 08DE94 7F059364 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DE98 7F059368 01F8C825 */ or $t9, $t7, $t8 +/* 08DE9C 7F05936C AD0E0000 */ sw $t6, ($t0) +/* 08DEA0 7F059370 AD190004 */ sw $t9, 4($t0) +/* 08DEA4 7F059374 8CE60024 */ lw $a2, 0x24($a3) +/* 08DEA8 7F059378 8CE30004 */ lw $v1, 4($a3) +/* 08DEAC 7F05937C 244F0001 */ addiu $t7, $v0, 1 +/* 08DEB0 7F059380 000FC0C0 */ sll $t8, $t7, 3 +/* 08DEB4 7F059384 00067402 */ srl $t6, $a2, 0x10 +/* 08DEB8 7F059388 006CC824 */ and $t9, $v1, $t4 +/* 08DEBC 7F05938C 032E7825 */ or $t7, $t9, $t6 +/* 08DEC0 7F059390 00B84821 */ addu $t1, $a1, $t8 +/* 08DEC4 7F059394 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DEC8 7F059398 0003C400 */ sll $t8, $v1, 0x10 +/* 08DECC 7F05939C 03197025 */ or $t6, $t8, $t9 +/* 08DED0 7F0593A0 AD2E0004 */ sw $t6, 4($t1) +/* 08DED4 7F0593A4 AD2F0000 */ sw $t7, ($t1) +/* 08DED8 7F0593A8 8CE60028 */ lw $a2, 0x28($a3) +/* 08DEDC 7F0593AC 8CE30008 */ lw $v1, 8($a3) +/* 08DEE0 7F0593B0 24580002 */ addiu $t8, $v0, 2 +/* 08DEE4 7F0593B4 0018C8C0 */ sll $t9, $t8, 3 +/* 08DEE8 7F0593B8 00067C02 */ srl $t7, $a2, 0x10 +/* 08DEEC 7F0593BC 006C7024 */ and $t6, $v1, $t4 +/* 08DEF0 7F0593C0 01CFC025 */ or $t8, $t6, $t7 +/* 08DEF4 7F0593C4 00B95021 */ addu $t2, $a1, $t9 +/* 08DEF8 7F0593C8 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DEFC 7F0593CC 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DF00 7F0593D0 032E7825 */ or $t7, $t9, $t6 +/* 08DF04 7F0593D4 AD4F0004 */ sw $t7, 4($t2) +/* 08DF08 7F0593D8 AD580000 */ sw $t8, ($t2) +/* 08DF0C 7F0593DC 8CE6002C */ lw $a2, 0x2c($a3) +/* 08DF10 7F0593E0 8CE3000C */ lw $v1, 0xc($a3) +/* 08DF14 7F0593E4 24590003 */ addiu $t9, $v0, 3 +/* 08DF18 7F0593E8 001970C0 */ sll $t6, $t9, 3 +/* 08DF1C 7F0593EC 0006C402 */ srl $t8, $a2, 0x10 +/* 08DF20 7F0593F0 006C7824 */ and $t7, $v1, $t4 +/* 08DF24 7F0593F4 01F8C825 */ or $t9, $t7, $t8 +/* 08DF28 7F0593F8 00AE5821 */ addu $t3, $a1, $t6 +/* 08DF2C 7F0593FC 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DF30 7F059400 00037400 */ sll $t6, $v1, 0x10 +/* 08DF34 7F059404 01CFC025 */ or $t8, $t6, $t7 +/* 08DF38 7F059408 24420004 */ addiu $v0, $v0, 4 +/* 08DF3C 7F05940C AD780004 */ sw $t8, 4($t3) +/* 08DF40 7F059410 AD790000 */ sw $t9, ($t3) +/* 08DF44 7F059414 144DFFCB */ bne $v0, $t5, .L7F059344 +/* 08DF48 7F059418 24E70010 */ addiu $a3, $a3, 0x10 +/* 08DF4C 7F05941C 03E00008 */ jr $ra +/* 08DF50 7F059420 00000000 */ nop +) +#endif + +void sub_GAME_7F059424(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + f32 temp_f26; + f32 temp_f28; + f32 temp_f2_2; + f32 temp_f2_3; + f32 temp_f30; + f32 temp_f2 = -1.0f / sqrtf((arg4 * arg4) + (arg5 * arg5) + (arg6 * arg6)); + arg4 *= temp_f2; + arg5 *= temp_f2; + arg6 *= temp_f2; + temp_f26 = (arg8 * arg6) - (arg9 * arg5); + temp_f28 = (arg9 * arg4) - (arg7 * arg6); + temp_f30 = (arg7 * arg5) - (arg8 * arg4); + temp_f2_2 = 1.0f / sqrtf((temp_f26 * temp_f26) + (temp_f28 * temp_f28) + (temp_f30 * temp_f30)); + temp_f26 *= temp_f2_2; + temp_f28 *= temp_f2_2; + temp_f30 *= temp_f2_2; + arg7 = (arg5 * temp_f30) - (arg6 * temp_f28); + arg8 = (arg6 * temp_f26) - (arg4 * temp_f30); + arg9 = (arg4 * temp_f28) - (arg5 * temp_f26); + temp_f2_3 = 1.0f / sqrtf((arg7 * arg7) + (arg8 * arg8) + (arg9 * arg9)); + arg7 *= temp_f2_3; + arg8 *= temp_f2_3; + arg9 *= temp_f2_3; + arg0[0][0] = temp_f26; + arg0[1][0] = temp_f28; + arg0[2][0] = temp_f30; + arg0[3][0] = -((arg1 * temp_f26) + (arg2 * temp_f28) + (arg3 * temp_f30)); + arg0[0][1] = arg7; + arg0[1][1] = arg8; + arg0[2][1] = arg9; + arg0[3][1] = -((arg1 * arg7) + (arg2 * arg8) + (arg3 * arg9)); + arg0[0][2] = arg4; + arg0[1][2] = arg5; + arg0[2][2] = arg6; + arg0[3][2] = -((arg1 * arg4) + (arg2 * arg5) + (arg3 * arg6)); + arg0[0][3] = 0.0f; + arg0[1][3] = 0.0f; + arg0[2][3] = 0.0f; + arg0[3][3] = 1.0f; +} + +void sub_GAME_7F059424(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9); + +void sub_GAME_7F059694(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + sub_GAME_7F059424(arg0, arg1, arg2, arg3, arg4 - arg1, arg5 - arg2, arg6 - arg3, arg7, arg8, arg9); +} + +void sub_GAME_7F059708(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + f32 temp_f26; + f32 temp_f28; + f32 temp_f2_2; + f32 temp_f2_3; + f32 temp_f30; + f32 temp_f2 = -1.0f / sqrtf((arg4 * arg4) + (arg5 * arg5) + (arg6 * arg6)); + arg4 *= temp_f2; + arg5 *= temp_f2; + arg6 *= temp_f2; + temp_f26 = (arg8 * arg6) - (arg9 * arg5); + temp_f28 = (arg9 * arg4) - (arg7 * arg6); + temp_f30 = (arg7 * arg5) - (arg8 * arg4); + temp_f2_2 = 1.0f / sqrtf((temp_f26 * temp_f26) + (temp_f28 * temp_f28) + (temp_f30 * temp_f30)); + temp_f26 *= temp_f2_2; + temp_f28 *= temp_f2_2; + temp_f30 *= temp_f2_2; + arg7 = (arg5 * temp_f30) - (arg6 * temp_f28); + arg8 = (arg6 * temp_f26) - (arg4 * temp_f30); + arg9 = (arg4 * temp_f28) - (arg5 * temp_f26); + temp_f2_3 = 1.0f / sqrtf((arg7 * arg7) + (arg8 * arg8) + (arg9 * arg9)); + arg7 *= temp_f2_3; + arg8 *= temp_f2_3; + arg9 *= temp_f2_3; + arg0[0][0] = temp_f26; + arg0[1][0] = arg7; + arg0[2][0] = arg4; + arg0[3][0] = arg1; + arg0[0][1] = temp_f28; + arg0[1][1] = arg8; + arg0[2][1] = arg5; + arg0[3][1] = arg2; + arg0[0][2] = temp_f30; + arg0[1][2] = arg9; + arg0[2][2] = arg6; + arg0[3][2] = arg3; + arg0[0][3] = 0.0f; + arg0[1][3] = 0.0f; + arg0[2][3] = 0.0f; + arg0[3][3] = 1.0f; +} + +void sub_GAME_7F059908(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + sub_GAME_7F059708(arg0, arg1, arg2, arg3, arg4 - arg1, arg5 - arg2, arg6 - arg3, arg7, arg8, arg9); +} + +#ifdef NONMATCHING +//< 8e568: 3043ffff andi v1,v0,0xffff +//--- +//> 8e568: 31e3ffff andi v1,t7,0xffff +//57,58c57,58 +//< 8e570: 03e00008 jr ra +//< 8e574: 00601025 move v0,v1 +//--- +//> 8e570: 00601025 move v0,v1 +//> 8e574: 03e00008 jr ra +s32 sub_GAME_7F05997C(f32 arg0, f32 arg1) { + f32 temp_f0; + u32 temp_v0; + s32 phi_v1; + + temp_f0 = arg0 + arg1; + if (temp_f0 <= 2.0f) { + return 0xFFFF; + } + temp_v0 = (u32) (131072.0f / temp_f0) & 0xFFFF; + phi_v1 = temp_v0 & 0xFFFF; + if ((s32)temp_v0 <= 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 + +s16 sub_GAME_7F05997C(f32 arg0, f32 arg1); + +void sub_GAME_7F059A48(mat44 matrix, s16* arg1, f32 angle, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { + f32 temp_f12_2 = cosf(angle * 0.5f) / sinf(angle * 0.5f); + arg6 *= 65536.0f; + matrix[0][0] = ((temp_f12_2 / arg3) * arg6); + matrix[1][1] = (temp_f12_2 * arg6); + matrix[1][0] = 0.0f; + matrix[2][0] = 0.0f; + matrix[3][0] = 0.0f; + matrix[0][1] = 0.0f; + matrix[2][1] = 0.0f; + matrix[3][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[1][2] = 0.0f; + matrix[2][2] = (((arg4 + arg5) / (arg4 - arg5)) * arg6); + matrix[3][2] = ((((arg4 + arg4) * arg5) / (arg4 - arg5)) * arg6); + matrix[2][3] = -arg6; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[3][3] = 0.0f; + if (arg1 != 0) { + *arg1 = sub_GAME_7F05997C(arg4, arg5); + } +} + +void guNormalize(f32 *x, f32 *y, f32 *z); + +void sub_GAME_7F059B58(mat44 matrix, f32 angle, f32 x, f32 y, f32 z) { + f32 sine; + f32 cosine; + f32 norm; + f32 invnorm; + f32 cos_x; + f32 sin_x; + f32 cos_z; + f32 sin_z; + guNormalize(&x, &y, &z); + sine = sinf(angle); + cosine = cosf(angle); + norm = sqrtf((x * x) + (z * z)); + if (norm != 0.0f) { + cos_x = x * cosine; + sin_x = x * sine; + cos_z = z * cosine; + sin_z = z * sine; + invnorm = 1.0f / norm; + matrix[0][0] = ((-cos_z - (y * sin_x)) * invnorm); + matrix[1][0] = (sine * norm); + matrix[2][0] = ((cos_x - (y * sin_z)) * invnorm); + matrix[3][0] = 0.0f; + matrix[0][1] = ((sin_z - (y * cos_x)) * invnorm); + matrix[1][1] = (cosine * norm); + matrix[2][1] = ((-sin_x - (y * cos_z)) * invnorm); + matrix[3][1] = 0.0f; + matrix[0][2] = -x; + matrix[1][2] = -y; + matrix[2][2] = -z; + matrix[3][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][3] = 0.0f; + matrix[3][3] = 1.0f; + return; + } + matrix_4x4_set_identity(matrix); +} + +void guAlignF(float mf[4][4], float a, float x, float y, float z); + +#define RAD2DEG(x) x * 57.295776f + +void matrix_4x4_align(mat44 matrix, f32 angle, f32 x, f32 y, f32 z) { + angle = RAD2DEG(angle); + guAlignF(matrix, angle, x, y, z); +} + +void sub_GAME_7F059D30(u32 arg0) { + return; +} + +void matrix_4x4_set_rotation_inverse(mat44 rotation, mat44 transpose) { + transpose[0][0] = rotation[0][0]; + transpose[0][1] = rotation[1][0]; + transpose[0][2] = rotation[2][0]; + transpose[1][0] = rotation[0][1]; + transpose[1][1] = rotation[1][1]; + transpose[1][2] = rotation[2][1]; + transpose[2][0] = rotation[0][2]; + transpose[2][1] = rotation[1][2]; + transpose[2][2] = rotation[2][2]; + transpose[3][0] = 0.0f; + transpose[3][1] = 0.0f; + transpose[3][2] = 0.0f; + transpose[0][3] = 0.0f; + transpose[1][3] = 0.0f; + transpose[2][3] = 0.0f; + transpose[3][3] = 1.0f; +} + +void sub_GAME_7F059DAC(mat44 arg0, mat44 arg1) { + f32 temp_f0 = ((arg0[0][0] * arg0[0][0]) + (arg0[1][0] * arg0[1][0]) + (arg0[2][0] * arg0[2][0])); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (arg0[0][0] * temp_f0); + arg1[0][1] = (arg0[1][0] * temp_f0); + arg1[0][2] = (arg0[2][0] * temp_f0); + arg1[1][0] = (arg0[0][1] * temp_f0); + arg1[1][1] = (arg0[1][1] * temp_f0); + arg1[1][2] = (arg0[2][1] * temp_f0); + arg1[2][0] = (arg0[0][2] * temp_f0); + arg1[2][1] = (arg0[1][2] * temp_f0); + arg1[2][2] = (arg0[2][2] * temp_f0); + arg1[3][0] = 0.0f; + arg1[3][1] = 0.0f; + arg1[3][2] = 0.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; + arg1[3][3] = 1.0f; +} + +void sub_GAME_7F059E64(mat44 arg0, mat44 arg1) { + f32 temp_f0 = (arg0[0][0] * arg0[0][0]) + (arg0[1][0] * arg0[1][0]) + (arg0[2][0] * arg0[2][0]); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (arg0[0][0] * temp_f0); + arg1[0][1] = (arg0[1][0] * temp_f0); + arg1[0][2] = (arg0[2][0] * temp_f0); + arg1[1][0] = (arg0[0][1] * temp_f0); + arg1[1][1] = (arg0[1][1] * temp_f0); + arg1[1][2] = (arg0[2][1] * temp_f0); + arg1[2][0] = (arg0[0][2] * temp_f0); + arg1[2][1] = (arg0[1][2] * temp_f0); + arg1[2][2] = (arg0[2][2] * temp_f0); + arg1[3][0] = -((arg1[0][0] * arg0[3][0]) + (arg1[1][0] * arg0[3][1]) + (arg1[2][0] * arg0[3][2])); + arg1[3][1] = -((arg1[0][1] * arg0[3][0]) + (arg1[1][1] * arg0[3][1]) + (arg1[2][1] * arg0[3][2])); + arg1[3][2] = -((arg1[0][2] * arg0[3][0]) + (arg1[1][2] * arg0[3][1]) + (arg1[2][2] * arg0[3][2])); + arg1[3][3] = 1.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; +} + + +#ifdef NONMATCHING +void sub_GAME_7F059FB8(mat44 arg0, mat44 arg1) { + f32 temp_f0 = (arg0[0][0] * arg0[1][1] * arg0[2][2]) + (arg0[0][1] * arg0[1][2] * arg0[2][0]) + (arg0[0][2] * arg0[1][0] * arg0[2][1]) - (arg0[0][2] * arg0[1][1] * arg0[2][0]) - (arg0[0][1] * arg0[1][0] * arg0[2][2]) - (arg0[0][0] * arg0[1][2] * arg0[2][1]); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (((arg0[1][1] * arg0[2][2]) - (arg0[2][1] * arg0[1][2])) * temp_f0); + arg1[1][0] = (((arg0[1][2] * arg0[2][0]) - (arg0[2][2] * arg0[1][0])) * temp_f0); + arg1[2][0] = (((arg0[1][0] * arg0[2][1]) - (arg0[2][0] * arg0[1][1])) * temp_f0); + arg1[0][1] = (((arg0[0][2] * arg0[2][1]) - (arg0[2][2] * arg0[0][1])) * temp_f0); + arg1[1][1] = (((arg0[0][0] * arg0[2][2]) - (arg0[2][0] * arg0[0][2])) * temp_f0); + arg1[2][1] = (((arg0[0][1] * arg0[2][0]) - (arg0[2][1] * arg0[0][0])) * temp_f0); + arg1[0][2] = (((arg0[0][1] * arg0[1][2]) - (arg0[1][1] * arg0[0][2])) * temp_f0); + arg1[1][2] = (((arg0[0][2] * arg0[1][0]) - (arg0[1][2] * arg0[0][0])) * temp_f0); + arg1[2][2] = (((arg0[0][0] * arg0[1][1]) - (arg0[1][0] * arg0[0][1])) * temp_f0); + arg1[3][0] = -((arg1[0][0] * arg0[3][0]) + (arg1[1][0] * arg0[3][1]) + (arg1[2][0] * arg0[3][2])); + arg1[3][1] = -((arg1[0][1] * arg0[3][0]) + (arg1[1][1] * arg0[3][1]) + (arg1[2][1] * arg0[3][2])); + arg1[3][2] = -((arg1[0][2] * arg0[3][0]) + (arg1[1][2] * arg0[3][1]) + (arg1[2][2] * arg0[3][2])); + arg1[3][3] = 1.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05A250(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05A250 +/* 08ED80 7F05A250 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08ED84 7F05A254 AFBF0014 */ sw $ra, 0x14($sp) +/* 08ED88 7F05A258 AFA40018 */ sw $a0, 0x18($sp) +/* 08ED8C 7F05A25C 0FC168C4 */ jal sub_GAME_7F05A310 +/* 08ED90 7F05A260 AFA5001C */ sw $a1, 0x1c($sp) +/* 08ED94 7F05A264 0FC169DD */ jal matrix_4x4_determinant +/* 08ED98 7F05A268 8FA40018 */ lw $a0, 0x18($sp) +/* 08ED9C 7F05A26C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08EDA0 7F05A270 44812000 */ mtc1 $at, $f4 +/* 08EDA4 7F05A274 00001825 */ move $v1, $zero +/* 08EDA8 7F05A278 8FA2001C */ lw $v0, 0x1c($sp) +/* 08EDAC 7F05A27C 24040004 */ li $a0, 4 +/* 08EDB0 7F05A280 46002083 */ div.s $f2, $f4, $f0 +/* 08EDB4 7F05A284 C4480000 */ lwc1 $f8, ($v0) +/* 08EDB8 7F05A288 24630001 */ addiu $v1, $v1, 1 +/* 08EDBC 7F05A28C C44E0004 */ lwc1 $f14, 4($v0) +/* 08EDC0 7F05A290 46024402 */ mul.s $f16, $f8, $f2 +/* 08EDC4 7F05A294 C44C0008 */ lwc1 $f12, 8($v0) +/* 08EDC8 7F05A298 10640010 */ beq $v1, $a0, .L7F05A2DC +/* 08EDCC 7F05A29C C452000C */ lwc1 $f18, 0xc($v0) +.L7F05A2A0: +/* 08EDD0 7F05A2A0 46027282 */ mul.s $f10, $f14, $f2 +/* 08EDD4 7F05A2A4 C4480010 */ lwc1 $f8, 0x10($v0) +/* 08EDD8 7F05A2A8 C44E0014 */ lwc1 $f14, 0x14($v0) +/* 08EDDC 7F05A2AC 46026182 */ mul.s $f6, $f12, $f2 +/* 08EDE0 7F05A2B0 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 08EDE4 7F05A2B4 24630001 */ addiu $v1, $v1, 1 +/* 08EDE8 7F05A2B8 46029102 */ mul.s $f4, $f18, $f2 +/* 08EDEC 7F05A2BC C452001C */ lwc1 $f18, 0x1c($v0) +/* 08EDF0 7F05A2C0 E4500000 */ swc1 $f16, ($v0) +/* 08EDF4 7F05A2C4 46024402 */ mul.s $f16, $f8, $f2 +/* 08EDF8 7F05A2C8 E44A0004 */ swc1 $f10, 4($v0) +/* 08EDFC 7F05A2CC E4460008 */ swc1 $f6, 8($v0) +/* 08EE00 7F05A2D0 24420010 */ addiu $v0, $v0, 0x10 +/* 08EE04 7F05A2D4 1464FFF2 */ bne $v1, $a0, .L7F05A2A0 +/* 08EE08 7F05A2D8 E444FFFC */ swc1 $f4, -4($v0) +.L7F05A2DC: +/* 08EE0C 7F05A2DC 46027282 */ mul.s $f10, $f14, $f2 +/* 08EE10 7F05A2E0 24420010 */ addiu $v0, $v0, 0x10 +/* 08EE14 7F05A2E4 E450FFF0 */ swc1 $f16, -0x10($v0) +/* 08EE18 7F05A2E8 46026182 */ mul.s $f6, $f12, $f2 +/* 08EE1C 7F05A2EC 00000000 */ nop +/* 08EE20 7F05A2F0 46029102 */ mul.s $f4, $f18, $f2 +/* 08EE24 7F05A2F4 E44AFFF4 */ swc1 $f10, -0xc($v0) +/* 08EE28 7F05A2F8 E446FFF8 */ swc1 $f6, -8($v0) +/* 08EE2C 7F05A2FC E444FFFC */ swc1 $f4, -4($v0) +/* 08EE30 7F05A300 8FBF0014 */ lw $ra, 0x14($sp) +/* 08EE34 7F05A304 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08EE38 7F05A308 03E00008 */ jr $ra +/* 08EE3C 7F05A30C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05A310(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05A310 +/* 08EE40 7F05A310 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 08EE44 7F05A314 AFBF0064 */ sw $ra, 0x64($sp) +/* 08EE48 7F05A318 AFB00060 */ sw $s0, 0x60($sp) +/* 08EE4C 7F05A31C F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 08EE50 7F05A320 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 08EE54 7F05A324 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 08EE58 7F05A328 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 08EE5C 7F05A32C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 08EE60 7F05A330 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 08EE64 7F05A334 C4840008 */ lwc1 $f4, 8($a0) +/* 08EE68 7F05A338 C49E0004 */ lwc1 $f30, 4($a0) +/* 08EE6C 7F05A33C C49C0000 */ lwc1 $f28, ($a0) +/* 08EE70 7F05A340 E7A40084 */ swc1 $f4, 0x84($sp) +/* 08EE74 7F05A344 C486000C */ lwc1 $f6, 0xc($a0) +/* 08EE78 7F05A348 00A08025 */ move $s0, $a1 +/* 08EE7C 7F05A34C E7A60074 */ swc1 $f6, 0x74($sp) +/* 08EE80 7F05A350 C4880010 */ lwc1 $f8, 0x10($a0) +/* 08EE84 7F05A354 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 08EE88 7F05A358 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 08EE8C 7F05A35C C48C0014 */ lwc1 $f12, 0x14($a0) +/* 08EE90 7F05A360 C482001C */ lwc1 $f2, 0x1c($a0) +/* 08EE94 7F05A364 C4800018 */ lwc1 $f0, 0x18($a0) +/* 08EE98 7F05A368 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 08EE9C 7F05A36C C4960034 */ lwc1 $f22, 0x34($a0) +/* 08EEA0 7F05A370 C48E0024 */ lwc1 $f14, 0x24($a0) +/* 08EEA4 7F05A374 C492002C */ lwc1 $f18, 0x2c($a0) +/* 08EEA8 7F05A378 C4900028 */ lwc1 $f16, 0x28($a0) +/* 08EEAC 7F05A37C C49A003C */ lwc1 $f26, 0x3c($a0) +/* 08EEB0 7F05A380 C4980038 */ lwc1 $f24, 0x38($a0) +/* 08EEB4 7F05A384 C4940030 */ lwc1 $f20, 0x30($a0) +/* 08EEB8 7F05A388 44070000 */ mfc1 $a3, $f0 +/* 08EEBC 7F05A38C 4406B000 */ mfc1 $a2, $f22 +/* 08EEC0 7F05A390 E7AC0090 */ swc1 $f12, 0x90($sp) +/* 08EEC4 7F05A394 E7A20070 */ swc1 $f2, 0x70($sp) +/* 08EEC8 7F05A398 E7A20018 */ swc1 $f2, 0x18($sp) +/* 08EECC 7F05A39C E7A00080 */ swc1 $f0, 0x80($sp) +/* 08EED0 7F05A3A0 E7AE008C */ swc1 $f14, 0x8c($sp) +/* 08EED4 7F05A3A4 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 08EED8 7F05A3A8 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 08EEDC 7F05A3AC E7B0007C */ swc1 $f16, 0x7c($sp) +/* 08EEE0 7F05A3B0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 08EEE4 7F05A3B4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EEE8 7F05A3B8 0FC16A4A */ jal matrix_3x3_determinant +/* 08EEEC 7F05A3BC E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EEF0 7F05A3C0 E6000000 */ swc1 $f0, ($s0) +/* 08EEF4 7F05A3C4 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08EEF8 7F05A3C8 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08EEFC 7F05A3CC C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08EF00 7F05A3D0 4406A000 */ mfc1 $a2, $f20 +/* 08EF04 7F05A3D4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EF08 7F05A3D8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EF0C 7F05A3DC 8FA70080 */ lw $a3, 0x80($sp) +/* 08EF10 7F05A3E0 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF14 7F05A3E4 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF18 7F05A3E8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08EF1C 7F05A3EC E7A60018 */ swc1 $f6, 0x18($sp) +/* 08EF20 7F05A3F0 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF24 7F05A3F4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08EF28 7F05A3F8 46000287 */ neg.s $f10, $f0 +/* 08EF2C 7F05A3FC 4406A000 */ mfc1 $a2, $f20 +/* 08EF30 7F05A400 E60A0010 */ swc1 $f10, 0x10($s0) +/* 08EF34 7F05A404 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08EF38 7F05A408 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08EF3C 7F05A40C C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 08EF40 7F05A410 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EF44 7F05A414 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08EF48 7F05A418 8FA70090 */ lw $a3, 0x90($sp) +/* 08EF4C 7F05A41C C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF50 7F05A420 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF54 7F05A424 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08EF58 7F05A428 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08EF5C 7F05A42C 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF60 7F05A430 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08EF64 7F05A434 E6000020 */ swc1 $f0, 0x20($s0) +/* 08EF68 7F05A438 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 08EF6C 7F05A43C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 08EF70 7F05A440 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 08EF74 7F05A444 4406A000 */ mfc1 $a2, $f20 +/* 08EF78 7F05A448 E7B80020 */ swc1 $f24, 0x20($sp) +/* 08EF7C 7F05A44C E7B60014 */ swc1 $f22, 0x14($sp) +/* 08EF80 7F05A450 8FA70090 */ lw $a3, 0x90($sp) +/* 08EF84 7F05A454 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF88 7F05A458 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF8C 7F05A45C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08EF90 7F05A460 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08EF94 7F05A464 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF98 7F05A468 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08EF9C 7F05A46C 46000207 */ neg.s $f8, $f0 +/* 08EFA0 7F05A470 4406B000 */ mfc1 $a2, $f22 +/* 08EFA4 7F05A474 E6080030 */ swc1 $f8, 0x30($s0) +/* 08EFA8 7F05A478 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08EFAC 7F05A47C C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08EFB0 7F05A480 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 08EFB4 7F05A484 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EFB8 7F05A488 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EFBC 7F05A48C 8FA70084 */ lw $a3, 0x84($sp) +/* 08EFC0 7F05A490 C7AE008C */ lwc1 $f14, 0x8c($sp) +/* 08EFC4 7F05A494 4600F306 */ mov.s $f12, $f30 +/* 08EFC8 7F05A498 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08EFCC 7F05A49C E7A40018 */ swc1 $f4, 0x18($sp) +/* 08EFD0 7F05A4A0 0FC16A4A */ jal matrix_3x3_determinant +/* 08EFD4 7F05A4A4 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08EFD8 7F05A4A8 46000207 */ neg.s $f8, $f0 +/* 08EFDC 7F05A4AC 4406A000 */ mfc1 $a2, $f20 +/* 08EFE0 7F05A4B0 E6080004 */ swc1 $f8, 4($s0) +/* 08EFE4 7F05A4B4 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08EFE8 7F05A4B8 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08EFEC 7F05A4BC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 08EFF0 7F05A4C0 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EFF4 7F05A4C4 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EFF8 7F05A4C8 8FA70084 */ lw $a3, 0x84($sp) +/* 08EFFC 7F05A4CC C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F000 7F05A4D0 4600E306 */ mov.s $f12, $f28 +/* 08F004 7F05A4D4 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F008 7F05A4D8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F00C 7F05A4DC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F010 7F05A4E0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F014 7F05A4E4 E6000014 */ swc1 $f0, 0x14($s0) +/* 08F018 7F05A4E8 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 08F01C 7F05A4EC C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 08F020 7F05A4F0 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 08F024 7F05A4F4 4406A000 */ mfc1 $a2, $f20 +/* 08F028 7F05A4F8 4407F000 */ mfc1 $a3, $f30 +/* 08F02C 7F05A4FC E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F030 7F05A500 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F034 7F05A504 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F038 7F05A508 4600E306 */ mov.s $f12, $f28 +/* 08F03C 7F05A50C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F040 7F05A510 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F044 7F05A514 0FC16A4A */ jal matrix_3x3_determinant +/* 08F048 7F05A518 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F04C 7F05A51C 46000187 */ neg.s $f6, $f0 +/* 08F050 7F05A520 4406A000 */ mfc1 $a2, $f20 +/* 08F054 7F05A524 E6060024 */ swc1 $f6, 0x24($s0) +/* 08F058 7F05A528 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F05C 7F05A52C C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 08F060 7F05A530 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 08F064 7F05A534 4407F000 */ mfc1 $a3, $f30 +/* 08F068 7F05A538 E7B80020 */ swc1 $f24, 0x20($sp) +/* 08F06C 7F05A53C E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F070 7F05A540 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F074 7F05A544 4600E306 */ mov.s $f12, $f28 +/* 08F078 7F05A548 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F07C 7F05A54C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F080 7F05A550 0FC16A4A */ jal matrix_3x3_determinant +/* 08F084 7F05A554 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F088 7F05A558 E6000034 */ swc1 $f0, 0x34($s0) +/* 08F08C 7F05A55C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 08F090 7F05A560 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 08F094 7F05A564 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F098 7F05A568 4406B000 */ mfc1 $a2, $f22 +/* 08F09C 7F05A56C E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F0A0 7F05A570 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08F0A4 7F05A574 8FA70084 */ lw $a3, 0x84($sp) +/* 08F0A8 7F05A578 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 08F0AC 7F05A57C 4600F306 */ mov.s $f12, $f30 +/* 08F0B0 7F05A580 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F0B4 7F05A584 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F0B8 7F05A588 0FC16A4A */ jal matrix_3x3_determinant +/* 08F0BC 7F05A58C E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F0C0 7F05A590 E6000008 */ swc1 $f0, 8($s0) +/* 08F0C4 7F05A594 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F0C8 7F05A598 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F0CC 7F05A59C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 08F0D0 7F05A5A0 4406A000 */ mfc1 $a2, $f20 +/* 08F0D4 7F05A5A4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F0D8 7F05A5A8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08F0DC 7F05A5AC 8FA70084 */ lw $a3, 0x84($sp) +/* 08F0E0 7F05A5B0 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F0E4 7F05A5B4 4600E306 */ mov.s $f12, $f28 +/* 08F0E8 7F05A5B8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F0EC 7F05A5BC E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F0F0 7F05A5C0 0FC16A4A */ jal matrix_3x3_determinant +/* 08F0F4 7F05A5C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F0F8 7F05A5C8 46000287 */ neg.s $f10, $f0 +/* 08F0FC 7F05A5CC 4406A000 */ mfc1 $a2, $f20 +/* 08F100 7F05A5D0 E60A0018 */ swc1 $f10, 0x18($s0) +/* 08F104 7F05A5D4 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F108 7F05A5D8 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F10C 7F05A5DC C7A40090 */ lwc1 $f4, 0x90($sp) +/* 08F110 7F05A5E0 4407F000 */ mfc1 $a3, $f30 +/* 08F114 7F05A5E4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F118 7F05A5E8 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F11C 7F05A5EC C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F120 7F05A5F0 4600E306 */ mov.s $f12, $f28 +/* 08F124 7F05A5F4 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F128 7F05A5F8 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F12C 7F05A5FC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F130 7F05A600 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F134 7F05A604 E6000028 */ swc1 $f0, 0x28($s0) +/* 08F138 7F05A608 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F13C 7F05A60C C7A40084 */ lwc1 $f4, 0x84($sp) +/* 08F140 7F05A610 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 08F144 7F05A614 4406A000 */ mfc1 $a2, $f20 +/* 08F148 7F05A618 4407F000 */ mfc1 $a3, $f30 +/* 08F14C 7F05A61C E7B80020 */ swc1 $f24, 0x20($sp) +/* 08F150 7F05A620 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F154 7F05A624 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F158 7F05A628 4600E306 */ mov.s $f12, $f28 +/* 08F15C 7F05A62C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F160 7F05A630 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F164 7F05A634 0FC16A4A */ jal matrix_3x3_determinant +/* 08F168 7F05A638 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F16C 7F05A63C 46000207 */ neg.s $f8, $f0 +/* 08F170 7F05A640 4600F306 */ mov.s $f12, $f30 +/* 08F174 7F05A644 E6080038 */ swc1 $f8, 0x38($s0) +/* 08F178 7F05A648 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 08F17C 7F05A64C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F180 7F05A650 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F184 7F05A654 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F188 7F05A658 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 08F18C 7F05A65C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F190 7F05A660 8FA70084 */ lw $a3, 0x84($sp) +/* 08F194 7F05A664 8FA6008C */ lw $a2, 0x8c($sp) +/* 08F198 7F05A668 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 08F19C 7F05A66C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F1A0 7F05A670 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F1A4 7F05A674 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08F1A8 7F05A678 0FC16A4A */ jal matrix_3x3_determinant +/* 08F1AC 7F05A67C E7A40014 */ swc1 $f4, 0x14($sp) +/* 08F1B0 7F05A680 46000107 */ neg.s $f4, $f0 +/* 08F1B4 7F05A684 4600E306 */ mov.s $f12, $f28 +/* 08F1B8 7F05A688 E604000C */ swc1 $f4, 0xc($s0) +/* 08F1BC 7F05A68C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F1C0 7F05A690 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 08F1C4 7F05A694 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 08F1C8 7F05A698 E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F1CC 7F05A69C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08F1D0 7F05A6A0 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 08F1D4 7F05A6A4 8FA70084 */ lw $a3, 0x84($sp) +/* 08F1D8 7F05A6A8 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F1DC 7F05A6AC C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F1E0 7F05A6B0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F1E4 7F05A6B4 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F1E8 7F05A6B8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 08F1EC 7F05A6BC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F1F0 7F05A6C0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F1F4 7F05A6C4 E600001C */ swc1 $f0, 0x1c($s0) +/* 08F1F8 7F05A6C8 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 08F1FC 7F05A6CC C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08F200 7F05A6D0 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08F204 7F05A6D4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F208 7F05A6D8 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08F20C 7F05A6DC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 08F210 7F05A6E0 4407F000 */ mfc1 $a3, $f30 +/* 08F214 7F05A6E4 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F218 7F05A6E8 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F21C 7F05A6EC 4600E306 */ mov.s $f12, $f28 +/* 08F220 7F05A6F0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F224 7F05A6F4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F228 7F05A6F8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08F22C 7F05A6FC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F230 7F05A700 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 08F234 7F05A704 46000287 */ neg.s $f10, $f0 +/* 08F238 7F05A708 4407F000 */ mfc1 $a3, $f30 +/* 08F23C 7F05A70C E60A002C */ swc1 $f10, 0x2c($s0) +/* 08F240 7F05A710 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 08F244 7F05A714 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 08F248 7F05A718 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 08F24C 7F05A71C E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F250 7F05A720 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F254 7F05A724 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 08F258 7F05A728 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F25C 7F05A72C C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F260 7F05A730 4600E306 */ mov.s $f12, $f28 +/* 08F264 7F05A734 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F268 7F05A738 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F26C 7F05A73C E7A40020 */ swc1 $f4, 0x20($sp) +/* 08F270 7F05A740 0FC16A4A */ jal matrix_3x3_determinant +/* 08F274 7F05A744 E7A60014 */ swc1 $f6, 0x14($sp) +/* 08F278 7F05A748 E600003C */ swc1 $f0, 0x3c($s0) +/* 08F27C 7F05A74C 8FBF0064 */ lw $ra, 0x64($sp) +/* 08F280 7F05A750 8FB00060 */ lw $s0, 0x60($sp) +/* 08F284 7F05A754 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 08F288 7F05A758 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 08F28C 7F05A75C D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 08F290 7F05A760 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 08F294 7F05A764 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 08F298 7F05A768 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 08F29C 7F05A76C 03E00008 */ jr $ra +/* 08F2A0 7F05A770 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + +f32 matrix_3x3_determinant(f32 m11, f32 m21, f32 m31, f32 m12, f32 m22, f32 m32, f32 m13, f32 m23, f32 m33); + + #ifdef NONMATCHING + // Stack pointer mostly +f32 matrix_4x4_determinant(mat44 matrix) { + f32 det; + f32 a = matrix[0][0]; + f32 b = matrix[0][1]; + f32 c = matrix[0][2]; + f32 d = matrix[0][3]; + f32 e = matrix[1][0]; + f32 f = matrix[1][1]; + f32 g = matrix[1][2]; + f32 h = matrix[1][3]; + f32 i = matrix[2][0]; + f32 j = matrix[2][1]; + f32 k = matrix[2][2]; + f32 l = matrix[2][3]; + f32 m = matrix[3][0]; + f32 n = matrix[3][1]; + f32 o = matrix[3][2]; + f32 p = matrix[3][3]; + det = (a * matrix_3x3_determinant(f, j, n, g, k, o, h, l, p)) - (b * matrix_3x3_determinant(e, i, m, g, k, o, h, l, p)) + (c * matrix_3x3_determinant(e, i, m, f, j, n, h, l, p)) - (d * matrix_3x3_determinant(e, i, m, f, j, n, g, k, o)); + return det; +} +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_determinant +/* 08F2A4 7F05A774 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08F2A8 7F05A778 AFBF002C */ sw $ra, 0x2c($sp) +/* 08F2AC 7F05A77C C4840000 */ lwc1 $f4, ($a0) +/* 08F2B0 7F05A780 E7A40078 */ swc1 $f4, 0x78($sp) +/* 08F2B4 7F05A784 C4860004 */ lwc1 $f6, 4($a0) +/* 08F2B8 7F05A788 E7A60068 */ swc1 $f6, 0x68($sp) +/* 08F2BC 7F05A78C C4880008 */ lwc1 $f8, 8($a0) +/* 08F2C0 7F05A790 E7A80058 */ swc1 $f8, 0x58($sp) +/* 08F2C4 7F05A794 C48A000C */ lwc1 $f10, 0xc($a0) +/* 08F2C8 7F05A798 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 08F2CC 7F05A79C C4840018 */ lwc1 $f4, 0x18($a0) +/* 08F2D0 7F05A7A0 C4800014 */ lwc1 $f0, 0x14($a0) +/* 08F2D4 7F05A7A4 C48C0010 */ lwc1 $f12, 0x10($a0) +/* 08F2D8 7F05A7A8 E7A40054 */ swc1 $f4, 0x54($sp) +/* 08F2DC 7F05A7AC C4860028 */ lwc1 $f6, 0x28($a0) +/* 08F2E0 7F05A7B0 C482001C */ lwc1 $f2, 0x1c($a0) +/* 08F2E4 7F05A7B4 C4900024 */ lwc1 $f16, 0x24($a0) +/* 08F2E8 7F05A7B8 C48E0020 */ lwc1 $f14, 0x20($a0) +/* 08F2EC 7F05A7BC E7A60050 */ swc1 $f6, 0x50($sp) +/* 08F2F0 7F05A7C0 C4880030 */ lwc1 $f8, 0x30($a0) +/* 08F2F4 7F05A7C4 C492002C */ lwc1 $f18, 0x2c($a0) +/* 08F2F8 7F05A7C8 44070000 */ mfc1 $a3, $f0 +/* 08F2FC 7F05A7CC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 08F300 7F05A7D0 C48A0034 */ lwc1 $f10, 0x34($a0) +/* 08F304 7F05A7D4 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F308 7F05A7D8 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 08F30C 7F05A7DC C4840038 */ lwc1 $f4, 0x38($a0) +/* 08F310 7F05A7E0 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 08F314 7F05A7E4 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 08F318 7F05A7E8 C486003C */ lwc1 $f6, 0x3c($a0) +/* 08F31C 7F05A7EC E7A00064 */ swc1 $f0, 0x64($sp) +/* 08F320 7F05A7F0 E7AC0074 */ swc1 $f12, 0x74($sp) +/* 08F324 7F05A7F4 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 08F328 7F05A7F8 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 08F32C 7F05A7FC E7A20044 */ swc1 $f2, 0x44($sp) +/* 08F330 7F05A800 E7A20018 */ swc1 $f2, 0x18($sp) +/* 08F334 7F05A804 E7B00060 */ swc1 $f16, 0x60($sp) +/* 08F338 7F05A808 E7B00010 */ swc1 $f16, 0x10($sp) +/* 08F33C 7F05A80C E7AE0070 */ swc1 $f14, 0x70($sp) +/* 08F340 7F05A810 E7B20040 */ swc1 $f18, 0x40($sp) +/* 08F344 7F05A814 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 08F348 7F05A818 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F34C 7F05A81C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F350 7F05A820 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08F354 7F05A824 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08F358 7F05A828 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08F35C 7F05A82C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 08F360 7F05A830 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F364 7F05A834 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 08F368 7F05A838 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 08F36C 7F05A83C E7A00030 */ swc1 $f0, 0x30($sp) +/* 08F370 7F05A840 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 08F374 7F05A844 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 08F378 7F05A848 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F37C 7F05A84C 8FA70054 */ lw $a3, 0x54($sp) +/* 08F380 7F05A850 E7A60014 */ swc1 $f6, 0x14($sp) +/* 08F384 7F05A854 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F388 7F05A858 E7A40020 */ swc1 $f4, 0x20($sp) +/* 08F38C 7F05A85C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F390 7F05A860 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F394 7F05A864 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 08F398 7F05A868 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08F39C 7F05A86C C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 08F3A0 7F05A870 E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F3A4 7F05A874 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 08F3A8 7F05A878 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 08F3AC 7F05A87C E7A00034 */ swc1 $f0, 0x34($sp) +/* 08F3B0 7F05A880 C7AC0064 */ lwc1 $f12, 0x64($sp) +/* 08F3B4 7F05A884 C7AE0060 */ lwc1 $f14, 0x60($sp) +/* 08F3B8 7F05A888 8FA6005C */ lw $a2, 0x5c($sp) +/* 08F3BC 7F05A88C 8FA70054 */ lw $a3, 0x54($sp) +/* 08F3C0 7F05A890 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F3C4 7F05A894 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F3C8 7F05A898 E7A60020 */ swc1 $f6, 0x20($sp) +/* 08F3CC 7F05A89C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F3D0 7F05A8A0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F3D4 7F05A8A4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 08F3D8 7F05A8A8 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 08F3DC 7F05A8AC C7A40054 */ lwc1 $f4, 0x54($sp) +/* 08F3E0 7F05A8B0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F3E4 7F05A8B4 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08F3E8 7F05A8B8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 08F3EC 7F05A8BC E7A00038 */ swc1 $f0, 0x38($sp) +/* 08F3F0 7F05A8C0 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 08F3F4 7F05A8C4 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 08F3F8 7F05A8C8 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F3FC 7F05A8CC 8FA70064 */ lw $a3, 0x64($sp) +/* 08F400 7F05A8D0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 08F404 7F05A8D4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F408 7F05A8D8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08F40C 7F05A8DC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F410 7F05A8E0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F414 7F05A8E4 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 08F418 7F05A8E8 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 08F41C 7F05A8EC C7A80068 */ lwc1 $f8, 0x68($sp) +/* 08F420 7F05A8F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 08F424 7F05A8F4 46045182 */ mul.s $f6, $f10, $f4 +/* 08F428 7F05A8F8 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 08F42C 7F05A8FC 460A4102 */ mul.s $f4, $f8, $f10 +/* 08F430 7F05A900 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 08F434 7F05A904 46043201 */ sub.s $f8, $f6, $f4 +/* 08F438 7F05A908 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 08F43C 7F05A90C 46065102 */ mul.s $f4, $f10, $f6 +/* 08F440 7F05A910 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 08F444 7F05A914 27BD0080 */ addiu $sp, $sp, 0x80 +/* 08F448 7F05A918 46044280 */ add.s $f10, $f8, $f4 +/* 08F44C 7F05A91C 46060202 */ mul.s $f8, $f0, $f6 +/* 08F450 7F05A920 03E00008 */ jr $ra +/* 08F454 7F05A924 46085001 */ sub.s $f0, $f10, $f8 +) +#endif + + +f32 matrix_2x2_determinant(f32 a, f32 c, f32 b, f32 d); + +f32 matrix_3x3_determinant(f32 a, f32 d, f32 g, f32 b, f32 e, f32 h, f32 c, f32 f, f32 i) { + f32 determinant = (a * matrix_2x2_determinant(e, h, f, i)) - (b * matrix_2x2_determinant(d, g, f, i)) + (c * matrix_2x2_determinant(d, g, e, h)); + return determinant; +} + +f32 matrix_2x2_determinant(f32 a, f32 c, f32 b, f32 d) { + return (a * d) - (c * b); +} \ No newline at end of file diff --git a/src/game/mp_music.c b/src/game/mp_music.c new file mode 100644 index 0000000..8c07481 --- /dev/null +++ b/src/game/mp_music.c @@ -0,0 +1,1390 @@ +#include "ultra64.h" +//#include "" + +// bss +//CODE.bss:8008C600 +s32 dword_CODE_bss_8008C600; +//CODE.bss:8008C604 +s32 dword_CODE_bss_8008C604; +//CODE.bss:8008C608 +s32 music_slot_active_0; +//CODE.bss:8008C60C +s32 music_slot_active_1; +//CODE.bss:8008C610 +s32 music_slot_active_2; +//CODE.bss:8008C614 +s32 music_slot_active_3; +//CODE.bss:8008C618 +s32 music_slot_minutes_0; +//CODE.bss:8008C61C +s32 music_slot_minutes_1; +//CODE.bss:8008C620 +s32 music_slot_minutes_2; +//CODE.bss:8008C624 +s32 music_slot_minutes_3; +//CODE.bss:8008C628 +s32 music_slot_seconds_0; +//CODE.bss:8008C62C +s32 music_slot_seconds_1; +//CODE.bss:8008C630 +s32 music_slot_seconds_2; +//CODE.bss:8008C634 +s32 music_slot_seconds_3; + + +// data +//D:800484C0 +s32 mission_state = 0; + + + + + +void sub_GAME_7F0C0C10(void) { + call_sfx_c_700091C8(); +} + +s32 get_mission_state(void) { + return mission_state; +} + + + + + + +#ifdef NONMATCHING +void set_missionstate(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:8005B790*/ +glabel jpt_8005B790 +.word .L7F0C0C74 +.word .L7F0C0D28 +.word .L7F0C0E18 +.word .L7F0C0EB0 +.word .L7F0C0FE8 +.word .L7F0C10B4 +.word .L7F0C115C + +/*D:8005B7AC*/ +glabel jpt_8005B7AC +.word .L7F0C11EC +.word .L7F0C0C94 +.word .L7F0C0D28 +.word .L7F0C0D28 +.word .L7F0C0CC8 +.word .L7F0C0D28 +.word .L7F0C0D28 + +/*D:8005B7C8*/ +glabel jpt_8005B7C8 +.word .L7F0C0D48 +.word .L7F0C0E18 +.word .L7F0C0D68 +.word .L7F0C0DAC +.word .L7F0C0E18 +.word .L7F0C0E18 +.word .L7F0C0DE4 + +glabel music_rate_8005B7E4 +.word 0x3ca3d70a /*0.02*/ + +/*D:8005B7E8*/ +glabel jpt_8005B7E8 +.word .L7F0C0E38 +.word .L7F0C0E58 +.word .L7F0C11EC +.word .L7F0C0E88 +.word .L7F0C0EB0 +.word .L7F0C0EB0 +.word .L7F0C0EB0 + +/*D:8005B804*/ +glabel jpt_8005B804 +.word .L7F0C0ED0 +.word .L7F0C0EF0 +.word .L7F0C0F20 +.word .L7F0C0FE8 +.word .L7F0C0F54 +.word .L7F0C0F9C +.word .L7F0C0FE8 + +/*D:8005B820*/ +glabel jpt_8005B820 +.word .L7F0C1008 +.word .L7F0C10B4 +.word .L7F0C10B4 +.word .L7F0C1028 +.word .L7F0C10B4 +.word .L7F0C1070 +.word .L7F0C10B4 + +/*D:8005B83C*/ +glabel jpt_8005B83C +.word .L7F0C10D4 +.word .L7F0C115C +.word .L7F0C115C +.word .L7F0C10F4 +.word .L7F0C112C +.word .L7F0C115C +.word .L7F0C115C + +/*D:8005B858*/ +glabel jpt_8005B858 +.word .L7F0C117C +.word .L7F0C119C +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11CC + + +.text +glabel set_missionstate +/* 0F576C set_missionstate 3C038005 */ lui $v1, %hi(mission_state) +/* 0F5770 7F0C0C40 246384C0 */ addiu $v1, %lo(mission_state) # addiu $v1, $v1, -0x7b40 +/* 0F5774 7F0C0C44 8C620000 */ lw $v0, ($v1) +/* 0F5778 7F0C0C48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F577C 7F0C0C4C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5780 7F0C0C50 2C410007 */ sltiu $at, $v0, 7 +/* 0F5784 7F0C0C54 10200163 */ beqz $at, .L7F0C11E4 +/* 0F5788 7F0C0C58 AC640000 */ sw $a0, ($v1) +/* 0F578C 7F0C0C5C 00027080 */ sll $t6, $v0, 2 +/* 0F5790 7F0C0C60 3C018006 */ lui $at, %hi(jpt_8005B790) +/* 0F5794 7F0C0C64 002E0821 */ addu $at, $at, $t6 +/* 0F5798 7F0C0C68 8C2EB790 */ lw $t6, %lo(jpt_8005B790)($at) +/* 0F579C 7F0C0C6C 01C00008 */ jr $t6 +/* 0F57A0 7F0C0C70 00000000 */ nop +.L7F0C0C74: +/* 0F57A4 7F0C0C74 2C810007 */ sltiu $at, $a0, 7 +/* 0F57A8 7F0C0C78 1020002B */ beqz $at, .L7F0C0D28 +/* 0F57AC 7F0C0C7C 00047880 */ sll $t7, $a0, 2 +/* 0F57B0 7F0C0C80 3C018006 */ lui $at, %hi(jpt_8005B7AC) +/* 0F57B4 7F0C0C84 002F0821 */ addu $at, $at, $t7 +/* 0F57B8 7F0C0C88 8C2FB7AC */ lw $t7, %lo(jpt_8005B7AC)($at) +/* 0F57BC 7F0C0C8C 01E00008 */ jr $t7 +/* 0F57C0 7F0C0C90 00000000 */ nop +.L7F0C0C94: +/* 0F57C4 7F0C0C94 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57C8 7F0C0C98 00000000 */ nop +/* 0F57CC 7F0C0C9C 0C001C0F */ jal musicTrack1Vol +/* 0F57D0 7F0C0CA0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(music1_playing) +/* 0F57D8 7F0C0CA8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F57E0 7F0C0CB0 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F57E4 7F0C0CB4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F57E8 7F0C0CB8 0C001B9F */ jal musicTrack1Play +/* 0F57EC 7F0C0CBC 00402025 */ move $a0, $v0 +/* 0F57F0 7F0C0CC0 1000014B */ b .L7F0C11F0 +/* 0F57F4 7F0C0CC4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0CC8: +/* 0F57F8 7F0C0CC8 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57FC 7F0C0CCC 00000000 */ nop +/* 0F5800 7F0C0CD0 0C001C0F */ jal musicTrack1Vol +/* 0F5804 7F0C0CD4 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(music1_playing) +/* 0F580C 7F0C0CDC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F5814 7F0C0CE4 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F5818 7F0C0CE8 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F581C 7F0C0CEC 0C001B9F */ jal musicTrack1Play +/* 0F5820 7F0C0CF0 00402025 */ move $a0, $v0 +/* 0F5824 7F0C0CF4 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5828 7F0C0CF8 00000000 */ nop +/* 0F582C 7F0C0CFC 0C001DD3 */ jal musicTrack3Vol +/* 0F5830 7F0C0D00 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5834 7F0C0D04 3C018002 */ lui $at, %hi(music3_playing) +/* 0F5838 7F0C0D08 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F583C 7F0C0D0C AC204354 */ sw $zero, %lo(music3_playing)($at) +/* 0F5840 7F0C0D10 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F5844 7F0C0D14 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5848 7F0C0D18 0C001D63 */ jal music_related_3rd_block +/* 0F584C 7F0C0D1C 00402025 */ move $a0, $v0 +/* 0F5850 7F0C0D20 10000133 */ b .L7F0C11F0 +/* 0F5854 7F0C0D24 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D28: +/* 0F5858 7F0C0D28 2C810007 */ sltiu $at, $a0, 7 +/* 0F585C 7F0C0D2C 1020003A */ beqz $at, .L7F0C0E18 +/* 0F5860 7F0C0D30 0004C080 */ sll $t8, $a0, 2 +/* 0F5864 7F0C0D34 3C018006 */ lui $at, %hi(jpt_8005B7C8) +/* 0F5868 7F0C0D38 00380821 */ addu $at, $at, $t8 +/* 0F586C 7F0C0D3C 8C38B7C8 */ lw $t8, %lo(jpt_8005B7C8)($at) +/* 0F5870 7F0C0D40 03000008 */ jr $t8 +/* 0F5874 7F0C0D44 00000000 */ nop +.L7F0C0D48: +/* 0F5878 7F0C0D48 0C001BF4 */ jal musicTrack1Stop +/* 0F587C 7F0C0D4C 00000000 */ nop +/* 0F5880 7F0C0D50 0C001CD6 */ jal musicTrack2Stop +/* 0F5884 7F0C0D54 00000000 */ nop +/* 0F5888 7F0C0D58 0C001DB8 */ jal musicTrack3Stop +/* 0F588C 7F0C0D5C 00000000 */ nop +/* 0F5890 7F0C0D60 10000123 */ b .L7F0C11F0 +/* 0F5894 7F0C0D64 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D68: +/* 0F5898 7F0C0D68 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F589C 7F0C0D6C 00000000 */ nop +/* 0F58A0 7F0C0D70 0C001CF1 */ jal musicTrack2Vol +/* 0F58A4 7F0C0D74 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58A8 7F0C0D78 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58AC 7F0C0D7C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F58B0 7F0C0D80 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58B4 7F0C0D84 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F58B8 7F0C0D88 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F58BC 7F0C0D8C 0C001C81 */ jal musicTrack2Play +/* 0F58C0 7F0C0D90 00402025 */ move $a0, $v0 +/* 0F58C4 7F0C0D94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F58C8 7F0C0D98 44816000 */ mtc1 $at, $f12 +/* 0F58CC 7F0C0D9C 0C001C3E */ jal music_related_1 +/* 0F58D0 7F0C0DA0 00000000 */ nop +/* 0F58D4 7F0C0DA4 10000112 */ b .L7F0C11F0 +/* 0F58D8 7F0C0DA8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DAC: +/* 0F58DC 7F0C0DAC 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F58E0 7F0C0DB0 00000000 */ nop +/* 0F58E4 7F0C0DB4 0C001CF1 */ jal musicTrack2Vol +/* 0F58E8 7F0C0DB8 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58EC 7F0C0DBC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58F0 7F0C0DC0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58F4 7F0C0DC4 0C001C81 */ jal musicTrack2Play +/* 0F58F8 7F0C0DC8 24040018 */ li $a0, 24 +/* 0F58FC 7F0C0DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5900 7F0C0DD0 44816000 */ mtc1 $at, $f12 +/* 0F5904 7F0C0DD4 0C001C3E */ jal music_related_1 +/* 0F5908 7F0C0DD8 00000000 */ nop +/* 0F590C 7F0C0DDC 10000104 */ b .L7F0C11F0 +/* 0F5910 7F0C0DE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DE4: +/* 0F5914 7F0C0DE4 3C018006 */ lui $at, %hi(music_rate_8005B7E4) +/* 0F5918 7F0C0DE8 0C001C3E */ jal music_related_1 +/* 0F591C 7F0C0DEC C42CB7E4 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) +/* 0F5920 7F0C0DF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5924 7F0C0DF4 00000000 */ nop +/* 0F5928 7F0C0DF8 0C001CF1 */ jal musicTrack2Vol +/* 0F592C 7F0C0DFC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5930 7F0C0E00 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5934 7F0C0E04 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5938 7F0C0E08 0C001C81 */ jal musicTrack2Play +/* 0F593C 7F0C0E0C 2404003A */ li $a0, 58 +/* 0F5940 7F0C0E10 100000F7 */ b .L7F0C11F0 +/* 0F5944 7F0C0E14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E18: +/* 0F5948 7F0C0E18 2C810007 */ sltiu $at, $a0, 7 +/* 0F594C 7F0C0E1C 10200024 */ beqz $at, .L7F0C0EB0 +/* 0F5950 7F0C0E20 0004C880 */ sll $t9, $a0, 2 +/* 0F5954 7F0C0E24 3C018006 */ lui $at, %hi(jpt_8005B7E8) +/* 0F5958 7F0C0E28 00390821 */ addu $at, $at, $t9 +/* 0F595C 7F0C0E2C 8C39B7E8 */ lw $t9, %lo(jpt_8005B7E8)($at) +/* 0F5960 7F0C0E30 03200008 */ jr $t9 +/* 0F5964 7F0C0E34 00000000 */ nop +.L7F0C0E38: +/* 0F5968 7F0C0E38 0C001BF4 */ jal musicTrack1Stop +/* 0F596C 7F0C0E3C 00000000 */ nop +/* 0F5970 7F0C0E40 0C001CD6 */ jal musicTrack2Stop +/* 0F5974 7F0C0E44 00000000 */ nop +/* 0F5978 7F0C0E48 0C001DB8 */ jal musicTrack3Stop +/* 0F597C 7F0C0E4C 00000000 */ nop +/* 0F5980 7F0C0E50 100000E7 */ b .L7F0C11F0 +/* 0F5984 7F0C0E54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E58: +/* 0F5988 7F0C0E58 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F598C 7F0C0E5C 00000000 */ nop +/* 0F5990 7F0C0E60 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5994 7F0C0E64 44816000 */ mtc1 $at, $f12 +/* 0F5998 7F0C0E68 0C001C5A */ jal music_related_3 +/* 0F599C 7F0C0E6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F59A0 7F0C0E70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F59A4 7F0C0E74 44816000 */ mtc1 $at, $f12 +/* 0F59A8 7F0C0E78 0C001D20 */ jal music_related_6 +/* 0F59AC 7F0C0E7C 00000000 */ nop +/* 0F59B0 7F0C0E80 100000DB */ b .L7F0C11F0 +/* 0F59B4 7F0C0E84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E88: +/* 0F59B8 7F0C0E88 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F59BC 7F0C0E8C 00000000 */ nop +/* 0F59C0 7F0C0E90 0C001CF1 */ jal musicTrack2Vol +/* 0F59C4 7F0C0E94 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F59C8 7F0C0E98 3C018002 */ lui $at, %hi(music2_playing) +/* 0F59CC 7F0C0E9C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F59D0 7F0C0EA0 0C001C81 */ jal musicTrack2Play +/* 0F59D4 7F0C0EA4 24040018 */ li $a0, 24 +/* 0F59D8 7F0C0EA8 100000D1 */ b .L7F0C11F0 +/* 0F59DC 7F0C0EAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EB0: +/* 0F59E0 7F0C0EB0 2C810007 */ sltiu $at, $a0, 7 +/* 0F59E4 7F0C0EB4 1020004C */ beqz $at, .L7F0C0FE8 +/* 0F59E8 7F0C0EB8 00044080 */ sll $t0, $a0, 2 +/* 0F59EC 7F0C0EBC 3C018006 */ lui $at, %hi(jpt_8005B804) +/* 0F59F0 7F0C0EC0 00280821 */ addu $at, $at, $t0 +/* 0F59F4 7F0C0EC4 8C28B804 */ lw $t0, %lo(jpt_8005B804)($at) +/* 0F59F8 7F0C0EC8 01000008 */ jr $t0 +/* 0F59FC 7F0C0ECC 00000000 */ nop +.L7F0C0ED0: +/* 0F5A00 7F0C0ED0 0C001BF4 */ jal musicTrack1Stop +/* 0F5A04 7F0C0ED4 00000000 */ nop +/* 0F5A08 7F0C0ED8 0C001CD6 */ jal musicTrack2Stop +/* 0F5A0C 7F0C0EDC 00000000 */ nop +/* 0F5A10 7F0C0EE0 0C001DB8 */ jal musicTrack3Stop +/* 0F5A14 7F0C0EE4 00000000 */ nop +/* 0F5A18 7F0C0EE8 100000C1 */ b .L7F0C11F0 +/* 0F5A1C 7F0C0EEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EF0: +/* 0F5A20 7F0C0EF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A24 7F0C0EF4 00000000 */ nop +/* 0F5A28 7F0C0EF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A2C 7F0C0EFC 44816000 */ mtc1 $at, $f12 +/* 0F5A30 7F0C0F00 0C001C5A */ jal music_related_3 +/* 0F5A34 7F0C0F04 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A38 7F0C0F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A3C 7F0C0F0C 44816000 */ mtc1 $at, $f12 +/* 0F5A40 7F0C0F10 0C001D20 */ jal music_related_6 +/* 0F5A44 7F0C0F14 00000000 */ nop +/* 0F5A48 7F0C0F18 100000B5 */ b .L7F0C11F0 +/* 0F5A4C 7F0C0F1C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F20: +/* 0F5A50 7F0C0F20 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A54 7F0C0F24 00000000 */ nop +/* 0F5A58 7F0C0F28 0C001CF1 */ jal musicTrack2Vol +/* 0F5A5C 7F0C0F2C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5A60 7F0C0F30 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5A64 7F0C0F34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5A68 7F0C0F38 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5A6C 7F0C0F3C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5A70 7F0C0F40 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5A74 7F0C0F44 0C001C81 */ jal musicTrack2Play +/* 0F5A78 7F0C0F48 00402025 */ move $a0, $v0 +/* 0F5A7C 7F0C0F4C 100000A8 */ b .L7F0C11F0 +/* 0F5A80 7F0C0F50 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F54: +/* 0F5A84 7F0C0F54 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A88 7F0C0F58 00000000 */ nop +/* 0F5A8C 7F0C0F5C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A90 7F0C0F60 44816000 */ mtc1 $at, $f12 +/* 0F5A94 7F0C0F64 0C001C5A */ jal music_related_3 +/* 0F5A98 7F0C0F68 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A9C 7F0C0F6C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AA0 7F0C0F70 00000000 */ nop +/* 0F5AA4 7F0C0F74 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AA8 7F0C0F78 44816000 */ mtc1 $at, $f12 +/* 0F5AAC 7F0C0F7C 0C001E1E */ jal music_related_13 +/* 0F5AB0 7F0C0F80 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AB4 7F0C0F84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AB8 7F0C0F88 44816000 */ mtc1 $at, $f12 +/* 0F5ABC 7F0C0F8C 0C001D20 */ jal music_related_6 +/* 0F5AC0 7F0C0F90 00000000 */ nop +/* 0F5AC4 7F0C0F94 10000096 */ b .L7F0C11F0 +/* 0F5AC8 7F0C0F98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F9C: +/* 0F5ACC 7F0C0F9C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AD0 7F0C0FA0 00000000 */ nop +/* 0F5AD4 7F0C0FA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AD8 7F0C0FA8 44816000 */ mtc1 $at, $f12 +/* 0F5ADC 7F0C0FAC 0C001E1E */ jal music_related_13 +/* 0F5AE0 7F0C0FB0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AE4 7F0C0FB4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5AE8 7F0C0FB8 00000000 */ nop +/* 0F5AEC 7F0C0FBC 0C001CF1 */ jal musicTrack2Vol +/* 0F5AF0 7F0C0FC0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5AF4 7F0C0FC4 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5AF8 7F0C0FC8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5AFC 7F0C0FCC AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B00 7F0C0FD0 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5B04 7F0C0FD4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5B08 7F0C0FD8 0C001C81 */ jal musicTrack2Play +/* 0F5B0C 7F0C0FDC 00402025 */ move $a0, $v0 +/* 0F5B10 7F0C0FE0 10000083 */ b .L7F0C11F0 +/* 0F5B14 7F0C0FE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0FE8: +/* 0F5B18 7F0C0FE8 2C810007 */ sltiu $at, $a0, 7 +/* 0F5B1C 7F0C0FEC 10200031 */ beqz $at, .L7F0C10B4 +/* 0F5B20 7F0C0FF0 00044880 */ sll $t1, $a0, 2 +/* 0F5B24 7F0C0FF4 3C018006 */ lui $at, %hi(jpt_8005B820) +/* 0F5B28 7F0C0FF8 00290821 */ addu $at, $at, $t1 +/* 0F5B2C 7F0C0FFC 8C29B820 */ lw $t1, %lo(jpt_8005B820)($at) +/* 0F5B30 7F0C1000 01200008 */ jr $t1 +/* 0F5B34 7F0C1004 00000000 */ nop +.L7F0C1008: +/* 0F5B38 7F0C1008 0C001BF4 */ jal musicTrack1Stop +/* 0F5B3C 7F0C100C 00000000 */ nop +/* 0F5B40 7F0C1010 0C001CD6 */ jal musicTrack2Stop +/* 0F5B44 7F0C1014 00000000 */ nop +/* 0F5B48 7F0C1018 0C001DB8 */ jal musicTrack3Stop +/* 0F5B4C 7F0C101C 00000000 */ nop +/* 0F5B50 7F0C1020 10000073 */ b .L7F0C11F0 +/* 0F5B54 7F0C1024 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1028: +/* 0F5B58 7F0C1028 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5B5C 7F0C102C 00000000 */ nop +/* 0F5B60 7F0C1030 0C001CF1 */ jal musicTrack2Vol +/* 0F5B64 7F0C1034 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5B68 7F0C1038 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5B6C 7F0C103C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B70 7F0C1040 0C001C81 */ jal musicTrack2Play +/* 0F5B74 7F0C1044 24040018 */ li $a0, 24 +/* 0F5B78 7F0C1048 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B7C 7F0C104C 44816000 */ mtc1 $at, $f12 +/* 0F5B80 7F0C1050 0C001C3E */ jal music_related_1 +/* 0F5B84 7F0C1054 00000000 */ nop +/* 0F5B88 7F0C1058 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B8C 7F0C105C 44816000 */ mtc1 $at, $f12 +/* 0F5B90 7F0C1060 0C001E02 */ jal music_related_11 +/* 0F5B94 7F0C1064 00000000 */ nop +/* 0F5B98 7F0C1068 10000061 */ b .L7F0C11F0 +/* 0F5B9C 7F0C106C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1070: +/* 0F5BA0 7F0C1070 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5BA4 7F0C1074 00000000 */ nop +/* 0F5BA8 7F0C1078 0C001CF1 */ jal musicTrack2Vol +/* 0F5BAC 7F0C107C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5BB0 7F0C1080 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5BB4 7F0C1084 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5BB8 7F0C1088 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5BBC 7F0C108C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5BC0 7F0C1090 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5BC4 7F0C1094 0C001C81 */ jal musicTrack2Play +/* 0F5BC8 7F0C1098 00402025 */ move $a0, $v0 +/* 0F5BCC 7F0C109C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5BD0 7F0C10A0 44816000 */ mtc1 $at, $f12 +/* 0F5BD4 7F0C10A4 0C001C3E */ jal music_related_1 +/* 0F5BD8 7F0C10A8 00000000 */ nop +/* 0F5BDC 7F0C10AC 10000050 */ b .L7F0C11F0 +/* 0F5BE0 7F0C10B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10B4: +/* 0F5BE4 7F0C10B4 2C810007 */ sltiu $at, $a0, 7 +/* 0F5BE8 7F0C10B8 10200028 */ beqz $at, .L7F0C115C +/* 0F5BEC 7F0C10BC 00045080 */ sll $t2, $a0, 2 +/* 0F5BF0 7F0C10C0 3C018006 */ lui $at, %hi(jpt_8005B83C) +/* 0F5BF4 7F0C10C4 002A0821 */ addu $at, $at, $t2 +/* 0F5BF8 7F0C10C8 8C2AB83C */ lw $t2, %lo(jpt_8005B83C)($at) +/* 0F5BFC 7F0C10CC 01400008 */ jr $t2 +/* 0F5C00 7F0C10D0 00000000 */ nop +.L7F0C10D4: +/* 0F5C04 7F0C10D4 0C001BF4 */ jal musicTrack1Stop +/* 0F5C08 7F0C10D8 00000000 */ nop +/* 0F5C0C 7F0C10DC 0C001CD6 */ jal musicTrack2Stop +/* 0F5C10 7F0C10E0 00000000 */ nop +/* 0F5C14 7F0C10E4 0C001DB8 */ jal musicTrack3Stop +/* 0F5C18 7F0C10E8 00000000 */ nop +/* 0F5C1C 7F0C10EC 10000040 */ b .L7F0C11F0 +/* 0F5C20 7F0C10F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10F4: +/* 0F5C24 7F0C10F4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C28 7F0C10F8 00000000 */ nop +/* 0F5C2C 7F0C10FC 0C001CF1 */ jal musicTrack2Vol +/* 0F5C30 7F0C1100 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5C34 7F0C1104 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5C38 7F0C1108 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5C3C 7F0C110C 0C001C81 */ jal musicTrack2Play +/* 0F5C40 7F0C1110 24040018 */ li $a0, 24 +/* 0F5C44 7F0C1114 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C48 7F0C1118 44816000 */ mtc1 $at, $f12 +/* 0F5C4C 7F0C111C 0C001E02 */ jal music_related_11 +/* 0F5C50 7F0C1120 00000000 */ nop +/* 0F5C54 7F0C1124 10000032 */ b .L7F0C11F0 +/* 0F5C58 7F0C1128 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C112C: +/* 0F5C5C 7F0C112C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C60 7F0C1130 00000000 */ nop +/* 0F5C64 7F0C1134 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C68 7F0C1138 44816000 */ mtc1 $at, $f12 +/* 0F5C6C 7F0C113C 0C001C5A */ jal music_related_3 +/* 0F5C70 7F0C1140 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5C74 7F0C1144 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C78 7F0C1148 44816000 */ mtc1 $at, $f12 +/* 0F5C7C 7F0C114C 0C001D20 */ jal music_related_6 +/* 0F5C80 7F0C1150 00000000 */ nop +/* 0F5C84 7F0C1154 10000026 */ b .L7F0C11F0 +/* 0F5C88 7F0C1158 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C115C: +/* 0F5C8C 7F0C115C 2C810007 */ sltiu $at, $a0, 7 +/* 0F5C90 7F0C1160 10200020 */ beqz $at, .L7F0C11E4 +/* 0F5C94 7F0C1164 00045880 */ sll $t3, $a0, 2 +/* 0F5C98 7F0C1168 3C018006 */ lui $at, %hi(jpt_8005B858) +/* 0F5C9C 7F0C116C 002B0821 */ addu $at, $at, $t3 +/* 0F5CA0 7F0C1170 8C2BB858 */ lw $t3, %lo(jpt_8005B858)($at) +/* 0F5CA4 7F0C1174 01600008 */ jr $t3 +/* 0F5CA8 7F0C1178 00000000 */ nop +.L7F0C117C: +/* 0F5CAC 7F0C117C 0C001BF4 */ jal musicTrack1Stop +/* 0F5CB0 7F0C1180 00000000 */ nop +/* 0F5CB4 7F0C1184 0C001CD6 */ jal musicTrack2Stop +/* 0F5CB8 7F0C1188 00000000 */ nop +/* 0F5CBC 7F0C118C 0C001DB8 */ jal musicTrack3Stop +/* 0F5CC0 7F0C1190 00000000 */ nop +/* 0F5CC4 7F0C1194 10000016 */ b .L7F0C11F0 +/* 0F5CC8 7F0C1198 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C119C: +/* 0F5CCC 7F0C119C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5CD0 7F0C11A0 00000000 */ nop +/* 0F5CD4 7F0C11A4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CD8 7F0C11A8 44816000 */ mtc1 $at, $f12 +/* 0F5CDC 7F0C11AC 0C001C5A */ jal music_related_3 +/* 0F5CE0 7F0C11B0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5CE4 7F0C11B4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CE8 7F0C11B8 44816000 */ mtc1 $at, $f12 +/* 0F5CEC 7F0C11BC 0C001D20 */ jal music_related_6 +/* 0F5CF0 7F0C11C0 00000000 */ nop +/* 0F5CF4 7F0C11C4 1000000A */ b .L7F0C11F0 +/* 0F5CF8 7F0C11C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11CC: +/* 0F5CFC 7F0C11CC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5D00 7F0C11D0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5D04 7F0C11D4 0C001C81 */ jal musicTrack2Play +/* 0F5D08 7F0C11D8 2404003A */ li $a0, 58 +/* 0F5D0C 7F0C11DC 10000004 */ b .L7F0C11F0 +/* 0F5D10 7F0C11E0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11E4: +/* 0F5D14 7F0C11E4 1000FFFF */ b .L7F0C11E4 +/* 0F5D18 7F0C11E8 00000000 */ nop +.L7F0C11EC: +/* 0F5D1C 7F0C11EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11F0: +/* 0F5D20 7F0C11F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5D24 7F0C11F4 03E00008 */ jr $ra +/* 0F5D28 7F0C11F8 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( + .late_rodata +/*D:8005B790*/ +glabel jpt_8005B790 +.word .Ljp7F0C1904 +.word .Ljp7F0C19D8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1C98 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1E0C + +/*D:8005B7AC*/ +glabel jpt_8005B7AC +.word .Ljp7F0C1924 +.word .Ljp7F0C1944 +.word .Ljp7F0C19D8 +.word .Ljp7F0C19D8 +.word .Ljp7F0C1978 +.word .Ljp7F0C19D8 +.word .Ljp7F0C19D8 + + +/*D:8005B7C8*/ +glabel jpt_8005B7C8 +.word .Ljp7F0C19F8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1A18 +.word .Ljp7F0C1A5C +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1A94 + +glabel music_rate_8005B7E4 +.word 0x3ca3d70a /*0.02*/ + +/*D:8005B7E8*/ +glabel jpt_8005B7E8 +.word .Ljp7F0C1AE8 +.word .Ljp7F0C1B08 +.word .Ljp7F0C1E9C +.word .Ljp7F0C1B38 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1B60 + +/*D:8005B804*/ +glabel jpt_8005B804 +.word .Ljp7F0C1B80 +.word .Ljp7F0C1BA0 +.word .Ljp7F0C1BD0 +.word .Ljp7F0C1C98 +.word .Ljp7F0C1C04 +.word .Ljp7F0C1C4C +.word .Ljp7F0C1C98 + +/*D:8005B820*/ +glabel jpt_8005B820 +.word .Ljp7F0C1CB8 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1CD8 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1D20 +.word .Ljp7F0C1D64 + +/*D:8005B83C*/ +glabel jpt_8005B83C +.word .Ljp7F0C1D84 +.word .Ljp7F0C1E0C +.word .Ljp7F0C1E0C +.word .Ljp7F0C1DA4 +.word .Ljp7F0C1DDC +.word .Ljp7F0C1E0C +.word .Ljp7F0C1E0C + +/*D:8005B858*/ +glabel jpt_8005B858 +.word .Ljp7F0C1E2C +.word .Ljp7F0C1E4C +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E7C + +.text +glabel set_missionstate +/* 0F643C 7F0C18CC 3C038005 */ lui $v1, %hi(mission_state) # $v1, 0x8005 +/* 0F6440 7F0C18D0 246384F0 */ addiu $v1, %lo(mission_state) # addiu $v1, $v1, -0x7b10 +/* 0F6444 7F0C18D4 8C620000 */ lw $v0, ($v1) +/* 0F6448 7F0C18D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F644C 7F0C18DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6450 7F0C18E0 2C410007 */ sltiu $at, $v0, 7 +/* 0F6454 7F0C18E4 1020016B */ beqz $at, .Ljp7F0C1E94 +/* 0F6458 7F0C18E8 AC640000 */ sw $a0, ($v1) +/* 0F645C 7F0C18EC 00027080 */ sll $t6, $v0, 2 +/* 0F6460 7F0C18F0 3C018006 */ lui $at, %hi(jpt_8005B790) +/* 0F6464 7F0C18F4 002E0821 */ addu $at, $at, $t6 +/* 0F6468 7F0C18F8 8C2EB7D0 */ lw $t6, %lo(jpt_8005B790)($at) +/* 0F646C 7F0C18FC 01C00008 */ jr $t6 +/* 0F6470 7F0C1900 00000000 */ nop +.Ljp7F0C1904: +/* 0F6474 7F0C1904 2C810007 */ sltiu $at, $a0, 7 +/* 0F6478 7F0C1908 10200033 */ beqz $at, .Ljp7F0C19D8 +/* 0F647C 7F0C190C 00047880 */ sll $t7, $a0, 2 +/* 0F6480 7F0C1910 3C018006 */ lui $at, %hi(jpt_8005B7AC) +/* 0F6484 7F0C1914 002F0821 */ addu $at, $at, $t7 +/* 0F6488 7F0C1918 8C2FB7EC */ lw $t7, %lo(jpt_8005B7AC)($at) +/* 0F648C 7F0C191C 01E00008 */ jr $t7 +/* 0F6490 7F0C1920 00000000 */ nop +.Ljp7F0C1924: +/* 0F6494 7F0C1924 0C001BF8 */ jal musicTrack1Stop +/* 0F6498 7F0C1928 00000000 */ nop +/* 0F649C 7F0C192C 0C001CDA */ jal musicTrack2Stop +/* 0F64A0 7F0C1930 00000000 */ nop +/* 0F64A4 7F0C1934 0C001DBC */ jal musicTrack3Stop +/* 0F64A8 7F0C1938 00000000 */ nop +/* 0F64AC 7F0C193C 10000158 */ b .Ljp7F0C1EA0 +/* 0F64B0 7F0C1940 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1944: +/* 0F64B4 7F0C1944 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F64B8 7F0C1948 00000000 */ nop +/* 0F64BC 7F0C194C 0C001C13 */ jal musicTrack1Vol +/* 0F64C0 7F0C1950 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F64C4 7F0C1954 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64C8 7F0C1958 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F64CC 7F0C195C AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F64D0 7F0C1960 0FC34D00 */ jal getmusictrack_or_randomtrack +/* 0F64D4 7F0C1964 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F64D8 7F0C1968 0C001BA3 */ jal musicTrack1Play +/* 0F64DC 7F0C196C 00402025 */ move $a0, $v0 +/* 0F64E0 7F0C1970 1000014B */ b .Ljp7F0C1EA0 +/* 0F64E4 7F0C1974 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1978: +/* 0F64E8 7F0C1978 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F64EC 7F0C197C 00000000 */ nop +/* 0F64F0 7F0C1980 0C001C13 */ jal musicTrack1Vol +/* 0F64F4 7F0C1984 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F64F8 7F0C1988 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64FC 7F0C198C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F6500 7F0C1990 AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F6504 7F0C1994 0FC34D00 */ jal getmusictrack_or_randomtrack +/* 0F6508 7F0C1998 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F650C 7F0C199C 0C001BA3 */ jal musicTrack1Play +/* 0F6510 7F0C19A0 00402025 */ move $a0, $v0 +/* 0F6514 7F0C19A4 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F6518 7F0C19A8 00000000 */ nop +/* 0F651C 7F0C19AC 0C001DD7 */ jal musicTrack3Vol +/* 0F6520 7F0C19B0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6524 7F0C19B4 3C018002 */ lui $at, %hi(music3_playing) # $at, 0x8002 +/* 0F6528 7F0C19B8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F652C 7F0C19BC AC204394 */ sw $zero, %lo(music3_playing)($at) +/* 0F6530 7F0C19C0 0FC34D4A */ jal sub_GAME_7F0D2848 +/* 0F6534 7F0C19C4 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F6538 7F0C19C8 0C001D67 */ jal music_related_3rd_block +/* 0F653C 7F0C19CC 00402025 */ move $a0, $v0 +/* 0F6540 7F0C19D0 10000133 */ b .Ljp7F0C1EA0 +/* 0F6544 7F0C19D4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C19D8: +/* 0F6548 7F0C19D8 2C810007 */ sltiu $at, $a0, 7 +/* 0F654C 7F0C19DC 1020003A */ beqz $at, .Ljp7F0C1AC8 +/* 0F6550 7F0C19E0 0004C080 */ sll $t8, $a0, 2 +/* 0F6554 7F0C19E4 3C018006 */ lui $at, %hi(jpt_8005B7C8) +/* 0F6558 7F0C19E8 00380821 */ addu $at, $at, $t8 +/* 0F655C 7F0C19EC 8C38B808 */ lw $t8, %lo(jpt_8005B7C8)($at) +/* 0F6560 7F0C19F0 03000008 */ jr $t8 +/* 0F6564 7F0C19F4 00000000 */ nop +.Ljp7F0C19F8: +/* 0F6568 7F0C19F8 0C001BF8 */ jal musicTrack1Stop +/* 0F656C 7F0C19FC 00000000 */ nop +/* 0F6570 7F0C1A00 0C001CDA */ jal musicTrack2Stop +/* 0F6574 7F0C1A04 00000000 */ nop +/* 0F6578 7F0C1A08 0C001DBC */ jal musicTrack3Stop +/* 0F657C 7F0C1A0C 00000000 */ nop +/* 0F6580 7F0C1A10 10000123 */ b .Ljp7F0C1EA0 +/* 0F6584 7F0C1A14 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A18: +/* 0F6588 7F0C1A18 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F658C 7F0C1A1C 00000000 */ nop +/* 0F6590 7F0C1A20 0C001CF5 */ jal musicTrack2Vol +/* 0F6594 7F0C1A24 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6598 7F0C1A28 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F659C 7F0C1A2C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F65A0 7F0C1A30 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F65A4 7F0C1A34 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F65A8 7F0C1A38 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F65AC 7F0C1A3C 0C001C85 */ jal musicTrack2Play +/* 0F65B0 7F0C1A40 00402025 */ move $a0, $v0 +/* 0F65B4 7F0C1A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F65B8 7F0C1A48 44816000 */ mtc1 $at, $f12 +/* 0F65BC 7F0C1A4C 0C001C42 */ jal music_related_1 +/* 0F65C0 7F0C1A50 00000000 */ nop +/* 0F65C4 7F0C1A54 10000112 */ b .Ljp7F0C1EA0 +/* 0F65C8 7F0C1A58 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A5C: +/* 0F65CC 7F0C1A5C 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F65D0 7F0C1A60 00000000 */ nop +/* 0F65D4 7F0C1A64 0C001CF5 */ jal musicTrack2Vol +/* 0F65D8 7F0C1A68 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F65DC 7F0C1A6C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F65E0 7F0C1A70 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F65E4 7F0C1A74 0C001C85 */ jal musicTrack2Play +/* 0F65E8 7F0C1A78 24040018 */ li $a0, 24 +/* 0F65EC 7F0C1A7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F65F0 7F0C1A80 44816000 */ mtc1 $at, $f12 +/* 0F65F4 7F0C1A84 0C001C42 */ jal music_related_1 +/* 0F65F8 7F0C1A88 00000000 */ nop +/* 0F65FC 7F0C1A8C 10000104 */ b .Ljp7F0C1EA0 +/* 0F6600 7F0C1A90 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A94: +/* 0F6604 7F0C1A94 3C018006 */ lui $at, %hi(music_rate_8005B7E4) # $at, 0x8006 +/* 0F6608 7F0C1A98 0C001C42 */ jal music_related_1 +/* 0F660C 7F0C1A9C C42CB824 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) +/* 0F6610 7F0C1AA0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6614 7F0C1AA4 00000000 */ nop +/* 0F6618 7F0C1AA8 0C001CF5 */ jal musicTrack2Vol +/* 0F661C 7F0C1AAC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6620 7F0C1AB0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6624 7F0C1AB4 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6628 7F0C1AB8 0C001C85 */ jal musicTrack2Play +/* 0F662C 7F0C1ABC 2404003A */ li $a0, 58 +/* 0F6630 7F0C1AC0 100000F7 */ b .Ljp7F0C1EA0 +/* 0F6634 7F0C1AC4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1AC8: +/* 0F6638 7F0C1AC8 2C810007 */ sltiu $at, $a0, 7 +/* 0F663C 7F0C1ACC 10200024 */ beqz $at, .Ljp7F0C1B60 +/* 0F6640 7F0C1AD0 0004C880 */ sll $t9, $a0, 2 +/* 0F6644 7F0C1AD4 3C018006 */ lui $at, 0x8006 +/* 0F6648 7F0C1AD8 00390821 */ addu $at, $at, $t9 +/* 0F664C 7F0C1ADC 8C39B828 */ lw $t9, -0x47d8($at) +/* 0F6650 7F0C1AE0 03200008 */ jr $t9 +/* 0F6654 7F0C1AE4 00000000 */ nop +.Ljp7F0C1AE8: +/* 0F6658 7F0C1AE8 0C001BF8 */ jal musicTrack1Stop +/* 0F665C 7F0C1AEC 00000000 */ nop +/* 0F6660 7F0C1AF0 0C001CDA */ jal musicTrack2Stop +/* 0F6664 7F0C1AF4 00000000 */ nop +/* 0F6668 7F0C1AF8 0C001DBC */ jal musicTrack3Stop +/* 0F666C 7F0C1AFC 00000000 */ nop +/* 0F6670 7F0C1B00 100000E7 */ b .Ljp7F0C1EA0 +/* 0F6674 7F0C1B04 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B08: +/* 0F6678 7F0C1B08 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F667C 7F0C1B0C 00000000 */ nop +/* 0F6680 7F0C1B10 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6684 7F0C1B14 44816000 */ mtc1 $at, $f12 +/* 0F6688 7F0C1B18 0C001C5E */ jal music_related_3 +/* 0F668C 7F0C1B1C 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6690 7F0C1B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6694 7F0C1B24 44816000 */ mtc1 $at, $f12 +/* 0F6698 7F0C1B28 0C001D24 */ jal music_related_6 +/* 0F669C 7F0C1B2C 00000000 */ nop +/* 0F66A0 7F0C1B30 100000DB */ b .Ljp7F0C1EA0 +/* 0F66A4 7F0C1B34 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B38: +/* 0F66A8 7F0C1B38 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F66AC 7F0C1B3C 00000000 */ nop +/* 0F66B0 7F0C1B40 0C001CF5 */ jal musicTrack2Vol +/* 0F66B4 7F0C1B44 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F66B8 7F0C1B48 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F66BC 7F0C1B4C AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F66C0 7F0C1B50 0C001C85 */ jal musicTrack2Play +/* 0F66C4 7F0C1B54 24040018 */ li $a0, 24 +/* 0F66C8 7F0C1B58 100000D1 */ b .Ljp7F0C1EA0 +/* 0F66CC 7F0C1B5C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B60: +/* 0F66D0 7F0C1B60 2C810007 */ sltiu $at, $a0, 7 +/* 0F66D4 7F0C1B64 1020004C */ beqz $at, .Ljp7F0C1C98 +/* 0F66D8 7F0C1B68 00044080 */ sll $t0, $a0, 2 +/* 0F66DC 7F0C1B6C 3C018006 */ lui $at, %hi(jpt_8005B804) +/* 0F66E0 7F0C1B70 00280821 */ addu $at, $at, $t0 +/* 0F66E4 7F0C1B74 8C28B844 */ lw $t0, %lo(jpt_8005B804)($at) +/* 0F66E8 7F0C1B78 01000008 */ jr $t0 +/* 0F66EC 7F0C1B7C 00000000 */ nop +.Ljp7F0C1B80: +/* 0F66F0 7F0C1B80 0C001BF8 */ jal musicTrack1Stop +/* 0F66F4 7F0C1B84 00000000 */ nop +/* 0F66F8 7F0C1B88 0C001CDA */ jal musicTrack2Stop +/* 0F66FC 7F0C1B8C 00000000 */ nop +/* 0F6700 7F0C1B90 0C001DBC */ jal musicTrack3Stop +/* 0F6704 7F0C1B94 00000000 */ nop +/* 0F6708 7F0C1B98 100000C1 */ b .Ljp7F0C1EA0 +/* 0F670C 7F0C1B9C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1BA0: +/* 0F6710 7F0C1BA0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6714 7F0C1BA4 00000000 */ nop +/* 0F6718 7F0C1BA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F671C 7F0C1BAC 44816000 */ mtc1 $at, $f12 +/* 0F6720 7F0C1BB0 0C001C5E */ jal music_related_3 +/* 0F6724 7F0C1BB4 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6728 7F0C1BB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F672C 7F0C1BBC 44816000 */ mtc1 $at, $f12 +/* 0F6730 7F0C1BC0 0C001D24 */ jal music_related_6 +/* 0F6734 7F0C1BC4 00000000 */ nop +/* 0F6738 7F0C1BC8 100000B5 */ b .Ljp7F0C1EA0 +/* 0F673C 7F0C1BCC 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1BD0: +/* 0F6740 7F0C1BD0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6744 7F0C1BD4 00000000 */ nop +/* 0F6748 7F0C1BD8 0C001CF5 */ jal musicTrack2Vol +/* 0F674C 7F0C1BDC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6750 7F0C1BE0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6754 7F0C1BE4 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F6758 7F0C1BE8 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F675C 7F0C1BEC 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F6760 7F0C1BF0 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F6764 7F0C1BF4 0C001C85 */ jal musicTrack2Play +/* 0F6768 7F0C1BF8 00402025 */ move $a0, $v0 +/* 0F676C 7F0C1BFC 100000A8 */ b .Ljp7F0C1EA0 +/* 0F6770 7F0C1C00 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C04: +/* 0F6774 7F0C1C04 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6778 7F0C1C08 00000000 */ nop +/* 0F677C 7F0C1C0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F6780 7F0C1C10 44816000 */ mtc1 $at, $f12 +/* 0F6784 7F0C1C14 0C001C5E */ jal music_related_3 +/* 0F6788 7F0C1C18 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F678C 7F0C1C1C 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F6790 7F0C1C20 00000000 */ nop +/* 0F6794 7F0C1C24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F6798 7F0C1C28 44816000 */ mtc1 $at, $f12 +/* 0F679C 7F0C1C2C 0C001E22 */ jal music_related_13 +/* 0F67A0 7F0C1C30 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F67A4 7F0C1C34 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F67A8 7F0C1C38 44816000 */ mtc1 $at, $f12 +/* 0F67AC 7F0C1C3C 0C001D24 */ jal music_related_6 +/* 0F67B0 7F0C1C40 00000000 */ nop +/* 0F67B4 7F0C1C44 10000096 */ b .Ljp7F0C1EA0 +/* 0F67B8 7F0C1C48 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C4C: +/* 0F67BC 7F0C1C4C 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F67C0 7F0C1C50 00000000 */ nop +/* 0F67C4 7F0C1C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F67C8 7F0C1C58 44816000 */ mtc1 $at, $f12 +/* 0F67CC 7F0C1C5C 0C001E22 */ jal music_related_13 +/* 0F67D0 7F0C1C60 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F67D4 7F0C1C64 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F67D8 7F0C1C68 00000000 */ nop +/* 0F67DC 7F0C1C6C 0C001CF5 */ jal musicTrack2Vol +/* 0F67E0 7F0C1C70 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F67E4 7F0C1C74 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F67E8 7F0C1C78 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F67EC 7F0C1C7C AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F67F0 7F0C1C80 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F67F4 7F0C1C84 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F67F8 7F0C1C88 0C001C85 */ jal musicTrack2Play +/* 0F67FC 7F0C1C8C 00402025 */ move $a0, $v0 +/* 0F6800 7F0C1C90 10000083 */ b .Ljp7F0C1EA0 +/* 0F6804 7F0C1C94 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C98: +/* 0F6808 7F0C1C98 2C810007 */ sltiu $at, $a0, 7 +/* 0F680C 7F0C1C9C 10200031 */ beqz $at, .Ljp7F0C1D64 +/* 0F6810 7F0C1CA0 00044880 */ sll $t1, $a0, 2 +/* 0F6814 7F0C1CA4 3C018006 */ lui $at, 0x8006 +/* 0F6818 7F0C1CA8 00290821 */ addu $at, $at, $t1 +/* 0F681C 7F0C1CAC 8C29B860 */ lw $t1, -0x47a0($at) +/* 0F6820 7F0C1CB0 01200008 */ jr $t1 +/* 0F6824 7F0C1CB4 00000000 */ nop +.Ljp7F0C1CB8: +/* 0F6828 7F0C1CB8 0C001BF8 */ jal musicTrack1Stop +/* 0F682C 7F0C1CBC 00000000 */ nop +/* 0F6830 7F0C1CC0 0C001CDA */ jal musicTrack2Stop +/* 0F6834 7F0C1CC4 00000000 */ nop +/* 0F6838 7F0C1CC8 0C001DBC */ jal musicTrack3Stop +/* 0F683C 7F0C1CCC 00000000 */ nop +/* 0F6840 7F0C1CD0 10000073 */ b .Ljp7F0C1EA0 +/* 0F6844 7F0C1CD4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1CD8: +/* 0F6848 7F0C1CD8 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F684C 7F0C1CDC 00000000 */ nop +/* 0F6850 7F0C1CE0 0C001CF5 */ jal musicTrack2Vol +/* 0F6854 7F0C1CE4 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6858 7F0C1CE8 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F685C 7F0C1CEC AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6860 7F0C1CF0 0C001C85 */ jal musicTrack2Play +/* 0F6864 7F0C1CF4 24040018 */ li $a0, 24 +/* 0F6868 7F0C1CF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F686C 7F0C1CFC 44816000 */ mtc1 $at, $f12 +/* 0F6870 7F0C1D00 0C001C42 */ jal music_related_1 +/* 0F6874 7F0C1D04 00000000 */ nop +/* 0F6878 7F0C1D08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F687C 7F0C1D0C 44816000 */ mtc1 $at, $f12 +/* 0F6880 7F0C1D10 0C001E06 */ jal music_related_11 +/* 0F6884 7F0C1D14 00000000 */ nop +/* 0F6888 7F0C1D18 10000061 */ b .Ljp7F0C1EA0 +/* 0F688C 7F0C1D1C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1D20: +/* 0F6890 7F0C1D20 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6894 7F0C1D24 00000000 */ nop +/* 0F6898 7F0C1D28 0C001CF5 */ jal musicTrack2Vol +/* 0F689C 7F0C1D2C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F68A0 7F0C1D30 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F68A4 7F0C1D34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F68A8 7F0C1D38 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F68AC 7F0C1D3C 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F68B0 7F0C1D40 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F68B4 7F0C1D44 0C001C85 */ jal musicTrack2Play +/* 0F68B8 7F0C1D48 00402025 */ move $a0, $v0 +/* 0F68BC 7F0C1D4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F68C0 7F0C1D50 44816000 */ mtc1 $at, $f12 +/* 0F68C4 7F0C1D54 0C001C42 */ jal music_related_1 +/* 0F68C8 7F0C1D58 00000000 */ nop +/* 0F68CC 7F0C1D5C 10000050 */ b .Ljp7F0C1EA0 +/* 0F68D0 7F0C1D60 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1D64: +/* 0F68D4 7F0C1D64 2C810007 */ sltiu $at, $a0, 7 +/* 0F68D8 7F0C1D68 10200028 */ beqz $at, .Ljp7F0C1E0C +/* 0F68DC 7F0C1D6C 00045080 */ sll $t2, $a0, 2 +/* 0F68E0 7F0C1D70 3C018006 */ lui $at, %hi(jpt_8005B83C) +/* 0F68E4 7F0C1D74 002A0821 */ addu $at, $at, $t2 +/* 0F68E8 7F0C1D78 8C2AB87C */ lw $t2, %lo(jpt_8005B83C)($at) +/* 0F68EC 7F0C1D7C 01400008 */ jr $t2 +/* 0F68F0 7F0C1D80 00000000 */ nop +.Ljp7F0C1D84: +/* 0F68F4 7F0C1D84 0C001BF8 */ jal musicTrack1Stop +/* 0F68F8 7F0C1D88 00000000 */ nop +/* 0F68FC 7F0C1D8C 0C001CDA */ jal musicTrack2Stop +/* 0F6900 7F0C1D90 00000000 */ nop +/* 0F6904 7F0C1D94 0C001DBC */ jal musicTrack3Stop +/* 0F6908 7F0C1D98 00000000 */ nop +/* 0F690C 7F0C1D9C 10000040 */ b .Ljp7F0C1EA0 +/* 0F6910 7F0C1DA0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1DA4: +/* 0F6914 7F0C1DA4 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6918 7F0C1DA8 00000000 */ nop +/* 0F691C 7F0C1DAC 0C001CF5 */ jal musicTrack2Vol +/* 0F6920 7F0C1DB0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6924 7F0C1DB4 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6928 7F0C1DB8 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F692C 7F0C1DBC 0C001C85 */ jal musicTrack2Play +/* 0F6930 7F0C1DC0 24040018 */ li $a0, 24 +/* 0F6934 7F0C1DC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6938 7F0C1DC8 44816000 */ mtc1 $at, $f12 +/* 0F693C 7F0C1DCC 0C001E06 */ jal music_related_11 +/* 0F6940 7F0C1DD0 00000000 */ nop +/* 0F6944 7F0C1DD4 10000032 */ b .Ljp7F0C1EA0 +/* 0F6948 7F0C1DD8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1DDC: +/* 0F694C 7F0C1DDC 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6950 7F0C1DE0 00000000 */ nop +/* 0F6954 7F0C1DE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6958 7F0C1DE8 44816000 */ mtc1 $at, $f12 +/* 0F695C 7F0C1DEC 0C001C5E */ jal music_related_3 +/* 0F6960 7F0C1DF0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6964 7F0C1DF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6968 7F0C1DF8 44816000 */ mtc1 $at, $f12 +/* 0F696C 7F0C1DFC 0C001D24 */ jal music_related_6 +/* 0F6970 7F0C1E00 00000000 */ nop +/* 0F6974 7F0C1E04 10000026 */ b .Ljp7F0C1EA0 +/* 0F6978 7F0C1E08 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E0C: +/* 0F697C 7F0C1E0C 2C810007 */ sltiu $at, $a0, 7 +/* 0F6980 7F0C1E10 10200020 */ beqz $at, .Ljp7F0C1E94 +/* 0F6984 7F0C1E14 00045880 */ sll $t3, $a0, 2 +/* 0F6988 7F0C1E18 3C018006 */ lui $at, %hi(jpt_8005B858) +/* 0F698C 7F0C1E1C 002B0821 */ addu $at, $at, $t3 +/* 0F6990 7F0C1E20 8C2BB898 */ lw $t3, %lo(jpt_8005B858)($at) +/* 0F6994 7F0C1E24 01600008 */ jr $t3 +/* 0F6998 7F0C1E28 00000000 */ nop +.Ljp7F0C1E2C: +/* 0F699C 7F0C1E2C 0C001BF8 */ jal musicTrack1Stop +/* 0F69A0 7F0C1E30 00000000 */ nop +/* 0F69A4 7F0C1E34 0C001CDA */ jal musicTrack2Stop +/* 0F69A8 7F0C1E38 00000000 */ nop +/* 0F69AC 7F0C1E3C 0C001DBC */ jal musicTrack3Stop +/* 0F69B0 7F0C1E40 00000000 */ nop +/* 0F69B4 7F0C1E44 10000016 */ b .Ljp7F0C1EA0 +/* 0F69B8 7F0C1E48 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E4C: +/* 0F69BC 7F0C1E4C 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F69C0 7F0C1E50 00000000 */ nop +/* 0F69C4 7F0C1E54 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F69C8 7F0C1E58 44816000 */ mtc1 $at, $f12 +/* 0F69CC 7F0C1E5C 0C001C5E */ jal music_related_3 +/* 0F69D0 7F0C1E60 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F69D4 7F0C1E64 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F69D8 7F0C1E68 44816000 */ mtc1 $at, $f12 +/* 0F69DC 7F0C1E6C 0C001D24 */ jal music_related_6 +/* 0F69E0 7F0C1E70 00000000 */ nop +/* 0F69E4 7F0C1E74 1000000A */ b .Ljp7F0C1EA0 +/* 0F69E8 7F0C1E78 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E7C: +/* 0F69EC 7F0C1E7C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F69F0 7F0C1E80 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F69F4 7F0C1E84 0C001C85 */ jal musicTrack2Play +/* 0F69F8 7F0C1E88 2404003A */ li $a0, 58 +/* 0F69FC 7F0C1E8C 10000004 */ b .Ljp7F0C1EA0 +/* 0F6A00 7F0C1E90 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E94: +/* 0F6A04 7F0C1E94 1000FFFF */ b .Ljp7F0C1E94 +/* 0F6A08 7F0C1E98 00000000 */ nop +.Ljp7F0C1E9C: +/* 0F6A0C 7F0C1E9C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1EA0: +/* 0F6A10 7F0C1EA0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F6A14 7F0C1EA4 03E00008 */ jr $ra +/* 0F6A18 7F0C1EA8 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING// +void sub_GAME_7F0C11FC(s16 param_1) +{ + musicTrack1Stop(); + musicTrack2Stop(); + musicTrack3Stop(); + mission_state = 0; + dword_CODE_bss_8008C600 = (int)param_1; + + if (sub_GAME_7F0D2848(param_1) < 0) + { + set_missionstate(1); + } + else + { + set_missionstate(4); + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C11FC +/* 0F5D2C 7F0C11FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5D30 7F0C1200 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5D34 7F0C1204 0C001BF4 */ jal musicTrack1Stop +/* 0F5D38 7F0C1208 AFA40018 */ sw $a0, 0x18($sp) +/* 0F5D3C 7F0C120C 0C001CD6 */ jal musicTrack2Stop +/* 0F5D40 7F0C1210 00000000 */ nop +/* 0F5D44 7F0C1214 0C001DB8 */ jal musicTrack3Stop +/* 0F5D48 7F0C1218 00000000 */ nop +/* 0F5D4C 7F0C121C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F5D50 7F0C1220 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008C600) +/* 0F5D54 7F0C1224 3C018005 */ lui $at, %hi(mission_state) +/* 0F5D58 7F0C1228 2442C600 */ addiu $v0, %lo(dword_CODE_bss_8008C600) # addiu $v0, $v0, -0x3a00 +/* 0F5D5C 7F0C122C AC2084C0 */ sw $zero, %lo(mission_state)($at) +/* 0F5D60 7F0C1230 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F5D64 7F0C1234 AC440000 */ sw $a0, ($v0) +/* 0F5D68 7F0C1238 04410005 */ bgez $v0, .L7F0C1250 +/* 0F5D6C 7F0C123C 00000000 */ nop +/* 0F5D70 7F0C1240 0FC3030F */ jal set_missionstate +/* 0F5D74 7F0C1244 24040001 */ li $a0, 1 +/* 0F5D78 7F0C1248 10000004 */ b .L7F0C125C +/* 0F5D7C 7F0C124C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1250: +/* 0F5D80 7F0C1250 0FC3030F */ jal set_missionstate +/* 0F5D84 7F0C1254 24040004 */ li $a0, 4 +/* 0F5D88 7F0C1258 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C125C: +/* 0F5D8C 7F0C125C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5D90 7F0C1260 03E00008 */ jr $ra +/* 0F5D94 7F0C1264 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0C1268(void) +{ + set_missionstate(0); +} + +void sub_GAME_7F0C1288(void) +{ + if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + { + set_missionstate(2); + } + else + { + set_missionstate(5); + } +} + +void sub_GAME_7F0C12CC(void) +{ + if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + { + set_missionstate(1); + } + else + { + set_missionstate(4); + } +} + +void sub_GAME_7F0C1310(void) +{ + dword_CODE_bss_8008C604 = mission_state; + set_missionstate(3); +} + +void sub_GAME_7F0C1340(void) +{ + set_missionstate(dword_CODE_bss_8008C604); +} + +void sub_GAME_7F0C1364(void) +{ + music_slot_active_0 = 0; + music_slot_minutes_0 = 0; + music_slot_seconds_0 = 0; + music_slot_active_1 = 0; + music_slot_minutes_1 = 0; + music_slot_seconds_1 = 0; + music_slot_active_2 = 0; + music_slot_minutes_2 = 0; + music_slot_seconds_2 = 0; + music_slot_active_3 = 0; + music_slot_minutes_3 = 0; + music_slot_seconds_3 = 0; +} + + + + + + +#ifdef NONMATCHING +void reset_all_music_slots(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_all_music_slots +/* 0F5EF8 7F0C13C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F5EFC 7F0C13CC 3C078009 */ lui $a3, %hi(music_slot_active_0) +/* 0F5F00 7F0C13D0 3C048009 */ lui $a0, %hi(music_slot_minutes_0) +/* 0F5F04 7F0C13D4 3C068005 */ lui $a2, %hi(clock_timer) +/* 0F5F08 7F0C13D8 3C098009 */ lui $t1, %hi(music_slot_seconds_0) +/* 0F5F0C 7F0C13DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5F10 7F0C13E0 00005025 */ move $t2, $zero +/* 0F5F14 7F0C13E4 2529C628 */ addiu $t1, %lo(music_slot_seconds_0) # addiu $t1, $t1, -0x39d8 +/* 0F5F18 7F0C13E8 8CC68374 */ lw $a2, %lo(clock_timer)($a2) +/* 0F5F1C 7F0C13EC 2484C618 */ addiu $a0, %lo(music_slot_minutes_0) # addiu $a0, $a0, -0x39e8 +/* 0F5F20 7F0C13F0 24E7C608 */ addiu $a3, %lo(music_slot_active_0) # addiu $a3, $a3, -0x39f8 +/* 0F5F24 7F0C13F4 00004025 */ move $t0, $zero +.L7F0C13F8: +/* 0F5F28 7F0C13F8 8CE50000 */ lw $a1, ($a3) +/* 0F5F2C 7F0C13FC 54A00005 */ bnezl $a1, .L7F0C1414 +/* 0F5F30 7F0C1400 8C820000 */ lw $v0, ($a0) +/* 0F5F34 7F0C1404 8C8E0000 */ lw $t6, ($a0) +/* 0F5F38 7F0C1408 59C0001F */ blezl $t6, .L7F0C1488 +/* 0F5F3C 7F0C140C 24840004 */ addiu $a0, $a0, 4 +/* 0F5F40 7F0C1410 8C820000 */ lw $v0, ($a0) +.L7F0C1414: +/* 0F5F44 7F0C1414 3C0F8009 */ lui $t7, %hi(music_slot_seconds_0) +/* 0F5F48 7F0C1418 25EFC628 */ addiu $t7, %lo(music_slot_seconds_0) # addiu $t7, $t7, -0x39d8 +/* 0F5F4C 7F0C141C 0046082A */ slt $at, $v0, $a2 +/* 0F5F50 7F0C1420 14200004 */ bnez $at, .L7F0C1434 +/* 0F5F54 7F0C1424 010F1821 */ addu $v1, $t0, $t7 +/* 0F5F58 7F0C1428 0046C023 */ subu $t8, $v0, $a2 +/* 0F5F5C 7F0C142C 10000002 */ b .L7F0C1438 +/* 0F5F60 7F0C1430 AC980000 */ sw $t8, ($a0) +.L7F0C1434: +/* 0F5F64 7F0C1434 AC800000 */ sw $zero, ($a0) +.L7F0C1438: +/* 0F5F68 7F0C1438 8C620000 */ lw $v0, ($v1) +/* 0F5F6C 7F0C143C 10400011 */ beqz $v0, .L7F0C1484 +/* 0F5F70 7F0C1440 0046082A */ slt $at, $v0, $a2 +/* 0F5F74 7F0C1444 14200003 */ bnez $at, .L7F0C1454 +/* 0F5F78 7F0C1448 0046C823 */ subu $t9, $v0, $a2 +/* 0F5F7C 7F0C144C 10000002 */ b .L7F0C1458 +/* 0F5F80 7F0C1450 AC790000 */ sw $t9, ($v1) +.L7F0C1454: +/* 0F5F84 7F0C1454 AC600000 */ sw $zero, ($v1) +.L7F0C1458: +/* 0F5F88 7F0C1458 8C6B0000 */ lw $t3, ($v1) +/* 0F5F8C 7F0C145C 51600009 */ beql $t3, $zero, .L7F0C1484 +/* 0F5F90 7F0C1460 ACE00000 */ sw $zero, ($a3) +/* 0F5F94 7F0C1464 14A00004 */ bnez $a1, .L7F0C1478 +/* 0F5F98 7F0C1468 00000000 */ nop +/* 0F5F9C 7F0C146C 8C8C0000 */ lw $t4, ($a0) +/* 0F5FA0 7F0C1470 51800005 */ beql $t4, $zero, .L7F0C1488 +/* 0F5FA4 7F0C1474 24840004 */ addiu $a0, $a0, 4 +.L7F0C1478: +/* 0F5FA8 7F0C1478 10000002 */ b .L7F0C1484 +/* 0F5FAC 7F0C147C 240A0001 */ li $t2, 1 +/* 0F5FB0 7F0C1480 ACE00000 */ sw $zero, ($a3) +.L7F0C1484: +/* 0F5FB4 7F0C1484 24840004 */ addiu $a0, $a0, 4 +.L7F0C1488: +/* 0F5FB8 7F0C1488 25080004 */ addiu $t0, $t0, 4 +/* 0F5FBC 7F0C148C 1489FFDA */ bne $a0, $t1, .L7F0C13F8 +/* 0F5FC0 7F0C1490 24E70004 */ addiu $a3, $a3, 4 +/* 0F5FC4 7F0C1494 50C00016 */ beql $a2, $zero, .L7F0C14F0 +/* 0F5FC8 7F0C1498 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5FCC 7F0C149C 0FC3030C */ jal get_mission_state +/* 0F5FD0 7F0C14A0 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F5FD4 7F0C14A4 24010002 */ li $at, 2 +/* 0F5FD8 7F0C14A8 10410006 */ beq $v0, $at, .L7F0C14C4 +/* 0F5FDC 7F0C14AC 8FAA0018 */ lw $t2, 0x18($sp) +/* 0F5FE0 7F0C14B0 0FC3030C */ jal get_mission_state +/* 0F5FE4 7F0C14B4 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F5FE8 7F0C14B8 24010005 */ li $at, 5 +/* 0F5FEC 7F0C14BC 14410007 */ bne $v0, $at, .L7F0C14DC +/* 0F5FF0 7F0C14C0 8FAA0018 */ lw $t2, 0x18($sp) +.L7F0C14C4: +/* 0F5FF4 7F0C14C4 5540000A */ bnezl $t2, .L7F0C14F0 +/* 0F5FF8 7F0C14C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5FFC 7F0C14CC 0FC304B3 */ jal sub_GAME_7F0C12CC +/* 0F6000 7F0C14D0 00000000 */ nop +/* 0F6004 7F0C14D4 10000006 */ b .L7F0C14F0 +/* 0F6008 7F0C14D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C14DC: +/* 0F600C 7F0C14DC 51400004 */ beql $t2, $zero, .L7F0C14F0 +/* 0F6010 7F0C14E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6014 7F0C14E4 0FC304A2 */ jal sub_GAME_7F0C1288 +/* 0F6018 7F0C14E8 00000000 */ nop +/* 0F601C 7F0C14EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C14F0: +/* 0F6020 7F0C14F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6024 7F0C14F4 03E00008 */ jr $ra +/* 0F6028 7F0C14F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_musicslot_time(int slot,int min,int sec) +{ + if (music_slot_active[slot] == 0) { + music_slot_active[slot] = 1; + music_slot_minutes[slot] = min * 0x3c; + music_slot_seconds[slot] = sec * 0x3c; + } +} +#else +GLOBAL_ASM( +.text +glabel set_musicslot_time +/* 0F602C 7F0C14FC 3C0E8009 */ lui $t6, %hi(music_slot_active_0) +/* 0F6030 7F0C1500 25CEC608 */ addiu $t6, %lo(music_slot_active_0) # addiu $t6, $t6, -0x39f8 +/* 0F6034 7F0C1504 00041080 */ sll $v0, $a0, 2 +/* 0F6038 7F0C1508 004E1821 */ addu $v1, $v0, $t6 +/* 0F603C 7F0C150C 8C6F0000 */ lw $t7, ($v1) +/* 0F6040 7F0C1510 2404003C */ li $a0, 60 +/* 0F6044 7F0C1514 15E0000E */ bnez $t7, .L7F0C1550 +/* 0F6048 7F0C1518 00000000 */ nop +/* 0F604C 7F0C151C 00A40019 */ multu $a1, $a0 +/* 0F6050 7F0C1520 24180001 */ li $t8, 1 +/* 0F6054 7F0C1524 3C018009 */ lui $at, %hi(music_slot_minutes_0) +/* 0F6058 7F0C1528 AC780000 */ sw $t8, ($v1) +/* 0F605C 7F0C152C 00220821 */ addu $at, $at, $v0 +/* 0F6060 7F0C1530 0000C812 */ mflo $t9 +/* 0F6064 7F0C1534 AC39C618 */ sw $t9, %lo(music_slot_minutes_0)($at) +/* 0F6068 7F0C1538 3C018009 */ lui $at, %hi(music_slot_seconds_0) +/* 0F606C 7F0C153C 00C40019 */ multu $a2, $a0 +/* 0F6070 7F0C1540 00220821 */ addu $at, $at, $v0 +/* 0F6074 7F0C1544 00004012 */ mflo $t0 +/* 0F6078 7F0C1548 AC28C628 */ sw $t0, %lo(music_slot_seconds_0)($at) +/* 0F607C 7F0C154C 00000000 */ nop +.L7F0C1550: +/* 0F6080 7F0C1550 03E00008 */ jr $ra +/* 0F6084 7F0C1554 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void reset_music_in_slot(int lParm1) +{ + if (-1 < lParm1) { + (&music_slot_active_0)[(int)lParm1] = 0; + return; + } + music_slot_active_0 = 0; + music_slot_active_1 = 0; + music_slot_active_2 = 0; + music_slot_active_3 = 0; + music_slot_minutes_0 = 0; + music_slot_minutes_1 = 0; + music_slot_minutes_2 = 0; + music_slot_minutes_3 = 0; + music_slot_seconds_0 = 0; + music_slot_seconds_1 = 0; + music_slot_seconds_2 = 0; + music_slot_seconds_3 = 0; + return; +} +#else +GLOBAL_ASM( +.text +glabel reset_music_in_slot +/* 0F6088 7F0C1558 04800006 */ bltz $a0, .L7F0C1574 +/* 0F608C 7F0C155C 3C018009 */ lui $at, %hi(music_slot_active_0) +/* 0F6090 7F0C1560 00047080 */ sll $t6, $a0, 2 +/* 0F6094 7F0C1564 3C018009 */ lui $at, %hi(music_slot_active_0) +/* 0F6098 7F0C1568 002E0821 */ addu $at, $at, $t6 +/* 0F609C 7F0C156C 03E00008 */ jr $ra +/* 0F60A0 7F0C1570 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at) + +.L7F0C1574: +/* 0F60A4 7F0C1574 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at) +/* 0F60A8 7F0C1578 3C018009 */ lui $at, %hi(music_slot_minutes_0) +/* 0F60AC 7F0C157C AC20C618 */ sw $zero, %lo(music_slot_minutes_0)($at) +/* 0F60B0 7F0C1580 3C018009 */ lui $at, %hi(music_slot_seconds_0) +/* 0F60B4 7F0C1584 AC20C628 */ sw $zero, %lo(music_slot_seconds_0)($at) +/* 0F60B8 7F0C1588 3C018009 */ lui $at, %hi(music_slot_active_1) +/* 0F60BC 7F0C158C AC20C60C */ sw $zero, %lo(music_slot_active_1)($at) +/* 0F60C0 7F0C1590 3C018009 */ lui $at, %hi(music_slot_minutes_1) +/* 0F60C4 7F0C1594 AC20C61C */ sw $zero, %lo(music_slot_minutes_1)($at) +/* 0F60C8 7F0C1598 3C018009 */ lui $at, %hi(music_slot_seconds_1) +/* 0F60CC 7F0C159C AC20C62C */ sw $zero, %lo(music_slot_seconds_1)($at) +/* 0F60D0 7F0C15A0 3C018009 */ lui $at, %hi(music_slot_active_2) +/* 0F60D4 7F0C15A4 AC20C610 */ sw $zero, %lo(music_slot_active_2)($at) +/* 0F60D8 7F0C15A8 3C018009 */ lui $at, %hi(music_slot_minutes_2) +/* 0F60DC 7F0C15AC AC20C620 */ sw $zero, %lo(music_slot_minutes_2)($at) +/* 0F60E0 7F0C15B0 3C018009 */ lui $at, %hi(music_slot_seconds_2) +/* 0F60E4 7F0C15B4 AC20C630 */ sw $zero, %lo(music_slot_seconds_2)($at) +/* 0F60E8 7F0C15B8 3C018009 */ lui $at, %hi(music_slot_active_3) +/* 0F60EC 7F0C15BC AC20C614 */ sw $zero, %lo(music_slot_active_3)($at) +/* 0F60F0 7F0C15C0 3C018009 */ lui $at, %hi(music_slot_minutes_3) +/* 0F60F4 7F0C15C4 AC20C624 */ sw $zero, %lo(music_slot_minutes_3)($at) +/* 0F60F8 7F0C15C8 3C018009 */ lui $at, %hi(music_slot_seconds_3) +/* 0F60FC 7F0C15CC AC20C634 */ sw $zero, %lo(music_slot_seconds_3)($at) +/* 0F6100 7F0C15D0 03E00008 */ jr $ra +/* 0F6104 7F0C15D4 00000000 */ nop +) +#endif + + + diff --git a/src/game/mp_watch.c b/src/game/mp_watch.c new file mode 100644 index 0000000..0c9aa63 --- /dev/null +++ b/src/game/mp_watch.c @@ -0,0 +1,7276 @@ +#include "ultra64.h" +#include "game/unk_0C0A70.h" +#include "game/unk_093880.h" +#include "music.h" +#include "bondgame.h" +#include "bondconstants.h" + + +// bss +s32 stop_play_flag; +s32 is_gameover_flag; +s32 dword_CODE_bss_8008C708; +s32 dword_CODE_bss_8008C70C; +s32 time_trigger_alt_gameover_msg; +s32 dword_CODE_bss_8008C714; +s32 is_paused; +s32 who_paused; + +// data +u16 loaded_text_index[] = { + 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) +}; + +//rodata +/*8005BC20*/ +const char ascii_MP_watch_menu_percentd[] = "%d"; +const char ascii_MP_watch_menu_BLANK[] = ""; +const char ascii_MP_watch_menu_left_chevron[] = "<"; +const char ascii_MP_watch_menu_right_chevron[] = ">"; +const char ascii_pnum_KILLS[] = "%s%d %s"; +const char ascii_pnum_LOSSES[] = "%s%d %s"; + +// rodata + + +#ifdef NONMATCHING +u32 check_can_advance_right_on_mpmenu(void) { + switch(pPlayer->mpmenumode) { + case 0: + return 1; + case 1: + return 1; + case 2: + return 1; + case 3: + if (is_gameover_flag == 0) { + return 1; + } + return 0; + case 4: + return 1; + case 5: + return 0; + case 6: + return 0; + case 7: + return 0; + default: + return 0; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC40*/ +glabel jpt_MP_menu_page_adv_right +.word page_adv_right_yes +.word page_adv_right_yes +.word page_adv_right_yes +.word page_adv_right_gameover +.word page_adv_right_yes +.word page_adv_right_no +.word page_adv_right_no +.word page_adv_right_no +.text +glabel check_can_advance_right_on_mpmenu +/* 0F6950 7F0C1E20 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0F6954 7F0C1E24 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0F6958 7F0C1E28 00001025 */ move $v0, $zero +/* 0F695C 7F0C1E2C 8DCF29C8 */ lw $t7, 0x29c8($t6) +/* 0F6960 7F0C1E30 2DE10008 */ sltiu $at, $t7, 8 +/* 0F6964 7F0C1E34 10200013 */ beqz $at, .L7F0C1E84 +/* 0F6968 7F0C1E38 000F7880 */ sll $t7, $t7, 2 +/* 0F696C 7F0C1E3C 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_right) +/* 0F6970 7F0C1E40 002F0821 */ addu $at, $at, $t7 +/* 0F6974 7F0C1E44 8C2FBC40 */ lw $t7, %lo(jpt_MP_menu_page_adv_right)($at) +/* 0F6978 7F0C1E48 01E00008 */ jr $t7 +/* 0F697C 7F0C1E4C 00000000 */ nop +page_adv_right_yes: +/* 0F6980 7F0C1E50 03E00008 */ jr $ra +/* 0F6984 7F0C1E54 24020001 */ li $v0, 1 + +page_adv_right_no: +/* 0F6988 7F0C1E58 03E00008 */ jr $ra +/* 0F698C 7F0C1E5C 00001025 */ move $v0, $zero + +page_adv_right_gameover: +/* 0F6990 7F0C1E60 3C188009 */ lui $t8, %hi(is_gameover_flag) +/* 0F6994 7F0C1E64 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) +/* 0F6998 7F0C1E68 24030001 */ li $v1, 1 +/* 0F699C 7F0C1E6C 13000003 */ beqz $t8, .L7F0C1E7C +/* 0F69A0 7F0C1E70 00000000 */ nop +/* 0F69A4 7F0C1E74 03E00008 */ jr $ra +/* 0F69A8 7F0C1E78 00001025 */ move $v0, $zero + +.L7F0C1E7C: +/* 0F69AC 7F0C1E7C 03E00008 */ jr $ra +/* 0F69B0 7F0C1E80 00601025 */ move $v0, $v1 + +.L7F0C1E84: +/* 0F69B4 7F0C1E84 03E00008 */ jr $ra +/* 0F69B8 7F0C1E88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +u32 check_can_advance_left_on_mpmenu(void) { + switch(pPlayer->mpmenumode) { + case 0: + return 0; + case 1: + if (is_gameover_flag == 0) { + return 0; + } + return 1; + case 2: + return 1; + case 3: + return 1; + case 4: + return 1; + case 5: + return 1; + case 6: + return 0; + case 7: + return 0; + default: + return 0; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC60*/ +glabel jpt_MP_menu_page_adv_left +.word page_adv_left_no +.word page_adv_left_gameover +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_no +.word page_adv_left_no + +.text +glabel check_can_advance_left_on_mpmenu +/* 0F69BC 7F0C1E8C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0F69C0 7F0C1E90 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0F69C4 7F0C1E94 00001025 */ move $v0, $zero +/* 0F69C8 7F0C1E98 8DCF29C8 */ lw $t7, 0x29c8($t6) +/* 0F69CC 7F0C1E9C 2DE10008 */ sltiu $at, $t7, 8 +/* 0F69D0 7F0C1EA0 10200013 */ beqz $at, .L7F0C1EF0 +/* 0F69D4 7F0C1EA4 000F7880 */ sll $t7, $t7, 2 +/* 0F69D8 7F0C1EA8 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_left) +/* 0F69DC 7F0C1EAC 002F0821 */ addu $at, $at, $t7 +/* 0F69E0 7F0C1EB0 8C2FBC60 */ lw $t7, %lo(jpt_MP_menu_page_adv_left)($at) +/* 0F69E4 7F0C1EB4 01E00008 */ jr $t7 +/* 0F69E8 7F0C1EB8 00000000 */ nop +page_adv_left_yes: +/* 0F69EC 7F0C1EBC 03E00008 */ jr $ra +/* 0F69F0 7F0C1EC0 24020001 */ li $v0, 1 + +page_adv_left_no: +/* 0F69F4 7F0C1EC4 03E00008 */ jr $ra +/* 0F69F8 7F0C1EC8 00001025 */ move $v0, $zero + +page_adv_left_gameover: +/* 0F69FC 7F0C1ECC 3C188009 */ lui $t8, %hi(is_gameover_flag) +/* 0F6A00 7F0C1ED0 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) +/* 0F6A04 7F0C1ED4 00001825 */ move $v1, $zero +/* 0F6A08 7F0C1ED8 13000003 */ beqz $t8, .L7F0C1EE8 +/* 0F6A0C 7F0C1EDC 00000000 */ nop +/* 0F6A10 7F0C1EE0 03E00008 */ jr $ra +/* 0F6A14 7F0C1EE4 24020001 */ li $v0, 1 + +.L7F0C1EE8: +/* 0F6A18 7F0C1EE8 03E00008 */ jr $ra +/* 0F6A1C 7F0C1EEC 00601025 */ move $v0, $v1 + +def_7F0C1EB4: +.L7F0C1EF0: +/* 0F6A20 7F0C1EF0 03E00008 */ jr $ra +/* 0F6A24 7F0C1EF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_player_is_pressing_anything_right(s32 arg0) { + s32 sp18; + s32 sp1C; + s32 temp_t6; + ? temp_ret; + + // Node 0 + temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); + sp18 = temp_t6; + sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); + temp_ret = get_controller_buttons_pressed(sp18, 0x101); + if ((temp_ret == 0) && (sp1C > 0)) + { + // Node 2 + if (pPlayer->unk29D0 != 0) + { + // Node 3 + } + } + else + { + // Node 3 + } + // Node 4 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel check_if_player_is_pressing_anything_right +/* 0F6A28 7F0C1EF8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6A2C 7F0C1EFC 00042600 */ sll $a0, $a0, 0x18 +/* 0F6A30 7F0C1F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6A34 7F0C1F04 00047603 */ sra $t6, $a0, 0x18 +/* 0F6A38 7F0C1F08 01C02025 */ move $a0, $t6 +/* 0F6A3C 7F0C1F0C AFAE0018 */ sw $t6, 0x18($sp) +/* 0F6A40 7F0C1F10 2405FFFE */ li $a1, -2 +/* 0F6A44 7F0C1F14 0C00312D */ jal get_controller_3dstick_L_R +/* 0F6A48 7F0C1F18 24060001 */ li $a2, 1 +/* 0F6A4C 7F0C1F1C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6A50 7F0C1F20 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F6A54 7F0C1F24 0C0030EB */ jal get_controller_buttons_pressed +/* 0F6A58 7F0C1F28 24050101 */ li $a1, 257 +/* 0F6A5C 7F0C1F2C 1440000A */ bnez $v0, .L7F0C1F58 +/* 0F6A60 7F0C1F30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6A64 7F0C1F34 8FAF001C */ lw $t7, 0x1c($sp) +/* 0F6A68 7F0C1F38 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F6A6C 7F0C1F3C 00001025 */ move $v0, $zero +/* 0F6A70 7F0C1F40 19E00007 */ blez $t7, .L7F0C1F60 +/* 0F6A74 7F0C1F44 00000000 */ nop +/* 0F6A78 7F0C1F48 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F6A7C 7F0C1F4C 8F1929D0 */ lw $t9, 0x29d0($t8) +/* 0F6A80 7F0C1F50 13200003 */ beqz $t9, .L7F0C1F60 +/* 0F6A84 7F0C1F54 00000000 */ nop +.L7F0C1F58: +/* 0F6A88 7F0C1F58 10000001 */ b .L7F0C1F60 +/* 0F6A8C 7F0C1F5C 24020001 */ li $v0, 1 +.L7F0C1F60: +/* 0F6A90 7F0C1F60 03E00008 */ jr $ra +/* 0F6A94 7F0C1F64 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_player_is_pressing_anything_left(s32 arg0) { + s32 sp18; + s32 sp1C; + s32 temp_t6; + + // Node 0 + temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); + sp18 = temp_t6; + sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); + if ((get_controller_buttons_pressed(sp18, 0x202) == 0) && (sp1C < -1)) + { + // Node 2 + if (pPlayer->unk29D0 != 0) + { + // Node 3 + return; + // (possible return value: 1) + } + } + else + { + // Node 3 + return; + // (possible return value: 1) + } + // (possible return value: 1) +} + +#else +GLOBAL_ASM( +.text +glabel check_if_player_is_pressing_anything_left +/* 0F6A98 7F0C1F68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6A9C 7F0C1F6C 00042600 */ sll $a0, $a0, 0x18 +/* 0F6AA0 7F0C1F70 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6AA4 7F0C1F74 00047603 */ sra $t6, $a0, 0x18 +/* 0F6AA8 7F0C1F78 01C02025 */ move $a0, $t6 +/* 0F6AAC 7F0C1F7C AFAE0018 */ sw $t6, 0x18($sp) +/* 0F6AB0 7F0C1F80 2405FFFE */ li $a1, -2 +/* 0F6AB4 7F0C1F84 0C00312D */ jal get_controller_3dstick_L_R +/* 0F6AB8 7F0C1F88 24060001 */ li $a2, 1 +/* 0F6ABC 7F0C1F8C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6AC0 7F0C1F90 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F6AC4 7F0C1F94 0C0030EB */ jal get_controller_buttons_pressed +/* 0F6AC8 7F0C1F98 24050202 */ li $a1, 514 +/* 0F6ACC 7F0C1F9C 1440000B */ bnez $v0, .L7F0C1FCC +/* 0F6AD0 7F0C1FA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6AD4 7F0C1FA4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0F6AD8 7F0C1FA8 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F6ADC 7F0C1FAC 00001025 */ move $v0, $zero +/* 0F6AE0 7F0C1FB0 29E1FFFF */ slti $at, $t7, -1 +/* 0F6AE4 7F0C1FB4 10200007 */ beqz $at, .L7F0C1FD4 +/* 0F6AE8 7F0C1FB8 00000000 */ nop +/* 0F6AEC 7F0C1FBC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F6AF0 7F0C1FC0 8F1929D0 */ lw $t9, 0x29d0($t8) +/* 0F6AF4 7F0C1FC4 13200003 */ beqz $t9, .L7F0C1FD4 +/* 0F6AF8 7F0C1FC8 00000000 */ nop +.L7F0C1FCC: +/* 0F6AFC 7F0C1FCC 10000001 */ b .L7F0C1FD4 +/* 0F6B00 7F0C1FD0 24020001 */ li $v0, 1 +.L7F0C1FD4: +/* 0F6B04 7F0C1FD4 03E00008 */ jr $ra +/* 0F6B08 7F0C1FD8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +void play_watch_sfx_beep(void) +{ + play_sfx_a1(ptr_sfx_buf, 0x9f, 0); +} + +void unpause_game(void) +{ + stop_play_flag = 0; + is_gameover_flag = 0; + is_paused = 0; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2024 +/* 0F6B54 7F0C2024 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6B58 7F0C2028 00A6082A */ slt $at, $a1, $a2 +/* 0F6B5C 7F0C202C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6B60 7F0C2030 1420000C */ bnez $at, .L7F0C2064 +/* 0F6B64 7F0C2034 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6B68 7F0C2038 54C5000E */ bnel $a2, $a1, .L7F0C2074 +/* 0F6B6C 7F0C203C 00002025 */ move $a0, $zero +/* 0F6B70 7F0C2040 AFA50024 */ sw $a1, 0x24($sp) +/* 0F6B74 7F0C2044 AFA60028 */ sw $a2, 0x28($sp) +/* 0F6B78 7F0C2048 0C002914 */ jal get_random_value +/* 0F6B7C 7F0C204C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6B80 7F0C2050 304E0001 */ andi $t6, $v0, 1 +/* 0F6B84 7F0C2054 8FA50024 */ lw $a1, 0x24($sp) +/* 0F6B88 7F0C2058 8FA60028 */ lw $a2, 0x28($sp) +/* 0F6B8C 7F0C205C 11C00004 */ beqz $t6, .L7F0C2070 +/* 0F6B90 7F0C2060 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0C2064: +/* 0F6B94 7F0C2064 24040001 */ li $a0, 1 +/* 0F6B98 7F0C2068 10000003 */ b .L7F0C2078 +/* 0F6B9C 7F0C206C 00C01825 */ move $v1, $a2 +.L7F0C2070: +/* 0F6BA0 7F0C2070 00002025 */ move $a0, $zero +.L7F0C2074: +/* 0F6BA4 7F0C2074 00A01825 */ move $v1, $a1 +.L7F0C2078: +/* 0F6BA8 7F0C2078 8FAF0020 */ lw $t7, 0x20($sp) +/* 0F6BAC 7F0C207C 29E10003 */ slti $at, $t7, 3 +/* 0F6BB0 7F0C2080 1420001F */ bnez $at, .L7F0C2100 +/* 0F6BB4 7F0C2084 0067082A */ slt $at, $v1, $a3 +/* 0F6BB8 7F0C2088 5420000D */ bnezl $at, .L7F0C20C0 +/* 0F6BBC 7F0C208C 24040002 */ li $a0, 2 +/* 0F6BC0 7F0C2090 54E3000D */ bnel $a3, $v1, .L7F0C20C8 +/* 0F6BC4 7F0C2094 8FB90020 */ lw $t9, 0x20($sp) +/* 0F6BC8 7F0C2098 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6BCC 7F0C209C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6BD0 7F0C20A0 0C002914 */ jal get_random_value +/* 0F6BD4 7F0C20A4 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6BD8 7F0C20A8 30580001 */ andi $t8, $v0, 1 +/* 0F6BDC 7F0C20AC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6BE0 7F0C20B0 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6BE4 7F0C20B4 13000003 */ beqz $t8, .L7F0C20C4 +/* 0F6BE8 7F0C20B8 8FA7002C */ lw $a3, 0x2c($sp) +/* 0F6BEC 7F0C20BC 24040002 */ li $a0, 2 +.L7F0C20C0: +/* 0F6BF0 7F0C20C0 00E01825 */ move $v1, $a3 +.L7F0C20C4: +/* 0F6BF4 7F0C20C4 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C20C8: +/* 0F6BF8 7F0C20C8 8FA20030 */ lw $v0, 0x30($sp) +/* 0F6BFC 7F0C20CC 2B210004 */ slti $at, $t9, 4 +/* 0F6C00 7F0C20D0 1420000B */ bnez $at, .L7F0C2100 +/* 0F6C04 7F0C20D4 0062082A */ slt $at, $v1, $v0 +/* 0F6C08 7F0C20D8 54200009 */ bnezl $at, .L7F0C2100 +/* 0F6C0C 7F0C20DC 24040003 */ li $a0, 3 +/* 0F6C10 7F0C20E0 54430008 */ bnel $v0, $v1, .L7F0C2104 +/* 0F6C14 7F0C20E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6C18 7F0C20E8 0C002914 */ jal get_random_value +/* 0F6C1C 7F0C20EC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6C20 7F0C20F0 30480001 */ andi $t0, $v0, 1 +/* 0F6C24 7F0C20F4 11000002 */ beqz $t0, .L7F0C2100 +/* 0F6C28 7F0C20F8 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6C2C 7F0C20FC 24040003 */ li $a0, 3 +.L7F0C2100: +/* 0F6C30 7F0C2100 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C2104: +/* 0F6C34 7F0C2104 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6C38 7F0C2108 00801025 */ move $v0, $a0 +/* 0F6C3C 7F0C210C 03E00008 */ jr $ra +/* 0F6C40 7F0C2110 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2114(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2114 +/* 0F6C44 7F0C2114 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6C48 7F0C2118 00C5082A */ slt $at, $a2, $a1 +/* 0F6C4C 7F0C211C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6C50 7F0C2120 1420000C */ bnez $at, .L7F0C2154 +/* 0F6C54 7F0C2124 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6C58 7F0C2128 54C5000E */ bnel $a2, $a1, .L7F0C2164 +/* 0F6C5C 7F0C212C 00002025 */ move $a0, $zero +/* 0F6C60 7F0C2130 AFA50024 */ sw $a1, 0x24($sp) +/* 0F6C64 7F0C2134 AFA60028 */ sw $a2, 0x28($sp) +/* 0F6C68 7F0C2138 0C002914 */ jal get_random_value +/* 0F6C6C 7F0C213C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6C70 7F0C2140 304E0001 */ andi $t6, $v0, 1 +/* 0F6C74 7F0C2144 8FA50024 */ lw $a1, 0x24($sp) +/* 0F6C78 7F0C2148 8FA60028 */ lw $a2, 0x28($sp) +/* 0F6C7C 7F0C214C 11C00004 */ beqz $t6, .L7F0C2160 +/* 0F6C80 7F0C2150 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0C2154: +/* 0F6C84 7F0C2154 24040001 */ li $a0, 1 +/* 0F6C88 7F0C2158 10000003 */ b .L7F0C2168 +/* 0F6C8C 7F0C215C 00C01825 */ move $v1, $a2 +.L7F0C2160: +/* 0F6C90 7F0C2160 00002025 */ move $a0, $zero +.L7F0C2164: +/* 0F6C94 7F0C2164 00A01825 */ move $v1, $a1 +.L7F0C2168: +/* 0F6C98 7F0C2168 8FAF0020 */ lw $t7, 0x20($sp) +/* 0F6C9C 7F0C216C 29E10003 */ slti $at, $t7, 3 +/* 0F6CA0 7F0C2170 1420001F */ bnez $at, .L7F0C21F0 +/* 0F6CA4 7F0C2174 00E3082A */ slt $at, $a3, $v1 +/* 0F6CA8 7F0C2178 5420000D */ bnezl $at, .L7F0C21B0 +/* 0F6CAC 7F0C217C 24040002 */ li $a0, 2 +/* 0F6CB0 7F0C2180 54E3000D */ bnel $a3, $v1, .L7F0C21B8 +/* 0F6CB4 7F0C2184 8FB90020 */ lw $t9, 0x20($sp) +/* 0F6CB8 7F0C2188 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6CBC 7F0C218C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6CC0 7F0C2190 0C002914 */ jal get_random_value +/* 0F6CC4 7F0C2194 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6CC8 7F0C2198 30580001 */ andi $t8, $v0, 1 +/* 0F6CCC 7F0C219C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6CD0 7F0C21A0 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6CD4 7F0C21A4 13000003 */ beqz $t8, .L7F0C21B4 +/* 0F6CD8 7F0C21A8 8FA7002C */ lw $a3, 0x2c($sp) +/* 0F6CDC 7F0C21AC 24040002 */ li $a0, 2 +.L7F0C21B0: +/* 0F6CE0 7F0C21B0 00E01825 */ move $v1, $a3 +.L7F0C21B4: +/* 0F6CE4 7F0C21B4 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C21B8: +/* 0F6CE8 7F0C21B8 8FA20030 */ lw $v0, 0x30($sp) +/* 0F6CEC 7F0C21BC 2B210004 */ slti $at, $t9, 4 +/* 0F6CF0 7F0C21C0 1420000B */ bnez $at, .L7F0C21F0 +/* 0F6CF4 7F0C21C4 0043082A */ slt $at, $v0, $v1 +/* 0F6CF8 7F0C21C8 54200009 */ bnezl $at, .L7F0C21F0 +/* 0F6CFC 7F0C21CC 24040003 */ li $a0, 3 +/* 0F6D00 7F0C21D0 54430008 */ bnel $v0, $v1, .L7F0C21F4 +/* 0F6D04 7F0C21D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6D08 7F0C21D8 0C002914 */ jal get_random_value +/* 0F6D0C 7F0C21DC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6D10 7F0C21E0 30480001 */ andi $t0, $v0, 1 +/* 0F6D14 7F0C21E4 11000002 */ beqz $t0, .L7F0C21F0 +/* 0F6D18 7F0C21E8 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6D1C 7F0C21EC 24040003 */ li $a0, 3 +.L7F0C21F0: +/* 0F6D20 7F0C21F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C21F4: +/* 0F6D24 7F0C21F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6D28 7F0C21F8 00801025 */ move $v0, $a0 +/* 0F6D2C 7F0C21FC 03E00008 */ jr $ra +/* 0F6D30 7F0C2200 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2204(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2204 +/* 0F6D34 7F0C2204 44856000 */ mtc1 $a1, $f12 +/* 0F6D38 7F0C2208 44867000 */ mtc1 $a2, $f14 +/* 0F6D3C 7F0C220C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6D40 7F0C2210 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6D44 7F0C2214 460E603C */ c.lt.s $f12, $f14 +/* 0F6D48 7F0C2218 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6D4C 7F0C221C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6D50 7F0C2220 4503000D */ bc1tl .L7F0C2258 +/* 0F6D54 7F0C2224 4600710D */ trunc.w.s $f4, $f14 +/* 0F6D58 7F0C2228 460C7032 */ c.eq.s $f14, $f12 +/* 0F6D5C 7F0C222C 00000000 */ nop +/* 0F6D60 7F0C2230 4502000E */ bc1fl .L7F0C226C +/* 0F6D64 7F0C2234 4600618D */ trunc.w.s $f6, $f12 +/* 0F6D68 7F0C2238 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0F6D6C 7F0C223C 0C002914 */ jal get_random_value +/* 0F6D70 7F0C2240 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0F6D74 7F0C2244 304E0001 */ andi $t6, $v0, 1 +/* 0F6D78 7F0C2248 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0F6D7C 7F0C224C 11C00006 */ beqz $t6, .L7F0C2268 +/* 0F6D80 7F0C2250 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0F6D84 7F0C2254 4600710D */ trunc.w.s $f4, $f14 +.L7F0C2258: +/* 0F6D88 7F0C2258 24040001 */ li $a0, 1 +/* 0F6D8C 7F0C225C 44032000 */ mfc1 $v1, $f4 +/* 0F6D90 7F0C2260 10000006 */ b .L7F0C227C +/* 0F6D94 7F0C2264 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C2268: +/* 0F6D98 7F0C2268 4600618D */ trunc.w.s $f6, $f12 +.L7F0C226C: +/* 0F6D9C 7F0C226C 00002025 */ move $a0, $zero +/* 0F6DA0 7F0C2270 44033000 */ mfc1 $v1, $f6 +/* 0F6DA4 7F0C2274 00000000 */ nop +/* 0F6DA8 7F0C2278 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C227C: +/* 0F6DAC 7F0C227C 2B210003 */ slti $at, $t9, 3 +/* 0F6DB0 7F0C2280 5420002E */ bnezl $at, .L7F0C233C +/* 0F6DB4 7F0C2284 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6DB8 7F0C2288 44834000 */ mtc1 $v1, $f8 +/* 0F6DBC 7F0C228C C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0F6DC0 7F0C2290 46804020 */ cvt.s.w $f0, $f8 +/* 0F6DC4 7F0C2294 460A003C */ c.lt.s $f0, $f10 +/* 0F6DC8 7F0C2298 00000000 */ nop +/* 0F6DCC 7F0C229C 4503000D */ bc1tl .L7F0C22D4 +/* 0F6DD0 7F0C22A0 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0F6DD4 7F0C22A4 46005032 */ c.eq.s $f10, $f0 +/* 0F6DD8 7F0C22A8 00000000 */ nop +/* 0F6DDC 7F0C22AC 4502000E */ bc1fl .L7F0C22E8 +/* 0F6DE0 7F0C22B0 8FAA0020 */ lw $t2, 0x20($sp) +/* 0F6DE4 7F0C22B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6DE8 7F0C22B8 0C002914 */ jal get_random_value +/* 0F6DEC 7F0C22BC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6DF0 7F0C22C0 30480001 */ andi $t0, $v0, 1 +/* 0F6DF4 7F0C22C4 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6DF8 7F0C22C8 11000006 */ beqz $t0, .L7F0C22E4 +/* 0F6DFC 7F0C22CC 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6E00 7F0C22D0 C7B0002C */ lwc1 $f16, 0x2c($sp) +.L7F0C22D4: +/* 0F6E04 7F0C22D4 24040002 */ li $a0, 2 +/* 0F6E08 7F0C22D8 4600848D */ trunc.w.s $f18, $f16 +/* 0F6E0C 7F0C22DC 44039000 */ mfc1 $v1, $f18 +/* 0F6E10 7F0C22E0 00000000 */ nop +.L7F0C22E4: +/* 0F6E14 7F0C22E4 8FAA0020 */ lw $t2, 0x20($sp) +.L7F0C22E8: +/* 0F6E18 7F0C22E8 29410004 */ slti $at, $t2, 4 +/* 0F6E1C 7F0C22EC 54200013 */ bnezl $at, .L7F0C233C +/* 0F6E20 7F0C22F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6E24 7F0C22F4 44832000 */ mtc1 $v1, $f4 +/* 0F6E28 7F0C22F8 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 0F6E2C 7F0C22FC 46802020 */ cvt.s.w $f0, $f4 +/* 0F6E30 7F0C2300 4602003C */ c.lt.s $f0, $f2 +/* 0F6E34 7F0C2304 00000000 */ nop +/* 0F6E38 7F0C2308 4503000B */ bc1tl .L7F0C2338 +/* 0F6E3C 7F0C230C 24040003 */ li $a0, 3 +/* 0F6E40 7F0C2310 46001032 */ c.eq.s $f2, $f0 +/* 0F6E44 7F0C2314 00000000 */ nop +/* 0F6E48 7F0C2318 45020008 */ bc1fl .L7F0C233C +/* 0F6E4C 7F0C231C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6E50 7F0C2320 0C002914 */ jal get_random_value +/* 0F6E54 7F0C2324 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6E58 7F0C2328 304B0001 */ andi $t3, $v0, 1 +/* 0F6E5C 7F0C232C 11600002 */ beqz $t3, .L7F0C2338 +/* 0F6E60 7F0C2330 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6E64 7F0C2334 24040003 */ li $a0, 3 +.L7F0C2338: +/* 0F6E68 7F0C2338 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C233C: +/* 0F6E6C 7F0C233C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6E70 7F0C2340 00801025 */ move $v0, $a0 +/* 0F6E74 7F0C2344 03E00008 */ jr $ra +/* 0F6E78 7F0C2348 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C234C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C234C +/* 0F6E7C 7F0C234C 44856000 */ mtc1 $a1, $f12 +/* 0F6E80 7F0C2350 44867000 */ mtc1 $a2, $f14 +/* 0F6E84 7F0C2354 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6E88 7F0C2358 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6E8C 7F0C235C 460C703C */ c.lt.s $f14, $f12 +/* 0F6E90 7F0C2360 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6E94 7F0C2364 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6E98 7F0C2368 4503000D */ bc1tl .L7F0C23A0 +/* 0F6E9C 7F0C236C 4600710D */ trunc.w.s $f4, $f14 +/* 0F6EA0 7F0C2370 460C7032 */ c.eq.s $f14, $f12 +/* 0F6EA4 7F0C2374 00000000 */ nop +/* 0F6EA8 7F0C2378 4502000E */ bc1fl .L7F0C23B4 +/* 0F6EAC 7F0C237C 4600618D */ trunc.w.s $f6, $f12 +/* 0F6EB0 7F0C2380 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0F6EB4 7F0C2384 0C002914 */ jal get_random_value +/* 0F6EB8 7F0C2388 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0F6EBC 7F0C238C 304E0001 */ andi $t6, $v0, 1 +/* 0F6EC0 7F0C2390 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0F6EC4 7F0C2394 11C00006 */ beqz $t6, .L7F0C23B0 +/* 0F6EC8 7F0C2398 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0F6ECC 7F0C239C 4600710D */ trunc.w.s $f4, $f14 +.L7F0C23A0: +/* 0F6ED0 7F0C23A0 24040001 */ li $a0, 1 +/* 0F6ED4 7F0C23A4 44032000 */ mfc1 $v1, $f4 +/* 0F6ED8 7F0C23A8 10000006 */ b .L7F0C23C4 +/* 0F6EDC 7F0C23AC 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C23B0: +/* 0F6EE0 7F0C23B0 4600618D */ trunc.w.s $f6, $f12 +.L7F0C23B4: +/* 0F6EE4 7F0C23B4 00002025 */ move $a0, $zero +/* 0F6EE8 7F0C23B8 44033000 */ mfc1 $v1, $f6 +/* 0F6EEC 7F0C23BC 00000000 */ nop +/* 0F6EF0 7F0C23C0 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C23C4: +/* 0F6EF4 7F0C23C4 2B210003 */ slti $at, $t9, 3 +/* 0F6EF8 7F0C23C8 5420002E */ bnezl $at, .L7F0C2484 +/* 0F6EFC 7F0C23CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F00 7F0C23D0 44834000 */ mtc1 $v1, $f8 +/* 0F6F04 7F0C23D4 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0F6F08 7F0C23D8 46804020 */ cvt.s.w $f0, $f8 +/* 0F6F0C 7F0C23DC 4600503C */ c.lt.s $f10, $f0 +/* 0F6F10 7F0C23E0 00000000 */ nop +/* 0F6F14 7F0C23E4 4503000D */ bc1tl .L7F0C241C +/* 0F6F18 7F0C23E8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0F6F1C 7F0C23EC 46005032 */ c.eq.s $f10, $f0 +/* 0F6F20 7F0C23F0 00000000 */ nop +/* 0F6F24 7F0C23F4 4502000E */ bc1fl .L7F0C2430 +/* 0F6F28 7F0C23F8 8FAA0020 */ lw $t2, 0x20($sp) +/* 0F6F2C 7F0C23FC AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6F30 7F0C2400 0C002914 */ jal get_random_value +/* 0F6F34 7F0C2404 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6F38 7F0C2408 30480001 */ andi $t0, $v0, 1 +/* 0F6F3C 7F0C240C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6F40 7F0C2410 11000006 */ beqz $t0, .L7F0C242C +/* 0F6F44 7F0C2414 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6F48 7F0C2418 C7B0002C */ lwc1 $f16, 0x2c($sp) +.L7F0C241C: +/* 0F6F4C 7F0C241C 24040002 */ li $a0, 2 +/* 0F6F50 7F0C2420 4600848D */ trunc.w.s $f18, $f16 +/* 0F6F54 7F0C2424 44039000 */ mfc1 $v1, $f18 +/* 0F6F58 7F0C2428 00000000 */ nop +.L7F0C242C: +/* 0F6F5C 7F0C242C 8FAA0020 */ lw $t2, 0x20($sp) +.L7F0C2430: +/* 0F6F60 7F0C2430 29410004 */ slti $at, $t2, 4 +/* 0F6F64 7F0C2434 54200013 */ bnezl $at, .L7F0C2484 +/* 0F6F68 7F0C2438 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F6C 7F0C243C 44832000 */ mtc1 $v1, $f4 +/* 0F6F70 7F0C2440 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 0F6F74 7F0C2444 46802020 */ cvt.s.w $f0, $f4 +/* 0F6F78 7F0C2448 4600103C */ c.lt.s $f2, $f0 +/* 0F6F7C 7F0C244C 00000000 */ nop +/* 0F6F80 7F0C2450 4503000B */ bc1tl .L7F0C2480 +/* 0F6F84 7F0C2454 24040003 */ li $a0, 3 +/* 0F6F88 7F0C2458 46001032 */ c.eq.s $f2, $f0 +/* 0F6F8C 7F0C245C 00000000 */ nop +/* 0F6F90 7F0C2460 45020008 */ bc1fl .L7F0C2484 +/* 0F6F94 7F0C2464 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F98 7F0C2468 0C002914 */ jal get_random_value +/* 0F6F9C 7F0C246C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6FA0 7F0C2470 304B0001 */ andi $t3, $v0, 1 +/* 0F6FA4 7F0C2474 11600002 */ beqz $t3, .L7F0C2480 +/* 0F6FA8 7F0C2478 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6FAC 7F0C247C 24040003 */ li $a0, 3 +.L7F0C2480: +/* 0F6FB0 7F0C2480 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C2484: +/* 0F6FB4 7F0C2484 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6FB8 7F0C2488 00801025 */ move $v0, $a0 +/* 0F6FBC 7F0C248C 03E00008 */ jr $ra +/* 0F6FC0 7F0C2490 00000000 */ nop +) +#endif + + + + + +void pauseAndLockControls(void) { + set_controls_locked_flag(1); + is_paused = 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C24BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C24BC +/* 0F6FEC 7F0C24BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F6FF0 7F0C24C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6FF4 7F0C24C4 0FC26919 */ jal get_num_players +/* 0F6FF8 7F0C24C8 00000000 */ nop +/* 0F6FFC 7F0C24CC 24010001 */ li $at, 1 +/* 0F7000 7F0C24D0 14410003 */ bne $v0, $at, .L7F0C24E0 +/* 0F7004 7F0C24D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7008 7F0C24D8 1000000F */ b .L7F0C2518 +/* 0F700C 7F0C24DC 24020001 */ li $v0, 1 +.L7F0C24E0: +/* 0F7010 7F0C24E0 3C0E8009 */ lui $t6, %hi(stop_play_flag) +/* 0F7014 7F0C24E4 8DCEC700 */ lw $t6, %lo(stop_play_flag)($t6) +/* 0F7018 7F0C24E8 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0F701C 7F0C24EC 11C00003 */ beqz $t6, .L7F0C24FC +/* 0F7020 7F0C24F0 00000000 */ nop +/* 0F7024 7F0C24F4 10000008 */ b .L7F0C2518 +/* 0F7028 7F0C24F8 00001025 */ move $v0, $zero +.L7F0C24FC: +/* 0F702C 7F0C24FC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0F7030 7F0C2500 24020001 */ li $v0, 1 +/* 0F7034 7F0C2504 8DF829C4 */ lw $t8, 0x29c4($t7) +/* 0F7038 7F0C2508 13000003 */ beqz $t8, .L7F0C2518 +/* 0F703C 7F0C250C 00000000 */ nop +/* 0F7040 7F0C2510 10000001 */ b .L7F0C2518 +/* 0F7044 7F0C2514 00001025 */ move $v0, $zero +.L7F0C2518: +/* 0F7048 7F0C2518 03E00008 */ jr $ra +/* 0F704C 7F0C251C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +void set_stopplay_flag(void) { + stop_play_flag = 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2530(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005BC80 +.word 0x4852f000 /*216000.0*/ +glabel D_8005BC84 +.word 0x47c35000 /*100000.0*/ +.text +glabel sub_GAME_7F0C2530 +/* 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 get_num_players +/* 0F7090 7F0C2560 AFB00020 */ sw $s0, 0x20($sp) +/* 0F7094 7F0C2564 0FC22FEE */ jal get_mission_timer +/* 0F7098 7F0C2568 0040F025 */ move $fp, $v0 +/* 0F709C 7F0C256C 0C002449 */ jal sfx_c_70009124 +/* 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 musicTrack1Vol +/* 0F70B8 7F0C2588 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F70BC 7F0C258C 3C018002 */ lui $at, %hi(music1_playing) +/* 0F70C0 7F0C2590 AC20434C */ sw $zero, %lo(music1_playing)($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(is_gameover_flag) +/* 0F70E4 7F0C25B4 10000004 */ b .L7F0C25C8 +/* 0F70E8 7F0C25B8 AC2EC704 */ sw $t6, %lo(is_gameover_flag)($at) +.L7F0C25BC: +/* 0F70EC 7F0C25BC 240F0001 */ li $t7, 1 +/* 0F70F0 7F0C25C0 3C018009 */ lui $at, %hi(is_gameover_flag) +/* 0F70F4 7F0C25C4 AC2FC704 */ sw $t7, %lo(is_gameover_flag)($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(player1_player_data) +/* 0F7144 7F0C2614 3C158008 */ lui $s5, %hi(pPlayer) +/* 0F7148 7F0C2618 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 0F714C 7F0C261C 26949EF0 */ addiu $s4, %lo(player1_player_data) # 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 sub_GAME_7F08DB08 +/* 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(player1_player_data) +/* 0F71E8 7F0C26B8 27399EF0 */ addiu $t9, %lo(player1_player_data) # 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(player1_player_data) +/* 0F76E0 7F0C2BB0 3C028008 */ lui $v0, %hi(player1_player_data + 0x58) +/* 0F76E4 7F0C2BB4 8C429F48 */ lw $v0, %lo(player1_player_data + 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(player1_player_data) # 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(ptr_BONDdata_p1) +/* 0F7878 7F0C2D48 020B6024 */ and $t4, $s0, $t3 +/* 0F787C 7F0C2D4C 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # 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 get_textptr_for_textID +/* 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 get_random_value +/* 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 get_random_value +/* 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(ptr_BONDdata_p1) +/* 0F792C 7F0C2DFC 020D7024 */ and $t6, $s0, $t5 +/* 0F7930 7F0C2E00 25299EE0 */ addiu $t1, %lo(ptr_BONDdata_p1) # 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 get_textptr_for_textID +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2E80(void) { + +} +#else +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 get_num_players +/* 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 get_controller_3dstick_L_R +/* 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(is_gameover_flag) +/* 0F79F8 7F0C2EC8 24A5C704 */ addiu $a1, %lo(is_gameover_flag) # addiu $a1, $a1, -0x38fc +/* 0F79FC 7F0C2ECC 8CA20000 */ lw $v0, ($a1) +/* 0F7A00 7F0C2ED0 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0F7A04 7F0C2ED4 28410002 */ slti $at, $v0, 2 +/* 0F7A08 7F0C2ED8 14200007 */ bnez $at, .L7F0C2EF8 +/* 0F7A0C 7F0C2EDC 00000000 */ nop +/* 0F7A10 7F0C2EE0 8DCE8498 */ lw $t6, %lo(D_80048498)($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(is_gameover_flag) +/* 0F7A2C 7F0C2EFC 24010001 */ li $at, 1 +/* 0F7A30 7F0C2F00 110101A3 */ beq $t0, $at, .L7F0C3590 +/* 0F7A34 7F0C2F04 24A5C704 */ addiu $a1, %lo(is_gameover_flag) # addiu $a1, $a1, -0x38fc +/* 0F7A38 7F0C2F08 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7A3C 7F0C2F0C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(pPlayer) +/* 0F7A84 7F0C2F54 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(D_80048498) +/* 0F7AA0 7F0C2F70 8C428498 */ lw $v0, %lo(D_80048498)($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(pPlayersPerm) +/* 0F7B14 7F0C2FE4 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($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 get_mission_timer +/* 0F7B38 7F0C3008 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7B3C 7F0C300C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7B40 7F0C3010 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7B44 7F0C3014 8CE30000 */ lw $v1, ($a3) +/* 0F7B48 7F0C3018 3C0C8008 */ lui $t4, %hi(pPlayersPerm) +/* 0F7B4C 7F0C301C 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($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 get_mission_timer +/* 0F7B70 7F0C3040 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7B74 7F0C3044 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7B78 7F0C3048 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7B7C 7F0C304C 8CF80000 */ lw $t8, ($a3) +/* 0F7B80 7F0C3050 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0F7B84 7F0C3054 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($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 check_if_player_is_pressing_anything_right +/* 0F7BB4 7F0C3084 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7BB8 7F0C3088 1040000E */ beqz $v0, .L7F0C30C4 +/* 0F7BBC 7F0C308C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7BC0 7F0C3090 0FC30788 */ jal check_can_advance_right_on_mpmenu +/* 0F7BC4 7F0C3094 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7BC8 7F0C3098 1040000A */ beqz $v0, .L7F0C30C4 +/* 0F7BCC 7F0C309C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7BD0 7F0C30A0 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7BD4 7F0C30A4 00000000 */ nop +/* 0F7BD8 7F0C30A8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7BDC 7F0C30AC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 check_if_player_is_pressing_anything_left +/* 0F7BFC 7F0C30CC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C00 7F0C30D0 1040000E */ beqz $v0, .L7F0C310C +/* 0F7C04 7F0C30D4 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7C08 7F0C30D8 0FC307A3 */ jal check_can_advance_left_on_mpmenu +/* 0F7C0C 7F0C30DC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C10 7F0C30E0 1040000A */ beqz $v0, .L7F0C310C +/* 0F7C14 7F0C30E4 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7C18 7F0C30E8 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7C1C 7F0C30EC 00000000 */ nop +/* 0F7C20 7F0C30F0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C24 7F0C30F4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 check_if_player_is_pressing_anything_right +/* 0F7C44 7F0C3114 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C48 7F0C3118 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C4C 7F0C311C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 play_watch_sfx_beep +/* 0F7C70 7F0C3140 00000000 */ nop +/* 0F7C74 7F0C3144 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C78 7F0C3148 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 check_if_player_is_pressing_anything_left +/* 0F7C94 7F0C3164 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C98 7F0C3168 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C9C 7F0C316C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 play_watch_sfx_beep +/* 0F7CC0 7F0C3190 00000000 */ nop +/* 0F7CC4 7F0C3194 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7CC8 7F0C3198 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 get_controller_buttons_pressed +/* 0F7CE4 7F0C31B4 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7CE8 7F0C31B8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7CEC 7F0C31BC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 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 play_watch_sfx_beep +/* 0F7D10 7F0C31E0 00000000 */ nop +/* 0F7D14 7F0C31E4 3C038009 */ lui $v1, %hi(is_paused) +/* 0F7D18 7F0C31E8 2463C718 */ addiu $v1, %lo(is_paused) # 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 set_controls_locked_flag +/* 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(is_paused) +/* 0F7D60 7F0C3230 2463C718 */ addiu $v1, %lo(is_paused) # addiu $v1, $v1, -0x38e8 +/* 0F7D64 7F0C3234 144900B4 */ bne $v0, $t1, .L7F0C3508 +/* 0F7D68 7F0C3238 00002025 */ move $a0, $zero +/* 0F7D6C 7F0C323C 0FC2FEFE */ jal set_controls_locked_flag +/* 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 get_controller_buttons_pressed +/* 0F7DA0 7F0C3270 24054000 */ li $a1, 16384 +/* 0F7DA4 7F0C3274 504000A5 */ beql $v0, $zero, .L7F0C350C +/* 0F7DA8 7F0C3278 8FA2002C */ lw $v0, 0x2c($sp) +/* 0F7DAC 7F0C327C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7DB0 7F0C3280 00000000 */ nop +/* 0F7DB4 7F0C3284 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7DB8 7F0C3288 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 get_controller_buttons_pressed +/* 0F7DDC 7F0C32AC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7DE0 7F0C32B0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7DE4 7F0C32B4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 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 get_controller_buttons_pressed +/* 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 play_watch_sfx_beep +/* 0F7E40 7F0C3310 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7E44 7F0C3314 3C198009 */ lui $t9, %hi(is_gameover_flag) +/* 0F7E48 7F0C3318 8F39C704 */ lw $t9, %lo(is_gameover_flag)($t9) +/* 0F7E4C 7F0C331C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7E50 7F0C3320 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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(ptr_BONDdata_p1) +/* 0F7E84 7F0C3354 256B9EE0 */ addiu $t3, %lo(ptr_BONDdata_p1) # 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(ptr_BONDdata_p1) +/* 0F7EB8 7F0C3388 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # 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 set_loaded_stage +/* 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(is_paused) +/* 0F7F64 7F0C3434 2463C718 */ addiu $v1, %lo(is_paused) # addiu $v1, $v1, -0x38e8 +/* 0F7F68 7F0C3438 144A0033 */ bne $v0, $t2, .L7F0C3508 +/* 0F7F6C 7F0C343C 00002025 */ move $a0, $zero +/* 0F7F70 7F0C3440 0FC2FEFE */ jal set_controls_locked_flag +/* 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 get_controller_buttons_pressed +/* 0F7F88 7F0C3458 34059000 */ li $a1, 36864 +/* 0F7F8C 7F0C345C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7F90 7F0C3460 10400010 */ beqz $v0, .L7F0C34A4 +/* 0F7F94 7F0C3464 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 play_watch_sfx_beep +/* 0F7FB0 7F0C3480 00000000 */ nop +/* 0F7FB4 7F0C3484 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7FB8 7F0C3488 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 get_controller_buttons_pressed +/* 0F7FDC 7F0C34AC 34059000 */ li $a1, 36864 +/* 0F7FE0 7F0C34B0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7FE4 7F0C34B4 10400014 */ beqz $v0, .L7F0C3508 +/* 0F7FE8 7F0C34B8 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 play_watch_sfx_beep +/* 0F8014 7F0C34E4 00000000 */ nop +/* 0F8018 7F0C34E8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F801C 7F0C34EC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 sub_GAME_7F0C2530 +/* 0F8034 7F0C3504 AD402A00 */ sw $zero, 0x2a00($t2) +.L7F0C3508: +/* 0F8038 7F0C3508 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C350C: +/* 0F803C 7F0C350C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F8040 7F0C3510 8C63A0B0 */ lw $v1, %lo(pPlayer)($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 get_controller_buttons_pressed +/* 0F8068 7F0C3538 24051000 */ li $a1, 4096 +/* 0F806C 7F0C353C 50400015 */ beql $v0, $zero, .L7F0C3594 +/* 0F8070 7F0C3540 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8074 7F0C3544 0FC307F7 */ jal play_watch_sfx_beep +/* 0F8078 7F0C3548 00000000 */ nop +/* 0F807C 7F0C354C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F8080 7F0C3550 24E7A0B0 */ addiu $a3, %lo(pPlayer) # 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 + + + + + +#ifdef NONMATCHING +void display_text_for_playerdata_on_MP_menu(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC88*/ +glabel jpt_MP_overlays_scoring_scenario_0 +.word green_text_normal +.word green_text_highlighted +.word red_text_normal +.word red_text_highlighted +.word blue_text_normal +.word blue_text_highlighted + +.text +glabel display_text_for_playerdata_on_MP_menu +/* 0F80D0 7F0C35A0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F80D4 7F0C35A4 AFB00034 */ sw $s0, 0x34($sp) +/* 0F80D8 7F0C35A8 00A08025 */ move $s0, $a1 +/* 0F80DC 7F0C35AC AFB10038 */ sw $s1, 0x38($sp) +/* 0F80E0 7F0C35B0 00808825 */ move $s1, $a0 +/* 0F80E4 7F0C35B4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F80E8 7F0C35B8 AFA60068 */ sw $a2, 0x68($sp) +/* 0F80EC 7F0C35BC 3C058006 */ lui $a1, %hi(ascii_MP_watch_menu_percentd) +/* 0F80F0 7F0C35C0 24A5BC20 */ addiu $a1, %lo(ascii_MP_watch_menu_percentd) # addiu $a1, $a1, -0x43e0 +/* 0F80F4 7F0C35C4 00E03025 */ move $a2, $a3 +/* 0F80F8 7F0C35C8 0C002B25 */ jal sprintf +/* 0F80FC 7F0C35CC 27A40048 */ addiu $a0, $sp, 0x48 +/* 0F8100 7F0C35D0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F8104 7F0C35D4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F8108 7F0C35D8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F810C 7F0C35DC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F8110 7F0C35E0 27A40050 */ addiu $a0, $sp, 0x50 +/* 0F8114 7F0C35E4 27A50054 */ addiu $a1, $sp, 0x54 +/* 0F8118 7F0C35E8 27A60048 */ addiu $a2, $sp, 0x48 +/* 0F811C 7F0C35EC AFA00014 */ sw $zero, 0x14($sp) +/* 0F8120 7F0C35F0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F8124 7F0C35F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F8128 7F0C35F8 8FAF0054 */ lw $t7, 0x54($sp) +/* 0F812C 7F0C35FC 8FA90070 */ lw $t1, 0x70($sp) +/* 0F8130 7F0C3600 8FA80068 */ lw $t0, 0x68($sp) +/* 0F8134 7F0C3604 000FC043 */ sra $t8, $t7, 1 +/* 0F8138 7F0C3608 0218C823 */ subu $t9, $s0, $t8 +/* 0F813C 7F0C360C 2D210006 */ sltiu $at, $t1, 6 +/* 0F8140 7F0C3610 AFB9005C */ sw $t9, 0x5c($sp) +/* 0F8144 7F0C3614 102000AA */ beqz $at, .L7F0C38C0 +/* 0F8148 7F0C3618 AFA80058 */ sw $t0, 0x58($sp) +/* 0F814C 7F0C361C 00094880 */ sll $t1, $t1, 2 +/* 0F8150 7F0C3620 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_0) +/* 0F8154 7F0C3624 00290821 */ addu $at, $at, $t1 +/* 0F8158 7F0C3628 8C29BC88 */ lw $t1, %lo(jpt_MP_overlays_scoring_scenario_0)($at) +/* 0F815C 7F0C362C 01200008 */ jr $t1 +/* 0F8160 7F0C3630 00000000 */ nop +green_text_normal: +/* 0F8164 7F0C3634 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8168 7F0C3638 00000000 */ nop +/* 0F816C 7F0C363C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8170 7F0C3640 00105403 */ sra $t2, $s0, 0x10 +/* 0F8174 7F0C3644 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8178 7F0C3648 01408025 */ move $s0, $t2 +/* 0F817C 7F0C364C 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F8180 7F0C3650 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F8184 7F0C3654 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F8188 7F0C3658 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F818C 7F0C365C 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F8190 7F0C3660 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F8194 7F0C3664 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F8198 7F0C3668 02202025 */ move $a0, $s1 +/* 0F819C 7F0C366C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F81A0 7F0C3670 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F81A4 7F0C3674 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F81A8 7F0C3678 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F81AC 7F0C367C AFA20020 */ sw $v0, 0x20($sp) +/* 0F81B0 7F0C3680 AFA00024 */ sw $zero, 0x24($sp) +/* 0F81B4 7F0C3684 AFA00028 */ sw $zero, 0x28($sp) +/* 0F81B8 7F0C3688 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F81BC 7F0C368C 0FC2B6AF */ jal en_text_write_stuff +/* 0F81C0 7F0C3690 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F81C4 7F0C3694 1000008A */ b .L7F0C38C0 +/* 0F81C8 7F0C3698 00408825 */ move $s1, $v0 +green_text_highlighted: +/* 0F81CC 7F0C369C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F81D0 7F0C36A0 00000000 */ nop +/* 0F81D4 7F0C36A4 00028400 */ sll $s0, $v0, 0x10 +/* 0F81D8 7F0C36A8 00107403 */ sra $t6, $s0, 0x10 +/* 0F81DC 7F0C36AC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F81E0 7F0C36B0 01C08025 */ move $s0, $t6 +/* 0F81E4 7F0C36B4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0F81E8 7F0C36B8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F81EC 7F0C36BC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F81F0 7F0C36C0 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0F81F4 7F0C36C4 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0F81F8 7F0C36C8 3C080070 */ lui $t0, (0x007000A0 >> 16) # lui $t0, 0x70 +/* 0F81FC 7F0C36CC 350800A0 */ ori $t0, (0x007000A0 & 0xFFFF) # ori $t0, $t0, 0xa0 +/* 0F8200 7F0C36D0 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0F8204 7F0C36D4 AFB90018 */ sw $t9, 0x18($sp) +/* 0F8208 7F0C36D8 AFA8001C */ sw $t0, 0x1c($sp) +/* 0F820C 7F0C36DC 02202025 */ move $a0, $s1 +/* 0F8210 7F0C36E0 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F8214 7F0C36E4 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F8218 7F0C36E8 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F821C 7F0C36EC AFB00020 */ sw $s0, 0x20($sp) +/* 0F8220 7F0C36F0 AFA20024 */ sw $v0, 0x24($sp) +/* 0F8224 7F0C36F4 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8228 7F0C36F8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F822C 7F0C36FC AFB80014 */ sw $t8, 0x14($sp) +/* 0F8230 7F0C3700 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8234 7F0C3704 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F8238 7F0C3708 1000006D */ b .L7F0C38C0 +/* 0F823C 7F0C370C 00408825 */ move $s1, $v0 +red_text_normal: +/* 0F8240 7F0C3710 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8244 7F0C3714 00000000 */ nop +/* 0F8248 7F0C3718 00028400 */ sll $s0, $v0, 0x10 +/* 0F824C 7F0C371C 00104C03 */ sra $t1, $s0, 0x10 +/* 0F8250 7F0C3720 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8254 7F0C3724 01208025 */ move $s0, $t1 +/* 0F8258 7F0C3728 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0F825C 7F0C372C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0F8260 7F0C3730 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F8264 7F0C3734 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0F8268 7F0C3738 3C0CFF40 */ lui $t4, (0xFF4040B0 >> 16) # lui $t4, 0xff40 +/* 0F826C 7F0C373C 358C40B0 */ ori $t4, (0xFF4040B0 & 0xFFFF) # ori $t4, $t4, 0x40b0 +/* 0F8270 7F0C3740 AFAC0018 */ sw $t4, 0x18($sp) +/* 0F8274 7F0C3744 02202025 */ move $a0, $s1 +/* 0F8278 7F0C3748 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F827C 7F0C374C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F8280 7F0C3750 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F8284 7F0C3754 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8288 7F0C3758 AFA20020 */ sw $v0, 0x20($sp) +/* 0F828C 7F0C375C AFA00024 */ sw $zero, 0x24($sp) +/* 0F8290 7F0C3760 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8294 7F0C3764 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F8298 7F0C3768 0FC2B6AF */ jal en_text_write_stuff +/* 0F829C 7F0C376C AFAA0010 */ sw $t2, 0x10($sp) +/* 0F82A0 7F0C3770 10000053 */ b .L7F0C38C0 +/* 0F82A4 7F0C3774 00408825 */ move $s1, $v0 +red_text_highlighted: +/* 0F82A8 7F0C3778 0C001107 */ jal get_video2_settings_txtClipW +/* 0F82AC 7F0C377C 00000000 */ nop +/* 0F82B0 7F0C3780 00028400 */ sll $s0, $v0, 0x10 +/* 0F82B4 7F0C3784 00106C03 */ sra $t5, $s0, 0x10 +/* 0F82B8 7F0C3788 0C00110B */ jal get_video2_settings_txtClipH +/* 0F82BC 7F0C378C 01A08025 */ move $s0, $t5 +/* 0F82C0 7F0C3790 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0F82C4 7F0C3794 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F82C8 7F0C3798 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F82CC 7F0C379C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0F82D0 7F0C37A0 3C18FFA0 */ lui $t8, (0xFFA0A0F0 >> 16) # lui $t8, 0xffa0 +/* 0F82D4 7F0C37A4 3C197000 */ lui $t9, (0x700000A0 >> 16) # lui $t9, 0x7000 +/* 0F82D8 7F0C37A8 373900A0 */ ori $t9, (0x700000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F82DC 7F0C37AC 3718A0F0 */ ori $t8, (0xFFA0A0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F82E0 7F0C37B0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F82E4 7F0C37B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F82E8 7F0C37B8 02202025 */ move $a0, $s1 +/* 0F82EC 7F0C37BC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F82F0 7F0C37C0 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F82F4 7F0C37C4 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F82F8 7F0C37C8 AFB00020 */ sw $s0, 0x20($sp) +/* 0F82FC 7F0C37CC AFA20024 */ sw $v0, 0x24($sp) +/* 0F8300 7F0C37D0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8304 7F0C37D4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8308 7F0C37D8 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F830C 7F0C37DC 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8310 7F0C37E0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F8314 7F0C37E4 10000036 */ b .L7F0C38C0 +/* 0F8318 7F0C37E8 00408825 */ move $s1, $v0 +blue_text_normal: +/* 0F831C 7F0C37EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8320 7F0C37F0 00000000 */ nop +/* 0F8324 7F0C37F4 00028400 */ sll $s0, $v0, 0x10 +/* 0F8328 7F0C37F8 00104403 */ sra $t0, $s0, 0x10 +/* 0F832C 7F0C37FC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8330 7F0C3800 01008025 */ move $s0, $t0 +/* 0F8334 7F0C3804 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F8338 7F0C3808 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F833C 7F0C380C 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F8340 7F0C3810 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F8344 7F0C3814 3C0B4040 */ lui $t3, (0x4040FFB0 >> 16) # lui $t3, 0x4040 +/* 0F8348 7F0C3818 356BFFB0 */ ori $t3, (0x4040FFB0 & 0xFFFF) # ori $t3, $t3, 0xffb0 +/* 0F834C 7F0C381C AFAB0018 */ sw $t3, 0x18($sp) +/* 0F8350 7F0C3820 02202025 */ move $a0, $s1 +/* 0F8354 7F0C3824 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F8358 7F0C3828 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F835C 7F0C382C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F8360 7F0C3830 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8364 7F0C3834 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8368 7F0C3838 AFA00024 */ sw $zero, 0x24($sp) +/* 0F836C 7F0C383C AFA00028 */ sw $zero, 0x28($sp) +/* 0F8370 7F0C3840 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F8374 7F0C3844 0FC2B6AF */ jal en_text_write_stuff +/* 0F8378 7F0C3848 AFA90010 */ sw $t1, 0x10($sp) +/* 0F837C 7F0C384C 1000001C */ b .L7F0C38C0 +/* 0F8380 7F0C3850 00408825 */ move $s1, $v0 +blue_text_highlighted: +/* 0F8384 7F0C3854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8388 7F0C3858 00000000 */ nop +/* 0F838C 7F0C385C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8390 7F0C3860 00106403 */ sra $t4, $s0, 0x10 +/* 0F8394 7F0C3864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8398 7F0C3868 01808025 */ move $s0, $t4 +/* 0F839C 7F0C386C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0F83A0 7F0C3870 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F83A4 7F0C3874 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F83A8 7F0C3878 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F83AC 7F0C387C 3C0FA0A0 */ lui $t7, (0xA0A0FFF0 >> 16) # lui $t7, 0xa0a0 +/* 0F83B0 7F0C3880 35EFFFF0 */ ori $t7, (0xA0A0FFF0 & 0xFFFF) # ori $t7, $t7, 0xfff0 +/* 0F83B4 7F0C3884 241870A0 */ li $t8, 28832 +/* 0F83B8 7F0C3888 AFB8001C */ sw $t8, 0x1c($sp) +/* 0F83BC 7F0C388C AFAF0018 */ sw $t7, 0x18($sp) +/* 0F83C0 7F0C3890 02202025 */ move $a0, $s1 +/* 0F83C4 7F0C3894 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F83C8 7F0C3898 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F83CC 7F0C389C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F83D0 7F0C38A0 AFB00020 */ sw $s0, 0x20($sp) +/* 0F83D4 7F0C38A4 AFA20024 */ sw $v0, 0x24($sp) +/* 0F83D8 7F0C38A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F83DC 7F0C38AC AFA0002C */ sw $zero, 0x2c($sp) +/* 0F83E0 7F0C38B0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F83E4 7F0C38B4 0FC2B9BB */ jal jp_text_write_stuff +/* 0F83E8 7F0C38B8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F83EC 7F0C38BC 00408825 */ move $s1, $v0 +def_7F0C362C: +.L7F0C38C0: +/* 0F83F0 7F0C38C0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0F83F4 7F0C38C4 02201025 */ move $v0, $s1 +/* 0F83F8 7F0C38C8 8FB10038 */ lw $s1, 0x38($sp) +/* 0F83FC 7F0C38CC 8FB00034 */ lw $s0, 0x34($sp) +/* 0F8400 7F0C38D0 03E00008 */ jr $ra +/* 0F8404 7F0C38D4 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void get_points_for_mp_player(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCA0*/ +glabel jpt_MP_overlays_scoring +.word num_player_kills +.word num_deaths +.word time_with_flag +.word num_player_kills +.word num_player_kills +.word team_player_kills +.word team_player_kills +.word team_player_kills + +.text +glabel get_points_for_mp_player +/* 0F8408 7F0C38D8 000470C0 */ sll $t6, $a0, 3 +/* 0F840C 7F0C38DC 3C038008 */ lui $v1, %hi(player1_player_data) +/* 0F8410 7F0C38E0 01C47023 */ subu $t6, $t6, $a0 +/* 0F8414 7F0C38E4 24639EF0 */ addiu $v1, %lo(player1_player_data) # addiu $v1, $v1, -0x6110 +/* 0F8418 7F0C38E8 000E7100 */ sll $t6, $t6, 4 +/* 0F841C 7F0C38EC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F8420 7F0C38F0 006E5821 */ addu $t3, $v1, $t6 +/* 0F8424 7F0C38F4 91670069 */ lbu $a3, 0x69($t3) +/* 0F8428 7F0C38F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F842C 7F0C38FC AFAB0018 */ sw $t3, 0x18($sp) +/* 0F8430 7F0C3900 AFA40038 */ sw $a0, 0x38($sp) +/* 0F8434 7F0C3904 0FC26919 */ jal get_num_players +/* 0F8438 7F0C3908 AFA70034 */ sw $a3, 0x34($sp) +/* 0F843C 7F0C390C AFA00024 */ sw $zero, 0x24($sp) +/* 0F8440 7F0C3910 0FC051D6 */ jal get_scenario +/* 0F8444 7F0C3914 AFA20030 */ sw $v0, 0x30($sp) +/* 0F8448 7F0C3918 3C038008 */ lui $v1, %hi(player1_player_data) +/* 0F844C 7F0C391C 2C410008 */ sltiu $at, $v0, 8 +/* 0F8450 7F0C3920 24639EF0 */ addiu $v1, %lo(player1_player_data) # addiu $v1, $v1, -0x6110 +/* 0F8454 7F0C3924 8FA40024 */ lw $a0, 0x24($sp) +/* 0F8458 7F0C3928 8FA50038 */ lw $a1, 0x38($sp) +/* 0F845C 7F0C392C 8FA70034 */ lw $a3, 0x34($sp) +/* 0F8460 7F0C3930 8FAA0030 */ lw $t2, 0x30($sp) +/* 0F8464 7F0C3934 102000D2 */ beqz $at, .L7F0C3C80 +/* 0F8468 7F0C3938 8FAB0018 */ lw $t3, 0x18($sp) +/* 0F846C 7F0C393C 00027880 */ sll $t7, $v0, 2 +/* 0F8470 7F0C3940 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring) +/* 0F8474 7F0C3944 002F0821 */ addu $at, $at, $t7 +/* 0F8478 7F0C3948 8C2FBCA0 */ lw $t7, %lo(jpt_MP_overlays_scoring)($at) +/* 0F847C 7F0C394C 01E00008 */ jr $t7 +/* 0F8480 7F0C3950 00000000 */ nop +num_player_kills: +/* 0F8484 7F0C3954 19400068 */ blez $t2, .L7F0C3AF8 +/* 0F8488 7F0C3958 00004825 */ move $t1, $zero +/* 0F848C 7F0C395C 31480003 */ andi $t0, $t2, 3 +/* 0F8490 7F0C3960 11000017 */ beqz $t0, .L7F0C39C0 +/* 0F8494 7F0C3964 01001025 */ move $v0, $t0 +.L7F0C3968: +/* 0F8498 7F0C3968 1125000A */ beq $t1, $a1, .L7F0C3994 +/* 0F849C 7F0C396C 0009C0C0 */ sll $t8, $t1, 3 +/* 0F84A0 7F0C3970 0005C0C0 */ sll $t8, $a1, 3 +/* 0F84A4 7F0C3974 0305C023 */ subu $t8, $t8, $a1 +/* 0F84A8 7F0C3978 0018C100 */ sll $t8, $t8, 4 +/* 0F84AC 7F0C397C 0078C821 */ addu $t9, $v1, $t8 +/* 0F84B0 7F0C3980 00096880 */ sll $t5, $t1, 2 +/* 0F84B4 7F0C3984 032D7021 */ addu $t6, $t9, $t5 +/* 0F84B8 7F0C3988 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F84BC 7F0C398C 10000008 */ b .L7F0C39B0 +/* 0F84C0 7F0C3990 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3994: +/* 0F84C4 7F0C3994 0309C023 */ subu $t8, $t8, $t1 +/* 0F84C8 7F0C3998 0018C100 */ sll $t8, $t8, 4 +/* 0F84CC 7F0C399C 0078C821 */ addu $t9, $v1, $t8 +/* 0F84D0 7F0C39A0 00056880 */ sll $t5, $a1, 2 +/* 0F84D4 7F0C39A4 032D7021 */ addu $t6, $t9, $t5 +/* 0F84D8 7F0C39A8 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F84DC 7F0C39AC 008F2023 */ subu $a0, $a0, $t7 +.L7F0C39B0: +/* 0F84E0 7F0C39B0 25290001 */ addiu $t1, $t1, 1 +/* 0F84E4 7F0C39B4 1449FFEC */ bne $v0, $t1, .L7F0C3968 +/* 0F84E8 7F0C39B8 00000000 */ nop +/* 0F84EC 7F0C39BC 112A004E */ beq $t1, $t2, .L7F0C3AF8 +.L7F0C39C0: +/* 0F84F0 7F0C39C0 24A2FFFF */ addiu $v0, $a1, -1 +/* 0F84F4 7F0C39C4 24A6FFFE */ addiu $a2, $a1, -2 +/* 0F84F8 7F0C39C8 24A7FFFD */ addiu $a3, $a1, -3 +.L7F0C39CC: +/* 0F84FC 7F0C39CC 1125000A */ beq $t1, $a1, .L7F0C39F8 +/* 0F8500 7F0C39D0 0009C0C0 */ sll $t8, $t1, 3 +/* 0F8504 7F0C39D4 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8508 7F0C39D8 0305C023 */ subu $t8, $t8, $a1 +/* 0F850C 7F0C39DC 0018C100 */ sll $t8, $t8, 4 +/* 0F8510 7F0C39E0 0078C821 */ addu $t9, $v1, $t8 +/* 0F8514 7F0C39E4 00096880 */ sll $t5, $t1, 2 +/* 0F8518 7F0C39E8 032D7021 */ addu $t6, $t9, $t5 +/* 0F851C 7F0C39EC 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F8520 7F0C39F0 10000008 */ b .L7F0C3A14 +/* 0F8524 7F0C39F4 008F2021 */ addu $a0, $a0, $t7 +.L7F0C39F8: +/* 0F8528 7F0C39F8 0309C023 */ subu $t8, $t8, $t1 +/* 0F852C 7F0C39FC 0018C100 */ sll $t8, $t8, 4 +/* 0F8530 7F0C3A00 0078C821 */ addu $t9, $v1, $t8 +/* 0F8534 7F0C3A04 00056880 */ sll $t5, $a1, 2 +/* 0F8538 7F0C3A08 032D7021 */ addu $t6, $t9, $t5 +/* 0F853C 7F0C3A0C 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F8540 7F0C3A10 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3A14: +/* 0F8544 7F0C3A14 1122000A */ beq $t1, $v0, .L7F0C3A40 +/* 0F8548 7F0C3A18 0009C0C0 */ sll $t8, $t1, 3 +/* 0F854C 7F0C3A1C 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8550 7F0C3A20 0305C023 */ subu $t8, $t8, $a1 +/* 0F8554 7F0C3A24 0018C100 */ sll $t8, $t8, 4 +/* 0F8558 7F0C3A28 0078C821 */ addu $t9, $v1, $t8 +/* 0F855C 7F0C3A2C 00096880 */ sll $t5, $t1, 2 +/* 0F8560 7F0C3A30 032D7021 */ addu $t6, $t9, $t5 +/* 0F8564 7F0C3A34 8DCF0028 */ lw $t7, 0x28($t6) +/* 0F8568 7F0C3A38 10000008 */ b .L7F0C3A5C +/* 0F856C 7F0C3A3C 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3A40: +/* 0F8570 7F0C3A40 0309C023 */ subu $t8, $t8, $t1 +/* 0F8574 7F0C3A44 0018C100 */ sll $t8, $t8, 4 +/* 0F8578 7F0C3A48 0078C821 */ addu $t9, $v1, $t8 +/* 0F857C 7F0C3A4C 00056880 */ sll $t5, $a1, 2 +/* 0F8580 7F0C3A50 032D7021 */ addu $t6, $t9, $t5 +/* 0F8584 7F0C3A54 8DCF0094 */ lw $t7, 0x94($t6) +/* 0F8588 7F0C3A58 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3A5C: +/* 0F858C 7F0C3A5C 1126000A */ beq $t1, $a2, .L7F0C3A88 +/* 0F8590 7F0C3A60 0009C0C0 */ sll $t8, $t1, 3 +/* 0F8594 7F0C3A64 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8598 7F0C3A68 0305C023 */ subu $t8, $t8, $a1 +/* 0F859C 7F0C3A6C 0018C100 */ sll $t8, $t8, 4 +/* 0F85A0 7F0C3A70 0078C821 */ addu $t9, $v1, $t8 +/* 0F85A4 7F0C3A74 00096880 */ sll $t5, $t1, 2 +/* 0F85A8 7F0C3A78 032D7021 */ addu $t6, $t9, $t5 +/* 0F85AC 7F0C3A7C 8DCF002C */ lw $t7, 0x2c($t6) +/* 0F85B0 7F0C3A80 10000008 */ b .L7F0C3AA4 +/* 0F85B4 7F0C3A84 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3A88: +/* 0F85B8 7F0C3A88 0309C023 */ subu $t8, $t8, $t1 +/* 0F85BC 7F0C3A8C 0018C100 */ sll $t8, $t8, 4 +/* 0F85C0 7F0C3A90 0078C821 */ addu $t9, $v1, $t8 +/* 0F85C4 7F0C3A94 00056880 */ sll $t5, $a1, 2 +/* 0F85C8 7F0C3A98 032D7021 */ addu $t6, $t9, $t5 +/* 0F85CC 7F0C3A9C 8DCF0104 */ lw $t7, 0x104($t6) +/* 0F85D0 7F0C3AA0 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3AA4: +/* 0F85D4 7F0C3AA4 1127000A */ beq $t1, $a3, .L7F0C3AD0 +/* 0F85D8 7F0C3AA8 0009C0C0 */ sll $t8, $t1, 3 +/* 0F85DC 7F0C3AAC 0005C0C0 */ sll $t8, $a1, 3 +/* 0F85E0 7F0C3AB0 0305C023 */ subu $t8, $t8, $a1 +/* 0F85E4 7F0C3AB4 0018C100 */ sll $t8, $t8, 4 +/* 0F85E8 7F0C3AB8 0078C821 */ addu $t9, $v1, $t8 +/* 0F85EC 7F0C3ABC 00096880 */ sll $t5, $t1, 2 +/* 0F85F0 7F0C3AC0 032D7021 */ addu $t6, $t9, $t5 +/* 0F85F4 7F0C3AC4 8DCF0030 */ lw $t7, 0x30($t6) +/* 0F85F8 7F0C3AC8 10000008 */ b .L7F0C3AEC +/* 0F85FC 7F0C3ACC 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3AD0: +/* 0F8600 7F0C3AD0 0309C023 */ subu $t8, $t8, $t1 +/* 0F8604 7F0C3AD4 0018C100 */ sll $t8, $t8, 4 +/* 0F8608 7F0C3AD8 0078C821 */ addu $t9, $v1, $t8 +/* 0F860C 7F0C3ADC 00056880 */ sll $t5, $a1, 2 +/* 0F8610 7F0C3AE0 032D7021 */ addu $t6, $t9, $t5 +/* 0F8614 7F0C3AE4 8DCF0174 */ lw $t7, 0x174($t6) +/* 0F8618 7F0C3AE8 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3AEC: +/* 0F861C 7F0C3AEC 25290004 */ addiu $t1, $t1, 4 +/* 0F8620 7F0C3AF0 152AFFB6 */ bne $t1, $t2, .L7F0C39CC +/* 0F8624 7F0C3AF4 00000000 */ nop +.L7F0C3AF8: +/* 0F8628 7F0C3AF8 8D780020 */ lw $t8, 0x20($t3) +/* 0F862C 7F0C3AFC 2559FFFE */ addiu $t9, $t2, -2 +/* 0F8630 7F0C3B00 03190019 */ multu $t8, $t9 +/* 0F8634 7F0C3B04 00006812 */ mflo $t5 +/* 0F8638 7F0C3B08 008D2021 */ addu $a0, $a0, $t5 +/* 0F863C 7F0C3B0C 1000005D */ b .L7F0C3C84 +/* 0F8640 7F0C3B10 8FBF0014 */ lw $ra, 0x14($sp) +num_deaths: +/* 0F8644 7F0C3B14 916E0068 */ lbu $t6, 0x68($t3) +/* 0F8648 7F0C3B18 240F0004 */ li $t7, 4 +/* 0F864C 7F0C3B1C 10000058 */ b .L7F0C3C80 +/* 0F8650 7F0C3B20 01EE2023 */ subu $a0, $t7, $t6 +time_with_flag: +/* 0F8654 7F0C3B24 10000056 */ b .L7F0C3C80 +/* 0F8658 7F0C3B28 8D640060 */ lw $a0, 0x60($t3) +team_player_kills: +/* 0F865C 7F0C3B2C 19400054 */ blez $t2, .L7F0C3C80 +/* 0F8660 7F0C3B30 00004825 */ move $t1, $zero +/* 0F8664 7F0C3B34 3C0C8008 */ lui $t4, %hi(player1_player_data) +/* 0F8668 7F0C3B38 258C9EF0 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x6110 +.L7F0C3B3C: +/* 0F866C 7F0C3B3C 91980069 */ lbu $t8, 0x69($t4) +/* 0F8670 7F0C3B40 54F8004D */ bnel $a3, $t8, .L7F0C3C78 +/* 0F8674 7F0C3B44 25290001 */ addiu $t1, $t1, 1 +/* 0F8678 7F0C3B48 1940004A */ blez $t2, .L7F0C3C74 +/* 0F867C 7F0C3B4C 00002825 */ move $a1, $zero +/* 0F8680 7F0C3B50 0009C8C0 */ sll $t9, $t1, 3 +/* 0F8684 7F0C3B54 0329C823 */ subu $t9, $t9, $t1 +/* 0F8688 7F0C3B58 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0F868C 7F0C3B5C 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0F8690 7F0C3B60 0019C900 */ sll $t9, $t9, 4 +/* 0F8694 7F0C3B64 31480003 */ andi $t0, $t2, 3 +/* 0F8698 7F0C3B68 11000015 */ beqz $t0, .L7F0C3BC0 +/* 0F869C 7F0C3B6C 032D5821 */ addu $t3, $t9, $t5 +/* 0F86A0 7F0C3B70 000078C0 */ sll $t7, $zero, 3 +/* 0F86A4 7F0C3B74 01E07823 */ subu $t7, $t7, $zero +/* 0F86A8 7F0C3B78 000F7900 */ sll $t7, $t7, 4 +/* 0F86AC 7F0C3B7C 00007080 */ sll $t6, $zero, 2 +/* 0F86B0 7F0C3B80 016E1021 */ addu $v0, $t3, $t6 +/* 0F86B4 7F0C3B84 01ED1821 */ addu $v1, $t7, $t5 +/* 0F86B8 7F0C3B88 01003025 */ move $a2, $t0 +.L7F0C3B8C: +/* 0F86BC 7F0C3B8C 90780069 */ lbu $t8, 0x69($v1) +/* 0F86C0 7F0C3B90 24A50001 */ addiu $a1, $a1, 1 +/* 0F86C4 7F0C3B94 24630070 */ addiu $v1, $v1, 0x70 +/* 0F86C8 7F0C3B98 50F80005 */ beql $a3, $t8, .L7F0C3BB0 +/* 0F86CC 7F0C3B9C 8C4F0024 */ lw $t7, 0x24($v0) +/* 0F86D0 7F0C3BA0 8C590024 */ lw $t9, 0x24($v0) +/* 0F86D4 7F0C3BA4 10000003 */ b .L7F0C3BB4 +/* 0F86D8 7F0C3BA8 00992021 */ addu $a0, $a0, $t9 +/* 0F86DC 7F0C3BAC 8C4F0024 */ lw $t7, 0x24($v0) +.L7F0C3BB0: +/* 0F86E0 7F0C3BB0 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3BB4: +/* 0F86E4 7F0C3BB4 14C5FFF5 */ bne $a2, $a1, .L7F0C3B8C +/* 0F86E8 7F0C3BB8 24420004 */ addiu $v0, $v0, 4 +/* 0F86EC 7F0C3BBC 10AA002D */ beq $a1, $t2, .L7F0C3C74 +.L7F0C3BC0: +/* 0F86F0 7F0C3BC0 000568C0 */ sll $t5, $a1, 3 +/* 0F86F4 7F0C3BC4 01A56823 */ subu $t5, $t5, $a1 +/* 0F86F8 7F0C3BC8 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F86FC 7F0C3BCC 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F8700 7F0C3BD0 000D6900 */ sll $t5, $t5, 4 +/* 0F8704 7F0C3BD4 00053080 */ sll $a2, $a1, 2 +/* 0F8708 7F0C3BD8 01661021 */ addu $v0, $t3, $a2 +/* 0F870C 7F0C3BDC 01AE1821 */ addu $v1, $t5, $t6 +/* 0F8710 7F0C3BE0 000A4080 */ sll $t0, $t2, 2 +.L7F0C3BE4: +/* 0F8714 7F0C3BE4 90780069 */ lbu $t8, 0x69($v1) +/* 0F8718 7F0C3BE8 24C60010 */ addiu $a2, $a2, 0x10 +/* 0F871C 7F0C3BEC 50F80005 */ beql $a3, $t8, .L7F0C3C04 +/* 0F8720 7F0C3BF0 8C4F0024 */ lw $t7, 0x24($v0) +/* 0F8724 7F0C3BF4 8C590024 */ lw $t9, 0x24($v0) +/* 0F8728 7F0C3BF8 10000003 */ b .L7F0C3C08 +/* 0F872C 7F0C3BFC 00992021 */ addu $a0, $a0, $t9 +/* 0F8730 7F0C3C00 8C4F0024 */ lw $t7, 0x24($v0) +.L7F0C3C04: +/* 0F8734 7F0C3C04 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3C08: +/* 0F8738 7F0C3C08 906D00D9 */ lbu $t5, 0xd9($v1) +/* 0F873C 7F0C3C0C 50ED0005 */ beql $a3, $t5, .L7F0C3C24 +/* 0F8740 7F0C3C10 8C580028 */ lw $t8, 0x28($v0) +/* 0F8744 7F0C3C14 8C4E0028 */ lw $t6, 0x28($v0) +/* 0F8748 7F0C3C18 10000003 */ b .L7F0C3C28 +/* 0F874C 7F0C3C1C 008E2021 */ addu $a0, $a0, $t6 +/* 0F8750 7F0C3C20 8C580028 */ lw $t8, 0x28($v0) +.L7F0C3C24: +/* 0F8754 7F0C3C24 00982023 */ subu $a0, $a0, $t8 +.L7F0C3C28: +/* 0F8758 7F0C3C28 90790149 */ lbu $t9, 0x149($v1) +/* 0F875C 7F0C3C2C 50F90005 */ beql $a3, $t9, .L7F0C3C44 +/* 0F8760 7F0C3C30 8C4D002C */ lw $t5, 0x2c($v0) +/* 0F8764 7F0C3C34 8C4F002C */ lw $t7, 0x2c($v0) +/* 0F8768 7F0C3C38 10000003 */ b .L7F0C3C48 +/* 0F876C 7F0C3C3C 008F2021 */ addu $a0, $a0, $t7 +/* 0F8770 7F0C3C40 8C4D002C */ lw $t5, 0x2c($v0) +.L7F0C3C44: +/* 0F8774 7F0C3C44 008D2023 */ subu $a0, $a0, $t5 +.L7F0C3C48: +/* 0F8778 7F0C3C48 906E01B9 */ lbu $t6, 0x1b9($v1) +/* 0F877C 7F0C3C4C 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0F8780 7F0C3C50 50EE0005 */ beql $a3, $t6, .L7F0C3C68 +/* 0F8784 7F0C3C54 8C590030 */ lw $t9, 0x30($v0) +/* 0F8788 7F0C3C58 8C580030 */ lw $t8, 0x30($v0) +/* 0F878C 7F0C3C5C 10000003 */ b .L7F0C3C6C +/* 0F8790 7F0C3C60 00982021 */ addu $a0, $a0, $t8 +/* 0F8794 7F0C3C64 8C590030 */ lw $t9, 0x30($v0) +.L7F0C3C68: +/* 0F8798 7F0C3C68 00992023 */ subu $a0, $a0, $t9 +.L7F0C3C6C: +/* 0F879C 7F0C3C6C 14C8FFDD */ bne $a2, $t0, .L7F0C3BE4 +/* 0F87A0 7F0C3C70 24420010 */ addiu $v0, $v0, 0x10 +.L7F0C3C74: +/* 0F87A4 7F0C3C74 25290001 */ addiu $t1, $t1, 1 +.L7F0C3C78: +/* 0F87A8 7F0C3C78 152AFFB0 */ bne $t1, $t2, .L7F0C3B3C +/* 0F87AC 7F0C3C7C 258C0070 */ addiu $t4, $t4, 0x70 +def_7F0C394C: +.L7F0C3C80: +/* 0F87B0 7F0C3C80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C3C84: +/* 0F87B4 7F0C3C84 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F87B8 7F0C3C88 00801025 */ move $v0, $a0 +/* 0F87BC 7F0C3C8C 03E00008 */ jr $ra +/* 0F87C0 7F0C3C90 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void write_playerrank_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_playerrank_to_buffer +/* 0F87C4 7F0C3C94 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0F87C8 7F0C3C98 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F87CC 7F0C3C9C AFB00018 */ sw $s0, 0x18($sp) +/* 0F87D0 7F0C3CA0 AFA40080 */ sw $a0, 0x80($sp) +/* 0F87D4 7F0C3CA4 0FC051D6 */ jal get_scenario +/* 0F87D8 7F0C3CA8 AFA50084 */ sw $a1, 0x84($sp) +/* 0F87DC 7F0C3CAC 0FC26919 */ jal get_num_players +/* 0F87E0 7F0C3CB0 AFA2007C */ sw $v0, 0x7c($sp) +/* 0F87E4 7F0C3CB4 00405825 */ move $t3, $v0 +/* 0F87E8 7F0C3CB8 18400013 */ blez $v0, .L7F0C3D08 +/* 0F87EC 7F0C3CBC 00008025 */ move $s0, $zero +/* 0F87F0 7F0C3CC0 27A30068 */ addiu $v1, $sp, 0x68 +/* 0F87F4 7F0C3CC4 27A50058 */ addiu $a1, $sp, 0x58 +.L7F0C3CC8: +/* 0F87F8 7F0C3CC8 02002025 */ move $a0, $s0 +/* 0F87FC 7F0C3CCC AFA30038 */ sw $v1, 0x38($sp) +/* 0F8800 7F0C3CD0 AFA5003C */ sw $a1, 0x3c($sp) +/* 0F8804 7F0C3CD4 0FC30E36 */ jal get_points_for_mp_player +/* 0F8808 7F0C3CD8 AFAB0078 */ sw $t3, 0x78($sp) +/* 0F880C 7F0C3CDC 8FA5003C */ lw $a1, 0x3c($sp) +/* 0F8810 7F0C3CE0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0F8814 7F0C3CE4 8FA30038 */ lw $v1, 0x38($sp) +/* 0F8818 7F0C3CE8 ACB00000 */ sw $s0, ($a1) +/* 0F881C 7F0C3CEC 26100001 */ addiu $s0, $s0, 1 +/* 0F8820 7F0C3CF0 020B082A */ slt $at, $s0, $t3 +/* 0F8824 7F0C3CF4 24A50004 */ addiu $a1, $a1, 4 +/* 0F8828 7F0C3CF8 24630004 */ addiu $v1, $v1, 4 +/* 0F882C 7F0C3CFC 1420FFF2 */ bnez $at, .L7F0C3CC8 +/* 0F8830 7F0C3D00 AC62FFFC */ sw $v0, -4($v1) +/* 0F8834 7F0C3D04 00008025 */ move $s0, $zero +.L7F0C3D08: +/* 0F8838 7F0C3D08 1960003F */ blez $t3, .L7F0C3E08 +/* 0F883C 7F0C3D0C 00005025 */ move $t2, $zero +/* 0F8840 7F0C3D10 256CFFFF */ addiu $t4, $t3, -1 +/* 0F8844 7F0C3D14 27A80058 */ addiu $t0, $sp, 0x58 +/* 0F8848 7F0C3D18 8FA50068 */ lw $a1, 0x68($sp) +/* 0F884C 7F0C3D1C 8FA4006C */ lw $a0, 0x6c($sp) +.L7F0C3D20: +/* 0F8850 7F0C3D20 19800034 */ blez $t4, .L7F0C3DF4 +/* 0F8854 7F0C3D24 254A0001 */ addiu $t2, $t2, 1 +/* 0F8858 7F0C3D28 2562FFFF */ addiu $v0, $t3, -1 +/* 0F885C 7F0C3D2C 304E0001 */ andi $t6, $v0, 1 +/* 0F8860 7F0C3D30 11C0000B */ beqz $t6, .L7F0C3D60 +/* 0F8864 7F0C3D34 00A4082A */ slt $at, $a1, $a0 +/* 0F8868 7F0C3D38 10200008 */ beqz $at, .L7F0C3D5C +/* 0F886C 7F0C3D3C 24100001 */ li $s0, 1 +/* 0F8870 7F0C3D40 00801025 */ move $v0, $a0 +/* 0F8874 7F0C3D44 00A02025 */ move $a0, $a1 +/* 0F8878 7F0C3D48 00402825 */ move $a1, $v0 +/* 0F887C 7F0C3D4C 8FA2005C */ lw $v0, 0x5c($sp) +/* 0F8880 7F0C3D50 8FAF0058 */ lw $t7, 0x58($sp) +/* 0F8884 7F0C3D54 AFA20058 */ sw $v0, 0x58($sp) +/* 0F8888 7F0C3D58 AFAF005C */ sw $t7, 0x5c($sp) +.L7F0C3D5C: +/* 0F888C 7F0C3D5C 120C0024 */ beq $s0, $t4, .L7F0C3DF0 +.L7F0C3D60: +/* 0F8890 7F0C3D60 27B80068 */ addiu $t8, $sp, 0x68 +/* 0F8894 7F0C3D64 00103880 */ sll $a3, $s0, 2 +/* 0F8898 7F0C3D68 000CC880 */ sll $t9, $t4, 2 +/* 0F889C 7F0C3D6C 03384821 */ addu $t1, $t9, $t8 +/* 0F88A0 7F0C3D70 00F81821 */ addu $v1, $a3, $t8 +/* 0F88A4 7F0C3D74 AFA4006C */ sw $a0, 0x6c($sp) +/* 0F88A8 7F0C3D78 AFA50068 */ sw $a1, 0x68($sp) +.L7F0C3D7C: +/* 0F88AC 7F0C3D7C 8C660000 */ lw $a2, ($v1) +/* 0F88B0 7F0C3D80 8C640004 */ lw $a0, 4($v1) +/* 0F88B4 7F0C3D84 01072821 */ addu $a1, $t0, $a3 +/* 0F88B8 7F0C3D88 00C4082A */ slt $at, $a2, $a0 +/* 0F88BC 7F0C3D8C 50200009 */ beql $at, $zero, .L7F0C3DB4 +/* 0F88C0 7F0C3D90 8C660008 */ lw $a2, 8($v1) +/* 0F88C4 7F0C3D94 8CA20004 */ lw $v0, 4($a1) +/* 0F88C8 7F0C3D98 8CAD0000 */ lw $t5, ($a1) +/* 0F88CC 7F0C3D9C AC640000 */ sw $a0, ($v1) +/* 0F88D0 7F0C3DA0 AC660004 */ sw $a2, 4($v1) +/* 0F88D4 7F0C3DA4 00C02025 */ move $a0, $a2 +/* 0F88D8 7F0C3DA8 ACA20000 */ sw $v0, ($a1) +/* 0F88DC 7F0C3DAC ACAD0004 */ sw $t5, 4($a1) +/* 0F88E0 7F0C3DB0 8C660008 */ lw $a2, 8($v1) +.L7F0C3DB4: +/* 0F88E4 7F0C3DB4 01072821 */ addu $a1, $t0, $a3 +/* 0F88E8 7F0C3DB8 0086082A */ slt $at, $a0, $a2 +/* 0F88EC 7F0C3DBC 50200008 */ beql $at, $zero, .L7F0C3DE0 +/* 0F88F0 7F0C3DC0 24630008 */ addiu $v1, $v1, 8 +/* 0F88F4 7F0C3DC4 8CA20008 */ lw $v0, 8($a1) +/* 0F88F8 7F0C3DC8 8CAE0004 */ lw $t6, 4($a1) +/* 0F88FC 7F0C3DCC AC640008 */ sw $a0, 8($v1) +/* 0F8900 7F0C3DD0 AC660004 */ sw $a2, 4($v1) +/* 0F8904 7F0C3DD4 ACA20004 */ sw $v0, 4($a1) +/* 0F8908 7F0C3DD8 ACAE0008 */ sw $t6, 8($a1) +/* 0F890C 7F0C3DDC 24630008 */ addiu $v1, $v1, 8 +.L7F0C3DE0: +/* 0F8910 7F0C3DE0 8FA4006C */ lw $a0, 0x6c($sp) +/* 0F8914 7F0C3DE4 8FA50068 */ lw $a1, 0x68($sp) +/* 0F8918 7F0C3DE8 1469FFE4 */ bne $v1, $t1, .L7F0C3D7C +/* 0F891C 7F0C3DEC 24E70008 */ addiu $a3, $a3, 8 +.L7F0C3DF0: +/* 0F8920 7F0C3DF0 00008025 */ move $s0, $zero +.L7F0C3DF4: +/* 0F8924 7F0C3DF4 154BFFCA */ bne $t2, $t3, .L7F0C3D20 +/* 0F8928 7F0C3DF8 00000000 */ nop +/* 0F892C 7F0C3DFC AFA50068 */ sw $a1, 0x68($sp) +/* 0F8930 7F0C3E00 AFA4006C */ sw $a0, 0x6c($sp) +/* 0F8934 7F0C3E04 00005025 */ move $t2, $zero +.L7F0C3E08: +/* 0F8938 7F0C3E08 19600008 */ blez $t3, .L7F0C3E2C +/* 0F893C 7F0C3E0C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0F8940 7F0C3E10 8FA20084 */ lw $v0, 0x84($sp) +.L7F0C3E14: +/* 0F8944 7F0C3E14 8CAF0000 */ lw $t7, ($a1) +/* 0F8948 7F0C3E18 104F0004 */ beq $v0, $t7, .L7F0C3E2C +/* 0F894C 7F0C3E1C 00000000 */ nop +/* 0F8950 7F0C3E20 26100001 */ addiu $s0, $s0, 1 +/* 0F8954 7F0C3E24 160BFFFB */ bne $s0, $t3, .L7F0C3E14 +/* 0F8958 7F0C3E28 24A50004 */ addiu $a1, $a1, 4 +.L7F0C3E2C: +/* 0F895C 7F0C3E2C 0600000B */ bltz $s0, .L7F0C3E5C +/* 0F8960 7F0C3E30 0010C880 */ sll $t9, $s0, 2 +/* 0F8964 7F0C3E34 27A20068 */ addiu $v0, $sp, 0x68 +/* 0F8968 7F0C3E38 03226821 */ addu $t5, $t9, $v0 +/* 0F896C 7F0C3E3C 8DA60000 */ lw $a2, ($t5) +.L7F0C3E40: +/* 0F8970 7F0C3E40 8C4E0000 */ lw $t6, ($v0) +/* 0F8974 7F0C3E44 260F0001 */ addiu $t7, $s0, 1 +/* 0F8978 7F0C3E48 11C60004 */ beq $t6, $a2, .L7F0C3E5C +/* 0F897C 7F0C3E4C 00000000 */ nop +/* 0F8980 7F0C3E50 254A0001 */ addiu $t2, $t2, 1 +/* 0F8984 7F0C3E54 15EAFFFA */ bne $t7, $t2, .L7F0C3E40 +/* 0F8988 7F0C3E58 24420004 */ addiu $v0, $v0, 4 +.L7F0C3E5C: +/* 0F898C 7F0C3E5C 1140000A */ beqz $t2, .L7F0C3E88 +/* 0F8990 7F0C3E60 24010001 */ li $at, 1 +/* 0F8994 7F0C3E64 1141000F */ beq $t2, $at, .L7F0C3EA4 +/* 0F8998 7F0C3E68 24010002 */ li $at, 2 +/* 0F899C 7F0C3E6C 11410014 */ beq $t2, $at, .L7F0C3EC0 +/* 0F89A0 7F0C3E70 8FA2007C */ lw $v0, 0x7c($sp) +/* 0F89A4 7F0C3E74 24010003 */ li $at, 3 +/* 0F89A8 7F0C3E78 11410024 */ beq $t2, $at, .L7F0C3F0C +/* 0F89AC 7F0C3E7C 8FB9007C */ lw $t9, 0x7c($sp) +/* 0F89B0 7F0C3E80 10000032 */ b .L7F0C3F4C +/* 0F89B4 7F0C3E84 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3E88: +/* 0F89B8 7F0C3E88 0FC30776 */ jal get_textptr_for_textID +/* 0F89BC 7F0C3E8C 3404A011 */ li $a0, 40977 +/* 0F89C0 7F0C3E90 8FA40080 */ lw $a0, 0x80($sp) +/* 0F89C4 7F0C3E94 0C002B25 */ jal sprintf +/* 0F89C8 7F0C3E98 00402825 */ move $a1, $v0 +/* 0F89CC 7F0C3E9C 1000002B */ b .L7F0C3F4C +/* 0F89D0 7F0C3EA0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EA4: +/* 0F89D4 7F0C3EA4 0FC30776 */ jal get_textptr_for_textID +/* 0F89D8 7F0C3EA8 3404A012 */ li $a0, 40978 +/* 0F89DC 7F0C3EAC 8FA40080 */ lw $a0, 0x80($sp) +/* 0F89E0 7F0C3EB0 0C002B25 */ jal sprintf +/* 0F89E4 7F0C3EB4 00402825 */ move $a1, $v0 +/* 0F89E8 7F0C3EB8 10000024 */ b .L7F0C3F4C +/* 0F89EC 7F0C3EBC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EC0: +/* 0F89F0 7F0C3EC0 24010005 */ li $at, 5 +/* 0F89F4 7F0C3EC4 1041000A */ beq $v0, $at, .L7F0C3EF0 +/* 0F89F8 7F0C3EC8 24010007 */ li $at, 7 +/* 0F89FC 7F0C3ECC 10410008 */ beq $v0, $at, .L7F0C3EF0 +/* 0F8A00 7F0C3ED0 00000000 */ nop +/* 0F8A04 7F0C3ED4 0FC30776 */ jal get_textptr_for_textID +/* 0F8A08 7F0C3ED8 3404A013 */ li $a0, 40979 +/* 0F8A0C 7F0C3EDC 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A10 7F0C3EE0 0C002B25 */ jal sprintf +/* 0F8A14 7F0C3EE4 00402825 */ move $a1, $v0 +/* 0F8A18 7F0C3EE8 10000018 */ b .L7F0C3F4C +/* 0F8A1C 7F0C3EEC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EF0: +/* 0F8A20 7F0C3EF0 0FC30776 */ jal get_textptr_for_textID +/* 0F8A24 7F0C3EF4 3404A012 */ li $a0, 40978 +/* 0F8A28 7F0C3EF8 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A2C 7F0C3EFC 0C002B25 */ jal sprintf +/* 0F8A30 7F0C3F00 00402825 */ move $a1, $v0 +/* 0F8A34 7F0C3F04 10000011 */ b .L7F0C3F4C +/* 0F8A38 7F0C3F08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F0C: +/* 0F8A3C 7F0C3F0C 24010006 */ li $at, 6 +/* 0F8A40 7F0C3F10 13210008 */ beq $t9, $at, .L7F0C3F34 +/* 0F8A44 7F0C3F14 00000000 */ nop +/* 0F8A48 7F0C3F18 0FC30776 */ jal get_textptr_for_textID +/* 0F8A4C 7F0C3F1C 3404A014 */ li $a0, 40980 +/* 0F8A50 7F0C3F20 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A54 7F0C3F24 0C002B25 */ jal sprintf +/* 0F8A58 7F0C3F28 00402825 */ move $a1, $v0 +/* 0F8A5C 7F0C3F2C 10000007 */ b .L7F0C3F4C +/* 0F8A60 7F0C3F30 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F34: +/* 0F8A64 7F0C3F34 0FC30776 */ jal get_textptr_for_textID +/* 0F8A68 7F0C3F38 3404A012 */ li $a0, 40978 +/* 0F8A6C 7F0C3F3C 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A70 7F0C3F40 0C002B25 */ jal sprintf +/* 0F8A74 7F0C3F44 00402825 */ move $a1, $v0 +/* 0F8A78 7F0C3F48 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F4C: +/* 0F8A7C 7F0C3F4C 8FB00018 */ lw $s0, 0x18($sp) +/* 0F8A80 7F0C3F50 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0F8A84 7F0C3F54 03E00008 */ jr $ra +/* 0F8A88 7F0C3F58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void true_if_displaying_rank_in_mp(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCC0*/ +glabel jpt_MP_overlays_scoring_scenario_1 +.word not_yolt +.word yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.text +glabel true_if_displaying_rank_in_mp +/* 0F8A8C 7F0C3F5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F8A90 7F0C3F60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F8A94 7F0C3F64 0FC051D6 */ jal get_scenario +/* 0F8A98 7F0C3F68 AFA40018 */ sw $a0, 0x18($sp) +/* 0F8A9C 7F0C3F6C 2C410008 */ sltiu $at, $v0, 8 +/* 0F8AA0 7F0C3F70 10200010 */ beqz $at, .L7F0C3FB4 +/* 0F8AA4 7F0C3F74 00027080 */ sll $t6, $v0, 2 +/* 0F8AA8 7F0C3F78 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_1) +/* 0F8AAC 7F0C3F7C 002E0821 */ addu $at, $at, $t6 +/* 0F8AB0 7F0C3F80 8C2EBCC0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_1)($at) +/* 0F8AB4 7F0C3F84 01C00008 */ jr $t6 +/* 0F8AB8 7F0C3F88 00000000 */ nop +not_yolt: +/* 0F8ABC 7F0C3F8C 1000000B */ b .L7F0C3FBC +/* 0F8AC0 7F0C3F90 24020001 */ li $v0, 1 +yolt: +/* 0F8AC4 7F0C3F94 8FAF0018 */ lw $t7, 0x18($sp) +/* 0F8AC8 7F0C3F98 24030001 */ li $v1, 1 +/* 0F8ACC 7F0C3F9C 11E00003 */ beqz $t7, .L7F0C3FAC +/* 0F8AD0 7F0C3FA0 00000000 */ nop +/* 0F8AD4 7F0C3FA4 10000005 */ b .L7F0C3FBC +/* 0F8AD8 7F0C3FA8 00001025 */ move $v0, $zero +.L7F0C3FAC: +/* 0F8ADC 7F0C3FAC 10000003 */ b .L7F0C3FBC +/* 0F8AE0 7F0C3FB0 00601025 */ move $v0, $v1 +def_7F0C3F84: +.L7F0C3FB4: +/* 0F8AE4 7F0C3FB4 1000FFFF */ b .L7F0C3FB4 +/* 0F8AE8 7F0C3FB8 00000000 */ nop +.L7F0C3FBC: +/* 0F8AEC 7F0C3FBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8AF0 7F0C3FC0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8AF4 7F0C3FC4 03E00008 */ jr $ra +/* 0F8AF8 7F0C3FC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void true_if_displaying_score_in_mp(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCE0*/ +glabel jpt_MP_overlays_scoring_scenario_2 +.word not_yolt_tld +.word yolt_tld +.word yolt_tld +.word not_yolt_tld +.word not_yolt_tld +.word not_yolt_tld +.word not_yolt_tld +/*.word not_yolt_tld*/ +.text +glabel true_if_displaying_score_in_mp +/* 0F8AFC 7F0C3FCC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F8B00 7F0C3FD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F8B04 7F0C3FD4 0FC051D6 */ jal get_scenario +/* 0F8B08 7F0C3FD8 AFA40018 */ sw $a0, 0x18($sp) +/* 0F8B0C 7F0C3FDC 2C410008 */ sltiu $at, $v0, 8 +/* 0F8B10 7F0C3FE0 1020000A */ beqz $at, .L7F0C400C +/* 0F8B14 7F0C3FE4 00027080 */ sll $t6, $v0, 2 +/* 0F8B18 7F0C3FE8 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_2) +/* 0F8B1C 7F0C3FEC 002E0821 */ addu $at, $at, $t6 +/* 0F8B20 7F0C3FF0 8C2EBCE0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_2)($at) +/* 0F8B24 7F0C3FF4 01C00008 */ jr $t6 +/* 0F8B28 7F0C3FF8 00000000 */ nop +not_yolt_tld: +/* 0F8B2C 7F0C3FFC 10000005 */ b .L7F0C4014 +/* 0F8B30 7F0C4000 24020001 */ li $v0, 1 +yolt_tld: +/* 0F8B34 7F0C4004 10000003 */ b .L7F0C4014 +/* 0F8B38 7F0C4008 00001025 */ move $v0, $zero +def_7F0C3FF4: +.L7F0C400C: +/* 0F8B3C 7F0C400C 1000FFFF */ b .L7F0C400C +/* 0F8B40 7F0C4010 00000000 */ nop +.L7F0C4014: +/* 0F8B44 7F0C4014 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8B48 7F0C4018 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8B4C 7F0C401C 03E00008 */ jr $ra +/* 0F8B50 7F0C4020 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void mp_watch_menu_display(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*jtbl hacks*/ +.word not_yolt_tld + +/*D:8005BD00*/ +glabel jpt_MP_menu_window_text +.word text_play +.word text_play +.word text_play +.word text_play +.word text_pause_unpause +.word text_exit +.word text_exit +.word text_blank + +.text +glabel mp_watch_menu_display +/* 0F8B54 7F0C4024 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0F8B58 7F0C4028 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F8B5C 7F0C402C AFB10038 */ sw $s1, 0x38($sp) +/* 0F8B60 7F0C4030 00808825 */ move $s1, $a0 +/* 0F8B64 7F0C4034 0FC26C54 */ jal get_cur_playernum +/* 0F8B68 7F0C4038 AFB00034 */ sw $s0, 0x34($sp) +/* 0F8B6C 7F0C403C 0FC26919 */ jal get_num_players +/* 0F8B70 7F0C4040 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0F8B74 7F0C4044 24010001 */ li $at, 1 +/* 0F8B78 7F0C4048 00404025 */ move $t0, $v0 +/* 0F8B7C 7F0C404C 14410003 */ bne $v0, $at, .L7F0C405C +/* 0F8B80 7F0C4050 00008025 */ move $s0, $zero +/* 0F8B84 7F0C4054 100007F7 */ b .L7F0C6034 +/* 0F8B88 7F0C4058 02201025 */ move $v0, $s1 +.L7F0C405C: +/* 0F8B8C 7F0C405C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F8B90 7F0C4060 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F8B94 7F0C4064 02202025 */ move $a0, $s1 +/* 0F8B98 7F0C4068 8C6E29C4 */ lw $t6, 0x29c4($v1) +/* 0F8B9C 7F0C406C 51C0076D */ beql $t6, $zero, .L7F0C5E24 +/* 0F8BA0 7F0C4070 8C6E00D8 */ lw $t6, 0xd8($v1) +/* 0F8BA4 7F0C4074 0FC2B366 */ jal microcode_constructor +/* 0F8BA8 7F0C4078 AFA800D0 */ sw $t0, 0xd0($sp) +/* 0F8BAC 7F0C407C 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F8BB0 7F0C4080 24010002 */ li $at, 2 +/* 0F8BB4 7F0C4084 00408825 */ move $s1, $v0 +/* 0F8BB8 7F0C4088 15E10004 */ bne $t7, $at, .L7F0C409C +/* 0F8BBC 7F0C408C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0F8BC0 7F0C4090 24180050 */ li $t8, 80 +/* 0F8BC4 7F0C4094 10000002 */ b .L7F0C40A0 +/* 0F8BC8 7F0C4098 AFB800A8 */ sw $t8, 0xa8($sp) +.L7F0C409C: +/* 0F8BCC 7F0C409C AFA000A8 */ sw $zero, 0xa8($sp) +.L7F0C40A0: +/* 0F8BD0 7F0C40A0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0F8BD4 7F0C40A4 8F2929C8 */ lw $t1, 0x29c8($t9) +/* 0F8BD8 7F0C40A8 2D210008 */ sltiu $at, $t1, 8 +/* 0F8BDC 7F0C40AC 10200038 */ beqz $at, .L7F0C4190 +/* 0F8BE0 7F0C40B0 00094880 */ sll $t1, $t1, 2 +/* 0F8BE4 7F0C40B4 3C018006 */ lui $at, %hi(jpt_MP_menu_window_text) +/* 0F8BE8 7F0C40B8 00290821 */ addu $at, $at, $t1 +/* 0F8BEC 7F0C40BC 8C29BD00 */ lw $t1, %lo(jpt_MP_menu_window_text)($at) +/* 0F8BF0 7F0C40C0 01200008 */ jr $t1 +/* 0F8BF4 7F0C40C4 00000000 */ nop +text_play: +/* 0F8BF8 7F0C40C8 3C0A8009 */ lui $t2, %hi(is_gameover_flag) +/* 0F8BFC 7F0C40CC 8D4AC704 */ lw $t2, %lo(is_gameover_flag)($t2) +/* 0F8C00 7F0C40D0 3C0B8009 */ lui $t3, %hi(time_trigger_alt_gameover_msg) +/* 0F8C04 7F0C40D4 15400005 */ bnez $t2, .L7F0C40EC +/* 0F8C08 7F0C40D8 00000000 */ nop +/* 0F8C0C 7F0C40DC 0FC30776 */ jal get_textptr_for_textID +/* 0F8C10 7F0C40E0 3404A015 */ li $a0, 40981 +/* 0F8C14 7F0C40E4 1000002A */ b .L7F0C4190 +/* 0F8C18 7F0C40E8 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C40EC: +/* 0F8C1C 7F0C40EC 8D6BC710 */ lw $t3, %lo(time_trigger_alt_gameover_msg)($t3) +/* 0F8C20 7F0C40F0 11600005 */ beqz $t3, .L7F0C4108 +/* 0F8C24 7F0C40F4 00000000 */ nop +/* 0F8C28 7F0C40F8 0FC30776 */ jal get_textptr_for_textID +/* 0F8C2C 7F0C40FC 3404A016 */ li $a0, 40982 +/* 0F8C30 7F0C4100 10000023 */ b .L7F0C4190 +/* 0F8C34 7F0C4104 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C4108: +/* 0F8C38 7F0C4108 0FC30776 */ jal get_textptr_for_textID +/* 0F8C3C 7F0C410C 3404A017 */ li $a0, 40983 +/* 0F8C40 7F0C4110 1000001F */ b .L7F0C4190 +/* 0F8C44 7F0C4114 AFA200A4 */ sw $v0, 0xa4($sp) +text_blank: +/* 0F8C48 7F0C4118 3C0C8006 */ lui $t4, %hi(ascii_MP_watch_menu_BLANK) +/* 0F8C4C 7F0C411C 258CBC24 */ addiu $t4, %lo(ascii_MP_watch_menu_BLANK) # addiu $t4, $t4, -0x43dc +/* 0F8C50 7F0C4120 1000001B */ b .L7F0C4190 +/* 0F8C54 7F0C4124 AFAC00A4 */ sw $t4, 0xa4($sp) +text_pause_unpause: +/* 0F8C58 7F0C4128 3C0D8009 */ lui $t5, %hi(is_paused) +/* 0F8C5C 7F0C412C 8DADC718 */ lw $t5, %lo(is_paused)($t5) +/* 0F8C60 7F0C4130 11A0000B */ beqz $t5, .L7F0C4160 +/* 0F8C64 7F0C4134 00000000 */ nop +/* 0F8C68 7F0C4138 0FC30776 */ jal get_textptr_for_textID +/* 0F8C6C 7F0C413C 3404A018 */ li $a0, 40984 +/* 0F8C70 7F0C4140 0FC26C54 */ jal get_cur_playernum +/* 0F8C74 7F0C4144 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8C78 7F0C4148 3C0E8009 */ lui $t6, %hi(who_paused) +/* 0F8C7C 7F0C414C 8DCEC71C */ lw $t6, %lo(who_paused)($t6) +/* 0F8C80 7F0C4150 144E000F */ bne $v0, $t6, .L7F0C4190 +/* 0F8C84 7F0C4154 00000000 */ nop +/* 0F8C88 7F0C4158 1000000D */ b .L7F0C4190 +/* 0F8C8C 7F0C415C 24100001 */ li $s0, 1 +.L7F0C4160: +/* 0F8C90 7F0C4160 0FC30776 */ jal get_textptr_for_textID +/* 0F8C94 7F0C4164 3404A019 */ li $a0, 40985 +/* 0F8C98 7F0C4168 10000009 */ b .L7F0C4190 +/* 0F8C9C 7F0C416C AFA200A4 */ sw $v0, 0xa4($sp) +text_exit: +/* 0F8CA0 7F0C4170 0FC30776 */ jal get_textptr_for_textID +/* 0F8CA4 7F0C4174 3404A01A */ li $a0, 40986 +/* 0F8CA8 7F0C4178 0C001145 */ jal get_video2_settings_ulx +/* 0F8CAC 7F0C417C AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8CB0 7F0C4180 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F8CB4 7F0C4184 004F2021 */ addu $a0, $v0, $t7 +/* 0F8CB8 7F0C4188 24840041 */ addiu $a0, $a0, 0x41 +/* 0F8CBC 7F0C418C AFA400CC */ sw $a0, 0xcc($sp) +def_7F0C40C0: +.L7F0C4190: +/* 0F8CC0 7F0C4190 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F8CC4 7F0C4194 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F8CC8 7F0C4198 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F8CCC 7F0C419C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F8CD0 7F0C41A0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F8CD4 7F0C41A4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F8CD8 7F0C41A8 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F8CDC 7F0C41AC AFA00014 */ sw $zero, 0x14($sp) +/* 0F8CE0 7F0C41B0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F8CE4 7F0C41B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8CE8 7F0C41B8 0C001145 */ jal get_video2_settings_ulx +/* 0F8CEC 7F0C41BC 00000000 */ nop +/* 0F8CF0 7F0C41C0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F8CF4 7F0C41C4 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F8CF8 7F0C41C8 00594821 */ addu $t1, $v0, $t9 +/* 0F8CFC 7F0C41CC 000A5843 */ sra $t3, $t2, 1 +/* 0F8D00 7F0C41D0 012B2023 */ subu $a0, $t1, $t3 +/* 0F8D04 7F0C41D4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F8D08 7F0C41D8 0C001149 */ jal get_video2_settings_uly +/* 0F8D0C 7F0C41DC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8D10 7F0C41E0 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F8D14 7F0C41E4 000C6843 */ sra $t5, $t4, 1 +/* 0F8D18 7F0C41E8 004D7023 */ subu $t6, $v0, $t5 +/* 0F8D1C 7F0C41EC 25CF0016 */ addiu $t7, $t6, 0x16 +/* 0F8D20 7F0C41F0 1200001E */ beqz $s0, .L7F0C426C +/* 0F8D24 7F0C41F4 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0F8D28 7F0C41F8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8D2C 7F0C41FC 00000000 */ nop +/* 0F8D30 7F0C4200 00028400 */ sll $s0, $v0, 0x10 +/* 0F8D34 7F0C4204 0010C403 */ sra $t8, $s0, 0x10 +/* 0F8D38 7F0C4208 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8D3C 7F0C420C 03008025 */ move $s0, $t8 +/* 0F8D40 7F0C4210 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F8D44 7F0C4214 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F8D48 7F0C4218 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F8D4C 7F0C421C 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F8D50 7F0C4220 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0F8D54 7F0C4224 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0F8D58 7F0C4228 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0F8D5C 7F0C422C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0F8D60 7F0C4230 AFA90018 */ sw $t1, 0x18($sp) +/* 0F8D64 7F0C4234 AFAB001C */ sw $t3, 0x1c($sp) +/* 0F8D68 7F0C4238 02202025 */ move $a0, $s1 +/* 0F8D6C 7F0C423C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8D70 7F0C4240 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8D74 7F0C4244 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8D78 7F0C4248 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8D7C 7F0C424C AFA20024 */ sw $v0, 0x24($sp) +/* 0F8D80 7F0C4250 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8D84 7F0C4254 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8D88 7F0C4258 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F8D8C 7F0C425C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8D90 7F0C4260 AFB90010 */ sw $t9, 0x10($sp) +/* 0F8D94 7F0C4264 1000001A */ b .L7F0C42D0 +/* 0F8D98 7F0C4268 00408825 */ move $s1, $v0 +.L7F0C426C: +/* 0F8D9C 7F0C426C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8DA0 7F0C4270 00000000 */ nop +/* 0F8DA4 7F0C4274 00028400 */ sll $s0, $v0, 0x10 +/* 0F8DA8 7F0C4278 00106403 */ sra $t4, $s0, 0x10 +/* 0F8DAC 7F0C427C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8DB0 7F0C4280 01808025 */ move $s0, $t4 +/* 0F8DB4 7F0C4284 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0F8DB8 7F0C4288 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F8DBC 7F0C428C 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F8DC0 7F0C4290 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F8DC4 7F0C4294 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0F8DC8 7F0C4298 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0F8DCC 7F0C429C AFAF0018 */ sw $t7, 0x18($sp) +/* 0F8DD0 7F0C42A0 02202025 */ move $a0, $s1 +/* 0F8DD4 7F0C42A4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8DD8 7F0C42A8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8DDC 7F0C42AC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8DE0 7F0C42B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8DE4 7F0C42B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8DE8 7F0C42B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8DEC 7F0C42BC AFA00028 */ sw $zero, 0x28($sp) +/* 0F8DF0 7F0C42C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F8DF4 7F0C42C4 0FC2B6AF */ jal en_text_write_stuff +/* 0F8DF8 7F0C42C8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F8DFC 7F0C42CC 00408825 */ move $s1, $v0 +.L7F0C42D0: +/* 0F8E00 7F0C42D0 0FC307A3 */ jal check_can_advance_left_on_mpmenu +/* 0F8E04 7F0C42D4 00000000 */ nop +/* 0F8E08 7F0C42D8 10400056 */ beqz $v0, .L7F0C4434 +/* 0F8E0C 7F0C42DC 00000000 */ nop +/* 0F8E10 7F0C42E0 0C001145 */ jal get_video2_settings_ulx +/* 0F8E14 7F0C42E4 00000000 */ nop +/* 0F8E18 7F0C42E8 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8E1C 7F0C42EC 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8E20 7F0C42F0 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8E24 7F0C42F4 2418000A */ li $t8, 10 +/* 0F8E28 7F0C42F8 50600004 */ beql $v1, $zero, .L7F0C430C +/* 0F8E2C 7F0C42FC AFA00050 */ sw $zero, 0x50($sp) +/* 0F8E30 7F0C4300 10000002 */ b .L7F0C430C +/* 0F8E34 7F0C4304 AFB80050 */ sw $t8, 0x50($sp) +/* 0F8E38 7F0C4308 AFA00050 */ sw $zero, 0x50($sp) +.L7F0C430C: +/* 0F8E3C 7F0C430C 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F8E40 7F0C4310 8FAC0050 */ lw $t4, 0x50($sp) +/* 0F8E44 7F0C4314 00195403 */ sra $t2, $t9, 0x10 +/* 0F8E48 7F0C4318 01495821 */ addu $t3, $t2, $t1 +/* 0F8E4C 7F0C431C 016C2023 */ subu $a0, $t3, $t4 +/* 0F8E50 7F0C4320 24840028 */ addiu $a0, $a0, 0x28 +/* 0F8E54 7F0C4324 10600003 */ beqz $v1, .L7F0C4334 +/* 0F8E58 7F0C4328 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8E5C 7F0C432C 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F8E60 7F0C4330 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4334: +/* 0F8E64 7F0C4334 0C001149 */ jal get_video2_settings_uly +/* 0F8E68 7F0C4338 00000000 */ nop +/* 0F8E6C 7F0C433C 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008C708) +/* 0F8E70 7F0C4340 8DCEC708 */ lw $t6, %lo(dword_CODE_bss_8008C708)($t6) +/* 0F8E74 7F0C4344 244D0016 */ addiu $t5, $v0, 0x16 +/* 0F8E78 7F0C4348 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F8E7C 7F0C434C 15C0001C */ bnez $t6, .L7F0C43C0 +/* 0F8E80 7F0C4350 00000000 */ nop +/* 0F8E84 7F0C4354 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8E88 7F0C4358 00000000 */ nop +/* 0F8E8C 7F0C435C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8E90 7F0C4360 00107C03 */ sra $t7, $s0, 0x10 +/* 0F8E94 7F0C4364 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8E98 7F0C4368 01E08025 */ move $s0, $t7 +/* 0F8E9C 7F0C436C 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0F8EA0 7F0C4370 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F8EA4 7F0C4374 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F8EA8 7F0C4378 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0F8EAC 7F0C437C 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F8EB0 7F0C4380 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F8EB4 7F0C4384 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8EB8 7F0C4388 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8EBC 7F0C438C AFAA0018 */ sw $t2, 0x18($sp) +/* 0F8EC0 7F0C4390 02202025 */ move $a0, $s1 +/* 0F8EC4 7F0C4394 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8EC8 7F0C4398 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8ECC 7F0C439C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8ED0 7F0C43A0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8ED4 7F0C43A4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8ED8 7F0C43A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8EDC 7F0C43AC AFB90014 */ sw $t9, 0x14($sp) +/* 0F8EE0 7F0C43B0 0FC2B6AF */ jal en_text_write_stuff +/* 0F8EE4 7F0C43B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8EE8 7F0C43B8 1000001E */ b .L7F0C4434 +/* 0F8EEC 7F0C43BC 00408825 */ move $s1, $v0 +.L7F0C43C0: +/* 0F8EF0 7F0C43C0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8EF4 7F0C43C4 00000000 */ nop +/* 0F8EF8 7F0C43C8 00028400 */ sll $s0, $v0, 0x10 +/* 0F8EFC 7F0C43CC 00104C03 */ sra $t1, $s0, 0x10 +/* 0F8F00 7F0C43D0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8F04 7F0C43D4 01208025 */ move $s0, $t1 +/* 0F8F08 7F0C43D8 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F8F0C 7F0C43DC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F8F10 7F0C43E0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F8F14 7F0C43E4 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F8F18 7F0C43E8 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0F8F1C 7F0C43EC 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0F8F20 7F0C43F0 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0F8F24 7F0C43F4 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0F8F28 7F0C43F8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8F2C 7F0C43FC 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8F30 7F0C4400 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F8F34 7F0C4404 AFAE001C */ sw $t6, 0x1c($sp) +/* 0F8F38 7F0C4408 02202025 */ move $a0, $s1 +/* 0F8F3C 7F0C440C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8F40 7F0C4410 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8F44 7F0C4414 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8F48 7F0C4418 AFA20024 */ sw $v0, 0x24($sp) +/* 0F8F4C 7F0C441C AFA00028 */ sw $zero, 0x28($sp) +/* 0F8F50 7F0C4420 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8F54 7F0C4424 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F8F58 7F0C4428 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8F5C 7F0C442C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F8F60 7F0C4430 00408825 */ move $s1, $v0 +.L7F0C4434: +/* 0F8F64 7F0C4434 0FC30788 */ jal check_can_advance_right_on_mpmenu +/* 0F8F68 7F0C4438 00000000 */ nop +/* 0F8F6C 7F0C443C 10400056 */ beqz $v0, .L7F0C4598 +/* 0F8F70 7F0C4440 00000000 */ nop +/* 0F8F74 7F0C4444 0C001145 */ jal get_video2_settings_ulx +/* 0F8F78 7F0C4448 00000000 */ nop +/* 0F8F7C 7F0C444C 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8F80 7F0C4450 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8F84 7F0C4454 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8F88 7F0C4458 240F000A */ li $t7, 10 +/* 0F8F8C 7F0C445C 50600004 */ beql $v1, $zero, .L7F0C4470 +/* 0F8F90 7F0C4460 AFA00050 */ sw $zero, 0x50($sp) +/* 0F8F94 7F0C4464 10000002 */ b .L7F0C4470 +/* 0F8F98 7F0C4468 AFAF0050 */ sw $t7, 0x50($sp) +/* 0F8F9C 7F0C446C AFA00050 */ sw $zero, 0x50($sp) +.L7F0C4470: +/* 0F8FA0 7F0C4470 8FB80050 */ lw $t8, 0x50($sp) +/* 0F8FA4 7F0C4474 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F8FA8 7F0C4478 00195403 */ sra $t2, $t9, 0x10 +/* 0F8FAC 7F0C447C 030A4821 */ addu $t1, $t8, $t2 +/* 0F8FB0 7F0C4480 012B2021 */ addu $a0, $t1, $t3 +/* 0F8FB4 7F0C4484 24840070 */ addiu $a0, $a0, 0x70 +/* 0F8FB8 7F0C4488 10600003 */ beqz $v1, .L7F0C4498 +/* 0F8FBC 7F0C448C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8FC0 7F0C4490 24840008 */ addiu $a0, $a0, 8 +/* 0F8FC4 7F0C4494 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4498: +/* 0F8FC8 7F0C4498 0C001149 */ jal get_video2_settings_uly +/* 0F8FCC 7F0C449C 00000000 */ nop +/* 0F8FD0 7F0C44A0 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008C708) +/* 0F8FD4 7F0C44A4 8DADC708 */ lw $t5, %lo(dword_CODE_bss_8008C708)($t5) +/* 0F8FD8 7F0C44A8 244C0016 */ addiu $t4, $v0, 0x16 +/* 0F8FDC 7F0C44AC AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0F8FE0 7F0C44B0 15A0001C */ bnez $t5, .L7F0C4524 +/* 0F8FE4 7F0C44B4 00000000 */ nop +/* 0F8FE8 7F0C44B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8FEC 7F0C44BC 00000000 */ nop +/* 0F8FF0 7F0C44C0 00028400 */ sll $s0, $v0, 0x10 +/* 0F8FF4 7F0C44C4 00107403 */ sra $t6, $s0, 0x10 +/* 0F8FF8 7F0C44C8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8FFC 7F0C44CC 01C08025 */ move $s0, $t6 +/* 0F9000 7F0C44D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0F9004 7F0C44D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F9008 7F0C44D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F900C 7F0C44DC 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0F9010 7F0C44E0 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F9014 7F0C44E4 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9018 7F0C44E8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F901C 7F0C44EC 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9020 7F0C44F0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9024 7F0C44F4 02202025 */ move $a0, $s1 +/* 0F9028 7F0C44F8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F902C 7F0C44FC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9030 7F0C4500 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9034 7F0C4504 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9038 7F0C4508 AFA00024 */ sw $zero, 0x24($sp) +/* 0F903C 7F0C450C AFA00028 */ sw $zero, 0x28($sp) +/* 0F9040 7F0C4510 AFB90014 */ sw $t9, 0x14($sp) +/* 0F9044 7F0C4514 0FC2B6AF */ jal en_text_write_stuff +/* 0F9048 7F0C4518 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F904C 7F0C451C 1000001E */ b .L7F0C4598 +/* 0F9050 7F0C4520 00408825 */ move $s1, $v0 +.L7F0C4524: +/* 0F9054 7F0C4524 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9058 7F0C4528 00000000 */ nop +/* 0F905C 7F0C452C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9060 7F0C4530 00105403 */ sra $t2, $s0, 0x10 +/* 0F9064 7F0C4534 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9068 7F0C4538 01408025 */ move $s0, $t2 +/* 0F906C 7F0C453C 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F9070 7F0C4540 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0F9074 7F0C4544 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9078 7F0C4548 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F907C 7F0C454C 3C0CA0FF */ lui $t4, (0xA0FFA0F0 >> 16) # lui $t4, 0xa0ff +/* 0F9080 7F0C4550 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0F9084 7F0C4554 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0F9088 7F0C4558 358CA0F0 */ ori $t4, (0xA0FFA0F0 & 0xFFFF) # ori $t4, $t4, 0xa0f0 +/* 0F908C 7F0C455C 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F9090 7F0C4560 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9094 7F0C4564 AFAC0018 */ sw $t4, 0x18($sp) +/* 0F9098 7F0C4568 AFAD001C */ sw $t5, 0x1c($sp) +/* 0F909C 7F0C456C 02202025 */ move $a0, $s1 +/* 0F90A0 7F0C4570 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F90A4 7F0C4574 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F90A8 7F0C4578 AFB00020 */ sw $s0, 0x20($sp) +/* 0F90AC 7F0C457C AFA20024 */ sw $v0, 0x24($sp) +/* 0F90B0 7F0C4580 AFA00028 */ sw $zero, 0x28($sp) +/* 0F90B4 7F0C4584 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F90B8 7F0C4588 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F90BC 7F0C458C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F90C0 7F0C4590 AFA90010 */ sw $t1, 0x10($sp) +/* 0F90C4 7F0C4594 00408825 */ move $s1, $v0 +.L7F0C4598: +/* 0F90C8 7F0C4598 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F90CC 7F0C459C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F90D0 7F0C45A0 24010003 */ li $at, 3 +/* 0F90D4 7F0C45A4 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0F90D8 7F0C45A8 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F90DC 7F0C45AC 10410003 */ beq $v0, $at, .L7F0C45BC +/* 0F90E0 7F0C45B0 24010004 */ li $at, 4 +/* 0F90E4 7F0C45B4 544101AA */ bnel $v0, $at, .L7F0C4C60 +/* 0F90E8 7F0C45B8 24010002 */ li $at, 2 +.L7F0C45BC: +/* 0F90EC 7F0C45BC 19C0000D */ blez $t6, .L7F0C45F4 +/* 0F90F0 7F0C45C0 00002025 */ move $a0, $zero +/* 0F90F4 7F0C45C4 27A30094 */ addiu $v1, $sp, 0x94 +/* 0F90F8 7F0C45C8 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45CC: +/* 0F90FC 7F0C45CC 0FC30E36 */ jal get_points_for_mp_player +/* 0F9100 7F0C45D0 AFA40090 */ sw $a0, 0x90($sp) +/* 0F9104 7F0C45D4 8FA30044 */ lw $v1, 0x44($sp) +/* 0F9108 7F0C45D8 8FA40090 */ lw $a0, 0x90($sp) +/* 0F910C 7F0C45DC AC620000 */ sw $v0, ($v1) +/* 0F9110 7F0C45E0 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F9114 7F0C45E4 24840001 */ addiu $a0, $a0, 1 +/* 0F9118 7F0C45E8 24630004 */ addiu $v1, $v1, 4 +/* 0F911C 7F0C45EC 548FFFF7 */ bnel $a0, $t7, .L7F0C45CC +/* 0F9120 7F0C45F0 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45F4: +/* 0F9124 7F0C45F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9128 7F0C45F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F912C 7F0C45FC 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9130 7F0C4600 13200005 */ beqz $t9, .L7F0C4618 +/* 0F9134 7F0C4604 03202025 */ move $a0, $t9 +/* 0F9138 7F0C4608 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F913C 7F0C460C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9140 7F0C4610 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9144 7F0C4614 03002025 */ move $a0, $t8 +.L7F0C4618: +/* 0F9148 7F0C4618 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F914C 7F0C461C 00000000 */ nop +/* 0F9150 7F0C4620 10400034 */ beqz $v0, .L7F0C46F4 +/* 0F9154 7F0C4624 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9158 7F0C4628 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F915C 7F0C462C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9160 7F0C4630 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F9164 7F0C4634 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F9168 7F0C4638 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F916C 7F0C463C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9170 7F0C4640 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9174 7F0C4644 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9178 7F0C4648 27A600AC */ addiu $a2, $sp, 0xac +/* 0F917C 7F0C464C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9180 7F0C4650 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9184 7F0C4654 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9188 7F0C4658 0C001145 */ jal get_video2_settings_ulx +/* 0F918C 7F0C465C 00000000 */ nop +/* 0F9190 7F0C4660 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9194 7F0C4664 8FAC00C0 */ lw $t4, 0xc0($sp) +/* 0F9198 7F0C4668 00495821 */ addu $t3, $v0, $t1 +/* 0F919C 7F0C466C 000C6843 */ sra $t5, $t4, 1 +/* 0F91A0 7F0C4670 016D2023 */ subu $a0, $t3, $t5 +/* 0F91A4 7F0C4674 24840050 */ addiu $a0, $a0, 0x50 +/* 0F91A8 7F0C4678 0C001149 */ jal get_video2_settings_uly +/* 0F91AC 7F0C467C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F91B0 7F0C4680 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F91B4 7F0C4684 000E7843 */ sra $t7, $t6, 1 +/* 0F91B8 7F0C4688 004FC823 */ subu $t9, $v0, $t7 +/* 0F91BC 7F0C468C 27380025 */ addiu $t8, $t9, 0x25 +/* 0F91C0 7F0C4690 0C001107 */ jal get_video2_settings_txtClipW +/* 0F91C4 7F0C4694 AFB800C8 */ sw $t8, 0xc8($sp) +/* 0F91C8 7F0C4698 00028400 */ sll $s0, $v0, 0x10 +/* 0F91CC 7F0C469C 00105403 */ sra $t2, $s0, 0x10 +/* 0F91D0 7F0C46A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F91D4 7F0C46A4 01408025 */ move $s0, $t2 +/* 0F91D8 7F0C46A8 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F91DC 7F0C46AC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F91E0 7F0C46B0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F91E4 7F0C46B4 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F91E8 7F0C46B8 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F91EC 7F0C46BC 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F91F0 7F0C46C0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F91F4 7F0C46C4 02202025 */ move $a0, $s1 +/* 0F91F8 7F0C46C8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F91FC 7F0C46CC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9200 7F0C46D0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9204 7F0C46D4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9208 7F0C46D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F920C 7F0C46DC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9210 7F0C46E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9214 7F0C46E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F9218 7F0C46E8 0FC2B6AF */ jal en_text_write_stuff +/* 0F921C 7F0C46EC AFA90010 */ sw $t1, 0x10($sp) +/* 0F9220 7F0C46F0 00408825 */ move $s1, $v0 +.L7F0C46F4: +/* 0F9224 7F0C46F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9228 7F0C46F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F922C 7F0C46FC 2C8D0001 */ sltiu $t5, $a0, 1 +/* 0F9230 7F0C4700 11A00005 */ beqz $t5, .L7F0C4718 +/* 0F9234 7F0C4704 01A02025 */ move $a0, $t5 +/* 0F9238 7F0C4708 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F923C 7F0C470C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9240 7F0C4710 2C8E0001 */ sltiu $t6, $a0, 1 +/* 0F9244 7F0C4714 01C02025 */ move $a0, $t6 +.L7F0C4718: +/* 0F9248 7F0C4718 0FC30FF3 */ jal true_if_displaying_score_in_mp +/* 0F924C 7F0C471C 00000000 */ nop +/* 0F9250 7F0C4720 1040014B */ beqz $v0, .L7F0C4C50 +/* 0F9254 7F0C4724 00000000 */ nop +/* 0F9258 7F0C4728 0FC051D6 */ jal get_scenario +/* 0F925C 7F0C472C 00000000 */ nop +/* 0F9260 7F0C4730 AFA20080 */ sw $v0, 0x80($sp) +/* 0F9264 7F0C4734 0FC30776 */ jal get_textptr_for_textID +/* 0F9268 7F0C4738 3404A01B */ li $a0, 40987 +/* 0F926C 7F0C473C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9270 7F0C4740 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9274 7F0C4744 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9278 7F0C4748 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F927C 7F0C474C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9280 7F0C4750 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9284 7F0C4754 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9288 7F0C4758 00403025 */ move $a2, $v0 +/* 0F928C 7F0C475C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9290 7F0C4760 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9294 7F0C4764 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F9298 7F0C4768 0C001145 */ jal get_video2_settings_ulx +/* 0F929C 7F0C476C 00000000 */ nop +/* 0F92A0 7F0C4770 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F92A4 7F0C4774 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F92A8 7F0C4778 0059C021 */ addu $t8, $v0, $t9 +/* 0F92AC 7F0C477C 000A4843 */ sra $t1, $t2, 1 +/* 0F92B0 7F0C4780 03092023 */ subu $a0, $t8, $t1 +/* 0F92B4 7F0C4784 24840050 */ addiu $a0, $a0, 0x50 +/* 0F92B8 7F0C4788 0C001149 */ jal get_video2_settings_uly +/* 0F92BC 7F0C478C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F92C0 7F0C4790 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F92C4 7F0C4794 000C5843 */ sra $t3, $t4, 1 +/* 0F92C8 7F0C4798 004B6823 */ subu $t5, $v0, $t3 +/* 0F92CC 7F0C479C 25AE0035 */ addiu $t6, $t5, 0x35 +/* 0F92D0 7F0C47A0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F92D4 7F0C47A4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0F92D8 7F0C47A8 00028400 */ sll $s0, $v0, 0x10 +/* 0F92DC 7F0C47AC 00107C03 */ sra $t7, $s0, 0x10 +/* 0F92E0 7F0C47B0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F92E4 7F0C47B4 01E08025 */ move $s0, $t7 +/* 0F92E8 7F0C47B8 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F92EC 7F0C47BC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F92F0 7F0C47C0 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F92F4 7F0C47C4 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F92F8 7F0C47C8 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F92FC 7F0C47CC 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9300 7F0C47D0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9304 7F0C47D4 02202025 */ move $a0, $s1 +/* 0F9308 7F0C47D8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F930C 7F0C47DC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9310 7F0C47E0 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9314 7F0C47E4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9318 7F0C47E8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F931C 7F0C47EC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9320 7F0C47F0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9324 7F0C47F4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F9328 7F0C47F8 0FC2B6AF */ jal en_text_write_stuff +/* 0F932C 7F0C47FC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9330 7F0C4800 8FA30080 */ lw $v1, 0x80($sp) +/* 0F9334 7F0C4804 24010005 */ li $at, 5 +/* 0F9338 7F0C4808 00408825 */ move $s1, $v0 +/* 0F933C 7F0C480C 10610009 */ beq $v1, $at, .L7F0C4834 +/* 0F9340 7F0C4810 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9344 7F0C4814 24010006 */ li $at, 6 +/* 0F9348 7F0C4818 10610006 */ beq $v1, $at, .L7F0C4834 +/* 0F934C 7F0C481C 24010007 */ li $at, 7 +/* 0F9350 7F0C4820 10610004 */ beq $v1, $at, .L7F0C4834 +/* 0F9354 7F0C4824 24010002 */ li $at, 2 +/* 0F9358 7F0C4828 10610002 */ beq $v1, $at, .L7F0C4834 +/* 0F935C 7F0C482C 24010003 */ li $at, 3 +/* 0F9360 7F0C4830 14610015 */ bne $v1, $at, .L7F0C4888 +.L7F0C4834: +/* 0F9364 7F0C4834 000960C0 */ sll $t4, $t1, 3 +/* 0F9368 7F0C4838 01896023 */ subu $t4, $t4, $t1 +/* 0F936C 7F0C483C 000C6100 */ sll $t4, $t4, 4 +/* 0F9370 7F0C4840 3C0B8008 */ lui $t3, %hi(player1_player_data+105) +/* 0F9374 7F0C4844 016C5821 */ addu $t3, $t3, $t4 +/* 0F9378 7F0C4848 916B9F59 */ lbu $t3, %lo(player1_player_data+105)($t3) +/* 0F937C 7F0C484C 24190005 */ li $t9, 5 +/* 0F9380 7F0C4850 240A0004 */ li $t2, 4 +/* 0F9384 7F0C4854 15600008 */ bnez $t3, .L7F0C4878 +/* 0F9388 7F0C4858 24180002 */ li $t8, 2 +/* 0F938C 7F0C485C 240D0003 */ li $t5, 3 +/* 0F9390 7F0C4860 240E0002 */ li $t6, 2 +/* 0F9394 7F0C4864 240F0004 */ li $t7, 4 +/* 0F9398 7F0C4868 AFAD008C */ sw $t5, 0x8c($sp) +/* 0F939C 7F0C486C AFAE0088 */ sw $t6, 0x88($sp) +/* 0F93A0 7F0C4870 10000009 */ b .L7F0C4898 +/* 0F93A4 7F0C4874 AFAF0084 */ sw $t7, 0x84($sp) +.L7F0C4878: +/* 0F93A8 7F0C4878 AFB9008C */ sw $t9, 0x8c($sp) +/* 0F93AC 7F0C487C AFAA0088 */ sw $t2, 0x88($sp) +/* 0F93B0 7F0C4880 10000005 */ b .L7F0C4898 +/* 0F93B4 7F0C4884 AFB80084 */ sw $t8, 0x84($sp) +.L7F0C4888: +/* 0F93B8 7F0C4888 24090001 */ li $t1, 1 +/* 0F93BC 7F0C488C AFA9008C */ sw $t1, 0x8c($sp) +/* 0F93C0 7F0C4890 AFA00088 */ sw $zero, 0x88($sp) +/* 0F93C4 7F0C4894 AFA00084 */ sw $zero, 0x84($sp) +.L7F0C4898: +/* 0F93C8 7F0C4898 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0F93CC 7F0C489C 24010002 */ li $at, 2 +/* 0F93D0 7F0C48A0 1581004E */ bne $t4, $at, .L7F0C49DC +/* 0F93D4 7F0C48A4 00000000 */ nop +/* 0F93D8 7F0C48A8 0C001145 */ jal get_video2_settings_ulx +/* 0F93DC 7F0C48AC 00000000 */ nop +/* 0F93E0 7F0C48B0 00028400 */ sll $s0, $v0, 0x10 +/* 0F93E4 7F0C48B4 00105C03 */ sra $t3, $s0, 0x10 +/* 0F93E8 7F0C48B8 0C001149 */ jal get_video2_settings_uly +/* 0F93EC 7F0C48BC 01608025 */ move $s0, $t3 +/* 0F93F0 7F0C48C0 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F93F4 7F0C48C4 00021C00 */ sll $v1, $v0, 0x10 +/* 0F93F8 7F0C48C8 00036C03 */ sra $t5, $v1, 0x10 +/* 0F93FC 7F0C48CC 15000004 */ bnez $t0, .L7F0C48E0 +/* 0F9400 7F0C48D0 01A01825 */ move $v1, $t5 +/* 0F9404 7F0C48D4 8FAE008C */ lw $t6, 0x8c($sp) +/* 0F9408 7F0C48D8 1000000F */ b .L7F0C4918 +/* 0F940C 7F0C48DC AFAE0050 */ sw $t6, 0x50($sp) +.L7F0C48E0: +/* 0F9410 7F0C48E0 0008C8C0 */ sll $t9, $t0, 3 +/* 0F9414 7F0C48E4 0328C823 */ subu $t9, $t9, $t0 +/* 0F9418 7F0C48E8 0019C900 */ sll $t9, $t9, 4 +/* 0F941C 7F0C48EC 3C0A8008 */ lui $t2, %hi(player1_player_data + 0x69) +/* 0F9420 7F0C48F0 01595021 */ addu $t2, $t2, $t9 +/* 0F9424 7F0C48F4 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x69) +/* 0F9428 7F0C48F8 91EF9F59 */ lbu $t7, %lo(player1_player_data + 0x69)($t7) +/* 0F942C 7F0C48FC 914A9F59 */ lbu $t2, %lo(player1_player_data + 0x69)($t2) +/* 0F9430 7F0C4900 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9434 7F0C4904 15EA0003 */ bne $t7, $t2, .L7F0C4914 +/* 0F9438 7F0C4908 00000000 */ nop +/* 0F943C 7F0C490C 10000001 */ b .L7F0C4914 +/* 0F9440 7F0C4910 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4914: +/* 0F9444 7F0C4914 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4918: +/* 0F9448 7F0C4918 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F944C 7F0C491C 8FA90050 */ lw $t1, 0x50($sp) +/* 0F9450 7F0C4920 02202025 */ move $a0, $s1 +/* 0F9454 7F0C4924 02182821 */ addu $a1, $s0, $t8 +/* 0F9458 7F0C4928 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F945C 7F0C492C 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9460 7F0C4930 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9464 7F0C4934 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9468 7F0C4938 AFA90010 */ sw $t1, 0x10($sp) +/* 0F946C 7F0C493C 0C001145 */ jal get_video2_settings_ulx +/* 0F9470 7F0C4940 00408825 */ move $s1, $v0 +/* 0F9474 7F0C4944 00028400 */ sll $s0, $v0, 0x10 +/* 0F9478 7F0C4948 00106403 */ sra $t4, $s0, 0x10 +/* 0F947C 7F0C494C 0C001149 */ jal get_video2_settings_uly +/* 0F9480 7F0C4950 01808025 */ move $s0, $t4 +/* 0F9484 7F0C4954 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9488 7F0C4958 00021C00 */ sll $v1, $v0, 0x10 +/* 0F948C 7F0C495C 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9490 7F0C4960 24010001 */ li $at, 1 +/* 0F9494 7F0C4964 14810004 */ bne $a0, $at, .L7F0C4978 +/* 0F9498 7F0C4968 01601825 */ move $v1, $t3 +/* 0F949C 7F0C496C 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F94A0 7F0C4970 1000000F */ b .L7F0C49B0 +/* 0F94A4 7F0C4974 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4978: +/* 0F94A8 7F0C4978 0004C8C0 */ sll $t9, $a0, 3 +/* 0F94AC 7F0C497C 0324C823 */ subu $t9, $t9, $a0 +/* 0F94B0 7F0C4980 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F94B4 7F0C4984 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F94B8 7F0C4988 0019C900 */ sll $t9, $t9, 4 +/* 0F94BC 7F0C498C 00597821 */ addu $t7, $v0, $t9 +/* 0F94C0 7F0C4990 91EA0069 */ lbu $t2, 0x69($t7) +/* 0F94C4 7F0C4994 904E00D9 */ lbu $t6, 0xd9($v0) +/* 0F94C8 7F0C4998 8FA60084 */ lw $a2, 0x84($sp) +/* 0F94CC 7F0C499C 15CA0003 */ bne $t6, $t2, .L7F0C49AC +/* 0F94D0 7F0C49A0 00000000 */ nop +/* 0F94D4 7F0C49A4 10000001 */ b .L7F0C49AC +/* 0F94D8 7F0C49A8 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C49AC: +/* 0F94DC 7F0C49AC AFA60050 */ sw $a2, 0x50($sp) +.L7F0C49B0: +/* 0F94E0 7F0C49B0 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F94E4 7F0C49B4 8FA90050 */ lw $t1, 0x50($sp) +/* 0F94E8 7F0C49B8 02202025 */ move $a0, $s1 +/* 0F94EC 7F0C49BC 02182821 */ addu $a1, $s0, $t8 +/* 0F94F0 7F0C49C0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F94F4 7F0C49C4 24660056 */ addiu $a2, $v1, 0x56 +/* 0F94F8 7F0C49C8 8FA70098 */ lw $a3, 0x98($sp) +/* 0F94FC 7F0C49CC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9500 7F0C49D0 AFA90010 */ sw $t1, 0x10($sp) +/* 0F9504 7F0C49D4 1000009E */ b .L7F0C4C50 +/* 0F9508 7F0C49D8 00408825 */ move $s1, $v0 +.L7F0C49DC: +/* 0F950C 7F0C49DC 0C001145 */ jal get_video2_settings_ulx +/* 0F9510 7F0C49E0 00000000 */ nop +/* 0F9514 7F0C49E4 00028400 */ sll $s0, $v0, 0x10 +/* 0F9518 7F0C49E8 00106403 */ sra $t4, $s0, 0x10 +/* 0F951C 7F0C49EC 0C001149 */ jal get_video2_settings_uly +/* 0F9520 7F0C49F0 01808025 */ move $s0, $t4 +/* 0F9524 7F0C49F4 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9528 7F0C49F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0F952C 7F0C49FC 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9530 7F0C4A00 15000004 */ bnez $t0, .L7F0C4A14 +/* 0F9534 7F0C4A04 01601825 */ move $v1, $t3 +/* 0F9538 7F0C4A08 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F953C 7F0C4A0C 1000000F */ b .L7F0C4A4C +/* 0F9540 7F0C4A10 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4A14: +/* 0F9544 7F0C4A14 000878C0 */ sll $t7, $t0, 3 +/* 0F9548 7F0C4A18 01E87823 */ subu $t7, $t7, $t0 +/* 0F954C 7F0C4A1C 000F7900 */ sll $t7, $t7, 4 +/* 0F9550 7F0C4A20 3C0E8008 */ lui $t6, %hi(player1_player_data + 0x69) +/* 0F9554 7F0C4A24 01CF7021 */ addu $t6, $t6, $t7 +/* 0F9558 7F0C4A28 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F955C 7F0C4A2C 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F9560 7F0C4A30 91CE9F59 */ lbu $t6, %lo(player1_player_data + 0x69)($t6) +/* 0F9564 7F0C4A34 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9568 7F0C4A38 172E0003 */ bne $t9, $t6, .L7F0C4A48 +/* 0F956C 7F0C4A3C 00000000 */ nop +/* 0F9570 7F0C4A40 10000001 */ b .L7F0C4A48 +/* 0F9574 7F0C4A44 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4A48: +/* 0F9578 7F0C4A48 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4A4C: +/* 0F957C 7F0C4A4C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9580 7F0C4A50 8FB80050 */ lw $t8, 0x50($sp) +/* 0F9584 7F0C4A54 02202025 */ move $a0, $s1 +/* 0F9588 7F0C4A58 020A2821 */ addu $a1, $s0, $t2 +/* 0F958C 7F0C4A5C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9590 7F0C4A60 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9594 7F0C4A64 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9598 7F0C4A68 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F959C 7F0C4A6C AFB80010 */ sw $t8, 0x10($sp) +/* 0F95A0 7F0C4A70 0C001145 */ jal get_video2_settings_ulx +/* 0F95A4 7F0C4A74 00408825 */ move $s1, $v0 +/* 0F95A8 7F0C4A78 00028400 */ sll $s0, $v0, 0x10 +/* 0F95AC 7F0C4A7C 00104C03 */ sra $t1, $s0, 0x10 +/* 0F95B0 7F0C4A80 0C001149 */ jal get_video2_settings_uly +/* 0F95B4 7F0C4A84 01208025 */ move $s0, $t1 +/* 0F95B8 7F0C4A88 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F95BC 7F0C4A8C 00021C00 */ sll $v1, $v0, 0x10 +/* 0F95C0 7F0C4A90 00036403 */ sra $t4, $v1, 0x10 +/* 0F95C4 7F0C4A94 24010001 */ li $at, 1 +/* 0F95C8 7F0C4A98 15010004 */ bne $t0, $at, .L7F0C4AAC +/* 0F95CC 7F0C4A9C 01801825 */ move $v1, $t4 +/* 0F95D0 7F0C4AA0 8FAB008C */ lw $t3, 0x8c($sp) +/* 0F95D4 7F0C4AA4 1000000F */ b .L7F0C4AE4 +/* 0F95D8 7F0C4AA8 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0C4AAC: +/* 0F95DC 7F0C4AAC 000878C0 */ sll $t7, $t0, 3 +/* 0F95E0 7F0C4AB0 01E87823 */ subu $t7, $t7, $t0 +/* 0F95E4 7F0C4AB4 000F7900 */ sll $t7, $t7, 4 +/* 0F95E8 7F0C4AB8 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F95EC 7F0C4ABC 032FC821 */ addu $t9, $t9, $t7 +/* 0F95F0 7F0C4AC0 3C0D8008 */ lui $t5, %hi(player2_player_data + 0x69) +/* 0F95F4 7F0C4AC4 91AD9FC9 */ lbu $t5, %lo(player2_player_data + 0x69)($t5) +/* 0F95F8 7F0C4AC8 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F95FC 7F0C4ACC 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9600 7F0C4AD0 15B90003 */ bne $t5, $t9, .L7F0C4AE0 +/* 0F9604 7F0C4AD4 00000000 */ nop +/* 0F9608 7F0C4AD8 10000001 */ b .L7F0C4AE0 +/* 0F960C 7F0C4ADC 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4AE0: +/* 0F9610 7F0C4AE0 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4AE4: +/* 0F9614 7F0C4AE4 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F9618 7F0C4AE8 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F961C 7F0C4AEC 02202025 */ move $a0, $s1 +/* 0F9620 7F0C4AF0 020E2821 */ addu $a1, $s0, $t6 +/* 0F9624 7F0C4AF4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9628 7F0C4AF8 24660046 */ addiu $a2, $v1, 0x46 +/* 0F962C 7F0C4AFC 8FA70098 */ lw $a3, 0x98($sp) +/* 0F9630 7F0C4B00 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9634 7F0C4B04 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9638 7F0C4B08 0C001145 */ jal get_video2_settings_ulx +/* 0F963C 7F0C4B0C 00408825 */ move $s1, $v0 +/* 0F9640 7F0C4B10 00028400 */ sll $s0, $v0, 0x10 +/* 0F9644 7F0C4B14 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9648 7F0C4B18 0C001149 */ jal get_video2_settings_uly +/* 0F964C 7F0C4B1C 03008025 */ move $s0, $t8 +/* 0F9650 7F0C4B20 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9654 7F0C4B24 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9658 7F0C4B28 00034C03 */ sra $t1, $v1, 0x10 +/* 0F965C 7F0C4B2C 24010002 */ li $at, 2 +/* 0F9660 7F0C4B30 15010004 */ bne $t0, $at, .L7F0C4B44 +/* 0F9664 7F0C4B34 01201825 */ move $v1, $t1 +/* 0F9668 7F0C4B38 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F966C 7F0C4B3C 1000000F */ b .L7F0C4B7C +/* 0F9670 7F0C4B40 AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4B44: +/* 0F9674 7F0C4B44 000878C0 */ sll $t7, $t0, 3 +/* 0F9678 7F0C4B48 01E87823 */ subu $t7, $t7, $t0 +/* 0F967C 7F0C4B4C 000F7900 */ sll $t7, $t7, 4 +/* 0F9680 7F0C4B50 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x69) +/* 0F9684 7F0C4B54 01AF6821 */ addu $t5, $t5, $t7 +/* 0F9688 7F0C4B58 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x69) +/* 0F968C 7F0C4B5C 916BA039 */ lbu $t3, %lo(player3_player_data + 0x69)($t3) +/* 0F9690 7F0C4B60 91AD9F59 */ lbu $t5, %lo(player1_player_data + 0x69)($t5) +/* 0F9694 7F0C4B64 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9698 7F0C4B68 156D0003 */ bne $t3, $t5, .L7F0C4B78 +/* 0F969C 7F0C4B6C 00000000 */ nop +/* 0F96A0 7F0C4B70 10000001 */ b .L7F0C4B78 +/* 0F96A4 7F0C4B74 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4B78: +/* 0F96A8 7F0C4B78 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4B7C: +/* 0F96AC 7F0C4B7C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F96B0 7F0C4B80 8FAE0050 */ lw $t6, 0x50($sp) +/* 0F96B4 7F0C4B84 02202025 */ move $a0, $s1 +/* 0F96B8 7F0C4B88 02192821 */ addu $a1, $s0, $t9 +/* 0F96BC 7F0C4B8C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F96C0 7F0C4B90 24660056 */ addiu $a2, $v1, 0x56 +/* 0F96C4 7F0C4B94 8FA7009C */ lw $a3, 0x9c($sp) +/* 0F96C8 7F0C4B98 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F96CC 7F0C4B9C AFAE0010 */ sw $t6, 0x10($sp) +/* 0F96D0 7F0C4BA0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F96D4 7F0C4BA4 24010004 */ li $at, 4 +/* 0F96D8 7F0C4BA8 00408825 */ move $s1, $v0 +/* 0F96DC 7F0C4BAC 15410028 */ bne $t2, $at, .L7F0C4C50 +/* 0F96E0 7F0C4BB0 00000000 */ nop +/* 0F96E4 7F0C4BB4 0C001145 */ jal get_video2_settings_ulx +/* 0F96E8 7F0C4BB8 00000000 */ nop +/* 0F96EC 7F0C4BBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F96F0 7F0C4BC0 0010C403 */ sra $t8, $s0, 0x10 +/* 0F96F4 7F0C4BC4 0C001149 */ jal get_video2_settings_uly +/* 0F96F8 7F0C4BC8 03008025 */ move $s0, $t8 +/* 0F96FC 7F0C4BCC 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9700 7F0C4BD0 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9704 7F0C4BD4 00034C03 */ sra $t1, $v1, 0x10 +/* 0F9708 7F0C4BD8 24010003 */ li $at, 3 +/* 0F970C 7F0C4BDC 14810004 */ bne $a0, $at, .L7F0C4BF0 +/* 0F9710 7F0C4BE0 01201825 */ move $v1, $t1 +/* 0F9714 7F0C4BE4 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F9718 7F0C4BE8 1000000F */ b .L7F0C4C28 +/* 0F971C 7F0C4BEC AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4BF0: +/* 0F9720 7F0C4BF0 000458C0 */ sll $t3, $a0, 3 +/* 0F9724 7F0C4BF4 01645823 */ subu $t3, $t3, $a0 +/* 0F9728 7F0C4BF8 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F972C 7F0C4BFC 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F9730 7F0C4C00 000B5900 */ sll $t3, $t3, 4 +/* 0F9734 7F0C4C04 004B6821 */ addu $t5, $v0, $t3 +/* 0F9738 7F0C4C08 91B90069 */ lbu $t9, 0x69($t5) +/* 0F973C 7F0C4C0C 904F01B9 */ lbu $t7, 0x1b9($v0) +/* 0F9740 7F0C4C10 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9744 7F0C4C14 15F90003 */ bne $t7, $t9, .L7F0C4C24 +/* 0F9748 7F0C4C18 00000000 */ nop +/* 0F974C 7F0C4C1C 10000001 */ b .L7F0C4C24 +/* 0F9750 7F0C4C20 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4C24: +/* 0F9754 7F0C4C24 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4C28: +/* 0F9758 7F0C4C28 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F975C 7F0C4C2C 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F9760 7F0C4C30 02202025 */ move $a0, $s1 +/* 0F9764 7F0C4C34 020E2821 */ addu $a1, $s0, $t6 +/* 0F9768 7F0C4C38 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F976C 7F0C4C3C 24660056 */ addiu $a2, $v1, 0x56 +/* 0F9770 7F0C4C40 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0F9774 7F0C4C44 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9778 7F0C4C48 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F977C 7F0C4C4C 00408825 */ move $s1, $v0 +.L7F0C4C50: +/* 0F9780 7F0C4C50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9784 7F0C4C54 100003BB */ b .L7F0C5B44 +/* 0F9788 7F0C4C58 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F978C 7F0C4C5C 24010002 */ li $at, 2 +.L7F0C4C60: +/* 0F9790 7F0C4C60 1441011C */ bne $v0, $at, .L7F0C50D4 +/* 0F9794 7F0C4C64 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9798 7F0C4C68 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F979C 7F0C4C6C 2C980001 */ sltiu $t8, $a0, 1 +/* 0F97A0 7F0C4C70 13000005 */ beqz $t8, .L7F0C4C88 +/* 0F97A4 7F0C4C74 03002025 */ move $a0, $t8 +/* 0F97A8 7F0C4C78 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F97AC 7F0C4C7C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F97B0 7F0C4C80 2C890001 */ sltiu $t1, $a0, 1 +/* 0F97B4 7F0C4C84 01202025 */ move $a0, $t1 +.L7F0C4C88: +/* 0F97B8 7F0C4C88 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F97BC 7F0C4C8C 00000000 */ nop +/* 0F97C0 7F0C4C90 10400034 */ beqz $v0, .L7F0C4D64 +/* 0F97C4 7F0C4C94 27A400AC */ addiu $a0, $sp, 0xac +/* 0F97C8 7F0C4C98 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F97CC 7F0C4C9C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F97D0 7F0C4CA0 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F97D4 7F0C4CA4 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F97D8 7F0C4CA8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F97DC 7F0C4CAC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F97E0 7F0C4CB0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F97E4 7F0C4CB4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F97E8 7F0C4CB8 27A600AC */ addiu $a2, $sp, 0xac +/* 0F97EC 7F0C4CBC AFA00014 */ sw $zero, 0x14($sp) +/* 0F97F0 7F0C4CC0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F97F4 7F0C4CC4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F97F8 7F0C4CC8 0C001145 */ jal get_video2_settings_ulx +/* 0F97FC 7F0C4CCC 00000000 */ nop +/* 0F9800 7F0C4CD0 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9804 7F0C4CD4 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9808 7F0C4CD8 004B6821 */ addu $t5, $v0, $t3 +/* 0F980C 7F0C4CDC 000FC843 */ sra $t9, $t7, 1 +/* 0F9810 7F0C4CE0 01B92023 */ subu $a0, $t5, $t9 +/* 0F9814 7F0C4CE4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9818 7F0C4CE8 0C001149 */ jal get_video2_settings_uly +/* 0F981C 7F0C4CEC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9820 7F0C4CF0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F9824 7F0C4CF4 000E5043 */ sra $t2, $t6, 1 +/* 0F9828 7F0C4CF8 004AC023 */ subu $t8, $v0, $t2 +/* 0F982C 7F0C4CFC 27090025 */ addiu $t1, $t8, 0x25 +/* 0F9830 7F0C4D00 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9834 7F0C4D04 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0F9838 7F0C4D08 00028400 */ sll $s0, $v0, 0x10 +/* 0F983C 7F0C4D0C 00106403 */ sra $t4, $s0, 0x10 +/* 0F9840 7F0C4D10 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9844 7F0C4D14 01808025 */ move $s0, $t4 +/* 0F9848 7F0C4D18 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F984C 7F0C4D1C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9850 7F0C4D20 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9854 7F0C4D24 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F9858 7F0C4D28 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F985C 7F0C4D2C 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F9860 7F0C4D30 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F9864 7F0C4D34 02202025 */ move $a0, $s1 +/* 0F9868 7F0C4D38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F986C 7F0C4D3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9870 7F0C4D40 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9874 7F0C4D44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9878 7F0C4D48 AFA20020 */ sw $v0, 0x20($sp) +/* 0F987C 7F0C4D4C AFA00024 */ sw $zero, 0x24($sp) +/* 0F9880 7F0C4D50 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9884 7F0C4D54 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9888 7F0C4D58 0FC2B6AF */ jal en_text_write_stuff +/* 0F988C 7F0C4D5C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F9890 7F0C4D60 00408825 */ move $s1, $v0 +.L7F0C4D64: +/* 0F9894 7F0C4D64 0FC30776 */ jal get_textptr_for_textID +/* 0F9898 7F0C4D68 3404A01C */ li $a0, 40988 +/* 0F989C 7F0C4D6C 3404A01D */ li $a0, 40989 +/* 0F98A0 7F0C4D70 0FC30776 */ jal get_textptr_for_textID +/* 0F98A4 7F0C4D74 AFA2004C */ sw $v0, 0x4c($sp) +/* 0F98A8 7F0C4D78 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F98AC 7F0C4D7C 3C058006 */ lui $a1, %hi(ascii_pnum_KILLS) +/* 0F98B0 7F0C4D80 24A5BC30 */ addiu $a1, %lo(ascii_pnum_KILLS) # addiu $a1, $a1, -0x43d0 +/* 0F98B4 7F0C4D84 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F98B8 7F0C4D88 27A400AC */ addiu $a0, $sp, 0xac +/* 0F98BC 7F0C4D8C AFA20010 */ sw $v0, 0x10($sp) +/* 0F98C0 7F0C4D90 0C002B25 */ jal sprintf +/* 0F98C4 7F0C4D94 24E70001 */ addiu $a3, $a3, 1 +/* 0F98C8 7F0C4D98 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F98CC 7F0C4D9C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F98D0 7F0C4DA0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F98D4 7F0C4DA4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F98D8 7F0C4DA8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F98DC 7F0C4DAC 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F98E0 7F0C4DB0 27A600AC */ addiu $a2, $sp, 0xac +/* 0F98E4 7F0C4DB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0F98E8 7F0C4DB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F98EC 7F0C4DBC AFB90010 */ sw $t9, 0x10($sp) +/* 0F98F0 7F0C4DC0 0C001145 */ jal get_video2_settings_ulx +/* 0F98F4 7F0C4DC4 00000000 */ nop +/* 0F98F8 7F0C4DC8 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F98FC 7F0C4DCC 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9900 7F0C4DD0 004E5021 */ addu $t2, $v0, $t6 +/* 0F9904 7F0C4DD4 00184843 */ sra $t1, $t8, 1 +/* 0F9908 7F0C4DD8 01492023 */ subu $a0, $t2, $t1 +/* 0F990C 7F0C4DDC 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9910 7F0C4DE0 0C001149 */ jal get_video2_settings_uly +/* 0F9914 7F0C4DE4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9918 7F0C4DE8 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F991C 7F0C4DEC 000C5843 */ sra $t3, $t4, 1 +/* 0F9920 7F0C4DF0 004B7823 */ subu $t7, $v0, $t3 +/* 0F9924 7F0C4DF4 25ED0035 */ addiu $t5, $t7, 0x35 +/* 0F9928 7F0C4DF8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F992C 7F0C4DFC AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9930 7F0C4E00 00028400 */ sll $s0, $v0, 0x10 +/* 0F9934 7F0C4E04 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9938 7F0C4E08 0C00110B */ jal get_video2_settings_txtClipH +/* 0F993C 7F0C4E0C 03208025 */ move $s0, $t9 +/* 0F9940 7F0C4E10 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0F9944 7F0C4E14 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9948 7F0C4E18 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F994C 7F0C4E1C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0F9950 7F0C4E20 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F9954 7F0C4E24 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F9958 7F0C4E28 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F995C 7F0C4E2C 02202025 */ move $a0, $s1 +/* 0F9960 7F0C4E30 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9964 7F0C4E34 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9968 7F0C4E38 27A700AC */ addiu $a3, $sp, 0xac +/* 0F996C 7F0C4E3C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9970 7F0C4E40 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9974 7F0C4E44 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9978 7F0C4E48 AFA00028 */ sw $zero, 0x28($sp) +/* 0F997C 7F0C4E4C AFB80014 */ sw $t8, 0x14($sp) +/* 0F9980 7F0C4E50 0FC2B6AF */ jal en_text_write_stuff +/* 0F9984 7F0C4E54 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F9988 7F0C4E58 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F998C 7F0C4E5C 00408825 */ move $s1, $v0 +/* 0F9990 7F0C4E60 24010002 */ li $at, 2 +/* 0F9994 7F0C4E64 15210033 */ bne $t1, $at, .L7F0C4F34 +/* 0F9998 7F0C4E68 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F999C 7F0C4E6C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F99A0 7F0C4E70 50400018 */ beql $v0, $zero, .L7F0C4ED4 +/* 0F99A4 7F0C4E74 24010001 */ li $at, 1 +/* 0F99A8 7F0C4E78 0C001145 */ jal get_video2_settings_ulx +/* 0F99AC 7F0C4E7C 00000000 */ nop +/* 0F99B0 7F0C4E80 00028400 */ sll $s0, $v0, 0x10 +/* 0F99B4 7F0C4E84 00106403 */ sra $t4, $s0, 0x10 +/* 0F99B8 7F0C4E88 0C001149 */ jal get_video2_settings_uly +/* 0F99BC 7F0C4E8C 01808025 */ move $s0, $t4 +/* 0F99C0 7F0C4E90 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F99C4 7F0C4E94 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F99C8 7F0C4E98 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F99CC 7F0C4E9C 000F68C0 */ sll $t5, $t7, 3 +/* 0F99D0 7F0C4EA0 01AF6823 */ subu $t5, $t5, $t7 +/* 0F99D4 7F0C4EA4 000D6900 */ sll $t5, $t5, 4 +/* 0F99D8 7F0C4EA8 00ED3821 */ addu $a3, $a3, $t5 +/* 0F99DC 7F0C4EAC 020B2821 */ addu $a1, $s0, $t3 +/* 0F99E0 7F0C4EB0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F99E4 7F0C4EB4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F99E8 7F0C4EB8 02202025 */ move $a0, $s1 +/* 0F99EC 7F0C4EBC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F99F0 7F0C4EC0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F99F4 7F0C4EC4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F99F8 7F0C4EC8 00408825 */ move $s1, $v0 +/* 0F99FC 7F0C4ECC 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9A00 7F0C4ED0 24010001 */ li $at, 1 +.L7F0C4ED4: +/* 0F9A04 7F0C4ED4 1041007C */ beq $v0, $at, .L7F0C50C8 +/* 0F9A08 7F0C4ED8 0002C8C0 */ sll $t9, $v0, 3 +/* 0F9A0C 7F0C4EDC 0322C823 */ subu $t9, $t9, $v0 +/* 0F9A10 7F0C4EE0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F9A14 7F0C4EE4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F9A18 7F0C4EE8 0019C900 */ sll $t9, $t9, 4 +/* 0F9A1C 7F0C4EEC 032EC021 */ addu $t8, $t9, $t6 +/* 0F9A20 7F0C4EF0 0C001145 */ jal get_video2_settings_ulx +/* 0F9A24 7F0C4EF4 AFB80044 */ sw $t8, 0x44($sp) +/* 0F9A28 7F0C4EF8 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A2C 7F0C4EFC 00105403 */ sra $t2, $s0, 0x10 +/* 0F9A30 7F0C4F00 0C001149 */ jal get_video2_settings_uly +/* 0F9A34 7F0C4F04 01408025 */ move $s0, $t2 +/* 0F9A38 7F0C4F08 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9A3C 7F0C4F0C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0F9A40 7F0C4F10 02202025 */ move $a0, $s1 +/* 0F9A44 7F0C4F14 02092821 */ addu $a1, $s0, $t1 +/* 0F9A48 7F0C4F18 8D870028 */ lw $a3, 0x28($t4) +/* 0F9A4C 7F0C4F1C AFA00010 */ sw $zero, 0x10($sp) +/* 0F9A50 7F0C4F20 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9A54 7F0C4F24 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9A58 7F0C4F28 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9A5C 7F0C4F2C 10000066 */ b .L7F0C50C8 +/* 0F9A60 7F0C4F30 00408825 */ move $s1, $v0 +.L7F0C4F34: +/* 0F9A64 7F0C4F34 50400018 */ beql $v0, $zero, .L7F0C4F98 +/* 0F9A68 7F0C4F38 24010001 */ li $at, 1 +/* 0F9A6C 7F0C4F3C 0C001145 */ jal get_video2_settings_ulx +/* 0F9A70 7F0C4F40 00000000 */ nop +/* 0F9A74 7F0C4F44 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A78 7F0C4F48 00105C03 */ sra $t3, $s0, 0x10 +/* 0F9A7C 7F0C4F4C 0C001149 */ jal get_video2_settings_uly +/* 0F9A80 7F0C4F50 01608025 */ move $s0, $t3 +/* 0F9A84 7F0C4F54 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0F9A88 7F0C4F58 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F9A8C 7F0C4F5C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9A90 7F0C4F60 000DC8C0 */ sll $t9, $t5, 3 +/* 0F9A94 7F0C4F64 032DC823 */ subu $t9, $t9, $t5 +/* 0F9A98 7F0C4F68 0019C900 */ sll $t9, $t9, 4 +/* 0F9A9C 7F0C4F6C 00F93821 */ addu $a3, $a3, $t9 +/* 0F9AA0 7F0C4F70 020F2821 */ addu $a1, $s0, $t7 +/* 0F9AA4 7F0C4F74 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9AA8 7F0C4F78 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9AAC 7F0C4F7C 02202025 */ move $a0, $s1 +/* 0F9AB0 7F0C4F80 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9AB4 7F0C4F84 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9AB8 7F0C4F88 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9ABC 7F0C4F8C 00408825 */ move $s1, $v0 +/* 0F9AC0 7F0C4F90 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9AC4 7F0C4F94 24010001 */ li $at, 1 +.L7F0C4F98: +/* 0F9AC8 7F0C4F98 10410017 */ beq $v0, $at, .L7F0C4FF8 +/* 0F9ACC 7F0C4F9C 000270C0 */ sll $t6, $v0, 3 +/* 0F9AD0 7F0C4FA0 01C27023 */ subu $t6, $t6, $v0 +/* 0F9AD4 7F0C4FA4 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0F9AD8 7F0C4FA8 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0F9ADC 7F0C4FAC 000E7100 */ sll $t6, $t6, 4 +/* 0F9AE0 7F0C4FB0 01D85021 */ addu $t2, $t6, $t8 +/* 0F9AE4 7F0C4FB4 0C001145 */ jal get_video2_settings_ulx +/* 0F9AE8 7F0C4FB8 AFAA0044 */ sw $t2, 0x44($sp) +/* 0F9AEC 7F0C4FBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9AF0 7F0C4FC0 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9AF4 7F0C4FC4 0C001149 */ jal get_video2_settings_uly +/* 0F9AF8 7F0C4FC8 01208025 */ move $s0, $t1 +/* 0F9AFC 7F0C4FCC 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9B00 7F0C4FD0 8FAB0044 */ lw $t3, 0x44($sp) +/* 0F9B04 7F0C4FD4 02202025 */ move $a0, $s1 +/* 0F9B08 7F0C4FD8 020C2821 */ addu $a1, $s0, $t4 +/* 0F9B0C 7F0C4FDC 8D670028 */ lw $a3, 0x28($t3) +/* 0F9B10 7F0C4FE0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B14 7F0C4FE4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9B18 7F0C4FE8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B1C 7F0C4FEC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9B20 7F0C4FF0 00408825 */ move $s1, $v0 +/* 0F9B24 7F0C4FF4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C4FF8: +/* 0F9B28 7F0C4FF8 24010002 */ li $at, 2 +/* 0F9B2C 7F0C4FFC 10410017 */ beq $v0, $at, .L7F0C505C +/* 0F9B30 7F0C5000 000278C0 */ sll $t7, $v0, 3 +/* 0F9B34 7F0C5004 01E27823 */ subu $t7, $t7, $v0 +/* 0F9B38 7F0C5008 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0F9B3C 7F0C500C 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0F9B40 7F0C5010 000F7900 */ sll $t7, $t7, 4 +/* 0F9B44 7F0C5014 01EDC821 */ addu $t9, $t7, $t5 +/* 0F9B48 7F0C5018 0C001145 */ jal get_video2_settings_ulx +/* 0F9B4C 7F0C501C AFB90044 */ sw $t9, 0x44($sp) +/* 0F9B50 7F0C5020 00028400 */ sll $s0, $v0, 0x10 +/* 0F9B54 7F0C5024 00107403 */ sra $t6, $s0, 0x10 +/* 0F9B58 7F0C5028 0C001149 */ jal get_video2_settings_uly +/* 0F9B5C 7F0C502C 01C08025 */ move $s0, $t6 +/* 0F9B60 7F0C5030 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9B64 7F0C5034 8FAA0044 */ lw $t2, 0x44($sp) +/* 0F9B68 7F0C5038 02202025 */ move $a0, $s1 +/* 0F9B6C 7F0C503C 02182821 */ addu $a1, $s0, $t8 +/* 0F9B70 7F0C5040 8D47002C */ lw $a3, 0x2c($t2) +/* 0F9B74 7F0C5044 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B78 7F0C5048 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9B7C 7F0C504C 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B80 7F0C5050 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9B84 7F0C5054 00408825 */ move $s1, $v0 +/* 0F9B88 7F0C5058 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C505C: +/* 0F9B8C 7F0C505C 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F9B90 7F0C5060 24010004 */ li $at, 4 +/* 0F9B94 7F0C5064 15210018 */ bne $t1, $at, .L7F0C50C8 +/* 0F9B98 7F0C5068 24010003 */ li $at, 3 +/* 0F9B9C 7F0C506C 10410016 */ beq $v0, $at, .L7F0C50C8 +/* 0F9BA0 7F0C5070 000260C0 */ sll $t4, $v0, 3 +/* 0F9BA4 7F0C5074 01826023 */ subu $t4, $t4, $v0 +/* 0F9BA8 7F0C5078 3C0B8008 */ lui $t3, %hi(player1_player_data) +/* 0F9BAC 7F0C507C 256B9EF0 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x6110 +/* 0F9BB0 7F0C5080 000C6100 */ sll $t4, $t4, 4 +/* 0F9BB4 7F0C5084 018B7821 */ addu $t7, $t4, $t3 +/* 0F9BB8 7F0C5088 0C001145 */ jal get_video2_settings_ulx +/* 0F9BBC 7F0C508C AFAF0044 */ sw $t7, 0x44($sp) +/* 0F9BC0 7F0C5090 00028400 */ sll $s0, $v0, 0x10 +/* 0F9BC4 7F0C5094 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9BC8 7F0C5098 0C001149 */ jal get_video2_settings_uly +/* 0F9BCC 7F0C509C 01A08025 */ move $s0, $t5 +/* 0F9BD0 7F0C50A0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9BD4 7F0C50A4 8FAE0044 */ lw $t6, 0x44($sp) +/* 0F9BD8 7F0C50A8 02202025 */ move $a0, $s1 +/* 0F9BDC 7F0C50AC 02192821 */ addu $a1, $s0, $t9 +/* 0F9BE0 7F0C50B0 8DC70030 */ lw $a3, 0x30($t6) +/* 0F9BE4 7F0C50B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9BE8 7F0C50B8 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9BEC 7F0C50BC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9BF0 7F0C50C0 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9BF4 7F0C50C4 00408825 */ move $s1, $v0 +.L7F0C50C8: +/* 0F9BF8 7F0C50C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9BFC 7F0C50CC 1000029D */ b .L7F0C5B44 +/* 0F9C00 7F0C50D0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C50D4: +/* 0F9C04 7F0C50D4 24010001 */ li $at, 1 +/* 0F9C08 7F0C50D8 144101A9 */ bne $v0, $at, .L7F0C5780 +/* 0F9C0C 7F0C50DC 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9C10 7F0C50E0 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9C14 7F0C50E4 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9C18 7F0C50E8 13000005 */ beqz $t8, .L7F0C5100 +/* 0F9C1C 7F0C50EC 03002025 */ move $a0, $t8 +/* 0F9C20 7F0C50F0 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F9C24 7F0C50F4 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9C28 7F0C50F8 2C8A0001 */ sltiu $t2, $a0, 1 +/* 0F9C2C 7F0C50FC 01402025 */ move $a0, $t2 +.L7F0C5100: +/* 0F9C30 7F0C5100 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F9C34 7F0C5104 00000000 */ nop +/* 0F9C38 7F0C5108 10400034 */ beqz $v0, .L7F0C51DC +/* 0F9C3C 7F0C510C 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9C40 7F0C5110 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F9C44 7F0C5114 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9C48 7F0C5118 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0F9C4C 7F0C511C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0F9C50 7F0C5120 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9C54 7F0C5124 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9C58 7F0C5128 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9C5C 7F0C512C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9C60 7F0C5130 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9C64 7F0C5134 AFA00014 */ sw $zero, 0x14($sp) +/* 0F9C68 7F0C5138 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9C6C 7F0C513C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9C70 7F0C5140 0C001145 */ jal get_video2_settings_ulx +/* 0F9C74 7F0C5144 00000000 */ nop +/* 0F9C78 7F0C5148 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9C7C 7F0C514C 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9C80 7F0C5150 004C5821 */ addu $t3, $v0, $t4 +/* 0F9C84 7F0C5154 000F6843 */ sra $t5, $t7, 1 +/* 0F9C88 7F0C5158 016D2023 */ subu $a0, $t3, $t5 +/* 0F9C8C 7F0C515C 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9C90 7F0C5160 0C001149 */ jal get_video2_settings_uly +/* 0F9C94 7F0C5164 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9C98 7F0C5168 8FB900BC */ lw $t9, 0xbc($sp) +/* 0F9C9C 7F0C516C 00197043 */ sra $t6, $t9, 1 +/* 0F9CA0 7F0C5170 004EC023 */ subu $t8, $v0, $t6 +/* 0F9CA4 7F0C5174 270A0025 */ addiu $t2, $t8, 0x25 +/* 0F9CA8 7F0C5178 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CAC 7F0C517C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0F9CB0 7F0C5180 00028400 */ sll $s0, $v0, 0x10 +/* 0F9CB4 7F0C5184 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9CB8 7F0C5188 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CBC 7F0C518C 01208025 */ move $s0, $t1 +/* 0F9CC0 7F0C5190 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) +/* 0F9CC4 7F0C5194 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9CC8 7F0C5198 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9CCC 7F0C519C 8D8C0EB0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9CD0 7F0C51A0 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F9CD4 7F0C51A4 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F9CD8 7F0C51A8 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F9CDC 7F0C51AC 02202025 */ move $a0, $s1 +/* 0F9CE0 7F0C51B0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9CE4 7F0C51B4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9CE8 7F0C51B8 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9CEC 7F0C51BC AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9CF0 7F0C51C0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9CF4 7F0C51C4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9CF8 7F0C51C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9CFC 7F0C51CC AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9D00 7F0C51D0 0FC2B6AF */ jal en_text_write_stuff +/* 0F9D04 7F0C51D4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9D08 7F0C51D8 00408825 */ move $s1, $v0 +.L7F0C51DC: +/* 0F9D0C 7F0C51DC 0FC30776 */ jal get_textptr_for_textID +/* 0F9D10 7F0C51E0 3404A01C */ li $a0, 40988 +/* 0F9D14 7F0C51E4 3404A01E */ li $a0, 40990 +/* 0F9D18 7F0C51E8 0FC30776 */ jal get_textptr_for_textID +/* 0F9D1C 7F0C51EC AFA2004C */ sw $v0, 0x4c($sp) +/* 0F9D20 7F0C51F0 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F9D24 7F0C51F4 3C058006 */ lui $a1, %hi(ascii_pnum_LOSSES) +/* 0F9D28 7F0C51F8 24A5BC38 */ addiu $a1, %lo(ascii_pnum_LOSSES) # addiu $a1, $a1, -0x43c8 +/* 0F9D2C 7F0C51FC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F9D30 7F0C5200 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9D34 7F0C5204 AFA20010 */ sw $v0, 0x10($sp) +/* 0F9D38 7F0C5208 0C002B25 */ jal sprintf +/* 0F9D3C 7F0C520C 24E70001 */ addiu $a3, $a3, 1 +/* 0F9D40 7F0C5210 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0F9D44 7F0C5214 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0F9D48 7F0C5218 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9D4C 7F0C521C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9D50 7F0C5220 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9D54 7F0C5224 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9D58 7F0C5228 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9D5C 7F0C522C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9D60 7F0C5230 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9D64 7F0C5234 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9D68 7F0C5238 0C001145 */ jal get_video2_settings_ulx +/* 0F9D6C 7F0C523C 00000000 */ nop +/* 0F9D70 7F0C5240 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9D74 7F0C5244 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9D78 7F0C5248 00597021 */ addu $t6, $v0, $t9 +/* 0F9D7C 7F0C524C 00185043 */ sra $t2, $t8, 1 +/* 0F9D80 7F0C5250 01CA2023 */ subu $a0, $t6, $t2 +/* 0F9D84 7F0C5254 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9D88 7F0C5258 0C001149 */ jal get_video2_settings_uly +/* 0F9D8C 7F0C525C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9D90 7F0C5260 8FA900BC */ lw $t1, 0xbc($sp) +/* 0F9D94 7F0C5264 00096043 */ sra $t4, $t1, 1 +/* 0F9D98 7F0C5268 004C7823 */ subu $t7, $v0, $t4 +/* 0F9D9C 7F0C526C 25EB0035 */ addiu $t3, $t7, 0x35 +/* 0F9DA0 7F0C5270 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9DA4 7F0C5274 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0F9DA8 7F0C5278 00028400 */ sll $s0, $v0, 0x10 +/* 0F9DAC 7F0C527C 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9DB0 7F0C5280 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9DB4 7F0C5284 01A08025 */ move $s0, $t5 +/* 0F9DB8 7F0C5288 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F9DBC 7F0C528C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9DC0 7F0C5290 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F9DC4 7F0C5294 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9DC8 7F0C5298 3C0EFF40 */ lui $t6, (0xFF4040B0 >> 16) # lui $t6, 0xff40 +/* 0F9DCC 7F0C529C 35CE40B0 */ ori $t6, (0xFF4040B0 & 0xFFFF) # ori $t6, $t6, 0x40b0 +/* 0F9DD0 7F0C52A0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0F9DD4 7F0C52A4 02202025 */ move $a0, $s1 +/* 0F9DD8 7F0C52A8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9DDC 7F0C52AC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9DE0 7F0C52B0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9DE4 7F0C52B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9DE8 7F0C52B8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9DEC 7F0C52BC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9DF0 7F0C52C0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9DF4 7F0C52C4 AFB80014 */ sw $t8, 0x14($sp) +/* 0F9DF8 7F0C52C8 0FC2B6AF */ jal en_text_write_stuff +/* 0F9DFC 7F0C52CC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9E00 7F0C52D0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F9E04 7F0C52D4 24010002 */ li $at, 2 +/* 0F9E08 7F0C52D8 00408825 */ move $s1, $v0 +/* 0F9E0C 7F0C52DC 15410062 */ bne $t2, $at, .L7F0C5468 +/* 0F9E10 7F0C52E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0F9E14 7F0C52E4 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9E18 7F0C52E8 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x24) +/* 0F9E1C 7F0C52EC 10400016 */ beqz $v0, .L7F0C5348 +/* 0F9E20 7F0C52F0 00000000 */ nop +/* 0F9E24 7F0C52F4 0C001145 */ jal get_video2_settings_ulx +/* 0F9E28 7F0C52F8 00000000 */ nop +/* 0F9E2C 7F0C52FC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E30 7F0C5300 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9E34 7F0C5304 0C001149 */ jal get_video2_settings_uly +/* 0F9E38 7F0C5308 01208025 */ move $s0, $t1 +/* 0F9E3C 7F0C530C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F9E40 7F0C5310 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9E44 7F0C5314 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9E48 7F0C5318 000F5880 */ sll $t3, $t7, 2 +/* 0F9E4C 7F0C531C 00EB3821 */ addu $a3, $a3, $t3 +/* 0F9E50 7F0C5320 020C2821 */ addu $a1, $s0, $t4 +/* 0F9E54 7F0C5324 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9E58 7F0C5328 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9E5C 7F0C532C 02202025 */ move $a0, $s1 +/* 0F9E60 7F0C5330 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9E64 7F0C5334 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9E68 7F0C5338 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9E6C 7F0C533C 00408825 */ move $s1, $v0 +/* 0F9E70 7F0C5340 10000019 */ b .L7F0C53A8 +/* 0F9E74 7F0C5344 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C5348: +/* 0F9E78 7F0C5348 8DAD9F14 */ lw $t5, %lo(player1_player_data + 0x24)($t5) +/* 0F9E7C 7F0C534C 59A00017 */ blezl $t5, .L7F0C53AC +/* 0F9E80 7F0C5350 24010001 */ li $at, 1 +/* 0F9E84 7F0C5354 0C001145 */ jal get_video2_settings_ulx +/* 0F9E88 7F0C5358 00000000 */ nop +/* 0F9E8C 7F0C535C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E90 7F0C5360 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9E94 7F0C5364 0C001149 */ jal get_video2_settings_uly +/* 0F9E98 7F0C5368 03208025 */ move $s0, $t9 +/* 0F9E9C 7F0C536C 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0F9EA0 7F0C5370 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9EA4 7F0C5374 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9EA8 7F0C5378 000E5080 */ sll $t2, $t6, 2 +/* 0F9EAC 7F0C537C 00EA3821 */ addu $a3, $a3, $t2 +/* 0F9EB0 7F0C5380 24090003 */ li $t1, 3 +/* 0F9EB4 7F0C5384 02182821 */ addu $a1, $s0, $t8 +/* 0F9EB8 7F0C5388 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9EBC 7F0C538C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9EC0 7F0C5390 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9EC4 7F0C5394 02202025 */ move $a0, $s1 +/* 0F9EC8 7F0C5398 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9ECC 7F0C539C 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9ED0 7F0C53A0 00408825 */ move $s1, $v0 +/* 0F9ED4 7F0C53A4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C53A8: +/* 0F9ED8 7F0C53A8 24010001 */ li $at, 1 +.L7F0C53AC: +/* 0F9EDC 7F0C53AC 10410016 */ beq $v0, $at, .L7F0C5408 +/* 0F9EE0 7F0C53B0 3C0E8008 */ lui $t6, %hi(player2_player_data + 0x28) +/* 0F9EE4 7F0C53B4 3C0F8008 */ lui $t7, %hi(player1_player_data) +/* 0F9EE8 7F0C53B8 25EF9EF0 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x6110 +/* 0F9EEC 7F0C53BC 00026080 */ sll $t4, $v0, 2 +/* 0F9EF0 7F0C53C0 018F5821 */ addu $t3, $t4, $t7 +/* 0F9EF4 7F0C53C4 0C001145 */ jal get_video2_settings_ulx +/* 0F9EF8 7F0C53C8 AFAB0044 */ sw $t3, 0x44($sp) +/* 0F9EFC 7F0C53CC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F00 7F0C53D0 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9F04 7F0C53D4 0C001149 */ jal get_video2_settings_uly +/* 0F9F08 7F0C53D8 01A08025 */ move $s0, $t5 +/* 0F9F0C 7F0C53DC 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9F10 7F0C53E0 8FB80044 */ lw $t8, 0x44($sp) +/* 0F9F14 7F0C53E4 02202025 */ move $a0, $s1 +/* 0F9F18 7F0C53E8 02192821 */ addu $a1, $s0, $t9 +/* 0F9F1C 7F0C53EC 8F070094 */ lw $a3, 0x94($t8) +/* 0F9F20 7F0C53F0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9F24 7F0C53F4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F28 7F0C53F8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F2C 7F0C53FC 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F30 7F0C5400 100000DC */ b .L7F0C5774 +/* 0F9F34 7F0C5404 00408825 */ move $s1, $v0 +.L7F0C5408: +/* 0F9F38 7F0C5408 8DCE9F88 */ lw $t6, %lo(player2_player_data + 0x28)($t6) +/* 0F9F3C 7F0C540C 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0F9F40 7F0C5410 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0F9F44 7F0C5414 19C000D7 */ blez $t6, .L7F0C5774 +/* 0F9F48 7F0C5418 00025080 */ sll $t2, $v0, 2 +/* 0F9F4C 7F0C541C 01496021 */ addu $t4, $t2, $t1 +/* 0F9F50 7F0C5420 0C001145 */ jal get_video2_settings_ulx +/* 0F9F54 7F0C5424 AFAC0044 */ sw $t4, 0x44($sp) +/* 0F9F58 7F0C5428 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F5C 7F0C542C 00107C03 */ sra $t7, $s0, 0x10 +/* 0F9F60 7F0C5430 0C001149 */ jal get_video2_settings_uly +/* 0F9F64 7F0C5434 01E08025 */ move $s0, $t7 +/* 0F9F68 7F0C5438 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9F6C 7F0C543C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0F9F70 7F0C5440 24190003 */ li $t9, 3 +/* 0F9F74 7F0C5444 020B2821 */ addu $a1, $s0, $t3 +/* 0F9F78 7F0C5448 8DA70094 */ lw $a3, 0x94($t5) +/* 0F9F7C 7F0C544C AFB90010 */ sw $t9, 0x10($sp) +/* 0F9F80 7F0C5450 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F84 7F0C5454 02202025 */ move $a0, $s1 +/* 0F9F88 7F0C5458 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F8C 7F0C545C 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F90 7F0C5460 100000C4 */ b .L7F0C5774 +/* 0F9F94 7F0C5464 00408825 */ move $s1, $v0 +.L7F0C5468: +/* 0F9F98 7F0C5468 13000015 */ beqz $t8, .L7F0C54C0 +/* 0F9F9C 7F0C546C 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x24) +/* 0F9FA0 7F0C5470 0C001145 */ jal get_video2_settings_ulx +/* 0F9FA4 7F0C5474 00000000 */ nop +/* 0F9FA8 7F0C5478 00028400 */ sll $s0, $v0, 0x10 +/* 0F9FAC 7F0C547C 00107403 */ sra $t6, $s0, 0x10 +/* 0F9FB0 7F0C5480 0C001149 */ jal get_video2_settings_uly +/* 0F9FB4 7F0C5484 01C08025 */ move $s0, $t6 +/* 0F9FB8 7F0C5488 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9FBC 7F0C548C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9FC0 7F0C5490 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9FC4 7F0C5494 00096080 */ sll $t4, $t1, 2 +/* 0F9FC8 7F0C5498 00EC3821 */ addu $a3, $a3, $t4 +/* 0F9FCC 7F0C549C 020A2821 */ addu $a1, $s0, $t2 +/* 0F9FD0 7F0C54A0 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9FD4 7F0C54A4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9FD8 7F0C54A8 02202025 */ move $a0, $s1 +/* 0F9FDC 7F0C54AC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9FE0 7F0C54B0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9FE4 7F0C54B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9FE8 7F0C54B8 10000018 */ b .L7F0C551C +/* 0F9FEC 7F0C54BC 00408825 */ move $s1, $v0 +.L7F0C54C0: +/* 0F9FF0 7F0C54C0 8DEF9F14 */ lw $t7, %lo(player1_player_data + 0x24)($t7) +/* 0F9FF4 7F0C54C4 59E00016 */ blezl $t7, .L7F0C5520 +/* 0F9FF8 7F0C54C8 8FAA00D4 */ lw $t2, 0xd4($sp) +/* 0F9FFC 7F0C54CC 0C001145 */ jal get_video2_settings_ulx +/* 0FA000 7F0C54D0 00000000 */ nop +/* 0FA004 7F0C54D4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA008 7F0C54D8 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA00C 7F0C54DC 0C001149 */ jal get_video2_settings_uly +/* 0FA010 7F0C54E0 01608025 */ move $s0, $t3 +/* 0FA014 7F0C54E4 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA018 7F0C54E8 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA01C 7F0C54EC 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA020 7F0C54F0 0019C080 */ sll $t8, $t9, 2 +/* 0FA024 7F0C54F4 00F83821 */ addu $a3, $a3, $t8 +/* 0FA028 7F0C54F8 240E0003 */ li $t6, 3 +/* 0FA02C 7F0C54FC 020D2821 */ addu $a1, $s0, $t5 +/* 0FA030 7F0C5500 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA034 7F0C5504 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA038 7F0C5508 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA03C 7F0C550C 02202025 */ move $a0, $s1 +/* 0FA040 7F0C5510 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA044 7F0C5514 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA048 7F0C5518 00408825 */ move $s1, $v0 +.L7F0C551C: +/* 0FA04C 7F0C551C 8FAA00D4 */ lw $t2, 0xd4($sp) +.L7F0C5520: +/* 0FA050 7F0C5520 24010001 */ li $at, 1 +/* 0FA054 7F0C5524 3C188008 */ lui $t8, %hi(player2_player_data + 0x28) +/* 0FA058 7F0C5528 11410015 */ beq $t2, $at, .L7F0C5580 +/* 0FA05C 7F0C552C 000A4880 */ sll $t1, $t2, 2 +/* 0FA060 7F0C5530 3C0C8008 */ lui $t4, %hi(player1_player_data) +/* 0FA064 7F0C5534 258C9EF0 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x6110 +/* 0FA068 7F0C5538 012C7821 */ addu $t7, $t1, $t4 +/* 0FA06C 7F0C553C 0C001145 */ jal get_video2_settings_ulx +/* 0FA070 7F0C5540 AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA074 7F0C5544 00028400 */ sll $s0, $v0, 0x10 +/* 0FA078 7F0C5548 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA07C 7F0C554C 0C001149 */ jal get_video2_settings_uly +/* 0FA080 7F0C5550 01608025 */ move $s0, $t3 +/* 0FA084 7F0C5554 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA088 7F0C5558 8FB90044 */ lw $t9, 0x44($sp) +/* 0FA08C 7F0C555C 02202025 */ move $a0, $s1 +/* 0FA090 7F0C5560 020D2821 */ addu $a1, $s0, $t5 +/* 0FA094 7F0C5564 8F270094 */ lw $a3, 0x94($t9) +/* 0FA098 7F0C5568 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA09C 7F0C556C 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA0A0 7F0C5570 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA0A4 7F0C5574 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA0A8 7F0C5578 10000019 */ b .L7F0C55E0 +/* 0FA0AC 7F0C557C 00408825 */ move $s1, $v0 +.L7F0C5580: +/* 0FA0B0 7F0C5580 8F189F88 */ lw $t8, %lo(player2_player_data + 0x28)($t8) +/* 0FA0B4 7F0C5584 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FA0B8 7F0C5588 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0FA0BC 7F0C558C 1B000014 */ blez $t8, .L7F0C55E0 +/* 0FA0C0 7F0C5590 000E5080 */ sll $t2, $t6, 2 +/* 0FA0C4 7F0C5594 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0FA0C8 7F0C5598 01496021 */ addu $t4, $t2, $t1 +/* 0FA0CC 7F0C559C 0C001145 */ jal get_video2_settings_ulx +/* 0FA0D0 7F0C55A0 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FA0D4 7F0C55A4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA0D8 7F0C55A8 00107C03 */ sra $t7, $s0, 0x10 +/* 0FA0DC 7F0C55AC 0C001149 */ jal get_video2_settings_uly +/* 0FA0E0 7F0C55B0 01E08025 */ move $s0, $t7 +/* 0FA0E4 7F0C55B4 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA0E8 7F0C55B8 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FA0EC 7F0C55BC 24190003 */ li $t9, 3 +/* 0FA0F0 7F0C55C0 020B2821 */ addu $a1, $s0, $t3 +/* 0FA0F4 7F0C55C4 8DA70094 */ lw $a3, 0x94($t5) +/* 0FA0F8 7F0C55C8 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA0FC 7F0C55CC 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA100 7F0C55D0 02202025 */ move $a0, $s1 +/* 0FA104 7F0C55D4 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA108 7F0C55D8 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA10C 7F0C55DC 00408825 */ move $s1, $v0 +.L7F0C55E0: +/* 0FA110 7F0C55E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FA114 7F0C55E4 24010002 */ li $at, 2 +/* 0FA118 7F0C55E8 3C0D8008 */ lui $t5, %hi(player3_player_data + 0x2C) +/* 0FA11C 7F0C55EC 13010015 */ beq $t8, $at, .L7F0C5644 +/* 0FA120 7F0C55F0 00187080 */ sll $t6, $t8, 2 +/* 0FA124 7F0C55F4 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0FA128 7F0C55F8 254A9EF0 */ addiu $t2, %lo(player1_player_data) # addiu $t2, $t2, -0x6110 +/* 0FA12C 7F0C55FC 01CA4821 */ addu $t1, $t6, $t2 +/* 0FA130 7F0C5600 0C001145 */ jal get_video2_settings_ulx +/* 0FA134 7F0C5604 AFA90044 */ sw $t1, 0x44($sp) +/* 0FA138 7F0C5608 00028400 */ sll $s0, $v0, 0x10 +/* 0FA13C 7F0C560C 00106403 */ sra $t4, $s0, 0x10 +/* 0FA140 7F0C5610 0C001149 */ jal get_video2_settings_uly +/* 0FA144 7F0C5614 01808025 */ move $s0, $t4 +/* 0FA148 7F0C5618 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA14C 7F0C561C 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FA150 7F0C5620 02202025 */ move $a0, $s1 +/* 0FA154 7F0C5624 020F2821 */ addu $a1, $s0, $t7 +/* 0FA158 7F0C5628 8D670104 */ lw $a3, 0x104($t3) +/* 0FA15C 7F0C562C AFA00010 */ sw $zero, 0x10($sp) +/* 0FA160 7F0C5630 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA164 7F0C5634 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA168 7F0C5638 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA16C 7F0C563C 10000019 */ b .L7F0C56A4 +/* 0FA170 7F0C5640 00408825 */ move $s1, $v0 +.L7F0C5644: +/* 0FA174 7F0C5644 8DAD9FFC */ lw $t5, %lo(player3_player_data + 0x2C)($t5) +/* 0FA178 7F0C5648 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA17C 7F0C564C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA180 7F0C5650 19A00014 */ blez $t5, .L7F0C56A4 +/* 0FA184 7F0C5654 0019C080 */ sll $t8, $t9, 2 +/* 0FA188 7F0C5658 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA18C 7F0C565C 030E5021 */ addu $t2, $t8, $t6 +/* 0FA190 7F0C5660 0C001145 */ jal get_video2_settings_ulx +/* 0FA194 7F0C5664 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA198 7F0C5668 00028400 */ sll $s0, $v0, 0x10 +/* 0FA19C 7F0C566C 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA1A0 7F0C5670 0C001149 */ jal get_video2_settings_uly +/* 0FA1A4 7F0C5674 01208025 */ move $s0, $t1 +/* 0FA1A8 7F0C5678 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA1AC 7F0C567C 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA1B0 7F0C5680 240B0003 */ li $t3, 3 +/* 0FA1B4 7F0C5684 020C2821 */ addu $a1, $s0, $t4 +/* 0FA1B8 7F0C5688 8DE70104 */ lw $a3, 0x104($t7) +/* 0FA1BC 7F0C568C AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA1C0 7F0C5690 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA1C4 7F0C5694 02202025 */ move $a0, $s1 +/* 0FA1C8 7F0C5698 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA1CC 7F0C569C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA1D0 7F0C56A0 00408825 */ move $s1, $v0 +.L7F0C56A4: +/* 0FA1D4 7F0C56A4 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA1D8 7F0C56A8 24010004 */ li $at, 4 +/* 0FA1DC 7F0C56AC 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA1E0 7F0C56B0 15A10030 */ bne $t5, $at, .L7F0C5774 +/* 0FA1E4 7F0C56B4 24010003 */ li $at, 3 +/* 0FA1E8 7F0C56B8 13210016 */ beq $t9, $at, .L7F0C5714 +/* 0FA1EC 7F0C56BC 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x30) +/* 0FA1F0 7F0C56C0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA1F4 7F0C56C4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA1F8 7F0C56C8 0019C080 */ sll $t8, $t9, 2 +/* 0FA1FC 7F0C56CC 030E5021 */ addu $t2, $t8, $t6 +/* 0FA200 7F0C56D0 0C001145 */ jal get_video2_settings_ulx +/* 0FA204 7F0C56D4 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA208 7F0C56D8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA20C 7F0C56DC 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA210 7F0C56E0 0C001149 */ jal get_video2_settings_uly +/* 0FA214 7F0C56E4 01208025 */ move $s0, $t1 +/* 0FA218 7F0C56E8 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA21C 7F0C56EC 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA220 7F0C56F0 02202025 */ move $a0, $s1 +/* 0FA224 7F0C56F4 020C2821 */ addu $a1, $s0, $t4 +/* 0FA228 7F0C56F8 8DE70174 */ lw $a3, 0x174($t7) +/* 0FA22C 7F0C56FC AFA00010 */ sw $zero, 0x10($sp) +/* 0FA230 7F0C5700 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA234 7F0C5704 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA238 7F0C5708 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA23C 7F0C570C 10000019 */ b .L7F0C5774 +/* 0FA240 7F0C5710 00408825 */ move $s1, $v0 +.L7F0C5714: +/* 0FA244 7F0C5714 8D6BA070 */ lw $t3, %lo(player4_player_data+0x30)($t3) +/* 0FA248 7F0C5718 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0FA24C 7F0C571C 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0FA250 7F0C5720 19600014 */ blez $t3, .L7F0C5774 +/* 0FA254 7F0C5724 000DC880 */ sll $t9, $t5, 2 +/* 0FA258 7F0C5728 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0FA25C 7F0C572C 03387021 */ addu $t6, $t9, $t8 +/* 0FA260 7F0C5730 0C001145 */ jal get_video2_settings_ulx +/* 0FA264 7F0C5734 AFAE0044 */ sw $t6, 0x44($sp) +/* 0FA268 7F0C5738 00028400 */ sll $s0, $v0, 0x10 +/* 0FA26C 7F0C573C 00105403 */ sra $t2, $s0, 0x10 +/* 0FA270 7F0C5740 0C001149 */ jal get_video2_settings_uly +/* 0FA274 7F0C5744 01408025 */ move $s0, $t2 +/* 0FA278 7F0C5748 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0FA27C 7F0C574C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA280 7F0C5750 240F0003 */ li $t7, 3 +/* 0FA284 7F0C5754 02092821 */ addu $a1, $s0, $t1 +/* 0FA288 7F0C5758 8D870174 */ lw $a3, 0x174($t4) +/* 0FA28C 7F0C575C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA290 7F0C5760 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA294 7F0C5764 02202025 */ move $a0, $s1 +/* 0FA298 7F0C5768 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA29C 7F0C576C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA2A0 7F0C5770 00408825 */ move $s1, $v0 +.L7F0C5774: +/* 0FA2A4 7F0C5774 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA2A8 7F0C5778 100000F2 */ b .L7F0C5B44 +/* 0FA2AC 7F0C577C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C5780: +/* 0FA2B0 7F0C5780 544000F1 */ bnezl $v0, .L7F0C5B48 +/* 0FA2B4 7F0C5784 8C6F29C8 */ lw $t7, 0x29c8($v1) +/* 0FA2B8 7F0C5788 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA2BC 7F0C578C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA2C0 7F0C5790 29A10003 */ slti $at, $t5, 3 +/* 0FA2C4 7F0C5794 1420000A */ bnez $at, .L7F0C57C0 +/* 0FA2C8 7F0C5798 AFAB0074 */ sw $t3, 0x74($sp) +/* 0FA2CC 7F0C579C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA2D0 7F0C57A0 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0FA2D4 7F0C57A4 256EFFF9 */ addiu $t6, $t3, -7 +/* 0FA2D8 7F0C57A8 33380001 */ andi $t8, $t9, 1 +/* 0FA2DC 7F0C57AC 13000003 */ beqz $t8, .L7F0C57BC +/* 0FA2E0 7F0C57B0 25490007 */ addiu $t1, $t2, 7 +/* 0FA2E4 7F0C57B4 10000002 */ b .L7F0C57C0 +/* 0FA2E8 7F0C57B8 AFAE0074 */ sw $t6, 0x74($sp) +.L7F0C57BC: +/* 0FA2EC 7F0C57BC AFA90074 */ sw $t1, 0x74($sp) +.L7F0C57C0: +/* 0FA2F0 7F0C57C0 0FC30776 */ jal get_textptr_for_textID +/* 0FA2F4 7F0C57C4 3404A01F */ li $a0, 40991 +/* 0FA2F8 7F0C57C8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA2FC 7F0C57CC 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA300 7F0C57D0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA304 7F0C57D4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA308 7F0C57D8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA30C 7F0C57DC 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA310 7F0C57E0 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA314 7F0C57E4 00403025 */ move $a2, $v0 +/* 0FA318 7F0C57E8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA31C 7F0C57EC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA320 7F0C57F0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA324 7F0C57F4 0C001145 */ jal get_video2_settings_ulx +/* 0FA328 7F0C57F8 00000000 */ nop +/* 0FA32C 7F0C57FC 8FAF0074 */ lw $t7, 0x74($sp) +/* 0FA330 7F0C5800 8FB90078 */ lw $t9, 0x78($sp) +/* 0FA334 7F0C5804 004F6821 */ addu $t5, $v0, $t7 +/* 0FA338 7F0C5808 0019C043 */ sra $t8, $t9, 1 +/* 0FA33C 7F0C580C 01B82023 */ subu $a0, $t5, $t8 +/* 0FA340 7F0C5810 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA344 7F0C5814 0C001149 */ jal get_video2_settings_uly +/* 0FA348 7F0C5818 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA34C 7F0C581C 8FAB007C */ lw $t3, 0x7c($sp) +/* 0FA350 7F0C5820 000B7043 */ sra $t6, $t3, 1 +/* 0FA354 7F0C5824 004E5023 */ subu $t2, $v0, $t6 +/* 0FA358 7F0C5828 25490025 */ addiu $t1, $t2, 0x25 +/* 0FA35C 7F0C582C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA360 7F0C5830 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0FA364 7F0C5834 00028400 */ sll $s0, $v0, 0x10 +/* 0FA368 7F0C5838 00106403 */ sra $t4, $s0, 0x10 +/* 0FA36C 7F0C583C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA370 7F0C5840 01808025 */ move $s0, $t4 +/* 0FA374 7F0C5844 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA378 7F0C5848 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0FA37C 7F0C584C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FA380 7F0C5850 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA384 7F0C5854 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FA388 7F0C5858 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FA38C 7F0C585C AFAD0018 */ sw $t5, 0x18($sp) +/* 0FA390 7F0C5860 02202025 */ move $a0, $s1 +/* 0FA394 7F0C5864 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA398 7F0C5868 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA39C 7F0C586C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA3A0 7F0C5870 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA3A4 7F0C5874 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA3A8 7F0C5878 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA3AC 7F0C587C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA3B0 7F0C5880 AFB90014 */ sw $t9, 0x14($sp) +/* 0FA3B4 7F0C5884 0FC2B6AF */ jal en_text_write_stuff +/* 0FA3B8 7F0C5888 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA3BC 7F0C588C 00408825 */ move $s1, $v0 +/* 0FA3C0 7F0C5890 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0FA3C4 7F0C5894 0FC026D4 */ jal getplayerfavoredweapon +/* 0FA3C8 7F0C5898 00002825 */ move $a1, $zero +/* 0FA3CC 7F0C589C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA3D0 7F0C58A0 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA3D4 7F0C58A4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA3D8 7F0C58A8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA3DC 7F0C58AC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA3E0 7F0C58B0 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA3E4 7F0C58B4 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA3E8 7F0C58B8 00403025 */ move $a2, $v0 +/* 0FA3EC 7F0C58BC AFA00014 */ sw $zero, 0x14($sp) +/* 0FA3F0 7F0C58C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA3F4 7F0C58C4 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA3F8 7F0C58C8 0C001145 */ jal get_video2_settings_ulx +/* 0FA3FC 7F0C58CC 00000000 */ nop +/* 0FA400 7F0C58D0 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FA404 7F0C58D4 8FAA0078 */ lw $t2, 0x78($sp) +/* 0FA408 7F0C58D8 004B7021 */ addu $t6, $v0, $t3 +/* 0FA40C 7F0C58DC 000A4843 */ sra $t1, $t2, 1 +/* 0FA410 7F0C58E0 01C92023 */ subu $a0, $t6, $t1 +/* 0FA414 7F0C58E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA418 7F0C58E8 0C001149 */ jal get_video2_settings_uly +/* 0FA41C 7F0C58EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA420 7F0C58F0 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0FA424 7F0C58F4 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0FA428 7F0C58F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0FA42C 7F0C58FC 00036403 */ sra $t4, $v1, 0x10 +/* 0FA430 7F0C5900 11E00003 */ beqz $t7, .L7F0C5910 +/* 0FA434 7F0C5904 01801825 */ move $v1, $t4 +/* 0FA438 7F0C5908 10000002 */ b .L7F0C5914 +/* 0FA43C 7F0C590C 24040004 */ li $a0, 4 +.L7F0C5910: +/* 0FA440 7F0C5910 00002025 */ move $a0, $zero +.L7F0C5914: +/* 0FA444 7F0C5914 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA448 7F0C5918 0083C821 */ addu $t9, $a0, $v1 +/* 0FA44C 7F0C591C 000DC043 */ sra $t8, $t5, 1 +/* 0FA450 7F0C5920 03385823 */ subu $t3, $t9, $t8 +/* 0FA454 7F0C5924 256A0035 */ addiu $t2, $t3, 0x35 +/* 0FA458 7F0C5928 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA45C 7F0C592C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0FA460 7F0C5930 00028400 */ sll $s0, $v0, 0x10 +/* 0FA464 7F0C5934 00107403 */ sra $t6, $s0, 0x10 +/* 0FA468 7F0C5938 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA46C 7F0C593C 01C08025 */ move $s0, $t6 +/* 0FA470 7F0C5940 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0FA474 7F0C5944 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA478 7F0C5948 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA47C 7F0C594C 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0FA480 7F0C5950 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0FA484 7F0C5954 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0FA488 7F0C5958 AFAF0018 */ sw $t7, 0x18($sp) +/* 0FA48C 7F0C595C 02202025 */ move $a0, $s1 +/* 0FA490 7F0C5960 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA494 7F0C5964 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA498 7F0C5968 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA49C 7F0C596C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA4A0 7F0C5970 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA4A4 7F0C5974 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA4A8 7F0C5978 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA4AC 7F0C597C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA4B0 7F0C5980 0FC2B6AF */ jal en_text_write_stuff +/* 0FA4B4 7F0C5984 AFA90010 */ sw $t1, 0x10($sp) +/* 0FA4B8 7F0C5988 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA4BC 7F0C598C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA4C0 7F0C5990 00408825 */ move $s1, $v0 +/* 0FA4C4 7F0C5994 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA4C8 7F0C5998 8C682A10 */ lw $t0, 0x2a10($v1) +/* 0FA4CC 7F0C599C 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA4D0 7F0C59A0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA4D4 7F0C59A4 11000031 */ beqz $t0, .L7F0C5A6C +/* 0FA4D8 7F0C59A8 01003025 */ move $a2, $t0 +/* 0FA4DC 7F0C59AC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA4E0 7F0C59B0 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA4E4 7F0C59B4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA4E8 7F0C59B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA4EC 7F0C59BC AFA800A4 */ sw $t0, 0xa4($sp) +/* 0FA4F0 7F0C59C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA4F4 7F0C59C4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA4F8 7F0C59C8 0C001145 */ jal get_video2_settings_ulx +/* 0FA4FC 7F0C59CC 00000000 */ nop +/* 0FA500 7F0C59D0 8FB90074 */ lw $t9, 0x74($sp) +/* 0FA504 7F0C59D4 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FA508 7F0C59D8 0059C021 */ addu $t8, $v0, $t9 +/* 0FA50C 7F0C59DC 000B5043 */ sra $t2, $t3, 1 +/* 0FA510 7F0C59E0 030A2023 */ subu $a0, $t8, $t2 +/* 0FA514 7F0C59E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA518 7F0C59E8 0C001149 */ jal get_video2_settings_uly +/* 0FA51C 7F0C59EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA520 7F0C59F0 8FAE007C */ lw $t6, 0x7c($sp) +/* 0FA524 7F0C59F4 000E4843 */ sra $t1, $t6, 1 +/* 0FA528 7F0C59F8 00496023 */ subu $t4, $v0, $t1 +/* 0FA52C 7F0C59FC 258F004B */ addiu $t7, $t4, 0x4b +/* 0FA530 7F0C5A00 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA534 7F0C5A04 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA538 7F0C5A08 00028400 */ sll $s0, $v0, 0x10 +/* 0FA53C 7F0C5A0C 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA540 7F0C5A10 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA544 7F0C5A14 01A08025 */ move $s0, $t5 +/* 0FA548 7F0C5A18 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA54C 7F0C5A1C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FA550 7F0C5A20 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FA554 7F0C5A24 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA558 7F0C5A28 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0FA55C 7F0C5A2C 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0FA560 7F0C5A30 AFB80018 */ sw $t8, 0x18($sp) +/* 0FA564 7F0C5A34 02202025 */ move $a0, $s1 +/* 0FA568 7F0C5A38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA56C 7F0C5A3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA570 7F0C5A40 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA574 7F0C5A44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA578 7F0C5A48 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA57C 7F0C5A4C AFA00024 */ sw $zero, 0x24($sp) +/* 0FA580 7F0C5A50 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA584 7F0C5A54 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FA588 7F0C5A58 0FC2B6AF */ jal en_text_write_stuff +/* 0FA58C 7F0C5A5C AFB90010 */ sw $t9, 0x10($sp) +/* 0FA590 7F0C5A60 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA594 7F0C5A64 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA598 7F0C5A68 00408825 */ move $s1, $v0 +.L7F0C5A6C: +/* 0FA59C 7F0C5A6C 8C622A14 */ lw $v0, 0x2a14($v1) +/* 0FA5A0 7F0C5A70 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA5A4 7F0C5A74 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA5A8 7F0C5A78 10400032 */ beqz $v0, .L7F0C5B44 +/* 0FA5AC 7F0C5A7C 00403025 */ move $a2, $v0 +/* 0FA5B0 7F0C5A80 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA5B4 7F0C5A84 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA5B8 7F0C5A88 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA5BC 7F0C5A8C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA5C0 7F0C5A90 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA5C4 7F0C5A94 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA5C8 7F0C5A98 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA5CC 7F0C5A9C AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA5D0 7F0C5AA0 0C001145 */ jal get_video2_settings_ulx +/* 0FA5D4 7F0C5AA4 00000000 */ nop +/* 0FA5D8 7F0C5AA8 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FA5DC 7F0C5AAC 8FAC0078 */ lw $t4, 0x78($sp) +/* 0FA5E0 7F0C5AB0 004E4821 */ addu $t1, $v0, $t6 +/* 0FA5E4 7F0C5AB4 000C7843 */ sra $t7, $t4, 1 +/* 0FA5E8 7F0C5AB8 012F2023 */ subu $a0, $t1, $t7 +/* 0FA5EC 7F0C5ABC 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA5F0 7F0C5AC0 0C001149 */ jal get_video2_settings_uly +/* 0FA5F4 7F0C5AC4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA5F8 7F0C5AC8 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA5FC 7F0C5ACC 000DC843 */ sra $t9, $t5, 1 +/* 0FA600 7F0C5AD0 00595823 */ subu $t3, $v0, $t9 +/* 0FA604 7F0C5AD4 25780058 */ addiu $t8, $t3, 0x58 +/* 0FA608 7F0C5AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA60C 7F0C5ADC AFB800C8 */ sw $t8, 0xc8($sp) +/* 0FA610 7F0C5AE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA614 7F0C5AE4 00105403 */ sra $t2, $s0, 0x10 +/* 0FA618 7F0C5AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA61C 7F0C5AEC 01408025 */ move $s0, $t2 +/* 0FA620 7F0C5AF0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0FA624 7F0C5AF4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA628 7F0C5AF8 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA62C 7F0C5AFC 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FA630 7F0C5B00 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0FA634 7F0C5B04 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0FA638 7F0C5B08 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA63C 7F0C5B0C 02202025 */ move $a0, $s1 +/* 0FA640 7F0C5B10 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA644 7F0C5B14 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA648 7F0C5B18 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA64C 7F0C5B1C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA650 7F0C5B20 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA654 7F0C5B24 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA658 7F0C5B28 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA65C 7F0C5B2C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA660 7F0C5B30 0FC2B6AF */ jal en_text_write_stuff +/* 0FA664 7F0C5B34 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA668 7F0C5B38 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA66C 7F0C5B3C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA670 7F0C5B40 00408825 */ move $s1, $v0 +.L7F0C5B44: +/* 0FA674 7F0C5B44 8C6F29C8 */ lw $t7, 0x29c8($v1) +.L7F0C5B48: +/* 0FA678 7F0C5B48 24010006 */ li $at, 6 +/* 0FA67C 7F0C5B4C 15E100B0 */ bne $t7, $at, .L7F0C5E10 +/* 0FA680 7F0C5B50 00000000 */ nop +/* 0FA684 7F0C5B54 0FC30776 */ jal get_textptr_for_textID +/* 0FA688 7F0C5B58 3404A020 */ li $a0, 40992 +/* 0FA68C 7F0C5B5C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA690 7F0C5B60 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA694 7F0C5B64 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA698 7F0C5B68 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA69C 7F0C5B6C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA6A0 7F0C5B70 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA6A4 7F0C5B74 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA6A8 7F0C5B78 00403025 */ move $a2, $v0 +/* 0FA6AC 7F0C5B7C AFA00014 */ sw $zero, 0x14($sp) +/* 0FA6B0 7F0C5B80 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA6B4 7F0C5B84 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA6B8 7F0C5B88 0C001145 */ jal get_video2_settings_ulx +/* 0FA6BC 7F0C5B8C 00000000 */ nop +/* 0FA6C0 7F0C5B90 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FA6C4 7F0C5B94 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA6C8 7F0C5B98 00595821 */ addu $t3, $v0, $t9 +/* 0FA6CC 7F0C5B9C 00185043 */ sra $t2, $t8, 1 +/* 0FA6D0 7F0C5BA0 016A2023 */ subu $a0, $t3, $t2 +/* 0FA6D4 7F0C5BA4 24840036 */ addiu $a0, $a0, 0x36 +/* 0FA6D8 7F0C5BA8 0C001149 */ jal get_video2_settings_uly +/* 0FA6DC 7F0C5BAC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA6E0 7F0C5BB0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0FA6E4 7F0C5BB4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0FA6E8 7F0C5BB8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0FA6EC 7F0C5BBC 000E6043 */ sra $t4, $t6, 1 +/* 0FA6F0 7F0C5BC0 004C4823 */ subu $t1, $v0, $t4 +/* 0FA6F4 7F0C5BC4 252F0036 */ addiu $t7, $t1, 0x36 +/* 0FA6F8 7F0C5BC8 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA6FC 7F0C5BCC 8DB929CC */ lw $t9, 0x29cc($t5) +/* 0FA700 7F0C5BD0 1720001E */ bnez $t9, .L7F0C5C4C +/* 0FA704 7F0C5BD4 00000000 */ nop +/* 0FA708 7F0C5BD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA70C 7F0C5BDC 00000000 */ nop +/* 0FA710 7F0C5BE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA714 7F0C5BE4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA718 7F0C5BE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA71C 7F0C5BEC 03008025 */ move $s0, $t8 +/* 0FA720 7F0C5BF0 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0FA724 7F0C5BF4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA728 7F0C5BF8 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA72C 7F0C5BFC 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0FA730 7F0C5C00 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0FA734 7F0C5C04 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0FA738 7F0C5C08 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0FA73C 7F0C5C0C 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0FA740 7F0C5C10 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FA744 7F0C5C14 AFAC001C */ sw $t4, 0x1c($sp) +/* 0FA748 7F0C5C18 02202025 */ move $a0, $s1 +/* 0FA74C 7F0C5C1C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA750 7F0C5C20 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA754 7F0C5C24 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA758 7F0C5C28 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA75C 7F0C5C2C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA760 7F0C5C30 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA764 7F0C5C34 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA768 7F0C5C38 AFAA0014 */ sw $t2, 0x14($sp) +/* 0FA76C 7F0C5C3C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA770 7F0C5C40 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA774 7F0C5C44 1000001A */ b .L7F0C5CB0 +/* 0FA778 7F0C5C48 00408825 */ move $s1, $v0 +.L7F0C5C4C: +/* 0FA77C 7F0C5C4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA780 7F0C5C50 00000000 */ nop +/* 0FA784 7F0C5C54 00028400 */ sll $s0, $v0, 0x10 +/* 0FA788 7F0C5C58 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA78C 7F0C5C5C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA790 7F0C5C60 01208025 */ move $s0, $t1 +/* 0FA794 7F0C5C64 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA798 7F0C5C68 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA79C 7F0C5C6C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA7A0 7F0C5C70 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA7A4 7F0C5C74 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA7A8 7F0C5C78 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA7AC 7F0C5C7C AFB90018 */ sw $t9, 0x18($sp) +/* 0FA7B0 7F0C5C80 02202025 */ move $a0, $s1 +/* 0FA7B4 7F0C5C84 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA7B8 7F0C5C88 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA7BC 7F0C5C8C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA7C0 7F0C5C90 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA7C4 7F0C5C94 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA7C8 7F0C5C98 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA7CC 7F0C5C9C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA7D0 7F0C5CA0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0FA7D4 7F0C5CA4 0FC2B6AF */ jal en_text_write_stuff +/* 0FA7D8 7F0C5CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA7DC 7F0C5CAC 00408825 */ move $s1, $v0 +.L7F0C5CB0: +/* 0FA7E0 7F0C5CB0 0FC30776 */ jal get_textptr_for_textID +/* 0FA7E4 7F0C5CB4 3404A021 */ li $a0, 40993 +/* 0FA7E8 7F0C5CB8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA7EC 7F0C5CBC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA7F0 7F0C5CC0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA7F4 7F0C5CC4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA7F8 7F0C5CC8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA7FC 7F0C5CCC 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA800 7F0C5CD0 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA804 7F0C5CD4 00403025 */ move $a2, $v0 +/* 0FA808 7F0C5CD8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA80C 7F0C5CDC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA810 7F0C5CE0 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA814 7F0C5CE4 0C001145 */ jal get_video2_settings_ulx +/* 0FA818 7F0C5CE8 00000000 */ nop +/* 0FA81C 7F0C5CEC 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA820 7F0C5CF0 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FA824 7F0C5CF4 004B5021 */ addu $t2, $v0, $t3 +/* 0FA828 7F0C5CF8 000E6043 */ sra $t4, $t6, 1 +/* 0FA82C 7F0C5CFC 014C2023 */ subu $a0, $t2, $t4 +/* 0FA830 7F0C5D00 24840068 */ addiu $a0, $a0, 0x68 +/* 0FA834 7F0C5D04 0C001149 */ jal get_video2_settings_uly +/* 0FA838 7F0C5D08 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA83C 7F0C5D0C 8FA900BC */ lw $t1, 0xbc($sp) +/* 0FA840 7F0C5D10 3C188008 */ lui $t8, %hi(pPlayer) +/* 0FA844 7F0C5D14 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0FA848 7F0C5D18 00097843 */ sra $t7, $t1, 1 +/* 0FA84C 7F0C5D1C 004F6823 */ subu $t5, $v0, $t7 +/* 0FA850 7F0C5D20 25B90036 */ addiu $t9, $t5, 0x36 +/* 0FA854 7F0C5D24 AFB900C8 */ sw $t9, 0xc8($sp) +/* 0FA858 7F0C5D28 8F0B29CC */ lw $t3, 0x29cc($t8) +/* 0FA85C 7F0C5D2C 24010001 */ li $at, 1 +/* 0FA860 7F0C5D30 1561001E */ bne $t3, $at, .L7F0C5DAC +/* 0FA864 7F0C5D34 00000000 */ nop +/* 0FA868 7F0C5D38 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA86C 7F0C5D3C 00000000 */ nop +/* 0FA870 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 +/* 0FA874 7F0C5D44 00107403 */ sra $t6, $s0, 0x10 +/* 0FA878 7F0C5D48 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA87C 7F0C5D4C 01C08025 */ move $s0, $t6 +/* 0FA880 7F0C5D50 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0FA884 7F0C5D54 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA888 7F0C5D58 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA88C 7F0C5D5C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0FA890 7F0C5D60 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0FA894 7F0C5D64 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0FA898 7F0C5D68 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0FA89C 7F0C5D6C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0FA8A0 7F0C5D70 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA8A4 7F0C5D74 AFAF001C */ sw $t7, 0x1c($sp) +/* 0FA8A8 7F0C5D78 02202025 */ move $a0, $s1 +/* 0FA8AC 7F0C5D7C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA8B0 7F0C5D80 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA8B4 7F0C5D84 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA8B8 7F0C5D88 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA8BC 7F0C5D8C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA8C0 7F0C5D90 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA8C4 7F0C5D94 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA8C8 7F0C5D98 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA8CC 7F0C5D9C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA8D0 7F0C5DA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA8D4 7F0C5DA4 1000001A */ b .L7F0C5E10 +/* 0FA8D8 7F0C5DA8 00408825 */ move $s1, $v0 +.L7F0C5DAC: +/* 0FA8DC 7F0C5DAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA8E0 7F0C5DB0 00000000 */ nop +/* 0FA8E4 7F0C5DB4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA8E8 7F0C5DB8 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA8EC 7F0C5DBC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA8F0 7F0C5DC0 01A08025 */ move $s0, $t5 +/* 0FA8F4 7F0C5DC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA8F8 7F0C5DC8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA8FC 7F0C5DCC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA900 7F0C5DD0 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA904 7F0C5DD4 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0FA908 7F0C5DD8 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0FA90C 7F0C5DDC AFAB0018 */ sw $t3, 0x18($sp) +/* 0FA910 7F0C5DE0 02202025 */ move $a0, $s1 +/* 0FA914 7F0C5DE4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA918 7F0C5DE8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA91C 7F0C5DEC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA920 7F0C5DF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA924 7F0C5DF4 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA928 7F0C5DF8 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA92C 7F0C5DFC AFA00028 */ sw $zero, 0x28($sp) +/* 0FA930 7F0C5E00 AFB80014 */ sw $t8, 0x14($sp) +/* 0FA934 7F0C5E04 0FC2B6AF */ jal en_text_write_stuff +/* 0FA938 7F0C5E08 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA93C 7F0C5E0C 00408825 */ move $s1, $v0 +.L7F0C5E10: +/* 0FA940 7F0C5E10 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FA944 7F0C5E14 02202025 */ move $a0, $s1 +/* 0FA948 7F0C5E18 10000085 */ b .L7F0C6030 +/* 0FA94C 7F0C5E1C 00408825 */ move $s1, $v0 +/* 0FA950 7F0C5E20 8C6E00D8 */ lw $t6, 0xd8($v1) +.L7F0C5E24: +/* 0FA954 7F0C5E24 51C00083 */ beql $t6, $zero, .L7F0C6034 +/* 0FA958 7F0C5E28 02201025 */ move $v0, $s1 +/* 0FA95C 7F0C5E2C 8C6A0428 */ lw $t2, 0x428($v1) +/* 0FA960 7F0C5E30 51400080 */ beql $t2, $zero, .L7F0C6034 +/* 0FA964 7F0C5E34 02201025 */ move $v0, $s1 +/* 0FA968 7F0C5E38 8C6C0424 */ lw $t4, 0x424($v1) +/* 0FA96C 7F0C5E3C 3C098009 */ lui $t1, %hi(stop_play_flag) +/* 0FA970 7F0C5E40 5180007C */ beql $t4, $zero, .L7F0C6034 +/* 0FA974 7F0C5E44 02201025 */ move $v0, $s1 +/* 0FA978 7F0C5E48 8D29C700 */ lw $t1, %lo(stop_play_flag)($t1) +/* 0FA97C 7F0C5E4C 3C0F8009 */ lui $t7, %hi(is_gameover_flag) +/* 0FA980 7F0C5E50 55200078 */ bnezl $t1, .L7F0C6034 +/* 0FA984 7F0C5E54 02201025 */ move $v0, $s1 +/* 0FA988 7F0C5E58 8DEFC704 */ lw $t7, %lo(is_gameover_flag)($t7) +/* 0FA98C 7F0C5E5C 00002025 */ move $a0, $zero +/* 0FA990 7F0C5E60 55E00074 */ bnezl $t7, .L7F0C6034 +/* 0FA994 7F0C5E64 02201025 */ move $v0, $s1 +/* 0FA998 7F0C5E68 18400028 */ blez $v0, .L7F0C5F0C +/* 0FA99C 7F0C5E6C 00002825 */ move $a1, $zero +/* 0FA9A0 7F0C5E70 30470003 */ andi $a3, $v0, 3 +/* 0FA9A4 7F0C5E74 10E00011 */ beqz $a3, .L7F0C5EBC +/* 0FA9A8 7F0C5E78 00E03025 */ move $a2, $a3 +/* 0FA9AC 7F0C5E7C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA9B0 7F0C5E80 000068C0 */ sll $t5, $zero, 3 +/* 0FA9B4 7F0C5E84 01A06823 */ subu $t5, $t5, $zero +/* 0FA9B8 7F0C5E88 000D6900 */ sll $t5, $t5, 4 +/* 0FA9BC 7F0C5E8C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA9C0 7F0C5E90 0019C080 */ sll $t8, $t9, 2 +/* 0FA9C4 7F0C5E94 01B85821 */ addu $t3, $t5, $t8 +/* 0FA9C8 7F0C5E98 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA9CC 7F0C5E9C 016E1821 */ addu $v1, $t3, $t6 +.L7F0C5EA0: +/* 0FA9D0 7F0C5EA0 8C6A0024 */ lw $t2, 0x24($v1) +/* 0FA9D4 7F0C5EA4 24A50001 */ addiu $a1, $a1, 1 +/* 0FA9D8 7F0C5EA8 24630070 */ addiu $v1, $v1, 0x70 +/* 0FA9DC 7F0C5EAC 14C5FFFC */ bne $a2, $a1, .L7F0C5EA0 +/* 0FA9E0 7F0C5EB0 008A2021 */ addu $a0, $a0, $t2 +/* 0FA9E4 7F0C5EB4 10A20015 */ beq $a1, $v0, .L7F0C5F0C +/* 0FA9E8 7F0C5EB8 00000000 */ nop +.L7F0C5EBC: +/* 0FA9EC 7F0C5EBC 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0FA9F0 7F0C5EC0 000560C0 */ sll $t4, $a1, 3 +/* 0FA9F4 7F0C5EC4 01856023 */ subu $t4, $t4, $a1 +/* 0FA9F8 7F0C5EC8 000C6100 */ sll $t4, $t4, 4 +/* 0FA9FC 7F0C5ECC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0FAA00 7F0C5ED0 00097880 */ sll $t7, $t1, 2 +/* 0FAA04 7F0C5ED4 018FC821 */ addu $t9, $t4, $t7 +/* 0FAA08 7F0C5ED8 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0FAA0C 7F0C5EDC 032D1821 */ addu $v1, $t9, $t5 +.L7F0C5EE0: +/* 0FAA10 7F0C5EE0 8C780024 */ lw $t8, 0x24($v1) +/* 0FAA14 7F0C5EE4 8C6B0094 */ lw $t3, 0x94($v1) +/* 0FAA18 7F0C5EE8 8C6E0104 */ lw $t6, 0x104($v1) +/* 0FAA1C 7F0C5EEC 00982021 */ addu $a0, $a0, $t8 +/* 0FAA20 7F0C5EF0 8C6A0174 */ lw $t2, 0x174($v1) +/* 0FAA24 7F0C5EF4 008B2021 */ addu $a0, $a0, $t3 +/* 0FAA28 7F0C5EF8 24A50004 */ addiu $a1, $a1, 4 +/* 0FAA2C 7F0C5EFC 008E2021 */ addu $a0, $a0, $t6 +/* 0FAA30 7F0C5F00 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0FAA34 7F0C5F04 14A8FFF6 */ bne $a1, $t0, .L7F0C5EE0 +/* 0FAA38 7F0C5F08 008A2021 */ addu $a0, $a0, $t2 +.L7F0C5F0C: +/* 0FAA3C 7F0C5F0C 0FC051D6 */ jal get_scenario +/* 0FAA40 7F0C5F10 AFA40058 */ sw $a0, 0x58($sp) +/* 0FAA44 7F0C5F14 24010001 */ li $at, 1 +/* 0FAA48 7F0C5F18 14410004 */ bne $v0, $at, .L7F0C5F2C +/* 0FAA4C 7F0C5F1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0FAA50 7F0C5F20 28810002 */ slti $at, $a0, 2 +/* 0FAA54 7F0C5F24 50200043 */ beql $at, $zero, .L7F0C6034 +/* 0FAA58 7F0C5F28 02201025 */ move $v0, $s1 +.L7F0C5F2C: +/* 0FAA5C 7F0C5F2C 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0FAA60 7F0C5F30 02202025 */ move $a0, $s1 +/* 0FAA64 7F0C5F34 0FC2B366 */ jal microcode_constructor +/* 0FAA68 7F0C5F38 00402025 */ move $a0, $v0 +/* 0FAA6C 7F0C5F3C 00408825 */ move $s1, $v0 +/* 0FAA70 7F0C5F40 0FC30776 */ jal get_textptr_for_textID +/* 0FAA74 7F0C5F44 3404A022 */ li $a0, 40994 +/* 0FAA78 7F0C5F48 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0FAA7C 7F0C5F4C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0FAA80 7F0C5F50 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FAA84 7F0C5F54 AFA20060 */ sw $v0, 0x60($sp) +/* 0FAA88 7F0C5F58 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAA8C 7F0C5F5C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0FAA90 7F0C5F60 27A50068 */ addiu $a1, $sp, 0x68 +/* 0FAA94 7F0C5F64 00403025 */ move $a2, $v0 +/* 0FAA98 7F0C5F68 AFA00014 */ sw $zero, 0x14($sp) +/* 0FAA9C 7F0C5F6C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FAAA0 7F0C5F70 AFA90010 */ sw $t1, 0x10($sp) +/* 0FAAA4 7F0C5F74 0C001145 */ jal get_video2_settings_ulx +/* 0FAAA8 7F0C5F78 00000000 */ nop +/* 0FAAAC 7F0C5F7C 0C001127 */ jal get_video2_settings_width +/* 0FAAB0 7F0C5F80 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAAB4 7F0C5F84 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAB8 7F0C5F88 8FAD0068 */ lw $t5, 0x68($sp) +/* 0FAABC 7F0C5F8C 00027843 */ sra $t7, $v0, 1 +/* 0FAAC0 7F0C5F90 01E3C821 */ addu $t9, $t7, $v1 +/* 0FAAC4 7F0C5F94 000DC043 */ sra $t8, $t5, 1 +/* 0FAAC8 7F0C5F98 03385823 */ subu $t3, $t9, $t8 +/* 0FAACC 7F0C5F9C 0C001149 */ jal get_video2_settings_uly +/* 0FAAD0 7F0C5FA0 AFAB0070 */ sw $t3, 0x70($sp) +/* 0FAAD4 7F0C5FA4 0C00112B */ jal get_video2_settings_height +/* 0FAAD8 7F0C5FA8 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAADC 7F0C5FAC 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAE0 7F0C5FB0 8FAC0064 */ lw $t4, 0x64($sp) +/* 0FAAE4 7F0C5FB4 00025043 */ sra $t2, $v0, 1 +/* 0FAAE8 7F0C5FB8 01434821 */ addu $t1, $t2, $v1 +/* 0FAAEC 7F0C5FBC 000C7843 */ sra $t7, $t4, 1 +/* 0FAAF0 7F0C5FC0 012F6823 */ subu $t5, $t1, $t7 +/* 0FAAF4 7F0C5FC4 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAAF8 7F0C5FC8 AFAD006C */ sw $t5, 0x6c($sp) +/* 0FAAFC 7F0C5FCC 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB00 7F0C5FD0 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAB04 7F0C5FD4 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAB08 7F0C5FD8 03208025 */ move $s0, $t9 +/* 0FAB0C 7F0C5FDC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0FAB10 7F0C5FE0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FAB14 7F0C5FE4 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FAB18 7F0C5FE8 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FAB1C 7F0C5FEC 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0FAB20 7F0C5FF0 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0FAB24 7F0C5FF4 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FAB28 7F0C5FF8 02202025 */ move $a0, $s1 +/* 0FAB2C 7F0C5FFC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0FAB30 7F0C6000 27A6006C */ addiu $a2, $sp, 0x6c +/* 0FAB34 7F0C6004 8FA70060 */ lw $a3, 0x60($sp) +/* 0FAB38 7F0C6008 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FAB3C 7F0C600C AFA20020 */ sw $v0, 0x20($sp) +/* 0FAB40 7F0C6010 AFA00024 */ sw $zero, 0x24($sp) +/* 0FAB44 7F0C6014 AFA00028 */ sw $zero, 0x28($sp) +/* 0FAB48 7F0C6018 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FAB4C 7F0C601C 0FC2B6AF */ jal en_text_write_stuff +/* 0FAB50 7F0C6020 AFB80010 */ sw $t8, 0x10($sp) +/* 0FAB54 7F0C6024 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FAB58 7F0C6028 00402025 */ move $a0, $v0 +/* 0FAB5C 7F0C602C 00408825 */ move $s1, $v0 +.L7F0C6030: +/* 0FAB60 7F0C6030 02201025 */ move $v0, $s1 +.L7F0C6034: +/* 0FAB64 7F0C6034 8FBF003C */ lw $ra, 0x3c($sp) +/* 0FAB68 7F0C6038 8FB00034 */ lw $s0, 0x34($sp) +/* 0FAB6C 7F0C603C 8FB10038 */ lw $s1, 0x38($sp) +/* 0FAB70 7F0C6040 03E00008 */ jr $ra +/* 0FAB74 7F0C6044 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*jtbl hacks*/ +.word not_yolt_tld + +/*D:8005BD00*/ +glabel jpt_MP_menu_window_text +.word text_play +.word text_play +.word text_play +.word text_play +.word text_pause_unpause +.word text_exit +.word text_exit +.word text_blank + +.text +glabel mp_watch_menu_display +/* 0F9844 7F0C4CD4 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0F9848 7F0C4CD8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F984C 7F0C4CDC AFB10038 */ sw $s1, 0x38($sp) +/* 0F9850 7F0C4CE0 00808825 */ move $s1, $a0 +/* 0F9854 7F0C4CE4 0FC26F3C */ jal get_cur_playernum +/* 0F9858 7F0C4CE8 AFB00034 */ sw $s0, 0x34($sp) +/* 0F985C 7F0C4CEC 0FC26C01 */ jal get_num_players +/* 0F9860 7F0C4CF0 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0F9864 7F0C4CF4 24010001 */ li $at, 1 +/* 0F9868 7F0C4CF8 00404025 */ move $t0, $v0 +/* 0F986C 7F0C4CFC 14410003 */ bne $v0, $at, .Ljp7F0C4D0C +/* 0F9870 7F0C4D00 00008025 */ move $s0, $zero +/* 0F9874 7F0C4D04 10000804 */ b .Ljp7F0C6D18 +/* 0F9878 7F0C4D08 02201025 */ move $v0, $s1 +.Ljp7F0C4D0C: +/* 0F987C 7F0C4D0C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0F9880 7F0C4D10 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0F9884 7F0C4D14 02202025 */ move $a0, $s1 +/* 0F9888 7F0C4D18 8C6E29C4 */ lw $t6, 0x29c4($v1) +/* 0F988C 7F0C4D1C 51C0076D */ beql $t6, $zero, .Ljp7F0C6AD4 +/* 0F9890 7F0C4D20 8C6C00D8 */ lw $t4, 0xd8($v1) +/* 0F9894 7F0C4D24 0FC2B652 */ jal microcode_constructor +/* 0F9898 7F0C4D28 AFA800D0 */ sw $t0, 0xd0($sp) +/* 0F989C 7F0C4D2C 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F98A0 7F0C4D30 24010002 */ li $at, 2 +/* 0F98A4 7F0C4D34 00408825 */ move $s1, $v0 +/* 0F98A8 7F0C4D38 15E10004 */ bne $t7, $at, .Ljp7F0C4D4C +/* 0F98AC 7F0C4D3C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0F98B0 7F0C4D40 24180050 */ li $t8, 80 +/* 0F98B4 7F0C4D44 10000002 */ b .Ljp7F0C4D50 +/* 0F98B8 7F0C4D48 AFB800A8 */ sw $t8, 0xa8($sp) +.Ljp7F0C4D4C: +/* 0F98BC 7F0C4D4C AFA000A8 */ sw $zero, 0xa8($sp) +.Ljp7F0C4D50: +/* 0F98C0 7F0C4D50 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0F98C4 7F0C4D54 8F2B29C8 */ lw $t3, 0x29c8($t9) +/* 0F98C8 7F0C4D58 2D610008 */ sltiu $at, $t3, 8 +/* 0F98CC 7F0C4D5C 10200038 */ beqz $at, .Ljp7F0C4E40 +/* 0F98D0 7F0C4D60 000B5880 */ sll $t3, $t3, 2 +/* 0F98D4 7F0C4D64 3C018006 */ lui $at, %hi(jpt_MP_menu_window_text) +/* 0F98D8 7F0C4D68 002B0821 */ addu $at, $at, $t3 +/* 0F98DC 7F0C4D6C 8C2BBD40 */ lw $t3, %lo(jpt_MP_menu_window_text)($at) +/* 0F98E0 7F0C4D70 01600008 */ jr $t3 +/* 0F98E4 7F0C4D74 00000000 */ nop +text_play: +/* 0F98E8 7F0C4D78 3C0C8009 */ lui $t4, %hi(is_gameover_flag) # $t4, 0x8009 +/* 0F98EC 7F0C4D7C 8D8CC774 */ lw $t4, %lo(is_gameover_flag)($t4) +/* 0F98F0 7F0C4D80 3C0D8009 */ lui $t5, %hi(time_trigger_alt_gameover_msg) # $t5, 0x8009 +/* 0F98F4 7F0C4D84 15800005 */ bnez $t4, .Ljp7F0C4D9C +/* 0F98F8 7F0C4D88 00000000 */ nop +/* 0F98FC 7F0C4D8C 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9900 7F0C4D90 3404A015 */ li $a0, 40981 +/* 0F9904 7F0C4D94 1000002A */ b .Ljp7F0C4E40 +/* 0F9908 7F0C4D98 AFA200A4 */ sw $v0, 0xa4($sp) +.Ljp7F0C4D9C: +/* 0F990C 7F0C4D9C 8DADC780 */ lw $t5, %lo(time_trigger_alt_gameover_msg)($t5) +/* 0F9910 7F0C4DA0 11A00005 */ beqz $t5, .Ljp7F0C4DB8 +/* 0F9914 7F0C4DA4 00000000 */ nop +/* 0F9918 7F0C4DA8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F991C 7F0C4DAC 3404A016 */ li $a0, 40982 +/* 0F9920 7F0C4DB0 10000023 */ b .Ljp7F0C4E40 +/* 0F9924 7F0C4DB4 AFA200A4 */ sw $v0, 0xa4($sp) +.Ljp7F0C4DB8: +/* 0F9928 7F0C4DB8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F992C 7F0C4DBC 3404A017 */ li $a0, 40983 +/* 0F9930 7F0C4DC0 1000001F */ b .Ljp7F0C4E40 +/* 0F9934 7F0C4DC4 AFA200A4 */ sw $v0, 0xa4($sp) +text_blank: +/* 0F9938 7F0C4DC8 3C0E8006 */ lui $t6, %hi(ascii_MP_watch_menu_BLANK) # $t6, 0x8006 +/* 0F993C 7F0C4DCC 25CEBC64 */ addiu $t6, %lo(ascii_MP_watch_menu_BLANK) # addiu $t6, $t6, -0x439c +/* 0F9940 7F0C4DD0 1000001B */ b .Ljp7F0C4E40 +/* 0F9944 7F0C4DD4 AFAE00A4 */ sw $t6, 0xa4($sp) +text_pause_unpause: +/* 0F9948 7F0C4DD8 3C0F8009 */ lui $t7, %hi(is_paused) # $t7, 0x8009 +/* 0F994C 7F0C4DDC 8DEFC788 */ lw $t7, %lo(is_paused)($t7) +/* 0F9950 7F0C4DE0 11E0000B */ beqz $t7, .Ljp7F0C4E10 +/* 0F9954 7F0C4DE4 00000000 */ nop +/* 0F9958 7F0C4DE8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F995C 7F0C4DEC 3404A018 */ li $a0, 40984 +/* 0F9960 7F0C4DF0 0FC26F3C */ jal get_cur_playernum +/* 0F9964 7F0C4DF4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F9968 7F0C4DF8 3C188009 */ lui $t8, %hi(who_paused) # $t8, 0x8009 +/* 0F996C 7F0C4DFC 8F18C78C */ lw $t8, %lo(who_paused)($t8) +/* 0F9970 7F0C4E00 1458000F */ bne $v0, $t8, .Ljp7F0C4E40 +/* 0F9974 7F0C4E04 00000000 */ nop +/* 0F9978 7F0C4E08 1000000D */ b .Ljp7F0C4E40 +/* 0F997C 7F0C4E0C 24100001 */ li $s0, 1 +.Ljp7F0C4E10: +/* 0F9980 7F0C4E10 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9984 7F0C4E14 3404A019 */ li $a0, 40985 +/* 0F9988 7F0C4E18 10000009 */ b .Ljp7F0C4E40 +/* 0F998C 7F0C4E1C AFA200A4 */ sw $v0, 0xa4($sp) +text_exit: +/* 0F9990 7F0C4E20 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9994 7F0C4E24 3404A01A */ li $a0, 40986 +/* 0F9998 7F0C4E28 0C001145 */ jal get_video2_settings_ulx +/* 0F999C 7F0C4E2C AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F99A0 7F0C4E30 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F99A4 7F0C4E34 00592021 */ addu $a0, $v0, $t9 +/* 0F99A8 7F0C4E38 24840041 */ addiu $a0, $a0, 0x41 +/* 0F99AC 7F0C4E3C AFA400CC */ sw $a0, 0xcc($sp) +def_7F0C40C0: +.Ljp7F0C4E40: +/* 0F99B0 7F0C4E40 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F99B4 7F0C4E44 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F99B8 7F0C4E48 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F99BC 7F0C4E4C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F99C0 7F0C4E50 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F99C4 7F0C4E54 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F99C8 7F0C4E58 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F99CC 7F0C4E5C AFA00014 */ sw $zero, 0x14($sp) +/* 0F99D0 7F0C4E60 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F99D4 7F0C4E64 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F99D8 7F0C4E68 0C001145 */ jal get_video2_settings_ulx +/* 0F99DC 7F0C4E6C 00000000 */ nop +/* 0F99E0 7F0C4E70 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F99E4 7F0C4E74 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0F99E8 7F0C4E78 004C6821 */ addu $t5, $v0, $t4 +/* 0F99EC 7F0C4E7C 000E7843 */ sra $t7, $t6, 1 +/* 0F99F0 7F0C4E80 01AF2023 */ subu $a0, $t5, $t7 +/* 0F99F4 7F0C4E84 24840050 */ addiu $a0, $a0, 0x50 +/* 0F99F8 7F0C4E88 0C001149 */ jal get_video2_settings_uly +/* 0F99FC 7F0C4E8C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9A00 7F0C4E90 8FB800BC */ lw $t8, 0xbc($sp) +/* 0F9A04 7F0C4E94 0018C843 */ sra $t9, $t8, 1 +/* 0F9A08 7F0C4E98 00595823 */ subu $t3, $v0, $t9 +/* 0F9A0C 7F0C4E9C 256C0016 */ addiu $t4, $t3, 0x16 +/* 0F9A10 7F0C4EA0 1200001E */ beqz $s0, .Ljp7F0C4F1C +/* 0F9A14 7F0C4EA4 AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0F9A18 7F0C4EA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A1C 7F0C4EAC 00000000 */ nop +/* 0F9A20 7F0C4EB0 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A24 7F0C4EB4 00107403 */ sra $t6, $s0, 0x10 +/* 0F9A28 7F0C4EB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9A2C 7F0C4EBC 01C08025 */ move $s0, $t6 +/* 0F9A30 7F0C4EC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 +/* 0F9A34 7F0C4EC4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9A38 7F0C4EC8 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9A3C 7F0C4ECC 8DAD0EE0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F9A40 7F0C4ED0 3C18A0FF */ lui $t8, (0xA0FFA0F0 >> 16) # lui $t8, 0xa0ff +/* 0F9A44 7F0C4ED4 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0F9A48 7F0C4ED8 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F9A4C 7F0C4EDC 3718A0F0 */ ori $t8, (0xA0FFA0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F9A50 7F0C4EE0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9A54 7F0C4EE4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F9A58 7F0C4EE8 02202025 */ move $a0, $s1 +/* 0F9A5C 7F0C4EEC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9A60 7F0C4EF0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9A64 7F0C4EF4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9A68 7F0C4EF8 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9A6C 7F0C4EFC AFA20024 */ sw $v0, 0x24($sp) +/* 0F9A70 7F0C4F00 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9A74 7F0C4F04 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9A78 7F0C4F08 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9A7C 7F0C4F0C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9A80 7F0C4F10 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9A84 7F0C4F14 1000001A */ b .Ljp7F0C4F80 +/* 0F9A88 7F0C4F18 00408825 */ move $s1, $v0 +.Ljp7F0C4F1C: +/* 0F9A8C 7F0C4F1C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A90 7F0C4F20 00000000 */ nop +/* 0F9A94 7F0C4F24 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A98 7F0C4F28 00105C03 */ sra $t3, $s0, 0x10 +/* 0F9A9C 7F0C4F2C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9AA0 7F0C4F30 01608025 */ move $s0, $t3 +/* 0F9AA4 7F0C4F34 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9AA8 7F0C4F38 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) # $t6, 0x8004 +/* 0F9AAC 7F0C4F3C 8DCE0EDC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F9AB0 7F0C4F40 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9AB4 7F0C4F44 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F9AB8 7F0C4F48 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F9ABC 7F0C4F4C AFAD0018 */ sw $t5, 0x18($sp) +/* 0F9AC0 7F0C4F50 02202025 */ move $a0, $s1 +/* 0F9AC4 7F0C4F54 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9AC8 7F0C4F58 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9ACC 7F0C4F5C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9AD0 7F0C4F60 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9AD4 7F0C4F64 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9AD8 7F0C4F68 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9ADC 7F0C4F6C AFA00028 */ sw $zero, 0x28($sp) +/* 0F9AE0 7F0C4F70 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F9AE4 7F0C4F74 0FC2B99B */ jal en_text_write_stuff +/* 0F9AE8 7F0C4F78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9AEC 7F0C4F7C 00408825 */ move $s1, $v0 +.Ljp7F0C4F80: +/* 0F9AF0 7F0C4F80 0FC30ACF */ jal check_can_advance_left_on_mpmenu +/* 0F9AF4 7F0C4F84 00000000 */ nop +/* 0F9AF8 7F0C4F88 10400056 */ beqz $v0, .Ljp7F0C50E4 +/* 0F9AFC 7F0C4F8C 00000000 */ nop +/* 0F9B00 7F0C4F90 0C001145 */ jal get_video2_settings_ulx +/* 0F9B04 7F0C4F94 00000000 */ nop +/* 0F9B08 7F0C4F98 3C038009 */ lui $v1, %hi(is_gameover_flag) # $v1, 0x8009 +/* 0F9B0C 7F0C4F9C 8C63C774 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F9B10 7F0C4FA0 0002C400 */ sll $t8, $v0, 0x10 +/* 0F9B14 7F0C4FA4 240F000A */ li $t7, 10 +/* 0F9B18 7F0C4FA8 50600004 */ beql $v1, $zero, .Ljp7F0C4FBC +/* 0F9B1C 7F0C4FAC AFA00050 */ sw $zero, 0x50($sp) +/* 0F9B20 7F0C4FB0 10000002 */ b .Ljp7F0C4FBC +/* 0F9B24 7F0C4FB4 AFAF0050 */ sw $t7, 0x50($sp) +/* 0F9B28 7F0C4FB8 AFA00050 */ sw $zero, 0x50($sp) +.Ljp7F0C4FBC: +/* 0F9B2C 7F0C4FBC 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9B30 7F0C4FC0 8FAE0050 */ lw $t6, 0x50($sp) +/* 0F9B34 7F0C4FC4 0018CC03 */ sra $t9, $t8, 0x10 +/* 0F9B38 7F0C4FC8 032B6021 */ addu $t4, $t9, $t3 +/* 0F9B3C 7F0C4FCC 018E2023 */ subu $a0, $t4, $t6 +/* 0F9B40 7F0C4FD0 24840028 */ addiu $a0, $a0, 0x28 +/* 0F9B44 7F0C4FD4 10600003 */ beqz $v1, .Ljp7F0C4FE4 +/* 0F9B48 7F0C4FD8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9B4C 7F0C4FDC 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F9B50 7F0C4FE0 AFA400CC */ sw $a0, 0xcc($sp) +.Ljp7F0C4FE4: +/* 0F9B54 7F0C4FE4 0C001149 */ jal get_video2_settings_uly +/* 0F9B58 7F0C4FE8 00000000 */ nop +/* 0F9B5C 7F0C4FEC 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008C708) # $t7, 0x8009 +/* 0F9B60 7F0C4FF0 8DEFC778 */ lw $t7, %lo(dword_CODE_bss_8008C708)($t7) +/* 0F9B64 7F0C4FF4 244D0016 */ addiu $t5, $v0, 0x16 +/* 0F9B68 7F0C4FF8 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9B6C 7F0C4FFC 15E0001C */ bnez $t7, .Ljp7F0C5070 +/* 0F9B70 7F0C5000 00000000 */ nop +/* 0F9B74 7F0C5004 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9B78 7F0C5008 00000000 */ nop +/* 0F9B7C 7F0C500C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9B80 7F0C5010 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9B84 7F0C5014 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9B88 7F0C5018 03008025 */ move $s0, $t8 +/* 0F9B8C 7F0C501C 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 +/* 0F9B90 7F0C5020 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9B94 7F0C5024 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9B98 7F0C5028 8F390EE0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9B9C 7F0C502C 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0F9BA0 7F0C5030 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0F9BA4 7F0C5034 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) # $a3, 0x8006 +/* 0F9BA8 7F0C5038 24E7BC68 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x4398 +/* 0F9BAC 7F0C503C AFAC0018 */ sw $t4, 0x18($sp) +/* 0F9BB0 7F0C5040 02202025 */ move $a0, $s1 +/* 0F9BB4 7F0C5044 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9BB8 7F0C5048 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9BBC 7F0C504C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9BC0 7F0C5050 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9BC4 7F0C5054 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9BC8 7F0C5058 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9BCC 7F0C505C AFAB0014 */ sw $t3, 0x14($sp) +/* 0F9BD0 7F0C5060 0FC2B99B */ jal en_text_write_stuff +/* 0F9BD4 7F0C5064 AFB90010 */ sw $t9, 0x10($sp) +/* 0F9BD8 7F0C5068 1000001E */ b .Ljp7F0C50E4 +/* 0F9BDC 7F0C506C 00408825 */ move $s1, $v0 +.Ljp7F0C5070: +/* 0F9BE0 7F0C5070 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9BE4 7F0C5074 00000000 */ nop +/* 0F9BE8 7F0C5078 00028400 */ sll $s0, $v0, 0x10 +/* 0F9BEC 7F0C507C 00107403 */ sra $t6, $s0, 0x10 +/* 0F9BF0 7F0C5080 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9BF4 7F0C5084 01C08025 */ move $s0, $t6 +/* 0F9BF8 7F0C5088 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 +/* 0F9BFC 7F0C508C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9C00 7F0C5090 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9C04 7F0C5094 8DAD0EE0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F9C08 7F0C5098 3C18A0FF */ lui $t8, (0xA0FFA0F0 >> 16) # lui $t8, 0xa0ff +/* 0F9C0C 7F0C509C 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0F9C10 7F0C50A0 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F9C14 7F0C50A4 3718A0F0 */ ori $t8, (0xA0FFA0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F9C18 7F0C50A8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) # $a3, 0x8006 +/* 0F9C1C 7F0C50AC 24E7BC68 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x4398 +/* 0F9C20 7F0C50B0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9C24 7F0C50B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F9C28 7F0C50B8 02202025 */ move $a0, $s1 +/* 0F9C2C 7F0C50BC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9C30 7F0C50C0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9C34 7F0C50C4 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9C38 7F0C50C8 AFA20024 */ sw $v0, 0x24($sp) +/* 0F9C3C 7F0C50CC AFA00028 */ sw $zero, 0x28($sp) +/* 0F9C40 7F0C50D0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9C44 7F0C50D4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9C48 7F0C50D8 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9C4C 7F0C50DC AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9C50 7F0C50E0 00408825 */ move $s1, $v0 +.Ljp7F0C50E4: +/* 0F9C54 7F0C50E4 0FC30AB4 */ jal check_can_advance_right_on_mpmenu +/* 0F9C58 7F0C50E8 00000000 */ nop +/* 0F9C5C 7F0C50EC 10400056 */ beqz $v0, .Ljp7F0C5248 +/* 0F9C60 7F0C50F0 00000000 */ nop +/* 0F9C64 7F0C50F4 0C001145 */ jal get_video2_settings_ulx +/* 0F9C68 7F0C50F8 00000000 */ nop +/* 0F9C6C 7F0C50FC 3C038009 */ lui $v1, %hi(is_gameover_flag) # $v1, 0x8009 +/* 0F9C70 7F0C5100 8C63C774 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F9C74 7F0C5104 00027400 */ sll $t6, $v0, 0x10 +/* 0F9C78 7F0C5108 240B000A */ li $t3, 10 +/* 0F9C7C 7F0C510C 50600004 */ beql $v1, $zero, .Ljp7F0C5120 +/* 0F9C80 7F0C5110 AFA00050 */ sw $zero, 0x50($sp) +/* 0F9C84 7F0C5114 10000002 */ b .Ljp7F0C5120 +/* 0F9C88 7F0C5118 AFAB0050 */ sw $t3, 0x50($sp) +/* 0F9C8C 7F0C511C AFA00050 */ sw $zero, 0x50($sp) +.Ljp7F0C5120: +/* 0F9C90 7F0C5120 8FAC0050 */ lw $t4, 0x50($sp) +/* 0F9C94 7F0C5124 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9C98 7F0C5128 000E6C03 */ sra $t5, $t6, 0x10 +/* 0F9C9C 7F0C512C 018D7821 */ addu $t7, $t4, $t5 +/* 0F9CA0 7F0C5130 01F82021 */ addu $a0, $t7, $t8 +/* 0F9CA4 7F0C5134 24840070 */ addiu $a0, $a0, 0x70 +/* 0F9CA8 7F0C5138 10600003 */ beqz $v1, .Ljp7F0C5148 +/* 0F9CAC 7F0C513C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9CB0 7F0C5140 24840008 */ addiu $a0, $a0, 8 +/* 0F9CB4 7F0C5144 AFA400CC */ sw $a0, 0xcc($sp) +.Ljp7F0C5148: +/* 0F9CB8 7F0C5148 0C001149 */ jal get_video2_settings_uly +/* 0F9CBC 7F0C514C 00000000 */ nop +/* 0F9CC0 7F0C5150 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008C708) # $t3, 0x8009 +/* 0F9CC4 7F0C5154 8D6BC778 */ lw $t3, %lo(dword_CODE_bss_8008C708)($t3) +/* 0F9CC8 7F0C5158 24590016 */ addiu $t9, $v0, 0x16 +/* 0F9CCC 7F0C515C AFB900C8 */ sw $t9, 0xc8($sp) +/* 0F9CD0 7F0C5160 1560001C */ bnez $t3, .Ljp7F0C51D4 +/* 0F9CD4 7F0C5164 00000000 */ nop +/* 0F9CD8 7F0C5168 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CDC 7F0C516C 00000000 */ nop +/* 0F9CE0 7F0C5170 00028400 */ sll $s0, $v0, 0x10 +/* 0F9CE4 7F0C5174 00107403 */ sra $t6, $s0, 0x10 +/* 0F9CE8 7F0C5178 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CEC 7F0C517C 01C08025 */ move $s0, $t6 +/* 0F9CF0 7F0C5180 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9CF4 7F0C5184 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0F9CF8 7F0C5188 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0F9CFC 7F0C518C 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9D00 7F0C5190 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0F9D04 7F0C5194 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0F9D08 7F0C5198 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) # $a3, 0x8006 +/* 0F9D0C 7F0C519C 24E7BC6C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x4394 +/* 0F9D10 7F0C51A0 AFAF0018 */ sw $t7, 0x18($sp) +/* 0F9D14 7F0C51A4 02202025 */ move $a0, $s1 +/* 0F9D18 7F0C51A8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9D1C 7F0C51AC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9D20 7F0C51B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9D24 7F0C51B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9D28 7F0C51B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9D2C 7F0C51BC AFA00028 */ sw $zero, 0x28($sp) +/* 0F9D30 7F0C51C0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0F9D34 7F0C51C4 0FC2B99B */ jal en_text_write_stuff +/* 0F9D38 7F0C51C8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9D3C 7F0C51CC 1000001E */ b .Ljp7F0C5248 +/* 0F9D40 7F0C51D0 00408825 */ move $s1, $v0 +.Ljp7F0C51D4: +/* 0F9D44 7F0C51D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9D48 7F0C51D8 00000000 */ nop +/* 0F9D4C 7F0C51DC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9D50 7F0C51E0 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9D54 7F0C51E4 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9D58 7F0C51E8 03008025 */ move $s0, $t8 +/* 0F9D5C 7F0C51EC 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 +/* 0F9D60 7F0C51F0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9D64 7F0C51F4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9D68 7F0C51F8 8F390EE0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9D6C 7F0C51FC 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0F9D70 7F0C5200 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0F9D74 7F0C5204 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0F9D78 7F0C5208 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0F9D7C 7F0C520C 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) # $a3, 0x8006 +/* 0F9D80 7F0C5210 24E7BC6C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x4394 +/* 0F9D84 7F0C5214 AFAE0018 */ sw $t6, 0x18($sp) +/* 0F9D88 7F0C5218 AFAC001C */ sw $t4, 0x1c($sp) +/* 0F9D8C 7F0C521C 02202025 */ move $a0, $s1 +/* 0F9D90 7F0C5220 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9D94 7F0C5224 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9D98 7F0C5228 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9D9C 7F0C522C AFA20024 */ sw $v0, 0x24($sp) +/* 0F9DA0 7F0C5230 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9DA4 7F0C5234 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9DA8 7F0C5238 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F9DAC 7F0C523C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9DB0 7F0C5240 AFB90010 */ sw $t9, 0x10($sp) +/* 0F9DB4 7F0C5244 00408825 */ move $s1, $v0 +.Ljp7F0C5248: +/* 0F9DB8 7F0C5248 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0F9DBC 7F0C524C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0F9DC0 7F0C5250 24010003 */ li $at, 3 +/* 0F9DC4 7F0C5254 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0F9DC8 7F0C5258 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F9DCC 7F0C525C 10410003 */ beq $v0, $at, .Ljp7F0C526C +/* 0F9DD0 7F0C5260 24010004 */ li $at, 4 +/* 0F9DD4 7F0C5264 544101AA */ bnel $v0, $at, .Ljp7F0C5910 +/* 0F9DD8 7F0C5268 24010002 */ li $at, 2 +.Ljp7F0C526C: +/* 0F9DDC 7F0C526C 19A0000D */ blez $t5, .Ljp7F0C52A4 +/* 0F9DE0 7F0C5270 00002025 */ move $a0, $zero +/* 0F9DE4 7F0C5274 27A30094 */ addiu $v1, $sp, 0x94 +/* 0F9DE8 7F0C5278 AFA30044 */ sw $v1, 0x44($sp) +.Ljp7F0C527C: +/* 0F9DEC 7F0C527C 0FC31162 */ jal get_points_for_mp_player +/* 0F9DF0 7F0C5280 AFA40090 */ sw $a0, 0x90($sp) +/* 0F9DF4 7F0C5284 8FA30044 */ lw $v1, 0x44($sp) +/* 0F9DF8 7F0C5288 8FA40090 */ lw $a0, 0x90($sp) +/* 0F9DFC 7F0C528C AC620000 */ sw $v0, ($v1) +/* 0F9E00 7F0C5290 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F9E04 7F0C5294 24840001 */ addiu $a0, $a0, 1 +/* 0F9E08 7F0C5298 24630004 */ addiu $v1, $v1, 4 +/* 0F9E0C 7F0C529C 548FFFF7 */ bnel $a0, $t7, .Ljp7F0C527C +/* 0F9E10 7F0C52A0 AFA30044 */ sw $v1, 0x44($sp) +.Ljp7F0C52A4: +/* 0F9E14 7F0C52A4 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0F9E18 7F0C52A8 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9E1C 7F0C52AC 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9E20 7F0C52B0 13000005 */ beqz $t8, .Ljp7F0C52C8 +/* 0F9E24 7F0C52B4 03002025 */ move $a0, $t8 +/* 0F9E28 7F0C52B8 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0F9E2C 7F0C52BC 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9E30 7F0C52C0 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9E34 7F0C52C4 03202025 */ move $a0, $t9 +.Ljp7F0C52C8: +/* 0F9E38 7F0C52C8 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0F9E3C 7F0C52CC 00000000 */ nop +/* 0F9E40 7F0C52D0 10400034 */ beqz $v0, .Ljp7F0C53A4 +/* 0F9E44 7F0C52D4 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9E48 7F0C52D8 0FC31251 */ jal write_playerrank_to_buffer +/* 0F9E4C 7F0C52DC 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9E50 7F0C52E0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9E54 7F0C52E4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9E58 7F0C52E8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F9E5C 7F0C52EC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9E60 7F0C52F0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9E64 7F0C52F4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9E68 7F0C52F8 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9E6C 7F0C52FC AFA00014 */ sw $zero, 0x14($sp) +/* 0F9E70 7F0C5300 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F9E74 7F0C5304 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F9E78 7F0C5308 0C001145 */ jal get_video2_settings_ulx +/* 0F9E7C 7F0C530C 00000000 */ nop +/* 0F9E80 7F0C5310 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F9E84 7F0C5314 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 0F9E88 7F0C5318 004E6021 */ addu $t4, $v0, $t6 +/* 0F9E8C 7F0C531C 000D7843 */ sra $t7, $t5, 1 +/* 0F9E90 7F0C5320 018F2023 */ subu $a0, $t4, $t7 +/* 0F9E94 7F0C5324 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9E98 7F0C5328 0C001149 */ jal get_video2_settings_uly +/* 0F9E9C 7F0C532C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9EA0 7F0C5330 8FB800BC */ lw $t8, 0xbc($sp) +/* 0F9EA4 7F0C5334 0018C843 */ sra $t9, $t8, 1 +/* 0F9EA8 7F0C5338 00595823 */ subu $t3, $v0, $t9 +/* 0F9EAC 7F0C533C 256E0025 */ addiu $t6, $t3, 0x25 +/* 0F9EB0 7F0C5340 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9EB4 7F0C5344 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0F9EB8 7F0C5348 00028400 */ sll $s0, $v0, 0x10 +/* 0F9EBC 7F0C534C 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9EC0 7F0C5350 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9EC4 7F0C5354 01A08025 */ move $s0, $t5 +/* 0F9EC8 7F0C5358 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9ECC 7F0C535C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9ED0 7F0C5360 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9ED4 7F0C5364 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9ED8 7F0C5368 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F9EDC 7F0C536C 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9EE0 7F0C5370 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9EE4 7F0C5374 02202025 */ move $a0, $s1 +/* 0F9EE8 7F0C5378 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9EEC 7F0C537C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9EF0 7F0C5380 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9EF4 7F0C5384 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9EF8 7F0C5388 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9EFC 7F0C538C AFA00024 */ sw $zero, 0x24($sp) +/* 0F9F00 7F0C5390 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9F04 7F0C5394 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9F08 7F0C5398 0FC2B99B */ jal en_text_write_stuff +/* 0F9F0C 7F0C539C AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9F10 7F0C53A0 00408825 */ move $s1, $v0 +.Ljp7F0C53A4: +/* 0F9F14 7F0C53A4 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0F9F18 7F0C53A8 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9F1C 7F0C53AC 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9F20 7F0C53B0 13200005 */ beqz $t9, .Ljp7F0C53C8 +/* 0F9F24 7F0C53B4 03202025 */ move $a0, $t9 +/* 0F9F28 7F0C53B8 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0F9F2C 7F0C53BC 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9F30 7F0C53C0 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0F9F34 7F0C53C4 01602025 */ move $a0, $t3 +.Ljp7F0C53C8: +/* 0F9F38 7F0C53C8 0FC3131F */ jal true_if_displaying_score_in_mp +/* 0F9F3C 7F0C53CC 00000000 */ nop +/* 0F9F40 7F0C53D0 1040014B */ beqz $v0, .Ljp7F0C5900 +/* 0F9F44 7F0C53D4 00000000 */ nop +/* 0F9F48 7F0C53D8 0FC05202 */ jal get_scenario +/* 0F9F4C 7F0C53DC 00000000 */ nop +/* 0F9F50 7F0C53E0 AFA20080 */ sw $v0, 0x80($sp) +/* 0F9F54 7F0C53E4 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9F58 7F0C53E8 3404A01B */ li $a0, 40987 +/* 0F9F5C 7F0C53EC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) # $t6, 0x8004 +/* 0F9F60 7F0C53F0 8DCE0EDC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F9F64 7F0C53F4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F9F68 7F0C53F8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F9F6C 7F0C53FC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9F70 7F0C5400 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9F74 7F0C5404 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9F78 7F0C5408 00403025 */ move $a2, $v0 +/* 0F9F7C 7F0C540C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9F80 7F0C5410 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F9F84 7F0C5414 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F9F88 7F0C5418 0C001145 */ jal get_video2_settings_ulx +/* 0F9F8C 7F0C541C 00000000 */ nop +/* 0F9F90 7F0C5420 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0F9F94 7F0C5424 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9F98 7F0C5428 004D6021 */ addu $t4, $v0, $t5 +/* 0F9F9C 7F0C542C 000FC043 */ sra $t8, $t7, 1 +/* 0F9FA0 7F0C5430 01982023 */ subu $a0, $t4, $t8 +/* 0F9FA4 7F0C5434 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9FA8 7F0C5438 0C001149 */ jal get_video2_settings_uly +/* 0F9FAC 7F0C543C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9FB0 7F0C5440 8FB900BC */ lw $t9, 0xbc($sp) +/* 0F9FB4 7F0C5444 00195843 */ sra $t3, $t9, 1 +/* 0F9FB8 7F0C5448 004B7023 */ subu $t6, $v0, $t3 +/* 0F9FBC 7F0C544C 25CD0035 */ addiu $t5, $t6, 0x35 +/* 0F9FC0 7F0C5450 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9FC4 7F0C5454 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9FC8 7F0C5458 00028400 */ sll $s0, $v0, 0x10 +/* 0F9FCC 7F0C545C 00107C03 */ sra $t7, $s0, 0x10 +/* 0F9FD0 7F0C5460 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9FD4 7F0C5464 01E08025 */ move $s0, $t7 +/* 0F9FD8 7F0C5468 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9FDC 7F0C546C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0F9FE0 7F0C5470 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F9FE4 7F0C5474 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9FE8 7F0C5478 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0F9FEC 7F0C547C 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0F9FF0 7F0C5480 AFB90018 */ sw $t9, 0x18($sp) +/* 0F9FF4 7F0C5484 02202025 */ move $a0, $s1 +/* 0F9FF8 7F0C5488 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9FFC 7F0C548C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA000 7F0C5490 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA004 7F0C5494 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA008 7F0C5498 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA00C 7F0C549C AFA00024 */ sw $zero, 0x24($sp) +/* 0FA010 7F0C54A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA014 7F0C54A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0FA018 7F0C54A8 0FC2B99B */ jal en_text_write_stuff +/* 0FA01C 7F0C54AC AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA020 7F0C54B0 8FA30080 */ lw $v1, 0x80($sp) +/* 0FA024 7F0C54B4 24010005 */ li $at, 5 +/* 0FA028 7F0C54B8 00408825 */ move $s1, $v0 +/* 0FA02C 7F0C54BC 1061000A */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA030 7F0C54C0 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FA034 7F0C54C4 24010006 */ li $at, 6 +/* 0FA038 7F0C54C8 10610007 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA03C 7F0C54CC 24010007 */ li $at, 7 +/* 0FA040 7F0C54D0 10610005 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA044 7F0C54D4 24010002 */ li $at, 2 +/* 0FA048 7F0C54D8 10610003 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA04C 7F0C54DC 24010003 */ li $at, 3 +/* 0FA050 7F0C54E0 14610016 */ bne $v1, $at, .Ljp7F0C553C +/* 0FA054 7F0C54E4 240D0001 */ li $t5, 1 +.Ljp7F0C54E8: +/* 0FA058 7F0C54E8 000B70C0 */ sll $t6, $t3, 3 +/* 0FA05C 7F0C54EC 01CB7023 */ subu $t6, $t6, $t3 +/* 0FA060 7F0C54F0 000E7100 */ sll $t6, $t6, 4 +/* 0FA064 7F0C54F4 3C0D8008 */ lui $t5, %hi(player1_player_data+105) +/* 0FA068 7F0C54F8 01AE6821 */ addu $t5, $t5, $t6 +/* 0FA06C 7F0C54FC 91AD9FC9 */ lbu $t5, %lo(player1_player_data+105)($t5) +/* 0FA070 7F0C5500 24190005 */ li $t9, 5 +/* 0FA074 7F0C5504 240B0004 */ li $t3, 4 +/* 0FA078 7F0C5508 15A00008 */ bnez $t5, .Ljp7F0C552C +/* 0FA07C 7F0C550C 240E0002 */ li $t6, 2 +/* 0FA080 7F0C5510 240F0003 */ li $t7, 3 +/* 0FA084 7F0C5514 240C0002 */ li $t4, 2 +/* 0FA088 7F0C5518 24180004 */ li $t8, 4 +/* 0FA08C 7F0C551C AFAF008C */ sw $t7, 0x8c($sp) +/* 0FA090 7F0C5520 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FA094 7F0C5524 10000008 */ b .Ljp7F0C5548 +/* 0FA098 7F0C5528 AFB80084 */ sw $t8, 0x84($sp) +.Ljp7F0C552C: +/* 0FA09C 7F0C552C AFB9008C */ sw $t9, 0x8c($sp) +/* 0FA0A0 7F0C5530 AFAB0088 */ sw $t3, 0x88($sp) +/* 0FA0A4 7F0C5534 10000004 */ b .Ljp7F0C5548 +/* 0FA0A8 7F0C5538 AFAE0084 */ sw $t6, 0x84($sp) +.Ljp7F0C553C: +/* 0FA0AC 7F0C553C AFAD008C */ sw $t5, 0x8c($sp) +/* 0FA0B0 7F0C5540 AFA00088 */ sw $zero, 0x88($sp) +/* 0FA0B4 7F0C5544 AFA00084 */ sw $zero, 0x84($sp) +.Ljp7F0C5548: +/* 0FA0B8 7F0C5548 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0FA0BC 7F0C554C 24010002 */ li $at, 2 +/* 0FA0C0 7F0C5550 15E1004E */ bne $t7, $at, .Ljp7F0C568C +/* 0FA0C4 7F0C5554 00000000 */ nop +/* 0FA0C8 7F0C5558 0C001145 */ jal get_video2_settings_ulx +/* 0FA0CC 7F0C555C 00000000 */ nop +/* 0FA0D0 7F0C5560 00028400 */ sll $s0, $v0, 0x10 +/* 0FA0D4 7F0C5564 00106403 */ sra $t4, $s0, 0x10 +/* 0FA0D8 7F0C5568 0C001149 */ jal get_video2_settings_uly +/* 0FA0DC 7F0C556C 01808025 */ move $s0, $t4 +/* 0FA0E0 7F0C5570 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA0E4 7F0C5574 00024400 */ sll $t0, $v0, 0x10 +/* 0FA0E8 7F0C5578 0008C403 */ sra $t8, $t0, 0x10 +/* 0FA0EC 7F0C557C 14600004 */ bnez $v1, .Ljp7F0C5590 +/* 0FA0F0 7F0C5580 03004025 */ move $t0, $t8 +/* 0FA0F4 7F0C5584 8FB9008C */ lw $t9, 0x8c($sp) +/* 0FA0F8 7F0C5588 1000000F */ b .Ljp7F0C55C8 +/* 0FA0FC 7F0C558C AFB90050 */ sw $t9, 0x50($sp) +.Ljp7F0C5590: +/* 0FA100 7F0C5590 000370C0 */ sll $t6, $v1, 3 +/* 0FA104 7F0C5594 01C37023 */ subu $t6, $t6, $v1 +/* 0FA108 7F0C5598 000E7100 */ sll $t6, $t6, 4 +/* 0FA10C 7F0C559C 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x69) +/* 0FA110 7F0C55A0 01AE6821 */ addu $t5, $t5, $t6 +/* 0FA114 7F0C55A4 3C0B8008 */ lui $t3, %hi(player1_player_data + 0x69) # $t3, 0x8008 +/* 0FA118 7F0C55A8 916B9FC9 */ lbu $t3, %lo(player1_player_data + 0x69)($t3) +/* 0FA11C 7F0C55AC 91AD9FC9 */ lbu $t5, %lo(player1_player_data + 0x69)($t5) +/* 0FA120 7F0C55B0 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA124 7F0C55B4 156D0003 */ bne $t3, $t5, .Ljp7F0C55C4 +/* 0FA128 7F0C55B8 00000000 */ nop +/* 0FA12C 7F0C55BC 10000001 */ b .Ljp7F0C55C4 +/* 0FA130 7F0C55C0 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C55C4: +/* 0FA134 7F0C55C4 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C55C8: +/* 0FA138 7F0C55C8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA13C 7F0C55CC 8FAC0050 */ lw $t4, 0x50($sp) +/* 0FA140 7F0C55D0 02202025 */ move $a0, $s1 +/* 0FA144 7F0C55D4 020F2821 */ addu $a1, $s0, $t7 +/* 0FA148 7F0C55D8 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA14C 7F0C55DC 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA150 7F0C55E0 8FA70094 */ lw $a3, 0x94($sp) +/* 0FA154 7F0C55E4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA158 7F0C55E8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA15C 7F0C55EC 0C001145 */ jal get_video2_settings_ulx +/* 0FA160 7F0C55F0 00408825 */ move $s1, $v0 +/* 0FA164 7F0C55F4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA168 7F0C55F8 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA16C 7F0C55FC 0C001149 */ jal get_video2_settings_uly +/* 0FA170 7F0C5600 03008025 */ move $s0, $t8 +/* 0FA174 7F0C5604 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA178 7F0C5608 00024400 */ sll $t0, $v0, 0x10 +/* 0FA17C 7F0C560C 0008CC03 */ sra $t9, $t0, 0x10 +/* 0FA180 7F0C5610 24010001 */ li $at, 1 +/* 0FA184 7F0C5614 14610004 */ bne $v1, $at, .Ljp7F0C5628 +/* 0FA188 7F0C5618 03204025 */ move $t0, $t9 +/* 0FA18C 7F0C561C 8FAE008C */ lw $t6, 0x8c($sp) +/* 0FA190 7F0C5620 1000000F */ b .Ljp7F0C5660 +/* 0FA194 7F0C5624 AFAE0050 */ sw $t6, 0x50($sp) +.Ljp7F0C5628: +/* 0FA198 7F0C5628 000368C0 */ sll $t5, $v1, 3 +/* 0FA19C 7F0C562C 01A36823 */ subu $t5, $t5, $v1 +/* 0FA1A0 7F0C5630 3C028008 */ lui $v0, %hi(player1_player_data) # $v0, 0x8008 +/* 0FA1A4 7F0C5634 24429F60 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x60a0 +/* 0FA1A8 7F0C5638 000D6900 */ sll $t5, $t5, 4 +/* 0FA1AC 7F0C563C 004D7821 */ addu $t7, $v0, $t5 +/* 0FA1B0 7F0C5640 91EC0069 */ lbu $t4, 0x69($t7) +/* 0FA1B4 7F0C5644 904B00D9 */ lbu $t3, 0xd9($v0) +/* 0FA1B8 7F0C5648 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA1BC 7F0C564C 156C0003 */ bne $t3, $t4, .Ljp7F0C565C +/* 0FA1C0 7F0C5650 00000000 */ nop +/* 0FA1C4 7F0C5654 10000001 */ b .Ljp7F0C565C +/* 0FA1C8 7F0C5658 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C565C: +/* 0FA1CC 7F0C565C AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C5660: +/* 0FA1D0 7F0C5660 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FA1D4 7F0C5664 8FB90050 */ lw $t9, 0x50($sp) +/* 0FA1D8 7F0C5668 02202025 */ move $a0, $s1 +/* 0FA1DC 7F0C566C 02182821 */ addu $a1, $s0, $t8 +/* 0FA1E0 7F0C5670 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA1E4 7F0C5674 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA1E8 7F0C5678 8FA70098 */ lw $a3, 0x98($sp) +/* 0FA1EC 7F0C567C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA1F0 7F0C5680 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA1F4 7F0C5684 1000009E */ b .Ljp7F0C5900 +/* 0FA1F8 7F0C5688 00408825 */ move $s1, $v0 +.Ljp7F0C568C: +/* 0FA1FC 7F0C568C 0C001145 */ jal get_video2_settings_ulx +/* 0FA200 7F0C5690 00000000 */ nop +/* 0FA204 7F0C5694 00028400 */ sll $s0, $v0, 0x10 +/* 0FA208 7F0C5698 00107403 */ sra $t6, $s0, 0x10 +/* 0FA20C 7F0C569C 0C001149 */ jal get_video2_settings_uly +/* 0FA210 7F0C56A0 01C08025 */ move $s0, $t6 +/* 0FA214 7F0C56A4 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA218 7F0C56A8 00024400 */ sll $t0, $v0, 0x10 +/* 0FA21C 7F0C56AC 00086C03 */ sra $t5, $t0, 0x10 +/* 0FA220 7F0C56B0 14600004 */ bnez $v1, .Ljp7F0C56C4 +/* 0FA224 7F0C56B4 01A04025 */ move $t0, $t5 +/* 0FA228 7F0C56B8 8FAF008C */ lw $t7, 0x8c($sp) +/* 0FA22C 7F0C56BC 1000000F */ b .Ljp7F0C56FC +/* 0FA230 7F0C56C0 AFAF0050 */ sw $t7, 0x50($sp) +.Ljp7F0C56C4: +/* 0FA234 7F0C56C4 000360C0 */ sll $t4, $v1, 3 +/* 0FA238 7F0C56C8 01836023 */ subu $t4, $t4, $v1 +/* 0FA23C 7F0C56CC 000C6100 */ sll $t4, $t4, 4 +/* 0FA240 7F0C56D0 3C188008 */ lui $t8, %hi(player1_player_data + 0x69) +/* 0FA244 7F0C56D4 030CC021 */ addu $t8, $t8, $t4 +/* 0FA248 7F0C56D8 3C0B8008 */ lui $t3, %hi(player1_player_data + 0x69) # $t3, 0x8008 +/* 0FA24C 7F0C56DC 916B9FC9 */ lbu $t3, %lo(player1_player_data + 0x69)($t3) +/* 0FA250 7F0C56E0 93189FC9 */ lbu $t8, %lo(player1_player_data + 0x69)($t8) +/* 0FA254 7F0C56E4 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA258 7F0C56E8 15780003 */ bne $t3, $t8, .Ljp7F0C56F8 +/* 0FA25C 7F0C56EC 00000000 */ nop +/* 0FA260 7F0C56F0 10000001 */ b .Ljp7F0C56F8 +/* 0FA264 7F0C56F4 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C56F8: +/* 0FA268 7F0C56F8 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C56FC: +/* 0FA26C 7F0C56FC 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FA270 7F0C5700 8FAE0050 */ lw $t6, 0x50($sp) +/* 0FA274 7F0C5704 02202025 */ move $a0, $s1 +/* 0FA278 7F0C5708 02192821 */ addu $a1, $s0, $t9 +/* 0FA27C 7F0C570C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA280 7F0C5710 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA284 7F0C5714 8FA70094 */ lw $a3, 0x94($sp) +/* 0FA288 7F0C5718 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA28C 7F0C571C AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA290 7F0C5720 0C001145 */ jal get_video2_settings_ulx +/* 0FA294 7F0C5724 00408825 */ move $s1, $v0 +/* 0FA298 7F0C5728 00028400 */ sll $s0, $v0, 0x10 +/* 0FA29C 7F0C572C 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA2A0 7F0C5730 0C001149 */ jal get_video2_settings_uly +/* 0FA2A4 7F0C5734 01A08025 */ move $s0, $t5 +/* 0FA2A8 7F0C5738 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA2AC 7F0C573C 00024400 */ sll $t0, $v0, 0x10 +/* 0FA2B0 7F0C5740 00087C03 */ sra $t7, $t0, 0x10 +/* 0FA2B4 7F0C5744 24010001 */ li $at, 1 +/* 0FA2B8 7F0C5748 14610004 */ bne $v1, $at, .Ljp7F0C575C +/* 0FA2BC 7F0C574C 01E04025 */ move $t0, $t7 +/* 0FA2C0 7F0C5750 8FAC008C */ lw $t4, 0x8c($sp) +/* 0FA2C4 7F0C5754 1000000F */ b .Ljp7F0C5794 +/* 0FA2C8 7F0C5758 AFAC0050 */ sw $t4, 0x50($sp) +.Ljp7F0C575C: +/* 0FA2CC 7F0C575C 0003C0C0 */ sll $t8, $v1, 3 +/* 0FA2D0 7F0C5760 0303C023 */ subu $t8, $t8, $v1 +/* 0FA2D4 7F0C5764 0018C100 */ sll $t8, $t8, 4 +/* 0FA2D8 7F0C5768 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0FA2DC 7F0C576C 0338C821 */ addu $t9, $t9, $t8 +/* 0FA2E0 7F0C5770 3C0B8008 */ lui $t3, %hi(player2_player_data + 0x69) # $t3, 0x8008 +/* 0FA2E4 7F0C5774 916BA039 */ lbu $t3, %lo(player2_player_data + 0x69)($t3) +/* 0FA2E8 7F0C5778 93399FC9 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0FA2EC 7F0C577C 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA2F0 7F0C5780 15790003 */ bne $t3, $t9, .Ljp7F0C5790 +/* 0FA2F4 7F0C5784 00000000 */ nop +/* 0FA2F8 7F0C5788 10000001 */ b .Ljp7F0C5790 +/* 0FA2FC 7F0C578C 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C5790: +/* 0FA300 7F0C5790 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C5794: +/* 0FA304 7F0C5794 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA308 7F0C5798 8FAD0050 */ lw $t5, 0x50($sp) +/* 0FA30C 7F0C579C 02202025 */ move $a0, $s1 +/* 0FA310 7F0C57A0 020E2821 */ addu $a1, $s0, $t6 +/* 0FA314 7F0C57A4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA318 7F0C57A8 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA31C 7F0C57AC 8FA70098 */ lw $a3, 0x98($sp) +/* 0FA320 7F0C57B0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA324 7F0C57B4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA328 7F0C57B8 0C001145 */ jal get_video2_settings_ulx +/* 0FA32C 7F0C57BC 00408825 */ move $s1, $v0 +/* 0FA330 7F0C57C0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA334 7F0C57C4 00107C03 */ sra $t7, $s0, 0x10 +/* 0FA338 7F0C57C8 0C001149 */ jal get_video2_settings_uly +/* 0FA33C 7F0C57CC 01E08025 */ move $s0, $t7 +/* 0FA340 7F0C57D0 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA344 7F0C57D4 00024400 */ sll $t0, $v0, 0x10 +/* 0FA348 7F0C57D8 00086403 */ sra $t4, $t0, 0x10 +/* 0FA34C 7F0C57DC 24010002 */ li $at, 2 +/* 0FA350 7F0C57E0 14610004 */ bne $v1, $at, .Ljp7F0C57F4 +/* 0FA354 7F0C57E4 01804025 */ move $t0, $t4 +/* 0FA358 7F0C57E8 8FB8008C */ lw $t8, 0x8c($sp) +/* 0FA35C 7F0C57EC 1000000F */ b .Ljp7F0C582C +/* 0FA360 7F0C57F0 AFB80050 */ sw $t8, 0x50($sp) +.Ljp7F0C57F4: +/* 0FA364 7F0C57F4 0003C8C0 */ sll $t9, $v1, 3 +/* 0FA368 7F0C57F8 0323C823 */ subu $t9, $t9, $v1 +/* 0FA36C 7F0C57FC 0019C900 */ sll $t9, $t9, 4 +/* 0FA370 7F0C5800 3C0E8008 */ lui $t6, %hi(player1_player_data + 0x69) +/* 0FA374 7F0C5804 01D97021 */ addu $t6, $t6, $t9 +/* 0FA378 7F0C5808 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x69) # $t3, 0x8008 +/* 0FA37C 7F0C580C 916BA0A9 */ lbu $t3, %lo(player3_player_data + 0x69)($t3) +/* 0FA380 7F0C5810 91CE9FC9 */ lbu $t6, %lo(player1_player_data + 0x69)($t6) +/* 0FA384 7F0C5814 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA388 7F0C5818 156E0003 */ bne $t3, $t6, .Ljp7F0C5828 +/* 0FA38C 7F0C581C 00000000 */ nop +/* 0FA390 7F0C5820 10000001 */ b .Ljp7F0C5828 +/* 0FA394 7F0C5824 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C5828: +/* 0FA398 7F0C5828 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C582C: +/* 0FA39C 7F0C582C 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA3A0 7F0C5830 8FAF0050 */ lw $t7, 0x50($sp) +/* 0FA3A4 7F0C5834 02202025 */ move $a0, $s1 +/* 0FA3A8 7F0C5838 020D2821 */ addu $a1, $s0, $t5 +/* 0FA3AC 7F0C583C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA3B0 7F0C5840 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA3B4 7F0C5844 8FA7009C */ lw $a3, 0x9c($sp) +/* 0FA3B8 7F0C5848 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA3BC 7F0C584C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA3C0 7F0C5850 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0FA3C4 7F0C5854 24010004 */ li $at, 4 +/* 0FA3C8 7F0C5858 00408825 */ move $s1, $v0 +/* 0FA3CC 7F0C585C 15810028 */ bne $t4, $at, .Ljp7F0C5900 +/* 0FA3D0 7F0C5860 00000000 */ nop +/* 0FA3D4 7F0C5864 0C001145 */ jal get_video2_settings_ulx +/* 0FA3D8 7F0C5868 00000000 */ nop +/* 0FA3DC 7F0C586C 00028400 */ sll $s0, $v0, 0x10 +/* 0FA3E0 7F0C5870 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA3E4 7F0C5874 0C001149 */ jal get_video2_settings_uly +/* 0FA3E8 7F0C5878 03008025 */ move $s0, $t8 +/* 0FA3EC 7F0C587C 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA3F0 7F0C5880 00024400 */ sll $t0, $v0, 0x10 +/* 0FA3F4 7F0C5884 0008CC03 */ sra $t9, $t0, 0x10 +/* 0FA3F8 7F0C5888 24010003 */ li $at, 3 +/* 0FA3FC 7F0C588C 14610004 */ bne $v1, $at, .Ljp7F0C58A0 +/* 0FA400 7F0C5890 03204025 */ move $t0, $t9 +/* 0FA404 7F0C5894 8FAB008C */ lw $t3, 0x8c($sp) +/* 0FA408 7F0C5898 1000000F */ b .Ljp7F0C58D8 +/* 0FA40C 7F0C589C AFAB0050 */ sw $t3, 0x50($sp) +.Ljp7F0C58A0: +/* 0FA410 7F0C58A0 000368C0 */ sll $t5, $v1, 3 +/* 0FA414 7F0C58A4 01A36823 */ subu $t5, $t5, $v1 +/* 0FA418 7F0C58A8 3C028008 */ lui $v0, %hi(player1_player_data) # $v0, 0x8008 +/* 0FA41C 7F0C58AC 24429F60 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x60a0 +/* 0FA420 7F0C58B0 000D6900 */ sll $t5, $t5, 4 +/* 0FA424 7F0C58B4 004D7821 */ addu $t7, $v0, $t5 +/* 0FA428 7F0C58B8 91EC0069 */ lbu $t4, 0x69($t7) +/* 0FA42C 7F0C58BC 904E01B9 */ lbu $t6, 0x1b9($v0) +/* 0FA430 7F0C58C0 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA434 7F0C58C4 15CC0003 */ bne $t6, $t4, .Ljp7F0C58D4 +/* 0FA438 7F0C58C8 00000000 */ nop +/* 0FA43C 7F0C58CC 10000001 */ b .Ljp7F0C58D4 +/* 0FA440 7F0C58D0 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C58D4: +/* 0FA444 7F0C58D4 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C58D8: +/* 0FA448 7F0C58D8 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FA44C 7F0C58DC 8FB90050 */ lw $t9, 0x50($sp) +/* 0FA450 7F0C58E0 02202025 */ move $a0, $s1 +/* 0FA454 7F0C58E4 02182821 */ addu $a1, $s0, $t8 +/* 0FA458 7F0C58E8 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA45C 7F0C58EC 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA460 7F0C58F0 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0FA464 7F0C58F4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA468 7F0C58F8 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA46C 7F0C58FC 00408825 */ move $s1, $v0 +.Ljp7F0C5900: +/* 0FA470 7F0C5900 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FA474 7F0C5904 100003BB */ b .Ljp7F0C67F4 +/* 0FA478 7F0C5908 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA47C 7F0C590C 24010002 */ li $at, 2 +.Ljp7F0C5910: +/* 0FA480 7F0C5910 1441011C */ bne $v0, $at, .Ljp7F0C5D84 +/* 0FA484 7F0C5914 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0FA488 7F0C5918 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0FA48C 7F0C591C 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0FA490 7F0C5920 11600005 */ beqz $t3, .Ljp7F0C5938 +/* 0FA494 7F0C5924 01602025 */ move $a0, $t3 +/* 0FA498 7F0C5928 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0FA49C 7F0C592C 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0FA4A0 7F0C5930 2C8D0001 */ sltiu $t5, $a0, 1 +/* 0FA4A4 7F0C5934 01A02025 */ move $a0, $t5 +.Ljp7F0C5938: +/* 0FA4A8 7F0C5938 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0FA4AC 7F0C593C 00000000 */ nop +/* 0FA4B0 7F0C5940 10400034 */ beqz $v0, .Ljp7F0C5A14 +/* 0FA4B4 7F0C5944 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA4B8 7F0C5948 0FC31251 */ jal write_playerrank_to_buffer +/* 0FA4BC 7F0C594C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0FA4C0 7F0C5950 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FA4C4 7F0C5954 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FA4C8 7F0C5958 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA4CC 7F0C595C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA4D0 7F0C5960 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA4D4 7F0C5964 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA4D8 7F0C5968 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA4DC 7F0C596C AFA00014 */ sw $zero, 0x14($sp) +/* 0FA4E0 7F0C5970 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA4E4 7F0C5974 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA4E8 7F0C5978 0C001145 */ jal get_video2_settings_ulx +/* 0FA4EC 7F0C597C 00000000 */ nop +/* 0FA4F0 7F0C5980 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA4F4 7F0C5984 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA4F8 7F0C5988 004E6021 */ addu $t4, $v0, $t6 +/* 0FA4FC 7F0C598C 0018C843 */ sra $t9, $t8, 1 +/* 0FA500 7F0C5990 01992023 */ subu $a0, $t4, $t9 +/* 0FA504 7F0C5994 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA508 7F0C5998 0C001149 */ jal get_video2_settings_uly +/* 0FA50C 7F0C599C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA510 7F0C59A0 8FAB00BC */ lw $t3, 0xbc($sp) +/* 0FA514 7F0C59A4 000B6843 */ sra $t5, $t3, 1 +/* 0FA518 7F0C59A8 004D7823 */ subu $t7, $v0, $t5 +/* 0FA51C 7F0C59AC 25EE0025 */ addiu $t6, $t7, 0x25 +/* 0FA520 7F0C59B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA524 7F0C59B4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FA528 7F0C59B8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA52C 7F0C59BC 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA530 7F0C59C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA534 7F0C59C4 03008025 */ move $s0, $t8 +/* 0FA538 7F0C59C8 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FA53C 7F0C59CC 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FA540 7F0C59D0 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FA544 7F0C59D4 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FA548 7F0C59D8 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0FA54C 7F0C59DC 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0FA550 7F0C59E0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0FA554 7F0C59E4 02202025 */ move $a0, $s1 +/* 0FA558 7F0C59E8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA55C 7F0C59EC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA560 7F0C59F0 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA564 7F0C59F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA568 7F0C59F8 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA56C 7F0C59FC AFA00024 */ sw $zero, 0x24($sp) +/* 0FA570 7F0C5A00 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA574 7F0C5A04 AFB90014 */ sw $t9, 0x14($sp) +/* 0FA578 7F0C5A08 0FC2B99B */ jal en_text_write_stuff +/* 0FA57C 7F0C5A0C AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA580 7F0C5A10 00408825 */ move $s1, $v0 +.Ljp7F0C5A14: +/* 0FA584 7F0C5A14 0FC30AA2 */ jal get_textptr_for_textID +/* 0FA588 7F0C5A18 3404A01C */ li $a0, 40988 +/* 0FA58C 7F0C5A1C 3404A01D */ li $a0, 40989 +/* 0FA590 7F0C5A20 0FC30AA2 */ jal get_textptr_for_textID +/* 0FA594 7F0C5A24 AFA2004C */ sw $v0, 0x4c($sp) +/* 0FA598 7F0C5A28 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0FA59C 7F0C5A2C 3C058006 */ lui $a1, %hi(ascii_pnum_KILLS) # $a1, 0x8006 +/* 0FA5A0 7F0C5A30 24A5BC70 */ addiu $a1, %lo(ascii_pnum_KILLS) # addiu $a1, $a1, -0x4390 +/* 0FA5A4 7F0C5A34 8FA6004C */ lw $a2, 0x4c($sp) +/* 0FA5A8 7F0C5A38 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA5AC 7F0C5A3C AFA20010 */ sw $v0, 0x10($sp) +/* 0FA5B0 7F0C5A40 0C002B29 */ jal sprintf +/* 0FA5B4 7F0C5A44 24E70001 */ addiu $a3, $a3, 1 +/* 0FA5B8 7F0C5A48 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FA5BC 7F0C5A4C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA5C0 7F0C5A50 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA5C4 7F0C5A54 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA5C8 7F0C5A58 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA5CC 7F0C5A5C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA5D0 7F0C5A60 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA5D4 7F0C5A64 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA5D8 7F0C5A68 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA5DC 7F0C5A6C AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA5E0 7F0C5A70 0C001145 */ jal get_video2_settings_ulx +/* 0FA5E4 7F0C5A74 00000000 */ nop +/* 0FA5E8 7F0C5A78 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA5EC 7F0C5A7C 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA5F0 7F0C5A80 004F7021 */ addu $t6, $v0, $t7 +/* 0FA5F4 7F0C5A84 00186043 */ sra $t4, $t8, 1 +/* 0FA5F8 7F0C5A88 01CC2023 */ subu $a0, $t6, $t4 +/* 0FA5FC 7F0C5A8C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA600 7F0C5A90 0C001149 */ jal get_video2_settings_uly +/* 0FA604 7F0C5A94 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA608 7F0C5A98 8FB900BC */ lw $t9, 0xbc($sp) +/* 0FA60C 7F0C5A9C 00195843 */ sra $t3, $t9, 1 +/* 0FA610 7F0C5AA0 004B6823 */ subu $t5, $v0, $t3 +/* 0FA614 7F0C5AA4 25AF0035 */ addiu $t7, $t5, 0x35 +/* 0FA618 7F0C5AA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA61C 7F0C5AAC AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA620 7F0C5AB0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA624 7F0C5AB4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA628 7F0C5AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA62C 7F0C5ABC 03008025 */ move $s0, $t8 +/* 0FA630 7F0C5AC0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0FA634 7F0C5AC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FA638 7F0C5AC8 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA63C 7F0C5ACC 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FA640 7F0C5AD0 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA644 7F0C5AD4 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA648 7F0C5AD8 AFB90018 */ sw $t9, 0x18($sp) +/* 0FA64C 7F0C5ADC 02202025 */ move $a0, $s1 +/* 0FA650 7F0C5AE0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA654 7F0C5AE4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA658 7F0C5AE8 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA65C 7F0C5AEC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA660 7F0C5AF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA664 7F0C5AF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA668 7F0C5AF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA66C 7F0C5AFC AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA670 7F0C5B00 0FC2B99B */ jal en_text_write_stuff +/* 0FA674 7F0C5B04 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA678 7F0C5B08 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0FA67C 7F0C5B0C 00408825 */ move $s1, $v0 +/* 0FA680 7F0C5B10 24010002 */ li $at, 2 +/* 0FA684 7F0C5B14 15610033 */ bne $t3, $at, .Ljp7F0C5BE4 +/* 0FA688 7F0C5B18 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA68C 7F0C5B1C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA690 7F0C5B20 50400018 */ beql $v0, $zero, .Ljp7F0C5B84 +/* 0FA694 7F0C5B24 24010001 */ li $at, 1 +/* 0FA698 7F0C5B28 0C001145 */ jal get_video2_settings_ulx +/* 0FA69C 7F0C5B2C 00000000 */ nop +/* 0FA6A0 7F0C5B30 00028400 */ sll $s0, $v0, 0x10 +/* 0FA6A4 7F0C5B34 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA6A8 7F0C5B38 0C001149 */ jal get_video2_settings_uly +/* 0FA6AC 7F0C5B3C 01A08025 */ move $s0, $t5 +/* 0FA6B0 7F0C5B40 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FA6B4 7F0C5B44 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA6B8 7F0C5B48 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA6BC 7F0C5B4C 001870C0 */ sll $t6, $t8, 3 +/* 0FA6C0 7F0C5B50 01D87023 */ subu $t6, $t6, $t8 +/* 0FA6C4 7F0C5B54 000E7100 */ sll $t6, $t6, 4 +/* 0FA6C8 7F0C5B58 00EE3821 */ addu $a3, $a3, $t6 +/* 0FA6CC 7F0C5B5C 020F2821 */ addu $a1, $s0, $t7 +/* 0FA6D0 7F0C5B60 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA6D4 7F0C5B64 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA6D8 7F0C5B68 02202025 */ move $a0, $s1 +/* 0FA6DC 7F0C5B6C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA6E0 7F0C5B70 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA6E4 7F0C5B74 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA6E8 7F0C5B78 00408825 */ move $s1, $v0 +/* 0FA6EC 7F0C5B7C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA6F0 7F0C5B80 24010001 */ li $at, 1 +.Ljp7F0C5B84: +/* 0FA6F4 7F0C5B84 1041007C */ beq $v0, $at, .Ljp7F0C5D78 +/* 0FA6F8 7F0C5B88 000260C0 */ sll $t4, $v0, 3 +/* 0FA6FC 7F0C5B8C 01826023 */ subu $t4, $t4, $v0 +/* 0FA700 7F0C5B90 3C198008 */ lui $t9, %hi(player1_player_data) # $t9, 0x8008 +/* 0FA704 7F0C5B94 27399F60 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x60a0 +/* 0FA708 7F0C5B98 000C6100 */ sll $t4, $t4, 4 +/* 0FA70C 7F0C5B9C 01995821 */ addu $t3, $t4, $t9 +/* 0FA710 7F0C5BA0 0C001145 */ jal get_video2_settings_ulx +/* 0FA714 7F0C5BA4 AFAB0044 */ sw $t3, 0x44($sp) +/* 0FA718 7F0C5BA8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA71C 7F0C5BAC 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA720 7F0C5BB0 0C001149 */ jal get_video2_settings_uly +/* 0FA724 7F0C5BB4 01A08025 */ move $s0, $t5 +/* 0FA728 7F0C5BB8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA72C 7F0C5BBC 8FB80044 */ lw $t8, 0x44($sp) +/* 0FA730 7F0C5BC0 02202025 */ move $a0, $s1 +/* 0FA734 7F0C5BC4 020F2821 */ addu $a1, $s0, $t7 +/* 0FA738 7F0C5BC8 8F070028 */ lw $a3, 0x28($t8) +/* 0FA73C 7F0C5BCC AFA00010 */ sw $zero, 0x10($sp) +/* 0FA740 7F0C5BD0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA744 7F0C5BD4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA748 7F0C5BD8 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA74C 7F0C5BDC 10000066 */ b .Ljp7F0C5D78 +/* 0FA750 7F0C5BE0 00408825 */ move $s1, $v0 +.Ljp7F0C5BE4: +/* 0FA754 7F0C5BE4 50400018 */ beql $v0, $zero, .Ljp7F0C5C48 +/* 0FA758 7F0C5BE8 24010001 */ li $at, 1 +/* 0FA75C 7F0C5BEC 0C001145 */ jal get_video2_settings_ulx +/* 0FA760 7F0C5BF0 00000000 */ nop +/* 0FA764 7F0C5BF4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA768 7F0C5BF8 00107403 */ sra $t6, $s0, 0x10 +/* 0FA76C 7F0C5BFC 0C001149 */ jal get_video2_settings_uly +/* 0FA770 7F0C5C00 01C08025 */ move $s0, $t6 +/* 0FA774 7F0C5C04 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA778 7F0C5C08 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA77C 7F0C5C0C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA780 7F0C5C10 001958C0 */ sll $t3, $t9, 3 +/* 0FA784 7F0C5C14 01795823 */ subu $t3, $t3, $t9 +/* 0FA788 7F0C5C18 000B5900 */ sll $t3, $t3, 4 +/* 0FA78C 7F0C5C1C 00EB3821 */ addu $a3, $a3, $t3 +/* 0FA790 7F0C5C20 020C2821 */ addu $a1, $s0, $t4 +/* 0FA794 7F0C5C24 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA798 7F0C5C28 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA79C 7F0C5C2C 02202025 */ move $a0, $s1 +/* 0FA7A0 7F0C5C30 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA7A4 7F0C5C34 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA7A8 7F0C5C38 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA7AC 7F0C5C3C 00408825 */ move $s1, $v0 +/* 0FA7B0 7F0C5C40 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA7B4 7F0C5C44 24010001 */ li $at, 1 +.Ljp7F0C5C48: +/* 0FA7B8 7F0C5C48 10410017 */ beq $v0, $at, .Ljp7F0C5CA8 +/* 0FA7BC 7F0C5C4C 000268C0 */ sll $t5, $v0, 3 +/* 0FA7C0 7F0C5C50 01A26823 */ subu $t5, $t5, $v0 +/* 0FA7C4 7F0C5C54 3C0F8008 */ lui $t7, %hi(player1_player_data) # $t7, 0x8008 +/* 0FA7C8 7F0C5C58 25EF9F60 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x60a0 +/* 0FA7CC 7F0C5C5C 000D6900 */ sll $t5, $t5, 4 +/* 0FA7D0 7F0C5C60 01AFC021 */ addu $t8, $t5, $t7 +/* 0FA7D4 7F0C5C64 0C001145 */ jal get_video2_settings_ulx +/* 0FA7D8 7F0C5C68 AFB80044 */ sw $t8, 0x44($sp) +/* 0FA7DC 7F0C5C6C 00028400 */ sll $s0, $v0, 0x10 +/* 0FA7E0 7F0C5C70 00107403 */ sra $t6, $s0, 0x10 +/* 0FA7E4 7F0C5C74 0C001149 */ jal get_video2_settings_uly +/* 0FA7E8 7F0C5C78 01C08025 */ move $s0, $t6 +/* 0FA7EC 7F0C5C7C 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA7F0 7F0C5C80 8FB90044 */ lw $t9, 0x44($sp) +/* 0FA7F4 7F0C5C84 02202025 */ move $a0, $s1 +/* 0FA7F8 7F0C5C88 020C2821 */ addu $a1, $s0, $t4 +/* 0FA7FC 7F0C5C8C 8F270028 */ lw $a3, 0x28($t9) +/* 0FA800 7F0C5C90 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA804 7F0C5C94 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA808 7F0C5C98 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA80C 7F0C5C9C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA810 7F0C5CA0 00408825 */ move $s1, $v0 +/* 0FA814 7F0C5CA4 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5CA8: +/* 0FA818 7F0C5CA8 24010002 */ li $at, 2 +/* 0FA81C 7F0C5CAC 10410017 */ beq $v0, $at, .Ljp7F0C5D0C +/* 0FA820 7F0C5CB0 000258C0 */ sll $t3, $v0, 3 +/* 0FA824 7F0C5CB4 01625823 */ subu $t3, $t3, $v0 +/* 0FA828 7F0C5CB8 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FA82C 7F0C5CBC 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FA830 7F0C5CC0 000B5900 */ sll $t3, $t3, 4 +/* 0FA834 7F0C5CC4 016D7821 */ addu $t7, $t3, $t5 +/* 0FA838 7F0C5CC8 0C001145 */ jal get_video2_settings_ulx +/* 0FA83C 7F0C5CCC AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA840 7F0C5CD0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA844 7F0C5CD4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA848 7F0C5CD8 0C001149 */ jal get_video2_settings_uly +/* 0FA84C 7F0C5CDC 03008025 */ move $s0, $t8 +/* 0FA850 7F0C5CE0 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA854 7F0C5CE4 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA858 7F0C5CE8 02202025 */ move $a0, $s1 +/* 0FA85C 7F0C5CEC 020E2821 */ addu $a1, $s0, $t6 +/* 0FA860 7F0C5CF0 8D87002C */ lw $a3, 0x2c($t4) +/* 0FA864 7F0C5CF4 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA868 7F0C5CF8 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA86C 7F0C5CFC 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA870 7F0C5D00 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA874 7F0C5D04 00408825 */ move $s1, $v0 +/* 0FA878 7F0C5D08 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5D0C: +/* 0FA87C 7F0C5D0C 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0FA880 7F0C5D10 24010004 */ li $at, 4 +/* 0FA884 7F0C5D14 17210018 */ bne $t9, $at, .Ljp7F0C5D78 +/* 0FA888 7F0C5D18 24010003 */ li $at, 3 +/* 0FA88C 7F0C5D1C 10410016 */ beq $v0, $at, .Ljp7F0C5D78 +/* 0FA890 7F0C5D20 000258C0 */ sll $t3, $v0, 3 +/* 0FA894 7F0C5D24 01625823 */ subu $t3, $t3, $v0 +/* 0FA898 7F0C5D28 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FA89C 7F0C5D2C 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FA8A0 7F0C5D30 000B5900 */ sll $t3, $t3, 4 +/* 0FA8A4 7F0C5D34 016D7821 */ addu $t7, $t3, $t5 +/* 0FA8A8 7F0C5D38 0C001145 */ jal get_video2_settings_ulx +/* 0FA8AC 7F0C5D3C AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA8B0 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 +/* 0FA8B4 7F0C5D44 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA8B8 7F0C5D48 0C001149 */ jal get_video2_settings_uly +/* 0FA8BC 7F0C5D4C 03008025 */ move $s0, $t8 +/* 0FA8C0 7F0C5D50 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA8C4 7F0C5D54 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA8C8 7F0C5D58 02202025 */ move $a0, $s1 +/* 0FA8CC 7F0C5D5C 020E2821 */ addu $a1, $s0, $t6 +/* 0FA8D0 7F0C5D60 8D870030 */ lw $a3, 0x30($t4) +/* 0FA8D4 7F0C5D64 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA8D8 7F0C5D68 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA8DC 7F0C5D6C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA8E0 7F0C5D70 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA8E4 7F0C5D74 00408825 */ move $s1, $v0 +.Ljp7F0C5D78: +/* 0FA8E8 7F0C5D78 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FA8EC 7F0C5D7C 1000029D */ b .Ljp7F0C67F4 +/* 0FA8F0 7F0C5D80 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F0C5D84: +/* 0FA8F4 7F0C5D84 24010001 */ li $at, 1 +/* 0FA8F8 7F0C5D88 144101A9 */ bne $v0, $at, .Ljp7F0C6430 +/* 0FA8FC 7F0C5D8C 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0FA900 7F0C5D90 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0FA904 7F0C5D94 2C990001 */ sltiu $t9, $a0, 1 +/* 0FA908 7F0C5D98 13200005 */ beqz $t9, .Ljp7F0C5DB0 +/* 0FA90C 7F0C5D9C 03202025 */ move $a0, $t9 +/* 0FA910 7F0C5DA0 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0FA914 7F0C5DA4 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0FA918 7F0C5DA8 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0FA91C 7F0C5DAC 01602025 */ move $a0, $t3 +.Ljp7F0C5DB0: +/* 0FA920 7F0C5DB0 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0FA924 7F0C5DB4 00000000 */ nop +/* 0FA928 7F0C5DB8 10400034 */ beqz $v0, .Ljp7F0C5E8C +/* 0FA92C 7F0C5DBC 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA930 7F0C5DC0 0FC31251 */ jal write_playerrank_to_buffer +/* 0FA934 7F0C5DC4 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0FA938 7F0C5DC8 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FA93C 7F0C5DCC 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA940 7F0C5DD0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA944 7F0C5DD4 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA948 7F0C5DD8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA94C 7F0C5DDC 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA950 7F0C5DE0 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA954 7F0C5DE4 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA958 7F0C5DE8 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA95C 7F0C5DEC AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA960 7F0C5DF0 0C001145 */ jal get_video2_settings_ulx +/* 0FA964 7F0C5DF4 00000000 */ nop +/* 0FA968 7F0C5DF8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA96C 7F0C5DFC 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FA970 7F0C5E00 004FC021 */ addu $t8, $v0, $t7 +/* 0FA974 7F0C5E04 000E6043 */ sra $t4, $t6, 1 +/* 0FA978 7F0C5E08 030C2023 */ subu $a0, $t8, $t4 +/* 0FA97C 7F0C5E0C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA980 7F0C5E10 0C001149 */ jal get_video2_settings_uly +/* 0FA984 7F0C5E14 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA988 7F0C5E18 8FB900BC */ lw $t9, 0xbc($sp) +/* 0FA98C 7F0C5E1C 00195843 */ sra $t3, $t9, 1 +/* 0FA990 7F0C5E20 004B6823 */ subu $t5, $v0, $t3 +/* 0FA994 7F0C5E24 25AF0025 */ addiu $t7, $t5, 0x25 +/* 0FA998 7F0C5E28 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA99C 7F0C5E2C AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA9A0 7F0C5E30 00028400 */ sll $s0, $v0, 0x10 +/* 0FA9A4 7F0C5E34 00107403 */ sra $t6, $s0, 0x10 +/* 0FA9A8 7F0C5E38 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA9AC 7F0C5E3C 01C08025 */ move $s0, $t6 +/* 0FA9B0 7F0C5E40 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FA9B4 7F0C5E44 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FA9B8 7F0C5E48 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA9BC 7F0C5E4C 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FA9C0 7F0C5E50 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA9C4 7F0C5E54 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA9C8 7F0C5E58 AFB90018 */ sw $t9, 0x18($sp) +/* 0FA9CC 7F0C5E5C 02202025 */ move $a0, $s1 +/* 0FA9D0 7F0C5E60 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA9D4 7F0C5E64 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA9D8 7F0C5E68 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA9DC 7F0C5E6C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA9E0 7F0C5E70 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA9E4 7F0C5E74 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA9E8 7F0C5E78 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA9EC 7F0C5E7C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA9F0 7F0C5E80 0FC2B99B */ jal en_text_write_stuff +/* 0FA9F4 7F0C5E84 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA9F8 7F0C5E88 00408825 */ move $s1, $v0 +.Ljp7F0C5E8C: +/* 0FA9FC 7F0C5E8C 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAA00 7F0C5E90 3404A01C */ li $a0, 40988 +/* 0FAA04 7F0C5E94 3404A01E */ li $a0, 40990 +/* 0FAA08 7F0C5E98 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAA0C 7F0C5E9C AFA2004C */ sw $v0, 0x4c($sp) +/* 0FAA10 7F0C5EA0 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0FAA14 7F0C5EA4 3C058006 */ lui $a1, %hi(ascii_pnum_LOSSES) # $a1, 0x8006 +/* 0FAA18 7F0C5EA8 24A5BC78 */ addiu $a1, %lo(ascii_pnum_LOSSES) # addiu $a1, $a1, -0x4388 +/* 0FAA1C 7F0C5EAC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0FAA20 7F0C5EB0 27A400AC */ addiu $a0, $sp, 0xac +/* 0FAA24 7F0C5EB4 AFA20010 */ sw $v0, 0x10($sp) +/* 0FAA28 7F0C5EB8 0C002B29 */ jal sprintf +/* 0FAA2C 7F0C5EBC 24E70001 */ addiu $a3, $a3, 1 +/* 0FAA30 7F0C5EC0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0FAA34 7F0C5EC4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FAA38 7F0C5EC8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FAA3C 7F0C5ECC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAA40 7F0C5ED0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FAA44 7F0C5ED4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FAA48 7F0C5ED8 27A600AC */ addiu $a2, $sp, 0xac +/* 0FAA4C 7F0C5EDC AFA00014 */ sw $zero, 0x14($sp) +/* 0FAA50 7F0C5EE0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FAA54 7F0C5EE4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FAA58 7F0C5EE8 0C001145 */ jal get_video2_settings_ulx +/* 0FAA5C 7F0C5EEC 00000000 */ nop +/* 0FAA60 7F0C5EF0 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAA64 7F0C5EF4 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FAA68 7F0C5EF8 004D7821 */ addu $t7, $v0, $t5 +/* 0FAA6C 7F0C5EFC 000EC043 */ sra $t8, $t6, 1 +/* 0FAA70 7F0C5F00 01F82023 */ subu $a0, $t7, $t8 +/* 0FAA74 7F0C5F04 24840050 */ addiu $a0, $a0, 0x50 +/* 0FAA78 7F0C5F08 0C001149 */ jal get_video2_settings_uly +/* 0FAA7C 7F0C5F0C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FAA80 7F0C5F10 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0FAA84 7F0C5F14 000CC843 */ sra $t9, $t4, 1 +/* 0FAA88 7F0C5F18 00595823 */ subu $t3, $v0, $t9 +/* 0FAA8C 7F0C5F1C 256D0035 */ addiu $t5, $t3, 0x35 +/* 0FAA90 7F0C5F20 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAA94 7F0C5F24 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0FAA98 7F0C5F28 00028400 */ sll $s0, $v0, 0x10 +/* 0FAA9C 7F0C5F2C 00107403 */ sra $t6, $s0, 0x10 +/* 0FAAA0 7F0C5F30 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAAA4 7F0C5F34 01C08025 */ move $s0, $t6 +/* 0FAAA8 7F0C5F38 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FAAAC 7F0C5F3C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FAAB0 7F0C5F40 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FAAB4 7F0C5F44 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FAAB8 7F0C5F48 3C0CFF40 */ lui $t4, (0xFF4040B0 >> 16) # lui $t4, 0xff40 +/* 0FAABC 7F0C5F4C 358C40B0 */ ori $t4, (0xFF4040B0 & 0xFFFF) # ori $t4, $t4, 0x40b0 +/* 0FAAC0 7F0C5F50 AFAC0018 */ sw $t4, 0x18($sp) +/* 0FAAC4 7F0C5F54 02202025 */ move $a0, $s1 +/* 0FAAC8 7F0C5F58 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FAACC 7F0C5F5C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FAAD0 7F0C5F60 27A700AC */ addiu $a3, $sp, 0xac +/* 0FAAD4 7F0C5F64 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FAAD8 7F0C5F68 AFA20020 */ sw $v0, 0x20($sp) +/* 0FAADC 7F0C5F6C AFA00024 */ sw $zero, 0x24($sp) +/* 0FAAE0 7F0C5F70 AFA00028 */ sw $zero, 0x28($sp) +/* 0FAAE4 7F0C5F74 AFB80014 */ sw $t8, 0x14($sp) +/* 0FAAE8 7F0C5F78 0FC2B99B */ jal en_text_write_stuff +/* 0FAAEC 7F0C5F7C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FAAF0 7F0C5F80 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0FAAF4 7F0C5F84 24010002 */ li $at, 2 +/* 0FAAF8 7F0C5F88 00408825 */ move $s1, $v0 +/* 0FAAFC 7F0C5F8C 17210062 */ bne $t9, $at, .Ljp7F0C6118 +/* 0FAB00 7F0C5F90 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FAB04 7F0C5F94 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FAB08 7F0C5F98 3C188008 */ lui $t8, %hi(player1_player_data + 0x24) # $t8, 0x8008 +/* 0FAB0C 7F0C5F9C 10400016 */ beqz $v0, .Ljp7F0C5FF8 +/* 0FAB10 7F0C5FA0 00000000 */ nop +/* 0FAB14 7F0C5FA4 0C001145 */ jal get_video2_settings_ulx +/* 0FAB18 7F0C5FA8 00000000 */ nop +/* 0FAB1C 7F0C5FAC 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB20 7F0C5FB0 00105C03 */ sra $t3, $s0, 0x10 +/* 0FAB24 7F0C5FB4 0C001149 */ jal get_video2_settings_uly +/* 0FAB28 7F0C5FB8 01608025 */ move $s0, $t3 +/* 0FAB2C 7F0C5FBC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAB30 7F0C5FC0 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAB34 7F0C5FC4 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAB38 7F0C5FC8 000E7880 */ sll $t7, $t6, 2 +/* 0FAB3C 7F0C5FCC 00EF3821 */ addu $a3, $a3, $t7 +/* 0FAB40 7F0C5FD0 020D2821 */ addu $a1, $s0, $t5 +/* 0FAB44 7F0C5FD4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAB48 7F0C5FD8 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FAB4C 7F0C5FDC 02202025 */ move $a0, $s1 +/* 0FAB50 7F0C5FE0 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAB54 7F0C5FE4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAB58 7F0C5FE8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAB5C 7F0C5FEC 00408825 */ move $s1, $v0 +/* 0FAB60 7F0C5FF0 10000019 */ b .Ljp7F0C6058 +/* 0FAB64 7F0C5FF4 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5FF8: +/* 0FAB68 7F0C5FF8 8F189F84 */ lw $t8, %lo(player1_player_data + 0x24)($t8) +/* 0FAB6C 7F0C5FFC 5B000017 */ blezl $t8, .Ljp7F0C605C +/* 0FAB70 7F0C6000 24010001 */ li $at, 1 +/* 0FAB74 7F0C6004 0C001145 */ jal get_video2_settings_ulx +/* 0FAB78 7F0C6008 00000000 */ nop +/* 0FAB7C 7F0C600C 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB80 7F0C6010 00106403 */ sra $t4, $s0, 0x10 +/* 0FAB84 7F0C6014 0C001149 */ jal get_video2_settings_uly +/* 0FAB88 7F0C6018 01808025 */ move $s0, $t4 +/* 0FAB8C 7F0C601C 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FAB90 7F0C6020 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FAB94 7F0C6024 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAB98 7F0C6028 000B6880 */ sll $t5, $t3, 2 +/* 0FAB9C 7F0C602C 00ED3821 */ addu $a3, $a3, $t5 +/* 0FABA0 7F0C6030 240E0003 */ li $t6, 3 +/* 0FABA4 7F0C6034 02192821 */ addu $a1, $s0, $t9 +/* 0FABA8 7F0C6038 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FABAC 7F0C603C AFAE0010 */ sw $t6, 0x10($sp) +/* 0FABB0 7F0C6040 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FABB4 7F0C6044 02202025 */ move $a0, $s1 +/* 0FABB8 7F0C6048 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FABBC 7F0C604C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FABC0 7F0C6050 00408825 */ move $s1, $v0 +/* 0FABC4 7F0C6054 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C6058: +/* 0FABC8 7F0C6058 24010001 */ li $at, 1 +.Ljp7F0C605C: +/* 0FABCC 7F0C605C 10410016 */ beq $v0, $at, .Ljp7F0C60B8 +/* 0FABD0 7F0C6060 3C0E8008 */ lui $t6, %hi(player2_player_data + 0x28) # $t6, 0x8008 +/* 0FABD4 7F0C6064 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FABD8 7F0C6068 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FABDC 7F0C606C 00027880 */ sll $t7, $v0, 2 +/* 0FABE0 7F0C6070 01F86021 */ addu $t4, $t7, $t8 +/* 0FABE4 7F0C6074 0C001145 */ jal get_video2_settings_ulx +/* 0FABE8 7F0C6078 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FABEC 7F0C607C 00028400 */ sll $s0, $v0, 0x10 +/* 0FABF0 7F0C6080 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FABF4 7F0C6084 0C001149 */ jal get_video2_settings_uly +/* 0FABF8 7F0C6088 03208025 */ move $s0, $t9 +/* 0FABFC 7F0C608C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAC00 7F0C6090 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAC04 7F0C6094 02202025 */ move $a0, $s1 +/* 0FAC08 7F0C6098 020B2821 */ addu $a1, $s0, $t3 +/* 0FAC0C 7F0C609C 8DA70094 */ lw $a3, 0x94($t5) +/* 0FAC10 7F0C60A0 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAC14 7F0C60A4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAC18 7F0C60A8 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAC1C 7F0C60AC 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAC20 7F0C60B0 100000DC */ b .Ljp7F0C6424 +/* 0FAC24 7F0C60B4 00408825 */ move $s1, $v0 +.Ljp7F0C60B8: +/* 0FAC28 7F0C60B8 8DCE9FF8 */ lw $t6, %lo(player2_player_data + 0x28)($t6) +/* 0FAC2C 7F0C60BC 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FAC30 7F0C60C0 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FAC34 7F0C60C4 19C000D7 */ blez $t6, .Ljp7F0C6424 +/* 0FAC38 7F0C60C8 00027880 */ sll $t7, $v0, 2 +/* 0FAC3C 7F0C60CC 01F86021 */ addu $t4, $t7, $t8 +/* 0FAC40 7F0C60D0 0C001145 */ jal get_video2_settings_ulx +/* 0FAC44 7F0C60D4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FAC48 7F0C60D8 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC4C 7F0C60DC 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAC50 7F0C60E0 0C001149 */ jal get_video2_settings_uly +/* 0FAC54 7F0C60E4 03208025 */ move $s0, $t9 +/* 0FAC58 7F0C60E8 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAC5C 7F0C60EC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAC60 7F0C60F0 240E0003 */ li $t6, 3 +/* 0FAC64 7F0C60F4 020B2821 */ addu $a1, $s0, $t3 +/* 0FAC68 7F0C60F8 8DA70094 */ lw $a3, 0x94($t5) +/* 0FAC6C 7F0C60FC AFAE0010 */ sw $t6, 0x10($sp) +/* 0FAC70 7F0C6100 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAC74 7F0C6104 02202025 */ move $a0, $s1 +/* 0FAC78 7F0C6108 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAC7C 7F0C610C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAC80 7F0C6110 100000C4 */ b .Ljp7F0C6424 +/* 0FAC84 7F0C6114 00408825 */ move $s1, $v0 +.Ljp7F0C6118: +/* 0FAC88 7F0C6118 11E00015 */ beqz $t7, .Ljp7F0C6170 +/* 0FAC8C 7F0C611C 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x24) # $t5, 0x8008 +/* 0FAC90 7F0C6120 0C001145 */ jal get_video2_settings_ulx +/* 0FAC94 7F0C6124 00000000 */ nop +/* 0FAC98 7F0C6128 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC9C 7F0C612C 0010C403 */ sra $t8, $s0, 0x10 +/* 0FACA0 7F0C6130 0C001149 */ jal get_video2_settings_uly +/* 0FACA4 7F0C6134 03008025 */ move $s0, $t8 +/* 0FACA8 7F0C6138 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FACAC 7F0C613C 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FACB0 7F0C6140 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FACB4 7F0C6144 00195880 */ sll $t3, $t9, 2 +/* 0FACB8 7F0C6148 00EB3821 */ addu $a3, $a3, $t3 +/* 0FACBC 7F0C614C 020C2821 */ addu $a1, $s0, $t4 +/* 0FACC0 7F0C6150 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FACC4 7F0C6154 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FACC8 7F0C6158 02202025 */ move $a0, $s1 +/* 0FACCC 7F0C615C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FACD0 7F0C6160 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FACD4 7F0C6164 AFA00010 */ sw $zero, 0x10($sp) +/* 0FACD8 7F0C6168 10000018 */ b .Ljp7F0C61CC +/* 0FACDC 7F0C616C 00408825 */ move $s1, $v0 +.Ljp7F0C6170: +/* 0FACE0 7F0C6170 8DAD9F84 */ lw $t5, %lo(player1_player_data + 0x24)($t5) +/* 0FACE4 7F0C6174 59A00016 */ blezl $t5, .Ljp7F0C61D0 +/* 0FACE8 7F0C6178 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FACEC 7F0C617C 0C001145 */ jal get_video2_settings_ulx +/* 0FACF0 7F0C6180 00000000 */ nop +/* 0FACF4 7F0C6184 00028400 */ sll $s0, $v0, 0x10 +/* 0FACF8 7F0C6188 00107403 */ sra $t6, $s0, 0x10 +/* 0FACFC 7F0C618C 0C001149 */ jal get_video2_settings_uly +/* 0FAD00 7F0C6190 01C08025 */ move $s0, $t6 +/* 0FAD04 7F0C6194 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FAD08 7F0C6198 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FAD0C 7F0C619C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAD10 7F0C61A0 00186080 */ sll $t4, $t8, 2 +/* 0FAD14 7F0C61A4 00EC3821 */ addu $a3, $a3, $t4 +/* 0FAD18 7F0C61A8 24190003 */ li $t9, 3 +/* 0FAD1C 7F0C61AC 020F2821 */ addu $a1, $s0, $t7 +/* 0FAD20 7F0C61B0 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAD24 7F0C61B4 AFB90010 */ sw $t9, 0x10($sp) +/* 0FAD28 7F0C61B8 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FAD2C 7F0C61BC 02202025 */ move $a0, $s1 +/* 0FAD30 7F0C61C0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAD34 7F0C61C4 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAD38 7F0C61C8 00408825 */ move $s1, $v0 +.Ljp7F0C61CC: +/* 0FAD3C 7F0C61CC 8FAB00D4 */ lw $t3, 0xd4($sp) +.Ljp7F0C61D0: +/* 0FAD40 7F0C61D0 24010001 */ li $at, 1 +/* 0FAD44 7F0C61D4 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0FAD48 7F0C61D8 11610014 */ beq $t3, $at, .Ljp7F0C622C +/* 0FAD4C 7F0C61DC 000B6880 */ sll $t5, $t3, 2 +/* 0FAD50 7F0C61E0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0FAD54 7F0C61E4 01AE7821 */ addu $t7, $t5, $t6 +/* 0FAD58 7F0C61E8 0C001145 */ jal get_video2_settings_ulx +/* 0FAD5C 7F0C61EC AFAF0044 */ sw $t7, 0x44($sp) +/* 0FAD60 7F0C61F0 00028400 */ sll $s0, $v0, 0x10 +/* 0FAD64 7F0C61F4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FAD68 7F0C61F8 0C001149 */ jal get_video2_settings_uly +/* 0FAD6C 7F0C61FC 03008025 */ move $s0, $t8 +/* 0FAD70 7F0C6200 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FAD74 7F0C6204 8FB90044 */ lw $t9, 0x44($sp) +/* 0FAD78 7F0C6208 02202025 */ move $a0, $s1 +/* 0FAD7C 7F0C620C 020C2821 */ addu $a1, $s0, $t4 +/* 0FAD80 7F0C6210 8F270094 */ lw $a3, 0x94($t9) +/* 0FAD84 7F0C6214 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAD88 7F0C6218 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAD8C 7F0C621C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAD90 7F0C6220 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAD94 7F0C6224 1000001A */ b .Ljp7F0C6290 +/* 0FAD98 7F0C6228 00408825 */ move $s1, $v0 +.Ljp7F0C622C: +/* 0FAD9C 7F0C622C 3C0B8008 */ lui $t3, %hi(player2_player_data + 0x28) # $t3, 0x8008 +/* 0FADA0 7F0C6230 8D6B9FF8 */ lw $t3, %lo(player2_player_data + 0x28)($t3) +/* 0FADA4 7F0C6234 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0FADA8 7F0C6238 3C0F8008 */ lui $t7, %hi(player1_player_data) # $t7, 0x8008 +/* 0FADAC 7F0C623C 19600014 */ blez $t3, .Ljp7F0C6290 +/* 0FADB0 7F0C6240 000D7080 */ sll $t6, $t5, 2 +/* 0FADB4 7F0C6244 25EF9F60 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x60a0 +/* 0FADB8 7F0C6248 01CFC021 */ addu $t8, $t6, $t7 +/* 0FADBC 7F0C624C 0C001145 */ jal get_video2_settings_ulx +/* 0FADC0 7F0C6250 AFB80044 */ sw $t8, 0x44($sp) +/* 0FADC4 7F0C6254 00028400 */ sll $s0, $v0, 0x10 +/* 0FADC8 7F0C6258 00106403 */ sra $t4, $s0, 0x10 +/* 0FADCC 7F0C625C 0C001149 */ jal get_video2_settings_uly +/* 0FADD0 7F0C6260 01808025 */ move $s0, $t4 +/* 0FADD4 7F0C6264 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FADD8 7F0C6268 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FADDC 7F0C626C 240D0003 */ li $t5, 3 +/* 0FADE0 7F0C6270 02192821 */ addu $a1, $s0, $t9 +/* 0FADE4 7F0C6274 8D670094 */ lw $a3, 0x94($t3) +/* 0FADE8 7F0C6278 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FADEC 7F0C627C 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FADF0 7F0C6280 02202025 */ move $a0, $s1 +/* 0FADF4 7F0C6284 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FADF8 7F0C6288 24460046 */ addiu $a2, $v0, 0x46 +/* 0FADFC 7F0C628C 00408825 */ move $s1, $v0 +.Ljp7F0C6290: +/* 0FAE00 7F0C6290 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAE04 7F0C6294 24010002 */ li $at, 2 +/* 0FAE08 7F0C6298 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FAE0C 7F0C629C 11C10014 */ beq $t6, $at, .Ljp7F0C62F0 +/* 0FAE10 7F0C62A0 000E7880 */ sll $t7, $t6, 2 +/* 0FAE14 7F0C62A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FAE18 7F0C62A8 01F86021 */ addu $t4, $t7, $t8 +/* 0FAE1C 7F0C62AC 0C001145 */ jal get_video2_settings_ulx +/* 0FAE20 7F0C62B0 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FAE24 7F0C62B4 00028400 */ sll $s0, $v0, 0x10 +/* 0FAE28 7F0C62B8 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAE2C 7F0C62BC 0C001149 */ jal get_video2_settings_uly +/* 0FAE30 7F0C62C0 03208025 */ move $s0, $t9 +/* 0FAE34 7F0C62C4 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAE38 7F0C62C8 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAE3C 7F0C62CC 02202025 */ move $a0, $s1 +/* 0FAE40 7F0C62D0 020B2821 */ addu $a1, $s0, $t3 +/* 0FAE44 7F0C62D4 8DA70104 */ lw $a3, 0x104($t5) +/* 0FAE48 7F0C62D8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAE4C 7F0C62DC 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAE50 7F0C62E0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAE54 7F0C62E4 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAE58 7F0C62E8 1000001A */ b .Ljp7F0C6354 +/* 0FAE5C 7F0C62EC 00408825 */ move $s1, $v0 +.Ljp7F0C62F0: +/* 0FAE60 7F0C62F0 3C0E8008 */ lui $t6, %hi(player3_player_data + 0x2C) # $t6, 0x8008 +/* 0FAE64 7F0C62F4 8DCEA06C */ lw $t6, %lo(player3_player_data + 0x2C)($t6) +/* 0FAE68 7F0C62F8 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FAE6C 7F0C62FC 3C0C8008 */ lui $t4, %hi(player1_player_data) # $t4, 0x8008 +/* 0FAE70 7F0C6300 19C00014 */ blez $t6, .Ljp7F0C6354 +/* 0FAE74 7F0C6304 000FC080 */ sll $t8, $t7, 2 +/* 0FAE78 7F0C6308 258C9F60 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x60a0 +/* 0FAE7C 7F0C630C 030CC821 */ addu $t9, $t8, $t4 +/* 0FAE80 7F0C6310 0C001145 */ jal get_video2_settings_ulx +/* 0FAE84 7F0C6314 AFB90044 */ sw $t9, 0x44($sp) +/* 0FAE88 7F0C6318 00028400 */ sll $s0, $v0, 0x10 +/* 0FAE8C 7F0C631C 00105C03 */ sra $t3, $s0, 0x10 +/* 0FAE90 7F0C6320 0C001149 */ jal get_video2_settings_uly +/* 0FAE94 7F0C6324 01608025 */ move $s0, $t3 +/* 0FAE98 7F0C6328 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAE9C 7F0C632C 8FAE0044 */ lw $t6, 0x44($sp) +/* 0FAEA0 7F0C6330 240F0003 */ li $t7, 3 +/* 0FAEA4 7F0C6334 020D2821 */ addu $a1, $s0, $t5 +/* 0FAEA8 7F0C6338 8DC70104 */ lw $a3, 0x104($t6) +/* 0FAEAC 7F0C633C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FAEB0 7F0C6340 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAEB4 7F0C6344 02202025 */ move $a0, $s1 +/* 0FAEB8 7F0C6348 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAEBC 7F0C634C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAEC0 7F0C6350 00408825 */ move $s1, $v0 +.Ljp7F0C6354: +/* 0FAEC4 7F0C6354 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0FAEC8 7F0C6358 24010004 */ li $at, 4 +/* 0FAECC 7F0C635C 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 0FAED0 7F0C6360 17010030 */ bne $t8, $at, .Ljp7F0C6424 +/* 0FAED4 7F0C6364 24010003 */ li $at, 3 +/* 0FAED8 7F0C6368 11810015 */ beq $t4, $at, .Ljp7F0C63C0 +/* 0FAEDC 7F0C636C 000CC880 */ sll $t9, $t4, 2 +/* 0FAEE0 7F0C6370 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 +/* 0FAEE4 7F0C6374 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 +/* 0FAEE8 7F0C6378 032B6821 */ addu $t5, $t9, $t3 +/* 0FAEEC 7F0C637C 0C001145 */ jal get_video2_settings_ulx +/* 0FAEF0 7F0C6380 AFAD0044 */ sw $t5, 0x44($sp) +/* 0FAEF4 7F0C6384 00028400 */ sll $s0, $v0, 0x10 +/* 0FAEF8 7F0C6388 00107403 */ sra $t6, $s0, 0x10 +/* 0FAEFC 7F0C638C 0C001149 */ jal get_video2_settings_uly +/* 0FAF00 7F0C6390 01C08025 */ move $s0, $t6 +/* 0FAF04 7F0C6394 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FAF08 7F0C6398 8FB80044 */ lw $t8, 0x44($sp) +/* 0FAF0C 7F0C639C 02202025 */ move $a0, $s1 +/* 0FAF10 7F0C63A0 020F2821 */ addu $a1, $s0, $t7 +/* 0FAF14 7F0C63A4 8F070174 */ lw $a3, 0x174($t8) +/* 0FAF18 7F0C63A8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAF1C 7F0C63AC 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAF20 7F0C63B0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAF24 7F0C63B4 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAF28 7F0C63B8 1000001A */ b .Ljp7F0C6424 +/* 0FAF2C 7F0C63BC 00408825 */ move $s1, $v0 +.Ljp7F0C63C0: +/* 0FAF30 7F0C63C0 3C0C8008 */ lui $t4, %hi(player4_player_data+0x30) # $t4, 0x8008 +/* 0FAF34 7F0C63C4 8D8CA0E0 */ lw $t4, %lo(player4_player_data+0x30)($t4) +/* 0FAF38 7F0C63C8 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FAF3C 7F0C63CC 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FAF40 7F0C63D0 19800014 */ blez $t4, .Ljp7F0C6424 +/* 0FAF44 7F0C63D4 00195880 */ sll $t3, $t9, 2 +/* 0FAF48 7F0C63D8 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FAF4C 7F0C63DC 016D7021 */ addu $t6, $t3, $t5 +/* 0FAF50 7F0C63E0 0C001145 */ jal get_video2_settings_ulx +/* 0FAF54 7F0C63E4 AFAE0044 */ sw $t6, 0x44($sp) +/* 0FAF58 7F0C63E8 00028400 */ sll $s0, $v0, 0x10 +/* 0FAF5C 7F0C63EC 00107C03 */ sra $t7, $s0, 0x10 +/* 0FAF60 7F0C63F0 0C001149 */ jal get_video2_settings_uly +/* 0FAF64 7F0C63F4 01E08025 */ move $s0, $t7 +/* 0FAF68 7F0C63F8 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FAF6C 7F0C63FC 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FAF70 7F0C6400 24190003 */ li $t9, 3 +/* 0FAF74 7F0C6404 02182821 */ addu $a1, $s0, $t8 +/* 0FAF78 7F0C6408 8D870174 */ lw $a3, 0x174($t4) +/* 0FAF7C 7F0C640C AFB90010 */ sw $t9, 0x10($sp) +/* 0FAF80 7F0C6410 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAF84 7F0C6414 02202025 */ move $a0, $s1 +/* 0FAF88 7F0C6418 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAF8C 7F0C641C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAF90 7F0C6420 00408825 */ move $s1, $v0 +.Ljp7F0C6424: +/* 0FAF94 7F0C6424 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FAF98 7F0C6428 100000F2 */ b .Ljp7F0C67F4 +/* 0FAF9C 7F0C642C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F0C6430: +/* 0FAFA0 7F0C6430 544000F1 */ bnezl $v0, .Ljp7F0C67F8 +/* 0FAFA4 7F0C6434 8C6D29C8 */ lw $t5, 0x29c8($v1) +/* 0FAFA8 7F0C6438 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FAFAC 7F0C643C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAFB0 7F0C6440 29A10003 */ slti $at, $t5, 3 +/* 0FAFB4 7F0C6444 1420000A */ bnez $at, .Ljp7F0C6470 +/* 0FAFB8 7F0C6448 AFAB0074 */ sw $t3, 0x74($sp) +/* 0FAFBC 7F0C644C 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAFC0 7F0C6450 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FAFC4 7F0C6454 2578FFF9 */ addiu $t8, $t3, -7 +/* 0FAFC8 7F0C6458 31CF0001 */ andi $t7, $t6, 1 +/* 0FAFCC 7F0C645C 11E00003 */ beqz $t7, .Ljp7F0C646C +/* 0FAFD0 7F0C6460 25990007 */ addiu $t9, $t4, 7 +/* 0FAFD4 7F0C6464 10000002 */ b .Ljp7F0C6470 +/* 0FAFD8 7F0C6468 AFB80074 */ sw $t8, 0x74($sp) +.Ljp7F0C646C: +/* 0FAFDC 7F0C646C AFB90074 */ sw $t9, 0x74($sp) +.Ljp7F0C6470: +/* 0FAFE0 7F0C6470 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAFE4 7F0C6474 3404A01F */ li $a0, 40991 +/* 0FAFE8 7F0C6478 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FAFEC 7F0C647C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FAFF0 7F0C6480 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FAFF4 7F0C6484 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FAFF8 7F0C6488 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAFFC 7F0C648C 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB000 7F0C6490 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB004 7F0C6494 00403025 */ move $a2, $v0 +/* 0FB008 7F0C6498 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB00C 7F0C649C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB010 7F0C64A0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FB014 7F0C64A4 0C001145 */ jal get_video2_settings_ulx +/* 0FB018 7F0C64A8 00000000 */ nop +/* 0FB01C 7F0C64AC 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FB020 7F0C64B0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FB024 7F0C64B4 004E7821 */ addu $t7, $v0, $t6 +/* 0FB028 7F0C64B8 000BC043 */ sra $t8, $t3, 1 +/* 0FB02C 7F0C64BC 01F82023 */ subu $a0, $t7, $t8 +/* 0FB030 7F0C64C0 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB034 7F0C64C4 0C001149 */ jal get_video2_settings_uly +/* 0FB038 7F0C64C8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB03C 7F0C64CC 8FAC007C */ lw $t4, 0x7c($sp) +/* 0FB040 7F0C64D0 000CC843 */ sra $t9, $t4, 1 +/* 0FB044 7F0C64D4 00596823 */ subu $t5, $v0, $t9 +/* 0FB048 7F0C64D8 25AE0025 */ addiu $t6, $t5, 0x25 +/* 0FB04C 7F0C64DC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB050 7F0C64E0 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FB054 7F0C64E4 00028400 */ sll $s0, $v0, 0x10 +/* 0FB058 7F0C64E8 00105C03 */ sra $t3, $s0, 0x10 +/* 0FB05C 7F0C64EC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB060 7F0C64F0 01608025 */ move $s0, $t3 +/* 0FB064 7F0C64F4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB068 7F0C64F8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB06C 7F0C64FC 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB070 7F0C6500 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB074 7F0C6504 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB078 7F0C6508 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB07C 7F0C650C AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB080 7F0C6510 02202025 */ move $a0, $s1 +/* 0FB084 7F0C6514 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB088 7F0C6518 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB08C 7F0C651C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB090 7F0C6520 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB094 7F0C6524 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB098 7F0C6528 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB09C 7F0C652C AFA00028 */ sw $zero, 0x28($sp) +/* 0FB0A0 7F0C6530 AFB80014 */ sw $t8, 0x14($sp) +/* 0FB0A4 7F0C6534 0FC2B99B */ jal en_text_write_stuff +/* 0FB0A8 7F0C6538 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB0AC 7F0C653C 00408825 */ move $s1, $v0 +/* 0FB0B0 7F0C6540 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0FB0B4 7F0C6544 0FC026DC */ jal getplayerfavoredweapon +/* 0FB0B8 7F0C6548 00002825 */ move $a1, $zero +/* 0FB0BC 7F0C654C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB0C0 7F0C6550 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB0C4 7F0C6554 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB0C8 7F0C6558 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB0CC 7F0C655C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB0D0 7F0C6560 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB0D4 7F0C6564 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB0D8 7F0C6568 00403025 */ move $a2, $v0 +/* 0FB0DC 7F0C656C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB0E0 7F0C6570 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB0E4 7F0C6574 AFB90010 */ sw $t9, 0x10($sp) +/* 0FB0E8 7F0C6578 0C001145 */ jal get_video2_settings_ulx +/* 0FB0EC 7F0C657C 00000000 */ nop +/* 0FB0F0 7F0C6580 8FAD0074 */ lw $t5, 0x74($sp) +/* 0FB0F4 7F0C6584 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FB0F8 7F0C6588 004D7021 */ addu $t6, $v0, $t5 +/* 0FB0FC 7F0C658C 000B7843 */ sra $t7, $t3, 1 +/* 0FB100 7F0C6590 01CF2023 */ subu $a0, $t6, $t7 +/* 0FB104 7F0C6594 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB108 7F0C6598 0C001149 */ jal get_video2_settings_uly +/* 0FB10C 7F0C659C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB110 7F0C65A0 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0FB114 7F0C65A4 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0FB118 7F0C65A8 00024400 */ sll $t0, $v0, 0x10 +/* 0FB11C 7F0C65AC 0008C403 */ sra $t8, $t0, 0x10 +/* 0FB120 7F0C65B0 11800003 */ beqz $t4, .Ljp7F0C65C0 +/* 0FB124 7F0C65B4 03004025 */ move $t0, $t8 +/* 0FB128 7F0C65B8 10000002 */ b .Ljp7F0C65C4 +/* 0FB12C 7F0C65BC 24040004 */ li $a0, 4 +.Ljp7F0C65C0: +/* 0FB130 7F0C65C0 00002025 */ move $a0, $zero +.Ljp7F0C65C4: +/* 0FB134 7F0C65C4 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FB138 7F0C65C8 0088C821 */ addu $t9, $a0, $t0 +/* 0FB13C 7F0C65CC 000D5843 */ sra $t3, $t5, 1 +/* 0FB140 7F0C65D0 032B7023 */ subu $t6, $t9, $t3 +/* 0FB144 7F0C65D4 25CF0035 */ addiu $t7, $t6, 0x35 +/* 0FB148 7F0C65D8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB14C 7F0C65DC AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FB150 7F0C65E0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB154 7F0C65E4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB158 7F0C65E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB15C 7F0C65EC 03008025 */ move $s0, $t8 +/* 0FB160 7F0C65F0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FB164 7F0C65F4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB168 7F0C65F8 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB16C 7F0C65FC 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FB170 7F0C6600 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FB174 7F0C6604 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FB178 7F0C6608 AFB90018 */ sw $t9, 0x18($sp) +/* 0FB17C 7F0C660C 02202025 */ move $a0, $s1 +/* 0FB180 7F0C6610 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB184 7F0C6614 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB188 7F0C6618 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB18C 7F0C661C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB190 7F0C6620 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB194 7F0C6624 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB198 7F0C6628 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB19C 7F0C662C AFAD0014 */ sw $t5, 0x14($sp) +/* 0FB1A0 7F0C6630 0FC2B99B */ jal en_text_write_stuff +/* 0FB1A4 7F0C6634 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FB1A8 7F0C6638 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB1AC 7F0C663C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB1B0 7F0C6640 00408825 */ move $s1, $v0 +/* 0FB1B4 7F0C6644 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB1B8 7F0C6648 8C682A10 */ lw $t0, 0x2a10($v1) +/* 0FB1BC 7F0C664C 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB1C0 7F0C6650 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB1C4 7F0C6654 11000031 */ beqz $t0, .Ljp7F0C671C +/* 0FB1C8 7F0C6658 01003025 */ move $a2, $t0 +/* 0FB1CC 7F0C665C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0FB1D0 7F0C6660 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FB1D4 7F0C6664 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB1D8 7F0C6668 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB1DC 7F0C666C AFA800A4 */ sw $t0, 0xa4($sp) +/* 0FB1E0 7F0C6670 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB1E4 7F0C6674 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FB1E8 7F0C6678 0C001145 */ jal get_video2_settings_ulx +/* 0FB1EC 7F0C667C 00000000 */ nop +/* 0FB1F0 7F0C6680 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FB1F4 7F0C6684 8FB80078 */ lw $t8, 0x78($sp) +/* 0FB1F8 7F0C6688 004E7821 */ addu $t7, $v0, $t6 +/* 0FB1FC 7F0C668C 00186043 */ sra $t4, $t8, 1 +/* 0FB200 7F0C6690 01EC2023 */ subu $a0, $t7, $t4 +/* 0FB204 7F0C6694 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB208 7F0C6698 0C001149 */ jal get_video2_settings_uly +/* 0FB20C 7F0C669C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB210 7F0C66A0 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FB214 7F0C66A4 000DC843 */ sra $t9, $t5, 1 +/* 0FB218 7F0C66A8 00595823 */ subu $t3, $v0, $t9 +/* 0FB21C 7F0C66AC 256E004B */ addiu $t6, $t3, 0x4b +/* 0FB220 7F0C66B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB224 7F0C66B4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FB228 7F0C66B8 00028400 */ sll $s0, $v0, 0x10 +/* 0FB22C 7F0C66BC 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB230 7F0C66C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB234 7F0C66C4 03008025 */ move $s0, $t8 +/* 0FB238 7F0C66C8 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB23C 7F0C66CC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB240 7F0C66D0 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB244 7F0C66D4 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB248 7F0C66D8 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FB24C 7F0C66DC 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FB250 7F0C66E0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB254 7F0C66E4 02202025 */ move $a0, $s1 +/* 0FB258 7F0C66E8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB25C 7F0C66EC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB260 7F0C66F0 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB264 7F0C66F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB268 7F0C66F8 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB26C 7F0C66FC AFA00024 */ sw $zero, 0x24($sp) +/* 0FB270 7F0C6700 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB274 7F0C6704 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB278 7F0C6708 0FC2B99B */ jal en_text_write_stuff +/* 0FB27C 7F0C670C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB280 7F0C6710 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB284 7F0C6714 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB288 7F0C6718 00408825 */ move $s1, $v0 +.Ljp7F0C671C: +/* 0FB28C 7F0C671C 8C622A14 */ lw $v0, 0x2a14($v1) +/* 0FB290 7F0C6720 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB294 7F0C6724 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB298 7F0C6728 10400032 */ beqz $v0, .Ljp7F0C67F4 +/* 0FB29C 7F0C672C 00403025 */ move $a2, $v0 +/* 0FB2A0 7F0C6730 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB2A4 7F0C6734 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB2A8 7F0C6738 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB2AC 7F0C673C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB2B0 7F0C6740 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB2B4 7F0C6744 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB2B8 7F0C6748 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB2BC 7F0C674C AFB90010 */ sw $t9, 0x10($sp) +/* 0FB2C0 7F0C6750 0C001145 */ jal get_video2_settings_ulx +/* 0FB2C4 7F0C6754 00000000 */ nop +/* 0FB2C8 7F0C6758 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FB2CC 7F0C675C 8FB80078 */ lw $t8, 0x78($sp) +/* 0FB2D0 7F0C6760 004B7021 */ addu $t6, $v0, $t3 +/* 0FB2D4 7F0C6764 00187843 */ sra $t7, $t8, 1 +/* 0FB2D8 7F0C6768 01CF2023 */ subu $a0, $t6, $t7 +/* 0FB2DC 7F0C676C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB2E0 7F0C6770 0C001149 */ jal get_video2_settings_uly +/* 0FB2E4 7F0C6774 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB2E8 7F0C6778 8FAC007C */ lw $t4, 0x7c($sp) +/* 0FB2EC 7F0C677C 000C6843 */ sra $t5, $t4, 1 +/* 0FB2F0 7F0C6780 004DC823 */ subu $t9, $v0, $t5 +/* 0FB2F4 7F0C6784 272B0058 */ addiu $t3, $t9, 0x58 +/* 0FB2F8 7F0C6788 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB2FC 7F0C678C AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0FB300 7F0C6790 00028400 */ sll $s0, $v0, 0x10 +/* 0FB304 7F0C6794 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB308 7F0C6798 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB30C 7F0C679C 03008025 */ move $s0, $t8 +/* 0FB310 7F0C67A0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0FB314 7F0C67A4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FB318 7F0C67A8 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FB31C 7F0C67AC 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FB320 7F0C67B0 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB324 7F0C67B4 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB328 7F0C67B8 AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB32C 7F0C67BC 02202025 */ move $a0, $s1 +/* 0FB330 7F0C67C0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB334 7F0C67C4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB338 7F0C67C8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB33C 7F0C67CC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB340 7F0C67D0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB344 7F0C67D4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB348 7F0C67D8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB34C 7F0C67DC AFAF0014 */ sw $t7, 0x14($sp) +/* 0FB350 7F0C67E0 0FC2B99B */ jal en_text_write_stuff +/* 0FB354 7F0C67E4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FB358 7F0C67E8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB35C 7F0C67EC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB360 7F0C67F0 00408825 */ move $s1, $v0 +.Ljp7F0C67F4: +/* 0FB364 7F0C67F4 8C6D29C8 */ lw $t5, 0x29c8($v1) +.Ljp7F0C67F8: +/* 0FB368 7F0C67F8 24010006 */ li $at, 6 +/* 0FB36C 7F0C67FC 15A100B0 */ bne $t5, $at, .Ljp7F0C6AC0 +/* 0FB370 7F0C6800 00000000 */ nop +/* 0FB374 7F0C6804 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB378 7F0C6808 3404A020 */ li $a0, 40992 +/* 0FB37C 7F0C680C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB380 7F0C6810 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB384 7F0C6814 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB388 7F0C6818 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB38C 7F0C681C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB390 7F0C6820 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FB394 7F0C6824 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FB398 7F0C6828 00403025 */ move $a2, $v0 +/* 0FB39C 7F0C682C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB3A0 7F0C6830 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB3A4 7F0C6834 AFB90010 */ sw $t9, 0x10($sp) +/* 0FB3A8 7F0C6838 0C001145 */ jal get_video2_settings_ulx +/* 0FB3AC 7F0C683C 00000000 */ nop +/* 0FB3B0 7F0C6840 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FB3B4 7F0C6844 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FB3B8 7F0C6848 004BC021 */ addu $t8, $v0, $t3 +/* 0FB3BC 7F0C684C 000E7843 */ sra $t7, $t6, 1 +/* 0FB3C0 7F0C6850 030F2023 */ subu $a0, $t8, $t7 +/* 0FB3C4 7F0C6854 24840036 */ addiu $a0, $a0, 0x36 +/* 0FB3C8 7F0C6858 0C001149 */ jal get_video2_settings_uly +/* 0FB3CC 7F0C685C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB3D0 7F0C6860 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0FB3D4 7F0C6864 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0FB3D8 7F0C6868 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0FB3DC 7F0C686C 000C6843 */ sra $t5, $t4, 1 +/* 0FB3E0 7F0C6870 004DC823 */ subu $t9, $v0, $t5 +/* 0FB3E4 7F0C6874 272B0036 */ addiu $t3, $t9, 0x36 +/* 0FB3E8 7F0C6878 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0FB3EC 7F0C687C 8DD829CC */ lw $t8, 0x29cc($t6) +/* 0FB3F0 7F0C6880 1700001E */ bnez $t8, .Ljp7F0C68FC +/* 0FB3F4 7F0C6884 00000000 */ nop +/* 0FB3F8 7F0C6888 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB3FC 7F0C688C 00000000 */ nop +/* 0FB400 7F0C6890 00028400 */ sll $s0, $v0, 0x10 +/* 0FB404 7F0C6894 00107C03 */ sra $t7, $s0, 0x10 +/* 0FB408 7F0C6898 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB40C 7F0C689C 01E08025 */ move $s0, $t7 +/* 0FB410 7F0C68A0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FB414 7F0C68A4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB418 7F0C68A8 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB41C 7F0C68AC 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FB420 7F0C68B0 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0FB424 7F0C68B4 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0FB428 7F0C68B8 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0FB42C 7F0C68BC 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0FB430 7F0C68C0 AFB90018 */ sw $t9, 0x18($sp) +/* 0FB434 7F0C68C4 AFAB001C */ sw $t3, 0x1c($sp) +/* 0FB438 7F0C68C8 02202025 */ move $a0, $s1 +/* 0FB43C 7F0C68CC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB440 7F0C68D0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB444 7F0C68D4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB448 7F0C68D8 AFB00020 */ sw $s0, 0x20($sp) +/* 0FB44C 7F0C68DC AFA20024 */ sw $v0, 0x24($sp) +/* 0FB450 7F0C68E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB454 7F0C68E4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FB458 7F0C68E8 AFAD0014 */ sw $t5, 0x14($sp) +/* 0FB45C 7F0C68EC 0FC2BCA7 */ jal jp_text_write_stuff +/* 0FB460 7F0C68F0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FB464 7F0C68F4 1000001A */ b .Ljp7F0C6960 +/* 0FB468 7F0C68F8 00408825 */ move $s1, $v0 +.Ljp7F0C68FC: +/* 0FB46C 7F0C68FC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB470 7F0C6900 00000000 */ nop +/* 0FB474 7F0C6904 00028400 */ sll $s0, $v0, 0x10 +/* 0FB478 7F0C6908 00107403 */ sra $t6, $s0, 0x10 +/* 0FB47C 7F0C690C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB480 7F0C6910 01C08025 */ move $s0, $t6 +/* 0FB484 7F0C6914 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FB488 7F0C6918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FB48C 7F0C691C 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FB490 7F0C6920 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FB494 7F0C6924 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB498 7F0C6928 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB49C 7F0C692C AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB4A0 7F0C6930 02202025 */ move $a0, $s1 +/* 0FB4A4 7F0C6934 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB4A8 7F0C6938 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB4AC 7F0C693C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB4B0 7F0C6940 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB4B4 7F0C6944 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB4B8 7F0C6948 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB4BC 7F0C694C AFA00028 */ sw $zero, 0x28($sp) +/* 0FB4C0 7F0C6950 AFAF0014 */ sw $t7, 0x14($sp) +/* 0FB4C4 7F0C6954 0FC2B99B */ jal en_text_write_stuff +/* 0FB4C8 7F0C6958 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB4CC 7F0C695C 00408825 */ move $s1, $v0 +.Ljp7F0C6960: +/* 0FB4D0 7F0C6960 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB4D4 7F0C6964 3404A021 */ li $a0, 40993 +/* 0FB4D8 7F0C6968 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB4DC 7F0C696C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB4E0 7F0C6970 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB4E4 7F0C6974 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB4E8 7F0C6978 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB4EC 7F0C697C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FB4F0 7F0C6980 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FB4F4 7F0C6984 00403025 */ move $a2, $v0 +/* 0FB4F8 7F0C6988 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB4FC 7F0C698C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB500 7F0C6990 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FB504 7F0C6994 0C001145 */ jal get_video2_settings_ulx +/* 0FB508 7F0C6998 00000000 */ nop +/* 0FB50C 7F0C699C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FB510 7F0C69A0 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FB514 7F0C69A4 00595821 */ addu $t3, $v0, $t9 +/* 0FB518 7F0C69A8 000EC043 */ sra $t8, $t6, 1 +/* 0FB51C 7F0C69AC 01782023 */ subu $a0, $t3, $t8 +/* 0FB520 7F0C69B0 24840068 */ addiu $a0, $a0, 0x68 +/* 0FB524 7F0C69B4 0C001149 */ jal get_video2_settings_uly +/* 0FB528 7F0C69B8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB52C 7F0C69BC 8FAF00BC */ lw $t7, 0xbc($sp) +/* 0FB530 7F0C69C0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0FB534 7F0C69C4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0FB538 7F0C69C8 000F6043 */ sra $t4, $t7, 1 +/* 0FB53C 7F0C69CC 004C6823 */ subu $t5, $v0, $t4 +/* 0FB540 7F0C69D0 25B90036 */ addiu $t9, $t5, 0x36 +/* 0FB544 7F0C69D4 AFB900C8 */ sw $t9, 0xc8($sp) +/* 0FB548 7F0C69D8 8DCB29CC */ lw $t3, 0x29cc($t6) +/* 0FB54C 7F0C69DC 24010001 */ li $at, 1 +/* 0FB550 7F0C69E0 1561001E */ bne $t3, $at, .Ljp7F0C6A5C +/* 0FB554 7F0C69E4 00000000 */ nop +/* 0FB558 7F0C69E8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB55C 7F0C69EC 00000000 */ nop +/* 0FB560 7F0C69F0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB564 7F0C69F4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB568 7F0C69F8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB56C 7F0C69FC 03008025 */ move $s0, $t8 +/* 0FB570 7F0C6A00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB574 7F0C6A04 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB578 7F0C6A08 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB57C 7F0C6A0C 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB580 7F0C6A10 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0FB584 7F0C6A14 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0FB588 7F0C6A18 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0FB58C 7F0C6A1C 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0FB590 7F0C6A20 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB594 7F0C6A24 AFB9001C */ sw $t9, 0x1c($sp) +/* 0FB598 7F0C6A28 02202025 */ move $a0, $s1 +/* 0FB59C 7F0C6A2C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB5A0 7F0C6A30 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB5A4 7F0C6A34 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB5A8 7F0C6A38 AFB00020 */ sw $s0, 0x20($sp) +/* 0FB5AC 7F0C6A3C AFA20024 */ sw $v0, 0x24($sp) +/* 0FB5B0 7F0C6A40 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB5B4 7F0C6A44 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FB5B8 7F0C6A48 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB5BC 7F0C6A4C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0FB5C0 7F0C6A50 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB5C4 7F0C6A54 1000001A */ b .Ljp7F0C6AC0 +/* 0FB5C8 7F0C6A58 00408825 */ move $s1, $v0 +.Ljp7F0C6A5C: +/* 0FB5CC 7F0C6A5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB5D0 7F0C6A60 00000000 */ nop +/* 0FB5D4 7F0C6A64 00028400 */ sll $s0, $v0, 0x10 +/* 0FB5D8 7F0C6A68 00107403 */ sra $t6, $s0, 0x10 +/* 0FB5DC 7F0C6A6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB5E0 7F0C6A70 01C08025 */ move $s0, $t6 +/* 0FB5E4 7F0C6A74 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) # $t3, 0x8004 +/* 0FB5E8 7F0C6A78 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB5EC 7F0C6A7C 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB5F0 7F0C6A80 8D6B0EE0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0FB5F4 7F0C6A84 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0FB5F8 7F0C6A88 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0FB5FC 7F0C6A8C AFAF0018 */ sw $t7, 0x18($sp) +/* 0FB600 7F0C6A90 02202025 */ move $a0, $s1 +/* 0FB604 7F0C6A94 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB608 7F0C6A98 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB60C 7F0C6A9C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB610 7F0C6AA0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB614 7F0C6AA4 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB618 7F0C6AA8 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB61C 7F0C6AAC AFA00028 */ sw $zero, 0x28($sp) +/* 0FB620 7F0C6AB0 AFB80014 */ sw $t8, 0x14($sp) +/* 0FB624 7F0C6AB4 0FC2B99B */ jal en_text_write_stuff +/* 0FB628 7F0C6AB8 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FB62C 7F0C6ABC 00408825 */ move $s1, $v0 +.Ljp7F0C6AC0: +/* 0FB630 7F0C6AC0 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0FB634 7F0C6AC4 02202025 */ move $a0, $s1 +/* 0FB638 7F0C6AC8 10000092 */ b .Ljp7F0C6D14 +/* 0FB63C 7F0C6ACC 00408825 */ move $s1, $v0 +/* 0FB640 7F0C6AD0 8C6C00D8 */ lw $t4, 0xd8($v1) +.Ljp7F0C6AD4: +/* 0FB644 7F0C6AD4 51800090 */ beql $t4, $zero, .Ljp7F0C6D18 +/* 0FB648 7F0C6AD8 02201025 */ move $v0, $s1 +/* 0FB64C 7F0C6ADC 8C6D0428 */ lw $t5, 0x428($v1) +/* 0FB650 7F0C6AE0 51A0008D */ beql $t5, $zero, .Ljp7F0C6D18 +/* 0FB654 7F0C6AE4 02201025 */ move $v0, $s1 +/* 0FB658 7F0C6AE8 8C790424 */ lw $t9, 0x424($v1) +/* 0FB65C 7F0C6AEC 3C0E8009 */ lui $t6, %hi(stop_play_flag) # $t6, 0x8009 +/* 0FB660 7F0C6AF0 53200089 */ beql $t9, $zero, .Ljp7F0C6D18 +/* 0FB664 7F0C6AF4 02201025 */ move $v0, $s1 +/* 0FB668 7F0C6AF8 8DCEC770 */ lw $t6, %lo(stop_play_flag)($t6) +/* 0FB66C 7F0C6AFC 3C0B8009 */ lui $t3, %hi(is_gameover_flag) # $t3, 0x8009 +/* 0FB670 7F0C6B00 55C00085 */ bnezl $t6, .Ljp7F0C6D18 +/* 0FB674 7F0C6B04 02201025 */ move $v0, $s1 +/* 0FB678 7F0C6B08 8D6BC774 */ lw $t3, %lo(is_gameover_flag)($t3) +/* 0FB67C 7F0C6B0C 00002025 */ move $a0, $zero +/* 0FB680 7F0C6B10 55600081 */ bnezl $t3, .Ljp7F0C6D18 +/* 0FB684 7F0C6B14 02201025 */ move $v0, $s1 +/* 0FB688 7F0C6B18 18400028 */ blez $v0, .Ljp7F0C6BBC +/* 0FB68C 7F0C6B1C 00002825 */ move $a1, $zero +/* 0FB690 7F0C6B20 30470003 */ andi $a3, $v0, 3 +/* 0FB694 7F0C6B24 10E00011 */ beqz $a3, .Ljp7F0C6B6C +/* 0FB698 7F0C6B28 00E03025 */ move $a2, $a3 +/* 0FB69C 7F0C6B2C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FB6A0 7F0C6B30 0000C0C0 */ sll $t8, $zero, 3 +/* 0FB6A4 7F0C6B34 0300C023 */ subu $t8, $t8, $zero +/* 0FB6A8 7F0C6B38 0018C100 */ sll $t8, $t8, 4 +/* 0FB6AC 7F0C6B3C 3C198008 */ lui $t9, %hi(player1_player_data) # $t9, 0x8008 +/* 0FB6B0 7F0C6B40 000F6080 */ sll $t4, $t7, 2 +/* 0FB6B4 7F0C6B44 030C6821 */ addu $t5, $t8, $t4 +/* 0FB6B8 7F0C6B48 27399F60 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x60a0 +/* 0FB6BC 7F0C6B4C 01B91821 */ addu $v1, $t5, $t9 +.Ljp7F0C6B50: +/* 0FB6C0 7F0C6B50 8C6E0024 */ lw $t6, 0x24($v1) +/* 0FB6C4 7F0C6B54 24A50001 */ addiu $a1, $a1, 1 +/* 0FB6C8 7F0C6B58 24630070 */ addiu $v1, $v1, 0x70 +/* 0FB6CC 7F0C6B5C 14C5FFFC */ bne $a2, $a1, .Ljp7F0C6B50 +/* 0FB6D0 7F0C6B60 008E2021 */ addu $a0, $a0, $t6 +/* 0FB6D4 7F0C6B64 10A20015 */ beq $a1, $v0, .Ljp7F0C6BBC +/* 0FB6D8 7F0C6B68 00000000 */ nop +.Ljp7F0C6B6C: +/* 0FB6DC 7F0C6B6C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FB6E0 7F0C6B70 000558C0 */ sll $t3, $a1, 3 +/* 0FB6E4 7F0C6B74 01655823 */ subu $t3, $t3, $a1 +/* 0FB6E8 7F0C6B78 000B5900 */ sll $t3, $t3, 4 +/* 0FB6EC 7F0C6B7C 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FB6F0 7F0C6B80 000FC080 */ sll $t8, $t7, 2 +/* 0FB6F4 7F0C6B84 01786021 */ addu $t4, $t3, $t8 +/* 0FB6F8 7F0C6B88 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FB6FC 7F0C6B8C 018D1821 */ addu $v1, $t4, $t5 +.Ljp7F0C6B90: +/* 0FB700 7F0C6B90 8C790024 */ lw $t9, 0x24($v1) +/* 0FB704 7F0C6B94 8C6E0094 */ lw $t6, 0x94($v1) +/* 0FB708 7F0C6B98 8C6F0104 */ lw $t7, 0x104($v1) +/* 0FB70C 7F0C6B9C 00992021 */ addu $a0, $a0, $t9 +/* 0FB710 7F0C6BA0 8C6B0174 */ lw $t3, 0x174($v1) +/* 0FB714 7F0C6BA4 008E2021 */ addu $a0, $a0, $t6 +/* 0FB718 7F0C6BA8 24A50004 */ addiu $a1, $a1, 4 +/* 0FB71C 7F0C6BAC 008F2021 */ addu $a0, $a0, $t7 +/* 0FB720 7F0C6BB0 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0FB724 7F0C6BB4 14A8FFF6 */ bne $a1, $t0, .Ljp7F0C6B90 +/* 0FB728 7F0C6BB8 008B2021 */ addu $a0, $a0, $t3 +.Ljp7F0C6BBC: +/* 0FB72C 7F0C6BBC 0FC05202 */ jal get_scenario +/* 0FB730 7F0C6BC0 AFA40058 */ sw $a0, 0x58($sp) +/* 0FB734 7F0C6BC4 24010001 */ li $at, 1 +/* 0FB738 7F0C6BC8 14410004 */ bne $v0, $at, .Ljp7F0C6BDC +/* 0FB73C 7F0C6BCC 8FA40058 */ lw $a0, 0x58($sp) +/* 0FB740 7F0C6BD0 28810002 */ slti $at, $a0, 2 +/* 0FB744 7F0C6BD4 50200050 */ beql $at, $zero, .Ljp7F0C6D18 +/* 0FB748 7F0C6BD8 02201025 */ move $v0, $s1 +.Ljp7F0C6BDC: +/* 0FB74C 7F0C6BDC 0FC2D6D9 */ jal sub_GAME_7F0B4FB4 +/* 0FB750 7F0C6BE0 02202025 */ move $a0, $s1 +/* 0FB754 7F0C6BE4 0FC2B652 */ jal microcode_constructor +/* 0FB758 7F0C6BE8 00402025 */ move $a0, $v0 +/* 0FB75C 7F0C6BEC 00408825 */ move $s1, $v0 +/* 0FB760 7F0C6BF0 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB764 7F0C6BF4 3404A022 */ li $a0, 40994 +/* 0FB768 7F0C6BF8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB76C 7F0C6BFC 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB770 7F0C6C00 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB774 7F0C6C04 AFA20060 */ sw $v0, 0x60($sp) +/* 0FB778 7F0C6C08 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB77C 7F0C6C0C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0FB780 7F0C6C10 27A50068 */ addiu $a1, $sp, 0x68 +/* 0FB784 7F0C6C14 00403025 */ move $a2, $v0 +/* 0FB788 7F0C6C18 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB78C 7F0C6C1C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB790 7F0C6C20 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB794 7F0C6C24 0C001145 */ jal get_video2_settings_ulx +/* 0FB798 7F0C6C28 00000000 */ nop +/* 0FB79C 7F0C6C2C 0C001127 */ jal get_video2_settings_width +/* 0FB7A0 7F0C6C30 A7A20056 */ sh $v0, 0x56($sp) +/* 0FB7A4 7F0C6C34 87A80056 */ lh $t0, 0x56($sp) +/* 0FB7A8 7F0C6C38 8FAE0068 */ lw $t6, 0x68($sp) +/* 0FB7AC 7F0C6C3C 00026843 */ sra $t5, $v0, 1 +/* 0FB7B0 7F0C6C40 01A8C821 */ addu $t9, $t5, $t0 +/* 0FB7B4 7F0C6C44 000E7843 */ sra $t7, $t6, 1 +/* 0FB7B8 7F0C6C48 032F5023 */ subu $t2, $t9, $t7 +/* 0FB7BC 7F0C6C4C 0C001149 */ jal get_video2_settings_uly +/* 0FB7C0 7F0C6C50 AFAA0070 */ sw $t2, 0x70($sp) +/* 0FB7C4 7F0C6C54 0C00112B */ jal get_video2_settings_height +/* 0FB7C8 7F0C6C58 A7A20056 */ sh $v0, 0x56($sp) +/* 0FB7CC 7F0C6C5C 87A80056 */ lh $t0, 0x56($sp) +/* 0FB7D0 7F0C6C60 8FA90064 */ lw $t1, 0x64($sp) +/* 0FB7D4 7F0C6C64 0002C043 */ sra $t8, $v0, 1 +/* 0FB7D8 7F0C6C68 8FAA0070 */ lw $t2, 0x70($sp) +/* 0FB7DC 7F0C6C6C 8FAE0068 */ lw $t6, 0x68($sp) +/* 0FB7E0 7F0C6C70 03086021 */ addu $t4, $t8, $t0 +/* 0FB7E4 7F0C6C74 00096843 */ sra $t5, $t1, 1 +/* 0FB7E8 7F0C6C78 018D1823 */ subu $v1, $t4, $t5 +/* 0FB7EC 7F0C6C7C 0069C821 */ addu $t9, $v1, $t1 +/* 0FB7F0 7F0C6C80 272F0001 */ addiu $t7, $t9, 1 +/* 0FB7F4 7F0C6C84 014E3821 */ addu $a3, $t2, $t6 +/* 0FB7F8 7F0C6C88 24E70001 */ addiu $a3, $a3, 1 +/* 0FB7FC 7F0C6C8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB800 7F0C6C90 2466FFFF */ addiu $a2, $v1, -1 +/* 0FB804 7F0C6C94 AFA3006C */ sw $v1, 0x6c($sp) +/* 0FB808 7F0C6C98 02202025 */ move $a0, $s1 +/* 0FB80C 7F0C6C9C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB810 7F0C6CA0 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0FB814 7F0C6CA4 2545FFFF */ addiu $a1, $t2, -1 +/* 0FB818 7F0C6CA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB81C 7F0C6CAC 00408825 */ move $s1, $v0 +/* 0FB820 7F0C6CB0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB824 7F0C6CB4 00105C03 */ sra $t3, $s0, 0x10 +/* 0FB828 7F0C6CB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB82C 7F0C6CBC 01608025 */ move $s0, $t3 +/* 0FB830 7F0C6CC0 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FB834 7F0C6CC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB838 7F0C6CC8 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB83C 7F0C6CCC 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FB840 7F0C6CD0 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FB844 7F0C6CD4 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FB848 7F0C6CD8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB84C 7F0C6CDC 02202025 */ move $a0, $s1 +/* 0FB850 7F0C6CE0 27A50070 */ addiu $a1, $sp, 0x70 +/* 0FB854 7F0C6CE4 27A6006C */ addiu $a2, $sp, 0x6c +/* 0FB858 7F0C6CE8 8FA70060 */ lw $a3, 0x60($sp) +/* 0FB85C 7F0C6CEC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB860 7F0C6CF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB864 7F0C6CF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB868 7F0C6CF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB86C 7F0C6CFC AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB870 7F0C6D00 0FC2B99B */ jal en_text_write_stuff +/* 0FB874 7F0C6D04 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB878 7F0C6D08 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0FB87C 7F0C6D0C 00402025 */ move $a0, $v0 +/* 0FB880 7F0C6D10 00408825 */ move $s1, $v0 +.Ljp7F0C6D14: +/* 0FB884 7F0C6D14 02201025 */ move $v0, $s1 +.Ljp7F0C6D18: +/* 0FB888 7F0C6D18 8FBF003C */ lw $ra, 0x3c($sp) +/* 0FB88C 7F0C6D1C 8FB00034 */ lw $s0, 0x34($sp) +/* 0FB890 7F0C6D20 8FB10038 */ lw $s1, 0x38($sp) +/* 0FB894 7F0C6D24 03E00008 */ jr $ra +/* 0FB898 7F0C6D28 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0C6048(void) +{ + if (is_gameover_flag != 0) + { + return 0; + } + return (pPlayer->mpmenuon | (0 < pPlayer->healthdisplaytime)); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C6048 +/* 0FAB78 7F0C6048 3C0E8009 */ lui $t6, %hi(is_gameover_flag) +/* 0FAB7C 7F0C604C 8DCEC704 */ lw $t6, %lo(is_gameover_flag)($t6) +/* 0FAB80 7F0C6050 3C028008 */ lui $v0, %hi(pPlayer) +/* 0FAB84 7F0C6054 11C00003 */ beqz $t6, .L7F0C6064 +/* 0FAB88 7F0C6058 00000000 */ nop +/* 0FAB8C 7F0C605C 03E00008 */ jr $ra +/* 0FAB90 7F0C6060 00001025 */ move $v0, $zero + +.L7F0C6064: +/* 0FAB94 7F0C6064 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0FAB98 7F0C6068 8C582A00 */ lw $t8, 0x2a00($v0) +/* 0FAB9C 7F0C606C 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 0FABA0 7F0C6070 0018C82A */ slt $t9, $zero, $t8 +/* 0FABA4 7F0C6074 01F91825 */ or $v1, $t7, $t9 +/* 0FABA8 7F0C6078 03E00008 */ jr $ra +/* 0FABAC 7F0C607C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 checkGamePaused(void) { + return is_paused; +} +#else +GLOBAL_ASM( +.text +glabel checkGamePaused +/* 0FABB0 7F0C6080 3C028009 */ lui $v0, %hi(is_paused) +/* 0FABB4 7F0C6084 03E00008 */ jr $ra +/* 0FABB8 7F0C6088 8C42C718 */ lw $v0, %lo(is_paused)($v0) +) +#endif + + diff --git a/src/game/mp_weapon.c b/src/game/mp_weapon.c new file mode 100644 index 0000000..686663a --- /dev/null +++ b/src/game/mp_weapon.c @@ -0,0 +1,249 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "game/mp_weapon.h" + +// data +//D:80048670 +struct s_mp_weapon_set mp_weapon_set_slaps[] = +{ + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1} +}; + +//D:80048730 +struct s_mp_weapon_set mp_weapon_set_pistols[] = +{ + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1} +}; + +//D:800487F0 +struct s_mp_weapon_set mp_weapon_set_knife[] = +{ + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0} +}; + +//D:800488B0 +struct s_mp_weapon_set mp_weapon_set_auto[] = +{ + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_MP5K, PROP_chrmp5k, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_MP5K, PROP_chrmp5k, 1.0, AMMO_9MM, 0x64, 1} +}; + +//D:80048970 +struct s_mp_weapon_set mp_weapon_set_power[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_FNP90, PROP_chrfnp90, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_FNP90, PROP_chrfnp90, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_AUTOSHOT, PROP_chrautoshot, 1.0, AMMO_SHOTGUN, 0x1E, 1}, + {ITEM_AUTOSHOT, PROP_chrautoshot, 1.0, AMMO_SHOTGUN, 0x1E, 1} +}; + +//D:80048A30 +struct s_mp_weapon_set mp_weapon_set_sniper[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_SNIPERRIFLE, PROP_chrsniperrifle, 1.0, AMMO_RIFLE, 0x32, 1}, + {ITEM_SNIPERRIFLE, PROP_chrsniperrifle, 1.0, AMMO_RIFLE, 0x32, 1} +}; + +//D:80048AF0 +struct s_mp_weapon_set mp_weapon_set_grenade[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_GRENADE, PROP_chrgrenade, 1.5, AMMO_GRENADE, 5, 0}, + {ITEM_GRENADE, PROP_chrgrenade, 1.5, AMMO_GRENADE, 5, 0} +}; + +//D:80048BB0 +struct s_mp_weapon_set mp_weapon_set_remote_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, +#ifdef VERSION_US + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, +#else + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, +#endif + {ITEM_REMOTEMINE, PROP_chrremotemine, 1.5, AMMO_REMOTEMINE, 5, 0}, + {ITEM_REMOTEMINE, PROP_chrremotemine, 1.5, AMMO_REMOTEMINE, 5, 0} +}; + + +//D:80048C70 +struct s_mp_weapon_set mp_weapon_set_glaunch[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_GRENADELAUNCH, PROP_chrgrenadelaunch, 1.0, AMMO_GRENADEROUND, 6, 1}, + {ITEM_GRENADELAUNCH, PROP_chrgrenadelaunch, 1.0, AMMO_GRENADEROUND, 6, 1} +}; + +//D:80048D30 +struct s_mp_weapon_set mp_weapon_set_timed_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, +#ifdef VERSION_US + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, +#else + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, +#endif + {ITEM_TIMEDMINE, PROP_chrtimedmine, 1.5, AMMO_TIMEDMINE, 5, 0}, + {ITEM_TIMEDMINE, PROP_chrtimedmine, 1.5, AMMO_TIMEDMINE, 5, 0} +}; + +//D:80048DF0 +struct s_mp_weapon_set mp_weapon_set_prox_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_PROXIMITYMINE, PROP_chrproximitymine, 1.5, AMMO_PROXMINE, 5, 0}, + {ITEM_PROXIMITYMINE, PROP_chrproximitymine, 1.5, AMMO_PROXMINE, 5, 0} +}; + +//D:80048EB0 +struct s_mp_weapon_set mp_weapon_set_rockets[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_ROCKETLAUNCH, PROP_chrrocketlaunch, 1.5, AMMO_ROCKETS, 6, 1}, + {ITEM_ROCKETLAUNCH, PROP_chrrocketlaunch, 1.5, AMMO_ROCKETS, 6, 1} +}; + +//D:80048F70 +struct s_mp_weapon_set mp_weapon_set_lasers[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_LASER, PROP_chrlaser, 1.5, AMMO_NONE, 0, 1}, + {ITEM_LASER, PROP_chrlaser, 1.5, AMMO_NONE, 0, 1} +}; + +//D:80049030 +struct s_mp_weapon_set mp_weapon_set_golden[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_GOLDENGUN, PROP_chrgolden, 1.5, AMMO_GGUN, 0xA, 1} +}; + +//D:800490F0 +struct s_mp_weapon_set_text mp_weapon_set_text_table[] = +{ + {TEXT(LMPWEAPONS, 0x0), mp_weapon_set_slaps}, + {TEXT(LMPWEAPONS, 0x1), mp_weapon_set_pistols}, + {TEXT(LMPWEAPONS, 0xD), mp_weapon_set_knife}, + {TEXT(LMPWEAPONS, 0x2), mp_weapon_set_auto}, + {TEXT(LMPWEAPONS, 0x3), mp_weapon_set_power}, + {TEXT(LMPWEAPONS, 0x4), mp_weapon_set_sniper}, + {TEXT(LMPWEAPONS, 0x5), mp_weapon_set_grenade}, + {TEXT(LMPWEAPONS, 0x6), mp_weapon_set_remote_m}, + {TEXT(LMPWEAPONS, 0x7), mp_weapon_set_glaunch}, + {TEXT(LMPWEAPONS, 0x8), mp_weapon_set_timed_m}, + {TEXT(LMPWEAPONS, 0x9), mp_weapon_set_prox_m}, + {TEXT(LMPWEAPONS, 0xA), mp_weapon_set_rockets}, + {TEXT(LMPWEAPONS, 0xB), mp_weapon_set_lasers}, + {TEXT(LMPWEAPONS, 0xC), mp_weapon_set_golden} +}; + +s32 mp_weapon_set = 0xB; + + +//increment mp_weapon_set by 1, capping at 0xE +void incrementMPWeaponSet(void) +{ + mp_weapon_set = (mp_weapon_set + 1) % 0xe; +} + +//return pointer to selected mp_weapon_set textID +u16* getPtrMPWeaponSetTextID(void) +{ + return &mp_weapon_set_text_table[mp_weapon_set].textID; +} + +//return pointer to selected mp_weapon_set data +struct s_mp_weapon_set* getPtrMPWeaponSetData(void) +{ + return mp_weapon_set_text_table[mp_weapon_set].weapon_set; +} + +//set mp weapon set +void setMPWeaponSet(s32 setNUM) +{ + mp_weapon_set = setNUM; +} + +//return mp weapon set +s32 getMPWeaponSet(void) +{ + return mp_weapon_set; +} diff --git a/src/game/mp_weapon.h b/src/game/mp_weapon.h new file mode 100644 index 0000000..0268594 --- /dev/null +++ b/src/game/mp_weapon.h @@ -0,0 +1,42 @@ +#ifndef _MP_WEAPON_H_ +#define _MP_WEAPON_H_ +#include "ultra64.h" + +struct s_mp_weapon_set +{ + s32 itemID; + s32 propID; + f32 size; + s32 ammotype; + s32 ammoamount; + s32 allowpickup; +}; + +struct s_mp_weapon_set_text +{ + u16 textID; + struct s_mp_weapon_set * weapon_set; +}; + +extern struct s_mp_weapon_set mp_weapon_set_slaps[]; +extern struct s_mp_weapon_set mp_weapon_set_pistols[]; +extern struct s_mp_weapon_set mp_weapon_set_knife[]; +extern struct s_mp_weapon_set mp_weapon_set_auto[]; +extern struct s_mp_weapon_set mp_weapon_set_power[]; +extern struct s_mp_weapon_set mp_weapon_set_sniper[]; +extern struct s_mp_weapon_set mp_weapon_set_grenade[]; +extern struct s_mp_weapon_set mp_weapon_set_remote_m[]; +extern struct s_mp_weapon_set mp_weapon_set_glaunch[]; +extern struct s_mp_weapon_set mp_weapon_set_timed_m[]; +extern struct s_mp_weapon_set mp_weapon_set_prox_m[]; +extern struct s_mp_weapon_set mp_weapon_set_rockets[]; +extern struct s_mp_weapon_set mp_weapon_set_lasers[]; +extern struct s_mp_weapon_set mp_weapon_set_golden[]; + +void incrementMPWeaponSet(void); +u16* getPtrMPWeaponSetTextID(void); +struct s_mp_weapon_set* getPtrMPWeaponSetData(void); +void setMPWeaponSet(s32 arg0); +s32 getMPWeaponSet(void); + +#endif diff --git a/src/game/music_0D2720.c b/src/game/music_0D2720.c new file mode 100644 index 0000000..c6ec204 --- /dev/null +++ b/src/game/music_0D2720.c @@ -0,0 +1,279 @@ +#include "ultra64.h" + +struct music_setup +{ + s16 stage_id; + s16 main_music; + s16 bg_sound; + s16 xtrack; +}; + +// data +//D:8004EB10 +struct music_setup music_setup_entries[] = { +{ 9, 0xF, 0xFFFF, 0x29}, +{0x14, 0xC, 0xFFFF, 0x26}, +{0x16, 0x11, 0xFFFF, 0x3D}, +{0x17, 8, 0xFFFF, 0x12}, +{0x18, 0xB, 0xFFFF, 0x25}, +{0x19, 3, 0xFFFF, 0x1D}, +{0x1A, 0xA, 0xFFFF, 0x3E}, +{0x1B, 0x10, 0xFFFF, 0x2A}, +{0x1C, 0x19, 0xFFFF, 0x2E}, +{0x1D, 0xE, 0xFFFF, 0x28}, +{0x1E, 4, 0xFFFF, 0x20}, +{0x20, 0x16, 0xFFFF, 0x2F}, +{0x21, 9, 0xFFFF, 0x35}, +{0x22, 7, 0xFFFF, 0x1F}, +{0x23, 0x32, 0xFFFF, 0x33}, +{0x24, 0x39, 0xFFFF, 0x35}, +{0x25, 0x37, 0xFFFF, 0x2B}, +{0x27, 0x1A, 0xFFFF, 0x15}, +{0x28, 6, 0xFFFF, 0xFFFF}, +{0x29, 0x13, 0xFFFF, 0x30}, +{0x2A, 0x1C, 0xFFFF, 0xFFFF}, +{0x2B, 0x1C, 0x35, 0x3C}, +{0x36, 0x31, 0xFFFF, 0xFFFF}, +{0} +}; + +//D:8004EBD0 +s16 random_tracks[] = { + 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, + 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x15, 0x16, 0x19, 0x1A, 0x1C, + 0x1D, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, 0x29, + 0x2A, 0x2B, 0x2D, 0x2E, 0x2F, 0x30, 0x32, 0x34, 0x38, 0x39, 0 +}; + + + +#ifdef NONMATCHING +void getmusictrack_or_randomtrack(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getmusictrack_or_randomtrack +/* 107250 7F0D2720 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 107254 7F0D2724 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 107258 7F0D2728 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 10725C 7F0D272C AFBF0014 */ sw $ra, 0x14($sp) +/* 107260 7F0D2730 11C0002A */ beqz $t6, .L7F0D27DC +/* 107264 7F0D2734 3C0A8005 */ lui $t2, %hi(random_tracks) +/* 107268 7F0D2738 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 10726C 7F0D273C 25E2EB10 */ addiu $v0, $t7, %lo(music_setup_entries) +/* 107270 7F0D2740 84430000 */ lh $v1, ($v0) +.L7F0D2744: +/* 107274 7F0D2744 54830022 */ bnel $a0, $v1, .L7F0D27D0 +/* 107278 7F0D2748 84430008 */ lh $v1, 8($v0) +/* 10727C 7F0D274C 84430002 */ lh $v1, 2($v0) +/* 107280 7F0D2750 2401FFFF */ li $at, -1 +/* 107284 7F0D2754 3C188005 */ lui $t8, %hi(random_tracks) +/* 107288 7F0D2758 1461001A */ bne $v1, $at, .L7F0D27C4 +/* 10728C 7F0D275C 00000000 */ nop +/* 107290 7F0D2760 8718EBD0 */ lh $t8, %lo(random_tracks)($t8) +/* 107294 7F0D2764 3C028005 */ lui $v0, %hi(random_tracks) +/* 107298 7F0D2768 00001825 */ move $v1, $zero +/* 10729C 7F0D276C 13000006 */ beqz $t8, .L7F0D2788 +/* 1072A0 7F0D2770 2442EBD0 */ addiu $v0, %lo(random_tracks) # addiu $v0, $v0, -0x1430 +/* 1072A4 7F0D2774 84590002 */ lh $t9, 2($v0) +.L7F0D2778: +/* 1072A8 7F0D2778 24630001 */ addiu $v1, $v1, 1 +/* 1072AC 7F0D277C 24420002 */ addiu $v0, $v0, 2 +/* 1072B0 7F0D2780 5720FFFD */ bnezl $t9, .L7F0D2778 +/* 1072B4 7F0D2784 84590002 */ lh $t9, 2($v0) +.L7F0D2788: +/* 1072B8 7F0D2788 0C002914 */ jal get_random_value +/* 1072BC 7F0D278C AFA30020 */ sw $v1, 0x20($sp) +/* 1072C0 7F0D2790 8FA30020 */ lw $v1, 0x20($sp) +/* 1072C4 7F0D2794 3C048005 */ lui $a0, %hi(random_tracks) +/* 1072C8 7F0D2798 0043001B */ divu $zero, $v0, $v1 +/* 1072CC 7F0D279C 00004010 */ mfhi $t0 +/* 1072D0 7F0D27A0 00084840 */ sll $t1, $t0, 1 +/* 1072D4 7F0D27A4 00892021 */ addu $a0, $a0, $t1 +/* 1072D8 7F0D27A8 8484EBD0 */ lh $a0, %lo(random_tracks)($a0) +/* 1072DC 7F0D27AC 14600002 */ bnez $v1, .L7F0D27B8 +/* 1072E0 7F0D27B0 00000000 */ nop +/* 1072E4 7F0D27B4 0007000D */ break 7 +.L7F0D27B8: +/* 1072E8 7F0D27B8 00801025 */ move $v0, $a0 +/* 1072EC 7F0D27BC 1000001F */ b .L7F0D283C +/* 1072F0 7F0D27C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D27C4: +/* 1072F4 7F0D27C4 1000001C */ b .L7F0D2838 +/* 1072F8 7F0D27C8 00601025 */ move $v0, $v1 +/* 1072FC 7F0D27CC 84430008 */ lh $v1, 8($v0) +.L7F0D27D0: +/* 107300 7F0D27D0 24420008 */ addiu $v0, $v0, 8 +/* 107304 7F0D27D4 1460FFDB */ bnez $v1, .L7F0D2744 +/* 107308 7F0D27D8 00000000 */ nop +.L7F0D27DC: +/* 10730C 7F0D27DC 854AEBD0 */ lh $t2, %lo(random_tracks)($t2) +/* 107310 7F0D27E0 3C028005 */ lui $v0, %hi(random_tracks) +/* 107314 7F0D27E4 00001825 */ move $v1, $zero +/* 107318 7F0D27E8 11400006 */ beqz $t2, .L7F0D2804 +/* 10731C 7F0D27EC 2442EBD0 */ addiu $v0, %lo(random_tracks) # addiu $v0, $v0, -0x1430 +/* 107320 7F0D27F0 844B0002 */ lh $t3, 2($v0) +.L7F0D27F4: +/* 107324 7F0D27F4 24630001 */ addiu $v1, $v1, 1 +/* 107328 7F0D27F8 24420002 */ addiu $v0, $v0, 2 +/* 10732C 7F0D27FC 5560FFFD */ bnezl $t3, .L7F0D27F4 +/* 107330 7F0D2800 844B0002 */ lh $t3, 2($v0) +.L7F0D2804: +/* 107334 7F0D2804 0C002914 */ jal get_random_value +/* 107338 7F0D2808 AFA30018 */ sw $v1, 0x18($sp) +/* 10733C 7F0D280C 8FA30018 */ lw $v1, 0x18($sp) +/* 107340 7F0D2810 3C048005 */ lui $a0, %hi(random_tracks) +/* 107344 7F0D2814 0043001B */ divu $zero, $v0, $v1 +/* 107348 7F0D2818 00006010 */ mfhi $t4 +/* 10734C 7F0D281C 000C6840 */ sll $t5, $t4, 1 +/* 107350 7F0D2820 008D2021 */ addu $a0, $a0, $t5 +/* 107354 7F0D2824 8484EBD0 */ lh $a0, %lo(random_tracks)($a0) +/* 107358 7F0D2828 14600002 */ bnez $v1, .L7F0D2834 +/* 10735C 7F0D282C 00000000 */ nop +/* 107360 7F0D2830 0007000D */ break 7 +.L7F0D2834: +/* 107364 7F0D2834 00801025 */ move $v0, $a0 +.L7F0D2838: +/* 107368 7F0D2838 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D283C: +/* 10736C 7F0D283C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 107370 7F0D2840 03E00008 */ jr $ra +/* 107374 7F0D2844 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2848(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 phi_v0; + void *phi_v1; + + // Node 0 + temp_v1 = (0x80050000 + -0x14f0); + if (music_setup_entries != 0) + { + // Node 1 + phi_v0 = *temp_v1; + phi_v1 = temp_v1; + // Node 2 + if (arg0 == phi_v0) + { + // Node 3 + return phi_v1->unk4; + } + // Node 4 + temp_v0 = phi_v1->unk8; + phi_v0 = temp_v0; + phi_v1 = (phi_v1 + 8); + if (temp_v0 != 0) + { + goto loop_2; + } + } + // Node 5 + return -1; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2848 +/* 107378 7F0D2848 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 10737C 7F0D284C 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 107380 7F0D2850 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 107384 7F0D2854 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) +/* 107388 7F0D2858 51C0000B */ beql $t6, $zero, .L7F0D2888 +/* 10738C 7F0D285C 2402FFFF */ li $v0, -1 +/* 107390 7F0D2860 84620000 */ lh $v0, ($v1) +.L7F0D2864: +/* 107394 7F0D2864 54820004 */ bnel $a0, $v0, .L7F0D2878 +/* 107398 7F0D2868 84620008 */ lh $v0, 8($v1) +/* 10739C 7F0D286C 03E00008 */ jr $ra +/* 1073A0 7F0D2870 84620004 */ lh $v0, 4($v1) + +/* 1073A4 7F0D2874 84620008 */ lh $v0, 8($v1) +.L7F0D2878: +/* 1073A8 7F0D2878 24630008 */ addiu $v1, $v1, 8 +/* 1073AC 7F0D287C 1440FFF9 */ bnez $v0, .L7F0D2864 +/* 1073B0 7F0D2880 00000000 */ nop +/* 1073B4 7F0D2884 2402FFFF */ li $v0, -1 +.L7F0D2888: +/* 1073B8 7F0D2888 03E00008 */ jr $ra +/* 1073BC 7F0D288C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2890(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 phi_v0; + void *phi_v1; + + // Node 0 + temp_v1 = (0x80050000 + -0x14f0); + if (music_setup_entries != 0) + { + // Node 1 + phi_v0 = *temp_v1; + phi_v1 = temp_v1; + // Node 2 + if (arg0 == phi_v0) + { + // Node 3 + return phi_v1->unk6; + } + // Node 4 + temp_v0 = phi_v1->unk8; + phi_v0 = temp_v0; + phi_v1 = (phi_v1 + 8); + if (temp_v0 != 0) + { + goto loop_2; + } + } + // Node 5 + return -1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2890 +/* 1073C0 7F0D2890 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 1073C4 7F0D2894 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 1073C8 7F0D2898 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 1073CC 7F0D289C 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) +/* 1073D0 7F0D28A0 51C0000B */ beql $t6, $zero, .L7F0D28D0 +/* 1073D4 7F0D28A4 2402FFFF */ li $v0, -1 +/* 1073D8 7F0D28A8 84620000 */ lh $v0, ($v1) +.L7F0D28AC: +/* 1073DC 7F0D28AC 54820004 */ bnel $a0, $v0, .L7F0D28C0 +/* 1073E0 7F0D28B0 84620008 */ lh $v0, 8($v1) +/* 1073E4 7F0D28B4 03E00008 */ jr $ra +/* 1073E8 7F0D28B8 84620006 */ lh $v0, 6($v1) + +/* 1073EC 7F0D28BC 84620008 */ lh $v0, 8($v1) +.L7F0D28C0: +/* 1073F0 7F0D28C0 24630008 */ addiu $v1, $v1, 8 +/* 1073F4 7F0D28C4 1440FFF9 */ bnez $v0, .L7F0D28AC +/* 1073F8 7F0D28C8 00000000 */ nop +/* 1073FC 7F0D28CC 2402FFFF */ li $v0, -1 +.L7F0D28D0: +/* 107400 7F0D28D0 03E00008 */ jr $ra +/* 107404 7F0D28D4 00000000 */ nop +) +#endif + + + diff --git a/src/game/null_007970.c b/src/game/null_007970.c new file mode 100644 index 0000000..544af8d --- /dev/null +++ b/src/game/null_007970.c @@ -0,0 +1,8 @@ +#include "ultra64.h" + + + +void cleanup_REMOVED_(void){ + +} + diff --git a/src/game/ob.c b/src/game/ob.c new file mode 100644 index 0000000..983b897 --- /dev/null +++ b/src/game/ob.c @@ -0,0 +1,940 @@ +#include "ultra64.h" +#include "game/ob.h" +#include "memp.h" +#include "assets/obseg/obseg.h" +#include "game/decompress.h" + + +//bss +//800888b0 +struct resource_lookup_data_entry resource_lookup_data_array[736]; + +// data +//D:80046050 +s32 ob_c_debug_notice_list_entry = 0; + + +#include "assets/obseg/file_resource_table.inc.c" +/* struct fileentry file_resource_table[] = + { + blah; + }; + */ + + +//D:800482D4 +s32 file_entry_max = OBJ_INDEX_END; + + + + +void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +{ + u8 *source; + u8 buffer[0x2100]; + s32 unused; + + + if (bytes == 0) + { + romCopy(ptrdata, srcfile->hw_address, lookupdata->rom_size); + return; + } + source = (ptrdata + bytes) - ((lookupdata->rom_size + 7) & -8); + if ((u32) (source - ptrdata) < 8U) + { + lookupdata->pc_remaining = 0; + } + else + { + romCopy(source, srcfile->hw_address, lookupdata->rom_size); + lookupdata->pc_remaining = decompressdata(source, ptrdata, buffer);; + } +} + + + + +#ifdef NONMATCHING +//need to tinker with stack size +void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +{ + void *sp2124; + u8 buffer[8450]; + u8 *pPayload; + u32 size; +static const u8 rz_header_1[] = {0x11, 0x72, 0x00, 0x00}; +static const u8 rz_header_2[] = {0x11, 0x72, 0x00, 0x00}; + if (bytes == 0) + { + load_resource_on_indy(srcfile->filename, ptrdata); + return; + } + check_file_found_on_indy(srcfile->filename, lookupdata->pc_size); + pPayload = (ptrdata + bytes) - ((lookupdata->pc_size + 7) & -8); + if ((u32) (pPayload - ptrdata) < 8U) + { + lookupdata->pc_remaining = 0; + } + else + { + sp2124 = pPayload; + load_resource_on_indy(srcfile->filename, pPayload); + if ((pPayload[0] == rz_header_1[0]) && (pPayload[1] == rz_header_2[1])) + { + size = decompressdata(pPayload, ptrdata, &buffer); + } + else + { + bcopy(pPayload, ptrdata, lookupdata->pc_size); + size = lookupdata->pc_size; + } + lookupdata->pc_remaining = (s32) size; + } +} +#else +GLOBAL_ASM( +.rdata +/*8005b66c*/ +glabel rz_header_1 +.word 0x11720000 +/*8005b670*/ +glabel rz_header_2 +.word 0x11720000 +.text +glabel resource_load_from_indy +/* 0F1664 7F0BCB34 27BDDED8 */ addiu $sp, $sp, -0x2128 +/* 0F1668 7F0BCB38 AFB10018 */ sw $s1, 0x18($sp) +/* 0F166C 7F0BCB3C AFB00014 */ sw $s0, 0x14($sp) +/* 0F1670 7F0BCB40 00808025 */ move $s0, $a0 +/* 0F1674 7F0BCB44 00E08825 */ move $s1, $a3 +/* 0F1678 7F0BCB48 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F167C 7F0BCB4C 14A00006 */ bnez $a1, .L7F0BCB68 +/* 0F1680 7F0BCB50 AFA5212C */ sw $a1, 0x212c($sp) +/* 0F1684 7F0BCB54 8CC40004 */ lw $a0, 4($a2) +/* 0F1688 7F0BCB58 0FC33FE7 */ jal load_resource_on_indy +/* 0F168C 7F0BCB5C 02002825 */ move $a1, $s0 +/* 0F1690 7F0BCB60 1000002D */ b .L7F0BCC18 +/* 0F1694 7F0BCB64 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCB68: +/* 0F1698 7F0BCB68 8CC40004 */ lw $a0, 4($a2) +/* 0F169C 7F0BCB6C AFA62130 */ sw $a2, 0x2130($sp) +/* 0F16A0 7F0BCB70 0FC34026 */ jal check_file_found_on_indy +/* 0F16A4 7F0BCB74 26250008 */ addiu $a1, $s1, 8 +/* 0F16A8 7F0BCB78 8E390008 */ lw $t9, 8($s1) +/* 0F16AC 7F0BCB7C 8FAF212C */ lw $t7, 0x212c($sp) +/* 0F16B0 7F0BCB80 2401FFF8 */ li $at, -8 +/* 0F16B4 7F0BCB84 27280007 */ addiu $t0, $t9, 7 +/* 0F16B8 7F0BCB88 01014824 */ and $t1, $t0, $at +/* 0F16BC 7F0BCB8C 020FC021 */ addu $t8, $s0, $t7 +/* 0F16C0 7F0BCB90 03093823 */ subu $a3, $t8, $t1 +/* 0F16C4 7F0BCB94 00F05023 */ subu $t2, $a3, $s0 +/* 0F16C8 7F0BCB98 2D410008 */ sltiu $at, $t2, 8 +/* 0F16CC 7F0BCB9C 10200003 */ beqz $at, .L7F0BCBAC +/* 0F16D0 7F0BCBA0 8FA62130 */ lw $a2, 0x2130($sp) +/* 0F16D4 7F0BCBA4 1000001B */ b .L7F0BCC14 +/* 0F16D8 7F0BCBA8 AE200004 */ sw $zero, 4($s1) +.L7F0BCBAC: +/* 0F16DC 7F0BCBAC 8CC40004 */ lw $a0, 4($a2) +/* 0F16E0 7F0BCBB0 AFA72124 */ sw $a3, 0x2124($sp) +/* 0F16E4 7F0BCBB4 0FC33FE7 */ jal load_resource_on_indy +/* 0F16E8 7F0BCBB8 00E02825 */ move $a1, $a3 +/* 0F16EC 7F0BCBBC 8FA72124 */ lw $a3, 0x2124($sp) +/* 0F16F0 7F0BCBC0 3C0C8006 */ lui $t4, %hi(rz_header_1) +/* 0F16F4 7F0BCBC4 918CB66C */ lbu $t4, %lo(rz_header_1)($t4) +/* 0F16F8 7F0BCBC8 90EB0000 */ lbu $t3, ($a3) +/* 0F16FC 7F0BCBCC 3C0E8006 */ lui $t6, %hi(rz_header_2 + 0x1) +/* 0F1700 7F0BCBD0 02002825 */ move $a1, $s0 +/* 0F1704 7F0BCBD4 156C000B */ bne $t3, $t4, .L7F0BCC04 +/* 0F1708 7F0BCBD8 00E02025 */ move $a0, $a3 +/* 0F170C 7F0BCBDC 90ED0001 */ lbu $t5, 1($a3) +/* 0F1710 7F0BCBE0 91CEB671 */ lbu $t6, %lo(rz_header_2 + 0x1)($t6) +/* 0F1714 7F0BCBE4 27A60024 */ addiu $a2, $sp, 0x24 +/* 0F1718 7F0BCBE8 15AE0006 */ bne $t5, $t6, .L7F0BCC04 +/* 0F171C 7F0BCBEC 00000000 */ nop +/* 0F1720 7F0BCBF0 00E02025 */ move $a0, $a3 +/* 0F1724 7F0BCBF4 0FC339FC */ jal decompressdata +/* 0F1728 7F0BCBF8 02002825 */ move $a1, $s0 +/* 0F172C 7F0BCBFC 10000004 */ b .L7F0BCC10 +/* 0F1730 7F0BCC00 00401825 */ move $v1, $v0 +.L7F0BCC04: +/* 0F1734 7F0BCC04 0C003E5C */ jal bcopy +/* 0F1738 7F0BCC08 8E260008 */ lw $a2, 8($s1) +/* 0F173C 7F0BCC0C 8E230008 */ lw $v1, 8($s1) +.L7F0BCC10: +/* 0F1740 7F0BCC10 AE230004 */ sw $v1, 4($s1) +.L7F0BCC14: +/* 0F1744 7F0BCC14 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCC18: +/* 0F1748 7F0BCC18 8FB00014 */ lw $s0, 0x14($sp) +/* 0F174C 7F0BCC1C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F1750 7F0BCC20 03E00008 */ jr $ra +/* 0F1754 7F0BCC24 27BD2128 */ addiu $sp, $sp, 0x2128 +) +#endif + + + + + +#ifdef NONMATCHING +void obInitDebugNoticeList(void) +{ + struct resource_lookup_data_entry *lookupentry; + struct resource_lookup_data_entry *nextlookup; + int file_count; + struct fileentry *filetable_entry; + + debCheckAddDebugNoticeListEntry(&ob_c_debug_notice_list_entry,"ob_c_debug"); + filetable_entry = &file_resource_table[0]; + file_count = file_entry_max - 1; + if (1 < file_count) { + lookupentry = resource_lookup_data_array + 1; + while (nextlookup < resource_lookup_data_array + file_count) { + filetable_entry = filetable_entry + 1; + nextlookup = lookupentry + 1; + lookupentry->rom_size = filetable_entry[1].hw_address - filetable_entry->hw_address; + lookupentry->pc_remaining = 0; + lookupentry->pc_size = 0; + lookupentry->rom_remaining = 0; + lookupentry = nextlookup; + } ; + } + return; +} +#else +GLOBAL_ASM( +.rdata +/*D:8005B674*/ +glabel aOb_c_debug +/*"ob_c_debug"*/ +.word 0x6F625F63, 0x5F646562, 0x75670000 +.text +glabel obInitDebugNoticeList +/* 0F1758 7F0BCC28 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F175C 7F0BCC2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1760 7F0BCC30 3C048004 */ lui $a0, %hi(ob_c_debug_notice_list_entry) +/* 0F1764 7F0BCC34 3C058006 */ lui $a1, %hi(aOb_c_debug) +/* 0F1768 7F0BCC38 24A5B674 */ addiu $a1, %lo(aOb_c_debug) # addiu $a1, $a1, -0x498c +/* 0F176C 7F0BCC3C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F1770 7F0BCC40 24846050 */ addiu $a0, %lo(ob_c_debug_notice_list_entry) # addiu $a0, $a0, 0x6050 +/* 0F1774 7F0BCC44 3C038005 */ lui $v1, %hi(file_entry_max) +/* 0F1778 7F0BCC48 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1) +/* 0F177C 7F0BCC4C 3C048004 */ lui $a0, %hi(file_resource_table + 0xC) +/* 0F1780 7F0BCC50 24846060 */ addiu $a0, %lo(file_resource_table + 0xC) # addiu $a0, $a0, 0x6060 +/* 0F1784 7F0BCC54 2463FFFF */ addiu $v1, $v1, -1 +/* 0F1788 7F0BCC58 28610002 */ slti $at, $v1, 2 +/* 0F178C 7F0BCC5C 14200013 */ bnez $at, .L7F0BCCAC +/* 0F1790 7F0BCC60 3C028009 */ lui $v0, %hi(resource_lookup_data_array+0x14) +/* 0F1794 7F0BCC64 00037080 */ sll $t6, $v1, 2 +/* 0F1798 7F0BCC68 01C37021 */ addu $t6, $t6, $v1 +/* 0F179C 7F0BCC6C 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F17A0 7F0BCC70 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F17A4 7F0BCC74 000E7080 */ sll $t6, $t6, 2 +/* 0F17A8 7F0BCC78 01CF2821 */ addu $a1, $t6, $t7 +/* 0F17AC 7F0BCC7C 244288C4 */ addiu $v0, %lo(resource_lookup_data_array+0x14) # addiu $v0, $v0, -0x773c +.L7F0BCC80: +/* 0F17B0 7F0BCC80 8C980014 */ lw $t8, 0x14($a0) +/* 0F17B4 7F0BCC84 8C990008 */ lw $t9, 8($a0) +/* 0F17B8 7F0BCC88 24420014 */ addiu $v0, $v0, 0x14 +/* 0F17BC 7F0BCC8C 0045082B */ sltu $at, $v0, $a1 +/* 0F17C0 7F0BCC90 03191823 */ subu $v1, $t8, $t9 +/* 0F17C4 7F0BCC94 2484000C */ addiu $a0, $a0, 0xc +/* 0F17C8 7F0BCC98 AC43FFEC */ sw $v1, -0x14($v0) +/* 0F17CC 7F0BCC9C AC40FFF0 */ sw $zero, -0x10($v0) +/* 0F17D0 7F0BCCA0 AC40FFF4 */ sw $zero, -0xc($v0) +/* 0F17D4 7F0BCCA4 1420FFF6 */ bnez $at, .L7F0BCC80 +/* 0F17D8 7F0BCCA8 AC40FFF8 */ sw $zero, -8($v0) +.L7F0BCCAC: +/* 0F17DC 7F0BCCAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F17E0 7F0BCCB0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F17E4 7F0BCCB4 03E00008 */ jr $ra +/* 0F17E8 7F0BCCB8 00000000 */ nop +) +#endif + + + + + + +void _load_rom_index_to_membank(s32 index,s32 param_2,s32 size,u8 bank) { + load_rom_resource_index_to_membank(index, param_2, size, bank); +} + +void _load_resource_index_to_membank(int index,s32 param_2,u8 *ptrdata,int size) { + load_resource_index_to_buffer(index, param_2, ptrdata, size); +} + +void _load_resource_named_to_membank(u8 *filename,s32 param_2,s32 size,u8 bank) +{ + load_rom_resource_index_to_membank(get_index_num_of_named_resource(filename), param_2, size, bank); +} + +void _load_resource_named_to_buffer(u8 *filename,s32 bank,u8 *ptrdata,int size) +{ + load_resource_index_to_buffer(get_index_num_of_named_resource(filename), bank, ptrdata, size); +} + +/** + * 0F18AC 7F0BCD7C + * loads data stored at an offset of a bg file + */ +void obLoadBGFileBytesAtOffset(u8 *bgname, u8 *target, s32 offset, s32 len) +{ + s32 index; + struct fileentry *fileentry; + + index = get_index_num_of_named_resource(bgname); + fileentry = &file_resource_table[index]; + + if (resource_lookup_data_array[index].rom_size != 0) + { + //if the size of offset data would exceed file size, loop forever + if ((resource_lookup_data_array[index].rom_size + 0xF) < (offset + len)) + { + while (1){}; + } + romCopy(target, &fileentry->hw_address[offset], len, fileentry); + } + +} + + + + +#ifdef NONMATCHING// +u8 * load_rom_resource_index_to_membank(s32 index,s32 type,s32 size,u8 bank) +{ + + u8 *ptrdata; + if (((type == 0) || (type == 1)) || (type == 2)) + { + if (resource_lookup_data_array[index].pc_remaining == 0) + { + resource_lookup_data_array[index].pc_remaining = mempGetBankSizeLeft(bank); + } + ptrdata = mempAllocBytesInBank(resource_lookup_data_array[index].pc_remaining, 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, resource_lookup_data_array[index].rom_remaining, &file_resource_table[index], &resource_lookup_data_array[index]); + } + else + { + load_resource(ptrdata, resource_lookup_data_array[index].rom_remaining, &file_resource_table[index], &resource_lookup_data_array[index]); + } + if (type != 0) + { + mempAddEntryOfSizeToBank(ptrdata, resource_lookup_data_array[index].pc_remaining, bank); + } + } + else + { + if (resource_lookup_data_array[index].pc_remaining == 0) + { + if (resource_lookup_data_array[index].rom_size == 0) + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].pc_size; + } + else + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].rom_size; + } + } + ptrdata = mempAllocBytesInBank(resource_lookup_data_array[index].pc_remaining,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 + + + +/* + *this matches except: + *baserom.u.z64 + *000F 1BC0: AE 0C 00 0C 8F A5 00 2C 0F C2 F2 A8 8F A4 00 28 ......., .......( + *ge007.u.z64 this is flipped with this + *000F 1BC0: AE 0C 00 0C 8F A4 00 28 0F C2 F2 A8 8F A5 00 2C .......( ......., + */ +#ifdef NONMATCHING// +u8* load_resource_index_to_buffer(s32 index,s32 bank,u8 *ptrdata,s32 bytes) +{ + if (resource_lookup_data_array[index].pc_remaining == 0) + { + if (resource_lookup_data_array[index].rom_size > 0) + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].rom_size; + } + else + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].pc_size; + } + } + if (((bank == 0) || (bank == 1)) || (bank == 2)) + { + if (!file_resource_table[index].hw_address) + { + resource_lookup_data_array[index].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 + load_resource(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); + } + } + else + { + if (!file_resource_table[index].hw_address) + { + 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]); + } + } + 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 + + + + + + +s32 get_pc_remaining_buffer_for_index(s32 index) +{ + return resource_lookup_data_array[index].pc_remaining; +} + + +s32 get_rom_remaining_buffer_for_index(s32 index) +{ + return resource_lookup_data_array[index].rom_remaining; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0BD138(int index, u8 *ptrdata, u32 size, u32 param_4) +{ + u32 new_var; + resource_lookup_data_array[index].pc_remaining = size; + resource_lookup_data_array[index].rom_remaining = size; + new_var = param_4; + if (new_var) + { + mempAddEntryOfSizeToBank(ptrdata, size, 4); + } + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD138 +/* 0F1C68 7F0BD138 00047080 */ sll $t6, $a0, 2 +/* 0F1C6C 7F0BD13C 01C47021 */ addu $t6, $t6, $a0 +/* 0F1C70 7F0BD140 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1C74 7F0BD144 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1C78 7F0BD148 000E7080 */ sll $t6, $t6, 2 +/* 0F1C7C 7F0BD14C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F1C80 7F0BD150 01CF1021 */ addu $v0, $t6, $t7 +/* 0F1C84 7F0BD154 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1C88 7F0BD158 AFA5001C */ sw $a1, 0x1c($sp) +/* 0F1C8C 7F0BD15C AC460004 */ sw $a2, 4($v0) +/* 0F1C90 7F0BD160 10E00005 */ beqz $a3, .L7F0BD178 +/* 0F1C94 7F0BD164 AC46000C */ sw $a2, 0xc($v0) +/* 0F1C98 7F0BD168 00A02025 */ move $a0, $a1 +/* 0F1C9C 7F0BD16C 00C02825 */ move $a1, $a2 +/* 0F1CA0 7F0BD170 0C002601 */ jal mempAddEntryOfSizeToBank +/* 0F1CA4 7F0BD174 24060004 */ li $a2, 4 +.L7F0BD178: +/* 0F1CA8 7F0BD178 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1CAC 7F0BD17C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F1CB0 7F0BD180 03E00008 */ jr $ra +/* 0F1CB4 7F0BD184 00000000 */ nop +) +#endif + + + + + + +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; +} + + +void obBlankResourcesLoadedInBank(u8 bank) +{ + int i; + for (i = 1; i < file_entry_max; i++) { + if (resource_lookup_data_array[i].loaded_bank <= bank) { + resource_lookup_data_array[i].loaded_bank = '\0'; + } + if (bank == 4) { + resource_lookup_data_array[i].pc_remaining = 0; + } + } +} + +void obBlankResourcesInBank5(void) { + obBlankResourcesLoadedInBank(5); +} + + + + + +#ifdef NONMATCHING + +int get_index_num_of_named_resource(u8 *resname) +{ + + int i; + int buffer [3]; + + for (i = 1; i < file_entry_max; i++) + { + if ((file_resource_table[i].filename) && \ + (something_with_strings_0(resname,file_resource_table[i].filename) == 0)); + { + return i; + } + } + + i = file_entry_max; + if (file_entry_max < OBJ_INDEX_MAX) { + file_entry_max += 1; + + if (check_file_found_on_indy(resname,buffer) != 0) { + file_resource_table[i].index = i; + file_resource_table[i].filename = 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].rom_remaining = 0; + resource_lookup_data_array[i].loaded_bank = '\0'; + resource_lookup_data_array[i].pc_size = (buffer[0] + 0xfU | 0xf) ^ 0xf; + } + } + else { + i = 0; + } + return i; +} +#else +GLOBAL_ASM( +.text +glabel get_index_num_of_named_resource +/* 0F1D84 7F0BD254 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0F1D88 7F0BD258 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F1D8C 7F0BD25C 3C128005 */ lui $s2, %hi(file_entry_max) +/* 0F1D90 7F0BD260 265282D4 */ addiu $s2, %lo(file_entry_max) # addiu $s2, $s2, -0x7d2c +/* 0F1D94 7F0BD264 8E420000 */ lw $v0, ($s2) +/* 0F1D98 7F0BD268 AFB30020 */ sw $s3, 0x20($sp) +/* 0F1D9C 7F0BD26C AFB10018 */ sw $s1, 0x18($sp) +/* 0F1DA0 7F0BD270 28410002 */ slti $at, $v0, 2 +/* 0F1DA4 7F0BD274 00809825 */ move $s3, $a0 +/* 0F1DA8 7F0BD278 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1DAC 7F0BD27C AFB00014 */ sw $s0, 0x14($sp) +/* 0F1DB0 7F0BD280 14200012 */ bnez $at, .L7F0BD2CC +/* 0F1DB4 7F0BD284 24110001 */ li $s1, 1 +/* 0F1DB8 7F0BD288 3C108004 */ lui $s0, %hi(file_resource_table + 0xC) +/* 0F1DBC 7F0BD28C 26106060 */ addiu $s0, %lo(file_resource_table + 0xC) # addiu $s0, $s0, 0x6060 +/* 0F1DC0 7F0BD290 8E050004 */ lw $a1, 4($s0) +.L7F0BD294: +/* 0F1DC4 7F0BD294 50A00008 */ beql $a1, $zero, .L7F0BD2B8 +/* 0F1DC8 7F0BD298 8E420000 */ lw $v0, ($s2) +/* 0F1DCC 7F0BD29C 0C002A13 */ jal something_with_strings_0 +/* 0F1DD0 7F0BD2A0 02602025 */ move $a0, $s3 +/* 0F1DD4 7F0BD2A4 54400004 */ bnezl $v0, .L7F0BD2B8 +/* 0F1DD8 7F0BD2A8 8E420000 */ lw $v0, ($s2) +/* 0F1DDC 7F0BD2AC 1000002E */ b .L7F0BD368 +/* 0F1DE0 7F0BD2B0 02201025 */ move $v0, $s1 +/* 0F1DE4 7F0BD2B4 8E420000 */ lw $v0, ($s2) +.L7F0BD2B8: +/* 0F1DE8 7F0BD2B8 26310001 */ addiu $s1, $s1, 1 +/* 0F1DEC 7F0BD2BC 2610000C */ addiu $s0, $s0, 0xc +/* 0F1DF0 7F0BD2C0 0222082A */ slt $at, $s1, $v0 +/* 0F1DF4 7F0BD2C4 5420FFF3 */ bnezl $at, .L7F0BD294 +/* 0F1DF8 7F0BD2C8 8E050004 */ lw $a1, 4($s0) +.L7F0BD2CC: +/* 0F1DFC 7F0BD2CC 284102E0 */ slti $at, $v0, 0x2e0 /*OBJ_INDEX_MAX*/ +/* 0F1E00 7F0BD2D0 14200003 */ bnez $at, .L7F0BD2E0 +/* 0F1E04 7F0BD2D4 00408825 */ move $s1, $v0 +/* 0F1E08 7F0BD2D8 10000023 */ b .L7F0BD368 +/* 0F1E0C 7F0BD2DC 00001025 */ move $v0, $zero +.L7F0BD2E0: +/* 0F1E10 7F0BD2E0 244E0001 */ addiu $t6, $v0, 1 +/* 0F1E14 7F0BD2E4 AE4E0000 */ sw $t6, ($s2) +/* 0F1E18 7F0BD2E8 02602025 */ move $a0, $s3 +/* 0F1E1C 7F0BD2EC 0FC34026 */ jal check_file_found_on_indy +/* 0F1E20 7F0BD2F0 27A50034 */ addiu $a1, $sp, 0x34 +/* 0F1E24 7F0BD2F4 14400003 */ bnez $v0, .L7F0BD304 +/* 0F1E28 7F0BD2F8 00117880 */ sll $t7, $s1, 2 +/* 0F1E2C 7F0BD2FC 1000001A */ b .L7F0BD368 +/* 0F1E30 7F0BD300 00001025 */ move $v0, $zero +.L7F0BD304: +/* 0F1E34 7F0BD304 01F17823 */ subu $t7, $t7, $s1 +/* 0F1E38 7F0BD308 3C188004 */ lui $t8, %hi(file_resource_table) +/* 0F1E3C 7F0BD30C 27186054 */ addiu $t8, %lo(file_resource_table) # addiu $t8, $t8, 0x6054 +/* 0F1E40 7F0BD310 000F7880 */ sll $t7, $t7, 2 +/* 0F1E44 7F0BD314 0011C880 */ sll $t9, $s1, 2 +/* 0F1E48 7F0BD318 01F88021 */ addu $s0, $t7, $t8 +/* 0F1E4C 7F0BD31C 0331C821 */ addu $t9, $t9, $s1 +/* 0F1E50 7F0BD320 3C088009 */ lui $t0, %hi(resource_lookup_data_array) +/* 0F1E54 7F0BD324 250888B0 */ addiu $t0, %lo(resource_lookup_data_array) # addiu $t0, $t0, -0x7750 +/* 0F1E58 7F0BD328 0019C880 */ sll $t9, $t9, 2 +/* 0F1E5C 7F0BD32C AE110000 */ sw $s1, ($s0) +/* 0F1E60 7F0BD330 AE130004 */ sw $s3, 4($s0) +/* 0F1E64 7F0BD334 03281821 */ addu $v1, $t9, $t0 +/* 0F1E68 7F0BD338 A0600011 */ sb $zero, 0x11($v1) +/* 0F1E6C 7F0BD33C AE000008 */ sw $zero, 8($s0) +/* 0F1E70 7F0BD340 AC600000 */ sw $zero, ($v1) +/* 0F1E74 7F0BD344 AC600004 */ sw $zero, 4($v1) +/* 0F1E78 7F0BD348 8FA90034 */ lw $t1, 0x34($sp) +/* 0F1E7C 7F0BD34C AC60000C */ sw $zero, 0xc($v1) +/* 0F1E80 7F0BD350 A0600010 */ sb $zero, 0x10($v1) +/* 0F1E84 7F0BD354 252A000F */ addiu $t2, $t1, 0xf +/* 0F1E88 7F0BD358 354B000F */ ori $t3, $t2, 0xf +/* 0F1E8C 7F0BD35C 396C000F */ xori $t4, $t3, 0xf +/* 0F1E90 7F0BD360 AC6C0008 */ sw $t4, 8($v1) +/* 0F1E94 7F0BD364 02201025 */ move $v0, $s1 +.L7F0BD368: +/* 0F1E98 7F0BD368 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1E9C 7F0BD36C 8FB00014 */ lw $s0, 0x14($sp) +/* 0F1EA0 7F0BD370 8FB10018 */ lw $s1, 0x18($sp) +/* 0F1EA4 7F0BD374 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F1EA8 7F0BD378 8FB30020 */ lw $s3, 0x20($sp) +/* 0F1EAC 7F0BD37C 03E00008 */ jr $ra +/* 0F1EB0 7F0BD380 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +void removed_handle_filetable_entry(u32 index) +{ + return; +} + +void removed_loop_handle_filetable_entries(void) +{ + int i; + for (i = 1; (i < file_entry_max); i++) + { + removed_handle_filetable_entry(i); + } +} + +void removed_loop_filetableentries(void) +{ + int i; + + for (i = 1; (i < file_entry_max); i++) + { + ; + } +} + + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0BD410(void) { + u32 temp_v0; + u32 phi_v0; + + // Node 0 + if (file_entry_max >= 2) + { + // Node 1 + phi_v0 = &resource_lookup_data_array+0x14; +loop_2: + // Node 2 + temp_v0 = (phi_v0 + 0x14); + phi_v0 = temp_v0; + if (temp_v0 < (u32) ((file_entry_max * 0x14) + &resource_lookup_data_array)) + { + goto loop_2; + } + } + // Node 3 + return &resource_lookup_data_array+0x14; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD410 +/* 0F1F40 7F0BD410 3C038005 */ lui $v1, %hi(file_entry_max) +/* 0F1F44 7F0BD414 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1) +/* 0F1F48 7F0BD418 3C028009 */ lui $v0, %hi(resource_lookup_data_array+0x14) +/* 0F1F4C 7F0BD41C 244288C4 */ addiu $v0, %lo(resource_lookup_data_array+0x14) # addiu $v0, $v0, -0x773c +/* 0F1F50 7F0BD420 28610002 */ slti $at, $v1, 2 +/* 0F1F54 7F0BD424 1420000A */ bnez $at, .L7F0BD450 +/* 0F1F58 7F0BD428 00037080 */ sll $t6, $v1, 2 +/* 0F1F5C 7F0BD42C 01C37021 */ addu $t6, $t6, $v1 +/* 0F1F60 7F0BD430 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1F64 7F0BD434 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1F68 7F0BD438 000E7080 */ sll $t6, $t6, 2 +/* 0F1F6C 7F0BD43C 01CF2021 */ addu $a0, $t6, $t7 +/* 0F1F70 7F0BD440 24420014 */ addiu $v0, $v0, 0x14 +.L7F0BD444: +/* 0F1F74 7F0BD444 0044082B */ sltu $at, $v0, $a0 +/* 0F1F78 7F0BD448 5420FFFE */ bnezl $at, .L7F0BD444 +/* 0F1F7C 7F0BD44C 24420014 */ addiu $v0, $v0, 0x14 +.L7F0BD450: +/* 0F1F80 7F0BD450 03E00008 */ jr $ra +/* 0F1F84 7F0BD454 00000000 */ nop +) +#endif + + + diff --git a/src/game/ob.h b/src/game/ob.h new file mode 100644 index 0000000..f76104b --- /dev/null +++ b/src/game/ob.h @@ -0,0 +1,28 @@ +#ifndef _OB_H_ +#define _OB_H_ +#include "ultra64.h" + +struct resource_lookup_data_entry { + u32 rom_size; + u32 pc_remaining; + u32 pc_size; + u32 rom_remaining; + u8 loaded_bank; + u8 unk_11; + u16 reserved; +}; + +struct fileentry { + s32 index; + char *filename; + u8 *hw_address; +}; + +void obBlankResourcesLoadedInBank(u8 i); +void obBlankResourcesInBank5(void); +u8* load_resource_index_to_buffer(s32 index,s32 param_2,u8 *ptrdata,s32 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); + +#endif diff --git a/src/game/objecthandler.c b/src/game/objecthandler.c new file mode 100644 index 0000000..3086cea --- /dev/null +++ b/src/game/objecthandler.c @@ -0,0 +1,2354 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80076A50 +char dword_CODE_bss_80076A50[0xC]; +//CODE.bss:80076A5C +u32 dword_CODE_bss_80076A5C; +//CODE.bss:80076A60 +u32 dword_CODE_bss_80076A60; +//CODE.bss:80076A64; +u32 dword_CODE_bss_80076A64; +//CODE.bss:80076A68; +u32 dword_CODE_bss_80076A68; +//CODE.bss:80076A6C; +u32 dword_CODE_bss_80076A6C; +//CODE.bss:80076A70 +u32 dword_CODE_bss_80076A70; +//CODE.bss:80076A74 +u32 dword_CODE_bss_80076A74; +//CODE.bss:80076A78 +char dword_CODE_bss_80076A78[0xC]; +//CODE.bss:80076A84 +u32 dword_CODE_bss_80076A84; +//CODE.bss:80076A88 +u32 dword_CODE_bss_80076A88; +//CODE.bss:80076A8C +char dword_CODE_bss_80076A8C; +char dword_CODE_bss_80076A8D; +char dword_CODE_bss_80076A8E; +char dword_CODE_bss_80076A8F; +char dword_CODE_bss_80076A90[0x10]; +//CODE.bss:80076AA0 +char dword_CODE_bss_80076AA0[0x14]; +//CODE.bss:80076AB4 +char dword_CODE_bss_80076AB4; +char dword_CODE_bss_80076AB5; +char dword_CODE_bss_80076AB6; +char dword_CODE_bss_80076AB7; +char dword_CODE_bss_80076AB8[0x10]; +//CODE.bss:80076AC8 +char dword_CODE_bss_80076AC8[0x14]; +//CODE.bss:80076ADC +char dword_CODE_bss_80076ADC; +char dword_CODE_bss_80076ADD; +char dword_CODE_bss_80076ADE; +char dword_CODE_bss_80076ADF; +char dword_CODE_bss_80076AE0[0x2E28]; +//CODE.bss:80079908 +char dword_CODE_bss_80079908[0x28]; + +//CODE.bss:80079930 +void * ptr_allocation_0; +//CODE.bss:80079934 +void * ptr_allocation_1; + + +// data +//D:80036070 +u32 D_80036070 = 0; +//D:80036074 +u32 D_80036074 = 0; +//D:80036078 +u32 D_80036078 = 0; +//D:8003607C +u32 D_8003607C = 0; +//D:80036080 +u32 D_80036080 = 0; +//D:80036084 +s32 D_80036084 = 0; +//D:80036088 +f32 D_80036088 = 1.0; +//D:8003608C +s32 D_8003608C = 0; +//D:80036090 +u32 D_80036090 = 0; +//D:80036094 +u32 D_80036094 = 0; +//D:80036098 +u32 D_80036098 = 0; +//D:8003609C +u32 D_8003609C = 0; +//D:800360A0 +u32 D_800360A0 = 0; +//D:800360A4 +u32 D_800360A4 = 0; +//D:800360A8 +u32 D_800360A8 = 0; +//D:800360AC +u32 D_800360AC = 0; +//D:800360B0 +u32 D_800360B0 = 0; +//D:800360B4 +u32 D_800360B4 = 0; +//D:800360B8 +u32 D_800360B8 = 0; +//D:800360BC +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; +//D:80036244 +u32 D_80036244 = 0; +//D:80036248 +u32 D_80036248 = 0; +//D:8003624C +u32 D_8003624C = 0; +//D:80036250 +u32 D_80036250 = 1; +//D:80036254 +u32 D_80036254 = 0; +//D:80036258 +u32 D_80036258 = 0; +//D:8003625C +u32 D_8003625C = 0; +//D:80036260 +u32 D_80036260 = 0; +//D:80036264 +u32 D_80036264 = 0; +//D:80036268 +u32 D_80036268 = 0x10; +//D:8003626C +u32 D_8003626C = 1; +//D:80036270 +u32 D_80036270 = 0x1000; +//D:80036274 +u32 D_80036274 = 0xD; +//D:80036278 +u32 D_80036278 = 1; +//D:8003627C +u32 D_8003627C = 0x1000; +//D:80036280 +u32 D_80036280 = 0xD; +//D:80036284 +u32 D_80036284 = 9; +//D:80036288 +u32 D_80036288 = 0x800; +//D:8003628C +u32 D_8003628C = 0xC; +//D:80036290 +u32 D_80036290 = 9; +//D:80036294 +u32 D_80036294 = 0x800; +//D:80036298 +u32 D_80036298 = 0xC; +//D:8003629C +u32 D_8003629C = 0x19; +//D:800362A0 +u32 D_800362A0 = 0x800; +//D:800362A4 +u32 D_800362A4 = 0xC; +//D:800362A8 +u32 D_800362A8 = 0x19; +//D:800362AC +u32 D_800362AC = 0x800; +//D:800362B0 +u32 D_800362B0 = 0xC; +//D:800362B4 +u32 D_800362B4 = 0x29; +//D:800362B8 +u32 D_800362B8 = 0x800; +//D:800362BC +u32 D_800362BC = 0xC; +//D:800362C0 +u32 D_800362C0 = 0x29; +//D:800362C4 +u32 D_800362C4 = 0x800; +//D:800362C8 +u32 D_800362C8 = 0xC; +//D:800362CC +u32 D_800362CC = 0x39; +//D:800362D0 +u32 D_800362D0 = 0x800; +//D:800362D4 +u32 D_800362D4 = 0xC; +//D:800362D8 +u32 D_800362D8 = 0x39; +//D:800362DC +u32 D_800362DC = 0x800; +//D:800362E0 +u32 D_800362E0 = 0xC; +//D:800362E4 +u32 D_800362E4 = 0x49; +//D:800362E8 +u32 D_800362E8 = 0x800; +//D:800362EC +u32 D_800362EC = 0xC; +//D:800362F0 +u32 D_800362F0 = 0x49; +//D:800362F4 +u32 D_800362F4 = 0x800; +//D:800362F8 +u32 D_800362F8 = 0xC; +//D:800362FC +u32 D_800362FC = 0x59; +//D:80036300 +u32 D_80036300 = 0x1000; +//D:80036304 +u32 D_80036304 = 0xD; +//D:80036308 +u32 D_80036308 = 0x59; +//D:8003630C +u32 D_8003630C = 0x1000; +//D:80036310 +u32 D_80036310 = 0xD; +//D:80036314 +u32 D_80036314 = 0x61; +//D:80036318 +u32 D_80036318 = 0; +//D:8003631C +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; +//D:800363F0 +u32 D_800363F0 = 0x50; +//D:800363F4 +u32 D_800363F4 = 0; +//D:800363F8 +u32 D_800363F8 = 0; +//D:800363FC +u32 D_800363FC = 0; +//D:80036400 +u32 D_80036400 = 0; +//D:80036404 +u32 D_80036404 = 0xFFFFFF50; +//D:80036408 +f32 D_80036408 = 1.0f; +//D:8003640C +u32 D_8003640C = 0; +//D:80036410 +s32 D_80036410 = 0; +//D:80036414 +s32 D_80036414 = 0; +//D:80036418 +s32 D_80036418 = 0; +//D:8003641C +s32 D_8003641C = 0; + + +// rodata +//D:80054420 +const char aDrawjointlistNoGfxlist[] = "drawjointlist: no gfxlist!\n"; +//D:8005443C +const char aDrawjointlistNoObject0xX[] = "drawjointlist: no object! (0x%X)\n"; +//D:80054460 +const char aDrawjointlistObjectNotInitialised0[] = "drawjointlist: object not initialised! (0x%X)\n"; + +/* +*/ + + + +#ifdef NONMATCHING +void sub_GAME_7F06B120(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054490*/ +glabel jpt_80054490 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word loc_CODE_7F06B174 + +.text +glabel sub_GAME_7F06B120 +/* 09FC50 7F06B120 8CAE0008 */ lw $t6, 8($a1) +/* 09FC54 7F06B124 3C078003 */ lui $a3, %hi(D_80036060) +/* 09FC58 7F06B128 24E76060 */ addiu $a3, %lo(D_80036060) # addiu $a3, $a3, 0x6060 +/* 09FC5C 7F06B12C 8DC20000 */ lw $v0, ($t6) +/* 09FC60 7F06B130 00803025 */ move $a2, $a0 +/* 09FC64 7F06B134 8CE30000 */ lw $v1, ($a3) +/* 09FC68 7F06B138 50400027 */ beql $v0, $zero, .L7F06B1D8 +/* 09FC6C 7F06B13C 8CE20000 */ lw $v0, ($a3) +/* 09FC70 7F06B140 50600025 */ beql $v1, $zero, .L7F06B1D8 +/* 09FC74 7F06B144 8CE20000 */ lw $v0, ($a3) +/* 09FC78 7F06B148 94440000 */ lhu $a0, ($v0) +.L7F06B14C: +/* 09FC7C 7F06B14C 308F00FF */ andi $t7, $a0, 0xff +/* 09FC80 7F06B150 25F8FFFF */ addiu $t8, $t7, -1 +/* 09FC84 7F06B154 2F010015 */ sltiu $at, $t8, 0x15 +/* 09FC88 7F06B158 1020000B */ beqz $at, .L7F06B188 +/* 09FC8C 7F06B15C 0018C080 */ sll $t8, $t8, 2 +/* 09FC90 7F06B160 3C018005 */ lui $at, %hi(jpt_80054490) +/* 09FC94 7F06B164 00380821 */ addu $at, $at, $t8 +/* 09FC98 7F06B168 8C384490 */ lw $t8, %lo(jpt_80054490)($at) +/* 09FC9C 7F06B16C 03000008 */ jr $t8 +/* 09FCA0 7F06B170 00000000 */ nop +loc_CODE_7F06B174: +/* 09FCA4 7F06B174 AC650000 */ sw $a1, ($v1) +/* 09FCA8 7F06B178 AC620004 */ sw $v0, 4($v1) +/* 09FCAC 7F06B17C 8C63000C */ lw $v1, 0xc($v1) +/* 09FCB0 7F06B180 10000002 */ b .L7F06B18C +/* 09FCB4 7F06B184 8C440014 */ lw $a0, 0x14($v0) +def_7F06B16C: +.L7F06B188: +/* 09FCB8 7F06B188 8C440014 */ lw $a0, 0x14($v0) +.L7F06B18C: +/* 09FCBC 7F06B18C 10800003 */ beqz $a0, .L7F06B19C +/* 09FCC0 7F06B190 00000000 */ nop +/* 09FCC4 7F06B194 1000000B */ b .L7F06B1C4 +/* 09FCC8 7F06B198 00801025 */ move $v0, $a0 +.L7F06B19C: +/* 09FCCC 7F06B19C 10400009 */ beqz $v0, .L7F06B1C4 +/* 09FCD0 7F06B1A0 00000000 */ nop +/* 09FCD4 7F06B1A4 8C44000C */ lw $a0, 0xc($v0) +.L7F06B1A8: +/* 09FCD8 7F06B1A8 50800004 */ beql $a0, $zero, .L7F06B1BC +/* 09FCDC 7F06B1AC 8C420008 */ lw $v0, 8($v0) +/* 09FCE0 7F06B1B0 10000004 */ b .L7F06B1C4 +/* 09FCE4 7F06B1B4 00801025 */ move $v0, $a0 +/* 09FCE8 7F06B1B8 8C420008 */ lw $v0, 8($v0) +.L7F06B1BC: +/* 09FCEC 7F06B1BC 5440FFFA */ bnezl $v0, .L7F06B1A8 +/* 09FCF0 7F06B1C0 8C44000C */ lw $a0, 0xc($v0) +.L7F06B1C4: +/* 09FCF4 7F06B1C4 50400004 */ beql $v0, $zero, .L7F06B1D8 +/* 09FCF8 7F06B1C8 8CE20000 */ lw $v0, ($a3) +/* 09FCFC 7F06B1CC 5460FFDF */ bnezl $v1, .L7F06B14C +/* 09FD00 7F06B1D0 94440000 */ lhu $a0, ($v0) +/* 09FD04 7F06B1D4 8CE20000 */ lw $v0, ($a3) +.L7F06B1D8: +/* 09FD08 7F06B1D8 10620019 */ beq $v1, $v0, .L7F06B240 +/* 09FD0C 7F06B1DC 00000000 */ nop +/* 09FD10 7F06B1E0 50C0000F */ beql $a2, $zero, .L7F06B220 +/* 09FD14 7F06B1E4 00403025 */ move $a2, $v0 +/* 09FD18 7F06B1E8 8CD9000C */ lw $t9, 0xc($a2) +/* 09FD1C 7F06B1EC 00C02025 */ move $a0, $a2 +/* 09FD20 7F06B1F0 53200007 */ beql $t9, $zero, .L7F06B210 +/* 09FD24 7F06B1F4 AC82000C */ sw $v0, 0xc($a0) +/* 09FD28 7F06B1F8 8C85000C */ lw $a1, 0xc($a0) +/* 09FD2C 7F06B1FC 00A02025 */ move $a0, $a1 +.L7F06B200: +/* 09FD30 7F06B200 8CA5000C */ lw $a1, 0xc($a1) +/* 09FD34 7F06B204 54A0FFFE */ bnezl $a1, .L7F06B200 +/* 09FD38 7F06B208 00A02025 */ move $a0, $a1 +/* 09FD3C 7F06B20C AC82000C */ sw $v0, 0xc($a0) +.L7F06B210: +/* 09FD40 7F06B210 8CE80000 */ lw $t0, ($a3) +/* 09FD44 7F06B214 10000002 */ b .L7F06B220 +/* 09FD48 7F06B218 AD040010 */ sw $a0, 0x10($t0) +/* 09FD4C 7F06B21C 00403025 */ move $a2, $v0 +.L7F06B220: +/* 09FD50 7F06B220 50600007 */ beql $v1, $zero, .L7F06B240 +/* 09FD54 7F06B224 ACE30000 */ sw $v1, ($a3) +/* 09FD58 7F06B228 8C620010 */ lw $v0, 0x10($v1) +/* 09FD5C 7F06B22C 50400004 */ beql $v0, $zero, .L7F06B240 +/* 09FD60 7F06B230 ACE30000 */ sw $v1, ($a3) +/* 09FD64 7F06B234 AC40000C */ sw $zero, 0xc($v0) +/* 09FD68 7F06B238 AC600010 */ sw $zero, 0x10($v1) +/* 09FD6C 7F06B23C ACE30000 */ sw $v1, ($a3) +.L7F06B240: +/* 09FD70 7F06B240 03E00008 */ jr $ra +/* 09FD74 7F06B244 00C01025 */ move $v0, $a2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06B248(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06B248 +/* 09FD78 7F06B248 10800012 */ beqz $a0, .L7F06B294 +/* 09FD7C 7F06B24C 3C068003 */ lui $a2, %hi(D_80036060) +/* 09FD80 7F06B250 24C66060 */ addiu $a2, %lo(D_80036060) # addiu $a2, $a2, 0x6060 +/* 09FD84 7F06B254 8CC20000 */ lw $v0, ($a2) +/* 09FD88 7F06B258 5040000E */ beql $v0, $zero, .L7F06B294 +/* 09FD8C 7F06B25C ACC40000 */ sw $a0, ($a2) +/* 09FD90 7F06B260 8C8E000C */ lw $t6, 0xc($a0) +/* 09FD94 7F06B264 00801825 */ move $v1, $a0 +/* 09FD98 7F06B268 51C00007 */ beql $t6, $zero, .L7F06B288 +/* 09FD9C 7F06B26C AC62000C */ sw $v0, 0xc($v1) +/* 09FDA0 7F06B270 8C65000C */ lw $a1, 0xc($v1) +/* 09FDA4 7F06B274 00A01825 */ move $v1, $a1 +.L7F06B278: +/* 09FDA8 7F06B278 8CA5000C */ lw $a1, 0xc($a1) +/* 09FDAC 7F06B27C 54A0FFFE */ bnezl $a1, .L7F06B278 +/* 09FDB0 7F06B280 00A01825 */ move $v1, $a1 +/* 09FDB4 7F06B284 AC62000C */ sw $v0, 0xc($v1) +.L7F06B288: +/* 09FDB8 7F06B288 8CCF0000 */ lw $t7, ($a2) +/* 09FDBC 7F06B28C ADE30010 */ sw $v1, 0x10($t7) +/* 09FDC0 7F06B290 ACC40000 */ sw $a0, ($a2) +.L7F06B294: +/* 09FDC4 7F06B294 03E00008 */ jr $ra +/* 09FDC8 7F06B298 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06B29C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800544E4*/ +glabel jpt_800544E4 +.word .L7F06B2FC +.word .L7F06B360 +.word .L7F06B3C4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B588 +.word .L7F06B5DC +.word .L7F06B630 +.word .L7F06B448 +.word .L7F06B49C +.word .L7F06B530 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B428 + +.text +glabel sub_GAME_7F06B29C +/* 09FDCC 7F06B29C 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 09FDD0 7F06B2A0 AFB10020 */ sw $s1, 0x20($sp) +/* 09FDD4 7F06B2A4 00808825 */ move $s1, $a0 +/* 09FDD8 7F06B2A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 09FDDC 7F06B2AC AFB0001C */ sw $s0, 0x1c($sp) +/* 09FDE0 7F06B2B0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 09FDE4 7F06B2B4 AFA40114 */ sw $a0, 0x114($sp) +/* 09FDE8 7F06B2B8 108000FD */ beqz $a0, .L7F06B6B0 +/* 09FDEC 7F06B2BC AFA00110 */ sw $zero, 0x110($sp) +/* 09FDF0 7F06B2C0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09FDF4 7F06B2C4 4481A000 */ mtc1 $at, $f20 +/* 09FDF8 7F06B2C8 00000000 */ nop +/* 09FDFC 7F06B2CC 8E300004 */ lw $s0, 4($s1) +.L7F06B2D0: +/* 09FE00 7F06B2D0 96020000 */ lhu $v0, ($s0) +/* 09FE04 7F06B2D4 305800FF */ andi $t8, $v0, 0xff +/* 09FE08 7F06B2D8 2719FFFF */ addiu $t9, $t8, -1 +/* 09FE0C 7F06B2DC 2F210015 */ sltiu $at, $t9, 0x15 +/* 09FE10 7F06B2E0 102000F0 */ beqz $at, .L7F06B6A4 +/* 09FE14 7F06B2E4 0019C880 */ sll $t9, $t9, 2 +/* 09FE18 7F06B2E8 3C018005 */ lui $at, %hi(jpt_800544E4) # -0.000000 +/* 09FE1C 7F06B2EC 00390821 */ addu $at, $at, $t9 +/* 09FE20 7F06B2F0 8C3944E4 */ lw $t9, %lo(jpt_800544E4)($at) +.L7F06B2F4: +/* 09FE24 7F06B2F4 03200008 */ jr $t9 +/* 09FE28 7F06B2F8 00000000 */ nop +.L7F06B2FC: +/* 09FE2C 7F06B2FC 8E020004 */ lw $v0, 4($s0) +/* 09FE30 7F06B300 8E240000 */ lw $a0, ($s1) +/* 09FE34 7F06B304 02002825 */ move $a1, $s0 +/* 09FE38 7F06B308 8C470004 */ lw $a3, 4($v0) +/* 09FE3C 7F06B30C 00003025 */ move $a2, $zero +/* 09FE40 7F06B310 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FE44 7F06B314 AFA70100 */ sw $a3, 0x100($sp) +/* 09FE48 7F06B318 8FA70100 */ lw $a3, 0x100($sp) +/* 09FE4C 7F06B31C 00408025 */ move $s0, $v0 +/* 09FE50 7F06B320 00003025 */ move $a2, $zero +/* 09FE54 7F06B324 10E0000A */ beqz $a3, .L7F06B350 +/* 09FE58 7F06B328 00E02825 */ move $a1, $a3 +/* 09FE5C 7F06B32C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FE60 7F06B330 8E240000 */ lw $a0, ($s1) +/* 09FE64 7F06B334 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 09FE68 7F06B338 C6040038 */ lwc1 $f4, 0x38($s0) +/* 09FE6C 7F06B33C 46045180 */ add.s $f6, $f10, $f4 +/* 09FE70 7F06B340 46003207 */ neg.s $f8, $f6 +/* 09FE74 7F06B344 46144282 */ mul.s $f10, $f8, $f20 +/* 09FE78 7F06B348 100000D6 */ b .L7F06B6A4 +/* 09FE7C 7F06B34C E62A0008 */ swc1 $f10, 8($s1) +.L7F06B350: +/* 09FE80 7F06B350 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FE84 7F06B354 46002187 */ neg.s $f6, $f4 +/* 09FE88 7F06B358 100000D2 */ b .L7F06B6A4 +/* 09FE8C 7F06B35C E6260008 */ swc1 $f6, 8($s1) +.L7F06B360: +/* 09FE90 7F06B360 8E020004 */ lw $v0, 4($s0) +/* 09FE94 7F06B364 8E240000 */ lw $a0, ($s1) +/* 09FE98 7F06B368 02002825 */ move $a1, $s0 +/* 09FE9C 7F06B36C 8C470014 */ lw $a3, 0x14($v0) +/* 09FEA0 7F06B370 00003025 */ move $a2, $zero +/* 09FEA4 7F06B374 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FEA8 7F06B378 AFA700F0 */ sw $a3, 0xf0($sp) +/* 09FEAC 7F06B37C 8FA700F0 */ lw $a3, 0xf0($sp) +/* 09FEB0 7F06B380 00408025 */ move $s0, $v0 +/* 09FEB4 7F06B384 00003025 */ move $a2, $zero +/* 09FEB8 7F06B388 10E0000A */ beqz $a3, .L7F06B3B4 +/* 09FEBC 7F06B38C 00E02825 */ move $a1, $a3 +/* 09FEC0 7F06B390 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FEC4 7F06B394 8E240000 */ lw $a0, ($s1) +/* 09FEC8 7F06B398 C4480038 */ lwc1 $f8, 0x38($v0) +/* 09FECC 7F06B39C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 09FED0 7F06B3A0 460A4100 */ add.s $f4, $f8, $f10 +/* 09FED4 7F06B3A4 46002187 */ neg.s $f6, $f4 +/* 09FED8 7F06B3A8 46143202 */ mul.s $f8, $f6, $f20 +/* 09FEDC 7F06B3AC 100000BD */ b .L7F06B6A4 +/* 09FEE0 7F06B3B0 E6280008 */ swc1 $f8, 8($s1) +.L7F06B3B4: +/* 09FEE4 7F06B3B4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 09FEE8 7F06B3B8 46005107 */ neg.s $f4, $f10 +/* 09FEEC 7F06B3BC 100000B9 */ b .L7F06B6A4 +/* 09FEF0 7F06B3C0 E6240008 */ swc1 $f4, 8($s1) +.L7F06B3C4: +/* 09FEF4 7F06B3C4 8E020004 */ lw $v0, 4($s0) +/* 09FEF8 7F06B3C8 8E240000 */ lw $a0, ($s1) +/* 09FEFC 7F06B3CC 02002825 */ move $a1, $s0 +/* 09FF00 7F06B3D0 8C470014 */ lw $a3, 0x14($v0) +/* 09FF04 7F06B3D4 00003025 */ move $a2, $zero +/* 09FF08 7F06B3D8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF0C 7F06B3DC AFA700E0 */ sw $a3, 0xe0($sp) +/* 09FF10 7F06B3E0 8FA700E0 */ lw $a3, 0xe0($sp) +/* 09FF14 7F06B3E4 00408025 */ move $s0, $v0 +/* 09FF18 7F06B3E8 00003025 */ move $a2, $zero +/* 09FF1C 7F06B3EC 10E0000A */ beqz $a3, .L7F06B418 +/* 09FF20 7F06B3F0 00E02825 */ move $a1, $a3 +/* 09FF24 7F06B3F4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF28 7F06B3F8 8E240000 */ lw $a0, ($s1) +/* 09FF2C 7F06B3FC C4460038 */ lwc1 $f6, 0x38($v0) +/* 09FF30 7F06B400 C6080038 */ lwc1 $f8, 0x38($s0) +/* 09FF34 7F06B404 46083280 */ add.s $f10, $f6, $f8 +/* 09FF38 7F06B408 46005107 */ neg.s $f4, $f10 +/* 09FF3C 7F06B40C 46142182 */ mul.s $f6, $f4, $f20 +/* 09FF40 7F06B410 100000A4 */ b .L7F06B6A4 +/* 09FF44 7F06B414 E6260008 */ swc1 $f6, 8($s1) +.L7F06B418: +/* 09FF48 7F06B418 C4480038 */ lwc1 $f8, 0x38($v0) +/* 09FF4C 7F06B41C 46004287 */ neg.s $f10, $f8 +/* 09FF50 7F06B420 100000A0 */ b .L7F06B6A4 +/* 09FF54 7F06B424 E62A0008 */ swc1 $f10, 8($s1) +.L7F06B428: +/* 09FF58 7F06B428 8E240000 */ lw $a0, ($s1) +/* 09FF5C 7F06B42C 02002825 */ move $a1, $s0 +/* 09FF60 7F06B430 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF64 7F06B434 00003025 */ move $a2, $zero +/* 09FF68 7F06B438 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FF6C 7F06B43C 46002187 */ neg.s $f6, $f4 +/* 09FF70 7F06B440 10000098 */ b .L7F06B6A4 +/* 09FF74 7F06B444 E6260008 */ swc1 $f6, 8($s1) +.L7F06B448: +/* 09FF78 7F06B448 8E240000 */ lw $a0, ($s1) +/* 09FF7C 7F06B44C 02002825 */ move $a1, $s0 +/* 09FF80 7F06B450 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF84 7F06B454 00003025 */ move $a2, $zero +/* 09FF88 7F06B458 8E030004 */ lw $v1, 4($s0) +/* 09FF8C 7F06B45C C44A0008 */ lwc1 $f10, 8($v0) +/* 09FF90 7F06B460 C4680000 */ lwc1 $f8, ($v1) +/* 09FF94 7F06B464 C4660004 */ lwc1 $f6, 4($v1) +/* 09FF98 7F06B468 460A4102 */ mul.s $f4, $f8, $f10 +/* 09FF9C 7F06B46C C4480018 */ lwc1 $f8, 0x18($v0) +/* 09FFA0 7F06B470 46083282 */ mul.s $f10, $f6, $f8 +/* 09FFA4 7F06B474 C4680008 */ lwc1 $f8, 8($v1) +/* 09FFA8 7F06B478 460A2180 */ add.s $f6, $f4, $f10 +/* 09FFAC 7F06B47C C4440028 */ lwc1 $f4, 0x28($v0) +/* 09FFB0 7F06B480 46044282 */ mul.s $f10, $f8, $f4 +/* 09FFB4 7F06B484 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FFB8 7F06B488 460A3200 */ add.s $f8, $f6, $f10 +/* 09FFBC 7F06B48C 46082180 */ add.s $f6, $f4, $f8 +/* 09FFC0 7F06B490 46003287 */ neg.s $f10, $f6 +/* 09FFC4 7F06B494 10000083 */ b .L7F06B6A4 +/* 09FFC8 7F06B498 E62A0008 */ swc1 $f10, 8($s1) +.L7F06B49C: +/* 09FFCC 7F06B49C 8E240000 */ lw $a0, ($s1) +/* 09FFD0 7F06B4A0 02002825 */ move $a1, $s0 +/* 09FFD4 7F06B4A4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FFD8 7F06B4A8 00003025 */ move $a2, $zero +/* 09FFDC 7F06B4AC 8E030004 */ lw $v1, 4($s0) +/* 09FFE0 7F06B4B0 C4420008 */ lwc1 $f2, 8($v0) +/* 09FFE4 7F06B4B4 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 09FFE8 7F06B4B8 C4640000 */ lwc1 $f4, ($v1) +/* 09FFEC 7F06B4BC C4660004 */ lwc1 $f6, 4($v1) +/* 09FFF0 7F06B4C0 C44E0028 */ lwc1 $f14, 0x28($v0) +/* 09FFF4 7F06B4C4 46022202 */ mul.s $f8, $f4, $f2 +/* 09FFF8 7F06B4C8 C4400038 */ lwc1 $f0, 0x38($v0) +/* 09FFFC 7F06B4CC 460C3282 */ mul.s $f10, $f6, $f12 +/* 0A0000 7F06B4D0 C4660008 */ lwc1 $f6, 8($v1) +/* 0A0004 7F06B4D4 460A4100 */ add.s $f4, $f8, $f10 +/* 0A0008 7F06B4D8 460E3202 */ mul.s $f8, $f6, $f14 +/* 0A000C 7F06B4DC C466000C */ lwc1 $f6, 0xc($v1) +/* 0A0010 7F06B4E0 46082280 */ add.s $f10, $f4, $f8 +/* 0A0014 7F06B4E4 46023102 */ mul.s $f4, $f6, $f2 +/* 0A0018 7F06B4E8 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0A001C 7F06B4EC 460A0400 */ add.s $f16, $f0, $f10 +/* 0A0020 7F06B4F0 460C4282 */ mul.s $f10, $f8, $f12 +/* 0A0024 7F06B4F4 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A0028 7F06B4F8 46008407 */ neg.s $f16, $f16 +/* 0A002C 7F06B4FC 460A2180 */ add.s $f6, $f4, $f10 +/* 0A0030 7F06B500 460E4102 */ mul.s $f4, $f8, $f14 +/* 0A0034 7F06B504 46043280 */ add.s $f10, $f6, $f4 +/* 0A0038 7F06B508 460A0480 */ add.s $f18, $f0, $f10 +/* 0A003C 7F06B50C 46009487 */ neg.s $f18, $f18 +/* 0A0040 7F06B510 4612803C */ c.lt.s $f16, $f18 +/* 0A0044 7F06B514 00000000 */ nop +/* 0A0048 7F06B518 45000003 */ bc1f .L7F06B528 +/* 0A004C 7F06B51C 00000000 */ nop +/* 0A0050 7F06B520 10000060 */ b .L7F06B6A4 +/* 0A0054 7F06B524 E6300008 */ swc1 $f16, 8($s1) +.L7F06B528: +/* 0A0058 7F06B528 1000005E */ b .L7F06B6A4 +/* 0A005C 7F06B52C E6320008 */ swc1 $f18, 8($s1) +.L7F06B530: +/* 0A0060 7F06B530 8E240000 */ lw $a0, ($s1) +/* 0A0064 7F06B534 02002825 */ move $a1, $s0 +/* 0A0068 7F06B538 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A006C 7F06B53C 00003025 */ move $a2, $zero +/* 0A0070 7F06B540 8E030004 */ lw $v1, 4($s0) +/* 0A0074 7F06B544 C4460008 */ lwc1 $f6, 8($v0) +/* 0A0078 7F06B548 C4680000 */ lwc1 $f8, ($v1) +/* 0A007C 7F06B54C C46A0004 */ lwc1 $f10, 4($v1) +/* 0A0080 7F06B550 46064102 */ mul.s $f4, $f8, $f6 +/* 0A0084 7F06B554 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0A0088 7F06B558 46085182 */ mul.s $f6, $f10, $f8 +/* 0A008C 7F06B55C C4680008 */ lwc1 $f8, 8($v1) +/* 0A0090 7F06B560 46062280 */ add.s $f10, $f4, $f6 +/* 0A0094 7F06B564 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0A0098 7F06B568 46044182 */ mul.s $f6, $f8, $f4 +/* 0A009C 7F06B56C C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A00A0 7F06B570 46065200 */ add.s $f8, $f10, $f6 +/* 0A00A4 7F06B574 46082280 */ add.s $f10, $f4, $f8 +/* 0A00A8 7F06B578 46005187 */ neg.s $f6, $f10 +/* 0A00AC 7F06B57C E6260008 */ swc1 $f6, 8($s1) +/* 0A00B0 7F06B580 10000048 */ b .L7F06B6A4 +/* 0A00B4 7F06B584 AFB10110 */ sw $s1, 0x110($sp) +.L7F06B588: +/* 0A00B8 7F06B588 8E240000 */ lw $a0, ($s1) +/* 0A00BC 7F06B58C 02002825 */ move $a1, $s0 +/* 0A00C0 7F06B590 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A00C4 7F06B594 00003025 */ move $a2, $zero +/* 0A00C8 7F06B598 8E030004 */ lw $v1, 4($s0) +/* 0A00CC 7F06B59C C4480008 */ lwc1 $f8, 8($v0) +/* 0A00D0 7F06B5A0 C4640000 */ lwc1 $f4, ($v1) +/* 0A00D4 7F06B5A4 C4660004 */ lwc1 $f6, 4($v1) +/* 0A00D8 7F06B5A8 46082282 */ mul.s $f10, $f4, $f8 +/* 0A00DC 7F06B5AC C4440018 */ lwc1 $f4, 0x18($v0) +/* 0A00E0 7F06B5B0 46043202 */ mul.s $f8, $f6, $f4 +/* 0A00E4 7F06B5B4 C4640008 */ lwc1 $f4, 8($v1) +/* 0A00E8 7F06B5B8 46085180 */ add.s $f6, $f10, $f8 +/* 0A00EC 7F06B5BC C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0A00F0 7F06B5C0 460A2202 */ mul.s $f8, $f4, $f10 +/* 0A00F4 7F06B5C4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0A00F8 7F06B5C8 46083100 */ add.s $f4, $f6, $f8 +/* 0A00FC 7F06B5CC 46045180 */ add.s $f6, $f10, $f4 +/* 0A0100 7F06B5D0 46003207 */ neg.s $f8, $f6 +/* 0A0104 7F06B5D4 10000033 */ b .L7F06B6A4 +/* 0A0108 7F06B5D8 E6280008 */ swc1 $f8, 8($s1) +.L7F06B5DC: +/* 0A010C 7F06B5DC 8E240000 */ lw $a0, ($s1) +/* 0A0110 7F06B5E0 02002825 */ move $a1, $s0 +/* 0A0114 7F06B5E4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A0118 7F06B5E8 00003025 */ move $a2, $zero +/* 0A011C 7F06B5EC 8E030004 */ lw $v1, 4($s0) +/* 0A0120 7F06B5F0 C4440008 */ lwc1 $f4, 8($v0) +/* 0A0124 7F06B5F4 C46A0000 */ lwc1 $f10, ($v1) +/* 0A0128 7F06B5F8 C4680004 */ lwc1 $f8, 4($v1) +/* 0A012C 7F06B5FC 46045182 */ mul.s $f6, $f10, $f4 +/* 0A0130 7F06B600 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0A0134 7F06B604 460A4102 */ mul.s $f4, $f8, $f10 +/* 0A0138 7F06B608 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A013C 7F06B60C 46043200 */ add.s $f8, $f6, $f4 +/* 0A0140 7F06B610 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A0144 7F06B614 46065102 */ mul.s $f4, $f10, $f6 +/* 0A0148 7F06B618 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A014C 7F06B61C 46044280 */ add.s $f10, $f8, $f4 +/* 0A0150 7F06B620 460A3200 */ add.s $f8, $f6, $f10 +/* 0A0154 7F06B624 46004107 */ neg.s $f4, $f8 +/* 0A0158 7F06B628 1000001E */ b .L7F06B6A4 +/* 0A015C 7F06B62C E6240008 */ swc1 $f4, 8($s1) +.L7F06B630: +/* 0A0160 7F06B630 8E240000 */ lw $a0, ($s1) +/* 0A0164 7F06B634 02002825 */ move $a1, $s0 +/* 0A0168 7F06B638 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A016C 7F06B63C 00003025 */ move $a2, $zero +/* 0A0170 7F06B640 8E060004 */ lw $a2, 4($s0) +/* 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 +/* 0A0184 7F06B654 AFA6009C */ sw $a2, 0x9c($sp) +/* 0A0188 7F06B658 8FA300A0 */ lw $v1, 0xa0($sp) +/* 0A018C 7F06B65C 8FA6009C */ lw $a2, 0x9c($sp) +/* 0A0190 7F06B660 C4440004 */ lwc1 $f4, 4($v0) +/* 0A0194 7F06B664 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A0198 7F06B668 C4C60000 */ lwc1 $f6, ($a2) +/* 0A019C 7F06B66C 460A3202 */ mul.s $f8, $f6, $f10 +/* 0A01A0 7F06B670 C446000C */ lwc1 $f6, 0xc($v0) +/* 0A01A4 7F06B674 46062281 */ sub.s $f10, $f4, $f6 +/* 0A01A8 7F06B678 C4640018 */ lwc1 $f4, 0x18($v1) +/* 0A01AC 7F06B67C 46045182 */ mul.s $f6, $f10, $f4 +/* 0A01B0 7F06B680 C4C40004 */ lwc1 $f4, 4($a2) +/* 0A01B4 7F06B684 46064280 */ add.s $f10, $f8, $f6 +/* 0A01B8 7F06B688 C4680028 */ lwc1 $f8, 0x28($v1) +/* 0A01BC 7F06B68C 46082182 */ mul.s $f6, $f4, $f8 +/* 0A01C0 7F06B690 C4680038 */ lwc1 $f8, 0x38($v1) +/* 0A01C4 7F06B694 46065100 */ add.s $f4, $f10, $f6 +/* 0A01C8 7F06B698 46044280 */ add.s $f10, $f8, $f4 +/* 0A01CC 7F06B69C 46005187 */ neg.s $f6, $f10 +/* 0A01D0 7F06B6A0 E6260008 */ swc1 $f6, 8($s1) +def_7F06B2F4: +.L7F06B6A4: +/* 0A01D4 7F06B6A4 8E31000C */ lw $s1, 0xc($s1) +/* 0A01D8 7F06B6A8 5620FF09 */ bnezl $s1, .L7F06B2D0 +/* 0A01DC 7F06B6AC 8E300004 */ lw $s0, 4($s1) +.L7F06B6B0: +/* 0A01E0 7F06B6B0 8FAC0110 */ lw $t4, 0x110($sp) +/* 0A01E4 7F06B6B4 51800117 */ beql $t4, $zero, .L7F06BB14 +/* 0A01E8 7F06B6B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A01EC 7F06B6BC 8D840000 */ lw $a0, ($t4) +/* 0A01F0 7F06B6C0 8C830018 */ lw $v1, 0x18($a0) +/* 0A01F4 7F06B6C4 50600113 */ beql $v1, $zero, .L7F06BB14 +/* 0A01F8 7F06B6C8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A01FC 7F06B6CC 8D850004 */ lw $a1, 4($t4) +/* 0A0200 7F06B6D0 8C6D0008 */ lw $t5, 8($v1) +/* 0A0204 7F06B6D4 C5940008 */ lwc1 $f20, 8($t4) +/* 0A0208 7F06B6D8 8CB00004 */ lw $s0, 4($a1) +/* 0A020C 7F06B6DC 8DA20008 */ lw $v0, 8($t5) +/* 0A0210 7F06B6E0 00003025 */ move $a2, $zero +/* 0A0214 7F06B6E4 860E000E */ lh $t6, 0xe($s0) +/* 0A0218 7F06B6E8 8619000C */ lh $t9, 0xc($s0) +/* 0A021C 7F06B6EC 000E7880 */ sll $t7, $t6, 2 +/* 0A0220 7F06B6F0 860E0010 */ lh $t6, 0x10($s0) +/* 0A0224 7F06B6F4 004FC021 */ addu $t8, $v0, $t7 +/* 0A0228 7F06B6F8 8F110000 */ lw $s1, ($t8) +/* 0A022C 7F06B6FC 00196080 */ sll $t4, $t9, 2 +/* 0A0230 7F06B700 000E7880 */ sll $t7, $t6, 2 +/* 0A0234 7F06B704 004C6821 */ addu $t5, $v0, $t4 +/* 0A0238 7F06B708 004FC021 */ addu $t8, $v0, $t7 +/* 0A023C 7F06B70C 8DA70000 */ lw $a3, ($t5) +/* 0A0240 7F06B710 8F080000 */ lw $t0, ($t8) +/* 0A0244 7F06B714 AFA00070 */ sw $zero, 0x70($sp) +/* 0A0248 7F06B718 AFA00078 */ sw $zero, 0x78($sp) +/* 0A024C 7F06B71C AFA00074 */ sw $zero, 0x74($sp) +/* 0A0250 7F06B720 AFA70080 */ sw $a3, 0x80($sp) +/* 0A0254 7F06B724 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A0258 7F06B728 AFA8007C */ sw $t0, 0x7c($sp) +/* 0A025C 7F06B72C 8FA30114 */ lw $v1, 0x114($sp) +/* 0A0260 7F06B730 8FA70080 */ lw $a3, 0x80($sp) +/* 0A0264 7F06B734 8FA8007C */ lw $t0, 0x7c($sp) +/* 0A0268 7F06B738 8FA90074 */ lw $t1, 0x74($sp) +/* 0A026C 7F06B73C 8FAA0078 */ lw $t2, 0x78($sp) +/* 0A0270 7F06B740 1060000E */ beqz $v1, .L7F06B77C +/* 0A0274 7F06B744 8FAB0070 */ lw $t3, 0x70($sp) +/* 0A0278 7F06B748 8C640004 */ lw $a0, 4($v1) +.L7F06B74C: +/* 0A027C 7F06B74C 16240002 */ bne $s1, $a0, .L7F06B758 +/* 0A0280 7F06B750 00000000 */ nop +/* 0A0284 7F06B754 00605025 */ move $t2, $v1 +.L7F06B758: +/* 0A0288 7F06B758 14E40002 */ bne $a3, $a0, .L7F06B764 +/* 0A028C 7F06B75C 00000000 */ nop +/* 0A0290 7F06B760 00604825 */ move $t1, $v1 +.L7F06B764: +/* 0A0294 7F06B764 55040003 */ bnel $t0, $a0, .L7F06B774 +/* 0A0298 7F06B768 8C63000C */ lw $v1, 0xc($v1) +/* 0A029C 7F06B76C 00605825 */ move $t3, $v1 +/* 0A02A0 7F06B770 8C63000C */ lw $v1, 0xc($v1) +.L7F06B774: +/* 0A02A4 7F06B774 5460FFF5 */ bnezl $v1, .L7F06B74C +/* 0A02A8 7F06B778 8C640004 */ lw $a0, 4($v1) +.L7F06B77C: +/* 0A02AC 7F06B77C C4480020 */ lwc1 $f8, 0x20($v0) +/* 0A02B0 7F06B780 E7A80054 */ swc1 $f8, 0x54($sp) +/* 0A02B4 7F06B784 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A02B8 7F06B788 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0A02BC 7F06B78C C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0A02C0 7F06B790 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0A02C4 7F06B794 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0A02C8 7F06B798 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0A02CC 7F06B79C C4480014 */ lwc1 $f8, 0x14($v0) +/* 0A02D0 7F06B7A0 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0A02D4 7F06B7A4 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0A02D8 7F06B7A8 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0A02DC 7F06B7AC C60A0000 */ lwc1 $f10, ($s0) +/* 0A02E0 7F06B7B0 C4460000 */ lwc1 $f6, ($v0) +/* 0A02E4 7F06B7B4 C6040004 */ lwc1 $f4, 4($s0) +/* 0A02E8 7F06B7B8 46065202 */ mul.s $f8, $f10, $f6 +/* 0A02EC 7F06B7BC C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0A02F0 7F06B7C0 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A02F4 7F06B7C4 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A02F8 7F06B7C8 46064100 */ add.s $f4, $f8, $f6 +/* 0A02FC 7F06B7CC C4480020 */ lwc1 $f8, 0x20($v0) +/* 0A0300 7F06B7D0 46085182 */ mul.s $f6, $f10, $f8 +/* 0A0304 7F06B7D4 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0A0308 7F06B7D8 46062280 */ add.s $f10, $f4, $f6 +/* 0A030C 7F06B7DC 460A4100 */ add.s $f4, $f8, $f10 +/* 0A0310 7F06B7E0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0A0314 7F06B7E4 C6060000 */ lwc1 $f6, ($s0) +/* 0A0318 7F06B7E8 C4480004 */ lwc1 $f8, 4($v0) +/* 0A031C 7F06B7EC C6040004 */ lwc1 $f4, 4($s0) +/* 0A0320 7F06B7F0 46083282 */ mul.s $f10, $f6, $f8 +/* 0A0324 7F06B7F4 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0A0328 7F06B7F8 46062202 */ mul.s $f8, $f4, $f6 +/* 0A032C 7F06B7FC C6060008 */ lwc1 $f6, 8($s0) +/* 0A0330 7F06B800 46085100 */ add.s $f4, $f10, $f8 +/* 0A0334 7F06B804 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0A0338 7F06B808 460A3202 */ mul.s $f8, $f6, $f10 +/* 0A033C 7F06B80C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A0340 7F06B810 46082180 */ add.s $f6, $f4, $f8 +/* 0A0344 7F06B814 46065100 */ add.s $f4, $f10, $f6 +/* 0A0348 7F06B818 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0A034C 7F06B81C C44A0008 */ lwc1 $f10, 8($v0) +/* 0A0350 7F06B820 C6080000 */ lwc1 $f8, ($s0) +/* 0A0354 7F06B824 C6040004 */ lwc1 $f4, 4($s0) +/* 0A0358 7F06B828 460A4182 */ mul.s $f6, $f8, $f10 +/* 0A035C 7F06B82C C4480018 */ lwc1 $f8, 0x18($v0) +/* 0A0360 7F06B830 46082282 */ mul.s $f10, $f4, $f8 +/* 0A0364 7F06B834 C6080008 */ lwc1 $f8, 8($s0) +/* 0A0368 7F06B838 460A3100 */ add.s $f4, $f6, $f10 +/* 0A036C 7F06B83C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A0370 7F06B840 46064282 */ mul.s $f10, $f8, $f6 +/* 0A0374 7F06B844 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A0378 7F06B848 460A2200 */ add.s $f8, $f4, $f10 +/* 0A037C 7F06B84C C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0A0380 7F06B850 46083100 */ add.s $f4, $f6, $f8 +/* 0A0384 7F06B854 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A0388 7F06B858 46065202 */ mul.s $f8, $f10, $f6 +/* 0A038C 7F06B85C E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0A0390 7F06B860 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0A0394 7F06B864 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0A0398 7F06B868 E7A60028 */ swc1 $f6, 0x28($sp) +/* 0A039C 7F06B86C C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0A03A0 7F06B870 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A03A4 7F06B874 C54E0008 */ lwc1 $f14, 8($t2) +/* 0A03A8 7F06B878 C52C0008 */ lwc1 $f12, 8($t1) +/* 0A03AC 7F06B87C C5700008 */ lwc1 $f16, 8($t3) +/* 0A03B0 7F06B880 46044200 */ add.s $f8, $f8, $f4 +/* 0A03B4 7F06B884 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0A03B8 7F06B888 46062182 */ mul.s $f6, $f4, $f6 +/* 0A03BC 7F06B88C 46083080 */ add.s $f2, $f6, $f8 +/* 0A03C0 7F06B890 C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0A03C4 7F06B894 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0A03C8 7F06B898 46083182 */ mul.s $f6, $f6, $f8 +/* 0A03CC 7F06B89C C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0A03D0 7F06B8A0 460A4202 */ mul.s $f8, $f8, $f10 +/* 0A03D4 7F06B8A4 46083280 */ add.s $f10, $f6, $f8 +/* 0A03D8 7F06B8A8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0A03DC 7F06B8AC 46062202 */ mul.s $f8, $f4, $f6 +/* 0A03E0 7F06B8B0 44802000 */ mtc1 $zero, $f4 +/* 0A03E4 7F06B8B4 00000000 */ nop +/* 0A03E8 7F06B8B8 4604103C */ c.lt.s $f2, $f4 +/* 0A03EC 7F06B8BC 460A4480 */ add.s $f18, $f8, $f10 +/* 0A03F0 7F06B8C0 45020018 */ bc1fl .L7F06B924 +/* 0A03F4 7F06B8C4 44803000 */ mtc1 $zero, $f6 +/* 0A03F8 7F06B8C8 460E803C */ c.lt.s $f16, $f14 +/* 0A03FC 7F06B8CC 00000000 */ nop +/* 0A0400 7F06B8D0 4502000B */ bc1fl .L7F06B900 +/* 0A0404 7F06B8D4 4614703C */ c.lt.s $f14, $f20 +/* 0A0408 7F06B8D8 4614803C */ c.lt.s $f16, $f20 +/* 0A040C 7F06B8DC 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0410 7F06B8E0 45020030 */ bc1fl .L7F06B9A4 +/* 0A0414 7F06B8E4 44802000 */ mtc1 $zero, $f4 +/* 0A0418 7F06B8E8 44813000 */ mtc1 $at, $f6 +/* 0A041C 7F06B8EC 8FAC0110 */ lw $t4, 0x110($sp) +/* 0A0420 7F06B8F0 46068201 */ sub.s $f8, $f16, $f6 +/* 0A0424 7F06B8F4 1000002A */ b .L7F06B9A0 +/* 0A0428 7F06B8F8 E5880008 */ swc1 $f8, 8($t4) +/* 0A042C 7F06B8FC 4614703C */ c.lt.s $f14, $f20 +.L7F06B900: +/* 0A0430 7F06B900 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0434 7F06B904 45020027 */ bc1fl .L7F06B9A4 +/* 0A0438 7F06B908 44802000 */ mtc1 $zero, $f4 +/* 0A043C 7F06B90C 44815000 */ mtc1 $at, $f10 +/* 0A0440 7F06B910 8FAD0110 */ lw $t5, 0x110($sp) +/* 0A0444 7F06B914 460A7101 */ sub.s $f4, $f14, $f10 +/* 0A0448 7F06B918 10000021 */ b .L7F06B9A0 +/* 0A044C 7F06B91C E5A40008 */ swc1 $f4, 8($t5) +/* 0A0450 7F06B920 44803000 */ mtc1 $zero, $f6 +.L7F06B924: +/* 0A0454 7F06B924 00000000 */ nop +/* 0A0458 7F06B928 4602303E */ c.le.s $f6, $f2 +/* 0A045C 7F06B92C 00000000 */ nop +/* 0A0460 7F06B930 4502001C */ bc1fl .L7F06B9A4 +/* 0A0464 7F06B934 44802000 */ mtc1 $zero, $f4 +/* 0A0468 7F06B938 460EA03C */ c.lt.s $f20, $f14 +/* 0A046C 7F06B93C 3C013880 */ li $at, 0x38800000 # 0.000061 +/* 0A0470 7F06B940 45020006 */ bc1fl .L7F06B95C +/* 0A0474 7F06B944 4610A03C */ c.lt.s $f20, $f16 +/* 0A0478 7F06B948 44814000 */ mtc1 $at, $f8 +/* 0A047C 7F06B94C 00000000 */ nop +/* 0A0480 7F06B950 4608A281 */ sub.s $f10, $f20, $f8 +/* 0A0484 7F06B954 E54A0008 */ swc1 $f10, 8($t2) +/* 0A0488 7F06B958 4610A03C */ c.lt.s $f20, $f16 +.L7F06B95C: +/* 0A048C 7F06B95C 00000000 */ nop +/* 0A0490 7F06B960 45020010 */ bc1fl .L7F06B9A4 +/* 0A0494 7F06B964 44802000 */ mtc1 $zero, $f4 +/* 0A0498 7F06B968 460E803C */ c.lt.s $f16, $f14 +/* 0A049C 7F06B96C 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A04A0 7F06B970 45020008 */ bc1fl .L7F06B994 +/* 0A04A4 7F06B974 44814000 */ mtc1 $at, $f8 +/* 0A04A8 7F06B978 3C0138C0 */ li $at, 0x38C00000 # 0.000092 +/* 0A04AC 7F06B97C 44812000 */ mtc1 $at, $f4 +/* 0A04B0 7F06B980 00000000 */ nop +/* 0A04B4 7F06B984 4604A181 */ sub.s $f6, $f20, $f4 +/* 0A04B8 7F06B988 10000005 */ b .L7F06B9A0 +/* 0A04BC 7F06B98C E5660008 */ swc1 $f6, 8($t3) +/* 0A04C0 7F06B990 44814000 */ mtc1 $at, $f8 +.L7F06B994: +/* 0A04C4 7F06B994 00000000 */ nop +/* 0A04C8 7F06B998 4608A281 */ sub.s $f10, $f20, $f8 +/* 0A04CC 7F06B99C E56A0008 */ swc1 $f10, 8($t3) +.L7F06B9A0: +/* 0A04D0 7F06B9A0 44802000 */ mtc1 $zero, $f4 +.L7F06B9A4: +/* 0A04D4 7F06B9A4 8FAE0110 */ lw $t6, 0x110($sp) +/* 0A04D8 7F06B9A8 4604903C */ c.lt.s $f18, $f4 +/* 0A04DC 7F06B9AC 00000000 */ nop +/* 0A04E0 7F06B9B0 45020033 */ bc1fl .L7F06BA80 +/* 0A04E4 7F06B9B4 44802000 */ mtc1 $zero, $f4 +/* 0A04E8 7F06B9B8 C5C20008 */ lwc1 $f2, 8($t6) +/* 0A04EC 7F06B9BC 4602603C */ c.lt.s $f12, $f2 +/* 0A04F0 7F06B9C0 00000000 */ nop +/* 0A04F4 7F06B9C4 45020053 */ bc1fl .L7F06BB14 +/* 0A04F8 7F06B9C8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A04FC 7F06B9CC C5400008 */ lwc1 $f0, 8($t2) +/* 0A0500 7F06B9D0 4602003C */ c.lt.s $f0, $f2 +/* 0A0504 7F06B9D4 00000000 */ nop +/* 0A0508 7F06B9D8 4502000C */ bc1fl .L7F06BA0C +/* 0A050C 7F06B9DC C5600008 */ lwc1 $f0, 8($t3) +/* 0A0510 7F06B9E0 4600603C */ c.lt.s $f12, $f0 +/* 0A0514 7F06B9E4 3C013880 */ li $at, 0x38800000 # 0.000061 +/* 0A0518 7F06B9E8 45020008 */ bc1fl .L7F06BA0C +/* 0A051C 7F06B9EC C5600008 */ lwc1 $f0, 8($t3) +/* 0A0520 7F06B9F0 44813000 */ mtc1 $at, $f6 +/* 0A0524 7F06B9F4 00000000 */ nop +/* 0A0528 7F06B9F8 46066201 */ sub.s $f8, $f12, $f6 +/* 0A052C 7F06B9FC E5480008 */ swc1 $f8, 8($t2) +/* 0A0530 7F06BA00 8FAF0110 */ lw $t7, 0x110($sp) +/* 0A0534 7F06BA04 C5E20008 */ lwc1 $f2, 8($t7) +/* 0A0538 7F06BA08 C5600008 */ lwc1 $f0, 8($t3) +.L7F06BA0C: +/* 0A053C 7F06BA0C 4602003C */ c.lt.s $f0, $f2 +/* 0A0540 7F06BA10 00000000 */ nop +/* 0A0544 7F06BA14 45020014 */ bc1fl .L7F06BA68 +/* 0A0548 7F06BA18 3C013780 */ lui $at, 0x3780 +/* 0A054C 7F06BA1C 4600603C */ c.lt.s $f12, $f0 +/* 0A0550 7F06BA20 00000000 */ nop +/* 0A0554 7F06BA24 45020010 */ bc1fl .L7F06BA68 +/* 0A0558 7F06BA28 3C013780 */ li $at, 0x37800000 # 0.000015 +/* 0A055C 7F06BA2C 460E803C */ c.lt.s $f16, $f14 +/* 0A0560 7F06BA30 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0564 7F06BA34 45020008 */ bc1fl .L7F06BA58 +/* 0A0568 7F06BA38 44813000 */ mtc1 $at, $f6 +/* 0A056C 7F06BA3C 3C0138C0 */ li $at, 0x38C00000 # 0.000092 +/* 0A0570 7F06BA40 44815000 */ mtc1 $at, $f10 +/* 0A0574 7F06BA44 00000000 */ nop +/* 0A0578 7F06BA48 460A6101 */ sub.s $f4, $f12, $f10 +/* 0A057C 7F06BA4C 10000005 */ b .L7F06BA64 +/* 0A0580 7F06BA50 E5640008 */ swc1 $f4, 8($t3) +/* 0A0584 7F06BA54 44813000 */ mtc1 $at, $f6 +.L7F06BA58: +/* 0A0588 7F06BA58 00000000 */ nop +/* 0A058C 7F06BA5C 46066201 */ sub.s $f8, $f12, $f6 +/* 0A0590 7F06BA60 E5680008 */ swc1 $f8, 8($t3) +.L7F06BA64: +/* 0A0594 7F06BA64 3C013780 */ li $at, 0x37800000 # 0.000015 +.L7F06BA68: +/* 0A0598 7F06BA68 44819000 */ mtc1 $at, $f18 +/* 0A059C 7F06BA6C 8FB80110 */ lw $t8, 0x110($sp) +/* 0A05A0 7F06BA70 46126281 */ sub.s $f10, $f12, $f18 +/* 0A05A4 7F06BA74 10000026 */ b .L7F06BB10 +/* 0A05A8 7F06BA78 E70A0008 */ swc1 $f10, 8($t8) +/* 0A05AC 7F06BA7C 44802000 */ mtc1 $zero, $f4 +.L7F06BA80: +/* 0A05B0 7F06BA80 8FB90110 */ lw $t9, 0x110($sp) +/* 0A05B4 7F06BA84 4612203E */ c.le.s $f4, $f18 +/* 0A05B8 7F06BA88 00000000 */ nop +/* 0A05BC 7F06BA8C 45020021 */ bc1fl .L7F06BB14 +/* 0A05C0 7F06BA90 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A05C4 7F06BA94 C7220008 */ lwc1 $f2, 8($t9) +/* 0A05C8 7F06BA98 3C013780 */ li $at, 0x37800000 # 0.000015 +/* 0A05CC 7F06BA9C 460C103C */ c.lt.s $f2, $f12 +/* 0A05D0 7F06BAA0 00000000 */ nop +/* 0A05D4 7F06BAA4 4502001B */ bc1fl .L7F06BB14 +/* 0A05D8 7F06BAA8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A05DC 7F06BAAC 44819000 */ mtc1 $at, $f18 +/* 0A05E0 7F06BAB0 460E603C */ c.lt.s $f12, $f14 +/* 0A05E4 7F06BAB4 46121181 */ sub.s $f6, $f2, $f18 +/* 0A05E8 7F06BAB8 45000009 */ bc1f .L7F06BAE0 +/* 0A05EC 7F06BABC E5260008 */ swc1 $f6, 8($t1) +/* 0A05F0 7F06BAC0 C5400008 */ lwc1 $f0, 8($t2) +/* 0A05F4 7F06BAC4 C5280008 */ lwc1 $f8, 8($t1) +/* 0A05F8 7F06BAC8 4608003C */ c.lt.s $f0, $f8 +/* 0A05FC 7F06BACC 00000000 */ nop +/* 0A0600 7F06BAD0 45020004 */ bc1fl .L7F06BAE4 +/* 0A0604 7F06BAD4 4610603C */ c.lt.s $f12, $f16 +/* 0A0608 7F06BAD8 46120281 */ sub.s $f10, $f0, $f18 +/* 0A060C 7F06BADC E52A0008 */ swc1 $f10, 8($t1) +.L7F06BAE0: +/* 0A0610 7F06BAE0 4610603C */ c.lt.s $f12, $f16 +.L7F06BAE4: +/* 0A0614 7F06BAE4 00000000 */ nop +/* 0A0618 7F06BAE8 4502000A */ bc1fl .L7F06BB14 +/* 0A061C 7F06BAEC 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A0620 7F06BAF0 C5600008 */ lwc1 $f0, 8($t3) +/* 0A0624 7F06BAF4 C5240008 */ lwc1 $f4, 8($t1) +/* 0A0628 7F06BAF8 4604003C */ c.lt.s $f0, $f4 +/* 0A062C 7F06BAFC 00000000 */ nop +/* 0A0630 7F06BB00 45020004 */ bc1fl .L7F06BB14 +/* 0A0634 7F06BB04 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A0638 7F06BB08 46120181 */ sub.s $f6, $f0, $f18 +/* 0A063C 7F06BB0C E5260008 */ swc1 $f6, 8($t1) +.L7F06BB10: +/* 0A0640 7F06BB10 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06BB14: +/* 0A0644 7F06BB14 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0A0648 7F06BB18 8FB0001C */ lw $s0, 0x1c($sp) +/* 0A064C 7F06BB1C 8FB10020 */ lw $s1, 0x20($sp) +/* 0A0650 7F06BB20 03E00008 */ jr $ra +/* 0A0654 7F06BB24 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06BB28(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06BB28 +/* 0A0658 7F06BB28 10800035 */ beqz $a0, .L7F06BC00 +/* 0A065C 7F06BB2C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A0660 7F06BB30 8C8E000C */ lw $t6, 0xc($a0) +/* 0A0664 7F06BB34 00801025 */ move $v0, $a0 +/* 0A0668 7F06BB38 27A60020 */ addiu $a2, $sp, 0x20 +/* 0A066C 7F06BB3C 11C00006 */ beqz $t6, .L7F06BB58 +/* 0A0670 7F06BB40 3C01CF80 */ li $at, 0xCF800000 # -4294967296.000000 +/* 0A0674 7F06BB44 8C43000C */ lw $v1, 0xc($v0) +/* 0A0678 7F06BB48 00601025 */ move $v0, $v1 +.L7F06BB4C: +/* 0A067C 7F06BB4C 8C63000C */ lw $v1, 0xc($v1) +/* 0A0680 7F06BB50 5460FFFE */ bnezl $v1, .L7F06BB4C +/* 0A0684 7F06BB54 00601025 */ move $v0, $v1 +.L7F06BB58: +/* 0A0688 7F06BB58 27A30034 */ addiu $v1, $sp, 0x34 +/* 0A068C 7F06BB5C AFA40040 */ sw $a0, 0x40($sp) +/* 0A0690 7F06BB60 AC830010 */ sw $v1, 0x10($a0) +/* 0A0694 7F06BB64 AFA20030 */ sw $v0, 0x30($sp) +/* 0A0698 7F06BB68 44816000 */ mtc1 $at, $f12 +/* 0A069C 7F06BB6C AC46000C */ sw $a2, 0xc($v0) +.L7F06BB70: +/* 0A06A0 7F06BB70 8C65000C */ lw $a1, 0xc($v1) +/* 0A06A4 7F06BB74 00001025 */ move $v0, $zero +/* 0A06A8 7F06BB78 46006006 */ mov.s $f0, $f12 +/* 0A06AC 7F06BB7C 10A6000B */ beq $a1, $a2, .L7F06BBAC +/* 0A06B0 7F06BB80 00A02025 */ move $a0, $a1 +/* 0A06B4 7F06BB84 C4820008 */ lwc1 $f2, 8($a0) +.L7F06BB88: +/* 0A06B8 7F06BB88 4602003C */ c.lt.s $f0, $f2 +/* 0A06BC 7F06BB8C 00000000 */ nop +/* 0A06C0 7F06BB90 45020004 */ bc1fl .L7F06BBA4 +/* 0A06C4 7F06BB94 8C84000C */ lw $a0, 0xc($a0) +/* 0A06C8 7F06BB98 46001006 */ mov.s $f0, $f2 +/* 0A06CC 7F06BB9C 00801025 */ move $v0, $a0 +/* 0A06D0 7F06BBA0 8C84000C */ lw $a0, 0xc($a0) +.L7F06BBA4: +/* 0A06D4 7F06BBA4 5486FFF8 */ bnel $a0, $a2, .L7F06BB88 +/* 0A06D8 7F06BBA8 C4820008 */ lwc1 $f2, 8($a0) +.L7F06BBAC: +/* 0A06DC 7F06BBAC 1040000E */ beqz $v0, .L7F06BBE8 +/* 0A06E0 7F06BBB0 00000000 */ nop +/* 0A06E4 7F06BBB4 8C4F0010 */ lw $t7, 0x10($v0) +/* 0A06E8 7F06BBB8 8C58000C */ lw $t8, 0xc($v0) +/* 0A06EC 7F06BBBC 00402825 */ move $a1, $v0 +/* 0A06F0 7F06BBC0 AF0F0010 */ sw $t7, 0x10($t8) +/* 0A06F4 7F06BBC4 8C59000C */ lw $t9, 0xc($v0) +/* 0A06F8 7F06BBC8 8C480010 */ lw $t0, 0x10($v0) +/* 0A06FC 7F06BBCC AD19000C */ sw $t9, 0xc($t0) +/* 0A0700 7F06BBD0 AC430010 */ sw $v1, 0x10($v0) +/* 0A0704 7F06BBD4 8C69000C */ lw $t1, 0xc($v1) +/* 0A0708 7F06BBD8 AC49000C */ sw $t1, 0xc($v0) +/* 0A070C 7F06BBDC 8C6A000C */ lw $t2, 0xc($v1) +/* 0A0710 7F06BBE0 AD420010 */ sw $v0, 0x10($t2) +/* 0A0714 7F06BBE4 AC62000C */ sw $v0, 0xc($v1) +.L7F06BBE8: +/* 0A0718 7F06BBE8 14A6FFE1 */ bne $a1, $a2, .L7F06BB70 +/* 0A071C 7F06BBEC 00A01825 */ move $v1, $a1 +/* 0A0720 7F06BBF0 8FA40040 */ lw $a0, 0x40($sp) +/* 0A0724 7F06BBF4 AC800010 */ sw $zero, 0x10($a0) +/* 0A0728 7F06BBF8 8FAC0030 */ lw $t4, 0x30($sp) +/* 0A072C 7F06BBFC AD80000C */ sw $zero, 0xc($t4) +.L7F06BC00: +/* 0A0730 7F06BC00 00801025 */ move $v0, $a0 +/* 0A0734 7F06BC04 03E00008 */ jr $ra +/* 0A0738 7F06BC08 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void drawjointlist(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054538*/ +glabel obj_table_jointlist +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 + +.text +glabel drawjointlist +/* 0A073C 7F06BC0C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A0740 7F06BC10 AFBF002C */ sw $ra, 0x2c($sp) +/* 0A0744 7F06BC14 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0748 7F06BC18 AFB30024 */ sw $s3, 0x24($sp) +/* 0A074C 7F06BC1C AFB20020 */ sw $s2, 0x20($sp) +/* 0A0750 7F06BC20 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0754 7F06BC24 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0758 7F06BC28 8C8E000C */ lw $t6, 0xc($a0) +/* 0A075C 7F06BC2C 0080A025 */ move $s4, $a0 +/* 0A0760 7F06BC30 00A09825 */ move $s3, $a1 +/* 0A0764 7F06BC34 15C00005 */ bnez $t6, .L7F06BC4C +/* 0A0768 7F06BC38 3C048005 */ lui $a0, %hi(aDrawjointlistNoGfxlist) +/* 0A076C 7F06BC3C 0C0033D1 */ jal osSyncPrintf +/* 0A0770 7F06BC40 24844420 */ addiu $a0, %lo(aDrawjointlistNoGfxlist) # addiu $a0, $a0, 0x4420 +/* 0A0774 7F06BC44 0FC1B11B */ jal return_null +/* 0A0778 7F06BC48 00000000 */ nop +.L7F06BC4C: +/* 0A077C 7F06BC4C 52600065 */ beql $s3, $zero, .L7F06BDE4 +/* 0A0780 7F06BC50 8FBF002C */ lw $ra, 0x2c($sp) +/* 0A0784 7F06BC54 8E660000 */ lw $a2, ($s3) +.L7F06BC58: +/* 0A0788 7F06BC58 8E710004 */ lw $s1, 4($s3) +/* 0A078C 7F06BC5C 3C048005 */ lui $a0, %hi(aDrawjointlistNoObject0xX) +/* 0A0790 7F06BC60 8CC50008 */ lw $a1, 8($a2) +/* 0A0794 7F06BC64 2484443C */ addiu $a0, %lo(aDrawjointlistNoObject0xX) # addiu $a0, $a0, 0x443c +/* 0A0798 7F06BC68 02208025 */ move $s0, $s1 +/* 0A079C 7F06BC6C 54A00008 */ bnezl $a1, .L7F06BC90 +/* 0A07A0 7F06BC70 8CB8001C */ lw $t8, 0x1c($a1) +/* 0A07A4 7F06BC74 0C0033D1 */ jal osSyncPrintf +/* 0A07A8 7F06BC78 00C02825 */ move $a1, $a2 +/* 0A07AC 7F06BC7C 0FC1B11B */ jal return_null +/* 0A07B0 7F06BC80 00000000 */ nop +/* 0A07B4 7F06BC84 8E6F0000 */ lw $t7, ($s3) +/* 0A07B8 7F06BC88 8DE50008 */ lw $a1, 8($t7) +/* 0A07BC 7F06BC8C 8CB8001C */ lw $t8, 0x1c($a1) +.L7F06BC90: +/* 0A07C0 7F06BC90 3C048005 */ lui $a0, %hi(aDrawjointlistObjectNotInitialised0) +/* 0A07C4 7F06BC94 57000006 */ bnezl $t8, .L7F06BCB0 +/* 0A07C8 7F06BC98 8E990018 */ lw $t9, 0x18($s4) +/* 0A07CC 7F06BC9C 0C0033D1 */ jal osSyncPrintf +/* 0A07D0 7F06BCA0 24844460 */ addiu $a0, %lo(aDrawjointlistObjectNotInitialised0) # addiu $a0, $a0, 0x4460 +/* 0A07D4 7F06BCA4 0FC1B11B */ jal return_null +/* 0A07D8 7F06BCA8 00000000 */ nop +/* 0A07DC 7F06BCAC 8E990018 */ lw $t9, 0x18($s4) +.L7F06BCB0: +/* 0A07E0 7F06BCB0 02202825 */ move $a1, $s1 +/* 0A07E4 7F06BCB4 5320000B */ beql $t9, $zero, .L7F06BCE4 +/* 0A07E8 7F06BCB8 8E82000C */ lw $v0, 0xc($s4) +/* 0A07EC 7F06BCBC 0FC1B3A4 */ jal getjointsize +/* 0A07F0 7F06BCC0 8E640000 */ lw $a0, ($s3) +/* 0A07F4 7F06BCC4 C6640008 */ lwc1 $f4, 8($s3) +/* 0A07F8 7F06BCC8 4600203C */ c.lt.s $f4, $f0 +/* 0A07FC 7F06BCCC 00000000 */ nop +/* 0A0800 7F06BCD0 4500000E */ bc1f .L7F06BD0C +/* 0A0804 7F06BCD4 00000000 */ nop +/* 0A0808 7F06BCD8 1000000C */ b .L7F06BD0C +/* 0A080C 7F06BCDC 00008025 */ move $s0, $zero +/* 0A0810 7F06BCE0 8E82000C */ lw $v0, 0xc($s4) +.L7F06BCE4: +/* 0A0814 7F06BCE4 3C09BC00 */ lui $t1, (0xBC000C06 >> 16) # lui $t1, 0xbc00 +/* 0A0818 7F06BCE8 35290C06 */ ori $t1, (0xBC000C06 & 0xFFFF) # ori $t1, $t1, 0xc06 +/* 0A081C 7F06BCEC 24480008 */ addiu $t0, $v0, 8 +/* 0A0820 7F06BCF0 AE88000C */ sw $t0, 0xc($s4) +/* 0A0824 7F06BCF4 AC490000 */ sw $t1, ($v0) +/* 0A0828 7F06BCF8 8E6A0000 */ lw $t2, ($s3) +/* 0A082C 7F06BCFC 00409025 */ move $s2, $v0 +/* 0A0830 7F06BD00 0C003A2C */ jal osVirtualToPhysical +/* 0A0834 7F06BD04 8D44000C */ lw $a0, 0xc($t2) +/* 0A0838 7F06BD08 AE420004 */ sw $v0, 4($s2) +.L7F06BD0C: +/* 0A083C 7F06BD0C 52000032 */ beql $s0, $zero, .L7F06BDD8 +/* 0A0840 7F06BD10 8E73000C */ lw $s3, 0xc($s3) +/* 0A0844 7F06BD14 96020000 */ lhu $v0, ($s0) +.L7F06BD18: +/* 0A0848 7F06BD18 24120001 */ li $s2, 1 +/* 0A084C 7F06BD1C 304B00FF */ andi $t3, $v0, 0xff +/* 0A0850 7F06BD20 256CFFFF */ addiu $t4, $t3, -1 +/* 0A0854 7F06BD24 2D810018 */ sltiu $at, $t4, 0x18 +/* 0A0858 7F06BD28 1020000F */ beqz $at, .L7F06BD68 +/* 0A085C 7F06BD2C 000C6080 */ sll $t4, $t4, 2 +/* 0A0860 7F06BD30 3C018005 */ lui $at, %hi(obj_table_jointlist) +/* 0A0864 7F06BD34 002C0821 */ addu $at, $at, $t4 +/* 0A0868 7F06BD38 8C2C4538 */ lw $t4, %lo(obj_table_jointlist)($at) +.L7F06BD3C: +/* 0A086C 7F06BD3C 01800008 */ jr $t4 +/* 0A0870 7F06BD40 00000000 */ nop +.L7F06BD44: +/* 0A0874 7F06BD44 16110006 */ bne $s0, $s1, .L7F06BD60 +/* 0A0878 7F06BD48 02802025 */ move $a0, $s4 +/* 0A087C 7F06BD4C 8E650000 */ lw $a1, ($s3) +/* 0A0880 7F06BD50 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A0884 7F06BD54 02003025 */ move $a2, $s0 +/* 0A0888 7F06BD58 10000007 */ b .L7F06BD78 +/* 0A088C 7F06BD5C 00000000 */ nop +.L7F06BD60: +/* 0A0890 7F06BD60 10000005 */ b .L7F06BD78 +/* 0A0894 7F06BD64 00009025 */ move $s2, $zero +def_7F06BD3C: +.L7F06BD68: +/* 0A0898 7F06BD68 02802025 */ move $a0, $s4 +/* 0A089C 7F06BD6C 8E650000 */ lw $a1, ($s3) +/* 0A08A0 7F06BD70 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A08A4 7F06BD74 02003025 */ move $a2, $s0 +.L7F06BD78: +/* 0A08A8 7F06BD78 12400006 */ beqz $s2, .L7F06BD94 +/* 0A08AC 7F06BD7C 00000000 */ nop +/* 0A08B0 7F06BD80 8E020014 */ lw $v0, 0x14($s0) +/* 0A08B4 7F06BD84 10400003 */ beqz $v0, .L7F06BD94 +/* 0A08B8 7F06BD88 00000000 */ nop +/* 0A08BC 7F06BD8C 1000000F */ b .L7F06BDCC +/* 0A08C0 7F06BD90 00408025 */ move $s0, $v0 +.L7F06BD94: +/* 0A08C4 7F06BD94 1200000D */ beqz $s0, .L7F06BDCC +/* 0A08C8 7F06BD98 00000000 */ nop +.L7F06BD9C: +/* 0A08CC 7F06BD9C 56110004 */ bnel $s0, $s1, .L7F06BDB0 +/* 0A08D0 7F06BDA0 8E02000C */ lw $v0, 0xc($s0) +/* 0A08D4 7F06BDA4 10000009 */ b .L7F06BDCC +/* 0A08D8 7F06BDA8 00008025 */ move $s0, $zero +/* 0A08DC 7F06BDAC 8E02000C */ lw $v0, 0xc($s0) +.L7F06BDB0: +/* 0A08E0 7F06BDB0 50400004 */ beql $v0, $zero, .L7F06BDC4 +/* 0A08E4 7F06BDB4 8E100008 */ lw $s0, 8($s0) +/* 0A08E8 7F06BDB8 10000004 */ b .L7F06BDCC +/* 0A08EC 7F06BDBC 00408025 */ move $s0, $v0 +/* 0A08F0 7F06BDC0 8E100008 */ lw $s0, 8($s0) +.L7F06BDC4: +/* 0A08F4 7F06BDC4 1600FFF5 */ bnez $s0, .L7F06BD9C +/* 0A08F8 7F06BDC8 00000000 */ nop +.L7F06BDCC: +/* 0A08FC 7F06BDCC 5600FFD2 */ bnezl $s0, .L7F06BD18 +/* 0A0900 7F06BDD0 96020000 */ lhu $v0, ($s0) +/* 0A0904 7F06BDD4 8E73000C */ lw $s3, 0xc($s3) +.L7F06BDD8: +/* 0A0908 7F06BDD8 5660FF9F */ bnezl $s3, .L7F06BC58 +/* 0A090C 7F06BDDC 8E660000 */ lw $a2, ($s3) +/* 0A0910 7F06BDE0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F06BDE4: +/* 0A0914 7F06BDE4 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0918 7F06BDE8 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A091C 7F06BDEC 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0920 7F06BDF0 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0924 7F06BDF4 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0928 7F06BDF8 03E00008 */ jr $ra +/* 0A092C 7F06BDFC 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void probably_damage_detail_blood_effect_related(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054598*/ +glabel jpt_damage_detail +.word .L7F06BEF4 +.word .L7F06BEF4 +.word .L7F06BEF4 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BF94 +.word .L7F06BFC8 +.word .L7F06BF04 +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BF4C +.word .L7F06BFA8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BEF4 +.word .L7F06BFC8 +.word .L7F06BFBC +.word .L7F06BFC8 + +/*D:800545F8*/ +glabel D_800545F8 +.word 0,0 + +.text +glabel probably_damage_detail_blood_effect_related +/* 0A0930 7F06BE00 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0A0934 7F06BE04 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A0938 7F06BE08 AFB60030 */ sw $s6, 0x30($sp) +/* 0A093C 7F06BE0C AFB5002C */ sw $s5, 0x2c($sp) +/* 0A0940 7F06BE10 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0944 7F06BE14 AFB30024 */ sw $s3, 0x24($sp) +/* 0A0948 7F06BE18 AFB20020 */ sw $s2, 0x20($sp) +/* 0A094C 7F06BE1C AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0950 7F06BE20 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0954 7F06BE24 AFA40038 */ sw $a0, 0x38($sp) +/* 0A0958 7F06BE28 AFA70044 */ sw $a3, 0x44($sp) +/* 0A095C 7F06BE2C 8C930000 */ lw $s3, ($a0) +/* 0A0960 7F06BE30 00A0A025 */ move $s4, $a1 +/* 0A0964 7F06BE34 00C0A825 */ move $s5, $a2 +/* 0A0968 7F06BE38 12600068 */ beqz $s3, .L7F06BFDC +/* 0A096C 7F06BE3C 8FB60048 */ lw $s6, 0x48($sp) +/* 0A0970 7F06BE40 8EC20000 */ lw $v0, ($s6) +.L7F06BE44: +/* 0A0974 7F06BE44 8E720004 */ lw $s2, 4($s3) +/* 0A0978 7F06BE48 24110001 */ li $s1, 1 +/* 0A097C 7F06BE4C 10400004 */ beqz $v0, .L7F06BE60 +/* 0A0980 7F06BE50 02408025 */ move $s0, $s2 +/* 0A0984 7F06BE54 00408025 */ move $s0, $v0 +/* 0A0988 7F06BE58 10000001 */ b .L7F06BE60 +/* 0A098C 7F06BE5C AEC00000 */ sw $zero, ($s6) +.L7F06BE60: +/* 0A0990 7F06BE60 5200005C */ beql $s0, $zero, .L7F06BFD4 +/* 0A0994 7F06BE64 8E730010 */ lw $s3, 0x10($s3) +.L7F06BE68: +/* 0A0998 7F06BE68 12200006 */ beqz $s1, .L7F06BE84 +/* 0A099C 7F06BE6C 00000000 */ nop +/* 0A09A0 7F06BE70 8E020014 */ lw $v0, 0x14($s0) +/* 0A09A4 7F06BE74 10400003 */ beqz $v0, .L7F06BE84 +/* 0A09A8 7F06BE78 00000000 */ nop +/* 0A09AC 7F06BE7C 10000011 */ b .L7F06BEC4 +/* 0A09B0 7F06BE80 00408025 */ move $s0, $v0 +.L7F06BE84: +/* 0A09B4 7F06BE84 1200000D */ beqz $s0, .L7F06BEBC +/* 0A09B8 7F06BE88 00000000 */ nop +.L7F06BE8C: +/* 0A09BC 7F06BE8C 56120004 */ bnel $s0, $s2, .L7F06BEA0 +/* 0A09C0 7F06BE90 8E02000C */ lw $v0, 0xc($s0) +/* 0A09C4 7F06BE94 10000009 */ b .L7F06BEBC +/* 0A09C8 7F06BE98 00008025 */ move $s0, $zero +/* 0A09CC 7F06BE9C 8E02000C */ lw $v0, 0xc($s0) +.L7F06BEA0: +/* 0A09D0 7F06BEA0 50400004 */ beql $v0, $zero, .L7F06BEB4 +/* 0A09D4 7F06BEA4 8E100008 */ lw $s0, 8($s0) +/* 0A09D8 7F06BEA8 10000004 */ b .L7F06BEBC +/* 0A09DC 7F06BEAC 00408025 */ move $s0, $v0 +/* 0A09E0 7F06BEB0 8E100008 */ lw $s0, 8($s0) +.L7F06BEB4: +/* 0A09E4 7F06BEB4 1600FFF5 */ bnez $s0, .L7F06BE8C +/* 0A09E8 7F06BEB8 00000000 */ nop +.L7F06BEBC: +/* 0A09EC 7F06BEBC 52000045 */ beql $s0, $zero, .L7F06BFD4 +/* 0A09F0 7F06BEC0 8E730010 */ lw $s3, 0x10($s3) +.L7F06BEC4: +/* 0A09F4 7F06BEC4 96020000 */ lhu $v0, ($s0) +/* 0A09F8 7F06BEC8 24110001 */ li $s1, 1 +/* 0A09FC 7F06BECC 304F00FF */ andi $t7, $v0, 0xff +/* 0A0A00 7F06BED0 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A0A04 7F06BED4 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A0A08 7F06BED8 1020003B */ beqz $at, .L7F06BFC8 +/* 0A0A0C 7F06BEDC 0018C080 */ sll $t8, $t8, 2 +/* 0A0A10 7F06BEE0 3C018005 */ lui $at, %hi(jpt_damage_detail) +/* 0A0A14 7F06BEE4 00380821 */ addu $at, $at, $t8 +/* 0A0A18 7F06BEE8 8C384598 */ lw $t8, %lo(jpt_damage_detail)($at) +.L7F06BEEC: +/* 0A0A1C 7F06BEEC 03000008 */ jr $t8 +/* 0A0A20 7F06BEF0 00000000 */ nop +.L7F06BEF4: +/* 0A0A24 7F06BEF4 10000034 */ b .L7F06BFC8 +/* 0A0A28 7F06BEF8 00008825 */ move $s1, $zero +.L7F06BEFC: +/* 0A0A2C 7F06BEFC 10000032 */ b .L7F06BFC8 +/* 0A0A30 7F06BF00 00008825 */ move $s1, $zero +.L7F06BF04: +/* 0A0A34 7F06BF04 8E640000 */ lw $a0, ($s3) +/* 0A0A38 7F06BF08 02002825 */ move $a1, $s0 +/* 0A0A3C 7F06BF0C 02803025 */ move $a2, $s4 +/* 0A0A40 7F06BF10 0FC1D31A */ jal sub_GAME_7F074C68 +/* 0A0A44 7F06BF14 02A03825 */ move $a3, $s5 +/* 0A0A48 7F06BF18 1040000A */ beqz $v0, .L7F06BF44 +/* 0A0A4C 7F06BF1C 00000000 */ nop +/* 0A0A50 7F06BF20 8E790000 */ lw $t9, ($s3) +/* 0A0A54 7F06BF24 8FA80044 */ lw $t0, 0x44($sp) +/* 0A0A58 7F06BF28 AD190000 */ sw $t9, ($t0) +/* 0A0A5C 7F06BF2C AED00000 */ sw $s0, ($s6) +/* 0A0A60 7F06BF30 8FA90038 */ lw $t1, 0x38($sp) +/* 0A0A64 7F06BF34 AD330000 */ sw $s3, ($t1) +/* 0A0A68 7F06BF38 8E0A0004 */ lw $t2, 4($s0) +/* 0A0A6C 7F06BF3C 1000002A */ b .L7F06BFE8 +/* 0A0A70 7F06BF40 8D420000 */ lw $v0, ($t2) +.L7F06BF44: +/* 0A0A74 7F06BF44 10000020 */ b .L7F06BFC8 +/* 0A0A78 7F06BF48 00008825 */ move $s1, $zero +.L7F06BF4C: +/* 0A0A7C 7F06BF4C 8E640000 */ lw $a0, ($s3) +/* 0A0A80 7F06BF50 02002825 */ move $a1, $s0 +/* 0A0A84 7F06BF54 02803025 */ move $a2, $s4 +/* 0A0A88 7F06BF58 0FC1D32B */ jal sub_GAME_7F074CAC +/* 0A0A8C 7F06BF5C 02A03825 */ move $a3, $s5 +/* 0A0A90 7F06BF60 1040000A */ beqz $v0, .L7F06BF8C +/* 0A0A94 7F06BF64 00000000 */ nop +/* 0A0A98 7F06BF68 8E6B0000 */ lw $t3, ($s3) +/* 0A0A9C 7F06BF6C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0A0AA0 7F06BF70 AD8B0000 */ sw $t3, ($t4) +/* 0A0AA4 7F06BF74 AED00000 */ sw $s0, ($s6) +/* 0A0AA8 7F06BF78 8FAD0038 */ lw $t5, 0x38($sp) +/* 0A0AAC 7F06BF7C ADB30000 */ sw $s3, ($t5) +/* 0A0AB0 7F06BF80 8E0E0004 */ lw $t6, 4($s0) +/* 0A0AB4 7F06BF84 10000018 */ b .L7F06BFE8 +/* 0A0AB8 7F06BF88 8DC20000 */ lw $v0, ($t6) +.L7F06BF8C: +/* 0A0ABC 7F06BF8C 1000000E */ b .L7F06BFC8 +/* 0A0AC0 7F06BF90 00008825 */ move $s1, $zero +.L7F06BF94: +/* 0A0AC4 7F06BF94 8E640000 */ lw $a0, ($s3) +/* 0A0AC8 7F06BF98 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0A0ACC 7F06BF9C 02002825 */ move $a1, $s0 +/* 0A0AD0 7F06BFA0 10000009 */ b .L7F06BFC8 +/* 0A0AD4 7F06BFA4 00000000 */ nop +.L7F06BFA8: +/* 0A0AD8 7F06BFA8 8E640000 */ lw $a0, ($s3) +/* 0A0ADC 7F06BFAC 0FC1BA6F */ jal process_12_handle_switch +/* 0A0AE0 7F06BFB0 02002825 */ move $a1, $s0 +/* 0A0AE4 7F06BFB4 10000004 */ b .L7F06BFC8 +/* 0A0AE8 7F06BFB8 00000000 */ nop +.L7F06BFBC: +/* 0A0AEC 7F06BFBC 8E640000 */ lw $a0, ($s3) +/* 0A0AF0 7F06BFC0 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A0AF4 7F06BFC4 02002825 */ move $a1, $s0 +def_7F06BEEC: +.L7F06BFC8: +/* 0A0AF8 7F06BFC8 1600FFA7 */ bnez $s0, .L7F06BE68 +/* 0A0AFC 7F06BFCC 00000000 */ nop +/* 0A0B00 7F06BFD0 8E730010 */ lw $s3, 0x10($s3) +.L7F06BFD4: +/* 0A0B04 7F06BFD4 5660FF9B */ bnezl $s3, .L7F06BE44 +/* 0A0B08 7F06BFD8 8EC20000 */ lw $v0, ($s6) +.L7F06BFDC: +/* 0A0B0C 7F06BFDC 8FAF0038 */ lw $t7, 0x38($sp) +/* 0A0B10 7F06BFE0 00001025 */ move $v0, $zero +/* 0A0B14 7F06BFE4 ADE00000 */ sw $zero, ($t7) +.L7F06BFE8: +/* 0A0B18 7F06BFE8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A0B1C 7F06BFEC 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0B20 7F06BFF0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A0B24 7F06BFF4 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0B28 7F06BFF8 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0B2C 7F06BFFC 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0B30 7F06C000 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A0B34 7F06C004 8FB60030 */ lw $s6, 0x30($sp) +/* 0A0B38 7F06C008 03E00008 */ jr $ra +/* 0A0B3C 7F06C00C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C010(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C010 +/* 0A0B40 7F06C010 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A0B44 7F06C014 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A0B48 7F06C018 8C830000 */ lw $v1, ($a0) +/* 0A0B4C 7F06C01C 8C62000C */ lw $v0, 0xc($v1) +/* 0A0B50 7F06C020 50400006 */ beql $v0, $zero, .L7F06C03C +/* 0A0B54 7F06C024 8FA20030 */ lw $v0, 0x30($sp) +/* 0A0B58 7F06C028 00401825 */ move $v1, $v0 +.L7F06C02C: +/* 0A0B5C 7F06C02C 8C42000C */ lw $v0, 0xc($v0) +/* 0A0B60 7F06C030 5440FFFE */ bnezl $v0, .L7F06C02C +/* 0A0B64 7F06C034 00401825 */ move $v1, $v0 +/* 0A0B68 7F06C038 8FA20030 */ lw $v0, 0x30($sp) +.L7F06C03C: +/* 0A0B6C 7F06C03C AC830000 */ sw $v1, ($a0) +/* 0A0B70 7F06C040 ACE00000 */ sw $zero, ($a3) +/* 0A0B74 7F06C044 AC400000 */ sw $zero, ($v0) +/* 0A0B78 7F06C048 0FC1AF80 */ jal probably_damage_detail_blood_effect_related +/* 0A0B7C 7F06C04C AFA20010 */ sw $v0, 0x10($sp) +/* 0A0B80 7F06C050 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A0B84 7F06C054 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A0B88 7F06C058 03E00008 */ jr $ra +/* 0A0B8C 7F06C05C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C060(void) { + +} +#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 +void get_obj_instance_controller_for_header(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_obj_instance_controller_for_header +/* 0A0BC4 7F06C094 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A0BC8 7F06C098 3C0F8003 */ lui $t7, %hi(D_80036078) +/* 0A0BCC 7F06C09C 8DEF6078 */ lw $t7, %lo(D_80036078)($t7) +/* 0A0BD0 7F06C0A0 AFB60030 */ sw $s6, 0x30($sp) +/* 0A0BD4 7F06C0A4 AFB5002C */ sw $s5, 0x2c($sp) +/* 0A0BD8 7F06C0A8 240EFFFF */ li $t6, -1 +/* 0A0BDC 7F06C0AC 0080A825 */ move $s5, $a0 +/* 0A0BE0 7F06C0B0 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A0BE4 7F06C0B4 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0BE8 7F06C0B8 AFB30024 */ sw $s3, 0x24($sp) +/* 0A0BEC 7F06C0BC AFB20020 */ sw $s2, 0x20($sp) +/* 0A0BF0 7F06C0C0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0BF4 7F06C0C4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0BF8 7F06C0C8 0000B025 */ move $s6, $zero +/* 0A0BFC 7F06C0CC AFA00040 */ sw $zero, 0x40($sp) +/* 0A0C00 7F06C0D0 11E00025 */ beqz $t7, .L7F06C168 +/* 0A0C04 7F06C0D4 A7AE003E */ sh $t6, 0x3e($sp) +/* 0A0C08 7F06C0D8 3C148003 */ lui $s4, %hi(D_80036074) +/* 0A0C0C 7F06C0DC 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 0A0C10 7F06C0E0 8E840000 */ lw $a0, ($s4) +/* 0A0C14 7F06C0E4 00001025 */ move $v0, $zero +/* 0A0C18 7F06C0E8 3C068008 */ lui $a2, %hi(ptr_allocation_1) +/* 0A0C1C 7F06C0EC 2484FFE2 */ addiu $a0, $a0, -0x1e +/* 0A0C20 7F06C0F0 1880000C */ blez $a0, .L7F06C124 +/* 0A0C24 7F06C0F4 24050004 */ li $a1, 4 +/* 0A0C28 7F06C0F8 8CC69934 */ lw $a2, %lo(ptr_allocation_1)($a2) +/* 0A0C2C 7F06C0FC 00C01825 */ move $v1, $a2 +.L7F06C100: +/* 0A0C30 7F06C100 8C780008 */ lw $t8, 8($v1) +/* 0A0C34 7F06C104 17000003 */ bnez $t8, .L7F06C114 +/* 0A0C38 7F06C108 0002C940 */ sll $t9, $v0, 5 +/* 0A0C3C 7F06C10C 10000005 */ b .L7F06C124 +/* 0A0C40 7F06C110 0326B021 */ addu $s6, $t9, $a2 +.L7F06C114: +/* 0A0C44 7F06C114 24420001 */ addiu $v0, $v0, 1 +/* 0A0C48 7F06C118 0044082A */ slt $at, $v0, $a0 +/* 0A0C4C 7F06C11C 1420FFF8 */ bnez $at, .L7F06C100 +/* 0A0C50 7F06C120 24630020 */ addiu $v1, $v1, 0x20 +.L7F06C124: +/* 0A0C54 7F06C124 56C00005 */ bnezl $s6, .L7F06C13C +/* 0A0C58 7F06C128 86A20014 */ lh $v0, 0x14($s5) +/* 0A0C5C 7F06C12C 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0C60 7F06C130 24040020 */ li $a0, 32 +/* 0A0C64 7F06C134 0040B025 */ move $s6, $v0 +/* 0A0C68 7F06C138 86A20014 */ lh $v0, 0x14($s5) +.L7F06C13C: +/* 0A0C6C 7F06C13C 24050004 */ li $a1, 4 +/* 0A0C70 7F06C140 1840002A */ blez $v0, .L7F06C1EC +/* 0A0C74 7F06C144 00022080 */ sll $a0, $v0, 2 +/* 0A0C78 7F06C148 2484000F */ addiu $a0, $a0, 0xf +/* 0A0C7C 7F06C14C 3488000F */ ori $t0, $a0, 0xf +/* 0A0C80 7F06C150 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0C84 7F06C154 3904000F */ xori $a0, $t0, 0xf +/* 0A0C88 7F06C158 AFA20040 */ sw $v0, 0x40($sp) +/* 0A0C8C 7F06C15C 86AA0014 */ lh $t2, 0x14($s5) +/* 0A0C90 7F06C160 10000022 */ b .L7F06C1EC +/* 0A0C94 7F06C164 A7AA003E */ sh $t2, 0x3e($sp) +.L7F06C168: +/* 0A0C98 7F06C168 3C148003 */ lui $s4, %hi(D_80036074) +/* 0A0C9C 7F06C16C 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 0A0CA0 7F06C170 8E8B0000 */ lw $t3, ($s4) +/* 0A0CA4 7F06C174 00008025 */ move $s0, $zero +/* 0A0CA8 7F06C178 00008825 */ move $s1, $zero +/* 0A0CAC 7F06C17C 1960001B */ blez $t3, .L7F06C1EC +/* 0A0CB0 7F06C180 3C138008 */ lui $s3, %hi(ptr_allocation_1) +/* 0A0CB4 7F06C184 26739934 */ addiu $s3, %lo(ptr_allocation_1) # addiu $s3, $s3, -0x66cc +/* 0A0CB8 7F06C188 8E660000 */ lw $a2, ($s3) +.L7F06C18C: +/* 0A0CBC 7F06C18C 00109140 */ sll $s2, $s0, 5 +/* 0A0CC0 7F06C190 00D16021 */ addu $t4, $a2, $s1 +/* 0A0CC4 7F06C194 8D8D0008 */ lw $t5, 8($t4) +/* 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 +/* 0A0CD8 7F06C1A8 02A02825 */ move $a1, $s5 +/* 0A0CDC 7F06C1AC 5040000A */ beql $v0, $zero, .L7F06C1D8 +/* 0A0CE0 7F06C1B0 8E980000 */ lw $t8, ($s4) +/* 0A0CE4 7F06C1B4 8E660000 */ lw $a2, ($s3) +/* 0A0CE8 7F06C1B8 00D11021 */ addu $v0, $a2, $s1 +/* 0A0CEC 7F06C1BC 8C4E0010 */ lw $t6, 0x10($v0) +/* 0A0CF0 7F06C1C0 0246B021 */ addu $s6, $s2, $a2 +/* 0A0CF4 7F06C1C4 AFAE0040 */ sw $t6, 0x40($sp) +/* 0A0CF8 7F06C1C8 844F0002 */ lh $t7, 2($v0) +/* 0A0CFC 7F06C1CC 10000007 */ b .L7F06C1EC +/* 0A0D00 7F06C1D0 A7AF003E */ sh $t7, 0x3e($sp) +/* 0A0D04 7F06C1D4 8E980000 */ lw $t8, ($s4) +.L7F06C1D8: +/* 0A0D08 7F06C1D8 26100001 */ addiu $s0, $s0, 1 +/* 0A0D0C 7F06C1DC 26310020 */ addiu $s1, $s1, 0x20 +/* 0A0D10 7F06C1E0 0218082A */ slt $at, $s0, $t8 +/* 0A0D14 7F06C1E4 5420FFE9 */ bnezl $at, .L7F06C18C +/* 0A0D18 7F06C1E8 8E660000 */ lw $a2, ($s3) +.L7F06C1EC: +/* 0A0D1C 7F06C1EC 12C00006 */ beqz $s6, .L7F06C208 +/* 0A0D20 7F06C1F0 02C02025 */ move $a0, $s6 +/* 0A0D24 7F06C1F4 02A02825 */ move $a1, $s5 +/* 0A0D28 7F06C1F8 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 0A0D2C 7F06C1FC 8FA60040 */ lw $a2, 0x40($sp) +/* 0A0D30 7F06C200 87B9003E */ lh $t9, 0x3e($sp) +/* 0A0D34 7F06C204 A6D90002 */ sh $t9, 2($s6) +.L7F06C208: +/* 0A0D38 7F06C208 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A0D3C 7F06C20C 02C01025 */ move $v0, $s6 +/* 0A0D40 7F06C210 8FB60030 */ lw $s6, 0x30($sp) +/* 0A0D44 7F06C214 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0D48 7F06C218 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A0D4C 7F06C21C 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0D50 7F06C220 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0D54 7F06C224 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0D58 7F06C228 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A0D5C 7F06C22C 03E00008 */ jr $ra +/* 0A0D60 7F06C230 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void set_obj_instance_scale_to_zero(void) { + +} +#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 +void get_aircraft_obj_instance_controller(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_aircraft_obj_instance_controller +/* 0A0D6C 7F06C23C 3C0E8003 */ lui $t6, %hi(D_80036078) +/* 0A0D70 7F06C240 8DCE6078 */ lw $t6, %lo(D_80036078)($t6) +/* 0A0D74 7F06C244 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A0D78 7F06C248 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0D7C 7F06C24C AFBF001C */ sw $ra, 0x1c($sp) +/* 0A0D80 7F06C250 AFA40030 */ sw $a0, 0x30($sp) +/* 0A0D84 7F06C254 00008025 */ move $s0, $zero +/* 0A0D88 7F06C258 AFA00028 */ sw $zero, 0x28($sp) +/* 0A0D8C 7F06C25C 11C00028 */ beqz $t6, .L7F06C300 +/* 0A0D90 7F06C260 2408FFFF */ li $t0, -1 +/* 0A0D94 7F06C264 3C058003 */ lui $a1, %hi(D_80036070) +/* 0A0D98 7F06C268 8CA56070 */ lw $a1, %lo(D_80036070)($a1) +/* 0A0D9C 7F06C26C 00001025 */ move $v0, $zero +/* 0A0DA0 7F06C270 3C078008 */ lui $a3, %hi(ptr_allocation_0) +/* 0A0DA4 7F06C274 24A5FFF6 */ addiu $a1, $a1, -0xa +/* 0A0DA8 7F06C278 18A0000D */ blez $a1, .L7F06C2B0 +/* 0A0DAC 7F06C27C 00000000 */ nop +/* 0A0DB0 7F06C280 8CE79930 */ lw $a3, %lo(ptr_allocation_0)($a3) +/* 0A0DB4 7F06C284 00002025 */ move $a0, $zero +/* 0A0DB8 7F06C288 00E01825 */ move $v1, $a3 +.L7F06C28C: +/* 0A0DBC 7F06C28C 8C6F0008 */ lw $t7, 8($v1) +/* 0A0DC0 7F06C290 24420001 */ addiu $v0, $v0, 1 +/* 0A0DC4 7F06C294 0045082A */ slt $at, $v0, $a1 +/* 0A0DC8 7F06C298 15E00003 */ bnez $t7, .L7F06C2A8 +/* 0A0DCC 7F06C29C 246300BC */ addiu $v1, $v1, 0xbc +/* 0A0DD0 7F06C2A0 10000003 */ b .L7F06C2B0 +/* 0A0DD4 7F06C2A4 00878021 */ addu $s0, $a0, $a3 +.L7F06C2A8: +/* 0A0DD8 7F06C2A8 1420FFF8 */ bnez $at, .L7F06C28C +/* 0A0DDC 7F06C2AC 248400BC */ addiu $a0, $a0, 0xbc +.L7F06C2B0: +/* 0A0DE0 7F06C2B0 16000006 */ bnez $s0, .L7F06C2CC +/* 0A0DE4 7F06C2B4 240400C0 */ li $a0, 192 +/* 0A0DE8 7F06C2B8 24050004 */ li $a1, 4 +/* 0A0DEC 7F06C2BC 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0DF0 7F06C2C0 A7A80026 */ sh $t0, 0x26($sp) +/* 0A0DF4 7F06C2C4 87A80026 */ lh $t0, 0x26($sp) +/* 0A0DF8 7F06C2C8 00408025 */ move $s0, $v0 +.L7F06C2CC: +/* 0A0DFC 7F06C2CC 8FB80030 */ lw $t8, 0x30($sp) +/* 0A0E00 7F06C2D0 24050004 */ li $a1, 4 +/* 0A0E04 7F06C2D4 87060014 */ lh $a2, 0x14($t8) +/* 0A0E08 7F06C2D8 18C00029 */ blez $a2, .L7F06C380 +/* 0A0E0C 7F06C2DC 00062080 */ sll $a0, $a2, 2 +/* 0A0E10 7F06C2E0 2484000F */ addiu $a0, $a0, 0xf +/* 0A0E14 7F06C2E4 3499000F */ ori $t9, $a0, 0xf +/* 0A0E18 7F06C2E8 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0E1C 7F06C2EC 3B24000F */ xori $a0, $t9, 0xf +/* 0A0E20 7F06C2F0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0A0E24 7F06C2F4 AFA20028 */ sw $v0, 0x28($sp) +/* 0A0E28 7F06C2F8 10000021 */ b .L7F06C380 +/* 0A0E2C 7F06C2FC 85480014 */ lh $t0, 0x14($t2) +.L7F06C300: +/* 0A0E30 7F06C300 3C058003 */ lui $a1, %hi(D_80036070) +/* 0A0E34 7F06C304 8CA56070 */ lw $a1, %lo(D_80036070)($a1) +/* 0A0E38 7F06C308 8FAB0030 */ lw $t3, 0x30($sp) +/* 0A0E3C 7F06C30C 00001825 */ move $v1, $zero +/* 0A0E40 7F06C310 18A0001B */ blez $a1, .L7F06C380 +/* 0A0E44 7F06C314 85660014 */ lh $a2, 0x14($t3) +/* 0A0E48 7F06C318 3C078008 */ lui $a3, %hi(ptr_allocation_0) +/* 0A0E4C 7F06C31C 8CE79930 */ lw $a3, %lo(ptr_allocation_0)($a3) +/* 0A0E50 7F06C320 00002025 */ move $a0, $zero +/* 0A0E54 7F06C324 00E01025 */ move $v0, $a3 +.L7F06C328: +/* 0A0E58 7F06C328 8C4C0008 */ lw $t4, 8($v0) +/* 0A0E5C 7F06C32C 24630001 */ addiu $v1, $v1, 1 +/* 0A0E60 7F06C330 55800010 */ bnezl $t4, .L7F06C374 +/* 0A0E64 7F06C334 0065082A */ slt $at, $v1, $a1 +/* 0A0E68 7F06C338 58C00009 */ blezl $a2, .L7F06C360 +/* 0A0E6C 7F06C33C 8C4F0010 */ lw $t7, 0x10($v0) +/* 0A0E70 7F06C340 8C4D0010 */ lw $t5, 0x10($v0) +/* 0A0E74 7F06C344 51A0000B */ beql $t5, $zero, .L7F06C374 +/* 0A0E78 7F06C348 0065082A */ slt $at, $v1, $a1 +/* 0A0E7C 7F06C34C 844E0002 */ lh $t6, 2($v0) +/* 0A0E80 7F06C350 01C6082A */ slt $at, $t6, $a2 +/* 0A0E84 7F06C354 54200007 */ bnezl $at, .L7F06C374 +/* 0A0E88 7F06C358 0065082A */ slt $at, $v1, $a1 +/* 0A0E8C 7F06C35C 8C4F0010 */ lw $t7, 0x10($v0) +.L7F06C360: +/* 0A0E90 7F06C360 00878021 */ addu $s0, $a0, $a3 +/* 0A0E94 7F06C364 AFAF0028 */ sw $t7, 0x28($sp) +/* 0A0E98 7F06C368 10000005 */ b .L7F06C380 +/* 0A0E9C 7F06C36C 84480002 */ lh $t0, 2($v0) +/* 0A0EA0 7F06C370 0065082A */ slt $at, $v1, $a1 +.L7F06C374: +/* 0A0EA4 7F06C374 248400BC */ addiu $a0, $a0, 0xbc +/* 0A0EA8 7F06C378 1420FFEB */ bnez $at, .L7F06C328 +/* 0A0EAC 7F06C37C 244200BC */ addiu $v0, $v0, 0xbc +.L7F06C380: +/* 0A0EB0 7F06C380 12000007 */ beqz $s0, .L7F06C3A0 +/* 0A0EB4 7F06C384 02002025 */ move $a0, $s0 +/* 0A0EB8 7F06C388 8FA50030 */ lw $a1, 0x30($sp) +/* 0A0EBC 7F06C38C 8FA60028 */ lw $a2, 0x28($sp) +/* 0A0EC0 7F06C390 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0A0EC4 7F06C394 A7A80026 */ sh $t0, 0x26($sp) +/* 0A0EC8 7F06C398 87A80026 */ lh $t0, 0x26($sp) +/* 0A0ECC 7F06C39C A6080002 */ sh $t0, 2($s0) +.L7F06C3A0: +/* 0A0ED0 7F06C3A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A0ED4 7F06C3A4 02001025 */ move $v0, $s0 +/* 0A0ED8 7F06C3A8 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0EDC 7F06C3AC 03E00008 */ jr $ra +/* 0A0EE0 7F06C3B0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C3B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C3B4 +/* 0A0EE4 7F06C3B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A0EE8 7F06C3B8 AFA60020 */ sw $a2, 0x20($sp) +/* 0A0EEC 7F06C3BC 00A03025 */ move $a2, $a1 +/* 0A0EF0 7F06C3C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A0EF4 7F06C3C4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A0EF8 7F06C3C8 8C850008 */ lw $a1, 8($a0) +/* 0A0EFC 7F06C3CC AFA40018 */ sw $a0, 0x18($sp) +/* 0A0F00 7F06C3D0 0FC1D80C */ jal sub_GAME_7F076030 +/* 0A0F04 7F06C3D4 8FA70020 */ lw $a3, 0x20($sp) +/* 0A0F08 7F06C3D8 8FAE0020 */ lw $t6, 0x20($sp) +/* 0A0F0C 7F06C3DC 8FA40018 */ lw $a0, 0x18($sp) +/* 0A0F10 7F06C3E0 0FC1D74B */ jal unknown_object_microcode_handler +/* 0A0F14 7F06C3E4 8DC50000 */ lw $a1, ($t6) +/* 0A0F18 7F06C3E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A0F1C 7F06C3EC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A0F20 7F06C3F0 03E00008 */ jr $ra +/* 0A0F24 7F06C3F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_aircraft_obj_inst_scale_to_zero(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_aircraft_obj_inst_scale_to_zero +/* 0A0F28 7F06C3F8 03E00008 */ jr $ra +/* 0A0F2C 7F06C3FC AC800008 */ sw $zero, 8($a0) +) +#endif + + + + + +void set_80036084(s32 param_1) { + D_80036084 = param_1; +} + +void set_float_80036088(f32 param_1) { + D_80036088 = param_1; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C418(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C418 +/* 0A0F48 7F06C418 00803025 */ move $a2, $a0 +/* 0A0F4C 7F06C41C 24040004 */ li $a0, 4 +/* 0A0F50 7F06C420 00001025 */ move $v0, $zero +/* 0A0F54 7F06C424 00A01825 */ move $v1, $a1 +.L7F06C428: +/* 0A0F58 7F06C428 8CCE0000 */ lw $t6, ($a2) +/* 0A0F5C 7F06C42C 24420001 */ addiu $v0, $v0, 1 +/* 0A0F60 7F06C430 24630010 */ addiu $v1, $v1, 0x10 +/* 0A0F64 7F06C434 AC6EFFF0 */ sw $t6, -0x10($v1) +/* 0A0F68 7F06C438 8CCF0004 */ lw $t7, 4($a2) +/* 0A0F6C 7F06C43C 24C60010 */ addiu $a2, $a2, 0x10 +/* 0A0F70 7F06C440 AC6FFFF4 */ sw $t7, -0xc($v1) +/* 0A0F74 7F06C444 8CD8FFF8 */ lw $t8, -8($a2) +/* 0A0F78 7F06C448 AC78FFF8 */ sw $t8, -8($v1) +/* 0A0F7C 7F06C44C 8CD9FFFC */ lw $t9, -4($a2) +/* 0A0F80 7F06C450 1444FFF5 */ bne $v0, $a0, .L7F06C428 +/* 0A0F84 7F06C454 AC79FFFC */ sw $t9, -4($v1) +/* 0A0F88 7F06C458 03E00008 */ jr $ra +/* 0A0F8C 7F06C45C 00000000 */ nop +) +#endif + + + + + +void set_8003608C(s32 param_1) { + D_8003608C = param_1; +} + +void return_null(void) { + 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(); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C570(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C660(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C660 +/* 0A1190 7F06C660 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1194 7F06C664 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1198 7F06C668 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A119C 7F06C66C 00A02025 */ move $a0, $a1 +/* 0A11A0 7F06C670 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A11A4 7F06C674 00C02825 */ move $a1, $a2 +/* 0A11A8 7F06C678 04400006 */ bltz $v0, .L7F06C694 +/* 0A11AC 7F06C67C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A11B0 7F06C680 8FAE0018 */ lw $t6, 0x18($sp) +/* 0A11B4 7F06C684 0002C180 */ sll $t8, $v0, 6 +/* 0A11B8 7F06C688 8DCF000C */ lw $t7, 0xc($t6) +/* 0A11BC 7F06C68C 10000002 */ b .L7F06C698 +/* 0A11C0 7F06C690 01F81021 */ addu $v0, $t7, $t8 +.L7F06C694: +/* 0A11C4 7F06C694 00001025 */ move $v0, $zero +.L7F06C698: +/* 0A11C8 7F06C698 03E00008 */ jr $ra +/* 0A11CC 7F06C69C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + diff --git a/src/game/objecthandler.h b/src/game/objecthandler.h new file mode 100644 index 0000000..804d831 --- /dev/null +++ b/src/game/objecthandler.h @@ -0,0 +1,10 @@ +#ifndef _OBJECTHANDLER_ +#define _OBJECTHANDLER_ +#include "ultra64.h" + +extern s32 D_80036410; +extern s32 D_80036414; +extern s32 D_80036418; +extern s32 D_8003641C; + +#endif diff --git a/src/game/objecthandler_2.c b/src/game/objecthandler_2.c new file mode 100644 index 0000000..0b2e6c7 --- /dev/null +++ b/src/game/objecthandler_2.c @@ -0,0 +1,13457 @@ +#include "ultra64.h" + +//D:80054600 +const char aGetsubmatrixNoObjinst[] = "getsubmatrix: no objinst!\n"; +//D:8005461C +const char aGetsubmatrixObjinstHasNoObject[] = "getsubmatrix: objinst has no object!\n"; +//D:80054644 +const char aGetpartoffsetNoObjinst[] = "getpartoffset: no objinst!"; +//D:80054660 +const char aGetpartoffsetNoPartdesc[] = "getpartoffset: no partdesc!"; +//D:8005467C +const char aSetpartoffsetNoObjinst[] = "setpartoffset: no objinst!"; +//D:80054698 +const char aSetpartoffsetNoPartdesc[] = "setpartoffset: no partdesc!"; +//D:800546B4 +const char aGetsuboffsetNoObjinst[] = "getsuboffset: no objinst!"; +//D:800546D0 +const char aGetsuboffsetObjinstHasNoObject[] = "getsuboffset: objinst has no object!"; +//D:800546F8 +const char aSetsuboffsetNoObjinst[] = "setsuboffset: no objinst!"; +//D:80054714 +const char aSetsuboffsetObjinstHasNoObject[] = "setsuboffset: objinst has no object!"; +//D:8005473C +const char aGetsubrotyNoObjinst[] = "getsubroty: no objinst!"; +//D:80054754 +const char aGetsubrotyObjinstHasNoObject[] = "getsubroty: objinst has no object!"; +//D:80054778 +const char aGetsubrotyObjinstHasNoRootPart[] = "getsubroty: objinst has no root part!"; +//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!"; +//D:80054804 +const char aGetjointsizeNoObjinst[] = "getjointsize: no objinst!\n"; +//D:80054820 +const char aGetinstsizeNoObjinst[] = "getinstsize: no objinst!\n"; +//D:8005483C +const char aGetinstsizeNoObjdesc[] = "getinstsize: no objdesc!\n"; +//D:80054858 +const char aSubcalcposNoObjanim[] = "subcalcpos: no objanim!\n"; +//D:80054874 +const char aSubcalcposNoObjdesc[] = "subcalcpos: no objdesc!\n"; +//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"; +//D:800548F0 +const char aSubcalcmatricesNoObjanim[] = "subcalcmatrices: no objanim!\n"; +//D:80054910 +const char aSubcalcmatricesNoBasemtx[] = "subcalcmatrices: no basemtx!\n"; +//D:80054930 +const char aSubcalcmatricesNoMtxlist[] = "subcalcmatrices: no mtxlist!\n"; +//D:80054950 +const char aSubcalcmatricesNoAttachForObjinst[] = "subcalcmatrices: no attach for objinst!\n"; +//D:8005497C +const char aSubcalcmatricesFrameaOutOfRange[] = "subcalcmatrices: framea out of range!\n"; +//D:800549A4 +const char aSubcalcmatricesFramebOutOfRange[] = "subcalcmatrices: frameb out of range!\n"; +//D:800549CC +const char aSubcalcmatricesNoAnim2[] = "subcalcmatrices: no anim2!\n"; +//D:800549E8 +const char aSubcalcmatricesFrame2aOutOfRange[] = "subcalcmatrices: frame2a out of range!\n"; +//D:80054A10 +const char aSubcalcmatricesFrame2bOutOfRange[] = "subcalcmatrices: frame2b out of range!\n"; +//D:80054A38 +const char aDorottexNoVtxAllocator[] = "dorottex: no vtx allocator!\n"; +//D:80054A58 +const char aDotubeNoVtxAllocator[] = "dotube: no vtx allocator!\n"; +//D:80054A74 +const char aDogfnegxNoVtxAllocator[] = "dogfnegx: no vtx allocator!\n"; +//D:80054A94 +const char aDoshadowNoVtxAllocator[] = "doshadow: no vtx allocator!\n"; +//D:80054AB4 +const char aSubdrawNoGfxlist[] = "subdraw: no gfxlist!\n"; +//D:80054ACC +const char aSubdrawObjectNotInitialised0xX[] = "subdraw: object not initialised! (0x%X)\n"; + +/* +*/ + +/* +*/ + +/* +*/ + +/* +*/ + + +#ifdef NONMATCHING +void getsubmatrix(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel getsubmatrix +/* 0A11D0 7F06C6A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A11D4 7F06C6A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A11D8 7F06C6A8 14800006 */ bnez $a0, .L7F06C6C4 +/* 0A11DC 7F06C6AC AFA40018 */ sw $a0, 0x18($sp) +/* 0A11E0 7F06C6B0 3C048005 */ lui $a0, %hi(aGetsubmatrixNoObjinst) +/* 0A11E4 7F06C6B4 0C0033D1 */ jal osSyncPrintf +/* 0A11E8 7F06C6B8 24844600 */ addiu $a0, %lo(aGetsubmatrixNoObjinst) # addiu $a0, $a0, 0x4600 +/* 0A11EC 7F06C6BC 0FC1B11B */ jal return_null +/* 0A11F0 7F06C6C0 00000000 */ nop +.L7F06C6C4: +/* 0A11F4 7F06C6C4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A11F8 7F06C6C8 3C048005 */ lui $a0, %hi(aGetsubmatrixObjinstHasNoObject) +/* 0A11FC 7F06C6CC 8DE20008 */ lw $v0, 8($t7) +/* 0A1200 7F06C6D0 54400008 */ bnezl $v0, .L7F06C6F4 +/* 0A1204 7F06C6D4 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1208 7F06C6D8 0C0033D1 */ jal osSyncPrintf +/* 0A120C 7F06C6DC 2484461C */ addiu $a0, $a0, %lo(aGetsubmatrixObjinstHasNoObject) +/* 0A1210 7F06C6E0 0FC1B11B */ jal return_null +/* 0A1214 7F06C6E4 00000000 */ nop +/* 0A1218 7F06C6E8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A121C 7F06C6EC 8F020008 */ lw $v0, 8($t8) +/* 0A1220 7F06C6F0 8FA40018 */ lw $a0, 0x18($sp) +.L7F06C6F4: +/* 0A1224 7F06C6F4 8C450000 */ lw $a1, ($v0) +/* 0A1228 7F06C6F8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A122C 7F06C6FC 00003025 */ move $a2, $zero +/* 0A1230 7F06C700 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1234 7F06C704 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1238 7F06C708 03E00008 */ jr $ra +/* 0A123C 7F06C70C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C710(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C768(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C768 +/* 0A1298 7F06C768 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A129C 7F06C76C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A12A0 7F06C770 0FC1B1A8 */ jal getsubmatrix +/* 0A12A4 7F06C774 00000000 */ nop +/* 0A12A8 7F06C778 10400004 */ beqz $v0, .L7F06C78C +/* 0A12AC 7F06C77C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A12B0 7F06C780 C4400038 */ lwc1 $f0, 0x38($v0) +/* 0A12B4 7F06C784 10000003 */ b .L7F06C794 +/* 0A12B8 7F06C788 46000007 */ neg.s $f0, $f0 +.L7F06C78C: +/* 0A12BC 7F06C78C 44800000 */ mtc1 $zero, $f0 +/* 0A12C0 7F06C790 00000000 */ nop +.L7F06C794: +/* 0A12C4 7F06C794 03E00008 */ jr $ra +/* 0A12C8 7F06C798 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void extract_id_from_object_structure_microcode(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054AF8*/ +glabel jpt_obj_struct_microcode_id +.word .L7F06C7D8 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C7F0 +.word .L7F06C7FC +.word .L7F06C814 +.word .L7F06C840 +.word .L7F06C820 +.word .L7F06C82C +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C808 +.word .L7F06C840 +.word .L7F06C840 +/*.word .L7F06C840*/ +/*.word .L7F06C840*/ +/*.word .L7F06C838*/ +/*.word .L7F06C7E4*/ + +.text +glabel extract_id_from_object_structure_microcode +/* 0A12CC 7F06C79C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A12D0 7F06C7A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A12D4 7F06C7A4 94AE0000 */ lhu $t6, ($a1) +/* 0A12D8 7F06C7A8 00003025 */ move $a2, $zero +/* 0A12DC 7F06C7AC 8C870010 */ lw $a3, 0x10($a0) +/* 0A12E0 7F06C7B0 31CF00FF */ andi $t7, $t6, 0xff +/* 0A12E4 7F06C7B4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A12E8 7F06C7B8 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A12EC 7F06C7BC 10200020 */ beqz $at, .L7F06C840 +/* 0A12F0 7F06C7C0 0018C080 */ sll $t8, $t8, 2 +/* 0A12F4 7F06C7C4 3C018005 */ lui $at, %hi(jpt_obj_struct_microcode_id) +/* 0A12F8 7F06C7C8 00380821 */ addu $at, $at, $t8 +/* 0A12FC 7F06C7CC 8C384AF8 */ lw $t8, %lo(jpt_obj_struct_microcode_id)($at) +.L7F06C7D0: +/* 0A1300 7F06C7D0 03000008 */ jr $t8 +/* 0A1304 7F06C7D4 00000000 */ nop +.L7F06C7D8: +/* 0A1308 7F06C7D8 8CB90004 */ lw $t9, 4($a1) +/* 0A130C 7F06C7DC 10000018 */ b .L7F06C840 +/* 0A1310 7F06C7E0 9726000C */ lhu $a2, 0xc($t9) +.L7F06C7E4: +/* 0A1314 7F06C7E4 8CA80004 */ lw $t0, 4($a1) +/* 0A1318 7F06C7E8 10000015 */ b .L7F06C840 +/* 0A131C 7F06C7EC 9506001A */ lhu $a2, 0x1a($t0) +.L7F06C7F0: +/* 0A1320 7F06C7F0 8CA90004 */ lw $t1, 4($a1) +/* 0A1324 7F06C7F4 10000012 */ b .L7F06C840 +/* 0A1328 7F06C7F8 952601AA */ lhu $a2, 0x1aa($t1) +.L7F06C7FC: +/* 0A132C 7F06C7FC 8CAA0004 */ lw $t2, 4($a1) +/* 0A1330 7F06C800 1000000F */ b .L7F06C840 +/* 0A1334 7F06C804 9546000C */ lhu $a2, 0xc($t2) +.L7F06C808: +/* 0A1338 7F06C808 8CAB0004 */ lw $t3, 4($a1) +/* 0A133C 7F06C80C 1000000C */ b .L7F06C840 +/* 0A1340 7F06C810 95660004 */ lhu $a2, 4($t3) +.L7F06C814: +/* 0A1344 7F06C814 8CAC0004 */ lw $t4, 4($a1) +/* 0A1348 7F06C818 10000009 */ b .L7F06C840 +/* 0A134C 7F06C81C 95860022 */ lhu $a2, 0x22($t4) +.L7F06C820: +/* 0A1350 7F06C820 8CAD0004 */ lw $t5, 4($a1) +/* 0A1354 7F06C824 10000006 */ b .L7F06C840 +/* 0A1358 7F06C828 95A60044 */ lhu $a2, 0x44($t5) +.L7F06C82C: +/* 0A135C 7F06C82C 8CAE0004 */ lw $t6, 4($a1) +/* 0A1360 7F06C830 10000003 */ b .L7F06C840 +/* 0A1364 7F06C834 95C60020 */ lhu $a2, 0x20($t6) +.L7F06C838: +/* 0A1368 7F06C838 8CAF0004 */ lw $t7, 4($a1) +/* 0A136C 7F06C83C 95E60000 */ lhu $a2, ($t7) +def_7F06C7D0: +.L7F06C840: +/* 0A1370 7F06C840 8CA20008 */ lw $v0, 8($a1) +/* 0A1374 7F06C844 24030017 */ li $v1, 23 +/* 0A1378 7F06C848 5040000F */ beql $v0, $zero, .L7F06C888 +/* 0A137C 7F06C84C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1380 7F06C850 94580000 */ lhu $t8, ($v0) +.L7F06C854: +/* 0A1384 7F06C854 00402825 */ move $a1, $v0 +/* 0A1388 7F06C858 331900FF */ andi $t9, $t8, 0xff +/* 0A138C 7F06C85C 54790007 */ bnel $v1, $t9, .L7F06C87C +/* 0A1390 7F06C860 8CA20008 */ lw $v0, 8($a1) +/* 0A1394 7F06C864 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1398 7F06C868 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A139C 7F06C86C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A13A0 7F06C870 10000004 */ b .L7F06C884 +/* 0A13A4 7F06C874 8C470004 */ lw $a3, 4($v0) +/* 0A13A8 7F06C878 8CA20008 */ lw $v0, 8($a1) +.L7F06C87C: +/* 0A13AC 7F06C87C 5440FFF5 */ bnezl $v0, .L7F06C854 +/* 0A13B0 7F06C880 94580000 */ lhu $t8, ($v0) +.L7F06C884: +/* 0A13B4 7F06C884 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06C888: +/* 0A13B8 7F06C888 00064080 */ sll $t0, $a2, 2 +/* 0A13BC 7F06C88C 01071021 */ addu $v0, $t0, $a3 +/* 0A13C0 7F06C890 03E00008 */ jr $ra +/* 0A13C4 7F06C894 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void getpartoffset(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACKY, above jtable too big*/ +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C838 +.word .L7F06C7E4 + +.text +glabel getpartoffset +/* 0A13C8 7F06C898 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A13CC 7F06C89C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A13D0 7F06C8A0 1480000A */ bnez $a0, .L7F06C8CC +/* 0A13D4 7F06C8A4 AFA40018 */ sw $a0, 0x18($sp) +/* 0A13D8 7F06C8A8 3C048005 */ lui $a0, %hi(aGetpartoffsetNoObjinst) +/* 0A13DC 7F06C8AC 24844644 */ addiu $a0, %lo(aGetpartoffsetNoObjinst) # addiu $a0, $a0, 0x4644 +/* 0A13E0 7F06C8B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A13E4 7F06C8B4 0C0033D1 */ jal osSyncPrintf +/* 0A13E8 7F06C8B8 AFA60020 */ sw $a2, 0x20($sp) +/* 0A13EC 7F06C8BC 0FC1B11B */ jal return_null +/* 0A13F0 7F06C8C0 00000000 */ nop +/* 0A13F4 7F06C8C4 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A13F8 7F06C8C8 8FA60020 */ lw $a2, 0x20($sp) +.L7F06C8CC: +/* 0A13FC 7F06C8CC 14A00009 */ bnez $a1, .L7F06C8F4 +/* 0A1400 7F06C8D0 3C048005 */ lui $a0, %hi(aGetpartoffsetNoPartdesc) +/* 0A1404 7F06C8D4 24844660 */ addiu $a0, %lo(aGetpartoffsetNoPartdesc) # addiu $a0, $a0, 0x4660 +/* 0A1408 7F06C8D8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A140C 7F06C8DC 0C0033D1 */ jal osSyncPrintf +/* 0A1410 7F06C8E0 AFA60020 */ sw $a2, 0x20($sp) +/* 0A1414 7F06C8E4 0FC1B11B */ jal return_null +/* 0A1418 7F06C8E8 00000000 */ nop +/* 0A141C 7F06C8EC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A1420 7F06C8F0 8FA60020 */ lw $a2, 0x20($sp) +.L7F06C8F4: +/* 0A1424 7F06C8F4 94A20000 */ lhu $v0, ($a1) +/* 0A1428 7F06C8F8 24010001 */ li $at, 1 +/* 0A142C 7F06C8FC 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1430 7F06C900 304F00FF */ andi $t7, $v0, 0xff +/* 0A1434 7F06C904 11E1000D */ beq $t7, $at, .L7F06C93C +/* 0A1438 7F06C908 24010002 */ li $at, 2 +/* 0A143C 7F06C90C 11E10015 */ beq $t7, $at, .L7F06C964 +/* 0A1440 7F06C910 24010003 */ li $at, 3 +/* 0A1444 7F06C914 11E1001B */ beq $t7, $at, .L7F06C984 +/* 0A1448 7F06C918 24010015 */ li $at, 21 +/* 0A144C 7F06C91C 51E10022 */ beql $t7, $at, .L7F06C9A8 +/* 0A1450 7F06C920 8CA20004 */ lw $v0, 4($a1) +/* 0A1454 7F06C924 44800000 */ mtc1 $zero, $f0 +/* 0A1458 7F06C928 00000000 */ nop +/* 0A145C 7F06C92C E4C00000 */ swc1 $f0, ($a2) +/* 0A1460 7F06C930 E4C00004 */ swc1 $f0, 4($a2) +/* 0A1464 7F06C934 10000022 */ b .L7F06C9C0 +/* 0A1468 7F06C938 E4C00008 */ swc1 $f0, 8($a2) +.L7F06C93C: +/* 0A146C 7F06C93C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1470 7F06C940 AFA60020 */ sw $a2, 0x20($sp) +/* 0A1474 7F06C944 8FA60020 */ lw $a2, 0x20($sp) +/* 0A1478 7F06C948 C4440008 */ lwc1 $f4, 8($v0) +/* 0A147C 7F06C94C E4C40000 */ swc1 $f4, ($a2) +/* 0A1480 7F06C950 C446000C */ lwc1 $f6, 0xc($v0) +/* 0A1484 7F06C954 E4C60004 */ swc1 $f6, 4($a2) +/* 0A1488 7F06C958 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A148C 7F06C95C 10000018 */ b .L7F06C9C0 +/* 0A1490 7F06C960 E4C80008 */ swc1 $f8, 8($a2) +.L7F06C964: +/* 0A1494 7F06C964 8CA20004 */ lw $v0, 4($a1) +/* 0A1498 7F06C968 C44A0000 */ lwc1 $f10, ($v0) +/* 0A149C 7F06C96C E4CA0000 */ swc1 $f10, ($a2) +/* 0A14A0 7F06C970 C4500004 */ lwc1 $f16, 4($v0) +/* 0A14A4 7F06C974 E4D00004 */ swc1 $f16, 4($a2) +/* 0A14A8 7F06C978 C4520008 */ lwc1 $f18, 8($v0) +/* 0A14AC 7F06C97C 10000010 */ b .L7F06C9C0 +/* 0A14B0 7F06C980 E4D20008 */ swc1 $f18, 8($a2) +.L7F06C984: +/* 0A14B4 7F06C984 8CA20004 */ lw $v0, 4($a1) +/* 0A14B8 7F06C988 C4440000 */ lwc1 $f4, ($v0) +/* 0A14BC 7F06C98C E4C40000 */ swc1 $f4, ($a2) +/* 0A14C0 7F06C990 C4460004 */ lwc1 $f6, 4($v0) +/* 0A14C4 7F06C994 E4C60004 */ swc1 $f6, 4($a2) +/* 0A14C8 7F06C998 C4480008 */ lwc1 $f8, 8($v0) +/* 0A14CC 7F06C99C 10000008 */ b .L7F06C9C0 +/* 0A14D0 7F06C9A0 E4C80008 */ swc1 $f8, 8($a2) +/* 0A14D4 7F06C9A4 8CA20004 */ lw $v0, 4($a1) +.L7F06C9A8: +/* 0A14D8 7F06C9A8 C44A0000 */ lwc1 $f10, ($v0) +/* 0A14DC 7F06C9AC E4CA0000 */ swc1 $f10, ($a2) +/* 0A14E0 7F06C9B0 C4500004 */ lwc1 $f16, 4($v0) +/* 0A14E4 7F06C9B4 E4D00004 */ swc1 $f16, 4($a2) +/* 0A14E8 7F06C9B8 C4520008 */ lwc1 $f18, 8($v0) +/* 0A14EC 7F06C9BC E4D20008 */ swc1 $f18, 8($a2) +.L7F06C9C0: +/* 0A14F0 7F06C9C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A14F4 7F06C9C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A14F8 7F06C9C8 03E00008 */ jr $ra +/* 0A14FC 7F06C9CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setpartoffset(void) { + +} +#else +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 NONMATCHING +void getsuboffset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getsuboffset +/* 0A16C8 7F06CB98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A16CC 7F06CB9C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A16D0 7F06CBA0 AFA40018 */ sw $a0, 0x18($sp) +/* 0A16D4 7F06CBA4 14800006 */ bnez $a0, .L7F06CBC0 +/* 0A16D8 7F06CBA8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A16DC 7F06CBAC 3C048005 */ lui $a0, %hi(aGetsuboffsetNoObjinst) +/* 0A16E0 7F06CBB0 0C0033D1 */ jal osSyncPrintf +/* 0A16E4 7F06CBB4 248446B4 */ addiu $a0, %lo(aGetsuboffsetNoObjinst) # addiu $a0, $a0, 0x46b4 +/* 0A16E8 7F06CBB8 0FC1B11B */ jal return_null +/* 0A16EC 7F06CBBC 00000000 */ nop +.L7F06CBC0: +/* 0A16F0 7F06CBC0 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A16F4 7F06CBC4 3C048005 */ lui $a0, %hi(aGetsuboffsetObjinstHasNoObject) +/* 0A16F8 7F06CBC8 8DE20008 */ lw $v0, 8($t7) +/* 0A16FC 7F06CBCC 54400008 */ bnezl $v0, .L7F06CBF0 +/* 0A1700 7F06CBD0 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1704 7F06CBD4 0C0033D1 */ jal osSyncPrintf +/* 0A1708 7F06CBD8 248446D0 */ addiu $a0, $a0, %lo(aGetsuboffsetObjinstHasNoObject) +/* 0A170C 7F06CBDC 0FC1B11B */ jal return_null +/* 0A1710 7F06CBE0 00000000 */ nop +/* 0A1714 7F06CBE4 8FB80018 */ lw $t8, 0x18($sp) +/* 0A1718 7F06CBE8 8F020008 */ lw $v0, 8($t8) +/* 0A171C 7F06CBEC 8FA40018 */ lw $a0, 0x18($sp) +.L7F06CBF0: +/* 0A1720 7F06CBF0 8C450000 */ lw $a1, ($v0) +/* 0A1724 7F06CBF4 0FC1B226 */ jal getpartoffset +/* 0A1728 7F06CBF8 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A172C 7F06CBFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1730 7F06CC00 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1734 7F06CC04 03E00008 */ jr $ra +/* 0A1738 7F06CC08 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setsuboffset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel setsuboffset +/* 0A173C 7F06CC0C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1740 7F06CC10 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1744 7F06CC14 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1748 7F06CC18 14800006 */ bnez $a0, .L7F06CC34 +/* 0A174C 7F06CC1C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A1750 7F06CC20 3C048005 */ lui $a0, %hi(aSetsuboffsetNoObjinst) +/* 0A1754 7F06CC24 0C0033D1 */ jal osSyncPrintf +/* 0A1758 7F06CC28 248446F8 */ addiu $a0, %lo(aSetsuboffsetNoObjinst) # addiu $a0, $a0, 0x46f8 +/* 0A175C 7F06CC2C 0FC1B11B */ jal return_null +/* 0A1760 7F06CC30 00000000 */ nop +.L7F06CC34: +/* 0A1764 7F06CC34 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A1768 7F06CC38 3C048005 */ lui $a0, %hi(aSetsuboffsetObjinstHasNoObject) +/* 0A176C 7F06CC3C 8DE20008 */ lw $v0, 8($t7) +/* 0A1770 7F06CC40 54400008 */ bnezl $v0, .L7F06CC64 +/* 0A1774 7F06CC44 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1778 7F06CC48 0C0033D1 */ jal osSyncPrintf +/* 0A177C 7F06CC4C 24844714 */ addiu $a0, $a0, %lo(aSetsuboffsetObjinstHasNoObject) +/* 0A1780 7F06CC50 0FC1B11B */ jal return_null +/* 0A1784 7F06CC54 00000000 */ nop +/* 0A1788 7F06CC58 8FB80018 */ lw $t8, 0x18($sp) +/* 0A178C 7F06CC5C 8F020008 */ lw $v0, 8($t8) +/* 0A1790 7F06CC60 8FA40018 */ lw $a0, 0x18($sp) +.L7F06CC64: +/* 0A1794 7F06CC64 8C450000 */ lw $a1, ($v0) +/* 0A1798 7F06CC68 0FC1B274 */ jal setpartoffset +/* 0A179C 7F06CC6C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A17A0 7F06CC70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A17A4 7F06CC74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A17A8 7F06CC78 03E00008 */ jr $ra +/* 0A17AC 7F06CC7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void getsubroty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getsubroty +/* 0A17B0 7F06CC80 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A17B4 7F06CC84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A17B8 7F06CC88 14800006 */ bnez $a0, .L7F06CCA4 +/* 0A17BC 7F06CC8C AFA40018 */ sw $a0, 0x18($sp) +/* 0A17C0 7F06CC90 3C048005 */ lui $a0, %hi(aGetsubrotyNoObjinst) +/* 0A17C4 7F06CC94 0C0033D1 */ jal osSyncPrintf +/* 0A17C8 7F06CC98 2484473C */ addiu $a0, %lo(aGetsubrotyNoObjinst) # addiu $a0, $a0, 0x473c +/* 0A17CC 7F06CC9C 0FC1B11B */ jal return_null +/* 0A17D0 7F06CCA0 00000000 */ nop +.L7F06CCA4: +/* 0A17D4 7F06CCA4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A17D8 7F06CCA8 3C048005 */ lui $a0, %hi(aGetsubrotyObjinstHasNoObject) +/* 0A17DC 7F06CCAC 8DE20008 */ lw $v0, 8($t7) +/* 0A17E0 7F06CCB0 54400008 */ bnezl $v0, .L7F06CCD4 +/* 0A17E4 7F06CCB4 8C430000 */ lw $v1, ($v0) +/* 0A17E8 7F06CCB8 0C0033D1 */ jal osSyncPrintf +/* 0A17EC 7F06CCBC 24844754 */ addiu $a0, %lo(aGetsubrotyObjinstHasNoObject) # addiu $a0, $a0, 0x4754 +/* 0A17F0 7F06CCC0 0FC1B11B */ jal return_null +/* 0A17F4 7F06CCC4 00000000 */ nop +/* 0A17F8 7F06CCC8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A17FC 7F06CCCC 8F020008 */ lw $v0, 8($t8) +/* 0A1800 7F06CCD0 8C430000 */ lw $v1, ($v0) +.L7F06CCD4: +/* 0A1804 7F06CCD4 3C048005 */ lui $a0, %hi(aGetsubrotyObjinstHasNoRootPart) +/* 0A1808 7F06CCD8 54600009 */ bnezl $v1, .L7F06CD00 +/* 0A180C 7F06CCDC 94690000 */ lhu $t1, ($v1) +/* 0A1810 7F06CCE0 0C0033D1 */ jal osSyncPrintf +/* 0A1814 7F06CCE4 24844778 */ addiu $a0, %lo(aGetsubrotyObjinstHasNoRootPart) # addiu $a0, $a0, 0x4778 +/* 0A1818 7F06CCE8 0FC1B11B */ jal return_null +/* 0A181C 7F06CCEC 00000000 */ nop +/* 0A1820 7F06CCF0 8FB90018 */ lw $t9, 0x18($sp) +/* 0A1824 7F06CCF4 8F280008 */ lw $t0, 8($t9) +/* 0A1828 7F06CCF8 8D030000 */ lw $v1, ($t0) +/* 0A182C 7F06CCFC 94690000 */ lhu $t1, ($v1) +.L7F06CD00: +/* 0A1830 7F06CD00 24010001 */ li $at, 1 +/* 0A1834 7F06CD04 00602825 */ move $a1, $v1 +/* 0A1838 7F06CD08 312A00FF */ andi $t2, $t1, 0xff +/* 0A183C 7F06CD0C 55410006 */ bnel $t2, $at, .L7F06CD28 +/* 0A1840 7F06CD10 44800000 */ mtc1 $zero, $f0 +/* 0A1844 7F06CD14 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1848 7F06CD18 8FA40018 */ lw $a0, 0x18($sp) +/* 0A184C 7F06CD1C 10000003 */ b .L7F06CD2C +/* 0A1850 7F06CD20 C4400014 */ lwc1 $f0, 0x14($v0) +/* 0A1854 7F06CD24 44800000 */ mtc1 $zero, $f0 +.L7F06CD28: +/* 0A1858 7F06CD28 00000000 */ nop +.L7F06CD2C: +/* 0A185C 7F06CD2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1860 7F06CD30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1864 7F06CD34 03E00008 */ jr $ra +/* 0A1868 7F06CD38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setsubroty(void) { + +} +#else +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 NONMATCHING +void set_obj_instance_controller_scale(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_obj_instance_controller_scale +/* 0A19A8 7F06CE78 44856000 */ mtc1 $a1, $f12 +/* 0A19AC 7F06CE7C 03E00008 */ jr $ra +/* 0A19B0 7F06CE80 E48C0014 */ swc1 $f12, 0x14($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06CE84(void) { + +} +#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 +void getjointsize(void) { + +} +#else +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 NONMATCHING +void getinstsize(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getinstsize +/* 0A1B3C 7F06D00C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1B40 7F06D010 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1B44 7F06D014 14800006 */ bnez $a0, .L7F06D030 +/* 0A1B48 7F06D018 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1B4C 7F06D01C 3C048005 */ lui $a0, %hi(aGetinstsizeNoObjinst) +/* 0A1B50 7F06D020 0C0033D1 */ jal osSyncPrintf +/* 0A1B54 7F06D024 24844820 */ addiu $a0, %lo(aGetinstsizeNoObjinst) # addiu $a0, $a0, 0x4820 +/* 0A1B58 7F06D028 0FC1B11B */ jal return_null +/* 0A1B5C 7F06D02C 00000000 */ nop +.L7F06D030: +/* 0A1B60 7F06D030 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A1B64 7F06D034 3C048005 */ lui $a0, %hi(aGetinstsizeNoObjdesc) +/* 0A1B68 7F06D038 8DE20008 */ lw $v0, 8($t7) +/* 0A1B6C 7F06D03C 54400008 */ bnezl $v0, .L7F06D060 +/* 0A1B70 7F06D040 8FB90018 */ lw $t9, 0x18($sp) +/* 0A1B74 7F06D044 0C0033D1 */ jal osSyncPrintf +/* 0A1B78 7F06D048 2484483C */ addiu $a0, %lo(aGetinstsizeNoObjdesc) # addiu $a0, $a0, 0x483c +/* 0A1B7C 7F06D04C 0FC1B11B */ jal return_null +/* 0A1B80 7F06D050 00000000 */ nop +/* 0A1B84 7F06D054 8FB80018 */ lw $t8, 0x18($sp) +/* 0A1B88 7F06D058 8F020008 */ lw $v0, 8($t8) +/* 0A1B8C 7F06D05C 8FB90018 */ lw $t9, 0x18($sp) +.L7F06D060: +/* 0A1B90 7F06D060 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0A1B94 7F06D064 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1B98 7F06D068 C7260014 */ lwc1 $f6, 0x14($t9) +/* 0A1B9C 7F06D06C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1BA0 7F06D070 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1BA4 7F06D074 03E00008 */ jr $ra +/* 0A1BA8 7F06D078 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D07C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D07C +/* 0A1BAC 7F06D07C C4800000 */ lwc1 $f0, ($a0) +/* 0A1BB0 7F06D080 C4A40000 */ lwc1 $f4, ($a1) +/* 0A1BB4 7F06D084 44866000 */ mtc1 $a2, $f12 +/* 0A1BB8 7F06D088 C4820004 */ lwc1 $f2, 4($a0) +/* 0A1BBC 7F06D08C 46002181 */ sub.s $f6, $f4, $f0 +/* 0A1BC0 7F06D090 C48E0008 */ lwc1 $f14, 8($a0) +/* 0A1BC4 7F06D094 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A1BC8 7F06D098 46080280 */ add.s $f10, $f0, $f8 +/* 0A1BCC 7F06D09C E48A0000 */ swc1 $f10, ($a0) +/* 0A1BD0 7F06D0A0 C4B00004 */ lwc1 $f16, 4($a1) +/* 0A1BD4 7F06D0A4 46028481 */ sub.s $f18, $f16, $f2 +/* 0A1BD8 7F06D0A8 460C9102 */ mul.s $f4, $f18, $f12 +/* 0A1BDC 7F06D0AC 46041180 */ add.s $f6, $f2, $f4 +/* 0A1BE0 7F06D0B0 E4860004 */ swc1 $f6, 4($a0) +/* 0A1BE4 7F06D0B4 C4A80008 */ lwc1 $f8, 8($a1) +/* 0A1BE8 7F06D0B8 460E4281 */ sub.s $f10, $f8, $f14 +/* 0A1BEC 7F06D0BC 460C5402 */ mul.s $f16, $f10, $f12 +/* 0A1BF0 7F06D0C0 46107480 */ add.s $f18, $f14, $f16 +/* 0A1BF4 7F06D0C4 03E00008 */ jr $ra +/* 0A1BF8 7F06D0C8 E4920008 */ swc1 $f18, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D0CC(void) { + +} +#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) { + +} +#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 +void sub_GAME_7F06D1CC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D1CC +/* 0A1CFC 7F06D1CC 8C8E0008 */ lw $t6, 8($a0) +/* 0A1D00 7F06D1D0 00057880 */ sll $t7, $a1, 2 +/* 0A1D04 7F06D1D4 01E57823 */ subu $t7, $t7, $a1 +/* 0A1D08 7F06D1D8 000F7840 */ sll $t7, $t7, 1 +/* 0A1D0C 7F06D1DC 01CF3821 */ addu $a3, $t6, $t7 +/* 0A1D10 7F06D1E0 90E80002 */ lbu $t0, 2($a3) +/* 0A1D14 7F06D1E4 00001825 */ move $v1, $zero +/* 0A1D18 7F06D1E8 01004825 */ move $t1, $t0 +/* 0A1D1C 7F06D1EC 5920003A */ blezl $t1, .L7F06D2D8 +/* 0A1D20 7F06D1F0 94F80004 */ lhu $t8, 4($a3) +/* 0A1D24 7F06D1F4 94F80000 */ lhu $t8, ($a3) +/* 0A1D28 7F06D1F8 240E0008 */ li $t6, 8 +/* 0A1D2C 7F06D1FC 8C8D0010 */ lw $t5, 0x10($a0) +/* 0A1D30 7F06D200 03061021 */ addu $v0, $t8, $a2 +/* 0A1D34 7F06D204 30590007 */ andi $t9, $v0, 7 +/* 0A1D38 7F06D208 01D96023 */ subu $t4, $t6, $t9 +/* 0A1D3C 7F06D20C 318F00FF */ andi $t7, $t4, 0xff +/* 0A1D40 7F06D210 000228C2 */ srl $a1, $v0, 3 +/* 0A1D44 7F06D214 012F082A */ slt $at, $t1, $t7 +/* 0A1D48 7F06D218 318B00FF */ andi $t3, $t4, 0xff +/* 0A1D4C 7F06D21C 14200010 */ bnez $at, .L7F06D260 +/* 0A1D50 7F06D220 01A55021 */ addu $t2, $t5, $a1 +.L7F06D224: +/* 0A1D54 7F06D224 91590000 */ lbu $t9, ($t2) +/* 0A1D58 7F06D228 240D0001 */ li $t5, 1 +/* 0A1D5C 7F06D22C 016D7004 */ sllv $t6, $t5, $t3 +/* 0A1D60 7F06D230 012B1023 */ subu $v0, $t1, $t3 +/* 0A1D64 7F06D234 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A1D68 7F06D238 304900FF */ andi $t1, $v0, 0xff +/* 0A1D6C 7F06D23C 032FC024 */ and $t8, $t9, $t7 +/* 0A1D70 7F06D240 01386804 */ sllv $t5, $t8, $t1 +/* 0A1D74 7F06D244 006D1825 */ or $v1, $v1, $t5 +/* 0A1D78 7F06D248 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A1D7C 7F06D24C 29210008 */ slti $at, $t1, 8 +/* 0A1D80 7F06D250 01C01825 */ move $v1, $t6 +/* 0A1D84 7F06D254 254A0001 */ addiu $t2, $t2, 1 +/* 0A1D88 7F06D258 1020FFF2 */ beqz $at, .L7F06D224 +/* 0A1D8C 7F06D25C 240B0008 */ li $t3, 8 +.L7F06D260: +/* 0A1D90 7F06D260 1920000A */ blez $t1, .L7F06D28C +/* 0A1D94 7F06D264 01697823 */ subu $t7, $t3, $t1 +/* 0A1D98 7F06D268 91590000 */ lbu $t9, ($t2) +/* 0A1D9C 7F06D26C 240D0001 */ li $t5, 1 +/* 0A1DA0 7F06D270 012D7004 */ sllv $t6, $t5, $t1 +/* 0A1DA4 7F06D274 01F9C007 */ srav $t8, $t9, $t7 +/* 0A1DA8 7F06D278 25D9FFFF */ addiu $t9, $t6, -1 +/* 0A1DAC 7F06D27C 03197824 */ and $t7, $t8, $t9 +/* 0A1DB0 7F06D280 006F1825 */ or $v1, $v1, $t7 +/* 0A1DB4 7F06D284 306DFFFF */ andi $t5, $v1, 0xffff +/* 0A1DB8 7F06D288 01A01825 */ move $v1, $t5 +.L7F06D28C: +/* 0A1DBC 7F06D28C 310900FF */ andi $t1, $t0, 0xff +/* 0A1DC0 7F06D290 29210010 */ slti $at, $t1, 0x10 +/* 0A1DC4 7F06D294 1020000F */ beqz $at, .L7F06D2D4 +/* 0A1DC8 7F06D298 252E001F */ addiu $t6, $t1, 0x1f +/* 0A1DCC 7F06D29C 24180001 */ li $t8, 1 +/* 0A1DD0 7F06D2A0 01D8C804 */ sllv $t9, $t8, $t6 +/* 0A1DD4 7F06D2A4 00797824 */ and $t7, $v1, $t9 +/* 0A1DD8 7F06D2A8 11E0000A */ beqz $t7, .L7F06D2D4 +/* 0A1DDC 7F06D2AC 00601025 */ move $v0, $v1 +/* 0A1DE0 7F06D2B0 240D0010 */ li $t5, 16 +/* 0A1DE4 7F06D2B4 01A9C023 */ subu $t8, $t5, $t1 +/* 0A1DE8 7F06D2B8 240E0001 */ li $t6, 1 +/* 0A1DEC 7F06D2BC 030EC804 */ sllv $t9, $t6, $t8 +/* 0A1DF0 7F06D2C0 272FFFFF */ addiu $t7, $t9, -1 +/* 0A1DF4 7F06D2C4 012F6804 */ sllv $t5, $t7, $t1 +/* 0A1DF8 7F06D2C8 004D1825 */ or $v1, $v0, $t5 +/* 0A1DFC 7F06D2CC 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A1E00 7F06D2D0 01C01825 */ move $v1, $t6 +.L7F06D2D4: +/* 0A1E04 7F06D2D4 94F80004 */ lhu $t8, 4($a3) +.L7F06D2D8: +/* 0A1E08 7F06D2D8 00781821 */ addu $v1, $v1, $t8 +/* 0A1E0C 7F06D2DC 03E00008 */ jr $ra +/* 0A1E10 7F06D2E0 3062FFFF */ andi $v0, $v1, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D2E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D2E4 +/* 0A1E14 7F06D2E4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A1E18 7F06D2E8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A1E1C 7F06D2EC AFB20020 */ sw $s2, 0x20($sp) +/* 0A1E20 7F06D2F0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A1E24 7F06D2F4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A1E28 7F06D2F8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A1E2C 7F06D2FC 94EE000C */ lhu $t6, 0xc($a3) +/* 0A1E30 7F06D300 8FAF0038 */ lw $t7, 0x38($sp) +/* 0A1E34 7F06D304 00E09025 */ move $s2, $a3 +/* 0A1E38 7F06D308 00044080 */ sll $t0, $a0, 2 +/* 0A1E3C 7F06D30C 01CF0019 */ multu $t6, $t7 +/* 0A1E40 7F06D310 00045880 */ sll $t3, $a0, 2 +/* 0A1E44 7F06D314 00008812 */ mflo $s1 +/* 0A1E48 7F06D318 50A00008 */ beql $a1, $zero, .L7F06D33C +/* 0A1E4C 7F06D31C 8CCA0004 */ lw $t2, 4($a2) +/* 0A1E50 7F06D320 8CD90004 */ lw $t9, 4($a2) +/* 0A1E54 7F06D324 01044023 */ subu $t0, $t0, $a0 +/* 0A1E58 7F06D328 00084040 */ sll $t0, $t0, 1 +/* 0A1E5C 7F06D32C 03284821 */ addu $t1, $t9, $t0 +/* 0A1E60 7F06D330 10000006 */ b .L7F06D34C +/* 0A1E64 7F06D334 95300004 */ lhu $s0, 4($t1) +/* 0A1E68 7F06D338 8CCA0004 */ lw $t2, 4($a2) +.L7F06D33C: +/* 0A1E6C 7F06D33C 01645823 */ subu $t3, $t3, $a0 +/* 0A1E70 7F06D340 000B5840 */ sll $t3, $t3, 1 +/* 0A1E74 7F06D344 014B6021 */ addu $t4, $t2, $t3 +/* 0A1E78 7F06D348 95900002 */ lhu $s0, 2($t4) +.L7F06D34C: +/* 0A1E7C 7F06D34C 02402025 */ move $a0, $s2 +/* 0A1E80 7F06D350 02002825 */ move $a1, $s0 +/* 0A1E84 7F06D354 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1E88 7F06D358 02203025 */ move $a2, $s1 +/* 0A1E8C 7F06D35C 8FAD003C */ lw $t5, 0x3c($sp) +/* 0A1E90 7F06D360 02402025 */ move $a0, $s2 +/* 0A1E94 7F06D364 26050001 */ addiu $a1, $s0, 1 +/* 0A1E98 7F06D368 02203025 */ move $a2, $s1 +/* 0A1E9C 7F06D36C 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1EA0 7F06D370 A5A20000 */ sh $v0, ($t5) +/* 0A1EA4 7F06D374 8FAE003C */ lw $t6, 0x3c($sp) +/* 0A1EA8 7F06D378 02402025 */ move $a0, $s2 +/* 0A1EAC 7F06D37C 26050002 */ addiu $a1, $s0, 2 +/* 0A1EB0 7F06D380 02203025 */ move $a2, $s1 +/* 0A1EB4 7F06D384 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1EB8 7F06D388 A5C20002 */ sh $v0, 2($t6) +/* 0A1EBC 7F06D38C 8FAF003C */ lw $t7, 0x3c($sp) +/* 0A1EC0 7F06D390 02402025 */ move $a0, $s2 +/* 0A1EC4 7F06D394 26050003 */ addiu $a1, $s0, 3 +/* 0A1EC8 7F06D398 02203025 */ move $a2, $s1 +/* 0A1ECC 7F06D39C 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1ED0 7F06D3A0 A5E20004 */ sh $v0, 4($t7) +/* 0A1ED4 7F06D3A4 8FB8002C */ lw $t8, 0x2c($sp) +/* 0A1ED8 7F06D3A8 8FA5003C */ lw $a1, 0x3c($sp) +/* 0A1EDC 7F06D3AC 3043FFFF */ andi $v1, $v0, 0xffff +/* 0A1EE0 7F06D3B0 5300000A */ beql $t8, $zero, .L7F06D3DC +/* 0A1EE4 7F06D3B4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A1EE8 7F06D3B8 84B90000 */ lh $t9, ($a1) +/* 0A1EEC 7F06D3BC 3C090001 */ lui $t1, 1 +/* 0A1EF0 7F06D3C0 00194023 */ negu $t0, $t9 +/* 0A1EF4 7F06D3C4 10400004 */ beqz $v0, .L7F06D3D8 +/* 0A1EF8 7F06D3C8 A4A80000 */ sh $t0, ($a1) +/* 0A1EFC 7F06D3CC 01221823 */ subu $v1, $t1, $v0 +/* 0A1F00 7F06D3D0 306AFFFF */ andi $t2, $v1, 0xffff +/* 0A1F04 7F06D3D4 01401825 */ move $v1, $t2 +.L7F06D3D8: +/* 0A1F08 7F06D3D8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06D3DC: +/* 0A1F0C 7F06D3DC 8FB00018 */ lw $s0, 0x18($sp) +/* 0A1F10 7F06D3E0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A1F14 7F06D3E4 8FB20020 */ lw $s2, 0x20($sp) +/* 0A1F18 7F06D3E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0A1F1C 7F06D3EC 03E00008 */ jr $ra +/* 0A1F20 7F06D3F0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D3F4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BC0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06D3F4 +/* 0A1F24 7F06D3F4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A1F28 7F06D3F8 8FAE0040 */ lw $t6, 0x40($sp) +/* 0A1F2C 7F06D3FC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A1F30 7F06D400 27AF0028 */ addiu $t7, $sp, 0x28 +/* 0A1F34 7F06D404 AFAF0014 */ sw $t7, 0x14($sp) +/* 0A1F38 7F06D408 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 0A1F3C 7F06D40C AFAE0010 */ sw $t6, 0x10($sp) +/* 0A1F40 7F06D410 87B80028 */ lh $t8, 0x28($sp) +/* 0A1F44 7F06D414 8FA30044 */ lw $v1, 0x44($sp) +/* 0A1F48 7F06D418 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A1F4C 7F06D41C 44982000 */ mtc1 $t8, $f4 +/* 0A1F50 7F06D420 00000000 */ nop +/* 0A1F54 7F06D424 468021A0 */ cvt.s.w $f6, $f4 +/* 0A1F58 7F06D428 44822000 */ mtc1 $v0, $f4 +/* 0A1F5C 7F06D42C E4660000 */ swc1 $f6, ($v1) +/* 0A1F60 7F06D430 87B9002A */ lh $t9, 0x2a($sp) +/* 0A1F64 7F06D434 468021A0 */ cvt.s.w $f6, $f4 +/* 0A1F68 7F06D438 44994000 */ mtc1 $t9, $f8 +/* 0A1F6C 7F06D43C 00000000 */ nop +/* 0A1F70 7F06D440 468042A0 */ cvt.s.w $f10, $f8 +/* 0A1F74 7F06D444 E46A0004 */ swc1 $f10, 4($v1) +/* 0A1F78 7F06D448 87A8002C */ lh $t0, 0x2c($sp) +/* 0A1F7C 7F06D44C 44888000 */ mtc1 $t0, $f16 +/* 0A1F80 7F06D450 00000000 */ nop +/* 0A1F84 7F06D454 468084A0 */ cvt.s.w $f18, $f16 +/* 0A1F88 7F06D458 04410004 */ bgez $v0, .L7F06D46C +/* 0A1F8C 7F06D45C E4720008 */ swc1 $f18, 8($v1) +/* 0A1F90 7F06D460 44814000 */ mtc1 $at, $f8 +/* 0A1F94 7F06D464 00000000 */ nop +/* 0A1F98 7F06D468 46083180 */ add.s $f6, $f6, $f8 +.L7F06D46C: +/* 0A1F9C 7F06D46C 3C018005 */ lui $at, %hi(D_80054BC0) +/* 0A1FA0 7F06D470 C42A4BC0 */ lwc1 $f10, %lo(D_80054BC0)($at) +/* 0A1FA4 7F06D474 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A1FA8 7F06D478 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A1FAC 7F06D47C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0A1FB0 7F06D480 44819000 */ mtc1 $at, $f18 +/* 0A1FB4 7F06D484 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A1FB8 7F06D488 03E00008 */ jr $ra +/* 0A1FBC 7F06D48C 46128003 */ div.s $f0, $f16, $f18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D490(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D490 +/* 0A1FC0 7F06D490 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 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 +/* 0A1FD4 7F06D4A4 AFB00014 */ sw $s0, 0x14($sp) +/* 0A1FD8 7F06D4A8 804E0000 */ lb $t6, ($v0) +/* 0A1FDC 7F06D4AC 00408025 */ move $s0, $v0 +/* 0A1FE0 7F06D4B0 55C0007B */ bnezl $t6, .L7F06D6A0 +/* 0A1FE4 7F06D4B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A1FE8 7F06D4B8 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A1FEC 7F06D4BC 44807000 */ mtc1 $zero, $f14 +/* 0A1FF0 7F06D4C0 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0A1FF4 7F06D4C4 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A1FF8 7F06D4C8 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0A1FFC 7F06D4CC C448003C */ lwc1 $f8, 0x3c($v0) +/* 0A2000 7F06D4D0 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A2004 7F06D4D4 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0A2008 7F06D4D8 E44A0014 */ swc1 $f10, 0x14($v0) +/* 0A200C 7F06D4DC C620002C */ lwc1 $f0, 0x2c($s1) +/* 0A2010 7F06D4E0 46007032 */ c.eq.s $f14, $f0 +/* 0A2014 7F06D4E4 00000000 */ nop +/* 0A2018 7F06D4E8 4503000F */ bc1tl .L7F06D528 +/* 0A201C 7F06D4EC 8E380054 */ lw $t8, 0x54($s1) +/* 0A2020 7F06D4F0 804F0001 */ lb $t7, 1($v0) +/* 0A2024 7F06D4F4 27A40038 */ addiu $a0, $sp, 0x38 +/* 0A2028 7F06D4F8 51E0000B */ beql $t7, $zero, .L7F06D528 +/* 0A202C 7F06D4FC 8E380054 */ lw $t8, 0x54($s1) +/* 0A2030 7F06D500 44060000 */ mfc1 $a2, $f0 +/* 0A2034 7F06D504 0FC1B41F */ jal sub_GAME_7F06D07C +/* 0A2038 7F06D508 24450024 */ addiu $a1, $v0, 0x24 +/* 0A203C 7F06D50C C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A2040 7F06D510 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 0A2044 7F06D514 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A2048 7F06D518 8E26002C */ lw $a2, 0x2c($s1) +/* 0A204C 7F06D51C 44807000 */ mtc1 $zero, $f14 +/* 0A2050 7F06D520 E6000014 */ swc1 $f0, 0x14($s0) +/* 0A2054 7F06D524 8E380054 */ lw $t8, 0x54($s1) +.L7F06D528: +/* 0A2058 7F06D528 02202025 */ move $a0, $s1 +/* 0A205C 7F06D52C 26050008 */ addiu $a1, $s0, 8 +/* 0A2060 7F06D530 17000006 */ bnez $t8, .L7F06D54C +/* 0A2064 7F06D534 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A2068 7F06D538 C6300084 */ lwc1 $f16, 0x84($s1) +/* 0A206C 7F06D53C 46107032 */ c.eq.s $f14, $f16 +/* 0A2070 7F06D540 00000000 */ nop +/* 0A2074 7F06D544 45030015 */ bc1tl .L7F06D59C +/* 0A2078 7F06D548 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F06D54C: +/* 0A207C 7F06D54C 82190002 */ lb $t9, 2($s0) +/* 0A2080 7F06D550 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0A2084 7F06D554 53200011 */ beql $t9, $zero, .L7F06D59C +/* 0A2088 7F06D558 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A208C 7F06D55C C622005C */ lwc1 $f2, 0x5c($s1) +/* 0A2090 7F06D560 C6000050 */ lwc1 $f0, 0x50($s0) +/* 0A2094 7F06D564 C62C0084 */ lwc1 $f12, 0x84($s1) +/* 0A2098 7F06D568 46027032 */ c.eq.s $f14, $f2 +/* 0A209C 7F06D56C 00000000 */ nop +/* 0A20A0 7F06D570 45030006 */ bc1tl .L7F06D58C +/* 0A20A4 7F06D574 46080281 */ sub.s $f10, $f0, $f8 +/* 0A20A8 7F06D578 C6120044 */ lwc1 $f18, 0x44($s0) +/* 0A20AC 7F06D57C 46009101 */ sub.s $f4, $f18, $f0 +/* 0A20B0 7F06D580 46022182 */ mul.s $f6, $f4, $f2 +/* 0A20B4 7F06D584 46060000 */ add.s $f0, $f0, $f6 +/* 0A20B8 7F06D588 46080281 */ sub.s $f10, $f0, $f8 +.L7F06D58C: +/* 0A20BC 7F06D58C 460C5402 */ mul.s $f16, $f10, $f12 +/* 0A20C0 7F06D590 46104480 */ add.s $f18, $f8, $f16 +/* 0A20C4 7F06D594 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0A20C8 7F06D598 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F06D59C: +/* 0A20CC 7F06D59C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0A20D0 7F06D5A0 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0A20D4 7F06D5A4 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A20D8 7F06D5A8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0A20DC 7F06D5AC E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0A20E0 7F06D5B0 8E2200A0 */ lw $v0, 0xa0($s1) +/* 0A20E4 7F06D5B4 50400006 */ beql $v0, $zero, .L7F06D5D0 +/* 0A20E8 7F06D5B8 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0A20EC 7F06D5BC 0040F809 */ jalr $v0 +/* 0A20F0 7F06D5C0 26070004 */ addiu $a3, $s0, 4 +/* 0A20F4 7F06D5C4 50400036 */ beql $v0, $zero, .L7F06D6A0 +/* 0A20F8 7F06D5C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A20FC 7F06D5CC C7A8002C */ lwc1 $f8, 0x2c($sp) +.L7F06D5D0: +/* 0A2100 7F06D5D0 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 0A2104 7F06D5D4 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0A2108 7F06D5D8 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0A210C 7F06D5DC 46104481 */ sub.s $f18, $f8, $f16 +/* 0A2110 7F06D5E0 46062281 */ sub.s $f10, $f4, $f6 +/* 0A2114 7F06D5E4 E7B20038 */ swc1 $f18, 0x38($sp) +/* 0A2118 7F06D5E8 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0A211C 7F06D5EC E6080008 */ swc1 $f8, 8($s0) +/* 0A2120 7F06D5F0 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0A2124 7F06D5F4 C6120004 */ lwc1 $f18, 4($s0) +/* 0A2128 7F06D5F8 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0A212C 7F06D5FC 82080001 */ lb $t0, 1($s0) +/* 0A2130 7F06D600 46128100 */ add.s $f4, $f16, $f18 +/* 0A2134 7F06D604 C612003C */ lwc1 $f18, 0x3c($s0) +/* 0A2138 7F06D608 E604000C */ swc1 $f4, 0xc($s0) +/* 0A213C 7F06D60C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A2140 7F06D610 E6060010 */ swc1 $f6, 0x10($s0) +/* 0A2144 7F06D614 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2148 7F06D618 46085400 */ add.s $f16, $f10, $f8 +/* 0A214C 7F06D61C E6100034 */ swc1 $f16, 0x34($s0) +/* 0A2150 7F06D620 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A2154 7F06D624 46049180 */ add.s $f6, $f18, $f4 +/* 0A2158 7F06D628 11000009 */ beqz $t0, .L7F06D650 +/* 0A215C 7F06D62C E606003C */ swc1 $f6, 0x3c($s0) +/* 0A2160 7F06D630 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0A2164 7F06D634 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2168 7F06D638 C612002C */ lwc1 $f18, 0x2c($s0) +/* 0A216C 7F06D63C 46085400 */ add.s $f16, $f10, $f8 +/* 0A2170 7F06D640 E6100024 */ swc1 $f16, 0x24($s0) +/* 0A2174 7F06D644 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A2178 7F06D648 46049180 */ add.s $f6, $f18, $f4 +/* 0A217C 7F06D64C E606002C */ swc1 $f6, 0x2c($s0) +.L7F06D650: +/* 0A2180 7F06D650 82090002 */ lb $t1, 2($s0) +/* 0A2184 7F06D654 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2188 7F06D658 51200011 */ beql $t1, $zero, .L7F06D6A0 +/* 0A218C 7F06D65C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A2190 7F06D660 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 0A2194 7F06D664 C6120054 */ lwc1 $f18, 0x54($s0) +/* 0A2198 7F06D668 46085400 */ add.s $f16, $f10, $f8 +/* 0A219C 7F06D66C C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0A21A0 7F06D670 E610004C */ swc1 $f16, 0x4c($s0) +/* 0A21A4 7F06D674 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A21A8 7F06D678 46049180 */ add.s $f6, $f18, $f4 +/* 0A21AC 7F06D67C C6120048 */ lwc1 $f18, 0x48($s0) +/* 0A21B0 7F06D680 E6060054 */ swc1 $f6, 0x54($s0) +/* 0A21B4 7F06D684 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A21B8 7F06D688 46085400 */ add.s $f16, $f10, $f8 +/* 0A21BC 7F06D68C E6100040 */ swc1 $f16, 0x40($s0) +/* 0A21C0 7F06D690 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A21C4 7F06D694 46049180 */ add.s $f6, $f18, $f4 +/* 0A21C8 7F06D698 E6060048 */ swc1 $f6, 0x48($s0) +/* 0A21CC 7F06D69C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06D6A0: +/* 0A21D0 7F06D6A0 8FB00014 */ lw $s0, 0x14($sp) +/* 0A21D4 7F06D6A4 8FB10018 */ lw $s1, 0x18($sp) +/* 0A21D8 7F06D6A8 03E00008 */ jr $ra +/* 0A21DC 7F06D6AC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void subcalcpos(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subcalcpos +/* 0A21E0 7F06D6B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A21E4 7F06D6B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A21E8 7F06D6B8 14800006 */ bnez $a0, .L7F06D6D4 +/* 0A21EC 7F06D6BC AFA40018 */ sw $a0, 0x18($sp) +/* 0A21F0 7F06D6C0 3C048005 */ lui $a0, %hi(aSubcalcposNoObjanim) +/* 0A21F4 7F06D6C4 0C0033D1 */ jal osSyncPrintf +/* 0A21F8 7F06D6C8 24844858 */ addiu $a0, %lo(aSubcalcposNoObjanim) # addiu $a0, $a0, 0x4858 +/* 0A21FC 7F06D6CC 0FC1B11B */ jal return_null +/* 0A2200 7F06D6D0 00000000 */ nop +.L7F06D6D4: +/* 0A2204 7F06D6D4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A2208 7F06D6D8 3C048005 */ lui $a0, %hi(aSubcalcposNoObjdesc) +/* 0A220C 7F06D6DC 8DE20008 */ lw $v0, 8($t7) +/* 0A2210 7F06D6E0 54400008 */ bnezl $v0, .L7F06D704 +/* 0A2214 7F06D6E4 8C450000 */ lw $a1, ($v0) +/* 0A2218 7F06D6E8 0C0033D1 */ jal osSyncPrintf +/* 0A221C 7F06D6EC 24844874 */ addiu $a0, %lo(aSubcalcposNoObjdesc) # addiu $a0, $a0, 0x4874 +/* 0A2220 7F06D6F0 0FC1B11B */ jal return_null +/* 0A2224 7F06D6F4 00000000 */ nop +/* 0A2228 7F06D6F8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A222C 7F06D6FC 8F020008 */ lw $v0, 8($t8) +/* 0A2230 7F06D700 8C450000 */ lw $a1, ($v0) +.L7F06D704: +/* 0A2234 7F06D704 50A00009 */ beql $a1, $zero, .L7F06D72C +/* 0A2238 7F06D708 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A223C 7F06D70C 94B90000 */ lhu $t9, ($a1) +/* 0A2240 7F06D710 24010001 */ li $at, 1 +/* 0A2244 7F06D714 332800FF */ andi $t0, $t9, 0xff +/* 0A2248 7F06D718 55010004 */ bnel $t0, $at, .L7F06D72C +/* 0A224C 7F06D71C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A2250 7F06D720 0FC1B524 */ jal sub_GAME_7F06D490 +/* 0A2254 7F06D724 8FA40018 */ lw $a0, 0x18($sp) +/* 0A2258 7F06D728 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D72C: +/* 0A225C 7F06D72C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A2260 7F06D730 03E00008 */ jr $ra +/* 0A2264 7F06D734 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_01_group_heading(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_01_group_heading +/* 0A2268 7F06D738 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0A226C 7F06D73C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A2270 7F06D740 AFA40080 */ sw $a0, 0x80($sp) +/* 0A2274 7F06D744 8CCE0004 */ lw $t6, 4($a2) +/* 0A2278 7F06D748 00A03825 */ move $a3, $a1 +/* 0A227C 7F06D74C 00A02025 */ move $a0, $a1 +/* 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 +/* 0A2290 7F06D760 AFAE007C */ sw $t6, 0x7c($sp) +/* 0A2294 7F06D764 8FA70084 */ lw $a3, 0x84($sp) +/* 0A2298 7F06D768 8FB8007C */ lw $t8, 0x7c($sp) +/* 0A229C 7F06D76C 244F0008 */ addiu $t7, $v0, 8 +/* 0A22A0 7F06D770 C4E40014 */ lwc1 $f4, 0x14($a3) +/* 0A22A4 7F06D774 AFAF0070 */ sw $t7, 0x70($sp) +/* 0A22A8 7F06D778 8FA60088 */ lw $a2, 0x88($sp) +/* 0A22AC 7F06D77C E7A40074 */ swc1 $f4, 0x74($sp) +/* 0A22B0 7F06D780 87030002 */ lh $v1, 2($t8) +/* 0A22B4 7F06D784 8CF9000C */ lw $t9, 0xc($a3) +/* 0A22B8 7F06D788 C44C0014 */ lwc1 $f12, 0x14($v0) +/* 0A22BC 7F06D78C 00034980 */ sll $t1, $v1, 6 +/* 0A22C0 7F06D790 03295021 */ addu $t2, $t9, $t1 +/* 0A22C4 7F06D794 AFAA0060 */ sw $t2, 0x60($sp) +/* 0A22C8 7F06D798 8CC50008 */ lw $a1, 8($a2) +/* 0A22CC 7F06D79C 00404025 */ move $t0, $v0 +/* 0A22D0 7F06D7A0 8FAB0080 */ lw $t3, 0x80($sp) +/* 0A22D4 7F06D7A4 10A00009 */ beqz $a1, .L7F06D7CC +/* 0A22D8 7F06D7A8 00E02025 */ move $a0, $a3 +/* 0A22DC 7F06D7AC 00003025 */ move $a2, $zero +/* 0A22E0 7F06D7B0 AFA20078 */ sw $v0, 0x78($sp) +/* 0A22E4 7F06D7B4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A22E8 7F06D7B8 E7AC006C */ swc1 $f12, 0x6c($sp) +/* 0A22EC 7F06D7BC 8FA80078 */ lw $t0, 0x78($sp) +/* 0A22F0 7F06D7C0 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0A22F4 7F06D7C4 10000002 */ b .L7F06D7D0 +/* 0A22F8 7F06D7C8 00403825 */ move $a3, $v0 +.L7F06D7CC: +/* 0A22FC 7F06D7CC 8D670000 */ lw $a3, ($t3) +.L7F06D7D0: +/* 0A2300 7F06D7D0 C5000018 */ lwc1 $f0, 0x18($t0) +/* 0A2304 7F06D7D4 44803000 */ mtc1 $zero, $f6 +/* 0A2308 7F06D7D8 00000000 */ nop +/* 0A230C 7F06D7DC 46003032 */ c.eq.s $f6, $f0 +/* 0A2310 7F06D7E0 00000000 */ nop +/* 0A2314 7F06D7E4 45010007 */ bc1t .L7F06D804 +/* 0A2318 7F06D7E8 00000000 */ nop +/* 0A231C 7F06D7EC C50E001C */ lwc1 $f14, 0x1c($t0) +/* 0A2320 7F06D7F0 44060000 */ mfc1 $a2, $f0 +/* 0A2324 7F06D7F4 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A2328 7F06D7F8 AFA70068 */ sw $a3, 0x68($sp) +/* 0A232C 7F06D7FC 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2330 7F06D800 46000306 */ mov.s $f12, $f0 +.L7F06D804: +/* 0A2334 7F06D804 10E00019 */ beqz $a3, .L7F06D86C +/* 0A2338 7F06D808 8FA40070 */ lw $a0, 0x70($sp) +/* 0A233C 7F06D80C 44056000 */ mfc1 $a1, $f12 +/* 0A2340 7F06D810 8FA40070 */ lw $a0, 0x70($sp) +/* 0A2344 7F06D814 27A60020 */ addiu $a2, $sp, 0x20 +/* 0A2348 7F06D818 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A234C 7F06D81C AFA70068 */ sw $a3, 0x68($sp) +/* 0A2350 7F06D820 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A2354 7F06D824 44815000 */ mtc1 $at, $f10 +/* 0A2358 7F06D828 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0A235C 7F06D82C 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2360 7F06D830 27A50020 */ addiu $a1, $sp, 0x20 +/* 0A2364 7F06D834 460A4032 */ c.eq.s $f8, $f10 +/* 0A2368 7F06D838 00000000 */ nop +/* 0A236C 7F06D83C 45030006 */ bc1tl .L7F06D858 +/* 0A2370 7F06D840 00E02025 */ move $a0, $a3 +/* 0A2374 7F06D844 46004306 */ mov.s $f12, $f8 +/* 0A2378 7F06D848 0FC162C4 */ jal matrix_scalar_multiply_2 +/* 0A237C 7F06D84C AFA70068 */ sw $a3, 0x68($sp) +/* 0A2380 7F06D850 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2384 7F06D854 00E02025 */ move $a0, $a3 +.L7F06D858: +/* 0A2388 7F06D858 27A50020 */ addiu $a1, $sp, 0x20 +/* 0A238C 7F06D85C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2390 7F06D860 8FA60060 */ lw $a2, 0x60($sp) +/* 0A2394 7F06D864 1000000F */ b .L7F06D8A4 +/* 0A2398 7F06D868 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D86C: +/* 0A239C 7F06D86C 44056000 */ mfc1 $a1, $f12 +/* 0A23A0 7F06D870 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A23A4 7F06D874 8FA60060 */ lw $a2, 0x60($sp) +/* 0A23A8 7F06D878 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A23AC 7F06D87C 44819000 */ mtc1 $at, $f18 +/* 0A23B0 7F06D880 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0A23B4 7F06D884 8FA50060 */ lw $a1, 0x60($sp) +/* 0A23B8 7F06D888 46128032 */ c.eq.s $f16, $f18 +/* 0A23BC 7F06D88C 00000000 */ nop +/* 0A23C0 7F06D890 45030004 */ bc1tl .L7F06D8A4 +/* 0A23C4 7F06D894 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A23C8 7F06D898 0FC162C4 */ jal matrix_scalar_multiply_2 +/* 0A23CC 7F06D89C 46008306 */ mov.s $f12, $f16 +/* 0A23D0 7F06D8A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D8A4: +/* 0A23D4 7F06D8A4 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0A23D8 7F06D8A8 03E00008 */ jr $ra +/* 0A23DC 7F06D8AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D8B0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BC4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BCC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BD4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BD8 +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06D8B0 +/* 0A23E0 7F06D8B0 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0A23E4 7F06D8B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A23E8 7F06D8B8 AFA500BC */ sw $a1, 0xbc($sp) +/* 0A23EC 7F06D8BC AFA700C4 */ sw $a3, 0xc4($sp) +/* 0A23F0 7F06D8C0 94CE0000 */ lhu $t6, ($a2) +/* 0A23F4 7F06D8C4 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 0A23F8 7F06D8C8 8CCF0004 */ lw $t7, 4($a2) +/* 0A23FC 7F06D8CC AFAF00B0 */ sw $t7, 0xb0($sp) +/* 0A2400 7F06D8D0 85F9000E */ lh $t9, 0xe($t7) +/* 0A2404 7F06D8D4 AFB90064 */ sw $t9, 0x64($sp) +/* 0A2408 7F06D8D8 85E80010 */ lh $t0, 0x10($t7) +/* 0A240C 7F06D8DC AFA80060 */ sw $t0, 0x60($sp) +/* 0A2410 7F06D8E0 85E90012 */ lh $t1, 0x12($t7) +/* 0A2414 7F06D8E4 AFA9005C */ sw $t1, 0x5c($sp) +/* 0A2418 7F06D8E8 8CAB000C */ lw $t3, 0xc($a1) +/* 0A241C 7F06D8EC AFAB0058 */ sw $t3, 0x58($sp) +/* 0A2420 7F06D8F0 8CCC0008 */ lw $t4, 8($a2) +/* 0A2424 7F06D8F4 00003025 */ move $a2, $zero +/* 0A2428 7F06D8F8 11800006 */ beqz $t4, .L7F06D914 +/* 0A242C 7F06D8FC AFAC001C */ sw $t4, 0x1c($sp) +/* 0A2430 7F06D900 00A02025 */ move $a0, $a1 +/* 0A2434 7F06D904 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A2438 7F06D908 01802825 */ move $a1, $t4 +/* 0A243C 7F06D90C 10000003 */ b .L7F06D91C +/* 0A2440 7F06D910 AFA200AC */ sw $v0, 0xac($sp) +.L7F06D914: +/* 0A2444 7F06D914 8C8E0000 */ lw $t6, ($a0) +/* 0A2448 7F06D918 AFAE00AC */ sw $t6, 0xac($sp) +.L7F06D91C: +/* 0A244C 7F06D91C 8FAF00AC */ lw $t7, 0xac($sp) +/* 0A2450 7F06D920 8FA90064 */ lw $t1, 0x64($sp) +/* 0A2454 7F06D924 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2458 7F06D928 11E00017 */ beqz $t7, .L7F06D988 +/* 0A245C 7F06D92C 00095980 */ sll $t3, $t1, 6 +/* 0A2460 7F06D930 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2464 7F06D934 8FA500C4 */ lw $a1, 0xc4($sp) +/* 0A2468 7F06D938 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0A246C 7F06D93C 27A60068 */ addiu $a2, $sp, 0x68 +/* 0A2470 7F06D940 8FB90064 */ lw $t9, 0x64($sp) +/* 0A2474 7F06D944 8FB80058 */ lw $t8, 0x58($sp) +/* 0A2478 7F06D948 8FA400AC */ lw $a0, 0xac($sp) +/* 0A247C 7F06D94C 00194180 */ sll $t0, $t9, 6 +/* 0A2480 7F06D950 01183021 */ addu $a2, $t0, $t8 +/* 0A2484 7F06D954 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A2488 7F06D958 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A248C 7F06D95C 27A50068 */ addiu $a1, $sp, 0x68 +/* 0A2490 7F06D960 3C028003 */ lui $v0, %hi(D_80036090) +/* 0A2494 7F06D964 8C426090 */ lw $v0, %lo(D_80036090)($v0) +/* 0A2498 7F06D968 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A249C 7F06D96C 8FA40064 */ lw $a0, 0x64($sp) +/* 0A24A0 7F06D970 5040000A */ beql $v0, $zero, .L7F06D99C +/* 0A24A4 7F06D974 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 0A24A8 7F06D978 0040F809 */ jalr $v0 +/* 0A24AC 7F06D97C 00C02825 */ move $a1, $a2 +/* 0A24B0 7F06D980 10000006 */ b .L7F06D99C +/* 0A24B4 7F06D984 8FAA00B4 */ lw $t2, 0xb4($sp) +.L7F06D988: +/* 0A24B8 7F06D988 8FAC0058 */ lw $t4, 0x58($sp) +/* 0A24BC 7F06D98C 8FA500C4 */ lw $a1, 0xc4($sp) +/* 0A24C0 7F06D990 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0A24C4 7F06D994 016C3021 */ addu $a2, $t3, $t4 +/* 0A24C8 7F06D998 8FAA00B4 */ lw $t2, 0xb4($sp) +.L7F06D99C: +/* 0A24CC 7F06D99C 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0A24D0 7F06D9A0 314D0100 */ andi $t5, $t2, 0x100 +/* 0A24D4 7F06D9A4 51A0001D */ beql $t5, $zero, .L7F06DA1C +/* 0A24D8 7F06D9A8 8FAC00B4 */ lw $t4, 0xb4($sp) +/* 0A24DC 7F06D9AC 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A24E0 7F06D9B0 27A5003C */ addiu $a1, $sp, 0x3c +/* 0A24E4 7F06D9B4 27A4003C */ addiu $a0, $sp, 0x3c +/* 0A24E8 7F06D9B8 3C053F00 */ lui $a1, 0x3f00 +/* 0A24EC 7F06D9BC 0FC16F1A */ jal quaternion_7F05BC68 +/* 0A24F0 7F06D9C0 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A24F4 7F06D9C4 8FAE00AC */ lw $t6, 0xac($sp) +/* 0A24F8 7F06D9C8 8FB80060 */ lw $t8, 0x60($sp) +/* 0A24FC 7F06D9CC 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A2500 7F06D9D0 11C0000D */ beqz $t6, .L7F06DA08 +/* 0A2504 7F06D9D4 00184980 */ sll $t1, $t8, 6 +/* 0A2508 7F06D9D8 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A250C 7F06D9DC 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2510 7F06D9E0 27A60068 */ addiu $a2, $sp, 0x68 +/* 0A2514 7F06D9E4 8FAF0060 */ lw $t7, 0x60($sp) +/* 0A2518 7F06D9E8 8FA80058 */ lw $t0, 0x58($sp) +/* 0A251C 7F06D9EC 8FA400AC */ lw $a0, 0xac($sp) +/* 0A2520 7F06D9F0 000FC980 */ sll $t9, $t7, 6 +/* 0A2524 7F06D9F4 27A50068 */ addiu $a1, $sp, 0x68 +/* 0A2528 7F06D9F8 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A252C 7F06D9FC 03283021 */ addu $a2, $t9, $t0 +/* 0A2530 7F06DA00 10000006 */ b .L7F06DA1C +/* 0A2534 7F06DA04 8FAC00B4 */ lw $t4, 0xb4($sp) +.L7F06DA08: +/* 0A2538 7F06DA08 8FAB0058 */ lw $t3, 0x58($sp) +/* 0A253C 7F06DA0C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2540 7F06DA10 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2544 7F06DA14 012B3021 */ addu $a2, $t1, $t3 +/* 0A2548 7F06DA18 8FAC00B4 */ lw $t4, 0xb4($sp) +.L7F06DA1C: +/* 0A254C 7F06DA1C 8FAD00AC */ lw $t5, 0xac($sp) +/* 0A2550 7F06DA20 318A0200 */ andi $t2, $t4, 0x200 +/* 0A2554 7F06DA24 5140004A */ beql $t2, $zero, .L7F06DB50 +/* 0A2558 7F06DA28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A255C 7F06DA2C 11A00004 */ beqz $t5, .L7F06DA40 +/* 0A2560 7F06DA30 8FAF005C */ lw $t7, 0x5c($sp) +/* 0A2564 7F06DA34 27AE0068 */ addiu $t6, $sp, 0x68 +/* 0A2568 7F06DA38 10000005 */ b .L7F06DA50 +/* 0A256C 7F06DA3C AFAE0028 */ sw $t6, 0x28($sp) +.L7F06DA40: +/* 0A2570 7F06DA40 8FA80058 */ lw $t0, 0x58($sp) +/* 0A2574 7F06DA44 000FC980 */ sll $t9, $t7, 6 +/* 0A2578 7F06DA48 0328C021 */ addu $t8, $t9, $t0 +/* 0A257C 7F06DA4C AFB80028 */ sw $t8, 0x28($sp) +.L7F06DA50: +/* 0A2580 7F06DA50 8FA900C4 */ lw $t1, 0xc4($sp) +/* 0A2584 7F06DA54 3C018005 */ lui $at, %hi(D_80054BC4) +/* 0A2588 7F06DA58 C4244BC4 */ lwc1 $f4, %lo(D_80054BC4)($at) +/* 0A258C 7F06DA5C C52C0004 */ lwc1 $f12, 4($t1) +/* 0A2590 7F06DA60 3C018005 */ lui $at, %hi(D_80054BC8) +/* 0A2594 7F06DA64 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2598 7F06DA68 4604603C */ c.lt.s $f12, $f4 +/* 0A259C 7F06DA6C 00000000 */ nop +/* 0A25A0 7F06DA70 45000007 */ bc1f .L7F06DA90 +/* 0A25A4 7F06DA74 00000000 */ nop +/* 0A25A8 7F06DA78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A25AC 7F06DA7C 44813000 */ mtc1 $at, $f6 +/* 0A25B0 7F06DA80 00000000 */ nop +/* 0A25B4 7F06DA84 46066302 */ mul.s $f12, $f12, $f6 +/* 0A25B8 7F06DA88 10000009 */ b .L7F06DAB0 +/* 0A25BC 7F06DA8C 00000000 */ nop +.L7F06DA90: +/* 0A25C0 7F06DA90 C4284BC8 */ lwc1 $f8, %lo(D_80054BC8)($at) +/* 0A25C4 7F06DA94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A25C8 7F06DA98 44818000 */ mtc1 $at, $f16 +/* 0A25CC 7F06DA9C 460C4281 */ sub.s $f10, $f8, $f12 +/* 0A25D0 7F06DAA0 3C018005 */ lui $at, %hi(D_80054BCC) +/* 0A25D4 7F06DAA4 C4244BCC */ lwc1 $f4, %lo(D_80054BCC)($at) +/* 0A25D8 7F06DAA8 46105482 */ mul.s $f18, $f10, $f16 +/* 0A25DC 7F06DAAC 46122301 */ sub.s $f12, $f4, $f18 +.L7F06DAB0: +/* 0A25E0 7F06DAB0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A25E4 7F06DAB4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0A25E8 7F06DAB8 3C018005 */ lui $at, %hi(D_80054BD0) +/* 0A25EC 7F06DABC C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0A25F0 7F06DAC0 C4264BD0 */ lwc1 $f6, %lo(D_80054BD0)($at) +/* 0A25F4 7F06DAC4 3C018005 */ lui $at, %hi(D_80054BD4) +/* 0A25F8 7F06DAC8 460C303E */ c.le.s $f6, $f12 +/* 0A25FC 7F06DACC 00000000 */ nop +/* 0A2600 7F06DAD0 45000003 */ bc1f .L7F06DAE0 +/* 0A2604 7F06DAD4 00000000 */ nop +/* 0A2608 7F06DAD8 C4284BD4 */ lwc1 $f8, %lo(D_80054BD4)($at) +/* 0A260C 7F06DADC 460C4301 */ sub.s $f12, $f8, $f12 +.L7F06DAE0: +/* 0A2610 7F06DAE0 3C018005 */ lui $at, %hi(D_80054BD8) +/* 0A2614 7F06DAE4 C42A4BD8 */ lwc1 $f10, %lo(D_80054BD8)($at) +/* 0A2618 7F06DAE8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A261C 7F06DAEC 460A603C */ c.lt.s $f12, $f10 +/* 0A2620 7F06DAF0 00000000 */ nop +/* 0A2624 7F06DAF4 45020006 */ bc1fl .L7F06DB10 +/* 0A2628 7F06DAF8 44816000 */ mtc1 $at, $f12 +/* 0A262C 7F06DAFC 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A2630 7F06DB00 00000000 */ nop +/* 0A2634 7F06DB04 10000003 */ b .L7F06DB14 +/* 0A2638 7F06DB08 46000306 */ mov.s $f12, $f0 +/* 0A263C 7F06DB0C 44816000 */ mtc1 $at, $f12 +.L7F06DB10: +/* 0A2640 7F06DB10 00000000 */ nop +.L7F06DB14: +/* 0A2644 7F06DB14 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A2648 7F06DB18 8FA50028 */ lw $a1, 0x28($sp) +/* 0A264C 7F06DB1C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2650 7F06DB20 0FC16266 */ jal matrix_4x4_set_position +/* 0A2654 7F06DB24 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2658 7F06DB28 8FAB00AC */ lw $t3, 0xac($sp) +/* 0A265C 7F06DB2C 8FAC005C */ lw $t4, 0x5c($sp) +/* 0A2660 7F06DB30 8FAD0058 */ lw $t5, 0x58($sp) +/* 0A2664 7F06DB34 11600005 */ beqz $t3, .L7F06DB4C +/* 0A2668 7F06DB38 01602025 */ move $a0, $t3 +/* 0A266C 7F06DB3C 000C5180 */ sll $t2, $t4, 6 +/* 0A2670 7F06DB40 014D3021 */ addu $a2, $t2, $t5 +/* 0A2674 7F06DB44 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2678 7F06DB48 8FA50028 */ lw $a1, 0x28($sp) +.L7F06DB4C: +/* 0A267C 7F06DB4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06DB50: +/* 0A2680 7F06DB50 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 0A2684 7F06DB54 03E00008 */ jr $ra +/* 0A2688 7F06DB58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DB5C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BDC +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BE0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BE4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BE8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BF0 +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06DB5C +/* 0A268C 7F06DB5C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0A2690 7F06DB60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A2694 7F06DB64 AFA500AC */ sw $a1, 0xac($sp) +/* 0A2698 7F06DB68 AFA700B4 */ sw $a3, 0xb4($sp) +/* 0A269C 7F06DB6C 94CE0000 */ lhu $t6, ($a2) +/* 0A26A0 7F06DB70 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0A26A4 7F06DB74 8CCF0004 */ lw $t7, 4($a2) +/* 0A26A8 7F06DB78 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0A26AC 7F06DB7C 85F9000E */ lh $t9, 0xe($t7) +/* 0A26B0 7F06DB80 AFB90054 */ sw $t9, 0x54($sp) +/* 0A26B4 7F06DB84 85E80010 */ lh $t0, 0x10($t7) +/* 0A26B8 7F06DB88 AFA80050 */ sw $t0, 0x50($sp) +/* 0A26BC 7F06DB8C 85E90012 */ lh $t1, 0x12($t7) +/* 0A26C0 7F06DB90 AFA9004C */ sw $t1, 0x4c($sp) +/* 0A26C4 7F06DB94 8CAB000C */ lw $t3, 0xc($a1) +/* 0A26C8 7F06DB98 AFAB0048 */ sw $t3, 0x48($sp) +/* 0A26CC 7F06DB9C 8CCC0008 */ lw $t4, 8($a2) +/* 0A26D0 7F06DBA0 00003025 */ move $a2, $zero +/* 0A26D4 7F06DBA4 11800006 */ beqz $t4, .L7F06DBC0 +/* 0A26D8 7F06DBA8 AFAC001C */ sw $t4, 0x1c($sp) +/* 0A26DC 7F06DBAC 00A02025 */ move $a0, $a1 +/* 0A26E0 7F06DBB0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A26E4 7F06DBB4 01802825 */ move $a1, $t4 +/* 0A26E8 7F06DBB8 10000003 */ b .L7F06DBC8 +/* 0A26EC 7F06DBBC AFA2009C */ sw $v0, 0x9c($sp) +.L7F06DBC0: +/* 0A26F0 7F06DBC0 8C8E0000 */ lw $t6, ($a0) +/* 0A26F4 7F06DBC4 AFAE009C */ sw $t6, 0x9c($sp) +.L7F06DBC8: +/* 0A26F8 7F06DBC8 8FAF009C */ lw $t7, 0x9c($sp) +/* 0A26FC 7F06DBCC 8FA90054 */ lw $t1, 0x54($sp) +/* 0A2700 7F06DBD0 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A2704 7F06DBD4 11E00017 */ beqz $t7, .L7F06DC34 +/* 0A2708 7F06DBD8 00095980 */ sll $t3, $t1, 6 +/* 0A270C 7F06DBDC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A2710 7F06DBE0 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0A2714 7F06DBE4 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2718 7F06DBE8 27A60058 */ addiu $a2, $sp, 0x58 +/* 0A271C 7F06DBEC 8FB90054 */ lw $t9, 0x54($sp) +/* 0A2720 7F06DBF0 8FB80048 */ lw $t8, 0x48($sp) +/* 0A2724 7F06DBF4 8FA4009C */ lw $a0, 0x9c($sp) +/* 0A2728 7F06DBF8 00194180 */ sll $t0, $t9, 6 +/* 0A272C 7F06DBFC 01183021 */ addu $a2, $t0, $t8 +/* 0A2730 7F06DC00 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A2734 7F06DC04 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2738 7F06DC08 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A273C 7F06DC0C 3C028003 */ lui $v0, %hi(D_80036090) +/* 0A2740 7F06DC10 8C426090 */ lw $v0, %lo(D_80036090)($v0) +/* 0A2744 7F06DC14 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A2748 7F06DC18 8FA40054 */ lw $a0, 0x54($sp) +/* 0A274C 7F06DC1C 5040000A */ beql $v0, $zero, .L7F06DC48 +/* 0A2750 7F06DC20 8FAA00A4 */ lw $t2, 0xa4($sp) +/* 0A2754 7F06DC24 0040F809 */ jalr $v0 +/* 0A2758 7F06DC28 00C02825 */ move $a1, $a2 +/* 0A275C 7F06DC2C 10000006 */ b .L7F06DC48 +/* 0A2760 7F06DC30 8FAA00A4 */ lw $t2, 0xa4($sp) +.L7F06DC34: +/* 0A2764 7F06DC34 8FAC0048 */ lw $t4, 0x48($sp) +/* 0A2768 7F06DC38 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0A276C 7F06DC3C 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2770 7F06DC40 016C3021 */ addu $a2, $t3, $t4 +/* 0A2774 7F06DC44 8FAA00A4 */ lw $t2, 0xa4($sp) +.L7F06DC48: +/* 0A2778 7F06DC48 8FA400B4 */ lw $a0, 0xb4($sp) +/* 0A277C 7F06DC4C 3C053F00 */ lui $a1, 0x3f00 +/* 0A2780 7F06DC50 314D0100 */ andi $t5, $t2, 0x100 +/* 0A2784 7F06DC54 51A00019 */ beql $t5, $zero, .L7F06DCBC +/* 0A2788 7F06DC58 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 0A278C 7F06DC5C 0FC16F1A */ jal quaternion_7F05BC68 +/* 0A2790 7F06DC60 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A2794 7F06DC64 8FAE009C */ lw $t6, 0x9c($sp) +/* 0A2798 7F06DC68 8FB80050 */ lw $t8, 0x50($sp) +/* 0A279C 7F06DC6C 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A27A0 7F06DC70 11C0000D */ beqz $t6, .L7F06DCA8 +/* 0A27A4 7F06DC74 00184980 */ sll $t1, $t8, 6 +/* 0A27A8 7F06DC78 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A27AC 7F06DC7C 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A27B0 7F06DC80 27A60058 */ addiu $a2, $sp, 0x58 +/* 0A27B4 7F06DC84 8FAF0050 */ lw $t7, 0x50($sp) +/* 0A27B8 7F06DC88 8FA80048 */ lw $t0, 0x48($sp) +/* 0A27BC 7F06DC8C 8FA4009C */ lw $a0, 0x9c($sp) +/* 0A27C0 7F06DC90 000FC980 */ sll $t9, $t7, 6 +/* 0A27C4 7F06DC94 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A27C8 7F06DC98 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A27CC 7F06DC9C 03283021 */ addu $a2, $t9, $t0 +/* 0A27D0 7F06DCA0 10000006 */ b .L7F06DCBC +/* 0A27D4 7F06DCA4 8FAC00A4 */ lw $t4, 0xa4($sp) +.L7F06DCA8: +/* 0A27D8 7F06DCA8 8FAB0048 */ lw $t3, 0x48($sp) +/* 0A27DC 7F06DCAC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A27E0 7F06DCB0 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A27E4 7F06DCB4 012B3021 */ addu $a2, $t1, $t3 +/* 0A27E8 7F06DCB8 8FAC00A4 */ lw $t4, 0xa4($sp) +.L7F06DCBC: +/* 0A27EC 7F06DCBC 8FAD009C */ lw $t5, 0x9c($sp) +/* 0A27F0 7F06DCC0 318A0200 */ andi $t2, $t4, 0x200 +/* 0A27F4 7F06DCC4 5140004C */ beql $t2, $zero, .L7F06DDF8 +/* 0A27F8 7F06DCC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A27FC 7F06DCCC 11A00004 */ beqz $t5, .L7F06DCE0 +/* 0A2800 7F06DCD0 8FAF004C */ lw $t7, 0x4c($sp) +/* 0A2804 7F06DCD4 27AE0058 */ addiu $t6, $sp, 0x58 +/* 0A2808 7F06DCD8 10000005 */ b .L7F06DCF0 +/* 0A280C 7F06DCDC AFAE0028 */ sw $t6, 0x28($sp) +.L7F06DCE0: +/* 0A2810 7F06DCE0 8FA80048 */ lw $t0, 0x48($sp) +/* 0A2814 7F06DCE4 000FC980 */ sll $t9, $t7, 6 +/* 0A2818 7F06DCE8 0328C021 */ addu $t8, $t9, $t0 +/* 0A281C 7F06DCEC AFB80028 */ sw $t8, 0x28($sp) +.L7F06DCF0: +/* 0A2820 7F06DCF0 8FA900B4 */ lw $t1, 0xb4($sp) +/* 0A2824 7F06DCF4 0FC16B2C */ jal acosf +/* 0A2828 7F06DCF8 C52C0000 */ lwc1 $f12, ($t1) +/* 0A282C 7F06DCFC 46000080 */ add.s $f2, $f0, $f0 +/* 0A2830 7F06DD00 3C018005 */ lui $at, %hi(D_80054BDC) +/* 0A2834 7F06DD04 C4244BDC */ lwc1 $f4, %lo(D_80054BDC)($at) +/* 0A2838 7F06DD08 3C018005 */ lui $at, %hi(D_80054BE0) +/* 0A283C 7F06DD0C 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2840 7F06DD10 4604103C */ c.lt.s $f2, $f4 +/* 0A2844 7F06DD14 00000000 */ nop +/* 0A2848 7F06DD18 45000007 */ bc1f .L7F06DD38 +/* 0A284C 7F06DD1C 00000000 */ nop +/* 0A2850 7F06DD20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2854 7F06DD24 44813000 */ mtc1 $at, $f6 +/* 0A2858 7F06DD28 00000000 */ nop +/* 0A285C 7F06DD2C 46061302 */ mul.s $f12, $f2, $f6 +/* 0A2860 7F06DD30 10000009 */ b .L7F06DD58 +/* 0A2864 7F06DD34 00000000 */ nop +.L7F06DD38: +/* 0A2868 7F06DD38 C4284BE0 */ lwc1 $f8, %lo(D_80054BE0)($at) +/* 0A286C 7F06DD3C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2870 7F06DD40 44818000 */ mtc1 $at, $f16 +/* 0A2874 7F06DD44 46024281 */ sub.s $f10, $f8, $f2 +/* 0A2878 7F06DD48 3C018005 */ lui $at, %hi(D_80054BE4) +/* 0A287C 7F06DD4C C4244BE4 */ lwc1 $f4, %lo(D_80054BE4)($at) +/* 0A2880 7F06DD50 46105482 */ mul.s $f18, $f10, $f16 +/* 0A2884 7F06DD54 46122301 */ sub.s $f12, $f4, $f18 +.L7F06DD58: +/* 0A2888 7F06DD58 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A288C 7F06DD5C E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0A2890 7F06DD60 3C018005 */ lui $at, %hi(D_80054BE8) +/* 0A2894 7F06DD64 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0A2898 7F06DD68 C4264BE8 */ lwc1 $f6, %lo(D_80054BE8)($at) +/* 0A289C 7F06DD6C 3C018005 */ lui $at, %hi(D_80054BEC) +/* 0A28A0 7F06DD70 460C303E */ c.le.s $f6, $f12 +/* 0A28A4 7F06DD74 00000000 */ nop +/* 0A28A8 7F06DD78 45000003 */ bc1f .L7F06DD88 +/* 0A28AC 7F06DD7C 00000000 */ nop +/* 0A28B0 7F06DD80 C4284BEC */ lwc1 $f8, %lo(D_80054BEC)($at) +/* 0A28B4 7F06DD84 460C4301 */ sub.s $f12, $f8, $f12 +.L7F06DD88: +/* 0A28B8 7F06DD88 3C018005 */ lui $at, %hi(D_80054BF0) +/* 0A28BC 7F06DD8C C42A4BF0 */ lwc1 $f10, %lo(D_80054BF0)($at) +/* 0A28C0 7F06DD90 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A28C4 7F06DD94 460A603C */ c.lt.s $f12, $f10 +/* 0A28C8 7F06DD98 00000000 */ nop +/* 0A28CC 7F06DD9C 45020006 */ bc1fl .L7F06DDB8 +/* 0A28D0 7F06DDA0 44816000 */ mtc1 $at, $f12 +/* 0A28D4 7F06DDA4 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A28D8 7F06DDA8 00000000 */ nop +/* 0A28DC 7F06DDAC 10000003 */ b .L7F06DDBC +/* 0A28E0 7F06DDB0 46000306 */ mov.s $f12, $f0 +/* 0A28E4 7F06DDB4 44816000 */ mtc1 $at, $f12 +.L7F06DDB8: +/* 0A28E8 7F06DDB8 00000000 */ nop +.L7F06DDBC: +/* 0A28EC 7F06DDBC 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A28F0 7F06DDC0 8FA50028 */ lw $a1, 0x28($sp) +/* 0A28F4 7F06DDC4 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A28F8 7F06DDC8 0FC16266 */ jal matrix_4x4_set_position +/* 0A28FC 7F06DDCC 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2900 7F06DDD0 8FAB009C */ lw $t3, 0x9c($sp) +/* 0A2904 7F06DDD4 8FAC004C */ lw $t4, 0x4c($sp) +/* 0A2908 7F06DDD8 8FAD0048 */ lw $t5, 0x48($sp) +/* 0A290C 7F06DDDC 11600005 */ beqz $t3, .L7F06DDF4 +/* 0A2910 7F06DDE0 01602025 */ move $a0, $t3 +/* 0A2914 7F06DDE4 000C5180 */ sll $t2, $t4, 6 +/* 0A2918 7F06DDE8 014D3021 */ addu $a2, $t2, $t5 +/* 0A291C 7F06DDEC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2920 7F06DDF0 8FA50028 */ lw $a1, 0x28($sp) +.L7F06DDF4: +/* 0A2924 7F06DDF4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06DDF8: +/* 0A2928 7F06DDF8 27BD00A8 */ addiu $sp, $sp, 0xa8 +/* 0A292C 7F06DDFC 03E00008 */ jr $ra +/* 0A2930 7F06DE00 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DE04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06DE04 +/* 0A2934 7F06DE04 30CF0007 */ andi $t7, $a2, 7 +/* 0A2938 7F06DE08 24180008 */ li $t8, 8 +/* 0A293C 7F06DE0C 030F4823 */ subu $t1, $t8, $t7 +/* 0A2940 7F06DE10 30AA00FF */ andi $t2, $a1, 0xff +/* 0A2944 7F06DE14 313900FF */ andi $t9, $t1, 0xff +/* 0A2948 7F06DE18 000638C2 */ srl $a3, $a2, 3 +/* 0A294C 7F06DE1C 0159082A */ slt $at, $t2, $t9 +/* 0A2950 7F06DE20 AFA50004 */ sw $a1, 4($sp) +/* 0A2954 7F06DE24 00001825 */ move $v1, $zero +/* 0A2958 7F06DE28 314200FF */ andi $v0, $t2, 0xff +/* 0A295C 7F06DE2C 00872021 */ addu $a0, $a0, $a3 +/* 0A2960 7F06DE30 14200013 */ bnez $at, .L7F06DE80 +/* 0A2964 7F06DE34 312800FF */ andi $t0, $t1, 0xff +/* 0A2968 7F06DE38 00402825 */ move $a1, $v0 +.L7F06DE3C: +/* 0A296C 7F06DE3C 908C0000 */ lbu $t4, ($a0) +/* 0A2970 7F06DE40 240D0001 */ li $t5, 1 +/* 0A2974 7F06DE44 010D7004 */ sllv $t6, $t5, $t0 +/* 0A2978 7F06DE48 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A297C 7F06DE4C 00A81023 */ subu $v0, $a1, $t0 +/* 0A2980 7F06DE50 018FC024 */ and $t8, $t4, $t7 +/* 0A2984 7F06DE54 304500FF */ andi $a1, $v0, 0xff +/* 0A2988 7F06DE58 3319FFFF */ andi $t9, $t8, 0xffff +/* 0A298C 7F06DE5C 00B95804 */ sllv $t3, $t9, $a1 +/* 0A2990 7F06DE60 006B1825 */ or $v1, $v1, $t3 +/* 0A2994 7F06DE64 306DFFFF */ andi $t5, $v1, 0xffff +/* 0A2998 7F06DE68 28A10008 */ slti $at, $a1, 8 +/* 0A299C 7F06DE6C 00A01025 */ move $v0, $a1 +/* 0A29A0 7F06DE70 01A01825 */ move $v1, $t5 +/* 0A29A4 7F06DE74 24840001 */ addiu $a0, $a0, 1 +/* 0A29A8 7F06DE78 1020FFF0 */ beqz $at, .L7F06DE3C +/* 0A29AC 7F06DE7C 24080008 */ li $t0, 8 +.L7F06DE80: +/* 0A29B0 7F06DE80 1840000A */ blez $v0, .L7F06DEAC +/* 0A29B4 7F06DE84 01026023 */ subu $t4, $t0, $v0 +/* 0A29B8 7F06DE88 908E0000 */ lbu $t6, ($a0) +/* 0A29BC 7F06DE8C 24180001 */ li $t8, 1 +/* 0A29C0 7F06DE90 0058C804 */ sllv $t9, $t8, $v0 +/* 0A29C4 7F06DE94 272BFFFF */ addiu $t3, $t9, -1 +/* 0A29C8 7F06DE98 018E7807 */ srav $t7, $t6, $t4 +/* 0A29CC 7F06DE9C 01EB6824 */ and $t5, $t7, $t3 +/* 0A29D0 7F06DEA0 006D1825 */ or $v1, $v1, $t5 +/* 0A29D4 7F06DEA4 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A29D8 7F06DEA8 01C01825 */ move $v1, $t6 +.L7F06DEAC: +/* 0A29DC 7F06DEAC 240C0010 */ li $t4, 16 +/* 0A29E0 7F06DEB0 018AC023 */ subu $t8, $t4, $t2 +/* 0A29E4 7F06DEB4 03031804 */ sllv $v1, $v1, $t8 +/* 0A29E8 7F06DEB8 03E00008 */ jr $ra +/* 0A29EC 7F06DEBC 3062FFFF */ andi $v0, $v1, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DEC0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BF4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06DEC0 +/* 0A29F0 7F06DEC0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A29F4 7F06DEC4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A29F8 7F06DEC8 AFB00018 */ sw $s0, 0x18($sp) +/* 0A29FC 7F06DECC AFA50034 */ sw $a1, 0x34($sp) +/* 0A2A00 7F06DED0 AFA60038 */ sw $a2, 0x38($sp) +/* 0A2A04 7F06DED4 10A0000B */ beqz $a1, .L7F06DF04 +/* 0A2A08 7F06DED8 90F00006 */ lbu $s0, 6($a3) +/* 0A2A0C 7F06DEDC 8CD80004 */ lw $t8, 4($a2) +/* 0A2A10 7F06DEE0 0004C880 */ sll $t9, $a0, 2 +/* 0A2A14 7F06DEE4 0324C823 */ subu $t9, $t9, $a0 +/* 0A2A18 7F06DEE8 0019C840 */ sll $t9, $t9, 1 +/* 0A2A1C 7F06DEEC 03194021 */ addu $t0, $t8, $t9 +/* 0A2A20 7F06DEF0 95090004 */ lhu $t1, 4($t0) +/* 0A2A24 7F06DEF4 01300019 */ multu $t1, $s0 +/* 0A2A28 7F06DEF8 00003012 */ mflo $a2 +/* 0A2A2C 7F06DEFC 1000000D */ b .L7F06DF34 +/* 0A2A30 7F06DF00 8FA40040 */ lw $a0, 0x40($sp) +.L7F06DF04: +/* 0A2A34 7F06DF04 8FAA0038 */ lw $t2, 0x38($sp) +/* 0A2A38 7F06DF08 00046080 */ sll $t4, $a0, 2 +/* 0A2A3C 7F06DF0C 01846023 */ subu $t4, $t4, $a0 +/* 0A2A40 7F06DF10 8D4B0004 */ lw $t3, 4($t2) +/* 0A2A44 7F06DF14 000C6040 */ sll $t4, $t4, 1 +/* 0A2A48 7F06DF18 016C6821 */ addu $t5, $t3, $t4 +/* 0A2A4C 7F06DF1C 95AE0002 */ lhu $t6, 2($t5) +/* 0A2A50 7F06DF20 01D00019 */ multu $t6, $s0 +/* 0A2A54 7F06DF24 00003012 */ mflo $a2 +/* 0A2A58 7F06DF28 00000000 */ nop +/* 0A2A5C 7F06DF2C 00000000 */ nop +/* 0A2A60 7F06DF30 8FA40040 */ lw $a0, 0x40($sp) +.L7F06DF34: +/* 0A2A64 7F06DF34 320500FF */ andi $a1, $s0, 0xff +/* 0A2A68 7F06DF38 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2A6C 7F06DF3C AFA6002C */ sw $a2, 0x2c($sp) +/* 0A2A70 7F06DF40 8FA6002C */ lw $a2, 0x2c($sp) +/* 0A2A74 7F06DF44 A7A20024 */ sh $v0, 0x24($sp) +/* 0A2A78 7F06DF48 8FA40040 */ lw $a0, 0x40($sp) +/* 0A2A7C 7F06DF4C 00D03021 */ addu $a2, $a2, $s0 +/* 0A2A80 7F06DF50 AFA6002C */ sw $a2, 0x2c($sp) +/* 0A2A84 7F06DF54 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2A88 7F06DF58 320500FF */ andi $a1, $s0, 0xff +/* 0A2A8C 7F06DF5C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0A2A90 7F06DF60 A7A20026 */ sh $v0, 0x26($sp) +/* 0A2A94 7F06DF64 8FA40040 */ lw $a0, 0x40($sp) +/* 0A2A98 7F06DF68 320500FF */ andi $a1, $s0, 0xff +/* 0A2A9C 7F06DF6C 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2AA0 7F06DF70 00D03021 */ addu $a2, $a2, $s0 +/* 0A2AA4 7F06DF74 97AF0024 */ lhu $t7, 0x24($sp) +/* 0A2AA8 7F06DF78 3C018005 */ lui $at, %hi(D_80054BF4) +/* 0A2AAC 7F06DF7C C4204BF4 */ lwc1 $f0, %lo(D_80054BF4)($at) +/* 0A2AB0 7F06DF80 448F2000 */ mtc1 $t7, $f4 +/* 0A2AB4 7F06DF84 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A2AB8 7F06DF88 44811000 */ mtc1 $at, $f2 +/* 0A2ABC 7F06DF8C 8FA30044 */ lw $v1, 0x44($sp) +/* 0A2AC0 7F06DF90 A7A20028 */ sh $v0, 0x28($sp) +/* 0A2AC4 7F06DF94 05E10005 */ bgez $t7, .L7F06DFAC +/* 0A2AC8 7F06DF98 468021A0 */ cvt.s.w $f6, $f4 +/* 0A2ACC 7F06DF9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2AD0 7F06DFA0 44814000 */ mtc1 $at, $f8 +/* 0A2AD4 7F06DFA4 00000000 */ nop +/* 0A2AD8 7F06DFA8 46083180 */ add.s $f6, $f6, $f8 +.L7F06DFAC: +/* 0A2ADC 7F06DFAC 46003282 */ mul.s $f10, $f6, $f0 +/* 0A2AE0 7F06DFB0 46025403 */ div.s $f16, $f10, $f2 +/* 0A2AE4 7F06DFB4 E4700000 */ swc1 $f16, ($v1) +/* 0A2AE8 7F06DFB8 8FB80034 */ lw $t8, 0x34($sp) +/* 0A2AEC 7F06DFBC 97A20026 */ lhu $v0, 0x26($sp) +/* 0A2AF0 7F06DFC0 97AB0026 */ lhu $t3, 0x26($sp) +/* 0A2AF4 7F06DFC4 5300001D */ beql $t8, $zero, .L7F06E03C +/* 0A2AF8 7F06DFC8 448B5000 */ mtc1 $t3, $f10 +/* 0A2AFC 7F06DFCC 10400009 */ beqz $v0, .L7F06DFF4 +/* 0A2B00 7F06DFD0 3C190001 */ lui $t9, 1 +/* 0A2B04 7F06DFD4 03224023 */ subu $t0, $t9, $v0 +/* 0A2B08 7F06DFD8 44889000 */ mtc1 $t0, $f18 +/* 0A2B0C 7F06DFDC 00000000 */ nop +/* 0A2B10 7F06DFE0 46809120 */ cvt.s.w $f4, $f18 +/* 0A2B14 7F06DFE4 46002202 */ mul.s $f8, $f4, $f0 +/* 0A2B18 7F06DFE8 46024183 */ div.s $f6, $f8, $f2 +/* 0A2B1C 7F06DFEC 10000004 */ b .L7F06E000 +/* 0A2B20 7F06DFF0 E4660004 */ swc1 $f6, 4($v1) +.L7F06DFF4: +/* 0A2B24 7F06DFF4 44805000 */ mtc1 $zero, $f10 +/* 0A2B28 7F06DFF8 00000000 */ nop +/* 0A2B2C 7F06DFFC E46A0004 */ swc1 $f10, 4($v1) +.L7F06E000: +/* 0A2B30 7F06E000 97A20028 */ lhu $v0, 0x28($sp) +/* 0A2B34 7F06E004 3C090001 */ lui $t1, 1 +/* 0A2B38 7F06E008 10400008 */ beqz $v0, .L7F06E02C +/* 0A2B3C 7F06E00C 01225023 */ subu $t2, $t1, $v0 +/* 0A2B40 7F06E010 448A8000 */ mtc1 $t2, $f16 +/* 0A2B44 7F06E014 00000000 */ nop +/* 0A2B48 7F06E018 468084A0 */ cvt.s.w $f18, $f16 +/* 0A2B4C 7F06E01C 46009102 */ mul.s $f4, $f18, $f0 +/* 0A2B50 7F06E020 46022203 */ div.s $f8, $f4, $f2 +/* 0A2B54 7F06E024 10000019 */ b .L7F06E08C +/* 0A2B58 7F06E028 E4680008 */ swc1 $f8, 8($v1) +.L7F06E02C: +/* 0A2B5C 7F06E02C 44803000 */ mtc1 $zero, $f6 +/* 0A2B60 7F06E030 10000016 */ b .L7F06E08C +/* 0A2B64 7F06E034 E4660008 */ swc1 $f6, 8($v1) +/* 0A2B68 7F06E038 448B5000 */ mtc1 $t3, $f10 +.L7F06E03C: +/* 0A2B6C 7F06E03C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2B70 7F06E040 05610004 */ bgez $t3, .L7F06E054 +/* 0A2B74 7F06E044 46805420 */ cvt.s.w $f16, $f10 +/* 0A2B78 7F06E048 44819000 */ mtc1 $at, $f18 +/* 0A2B7C 7F06E04C 00000000 */ nop +/* 0A2B80 7F06E050 46128400 */ add.s $f16, $f16, $f18 +.L7F06E054: +/* 0A2B84 7F06E054 46008102 */ mul.s $f4, $f16, $f0 +/* 0A2B88 7F06E058 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2B8C 7F06E05C 46022203 */ div.s $f8, $f4, $f2 +/* 0A2B90 7F06E060 E4680004 */ swc1 $f8, 4($v1) +/* 0A2B94 7F06E064 97AC0028 */ lhu $t4, 0x28($sp) +/* 0A2B98 7F06E068 448C3000 */ mtc1 $t4, $f6 +/* 0A2B9C 7F06E06C 05810004 */ bgez $t4, .L7F06E080 +/* 0A2BA0 7F06E070 468032A0 */ cvt.s.w $f10, $f6 +/* 0A2BA4 7F06E074 44819000 */ mtc1 $at, $f18 +/* 0A2BA8 7F06E078 00000000 */ nop +/* 0A2BAC 7F06E07C 46125280 */ add.s $f10, $f10, $f18 +.L7F06E080: +/* 0A2BB0 7F06E080 46005402 */ mul.s $f16, $f10, $f0 +/* 0A2BB4 7F06E084 46028103 */ div.s $f4, $f16, $f2 +/* 0A2BB8 7F06E088 E4640008 */ swc1 $f4, 8($v1) +.L7F06E08C: +/* 0A2BBC 7F06E08C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A2BC0 7F06E090 8FB00018 */ lw $s0, 0x18($sp) +/* 0A2BC4 7F06E094 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A2BC8 7F06E098 03E00008 */ jr $ra +/* 0A2BCC 7F06E09C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_02_position(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_02_position +/* 0A2BD0 7F06E0A0 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0A2BD4 7F06E0A4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A2BD8 7F06E0A8 AFB00020 */ sw $s0, 0x20($sp) +/* 0A2BDC 7F06E0AC AFA40098 */ sw $a0, 0x98($sp) +/* 0A2BE0 7F06E0B0 AFA600A0 */ sw $a2, 0xa0($sp) +/* 0A2BE4 7F06E0B4 3C188003 */ lui $t8, %hi(D_80036094) +/* 0A2BE8 7F06E0B8 8CC20004 */ lw $v0, 4($a2) +/* 0A2BEC 7F06E0BC 8CAF0008 */ lw $t7, 8($a1) +/* 0A2BF0 7F06E0C0 27186094 */ addiu $t8, %lo(D_80036094) # addiu $t8, $t8, 0x6094 +/* 0A2BF4 7F06E0C4 8F010000 */ lw $at, ($t8) +/* 0A2BF8 7F06E0C8 9444000C */ lhu $a0, 0xc($v0) +/* 0A2BFC 7F06E0CC 8DE60004 */ lw $a2, 4($t7) +/* 0A2C00 7F06E0D0 27A30080 */ addiu $v1, $sp, 0x80 +/* 0A2C04 7F06E0D4 AC610000 */ sw $at, ($v1) +/* 0A2C08 7F06E0D8 8F090004 */ lw $t1, 4($t8) +/* 0A2C0C 7F06E0DC 00A08025 */ move $s0, $a1 +/* 0A2C10 7F06E0E0 AC690004 */ sw $t1, 4($v1) +/* 0A2C14 7F06E0E4 8F010008 */ lw $at, 8($t8) +/* 0A2C18 7F06E0E8 AC610008 */ sw $at, 8($v1) +/* 0A2C1C 7F06E0EC 8E0A0034 */ lw $t2, 0x34($s0) +/* 0A2C20 7F06E0F0 8E070020 */ lw $a3, 0x20($s0) +/* 0A2C24 7F06E0F4 80A50024 */ lb $a1, 0x24($a1) +/* 0A2C28 7F06E0F8 AFA30014 */ sw $v1, 0x14($sp) +/* 0A2C2C 7F06E0FC AFA40090 */ sw $a0, 0x90($sp) +/* 0A2C30 7F06E100 AFA6008C */ sw $a2, 0x8c($sp) +/* 0A2C34 7F06E104 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2C38 7F06E108 AFAA0010 */ sw $t2, 0x10($sp) +/* 0A2C3C 7F06E10C 44802000 */ mtc1 $zero, $f4 +/* 0A2C40 7F06E110 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A2C44 7F06E114 3C0B8003 */ lui $t3, %hi(D_800360A0) +/* 0A2C48 7F06E118 256B60A0 */ addiu $t3, %lo(D_800360A0) # addiu $t3, $t3, 0x60a0 +/* 0A2C4C 7F06E11C 46062032 */ c.eq.s $f4, $f6 +/* 0A2C50 7F06E120 00000000 */ nop +/* 0A2C54 7F06E124 45030015 */ bc1tl .L7F06E17C +/* 0A2C58 7F06E128 44804000 */ mtc1 $zero, $f8 +/* 0A2C5C 7F06E12C 8D610000 */ lw $at, ($t3) +/* 0A2C60 7F06E130 27A20074 */ addiu $v0, $sp, 0x74 +/* 0A2C64 7F06E134 AC410000 */ sw $at, ($v0) +/* 0A2C68 7F06E138 8D6D0004 */ lw $t5, 4($t3) +/* 0A2C6C 7F06E13C AC4D0004 */ sw $t5, 4($v0) +/* 0A2C70 7F06E140 8D610008 */ lw $at, 8($t3) +/* 0A2C74 7F06E144 AC410008 */ sw $at, 8($v0) +/* 0A2C78 7F06E148 8E0E0038 */ lw $t6, 0x38($s0) +/* 0A2C7C 7F06E14C 8E070020 */ lw $a3, 0x20($s0) +/* 0A2C80 7F06E150 82050024 */ lb $a1, 0x24($s0) +/* 0A2C84 7F06E154 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2C88 7F06E158 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2C8C 7F06E15C 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2C90 7F06E160 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2C94 7F06E164 AFAE0010 */ sw $t6, 0x10($sp) +/* 0A2C98 7F06E168 27A40080 */ addiu $a0, $sp, 0x80 +/* 0A2C9C 7F06E16C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0A2CA0 7F06E170 0FC1B458 */ jal sub_GAME_7F06D160 +/* 0A2CA4 7F06E174 8E06002C */ lw $a2, 0x2c($s0) +/* 0A2CA8 7F06E178 44804000 */ mtc1 $zero, $f8 +.L7F06E17C: +/* 0A2CAC 7F06E17C C60A0084 */ lwc1 $f10, 0x84($s0) +/* 0A2CB0 7F06E180 3C0F8003 */ lui $t7, %hi(D_800360AC) +/* 0A2CB4 7F06E184 25EF60AC */ addiu $t7, %lo(D_800360AC) # addiu $t7, $t7, 0x60ac +/* 0A2CB8 7F06E188 460A4032 */ c.eq.s $f8, $f10 +/* 0A2CBC 7F06E18C 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2CC0 7F06E190 02002825 */ move $a1, $s0 +/* 0A2CC4 7F06E194 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0A2CC8 7F06E198 45010040 */ bc1t .L7F06E29C +/* 0A2CCC 7F06E19C 00000000 */ nop +/* 0A2CD0 7F06E1A0 8DE10000 */ lw $at, ($t7) +/* 0A2CD4 7F06E1A4 27A20068 */ addiu $v0, $sp, 0x68 +/* 0A2CD8 7F06E1A8 AC410000 */ sw $at, ($v0) +/* 0A2CDC 7F06E1AC 8DF90004 */ lw $t9, 4($t7) +/* 0A2CE0 7F06E1B0 AC590004 */ sw $t9, 4($v0) +/* 0A2CE4 7F06E1B4 8DE10008 */ lw $at, 8($t7) +/* 0A2CE8 7F06E1B8 AC410008 */ sw $at, 8($v0) +/* 0A2CEC 7F06E1BC 8E180064 */ lw $t8, 0x64($s0) +/* 0A2CF0 7F06E1C0 8E070054 */ lw $a3, 0x54($s0) +/* 0A2CF4 7F06E1C4 82050025 */ lb $a1, 0x25($s0) +/* 0A2CF8 7F06E1C8 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2CFC 7F06E1CC 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2D00 7F06E1D0 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2D04 7F06E1D4 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2D08 7F06E1D8 AFB80010 */ sw $t8, 0x10($sp) +/* 0A2D0C 7F06E1DC 44808000 */ mtc1 $zero, $f16 +/* 0A2D10 7F06E1E0 C612005C */ lwc1 $f18, 0x5c($s0) +/* 0A2D14 7F06E1E4 3C098003 */ lui $t1, %hi(D_800360B8) +/* 0A2D18 7F06E1E8 252960B8 */ addiu $t1, %lo(D_800360B8) # addiu $t1, $t1, 0x60b8 +/* 0A2D1C 7F06E1EC 46128032 */ c.eq.s $f16, $f18 +/* 0A2D20 7F06E1F0 00000000 */ nop +/* 0A2D24 7F06E1F4 45030015 */ bc1tl .L7F06E24C +/* 0A2D28 7F06E1F8 27A40080 */ addiu $a0, $sp, 0x80 +/* 0A2D2C 7F06E1FC 8D210000 */ lw $at, ($t1) +/* 0A2D30 7F06E200 27A2002C */ addiu $v0, $sp, 0x2c +/* 0A2D34 7F06E204 AC410000 */ sw $at, ($v0) +/* 0A2D38 7F06E208 8D2C0004 */ lw $t4, 4($t1) +/* 0A2D3C 7F06E20C AC4C0004 */ sw $t4, 4($v0) +/* 0A2D40 7F06E210 8D210008 */ lw $at, 8($t1) +/* 0A2D44 7F06E214 AC410008 */ sw $at, 8($v0) +/* 0A2D48 7F06E218 8E0B0068 */ lw $t3, 0x68($s0) +/* 0A2D4C 7F06E21C 8E070054 */ lw $a3, 0x54($s0) +/* 0A2D50 7F06E220 82050025 */ lb $a1, 0x25($s0) +/* 0A2D54 7F06E224 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2D58 7F06E228 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2D5C 7F06E22C 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2D60 7F06E230 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2D64 7F06E234 AFAB0010 */ sw $t3, 0x10($sp) +/* 0A2D68 7F06E238 27A40068 */ addiu $a0, $sp, 0x68 +/* 0A2D6C 7F06E23C 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A2D70 7F06E240 0FC1B458 */ jal sub_GAME_7F06D160 +/* 0A2D74 7F06E244 8E06005C */ lw $a2, 0x5c($s0) +/* 0A2D78 7F06E248 27A40080 */ addiu $a0, $sp, 0x80 +.L7F06E24C: +/* 0A2D7C 7F06E24C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A2D80 7F06E250 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A2D84 7F06E254 27A40068 */ addiu $a0, $sp, 0x68 +/* 0A2D88 7F06E258 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A2D8C 7F06E25C 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2D90 7F06E260 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A2D94 7F06E264 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 0A2D98 7F06E268 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2D9C 7F06E26C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A2DA0 7F06E270 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2DA4 7F06E274 8E060084 */ lw $a2, 0x84($s0) +/* 0A2DA8 7F06E278 0FC16E82 */ jal quaternion_slerp +/* 0A2DAC 7F06E27C 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A2DB0 7F06E280 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2DB4 7F06E284 02002825 */ move $a1, $s0 +/* 0A2DB8 7F06E288 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0A2DBC 7F06E28C 0FC1B6D7 */ jal sub_GAME_7F06DB5C +/* 0A2DC0 7F06E290 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A2DC4 7F06E294 10000004 */ b .L7F06E2A8 +/* 0A2DC8 7F06E298 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06E29C: +/* 0A2DCC 7F06E29C 0FC1B62C */ jal sub_GAME_7F06D8B0 +/* 0A2DD0 7F06E2A0 27A70080 */ addiu $a3, $sp, 0x80 +/* 0A2DD4 7F06E2A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06E2A8: +/* 0A2DD8 7F06E2A8 8FB00020 */ lw $s0, 0x20($sp) +/* 0A2DDC 7F06E2AC 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0A2DE0 7F06E2B0 03E00008 */ jr $ra +/* 0A2DE4 7F06E2B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06E2B8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BF8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BFC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C04 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054C08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C0C +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06E2B8 +/* 0A2DE8 7F06E2B8 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0A2DEC 7F06E2BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A2DF0 7F06E2C0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0A2DF4 7F06E2C4 AFA500A4 */ sw $a1, 0xa4($sp) +/* 0A2DF8 7F06E2C8 94CE0000 */ lhu $t6, ($a2) +/* 0A2DFC 7F06E2CC 4487A000 */ mtc1 $a3, $f20 +/* 0A2E00 7F06E2D0 AFAE009C */ sw $t6, 0x9c($sp) +/* 0A2E04 7F06E2D4 8CCF0004 */ lw $t7, 4($a2) +/* 0A2E08 7F06E2D8 AFAF0098 */ sw $t7, 0x98($sp) +/* 0A2E0C 7F06E2DC 85F90010 */ lh $t9, 0x10($t7) +/* 0A2E10 7F06E2E0 85E3000E */ lh $v1, 0xe($t7) +/* 0A2E14 7F06E2E4 AFB90048 */ sw $t9, 0x48($sp) +/* 0A2E18 7F06E2E8 85E80012 */ lh $t0, 0x12($t7) +/* 0A2E1C 7F06E2EC AFA80044 */ sw $t0, 0x44($sp) +/* 0A2E20 7F06E2F0 8CAA000C */ lw $t2, 0xc($a1) +/* 0A2E24 7F06E2F4 AFAA0040 */ sw $t2, 0x40($sp) +/* 0A2E28 7F06E2F8 8CC70008 */ lw $a3, 8($a2) +/* 0A2E2C 7F06E2FC 00003025 */ move $a2, $zero +/* 0A2E30 7F06E300 50E00009 */ beql $a3, $zero, .L7F06E328 +/* 0A2E34 7F06E304 8C8B0000 */ lw $t3, ($a0) +/* 0A2E38 7F06E308 00A02025 */ move $a0, $a1 +/* 0A2E3C 7F06E30C 00E02825 */ move $a1, $a3 +/* 0A2E40 7F06E310 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A2E44 7F06E314 AFA3004C */ sw $v1, 0x4c($sp) +/* 0A2E48 7F06E318 8FA3004C */ lw $v1, 0x4c($sp) +/* 0A2E4C 7F06E31C 10000003 */ b .L7F06E32C +/* 0A2E50 7F06E320 AFA20094 */ sw $v0, 0x94($sp) +/* 0A2E54 7F06E324 8C8B0000 */ lw $t3, ($a0) +.L7F06E328: +/* 0A2E58 7F06E328 AFAB0094 */ sw $t3, 0x94($sp) +.L7F06E32C: +/* 0A2E5C 7F06E32C 8FAC0094 */ lw $t4, 0x94($sp) +/* 0A2E60 7F06E330 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2E64 7F06E334 00037980 */ sll $t7, $v1, 6 +/* 0A2E68 7F06E338 1180000F */ beqz $t4, .L7F06E378 +/* 0A2E6C 7F06E33C 8FB90040 */ lw $t9, 0x40($sp) +/* 0A2E70 7F06E340 4405A000 */ mfc1 $a1, $f20 +/* 0A2E74 7F06E344 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2E78 7F06E348 27A60050 */ addiu $a2, $sp, 0x50 +/* 0A2E7C 7F06E34C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2E80 7F06E350 AFA3004C */ sw $v1, 0x4c($sp) +/* 0A2E84 7F06E354 8FA3004C */ lw $v1, 0x4c($sp) +/* 0A2E88 7F06E358 8FAE0040 */ lw $t6, 0x40($sp) +/* 0A2E8C 7F06E35C 8FA40094 */ lw $a0, 0x94($sp) +/* 0A2E90 7F06E360 00036980 */ sll $t5, $v1, 6 +/* 0A2E94 7F06E364 27A50050 */ addiu $a1, $sp, 0x50 +/* 0A2E98 7F06E368 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2E9C 7F06E36C 01AE3021 */ addu $a2, $t5, $t6 +/* 0A2EA0 7F06E370 10000005 */ b .L7F06E388 +/* 0A2EA4 7F06E374 8FB8009C */ lw $t8, 0x9c($sp) +.L7F06E378: +/* 0A2EA8 7F06E378 4405A000 */ mfc1 $a1, $f20 +/* 0A2EAC 7F06E37C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2EB0 7F06E380 01F93021 */ addu $a2, $t7, $t9 +/* 0A2EB4 7F06E384 8FB8009C */ lw $t8, 0x9c($sp) +.L7F06E388: +/* 0A2EB8 7F06E388 3C018005 */ lui $at, %hi(D_80054BF8) +/* 0A2EBC 7F06E38C 8FAA0094 */ lw $t2, 0x94($sp) +/* 0A2EC0 7F06E390 33020100 */ andi $v0, $t8, 0x100 +/* 0A2EC4 7F06E394 14400003 */ bnez $v0, .L7F06E3A4 +/* 0A2EC8 7F06E398 33030200 */ andi $v1, $t8, 0x200 +/* 0A2ECC 7F06E39C 10600017 */ beqz $v1, .L7F06E3FC +/* 0A2ED0 7F06E3A0 00000000 */ nop +.L7F06E3A4: +/* 0A2ED4 7F06E3A4 C4244BF8 */ lwc1 $f4, %lo(D_80054BF8)($at) +/* 0A2ED8 7F06E3A8 8FA3009C */ lw $v1, 0x9c($sp) +/* 0A2EDC 7F06E3AC 3C018005 */ lui $at, %hi(D_80054BFC) +/* 0A2EE0 7F06E3B0 4604A03C */ c.lt.s $f20, $f4 +/* 0A2EE4 7F06E3B4 30680200 */ andi $t0, $v1, 0x200 +/* 0A2EE8 7F06E3B8 01001825 */ move $v1, $t0 +/* 0A2EEC 7F06E3BC 45000007 */ bc1f .L7F06E3DC +/* 0A2EF0 7F06E3C0 00000000 */ nop +/* 0A2EF4 7F06E3C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2EF8 7F06E3C8 44813000 */ mtc1 $at, $f6 +/* 0A2EFC 7F06E3CC 00000000 */ nop +/* 0A2F00 7F06E3D0 4606A502 */ mul.s $f20, $f20, $f6 +/* 0A2F04 7F06E3D4 10000009 */ b .L7F06E3FC +/* 0A2F08 7F06E3D8 00000000 */ nop +.L7F06E3DC: +/* 0A2F0C 7F06E3DC C4284BFC */ lwc1 $f8, %lo(D_80054BFC)($at) +/* 0A2F10 7F06E3E0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2F14 7F06E3E4 44818000 */ mtc1 $at, $f16 +/* 0A2F18 7F06E3E8 46144281 */ sub.s $f10, $f8, $f20 +/* 0A2F1C 7F06E3EC 3C018005 */ lui $at, %hi(D_80054C00) +/* 0A2F20 7F06E3F0 C4244C00 */ lwc1 $f4, %lo(D_80054C00)($at) +/* 0A2F24 7F06E3F4 46105482 */ mul.s $f18, $f10, $f16 +/* 0A2F28 7F06E3F8 46122501 */ sub.s $f20, $f4, $f18 +.L7F06E3FC: +/* 0A2F2C 7F06E3FC 10400019 */ beqz $v0, .L7F06E464 +/* 0A2F30 7F06E400 00000000 */ nop +/* 0A2F34 7F06E404 1140000F */ beqz $t2, .L7F06E444 +/* 0A2F38 7F06E408 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2F3C 7F06E40C 4405A000 */ mfc1 $a1, $f20 +/* 0A2F40 7F06E410 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2F44 7F06E414 27A60050 */ addiu $a2, $sp, 0x50 +/* 0A2F48 7F06E418 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2F4C 7F06E41C AFA30024 */ sw $v1, 0x24($sp) +/* 0A2F50 7F06E420 8FA90048 */ lw $t1, 0x48($sp) +/* 0A2F54 7F06E424 8FAC0040 */ lw $t4, 0x40($sp) +/* 0A2F58 7F06E428 8FA40094 */ lw $a0, 0x94($sp) +/* 0A2F5C 7F06E42C 00095980 */ sll $t3, $t1, 6 +/* 0A2F60 7F06E430 27A50050 */ addiu $a1, $sp, 0x50 +/* 0A2F64 7F06E434 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2F68 7F06E438 016C3021 */ addu $a2, $t3, $t4 +/* 0A2F6C 7F06E43C 10000009 */ b .L7F06E464 +/* 0A2F70 7F06E440 8FA30024 */ lw $v1, 0x24($sp) +.L7F06E444: +/* 0A2F74 7F06E444 8FAD0048 */ lw $t5, 0x48($sp) +/* 0A2F78 7F06E448 8FAF0040 */ lw $t7, 0x40($sp) +/* 0A2F7C 7F06E44C 4405A000 */ mfc1 $a1, $f20 +/* 0A2F80 7F06E450 000D7180 */ sll $t6, $t5, 6 +/* 0A2F84 7F06E454 AFA30024 */ sw $v1, 0x24($sp) +/* 0A2F88 7F06E458 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2F8C 7F06E45C 01CF3021 */ addu $a2, $t6, $t7 +/* 0A2F90 7F06E460 8FA30024 */ lw $v1, 0x24($sp) +.L7F06E464: +/* 0A2F94 7F06E464 10600031 */ beqz $v1, .L7F06E52C +/* 0A2F98 7F06E468 8FB90094 */ lw $t9, 0x94($sp) +/* 0A2F9C 7F06E46C 13200004 */ beqz $t9, .L7F06E480 +/* 0A2FA0 7F06E470 4600A306 */ mov.s $f12, $f20 +/* 0A2FA4 7F06E474 27B80050 */ addiu $t8, $sp, 0x50 +/* 0A2FA8 7F06E478 10000006 */ b .L7F06E494 +/* 0A2FAC 7F06E47C AFB80030 */ sw $t8, 0x30($sp) +.L7F06E480: +/* 0A2FB0 7F06E480 8FA80044 */ lw $t0, 0x44($sp) +/* 0A2FB4 7F06E484 8FA90040 */ lw $t1, 0x40($sp) +/* 0A2FB8 7F06E488 00085180 */ sll $t2, $t0, 6 +/* 0A2FBC 7F06E48C 01495821 */ addu $t3, $t2, $t1 +/* 0A2FC0 7F06E490 AFAB0030 */ sw $t3, 0x30($sp) +.L7F06E494: +/* 0A2FC4 7F06E494 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A2FC8 7F06E498 8FA50030 */ lw $a1, 0x30($sp) +/* 0A2FCC 7F06E49C 3C018005 */ lui $at, %hi(D_80054C04) +/* 0A2FD0 7F06E4A0 C4264C04 */ lwc1 $f6, %lo(D_80054C04)($at) +/* 0A2FD4 7F06E4A4 3C018005 */ lui $at, %hi(D_80054C08) +/* 0A2FD8 7F06E4A8 4614303E */ c.le.s $f6, $f20 +/* 0A2FDC 7F06E4AC 00000000 */ nop +/* 0A2FE0 7F06E4B0 45000003 */ bc1f .L7F06E4C0 +/* 0A2FE4 7F06E4B4 00000000 */ nop +/* 0A2FE8 7F06E4B8 C4284C08 */ lwc1 $f8, %lo(D_80054C08)($at) +/* 0A2FEC 7F06E4BC 46144501 */ sub.s $f20, $f8, $f20 +.L7F06E4C0: +/* 0A2FF0 7F06E4C0 3C018005 */ lui $at, %hi(D_80054C0C) +/* 0A2FF4 7F06E4C4 C42A4C0C */ lwc1 $f10, %lo(D_80054C0C)($at) +/* 0A2FF8 7F06E4C8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A2FFC 7F06E4CC 460AA03C */ c.lt.s $f20, $f10 +/* 0A3000 7F06E4D0 00000000 */ nop +/* 0A3004 7F06E4D4 45020006 */ bc1fl .L7F06E4F0 +/* 0A3008 7F06E4D8 44816000 */ mtc1 $at, $f12 +/* 0A300C 7F06E4DC 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A3010 7F06E4E0 4600A306 */ mov.s $f12, $f20 +/* 0A3014 7F06E4E4 10000003 */ b .L7F06E4F4 +/* 0A3018 7F06E4E8 46000306 */ mov.s $f12, $f0 +/* 0A301C 7F06E4EC 44816000 */ mtc1 $at, $f12 +.L7F06E4F0: +/* 0A3020 7F06E4F0 00000000 */ nop +.L7F06E4F4: +/* 0A3024 7F06E4F4 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A3028 7F06E4F8 8FA50030 */ lw $a1, 0x30($sp) +/* 0A302C 7F06E4FC 8FA40098 */ lw $a0, 0x98($sp) +/* 0A3030 7F06E500 0FC16266 */ jal matrix_4x4_set_position +/* 0A3034 7F06E504 8FA50030 */ lw $a1, 0x30($sp) +/* 0A3038 7F06E508 8FAC0094 */ lw $t4, 0x94($sp) +/* 0A303C 7F06E50C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0A3040 7F06E510 8FAF0040 */ lw $t7, 0x40($sp) +/* 0A3044 7F06E514 11800005 */ beqz $t4, .L7F06E52C +/* 0A3048 7F06E518 01802025 */ move $a0, $t4 +/* 0A304C 7F06E51C 000D7180 */ sll $t6, $t5, 6 +/* 0A3050 7F06E520 01CF3021 */ addu $a2, $t6, $t7 +/* 0A3054 7F06E524 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A3058 7F06E528 8FA50030 */ lw $a1, 0x30($sp) +.L7F06E52C: +/* 0A305C 7F06E52C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3060 7F06E530 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0A3064 7F06E534 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0A3068 7F06E538 03E00008 */ jr $ra +/* 0A306C 7F06E53C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06E540(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054C10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C14 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06E540 +/* 0A3070 7F06E540 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A3074 7F06E544 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A3078 7F06E548 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A307C 7F06E54C AFA60030 */ sw $a2, 0x30($sp) +/* 0A3080 7F06E550 90EE0006 */ lbu $t6, 6($a3) +/* 0A3084 7F06E554 44801000 */ mtc1 $zero, $f2 +/* 0A3088 7F06E558 10A0000C */ beqz $a1, .L7F06E58C +/* 0A308C 7F06E55C A3AE001F */ sb $t6, 0x1f($sp) +/* 0A3090 7F06E560 8CD90004 */ lw $t9, 4($a2) +/* 0A3094 7F06E564 00044080 */ sll $t0, $a0, 2 +/* 0A3098 7F06E568 01044023 */ subu $t0, $t0, $a0 +/* 0A309C 7F06E56C 00084040 */ sll $t0, $t0, 1 +/* 0A30A0 7F06E570 03284821 */ addu $t1, $t9, $t0 +/* 0A30A4 7F06E574 952A0004 */ lhu $t2, 4($t1) +/* 0A30A8 7F06E578 31CB00FF */ andi $t3, $t6, 0xff +/* 0A30AC 7F06E57C 014B0019 */ multu $t2, $t3 +/* 0A30B0 7F06E580 00003012 */ mflo $a2 +/* 0A30B4 7F06E584 1000000E */ b .L7F06E5C0 +/* 0A30B8 7F06E588 8FA40038 */ lw $a0, 0x38($sp) +.L7F06E58C: +/* 0A30BC 7F06E58C 8FAC0030 */ lw $t4, 0x30($sp) +/* 0A30C0 7F06E590 00047080 */ sll $t6, $a0, 2 +/* 0A30C4 7F06E594 01C47023 */ subu $t6, $t6, $a0 +/* 0A30C8 7F06E598 8D8D0004 */ lw $t5, 4($t4) +/* 0A30CC 7F06E59C 000E7040 */ sll $t6, $t6, 1 +/* 0A30D0 7F06E5A0 93B9001F */ lbu $t9, 0x1f($sp) +/* 0A30D4 7F06E5A4 01AE7821 */ addu $t7, $t5, $t6 +/* 0A30D8 7F06E5A8 95F80002 */ lhu $t8, 2($t7) +/* 0A30DC 7F06E5AC 03190019 */ multu $t8, $t9 +/* 0A30E0 7F06E5B0 00003012 */ mflo $a2 +/* 0A30E4 7F06E5B4 00000000 */ nop +/* 0A30E8 7F06E5B8 00000000 */ nop +/* 0A30EC 7F06E5BC 8FA40038 */ lw $a0, 0x38($sp) +.L7F06E5C0: +/* 0A30F0 7F06E5C0 93A5001F */ lbu $a1, 0x1f($sp) +/* 0A30F4 7F06E5C4 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A30F8 7F06E5C8 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0A30FC 7F06E5CC 8FA8002C */ lw $t0, 0x2c($sp) +/* 0A3100 7F06E5D0 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 0A3104 7F06E5D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A3108 7F06E5D8 1100000D */ beqz $t0, .L7F06E610 +/* 0A310C 7F06E5DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0A3110 7F06E5E0 10400018 */ beqz $v0, .L7F06E644 +/* 0A3114 7F06E5E4 3C090001 */ lui $t1, 1 +/* 0A3118 7F06E5E8 01225023 */ subu $t2, $t1, $v0 +/* 0A311C 7F06E5EC 448A2000 */ mtc1 $t2, $f4 +/* 0A3120 7F06E5F0 3C018005 */ lui $at, %hi(D_80054C10) +/* 0A3124 7F06E5F4 C4284C10 */ lwc1 $f8, %lo(D_80054C10)($at) +/* 0A3128 7F06E5F8 468021A0 */ cvt.s.w $f6, $f4 +/* 0A312C 7F06E5FC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A3130 7F06E600 44818000 */ mtc1 $at, $f16 +/* 0A3134 7F06E604 46083282 */ mul.s $f10, $f6, $f8 +/* 0A3138 7F06E608 1000000E */ b .L7F06E644 +/* 0A313C 7F06E60C 46105083 */ div.s $f2, $f10, $f16 +.L7F06E610: +/* 0A3140 7F06E610 44829000 */ mtc1 $v0, $f18 +/* 0A3144 7F06E614 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A3148 7F06E618 04410004 */ bgez $v0, .L7F06E62C +/* 0A314C 7F06E61C 46809120 */ cvt.s.w $f4, $f18 +/* 0A3150 7F06E620 44813000 */ mtc1 $at, $f6 +/* 0A3154 7F06E624 00000000 */ nop +/* 0A3158 7F06E628 46062100 */ add.s $f4, $f4, $f6 +.L7F06E62C: +/* 0A315C 7F06E62C 3C018005 */ lui $at, %hi(D_80054C14) +/* 0A3160 7F06E630 C4284C14 */ lwc1 $f8, %lo(D_80054C14)($at) +/* 0A3164 7F06E634 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A3168 7F06E638 44818000 */ mtc1 $at, $f16 +/* 0A316C 7F06E63C 46082282 */ mul.s $f10, $f4, $f8 +/* 0A3170 7F06E640 46105083 */ div.s $f2, $f10, $f16 +.L7F06E644: +/* 0A3174 7F06E644 03E00008 */ jr $ra +/* 0A3178 7F06E648 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void process_03_unknown(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_03_unknown +/* 0A317C 7F06E64C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0A3180 7F06E650 AFB00028 */ sw $s0, 0x28($sp) +/* 0A3184 7F06E654 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A3188 7F06E658 AFB20030 */ sw $s2, 0x30($sp) +/* 0A318C 7F06E65C AFB1002C */ sw $s1, 0x2c($sp) +/* 0A3190 7F06E660 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0A3194 7F06E664 AFA40050 */ sw $a0, 0x50($sp) +/* 0A3198 7F06E668 AFA60058 */ sw $a2, 0x58($sp) +/* 0A319C 7F06E66C 8CC20004 */ lw $v0, 4($a2) +/* 0A31A0 7F06E670 8CAF0008 */ lw $t7, 8($a1) +/* 0A31A4 7F06E674 00A08025 */ move $s0, $a1 +/* 0A31A8 7F06E678 8E180034 */ lw $t8, 0x34($s0) +/* 0A31AC 7F06E67C 9451000C */ lhu $s1, 0xc($v0) +/* 0A31B0 7F06E680 8DF20004 */ lw $s2, 4($t7) +/* 0A31B4 7F06E684 8E070020 */ lw $a3, 0x20($s0) +/* 0A31B8 7F06E688 80A50024 */ lb $a1, 0x24($a1) +/* 0A31BC 7F06E68C AFB80010 */ sw $t8, 0x10($sp) +/* 0A31C0 7F06E690 02202025 */ move $a0, $s1 +/* 0A31C4 7F06E694 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A31C8 7F06E698 02403025 */ move $a2, $s2 +/* 0A31CC 7F06E69C 44802000 */ mtc1 $zero, $f4 +/* 0A31D0 7F06E6A0 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A31D4 7F06E6A4 46000506 */ mov.s $f20, $f0 +/* 0A31D8 7F06E6A8 02202025 */ move $a0, $s1 +/* 0A31DC 7F06E6AC 46062032 */ c.eq.s $f4, $f6 +/* 0A31E0 7F06E6B0 02403025 */ move $a2, $s2 +/* 0A31E4 7F06E6B4 4503000C */ bc1tl .L7F06E6E8 +/* 0A31E8 7F06E6B8 44804000 */ mtc1 $zero, $f8 +/* 0A31EC 7F06E6BC 8E190038 */ lw $t9, 0x38($s0) +/* 0A31F0 7F06E6C0 82050024 */ lb $a1, 0x24($s0) +/* 0A31F4 7F06E6C4 8E070020 */ lw $a3, 0x20($s0) +/* 0A31F8 7F06E6C8 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A31FC 7F06E6CC AFB90010 */ sw $t9, 0x10($sp) +/* 0A3200 7F06E6D0 4600A306 */ mov.s $f12, $f20 +/* 0A3204 7F06E6D4 46000386 */ mov.s $f14, $f0 +/* 0A3208 7F06E6D8 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A320C 7F06E6DC 8E06002C */ lw $a2, 0x2c($s0) +/* 0A3210 7F06E6E0 46000506 */ mov.s $f20, $f0 +/* 0A3214 7F06E6E4 44804000 */ mtc1 $zero, $f8 +.L7F06E6E8: +/* 0A3218 7F06E6E8 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 0A321C 7F06E6EC 02202025 */ move $a0, $s1 +/* 0A3220 7F06E6F0 02403025 */ move $a2, $s2 +/* 0A3224 7F06E6F4 460A4032 */ c.eq.s $f8, $f10 +/* 0A3228 7F06E6F8 00000000 */ nop +/* 0A322C 7F06E6FC 4503001F */ bc1tl .L7F06E77C +/* 0A3230 7F06E700 4407A000 */ mfc1 $a3, $f20 +/* 0A3234 7F06E704 8E080064 */ lw $t0, 0x64($s0) +/* 0A3238 7F06E708 82050025 */ lb $a1, 0x25($s0) +/* 0A323C 7F06E70C 8E070054 */ lw $a3, 0x54($s0) +/* 0A3240 7F06E710 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A3244 7F06E714 AFA80010 */ sw $t0, 0x10($sp) +/* 0A3248 7F06E718 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0A324C 7F06E71C C612005C */ lwc1 $f18, 0x5c($s0) +/* 0A3250 7F06E720 44808000 */ mtc1 $zero, $f16 +/* 0A3254 7F06E724 02202025 */ move $a0, $s1 +/* 0A3258 7F06E728 02403025 */ move $a2, $s2 +/* 0A325C 7F06E72C 46128032 */ c.eq.s $f16, $f18 +/* 0A3260 7F06E730 00000000 */ nop +/* 0A3264 7F06E734 4503000C */ bc1tl .L7F06E768 +/* 0A3268 7F06E738 4600A306 */ mov.s $f12, $f20 +/* 0A326C 7F06E73C 8E090068 */ lw $t1, 0x68($s0) +/* 0A3270 7F06E740 82050025 */ lb $a1, 0x25($s0) +/* 0A3274 7F06E744 8E070054 */ lw $a3, 0x54($s0) +/* 0A3278 7F06E748 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A327C 7F06E74C AFA90010 */ sw $t1, 0x10($sp) +/* 0A3280 7F06E750 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0A3284 7F06E754 46000386 */ mov.s $f14, $f0 +/* 0A3288 7F06E758 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A328C 7F06E75C 8E06005C */ lw $a2, 0x5c($s0) +/* 0A3290 7F06E760 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0A3294 7F06E764 4600A306 */ mov.s $f12, $f20 +.L7F06E768: +/* 0A3298 7F06E768 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0A329C 7F06E76C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A32A0 7F06E770 8E060084 */ lw $a2, 0x84($s0) +/* 0A32A4 7F06E774 46000506 */ mov.s $f20, $f0 +/* 0A32A8 7F06E778 4407A000 */ mfc1 $a3, $f20 +.L7F06E77C: +/* 0A32AC 7F06E77C 8FA40050 */ lw $a0, 0x50($sp) +/* 0A32B0 7F06E780 02002825 */ move $a1, $s0 +/* 0A32B4 7F06E784 0FC1B8AE */ jal sub_GAME_7F06E2B8 +/* 0A32B8 7F06E788 8FA60058 */ lw $a2, 0x58($sp) +/* 0A32BC 7F06E78C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A32C0 7F06E790 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0A32C4 7F06E794 8FB00028 */ lw $s0, 0x28($sp) +/* 0A32C8 7F06E798 8FB1002C */ lw $s1, 0x2c($sp) +/* 0A32CC 7F06E79C 8FB20030 */ lw $s2, 0x30($sp) +/* 0A32D0 7F06E7A0 03E00008 */ jr $ra +/* 0A32D4 7F06E7A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void process_15_subposition(void) { + +} +#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(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void process_12_handle_switch(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void process_17_pointer_to_head(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EA54(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EB10(void) { + +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void process_07_unknown(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EEA4(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EFC4(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F0D0(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void instcalcmatrices(void) { + +} +#else +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 +) +#endif + + + + + +#ifdef NONMATCHING +void subcalcmatrices(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subcalcmatrices +/* 0A3E28 7F06F2F8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A3E2C 7F06F2FC AFB00018 */ sw $s0, 0x18($sp) +/* 0A3E30 7F06F300 00A08025 */ move $s0, $a1 +/* 0A3E34 7F06F304 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3E38 7F06F308 14A00006 */ bnez $a1, .L7F06F324 +/* 0A3E3C 7F06F30C AFA40020 */ sw $a0, 0x20($sp) +/* 0A3E40 7F06F310 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoObjanim) +/* 0A3E44 7F06F314 0C0033D1 */ jal osSyncPrintf +/* 0A3E48 7F06F318 248448F0 */ addiu $a0, %lo(aSubcalcmatricesNoObjanim) # addiu $a0, $a0, 0x48f0 +/* 0A3E4C 7F06F31C 0FC1B11B */ jal return_null +/* 0A3E50 7F06F320 00000000 */ nop +.L7F06F324: +/* 0A3E54 7F06F324 8FAE0020 */ lw $t6, 0x20($sp) +/* 0A3E58 7F06F328 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoBasemtx) +/* 0A3E5C 7F06F32C 8DCF0000 */ lw $t7, ($t6) +/* 0A3E60 7F06F330 55E00006 */ bnezl $t7, .L7F06F34C +/* 0A3E64 7F06F334 8FB80020 */ lw $t8, 0x20($sp) +/* 0A3E68 7F06F338 0C0033D1 */ jal osSyncPrintf +/* 0A3E6C 7F06F33C 24844910 */ addiu $a0, %lo(aSubcalcmatricesNoBasemtx) # addiu $a0, $a0, 0x4910 +/* 0A3E70 7F06F340 0FC1B11B */ jal return_null +/* 0A3E74 7F06F344 00000000 */ nop +/* 0A3E78 7F06F348 8FB80020 */ lw $t8, 0x20($sp) +.L7F06F34C: +/* 0A3E7C 7F06F34C 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoMtxlist) +/* 0A3E80 7F06F350 8F190010 */ lw $t9, 0x10($t8) +/* 0A3E84 7F06F354 57200006 */ bnezl $t9, .L7F06F370 +/* 0A3E88 7F06F358 8E080020 */ lw $t0, 0x20($s0) +/* 0A3E8C 7F06F35C 0C0033D1 */ jal osSyncPrintf +/* 0A3E90 7F06F360 24844930 */ addiu $a0, %lo(aSubcalcmatricesNoMtxlist) # addiu $a0, $a0, 0x4930 +/* 0A3E94 7F06F364 0FC1B11B */ jal return_null +/* 0A3E98 7F06F368 00000000 */ nop +/* 0A3E9C 7F06F36C 8E080020 */ lw $t0, 0x20($s0) +.L7F06F370: +/* 0A3EA0 7F06F370 51000087 */ beql $t0, $zero, .L7F06F590 +/* 0A3EA4 7F06F374 8FA40020 */ lw $a0, 0x20($sp) +/* 0A3EA8 7F06F378 8E090018 */ lw $t1, 0x18($s0) +/* 0A3EAC 7F06F37C 5120000A */ beql $t1, $zero, .L7F06F3A8 +/* 0A3EB0 7F06F380 86050030 */ lh $a1, 0x30($s0) +/* 0A3EB4 7F06F384 8E0A001C */ lw $t2, 0x1c($s0) +/* 0A3EB8 7F06F388 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoAttachForObjinst) +/* 0A3EBC 7F06F38C 55400006 */ bnezl $t2, .L7F06F3A8 +/* 0A3EC0 7F06F390 86050030 */ lh $a1, 0x30($s0) +/* 0A3EC4 7F06F394 0C0033D1 */ jal osSyncPrintf +/* 0A3EC8 7F06F398 24844950 */ addiu $a0, %lo(aSubcalcmatricesNoAttachForObjinst) # addiu $a0, $a0, 0x4950 +/* 0A3ECC 7F06F39C 0FC1B11B */ jal return_null +/* 0A3ED0 7F06F3A0 00000000 */ nop +/* 0A3ED4 7F06F3A4 86050030 */ lh $a1, 0x30($s0) +.L7F06F3A8: +/* 0A3ED8 7F06F3A8 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrameaOutOfRange) +/* 0A3EDC 7F06F3AC 04A00006 */ bltz $a1, .L7F06F3C8 +/* 0A3EE0 7F06F3B0 00000000 */ nop +/* 0A3EE4 7F06F3B4 8E0B0020 */ lw $t3, 0x20($s0) +/* 0A3EE8 7F06F3B8 956C0004 */ lhu $t4, 4($t3) +/* 0A3EEC 7F06F3BC 00AC082A */ slt $at, $a1, $t4 +/* 0A3EF0 7F06F3C0 54200006 */ bnezl $at, .L7F06F3DC +/* 0A3EF4 7F06F3C4 86020032 */ lh $v0, 0x32($s0) +.L7F06F3C8: +/* 0A3EF8 7F06F3C8 0C0033D1 */ jal osSyncPrintf +/* 0A3EFC 7F06F3CC 2484497C */ addiu $a0, %lo(aSubcalcmatricesFrameaOutOfRange) # addiu $a0, $a0, 0x497c +/* 0A3F00 7F06F3D0 0FC1B11B */ jal return_null +/* 0A3F04 7F06F3D4 00000000 */ nop +/* 0A3F08 7F06F3D8 86020032 */ lh $v0, 0x32($s0) +.L7F06F3DC: +/* 0A3F0C 7F06F3DC 3C048005 */ lui $a0, %hi(aSubcalcmatricesFramebOutOfRange) +/* 0A3F10 7F06F3E0 04400006 */ bltz $v0, .L7F06F3FC +/* 0A3F14 7F06F3E4 00000000 */ nop +/* 0A3F18 7F06F3E8 8E0D0020 */ lw $t5, 0x20($s0) +/* 0A3F1C 7F06F3EC 95AE0004 */ lhu $t6, 4($t5) +/* 0A3F20 7F06F3F0 004E082A */ slt $at, $v0, $t6 +/* 0A3F24 7F06F3F4 54200006 */ bnezl $at, .L7F06F410 +/* 0A3F28 7F06F3F8 44801000 */ mtc1 $zero, $f2 +.L7F06F3FC: +/* 0A3F2C 7F06F3FC 0C0033D1 */ jal osSyncPrintf +/* 0A3F30 7F06F400 248449A4 */ addiu $a0, %lo(aSubcalcmatricesFramebOutOfRange) # addiu $a0, $a0, 0x49a4 +/* 0A3F34 7F06F404 0FC1B11B */ jal return_null +/* 0A3F38 7F06F408 00000000 */ nop +/* 0A3F3C 7F06F40C 44801000 */ mtc1 $zero, $f2 +.L7F06F410: +/* 0A3F40 7F06F410 C6000084 */ lwc1 $f0, 0x84($s0) +/* 0A3F44 7F06F414 46001032 */ c.eq.s $f2, $f0 +/* 0A3F48 7F06F418 00000000 */ nop +/* 0A3F4C 7F06F41C 45010008 */ bc1t .L7F06F440 +/* 0A3F50 7F06F420 00000000 */ nop +/* 0A3F54 7F06F424 46001032 */ c.eq.s $f2, $f0 +/* 0A3F58 7F06F428 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoAnim2) +/* 0A3F5C 7F06F42C 45010006 */ bc1t .L7F06F448 +/* 0A3F60 7F06F430 00000000 */ nop +/* 0A3F64 7F06F434 8E0F0054 */ lw $t7, 0x54($s0) +/* 0A3F68 7F06F438 11E00003 */ beqz $t7, .L7F06F448 +/* 0A3F6C 7F06F43C 00000000 */ nop +.L7F06F440: +/* 0A3F70 7F06F440 10000006 */ b .L7F06F45C +/* 0A3F74 7F06F444 8E040054 */ lw $a0, 0x54($s0) +.L7F06F448: +/* 0A3F78 7F06F448 0C0033D1 */ jal osSyncPrintf +/* 0A3F7C 7F06F44C 248449CC */ addiu $a0, $a0, %lo(aSubcalcmatricesNoAnim2) +/* 0A3F80 7F06F450 0FC1B11B */ jal return_null +/* 0A3F84 7F06F454 00000000 */ nop +/* 0A3F88 7F06F458 8E040054 */ lw $a0, 0x54($s0) +.L7F06F45C: +/* 0A3F8C 7F06F45C 10800010 */ beqz $a0, .L7F06F4A0 +/* 0A3F90 7F06F460 00000000 */ nop +/* 0A3F94 7F06F464 10800008 */ beqz $a0, .L7F06F488 +/* 0A3F98 7F06F468 00000000 */ nop +/* 0A3F9C 7F06F46C 86020060 */ lh $v0, 0x60($s0) +/* 0A3FA0 7F06F470 04400005 */ bltz $v0, .L7F06F488 +/* 0A3FA4 7F06F474 00000000 */ nop +/* 0A3FA8 7F06F478 94980004 */ lhu $t8, 4($a0) +/* 0A3FAC 7F06F47C 0058082A */ slt $at, $v0, $t8 +/* 0A3FB0 7F06F480 14200007 */ bnez $at, .L7F06F4A0 +/* 0A3FB4 7F06F484 00000000 */ nop +.L7F06F488: +/* 0A3FB8 7F06F488 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrame2aOutOfRange) +/* 0A3FBC 7F06F48C 0C0033D1 */ jal osSyncPrintf +/* 0A3FC0 7F06F490 248449E8 */ addiu $a0, %lo(aSubcalcmatricesFrame2aOutOfRange) # addiu $a0, $a0, 0x49e8 +/* 0A3FC4 7F06F494 0FC1B11B */ jal return_null +/* 0A3FC8 7F06F498 00000000 */ nop +/* 0A3FCC 7F06F49C 8E040054 */ lw $a0, 0x54($s0) +.L7F06F4A0: +/* 0A3FD0 7F06F4A0 5080000B */ beql $a0, $zero, .L7F06F4D0 +/* 0A3FD4 7F06F4A4 8E040020 */ lw $a0, 0x20($s0) +/* 0A3FD8 7F06F4A8 1080000B */ beqz $a0, .L7F06F4D8 +/* 0A3FDC 7F06F4AC 00000000 */ nop +/* 0A3FE0 7F06F4B0 86020062 */ lh $v0, 0x62($s0) +/* 0A3FE4 7F06F4B4 04400008 */ bltz $v0, .L7F06F4D8 +/* 0A3FE8 7F06F4B8 00000000 */ nop +/* 0A3FEC 7F06F4BC 94990004 */ lhu $t9, 4($a0) +/* 0A3FF0 7F06F4C0 0059082A */ slt $at, $v0, $t9 +/* 0A3FF4 7F06F4C4 10200004 */ beqz $at, .L7F06F4D8 +/* 0A3FF8 7F06F4C8 00000000 */ nop +/* 0A3FFC 7F06F4CC 8E040020 */ lw $a0, 0x20($s0) +.L7F06F4D0: +/* 0A4000 7F06F4D0 10000008 */ b .L7F06F4F4 +/* 0A4004 7F06F4D4 86050030 */ lh $a1, 0x30($s0) +.L7F06F4D8: +/* 0A4008 7F06F4D8 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrame2bOutOfRange) +/* 0A400C 7F06F4DC 0C0033D1 */ jal osSyncPrintf +/* 0A4010 7F06F4E0 24844A10 */ addiu $a0, %lo(aSubcalcmatricesFrame2bOutOfRange) # addiu $a0, $a0, 0x4a10 +/* 0A4014 7F06F4E4 0FC1B11B */ jal return_null +/* 0A4018 7F06F4E8 00000000 */ nop +/* 0A401C 7F06F4EC 8E040020 */ lw $a0, 0x20($s0) +/* 0A4020 7F06F4F0 86050030 */ lh $a1, 0x30($s0) +.L7F06F4F4: +/* 0A4024 7F06F4F4 8E080008 */ lw $t0, 8($s0) +/* 0A4028 7F06F4F8 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A402C 7F06F4FC 8D060004 */ lw $a2, 4($t0) +/* 0A4030 7F06F500 44802000 */ mtc1 $zero, $f4 +/* 0A4034 7F06F504 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A4038 7F06F508 AE020034 */ sw $v0, 0x34($s0) +/* 0A403C 7F06F50C 46062032 */ c.eq.s $f4, $f6 +/* 0A4040 7F06F510 00000000 */ nop +/* 0A4044 7F06F514 45030008 */ bc1tl .L7F06F538 +/* 0A4048 7F06F518 8E040054 */ lw $a0, 0x54($s0) +/* 0A404C 7F06F51C 8E090008 */ lw $t1, 8($s0) +/* 0A4050 7F06F520 8E040020 */ lw $a0, 0x20($s0) +/* 0A4054 7F06F524 86050032 */ lh $a1, 0x32($s0) +/* 0A4058 7F06F528 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A405C 7F06F52C 8D260004 */ lw $a2, 4($t1) +/* 0A4060 7F06F530 AE020038 */ sw $v0, 0x38($s0) +/* 0A4064 7F06F534 8E040054 */ lw $a0, 0x54($s0) +.L7F06F538: +/* 0A4068 7F06F538 10800012 */ beqz $a0, .L7F06F584 +/* 0A406C 7F06F53C 00000000 */ nop +/* 0A4070 7F06F540 8E0A0008 */ lw $t2, 8($s0) +/* 0A4074 7F06F544 86050060 */ lh $a1, 0x60($s0) +/* 0A4078 7F06F548 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A407C 7F06F54C 8D460004 */ lw $a2, 4($t2) +/* 0A4080 7F06F550 44804000 */ mtc1 $zero, $f8 +/* 0A4084 7F06F554 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0A4088 7F06F558 AE020064 */ sw $v0, 0x64($s0) +/* 0A408C 7F06F55C 460A4032 */ c.eq.s $f8, $f10 +/* 0A4090 7F06F560 00000000 */ nop +/* 0A4094 7F06F564 45010007 */ bc1t .L7F06F584 +/* 0A4098 7F06F568 00000000 */ nop +/* 0A409C 7F06F56C 8E0B0008 */ lw $t3, 8($s0) +/* 0A40A0 7F06F570 8E040054 */ lw $a0, 0x54($s0) +/* 0A40A4 7F06F574 86050062 */ lh $a1, 0x62($s0) +/* 0A40A8 7F06F578 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A40AC 7F06F57C 8D660004 */ lw $a2, 4($t3) +/* 0A40B0 7F06F580 AE020068 */ sw $v0, 0x68($s0) +.L7F06F584: +/* 0A40B4 7F06F584 0FC1D56C */ jal sub_GAME_7F0755B0 +/* 0A40B8 7F06F588 00000000 */ nop +/* 0A40BC 7F06F58C 8FA40020 */ lw $a0, 0x20($sp) +.L7F06F590: +/* 0A40C0 7F06F590 0FC1BC92 */ jal instcalcmatrices +/* 0A40C4 7F06F594 02002825 */ move $a1, $s0 +/* 0A40C8 7F06F598 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A40CC 7F06F59C 8FB00018 */ lw $s0, 0x18($sp) +/* 0A40D0 7F06F5A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A40D4 7F06F5A4 03E00008 */ jr $ra +/* 0A40D8 7F06F5A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5AC +/* 0A40DC 7F06F5AC 03E00008 */ jr $ra +/* 0A40E0 7F06F5B0 8C820020 */ lw $v0, 0x20($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5B4 +/* 0A40E4 7F06F5B4 03E00008 */ jr $ra +/* 0A40E8 7F06F5B8 80820024 */ lb $v0, 0x24($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5BC +/* 0A40EC 7F06F5BC 03E00008 */ jr $ra +/* 0A40F0 7F06F5C0 C4800028 */ lwc1 $f0, 0x28($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5C4 +/* 0A40F4 7F06F5C4 44806000 */ mtc1 $zero, $f12 +/* 0A40F8 7F06F5C8 C482003C */ lwc1 $f2, 0x3c($a0) +/* 0A40FC 7F06F5CC 4602603E */ c.le.s $f12, $f2 +/* 0A4100 7F06F5D0 00000000 */ nop +/* 0A4104 7F06F5D4 45020004 */ bc1fl .L7F06F5E8 +/* 0A4108 7F06F5D8 8C820020 */ lw $v0, 0x20($a0) +/* 0A410C 7F06F5DC 03E00008 */ jr $ra +/* 0A4110 7F06F5E0 46001006 */ mov.s $f0, $f2 + +/* 0A4114 7F06F5E4 8C820020 */ lw $v0, 0x20($a0) +.L7F06F5E8: +/* 0A4118 7F06F5E8 50400007 */ beql $v0, $zero, .L7F06F608 +/* 0A411C 7F06F5EC 46006006 */ mov.s $f0, $f12 +/* 0A4120 7F06F5F0 944E0004 */ lhu $t6, 4($v0) +/* 0A4124 7F06F5F4 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A4128 7F06F5F8 448F2000 */ mtc1 $t7, $f4 +/* 0A412C 7F06F5FC 03E00008 */ jr $ra +/* 0A4130 7F06F600 46802020 */ cvt.s.w $f0, $f4 + +/* 0A4134 7F06F604 46006006 */ mov.s $f0, $f12 +.L7F06F608: +/* 0A4138 7F06F608 03E00008 */ jr $ra +/* 0A413C 7F06F60C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F610(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F610 +/* 0A4140 7F06F610 03E00008 */ jr $ra +/* 0A4144 7F06F614 C4800040 */ lwc1 $f0, 0x40($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F618(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F618 +/* 0A4148 7F06F618 C4820040 */ lwc1 $f2, 0x40($a0) +/* 0A414C 7F06F61C 44802000 */ mtc1 $zero, $f4 +/* 0A4150 7F06F620 00000000 */ nop +/* 0A4154 7F06F624 4604103C */ c.lt.s $f2, $f4 +/* 0A4158 7F06F628 00000000 */ nop +/* 0A415C 7F06F62C 45000002 */ bc1f .L7F06F638 +/* 0A4160 7F06F630 00000000 */ nop +/* 0A4164 7F06F634 46001087 */ neg.s $f2, $f2 +.L7F06F638: +/* 0A4168 7F06F638 03E00008 */ jr $ra +/* 0A416C 7F06F63C 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F640(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F640 +/* 0A4170 7F06F640 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A4174 7F06F644 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A4178 7F06F648 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 0A417C 7F06F64C AFA40018 */ sw $a0, 0x18($sp) +/* 0A4180 7F06F650 8FAE0018 */ lw $t6, 0x18($sp) +/* 0A4184 7F06F654 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4188 7F06F658 C5C400A4 */ lwc1 $f4, 0xa4($t6) +/* 0A418C 7F06F65C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A4190 7F06F660 46040002 */ mul.s $f0, $f0, $f4 +/* 0A4194 7F06F664 03E00008 */ jr $ra +/* 0A4198 7F06F668 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F66C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F66C +/* 0A419C 7F06F66C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A41A0 7F06F670 44866000 */ mtc1 $a2, $f12 +/* 0A41A4 7F06F674 04810017 */ bgez $a0, .L7F06F6D4 +/* 0A41A8 7F06F678 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A41AC 7F06F67C 90AE0007 */ lbu $t6, 7($a1) +/* 0A41B0 7F06F680 31CF0001 */ andi $t7, $t6, 1 +/* 0A41B4 7F06F684 11E00011 */ beqz $t7, .L7F06F6CC +/* 0A41B8 7F06F688 00000000 */ nop +/* 0A41BC 7F06F68C 94A20004 */ lhu $v0, 4($a1) +/* 0A41C0 7F06F690 0004C023 */ negu $t8, $a0 +/* 0A41C4 7F06F694 0302001A */ div $zero, $t8, $v0 +/* 0A41C8 7F06F698 0000C810 */ mfhi $t9 +/* 0A41CC 7F06F69C 00592023 */ subu $a0, $v0, $t9 +/* 0A41D0 7F06F6A0 14400002 */ bnez $v0, .L7F06F6AC +/* 0A41D4 7F06F6A4 00000000 */ nop +/* 0A41D8 7F06F6A8 0007000D */ break 7 +.L7F06F6AC: +/* 0A41DC 7F06F6AC 2401FFFF */ li $at, -1 +/* 0A41E0 7F06F6B0 14410004 */ bne $v0, $at, .L7F06F6C4 +/* 0A41E4 7F06F6B4 3C018000 */ lui $at, 0x8000 +/* 0A41E8 7F06F6B8 17010002 */ bne $t8, $at, .L7F06F6C4 +/* 0A41EC 7F06F6BC 00000000 */ nop +/* 0A41F0 7F06F6C0 0006000D */ break 6 +.L7F06F6C4: +/* 0A41F4 7F06F6C4 1000002A */ b .L7F06F770 +/* 0A41F8 7F06F6C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06F6CC: +/* 0A41FC 7F06F6CC 10000027 */ b .L7F06F76C +/* 0A4200 7F06F6D0 00002025 */ move $a0, $zero +.L7F06F6D4: +/* 0A4204 7F06F6D4 44802000 */ mtc1 $zero, $f4 +/* 0A4208 7F06F6D8 00000000 */ nop +/* 0A420C 7F06F6DC 460C203E */ c.le.s $f4, $f12 +/* 0A4210 7F06F6E0 00000000 */ nop +/* 0A4214 7F06F6E4 4502000C */ bc1fl .L7F06F718 +/* 0A4218 7F06F6E8 94A20004 */ lhu $v0, 4($a1) +/* 0A421C 7F06F6EC 4600618D */ trunc.w.s $f6, $f12 +/* 0A4220 7F06F6F0 44093000 */ mfc1 $t1, $f6 +/* 0A4224 7F06F6F4 00000000 */ nop +/* 0A4228 7F06F6F8 0124082A */ slt $at, $t1, $a0 +/* 0A422C 7F06F6FC 50200006 */ beql $at, $zero, .L7F06F718 +/* 0A4230 7F06F700 94A20004 */ lhu $v0, 4($a1) +/* 0A4234 7F06F704 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4238 7F06F708 00000000 */ nop +/* 0A423C 7F06F70C 10000017 */ b .L7F06F76C +/* 0A4240 7F06F710 00402025 */ move $a0, $v0 +/* 0A4244 7F06F714 94A20004 */ lhu $v0, 4($a1) +.L7F06F718: +/* 0A4248 7F06F718 0082082A */ slt $at, $a0, $v0 +/* 0A424C 7F06F71C 54200014 */ bnezl $at, .L7F06F770 +/* 0A4250 7F06F720 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4254 7F06F724 90AA0007 */ lbu $t2, 7($a1) +/* 0A4258 7F06F728 314B0001 */ andi $t3, $t2, 1 +/* 0A425C 7F06F72C 5160000F */ beql $t3, $zero, .L7F06F76C +/* 0A4260 7F06F730 2444FFFF */ addiu $a0, $v0, -1 +/* 0A4264 7F06F734 0082001A */ div $zero, $a0, $v0 +/* 0A4268 7F06F738 14400002 */ bnez $v0, .L7F06F744 +/* 0A426C 7F06F73C 00000000 */ nop +/* 0A4270 7F06F740 0007000D */ break 7 +.L7F06F744: +/* 0A4274 7F06F744 2401FFFF */ li $at, -1 +/* 0A4278 7F06F748 14410004 */ bne $v0, $at, .L7F06F75C +/* 0A427C 7F06F74C 3C018000 */ lui $at, 0x8000 +/* 0A4280 7F06F750 14810002 */ bne $a0, $at, .L7F06F75C +/* 0A4284 7F06F754 00000000 */ nop +/* 0A4288 7F06F758 0006000D */ break 6 +.L7F06F75C: +/* 0A428C 7F06F75C 00002010 */ mfhi $a0 +/* 0A4290 7F06F760 10000003 */ b .L7F06F770 +/* 0A4294 7F06F764 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4298 7F06F768 2444FFFF */ addiu $a0, $v0, -1 +.L7F06F76C: +/* 0A429C 7F06F76C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06F770: +/* 0A42A0 7F06F770 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A42A4 7F06F774 00801025 */ move $v0, $a0 +/* 0A42A8 7F06F778 03E00008 */ jr $ra +/* 0A42AC 7F06F77C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F780(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F780 +/* 0A42B0 7F06F780 44856000 */ mtc1 $a1, $f12 +/* 0A42B4 7F06F784 44802000 */ mtc1 $zero, $f4 +/* 0A42B8 7F06F788 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A42BC 7F06F78C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A42C0 7F06F790 460C203C */ c.lt.s $f4, $f12 +/* 0A42C4 7F06F794 00000000 */ nop +/* 0A42C8 7F06F798 45020033 */ bc1fl .L7F06F868 +/* 0A42CC 7F06F79C AC800054 */ sw $zero, 0x54($a0) +/* 0A42D0 7F06F7A0 8C820020 */ lw $v0, 0x20($a0) +/* 0A42D4 7F06F7A4 24010001 */ li $at, 1 +/* 0A42D8 7F06F7A8 5040002F */ beql $v0, $zero, .L7F06F868 +/* 0A42DC 7F06F7AC AC800054 */ sw $zero, 0x54($a0) +/* 0A42E0 7F06F7B0 8C8E0008 */ lw $t6, 8($a0) +/* 0A42E4 7F06F7B4 C4860028 */ lwc1 $f6, 0x28($a0) +/* 0A42E8 7F06F7B8 C488002C */ lwc1 $f8, 0x2c($a0) +/* 0A42EC 7F06F7BC 8DC50000 */ lw $a1, ($t6) +/* 0A42F0 7F06F7C0 80980024 */ lb $t8, 0x24($a0) +/* 0A42F4 7F06F7C4 84990030 */ lh $t9, 0x30($a0) +/* 0A42F8 7F06F7C8 94A30000 */ lhu $v1, ($a1) +/* 0A42FC 7F06F7CC E4860058 */ swc1 $f6, 0x58($a0) +/* 0A4300 7F06F7D0 E488005C */ swc1 $f8, 0x5c($a0) +/* 0A4304 7F06F7D4 84880032 */ lh $t0, 0x32($a0) +/* 0A4308 7F06F7D8 C48A0040 */ lwc1 $f10, 0x40($a0) +/* 0A430C 7F06F7DC C4900044 */ lwc1 $f16, 0x44($a0) +/* 0A4310 7F06F7E0 C4920048 */ lwc1 $f18, 0x48($a0) +/* 0A4314 7F06F7E4 C484004C */ lwc1 $f4, 0x4c($a0) +/* 0A4318 7F06F7E8 C4860050 */ lwc1 $f6, 0x50($a0) +/* 0A431C 7F06F7EC C488003C */ lwc1 $f8, 0x3c($a0) +/* 0A4320 7F06F7F0 306F00FF */ andi $t7, $v1, 0xff +/* 0A4324 7F06F7F4 AC820054 */ sw $v0, 0x54($a0) +/* 0A4328 7F06F7F8 A0980025 */ sb $t8, 0x25($a0) +/* 0A432C 7F06F7FC A4990060 */ sh $t9, 0x60($a0) +/* 0A4330 7F06F800 A4880062 */ sh $t0, 0x62($a0) +/* 0A4334 7F06F804 E48A0070 */ swc1 $f10, 0x70($a0) +/* 0A4338 7F06F808 E4900074 */ swc1 $f16, 0x74($a0) +/* 0A433C 7F06F80C E4920078 */ swc1 $f18, 0x78($a0) +/* 0A4340 7F06F810 E484007C */ swc1 $f4, 0x7c($a0) +/* 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 +/* 0A4354 7F06F824 00000000 */ nop +/* 0A4358 7F06F828 C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A435C 7F06F82C C4500038 */ lwc1 $f16, 0x38($v0) +/* 0A4360 7F06F830 C452003C */ lwc1 $f18, 0x3c($v0) +/* 0A4364 7F06F834 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A4368 7F06F838 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A436C 7F06F83C C448002C */ lwc1 $f8, 0x2c($v0) +/* 0A4370 7F06F840 24090001 */ li $t1, 1 +/* 0A4374 7F06F844 A0490002 */ sb $t1, 2($v0) +/* 0A4378 7F06F848 E44A004C */ swc1 $f10, 0x4c($v0) +/* 0A437C 7F06F84C E4500050 */ swc1 $f16, 0x50($v0) +/* 0A4380 7F06F850 E4520054 */ swc1 $f18, 0x54($v0) +/* 0A4384 7F06F854 E4440040 */ swc1 $f4, 0x40($v0) +/* 0A4388 7F06F858 E4460044 */ swc1 $f6, 0x44($v0) +/* 0A438C 7F06F85C 10000002 */ b .L7F06F868 +/* 0A4390 7F06F860 E4480048 */ swc1 $f8, 0x48($v0) +/* 0A4394 7F06F864 AC800054 */ sw $zero, 0x54($a0) +.L7F06F868: +/* 0A4398 7F06F868 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A439C 7F06F86C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A43A0 7F06F870 03E00008 */ jr $ra +/* 0A43A4 7F06F874 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F878(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054D40 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054D48 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06F878 +/* 0A43A8 7F06F878 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0A43AC 7F06F87C AFBF0024 */ sw $ra, 0x24($sp) +/* 0A43B0 7F06F880 AFB10020 */ sw $s1, 0x20($sp) +/* 0A43B4 7F06F884 AFB0001C */ sw $s0, 0x1c($sp) +/* 0A43B8 7F06F888 AFA50094 */ sw $a1, 0x94($sp) +/* 0A43BC 7F06F88C 8C8E0020 */ lw $t6, 0x20($a0) +/* 0A43C0 7F06F890 44876000 */ mtc1 $a3, $f12 +/* 0A43C4 7F06F894 00A03825 */ move $a3, $a1 +/* 0A43C8 7F06F898 2DCF0001 */ sltiu $t7, $t6, 1 +/* 0A43CC 7F06F89C AFAF002C */ sw $t7, 0x2c($sp) +/* 0A43D0 7F06F8A0 8C980054 */ lw $t8, 0x54($a0) +/* 0A43D4 7F06F8A4 44056000 */ mfc1 $a1, $f12 +/* 0A43D8 7F06F8A8 00808825 */ move $s1, $a0 +/* 0A43DC 7F06F8AC 13000008 */ beqz $t8, .L7F06F8D0 +/* 0A43E0 7F06F8B0 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0A43E4 7F06F8B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A43E8 7F06F8B8 44803000 */ mtc1 $zero, $f6 +/* 0A43EC 7F06F8BC 44814000 */ mtc1 $at, $f8 +/* 0A43F0 7F06F8C0 E4840088 */ swc1 $f4, 0x88($a0) +/* 0A43F4 7F06F8C4 E486008C */ swc1 $f6, 0x8c($a0) +/* 0A43F8 7F06F8C8 10000005 */ b .L7F06F8E0 +/* 0A43FC 7F06F8CC E4880084 */ swc1 $f8, 0x84($a0) +.L7F06F8D0: +/* 0A4400 7F06F8D0 44805000 */ mtc1 $zero, $f10 +/* 0A4404 7F06F8D4 44802000 */ mtc1 $zero, $f4 +/* 0A4408 7F06F8D8 E62A0088 */ swc1 $f10, 0x88($s1) +/* 0A440C 7F06F8DC E6240084 */ swc1 $f4, 0x84($s1) +.L7F06F8E0: +/* 0A4410 7F06F8E0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0A4414 7F06F8E4 44813000 */ mtc1 $at, $f6 +/* 0A4418 7F06F8E8 AE270020 */ sw $a3, 0x20($s1) +/* 0A441C 7F06F8EC A2260024 */ sb $a2, 0x24($s1) +/* 0A4420 7F06F8F0 E626003C */ swc1 $f6, 0x3c($s1) +/* 0A4424 7F06F8F4 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0A4428 7F06F8F8 44805000 */ mtc1 $zero, $f10 +/* 0A442C 7F06F8FC 02202025 */ move $a0, $s1 +/* 0A4430 7F06F900 E6280040 */ swc1 $f8, 0x40($s1) +/* 0A4434 7F06F904 0FC1BFD9 */ jal sub_GAME_7F06FF64 +/* 0A4438 7F06F908 E62A004C */ swc1 $f10, 0x4c($s1) +/* 0A443C 7F06F90C 8E390008 */ lw $t9, 8($s1) +/* 0A4440 7F06F910 A2200026 */ sb $zero, 0x26($s1) +/* 0A4444 7F06F914 24010001 */ li $at, 1 +/* 0A4448 7F06F918 8F250000 */ lw $a1, ($t9) +/* 0A444C 7F06F91C 94A20000 */ lhu $v0, ($a1) +/* 0A4450 7F06F920 304800FF */ andi $t0, $v0, 0xff +/* 0A4454 7F06F924 550100C5 */ bnel $t0, $at, .L7F06FC3C +/* 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 +/* 0A4468 7F06F938 AFA90080 */ sw $t1, 0x80($sp) +/* 0A446C 7F06F93C 3C0C8003 */ lui $t4, %hi(D_80036244) +/* 0A4470 7F06F940 8FAA0080 */ lw $t2, 0x80($sp) +/* 0A4474 7F06F944 8E2B0008 */ lw $t3, 8($s1) +/* 0A4478 7F06F948 258C6244 */ addiu $t4, %lo(D_80036244) # addiu $t4, $t4, 0x6244 +/* 0A447C 7F06F94C 8D810000 */ lw $at, ($t4) +/* 0A4480 7F06F950 C6240014 */ lwc1 $f4, 0x14($s1) +/* 0A4484 7F06F954 C62600B8 */ lwc1 $f6, 0xb8($s1) +/* 0A4488 7F06F958 27A3005C */ addiu $v1, $sp, 0x5c +/* 0A448C 7F06F95C 95440000 */ lhu $a0, ($t2) +/* 0A4490 7F06F960 8D660004 */ lw $a2, 4($t3) +/* 0A4494 7F06F964 AC610000 */ sw $at, ($v1) +/* 0A4498 7F06F968 8D8F0004 */ lw $t7, 4($t4) +/* 0A449C 7F06F96C 46062082 */ mul.s $f2, $f4, $f6 +/* 0A44A0 7F06F970 00408025 */ move $s0, $v0 +/* 0A44A4 7F06F974 AC6F0004 */ sw $t7, 4($v1) +/* 0A44A8 7F06F978 8D810008 */ lw $at, 8($t4) +/* 0A44AC 7F06F97C AC610008 */ sw $at, 8($v1) +/* 0A44B0 7F06F980 86380032 */ lh $t8, 0x32($s1) +/* 0A44B4 7F06F984 8E270020 */ lw $a3, 0x20($s1) +/* 0A44B8 7F06F988 82250024 */ lb $a1, 0x24($s1) +/* 0A44BC 7F06F98C E7A20070 */ swc1 $f2, 0x70($sp) +/* 0A44C0 7F06F990 AFA30014 */ sw $v1, 0x14($sp) +/* 0A44C4 7F06F994 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A44C8 7F06F998 AFB80010 */ sw $t8, 0x10($sp) +/* 0A44CC 7F06F99C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A44D0 7F06F9A0 C7A20070 */ lwc1 $f2, 0x70($sp) +/* 0A44D4 7F06F9A4 44814000 */ mtc1 $at, $f8 +/* 0A44D8 7F06F9A8 E7A00058 */ swc1 $f0, 0x58($sp) +/* 0A44DC 7F06F9AC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0A44E0 7F06F9B0 46081032 */ c.eq.s $f2, $f8 +/* 0A44E4 7F06F9B4 00000000 */ nop +/* 0A44E8 7F06F9B8 45010009 */ bc1t .L7F06F9E0 +/* 0A44EC 7F06F9BC 00000000 */ nop +/* 0A44F0 7F06F9C0 46025102 */ mul.s $f4, $f10, $f2 +/* 0A44F4 7F06F9C4 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0A44F8 7F06F9C8 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0A44FC 7F06F9CC 46023202 */ mul.s $f8, $f6, $f2 +/* 0A4500 7F06F9D0 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 0A4504 7F06F9D4 46025102 */ mul.s $f4, $f10, $f2 +/* 0A4508 7F06F9D8 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0A450C 7F06F9DC E7A40064 */ swc1 $f4, 0x64($sp) +.L7F06F9E0: +/* 0A4510 7F06F9E0 0FC15FA8 */ jal cosf +/* 0A4514 7F06F9E4 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4518 7F06F9E8 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A451C 7F06F9EC 0FC15FAB */ jal sinf +/* 0A4520 7F06F9F0 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0A4524 7F06F9F4 C622002C */ lwc1 $f2, 0x2c($s1) +/* 0A4528 7F06F9F8 44803000 */ mtc1 $zero, $f6 +/* 0A452C 7F06F9FC C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0A4530 7F06FA00 24190001 */ li $t9, 1 +/* 0A4534 7F06FA04 46023032 */ c.eq.s $f6, $f2 +/* 0A4538 7F06FA08 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0A453C 7F06FA0C C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0A4540 7F06FA10 45000032 */ bc1f .L7F06FADC +/* 0A4544 7F06FA14 00000000 */ nop +/* 0A4548 7F06FA18 C608000C */ lwc1 $f8, 0xc($s0) +/* 0A454C 7F06FA1C C60A0004 */ lwc1 $f10, 4($s0) +/* 0A4550 7F06FA20 C6020008 */ lwc1 $f2, 8($s0) +/* 0A4554 7F06FA24 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0A4558 7F06FA28 460A4101 */ sub.s $f4, $f8, $f10 +/* 0A455C 7F06FA2C C6080014 */ lwc1 $f8, 0x14($s0) +/* 0A4560 7F06FA30 E6020034 */ swc1 $f2, 0x34($s0) +/* 0A4564 7F06FA34 E606003C */ swc1 $f6, 0x3c($s0) +/* 0A4568 7F06FA38 E6040038 */ swc1 $f4, 0x38($s0) +/* 0A456C 7F06FA3C E6080030 */ swc1 $f8, 0x30($s0) +/* 0A4570 7F06FA40 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0A4574 7F06FA44 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0A4578 7F06FA48 46005102 */ mul.s $f4, $f10, $f0 +/* 0A457C 7F06FA4C 00000000 */ nop +/* 0A4580 7F06FA50 46123202 */ mul.s $f8, $f6, $f18 +/* 0A4584 7F06FA54 46081200 */ add.s $f8, $f2, $f8 +/* 0A4588 7F06FA58 46003182 */ mul.s $f6, $f6, $f0 +/* 0A458C 7F06FA5C 46082100 */ add.s $f4, $f4, $f8 +/* 0A4590 7F06FA60 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0A4594 7F06FA64 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 0A4598 7F06FA68 E7A80050 */ swc1 $f8, 0x50($sp) +/* 0A459C 7F06FA6C C608003C */ lwc1 $f8, 0x3c($s0) +/* 0A45A0 7F06FA70 46064201 */ sub.s $f8, $f8, $f6 +/* 0A45A4 7F06FA74 46125182 */ mul.s $f6, $f10, $f18 +/* 0A45A8 7F06FA78 46083280 */ add.s $f10, $f6, $f8 +/* 0A45AC 7F06FA7C E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A45B0 7F06FA80 E6040024 */ swc1 $f4, 0x24($s0) +/* 0A45B4 7F06FA84 C6040018 */ lwc1 $f4, 0x18($s0) +/* 0A45B8 7F06FA88 44805000 */ mtc1 $zero, $f10 +/* 0A45BC 7F06FA8C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0A45C0 7F06FA90 46045032 */ c.eq.s $f10, $f4 +/* 0A45C4 7F06FA94 E6060028 */ swc1 $f6, 0x28($s0) +/* 0A45C8 7F06FA98 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0A45CC 7F06FA9C 4500000D */ bc1f .L7F06FAD4 +/* 0A45D0 7F06FAA0 E608002C */ swc1 $f8, 0x2c($s0) +/* 0A45D4 7F06FAA4 C6060030 */ lwc1 $f6, 0x30($s0) +/* 0A45D8 7F06FAA8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A45DC 7F06FAAC 3C018005 */ lui $at, %hi(D_80054D40) +/* 0A45E0 7F06FAB0 C4224D40 */ lwc1 $f2, %lo(D_80054D40)($at) +/* 0A45E4 7F06FAB4 46083000 */ add.s $f0, $f6, $f8 +/* 0A45E8 7F06FAB8 4600103E */ c.le.s $f2, $f0 +/* 0A45EC 7F06FABC E6000020 */ swc1 $f0, 0x20($s0) +/* 0A45F0 7F06FAC0 45000004 */ bc1f .L7F06FAD4 +/* 0A45F4 7F06FAC4 00000000 */ nop +/* 0A45F8 7F06FAC8 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0A45FC 7F06FACC 46025101 */ sub.s $f4, $f10, $f2 +/* 0A4600 7F06FAD0 E6040020 */ swc1 $f4, 0x20($s0) +.L7F06FAD4: +/* 0A4604 7F06FAD4 10000053 */ b .L7F06FC24 +/* 0A4608 7F06FAD8 A2190001 */ sb $t9, 1($s0) +.L7F06FADC: +/* 0A460C 7F06FADC 46003202 */ mul.s $f8, $f6, $f0 +/* 0A4610 7F06FAE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4614 7F06FAE4 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0A4618 7F06FAE8 46125102 */ mul.s $f4, $f10, $f18 +/* 0A461C 7F06FAEC 46044380 */ add.s $f14, $f8, $f4 +/* 0A4620 7F06FAF0 46123202 */ mul.s $f8, $f6, $f18 +/* 0A4624 7F06FAF4 46005107 */ neg.s $f4, $f10 +/* 0A4628 7F06FAF8 46002182 */ mul.s $f6, $f4, $f0 +/* 0A462C 7F06FAFC 46064280 */ add.s $f10, $f8, $f6 +/* 0A4630 7F06FB00 44814000 */ mtc1 $at, $f8 +/* 0A4634 7F06FB04 00000000 */ nop +/* 0A4638 7F06FB08 46024181 */ sub.s $f6, $f8, $f2 +/* 0A463C 7F06FB0C E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0A4640 7F06FB10 C6040008 */ lwc1 $f4, 8($s0) +/* 0A4644 7F06FB14 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0A4648 7F06FB18 46067202 */ mul.s $f8, $f14, $f6 +/* 0A464C 7F06FB1C 46082180 */ add.s $f6, $f4, $f8 +/* 0A4650 7F06FB20 44812000 */ mtc1 $at, $f4 +/* 0A4654 7F06FB24 E7A60040 */ swc1 $f6, 0x40($sp) +/* 0A4658 7F06FB28 C628002C */ lwc1 $f8, 0x2c($s1) +/* 0A465C 7F06FB2C 46082181 */ sub.s $f6, $f4, $f8 +/* 0A4660 7F06FB30 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0A4664 7F06FB34 46065102 */ mul.s $f4, $f10, $f6 +/* 0A4668 7F06FB38 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0A466C 7F06FB3C 46044280 */ add.s $f10, $f8, $f4 +/* 0A4670 7F06FB40 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0A4674 7F06FB44 E6060024 */ swc1 $f6, 0x24($s0) +/* 0A4678 7F06FB48 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0A467C 7F06FB4C C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0A4680 7F06FB50 E6080028 */ swc1 $f8, 0x28($s0) +/* 0A4684 7F06FB54 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0A4688 7F06FB58 C608000C */ lwc1 $f8, 0xc($s0) +/* 0A468C 7F06FB5C 460E5181 */ sub.s $f6, $f10, $f14 +/* 0A4690 7F06FB60 E604002C */ swc1 $f4, 0x2c($s0) +/* 0A4694 7F06FB64 C6040004 */ lwc1 $f4, 4($s0) +/* 0A4698 7F06FB68 E6060034 */ swc1 $f6, 0x34($s0) +/* 0A469C 7F06FB6C 46044301 */ sub.s $f12, $f8, $f4 +/* 0A46A0 7F06FB70 C622002C */ lwc1 $f2, 0x2c($s1) +/* 0A46A4 7F06FB74 44814000 */ mtc1 $at, $f8 +/* 0A46A8 7F06FB78 3C018005 */ lui $at, %hi(D_80054D44) +/* 0A46AC 7F06FB7C 460C8281 */ sub.s $f10, $f16, $f12 +/* 0A46B0 7F06FB80 46024101 */ sub.s $f4, $f8, $f2 +/* 0A46B4 7F06FB84 46025182 */ mul.s $f6, $f10, $f2 +/* 0A46B8 7F06FB88 46043283 */ div.s $f10, $f6, $f4 +/* 0A46BC 7F06FB8C C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A46C0 7F06FB90 460A6201 */ sub.s $f8, $f12, $f10 +/* 0A46C4 7F06FB94 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A46C8 7F06FB98 E6080038 */ swc1 $f8, 0x38($s0) +/* 0A46CC 7F06FB9C C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A46D0 7F06FBA0 46043281 */ sub.s $f10, $f6, $f4 +/* 0A46D4 7F06FBA4 44803000 */ mtc1 $zero, $f6 +/* 0A46D8 7F06FBA8 E60A003C */ swc1 $f10, 0x3c($s0) +/* 0A46DC 7F06FBAC C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A46E0 7F06FBB0 46086381 */ sub.s $f14, $f12, $f8 +/* 0A46E4 7F06FBB4 4606703C */ c.lt.s $f14, $f6 +/* 0A46E8 7F06FBB8 00000000 */ nop +/* 0A46EC 7F06FBBC 45000003 */ bc1f .L7F06FBCC +/* 0A46F0 7F06FBC0 00000000 */ nop +/* 0A46F4 7F06FBC4 C4244D44 */ lwc1 $f4, %lo(D_80054D44)($at) +/* 0A46F8 7F06FBC8 46047380 */ add.s $f14, $f14, $f4 +.L7F06FBCC: +/* 0A46FC 7F06FBCC 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A4700 7F06FBD0 8E26002C */ lw $a2, 0x2c($s1) +/* 0A4704 7F06FBD4 44805000 */ mtc1 $zero, $f10 +/* 0A4708 7F06FBD8 C6080018 */ lwc1 $f8, 0x18($s0) +/* 0A470C 7F06FBDC 3C018005 */ lui $at, %hi(D_80054D48) +/* 0A4710 7F06FBE0 C4224D48 */ lwc1 $f2, %lo(D_80054D48)($at) +/* 0A4714 7F06FBE4 46085032 */ c.eq.s $f10, $f8 +/* 0A4718 7F06FBE8 E6000030 */ swc1 $f0, 0x30($s0) +/* 0A471C 7F06FBEC C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0A4720 7F06FBF0 24080001 */ li $t0, 1 +/* 0A4724 7F06FBF4 4502000B */ bc1fl .L7F06FC24 +/* 0A4728 7F06FBF8 A2080001 */ sb $t0, 1($s0) +/* 0A472C 7F06FBFC C6060030 */ lwc1 $f6, 0x30($s0) +/* 0A4730 7F06FC00 46043000 */ add.s $f0, $f6, $f4 +/* 0A4734 7F06FC04 4600103E */ c.le.s $f2, $f0 +/* 0A4738 7F06FC08 E6000020 */ swc1 $f0, 0x20($s0) +/* 0A473C 7F06FC0C 45020005 */ bc1fl .L7F06FC24 +/* 0A4740 7F06FC10 A2080001 */ sb $t0, 1($s0) +/* 0A4744 7F06FC14 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0A4748 7F06FC18 46025201 */ sub.s $f8, $f10, $f2 +/* 0A474C 7F06FC1C E6080020 */ swc1 $f8, 0x20($s0) +/* 0A4750 7F06FC20 A2080001 */ sb $t0, 1($s0) +.L7F06FC24: +/* 0A4754 7F06FC24 8FA9002C */ lw $t1, 0x2c($sp) +/* 0A4758 7F06FC28 51200004 */ beql $t1, $zero, .L7F06FC3C +/* 0A475C 7F06FC2C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A4760 7F06FC30 C6060028 */ lwc1 $f6, 0x28($s0) +/* 0A4764 7F06FC34 E6060038 */ swc1 $f6, 0x38($s0) +/* 0A4768 7F06FC38 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06FC3C: +/* 0A476C 7F06FC3C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0A4770 7F06FC40 8FB10020 */ lw $s1, 0x20($sp) +/* 0A4774 7F06FC44 03E00008 */ jr $ra +/* 0A4778 7F06FC48 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FC4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FC4C +/* 0A477C 7F06FC4C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A4780 7F06FC50 8FAE0038 */ lw $t6, 0x38($sp) +/* 0A4784 7F06FC54 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4788 7F06FC58 AFA40020 */ sw $a0, 0x20($sp) +/* 0A478C 7F06FC5C AFA50024 */ sw $a1, 0x24($sp) +/* 0A4790 7F06FC60 AFA60028 */ sw $a2, 0x28($sp) +/* 0A4794 7F06FC64 11C00003 */ beqz $t6, .L7F06FC74 +/* 0A4798 7F06FC68 AFA7002C */ sw $a3, 0x2c($sp) +/* 0A479C 7F06FC6C 0FC1BDE0 */ jal sub_GAME_7F06F780 +/* 0A47A0 7F06FC70 8FA50034 */ lw $a1, 0x34($sp) +.L7F06FC74: +/* 0A47A4 7F06FC74 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A47A8 7F06FC78 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A47AC 7F06FC7C 8FA40020 */ lw $a0, 0x20($sp) +/* 0A47B0 7F06FC80 8FA50024 */ lw $a1, 0x24($sp) +/* 0A47B4 7F06FC84 8FA60028 */ lw $a2, 0x28($sp) +/* 0A47B8 7F06FC88 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A47BC 7F06FC8C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A47C0 7F06FC90 0FC1BE1E */ jal sub_GAME_7F06F878 +/* 0A47C4 7F06FC94 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A47C8 7F06FC98 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A47CC 7F06FC9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A47D0 7F06FCA0 03E00008 */ jr $ra +/* 0A47D4 7F06FCA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FCA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FCA8 +/* 0A47D8 7F06FCA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A47DC 7F06FCAC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A47E0 7F06FCB0 AFA50024 */ sw $a1, 0x24($sp) +/* 0A47E4 7F06FCB4 AFA40020 */ sw $a0, 0x20($sp) +/* 0A47E8 7F06FCB8 AFA60028 */ sw $a2, 0x28($sp) +/* 0A47EC 7F06FCBC AFA7002C */ sw $a3, 0x2c($sp) +/* 0A47F0 7F06FCC0 0FC1BDE0 */ jal sub_GAME_7F06F780 +/* 0A47F4 7F06FCC4 8FA50034 */ lw $a1, 0x34($sp) +/* 0A47F8 7F06FCC8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A47FC 7F06FCCC C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A4800 7F06FCD0 8FA40020 */ lw $a0, 0x20($sp) +/* 0A4804 7F06FCD4 8FA50024 */ lw $a1, 0x24($sp) +/* 0A4808 7F06FCD8 8FA60028 */ lw $a2, 0x28($sp) +/* 0A480C 7F06FCDC 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A4810 7F06FCE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A4814 7F06FCE4 0FC1BE1E */ jal sub_GAME_7F06F878 +/* 0A4818 7F06FCE8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A481C 7F06FCEC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4820 7F06FCF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A4824 7F06FCF4 03E00008 */ jr $ra +/* 0A4828 7F06FCF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FCFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FCFC +/* 0A482C 7F06FCFC 8CA10000 */ lw $at, ($a1) +/* 0A4830 7F06FD00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A4834 7F06FD04 27A20000 */ addiu $v0, $sp, 0 +/* 0A4838 7F06FD08 AC410000 */ sw $at, ($v0) +/* 0A483C 7F06FD0C 8CB80004 */ lw $t8, 4($a1) +/* 0A4840 7F06FD10 00805025 */ move $t2, $a0 +/* 0A4844 7F06FD14 00A05825 */ move $t3, $a1 +/* 0A4848 7F06FD18 AC580004 */ sw $t8, 4($v0) +/* 0A484C 7F06FD1C 8CA10008 */ lw $at, 8($a1) +/* 0A4850 7F06FD20 248900B4 */ addiu $t1, $a0, 0xb4 +/* 0A4854 7F06FD24 AC410008 */ sw $at, 8($v0) +/* 0A4858 7F06FD28 8CB8000C */ lw $t8, 0xc($a1) +/* 0A485C 7F06FD2C AC58000C */ sw $t8, 0xc($v0) +/* 0A4860 7F06FD30 8CA10010 */ lw $at, 0x10($a1) +/* 0A4864 7F06FD34 AC410010 */ sw $at, 0x10($v0) +/* 0A4868 7F06FD38 8CB80014 */ lw $t8, 0x14($a1) +/* 0A486C 7F06FD3C AC580014 */ sw $t8, 0x14($v0) +/* 0A4870 7F06FD40 8CA10018 */ lw $at, 0x18($a1) +/* 0A4874 7F06FD44 AC410018 */ sw $at, 0x18($v0) +/* 0A4878 7F06FD48 8CB8001C */ lw $t8, 0x1c($a1) +/* 0A487C 7F06FD4C AC58001C */ sw $t8, 0x1c($v0) +.L7F06FD50: +/* 0A4880 7F06FD50 8D410000 */ lw $at, ($t2) +/* 0A4884 7F06FD54 254A000C */ addiu $t2, $t2, 0xc +/* 0A4888 7F06FD58 256B000C */ addiu $t3, $t3, 0xc +/* 0A488C 7F06FD5C AD61FFF4 */ sw $at, -0xc($t3) +/* 0A4890 7F06FD60 8D41FFF8 */ lw $at, -8($t2) +/* 0A4894 7F06FD64 AD61FFF8 */ sw $at, -8($t3) +/* 0A4898 7F06FD68 8D41FFFC */ lw $at, -4($t2) +/* 0A489C 7F06FD6C 1549FFF8 */ bne $t2, $t1, .L7F06FD50 +/* 0A48A0 7F06FD70 AD61FFFC */ sw $at, -4($t3) +/* 0A48A4 7F06FD74 8D410000 */ lw $at, ($t2) +/* 0A48A8 7F06FD78 AD610000 */ sw $at, ($t3) +/* 0A48AC 7F06FD7C 8D490004 */ lw $t1, 4($t2) +/* 0A48B0 7F06FD80 AD690004 */ sw $t1, 4($t3) +/* 0A48B4 7F06FD84 8C410000 */ lw $at, ($v0) +/* 0A48B8 7F06FD88 ACA10000 */ sw $at, ($a1) +/* 0A48BC 7F06FD8C 8C4F0004 */ lw $t7, 4($v0) +/* 0A48C0 7F06FD90 ACAF0004 */ sw $t7, 4($a1) +/* 0A48C4 7F06FD94 8C410008 */ lw $at, 8($v0) +/* 0A48C8 7F06FD98 ACA10008 */ sw $at, 8($a1) +/* 0A48CC 7F06FD9C 8C4F000C */ lw $t7, 0xc($v0) +/* 0A48D0 7F06FDA0 ACAF000C */ sw $t7, 0xc($a1) +/* 0A48D4 7F06FDA4 8C410010 */ lw $at, 0x10($v0) +/* 0A48D8 7F06FDA8 ACA10010 */ sw $at, 0x10($a1) +/* 0A48DC 7F06FDAC 8C4F0014 */ lw $t7, 0x14($v0) +/* 0A48E0 7F06FDB0 ACAF0014 */ sw $t7, 0x14($a1) +/* 0A48E4 7F06FDB4 8C410018 */ lw $at, 0x18($v0) +/* 0A48E8 7F06FDB8 ACA10018 */ sw $at, 0x18($a1) +/* 0A48EC 7F06FDBC 8C4F001C */ lw $t7, 0x1c($v0) +/* 0A48F0 7F06FDC0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A48F4 7F06FDC4 03E00008 */ jr $ra +/* 0A48F8 7F06FDC8 ACAF001C */ sw $t7, 0x1c($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FDCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FDCC +/* 0A48FC 7F06FDCC 44856000 */ mtc1 $a1, $f12 +/* 0A4900 7F06FDD0 44867000 */ mtc1 $a2, $f14 +/* 0A4904 7F06FDD4 240E0001 */ li $t6, 1 +/* 0A4908 7F06FDD8 A08E0026 */ sb $t6, 0x26($a0) +/* 0A490C 7F06FDDC E48C0090 */ swc1 $f12, 0x90($a0) +/* 0A4910 7F06FDE0 03E00008 */ jr $ra +/* 0A4914 7F06FDE4 E48E0094 */ swc1 $f14, 0x94($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FDE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FDE8 +/* 0A4918 7F06FDE8 8C820020 */ lw $v0, 0x20($a0) +/* 0A491C 7F06FDEC 44856000 */ mtc1 $a1, $f12 +/* 0A4920 7F06FDF0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0A4924 7F06FDF4 5040000D */ beql $v0, $zero, .L7F06FE2C +/* 0A4928 7F06FDF8 44814000 */ mtc1 $at, $f8 +/* 0A492C 7F06FDFC 944E0004 */ lhu $t6, 4($v0) +/* 0A4930 7F06FE00 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A4934 7F06FE04 448F2000 */ mtc1 $t7, $f4 +/* 0A4938 7F06FE08 00000000 */ nop +/* 0A493C 7F06FE0C 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4940 7F06FE10 4606603C */ c.lt.s $f12, $f6 +/* 0A4944 7F06FE14 00000000 */ nop +/* 0A4948 7F06FE18 45020004 */ bc1fl .L7F06FE2C +/* 0A494C 7F06FE1C 44814000 */ mtc1 $at, $f8 +/* 0A4950 7F06FE20 03E00008 */ jr $ra +/* 0A4954 7F06FE24 E48C003C */ swc1 $f12, 0x3c($a0) + +/* 0A4958 7F06FE28 44814000 */ mtc1 $at, $f8 +.L7F06FE2C: +/* 0A495C 7F06FE2C 00000000 */ nop +/* 0A4960 7F06FE30 E488003C */ swc1 $f8, 0x3c($a0) +/* 0A4964 7F06FE34 03E00008 */ jr $ra +/* 0A4968 7F06FE38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE3C +/* 0A496C 7F06FE3C 03E00008 */ jr $ra +/* 0A4970 7F06FE40 AC850098 */ sw $a1, 0x98($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE44 +/* 0A4974 7F06FE44 03E00008 */ jr $ra +/* 0A4978 7F06FE48 AC85009C */ sw $a1, 0x9c($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE4C +/* 0A497C 7F06FE4C 44866000 */ mtc1 $a2, $f12 +/* 0A4980 7F06FE50 44800000 */ mtc1 $zero, $f0 +/* 0A4984 7F06FE54 44857000 */ mtc1 $a1, $f14 +/* 0A4988 7F06FE58 460C003C */ c.lt.s $f0, $f12 +/* 0A498C 7F06FE5C 00000000 */ nop +/* 0A4990 7F06FE60 45020008 */ bc1fl .L7F06FE84 +/* 0A4994 7F06FE64 E48E0040 */ swc1 $f14, 0x40($a0) +/* 0A4998 7F06FE68 C4840040 */ lwc1 $f4, 0x40($a0) +/* 0A499C 7F06FE6C E48C004C */ swc1 $f12, 0x4c($a0) +/* 0A49A0 7F06FE70 E48E0044 */ swc1 $f14, 0x44($a0) +/* 0A49A4 7F06FE74 E4800050 */ swc1 $f0, 0x50($a0) +/* 0A49A8 7F06FE78 03E00008 */ jr $ra +/* 0A49AC 7F06FE7C E4840048 */ swc1 $f4, 0x48($a0) + +/* 0A49B0 7F06FE80 E48E0040 */ swc1 $f14, 0x40($a0) +.L7F06FE84: +/* 0A49B4 7F06FE84 E480004C */ swc1 $f0, 0x4c($a0) +/* 0A49B8 7F06FE88 03E00008 */ jr $ra +/* 0A49BC 7F06FE8C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE90 +/* 0A49C0 7F06FE90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A49C4 7F06FE94 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A49C8 7F06FE98 44856000 */ mtc1 $a1, $f12 +/* 0A49CC 7F06FE9C C4800028 */ lwc1 $f0, 0x28($a0) +/* 0A49D0 7F06FEA0 44867000 */ mtc1 $a2, $f14 +/* 0A49D4 7F06FEA4 460C003E */ c.le.s $f0, $f12 +/* 0A49D8 7F06FEA8 00000000 */ nop +/* 0A49DC 7F06FEAC 45020004 */ bc1fl .L7F06FEC0 +/* 0A49E0 7F06FEB0 8C8E0020 */ lw $t6, 0x20($a0) +/* 0A49E4 7F06FEB4 1000000C */ b .L7F06FEE8 +/* 0A49E8 7F06FEB8 46006081 */ sub.s $f2, $f12, $f0 +/* 0A49EC 7F06FEBC 8C8E0020 */ lw $t6, 0x20($a0) +.L7F06FEC0: +/* 0A49F0 7F06FEC0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A49F4 7F06FEC4 95CF0004 */ lhu $t7, 4($t6) +/* 0A49F8 7F06FEC8 448F2000 */ mtc1 $t7, $f4 +/* 0A49FC 7F06FECC 05E10004 */ bgez $t7, .L7F06FEE0 +/* 0A4A00 7F06FED0 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4A04 7F06FED4 44814000 */ mtc1 $at, $f8 +/* 0A4A08 7F06FED8 00000000 */ nop +/* 0A4A0C 7F06FEDC 46083180 */ add.s $f6, $f6, $f8 +.L7F06FEE0: +/* 0A4A10 7F06FEE0 46003281 */ sub.s $f10, $f6, $f0 +/* 0A4A14 7F06FEE4 460C5080 */ add.s $f2, $f10, $f12 +.L7F06FEE8: +/* 0A4A18 7F06FEE8 46021480 */ add.s $f18, $f2, $f2 +/* 0A4A1C 7F06FEEC C4900040 */ lwc1 $f16, 0x40($a0) +/* 0A4A20 7F06FEF0 44067000 */ mfc1 $a2, $f14 +/* 0A4A24 7F06FEF4 460E9103 */ div.s $f4, $f18, $f14 +/* 0A4A28 7F06FEF8 46048000 */ add.s $f0, $f16, $f4 +/* 0A4A2C 7F06FEFC 44050000 */ mfc1 $a1, $f0 +/* 0A4A30 7F06FF00 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0A4A34 7F06FF04 00000000 */ nop +/* 0A4A38 7F06FF08 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4A3C 7F06FF0C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A4A40 7F06FF10 03E00008 */ jr $ra +/* 0A4A44 7F06FF14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF18 +/* 0A4A48 7F06FF18 44866000 */ mtc1 $a2, $f12 +/* 0A4A4C 7F06FF1C 44800000 */ mtc1 $zero, $f0 +/* 0A4A50 7F06FF20 44857000 */ mtc1 $a1, $f14 +/* 0A4A54 7F06FF24 460C003C */ c.lt.s $f0, $f12 +/* 0A4A58 7F06FF28 00000000 */ nop +/* 0A4A5C 7F06FF2C 45020008 */ bc1fl .L7F06FF50 +/* 0A4A60 7F06FF30 E48E00A4 */ swc1 $f14, 0xa4($a0) +/* 0A4A64 7F06FF34 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0A4A68 7F06FF38 E48C00B0 */ swc1 $f12, 0xb0($a0) +/* 0A4A6C 7F06FF3C E48E00A8 */ swc1 $f14, 0xa8($a0) +/* 0A4A70 7F06FF40 E48000B4 */ swc1 $f0, 0xb4($a0) +/* 0A4A74 7F06FF44 03E00008 */ jr $ra +/* 0A4A78 7F06FF48 E48400AC */ swc1 $f4, 0xac($a0) + +/* 0A4A7C 7F06FF4C E48E00A4 */ swc1 $f14, 0xa4($a0) +.L7F06FF50: +/* 0A4A80 7F06FF50 E48000B0 */ swc1 $f0, 0xb0($a0) +/* 0A4A84 7F06FF54 03E00008 */ jr $ra +/* 0A4A88 7F06FF58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF5C +/* 0A4A8C 7F06FF5C 03E00008 */ jr $ra +/* 0A4A90 7F06FF60 AC8500A0 */ sw $a1, 0xa0($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF64 +/* 0A4A94 7F06FF64 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A4A98 7F06FF68 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4A9C 7F06FF6C AFB00018 */ sw $s0, 0x18($sp) +/* 0A4AA0 7F06FF70 AFA50034 */ sw $a1, 0x34($sp) +/* 0A4AA4 7F06FF74 00808025 */ move $s0, $a0 +/* 0A4AA8 7F06FF78 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4AAC 7F06FF7C C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0A4AB0 7F06FF80 C6040040 */ lwc1 $f4, 0x40($s0) +/* 0A4AB4 7F06FF84 44803000 */ mtc1 $zero, $f6 +/* 0A4AB8 7F06FF88 00402025 */ move $a0, $v0 +/* 0A4ABC 7F06FF8C 00004025 */ move $t0, $zero +/* 0A4AC0 7F06FF90 4604303E */ c.le.s $f6, $f4 +/* 0A4AC4 7F06FF94 2447FFFF */ addiu $a3, $v0, -1 +/* 0A4AC8 7F06FF98 45000002 */ bc1f .L7F06FFA4 +/* 0A4ACC 7F06FF9C 00000000 */ nop +/* 0A4AD0 7F06FFA0 24080001 */ li $t0, 1 +.L7F06FFA4: +/* 0A4AD4 7F06FFA4 11000003 */ beqz $t0, .L7F06FFB4 +/* 0A4AD8 7F06FFA8 00000000 */ nop +/* 0A4ADC 7F06FFAC 10000001 */ b .L7F06FFB4 +/* 0A4AE0 7F06FFB0 24470001 */ addiu $a3, $v0, 1 +.L7F06FFB4: +/* 0A4AE4 7F06FFB4 8E050020 */ lw $a1, 0x20($s0) +/* 0A4AE8 7F06FFB8 8E06003C */ lw $a2, 0x3c($s0) +/* 0A4AEC 7F06FFBC AFA80024 */ sw $t0, 0x24($sp) +/* 0A4AF0 7F06FFC0 AFA70028 */ sw $a3, 0x28($sp) +/* 0A4AF4 7F06FFC4 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4AF8 7F06FFC8 AFA4002C */ sw $a0, 0x2c($sp) +/* 0A4AFC 7F06FFCC 8FA40028 */ lw $a0, 0x28($sp) +/* 0A4B00 7F06FFD0 A6020030 */ sh $v0, 0x30($s0) +/* 0A4B04 7F06FFD4 8E050020 */ lw $a1, 0x20($s0) +/* 0A4B08 7F06FFD8 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4B0C 7F06FFDC 8E06003C */ lw $a2, 0x3c($s0) +/* 0A4B10 7F06FFE0 8FA70028 */ lw $a3, 0x28($sp) +/* 0A4B14 7F06FFE4 8FA80024 */ lw $t0, 0x24($sp) +/* 0A4B18 7F06FFE8 A6020032 */ sh $v0, 0x32($s0) +/* 0A4B1C 7F06FFEC 86040032 */ lh $a0, 0x32($s0) +/* 0A4B20 7F06FFF0 86030030 */ lh $v1, 0x30($s0) +/* 0A4B24 7F06FFF4 14830007 */ bne $a0, $v1, .L7F070014 +/* 0A4B28 7F06FFF8 00000000 */ nop +/* 0A4B2C 7F06FFFC 44835000 */ mtc1 $v1, $f10 +/* 0A4B30 7F070000 44804000 */ mtc1 $zero, $f8 +/* 0A4B34 7F070004 46805420 */ cvt.s.w $f16, $f10 +/* 0A4B38 7F070008 E608002C */ swc1 $f8, 0x2c($s0) +/* 0A4B3C 7F07000C 1000001B */ b .L7F07007C +/* 0A4B40 7F070010 E6100028 */ swc1 $f16, 0x28($s0) +.L7F070014: +/* 0A4B44 7F070014 1100000B */ beqz $t0, .L7F070044 +/* 0A4B48 7F070018 8FAE002C */ lw $t6, 0x2c($sp) +/* 0A4B4C 7F07001C 448E2000 */ mtc1 $t6, $f4 +/* 0A4B50 7F070020 44834000 */ mtc1 $v1, $f8 +/* 0A4B54 7F070024 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0A4B58 7F070028 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4B5C 7F07002C 468042A0 */ cvt.s.w $f10, $f8 +/* 0A4B60 7F070030 46069001 */ sub.s $f0, $f18, $f6 +/* 0A4B64 7F070034 46005400 */ add.s $f16, $f10, $f0 +/* 0A4B68 7F070038 E600002C */ swc1 $f0, 0x2c($s0) +/* 0A4B6C 7F07003C 1000000F */ b .L7F07007C +/* 0A4B70 7F070040 E6100028 */ swc1 $f16, 0x28($s0) +.L7F070044: +/* 0A4B74 7F070044 44879000 */ mtc1 $a3, $f18 +/* 0A4B78 7F070048 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0A4B7C 7F07004C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4B80 7F070050 468091A0 */ cvt.s.w $f6, $f18 +/* 0A4B84 7F070054 44811000 */ mtc1 $at, $f2 +/* 0A4B88 7F070058 44845000 */ mtc1 $a0, $f10 +/* 0A4B8C 7F07005C 00000000 */ nop +/* 0A4B90 7F070060 46805420 */ cvt.s.w $f16, $f10 +/* 0A4B94 7F070064 46062201 */ sub.s $f8, $f4, $f6 +/* 0A4B98 7F070068 46081001 */ sub.s $f0, $f2, $f8 +/* 0A4B9C 7F07006C 46001481 */ sub.s $f18, $f2, $f0 +/* 0A4BA0 7F070070 E600002C */ swc1 $f0, 0x2c($s0) +/* 0A4BA4 7F070074 46128100 */ add.s $f4, $f16, $f18 +/* 0A4BA8 7F070078 E6040028 */ swc1 $f4, 0x28($s0) +.L7F07007C: +/* 0A4BAC 7F07007C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4BB0 7F070080 8FB00018 */ lw $s0, 0x18($sp) +/* 0A4BB4 7F070084 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A4BB8 7F070088 03E00008 */ jr $ra +/* 0A4BBC 7F07008C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F070090 +/* 0A4BC0 7F070090 44856000 */ mtc1 $a1, $f12 +/* 0A4BC4 7F070094 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A4BC8 7F070098 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4BCC 7F07009C AFB00018 */ sw $s0, 0x18($sp) +/* 0A4BD0 7F0700A0 44056000 */ mfc1 $a1, $f12 +/* 0A4BD4 7F0700A4 00808025 */ move $s0, $a0 +/* 0A4BD8 7F0700A8 0FC1BFD9 */ jal sub_GAME_7F06FF64 +/* 0A4BDC 7F0700AC AFA60038 */ sw $a2, 0x38($sp) +/* 0A4BE0 7F0700B0 8E0E0054 */ lw $t6, 0x54($s0) +/* 0A4BE4 7F0700B4 51C00043 */ beql $t6, $zero, .L7F0701C4 +/* 0A4BE8 7F0700B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4BEC 7F0700BC 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4BF0 7F0700C0 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0A4BF4 7F0700C4 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0A4BF8 7F0700C8 44803000 */ mtc1 $zero, $f6 +/* 0A4BFC 7F0700CC 00402025 */ move $a0, $v0 +/* 0A4C00 7F0700D0 00004025 */ move $t0, $zero +/* 0A4C04 7F0700D4 4604303E */ c.le.s $f6, $f4 +/* 0A4C08 7F0700D8 2447FFFF */ addiu $a3, $v0, -1 +/* 0A4C0C 7F0700DC 45000002 */ bc1f .L7F0700E8 +/* 0A4C10 7F0700E0 00000000 */ nop +/* 0A4C14 7F0700E4 24080001 */ li $t0, 1 +.L7F0700E8: +/* 0A4C18 7F0700E8 11000003 */ beqz $t0, .L7F0700F8 +/* 0A4C1C 7F0700EC 00000000 */ nop +/* 0A4C20 7F0700F0 10000001 */ b .L7F0700F8 +/* 0A4C24 7F0700F4 24470001 */ addiu $a3, $v0, 1 +.L7F0700F8: +/* 0A4C28 7F0700F8 8E050054 */ lw $a1, 0x54($s0) +/* 0A4C2C 7F0700FC 8E06006C */ lw $a2, 0x6c($s0) +/* 0A4C30 7F070100 AFA80024 */ sw $t0, 0x24($sp) +/* 0A4C34 7F070104 AFA70028 */ sw $a3, 0x28($sp) +/* 0A4C38 7F070108 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4C3C 7F07010C AFA4002C */ sw $a0, 0x2c($sp) +/* 0A4C40 7F070110 8FA40028 */ lw $a0, 0x28($sp) +/* 0A4C44 7F070114 A6020060 */ sh $v0, 0x60($s0) +/* 0A4C48 7F070118 8E050054 */ lw $a1, 0x54($s0) +/* 0A4C4C 7F07011C 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4C50 7F070120 8E06006C */ lw $a2, 0x6c($s0) +/* 0A4C54 7F070124 8FA70028 */ lw $a3, 0x28($sp) +/* 0A4C58 7F070128 8FA80024 */ lw $t0, 0x24($sp) +/* 0A4C5C 7F07012C A6020062 */ sh $v0, 0x62($s0) +/* 0A4C60 7F070130 86040062 */ lh $a0, 0x62($s0) +/* 0A4C64 7F070134 86030060 */ lh $v1, 0x60($s0) +/* 0A4C68 7F070138 14830007 */ bne $a0, $v1, .L7F070158 +/* 0A4C6C 7F07013C 00000000 */ nop +/* 0A4C70 7F070140 44835000 */ mtc1 $v1, $f10 +/* 0A4C74 7F070144 44804000 */ mtc1 $zero, $f8 +/* 0A4C78 7F070148 46805420 */ cvt.s.w $f16, $f10 +/* 0A4C7C 7F07014C E608005C */ swc1 $f8, 0x5c($s0) +/* 0A4C80 7F070150 1000001B */ b .L7F0701C0 +/* 0A4C84 7F070154 E6100058 */ swc1 $f16, 0x58($s0) +.L7F070158: +/* 0A4C88 7F070158 1100000B */ beqz $t0, .L7F070188 +/* 0A4C8C 7F07015C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0A4C90 7F070160 448F2000 */ mtc1 $t7, $f4 +/* 0A4C94 7F070164 44834000 */ mtc1 $v1, $f8 +/* 0A4C98 7F070168 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 0A4C9C 7F07016C 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4CA0 7F070170 468042A0 */ cvt.s.w $f10, $f8 +/* 0A4CA4 7F070174 46069001 */ sub.s $f0, $f18, $f6 +/* 0A4CA8 7F070178 46005400 */ add.s $f16, $f10, $f0 +/* 0A4CAC 7F07017C E600005C */ swc1 $f0, 0x5c($s0) +/* 0A4CB0 7F070180 1000000F */ b .L7F0701C0 +/* 0A4CB4 7F070184 E6100058 */ swc1 $f16, 0x58($s0) +.L7F070188: +/* 0A4CB8 7F070188 44879000 */ mtc1 $a3, $f18 +/* 0A4CBC 7F07018C C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A4CC0 7F070190 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4CC4 7F070194 468091A0 */ cvt.s.w $f6, $f18 +/* 0A4CC8 7F070198 44811000 */ mtc1 $at, $f2 +/* 0A4CCC 7F07019C 44845000 */ mtc1 $a0, $f10 +/* 0A4CD0 7F0701A0 00000000 */ nop +/* 0A4CD4 7F0701A4 46805420 */ cvt.s.w $f16, $f10 +/* 0A4CD8 7F0701A8 46062201 */ sub.s $f8, $f4, $f6 +/* 0A4CDC 7F0701AC 46081001 */ sub.s $f0, $f2, $f8 +/* 0A4CE0 7F0701B0 46001481 */ sub.s $f18, $f2, $f0 +/* 0A4CE4 7F0701B4 E600005C */ swc1 $f0, 0x5c($s0) +/* 0A4CE8 7F0701B8 46128100 */ add.s $f4, $f16, $f18 +/* 0A4CEC 7F0701BC E6040058 */ swc1 $f4, 0x58($s0) +.L7F0701C0: +/* 0A4CF0 7F0701C0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0701C4: +/* 0A4CF4 7F0701C4 8FB00018 */ lw $s0, 0x18($sp) +/* 0A4CF8 7F0701C8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A4CFC 7F0701CC 03E00008 */ jr $ra +/* 0A4D00 7F0701D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0701D4 +/* 0A4D04 7F0701D4 3C018003 */ lui $at, %hi(D_80036250) +/* 0A4D08 7F0701D8 03E00008 */ jr $ra +/* 0A4D0C 7F0701DC AC246250 */ sw $a0, %lo(D_80036250)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0701E0 +/* 0A4D10 7F0701E0 3C028003 */ lui $v0, %hi(D_80036250) +/* 0A4D14 7F0701E4 03E00008 */ jr $ra +/* 0A4D18 7F0701E8 8C426250 */ lw $v0, %lo(D_80036250)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701EC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054D4C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0701EC +/* 0A4D1C 7F0701EC 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0A4D20 7F0701F0 AFBF005C */ sw $ra, 0x5c($sp) +/* 0A4D24 7F0701F4 AFB30058 */ sw $s3, 0x58($sp) +/* 0A4D28 7F0701F8 AFB20054 */ sw $s2, 0x54($sp) +/* 0A4D2C 7F0701FC AFB10050 */ sw $s1, 0x50($sp) +/* 0A4D30 7F070200 AFB0004C */ sw $s0, 0x4c($sp) +/* 0A4D34 7F070204 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0A4D38 7F070208 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0A4D3C 7F07020C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0A4D40 7F070210 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0A4D44 7F070214 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0A4D48 7F070218 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0A4D4C 7F07021C AFA60100 */ sw $a2, 0x100($sp) +/* 0A4D50 7F070220 AFA70104 */ sw $a3, 0x104($sp) +/* 0A4D54 7F070224 8C8E0008 */ lw $t6, 8($a0) +/* 0A4D58 7F070228 4485A000 */ mtc1 $a1, $f20 +/* 0A4D5C 7F07022C 24010001 */ li $at, 1 +/* 0A4D60 7F070230 8DC50000 */ lw $a1, ($t6) +/* 0A4D64 7F070234 00808825 */ move $s1, $a0 +/* 0A4D68 7F070238 94A20000 */ lhu $v0, ($a1) +/* 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 +/* 0A4D7C 7F07024C 8CB20004 */ lw $s2, 4($a1) +/* 0A4D80 7F070250 80580000 */ lb $t8, ($v0) +/* 0A4D84 7F070254 00408025 */ move $s0, $v0 +/* 0A4D88 7F070258 5700020A */ bnezl $t8, .L7F070A84 +/* 0A4D8C 7F07025C C7B40108 */ lwc1 $f20, 0x108($sp) +/* 0A4D90 7F070260 96590000 */ lhu $t9, ($s2) +/* 0A4D94 7F070264 3C0B8003 */ lui $t3, %hi(D_80036254) +/* 0A4D98 7F070268 256B6254 */ addiu $t3, %lo(D_80036254) # addiu $t3, $t3, 0x6254 +/* 0A4D9C 7F07026C AFB900E4 */ sw $t9, 0xe4($sp) +/* 0A4DA0 7F070270 8E280008 */ lw $t0, 8($s1) +/* 0A4DA4 7F070274 27AA00C8 */ addiu $t2, $sp, 0xc8 +/* 0A4DA8 7F070278 4480C000 */ mtc1 $zero, $f24 +/* 0A4DAC 7F07027C 8D090004 */ lw $t1, 4($t0) +/* 0A4DB0 7F070280 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0A4DB4 7F070284 C62600B8 */ lwc1 $f6, 0xb8($s1) +/* 0A4DB8 7F070288 C6240014 */ lwc1 $f4, 0x14($s1) +/* 0A4DBC 7F07028C 46062202 */ mul.s $f8, $f4, $f6 +/* 0A4DC0 7F070290 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 0A4DC4 7F070294 8D610000 */ lw $at, ($t3) +/* 0A4DC8 7F070298 8D6E0004 */ lw $t6, 4($t3) +/* 0A4DCC 7F07029C AD410000 */ sw $at, ($t2) +/* 0A4DD0 7F0702A0 8D610008 */ lw $at, 8($t3) +/* 0A4DD4 7F0702A4 AD4E0004 */ sw $t6, 4($t2) +/* 0A4DD8 7F0702A8 AD410008 */ sw $at, 8($t2) +/* 0A4DDC 7F0702AC C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A4DE0 7F0702B0 E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0A4DE4 7F0702B4 C4500038 */ lwc1 $f16, 0x38($v0) +/* 0A4DE8 7F0702B8 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 0A4DEC 7F0702BC C452003C */ lwc1 $f18, 0x3c($v0) +/* 0A4DF0 7F0702C0 C7B00100 */ lwc1 $f16, 0x100($sp) +/* 0A4DF4 7F0702C4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0A4DF8 7F0702C8 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A4DFC 7F0702CC C45C0030 */ lwc1 $f28, 0x30($v0) +/* 0A4E00 7F0702D0 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A4E04 7F0702D4 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A4E08 7F0702D8 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A4E0C 7F0702DC C448002C */ lwc1 $f8, 0x2c($v0) +/* 0A4E10 7F0702E0 E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0A4E14 7F0702E4 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0A4E18 7F0702E8 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0A4E1C 7F0702EC 804F0001 */ lb $t7, 1($v0) +/* 0A4E20 7F0702F0 AFAF0094 */ sw $t7, 0x94($sp) +/* 0A4E24 7F0702F4 C63E0040 */ lwc1 $f30, 0x40($s1) +/* 0A4E28 7F0702F8 4618F03C */ c.lt.s $f30, $f24 +/* 0A4E2C 7F0702FC 00000000 */ nop +/* 0A4E30 7F070300 45020003 */ bc1fl .L7F070310 +/* 0A4E34 7F070304 C6200070 */ lwc1 $f0, 0x70($s1) +/* 0A4E38 7F070308 4600F787 */ neg.s $f30, $f30 +/* 0A4E3C 7F07030C C6200070 */ lwc1 $f0, 0x70($s1) +.L7F070310: +/* 0A4E40 7F070310 4618003C */ c.lt.s $f0, $f24 +/* 0A4E44 7F070314 00000000 */ nop +/* 0A4E48 7F070318 45020003 */ bc1fl .L7F070328 +/* 0A4E4C 7F07031C 4610A03E */ c.le.s $f20, $f16 +/* 0A4E50 7F070320 46000007 */ neg.s $f0, $f0 +/* 0A4E54 7F070324 4610A03E */ c.le.s $f20, $f16 +.L7F070328: +/* 0A4E58 7F070328 00009825 */ move $s3, $zero +/* 0A4E5C 7F07032C 45000002 */ bc1f .L7F070338 +/* 0A4E60 7F070330 00000000 */ nop +/* 0A4E64 7F070334 24130001 */ li $s3, 1 +.L7F070338: +/* 0A4E68 7F070338 5260000A */ beql $s3, $zero, .L7F070364 +/* 0A4E6C 7F07033C 4600A306 */ mov.s $f12, $f20 +/* 0A4E70 7F070340 4600A306 */ mov.s $f12, $f20 +/* 0A4E74 7F070344 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4E78 7F070348 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0A4E7C 7F07034C 24520001 */ addiu $s2, $v0, 1 +/* 0A4E80 7F070350 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4E84 7F070354 C7AC0100 */ lwc1 $f12, 0x100($sp) +/* 0A4E88 7F070358 10000008 */ b .L7F07037C +/* 0A4E8C 7F07035C AFA200B8 */ sw $v0, 0xb8($sp) +/* 0A4E90 7F070360 4600A306 */ mov.s $f12, $f20 +.L7F070364: +/* 0A4E94 7F070364 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4E98 7F070368 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0A4E9C 7F07036C 2452FFFF */ addiu $s2, $v0, -1 +/* 0A4EA0 7F070370 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4EA4 7F070374 C7AC0100 */ lwc1 $f12, 0x100($sp) +/* 0A4EA8 7F070378 AFA200B8 */ sw $v0, 0xb8($sp) +.L7F07037C: +/* 0A4EAC 7F07037C 3C018005 */ lui $at, %hi(D_80054D4C) +/* 0A4EB0 7F070380 8FA700B8 */ lw $a3, 0xb8($sp) +/* 0A4EB4 7F070384 C43A4D4C */ lwc1 $f26, %lo(D_80054D4C)($at) +.L7F070388: +/* 0A4EB8 7F070388 12600006 */ beqz $s3, .L7F0703A4 +/* 0A4EBC 7F07038C 0247082A */ slt $at, $s2, $a3 +/* 0A4EC0 7F070390 00F2082A */ slt $at, $a3, $s2 +/* 0A4EC4 7F070394 50200006 */ beql $at, $zero, .L7F0703B0 +/* 0A4EC8 7F070398 8E250020 */ lw $a1, 0x20($s1) +/* 0A4ECC 7F07039C 10000130 */ b .L7F070860 +/* 0A4ED0 7F0703A0 C7A600AC */ lwc1 $f6, 0xac($sp) +.L7F0703A4: +/* 0A4ED4 7F0703A4 5420012E */ bnezl $at, .L7F070860 +/* 0A4ED8 7F0703A8 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0A4EDC 7F0703AC 8E250020 */ lw $a1, 0x20($s1) +.L7F0703B0: +/* 0A4EE0 7F0703B0 8E26003C */ lw $a2, 0x3c($s1) +/* 0A4EE4 7F0703B4 AFA700B8 */ sw $a3, 0xb8($sp) +/* 0A4EE8 7F0703B8 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4EEC 7F0703BC 02402025 */ move $a0, $s2 +/* 0A4EF0 7F0703C0 A6220030 */ sh $v0, 0x30($s1) +/* 0A4EF4 7F0703C4 8FB80094 */ lw $t8, 0x94($sp) +/* 0A4EF8 7F0703C8 00401825 */ move $v1, $v0 +/* 0A4EFC 7F0703CC 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A4F00 7F0703D0 1300000E */ beqz $t8, .L7F07040C +/* 0A4F04 7F0703D4 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A4F08 7F0703D8 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A4F0C 7F0703DC C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0A4F10 7F0703E0 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0A4F14 7F0703E4 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0A4F18 7F0703E8 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0A4F1C 7F0703EC E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0A4F20 7F0703F0 C6080018 */ lwc1 $f8, 0x18($s0) +/* 0A4F24 7F0703F4 4608C032 */ c.eq.s $f24, $f8 +/* 0A4F28 7F0703F8 00000000 */ nop +/* 0A4F2C 7F0703FC 45000046 */ bc1f .L7F070518 +/* 0A4F30 7F070400 00000000 */ nop +/* 0A4F34 7F070404 10000044 */ b .L7F070518 +/* 0A4F38 7F070408 C7BC0098 */ lwc1 $f28, 0x98($sp) +.L7F07040C: +/* 0A4F3C 7F07040C 82250024 */ lb $a1, 0x24($s1) +/* 0A4F40 7F070410 8E270020 */ lw $a3, 0x20($s1) +/* 0A4F44 7F070414 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 0A4F48 7F070418 AFB90014 */ sw $t9, 0x14($sp) +/* 0A4F4C 7F07041C 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A4F50 7F070420 AFA30010 */ sw $v1, 0x10($sp) +/* 0A4F54 7F070424 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4F58 7F070428 44818000 */ mtc1 $at, $f16 +/* 0A4F5C 7F07042C C7AA00DC */ lwc1 $f10, 0xdc($sp) +/* 0A4F60 7F070430 46000586 */ mov.s $f22, $f0 +/* 0A4F64 7F070434 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A4F68 7F070438 46105032 */ c.eq.s $f10, $f16 +/* 0A4F6C 7F07043C C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0A4F70 7F070440 4503000A */ bc1tl .L7F07046C +/* 0A4F74 7F070444 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A4F78 7F070448 460A1082 */ mul.s $f2, $f2, $f10 +/* 0A4F7C 7F07044C C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A4F80 7F070450 460A9102 */ mul.s $f4, $f18, $f10 +/* 0A4F84 7F070454 00000000 */ nop +/* 0A4F88 7F070458 460A6302 */ mul.s $f12, $f12, $f10 +/* 0A4F8C 7F07045C E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A4F90 7F070460 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 0A4F94 7F070464 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A4F98 7F070468 C7A200C8 */ lwc1 $f2, 0xc8($sp) +.L7F07046C: +/* 0A4F9C 7F07046C 16600008 */ bnez $s3, .L7F070490 +/* 0A4FA0 7F070470 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A4FA4 7F070474 4600C03C */ c.lt.s $f24, $f0 +/* 0A4FA8 7F070478 46001087 */ neg.s $f2, $f2 +/* 0A4FAC 7F07047C 46006307 */ neg.s $f12, $f12 +/* 0A4FB0 7F070480 E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A4FB4 7F070484 45000002 */ bc1f .L7F070490 +/* 0A4FB8 7F070488 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A4FBC 7F07048C 4600D581 */ sub.s $f22, $f26, $f0 +.L7F070490: +/* 0A4FC0 7F070490 0FC15FA8 */ jal cosf +/* 0A4FC4 7F070494 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4FC8 7F070498 46000506 */ mov.s $f20, $f0 +/* 0A4FCC 7F07049C 0FC15FAB */ jal sinf +/* 0A4FD0 7F0704A0 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4FD4 7F0704A4 C7A600C8 */ lwc1 $f6, 0xc8($sp) +/* 0A4FD8 7F0704A8 C7B000D0 */ lwc1 $f16, 0xd0($sp) +/* 0A4FDC 7F0704AC C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A4FE0 7F0704B0 46143202 */ mul.s $f8, $f6, $f20 +/* 0A4FE4 7F0704B4 00000000 */ nop +/* 0A4FE8 7F0704B8 46008482 */ mul.s $f18, $f16, $f0 +/* 0A4FEC 7F0704BC 46124100 */ add.s $f4, $f8, $f18 +/* 0A4FF0 7F0704C0 C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0A4FF4 7F0704C4 46045200 */ add.s $f8, $f10, $f4 +/* 0A4FF8 7F0704C8 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0A4FFC 7F0704CC 46003287 */ neg.s $f10, $f6 +/* 0A5000 7F0704D0 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0A5004 7F0704D4 46005102 */ mul.s $f4, $f10, $f0 +/* 0A5008 7F0704D8 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0A500C 7F0704DC 46148202 */ mul.s $f8, $f16, $f20 +/* 0A5010 7F0704E0 46082480 */ add.s $f18, $f4, $f8 +/* 0A5014 7F0704E4 46123280 */ add.s $f10, $f6, $f18 +/* 0A5018 7F0704E8 E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0A501C 7F0704EC C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A5020 7F0704F0 4610C032 */ c.eq.s $f24, $f16 +/* 0A5024 7F0704F4 00000000 */ nop +/* 0A5028 7F0704F8 45000007 */ bc1f .L7F070518 +/* 0A502C 7F0704FC 00000000 */ nop +/* 0A5030 7F070500 4616E700 */ add.s $f28, $f28, $f22 +/* 0A5034 7F070504 461CD03E */ c.le.s $f26, $f28 +/* 0A5038 7F070508 00000000 */ nop +/* 0A503C 7F07050C 45000002 */ bc1f .L7F070518 +/* 0A5040 7F070510 00000000 */ nop +/* 0A5044 7F070514 461AE701 */ sub.s $f28, $f28, $f26 +.L7F070518: +/* 0A5048 7F070518 52600004 */ beql $s3, $zero, .L7F07052C +/* 0A504C 7F07051C 2652FFFF */ addiu $s2, $s2, -1 +/* 0A5050 7F070520 10000002 */ b .L7F07052C +/* 0A5054 7F070524 26520001 */ addiu $s2, $s2, 1 +/* 0A5058 7F070528 2652FFFF */ addiu $s2, $s2, -1 +.L7F07052C: +/* 0A505C 7F07052C 02402025 */ move $a0, $s2 +/* 0A5060 7F070530 8E250020 */ lw $a1, 0x20($s1) +/* 0A5064 7F070534 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A5068 7F070538 8E26003C */ lw $a2, 0x3c($s1) +/* 0A506C 7F07053C A6220032 */ sh $v0, 0x32($s1) +/* 0A5070 7F070540 86290032 */ lh $t1, 0x32($s1) +/* 0A5074 7F070544 86280030 */ lh $t0, 0x30($s1) +/* 0A5078 7F070548 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A507C 7F07054C 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A5080 7F070550 110900C0 */ beq $t0, $t1, .L7F070854 +/* 0A5084 7F070554 27AD00C8 */ addiu $t5, $sp, 0xc8 +/* 0A5088 7F070558 82250024 */ lb $a1, 0x24($s1) +/* 0A508C 7F07055C 8E270020 */ lw $a3, 0x20($s1) +/* 0A5090 7F070560 240C0001 */ li $t4, 1 +/* 0A5094 7F070564 AFAC0094 */ sw $t4, 0x94($sp) +/* 0A5098 7F070568 AFAD0014 */ sw $t5, 0x14($sp) +/* 0A509C 7F07056C 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A50A0 7F070570 AFA20010 */ sw $v0, 0x10($sp) +/* 0A50A4 7F070574 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A50A8 7F070578 44814000 */ mtc1 $at, $f8 +/* 0A50AC 7F07057C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 0A50B0 7F070580 46000586 */ mov.s $f22, $f0 +/* 0A50B4 7F070584 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A50B8 7F070588 46082032 */ c.eq.s $f4, $f8 +/* 0A50BC 7F07058C C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A50C0 7F070590 4503000A */ bc1tl .L7F0705BC +/* 0A50C4 7F070594 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A50C8 7F070598 46041082 */ mul.s $f2, $f2, $f4 +/* 0A50CC 7F07059C C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A50D0 7F0705A0 46043482 */ mul.s $f18, $f6, $f4 +/* 0A50D4 7F0705A4 00000000 */ nop +/* 0A50D8 7F0705A8 46046302 */ mul.s $f12, $f12, $f4 +/* 0A50DC 7F0705AC E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A50E0 7F0705B0 E7B200CC */ swc1 $f18, 0xcc($sp) +/* 0A50E4 7F0705B4 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A50E8 7F0705B8 C7A200C8 */ lwc1 $f2, 0xc8($sp) +.L7F0705BC: +/* 0A50EC 7F0705BC 16600008 */ bnez $s3, .L7F0705E0 +/* 0A50F0 7F0705C0 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A50F4 7F0705C4 4600C03C */ c.lt.s $f24, $f0 +/* 0A50F8 7F0705C8 46001087 */ neg.s $f2, $f2 +/* 0A50FC 7F0705CC 46006307 */ neg.s $f12, $f12 +/* 0A5100 7F0705D0 E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A5104 7F0705D4 45000002 */ bc1f .L7F0705E0 +/* 0A5108 7F0705D8 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A510C 7F0705DC 4600D581 */ sub.s $f22, $f26, $f0 +.L7F0705E0: +/* 0A5110 7F0705E0 0FC15FA8 */ jal cosf +/* 0A5114 7F0705E4 C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A5118 7F0705E8 46000506 */ mov.s $f20, $f0 +/* 0A511C 7F0705EC 0FC15FAB */ jal sinf +/* 0A5120 7F0705F0 C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A5124 7F0705F4 3C0A8003 */ lui $t2, %hi(D_80036250) +/* 0A5128 7F0705F8 8D4A6250 */ lw $t2, %lo(D_80036250)($t2) +/* 0A512C 7F0705FC C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A5130 7F070600 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A5134 7F070604 11400056 */ beqz $t2, .L7F070760 +/* 0A5138 7F070608 00000000 */ nop +/* 0A513C 7F07060C 8E2B0054 */ lw $t3, 0x54($s1) +/* 0A5140 7F070610 11600053 */ beqz $t3, .L7F070760 +/* 0A5144 7F070614 00000000 */ nop +/* 0A5148 7F070618 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A514C 7F07061C C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A5150 7F070620 461EC03C */ c.lt.s $f24, $f30 +/* 0A5154 7F070624 46006282 */ mul.s $f10, $f12, $f0 +/* 0A5158 7F070628 46001187 */ neg.s $f6, $f2 +/* 0A515C 7F07062C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A5160 7F070630 46141402 */ mul.s $f16, $f2, $f20 +/* 0A5164 7F070634 00000000 */ nop +/* 0A5168 7F070638 46146102 */ mul.s $f4, $f12, $f20 +/* 0A516C 7F07063C 00000000 */ nop +/* 0A5170 7F070640 46003482 */ mul.s $f18, $f6, $f0 +/* 0A5174 7F070644 46105200 */ add.s $f8, $f10, $f16 +/* 0A5178 7F070648 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0A517C 7F07064C 46122280 */ add.s $f10, $f4, $f18 +/* 0A5180 7F070650 45000028 */ bc1f .L7F0706F4 +/* 0A5184 7F070654 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0A5188 7F070658 C6280088 */ lwc1 $f8, 0x88($s1) +/* 0A518C 7F07065C C63000A4 */ lwc1 $f16, 0xa4($s1) +/* 0A5190 7F070660 C6220084 */ lwc1 $f2, 0x84($s1) +/* 0A5194 7F070664 4608F182 */ mul.s $f6, $f30, $f8 +/* 0A5198 7F070668 46068103 */ div.s $f4, $f16, $f6 +/* 0A519C 7F07066C 46041001 */ sub.s $f0, $f2, $f4 +/* 0A51A0 7F070670 4618003C */ c.lt.s $f0, $f24 +/* 0A51A4 7F070674 00000000 */ nop +/* 0A51A8 7F070678 45020003 */ bc1fl .L7F070688 +/* 0A51AC 7F07067C 46001480 */ add.s $f18, $f2, $f0 +/* 0A51B0 7F070680 4600C006 */ mov.s $f0, $f24 +/* 0A51B4 7F070684 46001480 */ add.s $f18, $f2, $f0 +.L7F070688: +/* 0A51B8 7F070688 C6080040 */ lwc1 $f8, 0x40($s0) +/* 0A51BC 7F07068C C610004C */ lwc1 $f16, 0x4c($s0) +/* 0A51C0 7F070690 44815000 */ mtc1 $at, $f10 +/* 0A51C4 7F070694 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0A51C8 7F070698 46104181 */ sub.s $f6, $f8, $f16 +/* 0A51CC 7F07069C 460A9002 */ mul.s $f0, $f18, $f10 +/* 0A51D0 7F0706A0 00000000 */ nop +/* 0A51D4 7F0706A4 46043482 */ mul.s $f18, $f6, $f4 +/* 0A51D8 7F0706A8 461E9283 */ div.s $f10, $f18, $f30 +/* 0A51DC 7F0706AC E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0A51E0 7F0706B0 C6100054 */ lwc1 $f16, 0x54($s0) +/* 0A51E4 7F0706B4 C6080048 */ lwc1 $f8, 0x48($s0) +/* 0A51E8 7F0706B8 46104181 */ sub.s $f6, $f8, $f16 +/* 0A51EC 7F0706BC C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0A51F0 7F0706C0 46043482 */ mul.s $f18, $f6, $f4 +/* 0A51F4 7F0706C4 46105181 */ sub.s $f6, $f10, $f16 +/* 0A51F8 7F0706C8 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 0A51FC 7F0706CC 46003102 */ mul.s $f4, $f6, $f0 +/* 0A5200 7F0706D0 461E9203 */ div.s $f8, $f18, $f30 +/* 0A5204 7F0706D4 46048480 */ add.s $f18, $f16, $f4 +/* 0A5208 7F0706D8 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A520C 7F0706DC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0A5210 7F0706E0 E7A80084 */ swc1 $f8, 0x84($sp) +/* 0A5214 7F0706E4 46003402 */ mul.s $f16, $f6, $f0 +/* 0A5218 7F0706E8 46105100 */ add.s $f4, $f10, $f16 +/* 0A521C 7F0706EC 10000011 */ b .L7F070734 +/* 0A5220 7F0706F0 E7A400A4 */ swc1 $f4, 0xa4($sp) +.L7F0706F4: +/* 0A5224 7F0706F4 C6120040 */ lwc1 $f18, 0x40($s0) +/* 0A5228 7F0706F8 C608004C */ lwc1 $f8, 0x4c($s0) +/* 0A522C 7F0706FC C62A0084 */ lwc1 $f10, 0x84($s1) +/* 0A5230 7F070700 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A5234 7F070704 46089181 */ sub.s $f6, $f18, $f8 +/* 0A5238 7F070708 460A3402 */ mul.s $f16, $f6, $f10 +/* 0A523C 7F07070C 46102480 */ add.s $f18, $f4, $f16 +/* 0A5240 7F070710 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A5244 7F070714 C6060054 */ lwc1 $f6, 0x54($s0) +/* 0A5248 7F070718 C6080048 */ lwc1 $f8, 0x48($s0) +/* 0A524C 7F07071C C6240084 */ lwc1 $f4, 0x84($s1) +/* 0A5250 7F070720 C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0A5254 7F070724 46064281 */ sub.s $f10, $f8, $f6 +/* 0A5258 7F070728 46045402 */ mul.s $f16, $f10, $f4 +/* 0A525C 7F07072C 46109200 */ add.s $f8, $f18, $f16 +/* 0A5260 7F070730 E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070734: +/* 0A5264 7F070734 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0A5268 7F070738 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A526C 7F07073C C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0A5270 7F070740 C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 0A5274 7F070744 460A3100 */ add.s $f4, $f6, $f10 +/* 0A5278 7F070748 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A527C 7F07074C 46109200 */ add.s $f8, $f18, $f16 +/* 0A5280 7F070750 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A5284 7F070754 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A5288 7F070758 1000000F */ b .L7F070798 +/* 0A528C 7F07075C E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070760: +/* 0A5290 7F070760 46141102 */ mul.s $f4, $f2, $f20 +/* 0A5294 7F070764 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A5298 7F070768 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A529C 7F07076C 46006402 */ mul.s $f16, $f12, $f0 +/* 0A52A0 7F070770 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A52A4 7F070774 46045480 */ add.s $f18, $f10, $f4 +/* 0A52A8 7F070778 46001102 */ mul.s $f4, $f2, $f0 +/* 0A52AC 7F07077C C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0A52B0 7F070780 46128200 */ add.s $f8, $f16, $f18 +/* 0A52B4 7F070784 46146482 */ mul.s $f18, $f12, $f20 +/* 0A52B8 7F070788 46045401 */ sub.s $f16, $f10, $f4 +/* 0A52BC 7F07078C E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0A52C0 7F070790 46109200 */ add.s $f8, $f18, $f16 +/* 0A52C4 7F070794 E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070798: +/* 0A52C8 7F070798 C600005C */ lwc1 $f0, 0x5c($s0) +/* 0A52CC 7F07079C 4600C03C */ c.lt.s $f24, $f0 +/* 0A52D0 7F0707A0 00000000 */ nop +/* 0A52D4 7F0707A4 45020020 */ bc1fl .L7F070828 +/* 0A52D8 7F0707A8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A52DC 7F0707AC 461EC03C */ c.lt.s $f24, $f30 +/* 0A52E0 7F0707B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A52E4 7F0707B4 4502001C */ bc1fl .L7F070828 +/* 0A52E8 7F0707B8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A52EC 7F0707BC 44813000 */ mtc1 $at, $f6 +/* 0A52F0 7F0707C0 00000000 */ nop +/* 0A52F4 7F0707C4 461E3083 */ div.s $f2, $f6, $f30 +/* 0A52F8 7F0707C8 4602003C */ c.lt.s $f0, $f2 +/* 0A52FC 7F0707CC 46001306 */ mov.s $f12, $f2 +/* 0A5300 7F0707D0 45020005 */ bc1fl .L7F0707E8 +/* 0A5304 7F0707D4 46020281 */ sub.s $f10, $f0, $f2 +/* 0A5308 7F0707D8 46000306 */ mov.s $f12, $f0 +/* 0A530C 7F0707DC 10000003 */ b .L7F0707EC +/* 0A5310 7F0707E0 E618005C */ swc1 $f24, 0x5c($s0) +/* 0A5314 7F0707E4 46020281 */ sub.s $f10, $f0, $f2 +.L7F0707E8: +/* 0A5318 7F0707E8 E60A005C */ swc1 $f10, 0x5c($s0) +.L7F0707EC: +/* 0A531C 7F0707EC C6040058 */ lwc1 $f4, 0x58($s0) +/* 0A5320 7F0707F0 460C2482 */ mul.s $f18, $f4, $f12 +/* 0A5324 7F0707F4 4612B580 */ add.s $f22, $f22, $f18 +/* 0A5328 7F0707F8 4618B03C */ c.lt.s $f22, $f24 +/* 0A532C 7F0707FC 00000000 */ nop +/* 0A5330 7F070800 45020004 */ bc1fl .L7F070814 +/* 0A5334 7F070804 4616D03E */ c.le.s $f26, $f22 +/* 0A5338 7F070808 10000006 */ b .L7F070824 +/* 0A533C 7F07080C 461AB580 */ add.s $f22, $f22, $f26 +/* 0A5340 7F070810 4616D03E */ c.le.s $f26, $f22 +.L7F070814: +/* 0A5344 7F070814 00000000 */ nop +/* 0A5348 7F070818 45020003 */ bc1fl .L7F070828 +/* 0A534C 7F07081C C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A5350 7F070820 461AB581 */ sub.s $f22, $f22, $f26 +.L7F070824: +/* 0A5354 7F070824 C6100018 */ lwc1 $f16, 0x18($s0) +.L7F070828: +/* 0A5358 7F070828 4610C032 */ c.eq.s $f24, $f16 +/* 0A535C 7F07082C 00000000 */ nop +/* 0A5360 7F070830 45000008 */ bc1f .L7F070854 +/* 0A5364 7F070834 00000000 */ nop +/* 0A5368 7F070838 4616E000 */ add.s $f0, $f28, $f22 +/* 0A536C 7F07083C 4600D03E */ c.le.s $f26, $f0 +/* 0A5370 7F070840 E7A00098 */ swc1 $f0, 0x98($sp) +/* 0A5374 7F070844 45000003 */ bc1f .L7F070854 +/* 0A5378 7F070848 00000000 */ nop +/* 0A537C 7F07084C 461A0201 */ sub.s $f8, $f0, $f26 +/* 0A5380 7F070850 E7A80098 */ swc1 $f8, 0x98($sp) +.L7F070854: +/* 0A5384 7F070854 1000FECC */ b .L7F070388 +/* 0A5388 7F070858 8FA700B8 */ lw $a3, 0xb8($sp) +/* 0A538C 7F07085C C7A600AC */ lwc1 $f6, 0xac($sp) +.L7F070860: +/* 0A5390 7F070860 E6060034 */ swc1 $f6, 0x34($s0) +/* 0A5394 7F070864 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0A5398 7F070868 E60A0038 */ swc1 $f10, 0x38($s0) +/* 0A539C 7F07086C C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 0A53A0 7F070870 E61C0030 */ swc1 $f28, 0x30($s0) +/* 0A53A4 7F070874 E604003C */ swc1 $f4, 0x3c($s0) +/* 0A53A8 7F070878 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A53AC 7F07087C E6120024 */ swc1 $f18, 0x24($s0) +/* 0A53B0 7F070880 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0A53B4 7F070884 E6100028 */ swc1 $f16, 0x28($s0) +/* 0A53B8 7F070888 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0A53BC 7F07088C E608002C */ swc1 $f8, 0x2c($s0) +/* 0A53C0 7F070890 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0A53C4 7F070894 E6060020 */ swc1 $f6, 0x20($s0) +/* 0A53C8 7F070898 86220030 */ lh $v0, 0x30($s1) +/* 0A53CC 7F07089C 86230032 */ lh $v1, 0x32($s1) +/* 0A53D0 7F0708A0 14620006 */ bne $v1, $v0, .L7F0708BC +/* 0A53D4 7F0708A4 00000000 */ nop +/* 0A53D8 7F0708A8 44825000 */ mtc1 $v0, $f10 +/* 0A53DC 7F0708AC E638002C */ swc1 $f24, 0x2c($s1) +/* 0A53E0 7F0708B0 46805120 */ cvt.s.w $f4, $f10 +/* 0A53E4 7F0708B4 10000019 */ b .L7F07091C +/* 0A53E8 7F0708B8 E6240028 */ swc1 $f4, 0x28($s1) +.L7F0708BC: +/* 0A53EC 7F0708BC 5260000C */ beql $s3, $zero, .L7F0708F0 +/* 0A53F0 7F0708C0 44878000 */ mtc1 $a3, $f16 +/* 0A53F4 7F0708C4 44878000 */ mtc1 $a3, $f16 +/* 0A53F8 7F0708C8 44823000 */ mtc1 $v0, $f6 +/* 0A53FC 7F0708CC C7B20100 */ lwc1 $f18, 0x100($sp) +/* 0A5400 7F0708D0 46808220 */ cvt.s.w $f8, $f16 +/* 0A5404 7F0708D4 468032A0 */ cvt.s.w $f10, $f6 +/* 0A5408 7F0708D8 46089001 */ sub.s $f0, $f18, $f8 +/* 0A540C 7F0708DC 46005100 */ add.s $f4, $f10, $f0 +/* 0A5410 7F0708E0 E620002C */ swc1 $f0, 0x2c($s1) +/* 0A5414 7F0708E4 1000000D */ b .L7F07091C +/* 0A5418 7F0708E8 E6240028 */ swc1 $f4, 0x28($s1) +/* 0A541C 7F0708EC 44878000 */ mtc1 $a3, $f16 +.L7F0708F0: +/* 0A5420 7F0708F0 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0A5424 7F0708F4 44833000 */ mtc1 $v1, $f6 +/* 0A5428 7F0708F8 468084A0 */ cvt.s.w $f18, $f16 +/* 0A542C 7F0708FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5430 7F070900 44812000 */ mtc1 $at, $f4 +/* 0A5434 7F070904 468032A0 */ cvt.s.w $f10, $f6 +/* 0A5438 7F070908 46089001 */ sub.s $f0, $f18, $f8 +/* 0A543C 7F07090C 46002401 */ sub.s $f16, $f4, $f0 +/* 0A5440 7F070910 E620002C */ swc1 $f0, 0x2c($s1) +/* 0A5444 7F070914 46105480 */ add.s $f18, $f10, $f16 +/* 0A5448 7F070918 E6320028 */ swc1 $f18, 0x28($s1) +.L7F07091C: +/* 0A544C 7F07091C 8E2E0054 */ lw $t6, 0x54($s1) +/* 0A5450 7F070920 11C00055 */ beqz $t6, .L7F070A78 +/* 0A5454 7F070924 00000000 */ nop +/* 0A5458 7F070928 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A545C 7F07092C C7AC0104 */ lwc1 $f12, 0x104($sp) +/* 0A5460 7F070930 C7B40108 */ lwc1 $f20, 0x108($sp) +/* 0A5464 7F070934 00409025 */ move $s2, $v0 +/* 0A5468 7F070938 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A546C 7F07093C 4600A306 */ mov.s $f12, $f20 +/* 0A5470 7F070940 12600004 */ beqz $s3, .L7F070954 +/* 0A5474 7F070944 AFA2006C */ sw $v0, 0x6c($sp) +/* 0A5478 7F070948 0242082A */ slt $at, $s2, $v0 +/* 0A547C 7F07094C 54200006 */ bnezl $at, .L7F070968 +/* 0A5480 7F070950 820F0002 */ lb $t7, 2($s0) +.L7F070954: +/* 0A5484 7F070954 1660002C */ bnez $s3, .L7F070A08 +/* 0A5488 7F070958 0052082A */ slt $at, $v0, $s2 +/* 0A548C 7F07095C 5020002B */ beql $at, $zero, .L7F070A0C +/* 0A5490 7F070960 3C013F80 */ lui $at, 0x3f80 +/* 0A5494 7F070964 820F0002 */ lb $t7, 2($s0) +.L7F070968: +/* 0A5498 7F070968 51E00005 */ beql $t7, $zero, .L7F070980 +/* 0A549C 7F07096C C6060038 */ lwc1 $f6, 0x38($s0) +/* 0A54A0 7F070970 C6080044 */ lwc1 $f8, 0x44($s0) +/* 0A54A4 7F070974 10000003 */ b .L7F070984 +/* 0A54A8 7F070978 E6080050 */ swc1 $f8, 0x50($s0) +/* 0A54AC 7F07097C C6060038 */ lwc1 $f6, 0x38($s0) +.L7F070980: +/* 0A54B0 7F070980 E6060050 */ swc1 $f6, 0x50($s0) +.L7F070984: +/* 0A54B4 7F070984 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A54B8 7F070988 8E250054 */ lw $a1, 0x54($s1) +/* 0A54BC 7F07098C 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A54C0 7F070990 8E26006C */ lw $a2, 0x6c($s1) +/* 0A54C4 7F070994 A6220060 */ sh $v0, 0x60($s1) +/* 0A54C8 7F070998 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A54CC 7F07099C 8E250054 */ lw $a1, 0x54($s1) +/* 0A54D0 7F0709A0 8E26006C */ lw $a2, 0x6c($s1) +/* 0A54D4 7F0709A4 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A54D8 7F0709A8 24840001 */ addiu $a0, $a0, 1 +/* 0A54DC 7F0709AC A6220062 */ sh $v0, 0x62($s1) +/* 0A54E0 7F0709B0 82250025 */ lb $a1, 0x25($s1) +/* 0A54E4 7F0709B4 8E270054 */ lw $a3, 0x54($s1) +/* 0A54E8 7F0709B8 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 0A54EC 7F0709BC AFB80014 */ sw $t8, 0x14($sp) +/* 0A54F0 7F0709C0 AFA20010 */ sw $v0, 0x10($sp) +/* 0A54F4 7F0709C4 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A54F8 7F0709C8 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A54FC 7F0709CC 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A5500 7F0709D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5504 7F0709D4 44811000 */ mtc1 $at, $f2 +/* 0A5508 7F0709D8 C7AC00DC */ lwc1 $f12, 0xdc($sp) +/* 0A550C 7F0709DC C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 0A5510 7F0709E0 46026032 */ c.eq.s $f12, $f2 +/* 0A5514 7F0709E4 00000000 */ nop +/* 0A5518 7F0709E8 45030004 */ bc1tl .L7F0709FC +/* 0A551C 7F0709EC C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 0A5520 7F0709F0 460C2282 */ mul.s $f10, $f4, $f12 +/* 0A5524 7F0709F4 E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0A5528 7F0709F8 C7B000CC */ lwc1 $f16, 0xcc($sp) +.L7F0709FC: +/* 0A552C 7F0709FC 24190001 */ li $t9, 1 +/* 0A5530 7F070A00 A2190002 */ sb $t9, 2($s0) +/* 0A5534 7F070A04 E6100044 */ swc1 $f16, 0x44($s0) +.L7F070A08: +/* 0A5538 7F070A08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F070A0C: +/* 0A553C 7F070A0C 44811000 */ mtc1 $at, $f2 +/* 0A5540 7F070A10 1260000C */ beqz $s3, .L7F070A44 +/* 0A5544 7F070A14 8FAD006C */ lw $t5, 0x6c($sp) +/* 0A5548 7F070A18 8FA8006C */ lw $t0, 0x6c($sp) +/* 0A554C 7F070A1C 86290060 */ lh $t1, 0x60($s1) +/* 0A5550 7F070A20 44889000 */ mtc1 $t0, $f18 +/* 0A5554 7F070A24 44893000 */ mtc1 $t1, $f6 +/* 0A5558 7F070A28 46809220 */ cvt.s.w $f8, $f18 +/* 0A555C 7F070A2C 46803120 */ cvt.s.w $f4, $f6 +/* 0A5560 7F070A30 4608A001 */ sub.s $f0, $f20, $f8 +/* 0A5564 7F070A34 46002280 */ add.s $f10, $f4, $f0 +/* 0A5568 7F070A38 E620005C */ swc1 $f0, 0x5c($s1) +/* 0A556C 7F070A3C 1000001E */ b .L7F070AB8 +/* 0A5570 7F070A40 E62A0058 */ swc1 $f10, 0x58($s1) +.L7F070A44: +/* 0A5574 7F070A44 448D8000 */ mtc1 $t5, $f16 +/* 0A5578 7F070A48 862C0062 */ lh $t4, 0x62($s1) +/* 0A557C 7F070A4C 468084A0 */ cvt.s.w $f18, $f16 +/* 0A5580 7F070A50 448C3000 */ mtc1 $t4, $f6 +/* 0A5584 7F070A54 00000000 */ nop +/* 0A5588 7F070A58 46803120 */ cvt.s.w $f4, $f6 +/* 0A558C 7F070A5C 4612A201 */ sub.s $f8, $f20, $f18 +/* 0A5590 7F070A60 46081001 */ sub.s $f0, $f2, $f8 +/* 0A5594 7F070A64 46001281 */ sub.s $f10, $f2, $f0 +/* 0A5598 7F070A68 E620005C */ swc1 $f0, 0x5c($s1) +/* 0A559C 7F070A6C 460A2400 */ add.s $f16, $f4, $f10 +/* 0A55A0 7F070A70 10000011 */ b .L7F070AB8 +/* 0A55A4 7F070A74 E6300058 */ swc1 $f16, 0x58($s1) +.L7F070A78: +/* 0A55A8 7F070A78 1000000F */ b .L7F070AB8 +/* 0A55AC 7F070A7C A2000002 */ sb $zero, 2($s0) +/* 0A55B0 7F070A80 C7B40108 */ lwc1 $f20, 0x108($sp) +.L7F070A84: +/* 0A55B4 7F070A84 02202025 */ move $a0, $s1 +/* 0A55B8 7F070A88 8FA50100 */ lw $a1, 0x100($sp) +/* 0A55BC 7F070A8C 4406A000 */ mfc1 $a2, $f20 +/* 0A55C0 7F070A90 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A55C4 7F070A94 00000000 */ nop +/* 0A55C8 7F070A98 10000008 */ b .L7F070ABC +/* 0A55CC 7F070A9C 8FBF005C */ lw $ra, 0x5c($sp) +/* 0A55D0 7F070AA0 C7B40108 */ lwc1 $f20, 0x108($sp) +.L7F070AA4: +/* 0A55D4 7F070AA4 02202025 */ move $a0, $s1 +/* 0A55D8 7F070AA8 8FA50100 */ lw $a1, 0x100($sp) +/* 0A55DC 7F070AAC 4406A000 */ mfc1 $a2, $f20 +/* 0A55E0 7F070AB0 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A55E4 7F070AB4 00000000 */ nop +.L7F070AB8: +/* 0A55E8 7F070AB8 8FBF005C */ lw $ra, 0x5c($sp) +.L7F070ABC: +/* 0A55EC 7F070ABC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0A55F0 7F070AC0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0A55F4 7F070AC4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0A55F8 7F070AC8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0A55FC 7F070ACC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0A5600 7F070AD0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0A5604 7F070AD4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0A5608 7F070AD8 8FB10050 */ lw $s1, 0x50($sp) +/* 0A560C 7F070ADC 8FB20054 */ lw $s2, 0x54($sp) +/* 0A5610 7F070AE0 8FB30058 */ lw $s3, 0x58($sp) +/* 0A5614 7F070AE4 03E00008 */ jr $ra +/* 0A5618 7F070AE8 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070AEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F070AEC +/* 0A561C 7F070AEC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0A5620 7F070AF0 AFBF0054 */ sw $ra, 0x54($sp) +/* 0A5624 7F070AF4 AFB10050 */ sw $s1, 0x50($sp) +/* 0A5628 7F070AF8 AFB0004C */ sw $s0, 0x4c($sp) +/* 0A562C 7F070AFC F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0A5630 7F070B00 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0A5634 7F070B04 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0A5638 7F070B08 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0A563C 7F070B0C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0A5640 7F070B10 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0A5644 7F070B14 AFA60090 */ sw $a2, 0x90($sp) +/* 0A5648 7F070B18 C4840058 */ lwc1 $f4, 0x58($a0) +/* 0A564C 7F070B1C C4920028 */ lwc1 $f18, 0x28($a0) +/* 0A5650 7F070B20 00808025 */ move $s0, $a0 +/* 0A5654 7F070B24 00A08825 */ move $s1, $a1 +/* 0A5658 7F070B28 18A0010A */ blez $a1, .L7F070F54 +/* 0A565C 7F070B2C E7A40080 */ swc1 $f4, 0x80($sp) +/* 0A5660 7F070B30 58A000E6 */ blezl $a1, .L7F070ECC +/* 0A5664 7F070B34 8FAB0090 */ lw $t3, 0x90($sp) +/* 0A5668 7F070B38 4480C000 */ mtc1 $zero, $f24 +/* 0A566C 7F070B3C 00000000 */ nop +/* 0A5670 7F070B40 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F070B44: +/* 0A5674 7F070B44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5678 7F070B48 4602C03C */ c.lt.s $f24, $f2 +/* 0A567C 7F070B4C 00000000 */ nop +/* 0A5680 7F070B50 45020017 */ bc1fl .L7F070BB0 +/* 0A5684 7F070B54 C6080088 */ lwc1 $f8, 0x88($s0) +/* 0A5688 7F070B58 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0A568C 7F070B5C 44814000 */ mtc1 $at, $f8 +/* 0A5690 7F070B60 00000000 */ nop +/* 0A5694 7F070B64 46083280 */ add.s $f10, $f6, $f8 +/* 0A5698 7F070B68 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 0A569C 7F070B6C C60C00B4 */ lwc1 $f12, 0xb4($s0) +/* 0A56A0 7F070B70 4602603C */ c.lt.s $f12, $f2 +/* 0A56A4 7F070B74 00000000 */ nop +/* 0A56A8 7F070B78 4502000A */ bc1fl .L7F070BA4 +/* 0A56AC 7F070B7C C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0A56B0 7F070B80 C60000AC */ lwc1 $f0, 0xac($s0) +/* 0A56B4 7F070B84 C60400A8 */ lwc1 $f4, 0xa8($s0) +/* 0A56B8 7F070B88 46002181 */ sub.s $f6, $f4, $f0 +/* 0A56BC 7F070B8C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A56C0 7F070B90 46024283 */ div.s $f10, $f8, $f2 +/* 0A56C4 7F070B94 460A0100 */ add.s $f4, $f0, $f10 +/* 0A56C8 7F070B98 10000004 */ b .L7F070BAC +/* 0A56CC 7F070B9C E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0A56D0 7F070BA0 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F070BA4: +/* 0A56D4 7F070BA4 E61800B0 */ swc1 $f24, 0xb0($s0) +/* 0A56D8 7F070BA8 E60600A4 */ swc1 $f6, 0xa4($s0) +.L7F070BAC: +/* 0A56DC 7F070BAC C6080088 */ lwc1 $f8, 0x88($s0) +.L7F070BB0: +/* 0A56E0 7F070BB0 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A56E4 7F070BB4 4608C03C */ c.lt.s $f24, $f8 +/* 0A56E8 7F070BB8 00000000 */ nop +/* 0A56EC 7F070BBC 4502001D */ bc1fl .L7F070C34 +/* 0A56F0 7F070BC0 C60C004C */ lwc1 $f12, 0x4c($s0) +/* 0A56F4 7F070BC4 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 0A56F8 7F070BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A56FC 7F070BCC 46025100 */ add.s $f4, $f10, $f2 +/* 0A5700 7F070BD0 E604008C */ swc1 $f4, 0x8c($s0) +/* 0A5704 7F070BD4 C60C008C */ lwc1 $f12, 0x8c($s0) +/* 0A5708 7F070BD8 460CC032 */ c.eq.s $f24, $f12 +/* 0A570C 7F070BDC 00000000 */ nop +/* 0A5710 7F070BE0 45020006 */ bc1fl .L7F070BFC +/* 0A5714 7F070BE4 C6000088 */ lwc1 $f0, 0x88($s0) +/* 0A5718 7F070BE8 44813000 */ mtc1 $at, $f6 +/* 0A571C 7F070BEC C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5720 7F070BF0 1000000F */ b .L7F070C30 +/* 0A5724 7F070BF4 E6060084 */ swc1 $f6, 0x84($s0) +/* 0A5728 7F070BF8 C6000088 */ lwc1 $f0, 0x88($s0) +.L7F070BFC: +/* 0A572C 7F070BFC 4600603C */ c.lt.s $f12, $f0 +/* 0A5730 7F070C00 00000000 */ nop +/* 0A5734 7F070C04 45020007 */ bc1fl .L7F070C24 +/* 0A5738 7F070C08 E6180088 */ swc1 $f24, 0x88($s0) +/* 0A573C 7F070C0C 460C0201 */ sub.s $f8, $f0, $f12 +/* 0A5740 7F070C10 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5744 7F070C14 46004283 */ div.s $f10, $f8, $f0 +/* 0A5748 7F070C18 10000005 */ b .L7F070C30 +/* 0A574C 7F070C1C E60A0084 */ swc1 $f10, 0x84($s0) +/* 0A5750 7F070C20 E6180088 */ swc1 $f24, 0x88($s0) +.L7F070C24: +/* 0A5754 7F070C24 E6180084 */ swc1 $f24, 0x84($s0) +/* 0A5758 7F070C28 AE000054 */ sw $zero, 0x54($s0) +/* 0A575C 7F070C2C C60200A4 */ lwc1 $f2, 0xa4($s0) +.L7F070C30: +/* 0A5760 7F070C30 C60C004C */ lwc1 $f12, 0x4c($s0) +.L7F070C34: +/* 0A5764 7F070C34 460CC03C */ c.lt.s $f24, $f12 +/* 0A5768 7F070C38 00000000 */ nop +/* 0A576C 7F070C3C 45020017 */ bc1fl .L7F070C9C +/* 0A5770 7F070C40 C6100040 */ lwc1 $f16, 0x40($s0) +/* 0A5774 7F070C44 C6040050 */ lwc1 $f4, 0x50($s0) +/* 0A5778 7F070C48 46022180 */ add.s $f6, $f4, $f2 +/* 0A577C 7F070C4C E6060050 */ swc1 $f6, 0x50($s0) +/* 0A5780 7F070C50 C60E0050 */ lwc1 $f14, 0x50($s0) +/* 0A5784 7F070C54 460C703C */ c.lt.s $f14, $f12 +/* 0A5788 7F070C58 00000000 */ nop +/* 0A578C 7F070C5C 4502000B */ bc1fl .L7F070C8C +/* 0A5790 7F070C60 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0A5794 7F070C64 C6000048 */ lwc1 $f0, 0x48($s0) +/* 0A5798 7F070C68 C6080044 */ lwc1 $f8, 0x44($s0) +/* 0A579C 7F070C6C C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A57A0 7F070C70 46004281 */ sub.s $f10, $f8, $f0 +/* 0A57A4 7F070C74 460E5102 */ mul.s $f4, $f10, $f14 +/* 0A57A8 7F070C78 460C2183 */ div.s $f6, $f4, $f12 +/* 0A57AC 7F070C7C 46060200 */ add.s $f8, $f0, $f6 +/* 0A57B0 7F070C80 10000005 */ b .L7F070C98 +/* 0A57B4 7F070C84 E6080040 */ swc1 $f8, 0x40($s0) +/* 0A57B8 7F070C88 C60A0044 */ lwc1 $f10, 0x44($s0) +.L7F070C8C: +/* 0A57BC 7F070C8C E618004C */ swc1 $f24, 0x4c($s0) +/* 0A57C0 7F070C90 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A57C4 7F070C94 E60A0040 */ swc1 $f10, 0x40($s0) +.L7F070C98: +/* 0A57C8 7F070C98 C6100040 */ lwc1 $f16, 0x40($s0) +.L7F070C9C: +/* 0A57CC 7F070C9C 8E0E0054 */ lw $t6, 0x54($s0) +/* 0A57D0 7F070CA0 46101102 */ mul.s $f4, $f2, $f16 +/* 0A57D4 7F070CA4 11C00020 */ beqz $t6, .L7F070D28 +/* 0A57D8 7F070CA8 46049480 */ add.s $f18, $f18, $f4 +/* 0A57DC 7F070CAC C60C007C */ lwc1 $f12, 0x7c($s0) +/* 0A57E0 7F070CB0 460CC03C */ c.lt.s $f24, $f12 +/* 0A57E4 7F070CB4 00000000 */ nop +/* 0A57E8 7F070CB8 45020017 */ bc1fl .L7F070D18 +/* 0A57EC 7F070CBC C6000070 */ lwc1 $f0, 0x70($s0) +/* 0A57F0 7F070CC0 C6060080 */ lwc1 $f6, 0x80($s0) +/* 0A57F4 7F070CC4 46023200 */ add.s $f8, $f6, $f2 +/* 0A57F8 7F070CC8 E6080080 */ swc1 $f8, 0x80($s0) +/* 0A57FC 7F070CCC C60E0080 */ lwc1 $f14, 0x80($s0) +/* 0A5800 7F070CD0 460C703C */ c.lt.s $f14, $f12 +/* 0A5804 7F070CD4 00000000 */ nop +/* 0A5808 7F070CD8 4502000B */ bc1fl .L7F070D08 +/* 0A580C 7F070CDC C6040074 */ lwc1 $f4, 0x74($s0) +/* 0A5810 7F070CE0 C6000078 */ lwc1 $f0, 0x78($s0) +/* 0A5814 7F070CE4 C60A0074 */ lwc1 $f10, 0x74($s0) +/* 0A5818 7F070CE8 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A581C 7F070CEC 46005101 */ sub.s $f4, $f10, $f0 +/* 0A5820 7F070CF0 460E2182 */ mul.s $f6, $f4, $f14 +/* 0A5824 7F070CF4 460C3203 */ div.s $f8, $f6, $f12 +/* 0A5828 7F070CF8 46080280 */ add.s $f10, $f0, $f8 +/* 0A582C 7F070CFC 10000005 */ b .L7F070D14 +/* 0A5830 7F070D00 E60A0070 */ swc1 $f10, 0x70($s0) +/* 0A5834 7F070D04 C6040074 */ lwc1 $f4, 0x74($s0) +.L7F070D08: +/* 0A5838 7F070D08 E618007C */ swc1 $f24, 0x7c($s0) +/* 0A583C 7F070D0C C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5840 7F070D10 E6040070 */ swc1 $f4, 0x70($s0) +.L7F070D14: +/* 0A5844 7F070D14 C6000070 */ lwc1 $f0, 0x70($s0) +.L7F070D18: +/* 0A5848 7F070D18 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0A584C 7F070D1C 46001202 */ mul.s $f8, $f2, $f0 +/* 0A5850 7F070D20 46083280 */ add.s $f10, $f6, $f8 +/* 0A5854 7F070D24 E7AA0080 */ swc1 $f10, 0x80($sp) +.L7F070D28: +/* 0A5858 7F070D28 820F0026 */ lb $t7, 0x26($s0) +/* 0A585C 7F070D2C 51E00064 */ beql $t7, $zero, .L7F070EC0 +/* 0A5860 7F070D30 2631FFFF */ addiu $s1, $s1, -1 +/* 0A5864 7F070D34 8E180020 */ lw $t8, 0x20($s0) +/* 0A5868 7F070D38 4610C03E */ c.le.s $f24, $f16 +/* 0A586C 7F070D3C C616003C */ lwc1 $f22, 0x3c($s0) +/* 0A5870 7F070D40 97190004 */ lhu $t9, 4($t8) +/* 0A5874 7F070D44 C6020090 */ lwc1 $f2, 0x90($s0) +/* 0A5878 7F070D48 2728FFFF */ addiu $t0, $t9, -1 +/* 0A587C 7F070D4C 44882000 */ mtc1 $t0, $f4 +/* 0A5880 7F070D50 4500000C */ bc1f .L7F070D84 +/* 0A5884 7F070D54 46802020 */ cvt.s.w $f0, $f4 +/* 0A5888 7F070D58 4616C03E */ c.le.s $f24, $f22 +/* 0A588C 7F070D5C 46000506 */ mov.s $f20, $f0 +/* 0A5890 7F070D60 46001686 */ mov.s $f26, $f2 +/* 0A5894 7F070D64 45020012 */ bc1fl .L7F070DB0 +/* 0A5898 7F070D68 4610C03E */ c.le.s $f24, $f16 +/* 0A589C 7F070D6C 4600B03C */ c.lt.s $f22, $f0 +/* 0A58A0 7F070D70 00000000 */ nop +/* 0A58A4 7F070D74 4502000E */ bc1fl .L7F070DB0 +/* 0A58A8 7F070D78 4610C03E */ c.le.s $f24, $f16 +/* 0A58AC 7F070D7C 1000000B */ b .L7F070DAC +/* 0A58B0 7F070D80 4600B506 */ mov.s $f20, $f22 +.L7F070D84: +/* 0A58B4 7F070D84 4616C03E */ c.le.s $f24, $f22 +/* 0A58B8 7F070D88 46001506 */ mov.s $f20, $f2 +/* 0A58BC 7F070D8C 46000686 */ mov.s $f26, $f0 +/* 0A58C0 7F070D90 45020007 */ bc1fl .L7F070DB0 +/* 0A58C4 7F070D94 4610C03E */ c.le.s $f24, $f16 +/* 0A58C8 7F070D98 4600B03C */ c.lt.s $f22, $f0 +/* 0A58CC 7F070D9C 00000000 */ nop +/* 0A58D0 7F070DA0 45020003 */ bc1fl .L7F070DB0 +/* 0A58D4 7F070DA4 4610C03E */ c.le.s $f24, $f16 +/* 0A58D8 7F070DA8 4600B686 */ mov.s $f26, $f22 +.L7F070DAC: +/* 0A58DC 7F070DAC 4610C03E */ c.le.s $f24, $f16 +.L7F070DB0: +/* 0A58E0 7F070DB0 00000000 */ nop +/* 0A58E4 7F070DB4 45020006 */ bc1fl .L7F070DD0 +/* 0A58E8 7F070DB8 4618803C */ c.lt.s $f16, $f24 +/* 0A58EC 7F070DBC 4612A03E */ c.le.s $f20, $f18 +/* 0A58F0 7F070DC0 00000000 */ nop +/* 0A58F4 7F070DC4 4503000A */ bc1tl .L7F070DF0 +/* 0A58F8 7F070DC8 C606004C */ lwc1 $f6, 0x4c($s0) +/* 0A58FC 7F070DCC 4618803C */ c.lt.s $f16, $f24 +.L7F070DD0: +/* 0A5900 7F070DD0 00000000 */ nop +/* 0A5904 7F070DD4 4502003A */ bc1fl .L7F070EC0 +/* 0A5908 7F070DD8 2631FFFF */ addiu $s1, $s1, -1 +/* 0A590C 7F070DDC 4614903E */ c.le.s $f18, $f20 +/* 0A5910 7F070DE0 00000000 */ nop +/* 0A5914 7F070DE4 45020036 */ bc1fl .L7F070EC0 +/* 0A5918 7F070DE8 2631FFFF */ addiu $s1, $s1, -1 +/* 0A591C 7F070DEC C606004C */ lwc1 $f6, 0x4c($s0) +.L7F070DF0: +/* 0A5920 7F070DF0 C61C0044 */ lwc1 $f28, 0x44($s0) +/* 0A5924 7F070DF4 C61E0048 */ lwc1 $f30, 0x48($s0) +/* 0A5928 7F070DF8 8FA90090 */ lw $t1, 0x90($sp) +/* 0A592C 7F070DFC E7A60060 */ swc1 $f6, 0x60($sp) +/* 0A5930 7F070E00 C6080050 */ lwc1 $f8, 0x50($s0) +/* 0A5934 7F070E04 02002025 */ move $a0, $s0 +/* 0A5938 7F070E08 1120000A */ beqz $t1, .L7F070E34 +/* 0A593C 7F070E0C E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0A5940 7F070E10 8E050028 */ lw $a1, 0x28($s0) +/* 0A5944 7F070E14 4406A000 */ mfc1 $a2, $f20 +/* 0A5948 7F070E18 4407C000 */ mfc1 $a3, $f24 +/* 0A594C 7F070E1C E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5950 7F070E20 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0A5954 7F070E24 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5958 7F070E28 02002025 */ move $a0, $s0 +/* 0A595C 7F070E2C 10000006 */ b .L7F070E48 +/* 0A5960 7F070E30 C7B20084 */ lwc1 $f18, 0x84($sp) +.L7F070E34: +/* 0A5964 7F070E34 4405A000 */ mfc1 $a1, $f20 +/* 0A5968 7F070E38 4406C000 */ mfc1 $a2, $f24 +/* 0A596C 7F070E3C 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5970 7F070E40 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5974 7F070E44 C7B20084 */ lwc1 $f18, 0x84($sp) +.L7F070E48: +/* 0A5978 7F070E48 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0A597C 7F070E4C 8E050020 */ lw $a1, 0x20($s0) +/* 0A5980 7F070E50 82060024 */ lb $a2, 0x24($s0) +/* 0A5984 7F070E54 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0A5988 7F070E58 C6040094 */ lwc1 $f4, 0x94($s0) +/* 0A598C 7F070E5C 4407D000 */ mfc1 $a3, $f26 +/* 0A5990 7F070E60 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5994 7F070E64 02002025 */ move $a0, $s0 +/* 0A5998 7F070E68 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0A599C 7F070E6C E7A40014 */ swc1 $f4, 0x14($sp) +/* 0A59A0 7F070E70 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0A59A4 7F070E74 240A0001 */ li $t2, 1 +/* 0A59A8 7F070E78 A20A0026 */ sb $t2, 0x26($s0) +/* 0A59AC 7F070E7C E616003C */ swc1 $f22, 0x3c($s0) +/* 0A59B0 7F070E80 E61C0044 */ swc1 $f28, 0x44($s0) +/* 0A59B4 7F070E84 E61E0048 */ swc1 $f30, 0x48($s0) +/* 0A59B8 7F070E88 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0A59BC 7F070E8C 4612D280 */ add.s $f10, $f26, $f18 +/* 0A59C0 7F070E90 E606004C */ swc1 $f6, 0x4c($s0) +/* 0A59C4 7F070E94 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0A59C8 7F070E98 E6080050 */ swc1 $f8, 0x50($s0) +/* 0A59CC 7F070E9C E7B20080 */ swc1 $f18, 0x80($sp) +/* 0A59D0 7F070EA0 8E020098 */ lw $v0, 0x98($s0) +/* 0A59D4 7F070EA4 46145481 */ sub.s $f18, $f10, $f20 +/* 0A59D8 7F070EA8 50400005 */ beql $v0, $zero, .L7F070EC0 +/* 0A59DC 7F070EAC 2631FFFF */ addiu $s1, $s1, -1 +/* 0A59E0 7F070EB0 0040F809 */ jalr $v0 +/* 0A59E4 7F070EB4 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A59E8 7F070EB8 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0A59EC 7F070EBC 2631FFFF */ addiu $s1, $s1, -1 +.L7F070EC0: +/* 0A59F0 7F070EC0 5E20FF20 */ bgtzl $s1, .L7F070B44 +/* 0A59F4 7F070EC4 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 0A59F8 7F070EC8 8FAB0090 */ lw $t3, 0x90($sp) +.L7F070ECC: +/* 0A59FC 7F070ECC 4480C000 */ mtc1 $zero, $f24 +/* 0A5A00 7F070ED0 8E020054 */ lw $v0, 0x54($s0) +/* 0A5A04 7F070ED4 11600014 */ beqz $t3, .L7F070F28 +/* 0A5A08 7F070ED8 00000000 */ nop +/* 0A5A0C 7F070EDC 1040000A */ beqz $v0, .L7F070F08 +/* 0A5A10 7F070EE0 C6000028 */ lwc1 $f0, 0x28($s0) +/* 0A5A14 7F070EE4 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0A5A18 7F070EE8 44050000 */ mfc1 $a1, $f0 +/* 0A5A1C 7F070EEC 44069000 */ mfc1 $a2, $f18 +/* 0A5A20 7F070EF0 8E070058 */ lw $a3, 0x58($s0) +/* 0A5A24 7F070EF4 02002025 */ move $a0, $s0 +/* 0A5A28 7F070EF8 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5A2C 7F070EFC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A5A30 7F070F00 10000015 */ b .L7F070F58 +/* 0A5A34 7F070F04 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F08: +/* 0A5A38 7F070F08 44050000 */ mfc1 $a1, $f0 +/* 0A5A3C 7F070F0C 44069000 */ mfc1 $a2, $f18 +/* 0A5A40 7F070F10 4407C000 */ mfc1 $a3, $f24 +/* 0A5A44 7F070F14 02002025 */ move $a0, $s0 +/* 0A5A48 7F070F18 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5A4C 7F070F1C E7B80010 */ swc1 $f24, 0x10($sp) +/* 0A5A50 7F070F20 1000000D */ b .L7F070F58 +/* 0A5A54 7F070F24 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F28: +/* 0A5A58 7F070F28 10400006 */ beqz $v0, .L7F070F44 +/* 0A5A5C 7F070F2C 02002025 */ move $a0, $s0 +/* 0A5A60 7F070F30 44059000 */ mfc1 $a1, $f18 +/* 0A5A64 7F070F34 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5A68 7F070F38 8FA60080 */ lw $a2, 0x80($sp) +/* 0A5A6C 7F070F3C 10000006 */ b .L7F070F58 +/* 0A5A70 7F070F40 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F44: +/* 0A5A74 7F070F44 44059000 */ mfc1 $a1, $f18 +/* 0A5A78 7F070F48 4406C000 */ mfc1 $a2, $f24 +/* 0A5A7C 7F070F4C 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5A80 7F070F50 02002025 */ move $a0, $s0 +.L7F070F54: +/* 0A5A84 7F070F54 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F58: +/* 0A5A88 7F070F58 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0A5A8C 7F070F5C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0A5A90 7F070F60 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0A5A94 7F070F64 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0A5A98 7F070F68 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0A5A9C 7F070F6C D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0A5AA0 7F070F70 8FB0004C */ lw $s0, 0x4c($sp) +/* 0A5AA4 7F070F74 8FB10050 */ lw $s1, 0x50($sp) +/* 0A5AA8 7F070F78 03E00008 */ jr $ra +/* 0A5AAC 7F070F7C 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070F80(void) { + +} +#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. +These are applied to each part of an object at runtime and can be overridden. loading the next part will use these values once more. +GeometryMode is not in setup and is persistent accross parts. + + +7F072A0C Read Displaylist 18 Model Type +7F072A1C Read Displaylist 18 Model Type +7F072A24 Check model type 1 +7F072A2C Call to do model type 1 7F070F80 +7F072A40 Check model type 3 +7F072A48 Call to do model type 3 7F071030 +7F072A5C Check model type 4 +7F072A64 Call to do model type 4 7F071B44 +7F072A78 Check model type 2 +7F072A80 Call to do model type 2 7F072644 + +7F0727F8 Read Displaylist 04 Model Type + +A1 is primary = 1, secondary = 0 +Inside the T8 or whatever temporary register indicates gun or not gun (0 = gun, or UseZ = 1), for different render mode + +Bool UseZ //guns = false +Bool + + +Model Type 0: NoSetup. + type 0 Has No DL Setup and will use whaterver is currently set. + +Model Type 1: 1Cycle No Sec + E700000000000000 pipesync() + BA00140200000000 CycleType(1c) + if UseZ + B900031D00552078 SetRendermode(AA_ZB_OPA_1) //cin ain cmem amem + else + B900031D00552048 SetRendermode(AA_OPA_1) //cin ain cmem amem + end if + FC121824FF33FFFF SetCombine(MODULATERGBA) + No Secondary + +Model Type 2: 2Cycle No Sec + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + if UseZ + B900031D0C192078 SetRendermode(AA_ZB_OPA_2) // cin 0 cin 1 //colour only + else + B900031D0C192048 SetRendermode(AA_OPA_2) // cin 0 cin 1 //colour only + end if + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + No Secondary +Model Type 3: GunLighting - Reduced Secondary Commands (guns) + This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". + Primary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + endif + if UseZ + B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) + else + B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg + endif + + Secondary + if UseZ + B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) + else + B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg + endif + +Model Type 4: Normal Fog/Lighting object + This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". + Primary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + endif + if UseZ + B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) + else + B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg + endif + + Secondary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + if UseZ + B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) + else + B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg + endif +*/ +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F071B44(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072644(void) { + +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072784(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072984(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072C10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F072C10 +/* 0A7740 7F072C10 AFA40000 */ sw $a0, ($sp) +/* 0A7744 7F072C14 AFA50004 */ sw $a1, 4($sp) +/* 0A7748 7F072C18 03E00008 */ jr $ra +/* 0A774C 7F072C1C AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dorottex(void) { + +} +#else +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(D_8003608C) +/* 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(D_8003608C)($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(D_8003608C) +/* 0A77E0 7F072CB0 8C42608C */ lw $v0, %lo(D_8003608C)($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 get_random_value +/* 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 get_random_value +/* 0A78E4 7F072DB4 03009825 */ move $s3, $t8 +/* 0A78E8 7F072DB8 0C002914 */ jal get_random_value +/* 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 NONMATCHING +void sub_GAME_7F073038(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07306C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07306C +/* 0A7B9C 7F07306C AFA40000 */ sw $a0, ($sp) +/* 0A7BA0 7F073070 AFA50004 */ sw $a1, 4($sp) +/* 0A7BA4 7F073074 03E00008 */ jr $ra +/* 0A7BA8 7F073078 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dotube(void) { + +} +#else +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(D_8003608C) +/* 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(D_8003608C)($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(D_8003608C) +/* 0A7F24 7F0733F4 8C42608C */ lw $v0, %lo(D_8003608C)($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 NONMATCHING +void sub_GAME_7F0737EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0737EC +/* 0A831C 7F0737EC AFA40000 */ sw $a0, ($sp) +/* 0A8320 7F0737F0 AFA50004 */ sw $a1, 4($sp) +/* 0A8324 7F0737F4 03E00008 */ jr $ra +/* 0A8328 7F0737F8 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0737FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0737FC +/* 0A832C 7F0737FC AFA40000 */ sw $a0, ($sp) +/* 0A8330 7F073800 AFA50004 */ sw $a1, 4($sp) +/* 0A8334 7F073804 03E00008 */ jr $ra +/* 0A8338 7F073808 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dogfnegx(void) { + +} +#else +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 get_random_value +/* 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(D_8003608C) +/* 0A8664 7F073B34 8C63608C */ lw $v1, %lo(D_8003608C)($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(D_8003608C) +/* 0A873C 7F073C0C 8C63608C */ lw $v1, %lo(D_8003608C)($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 get_random_value +/* 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 NONMATCHING +void sub_GAME_7F073FC8(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void doshadow(void) { + +} +#else +GLOBAL_ASM( +.text +glabel doshadow +/* 0A8B04 7F073FD4 3C038003 */ lui $v1, %hi(D_800363F0) +/* 0A8B08 7F073FD8 246363F0 */ addiu $v1, %lo(D_800363F0) # addiu $v1, $v1, 0x63f0 +/* 0A8B0C 7F073FDC 8C6E0000 */ lw $t6, ($v1) +/* 0A8B10 7F073FE0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0A8B14 7F073FE4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A8B18 7F073FE8 00808025 */ move $s0, $a0 +/* 0A8B1C 7F073FEC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A8B20 7F073FF0 AFA60080 */ sw $a2, 0x80($sp) +/* 0A8B24 7F073FF4 19C00142 */ blez $t6, .L7F074500 +/* 0A8B28 7F073FF8 00A03825 */ move $a3, $a1 +/* 0A8B2C 7F073FFC 3C198003 */ lui $t9, %hi(D_800363F8) +/* 0A8B30 7F074000 273963F8 */ addiu $t9, %lo(D_800363F8) # addiu $t9, $t9, 0x63f8 +/* 0A8B34 7F074004 8F210000 */ lw $at, ($t9) +/* 0A8B38 7F074008 8F290004 */ lw $t1, 4($t9) +/* 0A8B3C 7F07400C 8CC60004 */ lw $a2, 4($a2) +/* 0A8B40 7F074010 27B80058 */ addiu $t8, $sp, 0x58 +/* 0A8B44 7F074014 AF010000 */ sw $at, ($t8) +/* 0A8B48 7F074018 AF090004 */ sw $t1, 4($t8) +/* 0A8B4C 7F07401C 8F29000C */ lw $t1, 0xc($t9) +/* 0A8B50 7F074020 8F210008 */ lw $at, 8($t9) +/* 0A8B54 7F074024 00A02025 */ move $a0, $a1 +/* 0A8B58 7F074028 AF09000C */ sw $t1, 0xc($t8) +/* 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 +/* 0A8B6C 7F07403C AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8B70 7F074040 8E0A0008 */ lw $t2, 8($s0) +/* 0A8B74 7F074044 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8B78 7F074048 C444000C */ lwc1 $f4, 0xc($v0) +/* 0A8B7C 7F07404C C4460004 */ lwc1 $f6, 4($v0) +/* 0A8B80 7F074050 3C038003 */ lui $v1, %hi(D_800363F0) +/* 0A8B84 7F074054 314B0002 */ andi $t3, $t2, 2 +/* 0A8B88 7F074058 246363F0 */ addiu $v1, %lo(D_800363F0) # addiu $v1, $v1, 0x63f0 +/* 0A8B8C 7F07405C 8FA7007C */ lw $a3, 0x7c($sp) +/* 0A8B90 7F074060 C4CC0008 */ lwc1 $f12, 8($a2) +/* 0A8B94 7F074064 C4CE000C */ lwc1 $f14, 0xc($a2) +/* 0A8B98 7F074068 11600125 */ beqz $t3, .L7F074500 +/* 0A8B9C 7F07406C 46062081 */ sub.s $f2, $f4, $f6 +/* 0A8BA0 7F074070 8E020030 */ lw $v0, 0x30($s0) +/* 0A8BA4 7F074074 24010003 */ li $at, 3 +/* 0A8BA8 7F074078 00002825 */ move $a1, $zero +/* 0A8BAC 7F07407C 10410003 */ beq $v0, $at, .L7F07408C +/* 0A8BB0 7F074080 24010008 */ li $at, 8 +/* 0A8BB4 7F074084 5441000F */ bnel $v0, $at, .L7F0740C4 +/* 0A8BB8 7F074088 8C780000 */ lw $t8, ($v1) +.L7F07408C: +/* 0A8BBC 7F07408C 8E0C0034 */ lw $t4, 0x34($s0) +/* 0A8BC0 7F074090 8C6E0000 */ lw $t6, ($v1) +/* 0A8BC4 7F074094 240100FF */ li $at, 255 +/* 0A8BC8 7F074098 318D00FF */ andi $t5, $t4, 0xff +/* 0A8BCC 7F07409C 01AE0019 */ multu $t5, $t6 +/* 0A8BD0 7F0740A0 00001012 */ mflo $v0 +/* 0A8BD4 7F0740A4 00000000 */ nop +/* 0A8BD8 7F0740A8 00000000 */ nop +/* 0A8BDC 7F0740AC 0041001B */ divu $zero, $v0, $at +/* 0A8BE0 7F0740B0 00004012 */ mflo $t0 +/* 0A8BE4 7F0740B4 A3A80067 */ sb $t0, 0x67($sp) +/* 0A8BE8 7F0740B8 10000004 */ b .L7F0740CC +/* 0A8BEC 7F0740BC 8FA40080 */ lw $a0, 0x80($sp) +/* 0A8BF0 7F0740C0 8C780000 */ lw $t8, ($v1) +.L7F0740C4: +/* 0A8BF4 7F0740C4 A3B80067 */ sb $t8, 0x67($sp) +/* 0A8BF8 7F0740C8 8FA40080 */ lw $a0, 0x80($sp) +.L7F0740CC: +/* 0A8BFC 7F0740CC AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8C00 7F0740D0 AFA7007C */ sw $a3, 0x7c($sp) +/* 0A8C04 7F0740D4 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0A8C08 7F0740D8 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8C0C 7F0740DC 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A8C10 7F0740E0 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8C14 7F0740E4 8FA7007C */ lw $a3, 0x7c($sp) +/* 0A8C18 7F0740E8 00024980 */ sll $t1, $v0, 6 +/* 0A8C1C 7F0740EC 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8C20 7F0740F0 8CF9000C */ lw $t9, 0xc($a3) +/* 0A8C24 7F0740F4 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0A8C28 7F0740F8 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8C2C 7F0740FC 03295021 */ addu $t2, $t9, $t1 +/* 0A8C30 7F074100 AFAA0070 */ sw $t2, 0x70($sp) +/* 0A8C34 7F074104 8E0B0004 */ lw $t3, 4($s0) +/* 0A8C38 7F074108 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8C3C 7F07410C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0A8C40 7F074110 1160000B */ beqz $t3, .L7F074140 +/* 0A8C44 7F074114 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A8C48 7F074118 44814000 */ mtc1 $at, $f8 +/* 0A8C4C 7F07411C C4F20014 */ lwc1 $f18, 0x14($a3) +/* 0A8C50 7F074120 46024281 */ sub.s $f10, $f8, $f2 +/* 0A8C54 7F074124 46125103 */ div.s $f4, $f10, $f18 +/* 0A8C58 7F074128 4600218D */ trunc.w.s $f6, $f4 +/* 0A8C5C 7F07412C 44033000 */ mfc1 $v1, $f6 +/* 0A8C60 7F074130 00000000 */ nop +/* 0A8C64 7F074134 00036C00 */ sll $t5, $v1, 0x10 +/* 0A8C68 7F074138 10000009 */ b .L7F074160 +/* 0A8C6C 7F07413C 000D1C03 */ sra $v1, $t5, 0x10 +.L7F074140: +/* 0A8C70 7F074140 C4EA0014 */ lwc1 $f10, 0x14($a3) +/* 0A8C74 7F074144 46001207 */ neg.s $f8, $f2 +/* 0A8C78 7F074148 460A4483 */ div.s $f18, $f8, $f10 +/* 0A8C7C 7F07414C 4600910D */ trunc.w.s $f4, $f18 +/* 0A8C80 7F074150 44032000 */ mfc1 $v1, $f4 +/* 0A8C84 7F074154 00000000 */ nop +/* 0A8C88 7F074158 00034400 */ sll $t0, $v1, 0x10 +/* 0A8C8C 7F07415C 00081C03 */ sra $v1, $t0, 0x10 +.L7F074160: +/* 0A8C90 7F074160 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0A8C94 7F074164 44813000 */ mtc1 $at, $f6 +/* 0A8C98 7F074168 3C048005 */ lui $a0, %hi(aDoshadowNoVtxAllocator) +/* 0A8C9C 7F07416C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0A8CA0 7F074170 4606103C */ c.lt.s $f2, $f6 +/* 0A8CA4 7F074174 24844A94 */ addiu $a0, %lo(aDoshadowNoVtxAllocator) # addiu $a0, $a0, 0x4a94 +/* 0A8CA8 7F074178 4502000A */ bc1fl .L7F0741A4 +/* 0A8CAC 7F07417C 44818000 */ mtc1 $at, $f16 +/* 0A8CB0 7F074180 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0A8CB4 7F074184 44810000 */ mtc1 $at, $f0 +/* 0A8CB8 7F074188 00000000 */ nop +/* 0A8CBC 7F07418C 46006302 */ mul.s $f12, $f12, $f0 +/* 0A8CC0 7F074190 00000000 */ nop +/* 0A8CC4 7F074194 46007382 */ mul.s $f14, $f14, $f0 +/* 0A8CC8 7F074198 10000012 */ b .L7F0741E4 +/* 0A8CCC 7F07419C 00000000 */ nop +/* 0A8CD0 7F0741A0 44818000 */ mtc1 $at, $f16 +.L7F0741A4: +/* 0A8CD4 7F0741A4 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0A8CD8 7F0741A8 4602803C */ c.lt.s $f16, $f2 +/* 0A8CDC 7F0741AC 00000000 */ nop +/* 0A8CE0 7F0741B0 45020005 */ bc1fl .L7F0741C8 +/* 0A8CE4 7F0741B4 46028201 */ sub.s $f8, $f16, $f2 +/* 0A8CE8 7F0741B8 44807000 */ mtc1 $zero, $f14 +/* 0A8CEC 7F0741BC 10000009 */ b .L7F0741E4 +/* 0A8CF0 7F0741C0 46007306 */ mov.s $f12, $f14 +/* 0A8CF4 7F0741C4 46028201 */ sub.s $f8, $f16, $f2 +.L7F0741C8: +/* 0A8CF8 7F0741C8 44815000 */ mtc1 $at, $f10 +/* 0A8CFC 7F0741CC 00000000 */ nop +/* 0A8D00 7F0741D0 460A4003 */ div.s $f0, $f8, $f10 +/* 0A8D04 7F0741D4 46006302 */ mul.s $f12, $f12, $f0 +/* 0A8D08 7F0741D8 00000000 */ nop +/* 0A8D0C 7F0741DC 46007382 */ mul.s $f14, $f14, $f0 +/* 0A8D10 7F0741E0 00000000 */ nop +.L7F0741E4: +/* 0A8D14 7F0741E4 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A8D18 7F0741E8 5440000F */ bnezl $v0, .L7F074228 +/* 0A8D1C 7F0741EC 24040004 */ li $a0, 4 +/* 0A8D20 7F0741F0 A7A30052 */ sh $v1, 0x52($sp) +/* 0A8D24 7F0741F4 AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8D28 7F0741F8 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8D2C 7F0741FC 0C0033D1 */ jal osSyncPrintf +/* 0A8D30 7F074200 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8D34 7F074204 0FC1B11B */ jal return_null +/* 0A8D38 7F074208 00000000 */ nop +/* 0A8D3C 7F07420C 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A8D40 7F074210 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A8D44 7F074214 87A30052 */ lh $v1, 0x52($sp) +/* 0A8D48 7F074218 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8D4C 7F07421C C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8D50 7F074220 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8D54 7F074224 24040004 */ li $a0, 4 +.L7F074228: +/* 0A8D58 7F074228 A7A30052 */ sh $v1, 0x52($sp) +/* 0A8D5C 7F07422C AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8D60 7F074230 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8D64 7F074234 0040F809 */ jalr $v0 +/* 0A8D68 7F074238 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8D6C 7F07423C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A8D70 7F074240 8C810000 */ lw $at, ($a0) +/* 0A8D74 7F074244 87A30052 */ lh $v1, 0x52($sp) +/* 0A8D78 7F074248 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8D7C 7F07424C C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8D80 7F074250 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8D84 7F074254 AC410000 */ sw $at, ($v0) +/* 0A8D88 7F074258 8C8A0004 */ lw $t2, 4($a0) +/* 0A8D8C 7F07425C AC4A0004 */ sw $t2, 4($v0) +/* 0A8D90 7F074260 8C810008 */ lw $at, 8($a0) +/* 0A8D94 7F074264 AC410008 */ sw $at, 8($v0) +/* 0A8D98 7F074268 8C8A000C */ lw $t2, 0xc($a0) +/* 0A8D9C 7F07426C AC4A000C */ sw $t2, 0xc($v0) +/* 0A8DA0 7F074270 8C810000 */ lw $at, ($a0) +/* 0A8DA4 7F074274 AC410010 */ sw $at, 0x10($v0) +/* 0A8DA8 7F074278 8C8D0004 */ lw $t5, 4($a0) +/* 0A8DAC 7F07427C AC4D0014 */ sw $t5, 0x14($v0) +/* 0A8DB0 7F074280 8C810008 */ lw $at, 8($a0) +/* 0A8DB4 7F074284 AC410018 */ sw $at, 0x18($v0) +/* 0A8DB8 7F074288 8C8D000C */ lw $t5, 0xc($a0) +/* 0A8DBC 7F07428C AC4D001C */ sw $t5, 0x1c($v0) +/* 0A8DC0 7F074290 8C810000 */ lw $at, ($a0) +/* 0A8DC4 7F074294 AC410020 */ sw $at, 0x20($v0) +/* 0A8DC8 7F074298 8C880004 */ lw $t0, 4($a0) +/* 0A8DCC 7F07429C AC480024 */ sw $t0, 0x24($v0) +/* 0A8DD0 7F0742A0 8C810008 */ lw $at, 8($a0) +/* 0A8DD4 7F0742A4 AC410028 */ sw $at, 0x28($v0) +/* 0A8DD8 7F0742A8 8C88000C */ lw $t0, 0xc($a0) +/* 0A8DDC 7F0742AC AC48002C */ sw $t0, 0x2c($v0) +/* 0A8DE0 7F0742B0 8C810000 */ lw $at, ($a0) +/* 0A8DE4 7F0742B4 AC410030 */ sw $at, 0x30($v0) +/* 0A8DE8 7F0742B8 8C990004 */ lw $t9, 4($a0) +/* 0A8DEC 7F0742BC AC590034 */ sw $t9, 0x34($v0) +/* 0A8DF0 7F0742C0 8C810008 */ lw $at, 8($a0) +/* 0A8DF4 7F0742C4 AC410038 */ sw $at, 0x38($v0) +/* 0A8DF8 7F0742C8 8C99000C */ lw $t9, 0xc($a0) +/* 0A8DFC 7F0742CC AC59003C */ sw $t9, 0x3c($v0) +/* 0A8E00 7F0742D0 C4D20000 */ lwc1 $f18, ($a2) +/* 0A8E04 7F0742D4 A4430002 */ sh $v1, 2($v0) +/* 0A8E08 7F0742D8 460C9101 */ sub.s $f4, $f18, $f12 +/* 0A8E0C 7F0742DC 4600218D */ trunc.w.s $f6, $f4 +/* 0A8E10 7F0742E0 440C3000 */ mfc1 $t4, $f6 +/* 0A8E14 7F0742E4 00000000 */ nop +/* 0A8E18 7F0742E8 A44C0000 */ sh $t4, ($v0) +/* 0A8E1C 7F0742EC C4C80004 */ lwc1 $f8, 4($a2) +/* 0A8E20 7F0742F0 460E4281 */ sub.s $f10, $f8, $f14 +/* 0A8E24 7F0742F4 4600548D */ trunc.w.s $f18, $f10 +/* 0A8E28 7F0742F8 440D9000 */ mfc1 $t5, $f18 +/* 0A8E2C 7F0742FC 00000000 */ nop +/* 0A8E30 7F074300 A44D0004 */ sh $t5, 4($v0) +/* 0A8E34 7F074304 C4C40000 */ lwc1 $f4, ($a2) +/* 0A8E38 7F074308 A4430012 */ sh $v1, 0x12($v0) +/* 0A8E3C 7F07430C 460C2181 */ sub.s $f6, $f4, $f12 +/* 0A8E40 7F074310 4600320D */ trunc.w.s $f8, $f6 +/* 0A8E44 7F074314 440E4000 */ mfc1 $t6, $f8 +/* 0A8E48 7F074318 00000000 */ nop +/* 0A8E4C 7F07431C A44E0010 */ sh $t6, 0x10($v0) +/* 0A8E50 7F074320 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0A8E54 7F074324 460E5480 */ add.s $f18, $f10, $f14 +/* 0A8E58 7F074328 4600910D */ trunc.w.s $f4, $f18 +/* 0A8E5C 7F07432C 44092000 */ mfc1 $t1, $f4 +/* 0A8E60 7F074330 00000000 */ nop +/* 0A8E64 7F074334 A4490014 */ sh $t1, 0x14($v0) +/* 0A8E68 7F074338 C4C60000 */ lwc1 $f6, ($a2) +/* 0A8E6C 7F07433C A4430022 */ sh $v1, 0x22($v0) +/* 0A8E70 7F074340 3C09BC00 */ lui $t1, (0xBC001406 >> 16) # lui $t1, 0xbc00 +/* 0A8E74 7F074344 460C3200 */ add.s $f8, $f6, $f12 +/* 0A8E78 7F074348 35291406 */ ori $t1, (0xBC001406 & 0xFFFF) # ori $t1, $t1, 0x1406 +/* 0A8E7C 7F07434C 4600428D */ trunc.w.s $f10, $f8 +/* 0A8E80 7F074350 44195000 */ mfc1 $t9, $f10 +/* 0A8E84 7F074354 00000000 */ nop +/* 0A8E88 7F074358 A4590020 */ sh $t9, 0x20($v0) +/* 0A8E8C 7F07435C C4D20004 */ lwc1 $f18, 4($a2) +/* 0A8E90 7F074360 460E9100 */ add.s $f4, $f18, $f14 +/* 0A8E94 7F074364 4600218D */ trunc.w.s $f6, $f4 +/* 0A8E98 7F074368 440C3000 */ mfc1 $t4, $f6 +/* 0A8E9C 7F07436C 00000000 */ nop +/* 0A8EA0 7F074370 A44C0024 */ sh $t4, 0x24($v0) +/* 0A8EA4 7F074374 C4C80000 */ lwc1 $f8, ($a2) +/* 0A8EA8 7F074378 A4430032 */ sh $v1, 0x32($v0) +/* 0A8EAC 7F07437C 460C4280 */ add.s $f10, $f8, $f12 +/* 0A8EB0 7F074380 4600548D */ trunc.w.s $f18, $f10 +/* 0A8EB4 7F074384 440D9000 */ mfc1 $t5, $f18 +/* 0A8EB8 7F074388 00000000 */ nop +/* 0A8EBC 7F07438C A44D0030 */ sh $t5, 0x30($v0) +/* 0A8EC0 7F074390 C4C40004 */ lwc1 $f4, 4($a2) +/* 0A8EC4 7F074394 460E2181 */ sub.s $f6, $f4, $f14 +/* 0A8EC8 7F074398 4600320D */ trunc.w.s $f8, $f6 +/* 0A8ECC 7F07439C 440E4000 */ mfc1 $t6, $f8 +/* 0A8ED0 7F0743A0 00000000 */ nop +/* 0A8ED4 7F0743A4 A44E0034 */ sh $t6, 0x34($v0) +/* 0A8ED8 7F0743A8 8E03000C */ lw $v1, 0xc($s0) +/* 0A8EDC 7F0743AC 24680008 */ addiu $t0, $v1, 8 +/* 0A8EE0 7F0743B0 AE08000C */ sw $t0, 0xc($s0) +/* 0A8EE4 7F0743B4 AC690000 */ sw $t1, ($v1) +/* 0A8EE8 7F0743B8 8CC4001C */ lw $a0, 0x1c($a2) +/* 0A8EEC 7F0743BC AFA20054 */ sw $v0, 0x54($sp) +/* 0A8EF0 7F0743C0 AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8EF4 7F0743C4 0C003A2C */ jal osVirtualToPhysical +/* 0A8EF8 7F0743C8 AFA30038 */ sw $v1, 0x38($sp) +/* 0A8EFC 7F0743CC 8FA50038 */ lw $a1, 0x38($sp) +/* 0A8F00 7F0743D0 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8F04 7F0743D4 8FA70054 */ lw $a3, 0x54($sp) +/* 0A8F08 7F0743D8 ACA20004 */ sw $v0, 4($a1) +/* 0A8F0C 7F0743DC 8CC30010 */ lw $v1, 0x10($a2) +/* 0A8F10 7F0743E0 24060001 */ li $a2, 1 +/* 0A8F14 7F0743E4 00002825 */ move $a1, $zero +/* 0A8F18 7F0743E8 1060001C */ beqz $v1, .L7F07445C +/* 0A8F1C 7F0743EC 02002025 */ move $a0, $s0 +/* 0A8F20 7F0743F0 A4E00008 */ sh $zero, 8($a3) +/* 0A8F24 7F0743F4 A4E0000A */ sh $zero, 0xa($a3) +/* 0A8F28 7F0743F8 90780004 */ lbu $t8, 4($v1) +/* 0A8F2C 7F0743FC A4E0001A */ sh $zero, 0x1a($a3) +/* 0A8F30 7F074400 00602825 */ move $a1, $v1 +/* 0A8F34 7F074404 0018C940 */ sll $t9, $t8, 5 +/* 0A8F38 7F074408 272AFFFF */ addiu $t2, $t9, -1 +/* 0A8F3C 7F07440C A4EA0018 */ sh $t2, 0x18($a3) +/* 0A8F40 7F074410 906C0004 */ lbu $t4, 4($v1) +/* 0A8F44 7F074414 02002025 */ move $a0, $s0 +/* 0A8F48 7F074418 24060004 */ li $a2, 4 +/* 0A8F4C 7F07441C 000C5940 */ sll $t3, $t4, 5 +/* 0A8F50 7F074420 256DFFFF */ addiu $t5, $t3, -1 +/* 0A8F54 7F074424 A4ED0028 */ sh $t5, 0x28($a3) +/* 0A8F58 7F074428 906F0005 */ lbu $t7, 5($v1) +/* 0A8F5C 7F07442C A4E00038 */ sh $zero, 0x38($a3) +/* 0A8F60 7F074430 000F7140 */ sll $t6, $t7, 5 +/* 0A8F64 7F074434 25C8FFFF */ addiu $t0, $t6, -1 +/* 0A8F68 7F074438 A4E8002A */ sh $t0, 0x2a($a3) +/* 0A8F6C 7F07443C 90690005 */ lbu $t1, 5($v1) +/* 0A8F70 7F074440 0009C140 */ sll $t8, $t1, 5 +/* 0A8F74 7F074444 2719FFFF */ addiu $t9, $t8, -1 +/* 0A8F78 7F074448 A4F9003A */ sh $t9, 0x3a($a3) +/* 0A8F7C 7F07444C 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8F80 7F074450 AFA70054 */ sw $a3, 0x54($sp) +/* 0A8F84 7F074454 10000004 */ b .L7F074468 +/* 0A8F88 7F074458 8FA70054 */ lw $a3, 0x54($sp) +.L7F07445C: +/* 0A8F8C 7F07445C 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8F90 7F074460 AFA70054 */ sw $a3, 0x54($sp) +/* 0A8F94 7F074464 8FA70054 */ lw $a3, 0x54($sp) +.L7F074468: +/* 0A8F98 7F074468 8E03000C */ lw $v1, 0xc($s0) +/* 0A8F9C 7F07446C 3C0CB700 */ lui $t4, 0xb700 +/* 0A8FA0 7F074470 240B2000 */ li $t3, 8192 +/* 0A8FA4 7F074474 246A0008 */ addiu $t2, $v1, 8 +/* 0A8FA8 7F074478 AE0A000C */ sw $t2, 0xc($s0) +/* 0A8FAC 7F07447C AC6C0000 */ sw $t4, ($v1) +/* 0A8FB0 7F074480 AC6B0004 */ sw $t3, 4($v1) +/* 0A8FB4 7F074484 8E03000C */ lw $v1, 0xc($s0) +/* 0A8FB8 7F074488 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 0A8FBC 7F07448C 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0A8FC0 7F074490 246D0008 */ addiu $t5, $v1, 8 +/* 0A8FC4 7F074494 AE0D000C */ sw $t5, 0xc($s0) +/* 0A8FC8 7F074498 AC6F0000 */ sw $t7, ($v1) +/* 0A8FCC 7F07449C AFA70054 */ sw $a3, 0x54($sp) +/* 0A8FD0 7F0744A0 8FA40070 */ lw $a0, 0x70($sp) +/* 0A8FD4 7F0744A4 0C003A2C */ jal osVirtualToPhysical +/* 0A8FD8 7F0744A8 AFA3002C */ sw $v1, 0x2c($sp) +/* 0A8FDC 7F0744AC 8FA5002C */ lw $a1, 0x2c($sp) +/* 0A8FE0 7F0744B0 8FA40054 */ lw $a0, 0x54($sp) +/* 0A8FE4 7F0744B4 3C080430 */ lui $t0, (0x04300040 >> 16) # lui $t0, 0x430 +/* 0A8FE8 7F0744B8 ACA20004 */ sw $v0, 4($a1) +/* 0A8FEC 7F0744BC 8E03000C */ lw $v1, 0xc($s0) +/* 0A8FF0 7F0744C0 35080040 */ ori $t0, (0x04300040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0A8FF4 7F0744C4 246E0008 */ addiu $t6, $v1, 8 +/* 0A8FF8 7F0744C8 AE0E000C */ sw $t6, 0xc($s0) +/* 0A8FFC 7F0744CC AC680000 */ sw $t0, ($v1) +/* 0A9000 7F0744D0 0C003A2C */ jal osVirtualToPhysical +/* 0A9004 7F0744D4 AFA30028 */ sw $v1, 0x28($sp) +/* 0A9008 7F0744D8 8FA60028 */ lw $a2, 0x28($sp) +/* 0A900C 7F0744DC 3C18B100 */ lui $t8, (0xB1000002 >> 16) # lui $t8, 0xb100 +/* 0A9010 7F0744E0 37180002 */ ori $t8, (0xB1000002 & 0xFFFF) # ori $t8, $t8, 2 +/* 0A9014 7F0744E4 ACC20004 */ sw $v0, 4($a2) +/* 0A9018 7F0744E8 8E03000C */ lw $v1, 0xc($s0) +/* 0A901C 7F0744EC 24193210 */ li $t9, 12816 +/* 0A9020 7F0744F0 24690008 */ addiu $t1, $v1, 8 +/* 0A9024 7F0744F4 AE09000C */ sw $t1, 0xc($s0) +/* 0A9028 7F0744F8 AC790004 */ sw $t9, 4($v1) +/* 0A902C 7F0744FC AC780000 */ sw $t8, ($v1) +.L7F074500: +/* 0A9030 7F074500 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A9034 7F074504 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9038 7F074508 27BD0078 */ addiu $sp, $sp, 0x78 +/* 0A903C 7F07450C 03E00008 */ jr $ra +/* 0A9040 7F074510 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074514(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074514 +/* 0A9044 7F074514 AFA40000 */ sw $a0, ($sp) +/* 0A9048 7F074518 AFA50004 */ sw $a1, 4($sp) +/* 0A904C 7F07451C 03E00008 */ jr $ra +/* 0A9050 7F074520 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074524(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074524 +/* 0A9054 7F074524 AFA40000 */ sw $a0, ($sp) +/* 0A9058 7F074528 AFA50004 */ sw $a1, 4($sp) +/* 0A905C 7F07452C 03E00008 */ jr $ra +/* 0A9060 7F074530 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074534(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void subdraw(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subdraw +/* 0A91B4 7F074684 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A91B8 7F074688 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A91BC 7F07468C AFB20020 */ sw $s2, 0x20($sp) +/* 0A91C0 7F074690 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A91C4 7F074694 AFB00018 */ sw $s0, 0x18($sp) +/* 0A91C8 7F074698 8C8E000C */ lw $t6, 0xc($a0) +/* 0A91CC 7F07469C 8CA20008 */ lw $v0, 8($a1) +/* 0A91D0 7F0746A0 00808825 */ move $s1, $a0 +/* 0A91D4 7F0746A4 00A09025 */ move $s2, $a1 +/* 0A91D8 7F0746A8 15C00007 */ bnez $t6, .L7F0746C8 +/* 0A91DC 7F0746AC 8C500000 */ lw $s0, ($v0) +/* 0A91E0 7F0746B0 3C048005 */ lui $a0, %hi(aSubdrawNoGfxlist) +/* 0A91E4 7F0746B4 0C0033D1 */ jal osSyncPrintf +/* 0A91E8 7F0746B8 24844AB4 */ addiu $a0, %lo(aSubdrawNoGfxlist) # addiu $a0, $a0, 0x4ab4 +/* 0A91EC 7F0746BC 0FC1B11B */ jal return_null +/* 0A91F0 7F0746C0 00000000 */ nop +/* 0A91F4 7F0746C4 8E420008 */ lw $v0, 8($s2) +.L7F0746C8: +/* 0A91F8 7F0746C8 8C4F001C */ lw $t7, 0x1c($v0) +/* 0A91FC 7F0746CC 3C048005 */ lui $a0, %hi(aSubdrawObjectNotInitialised0xX) +/* 0A9200 7F0746D0 24844ACC */ addiu $a0, %lo(aSubdrawObjectNotInitialised0xX) # addiu $a0, $a0, 0x4acc +/* 0A9204 7F0746D4 11E00003 */ beqz $t7, .L7F0746E4 +/* 0A9208 7F0746D8 00000000 */ nop +/* 0A920C 7F0746DC 10000006 */ b .L7F0746F8 +/* 0A9210 7F0746E0 8E22000C */ lw $v0, 0xc($s1) +.L7F0746E4: +/* 0A9214 7F0746E4 0C0033D1 */ jal osSyncPrintf +/* 0A9218 7F0746E8 00402825 */ move $a1, $v0 +/* 0A921C 7F0746EC 0FC1B11B */ jal return_null +/* 0A9220 7F0746F0 00000000 */ nop +/* 0A9224 7F0746F4 8E22000C */ lw $v0, 0xc($s1) +.L7F0746F8: +/* 0A9228 7F0746F8 24580008 */ addiu $t8, $v0, 8 +/* 0A922C 7F0746FC 3C19BC00 */ lui $t9, (0xBC000C06 >> 16) # lui $t9, 0xbc00 +/* 0A9230 7F074700 37390C06 */ ori $t9, (0xBC000C06 & 0xFFFF) # ori $t9, $t9, 0xc06 +/* 0A9234 7F074704 AE38000C */ sw $t8, 0xc($s1) +/* 0A9238 7F074708 AC590000 */ sw $t9, ($v0) +/* 0A923C 7F07470C 8E44000C */ lw $a0, 0xc($s2) +/* 0A9240 7F074710 0C003A2C */ jal osVirtualToPhysical +/* 0A9244 7F074714 AFA20028 */ sw $v0, 0x28($sp) +/* 0A9248 7F074718 8FA30028 */ lw $v1, 0x28($sp) +/* 0A924C 7F07471C 12000016 */ beqz $s0, .L7F074778 +/* 0A9250 7F074720 AC620004 */ sw $v0, 4($v1) +/* 0A9254 7F074724 02202025 */ move $a0, $s1 +.L7F074728: +/* 0A9258 7F074728 02402825 */ move $a1, $s2 +/* 0A925C 7F07472C 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A9260 7F074730 02003025 */ move $a2, $s0 +/* 0A9264 7F074734 8E020014 */ lw $v0, 0x14($s0) +/* 0A9268 7F074738 10400003 */ beqz $v0, .L7F074748 +/* 0A926C 7F07473C 00000000 */ nop +/* 0A9270 7F074740 1000000B */ b .L7F074770 +/* 0A9274 7F074744 00408025 */ move $s0, $v0 +.L7F074748: +/* 0A9278 7F074748 12000009 */ beqz $s0, .L7F074770 +/* 0A927C 7F07474C 00000000 */ nop +/* 0A9280 7F074750 8E02000C */ lw $v0, 0xc($s0) +.L7F074754: +/* 0A9284 7F074754 50400004 */ beql $v0, $zero, .L7F074768 +/* 0A9288 7F074758 8E100008 */ lw $s0, 8($s0) +/* 0A928C 7F07475C 10000004 */ b .L7F074770 +/* 0A9290 7F074760 00408025 */ move $s0, $v0 +/* 0A9294 7F074764 8E100008 */ lw $s0, 8($s0) +.L7F074768: +/* 0A9298 7F074768 5600FFFA */ bnezl $s0, .L7F074754 +/* 0A929C 7F07476C 8E02000C */ lw $v0, 0xc($s0) +.L7F074770: +/* 0A92A0 7F074770 5600FFED */ bnezl $s0, .L7F074728 +/* 0A92A4 7F074774 02202025 */ move $a0, $s1 +.L7F074778: +/* 0A92A8 7F074778 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A92AC 7F07477C 8FB00018 */ lw $s0, 0x18($sp) +/* 0A92B0 7F074780 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A92B4 7F074784 8FB20020 */ lw $s2, 0x20($sp) +/* 0A92B8 7F074788 03E00008 */ jr $ra +/* 0A92BC 7F07478C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074790(void) { + +} +#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 +void sub_GAME_7F0747D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0747D0 +/* 0A9300 7F0747D0 C4A00000 */ lwc1 $f0, ($a1) +/* 0A9304 7F0747D4 C4A20004 */ lwc1 $f2, 4($a1) +/* 0A9308 7F0747D8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0A930C 7F0747DC 46000402 */ mul.s $f16, $f0, $f0 +/* 0A9310 7F0747E0 00000000 */ nop +/* 0A9314 7F0747E4 46021102 */ mul.s $f4, $f2, $f2 +/* 0A9318 7F0747E8 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0A931C 7F0747EC C4AC0008 */ lwc1 $f12, 8($a1) +/* 0A9320 7F0747F0 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0A9324 7F0747F4 460C6182 */ mul.s $f6, $f12, $f12 +/* 0A9328 7F0747F8 46088280 */ add.s $f10, $f16, $f8 +/* 0A932C 7F0747FC E7A600AC */ swc1 $f6, 0xac($sp) +/* 0A9330 7F074800 C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0A9334 7F074804 C4860004 */ lwc1 $f6, 4($a0) +/* 0A9338 7F074808 46045380 */ add.s $f14, $f10, $f4 +/* 0A933C 7F07480C 46007387 */ neg.s $f14, $f14 +/* 0A9340 7F074810 46067202 */ mul.s $f8, $f14, $f6 +/* 0A9344 7F074814 E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0A9348 7F074818 C48A0008 */ lwc1 $f10, 8($a0) +/* 0A934C 7F07481C 460A7102 */ mul.s $f4, $f14, $f10 +/* 0A9350 7F074820 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0A9354 7F074824 C4E60008 */ lwc1 $f6, 8($a3) +/* 0A9358 7F074828 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A935C 7F07482C C4E80000 */ lwc1 $f8, ($a3) +/* 0A9360 7F074830 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0A9364 7F074834 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0A9368 7F074838 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A936C 7F07483C E7AA000C */ swc1 $f10, 0xc($sp) +/* 0A9370 7F074840 46040182 */ mul.s $f6, $f0, $f4 +/* 0A9374 7F074844 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0A9378 7F074848 46081282 */ mul.s $f10, $f2, $f8 +/* 0A937C 7F07484C C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0A9380 7F074850 460A3100 */ add.s $f4, $f6, $f10 +/* 0A9384 7F074854 460C4182 */ mul.s $f6, $f8, $f12 +/* 0A9388 7F074858 46043280 */ add.s $f10, $f6, $f4 +/* 0A938C 7F07485C E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9390 7F074860 C4A60038 */ lwc1 $f6, 0x38($a1) +/* 0A9394 7F074864 C4C80008 */ lwc1 $f8, 8($a2) +/* 0A9398 7F074868 46064101 */ sub.s $f4, $f8, $f6 +/* 0A939C 7F07486C E7A40008 */ swc1 $f4, 8($sp) +/* 0A93A0 7F074870 C4A60030 */ lwc1 $f6, 0x30($a1) +/* 0A93A4 7F074874 C4C80000 */ lwc1 $f8, ($a2) +/* 0A93A8 7F074878 46064101 */ sub.s $f4, $f8, $f6 +/* 0A93AC 7F07487C E7A40004 */ swc1 $f4, 4($sp) +/* 0A93B0 7F074880 C4A60034 */ lwc1 $f6, 0x34($a1) +/* 0A93B4 7F074884 C4C80004 */ lwc1 $f8, 4($a2) +/* 0A93B8 7F074888 46064101 */ sub.s $f4, $f8, $f6 +/* 0A93BC 7F07488C C7A80004 */ lwc1 $f8, 4($sp) +/* 0A93C0 7F074890 E7A40000 */ swc1 $f4, ($sp) +/* 0A93C4 7F074894 46080182 */ mul.s $f6, $f0, $f8 +/* 0A93C8 7F074898 C7A40000 */ lwc1 $f4, ($sp) +/* 0A93CC 7F07489C 46041202 */ mul.s $f8, $f2, $f4 +/* 0A93D0 7F0748A0 46083100 */ add.s $f4, $f6, $f8 +/* 0A93D4 7F0748A4 C7A60008 */ lwc1 $f6, 8($sp) +/* 0A93D8 7F0748A8 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A93DC 7F0748AC 44806000 */ mtc1 $zero, $f12 +/* 0A93E0 7F0748B0 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0A93E4 7F0748B4 460C503C */ c.lt.s $f10, $f12 +/* 0A93E8 7F0748B8 46044480 */ add.s $f18, $f8, $f4 +/* 0A93EC 7F0748BC C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0A93F0 7F0748C0 46069000 */ add.s $f0, $f18, $f6 +/* 0A93F4 7F0748C4 46089480 */ add.s $f18, $f18, $f8 +/* 0A93F8 7F0748C8 46000007 */ neg.s $f0, $f0 +/* 0A93FC 7F0748CC 45000005 */ bc1f .L7F0748E4 +/* 0A9400 7F0748D0 46009487 */ neg.s $f18, $f18 +/* 0A9404 7F0748D4 46005107 */ neg.s $f4, $f10 +/* 0A9408 7F0748D8 46009487 */ neg.s $f18, $f18 +/* 0A940C 7F0748DC E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A9410 7F0748E0 46000007 */ neg.s $f0, $f0 +.L7F0748E4: +/* 0A9414 7F0748E4 460C903C */ c.lt.s $f18, $f12 +/* 0A9418 7F0748E8 00000000 */ nop +/* 0A941C 7F0748EC 45020008 */ bc1fl .L7F074910 +/* 0A9420 7F0748F0 4612003C */ c.lt.s $f0, $f18 +/* 0A9424 7F0748F4 460C003C */ c.lt.s $f0, $f12 +/* 0A9428 7F0748F8 00000000 */ nop +/* 0A942C 7F0748FC 45020004 */ bc1fl .L7F074910 +/* 0A9430 7F074900 4612003C */ c.lt.s $f0, $f18 +/* 0A9434 7F074904 100000D6 */ b .L7F074C60 +/* 0A9438 7F074908 00001025 */ move $v0, $zero +/* 0A943C 7F07490C 4612003C */ c.lt.s $f0, $f18 +.L7F074910: +/* 0A9440 7F074910 E7A00094 */ swc1 $f0, 0x94($sp) +/* 0A9444 7F074914 45020005 */ bc1fl .L7F07492C +/* 0A9448 7F074918 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 0A944C 7F07491C 46009086 */ mov.s $f2, $f18 +/* 0A9450 7F074920 46000486 */ mov.s $f18, $f0 +/* 0A9454 7F074924 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0A9458 7F074928 C4A00010 */ lwc1 $f0, 0x10($a1) +.L7F07492C: +/* 0A945C 7F07492C 46000182 */ mul.s $f6, $f0, $f0 +/* 0A9460 7F074930 E7A60088 */ swc1 $f6, 0x88($sp) +/* 0A9464 7F074934 C4A20014 */ lwc1 $f2, 0x14($a1) +/* 0A9468 7F074938 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0A946C 7F07493C 46021202 */ mul.s $f8, $f2, $f2 +/* 0A9470 7F074940 E7A80084 */ swc1 $f8, 0x84($sp) +/* 0A9474 7F074944 C4AC0018 */ lwc1 $f12, 0x18($a1) +/* 0A9478 7F074948 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0A947C 7F07494C 460C6282 */ mul.s $f10, $f12, $f12 +/* 0A9480 7F074950 46062200 */ add.s $f8, $f4, $f6 +/* 0A9484 7F074954 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 0A9488 7F074958 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0A948C 7F07495C C484000C */ lwc1 $f4, 0xc($a0) +/* 0A9490 7F074960 460A4380 */ add.s $f14, $f8, $f10 +/* 0A9494 7F074964 46007387 */ neg.s $f14, $f14 +/* 0A9498 7F074968 46047182 */ mul.s $f6, $f14, $f4 +/* 0A949C 7F07496C C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A94A0 7F074970 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0A94A4 7F074974 C4880010 */ lwc1 $f8, 0x10($a0) +/* 0A94A8 7F074978 46087282 */ mul.s $f10, $f14, $f8 +/* 0A94AC 7F07497C C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0A94B0 7F074980 46040182 */ mul.s $f6, $f0, $f4 +/* 0A94B4 7F074984 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0A94B8 7F074988 46081282 */ mul.s $f10, $f2, $f8 +/* 0A94BC 7F07498C C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0A94C0 7F074990 460A3100 */ add.s $f4, $f6, $f10 +/* 0A94C4 7F074994 460C4182 */ mul.s $f6, $f8, $f12 +/* 0A94C8 7F074998 C7A80004 */ lwc1 $f8, 4($sp) +/* 0A94CC 7F07499C 46043280 */ add.s $f10, $f6, $f4 +/* 0A94D0 7F0749A0 46080182 */ mul.s $f6, $f0, $f8 +/* 0A94D4 7F0749A4 C7A40000 */ lwc1 $f4, ($sp) +/* 0A94D8 7F0749A8 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0A94DC 7F0749AC 46041202 */ mul.s $f8, $f2, $f4 +/* 0A94E0 7F0749B0 46005386 */ mov.s $f14, $f10 +/* 0A94E4 7F0749B4 46083100 */ add.s $f4, $f6, $f8 +/* 0A94E8 7F0749B8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0A94EC 7F0749BC 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A94F0 7F0749C0 44806000 */ mtc1 $zero, $f12 +/* 0A94F4 7F0749C4 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0A94F8 7F0749C8 460C503C */ c.lt.s $f10, $f12 +/* 0A94FC 7F0749CC 46044400 */ add.s $f16, $f8, $f4 +/* 0A9500 7F0749D0 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0A9504 7F0749D4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A9508 7F0749D8 46068000 */ add.s $f0, $f16, $f6 +/* 0A950C 7F0749DC 46088400 */ add.s $f16, $f16, $f8 +/* 0A9510 7F0749E0 46000007 */ neg.s $f0, $f0 +/* 0A9514 7F0749E4 45000004 */ bc1f .L7F0749F8 +/* 0A9518 7F0749E8 46008407 */ neg.s $f16, $f16 +/* 0A951C 7F0749EC 46005387 */ neg.s $f14, $f10 +/* 0A9520 7F0749F0 46008407 */ neg.s $f16, $f16 +/* 0A9524 7F0749F4 46000007 */ neg.s $f0, $f0 +.L7F0749F8: +/* 0A9528 7F0749F8 460C803C */ c.lt.s $f16, $f12 +/* 0A952C 7F0749FC 00000000 */ nop +/* 0A9530 7F074A00 45020008 */ bc1fl .L7F074A24 +/* 0A9534 7F074A04 4610003C */ c.lt.s $f0, $f16 +/* 0A9538 7F074A08 460C003C */ c.lt.s $f0, $f12 +/* 0A953C 7F074A0C 00000000 */ nop +/* 0A9540 7F074A10 45020004 */ bc1fl .L7F074A24 +/* 0A9544 7F074A14 4610003C */ c.lt.s $f0, $f16 +/* 0A9548 7F074A18 10000091 */ b .L7F074C60 +/* 0A954C 7F074A1C 00001025 */ move $v0, $zero +/* 0A9550 7F074A20 4610003C */ c.lt.s $f0, $f16 +.L7F074A24: +/* 0A9554 7F074A24 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9558 7F074A28 45000004 */ bc1f .L7F074A3C +/* 0A955C 7F074A2C 00000000 */ nop +/* 0A9560 7F074A30 46008086 */ mov.s $f2, $f16 +/* 0A9564 7F074A34 46000406 */ mov.s $f16, $f0 +/* 0A9568 7F074A38 46001006 */ mov.s $f0, $f2 +.L7F074A3C: +/* 0A956C 7F074A3C 46048302 */ mul.s $f12, $f16, $f4 +/* 0A9570 7F074A40 00000000 */ nop +/* 0A9574 7F074A44 460E9082 */ mul.s $f2, $f18, $f14 +/* 0A9578 7F074A48 4602603C */ c.lt.s $f12, $f2 +/* 0A957C 7F074A4C 00000000 */ nop +/* 0A9580 7F074A50 4500000E */ bc1f .L7F074A8C +/* 0A9584 7F074A54 00000000 */ nop +/* 0A9588 7F074A58 46040302 */ mul.s $f12, $f0, $f4 +/* 0A958C 7F074A5C 4602603C */ c.lt.s $f12, $f2 +/* 0A9590 7F074A60 00000000 */ nop +/* 0A9594 7F074A64 45020004 */ bc1fl .L7F074A78 +/* 0A9598 7F074A68 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 0A959C 7F074A6C 1000007C */ b .L7F074C60 +/* 0A95A0 7F074A70 00001025 */ move $v0, $zero +/* 0A95A4 7F074A74 C7A60094 */ lwc1 $f6, 0x94($sp) +.L7F074A78: +/* 0A95A8 7F074A78 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 0A95AC 7F074A7C E7B2005C */ swc1 $f18, 0x5c($sp) +/* 0A95B0 7F074A80 460E3082 */ mul.s $f2, $f6, $f14 +/* 0A95B4 7F074A84 1000000D */ b .L7F074ABC +/* 0A95B8 7F074A88 E7AA0058 */ swc1 $f10, 0x58($sp) +.L7F074A8C: +/* 0A95BC 7F074A8C 460E4082 */ mul.s $f2, $f8, $f14 +/* 0A95C0 7F074A90 460C103C */ c.lt.s $f2, $f12 +/* 0A95C4 7F074A94 00000000 */ nop +/* 0A95C8 7F074A98 45020004 */ bc1fl .L7F074AAC +/* 0A95CC 7F074A9C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A95D0 7F074AA0 1000006F */ b .L7F074C60 +/* 0A95D4 7F074AA4 00001025 */ move $v0, $zero +/* 0A95D8 7F074AA8 C7A4009C */ lwc1 $f4, 0x9c($sp) +.L7F074AAC: +/* 0A95DC 7F074AAC E7B0005C */ swc1 $f16, 0x5c($sp) +/* 0A95E0 7F074AB0 E7AE0058 */ swc1 $f14, 0x58($sp) +/* 0A95E4 7F074AB4 46040302 */ mul.s $f12, $f0, $f4 +/* 0A95E8 7F074AB8 00000000 */ nop +.L7F074ABC: +/* 0A95EC 7F074ABC 460C103C */ c.lt.s $f2, $f12 +/* 0A95F0 7F074AC0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0A95F4 7F074AC4 45020006 */ bc1fl .L7F074AE0 +/* 0A95F8 7F074AC8 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0A95FC 7F074ACC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0A9600 7F074AD0 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A9604 7F074AD4 10000003 */ b .L7F074AE4 +/* 0A9608 7F074AD8 E7A60050 */ swc1 $f6, 0x50($sp) +/* 0A960C 7F074ADC E7A00054 */ swc1 $f0, 0x54($sp) +.L7F074AE0: +/* 0A9610 7F074AE0 E7AE0050 */ swc1 $f14, 0x50($sp) +.L7F074AE4: +/* 0A9614 7F074AE4 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 0A9618 7F074AE8 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 0A961C 7F074AEC 46000482 */ mul.s $f18, $f0, $f0 +/* 0A9620 7F074AF0 00000000 */ nop +/* 0A9624 7F074AF4 46021202 */ mul.s $f8, $f2, $f2 +/* 0A9628 7F074AF8 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A962C 7F074AFC C4AC0028 */ lwc1 $f12, 0x28($a1) +/* 0A9630 7F074B00 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0A9634 7F074B04 460C6102 */ mul.s $f4, $f12, $f12 +/* 0A9638 7F074B08 460A9180 */ add.s $f6, $f18, $f10 +/* 0A963C 7F074B0C E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0A9640 7F074B10 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0A9644 7F074B14 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0A9648 7F074B18 46083400 */ add.s $f16, $f6, $f8 +/* 0A964C 7F074B1C 46008407 */ neg.s $f16, $f16 +/* 0A9650 7F074B20 46048282 */ mul.s $f10, $f16, $f4 +/* 0A9654 7F074B24 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A9658 7F074B28 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0A965C 7F074B2C C4860018 */ lwc1 $f6, 0x18($a0) +/* 0A9660 7F074B30 46068202 */ mul.s $f8, $f16, $f6 +/* 0A9664 7F074B34 C7A6000C */ lwc1 $f6, 0xc($sp) +/* 0A9668 7F074B38 46040282 */ mul.s $f10, $f0, $f4 +/* 0A966C 7F074B3C E7A80030 */ swc1 $f8, 0x30($sp) +/* 0A9670 7F074B40 46061202 */ mul.s $f8, $f2, $f6 +/* 0A9674 7F074B44 C7A60014 */ lwc1 $f6, 0x14($sp) +/* 0A9678 7F074B48 46085100 */ add.s $f4, $f10, $f8 +/* 0A967C 7F074B4C 460C3282 */ mul.s $f10, $f6, $f12 +/* 0A9680 7F074B50 C7A60004 */ lwc1 $f6, 4($sp) +/* 0A9684 7F074B54 46045200 */ add.s $f8, $f10, $f4 +/* 0A9688 7F074B58 46060282 */ mul.s $f10, $f0, $f6 +/* 0A968C 7F074B5C C7A40000 */ lwc1 $f4, ($sp) +/* 0A9690 7F074B60 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0A9694 7F074B64 46041182 */ mul.s $f6, $f2, $f4 +/* 0A9698 7F074B68 44801000 */ mtc1 $zero, $f2 +/* 0A969C 7F074B6C 00000000 */ nop +/* 0A96A0 7F074B70 4602403C */ c.lt.s $f8, $f2 +/* 0A96A4 7F074B74 46065100 */ add.s $f4, $f10, $f6 +/* 0A96A8 7F074B78 C7AA0008 */ lwc1 $f10, 8($sp) +/* 0A96AC 7F074B7C 460C5182 */ mul.s $f6, $f10, $f12 +/* 0A96B0 7F074B80 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0A96B4 7F074B84 46004306 */ mov.s $f12, $f8 +/* 0A96B8 7F074B88 46043380 */ add.s $f14, $f6, $f4 +/* 0A96BC 7F074B8C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A96C0 7F074B90 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0A96C4 7F074B94 460A7000 */ add.s $f0, $f14, $f10 +/* 0A96C8 7F074B98 46067380 */ add.s $f14, $f14, $f6 +/* 0A96CC 7F074B9C 46000007 */ neg.s $f0, $f0 +/* 0A96D0 7F074BA0 45000004 */ bc1f .L7F074BB4 +/* 0A96D4 7F074BA4 46007387 */ neg.s $f14, $f14 +/* 0A96D8 7F074BA8 46004307 */ neg.s $f12, $f8 +/* 0A96DC 7F074BAC 46007387 */ neg.s $f14, $f14 +/* 0A96E0 7F074BB0 46000007 */ neg.s $f0, $f0 +.L7F074BB4: +/* 0A96E4 7F074BB4 4602703C */ c.lt.s $f14, $f2 +/* 0A96E8 7F074BB8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A96EC 7F074BBC 45020008 */ bc1fl .L7F074BE0 +/* 0A96F0 7F074BC0 460E003C */ c.lt.s $f0, $f14 +/* 0A96F4 7F074BC4 4602003C */ c.lt.s $f0, $f2 +/* 0A96F8 7F074BC8 00000000 */ nop +/* 0A96FC 7F074BCC 45020004 */ bc1fl .L7F074BE0 +/* 0A9700 7F074BD0 460E003C */ c.lt.s $f0, $f14 +/* 0A9704 7F074BD4 10000022 */ b .L7F074C60 +/* 0A9708 7F074BD8 00001025 */ move $v0, $zero +/* 0A970C 7F074BDC 460E003C */ c.lt.s $f0, $f14 +.L7F074BE0: +/* 0A9710 7F074BE0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0A9714 7F074BE4 45000004 */ bc1f .L7F074BF8 +/* 0A9718 7F074BE8 00000000 */ nop +/* 0A971C 7F074BEC 46007086 */ mov.s $f2, $f14 +/* 0A9720 7F074BF0 46000386 */ mov.s $f14, $f0 +/* 0A9724 7F074BF4 46001006 */ mov.s $f0, $f2 +.L7F074BF8: +/* 0A9728 7F074BF8 460C2082 */ mul.s $f2, $f4, $f12 +/* 0A972C 7F074BFC 00000000 */ nop +/* 0A9730 7F074C00 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9734 7F074C04 460A103C */ c.lt.s $f2, $f10 +/* 0A9738 7F074C08 00000000 */ nop +/* 0A973C 7F074C0C 4500000C */ bc1f .L7F074C40 +/* 0A9740 7F074C10 00000000 */ nop +/* 0A9744 7F074C14 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 0A9748 7F074C18 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 0A974C 7F074C1C 460C3102 */ mul.s $f4, $f6, $f12 +/* 0A9750 7F074C20 00000000 */ nop +/* 0A9754 7F074C24 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9758 7F074C28 460A203C */ c.lt.s $f4, $f10 +/* 0A975C 7F074C2C 00000000 */ nop +/* 0A9760 7F074C30 4500000A */ bc1f .L7F074C5C +/* 0A9764 7F074C34 00000000 */ nop +/* 0A9768 7F074C38 10000009 */ b .L7F074C60 +/* 0A976C 7F074C3C 00001025 */ move $v0, $zero +.L7F074C40: +/* 0A9770 7F074C40 46060202 */ mul.s $f8, $f0, $f6 +/* 0A9774 7F074C44 4602403C */ c.lt.s $f8, $f2 +/* 0A9778 7F074C48 00000000 */ nop +/* 0A977C 7F074C4C 45020004 */ bc1fl .L7F074C60 +/* 0A9780 7F074C50 24020001 */ li $v0, 1 +/* 0A9784 7F074C54 10000002 */ b .L7F074C60 +/* 0A9788 7F074C58 00001025 */ move $v0, $zero +.L7F074C5C: +/* 0A978C 7F074C5C 24020001 */ li $v0, 1 +.L7F074C60: +/* 0A9790 7F074C60 03E00008 */ jr $ra +/* 0A9794 7F074C64 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074C68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074C68 +/* 0A9798 7F074C68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A979C 7F074C6C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A97A0 7F074C70 AFA60028 */ sw $a2, 0x28($sp) +/* 0A97A4 7F074C74 AFA7002C */ sw $a3, 0x2c($sp) +/* 0A97A8 7F074C78 8CAE0004 */ lw $t6, 4($a1) +/* 0A97AC 7F074C7C 00003025 */ move $a2, $zero +/* 0A97B0 7F074C80 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A97B4 7F074C84 AFAE001C */ sw $t6, 0x1c($sp) +/* 0A97B8 7F074C88 8FA4001C */ lw $a0, 0x1c($sp) +/* 0A97BC 7F074C8C 00402825 */ move $a1, $v0 +/* 0A97C0 7F074C90 8FA60028 */ lw $a2, 0x28($sp) +/* 0A97C4 7F074C94 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 0A97C8 7F074C98 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A97CC 7F074C9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A97D0 7F074CA0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A97D4 7F074CA4 03E00008 */ jr $ra +/* 0A97D8 7F074CA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074CAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074CAC +/* 0A97DC 7F074CAC 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0A97E0 7F074CB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A97E4 7F074CB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A97E8 7F074CB8 AFA400B0 */ sw $a0, 0xb0($sp) +/* 0A97EC 7F074CBC 8CA80004 */ lw $t0, 4($a1) +/* 0A97F0 7F074CC0 00C08025 */ move $s0, $a2 +/* 0A97F4 7F074CC4 00003025 */ move $a2, $zero +/* 0A97F8 7F074CC8 AFA700BC */ sw $a3, 0xbc($sp) +/* 0A97FC 7F074CCC AFA500B4 */ sw $a1, 0xb4($sp) +/* 0A9800 7F074CD0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A9804 7F074CD4 AFA800AC */ sw $t0, 0xac($sp) +/* 0A9808 7F074CD8 3C0B8003 */ lui $t3, %hi(D_80036408) +/* 0A980C 7F074CDC 256B6408 */ addiu $t3, %lo(D_80036408) # addiu $t3, $t3, 0x6408 +/* 0A9810 7F074CE0 8D610000 */ lw $at, ($t3) +/* 0A9814 7F074CE4 8FA700BC */ lw $a3, 0xbc($sp) +/* 0A9818 7F074CE8 8FA800AC */ lw $t0, 0xac($sp) +/* 0A981C 7F074CEC 27AA0090 */ addiu $t2, $sp, 0x90 +/* 0A9820 7F074CF0 AD410000 */ sw $at, ($t2) +/* 0A9824 7F074CF4 8D610008 */ lw $at, 8($t3) +/* 0A9828 7F074CF8 8D790004 */ lw $t9, 4($t3) +/* 0A982C 7F074CFC 00401825 */ move $v1, $v0 +/* 0A9830 7F074D00 AD410008 */ sw $at, 8($t2) +/* 0A9834 7F074D04 AD590004 */ sw $t9, 4($t2) +/* 0A9838 7F074D08 C5080004 */ lwc1 $f8, 4($t0) +/* 0A983C 7F074D0C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0A9840 7F074D10 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0A9844 7F074D14 C4E60000 */ lwc1 $f6, ($a3) +/* 0A9848 7F074D18 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 0A984C 7F074D1C C4EA0004 */ lwc1 $f10, 4($a3) +/* 0A9850 7F074D20 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0A9854 7F074D24 C4E40008 */ lwc1 $f4, 8($a3) +/* 0A9858 7F074D28 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 0A985C 7F074D2C 97040000 */ lhu $a0, ($t8) +/* 0A9860 7F074D30 308E0100 */ andi $t6, $a0, 0x100 +/* 0A9864 7F074D34 11C0003C */ beqz $t6, .L7F074E28 +/* 0A9868 7F074D38 308F0200 */ andi $t7, $a0, 0x200 +/* 0A986C 7F074D3C C5080008 */ lwc1 $f8, 8($t0) +/* 0A9870 7F074D40 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0A9874 7F074D44 C506000C */ lwc1 $f6, 0xc($t0) +/* 0A9878 7F074D48 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0A987C 7F074D4C E7A60084 */ swc1 $f6, 0x84($sp) +/* 0A9880 7F074D50 C50A0010 */ lwc1 $f10, 0x10($t0) +/* 0A9884 7F074D54 E7AA0088 */ swc1 $f10, 0x88($sp) +/* 0A9888 7F074D58 C4480000 */ lwc1 $f8, ($v0) +/* 0A988C 7F074D5C C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0A9890 7F074D60 46082182 */ mul.s $f6, $f4, $f8 +/* 0A9894 7F074D64 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A9898 7F074D68 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0A989C 7F074D6C C4440020 */ lwc1 $f4, 0x20($v0) +/* 0A98A0 7F074D70 46085202 */ mul.s $f8, $f10, $f8 +/* 0A98A4 7F074D74 46083180 */ add.s $f6, $f6, $f8 +/* 0A98A8 7F074D78 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0A98AC 7F074D7C 46044102 */ mul.s $f4, $f8, $f4 +/* 0A98B0 7F074D80 46043180 */ add.s $f6, $f6, $f4 +/* 0A98B4 7F074D84 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0A98B8 7F074D88 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0A98BC 7F074D8C C60A0000 */ lwc1 $f10, ($s0) +/* 0A98C0 7F074D90 460A2101 */ sub.s $f4, $f4, $f10 +/* 0A98C4 7F074D94 46062280 */ add.s $f10, $f4, $f6 +/* 0A98C8 7F074D98 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A98CC 7F074D9C E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A98D0 7F074DA0 C4460004 */ lwc1 $f6, 4($v0) +/* 0A98D4 7F074DA4 46062282 */ mul.s $f10, $f4, $f6 +/* 0A98D8 7F074DA8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0A98DC 7F074DAC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0A98E0 7F074DB0 C4480014 */ lwc1 $f8, 0x14($v0) +/* 0A98E4 7F074DB4 46083202 */ mul.s $f8, $f6, $f8 +/* 0A98E8 7F074DB8 46085280 */ add.s $f10, $f10, $f8 +/* 0A98EC 7F074DBC C7A80024 */ lwc1 $f8, 0x24($sp) +/* 0A98F0 7F074DC0 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0A98F4 7F074DC4 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A98F8 7F074DC8 46044102 */ mul.s $f4, $f8, $f4 +/* 0A98FC 7F074DCC 46045280 */ add.s $f10, $f10, $f4 +/* 0A9900 7F074DD0 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A9904 7F074DD4 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0A9908 7F074DD8 C6060004 */ lwc1 $f6, 4($s0) +/* 0A990C 7F074DDC 46062101 */ sub.s $f4, $f4, $f6 +/* 0A9910 7F074DE0 460A2180 */ add.s $f6, $f4, $f10 +/* 0A9914 7F074DE4 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0A9918 7F074DE8 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A991C 7F074DEC C44A0008 */ lwc1 $f10, 8($v0) +/* 0A9920 7F074DF0 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A9924 7F074DF4 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0A9928 7F074DF8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A992C 7F074DFC 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A9930 7F074E00 46043280 */ add.s $f10, $f6, $f4 +/* 0A9934 7F074E04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A9938 7F074E08 46064102 */ mul.s $f4, $f8, $f6 +/* 0A993C 7F074E0C C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A9940 7F074E10 46045200 */ add.s $f8, $f10, $f4 +/* 0A9944 7F074E14 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A9948 7F074E18 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A994C 7F074E1C 46082180 */ add.s $f6, $f4, $f8 +/* 0A9950 7F074E20 1000003E */ b .L7F074F1C +/* 0A9954 7F074E24 E7A60098 */ swc1 $f6, 0x98($sp) +.L7F074E28: +/* 0A9958 7F074E28 51E00031 */ beql $t7, $zero, .L7F074EF0 +/* 0A995C 7F074E2C C4460030 */ lwc1 $f6, 0x30($v0) +/* 0A9960 7F074E30 8D050014 */ lw $a1, 0x14($t0) +/* 0A9964 7F074E34 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A9968 7F074E38 00003025 */ move $a2, $zero +/* 0A996C 7F074E3C 50A0001F */ beql $a1, $zero, .L7F074EBC +/* 0A9970 7F074E40 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0A9974 7F074E44 AFA300A8 */ sw $v1, 0xa8($sp) +/* 0A9978 7F074E48 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A997C 7F074E4C AFA800AC */ sw $t0, 0xac($sp) +/* 0A9980 7F074E50 8FA300A8 */ lw $v1, 0xa8($sp) +/* 0A9984 7F074E54 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0A9988 7F074E58 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A998C 7F074E5C C46A0030 */ lwc1 $f10, 0x30($v1) +/* 0A9990 7F074E60 44810000 */ mtc1 $at, $f0 +/* 0A9994 7F074E64 8FA800AC */ lw $t0, 0xac($sp) +/* 0A9998 7F074E68 46045200 */ add.s $f8, $f10, $f4 +/* 0A999C 7F074E6C C60A0000 */ lwc1 $f10, ($s0) +/* 0A99A0 7F074E70 46004182 */ mul.s $f6, $f8, $f0 +/* 0A99A4 7F074E74 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A99A8 7F074E78 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A99AC 7F074E7C C4460034 */ lwc1 $f6, 0x34($v0) +/* 0A99B0 7F074E80 C4680034 */ lwc1 $f8, 0x34($v1) +/* 0A99B4 7F074E84 46064280 */ add.s $f10, $f8, $f6 +/* 0A99B8 7F074E88 C6080004 */ lwc1 $f8, 4($s0) +/* 0A99BC 7F074E8C 46005102 */ mul.s $f4, $f10, $f0 +/* 0A99C0 7F074E90 46082181 */ sub.s $f6, $f4, $f8 +/* 0A99C4 7F074E94 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A99C8 7F074E98 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A99CC 7F074E9C C46A0038 */ lwc1 $f10, 0x38($v1) +/* 0A99D0 7F074EA0 46045200 */ add.s $f8, $f10, $f4 +/* 0A99D4 7F074EA4 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A99D8 7F074EA8 46004182 */ mul.s $f6, $f8, $f0 +/* 0A99DC 7F074EAC 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A99E0 7F074EB0 1000001A */ b .L7F074F1C +/* 0A99E4 7F074EB4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0A99E8 7F074EB8 C4480030 */ lwc1 $f8, 0x30($v0) +.L7F074EBC: +/* 0A99EC 7F074EBC C6060000 */ lwc1 $f6, ($s0) +/* 0A99F0 7F074EC0 46064281 */ sub.s $f10, $f8, $f6 +/* 0A99F4 7F074EC4 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A99F8 7F074EC8 C6080004 */ lwc1 $f8, 4($s0) +/* 0A99FC 7F074ECC C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A9A00 7F074ED0 46082181 */ sub.s $f6, $f4, $f8 +/* 0A9A04 7F074ED4 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A9A08 7F074ED8 C6040008 */ lwc1 $f4, 8($s0) +/* 0A9A0C 7F074EDC C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0A9A10 7F074EE0 46045201 */ sub.s $f8, $f10, $f4 +/* 0A9A14 7F074EE4 1000000D */ b .L7F074F1C +/* 0A9A18 7F074EE8 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0A9A1C 7F074EEC C4460030 */ lwc1 $f6, 0x30($v0) +.L7F074EF0: +/* 0A9A20 7F074EF0 C60A0000 */ lwc1 $f10, ($s0) +/* 0A9A24 7F074EF4 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A9A28 7F074EF8 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A9A2C 7F074EFC C6060004 */ lwc1 $f6, 4($s0) +/* 0A9A30 7F074F00 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0A9A34 7F074F04 46064281 */ sub.s $f10, $f8, $f6 +/* 0A9A38 7F074F08 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0A9A3C 7F074F0C C6080008 */ lwc1 $f8, 8($s0) +/* 0A9A40 7F074F10 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A9A44 7F074F14 46082181 */ sub.s $f6, $f4, $f8 +/* 0A9A48 7F074F18 E7A60098 */ swc1 $f6, 0x98($sp) +.L7F074F1C: +/* 0A9A4C 7F074F1C 8FA900B4 */ lw $t1, 0xb4($sp) +/* 0A9A50 7F074F20 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0A9A54 7F074F24 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0A9A58 7F074F28 95240000 */ lhu $a0, ($t1) +/* 0A9A5C 7F074F2C 308D0400 */ andi $t5, $a0, 0x400 +/* 0A9A60 7F074F30 11A00074 */ beqz $t5, .L7F075104 +/* 0A9A64 7F074F34 30820800 */ andi $v0, $a0, 0x800 +/* 0A9A68 7F074F38 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A9A6C 7F074F3C C50C0018 */ lwc1 $f12, 0x18($t0) +/* 0A9A70 7F074F40 C510001C */ lwc1 $f16, 0x1c($t0) +/* 0A9A74 7F074F44 46045202 */ mul.s $f8, $f10, $f4 +/* 0A9A78 7F074F48 C46A0004 */ lwc1 $f10, 4($v1) +/* 0A9A7C 7F074F4C C4600000 */ lwc1 $f0, ($v1) +/* 0A9A80 7F074F50 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0A9A84 7F074F54 460A3282 */ mul.s $f10, $f6, $f10 +/* 0A9A88 7F074F58 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A9A8C 7F074F5C E7A80020 */ swc1 $f8, 0x20($sp) +/* 0A9A90 7F074F60 46002202 */ mul.s $f8, $f4, $f0 +/* 0A9A94 7F074F64 460A4200 */ add.s $f8, $f8, $f10 +/* 0A9A98 7F074F68 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0A9A9C 7F074F6C 46085280 */ add.s $f10, $f10, $f8 +/* 0A9AA0 7F074F70 460C5082 */ mul.s $f2, $f10, $f12 +/* 0A9AA4 7F074F74 00000000 */ nop +/* 0A9AA8 7F074F78 46020202 */ mul.s $f8, $f0, $f2 +/* 0A9AAC 7F074F7C 46044280 */ add.s $f10, $f8, $f4 +/* 0A9AB0 7F074F80 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9AB4 7F074F84 C4680004 */ lwc1 $f8, 4($v1) +/* 0A9AB8 7F074F88 46024102 */ mul.s $f4, $f8, $f2 +/* 0A9ABC 7F074F8C 46062200 */ add.s $f8, $f4, $f6 +/* 0A9AC0 7F074F90 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0A9AC4 7F074F94 C4640008 */ lwc1 $f4, 8($v1) +/* 0A9AC8 7F074F98 46022182 */ mul.s $f6, $f4, $f2 +/* 0A9ACC 7F074F9C C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0A9AD0 7F074FA0 46043180 */ add.s $f6, $f6, $f4 +/* 0A9AD4 7F074FA4 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0A9AD8 7F074FA8 C4640008 */ lwc1 $f4, 8($v1) +/* 0A9ADC 7F074FAC C4600000 */ lwc1 $f0, ($v1) +/* 0A9AE0 7F074FB0 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0A9AE4 7F074FB4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0A9AE8 7F074FB8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0A9AEC 7F074FBC E7A60028 */ swc1 $f6, 0x28($sp) +/* 0A9AF0 7F074FC0 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A9AF4 7F074FC4 C4660004 */ lwc1 $f6, 4($v1) +/* 0A9AF8 7F074FC8 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9AFC 7F074FCC E7AA002C */ swc1 $f10, 0x2c($sp) +/* 0A9B00 7F074FD0 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0A9B04 7F074FD4 46064182 */ mul.s $f6, $f8, $f6 +/* 0A9B08 7F074FD8 E7A40030 */ swc1 $f4, 0x30($sp) +/* 0A9B0C 7F074FDC 46005102 */ mul.s $f4, $f10, $f0 +/* 0A9B10 7F074FE0 46062100 */ add.s $f4, $f4, $f6 +/* 0A9B14 7F074FE4 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0A9B18 7F074FE8 46043180 */ add.s $f6, $f6, $f4 +/* 0A9B1C 7F074FEC 460C3382 */ mul.s $f14, $f6, $f12 +/* 0A9B20 7F074FF0 00000000 */ nop +/* 0A9B24 7F074FF4 460E0102 */ mul.s $f4, $f0, $f14 +/* 0A9B28 7F074FF8 460A2180 */ add.s $f6, $f4, $f10 +/* 0A9B2C 7F074FFC E7A60090 */ swc1 $f6, 0x90($sp) +/* 0A9B30 7F075000 C4640004 */ lwc1 $f4, 4($v1) +/* 0A9B34 7F075004 460E2282 */ mul.s $f10, $f4, $f14 +/* 0A9B38 7F075008 46085100 */ add.s $f4, $f10, $f8 +/* 0A9B3C 7F07500C E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9B40 7F075010 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A9B44 7F075014 460E5202 */ mul.s $f8, $f10, $f14 +/* 0A9B48 7F075018 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0A9B4C 7F07501C 460A4200 */ add.s $f8, $f8, $f10 +/* 0A9B50 7F075020 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0A9B54 7F075024 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0A9B58 7F075028 C4600010 */ lwc1 $f0, 0x10($v1) +/* 0A9B5C 7F07502C E7A60030 */ swc1 $f6, 0x30($sp) +/* 0A9B60 7F075030 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A9B64 7F075034 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0A9B68 7F075038 46005182 */ mul.s $f6, $f10, $f0 +/* 0A9B6C 7F07503C C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A9B70 7F075040 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A9B74 7F075044 46082202 */ mul.s $f8, $f4, $f8 +/* 0A9B78 7F075048 46083180 */ add.s $f6, $f6, $f8 +/* 0A9B7C 7F07504C C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0A9B80 7F075050 E7AA0028 */ swc1 $f10, 0x28($sp) +/* 0A9B84 7F075054 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9B88 7F075058 46085282 */ mul.s $f10, $f10, $f8 +/* 0A9B8C 7F07505C 46065280 */ add.s $f10, $f10, $f6 +/* 0A9B90 7F075060 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 0A9B94 7F075064 46105082 */ mul.s $f2, $f10, $f16 +/* 0A9B98 7F075068 00000000 */ nop +/* 0A9B9C 7F07506C 46020282 */ mul.s $f10, $f0, $f2 +/* 0A9BA0 7F075070 46065280 */ add.s $f10, $f10, $f6 +/* 0A9BA4 7F075074 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9BA8 7F075078 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0A9BAC 7F07507C 46023282 */ mul.s $f10, $f6, $f2 +/* 0A9BB0 7F075080 46045180 */ add.s $f6, $f10, $f4 +/* 0A9BB4 7F075084 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A9BB8 7F075088 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9BBC 7F07508C 46025102 */ mul.s $f4, $f10, $f2 +/* 0A9BC0 7F075090 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0A9BC4 7F075094 46082180 */ add.s $f6, $f4, $f8 +/* 0A9BC8 7F075098 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0A9BCC 7F07509C E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0A9BD0 7F0750A0 C4600010 */ lwc1 $f0, 0x10($v1) +/* 0A9BD4 7F0750A4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0A9BD8 7F0750A8 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0A9BDC 7F0750AC 46005102 */ mul.s $f4, $f10, $f0 +/* 0A9BE0 7F0750B0 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9BE4 7F0750B4 46064182 */ mul.s $f6, $f8, $f6 +/* 0A9BE8 7F0750B8 46062100 */ add.s $f4, $f4, $f6 +/* 0A9BEC 7F0750BC C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0A9BF0 7F0750C0 46065282 */ mul.s $f10, $f10, $f6 +/* 0A9BF4 7F0750C4 46045280 */ add.s $f10, $f10, $f4 +/* 0A9BF8 7F0750C8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A9BFC 7F0750CC 46105302 */ mul.s $f12, $f10, $f16 +/* 0A9C00 7F0750D0 00000000 */ nop +/* 0A9C04 7F0750D4 460C0282 */ mul.s $f10, $f0, $f12 +/* 0A9C08 7F0750D8 46045280 */ add.s $f10, $f10, $f4 +/* 0A9C0C 7F0750DC E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A9C10 7F0750E0 C4640014 */ lwc1 $f4, 0x14($v1) +/* 0A9C14 7F0750E4 460C2282 */ mul.s $f10, $f4, $f12 +/* 0A9C18 7F0750E8 46085100 */ add.s $f4, $f10, $f8 +/* 0A9C1C 7F0750EC E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9C20 7F0750F0 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9C24 7F0750F4 460C5202 */ mul.s $f8, $f10, $f12 +/* 0A9C28 7F0750F8 46064100 */ add.s $f4, $f8, $f6 +/* 0A9C2C 7F0750FC 1000004F */ b .L7F07523C +/* 0A9C30 7F075100 E7A40098 */ swc1 $f4, 0x98($sp) +.L7F075104: +/* 0A9C34 7F075104 14400005 */ bnez $v0, .L7F07511C +/* 0A9C38 7F075108 308C1000 */ andi $t4, $a0, 0x1000 +/* 0A9C3C 7F07510C 15800003 */ bnez $t4, .L7F07511C +/* 0A9C40 7F075110 308A2000 */ andi $t2, $a0, 0x2000 +/* 0A9C44 7F075114 5140004A */ beql $t2, $zero, .L7F075240 +/* 0A9C48 7F075118 C7B2009C */ lwc1 $f18, 0x9c($sp) +.L7F07511C: +/* 0A9C4C 7F07511C C50A0018 */ lwc1 $f10, 0x18($t0) +/* 0A9C50 7F075120 308B1000 */ andi $t3, $a0, 0x1000 +/* 0A9C54 7F075124 10400008 */ beqz $v0, .L7F075148 +/* 0A9C58 7F075128 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0A9C5C 7F07512C C4680000 */ lwc1 $f8, ($v1) +/* 0A9C60 7F075130 E7A80054 */ swc1 $f8, 0x54($sp) +/* 0A9C64 7F075134 C4660004 */ lwc1 $f6, 4($v1) +/* 0A9C68 7F075138 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0A9C6C 7F07513C C4640008 */ lwc1 $f4, 8($v1) +/* 0A9C70 7F075140 10000012 */ b .L7F07518C +/* 0A9C74 7F075144 E7A4005C */ swc1 $f4, 0x5c($sp) +.L7F075148: +/* 0A9C78 7F075148 11600008 */ beqz $t3, .L7F07516C +/* 0A9C7C 7F07514C 30992000 */ andi $t9, $a0, 0x2000 +/* 0A9C80 7F075150 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0A9C84 7F075154 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A9C88 7F075158 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A9C8C 7F07515C E7A80058 */ swc1 $f8, 0x58($sp) +/* 0A9C90 7F075160 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0A9C94 7F075164 10000009 */ b .L7F07518C +/* 0A9C98 7F075168 E7A6005C */ swc1 $f6, 0x5c($sp) +.L7F07516C: +/* 0A9C9C 7F07516C 53200008 */ beql $t9, $zero, .L7F075190 +/* 0A9CA0 7F075170 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0A9CA4 7F075174 C4640020 */ lwc1 $f4, 0x20($v1) +/* 0A9CA8 7F075178 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0A9CAC 7F07517C C46A0024 */ lwc1 $f10, 0x24($v1) +/* 0A9CB0 7F075180 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0A9CB4 7F075184 C4680028 */ lwc1 $f8, 0x28($v1) +/* 0A9CB8 7F075188 E7A8005C */ swc1 $f8, 0x5c($sp) +.L7F07518C: +/* 0A9CBC 7F07518C C7AC0054 */ lwc1 $f12, 0x54($sp) +.L7F075190: +/* 0A9CC0 7F075190 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A9CC4 7F075194 C7AE0058 */ lwc1 $f14, 0x58($sp) +/* 0A9CC8 7F075198 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0A9CCC 7F07519C 460C9182 */ mul.s $f6, $f18, $f12 +/* 0A9CD0 7F0751A0 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0A9CD4 7F0751A4 460E2282 */ mul.s $f10, $f4, $f14 +/* 0A9CD8 7F0751A8 460A3200 */ add.s $f8, $f6, $f10 +/* 0A9CDC 7F0751AC C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0A9CE0 7F0751B0 46068282 */ mul.s $f10, $f16, $f6 +/* 0A9CE4 7F0751B4 46085280 */ add.s $f10, $f10, $f8 +/* 0A9CE8 7F0751B8 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0A9CEC 7F0751BC 46085002 */ mul.s $f0, $f10, $f8 +/* 0A9CF0 7F0751C0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0A9CF4 7F0751C4 46006282 */ mul.s $f10, $f12, $f0 +/* 0A9CF8 7F0751C8 46125480 */ add.s $f18, $f10, $f18 +/* 0A9CFC 7F0751CC 46007282 */ mul.s $f10, $f14, $f0 +/* 0A9D00 7F0751D0 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A9D04 7F0751D4 46045280 */ add.s $f10, $f10, $f4 +/* 0A9D08 7F0751D8 46008102 */ mul.s $f4, $f16, $f0 +/* 0A9D0C 7F0751DC E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0A9D10 7F0751E0 46062280 */ add.s $f10, $f4, $f6 +/* 0A9D14 7F0751E4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0A9D18 7F0751E8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0A9D1C 7F0751EC 460C2182 */ mul.s $f6, $f4, $f12 +/* 0A9D20 7F0751F0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0A9D24 7F0751F4 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A9D28 7F0751F8 460E5202 */ mul.s $f8, $f10, $f14 +/* 0A9D2C 7F0751FC 46083180 */ add.s $f6, $f6, $f8 +/* 0A9D30 7F075200 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0A9D34 7F075204 46088102 */ mul.s $f4, $f16, $f8 +/* 0A9D38 7F075208 46062100 */ add.s $f4, $f4, $f6 +/* 0A9D3C 7F07520C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0A9D40 7F075210 46062082 */ mul.s $f2, $f4, $f6 +/* 0A9D44 7F075214 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0A9D48 7F075218 46026102 */ mul.s $f4, $f12, $f2 +/* 0A9D4C 7F07521C 46062100 */ add.s $f4, $f4, $f6 +/* 0A9D50 7F075220 46027182 */ mul.s $f6, $f14, $f2 +/* 0A9D54 7F075224 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A9D58 7F075228 460A3100 */ add.s $f4, $f6, $f10 +/* 0A9D5C 7F07522C 46028182 */ mul.s $f6, $f16, $f2 +/* 0A9D60 7F075230 E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9D64 7F075234 46083280 */ add.s $f10, $f6, $f8 +/* 0A9D68 7F075238 E7AA0098 */ swc1 $f10, 0x98($sp) +.L7F07523C: +/* 0A9D6C 7F07523C C7B2009C */ lwc1 $f18, 0x9c($sp) +.L7F075240: +/* 0A9D70 7F075240 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0A9D74 7F075244 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 0A9D78 7F075248 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9D7C 7F07524C 46049182 */ mul.s $f6, $f18, $f4 +/* 0A9D80 7F075250 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0A9D84 7F075254 E7A40030 */ swc1 $f4, 0x30($sp) +/* 0A9D88 7F075258 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9D8C 7F07525C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A9D90 7F075260 00001025 */ move $v0, $zero +/* 0A9D94 7F075264 460A3180 */ add.s $f6, $f6, $f10 +/* 0A9D98 7F075268 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0A9D9C 7F07526C 46105102 */ mul.s $f4, $f10, $f16 +/* 0A9DA0 7F075270 46062080 */ add.s $f2, $f4, $f6 +/* 0A9DA4 7F075274 44802000 */ mtc1 $zero, $f4 +/* 0A9DA8 7F075278 00000000 */ nop +/* 0A9DAC 7F07527C 4602203C */ c.lt.s $f4, $f2 +/* 0A9DB0 7F075280 00000000 */ nop +/* 0A9DB4 7F075284 4500001A */ bc1f .L7F0752F0 +/* 0A9DB8 7F075288 00000000 */ nop +/* 0A9DBC 7F07528C 46129182 */ mul.s $f6, $f18, $f18 +/* 0A9DC0 7F075290 00000000 */ nop +/* 0A9DC4 7F075294 460E7102 */ mul.s $f4, $f14, $f14 +/* 0A9DC8 7F075298 46043180 */ add.s $f6, $f6, $f4 +/* 0A9DCC 7F07529C 46108102 */ mul.s $f4, $f16, $f16 +/* 0A9DD0 7F0752A0 46062000 */ add.s $f0, $f4, $f6 +/* 0A9DD4 7F0752A4 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A9DD8 7F0752A8 46042182 */ mul.s $f6, $f4, $f4 +/* 0A9DDC 7F0752AC 00000000 */ nop +/* 0A9DE0 7F0752B0 46084102 */ mul.s $f4, $f8, $f8 +/* 0A9DE4 7F0752B4 46043200 */ add.s $f8, $f6, $f4 +/* 0A9DE8 7F0752B8 460A5182 */ mul.s $f6, $f10, $f10 +/* 0A9DEC 7F0752BC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0A9DF0 7F0752C0 46021102 */ mul.s $f4, $f2, $f2 +/* 0A9DF4 7F0752C4 46083300 */ add.s $f12, $f6, $f8 +/* 0A9DF8 7F0752C8 460A6181 */ sub.s $f6, $f12, $f10 +/* 0A9DFC 7F0752CC 46003202 */ mul.s $f8, $f6, $f0 +/* 0A9E00 7F0752D0 4604403E */ c.le.s $f8, $f4 +/* 0A9E04 7F0752D4 00000000 */ nop +/* 0A9E08 7F0752D8 45000003 */ bc1f .L7F0752E8 +/* 0A9E0C 7F0752DC 00000000 */ nop +/* 0A9E10 7F0752E0 10000003 */ b .L7F0752F0 +/* 0A9E14 7F0752E4 24020001 */ li $v0, 1 +.L7F0752E8: +/* 0A9E18 7F0752E8 10000001 */ b .L7F0752F0 +/* 0A9E1C 7F0752EC 00001025 */ move $v0, $zero +.L7F0752F0: +/* 0A9E20 7F0752F0 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9E24 7F0752F4 03E00008 */ jr $ra +/* 0A9E28 7F0752F8 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0752FC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054DB4*/ +glabel jpt_80054DB4 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F07543C +.word .L7F075470 +.word .L7F0753CC +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075404 +.word .L7F075450 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075464 +.word .L7F075470 + +.text +glabel sub_GAME_7F0752FC +/* 0A9E2C 7F0752FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A9E30 7F075300 AFBF002C */ sw $ra, 0x2c($sp) +/* 0A9E34 7F075304 AFB40028 */ sw $s4, 0x28($sp) +/* 0A9E38 7F075308 AFB30024 */ sw $s3, 0x24($sp) +/* 0A9E3C 7F07530C AFB20020 */ sw $s2, 0x20($sp) +/* 0A9E40 7F075310 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A9E44 7F075314 AFB00018 */ sw $s0, 0x18($sp) +/* 0A9E48 7F075318 AFA7003C */ sw $a3, 0x3c($sp) +/* 0A9E4C 7F07531C 8CE20000 */ lw $v0, ($a3) +/* 0A9E50 7F075320 00809025 */ move $s2, $a0 +/* 0A9E54 7F075324 00A09825 */ move $s3, $a1 +/* 0A9E58 7F075328 00C0A025 */ move $s4, $a2 +/* 0A9E5C 7F07532C 10400004 */ beqz $v0, .L7F075340 +/* 0A9E60 7F075330 24110001 */ li $s1, 1 +/* 0A9E64 7F075334 00408025 */ move $s0, $v0 +/* 0A9E68 7F075338 10000003 */ b .L7F075348 +/* 0A9E6C 7F07533C ACE00000 */ sw $zero, ($a3) +.L7F075340: +/* 0A9E70 7F075340 8E4F0008 */ lw $t7, 8($s2) +/* 0A9E74 7F075344 8DF00000 */ lw $s0, ($t7) +.L7F075348: +/* 0A9E78 7F075348 5200004C */ beql $s0, $zero, .L7F07547C +/* 0A9E7C 7F07534C 00001025 */ move $v0, $zero +.L7F075350: +/* 0A9E80 7F075350 12200006 */ beqz $s1, .L7F07536C +/* 0A9E84 7F075354 00000000 */ nop +/* 0A9E88 7F075358 8E020014 */ lw $v0, 0x14($s0) +/* 0A9E8C 7F07535C 10400003 */ beqz $v0, .L7F07536C +/* 0A9E90 7F075360 00000000 */ nop +/* 0A9E94 7F075364 1000000D */ b .L7F07539C +/* 0A9E98 7F075368 00408025 */ move $s0, $v0 +.L7F07536C: +/* 0A9E9C 7F07536C 12000009 */ beqz $s0, .L7F075394 +/* 0A9EA0 7F075370 00000000 */ nop +/* 0A9EA4 7F075374 8E02000C */ lw $v0, 0xc($s0) +.L7F075378: +/* 0A9EA8 7F075378 50400004 */ beql $v0, $zero, .L7F07538C +/* 0A9EAC 7F07537C 8E100008 */ lw $s0, 8($s0) +/* 0A9EB0 7F075380 10000004 */ b .L7F075394 +/* 0A9EB4 7F075384 00408025 */ move $s0, $v0 +/* 0A9EB8 7F075388 8E100008 */ lw $s0, 8($s0) +.L7F07538C: +/* 0A9EBC 7F07538C 5600FFFA */ bnezl $s0, .L7F075378 +/* 0A9EC0 7F075390 8E02000C */ lw $v0, 0xc($s0) +.L7F075394: +/* 0A9EC4 7F075394 52000039 */ beql $s0, $zero, .L7F07547C +/* 0A9EC8 7F075398 00001025 */ move $v0, $zero +.L7F07539C: +/* 0A9ECC 7F07539C 96020000 */ lhu $v0, ($s0) +/* 0A9ED0 7F0753A0 24110001 */ li $s1, 1 +/* 0A9ED4 7F0753A4 305800FF */ andi $t8, $v0, 0xff +/* 0A9ED8 7F0753A8 2719FFFF */ addiu $t9, $t8, -1 +/* 0A9EDC 7F0753AC 2F210018 */ sltiu $at, $t9, 0x18 +/* 0A9EE0 7F0753B0 1020002F */ beqz $at, .L7F075470 +/* 0A9EE4 7F0753B4 0019C880 */ sll $t9, $t9, 2 +/* 0A9EE8 7F0753B8 3C018005 */ lui $at, %hi(jpt_80054DB4) +/* 0A9EEC 7F0753BC 00390821 */ addu $at, $at, $t9 +/* 0A9EF0 7F0753C0 8C394DB4 */ lw $t9, %lo(jpt_80054DB4)($at) +.L7F0753C4: +/* 0A9EF4 7F0753C4 03200008 */ jr $t9 +/* 0A9EF8 7F0753C8 00000000 */ nop +.L7F0753CC: +/* 0A9EFC 7F0753CC 02402025 */ move $a0, $s2 +/* 0A9F00 7F0753D0 02002825 */ move $a1, $s0 +/* 0A9F04 7F0753D4 02603025 */ move $a2, $s3 +/* 0A9F08 7F0753D8 0FC1D31A */ jal sub_GAME_7F074C68 +/* 0A9F0C 7F0753DC 02803825 */ move $a3, $s4 +/* 0A9F10 7F0753E0 10400006 */ beqz $v0, .L7F0753FC +/* 0A9F14 7F0753E4 00000000 */ nop +/* 0A9F18 7F0753E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 0A9F1C 7F0753EC AD100000 */ sw $s0, ($t0) +/* 0A9F20 7F0753F0 8E090004 */ lw $t1, 4($s0) +/* 0A9F24 7F0753F4 10000021 */ b .L7F07547C +/* 0A9F28 7F0753F8 8D220000 */ lw $v0, ($t1) +.L7F0753FC: +/* 0A9F2C 7F0753FC 1000001C */ b .L7F075470 +/* 0A9F30 7F075400 00008825 */ move $s1, $zero +.L7F075404: +/* 0A9F34 7F075404 02402025 */ move $a0, $s2 +/* 0A9F38 7F075408 02002825 */ move $a1, $s0 +/* 0A9F3C 7F07540C 02603025 */ move $a2, $s3 +/* 0A9F40 7F075410 0FC1D32B */ jal sub_GAME_7F074CAC +/* 0A9F44 7F075414 02803825 */ move $a3, $s4 +/* 0A9F48 7F075418 10400006 */ beqz $v0, .L7F075434 +/* 0A9F4C 7F07541C 00000000 */ nop +/* 0A9F50 7F075420 8FAA003C */ lw $t2, 0x3c($sp) +/* 0A9F54 7F075424 AD500000 */ sw $s0, ($t2) +/* 0A9F58 7F075428 8E0B0004 */ lw $t3, 4($s0) +/* 0A9F5C 7F07542C 10000013 */ b .L7F07547C +/* 0A9F60 7F075430 8D620000 */ lw $v0, ($t3) +.L7F075434: +/* 0A9F64 7F075434 1000000E */ b .L7F075470 +/* 0A9F68 7F075438 00008825 */ move $s1, $zero +.L7F07543C: +/* 0A9F6C 7F07543C 02402025 */ move $a0, $s2 +/* 0A9F70 7F075440 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0A9F74 7F075444 02002825 */ move $a1, $s0 +/* 0A9F78 7F075448 10000009 */ b .L7F075470 +/* 0A9F7C 7F07544C 00000000 */ nop +.L7F075450: +/* 0A9F80 7F075450 02402025 */ move $a0, $s2 +/* 0A9F84 7F075454 0FC1BA6F */ jal process_12_handle_switch +/* 0A9F88 7F075458 02002825 */ move $a1, $s0 +/* 0A9F8C 7F07545C 10000004 */ b .L7F075470 +/* 0A9F90 7F075460 00000000 */ nop +.L7F075464: +/* 0A9F94 7F075464 02402025 */ move $a0, $s2 +/* 0A9F98 7F075468 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A9F9C 7F07546C 02002825 */ move $a1, $s0 +def_7F0753C4: +.L7F075470: +/* 0A9FA0 7F075470 1600FFB7 */ bnez $s0, .L7F075350 +/* 0A9FA4 7F075474 00000000 */ nop +/* 0A9FA8 7F075478 00001025 */ move $v0, $zero +.L7F07547C: +/* 0A9FAC 7F07547C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0A9FB0 7F075480 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9FB4 7F075484 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A9FB8 7F075488 8FB20020 */ lw $s2, 0x20($sp) +/* 0A9FBC 7F07548C 8FB30024 */ lw $s3, 0x24($sp) +/* 0A9FC0 7F075490 8FB40028 */ lw $s4, 0x28($sp) +/* 0A9FC4 7F075494 03E00008 */ jr $ra +/* 0A9FC8 7F075498 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07549C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07549C +/* 0A9FCC 7F07549C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A9FD0 7F0754A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A9FD4 7F0754A4 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 0A9FD8 7F0754A8 ACE00000 */ sw $zero, ($a3) +/* 0A9FDC 7F0754AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A9FE0 7F0754B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A9FE4 7F0754B4 03E00008 */ jr $ra +/* 0A9FE8 7F0754B8 00000000 */ nop +) +#endif + + + + + +#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) + { + // Node 1 + phi_a3_2 = (*arg0 + (arg1 * temp_t6)); + } + else + { + // Node 2 + phi_a3_2 = 0; + if (D_80036414 != 0) + { + // 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; + } + // Node 6 + } + // Node 7 + return phi_a3_2; +} +#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 + + + + + +#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) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075A90 +/* 0AA5C0 7F075A90 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AA5C4 7F075A94 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AA5C8 7F075A98 AFB10018 */ sw $s1, 0x18($sp) +/* 0AA5CC 7F075A9C AFB00014 */ sw $s0, 0x14($sp) +/* 0AA5D0 7F075AA0 8487000C */ lh $a3, 0xc($a0) +/* 0AA5D4 7F075AA4 00808025 */ move $s0, $a0 +/* 0AA5D8 7F075AA8 00A08825 */ move $s1, $a1 +/* 0AA5DC 7F075AAC 18E0000E */ blez $a3, .L7F075AE8 +/* 0AA5E0 7F075AB0 00001025 */ move $v0, $zero +/* 0AA5E4 7F075AB4 00001825 */ move $v1, $zero +.L7F075AB8: +/* 0AA5E8 7F075AB8 8E0E0008 */ lw $t6, 8($s0) +/* 0AA5EC 7F075ABC 00D17823 */ subu $t7, $a2, $s1 +/* 0AA5F0 7F075AC0 24420001 */ addiu $v0, $v0, 1 +/* 0AA5F4 7F075AC4 01C32021 */ addu $a0, $t6, $v1 +/* 0AA5F8 7F075AC8 8C850000 */ lw $a1, ($a0) +/* 0AA5FC 7F075ACC 10A00003 */ beqz $a1, .L7F075ADC +/* 0AA600 7F075AD0 00AFC021 */ addu $t8, $a1, $t7 +/* 0AA604 7F075AD4 AC980000 */ sw $t8, ($a0) +/* 0AA608 7F075AD8 8607000C */ lh $a3, 0xc($s0) +.L7F075ADC: +/* 0AA60C 7F075ADC 0047082A */ slt $at, $v0, $a3 +/* 0AA610 7F075AE0 1420FFF5 */ bnez $at, .L7F075AB8 +/* 0AA614 7F075AE4 24630004 */ addiu $v1, $v1, 4 +.L7F075AE8: +/* 0AA618 7F075AE8 8E040000 */ lw $a0, ($s0) +/* 0AA61C 7F075AEC 0FC1D577 */ jal convert_obj_microcode_offset_to_rdram_addr +/* 0AA620 7F075AF0 02202825 */ move $a1, $s1 +/* 0AA624 7F075AF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AA628 7F075AF8 8FB00014 */ lw $s0, 0x14($sp) +/* 0AA62C 7F075AFC 8FB10018 */ lw $s1, 0x18($sp) +/* 0AA630 7F075B00 03E00008 */ jr $ra +/* 0AA634 7F075B04 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F075B08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075B08 +/* 0AA638 7F075B08 AFA40000 */ sw $a0, ($sp) +/* 0AA63C 7F075B0C AFA50004 */ sw $a1, 4($sp) +/* 0AA640 7F075B10 AFA60008 */ sw $a2, 8($sp) +/* 0AA644 7F075B14 03E00008 */ jr $ra +/* 0AA648 7F075B18 AFA7000C */ sw $a3, 0xc($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void set_microcode_entry_numbers(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void set_objuse_flag_compute_grp_nums_set_obj_loaded(void *arg0, void *arg6) { + // Node 0 + arg0->unk1C = 1; + arg6->unk14 = set_microcode_entry_numbers(*arg0, arg0); + return; + // (possible return value: set_microcode_entry_numbers(*arg0, arg0)) +} + +#else +GLOBAL_ASM( +.text +glabel set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AA824 7F075CF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AA828 7F075CF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AA82C 7F075CFC 240E0001 */ li $t6, 1 +/* 0AA830 7F075D00 00802825 */ move $a1, $a0 +/* 0AA834 7F075D04 AC8E001C */ sw $t6, 0x1c($a0) +/* 0AA838 7F075D08 8C840000 */ lw $a0, ($a0) +/* 0AA83C 7F075D0C 0FC1D6C7 */ jal set_microcode_entry_numbers +/* 0AA840 7F075D10 AFA50018 */ sw $a1, 0x18($sp) +/* 0AA844 7F075D14 8FA50018 */ lw $a1, 0x18($sp) +/* 0AA848 7F075D18 A4A20014 */ sh $v0, 0x14($a1) +/* 0AA84C 7F075D1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AA850 7F075D20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AA854 7F075D24 03E00008 */ jr $ra +/* 0AA858 7F075D28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void unknown_object_microcode_handler(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F075F68(void *arg0, void *arg1, ?32 arg2) { + // Node 0 + arg0->unk8 = arg1; + arg0->unk10 = arg2; + arg0->unk2 = (u16)-1; + arg0->unk18 = 0; + arg0->unk1C = 0; + arg0->unk14 = 1.0f; + unknown_object_microcode_handler(*arg1); + return; + // (possible return value: unknown_object_microcode_handler(*arg1)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075F68 +/* 0AAA98 7F075F68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AAA9C 7F075F6C AFBF0014 */ sw $ra, 0x14($sp) +/* 0AAAA0 7F075F70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AAAA4 7F075F74 44812000 */ mtc1 $at, $f4 +/* 0AAAA8 7F075F78 240EFFFF */ li $t6, -1 +/* 0AAAAC 7F075F7C AC850008 */ sw $a1, 8($a0) +/* 0AAAB0 7F075F80 AC860010 */ sw $a2, 0x10($a0) +/* 0AAAB4 7F075F84 A48E0002 */ sh $t6, 2($a0) +/* 0AAAB8 7F075F88 AC800018 */ sw $zero, 0x18($a0) +/* 0AAABC 7F075F8C AC80001C */ sw $zero, 0x1c($a0) +/* 0AAAC0 7F075F90 E4840014 */ swc1 $f4, 0x14($a0) +/* 0AAAC4 7F075F94 0FC1D74B */ jal unknown_object_microcode_handler +/* 0AAAC8 7F075F98 8CA50000 */ lw $a1, ($a1) +/* 0AAACC 7F075F9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AAAD0 7F075FA0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AAAD4 7F075FA4 03E00008 */ jr $ra +/* 0AAAD8 7F075FA8 00000000 */ nop +) +#endif + + + + + +#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) +} + +#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(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0760C4(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07623C(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0762E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0762E0 +/* 0AAE10 7F0762E0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0AAE14 7F0762E4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0AAE18 7F0762E8 AFBE0038 */ sw $fp, 0x38($sp) +/* 0AAE1C 7F0762EC AFB70034 */ sw $s7, 0x34($sp) +/* 0AAE20 7F0762F0 AFB60030 */ sw $s6, 0x30($sp) +/* 0AAE24 7F0762F4 AFB5002C */ sw $s5, 0x2c($sp) +/* 0AAE28 7F0762F8 AFB40028 */ sw $s4, 0x28($sp) +/* 0AAE2C 7F0762FC AFB30024 */ sw $s3, 0x24($sp) +/* 0AAE30 7F076300 AFB20020 */ sw $s2, 0x20($sp) +/* 0AAE34 7F076304 AFB1001C */ sw $s1, 0x1c($sp) +/* 0AAE38 7F076308 AFB00018 */ sw $s0, 0x18($sp) +/* 0AAE3C 7F07630C AFA60080 */ sw $a2, 0x80($sp) +/* 0AAE40 7F076310 AFA70084 */ sw $a3, 0x84($sp) +/* 0AAE44 7F076314 8C8E0008 */ lw $t6, 8($a0) +/* 0AAE48 7F076318 0080A825 */ move $s5, $a0 +/* 0AAE4C 7F07631C 00A02025 */ move $a0, $a1 +/* 0AAE50 7F076320 0FC2F495 */ jal get_index_num_of_named_resource +/* 0AAE54 7F076324 AFAE0054 */ sw $t6, 0x54($sp) +/* 0AAE58 7F076328 AFA20050 */ sw $v0, 0x50($sp) +/* 0AAE5C 7F07632C 0FC2F447 */ jal get_rom_remaining_buffer_for_index +/* 0AAE60 7F076330 00402025 */ move $a0, $v0 +/* 0AAE64 7F076334 00408025 */ move $s0, $v0 +/* 0AAE68 7F076338 0FC2F440 */ jal get_pc_remaining_buffer_for_index +/* 0AAE6C 7F07633C 8FA40050 */ lw $a0, 0x50($sp) +/* 0AAE70 7F076340 0040F025 */ move $fp, $v0 +/* 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 +/* 0AAE84 7F076354 27A6006C */ addiu $a2, $sp, 0x6c +/* 0AAE88 7F076358 8FB7006C */ lw $s7, 0x6c($sp) +/* 0AAE8C 7F07635C 3C1600FF */ lui $s6, (0x00FFFFFF >> 16) # lui $s6, 0xff +/* 0AAE90 7F076360 36D6FFFF */ ori $s6, (0x00FFFFFF & 0xFFFF) # ori $s6, $s6, 0xffff +/* 0AAE94 7F076364 12E00043 */ beqz $s7, .L7F076474 +/* 0AAE98 7F076368 8FA70054 */ lw $a3, 0x54($sp) +/* 0AAE9C 7F07636C 8EAF0008 */ lw $t7, 8($s5) +/* 0AAEA0 7F076370 02F6C824 */ and $t9, $s7, $s6 +/* 0AAEA4 7F076374 02074821 */ addu $t1, $s0, $a3 +/* 0AAEA8 7F076378 01F92021 */ addu $a0, $t7, $t9 +/* 0AAEAC 7F07637C 03C44023 */ subu $t0, $fp, $a0 +/* 0AAEB0 7F076380 01073021 */ addu $a2, $t0, $a3 +/* 0AAEB4 7F076384 01262823 */ subu $a1, $t1, $a2 +/* 0AAEB8 7F076388 00A45023 */ subu $t2, $a1, $a0 +/* 0AAEBC 7F07638C 02E09825 */ move $s3, $s7 +/* 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 +/* 0AAED0 7F0763A0 8FA50084 */ lw $a1, 0x84($sp) +/* 0AAED4 7F0763A4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0AAED8 7F0763A8 51600025 */ beql $t3, $zero, .L7F076440 +/* 0AAEDC 7F0763AC 8EAA0008 */ lw $t2, 8($s5) +/* 0AAEE0 7F0763B0 8FB0006C */ lw $s0, 0x6c($sp) +.L7F0763B4: +/* 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 +/* 0AAEF4 7F0763C4 27A6006C */ addiu $a2, $sp, 0x6c +/* 0AAEF8 7F0763C8 8FB7006C */ lw $s7, 0x6c($sp) +/* 0AAEFC 7F0763CC 02A02025 */ move $a0, $s5 +/* 0AAF00 7F0763D0 02802825 */ move $a1, $s4 +/* 0AAF04 7F0763D4 12E00004 */ beqz $s7, .L7F0763E8 +/* 0AAF08 7F0763D8 02003025 */ move $a2, $s0 +/* 0AAF0C 7F0763DC 02F09023 */ subu $s2, $s7, $s0 +/* 0AAF10 7F0763E0 10000007 */ b .L7F076400 +/* 0AAF14 7F0763E4 02168824 */ and $s1, $s0, $s6 +.L7F0763E8: +/* 0AAF18 7F0763E8 8FAC0054 */ lw $t4, 0x54($sp) +/* 0AAF1C 7F0763EC 8EAE0008 */ lw $t6, 8($s5) +/* 0AAF20 7F0763F0 02168824 */ and $s1, $s0, $s6 +/* 0AAF24 7F0763F4 019E6821 */ addu $t5, $t4, $fp +/* 0AAF28 7F0763F8 01AEC023 */ subu $t8, $t5, $t6 +/* 0AAF2C 7F0763FC 03119023 */ subu $s2, $t8, $s1 +.L7F076400: +/* 0AAF30 7F076400 0FC1D88F */ jal sub_GAME_7F07623C +/* 0AAF34 7F076404 02603825 */ move $a3, $s3 +/* 0AAF38 7F076408 8EA20008 */ lw $v0, 8($s5) +/* 0AAF3C 7F07640C 8FB90058 */ lw $t9, 0x58($sp) +/* 0AAF40 7F076410 02764024 */ and $t0, $s3, $s6 +/* 0AAF44 7F076414 00517821 */ addu $t7, $v0, $s1 +/* 0AAF48 7F076418 02402825 */ move $a1, $s2 +/* 0AAF4C 7F07641C 8FA70084 */ lw $a3, 0x84($sp) +/* 0AAF50 7F076420 00483021 */ addu $a2, $v0, $t0 +/* 0AAF54 7F076424 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0AAF58 7F076428 01F92021 */ addu $a0, $t7, $t9 +/* 0AAF5C 7F07642C 8FA90074 */ lw $t1, 0x74($sp) +/* 0AAF60 7F076430 02629821 */ addu $s3, $s3, $v0 +/* 0AAF64 7F076434 5520FFDF */ bnezl $t1, .L7F0763B4 +/* 0AAF68 7F076438 8FB0006C */ lw $s0, 0x6c($sp) +/* 0AAF6C 7F07643C 8EAA0008 */ lw $t2, 8($s5) +.L7F076440: +/* 0AAF70 7F076440 8FA50054 */ lw $a1, 0x54($sp) +/* 0AAF74 7F076444 02765824 */ and $t3, $s3, $s6 +/* 0AAF78 7F076448 8FA70080 */ lw $a3, 0x80($sp) +/* 0AAF7C 7F07644C 014B6021 */ addu $t4, $t2, $t3 +/* 0AAF80 7F076450 01859023 */ subu $s2, $t4, $a1 +/* 0AAF84 7F076454 2646000F */ addiu $a2, $s2, 0xf +/* 0AAF88 7F076458 2401FFF0 */ li $at, -16 +/* 0AAF8C 7F07645C 00C16824 */ and $t5, $a2, $at +/* 0AAF90 7F076460 2CEE0001 */ sltiu $t6, $a3, 1 +/* 0AAF94 7F076464 01C03825 */ move $a3, $t6 +/* 0AAF98 7F076468 01A03025 */ move $a2, $t5 +/* 0AAF9C 7F07646C 0FC2F44E */ jal sub_GAME_7F0BD138 +/* 0AAFA0 7F076470 8FA40050 */ lw $a0, 0x50($sp) +.L7F076474: +/* 0AAFA4 7F076474 8FBF003C */ lw $ra, 0x3c($sp) +/* 0AAFA8 7F076478 8FB00018 */ lw $s0, 0x18($sp) +/* 0AAFAC 7F07647C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0AAFB0 7F076480 8FB20020 */ lw $s2, 0x20($sp) +/* 0AAFB4 7F076484 8FB30024 */ lw $s3, 0x24($sp) +/* 0AAFB8 7F076488 8FB40028 */ lw $s4, 0x28($sp) +/* 0AAFBC 7F07648C 8FB5002C */ lw $s5, 0x2c($sp) +/* 0AAFC0 7F076490 8FB60030 */ lw $s6, 0x30($sp) +/* 0AAFC4 7F076494 8FB70034 */ lw $s7, 0x34($sp) +/* 0AAFC8 7F076498 8FBE0038 */ lw $fp, 0x38($sp) +/* 0AAFCC 7F07649C 03E00008 */ jr $ra +/* 0AAFD0 7F0764A0 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_fill_header(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_object_fill_header +/* 0AAFD4 7F0764A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AAFD8 7F0764A8 AFB00018 */ sw $s0, 0x18($sp) +/* 0AAFDC 7F0764AC 00808025 */ move $s0, $a0 +/* 0AAFE0 7F0764B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AAFE4 7F0764B4 AFA50024 */ sw $a1, 0x24($sp) +/* 0AAFE8 7F0764B8 10C00006 */ beqz $a2, .L7F0764D4 +/* 0AAFEC 7F0764BC AFA60028 */ sw $a2, 0x28($sp) +/* 0AAFF0 7F0764C0 00A02025 */ move $a0, $a1 +/* 0AAFF4 7F0764C4 0FC2F350 */ jal _load_resource_named_to_buffer +/* 0AAFF8 7F0764C8 00002825 */ move $a1, $zero +/* 0AAFFC 7F0764CC 10000007 */ b .L7F0764EC +/* 0AB000 7F0764D0 00403025 */ move $a2, $v0 +.L7F0764D4: +/* 0AB004 7F0764D4 8FA40024 */ lw $a0, 0x24($sp) +/* 0AB008 7F0764D8 00002825 */ move $a1, $zero +/* 0AB00C 7F0764DC 24060100 */ li $a2, 256 +/* 0AB010 7F0764E0 0FC2F341 */ jal _load_resource_named_to_membank +/* 0AB014 7F0764E4 24070004 */ li $a3, 4 +/* 0AB018 7F0764E8 00403025 */ move $a2, $v0 +.L7F0764EC: +/* 0AB01C 7F0764EC 86190016 */ lh $t9, 0x16($s0) +/* 0AB020 7F0764F0 860F000C */ lh $t7, 0xc($s0) +/* 0AB024 7F0764F4 AE060008 */ sw $a2, 8($s0) +/* 0AB028 7F0764F8 00194080 */ sll $t0, $t9, 2 +/* 0AB02C 7F0764FC 01194023 */ subu $t0, $t0, $t9 +/* 0AB030 7F076500 000FC080 */ sll $t8, $t7, 2 +/* 0AB034 7F076504 00D81021 */ addu $v0, $a2, $t8 +/* 0AB038 7F076508 00084080 */ sll $t0, $t0, 2 +/* 0AB03C 7F07650C 00484821 */ addu $t1, $v0, $t0 +/* 0AB040 7F076510 AE020018 */ sw $v0, 0x18($s0) +/* 0AB044 7F076514 AE090000 */ sw $t1, ($s0) +/* 0AB048 7F076518 02002025 */ move $a0, $s0 +/* 0AB04C 7F07651C 0FC1D6A4 */ jal sub_GAME_7F075A90 +/* 0AB050 7F076520 3C050500 */ lui $a1, 0x500 +/* 0AB054 7F076524 02002025 */ move $a0, $s0 +/* 0AB058 7F076528 8FA50024 */ lw $a1, 0x24($sp) +/* 0AB05C 7F07652C 8FA60028 */ lw $a2, 0x28($sp) +/* 0AB060 7F076530 0FC1D8B8 */ jal sub_GAME_7F0762E0 +/* 0AB064 7F076534 8FA70030 */ lw $a3, 0x30($sp) +/* 0AB068 7F076538 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB06C 7F07653C 8FB00018 */ lw $s0, 0x18($sp) +/* 0AB070 7F076540 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB074 7F076544 03E00008 */ jr $ra +/* 0AB078 7F076548 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_into_memory(void) { + // Node 0 + load_object_fill_header(0, 0, 0); + return; + // (possible return value: load_object_fill_header(0, 0, 0)) +} + +#else +GLOBAL_ASM( +.text +glabel load_object_into_memory +/* 0AB07C 7F07654C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AB080 7F076550 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AB084 7F076554 AFA00010 */ sw $zero, 0x10($sp) +/* 0AB088 7F076558 00003025 */ move $a2, $zero +/* 0AB08C 7F07655C 0FC1D929 */ jal load_object_fill_header +/* 0AB090 7F076560 00003825 */ move $a3, $zero +/* 0AB094 7F076564 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB098 7F076568 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB09C 7F07656C 03E00008 */ jr $ra +/* 0AB0A0 7F076570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_into_memory_unused_maybe(void) { + // Node 0 + load_object_fill_header(0); + return; + // (possible return value: load_object_fill_header(0)) +} + +#else +GLOBAL_ASM( +.text +glabel load_object_into_memory_unused_maybe +/* 0AB0A4 7F076574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AB0A8 7F076578 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AB0AC 7F07657C 0FC1D929 */ jal load_object_fill_header +/* 0AB0B0 7F076580 AFA00010 */ sw $zero, 0x10($sp) +/* 0AB0B4 7F076584 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB0B8 7F076588 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB0BC 7F07658C 03E00008 */ jr $ra +/* 0AB0C0 7F076590 00000000 */ nop +) +#endif + + + + diff --git a/src/game/objective.c b/src/game/objective.c new file mode 100644 index 0000000..be7947f --- /dev/null +++ b/src/game/objective.c @@ -0,0 +1,287 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void something_with_stage_objectives(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel something_with_stage_objectives +/* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0399F8 7F004EC8 0C001A57 */ jal get_stage_num +/* 0399FC 7F004ECC 00000000 */ nop +/* 039A00 7F004ED0 2401005A */ li $at, 90 +/* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C +/* 039A08 7F004ED8 240EFFFF */ li $t6, -1 +/* 039A0C 7F004EDC 3C018003 */ lui $at, %hi(num_objective_ptrs) +/* 039A10 7F004EE0 AC2E22F0 */ sw $t6, %lo(num_objective_ptrs)($at) +/* 039A14 7F004EE4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) +/* 039A18 7F004EE8 AC205D58 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at) +/* 039A1C 7F004EEC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) +/* 039A20 7F004EF0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60) +/* 039A24 7F004EF4 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) +/* 039A28 7F004EF8 24635D80 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5d80 +/* 039A2C 7F004EFC 24425D60 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5d60 +/* 039A30 7F004F00 AC205D5C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at) +.L7F004F04: +/* 039A34 7F004F04 24420010 */ addiu $v0, $v0, 0x10 +/* 039A38 7F004F08 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A3C 7F004F0C AC40FFF8 */ sw $zero, -8($v0) +/* 039A40 7F004F10 AC40FFFC */ sw $zero, -4($v0) +/* 039A44 7F004F14 1443FFFB */ bne $v0, $v1, .L7F004F04 +/* 039A48 7F004F18 AC40FFF0 */ sw $zero, -0x10($v0) +.L7F004F1C: +/* 039A4C 7F004F1C 3C018007 */ lui $at, %hi(objective_ptrs) +/* 039A50 7F004F20 AC205D30 */ sw $zero, %lo(objective_ptrs)($at) +/* 039A54 7F004F24 3C018007 */ lui $at, %hi(objective_ptrs+4) +/* 039A58 7F004F28 3C028007 */ lui $v0, %hi(objective_ptrs+8) +/* 039A5C 7F004F2C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58) +/* 039A60 7F004F30 24635D58 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d58 +/* 039A64 7F004F34 24425D38 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d38 +/* 039A68 7F004F38 AC205D34 */ sw $zero, %lo(objective_ptrs+4)($at) +.L7F004F3C: +/* 039A6C 7F004F3C 24420010 */ addiu $v0, $v0, 0x10 +/* 039A70 7F004F40 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A74 7F004F44 AC40FFF8 */ sw $zero, -8($v0) +/* 039A78 7F004F48 AC40FFFC */ sw $zero, -4($v0) +/* 039A7C 7F004F4C 1443FFFB */ bne $v0, $v1, .L7F004F3C +/* 039A80 7F004F50 AC40FFF0 */ sw $zero, -0x10($v0) +/* 039A84 7F004F54 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16) +/* 039A88 7F004F58 AC205D80 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at) +/* 039A8C 7F004F5C 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23) +/* 039A90 7F004F60 AC205D84 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at) +/* 039A94 7F004F64 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 039A98 7F004F68 AC205D88 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at) +/* 039A9C 7F004F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 039AA0 7F004F70 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 039AA4 7F004F74 AC205D8C */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at) +/* 039AA8 7F004F78 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 039AAC 7F004F7C AC205D90 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at) +/* 039AB0 7F004F80 03E00008 */ jr $ra +/* 039AB4 7F004F84 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel something_with_stage_objectives +/* 039A40 7F004ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 039A44 7F004ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 039A48 7F004ED8 0C001A57 */ jal get_stage_num +/* 039A4C 7F004EDC 00000000 */ nop +/* 039A50 7F004EE0 2401005A */ li $at, 90 +/* 039A54 7F004EE4 10410011 */ beq $v0, $at, .L7F004F2C +/* 039A58 7F004EE8 240EFFFF */ li $t6, -1 +/* 039A5C 7F004EEC 3C018003 */ lui $at, %hi(num_objective_ptrs) # $at, 0x8003 +/* 039A60 7F004EF0 AC2E2330 */ sw $t6, %lo(num_objective_ptrs)($at) +/* 039A64 7F004EF4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) # $at, 0x8007 +/* 039A68 7F004EF8 AC205D98 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at) +/* 039A6C 7F004EFC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) # $at, 0x8007 +/* 039A70 7F004F00 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60) # $v0, 0x8007 +/* 039A74 7F004F04 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) # $v1, 0x8007 +/* 039A78 7F004F08 24635DC0 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5dc0 +/* 039A7C 7F004F0C 24425DA0 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5da0 +/* 039A80 7F004F10 AC205D9C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at) +.L7F004F14: +/* 039A84 7F004F14 24420010 */ addiu $v0, $v0, 0x10 +/* 039A88 7F004F18 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A8C 7F004F1C AC40FFF8 */ sw $zero, -8($v0) +/* 039A90 7F004F20 AC40FFFC */ sw $zero, -4($v0) +/* 039A94 7F004F24 1443FFFB */ bne $v0, $v1, .L7F004F14 +/* 039A98 7F004F28 AC40FFF0 */ sw $zero, -0x10($v0) +.L7F004F2C: +/* 039A9C 7F004F2C 3C018003 */ lui $at, %hi(num_objective_ptrs+4) # $at, 0x8003 +/* 039AA0 7F004F30 AC202334 */ sw $zero, %lo(num_objective_ptrs+4)($at) +/* 039AA4 7F004F34 3C018007 */ lui $at, %hi(objective_ptrs) # $at, 0x8007 +/* 039AA8 7F004F38 AC205D70 */ sw $zero, %lo(objective_ptrs)($at) +/* 039AAC 7F004F3C 3C018007 */ lui $at, %hi(objective_ptrs+4) # $at, 0x8007 +/* 039AB0 7F004F40 3C028007 */ lui $v0, %hi(objective_ptrs+8) # $v0, 0x8007 +/* 039AB4 7F004F44 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58) # $v1, 0x8007 +/* 039AB8 7F004F48 24635D98 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d98 +/* 039ABC 7F004F4C 24425D78 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d78 +/* 039AC0 7F004F50 AC205D74 */ sw $zero, %lo(objective_ptrs+4)($at) +.L7F004F54: +/* 039AC4 7F004F54 24420010 */ addiu $v0, $v0, 0x10 +/* 039AC8 7F004F58 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039ACC 7F004F5C AC40FFF8 */ sw $zero, -8($v0) +/* 039AD0 7F004F60 AC40FFFC */ sw $zero, -4($v0) +/* 039AD4 7F004F64 1443FFFB */ bne $v0, $v1, .L7F004F54 +/* 039AD8 7F004F68 AC40FFF0 */ sw $zero, -0x10($v0) +/* 039ADC 7F004F6C 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16) # $at, 0x8007 +/* 039AE0 7F004F70 AC205DC0 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at) +/* 039AE4 7F004F74 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23) # $at, 0x8007 +/* 039AE8 7F004F78 AC205DC4 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at) +/* 039AEC 7F004F7C 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20) # $at, 0x8007 +/* 039AF0 7F004F80 AC205DC8 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at) +/* 039AF4 7F004F84 8FBF0014 */ lw $ra, 0x14($sp) +/* 039AF8 7F004F88 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21) # $at, 0x8007 +/* 039AFC 7F004F8C AC205DCC */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at) +/* 039B00 7F004F90 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) # $at, 0x8007 +/* 039B04 7F004F94 AC205DD0 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at) +/* 039B08 7F004F98 03E00008 */ jr $ra +/* 039B0C 7F004F9C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_tag_entry(void *arg0) { + // Node 0 + arg0->unk8 = (void *) ptr_last_tag_entry_type16; + ptr_last_tag_entry_type16 = arg0; + return; + // (possible return value: &ptr_last_tag_entry_type16) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_tag_entry +/* 039AB8 7F004F88 3C028007 */ lui $v0, %hi(ptr_last_tag_entry_type16) +/* 039ABC 7F004F8C 24425D80 */ addiu $v0, %lo(ptr_last_tag_entry_type16) # addiu $v0, $v0, 0x5d80 +/* 039AC0 7F004F90 8C4E0000 */ lw $t6, ($v0) +/* 039AC4 7F004F94 AC8E0008 */ sw $t6, 8($a0) +/* 039AC8 7F004F98 03E00008 */ jr $ra +/* 039ACC 7F004F9C AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *setup_briefing_text_entry_parent(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_briefing_setup_entry_type23; + ptr_last_briefing_setup_entry_type23 = arg0; + return; + // (possible return value: &ptr_last_briefing_setup_entry_type23) +} + +#else +GLOBAL_ASM( +.text +glabel setup_briefing_text_entry_parent +/* 039AD0 7F004FA0 3C028007 */ lui $v0, %hi(ptr_last_briefing_setup_entry_type23) +/* 039AD4 7F004FA4 24425D84 */ addiu $v0, %lo(ptr_last_briefing_setup_entry_type23) # addiu $v0, $v0, 0x5d84 +/* 039AD8 7F004FA8 8C4E0000 */ lw $t6, ($v0) +/* 039ADC 7F004FAC AC8E000C */ sw $t6, 0xc($a0) +/* 039AE0 7F004FB0 03E00008 */ jr $ra +/* 039AE4 7F004FB4 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +s32 add_ptr_to_objective(void *arg0) { + // Node 0 + (0x80070000 + (arg0->unk4 * 4))->unk5D30 = arg0; + if (num_objective_ptrs < arg0->unk4) + { + // Node 1 + num_objective_ptrs = (s32) arg0->unk4; + return; + // (possible return value: arg0->unk4) + } + // (possible return value: arg0->unk4) +} + +#else +GLOBAL_ASM( +.text +glabel add_ptr_to_objective +/* 039AE8 7F004FB8 8C8E0004 */ lw $t6, 4($a0) +/* 039AEC 7F004FBC 3C018007 */ lui $at, %hi(objective_ptrs) +/* 039AF0 7F004FC0 3C038003 */ lui $v1, %hi(num_objective_ptrs) +/* 039AF4 7F004FC4 000E7880 */ sll $t7, $t6, 2 +/* 039AF8 7F004FC8 002F0821 */ addu $at, $at, $t7 +/* 039AFC 7F004FCC AC245D30 */ sw $a0, %lo(objective_ptrs)($at) +/* 039B00 7F004FD0 246322F0 */ addiu $v1, %lo(num_objective_ptrs) # addiu $v1, $v1, 0x22f0 +/* 039B04 7F004FD4 8C780000 */ lw $t8, ($v1) +/* 039B08 7F004FD8 8C820004 */ lw $v0, 4($a0) +/* 039B0C 7F004FDC 0302082A */ slt $at, $t8, $v0 +/* 039B10 7F004FE0 10200002 */ beqz $at, .L7F004FEC +/* 039B14 7F004FE4 00000000 */ nop +/* 039B18 7F004FE8 AC620000 */ sw $v0, ($v1) +.L7F004FEC: +/* 039B1C 7F004FEC 03E00008 */ jr $ra +/* 039B20 7F004FF0 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_enter_room(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_enter_room_subobject_entry_type20; + ptr_last_enter_room_subobject_entry_type20 = arg0; + return; + // (possible return value: &ptr_last_enter_room_subobject_entry_type20) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_enter_room +/* 039B24 7F004FF4 3C028007 */ lui $v0, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 039B28 7F004FF8 24425D88 */ addiu $v0, %lo(ptr_last_enter_room_subobject_entry_type20) # addiu $v0, $v0, 0x5d88 +/* 039B2C 7F004FFC 8C4E0000 */ lw $t6, ($v0) +/* 039B30 7F005000 AC8E000C */ sw $t6, 0xc($a0) +/* 039B34 7F005004 03E00008 */ jr $ra +/* 039B38 7F005008 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_deposited_in_room(void *arg0) { + // Node 0 + arg0->unk10 = (void *) ptr_last_deposit_in_room_subobject_entry_type21; + ptr_last_deposit_in_room_subobject_entry_type21 = arg0; + return; + // (possible return value: &ptr_last_deposit_in_room_subobject_entry_type21) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_deposited_in_room +/* 039B3C 7F00500C 3C028007 */ lui $v0, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 039B40 7F005010 24425D8C */ addiu $v0, %lo(ptr_last_deposit_in_room_subobject_entry_type21) # addiu $v0, $v0, 0x5d8c +/* 039B44 7F005014 8C4E0000 */ lw $t6, ($v0) +/* 039B48 7F005018 AC8E0010 */ sw $t6, 0x10($a0) +/* 039B4C 7F00501C 03E00008 */ jr $ra +/* 039B50 7F005020 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_photograph(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_photo_obj_in_room_subobject_entry_type1E; + ptr_last_photo_obj_in_room_subobject_entry_type1E = arg0; + return; + // (possible return value: &ptr_last_photo_obj_in_room_subobject_entry_type1E) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_photograph +/* 039B54 7F005024 3C028007 */ lui $v0, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 039B58 7F005028 24425D90 */ addiu $v0, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E) # addiu $v0, $v0, 0x5d90 +/* 039B5C 7F00502C 8C4E0000 */ lw $t6, ($v0) +/* 039B60 7F005030 AC8E000C */ sw $t6, 0xc($a0) +/* 039B64 7F005034 03E00008 */ jr $ra +/* 039B68 7F005038 AC440000 */ sw $a0, ($v0) +) +#endif + + diff --git a/src/game/objective_status.c b/src/game/objective_status.c new file mode 100644 index 0000000..7cd0604 --- /dev/null +++ b/src/game/objective_status.c @@ -0,0 +1,1081 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "bondtypes.h" + +// bss +//CODE.bss:80075D30 +struct objective_entry * objective_ptrs[10]; +u32 dword_CODE_bss_80075D58; +u32 dword_CODE_bss_80075D5C; +char dword_CODE_bss_80075D60[0x20]; +//CODE.bss:80075D80 +u32 *ptr_last_tag_entry_type16; +//CODE.bss:80075D84 +u32 *ptr_last_briefing_setup_entry_type23; +//CODE.bss:80075D88 +u32 *ptr_last_enter_room_subobject_entry_type20; +//CODE.bss:80075D8C +u32 *ptr_last_deposit_in_room_subobject_entry_type21; +//CODE.bss:80075D90 +u32 *ptr_last_photo_obj_in_room_subobject_entry_type1E; + +// data +s32 num_objective_ptrs[] = {0xFFFFFFFF, 0}; + + + +// rodata +const u32 D_80053610[] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; +//D:80053644 +const u32 aSAC[] = {0x25732080, 0x25632000}; +//D:8005364C +const char aSC[] = "%s %c: "; + + + +#ifdef NONMATCHING +void sub_GAME_7F057080(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057080 +/* 08BBB0 7F057080 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) +/* 08BBB4 7F057084 8C635D80 */ lw $v1, %lo(ptr_last_tag_entry_type16)($v1) +/* 08BBB8 7F057088 3082FFFF */ andi $v0, $a0, 0xffff +/* 08BBBC 7F05708C 5060000A */ beql $v1, $zero, .L7F0570B8 +/* 08BBC0 7F057090 00001025 */ move $v0, $zero +/* 08BBC4 7F057094 946E0004 */ lhu $t6, 4($v1) +.L7F057098: +/* 08BBC8 7F057098 544E0004 */ bnel $v0, $t6, .L7F0570AC +/* 08BBCC 7F05709C 8C630008 */ lw $v1, 8($v1) +/* 08BBD0 7F0570A0 03E00008 */ jr $ra +/* 08BBD4 7F0570A4 00601025 */ move $v0, $v1 + +/* 08BBD8 7F0570A8 8C630008 */ lw $v1, 8($v1) +.L7F0570AC: +/* 08BBDC 7F0570AC 5460FFFA */ bnezl $v1, .L7F057098 +/* 08BBE0 7F0570B0 946E0004 */ lhu $t6, 4($v1) +/* 08BBE4 7F0570B4 00001025 */ move $v0, $zero +.L7F0570B8: +/* 08BBE8 7F0570B8 03E00008 */ jr $ra +/* 08BBEC 7F0570BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_handle_to_tagged_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_handle_to_tagged_object +/* 08BBF0 7F0570C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08BBF4 7F0570C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 08BBF8 7F0570C8 0FC15C20 */ jal sub_GAME_7F057080 +/* 08BBFC 7F0570CC 00000000 */ nop +/* 08BC00 7F0570D0 10400002 */ beqz $v0, .L7F0570DC +/* 08BC04 7F0570D4 00001825 */ move $v1, $zero +/* 08BC08 7F0570D8 8C43000C */ lw $v1, 0xc($v0) +.L7F0570DC: +/* 08BC0C 7F0570DC 10600006 */ beqz $v1, .L7F0570F8 +/* 08BC10 7F0570E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 08BC14 7F0570E4 8C6E0064 */ lw $t6, 0x64($v1) +/* 08BC18 7F0570E8 31CF0010 */ andi $t7, $t6, 0x10 +/* 08BC1C 7F0570EC 55E00003 */ bnezl $t7, .L7F0570FC +/* 08BC20 7F0570F0 00601025 */ move $v0, $v1 +/* 08BC24 7F0570F4 00001825 */ move $v1, $zero +.L7F0570F8: +/* 08BC28 7F0570F8 00601025 */ move $v0, $v1 +.L7F0570FC: +/* 08BC2C 7F0570FC 03E00008 */ jr $ra +/* 08BC30 7F057100 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +#ifdef NONMATCHING +u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page) +{ + struct watchMenuObjectiveText * curentry; + u8 * textptr; + + textptr = 0; + for (curentry = ptr_last_briefing_setup_entry_type23; curentry != 0; curentry = curentry->nextentry) + { + if (page == curentry->menu) + { + textptr = get_textptr_for_textID(curentry->text); + } + textptr = 0; + } + if (textptr == 0) + { + if (page == 0) + { + textptr = get_textptr_for_textID(0xb029); //"E R R O R\n" + } + else + { + if (page == 1) + { + textptr = get_textptr_for_textID(0xb02a); //"no briefing for this mission\n" + } + else + { + textptr = get_textptr_for_textID(0xb02b); //"\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 get_textptr_for_textID +/* 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 get_textptr_for_textID +/* 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 get_textptr_for_textID +/* 08BCAC 7F05717C 3404B02A */ li $a0, 45098 +/* 08BCB0 7F057180 10000004 */ b .L7F057194 +/* 08BCB4 7F057184 00401825 */ move $v1, $v0 +.L7F057188: +/* 08BCB8 7F057188 0FC30776 */ jal get_textptr_for_textID +/* 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 + + + + + + +s32 add_objective(void) +{ + return num_objective_ptrs[0]+1; +} + + + +u8 * get_text_for_objective(int objective) +{ + u8 *textptr; + + if ((objective < 10) && (objective_ptrs[objective] != 0)) { + return get_textptr_for_textID(objective_ptrs[objective]->text); + } + return 0; +} + + + + + +#ifdef NONMATCHING +void get_difficulty_for_objective(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void get_status_of_objective(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053654*/ +glabel jpt_objectives_microcode_handler +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_19_destroy_object +.word objective_microcode_type_1A_complete_if_true +.word objective_microcode_type_1B_fail_if_true +.word objective_microcode_type_1C_collect_object +.word objective_microcode_type_1D_deposit_object +.word objective_microcode_type_1E_photograph_object +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_20_enter_room +.word objective_microcode_type_21_deposit_object_in_room +.word objective_microcode_type_22_use_key_analyzer_on_object +.word 0,0,0 + +.text +glabel get_status_of_objective +/* 08BD68 7F057238 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08BD6C 7F05723C AFB30024 */ sw $s3, 0x24($sp) +/* 08BD70 7F057240 2881000A */ slti $at, $a0, 0xa +/* 08BD74 7F057244 AFBF002C */ sw $ra, 0x2c($sp) +/* 08BD78 7F057248 AFB40028 */ sw $s4, 0x28($sp) +/* 08BD7C 7F05724C AFB20020 */ sw $s2, 0x20($sp) +/* 08BD80 7F057250 AFB1001C */ sw $s1, 0x1c($sp) +/* 08BD84 7F057254 AFB00018 */ sw $s0, 0x18($sp) +/* 08BD88 7F057258 1020008A */ beqz $at, .L7F057484 +/* 08BD8C 7F05725C 24130001 */ li $s3, 1 +/* 08BD90 7F057260 00041080 */ sll $v0, $a0, 2 +/* 08BD94 7F057264 3C048007 */ lui $a0, %hi(objective_ptrs) +/* 08BD98 7F057268 00822021 */ addu $a0, $a0, $v0 +/* 08BD9C 7F05726C 8C845D30 */ lw $a0, %lo(objective_ptrs)($a0) +/* 08BDA0 7F057270 54800006 */ bnezl $a0, .L7F05728C +/* 08BDA4 7F057274 90830003 */ lbu $v1, 3($a0) +/* 08BDA8 7F057278 3C138007 */ lui $s3, %hi(dword_CODE_bss_80075D58) +/* 08BDAC 7F05727C 02629821 */ addu $s3, $s3, $v0 +/* 08BDB0 7F057280 10000080 */ b .L7F057484 +/* 08BDB4 7F057284 8E735D58 */ lw $s3, %lo(dword_CODE_bss_80075D58)($s3) +/* 08BDB8 7F057288 90830003 */ lbu $v1, 3($a0) +.L7F05728C: +/* 08BDBC 7F05728C 24010018 */ li $at, 24 +/* 08BDC0 7F057290 00809025 */ move $s2, $a0 +/* 08BDC4 7F057294 1061007B */ beq $v1, $at, .L7F057484 +/* 08BDC8 7F057298 24140001 */ li $s4, 1 +/* 08BDCC 7F05729C 246EFFE9 */ addiu $t6, $v1, -0x17 +.L7F0572A0: +/* 08BDD0 7F0572A0 2DC1000C */ sltiu $at, $t6, 0xc +/* 08BDD4 7F0572A4 10200064 */ beqz $at, .L7F057438 +/* 08BDD8 7F0572A8 02808825 */ move $s1, $s4 +/* 08BDDC 7F0572AC 000E7080 */ sll $t6, $t6, 2 +/* 08BDE0 7F0572B0 3C018005 */ lui $at, %hi(jpt_objectives_microcode_handler) +/* 08BDE4 7F0572B4 002E0821 */ addu $at, $at, $t6 +/* 08BDE8 7F0572B8 8C2E3654 */ lw $t6, %lo(jpt_objectives_microcode_handler)($at) +/* 08BDEC 7F0572BC 01C00008 */ jr $t6 +/* 08BDF0 7F0572C0 00000000 */ nop +objective_microcode_type_19_destroy_object: +/* 08BDF4 7F0572C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BDF8 7F0572C8 8E440004 */ lw $a0, 4($s2) +/* 08BDFC 7F0572CC 1040005A */ beqz $v0, .L7F057438 +/* 08BE00 7F0572D0 00402025 */ move $a0, $v0 +/* 08BE04 7F0572D4 8C4F0010 */ lw $t7, 0x10($v0) +/* 08BE08 7F0572D8 11E00057 */ beqz $t7, .L7F057438 +/* 08BE0C 7F0572DC 00000000 */ nop +/* 08BE10 7F0572E0 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BE14 7F0572E4 00000000 */ nop +/* 08BE18 7F0572E8 10400053 */ beqz $v0, .L7F057438 +/* 08BE1C 7F0572EC 00000000 */ nop +/* 08BE20 7F0572F0 10000051 */ b .L7F057438 +/* 08BE24 7F0572F4 00008825 */ move $s1, $zero +objective_microcode_type_1A_complete_if_true: +/* 08BE28 7F0572F8 00002025 */ move $a0, $zero +/* 08BE2C 7F0572FC 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 08BE30 7F057300 8E450004 */ lw $a1, 4($s2) +/* 08BE34 7F057304 1440004C */ bnez $v0, .L7F057438 +/* 08BE38 7F057308 00000000 */ nop +/* 08BE3C 7F05730C 1000004A */ b .L7F057438 +/* 08BE40 7F057310 00008825 */ move $s1, $zero +objective_microcode_type_1B_fail_if_true: +/* 08BE44 7F057314 00002025 */ move $a0, $zero +/* 08BE48 7F057318 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 08BE4C 7F05731C 8E450004 */ lw $a1, 4($s2) +/* 08BE50 7F057320 10400045 */ beqz $v0, .L7F057438 +/* 08BE54 7F057324 00000000 */ nop +/* 08BE58 7F057328 10000043 */ b .L7F057438 +/* 08BE5C 7F05732C 24110002 */ li $s1, 2 +objective_microcode_type_1C_collect_object: +/* 08BE60 7F057330 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BE64 7F057334 8E440004 */ lw $a0, 4($s2) +/* 08BE68 7F057338 10400008 */ beqz $v0, .L7F05735C +/* 08BE6C 7F05733C 00408025 */ move $s0, $v0 +/* 08BE70 7F057340 8C580010 */ lw $t8, 0x10($v0) +/* 08BE74 7F057344 13000005 */ beqz $t8, .L7F05735C +/* 08BE78 7F057348 00000000 */ nop +/* 08BE7C 7F05734C 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BE80 7F057350 00402025 */ move $a0, $v0 +/* 08BE84 7F057354 14400003 */ bnez $v0, .L7F057364 +/* 08BE88 7F057358 00000000 */ nop +.L7F05735C: +/* 08BE8C 7F05735C 10000036 */ b .L7F057438 +/* 08BE90 7F057360 24110002 */ li $s1, 2 +.L7F057364: +/* 08BE94 7F057364 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 08BE98 7F057368 8E040010 */ lw $a0, 0x10($s0) +/* 08BE9C 7F05736C 14400032 */ bnez $v0, .L7F057438 +/* 08BEA0 7F057370 00000000 */ nop +/* 08BEA4 7F057374 10000030 */ b .L7F057438 +/* 08BEA8 7F057378 00008825 */ move $s1, $zero +objective_microcode_type_1D_deposit_object: +/* 08BEAC 7F05737C 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BEB0 7F057380 8E440004 */ lw $a0, 4($s2) +/* 08BEB4 7F057384 1040002C */ beqz $v0, .L7F057438 +/* 08BEB8 7F057388 00000000 */ nop +/* 08BEBC 7F05738C 8C590010 */ lw $t9, 0x10($v0) +/* 08BEC0 7F057390 13200029 */ beqz $t9, .L7F057438 +/* 08BEC4 7F057394 00000000 */ nop +/* 08BEC8 7F057398 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 08BECC 7F05739C 03202025 */ move $a0, $t9 +/* 08BED0 7F0573A0 10400025 */ beqz $v0, .L7F057438 +/* 08BED4 7F0573A4 00000000 */ nop +/* 08BED8 7F0573A8 10000023 */ b .L7F057438 +/* 08BEDC 7F0573AC 00008825 */ move $s1, $zero +objective_microcode_type_1E_photograph_object: +/* 08BEE0 7F0573B0 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BEE4 7F0573B4 8E440004 */ lw $a0, 4($s2) +/* 08BEE8 7F0573B8 8E480008 */ lw $t0, 8($s2) +/* 08BEEC 7F0573BC 00402025 */ move $a0, $v0 +/* 08BEF0 7F0573C0 1500001D */ bnez $t0, .L7F057438 +/* 08BEF4 7F0573C4 00000000 */ nop +/* 08BEF8 7F0573C8 10400008 */ beqz $v0, .L7F0573EC +/* 08BEFC 7F0573CC 00000000 */ nop +/* 08BF00 7F0573D0 8C490010 */ lw $t1, 0x10($v0) +/* 08BF04 7F0573D4 11200005 */ beqz $t1, .L7F0573EC +/* 08BF08 7F0573D8 00000000 */ nop +/* 08BF0C 7F0573DC 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BF10 7F0573E0 00000000 */ nop +/* 08BF14 7F0573E4 14400003 */ bnez $v0, .L7F0573F4 +/* 08BF18 7F0573E8 00000000 */ nop +.L7F0573EC: +/* 08BF1C 7F0573EC 10000012 */ b .L7F057438 +/* 08BF20 7F0573F0 24110002 */ li $s1, 2 +.L7F0573F4: +/* 08BF24 7F0573F4 10000010 */ b .L7F057438 +/* 08BF28 7F0573F8 00008825 */ move $s1, $zero +objective_microcode_type_20_enter_room: +/* 08BF2C 7F0573FC 8E4A0008 */ lw $t2, 8($s2) +/* 08BF30 7F057400 1540000D */ bnez $t2, .L7F057438 +/* 08BF34 7F057404 00000000 */ nop +/* 08BF38 7F057408 1000000B */ b .L7F057438 +/* 08BF3C 7F05740C 00008825 */ move $s1, $zero +objective_microcode_type_21_deposit_object_in_room: +/* 08BF40 7F057410 8E4B000C */ lw $t3, 0xc($s2) +/* 08BF44 7F057414 15600008 */ bnez $t3, .L7F057438 +/* 08BF48 7F057418 00000000 */ nop +/* 08BF4C 7F05741C 10000006 */ b .L7F057438 +/* 08BF50 7F057420 00008825 */ move $s1, $zero +objective_microcode_type_22_use_key_analyzer_on_object: +/* 08BF54 7F057424 0FC19BBE */ jal get_keyanalyzer_flag +/* 08BF58 7F057428 00000000 */ nop +/* 08BF5C 7F05742C 14400002 */ bnez $v0, .L7F057438 +/* 08BF60 7F057430 00000000 */ nop +/* 08BF64 7F057434 00008825 */ move $s1, $zero +objective_microcode_type_17_18_1F_default: +.L7F057438: +/* 08BF68 7F057438 16740005 */ bne $s3, $s4, .L7F057450 +/* 08BF6C 7F05743C 00000000 */ nop +/* 08BF70 7F057440 12340008 */ beq $s1, $s4, .L7F057464 +/* 08BF74 7F057444 00000000 */ nop +/* 08BF78 7F057448 10000006 */ b .L7F057464 +/* 08BF7C 7F05744C 02209825 */ move $s3, $s1 +.L7F057450: +/* 08BF80 7F057450 16600004 */ bnez $s3, .L7F057464 +/* 08BF84 7F057454 24010002 */ li $at, 2 +/* 08BF88 7F057458 16210002 */ bne $s1, $at, .L7F057464 +/* 08BF8C 7F05745C 00000000 */ nop +/* 08BF90 7F057460 02209825 */ move $s3, $s1 +.L7F057464: +/* 08BF94 7F057464 0FC15A3D */ jal get_size_of_setup_object_type +/* 08BF98 7F057468 02402025 */ move $a0, $s2 +/* 08BF9C 7F05746C 00026080 */ sll $t4, $v0, 2 +/* 08BFA0 7F057470 01929021 */ addu $s2, $t4, $s2 +/* 08BFA4 7F057474 92430003 */ lbu $v1, 3($s2) +/* 08BFA8 7F057478 24010018 */ li $at, 24 +/* 08BFAC 7F05747C 5461FF88 */ bnel $v1, $at, .L7F0572A0 +/* 08BFB0 7F057480 246EFFE9 */ addiu $t6, $v1, -0x17 +.L7F057484: +/* 08BFB4 7F057484 0FC2440C */ jal get_debug_all_obj_complete_flag +/* 08BFB8 7F057488 00000000 */ nop +/* 08BFBC 7F05748C 10400002 */ beqz $v0, .L7F057498 +/* 08BFC0 7F057490 8FB00018 */ lw $s0, 0x18($sp) +/* 08BFC4 7F057494 24130001 */ li $s3, 1 +.L7F057498: +/* 08BFC8 7F057498 8FBF002C */ lw $ra, 0x2c($sp) +/* 08BFCC 7F05749C 02601025 */ move $v0, $s3 +/* 08BFD0 7F0574A0 8FB30024 */ lw $s3, 0x24($sp) +/* 08BFD4 7F0574A4 8FB1001C */ lw $s1, 0x1c($sp) +/* 08BFD8 7F0574A8 8FB20020 */ lw $s2, 0x20($sp) +/* 08BFDC 7F0574AC 8FB40028 */ lw $s4, 0x28($sp) +/* 08BFE0 7F0574B0 03E00008 */ jr $ra +/* 08BFE4 7F0574B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +u32 check_objectives_complete(void) +{ + DIFFICULTY objdiff; + DIFFICULTY curdiff; + int objective; + + for (objective = 0; objective < add_objective(); objective++) + { + objdiff = get_difficulty_for_objective(objective); + curdiff = get_current_difficulty(); + if ((objdiff <= curdiff) && (get_status_of_objective(objective) != 1)) { + return 0; + } + } + return 1; +} + + +#ifdef VERSION_JP +void FUN_7f057a40(void) +{ + num_objective_ptrs[1] = 1; + return; +} +#endif + +#ifdef NONMATCHING +void display_objective_status_text_on_status_change(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.rdata +/*glabel D_80053610*/ +/*.word 0,0,0,0,0,0,0,0,0,0*/ +/*glabel D_80053640*/ +/*.word 0*/ +.text +glabel display_objective_status_text_on_status_change +/* 08C070 7F057540 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 08C074 7F057544 AFB60030 */ sw $s6, 0x30($sp) +/* 08C078 7F057548 AFB30024 */ sw $s3, 0x24($sp) +/* 08C07C 7F05754C 3C0E8005 */ lui $t6, %hi(D_80053610) +/* 08C080 7F057550 27B30054 */ addiu $s3, $sp, 0x54 +/* 08C084 7F057554 3C168003 */ lui $s6, %hi(num_objective_ptrs) +/* 08C088 7F057558 AFB40028 */ sw $s4, 0x28($sp) +/* 08C08C 7F05755C 25CE3610 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3610 +/* 08C090 7F057560 26D622F0 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x22f0 +/* 08C094 7F057564 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C098 7F057568 AFBE0038 */ sw $fp, 0x38($sp) +/* 08C09C 7F05756C AFB70034 */ sw $s7, 0x34($sp) +/* 08C0A0 7F057570 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C0A4 7F057574 AFB20020 */ sw $s2, 0x20($sp) +/* 08C0A8 7F057578 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C0AC 7F05757C AFB00018 */ sw $s0, 0x18($sp) +/* 08C0B0 7F057580 0000A025 */ move $s4, $zero +/* 08C0B4 7F057584 25D90030 */ addiu $t9, $t6, 0x30 +/* 08C0B8 7F057588 02604025 */ move $t0, $s3 +.L7F05758C: +/* 08C0BC 7F05758C 8DC10000 */ lw $at, ($t6) +/* 08C0C0 7F057590 25CE000C */ addiu $t6, $t6, 0xc +/* 08C0C4 7F057594 2508000C */ addiu $t0, $t0, 0xc +/* 08C0C8 7F057598 AD01FFF4 */ sw $at, -0xc($t0) +/* 08C0CC 7F05759C 8DC1FFF8 */ lw $at, -8($t6) +/* 08C0D0 7F0575A0 AD01FFF8 */ sw $at, -8($t0) +/* 08C0D4 7F0575A4 8DC1FFFC */ lw $at, -4($t6) +/* 08C0D8 7F0575A8 15D9FFF8 */ bne $t6, $t9, .L7F05758C +/* 08C0DC 7F0575AC AD01FFFC */ sw $at, -4($t0) +/* 08C0E0 7F0575B0 95C10000 */ lhu $at, ($t6) +/* 08C0E4 7F0575B4 3C158007 */ lui $s5, %hi(dword_CODE_bss_80075D58) +/* 08C0E8 7F0575B8 3C1E8005 */ lui $fp, %hi(aSAC) +/* 08C0EC 7F0575BC A5010000 */ sh $at, ($t0) +/* 08C0F0 7F0575C0 8EC90000 */ lw $t1, ($s6) +/* 08C0F4 7F0575C4 27DE3644 */ addiu $fp, %lo(aSAC) # addiu $fp, $fp, 0x3644 +/* 08C0F8 7F0575C8 26B55D58 */ addiu $s5, %lo(dword_CODE_bss_80075D58) # addiu $s5, $s5, 0x5d58 +/* 08C0FC 7F0575CC 05200051 */ bltz $t1, .L7F057714 +/* 08C100 7F0575D0 00009025 */ move $s2, $zero +/* 08C104 7F0575D4 3C178005 */ lui $s7, %hi(j_text_trigger) +/* 08C108 7F0575D8 26F784D0 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b30 +.L7F0575DC: +/* 08C10C 7F0575DC 0FC15C8E */ jal get_status_of_objective +/* 08C110 7F0575E0 02402025 */ move $a0, $s2 +/* 08C114 7F0575E4 8EAA0000 */ lw $t2, ($s5) +/* 08C118 7F0575E8 00408825 */ move $s1, $v0 +/* 08C11C 7F0575EC 02402025 */ move $a0, $s2 +/* 08C120 7F0575F0 104A003A */ beq $v0, $t2, .L7F0576DC +/* 08C124 7F0575F4 00000000 */ nop +/* 08C128 7F0575F8 0FC15C81 */ jal get_difficulty_for_objective +/* 08C12C 7F0575FC AEA20000 */ sw $v0, ($s5) +/* 08C130 7F057600 0FC2FF04 */ jal get_current_difficulty +/* 08C134 7F057604 00408025 */ move $s0, $v0 +/* 08C138 7F057608 0050082A */ slt $at, $v0, $s0 +/* 08C13C 7F05760C 14200033 */ bnez $at, .L7F0576DC +/* 08C140 7F057610 00000000 */ nop +/* 08C144 7F057614 8EEB0000 */ lw $t3, ($s7) +/* 08C148 7F057618 2690001A */ addiu $s0, $s4, 0x1a +/* 08C14C 7F05761C 3404B02C */ li $a0, 45100 +/* 08C150 7F057620 1160000A */ beqz $t3, .L7F05764C +/* 08C154 7F057624 00000000 */ nop +/* 08C158 7F057628 0FC30776 */ jal get_textptr_for_textID +/* 08C15C 7F05762C 3404B02C */ li $a0, 45100 +/* 08C160 7F057630 02602025 */ move $a0, $s3 +/* 08C164 7F057634 03C02825 */ move $a1, $fp +/* 08C168 7F057638 00403025 */ move $a2, $v0 +/* 08C16C 7F05763C 0C002B25 */ jal sprintf +/* 08C170 7F057640 02003825 */ move $a3, $s0 +/* 08C174 7F057644 1000000A */ b .L7F057670 +/* 08C178 7F057648 24010001 */ li $at, 1 +.L7F05764C: +/* 08C17C 7F05764C 0FC30776 */ jal get_textptr_for_textID +/* 08C180 7F057650 26900061 */ addiu $s0, $s4, 0x61 +/* 08C184 7F057654 3C058005 */ lui $a1, %hi(aSC) +/* 08C188 7F057658 24A5364C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x364c +/* 08C18C 7F05765C 02602025 */ move $a0, $s3 +/* 08C190 7F057660 00403025 */ move $a2, $v0 +/* 08C194 7F057664 0C002B25 */ jal sprintf +/* 08C198 7F057668 02003825 */ move $a3, $s0 +/* 08C19C 7F05766C 24010001 */ li $at, 1 +.L7F057670: +/* 08C1A0 7F057670 16210008 */ bne $s1, $at, .L7F057694 +/* 08C1A4 7F057674 00000000 */ nop +/* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID +/* 08C1AC 7F05767C 3404B02D */ li $a0, 45101 +/* 08C1B0 7F057680 02602025 */ move $a0, $s3 +/* 08C1B4 7F057684 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1B8 7F057688 00402825 */ move $a1, $v0 +/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4 +/* 08C1C0 7F057690 00000000 */ nop +.L7F057694: +/* 08C1C4 7F057694 16200008 */ bnez $s1, .L7F0576B8 +/* 08C1C8 7F057698 24010002 */ li $at, 2 +/* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID +/* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102 +/* 08C1D4 7F0576A4 02602025 */ move $a0, $s3 +/* 08C1D8 7F0576A8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0 +/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4 +/* 08C1E4 7F0576B4 00000000 */ nop +.L7F0576B8: +/* 08C1E8 7F0576B8 16210006 */ bne $s1, $at, .L7F0576D4 +/* 08C1EC 7F0576BC 00000000 */ nop +/* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID +/* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103 +/* 08C1F8 7F0576C8 02602025 */ move $a0, $s3 +/* 08C1FC 7F0576CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C200 7F0576D0 00402825 */ move $a1, $v0 +.L7F0576D4: +/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08C208 7F0576D8 02602025 */ move $a0, $s3 +.L7F0576DC: +/* 08C20C 7F0576DC 0FC15C81 */ jal get_difficulty_for_objective +/* 08C210 7F0576E0 02402025 */ move $a0, $s2 +/* 08C214 7F0576E4 0FC2FF04 */ jal get_current_difficulty +/* 08C218 7F0576E8 00408025 */ move $s0, $v0 +/* 08C21C 7F0576EC 0050082A */ slt $at, $v0, $s0 +/* 08C220 7F0576F0 54200003 */ bnezl $at, .L7F057700 +/* 08C224 7F0576F4 8ECC0000 */ lw $t4, ($s6) +/* 08C228 7F0576F8 26940001 */ addiu $s4, $s4, 1 +/* 08C22C 7F0576FC 8ECC0000 */ lw $t4, ($s6) +.L7F057700: +/* 08C230 7F057700 26520001 */ addiu $s2, $s2, 1 +/* 08C234 7F057704 26B50004 */ addiu $s5, $s5, 4 +/* 08C238 7F057708 0192082A */ slt $at, $t4, $s2 +/* 08C23C 7F05770C 1020FFB3 */ beqz $at, .L7F0575DC +/* 08C240 7F057710 00000000 */ nop +.L7F057714: +/* 08C244 7F057714 8FBF003C */ lw $ra, 0x3c($sp) +/* 08C248 7F057718 8FB00018 */ lw $s0, 0x18($sp) +/* 08C24C 7F05771C 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C250 7F057720 8FB20020 */ lw $s2, 0x20($sp) +/* 08C254 7F057724 8FB30024 */ lw $s3, 0x24($sp) +/* 08C258 7F057728 8FB40028 */ lw $s4, 0x28($sp) +/* 08C25C 7F05772C 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C260 7F057730 8FB60030 */ lw $s6, 0x30($sp) +/* 08C264 7F057734 8FB70034 */ lw $s7, 0x34($sp) +/* 08C268 7F057738 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C26C 7F05773C 03E00008 */ jr $ra +/* 08C270 7F057740 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel display_objective_status_text_on_status_change +/* 08C5C0 7F057A50 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 08C5C4 7F057A54 AFB30024 */ sw $s3, 0x24($sp) +/* 08C5C8 7F057A58 3C0E8005 */ lui $t6, %hi(D_80053610) # $t6, 0x8005 +/* 08C5CC 7F057A5C 27B30054 */ addiu $s3, $sp, 0x54 +/* 08C5D0 7F057A60 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C5D4 7F057A64 25CE3640 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3640 +/* 08C5D8 7F057A68 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C5DC 7F057A6C AFBE0038 */ sw $fp, 0x38($sp) +/* 08C5E0 7F057A70 AFB70034 */ sw $s7, 0x34($sp) +/* 08C5E4 7F057A74 AFB60030 */ sw $s6, 0x30($sp) +/* 08C5E8 7F057A78 AFB40028 */ sw $s4, 0x28($sp) +/* 08C5EC 7F057A7C AFB20020 */ sw $s2, 0x20($sp) +/* 08C5F0 7F057A80 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C5F4 7F057A84 AFB00018 */ sw $s0, 0x18($sp) +/* 08C5F8 7F057A88 0000A825 */ move $s5, $zero +/* 08C5FC 7F057A8C 25D90030 */ addiu $t9, $t6, 0x30 +/* 08C600 7F057A90 02604025 */ move $t0, $s3 +.L7F057A94: +/* 08C604 7F057A94 8DC10000 */ lw $at, ($t6) +/* 08C608 7F057A98 25CE000C */ addiu $t6, $t6, 0xc +/* 08C60C 7F057A9C 2508000C */ addiu $t0, $t0, 0xc +/* 08C610 7F057AA0 AD01FFF4 */ sw $at, -0xc($t0) +/* 08C614 7F057AA4 8DC1FFF8 */ lw $at, -8($t6) +/* 08C618 7F057AA8 AD01FFF8 */ sw $at, -8($t0) +/* 08C61C 7F057AAC 8DC1FFFC */ lw $at, -4($t6) +/* 08C620 7F057AB0 15D9FFF8 */ bne $t6, $t9, .L7F057A94 +/* 08C624 7F057AB4 AD01FFFC */ sw $at, -4($t0) +/* 08C628 7F057AB8 95C10000 */ lhu $at, ($t6) +/* 08C62C 7F057ABC 3C098003 */ lui $t1, %hi(num_objective_ptrs+4) # $t1, 0x8003 +/* 08C630 7F057AC0 3C168003 */ lui $s6, %hi(num_objective_ptrs) # $s6, 0x8003 +/* 08C634 7F057AC4 A5010000 */ sh $at, ($t0) +/* 08C638 7F057AC8 8D292334 */ lw $t1, %lo(num_objective_ptrs+4)($t1) +/* 08C63C 7F057ACC 26D62330 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x2330 +/* 08C640 7F057AD0 55200058 */ bnezl $t1, .L7F057C34 +/* 08C644 7F057AD4 8FBF003C */ lw $ra, 0x3c($sp) +/* 08C648 7F057AD8 8ECA0000 */ lw $t2, ($s6) +/* 08C64C 7F057ADC 3C148007 */ lui $s4, %hi(dword_CODE_bss_80075D58) # $s4, 0x8007 +/* 08C650 7F057AE0 26945D98 */ addiu $s4, %lo(dword_CODE_bss_80075D58) # addiu $s4, $s4, 0x5d98 +/* 08C654 7F057AE4 05400052 */ bltz $t2, .L7F057C30 +/* 08C658 7F057AE8 00009025 */ move $s2, $zero +/* 08C65C 7F057AEC 3C178005 */ lui $s7, %hi(j_text_trigger) # $s7, 0x8005 +/* 08C660 7F057AF0 26F78500 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b00 +/* 08C664 7F057AF4 241E0001 */ li $fp, 1 +.L7F057AF8: +/* 08C668 7F057AF8 0FC15DCE */ jal get_status_of_objective +/* 08C66C 7F057AFC 02402025 */ move $a0, $s2 +/* 08C670 7F057B00 8E8B0000 */ lw $t3, ($s4) +/* 08C674 7F057B04 00408825 */ move $s1, $v0 +/* 08C678 7F057B08 02402025 */ move $a0, $s2 +/* 08C67C 7F057B0C 104B003A */ beq $v0, $t3, .L7F057BF8 +/* 08C680 7F057B10 00000000 */ nop +/* 08C684 7F057B14 0FC15DC1 */ jal get_difficulty_for_objective +/* 08C688 7F057B18 AE820000 */ sw $v0, ($s4) +/* 08C68C 7F057B1C 0FC3021E */ jal get_current_difficulty +/* 08C690 7F057B20 00408025 */ move $s0, $v0 +/* 08C694 7F057B24 0050082A */ slt $at, $v0, $s0 +/* 08C698 7F057B28 14200033 */ bnez $at, .L7F057BF8 +/* 08C69C 7F057B2C 00000000 */ nop +/* 08C6A0 7F057B30 8EEC0000 */ lw $t4, ($s7) +/* 08C6A4 7F057B34 26B0001A */ addiu $s0, $s5, 0x1a +/* 08C6A8 7F057B38 3404B02C */ li $a0, 45100 +/* 08C6AC 7F057B3C 1180000B */ beqz $t4, .L7F057B6C +/* 08C6B0 7F057B40 00000000 */ nop +/* 08C6B4 7F057B44 0FC30AA2 */ jal get_textptr_for_textID +/* 08C6B8 7F057B48 3404B02C */ li $a0, 45100 +/* 08C6BC 7F057B4C 3C058005 */ lui $a1, %hi(aSAC) # $a1, 0x8005 +/* 08C6C0 7F057B50 24A53674 */ addiu $a1, %lo(aSAC) # addiu $a1, $a1, 0x3674 +/* 08C6C4 7F057B54 02602025 */ move $a0, $s3 +/* 08C6C8 7F057B58 00403025 */ move $a2, $v0 +/* 08C6CC 7F057B5C 0C002B29 */ jal sprintf +/* 08C6D0 7F057B60 02003825 */ move $a3, $s0 +/* 08C6D4 7F057B64 10000009 */ b .L7F057B8C +/* 08C6D8 7F057B68 00000000 */ nop +.L7F057B6C: +/* 08C6DC 7F057B6C 0FC30AA2 */ jal get_textptr_for_textID +/* 08C6E0 7F057B70 26B00061 */ addiu $s0, $s5, 0x61 +/* 08C6E4 7F057B74 3C058005 */ lui $a1, %hi(aSC) # $a1, 0x8005 +/* 08C6E8 7F057B78 24A5367C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x367c +/* 08C6EC 7F057B7C 02602025 */ move $a0, $s3 +/* 08C6F0 7F057B80 00403025 */ move $a2, $v0 +/* 08C6F4 7F057B84 0C002B29 */ jal sprintf +/* 08C6F8 7F057B88 02003825 */ move $a3, $s0 +.L7F057B8C: +/* 08C6FC 7F057B8C 163E0008 */ bne $s1, $fp, .L7F057BB0 +/* 08C700 7F057B90 00000000 */ nop +/* 08C704 7F057B94 0FC30AA2 */ jal get_textptr_for_textID +/* 08C708 7F057B98 3404B02D */ li $a0, 45101 +/* 08C70C 7F057B9C 02602025 */ move $a0, $s3 +/* 08C710 7F057BA0 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C714 7F057BA4 00402825 */ move $a1, $v0 +/* 08C718 7F057BA8 10000011 */ b .L7F057BF0 +/* 08C71C 7F057BAC 00000000 */ nop +.L7F057BB0: +/* 08C720 7F057BB0 16200008 */ bnez $s1, .L7F057BD4 +/* 08C724 7F057BB4 24010002 */ li $at, 2 +/* 08C728 7F057BB8 0FC30AA2 */ jal get_textptr_for_textID +/* 08C72C 7F057BBC 3404B02E */ li $a0, 45102 +/* 08C730 7F057BC0 02602025 */ move $a0, $s3 +/* 08C734 7F057BC4 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C738 7F057BC8 00402825 */ move $a1, $v0 +/* 08C73C 7F057BCC 10000008 */ b .L7F057BF0 +/* 08C740 7F057BD0 00000000 */ nop +.L7F057BD4: +/* 08C744 7F057BD4 16210006 */ bne $s1, $at, .L7F057BF0 +/* 08C748 7F057BD8 00000000 */ nop +/* 08C74C 7F057BDC 0FC30AA2 */ jal get_textptr_for_textID +/* 08C750 7F057BE0 3404B02F */ li $a0, 45103 +/* 08C754 7F057BE4 02602025 */ move $a0, $s3 +/* 08C758 7F057BE8 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C75C 7F057BEC 00402825 */ move $a1, $v0 +.L7F057BF0: +/* 08C760 7F057BF0 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 08C764 7F057BF4 02602025 */ move $a0, $s3 +.L7F057BF8: +/* 08C768 7F057BF8 0FC15DC1 */ jal get_difficulty_for_objective +/* 08C76C 7F057BFC 02402025 */ move $a0, $s2 +/* 08C770 7F057C00 0FC3021E */ jal get_current_difficulty +/* 08C774 7F057C04 00408025 */ move $s0, $v0 +/* 08C778 7F057C08 0050082A */ slt $at, $v0, $s0 +/* 08C77C 7F057C0C 54200003 */ bnezl $at, .L7F057C1C +/* 08C780 7F057C10 8ECD0000 */ lw $t5, ($s6) +/* 08C784 7F057C14 26B50001 */ addiu $s5, $s5, 1 +/* 08C788 7F057C18 8ECD0000 */ lw $t5, ($s6) +.L7F057C1C: +/* 08C78C 7F057C1C 26520001 */ addiu $s2, $s2, 1 +/* 08C790 7F057C20 26940004 */ addiu $s4, $s4, 4 +/* 08C794 7F057C24 01B2082A */ slt $at, $t5, $s2 +/* 08C798 7F057C28 1020FFB3 */ beqz $at, .L7F057AF8 +/* 08C79C 7F057C2C 00000000 */ nop +.L7F057C30: +/* 08C7A0 7F057C30 8FBF003C */ lw $ra, 0x3c($sp) +.L7F057C34: +/* 08C7A4 7F057C34 8FB00018 */ lw $s0, 0x18($sp) +/* 08C7A8 7F057C38 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C7AC 7F057C3C 8FB20020 */ lw $s2, 0x20($sp) +/* 08C7B0 7F057C40 8FB30024 */ lw $s3, 0x24($sp) +/* 08C7B4 7F057C44 8FB40028 */ lw $s4, 0x28($sp) +/* 08C7B8 7F057C48 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C7BC 7F057C4C 8FB60030 */ lw $s6, 0x30($sp) +/* 08C7C0 7F057C50 8FB70034 */ lw $s7, 0x34($sp) +/* 08C7C4 7F057C54 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C7C8 7F057C58 03E00008 */ jr $ra +/* 08C7CC 7F057C5C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F057744(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057744 +/* 08C274 7F057744 3C028007 */ lui $v0, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 08C278 7F057748 8C425D88 */ lw $v0, %lo(ptr_last_enter_room_subobject_entry_type20)($v0) +/* 08C27C 7F05774C 3C0AFFF5 */ lui $t2, (0xFFF59FC0 >> 16) # lui $t2, 0xfff5 +/* 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(ptr_setup_path_tbl) +/* 08C290 7F057760 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 08C294 7F057764 24090044 */ li $t1, 68 +/* 08C298 7F057768 24080001 */ li $t0, 1 +/* 08C29C 7F05776C 2406002C */ li $a2, 44 +/* 08C2A0 7F057770 8C4E0008 */ lw $t6, 8($v0) +.L7F057774: +/* 08C2A4 7F057774 55C00018 */ bnezl $t6, .L7F0577D8 +/* 08C2A8 7F057778 8C42000C */ lw $v0, 0xc($v0) +/* 08C2AC 7F05777C 8C430004 */ lw $v1, 4($v0) +/* 08C2B0 7F057780 2C612710 */ sltiu $at, $v1, 0x2710 +/* 08C2B4 7F057784 10200007 */ beqz $at, .L7F0577A4 +/* 08C2B8 7F057788 00000000 */ nop +/* 08C2BC 7F05778C 00660019 */ multu $v1, $a2 +/* 08C2C0 7F057790 8CF80018 */ lw $t8, 0x18($a3) +/* 08C2C4 7F057794 00007812 */ mflo $t7 +/* 08C2C8 7F057798 01F82021 */ addu $a0, $t7, $t8 +/* 08C2CC 7F05779C 10000007 */ b .L7F0577BC +/* 08C2D0 7F0577A0 8C830028 */ lw $v1, 0x28($a0) +.L7F0577A4: +/* 08C2D4 7F0577A4 00690019 */ multu $v1, $t1 +/* 08C2D8 7F0577A8 8CEB001C */ lw $t3, 0x1c($a3) +/* 08C2DC 7F0577AC 0000C812 */ mflo $t9 +/* 08C2E0 7F0577B0 032B6021 */ addu $t4, $t9, $t3 +/* 08C2E4 7F0577B4 018A2021 */ addu $a0, $t4, $t2 +/* 08C2E8 7F0577B8 8C830028 */ lw $v1, 0x28($a0) +.L7F0577BC: +/* 08C2EC 7F0577BC 50600006 */ beql $v1, $zero, .L7F0577D8 +/* 08C2F0 7F0577C0 8C42000C */ lw $v0, 0xc($v0) +/* 08C2F4 7F0577C4 906D0003 */ lbu $t5, 3($v1) +/* 08C2F8 7F0577C8 54AD0003 */ bnel $a1, $t5, .L7F0577D8 +/* 08C2FC 7F0577CC 8C42000C */ lw $v0, 0xc($v0) +/* 08C300 7F0577D0 AC480008 */ sw $t0, 8($v0) +/* 08C304 7F0577D4 8C42000C */ lw $v0, 0xc($v0) +.L7F0577D8: +/* 08C308 7F0577D8 5440FFE6 */ bnezl $v0, .L7F057774 +/* 08C30C 7F0577DC 8C4E0008 */ lw $t6, 8($v0) +.L7F0577E0: +/* 08C310 7F0577E0 03E00008 */ jr $ra +/* 08C314 7F0577E4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0577E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0577E8 +/* 08C318 7F0577E8 3C028007 */ lui $v0, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 08C31C 7F0577EC 8C425D8C */ lw $v0, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($v0) +/* 08C320 7F0577F0 3C0BFFF5 */ lui $t3, (0xFFF59FC0 >> 16) # lui $t3, 0xfff5 +/* 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(ptr_setup_path_tbl) +/* 08C334 7F057804 25085D00 */ addiu $t0, %lo(ptr_setup_path_tbl) # addiu $t0, $t0, 0x5d00 +/* 08C338 7F057808 240A0044 */ li $t2, 68 +/* 08C33C 7F05780C 24090001 */ li $t1, 1 +/* 08C340 7F057810 2407002C */ li $a3, 44 +/* 08C344 7F057814 8C4E000C */ lw $t6, 0xc($v0) +.L7F057818: +/* 08C348 7F057818 55C0001B */ bnezl $t6, .L7F057888 +/* 08C34C 7F05781C 8C420010 */ lw $v0, 0x10($v0) +/* 08C350 7F057820 8C4F0004 */ lw $t7, 4($v0) +/* 08C354 7F057824 548F0018 */ bnel $a0, $t7, .L7F057888 +/* 08C358 7F057828 8C420010 */ lw $v0, 0x10($v0) +/* 08C35C 7F05782C 8C430008 */ lw $v1, 8($v0) +/* 08C360 7F057830 2C612710 */ sltiu $at, $v1, 0x2710 +/* 08C364 7F057834 10200007 */ beqz $at, .L7F057854 +/* 08C368 7F057838 00000000 */ nop +/* 08C36C 7F05783C 00670019 */ multu $v1, $a3 +/* 08C370 7F057840 8D190018 */ lw $t9, 0x18($t0) +/* 08C374 7F057844 0000C012 */ mflo $t8 +/* 08C378 7F057848 03192821 */ addu $a1, $t8, $t9 +/* 08C37C 7F05784C 10000007 */ b .L7F05786C +/* 08C380 7F057850 8CA30028 */ lw $v1, 0x28($a1) +.L7F057854: +/* 08C384 7F057854 006A0019 */ multu $v1, $t2 +/* 08C388 7F057858 8D0D001C */ lw $t5, 0x1c($t0) +/* 08C38C 7F05785C 00006012 */ mflo $t4 +/* 08C390 7F057860 018D7021 */ addu $t6, $t4, $t5 +/* 08C394 7F057864 01CB2821 */ addu $a1, $t6, $t3 +/* 08C398 7F057868 8CA30028 */ lw $v1, 0x28($a1) +.L7F05786C: +/* 08C39C 7F05786C 50600006 */ beql $v1, $zero, .L7F057888 +/* 08C3A0 7F057870 8C420010 */ lw $v0, 0x10($v0) +/* 08C3A4 7F057874 906F0003 */ lbu $t7, 3($v1) +/* 08C3A8 7F057878 54CF0003 */ bnel $a2, $t7, .L7F057888 +/* 08C3AC 7F05787C 8C420010 */ lw $v0, 0x10($v0) +/* 08C3B0 7F057880 AC49000C */ sw $t1, 0xc($v0) +/* 08C3B4 7F057884 8C420010 */ lw $v0, 0x10($v0) +.L7F057888: +/* 08C3B8 7F057888 5440FFE3 */ bnezl $v0, .L7F057818 +/* 08C3BC 7F05788C 8C4E000C */ lw $t6, 0xc($v0) +.L7F057890: +/* 08C3C0 7F057890 03E00008 */ jr $ra +/* 08C3C4 7F057894 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057898(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057898 +/* 08C3C8 7F057898 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 08C3CC 7F05789C AFB10034 */ sw $s1, 0x34($sp) +/* 08C3D0 7F0578A0 3C118007 */ lui $s1, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 08C3D4 7F0578A4 8E315D90 */ lw $s1, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($s1) +/* 08C3D8 7F0578A8 AFBF004C */ sw $ra, 0x4c($sp) +/* 08C3DC 7F0578AC AFB60048 */ sw $s6, 0x48($sp) +/* 08C3E0 7F0578B0 AFB50044 */ sw $s5, 0x44($sp) +/* 08C3E4 7F0578B4 AFB40040 */ sw $s4, 0x40($sp) +/* 08C3E8 7F0578B8 AFB3003C */ sw $s3, 0x3c($sp) +/* 08C3EC 7F0578BC AFB20038 */ sw $s2, 0x38($sp) +/* 08C3F0 7F0578C0 AFB00030 */ sw $s0, 0x30($sp) +/* 08C3F4 7F0578C4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 08C3F8 7F0578C8 12200071 */ beqz $s1, .L7F057A90 +/* 08C3FC 7F0578CC F7B40020 */ sdc1 $f20, 0x20($sp) +/* 08C400 7F0578D0 4480B000 */ mtc1 $zero, $f22 +/* 08C404 7F0578D4 24160001 */ li $s6, 1 +/* 08C408 7F0578D8 27B50064 */ addiu $s5, $sp, 0x64 +/* 08C40C 7F0578DC 27B40074 */ addiu $s4, $sp, 0x74 +/* 08C410 7F0578E0 27B3007C */ addiu $s3, $sp, 0x7c +/* 08C414 7F0578E4 27B20084 */ addiu $s2, $sp, 0x84 +/* 08C418 7F0578E8 8E2E0008 */ lw $t6, 8($s1) +.L7F0578EC: +/* 08C41C 7F0578EC 55C00066 */ bnezl $t6, .L7F057A88 +/* 08C420 7F0578F0 8E31000C */ lw $s1, 0xc($s1) +/* 08C424 7F0578F4 0FC15C30 */ jal get_handle_to_tagged_object +/* 08C428 7F0578F8 8E240004 */ lw $a0, 4($s1) +/* 08C42C 7F0578FC 10400061 */ beqz $v0, .L7F057A84 +/* 08C430 7F057900 00408025 */ move $s0, $v0 +/* 08C434 7F057904 8C430010 */ lw $v1, 0x10($v0) +/* 08C438 7F057908 5060005F */ beql $v1, $zero, .L7F057A88 +/* 08C43C 7F05790C 8E31000C */ lw $s1, 0xc($s1) +/* 08C440 7F057910 906F0001 */ lbu $t7, 1($v1) +/* 08C444 7F057914 31F80002 */ andi $t8, $t7, 2 +/* 08C448 7F057918 5300005B */ beql $t8, $zero, .L7F057A88 +/* 08C44C 7F05791C 8E31000C */ lw $s1, 0xc($s1) +/* 08C450 7F057920 C4640018 */ lwc1 $f4, 0x18($v1) +/* 08C454 7F057924 4604B03E */ c.le.s $f22, $f4 +/* 08C458 7F057928 00000000 */ nop +/* 08C45C 7F05792C 45020056 */ bc1fl .L7F057A88 +/* 08C460 7F057930 8E31000C */ lw $s1, 0xc($s1) +/* 08C464 7F057934 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08C468 7F057938 00402025 */ move $a0, $v0 +/* 08C46C 7F05793C 10400051 */ beqz $v0, .L7F057A84 +/* 08C470 7F057940 02402825 */ move $a1, $s2 +/* 08C474 7F057944 8E040010 */ lw $a0, 0x10($s0) +/* 08C478 7F057948 02603025 */ move $a2, $s3 +/* 08C47C 7F05794C 0FC1434C */ jal sub_GAME_7F050D30 +/* 08C480 7F057950 02803825 */ move $a3, $s4 +/* 08C484 7F057954 1040004B */ beqz $v0, .L7F057A84 +/* 08C488 7F057958 02402025 */ move $a0, $s2 +/* 08C48C 7F05795C 02602825 */ move $a1, $s3 +/* 08C490 7F057960 02803025 */ move $a2, $s4 +/* 08C494 7F057964 27A7006C */ addiu $a3, $sp, 0x6c +/* 08C498 7F057968 0FC0FE52 */ jal sub_GAME_7F03F948 +/* 08C49C 7F05796C AFB50010 */ sw $s5, 0x10($sp) +/* 08C4A0 7F057970 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4A4 7F057974 00000000 */ nop +/* 08C4A8 7F057978 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08C4AC 7F05797C 4606003C */ c.lt.s $f0, $f6 +/* 08C4B0 7F057980 00000000 */ nop +/* 08C4B4 7F057984 45020040 */ bc1fl .L7F057A88 +/* 08C4B8 7F057988 8E31000C */ lw $s1, 0xc($s1) +/* 08C4BC 7F05798C 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4C0 7F057990 00000000 */ nop +/* 08C4C4 7F057994 0FC1E129 */ jal getPlayer_c_screenwidth +/* 08C4C8 7F057998 46000506 */ mov.s $f20, $f0 +/* 08C4CC 7F05799C 46140280 */ add.s $f10, $f0, $f20 +/* 08C4D0 7F0579A0 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08C4D4 7F0579A4 460A403C */ c.lt.s $f8, $f10 +/* 08C4D8 7F0579A8 00000000 */ nop +/* 08C4DC 7F0579AC 45020036 */ bc1fl .L7F057A88 +/* 08C4E0 7F0579B0 8E31000C */ lw $s1, 0xc($s1) +/* 08C4E4 7F0579B4 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4E8 7F0579B8 00000000 */ nop +/* 08C4EC 7F0579BC C7B00064 */ lwc1 $f16, 0x64($sp) +/* 08C4F0 7F0579C0 4610003C */ c.lt.s $f0, $f16 +/* 08C4F4 7F0579C4 00000000 */ nop +/* 08C4F8 7F0579C8 4502002F */ bc1fl .L7F057A88 +/* 08C4FC 7F0579CC 8E31000C */ lw $s1, 0xc($s1) +/* 08C500 7F0579D0 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C504 7F0579D4 00000000 */ nop +/* 08C508 7F0579D8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 08C50C 7F0579DC 46000506 */ mov.s $f20, $f0 +/* 08C510 7F0579E0 46140100 */ add.s $f4, $f0, $f20 +/* 08C514 7F0579E4 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 08C518 7F0579E8 4604903C */ c.lt.s $f18, $f4 +/* 08C51C 7F0579EC 00000000 */ nop +/* 08C520 7F0579F0 45020025 */ bc1fl .L7F057A88 +/* 08C524 7F0579F4 8E31000C */ lw $s1, 0xc($s1) +/* 08C528 7F0579F8 0FC1E135 */ jal getPlayer_c_screentop +/* 08C52C 7F0579FC 00000000 */ nop +/* 08C530 7F057A00 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08C534 7F057A04 4606003C */ c.lt.s $f0, $f6 +/* 08C538 7F057A08 00000000 */ nop +/* 08C53C 7F057A0C 4502001E */ bc1fl .L7F057A88 +/* 08C540 7F057A10 8E31000C */ lw $s1, 0xc($s1) +/* 08C544 7F057A14 0FC1E135 */ jal getPlayer_c_screentop +/* 08C548 7F057A18 00000000 */ nop +/* 08C54C 7F057A1C 0FC1E12D */ jal getPlayer_c_screenheight +/* 08C550 7F057A20 46000506 */ mov.s $f20, $f0 +/* 08C554 7F057A24 46140280 */ add.s $f10, $f0, $f20 +/* 08C558 7F057A28 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08C55C 7F057A2C 460A403C */ c.lt.s $f8, $f10 +/* 08C560 7F057A30 00000000 */ nop +/* 08C564 7F057A34 45020014 */ bc1fl .L7F057A88 +/* 08C568 7F057A38 8E31000C */ lw $s1, 0xc($s1) +/* 08C56C 7F057A3C 0FC1E135 */ jal getPlayer_c_screentop +/* 08C570 7F057A40 00000000 */ nop +/* 08C574 7F057A44 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 08C578 7F057A48 4610003C */ c.lt.s $f0, $f16 +/* 08C57C 7F057A4C 00000000 */ nop +/* 08C580 7F057A50 4502000D */ bc1fl .L7F057A88 +/* 08C584 7F057A54 8E31000C */ lw $s1, 0xc($s1) +/* 08C588 7F057A58 0FC1E135 */ jal getPlayer_c_screentop +/* 08C58C 7F057A5C 00000000 */ nop +/* 08C590 7F057A60 0FC1E12D */ jal getPlayer_c_screenheight +/* 08C594 7F057A64 46000506 */ mov.s $f20, $f0 +/* 08C598 7F057A68 46140100 */ add.s $f4, $f0, $f20 +/* 08C59C 7F057A6C C7B20068 */ lwc1 $f18, 0x68($sp) +/* 08C5A0 7F057A70 4604903C */ c.lt.s $f18, $f4 +/* 08C5A4 7F057A74 00000000 */ nop +/* 08C5A8 7F057A78 45020003 */ bc1fl .L7F057A88 +/* 08C5AC 7F057A7C 8E31000C */ lw $s1, 0xc($s1) +/* 08C5B0 7F057A80 AE360008 */ sw $s6, 8($s1) +.L7F057A84: +/* 08C5B4 7F057A84 8E31000C */ lw $s1, 0xc($s1) +.L7F057A88: +/* 08C5B8 7F057A88 5620FF98 */ bnezl $s1, .L7F0578EC +/* 08C5BC 7F057A8C 8E2E0008 */ lw $t6, 8($s1) +.L7F057A90: +/* 08C5C0 7F057A90 8FBF004C */ lw $ra, 0x4c($sp) +/* 08C5C4 7F057A94 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 08C5C8 7F057A98 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 08C5CC 7F057A9C 8FB00030 */ lw $s0, 0x30($sp) +/* 08C5D0 7F057AA0 8FB10034 */ lw $s1, 0x34($sp) +/* 08C5D4 7F057AA4 8FB20038 */ lw $s2, 0x38($sp) +/* 08C5D8 7F057AA8 8FB3003C */ lw $s3, 0x3c($sp) +/* 08C5DC 7F057AAC 8FB40040 */ lw $s4, 0x40($sp) +/* 08C5E0 7F057AB0 8FB50044 */ lw $s5, 0x44($sp) +/* 08C5E4 7F057AB4 8FB60048 */ lw $s6, 0x48($sp) +/* 08C5E8 7F057AB8 03E00008 */ jr $ra +/* 08C5EC 7F057ABC 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + +//filebreak diff --git a/src/game/objective_status2.c b/src/game/objective_status2.c new file mode 100644 index 0000000..5e1d29e --- /dev/null +++ b/src/game/objective_status2.c @@ -0,0 +1,397 @@ +#include "ultra64.h" + +//D:80032300 +u32 D_80032300 = 0; +//D:80032304 +u32 D_80032304 = 0; +//D:80032308 +u32 D_80032308 = 0; + +#ifdef NONMATCHING +void sub_GAME_7F057AC0(float *param_1) +{ + float firstrandfinal; + float secondrandfinal; + float thirdrandfinal; + + firstrandfinal = D_80032300; + secondrandfinal = D_80032304; + thirdrandfinal = D_80032308; + firstrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + secondrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + thirdrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + matrix_4x4_set_rotation_around_xyz(&firstrandfinal,param_1); + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053690 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053694 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80053698 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005369C +.word 0x3dc90fdb /*0.098174773*/ +glabel D_800536A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800536A4 +.word 0x3dc90fdb /*0.098174773*/ +.text +glabel sub_GAME_7F057AC0 +/* 08C5F0 7F057AC0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08C5F4 7F057AC4 3C0F8003 */ lui $t7, %hi(D_80032300) +/* 08C5F8 7F057AC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C5FC 7F057ACC AFA40028 */ sw $a0, 0x28($sp) +/* 08C600 7F057AD0 25EF2300 */ addiu $t7, %lo(D_80032300) # addiu $t7, $t7, 0x2300 +/* 08C604 7F057AD4 8DE10000 */ lw $at, ($t7) +/* 08C608 7F057AD8 27AE001C */ addiu $t6, $sp, 0x1c +/* 08C60C 7F057ADC 8DE80004 */ lw $t0, 4($t7) +/* 08C610 7F057AE0 ADC10000 */ sw $at, ($t6) +/* 08C614 7F057AE4 8DE10008 */ lw $at, 8($t7) +/* 08C618 7F057AE8 ADC80004 */ sw $t0, 4($t6) +/* 08C61C 7F057AEC 0C002914 */ jal get_random_value +/* 08C620 7F057AF0 ADC10008 */ sw $at, 8($t6) +/* 08C624 7F057AF4 44822000 */ mtc1 $v0, $f4 +/* 08C628 7F057AF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C62C 7F057AFC 04410004 */ bgez $v0, .L7F057B10 +/* 08C630 7F057B00 468021A0 */ cvt.s.w $f6, $f4 +/* 08C634 7F057B04 44814000 */ mtc1 $at, $f8 +/* 08C638 7F057B08 00000000 */ nop +/* 08C63C 7F057B0C 46083180 */ add.s $f6, $f6, $f8 +.L7F057B10: +/* 08C640 7F057B10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C644 7F057B14 44815000 */ mtc1 $at, $f10 +/* 08C648 7F057B18 3C018005 */ lui $at, %hi(D_80053690) +/* 08C64C 7F057B1C C4323690 */ lwc1 $f18, %lo(D_80053690)($at) +/* 08C650 7F057B20 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C654 7F057B24 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C658 7F057B28 44814000 */ mtc1 $at, $f8 +/* 08C65C 7F057B2C 3C018005 */ lui $at, %hi(D_80053694) +/* 08C660 7F057B30 C42A3694 */ lwc1 $f10, %lo(D_80053694)($at) +/* 08C664 7F057B34 46128102 */ mul.s $f4, $f16, $f18 +/* 08C668 7F057B38 00000000 */ nop +/* 08C66C 7F057B3C 46082182 */ mul.s $f6, $f4, $f8 +/* 08C670 7F057B40 460A3401 */ sub.s $f16, $f6, $f10 +/* 08C674 7F057B44 0C002914 */ jal get_random_value +/* 08C678 7F057B48 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 08C67C 7F057B4C 44829000 */ mtc1 $v0, $f18 +/* 08C680 7F057B50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C684 7F057B54 04410004 */ bgez $v0, .L7F057B68 +/* 08C688 7F057B58 46809120 */ cvt.s.w $f4, $f18 +/* 08C68C 7F057B5C 44814000 */ mtc1 $at, $f8 +/* 08C690 7F057B60 00000000 */ nop +/* 08C694 7F057B64 46082100 */ add.s $f4, $f4, $f8 +.L7F057B68: +/* 08C698 7F057B68 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C69C 7F057B6C 44813000 */ mtc1 $at, $f6 +/* 08C6A0 7F057B70 3C018005 */ lui $at, %hi(D_80053698) +/* 08C6A4 7F057B74 C4303698 */ lwc1 $f16, %lo(D_80053698)($at) +/* 08C6A8 7F057B78 46062282 */ mul.s $f10, $f4, $f6 +/* 08C6AC 7F057B7C 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C6B0 7F057B80 44814000 */ mtc1 $at, $f8 +/* 08C6B4 7F057B84 3C018005 */ lui $at, %hi(D_8005369C) +/* 08C6B8 7F057B88 C426369C */ lwc1 $f6, %lo(D_8005369C)($at) +/* 08C6BC 7F057B8C 46105482 */ mul.s $f18, $f10, $f16 +/* 08C6C0 7F057B90 00000000 */ nop +/* 08C6C4 7F057B94 46089102 */ mul.s $f4, $f18, $f8 +/* 08C6C8 7F057B98 46062281 */ sub.s $f10, $f4, $f6 +/* 08C6CC 7F057B9C 0C002914 */ jal get_random_value +/* 08C6D0 7F057BA0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08C6D4 7F057BA4 44828000 */ mtc1 $v0, $f16 +/* 08C6D8 7F057BA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C6DC 7F057BAC 04410004 */ bgez $v0, .L7F057BC0 +/* 08C6E0 7F057BB0 468084A0 */ cvt.s.w $f18, $f16 +/* 08C6E4 7F057BB4 44814000 */ mtc1 $at, $f8 +/* 08C6E8 7F057BB8 00000000 */ nop +/* 08C6EC 7F057BBC 46089480 */ add.s $f18, $f18, $f8 +.L7F057BC0: +/* 08C6F0 7F057BC0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C6F4 7F057BC4 44812000 */ mtc1 $at, $f4 +/* 08C6F8 7F057BC8 3C018005 */ lui $at, %hi(D_800536A0) +/* 08C6FC 7F057BCC C42A36A0 */ lwc1 $f10, %lo(D_800536A0)($at) +/* 08C700 7F057BD0 46049182 */ mul.s $f6, $f18, $f4 +/* 08C704 7F057BD4 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C708 7F057BD8 44814000 */ mtc1 $at, $f8 +/* 08C70C 7F057BDC 3C018005 */ lui $at, %hi(D_800536A4) +/* 08C710 7F057BE0 C42436A4 */ lwc1 $f4, %lo(D_800536A4)($at) +/* 08C714 7F057BE4 27A4001C */ addiu $a0, $sp, 0x1c +/* 08C718 7F057BE8 8FA50028 */ lw $a1, 0x28($sp) +/* 08C71C 7F057BEC 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C720 7F057BF0 00000000 */ nop +/* 08C724 7F057BF4 46088482 */ mul.s $f18, $f16, $f8 +/* 08C728 7F057BF8 46049181 */ sub.s $f6, $f18, $f4 +/* 08C72C 7F057BFC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 08C730 7F057C00 E7A60024 */ swc1 $f6, 0x24($sp) +/* 08C734 7F057C04 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C738 7F057C08 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08C73C 7F057C0C 03E00008 */ jr $ra +/* 08C740 7F057C10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057C14(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800536A8 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536AC +.word 0x40555555 /*3.3333333*/ +glabel D_800536B0 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536B4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536B8 +.word 0x40555555 /*3.3333333*/ +.text +glabel sub_GAME_7F057C14 +/* 08C744 7F057C14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08C748 7F057C18 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C74C 7F057C1C AFA40018 */ sw $a0, 0x18($sp) +/* 08C750 7F057C20 0C002914 */ jal get_random_value +/* 08C754 7F057C24 AFA5001C */ sw $a1, 0x1c($sp) +/* 08C758 7F057C28 44822000 */ mtc1 $v0, $f4 +/* 08C75C 7F057C2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C760 7F057C30 04410004 */ bgez $v0, .L7F057C44 +/* 08C764 7F057C34 468021A0 */ cvt.s.w $f6, $f4 +/* 08C768 7F057C38 44814000 */ mtc1 $at, $f8 +/* 08C76C 7F057C3C 00000000 */ nop +/* 08C770 7F057C40 46083180 */ add.s $f6, $f6, $f8 +.L7F057C44: +/* 08C774 7F057C44 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C778 7F057C48 44815000 */ mtc1 $at, $f10 +/* 08C77C 7F057C4C 3C018005 */ lui $at, %hi(D_800536A8) +/* 08C780 7F057C50 C43236A8 */ lwc1 $f18, %lo(D_800536A8)($at) +/* 08C784 7F057C54 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C788 7F057C58 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C78C 7F057C5C 44814000 */ mtc1 $at, $f8 +/* 08C790 7F057C60 3C018005 */ lui $at, %hi(D_800536AC) +/* 08C794 7F057C64 C42A36AC */ lwc1 $f10, %lo(D_800536AC)($at) +/* 08C798 7F057C68 8FAE0018 */ lw $t6, 0x18($sp) +/* 08C79C 7F057C6C 46128102 */ mul.s $f4, $f16, $f18 +/* 08C7A0 7F057C70 00000000 */ nop +/* 08C7A4 7F057C74 46082182 */ mul.s $f6, $f4, $f8 +/* 08C7A8 7F057C78 460A3401 */ sub.s $f16, $f6, $f10 +/* 08C7AC 7F057C7C 0C002914 */ jal get_random_value +/* 08C7B0 7F057C80 E5D00000 */ swc1 $f16, ($t6) +/* 08C7B4 7F057C84 44829000 */ mtc1 $v0, $f18 +/* 08C7B8 7F057C88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C7BC 7F057C8C 04410004 */ bgez $v0, .L7F057CA0 +/* 08C7C0 7F057C90 46809120 */ cvt.s.w $f4, $f18 +/* 08C7C4 7F057C94 44814000 */ mtc1 $at, $f8 +/* 08C7C8 7F057C98 00000000 */ nop +/* 08C7CC 7F057C9C 46082100 */ add.s $f4, $f4, $f8 +.L7F057CA0: +/* 08C7D0 7F057CA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C7D4 7F057CA4 44813000 */ mtc1 $at, $f6 +/* 08C7D8 7F057CA8 3C018005 */ lui $at, %hi(D_800536B0) +/* 08C7DC 7F057CAC C43036B0 */ lwc1 $f16, %lo(D_800536B0)($at) +/* 08C7E0 7F057CB0 46062282 */ mul.s $f10, $f4, $f6 +/* 08C7E4 7F057CB4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C7E8 7F057CB8 44814000 */ mtc1 $at, $f8 +/* 08C7EC 7F057CBC 8FAF0018 */ lw $t7, 0x18($sp) +/* 08C7F0 7F057CC0 46105482 */ mul.s $f18, $f10, $f16 +/* 08C7F4 7F057CC4 00000000 */ nop +/* 08C7F8 7F057CC8 46089102 */ mul.s $f4, $f18, $f8 +/* 08C7FC 7F057CCC 0C002914 */ jal get_random_value +/* 08C800 7F057CD0 E5E40004 */ swc1 $f4, 4($t7) +/* 08C804 7F057CD4 44823000 */ mtc1 $v0, $f6 +/* 08C808 7F057CD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C80C 7F057CDC 04410004 */ bgez $v0, .L7F057CF0 +/* 08C810 7F057CE0 468032A0 */ cvt.s.w $f10, $f6 +/* 08C814 7F057CE4 44818000 */ mtc1 $at, $f16 +/* 08C818 7F057CE8 00000000 */ nop +/* 08C81C 7F057CEC 46105280 */ add.s $f10, $f10, $f16 +.L7F057CF0: +/* 08C820 7F057CF0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C824 7F057CF4 44819000 */ mtc1 $at, $f18 +/* 08C828 7F057CF8 3C018005 */ lui $at, %hi(D_800536B4) +/* 08C82C 7F057CFC C42436B4 */ lwc1 $f4, %lo(D_800536B4)($at) +/* 08C830 7F057D00 46125202 */ mul.s $f8, $f10, $f18 +/* 08C834 7F057D04 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C838 7F057D08 44818000 */ mtc1 $at, $f16 +/* 08C83C 7F057D0C 3C018005 */ lui $at, %hi(D_800536B8) +/* 08C840 7F057D10 C43236B8 */ lwc1 $f18, %lo(D_800536B8)($at) +/* 08C844 7F057D14 8FB80018 */ lw $t8, 0x18($sp) +/* 08C848 7F057D18 46044182 */ mul.s $f6, $f8, $f4 +/* 08C84C 7F057D1C 00000000 */ nop +/* 08C850 7F057D20 46103282 */ mul.s $f10, $f6, $f16 +/* 08C854 7F057D24 46125201 */ sub.s $f8, $f10, $f18 +/* 08C858 7F057D28 E7080008 */ swc1 $f8, 8($t8) +/* 08C85C 7F057D2C 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 08C860 7F057D30 8FA4001C */ lw $a0, 0x1c($sp) +/* 08C864 7F057D34 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C868 7F057D38 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08C86C 7F057D3C 03E00008 */ jr $ra +/* 08C870 7F057D40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057D44(void) { + +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057DF8(float *param_1,float *param_2,int param_3) +{ + int i; + + for (i = 0; 0 < param_3; i++) + { + matrix_4x4_multiply_homogeneous_in_place(param_2,param_1); + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057DF8 +/* 08C928 7F057DF8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08C92C 7F057DFC AFB30020 */ sw $s3, 0x20($sp) +/* 08C930 7F057E00 AFB2001C */ sw $s2, 0x1c($sp) +/* 08C934 7F057E04 AFB10018 */ sw $s1, 0x18($sp) +/* 08C938 7F057E08 AFB00014 */ sw $s0, 0x14($sp) +/* 08C93C 7F057E0C 00C08825 */ move $s1, $a2 +/* 08C940 7F057E10 00A09025 */ move $s2, $a1 +/* 08C944 7F057E14 00809825 */ move $s3, $a0 +/* 08C948 7F057E18 AFBF0024 */ sw $ra, 0x24($sp) +/* 08C94C 7F057E1C 18C00007 */ blez $a2, .L7F057E3C +/* 08C950 7F057E20 00008025 */ move $s0, $zero +/* 08C954 7F057E24 02402025 */ move $a0, $s2 +.L7F057E28: +/* 08C958 7F057E28 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 08C95C 7F057E2C 02602825 */ move $a1, $s3 +/* 08C960 7F057E30 26100001 */ addiu $s0, $s0, 1 +/* 08C964 7F057E34 5611FFFC */ bnel $s0, $s1, .L7F057E28 +/* 08C968 7F057E38 02402025 */ move $a0, $s2 +.L7F057E3C: +/* 08C96C 7F057E3C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08C970 7F057E40 8FB00014 */ lw $s0, 0x14($sp) +/* 08C974 7F057E44 8FB10018 */ lw $s1, 0x18($sp) +/* 08C978 7F057E48 8FB2001C */ lw $s2, 0x1c($sp) +/* 08C97C 7F057E4C 8FB30020 */ lw $s3, 0x20($sp) +/* 08C980 7F057E50 03E00008 */ jr $ra +/* 08C984 7F057E54 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#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 + + diff --git a/src/game/othermodemicrocode.c b/src/game/othermodemicrocode.c new file mode 100644 index 0000000..1995a9e --- /dev/null +++ b/src/game/othermodemicrocode.c @@ -0,0 +1,1726 @@ +#include "ultra64.h" + + + + +s32 is_less_than_certain_power_of_2(int number) + +{ + if (number < 2) { + return 0; + } + if (number < 3) { + return 1; + } + if (number < 5) { + return 2; + } + if (number < 9) { + return 3; + } + if (number < 0x11) { + return 4; + } + if (number < 0x21) { + return 5; + } + if (number < 0x41) { + return 6; + } + if (number < 0x81) { + return 7; + } + return 8; +} + + + + + + +#ifdef NONMATCHING +s32 ceil8000(s32 arg0) { + // Node 0 + if ((arg0 + 0xf) < 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))) + } + // (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))) +} + +#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 + + + + + +#ifdef NONMATCHING +s32 ceil4000(s32 arg0) { + // Node 0 + if ((arg0 + 7) < 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))) + } + // (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))) +} + +#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 + + + + + +#ifdef NONMATCHING +s32 ceil2000(s32 arg0) { + // Node 0 + if ((arg0 + 3) < 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))) + } + // (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))) +} + +#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 + + + + + +#ifdef NONMATCHING +s32 ceil1000(s32 arg0) { + // Node 0 + if ((arg0 + 3) < 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))) + } + // (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))) +} + +#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 + + + + + +#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) { + +} +#else +GLOBAL_ASM( +.text +glabel likely_generate_DL_for_image_declaration +/* 0AB898 7F076D68 27BDFE90 */ addiu $sp, $sp, -0x170 +/* 0AB89C 7F076D6C AFBF0034 */ sw $ra, 0x34($sp) +/* 0AB8A0 7F076D70 AFB70030 */ sw $s7, 0x30($sp) +/* 0AB8A4 7F076D74 AFB6002C */ sw $s6, 0x2c($sp) +/* 0AB8A8 7F076D78 AFB50028 */ sw $s5, 0x28($sp) +/* 0AB8AC 7F076D7C AFB40024 */ sw $s4, 0x24($sp) +/* 0AB8B0 7F076D80 AFB30020 */ sw $s3, 0x20($sp) +/* 0AB8B4 7F076D84 AFB2001C */ sw $s2, 0x1c($sp) +/* 0AB8B8 7F076D88 AFB10018 */ sw $s1, 0x18($sp) +/* 0AB8BC 7F076D8C AFB00014 */ sw $s0, 0x14($sp) +/* 0AB8C0 7F076D90 AFA40170 */ sw $a0, 0x170($sp) +/* 0AB8C4 7F076D94 AFA60178 */ sw $a2, 0x178($sp) +/* 0AB8C8 7F076D98 8C8F0000 */ lw $t7, ($a0) +/* 0AB8CC 7F076D9C 00E08025 */ move $s0, $a3 +/* 0AB8D0 7F076DA0 00A0B825 */ move $s7, $a1 +/* 0AB8D4 7F076DA4 14A00025 */ bnez $a1, .L7F076E3C +/* 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 +/* 0AB8E8 7F076DB8 27A4016C */ addiu $a0, $sp, 0x16c +/* 0AB8EC 7F076DBC 2A010002 */ slti $at, $s0, 2 +/* 0AB8F0 7F076DC0 1420000D */ bnez $at, .L7F076DF8 +/* 0AB8F4 7F076DC4 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AB8F8 7F076DC8 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AB8FC 7F076DCC 320E00FF */ andi $t6, $s0, 0xff +/* 0AB900 7F076DD0 000E7C00 */ sll $t7, $t6, 0x10 +/* 0AB904 7F076DD4 3C01BB00 */ lui $at, 0xbb00 +/* 0AB908 7F076DD8 24590008 */ addiu $t9, $v0, 8 +/* 0AB90C 7F076DDC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AB910 7F076DE0 01E1C025 */ or $t8, $t7, $at +/* 0AB914 7F076DE4 37190001 */ ori $t9, $t8, 1 +/* 0AB918 7F076DE8 240EFFFF */ li $t6, -1 +/* 0AB91C 7F076DEC AC4E0004 */ sw $t6, 4($v0) +/* 0AB920 7F076DF0 10000008 */ b .L7F076E14 +/* 0AB924 7F076DF4 AC590000 */ sw $t9, ($v0) +.L7F076DF8: +/* 0AB928 7F076DF8 25F80008 */ addiu $t8, $t7, 8 +/* 0AB92C 7F076DFC AFB8016C */ sw $t8, 0x16c($sp) +/* 0AB930 7F076E00 3C19BB00 */ lui $t9, (0xBB000001 >> 16) # lui $t9, 0xbb00 # +/* 0AB934 7F076E04 37390001 */ ori $t9, (0xBB000001 & 0xFFFF) # ori $t9, $t9, 1 # +/* 0AB938 7F076E08 240EFFFF */ li $t6, -1 +/* 0AB93C 7F076E0C ADEE0004 */ sw $t6, 4($t7) # As with above gbi, I forgot to include *dl since I dont know where it is saving the Gfx array (*dl) +/* 0AB940 7F076E10 ADF90000 */ sw $t9, ($t7) #gSPTexture(*dl, 0xFFFF, 0xFFFF, 1, 0, G_ON) #use FFFF since 1.0 cannot be represented directly +.L7F076E14: +/* 0AB944 7F076E14 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AB948 7F076E18 3C19FCFF */ lui $t9, (0xFCFFFFFF >> 16) # lui $t9, 0xfcff # +/* 0AB94C 7F076E1C 3C0EFFFE */ lui $t6, (0xFFFE793C >> 16) # lui $t6, 0xfffe #FCFFFFFFFFFE793C +/* 0AB950 7F076E20 25F80008 */ addiu $t8, $t7, 8 +/* 0AB954 7F076E24 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AB958 7F076E28 35CE793C */ ori $t6, (0xFFFE793C & 0xFFFF) # ori $t6, $t6, 0x793c # +/* 0AB95C 7F076E2C 3739FFFF */ ori $t9, (0xFCFFFFFF & 0xFFFF) # ori $t9, $t9, 0xffff # +/* 0AB960 7F076E30 ADF90000 */ sw $t9, ($t7) # +/* 0AB964 7F076E34 10000352 */ b .L7F077B80 +/* 0AB968 7F076E38 ADEE0004 */ sw $t6, 4($t7) #gDPSetCombineMode() +.L7F076E3C: +/* 0AB96C 7F076E3C 8EE20000 */ lw $v0, ($s7) +/* 0AB970 7F076E40 92F50004 */ lbu $s5, 4($s7) +/* 0AB974 7F076E44 92F40005 */ lbu $s4, 5($s7) +/* 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 +/* 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 +/* 0AB9A0 7F076E70 00002825 */ move $a1, $zero +/* 0AB9A4 7F076E74 92E30006 */ lbu $v1, 6($s7) +/* 0AB9A8 7F076E78 0040B025 */ move $s6, $v0 +/* 0AB9AC 7F076E7C 54600167 */ bnezl $v1, .L7F07741C +/* 0AB9B0 7F076E80 AFA000D0 */ sw $zero, 0xd0($sp) +/* 0AB9B4 7F076E84 5040000D */ beql $v0, $zero, .L7F076EBC +/* 0AB9B8 7F076E88 92F10007 */ lbu $s1, 7($s7) +/* 0AB9BC 7F076E8C 8C520008 */ lw $s2, 8($v0) +/* 0AB9C0 7F076E90 8C4E000C */ lw $t6, 0xc($v0) +/* 0AB9C4 7F076E94 00128EC0 */ sll $s1, $s2, 0x1b +/* 0AB9C8 7F076E98 00117F42 */ srl $t7, $s1, 0x1d +/* 0AB9CC 7F076E9C 31F100FF */ andi $s1, $t7, 0xff +/* 0AB9D0 7F076EA0 000E7F82 */ srl $t7, $t6, 0x1e +/* 0AB9D4 7F076EA4 000FC380 */ sll $t8, $t7, 0xe +/* 0AB9D8 7F076EA8 32590003 */ andi $t9, $s2, 3 +/* 0AB9DC 7F076EAC 03209025 */ move $s2, $t9 +/* 0AB9E0 7F076EB0 10000003 */ b .L7F076EC0 +/* 0AB9E4 7F076EB4 AFB80144 */ sw $t8, 0x144($sp) +/* 0AB9E8 7F076EB8 92F10007 */ lbu $s1, 7($s7) +.L7F076EBC: +/* 0AB9EC 7F076EBC 92F20008 */ lbu $s2, 8($s7) +.L7F076EC0: +/* 0AB9F0 7F076EC0 12400033 */ beqz $s2, .L7F076F90 +/* 0AB9F4 7F076EC4 02401025 */ move $v0, $s2 +/* 0AB9F8 7F076EC8 24010001 */ li $at, 1 +/* 0AB9FC 7F076ECC 10410023 */ beq $v0, $at, .L7F076F5C +/* 0ABA00 7F076ED0 240F0002 */ li $t7, 2 +/* 0ABA04 7F076ED4 24010002 */ li $at, 2 +/* 0ABA08 7F076ED8 10410013 */ beq $v0, $at, .L7F076F28 +/* 0ABA0C 7F076EDC 24180002 */ li $t8, 2 +/* 0ABA10 7F076EE0 24010003 */ li $at, 3 +/* 0ABA14 7F076EE4 10410003 */ beq $v0, $at, .L7F076EF4 +/* 0ABA18 7F076EE8 24190003 */ li $t9, 3 +/* 0ABA1C 7F076EEC 10000035 */ b .L7F076FC4 +/* 0ABA20 7F076EF0 8FB3013C */ lw $s3, 0x13c($sp) +.L7F076EF4: +/* 0ABA24 7F076EF4 AFB90140 */ sw $t9, 0x140($sp) +/* 0ABA28 7F076EF8 02A02025 */ move $a0, $s5 +/* 0ABA2C 7F076EFC 02802825 */ move $a1, $s4 +/* 0ABA30 7F076F00 0FC1DA4A */ jal sub_GAME_7F076928 +/* 0ABA34 7F076F04 24060001 */ li $a2, 1 +/* 0ABA38 7F076F08 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABA3C 7F076F0C 0FC1D9DD */ jal ceil1000 +/* 0ABA40 7F076F10 02A02025 */ move $a0, $s5 +/* 0ABA44 7F076F14 26AE0003 */ addiu $t6, $s5, 3 +/* 0ABA48 7F076F18 000E7883 */ sra $t7, $t6, 2 +/* 0ABA4C 7F076F1C AFA20138 */ sw $v0, 0x138($sp) +/* 0ABA50 7F076F20 10000028 */ b .L7F076FC4 +/* 0ABA54 7F076F24 AFAF0134 */ sw $t7, 0x134($sp) +.L7F076F28: +/* 0ABA58 7F076F28 AFB80140 */ sw $t8, 0x140($sp) +/* 0ABA5C 7F076F2C 02A02025 */ move $a0, $s5 +/* 0ABA60 7F076F30 02802825 */ move $a1, $s4 +/* 0ABA64 7F076F34 0FC1DA2E */ jal sub_GAME_7F0768B8 +/* 0ABA68 7F076F38 24060001 */ li $a2, 1 +/* 0ABA6C 7F076F3C 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABA70 7F076F40 0FC1D9C4 */ jal ceil2000 +/* 0ABA74 7F076F44 02A02025 */ move $a0, $s5 +/* 0ABA78 7F076F48 26B90003 */ addiu $t9, $s5, 3 +/* 0ABA7C 7F076F4C 00197083 */ sra $t6, $t9, 2 +/* 0ABA80 7F076F50 AFA20138 */ sw $v0, 0x138($sp) +/* 0ABA84 7F076F54 1000001B */ b .L7F076FC4 +/* 0ABA88 7F076F58 AFAE0134 */ sw $t6, 0x134($sp) +.L7F076F5C: +/* 0ABA8C 7F076F5C AFAF0140 */ sw $t7, 0x140($sp) +/* 0ABA90 7F076F60 02A02025 */ move $a0, $s5 +/* 0ABA94 7F076F64 02802825 */ move $a1, $s4 +/* 0ABA98 7F076F68 0FC1DA12 */ jal sub_GAME_7F076848 +/* 0ABA9C 7F076F6C 24060001 */ li $a2, 1 +/* 0ABAA0 7F076F70 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABAA4 7F076F74 0FC1D9AB */ jal ceil4000 +/* 0ABAA8 7F076F78 02A02025 */ move $a0, $s5 +/* 0ABAAC 7F076F7C 26B80007 */ addiu $t8, $s5, 7 +/* 0ABAB0 7F076F80 0018C8C3 */ sra $t9, $t8, 3 +/* 0ABAB4 7F076F84 AFA20138 */ sw $v0, 0x138($sp) +/* 0ABAB8 7F076F88 1000000E */ b .L7F076FC4 +/* 0ABABC 7F076F8C AFB90134 */ sw $t9, 0x134($sp) +.L7F076F90: +/* 0ABAC0 7F076F90 240E0002 */ li $t6, 2 +/* 0ABAC4 7F076F94 AFAE0140 */ sw $t6, 0x140($sp) +/* 0ABAC8 7F076F98 02A02025 */ move $a0, $s5 +/* 0ABACC 7F076F9C 02802825 */ move $a1, $s4 +/* 0ABAD0 7F076FA0 0FC1D9F6 */ jal sub_GAME_7F0767D8 +/* 0ABAD4 7F076FA4 24060001 */ li $a2, 1 +/* 0ABAD8 7F076FA8 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABADC 7F076FAC 0FC1D992 */ jal ceil8000 +/* 0ABAE0 7F076FB0 02A02025 */ move $a0, $s5 +/* 0ABAE4 7F076FB4 26AF000F */ addiu $t7, $s5, 0xf +/* 0ABAE8 7F076FB8 000FC103 */ sra $t8, $t7, 4 +/* 0ABAEC 7F076FBC AFA20138 */ sw $v0, 0x138($sp) +/* 0ABAF0 7F076FC0 AFB80134 */ sw $t8, 0x134($sp) +.L7F076FC4: +/* 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 +/* 0ABB04 7F076FD4 02003825 */ move $a3, $s0 +/* 0ABB08 7F076FD8 2A010002 */ slti $at, $s0, 2 +/* 0ABB0C 7F076FDC 1420000D */ bnez $at, .L7F077014 +/* 0ABB10 7F076FE0 02204825 */ move $t1, $s1 +/* 0ABB14 7F076FE4 8FA2016C */ lw $v0, 0x16c($sp) +/* 0ABB18 7F076FE8 320F00FF */ andi $t7, $s0, 0xff +/* 0ABB1C 7F076FEC 000FC400 */ sll $t8, $t7, 0x10 +/* 0ABB20 7F076FF0 3C01BB00 */ lui $at, 0xbb00 +/* 0ABB24 7F076FF4 244E0008 */ addiu $t6, $v0, 8 +/* 0ABB28 7F076FF8 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABB2C 7F076FFC 0301C825 */ or $t9, $t8, $at +/* 0ABB30 7F077000 372E0001 */ ori $t6, $t9, 1 +/* 0ABB34 7F077004 240FFFFF */ li $t7, -1 +/* 0ABB38 7F077008 AC4F0004 */ sw $t7, 4($v0) +/* 0ABB3C 7F07700C 10000009 */ b .L7F077034 +/* 0ABB40 7F077010 AC4E0000 */ sw $t6, ($v0) +.L7F077014: +/* 0ABB44 7F077014 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABB48 7F077018 3C0EBB00 */ lui $t6, (0xBB000001 >> 16) # lui $t6, 0xbb00 # +/* 0ABB4C 7F07701C 35CE0001 */ ori $t6, (0xBB000001 & 0xFFFF) # ori $t6, $t6, 1 # +/* 0ABB50 7F077020 27190008 */ addiu $t9, $t8, 8 +/* 0ABB54 7F077024 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABB58 7F077028 240FFFFF */ li $t7, -1 # +/* 0ABB5C 7F07702C AF0F0004 */ sw $t7, 4($t8) # +/* 0ABB60 7F077030 AF0E0000 */ sw $t6, ($t8) #gSPTexture(*dl, 0xFFFF, 0xFFFF, 1, 0, G_ON) #use FFFF since 1.0 cannot be represented directly +.L7F077034: +/* 0ABB64 7F077034 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABB68 7F077038 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 # +/* 0ABB6C 7F07703C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 # +/* 0ABB70 7F077040 27190008 */ addiu $t9, $t8, 8 +/* 0ABB74 7F077044 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABB78 7F077048 AF000004 */ sw $zero, 4($t8) +/* 0ABB7C 7F07704C 1220000C */ beqz $s1, .L7F077080 +/* 0ABB80 7F077050 AF0E0000 */ sw $t6, ($t8) #gDPSetTextureLOD(G_TL_TILE) +/* 0ABB84 7F077054 24010002 */ li $at, 2 +/* 0ABB88 7F077058 11210024 */ beq $t1, $at, .L7F0770EC +/* 0ABB8C 7F07705C 8FAF0144 */ lw $t7, 0x144($sp) +/* 0ABB90 7F077060 24010003 */ li $at, 3 +/* 0ABB94 7F077064 11210010 */ beq $t1, $at, .L7F0770A8 +/* 0ABB98 7F077068 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABB9C 7F07706C 24010004 */ li $at, 4 +/* 0ABBA0 7F077070 11210016 */ beq $t1, $at, .L7F0770CC +/* 0ABBA4 7F077074 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABBA8 7F077078 10000036 */ b .L7F077154 +/* 0ABBAC 7F07707C 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077080: +/* 0ABBB0 7F077080 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABBB4 7F077084 3C19FC12 */ lui $t9, (0xFC121824 >> 16) # lui $t9, 0xfc12 # +/* 0ABBB8 7F077088 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 # +/* 0ABBBC 7F07708C 25F80008 */ addiu $t8, $t7, 8 +/* 0ABBC0 7F077090 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABBC4 7F077094 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff # +/* 0ABBC8 7F077098 37391824 */ ori $t9, (0xFC121824 & 0xFFFF) # ori $t9, $t9, 0x1824 # +/* 0ABBCC 7F07709C ADF90000 */ sw $t9, ($t7) +/* 0ABBD0 7F0770A0 1000002B */ b .L7F077150 +/* 0ABBD4 7F0770A4 ADEE0004 */ sw $t6, 4($t7) #gDPSetCombineMode() +.L7F0770A8: +/* 0ABBD8 7F0770A8 25F80008 */ addiu $t8, $t7, 8 +/* 0ABBDC 7F0770AC 3C19FC12 */ lui $t9, (0xFC121824 >> 16) # lui $t9, 0xfc12 # +/* 0ABBE0 7F0770B0 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 # +/* 0ABBE4 7F0770B4 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff # +/* 0ABBE8 7F0770B8 37391824 */ ori $t9, (0xFC121824 & 0xFFFF) # ori $t9, $t9, 0x1824 # +/* 0ABBEC 7F0770BC AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABBF0 7F0770C0 ADEE0004 */ sw $t6, 4($t7) +/* 0ABBF4 7F0770C4 10000022 */ b .L7F077150 +/* 0ABBF8 7F0770C8 ADF90000 */ sw $t9, ($t7) #gDPSetCombineMode() +.L7F0770CC: +/* 0ABBFC 7F0770CC 25F80008 */ addiu $t8, $t7, 8 +/* 0ABC00 7F0770D0 3C19FC12 */ lui $t9, (0xFC127E24 >> 16) # lui $t9, 0xfc12 # +/* 0ABC04 7F0770D4 37397E24 */ ori $t9, (0xFC127E24 & 0xFFFF) # ori $t9, $t9, 0x7e24 # +/* 0ABC08 7F0770D8 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABC0C 7F0770DC 240EF9FC */ li $t6, -1540 +/* 0ABC10 7F0770E0 ADEE0004 */ sw $t6, 4($t7) +/* 0ABC14 7F0770E4 1000001A */ b .L7F077150 +/* 0ABC18 7F0770E8 ADF90000 */ sw $t9, ($t7) #gDPSetCombineMode() +.L7F0770EC: +/* 0ABC1C 7F0770EC 34018000 */ li $at, 32768 +/* 0ABC20 7F0770F0 11E10006 */ beq $t7, $at, .L7F07710C +/* 0ABC24 7F0770F4 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABC28 7F0770F8 3401C000 */ li $at, 49152 +/* 0ABC2C 7F0770FC 11E1000C */ beq $t7, $at, .L7F077130 +/* 0ABC30 7F077100 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABC34 7F077104 10000013 */ b .L7F077154 +/* 0ABC38 7F077108 8FA2016C */ lw $v0, 0x16c($sp) +.L7F07710C: +/* 0ABC3C 7F07710C 27190008 */ addiu $t9, $t8, 8 +/* 0ABC40 7F077110 3C0EFC12 */ lui $t6, (0xFC121824 >> 16) # lui $t6, 0xfc12 # +/* 0ABC44 7F077114 3C0FFF33 */ lui $t7, (0xFF33FFFF >> 16) # lui $t7, 0xff33 # +/* 0ABC48 7F077118 35EFFFFF */ ori $t7, (0xFF33FFFF & 0xFFFF) # ori $t7, $t7, 0xffff # +/* 0ABC4C 7F07711C 35CE1824 */ ori $t6, (0xFC121824 & 0xFFFF) # ori $t6, $t6, 0x1824 # +/* 0ABC50 7F077120 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC54 7F077124 AF0F0004 */ sw $t7, 4($t8) +/* 0ABC58 7F077128 10000009 */ b .L7F077150 +/* 0ABC5C 7F07712C AF0E0000 */ sw $t6, ($t8) #gDPSetCombineMode() +.L7F077130: +/* 0ABC60 7F077130 27190008 */ addiu $t9, $t8, 8 +/* 0ABC64 7F077134 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC68 7F077138 3C0EFC12 */ lui $t6, (0xFC121824 >> 16) # lui $t6, 0xfc12 # +/* 0ABC6C 7F07713C 3C0FFF33 */ lui $t7, (0xFF33FFFF >> 16) # lui $t7, 0xff33 # +/* 0ABC70 7F077140 35EFFFFF */ ori $t7, (0xFF33FFFF & 0xFFFF) # ori $t7, $t7, 0xffff # +/* 0ABC74 7F077144 35CE1824 */ ori $t6, (0xFC121824 & 0xFFFF) # ori $t6, $t6, 0x1824 # +/* 0ABC78 7F077148 AF0E0000 */ sw $t6, ($t8) +/* 0ABC7C 7F07714C AF0F0004 */ sw $t7, 4($t8) #gDPSetCombineMode() +.L7F077150: +/* 0ABC80 7F077150 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077154: +/* 0ABC84 7F077154 8FA40140 */ lw $a0, 0x140($sp) +/* 0ABC88 7F077158 32230007 */ andi $v1, $s1, 7 +/* 0ABC8C 7F07715C 00037540 */ sll $t6, $v1, 0x15 +/* 0ABC90 7F077160 24590008 */ addiu $t9, $v0, 8 +/* 0ABC94 7F077164 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC98 7F077168 3C01FD00 */ lui $at, 0xfd00 +/* 0ABC9C 7F07716C 308F0003 */ andi $t7, $a0, 3 +/* 0ABCA0 7F077170 000F24C0 */ sll $a0, $t7, 0x13 +/* 0ABCA4 7F077174 01C1C825 */ or $t9, $t6, $at +/* 0ABCA8 7F077178 01C01825 */ move $v1, $t6 +/* 0ABCAC 7F07717C 03247025 */ or $t6, $t9, $a0 +/* 0ABCB0 7F077180 AC4E0000 */ sw $t6, ($v0) +/* 0ABCB4 7F077184 8EEF0000 */ lw $t7, ($s7) +/* 0ABCB8 7F077188 3C01F500 */ lui $at, 0xf500 +/* 0ABCBC 7F07718C 00615825 */ or $t3, $v1, $at +/* 0ABCC0 7F077190 AC4F0004 */ sw $t7, 4($v0) +/* 0ABCC4 7F077194 8FA5016C */ lw $a1, 0x16c($sp) +/* 0ABCC8 7F077198 01647025 */ or $t6, $t3, $a0 +/* 0ABCCC 7F07719C 3C0A0700 */ lui $t2, 0x700 +/* 0ABCD0 7F0771A0 24B90008 */ addiu $t9, $a1, 8 +/* 0ABCD4 7F0771A4 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABCD8 7F0771A8 ACAE0000 */ sw $t6, ($a1) +/* 0ABCDC 7F0771AC 92EF000A */ lbu $t7, 0xa($s7) +/* 0ABCE0 7F0771B0 3C0DE600 */ lui $t5, 0xe600 +/* 0ABCE4 7F0771B4 2A6107FF */ slti $at, $s3, 0x7ff +/* 0ABCE8 7F0771B8 31F80003 */ andi $t8, $t7, 3 +/* 0ABCEC 7F0771BC 92EF0009 */ lbu $t7, 9($s7) +/* 0ABCF0 7F0771C0 0018CC80 */ sll $t9, $t8, 0x12 +/* 0ABCF4 7F0771C4 032A7025 */ or $t6, $t9, $t2 +/* 0ABCF8 7F0771C8 31F80003 */ andi $t8, $t7, 3 +/* 0ABCFC 7F0771CC 0018CA00 */ sll $t9, $t8, 8 +/* 0ABD00 7F0771D0 01D97825 */ or $t7, $t6, $t9 +/* 0ABD04 7F0771D4 ACAF0004 */ sw $t7, 4($a1) +/* 0ABD08 7F0771D8 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD0C 7F0771DC 240707FF */ li $a3, 2047 +/* 0ABD10 7F0771E0 270E0008 */ addiu $t6, $t8, 8 +/* 0ABD14 7F0771E4 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABD18 7F0771E8 AF000004 */ sw $zero, 4($t8) +/* 0ABD1C 7F0771EC AF0D0000 */ sw $t5, ($t8) +/* 0ABD20 7F0771F0 8FA8016C */ lw $t0, 0x16c($sp) +/* 0ABD24 7F0771F4 3C18F300 */ lui $t8, 0xf300 +/* 0ABD28 7F0771F8 250F0008 */ addiu $t7, $t0, 8 +/* 0ABD2C 7F0771FC AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABD30 7F077200 10200003 */ beqz $at, .L7F077210 +/* 0ABD34 7F077204 AD180000 */ sw $t8, ($t0) +/* 0ABD38 7F077208 10000001 */ b .L7F077210 +/* 0ABD3C 7F07720C 02603825 */ move $a3, $s3 +.L7F077210: +/* 0ABD40 7F077210 8FB80138 */ lw $t8, 0x138($sp) +/* 0ABD44 7F077214 30EE0FFF */ andi $t6, $a3, 0xfff +/* 0ABD48 7F077218 000ECB00 */ sll $t9, $t6, 0xc +/* 0ABD4C 7F07721C 032A7825 */ or $t7, $t9, $t2 +/* 0ABD50 7F077220 330E0FFF */ andi $t6, $t8, 0xfff +/* 0ABD54 7F077224 01EEC825 */ or $t9, $t7, $t6 +/* 0ABD58 7F077228 AD190004 */ sw $t9, 4($t0) +/* 0ABD5C 7F07722C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD60 7F077230 3C0CE700 */ lui $t4, 0xe700 +/* 0ABD64 7F077234 24010002 */ li $at, 2 +/* 0ABD68 7F077238 270F0008 */ addiu $t7, $t8, 8 +/* 0ABD6C 7F07723C AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABD70 7F077240 AF000004 */ sw $zero, 4($t8) +/* 0ABD74 7F077244 15210038 */ bne $t1, $at, .L7F077328 +/* 0ABD78 7F077248 AF0C0000 */ sw $t4, ($t8) +/* 0ABD7C 7F07724C 92CE000A */ lbu $t6, 0xa($s6) +/* 0ABD80 7F077250 241903FF */ li $t9, 1023 +/* 0ABD84 7F077254 26670001 */ addiu $a3, $s3, 1 +/* 0ABD88 7F077258 032E1023 */ subu $v0, $t9, $t6 +/* 0ABD8C 7F07725C 0047082B */ sltu $at, $v0, $a3 +/* 0ABD90 7F077260 10200003 */ beqz $at, .L7F077270 +/* 0ABD94 7F077264 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD98 7F077268 10000002 */ b .L7F077274 +/* 0ABD9C 7F07726C 00404025 */ move $t0, $v0 +.L7F077270: +/* 0ABDA0 7F077270 00004025 */ move $t0, $zero +.L7F077274: +/* 0ABDA4 7F077274 270F0008 */ addiu $t7, $t8, 8 +/* 0ABDA8 7F077278 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABDAC 7F07727C 3C19F500 */ lui $t9, (0xF5000100 >> 16) # lui $t9, 0xf500 # +/* 0ABDB0 7F077280 37390100 */ ori $t9, (0xF5000100 & 0xFFFF) # ori $t9, $t9, 0x100 #gDPSetTile() +/* 0ABDB4 7F077284 AF190000 */ sw $t9, ($t8) +/* 0ABDB8 7F077288 AF0A0004 */ sw $t2, 4($t8) +/* 0ABDBC 7F07728C 8FAE016C */ lw $t6, 0x16c($sp) +/* 0ABDC0 7F077290 00E83023 */ subu $a2, $a3, $t0 +/* 0ABDC4 7F077294 310503FF */ andi $a1, $t0, 0x3ff +/* 0ABDC8 7F077298 25D80008 */ addiu $t8, $t6, 8 +/* 0ABDCC 7F07729C AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABDD0 7F0772A0 ADC00004 */ sw $zero, 4($t6) +/* 0ABDD4 7F0772A4 ADCD0000 */ sw $t5, ($t6) +/* 0ABDD8 7F0772A8 8FA4016C */ lw $a0, 0x16c($sp) +/* 0ABDDC 7F0772AC 30D803FF */ andi $t8, $a2, 0x3ff +/* 0ABDE0 7F0772B0 00187B80 */ sll $t7, $t8, 0xe +/* 0ABDE4 7F0772B4 24990008 */ addiu $t9, $a0, 8 +/* 0ABDE8 7F0772B8 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABDEC 7F0772BC 00057080 */ sll $t6, $a1, 2 +/* 0ABDF0 7F0772C0 3C01F000 */ lui $at, 0xf000 +/* 0ABDF4 7F0772C4 01E1C825 */ or $t9, $t7, $at +/* 0ABDF8 7F0772C8 01C02825 */ move $a1, $t6 +/* 0ABDFC 7F0772CC 032E7025 */ or $t6, $t9, $t6 +/* 0ABE00 7F0772D0 AC8E0000 */ sw $t6, ($a0) +/* 0ABE04 7F0772D4 92D8000A */ lbu $t8, 0xa($s6) +/* 0ABE08 7F0772D8 03067821 */ addu $t7, $t8, $a2 +/* 0ABE0C 7F0772DC 31F903FF */ andi $t9, $t7, 0x3ff +/* 0ABE10 7F0772E0 00197380 */ sll $t6, $t9, 0xe +/* 0ABE14 7F0772E4 01CAC025 */ or $t8, $t6, $t2 +/* 0ABE18 7F0772E8 03057825 */ or $t7, $t8, $a1 +/* 0ABE1C 7F0772EC AC8F0004 */ sw $t7, 4($a0) +/* 0ABE20 7F0772F0 8FB9016C */ lw $t9, 0x16c($sp) +/* 0ABE24 7F0772F4 272E0008 */ addiu $t6, $t9, 8 +/* 0ABE28 7F0772F8 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABE2C 7F0772FC AF200004 */ sw $zero, 4($t9) +/* 0ABE30 7F077300 AF2C0000 */ sw $t4, ($t9) +/* 0ABE34 7F077304 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABE38 7F077308 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 # +/* 0ABE3C 7F07730C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 #gDPSetTextureLUT() +/* 0ABE40 7F077310 270F0008 */ addiu $t7, $t8, 8 +/* 0ABE44 7F077314 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABE48 7F077318 AF190000 */ sw $t9, ($t8) +/* 0ABE4C 7F07731C 8FAE0144 */ lw $t6, 0x144($sp) +/* 0ABE50 7F077320 10000008 */ b .L7F077344 +/* 0ABE54 7F077324 AF0E0004 */ sw $t6, 4($t8) +.L7F077328: +/* 0ABE58 7F077328 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABE5C 7F07732C 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 # +/* 0ABE60 7F077330 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 #gDPSetTextureLUT() +/* 0ABE64 7F077334 270F0008 */ addiu $t7, $t8, 8 +/* 0ABE68 7F077338 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABE6C 7F07733C AF000004 */ sw $zero, 4($t8) +/* 0ABE70 7F077340 AF190000 */ sw $t9, ($t8) +.L7F077344: +/* 0ABE74 7F077344 8FB0016C */ lw $s0, 0x16c($sp) +/* 0ABE78 7F077348 324F0003 */ andi $t7, $s2, 3 +/* 0ABE7C 7F07734C 000FCCC0 */ sll $t9, $t7, 0x13 +/* 0ABE80 7F077350 26180008 */ addiu $t8, $s0, 8 +/* 0ABE84 7F077354 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABE88 7F077358 8FB80134 */ lw $t8, 0x134($sp) +/* 0ABE8C 7F07735C 01797025 */ or $t6, $t3, $t9 +/* 0ABE90 7F077360 02802025 */ move $a0, $s4 +/* 0ABE94 7F077364 330F01FF */ andi $t7, $t8, 0x1ff +/* 0ABE98 7F077368 000FCA40 */ sll $t9, $t7, 9 +/* 0ABE9C 7F07736C 01D9C025 */ or $t8, $t6, $t9 +/* 0ABEA0 7F077370 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0ABEA4 7F077374 AE180000 */ sw $t8, ($s0) +/* 0ABEA8 7F077378 02A02025 */ move $a0, $s5 +/* 0ABEAC 7F07737C 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0ABEB0 7F077380 AFA20058 */ sw $v0, 0x58($sp) +/* 0ABEB4 7F077384 92F9000A */ lbu $t9, 0xa($s7) +/* 0ABEB8 7F077388 304F000F */ andi $t7, $v0, 0xf +/* 0ABEBC 7F07738C 8FA70058 */ lw $a3, 0x58($sp) +/* 0ABEC0 7F077390 000F7100 */ sll $t6, $t7, 4 +/* 0ABEC4 7F077394 33380003 */ andi $t8, $t9, 3 +/* 0ABEC8 7F077398 00187C80 */ sll $t7, $t8, 0x12 +/* 0ABECC 7F07739C 01CFC825 */ or $t9, $t6, $t7 +/* 0ABED0 7F0773A0 30F8000F */ andi $t8, $a3, 0xf +/* 0ABED4 7F0773A4 00187380 */ sll $t6, $t8, 0xe +/* 0ABED8 7F0773A8 92F80009 */ lbu $t8, 9($s7) +/* 0ABEDC 7F0773AC 032E7825 */ or $t7, $t9, $t6 +/* 0ABEE0 7F0773B0 8FA50180 */ lw $a1, 0x180($sp) +/* 0ABEE4 7F0773B4 33190003 */ andi $t9, $t8, 3 +/* 0ABEE8 7F0773B8 00197200 */ sll $t6, $t9, 8 +/* 0ABEEC 7F0773BC 01EEC025 */ or $t8, $t7, $t6 +/* 0ABEF0 7F0773C0 AE180004 */ sw $t8, 4($s0) +/* 0ABEF4 7F0773C4 8FA3016C */ lw $v1, 0x16c($sp) +/* 0ABEF8 7F0773C8 30A40FFF */ andi $a0, $a1, 0xfff +/* 0ABEFC 7F0773CC 00047300 */ sll $t6, $a0, 0xc +/* 0ABF00 7F0773D0 3C01F200 */ lui $at, 0xf200 +/* 0ABF04 7F0773D4 246F0008 */ addiu $t7, $v1, 8 +/* 0ABF08 7F0773D8 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABF0C 7F0773DC 01C1C025 */ or $t8, $t6, $at +/* 0ABF10 7F0773E0 0304C825 */ or $t9, $t8, $a0 +/* 0ABF14 7F0773E4 26AFFFFF */ addiu $t7, $s5, -1 +/* 0ABF18 7F0773E8 000F7080 */ sll $t6, $t7, 2 +/* 0ABF1C 7F0773EC 01C5C021 */ addu $t8, $t6, $a1 +/* 0ABF20 7F0773F0 AC790000 */ sw $t9, ($v1) +/* 0ABF24 7F0773F4 33190FFF */ andi $t9, $t8, 0xfff +/* 0ABF28 7F0773F8 268EFFFF */ addiu $t6, $s4, -1 +/* 0ABF2C 7F0773FC 000EC080 */ sll $t8, $t6, 2 +/* 0ABF30 7F077400 00197B00 */ sll $t7, $t9, 0xc +/* 0ABF34 7F077404 0305C821 */ addu $t9, $t8, $a1 +/* 0ABF38 7F077408 332E0FFF */ andi $t6, $t9, 0xfff +/* 0ABF3C 7F07740C 01EEC025 */ or $t8, $t7, $t6 +/* 0ABF40 7F077410 100001DB */ b .L7F077B80 +/* 0ABF44 7F077414 AC780004 */ sw $t8, 4($v1) +/* 0ABF48 7F077418 AFA000D0 */ sw $zero, 0xd0($sp) +.L7F07741C: +/* 0ABF4C 7F07741C 1040000B */ beqz $v0, .L7F07744C +/* 0ABF50 7F077420 AFA300CC */ sw $v1, 0xcc($sp) +/* 0ABF54 7F077424 8C430008 */ lw $v1, 8($v0) +/* 0ABF58 7F077428 306E0003 */ andi $t6, $v1, 3 +/* 0ABF5C 7F07742C A3AE00CA */ sb $t6, 0xca($sp) +/* 0ABF60 7F077430 8C52000C */ lw $s2, 0xc($v0) +/* 0ABF64 7F077434 00038EC0 */ sll $s1, $v1, 0x1b +/* 0ABF68 7F077438 0011CF42 */ srl $t9, $s1, 0x1d +/* 0ABF6C 7F07743C 0012C782 */ srl $t8, $s2, 0x1e +/* 0ABF70 7F077440 333100FF */ andi $s1, $t9, 0xff +/* 0ABF74 7F077444 10000005 */ b .L7F07745C +/* 0ABF78 7F077448 00189380 */ sll $s2, $t8, 0xe +.L7F07744C: +/* 0ABF7C 7F07744C 92EF0008 */ lbu $t7, 8($s7) +/* 0ABF80 7F077450 92F10007 */ lbu $s1, 7($s7) +/* 0ABF84 7F077454 8FB200C4 */ lw $s2, 0xc4($sp) +/* 0ABF88 7F077458 A3AF00CA */ sb $t7, 0xca($sp) +.L7F07745C: +/* 0ABF8C 7F07745C 1040000B */ beqz $v0, .L7F07748C +/* 0ABF90 7F077460 93B300CA */ lbu $s3, 0xca($sp) +/* 0ABF94 7F077464 8C4E000C */ lw $t6, 0xc($v0) +/* 0ABF98 7F077468 02C02025 */ move $a0, $s6 +/* 0ABF9C 7F07746C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0ABFA0 7F077470 000EC880 */ sll $t9, $t6, 2 +/* 0ABFA4 7F077474 07210005 */ bgez $t9, .L7F07748C +/* 0ABFA8 7F077478 00000000 */ nop +/* 0ABFAC 7F07747C 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 0ABFB0 7F077480 27A600BC */ addiu $a2, $sp, 0xbc +/* 0ABFB4 7F077484 1000002C */ b .L7F077538 +/* 0ABFB8 7F077488 27A4016C */ addiu $a0, $sp, 0x16c +.L7F07748C: +/* 0ABFBC 7F07748C 12600022 */ beqz $s3, .L7F077518 +/* 0ABFC0 7F077490 24180002 */ li $t8, 2 +/* 0ABFC4 7F077494 24010001 */ li $at, 1 +/* 0ABFC8 7F077498 12610017 */ beq $s3, $at, .L7F0774F8 +/* 0ABFCC 7F07749C 240F0002 */ li $t7, 2 +/* 0ABFD0 7F0774A0 24010002 */ li $at, 2 +/* 0ABFD4 7F0774A4 1261000C */ beq $s3, $at, .L7F0774D8 +/* 0ABFD8 7F0774A8 24180002 */ li $t8, 2 +/* 0ABFDC 7F0774AC 24010003 */ li $at, 3 +/* 0ABFE0 7F0774B0 16610020 */ bne $s3, $at, .L7F077534 +/* 0ABFE4 7F0774B4 240F0003 */ li $t7, 3 +/* 0ABFE8 7F0774B8 AFAF00C0 */ sw $t7, 0xc0($sp) +/* 0ABFEC 7F0774BC 02A02025 */ move $a0, $s5 +/* 0ABFF0 7F0774C0 02802825 */ move $a1, $s4 +/* 0ABFF4 7F0774C4 0FC1DA4A */ jal sub_GAME_7F076928 +/* 0ABFF8 7F0774C8 8FA600CC */ lw $a2, 0xcc($sp) +/* 0ABFFC 7F0774CC 244EFFFF */ addiu $t6, $v0, -1 +/* 0AC000 7F0774D0 10000018 */ b .L7F077534 +/* 0AC004 7F0774D4 AFAE00BC */ sw $t6, 0xbc($sp) +.L7F0774D8: +/* 0AC008 7F0774D8 AFB800C0 */ sw $t8, 0xc0($sp) +/* 0AC00C 7F0774DC 02A02025 */ move $a0, $s5 +/* 0AC010 7F0774E0 02802825 */ move $a1, $s4 +/* 0AC014 7F0774E4 0FC1DA2E */ jal sub_GAME_7F0768B8 +/* 0AC018 7F0774E8 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC01C 7F0774EC 2459FFFF */ addiu $t9, $v0, -1 +/* 0AC020 7F0774F0 10000010 */ b .L7F077534 +/* 0AC024 7F0774F4 AFB900BC */ sw $t9, 0xbc($sp) +.L7F0774F8: +/* 0AC028 7F0774F8 AFAF00C0 */ sw $t7, 0xc0($sp) +/* 0AC02C 7F0774FC 02A02025 */ move $a0, $s5 +/* 0AC030 7F077500 02802825 */ move $a1, $s4 +/* 0AC034 7F077504 0FC1DA12 */ jal sub_GAME_7F076848 +/* 0AC038 7F077508 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC03C 7F07750C 244EFFFF */ addiu $t6, $v0, -1 +/* 0AC040 7F077510 10000008 */ b .L7F077534 +/* 0AC044 7F077514 AFAE00BC */ sw $t6, 0xbc($sp) +.L7F077518: +/* 0AC048 7F077518 AFB800C0 */ sw $t8, 0xc0($sp) +/* 0AC04C 7F07751C 02A02025 */ move $a0, $s5 +/* 0AC050 7F077520 02802825 */ move $a1, $s4 +/* 0AC054 7F077524 0FC1D9F6 */ jal sub_GAME_7F0767D8 +/* 0AC058 7F077528 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC05C 7F07752C 2459FFFF */ addiu $t9, $v0, -1 +/* 0AC060 7F077530 AFB900BC */ sw $t9, 0xbc($sp) +.L7F077534: +/* 0AC064 7F077534 27A4016C */ addiu $a0, $sp, 0x16c +.L7F077538: +/* 0AC068 7F077538 8FA50178 */ lw $a1, 0x178($sp) +/* 0AC06C 7F07753C 24060002 */ li $a2, 2 +/* 0AC070 7F077540 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0AC074 7F077544 02003825 */ move $a3, $s0 +/* 0AC078 7F077548 2A010002 */ slti $at, $s0, 2 +/* 0AC07C 7F07754C 14200012 */ bnez $at, .L7F077598 +/* 0AC080 7F077550 02204025 */ move $t0, $s1 +/* 0AC084 7F077554 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AC088 7F077558 321800FF */ andi $t8, $s0, 0xff +/* 0AC08C 7F07755C 0018CC00 */ sll $t9, $t8, 0x10 +/* 0AC090 7F077560 244E0008 */ addiu $t6, $v0, 8 +/* 0AC094 7F077564 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC098 7F077568 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0AC09C 7F07756C 3C01BB00 */ lui $at, 0xbb00 +/* 0AC0A0 7F077570 03217825 */ or $t7, $t9, $at +/* 0AC0A4 7F077574 25D8FFFF */ addiu $t8, $t6, -1 +/* 0AC0A8 7F077578 33190007 */ andi $t9, $t8, 7 +/* 0AC0AC 7F07757C 001972C0 */ sll $t6, $t9, 0xb +/* 0AC0B0 7F077580 01EEC025 */ or $t8, $t7, $t6 +/* 0AC0B4 7F077584 37190001 */ ori $t9, $t8, 1 +/* 0AC0B8 7F077588 240FFFFF */ li $t7, -1 +/* 0AC0BC 7F07758C AC4F0004 */ sw $t7, 4($v0) +/* 0AC0C0 7F077590 1000000E */ b .L7F0775CC +/* 0AC0C4 7F077594 AC590000 */ sw $t9, ($v0) +.L7F077598: +/* 0AC0C8 7F077598 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AC0CC 7F07759C 8FB900CC */ lw $t9, 0xcc($sp) +/* 0AC0D0 7F0775A0 3C01BB00 */ lui $at, 0xbb00 +/* 0AC0D4 7F0775A4 24580008 */ addiu $t8, $v0, 8 +/* 0AC0D8 7F0775A8 272FFFFF */ addiu $t7, $t9, -1 +/* 0AC0DC 7F0775AC 31EE0007 */ andi $t6, $t7, 7 +/* 0AC0E0 7F0775B0 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC0E4 7F0775B4 000EC2C0 */ sll $t8, $t6, 0xb +/* 0AC0E8 7F0775B8 0301C825 */ or $t9, $t8, $at +/* 0AC0EC 7F0775BC 372F0001 */ ori $t7, $t9, 1 +/* 0AC0F0 7F0775C0 240EFFFF */ li $t6, -1 +/* 0AC0F4 7F0775C4 AC4E0004 */ sw $t6, 4($v0) +/* 0AC0F8 7F0775C8 AC4F0000 */ sw $t7, ($v0) +.L7F0775CC: +/* 0AC0FC 7F0775CC 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC100 7F0775D0 3C0FBA00 */ lui $t7, (0xBA001001 >> 16) # lui $t7, 0xba00 # +/* 0AC104 7F0775D4 35EF1001 */ ori $t7, (0xBA001001 & 0xFFFF) # ori $t7, $t7, 0x1001 # +/* 0AC108 7F0775D8 27190008 */ addiu $t9, $t8, 8 +/* 0AC10C 7F0775DC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC110 7F0775E0 3C0E0001 */ lui $t6, 1 +/* 0AC114 7F0775E4 AF0E0004 */ sw $t6, 4($t8) +/* 0AC118 7F0775E8 1220000B */ beqz $s1, .L7F077618 +/* 0AC11C 7F0775EC AF0F0000 */ sw $t7, ($t8) #gDPSetTextureLOD(G_TL_LOD) +/* 0AC120 7F0775F0 24010002 */ li $at, 2 +/* 0AC124 7F0775F4 11010024 */ beq $t0, $at, .L7F077688 +/* 0AC128 7F0775F8 24010003 */ li $at, 3 +/* 0AC12C 7F0775FC 11010010 */ beq $t0, $at, .L7F077640 +/* 0AC130 7F077600 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC134 7F077604 24010004 */ li $at, 4 +/* 0AC138 7F077608 11010016 */ beq $t0, $at, .L7F077664 +/* 0AC13C 7F07760C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC140 7F077610 10000037 */ b .L7F0776F0 +/* 0AC144 7F077614 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077618: +/* 0AC148 7F077618 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC14C 7F07761C 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 # +/* 0AC150 7F077620 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 # +/* 0AC154 7F077624 27190008 */ addiu $t9, $t8, 8 +/* 0AC158 7F077628 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC15C 7F07762C 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff # +/* 0AC160 7F077630 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 # +/* 0AC164 7F077634 AF0F0000 */ sw $t7, ($t8) +/* 0AC168 7F077638 1000002C */ b .L7F0776EC +/* 0AC16C 7F07763C AF0E0004 */ sw $t6, 4($t8) #gDPSetCombineMode() +.L7F077640: +/* 0AC170 7F077640 27190008 */ addiu $t9, $t8, 8 +/* 0AC174 7F077644 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0AC178 7F077648 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 +/* 0AC17C 7F07764C 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff +/* 0AC180 7F077650 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0AC184 7F077654 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC188 7F077658 AF0E0004 */ sw $t6, 4($t8) +/* 0AC18C 7F07765C 10000023 */ b .L7F0776EC +/* 0AC190 7F077660 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F077664: +/* 0AC194 7F077664 27190008 */ addiu $t9, $t8, 8 +/* 0AC198 7F077668 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0AC19C 7F07766C 3C0E1FFC */ lui $t6, (0x1FFC93FC >> 16) # lui $t6, 0x1ffc +/* 0AC1A0 7F077670 35CE93FC */ ori $t6, (0x1FFC93FC & 0xFFFF) # ori $t6, $t6, 0x93fc +/* 0AC1A4 7F077674 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0AC1A8 7F077678 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC1AC 7F07767C AF0E0004 */ sw $t6, 4($t8) +/* 0AC1B0 7F077680 1000001A */ b .L7F0776EC +/* 0AC1B4 7F077684 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F077688: +/* 0AC1B8 7F077688 34018000 */ li $at, 32768 +/* 0AC1BC 7F07768C 12410006 */ beq $s2, $at, .L7F0776A8 +/* 0AC1C0 7F077690 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC1C4 7F077694 3401C000 */ li $at, 49152 +/* 0AC1C8 7F077698 1241000C */ beq $s2, $at, .L7F0776CC +/* 0AC1CC 7F07769C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC1D0 7F0776A0 10000013 */ b .L7F0776F0 +/* 0AC1D4 7F0776A4 8FA2016C */ lw $v0, 0x16c($sp) +.L7F0776A8: +/* 0AC1D8 7F0776A8 27190008 */ addiu $t9, $t8, 8 +/* 0AC1DC 7F0776AC 3C0FFC12 */ lui $t7, (0xFC121824 >> 16) # lui $t7, 0xfc12 +/* 0AC1E0 7F0776B0 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 +/* 0AC1E4 7F0776B4 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0AC1E8 7F0776B8 35EF1824 */ ori $t7, (0xFC121824 & 0xFFFF) # ori $t7, $t7, 0x1824 +/* 0AC1EC 7F0776BC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC1F0 7F0776C0 AF0E0004 */ sw $t6, 4($t8) +/* 0AC1F4 7F0776C4 10000009 */ b .L7F0776EC +/* 0AC1F8 7F0776C8 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F0776CC: +/* 0AC1FC 7F0776CC 27190008 */ addiu $t9, $t8, 8 +/* 0AC200 7F0776D0 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC204 7F0776D4 3C0FFC12 */ lui $t7, (0xFC121824 >> 16) # lui $t7, 0xfc12 +/* 0AC208 7F0776D8 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 +/* 0AC20C 7F0776DC 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0AC210 7F0776E0 35EF1824 */ ori $t7, (0xFC121824 & 0xFFFF) # ori $t7, $t7, 0x1824 +/* 0AC214 7F0776E4 AF0F0000 */ sw $t7, ($t8) +/* 0AC218 7F0776E8 AF0E0004 */ sw $t6, 4($t8) #gDPSetCombineMode() +.L7F0776EC: +/* 0AC21C 7F0776EC 8FA2016C */ lw $v0, 0x16c($sp) +.L7F0776F0: +/* 0AC220 7F0776F0 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0AC224 7F0776F4 32230007 */ andi $v1, $s1, 7 +/* 0AC228 7F0776F8 00037D40 */ sll $t7, $v1, 0x15 +/* 0AC22C 7F0776FC 24590008 */ addiu $t9, $v0, 8 +/* 0AC230 7F077700 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC234 7F077704 3C01FD00 */ lui $at, 0xfd00 +/* 0AC238 7F077708 01E17025 */ or $t6, $t7, $at +/* 0AC23C 7F07770C 01E01825 */ move $v1, $t7 +/* 0AC240 7F077710 33190003 */ andi $t9, $t8, 3 +/* 0AC244 7F077714 00197CC0 */ sll $t7, $t9, 0x13 +/* 0AC248 7F077718 01CFC025 */ or $t8, $t6, $t7 +/* 0AC24C 7F07771C AC580000 */ sw $t8, ($v0) +/* 0AC250 7F077720 8EF90000 */ lw $t9, ($s7) +/* 0AC254 7F077724 3C01F500 */ lui $at, 0xf500 +/* 0AC258 7F077728 00614825 */ or $t1, $v1, $at +/* 0AC25C 7F07772C AC590004 */ sw $t9, 4($v0) +/* 0AC260 7F077730 8FA4016C */ lw $a0, 0x16c($sp) +/* 0AC264 7F077734 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0AC268 7F077738 3C0A0700 */ lui $t2, 0x700 +/* 0AC26C 7F07773C 248F0008 */ addiu $t7, $a0, 8 +/* 0AC270 7F077740 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC274 7F077744 33190003 */ andi $t9, $t8, 3 +/* 0AC278 7F077748 001974C0 */ sll $t6, $t9, 0x13 +/* 0AC27C 7F07774C 012E7825 */ or $t7, $t1, $t6 +/* 0AC280 7F077750 AC8F0000 */ sw $t7, ($a0) +/* 0AC284 7F077754 AC8A0004 */ sw $t2, 4($a0) +/* 0AC288 7F077758 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC28C 7F07775C 3C0DE600 */ lui $t5, 0xe600 +/* 0AC290 7F077760 240707FF */ li $a3, 2047 +/* 0AC294 7F077764 27190008 */ addiu $t9, $t8, 8 +/* 0AC298 7F077768 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC29C 7F07776C AF000004 */ sw $zero, 4($t8) +/* 0AC2A0 7F077770 AF0D0000 */ sw $t5, ($t8) +/* 0AC2A4 7F077774 8FA6016C */ lw $a2, 0x16c($sp) +/* 0AC2A8 7F077778 3C18F300 */ lui $t8, 0xf300 +/* 0AC2AC 7F07777C 24CF0008 */ addiu $t7, $a2, 8 +/* 0AC2B0 7F077780 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC2B4 7F077784 ACD80000 */ sw $t8, ($a2) +/* 0AC2B8 7F077788 8FB900BC */ lw $t9, 0xbc($sp) +/* 0AC2BC 7F07778C 2B2107FF */ slti $at, $t9, 0x7ff +/* 0AC2C0 7F077790 10200003 */ beqz $at, .L7F0777A0 +/* 0AC2C4 7F077794 00000000 */ nop +/* 0AC2C8 7F077798 10000001 */ b .L7F0777A0 +/* 0AC2CC 7F07779C 03203825 */ move $a3, $t9 +.L7F0777A0: +/* 0AC2D0 7F0777A0 30EE0FFF */ andi $t6, $a3, 0xfff +/* 0AC2D4 7F0777A4 000E7B00 */ sll $t7, $t6, 0xc +/* 0AC2D8 7F0777A8 01EAC025 */ or $t8, $t7, $t2 +/* 0AC2DC 7F0777AC ACD80004 */ sw $t8, 4($a2) +/* 0AC2E0 7F0777B0 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC2E4 7F0777B4 3C0CE700 */ lui $t4, 0xe700 +/* 0AC2E8 7F0777B8 24010002 */ li $at, 2 +/* 0AC2EC 7F0777BC 272E0008 */ addiu $t6, $t9, 8 +/* 0AC2F0 7F0777C0 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC2F4 7F0777C4 AF200004 */ sw $zero, 4($t9) +/* 0AC2F8 7F0777C8 15010038 */ bne $t0, $at, .L7F0778AC +/* 0AC2FC 7F0777CC AF2C0000 */ sw $t4, ($t9) +/* 0AC300 7F0777D0 8FA300BC */ lw $v1, 0xbc($sp) +/* 0AC304 7F0777D4 92CF000A */ lbu $t7, 0xa($s6) +/* 0AC308 7F0777D8 241803FF */ li $t8, 1023 +/* 0AC30C 7F0777DC 24660001 */ addiu $a2, $v1, 1 +/* 0AC310 7F0777E0 030F1023 */ subu $v0, $t8, $t7 +/* 0AC314 7F0777E4 0046082B */ sltu $at, $v0, $a2 +/* 0AC318 7F0777E8 10200003 */ beqz $at, .L7F0777F8 +/* 0AC31C 7F0777EC 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC320 7F0777F0 10000002 */ b .L7F0777FC +/* 0AC324 7F0777F4 00403825 */ move $a3, $v0 +.L7F0777F8: +/* 0AC328 7F0777F8 00003825 */ move $a3, $zero +.L7F0777FC: +/* 0AC32C 7F0777FC 272E0008 */ addiu $t6, $t9, 8 +/* 0AC330 7F077800 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC334 7F077804 3C18F500 */ lui $t8, (0xF5000100 >> 16) # lui $t8, 0xf500 # +/* 0AC338 7F077808 37180100 */ ori $t8, (0xF5000100 & 0xFFFF) # ori $t8, $t8, 0x100 #gDPSetTile() +/* 0AC33C 7F07780C AF380000 */ sw $t8, ($t9) +/* 0AC340 7F077810 AF2A0004 */ sw $t2, 4($t9) +/* 0AC344 7F077814 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AC348 7F077818 00C73023 */ subu $a2, $a2, $a3 +/* 0AC34C 7F07781C 30E503FF */ andi $a1, $a3, 0x3ff +/* 0AC350 7F077820 25F90008 */ addiu $t9, $t7, 8 +/* 0AC354 7F077824 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC358 7F077828 ADE00004 */ sw $zero, 4($t7) +/* 0AC35C 7F07782C ADED0000 */ sw $t5, ($t7) +/* 0AC360 7F077830 8FA4016C */ lw $a0, 0x16c($sp) +/* 0AC364 7F077834 30D903FF */ andi $t9, $a2, 0x3ff +/* 0AC368 7F077838 00197380 */ sll $t6, $t9, 0xe +/* 0AC36C 7F07783C 24980008 */ addiu $t8, $a0, 8 +/* 0AC370 7F077840 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC374 7F077844 00057880 */ sll $t7, $a1, 2 +/* 0AC378 7F077848 3C01F000 */ lui $at, 0xf000 +/* 0AC37C 7F07784C 01C1C025 */ or $t8, $t6, $at +/* 0AC380 7F077850 01E02825 */ move $a1, $t7 +/* 0AC384 7F077854 030F7825 */ or $t7, $t8, $t7 +/* 0AC388 7F077858 AC8F0000 */ sw $t7, ($a0) +/* 0AC38C 7F07785C 92D9000A */ lbu $t9, 0xa($s6) +/* 0AC390 7F077860 03267021 */ addu $t6, $t9, $a2 +/* 0AC394 7F077864 31D803FF */ andi $t8, $t6, 0x3ff +/* 0AC398 7F077868 00187B80 */ sll $t7, $t8, 0xe +/* 0AC39C 7F07786C 01EAC825 */ or $t9, $t7, $t2 +/* 0AC3A0 7F077870 03257025 */ or $t6, $t9, $a1 +/* 0AC3A4 7F077874 AC8E0004 */ sw $t6, 4($a0) +/* 0AC3A8 7F077878 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC3AC 7F07787C 270F0008 */ addiu $t7, $t8, 8 +/* 0AC3B0 7F077880 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC3B4 7F077884 AF000004 */ sw $zero, 4($t8) +/* 0AC3B8 7F077888 AF0C0000 */ sw $t4, ($t8) +/* 0AC3BC 7F07788C 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC3C0 7F077890 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 # +/* 0AC3C4 7F077894 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 #gDPSetTextureLUT() +/* 0AC3C8 7F077898 272E0008 */ addiu $t6, $t9, 8 +/* 0AC3CC 7F07789C AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC3D0 7F0778A0 AF320004 */ sw $s2, 4($t9) +/* 0AC3D4 7F0778A4 10000008 */ b .L7F0778C8 +/* 0AC3D8 7F0778A8 AF380000 */ sw $t8, ($t9) +.L7F0778AC: +/* 0AC3DC 7F0778AC 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AC3E0 7F0778B0 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 # +/* 0AC3E4 7F0778B4 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 #gDPSetTextureLUT() +/* 0AC3E8 7F0778B8 25F90008 */ addiu $t9, $t7, 8 +/* 0AC3EC 7F0778BC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC3F0 7F0778C0 ADE00004 */ sw $zero, 4($t7) +/* 0AC3F4 7F0778C4 ADEE0000 */ sw $t6, ($t7) +.L7F0778C8: +/* 0AC3F8 7F0778C8 8FB800CC */ lw $t8, 0xcc($sp) +/* 0AC3FC 7F0778CC 8FA70180 */ lw $a3, 0x180($sp) +/* 0AC400 7F0778D0 00008825 */ move $s1, $zero +/* 0AC404 7F0778D4 1B0000AA */ blez $t8, .L7F077B80 +/* 0AC408 7F0778D8 30E40FFF */ andi $a0, $a3, 0xfff +/* 0AC40C 7F0778DC 93B300CA */ lbu $s3, 0xca($sp) +/* 0AC410 7F0778E0 00047B00 */ sll $t7, $a0, 0xc +/* 0AC414 7F0778E4 3C01F200 */ lui $at, 0xf200 +/* 0AC418 7F0778E8 01E1C825 */ or $t9, $t7, $at +/* 0AC41C 7F0778EC 03247025 */ or $t6, $t9, $a0 +/* 0AC420 7F0778F0 326F0003 */ andi $t7, $s3, 3 +/* 0AC424 7F0778F4 000FCCC0 */ sll $t9, $t7, 0x13 +/* 0AC428 7F0778F8 01399025 */ or $s2, $t1, $t9 +/* 0AC42C 7F0778FC AFAE0050 */ sw $t6, 0x50($sp) +/* 0AC430 7F077900 8FB00064 */ lw $s0, 0x64($sp) +.L7F077904: +/* 0AC434 7F077904 1A200018 */ blez $s1, .L7F077968 +/* 0AC438 7F077908 8FA70180 */ lw $a3, 0x180($sp) +/* 0AC43C 7F07790C 12C0000F */ beqz $s6, .L7F07794C +/* 0AC440 7F077910 2AA10002 */ slti $at, $s5, 2 +/* 0AC444 7F077914 8ECE000C */ lw $t6, 0xc($s6) +/* 0AC448 7F077918 02C02025 */ move $a0, $s6 +/* 0AC44C 7F07791C 000E7880 */ sll $t7, $t6, 2 +/* 0AC450 7F077920 05E1000A */ bgez $t7, .L7F07794C +/* 0AC454 7F077924 00000000 */ nop +/* 0AC458 7F077928 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 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 +/* 0AC46C 7F07793C 02202825 */ move $a1, $s1 +/* 0AC470 7F077940 0040A025 */ move $s4, $v0 +/* 0AC474 7F077944 10000008 */ b .L7F077968 +/* 0AC478 7F077948 8FA70180 */ lw $a3, 0x180($sp) +.L7F07794C: +/* 0AC47C 7F07794C 14200002 */ bnez $at, .L7F077958 +/* 0AC480 7F077950 0015C843 */ sra $t9, $s5, 1 +/* 0AC484 7F077954 0320A825 */ move $s5, $t9 +.L7F077958: +/* 0AC488 7F077958 2A810002 */ slti $at, $s4, 2 +/* 0AC48C 7F07795C 14200002 */ bnez $at, .L7F077968 +/* 0AC490 7F077960 00147043 */ sra $t6, $s4, 1 +/* 0AC494 7F077964 01C0A025 */ move $s4, $t6 +.L7F077968: +/* 0AC498 7F077968 26B8FFFF */ addiu $t8, $s5, -1 +/* 0AC49C 7F07796C 00187880 */ sll $t7, $t8, 2 +/* 0AC4A0 7F077970 01E7C821 */ addu $t9, $t7, $a3 +/* 0AC4A4 7F077974 332E0FFF */ andi $t6, $t9, 0xfff +/* 0AC4A8 7F077978 000EC300 */ sll $t8, $t6, 0xc +/* 0AC4AC 7F07797C 268FFFFF */ addiu $t7, $s4, -1 +/* 0AC4B0 7F077980 000FC880 */ sll $t9, $t7, 2 +/* 0AC4B4 7F077984 03277021 */ addu $t6, $t9, $a3 +/* 0AC4B8 7F077988 AFB80054 */ sw $t8, 0x54($sp) +/* 0AC4BC 7F07798C 31D80FFF */ andi $t8, $t6, 0xfff +/* 0AC4C0 7F077990 12600036 */ beqz $s3, .L7F077A6C +/* 0AC4C4 7F077994 AFB8004C */ sw $t8, 0x4c($sp) +/* 0AC4C8 7F077998 24010001 */ li $at, 1 +/* 0AC4CC 7F07799C 12610026 */ beq $s3, $at, .L7F077A38 +/* 0AC4D0 7F0779A0 24010002 */ li $at, 2 +/* 0AC4D4 7F0779A4 12610017 */ beq $s3, $at, .L7F077A04 +/* 0AC4D8 7F0779A8 24010003 */ li $at, 3 +/* 0AC4DC 7F0779AC 52610009 */ beql $s3, $at, .L7F0779D4 +/* 0AC4E0 7F0779B0 26B00003 */ addiu $s0, $s5, 3 +/* 0AC4E4 7F0779B4 02140019 */ multu $s0, $s4 +/* 0AC4E8 7F0779B8 320F01FF */ andi $t7, $s0, 0x1ff +/* 0AC4EC 7F0779BC 000FCA40 */ sll $t9, $t7, 9 +/* 0AC4F0 7F0779C0 02591025 */ or $v0, $s2, $t9 +/* 0AC4F4 7F0779C4 00003012 */ mflo $a2 +/* 0AC4F8 7F0779C8 10000036 */ b .L7F077AA4 +/* 0AC4FC 7F0779CC 8FA3016C */ lw $v1, 0x16c($sp) +/* 0AC500 7F0779D0 26B00003 */ addiu $s0, $s5, 3 +.L7F0779D4: +/* 0AC504 7F0779D4 06010003 */ bgez $s0, .L7F0779E4 +/* 0AC508 7F0779D8 00107083 */ sra $t6, $s0, 2 +/* 0AC50C 7F0779DC 26010003 */ addiu $at, $s0, 3 +/* 0AC510 7F0779E0 00017083 */ sra $t6, $at, 2 +.L7F0779E4: +/* 0AC514 7F0779E4 01D40019 */ multu $t6, $s4 +/* 0AC518 7F0779E8 31D801FF */ andi $t8, $t6, 0x1ff +/* 0AC51C 7F0779EC 00187A40 */ sll $t7, $t8, 9 +/* 0AC520 7F0779F0 01C08025 */ move $s0, $t6 +/* 0AC524 7F0779F4 024F1025 */ or $v0, $s2, $t7 +/* 0AC528 7F0779F8 00003012 */ mflo $a2 +/* 0AC52C 7F0779FC 10000029 */ b .L7F077AA4 +/* 0AC530 7F077A00 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A04: +/* 0AC534 7F077A04 26B00003 */ addiu $s0, $s5, 3 +/* 0AC538 7F077A08 06010003 */ bgez $s0, .L7F077A18 +/* 0AC53C 7F077A0C 0010C883 */ sra $t9, $s0, 2 +/* 0AC540 7F077A10 26010003 */ addiu $at, $s0, 3 +/* 0AC544 7F077A14 0001C883 */ sra $t9, $at, 2 +.L7F077A18: +/* 0AC548 7F077A18 03340019 */ multu $t9, $s4 +/* 0AC54C 7F077A1C 332E01FF */ andi $t6, $t9, 0x1ff +/* 0AC550 7F077A20 000EC240 */ sll $t8, $t6, 9 +/* 0AC554 7F077A24 03208025 */ move $s0, $t9 +/* 0AC558 7F077A28 02581025 */ or $v0, $s2, $t8 +/* 0AC55C 7F077A2C 00003012 */ mflo $a2 +/* 0AC560 7F077A30 1000001C */ b .L7F077AA4 +/* 0AC564 7F077A34 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A38: +/* 0AC568 7F077A38 26B00007 */ addiu $s0, $s5, 7 +/* 0AC56C 7F077A3C 06010003 */ bgez $s0, .L7F077A4C +/* 0AC570 7F077A40 001078C3 */ sra $t7, $s0, 3 +/* 0AC574 7F077A44 26010007 */ addiu $at, $s0, 7 +/* 0AC578 7F077A48 000178C3 */ sra $t7, $at, 3 +.L7F077A4C: +/* 0AC57C 7F077A4C 01F40019 */ multu $t7, $s4 +/* 0AC580 7F077A50 31F901FF */ andi $t9, $t7, 0x1ff +/* 0AC584 7F077A54 00197240 */ sll $t6, $t9, 9 +/* 0AC588 7F077A58 01E08025 */ move $s0, $t7 +/* 0AC58C 7F077A5C 024E1025 */ or $v0, $s2, $t6 +/* 0AC590 7F077A60 00003012 */ mflo $a2 +/* 0AC594 7F077A64 1000000F */ b .L7F077AA4 +/* 0AC598 7F077A68 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A6C: +/* 0AC59C 7F077A6C 26B0000F */ addiu $s0, $s5, 0xf +/* 0AC5A0 7F077A70 06010003 */ bgez $s0, .L7F077A80 +/* 0AC5A4 7F077A74 0010C103 */ sra $t8, $s0, 4 +/* 0AC5A8 7F077A78 2601000F */ addiu $at, $s0, 0xf +/* 0AC5AC 7F077A7C 0001C103 */ sra $t8, $at, 4 +.L7F077A80: +/* 0AC5B0 7F077A80 03140019 */ multu $t8, $s4 +/* 0AC5B4 7F077A84 330F01FF */ andi $t7, $t8, 0x1ff +/* 0AC5B8 7F077A88 000FCA40 */ sll $t9, $t7, 9 +/* 0AC5BC 7F077A8C 03008025 */ move $s0, $t8 +/* 0AC5C0 7F077A90 02591025 */ or $v0, $s2, $t9 +/* 0AC5C4 7F077A94 00003012 */ mflo $a2 +/* 0AC5C8 7F077A98 00000000 */ nop +/* 0AC5CC 7F077A9C 00000000 */ nop +/* 0AC5D0 7F077AA0 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077AA4: +/* 0AC5D4 7F077AA4 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0AC5D8 7F077AA8 02802025 */ move $a0, $s4 +/* 0AC5DC 7F077AAC 24780008 */ addiu $t8, $v1, 8 +/* 0AC5E0 7F077AB0 31F901FF */ andi $t9, $t7, 0x1ff +/* 0AC5E4 7F077AB4 00597025 */ or $t6, $v0, $t9 +/* 0AC5E8 7F077AB8 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC5EC 7F077ABC AC6E0000 */ sw $t6, ($v1) +/* 0AC5F0 7F077AC0 AFA6003C */ sw $a2, 0x3c($sp) +/* 0AC5F4 7F077AC4 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0AC5F8 7F077AC8 AFA30060 */ sw $v1, 0x60($sp) +/* 0AC5FC 7F077ACC 02A02025 */ move $a0, $s5 +/* 0AC600 7F077AD0 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0AC604 7F077AD4 AFA20058 */ sw $v0, 0x58($sp) +/* 0AC608 7F077AD8 32230007 */ andi $v1, $s1, 7 +/* 0AC60C 7F077ADC 0003C600 */ sll $t8, $v1, 0x18 +/* 0AC610 7F077AE0 304F000F */ andi $t7, $v0, 0xf +/* 0AC614 7F077AE4 000FC900 */ sll $t9, $t7, 4 +/* 0AC618 7F077AE8 03387025 */ or $t6, $t9, $t8 +/* 0AC61C 7F077AEC 03001825 */ move $v1, $t8 +/* 0AC620 7F077AF0 92F8000A */ lbu $t8, 0xa($s7) +/* 0AC624 7F077AF4 8FA70058 */ lw $a3, 0x58($sp) +/* 0AC628 7F077AF8 3224000F */ andi $a0, $s1, 0xf +/* 0AC62C 7F077AFC 330F0003 */ andi $t7, $t8, 3 +/* 0AC630 7F077B00 000FCC80 */ sll $t9, $t7, 0x12 +/* 0AC634 7F077B04 01D9C025 */ or $t8, $t6, $t9 +/* 0AC638 7F077B08 30EF000F */ andi $t7, $a3, 0xf +/* 0AC63C 7F077B0C 000F7380 */ sll $t6, $t7, 0xe +/* 0AC640 7F077B10 030EC825 */ or $t9, $t8, $t6 +/* 0AC644 7F077B14 92EE0009 */ lbu $t6, 9($s7) +/* 0AC648 7F077B18 00047A80 */ sll $t7, $a0, 0xa +/* 0AC64C 7F077B1C 032FC025 */ or $t8, $t9, $t7 +/* 0AC650 7F077B20 31D90003 */ andi $t9, $t6, 3 +/* 0AC654 7F077B24 00197A00 */ sll $t7, $t9, 8 +/* 0AC658 7F077B28 030F7025 */ or $t6, $t8, $t7 +/* 0AC65C 7F077B2C 8FB80060 */ lw $t8, 0x60($sp) +/* 0AC660 7F077B30 8FA6003C */ lw $a2, 0x3c($sp) +/* 0AC664 7F077B34 01C4C825 */ or $t9, $t6, $a0 +/* 0AC668 7F077B38 AF190004 */ sw $t9, 4($t8) +/* 0AC66C 7F077B3C 8FA5016C */ lw $a1, 0x16c($sp) +/* 0AC670 7F077B40 8FB90050 */ lw $t9, 0x50($sp) +/* 0AC674 7F077B44 26310001 */ addiu $s1, $s1, 1 +/* 0AC678 7F077B48 24AE0008 */ addiu $t6, $a1, 8 +/* 0AC67C 7F077B4C AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC680 7F077B50 ACB90000 */ sw $t9, ($a1) +/* 0AC684 7F077B54 8FB80054 */ lw $t8, 0x54($sp) +/* 0AC688 7F077B58 8FAE004C */ lw $t6, 0x4c($sp) +/* 0AC68C 7F077B5C 00787825 */ or $t7, $v1, $t8 +/* 0AC690 7F077B60 01EEC825 */ or $t9, $t7, $t6 +/* 0AC694 7F077B64 ACB90004 */ sw $t9, 4($a1) +/* 0AC698 7F077B68 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0AC69C 7F077B6C 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0AC6A0 7F077B70 03067821 */ addu $t7, $t8, $a2 +/* 0AC6A4 7F077B74 162EFF63 */ bne $s1, $t6, .L7F077904 +/* 0AC6A8 7F077B78 AFAF00D0 */ sw $t7, 0xd0($sp) +/* 0AC6AC 7F077B7C AFB00064 */ sw $s0, 0x64($sp) +.L7F077B80: +/* 0AC6B0 7F077B80 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC6B4 7F077B84 8FB80170 */ lw $t8, 0x170($sp) +/* 0AC6B8 7F077B88 AF190000 */ sw $t9, ($t8) +/* 0AC6BC 7F077B8C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0AC6C0 7F077B90 8FB70030 */ lw $s7, 0x30($sp) +/* 0AC6C4 7F077B94 8FB6002C */ lw $s6, 0x2c($sp) +/* 0AC6C8 7F077B98 8FB50028 */ lw $s5, 0x28($sp) +/* 0AC6CC 7F077B9C 8FB40024 */ lw $s4, 0x24($sp) +/* 0AC6D0 7F077BA0 8FB30020 */ lw $s3, 0x20($sp) +/* 0AC6D4 7F077BA4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0AC6D8 7F077BA8 8FB10018 */ lw $s1, 0x18($sp) +/* 0AC6DC 7F077BAC 8FB00014 */ lw $s0, 0x14($sp) +/* 0AC6E0 7F077BB0 03E00008 */ jr $ra +/* 0AC6E4 7F077BB4 27BD0170 */ addiu $sp, $sp, 0x170 +) +#endif + + + + + +void sub_GAME_7F077BB8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + return; +} + + + diff --git a/src/game/playerstats_007770.c b/src/game/playerstats_007770.c new file mode 100644 index 0000000..60b9ecb --- /dev/null +++ b/src/game/playerstats_007770.c @@ -0,0 +1,51 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F007770(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007770 +/* 03C2A0 7F007770 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 03C2A4 7F007774 AFBF0024 */ sw $ra, 0x24($sp) +/* 03C2A8 7F007778 AFB30020 */ sw $s3, 0x20($sp) +/* 03C2AC 7F00777C AFB2001C */ sw $s2, 0x1c($sp) +/* 03C2B0 7F007780 AFB10018 */ sw $s1, 0x18($sp) +/* 03C2B4 7F007784 0FC26919 */ jal get_num_players +/* 03C2B8 7F007788 AFB00014 */ sw $s0, 0x14($sp) +/* 03C2BC 7F00778C 0FC26C54 */ jal get_cur_playernum +/* 03C2C0 7F007790 00409825 */ move $s3, $v0 +/* 03C2C4 7F007794 AFA20030 */ sw $v0, 0x30($sp) +/* 03C2C8 7F007798 1A60000E */ blez $s3, .L7F0077D4 +/* 03C2CC 7F00779C 00008025 */ move $s0, $zero +/* 03C2D0 7F0077A0 27B20038 */ addiu $s2, $sp, 0x38 +/* 03C2D4 7F0077A4 27B1003C */ addiu $s1, $sp, 0x3c +.L7F0077A8: +/* 03C2D8 7F0077A8 0FC26C43 */ jal set_cur_player +/* 03C2DC 7F0077AC 02002025 */ move $a0, $s0 +/* 03C2E0 7F0077B0 02202025 */ move $a0, $s1 +/* 03C2E4 7F0077B4 0FC236C2 */ jal sub_GAME_7F08DB08 +/* 03C2E8 7F0077B8 02402825 */ move $a1, $s2 +/* 03C2EC 7F0077BC 8FA4003C */ lw $a0, 0x3c($sp) +/* 03C2F0 7F0077C0 0FC075A0 */ jal store_favorite_weapon_current_player +/* 03C2F4 7F0077C4 8FA50038 */ lw $a1, 0x38($sp) +/* 03C2F8 7F0077C8 26100001 */ addiu $s0, $s0, 1 +/* 03C2FC 7F0077CC 1613FFF6 */ bne $s0, $s3, .L7F0077A8 +/* 03C300 7F0077D0 00000000 */ nop +.L7F0077D4: +/* 03C304 7F0077D4 0FC26C43 */ jal set_cur_player +/* 03C308 7F0077D8 8FA40030 */ lw $a0, 0x30($sp) +/* 03C30C 7F0077DC 8FBF0024 */ lw $ra, 0x24($sp) +/* 03C310 7F0077E0 8FB00014 */ lw $s0, 0x14($sp) +/* 03C314 7F0077E4 8FB10018 */ lw $s1, 0x18($sp) +/* 03C318 7F0077E8 8FB2001C */ lw $s2, 0x1c($sp) +/* 03C31C 7F0077EC 8FB30020 */ lw $s3, 0x20($sp) +/* 03C320 7F0077F0 03E00008 */ jr $ra +/* 03C324 7F0077F4 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + diff --git a/src/game/prop.c b/src/game/prop.c new file mode 100644 index 0000000..69f80e6 --- /dev/null +++ b/src/game/prop.c @@ -0,0 +1,5295 @@ +#include "ultra64.h" + +s32 lastmpweaponnum; + +//.section .rodata + +const char aNochr[] = "-nochr"; +const char aNoprop[] = "-noprop"; +const char aNoobj[] = "-noobj"; +const char aNoprop_0[] = "-noprop"; + +const u32 only_read_by_stageload[] = { + 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, 0, 0, 0, 0, 0 +}; + +const char aMp_[] = "mp_"; + + + + + + +#ifdef NONMATCHING +void load_proptype(void) { + +} +#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(ptr_setup_objects) +/* 03668C 7F001B5C 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($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 get_size_of_setup_object_type +/* 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 +void sub_GAME_7F001BD4(void *arg0, s32 arg1, void *arg12, void *arg13) { + f32 sp18; + f32 sp20; + f32 sp24; + f32 sp28; + f32 sp2C; + f32 sp30; + f32 sp34; + f32 sp3C; + f32 sp40; + f32 sp44; + f32 temp_f6; + f32 temp_f4; + f32 temp_f6_2; + f32 temp_f2; + f32 temp_f10; + f32 temp_f12; + f32 temp_f14; + f32 temp_f16; + + // Node 0 + sp34 = (f32) arg0->unk2C; + sp30 = (f32) arg0->unk30; + sp2C = (f32) arg0->unk34; + sp28 = (f32) arg0->unk38; + sp24 = (f32) arg0->unk3C; + sp20 = (f32) arg0->unk40; + temp_f6 = ((arg0->unk10 * arg0->unk20) - (arg0->unk1C * arg0->unk14)); + sp3C = temp_f6; + temp_f4 = ((arg0->unk14 * arg0->unk18) - (arg0->unk20 * arg0->unkC)); + sp40 = temp_f4; + sp18 = temp_f6; + temp_f6_2 = ((arg0->unkC * arg0->unk1C) - (arg0->unk18 * arg0->unk10)); + sp44 = temp_f6_2; + temp_f2 = (1.0f / sqrtf(((temp_f6_2 * temp_f6_2) + ((sp18 * sp18) + (temp_f4 * temp_f4))))); + temp_f10 = (sp3C * temp_f2); + sp3C = temp_f10; + sp40 = (f32) (sp40 * temp_f2); + temp_f12 = (sp24 + sp20); + sp44 = (f32) (sp44 * temp_f2); + temp_f14 = (sp34 + sp30); + temp_f16 = (sp2C + sp28); + *arg13 = (f32) ((((arg12->unk18 * temp_f12) + ((temp_f14 * temp_f10) + (temp_f16 * arg12->unkC))) * 0.5f) + *arg12); + arg13->unk4 = (f32) ((((arg12->unk1C * temp_f12) + ((temp_f14 * sp40) + (temp_f16 * arg12->unk10))) * 0.5f) + arg12->unk4); + arg13->unk8 = (f32) ((((arg12->unk20 * temp_f12) + ((temp_f14 * sp44) + (temp_f16 * arg12->unk14))) * 0.5f) + arg12->unk8); + return; + // (possible return value: sqrtf(((temp_f6_2 * temp_f6_2) + ((sp18 * sp18) + (temp_f4 * temp_f4))))) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001BD4 +/* 036704 7F001BD4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 036708 7F001BD8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03670C 7F001BDC C484002C */ lwc1 $f4, 0x2c($a0) +/* 036710 7F001BE0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 036714 7F001BE4 C4860030 */ lwc1 $f6, 0x30($a0) +/* 036718 7F001BE8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 03671C 7F001BEC C48A0034 */ lwc1 $f10, 0x34($a0) +/* 036720 7F001BF0 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 036724 7F001BF4 C4880038 */ lwc1 $f8, 0x38($a0) +/* 036728 7F001BF8 E7A80028 */ swc1 $f8, 0x28($sp) +/* 03672C 7F001BFC C484003C */ lwc1 $f4, 0x3c($a0) +/* 036730 7F001C00 E7A40024 */ swc1 $f4, 0x24($sp) +/* 036734 7F001C04 C4860040 */ lwc1 $f6, 0x40($a0) +/* 036738 7F001C08 E7A60020 */ swc1 $f6, 0x20($sp) +/* 03673C 7F001C0C C48A0010 */ lwc1 $f10, 0x10($a0) +/* 036740 7F001C10 C4880020 */ lwc1 $f8, 0x20($a0) +/* 036744 7F001C14 C486001C */ lwc1 $f6, 0x1c($a0) +/* 036748 7F001C18 46085102 */ mul.s $f4, $f10, $f8 +/* 03674C 7F001C1C C48A0014 */ lwc1 $f10, 0x14($a0) +/* 036750 7F001C20 460A3202 */ mul.s $f8, $f6, $f10 +/* 036754 7F001C24 46082181 */ sub.s $f6, $f4, $f8 +/* 036758 7F001C28 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 03675C 7F001C2C C4840018 */ lwc1 $f4, 0x18($a0) +/* 036760 7F001C30 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 036764 7F001C34 46045202 */ mul.s $f8, $f10, $f4 +/* 036768 7F001C38 C484000C */ lwc1 $f4, 0xc($a0) +/* 03676C 7F001C3C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 036770 7F001C40 46045282 */ mul.s $f10, $f10, $f4 +/* 036774 7F001C44 460A4101 */ sub.s $f4, $f8, $f10 +/* 036778 7F001C48 E7A40040 */ swc1 $f4, 0x40($sp) +/* 03677C 7F001C4C C48A001C */ lwc1 $f10, 0x1c($a0) +/* 036780 7F001C50 C488000C */ lwc1 $f8, 0xc($a0) +/* 036784 7F001C54 460A4202 */ mul.s $f8, $f8, $f10 +/* 036788 7F001C58 C48A0018 */ lwc1 $f10, 0x18($a0) +/* 03678C 7F001C5C E7A60018 */ swc1 $f6, 0x18($sp) +/* 036790 7F001C60 C4860010 */ lwc1 $f6, 0x10($a0) +/* 036794 7F001C64 AFA5004C */ sw $a1, 0x4c($sp) +/* 036798 7F001C68 AFA40048 */ sw $a0, 0x48($sp) +/* 03679C 7F001C6C 46065282 */ mul.s $f10, $f10, $f6 +/* 0367A0 7F001C70 460A4181 */ sub.s $f6, $f8, $f10 +/* 0367A4 7F001C74 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0367A8 7F001C78 46084282 */ mul.s $f10, $f8, $f8 +/* 0367AC 7F001C7C E7A60044 */ swc1 $f6, 0x44($sp) +/* 0367B0 7F001C80 46042202 */ mul.s $f8, $f4, $f4 +/* 0367B4 7F001C84 46085100 */ add.s $f4, $f10, $f8 +/* 0367B8 7F001C88 46063282 */ mul.s $f10, $f6, $f6 +/* 0367BC 7F001C8C 0C007DF8 */ jal sqrtf +/* 0367C0 7F001C90 46045300 */ add.s $f12, $f10, $f4 +/* 0367C4 7F001C94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0367C8 7F001C98 44819000 */ mtc1 $at, $f18 +/* 0367CC 7F001C9C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0367D0 7F001CA0 44814000 */ mtc1 $at, $f8 +/* 0367D4 7F001CA4 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0367D8 7F001CA8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0367DC 7F001CAC 46004083 */ div.s $f2, $f8, $f0 +/* 0367E0 7F001CB0 8FA40048 */ lw $a0, 0x48($sp) +/* 0367E4 7F001CB4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0367E8 7F001CB8 46023282 */ mul.s $f10, $f6, $f2 +/* 0367EC 7F001CBC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0367F0 7F001CC0 46022202 */ mul.s $f8, $f4, $f2 +/* 0367F4 7F001CC4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0367F8 7F001CC8 46023102 */ mul.s $f4, $f6, $f2 +/* 0367FC 7F001CCC C7A60020 */ lwc1 $f6, 0x20($sp) +/* 036800 7F001CD0 E7A80040 */ swc1 $f8, 0x40($sp) +/* 036804 7F001CD4 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 036808 7F001CD8 46064300 */ add.s $f12, $f8, $f6 +/* 03680C 7F001CDC E7A40044 */ swc1 $f4, 0x44($sp) +/* 036810 7F001CE0 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 036814 7F001CE4 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 036818 7F001CE8 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 03681C 7F001CEC 46082380 */ add.s $f14, $f4, $f8 +/* 036820 7F001CF0 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 036824 7F001CF4 46043400 */ add.s $f16, $f6, $f4 +/* 036828 7F001CF8 460A7202 */ mul.s $f8, $f14, $f10 +/* 03682C 7F001CFC C486000C */ lwc1 $f6, 0xc($a0) +/* 036830 7F001D00 46068102 */ mul.s $f4, $f16, $f6 +/* 036834 7F001D04 C4860018 */ lwc1 $f6, 0x18($a0) +/* 036838 7F001D08 46044280 */ add.s $f10, $f8, $f4 +/* 03683C 7F001D0C 460C3202 */ mul.s $f8, $f6, $f12 +/* 036840 7F001D10 460A4100 */ add.s $f4, $f8, $f10 +/* 036844 7F001D14 C4880000 */ lwc1 $f8, ($a0) +/* 036848 7F001D18 46122182 */ mul.s $f6, $f4, $f18 +/* 03684C 7F001D1C 46083280 */ add.s $f10, $f6, $f8 +/* 036850 7F001D20 E4AA0000 */ swc1 $f10, ($a1) +/* 036854 7F001D24 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 036858 7F001D28 C4880010 */ lwc1 $f8, 0x10($a0) +/* 03685C 7F001D2C 46047182 */ mul.s $f6, $f14, $f4 +/* 036860 7F001D30 00000000 */ nop +/* 036864 7F001D34 46088282 */ mul.s $f10, $f16, $f8 +/* 036868 7F001D38 C488001C */ lwc1 $f8, 0x1c($a0) +/* 03686C 7F001D3C 460A3100 */ add.s $f4, $f6, $f10 +/* 036870 7F001D40 460C4182 */ mul.s $f6, $f8, $f12 +/* 036874 7F001D44 46043280 */ add.s $f10, $f6, $f4 +/* 036878 7F001D48 C4860004 */ lwc1 $f6, 4($a0) +/* 03687C 7F001D4C 46125202 */ mul.s $f8, $f10, $f18 +/* 036880 7F001D50 46064100 */ add.s $f4, $f8, $f6 +/* 036884 7F001D54 E4A40004 */ swc1 $f4, 4($a1) +/* 036888 7F001D58 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 03688C 7F001D5C C4860014 */ lwc1 $f6, 0x14($a0) +/* 036890 7F001D60 460A7202 */ mul.s $f8, $f14, $f10 +/* 036894 7F001D64 00000000 */ nop +/* 036898 7F001D68 46068102 */ mul.s $f4, $f16, $f6 +/* 03689C 7F001D6C C4860020 */ lwc1 $f6, 0x20($a0) +/* 0368A0 7F001D70 46044280 */ add.s $f10, $f8, $f4 +/* 0368A4 7F001D74 460C3202 */ mul.s $f8, $f6, $f12 +/* 0368A8 7F001D78 460A4100 */ add.s $f4, $f8, $f10 +/* 0368AC 7F001D7C C4880008 */ lwc1 $f8, 8($a0) +/* 0368B0 7F001D80 46122182 */ mul.s $f6, $f4, $f18 +/* 0368B4 7F001D84 46083280 */ add.s $f10, $f6, $f8 +/* 0368B8 7F001D88 E4AA0008 */ swc1 $f10, 8($a1) +/* 0368BC 7F001D8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0368C0 7F001D90 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0368C4 7F001D94 03E00008 */ jr $ra +/* 0368C8 7F001D98 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void prepare_load_objects(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004EEB4 +.word 0x358637bd +.text +glabel prepare_load_objects +/* 0368CC 7F001D9C 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0368D0 7F001DA0 AFBF0034 */ sw $ra, 0x34($sp) +/* 0368D4 7F001DA4 AFB10030 */ sw $s1, 0x30($sp) +/* 0368D8 7F001DA8 AFB0002C */ sw $s0, 0x2c($sp) +/* 0368DC 7F001DAC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0368E0 7F001DB0 AFA60100 */ sw $a2, 0x100($sp) +/* 0368E4 7F001DB4 84A40004 */ lh $a0, 4($a1) +/* 0368E8 7F001DB8 00A08825 */ move $s1, $a1 +/* 0368EC 7F001DBC 00008025 */ move $s0, $zero +/* 0368F0 7F001DC0 0FC15B0E */ jal load_model +/* 0368F4 7F001DC4 AFA400F0 */ sw $a0, 0xf0($sp) +/* 0368F8 7F001DC8 962E0000 */ lhu $t6, ($s1) +/* 0368FC 7F001DCC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 036900 7F001DD0 448E2000 */ mtc1 $t6, $f4 +/* 036904 7F001DD4 05C10004 */ bgez $t6, .L7F001DE8 +/* 036908 7F001DD8 468021A0 */ cvt.s.w $f6, $f4 +/* 03690C 7F001DDC 44814000 */ mtc1 $at, $f8 +/* 036910 7F001DE0 00000000 */ nop +/* 036914 7F001DE4 46083180 */ add.s $f6, $f6, $f8 +.L7F001DE8: +/* 036918 7F001DE8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 03691C 7F001DEC 44815000 */ mtc1 $at, $f10 +/* 036920 7F001DF0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 036924 7F001DF4 460A3102 */ mul.s $f4, $f6, $f10 +/* 036928 7F001DF8 44815000 */ mtc1 $at, $f10 +/* 03692C 7F001DFC E7A40078 */ swc1 $f4, 0x78($sp) +/* 036930 7F001E00 8E2F0074 */ lw $t7, 0x74($s1) +/* 036934 7F001E04 448F4000 */ mtc1 $t7, $f8 +/* 036938 7F001E08 00000000 */ nop +/* 03693C 7F001E0C 468041A0 */ cvt.s.w $f6, $f8 +/* 036940 7F001E10 460A3103 */ div.s $f4, $f6, $f10 +/* 036944 7F001E14 0FC26919 */ jal get_num_players +/* 036948 7F001E18 E6240074 */ swc1 $f4, 0x74($s1) +/* 03694C 7F001E1C 28410002 */ slti $at, $v0, 2 +/* 036950 7F001E20 1420001B */ bnez $at, .L7F001E90 +/* 036954 7F001E24 24030001 */ li $v1, 1 +/* 036958 7F001E28 0FC051D6 */ jal get_scenario +/* 03695C 7F001E2C AFA30074 */ sw $v1, 0x74($sp) +/* 036960 7F001E30 24010002 */ li $at, 2 +/* 036964 7F001E34 14410007 */ bne $v0, $at, .L7F001E54 +/* 036968 7F001E38 8FA30074 */ lw $v1, 0x74($sp) +/* 03696C 7F001E3C 86380004 */ lh $t8, 4($s1) +/* 036970 7F001E40 2401014D */ li $at, 333 +/* 036974 7F001E44 17010003 */ bne $t8, $at, .L7F001E54 +/* 036978 7F001E48 00000000 */ nop +/* 03697C 7F001E4C 1000000B */ b .L7F001E7C +/* 036980 7F001E50 00001825 */ move $v1, $zero +.L7F001E54: +/* 036984 7F001E54 0FC051D6 */ jal get_scenario +/* 036988 7F001E58 AFA30074 */ sw $v1, 0x74($sp) +/* 03698C 7F001E5C 24010003 */ li $at, 3 +/* 036990 7F001E60 14410006 */ bne $v0, $at, .L7F001E7C +/* 036994 7F001E64 8FA30074 */ lw $v1, 0x74($sp) +/* 036998 7F001E68 86390004 */ lh $t9, 4($s1) +/* 03699C 7F001E6C 240100D0 */ li $at, 208 +/* 0369A0 7F001E70 17210002 */ bne $t9, $at, .L7F001E7C +/* 0369A4 7F001E74 00000000 */ nop +/* 0369A8 7F001E78 00001825 */ move $v1, $zero +.L7F001E7C: +/* 0369AC 7F001E7C 50600005 */ beql $v1, $zero, .L7F001E94 +/* 0369B0 7F001E80 8E230008 */ lw $v1, 8($s1) +/* 0369B4 7F001E84 92280002 */ lbu $t0, 2($s1) +/* 0369B8 7F001E88 35090004 */ ori $t1, $t0, 4 +/* 0369BC 7F001E8C A2290002 */ sb $t1, 2($s1) +.L7F001E90: +/* 0369C0 7F001E90 8E230008 */ lw $v1, 8($s1) +.L7F001E94: +/* 0369C4 7F001E94 306A8000 */ andi $t2, $v1, 0x8000 +/* 0369C8 7F001E98 11400021 */ beqz $t2, .L7F001F20 +/* 0369CC 7F001E9C 30784000 */ andi $t8, $v1, 0x4000 +/* 0369D0 7F001EA0 922B0003 */ lbu $t3, 3($s1) +/* 0369D4 7F001EA4 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0369D8 7F001EA8 24010008 */ li $at, 8 +/* 0369DC 7F001EAC 1561000C */ bne $t3, $at, .L7F001EE0 +/* 0369E0 7F001EB0 000E7880 */ sll $t7, $t6, 2 +/* 0369E4 7F001EB4 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0369E8 7F001EB8 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 0369EC 7F001EBC 02202025 */ move $a0, $s1 +/* 0369F0 7F001EC0 000C6880 */ sll $t5, $t4, 2 +/* 0369F4 7F001EC4 01AC6823 */ subu $t5, $t5, $t4 +/* 0369F8 7F001EC8 000D6880 */ sll $t5, $t5, 2 +/* 0369FC 7F001ECC 00AD2821 */ addu $a1, $a1, $t5 +/* 036A00 7F001ED0 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036A04 7F001ED4 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036A08 7F001ED8 10000009 */ b .L7F001F00 +/* 036A0C 7F001EDC 8E240014 */ lw $a0, 0x14($s1) +.L7F001EE0: +/* 036A10 7F001EE0 01EE7823 */ subu $t7, $t7, $t6 +/* 036A14 7F001EE4 000F7880 */ sll $t7, $t7, 2 +/* 036A18 7F001EE8 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036A1C 7F001EEC 00AF2821 */ addu $a1, $a1, $t7 +/* 036A20 7F001EF0 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036A24 7F001EF4 0FC101BE */ jal sub_GAME_7F0406F8 +/* 036A28 7F001EF8 02202025 */ move $a0, $s1 +/* 036A2C 7F001EFC 8E240014 */ lw $a0, 0x14($s1) +.L7F001F00: +/* 036A30 7F001F00 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 036A34 7F001F04 C4880014 */ lwc1 $f8, 0x14($a0) +/* 036A38 7F001F08 46064282 */ mul.s $f10, $f8, $f6 +/* 036A3C 7F001F0C 44055000 */ mfc1 $a1, $f10 +/* 036A40 7F001F10 0FC1B39E */ jal set_obj_instance_controller_scale +/* 036A44 7F001F14 00000000 */ nop +/* 036A48 7F001F18 10000203 */ b .L7F002728 +/* 036A4C 7F001F1C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F001F20: +/* 036A50 7F001F20 53000031 */ beql $t8, $zero, .L7F001FE8 +/* 036A54 7F001F24 86230006 */ lh $v1, 6($s1) +/* 036A58 7F001F28 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 036A5C 7F001F2C 86240006 */ lh $a0, 6($s1) +/* 036A60 7F001F30 104001FC */ beqz $v0, .L7F002724 +/* 036A64 7F001F34 AFA2006C */ sw $v0, 0x6c($sp) +/* 036A68 7F001F38 8C590018 */ lw $t9, 0x18($v0) +/* 036A6C 7F001F3C 532001FA */ beql $t9, $zero, .L7F002728 +/* 036A70 7F001F40 8FBF0034 */ lw $ra, 0x34($sp) +/* 036A74 7F001F44 8C48001C */ lw $t0, 0x1c($v0) +/* 036A78 7F001F48 510001F7 */ beql $t0, $zero, .L7F002728 +/* 036A7C 7F001F4C 8FBF0034 */ lw $ra, 0x34($sp) +/* 036A80 7F001F50 92290003 */ lbu $t1, 3($s1) +/* 036A84 7F001F54 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 036A88 7F001F58 24010008 */ li $at, 8 +/* 036A8C 7F001F5C 1521000C */ bne $t1, $at, .L7F001F90 +/* 036A90 7F001F60 000C6880 */ sll $t5, $t4, 2 +/* 036A94 7F001F64 8FAA00F0 */ lw $t2, 0xf0($sp) +/* 036A98 7F001F68 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036A9C 7F001F6C 02202025 */ move $a0, $s1 +/* 036AA0 7F001F70 000A5880 */ sll $t3, $t2, 2 +/* 036AA4 7F001F74 016A5823 */ subu $t3, $t3, $t2 +/* 036AA8 7F001F78 000B5880 */ sll $t3, $t3, 2 +/* 036AAC 7F001F7C 00AB2821 */ addu $a1, $a1, $t3 +/* 036AB0 7F001F80 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036AB4 7F001F84 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036AB8 7F001F88 10000009 */ b .L7F001FB0 +/* 036ABC 7F001F8C 00408025 */ move $s0, $v0 +.L7F001F90: +/* 036AC0 7F001F90 01AC6823 */ subu $t5, $t5, $t4 +/* 036AC4 7F001F94 000D6880 */ sll $t5, $t5, 2 +/* 036AC8 7F001F98 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036ACC 7F001F9C 00AD2821 */ addu $a1, $a1, $t5 +/* 036AD0 7F001FA0 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036AD4 7F001FA4 0FC101BE */ jal sub_GAME_7F0406F8 +/* 036AD8 7F001FA8 02202025 */ move $a0, $s1 +/* 036ADC 7F001FAC 00408025 */ move $s0, $v0 +.L7F001FB0: +/* 036AE0 7F001FB0 8E240014 */ lw $a0, 0x14($s1) +/* 036AE4 7F001FB4 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 036AE8 7F001FB8 C4840014 */ lwc1 $f4, 0x14($a0) +/* 036AEC 7F001FBC 46082182 */ mul.s $f6, $f4, $f8 +/* 036AF0 7F001FC0 44053000 */ mfc1 $a1, $f6 +/* 036AF4 7F001FC4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 036AF8 7F001FC8 00000000 */ nop +/* 036AFC 7F001FCC 8FAE006C */ lw $t6, 0x6c($sp) +/* 036B00 7F001FD0 02002025 */ move $a0, $s0 +/* 036B04 7F001FD4 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 036B08 7F001FD8 8DC50018 */ lw $a1, 0x18($t6) +/* 036B0C 7F001FDC 100001D2 */ b .L7F002728 +/* 036B10 7F001FE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 036B14 7F001FE4 86230006 */ lh $v1, 6($s1) +.L7F001FE8: +/* 036B18 7F001FE8 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 036B1C 7F001FEC 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 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(ptr_0xxxpresets)($t8) +/* 036B38 7F002008 000F7880 */ sll $t7, $t7, 2 +/* 036B3C 7F00200C 01E37823 */ subu $t7, $t7, $v1 +/* 036B40 7F002010 000F7880 */ sll $t7, $t7, 2 +/* 036B44 7F002014 01F81021 */ addu $v0, $t7, $t8 +/* 036B48 7F002018 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 036B4C 7F00201C 44800000 */ mtc1 $zero, $f0 +/* 036B50 7F002020 27A4008C */ addiu $a0, $sp, 0x8c +/* 036B54 7F002024 46005107 */ neg.s $f4, $f10 +/* 036B58 7F002028 44050000 */ mfc1 $a1, $f0 +/* 036B5C 7F00202C E7A40010 */ swc1 $f4, 0x10($sp) +/* 036B60 7F002030 C448001C */ lwc1 $f8, 0x1c($v0) +/* 036B64 7F002034 44060000 */ mfc1 $a2, $f0 +/* 036B68 7F002038 44070000 */ mfc1 $a3, $f0 +/* 036B6C 7F00203C 46004187 */ neg.s $f6, $f8 +/* 036B70 7F002040 E7A60014 */ swc1 $f6, 0x14($sp) +/* 036B74 7F002044 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 036B78 7F002048 46005107 */ neg.s $f4, $f10 +/* 036B7C 7F00204C E7A40018 */ swc1 $f4, 0x18($sp) +/* 036B80 7F002050 C448000C */ lwc1 $f8, 0xc($v0) +/* 036B84 7F002054 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 036B88 7F002058 C4460010 */ lwc1 $f6, 0x10($v0) +/* 036B8C 7F00205C E7A60020 */ swc1 $f6, 0x20($sp) +/* 036B90 7F002060 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 036B94 7F002064 AFA20064 */ sw $v0, 0x64($sp) +/* 036B98 7F002068 0FC16642 */ jal sub_GAME_7F059908 +/* 036B9C 7F00206C E7AA0024 */ swc1 $f10, 0x24($sp) +/* 036BA0 7F002070 8FA20064 */ lw $v0, 0x64($sp) +/* 036BA4 7F002074 C4440000 */ lwc1 $f4, ($v0) +/* 036BA8 7F002078 E7A400D0 */ swc1 $f4, 0xd0($sp) +/* 036BAC 7F00207C C4480004 */ lwc1 $f8, 4($v0) +/* 036BB0 7F002080 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 036BB4 7F002084 C4460008 */ lwc1 $f6, 8($v0) +/* 036BB8 7F002088 E7A600D8 */ swc1 $f6, 0xd8($sp) +/* 036BBC 7F00208C 8E390008 */ lw $t9, 8($s1) +/* 036BC0 7F002090 33280002 */ andi $t0, $t9, 2 +/* 036BC4 7F002094 51000009 */ beql $t0, $zero, .L7F0020BC +/* 036BC8 7F002098 C4460000 */ lwc1 $f6, ($v0) +/* 036BCC 7F00209C C44A0000 */ lwc1 $f10, ($v0) +/* 036BD0 7F0020A0 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 036BD4 7F0020A4 C4440004 */ lwc1 $f4, 4($v0) +/* 036BD8 7F0020A8 E7A40084 */ swc1 $f4, 0x84($sp) +/* 036BDC 7F0020AC C4480008 */ lwc1 $f8, 8($v0) +/* 036BE0 7F0020B0 10000007 */ b .L7F0020D0 +/* 036BE4 7F0020B4 E7A80088 */ swc1 $f8, 0x88($sp) +/* 036BE8 7F0020B8 C4460000 */ lwc1 $f6, ($v0) +.L7F0020BC: +/* 036BEC 7F0020BC E7A60080 */ swc1 $f6, 0x80($sp) +/* 036BF0 7F0020C0 C44A0004 */ lwc1 $f10, 4($v0) +/* 036BF4 7F0020C4 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 036BF8 7F0020C8 C4440008 */ lwc1 $f4, 8($v0) +/* 036BFC 7F0020CC E7A40088 */ swc1 $f4, 0x88($sp) +.L7F0020D0: +/* 036C00 7F0020D0 8C490028 */ lw $t1, 0x28($v0) +/* 036C04 7F0020D4 10000085 */ b .L7F0022EC +/* 036C08 7F0020D8 AFA900CC */ sw $t1, 0xcc($sp) +.L7F0020DC: +/* 036C0C 7F0020DC 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($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 +/* 036C1C 7F0020EC 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 036C20 7F0020F0 014B8021 */ addu $s0, $t2, $t3 +/* 036C24 7F0020F4 02018021 */ addu $s0, $s0, $at +/* 036C28 7F0020F8 C6080018 */ lwc1 $f8, 0x18($s0) +/* 036C2C 7F0020FC 44800000 */ mtc1 $zero, $f0 +/* 036C30 7F002100 27A4008C */ addiu $a0, $sp, 0x8c +/* 036C34 7F002104 46004187 */ neg.s $f6, $f8 +/* 036C38 7F002108 44050000 */ mfc1 $a1, $f0 +/* 036C3C 7F00210C E7A60010 */ swc1 $f6, 0x10($sp) +/* 036C40 7F002110 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 036C44 7F002114 44060000 */ mfc1 $a2, $f0 +/* 036C48 7F002118 44070000 */ mfc1 $a3, $f0 +/* 036C4C 7F00211C 46005107 */ neg.s $f4, $f10 +/* 036C50 7F002120 E7A40014 */ swc1 $f4, 0x14($sp) +/* 036C54 7F002124 C6080020 */ lwc1 $f8, 0x20($s0) +/* 036C58 7F002128 46004187 */ neg.s $f6, $f8 +/* 036C5C 7F00212C E7A60018 */ swc1 $f6, 0x18($sp) +/* 036C60 7F002130 C60A000C */ lwc1 $f10, 0xc($s0) +/* 036C64 7F002134 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 036C68 7F002138 C6040010 */ lwc1 $f4, 0x10($s0) +/* 036C6C 7F00213C E7A40020 */ swc1 $f4, 0x20($sp) +/* 036C70 7F002140 C6080014 */ lwc1 $f8, 0x14($s0) +/* 036C74 7F002144 0FC16642 */ jal sub_GAME_7F059908 +/* 036C78 7F002148 E7A80024 */ swc1 $f8, 0x24($sp) +/* 036C7C 7F00214C 8E2C000C */ lw $t4, 0xc($s1) +/* 036C80 7F002150 02002025 */ move $a0, $s0 +/* 036C84 7F002154 318D0001 */ andi $t5, $t4, 1 +/* 036C88 7F002158 55A0003D */ bnezl $t5, .L7F002250 +/* 036C8C 7F00215C C60A0000 */ lwc1 $f10, ($s0) +/* 036C90 7F002160 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 036C94 7F002164 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 036C98 7F002168 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036C9C 7F00216C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CA0 7F002170 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 036CA4 7F002174 44810000 */ mtc1 $at, $f0 +/* 036CA8 7F002178 460A3101 */ sub.s $f4, $f6, $f10 +/* 036CAC 7F00217C C606000C */ lwc1 $f6, 0xc($s0) +/* 036CB0 7F002180 27A400CC */ addiu $a0, $sp, 0xcc +/* 036CB4 7F002184 46002202 */ mul.s $f8, $f4, $f0 +/* 036CB8 7F002188 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 036CBC 7F00218C 44072000 */ mfc1 $a3, $f4 +/* 036CC0 7F002190 46083282 */ mul.s $f10, $f6, $f8 +/* 036CC4 7F002194 46045180 */ add.s $f6, $f10, $f4 +/* 036CC8 7F002198 E7A60080 */ swc1 $f6, 0x80($sp) +/* 036CCC 7F00219C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CD0 7F0021A0 C6080034 */ lwc1 $f8, 0x34($s0) +/* 036CD4 7F0021A4 460A4181 */ sub.s $f6, $f8, $f10 +/* 036CD8 7F0021A8 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 036CDC 7F0021AC 46003202 */ mul.s $f8, $f6, $f0 +/* 036CE0 7F0021B0 00000000 */ nop +/* 036CE4 7F0021B4 46085182 */ mul.s $f6, $f10, $f8 +/* 036CE8 7F0021B8 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 036CEC 7F0021BC 460A3200 */ add.s $f8, $f6, $f10 +/* 036CF0 7F0021C0 E7A80084 */ swc1 $f8, 0x84($sp) +/* 036CF4 7F0021C4 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CF8 7F0021C8 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036CFC 7F0021CC 460A3201 */ sub.s $f8, $f6, $f10 +/* 036D00 7F0021D0 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 036D04 7F0021D4 46004182 */ mul.s $f6, $f8, $f0 +/* 036D08 7F0021D8 00000000 */ nop +/* 036D0C 7F0021DC 46065202 */ mul.s $f8, $f10, $f6 +/* 036D10 7F0021E0 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 036D14 7F0021E4 460A4180 */ add.s $f6, $f8, $f10 +/* 036D18 7F0021E8 E7A60088 */ swc1 $f6, 0x88($sp) +/* 036D1C 7F0021EC 8E0E0028 */ lw $t6, 0x28($s0) +/* 036D20 7F0021F0 AFAE00CC */ sw $t6, 0xcc($sp) +/* 036D24 7F0021F4 8E060008 */ lw $a2, 8($s0) +/* 036D28 7F0021F8 8E050000 */ lw $a1, ($s0) +/* 036D2C 7F0021FC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 036D30 7F002200 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 036D34 7F002204 5440003A */ bnezl $v0, .L7F0022F0 +/* 036D38 7F002208 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D3C 7F00220C C6080000 */ lwc1 $f8, ($s0) +/* 036D40 7F002210 E7A800D0 */ swc1 $f8, 0xd0($sp) +/* 036D44 7F002214 C6060004 */ lwc1 $f6, 4($s0) +/* 036D48 7F002218 E7A600D4 */ swc1 $f6, 0xd4($sp) +/* 036D4C 7F00221C C6040008 */ lwc1 $f4, 8($s0) +/* 036D50 7F002220 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 036D54 7F002224 8E0F0028 */ lw $t7, 0x28($s0) +/* 036D58 7F002228 AFAF00CC */ sw $t7, 0xcc($sp) +/* 036D5C 7F00222C 8E230008 */ lw $v1, 8($s1) +/* 036D60 7F002230 30780002 */ andi $t8, $v1, 2 +/* 036D64 7F002234 1700002D */ bnez $t8, .L7F0022EC +/* 036D68 7F002238 30791000 */ andi $t9, $v1, 0x1000 +/* 036D6C 7F00223C 5720002C */ bnezl $t9, .L7F0022F0 +/* 036D70 7F002240 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D74 7F002244 1000002A */ b .L7F0022F0 +/* 036D78 7F002248 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D7C 7F00224C C60A0000 */ lwc1 $f10, ($s0) +.L7F002250: +/* 036D80 7F002250 02002025 */ move $a0, $s0 +/* 036D84 7F002254 27A50080 */ addiu $a1, $sp, 0x80 +/* 036D88 7F002258 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 036D8C 7F00225C C6080004 */ lwc1 $f8, 4($s0) +/* 036D90 7F002260 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 036D94 7F002264 C6060008 */ lwc1 $f6, 8($s0) +/* 036D98 7F002268 E7A600D8 */ swc1 $f6, 0xd8($sp) +/* 036D9C 7F00226C 8E080028 */ lw $t0, 0x28($s0) +/* 036DA0 7F002270 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 036DA4 7F002274 AFA800CC */ sw $t0, 0xcc($sp) +/* 036DA8 7F002278 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036DAC 7F00227C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036DB0 7F002280 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 036DB4 7F002284 44810000 */ mtc1 $at, $f0 +/* 036DB8 7F002288 460A2201 */ sub.s $f8, $f4, $f10 +/* 036DBC 7F00228C C604000C */ lwc1 $f4, 0xc($s0) +/* 036DC0 7F002290 46004182 */ mul.s $f6, $f8, $f0 +/* 036DC4 7F002294 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 036DC8 7F002298 46043282 */ mul.s $f10, $f6, $f4 +/* 036DCC 7F00229C 460A4180 */ add.s $f6, $f8, $f10 +/* 036DD0 7F0022A0 E7A60080 */ swc1 $f6, 0x80($sp) +/* 036DD4 7F0022A4 C6080038 */ lwc1 $f8, 0x38($s0) +/* 036DD8 7F0022A8 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036DDC 7F0022AC 46082281 */ sub.s $f10, $f4, $f8 +/* 036DE0 7F0022B0 C6040010 */ lwc1 $f4, 0x10($s0) +/* 036DE4 7F0022B4 46005182 */ mul.s $f6, $f10, $f0 +/* 036DE8 7F0022B8 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 036DEC 7F0022BC 46043202 */ mul.s $f8, $f6, $f4 +/* 036DF0 7F0022C0 46085180 */ add.s $f6, $f10, $f8 +/* 036DF4 7F0022C4 E7A60084 */ swc1 $f6, 0x84($sp) +/* 036DF8 7F0022C8 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036DFC 7F0022CC C6040034 */ lwc1 $f4, 0x34($s0) +/* 036E00 7F0022D0 460A2201 */ sub.s $f8, $f4, $f10 +/* 036E04 7F0022D4 C6040014 */ lwc1 $f4, 0x14($s0) +/* 036E08 7F0022D8 46004182 */ mul.s $f6, $f8, $f0 +/* 036E0C 7F0022DC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 036E10 7F0022E0 46043282 */ mul.s $f10, $f6, $f4 +/* 036E14 7F0022E4 460A4180 */ add.s $f6, $f8, $f10 +/* 036E18 7F0022E8 E7A60088 */ swc1 $f6, 0x88($sp) +.L7F0022EC: +/* 036E1C 7F0022EC 27A900DC */ addiu $t1, $sp, 0xdc +.L7F0022F0: +/* 036E20 7F0022F0 AFA90010 */ sw $t1, 0x10($sp) +/* 036E24 7F0022F4 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 036E28 7F0022F8 8FA500CC */ lw $a1, 0xcc($sp) +/* 036E2C 7F0022FC 24060000 */ li $a2, 0 +/* 036E30 7F002300 0FC15A14 */ jal sub_GAME_7F056850 +/* 036E34 7F002304 27A700E0 */ addiu $a3, $sp, 0xe0 +/* 036E38 7F002308 50400107 */ beql $v0, $zero, .L7F002728 +/* 036E3C 7F00230C 8FBF0034 */ lw $ra, 0x34($sp) +/* 036E40 7F002310 922A0003 */ lbu $t2, 3($s1) +/* 036E44 7F002314 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 036E48 7F002318 24010008 */ li $at, 8 +/* 036E4C 7F00231C 1541000A */ bne $t2, $at, .L7F002348 +/* 036E50 7F002320 000B6080 */ sll $t4, $t3, 2 +/* 036E54 7F002324 018B6023 */ subu $t4, $t4, $t3 +/* 036E58 7F002328 000C6080 */ sll $t4, $t4, 2 +/* 036E5C 7F00232C 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036E60 7F002330 00AC2821 */ addu $a1, $a1, $t4 +/* 036E64 7F002334 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036E68 7F002338 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036E6C 7F00233C 02202025 */ move $a0, $s1 +/* 036E70 7F002340 10000004 */ b .L7F002354 +/* 036E74 7F002344 AFA20060 */ sw $v0, 0x60($sp) +.L7F002348: +/* 036E78 7F002348 0FC101C7 */ jal sub_GAME_7F04071C +/* 036E7C 7F00234C 02202025 */ move $a0, $s1 +/* 036E80 7F002350 AFA20060 */ sw $v0, 0x60($sp) +.L7F002354: +/* 036E84 7F002354 520000D0 */ beql $s0, $zero, .L7F002698 +/* 036E88 7F002358 8E240014 */ lw $a0, 0x14($s1) +/* 036E8C 7F00235C 0FC1001E */ jal sub_GAME_7F040078 +/* 036E90 7F002360 02202025 */ move $a0, $s1 +/* 036E94 7F002364 104000CB */ beqz $v0, .L7F002694 +/* 036E98 7F002368 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 036E9C 7F00236C 44819000 */ mtc1 $at, $f18 +/* 036EA0 7F002370 27A5008C */ addiu $a1, $sp, 0x8c +/* 036EA4 7F002374 E7B20058 */ swc1 $f18, 0x58($sp) +/* 036EA8 7F002378 8E230008 */ lw $v1, 8($s1) +/* 036EAC 7F00237C 46009406 */ mov.s $f16, $f18 +/* 036EB0 7F002380 306D0030 */ andi $t5, $v1, 0x30 +/* 036EB4 7F002384 11A0001D */ beqz $t5, .L7F0023FC +/* 036EB8 7F002388 30790050 */ andi $t9, $v1, 0x50 +/* 036EBC 7F00238C C4420004 */ lwc1 $f2, 4($v0) +/* 036EC0 7F002390 C4400008 */ lwc1 $f0, 8($v0) +/* 036EC4 7F002394 306E0002 */ andi $t6, $v1, 2 +/* 036EC8 7F002398 4600103C */ c.lt.s $f2, $f0 +/* 036ECC 7F00239C 00000000 */ nop +/* 036ED0 7F0023A0 45000016 */ bc1f .L7F0023FC +/* 036ED4 7F0023A4 00000000 */ nop +/* 036ED8 7F0023A8 51C0000C */ beql $t6, $zero, .L7F0023DC +/* 036EDC 7F0023AC C6040030 */ lwc1 $f4, 0x30($s0) +/* 036EE0 7F0023B0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 036EE4 7F0023B4 C608002C */ lwc1 $f8, 0x2c($s0) +/* 036EE8 7F0023B8 8E2F0014 */ lw $t7, 0x14($s1) +/* 036EEC 7F0023BC 46020181 */ sub.s $f6, $f0, $f2 +/* 036EF0 7F0023C0 46082281 */ sub.s $f10, $f4, $f8 +/* 036EF4 7F0023C4 C5E40014 */ lwc1 $f4, 0x14($t7) +/* 036EF8 7F0023C8 46043202 */ mul.s $f8, $f6, $f4 +/* 036EFC 7F0023CC 46085183 */ div.s $f6, $f10, $f8 +/* 036F00 7F0023D0 1000000A */ b .L7F0023FC +/* 036F04 7F0023D4 E7A60058 */ swc1 $f6, 0x58($sp) +/* 036F08 7F0023D8 C6040030 */ lwc1 $f4, 0x30($s0) +.L7F0023DC: +/* 036F0C 7F0023DC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 036F10 7F0023E0 8E380014 */ lw $t8, 0x14($s1) +/* 036F14 7F0023E4 46020181 */ sub.s $f6, $f0, $f2 +/* 036F18 7F0023E8 460A2201 */ sub.s $f8, $f4, $f10 +/* 036F1C 7F0023EC C7040014 */ lwc1 $f4, 0x14($t8) +/* 036F20 7F0023F0 46043282 */ mul.s $f10, $f6, $f4 +/* 036F24 7F0023F4 460A4183 */ div.s $f6, $f8, $f10 +/* 036F28 7F0023F8 E7A60058 */ swc1 $f6, 0x58($sp) +.L7F0023FC: +/* 036F2C 7F0023FC 13200018 */ beqz $t9, .L7F002460 +/* 036F30 7F002400 306A0090 */ andi $t2, $v1, 0x90 +/* 036F34 7F002404 C442000C */ lwc1 $f2, 0xc($v0) +/* 036F38 7F002408 C4400010 */ lwc1 $f0, 0x10($v0) +/* 036F3C 7F00240C 4600103C */ c.lt.s $f2, $f0 +/* 036F40 7F002410 00000000 */ nop +/* 036F44 7F002414 45000012 */ bc1f .L7F002460 +/* 036F48 7F002418 00000000 */ nop +/* 036F4C 7F00241C 8E280014 */ lw $t0, 0x14($s1) +/* 036F50 7F002420 30690002 */ andi $t1, $v1, 2 +/* 036F54 7F002424 11200008 */ beqz $t1, .L7F002448 +/* 036F58 7F002428 C50C0014 */ lwc1 $f12, 0x14($t0) +/* 036F5C 7F00242C 46020181 */ sub.s $f6, $f0, $f2 +/* 036F60 7F002430 C6040040 */ lwc1 $f4, 0x40($s0) +/* 036F64 7F002434 C608003C */ lwc1 $f8, 0x3c($s0) +/* 036F68 7F002438 46082281 */ sub.s $f10, $f4, $f8 +/* 036F6C 7F00243C 460C3102 */ mul.s $f4, $f6, $f12 +/* 036F70 7F002440 10000007 */ b .L7F002460 +/* 036F74 7F002444 46045483 */ div.s $f18, $f10, $f4 +.L7F002448: +/* 036F78 7F002448 46020101 */ sub.s $f4, $f0, $f2 +/* 036F7C 7F00244C C6080038 */ lwc1 $f8, 0x38($s0) +/* 036F80 7F002450 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036F84 7F002454 46064281 */ sub.s $f10, $f8, $f6 +/* 036F88 7F002458 460C2202 */ mul.s $f8, $f4, $f12 +/* 036F8C 7F00245C 46085403 */ div.s $f16, $f10, $f8 +.L7F002460: +/* 036F90 7F002460 11400018 */ beqz $t2, .L7F0024C4 +/* 036F94 7F002464 306D0010 */ andi $t5, $v1, 0x10 +/* 036F98 7F002468 C4420014 */ lwc1 $f2, 0x14($v0) +/* 036F9C 7F00246C C4400018 */ lwc1 $f0, 0x18($v0) +/* 036FA0 7F002470 4600103C */ c.lt.s $f2, $f0 +/* 036FA4 7F002474 00000000 */ nop +/* 036FA8 7F002478 45020013 */ bc1fl .L7F0024C8 +/* 036FAC 7F00247C C7A00058 */ lwc1 $f0, 0x58($sp) +/* 036FB0 7F002480 8E2B0014 */ lw $t3, 0x14($s1) +/* 036FB4 7F002484 306C0002 */ andi $t4, $v1, 2 +/* 036FB8 7F002488 11800008 */ beqz $t4, .L7F0024AC +/* 036FBC 7F00248C C56C0014 */ lwc1 $f12, 0x14($t3) +/* 036FC0 7F002490 46020201 */ sub.s $f8, $f0, $f2 +/* 036FC4 7F002494 C6060038 */ lwc1 $f6, 0x38($s0) +/* 036FC8 7F002498 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036FCC 7F00249C 46043281 */ sub.s $f10, $f6, $f4 +/* 036FD0 7F0024A0 460C4182 */ mul.s $f6, $f8, $f12 +/* 036FD4 7F0024A4 10000007 */ b .L7F0024C4 +/* 036FD8 7F0024A8 46065403 */ div.s $f16, $f10, $f6 +.L7F0024AC: +/* 036FDC 7F0024AC 46020181 */ sub.s $f6, $f0, $f2 +/* 036FE0 7F0024B0 C6040040 */ lwc1 $f4, 0x40($s0) +/* 036FE4 7F0024B4 C608003C */ lwc1 $f8, 0x3c($s0) +/* 036FE8 7F0024B8 46082281 */ sub.s $f10, $f4, $f8 +/* 036FEC 7F0024BC 460C3102 */ mul.s $f4, $f6, $f12 +/* 036FF0 7F0024C0 46045483 */ div.s $f18, $f10, $f4 +.L7F0024C4: +/* 036FF4 7F0024C4 C7A00058 */ lwc1 $f0, 0x58($sp) +.L7F0024C8: +/* 036FF8 7F0024C8 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 036FFC 7F0024CC 4600803C */ c.lt.s $f16, $f0 +/* 037000 7F0024D0 00000000 */ nop +/* 037004 7F0024D4 45020003 */ bc1fl .L7F0024E4 +/* 037008 7F0024D8 4600903C */ c.lt.s $f18, $f0 +/* 03700C 7F0024DC 46008006 */ mov.s $f0, $f16 +/* 037010 7F0024E0 4600903C */ c.lt.s $f18, $f0 +.L7F0024E4: +/* 037014 7F0024E4 00000000 */ nop +/* 037018 7F0024E8 45020003 */ bc1fl .L7F0024F8 +/* 03701C 7F0024EC 4610603C */ c.lt.s $f12, $f16 +/* 037020 7F0024F0 46009006 */ mov.s $f0, $f18 +/* 037024 7F0024F4 4610603C */ c.lt.s $f12, $f16 +.L7F0024F8: +/* 037028 7F0024F8 46006386 */ mov.s $f14, $f12 +/* 03702C 7F0024FC 306E0020 */ andi $t6, $v1, 0x20 +/* 037030 7F002500 30780040 */ andi $t8, $v1, 0x40 +/* 037034 7F002504 45020003 */ bc1fl .L7F002514 +/* 037038 7F002508 4612703C */ c.lt.s $f14, $f18 +/* 03703C 7F00250C 46008386 */ mov.s $f14, $f16 +/* 037040 7F002510 4612703C */ c.lt.s $f14, $f18 +.L7F002514: +/* 037044 7F002514 30680080 */ andi $t0, $v1, 0x80 +/* 037048 7F002518 45000002 */ bc1f .L7F002524 +/* 03704C 7F00251C 00000000 */ nop +/* 037050 7F002520 46009386 */ mov.s $f14, $f18 +.L7F002524: +/* 037054 7F002524 11A00005 */ beqz $t5, .L7F00253C +/* 037058 7F002528 00000000 */ nop +/* 03705C 7F00252C 46000486 */ mov.s $f18, $f0 +/* 037060 7F002530 46000406 */ mov.s $f16, $f0 +/* 037064 7F002534 10000031 */ b .L7F0025FC +/* 037068 7F002538 46000306 */ mov.s $f12, $f0 +.L7F00253C: +/* 03706C 7F00253C 15C0000F */ bnez $t6, .L7F00257C +/* 037070 7F002540 306F0002 */ andi $t7, $v1, 2 +/* 037074 7F002544 C4400008 */ lwc1 $f0, 8($v0) +/* 037078 7F002548 11E00007 */ beqz $t7, .L7F002568 +/* 03707C 7F00254C C4420004 */ lwc1 $f2, 4($v0) +/* 037080 7F002550 46001032 */ c.eq.s $f2, $f0 +/* 037084 7F002554 00000000 */ nop +/* 037088 7F002558 45000008 */ bc1f .L7F00257C +/* 03708C 7F00255C 00000000 */ nop +/* 037090 7F002560 10000006 */ b .L7F00257C +/* 037094 7F002564 46007306 */ mov.s $f12, $f14 +.L7F002568: +/* 037098 7F002568 46001032 */ c.eq.s $f2, $f0 +/* 03709C 7F00256C 00000000 */ nop +/* 0370A0 7F002570 45000002 */ bc1f .L7F00257C +/* 0370A4 7F002574 00000000 */ nop +/* 0370A8 7F002578 46007306 */ mov.s $f12, $f14 +.L7F00257C: +/* 0370AC 7F00257C 1700000F */ bnez $t8, .L7F0025BC +/* 0370B0 7F002580 30790002 */ andi $t9, $v1, 2 +/* 0370B4 7F002584 C4400010 */ lwc1 $f0, 0x10($v0) +/* 0370B8 7F002588 13200007 */ beqz $t9, .L7F0025A8 +/* 0370BC 7F00258C C442000C */ lwc1 $f2, 0xc($v0) +/* 0370C0 7F002590 46001032 */ c.eq.s $f2, $f0 +/* 0370C4 7F002594 00000000 */ nop +/* 0370C8 7F002598 45000008 */ bc1f .L7F0025BC +/* 0370CC 7F00259C 00000000 */ nop +/* 0370D0 7F0025A0 10000006 */ b .L7F0025BC +/* 0370D4 7F0025A4 46007486 */ mov.s $f18, $f14 +.L7F0025A8: +/* 0370D8 7F0025A8 46001032 */ c.eq.s $f2, $f0 +/* 0370DC 7F0025AC 00000000 */ nop +/* 0370E0 7F0025B0 45000002 */ bc1f .L7F0025BC +/* 0370E4 7F0025B4 00000000 */ nop +/* 0370E8 7F0025B8 46007406 */ mov.s $f16, $f14 +.L7F0025BC: +/* 0370EC 7F0025BC 1500000F */ bnez $t0, .L7F0025FC +/* 0370F0 7F0025C0 30690002 */ andi $t1, $v1, 2 +/* 0370F4 7F0025C4 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0370F8 7F0025C8 11200007 */ beqz $t1, .L7F0025E8 +/* 0370FC 7F0025CC C4420014 */ lwc1 $f2, 0x14($v0) +/* 037100 7F0025D0 46001032 */ c.eq.s $f2, $f0 +/* 037104 7F0025D4 00000000 */ nop +/* 037108 7F0025D8 45020009 */ bc1fl .L7F002600 +/* 03710C 7F0025DC 460E6303 */ div.s $f12, $f12, $f14 +/* 037110 7F0025E0 10000006 */ b .L7F0025FC +/* 037114 7F0025E4 46007406 */ mov.s $f16, $f14 +.L7F0025E8: +/* 037118 7F0025E8 46001032 */ c.eq.s $f2, $f0 +/* 03711C 7F0025EC 00000000 */ nop +/* 037120 7F0025F0 45020003 */ bc1fl .L7F002600 +/* 037124 7F0025F4 460E6303 */ div.s $f12, $f12, $f14 +/* 037128 7F0025F8 46007486 */ mov.s $f18, $f14 +.L7F0025FC: +/* 03712C 7F0025FC 460E6303 */ div.s $f12, $f12, $f14 +.L7F002600: +/* 037130 7F002600 3C018005 */ lui $at, %hi(D_8004EEB4) +/* 037134 7F002604 C420EEB4 */ lwc1 $f0, %lo(D_8004EEB4)($at) +/* 037138 7F002608 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03713C 7F00260C 460E8403 */ div.s $f16, $f16, $f14 +/* 037140 7F002610 4600603E */ c.le.s $f12, $f0 +/* 037144 7F002614 00000000 */ nop +/* 037148 7F002618 45010009 */ bc1t .L7F002640 +/* 03714C 7F00261C 460E9483 */ div.s $f18, $f18, $f14 +/* 037150 7F002620 4600803E */ c.le.s $f16, $f0 +/* 037154 7F002624 00000000 */ nop +/* 037158 7F002628 45030006 */ bc1tl .L7F002644 +/* 03715C 7F00262C 44816000 */ mtc1 $at, $f12 +/* 037160 7F002630 4600903E */ c.le.s $f18, $f0 +/* 037164 7F002634 00000000 */ nop +/* 037168 7F002638 45020006 */ bc1fl .L7F002654 +/* 03716C 7F00263C E7AE0048 */ swc1 $f14, 0x48($sp) +.L7F002640: +/* 037170 7F002640 44816000 */ mtc1 $at, $f12 +.L7F002644: +/* 037174 7F002644 00000000 */ nop +/* 037178 7F002648 46006486 */ mov.s $f18, $f12 +/* 03717C 7F00264C 46006406 */ mov.s $f16, $f12 +/* 037180 7F002650 E7AE0048 */ swc1 $f14, 0x48($sp) +.L7F002654: +/* 037184 7F002654 E7B00054 */ swc1 $f16, 0x54($sp) +/* 037188 7F002658 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 03718C 7F00265C E7B20050 */ swc1 $f18, 0x50($sp) +/* 037190 7F002660 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 037194 7F002664 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 037198 7F002668 27A5008C */ addiu $a1, $sp, 0x8c +/* 03719C 7F00266C C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0371A0 7F002670 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0371A4 7F002674 27A5008C */ addiu $a1, $sp, 0x8c +/* 0371A8 7F002678 8E240014 */ lw $a0, 0x14($s1) +/* 0371AC 7F00267C C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0371B0 7F002680 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0371B4 7F002684 460E3282 */ mul.s $f10, $f6, $f14 +/* 0371B8 7F002688 44055000 */ mfc1 $a1, $f10 +/* 0371BC 7F00268C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0371C0 7F002690 00000000 */ nop +.L7F002694: +/* 0371C4 7F002694 8E240014 */ lw $a0, 0x14($s1) +.L7F002698: +/* 0371C8 7F002698 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0371CC 7F00269C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0371D0 7F0026A0 46082182 */ mul.s $f6, $f4, $f8 +/* 0371D4 7F0026A4 44053000 */ mfc1 $a1, $f6 +/* 0371D8 7F0026A8 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0371DC 7F0026AC 00000000 */ nop +/* 0371E0 7F0026B0 8E2A0014 */ lw $t2, 0x14($s1) +/* 0371E4 7F0026B4 27A5008C */ addiu $a1, $sp, 0x8c +/* 0371E8 7F0026B8 0FC1629F */ jal matrix_scalar_multiply +/* 0371EC 7F0026BC C54C0014 */ lwc1 $f12, 0x14($t2) +/* 0371F0 7F0026C0 8E2B0008 */ lw $t3, 8($s1) +/* 0371F4 7F0026C4 02202025 */ move $a0, $s1 +/* 0371F8 7F0026C8 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0371FC 7F0026CC 316C0002 */ andi $t4, $t3, 2 +/* 037200 7F0026D0 1180000A */ beqz $t4, .L7F0026FC +/* 037204 7F0026D4 27A6008C */ addiu $a2, $sp, 0x8c +/* 037208 7F0026D8 27AD0080 */ addiu $t5, $sp, 0x80 +/* 03720C 7F0026DC AFAD0010 */ sw $t5, 0x10($sp) +/* 037210 7F0026E0 02202025 */ move $a0, $s1 +/* 037214 7F0026E4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 037218 7F0026E8 27A6008C */ addiu $a2, $sp, 0x8c +/* 03721C 7F0026EC 0FC102E8 */ jal sub_GAME_7F040BA0 +/* 037220 7F0026F0 8FA700DC */ lw $a3, 0xdc($sp) +/* 037224 7F0026F4 10000005 */ b .L7F00270C +/* 037228 7F0026F8 00000000 */ nop +.L7F0026FC: +/* 03722C 7F0026FC 27AE0080 */ addiu $t6, $sp, 0x80 +/* 037230 7F002700 AFAE0010 */ sw $t6, 0x10($sp) +/* 037234 7F002704 0FC10223 */ jal sub_GAME_7F04088C +/* 037238 7F002708 8FA700DC */ lw $a3, 0xdc($sp) +.L7F00270C: +/* 03723C 7F00270C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 037240 7F002710 02202025 */ move $a0, $s1 +/* 037244 7F002714 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 037248 7F002718 8FA40060 */ lw $a0, 0x60($sp) +/* 03724C 7F00271C 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 037250 7F002720 8FA40060 */ lw $a0, 0x60($sp) +.L7F002724: +/* 037254 7F002724 8FBF0034 */ lw $ra, 0x34($sp) +.L7F002728: +/* 037258 7F002728 8FB0002C */ lw $s0, 0x2c($sp) +/* 03725C 7F00272C 8FB10030 */ lw $s1, 0x30($sp) +/* 037260 7F002730 03E00008 */ jr $ra +/* 037264 7F002734 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + +#ifdef NONMATCHING +void expand_08_obj_set_guard_MP_weapons(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_8004EEB8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +glabel jpt_mp_ammo_crate_expansion +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.text +glabel expand_08_obj_set_guard_MP_weapons +/* 037268 7F002738 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03726C 7F00273C AFBF0014 */ sw $ra, 0x14($sp) +/* 037270 7F002740 AFA40028 */ sw $a0, 0x28($sp) +/* 037274 7F002744 AFA60030 */ sw $a2, 0x30($sp) +/* 037278 7F002748 8CAE0008 */ lw $t6, 8($a1) +/* 03727C 7F00274C 00A03825 */ move $a3, $a1 +/* 037280 7F002750 31CF4000 */ andi $t7, $t6, 0x4000 +/* 037284 7F002754 51E0002B */ beql $t7, $zero, .L7F002804 +/* 037288 7F002758 24050001 */ li $a1, 1 +/* 03728C 7F00275C 84A40006 */ lh $a0, 6($a1) +/* 037290 7F002760 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 037294 7F002764 AFA5002C */ sw $a1, 0x2c($sp) +/* 037298 7F002768 8FA7002C */ lw $a3, 0x2c($sp) +/* 03729C 7F00276C 1040008A */ beqz $v0, .L7F002998 +/* 0372A0 7F002770 AFA2001C */ sw $v0, 0x1c($sp) +/* 0372A4 7F002774 8C580018 */ lw $t8, 0x18($v0) +/* 0372A8 7F002778 53000088 */ beql $t8, $zero, .L7F00299C +/* 0372AC 7F00277C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0372B0 7F002780 8C59001C */ lw $t9, 0x1c($v0) +/* 0372B4 7F002784 2404001C */ li $a0, 28 +/* 0372B8 7F002788 53200084 */ beql $t9, $zero, .L7F00299C +/* 0372BC 7F00278C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0372C0 7F002790 0FC249EF */ jal cheatCheckIfOn +/* 0372C4 7F002794 AFA7002C */ sw $a3, 0x2c($sp) +/* 0372C8 7F002798 10400011 */ beqz $v0, .L7F0027E0 +/* 0372CC 7F00279C 8FA7002C */ lw $a3, 0x2c($sp) +/* 0372D0 7F0027A0 80E80080 */ lb $t0, 0x80($a3) +/* 0372D4 7F0027A4 2509FFFE */ addiu $t1, $t0, -2 +/* 0372D8 7F0027A8 2D21001E */ sltiu $at, $t1, 0x1e +/* 0372DC 7F0027AC 1020000C */ beqz $at, .L7F0027E0 +/* 0372E0 7F0027B0 00094880 */ sll $t1, $t1, 2 +/* 0372E4 7F0027B4 3C018005 */ lui $at, %hi(jpt_8004EEB8) +/* 0372E8 7F0027B8 00290821 */ addu $at, $at, $t1 +/* 0372EC 7F0027BC 8C29EEB8 */ lw $t1, %lo(jpt_8004EEB8)($at) +/* 0372F0 7F0027C0 01200008 */ jr $t1 +/* 0372F4 7F0027C4 00000000 */ nop +.L7F0027C8: +/* 0372F8 7F0027C8 240A0019 */ li $t2, 25 +/* 0372FC 7F0027CC 240B00D3 */ li $t3, 211 +/* 037300 7F0027D0 240C0100 */ li $t4, 256 +/* 037304 7F0027D4 A0EA0080 */ sb $t2, 0x80($a3) +/* 037308 7F0027D8 A4EB0004 */ sh $t3, 4($a3) +/* 03730C 7F0027DC A4EC0000 */ sh $t4, ($a3) +.L7F0027E0: +/* 037310 7F0027E0 80E40080 */ lb $a0, 0x80($a3) +/* 037314 7F0027E4 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 037318 7F0027E8 AFA7002C */ sw $a3, 0x2c($sp) +/* 03731C 7F0027EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 037320 7F0027F0 0FC1480C */ jal sub_GAME_7F052030 +/* 037324 7F0027F4 8FA5001C */ lw $a1, 0x1c($sp) +/* 037328 7F0027F8 10000068 */ b .L7F00299C +/* 03732C 7F0027FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 037330 7F002800 24050001 */ li $a1, 1 +.L7F002804: +/* 037334 7F002804 AFA50018 */ sw $a1, 0x18($sp) +/* 037338 7F002808 0FC26919 */ jal get_num_players +/* 03733C 7F00280C AFA7002C */ sw $a3, 0x2c($sp) +/* 037340 7F002810 28410002 */ slti $at, $v0, 2 +/* 037344 7F002814 8FA50018 */ lw $a1, 0x18($sp) +/* 037348 7F002818 14200054 */ bnez $at, .L7F00296C +/* 03734C 7F00281C 8FA7002C */ lw $a3, 0x2c($sp) +/* 037350 7F002820 240DFFFF */ li $t5, -1 +/* 037354 7F002824 3C018007 */ lui $at, %hi(lastmpweaponnum) +/* 037358 7F002828 AC2D9540 */ sw $t5, %lo(lastmpweaponnum)($at) +/* 03735C 7F00282C 90E20080 */ lbu $v0, 0x80($a3) +/* 037360 7F002830 28410059 */ slti $at, $v0, 0x59 +/* 037364 7F002834 14200009 */ bnez $at, .L7F00285C +/* 037368 7F002838 244EFF10 */ addiu $t6, $v0, -0xf0 +/* 03736C 7F00283C 2DC10008 */ sltiu $at, $t6, 8 +/* 037370 7F002840 1020004A */ beqz $at, .L7F00296C +/* 037374 7F002844 000E7080 */ sll $t6, $t6, 2 +/* 037378 7F002848 3C018005 */ lui $at, %hi(jpt_mp_ammo_crate_expansion) +/* 03737C 7F00284C 002E0821 */ addu $at, $at, $t6 +/* 037380 7F002850 8C2EEF30 */ lw $t6, %lo(jpt_mp_ammo_crate_expansion)($at) +/* 037384 7F002854 01C00008 */ jr $t6 +/* 037388 7F002858 00000000 */ nop +.L7F00285C: +/* 03738C 7F00285C 24010058 */ li $at, 88 +/* 037390 7F002860 5041003B */ beql $v0, $at, .L7F002950 +/* 037394 7F002864 AFA50018 */ sw $a1, 0x18($sp) +/* 037398 7F002868 10000041 */ b .L7F002970 +/* 03739C 7F00286C 80E40080 */ lb $a0, 0x80($a3) +.L7F002870: +/* 0373A0 7F002870 0FC31985 */ jal getPtrMPWeaponSetData +/* 0373A4 7F002874 AFA7002C */ sw $a3, 0x2c($sp) +/* 0373A8 7F002878 8FA7002C */ lw $a3, 0x2c($sp) +/* 0373AC 7F00287C 3C018007 */ lui $at, %hi(lastmpweaponnum) +/* 0373B0 7F002880 24090001 */ li $t1, 1 +/* 0373B4 7F002884 90E40080 */ lbu $a0, 0x80($a3) +/* 0373B8 7F002888 2484FF10 */ addiu $a0, $a0, -0xf0 +/* 0373BC 7F00288C 00047880 */ sll $t7, $a0, 2 +/* 0373C0 7F002890 01E47823 */ subu $t7, $t7, $a0 +/* 0373C4 7F002894 000F78C0 */ sll $t7, $t7, 3 +/* 0373C8 7F002898 AC249540 */ sw $a0, %lo(lastmpweaponnum)($at) +/* 0373CC 7F00289C 004F1821 */ addu $v1, $v0, $t7 +/* 0373D0 7F0028A0 8C780000 */ lw $t8, ($v1) +/* 0373D4 7F0028A4 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0373D8 7F0028A8 44813000 */ mtc1 $at, $f6 +/* 0373DC 7F0028AC A0F80080 */ sb $t8, 0x80($a3) +/* 0373E0 7F0028B0 8C790004 */ lw $t9, 4($v1) +/* 0373E4 7F0028B4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0373E8 7F0028B8 A4F90004 */ sh $t9, 4($a3) +/* 0373EC 7F0028BC C4640008 */ lwc1 $f4, 8($v1) +/* 0373F0 7F0028C0 46062202 */ mul.s $f8, $f4, $f6 +/* 0373F4 7F0028C4 4448F800 */ cfc1 $t0, $31 +/* 0373F8 7F0028C8 44C9F800 */ ctc1 $t1, $31 +/* 0373FC 7F0028CC 00000000 */ nop +/* 037400 7F0028D0 460042A4 */ cvt.w.s $f10, $f8 +/* 037404 7F0028D4 4449F800 */ cfc1 $t1, $31 +/* 037408 7F0028D8 00000000 */ nop +/* 03740C 7F0028DC 31290078 */ andi $t1, $t1, 0x78 +/* 037410 7F0028E0 51200013 */ beql $t1, $zero, .L7F002930 +/* 037414 7F0028E4 44095000 */ mfc1 $t1, $f10 +/* 037418 7F0028E8 44815000 */ mtc1 $at, $f10 +/* 03741C 7F0028EC 24090001 */ li $t1, 1 +/* 037420 7F0028F0 460A4281 */ sub.s $f10, $f8, $f10 +/* 037424 7F0028F4 44C9F800 */ ctc1 $t1, $31 +/* 037428 7F0028F8 00000000 */ nop +/* 03742C 7F0028FC 460052A4 */ cvt.w.s $f10, $f10 +/* 037430 7F002900 4449F800 */ cfc1 $t1, $31 +/* 037434 7F002904 00000000 */ nop +/* 037438 7F002908 31290078 */ andi $t1, $t1, 0x78 +/* 03743C 7F00290C 15200005 */ bnez $t1, .L7F002924 +/* 037440 7F002910 00000000 */ nop +/* 037444 7F002914 44095000 */ mfc1 $t1, $f10 +/* 037448 7F002918 3C018000 */ lui $at, 0x8000 +/* 03744C 7F00291C 10000007 */ b .L7F00293C +/* 037450 7F002920 01214825 */ or $t1, $t1, $at +.L7F002924: +/* 037454 7F002924 10000005 */ b .L7F00293C +/* 037458 7F002928 2409FFFF */ li $t1, -1 +/* 03745C 7F00292C 44095000 */ mfc1 $t1, $f10 +.L7F002930: +/* 037460 7F002930 00000000 */ nop +/* 037464 7F002934 0520FFFB */ bltz $t1, .L7F002924 +/* 037468 7F002938 00000000 */ nop +.L7F00293C: +/* 03746C 7F00293C 44C8F800 */ ctc1 $t0, $31 +/* 037470 7F002940 A4E90000 */ sh $t1, ($a3) +/* 037474 7F002944 10000009 */ b .L7F00296C +/* 037478 7F002948 8C650014 */ lw $a1, 0x14($v1) +/* 03747C 7F00294C AFA50018 */ sw $a1, 0x18($sp) +.L7F002950: +/* 037480 7F002950 0FC051D6 */ jal get_scenario +/* 037484 7F002954 AFA7002C */ sw $a3, 0x2c($sp) +/* 037488 7F002958 24010002 */ li $at, 2 +/* 03748C 7F00295C 8FA50018 */ lw $a1, 0x18($sp) +/* 037490 7F002960 10410002 */ beq $v0, $at, .L7F00296C +/* 037494 7F002964 8FA7002C */ lw $a3, 0x2c($sp) +/* 037498 7F002968 00002825 */ move $a1, $zero +def_7F002854: +.L7F00296C: +/* 03749C 7F00296C 80E40080 */ lb $a0, 0x80($a3) +.L7F002970: +/* 0374A0 7F002970 5080000A */ beql $a0, $zero, .L7F00299C +/* 0374A4 7F002974 8FBF0014 */ lw $ra, 0x14($sp) +/* 0374A8 7F002978 50A00008 */ beql $a1, $zero, .L7F00299C +/* 0374AC 7F00297C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0374B0 7F002980 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 0374B4 7F002984 AFA7002C */ sw $a3, 0x2c($sp) +/* 0374B8 7F002988 8FA5002C */ lw $a1, 0x2c($sp) +/* 0374BC 7F00298C 8FA40028 */ lw $a0, 0x28($sp) +/* 0374C0 7F002990 0FC00767 */ jal prepare_load_objects +/* 0374C4 7F002994 8FA60030 */ lw $a2, 0x30($sp) +.L7F002998: +/* 0374C8 7F002998 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00299C: +/* 0374CC 7F00299C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0374D0 7F0029A0 03E00008 */ jr $ra +/* 0374D4 7F0029A4 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void MP_weapon_expansion_routine(void *arg1, ? arg7) { + ? temp_ret; + + // Node 0 + if ((arg1->unk8 & 0x4000) != 0) + { + // Node 1 + temp_ret = check_if_guardnum_loaded_get_ptr_GUARDdata(arg1->unk6, arg1); + if (temp_ret != 0) + { + // Node 2 + if (temp_ret->unk18 != 0) + { + // Node 3 + if (temp_ret->unk1C != 0) + { + // Node 4 + sub_GAME_7F051084(arg7, temp_ret, arg7); + return; + // (possible return value: sub_GAME_7F051084(arg7, temp_ret, arg7)) + } + } + } + } + else + { + // Node 5 + prepare_load_objects(arg1, arg1); + } + // Node 6 + return; + // (possible return value: prepare_load_objects(arg1, arg1)) +} + +#else +GLOBAL_ASM( +.text +glabel MP_weapon_expansion_routine +/* 0374D8 7F0029A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0374DC 7F0029AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0374E0 7F0029B0 8CAE0008 */ lw $t6, 8($a1) +/* 0374E4 7F0029B4 00A03825 */ move $a3, $a1 +/* 0374E8 7F0029B8 31CF4000 */ andi $t7, $t6, 0x4000 +/* 0374EC 7F0029BC 11E00011 */ beqz $t7, .L7F002A04 +/* 0374F0 7F0029C0 00000000 */ nop +/* 0374F4 7F0029C4 84A40006 */ lh $a0, 6($a1) +/* 0374F8 7F0029C8 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 0374FC 7F0029CC AFA5001C */ sw $a1, 0x1c($sp) +/* 037500 7F0029D0 8FA7001C */ lw $a3, 0x1c($sp) +/* 037504 7F0029D4 1040000D */ beqz $v0, .L7F002A0C +/* 037508 7F0029D8 00402825 */ move $a1, $v0 +/* 03750C 7F0029DC 8C580018 */ lw $t8, 0x18($v0) +/* 037510 7F0029E0 5300000B */ beql $t8, $zero, .L7F002A10 +/* 037514 7F0029E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 037518 7F0029E8 8C59001C */ lw $t9, 0x1c($v0) +/* 03751C 7F0029EC 53200008 */ beql $t9, $zero, .L7F002A10 +/* 037520 7F0029F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 037524 7F0029F4 0FC14421 */ jal sub_GAME_7F051084 +/* 037528 7F0029F8 00E02025 */ move $a0, $a3 +/* 03752C 7F0029FC 10000004 */ b .L7F002A10 +/* 037530 7F002A00 8FBF0014 */ lw $ra, 0x14($sp) +.L7F002A04: +/* 037534 7F002A04 0FC00767 */ jal prepare_load_objects +/* 037538 7F002A08 00E02825 */ move $a1, $a3 +.L7F002A0C: +/* 03753C 7F002A0C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F002A10: +/* 037540 7F002A10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 037544 7F002A14 03E00008 */ jr $ra +/* 037548 7F002A18 00000000 */ nop +) +#endif + + +void jmp_prepare_load_objects(void) { + prepare_load_objects(); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F002A3C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004EF50 +.word 0x40c90fdb +glabel D_8004EF54 +.word 0x40c90fdb +glabel D_8004EF58 +.word 0x3ebba866 +glabel D_8004EF5C +.word 0x3fc90fdb +glabel D_8004EF60 +.word 0x3fc90fdb +glabel D_8004EF64 +.word 0x358637bd + +.text +glabel sub_GAME_7F002A3C +/* 03756C 7F002A3C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 037570 7F002A40 AFBF0034 */ sw $ra, 0x34($sp) +/* 037574 7F002A44 AFB00030 */ sw $s0, 0x30($sp) +/* 037578 7F002A48 0FC00767 */ jal prepare_load_objects +/* 03757C 7F002A4C 00A08025 */ move $s0, $a1 +/* 037580 7F002A50 8E020080 */ lw $v0, 0x80($s0) +/* 037584 7F002A54 0442007C */ bltzl $v0, .L7F002C48 +/* 037588 7F002A58 8FBF0034 */ lw $ra, 0x34($sp) +/* 03758C 7F002A5C 8E0E0014 */ lw $t6, 0x14($s0) +/* 037590 7F002A60 00025100 */ sll $t2, $v0, 4 +/* 037594 7F002A64 28412710 */ slti $at, $v0, 0x2710 +/* 037598 7F002A68 8DCF0008 */ lw $t7, 8($t6) +/* 03759C 7F002A6C 00024080 */ sll $t0, $v0, 2 +/* 0375A0 7F002A70 01425021 */ addu $t2, $t2, $v0 +/* 0375A4 7F002A74 8DF80008 */ lw $t8, 8($t7) +/* 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(ptr_2xxxpresets) +/* 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(ptr_0xxxpresets) +/* 0375C8 7F002A98 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($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(ptr_2xxxpresets)($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 +/* 0375EC 7F002ABC 00611821 */ addu $v1, $v1, $at +.L7F002AC0: +/* 0375F0 7F002AC0 C4C40000 */ lwc1 $f4, ($a2) +/* 0375F4 7F002AC4 26040018 */ addiu $a0, $s0, 0x18 +/* 0375F8 7F002AC8 27A50044 */ addiu $a1, $sp, 0x44 +/* 0375FC 7F002ACC E7A40044 */ swc1 $f4, 0x44($sp) +/* 037600 7F002AD0 C4C60004 */ lwc1 $f6, 4($a2) +/* 037604 7F002AD4 E7A60048 */ swc1 $f6, 0x48($sp) +/* 037608 7F002AD8 C4C80008 */ lwc1 $f8, 8($a2) +/* 03760C 7F002ADC AFA30050 */ sw $v1, 0x50($sp) +/* 037610 7F002AE0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 037614 7F002AE4 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 037618 7F002AE8 8E0C0010 */ lw $t4, 0x10($s0) +/* 03761C 7F002AEC C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 037620 7F002AF0 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 037624 7F002AF4 C5900008 */ lwc1 $f16, 8($t4) +/* 037628 7F002AF8 8FA30050 */ lw $v1, 0x50($sp) +/* 03762C 7F002AFC 44800000 */ mtc1 $zero, $f0 +/* 037630 7F002B00 46105480 */ add.s $f18, $f10, $f16 +/* 037634 7F002B04 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 037638 7F002B08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03763C 7F002B0C 26040084 */ addiu $a0, $s0, 0x84 +/* 037640 7F002B10 E7B20044 */ swc1 $f18, 0x44($sp) +/* 037644 7F002B14 8E0D0010 */ lw $t5, 0x10($s0) +/* 037648 7F002B18 44050000 */ mfc1 $a1, $f0 +/* 03764C 7F002B1C 44060000 */ mfc1 $a2, $f0 +/* 037650 7F002B20 C5A6000C */ lwc1 $f6, 0xc($t5) +/* 037654 7F002B24 44070000 */ mfc1 $a3, $f0 +/* 037658 7F002B28 46062200 */ add.s $f8, $f4, $f6 +/* 03765C 7F002B2C E7A80048 */ swc1 $f8, 0x48($sp) +/* 037660 7F002B30 8E0E0010 */ lw $t6, 0x10($s0) +/* 037664 7F002B34 C5D00010 */ lwc1 $f16, 0x10($t6) +/* 037668 7F002B38 46105100 */ add.s $f4, $f10, $f16 +/* 03766C 7F002B3C E7A4004C */ swc1 $f4, 0x4c($sp) +/* 037670 7F002B40 C4660000 */ lwc1 $f6, ($v1) +/* 037674 7F002B44 46069281 */ sub.s $f10, $f18, $f6 +/* 037678 7F002B48 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 03767C 7F002B4C C4700004 */ lwc1 $f16, 4($v1) +/* 037680 7F002B50 46104481 */ sub.s $f18, $f8, $f16 +/* 037684 7F002B54 44814000 */ mtc1 $at, $f8 +/* 037688 7F002B58 E7B20014 */ swc1 $f18, 0x14($sp) +/* 03768C 7F002B5C C4660008 */ lwc1 $f6, 8($v1) +/* 037690 7F002B60 AFA4003C */ sw $a0, 0x3c($sp) +/* 037694 7F002B64 E7A00024 */ swc1 $f0, 0x24($sp) +/* 037698 7F002B68 46062281 */ sub.s $f10, $f4, $f6 +/* 03769C 7F002B6C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0376A0 7F002B70 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0376A4 7F002B74 0FC16642 */ jal sub_GAME_7F059908 +/* 0376A8 7F002B78 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0376AC 7F002B7C 8E0F0014 */ lw $t7, 0x14($s0) +/* 0376B0 7F002B80 8FA5003C */ lw $a1, 0x3c($sp) +/* 0376B4 7F002B84 0FC1629F */ jal matrix_scalar_multiply +/* 0376B8 7F002B88 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0376BC 7F002B8C 8E1800E4 */ lw $t8, 0xe4($s0) +/* 0376C0 7F002B90 44800000 */ mtc1 $zero, $f0 +/* 0376C4 7F002B94 8FA30050 */ lw $v1, 0x50($sp) +/* 0376C8 7F002B98 5700001E */ bnezl $t8, .L7F002C14 +/* 0376CC 7F002B9C C60400CC */ lwc1 $f4, 0xcc($s0) +/* 0376D0 7F002BA0 8E0800CC */ lw $t0, 0xcc($s0) +/* 0376D4 7F002BA4 3C018005 */ lui $at, %hi(D_8004EF50) +/* 0376D8 7F002BA8 C422EF50 */ lwc1 $f2, %lo(D_8004EF50)($at) +/* 0376DC 7F002BAC 44888000 */ mtc1 $t0, $f16 +/* 0376E0 7F002BB0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0376E4 7F002BB4 44816000 */ mtc1 $at, $f12 +/* 0376E8 7F002BB8 468084A0 */ cvt.s.w $f18, $f16 +/* 0376EC 7F002BBC 8E0900D0 */ lw $t1, 0xd0($s0) +/* 0376F0 7F002BC0 8E0A00DC */ lw $t2, 0xdc($s0) +/* 0376F4 7F002BC4 8E0B00E8 */ lw $t3, 0xe8($s0) +/* 0376F8 7F002BC8 44895000 */ mtc1 $t1, $f10 +/* 0376FC 7F002BCC 24190001 */ li $t9, 1 +/* 037700 7F002BD0 46029102 */ mul.s $f4, $f18, $f2 +/* 037704 7F002BD4 AE1900E4 */ sw $t9, 0xe4($s0) +/* 037708 7F002BD8 46805220 */ cvt.s.w $f8, $f10 +/* 03770C 7F002BDC 460C2183 */ div.s $f6, $f4, $f12 +/* 037710 7F002BE0 448A2000 */ mtc1 $t2, $f4 +/* 037714 7F002BE4 46024402 */ mul.s $f16, $f8, $f2 +/* 037718 7F002BE8 460C8483 */ div.s $f18, $f16, $f12 +/* 03771C 7F002BEC E60600CC */ swc1 $f6, 0xcc($s0) +/* 037720 7F002BF0 448B8000 */ mtc1 $t3, $f16 +/* 037724 7F002BF4 468021A0 */ cvt.s.w $f6, $f4 +/* 037728 7F002BF8 46023282 */ mul.s $f10, $f6, $f2 +/* 03772C 7F002BFC E61200D0 */ swc1 $f18, 0xd0($s0) +/* 037730 7F002C00 468084A0 */ cvt.s.w $f18, $f16 +/* 037734 7F002C04 460C5203 */ div.s $f8, $f10, $f12 +/* 037738 7F002C08 E61200E8 */ swc1 $f18, 0xe8($s0) +/* 03773C 7F002C0C E60800DC */ swc1 $f8, 0xdc($s0) +/* 037740 7F002C10 C60400CC */ lwc1 $f4, 0xcc($s0) +.L7F002C14: +/* 037744 7F002C14 AE0000D4 */ sw $zero, 0xd4($s0) +/* 037748 7F002C18 E60000D8 */ swc1 $f0, 0xd8($s0) +/* 03774C 7F002C1C E60400C8 */ swc1 $f4, 0xc8($s0) +/* 037750 7F002C20 C4700008 */ lwc1 $f16, 8($v1) +/* 037754 7F002C24 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 037758 7F002C28 C46A0000 */ lwc1 $f10, ($v1) +/* 03775C 7F002C2C C7A60044 */ lwc1 $f6, 0x44($sp) +/* 037760 7F002C30 46104381 */ sub.s $f14, $f8, $f16 +/* 037764 7F002C34 0FC16A8C */ jal atan2f +/* 037768 7F002C38 460A3301 */ sub.s $f12, $f6, $f10 +/* 03776C 7F002C3C E60000C4 */ swc1 $f0, 0xc4($s0) +/* 037770 7F002C40 AE0000E0 */ sw $zero, 0xe0($s0) +/* 037774 7F002C44 8FBF0034 */ lw $ra, 0x34($sp) +.L7F002C48: +/* 037778 7F002C48 8FB00030 */ lw $s0, 0x30($sp) +/* 03777C 7F002C4C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 037780 7F002C50 03E00008 */ jr $ra +/* 037784 7F002C54 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void expand_type_0D_object_autoturret(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_type_0D_object_autoturret +/* 037788 7F002C58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03778C 7F002C5C AFBF001C */ sw $ra, 0x1c($sp) +/* 037790 7F002C60 AFB00018 */ sw $s0, 0x18($sp) +/* 037794 7F002C64 0FC00767 */ jal prepare_load_objects +/* 037798 7F002C68 00A08025 */ move $s0, $a1 +/* 03779C 7F002C6C 8E0E00A4 */ lw $t6, 0xa4($s0) +/* 0377A0 7F002C70 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 0377A4 7F002C74 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0377A8 7F002C78 448E2000 */ mtc1 $t6, $f4 +/* 0377AC 7F002C7C 44811000 */ mtc1 $at, $f2 +/* 0377B0 7F002C80 3C018005 */ lui $at, %hi(D_8004EF54) +/* 0377B4 7F002C84 468021A0 */ cvt.s.w $f6, $f4 +/* 0377B8 7F002C88 C42CEF54 */ lwc1 $f12, %lo(D_8004EF54)($at) +/* 0377BC 7F002C8C 448F8000 */ mtc1 $t7, $f16 +/* 0377C0 7F002C90 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0377C4 7F002C94 44812000 */ mtc1 $at, $f4 +/* 0377C8 7F002C98 468084A0 */ cvt.s.w $f18, $f16 +/* 0377CC 7F002C9C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0377D0 7F002CA0 8E180088 */ lw $t8, 0x88($s0) +/* 0377D4 7F002CA4 8E19008C */ lw $t9, 0x8c($s0) +/* 0377D8 7F002CA8 44800000 */ mtc1 $zero, $f0 +/* 0377DC 7F002CAC 2403FFFF */ li $v1, -1 +/* 0377E0 7F002CB0 46049182 */ mul.s $f6, $f18, $f4 +/* 0377E4 7F002CB4 AE0000AC */ sw $zero, 0xac($s0) +/* 0377E8 7F002CB8 AE0300B8 */ sw $v1, 0xb8($s0) +/* 0377EC 7F002CBC AE0300BC */ sw $v1, 0xbc($s0) +/* 0377F0 7F002CC0 AE0300C0 */ sw $v1, 0xc0($s0) +/* 0377F4 7F002CC4 AE0000C4 */ sw $zero, 0xc4($s0) +/* 0377F8 7F002CC8 46024283 */ div.s $f10, $f8, $f2 +/* 0377FC 7F002CCC AE0000C8 */ sw $zero, 0xc8($s0) +/* 037800 7F002CD0 24040030 */ li $a0, 48 +/* 037804 7F002CD4 24050004 */ li $a1, 4 +/* 037808 7F002CD8 E6000090 */ swc1 $f0, 0x90($s0) +/* 03780C 7F002CDC E6000094 */ swc1 $f0, 0x94($s0) +/* 037810 7F002CE0 E6000084 */ swc1 $f0, 0x84($s0) +/* 037814 7F002CE4 E600009C */ swc1 $f0, 0x9c($s0) +/* 037818 7F002CE8 E60000A0 */ swc1 $f0, 0xa0($s0) +/* 03781C 7F002CEC E6000098 */ swc1 $f0, 0x98($s0) +/* 037820 7F002CF0 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 037824 7F002CF4 E60000B4 */ swc1 $f0, 0xb4($s0) +/* 037828 7F002CF8 46023203 */ div.s $f8, $f6, $f2 +/* 03782C 7F002CFC E60A00A4 */ swc1 $f10, 0xa4($s0) +/* 037830 7F002D00 44985000 */ mtc1 $t8, $f10 +/* 037834 7F002D04 44993000 */ mtc1 $t9, $f6 +/* 037838 7F002D08 46805420 */ cvt.s.w $f16, $f10 +/* 03783C 7F002D0C 460C8482 */ mul.s $f18, $f16, $f12 +/* 037840 7F002D10 E60800A8 */ swc1 $f8, 0xa8($s0) +/* 037844 7F002D14 46803220 */ cvt.s.w $f8, $f6 +/* 037848 7F002D18 46029103 */ div.s $f4, $f18, $f2 +/* 03784C 7F002D1C 460C4282 */ mul.s $f10, $f8, $f12 +/* 037850 7F002D20 46025403 */ div.s $f16, $f10, $f2 +/* 037854 7F002D24 E6040088 */ swc1 $f4, 0x88($s0) +/* 037858 7F002D28 0C0025C8 */ jal mempAllocBytesInBank +/* 03785C 7F002D2C E610008C */ swc1 $f16, 0x8c($s0) +/* 037860 7F002D30 2403FFFF */ li $v1, -1 +/* 037864 7F002D34 AE0200CC */ sw $v0, 0xcc($s0) +/* 037868 7F002D38 A0430000 */ sb $v1, ($v0) +/* 03786C 7F002D3C 8E040080 */ lw $a0, 0x80($s0) +/* 037870 7F002D40 44800000 */ mtc1 $zero, $f0 +/* 037874 7F002D44 AE0000D0 */ sw $zero, 0xd0($s0) +/* 037878 7F002D48 0480002F */ bltz $a0, .L7F002E08 +/* 03787C 7F002D4C E60000D4 */ swc1 $f0, 0xd4($s0) +/* 037880 7F002D50 28812710 */ slti $at, $a0, 0x2710 +/* 037884 7F002D54 1020000A */ beqz $at, .L7F002D80 +/* 037888 7F002D58 00045100 */ sll $t2, $a0, 4 +/* 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(ptr_0xxxpresets) +/* 03789C 7F002D6C 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($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(ptr_2xxxpresets) +/* 0378B4 7F002D84 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($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 +/* 0378C4 7F002D94 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0378C8 7F002D98 014B1821 */ addu $v1, $t2, $t3 +/* 0378CC 7F002D9C 00611821 */ addu $v1, $v1, $at +.L7F002DA0: +/* 0378D0 7F002DA0 8E020010 */ lw $v0, 0x10($s0) +/* 0378D4 7F002DA4 C4660004 */ lwc1 $f6, 4($v1) +/* 0378D8 7F002DA8 C4720000 */ lwc1 $f18, ($v1) +/* 0378DC 7F002DAC C448000C */ lwc1 $f8, 0xc($v0) +/* 0378E0 7F002DB0 C4440008 */ lwc1 $f4, 8($v0) +/* 0378E4 7F002DB4 46083281 */ sub.s $f10, $f6, $f8 +/* 0378E8 7F002DB8 46049301 */ sub.s $f12, $f18, $f4 +/* 0378EC 7F002DBC E7AA0028 */ swc1 $f10, 0x28($sp) +/* 0378F0 7F002DC0 C4700008 */ lwc1 $f16, 8($v1) +/* 0378F4 7F002DC4 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0378F8 7F002DC8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0378FC 7F002DCC 46128381 */ sub.s $f14, $f16, $f18 +/* 037900 7F002DD0 0FC16A8C */ jal atan2f +/* 037904 7F002DD4 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 037908 7F002DD8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 03790C 7F002DDC C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 037910 7F002DE0 E6000084 */ swc1 $f0, 0x84($s0) +/* 037914 7F002DE4 46021102 */ mul.s $f4, $f2, $f2 +/* 037918 7F002DE8 00000000 */ nop +/* 03791C 7F002DEC 460E7182 */ mul.s $f6, $f14, $f14 +/* 037920 7F002DF0 0C007DF8 */ jal sqrtf +/* 037924 7F002DF4 46062300 */ add.s $f12, $f4, $f6 +/* 037928 7F002DF8 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 03792C 7F002DFC 0FC16A8C */ jal atan2f +/* 037930 7F002E00 46000386 */ mov.s $f14, $f0 +/* 037934 7F002E04 E6000098 */ swc1 $f0, 0x98($s0) +.L7F002E08: +/* 037938 7F002E08 8FBF001C */ lw $ra, 0x1c($sp) +/* 03793C 7F002E0C 8FB00018 */ lw $s0, 0x18($sp) +/* 037940 7F002E10 27BD0038 */ addiu $sp, $sp, 0x38 +/* 037944 7F002E14 03E00008 */ jr $ra +/* 037948 7F002E18 00000000 */ nop +) +#endif + + +void jmp_prepare_load_objects_0(void) { + prepare_load_objects(); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F002E3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F002E3C +/* 03796C 7F002E3C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 037970 7F002E40 AFA40038 */ sw $a0, 0x38($sp) +/* 037974 7F002E44 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075B98) +/* 037978 7F002E48 AFB10018 */ sw $s1, 0x18($sp) +/* 03797C 7F002E4C AFB00014 */ sw $s0, 0x14($sp) +/* 037980 7F002E50 25CE5B98 */ addiu $t6, %lo(dword_CODE_bss_80075B98) # addiu $t6, $t6, 0x5b98 +/* 037984 7F002E54 24A40080 */ addiu $a0, $a1, 0x80 +/* 037988 7F002E58 00A08025 */ move $s0, $a1 +/* 03798C 7F002E5C 00C08825 */ move $s1, $a2 +/* 037990 7F002E60 AFBF001C */ sw $ra, 0x1c($sp) +/* 037994 7F002E64 00804025 */ move $t0, $a0 +/* 037998 7F002E68 25D9006C */ addiu $t9, $t6, 0x6c +.L7F002E6C: +/* 03799C 7F002E6C 8DC10000 */ lw $at, ($t6) +/* 0379A0 7F002E70 25CE000C */ addiu $t6, $t6, 0xc +/* 0379A4 7F002E74 2508000C */ addiu $t0, $t0, 0xc +/* 0379A8 7F002E78 AD01FFF4 */ sw $at, -0xc($t0) +/* 0379AC 7F002E7C 8DC1FFF8 */ lw $at, -8($t6) +/* 0379B0 7F002E80 AD01FFF8 */ sw $at, -8($t0) +/* 0379B4 7F002E84 8DC1FFFC */ lw $at, -4($t6) +/* 0379B8 7F002E88 15D9FFF8 */ bne $t6, $t9, .L7F002E6C +/* 0379BC 7F002E8C AD01FFFC */ sw $at, -4($t0) +/* 0379C0 7F002E90 8DC10000 */ lw $at, ($t6) +/* 0379C4 7F002E94 AD010000 */ sw $at, ($t0) +/* 0379C8 7F002E98 8DD90004 */ lw $t9, 4($t6) +/* 0379CC 7F002E9C AD190004 */ sw $t9, 4($t0) +/* 0379D0 7F002EA0 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 0379D4 7F002EA4 8E0500FC */ lw $a1, 0xfc($s0) +/* 0379D8 7F002EA8 86090006 */ lh $t1, 6($s0) +/* 0379DC 7F002EAC 8FA40038 */ lw $a0, 0x38($sp) +/* 0379E0 7F002EB0 02002825 */ move $a1, $s0 +/* 0379E4 7F002EB4 05210075 */ bgez $t1, .L7F00308C +/* 0379E8 7F002EB8 00000000 */ nop +/* 0379EC 7F002EBC 8E0A0008 */ lw $t2, 8($s0) +/* 0379F0 7F002EC0 314B8000 */ andi $t3, $t2, 0x8000 +/* 0379F4 7F002EC4 15600071 */ bnez $t3, .L7F00308C +/* 0379F8 7F002EC8 00000000 */ nop +/* 0379FC 7F002ECC 860C0004 */ lh $t4, 4($s0) +/* 037A00 7F002ED0 AFAC002C */ sw $t4, 0x2c($sp) +/* 037A04 7F002ED4 8E0D00F4 */ lw $t5, 0xf4($s0) +/* 037A08 7F002ED8 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 037A0C 7F002EDC 01B12021 */ addu $a0, $t5, $s1 +/* 037A10 7F002EE0 00408825 */ move $s1, $v0 +/* 037A14 7F002EE4 0FC15B0E */ jal load_model +/* 037A18 7F002EE8 8FA4002C */ lw $a0, 0x2c($sp) +/* 037A1C 7F002EEC 96180000 */ lhu $t8, ($s0) +/* 037A20 7F002EF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 037A24 7F002EF4 44982000 */ mtc1 $t8, $f4 +/* 037A28 7F002EF8 07010004 */ bgez $t8, .L7F002F0C +/* 037A2C 7F002EFC 468021A0 */ cvt.s.w $f6, $f4 +/* 037A30 7F002F00 44814000 */ mtc1 $at, $f8 +/* 037A34 7F002F04 00000000 */ nop +/* 037A38 7F002F08 46083180 */ add.s $f6, $f6, $f8 +.L7F002F0C: +/* 037A3C 7F002F0C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 037A40 7F002F10 44815000 */ mtc1 $at, $f10 +/* 037A44 7F002F14 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 037A48 7F002F18 44814000 */ mtc1 $at, $f8 +/* 037A4C 7F002F1C 460A3402 */ mul.s $f16, $f6, $f10 +/* 037A50 7F002F20 E7B00020 */ swc1 $f16, 0x20($sp) +/* 037A54 7F002F24 8E0F0074 */ lw $t7, 0x74($s0) +/* 037A58 7F002F28 448F9000 */ mtc1 $t7, $f18 +/* 037A5C 7F002F2C 00000000 */ nop +/* 037A60 7F002F30 46809120 */ cvt.s.w $f4, $f18 +/* 037A64 7F002F34 46082183 */ div.s $f6, $f4, $f8 +/* 037A68 7F002F38 0FC26919 */ jal get_num_players +/* 037A6C 7F002F3C E6060074 */ swc1 $f6, 0x74($s0) +/* 037A70 7F002F40 28410002 */ slti $at, $v0, 2 +/* 037A74 7F002F44 14200004 */ bnez $at, .L7F002F58 +/* 037A78 7F002F48 00000000 */ nop +/* 037A7C 7F002F4C 92190002 */ lbu $t9, 2($s0) +/* 037A80 7F002F50 372E0004 */ ori $t6, $t9, 4 +/* 037A84 7F002F54 A20E0002 */ sb $t6, 2($s0) +.L7F002F58: +/* 037A88 7F002F58 0FC101C7 */ jal sub_GAME_7F04071C +/* 037A8C 7F002F5C 02002025 */ move $a0, $s0 +/* 037A90 7F002F60 0FC0FFA6 */ jal sub_GAME_7F03FE98 +/* 037A94 7F002F64 AFA20024 */ sw $v0, 0x24($sp) +/* 037A98 7F002F68 AE02006C */ sw $v0, 0x6c($s0) +/* 037A9C 7F002F6C 8FA80024 */ lw $t0, 0x24($sp) +/* 037AA0 7F002F70 51000049 */ beql $t0, $zero, .L7F003098 +/* 037AA4 7F002F74 8E190008 */ lw $t9, 8($s0) +/* 037AA8 7F002F78 50400047 */ beql $v0, $zero, .L7F003098 +/* 037AAC 7F002F7C 8E190008 */ lw $t9, 8($s0) +/* 037AB0 7F002F80 8E0A0064 */ lw $t2, 0x64($s0) +/* 037AB4 7F002F84 8E040014 */ lw $a0, 0x14($s0) +/* 037AB8 7F002F88 354B0040 */ ori $t3, $t2, 0x40 +/* 037ABC 7F002F8C AE0B0064 */ sw $t3, 0x64($s0) +/* 037AC0 7F002F90 C7B00020 */ lwc1 $f16, 0x20($sp) +/* 037AC4 7F002F94 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 037AC8 7F002F98 46105482 */ mul.s $f18, $f10, $f16 +/* 037ACC 7F002F9C 44059000 */ mfc1 $a1, $f18 +/* 037AD0 7F002FA0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 037AD4 7F002FA4 00000000 */ nop +/* 037AD8 7F002FA8 8E2C0014 */ lw $t4, 0x14($s1) +/* 037ADC 7F002FAC 8E0D0014 */ lw $t5, 0x14($s0) +/* 037AE0 7F002FB0 24010001 */ li $at, 1 +/* 037AE4 7F002FB4 ADAC0018 */ sw $t4, 0x18($t5) +/* 037AE8 7F002FB8 8E0200F8 */ lw $v0, 0xf8($s0) +/* 037AEC 7F002FBC 14400008 */ bnez $v0, .L7F002FE0 +/* 037AF0 7F002FC0 00000000 */ nop +/* 037AF4 7F002FC4 8E380014 */ lw $t8, 0x14($s1) +/* 037AF8 7F002FC8 8E080014 */ lw $t0, 0x14($s0) +/* 037AFC 7F002FCC 8F0F0008 */ lw $t7, 8($t8) +/* 037B00 7F002FD0 8DF90008 */ lw $t9, 8($t7) +/* 037B04 7F002FD4 8F2E0000 */ lw $t6, ($t9) +/* 037B08 7F002FD8 1000001A */ b .L7F003044 +/* 037B0C 7F002FDC AD0E001C */ sw $t6, 0x1c($t0) +.L7F002FE0: +/* 037B10 7F002FE0 54410009 */ bnel $v0, $at, .L7F003008 +/* 037B14 7F002FE4 24010002 */ li $at, 2 +/* 037B18 7F002FE8 8E290014 */ lw $t1, 0x14($s1) +/* 037B1C 7F002FEC 8E0D0014 */ lw $t5, 0x14($s0) +/* 037B20 7F002FF0 8D2A0008 */ lw $t2, 8($t1) +/* 037B24 7F002FF4 8D4B0008 */ lw $t3, 8($t2) +/* 037B28 7F002FF8 8D6C0004 */ lw $t4, 4($t3) +/* 037B2C 7F002FFC 10000011 */ b .L7F003044 +/* 037B30 7F003000 ADAC001C */ sw $t4, 0x1c($t5) +/* 037B34 7F003004 24010002 */ li $at, 2 +.L7F003008: +/* 037B38 7F003008 54410009 */ bnel $v0, $at, .L7F003030 +/* 037B3C 7F00300C 8E290014 */ lw $t1, 0x14($s1) +/* 037B40 7F003010 8E380014 */ lw $t8, 0x14($s1) +/* 037B44 7F003014 8E080014 */ lw $t0, 0x14($s0) +/* 037B48 7F003018 8F0F0008 */ lw $t7, 8($t8) +/* 037B4C 7F00301C 8DF90008 */ lw $t9, 8($t7) +/* 037B50 7F003020 8F2E0008 */ lw $t6, 8($t9) +/* 037B54 7F003024 10000007 */ b .L7F003044 +/* 037B58 7F003028 AD0E001C */ sw $t6, 0x1c($t0) +/* 037B5C 7F00302C 8E290014 */ lw $t1, 0x14($s1) +.L7F003030: +/* 037B60 7F003030 8E0D0014 */ lw $t5, 0x14($s0) +/* 037B64 7F003034 8D2A0008 */ lw $t2, 8($t1) +/* 037B68 7F003038 8D4B0008 */ lw $t3, 8($t2) +/* 037B6C 7F00303C 8D6C000C */ lw $t4, 0xc($t3) +/* 037B70 7F003040 ADAC001C */ sw $t4, 0x1c($t5) +.L7F003044: +/* 037B74 7F003044 8FA40024 */ lw $a0, 0x24($sp) +/* 037B78 7F003048 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 037B7C 7F00304C 8E250010 */ lw $a1, 0x10($s1) +/* 037B80 7F003050 8E05006C */ lw $a1, 0x6c($s0) +/* 037B84 7F003054 3C018005 */ lui $at, %hi(D_8004EF58) +/* 037B88 7F003058 C42CEF58 */ lwc1 $f12, %lo(D_8004EF58)($at) +/* 037B8C 7F00305C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 037B90 7F003060 24A50004 */ addiu $a1, $a1, 4 +/* 037B94 7F003064 8E180014 */ lw $t8, 0x14($s0) +/* 037B98 7F003068 8E2F0014 */ lw $t7, 0x14($s1) +/* 037B9C 7F00306C 8E05006C */ lw $a1, 0x6c($s0) +/* 037BA0 7F003070 C7040014 */ lwc1 $f4, 0x14($t8) +/* 037BA4 7F003074 C5E80014 */ lwc1 $f8, 0x14($t7) +/* 037BA8 7F003078 24A50004 */ addiu $a1, $a1, 4 +/* 037BAC 7F00307C 0FC1629F */ jal matrix_scalar_multiply +/* 037BB0 7F003080 46082303 */ div.s $f12, $f4, $f8 +/* 037BB4 7F003084 10000004 */ b .L7F003098 +/* 037BB8 7F003088 8E190008 */ lw $t9, 8($s0) +.L7F00308C: +/* 037BBC 7F00308C 0FC00767 */ jal prepare_load_objects +/* 037BC0 7F003090 02203025 */ move $a2, $s1 +/* 037BC4 7F003094 8E190008 */ lw $t9, 8($s0) +.L7F003098: +/* 037BC8 7F003098 00197040 */ sll $t6, $t9, 1 +/* 037BCC 7F00309C 05C30008 */ bgezl $t6, .L7F0030C0 +/* 037BD0 7F0030A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 037BD4 7F0030A4 8E020010 */ lw $v0, 0x10($s0) +/* 037BD8 7F0030A8 50400005 */ beql $v0, $zero, .L7F0030C0 +/* 037BDC 7F0030AC 8FBF001C */ lw $ra, 0x1c($sp) +/* 037BE0 7F0030B0 90480001 */ lbu $t0, 1($v0) +/* 037BE4 7F0030B4 35090001 */ ori $t1, $t0, 1 +/* 037BE8 7F0030B8 A0490001 */ sb $t1, 1($v0) +/* 037BEC 7F0030BC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0030C0: +/* 037BF0 7F0030C0 8FB00014 */ lw $s0, 0x14($sp) +/* 037BF4 7F0030C4 8FB10018 */ lw $s1, 0x18($sp) +/* 037BF8 7F0030C8 03E00008 */ jr $ra +/* 037BFC 7F0030CC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0030D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0030D0 +/* 037C00 7F0030D0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 037C04 7F0030D4 AFA40020 */ sw $a0, 0x20($sp) +/* 037C08 7F0030D8 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075B98) +/* 037C0C 7F0030DC AFB00018 */ sw $s0, 0x18($sp) +/* 037C10 7F0030E0 25CE5B98 */ addiu $t6, %lo(dword_CODE_bss_80075B98) # addiu $t6, $t6, 0x5b98 +/* 037C14 7F0030E4 24A40080 */ addiu $a0, $a1, 0x80 +/* 037C18 7F0030E8 00A08025 */ move $s0, $a1 +/* 037C1C 7F0030EC AFBF001C */ sw $ra, 0x1c($sp) +/* 037C20 7F0030F0 AFA60028 */ sw $a2, 0x28($sp) +/* 037C24 7F0030F4 00804025 */ move $t0, $a0 +/* 037C28 7F0030F8 25D9006C */ addiu $t9, $t6, 0x6c +.L7F0030FC: +/* 037C2C 7F0030FC 8DC10000 */ lw $at, ($t6) +/* 037C30 7F003100 25CE000C */ addiu $t6, $t6, 0xc +/* 037C34 7F003104 2508000C */ addiu $t0, $t0, 0xc +/* 037C38 7F003108 AD01FFF4 */ sw $at, -0xc($t0) +/* 037C3C 7F00310C 8DC1FFF8 */ lw $at, -8($t6) +/* 037C40 7F003110 AD01FFF8 */ sw $at, -8($t0) +/* 037C44 7F003114 8DC1FFFC */ lw $at, -4($t6) +/* 037C48 7F003118 15D9FFF8 */ bne $t6, $t9, .L7F0030FC +/* 037C4C 7F00311C AD01FFFC */ sw $at, -4($t0) +/* 037C50 7F003120 8DC10000 */ lw $at, ($t6) +/* 037C54 7F003124 AD010000 */ sw $at, ($t0) +/* 037C58 7F003128 8DD90004 */ lw $t9, 4($t6) +/* 037C5C 7F00312C AD190004 */ sw $t9, 4($t0) +/* 037C60 7F003130 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037C64 7F003134 92050250 */ lbu $a1, 0x250($s0) +/* 037C68 7F003138 3C098007 */ lui $t1, %hi(dword_CODE_bss_80075B98) +/* 037C6C 7F00313C 25295B98 */ addiu $t1, %lo(dword_CODE_bss_80075B98) # addiu $t1, $t1, 0x5b98 +/* 037C70 7F003140 260400F4 */ addiu $a0, $s0, 0xf4 +/* 037C74 7F003144 00806825 */ move $t5, $a0 +/* 037C78 7F003148 252C006C */ addiu $t4, $t1, 0x6c +.L7F00314C: +/* 037C7C 7F00314C 8D210000 */ lw $at, ($t1) +/* 037C80 7F003150 2529000C */ addiu $t1, $t1, 0xc +/* 037C84 7F003154 25AD000C */ addiu $t5, $t5, 0xc +/* 037C88 7F003158 ADA1FFF4 */ sw $at, -0xc($t5) +/* 037C8C 7F00315C 8D21FFF8 */ lw $at, -8($t1) +/* 037C90 7F003160 ADA1FFF8 */ sw $at, -8($t5) +/* 037C94 7F003164 8D21FFFC */ lw $at, -4($t1) +/* 037C98 7F003168 152CFFF8 */ bne $t1, $t4, .L7F00314C +/* 037C9C 7F00316C ADA1FFFC */ sw $at, -4($t5) +/* 037CA0 7F003170 8D210000 */ lw $at, ($t1) +/* 037CA4 7F003174 ADA10000 */ sw $at, ($t5) +/* 037CA8 7F003178 8D2C0004 */ lw $t4, 4($t1) +/* 037CAC 7F00317C ADAC0004 */ sw $t4, 4($t5) +/* 037CB0 7F003180 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037CB4 7F003184 92050251 */ lbu $a1, 0x251($s0) +/* 037CB8 7F003188 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075B98) +/* 037CBC 7F00318C 27185B98 */ addiu $t8, %lo(dword_CODE_bss_80075B98) # addiu $t8, $t8, 0x5b98 +/* 037CC0 7F003190 26040168 */ addiu $a0, $s0, 0x168 +/* 037CC4 7F003194 00804025 */ move $t0, $a0 +/* 037CC8 7F003198 270E006C */ addiu $t6, $t8, 0x6c +.L7F00319C: +/* 037CCC 7F00319C 8F010000 */ lw $at, ($t8) +/* 037CD0 7F0031A0 2718000C */ addiu $t8, $t8, 0xc +/* 037CD4 7F0031A4 2508000C */ addiu $t0, $t0, 0xc +/* 037CD8 7F0031A8 AD01FFF4 */ sw $at, -0xc($t0) +/* 037CDC 7F0031AC 8F01FFF8 */ lw $at, -8($t8) +/* 037CE0 7F0031B0 AD01FFF8 */ sw $at, -8($t0) +/* 037CE4 7F0031B4 8F01FFFC */ lw $at, -4($t8) +/* 037CE8 7F0031B8 170EFFF8 */ bne $t8, $t6, .L7F00319C +/* 037CEC 7F0031BC AD01FFFC */ sw $at, -4($t0) +/* 037CF0 7F0031C0 8F010000 */ lw $at, ($t8) +/* 037CF4 7F0031C4 AD010000 */ sw $at, ($t0) +/* 037CF8 7F0031C8 8F0E0004 */ lw $t6, 4($t8) +/* 037CFC 7F0031CC AD0E0004 */ sw $t6, 4($t0) +/* 037D00 7F0031D0 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037D04 7F0031D4 92050252 */ lbu $a1, 0x252($s0) +/* 037D08 7F0031D8 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075B98) +/* 037D0C 7F0031DC 256B5B98 */ addiu $t3, %lo(dword_CODE_bss_80075B98) # addiu $t3, $t3, 0x5b98 +/* 037D10 7F0031E0 260401DC */ addiu $a0, $s0, 0x1dc +/* 037D14 7F0031E4 00806825 */ move $t5, $a0 +/* 037D18 7F0031E8 2569006C */ addiu $t1, $t3, 0x6c +.L7F0031EC: +/* 037D1C 7F0031EC 8D610000 */ lw $at, ($t3) +/* 037D20 7F0031F0 256B000C */ addiu $t3, $t3, 0xc +/* 037D24 7F0031F4 25AD000C */ addiu $t5, $t5, 0xc +/* 037D28 7F0031F8 ADA1FFF4 */ sw $at, -0xc($t5) +/* 037D2C 7F0031FC 8D61FFF8 */ lw $at, -8($t3) +/* 037D30 7F003200 ADA1FFF8 */ sw $at, -8($t5) +/* 037D34 7F003204 8D61FFFC */ lw $at, -4($t3) +/* 037D38 7F003208 1569FFF8 */ bne $t3, $t1, .L7F0031EC +/* 037D3C 7F00320C ADA1FFFC */ sw $at, -4($t5) +/* 037D40 7F003210 8D610000 */ lw $at, ($t3) +/* 037D44 7F003214 ADA10000 */ sw $at, ($t5) +/* 037D48 7F003218 8D690004 */ lw $t1, 4($t3) +/* 037D4C 7F00321C ADA90004 */ sw $t1, 4($t5) +/* 037D50 7F003220 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037D54 7F003224 92050253 */ lbu $a1, 0x253($s0) +/* 037D58 7F003228 8FA40020 */ lw $a0, 0x20($sp) +/* 037D5C 7F00322C 02002825 */ move $a1, $s0 +/* 037D60 7F003230 0FC00767 */ jal prepare_load_objects +/* 037D64 7F003234 8FA60028 */ lw $a2, 0x28($sp) +/* 037D68 7F003238 8FBF001C */ lw $ra, 0x1c($sp) +/* 037D6C 7F00323C 8FB00018 */ lw $s0, 0x18($sp) +/* 037D70 7F003240 27BD0020 */ addiu $sp, $sp, 0x20 +/* 037D74 7F003244 03E00008 */ jr $ra +/* 037D78 7F003248 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F00324C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00324C +/* 037D7C 7F00324C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 037D80 7F003250 AFBF0024 */ sw $ra, 0x24($sp) +/* 037D84 7F003254 AFB10020 */ sw $s1, 0x20($sp) +/* 037D88 7F003258 AFB0001C */ sw $s0, 0x1c($sp) +/* 037D8C 7F00325C AFA50054 */ sw $a1, 0x54($sp) +/* 037D90 7F003260 00808025 */ move $s0, $a0 +/* 037D94 7F003264 00E08825 */ move $s1, $a3 +/* 037D98 7F003268 AFA60058 */ sw $a2, 0x58($sp) +/* 037D9C 7F00326C 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 037DA0 7F003270 27A50030 */ addiu $a1, $sp, 0x30 +/* 037DA4 7F003274 8E0E0028 */ lw $t6, 0x28($s0) +/* 037DA8 7F003278 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 037DAC 7F00327C 27A4002C */ addiu $a0, $sp, 0x2c +/* 037DB0 7F003280 AFAE002C */ sw $t6, 0x2c($sp) +/* 037DB4 7F003284 8E060008 */ lw $a2, 8($s0) +/* 037DB8 7F003288 8E050000 */ lw $a1, ($s0) +/* 037DBC 7F00328C 8FA70030 */ lw $a3, 0x30($sp) +/* 037DC0 7F003290 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037DC4 7F003294 E7A40010 */ swc1 $f4, 0x10($sp) +/* 037DC8 7F003298 5440000A */ bnezl $v0, .L7F0032C4 +/* 037DCC 7F00329C C6100010 */ lwc1 $f16, 0x10($s0) +/* 037DD0 7F0032A0 8E0F0028 */ lw $t7, 0x28($s0) +/* 037DD4 7F0032A4 AFAF002C */ sw $t7, 0x2c($sp) +/* 037DD8 7F0032A8 C6060000 */ lwc1 $f6, ($s0) +/* 037DDC 7F0032AC E7A60030 */ swc1 $f6, 0x30($sp) +/* 037DE0 7F0032B0 C6080004 */ lwc1 $f8, 4($s0) +/* 037DE4 7F0032B4 E7A80034 */ swc1 $f8, 0x34($sp) +/* 037DE8 7F0032B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 037DEC 7F0032BC E7AA0038 */ swc1 $f10, 0x38($sp) +/* 037DF0 7F0032C0 C6100010 */ lwc1 $f16, 0x10($s0) +.L7F0032C4: +/* 037DF4 7F0032C4 C6120020 */ lwc1 $f18, 0x20($s0) +/* 037DF8 7F0032C8 C606001C */ lwc1 $f6, 0x1c($s0) +/* 037DFC 7F0032CC C6080014 */ lwc1 $f8, 0x14($s0) +/* 037E00 7F0032D0 46128102 */ mul.s $f4, $f16, $f18 +/* 037E04 7F0032D4 00000000 */ nop +/* 037E08 7F0032D8 46083282 */ mul.s $f10, $f6, $f8 +/* 037E0C 7F0032DC 460A2401 */ sub.s $f16, $f4, $f10 +/* 037E10 7F0032E0 E7B00040 */ swc1 $f16, 0x40($sp) +/* 037E14 7F0032E4 C6060018 */ lwc1 $f6, 0x18($s0) +/* 037E18 7F0032E8 C6120014 */ lwc1 $f18, 0x14($s0) +/* 037E1C 7F0032EC C60A000C */ lwc1 $f10, 0xc($s0) +/* 037E20 7F0032F0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 037E24 7F0032F4 46069202 */ mul.s $f8, $f18, $f6 +/* 037E28 7F0032F8 00000000 */ nop +/* 037E2C 7F0032FC 460A2482 */ mul.s $f18, $f4, $f10 +/* 037E30 7F003300 46124181 */ sub.s $f6, $f8, $f18 +/* 037E34 7F003304 E7A60044 */ swc1 $f6, 0x44($sp) +/* 037E38 7F003308 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 037E3C 7F00330C C604000C */ lwc1 $f4, 0xc($s0) +/* 037E40 7F003310 C6120018 */ lwc1 $f18, 0x18($s0) +/* 037E44 7F003314 460A2202 */ mul.s $f8, $f4, $f10 +/* 037E48 7F003318 C6040010 */ lwc1 $f4, 0x10($s0) +/* 037E4C 7F00331C 46049282 */ mul.s $f10, $f18, $f4 +/* 037E50 7F003320 460A4481 */ sub.s $f18, $f8, $f10 +/* 037E54 7F003324 46108102 */ mul.s $f4, $f16, $f16 +/* 037E58 7F003328 00000000 */ nop +/* 037E5C 7F00332C 46063202 */ mul.s $f8, $f6, $f6 +/* 037E60 7F003330 E7B20048 */ swc1 $f18, 0x48($sp) +/* 037E64 7F003334 46129402 */ mul.s $f16, $f18, $f18 +/* 037E68 7F003338 46082280 */ add.s $f10, $f4, $f8 +/* 037E6C 7F00333C 0C007DF8 */ jal sqrtf +/* 037E70 7F003340 460A8300 */ add.s $f12, $f16, $f10 +/* 037E74 7F003344 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 037E78 7F003348 44816000 */ mtc1 $at, $f12 +/* 037E7C 7F00334C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 037E80 7F003350 44813000 */ mtc1 $at, $f6 +/* 037E84 7F003354 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 037E88 7F003358 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 037E8C 7F00335C 46003083 */ div.s $f2, $f6, $f0 +/* 037E90 7F003360 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 037E94 7F003364 8FB8002C */ lw $t8, 0x2c($sp) +/* 037E98 7F003368 27B0004C */ addiu $s0, $sp, 0x4c +/* 037E9C 7F00336C 02002025 */ move $a0, $s0 +/* 037EA0 7F003370 AFB8004C */ sw $t8, 0x4c($sp) +/* 037EA4 7F003374 46022202 */ mul.s $f8, $f4, $f2 +/* 037EA8 7F003378 00000000 */ nop +/* 037EAC 7F00337C 46029402 */ mul.s $f16, $f18, $f2 +/* 037EB0 7F003380 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 037EB4 7F003384 46025182 */ mul.s $f6, $f10, $f2 +/* 037EB8 7F003388 E7A80040 */ swc1 $f8, 0x40($sp) +/* 037EBC 7F00338C 460C4102 */ mul.s $f4, $f8, $f12 +/* 037EC0 7F003390 E7B00044 */ swc1 $f16, 0x44($sp) +/* 037EC4 7F003394 E7A60048 */ swc1 $f6, 0x48($sp) +/* 037EC8 7F003398 46122400 */ add.s $f16, $f4, $f18 +/* 037ECC 7F00339C E6300000 */ swc1 $f16, ($s1) +/* 037ED0 7F0033A0 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 037ED4 7F0033A4 8E270000 */ lw $a3, ($s1) +/* 037ED8 7F0033A8 E62A0004 */ swc1 $f10, 4($s1) +/* 037EDC 7F0033AC C7A60048 */ lwc1 $f6, 0x48($sp) +/* 037EE0 7F0033B0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 037EE4 7F0033B4 460C3202 */ mul.s $f8, $f6, $f12 +/* 037EE8 7F0033B8 46044480 */ add.s $f18, $f8, $f4 +/* 037EEC 7F0033BC E6320008 */ swc1 $f18, 8($s1) +/* 037EF0 7F0033C0 C6300008 */ lwc1 $f16, 8($s1) +/* 037EF4 7F0033C4 8FA60038 */ lw $a2, 0x38($sp) +/* 037EF8 7F0033C8 8FA50030 */ lw $a1, 0x30($sp) +/* 037EFC 7F0033CC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037F00 7F0033D0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 037F04 7F0033D4 8FB9004C */ lw $t9, 0x4c($sp) +/* 037F08 7F0033D8 8FA90054 */ lw $t1, 0x54($sp) +/* 037F0C 7F0033DC 8FA20060 */ lw $v0, 0x60($sp) +/* 037F10 7F0033E0 93280003 */ lbu $t0, 3($t9) +/* 037F14 7F0033E4 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 037F18 7F0033E8 44816000 */ mtc1 $at, $f12 +/* 037F1C 7F0033EC AD280000 */ sw $t0, ($t1) +/* 037F20 7F0033F0 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 037F24 7F0033F4 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 037F28 7F0033F8 8FAA002C */ lw $t2, 0x2c($sp) +/* 037F2C 7F0033FC 460C3202 */ mul.s $f8, $f6, $f12 +/* 037F30 7F003400 02002025 */ move $a0, $s0 +/* 037F34 7F003404 AFAA004C */ sw $t2, 0x4c($sp) +/* 037F38 7F003408 46085101 */ sub.s $f4, $f10, $f8 +/* 037F3C 7F00340C E4440000 */ swc1 $f4, ($v0) +/* 037F40 7F003410 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 037F44 7F003414 8C470000 */ lw $a3, ($v0) +/* 037F48 7F003418 E4520004 */ swc1 $f18, 4($v0) +/* 037F4C 7F00341C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 037F50 7F003420 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 037F54 7F003424 460C3282 */ mul.s $f10, $f6, $f12 +/* 037F58 7F003428 460A8201 */ sub.s $f8, $f16, $f10 +/* 037F5C 7F00342C E4480008 */ swc1 $f8, 8($v0) +/* 037F60 7F003430 C4440008 */ lwc1 $f4, 8($v0) +/* 037F64 7F003434 8FA60038 */ lw $a2, 0x38($sp) +/* 037F68 7F003438 8FA50030 */ lw $a1, 0x30($sp) +/* 037F6C 7F00343C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037F70 7F003440 E7A40010 */ swc1 $f4, 0x10($sp) +/* 037F74 7F003444 8FAB004C */ lw $t3, 0x4c($sp) +/* 037F78 7F003448 8FA20058 */ lw $v0, 0x58($sp) +/* 037F7C 7F00344C 2418FFFF */ li $t8, -1 +/* 037F80 7F003450 916C0003 */ lbu $t4, 3($t3) +/* 037F84 7F003454 AC4C0000 */ sw $t4, ($v0) +/* 037F88 7F003458 8FAE0054 */ lw $t6, 0x54($sp) +/* 037F8C 7F00345C 8DCF0000 */ lw $t7, ($t6) +/* 037F90 7F003460 558F0003 */ bnel $t4, $t7, .L7F003470 +/* 037F94 7F003464 8FBF0024 */ lw $ra, 0x24($sp) +/* 037F98 7F003468 AC580000 */ sw $t8, ($v0) +/* 037F9C 7F00346C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F003470: +/* 037FA0 7F003470 8FB0001C */ lw $s0, 0x1c($sp) +/* 037FA4 7F003474 8FB10020 */ lw $s1, 0x20($sp) +/* 037FA8 7F003478 03E00008 */ jr $ra +/* 037FAC 7F00347C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F003480(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F003480 +/* 037FB0 7F003480 27BDFE28 */ addiu $sp, $sp, -0x1d8 +/* 037FB4 7F003484 AFBF0034 */ sw $ra, 0x34($sp) +/* 037FB8 7F003488 AFB10030 */ sw $s1, 0x30($sp) +/* 037FBC 7F00348C AFB0002C */ sw $s0, 0x2c($sp) +/* 037FC0 7F003490 AFA401D8 */ sw $a0, 0x1d8($sp) +/* 037FC4 7F003494 AFA601E0 */ sw $a2, 0x1e0($sp) +/* 037FC8 7F003498 84A40004 */ lh $a0, 4($a1) +/* 037FCC 7F00349C 240DFFFF */ li $t5, -1 +/* 037FD0 7F0034A0 240EFFFF */ li $t6, -1 +/* 037FD4 7F0034A4 2418FFFF */ li $t8, -1 +/* 037FD8 7F0034A8 00A08825 */ move $s1, $a1 +/* 037FDC 7F0034AC AFAD01B4 */ sw $t5, 0x1b4($sp) +/* 037FE0 7F0034B0 AFAE01B0 */ sw $t6, 0x1b0($sp) +/* 037FE4 7F0034B4 AFB801AC */ sw $t8, 0x1ac($sp) +/* 037FE8 7F0034B8 0FC15B0E */ jal load_model +/* 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(ptr_2xxxpresets) +/* 037FFC 7F0034CC 00197900 */ sll $t7, $t9, 4 +/* 038000 7F0034D0 8D085D1C */ lw $t0, %lo(ptr_2xxxpresets)($t0) +/* 038004 7F0034D4 01F97821 */ addu $t7, $t7, $t9 +/* 038008 7F0034D8 000F7880 */ sll $t7, $t7, 2 +/* 03800C 7F0034DC 000348C0 */ sll $t1, $v1, 3 +/* 038010 7F0034E0 05200003 */ bltz $t1, .L7F0034F0 +/* 038014 7F0034E4 01E88021 */ addu $s0, $t7, $t0 +/* 038018 7F0034E8 00035040 */ sll $t2, $v1, 1 +/* 03801C 7F0034EC 05410013 */ bgez $t2, .L7F00353C +.L7F0034F0: +/* 038020 7F0034F0 27AB0194 */ addiu $t3, $sp, 0x194 +/* 038024 7F0034F4 AFAB0010 */ sw $t3, 0x10($sp) +/* 038028 7F0034F8 02002025 */ move $a0, $s0 +/* 03802C 7F0034FC 27A501B0 */ addiu $a1, $sp, 0x1b0 +/* 038030 7F003500 27A601AC */ addiu $a2, $sp, 0x1ac +/* 038034 7F003504 0FC00C93 */ jal sub_GAME_7F00324C +/* 038038 7F003508 27A701A0 */ addiu $a3, $sp, 0x1a0 +/* 03803C 7F00350C 8E2C0008 */ lw $t4, 8($s1) +/* 038040 7F003510 8FA401B0 */ lw $a0, 0x1b0($sp) +/* 038044 7F003514 000C68C0 */ sll $t5, $t4, 3 +/* 038048 7F003518 05A10008 */ bgez $t5, .L7F00353C +/* 03804C 7F00351C 00000000 */ nop +/* 038050 7F003520 04800006 */ bltz $a0, .L7F00353C +/* 038054 7F003524 8FA501AC */ lw $a1, 0x1ac($sp) +/* 038058 7F003528 04A00004 */ bltz $a1, .L7F00353C +/* 03805C 7F00352C 27A601A0 */ addiu $a2, $sp, 0x1a0 +/* 038060 7F003530 0FC2E732 */ jal sub_GAME_7F0B9CC8 +/* 038064 7F003534 27A70194 */ addiu $a3, $sp, 0x194 +/* 038068 7F003538 AFA201B4 */ sw $v0, 0x1b4($sp) +.L7F00353C: +/* 03806C 7F00353C 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 038070 7F003540 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 038074 7F003544 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 038078 7F003548 44814000 */ mtc1 $at, $f8 +/* 03807C 7F00354C C46C0000 */ lwc1 $f12, ($v1) +/* 038080 7F003550 8FAE01B4 */ lw $t6, 0x1b4($sp) +/* 038084 7F003554 460C4032 */ c.eq.s $f8, $f12 +/* 038088 7F003558 00000000 */ nop +/* 03808C 7F00355C 45030067 */ bc1tl .L7F0036FC +/* 038090 7F003560 8E050028 */ lw $a1, 0x28($s0) +/* 038094 7F003564 05C0005D */ bltz $t6, .L7F0036DC +/* 038098 7F003568 01C02025 */ move $a0, $t6 +/* 03809C 7F00356C 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0380A0 7F003570 27A50180 */ addiu $a1, $sp, 0x180 +/* 0380A4 7F003574 0FC2D20C */ jal get_room_data_float2 +/* 0380A8 7F003578 00000000 */ nop +/* 0380AC 7F00357C C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 0380B0 7F003580 C7B20188 */ lwc1 $f18, 0x188($sp) +/* 0380B4 7F003584 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 0380B8 7F003588 46005182 */ mul.s $f6, $f10, $f0 +/* 0380BC 7F00358C 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 0380C0 7F003590 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0380C4 7F003594 44818000 */ mtc1 $at, $f16 +/* 0380C8 7F003598 C46C0000 */ lwc1 $f12, ($v1) +/* 0380CC 7F00359C 27A4016C */ addiu $a0, $sp, 0x16c +/* 0380D0 7F0035A0 E7A6018C */ swc1 $f6, 0x18c($sp) +/* 0380D4 7F0035A4 C6040008 */ lwc1 $f4, 8($s0) +/* 0380D8 7F0035A8 C60A0004 */ lwc1 $f10, 4($s0) +/* 0380DC 7F0035AC C60E0000 */ lwc1 $f14, ($s0) +/* 0380E0 7F0035B0 46049202 */ mul.s $f8, $f18, $f4 +/* 0380E4 7F0035B4 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0380E8 7F0035B8 E7A60038 */ swc1 $f6, 0x38($sp) +/* 0380EC 7F0035BC C7A60180 */ lwc1 $f6, 0x180($sp) +/* 0380F0 7F0035C0 46045282 */ mul.s $f10, $f10, $f4 +/* 0380F4 7F0035C4 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0380F8 7F0035C8 4610603C */ c.lt.s $f12, $f16 +/* 0380FC 7F0035CC 46067482 */ mul.s $f18, $f14, $f6 +/* 038100 7F0035D0 460A9480 */ add.s $f18, $f18, $f10 +/* 038104 7F0035D4 C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 038108 7F0035D8 45000013 */ bc1f .L7F003628 +/* 03810C 7F0035DC 46124080 */ add.s $f2, $f8, $f18 +/* 038110 7F0035E0 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 038114 7F0035E4 460C8481 */ sub.s $f18, $f16, $f12 +/* 038118 7F0035E8 460A1201 */ sub.s $f8, $f2, $f10 +/* 03811C 7F0035EC 46124082 */ mul.s $f2, $f8, $f18 +/* 038120 7F0035F0 00000000 */ nop +/* 038124 7F0035F4 46023282 */ mul.s $f10, $f6, $f2 +/* 038128 7F0035F8 460A7201 */ sub.s $f8, $f14, $f10 +/* 03812C 7F0035FC 46022182 */ mul.s $f6, $f4, $f2 +/* 038130 7F003600 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 038134 7F003604 E7A80170 */ swc1 $f8, 0x170($sp) +/* 038138 7F003608 C6120004 */ lwc1 $f18, 4($s0) +/* 03813C 7F00360C 46069281 */ sub.s $f10, $f18, $f6 +/* 038140 7F003610 46022482 */ mul.s $f18, $f4, $f2 +/* 038144 7F003614 E7AA0174 */ swc1 $f10, 0x174($sp) +/* 038148 7F003618 C6080008 */ lwc1 $f8, 8($s0) +/* 03814C 7F00361C 46124181 */ sub.s $f6, $f8, $f18 +/* 038150 7F003620 10000012 */ b .L7F00366C +/* 038154 7F003624 E7A60178 */ swc1 $f6, 0x178($sp) +.L7F003628: +/* 038158 7F003628 460A1101 */ sub.s $f4, $f2, $f10 +/* 03815C 7F00362C C7B20180 */ lwc1 $f18, 0x180($sp) +/* 038160 7F003630 46106201 */ sub.s $f8, $f12, $f16 +/* 038164 7F003634 46082082 */ mul.s $f2, $f4, $f8 +/* 038168 7F003638 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 03816C 7F00363C 46029182 */ mul.s $f6, $f18, $f2 +/* 038170 7F003640 460E3280 */ add.s $f10, $f6, $f14 +/* 038174 7F003644 46022202 */ mul.s $f8, $f4, $f2 +/* 038178 7F003648 E7AA0170 */ swc1 $f10, 0x170($sp) +/* 03817C 7F00364C C6120004 */ lwc1 $f18, 4($s0) +/* 038180 7F003650 C7AA0188 */ lwc1 $f10, 0x188($sp) +/* 038184 7F003654 46124180 */ add.s $f6, $f8, $f18 +/* 038188 7F003658 46025102 */ mul.s $f4, $f10, $f2 +/* 03818C 7F00365C E7A60174 */ swc1 $f6, 0x174($sp) +/* 038190 7F003660 C6080008 */ lwc1 $f8, 8($s0) +/* 038194 7F003664 46082480 */ add.s $f18, $f4, $f8 +/* 038198 7F003668 E7B20178 */ swc1 $f18, 0x178($sp) +.L7F00366C: +/* 03819C 7F00366C 8E180028 */ lw $t8, 0x28($s0) +/* 0381A0 7F003670 C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0381A4 7F003674 8FA70170 */ lw $a3, 0x170($sp) +/* 0381A8 7F003678 AFB8016C */ sw $t8, 0x16c($sp) +/* 0381AC 7F00367C 8E060008 */ lw $a2, 8($s0) +/* 0381B0 7F003680 8E050000 */ lw $a1, ($s0) +/* 0381B4 7F003684 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0381B8 7F003688 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0381BC 7F00368C 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 0381C0 7F003690 10400019 */ beqz $v0, .L7F0036F8 +/* 0381C4 7F003694 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 0381C8 7F003698 8FB9016C */ lw $t9, 0x16c($sp) +/* 0381CC 7F00369C C612002C */ lwc1 $f18, 0x2c($s0) +/* 0381D0 7F0036A0 AE190028 */ sw $t9, 0x28($s0) +/* 0381D4 7F0036A4 C7AA0170 */ lwc1 $f10, 0x170($sp) +/* 0381D8 7F0036A8 E60A0000 */ swc1 $f10, ($s0) +/* 0381DC 7F0036AC C7A40174 */ lwc1 $f4, 0x174($sp) +/* 0381E0 7F0036B0 E6040004 */ swc1 $f4, 4($s0) +/* 0381E4 7F0036B4 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0381E8 7F0036B8 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0381EC 7F0036BC E6080008 */ swc1 $f8, 8($s0) +/* 0381F0 7F0036C0 C4660000 */ lwc1 $f6, ($v1) +/* 0381F4 7F0036C4 46069282 */ mul.s $f10, $f18, $f6 +/* 0381F8 7F0036C8 E60A002C */ swc1 $f10, 0x2c($s0) +/* 0381FC 7F0036CC C4680000 */ lwc1 $f8, ($v1) +/* 038200 7F0036D0 46082482 */ mul.s $f18, $f4, $f8 +/* 038204 7F0036D4 10000008 */ b .L7F0036F8 +/* 038208 7F0036D8 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0036DC: +/* 03820C 7F0036DC C606002C */ lwc1 $f6, 0x2c($s0) +/* 038210 7F0036E0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 038214 7F0036E4 460C3282 */ mul.s $f10, $f6, $f12 +/* 038218 7F0036E8 E60A002C */ swc1 $f10, 0x2c($s0) +/* 03821C 7F0036EC C4680000 */ lwc1 $f8, ($v1) +/* 038220 7F0036F0 46082482 */ mul.s $f18, $f4, $f8 +/* 038224 7F0036F4 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0036F8: +/* 038228 7F0036F8 8E050028 */ lw $a1, 0x28($s0) +.L7F0036FC: +/* 03822C 7F0036FC 27AF01C8 */ addiu $t7, $sp, 0x1c8 +/* 038230 7F003700 AFAF0010 */ sw $t7, 0x10($sp) +/* 038234 7F003704 02002025 */ move $a0, $s0 +/* 038238 7F003708 24060000 */ li $a2, 0 +/* 03823C 7F00370C 0FC15A14 */ jal sub_GAME_7F056850 +/* 038240 7F003710 27A701B8 */ addiu $a3, $sp, 0x1b8 +/* 038244 7F003714 50400131 */ beql $v0, $zero, .L7F003BDC +/* 038248 7F003718 AE200010 */ sw $zero, 0x10($s1) +/* 03824C 7F00371C C6060018 */ lwc1 $f6, 0x18($s0) +/* 038250 7F003720 44800000 */ mtc1 $zero, $f0 +/* 038254 7F003724 27A4012C */ addiu $a0, $sp, 0x12c +/* 038258 7F003728 46003287 */ neg.s $f10, $f6 +/* 03825C 7F00372C 44050000 */ mfc1 $a1, $f0 +/* 038260 7F003730 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 038264 7F003734 C604001C */ lwc1 $f4, 0x1c($s0) +/* 038268 7F003738 44060000 */ mfc1 $a2, $f0 +/* 03826C 7F00373C 44070000 */ mfc1 $a3, $f0 +/* 038270 7F003740 46002207 */ neg.s $f8, $f4 +/* 038274 7F003744 E7A80014 */ swc1 $f8, 0x14($sp) +/* 038278 7F003748 C6120020 */ lwc1 $f18, 0x20($s0) +/* 03827C 7F00374C 46009187 */ neg.s $f6, $f18 +/* 038280 7F003750 E7A60018 */ swc1 $f6, 0x18($sp) +/* 038284 7F003754 C60A000C */ lwc1 $f10, 0xc($s0) +/* 038288 7F003758 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03828C 7F00375C C6040010 */ lwc1 $f4, 0x10($s0) +/* 038290 7F003760 E7A40020 */ swc1 $f4, 0x20($sp) +/* 038294 7F003764 C6080014 */ lwc1 $f8, 0x14($s0) +/* 038298 7F003768 0FC16642 */ jal sub_GAME_7F059908 +/* 03829C 7F00376C E7A80024 */ swc1 $f8, 0x24($sp) +/* 0382A0 7F003770 8FA801D0 */ lw $t0, 0x1d0($sp) +/* 0382A4 7F003774 3C0A8004 */ lui $t2, %hi(PitemZ_entries) +/* 0382A8 7F003778 8FAB01C8 */ lw $t3, 0x1c8($sp) +/* 0382AC 7F00377C 00084880 */ sll $t1, $t0, 2 +/* 0382B0 7F003780 01284823 */ subu $t1, $t1, $t0 +/* 0382B4 7F003784 00094880 */ sll $t1, $t1, 2 +/* 0382B8 7F003788 01495021 */ addu $t2, $t2, $t1 +/* 0382BC 7F00378C 8D4AA228 */ lw $t2, %lo(PitemZ_entries)($t2) +/* 0382C0 7F003790 AFAB0114 */ sw $t3, 0x114($sp) +/* 0382C4 7F003794 3C018005 */ lui $at, %hi(D_8004EF5C) +/* 0382C8 7F003798 AFAA0124 */ sw $t2, 0x124($sp) +/* 0382CC 7F00379C C612002C */ lwc1 $f18, 0x2c($s0) +/* 0382D0 7F0037A0 C42CEF5C */ lwc1 $f12, %lo(D_8004EF5C)($at) +/* 0382D4 7F0037A4 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0382D8 7F0037A8 E7B20078 */ swc1 $f18, 0x78($sp) +/* 0382DC 7F0037AC C6060030 */ lwc1 $f6, 0x30($s0) +/* 0382E0 7F0037B0 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0382E4 7F0037B4 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0382E8 7F0037B8 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0382EC 7F0037BC C6040038 */ lwc1 $f4, 0x38($s0) +/* 0382F0 7F0037C0 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0382F4 7F0037C4 C608003C */ lwc1 $f8, 0x3c($s0) +/* 0382F8 7F0037C8 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0382FC 7F0037CC C6120040 */ lwc1 $f18, 0x40($s0) +/* 038300 7F0037D0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 038304 7F0037D4 E7B20064 */ swc1 $f18, 0x64($sp) +/* 038308 7F0037D8 3C018005 */ lui $at, %hi(D_8004EF60) +/* 03830C 7F0037DC C42CEF60 */ lwc1 $f12, %lo(D_8004EF60)($at) +/* 038310 7F0037E0 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 038314 7F0037E4 27A50088 */ addiu $a1, $sp, 0x88 +/* 038318 7F0037E8 27A40088 */ addiu $a0, $sp, 0x88 +/* 03831C 7F0037EC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 038320 7F0037F0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038324 7F0037F4 27A4012C */ addiu $a0, $sp, 0x12c +/* 038328 7F0037F8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 03832C 7F0037FC 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038330 7F003800 02002025 */ move $a0, $s0 +/* 038334 7F003804 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 038338 7F003808 27A50118 */ addiu $a1, $sp, 0x118 +/* 03833C 7F00380C 8FAC0124 */ lw $t4, 0x124($sp) +/* 038340 7F003810 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 038344 7F003814 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 038348 7F003818 8D8D0000 */ lw $t5, ($t4) +/* 03834C 7F00381C 3C018005 */ lui $at, %hi(D_8004EF64) +/* 038350 7F003820 460A3101 */ sub.s $f4, $f6, $f10 +/* 038354 7F003824 8DAE0014 */ lw $t6, 0x14($t5) +/* 038358 7F003828 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 03835C 7F00382C C420EF64 */ lwc1 $f0, %lo(D_8004EF64)($at) +/* 038360 7F003830 8DC20004 */ lw $v0, 4($t6) +/* 038364 7F003834 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038368 7F003838 C4480008 */ lwc1 $f8, 8($v0) +/* 03836C 7F00383C C4520004 */ lwc1 $f18, 4($v0) +/* 038370 7F003840 46124181 */ sub.s $f6, $f8, $f18 +/* 038374 7F003844 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 038378 7F003848 C4520010 */ lwc1 $f18, 0x10($v0) +/* 03837C 7F00384C 46062303 */ div.s $f12, $f4, $f6 +/* 038380 7F003850 C444000C */ lwc1 $f4, 0xc($v0) +/* 038384 7F003854 46085081 */ sub.s $f2, $f10, $f8 +/* 038388 7F003858 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 03838C 7F00385C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 038390 7F003860 46049181 */ sub.s $f6, $f18, $f4 +/* 038394 7F003864 C4440018 */ lwc1 $f4, 0x18($v0) +/* 038398 7F003868 46061383 */ div.s $f14, $f2, $f6 +/* 03839C 7F00386C C4460014 */ lwc1 $f6, 0x14($v0) +/* 0383A0 7F003870 4600603E */ c.le.s $f12, $f0 +/* 0383A4 7F003874 46085481 */ sub.s $f18, $f10, $f8 +/* 0383A8 7F003878 46062281 */ sub.s $f10, $f4, $f6 +/* 0383AC 7F00387C 45010008 */ bc1t .L7F0038A0 +/* 0383B0 7F003880 460A9403 */ div.s $f16, $f18, $f10 +/* 0383B4 7F003884 4600703E */ c.le.s $f14, $f0 +/* 0383B8 7F003888 00000000 */ nop +/* 0383BC 7F00388C 45030005 */ bc1tl .L7F0038A4 +/* 0383C0 7F003890 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0383C4 7F003894 4600803E */ c.le.s $f16, $f0 +/* 0383C8 7F003898 00000000 */ nop +/* 0383CC 7F00389C 45000005 */ bc1f .L7F0038B4 +.L7F0038A0: +/* 0383D0 7F0038A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0038A4: +/* 0383D4 7F0038A4 44818000 */ mtc1 $at, $f16 +/* 0383D8 7F0038A8 44817000 */ mtc1 $at, $f14 +/* 0383DC 7F0038AC 44816000 */ mtc1 $at, $f12 +/* 0383E0 7F0038B0 00000000 */ nop +.L7F0038B4: +/* 0383E4 7F0038B4 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0383E8 7F0038B8 E7AC0060 */ swc1 $f12, 0x60($sp) +/* 0383EC 7F0038BC E7AE005C */ swc1 $f14, 0x5c($sp) +/* 0383F0 7F0038C0 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 0383F4 7F0038C4 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0383F8 7F0038C8 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 0383FC 7F0038CC 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 038400 7F0038D0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038404 7F0038D4 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 038408 7F0038D8 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 03840C 7F0038DC 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038410 7F0038E0 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 038414 7F0038E4 C7A4011C */ lwc1 $f4, 0x11c($sp) +/* 038418 7F0038E8 C7A60120 */ lwc1 $f6, 0x120($sp) +/* 03841C 7F0038EC E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 038420 7F0038F0 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 038424 7F0038F4 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 038428 7F0038F8 8E38000C */ lw $t8, 0xc($s1) +/* 03842C 7F0038FC C7A20048 */ lwc1 $f2, 0x48($sp) +/* 038430 7F003900 27A40114 */ addiu $a0, $sp, 0x114 +/* 038434 7F003904 33190001 */ andi $t9, $t8, 1 +/* 038438 7F003908 17200016 */ bnez $t9, .L7F003964 +/* 03843C 7F00390C C7A401B8 */ lwc1 $f4, 0x1b8($sp) +/* 038440 7F003910 44074000 */ mfc1 $a3, $f8 +/* 038444 7F003914 8FA501B8 */ lw $a1, 0x1b8($sp) +/* 038448 7F003918 8FA601C0 */ lw $a2, 0x1c0($sp) +/* 03844C 7F00391C E7A60010 */ swc1 $f6, 0x10($sp) +/* 038450 7F003920 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 038454 7F003924 E7A20048 */ swc1 $f2, 0x48($sp) +/* 038458 7F003928 10400004 */ beqz $v0, .L7F00393C +/* 03845C 7F00392C C7A20048 */ lwc1 $f2, 0x48($sp) +/* 038460 7F003930 8FAF0114 */ lw $t7, 0x114($sp) +/* 038464 7F003934 10000010 */ b .L7F003978 +/* 038468 7F003938 AFAF01C8 */ sw $t7, 0x1c8($sp) +.L7F00393C: +/* 03846C 7F00393C C7B201B8 */ lwc1 $f18, 0x1b8($sp) +/* 038470 7F003940 C7AA01C0 */ lwc1 $f10, 0x1c0($sp) +/* 038474 7F003944 E7B20118 */ swc1 $f18, 0x118($sp) +/* 038478 7F003948 E7AA0120 */ swc1 $f10, 0x120($sp) +/* 03847C 7F00394C 8E280008 */ lw $t0, 8($s1) +/* 038480 7F003950 31091000 */ andi $t1, $t0, 0x1000 +/* 038484 7F003954 55200009 */ bnezl $t1, .L7F00397C +/* 038488 7F003958 9622009A */ lhu $v0, 0x9a($s1) +/* 03848C 7F00395C 10000007 */ b .L7F00397C +/* 038490 7F003960 9622009A */ lhu $v0, 0x9a($s1) +.L7F003964: +/* 038494 7F003964 C7A801BC */ lwc1 $f8, 0x1bc($sp) +/* 038498 7F003968 C7A601C0 */ lwc1 $f6, 0x1c0($sp) +/* 03849C 7F00396C E7A40118 */ swc1 $f4, 0x118($sp) +/* 0384A0 7F003970 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 0384A4 7F003974 E7A60120 */ swc1 $f6, 0x120($sp) +.L7F003978: +/* 0384A8 7F003978 9622009A */ lhu $v0, 0x9a($s1) +.L7F00397C: +/* 0384AC 7F00397C 24010004 */ li $at, 4 +/* 0384B0 7F003980 10410003 */ beq $v0, $at, .L7F003990 +/* 0384B4 7F003984 24010008 */ li $at, 8 +/* 0384B8 7F003988 1441000B */ bne $v0, $at, .L7F0039B8 +/* 0384BC 7F00398C C7AA0070 */ lwc1 $f10, 0x70($sp) +.L7F003990: +/* 0384C0 7F003990 C6120018 */ lwc1 $f18, 0x18($s0) +/* 0384C4 7F003994 46029282 */ mul.s $f10, $f18, $f2 +/* 0384C8 7F003998 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0384CC 7F00399C C604001C */ lwc1 $f4, 0x1c($s0) +/* 0384D0 7F0039A0 46022202 */ mul.s $f8, $f4, $f2 +/* 0384D4 7F0039A4 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0384D8 7F0039A8 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0384DC 7F0039AC 46023482 */ mul.s $f18, $f6, $f2 +/* 0384E0 7F0039B0 1000000C */ b .L7F0039E4 +/* 0384E4 7F0039B4 E7B20084 */ swc1 $f18, 0x84($sp) +.L7F0039B8: +/* 0384E8 7F0039B8 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0384EC 7F0039BC C608000C */ lwc1 $f8, 0xc($s0) +/* 0384F0 7F0039C0 46045001 */ sub.s $f0, $f10, $f4 +/* 0384F4 7F0039C4 46004182 */ mul.s $f6, $f8, $f0 +/* 0384F8 7F0039C8 E7A6007C */ swc1 $f6, 0x7c($sp) +/* 0384FC 7F0039CC C6120010 */ lwc1 $f18, 0x10($s0) +/* 038500 7F0039D0 46009282 */ mul.s $f10, $f18, $f0 +/* 038504 7F0039D4 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 038508 7F0039D8 C6040014 */ lwc1 $f4, 0x14($s0) +/* 03850C 7F0039DC 46002202 */ mul.s $f8, $f4, $f0 +/* 038510 7F0039E0 E7A80084 */ swc1 $f8, 0x84($sp) +.L7F0039E4: +/* 038514 7F0039E4 8E2A0084 */ lw $t2, 0x84($s1) +/* 038518 7F0039E8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03851C 7F0039EC 44810000 */ mtc1 $at, $f0 +/* 038520 7F0039F0 448A3000 */ mtc1 $t2, $f6 +/* 038524 7F0039F4 8E2B0088 */ lw $t3, 0x88($s1) +/* 038528 7F0039F8 8E2C008C */ lw $t4, 0x8c($s1) +/* 03852C 7F0039FC 468034A0 */ cvt.s.w $f18, $f6 +/* 038530 7F003A00 448B2000 */ mtc1 $t3, $f4 +/* 038534 7F003A04 8E2D0090 */ lw $t5, 0x90($s1) +/* 038538 7F003A08 8E2E0094 */ lw $t6, 0x94($s1) +/* 03853C 7F003A0C 27B8007C */ addiu $t8, $sp, 0x7c +/* 038540 7F003A10 46802220 */ cvt.s.w $f8, $f4 +/* 038544 7F003A14 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 038548 7F003A18 02202025 */ move $a0, $s1 +/* 03854C 7F003A1C 27A50118 */ addiu $a1, $sp, 0x118 +/* 038550 7F003A20 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 038554 7F003A24 46009283 */ div.s $f10, $f18, $f0 +/* 038558 7F003A28 448C9000 */ mtc1 $t4, $f18 +/* 03855C 7F003A2C 46004183 */ div.s $f6, $f8, $f0 +/* 038560 7F003A30 E62A0084 */ swc1 $f10, 0x84($s1) +/* 038564 7F003A34 448D4000 */ mtc1 $t5, $f8 +/* 038568 7F003A38 468092A0 */ cvt.s.w $f10, $f18 +/* 03856C 7F003A3C 46005103 */ div.s $f4, $f10, $f0 +/* 038570 7F003A40 448E5000 */ mtc1 $t6, $f10 +/* 038574 7F003A44 E6260088 */ swc1 $f6, 0x88($s1) +/* 038578 7F003A48 468041A0 */ cvt.s.w $f6, $f8 +/* 03857C 7F003A4C 46003483 */ div.s $f18, $f6, $f0 +/* 038580 7F003A50 E624008C */ swc1 $f4, 0x8c($s1) +/* 038584 7F003A54 46805120 */ cvt.s.w $f4, $f10 +/* 038588 7F003A58 46002203 */ div.s $f8, $f4, $f0 +/* 03858C 7F003A5C E6320090 */ swc1 $f18, 0x90($s1) +/* 038590 7F003A60 E6280094 */ swc1 $f8, 0x94($s1) +/* 038594 7F003A64 AFB90014 */ sw $t9, 0x14($sp) +/* 038598 7F003A68 AFB80010 */ sw $t8, 0x10($sp) +/* 03859C 7F003A6C 0FC14D7C */ jal initialize_door +/* 0385A0 7F003A70 8FA701C8 */ lw $a3, 0x1c8($sp) +/* 0385A4 7F003A74 8E2F0008 */ lw $t7, 8($s1) +/* 0385A8 7F003A78 00408025 */ move $s0, $v0 +/* 0385AC 7F003A7C 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0385B0 7F003A80 000F40C0 */ sll $t0, $t7, 3 +/* 0385B4 7F003A84 0503000E */ bgezl $t0, .L7F003AC0 +/* 0385B8 7F003A88 8E020014 */ lw $v0, 0x14($s0) +/* 0385BC 7F003A8C AE2900F0 */ sw $t1, 0xf0($s1) +/* 0385C0 7F003A90 8FAA01B4 */ lw $t2, 0x1b4($sp) +/* 0385C4 7F003A94 0542000A */ bltzl $t2, .L7F003AC0 +/* 0385C8 7F003A98 8E020014 */ lw $v0, 0x14($s0) +/* 0385CC 7F003A9C 44803000 */ mtc1 $zero, $f6 +/* 0385D0 7F003AA0 C63200B4 */ lwc1 $f18, 0xb4($s1) +/* 0385D4 7F003AA4 46123032 */ c.eq.s $f6, $f18 +/* 0385D8 7F003AA8 00000000 */ nop +/* 0385DC 7F003AAC 45020004 */ bc1fl .L7F003AC0 +/* 0385E0 7F003AB0 8E020014 */ lw $v0, 0x14($s0) +/* 0385E4 7F003AB4 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 0385E8 7F003AB8 02202025 */ move $a0, $s1 +/* 0385EC 7F003ABC 8E020014 */ lw $v0, 0x14($s0) +.L7F003AC0: +/* 0385F0 7F003AC0 02002025 */ move $a0, $s0 +/* 0385F4 7F003AC4 904B0003 */ lbu $t3, 3($v0) +/* 0385F8 7F003AC8 A20B002C */ sb $t3, 0x2c($s0) +/* 0385FC 7F003ACC 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038600 7F003AD0 90450003 */ lbu $a1, 3($v0) +/* 038604 7F003AD4 240200FF */ li $v0, 255 +/* 038608 7F003AD8 A202002D */ sb $v0, 0x2d($s0) +/* 03860C 7F003ADC A202002E */ sb $v0, 0x2e($s0) +/* 038610 7F003AE0 8E230008 */ lw $v1, 8($s1) +/* 038614 7F003AE4 000360C0 */ sll $t4, $v1, 3 +/* 038618 7F003AE8 05800003 */ bltz $t4, .L7F003AF8 +/* 03861C 7F003AEC 00036840 */ sll $t5, $v1, 1 +/* 038620 7F003AF0 05A3001A */ bgezl $t5, .L7F003B5C +/* 038624 7F003AF4 8E240014 */ lw $a0, 0x14($s1) +.L7F003AF8: +/* 038628 7F003AF8 8E180014 */ lw $t8, 0x14($s0) +/* 03862C 7F003AFC 8FAE01B0 */ lw $t6, 0x1b0($sp) +/* 038630 7F003B00 8FA501AC */ lw $a1, 0x1ac($sp) +/* 038634 7F003B04 93190003 */ lbu $t9, 3($t8) +/* 038638 7F003B08 11D90009 */ beq $t6, $t9, .L7F003B30 +/* 03863C 7F003B0C 00000000 */ nop +/* 038640 7F003B10 05C0000D */ bltz $t6, .L7F003B48 +/* 038644 7F003B14 8FAF01B0 */ lw $t7, 0x1b0($sp) +/* 038648 7F003B18 A20F002D */ sb $t7, 0x2d($s0) +/* 03864C 7F003B1C 87A501B2 */ lh $a1, 0x1b2($sp) +/* 038650 7F003B20 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038654 7F003B24 02002025 */ move $a0, $s0 +/* 038658 7F003B28 10000008 */ b .L7F003B4C +/* 03865C 7F003B2C 9209002D */ lbu $t1, 0x2d($s0) +.L7F003B30: +/* 038660 7F003B30 04A00005 */ bltz $a1, .L7F003B48 +/* 038664 7F003B34 8FA801AC */ lw $t0, 0x1ac($sp) +/* 038668 7F003B38 A208002D */ sb $t0, 0x2d($s0) +/* 03866C 7F003B3C 87A501AE */ lh $a1, 0x1ae($sp) +/* 038670 7F003B40 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038674 7F003B44 02002025 */ move $a0, $s0 +.L7F003B48: +/* 038678 7F003B48 9209002D */ lbu $t1, 0x2d($s0) +.L7F003B4C: +/* 03867C 7F003B4C 240100FF */ li $at, 255 +/* 038680 7F003B50 51210002 */ beql $t1, $at, .L7F003B5C +/* 038684 7F003B54 8E240014 */ lw $a0, 0x14($s1) +/* 038688 7F003B58 8E240014 */ lw $a0, 0x14($s1) +.L7F003B5C: +/* 03868C 7F003B5C C7A00060 */ lwc1 $f0, 0x60($sp) +/* 038690 7F003B60 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 038694 7F003B64 10800010 */ beqz $a0, .L7F003BA8 +/* 038698 7F003B68 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 03869C 7F003B6C 460C003C */ c.lt.s $f0, $f12 +/* 0386A0 7F003B70 00000000 */ nop +/* 0386A4 7F003B74 45020003 */ bc1fl .L7F003B84 +/* 0386A8 7F003B78 460A003C */ c.lt.s $f0, $f10 +/* 0386AC 7F003B7C 46006006 */ mov.s $f0, $f12 +/* 0386B0 7F003B80 460A003C */ c.lt.s $f0, $f10 +.L7F003B84: +/* 0386B4 7F003B84 00000000 */ nop +/* 0386B8 7F003B88 45020003 */ bc1fl .L7F003B98 +/* 0386BC 7F003B8C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0386C0 7F003B90 46005006 */ mov.s $f0, $f10 +/* 0386C4 7F003B94 C4840014 */ lwc1 $f4, 0x14($a0) +.L7F003B98: +/* 0386C8 7F003B98 46002202 */ mul.s $f8, $f4, $f0 +/* 0386CC 7F003B9C 44054000 */ mfc1 $a1, $f8 +/* 0386D0 7F003BA0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0386D4 7F003BA4 00000000 */ nop +.L7F003BA8: +/* 0386D8 7F003BA8 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 0386DC 7F003BAC 02002025 */ move $a0, $s0 +/* 0386E0 7F003BB0 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0386E4 7F003BB4 02002025 */ move $a0, $s0 +/* 0386E8 7F003BB8 8E220080 */ lw $v0, 0x80($s1) +/* 0386EC 7F003BBC 8FAB01E0 */ lw $t3, 0x1e0($sp) +/* 0386F0 7F003BC0 50400007 */ beql $v0, $zero, .L7F003BE0 +/* 0386F4 7F003BC4 8FBF0034 */ lw $ra, 0x34($sp) +/* 0386F8 7F003BC8 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 0386FC 7F003BCC 004B2021 */ addu $a0, $v0, $t3 +/* 038700 7F003BD0 10000002 */ b .L7F003BDC +/* 038704 7F003BD4 AE2200C8 */ sw $v0, 0xc8($s1) +/* 038708 7F003BD8 AE200010 */ sw $zero, 0x10($s1) +.L7F003BDC: +/* 03870C 7F003BDC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F003BE0: +/* 038710 7F003BE0 8FB0002C */ lw $s0, 0x2c($sp) +/* 038714 7F003BE4 8FB10030 */ lw $s1, 0x30($sp) +/* 038718 7F003BE8 03E00008 */ jr $ra +/* 03871C 7F003BEC 27BD01D8 */ addiu $sp, $sp, 0x1d8 +) +#endif + + +#ifdef NONMATCHING +void proplvreset2(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel jpt_object_type_expansion +.word door_expand +.word door_scale_expand +.word obj_03_expand +.word key_expand +.word obj_03_expand +.word surv_camera_expand +.word obj_03_expand +.word item_expand +.word actor_expand +.word single_screen_display_expand +.word multi_screen_display_expand +.word rack_expand +.word autogun_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word hat_expand +.word actor_attr_expand +.word other_obj_expand +.word ammo_box_expand +.word body_armor_expand +.word tag_expand +.word type17_objective_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word type1E_subobjective_expand +.word other_obj_expand +.word type20_subobjective_expand +.word type21_subobjective_expand +.word other_obj_expand +.word type23_solo_brief_text +.word obj_03_expand +.word type25_rename +.word other_obj_expand +.word type27_wheeled_vehicle +.word type28_aircraft +.word obj_03_expand +.word obj_03_expand +.word obj_03_expand +.word other_obj_expand +.word type2D_tank +.word type2E_viewport_pos +.word type2F_tinted_glass + +glabel D_8004F024 +.word 0x40c90fdb +glabel D_8004F028 +.word 0x3e2e147c + +glabel jpt_8004F02C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004BD8 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004C2C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004D70 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004CA4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C + +.text +glabel proplvreset2 +/* 038720 7F003BF0 27BDFD80 */ addiu $sp, $sp, -0x280 +/* 038724 7F003BF4 AFB50034 */ sw $s5, 0x34($sp) +/* 038728 7F003BF8 0080A825 */ move $s5, $a0 +/* 03872C 7F003BFC AFBF0044 */ sw $ra, 0x44($sp) +/* 038730 7F003C00 3C058005 */ lui $a1, %hi(aNochr) +/* 038734 7F003C04 AFBE0040 */ sw $fp, 0x40($sp) +/* 038738 7F003C08 AFB7003C */ sw $s7, 0x3c($sp) +/* 03873C 7F003C0C AFB60038 */ sw $s6, 0x38($sp) +/* 038740 7F003C10 AFB40030 */ sw $s4, 0x30($sp) +/* 038744 7F003C14 AFB3002C */ sw $s3, 0x2c($sp) +/* 038748 7F003C18 AFB20028 */ sw $s2, 0x28($sp) +/* 03874C 7F003C1C AFB10024 */ sw $s1, 0x24($sp) +/* 038750 7F003C20 AFB00020 */ sw $s0, 0x20($sp) +/* 038754 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 038758 7F003C28 24A5ED90 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1270 +/* 03875C 7F003C2C 0C0029A8 */ jal check_token +/* 038760 7F003C30 24040001 */ li $a0, 1 +/* 038764 7F003C34 2C460001 */ sltiu $a2, $v0, 1 +/* 038768 7F003C38 10C00005 */ beqz $a2, .L7F003C50 +/* 03876C 7F003C3C 24040001 */ li $a0, 1 +/* 038770 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) +/* 038774 7F003C44 0C0029A8 */ jal check_token +/* 038778 7F003C48 24A5ED98 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1268 +/* 03877C 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 +.L7F003C50: +/* 038780 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) +/* 038784 7F003C54 AFA60278 */ sw $a2, 0x278($sp) +/* 038788 7F003C58 24A5EDA0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1260 +/* 03878C 7F003C5C 0C0029A8 */ jal check_token +/* 038790 7F003C60 24040001 */ li $a0, 1 +/* 038794 7F003C64 2C430001 */ sltiu $v1, $v0, 1 +/* 038798 7F003C68 10600005 */ beqz $v1, .L7F003C80 +/* 03879C 7F003C6C 24040001 */ li $a0, 1 +/* 0387A0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) +/* 0387A4 7F003C74 0C0029A8 */ jal check_token +/* 0387A8 7F003C78 24A5EDA8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1258 +/* 0387AC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 +.L7F003C80: +/* 0387B0 7F003C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0387B4 7F003C84 44812000 */ mtc1 $at, $f4 +/* 0387B8 7F003C88 0060F025 */ move $fp, $v1 +/* 0387BC 7F003C8C 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 0387C0 7F003C90 3C038004 */ lui $v1, %hi(PitemZ_entries+0xFF0) +/* 0387C4 7F003C94 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 0387C8 7F003C98 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 0387CC 7F003C9C 2463B218 */ addiu $v1, $v1, %lo(PitemZ_entries+0xFF0) +/* 0387D0 7F003CA0 E424A3C0 */ swc1 $f4, %lo(scale_1_0_item_related)($at) +.L7F003CA4: +/* 0387D4 7F003CA4 8C4E0000 */ lw $t6, ($v0) +/* 0387D8 7F003CA8 2442000C */ addiu $v0, $v0, 0xc +/* 0387DC 7F003CAC 0043082B */ sltu $at, $v0, $v1 +/* 0387E0 7F003CB0 1420FFFC */ bnez $at, .L7F003CA4 +/* 0387E4 7F003CB4 ADC00000 */ sw $zero, ($t6) +/* 0387E8 7F003CB8 2AA1003B */ slti $at, $s5, 0x3b +/* 0387EC 7F003CBC 10200454 */ beqz $at, .L7F004E10 +/* 0387F0 7F003CC0 00157880 */ sll $t7, $s5, 2 +/* 0387F4 7F003CC4 3C188003 */ lui $t8, %hi(setup_text_pointers) +/* 0387F8 7F003CC8 271874E4 */ addiu $t8, %lo(setup_text_pointers) # addiu $t8, $t8, 0x74e4 +/* 0387FC 7F003CCC 01F88021 */ addu $s0, $t7, $t8 +/* 038800 7F003CD0 8E020000 */ lw $v0, ($s0) +/* 038804 7F003CD4 3C198005 */ lui $t9, %hi(only_read_by_stageload) +/* 038808 7F003CD8 27B10174 */ addiu $s1, $sp, 0x174 +/* 03880C 7F003CDC 1040044C */ beqz $v0, .L7F004E10 +/* 038810 7F003CE0 2739EDB0 */ addiu $t9, %lo(only_read_by_stageload) # addiu $t9, $t9, -0x1250 +/* 038814 7F003CE4 02205025 */ move $t2, $s1 +/* 038818 7F003CE8 272900FC */ addiu $t1, $t9, 0xfc +.L7F003CEC: +/* 03881C 7F003CEC 8F210000 */ lw $at, ($t9) +/* 038820 7F003CF0 2739000C */ addiu $t9, $t9, 0xc +/* 038824 7F003CF4 254A000C */ addiu $t2, $t2, 0xc +/* 038828 7F003CF8 AD41FFF4 */ sw $at, -0xc($t2) +/* 03882C 7F003CFC 8F21FFF8 */ lw $at, -8($t9) +/* 038830 7F003D00 AD41FFF8 */ sw $at, -8($t2) +/* 038834 7F003D04 8F21FFFC */ lw $at, -4($t9) +/* 038838 7F003D08 1729FFF8 */ bne $t9, $t1, .L7F003CEC +/* 03883C 7F003D0C AD41FFFC */ sw $at, -4($t2) +/* 038840 7F003D10 8F210000 */ lw $at, ($t9) +/* 038844 7F003D14 0000A025 */ move $s4, $zero +/* 038848 7F003D18 00009825 */ move $s3, $zero +/* 03884C 7F003D1C AD410000 */ sw $at, ($t2) +/* 038850 7F003D20 904B0000 */ lbu $t3, ($v0) +/* 038854 7F003D24 A3A00175 */ sb $zero, 0x175($sp) +/* 038858 7F003D28 0FC26919 */ jal get_num_players +/* 03885C 7F003D2C A3AB0174 */ sb $t3, 0x174($sp) +/* 038860 7F003D30 28410002 */ slti $at, $v0, 2 +/* 038864 7F003D34 14200004 */ bnez $at, .L7F003D48 +/* 038868 7F003D38 3C058005 */ lui $a1, %hi(aMp_) +/* 03886C 7F003D3C 24A5EEB0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1150 +/* 038870 7F003D40 0C0029FF */ jal string_append_from_obseg_textbank +/* 038874 7F003D44 02202025 */ move $a0, $s1 +.L7F003D48: +/* 038878 7F003D48 8E050000 */ lw $a1, ($s0) +/* 03887C 7F003D4C 02202025 */ move $a0, $s1 +/* 038880 7F003D50 0C0029FF */ jal string_append_from_obseg_textbank +/* 038884 7F003D54 24A50001 */ addiu $a1, $a1, 1 +/* 038888 7F003D58 02202025 */ move $a0, $s1 +/* 03888C 7F003D5C 24050001 */ li $a1, 1 +/* 038890 7F003D60 24060100 */ li $a2, 256 +/* 038894 7F003D64 0FC2F341 */ jal _load_resource_named_to_membank +/* 038898 7F003D68 24070004 */ li $a3, 4 +/* 03889C 7F003D6C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D28) +/* 0388A0 7F003D70 24635D28 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x5d28 +/* 0388A4 7F003D74 AC620000 */ sw $v0, ($v1) +/* 0388A8 7F003D78 00408825 */ move $s1, $v0 +/* 0388AC 7F003D7C 0FC30578 */ jal get_textbank_number_for_stagenum +/* 0388B0 7F003D80 02A02025 */ move $a0, $s5 +/* 0388B4 7F003D84 0FC30742 */ jal load_mission_text_bank +/* 0388B8 7F003D88 00402025 */ move $a0, $v0 +/* 0388BC 7F003D8C 8E2C0000 */ lw $t4, ($s1) +/* 0388C0 7F003D90 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 0388C4 7F003D94 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 0388C8 7F003D98 022C6821 */ addu $t5, $s1, $t4 +/* 0388CC 7F003D9C ACED0000 */ sw $t5, ($a3) +/* 0388D0 7F003DA0 8E2E0004 */ lw $t6, 4($s1) +/* 0388D4 7F003DA4 022E7821 */ addu $t7, $s1, $t6 +/* 0388D8 7F003DA8 ACEF0004 */ sw $t7, 4($a3) +/* 0388DC 7F003DAC 8E380008 */ lw $t8, 8($s1) +/* 0388E0 7F003DB0 02384021 */ addu $t0, $s1, $t8 +/* 0388E4 7F003DB4 ACE80008 */ sw $t0, 8($a3) +/* 0388E8 7F003DB8 8E29000C */ lw $t1, 0xc($s1) +/* 0388EC 7F003DBC 0229C821 */ addu $t9, $s1, $t1 +/* 0388F0 7F003DC0 ACF9000C */ sw $t9, 0xc($a3) +/* 0388F4 7F003DC4 8E2A0010 */ lw $t2, 0x10($s1) +/* 0388F8 7F003DC8 022A5821 */ addu $t3, $s1, $t2 +/* 0388FC 7F003DCC ACEB0010 */ sw $t3, 0x10($a3) +/* 038900 7F003DD0 8E2C0014 */ lw $t4, 0x14($s1) +/* 038904 7F003DD4 022C6821 */ addu $t5, $s1, $t4 +/* 038908 7F003DD8 ACED0014 */ sw $t5, 0x14($a3) +/* 03890C 7F003DDC 8E2E0018 */ lw $t6, 0x18($s1) +/* 038910 7F003DE0 022E7821 */ addu $t7, $s1, $t6 +/* 038914 7F003DE4 ACEF0018 */ sw $t7, 0x18($a3) +/* 038918 7F003DE8 8E38001C */ lw $t8, 0x1c($s1) +/* 03891C 7F003DEC 02384021 */ addu $t0, $s1, $t8 +/* 038920 7F003DF0 ACE8001C */ sw $t0, 0x1c($a3) +/* 038924 7F003DF4 8E220020 */ lw $v0, 0x20($s1) +/* 038928 7F003DF8 10400003 */ beqz $v0, .L7F003E08 +/* 03892C 7F003DFC 02224821 */ addu $t1, $s1, $v0 +/* 038930 7F003E00 10000002 */ b .L7F003E0C +/* 038934 7F003E04 ACE90020 */ sw $t1, 0x20($a3) +.L7F003E08: +/* 038938 7F003E08 ACE00020 */ sw $zero, 0x20($a3) +.L7F003E0C: +/* 03893C 7F003E0C 8E220024 */ lw $v0, 0x24($s1) +/* 038940 7F003E10 10400003 */ beqz $v0, .L7F003E20 +/* 038944 7F003E14 0222C821 */ addu $t9, $s1, $v0 +/* 038948 7F003E18 10000002 */ b .L7F003E24 +/* 03894C 7F003E1C ACF90024 */ sw $t9, 0x24($a3) +.L7F003E20: +/* 038950 7F003E20 ACE00024 */ sw $zero, 0x24($a3) +.L7F003E24: +/* 038954 7F003E24 8CE50000 */ lw $a1, ($a3) +/* 038958 7F003E28 50A00010 */ beql $a1, $zero, .L7F003E6C +/* 03895C 7F003E2C 8CE50004 */ lw $a1, 4($a3) +/* 038960 7F003E30 8CAA0000 */ lw $t2, ($a1) +/* 038964 7F003E34 00001825 */ move $v1, $zero +/* 038968 7F003E38 00A01025 */ move $v0, $a1 +/* 03896C 7F003E3C 0542000B */ bltzl $t2, .L7F003E6C +/* 038970 7F003E40 8CE50004 */ lw $a1, 4($a3) +/* 038974 7F003E44 8C4B0004 */ lw $t3, 4($v0) +.L7F003E48: +/* 038978 7F003E48 24630010 */ addiu $v1, $v1, 0x10 +/* 03897C 7F003E4C 01716021 */ addu $t4, $t3, $s1 +/* 038980 7F003E50 AC4C0004 */ sw $t4, 4($v0) +/* 038984 7F003E54 8CED0000 */ lw $t5, ($a3) +/* 038988 7F003E58 01A31021 */ addu $v0, $t5, $v1 +/* 03898C 7F003E5C 8C4E0000 */ lw $t6, ($v0) +/* 038990 7F003E60 05C3FFF9 */ bgezl $t6, .L7F003E48 +/* 038994 7F003E64 8C4B0004 */ lw $t3, 4($v0) +/* 038998 7F003E68 8CE50004 */ lw $a1, 4($a3) +.L7F003E6C: +/* 03899C 7F003E6C 50A00015 */ beql $a1, $zero, .L7F003EC4 +/* 0389A0 7F003E70 8CE60014 */ lw $a2, 0x14($a3) +/* 0389A4 7F003E74 8CAF0000 */ lw $t7, ($a1) +/* 0389A8 7F003E78 00001825 */ move $v1, $zero +/* 0389AC 7F003E7C 00A01025 */ move $v0, $a1 +/* 0389B0 7F003E80 51E00010 */ beql $t7, $zero, .L7F003EC4 +/* 0389B4 7F003E84 8CE60014 */ lw $a2, 0x14($a3) +/* 0389B8 7F003E88 8CA40000 */ lw $a0, ($a1) +/* 0389BC 7F003E8C 0091C021 */ addu $t8, $a0, $s1 +.L7F003E90: +/* 0389C0 7F003E90 AC580000 */ sw $t8, ($v0) +/* 0389C4 7F003E94 8CE80004 */ lw $t0, 4($a3) +/* 0389C8 7F003E98 01031021 */ addu $v0, $t0, $v1 +/* 0389CC 7F003E9C 8C490004 */ lw $t1, 4($v0) +/* 0389D0 7F003EA0 2463000C */ addiu $v1, $v1, 0xc +/* 0389D4 7F003EA4 0131C821 */ addu $t9, $t1, $s1 +/* 0389D8 7F003EA8 AC590004 */ sw $t9, 4($v0) +/* 0389DC 7F003EAC 8CEA0004 */ lw $t2, 4($a3) +/* 0389E0 7F003EB0 01431021 */ addu $v0, $t2, $v1 +/* 0389E4 7F003EB4 8C440000 */ lw $a0, ($v0) +/* 0389E8 7F003EB8 5480FFF5 */ bnezl $a0, .L7F003E90 +/* 0389EC 7F003EBC 0091C021 */ addu $t8, $a0, $s1 +/* 0389F0 7F003EC0 8CE60014 */ lw $a2, 0x14($a3) +.L7F003EC4: +/* 0389F4 7F003EC4 50C00010 */ beql $a2, $zero, .L7F003F08 +/* 0389F8 7F003EC8 8CE20010 */ lw $v0, 0x10($a3) +/* 0389FC 7F003ECC 8CCB0000 */ lw $t3, ($a2) +/* 038A00 7F003ED0 00002825 */ move $a1, $zero +/* 038A04 7F003ED4 00C01025 */ move $v0, $a2 +/* 038A08 7F003ED8 5160000B */ beql $t3, $zero, .L7F003F08 +/* 038A0C 7F003EDC 8CE20010 */ lw $v0, 0x10($a3) +/* 038A10 7F003EE0 8CC30000 */ lw $v1, ($a2) +/* 038A14 7F003EE4 00716021 */ addu $t4, $v1, $s1 +.L7F003EE8: +/* 038A18 7F003EE8 AC4C0000 */ sw $t4, ($v0) +/* 038A1C 7F003EEC 8CED0014 */ lw $t5, 0x14($a3) +/* 038A20 7F003EF0 24A50008 */ addiu $a1, $a1, 8 +/* 038A24 7F003EF4 01A51021 */ addu $v0, $t5, $a1 +/* 038A28 7F003EF8 8C430000 */ lw $v1, ($v0) +/* 038A2C 7F003EFC 5460FFFA */ bnezl $v1, .L7F003EE8 +/* 038A30 7F003F00 00716021 */ addu $t4, $v1, $s1 +/* 038A34 7F003F04 8CE20010 */ lw $v0, 0x10($a3) +.L7F003F08: +/* 038A38 7F003F08 50400020 */ beql $v0, $zero, .L7F003F8C +/* 038A3C 7F003F0C 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A40 7F003F10 8C4E0000 */ lw $t6, ($v0) +/* 038A44 7F003F14 00002825 */ move $a1, $zero +/* 038A48 7F003F18 00403025 */ move $a2, $v0 +/* 038A4C 7F003F1C 51C0001B */ beql $t6, $zero, .L7F003F8C +/* 038A50 7F003F20 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A54 7F003F24 8C440000 */ lw $a0, ($v0) +/* 038A58 7F003F28 00917821 */ addu $t7, $a0, $s1 +.L7F003F2C: +/* 038A5C 7F003F2C ACCF0000 */ sw $t7, ($a2) +/* 038A60 7F003F30 8CF80010 */ lw $t8, 0x10($a3) +/* 038A64 7F003F34 00001825 */ move $v1, $zero +/* 038A68 7F003F38 03053021 */ addu $a2, $t8, $a1 +/* 038A6C 7F003F3C 8CC40000 */ lw $a0, ($a2) +/* 038A70 7F003F40 8C880000 */ lw $t0, ($a0) +/* 038A74 7F003F44 00801025 */ move $v0, $a0 +/* 038A78 7F003F48 05020009 */ bltzl $t0, .L7F003F70 +/* 038A7C 7F003F4C A4C30006 */ sh $v1, 6($a2) +/* 038A80 7F003F50 8C490004 */ lw $t1, 4($v0) +.L7F003F54: +/* 038A84 7F003F54 24630001 */ addiu $v1, $v1, 1 +/* 038A88 7F003F58 24420004 */ addiu $v0, $v0, 4 +/* 038A8C 7F003F5C 0523FFFD */ bgezl $t1, .L7F003F54 +/* 038A90 7F003F60 8C490004 */ lw $t1, 4($v0) +/* 038A94 7F003F64 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038A98 7F003F68 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038A9C 7F003F6C A4C30006 */ sh $v1, 6($a2) +.L7F003F70: +/* 038AA0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) +/* 038AA4 7F003F74 24A50008 */ addiu $a1, $a1, 8 +/* 038AA8 7F003F78 03253021 */ addu $a2, $t9, $a1 +/* 038AAC 7F003F7C 8CC40000 */ lw $a0, ($a2) +/* 038AB0 7F003F80 5480FFEA */ bnezl $a0, .L7F003F2C +/* 038AB4 7F003F84 00917821 */ addu $t7, $a0, $s1 +/* 038AB8 7F003F88 8CEA0018 */ lw $t2, 0x18($a3) +.L7F003F8C: +/* 038ABC 7F003F8C 1140001D */ beqz $t2, .L7F004004 +/* 038AC0 7F003F90 00000000 */ nop +/* 038AC4 7F003F94 0FC2D20C */ jal get_room_data_float2 +/* 038AC8 7F003F98 00000000 */ nop +/* 038ACC 7F003F9C 3C108007 */ lui $s0, %hi(ptr_0xxxpresets) +/* 038AD0 7F003FA0 8E105D18 */ lw $s0, %lo(ptr_0xxxpresets)($s0) +/* 038AD4 7F003FA4 46000086 */ mov.s $f2, $f0 +/* 038AD8 7F003FA8 8E020024 */ lw $v0, 0x24($s0) +/* 038ADC 7F003FAC 10400015 */ beqz $v0, .L7F004004 +/* 038AE0 7F003FB0 00000000 */ nop +/* 038AE4 7F003FB4 C6060000 */ lwc1 $f6, ($s0) +.L7F003FB8: +/* 038AE8 7F003FB8 C60A0004 */ lwc1 $f10, 4($s0) +/* 038AEC 7F003FBC C6120008 */ lwc1 $f18, 8($s0) +/* 038AF0 7F003FC0 46023202 */ mul.s $f8, $f6, $f2 +/* 038AF4 7F003FC4 02222821 */ addu $a1, $s1, $v0 +/* 038AF8 7F003FC8 AE050024 */ sw $a1, 0x24($s0) +/* 038AFC 7F003FCC 46025402 */ mul.s $f16, $f10, $f2 +/* 038B00 7F003FD0 02002025 */ move $a0, $s0 +/* 038B04 7F003FD4 26060028 */ addiu $a2, $s0, 0x28 +/* 038B08 7F003FD8 46029102 */ mul.s $f4, $f18, $f2 +/* 038B0C 7F003FDC E6080000 */ swc1 $f8, ($s0) +/* 038B10 7F003FE0 E6100004 */ swc1 $f16, 4($s0) +/* 038B14 7F003FE4 E6040008 */ swc1 $f4, 8($s0) +/* 038B18 7F003FE8 0FC019F0 */ jal init_pathtable_something +/* 038B1C 7F003FEC E7A2015C */ swc1 $f2, 0x15c($sp) +/* 038B20 7F003FF0 8E020050 */ lw $v0, 0x50($s0) +/* 038B24 7F003FF4 2610002C */ addiu $s0, $s0, 0x2c +/* 038B28 7F003FF8 C7A2015C */ lwc1 $f2, 0x15c($sp) +/* 038B2C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 +/* 038B30 7F004000 C6060000 */ lwc1 $f6, ($s0) +.L7F004004: +/* 038B34 7F004004 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B38 7F004008 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B3C 7F00400C 8CEC001C */ lw $t4, 0x1c($a3) +/* 038B40 7F004010 51800033 */ beql $t4, $zero, .L7F0040E0 +/* 038B44 7F004014 8CE50020 */ lw $a1, 0x20($a3) +/* 038B48 7F004018 0FC2D20C */ jal get_room_data_float2 +/* 038B4C 7F00401C 00000000 */ nop +/* 038B50 7F004020 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B54 7F004024 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B58 7F004028 8CF0001C */ lw $s0, 0x1c($a3) +/* 038B5C 7F00402C 46000086 */ mov.s $f2, $f0 +/* 038B60 7F004030 8E020024 */ lw $v0, 0x24($s0) +/* 038B64 7F004034 5040002A */ beql $v0, $zero, .L7F0040E0 +/* 038B68 7F004038 8CE50020 */ lw $a1, 0x20($a3) +/* 038B6C 7F00403C C6060000 */ lwc1 $f6, ($s0) +.L7F004040: +/* 038B70 7F004040 C60A0004 */ lwc1 $f10, 4($s0) +/* 038B74 7F004044 C6120008 */ lwc1 $f18, 8($s0) +/* 038B78 7F004048 46023202 */ mul.s $f8, $f6, $f2 +/* 038B7C 7F00404C C606002C */ lwc1 $f6, 0x2c($s0) +/* 038B80 7F004050 02222821 */ addu $a1, $s1, $v0 +/* 038B84 7F004054 46025402 */ mul.s $f16, $f10, $f2 +/* 038B88 7F004058 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 038B8C 7F00405C AE050024 */ sw $a1, 0x24($s0) +/* 038B90 7F004060 46029102 */ mul.s $f4, $f18, $f2 +/* 038B94 7F004064 E6080000 */ swc1 $f8, ($s0) +/* 038B98 7F004068 C6120034 */ lwc1 $f18, 0x34($s0) +/* 038B9C 7F00406C 46023202 */ mul.s $f8, $f6, $f2 +/* 038BA0 7F004070 E6100004 */ swc1 $f16, 4($s0) +/* 038BA4 7F004074 C6060038 */ lwc1 $f6, 0x38($s0) +/* 038BA8 7F004078 46025402 */ mul.s $f16, $f10, $f2 +/* 038BAC 7F00407C E6040008 */ swc1 $f4, 8($s0) +/* 038BB0 7F004080 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 038BB4 7F004084 46029102 */ mul.s $f4, $f18, $f2 +/* 038BB8 7F004088 E608002C */ swc1 $f8, 0x2c($s0) +/* 038BBC 7F00408C C6120040 */ lwc1 $f18, 0x40($s0) +/* 038BC0 7F004090 46023202 */ mul.s $f8, $f6, $f2 +/* 038BC4 7F004094 E6100030 */ swc1 $f16, 0x30($s0) +/* 038BC8 7F004098 02002025 */ move $a0, $s0 +/* 038BCC 7F00409C 46025402 */ mul.s $f16, $f10, $f2 +/* 038BD0 7F0040A0 E6040034 */ swc1 $f4, 0x34($s0) +/* 038BD4 7F0040A4 26060028 */ addiu $a2, $s0, 0x28 +/* 038BD8 7F0040A8 46029102 */ mul.s $f4, $f18, $f2 +/* 038BDC 7F0040AC E6080038 */ swc1 $f8, 0x38($s0) +/* 038BE0 7F0040B0 E610003C */ swc1 $f16, 0x3c($s0) +/* 038BE4 7F0040B4 E6040040 */ swc1 $f4, 0x40($s0) +/* 038BE8 7F0040B8 0FC019F0 */ jal init_pathtable_something +/* 038BEC 7F0040BC E7A20150 */ swc1 $f2, 0x150($sp) +/* 038BF0 7F0040C0 8E020068 */ lw $v0, 0x68($s0) +/* 038BF4 7F0040C4 26100044 */ addiu $s0, $s0, 0x44 +/* 038BF8 7F0040C8 C7A20150 */ lwc1 $f2, 0x150($sp) +/* 038BFC 7F0040CC 5440FFDC */ bnezl $v0, .L7F004040 +/* 038C00 7F0040D0 C6060000 */ lwc1 $f6, ($s0) +/* 038C04 7F0040D4 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038C08 7F0040D8 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038C0C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) +.L7F0040E0: +/* 038C10 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 +/* 038C14 7F0040E4 8CE50024 */ lw $a1, 0x24($a3) +/* 038C18 7F0040E8 8CAE0000 */ lw $t6, ($a1) +/* 038C1C 7F0040EC 00001025 */ move $v0, $zero +/* 038C20 7F0040F0 00A01825 */ move $v1, $a1 +/* 038C24 7F0040F4 51C0000B */ beql $t6, $zero, .L7F004124 +/* 038C28 7F0040F8 8CE50024 */ lw $a1, 0x24($a3) +/* 038C2C 7F0040FC 8CA40000 */ lw $a0, ($a1) +/* 038C30 7F004100 00917821 */ addu $t7, $a0, $s1 +.L7F004104: +/* 038C34 7F004104 AC6F0000 */ sw $t7, ($v1) +/* 038C38 7F004108 8CF80020 */ lw $t8, 0x20($a3) +/* 038C3C 7F00410C 24420004 */ addiu $v0, $v0, 4 +/* 038C40 7F004110 03021821 */ addu $v1, $t8, $v0 +/* 038C44 7F004114 8C640000 */ lw $a0, ($v1) +/* 038C48 7F004118 5480FFFA */ bnezl $a0, .L7F004104 +/* 038C4C 7F00411C 00917821 */ addu $t7, $a0, $s1 +/* 038C50 7F004120 8CE50024 */ lw $a1, 0x24($a3) +.L7F004124: +/* 038C54 7F004124 50A0000F */ beql $a1, $zero, .L7F004164 +/* 038C58 7F004128 8FAA0278 */ lw $t2, 0x278($sp) +/* 038C5C 7F00412C 8CA80000 */ lw $t0, ($a1) +/* 038C60 7F004130 00001025 */ move $v0, $zero +/* 038C64 7F004134 00A01825 */ move $v1, $a1 +/* 038C68 7F004138 11000009 */ beqz $t0, .L7F004160 +/* 038C6C 7F00413C 01002025 */ move $a0, $t0 +/* 038C70 7F004140 00914821 */ addu $t1, $a0, $s1 +.L7F004144: +/* 038C74 7F004144 AC690000 */ sw $t1, ($v1) +/* 038C78 7F004148 8CF90024 */ lw $t9, 0x24($a3) +/* 038C7C 7F00414C 24420004 */ addiu $v0, $v0, 4 +/* 038C80 7F004150 03221821 */ addu $v1, $t9, $v0 +/* 038C84 7F004154 8C640000 */ lw $a0, ($v1) +/* 038C88 7F004158 5480FFFA */ bnezl $a0, .L7F004144 +/* 038C8C 7F00415C 00914821 */ addu $t1, $a0, $s1 +.L7F004160: +/* 038C90 7F004160 8FAA0278 */ lw $t2, 0x278($sp) +.L7F004164: +/* 038C94 7F004164 11400012 */ beqz $t2, .L7F0041B0 +/* 038C98 7F004168 00000000 */ nop +/* 038C9C 7F00416C 0FC006D4 */ jal load_proptype +/* 038CA0 7F004170 24040009 */ li $a0, 9 +/* 038CA4 7F004174 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CA8 7F004178 00402025 */ move $a0, $v0 +/* 038CAC 7F00417C 0FC006D4 */ jal load_proptype +/* 038CB0 7F004180 24040009 */ li $a0, 9 +/* 038CB4 7F004184 0040A025 */ move $s4, $v0 +/* 038CB8 7F004188 0FC006D4 */ jal load_proptype +/* 038CBC 7F00418C 24040008 */ li $a0, 8 +/* 038CC0 7F004190 00409825 */ move $s3, $v0 +/* 038CC4 7F004194 0FC006D4 */ jal load_proptype +/* 038CC8 7F004198 24040004 */ li $a0, 4 +/* 038CCC 7F00419C 02629821 */ addu $s3, $s3, $v0 +/* 038CD0 7F0041A0 0FC006D4 */ jal load_proptype +/* 038CD4 7F0041A4 24040011 */ li $a0, 17 +/* 038CD8 7F0041A8 10000003 */ b .L7F0041B8 +/* 038CDC 7F0041AC 02629821 */ addu $s3, $s3, $v0 +.L7F0041B0: +/* 038CE0 7F0041B0 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CE4 7F0041B4 00002025 */ move $a0, $zero +.L7F0041B8: +/* 038CE8 7F0041B8 13C0003A */ beqz $fp, .L7F0042A4 +/* 038CEC 7F0041BC 00000000 */ nop +/* 038CF0 7F0041C0 0FC006D4 */ jal load_proptype +/* 038CF4 7F0041C4 24040001 */ li $a0, 1 +/* 038CF8 7F0041C8 02629821 */ addu $s3, $s3, $v0 +/* 038CFC 7F0041CC 0FC006D4 */ jal load_proptype +/* 038D00 7F0041D0 24040006 */ li $a0, 6 +/* 038D04 7F0041D4 02629821 */ addu $s3, $s3, $v0 +/* 038D08 7F0041D8 0FC006D4 */ jal load_proptype +/* 038D0C 7F0041DC 2404000D */ li $a0, 13 +/* 038D10 7F0041E0 02629821 */ addu $s3, $s3, $v0 +/* 038D14 7F0041E4 0FC006D4 */ jal load_proptype +/* 038D18 7F0041E8 2404000C */ li $a0, 12 +/* 038D1C 7F0041EC 02629821 */ addu $s3, $s3, $v0 +/* 038D20 7F0041F0 0FC006D4 */ jal load_proptype +/* 038D24 7F0041F4 2404000A */ li $a0, 10 +/* 038D28 7F0041F8 02629821 */ addu $s3, $s3, $v0 +/* 038D2C 7F0041FC 0FC006D4 */ jal load_proptype +/* 038D30 7F004200 2404000B */ li $a0, 11 +/* 038D34 7F004204 02629821 */ addu $s3, $s3, $v0 +/* 038D38 7F004208 0FC006D4 */ jal load_proptype +/* 038D3C 7F00420C 24040015 */ li $a0, 21 +/* 038D40 7F004210 02629821 */ addu $s3, $s3, $v0 +/* 038D44 7F004214 0FC006D4 */ jal load_proptype +/* 038D48 7F004218 24040003 */ li $a0, 3 +/* 038D4C 7F00421C 02629821 */ addu $s3, $s3, $v0 +/* 038D50 7F004220 0FC006D4 */ jal load_proptype +/* 038D54 7F004224 2404002A */ li $a0, 42 +/* 038D58 7F004228 02629821 */ addu $s3, $s3, $v0 +/* 038D5C 7F00422C 0FC006D4 */ jal load_proptype +/* 038D60 7F004230 2404002F */ li $a0, 47 +/* 038D64 7F004234 02629821 */ addu $s3, $s3, $v0 +/* 038D68 7F004238 0FC006D4 */ jal load_proptype +/* 038D6C 7F00423C 2404002B */ li $a0, 43 +/* 038D70 7F004240 02629821 */ addu $s3, $s3, $v0 +/* 038D74 7F004244 0FC006D4 */ jal load_proptype +/* 038D78 7F004248 24040029 */ li $a0, 41 +/* 038D7C 7F00424C 02629821 */ addu $s3, $s3, $v0 +/* 038D80 7F004250 0FC006D4 */ jal load_proptype +/* 038D84 7F004254 24040024 */ li $a0, 36 +/* 038D88 7F004258 02629821 */ addu $s3, $s3, $v0 +/* 038D8C 7F00425C 0FC006D4 */ jal load_proptype +/* 038D90 7F004260 24040005 */ li $a0, 5 +/* 038D94 7F004264 02629821 */ addu $s3, $s3, $v0 +/* 038D98 7F004268 0FC006D4 */ jal load_proptype +/* 038D9C 7F00426C 24040007 */ li $a0, 7 +/* 038DA0 7F004270 02629821 */ addu $s3, $s3, $v0 +/* 038DA4 7F004274 0FC006D4 */ jal load_proptype +/* 038DA8 7F004278 24040014 */ li $a0, 20 +/* 038DAC 7F00427C 02629821 */ addu $s3, $s3, $v0 +/* 038DB0 7F004280 0FC006D4 */ jal load_proptype +/* 038DB4 7F004284 24040027 */ li $a0, 39 +/* 038DB8 7F004288 02629821 */ addu $s3, $s3, $v0 +/* 038DBC 7F00428C 0FC006D4 */ jal load_proptype +/* 038DC0 7F004290 2404002D */ li $a0, 45 +/* 038DC4 7F004294 02629821 */ addu $s3, $s3, $v0 +/* 038DC8 7F004298 0FC006D4 */ jal load_proptype +/* 038DCC 7F00429C 24040028 */ li $a0, 40 +/* 038DD0 7F0042A0 0282A021 */ addu $s4, $s4, $v0 +.L7F0042A4: +/* 038DD4 7F0042A4 0FC01550 */ jal sub_GAME_7F005540 +/* 038DD8 7F0042A8 02602025 */ move $a0, $s3 +/* 038DDC 7F0042AC 0FC01589 */ jal sub_GAME_7F005624 +/* 038DE0 7F0042B0 02802025 */ move $a0, $s4 +/* 038DE4 7F0042B4 0FC26919 */ jal get_num_players +/* 038DE8 7F0042B8 00008025 */ move $s0, $zero +/* 038DEC 7F0042BC 1840000C */ blez $v0, .L7F0042F0 +/* 038DF0 7F0042C0 00000000 */ nop +.L7F0042C4: +/* 038DF4 7F0042C4 0FC26C43 */ jal set_cur_player +/* 038DF8 7F0042C8 02002025 */ move $a0, $s0 +/* 038DFC 7F0042CC 0FC006D4 */ jal load_proptype +/* 038E00 7F0042D0 2404000E */ li $a0, 14 +/* 038E04 7F0042D4 0FC01897 */ jal alloc_additional_item_slots +/* 038E08 7F0042D8 00402025 */ move $a0, $v0 +/* 038E0C 7F0042DC 0FC26919 */ jal get_num_players +/* 038E10 7F0042E0 26100001 */ addiu $s0, $s0, 1 +/* 038E14 7F0042E4 0202082A */ slt $at, $s0, $v0 +/* 038E18 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 +/* 038E1C 7F0042EC 00000000 */ nop +.L7F0042F0: +/* 038E20 7F0042F0 3C0B8007 */ lui $t3, %hi(ptr_setup_objects) +/* 038E24 7F0042F4 8D6B5D0C */ lw $t3, %lo(ptr_setup_objects)($t3) +/* 038E28 7F0042F8 116002DF */ beqz $t3, .L7F004E78 +/* 038E2C 7F0042FC 00000000 */ nop +/* 038E30 7F004300 0FC2FF04 */ jal get_current_difficulty +/* 038E34 7F004304 00000000 */ nop +/* 038E38 7F004308 244C0004 */ addiu $t4, $v0, 4 +/* 038E3C 7F00430C 240D0001 */ li $t5, 1 +/* 038E40 7F004310 0FC26919 */ jal get_num_players +/* 038E44 7F004314 018DA004 */ sllv $s4, $t5, $t4 +/* 038E48 7F004318 28410002 */ slti $at, $v0, 2 +/* 038E4C 7F00431C 14200007 */ bnez $at, .L7F00433C +/* 038E50 7F004320 00000000 */ nop +/* 038E54 7F004324 0FC26919 */ jal get_num_players +/* 038E58 7F004328 00000000 */ nop +/* 038E5C 7F00432C 244E0014 */ addiu $t6, $v0, 0x14 +/* 038E60 7F004330 240F0001 */ li $t7, 1 +/* 038E64 7F004334 01CFC004 */ sllv $t8, $t7, $t6 +/* 038E68 7F004338 0298A025 */ or $s4, $s4, $t8 +.L7F00433C: +/* 038E6C 7F00433C 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 038E70 7F004340 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 038E74 7F004344 24010030 */ li $at, 48 +/* 038E78 7F004348 00009825 */ move $s3, $zero +/* 038E7C 7F00434C 92430003 */ lbu $v1, 3($s2) +/* 038E80 7F004350 24170034 */ li $s7, 52 +/* 038E84 7F004354 506101F6 */ beql $v1, $at, .L7F004B30 +/* 038E88 7F004358 92430003 */ lbu $v1, 3($s2) +/* 038E8C 7F00435C 4480A000 */ mtc1 $zero, $f20 +/* 038E90 7F004360 3416FFFF */ li $s6, 65535 +/* 038E94 7F004364 2468FFFF */ addiu $t0, $v1, -1 +.L7F004368: +/* 038E98 7F004368 2D01002F */ sltiu $at, $t0, 0x2f +/* 038E9C 7F00436C 102001E3 */ beqz $at, other_obj_expand +/* 038EA0 7F004370 00084080 */ sll $t0, $t0, 2 +/* 038EA4 7F004374 3C018005 */ lui $at, %hi(jpt_object_type_expansion) +/* 038EA8 7F004378 00280821 */ addu $at, $at, $t0 +/* 038EAC 7F00437C 8C28EF68 */ lw $t0, %lo(jpt_object_type_expansion)($at) +/* 038EB0 7F004380 01000008 */ jr $t0 +/* 038EB4 7F004384 00000000 */ nop +actor_attr_expand: +/* 038EB8 7F004388 9250000B */ lbu $s0, 0xb($s2) +/* 038EBC 7F00438C 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 038EC0 7F004390 8E440004 */ lw $a0, 4($s2) +/* 038EC4 7F004394 104001D9 */ beqz $v0, other_obj_expand +/* 038EC8 7F004398 00000000 */ nop +/* 038ECC 7F00439C 8C490018 */ lw $t1, 0x18($v0) +/* 038ED0 7F0043A0 112001D6 */ beqz $t1, other_obj_expand +/* 038ED4 7F0043A4 00000000 */ nop +/* 038ED8 7F0043A8 8C59001C */ lw $t9, 0x1c($v0) +/* 038EDC 7F0043AC 132001D3 */ beqz $t9, other_obj_expand +/* 038EE0 7F0043B0 00000000 */ nop +/* 038EE4 7F0043B4 100001D1 */ b other_obj_expand +/* 038EE8 7F0043B8 A0500010 */ sb $s0, 0x10($v0) +actor_expand: +/* 038EEC 7F0043BC 8FAA0278 */ lw $t2, 0x278($sp) +/* 038EF0 7F0043C0 02A02025 */ move $a0, $s5 +/* 038EF4 7F0043C4 02402825 */ move $a1, $s2 +/* 038EF8 7F0043C8 114001CC */ beqz $t2, other_obj_expand +/* 038EFC 7F0043CC 00000000 */ nop +/* 038F00 7F0043D0 0FC08DC3 */ jal expand_09_characters +/* 038F04 7F0043D4 02603025 */ move $a2, $s3 +/* 038F08 7F0043D8 100001C8 */ b other_obj_expand +/* 038F0C 7F0043DC 00000000 */ nop +door_expand: +/* 038F10 7F0043E0 13C001C6 */ beqz $fp, other_obj_expand +/* 038F14 7F0043E4 00000000 */ nop +/* 038F18 7F0043E8 8E4B000C */ lw $t3, 0xc($s2) +/* 038F1C 7F0043EC 02A02025 */ move $a0, $s5 +/* 038F20 7F0043F0 02402825 */ move $a1, $s2 +/* 038F24 7F0043F4 01746824 */ and $t5, $t3, $s4 +/* 038F28 7F0043F8 15A001C0 */ bnez $t5, other_obj_expand +/* 038F2C 7F0043FC 00000000 */ nop +/* 038F30 7F004400 0FC00D20 */ jal sub_GAME_7F003480 +/* 038F34 7F004404 02603025 */ move $a2, $s3 +/* 038F38 7F004408 100001BC */ b other_obj_expand +/* 038F3C 7F00440C 00000000 */ nop +door_scale_expand: +/* 038F40 7F004410 8E4C0004 */ lw $t4, 4($s2) +/* 038F44 7F004414 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 038F48 7F004418 44815000 */ mtc1 $at, $f10 +/* 038F4C 7F00441C 448C3000 */ mtc1 $t4, $f6 +/* 038F50 7F004420 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 038F54 7F004424 46803220 */ cvt.s.w $f8, $f6 +/* 038F58 7F004428 460A4403 */ div.s $f16, $f8, $f10 +/* 038F5C 7F00442C 100001B3 */ b other_obj_expand +/* 038F60 7F004430 E430A3C0 */ swc1 $f16, %lo(scale_1_0_item_related)($at) +item_expand: +/* 038F64 7F004434 8FAF0278 */ lw $t7, 0x278($sp) +/* 038F68 7F004438 11E001B0 */ beqz $t7, other_obj_expand +/* 038F6C 7F00443C 00000000 */ nop +/* 038F70 7F004440 8E4E000C */ lw $t6, 0xc($s2) +/* 038F74 7F004444 02A02025 */ move $a0, $s5 +/* 038F78 7F004448 02402825 */ move $a1, $s2 +/* 038F7C 7F00444C 01D4C024 */ and $t8, $t6, $s4 +/* 038F80 7F004450 170001AA */ bnez $t8, other_obj_expand +/* 038F84 7F004454 00000000 */ nop +/* 038F88 7F004458 0FC009CE */ jal expand_08_obj_set_guard_MP_weapons +/* 038F8C 7F00445C 02603025 */ move $a2, $s3 +/* 038F90 7F004460 100001A6 */ b other_obj_expand +/* 038F94 7F004464 00000000 */ nop +key_expand: +/* 038F98 7F004468 8FA80278 */ lw $t0, 0x278($sp) +/* 038F9C 7F00446C 110001A3 */ beqz $t0, other_obj_expand +/* 038FA0 7F004470 00000000 */ nop +/* 038FA4 7F004474 8E49000C */ lw $t1, 0xc($s2) +/* 038FA8 7F004478 02A02025 */ move $a0, $s5 +/* 038FAC 7F00447C 02402825 */ move $a1, $s2 +/* 038FB0 7F004480 0134C824 */ and $t9, $t1, $s4 +/* 038FB4 7F004484 1720019D */ bnez $t9, other_obj_expand +/* 038FB8 7F004488 00000000 */ nop +/* 038FBC 7F00448C 0FC00A87 */ jal jmp_prepare_load_objects +/* 038FC0 7F004490 02603025 */ move $a2, $s3 +/* 038FC4 7F004494 10000199 */ b other_obj_expand +/* 038FC8 7F004498 00000000 */ nop +hat_expand: +/* 038FCC 7F00449C 8FAA0278 */ lw $t2, 0x278($sp) +/* 038FD0 7F0044A0 11400196 */ beqz $t2, other_obj_expand +/* 038FD4 7F0044A4 00000000 */ nop +/* 038FD8 7F0044A8 8E4B000C */ lw $t3, 0xc($s2) +/* 038FDC 7F0044AC 02A02025 */ move $a0, $s5 +/* 038FE0 7F0044B0 02402825 */ move $a1, $s2 +/* 038FE4 7F0044B4 01746824 */ and $t5, $t3, $s4 +/* 038FE8 7F0044B8 15A00190 */ bnez $t5, other_obj_expand +/* 038FEC 7F0044BC 00000000 */ nop +/* 038FF0 7F0044C0 0FC00A6A */ jal MP_weapon_expansion_routine +/* 038FF4 7F0044C4 02603025 */ move $a2, $s3 +/* 038FF8 7F0044C8 1000018C */ b other_obj_expand +/* 038FFC 7F0044CC 00000000 */ nop +surv_camera_expand: +/* 039000 7F0044D0 13C0018A */ beqz $fp, other_obj_expand +/* 039004 7F0044D4 00000000 */ nop +/* 039008 7F0044D8 8E4C000C */ lw $t4, 0xc($s2) +/* 03900C 7F0044DC 02A02025 */ move $a0, $s5 +/* 039010 7F0044E0 02402825 */ move $a1, $s2 +/* 039014 7F0044E4 01947824 */ and $t7, $t4, $s4 +/* 039018 7F0044E8 15E00184 */ bnez $t7, other_obj_expand +/* 03901C 7F0044EC 00000000 */ nop +/* 039020 7F0044F0 0FC00A8F */ jal sub_GAME_7F002A3C +/* 039024 7F0044F4 02603025 */ move $a2, $s3 +/* 039028 7F0044F8 10000180 */ b other_obj_expand +/* 03902C 7F0044FC 00000000 */ nop +autogun_expand: +/* 039030 7F004500 13C0017E */ beqz $fp, other_obj_expand +/* 039034 7F004504 00000000 */ nop +/* 039038 7F004508 8E4E000C */ lw $t6, 0xc($s2) +/* 03903C 7F00450C 02A02025 */ move $a0, $s5 +/* 039040 7F004510 02402825 */ move $a1, $s2 +/* 039044 7F004514 01D4C024 */ and $t8, $t6, $s4 +/* 039048 7F004518 17000178 */ bnez $t8, other_obj_expand +/* 03904C 7F00451C 00000000 */ nop +/* 039050 7F004520 0FC00B16 */ jal expand_type_0D_object_autoturret +/* 039054 7F004524 02603025 */ move $a2, $s3 +/* 039058 7F004528 10000174 */ b other_obj_expand +/* 03905C 7F00452C 00000000 */ nop +rack_expand: +/* 039060 7F004530 13C00172 */ beqz $fp, other_obj_expand +/* 039064 7F004534 00000000 */ nop +/* 039068 7F004538 8E48000C */ lw $t0, 0xc($s2) +/* 03906C 7F00453C 02A02025 */ move $a0, $s5 +/* 039070 7F004540 02402825 */ move $a1, $s2 +/* 039074 7F004544 01144824 */ and $t1, $t0, $s4 +/* 039078 7F004548 1520016C */ bnez $t1, other_obj_expand +/* 03907C 7F00454C 00000000 */ nop +/* 039080 7F004550 0FC00B87 */ jal jmp_prepare_load_objects_0 +/* 039084 7F004554 02603025 */ move $a2, $s3 +/* 039088 7F004558 10000168 */ b other_obj_expand +/* 03908C 7F00455C 00000000 */ nop +single_screen_display_expand: +/* 039090 7F004560 13C00166 */ beqz $fp, other_obj_expand +/* 039094 7F004564 00000000 */ nop +/* 039098 7F004568 8E59000C */ lw $t9, 0xc($s2) +/* 03909C 7F00456C 02A02025 */ move $a0, $s5 +/* 0390A0 7F004570 02402825 */ move $a1, $s2 +/* 0390A4 7F004574 03345024 */ and $t2, $t9, $s4 +/* 0390A8 7F004578 15400160 */ bnez $t2, other_obj_expand +/* 0390AC 7F00457C 00000000 */ nop +/* 0390B0 7F004580 0FC00B8F */ jal sub_GAME_7F002E3C +/* 0390B4 7F004584 02603025 */ move $a2, $s3 +/* 0390B8 7F004588 1000015C */ b other_obj_expand +/* 0390BC 7F00458C 00000000 */ nop +multi_screen_display_expand: +/* 0390C0 7F004590 13C0015A */ beqz $fp, other_obj_expand +/* 0390C4 7F004594 00000000 */ nop +/* 0390C8 7F004598 8E4B000C */ lw $t3, 0xc($s2) +/* 0390CC 7F00459C 02A02025 */ move $a0, $s5 +/* 0390D0 7F0045A0 02402825 */ move $a1, $s2 +/* 0390D4 7F0045A4 01746824 */ and $t5, $t3, $s4 +/* 0390D8 7F0045A8 15A00154 */ bnez $t5, other_obj_expand +/* 0390DC 7F0045AC 00000000 */ nop +/* 0390E0 7F0045B0 0FC00C34 */ jal sub_GAME_7F0030D0 +/* 0390E4 7F0045B4 02603025 */ move $a2, $s3 +/* 0390E8 7F0045B8 10000150 */ b other_obj_expand +/* 0390EC 7F0045BC 00000000 */ nop +body_armor_expand: +/* 0390F0 7F0045C0 13C0014E */ beqz $fp, other_obj_expand +/* 0390F4 7F0045C4 00000000 */ nop +/* 0390F8 7F0045C8 8E4C000C */ lw $t4, 0xc($s2) +/* 0390FC 7F0045CC 01947824 */ and $t7, $t4, $s4 +/* 039100 7F0045D0 15E0014A */ bnez $t7, other_obj_expand +/* 039104 7F0045D4 00000000 */ nop +/* 039108 7F0045D8 8E4E0080 */ lw $t6, 0x80($s2) +/* 03910C 7F0045DC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039110 7F0045E0 44813000 */ mtc1 $at, $f6 +/* 039114 7F0045E4 448E9000 */ mtc1 $t6, $f18 +/* 039118 7F0045E8 02A02025 */ move $a0, $s5 +/* 03911C 7F0045EC 02402825 */ move $a1, $s2 +/* 039120 7F0045F0 46809120 */ cvt.s.w $f4, $f18 +/* 039124 7F0045F4 02603025 */ move $a2, $s3 +/* 039128 7F0045F8 46062203 */ div.s $f8, $f4, $f6 +/* 03912C 7F0045FC E6480080 */ swc1 $f8, 0x80($s2) +/* 039130 7F004600 C64A0080 */ lwc1 $f10, 0x80($s2) +/* 039134 7F004604 0FC00767 */ jal prepare_load_objects +/* 039138 7F004608 E64A0084 */ swc1 $f10, 0x84($s2) +/* 03913C 7F00460C 1000013B */ b other_obj_expand +/* 039140 7F004610 00000000 */ nop +type2F_tinted_glass: +/* 039144 7F004614 13C00139 */ beqz $fp, other_obj_expand +/* 039148 7F004618 00000000 */ nop +/* 03914C 7F00461C 8E58000C */ lw $t8, 0xc($s2) +/* 039150 7F004620 03144024 */ and $t0, $t8, $s4 +/* 039154 7F004624 15000135 */ bnez $t0, other_obj_expand +/* 039158 7F004628 00000000 */ nop +/* 03915C 7F00462C 8E490008 */ lw $t1, 8($s2) +/* 039160 7F004630 0009C8C0 */ sll $t9, $t1, 3 +/* 039164 7F004634 07230039 */ bgezl $t9, .L7F00471C +/* 039168 7F004638 02A02025 */ move $a0, $s5 +/* 03916C 7F00463C 86420006 */ lh $v0, 6($s2) +/* 039170 7F004640 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 039174 7F004644 27A50118 */ addiu $a1, $sp, 0x118 +/* 039178 7F004648 28412710 */ slti $at, $v0, 0x2710 +/* 03917C 7F00464C 14200032 */ bnez $at, .L7F004718 +/* 039180 7F004650 00025100 */ sll $t2, $v0, 4 +/* 039184 7F004654 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 039188 7F004658 01425021 */ addu $t2, $t2, $v0 +/* 03918C 7F00465C 000A5080 */ sll $t2, $t2, 2 +/* 039190 7F004660 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 039194 7F004664 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 039198 7F004668 014B8021 */ addu $s0, $t2, $t3 +/* 03919C 7F00466C 02018021 */ addu $s0, $s0, $at +/* 0391A0 7F004670 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 0391A4 7F004674 02002025 */ move $a0, $s0 +/* 0391A8 7F004678 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0391AC 7F00467C 44810000 */ mtc1 $at, $f0 +/* 0391B0 7F004680 C610000C */ lwc1 $f16, 0xc($s0) +/* 0391B4 7F004684 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 0391B8 7F004688 27A40118 */ addiu $a0, $sp, 0x118 +/* 0391BC 7F00468C 46008482 */ mul.s $f18, $f16, $f0 +/* 0391C0 7F004690 C7B0011C */ lwc1 $f16, 0x11c($sp) +/* 0391C4 7F004694 27A5010C */ addiu $a1, $sp, 0x10c +/* 0391C8 7F004698 46049180 */ add.s $f6, $f18, $f4 +/* 0391CC 7F00469C E7A6010C */ swc1 $f6, 0x10c($sp) +/* 0391D0 7F0046A0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0391D4 7F0046A4 46004282 */ mul.s $f10, $f8, $f0 +/* 0391D8 7F0046A8 46105480 */ add.s $f18, $f10, $f16 +/* 0391DC 7F0046AC C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 0391E0 7F0046B0 E7B20110 */ swc1 $f18, 0x110($sp) +/* 0391E4 7F0046B4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 0391E8 7F0046B8 46003202 */ mul.s $f8, $f6, $f0 +/* 0391EC 7F0046BC 460A4480 */ add.s $f18, $f8, $f10 +/* 0391F0 7F0046C0 E7B20114 */ swc1 $f18, 0x114($sp) +/* 0391F4 7F0046C4 C606000C */ lwc1 $f6, 0xc($s0) +/* 0391F8 7F0046C8 46060202 */ mul.s $f8, $f0, $f6 +/* 0391FC 7F0046CC 46082481 */ sub.s $f18, $f4, $f8 +/* 039200 7F0046D0 E7B20118 */ swc1 $f18, 0x118($sp) +/* 039204 7F0046D4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 039208 7F0046D8 46060102 */ mul.s $f4, $f0, $f6 +/* 03920C 7F0046DC 46048201 */ sub.s $f8, $f16, $f4 +/* 039210 7F0046E0 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 039214 7F0046E4 C6120014 */ lwc1 $f18, 0x14($s0) +/* 039218 7F0046E8 46120182 */ mul.s $f6, $f0, $f18 +/* 03921C 7F0046EC 46065401 */ sub.s $f16, $f10, $f6 +/* 039220 7F0046F0 0FC2E781 */ jal sub_GAME_7F0B9E04 +/* 039224 7F0046F4 E7B00120 */ swc1 $f16, 0x120($sp) +/* 039228 7F0046F8 8E4D0090 */ lw $t5, 0x90($s2) +/* 03922C 7F0046FC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039230 7F004700 44819000 */ mtc1 $at, $f18 +/* 039234 7F004704 448D2000 */ mtc1 $t5, $f4 +/* 039238 7F004708 AE42008C */ sw $v0, 0x8c($s2) +/* 03923C 7F00470C 46802220 */ cvt.s.w $f8, $f4 +/* 039240 7F004710 46124283 */ div.s $f10, $f8, $f18 +/* 039244 7F004714 E64A0090 */ swc1 $f10, 0x90($s2) +.L7F004718: +/* 039248 7F004718 02A02025 */ move $a0, $s5 +.L7F00471C: +/* 03924C 7F00471C 02402825 */ move $a1, $s2 +/* 039250 7F004720 0FC00767 */ jal prepare_load_objects +/* 039254 7F004724 02603025 */ move $a2, $s3 +/* 039258 7F004728 100000F4 */ b other_obj_expand +/* 03925C 7F00472C 00000000 */ nop +obj_03_expand: +/* 039260 7F004730 13C000F2 */ beqz $fp, other_obj_expand +/* 039264 7F004734 00000000 */ nop +/* 039268 7F004738 8E4C000C */ lw $t4, 0xc($s2) +/* 03926C 7F00473C 02A02025 */ move $a0, $s5 +/* 039270 7F004740 02402825 */ move $a1, $s2 +/* 039274 7F004744 01947824 */ and $t7, $t4, $s4 +/* 039278 7F004748 15E000EC */ bnez $t7, other_obj_expand +/* 03927C 7F00474C 00000000 */ nop +/* 039280 7F004750 0FC00767 */ jal prepare_load_objects +/* 039284 7F004754 02603025 */ move $a2, $s3 +/* 039288 7F004758 100000E8 */ b other_obj_expand +/* 03928C 7F00475C 00000000 */ nop +ammo_box_expand: +/* 039290 7F004760 0FC26919 */ jal get_num_players +/* 039294 7F004764 24100001 */ li $s0, 1 +/* 039298 7F004768 28410002 */ slti $at, $v0, 2 +/* 03929C 7F00476C 1420000E */ bnez $at, .L7F0047A8 +/* 0392A0 7F004770 00000000 */ nop +/* 0392A4 7F004774 0FC31985 */ jal getPtrMPWeaponSetData +/* 0392A8 7F004778 00000000 */ nop +/* 0392AC 7F00477C 3C0E8007 */ lui $t6, %hi(lastmpweaponnum) +/* 0392B0 7F004780 8DCE9540 */ lw $t6, %lo(lastmpweaponnum)($t6) +/* 0392B4 7F004784 000EC080 */ sll $t8, $t6, 2 +/* 0392B8 7F004788 030EC023 */ subu $t8, $t8, $t6 +/* 0392BC 7F00478C 0018C0C0 */ sll $t8, $t8, 3 +/* 0392C0 7F004790 00581821 */ addu $v1, $v0, $t8 +/* 0392C4 7F004794 8C64000C */ lw $a0, 0xc($v1) +/* 0392C8 7F004798 8C700010 */ lw $s0, 0x10($v1) +/* 0392CC 7F00479C 00044080 */ sll $t0, $a0, 2 +/* 0392D0 7F0047A0 02484821 */ addu $t1, $s2, $t0 +/* 0392D4 7F0047A4 A530007E */ sh $s0, 0x7e($t1) +.L7F0047A8: +/* 0392D8 7F0047A8 1A0000D4 */ blez $s0, other_obj_expand +/* 0392DC 7F0047AC 00000000 */ nop +/* 0392E0 7F0047B0 13C000D2 */ beqz $fp, other_obj_expand +/* 0392E4 7F0047B4 00000000 */ nop +/* 0392E8 7F0047B8 8E59000C */ lw $t9, 0xc($s2) +/* 0392EC 7F0047BC 00008825 */ move $s1, $zero +/* 0392F0 7F0047C0 02408025 */ move $s0, $s2 +/* 0392F4 7F0047C4 03345024 */ and $t2, $t9, $s4 +/* 0392F8 7F0047C8 154000CC */ bnez $t2, other_obj_expand +/* 0392FC 7F0047CC 00000000 */ nop +.L7F0047D0: +/* 039300 7F0047D0 960B0082 */ lhu $t3, 0x82($s0) +/* 039304 7F0047D4 59600007 */ blezl $t3, .L7F0047F4 +/* 039308 7F0047D8 26310004 */ addiu $s1, $s1, 4 +/* 03930C 7F0047DC 96040080 */ lhu $a0, 0x80($s0) +/* 039310 7F0047E0 52C40004 */ beql $s6, $a0, .L7F0047F4 +/* 039314 7F0047E4 26310004 */ addiu $s1, $s1, 4 +/* 039318 7F0047E8 0FC15B0E */ jal load_model +/* 03931C 7F0047EC 00000000 */ nop +/* 039320 7F0047F0 26310004 */ addiu $s1, $s1, 4 +.L7F0047F4: +/* 039324 7F0047F4 1637FFF6 */ bne $s1, $s7, .L7F0047D0 +/* 039328 7F0047F8 26100004 */ addiu $s0, $s0, 4 +/* 03932C 7F0047FC 02A02025 */ move $a0, $s5 +/* 039330 7F004800 02402825 */ move $a1, $s2 +/* 039334 7F004804 0FC00767 */ jal prepare_load_objects +/* 039338 7F004808 02603025 */ move $a2, $s3 +/* 03933C 7F00480C 100000BB */ b other_obj_expand +/* 039340 7F004810 00000000 */ nop +type2D_tank: +/* 039344 7F004814 13C000B9 */ beqz $fp, other_obj_expand +/* 039348 7F004818 00000000 */ nop +/* 03934C 7F00481C 8E4D000C */ lw $t5, 0xc($s2) +/* 039350 7F004820 24040020 */ li $a0, 32 +/* 039354 7F004824 01B46024 */ and $t4, $t5, $s4 +/* 039358 7F004828 158000B4 */ bnez $t4, other_obj_expand +/* 03935C 7F00482C 00000000 */ nop +/* 039360 7F004830 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 039364 7F004834 E7B400E8 */ swc1 $f20, 0xe8($sp) +/* 039368 7F004838 02A02025 */ move $a0, $s5 +/* 03936C 7F00483C 02402825 */ move $a1, $s2 +/* 039370 7F004840 0FC00767 */ jal prepare_load_objects +/* 039374 7F004844 02603025 */ move $a2, $s3 +/* 039378 7F004848 E65400C8 */ swc1 $f20, 0xc8($s2) +/* 03937C 7F00484C E65400CC */ swc1 $f20, 0xcc($s2) +/* 039380 7F004850 C64C0038 */ lwc1 $f12, 0x38($s2) +/* 039384 7F004854 0FC16A8C */ jal atan2f +/* 039388 7F004858 C64E0040 */ lwc1 $f14, 0x40($s2) +/* 03938C 7F00485C 3C018005 */ lui $at, %hi(D_8004F024) +/* 039390 7F004860 C426F024 */ lwc1 $f6, %lo(D_8004F024)($at) +/* 039394 7F004864 8E420010 */ lw $v0, 0x10($s2) +/* 039398 7F004868 46003401 */ sub.s $f16, $f6, $f0 +/* 03939C 7F00486C 10400006 */ beqz $v0, .L7F004888 +/* 0393A0 7F004870 E65000DC */ swc1 $f16, 0xdc($s2) +/* 0393A4 7F004874 8C440014 */ lw $a0, 0x14($v0) +/* 0393A8 7F004878 8C450008 */ lw $a1, 8($v0) +/* 0393AC 7F00487C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0393B0 7F004880 8C460010 */ lw $a2, 0x10($v0) +/* 0393B4 7F004884 E7A000E8 */ swc1 $f0, 0xe8($sp) +.L7F004888: +/* 0393B8 7F004888 C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 0393BC 7F00488C 3C018005 */ lui $at, %hi(D_8004F028) +/* 0393C0 7F004890 E64200D4 */ swc1 $f2, 0xd4($s2) +/* 0393C4 7F004894 C424F028 */ lwc1 $f4, %lo(D_8004F028)($at) +/* 0393C8 7F004898 46041203 */ div.s $f8, $f2, $f4 +/* 0393CC 7F00489C 10000097 */ b other_obj_expand +/* 0393D0 7F0048A0 E64800D0 */ swc1 $f8, 0xd0($s2) +type27_wheeled_vehicle: +/* 0393D4 7F0048A4 13C00095 */ beqz $fp, other_obj_expand +/* 0393D8 7F0048A8 00000000 */ nop +/* 0393DC 7F0048AC 8E4F000C */ lw $t7, 0xc($s2) +/* 0393E0 7F0048B0 02A02025 */ move $a0, $s5 +/* 0393E4 7F0048B4 02402825 */ move $a1, $s2 +/* 0393E8 7F0048B8 01F47024 */ and $t6, $t7, $s4 +/* 0393EC 7F0048BC 15C0008F */ bnez $t6, other_obj_expand +/* 0393F0 7F0048C0 00000000 */ nop +/* 0393F4 7F0048C4 0FC00767 */ jal prepare_load_objects +/* 0393F8 7F0048C8 02603025 */ move $a2, $s3 +/* 0393FC 7F0048CC 8E440014 */ lw $a0, 0x14($s2) +/* 039400 7F0048D0 5080000E */ beql $a0, $zero, .L7F00490C +/* 039404 7F0048D4 3C01BF80 */ lui $at, 0xbf80 +/* 039408 7F0048D8 8C980008 */ lw $t8, 8($a0) +/* 03940C 7F0048DC 8F080008 */ lw $t0, 8($t8) +/* 039410 7F0048E0 8D050014 */ lw $a1, 0x14($t0) +/* 039414 7F0048E4 50A00009 */ beql $a1, $zero, .L7F00490C +/* 039418 7F0048E8 3C01BF80 */ lui $at, 0xbf80 +/* 03941C 7F0048EC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 039420 7F0048F0 00000000 */ nop +/* 039424 7F0048F4 8E490008 */ lw $t1, 8($s2) +/* 039428 7F0048F8 3C011000 */ li $at, 0x10000000 # 0.000000 +/* 03942C 7F0048FC 0121C824 */ and $t9, $t1, $at +/* 039430 7F004900 2F2A0001 */ sltiu $t2, $t9, 1 +/* 039434 7F004904 AC4A0000 */ sw $t2, ($v0) +/* 039438 7F004908 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F00490C: +/* 03943C 7F00490C 44819000 */ mtc1 $at, $f18 +/* 039440 7F004910 E6540088 */ swc1 $f20, 0x88($s2) +/* 039444 7F004914 E654008C */ swc1 $f20, 0x8c($s2) +/* 039448 7F004918 E6540090 */ swc1 $f20, 0x90($s2) +/* 03944C 7F00491C E6540094 */ swc1 $f20, 0x94($s2) +/* 039450 7F004920 E654009C */ swc1 $f20, 0x9c($s2) +/* 039454 7F004924 E65400A0 */ swc1 $f20, 0xa0($s2) +/* 039458 7F004928 8E440080 */ lw $a0, 0x80($s2) +/* 03945C 7F00492C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 039460 7F004930 E6520098 */ swc1 $f18, 0x98($s2) +/* 039464 7F004934 240BFFFF */ li $t3, -1 +/* 039468 7F004938 AE420080 */ sw $v0, 0x80($s2) +/* 03946C 7F00493C A6400084 */ sh $zero, 0x84($s2) +/* 039470 7F004940 A64B0086 */ sh $t3, 0x86($s2) +/* 039474 7F004944 AE4000A4 */ sw $zero, 0xa4($s2) +/* 039478 7F004948 AE4000A8 */ sw $zero, 0xa8($s2) +/* 03947C 7F00494C 1000006B */ b other_obj_expand +/* 039480 7F004950 AE4000AC */ sw $zero, 0xac($s2) +type28_aircraft: +/* 039484 7F004954 13C00069 */ beqz $fp, other_obj_expand +/* 039488 7F004958 00000000 */ nop +/* 03948C 7F00495C 8E4D000C */ lw $t5, 0xc($s2) +/* 039490 7F004960 02A02025 */ move $a0, $s5 +/* 039494 7F004964 02402825 */ move $a1, $s2 +/* 039498 7F004968 01B46024 */ and $t4, $t5, $s4 +/* 03949C 7F00496C 15800063 */ bnez $t4, other_obj_expand +/* 0394A0 7F004970 00000000 */ nop +/* 0394A4 7F004974 0FC00767 */ jal prepare_load_objects +/* 0394A8 7F004978 02603025 */ move $a2, $s3 +/* 0394AC 7F00497C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0394B0 7F004980 44810000 */ mtc1 $at, $f0 +/* 0394B4 7F004984 E6540098 */ swc1 $f20, 0x98($s2) +/* 0394B8 7F004988 E654009C */ swc1 $f20, 0x9c($s2) +/* 0394BC 7F00498C E6540088 */ swc1 $f20, 0x88($s2) +/* 0394C0 7F004990 E654008C */ swc1 $f20, 0x8c($s2) +/* 0394C4 7F004994 E6540090 */ swc1 $f20, 0x90($s2) +/* 0394C8 7F004998 E65400A4 */ swc1 $f20, 0xa4($s2) +/* 0394CC 7F00499C 8E440080 */ lw $a0, 0x80($s2) +/* 0394D0 7F0049A0 E64000A0 */ swc1 $f0, 0xa0($s2) +/* 0394D4 7F0049A4 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 0394D8 7F0049A8 E6400094 */ swc1 $f0, 0x94($s2) +/* 0394DC 7F0049AC 240FFFFF */ li $t7, -1 +/* 0394E0 7F0049B0 AE420080 */ sw $v0, 0x80($s2) +/* 0394E4 7F0049B4 A6400084 */ sh $zero, 0x84($s2) +/* 0394E8 7F0049B8 A64F0086 */ sh $t7, 0x86($s2) +/* 0394EC 7F0049BC AE4000A8 */ sw $zero, 0xa8($s2) +/* 0394F0 7F0049C0 AE4000AC */ sw $zero, 0xac($s2) +/* 0394F4 7F0049C4 1000004D */ b other_obj_expand +/* 0394F8 7F0049C8 AE4000B0 */ sw $zero, 0xb0($s2) +tag_expand: +/* 0394FC 7F0049CC 864E0006 */ lh $t6, 6($s2) +/* 039500 7F0049D0 02A02025 */ move $a0, $s5 +/* 039504 7F0049D4 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039508 7F0049D8 01D32821 */ addu $a1, $t6, $s3 +/* 03950C 7F0049DC 10400004 */ beqz $v0, .L7F0049F0 +/* 039510 7F0049E0 AE42000C */ sw $v0, 0xc($s2) +/* 039514 7F0049E4 8C580064 */ lw $t8, 0x64($v0) +/* 039518 7F0049E8 37080010 */ ori $t0, $t8, 0x10 +/* 03951C 7F0049EC AC480064 */ sw $t0, 0x64($v0) +.L7F0049F0: +/* 039520 7F0049F0 0FC013E2 */ jal set_parent_cur_tag_entry +/* 039524 7F0049F4 02402025 */ move $a0, $s2 +/* 039528 7F0049F8 10000040 */ b other_obj_expand +/* 03952C 7F0049FC 00000000 */ nop +type25_rename: +/* 039530 7F004A00 8E490004 */ lw $t1, 4($s2) +/* 039534 7F004A04 02A02025 */ move $a0, $s5 +/* 039538 7F004A08 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03953C 7F004A0C 01332821 */ addu $a1, $t1, $s3 +/* 039540 7F004A10 10400004 */ beqz $v0, .L7F004A24 +/* 039544 7F004A14 AE420024 */ sw $v0, 0x24($s2) +/* 039548 7F004A18 8C590064 */ lw $t9, 0x64($v0) +/* 03954C 7F004A1C 372A0400 */ ori $t2, $t9, 0x400 +/* 039550 7F004A20 AC4A0064 */ sw $t2, 0x64($v0) +.L7F004A24: +/* 039554 7F004A24 0FC23628 */ jal sub_GAME_7F08D8A0 +/* 039558 7F004A28 02402025 */ move $a0, $s2 +/* 03955C 7F004A2C 10000033 */ b other_obj_expand +/* 039560 7F004A30 00000000 */ nop +type23_solo_brief_text: +/* 039564 7F004A34 0FC013E8 */ jal setup_briefing_text_entry_parent +/* 039568 7F004A38 02402025 */ move $a0, $s2 +/* 03956C 7F004A3C 1000002F */ b other_obj_expand +/* 039570 7F004A40 00000000 */ nop +type2E_viewport_pos: +/* 039574 7F004A44 8E4B0004 */ lw $t3, 4($s2) +/* 039578 7F004A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03957C 7F004A4C 44810000 */ mtc1 $at, $f0 +/* 039580 7F004A50 448B5000 */ mtc1 $t3, $f10 +/* 039584 7F004A54 8E4C000C */ lw $t4, 0xc($s2) +/* 039588 7F004A58 8E4D0008 */ lw $t5, 8($s2) +/* 03958C 7F004A5C 468051A0 */ cvt.s.w $f6, $f10 +/* 039590 7F004A60 448C5000 */ mtc1 $t4, $f10 +/* 039594 7F004A64 448D2000 */ mtc1 $t5, $f4 +/* 039598 7F004A68 8E4F0010 */ lw $t7, 0x10($s2) +/* 03959C 7F004A6C 8E4E0014 */ lw $t6, 0x14($s2) +/* 0395A0 7F004A70 46802220 */ cvt.s.w $f8, $f4 +/* 0395A4 7F004A74 448F2000 */ mtc1 $t7, $f4 +/* 0395A8 7F004A78 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0395AC 7F004A7C 46003403 */ div.s $f16, $f6, $f0 +/* 0395B0 7F004A80 468051A0 */ cvt.s.w $f6, $f10 +/* 0395B4 7F004A84 46004483 */ div.s $f18, $f8, $f0 +/* 0395B8 7F004A88 E6500004 */ swc1 $f16, 4($s2) +/* 0395BC 7F004A8C 46802220 */ cvt.s.w $f8, $f4 +/* 0395C0 7F004A90 44812000 */ mtc1 $at, $f4 +/* 0395C4 7F004A94 46003403 */ div.s $f16, $f6, $f0 +/* 0395C8 7F004A98 448E3000 */ mtc1 $t6, $f6 +/* 0395CC 7F004A9C E6520008 */ swc1 $f18, 8($s2) +/* 0395D0 7F004AA0 44819000 */ mtc1 $at, $f18 +/* 0395D4 7F004AA4 00000000 */ nop +/* 0395D8 7F004AA8 46124283 */ div.s $f10, $f8, $f18 +/* 0395DC 7F004AAC E650000C */ swc1 $f16, 0xc($s2) +/* 0395E0 7F004AB0 46803420 */ cvt.s.w $f16, $f6 +/* 0395E4 7F004AB4 46048203 */ div.s $f8, $f16, $f4 +/* 0395E8 7F004AB8 E64A0010 */ swc1 $f10, 0x10($s2) +/* 0395EC 7F004ABC 1000000F */ b other_obj_expand +/* 0395F0 7F004AC0 E6480014 */ swc1 $f8, 0x14($s2) +type17_objective_expand: +/* 0395F4 7F004AC4 0FC013EE */ jal add_ptr_to_objective +/* 0395F8 7F004AC8 02402025 */ move $a0, $s2 +/* 0395FC 7F004ACC 1000000B */ b other_obj_expand +/* 039600 7F004AD0 00000000 */ nop +type20_subobjective_expand: +/* 039604 7F004AD4 0FC013FD */ jal set_parent_cur_obj_enter_room +/* 039608 7F004AD8 02402025 */ move $a0, $s2 +/* 03960C 7F004ADC 10000007 */ b other_obj_expand +/* 039610 7F004AE0 00000000 */ nop +type21_subobjective_expand: +/* 039614 7F004AE4 0FC01403 */ jal set_parent_cur_obj_deposited_in_room +/* 039618 7F004AE8 02402025 */ move $a0, $s2 +/* 03961C 7F004AEC 10000003 */ b other_obj_expand +/* 039620 7F004AF0 00000000 */ nop +type1E_subobjective_expand: +/* 039624 7F004AF4 0FC01409 */ jal set_parent_cur_obj_photograph +/* 039628 7F004AF8 02402025 */ move $a0, $s2 +other_obj_expand: +/* 03962C 7F004AFC 0FC15A3D */ jal get_size_of_setup_object_type +/* 039630 7F004B00 02402025 */ move $a0, $s2 +/* 039634 7F004B04 0002C080 */ sll $t8, $v0, 2 +/* 039638 7F004B08 03129021 */ addu $s2, $t8, $s2 +/* 03963C 7F004B0C 92430003 */ lbu $v1, 3($s2) +/* 039640 7F004B10 24010030 */ li $at, 48 +/* 039644 7F004B14 26730001 */ addiu $s3, $s3, 1 +/* 039648 7F004B18 5461FE13 */ bnel $v1, $at, .L7F004368 +/* 03964C 7F004B1C 2468FFFF */ addiu $t0, $v1, -1 +/* 039650 7F004B20 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 039654 7F004B24 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 039658 7F004B28 00009825 */ move $s3, $zero +/* 03965C 7F004B2C 92430003 */ lbu $v1, 3($s2) +.L7F004B30: +/* 039660 7F004B30 24010030 */ li $at, 48 +/* 039664 7F004B34 3C170008 */ lui $s7, 8 +/* 039668 7F004B38 106100CF */ beq $v1, $at, .L7F004E78 +/* 03966C 7F004B3C 24160008 */ li $s6, 8 +/* 039670 7F004B40 241E002B */ li $fp, 43 +/* 039674 7F004B44 24140001 */ li $s4, 1 +/* 039678 7F004B48 2468FFFD */ addiu $t0, $v1, -3 +.L7F004B4C: +/* 03967C 7F004B4C 2D01002D */ sltiu $at, $t0, 0x2d +/* 039680 7F004B50 102000A4 */ beqz $at, .L7F004DE4 +/* 039684 7F004B54 00084080 */ sll $t0, $t0, 2 +/* 039688 7F004B58 3C018005 */ lui $at, %hi(jpt_8004F02C) +/* 03968C 7F004B5C 00280821 */ addu $at, $at, $t0 +/* 039690 7F004B60 8C28F02C */ lw $t0, %lo(jpt_8004F02C)($at) +/* 039694 7F004B64 01000008 */ jr $t0 +/* 039698 7F004B68 00000000 */ nop +.L7F004B6C: +/* 03969C 7F004B6C 8E490010 */ lw $t1, 0x10($s2) +/* 0396A0 7F004B70 1120009C */ beqz $t1, .L7F004DE4 +/* 0396A4 7F004B74 00000000 */ nop +/* 0396A8 7F004B78 8E590008 */ lw $t9, 8($s2) +/* 0396AC 7F004B7C 332A8000 */ andi $t2, $t9, 0x8000 +/* 0396B0 7F004B80 11400098 */ beqz $t2, .L7F004DE4 +/* 0396B4 7F004B84 00000000 */ nop +/* 0396B8 7F004B88 86420006 */ lh $v0, 6($s2) +/* 0396BC 7F004B8C 02A02025 */ move $a0, $s5 +/* 0396C0 7F004B90 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0396C4 7F004B94 02622821 */ addu $a1, $s3, $v0 +/* 0396C8 7F004B98 10400092 */ beqz $v0, .L7F004DE4 +/* 0396CC 7F004B9C 00408025 */ move $s0, $v0 +/* 0396D0 7F004BA0 8C4B0010 */ lw $t3, 0x10($v0) +/* 0396D4 7F004BA4 1160008F */ beqz $t3, .L7F004DE4 +/* 0396D8 7F004BA8 00000000 */ nop +/* 0396DC 7F004BAC 8E4D0064 */ lw $t5, 0x64($s2) +/* 0396E0 7F004BB0 8E440014 */ lw $a0, 0x14($s2) +/* 0396E4 7F004BB4 01B76025 */ or $t4, $t5, $s7 +/* 0396E8 7F004BB8 AE4C0064 */ sw $t4, 0x64($s2) +/* 0396EC 7F004BBC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0396F0 7F004BC0 8C850014 */ lw $a1, 0x14($a0) +/* 0396F4 7F004BC4 8E440010 */ lw $a0, 0x10($s2) +/* 0396F8 7F004BC8 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 0396FC 7F004BCC 8E050010 */ lw $a1, 0x10($s0) +/* 039700 7F004BD0 10000084 */ b .L7F004DE4 +/* 039704 7F004BD4 00000000 */ nop +.L7F004BD8: +/* 039708 7F004BD8 8E4F0004 */ lw $t7, 4($s2) +/* 03970C 7F004BDC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039710 7F004BE0 01F32021 */ addu $a0, $t7, $s3 +/* 039714 7F004BE4 8E4E0008 */ lw $t6, 8($s2) +/* 039718 7F004BE8 00408025 */ move $s0, $v0 +/* 03971C 7F004BEC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039720 7F004BF0 01D32021 */ addu $a0, $t6, $s3 +/* 039724 7F004BF4 1200007B */ beqz $s0, .L7F004DE4 +/* 039728 7F004BF8 00402825 */ move $a1, $v0 +/* 03972C 7F004BFC 10400079 */ beqz $v0, .L7F004DE4 +/* 039730 7F004C00 00000000 */ nop +/* 039734 7F004C04 92180003 */ lbu $t8, 3($s0) +/* 039738 7F004C08 16D80076 */ bne $s6, $t8, .L7F004DE4 +/* 03973C 7F004C0C 00000000 */ nop +/* 039740 7F004C10 90480003 */ lbu $t0, 3($v0) +/* 039744 7F004C14 16C80073 */ bne $s6, $t0, .L7F004DE4 +/* 039748 7F004C18 00000000 */ nop +/* 03974C 7F004C1C 0FC1475D */ jal link_objects +/* 039750 7F004C20 02002025 */ move $a0, $s0 +/* 039754 7F004C24 1000006F */ b .L7F004DE4 +/* 039758 7F004C28 00000000 */ nop +.L7F004C2C: +/* 03975C 7F004C2C 8E420004 */ lw $v0, 4($s2) +/* 039760 7F004C30 8E510008 */ lw $s1, 8($s2) +/* 039764 7F004C34 02A02025 */ move $a0, $s5 +/* 039768 7F004C38 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03976C 7F004C3C 02622821 */ addu $a1, $s3, $v0 +/* 039770 7F004C40 00408025 */ move $s0, $v0 +/* 039774 7F004C44 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039778 7F004C48 02712021 */ addu $a0, $s3, $s1 +/* 03977C 7F004C4C 12000065 */ beqz $s0, .L7F004DE4 +/* 039780 7F004C50 00000000 */ nop +/* 039784 7F004C54 8E030010 */ lw $v1, 0x10($s0) +/* 039788 7F004C58 10600062 */ beqz $v1, .L7F004DE4 +/* 03978C 7F004C5C 00000000 */ nop +/* 039790 7F004C60 10400060 */ beqz $v0, .L7F004DE4 +/* 039794 7F004C64 00000000 */ nop +/* 039798 7F004C68 90490003 */ lbu $t1, 3($v0) +/* 03979C 7F004C6C 1689005D */ bne $s4, $t1, .L7F004DE4 +/* 0397A0 7F004C70 00000000 */ nop +/* 0397A4 7F004C74 8C590010 */ lw $t9, 0x10($v0) +/* 0397A8 7F004C78 1320005A */ beqz $t9, .L7F004DE4 +/* 0397AC 7F004C7C 00000000 */ nop +/* 0397B0 7F004C80 AE430004 */ sw $v1, 4($s2) +/* 0397B4 7F004C84 8C4A0010 */ lw $t2, 0x10($v0) +/* 0397B8 7F004C88 02402025 */ move $a0, $s2 +/* 0397BC 7F004C8C 0FC00644 */ jal sub_GAME_7F001910 +/* 0397C0 7F004C90 AE4A0008 */ sw $t2, 8($s2) +/* 0397C4 7F004C94 8E0B0064 */ lw $t3, 0x64($s0) +/* 0397C8 7F004C98 356D0001 */ ori $t5, $t3, 1 +/* 0397CC 7F004C9C 10000051 */ b .L7F004DE4 +/* 0397D0 7F004CA0 AE0D0064 */ sw $t5, 0x64($s0) +.L7F004CA4: +/* 0397D4 7F004CA4 8E420004 */ lw $v0, 4($s2) +/* 0397D8 7F004CA8 8E4C000C */ lw $t4, 0xc($s2) +/* 0397DC 7F004CAC 8E510008 */ lw $s1, 8($s2) +/* 0397E0 7F004CB0 02A02025 */ move $a0, $s5 +/* 0397E4 7F004CB4 02622821 */ addu $a1, $s3, $v0 +/* 0397E8 7F004CB8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397EC 7F004CBC AFAC0080 */ sw $t4, 0x80($sp) +/* 0397F0 7F004CC0 00408025 */ move $s0, $v0 +/* 0397F4 7F004CC4 02A02025 */ move $a0, $s5 +/* 0397F8 7F004CC8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397FC 7F004CCC 02712821 */ addu $a1, $s3, $s1 +/* 039800 7F004CD0 8FAF0080 */ lw $t7, 0x80($sp) +/* 039804 7F004CD4 00408825 */ move $s1, $v0 +/* 039808 7F004CD8 02A02025 */ move $a0, $s5 +/* 03980C 7F004CDC 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039810 7F004CE0 026F2821 */ addu $a1, $s3, $t7 +/* 039814 7F004CE4 1200003F */ beqz $s0, .L7F004DE4 +/* 039818 7F004CE8 00000000 */ nop +/* 03981C 7F004CEC 8E0E0010 */ lw $t6, 0x10($s0) +/* 039820 7F004CF0 11C0003C */ beqz $t6, .L7F004DE4 +/* 039824 7F004CF4 00000000 */ nop +/* 039828 7F004CF8 1220003A */ beqz $s1, .L7F004DE4 +/* 03982C 7F004CFC 00000000 */ nop +/* 039830 7F004D00 8E380010 */ lw $t8, 0x10($s1) +/* 039834 7F004D04 13000037 */ beqz $t8, .L7F004DE4 +/* 039838 7F004D08 00000000 */ nop +/* 03983C 7F004D0C 92280003 */ lbu $t0, 3($s1) +/* 039840 7F004D10 17C80034 */ bne $fp, $t0, .L7F004DE4 +/* 039844 7F004D14 00000000 */ nop +/* 039848 7F004D18 10400032 */ beqz $v0, .L7F004DE4 +/* 03984C 7F004D1C 00000000 */ nop +/* 039850 7F004D20 8C490010 */ lw $t1, 0x10($v0) +/* 039854 7F004D24 1120002F */ beqz $t1, .L7F004DE4 +/* 039858 7F004D28 00000000 */ nop +/* 03985C 7F004D2C 90590003 */ lbu $t9, 3($v0) +/* 039860 7F004D30 02402025 */ move $a0, $s2 +/* 039864 7F004D34 1699002B */ bne $s4, $t9, .L7F004DE4 +/* 039868 7F004D38 00000000 */ nop +/* 03986C 7F004D3C AE500004 */ sw $s0, 4($s2) +/* 039870 7F004D40 AE510008 */ sw $s1, 8($s2) +/* 039874 7F004D44 AE42000C */ sw $v0, 0xc($s2) +/* 039878 7F004D48 0FC00650 */ jal sub_GAME_7F001940 +/* 03987C 7F004D4C AFA20074 */ sw $v0, 0x74($sp) +/* 039880 7F004D50 8E0A000C */ lw $t2, 0xc($s0) +/* 039884 7F004D54 8FA30074 */ lw $v1, 0x74($sp) +/* 039888 7F004D58 354B0400 */ ori $t3, $t2, 0x400 +/* 03988C 7F004D5C AE0B000C */ sw $t3, 0xc($s0) +/* 039890 7F004D60 8C6D000C */ lw $t5, 0xc($v1) +/* 039894 7F004D64 35AC0400 */ ori $t4, $t5, 0x400 +/* 039898 7F004D68 1000001E */ b .L7F004DE4 +/* 03989C 7F004D6C AC6C000C */ sw $t4, 0xc($v1) +.L7F004D70: +/* 0398A0 7F004D70 8E420004 */ lw $v0, 4($s2) +/* 0398A4 7F004D74 8E510008 */ lw $s1, 8($s2) +/* 0398A8 7F004D78 02A02025 */ move $a0, $s5 +/* 0398AC 7F004D7C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398B0 7F004D80 02622821 */ addu $a1, $s3, $v0 +/* 0398B4 7F004D84 00408025 */ move $s0, $v0 +/* 0398B8 7F004D88 02A02025 */ move $a0, $s5 +/* 0398BC 7F004D8C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398C0 7F004D90 02712821 */ addu $a1, $s3, $s1 +/* 0398C4 7F004D94 12000013 */ beqz $s0, .L7F004DE4 +/* 0398C8 7F004D98 00000000 */ nop +/* 0398CC 7F004D9C 8E0F0010 */ lw $t7, 0x10($s0) +/* 0398D0 7F004DA0 11E00010 */ beqz $t7, .L7F004DE4 +/* 0398D4 7F004DA4 00000000 */ nop +/* 0398D8 7F004DA8 1040000E */ beqz $v0, .L7F004DE4 +/* 0398DC 7F004DAC 00000000 */ nop +/* 0398E0 7F004DB0 8C4E0010 */ lw $t6, 0x10($v0) +/* 0398E4 7F004DB4 11C0000B */ beqz $t6, .L7F004DE4 +/* 0398E8 7F004DB8 00000000 */ nop +/* 0398EC 7F004DBC 92180003 */ lbu $t8, 3($s0) +/* 0398F0 7F004DC0 02402025 */ move $a0, $s2 +/* 0398F4 7F004DC4 16980007 */ bne $s4, $t8, .L7F004DE4 +/* 0398F8 7F004DC8 00000000 */ nop +/* 0398FC 7F004DCC AE500004 */ sw $s0, 4($s2) +/* 039900 7F004DD0 0FC0064A */ jal sub_GAME_7F001928 +/* 039904 7F004DD4 AE420008 */ sw $v0, 8($s2) +/* 039908 7F004DD8 8E080064 */ lw $t0, 0x64($s0) +/* 03990C 7F004DDC 35092000 */ ori $t1, $t0, 0x2000 +/* 039910 7F004DE0 AE090064 */ sw $t1, 0x64($s0) +.L7F004DE4: +/* 039914 7F004DE4 0FC15A3D */ jal get_size_of_setup_object_type +/* 039918 7F004DE8 02402025 */ move $a0, $s2 +/* 03991C 7F004DEC 0002C880 */ sll $t9, $v0, 2 +/* 039920 7F004DF0 03329021 */ addu $s2, $t9, $s2 +/* 039924 7F004DF4 92430003 */ lbu $v1, 3($s2) +/* 039928 7F004DF8 24010030 */ li $at, 48 +/* 03992C 7F004DFC 26730001 */ addiu $s3, $s3, 1 +/* 039930 7F004E00 5461FF52 */ bnel $v1, $at, .L7F004B4C +/* 039934 7F004E04 2468FFFD */ addiu $t0, $v1, -3 +/* 039938 7F004E08 1000001B */ b .L7F004E78 +/* 03993C 7F004E0C 00000000 */ nop +.L7F004E10: +/* 039940 7F004E10 3C018007 */ lui $at, %hi(ptr_setup_path_tbl) +/* 039944 7F004E14 AC205D00 */ sw $zero, %lo(ptr_setup_path_tbl)($at) +/* 039948 7F004E18 3C018007 */ lui $at, %hi(ptr_setup_path_link) +/* 03994C 7F004E1C AC205D04 */ sw $zero, %lo(ptr_setup_path_link)($at) +/* 039950 7F004E20 3C018007 */ lui $at, %hi(ptr_setup_intro) +/* 039954 7F004E24 AC205D08 */ sw $zero, %lo(ptr_setup_intro)($at) +/* 039958 7F004E28 3C018007 */ lui $at, %hi(ptr_setup_objects) +/* 03995C 7F004E2C AC205D0C */ sw $zero, %lo(ptr_setup_objects)($at) +/* 039960 7F004E30 3C018007 */ lui $at, %hi(ptr_setup_path_sets) +/* 039964 7F004E34 AC205D10 */ sw $zero, %lo(ptr_setup_path_sets)($at) +/* 039968 7F004E38 3C018007 */ lui $at, %hi(ptr_setup_actions) +/* 03996C 7F004E3C AC205D14 */ sw $zero, %lo(ptr_setup_actions)($at) +/* 039970 7F004E40 3C018007 */ lui $at, %hi(ptr_0xxxpresets) +/* 039974 7F004E44 AC205D18 */ sw $zero, %lo(ptr_0xxxpresets)($at) +/* 039978 7F004E48 3C018007 */ lui $at, %hi(ptr_2xxxpresets) +/* 03997C 7F004E4C AC205D1C */ sw $zero, %lo(ptr_2xxxpresets)($at) +/* 039980 7F004E50 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D20) +/* 039984 7F004E54 AC205D20 */ sw $zero, %lo(dword_CODE_bss_80075D20)($at) +/* 039988 7F004E58 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D24) +/* 03998C 7F004E5C AC205D24 */ sw $zero, %lo(dword_CODE_bss_80075D24)($at) +/* 039990 7F004E60 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 039994 7F004E64 00002025 */ move $a0, $zero +/* 039998 7F004E68 0FC01550 */ jal sub_GAME_7F005540 +/* 03999C 7F004E6C 00002025 */ move $a0, $zero +/* 0399A0 7F004E70 0FC01589 */ jal sub_GAME_7F005624 +/* 0399A4 7F004E74 00002025 */ move $a0, $zero +.L7F004E78: +/* 0399A8 7F004E78 0FC00417 */ jal alloc_false_GUARDdata_to_exec_global_action +/* 0399AC 7F004E7C 00000000 */ nop +/* 0399B0 7F004E80 8FBF0044 */ lw $ra, 0x44($sp) +/* 0399B4 7F004E84 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0399B8 7F004E88 8FB00020 */ lw $s0, 0x20($sp) +/* 0399BC 7F004E8C 8FB10024 */ lw $s1, 0x24($sp) +/* 0399C0 7F004E90 8FB20028 */ lw $s2, 0x28($sp) +/* 0399C4 7F004E94 8FB3002C */ lw $s3, 0x2c($sp) +/* 0399C8 7F004E98 8FB40030 */ lw $s4, 0x30($sp) +/* 0399CC 7F004E9C 8FB50034 */ lw $s5, 0x34($sp) +/* 0399D0 7F004EA0 8FB60038 */ lw $s6, 0x38($sp) +/* 0399D4 7F004EA4 8FB7003C */ lw $s7, 0x3c($sp) +/* 0399D8 7F004EA8 8FBE0040 */ lw $fp, 0x40($sp) +/* 0399DC 7F004EAC 03E00008 */ jr $ra +/* 0399E0 7F004EB0 27BD0280 */ addiu $sp, $sp, 0x280 +) +#endif + +#ifdef VERSION_JP + GLOBAL_ASM( +.late_rodata +glabel jpt_object_type_expansion +.word door_expand +.word door_scale_expand +.word obj_03_expand +.word key_expand +.word obj_03_expand +.word surv_camera_expand +.word obj_03_expand +.word item_expand +.word actor_expand +.word single_screen_display_expand +.word multi_screen_display_expand +.word rack_expand +.word autogun_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word hat_expand +.word actor_attr_expand +.word other_obj_expand +.word ammo_box_expand +.word body_armor_expand +.word tag_expand +.word type17_objective_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word type1E_subobjective_expand +.word other_obj_expand +.word type20_subobjective_expand +.word type21_subobjective_expand +.word other_obj_expand +.word type23_solo_brief_text +.word obj_03_expand +.word type25_rename +.word other_obj_expand +.word type27_wheeled_vehicle +.word type28_aircraft +.word obj_03_expand +.word obj_03_expand +.word obj_03_expand +.word other_obj_expand +.word type2D_tank +.word type2E_viewport_pos +.word type2F_tinted_glass + +glabel D_8004F024 +.word 0x40c90fdb +glabel D_8004F028 +.word 0x3e2e147c + +glabel jpt_8004F02C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004BE8 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004C3C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004D80 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004CB4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C + + + .text + glabel proplvreset2 +/* 038760 7F003BF0 27BDFD80 */ addiu $sp, $sp, -0x280 +/* 038764 7F003BF4 AFB50034 */ sw $s5, 0x34($sp) +/* 038768 7F003BF8 0080A825 */ move $s5, $a0 +/* 03876C 7F003BFC AFBF0044 */ sw $ra, 0x44($sp) +/* 038770 7F003C00 3C058005 */ lui $a1, %hi(aNochr) # $a1, 0x8005 +/* 038774 7F003C04 AFBE0040 */ sw $fp, 0x40($sp) +/* 038778 7F003C08 AFB7003C */ sw $s7, 0x3c($sp) +/* 03877C 7F003C0C AFB60038 */ sw $s6, 0x38($sp) +/* 038780 7F003C10 AFB40030 */ sw $s4, 0x30($sp) +/* 038784 7F003C14 AFB3002C */ sw $s3, 0x2c($sp) +/* 038788 7F003C18 AFB20028 */ sw $s2, 0x28($sp) +/* 03878C 7F003C1C AFB10024 */ sw $s1, 0x24($sp) +/* 038790 7F003C20 AFB00020 */ sw $s0, 0x20($sp) +/* 038794 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 038798 7F003C28 24A5EDC0 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1240 +/* 03879C 7F003C2C 0C0029AC */ jal check_token +/* 0387A0 7F003C30 24040001 */ li $a0, 1 +/* 0387A4 7F003C34 2C460001 */ sltiu $a2, $v0, 1 +/* 0387A8 7F003C38 10C00005 */ beqz $a2, .L7F003C50 +/* 0387AC 7F003C3C 24040001 */ li $a0, 1 +/* 0387B0 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) # $a1, 0x8005 +/* 0387B4 7F003C44 0C0029AC */ jal check_token +/* 0387B8 7F003C48 24A5EDC8 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1238 +/* 0387BC 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 +.L7F003C50: +/* 0387C0 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) # $a1, 0x8005 +/* 0387C4 7F003C54 AFA60278 */ sw $a2, 0x278($sp) +/* 0387C8 7F003C58 24A5EDD0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1230 +/* 0387CC 7F003C5C 0C0029AC */ jal check_token +/* 0387D0 7F003C60 24040001 */ li $a0, 1 +/* 0387D4 7F003C64 2C430001 */ sltiu $v1, $v0, 1 +/* 0387D8 7F003C68 10600005 */ beqz $v1, .L7F003C80 +/* 0387DC 7F003C6C 24040001 */ li $a0, 1 +/* 0387E0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) # $a1, 0x8005 +/* 0387E4 7F003C74 0C0029AC */ jal check_token +/* 0387E8 7F003C78 24A5EDD8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1228 +/* 0387EC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 +.L7F003C80: +/* 0387F0 7F003C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0387F4 7F003C84 44812000 */ mtc1 $at, $f4 +/* 0387F8 7F003C88 0060F025 */ move $fp, $v1 +/* 0387FC 7F003C8C 3C018003 */ lui $at, %hi(scale_1_0_item_related) # $at, 0x8003 +/* 038800 7F003C90 3C038004 */ lui $v1, %hi(PitemZ_entries+0xFF0) # $v1, 0x8004 +/* 038804 7F003C94 3C028004 */ lui $v0, %hi(PitemZ_entries) # $v0, 0x8004 +/* 038808 7F003C98 2442A258 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5da8 +/* 03880C 7F003C9C 2463B248 */ addiu $v1, %lo(PitemZ_entries+0xFF0) # addiu $v1, $v1, -0x4db8 +/* 038810 7F003CA0 E424A400 */ swc1 $f4, %lo(scale_1_0_item_related)($at) +.L7F003CA4: +/* 038814 7F003CA4 8C4E0000 */ lw $t6, ($v0) +/* 038818 7F003CA8 2442000C */ addiu $v0, $v0, 0xc +/* 03881C 7F003CAC 0043082B */ sltu $at, $v0, $v1 +/* 038820 7F003CB0 1420FFFC */ bnez $at, .L7F003CA4 +/* 038824 7F003CB4 ADC00000 */ sw $zero, ($t6) +/* 038828 7F003CB8 2AA1003B */ slti $at, $s5, 0x3b +/* 03882C 7F003CBC 10200458 */ beqz $at, .L7F004E20 +/* 038830 7F003CC0 00157880 */ sll $t7, $s5, 2 +/* 038834 7F003CC4 3C188003 */ lui $t8, %hi(setup_text_pointers) # $t8, 0x8003 +/* 038838 7F003CC8 27187514 */ addiu $t8, %lo(setup_text_pointers) # addiu $t8, $t8, 0x7514 +/* 03883C 7F003CCC 01F88021 */ addu $s0, $t7, $t8 +/* 038840 7F003CD0 8E020000 */ lw $v0, ($s0) +/* 038844 7F003CD4 3C198005 */ lui $t9, %hi(only_read_by_stageload) # $t9, 0x8005 +/* 038848 7F003CD8 27B10174 */ addiu $s1, $sp, 0x174 +/* 03884C 7F003CDC 10400450 */ beqz $v0, .L7F004E20 +/* 038850 7F003CE0 2739EDE0 */ addiu $t9, %lo(only_read_by_stageload) # addiu $t9, $t9, -0x1220 +/* 038854 7F003CE4 02205025 */ move $t2, $s1 +/* 038858 7F003CE8 272900FC */ addiu $t1, $t9, 0xfc +.L7F003CEC: +/* 03885C 7F003CEC 8F210000 */ lw $at, ($t9) +/* 038860 7F003CF0 2739000C */ addiu $t9, $t9, 0xc +/* 038864 7F003CF4 254A000C */ addiu $t2, $t2, 0xc +/* 038868 7F003CF8 AD41FFF4 */ sw $at, -0xc($t2) +/* 03886C 7F003CFC 8F21FFF8 */ lw $at, -8($t9) +/* 038870 7F003D00 AD41FFF8 */ sw $at, -8($t2) +/* 038874 7F003D04 8F21FFFC */ lw $at, -4($t9) +/* 038878 7F003D08 1729FFF8 */ bne $t9, $t1, .L7F003CEC +/* 03887C 7F003D0C AD41FFFC */ sw $at, -4($t2) +/* 038880 7F003D10 8F210000 */ lw $at, ($t9) +/* 038884 7F003D14 0000A025 */ move $s4, $zero +/* 038888 7F003D18 00009825 */ move $s3, $zero +/* 03888C 7F003D1C AD410000 */ sw $at, ($t2) +/* 038890 7F003D20 904B0000 */ lbu $t3, ($v0) +/* 038894 7F003D24 A3A00175 */ sb $zero, 0x175($sp) +/* 038898 7F003D28 0FC26C01 */ jal get_num_players +/* 03889C 7F003D2C A3AB0174 */ sb $t3, 0x174($sp) +/* 0388A0 7F003D30 28410002 */ slti $at, $v0, 2 +/* 0388A4 7F003D34 14200004 */ bnez $at, .L7F003D48 +/* 0388A8 7F003D38 3C058005 */ lui $a1, %hi(aMp_) # $a1, 0x8005 +/* 0388AC 7F003D3C 24A5EEE0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1120 +/* 0388B0 7F003D40 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388B4 7F003D44 02202025 */ move $a0, $s1 +.L7F003D48: +/* 0388B8 7F003D48 8E050000 */ lw $a1, ($s0) +/* 0388BC 7F003D4C 02202025 */ move $a0, $s1 +/* 0388C0 7F003D50 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388C4 7F003D54 24A50001 */ addiu $a1, $a1, 1 +/* 0388C8 7F003D58 02202025 */ move $a0, $s1 +/* 0388CC 7F003D5C 24050001 */ li $a1, 1 +/* 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 +/* 0388E4 7F003D74 AC620000 */ sw $v0, ($v1) +/* 0388E8 7F003D78 00408825 */ move $s1, $v0 +/* 0388EC 7F003D7C 0FC308A4 */ jal get_textbank_number_for_stagenum +/* 0388F0 7F003D80 02A02025 */ move $a0, $s5 +/* 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(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038904 7F003D94 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038908 7F003D98 022C6821 */ addu $t5, $s1, $t4 +/* 03890C 7F003D9C ACED0000 */ sw $t5, ($a3) +/* 038910 7F003DA0 8E2E0004 */ lw $t6, 4($s1) +/* 038914 7F003DA4 022E7821 */ addu $t7, $s1, $t6 +/* 038918 7F003DA8 ACEF0004 */ sw $t7, 4($a3) +/* 03891C 7F003DAC 8E380008 */ lw $t8, 8($s1) +/* 038920 7F003DB0 02384021 */ addu $t0, $s1, $t8 +/* 038924 7F003DB4 ACE80008 */ sw $t0, 8($a3) +/* 038928 7F003DB8 8E29000C */ lw $t1, 0xc($s1) +/* 03892C 7F003DBC 0229C821 */ addu $t9, $s1, $t1 +/* 038930 7F003DC0 ACF9000C */ sw $t9, 0xc($a3) +/* 038934 7F003DC4 8E2A0010 */ lw $t2, 0x10($s1) +/* 038938 7F003DC8 022A5821 */ addu $t3, $s1, $t2 +/* 03893C 7F003DCC ACEB0010 */ sw $t3, 0x10($a3) +/* 038940 7F003DD0 8E2C0014 */ lw $t4, 0x14($s1) +/* 038944 7F003DD4 022C6821 */ addu $t5, $s1, $t4 +/* 038948 7F003DD8 ACED0014 */ sw $t5, 0x14($a3) +/* 03894C 7F003DDC 8E2E0018 */ lw $t6, 0x18($s1) +/* 038950 7F003DE0 022E7821 */ addu $t7, $s1, $t6 +/* 038954 7F003DE4 ACEF0018 */ sw $t7, 0x18($a3) +/* 038958 7F003DE8 8E38001C */ lw $t8, 0x1c($s1) +/* 03895C 7F003DEC 02384021 */ addu $t0, $s1, $t8 +/* 038960 7F003DF0 ACE8001C */ sw $t0, 0x1c($a3) +/* 038964 7F003DF4 8E220020 */ lw $v0, 0x20($s1) +/* 038968 7F003DF8 10400003 */ beqz $v0, .L7F003E08 +/* 03896C 7F003DFC 02224821 */ addu $t1, $s1, $v0 +/* 038970 7F003E00 10000002 */ b .L7F003E0C +/* 038974 7F003E04 ACE90020 */ sw $t1, 0x20($a3) +.L7F003E08: +/* 038978 7F003E08 ACE00020 */ sw $zero, 0x20($a3) +.L7F003E0C: +/* 03897C 7F003E0C 8E220024 */ lw $v0, 0x24($s1) +/* 038980 7F003E10 10400003 */ beqz $v0, .L7F003E20 +/* 038984 7F003E14 0222C821 */ addu $t9, $s1, $v0 +/* 038988 7F003E18 10000002 */ b .L7F003E24 +/* 03898C 7F003E1C ACF90024 */ sw $t9, 0x24($a3) +.L7F003E20: +/* 038990 7F003E20 ACE00024 */ sw $zero, 0x24($a3) +.L7F003E24: +/* 038994 7F003E24 8CE50000 */ lw $a1, ($a3) +/* 038998 7F003E28 50A00010 */ beql $a1, $zero, .L7F003E6C +/* 03899C 7F003E2C 8CE50004 */ lw $a1, 4($a3) +/* 0389A0 7F003E30 8CAA0000 */ lw $t2, ($a1) +/* 0389A4 7F003E34 00001825 */ move $v1, $zero +/* 0389A8 7F003E38 00A01025 */ move $v0, $a1 +/* 0389AC 7F003E3C 0542000B */ bltzl $t2, .L7F003E6C +/* 0389B0 7F003E40 8CE50004 */ lw $a1, 4($a3) +/* 0389B4 7F003E44 8C4B0004 */ lw $t3, 4($v0) +.L7F003E48: +/* 0389B8 7F003E48 24630010 */ addiu $v1, $v1, 0x10 +/* 0389BC 7F003E4C 01716021 */ addu $t4, $t3, $s1 +/* 0389C0 7F003E50 AC4C0004 */ sw $t4, 4($v0) +/* 0389C4 7F003E54 8CED0000 */ lw $t5, ($a3) +/* 0389C8 7F003E58 01A31021 */ addu $v0, $t5, $v1 +/* 0389CC 7F003E5C 8C4E0000 */ lw $t6, ($v0) +/* 0389D0 7F003E60 05C3FFF9 */ bgezl $t6, .L7F003E48 +/* 0389D4 7F003E64 8C4B0004 */ lw $t3, 4($v0) +/* 0389D8 7F003E68 8CE50004 */ lw $a1, 4($a3) +.L7F003E6C: +/* 0389DC 7F003E6C 50A00015 */ beql $a1, $zero, .L7F003EC4 +/* 0389E0 7F003E70 8CE60014 */ lw $a2, 0x14($a3) +/* 0389E4 7F003E74 8CAF0000 */ lw $t7, ($a1) +/* 0389E8 7F003E78 00001825 */ move $v1, $zero +/* 0389EC 7F003E7C 00A01025 */ move $v0, $a1 +/* 0389F0 7F003E80 51E00010 */ beql $t7, $zero, .L7F003EC4 +/* 0389F4 7F003E84 8CE60014 */ lw $a2, 0x14($a3) +/* 0389F8 7F003E88 8CA40000 */ lw $a0, ($a1) +/* 0389FC 7F003E8C 0091C021 */ addu $t8, $a0, $s1 +.L7F003E90: +/* 038A00 7F003E90 AC580000 */ sw $t8, ($v0) +/* 038A04 7F003E94 8CE80004 */ lw $t0, 4($a3) +/* 038A08 7F003E98 01031021 */ addu $v0, $t0, $v1 +/* 038A0C 7F003E9C 8C490004 */ lw $t1, 4($v0) +/* 038A10 7F003EA0 2463000C */ addiu $v1, $v1, 0xc +/* 038A14 7F003EA4 0131C821 */ addu $t9, $t1, $s1 +/* 038A18 7F003EA8 AC590004 */ sw $t9, 4($v0) +/* 038A1C 7F003EAC 8CEA0004 */ lw $t2, 4($a3) +/* 038A20 7F003EB0 01431021 */ addu $v0, $t2, $v1 +/* 038A24 7F003EB4 8C440000 */ lw $a0, ($v0) +/* 038A28 7F003EB8 5480FFF5 */ bnezl $a0, .L7F003E90 +/* 038A2C 7F003EBC 0091C021 */ addu $t8, $a0, $s1 +/* 038A30 7F003EC0 8CE60014 */ lw $a2, 0x14($a3) +.L7F003EC4: +/* 038A34 7F003EC4 50C00010 */ beql $a2, $zero, .L7F003F08 +/* 038A38 7F003EC8 8CE20010 */ lw $v0, 0x10($a3) +/* 038A3C 7F003ECC 8CCB0000 */ lw $t3, ($a2) +/* 038A40 7F003ED0 00002825 */ move $a1, $zero +/* 038A44 7F003ED4 00C01025 */ move $v0, $a2 +/* 038A48 7F003ED8 5160000B */ beql $t3, $zero, .L7F003F08 +/* 038A4C 7F003EDC 8CE20010 */ lw $v0, 0x10($a3) +/* 038A50 7F003EE0 8CC30000 */ lw $v1, ($a2) +/* 038A54 7F003EE4 00716021 */ addu $t4, $v1, $s1 +.L7F003EE8: +/* 038A58 7F003EE8 AC4C0000 */ sw $t4, ($v0) +/* 038A5C 7F003EEC 8CED0014 */ lw $t5, 0x14($a3) +/* 038A60 7F003EF0 24A50008 */ addiu $a1, $a1, 8 +/* 038A64 7F003EF4 01A51021 */ addu $v0, $t5, $a1 +/* 038A68 7F003EF8 8C430000 */ lw $v1, ($v0) +/* 038A6C 7F003EFC 5460FFFA */ bnezl $v1, .L7F003EE8 +/* 038A70 7F003F00 00716021 */ addu $t4, $v1, $s1 +/* 038A74 7F003F04 8CE20010 */ lw $v0, 0x10($a3) +.L7F003F08: +/* 038A78 7F003F08 50400020 */ beql $v0, $zero, .L7F003F8C +/* 038A7C 7F003F0C 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A80 7F003F10 8C4E0000 */ lw $t6, ($v0) +/* 038A84 7F003F14 00002825 */ move $a1, $zero +/* 038A88 7F003F18 00403025 */ move $a2, $v0 +/* 038A8C 7F003F1C 51C0001B */ beql $t6, $zero, .L7F003F8C +/* 038A90 7F003F20 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A94 7F003F24 8C440000 */ lw $a0, ($v0) +/* 038A98 7F003F28 00917821 */ addu $t7, $a0, $s1 +.L7F003F2C: +/* 038A9C 7F003F2C ACCF0000 */ sw $t7, ($a2) +/* 038AA0 7F003F30 8CF80010 */ lw $t8, 0x10($a3) +/* 038AA4 7F003F34 00001825 */ move $v1, $zero +/* 038AA8 7F003F38 03053021 */ addu $a2, $t8, $a1 +/* 038AAC 7F003F3C 8CC40000 */ lw $a0, ($a2) +/* 038AB0 7F003F40 8C880000 */ lw $t0, ($a0) +/* 038AB4 7F003F44 00801025 */ move $v0, $a0 +/* 038AB8 7F003F48 05020009 */ bltzl $t0, .L7F003F70 +/* 038ABC 7F003F4C A4C30006 */ sh $v1, 6($a2) +/* 038AC0 7F003F50 8C490004 */ lw $t1, 4($v0) +.L7F003F54: +/* 038AC4 7F003F54 24630001 */ addiu $v1, $v1, 1 +/* 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(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038AD8 7F003F68 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038ADC 7F003F6C A4C30006 */ sh $v1, 6($a2) +.L7F003F70: +/* 038AE0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) +/* 038AE4 7F003F74 24A50008 */ addiu $a1, $a1, 8 +/* 038AE8 7F003F78 03253021 */ addu $a2, $t9, $a1 +/* 038AEC 7F003F7C 8CC40000 */ lw $a0, ($a2) +/* 038AF0 7F003F80 5480FFEA */ bnezl $a0, .L7F003F2C +/* 038AF4 7F003F84 00917821 */ addu $t7, $a0, $s1 +/* 038AF8 7F003F88 8CEA0018 */ lw $t2, 0x18($a3) +.L7F003F8C: +/* 038AFC 7F003F8C 1140001D */ beqz $t2, .L7F004004 +/* 038B00 7F003F90 00000000 */ nop +/* 038B04 7F003F94 0FC2D4F8 */ jal get_room_data_float2 +/* 038B08 7F003F98 00000000 */ nop +/* 038B0C 7F003F9C 3C108007 */ lui $s0, %hi(ptr_0xxxpresets) # $s0, 0x8007 +/* 038B10 7F003FA0 8E105D58 */ lw $s0, %lo(ptr_0xxxpresets)($s0) +/* 038B14 7F003FA4 46000086 */ mov.s $f2, $f0 +/* 038B18 7F003FA8 8E020024 */ lw $v0, 0x24($s0) +/* 038B1C 7F003FAC 10400015 */ beqz $v0, .L7F004004 +/* 038B20 7F003FB0 00000000 */ nop +/* 038B24 7F003FB4 C6060000 */ lwc1 $f6, ($s0) +.L7F003FB8: +/* 038B28 7F003FB8 C60A0004 */ lwc1 $f10, 4($s0) +/* 038B2C 7F003FBC C6120008 */ lwc1 $f18, 8($s0) +/* 038B30 7F003FC0 46023202 */ mul.s $f8, $f6, $f2 +/* 038B34 7F003FC4 02222821 */ addu $a1, $s1, $v0 +/* 038B38 7F003FC8 AE050024 */ sw $a1, 0x24($s0) +/* 038B3C 7F003FCC 46025402 */ mul.s $f16, $f10, $f2 +/* 038B40 7F003FD0 02002025 */ move $a0, $s0 +/* 038B44 7F003FD4 26060028 */ addiu $a2, $s0, 0x28 +/* 038B48 7F003FD8 46029102 */ mul.s $f4, $f18, $f2 +/* 038B4C 7F003FDC E6080000 */ swc1 $f8, ($s0) +/* 038B50 7F003FE0 E6100004 */ swc1 $f16, 4($s0) +/* 038B54 7F003FE4 E6040008 */ swc1 $f4, 8($s0) +/* 038B58 7F003FE8 0FC019F8 */ jal init_pathtable_something +/* 038B5C 7F003FEC E7A2015C */ swc1 $f2, 0x15c($sp) +/* 038B60 7F003FF0 8E020050 */ lw $v0, 0x50($s0) +/* 038B64 7F003FF4 2610002C */ addiu $s0, $s0, 0x2c +/* 038B68 7F003FF8 C7A2015C */ lwc1 $f2, 0x15c($sp) +/* 038B6C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 +/* 038B70 7F004000 C6060000 */ lwc1 $f6, ($s0) +.L7F004004: +/* 038B74 7F004004 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038B78 7F004008 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # 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(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038B94 7F004024 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # 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) +/* 038BA4 7F004034 5040002A */ beql $v0, $zero, .L7F0040E0 +/* 038BA8 7F004038 8CE50020 */ lw $a1, 0x20($a3) +/* 038BAC 7F00403C C6060000 */ lwc1 $f6, ($s0) +.L7F004040: +/* 038BB0 7F004040 C60A0004 */ lwc1 $f10, 4($s0) +/* 038BB4 7F004044 C6120008 */ lwc1 $f18, 8($s0) +/* 038BB8 7F004048 46023202 */ mul.s $f8, $f6, $f2 +/* 038BBC 7F00404C C606002C */ lwc1 $f6, 0x2c($s0) +/* 038BC0 7F004050 02222821 */ addu $a1, $s1, $v0 +/* 038BC4 7F004054 46025402 */ mul.s $f16, $f10, $f2 +/* 038BC8 7F004058 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 038BCC 7F00405C AE050024 */ sw $a1, 0x24($s0) +/* 038BD0 7F004060 46029102 */ mul.s $f4, $f18, $f2 +/* 038BD4 7F004064 E6080000 */ swc1 $f8, ($s0) +/* 038BD8 7F004068 C6120034 */ lwc1 $f18, 0x34($s0) +/* 038BDC 7F00406C 46023202 */ mul.s $f8, $f6, $f2 +/* 038BE0 7F004070 E6100004 */ swc1 $f16, 4($s0) +/* 038BE4 7F004074 C6060038 */ lwc1 $f6, 0x38($s0) +/* 038BE8 7F004078 46025402 */ mul.s $f16, $f10, $f2 +/* 038BEC 7F00407C E6040008 */ swc1 $f4, 8($s0) +/* 038BF0 7F004080 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 038BF4 7F004084 46029102 */ mul.s $f4, $f18, $f2 +/* 038BF8 7F004088 E608002C */ swc1 $f8, 0x2c($s0) +/* 038BFC 7F00408C C6120040 */ lwc1 $f18, 0x40($s0) +/* 038C00 7F004090 46023202 */ mul.s $f8, $f6, $f2 +/* 038C04 7F004094 E6100030 */ swc1 $f16, 0x30($s0) +/* 038C08 7F004098 02002025 */ move $a0, $s0 +/* 038C0C 7F00409C 46025402 */ mul.s $f16, $f10, $f2 +/* 038C10 7F0040A0 E6040034 */ swc1 $f4, 0x34($s0) +/* 038C14 7F0040A4 26060028 */ addiu $a2, $s0, 0x28 +/* 038C18 7F0040A8 46029102 */ mul.s $f4, $f18, $f2 +/* 038C1C 7F0040AC E6080038 */ swc1 $f8, 0x38($s0) +/* 038C20 7F0040B0 E610003C */ swc1 $f16, 0x3c($s0) +/* 038C24 7F0040B4 E6040040 */ swc1 $f4, 0x40($s0) +/* 038C28 7F0040B8 0FC019F8 */ jal init_pathtable_something +/* 038C2C 7F0040BC E7A20150 */ swc1 $f2, 0x150($sp) +/* 038C30 7F0040C0 8E020068 */ lw $v0, 0x68($s0) +/* 038C34 7F0040C4 26100044 */ addiu $s0, $s0, 0x44 +/* 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(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038C48 7F0040D8 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038C4C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) +.L7F0040E0: +/* 038C50 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 +/* 038C54 7F0040E4 8CE50024 */ lw $a1, 0x24($a3) +/* 038C58 7F0040E8 8CAE0000 */ lw $t6, ($a1) +/* 038C5C 7F0040EC 00001025 */ move $v0, $zero +/* 038C60 7F0040F0 00A01825 */ move $v1, $a1 +/* 038C64 7F0040F4 51C0000B */ beql $t6, $zero, .L7F004124 +/* 038C68 7F0040F8 8CE50024 */ lw $a1, 0x24($a3) +/* 038C6C 7F0040FC 8CA40000 */ lw $a0, ($a1) +/* 038C70 7F004100 00917821 */ addu $t7, $a0, $s1 +.L7F004104: +/* 038C74 7F004104 AC6F0000 */ sw $t7, ($v1) +/* 038C78 7F004108 8CF80020 */ lw $t8, 0x20($a3) +/* 038C7C 7F00410C 24420004 */ addiu $v0, $v0, 4 +/* 038C80 7F004110 03021821 */ addu $v1, $t8, $v0 +/* 038C84 7F004114 8C640000 */ lw $a0, ($v1) +/* 038C88 7F004118 5480FFFA */ bnezl $a0, .L7F004104 +/* 038C8C 7F00411C 00917821 */ addu $t7, $a0, $s1 +/* 038C90 7F004120 8CE50024 */ lw $a1, 0x24($a3) +.L7F004124: +/* 038C94 7F004124 50A0000F */ beql $a1, $zero, .L7F004164 +/* 038C98 7F004128 8FAA0278 */ lw $t2, 0x278($sp) +/* 038C9C 7F00412C 8CA80000 */ lw $t0, ($a1) +/* 038CA0 7F004130 00001025 */ move $v0, $zero +/* 038CA4 7F004134 00A01825 */ move $v1, $a1 +/* 038CA8 7F004138 11000009 */ beqz $t0, .L7F004160 +/* 038CAC 7F00413C 01002025 */ move $a0, $t0 +/* 038CB0 7F004140 00914821 */ addu $t1, $a0, $s1 +.L7F004144: +/* 038CB4 7F004144 AC690000 */ sw $t1, ($v1) +/* 038CB8 7F004148 8CF90024 */ lw $t9, 0x24($a3) +/* 038CBC 7F00414C 24420004 */ addiu $v0, $v0, 4 +/* 038CC0 7F004150 03221821 */ addu $v1, $t9, $v0 +/* 038CC4 7F004154 8C640000 */ lw $a0, ($v1) +/* 038CC8 7F004158 5480FFFA */ bnezl $a0, .L7F004144 +/* 038CCC 7F00415C 00914821 */ addu $t1, $a0, $s1 +.L7F004160: +/* 038CD0 7F004160 8FAA0278 */ lw $t2, 0x278($sp) +.L7F004164: +/* 038CD4 7F004164 11400012 */ beqz $t2, .L7F0041B0 +/* 038CD8 7F004168 00000000 */ nop +/* 038CDC 7F00416C 0FC006D4 */ jal load_proptype +/* 038CE0 7F004170 24040009 */ li $a0, 9 +/* 038CE4 7F004174 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CE8 7F004178 00402025 */ move $a0, $v0 +/* 038CEC 7F00417C 0FC006D4 */ jal load_proptype +/* 038CF0 7F004180 24040009 */ li $a0, 9 +/* 038CF4 7F004184 0040A025 */ move $s4, $v0 +/* 038CF8 7F004188 0FC006D4 */ jal load_proptype +/* 038CFC 7F00418C 24040008 */ li $a0, 8 +/* 038D00 7F004190 00409825 */ move $s3, $v0 +/* 038D04 7F004194 0FC006D4 */ jal load_proptype +/* 038D08 7F004198 24040004 */ li $a0, 4 +/* 038D0C 7F00419C 02629821 */ addu $s3, $s3, $v0 +/* 038D10 7F0041A0 0FC006D4 */ jal load_proptype +/* 038D14 7F0041A4 24040011 */ li $a0, 17 +/* 038D18 7F0041A8 10000003 */ b .L7F0041B8 +/* 038D1C 7F0041AC 02629821 */ addu $s3, $s3, $v0 +.L7F0041B0: +/* 038D20 7F0041B0 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038D24 7F0041B4 00002025 */ move $a0, $zero +.L7F0041B8: +/* 038D28 7F0041B8 13C0003A */ beqz $fp, .L7F0042A4 +/* 038D2C 7F0041BC 00000000 */ nop +/* 038D30 7F0041C0 0FC006D4 */ jal load_proptype +/* 038D34 7F0041C4 24040001 */ li $a0, 1 +/* 038D38 7F0041C8 02629821 */ addu $s3, $s3, $v0 +/* 038D3C 7F0041CC 0FC006D4 */ jal load_proptype +/* 038D40 7F0041D0 24040006 */ li $a0, 6 +/* 038D44 7F0041D4 02629821 */ addu $s3, $s3, $v0 +/* 038D48 7F0041D8 0FC006D4 */ jal load_proptype +/* 038D4C 7F0041DC 2404000D */ li $a0, 13 +/* 038D50 7F0041E0 02629821 */ addu $s3, $s3, $v0 +/* 038D54 7F0041E4 0FC006D4 */ jal load_proptype +/* 038D58 7F0041E8 2404000C */ li $a0, 12 +/* 038D5C 7F0041EC 02629821 */ addu $s3, $s3, $v0 +/* 038D60 7F0041F0 0FC006D4 */ jal load_proptype +/* 038D64 7F0041F4 2404000A */ li $a0, 10 +/* 038D68 7F0041F8 02629821 */ addu $s3, $s3, $v0 +/* 038D6C 7F0041FC 0FC006D4 */ jal load_proptype +/* 038D70 7F004200 2404000B */ li $a0, 11 +/* 038D74 7F004204 02629821 */ addu $s3, $s3, $v0 +/* 038D78 7F004208 0FC006D4 */ jal load_proptype +/* 038D7C 7F00420C 24040015 */ li $a0, 21 +/* 038D80 7F004210 02629821 */ addu $s3, $s3, $v0 +/* 038D84 7F004214 0FC006D4 */ jal load_proptype +/* 038D88 7F004218 24040003 */ li $a0, 3 +/* 038D8C 7F00421C 02629821 */ addu $s3, $s3, $v0 +/* 038D90 7F004220 0FC006D4 */ jal load_proptype +/* 038D94 7F004224 2404002A */ li $a0, 42 +/* 038D98 7F004228 02629821 */ addu $s3, $s3, $v0 +/* 038D9C 7F00422C 0FC006D4 */ jal load_proptype +/* 038DA0 7F004230 2404002F */ li $a0, 47 +/* 038DA4 7F004234 02629821 */ addu $s3, $s3, $v0 +/* 038DA8 7F004238 0FC006D4 */ jal load_proptype +/* 038DAC 7F00423C 2404002B */ li $a0, 43 +/* 038DB0 7F004240 02629821 */ addu $s3, $s3, $v0 +/* 038DB4 7F004244 0FC006D4 */ jal load_proptype +/* 038DB8 7F004248 24040029 */ li $a0, 41 +/* 038DBC 7F00424C 02629821 */ addu $s3, $s3, $v0 +/* 038DC0 7F004250 0FC006D4 */ jal load_proptype +/* 038DC4 7F004254 24040024 */ li $a0, 36 +/* 038DC8 7F004258 02629821 */ addu $s3, $s3, $v0 +/* 038DCC 7F00425C 0FC006D4 */ jal load_proptype +/* 038DD0 7F004260 24040005 */ li $a0, 5 +/* 038DD4 7F004264 02629821 */ addu $s3, $s3, $v0 +/* 038DD8 7F004268 0FC006D4 */ jal load_proptype +/* 038DDC 7F00426C 24040007 */ li $a0, 7 +/* 038DE0 7F004270 02629821 */ addu $s3, $s3, $v0 +/* 038DE4 7F004274 0FC006D4 */ jal load_proptype +/* 038DE8 7F004278 24040014 */ li $a0, 20 +/* 038DEC 7F00427C 02629821 */ addu $s3, $s3, $v0 +/* 038DF0 7F004280 0FC006D4 */ jal load_proptype +/* 038DF4 7F004284 24040027 */ li $a0, 39 +/* 038DF8 7F004288 02629821 */ addu $s3, $s3, $v0 +/* 038DFC 7F00428C 0FC006D4 */ jal load_proptype +/* 038E00 7F004290 2404002D */ li $a0, 45 +/* 038E04 7F004294 02629821 */ addu $s3, $s3, $v0 +/* 038E08 7F004298 0FC006D4 */ jal load_proptype +/* 038E0C 7F00429C 24040028 */ li $a0, 40 +/* 038E10 7F0042A0 0282A021 */ addu $s4, $s4, $v0 +.L7F0042A4: +/* 038E14 7F0042A4 0FC01558 */ jal sub_GAME_7F005540 +/* 038E18 7F0042A8 02602025 */ move $a0, $s3 +/* 038E1C 7F0042AC 0FC01591 */ jal sub_GAME_7F005624 +/* 038E20 7F0042B0 02802025 */ move $a0, $s4 +/* 038E24 7F0042B4 0FC26C01 */ jal get_num_players +/* 038E28 7F0042B8 00008025 */ move $s0, $zero +/* 038E2C 7F0042BC 1840000C */ blez $v0, .L7F0042F0 +/* 038E30 7F0042C0 00000000 */ nop +.L7F0042C4: +/* 038E34 7F0042C4 0FC26F2B */ jal set_cur_player +/* 038E38 7F0042C8 02002025 */ move $a0, $s0 +/* 038E3C 7F0042CC 0FC006D4 */ jal load_proptype +/* 038E40 7F0042D0 2404000E */ li $a0, 14 +/* 038E44 7F0042D4 0FC01897 */ jal alloc_additional_item_slots +/* 038E48 7F0042D8 00402025 */ move $a0, $v0 +/* 038E4C 7F0042DC 0FC26C01 */ jal get_num_players +/* 038E50 7F0042E0 26100001 */ addiu $s0, $s0, 1 +/* 038E54 7F0042E4 0202082A */ slt $at, $s0, $v0 +/* 038E58 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 +/* 038E5C 7F0042EC 00000000 */ nop +.L7F0042F0: +/* 038E60 7F0042F0 3C0B8007 */ lui $t3, %hi(ptr_setup_objects) # $t3, 0x8007 +/* 038E64 7F0042F4 8D6B5D4C */ lw $t3, %lo(ptr_setup_objects)($t3) +/* 038E68 7F0042F8 116002E3 */ beqz $t3, .L7F004E88 +/* 038E6C 7F0042FC 00000000 */ nop +/* 038E70 7F004300 0FC3021E */ jal get_current_difficulty +/* 038E74 7F004304 00000000 */ nop +/* 038E78 7F004308 244C0004 */ addiu $t4, $v0, 4 +/* 038E7C 7F00430C 240D0001 */ li $t5, 1 +/* 038E80 7F004310 0FC26C01 */ jal get_num_players +/* 038E84 7F004314 018DA004 */ sllv $s4, $t5, $t4 +/* 038E88 7F004318 28410002 */ slti $at, $v0, 2 +/* 038E8C 7F00431C 14200007 */ bnez $at, .L7F00433C +/* 038E90 7F004320 00000000 */ nop +/* 038E94 7F004324 0FC26C01 */ jal get_num_players +/* 038E98 7F004328 00000000 */ nop +/* 038E9C 7F00432C 244E0014 */ addiu $t6, $v0, 0x14 +/* 038EA0 7F004330 240F0001 */ li $t7, 1 +/* 038EA4 7F004334 01CFC004 */ sllv $t8, $t7, $t6 +/* 038EA8 7F004338 0298A025 */ or $s4, $s4, $t8 +.L7F00433C: +/* 038EAC 7F00433C 3C128007 */ lui $s2, %hi(ptr_setup_objects) # $s2, 0x8007 +/* 038EB0 7F004340 8E525D4C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 038EB4 7F004344 24010030 */ li $at, 48 +/* 038EB8 7F004348 00009825 */ move $s3, $zero +/* 038EBC 7F00434C 92430003 */ lbu $v1, 3($s2) +/* 038EC0 7F004350 24170034 */ li $s7, 52 +/* 038EC4 7F004354 506101FA */ beql $v1, $at, .L7F004B40 +/* 038EC8 7F004358 92430003 */ lbu $v1, 3($s2) +/* 038ECC 7F00435C 4480A000 */ mtc1 $zero, $f20 +/* 038ED0 7F004360 3416FFFF */ li $s6, 65535 +/* 038ED4 7F004364 2468FFFF */ addiu $t0, $v1, -1 +.L7F004368: +/* 038ED8 7F004368 2D01002F */ sltiu $at, $t0, 0x2f +/* 038EDC 7F00436C 102001E7 */ beqz $at, other_obj_expand +/* 038EE0 7F004370 00084080 */ sll $t0, $t0, 2 +/* 038EE4 7F004374 3C018005 */ lui $at, %hi(jpt_object_type_expansion) +/* 038EE8 7F004378 00280821 */ addu $at, $at, $t0 +/* 038EEC 7F00437C 8C28EF98 */ lw $t0, %lo(jpt_object_type_expansion)($at) +/* 038EF0 7F004380 01000008 */ jr $t0 +/* 038EF4 7F004384 00000000 */ nop +actor_attr_expand: +/* 038EF8 7F004388 9250000B */ lbu $s0, 0xb($s2) +/* 038EFC 7F00438C 0FC08CAC */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 038F00 7F004390 8E440004 */ lw $a0, 4($s2) +/* 038F04 7F004394 104001DD */ beqz $v0, other_obj_expand +/* 038F08 7F004398 00000000 */ nop +/* 038F0C 7F00439C 8C490018 */ lw $t1, 0x18($v0) +/* 038F10 7F0043A0 112001DA */ beqz $t1, other_obj_expand +/* 038F14 7F0043A4 00000000 */ nop +/* 038F18 7F0043A8 8C59001C */ lw $t9, 0x1c($v0) +/* 038F1C 7F0043AC 132001D7 */ beqz $t9, other_obj_expand +/* 038F20 7F0043B0 00000000 */ nop +/* 038F24 7F0043B4 100001D5 */ b other_obj_expand +/* 038F28 7F0043B8 A0500010 */ sb $s0, 0x10($v0) +actor_expand: +/* 038F2C 7F0043BC 8FAA0278 */ lw $t2, 0x278($sp) +/* 038F30 7F0043C0 02A02025 */ move $a0, $s5 +/* 038F34 7F0043C4 02402825 */ move $a1, $s2 +/* 038F38 7F0043C8 114001D0 */ beqz $t2, other_obj_expand +/* 038F3C 7F0043CC 00000000 */ nop +/* 038F40 7F0043D0 0FC08E83 */ jal expand_09_characters +/* 038F44 7F0043D4 02603025 */ move $a2, $s3 +/* 038F48 7F0043D8 100001CC */ b other_obj_expand +/* 038F4C 7F0043DC 00000000 */ nop +door_expand: +/* 038F50 7F0043E0 13C001CA */ beqz $fp, other_obj_expand +/* 038F54 7F0043E4 00000000 */ nop +/* 038F58 7F0043E8 8E4B000C */ lw $t3, 0xc($s2) +/* 038F5C 7F0043EC 02A02025 */ move $a0, $s5 +/* 038F60 7F0043F0 02402825 */ move $a1, $s2 +/* 038F64 7F0043F4 01746824 */ and $t5, $t3, $s4 +/* 038F68 7F0043F8 15A001C4 */ bnez $t5, other_obj_expand +/* 038F6C 7F0043FC 00000000 */ nop +/* 038F70 7F004400 0FC00D20 */ jal sub_GAME_7F003480 +/* 038F74 7F004404 02603025 */ move $a2, $s3 +/* 038F78 7F004408 100001C0 */ b other_obj_expand +/* 038F7C 7F00440C 00000000 */ nop +door_scale_expand: +/* 038F80 7F004410 8E4C0004 */ lw $t4, 4($s2) +/* 038F84 7F004414 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 038F88 7F004418 44815000 */ mtc1 $at, $f10 +/* 038F8C 7F00441C 448C3000 */ mtc1 $t4, $f6 +/* 038F90 7F004420 3C018003 */ lui $at, %hi(scale_1_0_item_related) # $at, 0x8003 +/* 038F94 7F004424 46803220 */ cvt.s.w $f8, $f6 +/* 038F98 7F004428 460A4403 */ div.s $f16, $f8, $f10 +/* 038F9C 7F00442C 100001B7 */ b other_obj_expand +/* 038FA0 7F004430 E430A400 */ swc1 $f16, %lo(scale_1_0_item_related)($at) +item_expand: +/* 038FA4 7F004434 8FAF0278 */ lw $t7, 0x278($sp) +/* 038FA8 7F004438 11E001B4 */ beqz $t7, other_obj_expand +/* 038FAC 7F00443C 00000000 */ nop +/* 038FB0 7F004440 8E4E000C */ lw $t6, 0xc($s2) +/* 038FB4 7F004444 02A02025 */ move $a0, $s5 +/* 038FB8 7F004448 02402825 */ move $a1, $s2 +/* 038FBC 7F00444C 01D4C024 */ and $t8, $t6, $s4 +/* 038FC0 7F004450 170001AE */ bnez $t8, other_obj_expand +/* 038FC4 7F004454 00000000 */ nop +/* 038FC8 7F004458 0FC009CE */ jal expand_08_obj_set_guard_MP_weapons +/* 038FCC 7F00445C 02603025 */ move $a2, $s3 +/* 038FD0 7F004460 100001AA */ b other_obj_expand +/* 038FD4 7F004464 00000000 */ nop +key_expand: +/* 038FD8 7F004468 8FA80278 */ lw $t0, 0x278($sp) +/* 038FDC 7F00446C 110001A7 */ beqz $t0, other_obj_expand +/* 038FE0 7F004470 00000000 */ nop +/* 038FE4 7F004474 8E49000C */ lw $t1, 0xc($s2) +/* 038FE8 7F004478 02A02025 */ move $a0, $s5 +/* 038FEC 7F00447C 02402825 */ move $a1, $s2 +/* 038FF0 7F004480 0134C824 */ and $t9, $t1, $s4 +/* 038FF4 7F004484 172001A1 */ bnez $t9, other_obj_expand +/* 038FF8 7F004488 00000000 */ nop +/* 038FFC 7F00448C 0FC00A87 */ jal jmp_prepare_load_objects +/* 039000 7F004490 02603025 */ move $a2, $s3 +/* 039004 7F004494 1000019D */ b other_obj_expand +/* 039008 7F004498 00000000 */ nop +hat_expand: +/* 03900C 7F00449C 8FAA0278 */ lw $t2, 0x278($sp) +/* 039010 7F0044A0 1140019A */ beqz $t2, other_obj_expand +/* 039014 7F0044A4 00000000 */ nop +/* 039018 7F0044A8 8E4B000C */ lw $t3, 0xc($s2) +/* 03901C 7F0044AC 02A02025 */ move $a0, $s5 +/* 039020 7F0044B0 02402825 */ move $a1, $s2 +/* 039024 7F0044B4 01746824 */ and $t5, $t3, $s4 +/* 039028 7F0044B8 15A00194 */ bnez $t5, other_obj_expand +/* 03902C 7F0044BC 00000000 */ nop +/* 039030 7F0044C0 0FC00A6A */ jal MP_weapon_expansion_routine +/* 039034 7F0044C4 02603025 */ move $a2, $s3 +/* 039038 7F0044C8 10000190 */ b other_obj_expand +/* 03903C 7F0044CC 00000000 */ nop +surv_camera_expand: +/* 039040 7F0044D0 13C0018E */ beqz $fp, other_obj_expand +/* 039044 7F0044D4 00000000 */ nop +/* 039048 7F0044D8 8E4C000C */ lw $t4, 0xc($s2) +/* 03904C 7F0044DC 02A02025 */ move $a0, $s5 +/* 039050 7F0044E0 02402825 */ move $a1, $s2 +/* 039054 7F0044E4 01947824 */ and $t7, $t4, $s4 +/* 039058 7F0044E8 15E00188 */ bnez $t7, other_obj_expand +/* 03905C 7F0044EC 00000000 */ nop +/* 039060 7F0044F0 0FC00A8F */ jal sub_GAME_7F002A3C +/* 039064 7F0044F4 02603025 */ move $a2, $s3 +/* 039068 7F0044F8 10000184 */ b other_obj_expand +/* 03906C 7F0044FC 00000000 */ nop +autogun_expand: +/* 039070 7F004500 13C00182 */ beqz $fp, other_obj_expand +/* 039074 7F004504 00000000 */ nop +/* 039078 7F004508 8E4E000C */ lw $t6, 0xc($s2) +/* 03907C 7F00450C 02A02025 */ move $a0, $s5 +/* 039080 7F004510 02402825 */ move $a1, $s2 +/* 039084 7F004514 01D4C024 */ and $t8, $t6, $s4 +/* 039088 7F004518 1700017C */ bnez $t8, other_obj_expand +/* 03908C 7F00451C 00000000 */ nop +/* 039090 7F004520 0FC00B16 */ jal expand_type_0D_object_autoturret +/* 039094 7F004524 02603025 */ move $a2, $s3 +/* 039098 7F004528 10000178 */ b other_obj_expand +/* 03909C 7F00452C 00000000 */ nop +rack_expand: +/* 0390A0 7F004530 13C00176 */ beqz $fp, other_obj_expand +/* 0390A4 7F004534 00000000 */ nop +/* 0390A8 7F004538 8E48000C */ lw $t0, 0xc($s2) +/* 0390AC 7F00453C 02A02025 */ move $a0, $s5 +/* 0390B0 7F004540 02402825 */ move $a1, $s2 +/* 0390B4 7F004544 01144824 */ and $t1, $t0, $s4 +/* 0390B8 7F004548 15200170 */ bnez $t1, other_obj_expand +/* 0390BC 7F00454C 00000000 */ nop +/* 0390C0 7F004550 0FC00B87 */ jal jmp_prepare_load_objects_0 +/* 0390C4 7F004554 02603025 */ move $a2, $s3 +/* 0390C8 7F004558 1000016C */ b other_obj_expand +/* 0390CC 7F00455C 00000000 */ nop +single_screen_display_expand: +/* 0390D0 7F004560 13C0016A */ beqz $fp, other_obj_expand +/* 0390D4 7F004564 00000000 */ nop +/* 0390D8 7F004568 8E59000C */ lw $t9, 0xc($s2) +/* 0390DC 7F00456C 02A02025 */ move $a0, $s5 +/* 0390E0 7F004570 02402825 */ move $a1, $s2 +/* 0390E4 7F004574 03345024 */ and $t2, $t9, $s4 +/* 0390E8 7F004578 15400164 */ bnez $t2, other_obj_expand +/* 0390EC 7F00457C 00000000 */ nop +/* 0390F0 7F004580 0FC00B8F */ jal sub_GAME_7F002E3C +/* 0390F4 7F004584 02603025 */ move $a2, $s3 +/* 0390F8 7F004588 10000160 */ b other_obj_expand +/* 0390FC 7F00458C 00000000 */ nop +multi_screen_display_expand: +/* 039100 7F004590 13C0015E */ beqz $fp, other_obj_expand +/* 039104 7F004594 00000000 */ nop +/* 039108 7F004598 8E4B000C */ lw $t3, 0xc($s2) +/* 03910C 7F00459C 02A02025 */ move $a0, $s5 +/* 039110 7F0045A0 02402825 */ move $a1, $s2 +/* 039114 7F0045A4 01746824 */ and $t5, $t3, $s4 +/* 039118 7F0045A8 15A00158 */ bnez $t5, other_obj_expand +/* 03911C 7F0045AC 00000000 */ nop +/* 039120 7F0045B0 0FC00C34 */ jal sub_GAME_7F0030D0 +/* 039124 7F0045B4 02603025 */ move $a2, $s3 +/* 039128 7F0045B8 10000154 */ b other_obj_expand +/* 03912C 7F0045BC 00000000 */ nop +body_armor_expand: +/* 039130 7F0045C0 13C00152 */ beqz $fp, other_obj_expand +/* 039134 7F0045C4 00000000 */ nop +/* 039138 7F0045C8 8E4C000C */ lw $t4, 0xc($s2) +/* 03913C 7F0045CC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 039140 7F0045D0 01947824 */ and $t7, $t4, $s4 +/* 039144 7F0045D4 51E00005 */ beql $t7, $zero, .L7F0045EC +/* 039148 7F0045D8 8E580080 */ lw $t8, 0x80($s2) +/* 03914C 7F0045DC 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 039150 7F0045E0 11C0014A */ beqz $t6, other_obj_expand +/* 039154 7F0045E4 00000000 */ nop +/* 039158 7F0045E8 8E580080 */ lw $t8, 0x80($s2) +.L7F0045EC: +/* 03915C 7F0045EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039160 7F0045F0 44813000 */ mtc1 $at, $f6 +/* 039164 7F0045F4 44989000 */ mtc1 $t8, $f18 +/* 039168 7F0045F8 02A02025 */ move $a0, $s5 +/* 03916C 7F0045FC 02402825 */ move $a1, $s2 +/* 039170 7F004600 46809120 */ cvt.s.w $f4, $f18 +/* 039174 7F004604 02603025 */ move $a2, $s3 +/* 039178 7F004608 46062203 */ div.s $f8, $f4, $f6 +/* 03917C 7F00460C E6480080 */ swc1 $f8, 0x80($s2) +/* 039180 7F004610 C64A0080 */ lwc1 $f10, 0x80($s2) +/* 039184 7F004614 0FC00767 */ jal prepare_load_objects +/* 039188 7F004618 E64A0084 */ swc1 $f10, 0x84($s2) +/* 03918C 7F00461C 1000013B */ b other_obj_expand +/* 039190 7F004620 00000000 */ nop +type2F_tinted_glass: +/* 039194 7F004624 13C00139 */ beqz $fp, other_obj_expand +/* 039198 7F004628 00000000 */ nop +/* 03919C 7F00462C 8E48000C */ lw $t0, 0xc($s2) +/* 0391A0 7F004630 01144824 */ and $t1, $t0, $s4 +/* 0391A4 7F004634 15200135 */ bnez $t1, other_obj_expand +/* 0391A8 7F004638 00000000 */ nop +/* 0391AC 7F00463C 8E590008 */ lw $t9, 8($s2) +/* 0391B0 7F004640 001950C0 */ sll $t2, $t9, 3 +/* 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(ptr_2xxxpresets) # $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(ptr_2xxxpresets)($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 +/* 0391E4 7F004674 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0391E8 7F004678 016D8021 */ addu $s0, $t3, $t5 +/* 0391EC 7F00467C 02018021 */ addu $s0, $s0, $at +/* 0391F0 7F004680 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 0391F4 7F004684 02002025 */ move $a0, $s0 +/* 0391F8 7F004688 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0391FC 7F00468C 44810000 */ mtc1 $at, $f0 +/* 039200 7F004690 C610000C */ lwc1 $f16, 0xc($s0) +/* 039204 7F004694 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 039208 7F004698 27A40118 */ addiu $a0, $sp, 0x118 +/* 03920C 7F00469C 46008482 */ mul.s $f18, $f16, $f0 +/* 039210 7F0046A0 C7B0011C */ lwc1 $f16, 0x11c($sp) +/* 039214 7F0046A4 27A5010C */ addiu $a1, $sp, 0x10c +/* 039218 7F0046A8 46049180 */ add.s $f6, $f18, $f4 +/* 03921C 7F0046AC E7A6010C */ swc1 $f6, 0x10c($sp) +/* 039220 7F0046B0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 039224 7F0046B4 46004282 */ mul.s $f10, $f8, $f0 +/* 039228 7F0046B8 46105480 */ add.s $f18, $f10, $f16 +/* 03922C 7F0046BC C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 039230 7F0046C0 E7B20110 */ swc1 $f18, 0x110($sp) +/* 039234 7F0046C4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 039238 7F0046C8 46003202 */ mul.s $f8, $f6, $f0 +/* 03923C 7F0046CC 460A4480 */ add.s $f18, $f8, $f10 +/* 039240 7F0046D0 E7B20114 */ swc1 $f18, 0x114($sp) +/* 039244 7F0046D4 C606000C */ lwc1 $f6, 0xc($s0) +/* 039248 7F0046D8 46060202 */ mul.s $f8, $f0, $f6 +/* 03924C 7F0046DC 46082481 */ sub.s $f18, $f4, $f8 +/* 039250 7F0046E0 E7B20118 */ swc1 $f18, 0x118($sp) +/* 039254 7F0046E4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 039258 7F0046E8 46060102 */ mul.s $f4, $f0, $f6 +/* 03925C 7F0046EC 46048201 */ sub.s $f8, $f16, $f4 +/* 039260 7F0046F0 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 039264 7F0046F4 C6120014 */ lwc1 $f18, 0x14($s0) +/* 039268 7F0046F8 46120182 */ mul.s $f6, $f0, $f18 +/* 03926C 7F0046FC 46065401 */ sub.s $f16, $f10, $f6 +/* 039270 7F004700 0FC2EA6D */ jal sub_GAME_7F0B9E04 +/* 039274 7F004704 E7B00120 */ swc1 $f16, 0x120($sp) +/* 039278 7F004708 8E4C0090 */ lw $t4, 0x90($s2) +/* 03927C 7F00470C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039280 7F004710 44819000 */ mtc1 $at, $f18 +/* 039284 7F004714 448C2000 */ mtc1 $t4, $f4 +/* 039288 7F004718 AE42008C */ sw $v0, 0x8c($s2) +/* 03928C 7F00471C 46802220 */ cvt.s.w $f8, $f4 +/* 039290 7F004720 46124283 */ div.s $f10, $f8, $f18 +/* 039294 7F004724 E64A0090 */ swc1 $f10, 0x90($s2) +.L7F004728: +/* 039298 7F004728 02A02025 */ move $a0, $s5 +.L7F00472C: +/* 03929C 7F00472C 02402825 */ move $a1, $s2 +/* 0392A0 7F004730 0FC00767 */ jal prepare_load_objects +/* 0392A4 7F004734 02603025 */ move $a2, $s3 +/* 0392A8 7F004738 100000F4 */ b other_obj_expand +/* 0392AC 7F00473C 00000000 */ nop +obj_03_expand: +/* 0392B0 7F004740 13C000F2 */ beqz $fp, other_obj_expand +/* 0392B4 7F004744 00000000 */ nop +/* 0392B8 7F004748 8E4F000C */ lw $t7, 0xc($s2) +/* 0392BC 7F00474C 02A02025 */ move $a0, $s5 +/* 0392C0 7F004750 02402825 */ move $a1, $s2 +/* 0392C4 7F004754 01F47024 */ and $t6, $t7, $s4 +/* 0392C8 7F004758 15C000EC */ bnez $t6, other_obj_expand +/* 0392CC 7F00475C 00000000 */ nop +/* 0392D0 7F004760 0FC00767 */ jal prepare_load_objects +/* 0392D4 7F004764 02603025 */ move $a2, $s3 +/* 0392D8 7F004768 100000E8 */ b other_obj_expand +/* 0392DC 7F00476C 00000000 */ nop +ammo_box_expand: +/* 0392E0 7F004770 0FC26C01 */ jal get_num_players +/* 0392E4 7F004774 24100001 */ li $s0, 1 +/* 0392E8 7F004778 28410002 */ slti $at, $v0, 2 +/* 0392EC 7F00477C 1420000E */ bnez $at, .L7F0047B8 +/* 0392F0 7F004780 00000000 */ nop +/* 0392F4 7F004784 0FC31CBD */ jal getPtrMPWeaponSetData +/* 0392F8 7F004788 00000000 */ nop +/* 0392FC 7F00478C 3C188007 */ lui $t8, %hi(lastmpweaponnum) # $t8, 0x8007 +/* 039300 7F004790 8F189580 */ lw $t8, %lo(lastmpweaponnum)($t8) +/* 039304 7F004794 00184080 */ sll $t0, $t8, 2 +/* 039308 7F004798 01184023 */ subu $t0, $t0, $t8 +/* 03930C 7F00479C 000840C0 */ sll $t0, $t0, 3 +/* 039310 7F0047A0 00481821 */ addu $v1, $v0, $t0 +/* 039314 7F0047A4 8C64000C */ lw $a0, 0xc($v1) +/* 039318 7F0047A8 8C700010 */ lw $s0, 0x10($v1) +/* 03931C 7F0047AC 00044880 */ sll $t1, $a0, 2 +/* 039320 7F0047B0 0249C821 */ addu $t9, $s2, $t1 +/* 039324 7F0047B4 A730007E */ sh $s0, 0x7e($t9) +.L7F0047B8: +/* 039328 7F0047B8 1A0000D4 */ blez $s0, other_obj_expand +/* 03932C 7F0047BC 00000000 */ nop +/* 039330 7F0047C0 13C000D2 */ beqz $fp, other_obj_expand +/* 039334 7F0047C4 00000000 */ nop +/* 039338 7F0047C8 8E4A000C */ lw $t2, 0xc($s2) +/* 03933C 7F0047CC 00008825 */ move $s1, $zero +/* 039340 7F0047D0 02408025 */ move $s0, $s2 +/* 039344 7F0047D4 01545824 */ and $t3, $t2, $s4 +/* 039348 7F0047D8 156000CC */ bnez $t3, other_obj_expand +/* 03934C 7F0047DC 00000000 */ nop +.L7F0047E0: +/* 039350 7F0047E0 960D0082 */ lhu $t5, 0x82($s0) +/* 039354 7F0047E4 59A00007 */ blezl $t5, .L7F004804 +/* 039358 7F0047E8 26310004 */ addiu $s1, $s1, 4 +/* 03935C 7F0047EC 96040080 */ lhu $a0, 0x80($s0) +/* 039360 7F0047F0 52C40004 */ beql $s6, $a0, .L7F004804 +/* 039364 7F0047F4 26310004 */ addiu $s1, $s1, 4 +/* 039368 7F0047F8 0FC15C4E */ jal load_model +/* 03936C 7F0047FC 00000000 */ nop +/* 039370 7F004800 26310004 */ addiu $s1, $s1, 4 +.L7F004804: +/* 039374 7F004804 1637FFF6 */ bne $s1, $s7, .L7F0047E0 +/* 039378 7F004808 26100004 */ addiu $s0, $s0, 4 +/* 03937C 7F00480C 02A02025 */ move $a0, $s5 +/* 039380 7F004810 02402825 */ move $a1, $s2 +/* 039384 7F004814 0FC00767 */ jal prepare_load_objects +/* 039388 7F004818 02603025 */ move $a2, $s3 +/* 03938C 7F00481C 100000BB */ b other_obj_expand +/* 039390 7F004820 00000000 */ nop +type2D_tank: +/* 039394 7F004824 13C000B9 */ beqz $fp, other_obj_expand +/* 039398 7F004828 00000000 */ nop +/* 03939C 7F00482C 8E4C000C */ lw $t4, 0xc($s2) +/* 0393A0 7F004830 24040020 */ li $a0, 32 +/* 0393A4 7F004834 01947824 */ and $t7, $t4, $s4 +/* 0393A8 7F004838 15E000B4 */ bnez $t7, other_obj_expand +/* 0393AC 7F00483C 00000000 */ nop +/* 0393B0 7F004840 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 0393B4 7F004844 E7B400E8 */ swc1 $f20, 0xe8($sp) +/* 0393B8 7F004848 02A02025 */ move $a0, $s5 +/* 0393BC 7F00484C 02402825 */ move $a1, $s2 +/* 0393C0 7F004850 0FC00767 */ jal prepare_load_objects +/* 0393C4 7F004854 02603025 */ move $a2, $s3 +/* 0393C8 7F004858 E65400C8 */ swc1 $f20, 0xc8($s2) +/* 0393CC 7F00485C E65400CC */ swc1 $f20, 0xcc($s2) +/* 0393D0 7F004860 C64C0038 */ lwc1 $f12, 0x38($s2) +/* 0393D4 7F004864 0FC16BD4 */ jal atan2f +/* 0393D8 7F004868 C64E0040 */ lwc1 $f14, 0x40($s2) +/* 0393DC 7F00486C 3C018005 */ lui $at, %hi(D_8004F024) # $at, 0x8005 +/* 0393E0 7F004870 C426F054 */ lwc1 $f6, %lo(D_8004F024)($at) +/* 0393E4 7F004874 8E420010 */ lw $v0, 0x10($s2) +/* 0393E8 7F004878 46003401 */ sub.s $f16, $f6, $f0 +/* 0393EC 7F00487C 10400006 */ beqz $v0, .L7F004898 +/* 0393F0 7F004880 E65000DC */ swc1 $f16, 0xdc($s2) +/* 0393F4 7F004884 8C440014 */ lw $a0, 0x14($v0) +/* 0393F8 7F004888 8C450008 */ lw $a1, 8($v0) +/* 0393FC 7F00488C 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 039400 7F004890 8C460010 */ lw $a2, 0x10($v0) +/* 039404 7F004894 E7A000E8 */ swc1 $f0, 0xe8($sp) +.L7F004898: +/* 039408 7F004898 C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 03940C 7F00489C 3C018005 */ lui $at, %hi(D_8004F028) # $at, 0x8005 +/* 039410 7F0048A0 E64200D4 */ swc1 $f2, 0xd4($s2) +/* 039414 7F0048A4 C424F058 */ lwc1 $f4, %lo(D_8004F028)($at) +/* 039418 7F0048A8 46041203 */ div.s $f8, $f2, $f4 +/* 03941C 7F0048AC 10000097 */ b other_obj_expand +/* 039420 7F0048B0 E64800D0 */ swc1 $f8, 0xd0($s2) +type27_wheeled_vehicle: +/* 039424 7F0048B4 13C00095 */ beqz $fp, other_obj_expand +/* 039428 7F0048B8 00000000 */ nop +/* 03942C 7F0048BC 8E4E000C */ lw $t6, 0xc($s2) +/* 039430 7F0048C0 02A02025 */ move $a0, $s5 +/* 039434 7F0048C4 02402825 */ move $a1, $s2 +/* 039438 7F0048C8 01D4C024 */ and $t8, $t6, $s4 +/* 03943C 7F0048CC 1700008F */ bnez $t8, other_obj_expand +/* 039440 7F0048D0 00000000 */ nop +/* 039444 7F0048D4 0FC00767 */ jal prepare_load_objects +/* 039448 7F0048D8 02603025 */ move $a2, $s3 +/* 03944C 7F0048DC 8E440014 */ lw $a0, 0x14($s2) +/* 039450 7F0048E0 5080000E */ beql $a0, $zero, .L7F00491C +/* 039454 7F0048E4 3C01BF80 */ lui $at, 0xbf80 +/* 039458 7F0048E8 8C880008 */ lw $t0, 8($a0) +/* 03945C 7F0048EC 8D090008 */ lw $t1, 8($t0) +/* 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 +/* 039470 7F004900 00000000 */ nop +/* 039474 7F004904 8E590008 */ lw $t9, 8($s2) +/* 039478 7F004908 3C011000 */ li $at, 0x10000000 # 0.000000 +/* 03947C 7F00490C 03215024 */ and $t2, $t9, $at +/* 039480 7F004910 2D4B0001 */ sltiu $t3, $t2, 1 +/* 039484 7F004914 AC4B0000 */ sw $t3, ($v0) +/* 039488 7F004918 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F00491C: +/* 03948C 7F00491C 44819000 */ mtc1 $at, $f18 +/* 039490 7F004920 E6540088 */ swc1 $f20, 0x88($s2) +/* 039494 7F004924 E654008C */ swc1 $f20, 0x8c($s2) +/* 039498 7F004928 E6540090 */ swc1 $f20, 0x90($s2) +/* 03949C 7F00492C E6540094 */ swc1 $f20, 0x94($s2) +/* 0394A0 7F004930 E654009C */ swc1 $f20, 0x9c($s2) +/* 0394A4 7F004934 E65400A0 */ swc1 $f20, 0xa0($s2) +/* 0394A8 7F004938 8E440080 */ lw $a0, 0x80($s2) +/* 0394AC 7F00493C 0FC0D5A6 */ jal LoadNext_PrevActionBlock +/* 0394B0 7F004940 E6520098 */ swc1 $f18, 0x98($s2) +/* 0394B4 7F004944 240DFFFF */ li $t5, -1 +/* 0394B8 7F004948 AE420080 */ sw $v0, 0x80($s2) +/* 0394BC 7F00494C A6400084 */ sh $zero, 0x84($s2) +/* 0394C0 7F004950 A64D0086 */ sh $t5, 0x86($s2) +/* 0394C4 7F004954 AE4000A4 */ sw $zero, 0xa4($s2) +/* 0394C8 7F004958 AE4000A8 */ sw $zero, 0xa8($s2) +/* 0394CC 7F00495C 1000006B */ b other_obj_expand +/* 0394D0 7F004960 AE4000AC */ sw $zero, 0xac($s2) +type28_aircraft: +/* 0394D4 7F004964 13C00069 */ beqz $fp, other_obj_expand +/* 0394D8 7F004968 00000000 */ nop +/* 0394DC 7F00496C 8E4C000C */ lw $t4, 0xc($s2) +/* 0394E0 7F004970 02A02025 */ move $a0, $s5 +/* 0394E4 7F004974 02402825 */ move $a1, $s2 +/* 0394E8 7F004978 01947824 */ and $t7, $t4, $s4 +/* 0394EC 7F00497C 15E00063 */ bnez $t7, other_obj_expand +/* 0394F0 7F004980 00000000 */ nop +/* 0394F4 7F004984 0FC00767 */ jal prepare_load_objects +/* 0394F8 7F004988 02603025 */ move $a2, $s3 +/* 0394FC 7F00498C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 039500 7F004990 44810000 */ mtc1 $at, $f0 +/* 039504 7F004994 E6540098 */ swc1 $f20, 0x98($s2) +/* 039508 7F004998 E654009C */ swc1 $f20, 0x9c($s2) +/* 03950C 7F00499C E6540088 */ swc1 $f20, 0x88($s2) +/* 039510 7F0049A0 E654008C */ swc1 $f20, 0x8c($s2) +/* 039514 7F0049A4 E6540090 */ swc1 $f20, 0x90($s2) +/* 039518 7F0049A8 E65400A4 */ swc1 $f20, 0xa4($s2) +/* 03951C 7F0049AC 8E440080 */ lw $a0, 0x80($s2) +/* 039520 7F0049B0 E64000A0 */ swc1 $f0, 0xa0($s2) +/* 039524 7F0049B4 0FC0D5A6 */ jal LoadNext_PrevActionBlock +/* 039528 7F0049B8 E6400094 */ swc1 $f0, 0x94($s2) +/* 03952C 7F0049BC 240EFFFF */ li $t6, -1 +/* 039530 7F0049C0 AE420080 */ sw $v0, 0x80($s2) +/* 039534 7F0049C4 A6400084 */ sh $zero, 0x84($s2) +/* 039538 7F0049C8 A64E0086 */ sh $t6, 0x86($s2) +/* 03953C 7F0049CC AE4000A8 */ sw $zero, 0xa8($s2) +/* 039540 7F0049D0 AE4000AC */ sw $zero, 0xac($s2) +/* 039544 7F0049D4 1000004D */ b other_obj_expand +/* 039548 7F0049D8 AE4000B0 */ sw $zero, 0xb0($s2) +tag_expand: +/* 03954C 7F0049DC 86580006 */ lh $t8, 6($s2) +/* 039550 7F0049E0 02A02025 */ move $a0, $s5 +/* 039554 7F0049E4 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039558 7F0049E8 03132821 */ addu $a1, $t8, $s3 +/* 03955C 7F0049EC 10400004 */ beqz $v0, .L7F004A00 +/* 039560 7F0049F0 AE42000C */ sw $v0, 0xc($s2) +/* 039564 7F0049F4 8C480064 */ lw $t0, 0x64($v0) +/* 039568 7F0049F8 35090010 */ ori $t1, $t0, 0x10 +/* 03956C 7F0049FC AC490064 */ sw $t1, 0x64($v0) +.L7F004A00: +/* 039570 7F004A00 0FC013E8 */ jal set_parent_cur_tag_entry +/* 039574 7F004A04 02402025 */ move $a0, $s2 +/* 039578 7F004A08 10000040 */ b other_obj_expand +/* 03957C 7F004A0C 00000000 */ nop +type25_rename: +/* 039580 7F004A10 8E590004 */ lw $t9, 4($s2) +/* 039584 7F004A14 02A02025 */ move $a0, $s5 +/* 039588 7F004A18 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03958C 7F004A1C 03332821 */ addu $a1, $t9, $s3 +/* 039590 7F004A20 10400004 */ beqz $v0, .L7F004A34 +/* 039594 7F004A24 AE420024 */ sw $v0, 0x24($s2) +/* 039598 7F004A28 8C4A0064 */ lw $t2, 0x64($v0) +/* 03959C 7F004A2C 354B0400 */ ori $t3, $t2, 0x400 +/* 0395A0 7F004A30 AC4B0064 */ sw $t3, 0x64($v0) +.L7F004A34: +/* 0395A4 7F004A34 0FC238E2 */ jal sub_GAME_7F08D8A0 +/* 0395A8 7F004A38 02402025 */ move $a0, $s2 +/* 0395AC 7F004A3C 10000033 */ b other_obj_expand +/* 0395B0 7F004A40 00000000 */ nop +type23_solo_brief_text: +/* 0395B4 7F004A44 0FC013EE */ jal setup_briefing_text_entry_parent +/* 0395B8 7F004A48 02402025 */ move $a0, $s2 +/* 0395BC 7F004A4C 1000002F */ b other_obj_expand +/* 0395C0 7F004A50 00000000 */ nop +type2E_viewport_pos: +/* 0395C4 7F004A54 8E4D0004 */ lw $t5, 4($s2) +/* 0395C8 7F004A58 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0395CC 7F004A5C 44810000 */ mtc1 $at, $f0 +/* 0395D0 7F004A60 448D5000 */ mtc1 $t5, $f10 +/* 0395D4 7F004A64 8E4F000C */ lw $t7, 0xc($s2) +/* 0395D8 7F004A68 8E4C0008 */ lw $t4, 8($s2) +/* 0395DC 7F004A6C 468051A0 */ cvt.s.w $f6, $f10 +/* 0395E0 7F004A70 448F5000 */ mtc1 $t7, $f10 +/* 0395E4 7F004A74 448C2000 */ mtc1 $t4, $f4 +/* 0395E8 7F004A78 8E4E0010 */ lw $t6, 0x10($s2) +/* 0395EC 7F004A7C 8E580014 */ lw $t8, 0x14($s2) +/* 0395F0 7F004A80 46802220 */ cvt.s.w $f8, $f4 +/* 0395F4 7F004A84 448E2000 */ mtc1 $t6, $f4 +/* 0395F8 7F004A88 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0395FC 7F004A8C 46003403 */ div.s $f16, $f6, $f0 +/* 039600 7F004A90 468051A0 */ cvt.s.w $f6, $f10 +/* 039604 7F004A94 46004483 */ div.s $f18, $f8, $f0 +/* 039608 7F004A98 E6500004 */ swc1 $f16, 4($s2) +/* 03960C 7F004A9C 46802220 */ cvt.s.w $f8, $f4 +/* 039610 7F004AA0 44812000 */ mtc1 $at, $f4 +/* 039614 7F004AA4 46003403 */ div.s $f16, $f6, $f0 +/* 039618 7F004AA8 44983000 */ mtc1 $t8, $f6 +/* 03961C 7F004AAC E6520008 */ swc1 $f18, 8($s2) +/* 039620 7F004AB0 44819000 */ mtc1 $at, $f18 +/* 039624 7F004AB4 00000000 */ nop +/* 039628 7F004AB8 46124283 */ div.s $f10, $f8, $f18 +/* 03962C 7F004ABC E650000C */ swc1 $f16, 0xc($s2) +/* 039630 7F004AC0 46803420 */ cvt.s.w $f16, $f6 +/* 039634 7F004AC4 46048203 */ div.s $f8, $f16, $f4 +/* 039638 7F004AC8 E64A0010 */ swc1 $f10, 0x10($s2) +/* 03963C 7F004ACC 1000000F */ b other_obj_expand +/* 039640 7F004AD0 E6480014 */ swc1 $f8, 0x14($s2) +type17_objective_expand: +/* 039644 7F004AD4 0FC013F4 */ jal add_ptr_to_objective +/* 039648 7F004AD8 02402025 */ move $a0, $s2 +/* 03964C 7F004ADC 1000000B */ b other_obj_expand +/* 039650 7F004AE0 00000000 */ nop +type20_subobjective_expand: +/* 039654 7F004AE4 0FC01403 */ jal set_parent_cur_obj_enter_room +/* 039658 7F004AE8 02402025 */ move $a0, $s2 +/* 03965C 7F004AEC 10000007 */ b other_obj_expand +/* 039660 7F004AF0 00000000 */ nop +type21_subobjective_expand: +/* 039664 7F004AF4 0FC01409 */ jal set_parent_cur_obj_deposited_in_room +/* 039668 7F004AF8 02402025 */ move $a0, $s2 +/* 03966C 7F004AFC 10000003 */ b other_obj_expand +/* 039670 7F004B00 00000000 */ nop +type1E_subobjective_expand: +/* 039674 7F004B04 0FC0140F */ jal set_parent_cur_obj_photograph +/* 039678 7F004B08 02402025 */ move $a0, $s2 +other_obj_expand: +/* 03967C 7F004B0C 0FC15B7D */ jal get_size_of_setup_object_type +/* 039680 7F004B10 02402025 */ move $a0, $s2 +/* 039684 7F004B14 00024080 */ sll $t0, $v0, 2 +/* 039688 7F004B18 01129021 */ addu $s2, $t0, $s2 +/* 03968C 7F004B1C 92430003 */ lbu $v1, 3($s2) +/* 039690 7F004B20 24010030 */ li $at, 48 +/* 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(ptr_setup_objects) # $s2, 0x8007 +/* 0396A4 7F004B34 8E525D4C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 0396A8 7F004B38 00009825 */ move $s3, $zero +/* 0396AC 7F004B3C 92430003 */ lbu $v1, 3($s2) +.L7F004B40: +/* 0396B0 7F004B40 24010030 */ li $at, 48 +/* 0396B4 7F004B44 3C170008 */ lui $s7, 8 +/* 0396B8 7F004B48 106100CF */ beq $v1, $at, .L7F004E88 +/* 0396BC 7F004B4C 24160008 */ li $s6, 8 +/* 0396C0 7F004B50 241E002B */ li $fp, 43 +/* 0396C4 7F004B54 24140001 */ li $s4, 1 +/* 0396C8 7F004B58 2469FFFD */ addiu $t1, $v1, -3 +.L7F004B5C: +/* 0396CC 7F004B5C 2D21002D */ sltiu $at, $t1, 0x2d +/* 0396D0 7F004B60 102000A4 */ beqz $at, .L7F004DF4 +/* 0396D4 7F004B64 00094880 */ sll $t1, $t1, 2 +/* 0396D8 7F004B68 3C018005 */ lui $at, %hi(jpt_8004F02C) +/* 0396DC 7F004B6C 00290821 */ addu $at, $at, $t1 +/* 0396E0 7F004B70 8C29F05C */ lw $t1, %lo(jpt_8004F02C)($at) +/* 0396E4 7F004B74 01200008 */ jr $t1 +/* 0396E8 7F004B78 00000000 */ nop +.L7F004B7C: +/* 0396EC 7F004B7C 8E590010 */ lw $t9, 0x10($s2) +/* 0396F0 7F004B80 1320009C */ beqz $t9, .L7F004DF4 +/* 0396F4 7F004B84 00000000 */ nop +/* 0396F8 7F004B88 8E4A0008 */ lw $t2, 8($s2) +/* 0396FC 7F004B8C 314B8000 */ andi $t3, $t2, 0x8000 +/* 039700 7F004B90 11600098 */ beqz $t3, .L7F004DF4 +/* 039704 7F004B94 00000000 */ nop +/* 039708 7F004B98 86420006 */ lh $v0, 6($s2) +/* 03970C 7F004B9C 02A02025 */ move $a0, $s5 +/* 039710 7F004BA0 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039714 7F004BA4 02622821 */ addu $a1, $s3, $v0 +/* 039718 7F004BA8 10400092 */ beqz $v0, .L7F004DF4 +/* 03971C 7F004BAC 00408025 */ move $s0, $v0 +/* 039720 7F004BB0 8C4D0010 */ lw $t5, 0x10($v0) +/* 039724 7F004BB4 11A0008F */ beqz $t5, .L7F004DF4 +/* 039728 7F004BB8 00000000 */ nop +/* 03972C 7F004BBC 8E4C0064 */ lw $t4, 0x64($s2) +/* 039730 7F004BC0 8E440014 */ lw $a0, 0x14($s2) +/* 039734 7F004BC4 01977825 */ or $t7, $t4, $s7 +/* 039738 7F004BC8 AE4F0064 */ sw $t7, 0x64($s2) +/* 03973C 7F004BCC 0FC1B51A */ jal set_obj_instance_controller_scale +/* 039740 7F004BD0 8C850014 */ lw $a1, 0x14($a0) +/* 039744 7F004BD4 8E440010 */ lw $a0, 0x10($s2) +/* 039748 7F004BD8 0FC0EA29 */ jal sub_GAME_7F03A5A4 +/* 03974C 7F004BDC 8E050010 */ lw $a1, 0x10($s0) +/* 039750 7F004BE0 10000084 */ b .L7F004DF4 +/* 039754 7F004BE4 00000000 */ nop +.L7F004BE8: +/* 039758 7F004BE8 8E4E0004 */ lw $t6, 4($s2) +/* 03975C 7F004BEC 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 039760 7F004BF0 01D32021 */ addu $a0, $t6, $s3 +/* 039764 7F004BF4 8E580008 */ lw $t8, 8($s2) +/* 039768 7F004BF8 00408025 */ move $s0, $v0 +/* 03976C 7F004BFC 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 039770 7F004C00 03132021 */ addu $a0, $t8, $s3 +/* 039774 7F004C04 1200007B */ beqz $s0, .L7F004DF4 +/* 039778 7F004C08 00402825 */ move $a1, $v0 +/* 03977C 7F004C0C 10400079 */ beqz $v0, .L7F004DF4 +/* 039780 7F004C10 00000000 */ nop +/* 039784 7F004C14 92080003 */ lbu $t0, 3($s0) +/* 039788 7F004C18 16C80076 */ bne $s6, $t0, .L7F004DF4 +/* 03978C 7F004C1C 00000000 */ nop +/* 039790 7F004C20 90490003 */ lbu $t1, 3($v0) +/* 039794 7F004C24 16C90073 */ bne $s6, $t1, .L7F004DF4 +/* 039798 7F004C28 00000000 */ nop +/* 03979C 7F004C2C 0FC1489C */ jal link_objects +/* 0397A0 7F004C30 02002025 */ move $a0, $s0 +/* 0397A4 7F004C34 1000006F */ b .L7F004DF4 +/* 0397A8 7F004C38 00000000 */ nop +.L7F004C3C: +/* 0397AC 7F004C3C 8E420004 */ lw $v0, 4($s2) +/* 0397B0 7F004C40 8E510008 */ lw $s1, 8($s2) +/* 0397B4 7F004C44 02A02025 */ move $a0, $s5 +/* 0397B8 7F004C48 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 0397BC 7F004C4C 02622821 */ addu $a1, $s3, $v0 +/* 0397C0 7F004C50 00408025 */ move $s0, $v0 +/* 0397C4 7F004C54 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 0397C8 7F004C58 02712021 */ addu $a0, $s3, $s1 +/* 0397CC 7F004C5C 12000065 */ beqz $s0, .L7F004DF4 +/* 0397D0 7F004C60 00000000 */ nop +/* 0397D4 7F004C64 8E030010 */ lw $v1, 0x10($s0) +/* 0397D8 7F004C68 10600062 */ beqz $v1, .L7F004DF4 +/* 0397DC 7F004C6C 00000000 */ nop +/* 0397E0 7F004C70 10400060 */ beqz $v0, .L7F004DF4 +/* 0397E4 7F004C74 00000000 */ nop +/* 0397E8 7F004C78 90590003 */ lbu $t9, 3($v0) +/* 0397EC 7F004C7C 1699005D */ bne $s4, $t9, .L7F004DF4 +/* 0397F0 7F004C80 00000000 */ nop +/* 0397F4 7F004C84 8C4A0010 */ lw $t2, 0x10($v0) +/* 0397F8 7F004C88 1140005A */ beqz $t2, .L7F004DF4 +/* 0397FC 7F004C8C 00000000 */ nop +/* 039800 7F004C90 AE430004 */ sw $v1, 4($s2) +/* 039804 7F004C94 8C4B0010 */ lw $t3, 0x10($v0) +/* 039808 7F004C98 02402025 */ move $a0, $s2 +/* 03980C 7F004C9C 0FC00644 */ jal sub_GAME_7F001910 +/* 039810 7F004CA0 AE4B0008 */ sw $t3, 8($s2) +/* 039814 7F004CA4 8E0D0064 */ lw $t5, 0x64($s0) +/* 039818 7F004CA8 35AC0001 */ ori $t4, $t5, 1 +/* 03981C 7F004CAC 10000051 */ b .L7F004DF4 +/* 039820 7F004CB0 AE0C0064 */ sw $t4, 0x64($s0) +.L7F004CB4: +/* 039824 7F004CB4 8E420004 */ lw $v0, 4($s2) +/* 039828 7F004CB8 8E4F000C */ lw $t7, 0xc($s2) +/* 03982C 7F004CBC 8E510008 */ lw $s1, 8($s2) +/* 039830 7F004CC0 02A02025 */ move $a0, $s5 +/* 039834 7F004CC4 02622821 */ addu $a1, $s3, $v0 +/* 039838 7F004CC8 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03983C 7F004CCC AFAF0080 */ sw $t7, 0x80($sp) +/* 039840 7F004CD0 00408025 */ move $s0, $v0 +/* 039844 7F004CD4 02A02025 */ move $a0, $s5 +/* 039848 7F004CD8 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03984C 7F004CDC 02712821 */ addu $a1, $s3, $s1 +/* 039850 7F004CE0 8FAE0080 */ lw $t6, 0x80($sp) +/* 039854 7F004CE4 00408825 */ move $s1, $v0 +/* 039858 7F004CE8 02A02025 */ move $a0, $s5 +/* 03985C 7F004CEC 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039860 7F004CF0 026E2821 */ addu $a1, $s3, $t6 +/* 039864 7F004CF4 1200003F */ beqz $s0, .L7F004DF4 +/* 039868 7F004CF8 00000000 */ nop +/* 03986C 7F004CFC 8E180010 */ lw $t8, 0x10($s0) +/* 039870 7F004D00 1300003C */ beqz $t8, .L7F004DF4 +/* 039874 7F004D04 00000000 */ nop +/* 039878 7F004D08 1220003A */ beqz $s1, .L7F004DF4 +/* 03987C 7F004D0C 00000000 */ nop +/* 039880 7F004D10 8E280010 */ lw $t0, 0x10($s1) +/* 039884 7F004D14 11000037 */ beqz $t0, .L7F004DF4 +/* 039888 7F004D18 00000000 */ nop +/* 03988C 7F004D1C 92290003 */ lbu $t1, 3($s1) +/* 039890 7F004D20 17C90034 */ bne $fp, $t1, .L7F004DF4 +/* 039894 7F004D24 00000000 */ nop +/* 039898 7F004D28 10400032 */ beqz $v0, .L7F004DF4 +/* 03989C 7F004D2C 00000000 */ nop +/* 0398A0 7F004D30 8C590010 */ lw $t9, 0x10($v0) +/* 0398A4 7F004D34 1320002F */ beqz $t9, .L7F004DF4 +/* 0398A8 7F004D38 00000000 */ nop +/* 0398AC 7F004D3C 904A0003 */ lbu $t2, 3($v0) +/* 0398B0 7F004D40 02402025 */ move $a0, $s2 +/* 0398B4 7F004D44 168A002B */ bne $s4, $t2, .L7F004DF4 +/* 0398B8 7F004D48 00000000 */ nop +/* 0398BC 7F004D4C AE500004 */ sw $s0, 4($s2) +/* 0398C0 7F004D50 AE510008 */ sw $s1, 8($s2) +/* 0398C4 7F004D54 AE42000C */ sw $v0, 0xc($s2) +/* 0398C8 7F004D58 0FC00650 */ jal sub_GAME_7F001940 +/* 0398CC 7F004D5C AFA20074 */ sw $v0, 0x74($sp) +/* 0398D0 7F004D60 8E0B000C */ lw $t3, 0xc($s0) +/* 0398D4 7F004D64 8FA30074 */ lw $v1, 0x74($sp) +/* 0398D8 7F004D68 356D0400 */ ori $t5, $t3, 0x400 +/* 0398DC 7F004D6C AE0D000C */ sw $t5, 0xc($s0) +/* 0398E0 7F004D70 8C6C000C */ lw $t4, 0xc($v1) +/* 0398E4 7F004D74 358F0400 */ ori $t7, $t4, 0x400 +/* 0398E8 7F004D78 1000001E */ b .L7F004DF4 +/* 0398EC 7F004D7C AC6F000C */ sw $t7, 0xc($v1) +.L7F004D80: +/* 0398F0 7F004D80 8E420004 */ lw $v0, 4($s2) +/* 0398F4 7F004D84 8E510008 */ lw $s1, 8($s2) +/* 0398F8 7F004D88 02A02025 */ move $a0, $s5 +/* 0398FC 7F004D8C 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039900 7F004D90 02622821 */ addu $a1, $s3, $v0 +/* 039904 7F004D94 00408025 */ move $s0, $v0 +/* 039908 7F004D98 02A02025 */ move $a0, $s5 +/* 03990C 7F004D9C 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039910 7F004DA0 02712821 */ addu $a1, $s3, $s1 +/* 039914 7F004DA4 12000013 */ beqz $s0, .L7F004DF4 +/* 039918 7F004DA8 00000000 */ nop +/* 03991C 7F004DAC 8E0E0010 */ lw $t6, 0x10($s0) +/* 039920 7F004DB0 11C00010 */ beqz $t6, .L7F004DF4 +/* 039924 7F004DB4 00000000 */ nop +/* 039928 7F004DB8 1040000E */ beqz $v0, .L7F004DF4 +/* 03992C 7F004DBC 00000000 */ nop +/* 039930 7F004DC0 8C580010 */ lw $t8, 0x10($v0) +/* 039934 7F004DC4 1300000B */ beqz $t8, .L7F004DF4 +/* 039938 7F004DC8 00000000 */ nop +/* 03993C 7F004DCC 92080003 */ lbu $t0, 3($s0) +/* 039940 7F004DD0 02402025 */ move $a0, $s2 +/* 039944 7F004DD4 16880007 */ bne $s4, $t0, .L7F004DF4 +/* 039948 7F004DD8 00000000 */ nop +/* 03994C 7F004DDC AE500004 */ sw $s0, 4($s2) +/* 039950 7F004DE0 0FC0064A */ jal sub_GAME_7F001928 +/* 039954 7F004DE4 AE420008 */ sw $v0, 8($s2) +/* 039958 7F004DE8 8E090064 */ lw $t1, 0x64($s0) +/* 03995C 7F004DEC 35392000 */ ori $t9, $t1, 0x2000 +/* 039960 7F004DF0 AE190064 */ sw $t9, 0x64($s0) +.L7F004DF4: +/* 039964 7F004DF4 0FC15B7D */ jal get_size_of_setup_object_type +/* 039968 7F004DF8 02402025 */ move $a0, $s2 +/* 03996C 7F004DFC 00025080 */ sll $t2, $v0, 2 +/* 039970 7F004E00 01529021 */ addu $s2, $t2, $s2 +/* 039974 7F004E04 92430003 */ lbu $v1, 3($s2) +/* 039978 7F004E08 24010030 */ li $at, 48 +/* 03997C 7F004E0C 26730001 */ addiu $s3, $s3, 1 +/* 039980 7F004E10 5461FF52 */ bnel $v1, $at, .L7F004B5C +/* 039984 7F004E14 2469FFFD */ addiu $t1, $v1, -3 +/* 039988 7F004E18 1000001B */ b .L7F004E88 +/* 03998C 7F004E1C 00000000 */ nop +.L7F004E20: +/* 039990 7F004E20 3C018007 */ lui $at, %hi(ptr_setup_path_tbl) # $at, 0x8007 +/* 039994 7F004E24 AC205D40 */ sw $zero, %lo(ptr_setup_path_tbl)($at) +/* 039998 7F004E28 3C018007 */ lui $at, %hi(ptr_setup_path_link) # $at, 0x8007 +/* 03999C 7F004E2C AC205D44 */ sw $zero, %lo(ptr_setup_path_link)($at) +/* 0399A0 7F004E30 3C018007 */ lui $at, %hi(ptr_setup_intro) # $at, 0x8007 +/* 0399A4 7F004E34 AC205D48 */ sw $zero, %lo(ptr_setup_intro)($at) +/* 0399A8 7F004E38 3C018007 */ lui $at, %hi(ptr_setup_objects) # $at, 0x8007 +/* 0399AC 7F004E3C AC205D4C */ sw $zero, %lo(ptr_setup_objects)($at) +/* 0399B0 7F004E40 3C018007 */ lui $at, %hi(ptr_setup_path_sets) # $at, 0x8007 +/* 0399B4 7F004E44 AC205D50 */ sw $zero, %lo(ptr_setup_path_sets)($at) +/* 0399B8 7F004E48 3C018007 */ lui $at, %hi(ptr_setup_actions) # $at, 0x8007 +/* 0399BC 7F004E4C AC205D54 */ sw $zero, %lo(ptr_setup_actions)($at) +/* 0399C0 7F004E50 3C018007 */ lui $at, %hi(ptr_0xxxpresets) # $at, 0x8007 +/* 0399C4 7F004E54 AC205D58 */ sw $zero, %lo(ptr_0xxxpresets)($at) +/* 0399C8 7F004E58 3C018007 */ lui $at, %hi(ptr_2xxxpresets) # $at, 0x8007 +/* 0399CC 7F004E5C AC205D5C */ sw $zero, %lo(ptr_2xxxpresets)($at) +/* 0399D0 7F004E60 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D20) # $at, 0x8007 +/* 0399D4 7F004E64 AC205D60 */ sw $zero, %lo(dword_CODE_bss_80075D20)($at) +/* 0399D8 7F004E68 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D24) # $at, 0x8007 +/* 0399DC 7F004E6C AC205D64 */ sw $zero, %lo(dword_CODE_bss_80075D24)($at) +/* 0399E0 7F004E70 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 0399E4 7F004E74 00002025 */ move $a0, $zero +/* 0399E8 7F004E78 0FC01558 */ jal sub_GAME_7F005540 +/* 0399EC 7F004E7C 00002025 */ move $a0, $zero +/* 0399F0 7F004E80 0FC01591 */ jal sub_GAME_7F005624 +/* 0399F4 7F004E84 00002025 */ move $a0, $zero +.L7F004E88: +/* 0399F8 7F004E88 0FC00417 */ jal alloc_false_GUARDdata_to_exec_global_action +/* 0399FC 7F004E8C 00000000 */ nop +/* 039A00 7F004E90 8FBF0044 */ lw $ra, 0x44($sp) +/* 039A04 7F004E94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 039A08 7F004E98 8FB00020 */ lw $s0, 0x20($sp) +/* 039A0C 7F004E9C 8FB10024 */ lw $s1, 0x24($sp) +/* 039A10 7F004EA0 8FB20028 */ lw $s2, 0x28($sp) +/* 039A14 7F004EA4 8FB3002C */ lw $s3, 0x2c($sp) +/* 039A18 7F004EA8 8FB40030 */ lw $s4, 0x30($sp) +/* 039A1C 7F004EAC 8FB50034 */ lw $s5, 0x34($sp) +/* 039A20 7F004EB0 8FB60038 */ lw $s6, 0x38($sp) +/* 039A24 7F004EB4 8FB7003C */ lw $s7, 0x3c($sp) +/* 039A28 7F004EB8 8FBE0040 */ lw $fp, 0x40($sp) +/* 039A2C 7F004EBC 03E00008 */ jr $ra +/* 039A30 7F004EC0 27BD0280 */ addiu $sp, $sp, 0x280 + ) +#endif + + +#endif + + diff --git a/src/game/prop.h b/src/game/prop.h new file mode 100644 index 0000000..9e396fd --- /dev/null +++ b/src/game/prop.h @@ -0,0 +1,7 @@ +#ifndef _PROP_H_ +#define _PROP_H_ +#include "ultra64.h" + +extern u32 only_read_by_stageload[] + +#endif diff --git a/src/game/radar.c b/src/game/radar.c new file mode 100644 index 0000000..6f7b6e9 --- /dev/null +++ b/src/game/radar.c @@ -0,0 +1,380 @@ +#include "ultra64.h" + + +// rodata + + +#ifdef NONMATCHING +void display_red_blue_on_radar(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005BD20 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005BD24 +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel display_red_blue_on_radar +/* 0FABC0 7F0C6090 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0FABC4 7F0C6094 AFBF006C */ sw $ra, 0x6c($sp) +/* 0FABC8 7F0C6098 AFB70068 */ sw $s7, 0x68($sp) +/* 0FABCC 7F0C609C AFB60064 */ sw $s6, 0x64($sp) +/* 0FABD0 7F0C60A0 AFB50060 */ sw $s5, 0x60($sp) +/* 0FABD4 7F0C60A4 AFB4005C */ sw $s4, 0x5c($sp) +/* 0FABD8 7F0C60A8 AFB30058 */ sw $s3, 0x58($sp) +/* 0FABDC 7F0C60AC AFB20054 */ sw $s2, 0x54($sp) +/* 0FABE0 7F0C60B0 AFB10050 */ sw $s1, 0x50($sp) +/* 0FABE4 7F0C60B4 AFB0004C */ sw $s0, 0x4c($sp) +/* 0FABE8 7F0C60B8 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0FABEC 7F0C60BC F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0FABF0 7F0C60C0 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0FABF4 7F0C60C4 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0FABF8 7F0C60C8 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0FABFC 7F0C60CC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0FAC00 7F0C60D0 0FC051D6 */ jal get_scenario +/* 0FAC04 7F0C60D4 AFA40088 */ sw $a0, 0x88($sp) +/* 0FAC08 7F0C60D8 0FC26C54 */ jal get_cur_playernum +/* 0FAC0C 7F0C60DC 0040A025 */ move $s4, $v0 +/* 0FAC10 7F0C60E0 0FC26919 */ jal get_num_players +/* 0FAC14 7F0C60E4 AFA20070 */ sw $v0, 0x70($sp) +/* 0FAC18 7F0C60E8 24010001 */ li $at, 1 +/* 0FAC1C 7F0C60EC 14410003 */ bne $v0, $at, .L7F0C60FC +/* 0FAC20 7F0C60F0 AFA20074 */ sw $v0, 0x74($sp) +/* 0FAC24 7F0C60F4 10000124 */ b .L7F0C6588 +/* 0FAC28 7F0C60F8 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C60FC: +/* 0FAC2C 7F0C60FC 3C178008 */ lui $s7, %hi(pPlayer) +/* 0FAC30 7F0C6100 26F7A0B0 */ addiu $s7, %lo(pPlayer) # addiu $s7, $s7, -0x5f50 +/* 0FAC34 7F0C6104 8EE20000 */ lw $v0, ($s7) +/* 0FAC38 7F0C6108 8C4E29C4 */ lw $t6, 0x29c4($v0) +/* 0FAC3C 7F0C610C 15C00004 */ bnez $t6, .L7F0C6120 +/* 0FAC40 7F0C6110 00000000 */ nop +/* 0FAC44 7F0C6114 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0FAC48 7F0C6118 11E00003 */ beqz $t7, .L7F0C6128 +/* 0FAC4C 7F0C611C 00000000 */ nop +.L7F0C6120: +/* 0FAC50 7F0C6120 10000119 */ b .L7F0C6588 +/* 0FAC54 7F0C6124 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C6128: +/* 0FAC58 7F0C6128 0FC249EF */ jal cheatCheckIfOn +/* 0FAC5C 7F0C612C 24040017 */ li $a0, 23 +/* 0FAC60 7F0C6130 10400003 */ beqz $v0, .L7F0C6140 +/* 0FAC64 7F0C6134 00000000 */ nop +/* 0FAC68 7F0C6138 10000113 */ b .L7F0C6588 +/* 0FAC6C 7F0C613C 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C6140: +/* 0FAC70 7F0C6140 0C001145 */ jal get_video2_settings_ulx +/* 0FAC74 7F0C6144 00000000 */ nop +/* 0FAC78 7F0C6148 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC7C 7F0C614C 0010C403 */ sra $t8, $s0, 0x10 +/* 0FAC80 7F0C6150 0C001127 */ jal get_video2_settings_width +/* 0FAC84 7F0C6154 03008025 */ move $s0, $t8 +/* 0FAC88 7F0C6158 0050A821 */ addu $s5, $v0, $s0 +/* 0FAC8C 7F0C615C 0C001149 */ jal get_video2_settings_uly +/* 0FAC90 7F0C6160 26B5FFD7 */ addiu $s5, $s5, -0x29 +/* 0FAC94 7F0C6164 8FB90074 */ lw $t9, 0x74($sp) +/* 0FAC98 7F0C6168 2456001A */ addiu $s6, $v0, 0x1a +/* 0FAC9C 7F0C616C 27A40088 */ addiu $a0, $sp, 0x88 +/* 0FACA0 7F0C6170 2B210003 */ slti $at, $t9, 3 +/* 0FACA4 7F0C6174 14200006 */ bnez $at, .L7F0C6190 +/* 0FACA8 7F0C6178 3C058009 */ lui $a1, %hi(mpradarimages) +/* 0FACAC 7F0C617C 8FA90070 */ lw $t1, 0x70($sp) +/* 0FACB0 7F0C6180 312A0001 */ andi $t2, $t1, 1 +/* 0FACB4 7F0C6184 55400003 */ bnezl $t2, .L7F0C6194 +/* 0FACB8 7F0C6188 240B0002 */ li $t3, 2 +/* 0FACBC 7F0C618C 26B5000F */ addiu $s5, $s5, 0xf +.L7F0C6190: +/* 0FACC0 7F0C6190 240B0002 */ li $t3, 2 +.L7F0C6194: +/* 0FACC4 7F0C6194 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FACC8 7F0C6198 8CA5D12C */ lw $a1, %lo(mpradarimages)($a1) +/* 0FACCC 7F0C619C 24060002 */ li $a2, 2 +/* 0FACD0 7F0C61A0 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0FACD4 7F0C61A4 00003825 */ move $a3, $zero +/* 0FACD8 7F0C61A8 0FC2B366 */ jal microcode_constructor +/* 0FACDC 7F0C61AC 8FA40088 */ lw $a0, 0x88($sp) +/* 0FACE0 7F0C61B0 244C0008 */ addiu $t4, $v0, 8 +/* 0FACE4 7F0C61B4 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FACE8 7F0C61B8 3C0DFCFF */ lui $t5, (0xFCFFB3FF >> 16) # lui $t5, 0xfcff +/* 0FACEC 7F0C61BC 3C0EFF65 */ lui $t6, (0xFF65FEFF >> 16) # lui $t6, 0xff65 +/* 0FACF0 7F0C61C0 35CEFEFF */ ori $t6, (0xFF65FEFF & 0xFFFF) # ori $t6, $t6, 0xfeff +/* 0FACF4 7F0C61C4 35ADB3FF */ ori $t5, (0xFCFFB3FF & 0xFFFF) # ori $t5, $t5, 0xb3ff +/* 0FACF8 7F0C61C8 AC4D0000 */ sw $t5, ($v0) +/* 0FACFC 7F0C61CC AC4E0004 */ sw $t6, 4($v0) +/* 0FAD00 7F0C61D0 8FAF0088 */ lw $t7, 0x88($sp) +/* 0FAD04 7F0C61D4 3C19FA00 */ lui $t9, 0xfa00 +/* 0FAD08 7F0C61D8 240900A0 */ li $t1, 160 +/* 0FAD0C 7F0C61DC 25F80008 */ addiu $t8, $t7, 8 +/* 0FAD10 7F0C61E0 AFB80088 */ sw $t8, 0x88($sp) +/* 0FAD14 7F0C61E4 26AC0010 */ addiu $t4, $s5, 0x10 +/* 0FAD18 7F0C61E8 ADE90004 */ sw $t1, 4($t7) +/* 0FAD1C 7F0C61EC ADF90000 */ sw $t9, ($t7) +/* 0FAD20 7F0C61F0 8FA40088 */ lw $a0, 0x88($sp) +/* 0FAD24 7F0C61F4 000C6880 */ sll $t5, $t4, 2 +/* 0FAD28 7F0C61F8 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0FAD2C 7F0C61FC 26D90010 */ addiu $t9, $s6, 0x10 +/* 0FAD30 7F0C6200 00194880 */ sll $t1, $t9, 2 +/* 0FAD34 7F0C6204 000E7B00 */ sll $t7, $t6, 0xc +/* 0FAD38 7F0C6208 3C01E400 */ lui $at, 0xe400 +/* 0FAD3C 7F0C620C 01E1C025 */ or $t8, $t7, $at +/* 0FAD40 7F0C6210 312A0FFF */ andi $t2, $t1, 0xfff +/* 0FAD44 7F0C6214 26ACFFF0 */ addiu $t4, $s5, -0x10 +/* 0FAD48 7F0C6218 248B0008 */ addiu $t3, $a0, 8 +/* 0FAD4C 7F0C621C AFAB0088 */ sw $t3, 0x88($sp) +/* 0FAD50 7F0C6220 000C6880 */ sll $t5, $t4, 2 +/* 0FAD54 7F0C6224 26D9FFF0 */ addiu $t9, $s6, -0x10 +/* 0FAD58 7F0C6228 00194880 */ sll $t1, $t9, 2 +/* 0FAD5C 7F0C622C 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0FAD60 7F0C6230 030A5825 */ or $t3, $t8, $t2 +/* 0FAD64 7F0C6234 31380FFF */ andi $t8, $t1, 0xfff +/* 0FAD68 7F0C6238 000E7B00 */ sll $t7, $t6, 0xc +/* 0FAD6C 7F0C623C 01F85025 */ or $t2, $t7, $t8 +/* 0FAD70 7F0C6240 AC8A0004 */ sw $t2, 4($a0) +/* 0FAD74 7F0C6244 AC8B0000 */ sw $t3, ($a0) +/* 0FAD78 7F0C6248 8FAB0088 */ lw $t3, 0x88($sp) +/* 0FAD7C 7F0C624C 3C0E0010 */ lui $t6, (0x00100010 >> 16) # lui $t6, 0x10 +/* 0FAD80 7F0C6250 35CE0010 */ ori $t6, (0x00100010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 0FAD84 7F0C6254 256C0008 */ addiu $t4, $t3, 8 +/* 0FAD88 7F0C6258 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FAD8C 7F0C625C 3C0DB400 */ lui $t5, 0xb400 +/* 0FAD90 7F0C6260 AD6D0000 */ sw $t5, ($t3) +/* 0FAD94 7F0C6264 AD6E0004 */ sw $t6, 4($t3) +/* 0FAD98 7F0C6268 8FB90088 */ lw $t9, 0x88($sp) +/* 0FAD9C 7F0C626C 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0FADA0 7F0C6270 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0FADA4 7F0C6274 27290008 */ addiu $t1, $t9, 8 +/* 0FADA8 7F0C6278 AFA90088 */ sw $t1, 0x88($sp) +/* 0FADAC 7F0C627C 3C0FB300 */ lui $t7, 0xb300 +/* 0FADB0 7F0C6280 AF2F0000 */ sw $t7, ($t9) +/* 0FADB4 7F0C6284 AF380004 */ sw $t8, 4($t9) +/* 0FADB8 7F0C6288 240B0040 */ li $t3, 64 +/* 0FADBC 7F0C628C 26CA0002 */ addiu $t2, $s6, 2 +/* 0FADC0 7F0C6290 AFAA0010 */ sw $t2, 0x10($sp) +/* 0FADC4 7F0C6294 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FADC8 7F0C6298 8FA40088 */ lw $a0, 0x88($sp) +/* 0FADCC 7F0C629C 26A5FFFE */ addiu $a1, $s5, -2 +/* 0FADD0 7F0C62A0 26C6FFFE */ addiu $a2, $s6, -2 +/* 0FADD4 7F0C62A4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FADD8 7F0C62A8 26A70002 */ addiu $a3, $s5, 2 +/* 0FADDC 7F0C62AC 24010005 */ li $at, 5 +/* 0FADE0 7F0C62B0 1281000A */ beq $s4, $at, .L7F0C62DC +/* 0FADE4 7F0C62B4 AFA20088 */ sw $v0, 0x88($sp) +/* 0FADE8 7F0C62B8 24010006 */ li $at, 6 +/* 0FADEC 7F0C62BC 12810007 */ beq $s4, $at, .L7F0C62DC +/* 0FADF0 7F0C62C0 24010007 */ li $at, 7 +/* 0FADF4 7F0C62C4 12810005 */ beq $s4, $at, .L7F0C62DC +/* 0FADF8 7F0C62C8 24010002 */ li $at, 2 +/* 0FADFC 7F0C62CC 12810003 */ beq $s4, $at, .L7F0C62DC +/* 0FAE00 7F0C62D0 24010003 */ li $at, 3 +/* 0FAE04 7F0C62D4 16810018 */ bne $s4, $at, .L7F0C6338 +/* 0FAE08 7F0C62D8 8FA40088 */ lw $a0, 0x88($sp) +.L7F0C62DC: +/* 0FAE0C 7F0C62DC 8FAC0070 */ lw $t4, 0x70($sp) +/* 0FAE10 7F0C62E0 3C0E8008 */ lui $t6, %hi(player1_player_data+0x69) +/* 0FAE14 7F0C62E4 8FA40088 */ lw $a0, 0x88($sp) +/* 0FAE18 7F0C62E8 000C68C0 */ sll $t5, $t4, 3 +/* 0FAE1C 7F0C62EC 01AC6823 */ subu $t5, $t5, $t4 +/* 0FAE20 7F0C62F0 000D6900 */ sll $t5, $t5, 4 +/* 0FAE24 7F0C62F4 01CD7021 */ addu $t6, $t6, $t5 +/* 0FAE28 7F0C62F8 91CE9F59 */ lbu $t6, %lo(player1_player_data+0x69)($t6) +/* 0FAE2C 7F0C62FC 26A5FFFF */ addiu $a1, $s5, -1 +/* 0FAE30 7F0C6300 26C6FFFF */ addiu $a2, $s6, -1 +/* 0FAE34 7F0C6304 15C00004 */ bnez $t6, .L7F0C6318 +/* 0FAE38 7F0C6308 26A70001 */ addiu $a3, $s5, 1 +/* 0FAE3C 7F0C630C 3C02FF77 */ lui $v0, (0xFF7777FF >> 16) # lui $v0, 0xff77 +/* 0FAE40 7F0C6310 10000003 */ b .L7F0C6320 +/* 0FAE44 7F0C6314 344277FF */ ori $v0, (0xFF7777FF & 0xFFFF) # ori $v0, $v0, 0x77ff +.L7F0C6318: +/* 0FAE48 7F0C6318 3C028888 */ lui $v0, (0x8888FFFF >> 16) # lui $v0, 0x8888 +/* 0FAE4C 7F0C631C 3442FFFF */ ori $v0, (0x8888FFFF & 0xFFFF) # ori $v0, $v0, 0xffff +.L7F0C6320: +/* 0FAE50 7F0C6320 26D90001 */ addiu $t9, $s6, 1 +/* 0FAE54 7F0C6324 AFB90010 */ sw $t9, 0x10($sp) +/* 0FAE58 7F0C6328 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FAE5C 7F0C632C AFA20014 */ sw $v0, 0x14($sp) +/* 0FAE60 7F0C6330 1000000A */ b .L7F0C635C +/* 0FAE64 7F0C6334 AFA20088 */ sw $v0, 0x88($sp) +.L7F0C6338: +/* 0FAE68 7F0C6338 26C90001 */ addiu $t1, $s6, 1 +/* 0FAE6C 7F0C633C 240FFFA0 */ li $t7, -96 +/* 0FAE70 7F0C6340 AFAF0014 */ sw $t7, 0x14($sp) +/* 0FAE74 7F0C6344 AFA90010 */ sw $t1, 0x10($sp) +/* 0FAE78 7F0C6348 26A5FFFF */ addiu $a1, $s5, -1 +/* 0FAE7C 7F0C634C 26C6FFFF */ addiu $a2, $s6, -1 +/* 0FAE80 7F0C6350 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FAE84 7F0C6354 26A70001 */ addiu $a3, $s5, 1 +/* 0FAE88 7F0C6358 AFA20088 */ sw $v0, 0x88($sp) +.L7F0C635C: +/* 0FAE8C 7F0C635C 8FB80074 */ lw $t8, 0x74($sp) +/* 0FAE90 7F0C6360 00009825 */ move $s3, $zero +/* 0FAE94 7F0C6364 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0FAE98 7F0C6368 1B000085 */ blez $t8, .L7F0C6580 +/* 0FAE9C 7F0C636C 00000000 */ nop +/* 0FAEA0 7F0C6370 4481F000 */ mtc1 $at, $f30 +/* 0FAEA4 7F0C6374 00000000 */ nop +/* 0FAEA8 7F0C6378 8FAA0070 */ lw $t2, 0x70($sp) +.L7F0C637C: +/* 0FAEAC 7F0C637C 00135880 */ sll $t3, $s3, 2 +/* 0FAEB0 7F0C6380 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0FAEB4 7F0C6384 126A007A */ beq $s3, $t2, .L7F0C6570 +/* 0FAEB8 7F0C6388 008B2021 */ addu $a0, $a0, $t3 +/* 0FAEBC 7F0C638C 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 0FAEC0 7F0C6390 8C8C00D8 */ lw $t4, 0xd8($a0) +/* 0FAEC4 7F0C6394 55800077 */ bnezl $t4, .L7F0C6574 +/* 0FAEC8 7F0C6398 8FB80074 */ lw $t8, 0x74($sp) +/* 0FAECC 7F0C639C 8EED0000 */ lw $t5, ($s7) +/* 0FAED0 7F0C63A0 8C8200A8 */ lw $v0, 0xa8($a0) +/* 0FAED4 7F0C63A4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0FAED8 7F0C63A8 8DA300A8 */ lw $v1, 0xa8($t5) +/* 0FAEDC 7F0C63AC C45C0008 */ lwc1 $f28, 8($v0) +/* 0FAEE0 7F0C63B0 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0FAEE4 7F0C63B4 C4700008 */ lwc1 $f16, 8($v1) +/* 0FAEE8 7F0C63B8 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0FAEEC 7F0C63BC 44814000 */ mtc1 $at, $f8 +/* 0FAEF0 7F0C63C0 4610E501 */ sub.s $f20, $f28, $f16 +/* 0FAEF4 7F0C63C4 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 0FAEF8 7F0C63C8 44818000 */ mtc1 $at, $f16 +/* 0FAEFC 7F0C63CC 460A9581 */ sub.s $f22, $f18, $f10 +/* 0FAF00 7F0C63D0 240E0010 */ li $t6, 16 +/* 0FAF04 7F0C63D4 448E5000 */ mtc1 $t6, $f10 +/* 0FAF08 7F0C63D8 46104683 */ div.s $f26, $f8, $f16 +/* 0FAF0C 7F0C63DC 4600A306 */ mov.s $f12, $f20 +/* 0FAF10 7F0C63E0 4600B386 */ mov.s $f14, $f22 +/* 0FAF14 7F0C63E4 0FC16A8C */ jal atan2f +/* 0FAF18 7F0C63E8 46805620 */ cvt.s.w $f24, $f10 +/* 0FAF1C 7F0C63EC 461E0182 */ mul.s $f6, $f0, $f30 +/* 0FAF20 7F0C63F0 3C018006 */ lui $at, %hi(D_8005BD20) +/* 0FAF24 7F0C63F4 C428BD20 */ lwc1 $f8, %lo(D_8005BD20)($at) +/* 0FAF28 7F0C63F8 4614A102 */ mul.s $f4, $f20, $f20 +/* 0FAF2C 7F0C63FC 8EF90000 */ lw $t9, ($s7) +/* 0FAF30 7F0C6400 C7300148 */ lwc1 $f16, 0x148($t9) +/* 0FAF34 7F0C6404 46083283 */ div.s $f10, $f6, $f8 +/* 0FAF38 7F0C6408 4616B182 */ mul.s $f6, $f22, $f22 +/* 0FAF3C 7F0C640C 46062300 */ add.s $f12, $f4, $f6 +/* 0FAF40 7F0C6410 46105480 */ add.s $f18, $f10, $f16 +/* 0FAF44 7F0C6414 0C007DF8 */ jal sqrtf +/* 0FAF48 7F0C6418 461E9700 */ add.s $f28, $f18, $f30 +/* 0FAF4C 7F0C641C 461A0082 */ mul.s $f2, $f0, $f26 +/* 0FAF50 7F0C6420 24010005 */ li $at, 5 +/* 0FAF54 7F0C6424 001348C0 */ sll $t1, $s3, 3 +/* 0FAF58 7F0C6428 01334823 */ subu $t1, $t1, $s3 +/* 0FAF5C 7F0C642C 1281000A */ beq $s4, $at, .L7F0C6458 +/* 0FAF60 7F0C6430 46001586 */ mov.s $f22, $f2 +/* 0FAF64 7F0C6434 24010006 */ li $at, 6 +/* 0FAF68 7F0C6438 12810007 */ beq $s4, $at, .L7F0C6458 +/* 0FAF6C 7F0C643C 24010007 */ li $at, 7 +/* 0FAF70 7F0C6440 12810005 */ beq $s4, $at, .L7F0C6458 +/* 0FAF74 7F0C6444 24010002 */ li $at, 2 +/* 0FAF78 7F0C6448 12810003 */ beq $s4, $at, .L7F0C6458 +/* 0FAF7C 7F0C644C 24010003 */ li $at, 3 +/* 0FAF80 7F0C6450 5681001B */ bnel $s4, $at, .L7F0C64C0 +/* 0FAF84 7F0C6454 4618103C */ c.lt.s $f2, $f24 +.L7F0C6458: +/* 0FAF88 7F0C6458 4618103C */ c.lt.s $f2, $f24 +/* 0FAF8C 7F0C645C 3C0F8008 */ lui $t7, %hi(player1_player_data) +/* 0FAF90 7F0C6460 25EF9EF0 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x6110 +/* 0FAF94 7F0C6464 00094900 */ sll $t1, $t1, 4 +/* 0FAF98 7F0C6468 4500000A */ bc1f .L7F0C6494 +/* 0FAF9C 7F0C646C 012F1021 */ addu $v0, $t1, $t7 +/* 0FAFA0 7F0C6470 90580069 */ lbu $t8, 0x69($v0) +/* 0FAFA4 7F0C6474 3C112828 */ lui $s1, 0x2828 +/* 0FAFA8 7F0C6478 17000004 */ bnez $t8, .L7F0C648C +/* 0FAFAC 7F0C647C 00000000 */ nop +/* 0FAFB0 7F0C6480 3C11FF00 */ lui $s1, (0xFF00FFFF >> 16) # lui $s1, 0xff00 +/* 0FAFB4 7F0C6484 10000016 */ b .L7F0C64E0 +/* 0FAFB8 7F0C6488 363100A0 */ ori $s1, (0xFF0000A0 & 0xFFFF) # ori $s1, $s1, 0xa0 +.L7F0C648C: +/* 0FAFBC 7F0C648C 10000014 */ b .L7F0C64E0 +/* 0FAFC0 7F0C6490 3631FFFF */ ori $s1, (0xFF00FFFF & 0xFFFF) # ori $s1, $s1, 0xffff +.L7F0C6494: +/* 0FAFC4 7F0C6494 904A0069 */ lbu $t2, 0x69($v0) +/* 0FAFC8 7F0C6498 4600C586 */ mov.s $f22, $f24 +/* 0FAFCC 7F0C649C 3C112828 */ lui $s1, 0x2828 +/* 0FAFD0 7F0C64A0 15400004 */ bnez $t2, .L7F0C64B4 +/* 0FAFD4 7F0C64A4 00000000 */ nop +/* 0FAFD8 7F0C64A8 3C11FF00 */ lui $s1, (0xFF00FFB0 >> 16) # lui $s1, 0xff00 +/* 0FAFDC 7F0C64AC 1000000C */ b .L7F0C64E0 +/* 0FAFE0 7F0C64B0 36310060 */ ori $s1, (0xFF000060 & 0xFFFF) # ori $s1, $s1, 0x60 +.L7F0C64B4: +/* 0FAFE4 7F0C64B4 1000000A */ b .L7F0C64E0 +/* 0FAFE8 7F0C64B8 3631FFB0 */ ori $s1, (0xFF00FFB0 & 0xFFFF) # ori $s1, $s1, 0xffb0 +/* 0FAFEC 7F0C64BC 4618103C */ c.lt.s $f2, $f24 +.L7F0C64C0: +/* 0FAFF0 7F0C64C0 3C11FFFF */ lui $s1, (0xFFFF0060 >> 16) # lui $s1, 0xffff +/* 0FAFF4 7F0C64C4 36310060 */ ori $s1, (0xFFFF0060 & 0xFFFF) # ori $s1, $s1, 0x60 +/* 0FAFF8 7F0C64C8 45020005 */ bc1fl .L7F0C64E0 +/* 0FAFFC 7F0C64CC 4600C586 */ mov.s $f22, $f24 +/* 0FB000 7F0C64D0 3C11FFFF */ lui $s1, (0xFFFF00A0 >> 16) # lui $s1, 0xffff +/* 0FB004 7F0C64D4 10000002 */ b .L7F0C64E0 +/* 0FB008 7F0C64D8 363100A0 */ ori $s1, (0xFFFF00A0 & 0xFFFF) # ori $s1, $s1, 0xa0 +/* 0FB00C 7F0C64DC 4600C586 */ mov.s $f22, $f24 +.L7F0C64E0: +/* 0FB010 7F0C64E0 3C018006 */ lui $at, %hi(D_8005BD24) +/* 0FB014 7F0C64E4 C428BD24 */ lwc1 $f8, %lo(D_8005BD24)($at) +/* 0FB018 7F0C64E8 4608E502 */ mul.s $f20, $f28, $f8 +/* 0FB01C 7F0C64EC 0FC15FAB */ jal sinf +/* 0FB020 7F0C64F0 4600A306 */ mov.s $f12, $f20 +/* 0FB024 7F0C64F4 46160282 */ mul.s $f10, $f0, $f22 +/* 0FB028 7F0C64F8 4600A306 */ mov.s $f12, $f20 +/* 0FB02C 7F0C64FC 4600540D */ trunc.w.s $f16, $f10 +/* 0FB030 7F0C6500 440C8000 */ mfc1 $t4, $f16 +/* 0FB034 7F0C6504 0FC15FA8 */ jal cosf +/* 0FB038 7F0C6508 01958021 */ addu $s0, $t4, $s5 +/* 0FB03C 7F0C650C 46160482 */ mul.s $f18, $f0, $f22 +/* 0FB040 7F0C6510 24090040 */ li $t1, 64 +/* 0FB044 7F0C6514 AFA90014 */ sw $t1, 0x14($sp) +/* 0FB048 7F0C6518 8FA40088 */ lw $a0, 0x88($sp) +/* 0FB04C 7F0C651C 2605FFFE */ addiu $a1, $s0, -2 +/* 0FB050 7F0C6520 26070002 */ addiu $a3, $s0, 2 +/* 0FB054 7F0C6524 4600910D */ trunc.w.s $f4, $f18 +/* 0FB058 7F0C6528 440E2000 */ mfc1 $t6, $f4 +/* 0FB05C 7F0C652C 00000000 */ nop +/* 0FB060 7F0C6530 01D61021 */ addu $v0, $t6, $s6 +/* 0FB064 7F0C6534 24590002 */ addiu $t9, $v0, 2 +/* 0FB068 7F0C6538 00409025 */ move $s2, $v0 +/* 0FB06C 7F0C653C AFB90010 */ sw $t9, 0x10($sp) +/* 0FB070 7F0C6540 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FB074 7F0C6544 2446FFFE */ addiu $a2, $v0, -2 +/* 0FB078 7F0C6548 264F0001 */ addiu $t7, $s2, 1 +/* 0FB07C 7F0C654C AFA20088 */ sw $v0, 0x88($sp) +/* 0FB080 7F0C6550 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB084 7F0C6554 00402025 */ move $a0, $v0 +/* 0FB088 7F0C6558 2605FFFF */ addiu $a1, $s0, -1 +/* 0FB08C 7F0C655C 2646FFFF */ addiu $a2, $s2, -1 +/* 0FB090 7F0C6560 26070001 */ addiu $a3, $s0, 1 +/* 0FB094 7F0C6564 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FB098 7F0C6568 AFB10014 */ sw $s1, 0x14($sp) +/* 0FB09C 7F0C656C AFA20088 */ sw $v0, 0x88($sp) +.L7F0C6570: +/* 0FB0A0 7F0C6570 8FB80074 */ lw $t8, 0x74($sp) +.L7F0C6574: +/* 0FB0A4 7F0C6574 26730001 */ addiu $s3, $s3, 1 +/* 0FB0A8 7F0C6578 5678FF80 */ bnel $s3, $t8, .L7F0C637C +/* 0FB0AC 7F0C657C 8FAA0070 */ lw $t2, 0x70($sp) +.L7F0C6580: +/* 0FB0B0 7F0C6580 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FB0B4 7F0C6584 8FA40088 */ lw $a0, 0x88($sp) +.L7F0C6588: +/* 0FB0B8 7F0C6588 8FBF006C */ lw $ra, 0x6c($sp) +/* 0FB0BC 7F0C658C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0FB0C0 7F0C6590 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0FB0C4 7F0C6594 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0FB0C8 7F0C6598 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0FB0CC 7F0C659C D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0FB0D0 7F0C65A0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0FB0D4 7F0C65A4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0FB0D8 7F0C65A8 8FB10050 */ lw $s1, 0x50($sp) +/* 0FB0DC 7F0C65AC 8FB20054 */ lw $s2, 0x54($sp) +/* 0FB0E0 7F0C65B0 8FB30058 */ lw $s3, 0x58($sp) +/* 0FB0E4 7F0C65B4 8FB4005C */ lw $s4, 0x5c($sp) +/* 0FB0E8 7F0C65B8 8FB50060 */ lw $s5, 0x60($sp) +/* 0FB0EC 7F0C65BC 8FB60064 */ lw $s6, 0x64($sp) +/* 0FB0F0 7F0C65C0 8FB70068 */ lw $s7, 0x68($sp) +/* 0FB0F4 7F0C65C4 03E00008 */ jr $ra +/* 0FB0F8 7F0C65C8 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + diff --git a/src/game/ramromreplay.c b/src/game/ramromreplay.c new file mode 100644 index 0000000..485ae76 --- /dev/null +++ b/src/game/ramromreplay.c @@ -0,0 +1,1356 @@ + +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/lvl.h" +#include "game/initunk_0072B0.h" +#include "game/mainmenu.h" + + +//D:800483F0 + +//move me to better home +extern u32* ramrom_Dam_1; +extern u32* ramrom_Dam_2; +extern u32* ramrom_Facility_1; +extern u32* ramrom_Facility_2; +extern u32* ramrom_Facility_3; +extern u32* ramrom_Runway_1; +extern u32* ramrom_Runway_2; +extern u32* ramrom_BunkerI_1; +extern u32* ramrom_BunkerI_2; +extern u32* ramrom_Silo_1; +extern u32* ramrom_Silo_2; +extern u32* ramrom_Frigate_1; +extern u32* ramrom_Frigate_2; +extern u32* ramrom_Train; + +struct ramrom_struct ramrom_table[] = { + {&ramrom_Dam_1, 0}, {&ramrom_Dam_2, 0}, {&ramrom_Facility_1, 0}, {&ramrom_Facility_2, 0}, {&ramrom_Facility_3, 0}, + {&ramrom_Runway_1, 0}, {&ramrom_Runway_2, 0}, {&ramrom_BunkerI_1, 0}, {&ramrom_BunkerI_2, 0}, {&ramrom_Silo_1, 0}, + {&ramrom_Silo_2, 0}, {&ramrom_Frigate_1, 0}, {&ramrom_Frigate_2, 0}, {&ramrom_Train, 0}, {0,0} +}; + +//D:80048468 +s32 ptr_active_demofile = 0; +//D:8004846C +s32 ramrom_blkbuf_2 = 0; +//D:80048470 +s32 ramrom_blkbuf_3 = 0; +//D:80048474 +s32 is_ramrom_flag = 0; +//D:80048478 +s32 ramrom_demo_related_3 = 0; +//D:8004847C +s32 ramrom_demo_related_4 = 0; +//D:80048480 +s32 recording_ramrom_flag = 0; +//D:80048484 +s32 ramrom_demo_related_6 = 0; +//D:80048488 +s32 flag_to_record_ramrom = 0; +//D:8004848C +// .align 4 + + + + + + + + + + +void clear_ramrom_block_buffer_heading_ptrs(void) { + ptr_active_demofile = 0; + ramrom_blkbuf_2 = 0; + ramrom_blkbuf_3 = 0; +} + + +s32 get_is_ramrom_flag(void) { + return is_ramrom_flag; +} + + +s32 get_recording_ramrom_flag(void) { + return recording_ramrom_flag; +} + + +s32 interface_menu0B_runstage(void) { + return ramrom_demo_related_4; +} + +#ifdef NONMATCHING +void finalize_ramrom_on_hw(void) { + s32 temp_a0; + ? temp_ret; + + // Node 0 + temp_a0 = (((sp + 0x2f) | 0xf) ^ 0xf); + *temp_a0 = (u8)0; + temp_a0->unk1 = (u8)0; + romWrite(temp_a0, address_demo_loaded, 0x10); + address_demo_loaded = (s32) (address_demo_loaded + 4); + temp_ret = romCopyAligned(&ramrom_data_target, 0xf00000, 0xf0); + ptr_active_demofile = temp_ret; + temp_ret->unk7C = (s32) (global_timer - clock_timer); + ptr_active_demofile->unk80 = (s32) (address_demo_loaded - 0xf00000); + return romWrite(ptr_active_demofile, 0xf00000, 0xf0); +} +#else +GLOBAL_ASM( +.text +glabel finalize_ramrom_on_hw +/* 0F47E0 7F0BFCB0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0F47E4 7F0BFCB4 03A02025 */ move $a0, $sp +/* 0F47E8 7F0BFCB8 2484002F */ addiu $a0, $a0, 0x2f +/* 0F47EC 7F0BFCBC 348E000F */ ori $t6, $a0, 0xf +/* 0F47F0 7F0BFCC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F47F4 7F0BFCC4 39C4000F */ xori $a0, $t6, 0xf +/* 0F47F8 7F0BFCC8 A0800000 */ sb $zero, ($a0) +/* 0F47FC 7F0BFCCC A0800001 */ sb $zero, 1($a0) +/* 0F4800 7F0BFCD0 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4804 7F0BFCD4 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4808 7F0BFCD8 0C001742 */ jal romWrite +/* 0F480C 7F0BFCDC 24060010 */ li $a2, 16 +/* 0F4810 7F0BFCE0 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F4814 7F0BFCE4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F4818 7F0BFCE8 8C580000 */ lw $t8, ($v0) +/* 0F481C 7F0BFCEC 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F4820 7F0BFCF0 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F4824 7F0BFCF4 27190004 */ addiu $t9, $t8, 4 +/* 0F4828 7F0BFCF8 AC590000 */ sw $t9, ($v0) +/* 0F482C 7F0BFCFC 3C0500F0 */ lui $a1, 0xf0 +/* 0F4830 7F0BFD00 0C001711 */ jal romCopyAligned +/* 0F4834 7F0BFD04 240600F0 */ li $a2, 240 +/* 0F4838 7F0BFD08 3C038005 */ lui $v1, %hi(ptr_active_demofile) +/* 0F483C 7F0BFD0C 24638468 */ addiu $v1, %lo(ptr_active_demofile) # addiu $v1, $v1, -0x7b98 +/* 0F4840 7F0BFD10 AC620000 */ sw $v0, ($v1) +/* 0F4844 7F0BFD14 3C088005 */ lui $t0, %hi(global_timer) +/* 0F4848 7F0BFD18 3C098005 */ lui $t1, %hi(clock_timer) +/* 0F484C 7F0BFD1C 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0F4850 7F0BFD20 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 0F4854 7F0BFD24 3C0C8009 */ lui $t4, %hi(address_demo_loaded) +/* 0F4858 7F0BFD28 3C0500F0 */ lui $a1, 0xf0 +/* 0F485C 7F0BFD2C 01095023 */ subu $t2, $t0, $t1 +/* 0F4860 7F0BFD30 AC4A007C */ sw $t2, 0x7c($v0) +/* 0F4864 7F0BFD34 8D8CC5F4 */ lw $t4, %lo(address_demo_loaded)($t4) +/* 0F4868 7F0BFD38 8C6E0000 */ lw $t6, ($v1) +/* 0F486C 7F0BFD3C 240600F0 */ li $a2, 240 +/* 0F4870 7F0BFD40 01856823 */ subu $t5, $t4, $a1 +/* 0F4874 7F0BFD44 ADCD0080 */ sw $t5, 0x80($t6) +/* 0F4878 7F0BFD48 0C001742 */ jal romWrite +/* 0F487C 7F0BFD4C 8C640000 */ lw $a0, ($v1) +/* 0F4880 7F0BFD50 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4884 7F0BFD54 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0F4888 7F0BFD58 03E00008 */ jr $ra +/* 0F488C 7F0BFD5C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void save_ramrom_to_devtool(void) +{ + int iVar2; + undefined auStack264 [4]; + char indyFileName [260]; + + for (iVar2 = 1; check_file_found_on_indy(indyFileName,(u32)auStack264) != 0; iVar2++) + { + sprintf(indyFileName,"replay/demo.%d",iVar2); + } + sprintf(indyFileName,"replay/demo.%d",iVar2); + check_file_exported(indyFileName,0xf00000,(ptr_active_demofile + 0x80)); +} +#else +//D:8005B750 +const char aReplayDemo_D[] = "replay/demo.%d"; +//D:8005B760 +const char aReplayDemo_D_1[] = "replay/demo.%d"; +GLOBAL_ASM( +.text +glabel save_ramrom_to_devtool +/* 0F4890 7F0BFD60 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 0F4894 7F0BFD64 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F4898 7F0BFD68 AFB30020 */ sw $s3, 0x20($sp) +/* 0F489C 7F0BFD6C AFB10018 */ sw $s1, 0x18($sp) +/* 0F48A0 7F0BFD70 AFB00014 */ sw $s0, 0x14($sp) +/* 0F48A4 7F0BFD74 3C128006 */ lui $s2, %hi(aReplayDemo_D) +/* 0F48A8 7F0BFD78 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F48AC 7F0BFD7C 2652B750 */ addiu $s2, %lo(aReplayDemo_D) # addiu $s2, $s2, -0x48b0 +/* 0F48B0 7F0BFD80 24100001 */ li $s0, 1 +/* 0F48B4 7F0BFD84 27B1002C */ addiu $s1, $sp, 0x2c +/* 0F48B8 7F0BFD88 27B30028 */ addiu $s3, $sp, 0x28 +.L7F0BFD8C: +/* 0F48BC 7F0BFD8C 02202025 */ move $a0, $s1 +/* 0F48C0 7F0BFD90 02402825 */ move $a1, $s2 +/* 0F48C4 7F0BFD94 0C002B25 */ jal sprintf +/* 0F48C8 7F0BFD98 02003025 */ move $a2, $s0 +/* 0F48CC 7F0BFD9C 02202025 */ move $a0, $s1 +/* 0F48D0 7F0BFDA0 0FC34026 */ jal check_file_found_on_indy +/* 0F48D4 7F0BFDA4 02602825 */ move $a1, $s3 +/* 0F48D8 7F0BFDA8 10400003 */ beqz $v0, .L7F0BFDB8 +/* 0F48DC 7F0BFDAC 00000000 */ nop +/* 0F48E0 7F0BFDB0 1000FFF6 */ b .L7F0BFD8C +/* 0F48E4 7F0BFDB4 26100001 */ addiu $s0, $s0, 1 +.L7F0BFDB8: +/* 0F48E8 7F0BFDB8 3C058006 */ lui $a1, %hi(aReplayDemo_D_1) +/* 0F48EC 7F0BFDBC 24A5B760 */ addiu $a1, %lo(aReplayDemo_D_1) # addiu $a1, $a1, -0x48a0 +/* 0F48F0 7F0BFDC0 02202025 */ move $a0, $s1 +/* 0F48F4 7F0BFDC4 0C002B25 */ jal sprintf +/* 0F48F8 7F0BFDC8 02003025 */ move $a2, $s0 +/* 0F48FC 7F0BFDCC 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4900 7F0BFDD0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4904 7F0BFDD4 02202025 */ move $a0, $s1 +/* 0F4908 7F0BFDD8 3C0500F0 */ lui $a1, 0xf0 +/* 0F490C 7F0BFDDC 0FC34017 */ jal check_file_exported +/* 0F4910 7F0BFDE0 8DC60080 */ lw $a2, 0x80($t6) +/* 0F4914 7F0BFDE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F4918 7F0BFDE8 8FB00014 */ lw $s0, 0x14($sp) +/* 0F491C 7F0BFDEC 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4920 7F0BFDF0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F4924 7F0BFDF4 8FB30020 */ lw $s3, 0x20($sp) +/* 0F4928 7F0BFDF8 03E00008 */ jr $ra +/* 0F492C 7F0BFDFC 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif + + + + + +#ifdef NONMATCHING +void load_ramrom_from_devtool(void) +{ + s32 size; + + if (check_file_found_on_indy("replay/demo.load", &size) != 0) + { + indy_load_ramrom_file("replay/demo.load",(u8 *)0xf00000,size); + ptr_active_demofile = romCopyAligned(&ramrom_data_target,(u8 *)0xf00000,0xe8); + } +} +#else +//D:8005B770 +const char aReplayDemo_load[] = "replay/demo.load"; +GLOBAL_ASM( +.text +glabel load_ramrom_from_devtool +/* 0F4930 7F0BFE00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4934 7F0BFE04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4938 7F0BFE08 3C048006 */ lui $a0, %hi(aReplayDemo_load) +/* 0F493C 7F0BFE0C 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890 +/* 0F4940 7F0BFE10 0FC34026 */ jal check_file_found_on_indy +/* 0F4944 7F0BFE14 27A5001C */ addiu $a1, $sp, 0x1c +/* 0F4948 7F0BFE18 1040000C */ beqz $v0, .L7F0BFE4C +/* 0F494C 7F0BFE1C 3C048006 */ lui $a0, %hi(aReplayDemo_load) +/* 0F4950 7F0BFE20 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890 +/* 0F4954 7F0BFE24 3C0500F0 */ lui $a1, 0xf0 +/* 0F4958 7F0BFE28 0FC34007 */ jal indy_loadfile +/* 0F495C 7F0BFE2C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0F4960 7F0BFE30 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F4964 7F0BFE34 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F4968 7F0BFE38 3C0500F0 */ lui $a1, 0xf0 +/* 0F496C 7F0BFE3C 0C001711 */ jal romCopyAligned +/* 0F4970 7F0BFE40 240600E8 */ li $a2, 232 +/* 0F4974 7F0BFE44 3C018005 */ lui $at, %hi(ptr_active_demofile) +/* 0F4978 7F0BFE48 AC228468 */ sw $v0, %lo(ptr_active_demofile)($at) +.L7F0BFE4C: +/* 0F497C 7F0BFE4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4980 7F0BFE50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F4984 7F0BFE54 03E00008 */ jr $ra +/* 0F4988 7F0BFE58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void record_player_input_as_packet(void) { + +} +#else +GLOBAL_ASM( +.text +glabel record_player_input_as_packet +/* 0F498C 7F0BFE5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4990 7F0BFE60 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4994 7F0BFE64 3C0F8009 */ lui $t7, %hi(ramrom_data_target + 0x1F8) +/* 0F4998 7F0BFE68 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F499C 7F0BFE6C 25EFC468 */ addiu $t7, %lo(ramrom_data_target + 0x1F8) # addiu $t7, $t7, -0x3b98 +/* 0F49A0 7F0BFE70 25F8000F */ addiu $t8, $t7, 0xf +/* 0F49A4 7F0BFE74 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F49A8 7F0BFE78 AFB10018 */ sw $s1, 0x18($sp) +/* 0F49AC 7F0BFE7C AFB00014 */ sw $s0, 0x14($sp) +/* 0F49B0 7F0BFE80 3719000F */ ori $t9, $t8, 0xf +/* 0F49B4 7F0BFE84 3C088005 */ lui $t0, %hi(ramrom_blkbuf_3) +/* 0F49B8 7F0BFE88 3C0C8005 */ lui $t4, %hi(ramrom_blkbuf_2) +/* 0F49BC 7F0BFE8C 3B2D000F */ xori $t5, $t9, 0xf +/* 0F49C0 7F0BFE90 8DC90018 */ lw $t1, 0x18($t6) +/* 0F49C4 7F0BFE94 258C846C */ addiu $t4, %lo(ramrom_blkbuf_2) # addiu $t4, $t4, -0x7b94 +/* 0F49C8 7F0BFE98 25088470 */ addiu $t0, %lo(ramrom_blkbuf_3) # addiu $t0, $t0, -0x7b90 +/* 0F49CC 7F0BFE9C 25AE0004 */ addiu $t6, $t5, 4 +/* 0F49D0 7F0BFEA0 00C08025 */ move $s0, $a2 +/* 0F49D4 7F0BFEA4 00808825 */ move $s1, $a0 +/* 0F49D8 7F0BFEA8 00005025 */ move $t2, $zero +/* 0F49DC 7F0BFEAC 00003825 */ move $a3, $zero +/* 0F49E0 7F0BFEB0 AD8D0000 */ sw $t5, ($t4) +/* 0F49E4 7F0BFEB4 AD0E0000 */ sw $t6, ($t0) +/* 0F49E8 7F0BFEB8 10A60048 */ beq $a1, $a2, .L7F0BFFDC +/* 0F49EC 7F0BFEBC 01A01025 */ move $v0, $t5 +/* 0F49F0 7F0BFEC0 240B0014 */ li $t3, 20 +/* 0F49F4 7F0BFEC4 24AF0001 */ addiu $t7, $a1, 1 +/* 0F49F8 7F0BFEC8 01EB001A */ div $zero, $t7, $t3 +/* 0F49FC 7F0BFECC 00003010 */ mfhi $a2 +/* 0F4A00 7F0BFED0 00002025 */ move $a0, $zero +/* 0F4A04 7F0BFED4 15600002 */ bnez $t3, .L7F0BFEE0 +/* 0F4A08 7F0BFED8 00000000 */ nop +/* 0F4A0C 7F0BFEDC 0007000D */ break 7 +.L7F0BFEE0: +/* 0F4A10 7F0BFEE0 2401FFFF */ li $at, -1 +/* 0F4A14 7F0BFEE4 15610004 */ bne $t3, $at, .L7F0BFEF8 +/* 0F4A18 7F0BFEE8 3C018000 */ lui $at, 0x8000 +/* 0F4A1C 7F0BFEEC 15E10002 */ bne $t7, $at, .L7F0BFEF8 +/* 0F4A20 7F0BFEF0 00000000 */ nop +/* 0F4A24 7F0BFEF4 0006000D */ break 6 +.L7F0BFEF8: +/* 0F4A28 7F0BFEF8 19200025 */ blez $t1, .L7F0BFF90 +/* 0F4A2C 7F0BFEFC 00000000 */ nop +/* 0F4A30 7F0BFF00 01490019 */ multu $t2, $t1 +/* 0F4A34 7F0BFF04 0006C880 */ sll $t9, $a2, 2 +/* 0F4A38 7F0BFF08 00196880 */ sll $t5, $t9, 2 +/* 0F4A3C 7F0BFF0C 01B96823 */ subu $t5, $t5, $t9 +/* 0F4A40 7F0BFF10 000D6840 */ sll $t5, $t5, 1 +/* 0F4A44 7F0BFF14 022D1821 */ addu $v1, $s1, $t5 +/* 0F4A48 7F0BFF18 00002812 */ mflo $a1 +/* 0F4A4C 7F0BFF1C 0005C080 */ sll $t8, $a1, 2 +/* 0F4A50 7F0BFF20 03002825 */ move $a1, $t8 +.L7F0BFF24: +/* 0F4A54 7F0BFF24 8D0E0000 */ lw $t6, ($t0) +/* 0F4A58 7F0BFF28 80790002 */ lb $t9, 2($v1) +/* 0F4A5C 7F0BFF2C 0004C080 */ sll $t8, $a0, 2 +/* 0F4A60 7F0BFF30 00AE7821 */ addu $t7, $a1, $t6 +/* 0F4A64 7F0BFF34 01F81021 */ addu $v0, $t7, $t8 +/* 0F4A68 7F0BFF38 A0590000 */ sb $t9, ($v0) +/* 0F4A6C 7F0BFF3C 806D0003 */ lb $t5, 3($v1) +/* 0F4A70 7F0BFF40 24840001 */ addiu $a0, $a0, 1 +/* 0F4A74 7F0BFF44 24630006 */ addiu $v1, $v1, 6 +/* 0F4A78 7F0BFF48 A04D0001 */ sb $t5, 1($v0) +/* 0F4A7C 7F0BFF4C 946FFFFA */ lhu $t7, -6($v1) +/* 0F4A80 7F0BFF50 904E0001 */ lbu $t6, 1($v0) +/* 0F4A84 7F0BFF54 904D0000 */ lbu $t5, ($v0) +/* 0F4A88 7F0BFF58 A04F0002 */ sb $t7, 2($v0) +/* 0F4A8C 7F0BFF5C 9478FFFA */ lhu $t8, -6($v1) +/* 0F4A90 7F0BFF60 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4A94 7F0BFF64 0018CA03 */ sra $t9, $t8, 8 +/* 0F4A98 7F0BFF68 90580002 */ lbu $t8, 2($v0) +/* 0F4A9C 7F0BFF6C A0590003 */ sb $t9, 3($v0) +/* 0F4AA0 7F0BFF70 904D0003 */ lbu $t5, 3($v0) +/* 0F4AA4 7F0BFF74 01F8C821 */ addu $t9, $t7, $t8 +/* 0F4AA8 7F0BFF78 032D7021 */ addu $t6, $t9, $t5 +/* 0F4AAC 7F0BFF7C 31CF00FF */ andi $t7, $t6, 0xff +/* 0F4AB0 7F0BFF80 00EF3821 */ addu $a3, $a3, $t7 +/* 0F4AB4 7F0BFF84 30F800FF */ andi $t8, $a3, 0xff +/* 0F4AB8 7F0BFF88 1489FFE6 */ bne $a0, $t1, .L7F0BFF24 +/* 0F4ABC 7F0BFF8C 03003825 */ move $a3, $t8 +.L7F0BFF90: +/* 0F4AC0 7F0BFF90 14D00003 */ bne $a2, $s0, .L7F0BFFA0 +/* 0F4AC4 7F0BFF94 254A0001 */ addiu $t2, $t2, 1 +/* 0F4AC8 7F0BFF98 10000010 */ b .L7F0BFFDC +/* 0F4ACC 7F0BFF9C 8D820000 */ lw $v0, ($t4) +.L7F0BFFA0: +/* 0F4AD0 7F0BFFA0 24D90001 */ addiu $t9, $a2, 1 +/* 0F4AD4 7F0BFFA4 032B001A */ div $zero, $t9, $t3 +/* 0F4AD8 7F0BFFA8 00003010 */ mfhi $a2 +/* 0F4ADC 7F0BFFAC 00002025 */ move $a0, $zero +/* 0F4AE0 7F0BFFB0 15600002 */ bnez $t3, .L7F0BFFBC +/* 0F4AE4 7F0BFFB4 00000000 */ nop +/* 0F4AE8 7F0BFFB8 0007000D */ break 7 +.L7F0BFFBC: +/* 0F4AEC 7F0BFFBC 2401FFFF */ li $at, -1 +/* 0F4AF0 7F0BFFC0 15610004 */ bne $t3, $at, .L7F0BFFD4 +/* 0F4AF4 7F0BFFC4 3C018000 */ lui $at, 0x8000 +/* 0F4AF8 7F0BFFC8 17210002 */ bne $t9, $at, .L7F0BFFD4 +/* 0F4AFC 7F0BFFCC 00000000 */ nop +/* 0F4B00 7F0BFFD0 0006000D */ break 6 +.L7F0BFFD4: +/* 0F4B04 7F0BFFD4 1000FFC8 */ b .L7F0BFEF8 +/* 0F4B08 7F0BFFD8 00000000 */ nop +.L7F0BFFDC: +/* 0F4B0C 7F0BFFDC A04A0001 */ sb $t2, 1($v0) +/* 0F4B10 7F0BFFE0 3C0D8005 */ lui $t5, %hi(D_80048498) +/* 0F4B14 7F0BFFE4 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) +/* 0F4B18 7F0BFFE8 8D8E0000 */ lw $t6, ($t4) +/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(randseed + 0x4) +/* 0F4B20 7F0BFFF0 3C118009 */ lui $s1, %hi(address_demo_loaded) +/* 0F4B24 7F0BFFF4 A1CD0000 */ sb $t5, ($t6) +/* 0F4B28 7F0BFFF8 8D8D0000 */ lw $t5, ($t4) +/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(randseed + 0x4)($t9) +/* 0F4B30 7F0C0000 2631C5F4 */ addiu $s1, %lo(address_demo_loaded) # addiu $s1, $s1, -0x3a0c +/* 0F4B34 7F0C0004 A1B90002 */ sb $t9, 2($t5) +/* 0F4B38 7F0C0008 8D820000 */ lw $v0, ($t4) +/* 0F4B3C 7F0C000C 904E0000 */ lbu $t6, ($v0) +/* 0F4B40 7F0C0010 90580001 */ lbu $t8, 1($v0) +/* 0F4B44 7F0C0014 904F0002 */ lbu $t7, 2($v0) +/* 0F4B48 7F0C0018 01D8C821 */ addu $t9, $t6, $t8 +/* 0F4B4C 7F0C001C 032F7021 */ addu $t6, $t9, $t7 +/* 0F4B50 7F0C0020 0009C880 */ sll $t9, $t1, 2 +/* 0F4B54 7F0C0024 032A0019 */ multu $t9, $t2 +/* 0F4B58 7F0C0028 00EEC021 */ addu $t8, $a3, $t6 +/* 0F4B5C 7F0C002C A0580003 */ sb $t8, 3($v0) +/* 0F4B60 7F0C0030 8E250000 */ lw $a1, ($s1) +/* 0F4B64 7F0C0034 8D840000 */ lw $a0, ($t4) +/* 0F4B68 7F0C0038 00008012 */ mflo $s0 +/* 0F4B6C 7F0C003C 26100004 */ addiu $s0, $s0, 4 +/* 0F4B70 7F0C0040 2606000F */ addiu $a2, $s0, 0xf +/* 0F4B74 7F0C0044 34CF000F */ ori $t7, $a2, 0xf +/* 0F4B78 7F0C0048 0C001742 */ jal romWrite +/* 0F4B7C 7F0C004C 39E6000F */ xori $a2, $t7, 0xf +/* 0F4B80 7F0C0050 8E2E0000 */ lw $t6, ($s1) +/* 0F4B84 7F0C0054 26180001 */ addiu $t8, $s0, 1 +/* 0F4B88 7F0C0058 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4B8C 7F0C005C 37190001 */ ori $t9, $t8, 1 +/* 0F4B90 7F0C0060 3B2F0001 */ xori $t7, $t9, 1 +/* 0F4B94 7F0C0064 3C018009 */ lui $at, %hi(address_demo_loaded) +/* 0F4B98 7F0C0068 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4B9C 7F0C006C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4BA0 7F0C0070 01CF6821 */ addu $t5, $t6, $t7 +/* 0F4BA4 7F0C0074 AC2DC5F4 */ sw $t5, %lo(address_demo_loaded)($at) +/* 0F4BA8 7F0C0078 03E00008 */ jr $ra +/* 0F4BAC 7F0C007C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void ramrom_replay_handler(void) { + +} +#else +GLOBAL_ASM( +.text +glabel ramrom_replay_handler +/* 0F4BB0 7F0C0080 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F4BB4 7F0C0084 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4BB8 7F0C0088 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +/* 0F4BBC 7F0C008C AFBF001C */ sw $ra, 0x1c($sp) +/* 0F4BC0 7F0C0090 AFB10018 */ sw $s1, 0x18($sp) +/* 0F4BC4 7F0C0094 AFB00014 */ sw $s0, 0x14($sp) +/* 0F4BC8 7F0C0098 904A0001 */ lbu $t2, 1($v0) +/* 0F4BCC 7F0C009C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4BD0 7F0C00A0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4BD4 7F0C00A4 00A08025 */ move $s0, $a1 +/* 0F4BD8 7F0C00A8 00808825 */ move $s1, $a0 +/* 0F4BDC 7F0C00AC 00004025 */ move $t0, $zero +/* 0F4BE0 7F0C00B0 00003825 */ move $a3, $zero +/* 0F4BE4 7F0C00B4 19400041 */ blez $t2, .L7F0C01BC +/* 0F4BE8 7F0C00B8 8DC60018 */ lw $a2, 0x18($t6) +/* 0F4BEC 7F0C00BC 3C058005 */ lui $a1, %hi(ramrom_blkbuf_3) +/* 0F4BF0 7F0C00C0 24A58470 */ addiu $a1, %lo(ramrom_blkbuf_3) # addiu $a1, $a1, -0x7b90 +/* 0F4BF4 7F0C00C4 240B0014 */ li $t3, 20 +/* 0F4BF8 7F0C00C8 24090004 */ li $t1, 4 +/* 0F4BFC 7F0C00CC 260F0001 */ addiu $t7, $s0, 1 +.L7F0C00D0: +/* 0F4C00 7F0C00D0 01EB001A */ div $zero, $t7, $t3 +/* 0F4C04 7F0C00D4 00008010 */ mfhi $s0 +/* 0F4C08 7F0C00D8 0010C080 */ sll $t8, $s0, 2 +/* 0F4C0C 7F0C00DC 0018C880 */ sll $t9, $t8, 2 +/* 0F4C10 7F0C00E0 0338C823 */ subu $t9, $t9, $t8 +/* 0F4C14 7F0C00E4 0019C840 */ sll $t9, $t9, 1 +/* 0F4C18 7F0C00E8 15600002 */ bnez $t3, .L7F0C00F4 +/* 0F4C1C 7F0C00EC 00000000 */ nop +/* 0F4C20 7F0C00F0 0007000D */ break 7 +.L7F0C00F4: +/* 0F4C24 7F0C00F4 2401FFFF */ li $at, -1 +/* 0F4C28 7F0C00F8 15610004 */ bne $t3, $at, .L7F0C010C +/* 0F4C2C 7F0C00FC 3C018000 */ lui $at, 0x8000 +/* 0F4C30 7F0C0100 15E10002 */ bne $t7, $at, .L7F0C010C +/* 0F4C34 7F0C0104 00000000 */ nop +/* 0F4C38 7F0C0108 0006000D */ break 6 +.L7F0C010C: +/* 0F4C3C 7F0C010C 02391821 */ addu $v1, $s1, $t9 +/* 0F4C40 7F0C0110 00002025 */ move $a0, $zero +.L7F0C0114: +/* 0F4C44 7F0C0114 0086082A */ slt $at, $a0, $a2 +/* 0F4C48 7F0C0118 5020001E */ beql $at, $zero, .L7F0C0194 +/* 0F4C4C 7F0C011C A0600002 */ sb $zero, 2($v1) +/* 0F4C50 7F0C0120 00E60019 */ multu $a3, $a2 +/* 0F4C54 7F0C0124 8CAE0000 */ lw $t6, ($a1) +/* 0F4C58 7F0C0128 0004C080 */ sll $t8, $a0, 2 +/* 0F4C5C 7F0C012C 00006012 */ mflo $t4 +/* 0F4C60 7F0C0130 000C6880 */ sll $t5, $t4, 2 +/* 0F4C64 7F0C0134 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4C68 7F0C0138 01F81021 */ addu $v0, $t7, $t8 +/* 0F4C6C 7F0C013C 80590000 */ lb $t9, ($v0) +/* 0F4C70 7F0C0140 A0790002 */ sb $t9, 2($v1) +/* 0F4C74 7F0C0144 804C0001 */ lb $t4, 1($v0) +/* 0F4C78 7F0C0148 A06C0003 */ sb $t4, 3($v1) +/* 0F4C7C 7F0C014C 904D0003 */ lbu $t5, 3($v0) +/* 0F4C80 7F0C0150 904F0002 */ lbu $t7, 2($v0) +/* 0F4C84 7F0C0154 000D7200 */ sll $t6, $t5, 8 +/* 0F4C88 7F0C0158 01CFC025 */ or $t8, $t6, $t7 +/* 0F4C8C 7F0C015C A4780000 */ sh $t8, ($v1) +/* 0F4C90 7F0C0160 904C0001 */ lbu $t4, 1($v0) +/* 0F4C94 7F0C0164 90590000 */ lbu $t9, ($v0) +/* 0F4C98 7F0C0168 904E0002 */ lbu $t6, 2($v0) +/* 0F4C9C 7F0C016C 90580003 */ lbu $t8, 3($v0) +/* 0F4CA0 7F0C0170 032C6821 */ addu $t5, $t9, $t4 +/* 0F4CA4 7F0C0174 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4CA8 7F0C0178 01F8C821 */ addu $t9, $t7, $t8 +/* 0F4CAC 7F0C017C 332C00FF */ andi $t4, $t9, 0xff +/* 0F4CB0 7F0C0180 010C4021 */ addu $t0, $t0, $t4 +/* 0F4CB4 7F0C0184 310D00FF */ andi $t5, $t0, 0xff +/* 0F4CB8 7F0C0188 10000004 */ b .L7F0C019C +/* 0F4CBC 7F0C018C 01A04025 */ move $t0, $t5 +/* 0F4CC0 7F0C0190 A0600002 */ sb $zero, 2($v1) +.L7F0C0194: +/* 0F4CC4 7F0C0194 A0600003 */ sb $zero, 3($v1) +/* 0F4CC8 7F0C0198 A4600000 */ sh $zero, ($v1) +.L7F0C019C: +/* 0F4CCC 7F0C019C 24840001 */ addiu $a0, $a0, 1 +/* 0F4CD0 7F0C01A0 1489FFDC */ bne $a0, $t1, .L7F0C0114 +/* 0F4CD4 7F0C01A4 24630006 */ addiu $v1, $v1, 6 +/* 0F4CD8 7F0C01A8 24E70001 */ addiu $a3, $a3, 1 +/* 0F4CDC 7F0C01AC 54EAFFC8 */ bnel $a3, $t2, .L7F0C00D0 +/* 0F4CE0 7F0C01B0 260F0001 */ addiu $t7, $s0, 1 +/* 0F4CE4 7F0C01B4 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4CE8 7F0C01B8 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +.L7F0C01BC: +/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(randseed + 0x4) +/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) +/* 0F4CF4 7F0C01C4 90430002 */ lbu $v1, 2($v0) +/* 0F4CF8 7F0C01C8 31F900FF */ andi $t9, $t7, 0xff +/* 0F4CFC 7F0C01CC 53230008 */ beql $t9, $v1, .L7F0C01F0 +/* 0F4D00 7F0C01D0 904C0000 */ lbu $t4, ($v0) +/* 0F4D04 7F0C01D4 0FC30232 */ jal ensureCameraModeA +/* 0F4D08 7F0C01D8 A3A80023 */ sb $t0, 0x23($sp) +/* 0F4D0C 7F0C01DC 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4D10 7F0C01E0 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +/* 0F4D14 7F0C01E4 93A80023 */ lbu $t0, 0x23($sp) +/* 0F4D18 7F0C01E8 90430002 */ lbu $v1, 2($v0) +/* 0F4D1C 7F0C01EC 904C0000 */ lbu $t4, ($v0) +.L7F0C01F0: +/* 0F4D20 7F0C01F0 904D0001 */ lbu $t5, 1($v0) +/* 0F4D24 7F0C01F4 018D7021 */ addu $t6, $t4, $t5 +/* 0F4D28 7F0C01F8 904C0003 */ lbu $t4, 3($v0) +/* 0F4D2C 7F0C01FC 01C3C021 */ addu $t8, $t6, $v1 +/* 0F4D30 7F0C0200 01184021 */ addu $t0, $t0, $t8 +/* 0F4D34 7F0C0204 311900FF */ andi $t9, $t0, 0xff +/* 0F4D38 7F0C0208 132C0003 */ beq $t9, $t4, .L7F0C0218 +/* 0F4D3C 7F0C020C 00000000 */ nop +/* 0F4D40 7F0C0210 0FC30232 */ jal ensureCameraModeA +/* 0F4D44 7F0C0214 00000000 */ nop +.L7F0C0218: +/* 0F4D48 7F0C0218 0C00324C */ jal controller_7000C930 +/* 0F4D4C 7F0C021C 00002025 */ move $a0, $zero +/* 0F4D50 7F0C0220 00002025 */ move $a0, $zero +/* 0F4D54 7F0C0224 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4D58 7F0C0228 3405FFFF */ li $a1, 65535 +/* 0F4D5C 7F0C022C 10400006 */ beqz $v0, .L7F0C0248 +/* 0F4D60 7F0C0230 00000000 */ nop +/* 0F4D64 7F0C0234 0FC30232 */ jal ensureCameraModeA +/* 0F4D68 7F0C0238 00000000 */ nop +/* 0F4D6C 7F0C023C 240D0001 */ li $t5, 1 +/* 0F4D70 7F0C0240 3C018003 */ lui $at, %hi(prev_keypresses) +/* 0F4D74 7F0C0244 AC2DA934 */ sw $t5, %lo(prev_keypresses)($at) +.L7F0C0248: +/* 0F4D78 7F0C0248 0C00324C */ jal controller_7000C930 +/* 0F4D7C 7F0C024C 24040001 */ li $a0, 1 +/* 0F4D80 7F0C0250 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4D84 7F0C0254 02001025 */ move $v0, $s0 +/* 0F4D88 7F0C0258 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4D8C 7F0C025C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4D90 7F0C0260 03E00008 */ jr $ra +/* 0F4D94 7F0C0264 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +s32 iterate_ramrom_entries_handle_camera_out(void) { + ? temp_ret; + s32 temp_a3; + s32 temp_v1; + s32 phi_a0; + void *phi_v1; + s32 phi_a3; + void *phi_v1_2; + s32 phi_return; + + // Node 0 + temp_ret = romCopyAligned(&ramrom_data_target + 0x1F8, address_demo_loaded, 4); + ramrom_blkbuf_2 = temp_ret; + temp_a3 = temp_ret->unk1; + phi_a0 = temp_a3; + phi_v1 = temp_ret; + phi_a3 = temp_a3; + if (temp_a3 > 0) + { + // Node 1 + ramrom_blkbuf_3 = romCopyAligned(&ramrom_data_target + 0x21E, (address_demo_loaded + 4), ((ptr_active_demofile->unk18 * 4) * temp_a3), temp_a3); + phi_a0 = ramrom_blkbuf_2->unk1; + phi_v1 = (void *) ramrom_blkbuf_2; + phi_a3 = ramrom_blkbuf_2->unk1; + } + // Node 2 + if ((phi_a0 == 0) && (*phi_v1 == 0)) + { + // Node 4 + ensureCameraModeA(phi_a0, phi_a3); + phi_v1_2 = (void *) ramrom_blkbuf_2; + } + else + { + // Node 5 + address_demo_loaded = (s32) (address_demo_loaded + (((((ptr_active_demofile->unk18 * 4) * phi_a3) + 5) | 1) ^ 1)); + phi_v1_2 = phi_v1; + } + // Node 6 + sub_GAME_7F0C0AA0(*phi_v1_2); + temp_v1 = (ptr_active_demofile->unk7C + -0x3c); + phi_return = global_timer; + if (global_timer >= temp_v1) + { + // Node 7 + phi_return = global_timer; + if ((global_timer - clock_timer) < temp_v1) + { + // Node 8 + phi_return = ensureCameraModeA(); + } + } + // Node 9 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel iterate_ramrom_entries_handle_camera_out +/* 0F4D98 7F0C0268 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F4D9C 7F0C026C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4DA0 7F0C0270 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x1F8) +/* 0F4DA4 7F0C0274 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4DA8 7F0C0278 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4DAC 7F0C027C 2484C468 */ addiu $a0, %lo(ramrom_data_target + 0x1F8) # addiu $a0, $a0, -0x3b98 +/* 0F4DB0 7F0C0280 0C001711 */ jal romCopyAligned +/* 0F4DB4 7F0C0284 24060004 */ li $a2, 4 +/* 0F4DB8 7F0C0288 3C058005 */ lui $a1, %hi(ramrom_blkbuf_2) +/* 0F4DBC 7F0C028C 24A5846C */ addiu $a1, %lo(ramrom_blkbuf_2) # addiu $a1, $a1, -0x7b94 +/* 0F4DC0 7F0C0290 ACA20000 */ sw $v0, ($a1) +/* 0F4DC4 7F0C0294 90470001 */ lbu $a3, 1($v0) +/* 0F4DC8 7F0C0298 00401825 */ move $v1, $v0 +/* 0F4DCC 7F0C029C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4DD0 7F0C02A0 18E00013 */ blez $a3, .L7F0C02F0 +/* 0F4DD4 7F0C02A4 00E02025 */ move $a0, $a3 +/* 0F4DD8 7F0C02A8 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4DDC 7F0C02AC 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4DE0 7F0C02B0 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4DE4 7F0C02B4 8DCF0018 */ lw $t7, 0x18($t6) +/* 0F4DE8 7F0C02B8 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x21E) +/* 0F4DEC 7F0C02BC 2484C48E */ addiu $a0, %lo(ramrom_data_target + 0x21E) # addiu $a0, $a0, -0x3b72 +/* 0F4DF0 7F0C02C0 000FC080 */ sll $t8, $t7, 2 +/* 0F4DF4 7F0C02C4 03070019 */ multu $t8, $a3 +/* 0F4DF8 7F0C02C8 24A50004 */ addiu $a1, $a1, 4 +/* 0F4DFC 7F0C02CC 00003012 */ mflo $a2 +/* 0F4E00 7F0C02D0 0C001711 */ jal romCopyAligned +/* 0F4E04 7F0C02D4 00000000 */ nop +/* 0F4E08 7F0C02D8 3C038005 */ lui $v1, %hi(ramrom_blkbuf_2) +/* 0F4E0C 7F0C02DC 8C63846C */ lw $v1, %lo(ramrom_blkbuf_2)($v1) +/* 0F4E10 7F0C02E0 3C018005 */ lui $at, %hi(ramrom_blkbuf_3) +/* 0F4E14 7F0C02E4 AC228470 */ sw $v0, %lo(ramrom_blkbuf_3)($at) +/* 0F4E18 7F0C02E8 90670001 */ lbu $a3, 1($v1) +/* 0F4E1C 7F0C02EC 00E02025 */ move $a0, $a3 +.L7F0C02F0: +/* 0F4E20 7F0C02F0 14800009 */ bnez $a0, .L7F0C0318 +/* 0F4E24 7F0C02F4 3C098005 */ lui $t1, %hi(ptr_active_demofile) +/* 0F4E28 7F0C02F8 90790000 */ lbu $t9, ($v1) +/* 0F4E2C 7F0C02FC 17200006 */ bnez $t9, .L7F0C0318 +/* 0F4E30 7F0C0300 00000000 */ nop +/* 0F4E34 7F0C0304 0FC30232 */ jal ensureCameraModeA +/* 0F4E38 7F0C0308 00000000 */ nop +/* 0F4E3C 7F0C030C 3C038005 */ lui $v1, %hi(ramrom_blkbuf_2) +/* 0F4E40 7F0C0310 1000000E */ b .L7F0C034C +/* 0F4E44 7F0C0314 8C63846C */ lw $v1, %lo(ramrom_blkbuf_2)($v1) +.L7F0C0318: +/* 0F4E48 7F0C0318 8D298468 */ lw $t1, %lo(ptr_active_demofile)($t1) +/* 0F4E4C 7F0C031C 3C088009 */ lui $t0, %hi(address_demo_loaded) +/* 0F4E50 7F0C0320 8D08C5F4 */ lw $t0, %lo(address_demo_loaded)($t0) +/* 0F4E54 7F0C0324 8D2A0018 */ lw $t2, 0x18($t1) +/* 0F4E58 7F0C0328 3C018009 */ lui $at, %hi(address_demo_loaded) +/* 0F4E5C 7F0C032C 000A5880 */ sll $t3, $t2, 2 +/* 0F4E60 7F0C0330 01670019 */ multu $t3, $a3 +/* 0F4E64 7F0C0334 00006012 */ mflo $t4 +/* 0F4E68 7F0C0338 258D0005 */ addiu $t5, $t4, 5 +/* 0F4E6C 7F0C033C 35AE0001 */ ori $t6, $t5, 1 +/* 0F4E70 7F0C0340 39CF0001 */ xori $t7, $t6, 1 +/* 0F4E74 7F0C0344 010FC021 */ addu $t8, $t0, $t7 +/* 0F4E78 7F0C0348 AC38C5F4 */ sw $t8, %lo(address_demo_loaded)($at) +.L7F0C034C: +/* 0F4E7C 7F0C034C 0FC302A8 */ jal sub_GAME_7F0C0AA0 +/* 0F4E80 7F0C0350 90640000 */ lbu $a0, ($v1) +/* 0F4E84 7F0C0354 3C198005 */ lui $t9, %hi(ptr_active_demofile) +/* 0F4E88 7F0C0358 8F398468 */ lw $t9, %lo(ptr_active_demofile)($t9) +/* 0F4E8C 7F0C035C 3C028005 */ lui $v0, %hi(global_timer) +/* 0F4E90 7F0C0360 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 0F4E94 7F0C0364 8F23007C */ lw $v1, 0x7c($t9) +/* 0F4E98 7F0C0368 3C098005 */ lui $t1, %hi(clock_timer) +/* 0F4E9C 7F0C036C 2463FFC4 */ addiu $v1, $v1, -0x3c +/* 0F4EA0 7F0C0370 0043082A */ slt $at, $v0, $v1 +/* 0F4EA4 7F0C0374 54200009 */ bnezl $at, .L7F0C039C +/* 0F4EA8 7F0C0378 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4EAC 7F0C037C 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0F4EB0 7F0C0380 00495023 */ subu $t2, $v0, $t1 +/* 0F4EB4 7F0C0384 0143082A */ slt $at, $t2, $v1 +/* 0F4EB8 7F0C0388 50200004 */ beql $at, $zero, .L7F0C039C +/* 0F4EBC 7F0C038C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4EC0 7F0C0390 0FC30232 */ jal ensureCameraModeA +/* 0F4EC4 7F0C0394 00000000 */ nop +/* 0F4EC8 7F0C0398 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C039C: +/* 0F4ECC 7F0C039C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F4ED0 7F0C03A0 03E00008 */ jr $ra +/* 0F4ED4 7F0C03A4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_current_ingame_registers_before_ramrom_playback(void *arg0) { + ? temp_ret; + + // Node 0 + arg0->unk4 = (?32) randseed + 0x4; + *arg0 = (?32) randseed; + arg0->unkC = (?32) random_val + 0x4; + arg0->unk8 = (?32) random_val; + arg0->unk84 = (?32) gamemode; + arg0->unk8C = (?32) selected_num_players; + arg0->unk90 = (?32) scenario; + arg0->unk94 = (?32) MP_stage_selected; + arg0->unk98 = (?32) game_length; + arg0->unk9C = getMPWeaponSet(); + arg0->unkA0 = (?32) player_1_char; + arg0->unkA4 = (?32) player_1_char.unk4; + arg0->unkA8 = (?32) player_1_char.unk8; + arg0->unkAC = (?32) player_1_char.unkC; + arg0->unkB0 = (?32) handicap_player1; + arg0->unkB4 = (?32) handicap_player1.unk4; + arg0->unkB8 = (?32) handicap_player1.unk8; + arg0->unkBC = (?32) handicap_player1.unkC; + arg0->unkC0 = (?32) controlstyle_player; + arg0->unkC4 = (?32) controlstyle_player.unk4; + arg0->unkC8 = (?32) controlstyle_player.unk8; + arg0->unkCC = (?32) controlstyle_player.unkC; + arg0->unkD0 = (?32) aim_sight_adjustment; + arg0->unkD4 = get_players_team_or_scenario_item_flag(0); + arg0->unkD8 = get_players_team_or_scenario_item_flag(1); + arg0->unkDC = get_players_team_or_scenario_item_flag(2); + arg0->unkE0 = get_players_team_or_scenario_item_flag(3); +} + +#else +GLOBAL_ASM( +.text +glabel copy_current_ingame_registers_before_ramrom_playback +/* 0F4ED8 7F0C03A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4EDC 7F0C03AC 3C0E8002 */ lui $t6, %hi(randseed) +/* 0F4EE0 7F0C03B0 3C0F8002 */ lui $t7, %hi(randseed + 0x4) +/* 0F4EE4 7F0C03B4 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) +/* 0F4EE8 7F0C03B8 8DCE4460 */ lw $t6, %lo(randseed)($t6) +/* 0F4EEC 7F0C03BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0F4EF0 7F0C03C0 AFB00018 */ sw $s0, 0x18($sp) +/* 0F4EF4 7F0C03C4 AC8F0004 */ sw $t7, 4($a0) +/* 0F4EF8 7F0C03C8 AC8E0000 */ sw $t6, ($a0) +/* 0F4EFC 7F0C03CC 3C188004 */ lui $t8, %hi(random_val) +/* 0F4F00 7F0C03D0 3C198004 */ lui $t9, %hi(random_val + 0x4) +/* 0F4F04 7F0C03D4 8F390164 */ lw $t9, %lo(random_val + 0x4)($t9) +/* 0F4F08 7F0C03D8 8F180160 */ lw $t8, %lo(random_val)($t8) +/* 0F4F0C 7F0C03DC 3C088003 */ lui $t0, %hi(gamemode) +/* 0F4F10 7F0C03E0 AC99000C */ sw $t9, 0xc($a0) +/* 0F4F14 7F0C03E4 AC980008 */ sw $t8, 8($a0) +/* 0F4F18 7F0C03E8 8D08A8F0 */ lw $t0, %lo(gamemode)($t0) +/* 0F4F1C 7F0C03EC 3C098003 */ lui $t1, %hi(selected_num_players) +/* 0F4F20 7F0C03F0 3C0A8003 */ lui $t2, %hi(scenario) +/* 0F4F24 7F0C03F4 AC880084 */ sw $t0, 0x84($a0) +/* 0F4F28 7F0C03F8 8D29B520 */ lw $t1, %lo(selected_num_players)($t1) +/* 0F4F2C 7F0C03FC 3C0B8003 */ lui $t3, %hi(MP_stage_selected) +/* 0F4F30 7F0C0400 3C0C8003 */ lui $t4, %hi(game_length) +/* 0F4F34 7F0C0404 AC89008C */ sw $t1, 0x8c($a0) +/* 0F4F38 7F0C0408 8D4AB540 */ lw $t2, %lo(scenario)($t2) +/* 0F4F3C 7F0C040C 00808025 */ move $s0, $a0 +/* 0F4F40 7F0C0410 AC8A0090 */ sw $t2, 0x90($a0) +/* 0F4F44 7F0C0414 8D6BB534 */ lw $t3, %lo(MP_stage_selected)($t3) +/* 0F4F48 7F0C0418 AC8B0094 */ sw $t3, 0x94($a0) +/* 0F4F4C 7F0C041C 8D8CB538 */ lw $t4, %lo(game_length)($t4) +/* 0F4F50 7F0C0420 0FC3198F */ jal getMPWeaponSet +/* 0F4F54 7F0C0424 AC8C0098 */ sw $t4, 0x98($a0) +/* 0F4F58 7F0C0428 3C038003 */ lui $v1, %hi(player_1_char) +/* 0F4F5C 7F0C042C 2463B524 */ addiu $v1, %lo(player_1_char) # addiu $v1, $v1, -0x4adc +/* 0F4F60 7F0C0430 AE02009C */ sw $v0, 0x9c($s0) +/* 0F4F64 7F0C0434 8C6D0000 */ lw $t5, ($v1) +/* 0F4F68 7F0C0438 3C058007 */ lui $a1, %hi(handicap_player1) +/* 0F4F6C 7F0C043C 24A597A8 */ addiu $a1, %lo(handicap_player1) # addiu $a1, $a1, -0x6858 +/* 0F4F70 7F0C0440 AE0D00A0 */ sw $t5, 0xa0($s0) +/* 0F4F74 7F0C0444 8C6E0004 */ lw $t6, 4($v1) +/* 0F4F78 7F0C0448 3C068007 */ lui $a2, %hi(controlstyle_player) +/* 0F4F7C 7F0C044C 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 +/* 0F4F80 7F0C0450 AE0E00A4 */ sw $t6, 0xa4($s0) +/* 0F4F84 7F0C0454 8C6F0008 */ lw $t7, 8($v1) +/* 0F4F88 7F0C0458 00002025 */ move $a0, $zero +/* 0F4F8C 7F0C045C AE0F00A8 */ sw $t7, 0xa8($s0) +/* 0F4F90 7F0C0460 8C78000C */ lw $t8, 0xc($v1) +/* 0F4F94 7F0C0464 3C0F8003 */ lui $t7, %hi(aim_sight_adjustment) +/* 0F4F98 7F0C0468 AE1800AC */ sw $t8, 0xac($s0) +/* 0F4F9C 7F0C046C 8CB90000 */ lw $t9, ($a1) +/* 0F4FA0 7F0C0470 AE1900B0 */ sw $t9, 0xb0($s0) +/* 0F4FA4 7F0C0474 8CA80004 */ lw $t0, 4($a1) +/* 0F4FA8 7F0C0478 AE0800B4 */ sw $t0, 0xb4($s0) +/* 0F4FAC 7F0C047C 8CA90008 */ lw $t1, 8($a1) +/* 0F4FB0 7F0C0480 AE0900B8 */ sw $t1, 0xb8($s0) +/* 0F4FB4 7F0C0484 8CAA000C */ lw $t2, 0xc($a1) +/* 0F4FB8 7F0C0488 AE0A00BC */ sw $t2, 0xbc($s0) +/* 0F4FBC 7F0C048C 8CCB0000 */ lw $t3, ($a2) +/* 0F4FC0 7F0C0490 AE0B00C0 */ sw $t3, 0xc0($s0) +/* 0F4FC4 7F0C0494 8CCC0004 */ lw $t4, 4($a2) +/* 0F4FC8 7F0C0498 AE0C00C4 */ sw $t4, 0xc4($s0) +/* 0F4FCC 7F0C049C 8CCD0008 */ lw $t5, 8($a2) +/* 0F4FD0 7F0C04A0 AE0D00C8 */ sw $t5, 0xc8($s0) +/* 0F4FD4 7F0C04A4 8CCE000C */ lw $t6, 0xc($a2) +/* 0F4FD8 7F0C04A8 AE0E00CC */ sw $t6, 0xcc($s0) +/* 0F4FDC 7F0C04AC 8DEFB53C */ lw $t7, %lo(aim_sight_adjustment)($t7) +/* 0F4FE0 7F0C04B0 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FE4 7F0C04B4 AE0F00D0 */ sw $t7, 0xd0($s0) +/* 0F4FE8 7F0C04B8 AE0200D4 */ sw $v0, 0xd4($s0) +/* 0F4FEC 7F0C04BC 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FF0 7F0C04C0 24040001 */ li $a0, 1 +/* 0F4FF4 7F0C04C4 AE0200D8 */ sw $v0, 0xd8($s0) +/* 0F4FF8 7F0C04C8 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FFC 7F0C04CC 24040002 */ li $a0, 2 +/* 0F5000 7F0C04D0 AE0200DC */ sw $v0, 0xdc($s0) +/* 0F5004 7F0C04D4 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F5008 7F0C04D8 24040003 */ li $a0, 3 +/* 0F500C 7F0C04DC AE0200E0 */ sw $v0, 0xe0($s0) +/* 0F5010 7F0C04E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F5014 7F0C04E4 8FB00018 */ lw $s0, 0x18($sp) +/* 0F5018 7F0C04E8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F501C 7F0C04EC 03E00008 */ jr $ra +/* 0F5020 7F0C04F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_recorded_ramrom_registers_to_proper_place_ingame(void *arg0) { + // Node 0 + randseed = (?32) *arg0; + randseed + 0x4 = (?32) arg0->unk4; + random_val = (?32) arg0->unk8; + random_val + 0x4 = (?32) arg0->unkC; + gamemode = (?32) arg0->unk84; + selected_num_players = (?32) arg0->unk8C; + scenario = (?32) arg0->unk90; + MP_stage_selected = (?32) arg0->unk94; + game_length = (?32) arg0->unk98; + setMPWeaponSet(arg0->unk9C); + player_1_char = (?32) arg0->unkA0; + player_1_char.unk4 = (?32) arg0->unkA4; + player_1_char.unk8 = (?32) arg0->unkA8; + player_1_char.unkC = (?32) arg0->unkAC; + handicap_player1 = (?32) arg0->unkB0; + handicap_player1.unk4 = (?32) arg0->unkB4; + handicap_player1.unk8 = (?32) arg0->unkB8; + handicap_player1.unkC = (?32) arg0->unkBC; + controlstyle_player = (?32) arg0->unkC0; + controlstyle_player.unk4 = (?32) arg0->unkC4; + controlstyle_player.unk8 = (?32) arg0->unkC8; + controlstyle_player.unkC = (?32) arg0->unkCC; + aim_sight_adjustment = (?32) arg0->unkD0; + set_players_team_or_scenario_item_flag(0, arg0->unkD4, &controlstyle_player); + set_players_team_or_scenario_item_flag(1, arg0->unkD8); + set_players_team_or_scenario_item_flag(2, arg0->unkDC); + return set_players_team_or_scenario_item_flag(3, arg0->unkE0); +} +#else +GLOBAL_ASM( +.text +glabel copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F5024 7F0C04F4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F5028 7F0C04F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F502C 7F0C04FC AFB00018 */ sw $s0, 0x18($sp) +/* 0F5030 7F0C0500 8C8E0000 */ lw $t6, ($a0) +/* 0F5034 7F0C0504 8C8F0004 */ lw $t7, 4($a0) +/* 0F5038 7F0C0508 3C018002 */ lui $at, %hi(randseed) +/* 0F503C 7F0C050C AC2E4460 */ sw $t6, %lo(randseed)($at) +/* 0F5040 7F0C0510 3C018002 */ lui $at, %hi(randseed + 0x4) +/* 0F5044 7F0C0514 AC2F4464 */ sw $t7, %lo(randseed + 0x4)($at) +/* 0F5048 7F0C0518 8C980008 */ lw $t8, 8($a0) +/* 0F504C 7F0C051C 8C99000C */ lw $t9, 0xc($a0) +/* 0F5050 7F0C0520 3C018004 */ lui $at, %hi(random_val) +/* 0F5054 7F0C0524 AC380160 */ sw $t8, %lo(random_val)($at) +/* 0F5058 7F0C0528 3C018004 */ lui $at, %hi(random_val + 0x4) +/* 0F505C 7F0C052C AC390164 */ sw $t9, %lo(random_val + 0x4)($at) +/* 0F5060 7F0C0530 8C880084 */ lw $t0, 0x84($a0) +/* 0F5064 7F0C0534 3C018003 */ lui $at, %hi(gamemode) +/* 0F5068 7F0C0538 00808025 */ move $s0, $a0 +/* 0F506C 7F0C053C AC28A8F0 */ sw $t0, %lo(gamemode)($at) +/* 0F5070 7F0C0540 8C89008C */ lw $t1, 0x8c($a0) +/* 0F5074 7F0C0544 3C018003 */ lui $at, %hi(selected_num_players) +/* 0F5078 7F0C0548 AC29B520 */ sw $t1, %lo(selected_num_players)($at) +/* 0F507C 7F0C054C 8C8A0090 */ lw $t2, 0x90($a0) +/* 0F5080 7F0C0550 3C018003 */ lui $at, %hi(scenario) +/* 0F5084 7F0C0554 AC2AB540 */ sw $t2, %lo(scenario)($at) +/* 0F5088 7F0C0558 8C8B0094 */ lw $t3, 0x94($a0) +/* 0F508C 7F0C055C 3C018003 */ lui $at, %hi(MP_stage_selected) +/* 0F5090 7F0C0560 AC2BB534 */ sw $t3, %lo(MP_stage_selected)($at) +/* 0F5094 7F0C0564 8C8C0098 */ lw $t4, 0x98($a0) +/* 0F5098 7F0C0568 3C018003 */ lui $at, %hi(game_length) +/* 0F509C 7F0C056C AC2CB538 */ sw $t4, %lo(game_length)($at) +/* 0F50A0 7F0C0570 0FC3198C */ jal setMPWeaponSet +/* 0F50A4 7F0C0574 8C84009C */ lw $a0, 0x9c($a0) +/* 0F50A8 7F0C0578 8E0D00A0 */ lw $t5, 0xa0($s0) +/* 0F50AC 7F0C057C 3C028003 */ lui $v0, %hi(player_1_char) +/* 0F50B0 7F0C0580 2442B524 */ addiu $v0, %lo(player_1_char) # addiu $v0, $v0, -0x4adc +/* 0F50B4 7F0C0584 AC4D0000 */ sw $t5, ($v0) +/* 0F50B8 7F0C0588 8E0E00A4 */ lw $t6, 0xa4($s0) +/* 0F50BC 7F0C058C 3C038007 */ lui $v1, %hi(handicap_player1) +/* 0F50C0 7F0C0590 246397A8 */ addiu $v1, %lo(handicap_player1) # addiu $v1, $v1, -0x6858 +/* 0F50C4 7F0C0594 AC4E0004 */ sw $t6, 4($v0) +/* 0F50C8 7F0C0598 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 0F50CC 7F0C059C 3C068007 */ lui $a2, %hi(controlstyle_player) +/* 0F50D0 7F0C05A0 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 +/* 0F50D4 7F0C05A4 AC4F0008 */ sw $t7, 8($v0) +/* 0F50D8 7F0C05A8 8E1800AC */ lw $t8, 0xac($s0) +/* 0F50DC 7F0C05AC 3C018003 */ lui $at, %hi(aim_sight_adjustment) +/* 0F50E0 7F0C05B0 00002025 */ move $a0, $zero +/* 0F50E4 7F0C05B4 AC58000C */ sw $t8, 0xc($v0) +/* 0F50E8 7F0C05B8 8E1900B0 */ lw $t9, 0xb0($s0) +/* 0F50EC 7F0C05BC AC790000 */ sw $t9, ($v1) +/* 0F50F0 7F0C05C0 8E0800B4 */ lw $t0, 0xb4($s0) +/* 0F50F4 7F0C05C4 AC680004 */ sw $t0, 4($v1) +/* 0F50F8 7F0C05C8 8E0900B8 */ lw $t1, 0xb8($s0) +/* 0F50FC 7F0C05CC AC690008 */ sw $t1, 8($v1) +/* 0F5100 7F0C05D0 8E0A00BC */ lw $t2, 0xbc($s0) +/* 0F5104 7F0C05D4 AC6A000C */ sw $t2, 0xc($v1) +/* 0F5108 7F0C05D8 8E0B00C0 */ lw $t3, 0xc0($s0) +/* 0F510C 7F0C05DC ACCB0000 */ sw $t3, ($a2) +/* 0F5110 7F0C05E0 8E0C00C4 */ lw $t4, 0xc4($s0) +/* 0F5114 7F0C05E4 ACCC0004 */ sw $t4, 4($a2) +/* 0F5118 7F0C05E8 8E0D00C8 */ lw $t5, 0xc8($s0) +/* 0F511C 7F0C05EC ACCD0008 */ sw $t5, 8($a2) +/* 0F5120 7F0C05F0 8E0E00CC */ lw $t6, 0xcc($s0) +/* 0F5124 7F0C05F4 ACCE000C */ sw $t6, 0xc($a2) +/* 0F5128 7F0C05F8 8E0F00D0 */ lw $t7, 0xd0($s0) +/* 0F512C 7F0C05FC AC2FB53C */ sw $t7, %lo(aim_sight_adjustment)($at) +/* 0F5130 7F0C0600 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5134 7F0C0604 8E0500D4 */ lw $a1, 0xd4($s0) +/* 0F5138 7F0C0608 24040001 */ li $a0, 1 +/* 0F513C 7F0C060C 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5140 7F0C0610 8E0500D8 */ lw $a1, 0xd8($s0) +/* 0F5144 7F0C0614 24040002 */ li $a0, 2 +/* 0F5148 7F0C0618 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F514C 7F0C061C 8E0500DC */ lw $a1, 0xdc($s0) +/* 0F5150 7F0C0620 24040003 */ li $a0, 3 +/* 0F5154 7F0C0624 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5158 7F0C0628 8E0500E0 */ lw $a1, 0xe0($s0) +/* 0F515C 7F0C062C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F5160 7F0C0630 8FB00018 */ lw $s0, 0x18($sp) +/* 0F5164 7F0C0634 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F5168 7F0C0638 03E00008 */ jr $ra +/* 0F516C 7F0C063C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void test_if_recording_demos_this_stage_load(void) { + +} +#else +GLOBAL_ASM( +.text +glabel test_if_recording_demos_this_stage_load +/* 0F5170 7F0C0640 3C0E8005 */ lui $t6, %hi(flag_to_record_ramrom) +/* 0F5174 7F0C0644 8DCE8488 */ lw $t6, %lo(flag_to_record_ramrom)($t6) +/* 0F5178 7F0C0648 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F517C 7F0C064C AFBF001C */ sw $ra, 0x1c($sp) +/* 0F5180 7F0C0650 11C00032 */ beqz $t6, .L7F0C071C +/* 0F5184 7F0C0654 AFB00018 */ sw $s0, 0x18($sp) +/* 0F5188 7F0C0658 3C0F8009 */ lui $t7, %hi(ramrom_data_target) +/* 0F518C 7F0C065C 25EFC270 */ addiu $t7, %lo(ramrom_data_target) # addiu $t7, $t7, -0x3d90 +/* 0F5190 7F0C0660 25F8000F */ addiu $t8, $t7, 0xf +/* 0F5194 7F0C0664 3C108005 */ lui $s0, %hi(ptr_active_demofile) +/* 0F5198 7F0C0668 3719000F */ ori $t9, $t8, 0xf +/* 0F519C 7F0C066C 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98 +/* 0F51A0 7F0C0670 3B28000F */ xori $t0, $t9, 0xf +/* 0F51A4 7F0C0674 AE080000 */ sw $t0, ($s0) +/* 0F51A8 7F0C0678 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8) +/* 0F51AC 7F0C067C AC20C5F8 */ sw $zero, %lo(dword_CODE_bss_8008C5F8)($at) +/* 0F51B0 7F0C0680 8E090000 */ lw $t1, ($s0) +/* 0F51B4 7F0C0684 AD240010 */ sw $a0, 0x10($t1) +/* 0F51B8 7F0C0688 8E0A0000 */ lw $t2, ($s0) +/* 0F51BC 7F0C068C 0C002E7E */ jal get_attached_controller_count +/* 0F51C0 7F0C0690 AD450014 */ sw $a1, 0x14($t2) +/* 0F51C4 7F0C0694 8E0B0000 */ lw $t3, ($s0) +/* 0F51C8 7F0C0698 3C0C8009 */ lui $t4, %hi(record_slot_num) +/* 0F51CC 7F0C069C AD620018 */ sw $v0, 0x18($t3) +/* 0F51D0 7F0C06A0 8E0D0000 */ lw $t5, ($s0) +/* 0F51D4 7F0C06A4 8D8CC5F0 */ lw $t4, %lo(record_slot_num)($t4) +/* 0F51D8 7F0C06A8 ADAC0088 */ sw $t4, 0x88($t5) +/* 0F51DC 7F0C06AC 8E040000 */ lw $a0, ($s0) +/* 0F51E0 7F0C06B0 0FC07587 */ jal sub_GAME_7F01D61C +/* 0F51E4 7F0C06B4 2484001C */ addiu $a0, $a0, 0x1c +/* 0F51E8 7F0C06B8 0FC300EA */ jal copy_current_ingame_registers_before_ramrom_playback +/* 0F51EC 7F0C06BC 8E040000 */ lw $a0, ($s0) +/* 0F51F0 7F0C06C0 24020001 */ li $v0, 1 +/* 0F51F4 7F0C06C4 3C018005 */ lui $at, %hi(recording_ramrom_flag) +/* 0F51F8 7F0C06C8 AC228480 */ sw $v0, %lo(recording_ramrom_flag)($at) +/* 0F51FC 7F0C06CC 3C018005 */ lui $at, %hi(ramrom_demo_related_6) +/* 0F5200 7F0C06D0 3C047F0C */ lui $a0, %hi(record_player_input_as_packet) # $a0, 0x7f0c +/* 0F5204 7F0C06D4 AC228484 */ sw $v0, %lo(ramrom_demo_related_6)($at) +/* 0F5208 7F0C06D8 0C002EEF */ jal set_ptr_tlb_ramrom_record +/* 0F520C 7F0C06DC 2484FE5C */ addiu $a0, %lo(record_player_input_as_packet) # addiu $a0, $a0, -0x1a4 +/* 0F5210 7F0C06E0 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F5214 7F0C06E4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F5218 7F0C06E8 3C0500F0 */ lui $a1, 0xf0 +/* 0F521C 7F0C06EC AC450000 */ sw $a1, ($v0) +/* 0F5220 7F0C06F0 8E040000 */ lw $a0, ($s0) +/* 0F5224 7F0C06F4 0C001742 */ jal romWrite +/* 0F5228 7F0C06F8 240600F0 */ li $a2, 240 +/* 0F522C 7F0C06FC 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F5230 7F0C0700 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F5234 7F0C0704 8C4F0000 */ lw $t7, ($v0) +/* 0F5238 7F0C0708 3C018005 */ lui $at, %hi(flag_to_record_ramrom) +/* 0F523C 7F0C070C 25F800E8 */ addiu $t8, $t7, 0xe8 +/* 0F5240 7F0C0710 AC580000 */ sw $t8, ($v0) +/* 0F5244 7F0C0714 10000024 */ b .L7F0C07A8 +/* 0F5248 7F0C0718 AC208488 */ sw $zero, %lo(flag_to_record_ramrom)($at) +.L7F0C071C: +/* 0F524C 7F0C071C 3C198005 */ lui $t9, %hi(ramrom_demo_related_4) +/* 0F5250 7F0C0720 8F39847C */ lw $t9, %lo(ramrom_demo_related_4)($t9) +/* 0F5254 7F0C0724 13200020 */ beqz $t9, .L7F0C07A8 +/* 0F5258 7F0C0728 3C108005 */ lui $s0, %hi(ptr_active_demofile) +/* 0F525C 7F0C072C 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8) +/* 0F5260 7F0C0730 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98 +/* 0F5264 7F0C0734 AC20C5F8 */ sw $zero, %lo(dword_CODE_bss_8008C5F8)($at) +/* 0F5268 7F0C0738 8E080000 */ lw $t0, ($s0) +/* 0F526C 7F0C073C 0FC07567 */ jal set_selected_difficulty +/* 0F5270 7F0C0740 8D040014 */ lw $a0, 0x14($t0) +/* 0F5274 7F0C0744 8E090000 */ lw $t1, ($s0) +/* 0F5278 7F0C0748 0FC0757B */ jal set_solo_and_ptr_briefing +/* 0F527C 7F0C074C 8D240010 */ lw $a0, 0x10($t1) +/* 0F5280 7F0C0750 8E040000 */ lw $a0, ($s0) +/* 0F5284 7F0C0754 0FC07591 */ jal sub_GAME_7F01D644 +/* 0F5288 7F0C0758 2484001C */ addiu $a0, $a0, 0x1c +/* 0F528C 7F0C075C 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x110) +/* 0F5290 7F0C0760 0FC300EA */ jal copy_current_ingame_registers_before_ramrom_playback +/* 0F5294 7F0C0764 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80 +/* 0F5298 7F0C0768 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F529C 7F0C076C 8E040000 */ lw $a0, ($s0) +/* 0F52A0 7F0C0770 24020001 */ li $v0, 1 +/* 0F52A4 7F0C0774 3C018005 */ lui $at, %hi(is_ramrom_flag) +/* 0F52A8 7F0C0778 AC228474 */ sw $v0, %lo(is_ramrom_flag)($at) +/* 0F52AC 7F0C077C 3C018005 */ lui $at, %hi(ramrom_demo_related_3) +/* 0F52B0 7F0C0780 AC228478 */ sw $v0, %lo(ramrom_demo_related_3)($at) +/* 0F52B4 7F0C0784 8E0A0000 */ lw $t2, ($s0) +/* 0F52B8 7F0C0788 3C047F0C */ lui $a0, %hi(ramrom_replay_handler) # $a0, 0x7f0c +/* 0F52BC 7F0C078C 24840080 */ addiu $a0, %lo(ramrom_replay_handler) # addiu $a0, $a0, 0x80 +/* 0F52C0 7F0C0790 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F52C4 7F0C0794 8D450018 */ lw $a1, 0x18($t2) +/* 0F52C8 7F0C0798 0C00324C */ jal controller_7000C930 +/* 0F52CC 7F0C079C 24040001 */ li $a0, 1 +/* 0F52D0 7F0C07A0 3C018005 */ lui $at, %hi(ramrom_demo_related_4) +/* 0F52D4 7F0C07A4 AC20847C */ sw $zero, %lo(ramrom_demo_related_4)($at) +.L7F0C07A8: +/* 0F52D8 7F0C07A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F52DC 7F0C07AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0F52E0 7F0C07B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F52E4 7F0C07B4 03E00008 */ jr $ra +/* 0F52E8 7F0C07B8 00000000 */ nop +) +#endif + + + + + + +void setRamRomRecordSlot(s32 arg0) { + flag_to_record_ramrom = 1; + record_slot_num = arg0; +} + +void stop_recording_ramrom(void) { + if (ramrom_demo_related_6 != 0) + { + finalize_ramrom_on_hw(); + set_ptr_tlb_ramrom_record(0); + ramrom_demo_related_6 = 0; + recording_ramrom_flag = 0; + } +} + + + + + + +#ifdef NONMATCHING +void replay_recorded_ramrom_at_address(s32 arg0) +{ + address_demo_loaded = arg0; + ptr_active_demofile = romCopyAligned(&ramrom_data_target, address_demo_loaded, 0xe8); + address_demo_loaded += 0xe8; + ramrom_demo_related_4 = 1; + set_solo_and_ptr_briefing(ptr_active_demofile->unk10); + set_selected_difficulty(ptr_active_demofile->unk14); + return set_menu_to_mode(MENU_RUN_STAGE, 1); +} +#else +GLOBAL_ASM( +.text +glabel replay_recorded_ramrom_at_address +/* 0F534C 7F0C081C 3C038009 */ lui $v1, %hi(address_demo_loaded) +/* 0F5350 7F0C0820 2463C5F4 */ addiu $v1, %lo(address_demo_loaded) # addiu $v1, $v1, -0x3a0c +/* 0F5354 7F0C0824 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5358 7F0C0828 AC640000 */ sw $a0, ($v1) +/* 0F535C 7F0C082C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5360 7F0C0830 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F5364 7F0C0834 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F5368 7F0C0838 8C650000 */ lw $a1, ($v1) +/* 0F536C 7F0C083C 0C001711 */ jal romCopyAligned +/* 0F5370 7F0C0840 240600E8 */ li $a2, 232 +/* 0F5374 7F0C0844 3C038009 */ lui $v1, %hi(address_demo_loaded) +/* 0F5378 7F0C0848 2463C5F4 */ addiu $v1, %lo(address_demo_loaded) # addiu $v1, $v1, -0x3a0c +/* 0F537C 7F0C084C 8C6E0000 */ lw $t6, ($v1) +/* 0F5380 7F0C0850 3C058005 */ lui $a1, %hi(ptr_active_demofile) +/* 0F5384 7F0C0854 24A58468 */ addiu $a1, %lo(ptr_active_demofile) # addiu $a1, $a1, -0x7b98 +/* 0F5388 7F0C0858 25CF00E8 */ addiu $t7, $t6, 0xe8 +/* 0F538C 7F0C085C ACA20000 */ sw $v0, ($a1) +/* 0F5390 7F0C0860 AC6F0000 */ sw $t7, ($v1) +/* 0F5394 7F0C0864 24180001 */ li $t8, 1 +/* 0F5398 7F0C0868 3C018005 */ lui $at, %hi(ramrom_demo_related_4) +/* 0F539C 7F0C086C AC38847C */ sw $t8, %lo(ramrom_demo_related_4)($at) +/* 0F53A0 7F0C0870 8CB90000 */ lw $t9, ($a1) +/* 0F53A4 7F0C0874 0FC0757B */ jal set_solo_and_ptr_briefing +/* 0F53A8 7F0C0878 8F240010 */ lw $a0, 0x10($t9) +/* 0F53AC 7F0C087C 3C088005 */ lui $t0, %hi(ptr_active_demofile) +/* 0F53B0 7F0C0880 8D088468 */ lw $t0, %lo(ptr_active_demofile)($t0) +/* 0F53B4 7F0C0884 0FC07567 */ jal set_selected_difficulty +/* 0F53B8 7F0C0888 8D040014 */ lw $a0, 0x14($t0) +/* 0F53BC 7F0C088C 2404000B */ li $a0, 11 +/* 0F53C0 7F0C0890 0FC06975 */ jal set_menu_to_mode +/* 0F53C4 7F0C0894 24050001 */ li $a1, 1 +/* 0F53C8 7F0C0898 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F53CC 7F0C089C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F53D0 7F0C08A0 03E00008 */ jr $ra +/* 0F53D4 7F0C08A4 00000000 */ nop +) +#endif + + + + + +void replay_recorded_ramrom_from_indy(void) +{ + replay_recorded_ramrom_at_address(0xf00000); +} + +void ensureCameraModeA(void) +{ + if (get_camera_mode() != UNK10_CAM) + { + set_camera_mode(UNK10_CAM); + } +} + + + + + + +#ifdef NONMATCHING +void stop_demo_playback(void) +{ + if (ramrom_demo_related_6 == 0) { + if (ramrom_demo_related_3 != 0) { + copy_recorded_ramrom_registers_to_proper_place_ingame(&ramromsettingsbackup); + set_disable_all_rumble_and_something(0,0xffffffff); + controller_7000C930(0); + ramrom_demo_related_3 = 0; + is_ramrom_flag = 0; + } + } + else { + stop_recording_ramrom(); + } +} +#else +GLOBAL_ASM( +.text +glabel stop_demo_playback +/* 0F542C 7F0C08FC 3C0E8005 */ lui $t6, %hi(ramrom_demo_related_6) +/* 0F5430 7F0C0900 8DCE8484 */ lw $t6, %lo(ramrom_demo_related_6)($t6) +/* 0F5434 7F0C0904 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5438 7F0C0908 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F543C 7F0C090C 11C00005 */ beqz $t6, .L7F0C0924 +/* 0F5440 7F0C0910 3C0F8005 */ lui $t7, %hi(ramrom_demo_related_3) +/* 0F5444 7F0C0914 0FC301F5 */ jal stop_recording_ramrom +/* 0F5448 7F0C0918 00000000 */ nop +/* 0F544C 7F0C091C 10000011 */ b .L7F0C0964 +/* 0F5450 7F0C0920 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0924: +/* 0F5454 7F0C0924 8DEF8478 */ lw $t7, %lo(ramrom_demo_related_3)($t7) +/* 0F5458 7F0C0928 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x110) +/* 0F545C 7F0C092C 51E0000D */ beql $t7, $zero, .L7F0C0964 +/* 0F5460 7F0C0930 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5464 7F0C0934 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F5468 7F0C0938 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80 +/* 0F546C 7F0C093C 00002025 */ move $a0, $zero +/* 0F5470 7F0C0940 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F5474 7F0C0944 2405FFFF */ li $a1, -1 +/* 0F5478 7F0C0948 0C00324C */ jal controller_7000C930 +/* 0F547C 7F0C094C 00002025 */ move $a0, $zero +/* 0F5480 7F0C0950 3C018005 */ lui $at, %hi(ramrom_demo_related_3) +/* 0F5484 7F0C0954 AC208478 */ sw $zero, %lo(ramrom_demo_related_3)($at) +/* 0F5488 7F0C0958 3C018005 */ lui $at, %hi(is_ramrom_flag) +/* 0F548C 7F0C095C AC208474 */ sw $zero, %lo(is_ramrom_flag)($at) +/* 0F5490 7F0C0960 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0964: +/* 0F5494 7F0C0964 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5498 7F0C0968 03E00008 */ jr $ra +/* 0F549C 7F0C096C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void select_ramrom_to_play(void) { + +} +#else +GLOBAL_ASM( +.text +glabel select_ramrom_to_play +/* 0F54A0 7F0C0970 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F54A4 7F0C0974 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F54A8 7F0C0978 0FC07A66 */ jal check_egypt_completed_any_folder +/* 0F54AC 7F0C097C 00000000 */ nop +/* 0F54B0 7F0C0980 3C0E8005 */ lui $t6, %hi(ramrom_table) +/* 0F54B4 7F0C0984 8DCE83F0 */ lw $t6, %lo(ramrom_table)($t6) +/* 0F54B8 7F0C0988 00402025 */ move $a0, $v0 +/* 0F54BC 7F0C098C 00001825 */ move $v1, $zero +/* 0F54C0 7F0C0990 11C00011 */ beqz $t6, .L7F0C09D8 +/* 0F54C4 7F0C0994 3C0F8005 */ lui $t7, %hi(ramrom_table + 0x4) +/* 0F54C8 7F0C0998 8DEF83F4 */ lw $t7, %lo(ramrom_table + 0x4)($t7) +/* 0F54CC 7F0C099C 3C198005 */ lui $t9, %hi(ramrom_table) +/* 0F54D0 7F0C09A0 273983F0 */ addiu $t9, %lo(ramrom_table) # addiu $t9, $t9, -0x7c10 +/* 0F54D4 7F0C09A4 004F082A */ slt $at, $v0, $t7 +/* 0F54D8 7F0C09A8 1420000B */ bnez $at, .L7F0C09D8 +/* 0F54DC 7F0C09AC 0003C0C0 */ sll $t8, $v1, 3 +/* 0F54E0 7F0C09B0 03191021 */ addu $v0, $t8, $t9 +/* 0F54E4 7F0C09B4 8C480008 */ lw $t0, 8($v0) +.L7F0C09B8: +/* 0F54E8 7F0C09B8 24630001 */ addiu $v1, $v1, 1 +/* 0F54EC 7F0C09BC 24420008 */ addiu $v0, $v0, 8 +/* 0F54F0 7F0C09C0 11000005 */ beqz $t0, .L7F0C09D8 +/* 0F54F4 7F0C09C4 00000000 */ nop +/* 0F54F8 7F0C09C8 8C490004 */ lw $t1, 4($v0) +/* 0F54FC 7F0C09CC 0089082A */ slt $at, $a0, $t1 +/* 0F5500 7F0C09D0 5020FFF9 */ beql $at, $zero, .L7F0C09B8 +/* 0F5504 7F0C09D4 8C480008 */ lw $t0, 8($v0) +.L7F0C09D8: +/* 0F5508 7F0C09D8 0C002914 */ jal get_random_value +/* 0F550C 7F0C09DC AFA3001C */ sw $v1, 0x1c($sp) +/* 0F5510 7F0C09E0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F5514 7F0C09E4 3C048005 */ lui $a0, %hi(ramrom_table) +/* 0F5518 7F0C09E8 0043001B */ divu $zero, $v0, $v1 +/* 0F551C 7F0C09EC 00005010 */ mfhi $t2 +/* 0F5520 7F0C09F0 000A58C0 */ sll $t3, $t2, 3 +/* 0F5524 7F0C09F4 008B2021 */ addu $a0, $a0, $t3 +/* 0F5528 7F0C09F8 14600002 */ bnez $v1, .L7F0C0A04 +/* 0F552C 7F0C09FC 00000000 */ nop +/* 0F5530 7F0C0A00 0007000D */ break 7 +.L7F0C0A04: +/* 0F5534 7F0C0A04 8C8483F0 */ lw $a0, %lo(ramrom_table)($a0) +/* 0F5538 7F0C0A08 0FC30207 */ jal replay_recorded_ramrom_at_address +/* 0F553C 7F0C0A0C 00000000 */ nop +/* 0F5540 7F0C0A10 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5544 7F0C0A14 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F5548 7F0C0A18 03E00008 */ jr $ra +/* 0F554C 7F0C0A1C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 check_ramrom_flags(void) +{ + if ((get_is_ramrom_flag() == 0) && (get_recording_ramrom_flag() == 0)) + { + return 0; + } + else + { + return *(undefined4 *)(ptr_active_demofile + 0x88); + } +} +#else +GLOBAL_ASM( +.text +glabel check_ramrom_flags +/* 0F5550 7F0C0A20 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5554 7F0C0A24 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5558 7F0C0A28 0FC2FF23 */ jal get_is_ramrom_flag +/* 0F555C 7F0C0A2C 00000000 */ nop +/* 0F5560 7F0C0A30 14400004 */ bnez $v0, .L7F0C0A44 +/* 0F5564 7F0C0A34 00000000 */ nop +/* 0F5568 7F0C0A38 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0F556C 7F0C0A3C 00000000 */ nop +/* 0F5570 7F0C0A40 10400004 */ beqz $v0, .L7F0C0A54 +.L7F0C0A44: +/* 0F5574 7F0C0A44 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F5578 7F0C0A48 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F557C 7F0C0A4C 10000002 */ b .L7F0C0A58 +/* 0F5580 7F0C0A50 8DC20088 */ lw $v0, 0x88($t6) +.L7F0C0A54: +/* 0F5584 7F0C0A54 00001025 */ move $v0, $zero +.L7F0C0A58: +/* 0F5588 7F0C0A58 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F558C 7F0C0A5C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5590 7F0C0A60 03E00008 */ jr $ra +/* 0F5594 7F0C0A64 00000000 */ nop +) +#endif + + + diff --git a/src/game/room_model_buffer.c b/src/game/room_model_buffer.c new file mode 100644 index 0000000..868d21e --- /dev/null +++ b/src/game/room_model_buffer.c @@ -0,0 +1,8 @@ +#include "ultra64.h" + +//TODO this is not correct size afaik, but it fills a gap this way +//shrinking slightly from 0x271CA0 to allow some room for shifting, +// eventually we will know real sizes and other buffers + +//due to where tlb allocated block buffer starts, i have reduced value again +u8 room_model_buffer[0x267CA0]; diff --git a/src/game/room_model_buffer.h b/src/game/room_model_buffer.h new file mode 100644 index 0000000..a1d558a --- /dev/null +++ b/src/game/room_model_buffer.h @@ -0,0 +1,7 @@ +#ifndef _ROOM_MODEL_BUFFER_H_ +#define _ROOM_MODEL_BUFFER_H_ +#include "ultra64.h" + +extern u8 room_model_buffer[]; + +#endif diff --git a/src/game/rsp.c b/src/game/rsp.c new file mode 100644 index 0000000..3375952 --- /dev/null +++ b/src/game/rsp.c @@ -0,0 +1,179 @@ +#include "ultra64.h" + +// bss +char dword_CODE_bss_8008D370[0x400]; +char dword_CODE_bss_8008D770[0xBA0]; + + + +s32 D_8004E9E0 = 0; +s32 D_8004E9E4 = 0; +s32 D_8004E9E8 = 0; +s32 D_8004E9EC = 0; +//make me a struct +//D:8004E9F0 +u32 fast3d_related_0[] = { + 0, 0, 0, 0, 1, 2, 0, 0, 0, 0x1000, 0, 0x800, dword_CODE_bss_8008D370,0x400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//im another instance of above struct +//D:8004EA50 +u32 fast3d_related_1[] = { + 0, 0, 0, 0, 1, 2, 0, 0, 0, 0x1000, 0, 0x800, dword_CODE_bss_8008D370,0x400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//D:8004EAB0 +u32 *fast3d_related_array = &fast3d_related_0; + + + + +void rspInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_8004E9E0, "rsp_c_debug"); +} + + + + + + +#ifdef NONMATCHING +void allocate_init_rsp_buffers(void) + +{ + ptr_rsp_buffer_start = mempAllocBytesInBank(0xa000,'\x06'); + ptr_rspbuffer_end = ptr_rsp_buffer_start + 0xa000; + return; +} + +#else +GLOBAL_ASM( +.text +glabel allocate_init_rsp_buffers +/* 10490C 7F0CFDDC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104910 7F0CFDE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 104914 7F0CFDE4 3404A000 */ li $a0, 40960 +/* 104918 7F0CFDE8 0C0025C8 */ jal mempAllocBytesInBank +/* 10491C 7F0CFDEC 24050006 */ li $a1, 6 +/* 104920 7F0CFDF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104924 7F0CFDF4 3C038005 */ lui $v1, %hi(D_8004E9E8) +/* 104928 7F0CFDF8 3401A000 */ li $at, 40960 +/* 10492C 7F0CFDFC 2463E9E8 */ addiu $v1, %lo(D_8004E9E8) # addiu $v1, $v1, -0x1618 +/* 104930 7F0CFE00 00417821 */ addu $t7, $v0, $at +/* 104934 7F0CFE04 AC620000 */ sw $v0, ($v1) +/* 104938 7F0CFE08 3C018005 */ lui $at, %hi(D_8004E9E4) +/* 10493C 7F0CFE0C AC2FE9E4 */ sw $t7, %lo(D_8004E9E4)($at) +/* 104940 7F0CFE10 03E00008 */ jr $ra +/* 104944 7F0CFE14 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void *load_rsp_microcode(s32 arg0, s32 arg1, ? arg2, ?32 arg3) { + void *temp_v0; + + // Node 0 + fast3d_related_array->unk18 = &rspbootTextStart; + fast3d_related_array->unk1C = (s32) (&gsp3DTextStart - &rspbootTextStart); + temp_v0 = (fast3d_related_array + 0x10); + temp_v0->unk10 = &gsp3DTextStart; + temp_v0->unk18 = &gsp3DDataStart; + temp_v0->unk28 = (?32) D_8004E9E8; + temp_v0->unk30 = arg0; + temp_v0->unk34 = (s32) (((s32) (arg1 - arg0) >> 3) * 8); + temp_v0->unk38 = &dword_CODE_bss_8008D770; + temp_v0->unk3C = 0xba0; + temp_v0->unk2C = (?32) D_8004E9E4; + *fast3d_related_array = 0; + fast3d_related_array->unk8 = 0x63; + fast3d_related_array->unk50 = &gfxFrameMsgQ; + fast3d_related_array->unk54 = arg3; + fast3d_related_array->unkC = (?32) fast3d_related_array->unk58; + osWritebackDCacheAll(); + osSendMesg(mq, fast3d_related_array, 1); + fast3d_related_array = (void *) (((s32) fast3d_related_array ^ &fast3d_related_0) ^ &fast3d_related_1); + return; + // (possible return value: &fast3d_related_array) +} + +#else +GLOBAL_ASM( +.text +glabel load_rsp_microcode +/* 104948 7F0CFE18 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 10494C 7F0CFE1C 3C038005 */ lui $v1, %hi(fast3d_related_array) +/* 104950 7F0CFE20 2463EAB0 */ addiu $v1, %lo(fast3d_related_array) # addiu $v1, $v1, -0x1550 +/* 104954 7F0CFE24 AFB00018 */ sw $s0, 0x18($sp) +/* 104958 7F0CFE28 8C700000 */ lw $s0, ($v1) +/* 10495C 7F0CFE2C 3C028002 */ lui $v0, %hi(rspbootTextStart) +/* 104960 7F0CFE30 3C0E8002 */ lui $t6, %hi(gsp3DTextStart) +/* 104964 7F0CFE34 24420D90 */ addiu $v0, %lo(rspbootTextStart) # addiu $v0, $v0, 0xd90 +/* 104968 7F0CFE38 25CE0E60 */ addiu $t6, %lo(gsp3DTextStart) # addiu $t6, $t6, 0xe60 +/* 10496C 7F0CFE3C AFBF001C */ sw $ra, 0x1c($sp) +/* 104970 7F0CFE40 AFA60028 */ sw $a2, 0x28($sp) +/* 104974 7F0CFE44 01C27823 */ subu $t7, $t6, $v0 +/* 104978 7F0CFE48 AE020018 */ sw $v0, 0x18($s0) +/* 10497C 7F0CFE4C 3C188002 */ lui $t8, %hi(gsp3DTextStart) +/* 104980 7F0CFE50 3C198006 */ lui $t9, %hi(gsp3DDataStart) +/* 104984 7F0CFE54 AE0F001C */ sw $t7, 0x1c($s0) +/* 104988 7F0CFE58 26020010 */ addiu $v0, $s0, 0x10 +/* 10498C 7F0CFE5C 27180E60 */ addiu $t8, %lo(gsp3DTextStart) # addiu $t8, $t8, 0xe60 +/* 104990 7F0CFE60 2739C820 */ addiu $t9, %lo(gsp3DDataStart) # addiu $t9, $t9, -0x37e0 +/* 104994 7F0CFE64 AC580010 */ sw $t8, 0x10($v0) +/* 104998 7F0CFE68 AC590018 */ sw $t9, 0x18($v0) +/* 10499C 7F0CFE6C 3C088005 */ lui $t0, %hi(D_8004E9E8) +/* 1049A0 7F0CFE70 8D08E9E8 */ lw $t0, %lo(D_8004E9E8)($t0) +/* 1049A4 7F0CFE74 3C098005 */ lui $t1, %hi(D_8004E9E4) +/* 1049A8 7F0CFE78 00A45023 */ subu $t2, $a1, $a0 +/* 1049AC 7F0CFE7C AC480028 */ sw $t0, 0x28($v0) +/* 1049B0 7F0CFE80 8D29E9E4 */ lw $t1, %lo(D_8004E9E4)($t1) +/* 1049B4 7F0CFE84 000A58C3 */ sra $t3, $t2, 3 +/* 1049B8 7F0CFE88 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D770) +/* 1049BC 7F0CFE8C 000B60C0 */ sll $t4, $t3, 3 +/* 1049C0 7F0CFE90 25ADD770 */ addiu $t5, %lo(dword_CODE_bss_8008D770) # addiu $t5, $t5, -0x2890 +/* 1049C4 7F0CFE94 240E0BA0 */ li $t6, 2976 +/* 1049C8 7F0CFE98 AC440030 */ sw $a0, 0x30($v0) +/* 1049CC 7F0CFE9C AC4C0034 */ sw $t4, 0x34($v0) +/* 1049D0 7F0CFEA0 AC4D0038 */ sw $t5, 0x38($v0) +/* 1049D4 7F0CFEA4 AC4E003C */ sw $t6, 0x3c($v0) +/* 1049D8 7F0CFEA8 AC49002C */ sw $t1, 0x2c($v0) +/* 1049DC 7F0CFEAC 3C188006 */ lui $t8, %hi(gfxFrameMsgQ) +/* 1049E0 7F0CFEB0 240F0063 */ li $t7, 99 +/* 1049E4 7F0CFEB4 2718D9A0 */ addiu $t8, %lo(gfxFrameMsgQ) # addiu $t8, $t8, -0x2660 +/* 1049E8 7F0CFEB8 AE000000 */ sw $zero, ($s0) +/* 1049EC 7F0CFEBC AE0F0008 */ sw $t7, 8($s0) +/* 1049F0 7F0CFEC0 AE180050 */ sw $t8, 0x50($s0) +/* 1049F4 7F0CFEC4 AE070054 */ sw $a3, 0x54($s0) +/* 1049F8 7F0CFEC8 8C790000 */ lw $t9, ($v1) +/* 1049FC 7F0CFECC 8F280058 */ lw $t0, 0x58($t9) +/* 104A00 7F0CFED0 0C0034C8 */ jal osWritebackDCacheAll +/* 104A04 7F0CFED4 AE08000C */ sw $t0, 0xc($s0) +/* 104A08 7F0CFED8 3C048006 */ lui $a0, %hi(sched_cmdQ) +/* 104A0C 7F0CFEDC 8C84DA38 */ lw $a0, %lo(sched_cmdQ)($a0) +/* 104A10 7F0CFEE0 02002825 */ move $a1, $s0 +/* 104A14 7F0CFEE4 0C0037C4 */ jal osSendMesg +/* 104A18 7F0CFEE8 24060001 */ li $a2, 1 +/* 104A1C 7F0CFEEC 3C028005 */ lui $v0, %hi(fast3d_related_array) +/* 104A20 7F0CFEF0 2442EAB0 */ addiu $v0, %lo(fast3d_related_array) # addiu $v0, $v0, -0x1550 +/* 104A24 7F0CFEF4 8C490000 */ lw $t1, ($v0) +/* 104A28 7F0CFEF8 3C0A8005 */ lui $t2, %hi(fast3d_related_0) +/* 104A2C 7F0CFEFC 8FBF001C */ lw $ra, 0x1c($sp) +/* 104A30 7F0CFF00 254AE9F0 */ addiu $t2, %lo(fast3d_related_0) # addiu $t2, $t2, -0x1610 +/* 104A34 7F0CFF04 3C0C8005 */ lui $t4, %hi(fast3d_related_1) +/* 104A38 7F0CFF08 258CEA50 */ addiu $t4, %lo(fast3d_related_1) # addiu $t4, $t4, -0x15b0 +/* 104A3C 7F0CFF0C 012A5826 */ xor $t3, $t1, $t2 +/* 104A40 7F0CFF10 016C6826 */ xor $t5, $t3, $t4 +/* 104A44 7F0CFF14 8FB00018 */ lw $s0, 0x18($sp) +/* 104A48 7F0CFF18 AC4D0000 */ sw $t5, ($v0) +/* 104A4C 7F0CFF1C 03E00008 */ jr $ra +/* 104A50 7F0CFF20 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + diff --git a/src/game/rsp.h b/src/game/rsp.h new file mode 100644 index 0000000..17b432c --- /dev/null +++ b/src/game/rsp.h @@ -0,0 +1,7 @@ +#ifndef _RSP_H_ +#define _RSP_H_ +#include "ultra64.h" + +void rspInitDebugNoticeList(void); + +#endif diff --git a/src/game/setguscale.c b/src/game/setguscale.c new file mode 100644 index 0000000..5a3baf0 --- /dev/null +++ b/src/game/setguscale.c @@ -0,0 +1,7 @@ +#include "ultra64.h" +#include "game/unk_09C250.h" + +void set_gu_scale(void) { + guScale((Mtx *)&dword_CODE_bss_8007A100, 0.1f, 0.1f, 0.1f); +} + diff --git a/src/game/sin.c b/src/game/sin.c new file mode 100644 index 0000000..97dea34 --- /dev/null +++ b/src/game/sin.c @@ -0,0 +1,139 @@ +#include "ultra64.h" + + +//these are actaully clever shared asm +//!FIXME move to asm file + + + + +#ifdef NONMATCHING +void cosf(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel cosf +/* 08C9D0 7F057EA0 3C018005 */ lui $at, %hi(D_800536C0) +/* 08C9D4 7F057EA4 C42A36C0 */ lwc1 $f10, %lo(D_800536C0)($at) +/* 08C9D8 7F057EA8 460A6300 */ add.s $f12, $f12, $f10 +) +#endif + + + + + +#ifdef NONMATCHING +void sinf(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800536C0 +.word 0x3fc90fda /*1.5707963*/ +glabel D_800536C4 +.word 0x362edef8 /*0.0000026057805*/ +glabel D_800536C8 +.word 0xb94fb7ff /*-0.00019809602*/ +glabel D_800536CC +.word 0x3c08876a /*0.0083330665*/ +glabel D_800536D0 +.word 0xbe2aaaa6 /*-0.1666666*/ +glabel D_800536D4 +.word 0x3ea2f983 /*0.31830987*/ +glabel D_800536D8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800536DC +.word 0x330885a3 /*3.178650856*/ +glabel D_800536E0 +.word 0x362edef8 /*0.0000026057805*/ +glabel D_800536E4 +.word 0xb94fb7ff /*-0.00019809602*/ +glabel D_800536E8 +.word 0x3c08876a /*0.0083330665*/ +glabel D_800536EC +.word 0xbe2aaaa6 /*-0.1666666*/ +.text +glabel sinf +/* 08C9DC 7F057EAC 44086000 */ mfc1 $t0, $f12 +/* 08C9E0 7F057EB0 00000000 */ nop +/* 08C9E4 7F057EB4 00084583 */ sra $t0, $t0, 0x16 +/* 08C9E8 7F057EB8 310801FF */ andi $t0, $t0, 0x1ff +/* 08C9EC 7F057EBC 290100FF */ slti $at, $t0, 0xff +/* 08C9F0 7F057EC0 10200019 */ beqz $at, .L7F057F28 +/* 08C9F4 7F057EC4 00000000 */ nop +/* 08C9F8 7F057EC8 290100E6 */ slti $at, $t0, 0xe6 +/* 08C9FC 7F057ECC 1420003D */ bnez $at, .L7F057FC4 +/* 08CA00 7F057ED0 46006006 */ mov.s $f0, $f12 +/* 08CA04 7F057ED4 460C6402 */ mul.s $f16, $f12, $f12 +/* 08CA08 7F057ED8 3C018005 */ lui $at, %hi(D_800536C4) +/* 08CA0C 7F057EDC C43236C4 */ lwc1 $f18, %lo(D_800536C4)($at) +/* 08CA10 7F057EE0 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA14 7F057EE4 3C018005 */ lui $at, %hi(D_800536C8) +/* 08CA18 7F057EE8 C42A36C8 */ lwc1 $f10, %lo(D_800536C8)($at) +/* 08CA1C 7F057EEC 46125480 */ add.s $f18, $f10, $f18 +/* 08CA20 7F057EF0 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA24 7F057EF4 3C018005 */ lui $at, %hi(D_800536CC) +/* 08CA28 7F057EF8 C42A36CC */ lwc1 $f10, %lo(D_800536CC)($at) +/* 08CA2C 7F057EFC 46125480 */ add.s $f18, $f10, $f18 +/* 08CA30 7F057F00 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA34 7F057F04 3C018005 */ lui $at, %hi(D_800536D0) +/* 08CA38 7F057F08 C42A36D0 */ lwc1 $f10, %lo(D_800536D0)($at) +/* 08CA3C 7F057F0C 46125480 */ add.s $f18, $f10, $f18 +/* 08CA40 7F057F10 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA44 7F057F14 00000000 */ nop +/* 08CA48 7F057F18 460C9482 */ mul.s $f18, $f18, $f12 +/* 08CA4C 7F057F1C 460C9000 */ add.s $f0, $f18, $f12 +/* 08CA50 7F057F20 0BC15FF1 */ j .L7F057FC4 +/* 08CA54 7F057F24 00000000 */ nop + +.L7F057F28: +/* 08CA58 7F057F28 29010136 */ slti $at, $t0, 0x136 +/* 08CA5C 7F057F2C 50200025 */ beql $at, $zero, .L7F057FC4 +/* 08CA60 7F057F30 44800000 */ mtc1 $zero, $f0 +/* 08CA64 7F057F34 3C018005 */ lui $at, %hi(D_800536D4) +/* 08CA68 7F057F38 C43036D4 */ lwc1 $f16, %lo(D_800536D4)($at) +/* 08CA6C 7F057F3C 460C8402 */ mul.s $f16, $f16, $f12 +/* 08CA70 7F057F40 4600840C */ round.w.s $f16, $f16 +/* 08CA74 7F057F44 44098000 */ mfc1 $t1, $f16 +/* 08CA78 7F057F48 46808420 */ cvt.s.w $f16, $f16 +/* 08CA7C 7F057F4C 3C018005 */ lui $at, %hi(D_800536D8) +/* 08CA80 7F057F50 C43236D8 */ lwc1 $f18, %lo(D_800536D8)($at) +/* 08CA84 7F057F54 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA88 7F057F58 46126301 */ sub.s $f12, $f12, $f18 +/* 08CA8C 7F057F5C 3C018005 */ lui $at, %hi(D_800536DC) +/* 08CA90 7F057F60 C43236DC */ lwc1 $f18, %lo(D_800536DC)($at) +/* 08CA94 7F057F64 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA98 7F057F68 46126301 */ sub.s $f12, $f12, $f18 +/* 08CA9C 7F057F6C 460C6402 */ mul.s $f16, $f12, $f12 +/* 08CAA0 7F057F70 3C018005 */ lui $at, %hi(D_800536E0) +/* 08CAA4 7F057F74 C43236E0 */ lwc1 $f18, %lo(D_800536E0)($at) +/* 08CAA8 7F057F78 46109482 */ mul.s $f18, $f18, $f16 +/* 08CAAC 7F057F7C 3C018005 */ lui $at, %hi(D_800536E4) +/* 08CAB0 7F057F80 C42A36E4 */ lwc1 $f10, %lo(D_800536E4)($at) +/* 08CAB4 7F057F84 46125480 */ add.s $f18, $f10, $f18 +/* 08CAB8 7F057F88 46109482 */ mul.s $f18, $f18, $f16 +/* 08CABC 7F057F8C 3C018005 */ lui $at, %hi(D_800536E8) +/* 08CAC0 7F057F90 C42A36E8 */ lwc1 $f10, %lo(D_800536E8)($at) +/* 08CAC4 7F057F94 46125480 */ add.s $f18, $f10, $f18 +/* 08CAC8 7F057F98 46109482 */ mul.s $f18, $f18, $f16 +/* 08CACC 7F057F9C 3C018005 */ lui $at, %hi(D_800536EC) +/* 08CAD0 7F057FA0 C42A36EC */ lwc1 $f10, %lo(D_800536EC)($at) +/* 08CAD4 7F057FA4 46125480 */ add.s $f18, $f10, $f18 +/* 08CAD8 7F057FA8 46109482 */ mul.s $f18, $f18, $f16 +/* 08CADC 7F057FAC 00000000 */ nop +/* 08CAE0 7F057FB0 460C9482 */ mul.s $f18, $f18, $f12 +/* 08CAE4 7F057FB4 460C9000 */ add.s $f0, $f18, $f12 +/* 08CAE8 7F057FB8 31290001 */ andi $t1, $t1, 1 +/* 08CAEC 7F057FBC 55200001 */ bnezl $t1, .L7F057FC4 +/* 08CAF0 7F057FC0 46000007 */ neg.s $f0, $f0 +.L7F057FC4: +/* 08CAF4 7F057FC4 03E00008 */ jr $ra +/* 08CAF8 7F057FC8 00000000 */ nop +) +#endif diff --git a/src/game/spectrum.c b/src/game/spectrum.c new file mode 100644 index 0000000..0983077 --- /dev/null +++ b/src/game/spectrum.c @@ -0,0 +1,18561 @@ +#include "ultra64.h" + +// bss +s32 ptr_sectrum_monitor_data_temp_buf; +s32 ptr_sectrum_game_data_temp_buf; +s32 ptr_spectrum_roms; +s32 ptr_300alloc; +s32 ptr_6000alloc; +s32 ptr_pc_keyboard_table_alloc; +s8 spectrum_header16_15; +s8 byte_CODE_bss_8008E339; +s8 byte_CODE_bss_8008E33A; +s8 byte_CODE_bss_8008E33B; +s8 off_CODE_bss_8008E33C; +s8 byte_CODE_bss_8008E33D; +s8 byte_CODE_bss_8008E33E; +s8 byte_CODE_bss_8008E33F; +s8 off_CODE_bss_8008E340; +s8 byte_CODE_bss_8008E341; +s8 byte_CODE_bss_8008E342; +s8 byte_CODE_bss_8008E343; +s8 off_CODE_bss_8008E344; +s8 byte_CODE_bss_8008E345; +s8 byte_CODE_bss_8008E346; +s8 byte_CODE_bss_8008E347; +s8 spec_I; +s8 byte_CODE_bss_8008E349; +s8 spec_IFF2_lower; +s8 spec_IFF2_upper; +s8 spec_IM; +s8 byte_CODE_bss_8008E34D; +s16 spec_IX; +s16 spec_IY; +s16 spec_SP; +s16 spec_PC; + + +// data +s8 D_8004EC30 = 0x0; +s8 D_8004EC34[] = {0xFF, 0xFF, 0xFF, 0xFF}; + +s8 D_8004EC38[] = {0xFF, 0xFF, 0xFF, 0xFF}; + +s8 D_8004EC3C[] = {0xFF, 0x0, 0x0, 0x0}; + +s16 D_8004EC40[] = { + 0, 0, 0x7FE, 0x3FE, 0x3FD, 0x3FB, 0x3F7, 0x3EF, 0x4F7, 0x3FD, + 0x4FD, 0x4FE, 0x4FB, 0x6FB, 0x7F7, 0x6F7, 0x8FB, 0xEF, 0x4FE, 0x3FE, + 0x3FD, 0x3FB, 0x3F7, 0x3EF, 0x4EF, 0x4F7, 0x4FB, 0x4FD, 0xFD, 0x5FD, + 0x7F7, 0x6FB, 0x8FB, 0xEF, 0x3FD, 0x1FE, 0x7EF, 0xF7, 0x1FB, 0x2FB, + 0x1F7, 0x1EF, 0x6EF, 0x5FB, 0x6F7, 0x6FB, 0x6FD, 0x7FB, 0x7F7, 0x5FD, + 0x5FE, 0x2FE, 0x2F7, 0x1FD, 0x2EF, 0x5F7, 0xEF, 0x2FD, 0xFB, 0x5EF, + 0xFD, 0x8FF, 0x8FF, 0x8FF, 0x4EF, 0x6F7, 0x8FF, 0x1FE, 0x7EF, 0xF7, + 0x1FB, 0x2FB, 0x1F7, 0x1EF, 0x6EF, 0x5FB, 0x6F7, 0x6FB, 0x6FD, 0x7FB, + 0x7F7, 0x5FD, 0x5FE, 0x2FE, 0x2F7, 0x1FD, 0x2EF, 0x5F7, 0xEF, 0x2FD, + 0xFB, 0x5EF, 0xFD, 0x8FF, 0x8FF, 0x8FF, 0x8FF, 0x8FF, 0, 0 +}; + +s32 D_8004ED08 = 0; + +s16 D_8004ED0C[] = { + 1, 0x21,0x8001,0x8021, 0x401, 0x421,0x8401,0x8421, + 1, 0x3F,0xF801,0xF83F, 0x7C1, 0x7FF,0xFFC1,0xFFFF +}; +// +char* romnames[] = { + "em/data/sabre.seg.rz", + "em/data/atic.seg.rz", + "em/data/jetpac.seg.rz", + "em/data/jetman.seg.rz", + "em/data/alien8.seg.rz", + "em/data/gunfright.seg.rz", + "em/data/under.seg.rz", + "em/data/knightlore.seg.rz", + "em/data/pssst.seg.rz", + "em/data/cookie.seg.rz" +}; + +u32 D_8004ED54[] = {0x7000000, 0x0,0xFF000000,0xFF000000}; + +// rodata +//8005C114 +const char aEmDataSpec_rom_seg_rz[] = "em/data/spec_rom.seg.rz"; + + + +#ifdef NONMATCHING +void sub_GAME_7F0D28E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D28E0 +/* 107410 7F0D28E0 0006C200 */ sll $t8, $a2, 8 +/* 107414 7F0D28E4 33190700 */ andi $t9, $t8, 0x700 +/* 107418 7F0D28E8 00067140 */ sll $t6, $a2, 5 +/* 10741C 7F0D28EC 31CF1800 */ andi $t7, $t6, 0x1800 +/* 107420 7F0D28F0 00061880 */ sll $v1, $a2, 2 +/* 107424 7F0D28F4 01F95825 */ or $t3, $t7, $t9 +/* 107428 7F0D28F8 000540C3 */ sra $t0, $a1, 3 +/* 10742C 7F0D28FC 307803E0 */ andi $t8, $v1, 0x3e0 +/* 107430 7F0D2900 27BDFFF8 */ addiu $sp, $sp, -8 +/* 107434 7F0D2904 03087821 */ addu $t7, $t8, $t0 +/* 107438 7F0D2908 AFB00004 */ sw $s0, 4($sp) +/* 10743C 7F0D290C 01E4C821 */ addu $t9, $t7, $a0 +/* 107440 7F0D2910 93291800 */ lbu $t1, 0x1800($t9) +/* 107444 7F0D2914 306C00E0 */ andi $t4, $v1, 0xe0 +/* 107448 7F0D2918 016C6825 */ or $t5, $t3, $t4 +/* 10744C 7F0D291C 01A87025 */ or $t6, $t5, $t0 +/* 107450 7F0D2920 312B0080 */ andi $t3, $t1, 0x80 +/* 107454 7F0D2924 00E08025 */ move $s0, $a3 +/* 107458 7F0D2928 01C41021 */ addu $v0, $t6, $a0 +/* 10745C 7F0D292C 1160000A */ beqz $t3, .L7F0D2958 +/* 107460 7F0D2930 01205025 */ move $t2, $t1 +/* 107464 7F0D2934 3C0C8005 */ lui $t4, %hi(D_8004EC40+0xC4) +/* 107468 7F0D2938 918CED04 */ lbu $t4, %lo(D_8004EC40+0xC4)($t4) +/* 10746C 7F0D293C 01201825 */ move $v1, $t1 +/* 107470 7F0D2940 306D0007 */ andi $t5, $v1, 7 +/* 107474 7F0D2944 11800004 */ beqz $t4, .L7F0D2958 +/* 107478 7F0D2948 01A01825 */ move $v1, $t5 +/* 10747C 7F0D294C 000970C3 */ sra $t6, $t1, 3 +/* 107480 7F0D2950 10000006 */ b .L7F0D296C +/* 107484 7F0D2954 31C40007 */ andi $a0, $t6, 7 +.L7F0D2958: +/* 107488 7F0D2958 01402025 */ move $a0, $t2 +/* 10748C 7F0D295C 308F0007 */ andi $t7, $a0, 7 +/* 107490 7F0D2960 000AC8C3 */ sra $t9, $t2, 3 +/* 107494 7F0D2964 01E02025 */ move $a0, $t7 +/* 107498 7F0D2968 33230007 */ andi $v1, $t9, 7 +.L7F0D296C: +/* 10749C 7F0D296C 314C0040 */ andi $t4, $t2, 0x40 +/* 1074A0 7F0D2970 15800007 */ bnez $t4, .L7F0D2990 +/* 1074A4 7F0D2974 00002825 */ move $a1, $zero +/* 1074A8 7F0D2978 24840008 */ addiu $a0, $a0, 8 +/* 1074AC 7F0D297C 24630008 */ addiu $v1, $v1, 8 +/* 1074B0 7F0D2980 308D00FF */ andi $t5, $a0, 0xff +/* 1074B4 7F0D2984 306E00FF */ andi $t6, $v1, 0xff +/* 1074B8 7F0D2988 01A02025 */ move $a0, $t5 +/* 1074BC 7F0D298C 01C01825 */ move $v1, $t6 +.L7F0D2990: +/* 1074C0 7F0D2990 24090008 */ li $t1, 8 +.L7F0D2994: +/* 1074C4 7F0D2994 90470000 */ lbu $a3, ($v0) +/* 1074C8 7F0D2998 24A50001 */ addiu $a1, $a1, 1 +/* 1074CC 7F0D299C 24420100 */ addiu $v0, $v0, 0x100 +/* 1074D0 7F0D29A0 30F80080 */ andi $t8, $a3, 0x80 +/* 1074D4 7F0D29A4 13000003 */ beqz $t8, .L7F0D29B4 +/* 1074D8 7F0D29A8 30EF0040 */ andi $t7, $a3, 0x40 +/* 1074DC 7F0D29AC 10000002 */ b .L7F0D29B8 +/* 1074E0 7F0D29B0 00803025 */ move $a2, $a0 +.L7F0D29B4: +/* 1074E4 7F0D29B4 00603025 */ move $a2, $v1 +.L7F0D29B8: +/* 1074E8 7F0D29B8 11E00003 */ beqz $t7, .L7F0D29C8 +/* 1074EC 7F0D29BC 0006C900 */ sll $t9, $a2, 4 +/* 1074F0 7F0D29C0 10000002 */ b .L7F0D29CC +/* 1074F4 7F0D29C4 00804025 */ move $t0, $a0 +.L7F0D29C8: +/* 1074F8 7F0D29C8 00604025 */ move $t0, $v1 +.L7F0D29CC: +/* 1074FC 7F0D29CC 01195825 */ or $t3, $t0, $t9 +/* 107500 7F0D29D0 30EC0020 */ andi $t4, $a3, 0x20 +/* 107504 7F0D29D4 11800003 */ beqz $t4, .L7F0D29E4 +/* 107508 7F0D29D8 A20B0000 */ sb $t3, ($s0) +/* 10750C 7F0D29DC 10000002 */ b .L7F0D29E8 +/* 107510 7F0D29E0 00803025 */ move $a2, $a0 +.L7F0D29E4: +/* 107514 7F0D29E4 00603025 */ move $a2, $v1 +.L7F0D29E8: +/* 107518 7F0D29E8 30ED0010 */ andi $t5, $a3, 0x10 +/* 10751C 7F0D29EC 11A00003 */ beqz $t5, .L7F0D29FC +/* 107520 7F0D29F0 00067100 */ sll $t6, $a2, 4 +/* 107524 7F0D29F4 10000002 */ b .L7F0D2A00 +/* 107528 7F0D29F8 00804025 */ move $t0, $a0 +.L7F0D29FC: +/* 10752C 7F0D29FC 00604025 */ move $t0, $v1 +.L7F0D2A00: +/* 107530 7F0D2A00 010EC025 */ or $t8, $t0, $t6 +/* 107534 7F0D2A04 30EF0008 */ andi $t7, $a3, 8 +/* 107538 7F0D2A08 11E00003 */ beqz $t7, .L7F0D2A18 +/* 10753C 7F0D2A0C A2180001 */ sb $t8, 1($s0) +/* 107540 7F0D2A10 10000002 */ b .L7F0D2A1C +/* 107544 7F0D2A14 00803025 */ move $a2, $a0 +.L7F0D2A18: +/* 107548 7F0D2A18 00603025 */ move $a2, $v1 +.L7F0D2A1C: +/* 10754C 7F0D2A1C 30F90004 */ andi $t9, $a3, 4 +/* 107550 7F0D2A20 13200003 */ beqz $t9, .L7F0D2A30 +/* 107554 7F0D2A24 00065900 */ sll $t3, $a2, 4 +/* 107558 7F0D2A28 10000002 */ b .L7F0D2A34 +/* 10755C 7F0D2A2C 00804025 */ move $t0, $a0 +.L7F0D2A30: +/* 107560 7F0D2A30 00604025 */ move $t0, $v1 +.L7F0D2A34: +/* 107564 7F0D2A34 010B6025 */ or $t4, $t0, $t3 +/* 107568 7F0D2A38 30ED0002 */ andi $t5, $a3, 2 +/* 10756C 7F0D2A3C 11A00003 */ beqz $t5, .L7F0D2A4C +/* 107570 7F0D2A40 A20C0002 */ sb $t4, 2($s0) +/* 107574 7F0D2A44 10000002 */ b .L7F0D2A50 +/* 107578 7F0D2A48 00803025 */ move $a2, $a0 +.L7F0D2A4C: +/* 10757C 7F0D2A4C 00603025 */ move $a2, $v1 +.L7F0D2A50: +/* 107580 7F0D2A50 30EE0001 */ andi $t6, $a3, 1 +/* 107584 7F0D2A54 11C00003 */ beqz $t6, .L7F0D2A64 +/* 107588 7F0D2A58 0006C100 */ sll $t8, $a2, 4 +/* 10758C 7F0D2A5C 10000002 */ b .L7F0D2A68 +/* 107590 7F0D2A60 00804025 */ move $t0, $a0 +.L7F0D2A64: +/* 107594 7F0D2A64 00604025 */ move $t0, $v1 +.L7F0D2A68: +/* 107598 7F0D2A68 01187825 */ or $t7, $t0, $t8 +/* 10759C 7F0D2A6C A20F0003 */ sb $t7, 3($s0) +/* 1075A0 7F0D2A70 14A9FFC8 */ bne $a1, $t1, .L7F0D2994 +/* 1075A4 7F0D2A74 26100020 */ addiu $s0, $s0, 0x20 +/* 1075A8 7F0D2A78 8FB00004 */ lw $s0, 4($sp) +/* 1075AC 7F0D2A7C 03E00008 */ jr $ra +/* 1075B0 7F0D2A80 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2A84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2A84 +/* 1075B4 7F0D2A84 3C028005 */ lui $v0, %hi(D_8004ED08) +/* 1075B8 7F0D2A88 2442ED08 */ addiu $v0, %lo(D_8004ED08) # addiu $v0, $v0, -0x12f8 +/* 1075BC 7F0D2A8C 904E0000 */ lbu $t6, ($v0) +/* 1075C0 7F0D2A90 24010019 */ li $at, 25 +/* 1075C4 7F0D2A94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 1075C8 7F0D2A98 25CF0001 */ addiu $t7, $t6, 1 +/* 1075CC 7F0D2A9C 31F800FF */ andi $t8, $t7, 0xff +/* 1075D0 7F0D2AA0 0301001A */ div $zero, $t8, $at +/* 1075D4 7F0D2AA4 AFB5002C */ sw $s5, 0x2c($sp) +/* 1075D8 7F0D2AA8 0000C810 */ mfhi $t9 +/* 1075DC 7F0D2AAC 0080A825 */ move $s5, $a0 +/* 1075E0 7F0D2AB0 AFBF003C */ sw $ra, 0x3c($sp) +/* 1075E4 7F0D2AB4 AFBE0038 */ sw $fp, 0x38($sp) +/* 1075E8 7F0D2AB8 AFB70034 */ sw $s7, 0x34($sp) +/* 1075EC 7F0D2ABC AFB60030 */ sw $s6, 0x30($sp) +/* 1075F0 7F0D2AC0 AFB40028 */ sw $s4, 0x28($sp) +/* 1075F4 7F0D2AC4 AFB30024 */ sw $s3, 0x24($sp) +/* 1075F8 7F0D2AC8 AFB20020 */ sw $s2, 0x20($sp) +/* 1075FC 7F0D2ACC AFB1001C */ sw $s1, 0x1c($sp) +/* 107600 7F0D2AD0 AFB00018 */ sw $s0, 0x18($sp) +/* 107604 7F0D2AD4 AFA50064 */ sw $a1, 0x64($sp) +/* 107608 7F0D2AD8 1720001B */ bnez $t9, .L7F0D2B48 +/* 10760C 7F0D2ADC A04F0000 */ sb $t7, ($v0) +/* 107610 7F0D2AE0 A0400000 */ sb $zero, ($v0) +/* 107614 7F0D2AE4 3C168009 */ lui $s6, %hi(ptr_300alloc) +/* 107618 7F0D2AE8 26D6E32C */ addiu $s6, %lo(ptr_300alloc) # addiu $s6, $s6, -0x1cd4 +/* 10761C 7F0D2AEC 24020001 */ li $v0, 1 +/* 107620 7F0D2AF0 00001825 */ move $v1, $zero +.L7F0D2AF4: +/* 107624 7F0D2AF4 8EC80000 */ lw $t0, ($s6) +/* 107628 7F0D2AF8 24010300 */ li $at, 768 +/* 10762C 7F0D2AFC 01034821 */ addu $t1, $t0, $v1 +/* 107630 7F0D2B00 A1220000 */ sb $v0, ($t1) +/* 107634 7F0D2B04 8ECA0000 */ lw $t2, ($s6) +/* 107638 7F0D2B08 01435821 */ addu $t3, $t2, $v1 +/* 10763C 7F0D2B0C A1620001 */ sb $v0, 1($t3) +/* 107640 7F0D2B10 8ECC0000 */ lw $t4, ($s6) +/* 107644 7F0D2B14 01836821 */ addu $t5, $t4, $v1 +/* 107648 7F0D2B18 A1A20002 */ sb $v0, 2($t5) +/* 10764C 7F0D2B1C 8ECE0000 */ lw $t6, ($s6) +/* 107650 7F0D2B20 01C37821 */ addu $t7, $t6, $v1 +/* 107654 7F0D2B24 24630004 */ addiu $v1, $v1, 4 +/* 107658 7F0D2B28 1461FFF2 */ bne $v1, $at, .L7F0D2AF4 +/* 10765C 7F0D2B2C A1E20003 */ sb $v0, 3($t7) +/* 107660 7F0D2B30 3C028005 */ lui $v0, %hi(D_8004EC40+0xC4) +/* 107664 7F0D2B34 2442ED04 */ addiu $v0, %lo(D_8004EC40+0xC4) # addiu $v0, $v0, -0x12fc +/* 107668 7F0D2B38 90580000 */ lbu $t8, ($v0) +/* 10766C 7F0D2B3C 24190001 */ li $t9, 1 +/* 107670 7F0D2B40 03384023 */ subu $t0, $t9, $t8 +/* 107674 7F0D2B44 A0480000 */ sb $t0, ($v0) +.L7F0D2B48: +/* 107678 7F0D2B48 3C168009 */ lui $s6, %hi(ptr_300alloc) +/* 10767C 7F0D2B4C 26D6E32C */ addiu $s6, %lo(ptr_300alloc) # addiu $s6, $s6, -0x1cd4 +/* 107680 7F0D2B50 AFA00058 */ sw $zero, 0x58($sp) +.L7F0D2B54: +/* 107684 7F0D2B54 8FA90058 */ lw $t1, 0x58($sp) +/* 107688 7F0D2B58 0000B825 */ move $s7, $zero +/* 10768C 7F0D2B5C 00095183 */ sra $t2, $t1, 6 +/* 107690 7F0D2B60 000A5880 */ sll $t3, $t2, 2 +/* 107694 7F0D2B64 AFAB0040 */ sw $t3, 0x40($sp) +/* 107698 7F0D2B68 253E0040 */ addiu $fp, $t1, 0x40 +/* 10769C 7F0D2B6C 8FAC0040 */ lw $t4, 0x40($sp) +.L7F0D2B70: +/* 1076A0 7F0D2B70 8FB40058 */ lw $s4, 0x58($sp) +/* 1076A4 7F0D2B74 00176983 */ sra $t5, $s7, 6 +/* 1076A8 7F0D2B78 8FB90064 */ lw $t9, 0x64($sp) +/* 1076AC 7F0D2B7C 018D7021 */ addu $t6, $t4, $t5 +/* 1076B0 7F0D2B80 000E7AC0 */ sll $t7, $t6, 0xb +/* 1076B4 7F0D2B84 029E082A */ slt $at, $s4, $fp +/* 1076B8 7F0D2B88 1020001B */ beqz $at, .L7F0D2BF8 +/* 1076BC 7F0D2B8C 01F98821 */ addu $s1, $t7, $t9 +/* 1076C0 7F0D2B90 26F30040 */ addiu $s3, $s7, 0x40 +.L7F0D2B94: +/* 1076C4 7F0D2B94 02F3082A */ slt $at, $s7, $s3 +/* 1076C8 7F0D2B98 10200013 */ beqz $at, .L7F0D2BE8 +/* 1076CC 7F0D2B9C 02E08025 */ move $s0, $s7 +/* 1076D0 7F0D2BA0 001490C3 */ sra $s2, $s4, 3 +/* 1076D4 7F0D2BA4 00124140 */ sll $t0, $s2, 5 +/* 1076D8 7F0D2BA8 01009025 */ move $s2, $t0 +.L7F0D2BAC: +/* 1076DC 7F0D2BAC 8EC90000 */ lw $t1, ($s6) +/* 1076E0 7F0D2BB0 001050C3 */ sra $t2, $s0, 3 +/* 1076E4 7F0D2BB4 024A5825 */ or $t3, $s2, $t2 +/* 1076E8 7F0D2BB8 01696021 */ addu $t4, $t3, $t1 +/* 1076EC 7F0D2BBC 918D0000 */ lbu $t5, ($t4) +/* 1076F0 7F0D2BC0 02A02025 */ move $a0, $s5 +/* 1076F4 7F0D2BC4 02002825 */ move $a1, $s0 +/* 1076F8 7F0D2BC8 11A00003 */ beqz $t5, .L7F0D2BD8 +/* 1076FC 7F0D2BCC 02803025 */ move $a2, $s4 +/* 107700 7F0D2BD0 0FC34A38 */ jal sub_GAME_7F0D28E0 +/* 107704 7F0D2BD4 02203825 */ move $a3, $s1 +.L7F0D2BD8: +/* 107708 7F0D2BD8 26100008 */ addiu $s0, $s0, 8 +/* 10770C 7F0D2BDC 0213082A */ slt $at, $s0, $s3 +/* 107710 7F0D2BE0 1420FFF2 */ bnez $at, .L7F0D2BAC +/* 107714 7F0D2BE4 26310004 */ addiu $s1, $s1, 4 +.L7F0D2BE8: +/* 107718 7F0D2BE8 26940008 */ addiu $s4, $s4, 8 +/* 10771C 7F0D2BEC 029E082A */ slt $at, $s4, $fp +/* 107720 7F0D2BF0 1420FFE8 */ bnez $at, .L7F0D2B94 +/* 107724 7F0D2BF4 263100E0 */ addiu $s1, $s1, 0xe0 +.L7F0D2BF8: +/* 107728 7F0D2BF8 26F70040 */ addiu $s7, $s7, 0x40 +/* 10772C 7F0D2BFC 2AE10100 */ slti $at, $s7, 0x100 +/* 107730 7F0D2C00 5420FFDB */ bnezl $at, .L7F0D2B70 +/* 107734 7F0D2C04 8FAC0040 */ lw $t4, 0x40($sp) +/* 107738 7F0D2C08 2BC100C0 */ slti $at, $fp, 0xc0 +/* 10773C 7F0D2C0C 1420FFD1 */ bnez $at, .L7F0D2B54 +/* 107740 7F0D2C10 AFBE0058 */ sw $fp, 0x58($sp) +/* 107744 7F0D2C14 00001025 */ move $v0, $zero +.L7F0D2C18: +/* 107748 7F0D2C18 8ECF0000 */ lw $t7, ($s6) +/* 10774C 7F0D2C1C 24010300 */ li $at, 768 +/* 107750 7F0D2C20 01E2C821 */ addu $t9, $t7, $v0 +/* 107754 7F0D2C24 A3200000 */ sb $zero, ($t9) +/* 107758 7F0D2C28 8ED80000 */ lw $t8, ($s6) +/* 10775C 7F0D2C2C 03024021 */ addu $t0, $t8, $v0 +/* 107760 7F0D2C30 A1000001 */ sb $zero, 1($t0) +/* 107764 7F0D2C34 8ECA0000 */ lw $t2, ($s6) +/* 107768 7F0D2C38 01425821 */ addu $t3, $t2, $v0 +/* 10776C 7F0D2C3C A1600002 */ sb $zero, 2($t3) +/* 107770 7F0D2C40 8EC90000 */ lw $t1, ($s6) +/* 107774 7F0D2C44 01226021 */ addu $t4, $t1, $v0 +/* 107778 7F0D2C48 24420004 */ addiu $v0, $v0, 4 +/* 10777C 7F0D2C4C 1441FFF2 */ bne $v0, $at, .L7F0D2C18 +/* 107780 7F0D2C50 A1800003 */ sb $zero, 3($t4) +/* 107784 7F0D2C54 8FBF003C */ lw $ra, 0x3c($sp) +/* 107788 7F0D2C58 8FB00018 */ lw $s0, 0x18($sp) +/* 10778C 7F0D2C5C 8FB1001C */ lw $s1, 0x1c($sp) +/* 107790 7F0D2C60 8FB20020 */ lw $s2, 0x20($sp) +/* 107794 7F0D2C64 8FB30024 */ lw $s3, 0x24($sp) +/* 107798 7F0D2C68 8FB40028 */ lw $s4, 0x28($sp) +/* 10779C 7F0D2C6C 8FB5002C */ lw $s5, 0x2c($sp) +/* 1077A0 7F0D2C70 8FB60030 */ lw $s6, 0x30($sp) +/* 1077A4 7F0D2C74 8FB70034 */ lw $s7, 0x34($sp) +/* 1077A8 7F0D2C78 8FBE0038 */ lw $fp, 0x38($sp) +/* 1077AC 7F0D2C7C 03E00008 */ jr $ra +/* 1077B0 7F0D2C80 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_p1controller_to_kempston(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_p1controller_to_kempston +/* 1077B4 7F0D2C84 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 1077B8 7F0D2C88 AFBF0014 */ sw $ra, 0x14($sp) +/* 1077BC 7F0D2C8C AFA00034 */ sw $zero, 0x34($sp) +/* 1077C0 7F0D2C90 AFA00030 */ sw $zero, 0x30($sp) +/* 1077C4 7F0D2C94 AFA0002C */ sw $zero, 0x2c($sp) +/* 1077C8 7F0D2C98 AFA00028 */ sw $zero, 0x28($sp) +/* 1077CC 7F0D2C9C 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set +/* 1077D0 7F0D2CA0 AFA00024 */ sw $zero, 0x24($sp) +/* 1077D4 7F0D2CA4 00002025 */ move $a0, $zero +/* 1077D8 7F0D2CA8 0C0030C3 */ jal get_controller_buttons_held +/* 1077DC 7F0D2CAC 3405FFFF */ li $a1, 65535 +/* 1077E0 7F0D2CB0 00002025 */ move $a0, $zero +/* 1077E4 7F0D2CB4 2405FFFD */ li $a1, -3 +/* 1077E8 7F0D2CB8 24060003 */ li $a2, 3 +/* 1077EC 7F0D2CBC 0C00312D */ jal get_controller_3dstick_L_R +/* 1077F0 7F0D2CC0 AFA20020 */ sw $v0, 0x20($sp) +/* 1077F4 7F0D2CC4 00002025 */ move $a0, $zero +/* 1077F8 7F0D2CC8 2405FFFD */ li $a1, -3 +/* 1077FC 7F0D2CCC 24060003 */ li $a2, 3 +/* 107800 7F0D2CD0 0C00314A */ jal get_controller_3dstick_U_D +/* 107804 7F0D2CD4 AFA2001C */ sw $v0, 0x1c($sp) +/* 107808 7F0D2CD8 240E00FF */ li $t6, 255 +/* 10780C 7F0D2CDC 3C018005 */ lui $at, %hi(D_8004EC34) +/* 107810 7F0D2CE0 3C048005 */ lui $a0, %hi(D_8004EC34+1) +/* 107814 7F0D2CE4 3C058005 */ lui $a1, %hi(D_8004EC3C+1) +/* 107818 7F0D2CE8 8FA70020 */ lw $a3, 0x20($sp) +/* 10781C 7F0D2CEC 8FA8001C */ lw $t0, 0x1c($sp) +/* 107820 7F0D2CF0 24A5EC3D */ addiu $a1, %lo(D_8004EC3C+1) # addiu $a1, $a1, -0x13c3 +/* 107824 7F0D2CF4 2484EC35 */ addiu $a0, %lo(D_8004EC34+1) # addiu $a0, $a0, -0x13cb +/* 107828 7F0D2CF8 A02EEC34 */ sb $t6, %lo(D_8004EC34)($at) +/* 10782C 7F0D2CFC 240300FF */ li $v1, 255 +.L7F0D2D00: +/* 107830 7F0D2D00 24840004 */ addiu $a0, $a0, 4 +/* 107834 7F0D2D04 A083FFFD */ sb $v1, -3($a0) +/* 107838 7F0D2D08 A083FFFE */ sb $v1, -2($a0) +/* 10783C 7F0D2D0C A083FFFF */ sb $v1, -1($a0) +/* 107840 7F0D2D10 1485FFFB */ bne $a0, $a1, .L7F0D2D00 +/* 107844 7F0D2D14 A083FFFC */ sb $v1, -4($a0) +/* 107848 7F0D2D18 30EF2000 */ andi $t7, $a3, 0x2000 +/* 10784C 7F0D2D1C 11E00003 */ beqz $t7, .L7F0D2D2C +/* 107850 7F0D2D20 30F90202 */ andi $t9, $a3, 0x202 +/* 107854 7F0D2D24 24180001 */ li $t8, 1 +/* 107858 7F0D2D28 AFB80024 */ sw $t8, 0x24($sp) +.L7F0D2D2C: +/* 10785C 7F0D2D2C 17200003 */ bnez $t9, .L7F0D2D3C +/* 107860 7F0D2D30 30EA0101 */ andi $t2, $a3, 0x101 +/* 107864 7F0D2D34 2901FFFF */ slti $at, $t0, -1 +/* 107868 7F0D2D38 10200002 */ beqz $at, .L7F0D2D44 +.L7F0D2D3C: +/* 10786C 7F0D2D3C 24090001 */ li $t1, 1 +/* 107870 7F0D2D40 AFA9002C */ sw $t1, 0x2c($sp) +.L7F0D2D44: +/* 107874 7F0D2D44 15400003 */ bnez $t2, .L7F0D2D54 +/* 107878 7F0D2D48 30EC0808 */ andi $t4, $a3, 0x808 +/* 10787C 7F0D2D4C 29010002 */ slti $at, $t0, 2 +/* 107880 7F0D2D50 14200002 */ bnez $at, .L7F0D2D5C +.L7F0D2D54: +/* 107884 7F0D2D54 240B0001 */ li $t3, 1 +/* 107888 7F0D2D58 AFAB0028 */ sw $t3, 0x28($sp) +.L7F0D2D5C: +/* 10788C 7F0D2D5C 15800003 */ bnez $t4, .L7F0D2D6C +/* 107890 7F0D2D60 30ED0404 */ andi $t5, $a3, 0x404 +/* 107894 7F0D2D64 28410002 */ slti $at, $v0, 2 +/* 107898 7F0D2D68 14200002 */ bnez $at, .L7F0D2D74 +.L7F0D2D6C: +/* 10789C 7F0D2D6C 24050001 */ li $a1, 1 +/* 1078A0 7F0D2D70 AFA50034 */ sw $a1, 0x34($sp) +.L7F0D2D74: +/* 1078A4 7F0D2D74 15A00003 */ bnez $t5, .L7F0D2D84 +/* 1078A8 7F0D2D78 8FA50034 */ lw $a1, 0x34($sp) +/* 1078AC 7F0D2D7C 2841FFFF */ slti $at, $v0, -1 +/* 1078B0 7F0D2D80 10200002 */ beqz $at, .L7F0D2D8C +.L7F0D2D84: +/* 1078B4 7F0D2D84 24060001 */ li $a2, 1 +/* 1078B8 7F0D2D88 AFA60030 */ sw $a2, 0x30($sp) +.L7F0D2D8C: +/* 1078BC 7F0D2D8C 3C038009 */ lui $v1, %hi(byte_CODE_bss_8008E34D) +/* 1078C0 7F0D2D90 9063E34D */ lbu $v1, %lo(byte_CODE_bss_8008E34D)($v1) +/* 1078C4 7F0D2D94 24040002 */ li $a0, 2 +/* 1078C8 7F0D2D98 8FA60030 */ lw $a2, 0x30($sp) +/* 1078CC 7F0D2D9C 14830005 */ bne $a0, $v1, .L7F0D2DB4 +/* 1078D0 7F0D2DA0 24020004 */ li $v0, 4 +/* 1078D4 7F0D2DA4 30EEC000 */ andi $t6, $a3, 0xc000 +/* 1078D8 7F0D2DA8 11C00002 */ beqz $t6, .L7F0D2DB4 +/* 1078DC 7F0D2DAC 00000000 */ nop +/* 1078E0 7F0D2DB0 24050001 */ li $a1, 1 +.L7F0D2DB4: +/* 1078E4 7F0D2DB4 10430002 */ beq $v0, $v1, .L7F0D2DC0 +/* 1078E8 7F0D2DB8 24010007 */ li $at, 7 +/* 1078EC 7F0D2DBC 14610004 */ bne $v1, $at, .L7F0D2DD0 +.L7F0D2DC0: +/* 1078F0 7F0D2DC0 30EFC000 */ andi $t7, $a3, 0xc000 +/* 1078F4 7F0D2DC4 11E00002 */ beqz $t7, .L7F0D2DD0 +/* 1078F8 7F0D2DC8 00000000 */ nop +/* 1078FC 7F0D2DCC 24060001 */ li $a2, 1 +.L7F0D2DD0: +/* 107900 7F0D2DD0 1060000A */ beqz $v1, .L7F0D2DFC +/* 107904 7F0D2DD4 24010001 */ li $at, 1 +/* 107908 7F0D2DD8 10610008 */ beq $v1, $at, .L7F0D2DFC +/* 10790C 7F0D2DDC 24010006 */ li $at, 6 +/* 107910 7F0D2DE0 10610006 */ beq $v1, $at, .L7F0D2DFC +/* 107914 7F0D2DE4 24010009 */ li $at, 9 +/* 107918 7F0D2DE8 50610005 */ beql $v1, $at, .L7F0D2E00 +/* 10791C 7F0D2DEC 30F8C000 */ andi $t8, $a3, 0xc000 +/* 107920 7F0D2DF0 10430002 */ beq $v0, $v1, .L7F0D2DFC +/* 107924 7F0D2DF4 24010007 */ li $at, 7 +/* 107928 7F0D2DF8 14610007 */ bne $v1, $at, .L7F0D2E18 +.L7F0D2DFC: +/* 10792C 7F0D2DFC 30F8C000 */ andi $t8, $a3, 0xc000 +.L7F0D2E00: +/* 107930 7F0D2E00 13000005 */ beqz $t8, .L7F0D2E18 +/* 107934 7F0D2E04 3C028005 */ lui $v0, %hi(D_8004EC34) +/* 107938 7F0D2E08 2442EC34 */ addiu $v0, %lo(D_8004EC34) # addiu $v0, $v0, -0x13cc +/* 10793C 7F0D2E0C 90590004 */ lbu $t9, 4($v0) +/* 107940 7F0D2E10 332900FE */ andi $t1, $t9, 0xfe +/* 107944 7F0D2E14 A0490004 */ sb $t1, 4($v0) +.L7F0D2E18: +/* 107948 7F0D2E18 3C028005 */ lui $v0, %hi(D_8004EC34) +/* 10794C 7F0D2E1C 10830003 */ beq $a0, $v1, .L7F0D2E2C +/* 107950 7F0D2E20 2442EC34 */ addiu $v0, %lo(D_8004EC34) # addiu $v0, $v0, -0x13cc +/* 107954 7F0D2E24 24010008 */ li $at, 8 +/* 107958 7F0D2E28 14610006 */ bne $v1, $at, .L7F0D2E44 +.L7F0D2E2C: +/* 10795C 7F0D2E2C 30EAC000 */ andi $t2, $a3, 0xc000 +/* 107960 7F0D2E30 51400005 */ beql $t2, $zero, .L7F0D2E48 +/* 107964 7F0D2E34 24010005 */ li $at, 5 +/* 107968 7F0D2E38 904B0003 */ lbu $t3, 3($v0) +/* 10796C 7F0D2E3C 316C00EF */ andi $t4, $t3, 0xef +/* 107970 7F0D2E40 A04C0003 */ sb $t4, 3($v0) +.L7F0D2E44: +/* 107974 7F0D2E44 24010005 */ li $at, 5 +.L7F0D2E48: +/* 107978 7F0D2E48 14610006 */ bne $v1, $at, .L7F0D2E64 +/* 10797C 7F0D2E4C 30EDC000 */ andi $t5, $a3, 0xc000 +/* 107980 7F0D2E50 51A00005 */ beql $t5, $zero, .L7F0D2E68 +/* 107984 7F0D2E54 24010003 */ li $at, 3 +/* 107988 7F0D2E58 904E0003 */ lbu $t6, 3($v0) +/* 10798C 7F0D2E5C 31CF00FB */ andi $t7, $t6, 0xfb +/* 107990 7F0D2E60 A04F0003 */ sb $t7, 3($v0) +.L7F0D2E64: +/* 107994 7F0D2E64 24010003 */ li $at, 3 +.L7F0D2E68: +/* 107998 7F0D2E68 14610010 */ bne $v1, $at, .L7F0D2EAC +/* 10799C 7F0D2E6C 30F8C000 */ andi $t8, $a3, 0xc000 +/* 1079A0 7F0D2E70 13000004 */ beqz $t8, .L7F0D2E84 +/* 1079A4 7F0D2E74 30EA8000 */ andi $t2, $a3, 0x8000 +/* 1079A8 7F0D2E78 90590004 */ lbu $t9, 4($v0) +/* 1079AC 7F0D2E7C 332900EF */ andi $t1, $t9, 0xef +/* 1079B0 7F0D2E80 A0490004 */ sb $t1, 4($v0) +.L7F0D2E84: +/* 1079B4 7F0D2E84 11400004 */ beqz $t2, .L7F0D2E98 +/* 1079B8 7F0D2E88 30ED4000 */ andi $t5, $a3, 0x4000 +/* 1079BC 7F0D2E8C 904B0000 */ lbu $t3, ($v0) +/* 1079C0 7F0D2E90 316C00FD */ andi $t4, $t3, 0xfd +/* 1079C4 7F0D2E94 A04C0000 */ sb $t4, ($v0) +.L7F0D2E98: +/* 1079C8 7F0D2E98 51A00005 */ beql $t5, $zero, .L7F0D2EB0 +/* 1079CC 7F0D2E9C 24010006 */ li $at, 6 +/* 1079D0 7F0D2EA0 904E0007 */ lbu $t6, 7($v0) +/* 1079D4 7F0D2EA4 31CF00FE */ andi $t7, $t6, 0xfe +/* 1079D8 7F0D2EA8 A04F0007 */ sb $t7, 7($v0) +.L7F0D2EAC: +/* 1079DC 7F0D2EAC 24010006 */ li $at, 6 +.L7F0D2EB0: +/* 1079E0 7F0D2EB0 14610009 */ bne $v1, $at, .L7F0D2ED8 +/* 1079E4 7F0D2EB4 30F88000 */ andi $t8, $a3, 0x8000 +/* 1079E8 7F0D2EB8 13000002 */ beqz $t8, .L7F0D2EC4 +/* 1079EC 7F0D2EBC 30E44000 */ andi $a0, $a3, 0x4000 +/* 1079F0 7F0D2EC0 24050001 */ li $a1, 1 +.L7F0D2EC4: +/* 1079F4 7F0D2EC4 50800005 */ beql $a0, $zero, .L7F0D2EDC +/* 1079F8 7F0D2EC8 24010001 */ li $at, 1 +/* 1079FC 7F0D2ECC 90590007 */ lbu $t9, 7($v0) +/* 107A00 7F0D2ED0 332900FE */ andi $t1, $t9, 0xfe +/* 107A04 7F0D2ED4 A0490007 */ sb $t1, 7($v0) +.L7F0D2ED8: +/* 107A08 7F0D2ED8 24010001 */ li $at, 1 +.L7F0D2EDC: +/* 107A0C 7F0D2EDC 14610015 */ bne $v1, $at, .L7F0D2F34 +/* 107A10 7F0D2EE0 30EAC000 */ andi $t2, $a3, 0xc000 +/* 107A14 7F0D2EE4 11400004 */ beqz $t2, .L7F0D2EF8 +/* 107A18 7F0D2EE8 30ED0200 */ andi $t5, $a3, 0x200 +/* 107A1C 7F0D2EEC 904B0000 */ lbu $t3, ($v0) +/* 107A20 7F0D2EF0 316C00FD */ andi $t4, $t3, 0xfd +/* 107A24 7F0D2EF4 A04C0000 */ sb $t4, ($v0) +.L7F0D2EF8: +/* 107A28 7F0D2EF8 11A00004 */ beqz $t5, .L7F0D2F0C +/* 107A2C 7F0D2EFC 30F80400 */ andi $t8, $a3, 0x400 +/* 107A30 7F0D2F00 904E0003 */ lbu $t6, 3($v0) +/* 107A34 7F0D2F04 31CF00F7 */ andi $t7, $t6, 0xf7 +/* 107A38 7F0D2F08 A04F0003 */ sb $t7, 3($v0) +.L7F0D2F0C: +/* 107A3C 7F0D2F0C 13000004 */ beqz $t8, .L7F0D2F20 +/* 107A40 7F0D2F10 30EA0100 */ andi $t2, $a3, 0x100 +/* 107A44 7F0D2F14 90590003 */ lbu $t9, 3($v0) +/* 107A48 7F0D2F18 332900EF */ andi $t1, $t9, 0xef +/* 107A4C 7F0D2F1C A0490003 */ sb $t1, 3($v0) +.L7F0D2F20: +/* 107A50 7F0D2F20 51400005 */ beql $t2, $zero, .L7F0D2F38 +/* 107A54 7F0D2F24 30ED0020 */ andi $t5, $a3, 0x20 +/* 107A58 7F0D2F28 904B0004 */ lbu $t3, 4($v0) +/* 107A5C 7F0D2F2C 316C00EF */ andi $t4, $t3, 0xef +/* 107A60 7F0D2F30 A04C0004 */ sb $t4, 4($v0) +.L7F0D2F34: +/* 107A64 7F0D2F34 30ED0020 */ andi $t5, $a3, 0x20 +.L7F0D2F38: +/* 107A68 7F0D2F38 11A00013 */ beqz $t5, .L7F0D2F88 +/* 107A6C 7F0D2F3C 3C018005 */ lui $at, %hi(D_8004EC40) +/* 107A70 7F0D2F40 3C028009 */ lui $v0, %hi(ptr_spectrum_roms) +/* 107A74 7F0D2F44 2442E328 */ addiu $v0, %lo(ptr_spectrum_roms) # addiu $v0, $v0, -0x1cd8 +/* 107A78 7F0D2F48 00001825 */ move $v1, $zero +/* 107A7C 7F0D2F4C 24044000 */ li $a0, 16384 +.L7F0D2F50: +/* 107A80 7F0D2F50 8C4E0000 */ lw $t6, ($v0) +/* 107A84 7F0D2F54 01C37821 */ addu $t7, $t6, $v1 +/* 107A88 7F0D2F58 A1E00000 */ sb $zero, ($t7) +/* 107A8C 7F0D2F5C 8C580000 */ lw $t8, ($v0) +/* 107A90 7F0D2F60 0303C821 */ addu $t9, $t8, $v1 +/* 107A94 7F0D2F64 A3200001 */ sb $zero, 1($t9) +/* 107A98 7F0D2F68 8C490000 */ lw $t1, ($v0) +/* 107A9C 7F0D2F6C 01235021 */ addu $t2, $t1, $v1 +/* 107AA0 7F0D2F70 A1400002 */ sb $zero, 2($t2) +/* 107AA4 7F0D2F74 8C4B0000 */ lw $t3, ($v0) +/* 107AA8 7F0D2F78 01636021 */ addu $t4, $t3, $v1 +/* 107AAC 7F0D2F7C 24630004 */ addiu $v1, 4 # addiu $v1, $v1, 4 +/* 107AB0 7F0D2F80 1464FFF3 */ bne $v1, $a0, .L7F0D2F50 +/* 107AB4 7F0D2F84 A1800003 */ sb $zero, 3($t4) +.L7F0D2F88: +/* 107AB8 7F0D2F88 8FAD0024 */ lw $t5, 0x24($sp) +/* 107ABC 7F0D2F8C 8FAA002C */ lw $t2, 0x2c($sp) +/* 107AC0 7F0D2F90 000578C0 */ sll $t7, $a1, 3 +/* 107AC4 7F0D2F94 000D7100 */ sll $t6, $t5, 4 +/* 107AC8 7F0D2F98 8FAD0028 */ lw $t5, 0x28($sp) +/* 107ACC 7F0D2F9C 01CFC025 */ or $t8, $t6, $t7 +/* 107AD0 7F0D2FA0 0006C880 */ sll $t9, $a2, 2 +/* 107AD4 7F0D2FA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 107AD8 7F0D2FA8 03194825 */ or $t1, $t8, $t9 +/* 107ADC 7F0D2FAC 000A5840 */ sll $t3, $t2, 1 +/* 107AE0 7F0D2FB0 012B6025 */ or $t4, $t1, $t3 +/* 107AE4 7F0D2FB4 018D7025 */ or $t6, $t4, $t5 +/* 107AE8 7F0D2FB8 A02EEC40 */ sb $t6, %lo(D_8004EC40)($at) +/* 107AEC 7F0D2FBC 03E00008 */ jr $ra +/* 107AF0 7F0D2FC0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void init_spectrum_game(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_spectrum_game +/* 107AF4 7F0D2FC4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 107AF8 7F0D2FC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 107AFC 7F0D2FCC AFA40018 */ sw $a0, 0x18($sp) +/* 107B00 7F0D2FD0 24040100 */ li $a0, 256 +/* 107B04 7F0D2FD4 0C0025C8 */ jal mempAllocBytesInBank +/* 107B08 7F0D2FD8 24050004 */ li $a1, 4 +/* 107B0C 7F0D2FDC 3C068009 */ lui $a2, %hi(ptr_pc_keyboard_table_alloc) +/* 107B10 7F0D2FE0 24C6E334 */ addiu $a2, %lo(ptr_pc_keyboard_table_alloc) # addiu $a2, $a2, -0x1ccc +/* 107B14 7F0D2FE4 ACC20000 */ sw $v0, ($a2) +/* 107B18 7F0D2FE8 00002025 */ move $a0, $zero +/* 107B1C 7F0D2FEC 24070004 */ li $a3, 4 +/* 107B20 7F0D2FF0 24050008 */ li $a1, 8 +/* 107B24 7F0D2FF4 00001825 */ move $v1, $zero +.L7F0D2FF8: +/* 107B28 7F0D2FF8 00001025 */ move $v0, $zero +/* 107B2C 7F0D2FFC 00447007 */ srav $t6, $a0, $v0 +.L7F0D3000: +/* 107B30 7F0D3000 31CF0001 */ andi $t7, $t6, 1 +/* 107B34 7F0D3004 11E00002 */ beqz $t7, .L7F0D3010 +/* 107B38 7F0D3008 24420001 */ addiu $v0, $v0, 1 +/* 107B3C 7F0D300C 24630001 */ addiu $v1, $v1, 1 +.L7F0D3010: +/* 107B40 7F0D3010 5445FFFB */ bnel $v0, $a1, .L7F0D3000 +/* 107B44 7F0D3014 00447007 */ srav $t6, $a0, $v0 +/* 107B48 7F0D3018 30780001 */ andi $t8, $v1, 1 +/* 107B4C 7F0D301C 53000006 */ beql $t8, $zero, .L7F0D3038 +/* 107B50 7F0D3020 8CCA0000 */ lw $t2, ($a2) +/* 107B54 7F0D3024 8CD90000 */ lw $t9, ($a2) +/* 107B58 7F0D3028 03244821 */ addu $t1, $t9, $a0 +/* 107B5C 7F0D302C 10000004 */ b .L7F0D3040 +/* 107B60 7F0D3030 A1200000 */ sb $zero, ($t1) +/* 107B64 7F0D3034 8CCA0000 */ lw $t2, ($a2) +.L7F0D3038: +/* 107B68 7F0D3038 01445821 */ addu $t3, $t2, $a0 +/* 107B6C 7F0D303C A1670000 */ sb $a3, ($t3) +.L7F0D3040: +/* 107B70 7F0D3040 24840001 */ addiu $a0, $a0, 1 +/* 107B74 7F0D3044 28810100 */ slti $at, $a0, 0x100 +/* 107B78 7F0D3048 5420FFEB */ bnezl $at, .L7F0D2FF8 +/* 107B7C 7F0D304C 00001825 */ move $v1, $zero +/* 107B80 7F0D3050 24046000 */ li $a0, 24576 +/* 107B84 7F0D3054 0C0025C8 */ jal mempAllocBytesInBank +/* 107B88 7F0D3058 24050004 */ li $a1, 4 +/* 107B8C 7F0D305C 3C018009 */ lui $at, %hi(ptr_6000alloc) +/* 107B90 7F0D3060 AC22E330 */ sw $v0, %lo(ptr_6000alloc)($at) +/* 107B94 7F0D3064 24040300 */ li $a0, 768 +/* 107B98 7F0D3068 0C0025C8 */ jal mempAllocBytesInBank +/* 107B9C 7F0D306C 24050004 */ li $a1, 4 +/* 107BA0 7F0D3070 3C038009 */ lui $v1, %hi(ptr_300alloc) +/* 107BA4 7F0D3074 2463E32C */ addiu $v1, %lo(ptr_300alloc) # addiu $v1, $v1, -0x1cd4 +/* 107BA8 7F0D3078 AC620000 */ sw $v0, ($v1) +/* 107BAC 7F0D307C 24020001 */ li $v0, 1 +/* 107BB0 7F0D3080 00002025 */ move $a0, $zero +.L7F0D3084: +/* 107BB4 7F0D3084 8C6C0000 */ lw $t4, ($v1) +/* 107BB8 7F0D3088 01846821 */ addu $t5, $t4, $a0 +/* 107BBC 7F0D308C 24840001 */ addiu $a0, $a0, 1 +/* 107BC0 7F0D3090 28810300 */ slti $at, $a0, 0x300 +/* 107BC4 7F0D3094 1420FFFB */ bnez $at, .L7F0D3084 +/* 107BC8 7F0D3098 A1A20000 */ sb $v0, ($t5) +/* 107BCC 7F0D309C 3C040001 */ lui $a0, 1 +/* 107BD0 7F0D30A0 0C0025C8 */ jal mempAllocBytesInBank +/* 107BD4 7F0D30A4 24050004 */ li $a1, 4 +/* 107BD8 7F0D30A8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107BDC 7F0D30AC 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107BE0 7F0D30B0 3C048006 */ lui $a0, %hi(aEmDataSpec_rom_seg_rz) +/* 107BE4 7F0D30B4 AD020000 */ sw $v0, ($t0) +/* 107BE8 7F0D30B8 2484C114 */ addiu $a0, %lo(aEmDataSpec_rom_seg_rz) # addiu $a0, $a0, -0x3eec +/* 107BEC 7F0D30BC 24050001 */ li $a1, 1 +/* 107BF0 7F0D30C0 24060100 */ li $a2, 256 +/* 107BF4 7F0D30C4 0FC2F341 */ jal _load_resource_named_to_membank +/* 107BF8 7F0D30C8 24070004 */ li $a3, 4 +/* 107BFC 7F0D30CC 3C038009 */ lui $v1, %hi(ptr_sectrum_monitor_data_temp_buf) +/* 107C00 7F0D30D0 2463E320 */ addiu $v1, %lo(ptr_sectrum_monitor_data_temp_buf) # addiu $v1, $v1, -0x1ce0 +/* 107C04 7F0D30D4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107C08 7F0D30D8 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107C0C 7F0D30DC AC620000 */ sw $v0, ($v1) +/* 107C10 7F0D30E0 00002025 */ move $a0, $zero +.L7F0D30E4: +/* 107C14 7F0D30E4 8C6E0000 */ lw $t6, ($v1) +/* 107C18 7F0D30E8 8D190000 */ lw $t9, ($t0) +/* 107C1C 7F0D30EC 01C47821 */ addu $t7, $t6, $a0 +/* 107C20 7F0D30F0 03244821 */ addu $t1, $t9, $a0 +/* 107C24 7F0D30F4 91F80000 */ lbu $t8, ($t7) +/* 107C28 7F0D30F8 24840001 */ addiu $a0, $a0, 1 +/* 107C2C 7F0D30FC 28814000 */ slti $at, $a0, 0x4000 +/* 107C30 7F0D3100 1420FFF8 */ bnez $at, .L7F0D30E4 +/* 107C34 7F0D3104 A1380000 */ sb $t8, ($t1) +/* 107C38 7F0D3108 8FAA0018 */ lw $t2, 0x18($sp) +/* 107C3C 7F0D310C 3C038009 */ lui $v1, %hi(byte_CODE_bss_8008E34D) +/* 107C40 7F0D3110 2463E34D */ addiu $v1, %lo(byte_CODE_bss_8008E34D) # addiu $v1, $v1, -0x1cb3 +/* 107C44 7F0D3114 314200FF */ andi $v0, $t2, 0xff +/* 107C48 7F0D3118 28410005 */ slti $at, $v0, 5 +/* 107C4C 7F0D311C 14200003 */ bnez $at, .L7F0D312C +/* 107C50 7F0D3120 A06A0000 */ sb $t2, ($v1) +/* 107C54 7F0D3124 A0600000 */ sb $zero, ($v1) +/* 107C58 7F0D3128 300200FF */ andi $v0, $zero, 0xff +.L7F0D312C: +/* 107C5C 7F0D312C 00025880 */ sll $t3, $v0, 2 +/* 107C60 7F0D3130 3C048005 */ lui $a0, %hi(romnames) +/* 107C64 7F0D3134 008B2021 */ addu $a0, $a0, $t3 +/* 107C68 7F0D3138 8C84ED2C */ lw $a0, %lo(romnames)($a0) +/* 107C6C 7F0D313C 24050001 */ li $a1, 1 +/* 107C70 7F0D3140 24060100 */ li $a2, 256 +/* 107C74 7F0D3144 0FC2F341 */ jal _load_resource_named_to_membank +/* 107C78 7F0D3148 24070004 */ li $a3, 4 +/* 107C7C 7F0D314C 3C038009 */ lui $v1, %hi(ptr_sectrum_game_data_temp_buf) +/* 107C80 7F0D3150 2463E324 */ addiu $v1, %lo(ptr_sectrum_game_data_temp_buf) # addiu $v1, $v1, -0x1cdc +/* 107C84 7F0D3154 AC620000 */ sw $v0, ($v1) +/* 107C88 7F0D3158 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107C8C 7F0D315C 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107C90 7F0D3160 3402C000 */ li $v0, 49152 +/* 107C94 7F0D3164 00002025 */ move $a0, $zero +.L7F0D3168: +/* 107C98 7F0D3168 8C6C0000 */ lw $t4, ($v1) +/* 107C9C 7F0D316C 8D0F0000 */ lw $t7, ($t0) +/* 107CA0 7F0D3170 008C6821 */ addu $t5, $a0, $t4 +/* 107CA4 7F0D3174 91AE001B */ lbu $t6, 0x1b($t5) +/* 107CA8 7F0D3178 01E4C821 */ addu $t9, $t7, $a0 +/* 107CAC 7F0D317C A32E4000 */ sb $t6, 0x4000($t9) +/* 107CB0 7F0D3180 8C780000 */ lw $t8, ($v1) +/* 107CB4 7F0D3184 8D0B0000 */ lw $t3, ($t0) +/* 107CB8 7F0D3188 00984821 */ addu $t1, $a0, $t8 +/* 107CBC 7F0D318C 912A001C */ lbu $t2, 0x1c($t1) +/* 107CC0 7F0D3190 01646021 */ addu $t4, $t3, $a0 +/* 107CC4 7F0D3194 A18A4001 */ sb $t2, 0x4001($t4) +/* 107CC8 7F0D3198 8C6D0000 */ lw $t5, ($v1) +/* 107CCC 7F0D319C 8D190000 */ lw $t9, ($t0) +/* 107CD0 7F0D31A0 008D7821 */ addu $t7, $a0, $t5 +/* 107CD4 7F0D31A4 91EE001D */ lbu $t6, 0x1d($t7) +/* 107CD8 7F0D31A8 0324C021 */ addu $t8, $t9, $a0 +/* 107CDC 7F0D31AC A30E4002 */ sb $t6, 0x4002($t8) +/* 107CE0 7F0D31B0 8C690000 */ lw $t1, ($v1) +/* 107CE4 7F0D31B4 8D0C0000 */ lw $t4, ($t0) +/* 107CE8 7F0D31B8 00895821 */ addu $t3, $a0, $t1 +/* 107CEC 7F0D31BC 916A001E */ lbu $t2, 0x1e($t3) +/* 107CF0 7F0D31C0 01846821 */ addu $t5, $t4, $a0 +/* 107CF4 7F0D31C4 24840004 */ addiu $a0, $a0, 4 +/* 107CF8 7F0D31C8 1482FFE7 */ bne $a0, $v0, .L7F0D3168 +/* 107CFC 7F0D31CC A1AA4003 */ sb $t2, 0x4003($t5) +/* 107D00 7F0D31D0 8C620000 */ lw $v0, ($v1) +/* 107D04 7F0D31D4 3C018009 */ lui $at, %hi(spec_I) +/* 107D08 7F0D31D8 3C058009 */ lui $a1, %hi(spec_IFF2_upper) +/* 107D0C 7F0D31DC 904F0000 */ lbu $t7, ($v0) +/* 107D10 7F0D31E0 24A5E34B */ addiu $a1, %lo(spec_IFF2_upper) # addiu $a1, $a1, -0x1cb5 +/* 107D14 7F0D31E4 3C068009 */ lui $a2, %hi(spec_SP) +/* 107D18 7F0D31E8 A02FE348 */ sb $t7, %lo(spec_I)($at) +/* 107D1C 7F0D31EC 90590001 */ lbu $t9, 1($v0) +/* 107D20 7F0D31F0 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E347) +/* 107D24 7F0D31F4 24C6E352 */ addiu $a2, %lo(spec_SP) # addiu $a2, $a2, -0x1cae +/* 107D28 7F0D31F8 A039E347 */ sb $t9, %lo(byte_CODE_bss_8008E347)($at) +/* 107D2C 7F0D31FC 904E0002 */ lbu $t6, 2($v0) +/* 107D30 7F0D3200 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E346) +/* 107D34 7F0D3204 3C078009 */ lui $a3, %hi(spec_IM) +/* 107D38 7F0D3208 A02EE346 */ sb $t6, %lo(byte_CODE_bss_8008E346)($at) +/* 107D3C 7F0D320C 90580003 */ lbu $t8, 3($v0) +/* 107D40 7F0D3210 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E345) +/* 107D44 7F0D3214 24E7E34C */ addiu $a3, %lo(spec_IM) # addiu $a3, $a3, -0x1cb4 +/* 107D48 7F0D3218 A038E345 */ sb $t8, %lo(byte_CODE_bss_8008E345)($at) +/* 107D4C 7F0D321C 90490004 */ lbu $t1, 4($v0) +/* 107D50 7F0D3220 3C018009 */ lui $at, %hi(off_CODE_bss_8008E344) +/* 107D54 7F0D3224 A029E344 */ sb $t1, %lo(off_CODE_bss_8008E344)($at) +/* 107D58 7F0D3228 904B0005 */ lbu $t3, 5($v0) +/* 107D5C 7F0D322C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E343) +/* 107D60 7F0D3230 A02BE343 */ sb $t3, %lo(byte_CODE_bss_8008E343)($at) +/* 107D64 7F0D3234 904C0006 */ lbu $t4, 6($v0) +/* 107D68 7F0D3238 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E342) +/* 107D6C 7F0D323C A02CE342 */ sb $t4, %lo(byte_CODE_bss_8008E342)($at) +/* 107D70 7F0D3240 904A0007 */ lbu $t2, 7($v0) +/* 107D74 7F0D3244 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E341) +/* 107D78 7F0D3248 A02AE341 */ sb $t2, %lo(byte_CODE_bss_8008E341)($at) +/* 107D7C 7F0D324C 904D0008 */ lbu $t5, 8($v0) +/* 107D80 7F0D3250 3C018009 */ lui $at, %hi(off_CODE_bss_8008E340) +/* 107D84 7F0D3254 A02DE340 */ sb $t5, %lo(off_CODE_bss_8008E340)($at) +/* 107D88 7F0D3258 904F0009 */ lbu $t7, 9($v0) +/* 107D8C 7F0D325C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33F) +/* 107D90 7F0D3260 A02FE33F */ sb $t7, %lo(byte_CODE_bss_8008E33F)($at) +/* 107D94 7F0D3264 9059000A */ lbu $t9, 0xa($v0) +/* 107D98 7F0D3268 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33E) +/* 107D9C 7F0D326C A039E33E */ sb $t9, %lo(byte_CODE_bss_8008E33E)($at) +/* 107DA0 7F0D3270 904E000B */ lbu $t6, 0xb($v0) +/* 107DA4 7F0D3274 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33D) +/* 107DA8 7F0D3278 A02EE33D */ sb $t6, %lo(byte_CODE_bss_8008E33D)($at) +/* 107DAC 7F0D327C 9058000C */ lbu $t8, 0xc($v0) +/* 107DB0 7F0D3280 3C018009 */ lui $at, %hi(off_CODE_bss_8008E33C) +/* 107DB4 7F0D3284 A038E33C */ sb $t8, %lo(off_CODE_bss_8008E33C)($at) +/* 107DB8 7F0D3288 9049000D */ lbu $t1, 0xd($v0) +/* 107DBC 7F0D328C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33B) +/* 107DC0 7F0D3290 A029E33B */ sb $t1, %lo(byte_CODE_bss_8008E33B)($at) +/* 107DC4 7F0D3294 904B000E */ lbu $t3, 0xe($v0) +/* 107DC8 7F0D3298 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33A) +/* 107DCC 7F0D329C A02BE33A */ sb $t3, %lo(byte_CODE_bss_8008E33A)($at) +/* 107DD0 7F0D32A0 904C0010 */ lbu $t4, 0x10($v0) +/* 107DD4 7F0D32A4 904D000F */ lbu $t5, 0xf($v0) +/* 107DD8 7F0D32A8 3C018009 */ lui $at, %hi(spec_IY) +/* 107DDC 7F0D32AC 000C5200 */ sll $t2, $t4, 8 +/* 107DE0 7F0D32B0 014D7821 */ addu $t7, $t2, $t5 +/* 107DE4 7F0D32B4 A42FE350 */ sh $t7, %lo(spec_IY)($at) +/* 107DE8 7F0D32B8 90590012 */ lbu $t9, 0x12($v0) +/* 107DEC 7F0D32BC 90580011 */ lbu $t8, 0x11($v0) +/* 107DF0 7F0D32C0 3C018009 */ lui $at, %hi(spec_IX) +/* 107DF4 7F0D32C4 00197200 */ sll $t6, $t9, 8 +/* 107DF8 7F0D32C8 01D84821 */ addu $t1, $t6, $t8 +/* 107DFC 7F0D32CC A429E34E */ sh $t1, %lo(spec_IX)($at) +/* 107E00 7F0D32D0 904B0013 */ lbu $t3, 0x13($v0) +/* 107E04 7F0D32D4 3C018009 */ lui $at, %hi(spec_IFF2_lower) +/* 107E08 7F0D32D8 000B6083 */ sra $t4, $t3, 2 +/* 107E0C 7F0D32DC 318D0001 */ andi $t5, $t4, 1 +/* 107E10 7F0D32E0 A0AD0000 */ sb $t5, ($a1) +/* 107E14 7F0D32E4 A02DE34A */ sb $t5, %lo(spec_IFF2_lower)($at) +/* 107E18 7F0D32E8 904F0014 */ lbu $t7, 0x14($v0) +/* 107E1C 7F0D32EC 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E349) +/* 107E20 7F0D32F0 A02FE349 */ sb $t7, %lo(byte_CODE_bss_8008E349)($at) +/* 107E24 7F0D32F4 90590015 */ lbu $t9, 0x15($v0) +/* 107E28 7F0D32F8 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E339) +/* 107E2C 7F0D32FC A039E339 */ sb $t9, %lo(byte_CODE_bss_8008E339)($at) +/* 107E30 7F0D3300 904E0016 */ lbu $t6, 0x16($v0) +/* 107E34 7F0D3304 3C018009 */ lui $at, %hi(spectrum_header16_15) +/* 107E38 7F0D3308 A02EE338 */ sb $t6, %lo(spectrum_header16_15)($at) +/* 107E3C 7F0D330C 90580018 */ lbu $t8, 0x18($v0) +/* 107E40 7F0D3310 904B0017 */ lbu $t3, 0x17($v0) +/* 107E44 7F0D3314 3C018009 */ lui $at, %hi(spec_PC) +/* 107E48 7F0D3318 00184A00 */ sll $t1, $t8, 8 +/* 107E4C 7F0D331C 012B6021 */ addu $t4, $t1, $t3 +/* 107E50 7F0D3320 A4CC0000 */ sh $t4, ($a2) +/* 107E54 7F0D3324 904A0019 */ lbu $t2, 0x19($v0) +/* 107E58 7F0D3328 314400FF */ andi $a0, $t2, 0xff +/* 107E5C 7F0D332C 18800003 */ blez $a0, .L7F0D333C +/* 107E60 7F0D3330 A0EA0000 */ sb $t2, ($a3) +/* 107E64 7F0D3334 248D0001 */ addiu $t5, $a0, 1 +/* 107E68 7F0D3338 A0ED0000 */ sb $t5, ($a3) +.L7F0D333C: +/* 107E6C 7F0D333C 94C30000 */ lhu $v1, ($a2) +/* 107E70 7F0D3340 8D020000 */ lw $v0, ($t0) +/* 107E74 7F0D3344 8FBF0014 */ lw $ra, 0x14($sp) +/* 107E78 7F0D3348 246C0002 */ addiu $t4, $v1, 2 +/* 107E7C 7F0D334C 00437021 */ addu $t6, $v0, $v1 +/* 107E80 7F0D3350 91D80001 */ lbu $t8, 1($t6) +/* 107E84 7F0D3354 00627821 */ addu $t7, $v1, $v0 +/* 107E88 7F0D3358 91F90000 */ lbu $t9, ($t7) +/* 107E8C 7F0D335C 00184A00 */ sll $t1, $t8, 8 +/* 107E90 7F0D3360 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107E94 7F0D3364 03295825 */ or $t3, $t9, $t1 +/* 107E98 7F0D3368 A42BE354 */ sh $t3, %lo(spec_PC)($at) +/* 107E9C 7F0D336C 03E00008 */ jr $ra +/* 107EA0 7F0D3370 A4CC0000 */ sh $t4, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void run_spectrum_game(void) { + +} +#else +GLOBAL_ASM( +.text +glabel run_spectrum_game +/* 107EA4 7F0D3374 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 107EA8 7F0D3378 AFBF0014 */ sw $ra, 0x14($sp) +/* 107EAC 7F0D337C 0FC34B21 */ jal spectrum_p1controller_to_kempston +/* 107EB0 7F0D3380 00000000 */ nop +/* 107EB4 7F0D3384 0FC34E0B */ jal spectrum_hw_emulation +/* 107EB8 7F0D3388 00000000 */ nop +/* 107EBC 7F0D338C 3C048009 */ lui $a0, %hi(ptr_spectrum_roms) +/* 107EC0 7F0D3390 8C84E328 */ lw $a0, %lo(ptr_spectrum_roms)($a0) +/* 107EC4 7F0D3394 3C058009 */ lui $a1, %hi(ptr_6000alloc) +/* 107EC8 7F0D3398 8CA5E330 */ lw $a1, %lo(ptr_6000alloc)($a1) +/* 107ECC 7F0D339C 0FC34AA1 */ jal sub_GAME_7F0D2A84 +/* 107ED0 7F0D33A0 24844000 */ addiu $a0, $a0, 0x4000 +/* 107ED4 7F0D33A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 107ED8 7F0D33A8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107EDC 7F0D33AC 03E00008 */ jr $ra +/* 107EE0 7F0D33B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_draw_screen(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_draw_screen +/* 107EE4 7F0D33B4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 107EE8 7F0D33B8 00801025 */ move $v0, $a0 +/* 107EEC 7F0D33BC AFBF002C */ sw $ra, 0x2c($sp) +/* 107EF0 7F0D33C0 AFBE0028 */ sw $fp, 0x28($sp) +/* 107EF4 7F0D33C4 AFB70024 */ sw $s7, 0x24($sp) +/* 107EF8 7F0D33C8 AFB60020 */ sw $s6, 0x20($sp) +/* 107EFC 7F0D33CC AFB5001C */ sw $s5, 0x1c($sp) +/* 107F00 7F0D33D0 AFB40018 */ sw $s4, 0x18($sp) +/* 107F04 7F0D33D4 AFB30014 */ sw $s3, 0x14($sp) +/* 107F08 7F0D33D8 AFB20010 */ sw $s2, 0x10($sp) +/* 107F0C 7F0D33DC AFB1000C */ sw $s1, 0xc($sp) +/* 107F10 7F0D33E0 AFB00008 */ sw $s0, 8($sp) +/* 107F14 7F0D33E4 3C0BE700 */ lui $t3, 0xe700 +/* 107F18 7F0D33E8 24840008 */ addiu $a0, $a0, 8 +/* 107F1C 7F0D33EC AC4B0000 */ sw $t3, ($v0) +/* 107F20 7F0D33F0 AC400004 */ sw $zero, 4($v0) +/* 107F24 7F0D33F4 00801825 */ move $v1, $a0 +/* 107F28 7F0D33F8 3C0E8005 */ lui $t6, %hi(D_8004ED0C) +/* 107F2C 7F0D33FC 25CEED0C */ addiu $t6, %lo(D_8004ED0C) # addiu $t6, $t6, -0x12f4 +/* 107F30 7F0D3400 24840008 */ addiu $a0, $a0, 8 +/* 107F34 7F0D3404 3C10FD10 */ lui $s0, 0xfd10 +/* 107F38 7F0D3408 AC6E0004 */ sw $t6, 4($v1) +/* 107F3C 7F0D340C 00802825 */ move $a1, $a0 +/* 107F40 7F0D3410 3C0FF500 */ lui $t7, (0xF5000300 >> 16) # lui $t7, 0xf500 +/* 107F44 7F0D3414 AC700000 */ sw $s0, ($v1) +/* 107F48 7F0D3418 35EF0300 */ ori $t7, (0xF5000300 & 0xFFFF) # ori $t7, $t7, 0x300 +/* 107F4C 7F0D341C 24840008 */ addiu $a0, $a0, 8 +/* 107F50 7F0D3420 3C110700 */ lui $s1, 0x700 +/* 107F54 7F0D3424 ACAF0000 */ sw $t7, ($a1) +/* 107F58 7F0D3428 00803025 */ move $a2, $a0 +/* 107F5C 7F0D342C ACB10004 */ sw $s1, 4($a1) +/* 107F60 7F0D3430 24840008 */ addiu $a0, $a0, 8 +/* 107F64 7F0D3434 3C12E600 */ lui $s2, 0xe600 +/* 107F68 7F0D3438 00803825 */ move $a3, $a0 +/* 107F6C 7F0D343C ACD20000 */ sw $s2, ($a2) +/* 107F70 7F0D3440 ACC00004 */ sw $zero, 4($a2) +/* 107F74 7F0D3444 3C190703 */ lui $t9, (0x0703C000 >> 16) # lui $t9, 0x703 +/* 107F78 7F0D3448 3739C000 */ ori $t9, (0x0703C000 & 0xFFFF) # ori $t9, $t9, 0xc000 +/* 107F7C 7F0D344C 24840008 */ addiu $a0, $a0, 8 +/* 107F80 7F0D3450 3C18F000 */ lui $t8, 0xf000 +/* 107F84 7F0D3454 ACF80000 */ sw $t8, ($a3) +/* 107F88 7F0D3458 ACF90004 */ sw $t9, 4($a3) +/* 107F8C 7F0D345C 00801025 */ move $v0, $a0 +/* 107F90 7F0D3460 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 107F94 7F0D3464 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 107F98 7F0D3468 24840008 */ addiu $a0, $a0, 8 +/* 107F9C 7F0D346C AC4E0000 */ sw $t6, ($v0) +/* 107FA0 7F0D3470 00801825 */ move $v1, $a0 +/* 107FA4 7F0D3474 AC400004 */ sw $zero, 4($v0) +/* 107FA8 7F0D3478 3C180F0A */ lui $t8, (0x0F0A4000 >> 16) # lui $t8, 0xf0a +/* 107FAC 7F0D347C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 107FB0 7F0D3480 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 107FB4 7F0D3484 37184000 */ ori $t8, (0x0F0A4000 & 0xFFFF) # ori $t8, $t8, 0x4000 +/* 107FB8 7F0D3488 24840008 */ addiu $a0, $a0, 8 +/* 107FBC 7F0D348C AC780004 */ sw $t8, 4($v1) +/* 107FC0 7F0D3490 AC6F0000 */ sw $t7, ($v1) +/* 107FC4 7F0D3494 00802825 */ move $a1, $a0 +/* 107FC8 7F0D3498 3C19FCFF */ lui $t9, (0xFCFFFFFF >> 16) # lui $t9, 0xfcff +/* 107FCC 7F0D349C 3739FFFF */ ori $t9, (0xFCFFFFFF & 0xFFFF) # ori $t9, $t9, 0xffff +/* 107FD0 7F0D34A0 24840008 */ addiu $a0, $a0, 8 +/* 107FD4 7F0D34A4 3C0EFFFC */ lui $t6, (0xFFFCF87C >> 16) # lui $t6, 0xfffc +/* 107FD8 7F0D34A8 35CEF87C */ ori $t6, (0xFFFCF87C & 0xFFFF) # ori $t6, $t6, 0xf87c +/* 107FDC 7F0D34AC ACB90000 */ sw $t9, ($a1) +/* 107FE0 7F0D34B0 00803025 */ move $a2, $a0 +/* 107FE4 7F0D34B4 ACAE0004 */ sw $t6, 4($a1) +/* 107FE8 7F0D34B8 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 107FEC 7F0D34BC 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 107FF0 7F0D34C0 24840008 */ addiu $a0, $a0, 8 +/* 107FF4 7F0D34C4 ACCF0000 */ sw $t7, ($a2) +/* 107FF8 7F0D34C8 ACC00004 */ sw $zero, 4($a2) +/* 107FFC 7F0D34CC 00803825 */ move $a3, $a0 +/* 108000 7F0D34D0 3C18BB00 */ lui $t8, (0xBB000001 >> 16) # lui $t8, 0xbb00 +/* 108004 7F0D34D4 37180001 */ ori $t8, (0xBB000001 & 0xFFFF) # ori $t8, $t8, 1 +/* 108008 7F0D34D8 2419FFFF */ li $t9, -1 +/* 10800C 7F0D34DC ACF90004 */ sw $t9, 4($a3) +/* 108010 7F0D34E0 ACF80000 */ sw $t8, ($a3) +/* 108014 7F0D34E4 3C138009 */ lui $s3, %hi(ptr_6000alloc) +/* 108018 7F0D34E8 3C16073F */ lui $s6, (0x073FF200 >> 16) # lui $s6, 0x73f +/* 10801C 7F0D34EC 3C17BA00 */ lui $s7, (0xBA000E02 >> 16) # lui $s7, 0xba00 +/* 108020 7F0D34F0 3C1FF540 */ lui $ra, (0xF5400800 >> 16) # lui $ra, 0xf540 +/* 108024 7F0D34F4 24840008 */ addiu $a0, $a0, 8 +/* 108028 7F0D34F8 37FF0800 */ ori $ra, (0xF5400800 & 0xFFFF) # ori $ra, $ra, 0x800 +/* 10802C 7F0D34FC 36F70E02 */ ori $s7, (0xBA000E02 & 0xFFFF) # ori $s7, $s7, 0xe02 +/* 108030 7F0D3500 36D6F200 */ ori $s6, (0x073FF200 & 0xFFFF) # ori $s6, $s6, 0xf200 +/* 108034 7F0D3504 2673E330 */ addiu $s3, %lo(ptr_6000alloc) # addiu $s3, $s3, -0x1cd0 +/* 108038 7F0D3508 AFA0003C */ sw $zero, 0x3c($sp) +/* 10803C 7F0D350C 00001025 */ move $v0, $zero +/* 108040 7F0D3510 3C14F510 */ lui $s4, 0xf510 +/* 108044 7F0D3514 3C15F300 */ lui $s5, 0xf300 +/* 108048 7F0D3518 341E8000 */ li $fp, 32768 +.L7F0D351C: +/* 10804C 7F0D351C 8FA8003C */ lw $t0, 0x3c($sp) +/* 108050 7F0D3520 24430001 */ addiu $v1, $v0, 1 +/* 108054 7F0D3524 00036180 */ sll $t4, $v1, 6 +/* 108058 7F0D3528 00026980 */ sll $t5, $v0, 6 +/* 10805C 7F0D352C 25AD0018 */ addiu $t5, $t5, 0x18 +/* 108060 7F0D3530 258C0018 */ addiu $t4, $t4, 0x18 +/* 108064 7F0D3534 000C7880 */ sll $t7, $t4, 2 +/* 108068 7F0D3538 000DC880 */ sll $t9, $t5, 2 +/* 10806C 7F0D353C 000872C0 */ sll $t6, $t0, 0xb +/* 108070 7F0D3540 01C04025 */ move $t0, $t6 +/* 108074 7F0D3544 332D0FFF */ andi $t5, $t9, 0xfff +/* 108078 7F0D3548 31EC0FFF */ andi $t4, $t7, 0xfff +/* 10807C 7F0D354C AFA30034 */ sw $v1, 0x34($sp) +/* 108080 7F0D3550 00003825 */ move $a3, $zero +.L7F0D3554: +/* 108084 7F0D3554 00801025 */ move $v0, $a0 +/* 108088 7F0D3558 24840008 */ addiu $a0, $a0, 8 +/* 10808C 7F0D355C AC4B0000 */ sw $t3, ($v0) +/* 108090 7F0D3560 AC400004 */ sw $zero, 4($v0) +/* 108094 7F0D3564 00801825 */ move $v1, $a0 +/* 108098 7F0D3568 AC700000 */ sw $s0, ($v1) +/* 10809C 7F0D356C 8E6F0000 */ lw $t7, ($s3) +/* 1080A0 7F0D3570 24840008 */ addiu $a0, $a0, 8 +/* 1080A4 7F0D3574 00802825 */ move $a1, $a0 +/* 1080A8 7F0D3578 010FC021 */ addu $t8, $t0, $t7 +/* 1080AC 7F0D357C AC780004 */ sw $t8, 4($v1) +/* 1080B0 7F0D3580 24840008 */ addiu $a0, $a0, 8 +/* 1080B4 7F0D3584 00803025 */ move $a2, $a0 +/* 1080B8 7F0D3588 ACB10004 */ sw $s1, 4($a1) +/* 1080BC 7F0D358C ACB40000 */ sw $s4, ($a1) +/* 1080C0 7F0D3590 24840008 */ addiu $a0, $a0, 8 +/* 1080C4 7F0D3594 00804825 */ move $t1, $a0 +/* 1080C8 7F0D3598 ACC00004 */ sw $zero, 4($a2) +/* 1080CC 7F0D359C ACD20000 */ sw $s2, ($a2) +/* 1080D0 7F0D35A0 24840008 */ addiu $a0, $a0, 8 +/* 1080D4 7F0D35A4 00801025 */ move $v0, $a0 +/* 1080D8 7F0D35A8 AD360004 */ sw $s6, 4($t1) +/* 1080DC 7F0D35AC AD350000 */ sw $s5, ($t1) +/* 1080E0 7F0D35B0 24840008 */ addiu $a0, $a0, 8 +/* 1080E4 7F0D35B4 AC400004 */ sw $zero, 4($v0) +/* 1080E8 7F0D35B8 AC4B0000 */ sw $t3, ($v0) +/* 1080EC 7F0D35BC 00801825 */ move $v1, $a0 +/* 1080F0 7F0D35C0 24840008 */ addiu $a0, $a0, 8 +/* 1080F4 7F0D35C4 00802825 */ move $a1, $a0 +/* 1080F8 7F0D35C8 3C190001 */ lui $t9, (0x00018060 >> 16) # lui $t9, 1 +/* 1080FC 7F0D35CC AC770000 */ sw $s7, ($v1) +/* 108100 7F0D35D0 AC7E0004 */ sw $fp, 4($v1) +/* 108104 7F0D35D4 37398060 */ ori $t9, (0x00018060 & 0xFFFF) # ori $t9, $t9, 0x8060 +/* 108108 7F0D35D8 ACB90004 */ sw $t9, 4($a1) +/* 10810C 7F0D35DC 24840008 */ addiu $a0, $a0, 8 +/* 108110 7F0D35E0 24E20001 */ addiu $v0, $a3, 1 +/* 108114 7F0D35E4 ACBF0000 */ sw $ra, ($a1) +/* 108118 7F0D35E8 00803025 */ move $a2, $a0 +/* 10811C 7F0D35EC 3C0F007E */ lui $t7, (0x007E07E0 >> 16) # lui $t7, 0x7e +/* 108120 7F0D35F0 3C0EF200 */ lui $t6, 0xf200 +/* 108124 7F0D35F4 0002C180 */ sll $t8, $v0, 6 +/* 108128 7F0D35F8 ACCE0000 */ sw $t6, ($a2) +/* 10812C 7F0D35FC 35EF07E0 */ ori $t7, (0x007E07E0 & 0xFFFF) # ori $t7, $t7, 0x7e0 +/* 108130 7F0D3600 27190020 */ addiu $t9, $t8, 0x20 +/* 108134 7F0D3604 ACCF0004 */ sw $t7, 4($a2) +/* 108138 7F0D3608 00197080 */ sll $t6, $t9, 2 +/* 10813C 7F0D360C 31CF0FFF */ andi $t7, $t6, 0xfff +/* 108140 7F0D3610 000FC300 */ sll $t8, $t7, 0xc +/* 108144 7F0D3614 3C01E400 */ lui $at, 0xe400 +/* 108148 7F0D3618 0301C825 */ or $t9, $t8, $at +/* 10814C 7F0D361C 24840008 */ addiu $a0, $a0, 8 +/* 108150 7F0D3620 032C7025 */ or $t6, $t9, $t4 +/* 108154 7F0D3624 00077980 */ sll $t7, $a3, 6 +/* 108158 7F0D3628 25F80020 */ addiu $t8, $t7, 0x20 +/* 10815C 7F0D362C 00805025 */ move $t2, $a0 +/* 108160 7F0D3630 AD4E0000 */ sw $t6, ($t2) +/* 108164 7F0D3634 0018C880 */ sll $t9, $t8, 2 +/* 108168 7F0D3638 332E0FFF */ andi $t6, $t9, 0xfff +/* 10816C 7F0D363C 000E7B00 */ sll $t7, $t6, 0xc +/* 108170 7F0D3640 24840008 */ addiu $a0, $a0, 8 +/* 108174 7F0D3644 00801825 */ move $v1, $a0 +/* 108178 7F0D3648 01EDC025 */ or $t8, $t7, $t5 +/* 10817C 7F0D364C AD580004 */ sw $t8, 4($t2) +/* 108180 7F0D3650 24840008 */ addiu $a0, $a0, 8 +/* 108184 7F0D3654 00802825 */ move $a1, $a0 +/* 108188 7F0D3658 3C0F0400 */ lui $t7, (0x04000400 >> 16) # lui $t7, 0x400 +/* 10818C 7F0D365C 3C19B400 */ lui $t9, 0xb400 +/* 108190 7F0D3660 24010004 */ li $at, 4 +/* 108194 7F0D3664 AC790000 */ sw $t9, ($v1) +/* 108198 7F0D3668 35EF0400 */ ori $t7, (0x04000400 & 0xFFFF) # ori $t7, $t7, 0x400 +/* 10819C 7F0D366C AC600004 */ sw $zero, 4($v1) +/* 1081A0 7F0D3670 3C0EB300 */ lui $t6, 0xb300 +/* 1081A4 7F0D3674 00403825 */ move $a3, $v0 +/* 1081A8 7F0D3678 25080800 */ addiu $t0, $t0, 0x800 +/* 1081AC 7F0D367C ACAE0000 */ sw $t6, ($a1) +/* 1081B0 7F0D3680 ACAF0004 */ sw $t7, 4($a1) +/* 1081B4 7F0D3684 1441FFB3 */ bne $v0, $at, .L7F0D3554 +/* 1081B8 7F0D3688 24840008 */ addiu $a0, $a0, 8 +/* 1081BC 7F0D368C 8FB8003C */ lw $t8, 0x3c($sp) +/* 1081C0 7F0D3690 8FA20034 */ lw $v0, 0x34($sp) +/* 1081C4 7F0D3694 24010003 */ li $at, 3 +/* 1081C8 7F0D3698 27190004 */ addiu $t9, $t8, 4 +/* 1081CC 7F0D369C 1441FF9F */ bne $v0, $at, .L7F0D351C +/* 1081D0 7F0D36A0 AFB9003C */ sw $t9, 0x3c($sp) +/* 1081D4 7F0D36A4 8FBF002C */ lw $ra, 0x2c($sp) +/* 1081D8 7F0D36A8 8FB00008 */ lw $s0, 8($sp) +/* 1081DC 7F0D36AC 8FB1000C */ lw $s1, 0xc($sp) +/* 1081E0 7F0D36B0 8FB20010 */ lw $s2, 0x10($sp) +/* 1081E4 7F0D36B4 8FB30014 */ lw $s3, 0x14($sp) +/* 1081E8 7F0D36B8 8FB40018 */ lw $s4, 0x18($sp) +/* 1081EC 7F0D36BC 8FB5001C */ lw $s5, 0x1c($sp) +/* 1081F0 7F0D36C0 8FB60020 */ lw $s6, 0x20($sp) +/* 1081F4 7F0D36C4 8FB70024 */ lw $s7, 0x24($sp) +/* 1081F8 7F0D36C8 8FBE0028 */ lw $fp, 0x28($sp) +/* 1081FC 7F0D36CC 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 108200 7F0D36D0 03E00008 */ jr $ra +/* 108204 7F0D36D4 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_input_handling(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_input_handling +/* 108208 7F0D36D8 AFA50004 */ sw $a1, 4($sp) +/* 10820C 7F0D36DC 30AE00FF */ andi $t6, $a1, 0xff +/* 108210 7F0D36E0 30C200FF */ andi $v0, $a2, 0xff +/* 108214 7F0D36E4 240100FE */ li $at, 254 +/* 108218 7F0D36E8 01C02825 */ move $a1, $t6 +/* 10821C 7F0D36EC AFA40000 */ sw $a0, ($sp) +/* 108220 7F0D36F0 14410030 */ bne $v0, $at, .L7F0D37B4 +/* 108224 7F0D36F4 AFA60008 */ sw $a2, 8($sp) +/* 108228 7F0D36F8 3C068005 */ lui $a2, %hi(D_8004EC34) +/* 10822C 7F0D36FC 240300FF */ li $v1, 255 +/* 108230 7F0D3700 24C6EC34 */ addiu $a2, %lo(D_8004EC34) # addiu $a2, $a2, -0x13cc +/* 108234 7F0D3704 00001025 */ move $v0, $zero +/* 108238 7F0D3708 24070008 */ li $a3, 8 +.L7F0D370C: +/* 10823C 7F0D370C 30B80001 */ andi $t8, $a1, 1 +/* 108240 7F0D3710 17000006 */ bnez $t8, .L7F0D372C +/* 108244 7F0D3714 00A02025 */ move $a0, $a1 +/* 108248 7F0D3718 00C2C821 */ addu $t9, $a2, $v0 +/* 10824C 7F0D371C 93280000 */ lbu $t0, ($t9) +/* 108250 7F0D3720 00681824 */ and $v1, $v1, $t0 +/* 108254 7F0D3724 306900FF */ andi $t1, $v1, 0xff +/* 108258 7F0D3728 01201825 */ move $v1, $t1 +.L7F0D372C: +/* 10825C 7F0D372C 00042842 */ srl $a1, $a0, 1 +/* 108260 7F0D3730 30A400FF */ andi $a0, $a1, 0xff +/* 108264 7F0D3734 308B0001 */ andi $t3, $a0, 1 +/* 108268 7F0D3738 15600006 */ bnez $t3, .L7F0D3754 +/* 10826C 7F0D373C 00042842 */ srl $a1, $a0, 1 +/* 108270 7F0D3740 00C26021 */ addu $t4, $a2, $v0 +/* 108274 7F0D3744 918D0001 */ lbu $t5, 1($t4) +/* 108278 7F0D3748 006D1824 */ and $v1, $v1, $t5 +/* 10827C 7F0D374C 306E00FF */ andi $t6, $v1, 0xff +/* 108280 7F0D3750 01C01825 */ move $v1, $t6 +.L7F0D3754: +/* 108284 7F0D3754 30A400FF */ andi $a0, $a1, 0xff +/* 108288 7F0D3758 30980001 */ andi $t8, $a0, 1 +/* 10828C 7F0D375C 17000006 */ bnez $t8, .L7F0D3778 +/* 108290 7F0D3760 00042842 */ srl $a1, $a0, 1 +/* 108294 7F0D3764 00C2C821 */ addu $t9, $a2, $v0 +/* 108298 7F0D3768 93280002 */ lbu $t0, 2($t9) +/* 10829C 7F0D376C 00681824 */ and $v1, $v1, $t0 +/* 1082A0 7F0D3770 306900FF */ andi $t1, $v1, 0xff +/* 1082A4 7F0D3774 01201825 */ move $v1, $t1 +.L7F0D3778: +/* 1082A8 7F0D3778 30A400FF */ andi $a0, $a1, 0xff +/* 1082AC 7F0D377C 308B0001 */ andi $t3, $a0, 1 +/* 1082B0 7F0D3780 15600006 */ bnez $t3, .L7F0D379C +/* 1082B4 7F0D3784 00042842 */ srl $a1, $a0, 1 +/* 1082B8 7F0D3788 00C26021 */ addu $t4, $a2, $v0 +/* 1082BC 7F0D378C 918D0003 */ lbu $t5, 3($t4) +/* 1082C0 7F0D3790 006D1824 */ and $v1, $v1, $t5 +/* 1082C4 7F0D3794 306E00FF */ andi $t6, $v1, 0xff +/* 1082C8 7F0D3798 01C01825 */ move $v1, $t6 +.L7F0D379C: +/* 1082CC 7F0D379C 30AF00FF */ andi $t7, $a1, 0xff +/* 1082D0 7F0D37A0 24420004 */ addiu $v0, $v0, 4 +/* 1082D4 7F0D37A4 1447FFD9 */ bne $v0, $a3, .L7F0D370C +/* 1082D8 7F0D37A8 01E02825 */ move $a1, $t7 +/* 1082DC 7F0D37AC 03E00008 */ jr $ra +/* 1082E0 7F0D37B0 00601025 */ move $v0, $v1 + +.L7F0D37B4: +/* 1082E4 7F0D37B4 2401001F */ li $at, 31 +/* 1082E8 7F0D37B8 14410003 */ bne $v0, $at, .L7F0D37C8 +/* 1082EC 7F0D37BC 3C028005 */ lui $v0, %hi(D_8004EC40) +/* 1082F0 7F0D37C0 03E00008 */ jr $ra +/* 1082F4 7F0D37C4 9042EC40 */ lbu $v0, %lo(D_8004EC40)($v0) + +.L7F0D37C8: +/* 1082F8 7F0D37C8 240200FF */ li $v0, 255 +/* 1082FC 7F0D37CC 03E00008 */ jr $ra +/* 108300 7F0D37D0 00000000 */ nop +) +#endif + + + + +void nullsub_50(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D37DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D37DC +/* 10830C 7F0D37DC 30CE00FF */ andi $t6, $a2, 0xff +/* 108310 7F0D37E0 240100FE */ li $at, 254 +/* 108314 7F0D37E4 AFA40000 */ sw $a0, ($sp) +/* 108318 7F0D37E8 AFA50004 */ sw $a1, 4($sp) +/* 10831C 7F0D37EC AFA60008 */ sw $a2, 8($sp) +/* 108320 7F0D37F0 AFA7000C */ sw $a3, 0xc($sp) +/* 108324 7F0D37F4 15C1000A */ bne $t6, $at, .L7F0D3820 +/* 108328 7F0D37F8 30EF00FF */ andi $t7, $a3, 0xff +/* 10832C 7F0D37FC 3C188005 */ lui $t8, %hi(D_8004ED54) +/* 108330 7F0D3800 9318ED54 */ lbu $t8, %lo(D_8004ED54)($t8) +/* 108334 7F0D3804 31E20007 */ andi $v0, $t7, 7 +/* 108338 7F0D3808 3C018005 */ lui $at, %hi(D_8004ED54) +/* 10833C 7F0D380C 10580002 */ beq $v0, $t8, .L7F0D3818 +/* 108340 7F0D3810 00000000 */ nop +/* 108344 7F0D3814 A022ED54 */ sb $v0, %lo(D_8004ED54)($at) +.L7F0D3818: +/* 108348 7F0D3818 03E00008 */ jr $ra +/* 10834C 7F0D381C 00001025 */ move $v0, $zero + +.L7F0D3820: +/* 108350 7F0D3820 00001025 */ move $v0, $zero +/* 108354 7F0D3824 03E00008 */ jr $ra +/* 108358 7F0D3828 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_hw_emulation(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005C12C*/ +glabel spectrum_op_table +.word spectrum_op_00 +.word spectrum_op_01 +.word spectrum_op_02 +.word spectrum_op_03 +.word spectrum_op_04 +.word spectrum_op_05 +.word spectrum_op_06 +.word spectrum_op_07 +.word spectrum_op_08 +.word spectrum_op_09 +.word spectrum_op_0A +.word spectrum_op_0B +.word spectrum_op_0C +.word spectrum_op_0D +.word spectrum_op_0E +.word spectrum_op_0F +.word spectrum_op_10 +.word spectrum_op_11 +.word spectrum_op_12 +.word spectrum_op_13 +.word spectrum_op_14 +.word spectrum_op_15 +.word spectrum_op_16 +.word spectrum_op_17 +.word spectrum_op_18 +.word spectrum_op_19 +.word spectrum_op_1A +.word spectrum_op_1B +.word spectrum_op_1C +.word spectrum_op_1D +.word spectrum_op_1E +.word spectrum_op_1F +.word spectrum_op_20 +.word spectrum_op_21 +.word spectrum_op_22 +.word spectrum_op_23 +.word spectrum_op_24 +.word spectrum_op_25 +.word spectrum_op_26 +.word spectrum_op_27 +.word spectrum_op_28 +.word spectrum_op_29 +.word spectrum_op_2A +.word spectrum_op_2B +.word spectrum_op_2C +.word spectrum_op_2D +.word spectrum_op_2E +.word spectrum_op_2F +.word spectrum_op_30 +.word spectrum_op_31 +.word spectrum_op_32 +.word spectrum_op_33 +.word spectrum_op_34 +.word spectrum_op_35 +.word spectrum_op_36 +.word spectrum_op_37 +.word spectrum_op_38 +.word spectrum_op_39 +.word spectrum_op_3A +.word spectrum_op_3B +.word spectrum_op_3C +.word spectrum_op_3D +.word spectrum_op_3E +.word spectrum_op_3F +.word spectrum_op_40 +.word spectrum_op_41 +.word spectrum_op_42 +.word spectrum_op_43 +.word spectrum_op_44 +.word spectrum_op_45 +.word spectrum_op_46 +.word spectrum_op_47 +.word spectrum_op_48 +.word spectrum_op_49 +.word spectrum_op_4A +.word spectrum_op_4B +.word spectrum_op_4C +.word spectrum_op_4D +.word spectrum_op_4E +.word spectrum_op_4F +.word spectrum_op_50 +.word spectrum_op_51 +.word spectrum_op_52 +.word spectrum_op_53 +.word spectrum_op_54 +.word spectrum_op_55 +.word spectrum_op_56 +.word spectrum_op_57 +.word spectrum_op_58 +.word spectrum_op_59 +.word spectrum_op_5A +.word spectrum_op_5B +.word spectrum_op_5C +.word spectrum_op_5D +.word spectrum_op_5E +.word spectrum_op_5F +.word spectrum_op_60 +.word spectrum_op_61 +.word spectrum_op_62 +.word spectrum_op_63 +.word spectrum_op_64 +.word spectrum_op_65 +.word spectrum_op_66 +.word spectrum_op_67 +.word spectrum_op_68 +.word spectrum_op_69 +.word spectrum_op_6A +.word spectrum_op_6B +.word spectrum_op_6C +.word spectrum_op_6D +.word spectrum_op_6E +.word spectrum_op_6F +.word spectrum_op_70 +.word spectrum_op_71 +.word spectrum_op_72 +.word spectrum_op_73 +.word spectrum_op_74 +.word spectrum_op_75 +.word spectrum_op_76 +.word spectrum_op_77 +.word spectrum_op_78 +.word spectrum_op_79 +.word spectrum_op_7A +.word spectrum_op_7B +.word spectrum_op_7C +.word spectrum_op_7D +.word spectrum_op_7E +.word spectrum_op_7F +.word spectrum_op_80 +.word spectrum_op_81 +.word spectrum_op_82 +.word spectrum_op_83 +.word spectrum_op_84 +.word spectrum_op_85 +.word spectrum_op_86 +.word spectrum_op_87 +.word spectrum_op_88 +.word spectrum_op_89 +.word spectrum_op_8A +.word spectrum_op_8B +.word spectrum_op_8C +.word spectrum_op_8D +.word spectrum_op_8E +.word spectrum_op_8F +.word spectrum_op_90 +.word spectrum_op_91 +.word spectrum_op_92 +.word spectrum_op_93 +.word spectrum_op_94 +.word spectrum_op_95 +.word spectrum_op_96 +.word spectrum_op_97 +.word spectrum_op_98 +.word spectrum_op_99 +.word spectrum_op_9A +.word spectrum_op_9B +.word spectrum_op_9C +.word spectrum_op_9D +.word spectrum_op_9E +.word spectrum_op_9F +.word spectrum_op_A0 +.word spectrum_op_A1 +.word spectrum_op_A2 +.word spectrum_op_A3 +.word spectrum_op_A4 +.word spectrum_op_A5 +.word spectrum_op_A6 +.word spectrum_op_A7 +.word spectrum_op_A8 +.word spectrum_op_A9 +.word spectrum_op_AA +.word spectrum_op_AB +.word spectrum_op_AC +.word spectrum_op_AD +.word spectrum_op_AE +.word spectrum_op_AF +.word spectrum_op_B0 +.word spectrum_op_B1 +.word spectrum_op_B2 +.word spectrum_op_B3 +.word spectrum_op_B4 +.word spectrum_op_B5 +.word spectrum_op_B6 +.word spectrum_op_B7 +.word spectrum_op_B8 +.word spectrum_op_B9 +.word spectrum_op_BA +.word spectrum_op_BB +.word spectrum_op_BC +.word spectrum_op_BD +.word spectrum_op_BE +.word spectrum_op_BF +.word spectrum_op_C0 +.word spectrum_op_C1 +.word spectrum_op_C2 +.word spectrum_op_C3 +.word spectrum_op_C4 +.word spectrum_op_C5 +.word spectrum_op_C6 +.word spectrum_op_C7 +.word spectrum_op_C8 +.word spectrum_op_C9 +.word spectrum_op_CA +.word spectrum_op_CB +.word spectrum_op_CC +.word spectrum_op_CD +.word spectrum_op_CE +.word spectrum_op_CF +.word spectrum_op_D0 +.word spectrum_op_D1 +.word spectrum_op_D2 +.word spectrum_op_D3 +.word spectrum_op_D4 +.word spectrum_op_D5 +.word spectrum_op_D6 +.word spectrum_op_D7 +.word spectrum_op_D8 +.word spectrum_op_D9 +.word spectrum_op_DA +.word spectrum_op_DB +.word spectrum_op_DC +.word spectrum_op_DD +.word spectrum_op_DE +.word spectrum_op_DF +.word spectrum_op_E0 +.word spectrum_op_E1 +.word spectrum_op_E2 +.word spectrum_op_E3 +.word spectrum_op_E4 +.word spectrum_op_E5 +.word spectrum_op_E6 +.word spectrum_op_E7 +.word spectrum_op_E8 +.word spectrum_op_E9 +.word spectrum_op_EA +.word spectrum_op_EB +.word spectrum_op_EC +.word spectrum_op_ED +.word spectrum_op_EE +.word spectrum_op_EF +.word spectrum_op_F0 +.word spectrum_op_F1 +.word spectrum_op_F2 +.word spectrum_op_F3 +.word spectrum_op_F4 +.word spectrum_op_F5 +.word spectrum_op_F6 +.word spectrum_op_F7 +.word spectrum_op_F8 +.word spectrum_op_F9 +.word spectrum_op_FA +.word spectrum_op_FB +.word spectrum_op_FC +.word spectrum_op_FD +.word spectrum_op_FE +.word spectrum_op_FF + +/*D:8005C52C*/ +glabel jpt_8005C52C +.word spectrum_op_CB_00 +.word spectrum_op_CB_01 +.word spectrum_op_CB_02 +.word spectrum_op_CB_03 +.word spectrum_op_CB_04 +.word spectrum_op_CB_05 +.word spectrum_op_CB_06 +.word spectrum_op_CB_07 +.word spectrum_op_CB_08 +.word spectrum_op_CB_09 +.word spectrum_op_CB_0A +.word spectrum_op_CB_0B +.word spectrum_op_CB_0C +.word spectrum_op_CB_0D +.word spectrum_op_CB_0E +.word spectrum_op_CB_0F +.word spectrum_op_CB_10 +.word spectrum_op_CB_11 +.word spectrum_op_CB_12 +.word spectrum_op_CB_13 +.word spectrum_op_CB_14 +.word spectrum_op_CB_15 +.word spectrum_op_CB_16 +.word spectrum_op_CB_17 +.word spectrum_op_CB_18 +.word spectrum_op_CB_19 +.word spectrum_op_CB_1A +.word spectrum_op_CB_1B +.word spectrum_op_CB_1C +.word spectrum_op_CB_1D +.word spectrum_op_CB_1E +.word spectrum_op_CB_1F +.word spectrum_op_CB_20 +.word spectrum_op_CB_21 +.word spectrum_op_CB_22 +.word spectrum_op_CB_23 +.word spectrum_op_CB_24 +.word spectrum_op_CB_25 +.word spectrum_op_CB_26 +.word spectrum_op_CB_27 +.word spectrum_op_CB_28 +.word spectrum_op_CB_29 +.word spectrum_op_CB_2A +.word spectrum_op_CB_2B +.word spectrum_op_CB_2C +.word spectrum_op_CB_2D +.word spectrum_op_CB_2E +.word spectrum_op_CB_2F +.word spectrum_op_CB_30 +.word spectrum_op_CB_31 +.word spectrum_op_CB_32 +.word spectrum_op_CB_33 +.word spectrum_op_CB_34 +.word spectrum_op_CB_35 +.word spectrum_op_CB_36 +.word spectrum_op_CB_37 +.word spectrum_op_CB_38 +.word spectrum_op_CB_39 +.word spectrum_op_CB_3A +.word spectrum_op_CB_3B +.word spectrum_op_CB_3C +.word spectrum_op_CB_3D +.word spectrum_op_CB_3E +.word spectrum_op_CB_3F + +/*D:8005C62C*/ +glabel jpt_8005C62C +.word spectrum_op_SET_x_B +.word spectrum_op_SET_x_C +.word spectrum_op_SET_x_D +.word spectrum_op_SET_x_E +.word spectrum_op_SET_x_H +.word spectrum_op_SET_x_L +.word spectrum_op_SET_x_HL +.word spectrum_op_SET_x_A + +/*D:8005C64C*/ +glabel jpt_8005C64C +.word spectrum_op_RES_x_B +.word spectrum_op_RES_x_C +.word spectrum_op_RES_x_D +.word spectrum_op_RES_x_E +.word spectrum_op_RES_x_H +.word spectrum_op_RES_x_L +.word spectrum_op_RES_x_HL +.word spectrum_op_RES_x_A + +/*D:8005C66C*/ +glabel jpt_8005C66C +.word spectrum_op_BIT_x_B +.word spectrum_op_BIT_x_C +.word spectrum_op_BIT_x_D +.word spectrum_op_BIT_x_E +.word spectrum_op_BIT_x_H +.word spectrum_op_BIT_x_L +.word spectrum_op_BIT_x_HL +.word spectrum_op_BIT_x_A + +/*D:8005C68C*/ +glabel jpt_8005C68C +.word .L7F0DC5C4 +.word .L7F0DC5CC +.word .L7F0DC5D4 +.word .L7F0DC5DC +.word .L7F0DC5E4 +.word .L7F0DC5EC +.word .L7F0E27FC +.word .L7F0DC5F4 + +/*D:8005C6AC*/ +glabel jpt_8005C6AC +.word spectrum_op_ED_A0 +.word spectrum_op_ED_A1 +.word spectrum_op_ED_A2 +.word spectrum_op_ED_A3 +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_A8 +.word spectrum_op_ED_A9 +.word spectrum_op_ED_AA +.word spectrum_op_ED_AB +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_B0 +.word spectrum_op_ED_B1 +.word spectrum_op_ED_B2 +.word spectrum_op_ED_B3 +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_B8 +.word spectrum_op_ED_B9 +.word spectrum_op_ED_BA +.word spectrum_op_ED_BB + +/*D:8005C71C*/ +glabel jpt_8005C71C +.word spectrum_op_ED_40 +.word spectrum_op_ED_41 +.word spectrum_op_ED_42 +.word spectrum_op_ED_43 +.word spectrum_op_ED_44 +.word spectrum_op_ED_45 +.word spectrum_op_ED_46 +.word spectrum_op_ED_47 +.word spectrum_op_ED_48 +.word spectrum_op_ED_49 +.word spectrum_op_ED_4A +.word spectrum_op_ED_4B +.word spectrum_op_ED_4C +.word spectrum_op_ED_4D +.word spectrum_op_ED_4E +.word spectrum_op_ED_4F +.word spectrum_op_ED_50 +.word spectrum_op_ED_51 +.word spectrum_op_ED_52 +.word spectrum_op_ED_53 +.word spectrum_op_ED_54 +.word spectrum_op_ED_55 +.word spectrum_op_ED_56 +.word spectrum_op_ED_57 +.word spectrum_op_ED_58 +.word spectrum_op_ED_59 +.word spectrum_op_ED_5A +.word spectrum_op_ED_5B +.word spectrum_op_ED_5C +.word spectrum_op_ED_5D +.word spectrum_op_ED_5E +.word spectrum_op_ED_5F +.word spectrum_op_ED_60 +.word spectrum_op_ED_61 +.word spectrum_op_ED_62 +.word spectrum_op_ED_63 +.word spectrum_op_ED_64 +.word spectrum_op_ED_65 +.word spectrum_op_ED_66 +.word spectrum_op_ED_67 +.word spectrum_op_ED_68 +.word spectrum_op_ED_69 +.word spectrum_op_ED_6A +.word spectrum_op_ED_6B +.word spectrum_op_ED_6C +.word spectrum_op_ED_6D +.word spectrum_op_ED_6E +.word spectrum_op_ED_6F +.word spectrum_op_ED_70 +.word spectrum_op_ED_71 +.word spectrum_op_ED_72 +.word spectrum_op_ED_73 +.word spectrum_op_ED_74 +.word spectrum_op_ED_75 +.word spectrum_op_ED_76 +.word .L7F0E1A6C +.word spectrum_op_ED_78 +.word spectrum_op_ED_79 +.word spectrum_op_ED_7A +.word spectrum_op_ED_7B +.word spectrum_op_ED_7C +.word spectrum_op_ED_7D +.word spectrum_op_ED_7E + +.text +glabel spectrum_hw_emulation +/* 10835C 7F0D382C 27BDFD50 */ addiu $sp, $sp, -0x2b0 +/* 108360 7F0D3830 3C0E0001 */ lui $t6, (0x00011100 >> 16) # lui $t6, 1 +/* 108364 7F0D3834 35CE1100 */ ori $t6, (0x00011100 & 0xFFFF) # ori $t6, $t6, 0x1100 +/* 108368 7F0D3838 AFAE0280 */ sw $t6, 0x280($sp) +/* 10836C 7F0D383C 3C0E8009 */ lui $t6, %hi(byte_CODE_bss_8008E341) +/* 108370 7F0D3840 91CEE341 */ lbu $t6, %lo(byte_CODE_bss_8008E341)($t6) +/* 108374 7F0D3844 3C0D8009 */ lui $t5, %hi(off_CODE_bss_8008E340) +/* 108378 7F0D3848 3C0F8009 */ lui $t7, %hi(byte_CODE_bss_8008E342) +/* 10837C 7F0D384C 3C188009 */ lui $t8, %hi(byte_CODE_bss_8008E343) +/* 108380 7F0D3850 3C198009 */ lui $t9, %hi(off_CODE_bss_8008E344) +/* 108384 7F0D3854 3C088009 */ lui $t0, %hi(byte_CODE_bss_8008E345) +/* 108388 7F0D3858 3C098009 */ lui $t1, %hi(byte_CODE_bss_8008E346) +/* 10838C 7F0D385C 91ADE340 */ lbu $t5, %lo(off_CODE_bss_8008E340)($t5) +/* 108390 7F0D3860 91EFE342 */ lbu $t7, %lo(byte_CODE_bss_8008E342)($t7) +/* 108394 7F0D3864 9318E343 */ lbu $t8, %lo(byte_CODE_bss_8008E343)($t8) +/* 108398 7F0D3868 9339E344 */ lbu $t9, %lo(off_CODE_bss_8008E344)($t9) +/* 10839C 7F0D386C 9108E345 */ lbu $t0, %lo(byte_CODE_bss_8008E345)($t0) +/* 1083A0 7F0D3870 9129E346 */ lbu $t1, %lo(byte_CODE_bss_8008E346)($t1) +/* 1083A4 7F0D3874 A3A002A5 */ sb $zero, 0x2a5($sp) +/* 1083A8 7F0D3878 A3A002A0 */ sb $zero, 0x2a0($sp) +/* 1083AC 7F0D387C A3A002A1 */ sb $zero, 0x2a1($sp) +/* 1083B0 7F0D3880 A3A002A2 */ sb $zero, 0x2a2($sp) +/* 1083B4 7F0D3884 A3A002A3 */ sb $zero, 0x2a3($sp) +/* 1083B8 7F0D3888 A3A002A4 */ sb $zero, 0x2a4($sp) +/* 1083BC 7F0D388C A3A002A6 */ sb $zero, 0x2a6($sp) +/* 1083C0 7F0D3890 A3AE02A5 */ sb $t6, 0x2a5($sp) +/* 1083C4 7F0D3894 3C0E8009 */ lui $t6, %hi(byte_CODE_bss_8008E349) +/* 1083C8 7F0D3898 A3AD02A6 */ sb $t5, 0x2a6($sp) +/* 1083CC 7F0D389C A3AF02A4 */ sb $t7, 0x2a4($sp) +/* 1083D0 7F0D38A0 A3B802A3 */ sb $t8, 0x2a3($sp) +/* 1083D4 7F0D38A4 A3B902A2 */ sb $t9, 0x2a2($sp) +/* 1083D8 7F0D38A8 A3A802A1 */ sb $t0, 0x2a1($sp) +/* 1083DC 7F0D38AC A3A902A0 */ sb $t1, 0x2a0($sp) +/* 1083E0 7F0D38B0 91CEE349 */ lbu $t6, %lo(byte_CODE_bss_8008E349)($t6) +/* 1083E4 7F0D38B4 3C0A8009 */ lui $t2, %hi(byte_CODE_bss_8008E347) +/* 1083E8 7F0D38B8 3C0B8009 */ lui $t3, %hi(spec_IFF2_lower) +/* 1083EC 7F0D38BC 3C0C8009 */ lui $t4, %hi(spec_IFF2_upper) +/* 1083F0 7F0D38C0 3C0D8009 */ lui $t5, %hi(spec_I) +/* 1083F4 7F0D38C4 3C0F8009 */ lui $t7, %hi(spec_IM) +/* 1083F8 7F0D38C8 3C188009 */ lui $t8, %hi(spec_IX) +/* 1083FC 7F0D38CC 3C198009 */ lui $t9, %hi(spec_IY) +/* 108400 7F0D38D0 3C088009 */ lui $t0, %hi(spec_SP) +/* 108404 7F0D38D4 3C098009 */ lui $t1, %hi(spec_PC) +/* 108408 7F0D38D8 914AE347 */ lbu $t2, %lo(byte_CODE_bss_8008E347)($t2) +/* 10840C 7F0D38DC 916BE34A */ lbu $t3, %lo(spec_IFF2_lower)($t3) +/* 108410 7F0D38E0 918CE34B */ lbu $t4, %lo(spec_IFF2_upper)($t4) +/* 108414 7F0D38E4 91ADE348 */ lbu $t5, %lo(spec_I)($t5) +/* 108418 7F0D38E8 91EFE34C */ lbu $t7, %lo(spec_IM)($t7) +/* 10841C 7F0D38EC 9718E34E */ lhu $t8, %lo(spec_IX)($t8) +/* 108420 7F0D38F0 9739E350 */ lhu $t9, %lo(spec_IY)($t9) +/* 108424 7F0D38F4 9508E352 */ lhu $t0, %lo(spec_SP)($t0) +/* 108428 7F0D38F8 9529E354 */ lhu $t1, %lo(spec_PC)($t1) +/* 10842C 7F0D38FC AFB70030 */ sw $s7, 0x30($sp) +/* 108430 7F0D3900 AFB6002C */ sw $s6, 0x2c($sp) +/* 108434 7F0D3904 AFB50028 */ sw $s5, 0x28($sp) +/* 108438 7F0D3908 AFB40024 */ sw $s4, 0x24($sp) +/* 10843C 7F0D390C AFB30020 */ sw $s3, 0x20($sp) +/* 108440 7F0D3910 AFB2001C */ sw $s2, 0x1c($sp) +/* 108444 7F0D3914 AFB10018 */ sw $s1, 0x18($sp) +/* 108448 7F0D3918 AFB00014 */ sw $s0, 0x14($sp) +/* 10844C 7F0D391C 3C010001 */ lui $at, (0x00011100 >> 16) # lui $at, 1 +/* 108450 7F0D3920 A3A0029B */ sb $zero, 0x29b($sp) +/* 108454 7F0D3924 A3A0029C */ sb $zero, 0x29c($sp) +/* 108458 7F0D3928 A3A0029D */ sb $zero, 0x29d($sp) +/* 10845C 7F0D392C A3A002A7 */ sb $zero, 0x2a7($sp) +/* 108460 7F0D3930 A3A0029E */ sb $zero, 0x29e($sp) +/* 108464 7F0D3934 A3A0029F */ sb $zero, 0x29f($sp) +/* 108468 7F0D3938 A7A00298 */ sh $zero, 0x298($sp) +/* 10846C 7F0D393C A7A00292 */ sh $zero, 0x292($sp) +/* 108470 7F0D3940 A7A00294 */ sh $zero, 0x294($sp) +/* 108474 7F0D3944 A7A00296 */ sh $zero, 0x296($sp) +/* 108478 7F0D3948 AFA00288 */ sw $zero, 0x288($sp) +/* 10847C 7F0D394C 3C108009 */ lui $s0, %hi(spectrum_header16_15) +/* 108480 7F0D3950 3C118009 */ lui $s1, %hi(byte_CODE_bss_8008E339) +/* 108484 7F0D3954 3C128009 */ lui $s2, %hi(byte_CODE_bss_8008E33A) +/* 108488 7F0D3958 3C138009 */ lui $s3, %hi(byte_CODE_bss_8008E33B) +/* 10848C 7F0D395C 3C148009 */ lui $s4, %hi(off_CODE_bss_8008E33C) +/* 108490 7F0D3960 3C158009 */ lui $s5, %hi(byte_CODE_bss_8008E33D) +/* 108494 7F0D3964 3C168009 */ lui $s6, %hi(byte_CODE_bss_8008E33E) +/* 108498 7F0D3968 3C178009 */ lui $s7, %hi(byte_CODE_bss_8008E33F) +/* 10849C 7F0D396C 34211100 */ ori $at, (0x00011100 & 0xFFFF) # ori $at, $at, 0x1100 +/* 1084A0 7F0D3970 AFBF0034 */ sw $ra, 0x34($sp) +/* 1084A4 7F0D3974 A3A00286 */ sb $zero, 0x286($sp) +/* 1084A8 7F0D3978 A3A00287 */ sb $zero, 0x287($sp) +/* 1084AC 7F0D397C AFA0028C */ sw $zero, 0x28c($sp) +/* 1084B0 7F0D3980 9210E338 */ lbu $s0, %lo(spectrum_header16_15)($s0) +/* 1084B4 7F0D3984 9231E339 */ lbu $s1, %lo(byte_CODE_bss_8008E339)($s1) +/* 1084B8 7F0D3988 9252E33A */ lbu $s2, %lo(byte_CODE_bss_8008E33A)($s2) +/* 1084BC 7F0D398C 9273E33B */ lbu $s3, %lo(byte_CODE_bss_8008E33B)($s3) +/* 1084C0 7F0D3990 9294E33C */ lbu $s4, %lo(off_CODE_bss_8008E33C)($s4) +/* 1084C4 7F0D3994 92B5E33D */ lbu $s5, %lo(byte_CODE_bss_8008E33D)($s5) +/* 1084C8 7F0D3998 92D6E33E */ lbu $s6, %lo(byte_CODE_bss_8008E33E)($s6) +/* 1084CC 7F0D399C 92F7E33F */ lbu $s7, %lo(byte_CODE_bss_8008E33F)($s7) +/* 1084D0 7F0D39A0 A3AE02A7 */ sb $t6, 0x2a7($sp) +/* 1084D4 7F0D39A4 AFAE0288 */ sw $t6, 0x288($sp) +/* 1084D8 7F0D39A8 A3AA029F */ sb $t2, 0x29f($sp) +/* 1084DC 7F0D39AC A3AB029D */ sb $t3, 0x29d($sp) +/* 1084E0 7F0D39B0 A3AC029C */ sb $t4, 0x29c($sp) +/* 1084E4 7F0D39B4 A3AD029E */ sb $t5, 0x29e($sp) +/* 1084E8 7F0D39B8 A3AF029B */ sb $t7, 0x29b($sp) +/* 1084EC 7F0D39BC A7B80296 */ sh $t8, 0x296($sp) +/* 1084F0 7F0D39C0 A7B90294 */ sh $t9, 0x294($sp) +/* 1084F4 7F0D39C4 A7A80292 */ sh $t0, 0x292($sp) +/* 1084F8 7F0D39C8 14200003 */ bnez $at, .L7F0D39D8 +/* 1084FC 7F0D39CC A7A90298 */ sh $t1, 0x298($sp) +/* 108500 7F0D39D0 93AB0285 */ lbu $t3, 0x285($sp) +/* 108504 7F0D39D4 15603B91 */ bnez $t3, .L7F0E281C +.L7F0D39D8: +/* 108508 7F0D39D8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10850C 7F0D39DC 93AC0286 */ lbu $t4, 0x286($sp) +/* 108510 7F0D39E0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108514 7F0D39E4 97AE0298 */ lhu $t6, 0x298($sp) +/* 108518 7F0D39E8 240D0001 */ li $t5, 1 +/* 10851C 7F0D39EC A3A00286 */ sb $zero, 0x286($sp) +/* 108520 7F0D39F0 A3AD0285 */ sb $t5, 0x285($sp) +/* 108524 7F0D39F4 A3AC0287 */ sb $t4, 0x287($sp) +/* 108528 7F0D39F8 01CFC021 */ addu $t8, $t6, $t7 +/* 10852C 7F0D39FC 93190000 */ lbu $t9, ($t8) +/* 108530 7F0D3A00 8FA90288 */ lw $t1, 0x288($sp) +/* 108534 7F0D3A04 25C80001 */ addiu $t0, $t6, 1 +/* 108538 7F0D3A08 332B00FF */ andi $t3, $t9, 0xff +/* 10853C 7F0D3A0C 2D610100 */ sltiu $at, $t3, 0x100 +/* 108540 7F0D3A10 252A0001 */ addiu $t2, $t1, 1 +/* 108544 7F0D3A14 A7A80298 */ sh $t0, 0x298($sp) +/* 108548 7F0D3A18 AFAA0288 */ sw $t2, 0x288($sp) +/* 10854C 7F0D3A1C 10203B77 */ beqz $at, .L7F0E27FC +/* 108550 7F0D3A20 A3B90284 */ sb $t9, 0x284($sp) +/* 108554 7F0D3A24 000B5880 */ sll $t3, $t3, 2 +/* 108558 7F0D3A28 3C018006 */ lui $at, %hi(spectrum_op_table) +/* 10855C 7F0D3A2C 002B0821 */ addu $at, $at, $t3 +/* 108560 7F0D3A30 8C2BC12C */ lw $t3, %lo(spectrum_op_table)($at) +/* 108564 7F0D3A34 01600008 */ jr $t3 +/* 108568 7F0D3A38 00000000 */ nop +spectrum_op_00: +/* 10856C 7F0D3A3C 8FAC028C */ lw $t4, 0x28c($sp) +/* 108570 7F0D3A40 258D0004 */ addiu $t5, $t4, 4 +/* 108574 7F0D3A44 10003B6D */ b .L7F0E27FC +/* 108578 7F0D3A48 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_01: +/* 10857C 7F0D3A4C 8FAF028C */ lw $t7, 0x28c($sp) +/* 108580 7F0D3A50 97B90298 */ lhu $t9, 0x298($sp) +/* 108584 7F0D3A54 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108588 7F0D3A58 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10858C 7F0D3A5C 25F8000A */ addiu $t8, $t7, 0xa +/* 108590 7F0D3A60 AFB8028C */ sw $t8, 0x28c($sp) +/* 108594 7F0D3A64 272C0001 */ addiu $t4, $t9, 1 +/* 108598 7F0D3A68 032E4021 */ addu $t0, $t9, $t6 +/* 10859C 7F0D3A6C 91130000 */ lbu $s3, ($t0) +/* 1085A0 7F0D3A70 318AFFFF */ andi $t2, $t4, 0xffff +/* 1085A4 7F0D3A74 A7AC0298 */ sh $t4, 0x298($sp) +/* 1085A8 7F0D3A78 014E5821 */ addu $t3, $t2, $t6 +/* 1085AC 7F0D3A7C 91720000 */ lbu $s2, ($t3) +/* 1085B0 7F0D3A80 258D0001 */ addiu $t5, $t4, 1 +/* 1085B4 7F0D3A84 10003B5D */ b .L7F0E27FC +/* 1085B8 7F0D3A88 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_02: +/* 1085BC 7F0D3A8C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1085C0 7F0D3A90 00124200 */ sll $t0, $s2, 8 +/* 1085C4 7F0D3A94 0113C825 */ or $t9, $t0, $s3 +/* 1085C8 7F0D3A98 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1085CC 7F0D3A9C 25F80007 */ addiu $t8, $t7, 7 +/* 1085D0 7F0D3AA0 14200008 */ bnez $at, .L7F0D3AC4 +/* 1085D4 7F0D3AA4 AFB8028C */ sw $t8, 0x28c($sp) +/* 1085D8 7F0D3AA8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1085DC 7F0D3AAC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1085E0 7F0D3AB0 00127200 */ sll $t6, $s2, 8 +/* 1085E4 7F0D3AB4 01D35825 */ or $t3, $t6, $s3 +/* 1085E8 7F0D3AB8 014B4821 */ addu $t1, $t2, $t3 +/* 1085EC 7F0D3ABC 10003B4F */ b .L7F0E27FC +/* 1085F0 7F0D3AC0 A1300000 */ sb $s0, ($t1) +.L7F0D3AC4: +/* 1085F4 7F0D3AC4 00126200 */ sll $t4, $s2, 8 +/* 1085F8 7F0D3AC8 01936825 */ or $t5, $t4, $s3 +/* 1085FC 7F0D3ACC 29A15800 */ slti $at, $t5, 0x5800 +/* 108600 7F0D3AD0 1420000F */ bnez $at, .L7F0D3B10 +/* 108604 7F0D3AD4 00126A00 */ sll $t5, $s2, 8 +/* 108608 7F0D3AD8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10860C 7F0D3ADC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108610 7F0D3AE0 0012C200 */ sll $t8, $s2, 8 +/* 108614 7F0D3AE4 03134025 */ or $t0, $t8, $s3 +/* 108618 7F0D3AE8 01E8C821 */ addu $t9, $t7, $t0 +/* 10861C 7F0D3AEC A3300000 */ sb $s0, ($t9) +/* 108620 7F0D3AF0 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 108624 7F0D3AF4 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 108628 7F0D3AF8 00125A00 */ sll $t3, $s2, 8 +/* 10862C 7F0D3AFC 01734825 */ or $t1, $t3, $s3 +/* 108630 7F0D3B00 240E0001 */ li $t6, 1 +/* 108634 7F0D3B04 01496021 */ addu $t4, $t2, $t1 +/* 108638 7F0D3B08 10003B3C */ b .L7F0E27FC +/* 10863C 7F0D3B0C A18EA800 */ sb $t6, -0x5800($t4) +.L7F0D3B10: +/* 108640 7F0D3B10 01B3C025 */ or $t8, $t5, $s3 +/* 108644 7F0D3B14 2B014000 */ slti $at, $t8, 0x4000 +/* 108648 7F0D3B18 14203B38 */ bnez $at, .L7F0E27FC +/* 10864C 7F0D3B1C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 108650 7F0D3B20 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108654 7F0D3B24 00124200 */ sll $t0, $s2, 8 +/* 108658 7F0D3B28 0113C825 */ or $t9, $t0, $s3 +/* 10865C 7F0D3B2C 01F95821 */ addu $t3, $t7, $t9 +/* 108660 7F0D3B30 A1700000 */ sb $s0, ($t3) +/* 108664 7F0D3B34 00124A00 */ sll $t1, $s2, 8 +/* 108668 7F0D3B38 01337025 */ or $t6, $t1, $s3 +/* 10866C 7F0D3B3C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 108670 7F0D3B40 0012C200 */ sll $t8, $s2, 8 +/* 108674 7F0D3B44 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 108678 7F0D3B48 03134025 */ or $t0, $t8, $s3 +/* 10867C 7F0D3B4C 31CC1800 */ andi $t4, $t6, 0x1800 +/* 108680 7F0D3B50 000C68C3 */ sra $t5, $t4, 3 +/* 108684 7F0D3B54 310F00FF */ andi $t7, $t0, 0xff +/* 108688 7F0D3B58 01AFC825 */ or $t9, $t5, $t7 +/* 10868C 7F0D3B5C 240A0001 */ li $t2, 1 +/* 108690 7F0D3B60 01794821 */ addu $t1, $t3, $t9 +/* 108694 7F0D3B64 10003B25 */ b .L7F0E27FC +/* 108698 7F0D3B68 A12A0000 */ sb $t2, ($t1) +spectrum_op_03: +/* 10869C 7F0D3B6C 8FAE028C */ lw $t6, 0x28c($sp) +/* 1086A0 7F0D3B70 26730001 */ addiu $s3, $s3, 1 +/* 1086A4 7F0D3B74 327800FF */ andi $t8, $s3, 0xff +/* 1086A8 7F0D3B78 25CC0006 */ addiu $t4, $t6, 6 +/* 1086AC 7F0D3B7C AFAC028C */ sw $t4, 0x28c($sp) +/* 1086B0 7F0D3B80 17003B1E */ bnez $t8, .L7F0E27FC +/* 1086B4 7F0D3B84 03009825 */ move $s3, $t8 +/* 1086B8 7F0D3B88 26520001 */ addiu $s2, $s2, 1 +/* 1086BC 7F0D3B8C 324800FF */ andi $t0, $s2, 0xff +/* 1086C0 7F0D3B90 10003B1A */ b .L7F0E27FC +/* 1086C4 7F0D3B94 01009025 */ move $s2, $t0 +spectrum_op_04: +/* 1086C8 7F0D3B98 26520001 */ addiu $s2, $s2, 1 +/* 1086CC 7F0D3B9C 324B00FF */ andi $t3, $s2, 0xff +/* 1086D0 7F0D3BA0 8FAD028C */ lw $t5, 0x28c($sp) +/* 1086D4 7F0D3BA4 316A000F */ andi $t2, $t3, 0xf +/* 1086D8 7F0D3BA8 2D490001 */ sltiu $t1, $t2, 1 +/* 1086DC 7F0D3BAC 01609025 */ move $s2, $t3 +/* 1086E0 7F0D3BB0 2D790001 */ sltiu $t9, $t3, 1 +/* 1086E4 7F0D3BB4 316C00A8 */ andi $t4, $t3, 0xa8 +/* 1086E8 7F0D3BB8 322E0001 */ andi $t6, $s1, 1 +/* 1086EC 7F0D3BBC 01CCC025 */ or $t8, $t6, $t4 +/* 1086F0 7F0D3BC0 3A4A0080 */ xori $t2, $s2, 0x80 +/* 1086F4 7F0D3BC4 00094100 */ sll $t0, $t1, 4 +/* 1086F8 7F0D3BC8 25AF0004 */ addiu $t7, $t5, 4 +/* 1086FC 7F0D3BCC 03086825 */ or $t5, $t8, $t0 +/* 108700 7F0D3BD0 2D4A0001 */ sltiu $t2, $t2, 1 +/* 108704 7F0D3BD4 00195980 */ sll $t3, $t9, 6 +/* 108708 7F0D3BD8 AFB90044 */ sw $t9, 0x44($sp) +/* 10870C 7F0D3BDC 01ABC825 */ or $t9, $t5, $t3 +/* 108710 7F0D3BE0 000A7080 */ sll $t6, $t2, 2 +/* 108714 7F0D3BE4 032E8825 */ or $s1, $t9, $t6 +/* 108718 7F0D3BE8 322C00FF */ andi $t4, $s1, 0xff +/* 10871C 7F0D3BEC AFAF028C */ sw $t7, 0x28c($sp) +/* 108720 7F0D3BF0 01808825 */ move $s1, $t4 +/* 108724 7F0D3BF4 10003B01 */ b .L7F0E27FC +/* 108728 7F0D3BF8 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_05: +/* 10872C 7F0D3BFC 8FA9028C */ lw $t1, 0x28c($sp) +/* 108730 7F0D3C00 3248000F */ andi $t0, $s2, 0xf +/* 108734 7F0D3C04 2652FFFF */ addiu $s2, $s2, -1 +/* 108738 7F0D3C08 25380004 */ addiu $t8, $t1, 4 +/* 10873C 7F0D3C0C AFB8028C */ sw $t8, 0x28c($sp) +/* 108740 7F0D3C10 324E00FF */ andi $t6, $s2, 0xff +/* 108744 7F0D3C14 2D0F0001 */ sltiu $t7, $t0, 1 +/* 108748 7F0D3C18 000F5900 */ sll $t3, $t7, 4 +/* 10874C 7F0D3C1C 39D8007F */ xori $t8, $t6, 0x7f +/* 108750 7F0D3C20 2F180001 */ sltiu $t8, $t8, 1 +/* 108754 7F0D3C24 322D0001 */ andi $t5, $s1, 1 +/* 108758 7F0D3C28 01AB8825 */ or $s1, $t5, $t3 +/* 10875C 7F0D3C2C 00184080 */ sll $t0, $t8, 2 +/* 108760 7F0D3C30 AFAF0048 */ sw $t7, 0x48($sp) +/* 108764 7F0D3C34 2DCC0001 */ sltiu $t4, $t6, 1 +/* 108768 7F0D3C38 31C900A8 */ andi $t1, $t6, 0xa8 +/* 10876C 7F0D3C3C 01287825 */ or $t7, $t1, $t0 +/* 108770 7F0D3C40 000C5980 */ sll $t3, $t4, 6 +/* 108774 7F0D3C44 01EB5025 */ or $t2, $t7, $t3 +/* 108778 7F0D3C48 36390002 */ ori $t9, $s1, 2 +/* 10877C 7F0D3C4C 032A8825 */ or $s1, $t9, $t2 +/* 108780 7F0D3C50 323900FF */ andi $t9, $s1, 0xff +/* 108784 7F0D3C54 03208825 */ move $s1, $t9 +/* 108788 7F0D3C58 AFAC0044 */ sw $t4, 0x44($sp) +/* 10878C 7F0D3C5C 10003AE7 */ b .L7F0E27FC +/* 108790 7F0D3C60 01C09025 */ move $s2, $t6 +spectrum_op_06: +/* 108794 7F0D3C64 8FAE028C */ lw $t6, 0x28c($sp) +/* 108798 7F0D3C68 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10879C 7F0D3C6C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1087A0 7F0D3C70 97B80298 */ lhu $t8, 0x298($sp) +/* 1087A4 7F0D3C74 25CC0007 */ addiu $t4, $t6, 7 +/* 1087A8 7F0D3C78 AFAC028C */ sw $t4, 0x28c($sp) +/* 1087AC 7F0D3C7C 03094021 */ addu $t0, $t8, $t1 +/* 1087B0 7F0D3C80 91120000 */ lbu $s2, ($t0) +/* 1087B4 7F0D3C84 270D0001 */ addiu $t5, $t8, 1 +/* 1087B8 7F0D3C88 10003ADC */ b .L7F0E27FC +/* 1087BC 7F0D3C8C A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_07: +/* 1087C0 7F0D3C90 00105040 */ sll $t2, $s0, 1 +/* 1087C4 7F0D3C94 0010C9C3 */ sra $t9, $s0, 7 +/* 1087C8 7F0D3C98 01598025 */ or $s0, $t2, $t9 +/* 1087CC 7F0D3C9C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1087D0 7F0D3CA0 320E00FF */ andi $t6, $s0, 0xff +/* 1087D4 7F0D3CA4 31C90029 */ andi $t1, $t6, 0x29 +/* 1087D8 7F0D3CA8 322C00C4 */ andi $t4, $s1, 0xc4 +/* 1087DC 7F0D3CAC 01898825 */ or $s1, $t4, $t1 +/* 1087E0 7F0D3CB0 322800FF */ andi $t0, $s1, 0xff +/* 1087E4 7F0D3CB4 25EB0004 */ addiu $t3, $t7, 4 +/* 1087E8 7F0D3CB8 AFAB028C */ sw $t3, 0x28c($sp) +/* 1087EC 7F0D3CBC 01C08025 */ move $s0, $t6 +/* 1087F0 7F0D3CC0 10003ACE */ b .L7F0E27FC +/* 1087F4 7F0D3CC4 01008825 */ move $s1, $t0 +spectrum_op_08: +/* 1087F8 7F0D3CC8 8FB8028C */ lw $t8, 0x28c($sp) +/* 1087FC 7F0D3CCC A3B0027F */ sb $s0, 0x27f($sp) +/* 108800 7F0D3CD0 A3B1027E */ sb $s1, 0x27e($sp) +/* 108804 7F0D3CD4 93AF027F */ lbu $t7, 0x27f($sp) +/* 108808 7F0D3CD8 93AB027E */ lbu $t3, 0x27e($sp) +/* 10880C 7F0D3CDC 93B002A6 */ lbu $s0, 0x2a6($sp) +/* 108810 7F0D3CE0 93B102A5 */ lbu $s1, 0x2a5($sp) +/* 108814 7F0D3CE4 270D0004 */ addiu $t5, $t8, 4 +/* 108818 7F0D3CE8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10881C 7F0D3CEC A3AF02A6 */ sb $t7, 0x2a6($sp) +/* 108820 7F0D3CF0 10003AC2 */ b .L7F0E27FC +/* 108824 7F0D3CF4 A3AB02A5 */ sb $t3, 0x2a5($sp) +spectrum_op_09: +/* 108828 7F0D3CF8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10882C 7F0D3CFC 93AE0287 */ lbu $t6, 0x287($sp) +/* 108830 7F0D3D00 93A90287 */ lbu $t1, 0x287($sp) +/* 108834 7F0D3D04 2559000B */ addiu $t9, $t2, 0xb +/* 108838 7F0D3D08 15C0001C */ bnez $t6, .L7F0D3D7C +/* 10883C 7F0D3D0C AFB9028C */ sw $t9, 0x28c($sp) +/* 108840 7F0D3D10 02F36021 */ addu $t4, $s7, $s3 +/* 108844 7F0D3D14 3189FFFF */ andi $t1, $t4, 0xffff +/* 108848 7F0D3D18 00094202 */ srl $t0, $t1, 8 +/* 10884C 7F0D3D1C 310DFFFF */ andi $t5, $t0, 0xffff +/* 108850 7F0D3D20 32D8000F */ andi $t8, $s6, 0xf +/* 108854 7F0D3D24 01B87821 */ addu $t7, $t5, $t8 +/* 108858 7F0D3D28 324B000F */ andi $t3, $s2, 0xf +/* 10885C 7F0D3D2C 01EB5021 */ addu $t2, $t7, $t3 +/* 108860 7F0D3D30 A7AC027C */ sh $t4, 0x27c($sp) +/* 108864 7F0D3D34 2401000F */ li $at, 15 +/* 108868 7F0D3D38 002AC82A */ slt $t9, $at, $t2 +/* 10886C 7F0D3D3C 93B7027D */ lbu $s7, 0x27d($sp) +/* 108870 7F0D3D40 02D26821 */ addu $t5, $s6, $s2 +/* 108874 7F0D3D44 010D5021 */ addu $t2, $t0, $t5 +/* 108878 7F0D3D48 A7A8027C */ sh $t0, 0x27c($sp) +/* 10887C 7F0D3D4C A7AA027C */ sh $t2, 0x27c($sp) +/* 108880 7F0D3D50 93B6027D */ lbu $s6, 0x27d($sp) +/* 108884 7F0D3D54 00197100 */ sll $t6, $t9, 4 +/* 108888 7F0D3D58 322C00C4 */ andi $t4, $s1, 0xc4 +/* 10888C 7F0D3D5C 01CC4825 */ or $t1, $t6, $t4 +/* 108890 7F0D3D60 000ACA03 */ sra $t9, $t2, 8 +/* 108894 7F0D3D64 32CB0028 */ andi $t3, $s6, 0x28 +/* 108898 7F0D3D68 01797025 */ or $t6, $t3, $t9 +/* 10889C 7F0D3D6C 012E8825 */ or $s1, $t1, $t6 +/* 1088A0 7F0D3D70 322C00FF */ andi $t4, $s1, 0xff +/* 1088A4 7F0D3D74 10003AA1 */ b .L7F0E27FC +/* 1088A8 7F0D3D78 01808825 */ move $s1, $t4 +.L7F0D3D7C: +/* 1088AC 7F0D3D7C 24010001 */ li $at, 1 +/* 1088B0 7F0D3D80 15210004 */ bne $t1, $at, .L7F0D3D94 +/* 1088B4 7F0D3D84 00125200 */ sll $t2, $s2, 8 +/* 1088B8 7F0D3D88 97A80296 */ lhu $t0, 0x296($sp) +/* 1088BC 7F0D3D8C 10000003 */ b .L7F0D3D9C +/* 1088C0 7F0D3D90 AFA80278 */ sw $t0, 0x278($sp) +.L7F0D3D94: +/* 1088C4 7F0D3D94 97B80294 */ lhu $t8, 0x294($sp) +/* 1088C8 7F0D3D98 AFB80278 */ sw $t8, 0x278($sp) +.L7F0D3D9C: +/* 1088CC 7F0D3D9C 8FAD0278 */ lw $t5, 0x278($sp) +/* 1088D0 7F0D3DA0 01535825 */ or $t3, $t2, $s3 +/* 1088D4 7F0D3DA4 24010FFF */ li $at, 4095 +/* 1088D8 7F0D3DA8 31AF0FFF */ andi $t7, $t5, 0xfff +/* 1088DC 7F0D3DAC 01EBC821 */ addu $t9, $t7, $t3 +/* 1088E0 7F0D3DB0 0039702B */ sltu $t6, $at, $t9 +/* 1088E4 7F0D3DB4 93AB0287 */ lbu $t3, 0x287($sp) +/* 1088E8 7F0D3DB8 000E6100 */ sll $t4, $t6, 4 +/* 1088EC 7F0D3DBC 322900C4 */ andi $t1, $s1, 0xc4 +/* 1088F0 7F0D3DC0 0012C200 */ sll $t8, $s2, 8 +/* 1088F4 7F0D3DC4 03135025 */ or $t2, $t8, $s3 +/* 1088F8 7F0D3DC8 012C8825 */ or $s1, $t1, $t4 +/* 1088FC 7F0D3DCC 322800FF */ andi $t0, $s1, 0xff +/* 108900 7F0D3DD0 24010001 */ li $at, 1 +/* 108904 7F0D3DD4 01AA7821 */ addu $t7, $t5, $t2 +/* 108908 7F0D3DD8 AFAF0278 */ sw $t7, 0x278($sp) +/* 10890C 7F0D3DDC 15610003 */ bne $t3, $at, .L7F0D3DEC +/* 108910 7F0D3DE0 01008825 */ move $s1, $t0 +/* 108914 7F0D3DE4 10000003 */ b .L7F0D3DF4 +/* 108918 7F0D3DE8 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D3DEC: +/* 10891C 7F0D3DEC 8FB90278 */ lw $t9, 0x278($sp) +/* 108920 7F0D3DF0 A7B90294 */ sh $t9, 0x294($sp) +.L7F0D3DF4: +/* 108924 7F0D3DF4 8FAE0278 */ lw $t6, 0x278($sp) +/* 108928 7F0D3DF8 000E4A02 */ srl $t1, $t6, 8 +/* 10892C 7F0D3DFC 312C0028 */ andi $t4, $t1, 0x28 +/* 108930 7F0D3E00 000E4402 */ srl $t0, $t6, 0x10 +/* 108934 7F0D3E04 0188C025 */ or $t8, $t4, $t0 +/* 108938 7F0D3E08 02388825 */ or $s1, $s1, $t8 +/* 10893C 7F0D3E0C 322D00FF */ andi $t5, $s1, 0xff +/* 108940 7F0D3E10 10003A7A */ b .L7F0E27FC +/* 108944 7F0D3E14 01A08825 */ move $s1, $t5 +spectrum_op_0A: +/* 108948 7F0D3E18 8FAA028C */ lw $t2, 0x28c($sp) +/* 10894C 7F0D3E1C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 108950 7F0D3E20 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 108954 7F0D3E24 00127A00 */ sll $t7, $s2, 8 +/* 108958 7F0D3E28 01F3C825 */ or $t9, $t7, $s3 +/* 10895C 7F0D3E2C 254B0007 */ addiu $t3, $t2, 7 +/* 108960 7F0D3E30 AFAB028C */ sw $t3, 0x28c($sp) +/* 108964 7F0D3E34 03297021 */ addu $t6, $t9, $t1 +/* 108968 7F0D3E38 10003A70 */ b .L7F0E27FC +/* 10896C 7F0D3E3C 91D00000 */ lbu $s0, ($t6) +spectrum_op_0B: +/* 108970 7F0D3E40 8FAC028C */ lw $t4, 0x28c($sp) +/* 108974 7F0D3E44 2E780001 */ sltiu $t8, $s3, 1 +/* 108978 7F0D3E48 2673FFFF */ addiu $s3, $s3, -1 +/* 10897C 7F0D3E4C 326D00FF */ andi $t5, $s3, 0xff +/* 108980 7F0D3E50 25880006 */ addiu $t0, $t4, 6 +/* 108984 7F0D3E54 AFA8028C */ sw $t0, 0x28c($sp) +/* 108988 7F0D3E58 01A09825 */ move $s3, $t5 +/* 10898C 7F0D3E5C 13003A67 */ beqz $t8, .L7F0E27FC +/* 108990 7F0D3E60 AFB80048 */ sw $t8, 0x48($sp) +/* 108994 7F0D3E64 2652FFFF */ addiu $s2, $s2, -1 +/* 108998 7F0D3E68 324B00FF */ andi $t3, $s2, 0xff +/* 10899C 7F0D3E6C 10003A63 */ b .L7F0E27FC +/* 1089A0 7F0D3E70 01609025 */ move $s2, $t3 +spectrum_op_0C: +/* 1089A4 7F0D3E74 26730001 */ addiu $s3, $s3, 1 +/* 1089A8 7F0D3E78 326900FF */ andi $t1, $s3, 0xff +/* 1089AC 7F0D3E7C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1089B0 7F0D3E80 312C000F */ andi $t4, $t1, 0xf +/* 1089B4 7F0D3E84 2D880001 */ sltiu $t0, $t4, 1 +/* 1089B8 7F0D3E88 01209825 */ move $s3, $t1 +/* 1089BC 7F0D3E8C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 1089C0 7F0D3E90 312D00A8 */ andi $t5, $t1, 0xa8 +/* 1089C4 7F0D3E94 32380001 */ andi $t8, $s1, 1 +/* 1089C8 7F0D3E98 030D5025 */ or $t2, $t8, $t5 +/* 1089CC 7F0D3E9C 3A6C0080 */ xori $t4, $s3, 0x80 +/* 1089D0 7F0D3EA0 00085900 */ sll $t3, $t0, 4 +/* 1089D4 7F0D3EA4 25F90004 */ addiu $t9, $t7, 4 +/* 1089D8 7F0D3EA8 014B7825 */ or $t7, $t2, $t3 +/* 1089DC 7F0D3EAC 2D8C0001 */ sltiu $t4, $t4, 1 +/* 1089E0 7F0D3EB0 000E4980 */ sll $t1, $t6, 6 +/* 1089E4 7F0D3EB4 AFAE0044 */ sw $t6, 0x44($sp) +/* 1089E8 7F0D3EB8 01E97025 */ or $t6, $t7, $t1 +/* 1089EC 7F0D3EBC 000CC080 */ sll $t8, $t4, 2 +/* 1089F0 7F0D3EC0 01D88825 */ or $s1, $t6, $t8 +/* 1089F4 7F0D3EC4 322D00FF */ andi $t5, $s1, 0xff +/* 1089F8 7F0D3EC8 AFB9028C */ sw $t9, 0x28c($sp) +/* 1089FC 7F0D3ECC 01A08825 */ move $s1, $t5 +/* 108A00 7F0D3ED0 10003A4A */ b .L7F0E27FC +/* 108A04 7F0D3ED4 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_0D: +/* 108A08 7F0D3ED8 8FA8028C */ lw $t0, 0x28c($sp) +/* 108A0C 7F0D3EDC 326B000F */ andi $t3, $s3, 0xf +/* 108A10 7F0D3EE0 2673FFFF */ addiu $s3, $s3, -1 +/* 108A14 7F0D3EE4 250A0004 */ addiu $t2, $t0, 4 +/* 108A18 7F0D3EE8 AFAA028C */ sw $t2, 0x28c($sp) +/* 108A1C 7F0D3EEC 327800FF */ andi $t8, $s3, 0xff +/* 108A20 7F0D3EF0 2D790001 */ sltiu $t9, $t3, 1 +/* 108A24 7F0D3EF4 00194900 */ sll $t1, $t9, 4 +/* 108A28 7F0D3EF8 3B0A007F */ xori $t2, $t8, 0x7f +/* 108A2C 7F0D3EFC 2D4A0001 */ sltiu $t2, $t2, 1 +/* 108A30 7F0D3F00 322F0001 */ andi $t7, $s1, 1 +/* 108A34 7F0D3F04 01E98825 */ or $s1, $t7, $t1 +/* 108A38 7F0D3F08 000A5880 */ sll $t3, $t2, 2 +/* 108A3C 7F0D3F0C AFB90048 */ sw $t9, 0x48($sp) +/* 108A40 7F0D3F10 2F0D0001 */ sltiu $t5, $t8, 1 +/* 108A44 7F0D3F14 330800A8 */ andi $t0, $t8, 0xa8 +/* 108A48 7F0D3F18 010BC825 */ or $t9, $t0, $t3 +/* 108A4C 7F0D3F1C 000D4980 */ sll $t1, $t5, 6 +/* 108A50 7F0D3F20 03296025 */ or $t4, $t9, $t1 +/* 108A54 7F0D3F24 362E0002 */ ori $t6, $s1, 2 +/* 108A58 7F0D3F28 01CC8825 */ or $s1, $t6, $t4 +/* 108A5C 7F0D3F2C 322E00FF */ andi $t6, $s1, 0xff +/* 108A60 7F0D3F30 01C08825 */ move $s1, $t6 +/* 108A64 7F0D3F34 AFAD0044 */ sw $t5, 0x44($sp) +/* 108A68 7F0D3F38 10003A30 */ b .L7F0E27FC +/* 108A6C 7F0D3F3C 03009825 */ move $s3, $t8 +spectrum_op_0E: +/* 108A70 7F0D3F40 8FB8028C */ lw $t8, 0x28c($sp) +/* 108A74 7F0D3F44 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108A78 7F0D3F48 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108A7C 7F0D3F4C 97AA0298 */ lhu $t2, 0x298($sp) +/* 108A80 7F0D3F50 270D0007 */ addiu $t5, $t8, 7 +/* 108A84 7F0D3F54 AFAD028C */ sw $t5, 0x28c($sp) +/* 108A88 7F0D3F58 01485821 */ addu $t3, $t2, $t0 +/* 108A8C 7F0D3F5C 91730000 */ lbu $s3, ($t3) +/* 108A90 7F0D3F60 254F0001 */ addiu $t7, $t2, 1 +/* 108A94 7F0D3F64 10003A25 */ b .L7F0E27FC +/* 108A98 7F0D3F68 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_0F: +/* 108A9C 7F0D3F6C 320E0001 */ andi $t6, $s0, 1 +/* 108AA0 7F0D3F70 00106843 */ sra $t5, $s0, 1 +/* 108AA4 7F0D3F74 001041C0 */ sll $t0, $s0, 7 +/* 108AA8 7F0D3F78 01A88025 */ or $s0, $t5, $t0 +/* 108AAC 7F0D3F7C 8FB9028C */ lw $t9, 0x28c($sp) +/* 108AB0 7F0D3F80 322C00C4 */ andi $t4, $s1, 0xc4 +/* 108AB4 7F0D3F84 320B00FF */ andi $t3, $s0, 0xff +/* 108AB8 7F0D3F88 018EC025 */ or $t8, $t4, $t6 +/* 108ABC 7F0D3F8C 316A0028 */ andi $t2, $t3, 0x28 +/* 108AC0 7F0D3F90 030A8825 */ or $s1, $t8, $t2 +/* 108AC4 7F0D3F94 322F00FF */ andi $t7, $s1, 0xff +/* 108AC8 7F0D3F98 27290004 */ addiu $t1, $t9, 4 +/* 108ACC 7F0D3F9C AFA9028C */ sw $t1, 0x28c($sp) +/* 108AD0 7F0D3FA0 01608025 */ move $s0, $t3 +/* 108AD4 7F0D3FA4 10003A15 */ b .L7F0E27FC +/* 108AD8 7F0D3FA8 01E08825 */ move $s1, $t7 +spectrum_op_10: +/* 108ADC 7F0D3FAC 8FB9028C */ lw $t9, 0x28c($sp) +/* 108AE0 7F0D3FB0 2652FFFF */ addiu $s2, $s2, -1 +/* 108AE4 7F0D3FB4 324C00FF */ andi $t4, $s2, 0xff +/* 108AE8 7F0D3FB8 27290008 */ addiu $t1, $t9, 8 +/* 108AEC 7F0D3FBC AFA9028C */ sw $t1, 0x28c($sp) +/* 108AF0 7F0D3FC0 15800005 */ bnez $t4, .L7F0D3FD8 +/* 108AF4 7F0D3FC4 01809025 */ move $s2, $t4 +/* 108AF8 7F0D3FC8 97AE0298 */ lhu $t6, 0x298($sp) +/* 108AFC 7F0D3FCC 25D80001 */ addiu $t8, $t6, 1 +/* 108B00 7F0D3FD0 10003A0A */ b .L7F0E27FC +/* 108B04 7F0D3FD4 A7B80298 */ sh $t8, 0x298($sp) +.L7F0D3FD8: +/* 108B08 7F0D3FD8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108B0C 7F0D3FDC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108B10 7F0D3FE0 97AD0298 */ lhu $t5, 0x298($sp) +/* 108B14 7F0D3FE4 8FA9028C */ lw $t1, 0x28c($sp) +/* 108B18 7F0D3FE8 01A85821 */ addu $t3, $t5, $t0 +/* 108B1C 7F0D3FEC 816A0000 */ lb $t2, ($t3) +/* 108B20 7F0D3FF0 252C0005 */ addiu $t4, $t1, 5 +/* 108B24 7F0D3FF4 AFAC028C */ sw $t4, 0x28c($sp) +/* 108B28 7F0D3FF8 01AA7821 */ addu $t7, $t5, $t2 +/* 108B2C 7F0D3FFC 25F90001 */ addiu $t9, $t7, 1 +/* 108B30 7F0D4000 A7B90298 */ sh $t9, 0x298($sp) +/* 108B34 7F0D4004 100039FD */ b .L7F0E27FC +/* 108B38 7F0D4008 AFAA0274 */ sw $t2, 0x274($sp) +spectrum_op_11: +/* 108B3C 7F0D400C 8FAE028C */ lw $t6, 0x28c($sp) +/* 108B40 7F0D4010 97A80298 */ lhu $t0, 0x298($sp) +/* 108B44 7F0D4014 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 108B48 7F0D4018 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 108B4C 7F0D401C 25D8000A */ addiu $t8, $t6, 0xa +/* 108B50 7F0D4020 AFB8028C */ sw $t8, 0x28c($sp) +/* 108B54 7F0D4024 25090001 */ addiu $t1, $t0, 1 +/* 108B58 7F0D4028 010B6821 */ addu $t5, $t0, $t3 +/* 108B5C 7F0D402C 91B50000 */ lbu $s5, ($t5) +/* 108B60 7F0D4030 312FFFFF */ andi $t7, $t1, 0xffff +/* 108B64 7F0D4034 A7A90298 */ sh $t1, 0x298($sp) +/* 108B68 7F0D4038 01EBC821 */ addu $t9, $t7, $t3 +/* 108B6C 7F0D403C 93340000 */ lbu $s4, ($t9) +/* 108B70 7F0D4040 252C0001 */ addiu $t4, $t1, 1 +/* 108B74 7F0D4044 100039ED */ b .L7F0E27FC +/* 108B78 7F0D4048 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_12: +/* 108B7C 7F0D404C 8FAE028C */ lw $t6, 0x28c($sp) +/* 108B80 7F0D4050 00146A00 */ sll $t5, $s4, 8 +/* 108B84 7F0D4054 01B54025 */ or $t0, $t5, $s5 +/* 108B88 7F0D4058 29015B00 */ slti $at, $t0, 0x5b00 +/* 108B8C 7F0D405C 25D80007 */ addiu $t8, $t6, 7 +/* 108B90 7F0D4060 14200008 */ bnez $at, .L7F0D4084 +/* 108B94 7F0D4064 AFB8028C */ sw $t8, 0x28c($sp) +/* 108B98 7F0D4068 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 108B9C 7F0D406C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108BA0 7F0D4070 00145A00 */ sll $t3, $s4, 8 +/* 108BA4 7F0D4074 0175C825 */ or $t9, $t3, $s5 +/* 108BA8 7F0D4078 01F95021 */ addu $t2, $t7, $t9 +/* 108BAC 7F0D407C 100039DF */ b .L7F0E27FC +/* 108BB0 7F0D4080 A1500000 */ sb $s0, ($t2) +.L7F0D4084: +/* 108BB4 7F0D4084 00144A00 */ sll $t1, $s4, 8 +/* 108BB8 7F0D4088 01356025 */ or $t4, $t1, $s5 +/* 108BBC 7F0D408C 29815800 */ slti $at, $t4, 0x5800 +/* 108BC0 7F0D4090 1420000F */ bnez $at, .L7F0D40D0 +/* 108BC4 7F0D4094 00146200 */ sll $t4, $s4, 8 +/* 108BC8 7F0D4098 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108BCC 7F0D409C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 108BD0 7F0D40A0 0014C200 */ sll $t8, $s4, 8 +/* 108BD4 7F0D40A4 03156825 */ or $t5, $t8, $s5 +/* 108BD8 7F0D40A8 01CD4021 */ addu $t0, $t6, $t5 +/* 108BDC 7F0D40AC A1100000 */ sb $s0, ($t0) +/* 108BE0 7F0D40B0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 108BE4 7F0D40B4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 108BE8 7F0D40B8 0014CA00 */ sll $t9, $s4, 8 +/* 108BEC 7F0D40BC 03355025 */ or $t2, $t9, $s5 +/* 108BF0 7F0D40C0 240B0001 */ li $t3, 1 +/* 108BF4 7F0D40C4 01EA4821 */ addu $t1, $t7, $t2 +/* 108BF8 7F0D40C8 100039CC */ b .L7F0E27FC +/* 108BFC 7F0D40CC A12BA800 */ sb $t3, -0x5800($t1) +.L7F0D40D0: +/* 108C00 7F0D40D0 0195C025 */ or $t8, $t4, $s5 +/* 108C04 7F0D40D4 2B014000 */ slti $at, $t8, 0x4000 +/* 108C08 7F0D40D8 142039C8 */ bnez $at, .L7F0E27FC +/* 108C0C 7F0D40DC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108C10 7F0D40E0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 108C14 7F0D40E4 00146A00 */ sll $t5, $s4, 8 +/* 108C18 7F0D40E8 01B54025 */ or $t0, $t5, $s5 +/* 108C1C 7F0D40EC 01C8C821 */ addu $t9, $t6, $t0 +/* 108C20 7F0D40F0 A3300000 */ sb $s0, ($t9) +/* 108C24 7F0D40F4 00145200 */ sll $t2, $s4, 8 +/* 108C28 7F0D40F8 01555825 */ or $t3, $t2, $s5 +/* 108C2C 7F0D40FC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 108C30 7F0D4100 0014C200 */ sll $t8, $s4, 8 +/* 108C34 7F0D4104 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 108C38 7F0D4108 03156825 */ or $t5, $t8, $s5 +/* 108C3C 7F0D410C 31691800 */ andi $t1, $t3, 0x1800 +/* 108C40 7F0D4110 000960C3 */ sra $t4, $t1, 3 +/* 108C44 7F0D4114 31AE00FF */ andi $t6, $t5, 0xff +/* 108C48 7F0D4118 018E4025 */ or $t0, $t4, $t6 +/* 108C4C 7F0D411C 240F0001 */ li $t7, 1 +/* 108C50 7F0D4120 03285021 */ addu $t2, $t9, $t0 +/* 108C54 7F0D4124 100039B5 */ b .L7F0E27FC +/* 108C58 7F0D4128 A14F0000 */ sb $t7, ($t2) +spectrum_op_13: +/* 108C5C 7F0D412C 8FAB028C */ lw $t3, 0x28c($sp) +/* 108C60 7F0D4130 26B50001 */ addiu $s5, $s5, 1 +/* 108C64 7F0D4134 32B800FF */ andi $t8, $s5, 0xff +/* 108C68 7F0D4138 25690006 */ addiu $t1, $t3, 6 +/* 108C6C 7F0D413C AFA9028C */ sw $t1, 0x28c($sp) +/* 108C70 7F0D4140 170039AE */ bnez $t8, .L7F0E27FC +/* 108C74 7F0D4144 0300A825 */ move $s5, $t8 +/* 108C78 7F0D4148 26940001 */ addiu $s4, $s4, 1 +/* 108C7C 7F0D414C 328D00FF */ andi $t5, $s4, 0xff +/* 108C80 7F0D4150 100039AA */ b .L7F0E27FC +/* 108C84 7F0D4154 01A0A025 */ move $s4, $t5 +spectrum_op_14: +/* 108C88 7F0D4158 26940001 */ addiu $s4, $s4, 1 +/* 108C8C 7F0D415C 329900FF */ andi $t9, $s4, 0xff +/* 108C90 7F0D4160 8FAC028C */ lw $t4, 0x28c($sp) +/* 108C94 7F0D4164 332F000F */ andi $t7, $t9, 0xf +/* 108C98 7F0D4168 2DEA0001 */ sltiu $t2, $t7, 1 +/* 108C9C 7F0D416C 0320A025 */ move $s4, $t9 +/* 108CA0 7F0D4170 2F280001 */ sltiu $t0, $t9, 1 +/* 108CA4 7F0D4174 332900A8 */ andi $t1, $t9, 0xa8 +/* 108CA8 7F0D4178 322B0001 */ andi $t3, $s1, 1 +/* 108CAC 7F0D417C 0169C025 */ or $t8, $t3, $t1 +/* 108CB0 7F0D4180 3A8F0080 */ xori $t7, $s4, 0x80 +/* 108CB4 7F0D4184 000A6900 */ sll $t5, $t2, 4 +/* 108CB8 7F0D4188 258E0004 */ addiu $t6, $t4, 4 +/* 108CBC 7F0D418C 030D6025 */ or $t4, $t8, $t5 +/* 108CC0 7F0D4190 2DEF0001 */ sltiu $t7, $t7, 1 +/* 108CC4 7F0D4194 0008C980 */ sll $t9, $t0, 6 +/* 108CC8 7F0D4198 AFA80044 */ sw $t0, 0x44($sp) +/* 108CCC 7F0D419C 01994025 */ or $t0, $t4, $t9 +/* 108CD0 7F0D41A0 000F5880 */ sll $t3, $t7, 2 +/* 108CD4 7F0D41A4 010B8825 */ or $s1, $t0, $t3 +/* 108CD8 7F0D41A8 322900FF */ andi $t1, $s1, 0xff +/* 108CDC 7F0D41AC AFAE028C */ sw $t6, 0x28c($sp) +/* 108CE0 7F0D41B0 01208825 */ move $s1, $t1 +/* 108CE4 7F0D41B4 10003991 */ b .L7F0E27FC +/* 108CE8 7F0D41B8 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_15: +/* 108CEC 7F0D41BC 8FAA028C */ lw $t2, 0x28c($sp) +/* 108CF0 7F0D41C0 328D000F */ andi $t5, $s4, 0xf +/* 108CF4 7F0D41C4 2694FFFF */ addiu $s4, $s4, -1 +/* 108CF8 7F0D41C8 25580004 */ addiu $t8, $t2, 4 +/* 108CFC 7F0D41CC AFB8028C */ sw $t8, 0x28c($sp) +/* 108D00 7F0D41D0 328B00FF */ andi $t3, $s4, 0xff +/* 108D04 7F0D41D4 2DAE0001 */ sltiu $t6, $t5, 1 +/* 108D08 7F0D41D8 000EC900 */ sll $t9, $t6, 4 +/* 108D0C 7F0D41DC 3978007F */ xori $t8, $t3, 0x7f +/* 108D10 7F0D41E0 2F180001 */ sltiu $t8, $t8, 1 +/* 108D14 7F0D41E4 322C0001 */ andi $t4, $s1, 1 +/* 108D18 7F0D41E8 01998825 */ or $s1, $t4, $t9 +/* 108D1C 7F0D41EC 00186880 */ sll $t5, $t8, 2 +/* 108D20 7F0D41F0 AFAE0048 */ sw $t6, 0x48($sp) +/* 108D24 7F0D41F4 2D690001 */ sltiu $t1, $t3, 1 +/* 108D28 7F0D41F8 316A00A8 */ andi $t2, $t3, 0xa8 +/* 108D2C 7F0D41FC 014D7025 */ or $t6, $t2, $t5 +/* 108D30 7F0D4200 0009C980 */ sll $t9, $t1, 6 +/* 108D34 7F0D4204 01D97825 */ or $t7, $t6, $t9 +/* 108D38 7F0D4208 36280002 */ ori $t0, $s1, 2 +/* 108D3C 7F0D420C 010F8825 */ or $s1, $t0, $t7 +/* 108D40 7F0D4210 322800FF */ andi $t0, $s1, 0xff +/* 108D44 7F0D4214 01008825 */ move $s1, $t0 +/* 108D48 7F0D4218 AFA90044 */ sw $t1, 0x44($sp) +/* 108D4C 7F0D421C 10003977 */ b .L7F0E27FC +/* 108D50 7F0D4220 0160A025 */ move $s4, $t3 +spectrum_op_16: +/* 108D54 7F0D4224 8FAB028C */ lw $t3, 0x28c($sp) +/* 108D58 7F0D4228 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 108D5C 7F0D422C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 108D60 7F0D4230 97B80298 */ lhu $t8, 0x298($sp) +/* 108D64 7F0D4234 25690007 */ addiu $t1, $t3, 7 +/* 108D68 7F0D4238 AFA9028C */ sw $t1, 0x28c($sp) +/* 108D6C 7F0D423C 030A6821 */ addu $t5, $t8, $t2 +/* 108D70 7F0D4240 91B40000 */ lbu $s4, ($t5) +/* 108D74 7F0D4244 270C0001 */ addiu $t4, $t8, 1 +/* 108D78 7F0D4248 1000396C */ b .L7F0E27FC +/* 108D7C 7F0D424C A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_17: +/* 108D80 7F0D4250 001079C3 */ sra $t7, $s0, 7 +/* 108D84 7F0D4254 00104040 */ sll $t0, $s0, 1 +/* 108D88 7F0D4258 322B0001 */ andi $t3, $s1, 1 +/* 108D8C 7F0D425C 010B8025 */ or $s0, $t0, $t3 +/* 108D90 7F0D4260 8FAE028C */ lw $t6, 0x28c($sp) +/* 108D94 7F0D4264 320900FF */ andi $t1, $s0, 0xff +/* 108D98 7F0D4268 312D0028 */ andi $t5, $t1, 0x28 +/* 108D9C 7F0D426C 322A00C4 */ andi $t2, $s1, 0xc4 +/* 108DA0 7F0D4270 014DC025 */ or $t8, $t2, $t5 +/* 108DA4 7F0D4274 030F8825 */ or $s1, $t8, $t7 +/* 108DA8 7F0D4278 25D90004 */ addiu $t9, $t6, 4 +/* 108DAC 7F0D427C 322E00FF */ andi $t6, $s1, 0xff +/* 108DB0 7F0D4280 AFB9028C */ sw $t9, 0x28c($sp) +/* 108DB4 7F0D4284 AFAF0270 */ sw $t7, 0x270($sp) +/* 108DB8 7F0D4288 01208025 */ move $s0, $t1 +/* 108DBC 7F0D428C 1000395B */ b .L7F0E27FC +/* 108DC0 7F0D4290 01C08825 */ move $s1, $t6 +spectrum_op_18: +/* 108DC4 7F0D4294 8FB9028C */ lw $t9, 0x28c($sp) +/* 108DC8 7F0D4298 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 108DCC 7F0D429C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 108DD0 7F0D42A0 97A80298 */ lhu $t0, 0x298($sp) +/* 108DD4 7F0D42A4 272F0007 */ addiu $t7, $t9, 7 +/* 108DD8 7F0D42A8 AFAF028C */ sw $t7, 0x28c($sp) +/* 108DDC 7F0D42AC 010B4821 */ addu $t1, $t0, $t3 +/* 108DE0 7F0D42B0 812A0000 */ lb $t2, ($t1) +/* 108DE4 7F0D42B4 25EE0005 */ addiu $t6, $t7, 5 +/* 108DE8 7F0D42B8 AFAE028C */ sw $t6, 0x28c($sp) +/* 108DEC 7F0D42BC 010A6821 */ addu $t5, $t0, $t2 +/* 108DF0 7F0D42C0 25B80001 */ addiu $t8, $t5, 1 +/* 108DF4 7F0D42C4 A7B80298 */ sh $t8, 0x298($sp) +/* 108DF8 7F0D42C8 1000394C */ b .L7F0E27FC +/* 108DFC 7F0D42CC AFAA026C */ sw $t2, 0x26c($sp) +spectrum_op_19: +/* 108E00 7F0D42D0 8FB9028C */ lw $t9, 0x28c($sp) +/* 108E04 7F0D42D4 93AB0287 */ lbu $t3, 0x287($sp) +/* 108E08 7F0D42D8 93A80287 */ lbu $t0, 0x287($sp) +/* 108E0C 7F0D42DC 272F000B */ addiu $t7, $t9, 0xb +/* 108E10 7F0D42E0 1560001C */ bnez $t3, .L7F0D4354 +/* 108E14 7F0D42E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 108E18 7F0D42E8 02F54821 */ addu $t1, $s7, $s5 +/* 108E1C 7F0D42EC 3128FFFF */ andi $t0, $t1, 0xffff +/* 108E20 7F0D42F0 00085202 */ srl $t2, $t0, 8 +/* 108E24 7F0D42F4 3158FFFF */ andi $t8, $t2, 0xffff +/* 108E28 7F0D42F8 32CD000F */ andi $t5, $s6, 0xf +/* 108E2C 7F0D42FC 030D6021 */ addu $t4, $t8, $t5 +/* 108E30 7F0D4300 328E000F */ andi $t6, $s4, 0xf +/* 108E34 7F0D4304 018EC821 */ addu $t9, $t4, $t6 +/* 108E38 7F0D4308 A7A9026A */ sh $t1, 0x26a($sp) +/* 108E3C 7F0D430C 2401000F */ li $at, 15 +/* 108E40 7F0D4310 0039782A */ slt $t7, $at, $t9 +/* 108E44 7F0D4314 93B7026B */ lbu $s7, 0x26b($sp) +/* 108E48 7F0D4318 02D4C021 */ addu $t8, $s6, $s4 +/* 108E4C 7F0D431C 0158C821 */ addu $t9, $t2, $t8 +/* 108E50 7F0D4320 A7AA026A */ sh $t2, 0x26a($sp) +/* 108E54 7F0D4324 A7B9026A */ sh $t9, 0x26a($sp) +/* 108E58 7F0D4328 93B6026B */ lbu $s6, 0x26b($sp) +/* 108E5C 7F0D432C 000F5900 */ sll $t3, $t7, 4 +/* 108E60 7F0D4330 322900C4 */ andi $t1, $s1, 0xc4 +/* 108E64 7F0D4334 01694025 */ or $t0, $t3, $t1 +/* 108E68 7F0D4338 00197A03 */ sra $t7, $t9, 8 +/* 108E6C 7F0D433C 32CE0028 */ andi $t6, $s6, 0x28 +/* 108E70 7F0D4340 01CF5825 */ or $t3, $t6, $t7 +/* 108E74 7F0D4344 010B8825 */ or $s1, $t0, $t3 +/* 108E78 7F0D4348 322900FF */ andi $t1, $s1, 0xff +/* 108E7C 7F0D434C 1000392B */ b .L7F0E27FC +/* 108E80 7F0D4350 01208825 */ move $s1, $t1 +.L7F0D4354: +/* 108E84 7F0D4354 24010001 */ li $at, 1 +/* 108E88 7F0D4358 15010004 */ bne $t0, $at, .L7F0D436C +/* 108E8C 7F0D435C 0014CA00 */ sll $t9, $s4, 8 +/* 108E90 7F0D4360 97AA0296 */ lhu $t2, 0x296($sp) +/* 108E94 7F0D4364 10000003 */ b .L7F0D4374 +/* 108E98 7F0D4368 AFAA0264 */ sw $t2, 0x264($sp) +.L7F0D436C: +/* 108E9C 7F0D436C 97AD0294 */ lhu $t5, 0x294($sp) +/* 108EA0 7F0D4370 AFAD0264 */ sw $t5, 0x264($sp) +.L7F0D4374: +/* 108EA4 7F0D4374 8FB80264 */ lw $t8, 0x264($sp) +/* 108EA8 7F0D4378 03357025 */ or $t6, $t9, $s5 +/* 108EAC 7F0D437C 24010FFF */ li $at, 4095 +/* 108EB0 7F0D4380 330C0FFF */ andi $t4, $t8, 0xfff +/* 108EB4 7F0D4384 018E7821 */ addu $t7, $t4, $t6 +/* 108EB8 7F0D4388 002F582B */ sltu $t3, $at, $t7 +/* 108EBC 7F0D438C 93AE0287 */ lbu $t6, 0x287($sp) +/* 108EC0 7F0D4390 000B4900 */ sll $t1, $t3, 4 +/* 108EC4 7F0D4394 322800C4 */ andi $t0, $s1, 0xc4 +/* 108EC8 7F0D4398 00146A00 */ sll $t5, $s4, 8 +/* 108ECC 7F0D439C 01B5C825 */ or $t9, $t5, $s5 +/* 108ED0 7F0D43A0 01098825 */ or $s1, $t0, $t1 +/* 108ED4 7F0D43A4 322A00FF */ andi $t2, $s1, 0xff +/* 108ED8 7F0D43A8 24010001 */ li $at, 1 +/* 108EDC 7F0D43AC 03196021 */ addu $t4, $t8, $t9 +/* 108EE0 7F0D43B0 AFAC0264 */ sw $t4, 0x264($sp) +/* 108EE4 7F0D43B4 15C10003 */ bne $t6, $at, .L7F0D43C4 +/* 108EE8 7F0D43B8 01408825 */ move $s1, $t2 +/* 108EEC 7F0D43BC 10000003 */ b .L7F0D43CC +/* 108EF0 7F0D43C0 A7AC0296 */ sh $t4, 0x296($sp) +.L7F0D43C4: +/* 108EF4 7F0D43C4 8FAF0264 */ lw $t7, 0x264($sp) +/* 108EF8 7F0D43C8 A7AF0294 */ sh $t7, 0x294($sp) +.L7F0D43CC: +/* 108EFC 7F0D43CC 8FAB0264 */ lw $t3, 0x264($sp) +/* 108F00 7F0D43D0 000B4202 */ srl $t0, $t3, 8 +/* 108F04 7F0D43D4 31090028 */ andi $t1, $t0, 0x28 +/* 108F08 7F0D43D8 000B5402 */ srl $t2, $t3, 0x10 +/* 108F0C 7F0D43DC 012A6825 */ or $t5, $t1, $t2 +/* 108F10 7F0D43E0 022D8825 */ or $s1, $s1, $t5 +/* 108F14 7F0D43E4 323800FF */ andi $t8, $s1, 0xff +/* 108F18 7F0D43E8 10003904 */ b .L7F0E27FC +/* 108F1C 7F0D43EC 03008825 */ move $s1, $t8 +spectrum_op_1A: +/* 108F20 7F0D43F0 8FB9028C */ lw $t9, 0x28c($sp) +/* 108F24 7F0D43F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108F28 7F0D43F8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108F2C 7F0D43FC 00146200 */ sll $t4, $s4, 8 +/* 108F30 7F0D4400 01957825 */ or $t7, $t4, $s5 +/* 108F34 7F0D4404 272E0007 */ addiu $t6, $t9, 7 +/* 108F38 7F0D4408 AFAE028C */ sw $t6, 0x28c($sp) +/* 108F3C 7F0D440C 01E85821 */ addu $t3, $t7, $t0 +/* 108F40 7F0D4410 100038FA */ b .L7F0E27FC +/* 108F44 7F0D4414 91700000 */ lbu $s0, ($t3) +spectrum_op_1B: +/* 108F48 7F0D4418 8FA9028C */ lw $t1, 0x28c($sp) +/* 108F4C 7F0D441C 2EAD0001 */ sltiu $t5, $s5, 1 +/* 108F50 7F0D4420 26B5FFFF */ addiu $s5, $s5, -1 +/* 108F54 7F0D4424 32B800FF */ andi $t8, $s5, 0xff +/* 108F58 7F0D4428 252A0006 */ addiu $t2, $t1, 6 +/* 108F5C 7F0D442C AFAA028C */ sw $t2, 0x28c($sp) +/* 108F60 7F0D4430 0300A825 */ move $s5, $t8 +/* 108F64 7F0D4434 11A038F1 */ beqz $t5, .L7F0E27FC +/* 108F68 7F0D4438 AFAD0048 */ sw $t5, 0x48($sp) +/* 108F6C 7F0D443C 2694FFFF */ addiu $s4, $s4, -1 +/* 108F70 7F0D4440 328E00FF */ andi $t6, $s4, 0xff +/* 108F74 7F0D4444 100038ED */ b .L7F0E27FC +/* 108F78 7F0D4448 01C0A025 */ move $s4, $t6 +spectrum_op_1C: +/* 108F7C 7F0D444C 26B50001 */ addiu $s5, $s5, 1 +/* 108F80 7F0D4450 32A800FF */ andi $t0, $s5, 0xff +/* 108F84 7F0D4454 8FAC028C */ lw $t4, 0x28c($sp) +/* 108F88 7F0D4458 3109000F */ andi $t1, $t0, 0xf +/* 108F8C 7F0D445C 2D2A0001 */ sltiu $t2, $t1, 1 +/* 108F90 7F0D4460 0100A825 */ move $s5, $t0 +/* 108F94 7F0D4464 2D0B0001 */ sltiu $t3, $t0, 1 +/* 108F98 7F0D4468 311800A8 */ andi $t8, $t0, 0xa8 +/* 108F9C 7F0D446C 322D0001 */ andi $t5, $s1, 1 +/* 108FA0 7F0D4470 01B8C825 */ or $t9, $t5, $t8 +/* 108FA4 7F0D4474 3AA90080 */ xori $t1, $s5, 0x80 +/* 108FA8 7F0D4478 000A7100 */ sll $t6, $t2, 4 +/* 108FAC 7F0D447C 258F0004 */ addiu $t7, $t4, 4 +/* 108FB0 7F0D4480 032E6025 */ or $t4, $t9, $t6 +/* 108FB4 7F0D4484 2D290001 */ sltiu $t1, $t1, 1 +/* 108FB8 7F0D4488 000B4180 */ sll $t0, $t3, 6 +/* 108FBC 7F0D448C AFAB0044 */ sw $t3, 0x44($sp) +/* 108FC0 7F0D4490 01885825 */ or $t3, $t4, $t0 +/* 108FC4 7F0D4494 00096880 */ sll $t5, $t1, 2 +/* 108FC8 7F0D4498 016D8825 */ or $s1, $t3, $t5 +/* 108FCC 7F0D449C 323800FF */ andi $t8, $s1, 0xff +/* 108FD0 7F0D44A0 AFAF028C */ sw $t7, 0x28c($sp) +/* 108FD4 7F0D44A4 03008825 */ move $s1, $t8 +/* 108FD8 7F0D44A8 100038D4 */ b .L7F0E27FC +/* 108FDC 7F0D44AC AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_1D: +/* 108FE0 7F0D44B0 8FAA028C */ lw $t2, 0x28c($sp) +/* 108FE4 7F0D44B4 32AE000F */ andi $t6, $s5, 0xf +/* 108FE8 7F0D44B8 26B5FFFF */ addiu $s5, $s5, -1 +/* 108FEC 7F0D44BC 25590004 */ addiu $t9, $t2, 4 +/* 108FF0 7F0D44C0 AFB9028C */ sw $t9, 0x28c($sp) +/* 108FF4 7F0D44C4 32AD00FF */ andi $t5, $s5, 0xff +/* 108FF8 7F0D44C8 2DCF0001 */ sltiu $t7, $t6, 1 +/* 108FFC 7F0D44CC 000F4100 */ sll $t0, $t7, 4 +/* 109000 7F0D44D0 39B9007F */ xori $t9, $t5, 0x7f +/* 109004 7F0D44D4 2F390001 */ sltiu $t9, $t9, 1 +/* 109008 7F0D44D8 322C0001 */ andi $t4, $s1, 1 +/* 10900C 7F0D44DC 01888825 */ or $s1, $t4, $t0 +/* 109010 7F0D44E0 00197080 */ sll $t6, $t9, 2 +/* 109014 7F0D44E4 AFAF0048 */ sw $t7, 0x48($sp) +/* 109018 7F0D44E8 2DB80001 */ sltiu $t8, $t5, 1 +/* 10901C 7F0D44EC 31AA00A8 */ andi $t2, $t5, 0xa8 +/* 109020 7F0D44F0 014E7825 */ or $t7, $t2, $t6 +/* 109024 7F0D44F4 00184180 */ sll $t0, $t8, 6 +/* 109028 7F0D44F8 01E84825 */ or $t1, $t7, $t0 +/* 10902C 7F0D44FC 362B0002 */ ori $t3, $s1, 2 +/* 109030 7F0D4500 01698825 */ or $s1, $t3, $t1 +/* 109034 7F0D4504 322B00FF */ andi $t3, $s1, 0xff +/* 109038 7F0D4508 01608825 */ move $s1, $t3 +/* 10903C 7F0D450C AFB80044 */ sw $t8, 0x44($sp) +/* 109040 7F0D4510 100038BA */ b .L7F0E27FC +/* 109044 7F0D4514 01A0A825 */ move $s5, $t5 +spectrum_op_1E: +/* 109048 7F0D4518 8FAD028C */ lw $t5, 0x28c($sp) +/* 10904C 7F0D451C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109050 7F0D4520 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109054 7F0D4524 97B90298 */ lhu $t9, 0x298($sp) +/* 109058 7F0D4528 25B80007 */ addiu $t8, $t5, 7 +/* 10905C 7F0D452C AFB8028C */ sw $t8, 0x28c($sp) +/* 109060 7F0D4530 032A7021 */ addu $t6, $t9, $t2 +/* 109064 7F0D4534 91D50000 */ lbu $s5, ($t6) +/* 109068 7F0D4538 272C0001 */ addiu $t4, $t9, 1 +/* 10906C 7F0D453C 100038AF */ b .L7F0E27FC +/* 109070 7F0D4540 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_1F: +/* 109074 7F0D4544 32090001 */ andi $t1, $s0, 1 +/* 109078 7F0D4548 00105843 */ sra $t3, $s0, 1 +/* 10907C 7F0D454C 001169C0 */ sll $t5, $s1, 7 +/* 109080 7F0D4550 016D8025 */ or $s0, $t3, $t5 +/* 109084 7F0D4554 8FAF028C */ lw $t7, 0x28c($sp) +/* 109088 7F0D4558 321800FF */ andi $t8, $s0, 0xff +/* 10908C 7F0D455C 330E0028 */ andi $t6, $t8, 0x28 +/* 109090 7F0D4560 322A00C4 */ andi $t2, $s1, 0xc4 +/* 109094 7F0D4564 014EC825 */ or $t9, $t2, $t6 +/* 109098 7F0D4568 03298825 */ or $s1, $t9, $t1 +/* 10909C 7F0D456C 25E80004 */ addiu $t0, $t7, 4 +/* 1090A0 7F0D4570 322F00FF */ andi $t7, $s1, 0xff +/* 1090A4 7F0D4574 AFA8028C */ sw $t0, 0x28c($sp) +/* 1090A8 7F0D4578 AFA90260 */ sw $t1, 0x260($sp) +/* 1090AC 7F0D457C 03008025 */ move $s0, $t8 +/* 1090B0 7F0D4580 1000389E */ b .L7F0E27FC +/* 1090B4 7F0D4584 01E08825 */ move $s1, $t7 +spectrum_op_20: +/* 1090B8 7F0D4588 8FA8028C */ lw $t0, 0x28c($sp) +/* 1090BC 7F0D458C 322B0040 */ andi $t3, $s1, 0x40 +/* 1090C0 7F0D4590 97AA0298 */ lhu $t2, 0x298($sp) +/* 1090C4 7F0D4594 25090007 */ addiu $t1, $t0, 7 +/* 1090C8 7F0D4598 11600005 */ beqz $t3, .L7F0D45B0 +/* 1090CC 7F0D459C AFA9028C */ sw $t1, 0x28c($sp) +/* 1090D0 7F0D45A0 97AD0298 */ lhu $t5, 0x298($sp) +/* 1090D4 7F0D45A4 25B80001 */ addiu $t8, $t5, 1 +/* 1090D8 7F0D45A8 10003894 */ b .L7F0E27FC +/* 1090DC 7F0D45AC A7B80298 */ sh $t8, 0x298($sp) +.L7F0D45B0: +/* 1090E0 7F0D45B0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1090E4 7F0D45B4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1090E8 7F0D45B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 1090EC 7F0D45BC 014EC821 */ addu $t9, $t2, $t6 +/* 1090F0 7F0D45C0 832C0000 */ lb $t4, ($t9) +/* 1090F4 7F0D45C4 252B0005 */ addiu $t3, $t1, 5 +/* 1090F8 7F0D45C8 AFAB028C */ sw $t3, 0x28c($sp) +/* 1090FC 7F0D45CC 014C7821 */ addu $t7, $t2, $t4 +/* 109100 7F0D45D0 25E80001 */ addiu $t0, $t7, 1 +/* 109104 7F0D45D4 A7A80298 */ sh $t0, 0x298($sp) +/* 109108 7F0D45D8 10003888 */ b .L7F0E27FC +/* 10910C 7F0D45DC AFAC025C */ sw $t4, 0x25c($sp) +spectrum_op_21: +/* 109110 7F0D45E0 8FAD028C */ lw $t5, 0x28c($sp) +/* 109114 7F0D45E4 93AE0287 */ lbu $t6, 0x287($sp) +/* 109118 7F0D45E8 97B90298 */ lhu $t9, 0x298($sp) +/* 10911C 7F0D45EC 25B8000A */ addiu $t8, $t5, 0xa +/* 109120 7F0D45F0 15C0000D */ bnez $t6, .L7F0D4628 +/* 109124 7F0D45F4 AFB8028C */ sw $t8, 0x28c($sp) +/* 109128 7F0D45F8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10912C 7F0D45FC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109130 7F0D4600 272B0001 */ addiu $t3, $t9, 1 +/* 109134 7F0D4604 3168FFFF */ andi $t0, $t3, 0xffff +/* 109138 7F0D4608 032A6021 */ addu $t4, $t9, $t2 +/* 10913C 7F0D460C 91970000 */ lbu $s7, ($t4) +/* 109140 7F0D4610 A7AB0298 */ sh $t3, 0x298($sp) +/* 109144 7F0D4614 010A4821 */ addu $t1, $t0, $t2 +/* 109148 7F0D4618 91360000 */ lbu $s6, ($t1) +/* 10914C 7F0D461C 256D0001 */ addiu $t5, $t3, 1 +/* 109150 7F0D4620 10003876 */ b .L7F0E27FC +/* 109154 7F0D4624 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D4628: +/* 109158 7F0D4628 93B80287 */ lbu $t8, 0x287($sp) +/* 10915C 7F0D462C 24010001 */ li $at, 1 +/* 109160 7F0D4630 97AE0298 */ lhu $t6, 0x298($sp) +/* 109164 7F0D4634 1701000B */ bne $t8, $at, .L7F0D4664 +/* 109168 7F0D4638 97AD0298 */ lhu $t5, 0x298($sp) +/* 10916C 7F0D463C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 109170 7F0D4640 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 109174 7F0D4644 018E5021 */ addu $t2, $t4, $t6 +/* 109178 7F0D4648 91490001 */ lbu $t1, 1($t2) +/* 10917C 7F0D464C 01CCC821 */ addu $t9, $t6, $t4 +/* 109180 7F0D4650 93280000 */ lbu $t0, ($t9) +/* 109184 7F0D4654 00097A00 */ sll $t7, $t1, 8 +/* 109188 7F0D4658 010F5825 */ or $t3, $t0, $t7 +/* 10918C 7F0D465C 1000000A */ b .L7F0D4688 +/* 109190 7F0D4660 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D4664: +/* 109194 7F0D4664 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 109198 7F0D4668 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10919C 7F0D466C 030D7021 */ addu $t6, $t8, $t5 +/* 1091A0 7F0D4670 91CA0001 */ lbu $t2, 1($t6) +/* 1091A4 7F0D4674 01B8C821 */ addu $t9, $t5, $t8 +/* 1091A8 7F0D4678 932C0000 */ lbu $t4, ($t9) +/* 1091AC 7F0D467C 000A4A00 */ sll $t1, $t2, 8 +/* 1091B0 7F0D4680 01894025 */ or $t0, $t4, $t1 +/* 1091B4 7F0D4684 A7A80294 */ sh $t0, 0x294($sp) +.L7F0D4688: +/* 1091B8 7F0D4688 97AF0298 */ lhu $t7, 0x298($sp) +/* 1091BC 7F0D468C 25EB0002 */ addiu $t3, $t7, 2 +/* 1091C0 7F0D4690 1000385A */ b .L7F0E27FC +/* 1091C4 7F0D4694 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_22: +/* 1091C8 7F0D4698 8FB9028C */ lw $t9, 0x28c($sp) +/* 1091CC 7F0D469C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1091D0 7F0D46A0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1091D4 7F0D46A4 97AD0298 */ lhu $t5, 0x298($sp) +/* 1091D8 7F0D46A8 27380010 */ addiu $t8, $t9, 0x10 +/* 1091DC 7F0D46AC AFB8028C */ sw $t8, 0x28c($sp) +/* 1091E0 7F0D46B0 01CD4821 */ addu $t1, $t6, $t5 +/* 1091E4 7F0D46B4 91280001 */ lbu $t0, 1($t1) +/* 1091E8 7F0D46B8 01AE5021 */ addu $t2, $t5, $t6 +/* 1091EC 7F0D46BC 914C0000 */ lbu $t4, ($t2) +/* 1091F0 7F0D46C0 93B80287 */ lbu $t8, 0x287($sp) +/* 1091F4 7F0D46C4 00087A00 */ sll $t7, $t0, 8 +/* 1091F8 7F0D46C8 25B90002 */ addiu $t9, $t5, 2 +/* 1091FC 7F0D46CC 018F5825 */ or $t3, $t4, $t7 +/* 109200 7F0D46D0 A7AB025A */ sh $t3, 0x25a($sp) +/* 109204 7F0D46D4 17000054 */ bnez $t8, .L7F0D4828 +/* 109208 7F0D46D8 A7B90298 */ sh $t9, 0x298($sp) +/* 10920C 7F0D46DC 316AFFFF */ andi $t2, $t3, 0xffff +/* 109210 7F0D46E0 29415B00 */ slti $at, $t2, 0x5b00 +/* 109214 7F0D46E4 14200006 */ bnez $at, .L7F0D4700 +/* 109218 7F0D46E8 97A8025A */ lhu $t0, 0x25a($sp) +/* 10921C 7F0D46EC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 109220 7F0D46F0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 109224 7F0D46F4 01CA4821 */ addu $t1, $t6, $t2 +/* 109228 7F0D46F8 1000001F */ b .L7F0D4778 +/* 10922C 7F0D46FC A1370000 */ sb $s7, ($t1) +.L7F0D4700: +/* 109230 7F0D4700 29015800 */ slti $at, $t0, 0x5800 +/* 109234 7F0D4704 1420000C */ bnez $at, .L7F0D4738 +/* 109238 7F0D4708 97AE025A */ lhu $t6, 0x25a($sp) +/* 10923C 7F0D470C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 109240 7F0D4710 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 109244 7F0D4714 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 109248 7F0D4718 240B0001 */ li $t3, 1 +/* 10924C 7F0D471C 01887821 */ addu $t7, $t4, $t0 +/* 109250 7F0D4720 A1F70000 */ sb $s7, ($t7) +/* 109254 7F0D4724 97B9025A */ lhu $t9, 0x25a($sp) +/* 109258 7F0D4728 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10925C 7F0D472C 01B9C021 */ addu $t8, $t5, $t9 +/* 109260 7F0D4730 10000011 */ b .L7F0D4778 +/* 109264 7F0D4734 A30BA800 */ sb $t3, -0x5800($t8) +.L7F0D4738: +/* 109268 7F0D4738 29C14000 */ slti $at, $t6, 0x4000 +/* 10926C 7F0D473C 1420000E */ bnez $at, .L7F0D4778 +/* 109270 7F0D4740 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109274 7F0D4744 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109278 7F0D4748 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10927C 7F0D474C 240C0001 */ li $t4, 1 +/* 109280 7F0D4750 014E4821 */ addu $t1, $t2, $t6 +/* 109284 7F0D4754 A1370000 */ sb $s7, ($t1) +/* 109288 7F0D4758 97A8025A */ lhu $t0, 0x25a($sp) +/* 10928C 7F0D475C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 109290 7F0D4760 310F1800 */ andi $t7, $t0, 0x1800 +/* 109294 7F0D4764 000F68C3 */ sra $t5, $t7, 3 +/* 109298 7F0D4768 311900FF */ andi $t9, $t0, 0xff +/* 10929C 7F0D476C 01B95825 */ or $t3, $t5, $t9 +/* 1092A0 7F0D4770 030B5021 */ addu $t2, $t8, $t3 +/* 1092A4 7F0D4774 A14C0000 */ sb $t4, ($t2) +.L7F0D4778: +/* 1092A8 7F0D4778 97AE025A */ lhu $t6, 0x25a($sp) +/* 1092AC 7F0D477C 97AD025A */ lhu $t5, 0x25a($sp) +/* 1092B0 7F0D4780 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1092B4 7F0D4784 25C90001 */ addiu $t1, $t6, 1 +/* 1092B8 7F0D4788 29215B00 */ slti $at, $t1, 0x5b00 +/* 1092BC 7F0D478C 14200005 */ bnez $at, .L7F0D47A4 +/* 1092C0 7F0D4790 25B90001 */ addiu $t9, $t5, 1 +/* 1092C4 7F0D4794 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1092C8 7F0D4798 01EE4021 */ addu $t0, $t7, $t6 +/* 1092CC 7F0D479C 10003817 */ b .L7F0E27FC +/* 1092D0 7F0D47A0 A1160001 */ sb $s6, 1($t0) +.L7F0D47A4: +/* 1092D4 7F0D47A4 2B215800 */ slti $at, $t9, 0x5800 +/* 1092D8 7F0D47A8 1420000C */ bnez $at, .L7F0D47DC +/* 1092DC 7F0D47AC 97AE025A */ lhu $t6, 0x25a($sp) +/* 1092E0 7F0D47B0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1092E4 7F0D47B4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1092E8 7F0D47B8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1092EC 7F0D47BC 240C0001 */ li $t4, 1 +/* 1092F0 7F0D47C0 030D5821 */ addu $t3, $t8, $t5 +/* 1092F4 7F0D47C4 A1760001 */ sb $s6, 1($t3) +/* 1092F8 7F0D47C8 97A9025A */ lhu $t1, 0x25a($sp) +/* 1092FC 7F0D47CC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 109300 7F0D47D0 01497821 */ addu $t7, $t2, $t1 +/* 109304 7F0D47D4 10003809 */ b .L7F0E27FC +/* 109308 7F0D47D8 A1ECA801 */ sb $t4, -0x57ff($t7) +.L7F0D47DC: +/* 10930C 7F0D47DC 25C80001 */ addiu $t0, $t6, 1 +/* 109310 7F0D47E0 29014000 */ slti $at, $t0, 0x4000 +/* 109314 7F0D47E4 14203805 */ bnez $at, .L7F0E27FC +/* 109318 7F0D47E8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10931C 7F0D47EC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 109320 7F0D47F0 240D0001 */ li $t5, 1 +/* 109324 7F0D47F4 032EC021 */ addu $t8, $t9, $t6 +/* 109328 7F0D47F8 A3160001 */ sb $s6, 1($t8) +/* 10932C 7F0D47FC 97AB025A */ lhu $t3, 0x25a($sp) +/* 109330 7F0D4800 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 109334 7F0D4804 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 109338 7F0D4808 256A0001 */ addiu $t2, $t3, 1 +/* 10933C 7F0D480C 31491800 */ andi $t1, $t2, 0x1800 +/* 109340 7F0D4810 000960C3 */ sra $t4, $t1, 3 +/* 109344 7F0D4814 314F00FF */ andi $t7, $t2, 0xff +/* 109348 7F0D4818 018F4025 */ or $t0, $t4, $t7 +/* 10934C 7F0D481C 03287021 */ addu $t6, $t9, $t0 +/* 109350 7F0D4820 100037F6 */ b .L7F0E27FC +/* 109354 7F0D4824 A1CD0000 */ sb $t5, ($t6) +.L7F0D4828: +/* 109358 7F0D4828 93B80287 */ lbu $t8, 0x287($sp) +/* 10935C 7F0D482C 24010001 */ li $at, 1 +/* 109360 7F0D4830 97AB025A */ lhu $t3, 0x25a($sp) +/* 109364 7F0D4834 1701005B */ bne $t8, $at, .L7F0D49A4 +/* 109368 7F0D4838 29615B00 */ slti $at, $t3, 0x5b00 +/* 10936C 7F0D483C 14200007 */ bnez $at, .L7F0D485C +/* 109370 7F0D4840 97AF025A */ lhu $t7, 0x25a($sp) +/* 109374 7F0D4844 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109378 7F0D4848 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10937C 7F0D484C 97A90296 */ lhu $t1, 0x296($sp) +/* 109380 7F0D4850 014B6021 */ addu $t4, $t2, $t3 +/* 109384 7F0D4854 10000021 */ b .L7F0D48DC +/* 109388 7F0D4858 A1890000 */ sb $t1, ($t4) +.L7F0D485C: +/* 10938C 7F0D485C 29E15800 */ slti $at, $t7, 0x5800 +/* 109390 7F0D4860 1420000D */ bnez $at, .L7F0D4898 +/* 109394 7F0D4864 97A9025A */ lhu $t1, 0x25a($sp) +/* 109398 7F0D4868 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10939C 7F0D486C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1093A0 7F0D4870 97B90296 */ lhu $t9, 0x296($sp) +/* 1093A4 7F0D4874 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1093A8 7F0D4878 010F6821 */ addu $t5, $t0, $t7 +/* 1093AC 7F0D487C A1B90000 */ sb $t9, ($t5) +/* 1093B0 7F0D4880 97AA025A */ lhu $t2, 0x25a($sp) +/* 1093B4 7F0D4884 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1093B8 7F0D4888 240E0001 */ li $t6, 1 +/* 1093BC 7F0D488C 030A5821 */ addu $t3, $t8, $t2 +/* 1093C0 7F0D4890 10000012 */ b .L7F0D48DC +/* 1093C4 7F0D4894 A16EA800 */ sb $t6, -0x5800($t3) +.L7F0D4898: +/* 1093C8 7F0D4898 29214000 */ slti $at, $t1, 0x4000 +/* 1093CC 7F0D489C 1420000F */ bnez $at, .L7F0D48DC +/* 1093D0 7F0D48A0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1093D4 7F0D48A4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1093D8 7F0D48A8 97AC0296 */ lhu $t4, 0x296($sp) +/* 1093DC 7F0D48AC 24190001 */ li $t9, 1 +/* 1093E0 7F0D48B0 01097821 */ addu $t7, $t0, $t1 +/* 1093E4 7F0D48B4 A1EC0000 */ sb $t4, ($t7) +/* 1093E8 7F0D48B8 97AD025A */ lhu $t5, 0x25a($sp) +/* 1093EC 7F0D48BC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1093F0 7F0D48C0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 1093F4 7F0D48C4 31B81800 */ andi $t8, $t5, 0x1800 +/* 1093F8 7F0D48C8 001850C3 */ sra $t2, $t8, 3 +/* 1093FC 7F0D48CC 31AE00FF */ andi $t6, $t5, 0xff +/* 109400 7F0D48D0 014E5825 */ or $t3, $t2, $t6 +/* 109404 7F0D48D4 010B4821 */ addu $t1, $t0, $t3 +/* 109408 7F0D48D8 A1390000 */ sb $t9, ($t1) +.L7F0D48DC: +/* 10940C 7F0D48DC 97AC025A */ lhu $t4, 0x25a($sp) +/* 109410 7F0D48E0 97A8025A */ lhu $t0, 0x25a($sp) +/* 109414 7F0D48E4 97B80296 */ lhu $t8, 0x296($sp) +/* 109418 7F0D48E8 258F0001 */ addiu $t7, $t4, 1 +/* 10941C 7F0D48EC 29E15B00 */ slti $at, $t7, 0x5b00 +/* 109420 7F0D48F0 14200007 */ bnez $at, .L7F0D4910 +/* 109424 7F0D48F4 250B0001 */ addiu $t3, $t0, 1 +/* 109428 7F0D48F8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10942C 7F0D48FC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109430 7F0D4900 00186A03 */ sra $t5, $t8, 8 +/* 109434 7F0D4904 014C7021 */ addu $t6, $t2, $t4 +/* 109438 7F0D4908 100037BC */ b .L7F0E27FC +/* 10943C 7F0D490C A1CD0001 */ sb $t5, 1($t6) +.L7F0D4910: +/* 109440 7F0D4910 29615800 */ slti $at, $t3, 0x5800 +/* 109444 7F0D4914 1420000E */ bnez $at, .L7F0D4950 +/* 109448 7F0D4918 97AB025A */ lhu $t3, 0x25a($sp) +/* 10944C 7F0D491C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 109450 7F0D4920 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 109454 7F0D4924 97B90296 */ lhu $t9, 0x296($sp) +/* 109458 7F0D4928 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10945C 7F0D492C 01E8C021 */ addu $t8, $t7, $t0 +/* 109460 7F0D4930 00194A03 */ sra $t1, $t9, 8 +/* 109464 7F0D4934 A3090001 */ sb $t1, 1($t8) +/* 109468 7F0D4938 97AD025A */ lhu $t5, 0x25a($sp) +/* 10946C 7F0D493C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 109470 7F0D4940 240A0001 */ li $t2, 1 +/* 109474 7F0D4944 018D7021 */ addu $t6, $t4, $t5 +/* 109478 7F0D4948 100037AC */ b .L7F0E27FC +/* 10947C 7F0D494C A1CAA801 */ sb $t2, -0x57ff($t6) +.L7F0D4950: +/* 109480 7F0D4950 25790001 */ addiu $t9, $t3, 1 +/* 109484 7F0D4954 2B214000 */ slti $at, $t9, 0x4000 +/* 109488 7F0D4958 142037A8 */ bnez $at, .L7F0E27FC +/* 10948C 7F0D495C 97AF0296 */ lhu $t7, 0x296($sp) +/* 109490 7F0D4960 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 109494 7F0D4964 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 109498 7F0D4968 000F4203 */ sra $t0, $t7, 8 +/* 10949C 7F0D496C 240C0001 */ li $t4, 1 +/* 1094A0 7F0D4970 012BC021 */ addu $t8, $t1, $t3 +/* 1094A4 7F0D4974 A3080001 */ sb $t0, 1($t8) +/* 1094A8 7F0D4978 97AD025A */ lhu $t5, 0x25a($sp) +/* 1094AC 7F0D497C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 1094B0 7F0D4980 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 1094B4 7F0D4984 25AA0001 */ addiu $t2, $t5, 1 +/* 1094B8 7F0D4988 314E1800 */ andi $t6, $t2, 0x1800 +/* 1094BC 7F0D498C 000EC8C3 */ sra $t9, $t6, 3 +/* 1094C0 7F0D4990 314F00FF */ andi $t7, $t2, 0xff +/* 1094C4 7F0D4994 032F4825 */ or $t1, $t9, $t7 +/* 1094C8 7F0D4998 01694021 */ addu $t0, $t3, $t1 +/* 1094CC 7F0D499C 10003797 */ b .L7F0E27FC +/* 1094D0 7F0D49A0 A10C0000 */ sb $t4, ($t0) +.L7F0D49A4: +/* 1094D4 7F0D49A4 97B8025A */ lhu $t8, 0x25a($sp) +/* 1094D8 7F0D49A8 97B9025A */ lhu $t9, 0x25a($sp) +/* 1094DC 7F0D49AC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1094E0 7F0D49B0 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1094E4 7F0D49B4 54200007 */ bnezl $at, .L7F0D49D4 +/* 1094E8 7F0D49B8 2B215800 */ slti $at, $t9, 0x5800 +/* 1094EC 7F0D49BC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1094F0 7F0D49C0 97AD0294 */ lhu $t5, 0x294($sp) +/* 1094F4 7F0D49C4 01D85021 */ addu $t2, $t6, $t8 +/* 1094F8 7F0D49C8 10000021 */ b .L7F0D4A50 +/* 1094FC 7F0D49CC A14D0000 */ sb $t5, ($t2) +/* 109500 7F0D49D0 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D49D4: +/* 109504 7F0D49D4 1420000D */ bnez $at, .L7F0D4A0C +/* 109508 7F0D49D8 97AD025A */ lhu $t5, 0x25a($sp) +/* 10950C 7F0D49DC 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 109510 7F0D49E0 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 109514 7F0D49E4 97AF0294 */ lhu $t7, 0x294($sp) +/* 109518 7F0D49E8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10951C 7F0D49EC 01794821 */ addu $t1, $t3, $t9 +/* 109520 7F0D49F0 A12F0000 */ sb $t7, ($t1) +/* 109524 7F0D49F4 97AE025A */ lhu $t6, 0x25a($sp) +/* 109528 7F0D49F8 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10952C 7F0D49FC 240C0001 */ li $t4, 1 +/* 109530 7F0D4A00 010EC021 */ addu $t8, $t0, $t6 +/* 109534 7F0D4A04 10000012 */ b .L7F0D4A50 +/* 109538 7F0D4A08 A30CA800 */ sb $t4, -0x5800($t8) +.L7F0D4A0C: +/* 10953C 7F0D4A0C 29A14000 */ slti $at, $t5, 0x4000 +/* 109540 7F0D4A10 1420000F */ bnez $at, .L7F0D4A50 +/* 109544 7F0D4A14 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 109548 7F0D4A18 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10954C 7F0D4A1C 97AA0294 */ lhu $t2, 0x294($sp) +/* 109550 7F0D4A20 240F0001 */ li $t7, 1 +/* 109554 7F0D4A24 016DC821 */ addu $t9, $t3, $t5 +/* 109558 7F0D4A28 A32A0000 */ sb $t2, ($t9) +/* 10955C 7F0D4A2C 97A9025A */ lhu $t1, 0x25a($sp) +/* 109560 7F0D4A30 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 109564 7F0D4A34 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 109568 7F0D4A38 31281800 */ andi $t0, $t1, 0x1800 +/* 10956C 7F0D4A3C 000870C3 */ sra $t6, $t0, 3 +/* 109570 7F0D4A40 312C00FF */ andi $t4, $t1, 0xff +/* 109574 7F0D4A44 01CCC025 */ or $t8, $t6, $t4 +/* 109578 7F0D4A48 01786821 */ addu $t5, $t3, $t8 +/* 10957C 7F0D4A4C A1AF0000 */ sb $t7, ($t5) +.L7F0D4A50: +/* 109580 7F0D4A50 97AA025A */ lhu $t2, 0x25a($sp) +/* 109584 7F0D4A54 97AB025A */ lhu $t3, 0x25a($sp) +/* 109588 7F0D4A58 97A80294 */ lhu $t0, 0x294($sp) +/* 10958C 7F0D4A5C 25590001 */ addiu $t9, $t2, 1 +/* 109590 7F0D4A60 2B215B00 */ slti $at, $t9, 0x5b00 +/* 109594 7F0D4A64 14200007 */ bnez $at, .L7F0D4A84 +/* 109598 7F0D4A68 25780001 */ addiu $t8, $t3, 1 +/* 10959C 7F0D4A6C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1095A0 7F0D4A70 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1095A4 7F0D4A74 00084A03 */ sra $t1, $t0, 8 +/* 1095A8 7F0D4A78 01CA6021 */ addu $t4, $t6, $t2 +/* 1095AC 7F0D4A7C 1000375F */ b .L7F0E27FC +/* 1095B0 7F0D4A80 A1890001 */ sb $t1, 1($t4) +.L7F0D4A84: +/* 1095B4 7F0D4A84 2B015800 */ slti $at, $t8, 0x5800 +/* 1095B8 7F0D4A88 1420000E */ bnez $at, .L7F0D4AC4 +/* 1095BC 7F0D4A8C 97B8025A */ lhu $t8, 0x25a($sp) +/* 1095C0 7F0D4A90 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1095C4 7F0D4A94 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1095C8 7F0D4A98 97AF0294 */ lhu $t7, 0x294($sp) +/* 1095CC 7F0D4A9C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1095D0 7F0D4AA0 032B4021 */ addu $t0, $t9, $t3 +/* 1095D4 7F0D4AA4 000F6A03 */ sra $t5, $t7, 8 +/* 1095D8 7F0D4AA8 A10D0001 */ sb $t5, 1($t0) +/* 1095DC 7F0D4AAC 97A9025A */ lhu $t1, 0x25a($sp) +/* 1095E0 7F0D4AB0 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1095E4 7F0D4AB4 240E0001 */ li $t6, 1 +/* 1095E8 7F0D4AB8 01496021 */ addu $t4, $t2, $t1 +/* 1095EC 7F0D4ABC 1000374F */ b .L7F0E27FC +/* 1095F0 7F0D4AC0 A18EA801 */ sb $t6, -0x57ff($t4) +.L7F0D4AC4: +/* 1095F4 7F0D4AC4 270F0001 */ addiu $t7, $t8, 1 +/* 1095F8 7F0D4AC8 29E14000 */ slti $at, $t7, 0x4000 +/* 1095FC 7F0D4ACC 1420374B */ bnez $at, .L7F0E27FC +/* 109600 7F0D4AD0 97B90294 */ lhu $t9, 0x294($sp) +/* 109604 7F0D4AD4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109608 7F0D4AD8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10960C 7F0D4ADC 00195A03 */ sra $t3, $t9, 8 +/* 109610 7F0D4AE0 240A0001 */ li $t2, 1 +/* 109614 7F0D4AE4 01B84021 */ addu $t0, $t5, $t8 +/* 109618 7F0D4AE8 A10B0001 */ sb $t3, 1($t0) +/* 10961C 7F0D4AEC 97A9025A */ lhu $t1, 0x25a($sp) +/* 109620 7F0D4AF0 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 109624 7F0D4AF4 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 109628 7F0D4AF8 252E0001 */ addiu $t6, $t1, 1 +/* 10962C 7F0D4AFC 31CC1800 */ andi $t4, $t6, 0x1800 +/* 109630 7F0D4B00 000C78C3 */ sra $t7, $t4, 3 +/* 109634 7F0D4B04 31D900FF */ andi $t9, $t6, 0xff +/* 109638 7F0D4B08 01F96825 */ or $t5, $t7, $t9 +/* 10963C 7F0D4B0C 030D5821 */ addu $t3, $t8, $t5 +/* 109640 7F0D4B10 1000373A */ b .L7F0E27FC +/* 109644 7F0D4B14 A16A0000 */ sb $t2, ($t3) +spectrum_op_23: +/* 109648 7F0D4B18 8FA8028C */ lw $t0, 0x28c($sp) +/* 10964C 7F0D4B1C 93AC0287 */ lbu $t4, 0x287($sp) +/* 109650 7F0D4B20 93B90287 */ lbu $t9, 0x287($sp) +/* 109654 7F0D4B24 25090006 */ addiu $t1, $t0, 6 +/* 109658 7F0D4B28 15800009 */ bnez $t4, .L7F0D4B50 +/* 10965C 7F0D4B2C AFA9028C */ sw $t1, 0x28c($sp) +/* 109660 7F0D4B30 26F70001 */ addiu $s7, $s7, 1 +/* 109664 7F0D4B34 32EE00FF */ andi $t6, $s7, 0xff +/* 109668 7F0D4B38 15C03730 */ bnez $t6, .L7F0E27FC +/* 10966C 7F0D4B3C 01C0B825 */ move $s7, $t6 +/* 109670 7F0D4B40 26D60001 */ addiu $s6, $s6, 1 +/* 109674 7F0D4B44 32CF00FF */ andi $t7, $s6, 0xff +/* 109678 7F0D4B48 1000372C */ b .L7F0E27FC +/* 10967C 7F0D4B4C 01E0B025 */ move $s6, $t7 +.L7F0D4B50: +/* 109680 7F0D4B50 24010001 */ li $at, 1 +/* 109684 7F0D4B54 17210005 */ bne $t9, $at, .L7F0D4B6C +/* 109688 7F0D4B58 97AA0294 */ lhu $t2, 0x294($sp) +/* 10968C 7F0D4B5C 97B80296 */ lhu $t8, 0x296($sp) +/* 109690 7F0D4B60 270D0001 */ addiu $t5, $t8, 1 +/* 109694 7F0D4B64 10003725 */ b .L7F0E27FC +/* 109698 7F0D4B68 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D4B6C: +/* 10969C 7F0D4B6C 254B0001 */ addiu $t3, $t2, 1 +/* 1096A0 7F0D4B70 10003722 */ b .L7F0E27FC +/* 1096A4 7F0D4B74 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_24: +/* 1096A8 7F0D4B78 8FA8028C */ lw $t0, 0x28c($sp) +/* 1096AC 7F0D4B7C 93AC0287 */ lbu $t4, 0x287($sp) +/* 1096B0 7F0D4B80 93B80287 */ lbu $t8, 0x287($sp) +/* 1096B4 7F0D4B84 25090004 */ addiu $t1, $t0, 4 +/* 1096B8 7F0D4B88 15800017 */ bnez $t4, .L7F0D4BE8 +/* 1096BC 7F0D4B8C AFA9028C */ sw $t1, 0x28c($sp) +/* 1096C0 7F0D4B90 26D60001 */ addiu $s6, $s6, 1 +/* 1096C4 7F0D4B94 32CE00FF */ andi $t6, $s6, 0xff +/* 1096C8 7F0D4B98 31D9000F */ andi $t9, $t6, 0xf +/* 1096CC 7F0D4B9C 2F380001 */ sltiu $t8, $t9, 1 +/* 1096D0 7F0D4BA0 01C0B025 */ move $s6, $t6 +/* 1096D4 7F0D4BA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 1096D8 7F0D4BA8 31CA00A8 */ andi $t2, $t6, 0xa8 +/* 1096DC 7F0D4BAC 322D0001 */ andi $t5, $s1, 1 +/* 1096E0 7F0D4BB0 01AA5825 */ or $t3, $t5, $t2 +/* 1096E4 7F0D4BB4 3AD90080 */ xori $t9, $s6, 0x80 +/* 1096E8 7F0D4BB8 00184100 */ sll $t0, $t8, 4 +/* 1096EC 7F0D4BBC 01684825 */ or $t1, $t3, $t0 +/* 1096F0 7F0D4BC0 2F390001 */ sltiu $t9, $t9, 1 +/* 1096F4 7F0D4BC4 000F7180 */ sll $t6, $t7, 6 +/* 1096F8 7F0D4BC8 AFAF0044 */ sw $t7, 0x44($sp) +/* 1096FC 7F0D4BCC 012E7825 */ or $t7, $t1, $t6 +/* 109700 7F0D4BD0 00196880 */ sll $t5, $t9, 2 +/* 109704 7F0D4BD4 01ED8825 */ or $s1, $t7, $t5 +/* 109708 7F0D4BD8 322A00FF */ andi $t2, $s1, 0xff +/* 10970C 7F0D4BDC 01408825 */ move $s1, $t2 +/* 109710 7F0D4BE0 10003706 */ b .L7F0E27FC +/* 109714 7F0D4BE4 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D4BE8: +/* 109718 7F0D4BE8 24010001 */ li $at, 1 +/* 10971C 7F0D4BEC 17010004 */ bne $t8, $at, .L7F0D4C00 +/* 109720 7F0D4BF0 97A80294 */ lhu $t0, 0x294($sp) +/* 109724 7F0D4BF4 97AB0296 */ lhu $t3, 0x296($sp) +/* 109728 7F0D4BF8 10000002 */ b .L7F0D4C04 +/* 10972C 7F0D4BFC AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D4C00: +/* 109730 7F0D4C00 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D4C04: +/* 109734 7F0D4C04 8FAC0048 */ lw $t4, 0x48($sp) +/* 109738 7F0D4C08 32280001 */ andi $t0, $s1, 1 +/* 10973C 7F0D4C0C 24010001 */ li $at, 1 +/* 109740 7F0D4C10 000C7203 */ sra $t6, $t4, 8 +/* 109744 7F0D4C14 25CA0001 */ addiu $t2, $t6, 1 +/* 109748 7F0D4C18 314F00FF */ andi $t7, $t2, 0xff +/* 10974C 7F0D4C1C 2DED0001 */ sltiu $t5, $t7, 1 +/* 109750 7F0D4C20 314C00FF */ andi $t4, $t2, 0xff +/* 109754 7F0D4C24 A3AE0259 */ sb $t6, 0x259($sp) +/* 109758 7F0D4C28 318900A8 */ andi $t1, $t4, 0xa8 +/* 10975C 7F0D4C2C AFAD0044 */ sw $t5, 0x44($sp) +/* 109760 7F0D4C30 3158000F */ andi $t8, $t2, 0xf +/* 109764 7F0D4C34 8FB90044 */ lw $t9, 0x44($sp) +/* 109768 7F0D4C38 2F0B0001 */ sltiu $t3, $t8, 1 +/* 10976C 7F0D4C3C 01097025 */ or $t6, $t0, $t1 +/* 109770 7F0D4C40 000B7900 */ sll $t7, $t3, 4 +/* 109774 7F0D4C44 01CF6825 */ or $t5, $t6, $t7 +/* 109778 7F0D4C48 39880080 */ xori $t0, $t4, 0x80 +/* 10977C 7F0D4C4C A3AA0259 */ sb $t2, 0x259($sp) +/* 109780 7F0D4C50 2D080001 */ sltiu $t0, $t0, 1 +/* 109784 7F0D4C54 00195180 */ sll $t2, $t9, 6 +/* 109788 7F0D4C58 93AE0287 */ lbu $t6, 0x287($sp) +/* 10978C 7F0D4C5C 01AAC025 */ or $t8, $t5, $t2 +/* 109790 7F0D4C60 00084880 */ sll $t1, $t0, 2 +/* 109794 7F0D4C64 03098825 */ or $s1, $t8, $t1 +/* 109798 7F0D4C68 AFAB0048 */ sw $t3, 0x48($sp) +/* 10979C 7F0D4C6C 322B00FF */ andi $t3, $s1, 0xff +/* 1097A0 7F0D4C70 15C10007 */ bne $t6, $at, .L7F0D4C90 +/* 1097A4 7F0D4C74 01608825 */ move $s1, $t3 +/* 1097A8 7F0D4C78 97AF0296 */ lhu $t7, 0x296($sp) +/* 1097AC 7F0D4C7C 000C6A00 */ sll $t5, $t4, 8 +/* 1097B0 7F0D4C80 31F900FF */ andi $t9, $t7, 0xff +/* 1097B4 7F0D4C84 032D5025 */ or $t2, $t9, $t5 +/* 1097B8 7F0D4C88 100036DC */ b .L7F0E27FC +/* 1097BC 7F0D4C8C A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D4C90: +/* 1097C0 7F0D4C90 97A80294 */ lhu $t0, 0x294($sp) +/* 1097C4 7F0D4C94 93A90259 */ lbu $t1, 0x259($sp) +/* 1097C8 7F0D4C98 311800FF */ andi $t8, $t0, 0xff +/* 1097CC 7F0D4C9C 00095A00 */ sll $t3, $t1, 8 +/* 1097D0 7F0D4CA0 030B7025 */ or $t6, $t8, $t3 +/* 1097D4 7F0D4CA4 100036D5 */ b .L7F0E27FC +/* 1097D8 7F0D4CA8 A7AE0294 */ sh $t6, 0x294($sp) +spectrum_op_25: +/* 1097DC 7F0D4CAC 8FAF028C */ lw $t7, 0x28c($sp) +/* 1097E0 7F0D4CB0 93B90287 */ lbu $t9, 0x287($sp) +/* 1097E4 7F0D4CB4 93AE0287 */ lbu $t6, 0x287($sp) +/* 1097E8 7F0D4CB8 25EC0004 */ addiu $t4, $t7, 4 +/* 1097EC 7F0D4CBC 17200018 */ bnez $t9, .L7F0D4D20 +/* 1097F0 7F0D4CC0 AFAC028C */ sw $t4, 0x28c($sp) +/* 1097F4 7F0D4CC4 32CD000F */ andi $t5, $s6, 0xf +/* 1097F8 7F0D4CC8 26D6FFFF */ addiu $s6, $s6, -1 +/* 1097FC 7F0D4CCC 32CE00FF */ andi $t6, $s6, 0xff +/* 109800 7F0D4CD0 2DAA0001 */ sltiu $t2, $t5, 1 +/* 109804 7F0D4CD4 000A4900 */ sll $t1, $t2, 4 +/* 109808 7F0D4CD8 39D9007F */ xori $t9, $t6, 0x7f +/* 10980C 7F0D4CDC 2F390001 */ sltiu $t9, $t9, 1 +/* 109810 7F0D4CE0 32280001 */ andi $t0, $s1, 1 +/* 109814 7F0D4CE4 01098825 */ or $s1, $t0, $t1 +/* 109818 7F0D4CE8 00196880 */ sll $t5, $t9, 2 +/* 10981C 7F0D4CEC AFAA0048 */ sw $t2, 0x48($sp) +/* 109820 7F0D4CF0 2DCF0001 */ sltiu $t7, $t6, 1 +/* 109824 7F0D4CF4 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 109828 7F0D4CF8 018D5025 */ or $t2, $t4, $t5 +/* 10982C 7F0D4CFC 000F4980 */ sll $t1, $t7, 6 +/* 109830 7F0D4D00 0149C025 */ or $t8, $t2, $t1 +/* 109834 7F0D4D04 362B0002 */ ori $t3, $s1, 2 +/* 109838 7F0D4D08 01788825 */ or $s1, $t3, $t8 +/* 10983C 7F0D4D0C 322B00FF */ andi $t3, $s1, 0xff +/* 109840 7F0D4D10 01608825 */ move $s1, $t3 +/* 109844 7F0D4D14 AFAF0044 */ sw $t7, 0x44($sp) +/* 109848 7F0D4D18 100036B8 */ b .L7F0E27FC +/* 10984C 7F0D4D1C 01C0B025 */ move $s6, $t6 +.L7F0D4D20: +/* 109850 7F0D4D20 24010001 */ li $at, 1 +/* 109854 7F0D4D24 15C10004 */ bne $t6, $at, .L7F0D4D38 +/* 109858 7F0D4D28 97B90294 */ lhu $t9, 0x294($sp) +/* 10985C 7F0D4D2C 97AF0296 */ lhu $t7, 0x296($sp) +/* 109860 7F0D4D30 10000002 */ b .L7F0D4D3C +/* 109864 7F0D4D34 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D4D38: +/* 109868 7F0D4D38 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D4D3C: +/* 10986C 7F0D4D3C 8FAC0048 */ lw $t4, 0x48($sp) +/* 109870 7F0D4D40 32380001 */ andi $t8, $s1, 1 +/* 109874 7F0D4D44 24010001 */ li $at, 1 +/* 109878 7F0D4D48 000C4203 */ sra $t0, $t4, 8 +/* 10987C 7F0D4D4C 310A000F */ andi $t2, $t0, 0xf +/* 109880 7F0D4D50 2D490001 */ sltiu $t1, $t2, 1 +/* 109884 7F0D4D54 00095900 */ sll $t3, $t1, 4 +/* 109888 7F0D4D58 030B8825 */ or $s1, $t8, $t3 +/* 10988C 7F0D4D5C 311900FF */ andi $t9, $t0, 0xff +/* 109890 7F0D4D60 272CFFFF */ addiu $t4, $t9, -1 +/* 109894 7F0D4D64 319800FF */ andi $t8, $t4, 0xff +/* 109898 7F0D4D68 3B0B007F */ xori $t3, $t8, 0x7f +/* 10989C 7F0D4D6C 362E0002 */ ori $t6, $s1, 2 +/* 1098A0 7F0D4D70 A3A80258 */ sb $t0, 0x258($sp) +/* 1098A4 7F0D4D74 01C08825 */ move $s1, $t6 +/* 1098A8 7F0D4D78 2D6B0001 */ sltiu $t3, $t3, 1 +/* 1098AC 7F0D4D7C 318D00FF */ andi $t5, $t4, 0xff +/* 1098B0 7F0D4D80 AFA90048 */ sw $t1, 0x48($sp) +/* 1098B4 7F0D4D84 318900A8 */ andi $t1, $t4, 0xa8 +/* 1098B8 7F0D4D88 2DA80001 */ sltiu $t0, $t5, 1 +/* 1098BC 7F0D4D8C 000B7080 */ sll $t6, $t3, 2 +/* 1098C0 7F0D4D90 012E7825 */ or $t7, $t1, $t6 +/* 1098C4 7F0D4D94 0008C980 */ sll $t9, $t0, 6 +/* 1098C8 7F0D4D98 93B80287 */ lbu $t8, 0x287($sp) +/* 1098CC 7F0D4D9C 01F96825 */ or $t5, $t7, $t9 +/* 1098D0 7F0D4DA0 022D8825 */ or $s1, $s1, $t5 +/* 1098D4 7F0D4DA4 322A00FF */ andi $t2, $s1, 0xff +/* 1098D8 7F0D4DA8 01408825 */ move $s1, $t2 +/* 1098DC 7F0D4DAC AFA80044 */ sw $t0, 0x44($sp) +/* 1098E0 7F0D4DB0 17010007 */ bne $t8, $at, .L7F0D4DD0 +/* 1098E4 7F0D4DB4 A3AC0258 */ sb $t4, 0x258($sp) +/* 1098E8 7F0D4DB8 97AB0296 */ lhu $t3, 0x296($sp) +/* 1098EC 7F0D4DBC 000C4200 */ sll $t0, $t4, 8 +/* 1098F0 7F0D4DC0 316900FF */ andi $t1, $t3, 0xff +/* 1098F4 7F0D4DC4 01287825 */ or $t7, $t1, $t0 +/* 1098F8 7F0D4DC8 1000368C */ b .L7F0E27FC +/* 1098FC 7F0D4DCC A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D4DD0: +/* 109900 7F0D4DD0 97B90294 */ lhu $t9, 0x294($sp) +/* 109904 7F0D4DD4 93AA0258 */ lbu $t2, 0x258($sp) +/* 109908 7F0D4DD8 332D00FF */ andi $t5, $t9, 0xff +/* 10990C 7F0D4DDC 000AC200 */ sll $t8, $t2, 8 +/* 109910 7F0D4DE0 01B85825 */ or $t3, $t5, $t8 +/* 109914 7F0D4DE4 10003685 */ b .L7F0E27FC +/* 109918 7F0D4DE8 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_26: +/* 10991C 7F0D4DEC 8FAC028C */ lw $t4, 0x28c($sp) +/* 109920 7F0D4DF0 93A90287 */ lbu $t1, 0x287($sp) +/* 109924 7F0D4DF4 93AA0287 */ lbu $t2, 0x287($sp) +/* 109928 7F0D4DF8 258E0007 */ addiu $t6, $t4, 7 +/* 10992C 7F0D4DFC 15200007 */ bnez $t1, .L7F0D4E1C +/* 109930 7F0D4E00 AFAE028C */ sw $t6, 0x28c($sp) +/* 109934 7F0D4E04 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 109938 7F0D4E08 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10993C 7F0D4E0C 97A80298 */ lhu $t0, 0x298($sp) +/* 109940 7F0D4E10 010FC821 */ addu $t9, $t0, $t7 +/* 109944 7F0D4E14 10000018 */ b .L7F0D4E78 +/* 109948 7F0D4E18 93360000 */ lbu $s6, ($t9) +.L7F0D4E1C: +/* 10994C 7F0D4E1C 24010001 */ li $at, 1 +/* 109950 7F0D4E20 1541000C */ bne $t2, $at, .L7F0D4E54 +/* 109954 7F0D4E24 97B90298 */ lhu $t9, 0x298($sp) +/* 109958 7F0D4E28 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10995C 7F0D4E2C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 109960 7F0D4E30 97AD0298 */ lhu $t5, 0x298($sp) +/* 109964 7F0D4E34 97A90296 */ lhu $t1, 0x296($sp) +/* 109968 7F0D4E38 01B85821 */ addu $t3, $t5, $t8 +/* 10996C 7F0D4E3C 916C0000 */ lbu $t4, ($t3) +/* 109970 7F0D4E40 312800FF */ andi $t0, $t1, 0xff +/* 109974 7F0D4E44 000C7200 */ sll $t6, $t4, 8 +/* 109978 7F0D4E48 01C87825 */ or $t7, $t6, $t0 +/* 10997C 7F0D4E4C 1000000A */ b .L7F0D4E78 +/* 109980 7F0D4E50 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D4E54: +/* 109984 7F0D4E54 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109988 7F0D4E58 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10998C 7F0D4E5C 97AC0294 */ lhu $t4, 0x294($sp) +/* 109990 7F0D4E60 032A6821 */ addu $t5, $t9, $t2 +/* 109994 7F0D4E64 91B80000 */ lbu $t8, ($t5) +/* 109998 7F0D4E68 318900FF */ andi $t1, $t4, 0xff +/* 10999C 7F0D4E6C 00185A00 */ sll $t3, $t8, 8 +/* 1099A0 7F0D4E70 01697025 */ or $t6, $t3, $t1 +/* 1099A4 7F0D4E74 A7AE0294 */ sh $t6, 0x294($sp) +.L7F0D4E78: +/* 1099A8 7F0D4E78 97A80298 */ lhu $t0, 0x298($sp) +/* 1099AC 7F0D4E7C 250F0001 */ addiu $t7, $t0, 1 +/* 1099B0 7F0D4E80 1000365E */ b .L7F0E27FC +/* 1099B4 7F0D4E84 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_27: +/* 1099B8 7F0D4E88 8FB9028C */ lw $t9, 0x28c($sp) +/* 1099BC 7F0D4E8C 322D0001 */ andi $t5, $s1, 1 +/* 1099C0 7F0D4E90 32380010 */ andi $t8, $s1, 0x10 +/* 1099C4 7F0D4E94 272A0004 */ addiu $t2, $t9, 4 +/* 1099C8 7F0D4E98 AFAA028C */ sw $t2, 0x28c($sp) +/* 1099CC 7F0D4E9C A3AD0256 */ sb $t5, 0x256($sp) +/* 1099D0 7F0D4EA0 17000004 */ bnez $t8, .L7F0D4EB4 +/* 1099D4 7F0D4EA4 A3A00257 */ sb $zero, 0x257($sp) +/* 1099D8 7F0D4EA8 320C000F */ andi $t4, $s0, 0xf +/* 1099DC 7F0D4EAC 2981000A */ slti $at, $t4, 0xa +/* 1099E0 7F0D4EB0 14200002 */ bnez $at, .L7F0D4EBC +.L7F0D4EB4: +/* 1099E4 7F0D4EB4 240B0006 */ li $t3, 6 +/* 1099E8 7F0D4EB8 A3AB0257 */ sb $t3, 0x257($sp) +.L7F0D4EBC: +/* 1099EC 7F0D4EBC 32290001 */ andi $t1, $s1, 1 +/* 1099F0 7F0D4EC0 15200005 */ bnez $t1, .L7F0D4ED8 +/* 1099F4 7F0D4EC4 32390002 */ andi $t9, $s1, 2 +/* 1099F8 7F0D4EC8 00107103 */ sra $t6, $s0, 4 +/* 1099FC 7F0D4ECC 29C1000A */ slti $at, $t6, 0xa +/* 109A00 7F0D4ED0 14200004 */ bnez $at, .L7F0D4EE4 +/* 109A04 7F0D4ED4 00000000 */ nop +.L7F0D4ED8: +/* 109A08 7F0D4ED8 93A80257 */ lbu $t0, 0x257($sp) +/* 109A0C 7F0D4EDC 350F0060 */ ori $t7, $t0, 0x60 +/* 109A10 7F0D4EE0 A3AF0257 */ sb $t7, 0x257($sp) +.L7F0D4EE4: +/* 109A14 7F0D4EE4 1320001D */ beqz $t9, .L7F0D4F5C +/* 109A18 7F0D4EE8 2A010091 */ slti $at, $s0, 0x91 +/* 109A1C 7F0D4EEC 93AA0257 */ lbu $t2, 0x257($sp) +/* 109A20 7F0D4EF0 320F000F */ andi $t7, $s0, 0xf +/* 109A24 7F0D4EF4 020A6823 */ subu $t5, $s0, $t2 +/* 109A28 7F0D4EF8 31B801FF */ andi $t8, $t5, 0x1ff +/* 109A2C 7F0D4EFC 330B00A8 */ andi $t3, $t8, 0xa8 +/* 109A30 7F0D4F00 00187203 */ sra $t6, $t8, 8 +/* 109A34 7F0D4F04 3159000F */ andi $t9, $t2, 0xf +/* 109A38 7F0D4F08 01F9682A */ slt $t5, $t7, $t9 +/* 109A3C 7F0D4F0C 016E4025 */ or $t0, $t3, $t6 +/* 109A40 7F0D4F10 020A5826 */ xor $t3, $s0, $t2 +/* 109A44 7F0D4F14 000D6100 */ sll $t4, $t5, 4 +/* 109A48 7F0D4F18 0310C826 */ xor $t9, $t8, $s0 +/* 109A4C 7F0D4F1C A7B80254 */ sh $t8, 0x254($sp) +/* 109A50 7F0D4F20 93B00255 */ lbu $s0, 0x255($sp) +/* 109A54 7F0D4F24 316E0080 */ andi $t6, $t3, 0x80 +/* 109A58 7F0D4F28 01D96824 */ and $t5, $t6, $t9 +/* 109A5C 7F0D4F2C 010C4825 */ or $t1, $t0, $t4 +/* 109A60 7F0D4F30 000D4143 */ sra $t0, $t5, 5 +/* 109A64 7F0D4F34 01288825 */ or $s1, $t1, $t0 +/* 109A68 7F0D4F38 A3AA0253 */ sb $t2, 0x253($sp) +/* 109A6C 7F0D4F3C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 109A70 7F0D4F40 000B7980 */ sll $t7, $t3, 6 +/* 109A74 7F0D4F44 362A0002 */ ori $t2, $s1, 2 +/* 109A78 7F0D4F48 014F8825 */ or $s1, $t2, $t7 +/* 109A7C 7F0D4F4C 322E00FF */ andi $t6, $s1, 0xff +/* 109A80 7F0D4F50 01C08825 */ move $s1, $t6 +/* 109A84 7F0D4F54 10000024 */ b .L7F0D4FE8 +/* 109A88 7F0D4F58 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D4F5C: +/* 109A8C 7F0D4F5C 14200006 */ bnez $at, .L7F0D4F78 +/* 109A90 7F0D4F60 3219000F */ andi $t9, $s0, 0xf +/* 109A94 7F0D4F64 2B21000A */ slti $at, $t9, 0xa +/* 109A98 7F0D4F68 14200003 */ bnez $at, .L7F0D4F78 +/* 109A9C 7F0D4F6C 93AD0257 */ lbu $t5, 0x257($sp) +/* 109AA0 7F0D4F70 35A90060 */ ori $t1, $t5, 0x60 +/* 109AA4 7F0D4F74 A3A90257 */ sb $t1, 0x257($sp) +.L7F0D4F78: +/* 109AA8 7F0D4F78 93A80257 */ lbu $t0, 0x257($sp) +/* 109AAC 7F0D4F7C 320E000F */ andi $t6, $s0, 0xf +/* 109AB0 7F0D4F80 2401000F */ li $at, 15 +/* 109AB4 7F0D4F84 02085021 */ addu $t2, $s0, $t0 +/* 109AB8 7F0D4F88 314B00A8 */ andi $t3, $t2, 0xa8 +/* 109ABC 7F0D4F8C 000AC203 */ sra $t8, $t2, 8 +/* 109AC0 7F0D4F90 3119000F */ andi $t9, $t0, 0xf +/* 109AC4 7F0D4F94 01D96821 */ addu $t5, $t6, $t9 +/* 109AC8 7F0D4F98 01787825 */ or $t7, $t3, $t8 +/* 109ACC 7F0D4F9C 0200C027 */ not $t8, $s0 +/* 109AD0 7F0D4FA0 002D482A */ slt $t1, $at, $t5 +/* 109AD4 7F0D4FA4 01506826 */ xor $t5, $t2, $s0 +/* 109AD8 7F0D4FA8 A7AA0250 */ sh $t2, 0x250($sp) +/* 109ADC 7F0D4FAC 93B00251 */ lbu $s0, 0x251($sp) +/* 109AE0 7F0D4FB0 00096100 */ sll $t4, $t1, 4 +/* 109AE4 7F0D4FB4 03087026 */ xor $t6, $t8, $t0 +/* 109AE8 7F0D4FB8 31D90080 */ andi $t9, $t6, 0x80 +/* 109AEC 7F0D4FBC 032D4824 */ and $t1, $t9, $t5 +/* 109AF0 7F0D4FC0 01EC5825 */ or $t3, $t7, $t4 +/* 109AF4 7F0D4FC4 00097943 */ sra $t7, $t1, 5 +/* 109AF8 7F0D4FC8 2E180001 */ sltiu $t8, $s0, 1 +/* 109AFC 7F0D4FCC 00187180 */ sll $t6, $t8, 6 +/* 109B00 7F0D4FD0 016F6025 */ or $t4, $t3, $t7 +/* 109B04 7F0D4FD4 018E8825 */ or $s1, $t4, $t6 +/* 109B08 7F0D4FD8 322A00FF */ andi $t2, $s1, 0xff +/* 109B0C 7F0D4FDC 01408825 */ move $s1, $t2 +/* 109B10 7F0D4FE0 AFB80048 */ sw $t8, 0x48($sp) +/* 109B14 7F0D4FE4 A3A8024F */ sb $t0, 0x24f($sp) +.L7F0D4FE8: +/* 109B18 7F0D4FE8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 109B1C 7F0D4FEC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 109B20 7F0D4FF0 93AB0256 */ lbu $t3, 0x256($sp) +/* 109B24 7F0D4FF4 02196821 */ addu $t5, $s0, $t9 +/* 109B28 7F0D4FF8 91A90000 */ lbu $t1, ($t5) +/* 109B2C 7F0D4FFC 022B7825 */ or $t7, $s1, $t3 +/* 109B30 7F0D5000 31EC00FB */ andi $t4, $t7, 0xfb +/* 109B34 7F0D5004 012C8825 */ or $s1, $t1, $t4 +/* 109B38 7F0D5008 323800FF */ andi $t8, $s1, 0xff +/* 109B3C 7F0D500C 100035FB */ b .L7F0E27FC +/* 109B40 7F0D5010 03008825 */ move $s1, $t8 +spectrum_op_28: +/* 109B44 7F0D5014 8FA8028C */ lw $t0, 0x28c($sp) +/* 109B48 7F0D5018 322A0040 */ andi $t2, $s1, 0x40 +/* 109B4C 7F0D501C 97B90298 */ lhu $t9, 0x298($sp) +/* 109B50 7F0D5020 250E0007 */ addiu $t6, $t0, 7 +/* 109B54 7F0D5024 1140000C */ beqz $t2, .L7F0D5058 +/* 109B58 7F0D5028 AFAE028C */ sw $t6, 0x28c($sp) +/* 109B5C 7F0D502C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109B60 7F0D5030 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 109B64 7F0D5034 25C80005 */ addiu $t0, $t6, 5 +/* 109B68 7F0D5038 032D5821 */ addu $t3, $t9, $t5 +/* 109B6C 7F0D503C 816F0000 */ lb $t7, ($t3) +/* 109B70 7F0D5040 AFA8028C */ sw $t0, 0x28c($sp) +/* 109B74 7F0D5044 032F4821 */ addu $t1, $t9, $t7 +/* 109B78 7F0D5048 252C0001 */ addiu $t4, $t1, 1 +/* 109B7C 7F0D504C A7AC0298 */ sh $t4, 0x298($sp) +/* 109B80 7F0D5050 100035EA */ b .L7F0E27FC +/* 109B84 7F0D5054 AFAF0248 */ sw $t7, 0x248($sp) +.L7F0D5058: +/* 109B88 7F0D5058 97AE0298 */ lhu $t6, 0x298($sp) +/* 109B8C 7F0D505C 25CA0001 */ addiu $t2, $t6, 1 +/* 109B90 7F0D5060 100035E6 */ b .L7F0E27FC +/* 109B94 7F0D5064 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_29: +/* 109B98 7F0D5068 8FAD028C */ lw $t5, 0x28c($sp) +/* 109B9C 7F0D506C 93B90287 */ lbu $t9, 0x287($sp) +/* 109BA0 7F0D5070 25AB000B */ addiu $t3, $t5, 0xb +/* 109BA4 7F0D5074 17200045 */ bnez $t9, .L7F0D518C +/* 109BA8 7F0D5078 AFAB028C */ sw $t3, 0x28c($sp) +/* 109BAC 7F0D507C 1720001C */ bnez $t9, .L7F0D50F0 +/* 109BB0 7F0D5080 93A90287 */ lbu $t1, 0x287($sp) +/* 109BB4 7F0D5084 02F77821 */ addu $t7, $s7, $s7 +/* 109BB8 7F0D5088 31E9FFFF */ andi $t1, $t7, 0xffff +/* 109BBC 7F0D508C 00096202 */ srl $t4, $t1, 8 +/* 109BC0 7F0D5090 3188FFFF */ andi $t0, $t4, 0xffff +/* 109BC4 7F0D5094 32D8000F */ andi $t8, $s6, 0xf +/* 109BC8 7F0D5098 01187021 */ addu $t6, $t0, $t8 +/* 109BCC 7F0D509C 32CA000F */ andi $t2, $s6, 0xf +/* 109BD0 7F0D50A0 01CA6821 */ addu $t5, $t6, $t2 +/* 109BD4 7F0D50A4 A7AF0246 */ sh $t7, 0x246($sp) +/* 109BD8 7F0D50A8 2401000F */ li $at, 15 +/* 109BDC 7F0D50AC 002D582A */ slt $t3, $at, $t5 +/* 109BE0 7F0D50B0 93B70247 */ lbu $s7, 0x247($sp) +/* 109BE4 7F0D50B4 02D64021 */ addu $t0, $s6, $s6 +/* 109BE8 7F0D50B8 01886821 */ addu $t5, $t4, $t0 +/* 109BEC 7F0D50BC A7AC0246 */ sh $t4, 0x246($sp) +/* 109BF0 7F0D50C0 A7AD0246 */ sh $t5, 0x246($sp) +/* 109BF4 7F0D50C4 93B60247 */ lbu $s6, 0x247($sp) +/* 109BF8 7F0D50C8 000BC900 */ sll $t9, $t3, 4 +/* 109BFC 7F0D50CC 322F00C4 */ andi $t7, $s1, 0xc4 +/* 109C00 7F0D50D0 032F4825 */ or $t1, $t9, $t7 +/* 109C04 7F0D50D4 000D5A03 */ sra $t3, $t5, 8 +/* 109C08 7F0D50D8 32CA0028 */ andi $t2, $s6, 0x28 +/* 109C0C 7F0D50DC 014BC825 */ or $t9, $t2, $t3 +/* 109C10 7F0D50E0 01398825 */ or $s1, $t1, $t9 +/* 109C14 7F0D50E4 322F00FF */ andi $t7, $s1, 0xff +/* 109C18 7F0D50E8 100035C4 */ b .L7F0E27FC +/* 109C1C 7F0D50EC 01E08825 */ move $s1, $t7 +.L7F0D50F0: +/* 109C20 7F0D50F0 24010001 */ li $at, 1 +/* 109C24 7F0D50F4 15210004 */ bne $t1, $at, .L7F0D5108 +/* 109C28 7F0D50F8 00166A00 */ sll $t5, $s6, 8 +/* 109C2C 7F0D50FC 97AC0296 */ lhu $t4, 0x296($sp) +/* 109C30 7F0D5100 10000003 */ b .L7F0D5110 +/* 109C34 7F0D5104 AFAC0240 */ sw $t4, 0x240($sp) +.L7F0D5108: +/* 109C38 7F0D5108 97B80294 */ lhu $t8, 0x294($sp) +/* 109C3C 7F0D510C AFB80240 */ sw $t8, 0x240($sp) +.L7F0D5110: +/* 109C40 7F0D5110 8FA80240 */ lw $t0, 0x240($sp) +/* 109C44 7F0D5114 01B75025 */ or $t2, $t5, $s7 +/* 109C48 7F0D5118 24010FFF */ li $at, 4095 +/* 109C4C 7F0D511C 310E0FFF */ andi $t6, $t0, 0xfff +/* 109C50 7F0D5120 01CA5821 */ addu $t3, $t6, $t2 +/* 109C54 7F0D5124 002BC82B */ sltu $t9, $at, $t3 +/* 109C58 7F0D5128 93AA0287 */ lbu $t2, 0x287($sp) +/* 109C5C 7F0D512C 00197900 */ sll $t7, $t9, 4 +/* 109C60 7F0D5130 322900C4 */ andi $t1, $s1, 0xc4 +/* 109C64 7F0D5134 0016C200 */ sll $t8, $s6, 8 +/* 109C68 7F0D5138 03176825 */ or $t5, $t8, $s7 +/* 109C6C 7F0D513C 012F8825 */ or $s1, $t1, $t7 +/* 109C70 7F0D5140 322C00FF */ andi $t4, $s1, 0xff +/* 109C74 7F0D5144 24010001 */ li $at, 1 +/* 109C78 7F0D5148 010D7021 */ addu $t6, $t0, $t5 +/* 109C7C 7F0D514C AFAE0240 */ sw $t6, 0x240($sp) +/* 109C80 7F0D5150 15410003 */ bne $t2, $at, .L7F0D5160 +/* 109C84 7F0D5154 01808825 */ move $s1, $t4 +/* 109C88 7F0D5158 10000003 */ b .L7F0D5168 +/* 109C8C 7F0D515C A7AE0296 */ sh $t6, 0x296($sp) +.L7F0D5160: +/* 109C90 7F0D5160 8FAB0240 */ lw $t3, 0x240($sp) +/* 109C94 7F0D5164 A7AB0294 */ sh $t3, 0x294($sp) +.L7F0D5168: +/* 109C98 7F0D5168 8FB90240 */ lw $t9, 0x240($sp) +/* 109C9C 7F0D516C 00194A02 */ srl $t1, $t9, 8 +/* 109CA0 7F0D5170 312F0028 */ andi $t7, $t1, 0x28 +/* 109CA4 7F0D5174 00196402 */ srl $t4, $t9, 0x10 +/* 109CA8 7F0D5178 01ECC025 */ or $t8, $t7, $t4 +/* 109CAC 7F0D517C 02388825 */ or $s1, $s1, $t8 +/* 109CB0 7F0D5180 322800FF */ andi $t0, $s1, 0xff +/* 109CB4 7F0D5184 1000359D */ b .L7F0E27FC +/* 109CB8 7F0D5188 01008825 */ move $s1, $t0 +.L7F0D518C: +/* 109CBC 7F0D518C 93AD0287 */ lbu $t5, 0x287($sp) +/* 109CC0 7F0D5190 24010001 */ li $at, 1 +/* 109CC4 7F0D5194 93A90287 */ lbu $t1, 0x287($sp) +/* 109CC8 7F0D5198 15A10049 */ bne $t5, $at, .L7F0D52C0 +/* 109CCC 7F0D519C 00000000 */ nop +/* 109CD0 7F0D51A0 15A0001F */ bnez $t5, .L7F0D5220 +/* 109CD4 7F0D51A4 93A80287 */ lbu $t0, 0x287($sp) +/* 109CD8 7F0D51A8 97AA0296 */ lhu $t2, 0x296($sp) +/* 109CDC 7F0D51AC 32CF000F */ andi $t7, $s6, 0xf +/* 109CE0 7F0D51B0 2401000F */ li $at, 15 +/* 109CE4 7F0D51B4 314E00FF */ andi $t6, $t2, 0xff +/* 109CE8 7F0D51B8 02EE5821 */ addu $t3, $s7, $t6 +/* 109CEC 7F0D51BC 3169FFFF */ andi $t1, $t3, 0xffff +/* 109CF0 7F0D51C0 0009CA02 */ srl $t9, $t1, 8 +/* 109CF4 7F0D51C4 332CFFFF */ andi $t4, $t9, 0xffff +/* 109CF8 7F0D51C8 000A4203 */ sra $t0, $t2, 8 +/* 109CFC 7F0D51CC 310D000F */ andi $t5, $t0, 0xf +/* 109D00 7F0D51D0 018FC021 */ addu $t8, $t4, $t7 +/* 109D04 7F0D51D4 030D7021 */ addu $t6, $t8, $t5 +/* 109D08 7F0D51D8 A7AB023E */ sh $t3, 0x23e($sp) +/* 109D0C 7F0D51DC 002E582A */ slt $t3, $at, $t6 +/* 109D10 7F0D51E0 000B4900 */ sll $t1, $t3, 4 +/* 109D14 7F0D51E4 93B7023F */ lbu $s7, 0x23f($sp) +/* 109D18 7F0D51E8 02C85021 */ addu $t2, $s6, $t0 +/* 109D1C 7F0D51EC 032A5821 */ addu $t3, $t9, $t2 +/* 109D20 7F0D51F0 A7B9023E */ sh $t9, 0x23e($sp) +/* 109D24 7F0D51F4 A7AB023E */ sh $t3, 0x23e($sp) +/* 109D28 7F0D51F8 93B6023F */ lbu $s6, 0x23f($sp) +/* 109D2C 7F0D51FC 322C00C4 */ andi $t4, $s1, 0xc4 +/* 109D30 7F0D5200 012C7825 */ or $t7, $t1, $t4 +/* 109D34 7F0D5204 000B4A03 */ sra $t1, $t3, 8 +/* 109D38 7F0D5208 32CE0028 */ andi $t6, $s6, 0x28 +/* 109D3C 7F0D520C 01C96025 */ or $t4, $t6, $t1 +/* 109D40 7F0D5210 01EC8825 */ or $s1, $t7, $t4 +/* 109D44 7F0D5214 322F00FF */ andi $t7, $s1, 0xff +/* 109D48 7F0D5218 10003578 */ b .L7F0E27FC +/* 109D4C 7F0D521C 01E08825 */ move $s1, $t7 +.L7F0D5220: +/* 109D50 7F0D5220 24010001 */ li $at, 1 +/* 109D54 7F0D5224 15010004 */ bne $t0, $at, .L7F0D5238 +/* 109D58 7F0D5228 97B80294 */ lhu $t8, 0x294($sp) +/* 109D5C 7F0D522C 97B90296 */ lhu $t9, 0x296($sp) +/* 109D60 7F0D5230 10000002 */ b .L7F0D523C +/* 109D64 7F0D5234 AFB90238 */ sw $t9, 0x238($sp) +.L7F0D5238: +/* 109D68 7F0D5238 AFB80238 */ sw $t8, 0x238($sp) +.L7F0D523C: +/* 109D6C 7F0D523C 97AA0296 */ lhu $t2, 0x296($sp) +/* 109D70 7F0D5240 8FAC0238 */ lw $t4, 0x238($sp) +/* 109D74 7F0D5244 24010FFF */ li $at, 4095 +/* 109D78 7F0D5248 000A6A03 */ sra $t5, $t2, 8 +/* 109D7C 7F0D524C 000D5A00 */ sll $t3, $t5, 8 +/* 109D80 7F0D5250 314E00FF */ andi $t6, $t2, 0xff +/* 109D84 7F0D5254 016E4825 */ or $t1, $t3, $t6 +/* 109D88 7F0D5258 318F0FFF */ andi $t7, $t4, 0xfff +/* 109D8C 7F0D525C 01E94021 */ addu $t0, $t7, $t1 +/* 109D90 7F0D5260 0028C82B */ sltu $t9, $at, $t0 +/* 109D94 7F0D5264 93AE0287 */ lbu $t6, 0x287($sp) +/* 109D98 7F0D5268 0019C100 */ sll $t8, $t9, 4 +/* 109D9C 7F0D526C 322D00C4 */ andi $t5, $s1, 0xc4 +/* 109DA0 7F0D5270 01B88825 */ or $s1, $t5, $t8 +/* 109DA4 7F0D5274 322A00FF */ andi $t2, $s1, 0xff +/* 109DA8 7F0D5278 24010001 */ li $at, 1 +/* 109DAC 7F0D527C 01895821 */ addu $t3, $t4, $t1 +/* 109DB0 7F0D5280 AFAB0238 */ sw $t3, 0x238($sp) +/* 109DB4 7F0D5284 15C10003 */ bne $t6, $at, .L7F0D5294 +/* 109DB8 7F0D5288 01408825 */ move $s1, $t2 +/* 109DBC 7F0D528C 10000003 */ b .L7F0D529C +/* 109DC0 7F0D5290 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D5294: +/* 109DC4 7F0D5294 8FAF0238 */ lw $t7, 0x238($sp) +/* 109DC8 7F0D5298 A7AF0294 */ sh $t7, 0x294($sp) +.L7F0D529C: +/* 109DCC 7F0D529C 8FA80238 */ lw $t0, 0x238($sp) +/* 109DD0 7F0D52A0 0008CA02 */ srl $t9, $t0, 8 +/* 109DD4 7F0D52A4 332D0028 */ andi $t5, $t9, 0x28 +/* 109DD8 7F0D52A8 0008C402 */ srl $t8, $t0, 0x10 +/* 109DDC 7F0D52AC 01B85025 */ or $t2, $t5, $t8 +/* 109DE0 7F0D52B0 022A8825 */ or $s1, $s1, $t2 +/* 109DE4 7F0D52B4 322C00FF */ andi $t4, $s1, 0xff +/* 109DE8 7F0D52B8 10003550 */ b .L7F0E27FC +/* 109DEC 7F0D52BC 01808825 */ move $s1, $t4 +.L7F0D52C0: +/* 109DF0 7F0D52C0 1520001F */ bnez $t1, .L7F0D5340 +/* 109DF4 7F0D52C4 93AC0287 */ lbu $t4, 0x287($sp) +/* 109DF8 7F0D52C8 97AE0294 */ lhu $t6, 0x294($sp) +/* 109DFC 7F0D52CC 32CD000F */ andi $t5, $s6, 0xf +/* 109E00 7F0D52D0 2401000F */ li $at, 15 +/* 109E04 7F0D52D4 31CB00FF */ andi $t3, $t6, 0xff +/* 109E08 7F0D52D8 02EB7821 */ addu $t7, $s7, $t3 +/* 109E0C 7F0D52DC 31F9FFFF */ andi $t9, $t7, 0xffff +/* 109E10 7F0D52E0 00194202 */ srl $t0, $t9, 8 +/* 109E14 7F0D52E4 3118FFFF */ andi $t8, $t0, 0xffff +/* 109E18 7F0D52E8 000E6203 */ sra $t4, $t6, 8 +/* 109E1C 7F0D52EC 3189000F */ andi $t1, $t4, 0xf +/* 109E20 7F0D52F0 030D5021 */ addu $t2, $t8, $t5 +/* 109E24 7F0D52F4 01495821 */ addu $t3, $t2, $t1 +/* 109E28 7F0D52F8 A7AF0236 */ sh $t7, 0x236($sp) +/* 109E2C 7F0D52FC 002B782A */ slt $t7, $at, $t3 +/* 109E30 7F0D5300 000FC900 */ sll $t9, $t7, 4 +/* 109E34 7F0D5304 93B70237 */ lbu $s7, 0x237($sp) +/* 109E38 7F0D5308 02CC7021 */ addu $t6, $s6, $t4 +/* 109E3C 7F0D530C 010E7821 */ addu $t7, $t0, $t6 +/* 109E40 7F0D5310 A7A80236 */ sh $t0, 0x236($sp) +/* 109E44 7F0D5314 A7AF0236 */ sh $t7, 0x236($sp) +/* 109E48 7F0D5318 93B60237 */ lbu $s6, 0x237($sp) +/* 109E4C 7F0D531C 323800C4 */ andi $t8, $s1, 0xc4 +/* 109E50 7F0D5320 03386825 */ or $t5, $t9, $t8 +/* 109E54 7F0D5324 000FCA03 */ sra $t9, $t7, 8 +/* 109E58 7F0D5328 32CB0028 */ andi $t3, $s6, 0x28 +/* 109E5C 7F0D532C 0179C025 */ or $t8, $t3, $t9 +/* 109E60 7F0D5330 01B88825 */ or $s1, $t5, $t8 +/* 109E64 7F0D5334 322D00FF */ andi $t5, $s1, 0xff +/* 109E68 7F0D5338 10003530 */ b .L7F0E27FC +/* 109E6C 7F0D533C 01A08825 */ move $s1, $t5 +.L7F0D5340: +/* 109E70 7F0D5340 24010001 */ li $at, 1 +/* 109E74 7F0D5344 15810004 */ bne $t4, $at, .L7F0D5358 +/* 109E78 7F0D5348 97AA0294 */ lhu $t2, 0x294($sp) +/* 109E7C 7F0D534C 97A80296 */ lhu $t0, 0x296($sp) +/* 109E80 7F0D5350 10000002 */ b .L7F0D535C +/* 109E84 7F0D5354 AFA80230 */ sw $t0, 0x230($sp) +.L7F0D5358: +/* 109E88 7F0D5358 AFAA0230 */ sw $t2, 0x230($sp) +.L7F0D535C: +/* 109E8C 7F0D535C 97AE0294 */ lhu $t6, 0x294($sp) +/* 109E90 7F0D5360 8FB80230 */ lw $t8, 0x230($sp) +/* 109E94 7F0D5364 24010FFF */ li $at, 4095 +/* 109E98 7F0D5368 000E4A03 */ sra $t1, $t6, 8 +/* 109E9C 7F0D536C 00097A00 */ sll $t7, $t1, 8 +/* 109EA0 7F0D5370 31CB00FF */ andi $t3, $t6, 0xff +/* 109EA4 7F0D5374 01EBC825 */ or $t9, $t7, $t3 +/* 109EA8 7F0D5378 330D0FFF */ andi $t5, $t8, 0xfff +/* 109EAC 7F0D537C 01B96021 */ addu $t4, $t5, $t9 +/* 109EB0 7F0D5380 002C402B */ sltu $t0, $at, $t4 +/* 109EB4 7F0D5384 93AB0287 */ lbu $t3, 0x287($sp) +/* 109EB8 7F0D5388 00085100 */ sll $t2, $t0, 4 +/* 109EBC 7F0D538C 322900C4 */ andi $t1, $s1, 0xc4 +/* 109EC0 7F0D5390 012A8825 */ or $s1, $t1, $t2 +/* 109EC4 7F0D5394 322E00FF */ andi $t6, $s1, 0xff +/* 109EC8 7F0D5398 24010001 */ li $at, 1 +/* 109ECC 7F0D539C 03197821 */ addu $t7, $t8, $t9 +/* 109ED0 7F0D53A0 AFAF0230 */ sw $t7, 0x230($sp) +/* 109ED4 7F0D53A4 15610003 */ bne $t3, $at, .L7F0D53B4 +/* 109ED8 7F0D53A8 01C08825 */ move $s1, $t6 +/* 109EDC 7F0D53AC 10000003 */ b .L7F0D53BC +/* 109EE0 7F0D53B0 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D53B4: +/* 109EE4 7F0D53B4 8FAD0230 */ lw $t5, 0x230($sp) +/* 109EE8 7F0D53B8 A7AD0294 */ sh $t5, 0x294($sp) +.L7F0D53BC: +/* 109EEC 7F0D53BC 8FAC0230 */ lw $t4, 0x230($sp) +/* 109EF0 7F0D53C0 000C4202 */ srl $t0, $t4, 8 +/* 109EF4 7F0D53C4 31090028 */ andi $t1, $t0, 0x28 +/* 109EF8 7F0D53C8 000C5402 */ srl $t2, $t4, 0x10 +/* 109EFC 7F0D53CC 012A7025 */ or $t6, $t1, $t2 +/* 109F00 7F0D53D0 022E8825 */ or $s1, $s1, $t6 +/* 109F04 7F0D53D4 323800FF */ andi $t8, $s1, 0xff +/* 109F08 7F0D53D8 10003508 */ b .L7F0E27FC +/* 109F0C 7F0D53DC 03008825 */ move $s1, $t8 +spectrum_op_2A: +/* 109F10 7F0D53E0 8FB9028C */ lw $t9, 0x28c($sp) +/* 109F14 7F0D53E4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109F18 7F0D53E8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 109F1C 7F0D53EC 97AF0298 */ lhu $t7, 0x298($sp) +/* 109F20 7F0D53F0 272B0010 */ addiu $t3, $t9, 0x10 +/* 109F24 7F0D53F4 AFAB028C */ sw $t3, 0x28c($sp) +/* 109F28 7F0D53F8 01AF4821 */ addu $t1, $t5, $t7 +/* 109F2C 7F0D53FC 912A0001 */ lbu $t2, 1($t1) +/* 109F30 7F0D5400 01ED4021 */ addu $t0, $t7, $t5 +/* 109F34 7F0D5404 910C0000 */ lbu $t4, ($t0) +/* 109F38 7F0D5408 93AB0287 */ lbu $t3, 0x287($sp) +/* 109F3C 7F0D540C 000A7200 */ sll $t6, $t2, 8 +/* 109F40 7F0D5410 25F90002 */ addiu $t9, $t7, 2 +/* 109F44 7F0D5414 018EC025 */ or $t8, $t4, $t6 +/* 109F48 7F0D5418 A7B8022E */ sh $t8, 0x22e($sp) +/* 109F4C 7F0D541C 15600006 */ bnez $t3, .L7F0D5438 +/* 109F50 7F0D5420 A7B90298 */ sh $t9, 0x298($sp) +/* 109F54 7F0D5424 3308FFFF */ andi $t0, $t8, 0xffff +/* 109F58 7F0D5428 010D4821 */ addu $t1, $t0, $t5 +/* 109F5C 7F0D542C 91370000 */ lbu $s7, ($t1) +/* 109F60 7F0D5430 100034F2 */ b .L7F0E27FC +/* 109F64 7F0D5434 91360001 */ lbu $s6, 1($t1) +.L7F0D5438: +/* 109F68 7F0D5438 93AA0287 */ lbu $t2, 0x287($sp) +/* 109F6C 7F0D543C 24010001 */ li $at, 1 +/* 109F70 7F0D5440 97AC022E */ lhu $t4, 0x22e($sp) +/* 109F74 7F0D5444 1541000B */ bne $t2, $at, .L7F0D5474 +/* 109F78 7F0D5448 97A9022E */ lhu $t1, 0x22e($sp) +/* 109F7C 7F0D544C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 109F80 7F0D5450 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 109F84 7F0D5454 01CCC821 */ addu $t9, $t6, $t4 +/* 109F88 7F0D5458 932B0001 */ lbu $t3, 1($t9) +/* 109F8C 7F0D545C 018EC021 */ addu $t8, $t4, $t6 +/* 109F90 7F0D5460 930F0000 */ lbu $t7, ($t8) +/* 109F94 7F0D5464 000B4200 */ sll $t0, $t3, 8 +/* 109F98 7F0D5468 01E86825 */ or $t5, $t7, $t0 +/* 109F9C 7F0D546C 100034E3 */ b .L7F0E27FC +/* 109FA0 7F0D5470 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D5474: +/* 109FA4 7F0D5474 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109FA8 7F0D5478 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109FAC 7F0D547C 01496021 */ addu $t4, $t2, $t1 +/* 109FB0 7F0D5480 91990001 */ lbu $t9, 1($t4) +/* 109FB4 7F0D5484 012AC021 */ addu $t8, $t1, $t2 +/* 109FB8 7F0D5488 930E0000 */ lbu $t6, ($t8) +/* 109FBC 7F0D548C 00195A00 */ sll $t3, $t9, 8 +/* 109FC0 7F0D5490 01CB7825 */ or $t7, $t6, $t3 +/* 109FC4 7F0D5494 100034D9 */ b .L7F0E27FC +/* 109FC8 7F0D5498 A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_2B: +/* 109FCC 7F0D549C 8FA8028C */ lw $t0, 0x28c($sp) +/* 109FD0 7F0D54A0 93B80287 */ lbu $t8, 0x287($sp) +/* 109FD4 7F0D54A4 93AE0287 */ lbu $t6, 0x287($sp) +/* 109FD8 7F0D54A8 250D0006 */ addiu $t5, $t0, 6 +/* 109FDC 7F0D54AC 1700000B */ bnez $t8, .L7F0D54DC +/* 109FE0 7F0D54B0 AFAD028C */ sw $t5, 0x28c($sp) +/* 109FE4 7F0D54B4 2EEA0001 */ sltiu $t2, $s7, 1 +/* 109FE8 7F0D54B8 26F7FFFF */ addiu $s7, $s7, -1 +/* 109FEC 7F0D54BC 32E900FF */ andi $t1, $s7, 0xff +/* 109FF0 7F0D54C0 0120B825 */ move $s7, $t1 +/* 109FF4 7F0D54C4 114034CD */ beqz $t2, .L7F0E27FC +/* 109FF8 7F0D54C8 AFAA0048 */ sw $t2, 0x48($sp) +/* 109FFC 7F0D54CC 26D6FFFF */ addiu $s6, $s6, -1 +/* 10A000 7F0D54D0 32D900FF */ andi $t9, $s6, 0xff +/* 10A004 7F0D54D4 100034C9 */ b .L7F0E27FC +/* 10A008 7F0D54D8 0320B025 */ move $s6, $t9 +.L7F0D54DC: +/* 10A00C 7F0D54DC 24010001 */ li $at, 1 +/* 10A010 7F0D54E0 15C10005 */ bne $t6, $at, .L7F0D54F8 +/* 10A014 7F0D54E4 97A80294 */ lhu $t0, 0x294($sp) +/* 10A018 7F0D54E8 97AB0296 */ lhu $t3, 0x296($sp) +/* 10A01C 7F0D54EC 256FFFFF */ addiu $t7, $t3, -1 +/* 10A020 7F0D54F0 100034C2 */ b .L7F0E27FC +/* 10A024 7F0D54F4 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D54F8: +/* 10A028 7F0D54F8 250DFFFF */ addiu $t5, $t0, -1 +/* 10A02C 7F0D54FC 100034BF */ b .L7F0E27FC +/* 10A030 7F0D5500 A7AD0294 */ sh $t5, 0x294($sp) +spectrum_op_2C: +/* 10A034 7F0D5504 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A038 7F0D5508 93A90287 */ lbu $t1, 0x287($sp) +/* 10A03C 7F0D550C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10A040 7F0D5510 270A0004 */ addiu $t2, $t8, 4 +/* 10A044 7F0D5514 15200017 */ bnez $t1, .L7F0D5574 +/* 10A048 7F0D5518 AFAA028C */ sw $t2, 0x28c($sp) +/* 10A04C 7F0D551C 26F70001 */ addiu $s7, $s7, 1 +/* 10A050 7F0D5520 32EC00FF */ andi $t4, $s7, 0xff +/* 10A054 7F0D5524 318E000F */ andi $t6, $t4, 0xf +/* 10A058 7F0D5528 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10A05C 7F0D552C 0180B825 */ move $s7, $t4 +/* 10A060 7F0D5530 2D990001 */ sltiu $t9, $t4, 1 +/* 10A064 7F0D5534 318800A8 */ andi $t0, $t4, 0xa8 +/* 10A068 7F0D5538 322F0001 */ andi $t7, $s1, 1 +/* 10A06C 7F0D553C 01E86825 */ or $t5, $t7, $t0 +/* 10A070 7F0D5540 3AEE0080 */ xori $t6, $s7, 0x80 +/* 10A074 7F0D5544 000BC100 */ sll $t8, $t3, 4 +/* 10A078 7F0D5548 01B85025 */ or $t2, $t5, $t8 +/* 10A07C 7F0D554C 2DCE0001 */ sltiu $t6, $t6, 1 +/* 10A080 7F0D5550 00196180 */ sll $t4, $t9, 6 +/* 10A084 7F0D5554 AFB90044 */ sw $t9, 0x44($sp) +/* 10A088 7F0D5558 014CC825 */ or $t9, $t2, $t4 +/* 10A08C 7F0D555C 000E7880 */ sll $t7, $t6, 2 +/* 10A090 7F0D5560 032F8825 */ or $s1, $t9, $t7 +/* 10A094 7F0D5564 322800FF */ andi $t0, $s1, 0xff +/* 10A098 7F0D5568 01008825 */ move $s1, $t0 +/* 10A09C 7F0D556C 100034A3 */ b .L7F0E27FC +/* 10A0A0 7F0D5570 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D5574: +/* 10A0A4 7F0D5574 24010001 */ li $at, 1 +/* 10A0A8 7F0D5578 15610004 */ bne $t3, $at, .L7F0D558C +/* 10A0AC 7F0D557C 97B80294 */ lhu $t8, 0x294($sp) +/* 10A0B0 7F0D5580 97AD0296 */ lhu $t5, 0x296($sp) +/* 10A0B4 7F0D5584 10000002 */ b .L7F0D5590 +/* 10A0B8 7F0D5588 A3AD022D */ sb $t5, 0x22d($sp) +.L7F0D558C: +/* 10A0BC 7F0D558C A3B8022D */ sb $t8, 0x22d($sp) +.L7F0D5590: +/* 10A0C0 7F0D5590 93A9022D */ lbu $t1, 0x22d($sp) +/* 10A0C4 7F0D5594 322B0001 */ andi $t3, $s1, 1 +/* 10A0C8 7F0D5598 24010001 */ li $at, 1 +/* 10A0CC 7F0D559C 252A0001 */ addiu $t2, $t1, 1 +/* 10A0D0 7F0D55A0 315800A8 */ andi $t8, $t2, 0xa8 +/* 10A0D4 7F0D55A4 01784825 */ or $t1, $t3, $t8 +/* 10A0D8 7F0D55A8 314C00FF */ andi $t4, $t2, 0xff +/* 10A0DC 7F0D55AC 314F000F */ andi $t7, $t2, 0xf +/* 10A0E0 7F0D55B0 2DE80001 */ sltiu $t0, $t7, 1 +/* 10A0E4 7F0D55B4 2D8E0001 */ sltiu $t6, $t4, 1 +/* 10A0E8 7F0D55B8 00086100 */ sll $t4, $t0, 4 +/* 10A0EC 7F0D55BC 314B00FF */ andi $t3, $t2, 0xff +/* 10A0F0 7F0D55C0 39780080 */ xori $t8, $t3, 0x80 +/* 10A0F4 7F0D55C4 012CC825 */ or $t9, $t1, $t4 +/* 10A0F8 7F0D55C8 2F180001 */ sltiu $t8, $t8, 1 +/* 10A0FC 7F0D55CC 000E7980 */ sll $t7, $t6, 6 +/* 10A100 7F0D55D0 AFA80048 */ sw $t0, 0x48($sp) +/* 10A104 7F0D55D4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A108 7F0D55D8 00184080 */ sll $t0, $t8, 2 +/* 10A10C 7F0D55DC 032F6825 */ or $t5, $t9, $t7 +/* 10A110 7F0D55E0 01A88825 */ or $s1, $t5, $t0 +/* 10A114 7F0D55E4 322900FF */ andi $t1, $s1, 0xff +/* 10A118 7F0D55E8 01208825 */ move $s1, $t1 +/* 10A11C 7F0D55EC AFAE0044 */ sw $t6, 0x44($sp) +/* 10A120 7F0D55F0 15810007 */ bne $t4, $at, .L7F0D5610 +/* 10A124 7F0D55F4 A3AA022D */ sb $t2, 0x22d($sp) +/* 10A128 7F0D55F8 97AE0296 */ lhu $t6, 0x296($sp) +/* 10A12C 7F0D55FC 314F00FF */ andi $t7, $t2, 0xff +/* 10A130 7F0D5600 31D9FF00 */ andi $t9, $t6, 0xff00 +/* 10A134 7F0D5604 032F5825 */ or $t3, $t9, $t7 +/* 10A138 7F0D5608 1000347C */ b .L7F0E27FC +/* 10A13C 7F0D560C A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D5610: +/* 10A140 7F0D5610 97B80294 */ lhu $t8, 0x294($sp) +/* 10A144 7F0D5614 93A8022D */ lbu $t0, 0x22d($sp) +/* 10A148 7F0D5618 330DFF00 */ andi $t5, $t8, 0xff00 +/* 10A14C 7F0D561C 01A84825 */ or $t1, $t5, $t0 +/* 10A150 7F0D5620 10003476 */ b .L7F0E27FC +/* 10A154 7F0D5624 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_2D: +/* 10A158 7F0D5628 8FAC028C */ lw $t4, 0x28c($sp) +/* 10A15C 7F0D562C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10A160 7F0D5630 93A90287 */ lbu $t1, 0x287($sp) +/* 10A164 7F0D5634 258E0004 */ addiu $t6, $t4, 4 +/* 10A168 7F0D5638 15400018 */ bnez $t2, .L7F0D569C +/* 10A16C 7F0D563C AFAE028C */ sw $t6, 0x28c($sp) +/* 10A170 7F0D5640 32F9000F */ andi $t9, $s7, 0xf +/* 10A174 7F0D5644 26F7FFFF */ addiu $s7, $s7, -1 +/* 10A178 7F0D5648 32E900FF */ andi $t1, $s7, 0xff +/* 10A17C 7F0D564C 2F2F0001 */ sltiu $t7, $t9, 1 +/* 10A180 7F0D5650 000FC100 */ sll $t8, $t7, 4 +/* 10A184 7F0D5654 392A007F */ xori $t2, $t1, 0x7f +/* 10A188 7F0D5658 2D4A0001 */ sltiu $t2, $t2, 1 +/* 10A18C 7F0D565C 322B0001 */ andi $t3, $s1, 1 +/* 10A190 7F0D5660 01788825 */ or $s1, $t3, $t8 +/* 10A194 7F0D5664 000AC880 */ sll $t9, $t2, 2 +/* 10A198 7F0D5668 AFAF0048 */ sw $t7, 0x48($sp) +/* 10A19C 7F0D566C 2D2C0001 */ sltiu $t4, $t1, 1 +/* 10A1A0 7F0D5670 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10A1A4 7F0D5674 01D97825 */ or $t7, $t6, $t9 +/* 10A1A8 7F0D5678 000CC180 */ sll $t8, $t4, 6 +/* 10A1AC 7F0D567C 01F86825 */ or $t5, $t7, $t8 +/* 10A1B0 7F0D5680 36280002 */ ori $t0, $s1, 2 +/* 10A1B4 7F0D5684 010D8825 */ or $s1, $t0, $t5 +/* 10A1B8 7F0D5688 322800FF */ andi $t0, $s1, 0xff +/* 10A1BC 7F0D568C 01008825 */ move $s1, $t0 +/* 10A1C0 7F0D5690 AFAC0044 */ sw $t4, 0x44($sp) +/* 10A1C4 7F0D5694 10003459 */ b .L7F0E27FC +/* 10A1C8 7F0D5698 0120B825 */ move $s7, $t1 +.L7F0D569C: +/* 10A1CC 7F0D569C 24010001 */ li $at, 1 +/* 10A1D0 7F0D56A0 15210004 */ bne $t1, $at, .L7F0D56B4 +/* 10A1D4 7F0D56A4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10A1D8 7F0D56A8 97AC0296 */ lhu $t4, 0x296($sp) +/* 10A1DC 7F0D56AC 10000002 */ b .L7F0D56B8 +/* 10A1E0 7F0D56B0 A3AC022C */ sb $t4, 0x22c($sp) +.L7F0D56B4: +/* 10A1E4 7F0D56B4 A3AA022C */ sb $t2, 0x22c($sp) +.L7F0D56B8: +/* 10A1E8 7F0D56B8 93AE022C */ lbu $t6, 0x22c($sp) +/* 10A1EC 7F0D56BC 322F0001 */ andi $t7, $s1, 1 +/* 10A1F0 7F0D56C0 24010001 */ li $at, 1 +/* 10A1F4 7F0D56C4 31D9000F */ andi $t9, $t6, 0xf +/* 10A1F8 7F0D56C8 2F2B0001 */ sltiu $t3, $t9, 1 +/* 10A1FC 7F0D56CC 000BC100 */ sll $t8, $t3, 4 +/* 10A200 7F0D56D0 01F88825 */ or $s1, $t7, $t8 +/* 10A204 7F0D56D4 25C9FFFF */ addiu $t1, $t6, -1 +/* 10A208 7F0D56D8 312F00FF */ andi $t7, $t1, 0xff +/* 10A20C 7F0D56DC 39F8007F */ xori $t8, $t7, 0x7f +/* 10A210 7F0D56E0 362D0002 */ ori $t5, $s1, 2 +/* 10A214 7F0D56E4 01A08825 */ move $s1, $t5 +/* 10A218 7F0D56E8 2F180001 */ sltiu $t8, $t8, 1 +/* 10A21C 7F0D56EC 312C00FF */ andi $t4, $t1, 0xff +/* 10A220 7F0D56F0 AFAB0048 */ sw $t3, 0x48($sp) +/* 10A224 7F0D56F4 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10A228 7F0D56F8 2D8A0001 */ sltiu $t2, $t4, 1 +/* 10A22C 7F0D56FC 00186880 */ sll $t5, $t8, 2 +/* 10A230 7F0D5700 016D4025 */ or $t0, $t3, $t5 +/* 10A234 7F0D5704 000A7180 */ sll $t6, $t2, 6 +/* 10A238 7F0D5708 93AF0287 */ lbu $t7, 0x287($sp) +/* 10A23C 7F0D570C 010E6025 */ or $t4, $t0, $t6 +/* 10A240 7F0D5710 022C8825 */ or $s1, $s1, $t4 +/* 10A244 7F0D5714 323900FF */ andi $t9, $s1, 0xff +/* 10A248 7F0D5718 03208825 */ move $s1, $t9 +/* 10A24C 7F0D571C AFAA0044 */ sw $t2, 0x44($sp) +/* 10A250 7F0D5720 15E10007 */ bne $t7, $at, .L7F0D5740 +/* 10A254 7F0D5724 A3A9022C */ sb $t1, 0x22c($sp) +/* 10A258 7F0D5728 97B80296 */ lhu $t8, 0x296($sp) +/* 10A25C 7F0D572C 312D00FF */ andi $t5, $t1, 0xff +/* 10A260 7F0D5730 330BFF00 */ andi $t3, $t8, 0xff00 +/* 10A264 7F0D5734 016D5025 */ or $t2, $t3, $t5 +/* 10A268 7F0D5738 10003430 */ b .L7F0E27FC +/* 10A26C 7F0D573C A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D5740: +/* 10A270 7F0D5740 97A80294 */ lhu $t0, 0x294($sp) +/* 10A274 7F0D5744 93AC022C */ lbu $t4, 0x22c($sp) +/* 10A278 7F0D5748 310EFF00 */ andi $t6, $t0, 0xff00 +/* 10A27C 7F0D574C 01CCC825 */ or $t9, $t6, $t4 +/* 10A280 7F0D5750 1000342A */ b .L7F0E27FC +/* 10A284 7F0D5754 A7B90294 */ sh $t9, 0x294($sp) +spectrum_op_2E: +/* 10A288 7F0D5758 8FAF028C */ lw $t7, 0x28c($sp) +/* 10A28C 7F0D575C 93A90287 */ lbu $t1, 0x287($sp) +/* 10A290 7F0D5760 93A80287 */ lbu $t0, 0x287($sp) +/* 10A294 7F0D5764 25F80007 */ addiu $t8, $t7, 7 +/* 10A298 7F0D5768 15200007 */ bnez $t1, .L7F0D5788 +/* 10A29C 7F0D576C AFB8028C */ sw $t8, 0x28c($sp) +/* 10A2A0 7F0D5770 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10A2A4 7F0D5774 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10A2A8 7F0D5778 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A2AC 7F0D577C 016D5021 */ addu $t2, $t3, $t5 +/* 10A2B0 7F0D5780 10000016 */ b .L7F0D57DC +/* 10A2B4 7F0D5784 91570000 */ lbu $s7, ($t2) +.L7F0D5788: +/* 10A2B8 7F0D5788 24010001 */ li $at, 1 +/* 10A2BC 7F0D578C 1501000B */ bne $t0, $at, .L7F0D57BC +/* 10A2C0 7F0D5790 97AD0298 */ lhu $t5, 0x298($sp) +/* 10A2C4 7F0D5794 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A2C8 7F0D5798 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A2CC 7F0D579C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10A2D0 7F0D57A0 97B80296 */ lhu $t8, 0x296($sp) +/* 10A2D4 7F0D57A4 01CCC821 */ addu $t9, $t6, $t4 +/* 10A2D8 7F0D57A8 932F0000 */ lbu $t7, ($t9) +/* 10A2DC 7F0D57AC 3309FF00 */ andi $t1, $t8, 0xff00 +/* 10A2E0 7F0D57B0 01E95825 */ or $t3, $t7, $t1 +/* 10A2E4 7F0D57B4 10000009 */ b .L7F0D57DC +/* 10A2E8 7F0D57B8 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D57BC: +/* 10A2EC 7F0D57BC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A2F0 7F0D57C0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A2F4 7F0D57C4 97AC0294 */ lhu $t4, 0x294($sp) +/* 10A2F8 7F0D57C8 01AA4021 */ addu $t0, $t5, $t2 +/* 10A2FC 7F0D57CC 910E0000 */ lbu $t6, ($t0) +/* 10A300 7F0D57D0 3199FF00 */ andi $t9, $t4, 0xff00 +/* 10A304 7F0D57D4 01D9C025 */ or $t8, $t6, $t9 +/* 10A308 7F0D57D8 A7B80294 */ sh $t8, 0x294($sp) +.L7F0D57DC: +/* 10A30C 7F0D57DC 97AF0298 */ lhu $t7, 0x298($sp) +/* 10A310 7F0D57E0 25E90001 */ addiu $t1, $t7, 1 +/* 10A314 7F0D57E4 10003405 */ b .L7F0E27FC +/* 10A318 7F0D57E8 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_2F: +/* 10A31C 7F0D57EC 02008027 */ not $s0, $s0 +/* 10A320 7F0D57F0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A324 7F0D57F4 320A00FF */ andi $t2, $s0, 0xff +/* 10A328 7F0D57F8 314C0028 */ andi $t4, $t2, 0x28 +/* 10A32C 7F0D57FC 322800C5 */ andi $t0, $s1, 0xc5 +/* 10A330 7F0D5800 010C8825 */ or $s1, $t0, $t4 +/* 10A334 7F0D5804 362E0012 */ ori $t6, $s1, 0x12 +/* 10A338 7F0D5808 256D0004 */ addiu $t5, $t3, 4 +/* 10A33C 7F0D580C AFAD028C */ sw $t5, 0x28c($sp) +/* 10A340 7F0D5810 01408025 */ move $s0, $t2 +/* 10A344 7F0D5814 100033F9 */ b .L7F0E27FC +/* 10A348 7F0D5818 31D100FF */ andi $s1, $t6, 0xff +spectrum_op_30: +/* 10A34C 7F0D581C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A350 7F0D5820 32290001 */ andi $t1, $s1, 1 +/* 10A354 7F0D5824 97AA0298 */ lhu $t2, 0x298($sp) +/* 10A358 7F0D5828 270F0007 */ addiu $t7, $t8, 7 +/* 10A35C 7F0D582C 11200005 */ beqz $t1, .L7F0D5844 +/* 10A360 7F0D5830 AFAF028C */ sw $t7, 0x28c($sp) +/* 10A364 7F0D5834 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A368 7F0D5838 256D0001 */ addiu $t5, $t3, 1 +/* 10A36C 7F0D583C 100033EF */ b .L7F0E27FC +/* 10A370 7F0D5840 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D5844: +/* 10A374 7F0D5844 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10A378 7F0D5848 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10A37C 7F0D584C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10A380 7F0D5850 01486021 */ addu $t4, $t2, $t0 +/* 10A384 7F0D5854 818E0000 */ lb $t6, ($t4) +/* 10A388 7F0D5858 25E90005 */ addiu $t1, $t7, 5 +/* 10A38C 7F0D585C AFA9028C */ sw $t1, 0x28c($sp) +/* 10A390 7F0D5860 014EC821 */ addu $t9, $t2, $t6 +/* 10A394 7F0D5864 27380001 */ addiu $t8, $t9, 1 +/* 10A398 7F0D5868 A7B80298 */ sh $t8, 0x298($sp) +/* 10A39C 7F0D586C 100033E3 */ b .L7F0E27FC +/* 10A3A0 7F0D5870 AFAE0228 */ sw $t6, 0x228($sp) +spectrum_op_31: +/* 10A3A4 7F0D5874 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A3A8 7F0D5878 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A3AC 7F0D587C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A3B0 7F0D5880 97A80298 */ lhu $t0, 0x298($sp) +/* 10A3B4 7F0D5884 256D000A */ addiu $t5, $t3, 0xa +/* 10A3B8 7F0D5888 AFAD028C */ sw $t5, 0x28c($sp) +/* 10A3BC 7F0D588C 0188C821 */ addu $t9, $t4, $t0 +/* 10A3C0 7F0D5890 93380001 */ lbu $t8, 1($t9) +/* 10A3C4 7F0D5894 010C5021 */ addu $t2, $t0, $t4 +/* 10A3C8 7F0D5898 914E0000 */ lbu $t6, ($t2) +/* 10A3CC 7F0D589C 00187A00 */ sll $t7, $t8, 8 +/* 10A3D0 7F0D58A0 250B0002 */ addiu $t3, $t0, 2 +/* 10A3D4 7F0D58A4 01CF4825 */ or $t1, $t6, $t7 +/* 10A3D8 7F0D58A8 A7A90292 */ sh $t1, 0x292($sp) +/* 10A3DC 7F0D58AC 100033D3 */ b .L7F0E27FC +/* 10A3E0 7F0D58B0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_32: +/* 10A3E4 7F0D58B4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10A3E8 7F0D58B8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10A3EC 7F0D58BC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10A3F0 7F0D58C0 97AC0298 */ lhu $t4, 0x298($sp) +/* 10A3F4 7F0D58C4 25AA000D */ addiu $t2, $t5, 0xd +/* 10A3F8 7F0D58C8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10A3FC 7F0D58CC 032C7821 */ addu $t7, $t9, $t4 +/* 10A400 7F0D58D0 91E90001 */ lbu $t1, 1($t7) +/* 10A404 7F0D58D4 0199C021 */ addu $t8, $t4, $t9 +/* 10A408 7F0D58D8 930E0000 */ lbu $t6, ($t8) +/* 10A40C 7F0D58DC 00094200 */ sll $t0, $t1, 8 +/* 10A410 7F0D58E0 258D0002 */ addiu $t5, $t4, 2 +/* 10A414 7F0D58E4 01C85825 */ or $t3, $t6, $t0 +/* 10A418 7F0D58E8 316AFFFF */ andi $t2, $t3, 0xffff +/* 10A41C 7F0D58EC 29415B00 */ slti $at, $t2, 0x5b00 +/* 10A420 7F0D58F0 A7AB0226 */ sh $t3, 0x226($sp) +/* 10A424 7F0D58F4 14200006 */ bnez $at, .L7F0D5910 +/* 10A428 7F0D58F8 A7AD0298 */ sh $t5, 0x298($sp) +/* 10A42C 7F0D58FC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A430 7F0D5900 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A434 7F0D5904 030AC821 */ addu $t9, $t8, $t2 +/* 10A438 7F0D5908 100033BC */ b .L7F0E27FC +/* 10A43C 7F0D590C A3300000 */ sb $s0, ($t9) +.L7F0D5910: +/* 10A440 7F0D5910 97AF0226 */ lhu $t7, 0x226($sp) +/* 10A444 7F0D5914 97B80226 */ lhu $t8, 0x226($sp) +/* 10A448 7F0D5918 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10A44C 7F0D591C 29E15800 */ slti $at, $t7, 0x5800 +/* 10A450 7F0D5920 5420000C */ bnezl $at, .L7F0D5954 +/* 10A454 7F0D5924 2B014000 */ slti $at, $t8, 0x4000 +/* 10A458 7F0D5928 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10A45C 7F0D592C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10A460 7F0D5930 24080001 */ li $t0, 1 +/* 10A464 7F0D5934 012F7021 */ addu $t6, $t1, $t7 +/* 10A468 7F0D5938 A1D00000 */ sb $s0, ($t6) +/* 10A46C 7F0D593C 97AC0226 */ lhu $t4, 0x226($sp) +/* 10A470 7F0D5940 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10A474 7F0D5944 016C6821 */ addu $t5, $t3, $t4 +/* 10A478 7F0D5948 100033AC */ b .L7F0E27FC +/* 10A47C 7F0D594C A1A8A800 */ sb $t0, -0x5800($t5) +/* 10A480 7F0D5950 2B014000 */ slti $at, $t8, 0x4000 +.L7F0D5954: +/* 10A484 7F0D5954 142033A9 */ bnez $at, .L7F0E27FC +/* 10A488 7F0D5958 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A48C 7F0D595C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A490 7F0D5960 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10A494 7F0D5964 24090001 */ li $t1, 1 +/* 10A498 7F0D5968 0158C821 */ addu $t9, $t2, $t8 +/* 10A49C 7F0D596C A3300000 */ sb $s0, ($t9) +/* 10A4A0 7F0D5970 97AF0226 */ lhu $t7, 0x226($sp) +/* 10A4A4 7F0D5974 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10A4A8 7F0D5978 31EE1800 */ andi $t6, $t7, 0x1800 +/* 10A4AC 7F0D597C 000E58C3 */ sra $t3, $t6, 3 +/* 10A4B0 7F0D5980 31EC00FF */ andi $t4, $t7, 0xff +/* 10A4B4 7F0D5984 016C4025 */ or $t0, $t3, $t4 +/* 10A4B8 7F0D5988 01A85021 */ addu $t2, $t5, $t0 +/* 10A4BC 7F0D598C 1000339B */ b .L7F0E27FC +/* 10A4C0 7F0D5990 A1490000 */ sb $t1, ($t2) +spectrum_op_33: +/* 10A4C4 7F0D5994 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A4C8 7F0D5998 97AE0292 */ lhu $t6, 0x292($sp) +/* 10A4CC 7F0D599C 27190006 */ addiu $t9, $t8, 6 +/* 10A4D0 7F0D59A0 25CF0001 */ addiu $t7, $t6, 1 +/* 10A4D4 7F0D59A4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10A4D8 7F0D59A8 10003394 */ b .L7F0E27FC +/* 10A4DC 7F0D59AC A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_34: +/* 10A4E0 7F0D59B0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A4E4 7F0D59B4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10A4E8 7F0D59B8 00164200 */ sll $t0, $s6, 8 +/* 10A4EC 7F0D59BC 256C000B */ addiu $t4, $t3, 0xb +/* 10A4F0 7F0D59C0 15A00004 */ bnez $t5, .L7F0D59D4 +/* 10A4F4 7F0D59C4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10A4F8 7F0D59C8 01174825 */ or $t1, $t0, $s7 +/* 10A4FC 7F0D59CC 10000016 */ b .L7F0D5A28 +/* 10A500 7F0D59D0 A7A90224 */ sh $t1, 0x224($sp) +.L7F0D59D4: +/* 10A504 7F0D59D4 8FAA028C */ lw $t2, 0x28c($sp) +/* 10A508 7F0D59D8 93B90287 */ lbu $t9, 0x287($sp) +/* 10A50C 7F0D59DC 24010001 */ li $at, 1 +/* 10A510 7F0D59E0 25580008 */ addiu $t8, $t2, 8 +/* 10A514 7F0D59E4 17210004 */ bne $t9, $at, .L7F0D59F8 +/* 10A518 7F0D59E8 AFB8028C */ sw $t8, 0x28c($sp) +/* 10A51C 7F0D59EC 97AE0296 */ lhu $t6, 0x296($sp) +/* 10A520 7F0D59F0 10000003 */ b .L7F0D5A00 +/* 10A524 7F0D59F4 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D59F8: +/* 10A528 7F0D59F8 97AF0294 */ lhu $t7, 0x294($sp) +/* 10A52C 7F0D59FC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D5A00: +/* 10A530 7F0D5A00 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A534 7F0D5A04 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A538 7F0D5A08 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A53C 7F0D5A0C 8FA90048 */ lw $t1, 0x48($sp) +/* 10A540 7F0D5A10 016C6821 */ addu $t5, $t3, $t4 +/* 10A544 7F0D5A14 81A80000 */ lb $t0, ($t5) +/* 10A548 7F0D5A18 25780001 */ addiu $t8, $t3, 1 +/* 10A54C 7F0D5A1C A7B80298 */ sh $t8, 0x298($sp) +/* 10A550 7F0D5A20 01095021 */ addu $t2, $t0, $t1 +/* 10A554 7F0D5A24 A7AA0224 */ sh $t2, 0x224($sp) +.L7F0D5A28: +/* 10A558 7F0D5A28 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A55C 7F0D5A2C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A560 7F0D5A30 97B90224 */ lhu $t9, 0x224($sp) +/* 10A564 7F0D5A34 032E7821 */ addu $t7, $t9, $t6 +/* 10A568 7F0D5A38 91EC0000 */ lbu $t4, ($t7) +/* 10A56C 7F0D5A3C 32390001 */ andi $t9, $s1, 1 +/* 10A570 7F0D5A40 258D0001 */ addiu $t5, $t4, 1 +/* 10A574 7F0D5A44 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 10A578 7F0D5A48 A3AC0223 */ sb $t4, 0x223($sp) +/* 10A57C 7F0D5A4C 032F6025 */ or $t4, $t9, $t7 +/* 10A580 7F0D5A50 31A800FF */ andi $t0, $t5, 0xff +/* 10A584 7F0D5A54 31AB000F */ andi $t3, $t5, 0xf +/* 10A588 7F0D5A58 2D780001 */ sltiu $t8, $t3, 1 +/* 10A58C 7F0D5A5C 2D090001 */ sltiu $t1, $t0, 1 +/* 10A590 7F0D5A60 00184100 */ sll $t0, $t8, 4 +/* 10A594 7F0D5A64 31B900FF */ andi $t9, $t5, 0xff +/* 10A598 7F0D5A68 3B2F0080 */ xori $t7, $t9, 0x80 +/* 10A59C 7F0D5A6C 01885025 */ or $t2, $t4, $t0 +/* 10A5A0 7F0D5A70 97A80224 */ lhu $t0, 0x224($sp) +/* 10A5A4 7F0D5A74 2DEF0001 */ sltiu $t7, $t7, 1 +/* 10A5A8 7F0D5A78 00095980 */ sll $t3, $t1, 6 +/* 10A5AC 7F0D5A7C AFB80048 */ sw $t8, 0x48($sp) +/* 10A5B0 7F0D5A80 000FC080 */ sll $t8, $t7, 2 +/* 10A5B4 7F0D5A84 014B7025 */ or $t6, $t2, $t3 +/* 10A5B8 7F0D5A88 01D88825 */ or $s1, $t6, $t8 +/* 10A5BC 7F0D5A8C 322C00FF */ andi $t4, $s1, 0xff +/* 10A5C0 7F0D5A90 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A5C4 7F0D5A94 01808825 */ move $s1, $t4 +/* 10A5C8 7F0D5A98 AFA90044 */ sw $t1, 0x44($sp) +/* 10A5CC 7F0D5A9C 14200006 */ bnez $at, .L7F0D5AB8 +/* 10A5D0 7F0D5AA0 A3AD0223 */ sb $t5, 0x223($sp) +/* 10A5D4 7F0D5AA4 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A5D8 7F0D5AA8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A5DC 7F0D5AAC 01485821 */ addu $t3, $t2, $t0 +/* 10A5E0 7F0D5AB0 10003352 */ b .L7F0E27FC +/* 10A5E4 7F0D5AB4 A16D0000 */ sb $t5, ($t3) +.L7F0D5AB8: +/* 10A5E8 7F0D5AB8 97AD0224 */ lhu $t5, 0x224($sp) +/* 10A5EC 7F0D5ABC 97A90224 */ lhu $t1, 0x224($sp) +/* 10A5F0 7F0D5AC0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A5F4 7F0D5AC4 29A15800 */ slti $at, $t5, 0x5800 +/* 10A5F8 7F0D5AC8 5420000D */ bnezl $at, .L7F0D5B00 +/* 10A5FC 7F0D5ACC 29214000 */ slti $at, $t1, 0x4000 +/* 10A600 7F0D5AD0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A604 7F0D5AD4 93B90223 */ lbu $t9, 0x223($sp) +/* 10A608 7F0D5AD8 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10A60C 7F0D5ADC 01ED7021 */ addu $t6, $t7, $t5 +/* 10A610 7F0D5AE0 A1D90000 */ sb $t9, ($t6) +/* 10A614 7F0D5AE4 97AA0224 */ lhu $t2, 0x224($sp) +/* 10A618 7F0D5AE8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10A61C 7F0D5AEC 24180001 */ li $t8, 1 +/* 10A620 7F0D5AF0 018A4021 */ addu $t0, $t4, $t2 +/* 10A624 7F0D5AF4 10003341 */ b .L7F0E27FC +/* 10A628 7F0D5AF8 A118A800 */ sb $t8, -0x5800($t0) +/* 10A62C 7F0D5AFC 29214000 */ slti $at, $t1, 0x4000 +.L7F0D5B00: +/* 10A630 7F0D5B00 1420333E */ bnez $at, .L7F0E27FC +/* 10A634 7F0D5B04 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A638 7F0D5B08 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A63C 7F0D5B0C 93AB0223 */ lbu $t3, 0x223($sp) +/* 10A640 7F0D5B10 24190001 */ li $t9, 1 +/* 10A644 7F0D5B14 01E96821 */ addu $t5, $t7, $t1 +/* 10A648 7F0D5B18 A1AB0000 */ sb $t3, ($t5) +/* 10A64C 7F0D5B1C 97AE0224 */ lhu $t6, 0x224($sp) +/* 10A650 7F0D5B20 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10A654 7F0D5B24 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10A658 7F0D5B28 31CC1800 */ andi $t4, $t6, 0x1800 +/* 10A65C 7F0D5B2C 000C50C3 */ sra $t2, $t4, 3 +/* 10A660 7F0D5B30 31D800FF */ andi $t8, $t6, 0xff +/* 10A664 7F0D5B34 01584025 */ or $t0, $t2, $t8 +/* 10A668 7F0D5B38 01E84821 */ addu $t1, $t7, $t0 +/* 10A66C 7F0D5B3C 1000332F */ b .L7F0E27FC +/* 10A670 7F0D5B40 A1390000 */ sb $t9, ($t1) +spectrum_op_35: +/* 10A674 7F0D5B44 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A678 7F0D5B48 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A67C 7F0D5B4C 00167200 */ sll $t6, $s6, 8 +/* 10A680 7F0D5B50 256D000B */ addiu $t5, $t3, 0xb +/* 10A684 7F0D5B54 15800004 */ bnez $t4, .L7F0D5B68 +/* 10A688 7F0D5B58 AFAD028C */ sw $t5, 0x28c($sp) +/* 10A68C 7F0D5B5C 01D75025 */ or $t2, $t6, $s7 +/* 10A690 7F0D5B60 10000016 */ b .L7F0D5BBC +/* 10A694 7F0D5B64 A7AA0220 */ sh $t2, 0x220($sp) +.L7F0D5B68: +/* 10A698 7F0D5B68 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A69C 7F0D5B6C 93A80287 */ lbu $t0, 0x287($sp) +/* 10A6A0 7F0D5B70 24010001 */ li $at, 1 +/* 10A6A4 7F0D5B74 270F0008 */ addiu $t7, $t8, 8 +/* 10A6A8 7F0D5B78 15010004 */ bne $t0, $at, .L7F0D5B8C +/* 10A6AC 7F0D5B7C AFAF028C */ sw $t7, 0x28c($sp) +/* 10A6B0 7F0D5B80 97B90296 */ lhu $t9, 0x296($sp) +/* 10A6B4 7F0D5B84 10000003 */ b .L7F0D5B94 +/* 10A6B8 7F0D5B88 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D5B8C: +/* 10A6BC 7F0D5B8C 97A90294 */ lhu $t1, 0x294($sp) +/* 10A6C0 7F0D5B90 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D5B94: +/* 10A6C4 7F0D5B94 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10A6C8 7F0D5B98 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10A6CC 7F0D5B9C 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A6D0 7F0D5BA0 8FAA0048 */ lw $t2, 0x48($sp) +/* 10A6D4 7F0D5BA4 016D6021 */ addu $t4, $t3, $t5 +/* 10A6D8 7F0D5BA8 818E0000 */ lb $t6, ($t4) +/* 10A6DC 7F0D5BAC 256F0001 */ addiu $t7, $t3, 1 +/* 10A6E0 7F0D5BB0 A7AF0298 */ sh $t7, 0x298($sp) +/* 10A6E4 7F0D5BB4 01CAC021 */ addu $t8, $t6, $t2 +/* 10A6E8 7F0D5BB8 A7B80220 */ sh $t8, 0x220($sp) +.L7F0D5BBC: +/* 10A6EC 7F0D5BBC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10A6F0 7F0D5BC0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10A6F4 7F0D5BC4 97A80220 */ lhu $t0, 0x220($sp) +/* 10A6F8 7F0D5BC8 32380001 */ andi $t8, $s1, 1 +/* 10A6FC 7F0D5BCC 01194821 */ addu $t1, $t0, $t9 +/* 10A700 7F0D5BD0 912D0000 */ lbu $t5, ($t1) +/* 10A704 7F0D5BD4 31AC000F */ andi $t4, $t5, 0xf +/* 10A708 7F0D5BD8 2D8E0001 */ sltiu $t6, $t4, 1 +/* 10A70C 7F0D5BDC 000E5100 */ sll $t2, $t6, 4 +/* 10A710 7F0D5BE0 030A8825 */ or $s1, $t8, $t2 +/* 10A714 7F0D5BE4 25A8FFFF */ addiu $t0, $t5, -1 +/* 10A718 7F0D5BE8 311800FF */ andi $t8, $t0, 0xff +/* 10A71C 7F0D5BEC 3B0A007F */ xori $t2, $t8, 0x7f +/* 10A720 7F0D5BF0 362B0002 */ ori $t3, $s1, 2 +/* 10A724 7F0D5BF4 AFAE0048 */ sw $t6, 0x48($sp) +/* 10A728 7F0D5BF8 310E00A8 */ andi $t6, $t0, 0xa8 +/* 10A72C 7F0D5BFC 01608825 */ move $s1, $t3 +/* 10A730 7F0D5C00 2D4A0001 */ sltiu $t2, $t2, 1 +/* 10A734 7F0D5C04 311900FF */ andi $t9, $t0, 0xff +/* 10A738 7F0D5C08 A3AD021F */ sb $t5, 0x21f($sp) +/* 10A73C 7F0D5C0C A3A8021F */ sb $t0, 0x21f($sp) +/* 10A740 7F0D5C10 2F290001 */ sltiu $t1, $t9, 1 +/* 10A744 7F0D5C14 000A5880 */ sll $t3, $t2, 2 +/* 10A748 7F0D5C18 97A80220 */ lhu $t0, 0x220($sp) +/* 10A74C 7F0D5C1C 01CB7825 */ or $t7, $t6, $t3 +/* 10A750 7F0D5C20 00096980 */ sll $t5, $t1, 6 +/* 10A754 7F0D5C24 01EDC825 */ or $t9, $t7, $t5 +/* 10A758 7F0D5C28 02398825 */ or $s1, $s1, $t9 +/* 10A75C 7F0D5C2C 322C00FF */ andi $t4, $s1, 0xff +/* 10A760 7F0D5C30 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A764 7F0D5C34 01808825 */ move $s1, $t4 +/* 10A768 7F0D5C38 14200007 */ bnez $at, .L7F0D5C58 +/* 10A76C 7F0D5C3C AFA90044 */ sw $t1, 0x44($sp) +/* 10A770 7F0D5C40 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A774 7F0D5C44 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A778 7F0D5C48 93B8021F */ lbu $t8, 0x21f($sp) +/* 10A77C 7F0D5C4C 01487021 */ addu $t6, $t2, $t0 +/* 10A780 7F0D5C50 100032EA */ b .L7F0E27FC +/* 10A784 7F0D5C54 A1D80000 */ sb $t8, ($t6) +.L7F0D5C58: +/* 10A788 7F0D5C58 97AB0220 */ lhu $t3, 0x220($sp) +/* 10A78C 7F0D5C5C 97B80220 */ lhu $t8, 0x220($sp) +/* 10A790 7F0D5C60 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A794 7F0D5C64 29615800 */ slti $at, $t3, 0x5800 +/* 10A798 7F0D5C68 5420000D */ bnezl $at, .L7F0D5CA0 +/* 10A79C 7F0D5C6C 2B014000 */ slti $at, $t8, 0x4000 +/* 10A7A0 7F0D5C70 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A7A4 7F0D5C74 93A9021F */ lbu $t1, 0x21f($sp) +/* 10A7A8 7F0D5C78 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10A7AC 7F0D5C7C 01EB6821 */ addu $t5, $t7, $t3 +/* 10A7B0 7F0D5C80 A1A90000 */ sb $t1, ($t5) +/* 10A7B4 7F0D5C84 97AA0220 */ lhu $t2, 0x220($sp) +/* 10A7B8 7F0D5C88 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10A7BC 7F0D5C8C 24190001 */ li $t9, 1 +/* 10A7C0 7F0D5C90 018A4021 */ addu $t0, $t4, $t2 +/* 10A7C4 7F0D5C94 100032D9 */ b .L7F0E27FC +/* 10A7C8 7F0D5C98 A119A800 */ sb $t9, -0x5800($t0) +/* 10A7CC 7F0D5C9C 2B014000 */ slti $at, $t8, 0x4000 +.L7F0D5CA0: +/* 10A7D0 7F0D5CA0 142032D6 */ bnez $at, .L7F0E27FC +/* 10A7D4 7F0D5CA4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A7D8 7F0D5CA8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A7DC 7F0D5CAC 93AE021F */ lbu $t6, 0x21f($sp) +/* 10A7E0 7F0D5CB0 24090001 */ li $t1, 1 +/* 10A7E4 7F0D5CB4 01F85821 */ addu $t3, $t7, $t8 +/* 10A7E8 7F0D5CB8 A16E0000 */ sb $t6, ($t3) +/* 10A7EC 7F0D5CBC 97AD0220 */ lhu $t5, 0x220($sp) +/* 10A7F0 7F0D5CC0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10A7F4 7F0D5CC4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10A7F8 7F0D5CC8 31AC1800 */ andi $t4, $t5, 0x1800 +/* 10A7FC 7F0D5CCC 000C50C3 */ sra $t2, $t4, 3 +/* 10A800 7F0D5CD0 31B900FF */ andi $t9, $t5, 0xff +/* 10A804 7F0D5CD4 01594025 */ or $t0, $t2, $t9 +/* 10A808 7F0D5CD8 01E8C021 */ addu $t8, $t7, $t0 +/* 10A80C 7F0D5CDC 100032C7 */ b .L7F0E27FC +/* 10A810 7F0D5CE0 A3090000 */ sb $t1, ($t8) +spectrum_op_36: +/* 10A814 7F0D5CE4 8FAE028C */ lw $t6, 0x28c($sp) +/* 10A818 7F0D5CE8 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A81C 7F0D5CEC 00166A00 */ sll $t5, $s6, 8 +/* 10A820 7F0D5CF0 25CB000A */ addiu $t3, $t6, 0xa +/* 10A824 7F0D5CF4 15800004 */ bnez $t4, .L7F0D5D08 +/* 10A828 7F0D5CF8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10A82C 7F0D5CFC 01B75025 */ or $t2, $t5, $s7 +/* 10A830 7F0D5D00 10000016 */ b .L7F0D5D5C +/* 10A834 7F0D5D04 A7AA021C */ sh $t2, 0x21c($sp) +.L7F0D5D08: +/* 10A838 7F0D5D08 8FB9028C */ lw $t9, 0x28c($sp) +/* 10A83C 7F0D5D0C 93A80287 */ lbu $t0, 0x287($sp) +/* 10A840 7F0D5D10 24010001 */ li $at, 1 +/* 10A844 7F0D5D14 272F0005 */ addiu $t7, $t9, 5 +/* 10A848 7F0D5D18 15010004 */ bne $t0, $at, .L7F0D5D2C +/* 10A84C 7F0D5D1C AFAF028C */ sw $t7, 0x28c($sp) +/* 10A850 7F0D5D20 97A90296 */ lhu $t1, 0x296($sp) +/* 10A854 7F0D5D24 10000003 */ b .L7F0D5D34 +/* 10A858 7F0D5D28 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D5D2C: +/* 10A85C 7F0D5D2C 97B80294 */ lhu $t8, 0x294($sp) +/* 10A860 7F0D5D30 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D5D34: +/* 10A864 7F0D5D34 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10A868 7F0D5D38 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10A86C 7F0D5D3C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10A870 7F0D5D40 8FAA0048 */ lw $t2, 0x48($sp) +/* 10A874 7F0D5D44 01CB6021 */ addu $t4, $t6, $t3 +/* 10A878 7F0D5D48 818D0000 */ lb $t5, ($t4) +/* 10A87C 7F0D5D4C 25CF0001 */ addiu $t7, $t6, 1 +/* 10A880 7F0D5D50 A7AF0298 */ sh $t7, 0x298($sp) +/* 10A884 7F0D5D54 01AAC821 */ addu $t9, $t5, $t2 +/* 10A888 7F0D5D58 A7B9021C */ sh $t9, 0x21c($sp) +.L7F0D5D5C: +/* 10A88C 7F0D5D5C 97A8021C */ lhu $t0, 0x21c($sp) +/* 10A890 7F0D5D60 97AA021C */ lhu $t2, 0x21c($sp) +/* 10A894 7F0D5D64 97A90298 */ lhu $t1, 0x298($sp) +/* 10A898 7F0D5D68 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A89C 7F0D5D6C 14200007 */ bnez $at, .L7F0D5D8C +/* 10A8A0 7F0D5D70 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A8A4 7F0D5D74 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A8A8 7F0D5D78 01385821 */ addu $t3, $t1, $t8 +/* 10A8AC 7F0D5D7C 916C0000 */ lbu $t4, ($t3) +/* 10A8B0 7F0D5D80 03086821 */ addu $t5, $t8, $t0 +/* 10A8B4 7F0D5D84 10000025 */ b .L7F0D5E1C +/* 10A8B8 7F0D5D88 A1AC0000 */ sb $t4, ($t5) +.L7F0D5D8C: +/* 10A8BC 7F0D5D8C 29415800 */ slti $at, $t2, 0x5800 +/* 10A8C0 7F0D5D90 1420000F */ bnez $at, .L7F0D5DD0 +/* 10A8C4 7F0D5D94 97B9021C */ lhu $t9, 0x21c($sp) +/* 10A8C8 7F0D5D98 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A8CC 7F0D5D9C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A8D0 7F0D5DA0 97B90298 */ lhu $t9, 0x298($sp) +/* 10A8D4 7F0D5DA4 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10A8D8 7F0D5DA8 01CA5821 */ addu $t3, $t6, $t2 +/* 10A8DC 7F0D5DAC 032E7821 */ addu $t7, $t9, $t6 +/* 10A8E0 7F0D5DB0 91E90000 */ lbu $t1, ($t7) +/* 10A8E4 7F0D5DB4 24180001 */ li $t8, 1 +/* 10A8E8 7F0D5DB8 A1690000 */ sb $t1, ($t3) +/* 10A8EC 7F0D5DBC 97AC021C */ lhu $t4, 0x21c($sp) +/* 10A8F0 7F0D5DC0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10A8F4 7F0D5DC4 010C6821 */ addu $t5, $t0, $t4 +/* 10A8F8 7F0D5DC8 10000014 */ b .L7F0D5E1C +/* 10A8FC 7F0D5DCC A1B8A800 */ sb $t8, -0x5800($t5) +.L7F0D5DD0: +/* 10A900 7F0D5DD0 2B214000 */ slti $at, $t9, 0x4000 +/* 10A904 7F0D5DD4 14200011 */ bnez $at, .L7F0D5E1C +/* 10A908 7F0D5DD8 97AF0298 */ lhu $t7, 0x298($sp) +/* 10A90C 7F0D5DDC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A910 7F0D5DE0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A914 7F0D5DE4 24080001 */ li $t0, 1 +/* 10A918 7F0D5DE8 01EE5021 */ addu $t2, $t7, $t6 +/* 10A91C 7F0D5DEC 91490000 */ lbu $t1, ($t2) +/* 10A920 7F0D5DF0 01D95821 */ addu $t3, $t6, $t9 +/* 10A924 7F0D5DF4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10A928 7F0D5DF8 A1690000 */ sb $t1, ($t3) +/* 10A92C 7F0D5DFC 97AC021C */ lhu $t4, 0x21c($sp) +/* 10A930 7F0D5E00 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10A934 7F0D5E04 31981800 */ andi $t8, $t4, 0x1800 +/* 10A938 7F0D5E08 001868C3 */ sra $t5, $t8, 3 +/* 10A93C 7F0D5E0C 318F00FF */ andi $t7, $t4, 0xff +/* 10A940 7F0D5E10 01AF5025 */ or $t2, $t5, $t7 +/* 10A944 7F0D5E14 01CAC821 */ addu $t9, $t6, $t2 +/* 10A948 7F0D5E18 A3280000 */ sb $t0, ($t9) +.L7F0D5E1C: +/* 10A94C 7F0D5E1C 97A90298 */ lhu $t1, 0x298($sp) +/* 10A950 7F0D5E20 252B0001 */ addiu $t3, $t1, 1 +/* 10A954 7F0D5E24 10003275 */ b .L7F0E27FC +/* 10A958 7F0D5E28 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_37: +/* 10A95C 7F0D5E2C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A960 7F0D5E30 322D00C4 */ andi $t5, $s1, 0xc4 +/* 10A964 7F0D5E34 35AF0001 */ ori $t7, $t5, 1 +/* 10A968 7F0D5E38 320E0028 */ andi $t6, $s0, 0x28 +/* 10A96C 7F0D5E3C 01EE8825 */ or $s1, $t7, $t6 +/* 10A970 7F0D5E40 322A00FF */ andi $t2, $s1, 0xff +/* 10A974 7F0D5E44 270C0004 */ addiu $t4, $t8, 4 +/* 10A978 7F0D5E48 AFAC028C */ sw $t4, 0x28c($sp) +/* 10A97C 7F0D5E4C 1000326B */ b .L7F0E27FC +/* 10A980 7F0D5E50 01408825 */ move $s1, $t2 +spectrum_op_38: +/* 10A984 7F0D5E54 8FA8028C */ lw $t0, 0x28c($sp) +/* 10A988 7F0D5E58 32290001 */ andi $t1, $s1, 1 +/* 10A98C 7F0D5E5C 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A990 7F0D5E60 25190007 */ addiu $t9, $t0, 7 +/* 10A994 7F0D5E64 1120000C */ beqz $t1, .L7F0D5E98 +/* 10A998 7F0D5E68 AFB9028C */ sw $t9, 0x28c($sp) +/* 10A99C 7F0D5E6C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A9A0 7F0D5E70 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A9A4 7F0D5E74 27280005 */ addiu $t0, $t9, 5 +/* 10A9A8 7F0D5E78 01786021 */ addu $t4, $t3, $t8 +/* 10A9AC 7F0D5E7C 818D0000 */ lb $t5, ($t4) +/* 10A9B0 7F0D5E80 AFA8028C */ sw $t0, 0x28c($sp) +/* 10A9B4 7F0D5E84 016D7821 */ addu $t7, $t3, $t5 +/* 10A9B8 7F0D5E88 25EE0001 */ addiu $t6, $t7, 1 +/* 10A9BC 7F0D5E8C A7AE0298 */ sh $t6, 0x298($sp) +/* 10A9C0 7F0D5E90 1000325A */ b .L7F0E27FC +/* 10A9C4 7F0D5E94 AFAD0218 */ sw $t5, 0x218($sp) +.L7F0D5E98: +/* 10A9C8 7F0D5E98 97B90298 */ lhu $t9, 0x298($sp) +/* 10A9CC 7F0D5E9C 27290001 */ addiu $t1, $t9, 1 +/* 10A9D0 7F0D5EA0 10003256 */ b .L7F0E27FC +/* 10A9D4 7F0D5EA4 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_39: +/* 10A9D8 7F0D5EA8 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A9DC 7F0D5EAC 93AB0287 */ lbu $t3, 0x287($sp) +/* 10A9E0 7F0D5EB0 97AD0292 */ lhu $t5, 0x292($sp) +/* 10A9E4 7F0D5EB4 270C000B */ addiu $t4, $t8, 0xb +/* 10A9E8 7F0D5EB8 1560001E */ bnez $t3, .L7F0D5F34 +/* 10A9EC 7F0D5EBC AFAC028C */ sw $t4, 0x28c($sp) +/* 10A9F0 7F0D5EC0 31AF00FF */ andi $t7, $t5, 0xff +/* 10A9F4 7F0D5EC4 02EF7021 */ addu $t6, $s7, $t7 +/* 10A9F8 7F0D5EC8 31CAFFFF */ andi $t2, $t6, 0xffff +/* 10A9FC 7F0D5ECC 000A4202 */ srl $t0, $t2, 8 +/* 10AA00 7F0D5ED0 3109FFFF */ andi $t1, $t0, 0xffff +/* 10AA04 7F0D5ED4 32D9000F */ andi $t9, $s6, 0xf +/* 10AA08 7F0D5ED8 000D6203 */ sra $t4, $t5, 8 +/* 10AA0C 7F0D5EDC 318B000F */ andi $t3, $t4, 0xf +/* 10AA10 7F0D5EE0 0139C021 */ addu $t8, $t1, $t9 +/* 10AA14 7F0D5EE4 030B7821 */ addu $t7, $t8, $t3 +/* 10AA18 7F0D5EE8 A7AE0216 */ sh $t6, 0x216($sp) +/* 10AA1C 7F0D5EEC 2401000F */ li $at, 15 +/* 10AA20 7F0D5EF0 002F702A */ slt $t6, $at, $t7 +/* 10AA24 7F0D5EF4 000E5100 */ sll $t2, $t6, 4 +/* 10AA28 7F0D5EF8 93B70217 */ lbu $s7, 0x217($sp) +/* 10AA2C 7F0D5EFC 02CC6821 */ addu $t5, $s6, $t4 +/* 10AA30 7F0D5F00 010D7021 */ addu $t6, $t0, $t5 +/* 10AA34 7F0D5F04 A7A80216 */ sh $t0, 0x216($sp) +/* 10AA38 7F0D5F08 A7AE0216 */ sh $t6, 0x216($sp) +/* 10AA3C 7F0D5F0C 93B60217 */ lbu $s6, 0x217($sp) +/* 10AA40 7F0D5F10 322900C4 */ andi $t1, $s1, 0xc4 +/* 10AA44 7F0D5F14 0149C825 */ or $t9, $t2, $t1 +/* 10AA48 7F0D5F18 000E5203 */ sra $t2, $t6, 8 +/* 10AA4C 7F0D5F1C 32CF0028 */ andi $t7, $s6, 0x28 +/* 10AA50 7F0D5F20 01EA4825 */ or $t1, $t7, $t2 +/* 10AA54 7F0D5F24 03298825 */ or $s1, $t9, $t1 +/* 10AA58 7F0D5F28 323900FF */ andi $t9, $s1, 0xff +/* 10AA5C 7F0D5F2C 10003233 */ b .L7F0E27FC +/* 10AA60 7F0D5F30 03208825 */ move $s1, $t9 +.L7F0D5F34: +/* 10AA64 7F0D5F34 93AC0287 */ lbu $t4, 0x287($sp) +/* 10AA68 7F0D5F38 24010001 */ li $at, 1 +/* 10AA6C 7F0D5F3C 97B80294 */ lhu $t8, 0x294($sp) +/* 10AA70 7F0D5F40 15810003 */ bne $t4, $at, .L7F0D5F50 +/* 10AA74 7F0D5F44 97A80296 */ lhu $t0, 0x296($sp) +/* 10AA78 7F0D5F48 10000002 */ b .L7F0D5F54 +/* 10AA7C 7F0D5F4C AFA80210 */ sw $t0, 0x210($sp) +.L7F0D5F50: +/* 10AA80 7F0D5F50 AFB80210 */ sw $t8, 0x210($sp) +.L7F0D5F54: +/* 10AA84 7F0D5F54 97AD0292 */ lhu $t5, 0x292($sp) +/* 10AA88 7F0D5F58 8FA90210 */ lw $t1, 0x210($sp) +/* 10AA8C 7F0D5F5C 24010FFF */ li $at, 4095 +/* 10AA90 7F0D5F60 000D5A03 */ sra $t3, $t5, 8 +/* 10AA94 7F0D5F64 000B7200 */ sll $t6, $t3, 8 +/* 10AA98 7F0D5F68 31AF00FF */ andi $t7, $t5, 0xff +/* 10AA9C 7F0D5F6C 01CF5025 */ or $t2, $t6, $t7 +/* 10AAA0 7F0D5F70 31390FFF */ andi $t9, $t1, 0xfff +/* 10AAA4 7F0D5F74 032A6021 */ addu $t4, $t9, $t2 +/* 10AAA8 7F0D5F78 002C402B */ sltu $t0, $at, $t4 +/* 10AAAC 7F0D5F7C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10AAB0 7F0D5F80 0008C100 */ sll $t8, $t0, 4 +/* 10AAB4 7F0D5F84 322B00C4 */ andi $t3, $s1, 0xc4 +/* 10AAB8 7F0D5F88 01788825 */ or $s1, $t3, $t8 +/* 10AABC 7F0D5F8C 322D00FF */ andi $t5, $s1, 0xff +/* 10AAC0 7F0D5F90 24010001 */ li $at, 1 +/* 10AAC4 7F0D5F94 012A7021 */ addu $t6, $t1, $t2 +/* 10AAC8 7F0D5F98 AFAE0210 */ sw $t6, 0x210($sp) +/* 10AACC 7F0D5F9C 15E10003 */ bne $t7, $at, .L7F0D5FAC +/* 10AAD0 7F0D5FA0 01A08825 */ move $s1, $t5 +/* 10AAD4 7F0D5FA4 10000003 */ b .L7F0D5FB4 +/* 10AAD8 7F0D5FA8 A7AE0296 */ sh $t6, 0x296($sp) +.L7F0D5FAC: +/* 10AADC 7F0D5FAC 8FB90210 */ lw $t9, 0x210($sp) +/* 10AAE0 7F0D5FB0 A7B90294 */ sh $t9, 0x294($sp) +.L7F0D5FB4: +/* 10AAE4 7F0D5FB4 8FAC0210 */ lw $t4, 0x210($sp) +/* 10AAE8 7F0D5FB8 000C4202 */ srl $t0, $t4, 8 +/* 10AAEC 7F0D5FBC 310B0028 */ andi $t3, $t0, 0x28 +/* 10AAF0 7F0D5FC0 000CC402 */ srl $t8, $t4, 0x10 +/* 10AAF4 7F0D5FC4 01786825 */ or $t5, $t3, $t8 +/* 10AAF8 7F0D5FC8 022D8825 */ or $s1, $s1, $t5 +/* 10AAFC 7F0D5FCC 322900FF */ andi $t1, $s1, 0xff +/* 10AB00 7F0D5FD0 1000320A */ b .L7F0E27FC +/* 10AB04 7F0D5FD4 01208825 */ move $s1, $t1 +spectrum_op_3A: +/* 10AB08 7F0D5FD8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AB0C 7F0D5FDC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10AB10 7F0D5FE0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10AB14 7F0D5FE4 97AE0298 */ lhu $t6, 0x298($sp) +/* 10AB18 7F0D5FE8 254F000D */ addiu $t7, $t2, 0xd +/* 10AB1C 7F0D5FEC AFAF028C */ sw $t7, 0x28c($sp) +/* 10AB20 7F0D5FF0 032E5821 */ addu $t3, $t9, $t6 +/* 10AB24 7F0D5FF4 91780001 */ lbu $t8, 1($t3) +/* 10AB28 7F0D5FF8 01D94021 */ addu $t0, $t6, $t9 +/* 10AB2C 7F0D5FFC 910C0000 */ lbu $t4, ($t0) +/* 10AB30 7F0D6000 00186A00 */ sll $t5, $t8, 8 +/* 10AB34 7F0D6004 25CA0002 */ addiu $t2, $t6, 2 +/* 10AB38 7F0D6008 018D4825 */ or $t1, $t4, $t5 +/* 10AB3C 7F0D600C 312FFFFF */ andi $t7, $t1, 0xffff +/* 10AB40 7F0D6010 A7A9020E */ sh $t1, 0x20e($sp) +/* 10AB44 7F0D6014 A7AA0298 */ sh $t2, 0x298($sp) +/* 10AB48 7F0D6018 01F94021 */ addu $t0, $t7, $t9 +/* 10AB4C 7F0D601C 100031F7 */ b .L7F0E27FC +/* 10AB50 7F0D6020 91100000 */ lbu $s0, ($t0) +spectrum_op_3B: +/* 10AB54 7F0D6024 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AB58 7F0D6028 97AC0292 */ lhu $t4, 0x292($sp) +/* 10AB5C 7F0D602C 25780006 */ addiu $t8, $t3, 6 +/* 10AB60 7F0D6030 258DFFFF */ addiu $t5, $t4, -1 +/* 10AB64 7F0D6034 AFB8028C */ sw $t8, 0x28c($sp) +/* 10AB68 7F0D6038 100031F0 */ b .L7F0E27FC +/* 10AB6C 7F0D603C A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_3C: +/* 10AB70 7F0D6040 26100001 */ addiu $s0, $s0, 1 +/* 10AB74 7F0D6044 320A00FF */ andi $t2, $s0, 0xff +/* 10AB78 7F0D6048 8FA9028C */ lw $t1, 0x28c($sp) +/* 10AB7C 7F0D604C 3159000F */ andi $t9, $t2, 0xf +/* 10AB80 7F0D6050 2F280001 */ sltiu $t0, $t9, 1 +/* 10AB84 7F0D6054 01408025 */ move $s0, $t2 +/* 10AB88 7F0D6058 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10AB8C 7F0D605C 315800A8 */ andi $t8, $t2, 0xa8 +/* 10AB90 7F0D6060 322B0001 */ andi $t3, $s1, 1 +/* 10AB94 7F0D6064 01786025 */ or $t4, $t3, $t8 +/* 10AB98 7F0D6068 3A190080 */ xori $t9, $s0, 0x80 +/* 10AB9C 7F0D606C 00086900 */ sll $t5, $t0, 4 +/* 10ABA0 7F0D6070 252E0004 */ addiu $t6, $t1, 4 +/* 10ABA4 7F0D6074 018D4825 */ or $t1, $t4, $t5 +/* 10ABA8 7F0D6078 2F390001 */ sltiu $t9, $t9, 1 +/* 10ABAC 7F0D607C 000F5180 */ sll $t2, $t7, 6 +/* 10ABB0 7F0D6080 AFAF0044 */ sw $t7, 0x44($sp) +/* 10ABB4 7F0D6084 012A7825 */ or $t7, $t1, $t2 +/* 10ABB8 7F0D6088 00195880 */ sll $t3, $t9, 2 +/* 10ABBC 7F0D608C 01EB8825 */ or $s1, $t7, $t3 +/* 10ABC0 7F0D6090 323800FF */ andi $t8, $s1, 0xff +/* 10ABC4 7F0D6094 AFAE028C */ sw $t6, 0x28c($sp) +/* 10ABC8 7F0D6098 03008825 */ move $s1, $t8 +/* 10ABCC 7F0D609C 100031D7 */ b .L7F0E27FC +/* 10ABD0 7F0D60A0 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_3D: +/* 10ABD4 7F0D60A4 8FA8028C */ lw $t0, 0x28c($sp) +/* 10ABD8 7F0D60A8 320D000F */ andi $t5, $s0, 0xf +/* 10ABDC 7F0D60AC 2610FFFF */ addiu $s0, $s0, -1 +/* 10ABE0 7F0D60B0 250C0004 */ addiu $t4, $t0, 4 +/* 10ABE4 7F0D60B4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10ABE8 7F0D60B8 320B00FF */ andi $t3, $s0, 0xff +/* 10ABEC 7F0D60BC 2DAE0001 */ sltiu $t6, $t5, 1 +/* 10ABF0 7F0D60C0 000E5100 */ sll $t2, $t6, 4 +/* 10ABF4 7F0D60C4 396C007F */ xori $t4, $t3, 0x7f +/* 10ABF8 7F0D60C8 2D8C0001 */ sltiu $t4, $t4, 1 +/* 10ABFC 7F0D60CC 32290001 */ andi $t1, $s1, 1 +/* 10AC00 7F0D60D0 012A8825 */ or $s1, $t1, $t2 +/* 10AC04 7F0D60D4 000C6880 */ sll $t5, $t4, 2 +/* 10AC08 7F0D60D8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10AC0C 7F0D60DC 2D780001 */ sltiu $t8, $t3, 1 +/* 10AC10 7F0D60E0 316800A8 */ andi $t0, $t3, 0xa8 +/* 10AC14 7F0D60E4 010D7025 */ or $t6, $t0, $t5 +/* 10AC18 7F0D60E8 00185180 */ sll $t2, $t8, 6 +/* 10AC1C 7F0D60EC 01CAC825 */ or $t9, $t6, $t2 +/* 10AC20 7F0D60F0 362F0002 */ ori $t7, $s1, 2 +/* 10AC24 7F0D60F4 01F98825 */ or $s1, $t7, $t9 +/* 10AC28 7F0D60F8 322F00FF */ andi $t7, $s1, 0xff +/* 10AC2C 7F0D60FC 01E08825 */ move $s1, $t7 +/* 10AC30 7F0D6100 AFB80044 */ sw $t8, 0x44($sp) +/* 10AC34 7F0D6104 100031BD */ b .L7F0E27FC +/* 10AC38 7F0D6108 01608025 */ move $s0, $t3 +spectrum_op_3E: +/* 10AC3C 7F0D610C 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AC40 7F0D6110 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10AC44 7F0D6114 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10AC48 7F0D6118 97AC0298 */ lhu $t4, 0x298($sp) +/* 10AC4C 7F0D611C 25780007 */ addiu $t8, $t3, 7 +/* 10AC50 7F0D6120 AFB8028C */ sw $t8, 0x28c($sp) +/* 10AC54 7F0D6124 01886821 */ addu $t5, $t4, $t0 +/* 10AC58 7F0D6128 91B00000 */ lbu $s0, ($t5) +/* 10AC5C 7F0D612C 25890001 */ addiu $t1, $t4, 1 +/* 10AC60 7F0D6130 100031B2 */ b .L7F0E27FC +/* 10AC64 7F0D6134 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_3F: +/* 10AC68 7F0D6138 322F0001 */ andi $t7, $s1, 1 +/* 10AC6C 7F0D613C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AC70 7F0D6140 39EB0001 */ xori $t3, $t7, 1 +/* 10AC74 7F0D6144 323900C4 */ andi $t9, $s1, 0xc4 +/* 10AC78 7F0D6148 32280001 */ andi $t0, $s1, 1 +/* 10AC7C 7F0D614C 00086900 */ sll $t5, $t0, 4 +/* 10AC80 7F0D6150 032BC025 */ or $t8, $t9, $t3 +/* 10AC84 7F0D6154 030D6025 */ or $t4, $t8, $t5 +/* 10AC88 7F0D6158 32090028 */ andi $t1, $s0, 0x28 +/* 10AC8C 7F0D615C 01898825 */ or $s1, $t4, $t1 +/* 10AC90 7F0D6160 25CA0004 */ addiu $t2, $t6, 4 +/* 10AC94 7F0D6164 322E00FF */ andi $t6, $s1, 0xff +/* 10AC98 7F0D6168 AFAA028C */ sw $t2, 0x28c($sp) +/* 10AC9C 7F0D616C 100031A3 */ b .L7F0E27FC +/* 10ACA0 7F0D6170 01C08825 */ move $s1, $t6 +spectrum_op_40: +/* 10ACA4 7F0D6174 8FAA028C */ lw $t2, 0x28c($sp) +/* 10ACA8 7F0D6178 254F0004 */ addiu $t7, $t2, 4 +/* 10ACAC 7F0D617C 1000319F */ b .L7F0E27FC +/* 10ACB0 7F0D6180 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_41: +/* 10ACB4 7F0D6184 8FB9028C */ lw $t9, 0x28c($sp) +/* 10ACB8 7F0D6188 327200FF */ andi $s2, $s3, 0xff +/* 10ACBC 7F0D618C 272B0004 */ addiu $t3, $t9, 4 +/* 10ACC0 7F0D6190 1000319A */ b .L7F0E27FC +/* 10ACC4 7F0D6194 AFAB028C */ sw $t3, 0x28c($sp) +spectrum_op_42: +/* 10ACC8 7F0D6198 8FA8028C */ lw $t0, 0x28c($sp) +/* 10ACCC 7F0D619C 329200FF */ andi $s2, $s4, 0xff +/* 10ACD0 7F0D61A0 25180004 */ addiu $t8, $t0, 4 +/* 10ACD4 7F0D61A4 10003195 */ b .L7F0E27FC +/* 10ACD8 7F0D61A8 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_43: +/* 10ACDC 7F0D61AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10ACE0 7F0D61B0 32B200FF */ andi $s2, $s5, 0xff +/* 10ACE4 7F0D61B4 25AC0004 */ addiu $t4, $t5, 4 +/* 10ACE8 7F0D61B8 10003190 */ b .L7F0E27FC +/* 10ACEC 7F0D61BC AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_44: +/* 10ACF0 7F0D61C0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10ACF4 7F0D61C4 93AA0287 */ lbu $t2, 0x287($sp) +/* 10ACF8 7F0D61C8 93AF0287 */ lbu $t7, 0x287($sp) +/* 10ACFC 7F0D61CC 252E0004 */ addiu $t6, $t1, 4 +/* 10AD00 7F0D61D0 15400003 */ bnez $t2, .L7F0D61E0 +/* 10AD04 7F0D61D4 AFAE028C */ sw $t6, 0x28c($sp) +/* 10AD08 7F0D61D8 10003188 */ b .L7F0E27FC +/* 10AD0C 7F0D61DC 32D200FF */ andi $s2, $s6, 0xff +.L7F0D61E0: +/* 10AD10 7F0D61E0 24010001 */ li $at, 1 +/* 10AD14 7F0D61E4 15E10005 */ bne $t7, $at, .L7F0D61FC +/* 10AD18 7F0D61E8 97A80294 */ lhu $t0, 0x294($sp) +/* 10AD1C 7F0D61EC 97B90296 */ lhu $t9, 0x296($sp) +/* 10AD20 7F0D61F0 00195A03 */ sra $t3, $t9, 8 +/* 10AD24 7F0D61F4 10000003 */ b .L7F0D6204 +/* 10AD28 7F0D61F8 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D61FC: +/* 10AD2C 7F0D61FC 0008C203 */ sra $t8, $t0, 8 +/* 10AD30 7F0D6200 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6204: +/* 10AD34 7F0D6204 1000317D */ b .L7F0E27FC +/* 10AD38 7F0D6208 93B2004B */ lbu $s2, 0x4b($sp) +spectrum_op_45: +/* 10AD3C 7F0D620C 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AD40 7F0D6210 93A90287 */ lbu $t1, 0x287($sp) +/* 10AD44 7F0D6214 93AE0287 */ lbu $t6, 0x287($sp) +/* 10AD48 7F0D6218 25AC0004 */ addiu $t4, $t5, 4 +/* 10AD4C 7F0D621C 15200003 */ bnez $t1, .L7F0D622C +/* 10AD50 7F0D6220 AFAC028C */ sw $t4, 0x28c($sp) +/* 10AD54 7F0D6224 10003175 */ b .L7F0E27FC +/* 10AD58 7F0D6228 32F200FF */ andi $s2, $s7, 0xff +.L7F0D622C: +/* 10AD5C 7F0D622C 24010001 */ li $at, 1 +/* 10AD60 7F0D6230 15C10005 */ bne $t6, $at, .L7F0D6248 +/* 10AD64 7F0D6234 97B90294 */ lhu $t9, 0x294($sp) +/* 10AD68 7F0D6238 97AA0296 */ lhu $t2, 0x296($sp) +/* 10AD6C 7F0D623C 314F00FF */ andi $t7, $t2, 0xff +/* 10AD70 7F0D6240 10000003 */ b .L7F0D6250 +/* 10AD74 7F0D6244 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D6248: +/* 10AD78 7F0D6248 332B00FF */ andi $t3, $t9, 0xff +/* 10AD7C 7F0D624C AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D6250: +/* 10AD80 7F0D6250 1000316A */ b .L7F0E27FC +/* 10AD84 7F0D6254 93B2004B */ lbu $s2, 0x4b($sp) +spectrum_op_46: +/* 10AD88 7F0D6258 8FA8028C */ lw $t0, 0x28c($sp) +/* 10AD8C 7F0D625C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10AD90 7F0D6260 00166200 */ sll $t4, $s6, 8 +/* 10AD94 7F0D6264 25180007 */ addiu $t8, $t0, 7 +/* 10AD98 7F0D6268 15A00004 */ bnez $t5, .L7F0D627C +/* 10AD9C 7F0D626C AFB8028C */ sw $t8, 0x28c($sp) +/* 10ADA0 7F0D6270 01974825 */ or $t1, $t4, $s7 +/* 10ADA4 7F0D6274 10000016 */ b .L7F0D62D0 +/* 10ADA8 7F0D6278 A7A9020C */ sh $t1, 0x20c($sp) +.L7F0D627C: +/* 10ADAC 7F0D627C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10ADB0 7F0D6280 93AF0287 */ lbu $t7, 0x287($sp) +/* 10ADB4 7F0D6284 24010001 */ li $at, 1 +/* 10ADB8 7F0D6288 25CA0008 */ addiu $t2, $t6, 8 +/* 10ADBC 7F0D628C 15E10004 */ bne $t7, $at, .L7F0D62A0 +/* 10ADC0 7F0D6290 AFAA028C */ sw $t2, 0x28c($sp) +/* 10ADC4 7F0D6294 97B90296 */ lhu $t9, 0x296($sp) +/* 10ADC8 7F0D6298 10000003 */ b .L7F0D62A8 +/* 10ADCC 7F0D629C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D62A0: +/* 10ADD0 7F0D62A0 97AB0294 */ lhu $t3, 0x294($sp) +/* 10ADD4 7F0D62A4 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D62A8: +/* 10ADD8 7F0D62A8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10ADDC 7F0D62AC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10ADE0 7F0D62B0 97A80298 */ lhu $t0, 0x298($sp) +/* 10ADE4 7F0D62B4 8FA90048 */ lw $t1, 0x48($sp) +/* 10ADE8 7F0D62B8 01186821 */ addu $t5, $t0, $t8 +/* 10ADEC 7F0D62BC 81AC0000 */ lb $t4, ($t5) +/* 10ADF0 7F0D62C0 250A0001 */ addiu $t2, $t0, 1 +/* 10ADF4 7F0D62C4 A7AA0298 */ sh $t2, 0x298($sp) +/* 10ADF8 7F0D62C8 01897021 */ addu $t6, $t4, $t1 +/* 10ADFC 7F0D62CC A7AE020C */ sh $t6, 0x20c($sp) +.L7F0D62D0: +/* 10AE00 7F0D62D0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10AE04 7F0D62D4 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10AE08 7F0D62D8 97AF020C */ lhu $t7, 0x20c($sp) +/* 10AE0C 7F0D62DC 01F95821 */ addu $t3, $t7, $t9 +/* 10AE10 7F0D62E0 10003146 */ b .L7F0E27FC +/* 10AE14 7F0D62E4 91720000 */ lbu $s2, ($t3) +spectrum_op_47: +/* 10AE18 7F0D62E8 8FB8028C */ lw $t8, 0x28c($sp) +/* 10AE1C 7F0D62EC 321200FF */ andi $s2, $s0, 0xff +/* 10AE20 7F0D62F0 270D0004 */ addiu $t5, $t8, 4 +/* 10AE24 7F0D62F4 10003141 */ b .L7F0E27FC +/* 10AE28 7F0D62F8 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_48: +/* 10AE2C 7F0D62FC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10AE30 7F0D6300 325300FF */ andi $s3, $s2, 0xff +/* 10AE34 7F0D6304 25890004 */ addiu $t1, $t4, 4 +/* 10AE38 7F0D6308 1000313C */ b .L7F0E27FC +/* 10AE3C 7F0D630C AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_49: +/* 10AE40 7F0D6310 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AE44 7F0D6314 25C80004 */ addiu $t0, $t6, 4 +/* 10AE48 7F0D6318 10003138 */ b .L7F0E27FC +/* 10AE4C 7F0D631C AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_4A: +/* 10AE50 7F0D6320 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AE54 7F0D6324 329300FF */ andi $s3, $s4, 0xff +/* 10AE58 7F0D6328 254F0004 */ addiu $t7, $t2, 4 +/* 10AE5C 7F0D632C 10003133 */ b .L7F0E27FC +/* 10AE60 7F0D6330 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_4B: +/* 10AE64 7F0D6334 8FB9028C */ lw $t9, 0x28c($sp) +/* 10AE68 7F0D6338 32B300FF */ andi $s3, $s5, 0xff +/* 10AE6C 7F0D633C 272B0004 */ addiu $t3, $t9, 4 +/* 10AE70 7F0D6340 1000312E */ b .L7F0E27FC +/* 10AE74 7F0D6344 AFAB028C */ sw $t3, 0x28c($sp) +spectrum_op_4C: +/* 10AE78 7F0D6348 8FB8028C */ lw $t8, 0x28c($sp) +/* 10AE7C 7F0D634C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10AE80 7F0D6350 93A90287 */ lbu $t1, 0x287($sp) +/* 10AE84 7F0D6354 270D0004 */ addiu $t5, $t8, 4 +/* 10AE88 7F0D6358 15800003 */ bnez $t4, .L7F0D6368 +/* 10AE8C 7F0D635C AFAD028C */ sw $t5, 0x28c($sp) +/* 10AE90 7F0D6360 10003126 */ b .L7F0E27FC +/* 10AE94 7F0D6364 32D300FF */ andi $s3, $s6, 0xff +.L7F0D6368: +/* 10AE98 7F0D6368 24010001 */ li $at, 1 +/* 10AE9C 7F0D636C 15210005 */ bne $t1, $at, .L7F0D6384 +/* 10AEA0 7F0D6370 97AA0294 */ lhu $t2, 0x294($sp) +/* 10AEA4 7F0D6374 97AE0296 */ lhu $t6, 0x296($sp) +/* 10AEA8 7F0D6378 000E4203 */ sra $t0, $t6, 8 +/* 10AEAC 7F0D637C 10000003 */ b .L7F0D638C +/* 10AEB0 7F0D6380 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6384: +/* 10AEB4 7F0D6384 000A7A03 */ sra $t7, $t2, 8 +/* 10AEB8 7F0D6388 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D638C: +/* 10AEBC 7F0D638C 1000311B */ b .L7F0E27FC +/* 10AEC0 7F0D6390 93B3004B */ lbu $s3, 0x4b($sp) +spectrum_op_4D: +/* 10AEC4 7F0D6394 8FB9028C */ lw $t9, 0x28c($sp) +/* 10AEC8 7F0D6398 93B80287 */ lbu $t8, 0x287($sp) +/* 10AECC 7F0D639C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10AED0 7F0D63A0 272B0004 */ addiu $t3, $t9, 4 +/* 10AED4 7F0D63A4 17000003 */ bnez $t8, .L7F0D63B4 +/* 10AED8 7F0D63A8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10AEDC 7F0D63AC 10003113 */ b .L7F0E27FC +/* 10AEE0 7F0D63B0 32F300FF */ andi $s3, $s7, 0xff +.L7F0D63B4: +/* 10AEE4 7F0D63B4 24010001 */ li $at, 1 +/* 10AEE8 7F0D63B8 15A10005 */ bne $t5, $at, .L7F0D63D0 +/* 10AEEC 7F0D63BC 97AE0294 */ lhu $t6, 0x294($sp) +/* 10AEF0 7F0D63C0 97AC0296 */ lhu $t4, 0x296($sp) +/* 10AEF4 7F0D63C4 318900FF */ andi $t1, $t4, 0xff +/* 10AEF8 7F0D63C8 10000003 */ b .L7F0D63D8 +/* 10AEFC 7F0D63CC AFA90048 */ sw $t1, 0x48($sp) +.L7F0D63D0: +/* 10AF00 7F0D63D0 31C800FF */ andi $t0, $t6, 0xff +/* 10AF04 7F0D63D4 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D63D8: +/* 10AF08 7F0D63D8 10003108 */ b .L7F0E27FC +/* 10AF0C 7F0D63DC 93B3004B */ lbu $s3, 0x4b($sp) +spectrum_op_4E: +/* 10AF10 7F0D63E0 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AF14 7F0D63E4 93B90287 */ lbu $t9, 0x287($sp) +/* 10AF18 7F0D63E8 00165A00 */ sll $t3, $s6, 8 +/* 10AF1C 7F0D63EC 254F0007 */ addiu $t7, $t2, 7 +/* 10AF20 7F0D63F0 17200004 */ bnez $t9, .L7F0D6404 +/* 10AF24 7F0D63F4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10AF28 7F0D63F8 0177C025 */ or $t8, $t3, $s7 +/* 10AF2C 7F0D63FC 10000016 */ b .L7F0D6458 +/* 10AF30 7F0D6400 A7B8020A */ sh $t8, 0x20a($sp) +.L7F0D6404: +/* 10AF34 7F0D6404 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AF38 7F0D6408 93A90287 */ lbu $t1, 0x287($sp) +/* 10AF3C 7F0D640C 24010001 */ li $at, 1 +/* 10AF40 7F0D6410 25AC0008 */ addiu $t4, $t5, 8 +/* 10AF44 7F0D6414 15210004 */ bne $t1, $at, .L7F0D6428 +/* 10AF48 7F0D6418 AFAC028C */ sw $t4, 0x28c($sp) +/* 10AF4C 7F0D641C 97AE0296 */ lhu $t6, 0x296($sp) +/* 10AF50 7F0D6420 10000003 */ b .L7F0D6430 +/* 10AF54 7F0D6424 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6428: +/* 10AF58 7F0D6428 97A80294 */ lhu $t0, 0x294($sp) +/* 10AF5C 7F0D642C AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6430: +/* 10AF60 7F0D6430 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10AF64 7F0D6434 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10AF68 7F0D6438 97AA0298 */ lhu $t2, 0x298($sp) +/* 10AF6C 7F0D643C 8FB80048 */ lw $t8, 0x48($sp) +/* 10AF70 7F0D6440 014FC821 */ addu $t9, $t2, $t7 +/* 10AF74 7F0D6444 832B0000 */ lb $t3, ($t9) +/* 10AF78 7F0D6448 254C0001 */ addiu $t4, $t2, 1 +/* 10AF7C 7F0D644C A7AC0298 */ sh $t4, 0x298($sp) +/* 10AF80 7F0D6450 01786821 */ addu $t5, $t3, $t8 +/* 10AF84 7F0D6454 A7AD020A */ sh $t5, 0x20a($sp) +.L7F0D6458: +/* 10AF88 7F0D6458 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10AF8C 7F0D645C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10AF90 7F0D6460 97A9020A */ lhu $t1, 0x20a($sp) +/* 10AF94 7F0D6464 012E4021 */ addu $t0, $t1, $t6 +/* 10AF98 7F0D6468 100030E4 */ b .L7F0E27FC +/* 10AF9C 7F0D646C 91130000 */ lbu $s3, ($t0) +spectrum_op_4F: +/* 10AFA0 7F0D6470 8FAF028C */ lw $t7, 0x28c($sp) +/* 10AFA4 7F0D6474 321300FF */ andi $s3, $s0, 0xff +/* 10AFA8 7F0D6478 25F90004 */ addiu $t9, $t7, 4 +/* 10AFAC 7F0D647C 100030DF */ b .L7F0E27FC +/* 10AFB0 7F0D6480 AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_50: +/* 10AFB4 7F0D6484 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AFB8 7F0D6488 325400FF */ andi $s4, $s2, 0xff +/* 10AFBC 7F0D648C 25780004 */ addiu $t8, $t3, 4 +/* 10AFC0 7F0D6490 100030DA */ b .L7F0E27FC +/* 10AFC4 7F0D6494 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_51: +/* 10AFC8 7F0D6498 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AFCC 7F0D649C 327400FF */ andi $s4, $s3, 0xff +/* 10AFD0 7F0D64A0 25AA0004 */ addiu $t2, $t5, 4 +/* 10AFD4 7F0D64A4 100030D5 */ b .L7F0E27FC +/* 10AFD8 7F0D64A8 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_52: +/* 10AFDC 7F0D64AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10AFE0 7F0D64B0 25890004 */ addiu $t1, $t4, 4 +/* 10AFE4 7F0D64B4 100030D1 */ b .L7F0E27FC +/* 10AFE8 7F0D64B8 AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_53: +/* 10AFEC 7F0D64BC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AFF0 7F0D64C0 32B400FF */ andi $s4, $s5, 0xff +/* 10AFF4 7F0D64C4 25C80004 */ addiu $t0, $t6, 4 +/* 10AFF8 7F0D64C8 100030CC */ b .L7F0E27FC +/* 10AFFC 7F0D64CC AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_54: +/* 10B000 7F0D64D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 10B004 7F0D64D4 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B008 7F0D64D8 93B80287 */ lbu $t8, 0x287($sp) +/* 10B00C 7F0D64DC 25F90004 */ addiu $t9, $t7, 4 +/* 10B010 7F0D64E0 15600003 */ bnez $t3, .L7F0D64F0 +/* 10B014 7F0D64E4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10B018 7F0D64E8 100030C4 */ b .L7F0E27FC +/* 10B01C 7F0D64EC 32D400FF */ andi $s4, $s6, 0xff +.L7F0D64F0: +/* 10B020 7F0D64F0 24010001 */ li $at, 1 +/* 10B024 7F0D64F4 17010005 */ bne $t8, $at, .L7F0D650C +/* 10B028 7F0D64F8 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B02C 7F0D64FC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B030 7F0D6500 000D5203 */ sra $t2, $t5, 8 +/* 10B034 7F0D6504 10000003 */ b .L7F0D6514 +/* 10B038 7F0D6508 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D650C: +/* 10B03C 7F0D650C 000C4A03 */ sra $t1, $t4, 8 +/* 10B040 7F0D6510 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6514: +/* 10B044 7F0D6514 100030B9 */ b .L7F0E27FC +/* 10B048 7F0D6518 93B4004B */ lbu $s4, 0x4b($sp) +spectrum_op_55: +/* 10B04C 7F0D651C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B050 7F0D6520 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B054 7F0D6524 93B90287 */ lbu $t9, 0x287($sp) +/* 10B058 7F0D6528 25C80004 */ addiu $t0, $t6, 4 +/* 10B05C 7F0D652C 15E00003 */ bnez $t7, .L7F0D653C +/* 10B060 7F0D6530 AFA8028C */ sw $t0, 0x28c($sp) +/* 10B064 7F0D6534 100030B1 */ b .L7F0E27FC +/* 10B068 7F0D6538 32F400FF */ andi $s4, $s7, 0xff +.L7F0D653C: +/* 10B06C 7F0D653C 24010001 */ li $at, 1 +/* 10B070 7F0D6540 17210005 */ bne $t9, $at, .L7F0D6558 +/* 10B074 7F0D6544 97AD0294 */ lhu $t5, 0x294($sp) +/* 10B078 7F0D6548 97AB0296 */ lhu $t3, 0x296($sp) +/* 10B07C 7F0D654C 317800FF */ andi $t8, $t3, 0xff +/* 10B080 7F0D6550 10000003 */ b .L7F0D6560 +/* 10B084 7F0D6554 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6558: +/* 10B088 7F0D6558 31AA00FF */ andi $t2, $t5, 0xff +/* 10B08C 7F0D655C AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D6560: +/* 10B090 7F0D6560 100030A6 */ b .L7F0E27FC +/* 10B094 7F0D6564 93B4004B */ lbu $s4, 0x4b($sp) +spectrum_op_56: +/* 10B098 7F0D6568 8FAC028C */ lw $t4, 0x28c($sp) +/* 10B09C 7F0D656C 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B0A0 7F0D6570 00164200 */ sll $t0, $s6, 8 +/* 10B0A4 7F0D6574 25890007 */ addiu $t1, $t4, 7 +/* 10B0A8 7F0D6578 15C00004 */ bnez $t6, .L7F0D658C +/* 10B0AC 7F0D657C AFA9028C */ sw $t1, 0x28c($sp) +/* 10B0B0 7F0D6580 01177825 */ or $t7, $t0, $s7 +/* 10B0B4 7F0D6584 10000016 */ b .L7F0D65E0 +/* 10B0B8 7F0D6588 A7AF0208 */ sh $t7, 0x208($sp) +.L7F0D658C: +/* 10B0BC 7F0D658C 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B0C0 7F0D6590 93B80287 */ lbu $t8, 0x287($sp) +/* 10B0C4 7F0D6594 24010001 */ li $at, 1 +/* 10B0C8 7F0D6598 272B0008 */ addiu $t3, $t9, 8 +/* 10B0CC 7F0D659C 17010004 */ bne $t8, $at, .L7F0D65B0 +/* 10B0D0 7F0D65A0 AFAB028C */ sw $t3, 0x28c($sp) +/* 10B0D4 7F0D65A4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B0D8 7F0D65A8 10000003 */ b .L7F0D65B8 +/* 10B0DC 7F0D65AC AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D65B0: +/* 10B0E0 7F0D65B0 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B0E4 7F0D65B4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D65B8: +/* 10B0E8 7F0D65B8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10B0EC 7F0D65BC 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10B0F0 7F0D65C0 97AC0298 */ lhu $t4, 0x298($sp) +/* 10B0F4 7F0D65C4 8FAF0048 */ lw $t7, 0x48($sp) +/* 10B0F8 7F0D65C8 01897021 */ addu $t6, $t4, $t1 +/* 10B0FC 7F0D65CC 81C80000 */ lb $t0, ($t6) +/* 10B100 7F0D65D0 258B0001 */ addiu $t3, $t4, 1 +/* 10B104 7F0D65D4 A7AB0298 */ sh $t3, 0x298($sp) +/* 10B108 7F0D65D8 010FC821 */ addu $t9, $t0, $t7 +/* 10B10C 7F0D65DC A7B90208 */ sh $t9, 0x208($sp) +.L7F0D65E0: +/* 10B110 7F0D65E0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10B114 7F0D65E4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10B118 7F0D65E8 97B80208 */ lhu $t8, 0x208($sp) +/* 10B11C 7F0D65EC 030D5021 */ addu $t2, $t8, $t5 +/* 10B120 7F0D65F0 10003082 */ b .L7F0E27FC +/* 10B124 7F0D65F4 91540000 */ lbu $s4, ($t2) +spectrum_op_57: +/* 10B128 7F0D65F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B12C 7F0D65FC 321400FF */ andi $s4, $s0, 0xff +/* 10B130 7F0D6600 252E0004 */ addiu $t6, $t1, 4 +/* 10B134 7F0D6604 1000307D */ b .L7F0E27FC +/* 10B138 7F0D6608 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_58: +/* 10B13C 7F0D660C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B140 7F0D6610 325500FF */ andi $s5, $s2, 0xff +/* 10B144 7F0D6614 250F0004 */ addiu $t7, $t0, 4 +/* 10B148 7F0D6618 10003078 */ b .L7F0E27FC +/* 10B14C 7F0D661C AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_59: +/* 10B150 7F0D6620 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B154 7F0D6624 327500FF */ andi $s5, $s3, 0xff +/* 10B158 7F0D6628 272C0004 */ addiu $t4, $t9, 4 +/* 10B15C 7F0D662C 10003073 */ b .L7F0E27FC +/* 10B160 7F0D6630 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_5A: +/* 10B164 7F0D6634 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B168 7F0D6638 329500FF */ andi $s5, $s4, 0xff +/* 10B16C 7F0D663C 25780004 */ addiu $t8, $t3, 4 +/* 10B170 7F0D6640 1000306E */ b .L7F0E27FC +/* 10B174 7F0D6644 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_5B: +/* 10B178 7F0D6648 8FAD028C */ lw $t5, 0x28c($sp) +/* 10B17C 7F0D664C 25AA0004 */ addiu $t2, $t5, 4 +/* 10B180 7F0D6650 1000306A */ b .L7F0E27FC +/* 10B184 7F0D6654 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_5C: +/* 10B188 7F0D6658 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B18C 7F0D665C 93A80287 */ lbu $t0, 0x287($sp) +/* 10B190 7F0D6660 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B194 7F0D6664 252E0004 */ addiu $t6, $t1, 4 +/* 10B198 7F0D6668 15000003 */ bnez $t0, .L7F0D6678 +/* 10B19C 7F0D666C AFAE028C */ sw $t6, 0x28c($sp) +/* 10B1A0 7F0D6670 10003062 */ b .L7F0E27FC +/* 10B1A4 7F0D6674 32D500FF */ andi $s5, $s6, 0xff +.L7F0D6678: +/* 10B1A8 7F0D6678 24010001 */ li $at, 1 +/* 10B1AC 7F0D667C 15E10005 */ bne $t7, $at, .L7F0D6694 +/* 10B1B0 7F0D6680 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B1B4 7F0D6684 97B90296 */ lhu $t9, 0x296($sp) +/* 10B1B8 7F0D6688 00196203 */ sra $t4, $t9, 8 +/* 10B1BC 7F0D668C 10000003 */ b .L7F0D669C +/* 10B1C0 7F0D6690 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6694: +/* 10B1C4 7F0D6694 000BC203 */ sra $t8, $t3, 8 +/* 10B1C8 7F0D6698 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D669C: +/* 10B1CC 7F0D669C 10003057 */ b .L7F0E27FC +/* 10B1D0 7F0D66A0 93B5004B */ lbu $s5, 0x4b($sp) +spectrum_op_5D: +/* 10B1D4 7F0D66A4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10B1D8 7F0D66A8 93A90287 */ lbu $t1, 0x287($sp) +/* 10B1DC 7F0D66AC 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B1E0 7F0D66B0 25AA0004 */ addiu $t2, $t5, 4 +/* 10B1E4 7F0D66B4 15200003 */ bnez $t1, .L7F0D66C4 +/* 10B1E8 7F0D66B8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B1EC 7F0D66BC 1000304F */ b .L7F0E27FC +/* 10B1F0 7F0D66C0 32F500FF */ andi $s5, $s7, 0xff +.L7F0D66C4: +/* 10B1F4 7F0D66C4 24010001 */ li $at, 1 +/* 10B1F8 7F0D66C8 15C10005 */ bne $t6, $at, .L7F0D66E0 +/* 10B1FC 7F0D66CC 97B90294 */ lhu $t9, 0x294($sp) +/* 10B200 7F0D66D0 97A80296 */ lhu $t0, 0x296($sp) +/* 10B204 7F0D66D4 310F00FF */ andi $t7, $t0, 0xff +/* 10B208 7F0D66D8 10000003 */ b .L7F0D66E8 +/* 10B20C 7F0D66DC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D66E0: +/* 10B210 7F0D66E0 332C00FF */ andi $t4, $t9, 0xff +/* 10B214 7F0D66E4 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D66E8: +/* 10B218 7F0D66E8 10003044 */ b .L7F0E27FC +/* 10B21C 7F0D66EC 93B5004B */ lbu $s5, 0x4b($sp) +spectrum_op_5E: +/* 10B220 7F0D66F0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B224 7F0D66F4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B228 7F0D66F8 00165200 */ sll $t2, $s6, 8 +/* 10B22C 7F0D66FC 25780007 */ addiu $t8, $t3, 7 +/* 10B230 7F0D6700 15A00004 */ bnez $t5, .L7F0D6714 +/* 10B234 7F0D6704 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B238 7F0D6708 01574825 */ or $t1, $t2, $s7 +/* 10B23C 7F0D670C 10000016 */ b .L7F0D6768 +/* 10B240 7F0D6710 A7A90206 */ sh $t1, 0x206($sp) +.L7F0D6714: +/* 10B244 7F0D6714 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B248 7F0D6718 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B24C 7F0D671C 24010001 */ li $at, 1 +/* 10B250 7F0D6720 25C80008 */ addiu $t0, $t6, 8 +/* 10B254 7F0D6724 15E10004 */ bne $t7, $at, .L7F0D6738 +/* 10B258 7F0D6728 AFA8028C */ sw $t0, 0x28c($sp) +/* 10B25C 7F0D672C 97B90296 */ lhu $t9, 0x296($sp) +/* 10B260 7F0D6730 10000003 */ b .L7F0D6740 +/* 10B264 7F0D6734 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D6738: +/* 10B268 7F0D6738 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B26C 7F0D673C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6740: +/* 10B270 7F0D6740 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B274 7F0D6744 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10B278 7F0D6748 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B27C 7F0D674C 8FA90048 */ lw $t1, 0x48($sp) +/* 10B280 7F0D6750 01786821 */ addu $t5, $t3, $t8 +/* 10B284 7F0D6754 81AA0000 */ lb $t2, ($t5) +/* 10B288 7F0D6758 25680001 */ addiu $t0, $t3, 1 +/* 10B28C 7F0D675C A7A80298 */ sh $t0, 0x298($sp) +/* 10B290 7F0D6760 01497021 */ addu $t6, $t2, $t1 +/* 10B294 7F0D6764 A7AE0206 */ sh $t6, 0x206($sp) +.L7F0D6768: +/* 10B298 7F0D6768 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10B29C 7F0D676C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10B2A0 7F0D6770 97AF0206 */ lhu $t7, 0x206($sp) +/* 10B2A4 7F0D6774 01F96021 */ addu $t4, $t7, $t9 +/* 10B2A8 7F0D6778 10003020 */ b .L7F0E27FC +/* 10B2AC 7F0D677C 91950000 */ lbu $s5, ($t4) +spectrum_op_5F: +/* 10B2B0 7F0D6780 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B2B4 7F0D6784 321500FF */ andi $s5, $s0, 0xff +/* 10B2B8 7F0D6788 270D0004 */ addiu $t5, $t8, 4 +/* 10B2BC 7F0D678C 1000301B */ b .L7F0E27FC +/* 10B2C0 7F0D6790 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_60: +/* 10B2C4 7F0D6794 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B2C8 7F0D6798 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B2CC 7F0D679C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B2D0 7F0D67A0 25490004 */ addiu $t1, $t2, 4 +/* 10B2D4 7F0D67A4 15C00003 */ bnez $t6, .L7F0D67B4 +/* 10B2D8 7F0D67A8 AFA9028C */ sw $t1, 0x28c($sp) +/* 10B2DC 7F0D67AC 10003013 */ b .L7F0E27FC +/* 10B2E0 7F0D67B0 325600FF */ andi $s6, $s2, 0xff +.L7F0D67B4: +/* 10B2E4 7F0D67B4 24010001 */ li $at, 1 +/* 10B2E8 7F0D67B8 15610007 */ bne $t3, $at, .L7F0D67D8 +/* 10B2EC 7F0D67BC 97B80294 */ lhu $t8, 0x294($sp) +/* 10B2F0 7F0D67C0 97A80296 */ lhu $t0, 0x296($sp) +/* 10B2F4 7F0D67C4 0012CA00 */ sll $t9, $s2, 8 +/* 10B2F8 7F0D67C8 310F00FF */ andi $t7, $t0, 0xff +/* 10B2FC 7F0D67CC 01F96025 */ or $t4, $t7, $t9 +/* 10B300 7F0D67D0 1000300A */ b .L7F0E27FC +/* 10B304 7F0D67D4 A7AC0296 */ sh $t4, 0x296($sp) +.L7F0D67D8: +/* 10B308 7F0D67D8 330D00FF */ andi $t5, $t8, 0xff +/* 10B30C 7F0D67DC 00125200 */ sll $t2, $s2, 8 +/* 10B310 7F0D67E0 01AA4825 */ or $t1, $t5, $t2 +/* 10B314 7F0D67E4 10003005 */ b .L7F0E27FC +/* 10B318 7F0D67E8 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_61: +/* 10B31C 7F0D67EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B320 7F0D67F0 93A80287 */ lbu $t0, 0x287($sp) +/* 10B324 7F0D67F4 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B328 7F0D67F8 25CB0004 */ addiu $t3, $t6, 4 +/* 10B32C 7F0D67FC 15000003 */ bnez $t0, .L7F0D680C +/* 10B330 7F0D6800 AFAB028C */ sw $t3, 0x28c($sp) +/* 10B334 7F0D6804 10002FFD */ b .L7F0E27FC +/* 10B338 7F0D6808 327600FF */ andi $s6, $s3, 0xff +.L7F0D680C: +/* 10B33C 7F0D680C 24010001 */ li $at, 1 +/* 10B340 7F0D6810 15E10007 */ bne $t7, $at, .L7F0D6830 +/* 10B344 7F0D6814 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B348 7F0D6818 97B90296 */ lhu $t9, 0x296($sp) +/* 10B34C 7F0D681C 0013C200 */ sll $t8, $s3, 8 +/* 10B350 7F0D6820 332C00FF */ andi $t4, $t9, 0xff +/* 10B354 7F0D6824 01986825 */ or $t5, $t4, $t8 +/* 10B358 7F0D6828 10002FF4 */ b .L7F0E27FC +/* 10B35C 7F0D682C A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D6830: +/* 10B360 7F0D6830 314900FF */ andi $t1, $t2, 0xff +/* 10B364 7F0D6834 00137200 */ sll $t6, $s3, 8 +/* 10B368 7F0D6838 012E5825 */ or $t3, $t1, $t6 +/* 10B36C 7F0D683C 10002FEF */ b .L7F0E27FC +/* 10B370 7F0D6840 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_62: +/* 10B374 7F0D6844 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B378 7F0D6848 93B90287 */ lbu $t9, 0x287($sp) +/* 10B37C 7F0D684C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B380 7F0D6850 250F0004 */ addiu $t7, $t0, 4 +/* 10B384 7F0D6854 17200003 */ bnez $t9, .L7F0D6864 +/* 10B388 7F0D6858 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B38C 7F0D685C 10002FE7 */ b .L7F0E27FC +/* 10B390 7F0D6860 329600FF */ andi $s6, $s4, 0xff +.L7F0D6864: +/* 10B394 7F0D6864 24010001 */ li $at, 1 +/* 10B398 7F0D6868 15810007 */ bne $t4, $at, .L7F0D6888 +/* 10B39C 7F0D686C 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B3A0 7F0D6870 97B80296 */ lhu $t8, 0x296($sp) +/* 10B3A4 7F0D6874 00145200 */ sll $t2, $s4, 8 +/* 10B3A8 7F0D6878 330D00FF */ andi $t5, $t8, 0xff +/* 10B3AC 7F0D687C 01AA4825 */ or $t1, $t5, $t2 +/* 10B3B0 7F0D6880 10002FDE */ b .L7F0E27FC +/* 10B3B4 7F0D6884 A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6888: +/* 10B3B8 7F0D6888 31CB00FF */ andi $t3, $t6, 0xff +/* 10B3BC 7F0D688C 00144200 */ sll $t0, $s4, 8 +/* 10B3C0 7F0D6890 01687825 */ or $t7, $t3, $t0 +/* 10B3C4 7F0D6894 10002FD9 */ b .L7F0E27FC +/* 10B3C8 7F0D6898 A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_63: +/* 10B3CC 7F0D689C 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B3D0 7F0D68A0 93B80287 */ lbu $t8, 0x287($sp) +/* 10B3D4 7F0D68A4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B3D8 7F0D68A8 272C0004 */ addiu $t4, $t9, 4 +/* 10B3DC 7F0D68AC 17000003 */ bnez $t8, .L7F0D68BC +/* 10B3E0 7F0D68B0 AFAC028C */ sw $t4, 0x28c($sp) +/* 10B3E4 7F0D68B4 10002FD1 */ b .L7F0E27FC +/* 10B3E8 7F0D68B8 32B600FF */ andi $s6, $s5, 0xff +.L7F0D68BC: +/* 10B3EC 7F0D68BC 24010001 */ li $at, 1 +/* 10B3F0 7F0D68C0 15A10007 */ bne $t5, $at, .L7F0D68E0 +/* 10B3F4 7F0D68C4 97A80294 */ lhu $t0, 0x294($sp) +/* 10B3F8 7F0D68C8 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B3FC 7F0D68CC 00157200 */ sll $t6, $s5, 8 +/* 10B400 7F0D68D0 314900FF */ andi $t1, $t2, 0xff +/* 10B404 7F0D68D4 012E5825 */ or $t3, $t1, $t6 +/* 10B408 7F0D68D8 10002FC8 */ b .L7F0E27FC +/* 10B40C 7F0D68DC A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D68E0: +/* 10B410 7F0D68E0 310F00FF */ andi $t7, $t0, 0xff +/* 10B414 7F0D68E4 0015CA00 */ sll $t9, $s5, 8 +/* 10B418 7F0D68E8 01F96025 */ or $t4, $t7, $t9 +/* 10B41C 7F0D68EC 10002FC3 */ b .L7F0E27FC +/* 10B420 7F0D68F0 A7AC0294 */ sh $t4, 0x294($sp) +spectrum_op_64: +/* 10B424 7F0D68F4 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B428 7F0D68F8 270D0004 */ addiu $t5, $t8, 4 +/* 10B42C 7F0D68FC 10002FBF */ b .L7F0E27FC +/* 10B430 7F0D6900 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_65: +/* 10B434 7F0D6904 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B438 7F0D6908 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B43C 7F0D690C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B440 7F0D6910 25490004 */ addiu $t1, $t2, 4 +/* 10B444 7F0D6914 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10B448 7F0D6918 11600010 */ beqz $t3, .L7F0D695C +/* 10B44C 7F0D691C AFA9028C */ sw $t1, 0x28c($sp) +/* 10B450 7F0D6920 11600003 */ beqz $t3, .L7F0D6930 +/* 10B454 7F0D6924 93A80287 */ lbu $t0, 0x287($sp) +/* 10B458 7F0D6928 10002FB4 */ b .L7F0E27FC +/* 10B45C 7F0D692C 32F600FF */ andi $s6, $s7, 0xff +.L7F0D6930: +/* 10B460 7F0D6930 24010001 */ li $at, 1 +/* 10B464 7F0D6934 15010005 */ bne $t0, $at, .L7F0D694C +/* 10B468 7F0D6938 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B46C 7F0D693C 97AF0296 */ lhu $t7, 0x296($sp) +/* 10B470 7F0D6940 31F900FF */ andi $t9, $t7, 0xff +/* 10B474 7F0D6944 10000003 */ b .L7F0D6954 +/* 10B478 7F0D6948 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D694C: +/* 10B47C 7F0D694C 319800FF */ andi $t8, $t4, 0xff +/* 10B480 7F0D6950 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6954: +/* 10B484 7F0D6954 10002FA9 */ b .L7F0E27FC +/* 10B488 7F0D6958 93B6004B */ lbu $s6, 0x4b($sp) +.L7F0D695C: +/* 10B48C 7F0D695C 24010001 */ li $at, 1 +/* 10B490 7F0D6960 15A10017 */ bne $t5, $at, .L7F0D69C0 +/* 10B494 7F0D6964 93A90287 */ lbu $t1, 0x287($sp) +/* 10B498 7F0D6968 15A00003 */ bnez $t5, .L7F0D6978 +/* 10B49C 7F0D696C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10B4A0 7F0D6970 1000000C */ b .L7F0D69A4 +/* 10B4A4 7F0D6974 AFB70044 */ sw $s7, 0x44($sp) +.L7F0D6978: +/* 10B4A8 7F0D6978 24010001 */ li $at, 1 +/* 10B4AC 7F0D697C 15410005 */ bne $t2, $at, .L7F0D6994 +/* 10B4B0 7F0D6980 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B4B4 7F0D6984 97A90296 */ lhu $t1, 0x296($sp) +/* 10B4B8 7F0D6988 312E00FF */ andi $t6, $t1, 0xff +/* 10B4BC 7F0D698C 10000003 */ b .L7F0D699C +/* 10B4C0 7F0D6990 AFAE0040 */ sw $t6, 0x40($sp) +.L7F0D6994: +/* 10B4C4 7F0D6994 316800FF */ andi $t0, $t3, 0xff +/* 10B4C8 7F0D6998 AFA80040 */ sw $t0, 0x40($sp) +.L7F0D699C: +/* 10B4CC 7F0D699C 8FAF0040 */ lw $t7, 0x40($sp) +/* 10B4D0 7F0D69A0 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D69A4: +/* 10B4D4 7F0D69A4 8FB90044 */ lw $t9, 0x44($sp) +/* 10B4D8 7F0D69A8 97B80296 */ lhu $t8, 0x296($sp) +/* 10B4DC 7F0D69AC 00196200 */ sll $t4, $t9, 8 +/* 10B4E0 7F0D69B0 330D00FF */ andi $t5, $t8, 0xff +/* 10B4E4 7F0D69B4 018D5025 */ or $t2, $t4, $t5 +/* 10B4E8 7F0D69B8 10002F90 */ b .L7F0E27FC +/* 10B4EC 7F0D69BC A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D69C0: +/* 10B4F0 7F0D69C0 15200003 */ bnez $t1, .L7F0D69D0 +/* 10B4F4 7F0D69C4 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B4F8 7F0D69C8 1000000C */ b .L7F0D69FC +/* 10B4FC 7F0D69CC AFB7003C */ sw $s7, 0x3c($sp) +.L7F0D69D0: +/* 10B500 7F0D69D0 24010001 */ li $at, 1 +/* 10B504 7F0D69D4 15C10005 */ bne $t6, $at, .L7F0D69EC +/* 10B508 7F0D69D8 97AF0294 */ lhu $t7, 0x294($sp) +/* 10B50C 7F0D69DC 97AB0296 */ lhu $t3, 0x296($sp) +/* 10B510 7F0D69E0 316800FF */ andi $t0, $t3, 0xff +/* 10B514 7F0D69E4 10000003 */ b .L7F0D69F4 +/* 10B518 7F0D69E8 AFA80038 */ sw $t0, 0x38($sp) +.L7F0D69EC: +/* 10B51C 7F0D69EC 31F900FF */ andi $t9, $t7, 0xff +/* 10B520 7F0D69F0 AFB90038 */ sw $t9, 0x38($sp) +.L7F0D69F4: +/* 10B524 7F0D69F4 8FB80038 */ lw $t8, 0x38($sp) +/* 10B528 7F0D69F8 AFB8003C */ sw $t8, 0x3c($sp) +.L7F0D69FC: +/* 10B52C 7F0D69FC 8FAC003C */ lw $t4, 0x3c($sp) +/* 10B530 7F0D6A00 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B534 7F0D6A04 000C6A00 */ sll $t5, $t4, 8 +/* 10B538 7F0D6A08 314900FF */ andi $t1, $t2, 0xff +/* 10B53C 7F0D6A0C 01A97025 */ or $t6, $t5, $t1 +/* 10B540 7F0D6A10 10002F7A */ b .L7F0E27FC +/* 10B544 7F0D6A14 A7AE0294 */ sh $t6, 0x294($sp) +spectrum_op_66: +/* 10B548 7F0D6A18 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B54C 7F0D6A1C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B550 7F0D6A20 0016CA00 */ sll $t9, $s6, 8 +/* 10B554 7F0D6A24 25680007 */ addiu $t0, $t3, 7 +/* 10B558 7F0D6A28 15E00004 */ bnez $t7, .L7F0D6A3C +/* 10B55C 7F0D6A2C AFA8028C */ sw $t0, 0x28c($sp) +/* 10B560 7F0D6A30 0337C025 */ or $t8, $t9, $s7 +/* 10B564 7F0D6A34 10000016 */ b .L7F0D6A90 +/* 10B568 7F0D6A38 A7B80204 */ sh $t8, 0x204($sp) +.L7F0D6A3C: +/* 10B56C 7F0D6A3C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10B570 7F0D6A40 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B574 7F0D6A44 24010001 */ li $at, 1 +/* 10B578 7F0D6A48 258A0008 */ addiu $t2, $t4, 8 +/* 10B57C 7F0D6A4C 15A10004 */ bne $t5, $at, .L7F0D6A60 +/* 10B580 7F0D6A50 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B584 7F0D6A54 97A90296 */ lhu $t1, 0x296($sp) +/* 10B588 7F0D6A58 10000003 */ b .L7F0D6A68 +/* 10B58C 7F0D6A5C AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6A60: +/* 10B590 7F0D6A60 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B594 7F0D6A64 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6A68: +/* 10B598 7F0D6A68 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10B59C 7F0D6A6C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10B5A0 7F0D6A70 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B5A4 7F0D6A74 8FB80048 */ lw $t8, 0x48($sp) +/* 10B5A8 7F0D6A78 01687821 */ addu $t7, $t3, $t0 +/* 10B5AC 7F0D6A7C 81F90000 */ lb $t9, ($t7) +/* 10B5B0 7F0D6A80 256A0001 */ addiu $t2, $t3, 1 +/* 10B5B4 7F0D6A84 A7AA0298 */ sh $t2, 0x298($sp) +/* 10B5B8 7F0D6A88 03386021 */ addu $t4, $t9, $t8 +/* 10B5BC 7F0D6A8C A7AC0204 */ sh $t4, 0x204($sp) +.L7F0D6A90: +/* 10B5C0 7F0D6A90 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10B5C4 7F0D6A94 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10B5C8 7F0D6A98 97AD0204 */ lhu $t5, 0x204($sp) +/* 10B5CC 7F0D6A9C 01A97021 */ addu $t6, $t5, $t1 +/* 10B5D0 7F0D6AA0 10002F56 */ b .L7F0E27FC +/* 10B5D4 7F0D6AA4 91D60000 */ lbu $s6, ($t6) +spectrum_op_67: +/* 10B5D8 7F0D6AA8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B5DC 7F0D6AAC 93B90287 */ lbu $t9, 0x287($sp) +/* 10B5E0 7F0D6AB0 93B80287 */ lbu $t8, 0x287($sp) +/* 10B5E4 7F0D6AB4 250F0004 */ addiu $t7, $t0, 4 +/* 10B5E8 7F0D6AB8 17200003 */ bnez $t9, .L7F0D6AC8 +/* 10B5EC 7F0D6ABC AFAF028C */ sw $t7, 0x28c($sp) +/* 10B5F0 7F0D6AC0 10002F4E */ b .L7F0E27FC +/* 10B5F4 7F0D6AC4 321600FF */ andi $s6, $s0, 0xff +.L7F0D6AC8: +/* 10B5F8 7F0D6AC8 24010001 */ li $at, 1 +/* 10B5FC 7F0D6ACC 17010007 */ bne $t8, $at, .L7F0D6AEC +/* 10B600 7F0D6AD0 97A90294 */ lhu $t1, 0x294($sp) +/* 10B604 7F0D6AD4 97AC0296 */ lhu $t4, 0x296($sp) +/* 10B608 7F0D6AD8 00105200 */ sll $t2, $s0, 8 +/* 10B60C 7F0D6ADC 318B00FF */ andi $t3, $t4, 0xff +/* 10B610 7F0D6AE0 016A6825 */ or $t5, $t3, $t2 +/* 10B614 7F0D6AE4 10002F45 */ b .L7F0E27FC +/* 10B618 7F0D6AE8 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D6AEC: +/* 10B61C 7F0D6AEC 312E00FF */ andi $t6, $t1, 0xff +/* 10B620 7F0D6AF0 00104200 */ sll $t0, $s0, 8 +/* 10B624 7F0D6AF4 01C87825 */ or $t7, $t6, $t0 +/* 10B628 7F0D6AF8 10002F40 */ b .L7F0E27FC +/* 10B62C 7F0D6AFC A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_68: +/* 10B630 7F0D6B00 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B634 7F0D6B04 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B638 7F0D6B08 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B63C 7F0D6B0C 27380004 */ addiu $t8, $t9, 4 +/* 10B640 7F0D6B10 15800003 */ bnez $t4, .L7F0D6B20 +/* 10B644 7F0D6B14 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B648 7F0D6B18 10002F38 */ b .L7F0E27FC +/* 10B64C 7F0D6B1C 325700FF */ andi $s7, $s2, 0xff +.L7F0D6B20: +/* 10B650 7F0D6B20 24010001 */ li $at, 1 +/* 10B654 7F0D6B24 15610006 */ bne $t3, $at, .L7F0D6B40 +/* 10B658 7F0D6B28 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B65C 7F0D6B2C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B660 7F0D6B30 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B664 7F0D6B34 01B24825 */ or $t1, $t5, $s2 +/* 10B668 7F0D6B38 10002F30 */ b .L7F0E27FC +/* 10B66C 7F0D6B3C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6B40: +/* 10B670 7F0D6B40 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B674 7F0D6B44 01127825 */ or $t7, $t0, $s2 +/* 10B678 7F0D6B48 10002F2C */ b .L7F0E27FC +/* 10B67C 7F0D6B4C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_69: +/* 10B680 7F0D6B50 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B684 7F0D6B54 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B688 7F0D6B58 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B68C 7F0D6B5C 27380004 */ addiu $t8, $t9, 4 +/* 10B690 7F0D6B60 15800003 */ bnez $t4, .L7F0D6B70 +/* 10B694 7F0D6B64 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B698 7F0D6B68 10002F24 */ b .L7F0E27FC +/* 10B69C 7F0D6B6C 327700FF */ andi $s7, $s3, 0xff +.L7F0D6B70: +/* 10B6A0 7F0D6B70 24010001 */ li $at, 1 +/* 10B6A4 7F0D6B74 15610006 */ bne $t3, $at, .L7F0D6B90 +/* 10B6A8 7F0D6B78 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B6AC 7F0D6B7C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B6B0 7F0D6B80 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B6B4 7F0D6B84 01B34825 */ or $t1, $t5, $s3 +/* 10B6B8 7F0D6B88 10002F1C */ b .L7F0E27FC +/* 10B6BC 7F0D6B8C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6B90: +/* 10B6C0 7F0D6B90 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B6C4 7F0D6B94 01137825 */ or $t7, $t0, $s3 +/* 10B6C8 7F0D6B98 10002F18 */ b .L7F0E27FC +/* 10B6CC 7F0D6B9C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6A: +/* 10B6D0 7F0D6BA0 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B6D4 7F0D6BA4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B6D8 7F0D6BA8 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B6DC 7F0D6BAC 27380004 */ addiu $t8, $t9, 4 +/* 10B6E0 7F0D6BB0 15800003 */ bnez $t4, .L7F0D6BC0 +/* 10B6E4 7F0D6BB4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B6E8 7F0D6BB8 10002F10 */ b .L7F0E27FC +/* 10B6EC 7F0D6BBC 329700FF */ andi $s7, $s4, 0xff +.L7F0D6BC0: +/* 10B6F0 7F0D6BC0 24010001 */ li $at, 1 +/* 10B6F4 7F0D6BC4 15610006 */ bne $t3, $at, .L7F0D6BE0 +/* 10B6F8 7F0D6BC8 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B6FC 7F0D6BCC 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B700 7F0D6BD0 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B704 7F0D6BD4 01B44825 */ or $t1, $t5, $s4 +/* 10B708 7F0D6BD8 10002F08 */ b .L7F0E27FC +/* 10B70C 7F0D6BDC A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6BE0: +/* 10B710 7F0D6BE0 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B714 7F0D6BE4 01147825 */ or $t7, $t0, $s4 +/* 10B718 7F0D6BE8 10002F04 */ b .L7F0E27FC +/* 10B71C 7F0D6BEC A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6B: +/* 10B720 7F0D6BF0 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B724 7F0D6BF4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B728 7F0D6BF8 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B72C 7F0D6BFC 27380004 */ addiu $t8, $t9, 4 +/* 10B730 7F0D6C00 15800003 */ bnez $t4, .L7F0D6C10 +/* 10B734 7F0D6C04 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B738 7F0D6C08 10002EFC */ b .L7F0E27FC +/* 10B73C 7F0D6C0C 32B700FF */ andi $s7, $s5, 0xff +.L7F0D6C10: +/* 10B740 7F0D6C10 24010001 */ li $at, 1 +/* 10B744 7F0D6C14 15610006 */ bne $t3, $at, .L7F0D6C30 +/* 10B748 7F0D6C18 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B74C 7F0D6C1C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B750 7F0D6C20 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B754 7F0D6C24 01B54825 */ or $t1, $t5, $s5 +/* 10B758 7F0D6C28 10002EF4 */ b .L7F0E27FC +/* 10B75C 7F0D6C2C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6C30: +/* 10B760 7F0D6C30 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B764 7F0D6C34 01157825 */ or $t7, $t0, $s5 +/* 10B768 7F0D6C38 10002EF0 */ b .L7F0E27FC +/* 10B76C 7F0D6C3C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6C: +/* 10B770 7F0D6C40 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B774 7F0D6C44 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B778 7F0D6C48 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B77C 7F0D6C4C 27380004 */ addiu $t8, $t9, 4 +/* 10B780 7F0D6C50 2D8B0001 */ sltiu $t3, $t4, 1 +/* 10B784 7F0D6C54 11600010 */ beqz $t3, .L7F0D6C98 +/* 10B788 7F0D6C58 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B78C 7F0D6C5C 11600003 */ beqz $t3, .L7F0D6C6C +/* 10B790 7F0D6C60 93AA0287 */ lbu $t2, 0x287($sp) +/* 10B794 7F0D6C64 10002EE5 */ b .L7F0E27FC +/* 10B798 7F0D6C68 32D700FF */ andi $s7, $s6, 0xff +.L7F0D6C6C: +/* 10B79C 7F0D6C6C 24010001 */ li $at, 1 +/* 10B7A0 7F0D6C70 15410005 */ bne $t2, $at, .L7F0D6C88 +/* 10B7A4 7F0D6C74 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B7A8 7F0D6C78 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B7AC 7F0D6C7C 000D4A03 */ sra $t1, $t5, 8 +/* 10B7B0 7F0D6C80 10000003 */ b .L7F0D6C90 +/* 10B7B4 7F0D6C84 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6C88: +/* 10B7B8 7F0D6C88 000E4203 */ sra $t0, $t6, 8 +/* 10B7BC 7F0D6C8C AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6C90: +/* 10B7C0 7F0D6C90 10002EDA */ b .L7F0E27FC +/* 10B7C4 7F0D6C94 93B7004B */ lbu $s7, 0x4b($sp) +.L7F0D6C98: +/* 10B7C8 7F0D6C98 24010001 */ li $at, 1 +/* 10B7CC 7F0D6C9C 15E10016 */ bne $t7, $at, .L7F0D6CF8 +/* 10B7D0 7F0D6CA0 93B90287 */ lbu $t9, 0x287($sp) +/* 10B7D4 7F0D6CA4 15E00003 */ bnez $t7, .L7F0D6CB4 +/* 10B7D8 7F0D6CA8 93B90287 */ lbu $t9, 0x287($sp) +/* 10B7DC 7F0D6CAC 1000000C */ b .L7F0D6CE0 +/* 10B7E0 7F0D6CB0 AFB60044 */ sw $s6, 0x44($sp) +.L7F0D6CB4: +/* 10B7E4 7F0D6CB4 24010001 */ li $at, 1 +/* 10B7E8 7F0D6CB8 17210005 */ bne $t9, $at, .L7F0D6CD0 +/* 10B7EC 7F0D6CBC 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B7F0 7F0D6CC0 97B80296 */ lhu $t8, 0x296($sp) +/* 10B7F4 7F0D6CC4 00186203 */ sra $t4, $t8, 8 +/* 10B7F8 7F0D6CC8 10000003 */ b .L7F0D6CD8 +/* 10B7FC 7F0D6CCC AFAC0040 */ sw $t4, 0x40($sp) +.L7F0D6CD0: +/* 10B800 7F0D6CD0 000B5203 */ sra $t2, $t3, 8 +/* 10B804 7F0D6CD4 AFAA0040 */ sw $t2, 0x40($sp) +.L7F0D6CD8: +/* 10B808 7F0D6CD8 8FAD0040 */ lw $t5, 0x40($sp) +/* 10B80C 7F0D6CDC AFAD0044 */ sw $t5, 0x44($sp) +.L7F0D6CE0: +/* 10B810 7F0D6CE0 97AE0296 */ lhu $t6, 0x296($sp) +/* 10B814 7F0D6CE4 8FA90044 */ lw $t1, 0x44($sp) +/* 10B818 7F0D6CE8 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B81C 7F0D6CEC 01287825 */ or $t7, $t1, $t0 +/* 10B820 7F0D6CF0 10002EC2 */ b .L7F0E27FC +/* 10B824 7F0D6CF4 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D6CF8: +/* 10B828 7F0D6CF8 17200003 */ bnez $t9, .L7F0D6D08 +/* 10B82C 7F0D6CFC 93B80287 */ lbu $t8, 0x287($sp) +/* 10B830 7F0D6D00 1000000C */ b .L7F0D6D34 +/* 10B834 7F0D6D04 AFB6003C */ sw $s6, 0x3c($sp) +.L7F0D6D08: +/* 10B838 7F0D6D08 24010001 */ li $at, 1 +/* 10B83C 7F0D6D0C 17010005 */ bne $t8, $at, .L7F0D6D24 +/* 10B840 7F0D6D10 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B844 7F0D6D14 97AC0296 */ lhu $t4, 0x296($sp) +/* 10B848 7F0D6D18 000C5A03 */ sra $t3, $t4, 8 +/* 10B84C 7F0D6D1C 10000003 */ b .L7F0D6D2C +/* 10B850 7F0D6D20 AFAB0038 */ sw $t3, 0x38($sp) +.L7F0D6D24: +/* 10B854 7F0D6D24 000A6A03 */ sra $t5, $t2, 8 +/* 10B858 7F0D6D28 AFAD0038 */ sw $t5, 0x38($sp) +.L7F0D6D2C: +/* 10B85C 7F0D6D2C 8FAE0038 */ lw $t6, 0x38($sp) +/* 10B860 7F0D6D30 AFAE003C */ sw $t6, 0x3c($sp) +.L7F0D6D34: +/* 10B864 7F0D6D34 97A80294 */ lhu $t0, 0x294($sp) +/* 10B868 7F0D6D38 8FA9003C */ lw $t1, 0x3c($sp) +/* 10B86C 7F0D6D3C 310FFF00 */ andi $t7, $t0, 0xff00 +/* 10B870 7F0D6D40 012FC825 */ or $t9, $t1, $t7 +/* 10B874 7F0D6D44 10002EAD */ b .L7F0E27FC +/* 10B878 7F0D6D48 A7B90294 */ sh $t9, 0x294($sp) +spectrum_op_6D: +/* 10B87C 7F0D6D4C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B880 7F0D6D50 270C0004 */ addiu $t4, $t8, 4 +/* 10B884 7F0D6D54 10002EA9 */ b .L7F0E27FC +/* 10B888 7F0D6D58 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_6E: +/* 10B88C 7F0D6D5C 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B890 7F0D6D60 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B894 7F0D6D64 00167200 */ sll $t6, $s6, 8 +/* 10B898 7F0D6D68 256A0007 */ addiu $t2, $t3, 7 +/* 10B89C 7F0D6D6C 15A00004 */ bnez $t5, .L7F0D6D80 +/* 10B8A0 7F0D6D70 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B8A4 7F0D6D74 01D74025 */ or $t0, $t6, $s7 +/* 10B8A8 7F0D6D78 10000016 */ b .L7F0D6DD4 +/* 10B8AC 7F0D6D7C A7A80202 */ sh $t0, 0x202($sp) +.L7F0D6D80: +/* 10B8B0 7F0D6D80 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B8B4 7F0D6D84 93B90287 */ lbu $t9, 0x287($sp) +/* 10B8B8 7F0D6D88 24010001 */ li $at, 1 +/* 10B8BC 7F0D6D8C 252F0008 */ addiu $t7, $t1, 8 +/* 10B8C0 7F0D6D90 17210004 */ bne $t9, $at, .L7F0D6DA4 +/* 10B8C4 7F0D6D94 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B8C8 7F0D6D98 97B80296 */ lhu $t8, 0x296($sp) +/* 10B8CC 7F0D6D9C 10000003 */ b .L7F0D6DAC +/* 10B8D0 7F0D6DA0 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6DA4: +/* 10B8D4 7F0D6DA4 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B8D8 7F0D6DA8 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6DAC: +/* 10B8DC 7F0D6DAC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10B8E0 7F0D6DB0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10B8E4 7F0D6DB4 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B8E8 7F0D6DB8 8FA80048 */ lw $t0, 0x48($sp) +/* 10B8EC 7F0D6DBC 016A6821 */ addu $t5, $t3, $t2 +/* 10B8F0 7F0D6DC0 81AE0000 */ lb $t6, ($t5) +/* 10B8F4 7F0D6DC4 256F0001 */ addiu $t7, $t3, 1 +/* 10B8F8 7F0D6DC8 A7AF0298 */ sh $t7, 0x298($sp) +/* 10B8FC 7F0D6DCC 01C84821 */ addu $t1, $t6, $t0 +/* 10B900 7F0D6DD0 A7A90202 */ sh $t1, 0x202($sp) +.L7F0D6DD4: +/* 10B904 7F0D6DD4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B908 7F0D6DD8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10B90C 7F0D6DDC 97B90202 */ lhu $t9, 0x202($sp) +/* 10B910 7F0D6DE0 03386021 */ addu $t4, $t9, $t8 +/* 10B914 7F0D6DE4 10002E85 */ b .L7F0E27FC +/* 10B918 7F0D6DE8 91970000 */ lbu $s7, ($t4) +spectrum_op_6F: +/* 10B91C 7F0D6DEC 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B920 7F0D6DF0 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B924 7F0D6DF4 93A80287 */ lbu $t0, 0x287($sp) +/* 10B928 7F0D6DF8 254D0004 */ addiu $t5, $t2, 4 +/* 10B92C 7F0D6DFC 15C00003 */ bnez $t6, .L7F0D6E0C +/* 10B930 7F0D6E00 AFAD028C */ sw $t5, 0x28c($sp) +/* 10B934 7F0D6E04 10002E7D */ b .L7F0E27FC +/* 10B938 7F0D6E08 321700FF */ andi $s7, $s0, 0xff +.L7F0D6E0C: +/* 10B93C 7F0D6E0C 24010001 */ li $at, 1 +/* 10B940 7F0D6E10 15010006 */ bne $t0, $at, .L7F0D6E2C +/* 10B944 7F0D6E14 97B90294 */ lhu $t9, 0x294($sp) +/* 10B948 7F0D6E18 97A90296 */ lhu $t1, 0x296($sp) +/* 10B94C 7F0D6E1C 312BFF00 */ andi $t3, $t1, 0xff00 +/* 10B950 7F0D6E20 01707825 */ or $t7, $t3, $s0 +/* 10B954 7F0D6E24 10002E75 */ b .L7F0E27FC +/* 10B958 7F0D6E28 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D6E2C: +/* 10B95C 7F0D6E2C 3338FF00 */ andi $t8, $t9, 0xff00 +/* 10B960 7F0D6E30 03106025 */ or $t4, $t8, $s0 +/* 10B964 7F0D6E34 10002E71 */ b .L7F0E27FC +/* 10B968 7F0D6E38 A7AC0294 */ sh $t4, 0x294($sp) +spectrum_op_70: +/* 10B96C 7F0D6E3C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B970 7F0D6E40 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B974 7F0D6E44 00164200 */ sll $t0, $s6, 8 +/* 10B978 7F0D6E48 254D0007 */ addiu $t5, $t2, 7 +/* 10B97C 7F0D6E4C 15C00004 */ bnez $t6, .L7F0D6E60 +/* 10B980 7F0D6E50 AFAD028C */ sw $t5, 0x28c($sp) +/* 10B984 7F0D6E54 01174825 */ or $t1, $t0, $s7 +/* 10B988 7F0D6E58 10000016 */ b .L7F0D6EB4 +/* 10B98C 7F0D6E5C A7A90200 */ sh $t1, 0x200($sp) +.L7F0D6E60: +/* 10B990 7F0D6E60 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B994 7F0D6E64 93B90287 */ lbu $t9, 0x287($sp) +/* 10B998 7F0D6E68 24010001 */ li $at, 1 +/* 10B99C 7F0D6E6C 256F0008 */ addiu $t7, $t3, 8 +/* 10B9A0 7F0D6E70 17210004 */ bne $t9, $at, .L7F0D6E84 +/* 10B9A4 7F0D6E74 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B9A8 7F0D6E78 97B80296 */ lhu $t8, 0x296($sp) +/* 10B9AC 7F0D6E7C 10000003 */ b .L7F0D6E8C +/* 10B9B0 7F0D6E80 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6E84: +/* 10B9B4 7F0D6E84 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B9B8 7F0D6E88 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6E8C: +/* 10B9BC 7F0D6E8C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10B9C0 7F0D6E90 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10B9C4 7F0D6E94 97AA0298 */ lhu $t2, 0x298($sp) +/* 10B9C8 7F0D6E98 8FA90048 */ lw $t1, 0x48($sp) +/* 10B9CC 7F0D6E9C 014D7021 */ addu $t6, $t2, $t5 +/* 10B9D0 7F0D6EA0 81C80000 */ lb $t0, ($t6) +/* 10B9D4 7F0D6EA4 254F0001 */ addiu $t7, $t2, 1 +/* 10B9D8 7F0D6EA8 A7AF0298 */ sh $t7, 0x298($sp) +/* 10B9DC 7F0D6EAC 01095821 */ addu $t3, $t0, $t1 +/* 10B9E0 7F0D6EB0 A7AB0200 */ sh $t3, 0x200($sp) +.L7F0D6EB4: +/* 10B9E4 7F0D6EB4 97B90200 */ lhu $t9, 0x200($sp) +/* 10B9E8 7F0D6EB8 97AD0200 */ lhu $t5, 0x200($sp) +/* 10B9EC 7F0D6EBC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B9F0 7F0D6EC0 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10B9F4 7F0D6EC4 54200006 */ bnezl $at, .L7F0D6EE0 +/* 10B9F8 7F0D6EC8 29A15800 */ slti $at, $t5, 0x5800 +/* 10B9FC 7F0D6ECC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10BA00 7F0D6ED0 03196021 */ addu $t4, $t8, $t9 +/* 10BA04 7F0D6ED4 10002E49 */ b .L7F0E27FC +/* 10BA08 7F0D6ED8 A1920000 */ sb $s2, ($t4) +/* 10BA0C 7F0D6EDC 29A15800 */ slti $at, $t5, 0x5800 +.L7F0D6EE0: +/* 10BA10 7F0D6EE0 1420000C */ bnez $at, .L7F0D6F14 +/* 10BA14 7F0D6EE4 97B80200 */ lhu $t8, 0x200($sp) +/* 10BA18 7F0D6EE8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BA1C 7F0D6EEC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BA20 7F0D6EF0 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10BA24 7F0D6EF4 24090001 */ li $t1, 1 +/* 10BA28 7F0D6EF8 01CD4021 */ addu $t0, $t6, $t5 +/* 10BA2C 7F0D6EFC A1120000 */ sb $s2, ($t0) +/* 10BA30 7F0D6F00 97AA0200 */ lhu $t2, 0x200($sp) +/* 10BA34 7F0D6F04 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10BA38 7F0D6F08 016A7821 */ addu $t7, $t3, $t2 +/* 10BA3C 7F0D6F0C 10002E3B */ b .L7F0E27FC +/* 10BA40 7F0D6F10 A1E9A800 */ sb $t1, -0x5800($t7) +.L7F0D6F14: +/* 10BA44 7F0D6F14 2B014000 */ slti $at, $t8, 0x4000 +/* 10BA48 7F0D6F18 14202E38 */ bnez $at, .L7F0E27FC +/* 10BA4C 7F0D6F1C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BA50 7F0D6F20 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BA54 7F0D6F24 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BA58 7F0D6F28 240E0001 */ li $t6, 1 +/* 10BA5C 7F0D6F2C 03386021 */ addu $t4, $t9, $t8 +/* 10BA60 7F0D6F30 A1920000 */ sb $s2, ($t4) +/* 10BA64 7F0D6F34 97AD0200 */ lhu $t5, 0x200($sp) +/* 10BA68 7F0D6F38 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BA6C 7F0D6F3C 31A81800 */ andi $t0, $t5, 0x1800 +/* 10BA70 7F0D6F40 000858C3 */ sra $t3, $t0, 3 +/* 10BA74 7F0D6F44 31AA00FF */ andi $t2, $t5, 0xff +/* 10BA78 7F0D6F48 016A4825 */ or $t1, $t3, $t2 +/* 10BA7C 7F0D6F4C 01E9C821 */ addu $t9, $t7, $t1 +/* 10BA80 7F0D6F50 10002E2A */ b .L7F0E27FC +/* 10BA84 7F0D6F54 A32E0000 */ sb $t6, ($t9) +spectrum_op_71: +/* 10BA88 7F0D6F58 8FB8028C */ lw $t8, 0x28c($sp) +/* 10BA8C 7F0D6F5C 93A80287 */ lbu $t0, 0x287($sp) +/* 10BA90 7F0D6F60 00166A00 */ sll $t5, $s6, 8 +/* 10BA94 7F0D6F64 270C0007 */ addiu $t4, $t8, 7 +/* 10BA98 7F0D6F68 15000004 */ bnez $t0, .L7F0D6F7C +/* 10BA9C 7F0D6F6C AFAC028C */ sw $t4, 0x28c($sp) +/* 10BAA0 7F0D6F70 01B75825 */ or $t3, $t5, $s7 +/* 10BAA4 7F0D6F74 10000016 */ b .L7F0D6FD0 +/* 10BAA8 7F0D6F78 A7AB01FE */ sh $t3, 0x1fe($sp) +.L7F0D6F7C: +/* 10BAAC 7F0D6F7C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10BAB0 7F0D6F80 93A90287 */ lbu $t1, 0x287($sp) +/* 10BAB4 7F0D6F84 24010001 */ li $at, 1 +/* 10BAB8 7F0D6F88 254F0008 */ addiu $t7, $t2, 8 +/* 10BABC 7F0D6F8C 15210004 */ bne $t1, $at, .L7F0D6FA0 +/* 10BAC0 7F0D6F90 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BAC4 7F0D6F94 97AE0296 */ lhu $t6, 0x296($sp) +/* 10BAC8 7F0D6F98 10000003 */ b .L7F0D6FA8 +/* 10BACC 7F0D6F9C AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6FA0: +/* 10BAD0 7F0D6FA0 97B90294 */ lhu $t9, 0x294($sp) +/* 10BAD4 7F0D6FA4 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D6FA8: +/* 10BAD8 7F0D6FA8 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BADC 7F0D6FAC 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BAE0 7F0D6FB0 97B80298 */ lhu $t8, 0x298($sp) +/* 10BAE4 7F0D6FB4 8FAB0048 */ lw $t3, 0x48($sp) +/* 10BAE8 7F0D6FB8 030C4021 */ addu $t0, $t8, $t4 +/* 10BAEC 7F0D6FBC 810D0000 */ lb $t5, ($t0) +/* 10BAF0 7F0D6FC0 270F0001 */ addiu $t7, $t8, 1 +/* 10BAF4 7F0D6FC4 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BAF8 7F0D6FC8 01AB5021 */ addu $t2, $t5, $t3 +/* 10BAFC 7F0D6FCC A7AA01FE */ sh $t2, 0x1fe($sp) +.L7F0D6FD0: +/* 10BB00 7F0D6FD0 97A901FE */ lhu $t1, 0x1fe($sp) +/* 10BB04 7F0D6FD4 97AC01FE */ lhu $t4, 0x1fe($sp) +/* 10BB08 7F0D6FD8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BB0C 7F0D6FDC 29215B00 */ slti $at, $t1, 0x5b00 +/* 10BB10 7F0D6FE0 54200006 */ bnezl $at, .L7F0D6FFC +/* 10BB14 7F0D6FE4 29815800 */ slti $at, $t4, 0x5800 +/* 10BB18 7F0D6FE8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BB1C 7F0D6FEC 01C9C821 */ addu $t9, $t6, $t1 +/* 10BB20 7F0D6FF0 10002E02 */ b .L7F0E27FC +/* 10BB24 7F0D6FF4 A3330000 */ sb $s3, ($t9) +/* 10BB28 7F0D6FF8 29815800 */ slti $at, $t4, 0x5800 +.L7F0D6FFC: +/* 10BB2C 7F0D6FFC 1420000C */ bnez $at, .L7F0D7030 +/* 10BB30 7F0D7000 97AE01FE */ lhu $t6, 0x1fe($sp) +/* 10BB34 7F0D7004 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10BB38 7F0D7008 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10BB3C 7F0D700C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 10BB40 7F0D7010 240B0001 */ li $t3, 1 +/* 10BB44 7F0D7014 010C6821 */ addu $t5, $t0, $t4 +/* 10BB48 7F0D7018 A1B30000 */ sb $s3, ($t5) +/* 10BB4C 7F0D701C 97B801FE */ lhu $t8, 0x1fe($sp) +/* 10BB50 7F0D7020 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 10BB54 7F0D7024 01587821 */ addu $t7, $t2, $t8 +/* 10BB58 7F0D7028 10002DF4 */ b .L7F0E27FC +/* 10BB5C 7F0D702C A1EBA800 */ sb $t3, -0x5800($t7) +.L7F0D7030: +/* 10BB60 7F0D7030 29C14000 */ slti $at, $t6, 0x4000 +/* 10BB64 7F0D7034 14202DF1 */ bnez $at, .L7F0E27FC +/* 10BB68 7F0D7038 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BB6C 7F0D703C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BB70 7F0D7040 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BB74 7F0D7044 24080001 */ li $t0, 1 +/* 10BB78 7F0D7048 012EC821 */ addu $t9, $t1, $t6 +/* 10BB7C 7F0D704C A3330000 */ sb $s3, ($t9) +/* 10BB80 7F0D7050 97AC01FE */ lhu $t4, 0x1fe($sp) +/* 10BB84 7F0D7054 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BB88 7F0D7058 318D1800 */ andi $t5, $t4, 0x1800 +/* 10BB8C 7F0D705C 000D50C3 */ sra $t2, $t5, 3 +/* 10BB90 7F0D7060 319800FF */ andi $t8, $t4, 0xff +/* 10BB94 7F0D7064 01585825 */ or $t3, $t2, $t8 +/* 10BB98 7F0D7068 01EB4821 */ addu $t1, $t7, $t3 +/* 10BB9C 7F0D706C 10002DE3 */ b .L7F0E27FC +/* 10BBA0 7F0D7070 A1280000 */ sb $t0, ($t1) +spectrum_op_72: +/* 10BBA4 7F0D7074 8FAE028C */ lw $t6, 0x28c($sp) +/* 10BBA8 7F0D7078 93AD0287 */ lbu $t5, 0x287($sp) +/* 10BBAC 7F0D707C 00166200 */ sll $t4, $s6, 8 +/* 10BBB0 7F0D7080 25D90007 */ addiu $t9, $t6, 7 +/* 10BBB4 7F0D7084 15A00004 */ bnez $t5, .L7F0D7098 +/* 10BBB8 7F0D7088 AFB9028C */ sw $t9, 0x28c($sp) +/* 10BBBC 7F0D708C 01975025 */ or $t2, $t4, $s7 +/* 10BBC0 7F0D7090 10000016 */ b .L7F0D70EC +/* 10BBC4 7F0D7094 A7AA01FC */ sh $t2, 0x1fc($sp) +.L7F0D7098: +/* 10BBC8 7F0D7098 8FB8028C */ lw $t8, 0x28c($sp) +/* 10BBCC 7F0D709C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10BBD0 7F0D70A0 24010001 */ li $at, 1 +/* 10BBD4 7F0D70A4 270F0008 */ addiu $t7, $t8, 8 +/* 10BBD8 7F0D70A8 15610004 */ bne $t3, $at, .L7F0D70BC +/* 10BBDC 7F0D70AC AFAF028C */ sw $t7, 0x28c($sp) +/* 10BBE0 7F0D70B0 97A80296 */ lhu $t0, 0x296($sp) +/* 10BBE4 7F0D70B4 10000003 */ b .L7F0D70C4 +/* 10BBE8 7F0D70B8 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D70BC: +/* 10BBEC 7F0D70BC 97A90294 */ lhu $t1, 0x294($sp) +/* 10BBF0 7F0D70C0 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D70C4: +/* 10BBF4 7F0D70C4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BBF8 7F0D70C8 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BBFC 7F0D70CC 97AE0298 */ lhu $t6, 0x298($sp) +/* 10BC00 7F0D70D0 8FAA0048 */ lw $t2, 0x48($sp) +/* 10BC04 7F0D70D4 01D96821 */ addu $t5, $t6, $t9 +/* 10BC08 7F0D70D8 81AC0000 */ lb $t4, ($t5) +/* 10BC0C 7F0D70DC 25CF0001 */ addiu $t7, $t6, 1 +/* 10BC10 7F0D70E0 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BC14 7F0D70E4 018AC021 */ addu $t8, $t4, $t2 +/* 10BC18 7F0D70E8 A7B801FC */ sh $t8, 0x1fc($sp) +.L7F0D70EC: +/* 10BC1C 7F0D70EC 97AB01FC */ lhu $t3, 0x1fc($sp) +/* 10BC20 7F0D70F0 97B901FC */ lhu $t9, 0x1fc($sp) +/* 10BC24 7F0D70F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10BC28 7F0D70F8 29615B00 */ slti $at, $t3, 0x5b00 +/* 10BC2C 7F0D70FC 54200006 */ bnezl $at, .L7F0D7118 +/* 10BC30 7F0D7100 2B215800 */ slti $at, $t9, 0x5800 +/* 10BC34 7F0D7104 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10BC38 7F0D7108 010B4821 */ addu $t1, $t0, $t3 +/* 10BC3C 7F0D710C 10002DBB */ b .L7F0E27FC +/* 10BC40 7F0D7110 A1340000 */ sb $s4, ($t1) +/* 10BC44 7F0D7114 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D7118: +/* 10BC48 7F0D7118 1420000C */ bnez $at, .L7F0D714C +/* 10BC4C 7F0D711C 97A801FC */ lhu $t0, 0x1fc($sp) +/* 10BC50 7F0D7120 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10BC54 7F0D7124 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10BC58 7F0D7128 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10BC5C 7F0D712C 240A0001 */ li $t2, 1 +/* 10BC60 7F0D7130 01B96021 */ addu $t4, $t5, $t9 +/* 10BC64 7F0D7134 A1940000 */ sb $s4, ($t4) +/* 10BC68 7F0D7138 97AE01FC */ lhu $t6, 0x1fc($sp) +/* 10BC6C 7F0D713C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10BC70 7F0D7140 030E7821 */ addu $t7, $t8, $t6 +/* 10BC74 7F0D7144 10002DAD */ b .L7F0E27FC +/* 10BC78 7F0D7148 A1EAA800 */ sb $t2, -0x5800($t7) +.L7F0D714C: +/* 10BC7C 7F0D714C 29014000 */ slti $at, $t0, 0x4000 +/* 10BC80 7F0D7150 14202DAA */ bnez $at, .L7F0E27FC +/* 10BC84 7F0D7154 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10BC88 7F0D7158 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10BC8C 7F0D715C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BC90 7F0D7160 240D0001 */ li $t5, 1 +/* 10BC94 7F0D7164 01684821 */ addu $t1, $t3, $t0 +/* 10BC98 7F0D7168 A1340000 */ sb $s4, ($t1) +/* 10BC9C 7F0D716C 97B901FC */ lhu $t9, 0x1fc($sp) +/* 10BCA0 7F0D7170 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BCA4 7F0D7174 332C1800 */ andi $t4, $t9, 0x1800 +/* 10BCA8 7F0D7178 000CC0C3 */ sra $t8, $t4, 3 +/* 10BCAC 7F0D717C 332E00FF */ andi $t6, $t9, 0xff +/* 10BCB0 7F0D7180 030E5025 */ or $t2, $t8, $t6 +/* 10BCB4 7F0D7184 01EA5821 */ addu $t3, $t7, $t2 +/* 10BCB8 7F0D7188 10002D9C */ b .L7F0E27FC +/* 10BCBC 7F0D718C A16D0000 */ sb $t5, ($t3) +spectrum_op_73: +/* 10BCC0 7F0D7190 8FA8028C */ lw $t0, 0x28c($sp) +/* 10BCC4 7F0D7194 93AC0287 */ lbu $t4, 0x287($sp) +/* 10BCC8 7F0D7198 0016CA00 */ sll $t9, $s6, 8 +/* 10BCCC 7F0D719C 25090007 */ addiu $t1, $t0, 7 +/* 10BCD0 7F0D71A0 15800004 */ bnez $t4, .L7F0D71B4 +/* 10BCD4 7F0D71A4 AFA9028C */ sw $t1, 0x28c($sp) +/* 10BCD8 7F0D71A8 0337C025 */ or $t8, $t9, $s7 +/* 10BCDC 7F0D71AC 10000016 */ b .L7F0D7208 +/* 10BCE0 7F0D71B0 A7B801FA */ sh $t8, 0x1fa($sp) +.L7F0D71B4: +/* 10BCE4 7F0D71B4 8FAE028C */ lw $t6, 0x28c($sp) +/* 10BCE8 7F0D71B8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10BCEC 7F0D71BC 24010001 */ li $at, 1 +/* 10BCF0 7F0D71C0 25CF0008 */ addiu $t7, $t6, 8 +/* 10BCF4 7F0D71C4 15410004 */ bne $t2, $at, .L7F0D71D8 +/* 10BCF8 7F0D71C8 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BCFC 7F0D71CC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10BD00 7F0D71D0 10000003 */ b .L7F0D71E0 +/* 10BD04 7F0D71D4 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D71D8: +/* 10BD08 7F0D71D8 97AB0294 */ lhu $t3, 0x294($sp) +/* 10BD0C 7F0D71DC AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D71E0: +/* 10BD10 7F0D71E0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BD14 7F0D71E4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BD18 7F0D71E8 97A80298 */ lhu $t0, 0x298($sp) +/* 10BD1C 7F0D71EC 8FB80048 */ lw $t8, 0x48($sp) +/* 10BD20 7F0D71F0 01096021 */ addu $t4, $t0, $t1 +/* 10BD24 7F0D71F4 81990000 */ lb $t9, ($t4) +/* 10BD28 7F0D71F8 250F0001 */ addiu $t7, $t0, 1 +/* 10BD2C 7F0D71FC A7AF0298 */ sh $t7, 0x298($sp) +/* 10BD30 7F0D7200 03387021 */ addu $t6, $t9, $t8 +/* 10BD34 7F0D7204 A7AE01FA */ sh $t6, 0x1fa($sp) +.L7F0D7208: +/* 10BD38 7F0D7208 97AA01FA */ lhu $t2, 0x1fa($sp) +/* 10BD3C 7F0D720C 97A901FA */ lhu $t1, 0x1fa($sp) +/* 10BD40 7F0D7210 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10BD44 7F0D7214 29415B00 */ slti $at, $t2, 0x5b00 +/* 10BD48 7F0D7218 54200006 */ bnezl $at, .L7F0D7234 +/* 10BD4C 7F0D721C 29215800 */ slti $at, $t1, 0x5800 +/* 10BD50 7F0D7220 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10BD54 7F0D7224 01AA5821 */ addu $t3, $t5, $t2 +/* 10BD58 7F0D7228 10002D74 */ b .L7F0E27FC +/* 10BD5C 7F0D722C A1750000 */ sb $s5, ($t3) +/* 10BD60 7F0D7230 29215800 */ slti $at, $t1, 0x5800 +.L7F0D7234: +/* 10BD64 7F0D7234 1420000C */ bnez $at, .L7F0D7268 +/* 10BD68 7F0D7238 97AD01FA */ lhu $t5, 0x1fa($sp) +/* 10BD6C 7F0D723C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BD70 7F0D7240 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BD74 7F0D7244 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10BD78 7F0D7248 24180001 */ li $t8, 1 +/* 10BD7C 7F0D724C 0189C821 */ addu $t9, $t4, $t1 +/* 10BD80 7F0D7250 A3350000 */ sb $s5, ($t9) +/* 10BD84 7F0D7254 97A801FA */ lhu $t0, 0x1fa($sp) +/* 10BD88 7F0D7258 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10BD8C 7F0D725C 01C87821 */ addu $t7, $t6, $t0 +/* 10BD90 7F0D7260 10002D66 */ b .L7F0E27FC +/* 10BD94 7F0D7264 A1F8A800 */ sb $t8, -0x5800($t7) +.L7F0D7268: +/* 10BD98 7F0D7268 29A14000 */ slti $at, $t5, 0x4000 +/* 10BD9C 7F0D726C 14202D63 */ bnez $at, .L7F0E27FC +/* 10BDA0 7F0D7270 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10BDA4 7F0D7274 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10BDA8 7F0D7278 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BDAC 7F0D727C 240C0001 */ li $t4, 1 +/* 10BDB0 7F0D7280 014D5821 */ addu $t3, $t2, $t5 +/* 10BDB4 7F0D7284 A1750000 */ sb $s5, ($t3) +/* 10BDB8 7F0D7288 97A901FA */ lhu $t1, 0x1fa($sp) +/* 10BDBC 7F0D728C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BDC0 7F0D7290 31391800 */ andi $t9, $t1, 0x1800 +/* 10BDC4 7F0D7294 001970C3 */ sra $t6, $t9, 3 +/* 10BDC8 7F0D7298 312800FF */ andi $t0, $t1, 0xff +/* 10BDCC 7F0D729C 01C8C025 */ or $t8, $t6, $t0 +/* 10BDD0 7F0D72A0 01F85021 */ addu $t2, $t7, $t8 +/* 10BDD4 7F0D72A4 10002D55 */ b .L7F0E27FC +/* 10BDD8 7F0D72A8 A14C0000 */ sb $t4, ($t2) +spectrum_op_74: +/* 10BDDC 7F0D72AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10BDE0 7F0D72B0 93B90287 */ lbu $t9, 0x287($sp) +/* 10BDE4 7F0D72B4 00164A00 */ sll $t1, $s6, 8 +/* 10BDE8 7F0D72B8 25AB0007 */ addiu $t3, $t5, 7 +/* 10BDEC 7F0D72BC 17200004 */ bnez $t9, .L7F0D72D0 +/* 10BDF0 7F0D72C0 AFAB028C */ sw $t3, 0x28c($sp) +/* 10BDF4 7F0D72C4 01377025 */ or $t6, $t1, $s7 +/* 10BDF8 7F0D72C8 10000016 */ b .L7F0D7324 +/* 10BDFC 7F0D72CC A7AE01F8 */ sh $t6, 0x1f8($sp) +.L7F0D72D0: +/* 10BE00 7F0D72D0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10BE04 7F0D72D4 93B80287 */ lbu $t8, 0x287($sp) +/* 10BE08 7F0D72D8 24010001 */ li $at, 1 +/* 10BE0C 7F0D72DC 250F0008 */ addiu $t7, $t0, 8 +/* 10BE10 7F0D72E0 17010004 */ bne $t8, $at, .L7F0D72F4 +/* 10BE14 7F0D72E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BE18 7F0D72E8 97AC0296 */ lhu $t4, 0x296($sp) +/* 10BE1C 7F0D72EC 10000003 */ b .L7F0D72FC +/* 10BE20 7F0D72F0 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D72F4: +/* 10BE24 7F0D72F4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10BE28 7F0D72F8 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D72FC: +/* 10BE2C 7F0D72FC 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10BE30 7F0D7300 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10BE34 7F0D7304 97AD0298 */ lhu $t5, 0x298($sp) +/* 10BE38 7F0D7308 8FAE0048 */ lw $t6, 0x48($sp) +/* 10BE3C 7F0D730C 01ABC821 */ addu $t9, $t5, $t3 +/* 10BE40 7F0D7310 83290000 */ lb $t1, ($t9) +/* 10BE44 7F0D7314 25AF0001 */ addiu $t7, $t5, 1 +/* 10BE48 7F0D7318 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BE4C 7F0D731C 012E4021 */ addu $t0, $t1, $t6 +/* 10BE50 7F0D7320 A7A801F8 */ sh $t0, 0x1f8($sp) +.L7F0D7324: +/* 10BE54 7F0D7324 97B801F8 */ lhu $t8, 0x1f8($sp) +/* 10BE58 7F0D7328 97AB01F8 */ lhu $t3, 0x1f8($sp) +/* 10BE5C 7F0D732C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BE60 7F0D7330 2B015B00 */ slti $at, $t8, 0x5b00 +/* 10BE64 7F0D7334 54200006 */ bnezl $at, .L7F0D7350 +/* 10BE68 7F0D7338 29615800 */ slti $at, $t3, 0x5800 +/* 10BE6C 7F0D733C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BE70 7F0D7340 01985021 */ addu $t2, $t4, $t8 +/* 10BE74 7F0D7344 10002D2D */ b .L7F0E27FC +/* 10BE78 7F0D7348 A1560000 */ sb $s6, ($t2) +/* 10BE7C 7F0D734C 29615800 */ slti $at, $t3, 0x5800 +.L7F0D7350: +/* 10BE80 7F0D7350 1420000C */ bnez $at, .L7F0D7384 +/* 10BE84 7F0D7354 97AC01F8 */ lhu $t4, 0x1f8($sp) +/* 10BE88 7F0D7358 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BE8C 7F0D735C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BE90 7F0D7360 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10BE94 7F0D7364 240E0001 */ li $t6, 1 +/* 10BE98 7F0D7368 032B4821 */ addu $t1, $t9, $t3 +/* 10BE9C 7F0D736C A1360000 */ sb $s6, ($t1) +/* 10BEA0 7F0D7370 97AD01F8 */ lhu $t5, 0x1f8($sp) +/* 10BEA4 7F0D7374 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10BEA8 7F0D7378 010D7821 */ addu $t7, $t0, $t5 +/* 10BEAC 7F0D737C 10002D1F */ b .L7F0E27FC +/* 10BEB0 7F0D7380 A1EEA800 */ sb $t6, -0x5800($t7) +.L7F0D7384: +/* 10BEB4 7F0D7384 29814000 */ slti $at, $t4, 0x4000 +/* 10BEB8 7F0D7388 14202D1C */ bnez $at, .L7F0E27FC +/* 10BEBC 7F0D738C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10BEC0 7F0D7390 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10BEC4 7F0D7394 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BEC8 7F0D7398 24190001 */ li $t9, 1 +/* 10BECC 7F0D739C 030C5021 */ addu $t2, $t8, $t4 +/* 10BED0 7F0D73A0 A1560000 */ sb $s6, ($t2) +/* 10BED4 7F0D73A4 97AB01F8 */ lhu $t3, 0x1f8($sp) +/* 10BED8 7F0D73A8 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BEDC 7F0D73AC 31691800 */ andi $t1, $t3, 0x1800 +/* 10BEE0 7F0D73B0 000940C3 */ sra $t0, $t1, 3 +/* 10BEE4 7F0D73B4 316D00FF */ andi $t5, $t3, 0xff +/* 10BEE8 7F0D73B8 010D7025 */ or $t6, $t0, $t5 +/* 10BEEC 7F0D73BC 01EEC021 */ addu $t8, $t7, $t6 +/* 10BEF0 7F0D73C0 10002D0E */ b .L7F0E27FC +/* 10BEF4 7F0D73C4 A3190000 */ sb $t9, ($t8) +spectrum_op_75: +/* 10BEF8 7F0D73C8 8FAC028C */ lw $t4, 0x28c($sp) +/* 10BEFC 7F0D73CC 93A90287 */ lbu $t1, 0x287($sp) +/* 10BF00 7F0D73D0 00165A00 */ sll $t3, $s6, 8 +/* 10BF04 7F0D73D4 258A0007 */ addiu $t2, $t4, 7 +/* 10BF08 7F0D73D8 15200004 */ bnez $t1, .L7F0D73EC +/* 10BF0C 7F0D73DC AFAA028C */ sw $t2, 0x28c($sp) +/* 10BF10 7F0D73E0 01774025 */ or $t0, $t3, $s7 +/* 10BF14 7F0D73E4 10000016 */ b .L7F0D7440 +/* 10BF18 7F0D73E8 A7A801F6 */ sh $t0, 0x1f6($sp) +.L7F0D73EC: +/* 10BF1C 7F0D73EC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10BF20 7F0D73F0 93AE0287 */ lbu $t6, 0x287($sp) +/* 10BF24 7F0D73F4 24010001 */ li $at, 1 +/* 10BF28 7F0D73F8 25AF0008 */ addiu $t7, $t5, 8 +/* 10BF2C 7F0D73FC 15C10004 */ bne $t6, $at, .L7F0D7410 +/* 10BF30 7F0D7400 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BF34 7F0D7404 97B90296 */ lhu $t9, 0x296($sp) +/* 10BF38 7F0D7408 10000003 */ b .L7F0D7418 +/* 10BF3C 7F0D740C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7410: +/* 10BF40 7F0D7410 97B80294 */ lhu $t8, 0x294($sp) +/* 10BF44 7F0D7414 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D7418: +/* 10BF48 7F0D7418 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10BF4C 7F0D741C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10BF50 7F0D7420 97AC0298 */ lhu $t4, 0x298($sp) +/* 10BF54 7F0D7424 8FA80048 */ lw $t0, 0x48($sp) +/* 10BF58 7F0D7428 018A4821 */ addu $t1, $t4, $t2 +/* 10BF5C 7F0D742C 812B0000 */ lb $t3, ($t1) +/* 10BF60 7F0D7430 258F0001 */ addiu $t7, $t4, 1 +/* 10BF64 7F0D7434 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BF68 7F0D7438 01686821 */ addu $t5, $t3, $t0 +/* 10BF6C 7F0D743C A7AD01F6 */ sh $t5, 0x1f6($sp) +.L7F0D7440: +/* 10BF70 7F0D7440 97AE01F6 */ lhu $t6, 0x1f6($sp) +/* 10BF74 7F0D7444 97AA01F6 */ lhu $t2, 0x1f6($sp) +/* 10BF78 7F0D7448 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BF7C 7F0D744C 29C15B00 */ slti $at, $t6, 0x5b00 +/* 10BF80 7F0D7450 54200006 */ bnezl $at, .L7F0D746C +/* 10BF84 7F0D7454 29415800 */ slti $at, $t2, 0x5800 +/* 10BF88 7F0D7458 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BF8C 7F0D745C 032EC021 */ addu $t8, $t9, $t6 +/* 10BF90 7F0D7460 10002CE6 */ b .L7F0E27FC +/* 10BF94 7F0D7464 A3170000 */ sb $s7, ($t8) +/* 10BF98 7F0D7468 29415800 */ slti $at, $t2, 0x5800 +.L7F0D746C: +/* 10BF9C 7F0D746C 1420000C */ bnez $at, .L7F0D74A0 +/* 10BFA0 7F0D7470 97B901F6 */ lhu $t9, 0x1f6($sp) +/* 10BFA4 7F0D7474 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BFA8 7F0D7478 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BFAC 7F0D747C 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10BFB0 7F0D7480 24080001 */ li $t0, 1 +/* 10BFB4 7F0D7484 012A5821 */ addu $t3, $t1, $t2 +/* 10BFB8 7F0D7488 A1770000 */ sb $s7, ($t3) +/* 10BFBC 7F0D748C 97AC01F6 */ lhu $t4, 0x1f6($sp) +/* 10BFC0 7F0D7490 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10BFC4 7F0D7494 01AC7821 */ addu $t7, $t5, $t4 +/* 10BFC8 7F0D7498 10002CD8 */ b .L7F0E27FC +/* 10BFCC 7F0D749C A1E8A800 */ sb $t0, -0x5800($t7) +.L7F0D74A0: +/* 10BFD0 7F0D74A0 2B214000 */ slti $at, $t9, 0x4000 +/* 10BFD4 7F0D74A4 14202CD5 */ bnez $at, .L7F0E27FC +/* 10BFD8 7F0D74A8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BFDC 7F0D74AC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BFE0 7F0D74B0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BFE4 7F0D74B4 24090001 */ li $t1, 1 +/* 10BFE8 7F0D74B8 01D9C021 */ addu $t8, $t6, $t9 +/* 10BFEC 7F0D74BC A3170000 */ sb $s7, ($t8) +/* 10BFF0 7F0D74C0 97AA01F6 */ lhu $t2, 0x1f6($sp) +/* 10BFF4 7F0D74C4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BFF8 7F0D74C8 314B1800 */ andi $t3, $t2, 0x1800 +/* 10BFFC 7F0D74CC 000B68C3 */ sra $t5, $t3, 3 +/* 10C000 7F0D74D0 314C00FF */ andi $t4, $t2, 0xff +/* 10C004 7F0D74D4 01AC4025 */ or $t0, $t5, $t4 +/* 10C008 7F0D74D8 01E87021 */ addu $t6, $t7, $t0 +/* 10C00C 7F0D74DC 10002CC7 */ b .L7F0E27FC +/* 10C010 7F0D74E0 A1C90000 */ sb $t1, ($t6) +spectrum_op_76: +/* 10C014 7F0D74E4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10C018 7F0D74E8 8FAB0280 */ lw $t3, 0x280($sp) +/* 10C01C 7F0D74EC 27380004 */ addiu $t8, $t9, 4 +/* 10C020 7F0D74F0 030B082B */ sltu $at, $t8, $t3 +/* 10C024 7F0D74F4 10200007 */ beqz $at, .L7F0D7514 +/* 10C028 7F0D74F8 AFB8028C */ sw $t8, 0x28c($sp) +/* 10C02C 7F0D74FC 01785023 */ subu $t2, $t3, $t8 +/* 10C030 7F0D7500 254D0003 */ addiu $t5, $t2, 3 +/* 10C034 7F0D7504 2401FFFC */ li $at, -4 +/* 10C038 7F0D7508 01A16024 */ and $t4, $t5, $at +/* 10C03C 7F0D750C 030C7821 */ addu $t7, $t8, $t4 +/* 10C040 7F0D7510 AFAF028C */ sw $t7, 0x28c($sp) +.L7F0D7514: +/* 10C044 7F0D7514 97A80298 */ lhu $t0, 0x298($sp) +/* 10C048 7F0D7518 2509FFFF */ addiu $t1, $t0, -1 +/* 10C04C 7F0D751C 10002CB7 */ b .L7F0E27FC +/* 10C050 7F0D7520 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_77: +/* 10C054 7F0D7524 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C058 7F0D7528 93AB0287 */ lbu $t3, 0x287($sp) +/* 10C05C 7F0D752C 00165200 */ sll $t2, $s6, 8 +/* 10C060 7F0D7530 25D90007 */ addiu $t9, $t6, 7 +/* 10C064 7F0D7534 15600004 */ bnez $t3, .L7F0D7548 +/* 10C068 7F0D7538 AFB9028C */ sw $t9, 0x28c($sp) +/* 10C06C 7F0D753C 01576825 */ or $t5, $t2, $s7 +/* 10C070 7F0D7540 10000016 */ b .L7F0D759C +/* 10C074 7F0D7544 A7AD01F4 */ sh $t5, 0x1f4($sp) +.L7F0D7548: +/* 10C078 7F0D7548 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C07C 7F0D754C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10C080 7F0D7550 24010001 */ li $at, 1 +/* 10C084 7F0D7554 270C0008 */ addiu $t4, $t8, 8 +/* 10C088 7F0D7558 15E10004 */ bne $t7, $at, .L7F0D756C +/* 10C08C 7F0D755C AFAC028C */ sw $t4, 0x28c($sp) +/* 10C090 7F0D7560 97A80296 */ lhu $t0, 0x296($sp) +/* 10C094 7F0D7564 10000003 */ b .L7F0D7574 +/* 10C098 7F0D7568 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D756C: +/* 10C09C 7F0D756C 97A90294 */ lhu $t1, 0x294($sp) +/* 10C0A0 7F0D7570 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7574: +/* 10C0A4 7F0D7574 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10C0A8 7F0D7578 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10C0AC 7F0D757C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10C0B0 7F0D7580 8FAD0048 */ lw $t5, 0x48($sp) +/* 10C0B4 7F0D7584 01D95821 */ addu $t3, $t6, $t9 +/* 10C0B8 7F0D7588 816A0000 */ lb $t2, ($t3) +/* 10C0BC 7F0D758C 25CC0001 */ addiu $t4, $t6, 1 +/* 10C0C0 7F0D7590 A7AC0298 */ sh $t4, 0x298($sp) +/* 10C0C4 7F0D7594 014DC021 */ addu $t8, $t2, $t5 +/* 10C0C8 7F0D7598 A7B801F4 */ sh $t8, 0x1f4($sp) +.L7F0D759C: +/* 10C0CC 7F0D759C 97AF01F4 */ lhu $t7, 0x1f4($sp) +/* 10C0D0 7F0D75A0 97B901F4 */ lhu $t9, 0x1f4($sp) +/* 10C0D4 7F0D75A4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10C0D8 7F0D75A8 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10C0DC 7F0D75AC 54200006 */ bnezl $at, .L7F0D75C8 +/* 10C0E0 7F0D75B0 2B215800 */ slti $at, $t9, 0x5800 +/* 10C0E4 7F0D75B4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10C0E8 7F0D75B8 010F4821 */ addu $t1, $t0, $t7 +/* 10C0EC 7F0D75BC 10002C8F */ b .L7F0E27FC +/* 10C0F0 7F0D75C0 A1300000 */ sb $s0, ($t1) +/* 10C0F4 7F0D75C4 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D75C8: +/* 10C0F8 7F0D75C8 1420000C */ bnez $at, .L7F0D75FC +/* 10C0FC 7F0D75CC 97A801F4 */ lhu $t0, 0x1f4($sp) +/* 10C100 7F0D75D0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10C104 7F0D75D4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10C108 7F0D75D8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10C10C 7F0D75DC 240D0001 */ li $t5, 1 +/* 10C110 7F0D75E0 01795021 */ addu $t2, $t3, $t9 +/* 10C114 7F0D75E4 A1500000 */ sb $s0, ($t2) +/* 10C118 7F0D75E8 97AE01F4 */ lhu $t6, 0x1f4($sp) +/* 10C11C 7F0D75EC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10C120 7F0D75F0 030E6021 */ addu $t4, $t8, $t6 +/* 10C124 7F0D75F4 10002C81 */ b .L7F0E27FC +/* 10C128 7F0D75F8 A18DA800 */ sb $t5, -0x5800($t4) +.L7F0D75FC: +/* 10C12C 7F0D75FC 29014000 */ slti $at, $t0, 0x4000 +/* 10C130 7F0D7600 14202C7E */ bnez $at, .L7F0E27FC +/* 10C134 7F0D7604 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10C138 7F0D7608 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10C13C 7F0D760C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10C140 7F0D7610 240B0001 */ li $t3, 1 +/* 10C144 7F0D7614 01E84821 */ addu $t1, $t7, $t0 +/* 10C148 7F0D7618 A1300000 */ sb $s0, ($t1) +/* 10C14C 7F0D761C 97B901F4 */ lhu $t9, 0x1f4($sp) +/* 10C150 7F0D7620 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10C154 7F0D7624 332A1800 */ andi $t2, $t9, 0x1800 +/* 10C158 7F0D7628 000AC0C3 */ sra $t8, $t2, 3 +/* 10C15C 7F0D762C 332E00FF */ andi $t6, $t9, 0xff +/* 10C160 7F0D7630 030E6825 */ or $t5, $t8, $t6 +/* 10C164 7F0D7634 018D7821 */ addu $t7, $t4, $t5 +/* 10C168 7F0D7638 10002C70 */ b .L7F0E27FC +/* 10C16C 7F0D763C A1EB0000 */ sb $t3, ($t7) +spectrum_op_78: +/* 10C170 7F0D7640 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C174 7F0D7644 325000FF */ andi $s0, $s2, 0xff +/* 10C178 7F0D7648 25090004 */ addiu $t1, $t0, 4 +/* 10C17C 7F0D764C 10002C6B */ b .L7F0E27FC +/* 10C180 7F0D7650 AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_79: +/* 10C184 7F0D7654 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C188 7F0D7658 327000FF */ andi $s0, $s3, 0xff +/* 10C18C 7F0D765C 25590004 */ addiu $t9, $t2, 4 +/* 10C190 7F0D7660 10002C66 */ b .L7F0E27FC +/* 10C194 7F0D7664 AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_7A: +/* 10C198 7F0D7668 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C19C 7F0D766C 329000FF */ andi $s0, $s4, 0xff +/* 10C1A0 7F0D7670 270E0004 */ addiu $t6, $t8, 4 +/* 10C1A4 7F0D7674 10002C61 */ b .L7F0E27FC +/* 10C1A8 7F0D7678 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_7B: +/* 10C1AC 7F0D767C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C1B0 7F0D7680 32B000FF */ andi $s0, $s5, 0xff +/* 10C1B4 7F0D7684 258D0004 */ addiu $t5, $t4, 4 +/* 10C1B8 7F0D7688 10002C5C */ b .L7F0E27FC +/* 10C1BC 7F0D768C AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_7C: +/* 10C1C0 7F0D7690 8FAB028C */ lw $t3, 0x28c($sp) +/* 10C1C4 7F0D7694 93A80287 */ lbu $t0, 0x287($sp) +/* 10C1C8 7F0D7698 93A90287 */ lbu $t1, 0x287($sp) +/* 10C1CC 7F0D769C 256F0004 */ addiu $t7, $t3, 4 +/* 10C1D0 7F0D76A0 15000003 */ bnez $t0, .L7F0D76B0 +/* 10C1D4 7F0D76A4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10C1D8 7F0D76A8 10002C54 */ b .L7F0E27FC +/* 10C1DC 7F0D76AC 32D000FF */ andi $s0, $s6, 0xff +.L7F0D76B0: +/* 10C1E0 7F0D76B0 24010001 */ li $at, 1 +/* 10C1E4 7F0D76B4 15210005 */ bne $t1, $at, .L7F0D76CC +/* 10C1E8 7F0D76B8 97B80294 */ lhu $t8, 0x294($sp) +/* 10C1EC 7F0D76BC 97AA0296 */ lhu $t2, 0x296($sp) +/* 10C1F0 7F0D76C0 000ACA03 */ sra $t9, $t2, 8 +/* 10C1F4 7F0D76C4 10000003 */ b .L7F0D76D4 +/* 10C1F8 7F0D76C8 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D76CC: +/* 10C1FC 7F0D76CC 00187203 */ sra $t6, $t8, 8 +/* 10C200 7F0D76D0 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D76D4: +/* 10C204 7F0D76D4 10002C49 */ b .L7F0E27FC +/* 10C208 7F0D76D8 93B0004B */ lbu $s0, 0x4b($sp) +spectrum_op_7D: +/* 10C20C 7F0D76DC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C210 7F0D76E0 93AB0287 */ lbu $t3, 0x287($sp) +/* 10C214 7F0D76E4 93AF0287 */ lbu $t7, 0x287($sp) +/* 10C218 7F0D76E8 258D0004 */ addiu $t5, $t4, 4 +/* 10C21C 7F0D76EC 15600003 */ bnez $t3, .L7F0D76FC +/* 10C220 7F0D76F0 AFAD028C */ sw $t5, 0x28c($sp) +/* 10C224 7F0D76F4 10002C41 */ b .L7F0E27FC +/* 10C228 7F0D76F8 32F000FF */ andi $s0, $s7, 0xff +.L7F0D76FC: +/* 10C22C 7F0D76FC 24010001 */ li $at, 1 +/* 10C230 7F0D7700 15E10005 */ bne $t7, $at, .L7F0D7718 +/* 10C234 7F0D7704 97AA0294 */ lhu $t2, 0x294($sp) +/* 10C238 7F0D7708 97A80296 */ lhu $t0, 0x296($sp) +/* 10C23C 7F0D770C 310900FF */ andi $t1, $t0, 0xff +/* 10C240 7F0D7710 10000003 */ b .L7F0D7720 +/* 10C244 7F0D7714 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7718: +/* 10C248 7F0D7718 315900FF */ andi $t9, $t2, 0xff +/* 10C24C 7F0D771C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7720: +/* 10C250 7F0D7720 10002C36 */ b .L7F0E27FC +/* 10C254 7F0D7724 93B0004B */ lbu $s0, 0x4b($sp) +spectrum_op_7E: +/* 10C258 7F0D7728 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C25C 7F0D772C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10C260 7F0D7730 00166A00 */ sll $t5, $s6, 8 +/* 10C264 7F0D7734 270E0007 */ addiu $t6, $t8, 7 +/* 10C268 7F0D7738 15800004 */ bnez $t4, .L7F0D774C +/* 10C26C 7F0D773C AFAE028C */ sw $t6, 0x28c($sp) +/* 10C270 7F0D7740 01B75825 */ or $t3, $t5, $s7 +/* 10C274 7F0D7744 10000016 */ b .L7F0D77A0 +/* 10C278 7F0D7748 A7AB01F2 */ sh $t3, 0x1f2($sp) +.L7F0D774C: +/* 10C27C 7F0D774C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C280 7F0D7750 93A90287 */ lbu $t1, 0x287($sp) +/* 10C284 7F0D7754 24010001 */ li $at, 1 +/* 10C288 7F0D7758 25E80008 */ addiu $t0, $t7, 8 +/* 10C28C 7F0D775C 15210004 */ bne $t1, $at, .L7F0D7770 +/* 10C290 7F0D7760 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C294 7F0D7764 97AA0296 */ lhu $t2, 0x296($sp) +/* 10C298 7F0D7768 10000003 */ b .L7F0D7778 +/* 10C29C 7F0D776C AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D7770: +/* 10C2A0 7F0D7770 97B90294 */ lhu $t9, 0x294($sp) +/* 10C2A4 7F0D7774 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7778: +/* 10C2A8 7F0D7778 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10C2AC 7F0D777C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10C2B0 7F0D7780 97B80298 */ lhu $t8, 0x298($sp) +/* 10C2B4 7F0D7784 8FAB0048 */ lw $t3, 0x48($sp) +/* 10C2B8 7F0D7788 030E6021 */ addu $t4, $t8, $t6 +/* 10C2BC 7F0D778C 818D0000 */ lb $t5, ($t4) +/* 10C2C0 7F0D7790 27080001 */ addiu $t0, $t8, 1 +/* 10C2C4 7F0D7794 A7A80298 */ sh $t0, 0x298($sp) +/* 10C2C8 7F0D7798 01AB7821 */ addu $t7, $t5, $t3 +/* 10C2CC 7F0D779C A7AF01F2 */ sh $t7, 0x1f2($sp) +.L7F0D77A0: +/* 10C2D0 7F0D77A0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10C2D4 7F0D77A4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10C2D8 7F0D77A8 97A901F2 */ lhu $t1, 0x1f2($sp) +/* 10C2DC 7F0D77AC 012AC821 */ addu $t9, $t1, $t2 +/* 10C2E0 7F0D77B0 10002C12 */ b .L7F0E27FC +/* 10C2E4 7F0D77B4 93300000 */ lbu $s0, ($t9) +spectrum_op_7F: +/* 10C2E8 7F0D77B8 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C2EC 7F0D77BC 25CC0004 */ addiu $t4, $t6, 4 +/* 10C2F0 7F0D77C0 10002C0E */ b .L7F0E27FC +/* 10C2F4 7F0D77C4 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_80: +/* 10C2F8 7F0D77C8 8FAD028C */ lw $t5, 0x28c($sp) +/* 10C2FC 7F0D77CC 324F00FF */ andi $t7, $s2, 0xff +/* 10C300 7F0D77D0 020F4021 */ addu $t0, $s0, $t7 +/* 10C304 7F0D77D4 25AB0004 */ addiu $t3, $t5, 4 +/* 10C308 7F0D77D8 310900A8 */ andi $t1, $t0, 0xa8 +/* 10C30C 7F0D77DC 00085203 */ sra $t2, $t0, 8 +/* 10C310 7F0D77E0 31EC000F */ andi $t4, $t7, 0xf +/* 10C314 7F0D77E4 320E000F */ andi $t6, $s0, 0xf +/* 10C318 7F0D77E8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10C31C 7F0D77EC 01CC6821 */ addu $t5, $t6, $t4 +/* 10C320 7F0D77F0 012AC825 */ or $t9, $t1, $t2 +/* 10C324 7F0D77F4 2401000F */ li $at, 15 +/* 10C328 7F0D77F8 002D582A */ slt $t3, $at, $t5 +/* 10C32C 7F0D77FC 02005027 */ not $t2, $s0 +/* 10C330 7F0D7800 01106826 */ xor $t5, $t0, $s0 +/* 10C334 7F0D7804 A7A801F0 */ sh $t0, 0x1f0($sp) +/* 10C338 7F0D7808 93B001F1 */ lbu $s0, 0x1f1($sp) +/* 10C33C 7F0D780C 014F7026 */ xor $t6, $t2, $t7 +/* 10C340 7F0D7810 000BC100 */ sll $t8, $t3, 4 +/* 10C344 7F0D7814 31CC0080 */ andi $t4, $t6, 0x80 +/* 10C348 7F0D7818 018D5824 */ and $t3, $t4, $t5 +/* 10C34C 7F0D781C 03384825 */ or $t1, $t9, $t8 +/* 10C350 7F0D7820 000BC943 */ sra $t9, $t3, 5 +/* 10C354 7F0D7824 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C358 7F0D7828 000A7180 */ sll $t6, $t2, 6 +/* 10C35C 7F0D782C 0139C025 */ or $t8, $t1, $t9 +/* 10C360 7F0D7830 030E8825 */ or $s1, $t8, $t6 +/* 10C364 7F0D7834 322800FF */ andi $t0, $s1, 0xff +/* 10C368 7F0D7838 01008825 */ move $s1, $t0 +/* 10C36C 7F0D783C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C370 7F0D7840 10002BEE */ b .L7F0E27FC +/* 10C374 7F0D7844 A3B201EF */ sb $s2, 0x1ef($sp) +spectrum_op_81: +/* 10C378 7F0D7848 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C37C 7F0D784C 326B00FF */ andi $t3, $s3, 0xff +/* 10C380 7F0D7850 020BC821 */ addu $t9, $s0, $t3 +/* 10C384 7F0D7854 258D0004 */ addiu $t5, $t4, 4 +/* 10C388 7F0D7858 333800A8 */ andi $t8, $t9, 0xa8 +/* 10C38C 7F0D785C 00195203 */ sra $t2, $t9, 8 +/* 10C390 7F0D7860 3168000F */ andi $t0, $t3, 0xf +/* 10C394 7F0D7864 320E000F */ andi $t6, $s0, 0xf +/* 10C398 7F0D7868 AFAD028C */ sw $t5, 0x28c($sp) +/* 10C39C 7F0D786C 01C86021 */ addu $t4, $t6, $t0 +/* 10C3A0 7F0D7870 030A7825 */ or $t7, $t8, $t2 +/* 10C3A4 7F0D7874 2401000F */ li $at, 15 +/* 10C3A8 7F0D7878 002C682A */ slt $t5, $at, $t4 +/* 10C3AC 7F0D787C 02005027 */ not $t2, $s0 +/* 10C3B0 7F0D7880 03306026 */ xor $t4, $t9, $s0 +/* 10C3B4 7F0D7884 A7B901EC */ sh $t9, 0x1ec($sp) +/* 10C3B8 7F0D7888 93B001ED */ lbu $s0, 0x1ed($sp) +/* 10C3BC 7F0D788C 014B7026 */ xor $t6, $t2, $t3 +/* 10C3C0 7F0D7890 000D4900 */ sll $t1, $t5, 4 +/* 10C3C4 7F0D7894 31C80080 */ andi $t0, $t6, 0x80 +/* 10C3C8 7F0D7898 010C6824 */ and $t5, $t0, $t4 +/* 10C3CC 7F0D789C 01E9C025 */ or $t8, $t7, $t1 +/* 10C3D0 7F0D78A0 000D7943 */ sra $t7, $t5, 5 +/* 10C3D4 7F0D78A4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C3D8 7F0D78A8 000A7180 */ sll $t6, $t2, 6 +/* 10C3DC 7F0D78AC 030F4825 */ or $t1, $t8, $t7 +/* 10C3E0 7F0D78B0 012E8825 */ or $s1, $t1, $t6 +/* 10C3E4 7F0D78B4 323900FF */ andi $t9, $s1, 0xff +/* 10C3E8 7F0D78B8 03208825 */ move $s1, $t9 +/* 10C3EC 7F0D78BC AFAA0048 */ sw $t2, 0x48($sp) +/* 10C3F0 7F0D78C0 10002BCE */ b .L7F0E27FC +/* 10C3F4 7F0D78C4 A3B301EB */ sb $s3, 0x1eb($sp) +spectrum_op_82: +/* 10C3F8 7F0D78C8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C3FC 7F0D78CC 328D00FF */ andi $t5, $s4, 0xff +/* 10C400 7F0D78D0 020D7821 */ addu $t7, $s0, $t5 +/* 10C404 7F0D78D4 250C0004 */ addiu $t4, $t0, 4 +/* 10C408 7F0D78D8 31E900A8 */ andi $t1, $t7, 0xa8 +/* 10C40C 7F0D78DC 000F5203 */ sra $t2, $t7, 8 +/* 10C410 7F0D78E0 31B9000F */ andi $t9, $t5, 0xf +/* 10C414 7F0D78E4 320E000F */ andi $t6, $s0, 0xf +/* 10C418 7F0D78E8 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C41C 7F0D78EC 01D94021 */ addu $t0, $t6, $t9 +/* 10C420 7F0D78F0 012A5825 */ or $t3, $t1, $t2 +/* 10C424 7F0D78F4 2401000F */ li $at, 15 +/* 10C428 7F0D78F8 0028602A */ slt $t4, $at, $t0 +/* 10C42C 7F0D78FC 02005027 */ not $t2, $s0 +/* 10C430 7F0D7900 01F04026 */ xor $t0, $t7, $s0 +/* 10C434 7F0D7904 A7AF01E8 */ sh $t7, 0x1e8($sp) +/* 10C438 7F0D7908 93B001E9 */ lbu $s0, 0x1e9($sp) +/* 10C43C 7F0D790C 014D7026 */ xor $t6, $t2, $t5 +/* 10C440 7F0D7910 000CC100 */ sll $t8, $t4, 4 +/* 10C444 7F0D7914 31D90080 */ andi $t9, $t6, 0x80 +/* 10C448 7F0D7918 03286024 */ and $t4, $t9, $t0 +/* 10C44C 7F0D791C 01784825 */ or $t1, $t3, $t8 +/* 10C450 7F0D7920 000C5943 */ sra $t3, $t4, 5 +/* 10C454 7F0D7924 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C458 7F0D7928 000A7180 */ sll $t6, $t2, 6 +/* 10C45C 7F0D792C 012BC025 */ or $t8, $t1, $t3 +/* 10C460 7F0D7930 030E8825 */ or $s1, $t8, $t6 +/* 10C464 7F0D7934 322F00FF */ andi $t7, $s1, 0xff +/* 10C468 7F0D7938 01E08825 */ move $s1, $t7 +/* 10C46C 7F0D793C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C470 7F0D7940 10002BAE */ b .L7F0E27FC +/* 10C474 7F0D7944 A3B401E7 */ sb $s4, 0x1e7($sp) +spectrum_op_83: +/* 10C478 7F0D7948 8FB9028C */ lw $t9, 0x28c($sp) +/* 10C47C 7F0D794C 32AC00FF */ andi $t4, $s5, 0xff +/* 10C480 7F0D7950 020C5821 */ addu $t3, $s0, $t4 +/* 10C484 7F0D7954 27280004 */ addiu $t0, $t9, 4 +/* 10C488 7F0D7958 317800A8 */ andi $t8, $t3, 0xa8 +/* 10C48C 7F0D795C 000B5203 */ sra $t2, $t3, 8 +/* 10C490 7F0D7960 318F000F */ andi $t7, $t4, 0xf +/* 10C494 7F0D7964 320E000F */ andi $t6, $s0, 0xf +/* 10C498 7F0D7968 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C49C 7F0D796C 01CFC821 */ addu $t9, $t6, $t7 +/* 10C4A0 7F0D7970 030A6825 */ or $t5, $t8, $t2 +/* 10C4A4 7F0D7974 2401000F */ li $at, 15 +/* 10C4A8 7F0D7978 0039402A */ slt $t0, $at, $t9 +/* 10C4AC 7F0D797C 02005027 */ not $t2, $s0 +/* 10C4B0 7F0D7980 0170C826 */ xor $t9, $t3, $s0 +/* 10C4B4 7F0D7984 A7AB01E4 */ sh $t3, 0x1e4($sp) +/* 10C4B8 7F0D7988 93B001E5 */ lbu $s0, 0x1e5($sp) +/* 10C4BC 7F0D798C 014C7026 */ xor $t6, $t2, $t4 +/* 10C4C0 7F0D7990 00084900 */ sll $t1, $t0, 4 +/* 10C4C4 7F0D7994 31CF0080 */ andi $t7, $t6, 0x80 +/* 10C4C8 7F0D7998 01F94024 */ and $t0, $t7, $t9 +/* 10C4CC 7F0D799C 01A9C025 */ or $t8, $t5, $t1 +/* 10C4D0 7F0D79A0 00086943 */ sra $t5, $t0, 5 +/* 10C4D4 7F0D79A4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C4D8 7F0D79A8 000A7180 */ sll $t6, $t2, 6 +/* 10C4DC 7F0D79AC 030D4825 */ or $t1, $t8, $t5 +/* 10C4E0 7F0D79B0 012E8825 */ or $s1, $t1, $t6 +/* 10C4E4 7F0D79B4 322B00FF */ andi $t3, $s1, 0xff +/* 10C4E8 7F0D79B8 01608825 */ move $s1, $t3 +/* 10C4EC 7F0D79BC AFAA0048 */ sw $t2, 0x48($sp) +/* 10C4F0 7F0D79C0 10002B8E */ b .L7F0E27FC +/* 10C4F4 7F0D79C4 A3B501E3 */ sb $s5, 0x1e3($sp) +spectrum_op_84: +/* 10C4F8 7F0D79C8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C4FC 7F0D79CC 93A80287 */ lbu $t0, 0x287($sp) +/* 10C500 7F0D79D0 93B80287 */ lbu $t8, 0x287($sp) +/* 10C504 7F0D79D4 25F90004 */ addiu $t9, $t7, 4 +/* 10C508 7F0D79D8 15000003 */ bnez $t0, .L7F0D79E8 +/* 10C50C 7F0D79DC AFB9028C */ sw $t9, 0x28c($sp) +/* 10C510 7F0D79E0 1000000C */ b .L7F0D7A14 +/* 10C514 7F0D79E4 A3B601DF */ sb $s6, 0x1df($sp) +.L7F0D79E8: +/* 10C518 7F0D79E8 24010001 */ li $at, 1 +/* 10C51C 7F0D79EC 17010005 */ bne $t8, $at, .L7F0D7A04 +/* 10C520 7F0D79F0 97AA0294 */ lhu $t2, 0x294($sp) +/* 10C524 7F0D79F4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10C528 7F0D79F8 000D4A03 */ sra $t1, $t5, 8 +/* 10C52C 7F0D79FC 10000003 */ b .L7F0D7A0C +/* 10C530 7F0D7A00 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7A04: +/* 10C534 7F0D7A04 000A6203 */ sra $t4, $t2, 8 +/* 10C538 7F0D7A08 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D7A0C: +/* 10C53C 7F0D7A0C 8FAE0048 */ lw $t6, 0x48($sp) +/* 10C540 7F0D7A10 A3AE01DF */ sb $t6, 0x1df($sp) +.L7F0D7A14: +/* 10C544 7F0D7A14 93AB01DF */ lbu $t3, 0x1df($sp) +/* 10C548 7F0D7A18 3209000F */ andi $t1, $s0, 0xf +/* 10C54C 7F0D7A1C 2401000F */ li $at, 15 +/* 10C550 7F0D7A20 020BC821 */ addu $t9, $s0, $t3 +/* 10C554 7F0D7A24 332800A8 */ andi $t0, $t9, 0xa8 +/* 10C558 7F0D7A28 0019C203 */ sra $t8, $t9, 8 +/* 10C55C 7F0D7A2C 316A000F */ andi $t2, $t3, 0xf +/* 10C560 7F0D7A30 012A6021 */ addu $t4, $t1, $t2 +/* 10C564 7F0D7A34 01186825 */ or $t5, $t0, $t8 +/* 10C568 7F0D7A38 0200C027 */ not $t8, $s0 +/* 10C56C 7F0D7A3C 002C702A */ slt $t6, $at, $t4 +/* 10C570 7F0D7A40 03306026 */ xor $t4, $t9, $s0 +/* 10C574 7F0D7A44 A7B901E0 */ sh $t9, 0x1e0($sp) +/* 10C578 7F0D7A48 93B001E1 */ lbu $s0, 0x1e1($sp) +/* 10C57C 7F0D7A4C 000E7900 */ sll $t7, $t6, 4 +/* 10C580 7F0D7A50 030B4826 */ xor $t1, $t8, $t3 +/* 10C584 7F0D7A54 312A0080 */ andi $t2, $t1, 0x80 +/* 10C588 7F0D7A58 014C7024 */ and $t6, $t2, $t4 +/* 10C58C 7F0D7A5C 01AF4025 */ or $t0, $t5, $t7 +/* 10C590 7F0D7A60 000E6943 */ sra $t5, $t6, 5 +/* 10C594 7F0D7A64 2E180001 */ sltiu $t8, $s0, 1 +/* 10C598 7F0D7A68 00184980 */ sll $t1, $t8, 6 +/* 10C59C 7F0D7A6C 010D7825 */ or $t7, $t0, $t5 +/* 10C5A0 7F0D7A70 01E98825 */ or $s1, $t7, $t1 +/* 10C5A4 7F0D7A74 323900FF */ andi $t9, $s1, 0xff +/* 10C5A8 7F0D7A78 03208825 */ move $s1, $t9 +/* 10C5AC 7F0D7A7C 10002B5F */ b .L7F0E27FC +/* 10C5B0 7F0D7A80 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_85: +/* 10C5B4 7F0D7A84 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C5B8 7F0D7A88 93AE0287 */ lbu $t6, 0x287($sp) +/* 10C5BC 7F0D7A8C 93A80287 */ lbu $t0, 0x287($sp) +/* 10C5C0 7F0D7A90 254C0004 */ addiu $t4, $t2, 4 +/* 10C5C4 7F0D7A94 15C00003 */ bnez $t6, .L7F0D7AA4 +/* 10C5C8 7F0D7A98 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C5CC 7F0D7A9C 1000000C */ b .L7F0D7AD0 +/* 10C5D0 7F0D7AA0 A3B701DB */ sb $s7, 0x1db($sp) +.L7F0D7AA4: +/* 10C5D4 7F0D7AA4 24010001 */ li $at, 1 +/* 10C5D8 7F0D7AA8 15010005 */ bne $t0, $at, .L7F0D7AC0 +/* 10C5DC 7F0D7AAC 97B80294 */ lhu $t8, 0x294($sp) +/* 10C5E0 7F0D7AB0 97AD0296 */ lhu $t5, 0x296($sp) +/* 10C5E4 7F0D7AB4 31AF00FF */ andi $t7, $t5, 0xff +/* 10C5E8 7F0D7AB8 10000003 */ b .L7F0D7AC8 +/* 10C5EC 7F0D7ABC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D7AC0: +/* 10C5F0 7F0D7AC0 330B00FF */ andi $t3, $t8, 0xff +/* 10C5F4 7F0D7AC4 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D7AC8: +/* 10C5F8 7F0D7AC8 8FA90048 */ lw $t1, 0x48($sp) +/* 10C5FC 7F0D7ACC A3A901DB */ sb $t1, 0x1db($sp) +.L7F0D7AD0: +/* 10C600 7F0D7AD0 93B901DB */ lbu $t9, 0x1db($sp) +/* 10C604 7F0D7AD4 320F000F */ andi $t7, $s0, 0xf +/* 10C608 7F0D7AD8 2401000F */ li $at, 15 +/* 10C60C 7F0D7ADC 02196021 */ addu $t4, $s0, $t9 +/* 10C610 7F0D7AE0 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10C614 7F0D7AE4 000C4203 */ sra $t0, $t4, 8 +/* 10C618 7F0D7AE8 3338000F */ andi $t8, $t9, 0xf +/* 10C61C 7F0D7AEC 01F85821 */ addu $t3, $t7, $t8 +/* 10C620 7F0D7AF0 01C86825 */ or $t5, $t6, $t0 +/* 10C624 7F0D7AF4 02004027 */ not $t0, $s0 +/* 10C628 7F0D7AF8 002B482A */ slt $t1, $at, $t3 +/* 10C62C 7F0D7AFC 01905826 */ xor $t3, $t4, $s0 +/* 10C630 7F0D7B00 A7AC01DC */ sh $t4, 0x1dc($sp) +/* 10C634 7F0D7B04 93B001DD */ lbu $s0, 0x1dd($sp) +/* 10C638 7F0D7B08 00095100 */ sll $t2, $t1, 4 +/* 10C63C 7F0D7B0C 01197826 */ xor $t7, $t0, $t9 +/* 10C640 7F0D7B10 31F80080 */ andi $t8, $t7, 0x80 +/* 10C644 7F0D7B14 030B4824 */ and $t1, $t8, $t3 +/* 10C648 7F0D7B18 01AA7025 */ or $t6, $t5, $t2 +/* 10C64C 7F0D7B1C 00096943 */ sra $t5, $t1, 5 +/* 10C650 7F0D7B20 2E080001 */ sltiu $t0, $s0, 1 +/* 10C654 7F0D7B24 00087980 */ sll $t7, $t0, 6 +/* 10C658 7F0D7B28 01CD5025 */ or $t2, $t6, $t5 +/* 10C65C 7F0D7B2C 014F8825 */ or $s1, $t2, $t7 +/* 10C660 7F0D7B30 322C00FF */ andi $t4, $s1, 0xff +/* 10C664 7F0D7B34 01808825 */ move $s1, $t4 +/* 10C668 7F0D7B38 10002B30 */ b .L7F0E27FC +/* 10C66C 7F0D7B3C AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_86: +/* 10C670 7F0D7B40 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C674 7F0D7B44 93A90287 */ lbu $t1, 0x287($sp) +/* 10C678 7F0D7B48 00167200 */ sll $t6, $s6, 8 +/* 10C67C 7F0D7B4C 270B0007 */ addiu $t3, $t8, 7 +/* 10C680 7F0D7B50 15200004 */ bnez $t1, .L7F0D7B64 +/* 10C684 7F0D7B54 AFAB028C */ sw $t3, 0x28c($sp) +/* 10C688 7F0D7B58 01D76825 */ or $t5, $t6, $s7 +/* 10C68C 7F0D7B5C 10000016 */ b .L7F0D7BB8 +/* 10C690 7F0D7B60 A7AD01D8 */ sh $t5, 0x1d8($sp) +.L7F0D7B64: +/* 10C694 7F0D7B64 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C698 7F0D7B68 93B90287 */ lbu $t9, 0x287($sp) +/* 10C69C 7F0D7B6C 24010001 */ li $at, 1 +/* 10C6A0 7F0D7B70 25480008 */ addiu $t0, $t2, 8 +/* 10C6A4 7F0D7B74 17210004 */ bne $t9, $at, .L7F0D7B88 +/* 10C6A8 7F0D7B78 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C6AC 7F0D7B7C 97AF0296 */ lhu $t7, 0x296($sp) +/* 10C6B0 7F0D7B80 10000003 */ b .L7F0D7B90 +/* 10C6B4 7F0D7B84 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D7B88: +/* 10C6B8 7F0D7B88 97AC0294 */ lhu $t4, 0x294($sp) +/* 10C6BC 7F0D7B8C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D7B90: +/* 10C6C0 7F0D7B90 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10C6C4 7F0D7B94 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10C6C8 7F0D7B98 97B80298 */ lhu $t8, 0x298($sp) +/* 10C6CC 7F0D7B9C 8FAD0048 */ lw $t5, 0x48($sp) +/* 10C6D0 7F0D7BA0 030B4821 */ addu $t1, $t8, $t3 +/* 10C6D4 7F0D7BA4 812E0000 */ lb $t6, ($t1) +/* 10C6D8 7F0D7BA8 27080001 */ addiu $t0, $t8, 1 +/* 10C6DC 7F0D7BAC A7A80298 */ sh $t0, 0x298($sp) +/* 10C6E0 7F0D7BB0 01CD5021 */ addu $t2, $t6, $t5 +/* 10C6E4 7F0D7BB4 A7AA01D8 */ sh $t2, 0x1d8($sp) +.L7F0D7BB8: +/* 10C6E8 7F0D7BB8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10C6EC 7F0D7BBC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10C6F0 7F0D7BC0 97B901D8 */ lhu $t9, 0x1d8($sp) +/* 10C6F4 7F0D7BC4 2401000F */ li $at, 15 +/* 10C6F8 7F0D7BC8 032F6021 */ addu $t4, $t9, $t7 +/* 10C6FC 7F0D7BCC 918B0000 */ lbu $t3, ($t4) +/* 10C700 7F0D7BD0 3219000F */ andi $t9, $s0, 0xf +/* 10C704 7F0D7BD4 020B7021 */ addu $t6, $s0, $t3 +/* 10C708 7F0D7BD8 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 10C70C 7F0D7BDC 000E5203 */ sra $t2, $t6, 8 +/* 10C710 7F0D7BE0 3168000F */ andi $t0, $t3, 0xf +/* 10C714 7F0D7BE4 03287821 */ addu $t7, $t9, $t0 +/* 10C718 7F0D7BE8 01AAC025 */ or $t8, $t5, $t2 +/* 10C71C 7F0D7BEC 02005027 */ not $t2, $s0 +/* 10C720 7F0D7BF0 002F602A */ slt $t4, $at, $t7 +/* 10C724 7F0D7BF4 01D07826 */ xor $t7, $t6, $s0 +/* 10C728 7F0D7BF8 A7AE01D6 */ sh $t6, 0x1d6($sp) +/* 10C72C 7F0D7BFC 93B001D7 */ lbu $s0, 0x1d7($sp) +/* 10C730 7F0D7C00 000C4900 */ sll $t1, $t4, 4 +/* 10C734 7F0D7C04 014BC826 */ xor $t9, $t2, $t3 +/* 10C738 7F0D7C08 33280080 */ andi $t0, $t9, 0x80 +/* 10C73C 7F0D7C0C 010F6024 */ and $t4, $t0, $t7 +/* 10C740 7F0D7C10 03096825 */ or $t5, $t8, $t1 +/* 10C744 7F0D7C14 000CC143 */ sra $t8, $t4, 5 +/* 10C748 7F0D7C18 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C74C 7F0D7C1C 000AC980 */ sll $t9, $t2, 6 +/* 10C750 7F0D7C20 01B84825 */ or $t1, $t5, $t8 +/* 10C754 7F0D7C24 01398825 */ or $s1, $t1, $t9 +/* 10C758 7F0D7C28 322E00FF */ andi $t6, $s1, 0xff +/* 10C75C 7F0D7C2C 01C08825 */ move $s1, $t6 +/* 10C760 7F0D7C30 AFAA0048 */ sw $t2, 0x48($sp) +/* 10C764 7F0D7C34 10002AF1 */ b .L7F0E27FC +/* 10C768 7F0D7C38 A3AB01D5 */ sb $t3, 0x1d5($sp) +spectrum_op_87: +/* 10C76C 7F0D7C3C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C770 7F0D7C40 320C00FF */ andi $t4, $s0, 0xff +/* 10C774 7F0D7C44 020CC021 */ addu $t8, $s0, $t4 +/* 10C778 7F0D7C48 250F0004 */ addiu $t7, $t0, 4 +/* 10C77C 7F0D7C4C 330900A8 */ andi $t1, $t8, 0xa8 +/* 10C780 7F0D7C50 00185203 */ sra $t2, $t8, 8 +/* 10C784 7F0D7C54 318E000F */ andi $t6, $t4, 0xf +/* 10C788 7F0D7C58 3219000F */ andi $t9, $s0, 0xf +/* 10C78C 7F0D7C5C AFAF028C */ sw $t7, 0x28c($sp) +/* 10C790 7F0D7C60 032E4021 */ addu $t0, $t9, $t6 +/* 10C794 7F0D7C64 012A5825 */ or $t3, $t1, $t2 +/* 10C798 7F0D7C68 2401000F */ li $at, 15 +/* 10C79C 7F0D7C6C 0028782A */ slt $t7, $at, $t0 +/* 10C7A0 7F0D7C70 02005027 */ not $t2, $s0 +/* 10C7A4 7F0D7C74 03104026 */ xor $t0, $t8, $s0 +/* 10C7A8 7F0D7C78 A7B801D2 */ sh $t8, 0x1d2($sp) +/* 10C7AC 7F0D7C7C A3B001D1 */ sb $s0, 0x1d1($sp) +/* 10C7B0 7F0D7C80 93B001D3 */ lbu $s0, 0x1d3($sp) +/* 10C7B4 7F0D7C84 014CC826 */ xor $t9, $t2, $t4 +/* 10C7B8 7F0D7C88 000F6900 */ sll $t5, $t7, 4 +/* 10C7BC 7F0D7C8C 332E0080 */ andi $t6, $t9, 0x80 +/* 10C7C0 7F0D7C90 01C87824 */ and $t7, $t6, $t0 +/* 10C7C4 7F0D7C94 016D4825 */ or $t1, $t3, $t5 +/* 10C7C8 7F0D7C98 000F5943 */ sra $t3, $t7, 5 +/* 10C7CC 7F0D7C9C 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C7D0 7F0D7CA0 000AC980 */ sll $t9, $t2, 6 +/* 10C7D4 7F0D7CA4 012B6825 */ or $t5, $t1, $t3 +/* 10C7D8 7F0D7CA8 01B98825 */ or $s1, $t5, $t9 +/* 10C7DC 7F0D7CAC 323800FF */ andi $t8, $s1, 0xff +/* 10C7E0 7F0D7CB0 03008825 */ move $s1, $t8 +/* 10C7E4 7F0D7CB4 10002AD1 */ b .L7F0E27FC +/* 10C7E8 7F0D7CB8 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_88: +/* 10C7EC 7F0D7CBC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C7F0 7F0D7CC0 324F00FF */ andi $t7, $s2, 0xff +/* 10C7F4 7F0D7CC4 020F4821 */ addu $t1, $s0, $t7 +/* 10C7F8 7F0D7CC8 322B0001 */ andi $t3, $s1, 1 +/* 10C7FC 7F0D7CCC 012B6821 */ addu $t5, $t1, $t3 +/* 10C800 7F0D7CD0 25C80004 */ addiu $t0, $t6, 4 +/* 10C804 7F0D7CD4 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C808 7F0D7CD8 3208000F */ andi $t0, $s0, 0xf +/* 10C80C 7F0D7CDC 31E9000F */ andi $t1, $t7, 0xf +/* 10C810 7F0D7CE0 01095821 */ addu $t3, $t0, $t1 +/* 10C814 7F0D7CE4 31AC00A8 */ andi $t4, $t5, 0xa8 +/* 10C818 7F0D7CE8 000DC203 */ sra $t8, $t5, 8 +/* 10C81C 7F0D7CEC 322A0001 */ andi $t2, $s1, 1 +/* 10C820 7F0D7CF0 016AC821 */ addu $t9, $t3, $t2 +/* 10C824 7F0D7CF4 01987025 */ or $t6, $t4, $t8 +/* 10C828 7F0D7CF8 2401000F */ li $at, 15 +/* 10C82C 7F0D7CFC 0039602A */ slt $t4, $at, $t9 +/* 10C830 7F0D7D00 000CC100 */ sll $t8, $t4, 4 +/* 10C834 7F0D7D04 01A0C825 */ move $t9, $t5 +/* 10C838 7F0D7D08 02004827 */ not $t1, $s0 +/* 10C83C 7F0D7D0C 03306026 */ xor $t4, $t9, $s0 +/* 10C840 7F0D7D10 A7AD01CE */ sh $t5, 0x1ce($sp) +/* 10C844 7F0D7D14 93B001CF */ lbu $s0, 0x1cf($sp) +/* 10C848 7F0D7D18 012F5826 */ xor $t3, $t1, $t7 +/* 10C84C 7F0D7D1C 316A0080 */ andi $t2, $t3, 0x80 +/* 10C850 7F0D7D20 01D84025 */ or $t0, $t6, $t8 +/* 10C854 7F0D7D24 014C7024 */ and $t6, $t2, $t4 +/* 10C858 7F0D7D28 000EC143 */ sra $t8, $t6, 5 +/* 10C85C 7F0D7D2C 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10C860 7F0D7D30 000F6980 */ sll $t5, $t7, 6 +/* 10C864 7F0D7D34 01184825 */ or $t1, $t0, $t8 +/* 10C868 7F0D7D38 012D8825 */ or $s1, $t1, $t5 +/* 10C86C 7F0D7D3C 323900FF */ andi $t9, $s1, 0xff +/* 10C870 7F0D7D40 03208825 */ move $s1, $t9 +/* 10C874 7F0D7D44 AFAF0048 */ sw $t7, 0x48($sp) +/* 10C878 7F0D7D48 10002AAC */ b .L7F0E27FC +/* 10C87C 7F0D7D4C A3B201CD */ sb $s2, 0x1cd($sp) +spectrum_op_89: +/* 10C880 7F0D7D50 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C884 7F0D7D54 326E00FF */ andi $t6, $s3, 0xff +/* 10C888 7F0D7D58 020E4021 */ addu $t0, $s0, $t6 +/* 10C88C 7F0D7D5C 32380001 */ andi $t8, $s1, 1 +/* 10C890 7F0D7D60 01184821 */ addu $t1, $t0, $t8 +/* 10C894 7F0D7D64 254C0004 */ addiu $t4, $t2, 4 +/* 10C898 7F0D7D68 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C89C 7F0D7D6C 320C000F */ andi $t4, $s0, 0xf +/* 10C8A0 7F0D7D70 31C8000F */ andi $t0, $t6, 0xf +/* 10C8A4 7F0D7D74 0188C021 */ addu $t8, $t4, $t0 +/* 10C8A8 7F0D7D78 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10C8AC 7F0D7D7C 0009CA03 */ sra $t9, $t1, 8 +/* 10C8B0 7F0D7D80 322F0001 */ andi $t7, $s1, 1 +/* 10C8B4 7F0D7D84 030F6821 */ addu $t5, $t8, $t7 +/* 10C8B8 7F0D7D88 01795025 */ or $t2, $t3, $t9 +/* 10C8BC 7F0D7D8C 2401000F */ li $at, 15 +/* 10C8C0 7F0D7D90 002D582A */ slt $t3, $at, $t5 +/* 10C8C4 7F0D7D94 000BC900 */ sll $t9, $t3, 4 +/* 10C8C8 7F0D7D98 01206825 */ move $t5, $t1 +/* 10C8CC 7F0D7D9C 02004027 */ not $t0, $s0 +/* 10C8D0 7F0D7DA0 01B05826 */ xor $t3, $t5, $s0 +/* 10C8D4 7F0D7DA4 A7A901CA */ sh $t1, 0x1ca($sp) +/* 10C8D8 7F0D7DA8 93B001CB */ lbu $s0, 0x1cb($sp) +/* 10C8DC 7F0D7DAC 010EC026 */ xor $t8, $t0, $t6 +/* 10C8E0 7F0D7DB0 330F0080 */ andi $t7, $t8, 0x80 +/* 10C8E4 7F0D7DB4 01596025 */ or $t4, $t2, $t9 +/* 10C8E8 7F0D7DB8 01EB5024 */ and $t2, $t7, $t3 +/* 10C8EC 7F0D7DBC 000AC943 */ sra $t9, $t2, 5 +/* 10C8F0 7F0D7DC0 2E0E0001 */ sltiu $t6, $s0, 1 +/* 10C8F4 7F0D7DC4 000E4980 */ sll $t1, $t6, 6 +/* 10C8F8 7F0D7DC8 01994025 */ or $t0, $t4, $t9 +/* 10C8FC 7F0D7DCC 01098825 */ or $s1, $t0, $t1 +/* 10C900 7F0D7DD0 322D00FF */ andi $t5, $s1, 0xff +/* 10C904 7F0D7DD4 01A08825 */ move $s1, $t5 +/* 10C908 7F0D7DD8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10C90C 7F0D7DDC 10002A87 */ b .L7F0E27FC +/* 10C910 7F0D7DE0 A3B301C9 */ sb $s3, 0x1c9($sp) +spectrum_op_8A: +/* 10C914 7F0D7DE4 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C918 7F0D7DE8 328A00FF */ andi $t2, $s4, 0xff +/* 10C91C 7F0D7DEC 020A6021 */ addu $t4, $s0, $t2 +/* 10C920 7F0D7DF0 32390001 */ andi $t9, $s1, 1 +/* 10C924 7F0D7DF4 01994021 */ addu $t0, $t4, $t9 +/* 10C928 7F0D7DF8 25EB0004 */ addiu $t3, $t7, 4 +/* 10C92C 7F0D7DFC AFAB028C */ sw $t3, 0x28c($sp) +/* 10C930 7F0D7E00 320B000F */ andi $t3, $s0, 0xf +/* 10C934 7F0D7E04 314C000F */ andi $t4, $t2, 0xf +/* 10C938 7F0D7E08 016CC821 */ addu $t9, $t3, $t4 +/* 10C93C 7F0D7E0C 311800A8 */ andi $t8, $t0, 0xa8 +/* 10C940 7F0D7E10 00086A03 */ sra $t5, $t0, 8 +/* 10C944 7F0D7E14 322E0001 */ andi $t6, $s1, 1 +/* 10C948 7F0D7E18 032E4821 */ addu $t1, $t9, $t6 +/* 10C94C 7F0D7E1C 030D7825 */ or $t7, $t8, $t5 +/* 10C950 7F0D7E20 2401000F */ li $at, 15 +/* 10C954 7F0D7E24 0029C02A */ slt $t8, $at, $t1 +/* 10C958 7F0D7E28 00186900 */ sll $t5, $t8, 4 +/* 10C95C 7F0D7E2C 01004825 */ move $t1, $t0 +/* 10C960 7F0D7E30 02006027 */ not $t4, $s0 +/* 10C964 7F0D7E34 0130C026 */ xor $t8, $t1, $s0 +/* 10C968 7F0D7E38 A7A801C6 */ sh $t0, 0x1c6($sp) +/* 10C96C 7F0D7E3C 93B001C7 */ lbu $s0, 0x1c7($sp) +/* 10C970 7F0D7E40 018AC826 */ xor $t9, $t4, $t2 +/* 10C974 7F0D7E44 332E0080 */ andi $t6, $t9, 0x80 +/* 10C978 7F0D7E48 01ED5825 */ or $t3, $t7, $t5 +/* 10C97C 7F0D7E4C 01D87824 */ and $t7, $t6, $t8 +/* 10C980 7F0D7E50 000F6943 */ sra $t5, $t7, 5 +/* 10C984 7F0D7E54 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C988 7F0D7E58 000A4180 */ sll $t0, $t2, 6 +/* 10C98C 7F0D7E5C 016D6025 */ or $t4, $t3, $t5 +/* 10C990 7F0D7E60 01888825 */ or $s1, $t4, $t0 +/* 10C994 7F0D7E64 322900FF */ andi $t1, $s1, 0xff +/* 10C998 7F0D7E68 01208825 */ move $s1, $t1 +/* 10C99C 7F0D7E6C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C9A0 7F0D7E70 10002A62 */ b .L7F0E27FC +/* 10C9A4 7F0D7E74 A3B401C5 */ sb $s4, 0x1c5($sp) +spectrum_op_8B: +/* 10C9A8 7F0D7E78 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C9AC 7F0D7E7C 32AF00FF */ andi $t7, $s5, 0xff +/* 10C9B0 7F0D7E80 020F5821 */ addu $t3, $s0, $t7 +/* 10C9B4 7F0D7E84 322D0001 */ andi $t5, $s1, 1 +/* 10C9B8 7F0D7E88 016D6021 */ addu $t4, $t3, $t5 +/* 10C9BC 7F0D7E8C 25D80004 */ addiu $t8, $t6, 4 +/* 10C9C0 7F0D7E90 AFB8028C */ sw $t8, 0x28c($sp) +/* 10C9C4 7F0D7E94 3218000F */ andi $t8, $s0, 0xf +/* 10C9C8 7F0D7E98 31EB000F */ andi $t3, $t7, 0xf +/* 10C9CC 7F0D7E9C 030B6821 */ addu $t5, $t8, $t3 +/* 10C9D0 7F0D7EA0 319900A8 */ andi $t9, $t4, 0xa8 +/* 10C9D4 7F0D7EA4 000C4A03 */ sra $t1, $t4, 8 +/* 10C9D8 7F0D7EA8 322A0001 */ andi $t2, $s1, 1 +/* 10C9DC 7F0D7EAC 01AA4021 */ addu $t0, $t5, $t2 +/* 10C9E0 7F0D7EB0 03297025 */ or $t6, $t9, $t1 +/* 10C9E4 7F0D7EB4 2401000F */ li $at, 15 +/* 10C9E8 7F0D7EB8 0028C82A */ slt $t9, $at, $t0 +/* 10C9EC 7F0D7EBC 00194900 */ sll $t1, $t9, 4 +/* 10C9F0 7F0D7EC0 01804025 */ move $t0, $t4 +/* 10C9F4 7F0D7EC4 02005827 */ not $t3, $s0 +/* 10C9F8 7F0D7EC8 0110C826 */ xor $t9, $t0, $s0 +/* 10C9FC 7F0D7ECC A7AC01C2 */ sh $t4, 0x1c2($sp) +/* 10CA00 7F0D7ED0 93B001C3 */ lbu $s0, 0x1c3($sp) +/* 10CA04 7F0D7ED4 016F6826 */ xor $t5, $t3, $t7 +/* 10CA08 7F0D7ED8 31AA0080 */ andi $t2, $t5, 0x80 +/* 10CA0C 7F0D7EDC 01C9C025 */ or $t8, $t6, $t1 +/* 10CA10 7F0D7EE0 01597024 */ and $t6, $t2, $t9 +/* 10CA14 7F0D7EE4 000E4943 */ sra $t1, $t6, 5 +/* 10CA18 7F0D7EE8 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10CA1C 7F0D7EEC 000F6180 */ sll $t4, $t7, 6 +/* 10CA20 7F0D7EF0 03095825 */ or $t3, $t8, $t1 +/* 10CA24 7F0D7EF4 016C8825 */ or $s1, $t3, $t4 +/* 10CA28 7F0D7EF8 322800FF */ andi $t0, $s1, 0xff +/* 10CA2C 7F0D7EFC 01008825 */ move $s1, $t0 +/* 10CA30 7F0D7F00 AFAF0048 */ sw $t7, 0x48($sp) +/* 10CA34 7F0D7F04 10002A3D */ b .L7F0E27FC +/* 10CA38 7F0D7F08 A3B501C1 */ sb $s5, 0x1c1($sp) +spectrum_op_8C: +/* 10CA3C 7F0D7F0C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10CA40 7F0D7F10 93AE0287 */ lbu $t6, 0x287($sp) +/* 10CA44 7F0D7F14 93B80287 */ lbu $t8, 0x287($sp) +/* 10CA48 7F0D7F18 25590004 */ addiu $t9, $t2, 4 +/* 10CA4C 7F0D7F1C 15C00003 */ bnez $t6, .L7F0D7F2C +/* 10CA50 7F0D7F20 AFB9028C */ sw $t9, 0x28c($sp) +/* 10CA54 7F0D7F24 1000000C */ b .L7F0D7F58 +/* 10CA58 7F0D7F28 A3B601BD */ sb $s6, 0x1bd($sp) +.L7F0D7F2C: +/* 10CA5C 7F0D7F2C 24010001 */ li $at, 1 +/* 10CA60 7F0D7F30 17010005 */ bne $t8, $at, .L7F0D7F48 +/* 10CA64 7F0D7F34 97AF0294 */ lhu $t7, 0x294($sp) +/* 10CA68 7F0D7F38 97A90296 */ lhu $t1, 0x296($sp) +/* 10CA6C 7F0D7F3C 00095A03 */ sra $t3, $t1, 8 +/* 10CA70 7F0D7F40 10000003 */ b .L7F0D7F50 +/* 10CA74 7F0D7F44 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D7F48: +/* 10CA78 7F0D7F48 000F6A03 */ sra $t5, $t7, 8 +/* 10CA7C 7F0D7F4C AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D7F50: +/* 10CA80 7F0D7F50 8FAC0048 */ lw $t4, 0x48($sp) +/* 10CA84 7F0D7F54 A3AC01BD */ sb $t4, 0x1bd($sp) +.L7F0D7F58: +/* 10CA88 7F0D7F58 93A801BD */ lbu $t0, 0x1bd($sp) +/* 10CA8C 7F0D7F5C 32390001 */ andi $t9, $s1, 1 +/* 10CA90 7F0D7F60 320C000F */ andi $t4, $s0, 0xf +/* 10CA94 7F0D7F64 02085021 */ addu $t2, $s0, $t0 +/* 10CA98 7F0D7F68 01597021 */ addu $t6, $t2, $t9 +/* 10CA9C 7F0D7F6C 310A000F */ andi $t2, $t0, 0xf +/* 10CAA0 7F0D7F70 018AC821 */ addu $t9, $t4, $t2 +/* 10CAA4 7F0D7F74 31C900A8 */ andi $t1, $t6, 0xa8 +/* 10CAA8 7F0D7F78 000E7A03 */ sra $t7, $t6, 8 +/* 10CAAC 7F0D7F7C 32380001 */ andi $t8, $s1, 1 +/* 10CAB0 7F0D7F80 03385821 */ addu $t3, $t9, $t8 +/* 10CAB4 7F0D7F84 012F6825 */ or $t5, $t1, $t7 +/* 10CAB8 7F0D7F88 2401000F */ li $at, 15 +/* 10CABC 7F0D7F8C 002B482A */ slt $t1, $at, $t3 +/* 10CAC0 7F0D7F90 00097900 */ sll $t7, $t1, 4 +/* 10CAC4 7F0D7F94 01C05825 */ move $t3, $t6 +/* 10CAC8 7F0D7F98 02005027 */ not $t2, $s0 +/* 10CACC 7F0D7F9C 01704826 */ xor $t1, $t3, $s0 +/* 10CAD0 7F0D7FA0 A7AE01BE */ sh $t6, 0x1be($sp) +/* 10CAD4 7F0D7FA4 93B001BF */ lbu $s0, 0x1bf($sp) +/* 10CAD8 7F0D7FA8 0148C826 */ xor $t9, $t2, $t0 +/* 10CADC 7F0D7FAC 33380080 */ andi $t8, $t9, 0x80 +/* 10CAE0 7F0D7FB0 01AF6025 */ or $t4, $t5, $t7 +/* 10CAE4 7F0D7FB4 03096824 */ and $t5, $t8, $t1 +/* 10CAE8 7F0D7FB8 000D7943 */ sra $t7, $t5, 5 +/* 10CAEC 7F0D7FBC 2E080001 */ sltiu $t0, $s0, 1 +/* 10CAF0 7F0D7FC0 00087180 */ sll $t6, $t0, 6 +/* 10CAF4 7F0D7FC4 018F5025 */ or $t2, $t4, $t7 +/* 10CAF8 7F0D7FC8 014E8825 */ or $s1, $t2, $t6 +/* 10CAFC 7F0D7FCC 322B00FF */ andi $t3, $s1, 0xff +/* 10CB00 7F0D7FD0 01608825 */ move $s1, $t3 +/* 10CB04 7F0D7FD4 10002A09 */ b .L7F0E27FC +/* 10CB08 7F0D7FD8 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_8D: +/* 10CB0C 7F0D7FDC 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CB10 7F0D7FE0 93AD0287 */ lbu $t5, 0x287($sp) +/* 10CB14 7F0D7FE4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10CB18 7F0D7FE8 27090004 */ addiu $t1, $t8, 4 +/* 10CB1C 7F0D7FEC 15A00003 */ bnez $t5, .L7F0D7FFC +/* 10CB20 7F0D7FF0 AFA9028C */ sw $t1, 0x28c($sp) +/* 10CB24 7F0D7FF4 1000000C */ b .L7F0D8028 +/* 10CB28 7F0D7FF8 A3B701B9 */ sb $s7, 0x1b9($sp) +.L7F0D7FFC: +/* 10CB2C 7F0D7FFC 24010001 */ li $at, 1 +/* 10CB30 7F0D8000 15810005 */ bne $t4, $at, .L7F0D8018 +/* 10CB34 7F0D8004 97A80294 */ lhu $t0, 0x294($sp) +/* 10CB38 7F0D8008 97AF0296 */ lhu $t7, 0x296($sp) +/* 10CB3C 7F0D800C 31EA00FF */ andi $t2, $t7, 0xff +/* 10CB40 7F0D8010 10000003 */ b .L7F0D8020 +/* 10CB44 7F0D8014 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D8018: +/* 10CB48 7F0D8018 311900FF */ andi $t9, $t0, 0xff +/* 10CB4C 7F0D801C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D8020: +/* 10CB50 7F0D8020 8FAE0048 */ lw $t6, 0x48($sp) +/* 10CB54 7F0D8024 A3AE01B9 */ sb $t6, 0x1b9($sp) +.L7F0D8028: +/* 10CB58 7F0D8028 93AB01B9 */ lbu $t3, 0x1b9($sp) +/* 10CB5C 7F0D802C 32290001 */ andi $t1, $s1, 1 +/* 10CB60 7F0D8030 320E000F */ andi $t6, $s0, 0xf +/* 10CB64 7F0D8034 020BC021 */ addu $t8, $s0, $t3 +/* 10CB68 7F0D8038 03096821 */ addu $t5, $t8, $t1 +/* 10CB6C 7F0D803C 3178000F */ andi $t8, $t3, 0xf +/* 10CB70 7F0D8040 01D84821 */ addu $t1, $t6, $t8 +/* 10CB74 7F0D8044 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 10CB78 7F0D8048 000D4203 */ sra $t0, $t5, 8 +/* 10CB7C 7F0D804C 322C0001 */ andi $t4, $s1, 1 +/* 10CB80 7F0D8050 012C5021 */ addu $t2, $t1, $t4 +/* 10CB84 7F0D8054 01E8C825 */ or $t9, $t7, $t0 +/* 10CB88 7F0D8058 2401000F */ li $at, 15 +/* 10CB8C 7F0D805C 002A782A */ slt $t7, $at, $t2 +/* 10CB90 7F0D8060 000F4100 */ sll $t0, $t7, 4 +/* 10CB94 7F0D8064 01A05025 */ move $t2, $t5 +/* 10CB98 7F0D8068 0200C027 */ not $t8, $s0 +/* 10CB9C 7F0D806C 01507826 */ xor $t7, $t2, $s0 +/* 10CBA0 7F0D8070 A7AD01BA */ sh $t5, 0x1ba($sp) +/* 10CBA4 7F0D8074 93B001BB */ lbu $s0, 0x1bb($sp) +/* 10CBA8 7F0D8078 030B4826 */ xor $t1, $t8, $t3 +/* 10CBAC 7F0D807C 312C0080 */ andi $t4, $t1, 0x80 +/* 10CBB0 7F0D8080 03287025 */ or $t6, $t9, $t0 +/* 10CBB4 7F0D8084 018FC824 */ and $t9, $t4, $t7 +/* 10CBB8 7F0D8088 00194143 */ sra $t0, $t9, 5 +/* 10CBBC 7F0D808C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 10CBC0 7F0D8090 000B6980 */ sll $t5, $t3, 6 +/* 10CBC4 7F0D8094 01C8C025 */ or $t8, $t6, $t0 +/* 10CBC8 7F0D8098 030D8825 */ or $s1, $t8, $t5 +/* 10CBCC 7F0D809C 322A00FF */ andi $t2, $s1, 0xff +/* 10CBD0 7F0D80A0 01408825 */ move $s1, $t2 +/* 10CBD4 7F0D80A4 100029D5 */ b .L7F0E27FC +/* 10CBD8 7F0D80A8 AFAB0048 */ sw $t3, 0x48($sp) +spectrum_op_8E: +/* 10CBDC 7F0D80AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10CBE0 7F0D80B0 93B90287 */ lbu $t9, 0x287($sp) +/* 10CBE4 7F0D80B4 00167200 */ sll $t6, $s6, 8 +/* 10CBE8 7F0D80B8 258F0007 */ addiu $t7, $t4, 7 +/* 10CBEC 7F0D80BC 17200004 */ bnez $t9, .L7F0D80D0 +/* 10CBF0 7F0D80C0 AFAF028C */ sw $t7, 0x28c($sp) +/* 10CBF4 7F0D80C4 01D74025 */ or $t0, $t6, $s7 +/* 10CBF8 7F0D80C8 10000016 */ b .L7F0D8124 +/* 10CBFC 7F0D80CC A7A801B6 */ sh $t0, 0x1b6($sp) +.L7F0D80D0: +/* 10CC00 7F0D80D0 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CC04 7F0D80D4 93A90287 */ lbu $t1, 0x287($sp) +/* 10CC08 7F0D80D8 24010001 */ li $at, 1 +/* 10CC0C 7F0D80DC 270B0008 */ addiu $t3, $t8, 8 +/* 10CC10 7F0D80E0 15210004 */ bne $t1, $at, .L7F0D80F4 +/* 10CC14 7F0D80E4 AFAB028C */ sw $t3, 0x28c($sp) +/* 10CC18 7F0D80E8 97AD0296 */ lhu $t5, 0x296($sp) +/* 10CC1C 7F0D80EC 10000003 */ b .L7F0D80FC +/* 10CC20 7F0D80F0 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D80F4: +/* 10CC24 7F0D80F4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10CC28 7F0D80F8 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D80FC: +/* 10CC2C 7F0D80FC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10CC30 7F0D8100 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10CC34 7F0D8104 97AC0298 */ lhu $t4, 0x298($sp) +/* 10CC38 7F0D8108 8FA80048 */ lw $t0, 0x48($sp) +/* 10CC3C 7F0D810C 018FC821 */ addu $t9, $t4, $t7 +/* 10CC40 7F0D8110 832E0000 */ lb $t6, ($t9) +/* 10CC44 7F0D8114 258B0001 */ addiu $t3, $t4, 1 +/* 10CC48 7F0D8118 A7AB0298 */ sh $t3, 0x298($sp) +/* 10CC4C 7F0D811C 01C8C021 */ addu $t8, $t6, $t0 +/* 10CC50 7F0D8120 A7B801B6 */ sh $t8, 0x1b6($sp) +.L7F0D8124: +/* 10CC54 7F0D8124 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10CC58 7F0D8128 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10CC5C 7F0D812C 97A901B6 */ lhu $t1, 0x1b6($sp) +/* 10CC60 7F0D8130 322E0001 */ andi $t6, $s1, 1 +/* 10CC64 7F0D8134 32380001 */ andi $t8, $s1, 1 +/* 10CC68 7F0D8138 012D5021 */ addu $t2, $t1, $t5 +/* 10CC6C 7F0D813C 914F0000 */ lbu $t7, ($t2) +/* 10CC70 7F0D8140 2401000F */ li $at, 15 +/* 10CC74 7F0D8144 020FC821 */ addu $t9, $s0, $t7 +/* 10CC78 7F0D8148 032E4021 */ addu $t0, $t9, $t6 +/* 10CC7C 7F0D814C 3219000F */ andi $t9, $s0, 0xf +/* 10CC80 7F0D8150 31EA000F */ andi $t2, $t7, 0xf +/* 10CC84 7F0D8154 032A7021 */ addu $t6, $t9, $t2 +/* 10CC88 7F0D8158 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10CC8C 7F0D815C 00084A03 */ sra $t1, $t0, 8 +/* 10CC90 7F0D8160 01896825 */ or $t5, $t4, $t1 +/* 10CC94 7F0D8164 01D85821 */ addu $t3, $t6, $t8 +/* 10CC98 7F0D8168 002B602A */ slt $t4, $at, $t3 +/* 10CC9C 7F0D816C 000C4900 */ sll $t1, $t4, 4 +/* 10CCA0 7F0D8170 01005825 */ move $t3, $t0 +/* 10CCA4 7F0D8174 02005027 */ not $t2, $s0 +/* 10CCA8 7F0D8178 01706026 */ xor $t4, $t3, $s0 +/* 10CCAC 7F0D817C A7A801B4 */ sh $t0, 0x1b4($sp) +/* 10CCB0 7F0D8180 93B001B5 */ lbu $s0, 0x1b5($sp) +/* 10CCB4 7F0D8184 014F7026 */ xor $t6, $t2, $t7 +/* 10CCB8 7F0D8188 31D80080 */ andi $t8, $t6, 0x80 +/* 10CCBC 7F0D818C 01A9C825 */ or $t9, $t5, $t1 +/* 10CCC0 7F0D8190 030C6824 */ and $t5, $t8, $t4 +/* 10CCC4 7F0D8194 A3AF01B3 */ sb $t7, 0x1b3($sp) +/* 10CCC8 7F0D8198 000D4943 */ sra $t1, $t5, 5 +/* 10CCCC 7F0D819C 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10CCD0 7F0D81A0 000F4180 */ sll $t0, $t7, 6 +/* 10CCD4 7F0D81A4 03295025 */ or $t2, $t9, $t1 +/* 10CCD8 7F0D81A8 01488825 */ or $s1, $t2, $t0 +/* 10CCDC 7F0D81AC 322B00FF */ andi $t3, $s1, 0xff +/* 10CCE0 7F0D81B0 01608825 */ move $s1, $t3 +/* 10CCE4 7F0D81B4 10002991 */ b .L7F0E27FC +/* 10CCE8 7F0D81B8 AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_8F: +/* 10CCEC 7F0D81BC 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CCF0 7F0D81C0 320D00FF */ andi $t5, $s0, 0xff +/* 10CCF4 7F0D81C4 020DC821 */ addu $t9, $s0, $t5 +/* 10CCF8 7F0D81C8 32290001 */ andi $t1, $s1, 1 +/* 10CCFC 7F0D81CC 03295021 */ addu $t2, $t9, $t1 +/* 10CD00 7F0D81D0 270C0004 */ addiu $t4, $t8, 4 +/* 10CD04 7F0D81D4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10CD08 7F0D81D8 320C000F */ andi $t4, $s0, 0xf +/* 10CD0C 7F0D81DC 31B9000F */ andi $t9, $t5, 0xf +/* 10CD10 7F0D81E0 01994821 */ addu $t1, $t4, $t9 +/* 10CD14 7F0D81E4 314E00A8 */ andi $t6, $t2, 0xa8 +/* 10CD18 7F0D81E8 000A5A03 */ sra $t3, $t2, 8 +/* 10CD1C 7F0D81EC 322F0001 */ andi $t7, $s1, 1 +/* 10CD20 7F0D81F0 012F4021 */ addu $t0, $t1, $t7 +/* 10CD24 7F0D81F4 01CBC025 */ or $t8, $t6, $t3 +/* 10CD28 7F0D81F8 2401000F */ li $at, 15 +/* 10CD2C 7F0D81FC 0028702A */ slt $t6, $at, $t0 +/* 10CD30 7F0D8200 000E5900 */ sll $t3, $t6, 4 +/* 10CD34 7F0D8204 01404025 */ move $t0, $t2 +/* 10CD38 7F0D8208 0200C827 */ not $t9, $s0 +/* 10CD3C 7F0D820C 01107026 */ xor $t6, $t0, $s0 +/* 10CD40 7F0D8210 A7AA01B0 */ sh $t2, 0x1b0($sp) +/* 10CD44 7F0D8214 A3B001AF */ sb $s0, 0x1af($sp) +/* 10CD48 7F0D8218 93B001B1 */ lbu $s0, 0x1b1($sp) +/* 10CD4C 7F0D821C 032D4826 */ xor $t1, $t9, $t5 +/* 10CD50 7F0D8220 312F0080 */ andi $t7, $t1, 0x80 +/* 10CD54 7F0D8224 030B6025 */ or $t4, $t8, $t3 +/* 10CD58 7F0D8228 01EEC024 */ and $t8, $t7, $t6 +/* 10CD5C 7F0D822C 00185943 */ sra $t3, $t8, 5 +/* 10CD60 7F0D8230 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CD64 7F0D8234 000D5180 */ sll $t2, $t5, 6 +/* 10CD68 7F0D8238 018BC825 */ or $t9, $t4, $t3 +/* 10CD6C 7F0D823C 032A8825 */ or $s1, $t9, $t2 +/* 10CD70 7F0D8240 322800FF */ andi $t0, $s1, 0xff +/* 10CD74 7F0D8244 01008825 */ move $s1, $t0 +/* 10CD78 7F0D8248 1000296C */ b .L7F0E27FC +/* 10CD7C 7F0D824C AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_90: +/* 10CD80 7F0D8250 8FAF028C */ lw $t7, 0x28c($sp) +/* 10CD84 7F0D8254 325800FF */ andi $t8, $s2, 0xff +/* 10CD88 7F0D8258 02186023 */ subu $t4, $s0, $t8 +/* 10CD8C 7F0D825C 25EE0004 */ addiu $t6, $t7, 4 +/* 10CD90 7F0D8260 318B01FF */ andi $t3, $t4, 0x1ff +/* 10CD94 7F0D8264 AFAE028C */ sw $t6, 0x28c($sp) +/* 10CD98 7F0D8268 330E000F */ andi $t6, $t8, 0xf +/* 10CD9C 7F0D826C 316D00A8 */ andi $t5, $t3, 0xa8 +/* 10CDA0 7F0D8270 000B5203 */ sra $t2, $t3, 8 +/* 10CDA4 7F0D8274 320F000F */ andi $t7, $s0, 0xf +/* 10CDA8 7F0D8278 01EE602A */ slt $t4, $t7, $t6 +/* 10CDAC 7F0D827C 01AA4025 */ or $t0, $t5, $t2 +/* 10CDB0 7F0D8280 02186826 */ xor $t5, $s0, $t8 +/* 10CDB4 7F0D8284 000CC900 */ sll $t9, $t4, 4 +/* 10CDB8 7F0D8288 01707026 */ xor $t6, $t3, $s0 +/* 10CDBC 7F0D828C A7AB01AC */ sh $t3, 0x1ac($sp) +/* 10CDC0 7F0D8290 93B001AD */ lbu $s0, 0x1ad($sp) +/* 10CDC4 7F0D8294 31AA0080 */ andi $t2, $t5, 0x80 +/* 10CDC8 7F0D8298 014E6024 */ and $t4, $t2, $t6 +/* 10CDCC 7F0D829C 01194825 */ or $t1, $t0, $t9 +/* 10CDD0 7F0D82A0 000C4143 */ sra $t0, $t4, 5 +/* 10CDD4 7F0D82A4 01288825 */ or $s1, $t1, $t0 +/* 10CDD8 7F0D82A8 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CDDC 7F0D82AC 000D7980 */ sll $t7, $t5, 6 +/* 10CDE0 7F0D82B0 36380002 */ ori $t8, $s1, 2 +/* 10CDE4 7F0D82B4 030F8825 */ or $s1, $t8, $t7 +/* 10CDE8 7F0D82B8 322A00FF */ andi $t2, $s1, 0xff +/* 10CDEC 7F0D82BC 01408825 */ move $s1, $t2 +/* 10CDF0 7F0D82C0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CDF4 7F0D82C4 1000294D */ b .L7F0E27FC +/* 10CDF8 7F0D82C8 A3B201AB */ sb $s2, 0x1ab($sp) +spectrum_op_91: +/* 10CDFC 7F0D82CC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10CE00 7F0D82D0 326900FF */ andi $t1, $s3, 0xff +/* 10CE04 7F0D82D4 02094023 */ subu $t0, $s0, $t1 +/* 10CE08 7F0D82D8 25CC0004 */ addiu $t4, $t6, 4 +/* 10CE0C 7F0D82DC 311901FF */ andi $t9, $t0, 0x1ff +/* 10CE10 7F0D82E0 AFAC028C */ sw $t4, 0x28c($sp) +/* 10CE14 7F0D82E4 312C000F */ andi $t4, $t1, 0xf +/* 10CE18 7F0D82E8 332D00A8 */ andi $t5, $t9, 0xa8 +/* 10CE1C 7F0D82EC 00197A03 */ sra $t7, $t9, 8 +/* 10CE20 7F0D82F0 320E000F */ andi $t6, $s0, 0xf +/* 10CE24 7F0D82F4 01CC402A */ slt $t0, $t6, $t4 +/* 10CE28 7F0D82F8 01AF5025 */ or $t2, $t5, $t7 +/* 10CE2C 7F0D82FC 02096826 */ xor $t5, $s0, $t1 +/* 10CE30 7F0D8300 0008C100 */ sll $t8, $t0, 4 +/* 10CE34 7F0D8304 03306026 */ xor $t4, $t9, $s0 +/* 10CE38 7F0D8308 A7B901A8 */ sh $t9, 0x1a8($sp) +/* 10CE3C 7F0D830C 93B001A9 */ lbu $s0, 0x1a9($sp) +/* 10CE40 7F0D8310 31AF0080 */ andi $t7, $t5, 0x80 +/* 10CE44 7F0D8314 01EC4024 */ and $t0, $t7, $t4 +/* 10CE48 7F0D8318 01585825 */ or $t3, $t2, $t8 +/* 10CE4C 7F0D831C 00085143 */ sra $t2, $t0, 5 +/* 10CE50 7F0D8320 016A8825 */ or $s1, $t3, $t2 +/* 10CE54 7F0D8324 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CE58 7F0D8328 000D7180 */ sll $t6, $t5, 6 +/* 10CE5C 7F0D832C 36290002 */ ori $t1, $s1, 2 +/* 10CE60 7F0D8330 012E8825 */ or $s1, $t1, $t6 +/* 10CE64 7F0D8334 322F00FF */ andi $t7, $s1, 0xff +/* 10CE68 7F0D8338 01E08825 */ move $s1, $t7 +/* 10CE6C 7F0D833C AFAD0048 */ sw $t5, 0x48($sp) +/* 10CE70 7F0D8340 1000292E */ b .L7F0E27FC +/* 10CE74 7F0D8344 A3B301A7 */ sb $s3, 0x1a7($sp) +spectrum_op_92: +/* 10CE78 7F0D8348 8FAC028C */ lw $t4, 0x28c($sp) +/* 10CE7C 7F0D834C 328B00FF */ andi $t3, $s4, 0xff +/* 10CE80 7F0D8350 020B5023 */ subu $t2, $s0, $t3 +/* 10CE84 7F0D8354 25880004 */ addiu $t0, $t4, 4 +/* 10CE88 7F0D8358 315801FF */ andi $t8, $t2, 0x1ff +/* 10CE8C 7F0D835C AFA8028C */ sw $t0, 0x28c($sp) +/* 10CE90 7F0D8360 3168000F */ andi $t0, $t3, 0xf +/* 10CE94 7F0D8364 330D00A8 */ andi $t5, $t8, 0xa8 +/* 10CE98 7F0D8368 00187203 */ sra $t6, $t8, 8 +/* 10CE9C 7F0D836C 320C000F */ andi $t4, $s0, 0xf +/* 10CEA0 7F0D8370 0188502A */ slt $t2, $t4, $t0 +/* 10CEA4 7F0D8374 01AE7825 */ or $t7, $t5, $t6 +/* 10CEA8 7F0D8378 020B6826 */ xor $t5, $s0, $t3 +/* 10CEAC 7F0D837C 000A4900 */ sll $t1, $t2, 4 +/* 10CEB0 7F0D8380 03104026 */ xor $t0, $t8, $s0 +/* 10CEB4 7F0D8384 A7B801A4 */ sh $t8, 0x1a4($sp) +/* 10CEB8 7F0D8388 93B001A5 */ lbu $s0, 0x1a5($sp) +/* 10CEBC 7F0D838C 31AE0080 */ andi $t6, $t5, 0x80 +/* 10CEC0 7F0D8390 01C85024 */ and $t2, $t6, $t0 +/* 10CEC4 7F0D8394 01E9C825 */ or $t9, $t7, $t1 +/* 10CEC8 7F0D8398 000A7943 */ sra $t7, $t2, 5 +/* 10CECC 7F0D839C 032F8825 */ or $s1, $t9, $t7 +/* 10CED0 7F0D83A0 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CED4 7F0D83A4 000D6180 */ sll $t4, $t5, 6 +/* 10CED8 7F0D83A8 362B0002 */ ori $t3, $s1, 2 +/* 10CEDC 7F0D83AC 016C8825 */ or $s1, $t3, $t4 +/* 10CEE0 7F0D83B0 322E00FF */ andi $t6, $s1, 0xff +/* 10CEE4 7F0D83B4 01C08825 */ move $s1, $t6 +/* 10CEE8 7F0D83B8 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CEEC 7F0D83BC 1000290F */ b .L7F0E27FC +/* 10CEF0 7F0D83C0 A3B401A3 */ sb $s4, 0x1a3($sp) +spectrum_op_93: +/* 10CEF4 7F0D83C4 8FA8028C */ lw $t0, 0x28c($sp) +/* 10CEF8 7F0D83C8 32B900FF */ andi $t9, $s5, 0xff +/* 10CEFC 7F0D83CC 02197823 */ subu $t7, $s0, $t9 +/* 10CF00 7F0D83D0 250A0004 */ addiu $t2, $t0, 4 +/* 10CF04 7F0D83D4 31E901FF */ andi $t1, $t7, 0x1ff +/* 10CF08 7F0D83D8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10CF0C 7F0D83DC 332A000F */ andi $t2, $t9, 0xf +/* 10CF10 7F0D83E0 312D00A8 */ andi $t5, $t1, 0xa8 +/* 10CF14 7F0D83E4 00096203 */ sra $t4, $t1, 8 +/* 10CF18 7F0D83E8 3208000F */ andi $t0, $s0, 0xf +/* 10CF1C 7F0D83EC 010A782A */ slt $t7, $t0, $t2 +/* 10CF20 7F0D83F0 01AC7025 */ or $t6, $t5, $t4 +/* 10CF24 7F0D83F4 02196826 */ xor $t5, $s0, $t9 +/* 10CF28 7F0D83F8 000F5900 */ sll $t3, $t7, 4 +/* 10CF2C 7F0D83FC 01305026 */ xor $t2, $t1, $s0 +/* 10CF30 7F0D8400 A7A901A0 */ sh $t1, 0x1a0($sp) +/* 10CF34 7F0D8404 93B001A1 */ lbu $s0, 0x1a1($sp) +/* 10CF38 7F0D8408 31AC0080 */ andi $t4, $t5, 0x80 +/* 10CF3C 7F0D840C 018A7824 */ and $t7, $t4, $t2 +/* 10CF40 7F0D8410 01CBC025 */ or $t8, $t6, $t3 +/* 10CF44 7F0D8414 000F7143 */ sra $t6, $t7, 5 +/* 10CF48 7F0D8418 030E8825 */ or $s1, $t8, $t6 +/* 10CF4C 7F0D841C 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CF50 7F0D8420 000D4180 */ sll $t0, $t5, 6 +/* 10CF54 7F0D8424 36390002 */ ori $t9, $s1, 2 +/* 10CF58 7F0D8428 03288825 */ or $s1, $t9, $t0 +/* 10CF5C 7F0D842C 322C00FF */ andi $t4, $s1, 0xff +/* 10CF60 7F0D8430 01808825 */ move $s1, $t4 +/* 10CF64 7F0D8434 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CF68 7F0D8438 100028F0 */ b .L7F0E27FC +/* 10CF6C 7F0D843C A3B5019F */ sb $s5, 0x19f($sp) +spectrum_op_94: +/* 10CF70 7F0D8440 8FAA028C */ lw $t2, 0x28c($sp) +/* 10CF74 7F0D8444 93B80287 */ lbu $t8, 0x287($sp) +/* 10CF78 7F0D8448 93AE0287 */ lbu $t6, 0x287($sp) +/* 10CF7C 7F0D844C 254F0004 */ addiu $t7, $t2, 4 +/* 10CF80 7F0D8450 17000003 */ bnez $t8, .L7F0D8460 +/* 10CF84 7F0D8454 AFAF028C */ sw $t7, 0x28c($sp) +/* 10CF88 7F0D8458 1000000C */ b .L7F0D848C +/* 10CF8C 7F0D845C A3B6019B */ sb $s6, 0x19b($sp) +.L7F0D8460: +/* 10CF90 7F0D8460 24010001 */ li $at, 1 +/* 10CF94 7F0D8464 15C10005 */ bne $t6, $at, .L7F0D847C +/* 10CF98 7F0D8468 97AD0294 */ lhu $t5, 0x294($sp) +/* 10CF9C 7F0D846C 97AB0296 */ lhu $t3, 0x296($sp) +/* 10CFA0 7F0D8470 000BCA03 */ sra $t9, $t3, 8 +/* 10CFA4 7F0D8474 10000003 */ b .L7F0D8484 +/* 10CFA8 7F0D8478 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D847C: +/* 10CFAC 7F0D847C 000D4A03 */ sra $t1, $t5, 8 +/* 10CFB0 7F0D8480 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D8484: +/* 10CFB4 7F0D8484 8FA80048 */ lw $t0, 0x48($sp) +/* 10CFB8 7F0D8488 A3A8019B */ sb $t0, 0x19b($sp) +.L7F0D848C: +/* 10CFBC 7F0D848C 93AC019B */ lbu $t4, 0x19b($sp) +/* 10CFC0 7F0D8490 3209000F */ andi $t1, $s0, 0xf +/* 10CFC4 7F0D8494 020C5023 */ subu $t2, $s0, $t4 +/* 10CFC8 7F0D8498 314F01FF */ andi $t7, $t2, 0x1ff +/* 10CFCC 7F0D849C 31EE00A8 */ andi $t6, $t7, 0xa8 +/* 10CFD0 7F0D84A0 000FCA03 */ sra $t9, $t7, 8 +/* 10CFD4 7F0D84A4 3188000F */ andi $t0, $t4, 0xf +/* 10CFD8 7F0D84A8 0128502A */ slt $t2, $t1, $t0 +/* 10CFDC 7F0D84AC 01D96825 */ or $t5, $t6, $t9 +/* 10CFE0 7F0D84B0 020C7026 */ xor $t6, $s0, $t4 +/* 10CFE4 7F0D84B4 000AC100 */ sll $t8, $t2, 4 +/* 10CFE8 7F0D84B8 01F04026 */ xor $t0, $t7, $s0 +/* 10CFEC 7F0D84BC A7AF019C */ sh $t7, 0x19c($sp) +/* 10CFF0 7F0D84C0 93B0019D */ lbu $s0, 0x19d($sp) +/* 10CFF4 7F0D84C4 31D90080 */ andi $t9, $t6, 0x80 +/* 10CFF8 7F0D84C8 03285024 */ and $t2, $t9, $t0 +/* 10CFFC 7F0D84CC 01B85825 */ or $t3, $t5, $t8 +/* 10D000 7F0D84D0 000A6943 */ sra $t5, $t2, 5 +/* 10D004 7F0D84D4 016D8825 */ or $s1, $t3, $t5 +/* 10D008 7F0D84D8 2E0E0001 */ sltiu $t6, $s0, 1 +/* 10D00C 7F0D84DC 000E4980 */ sll $t1, $t6, 6 +/* 10D010 7F0D84E0 362C0002 */ ori $t4, $s1, 2 +/* 10D014 7F0D84E4 01898825 */ or $s1, $t4, $t1 +/* 10D018 7F0D84E8 323900FF */ andi $t9, $s1, 0xff +/* 10D01C 7F0D84EC 03208825 */ move $s1, $t9 +/* 10D020 7F0D84F0 100028C2 */ b .L7F0E27FC +/* 10D024 7F0D84F4 AFAE0048 */ sw $t6, 0x48($sp) +spectrum_op_95: +/* 10D028 7F0D84F8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D02C 7F0D84FC 93AB0287 */ lbu $t3, 0x287($sp) +/* 10D030 7F0D8500 93AD0287 */ lbu $t5, 0x287($sp) +/* 10D034 7F0D8504 250A0004 */ addiu $t2, $t0, 4 +/* 10D038 7F0D8508 15600003 */ bnez $t3, .L7F0D8518 +/* 10D03C 7F0D850C AFAA028C */ sw $t2, 0x28c($sp) +/* 10D040 7F0D8510 1000000C */ b .L7F0D8544 +/* 10D044 7F0D8514 A3B70197 */ sb $s7, 0x197($sp) +.L7F0D8518: +/* 10D048 7F0D8518 24010001 */ li $at, 1 +/* 10D04C 7F0D851C 15A10005 */ bne $t5, $at, .L7F0D8534 +/* 10D050 7F0D8520 97AE0294 */ lhu $t6, 0x294($sp) +/* 10D054 7F0D8524 97B80296 */ lhu $t8, 0x296($sp) +/* 10D058 7F0D8528 330C00FF */ andi $t4, $t8, 0xff +/* 10D05C 7F0D852C 10000003 */ b .L7F0D853C +/* 10D060 7F0D8530 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8534: +/* 10D064 7F0D8534 31CF00FF */ andi $t7, $t6, 0xff +/* 10D068 7F0D8538 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D853C: +/* 10D06C 7F0D853C 8FA90048 */ lw $t1, 0x48($sp) +/* 10D070 7F0D8540 A3A90197 */ sb $t1, 0x197($sp) +.L7F0D8544: +/* 10D074 7F0D8544 93B90197 */ lbu $t9, 0x197($sp) +/* 10D078 7F0D8548 320F000F */ andi $t7, $s0, 0xf +/* 10D07C 7F0D854C 02194023 */ subu $t0, $s0, $t9 +/* 10D080 7F0D8550 310A01FF */ andi $t2, $t0, 0x1ff +/* 10D084 7F0D8554 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10D088 7F0D8558 000A6203 */ sra $t4, $t2, 8 +/* 10D08C 7F0D855C 3329000F */ andi $t1, $t9, 0xf +/* 10D090 7F0D8560 01E9402A */ slt $t0, $t7, $t1 +/* 10D094 7F0D8564 01AC7025 */ or $t6, $t5, $t4 +/* 10D098 7F0D8568 02196826 */ xor $t5, $s0, $t9 +/* 10D09C 7F0D856C 00085900 */ sll $t3, $t0, 4 +/* 10D0A0 7F0D8570 01504826 */ xor $t1, $t2, $s0 +/* 10D0A4 7F0D8574 A7AA0198 */ sh $t2, 0x198($sp) +/* 10D0A8 7F0D8578 93B00199 */ lbu $s0, 0x199($sp) +/* 10D0AC 7F0D857C 31AC0080 */ andi $t4, $t5, 0x80 +/* 10D0B0 7F0D8580 01894024 */ and $t0, $t4, $t1 +/* 10D0B4 7F0D8584 01CBC025 */ or $t8, $t6, $t3 +/* 10D0B8 7F0D8588 00087143 */ sra $t6, $t0, 5 +/* 10D0BC 7F0D858C 030E8825 */ or $s1, $t8, $t6 +/* 10D0C0 7F0D8590 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10D0C4 7F0D8594 000D7980 */ sll $t7, $t5, 6 +/* 10D0C8 7F0D8598 36390002 */ ori $t9, $s1, 2 +/* 10D0CC 7F0D859C 032F8825 */ or $s1, $t9, $t7 +/* 10D0D0 7F0D85A0 322C00FF */ andi $t4, $s1, 0xff +/* 10D0D4 7F0D85A4 01808825 */ move $s1, $t4 +/* 10D0D8 7F0D85A8 10002894 */ b .L7F0E27FC +/* 10D0DC 7F0D85AC AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_96: +/* 10D0E0 7F0D85B0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D0E4 7F0D85B4 93B80287 */ lbu $t8, 0x287($sp) +/* 10D0E8 7F0D85B8 00167200 */ sll $t6, $s6, 8 +/* 10D0EC 7F0D85BC 25280007 */ addiu $t0, $t1, 7 +/* 10D0F0 7F0D85C0 17000004 */ bnez $t8, .L7F0D85D4 +/* 10D0F4 7F0D85C4 AFA8028C */ sw $t0, 0x28c($sp) +/* 10D0F8 7F0D85C8 01D75825 */ or $t3, $t6, $s7 +/* 10D0FC 7F0D85CC 10000016 */ b .L7F0D8628 +/* 10D100 7F0D85D0 A7AB0194 */ sh $t3, 0x194($sp) +.L7F0D85D4: +/* 10D104 7F0D85D4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10D108 7F0D85D8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D10C 7F0D85DC 24010001 */ li $at, 1 +/* 10D110 7F0D85E0 272D0008 */ addiu $t5, $t9, 8 +/* 10D114 7F0D85E4 15410004 */ bne $t2, $at, .L7F0D85F8 +/* 10D118 7F0D85E8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10D11C 7F0D85EC 97AF0296 */ lhu $t7, 0x296($sp) +/* 10D120 7F0D85F0 10000003 */ b .L7F0D8600 +/* 10D124 7F0D85F4 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D85F8: +/* 10D128 7F0D85F8 97AC0294 */ lhu $t4, 0x294($sp) +/* 10D12C 7F0D85FC AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8600: +/* 10D130 7F0D8600 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10D134 7F0D8604 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10D138 7F0D8608 97A90298 */ lhu $t1, 0x298($sp) +/* 10D13C 7F0D860C 8FAB0048 */ lw $t3, 0x48($sp) +/* 10D140 7F0D8610 0128C021 */ addu $t8, $t1, $t0 +/* 10D144 7F0D8614 830E0000 */ lb $t6, ($t8) +/* 10D148 7F0D8618 252D0001 */ addiu $t5, $t1, 1 +/* 10D14C 7F0D861C A7AD0298 */ sh $t5, 0x298($sp) +/* 10D150 7F0D8620 01CBC821 */ addu $t9, $t6, $t3 +/* 10D154 7F0D8624 A7B90194 */ sh $t9, 0x194($sp) +.L7F0D8628: +/* 10D158 7F0D8628 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10D15C 7F0D862C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10D160 7F0D8630 97AA0194 */ lhu $t2, 0x194($sp) +/* 10D164 7F0D8634 014F6021 */ addu $t4, $t2, $t7 +/* 10D168 7F0D8638 91880000 */ lbu $t0, ($t4) +/* 10D16C 7F0D863C 320C000F */ andi $t4, $s0, 0xf +/* 10D170 7F0D8640 0208C023 */ subu $t8, $s0, $t0 +/* 10D174 7F0D8644 330E01FF */ andi $t6, $t8, 0x1ff +/* 10D178 7F0D8648 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10D17C 7F0D864C 000E6A03 */ sra $t5, $t6, 8 +/* 10D180 7F0D8650 310F000F */ andi $t7, $t0, 0xf +/* 10D184 7F0D8654 018FC02A */ slt $t8, $t4, $t7 +/* 10D188 7F0D8658 032D5025 */ or $t2, $t9, $t5 +/* 10D18C 7F0D865C 0208C826 */ xor $t9, $s0, $t0 +/* 10D190 7F0D8660 00185900 */ sll $t3, $t8, 4 +/* 10D194 7F0D8664 01D07826 */ xor $t7, $t6, $s0 +/* 10D198 7F0D8668 A7AE0192 */ sh $t6, 0x192($sp) +/* 10D19C 7F0D866C 93B00193 */ lbu $s0, 0x193($sp) +/* 10D1A0 7F0D8670 332D0080 */ andi $t5, $t9, 0x80 +/* 10D1A4 7F0D8674 01AFC024 */ and $t8, $t5, $t7 +/* 10D1A8 7F0D8678 014B4825 */ or $t1, $t2, $t3 +/* 10D1AC 7F0D867C 00185143 */ sra $t2, $t8, 5 +/* 10D1B0 7F0D8680 012A8825 */ or $s1, $t1, $t2 +/* 10D1B4 7F0D8684 A3A80191 */ sb $t0, 0x191($sp) +/* 10D1B8 7F0D8688 2E190001 */ sltiu $t9, $s0, 1 +/* 10D1BC 7F0D868C 00196180 */ sll $t4, $t9, 6 +/* 10D1C0 7F0D8690 36280002 */ ori $t0, $s1, 2 +/* 10D1C4 7F0D8694 010C8825 */ or $s1, $t0, $t4 +/* 10D1C8 7F0D8698 322D00FF */ andi $t5, $s1, 0xff +/* 10D1CC 7F0D869C 01A08825 */ move $s1, $t5 +/* 10D1D0 7F0D86A0 10002856 */ b .L7F0E27FC +/* 10D1D4 7F0D86A4 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_97: +/* 10D1D8 7F0D86A8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10D1DC 7F0D86AC 320900FF */ andi $t1, $s0, 0xff +/* 10D1E0 7F0D86B0 02095023 */ subu $t2, $s0, $t1 +/* 10D1E4 7F0D86B4 25F80004 */ addiu $t8, $t7, 4 +/* 10D1E8 7F0D86B8 314B01FF */ andi $t3, $t2, 0x1ff +/* 10D1EC 7F0D86BC AFB8028C */ sw $t8, 0x28c($sp) +/* 10D1F0 7F0D86C0 3138000F */ andi $t8, $t1, 0xf +/* 10D1F4 7F0D86C4 317900A8 */ andi $t9, $t3, 0xa8 +/* 10D1F8 7F0D86C8 000B6203 */ sra $t4, $t3, 8 +/* 10D1FC 7F0D86CC 320F000F */ andi $t7, $s0, 0xf +/* 10D200 7F0D86D0 01F8502A */ slt $t2, $t7, $t8 +/* 10D204 7F0D86D4 032C6825 */ or $t5, $t9, $t4 +/* 10D208 7F0D86D8 0209C826 */ xor $t9, $s0, $t1 +/* 10D20C 7F0D86DC 000A4100 */ sll $t0, $t2, 4 +/* 10D210 7F0D86E0 0170C026 */ xor $t8, $t3, $s0 +/* 10D214 7F0D86E4 A7AB018E */ sh $t3, 0x18e($sp) +/* 10D218 7F0D86E8 A3B0018D */ sb $s0, 0x18d($sp) +/* 10D21C 7F0D86EC 93B0018F */ lbu $s0, 0x18f($sp) +/* 10D220 7F0D86F0 332C0080 */ andi $t4, $t9, 0x80 +/* 10D224 7F0D86F4 01985024 */ and $t2, $t4, $t8 +/* 10D228 7F0D86F8 01A87025 */ or $t6, $t5, $t0 +/* 10D22C 7F0D86FC 000A6943 */ sra $t5, $t2, 5 +/* 10D230 7F0D8700 01CD8825 */ or $s1, $t6, $t5 +/* 10D234 7F0D8704 2E190001 */ sltiu $t9, $s0, 1 +/* 10D238 7F0D8708 00197980 */ sll $t7, $t9, 6 +/* 10D23C 7F0D870C 36290002 */ ori $t1, $s1, 2 +/* 10D240 7F0D8710 012F8825 */ or $s1, $t1, $t7 +/* 10D244 7F0D8714 322C00FF */ andi $t4, $s1, 0xff +/* 10D248 7F0D8718 01808825 */ move $s1, $t4 +/* 10D24C 7F0D871C 10002837 */ b .L7F0E27FC +/* 10D250 7F0D8720 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_98: +/* 10D254 7F0D8724 324E00FF */ andi $t6, $s2, 0xff +/* 10D258 7F0D8728 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D25C 7F0D872C 020E6823 */ subu $t5, $s0, $t6 +/* 10D260 7F0D8730 32280001 */ andi $t0, $s1, 1 +/* 10D264 7F0D8734 01A84823 */ subu $t1, $t5, $t0 +/* 10D268 7F0D8738 313901FF */ andi $t9, $t1, 0x1ff +/* 10D26C 7F0D873C 31CD000F */ andi $t5, $t6, 0xf +/* 10D270 7F0D8740 270A0004 */ addiu $t2, $t8, 4 +/* 10D274 7F0D8744 01A84821 */ addu $t1, $t5, $t0 +/* 10D278 7F0D8748 320B000F */ andi $t3, $s0, 0xf +/* 10D27C 7F0D874C AFAA028C */ sw $t2, 0x28c($sp) +/* 10D280 7F0D8750 0169602A */ slt $t4, $t3, $t1 +/* 10D284 7F0D8754 0019C203 */ sra $t8, $t9, 8 +/* 10D288 7F0D8758 332F00A8 */ andi $t7, $t9, 0xa8 +/* 10D28C 7F0D875C 01F85025 */ or $t2, $t7, $t8 +/* 10D290 7F0D8760 020E6826 */ xor $t5, $s0, $t6 +/* 10D294 7F0D8764 000C7900 */ sll $t7, $t4, 4 +/* 10D298 7F0D8768 03304826 */ xor $t1, $t9, $s0 +/* 10D29C 7F0D876C A7B9018A */ sh $t9, 0x18a($sp) +/* 10D2A0 7F0D8770 93B0018B */ lbu $s0, 0x18b($sp) +/* 10D2A4 7F0D8774 31A80080 */ andi $t0, $t5, 0x80 +/* 10D2A8 7F0D8778 01096024 */ and $t4, $t0, $t1 +/* 10D2AC 7F0D877C 014FC025 */ or $t8, $t2, $t7 +/* 10D2B0 7F0D8780 000C5143 */ sra $t2, $t4, 5 +/* 10D2B4 7F0D8784 030A8825 */ or $s1, $t8, $t2 +/* 10D2B8 7F0D8788 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10D2BC 7F0D878C 000D5980 */ sll $t3, $t5, 6 +/* 10D2C0 7F0D8790 362E0002 */ ori $t6, $s1, 2 +/* 10D2C4 7F0D8794 01CB8825 */ or $s1, $t6, $t3 +/* 10D2C8 7F0D8798 322800FF */ andi $t0, $s1, 0xff +/* 10D2CC 7F0D879C 01008825 */ move $s1, $t0 +/* 10D2D0 7F0D87A0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10D2D4 7F0D87A4 10002815 */ b .L7F0E27FC +/* 10D2D8 7F0D87A8 A3B20189 */ sb $s2, 0x189($sp) +spectrum_op_99: +/* 10D2DC 7F0D87AC 327800FF */ andi $t8, $s3, 0xff +/* 10D2E0 7F0D87B0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D2E4 7F0D87B4 02185023 */ subu $t2, $s0, $t8 +/* 10D2E8 7F0D87B8 322F0001 */ andi $t7, $s1, 1 +/* 10D2EC 7F0D87BC 014F7023 */ subu $t6, $t2, $t7 +/* 10D2F0 7F0D87C0 31CD01FF */ andi $t5, $t6, 0x1ff +/* 10D2F4 7F0D87C4 330A000F */ andi $t2, $t8, 0xf +/* 10D2F8 7F0D87C8 252C0004 */ addiu $t4, $t1, 4 +/* 10D2FC 7F0D87CC 014F7021 */ addu $t6, $t2, $t7 +/* 10D300 7F0D87D0 3219000F */ andi $t9, $s0, 0xf +/* 10D304 7F0D87D4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10D308 7F0D87D8 032E402A */ slt $t0, $t9, $t6 +/* 10D30C 7F0D87DC 000D4A03 */ sra $t1, $t5, 8 +/* 10D310 7F0D87E0 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10D314 7F0D87E4 01696025 */ or $t4, $t3, $t1 +/* 10D318 7F0D87E8 02185026 */ xor $t2, $s0, $t8 +/* 10D31C 7F0D87EC 00085900 */ sll $t3, $t0, 4 +/* 10D320 7F0D87F0 01B07026 */ xor $t6, $t5, $s0 +/* 10D324 7F0D87F4 A7AD0186 */ sh $t5, 0x186($sp) +/* 10D328 7F0D87F8 93B00187 */ lbu $s0, 0x187($sp) +/* 10D32C 7F0D87FC 314F0080 */ andi $t7, $t2, 0x80 +/* 10D330 7F0D8800 01EE4024 */ and $t0, $t7, $t6 +/* 10D334 7F0D8804 018B4825 */ or $t1, $t4, $t3 +/* 10D338 7F0D8808 00086143 */ sra $t4, $t0, 5 +/* 10D33C 7F0D880C 012C8825 */ or $s1, $t1, $t4 +/* 10D340 7F0D8810 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10D344 7F0D8814 000AC980 */ sll $t9, $t2, 6 +/* 10D348 7F0D8818 36380002 */ ori $t8, $s1, 2 +/* 10D34C 7F0D881C 03198825 */ or $s1, $t8, $t9 +/* 10D350 7F0D8820 322F00FF */ andi $t7, $s1, 0xff +/* 10D354 7F0D8824 01E08825 */ move $s1, $t7 +/* 10D358 7F0D8828 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D35C 7F0D882C 100027F3 */ b .L7F0E27FC +/* 10D360 7F0D8830 A3B30185 */ sb $s3, 0x185($sp) +spectrum_op_9A: +/* 10D364 7F0D8834 328900FF */ andi $t1, $s4, 0xff +/* 10D368 7F0D8838 8FAE028C */ lw $t6, 0x28c($sp) +/* 10D36C 7F0D883C 02096023 */ subu $t4, $s0, $t1 +/* 10D370 7F0D8840 322B0001 */ andi $t3, $s1, 1 +/* 10D374 7F0D8844 018BC023 */ subu $t8, $t4, $t3 +/* 10D378 7F0D8848 330A01FF */ andi $t2, $t8, 0x1ff +/* 10D37C 7F0D884C 312C000F */ andi $t4, $t1, 0xf +/* 10D380 7F0D8850 25C80004 */ addiu $t0, $t6, 4 +/* 10D384 7F0D8854 018BC021 */ addu $t8, $t4, $t3 +/* 10D388 7F0D8858 320D000F */ andi $t5, $s0, 0xf +/* 10D38C 7F0D885C AFA8028C */ sw $t0, 0x28c($sp) +/* 10D390 7F0D8860 01B8782A */ slt $t7, $t5, $t8 +/* 10D394 7F0D8864 000A7203 */ sra $t6, $t2, 8 +/* 10D398 7F0D8868 315900A8 */ andi $t9, $t2, 0xa8 +/* 10D39C 7F0D886C 032E4025 */ or $t0, $t9, $t6 +/* 10D3A0 7F0D8870 02096026 */ xor $t4, $s0, $t1 +/* 10D3A4 7F0D8874 000FC900 */ sll $t9, $t7, 4 +/* 10D3A8 7F0D8878 0150C026 */ xor $t8, $t2, $s0 +/* 10D3AC 7F0D887C A7AA0182 */ sh $t2, 0x182($sp) +/* 10D3B0 7F0D8880 93B00183 */ lbu $s0, 0x183($sp) +/* 10D3B4 7F0D8884 318B0080 */ andi $t3, $t4, 0x80 +/* 10D3B8 7F0D8888 01787824 */ and $t7, $t3, $t8 +/* 10D3BC 7F0D888C 01197025 */ or $t6, $t0, $t9 +/* 10D3C0 7F0D8890 000F4143 */ sra $t0, $t7, 5 +/* 10D3C4 7F0D8894 01C88825 */ or $s1, $t6, $t0 +/* 10D3C8 7F0D8898 2E0C0001 */ sltiu $t4, $s0, 1 +/* 10D3CC 7F0D889C 000C6980 */ sll $t5, $t4, 6 +/* 10D3D0 7F0D88A0 36290002 */ ori $t1, $s1, 2 +/* 10D3D4 7F0D88A4 012D8825 */ or $s1, $t1, $t5 +/* 10D3D8 7F0D88A8 322B00FF */ andi $t3, $s1, 0xff +/* 10D3DC 7F0D88AC 01608825 */ move $s1, $t3 +/* 10D3E0 7F0D88B0 AFAC0048 */ sw $t4, 0x48($sp) +/* 10D3E4 7F0D88B4 100027D1 */ b .L7F0E27FC +/* 10D3E8 7F0D88B8 A3B40181 */ sb $s4, 0x181($sp) +spectrum_op_9B: +/* 10D3EC 7F0D88BC 32AE00FF */ andi $t6, $s5, 0xff +/* 10D3F0 7F0D88C0 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D3F4 7F0D88C4 020E4023 */ subu $t0, $s0, $t6 +/* 10D3F8 7F0D88C8 32390001 */ andi $t9, $s1, 1 +/* 10D3FC 7F0D88CC 01194823 */ subu $t1, $t0, $t9 +/* 10D400 7F0D88D0 312C01FF */ andi $t4, $t1, 0x1ff +/* 10D404 7F0D88D4 31C8000F */ andi $t0, $t6, 0xf +/* 10D408 7F0D88D8 270F0004 */ addiu $t7, $t8, 4 +/* 10D40C 7F0D88DC 01194821 */ addu $t1, $t0, $t9 +/* 10D410 7F0D88E0 320A000F */ andi $t2, $s0, 0xf +/* 10D414 7F0D88E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10D418 7F0D88E8 0149582A */ slt $t3, $t2, $t1 +/* 10D41C 7F0D88EC 000CC203 */ sra $t8, $t4, 8 +/* 10D420 7F0D88F0 318D00A8 */ andi $t5, $t4, 0xa8 +/* 10D424 7F0D88F4 01B87825 */ or $t7, $t5, $t8 +/* 10D428 7F0D88F8 020E4026 */ xor $t0, $s0, $t6 +/* 10D42C 7F0D88FC 000B6900 */ sll $t5, $t3, 4 +/* 10D430 7F0D8900 01904826 */ xor $t1, $t4, $s0 +/* 10D434 7F0D8904 A7AC017E */ sh $t4, 0x17e($sp) +/* 10D438 7F0D8908 93B0017F */ lbu $s0, 0x17f($sp) +/* 10D43C 7F0D890C 31190080 */ andi $t9, $t0, 0x80 +/* 10D440 7F0D8910 03295824 */ and $t3, $t9, $t1 +/* 10D444 7F0D8914 01EDC025 */ or $t8, $t7, $t5 +/* 10D448 7F0D8918 000B7943 */ sra $t7, $t3, 5 +/* 10D44C 7F0D891C 030F8825 */ or $s1, $t8, $t7 +/* 10D450 7F0D8920 2E080001 */ sltiu $t0, $s0, 1 +/* 10D454 7F0D8924 00085180 */ sll $t2, $t0, 6 +/* 10D458 7F0D8928 362E0002 */ ori $t6, $s1, 2 +/* 10D45C 7F0D892C 01CA8825 */ or $s1, $t6, $t2 +/* 10D460 7F0D8930 323900FF */ andi $t9, $s1, 0xff +/* 10D464 7F0D8934 03208825 */ move $s1, $t9 +/* 10D468 7F0D8938 AFA80048 */ sw $t0, 0x48($sp) +/* 10D46C 7F0D893C 100027AF */ b .L7F0E27FC +/* 10D470 7F0D8940 A3B5017D */ sb $s5, 0x17d($sp) +spectrum_op_9C: +/* 10D474 7F0D8944 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D478 7F0D8948 93B80287 */ lbu $t8, 0x287($sp) +/* 10D47C 7F0D894C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10D480 7F0D8950 252B0004 */ addiu $t3, $t1, 4 +/* 10D484 7F0D8954 17000003 */ bnez $t8, .L7F0D8964 +/* 10D488 7F0D8958 AFAB028C */ sw $t3, 0x28c($sp) +/* 10D48C 7F0D895C 1000000C */ b .L7F0D8990 +/* 10D490 7F0D8960 A3B60179 */ sb $s6, 0x179($sp) +.L7F0D8964: +/* 10D494 7F0D8964 24010001 */ li $at, 1 +/* 10D498 7F0D8968 15E10005 */ bne $t7, $at, .L7F0D8980 +/* 10D49C 7F0D896C 97A80294 */ lhu $t0, 0x294($sp) +/* 10D4A0 7F0D8970 97AD0296 */ lhu $t5, 0x296($sp) +/* 10D4A4 7F0D8974 000D7203 */ sra $t6, $t5, 8 +/* 10D4A8 7F0D8978 10000003 */ b .L7F0D8988 +/* 10D4AC 7F0D897C AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D8980: +/* 10D4B0 7F0D8980 00086203 */ sra $t4, $t0, 8 +/* 10D4B4 7F0D8984 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8988: +/* 10D4B8 7F0D8988 8FAA0048 */ lw $t2, 0x48($sp) +/* 10D4BC 7F0D898C A3AA0179 */ sb $t2, 0x179($sp) +.L7F0D8990: +/* 10D4C0 7F0D8990 93B90179 */ lbu $t9, 0x179($sp) +/* 10D4C4 7F0D8994 322B0001 */ andi $t3, $s1, 1 +/* 10D4C8 7F0D8998 320D000F */ andi $t5, $s0, 0xf +/* 10D4CC 7F0D899C 02194823 */ subu $t1, $s0, $t9 +/* 10D4D0 7F0D89A0 012BC023 */ subu $t8, $t1, $t3 +/* 10D4D4 7F0D89A4 330F01FF */ andi $t7, $t8, 0x1ff +/* 10D4D8 7F0D89A8 3329000F */ andi $t1, $t9, 0xf +/* 10D4DC 7F0D89AC 012BC021 */ addu $t8, $t1, $t3 +/* 10D4E0 7F0D89B0 01B8402A */ slt $t0, $t5, $t8 +/* 10D4E4 7F0D89B4 31EE00A8 */ andi $t6, $t7, 0xa8 +/* 10D4E8 7F0D89B8 000F6203 */ sra $t4, $t7, 8 +/* 10D4EC 7F0D89BC 01CC5025 */ or $t2, $t6, $t4 +/* 10D4F0 7F0D89C0 02194826 */ xor $t1, $s0, $t9 +/* 10D4F4 7F0D89C4 00087100 */ sll $t6, $t0, 4 +/* 10D4F8 7F0D89C8 01F0C026 */ xor $t8, $t7, $s0 +/* 10D4FC 7F0D89CC A7AF017A */ sh $t7, 0x17a($sp) +/* 10D500 7F0D89D0 93B0017B */ lbu $s0, 0x17b($sp) +/* 10D504 7F0D89D4 312B0080 */ andi $t3, $t1, 0x80 +/* 10D508 7F0D89D8 01784024 */ and $t0, $t3, $t8 +/* 10D50C 7F0D89DC 014E6025 */ or $t4, $t2, $t6 +/* 10D510 7F0D89E0 00085143 */ sra $t2, $t0, 5 +/* 10D514 7F0D89E4 018A8825 */ or $s1, $t4, $t2 +/* 10D518 7F0D89E8 2E090001 */ sltiu $t1, $s0, 1 +/* 10D51C 7F0D89EC 00096980 */ sll $t5, $t1, 6 +/* 10D520 7F0D89F0 36390002 */ ori $t9, $s1, 2 +/* 10D524 7F0D89F4 032D8825 */ or $s1, $t9, $t5 +/* 10D528 7F0D89F8 322B00FF */ andi $t3, $s1, 0xff +/* 10D52C 7F0D89FC 01608825 */ move $s1, $t3 +/* 10D530 7F0D8A00 1000277E */ b .L7F0E27FC +/* 10D534 7F0D8A04 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_9D: +/* 10D538 7F0D8A08 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D53C 7F0D8A0C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10D540 7F0D8A10 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D544 7F0D8A14 27080004 */ addiu $t0, $t8, 4 +/* 10D548 7F0D8A18 15800003 */ bnez $t4, .L7F0D8A28 +/* 10D54C 7F0D8A1C AFA8028C */ sw $t0, 0x28c($sp) +/* 10D550 7F0D8A20 1000000C */ b .L7F0D8A54 +/* 10D554 7F0D8A24 A3B70175 */ sb $s7, 0x175($sp) +.L7F0D8A28: +/* 10D558 7F0D8A28 24010001 */ li $at, 1 +/* 10D55C 7F0D8A2C 15410005 */ bne $t2, $at, .L7F0D8A44 +/* 10D560 7F0D8A30 97A90294 */ lhu $t1, 0x294($sp) +/* 10D564 7F0D8A34 97AE0296 */ lhu $t6, 0x296($sp) +/* 10D568 7F0D8A38 31D900FF */ andi $t9, $t6, 0xff +/* 10D56C 7F0D8A3C 10000003 */ b .L7F0D8A4C +/* 10D570 7F0D8A40 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D8A44: +/* 10D574 7F0D8A44 312F00FF */ andi $t7, $t1, 0xff +/* 10D578 7F0D8A48 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D8A4C: +/* 10D57C 7F0D8A4C 8FAD0048 */ lw $t5, 0x48($sp) +/* 10D580 7F0D8A50 A3AD0175 */ sb $t5, 0x175($sp) +.L7F0D8A54: +/* 10D584 7F0D8A54 93AB0175 */ lbu $t3, 0x175($sp) +/* 10D588 7F0D8A58 32280001 */ andi $t0, $s1, 1 +/* 10D58C 7F0D8A5C 320E000F */ andi $t6, $s0, 0xf +/* 10D590 7F0D8A60 020BC023 */ subu $t8, $s0, $t3 +/* 10D594 7F0D8A64 03086023 */ subu $t4, $t8, $t0 +/* 10D598 7F0D8A68 318A01FF */ andi $t2, $t4, 0x1ff +/* 10D59C 7F0D8A6C 3178000F */ andi $t8, $t3, 0xf +/* 10D5A0 7F0D8A70 03086021 */ addu $t4, $t8, $t0 +/* 10D5A4 7F0D8A74 01CC482A */ slt $t1, $t6, $t4 +/* 10D5A8 7F0D8A78 315900A8 */ andi $t9, $t2, 0xa8 +/* 10D5AC 7F0D8A7C 000A7A03 */ sra $t7, $t2, 8 +/* 10D5B0 7F0D8A80 032F6825 */ or $t5, $t9, $t7 +/* 10D5B4 7F0D8A84 020BC026 */ xor $t8, $s0, $t3 +/* 10D5B8 7F0D8A88 0009C900 */ sll $t9, $t1, 4 +/* 10D5BC 7F0D8A8C 01506026 */ xor $t4, $t2, $s0 +/* 10D5C0 7F0D8A90 A7AA0176 */ sh $t2, 0x176($sp) +/* 10D5C4 7F0D8A94 93B00177 */ lbu $s0, 0x177($sp) +/* 10D5C8 7F0D8A98 33080080 */ andi $t0, $t8, 0x80 +/* 10D5CC 7F0D8A9C 010C4824 */ and $t1, $t0, $t4 +/* 10D5D0 7F0D8AA0 01B97825 */ or $t7, $t5, $t9 +/* 10D5D4 7F0D8AA4 00096943 */ sra $t5, $t1, 5 +/* 10D5D8 7F0D8AA8 01ED8825 */ or $s1, $t7, $t5 +/* 10D5DC 7F0D8AAC 2E180001 */ sltiu $t8, $s0, 1 +/* 10D5E0 7F0D8AB0 00187180 */ sll $t6, $t8, 6 +/* 10D5E4 7F0D8AB4 362B0002 */ ori $t3, $s1, 2 +/* 10D5E8 7F0D8AB8 016E8825 */ or $s1, $t3, $t6 +/* 10D5EC 7F0D8ABC 322800FF */ andi $t0, $s1, 0xff +/* 10D5F0 7F0D8AC0 01008825 */ move $s1, $t0 +/* 10D5F4 7F0D8AC4 1000274D */ b .L7F0E27FC +/* 10D5F8 7F0D8AC8 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_9E: +/* 10D5FC 7F0D8ACC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10D600 7F0D8AD0 93AF0287 */ lbu $t7, 0x287($sp) +/* 10D604 7F0D8AD4 00166A00 */ sll $t5, $s6, 8 +/* 10D608 7F0D8AD8 25890007 */ addiu $t1, $t4, 7 +/* 10D60C 7F0D8ADC 15E00004 */ bnez $t7, .L7F0D8AF0 +/* 10D610 7F0D8AE0 AFA9028C */ sw $t1, 0x28c($sp) +/* 10D614 7F0D8AE4 01B7C825 */ or $t9, $t5, $s7 +/* 10D618 7F0D8AE8 10000016 */ b .L7F0D8B44 +/* 10D61C 7F0D8AEC A7B90172 */ sh $t9, 0x172($sp) +.L7F0D8AF0: +/* 10D620 7F0D8AF0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10D624 7F0D8AF4 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D628 7F0D8AF8 24010001 */ li $at, 1 +/* 10D62C 7F0D8AFC 25780008 */ addiu $t8, $t3, 8 +/* 10D630 7F0D8B00 15410004 */ bne $t2, $at, .L7F0D8B14 +/* 10D634 7F0D8B04 AFB8028C */ sw $t8, 0x28c($sp) +/* 10D638 7F0D8B08 97AE0296 */ lhu $t6, 0x296($sp) +/* 10D63C 7F0D8B0C 10000003 */ b .L7F0D8B1C +/* 10D640 7F0D8B10 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D8B14: +/* 10D644 7F0D8B14 97A80294 */ lhu $t0, 0x294($sp) +/* 10D648 7F0D8B18 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D8B1C: +/* 10D64C 7F0D8B1C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10D650 7F0D8B20 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10D654 7F0D8B24 97AC0298 */ lhu $t4, 0x298($sp) +/* 10D658 7F0D8B28 8FB90048 */ lw $t9, 0x48($sp) +/* 10D65C 7F0D8B2C 01897821 */ addu $t7, $t4, $t1 +/* 10D660 7F0D8B30 81ED0000 */ lb $t5, ($t7) +/* 10D664 7F0D8B34 25980001 */ addiu $t8, $t4, 1 +/* 10D668 7F0D8B38 A7B80298 */ sh $t8, 0x298($sp) +/* 10D66C 7F0D8B3C 01B95821 */ addu $t3, $t5, $t9 +/* 10D670 7F0D8B40 A7AB0172 */ sh $t3, 0x172($sp) +.L7F0D8B44: +/* 10D674 7F0D8B44 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10D678 7F0D8B48 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10D67C 7F0D8B4C 97AA0172 */ lhu $t2, 0x172($sp) +/* 10D680 7F0D8B50 322D0001 */ andi $t5, $s1, 1 +/* 10D684 7F0D8B54 320C000F */ andi $t4, $s0, 0xf +/* 10D688 7F0D8B58 014E4021 */ addu $t0, $t2, $t6 +/* 10D68C 7F0D8B5C 91090000 */ lbu $t1, ($t0) +/* 10D690 7F0D8B60 02097823 */ subu $t7, $s0, $t1 +/* 10D694 7F0D8B64 01EDC823 */ subu $t9, $t7, $t5 +/* 10D698 7F0D8B68 332B01FF */ andi $t3, $t9, 0x1ff +/* 10D69C 7F0D8B6C 312F000F */ andi $t7, $t1, 0xf +/* 10D6A0 7F0D8B70 01EDC821 */ addu $t9, $t7, $t5 +/* 10D6A4 7F0D8B74 0199502A */ slt $t2, $t4, $t9 +/* 10D6A8 7F0D8B78 317800A8 */ andi $t8, $t3, 0xa8 +/* 10D6AC 7F0D8B7C 000B7203 */ sra $t6, $t3, 8 +/* 10D6B0 7F0D8B80 030E4025 */ or $t0, $t8, $t6 +/* 10D6B4 7F0D8B84 02097826 */ xor $t7, $s0, $t1 +/* 10D6B8 7F0D8B88 000AC100 */ sll $t8, $t2, 4 +/* 10D6BC 7F0D8B8C 0170C826 */ xor $t9, $t3, $s0 +/* 10D6C0 7F0D8B90 A7AB0170 */ sh $t3, 0x170($sp) +/* 10D6C4 7F0D8B94 93B00171 */ lbu $s0, 0x171($sp) +/* 10D6C8 7F0D8B98 31ED0080 */ andi $t5, $t7, 0x80 +/* 10D6CC 7F0D8B9C 01B95024 */ and $t2, $t5, $t9 +/* 10D6D0 7F0D8BA0 01187025 */ or $t6, $t0, $t8 +/* 10D6D4 7F0D8BA4 000A4143 */ sra $t0, $t2, 5 +/* 10D6D8 7F0D8BA8 01C88825 */ or $s1, $t6, $t0 +/* 10D6DC 7F0D8BAC A3A9016F */ sb $t1, 0x16f($sp) +/* 10D6E0 7F0D8BB0 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10D6E4 7F0D8BB4 000F6180 */ sll $t4, $t7, 6 +/* 10D6E8 7F0D8BB8 36290002 */ ori $t1, $s1, 2 +/* 10D6EC 7F0D8BBC 012C8825 */ or $s1, $t1, $t4 +/* 10D6F0 7F0D8BC0 322D00FF */ andi $t5, $s1, 0xff +/* 10D6F4 7F0D8BC4 01A08825 */ move $s1, $t5 +/* 10D6F8 7F0D8BC8 1000270C */ b .L7F0E27FC +/* 10D6FC 7F0D8BCC AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_9F: +/* 10D700 7F0D8BD0 320E00FF */ andi $t6, $s0, 0xff +/* 10D704 7F0D8BD4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10D708 7F0D8BD8 020E4023 */ subu $t0, $s0, $t6 +/* 10D70C 7F0D8BDC 32380001 */ andi $t8, $s1, 1 +/* 10D710 7F0D8BE0 01184823 */ subu $t1, $t0, $t8 +/* 10D714 7F0D8BE4 312F01FF */ andi $t7, $t1, 0x1ff +/* 10D718 7F0D8BE8 31C8000F */ andi $t0, $t6, 0xf +/* 10D71C 7F0D8BEC 272A0004 */ addiu $t2, $t9, 4 +/* 10D720 7F0D8BF0 01184821 */ addu $t1, $t0, $t8 +/* 10D724 7F0D8BF4 320B000F */ andi $t3, $s0, 0xf +/* 10D728 7F0D8BF8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10D72C 7F0D8BFC 0169682A */ slt $t5, $t3, $t1 +/* 10D730 7F0D8C00 000FCA03 */ sra $t9, $t7, 8 +/* 10D734 7F0D8C04 31EC00A8 */ andi $t4, $t7, 0xa8 +/* 10D738 7F0D8C08 01995025 */ or $t2, $t4, $t9 +/* 10D73C 7F0D8C0C 020E4026 */ xor $t0, $s0, $t6 +/* 10D740 7F0D8C10 000D6100 */ sll $t4, $t5, 4 +/* 10D744 7F0D8C14 01F04826 */ xor $t1, $t7, $s0 +/* 10D748 7F0D8C18 A7AF016C */ sh $t7, 0x16c($sp) +/* 10D74C 7F0D8C1C A3B0016B */ sb $s0, 0x16b($sp) +/* 10D750 7F0D8C20 93B0016D */ lbu $s0, 0x16d($sp) +/* 10D754 7F0D8C24 31180080 */ andi $t8, $t0, 0x80 +/* 10D758 7F0D8C28 03096824 */ and $t5, $t8, $t1 +/* 10D75C 7F0D8C2C 014CC825 */ or $t9, $t2, $t4 +/* 10D760 7F0D8C30 000D5143 */ sra $t2, $t5, 5 +/* 10D764 7F0D8C34 032A8825 */ or $s1, $t9, $t2 +/* 10D768 7F0D8C38 2E080001 */ sltiu $t0, $s0, 1 +/* 10D76C 7F0D8C3C 00085980 */ sll $t3, $t0, 6 +/* 10D770 7F0D8C40 362E0002 */ ori $t6, $s1, 2 +/* 10D774 7F0D8C44 01CB8825 */ or $s1, $t6, $t3 +/* 10D778 7F0D8C48 323800FF */ andi $t8, $s1, 0xff +/* 10D77C 7F0D8C4C 03008825 */ move $s1, $t8 +/* 10D780 7F0D8C50 100026EA */ b .L7F0E27FC +/* 10D784 7F0D8C54 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_A0: +/* 10D788 7F0D8C58 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D78C 7F0D8C5C 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10D790 7F0D8C60 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10D794 7F0D8C64 02128024 */ and $s0, $s0, $s2 +/* 10D798 7F0D8C68 321900FF */ andi $t9, $s0, 0xff +/* 10D79C 7F0D8C6C 252D0004 */ addiu $t5, $t1, 4 +/* 10D7A0 7F0D8C70 2F2A0001 */ sltiu $t2, $t9, 1 +/* 10D7A4 7F0D8C74 AFAD028C */ sw $t5, 0x28c($sp) +/* 10D7A8 7F0D8C78 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D7AC 7F0D8C7C 03384821 */ addu $t1, $t9, $t8 +/* 10D7B0 7F0D8C80 912D0000 */ lbu $t5, ($t1) +/* 10D7B4 7F0D8C84 000A4180 */ sll $t0, $t2, 6 +/* 10D7B8 7F0D8C88 332C00A8 */ andi $t4, $t9, 0xa8 +/* 10D7BC 7F0D8C8C 01887825 */ or $t7, $t4, $t0 +/* 10D7C0 7F0D8C90 35EB0010 */ ori $t3, $t7, 0x10 +/* 10D7C4 7F0D8C94 03208025 */ move $s0, $t9 +/* 10D7C8 7F0D8C98 01AB8825 */ or $s1, $t5, $t3 +/* 10D7CC 7F0D8C9C 323900FF */ andi $t9, $s1, 0xff +/* 10D7D0 7F0D8CA0 100026D6 */ b .L7F0E27FC +/* 10D7D4 7F0D8CA4 03208825 */ move $s1, $t9 +spectrum_op_A1: +/* 10D7D8 7F0D8CA8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10D7DC 7F0D8CAC 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10D7E0 7F0D8CB0 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10D7E4 7F0D8CB4 02138024 */ and $s0, $s0, $s3 +/* 10D7E8 7F0D8CB8 320C00FF */ andi $t4, $s0, 0xff +/* 10D7EC 7F0D8CBC 254E0004 */ addiu $t6, $t2, 4 +/* 10D7F0 7F0D8CC0 2D880001 */ sltiu $t0, $t4, 1 +/* 10D7F4 7F0D8CC4 AFAE028C */ sw $t6, 0x28c($sp) +/* 10D7F8 7F0D8CC8 AFA80048 */ sw $t0, 0x48($sp) +/* 10D7FC 7F0D8CCC 01995021 */ addu $t2, $t4, $t9 +/* 10D800 7F0D8CD0 914E0000 */ lbu $t6, ($t2) +/* 10D804 7F0D8CD4 00084980 */ sll $t1, $t0, 6 +/* 10D808 7F0D8CD8 318F00A8 */ andi $t7, $t4, 0xa8 +/* 10D80C 7F0D8CDC 01E96825 */ or $t5, $t7, $t1 +/* 10D810 7F0D8CE0 35AB0010 */ ori $t3, $t5, 0x10 +/* 10D814 7F0D8CE4 01808025 */ move $s0, $t4 +/* 10D818 7F0D8CE8 01CB8825 */ or $s1, $t6, $t3 +/* 10D81C 7F0D8CEC 322C00FF */ andi $t4, $s1, 0xff +/* 10D820 7F0D8CF0 100026C2 */ b .L7F0E27FC +/* 10D824 7F0D8CF4 01808825 */ move $s1, $t4 +spectrum_op_A2: +/* 10D828 7F0D8CF8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D82C 7F0D8CFC 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10D830 7F0D8D00 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10D834 7F0D8D04 02148024 */ and $s0, $s0, $s4 +/* 10D838 7F0D8D08 320F00FF */ andi $t7, $s0, 0xff +/* 10D83C 7F0D8D0C 25180004 */ addiu $t8, $t0, 4 +/* 10D840 7F0D8D10 2DE90001 */ sltiu $t1, $t7, 1 +/* 10D844 7F0D8D14 AFB8028C */ sw $t8, 0x28c($sp) +/* 10D848 7F0D8D18 AFA90048 */ sw $t1, 0x48($sp) +/* 10D84C 7F0D8D1C 01EC4021 */ addu $t0, $t7, $t4 +/* 10D850 7F0D8D20 91180000 */ lbu $t8, ($t0) +/* 10D854 7F0D8D24 00095180 */ sll $t2, $t1, 6 +/* 10D858 7F0D8D28 31ED00A8 */ andi $t5, $t7, 0xa8 +/* 10D85C 7F0D8D2C 01AA7025 */ or $t6, $t5, $t2 +/* 10D860 7F0D8D30 35CB0010 */ ori $t3, $t6, 0x10 +/* 10D864 7F0D8D34 01E08025 */ move $s0, $t7 +/* 10D868 7F0D8D38 030B8825 */ or $s1, $t8, $t3 +/* 10D86C 7F0D8D3C 322F00FF */ andi $t7, $s1, 0xff +/* 10D870 7F0D8D40 100026AE */ b .L7F0E27FC +/* 10D874 7F0D8D44 01E08825 */ move $s1, $t7 +spectrum_op_A3: +/* 10D878 7F0D8D48 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D87C 7F0D8D4C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10D880 7F0D8D50 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10D884 7F0D8D54 02158024 */ and $s0, $s0, $s5 +/* 10D888 7F0D8D58 320D00FF */ andi $t5, $s0, 0xff +/* 10D88C 7F0D8D5C 25390004 */ addiu $t9, $t1, 4 +/* 10D890 7F0D8D60 2DAA0001 */ sltiu $t2, $t5, 1 +/* 10D894 7F0D8D64 AFB9028C */ sw $t9, 0x28c($sp) +/* 10D898 7F0D8D68 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D89C 7F0D8D6C 01AF4821 */ addu $t1, $t5, $t7 +/* 10D8A0 7F0D8D70 91390000 */ lbu $t9, ($t1) +/* 10D8A4 7F0D8D74 000A4180 */ sll $t0, $t2, 6 +/* 10D8A8 7F0D8D78 31AE00A8 */ andi $t6, $t5, 0xa8 +/* 10D8AC 7F0D8D7C 01C8C025 */ or $t8, $t6, $t0 +/* 10D8B0 7F0D8D80 370B0010 */ ori $t3, $t8, 0x10 +/* 10D8B4 7F0D8D84 01A08025 */ move $s0, $t5 +/* 10D8B8 7F0D8D88 032B8825 */ or $s1, $t9, $t3 +/* 10D8BC 7F0D8D8C 322D00FF */ andi $t5, $s1, 0xff +/* 10D8C0 7F0D8D90 1000269A */ b .L7F0E27FC +/* 10D8C4 7F0D8D94 01A08825 */ move $s1, $t5 +spectrum_op_A4: +/* 10D8C8 7F0D8D98 8FAA028C */ lw $t2, 0x28c($sp) +/* 10D8CC 7F0D8D9C 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D8D0 7F0D8DA0 93A80287 */ lbu $t0, 0x287($sp) +/* 10D8D4 7F0D8DA4 254C0004 */ addiu $t4, $t2, 4 +/* 10D8D8 7F0D8DA8 15C00003 */ bnez $t6, .L7F0D8DB8 +/* 10D8DC 7F0D8DAC AFAC028C */ sw $t4, 0x28c($sp) +/* 10D8E0 7F0D8DB0 1000000C */ b .L7F0D8DE4 +/* 10D8E4 7F0D8DB4 AFB60048 */ sw $s6, 0x48($sp) +.L7F0D8DB8: +/* 10D8E8 7F0D8DB8 24010001 */ li $at, 1 +/* 10D8EC 7F0D8DBC 15010005 */ bne $t0, $at, .L7F0D8DD4 +/* 10D8F0 7F0D8DC0 97A90294 */ lhu $t1, 0x294($sp) +/* 10D8F4 7F0D8DC4 97B80296 */ lhu $t8, 0x296($sp) +/* 10D8F8 7F0D8DC8 00187A03 */ sra $t7, $t8, 8 +/* 10D8FC 7F0D8DCC 10000003 */ b .L7F0D8DDC +/* 10D900 7F0D8DD0 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D8DD4: +/* 10D904 7F0D8DD4 0009CA03 */ sra $t9, $t1, 8 +/* 10D908 7F0D8DD8 AFB90044 */ sw $t9, 0x44($sp) +.L7F0D8DDC: +/* 10D90C 7F0D8DDC 8FAB0044 */ lw $t3, 0x44($sp) +/* 10D910 7F0D8DE0 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D8DE4: +/* 10D914 7F0D8DE4 8FAD0048 */ lw $t5, 0x48($sp) +/* 10D918 7F0D8DE8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10D91C 7F0D8DEC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10D920 7F0D8DF0 020D8024 */ and $s0, $s0, $t5 +/* 10D924 7F0D8DF4 320A00FF */ andi $t2, $s0, 0xff +/* 10D928 7F0D8DF8 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10D92C 7F0D8DFC AFAC0048 */ sw $t4, 0x48($sp) +/* 10D930 7F0D8E00 01595821 */ addu $t3, $t2, $t9 +/* 10D934 7F0D8E04 916D0000 */ lbu $t5, ($t3) +/* 10D938 7F0D8E08 000CC180 */ sll $t8, $t4, 6 +/* 10D93C 7F0D8E0C 314E00A8 */ andi $t6, $t2, 0xa8 +/* 10D940 7F0D8E10 01D87825 */ or $t7, $t6, $t8 +/* 10D944 7F0D8E14 35E90010 */ ori $t1, $t7, 0x10 +/* 10D948 7F0D8E18 01408025 */ move $s0, $t2 +/* 10D94C 7F0D8E1C 01A98825 */ or $s1, $t5, $t1 +/* 10D950 7F0D8E20 322A00FF */ andi $t2, $s1, 0xff +/* 10D954 7F0D8E24 10002675 */ b .L7F0E27FC +/* 10D958 7F0D8E28 01408825 */ move $s1, $t2 +spectrum_op_A5: +/* 10D95C 7F0D8E2C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10D960 7F0D8E30 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D964 7F0D8E34 93B80287 */ lbu $t8, 0x287($sp) +/* 10D968 7F0D8E38 25880004 */ addiu $t0, $t4, 4 +/* 10D96C 7F0D8E3C 15C00003 */ bnez $t6, .L7F0D8E4C +/* 10D970 7F0D8E40 AFA8028C */ sw $t0, 0x28c($sp) +/* 10D974 7F0D8E44 1000000C */ b .L7F0D8E78 +/* 10D978 7F0D8E48 AFB70048 */ sw $s7, 0x48($sp) +.L7F0D8E4C: +/* 10D97C 7F0D8E4C 24010001 */ li $at, 1 +/* 10D980 7F0D8E50 17010005 */ bne $t8, $at, .L7F0D8E68 +/* 10D984 7F0D8E54 97AB0294 */ lhu $t3, 0x294($sp) +/* 10D988 7F0D8E58 97AF0296 */ lhu $t7, 0x296($sp) +/* 10D98C 7F0D8E5C 31F900FF */ andi $t9, $t7, 0xff +/* 10D990 7F0D8E60 10000003 */ b .L7F0D8E70 +/* 10D994 7F0D8E64 AFB90044 */ sw $t9, 0x44($sp) +.L7F0D8E68: +/* 10D998 7F0D8E68 316D00FF */ andi $t5, $t3, 0xff +/* 10D99C 7F0D8E6C AFAD0044 */ sw $t5, 0x44($sp) +.L7F0D8E70: +/* 10D9A0 7F0D8E70 8FA90044 */ lw $t1, 0x44($sp) +/* 10D9A4 7F0D8E74 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D8E78: +/* 10D9A8 7F0D8E78 8FAA0048 */ lw $t2, 0x48($sp) +/* 10D9AC 7F0D8E7C 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10D9B0 7F0D8E80 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10D9B4 7F0D8E84 020A8024 */ and $s0, $s0, $t2 +/* 10D9B8 7F0D8E88 320C00FF */ andi $t4, $s0, 0xff +/* 10D9BC 7F0D8E8C 2D880001 */ sltiu $t0, $t4, 1 +/* 10D9C0 7F0D8E90 AFA80048 */ sw $t0, 0x48($sp) +/* 10D9C4 7F0D8E94 018D4821 */ addu $t1, $t4, $t5 +/* 10D9C8 7F0D8E98 912A0000 */ lbu $t2, ($t1) +/* 10D9CC 7F0D8E9C 00087980 */ sll $t7, $t0, 6 +/* 10D9D0 7F0D8EA0 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10D9D4 7F0D8EA4 01CFC825 */ or $t9, $t6, $t7 +/* 10D9D8 7F0D8EA8 372B0010 */ ori $t3, $t9, 0x10 +/* 10D9DC 7F0D8EAC 01808025 */ move $s0, $t4 +/* 10D9E0 7F0D8EB0 014B8825 */ or $s1, $t2, $t3 +/* 10D9E4 7F0D8EB4 322C00FF */ andi $t4, $s1, 0xff +/* 10D9E8 7F0D8EB8 10002650 */ b .L7F0E27FC +/* 10D9EC 7F0D8EBC 01808825 */ move $s1, $t4 +spectrum_op_A6: +/* 10D9F0 7F0D8EC0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D9F4 7F0D8EC4 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D9F8 7F0D8EC8 00167A00 */ sll $t7, $s6, 8 +/* 10D9FC 7F0D8ECC 25180007 */ addiu $t8, $t0, 7 +/* 10DA00 7F0D8ED0 15C00004 */ bnez $t6, .L7F0D8EE4 +/* 10DA04 7F0D8ED4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10DA08 7F0D8ED8 01F7C825 */ or $t9, $t7, $s7 +/* 10DA0C 7F0D8EDC 10000016 */ b .L7F0D8F38 +/* 10DA10 7F0D8EE0 A7B90168 */ sh $t9, 0x168($sp) +.L7F0D8EE4: +/* 10DA14 7F0D8EE4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DA18 7F0D8EE8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10DA1C 7F0D8EEC 24010001 */ li $at, 1 +/* 10DA20 7F0D8EF0 25A90008 */ addiu $t1, $t5, 8 +/* 10DA24 7F0D8EF4 15410004 */ bne $t2, $at, .L7F0D8F08 +/* 10DA28 7F0D8EF8 AFA9028C */ sw $t1, 0x28c($sp) +/* 10DA2C 7F0D8EFC 97AB0296 */ lhu $t3, 0x296($sp) +/* 10DA30 7F0D8F00 10000003 */ b .L7F0D8F10 +/* 10DA34 7F0D8F04 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D8F08: +/* 10DA38 7F0D8F08 97AC0294 */ lhu $t4, 0x294($sp) +/* 10DA3C 7F0D8F0C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8F10: +/* 10DA40 7F0D8F10 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10DA44 7F0D8F14 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10DA48 7F0D8F18 97A80298 */ lhu $t0, 0x298($sp) +/* 10DA4C 7F0D8F1C 8FB90048 */ lw $t9, 0x48($sp) +/* 10DA50 7F0D8F20 01187021 */ addu $t6, $t0, $t8 +/* 10DA54 7F0D8F24 81CF0000 */ lb $t7, ($t6) +/* 10DA58 7F0D8F28 25090001 */ addiu $t1, $t0, 1 +/* 10DA5C 7F0D8F2C A7A90298 */ sh $t1, 0x298($sp) +/* 10DA60 7F0D8F30 01F96821 */ addu $t5, $t7, $t9 +/* 10DA64 7F0D8F34 A7AD0168 */ sh $t5, 0x168($sp) +.L7F0D8F38: +/* 10DA68 7F0D8F38 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10DA6C 7F0D8F3C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10DA70 7F0D8F40 97AB0168 */ lhu $t3, 0x168($sp) +/* 10DA74 7F0D8F44 014B6021 */ addu $t4, $t2, $t3 +/* 10DA78 7F0D8F48 91980000 */ lbu $t8, ($t4) +/* 10DA7C 7F0D8F4C 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10DA80 7F0D8F50 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10DA84 7F0D8F54 02188024 */ and $s0, $s0, $t8 +/* 10DA88 7F0D8F58 320E00FF */ andi $t6, $s0, 0xff +/* 10DA8C 7F0D8F5C 2DCF0001 */ sltiu $t7, $t6, 1 +/* 10DA90 7F0D8F60 AFAF0048 */ sw $t7, 0x48($sp) +/* 10DA94 7F0D8F64 01CB6021 */ addu $t4, $t6, $t3 +/* 10DA98 7F0D8F68 91980000 */ lbu $t8, ($t4) +/* 10DA9C 7F0D8F6C 000F4180 */ sll $t0, $t7, 6 +/* 10DAA0 7F0D8F70 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10DAA4 7F0D8F74 03284825 */ or $t1, $t9, $t0 +/* 10DAA8 7F0D8F78 352A0010 */ ori $t2, $t1, 0x10 +/* 10DAAC 7F0D8F7C 01C08025 */ move $s0, $t6 +/* 10DAB0 7F0D8F80 030A8825 */ or $s1, $t8, $t2 +/* 10DAB4 7F0D8F84 322E00FF */ andi $t6, $s1, 0xff +/* 10DAB8 7F0D8F88 1000261C */ b .L7F0E27FC +/* 10DABC 7F0D8F8C 01C08825 */ move $s1, $t6 +spectrum_op_A7: +/* 10DAC0 7F0D8F90 8FAF028C */ lw $t7, 0x28c($sp) +/* 10DAC4 7F0D8F94 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10DAC8 7F0D8F98 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10DACC 7F0D8F9C 02108024 */ and $s0, $s0, $s0 +/* 10DAD0 7F0D8FA0 321900FF */ andi $t9, $s0, 0xff +/* 10DAD4 7F0D8FA4 25ED0004 */ addiu $t5, $t7, 4 +/* 10DAD8 7F0D8FA8 2F280001 */ sltiu $t0, $t9, 1 +/* 10DADC 7F0D8FAC AFAD028C */ sw $t5, 0x28c($sp) +/* 10DAE0 7F0D8FB0 AFA80048 */ sw $t0, 0x48($sp) +/* 10DAE4 7F0D8FB4 032E7821 */ addu $t7, $t9, $t6 +/* 10DAE8 7F0D8FB8 91ED0000 */ lbu $t5, ($t7) +/* 10DAEC 7F0D8FBC 00086180 */ sll $t4, $t0, 6 +/* 10DAF0 7F0D8FC0 332900A8 */ andi $t1, $t9, 0xa8 +/* 10DAF4 7F0D8FC4 012CC025 */ or $t8, $t1, $t4 +/* 10DAF8 7F0D8FC8 370A0010 */ ori $t2, $t8, 0x10 +/* 10DAFC 7F0D8FCC 03208025 */ move $s0, $t9 +/* 10DB00 7F0D8FD0 01AA8825 */ or $s1, $t5, $t2 +/* 10DB04 7F0D8FD4 323900FF */ andi $t9, $s1, 0xff +/* 10DB08 7F0D8FD8 10002608 */ b .L7F0E27FC +/* 10DB0C 7F0D8FDC 03208825 */ move $s1, $t9 +spectrum_op_A8: +/* 10DB10 7F0D8FE0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DB14 7F0D8FE4 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DB18 7F0D8FE8 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DB1C 7F0D8FEC 02128026 */ xor $s0, $s0, $s2 +/* 10DB20 7F0D8FF0 320900FF */ andi $t1, $s0, 0xff +/* 10DB24 7F0D8FF4 2D2C0001 */ sltiu $t4, $t1, 1 +/* 10DB28 7F0D8FF8 250B0004 */ addiu $t3, $t0, 4 +/* 10DB2C 7F0D8FFC AFAB028C */ sw $t3, 0x28c($sp) +/* 10DB30 7F0D9000 AFAC0048 */ sw $t4, 0x48($sp) +/* 10DB34 7F0D9004 012AC821 */ addu $t9, $t1, $t2 +/* 10DB38 7F0D9008 93280000 */ lbu $t0, ($t9) +/* 10DB3C 7F0D900C 000C7980 */ sll $t7, $t4, 6 +/* 10DB40 7F0D9010 313800A8 */ andi $t8, $t1, 0xa8 +/* 10DB44 7F0D9014 030F6825 */ or $t5, $t8, $t7 +/* 10DB48 7F0D9018 010D8825 */ or $s1, $t0, $t5 +/* 10DB4C 7F0D901C 322B00FF */ andi $t3, $s1, 0xff +/* 10DB50 7F0D9020 01608825 */ move $s1, $t3 +/* 10DB54 7F0D9024 100025F5 */ b .L7F0E27FC +/* 10DB58 7F0D9028 01208025 */ move $s0, $t1 +spectrum_op_A9: +/* 10DB5C 7F0D902C 8FA9028C */ lw $t1, 0x28c($sp) +/* 10DB60 7F0D9030 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10DB64 7F0D9034 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10DB68 7F0D9038 02138026 */ xor $s0, $s0, $s3 +/* 10DB6C 7F0D903C 320E00FF */ andi $t6, $s0, 0xff +/* 10DB70 7F0D9040 2DD80001 */ sltiu $t8, $t6, 1 +/* 10DB74 7F0D9044 252C0004 */ addiu $t4, $t1, 4 +/* 10DB78 7F0D9048 AFAC028C */ sw $t4, 0x28c($sp) +/* 10DB7C 7F0D904C AFB80048 */ sw $t8, 0x48($sp) +/* 10DB80 7F0D9050 01CD5821 */ addu $t3, $t6, $t5 +/* 10DB84 7F0D9054 91690000 */ lbu $t1, ($t3) +/* 10DB88 7F0D9058 0018C980 */ sll $t9, $t8, 6 +/* 10DB8C 7F0D905C 31CF00A8 */ andi $t7, $t6, 0xa8 +/* 10DB90 7F0D9060 01F94025 */ or $t0, $t7, $t9 +/* 10DB94 7F0D9064 01288825 */ or $s1, $t1, $t0 +/* 10DB98 7F0D9068 322C00FF */ andi $t4, $s1, 0xff +/* 10DB9C 7F0D906C 01808825 */ move $s1, $t4 +/* 10DBA0 7F0D9070 100025E2 */ b .L7F0E27FC +/* 10DBA4 7F0D9074 01C08025 */ move $s0, $t6 +spectrum_op_AA: +/* 10DBA8 7F0D9078 8FAE028C */ lw $t6, 0x28c($sp) +/* 10DBAC 7F0D907C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10DBB0 7F0D9080 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10DBB4 7F0D9084 02148026 */ xor $s0, $s0, $s4 +/* 10DBB8 7F0D9088 320A00FF */ andi $t2, $s0, 0xff +/* 10DBBC 7F0D908C 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10DBC0 7F0D9090 25D80004 */ addiu $t8, $t6, 4 +/* 10DBC4 7F0D9094 AFB8028C */ sw $t8, 0x28c($sp) +/* 10DBC8 7F0D9098 AFAF0048 */ sw $t7, 0x48($sp) +/* 10DBCC 7F0D909C 01486021 */ addu $t4, $t2, $t0 +/* 10DBD0 7F0D90A0 918E0000 */ lbu $t6, ($t4) +/* 10DBD4 7F0D90A4 000F5980 */ sll $t3, $t7, 6 +/* 10DBD8 7F0D90A8 315900A8 */ andi $t9, $t2, 0xa8 +/* 10DBDC 7F0D90AC 032B4825 */ or $t1, $t9, $t3 +/* 10DBE0 7F0D90B0 01C98825 */ or $s1, $t6, $t1 +/* 10DBE4 7F0D90B4 323800FF */ andi $t8, $s1, 0xff +/* 10DBE8 7F0D90B8 03008825 */ move $s1, $t8 +/* 10DBEC 7F0D90BC 100025CF */ b .L7F0E27FC +/* 10DBF0 7F0D90C0 01408025 */ move $s0, $t2 +spectrum_op_AB: +/* 10DBF4 7F0D90C4 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DBF8 7F0D90C8 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DBFC 7F0D90CC 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DC00 7F0D90D0 02158026 */ xor $s0, $s0, $s5 +/* 10DC04 7F0D90D4 320D00FF */ andi $t5, $s0, 0xff +/* 10DC08 7F0D90D8 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DC0C 7F0D90DC 254F0004 */ addiu $t7, $t2, 4 +/* 10DC10 7F0D90E0 AFAF028C */ sw $t7, 0x28c($sp) +/* 10DC14 7F0D90E4 AFB90048 */ sw $t9, 0x48($sp) +/* 10DC18 7F0D90E8 01A9C021 */ addu $t8, $t5, $t1 +/* 10DC1C 7F0D90EC 930A0000 */ lbu $t2, ($t8) +/* 10DC20 7F0D90F0 00196180 */ sll $t4, $t9, 6 +/* 10DC24 7F0D90F4 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10DC28 7F0D90F8 016C7025 */ or $t6, $t3, $t4 +/* 10DC2C 7F0D90FC 014E8825 */ or $s1, $t2, $t6 +/* 10DC30 7F0D9100 322F00FF */ andi $t7, $s1, 0xff +/* 10DC34 7F0D9104 01E08825 */ move $s1, $t7 +/* 10DC38 7F0D9108 100025BC */ b .L7F0E27FC +/* 10DC3C 7F0D910C 01A08025 */ move $s0, $t5 +spectrum_op_AC: +/* 10DC40 7F0D9110 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DC44 7F0D9114 93A80287 */ lbu $t0, 0x287($sp) +/* 10DC48 7F0D9118 93AB0287 */ lbu $t3, 0x287($sp) +/* 10DC4C 7F0D911C 25B90004 */ addiu $t9, $t5, 4 +/* 10DC50 7F0D9120 15000003 */ bnez $t0, .L7F0D9130 +/* 10DC54 7F0D9124 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DC58 7F0D9128 1000000C */ b .L7F0D915C +/* 10DC5C 7F0D912C AFB60048 */ sw $s6, 0x48($sp) +.L7F0D9130: +/* 10DC60 7F0D9130 24010001 */ li $at, 1 +/* 10DC64 7F0D9134 15610005 */ bne $t3, $at, .L7F0D914C +/* 10DC68 7F0D9138 97B80294 */ lhu $t8, 0x294($sp) +/* 10DC6C 7F0D913C 97AC0296 */ lhu $t4, 0x296($sp) +/* 10DC70 7F0D9140 000C4A03 */ sra $t1, $t4, 8 +/* 10DC74 7F0D9144 10000003 */ b .L7F0D9154 +/* 10DC78 7F0D9148 AFA90044 */ sw $t1, 0x44($sp) +.L7F0D914C: +/* 10DC7C 7F0D914C 00185203 */ sra $t2, $t8, 8 +/* 10DC80 7F0D9150 AFAA0044 */ sw $t2, 0x44($sp) +.L7F0D9154: +/* 10DC84 7F0D9154 8FAE0044 */ lw $t6, 0x44($sp) +/* 10DC88 7F0D9158 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D915C: +/* 10DC8C 7F0D915C 8FAF0048 */ lw $t7, 0x48($sp) +/* 10DC90 7F0D9160 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10DC94 7F0D9164 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10DC98 7F0D9168 020F8026 */ xor $s0, $s0, $t7 +/* 10DC9C 7F0D916C 320D00FF */ andi $t5, $s0, 0xff +/* 10DCA0 7F0D9170 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DCA4 7F0D9174 AFB90048 */ sw $t9, 0x48($sp) +/* 10DCA8 7F0D9178 01B85021 */ addu $t2, $t5, $t8 +/* 10DCAC 7F0D917C 914E0000 */ lbu $t6, ($t2) +/* 10DCB0 7F0D9180 00196180 */ sll $t4, $t9, 6 +/* 10DCB4 7F0D9184 31A800A8 */ andi $t0, $t5, 0xa8 +/* 10DCB8 7F0D9188 010C4825 */ or $t1, $t0, $t4 +/* 10DCBC 7F0D918C 01C98825 */ or $s1, $t6, $t1 +/* 10DCC0 7F0D9190 322F00FF */ andi $t7, $s1, 0xff +/* 10DCC4 7F0D9194 01E08825 */ move $s1, $t7 +/* 10DCC8 7F0D9198 10002598 */ b .L7F0E27FC +/* 10DCCC 7F0D919C 01A08025 */ move $s0, $t5 +spectrum_op_AD: +/* 10DCD0 7F0D91A0 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DCD4 7F0D91A4 93AB0287 */ lbu $t3, 0x287($sp) +/* 10DCD8 7F0D91A8 93A80287 */ lbu $t0, 0x287($sp) +/* 10DCDC 7F0D91AC 25B90004 */ addiu $t9, $t5, 4 +/* 10DCE0 7F0D91B0 15600003 */ bnez $t3, .L7F0D91C0 +/* 10DCE4 7F0D91B4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DCE8 7F0D91B8 1000000C */ b .L7F0D91EC +/* 10DCEC 7F0D91BC AFB70048 */ sw $s7, 0x48($sp) +.L7F0D91C0: +/* 10DCF0 7F0D91C0 24010001 */ li $at, 1 +/* 10DCF4 7F0D91C4 15010005 */ bne $t0, $at, .L7F0D91DC +/* 10DCF8 7F0D91C8 97AA0294 */ lhu $t2, 0x294($sp) +/* 10DCFC 7F0D91CC 97AC0296 */ lhu $t4, 0x296($sp) +/* 10DD00 7F0D91D0 319800FF */ andi $t8, $t4, 0xff +/* 10DD04 7F0D91D4 10000003 */ b .L7F0D91E4 +/* 10DD08 7F0D91D8 AFB80044 */ sw $t8, 0x44($sp) +.L7F0D91DC: +/* 10DD0C 7F0D91DC 314E00FF */ andi $t6, $t2, 0xff +/* 10DD10 7F0D91E0 AFAE0044 */ sw $t6, 0x44($sp) +.L7F0D91E4: +/* 10DD14 7F0D91E4 8FA90044 */ lw $t1, 0x44($sp) +/* 10DD18 7F0D91E8 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D91EC: +/* 10DD1C 7F0D91EC 8FAF0048 */ lw $t7, 0x48($sp) +/* 10DD20 7F0D91F0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DD24 7F0D91F4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DD28 7F0D91F8 020F8026 */ xor $s0, $s0, $t7 +/* 10DD2C 7F0D91FC 320D00FF */ andi $t5, $s0, 0xff +/* 10DD30 7F0D9200 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DD34 7F0D9204 AFB90048 */ sw $t9, 0x48($sp) +/* 10DD38 7F0D9208 01AA7021 */ addu $t6, $t5, $t2 +/* 10DD3C 7F0D920C 91C90000 */ lbu $t1, ($t6) +/* 10DD40 7F0D9210 00196180 */ sll $t4, $t9, 6 +/* 10DD44 7F0D9214 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10DD48 7F0D9218 016CC025 */ or $t8, $t3, $t4 +/* 10DD4C 7F0D921C 01388825 */ or $s1, $t1, $t8 +/* 10DD50 7F0D9220 322F00FF */ andi $t7, $s1, 0xff +/* 10DD54 7F0D9224 01E08825 */ move $s1, $t7 +/* 10DD58 7F0D9228 10002574 */ b .L7F0E27FC +/* 10DD5C 7F0D922C 01A08025 */ move $s0, $t5 +spectrum_op_AE: +/* 10DD60 7F0D9230 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DD64 7F0D9234 93A80287 */ lbu $t0, 0x287($sp) +/* 10DD68 7F0D9238 00165A00 */ sll $t3, $s6, 8 +/* 10DD6C 7F0D923C 25B90007 */ addiu $t9, $t5, 7 +/* 10DD70 7F0D9240 15000004 */ bnez $t0, .L7F0D9254 +/* 10DD74 7F0D9244 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DD78 7F0D9248 01776025 */ or $t4, $t3, $s7 +/* 10DD7C 7F0D924C 10000016 */ b .L7F0D92A8 +/* 10DD80 7F0D9250 A7AC0166 */ sh $t4, 0x166($sp) +.L7F0D9254: +/* 10DD84 7F0D9254 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DD88 7F0D9258 93A90287 */ lbu $t1, 0x287($sp) +/* 10DD8C 7F0D925C 24010001 */ li $at, 1 +/* 10DD90 7F0D9260 254E0008 */ addiu $t6, $t2, 8 +/* 10DD94 7F0D9264 15210004 */ bne $t1, $at, .L7F0D9278 +/* 10DD98 7F0D9268 AFAE028C */ sw $t6, 0x28c($sp) +/* 10DD9C 7F0D926C 97B80296 */ lhu $t8, 0x296($sp) +/* 10DDA0 7F0D9270 10000003 */ b .L7F0D9280 +/* 10DDA4 7F0D9274 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D9278: +/* 10DDA8 7F0D9278 97AF0294 */ lhu $t7, 0x294($sp) +/* 10DDAC 7F0D927C AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D9280: +/* 10DDB0 7F0D9280 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10DDB4 7F0D9284 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10DDB8 7F0D9288 97AD0298 */ lhu $t5, 0x298($sp) +/* 10DDBC 7F0D928C 8FAC0048 */ lw $t4, 0x48($sp) +/* 10DDC0 7F0D9290 01B94021 */ addu $t0, $t5, $t9 +/* 10DDC4 7F0D9294 810B0000 */ lb $t3, ($t0) +/* 10DDC8 7F0D9298 25AE0001 */ addiu $t6, $t5, 1 +/* 10DDCC 7F0D929C A7AE0298 */ sh $t6, 0x298($sp) +/* 10DDD0 7F0D92A0 016C5021 */ addu $t2, $t3, $t4 +/* 10DDD4 7F0D92A4 A7AA0166 */ sh $t2, 0x166($sp) +.L7F0D92A8: +/* 10DDD8 7F0D92A8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10DDDC 7F0D92AC 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10DDE0 7F0D92B0 97B80166 */ lhu $t8, 0x166($sp) +/* 10DDE4 7F0D92B4 01387821 */ addu $t7, $t1, $t8 +/* 10DDE8 7F0D92B8 91F90000 */ lbu $t9, ($t7) +/* 10DDEC 7F0D92BC 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DDF0 7F0D92C0 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DDF4 7F0D92C4 02198026 */ xor $s0, $s0, $t9 +/* 10DDF8 7F0D92C8 320800FF */ andi $t0, $s0, 0xff +/* 10DDFC 7F0D92CC 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10DE00 7F0D92D0 AFAB0048 */ sw $t3, 0x48($sp) +/* 10DE04 7F0D92D4 0109C021 */ addu $t8, $t0, $t1 +/* 10DE08 7F0D92D8 930F0000 */ lbu $t7, ($t8) +/* 10DE0C 7F0D92DC 000B6980 */ sll $t5, $t3, 6 +/* 10DE10 7F0D92E0 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10DE14 7F0D92E4 018D7025 */ or $t6, $t4, $t5 +/* 10DE18 7F0D92E8 01EE8825 */ or $s1, $t7, $t6 +/* 10DE1C 7F0D92EC 323900FF */ andi $t9, $s1, 0xff +/* 10DE20 7F0D92F0 03208825 */ move $s1, $t9 +/* 10DE24 7F0D92F4 10002541 */ b .L7F0E27FC +/* 10DE28 7F0D92F8 01008025 */ move $s0, $t0 +spectrum_op_AF: +/* 10DE2C 7F0D92FC 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DE30 7F0D9300 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10DE34 7F0D9304 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10DE38 7F0D9308 02108026 */ xor $s0, $s0, $s0 +/* 10DE3C 7F0D930C 320A00FF */ andi $t2, $s0, 0xff +/* 10DE40 7F0D9310 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10DE44 7F0D9314 250B0004 */ addiu $t3, $t0, 4 +/* 10DE48 7F0D9318 AFAB028C */ sw $t3, 0x28c($sp) +/* 10DE4C 7F0D931C AFAC0048 */ sw $t4, 0x48($sp) +/* 10DE50 7F0D9320 014EC821 */ addu $t9, $t2, $t6 +/* 10DE54 7F0D9324 93280000 */ lbu $t0, ($t9) +/* 10DE58 7F0D9328 000CC180 */ sll $t8, $t4, 6 +/* 10DE5C 7F0D932C 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10DE60 7F0D9330 01B87825 */ or $t7, $t5, $t8 +/* 10DE64 7F0D9334 010F8825 */ or $s1, $t0, $t7 +/* 10DE68 7F0D9338 322B00FF */ andi $t3, $s1, 0xff +/* 10DE6C 7F0D933C 01608825 */ move $s1, $t3 +/* 10DE70 7F0D9340 1000252E */ b .L7F0E27FC +/* 10DE74 7F0D9344 01408025 */ move $s0, $t2 +spectrum_op_B0: +/* 10DE78 7F0D9348 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DE7C 7F0D934C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10DE80 7F0D9350 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10DE84 7F0D9354 02128025 */ or $s0, $s0, $s2 +/* 10DE88 7F0D9358 320900FF */ andi $t1, $s0, 0xff +/* 10DE8C 7F0D935C 2D2D0001 */ sltiu $t5, $t1, 1 +/* 10DE90 7F0D9360 254C0004 */ addiu $t4, $t2, 4 +/* 10DE94 7F0D9364 AFAC028C */ sw $t4, 0x28c($sp) +/* 10DE98 7F0D9368 AFAD0048 */ sw $t5, 0x48($sp) +/* 10DE9C 7F0D936C 012F5821 */ addu $t3, $t1, $t7 +/* 10DEA0 7F0D9370 916A0000 */ lbu $t2, ($t3) +/* 10DEA4 7F0D9374 000DC980 */ sll $t9, $t5, 6 +/* 10DEA8 7F0D9378 313800A8 */ andi $t8, $t1, 0xa8 +/* 10DEAC 7F0D937C 03194025 */ or $t0, $t8, $t9 +/* 10DEB0 7F0D9380 01488825 */ or $s1, $t2, $t0 +/* 10DEB4 7F0D9384 322C00FF */ andi $t4, $s1, 0xff +/* 10DEB8 7F0D9388 01808825 */ move $s1, $t4 +/* 10DEBC 7F0D938C 1000251B */ b .L7F0E27FC +/* 10DEC0 7F0D9390 01208025 */ move $s0, $t1 +spectrum_op_B1: +/* 10DEC4 7F0D9394 8FA9028C */ lw $t1, 0x28c($sp) +/* 10DEC8 7F0D9398 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10DECC 7F0D939C 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10DED0 7F0D93A0 02138025 */ or $s0, $s0, $s3 +/* 10DED4 7F0D93A4 320E00FF */ andi $t6, $s0, 0xff +/* 10DED8 7F0D93A8 2DD80001 */ sltiu $t8, $t6, 1 +/* 10DEDC 7F0D93AC 252D0004 */ addiu $t5, $t1, 4 +/* 10DEE0 7F0D93B0 AFAD028C */ sw $t5, 0x28c($sp) +/* 10DEE4 7F0D93B4 AFB80048 */ sw $t8, 0x48($sp) +/* 10DEE8 7F0D93B8 01C86021 */ addu $t4, $t6, $t0 +/* 10DEEC 7F0D93BC 91890000 */ lbu $t1, ($t4) +/* 10DEF0 7F0D93C0 00185980 */ sll $t3, $t8, 6 +/* 10DEF4 7F0D93C4 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10DEF8 7F0D93C8 032B5025 */ or $t2, $t9, $t3 +/* 10DEFC 7F0D93CC 012A8825 */ or $s1, $t1, $t2 +/* 10DF00 7F0D93D0 322D00FF */ andi $t5, $s1, 0xff +/* 10DF04 7F0D93D4 01A08825 */ move $s1, $t5 +/* 10DF08 7F0D93D8 10002508 */ b .L7F0E27FC +/* 10DF0C 7F0D93DC 01C08025 */ move $s0, $t6 +spectrum_op_B2: +/* 10DF10 7F0D93E0 8FAE028C */ lw $t6, 0x28c($sp) +/* 10DF14 7F0D93E4 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DF18 7F0D93E8 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DF1C 7F0D93EC 02148025 */ or $s0, $s0, $s4 +/* 10DF20 7F0D93F0 320F00FF */ andi $t7, $s0, 0xff +/* 10DF24 7F0D93F4 2DF90001 */ sltiu $t9, $t7, 1 +/* 10DF28 7F0D93F8 25D80004 */ addiu $t8, $t6, 4 +/* 10DF2C 7F0D93FC AFB8028C */ sw $t8, 0x28c($sp) +/* 10DF30 7F0D9400 AFB90048 */ sw $t9, 0x48($sp) +/* 10DF34 7F0D9404 01EA6821 */ addu $t5, $t7, $t2 +/* 10DF38 7F0D9408 91AE0000 */ lbu $t6, ($t5) +/* 10DF3C 7F0D940C 00196180 */ sll $t4, $t9, 6 +/* 10DF40 7F0D9410 31EB00A8 */ andi $t3, $t7, 0xa8 +/* 10DF44 7F0D9414 016C4825 */ or $t1, $t3, $t4 +/* 10DF48 7F0D9418 01C98825 */ or $s1, $t6, $t1 +/* 10DF4C 7F0D941C 323800FF */ andi $t8, $s1, 0xff +/* 10DF50 7F0D9420 03008825 */ move $s1, $t8 +/* 10DF54 7F0D9424 100024F5 */ b .L7F0E27FC +/* 10DF58 7F0D9428 01E08025 */ move $s0, $t7 +spectrum_op_B3: +/* 10DF5C 7F0D942C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10DF60 7F0D9430 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DF64 7F0D9434 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DF68 7F0D9438 02158025 */ or $s0, $s0, $s5 +/* 10DF6C 7F0D943C 320800FF */ andi $t0, $s0, 0xff +/* 10DF70 7F0D9440 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10DF74 7F0D9444 25F90004 */ addiu $t9, $t7, 4 +/* 10DF78 7F0D9448 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DF7C 7F0D944C AFAB0048 */ sw $t3, 0x48($sp) +/* 10DF80 7F0D9450 0109C021 */ addu $t8, $t0, $t1 +/* 10DF84 7F0D9454 930F0000 */ lbu $t7, ($t8) +/* 10DF88 7F0D9458 000B6980 */ sll $t5, $t3, 6 +/* 10DF8C 7F0D945C 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10DF90 7F0D9460 018D7025 */ or $t6, $t4, $t5 +/* 10DF94 7F0D9464 01EE8825 */ or $s1, $t7, $t6 +/* 10DF98 7F0D9468 323900FF */ andi $t9, $s1, 0xff +/* 10DF9C 7F0D946C 03208825 */ move $s1, $t9 +/* 10DFA0 7F0D9470 100024E2 */ b .L7F0E27FC +/* 10DFA4 7F0D9474 01008025 */ move $s0, $t0 +spectrum_op_B4: +/* 10DFA8 7F0D9478 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DFAC 7F0D947C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10DFB0 7F0D9480 93AC0287 */ lbu $t4, 0x287($sp) +/* 10DFB4 7F0D9484 250B0004 */ addiu $t3, $t0, 4 +/* 10DFB8 7F0D9488 15400003 */ bnez $t2, .L7F0D9498 +/* 10DFBC 7F0D948C AFAB028C */ sw $t3, 0x28c($sp) +/* 10DFC0 7F0D9490 1000000C */ b .L7F0D94C4 +/* 10DFC4 7F0D9494 AFB60048 */ sw $s6, 0x48($sp) +.L7F0D9498: +/* 10DFC8 7F0D9498 24010001 */ li $at, 1 +/* 10DFCC 7F0D949C 15810005 */ bne $t4, $at, .L7F0D94B4 +/* 10DFD0 7F0D94A0 97B80294 */ lhu $t8, 0x294($sp) +/* 10DFD4 7F0D94A4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10DFD8 7F0D94A8 000D4A03 */ sra $t1, $t5, 8 +/* 10DFDC 7F0D94AC 10000003 */ b .L7F0D94BC +/* 10DFE0 7F0D94B0 AFA90044 */ sw $t1, 0x44($sp) +.L7F0D94B4: +/* 10DFE4 7F0D94B4 00187A03 */ sra $t7, $t8, 8 +/* 10DFE8 7F0D94B8 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D94BC: +/* 10DFEC 7F0D94BC 8FAE0044 */ lw $t6, 0x44($sp) +/* 10DFF0 7F0D94C0 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D94C4: +/* 10DFF4 7F0D94C4 8FB90048 */ lw $t9, 0x48($sp) +/* 10DFF8 7F0D94C8 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10DFFC 7F0D94CC 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10E000 7F0D94D0 02198025 */ or $s0, $s0, $t9 +/* 10E004 7F0D94D4 320800FF */ andi $t0, $s0, 0xff +/* 10E008 7F0D94D8 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10E00C 7F0D94DC AFAB0048 */ sw $t3, 0x48($sp) +/* 10E010 7F0D94E0 01187821 */ addu $t7, $t0, $t8 +/* 10E014 7F0D94E4 91EE0000 */ lbu $t6, ($t7) +/* 10E018 7F0D94E8 000B6980 */ sll $t5, $t3, 6 +/* 10E01C 7F0D94EC 310A00A8 */ andi $t2, $t0, 0xa8 +/* 10E020 7F0D94F0 014D4825 */ or $t1, $t2, $t5 +/* 10E024 7F0D94F4 01C98825 */ or $s1, $t6, $t1 +/* 10E028 7F0D94F8 323900FF */ andi $t9, $s1, 0xff +/* 10E02C 7F0D94FC 03208825 */ move $s1, $t9 +/* 10E030 7F0D9500 100024BE */ b .L7F0E27FC +/* 10E034 7F0D9504 01008025 */ move $s0, $t0 +spectrum_op_B5: +/* 10E038 7F0D9508 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E03C 7F0D950C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10E040 7F0D9510 93AA0287 */ lbu $t2, 0x287($sp) +/* 10E044 7F0D9514 250B0004 */ addiu $t3, $t0, 4 +/* 10E048 7F0D9518 15800003 */ bnez $t4, .L7F0D9528 +/* 10E04C 7F0D951C AFAB028C */ sw $t3, 0x28c($sp) +/* 10E050 7F0D9520 1000000C */ b .L7F0D9554 +/* 10E054 7F0D9524 AFB70048 */ sw $s7, 0x48($sp) +.L7F0D9528: +/* 10E058 7F0D9528 24010001 */ li $at, 1 +/* 10E05C 7F0D952C 15410005 */ bne $t2, $at, .L7F0D9544 +/* 10E060 7F0D9530 97AF0294 */ lhu $t7, 0x294($sp) +/* 10E064 7F0D9534 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E068 7F0D9538 31B800FF */ andi $t8, $t5, 0xff +/* 10E06C 7F0D953C 10000003 */ b .L7F0D954C +/* 10E070 7F0D9540 AFB80044 */ sw $t8, 0x44($sp) +.L7F0D9544: +/* 10E074 7F0D9544 31EE00FF */ andi $t6, $t7, 0xff +/* 10E078 7F0D9548 AFAE0044 */ sw $t6, 0x44($sp) +.L7F0D954C: +/* 10E07C 7F0D954C 8FA90044 */ lw $t1, 0x44($sp) +/* 10E080 7F0D9550 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D9554: +/* 10E084 7F0D9554 8FB90048 */ lw $t9, 0x48($sp) +/* 10E088 7F0D9558 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10E08C 7F0D955C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10E090 7F0D9560 02198025 */ or $s0, $s0, $t9 +/* 10E094 7F0D9564 320800FF */ andi $t0, $s0, 0xff +/* 10E098 7F0D9568 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10E09C 7F0D956C AFAB0048 */ sw $t3, 0x48($sp) +/* 10E0A0 7F0D9570 010F7021 */ addu $t6, $t0, $t7 +/* 10E0A4 7F0D9574 91C90000 */ lbu $t1, ($t6) +/* 10E0A8 7F0D9578 000B6980 */ sll $t5, $t3, 6 +/* 10E0AC 7F0D957C 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10E0B0 7F0D9580 018DC025 */ or $t8, $t4, $t5 +/* 10E0B4 7F0D9584 01388825 */ or $s1, $t1, $t8 +/* 10E0B8 7F0D9588 323900FF */ andi $t9, $s1, 0xff +/* 10E0BC 7F0D958C 03208825 */ move $s1, $t9 +/* 10E0C0 7F0D9590 1000249A */ b .L7F0E27FC +/* 10E0C4 7F0D9594 01008025 */ move $s0, $t0 +spectrum_op_B6: +/* 10E0C8 7F0D9598 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E0CC 7F0D959C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10E0D0 7F0D95A0 00166200 */ sll $t4, $s6, 8 +/* 10E0D4 7F0D95A4 250B0007 */ addiu $t3, $t0, 7 +/* 10E0D8 7F0D95A8 15400004 */ bnez $t2, .L7F0D95BC +/* 10E0DC 7F0D95AC AFAB028C */ sw $t3, 0x28c($sp) +/* 10E0E0 7F0D95B0 01976825 */ or $t5, $t4, $s7 +/* 10E0E4 7F0D95B4 10000016 */ b .L7F0D9610 +/* 10E0E8 7F0D95B8 A7AD0164 */ sh $t5, 0x164($sp) +.L7F0D95BC: +/* 10E0EC 7F0D95BC 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E0F0 7F0D95C0 93A90287 */ lbu $t1, 0x287($sp) +/* 10E0F4 7F0D95C4 24010001 */ li $at, 1 +/* 10E0F8 7F0D95C8 25EE0008 */ addiu $t6, $t7, 8 +/* 10E0FC 7F0D95CC 15210004 */ bne $t1, $at, .L7F0D95E0 +/* 10E100 7F0D95D0 AFAE028C */ sw $t6, 0x28c($sp) +/* 10E104 7F0D95D4 97B80296 */ lhu $t8, 0x296($sp) +/* 10E108 7F0D95D8 10000003 */ b .L7F0D95E8 +/* 10E10C 7F0D95DC AFB80048 */ sw $t8, 0x48($sp) +.L7F0D95E0: +/* 10E110 7F0D95E0 97B90294 */ lhu $t9, 0x294($sp) +/* 10E114 7F0D95E4 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D95E8: +/* 10E118 7F0D95E8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E11C 7F0D95EC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E120 7F0D95F0 97A80298 */ lhu $t0, 0x298($sp) +/* 10E124 7F0D95F4 8FAD0048 */ lw $t5, 0x48($sp) +/* 10E128 7F0D95F8 010B5021 */ addu $t2, $t0, $t3 +/* 10E12C 7F0D95FC 814C0000 */ lb $t4, ($t2) +/* 10E130 7F0D9600 250E0001 */ addiu $t6, $t0, 1 +/* 10E134 7F0D9604 A7AE0298 */ sh $t6, 0x298($sp) +/* 10E138 7F0D9608 018D7821 */ addu $t7, $t4, $t5 +/* 10E13C 7F0D960C A7AF0164 */ sh $t7, 0x164($sp) +.L7F0D9610: +/* 10E140 7F0D9610 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E144 7F0D9614 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E148 7F0D9618 97B80164 */ lhu $t8, 0x164($sp) +/* 10E14C 7F0D961C 0138C821 */ addu $t9, $t1, $t8 +/* 10E150 7F0D9620 932B0000 */ lbu $t3, ($t9) +/* 10E154 7F0D9624 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10E158 7F0D9628 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10E15C 7F0D962C 020B8025 */ or $s0, $s0, $t3 +/* 10E160 7F0D9630 320A00FF */ andi $t2, $s0, 0xff +/* 10E164 7F0D9634 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10E168 7F0D9638 AFAC0048 */ sw $t4, 0x48($sp) +/* 10E16C 7F0D963C 0149C021 */ addu $t8, $t2, $t1 +/* 10E170 7F0D9640 93190000 */ lbu $t9, ($t8) +/* 10E174 7F0D9644 000C4180 */ sll $t0, $t4, 6 +/* 10E178 7F0D9648 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10E17C 7F0D964C 01A87025 */ or $t6, $t5, $t0 +/* 10E180 7F0D9650 032E8825 */ or $s1, $t9, $t6 +/* 10E184 7F0D9654 322B00FF */ andi $t3, $s1, 0xff +/* 10E188 7F0D9658 01608825 */ move $s1, $t3 +/* 10E18C 7F0D965C 10002467 */ b .L7F0E27FC +/* 10E190 7F0D9660 01408025 */ move $s0, $t2 +spectrum_op_B7: +/* 10E194 7F0D9664 8FAA028C */ lw $t2, 0x28c($sp) +/* 10E198 7F0D9668 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10E19C 7F0D966C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10E1A0 7F0D9670 02108025 */ or $s0, $s0, $s0 +/* 10E1A4 7F0D9674 320F00FF */ andi $t7, $s0, 0xff +/* 10E1A8 7F0D9678 2DED0001 */ sltiu $t5, $t7, 1 +/* 10E1AC 7F0D967C 254C0004 */ addiu $t4, $t2, 4 +/* 10E1B0 7F0D9680 AFAC028C */ sw $t4, 0x28c($sp) +/* 10E1B4 7F0D9684 AFAD0048 */ sw $t5, 0x48($sp) +/* 10E1B8 7F0D9688 01EE5821 */ addu $t3, $t7, $t6 +/* 10E1BC 7F0D968C 916A0000 */ lbu $t2, ($t3) +/* 10E1C0 7F0D9690 000DC180 */ sll $t8, $t5, 6 +/* 10E1C4 7F0D9694 31E800A8 */ andi $t0, $t7, 0xa8 +/* 10E1C8 7F0D9698 0118C825 */ or $t9, $t0, $t8 +/* 10E1CC 7F0D969C 01598825 */ or $s1, $t2, $t9 +/* 10E1D0 7F0D96A0 322C00FF */ andi $t4, $s1, 0xff +/* 10E1D4 7F0D96A4 01808825 */ move $s1, $t4 +/* 10E1D8 7F0D96A8 10002454 */ b .L7F0E27FC +/* 10E1DC 7F0D96AC 01E08025 */ move $s0, $t7 +spectrum_op_B8: +/* 10E1E0 7F0D96B0 324900FF */ andi $t1, $s2, 0xff +/* 10E1E4 7F0D96B4 02094023 */ subu $t0, $s0, $t1 +/* 10E1E8 7F0D96B8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E1EC 7F0D96BC 311801FF */ andi $t8, $t0, 0x1ff +/* 10E1F0 7F0D96C0 330EFFFF */ andi $t6, $t8, 0xffff +/* 10E1F4 7F0D96C4 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10E1F8 7F0D96C8 312E000F */ andi $t6, $t1, 0xf +/* 10E1FC 7F0D96CC 3208000F */ andi $t0, $s0, 0xf +/* 10E200 7F0D96D0 25ED0004 */ addiu $t5, $t7, 4 +/* 10E204 7F0D96D4 010E502A */ slt $t2, $t0, $t6 +/* 10E208 7F0D96D8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E20C 7F0D96DC 00187A03 */ sra $t7, $t8, 8 +/* 10E210 7F0D96E0 331900A8 */ andi $t9, $t8, 0xa8 +/* 10E214 7F0D96E4 032F6825 */ or $t5, $t9, $t7 +/* 10E218 7F0D96E8 000A6100 */ sll $t4, $t2, 4 +/* 10E21C 7F0D96EC 02097826 */ xor $t7, $s0, $t1 +/* 10E220 7F0D96F0 03007025 */ move $t6, $t8 +/* 10E224 7F0D96F4 01D05026 */ xor $t2, $t6, $s0 +/* 10E228 7F0D96F8 31E80080 */ andi $t0, $t7, 0x80 +/* 10E22C 7F0D96FC 01ACC825 */ or $t9, $t5, $t4 +/* 10E230 7F0D9700 010A6824 */ and $t5, $t0, $t2 +/* 10E234 7F0D9704 000D6143 */ sra $t4, $t5, 5 +/* 10E238 7F0D9708 032C4825 */ or $t1, $t9, $t4 +/* 10E23C 7F0D970C A7B80162 */ sh $t8, 0x162($sp) +/* 10E240 7F0D9710 000BC180 */ sll $t8, $t3, 6 +/* 10E244 7F0D9714 352F0002 */ ori $t7, $t1, 2 +/* 10E248 7F0D9718 01F88825 */ or $s1, $t7, $t8 +/* 10E24C 7F0D971C 322E00FF */ andi $t6, $s1, 0xff +/* 10E250 7F0D9720 01C08825 */ move $s1, $t6 +/* 10E254 7F0D9724 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E258 7F0D9728 10002434 */ b .L7F0E27FC +/* 10E25C 7F0D972C A3B20161 */ sb $s2, 0x161($sp) +spectrum_op_B9: +/* 10E260 7F0D9730 326D00FF */ andi $t5, $s3, 0xff +/* 10E264 7F0D9734 020DC823 */ subu $t9, $s0, $t5 +/* 10E268 7F0D9738 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E26C 7F0D973C 332C01FF */ andi $t4, $t9, 0x1ff +/* 10E270 7F0D9740 3189FFFF */ andi $t1, $t4, 0xffff +/* 10E274 7F0D9744 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10E278 7F0D9748 31A9000F */ andi $t1, $t5, 0xf +/* 10E27C 7F0D974C 3219000F */ andi $t9, $s0, 0xf +/* 10E280 7F0D9750 250A0004 */ addiu $t2, $t0, 4 +/* 10E284 7F0D9754 0329782A */ slt $t7, $t9, $t1 +/* 10E288 7F0D9758 AFAA028C */ sw $t2, 0x28c($sp) +/* 10E28C 7F0D975C 000C4203 */ sra $t0, $t4, 8 +/* 10E290 7F0D9760 319800A8 */ andi $t8, $t4, 0xa8 +/* 10E294 7F0D9764 03085025 */ or $t2, $t8, $t0 +/* 10E298 7F0D9768 000F7100 */ sll $t6, $t7, 4 +/* 10E29C 7F0D976C 020D4026 */ xor $t0, $s0, $t5 +/* 10E2A0 7F0D9770 01804825 */ move $t1, $t4 +/* 10E2A4 7F0D9774 01307826 */ xor $t7, $t1, $s0 +/* 10E2A8 7F0D9778 31190080 */ andi $t9, $t0, 0x80 +/* 10E2AC 7F0D977C 014EC025 */ or $t8, $t2, $t6 +/* 10E2B0 7F0D9780 032F5024 */ and $t2, $t9, $t7 +/* 10E2B4 7F0D9784 000A7143 */ sra $t6, $t2, 5 +/* 10E2B8 7F0D9788 030E6825 */ or $t5, $t8, $t6 +/* 10E2BC 7F0D978C A7AC015E */ sh $t4, 0x15e($sp) +/* 10E2C0 7F0D9790 000B6180 */ sll $t4, $t3, 6 +/* 10E2C4 7F0D9794 35A80002 */ ori $t0, $t5, 2 +/* 10E2C8 7F0D9798 010C8825 */ or $s1, $t0, $t4 +/* 10E2CC 7F0D979C 322900FF */ andi $t1, $s1, 0xff +/* 10E2D0 7F0D97A0 01208825 */ move $s1, $t1 +/* 10E2D4 7F0D97A4 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E2D8 7F0D97A8 10002414 */ b .L7F0E27FC +/* 10E2DC 7F0D97AC A3B3015D */ sb $s3, 0x15d($sp) +spectrum_op_BA: +/* 10E2E0 7F0D97B0 328A00FF */ andi $t2, $s4, 0xff +/* 10E2E4 7F0D97B4 020AC023 */ subu $t8, $s0, $t2 +/* 10E2E8 7F0D97B8 8FB9028C */ lw $t9, 0x28c($sp) +/* 10E2EC 7F0D97BC 330E01FF */ andi $t6, $t8, 0x1ff +/* 10E2F0 7F0D97C0 31CDFFFF */ andi $t5, $t6, 0xffff +/* 10E2F4 7F0D97C4 2DAB0001 */ sltiu $t3, $t5, 1 +/* 10E2F8 7F0D97C8 314D000F */ andi $t5, $t2, 0xf +/* 10E2FC 7F0D97CC 3218000F */ andi $t8, $s0, 0xf +/* 10E300 7F0D97D0 272F0004 */ addiu $t7, $t9, 4 +/* 10E304 7F0D97D4 030D402A */ slt $t0, $t8, $t5 +/* 10E308 7F0D97D8 AFAF028C */ sw $t7, 0x28c($sp) +/* 10E30C 7F0D97DC 000ECA03 */ sra $t9, $t6, 8 +/* 10E310 7F0D97E0 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 10E314 7F0D97E4 01997825 */ or $t7, $t4, $t9 +/* 10E318 7F0D97E8 00084900 */ sll $t1, $t0, 4 +/* 10E31C 7F0D97EC 020AC826 */ xor $t9, $s0, $t2 +/* 10E320 7F0D97F0 01C06825 */ move $t5, $t6 +/* 10E324 7F0D97F4 01B04026 */ xor $t0, $t5, $s0 +/* 10E328 7F0D97F8 33380080 */ andi $t8, $t9, 0x80 +/* 10E32C 7F0D97FC 01E96025 */ or $t4, $t7, $t1 +/* 10E330 7F0D9800 03087824 */ and $t7, $t8, $t0 +/* 10E334 7F0D9804 000F4943 */ sra $t1, $t7, 5 +/* 10E338 7F0D9808 01895025 */ or $t2, $t4, $t1 +/* 10E33C 7F0D980C A7AE015A */ sh $t6, 0x15a($sp) +/* 10E340 7F0D9810 000B7180 */ sll $t6, $t3, 6 +/* 10E344 7F0D9814 35590002 */ ori $t9, $t2, 2 +/* 10E348 7F0D9818 032E8825 */ or $s1, $t9, $t6 +/* 10E34C 7F0D981C 322D00FF */ andi $t5, $s1, 0xff +/* 10E350 7F0D9820 01A08825 */ move $s1, $t5 +/* 10E354 7F0D9824 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E358 7F0D9828 100023F4 */ b .L7F0E27FC +/* 10E35C 7F0D982C A3B40159 */ sb $s4, 0x159($sp) +spectrum_op_BB: +/* 10E360 7F0D9830 32AF00FF */ andi $t7, $s5, 0xff +/* 10E364 7F0D9834 020F6023 */ subu $t4, $s0, $t7 +/* 10E368 7F0D9838 8FB8028C */ lw $t8, 0x28c($sp) +/* 10E36C 7F0D983C 318901FF */ andi $t1, $t4, 0x1ff +/* 10E370 7F0D9840 312AFFFF */ andi $t2, $t1, 0xffff +/* 10E374 7F0D9844 2D4B0001 */ sltiu $t3, $t2, 1 +/* 10E378 7F0D9848 31EA000F */ andi $t2, $t7, 0xf +/* 10E37C 7F0D984C 320C000F */ andi $t4, $s0, 0xf +/* 10E380 7F0D9850 27080004 */ addiu $t0, $t8, 4 +/* 10E384 7F0D9854 018AC82A */ slt $t9, $t4, $t2 +/* 10E388 7F0D9858 AFA8028C */ sw $t0, 0x28c($sp) +/* 10E38C 7F0D985C 0009C203 */ sra $t8, $t1, 8 +/* 10E390 7F0D9860 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10E394 7F0D9864 01D84025 */ or $t0, $t6, $t8 +/* 10E398 7F0D9868 00196900 */ sll $t5, $t9, 4 +/* 10E39C 7F0D986C 020FC026 */ xor $t8, $s0, $t7 +/* 10E3A0 7F0D9870 01205025 */ move $t2, $t1 +/* 10E3A4 7F0D9874 0150C826 */ xor $t9, $t2, $s0 +/* 10E3A8 7F0D9878 330C0080 */ andi $t4, $t8, 0x80 +/* 10E3AC 7F0D987C 010D7025 */ or $t6, $t0, $t5 +/* 10E3B0 7F0D9880 01994024 */ and $t0, $t4, $t9 +/* 10E3B4 7F0D9884 00086943 */ sra $t5, $t0, 5 +/* 10E3B8 7F0D9888 01CD7825 */ or $t7, $t6, $t5 +/* 10E3BC 7F0D988C A7A90156 */ sh $t1, 0x156($sp) +/* 10E3C0 7F0D9890 000B4980 */ sll $t1, $t3, 6 +/* 10E3C4 7F0D9894 35F80002 */ ori $t8, $t7, 2 +/* 10E3C8 7F0D9898 03098825 */ or $s1, $t8, $t1 +/* 10E3CC 7F0D989C 322A00FF */ andi $t2, $s1, 0xff +/* 10E3D0 7F0D98A0 01408825 */ move $s1, $t2 +/* 10E3D4 7F0D98A4 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E3D8 7F0D98A8 100023D4 */ b .L7F0E27FC +/* 10E3DC 7F0D98AC A3B50155 */ sb $s5, 0x155($sp) +spectrum_op_BC: +/* 10E3E0 7F0D98B0 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E3E4 7F0D98B4 93A80287 */ lbu $t0, 0x287($sp) +/* 10E3E8 7F0D98B8 93AE0287 */ lbu $t6, 0x287($sp) +/* 10E3EC 7F0D98BC 25990004 */ addiu $t9, $t4, 4 +/* 10E3F0 7F0D98C0 15000003 */ bnez $t0, .L7F0D98D0 +/* 10E3F4 7F0D98C4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E3F8 7F0D98C8 1000000C */ b .L7F0D98FC +/* 10E3FC 7F0D98CC A3B60151 */ sb $s6, 0x151($sp) +.L7F0D98D0: +/* 10E400 7F0D98D0 24010001 */ li $at, 1 +/* 10E404 7F0D98D4 15C10005 */ bne $t6, $at, .L7F0D98EC +/* 10E408 7F0D98D8 97AB0294 */ lhu $t3, 0x294($sp) +/* 10E40C 7F0D98DC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E410 7F0D98E0 000D7A03 */ sra $t7, $t5, 8 +/* 10E414 7F0D98E4 10000003 */ b .L7F0D98F4 +/* 10E418 7F0D98E8 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D98EC: +/* 10E41C 7F0D98EC 000BC203 */ sra $t8, $t3, 8 +/* 10E420 7F0D98F0 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D98F4: +/* 10E424 7F0D98F4 8FA90048 */ lw $t1, 0x48($sp) +/* 10E428 7F0D98F8 A3A90151 */ sb $t1, 0x151($sp) +.L7F0D98FC: +/* 10E42C 7F0D98FC 93AA0151 */ lbu $t2, 0x151($sp) +/* 10E430 7F0D9900 020A6023 */ subu $t4, $s0, $t2 +/* 10E434 7F0D9904 319901FF */ andi $t9, $t4, 0x1ff +/* 10E438 7F0D9908 3328FFFF */ andi $t0, $t9, 0xffff +/* 10E43C 7F0D990C 2D0E0001 */ sltiu $t6, $t0, 1 +/* 10E440 7F0D9910 320C000F */ andi $t4, $s0, 0xf +/* 10E444 7F0D9914 3148000F */ andi $t0, $t2, 0xf +/* 10E448 7F0D9918 0188682A */ slt $t5, $t4, $t0 +/* 10E44C 7F0D991C 332F00A8 */ andi $t7, $t9, 0xa8 +/* 10E450 7F0D9920 0019C203 */ sra $t8, $t9, 8 +/* 10E454 7F0D9924 01F84825 */ or $t1, $t7, $t8 +/* 10E458 7F0D9928 000D5900 */ sll $t3, $t5, 4 +/* 10E45C 7F0D992C 03204025 */ move $t0, $t9 +/* 10E460 7F0D9930 020AC026 */ xor $t8, $s0, $t2 +/* 10E464 7F0D9934 330C0080 */ andi $t4, $t8, 0x80 +/* 10E468 7F0D9938 01106826 */ xor $t5, $t0, $s0 +/* 10E46C 7F0D993C 012B7825 */ or $t7, $t1, $t3 +/* 10E470 7F0D9940 018D4824 */ and $t1, $t4, $t5 +/* 10E474 7F0D9944 00095943 */ sra $t3, $t1, 5 +/* 10E478 7F0D9948 01EB5025 */ or $t2, $t7, $t3 +/* 10E47C 7F0D994C A7B90152 */ sh $t9, 0x152($sp) +/* 10E480 7F0D9950 000EC980 */ sll $t9, $t6, 6 +/* 10E484 7F0D9954 35580002 */ ori $t8, $t2, 2 +/* 10E488 7F0D9958 03198825 */ or $s1, $t8, $t9 +/* 10E48C 7F0D995C 322800FF */ andi $t0, $s1, 0xff +/* 10E490 7F0D9960 01008825 */ move $s1, $t0 +/* 10E494 7F0D9964 100023A5 */ b .L7F0E27FC +/* 10E498 7F0D9968 AFAE0048 */ sw $t6, 0x48($sp) +spectrum_op_BD: +/* 10E49C 7F0D996C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E4A0 7F0D9970 93A90287 */ lbu $t1, 0x287($sp) +/* 10E4A4 7F0D9974 93AF0287 */ lbu $t7, 0x287($sp) +/* 10E4A8 7F0D9978 258D0004 */ addiu $t5, $t4, 4 +/* 10E4AC 7F0D997C 15200003 */ bnez $t1, .L7F0D998C +/* 10E4B0 7F0D9980 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E4B4 7F0D9984 1000000C */ b .L7F0D99B8 +/* 10E4B8 7F0D9988 A3B7014D */ sb $s7, 0x14d($sp) +.L7F0D998C: +/* 10E4BC 7F0D998C 24010001 */ li $at, 1 +/* 10E4C0 7F0D9990 15E10005 */ bne $t7, $at, .L7F0D99A8 +/* 10E4C4 7F0D9994 97AE0294 */ lhu $t6, 0x294($sp) +/* 10E4C8 7F0D9998 97AB0296 */ lhu $t3, 0x296($sp) +/* 10E4CC 7F0D999C 316A00FF */ andi $t2, $t3, 0xff +/* 10E4D0 7F0D99A0 10000003 */ b .L7F0D99B0 +/* 10E4D4 7F0D99A4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D99A8: +/* 10E4D8 7F0D99A8 31D800FF */ andi $t8, $t6, 0xff +/* 10E4DC 7F0D99AC AFB80048 */ sw $t8, 0x48($sp) +.L7F0D99B0: +/* 10E4E0 7F0D99B0 8FB90048 */ lw $t9, 0x48($sp) +/* 10E4E4 7F0D99B4 A3B9014D */ sb $t9, 0x14d($sp) +.L7F0D99B8: +/* 10E4E8 7F0D99B8 93A8014D */ lbu $t0, 0x14d($sp) +/* 10E4EC 7F0D99BC 02086023 */ subu $t4, $s0, $t0 +/* 10E4F0 7F0D99C0 318D01FF */ andi $t5, $t4, 0x1ff +/* 10E4F4 7F0D99C4 31A9FFFF */ andi $t1, $t5, 0xffff +/* 10E4F8 7F0D99C8 2D2F0001 */ sltiu $t7, $t1, 1 +/* 10E4FC 7F0D99CC 320C000F */ andi $t4, $s0, 0xf +/* 10E500 7F0D99D0 3109000F */ andi $t1, $t0, 0xf +/* 10E504 7F0D99D4 0189582A */ slt $t3, $t4, $t1 +/* 10E508 7F0D99D8 31AA00A8 */ andi $t2, $t5, 0xa8 +/* 10E50C 7F0D99DC 000DC203 */ sra $t8, $t5, 8 +/* 10E510 7F0D99E0 0158C825 */ or $t9, $t2, $t8 +/* 10E514 7F0D99E4 000B7100 */ sll $t6, $t3, 4 +/* 10E518 7F0D99E8 01A04825 */ move $t1, $t5 +/* 10E51C 7F0D99EC 0208C026 */ xor $t8, $s0, $t0 +/* 10E520 7F0D99F0 330C0080 */ andi $t4, $t8, 0x80 +/* 10E524 7F0D99F4 01305826 */ xor $t3, $t1, $s0 +/* 10E528 7F0D99F8 032E5025 */ or $t2, $t9, $t6 +/* 10E52C 7F0D99FC 018BC824 */ and $t9, $t4, $t3 +/* 10E530 7F0D9A00 00197143 */ sra $t6, $t9, 5 +/* 10E534 7F0D9A04 014E4025 */ or $t0, $t2, $t6 +/* 10E538 7F0D9A08 A7AD014E */ sh $t5, 0x14e($sp) +/* 10E53C 7F0D9A0C 000F6980 */ sll $t5, $t7, 6 +/* 10E540 7F0D9A10 35180002 */ ori $t8, $t0, 2 +/* 10E544 7F0D9A14 030D8825 */ or $s1, $t8, $t5 +/* 10E548 7F0D9A18 322900FF */ andi $t1, $s1, 0xff +/* 10E54C 7F0D9A1C 01208825 */ move $s1, $t1 +/* 10E550 7F0D9A20 10002376 */ b .L7F0E27FC +/* 10E554 7F0D9A24 AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_BE: +/* 10E558 7F0D9A28 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E55C 7F0D9A2C 93B90287 */ lbu $t9, 0x287($sp) +/* 10E560 7F0D9A30 00165200 */ sll $t2, $s6, 8 +/* 10E564 7F0D9A34 258B0007 */ addiu $t3, $t4, 7 +/* 10E568 7F0D9A38 17200004 */ bnez $t9, .L7F0D9A4C +/* 10E56C 7F0D9A3C AFAB028C */ sw $t3, 0x28c($sp) +/* 10E570 7F0D9A40 01577025 */ or $t6, $t2, $s7 +/* 10E574 7F0D9A44 10000016 */ b .L7F0D9AA0 +/* 10E578 7F0D9A48 A7AE014A */ sh $t6, 0x14a($sp) +.L7F0D9A4C: +/* 10E57C 7F0D9A4C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E580 7F0D9A50 93B80287 */ lbu $t8, 0x287($sp) +/* 10E584 7F0D9A54 24010001 */ li $at, 1 +/* 10E588 7F0D9A58 250F0008 */ addiu $t7, $t0, 8 +/* 10E58C 7F0D9A5C 17010004 */ bne $t8, $at, .L7F0D9A70 +/* 10E590 7F0D9A60 AFAF028C */ sw $t7, 0x28c($sp) +/* 10E594 7F0D9A64 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E598 7F0D9A68 10000003 */ b .L7F0D9A78 +/* 10E59C 7F0D9A6C AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D9A70: +/* 10E5A0 7F0D9A70 97A90294 */ lhu $t1, 0x294($sp) +/* 10E5A4 7F0D9A74 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D9A78: +/* 10E5A8 7F0D9A78 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E5AC 7F0D9A7C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E5B0 7F0D9A80 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E5B4 7F0D9A84 8FAE0048 */ lw $t6, 0x48($sp) +/* 10E5B8 7F0D9A88 018BC821 */ addu $t9, $t4, $t3 +/* 10E5BC 7F0D9A8C 832A0000 */ lb $t2, ($t9) +/* 10E5C0 7F0D9A90 258F0001 */ addiu $t7, $t4, 1 +/* 10E5C4 7F0D9A94 A7AF0298 */ sh $t7, 0x298($sp) +/* 10E5C8 7F0D9A98 014E4021 */ addu $t0, $t2, $t6 +/* 10E5CC 7F0D9A9C A7A8014A */ sh $t0, 0x14a($sp) +.L7F0D9AA0: +/* 10E5D0 7F0D9AA0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10E5D4 7F0D9AA4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10E5D8 7F0D9AA8 97B8014A */ lhu $t8, 0x14a($sp) +/* 10E5DC 7F0D9AAC 030D4821 */ addu $t1, $t8, $t5 +/* 10E5E0 7F0D9AB0 912B0000 */ lbu $t3, ($t1) +/* 10E5E4 7F0D9AB4 020BC823 */ subu $t9, $s0, $t3 +/* 10E5E8 7F0D9AB8 332A01FF */ andi $t2, $t9, 0x1ff +/* 10E5EC 7F0D9ABC 314EFFFF */ andi $t6, $t2, 0xffff +/* 10E5F0 7F0D9AC0 2DC80001 */ sltiu $t0, $t6, 1 +/* 10E5F4 7F0D9AC4 320E000F */ andi $t6, $s0, 0xf +/* 10E5F8 7F0D9AC8 3179000F */ andi $t9, $t3, 0xf +/* 10E5FC 7F0D9ACC 01D9602A */ slt $t4, $t6, $t9 +/* 10E600 7F0D9AD0 314F00A8 */ andi $t7, $t2, 0xa8 +/* 10E604 7F0D9AD4 000A6A03 */ sra $t5, $t2, 8 +/* 10E608 7F0D9AD8 01ED4825 */ or $t1, $t7, $t5 +/* 10E60C 7F0D9ADC 000CC100 */ sll $t8, $t4, 4 +/* 10E610 7F0D9AE0 0140C825 */ move $t9, $t2 +/* 10E614 7F0D9AE4 020B6826 */ xor $t5, $s0, $t3 +/* 10E618 7F0D9AE8 31AE0080 */ andi $t6, $t5, 0x80 +/* 10E61C 7F0D9AEC 03306026 */ xor $t4, $t9, $s0 +/* 10E620 7F0D9AF0 01387825 */ or $t7, $t1, $t8 +/* 10E624 7F0D9AF4 01CC4824 */ and $t1, $t6, $t4 +/* 10E628 7F0D9AF8 0009C143 */ sra $t8, $t1, 5 +/* 10E62C 7F0D9AFC A3AB0147 */ sb $t3, 0x147($sp) +/* 10E630 7F0D9B00 01F85825 */ or $t3, $t7, $t8 +/* 10E634 7F0D9B04 A7AA0148 */ sh $t2, 0x148($sp) +/* 10E638 7F0D9B08 00085180 */ sll $t2, $t0, 6 +/* 10E63C 7F0D9B0C 356D0002 */ ori $t5, $t3, 2 +/* 10E640 7F0D9B10 01AA8825 */ or $s1, $t5, $t2 +/* 10E644 7F0D9B14 323900FF */ andi $t9, $s1, 0xff +/* 10E648 7F0D9B18 03208825 */ move $s1, $t9 +/* 10E64C 7F0D9B1C 10002337 */ b .L7F0E27FC +/* 10E650 7F0D9B20 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_BF: +/* 10E654 7F0D9B24 320900FF */ andi $t1, $s0, 0xff +/* 10E658 7F0D9B28 02097823 */ subu $t7, $s0, $t1 +/* 10E65C 7F0D9B2C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E660 7F0D9B30 31F801FF */ andi $t8, $t7, 0x1ff +/* 10E664 7F0D9B34 330BFFFF */ andi $t3, $t8, 0xffff +/* 10E668 7F0D9B38 2D680001 */ sltiu $t0, $t3, 1 +/* 10E66C 7F0D9B3C 312B000F */ andi $t3, $t1, 0xf +/* 10E670 7F0D9B40 320F000F */ andi $t7, $s0, 0xf +/* 10E674 7F0D9B44 25CC0004 */ addiu $t4, $t6, 4 +/* 10E678 7F0D9B48 01EB682A */ slt $t5, $t7, $t3 +/* 10E67C 7F0D9B4C AFAC028C */ sw $t4, 0x28c($sp) +/* 10E680 7F0D9B50 00187203 */ sra $t6, $t8, 8 +/* 10E684 7F0D9B54 330A00A8 */ andi $t2, $t8, 0xa8 +/* 10E688 7F0D9B58 014E6025 */ or $t4, $t2, $t6 +/* 10E68C 7F0D9B5C 000DC900 */ sll $t9, $t5, 4 +/* 10E690 7F0D9B60 02097026 */ xor $t6, $s0, $t1 +/* 10E694 7F0D9B64 03005825 */ move $t3, $t8 +/* 10E698 7F0D9B68 01706826 */ xor $t5, $t3, $s0 +/* 10E69C 7F0D9B6C 31CF0080 */ andi $t7, $t6, 0x80 +/* 10E6A0 7F0D9B70 01995025 */ or $t2, $t4, $t9 +/* 10E6A4 7F0D9B74 01ED6024 */ and $t4, $t7, $t5 +/* 10E6A8 7F0D9B78 000CC943 */ sra $t9, $t4, 5 +/* 10E6AC 7F0D9B7C 01594825 */ or $t1, $t2, $t9 +/* 10E6B0 7F0D9B80 A7B80144 */ sh $t8, 0x144($sp) +/* 10E6B4 7F0D9B84 0008C180 */ sll $t8, $t0, 6 +/* 10E6B8 7F0D9B88 352E0002 */ ori $t6, $t1, 2 +/* 10E6BC 7F0D9B8C 01D88825 */ or $s1, $t6, $t8 +/* 10E6C0 7F0D9B90 322B00FF */ andi $t3, $s1, 0xff +/* 10E6C4 7F0D9B94 01608825 */ move $s1, $t3 +/* 10E6C8 7F0D9B98 AFA80048 */ sw $t0, 0x48($sp) +/* 10E6CC 7F0D9B9C 10002317 */ b .L7F0E27FC +/* 10E6D0 7F0D9BA0 A3B00143 */ sb $s0, 0x143($sp) +spectrum_op_C0: +/* 10E6D4 7F0D9BA4 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E6D8 7F0D9BA8 322C0040 */ andi $t4, $s1, 0x40 +/* 10E6DC 7F0D9BAC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10E6E0 7F0D9BB0 25ED0005 */ addiu $t5, $t7, 5 +/* 10E6E4 7F0D9BB4 15802311 */ bnez $t4, .L7F0E27FC +/* 10E6E8 7F0D9BB8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E6EC 7F0D9BBC 97A90292 */ lhu $t1, 0x292($sp) +/* 10E6F0 7F0D9BC0 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10E6F4 7F0D9BC4 25B90006 */ addiu $t9, $t5, 6 +/* 10E6F8 7F0D9BC8 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E6FC 7F0D9BCC 01095821 */ addu $t3, $t0, $t1 +/* 10E700 7F0D9BD0 916F0001 */ lbu $t7, 1($t3) +/* 10E704 7F0D9BD4 01287021 */ addu $t6, $t1, $t0 +/* 10E708 7F0D9BD8 91D80000 */ lbu $t8, ($t6) +/* 10E70C 7F0D9BDC 000F6A00 */ sll $t5, $t7, 8 +/* 10E710 7F0D9BE0 252A0002 */ addiu $t2, $t1, 2 +/* 10E714 7F0D9BE4 030D6025 */ or $t4, $t8, $t5 +/* 10E718 7F0D9BE8 A7AC0298 */ sh $t4, 0x298($sp) +/* 10E71C 7F0D9BEC 10002303 */ b .L7F0E27FC +/* 10E720 7F0D9BF0 A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_C1: +/* 10E724 7F0D9BF4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10E728 7F0D9BF8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E72C 7F0D9BFC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E730 7F0D9C00 97A80292 */ lhu $t0, 0x292($sp) +/* 10E734 7F0D9C04 272E000A */ addiu $t6, $t9, 0xa +/* 10E738 7F0D9C08 AFAE028C */ sw $t6, 0x28c($sp) +/* 10E73C 7F0D9C0C 010B7821 */ addu $t7, $t0, $t3 +/* 10E740 7F0D9C10 91F30000 */ lbu $s3, ($t7) +/* 10E744 7F0D9C14 91F20001 */ lbu $s2, 1($t7) +/* 10E748 7F0D9C18 25180002 */ addiu $t8, $t0, 2 +/* 10E74C 7F0D9C1C 100022F7 */ b .L7F0E27FC +/* 10E750 7F0D9C20 A7B80292 */ sh $t8, 0x292($sp) +spectrum_op_C2: +/* 10E754 7F0D9C24 8FAD028C */ lw $t5, 0x28c($sp) +/* 10E758 7F0D9C28 32290040 */ andi $t1, $s1, 0x40 +/* 10E75C 7F0D9C2C 97AA0298 */ lhu $t2, 0x298($sp) +/* 10E760 7F0D9C30 25AC000A */ addiu $t4, $t5, 0xa +/* 10E764 7F0D9C34 1520000B */ bnez $t1, .L7F0D9C64 +/* 10E768 7F0D9C38 AFAC028C */ sw $t4, 0x28c($sp) +/* 10E76C 7F0D9C3C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10E770 7F0D9C40 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10E774 7F0D9C44 032A7821 */ addu $t7, $t9, $t2 +/* 10E778 7F0D9C48 91E80001 */ lbu $t0, 1($t7) +/* 10E77C 7F0D9C4C 01597021 */ addu $t6, $t2, $t9 +/* 10E780 7F0D9C50 91CB0000 */ lbu $t3, ($t6) +/* 10E784 7F0D9C54 0008C200 */ sll $t8, $t0, 8 +/* 10E788 7F0D9C58 01786825 */ or $t5, $t3, $t8 +/* 10E78C 7F0D9C5C 100022E7 */ b .L7F0E27FC +/* 10E790 7F0D9C60 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D9C64: +/* 10E794 7F0D9C64 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E798 7F0D9C68 25890002 */ addiu $t1, $t4, 2 +/* 10E79C 7F0D9C6C 100022E3 */ b .L7F0E27FC +/* 10E7A0 7F0D9C70 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_C3: +/* 10E7A4 7F0D9C74 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E7A8 7F0D9C78 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10E7AC 7F0D9C7C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10E7B0 7F0D9C80 97AA0298 */ lhu $t2, 0x298($sp) +/* 10E7B4 7F0D9C84 25D9000A */ addiu $t9, $t6, 0xa +/* 10E7B8 7F0D9C88 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E7BC 7F0D9C8C 01EAC021 */ addu $t8, $t7, $t2 +/* 10E7C0 7F0D9C90 930D0001 */ lbu $t5, 1($t8) +/* 10E7C4 7F0D9C94 014F4021 */ addu $t0, $t2, $t7 +/* 10E7C8 7F0D9C98 910B0000 */ lbu $t3, ($t0) +/* 10E7CC 7F0D9C9C 000D6200 */ sll $t4, $t5, 8 +/* 10E7D0 7F0D9CA0 016C4825 */ or $t1, $t3, $t4 +/* 10E7D4 7F0D9CA4 100022D5 */ b .L7F0E27FC +/* 10E7D8 7F0D9CA8 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_C4: +/* 10E7DC 7F0D9CAC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E7E0 7F0D9CB0 32280040 */ andi $t0, $s1, 0x40 +/* 10E7E4 7F0D9CB4 25D9000A */ addiu $t9, $t6, 0xa +/* 10E7E8 7F0D9CB8 15000072 */ bnez $t0, .L7F0D9E84 +/* 10E7EC 7F0D9CBC AFB9028C */ sw $t9, 0x28c($sp) +/* 10E7F0 7F0D9CC0 97B80292 */ lhu $t8, 0x292($sp) +/* 10E7F4 7F0D9CC4 272A0007 */ addiu $t2, $t9, 7 +/* 10E7F8 7F0D9CC8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10E7FC 7F0D9CCC 270DFFFE */ addiu $t5, $t8, -2 +/* 10E800 7F0D9CD0 31ABFFFF */ andi $t3, $t5, 0xffff +/* 10E804 7F0D9CD4 29615B00 */ slti $at, $t3, 0x5b00 +/* 10E808 7F0D9CD8 14200008 */ bnez $at, .L7F0D9CFC +/* 10E80C 7F0D9CDC A7AD0292 */ sh $t5, 0x292($sp) +/* 10E810 7F0D9CE0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10E814 7F0D9CE4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10E818 7F0D9CE8 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E81C 7F0D9CEC 01CBC821 */ addu $t9, $t6, $t3 +/* 10E820 7F0D9CF0 25890002 */ addiu $t1, $t4, 2 +/* 10E824 7F0D9CF4 10000024 */ b .L7F0D9D88 +/* 10E828 7F0D9CF8 A3290000 */ sb $t1, ($t9) +.L7F0D9CFC: +/* 10E82C 7F0D9CFC 97A80292 */ lhu $t0, 0x292($sp) +/* 10E830 7F0D9D00 97B90292 */ lhu $t9, 0x292($sp) +/* 10E834 7F0D9D04 97AF0298 */ lhu $t7, 0x298($sp) +/* 10E838 7F0D9D08 29015800 */ slti $at, $t0, 0x5800 +/* 10E83C 7F0D9D0C 1420000C */ bnez $at, .L7F0D9D40 +/* 10E840 7F0D9D10 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10E844 7F0D9D14 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10E848 7F0D9D18 25EA0002 */ addiu $t2, $t7, 2 +/* 10E84C 7F0D9D1C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10E850 7F0D9D20 03086821 */ addu $t5, $t8, $t0 +/* 10E854 7F0D9D24 A1AA0000 */ sb $t2, ($t5) +/* 10E858 7F0D9D28 97AB0292 */ lhu $t3, 0x292($sp) +/* 10E85C 7F0D9D2C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10E860 7F0D9D30 240C0001 */ li $t4, 1 +/* 10E864 7F0D9D34 01CB4821 */ addu $t1, $t6, $t3 +/* 10E868 7F0D9D38 10000013 */ b .L7F0D9D88 +/* 10E86C 7F0D9D3C A12CA800 */ sb $t4, -0x5800($t1) +.L7F0D9D40: +/* 10E870 7F0D9D40 2B214000 */ slti $at, $t9, 0x4000 +/* 10E874 7F0D9D44 14200010 */ bnez $at, .L7F0D9D88 +/* 10E878 7F0D9D48 97AF0298 */ lhu $t7, 0x298($sp) +/* 10E87C 7F0D9D4C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10E880 7F0D9D50 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10E884 7F0D9D54 25F80002 */ addiu $t8, $t7, 2 +/* 10E888 7F0D9D58 240D0001 */ li $t5, 1 +/* 10E88C 7F0D9D5C 01195021 */ addu $t2, $t0, $t9 +/* 10E890 7F0D9D60 A1580000 */ sb $t8, ($t2) +/* 10E894 7F0D9D64 97AE0292 */ lhu $t6, 0x292($sp) +/* 10E898 7F0D9D68 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10E89C 7F0D9D6C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10E8A0 7F0D9D70 31CB1800 */ andi $t3, $t6, 0x1800 +/* 10E8A4 7F0D9D74 000B60C3 */ sra $t4, $t3, 3 +/* 10E8A8 7F0D9D78 31C900FF */ andi $t1, $t6, 0xff +/* 10E8AC 7F0D9D7C 01897825 */ or $t7, $t4, $t1 +/* 10E8B0 7F0D9D80 010FC821 */ addu $t9, $t0, $t7 +/* 10E8B4 7F0D9D84 A32D0000 */ sb $t5, ($t9) +.L7F0D9D88: +/* 10E8B8 7F0D9D88 97B80292 */ lhu $t8, 0x292($sp) +/* 10E8BC 7F0D9D8C 97AF0292 */ lhu $t7, 0x292($sp) +/* 10E8C0 7F0D9D90 97AB0298 */ lhu $t3, 0x298($sp) +/* 10E8C4 7F0D9D94 270A0001 */ addiu $t2, $t8, 1 +/* 10E8C8 7F0D9D98 29415B00 */ slti $at, $t2, 0x5b00 +/* 10E8CC 7F0D9D9C 14200008 */ bnez $at, .L7F0D9DC0 +/* 10E8D0 7F0D9DA0 25ED0001 */ addiu $t5, $t7, 1 +/* 10E8D4 7F0D9DA4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E8D8 7F0D9DA8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E8DC 7F0D9DAC 256E0002 */ addiu $t6, $t3, 2 +/* 10E8E0 7F0D9DB0 000E6203 */ sra $t4, $t6, 8 +/* 10E8E4 7F0D9DB4 01384021 */ addu $t0, $t1, $t8 +/* 10E8E8 7F0D9DB8 10000027 */ b .L7F0D9E58 +/* 10E8EC 7F0D9DBC A10C0001 */ sb $t4, 1($t0) +.L7F0D9DC0: +/* 10E8F0 7F0D9DC0 29A15800 */ slti $at, $t5, 0x5800 +/* 10E8F4 7F0D9DC4 1420000F */ bnez $at, .L7F0D9E04 +/* 10E8F8 7F0D9DC8 97B90292 */ lhu $t9, 0x292($sp) +/* 10E8FC 7F0D9DCC 97B90298 */ lhu $t9, 0x298($sp) +/* 10E900 7F0D9DD0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10E904 7F0D9DD4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10E908 7F0D9DD8 272A0002 */ addiu $t2, $t9, 2 +/* 10E90C 7F0D9DDC 000A5A03 */ sra $t3, $t2, 8 +/* 10E910 7F0D9DE0 01CF4821 */ addu $t1, $t6, $t7 +/* 10E914 7F0D9DE4 A12B0001 */ sb $t3, 1($t1) +/* 10E918 7F0D9DE8 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10E91C 7F0D9DEC 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10E920 7F0D9DF0 97A80292 */ lhu $t0, 0x292($sp) +/* 10E924 7F0D9DF4 24180001 */ li $t8, 1 +/* 10E928 7F0D9DF8 01886821 */ addu $t5, $t4, $t0 +/* 10E92C 7F0D9DFC 10000016 */ b .L7F0D9E58 +/* 10E930 7F0D9E00 A1B8A801 */ sb $t8, -0x57ff($t5) +.L7F0D9E04: +/* 10E934 7F0D9E04 272A0001 */ addiu $t2, $t9, 1 +/* 10E938 7F0D9E08 29414000 */ slti $at, $t2, 0x4000 +/* 10E93C 7F0D9E0C 14200012 */ bnez $at, .L7F0D9E58 +/* 10E940 7F0D9E10 97AE0298 */ lhu $t6, 0x298($sp) +/* 10E944 7F0D9E14 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E948 7F0D9E18 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E94C 7F0D9E1C 25CF0002 */ addiu $t7, $t6, 2 +/* 10E950 7F0D9E20 000F5A03 */ sra $t3, $t7, 8 +/* 10E954 7F0D9E24 01396021 */ addu $t4, $t1, $t9 +/* 10E958 7F0D9E28 A18B0001 */ sb $t3, 1($t4) +/* 10E95C 7F0D9E2C 97B80292 */ lhu $t8, 0x292($sp) +/* 10E960 7F0D9E30 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 10E964 7F0D9E34 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 10E968 7F0D9E38 270D0001 */ addiu $t5, $t8, 1 +/* 10E96C 7F0D9E3C 31AA1800 */ andi $t2, $t5, 0x1800 +/* 10E970 7F0D9E40 000A70C3 */ sra $t6, $t2, 3 +/* 10E974 7F0D9E44 31AF00FF */ andi $t7, $t5, 0xff +/* 10E978 7F0D9E48 01CF4825 */ or $t1, $t6, $t7 +/* 10E97C 7F0D9E4C 24080001 */ li $t0, 1 +/* 10E980 7F0D9E50 03295821 */ addu $t3, $t9, $t1 +/* 10E984 7F0D9E54 A1680000 */ sb $t0, ($t3) +.L7F0D9E58: +/* 10E988 7F0D9E58 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10E98C 7F0D9E5C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10E990 7F0D9E60 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E994 7F0D9E64 030C7021 */ addu $t6, $t8, $t4 +/* 10E998 7F0D9E68 91CF0001 */ lbu $t7, 1($t6) +/* 10E99C 7F0D9E6C 01985021 */ addu $t2, $t4, $t8 +/* 10E9A0 7F0D9E70 914D0000 */ lbu $t5, ($t2) +/* 10E9A4 7F0D9E74 000FCA00 */ sll $t9, $t7, 8 +/* 10E9A8 7F0D9E78 01B94825 */ or $t1, $t5, $t9 +/* 10E9AC 7F0D9E7C 1000225F */ b .L7F0E27FC +/* 10E9B0 7F0D9E80 A7A90298 */ sh $t1, 0x298($sp) +.L7F0D9E84: +/* 10E9B4 7F0D9E84 97A80298 */ lhu $t0, 0x298($sp) +/* 10E9B8 7F0D9E88 250B0002 */ addiu $t3, $t0, 2 +/* 10E9BC 7F0D9E8C 1000225B */ b .L7F0E27FC +/* 10E9C0 7F0D9E90 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_C5: +/* 10E9C4 7F0D9E94 97AC0292 */ lhu $t4, 0x292($sp) +/* 10E9C8 7F0D9E98 8FAA028C */ lw $t2, 0x28c($sp) +/* 10E9CC 7F0D9E9C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10E9D0 7F0D9EA0 258EFFFE */ addiu $t6, $t4, -2 +/* 10E9D4 7F0D9EA4 31CFFFFF */ andi $t7, $t6, 0xffff +/* 10E9D8 7F0D9EA8 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10E9DC 7F0D9EAC 2558000B */ addiu $t8, $t2, 0xb +/* 10E9E0 7F0D9EB0 AFB8028C */ sw $t8, 0x28c($sp) +/* 10E9E4 7F0D9EB4 14200005 */ bnez $at, .L7F0D9ECC +/* 10E9E8 7F0D9EB8 A7AE0292 */ sh $t6, 0x292($sp) +/* 10E9EC 7F0D9EBC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10E9F0 7F0D9EC0 01AFC821 */ addu $t9, $t5, $t7 +/* 10E9F4 7F0D9EC4 10000021 */ b .L7F0D9F4C +/* 10E9F8 7F0D9EC8 A3330000 */ sb $s3, ($t9) +.L7F0D9ECC: +/* 10E9FC 7F0D9ECC 97A90292 */ lhu $t1, 0x292($sp) +/* 10EA00 7F0D9ED0 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EA04 7F0D9ED4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EA08 7F0D9ED8 29215800 */ slti $at, $t1, 0x5800 +/* 10EA0C 7F0D9EDC 5420000C */ bnezl $at, .L7F0D9F10 +/* 10EA10 7F0D9EE0 29A14000 */ slti $at, $t5, 0x4000 +/* 10EA14 7F0D9EE4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EA18 7F0D9EE8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10EA1C 7F0D9EEC 240A0001 */ li $t2, 1 +/* 10EA20 7F0D9EF0 01095821 */ addu $t3, $t0, $t1 +/* 10EA24 7F0D9EF4 A1730000 */ sb $s3, ($t3) +/* 10EA28 7F0D9EF8 97AC0292 */ lhu $t4, 0x292($sp) +/* 10EA2C 7F0D9EFC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10EA30 7F0D9F00 030C7021 */ addu $t6, $t8, $t4 +/* 10EA34 7F0D9F04 10000011 */ b .L7F0D9F4C +/* 10EA38 7F0D9F08 A1CAA800 */ sb $t2, -0x5800($t6) +/* 10EA3C 7F0D9F0C 29A14000 */ slti $at, $t5, 0x4000 +.L7F0D9F10: +/* 10EA40 7F0D9F10 1420000E */ bnez $at, .L7F0D9F4C +/* 10EA44 7F0D9F14 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10EA48 7F0D9F18 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10EA4C 7F0D9F1C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10EA50 7F0D9F20 24080001 */ li $t0, 1 +/* 10EA54 7F0D9F24 01EDC821 */ addu $t9, $t7, $t5 +/* 10EA58 7F0D9F28 A3330000 */ sb $s3, ($t9) +/* 10EA5C 7F0D9F2C 97A90292 */ lhu $t1, 0x292($sp) +/* 10EA60 7F0D9F30 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10EA64 7F0D9F34 312B1800 */ andi $t3, $t1, 0x1800 +/* 10EA68 7F0D9F38 000BC0C3 */ sra $t8, $t3, 3 +/* 10EA6C 7F0D9F3C 312C00FF */ andi $t4, $t1, 0xff +/* 10EA70 7F0D9F40 030C5025 */ or $t2, $t8, $t4 +/* 10EA74 7F0D9F44 01CA7821 */ addu $t7, $t6, $t2 +/* 10EA78 7F0D9F48 A1E80000 */ sb $t0, ($t7) +.L7F0D9F4C: +/* 10EA7C 7F0D9F4C 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EA80 7F0D9F50 97B80292 */ lhu $t8, 0x292($sp) +/* 10EA84 7F0D9F54 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10EA88 7F0D9F58 25B90001 */ addiu $t9, $t5, 1 +/* 10EA8C 7F0D9F5C 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10EA90 7F0D9F60 14200005 */ bnez $at, .L7F0D9F78 +/* 10EA94 7F0D9F64 270C0001 */ addiu $t4, $t8, 1 +/* 10EA98 7F0D9F68 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10EA9C 7F0D9F6C 016D4821 */ addu $t1, $t3, $t5 +/* 10EAA0 7F0D9F70 10002222 */ b .L7F0E27FC +/* 10EAA4 7F0D9F74 A1320001 */ sb $s2, 1($t1) +.L7F0D9F78: +/* 10EAA8 7F0D9F78 29815800 */ slti $at, $t4, 0x5800 +/* 10EAAC 7F0D9F7C 1420000C */ bnez $at, .L7F0D9FB0 +/* 10EAB0 7F0D9F80 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EAB4 7F0D9F84 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10EAB8 7F0D9F88 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10EABC 7F0D9F8C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10EAC0 7F0D9F90 24080001 */ li $t0, 1 +/* 10EAC4 7F0D9F94 01D85021 */ addu $t2, $t6, $t8 +/* 10EAC8 7F0D9F98 A1520001 */ sb $s2, 1($t2) +/* 10EACC 7F0D9F9C 97B90292 */ lhu $t9, 0x292($sp) +/* 10EAD0 7F0D9FA0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10EAD4 7F0D9FA4 01F95821 */ addu $t3, $t7, $t9 +/* 10EAD8 7F0D9FA8 10002214 */ b .L7F0E27FC +/* 10EADC 7F0D9FAC A168A801 */ sb $t0, -0x57ff($t3) +.L7F0D9FB0: +/* 10EAE0 7F0D9FB0 25A90001 */ addiu $t1, $t5, 1 +/* 10EAE4 7F0D9FB4 29214000 */ slti $at, $t1, 0x4000 +/* 10EAE8 7F0D9FB8 14202210 */ bnez $at, .L7F0E27FC +/* 10EAEC 7F0D9FBC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10EAF0 7F0D9FC0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10EAF4 7F0D9FC4 24180001 */ li $t8, 1 +/* 10EAF8 7F0D9FC8 018D7021 */ addu $t6, $t4, $t5 +/* 10EAFC 7F0D9FCC A1D20001 */ sb $s2, 1($t6) +/* 10EB00 7F0D9FD0 97AA0292 */ lhu $t2, 0x292($sp) +/* 10EB04 7F0D9FD4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10EB08 7F0D9FD8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10EB0C 7F0D9FDC 254F0001 */ addiu $t7, $t2, 1 +/* 10EB10 7F0D9FE0 31F91800 */ andi $t9, $t7, 0x1800 +/* 10EB14 7F0D9FE4 001940C3 */ sra $t0, $t9, 3 +/* 10EB18 7F0D9FE8 31EB00FF */ andi $t3, $t7, 0xff +/* 10EB1C 7F0D9FEC 010B4825 */ or $t1, $t0, $t3 +/* 10EB20 7F0D9FF0 01896821 */ addu $t5, $t4, $t1 +/* 10EB24 7F0D9FF4 10002201 */ b .L7F0E27FC +/* 10EB28 7F0D9FF8 A1B80000 */ sb $t8, ($t5) +spectrum_op_C6: +/* 10EB2C 7F0D9FFC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10EB30 7F0DA000 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10EB34 7F0DA004 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10EB38 7F0DA008 97B90298 */ lhu $t9, 0x298($sp) +/* 10EB3C 7F0DA00C 25CA0007 */ addiu $t2, $t6, 7 +/* 10EB40 7F0DA010 AFAA028C */ sw $t2, 0x28c($sp) +/* 10EB44 7F0DA014 032F4021 */ addu $t0, $t9, $t7 +/* 10EB48 7F0DA018 910B0000 */ lbu $t3, ($t0) +/* 10EB4C 7F0DA01C 3219000F */ andi $t9, $s0, 0xf +/* 10EB50 7F0DA020 2401000F */ li $at, 15 +/* 10EB54 7F0DA024 020B4821 */ addu $t1, $s0, $t3 +/* 10EB58 7F0DA028 316A000F */ andi $t2, $t3, 0xf +/* 10EB5C 7F0DA02C 032A7821 */ addu $t7, $t9, $t2 +/* 10EB60 7F0DA030 313800A8 */ andi $t8, $t1, 0xa8 +/* 10EB64 7F0DA034 00096A03 */ sra $t5, $t1, 8 +/* 10EB68 7F0DA038 030D7025 */ or $t6, $t8, $t5 +/* 10EB6C 7F0DA03C 02006827 */ not $t5, $s0 +/* 10EB70 7F0DA040 002F402A */ slt $t0, $at, $t7 +/* 10EB74 7F0DA044 01307826 */ xor $t7, $t1, $s0 +/* 10EB78 7F0DA048 A7A90140 */ sh $t1, 0x140($sp) +/* 10EB7C 7F0DA04C 01ABC826 */ xor $t9, $t5, $t3 +/* 10EB80 7F0DA050 93B00141 */ lbu $s0, 0x141($sp) +/* 10EB84 7F0DA054 332A0080 */ andi $t2, $t9, 0x80 +/* 10EB88 7F0DA058 00086100 */ sll $t4, $t0, 4 +/* 10EB8C 7F0DA05C 014F4024 */ and $t0, $t2, $t7 +/* 10EB90 7F0DA060 01CCC025 */ or $t8, $t6, $t4 +/* 10EB94 7F0DA064 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EB98 7F0DA068 00087143 */ sra $t6, $t0, 5 +/* 10EB9C 7F0DA06C 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10EBA0 7F0DA070 000DC980 */ sll $t9, $t5, 6 +/* 10EBA4 7F0DA074 030E6025 */ or $t4, $t8, $t6 +/* 10EBA8 7F0DA078 01998825 */ or $s1, $t4, $t9 +/* 10EBAC 7F0DA07C 322900FF */ andi $t1, $s1, 0xff +/* 10EBB0 7F0DA080 254F0001 */ addiu $t7, $t2, 1 +/* 10EBB4 7F0DA084 01208825 */ move $s1, $t1 +/* 10EBB8 7F0DA088 AFAD0048 */ sw $t5, 0x48($sp) +/* 10EBBC 7F0DA08C A7AF0298 */ sh $t7, 0x298($sp) +/* 10EBC0 7F0DA090 100021DA */ b .L7F0E27FC +/* 10EBC4 7F0DA094 A3AB013F */ sb $t3, 0x13f($sp) +spectrum_op_C7: +/* 10EBC8 7F0DA098 97AE0292 */ lhu $t6, 0x292($sp) +/* 10EBCC 7F0DA09C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10EBD0 7F0DA0A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10EBD4 7F0DA0A4 25CCFFFE */ addiu $t4, $t6, -2 +/* 10EBD8 7F0DA0A8 318DFFFF */ andi $t5, $t4, 0xffff +/* 10EBDC 7F0DA0AC 29A15B00 */ slti $at, $t5, 0x5b00 +/* 10EBE0 7F0DA0B0 2518000B */ addiu $t8, $t0, 0xb +/* 10EBE4 7F0DA0B4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10EBE8 7F0DA0B8 14200006 */ bnez $at, .L7F0DA0D4 +/* 10EBEC 7F0DA0BC A7AC0292 */ sh $t4, 0x292($sp) +/* 10EBF0 7F0DA0C0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10EBF4 7F0DA0C4 97AB0298 */ lhu $t3, 0x298($sp) +/* 10EBF8 7F0DA0C8 032D4821 */ addu $t1, $t9, $t5 +/* 10EBFC 7F0DA0CC 10000023 */ b .L7F0DA15C +/* 10EC00 7F0DA0D0 A12B0000 */ sb $t3, ($t1) +.L7F0DA0D4: +/* 10EC04 7F0DA0D4 97AA0292 */ lhu $t2, 0x292($sp) +/* 10EC08 7F0DA0D8 97AB0292 */ lhu $t3, 0x292($sp) +/* 10EC0C 7F0DA0DC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EC10 7F0DA0E0 29415800 */ slti $at, $t2, 0x5800 +/* 10EC14 7F0DA0E4 5420000D */ bnezl $at, .L7F0DA11C +/* 10EC18 7F0DA0E8 29614000 */ slti $at, $t3, 0x4000 +/* 10EC1C 7F0DA0EC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EC20 7F0DA0F0 97AF0298 */ lhu $t7, 0x298($sp) +/* 10EC24 7F0DA0F4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10EC28 7F0DA0F8 010AC021 */ addu $t8, $t0, $t2 +/* 10EC2C 7F0DA0FC A30F0000 */ sb $t7, ($t8) +/* 10EC30 7F0DA100 97B90292 */ lhu $t9, 0x292($sp) +/* 10EC34 7F0DA104 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10EC38 7F0DA108 240E0001 */ li $t6, 1 +/* 10EC3C 7F0DA10C 01996821 */ addu $t5, $t4, $t9 +/* 10EC40 7F0DA110 10000012 */ b .L7F0DA15C +/* 10EC44 7F0DA114 A1AEA800 */ sb $t6, -0x5800($t5) +/* 10EC48 7F0DA118 29614000 */ slti $at, $t3, 0x4000 +.L7F0DA11C: +/* 10EC4C 7F0DA11C 1420000F */ bnez $at, .L7F0DA15C +/* 10EC50 7F0DA120 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EC54 7F0DA124 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EC58 7F0DA128 97A90298 */ lhu $t1, 0x298($sp) +/* 10EC5C 7F0DA12C 240F0001 */ li $t7, 1 +/* 10EC60 7F0DA130 010B5021 */ addu $t2, $t0, $t3 +/* 10EC64 7F0DA134 A1490000 */ sb $t1, ($t2) +/* 10EC68 7F0DA138 97B80292 */ lhu $t8, 0x292($sp) +/* 10EC6C 7F0DA13C 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10EC70 7F0DA140 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10EC74 7F0DA144 330C1800 */ andi $t4, $t8, 0x1800 +/* 10EC78 7F0DA148 000CC8C3 */ sra $t9, $t4, 3 +/* 10EC7C 7F0DA14C 330E00FF */ andi $t6, $t8, 0xff +/* 10EC80 7F0DA150 032E6825 */ or $t5, $t9, $t6 +/* 10EC84 7F0DA154 010D5821 */ addu $t3, $t0, $t5 +/* 10EC88 7F0DA158 A16F0000 */ sb $t7, ($t3) +.L7F0DA15C: +/* 10EC8C 7F0DA15C 97A90292 */ lhu $t1, 0x292($sp) +/* 10EC90 7F0DA160 97A80292 */ lhu $t0, 0x292($sp) +/* 10EC94 7F0DA164 97AC0298 */ lhu $t4, 0x298($sp) +/* 10EC98 7F0DA168 252A0001 */ addiu $t2, $t1, 1 +/* 10EC9C 7F0DA16C 29415B00 */ slti $at, $t2, 0x5b00 +/* 10ECA0 7F0DA170 14200007 */ bnez $at, .L7F0DA190 +/* 10ECA4 7F0DA174 250D0001 */ addiu $t5, $t0, 1 +/* 10ECA8 7F0DA178 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10ECAC 7F0DA17C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10ECB0 7F0DA180 000CC203 */ sra $t8, $t4, 8 +/* 10ECB4 7F0DA184 03297021 */ addu $t6, $t9, $t1 +/* 10ECB8 7F0DA188 10000025 */ b .L7F0DA220 +/* 10ECBC 7F0DA18C A1D80001 */ sb $t8, 1($t6) +.L7F0DA190: +/* 10ECC0 7F0DA190 29A15800 */ slti $at, $t5, 0x5800 +/* 10ECC4 7F0DA194 1420000E */ bnez $at, .L7F0DA1D0 +/* 10ECC8 7F0DA198 97AD0292 */ lhu $t5, 0x292($sp) +/* 10ECCC 7F0DA19C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10ECD0 7F0DA1A0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10ECD4 7F0DA1A4 97AF0298 */ lhu $t7, 0x298($sp) +/* 10ECD8 7F0DA1A8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 10ECDC 7F0DA1AC 01486021 */ addu $t4, $t2, $t0 +/* 10ECE0 7F0DA1B0 000F5A03 */ sra $t3, $t7, 8 +/* 10ECE4 7F0DA1B4 A18B0001 */ sb $t3, 1($t4) +/* 10ECE8 7F0DA1B8 97B80292 */ lhu $t8, 0x292($sp) +/* 10ECEC 7F0DA1BC 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 10ECF0 7F0DA1C0 24190001 */ li $t9, 1 +/* 10ECF4 7F0DA1C4 01387021 */ addu $t6, $t1, $t8 +/* 10ECF8 7F0DA1C8 10000015 */ b .L7F0DA220 +/* 10ECFC 7F0DA1CC A1D9A801 */ sb $t9, -0x57ff($t6) +.L7F0DA1D0: +/* 10ED00 7F0DA1D0 25AF0001 */ addiu $t7, $t5, 1 +/* 10ED04 7F0DA1D4 29E14000 */ slti $at, $t7, 0x4000 +/* 10ED08 7F0DA1D8 14200011 */ bnez $at, .L7F0DA220 +/* 10ED0C 7F0DA1DC 97AA0298 */ lhu $t2, 0x298($sp) +/* 10ED10 7F0DA1E0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10ED14 7F0DA1E4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10ED18 7F0DA1E8 000A4203 */ sra $t0, $t2, 8 +/* 10ED1C 7F0DA1EC 24090001 */ li $t1, 1 +/* 10ED20 7F0DA1F0 016D6021 */ addu $t4, $t3, $t5 +/* 10ED24 7F0DA1F4 A1880001 */ sb $t0, 1($t4) +/* 10ED28 7F0DA1F8 97B80292 */ lhu $t8, 0x292($sp) +/* 10ED2C 7F0DA1FC 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10ED30 7F0DA200 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10ED34 7F0DA204 27190001 */ addiu $t9, $t8, 1 +/* 10ED38 7F0DA208 332E1800 */ andi $t6, $t9, 0x1800 +/* 10ED3C 7F0DA20C 000E78C3 */ sra $t7, $t6, 3 +/* 10ED40 7F0DA210 332A00FF */ andi $t2, $t9, 0xff +/* 10ED44 7F0DA214 01EA5825 */ or $t3, $t7, $t2 +/* 10ED48 7F0DA218 01AB4021 */ addu $t0, $t5, $t3 +/* 10ED4C 7F0DA21C A1090000 */ sb $t1, ($t0) +.L7F0DA220: +/* 10ED50 7F0DA220 10002176 */ b .L7F0E27FC +/* 10ED54 7F0DA224 A7A00298 */ sh $zero, 0x298($sp) +spectrum_op_C8: +/* 10ED58 7F0DA228 8FAC028C */ lw $t4, 0x28c($sp) +/* 10ED5C 7F0DA22C 322E0040 */ andi $t6, $s1, 0x40 +/* 10ED60 7F0DA230 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10ED64 7F0DA234 25980005 */ addiu $t8, $t4, 5 +/* 10ED68 7F0DA238 11C02170 */ beqz $t6, .L7F0E27FC +/* 10ED6C 7F0DA23C AFB8028C */ sw $t8, 0x28c($sp) +/* 10ED70 7F0DA240 97AA0292 */ lhu $t2, 0x292($sp) +/* 10ED74 7F0DA244 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10ED78 7F0DA248 270F0006 */ addiu $t7, $t8, 6 +/* 10ED7C 7F0DA24C AFAF028C */ sw $t7, 0x28c($sp) +/* 10ED80 7F0DA250 01AA4021 */ addu $t0, $t5, $t2 +/* 10ED84 7F0DA254 910C0001 */ lbu $t4, 1($t0) +/* 10ED88 7F0DA258 014D5821 */ addu $t3, $t2, $t5 +/* 10ED8C 7F0DA25C 91690000 */ lbu $t1, ($t3) +/* 10ED90 7F0DA260 000CC200 */ sll $t8, $t4, 8 +/* 10ED94 7F0DA264 25590002 */ addiu $t9, $t2, 2 +/* 10ED98 7F0DA268 01387025 */ or $t6, $t1, $t8 +/* 10ED9C 7F0DA26C A7AE0298 */ sh $t6, 0x298($sp) +/* 10EDA0 7F0DA270 10002162 */ b .L7F0E27FC +/* 10EDA4 7F0DA274 A7B90292 */ sh $t9, 0x292($sp) +spectrum_op_C9: +/* 10EDA8 7F0DA278 8FAF028C */ lw $t7, 0x28c($sp) +/* 10EDAC 7F0DA27C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10EDB0 7F0DA280 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10EDB4 7F0DA284 97AC0292 */ lhu $t4, 0x292($sp) +/* 10EDB8 7F0DA288 25EB0004 */ addiu $t3, $t7, 4 +/* 10EDBC 7F0DA28C AFAB028C */ sw $t3, 0x28c($sp) +/* 10EDC0 7F0DA290 25680006 */ addiu $t0, $t3, 6 +/* 10EDC4 7F0DA294 AFA8028C */ sw $t0, 0x28c($sp) +/* 10EDC8 7F0DA298 012C5021 */ addu $t2, $t1, $t4 +/* 10EDCC 7F0DA29C 91590001 */ lbu $t9, 1($t2) +/* 10EDD0 7F0DA2A0 0189C021 */ addu $t8, $t4, $t1 +/* 10EDD4 7F0DA2A4 930E0000 */ lbu $t6, ($t8) +/* 10EDD8 7F0DA2A8 00197A00 */ sll $t7, $t9, 8 +/* 10EDDC 7F0DA2AC 258D0002 */ addiu $t5, $t4, 2 +/* 10EDE0 7F0DA2B0 01CF5825 */ or $t3, $t6, $t7 +/* 10EDE4 7F0DA2B4 A7AB0298 */ sh $t3, 0x298($sp) +/* 10EDE8 7F0DA2B8 10002150 */ b .L7F0E27FC +/* 10EDEC 7F0DA2BC A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_CA: +/* 10EDF0 7F0DA2C0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10EDF4 7F0DA2C4 32290040 */ andi $t1, $s1, 0x40 +/* 10EDF8 7F0DA2C8 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EDFC 7F0DA2CC 2518000A */ addiu $t8, $t0, 0xa +/* 10EE00 7F0DA2D0 1120000B */ beqz $t1, .L7F0DA300 +/* 10EE04 7F0DA2D4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10EE08 7F0DA2D8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10EE0C 7F0DA2DC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10EE10 7F0DA2E0 032A5821 */ addu $t3, $t9, $t2 +/* 10EE14 7F0DA2E4 916C0001 */ lbu $t4, 1($t3) +/* 10EE18 7F0DA2E8 01597021 */ addu $t6, $t2, $t9 +/* 10EE1C 7F0DA2EC 91CF0000 */ lbu $t7, ($t6) +/* 10EE20 7F0DA2F0 000C6A00 */ sll $t5, $t4, 8 +/* 10EE24 7F0DA2F4 01ED4025 */ or $t0, $t7, $t5 +/* 10EE28 7F0DA2F8 10002140 */ b .L7F0E27FC +/* 10EE2C 7F0DA2FC A7A80298 */ sh $t0, 0x298($sp) +.L7F0DA300: +/* 10EE30 7F0DA300 97B80298 */ lhu $t8, 0x298($sp) +/* 10EE34 7F0DA304 27090002 */ addiu $t1, $t8, 2 +/* 10EE38 7F0DA308 1000213C */ b .L7F0E27FC +/* 10EE3C 7F0DA30C A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_CB: +/* 10EE40 7F0DA310 8FAE028C */ lw $t6, 0x28c($sp) +/* 10EE44 7F0DA314 93AA0287 */ lbu $t2, 0x287($sp) +/* 10EE48 7F0DA318 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10EE4C 7F0DA31C 25D90004 */ addiu $t9, $t6, 4 +/* 10EE50 7F0DA320 1140001F */ beqz $t2, .L7F0DA3A0 +/* 10EE54 7F0DA324 AFB9028C */ sw $t9, 0x28c($sp) +/* 10EE58 7F0DA328 24010001 */ li $at, 1 +/* 10EE5C 7F0DA32C 15410004 */ bne $t2, $at, .L7F0DA340 +/* 10EE60 7F0DA330 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10EE64 7F0DA334 97AB0296 */ lhu $t3, 0x296($sp) +/* 10EE68 7F0DA338 10000003 */ b .L7F0DA348 +/* 10EE6C 7F0DA33C AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DA340: +/* 10EE70 7F0DA340 97AC0294 */ lhu $t4, 0x294($sp) +/* 10EE74 7F0DA344 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DA348: +/* 10EE78 7F0DA348 97AF0298 */ lhu $t7, 0x298($sp) +/* 10EE7C 7F0DA34C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10EE80 7F0DA350 8FA90048 */ lw $t1, 0x48($sp) +/* 10EE84 7F0DA354 8FAA028C */ lw $t2, 0x28c($sp) +/* 10EE88 7F0DA358 01ED4021 */ addu $t0, $t7, $t5 +/* 10EE8C 7F0DA35C 81180000 */ lb $t8, ($t0) +/* 10EE90 7F0DA360 25F90001 */ addiu $t9, $t7, 1 +/* 10EE94 7F0DA364 332CFFFF */ andi $t4, $t9, 0xffff +/* 10EE98 7F0DA368 254B0008 */ addiu $t3, $t2, 8 +/* 10EE9C 7F0DA36C 03097021 */ addu $t6, $t8, $t1 +/* 10EEA0 7F0DA370 A7AE013C */ sh $t6, 0x13c($sp) +/* 10EEA4 7F0DA374 A7B90298 */ sh $t9, 0x298($sp) +/* 10EEA8 7F0DA378 AFAB028C */ sw $t3, 0x28c($sp) +/* 10EEAC 7F0DA37C 018D4021 */ addu $t0, $t4, $t5 +/* 10EEB0 7F0DA380 91180000 */ lbu $t8, ($t0) +/* 10EEB4 7F0DA384 330E00F8 */ andi $t6, $t8, 0xf8 +/* 10EEB8 7F0DA388 35CF0006 */ ori $t7, $t6, 6 +/* 10EEBC 7F0DA38C A3B8013B */ sb $t8, 0x13b($sp) +/* 10EEC0 7F0DA390 33090007 */ andi $t1, $t8, 7 +/* 10EEC4 7F0DA394 A3A9013A */ sb $t1, 0x13a($sp) +/* 10EEC8 7F0DA398 1000000F */ b .L7F0DA3D8 +/* 10EECC 7F0DA39C A3AF013B */ sb $t7, 0x13b($sp) +.L7F0DA3A0: +/* 10EED0 7F0DA3A0 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EED4 7F0DA3A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10EED8 7F0DA3A8 8FAD028C */ lw $t5, 0x28c($sp) +/* 10EEDC 7F0DA3AC 8FA90288 */ lw $t1, 0x288($sp) +/* 10EEE0 7F0DA3B0 014BC821 */ addu $t9, $t2, $t3 +/* 10EEE4 7F0DA3B4 932C0000 */ lbu $t4, ($t9) +/* 10EEE8 7F0DA3B8 00167200 */ sll $t6, $s6, 8 +/* 10EEEC 7F0DA3BC 01D77825 */ or $t7, $t6, $s7 +/* 10EEF0 7F0DA3C0 25A80004 */ addiu $t0, $t5, 4 +/* 10EEF4 7F0DA3C4 25380001 */ addiu $t8, $t1, 1 +/* 10EEF8 7F0DA3C8 AFA8028C */ sw $t0, 0x28c($sp) +/* 10EEFC 7F0DA3CC AFB80288 */ sw $t8, 0x288($sp) +/* 10EF00 7F0DA3D0 A7AF013C */ sh $t7, 0x13c($sp) +/* 10EF04 7F0DA3D4 A3AC013B */ sb $t4, 0x13b($sp) +.L7F0DA3D8: +/* 10EF08 7F0DA3D8 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EF0C 7F0DA3DC 93B9013B */ lbu $t9, 0x13b($sp) +/* 10EF10 7F0DA3E0 93AF013B */ lbu $t7, 0x13b($sp) +/* 10EF14 7F0DA3E4 254B0001 */ addiu $t3, $t2, 1 +/* 10EF18 7F0DA3E8 2B210040 */ slti $at, $t9, 0x40 +spectrum_op_CB_40_FF: +/* 10EF1C 7F0DA3EC 102006A4 */ beqz $at, .L7F0DBE80 +/* 10EF20 7F0DA3F0 A7AB0298 */ sh $t3, 0x298($sp) +/* 10EF24 7F0DA3F4 2F210040 */ sltiu $at, $t9, 0x40 +def_7F0DBF10: +/* 10EF28 7F0DA3F8 10200867 */ beqz $at, .L7F0DC598 +/* 10EF2C 7F0DA3FC 0019C880 */ sll $t9, $t9, 2 +/* 10EF30 7F0DA400 3C018006 */ lui $at, %hi(jpt_8005C52C) +/* 10EF34 7F0DA404 00390821 */ addu $at, $at, $t9 +/* 10EF38 7F0DA408 8C39C52C */ lw $t9, %lo(jpt_8005C52C)($at) +/* 10EF3C 7F0DA40C 03200008 */ jr $t9 +/* 10EF40 7F0DA410 00000000 */ nop +spectrum_op_CB_00: +/* 10EF44 7F0DA414 00126040 */ sll $t4, $s2, 1 +/* 10EF48 7F0DA418 001269C3 */ sra $t5, $s2, 7 +/* 10EF4C 7F0DA41C 018D9025 */ or $s2, $t4, $t5 +/* 10EF50 7F0DA420 324800FF */ andi $t0, $s2, 0xff +/* 10EF54 7F0DA424 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10EF58 7F0DA428 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10EF5C 7F0DA42C 2D090001 */ sltiu $t1, $t0, 1 +/* 10EF60 7F0DA430 AFA90048 */ sw $t1, 0x48($sp) +/* 10EF64 7F0DA434 01009025 */ move $s2, $t0 +/* 10EF68 7F0DA438 31180001 */ andi $t8, $t0, 1 +/* 10EF6C 7F0DA43C 310E00A8 */ andi $t6, $t0, 0xa8 +/* 10EF70 7F0DA440 010C6821 */ addu $t5, $t0, $t4 +/* 10EF74 7F0DA444 91A80000 */ lbu $t0, ($t5) +/* 10EF78 7F0DA448 030E7825 */ or $t7, $t8, $t6 +/* 10EF7C 7F0DA44C 00095980 */ sll $t3, $t1, 6 +/* 10EF80 7F0DA450 01EBC825 */ or $t9, $t7, $t3 +/* 10EF84 7F0DA454 01198825 */ or $s1, $t0, $t9 +/* 10EF88 7F0DA458 322900FF */ andi $t1, $s1, 0xff +/* 10EF8C 7F0DA45C 1000084E */ b .L7F0DC598 +/* 10EF90 7F0DA460 01208825 */ move $s1, $t1 +spectrum_op_CB_01: +/* 10EF94 7F0DA464 0013C040 */ sll $t8, $s3, 1 +/* 10EF98 7F0DA468 001371C3 */ sra $t6, $s3, 7 +/* 10EF9C 7F0DA46C 030E9825 */ or $s3, $t8, $t6 +/* 10EFA0 7F0DA470 326A00FF */ andi $t2, $s3, 0xff +/* 10EFA4 7F0DA474 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10EFA8 7F0DA478 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10EFAC 7F0DA47C 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10EFB0 7F0DA480 AFAF0048 */ sw $t7, 0x48($sp) +/* 10EFB4 7F0DA484 01409825 */ move $s3, $t2 +/* 10EFB8 7F0DA488 314B0001 */ andi $t3, $t2, 1 +/* 10EFBC 7F0DA48C 314C00A8 */ andi $t4, $t2, 0xa8 +/* 10EFC0 7F0DA490 01587021 */ addu $t6, $t2, $t8 +/* 10EFC4 7F0DA494 91CA0000 */ lbu $t2, ($t6) +/* 10EFC8 7F0DA498 016C6825 */ or $t5, $t3, $t4 +/* 10EFCC 7F0DA49C 000FC980 */ sll $t9, $t7, 6 +/* 10EFD0 7F0DA4A0 01B94825 */ or $t1, $t5, $t9 +/* 10EFD4 7F0DA4A4 01498825 */ or $s1, $t2, $t1 +/* 10EFD8 7F0DA4A8 322F00FF */ andi $t7, $s1, 0xff +/* 10EFDC 7F0DA4AC 1000083A */ b .L7F0DC598 +/* 10EFE0 7F0DA4B0 01E08825 */ move $s1, $t7 +spectrum_op_CB_02: +/* 10EFE4 7F0DA4B4 00145840 */ sll $t3, $s4, 1 +/* 10EFE8 7F0DA4B8 001461C3 */ sra $t4, $s4, 7 +/* 10EFEC 7F0DA4BC 016CA025 */ or $s4, $t3, $t4 +/* 10EFF0 7F0DA4C0 328800FF */ andi $t0, $s4, 0xff +/* 10EFF4 7F0DA4C4 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10EFF8 7F0DA4C8 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10EFFC 7F0DA4CC 2D0D0001 */ sltiu $t5, $t0, 1 +/* 10F000 7F0DA4D0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10F004 7F0DA4D4 0100A025 */ move $s4, $t0 +/* 10F008 7F0DA4D8 31190001 */ andi $t9, $t0, 1 +/* 10F00C 7F0DA4DC 311800A8 */ andi $t8, $t0, 0xa8 +/* 10F010 7F0DA4E0 010B6021 */ addu $t4, $t0, $t3 +/* 10F014 7F0DA4E4 91880000 */ lbu $t0, ($t4) +/* 10F018 7F0DA4E8 03387025 */ or $t6, $t9, $t8 +/* 10F01C 7F0DA4EC 000D4980 */ sll $t1, $t5, 6 +/* 10F020 7F0DA4F0 01C97825 */ or $t7, $t6, $t1 +/* 10F024 7F0DA4F4 010F8825 */ or $s1, $t0, $t7 +/* 10F028 7F0DA4F8 322D00FF */ andi $t5, $s1, 0xff +/* 10F02C 7F0DA4FC 10000826 */ b .L7F0DC598 +/* 10F030 7F0DA500 01A08825 */ move $s1, $t5 +spectrum_op_CB_03: +/* 10F034 7F0DA504 0015C840 */ sll $t9, $s5, 1 +/* 10F038 7F0DA508 0015C1C3 */ sra $t8, $s5, 7 +/* 10F03C 7F0DA50C 0338A825 */ or $s5, $t9, $t8 +/* 10F040 7F0DA510 32AA00FF */ andi $t2, $s5, 0xff +/* 10F044 7F0DA514 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F048 7F0DA518 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F04C 7F0DA51C 2D4E0001 */ sltiu $t6, $t2, 1 +/* 10F050 7F0DA520 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F054 7F0DA524 0140A825 */ move $s5, $t2 +/* 10F058 7F0DA528 31490001 */ andi $t1, $t2, 1 +/* 10F05C 7F0DA52C 314B00A8 */ andi $t3, $t2, 0xa8 +/* 10F060 7F0DA530 0159C021 */ addu $t8, $t2, $t9 +/* 10F064 7F0DA534 930A0000 */ lbu $t2, ($t8) +/* 10F068 7F0DA538 012B6025 */ or $t4, $t1, $t3 +/* 10F06C 7F0DA53C 000E7980 */ sll $t7, $t6, 6 +/* 10F070 7F0DA540 018F6825 */ or $t5, $t4, $t7 +/* 10F074 7F0DA544 014D8825 */ or $s1, $t2, $t5 +/* 10F078 7F0DA548 322E00FF */ andi $t6, $s1, 0xff +/* 10F07C 7F0DA54C 10000812 */ b .L7F0DC598 +/* 10F080 7F0DA550 01C08825 */ move $s1, $t6 +spectrum_op_CB_04: +/* 10F084 7F0DA554 00164840 */ sll $t1, $s6, 1 +/* 10F088 7F0DA558 001659C3 */ sra $t3, $s6, 7 +/* 10F08C 7F0DA55C 012BB025 */ or $s6, $t1, $t3 +/* 10F090 7F0DA560 32C800FF */ andi $t0, $s6, 0xff +/* 10F094 7F0DA564 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10F098 7F0DA568 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10F09C 7F0DA56C 2D0C0001 */ sltiu $t4, $t0, 1 +/* 10F0A0 7F0DA570 AFAC0048 */ sw $t4, 0x48($sp) +/* 10F0A4 7F0DA574 0100B025 */ move $s6, $t0 +/* 10F0A8 7F0DA578 310F0001 */ andi $t7, $t0, 1 +/* 10F0AC 7F0DA57C 311900A8 */ andi $t9, $t0, 0xa8 +/* 10F0B0 7F0DA580 01095821 */ addu $t3, $t0, $t1 +/* 10F0B4 7F0DA584 91680000 */ lbu $t0, ($t3) +/* 10F0B8 7F0DA588 01F9C025 */ or $t8, $t7, $t9 +/* 10F0BC 7F0DA58C 000C6980 */ sll $t5, $t4, 6 +/* 10F0C0 7F0DA590 030D7025 */ or $t6, $t8, $t5 +/* 10F0C4 7F0DA594 010E8825 */ or $s1, $t0, $t6 +/* 10F0C8 7F0DA598 322C00FF */ andi $t4, $s1, 0xff +/* 10F0CC 7F0DA59C 100007FE */ b .L7F0DC598 +/* 10F0D0 7F0DA5A0 01808825 */ move $s1, $t4 +spectrum_op_CB_05: +/* 10F0D4 7F0DA5A4 00177840 */ sll $t7, $s7, 1 +/* 10F0D8 7F0DA5A8 0017C9C3 */ sra $t9, $s7, 7 +/* 10F0DC 7F0DA5AC 01F9B825 */ or $s7, $t7, $t9 +/* 10F0E0 7F0DA5B0 32EA00FF */ andi $t2, $s7, 0xff +/* 10F0E4 7F0DA5B4 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10F0E8 7F0DA5B8 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10F0EC 7F0DA5BC 2D580001 */ sltiu $t8, $t2, 1 +/* 10F0F0 7F0DA5C0 AFB80048 */ sw $t8, 0x48($sp) +/* 10F0F4 7F0DA5C4 0140B825 */ move $s7, $t2 +/* 10F0F8 7F0DA5C8 314D0001 */ andi $t5, $t2, 1 +/* 10F0FC 7F0DA5CC 314900A8 */ andi $t1, $t2, 0xa8 +/* 10F100 7F0DA5D0 014FC821 */ addu $t9, $t2, $t7 +/* 10F104 7F0DA5D4 932A0000 */ lbu $t2, ($t9) +/* 10F108 7F0DA5D8 01A95825 */ or $t3, $t5, $t1 +/* 10F10C 7F0DA5DC 00187180 */ sll $t6, $t8, 6 +/* 10F110 7F0DA5E0 016E6025 */ or $t4, $t3, $t6 +/* 10F114 7F0DA5E4 014C8825 */ or $s1, $t2, $t4 +/* 10F118 7F0DA5E8 323800FF */ andi $t8, $s1, 0xff +/* 10F11C 7F0DA5EC 100007EA */ b .L7F0DC598 +/* 10F120 7F0DA5F0 03008825 */ move $s1, $t8 +spectrum_op_CB_06: +/* 10F124 7F0DA5F4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10F128 7F0DA5F8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F12C 7F0DA5FC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F130 7F0DA600 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F134 7F0DA604 25A90007 */ addiu $t1, $t5, 7 +/* 10F138 7F0DA608 AFA9028C */ sw $t1, 0x28c($sp) +/* 10F13C 7F0DA60C 010B7021 */ addu $t6, $t0, $t3 +/* 10F140 7F0DA610 91CF0000 */ lbu $t7, ($t6) +/* 10F144 7F0DA614 000FC840 */ sll $t9, $t7, 1 +/* 10F148 7F0DA618 000F51C3 */ sra $t2, $t7, 7 +/* 10F14C 7F0DA61C 032A6025 */ or $t4, $t9, $t2 +/* 10F150 7F0DA620 319800FF */ andi $t8, $t4, 0xff +/* 10F154 7F0DA624 2F0D0001 */ sltiu $t5, $t8, 1 +/* 10F158 7F0DA628 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10F15C 7F0DA62C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10F160 7F0DA630 318900FF */ andi $t1, $t4, 0xff +/* 10F164 7F0DA634 A3AF0139 */ sb $t7, 0x139($sp) +/* 10F168 7F0DA638 31280001 */ andi $t0, $t1, 1 +/* 10F16C 7F0DA63C 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10F170 7F0DA640 010E7825 */ or $t7, $t0, $t6 +/* 10F174 7F0DA644 A3AC0139 */ sb $t4, 0x139($sp) +/* 10F178 7F0DA648 AFAD0048 */ sw $t5, 0x48($sp) +/* 10F17C 7F0DA64C 01385821 */ addu $t3, $t1, $t8 +/* 10F180 7F0DA650 91680000 */ lbu $t0, ($t3) +/* 10F184 7F0DA654 000DC980 */ sll $t9, $t5, 6 +/* 10F188 7F0DA658 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F18C 7F0DA65C 01F95025 */ or $t2, $t7, $t9 +/* 10F190 7F0DA660 010A8825 */ or $s1, $t0, $t2 +/* 10F194 7F0DA664 322E00FF */ andi $t6, $s1, 0xff +/* 10F198 7F0DA668 29A15B00 */ slti $at, $t5, 0x5b00 +/* 10F19C 7F0DA66C 14200007 */ bnez $at, .L7F0DA68C +/* 10F1A0 7F0DA670 01C08825 */ move $s1, $t6 +/* 10F1A4 7F0DA674 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10F1A8 7F0DA678 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10F1AC 7F0DA67C 01807825 */ move $t7, $t4 +/* 10F1B0 7F0DA680 032D6021 */ addu $t4, $t9, $t5 +/* 10F1B4 7F0DA684 100007C4 */ b .L7F0DC598 +/* 10F1B8 7F0DA688 A18F0000 */ sb $t7, ($t4) +.L7F0DA68C: +/* 10F1BC 7F0DA68C 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F1C0 7F0DA690 97AF013C */ lhu $t7, 0x13c($sp) +/* 10F1C4 7F0DA694 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F1C8 7F0DA698 29215800 */ slti $at, $t1, 0x5800 +/* 10F1CC 7F0DA69C 5420000D */ bnezl $at, .L7F0DA6D4 +/* 10F1D0 7F0DA6A0 29E14000 */ slti $at, $t7, 0x4000 +/* 10F1D4 7F0DA6A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F1D8 7F0DA6A8 93B80139 */ lbu $t8, 0x139($sp) +/* 10F1DC 7F0DA6AC 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10F1E0 7F0DA6B0 01694021 */ addu $t0, $t3, $t1 +/* 10F1E4 7F0DA6B4 A1180000 */ sb $t8, ($t0) +/* 10F1E8 7F0DA6B8 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F1EC 7F0DA6BC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10F1F0 7F0DA6C0 240A0001 */ li $t2, 1 +/* 10F1F4 7F0DA6C4 01D96821 */ addu $t5, $t6, $t9 +/* 10F1F8 7F0DA6C8 100007B3 */ b .L7F0DC598 +/* 10F1FC 7F0DA6CC A1AAA800 */ sb $t2, -0x5800($t5) +/* 10F200 7F0DA6D0 29E14000 */ slti $at, $t7, 0x4000 +.L7F0DA6D4: +/* 10F204 7F0DA6D4 142007B0 */ bnez $at, .L7F0DC598 +/* 10F208 7F0DA6D8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F20C 7F0DA6DC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F210 7F0DA6E0 93AC0139 */ lbu $t4, 0x139($sp) +/* 10F214 7F0DA6E4 24180001 */ li $t8, 1 +/* 10F218 7F0DA6E8 016F4821 */ addu $t1, $t3, $t7 +/* 10F21C 7F0DA6EC A12C0000 */ sb $t4, ($t1) +/* 10F220 7F0DA6F0 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F224 7F0DA6F4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10F228 7F0DA6F8 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10F22C 7F0DA6FC 310E1800 */ andi $t6, $t0, 0x1800 +/* 10F230 7F0DA700 000EC8C3 */ sra $t9, $t6, 3 +/* 10F234 7F0DA704 310A00FF */ andi $t2, $t0, 0xff +/* 10F238 7F0DA708 032A6825 */ or $t5, $t9, $t2 +/* 10F23C 7F0DA70C 016D7821 */ addu $t7, $t3, $t5 +/* 10F240 7F0DA710 100007A1 */ b .L7F0DC598 +/* 10F244 7F0DA714 A1F80000 */ sb $t8, ($t7) +spectrum_op_CB_07: +/* 10F248 7F0DA718 00106040 */ sll $t4, $s0, 1 +/* 10F24C 7F0DA71C 001049C3 */ sra $t1, $s0, 7 +/* 10F250 7F0DA720 01898025 */ or $s0, $t4, $t1 +/* 10F254 7F0DA724 320E00FF */ andi $t6, $s0, 0xff +/* 10F258 7F0DA728 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10F25C 7F0DA72C 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10F260 7F0DA730 2DC80001 */ sltiu $t0, $t6, 1 +/* 10F264 7F0DA734 AFA80048 */ sw $t0, 0x48($sp) +/* 10F268 7F0DA738 01C08025 */ move $s0, $t6 +/* 10F26C 7F0DA73C 31D90001 */ andi $t9, $t6, 1 +/* 10F270 7F0DA740 31CA00A8 */ andi $t2, $t6, 0xa8 +/* 10F274 7F0DA744 01CC4821 */ addu $t1, $t6, $t4 +/* 10F278 7F0DA748 912E0000 */ lbu $t6, ($t1) +/* 10F27C 7F0DA74C 032A5825 */ or $t3, $t9, $t2 +/* 10F280 7F0DA750 0008C180 */ sll $t8, $t0, 6 +/* 10F284 7F0DA754 01787825 */ or $t7, $t3, $t8 +/* 10F288 7F0DA758 01CF8825 */ or $s1, $t6, $t7 +/* 10F28C 7F0DA75C 322800FF */ andi $t0, $s1, 0xff +/* 10F290 7F0DA760 1000078D */ b .L7F0DC598 +/* 10F294 7F0DA764 01008825 */ move $s1, $t0 +spectrum_op_CB_08: +/* 10F298 7F0DA768 324D0001 */ andi $t5, $s2, 1 +/* 10F29C 7F0DA76C 000D59C0 */ sll $t3, $t5, 7 +/* 10F2A0 7F0DA770 00125043 */ sra $t2, $s2, 1 +/* 10F2A4 7F0DA774 014B9025 */ or $s2, $t2, $t3 +/* 10F2A8 7F0DA778 325800FF */ andi $t8, $s2, 0xff +/* 10F2AC 7F0DA77C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10F2B0 7F0DA780 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10F2B4 7F0DA784 2F0C0001 */ sltiu $t4, $t8, 1 +/* 10F2B8 7F0DA788 AFAC0048 */ sw $t4, 0x48($sp) +/* 10F2BC 7F0DA78C 03009025 */ move $s2, $t8 +/* 10F2C0 7F0DA790 330900A8 */ andi $t1, $t8, 0xa8 +/* 10F2C4 7F0DA794 A3AD0138 */ sb $t5, 0x138($sp) +/* 10F2C8 7F0DA798 030A5821 */ addu $t3, $t8, $t2 +/* 10F2CC 7F0DA79C 91780000 */ lbu $t8, ($t3) +/* 10F2D0 7F0DA7A0 01A97025 */ or $t6, $t5, $t1 +/* 10F2D4 7F0DA7A4 000C4180 */ sll $t0, $t4, 6 +/* 10F2D8 7F0DA7A8 01C8C825 */ or $t9, $t6, $t0 +/* 10F2DC 7F0DA7AC 03198825 */ or $s1, $t8, $t9 +/* 10F2E0 7F0DA7B0 322C00FF */ andi $t4, $s1, 0xff +/* 10F2E4 7F0DA7B4 10000778 */ b .L7F0DC598 +/* 10F2E8 7F0DA7B8 01808825 */ move $s1, $t4 +spectrum_op_CB_09: +/* 10F2EC 7F0DA7BC 326F0001 */ andi $t7, $s3, 1 +/* 10F2F0 7F0DA7C0 000F71C0 */ sll $t6, $t7, 7 +/* 10F2F4 7F0DA7C4 00134843 */ sra $t1, $s3, 1 +/* 10F2F8 7F0DA7C8 012E9825 */ or $s3, $t1, $t6 +/* 10F2FC 7F0DA7CC 326800FF */ andi $t0, $s3, 0xff +/* 10F300 7F0DA7D0 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10F304 7F0DA7D4 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10F308 7F0DA7D8 2D0A0001 */ sltiu $t2, $t0, 1 +/* 10F30C 7F0DA7DC AFAA0048 */ sw $t2, 0x48($sp) +/* 10F310 7F0DA7E0 01009825 */ move $s3, $t0 +/* 10F314 7F0DA7E4 310B00A8 */ andi $t3, $t0, 0xa8 +/* 10F318 7F0DA7E8 A3AF0137 */ sb $t7, 0x137($sp) +/* 10F31C 7F0DA7EC 01097021 */ addu $t6, $t0, $t1 +/* 10F320 7F0DA7F0 91C80000 */ lbu $t0, ($t6) +/* 10F324 7F0DA7F4 01EBC025 */ or $t8, $t7, $t3 +/* 10F328 7F0DA7F8 000A6180 */ sll $t4, $t2, 6 +/* 10F32C 7F0DA7FC 030C6825 */ or $t5, $t8, $t4 +/* 10F330 7F0DA800 010D8825 */ or $s1, $t0, $t5 +/* 10F334 7F0DA804 322A00FF */ andi $t2, $s1, 0xff +/* 10F338 7F0DA808 10000763 */ b .L7F0DC598 +/* 10F33C 7F0DA80C 01408825 */ move $s1, $t2 +spectrum_op_CB_0A: +/* 10F340 7F0DA810 32990001 */ andi $t9, $s4, 1 +/* 10F344 7F0DA814 0019C1C0 */ sll $t8, $t9, 7 +/* 10F348 7F0DA818 00145843 */ sra $t3, $s4, 1 +/* 10F34C 7F0DA81C 0178A025 */ or $s4, $t3, $t8 +/* 10F350 7F0DA820 328C00FF */ andi $t4, $s4, 0xff +/* 10F354 7F0DA824 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10F358 7F0DA828 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10F35C 7F0DA82C 2D890001 */ sltiu $t1, $t4, 1 +/* 10F360 7F0DA830 AFA90048 */ sw $t1, 0x48($sp) +/* 10F364 7F0DA834 0180A025 */ move $s4, $t4 +/* 10F368 7F0DA838 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10F36C 7F0DA83C A3B90136 */ sb $t9, 0x136($sp) +/* 10F370 7F0DA840 018BC021 */ addu $t8, $t4, $t3 +/* 10F374 7F0DA844 930C0000 */ lbu $t4, ($t8) +/* 10F378 7F0DA848 032E4025 */ or $t0, $t9, $t6 +/* 10F37C 7F0DA84C 00095180 */ sll $t2, $t1, 6 +/* 10F380 7F0DA850 010A7825 */ or $t7, $t0, $t2 +/* 10F384 7F0DA854 018F8825 */ or $s1, $t4, $t7 +/* 10F388 7F0DA858 322900FF */ andi $t1, $s1, 0xff +/* 10F38C 7F0DA85C 1000074E */ b .L7F0DC598 +/* 10F390 7F0DA860 01208825 */ move $s1, $t1 +spectrum_op_CB_0B: +/* 10F394 7F0DA864 32AD0001 */ andi $t5, $s5, 1 +/* 10F398 7F0DA868 000D41C0 */ sll $t0, $t5, 7 +/* 10F39C 7F0DA86C 00157043 */ sra $t6, $s5, 1 +/* 10F3A0 7F0DA870 01C8A825 */ or $s5, $t6, $t0 +/* 10F3A4 7F0DA874 32AA00FF */ andi $t2, $s5, 0xff +/* 10F3A8 7F0DA878 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10F3AC 7F0DA87C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10F3B0 7F0DA880 2D4B0001 */ sltiu $t3, $t2, 1 +/* 10F3B4 7F0DA884 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F3B8 7F0DA888 0140A825 */ move $s5, $t2 +/* 10F3BC 7F0DA88C 315800A8 */ andi $t8, $t2, 0xa8 +/* 10F3C0 7F0DA890 A3AD0135 */ sb $t5, 0x135($sp) +/* 10F3C4 7F0DA894 014E4021 */ addu $t0, $t2, $t6 +/* 10F3C8 7F0DA898 910A0000 */ lbu $t2, ($t0) +/* 10F3CC 7F0DA89C 01B86025 */ or $t4, $t5, $t8 +/* 10F3D0 7F0DA8A0 000B4980 */ sll $t1, $t3, 6 +/* 10F3D4 7F0DA8A4 0189C825 */ or $t9, $t4, $t1 +/* 10F3D8 7F0DA8A8 01598825 */ or $s1, $t2, $t9 +/* 10F3DC 7F0DA8AC 322B00FF */ andi $t3, $s1, 0xff +/* 10F3E0 7F0DA8B0 10000739 */ b .L7F0DC598 +/* 10F3E4 7F0DA8B4 01608825 */ move $s1, $t3 +spectrum_op_CB_0C: +/* 10F3E8 7F0DA8B8 32CF0001 */ andi $t7, $s6, 1 +/* 10F3EC 7F0DA8BC 000F61C0 */ sll $t4, $t7, 7 +/* 10F3F0 7F0DA8C0 0016C043 */ sra $t8, $s6, 1 +/* 10F3F4 7F0DA8C4 030CB025 */ or $s6, $t8, $t4 +/* 10F3F8 7F0DA8C8 32C900FF */ andi $t1, $s6, 0xff +/* 10F3FC 7F0DA8CC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10F400 7F0DA8D0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10F404 7F0DA8D4 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F408 7F0DA8D8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F40C 7F0DA8DC 0120B025 */ move $s6, $t1 +/* 10F410 7F0DA8E0 312800A8 */ andi $t0, $t1, 0xa8 +/* 10F414 7F0DA8E4 A3AF0134 */ sb $t7, 0x134($sp) +/* 10F418 7F0DA8E8 01386021 */ addu $t4, $t1, $t8 +/* 10F41C 7F0DA8EC 91890000 */ lbu $t1, ($t4) +/* 10F420 7F0DA8F0 01E85025 */ or $t2, $t7, $t0 +/* 10F424 7F0DA8F4 000E5980 */ sll $t3, $t6, 6 +/* 10F428 7F0DA8F8 014B6825 */ or $t5, $t2, $t3 +/* 10F42C 7F0DA8FC 012D8825 */ or $s1, $t1, $t5 +/* 10F430 7F0DA900 322E00FF */ andi $t6, $s1, 0xff +/* 10F434 7F0DA904 10000724 */ b .L7F0DC598 +/* 10F438 7F0DA908 01C08825 */ move $s1, $t6 +spectrum_op_CB_0D: +/* 10F43C 7F0DA90C 32F90001 */ andi $t9, $s7, 1 +/* 10F440 7F0DA910 001951C0 */ sll $t2, $t9, 7 +/* 10F444 7F0DA914 00174043 */ sra $t0, $s7, 1 +/* 10F448 7F0DA918 010AB825 */ or $s7, $t0, $t2 +/* 10F44C 7F0DA91C 32EB00FF */ andi $t3, $s7, 0xff +/* 10F450 7F0DA920 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F454 7F0DA924 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F458 7F0DA928 2D780001 */ sltiu $t8, $t3, 1 +/* 10F45C 7F0DA92C AFB80048 */ sw $t8, 0x48($sp) +/* 10F460 7F0DA930 0160B825 */ move $s7, $t3 +/* 10F464 7F0DA934 316C00A8 */ andi $t4, $t3, 0xa8 +/* 10F468 7F0DA938 A3B90133 */ sb $t9, 0x133($sp) +/* 10F46C 7F0DA93C 01685021 */ addu $t2, $t3, $t0 +/* 10F470 7F0DA940 914B0000 */ lbu $t3, ($t2) +/* 10F474 7F0DA944 032C4825 */ or $t1, $t9, $t4 +/* 10F478 7F0DA948 00187180 */ sll $t6, $t8, 6 +/* 10F47C 7F0DA94C 012E7825 */ or $t7, $t1, $t6 +/* 10F480 7F0DA950 016F8825 */ or $s1, $t3, $t7 +/* 10F484 7F0DA954 323800FF */ andi $t8, $s1, 0xff +/* 10F488 7F0DA958 1000070F */ b .L7F0DC598 +/* 10F48C 7F0DA95C 03008825 */ move $s1, $t8 +spectrum_op_CB_0E: +/* 10F490 7F0DA960 8FB9028C */ lw $t9, 0x28c($sp) +/* 10F494 7F0DA964 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10F498 7F0DA968 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10F49C 7F0DA96C 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F4A0 7F0DA970 272C0007 */ addiu $t4, $t9, 7 +/* 10F4A4 7F0DA974 AFAC028C */ sw $t4, 0x28c($sp) +/* 10F4A8 7F0DA978 01A97021 */ addu $t6, $t5, $t1 +/* 10F4AC 7F0DA97C 91C80000 */ lbu $t0, ($t6) +/* 10F4B0 7F0DA980 310A00FF */ andi $t2, $t0, 0xff +/* 10F4B4 7F0DA984 314E0001 */ andi $t6, $t2, 1 +/* 10F4B8 7F0DA988 31D800FF */ andi $t8, $t6, 0xff +/* 10F4BC 7F0DA98C 0018C9C0 */ sll $t9, $t8, 7 +/* 10F4C0 7F0DA990 000A7843 */ sra $t7, $t2, 1 +/* 10F4C4 7F0DA994 01F96025 */ or $t4, $t7, $t9 +/* 10F4C8 7F0DA998 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F4CC 7F0DA99C 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F4D0 7F0DA9A0 318D00FF */ andi $t5, $t4, 0xff +/* 10F4D4 7F0DA9A4 A3A80139 */ sb $t0, 0x139($sp) +/* 10F4D8 7F0DA9A8 2DA90001 */ sltiu $t1, $t5, 1 +/* 10F4DC 7F0DA9AC 318A00A8 */ andi $t2, $t4, 0xa8 +/* 10F4E0 7F0DA9B0 01CA5825 */ or $t3, $t6, $t2 +/* 10F4E4 7F0DA9B4 AFA90048 */ sw $t1, 0x48($sp) +/* 10F4E8 7F0DA9B8 A3AC0139 */ sb $t4, 0x139($sp) +/* 10F4EC 7F0DA9BC A3AE0132 */ sb $t6, 0x132($sp) +/* 10F4F0 7F0DA9C0 01B94021 */ addu $t0, $t5, $t9 +/* 10F4F4 7F0DA9C4 910E0000 */ lbu $t6, ($t0) +/* 10F4F8 7F0DA9C8 0009C180 */ sll $t8, $t1, 6 +/* 10F4FC 7F0DA9CC 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F500 7F0DA9D0 01787825 */ or $t7, $t3, $t8 +/* 10F504 7F0DA9D4 01CF8825 */ or $s1, $t6, $t7 +/* 10F508 7F0DA9D8 322A00FF */ andi $t2, $s1, 0xff +/* 10F50C 7F0DA9DC 29215B00 */ slti $at, $t1, 0x5b00 +/* 10F510 7F0DA9E0 14200007 */ bnez $at, .L7F0DAA00 +/* 10F514 7F0DA9E4 01408825 */ move $s1, $t2 +/* 10F518 7F0DA9E8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10F51C 7F0DA9EC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10F520 7F0DA9F0 01805825 */ move $t3, $t4 +/* 10F524 7F0DA9F4 03096021 */ addu $t4, $t8, $t1 +/* 10F528 7F0DA9F8 100006E7 */ b .L7F0DC598 +/* 10F52C 7F0DA9FC A18B0000 */ sb $t3, ($t4) +.L7F0DAA00: +/* 10F530 7F0DAA00 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F534 7F0DAA04 97AB013C */ lhu $t3, 0x13c($sp) +/* 10F538 7F0DAA08 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10F53C 7F0DAA0C 29A15800 */ slti $at, $t5, 0x5800 +/* 10F540 7F0DAA10 5420000D */ bnezl $at, .L7F0DAA48 +/* 10F544 7F0DAA14 29614000 */ slti $at, $t3, 0x4000 +/* 10F548 7F0DAA18 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10F54C 7F0DAA1C 93B90139 */ lbu $t9, 0x139($sp) +/* 10F550 7F0DAA20 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 10F554 7F0DAA24 010D7021 */ addu $t6, $t0, $t5 +/* 10F558 7F0DAA28 A1D90000 */ sb $t9, ($t6) +/* 10F55C 7F0DAA2C 97B8013C */ lhu $t8, 0x13c($sp) +/* 10F560 7F0DAA30 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 10F564 7F0DAA34 240F0001 */ li $t7, 1 +/* 10F568 7F0DAA38 01584821 */ addu $t1, $t2, $t8 +/* 10F56C 7F0DAA3C 100006D6 */ b .L7F0DC598 +/* 10F570 7F0DAA40 A12FA800 */ sb $t7, -0x5800($t1) +/* 10F574 7F0DAA44 29614000 */ slti $at, $t3, 0x4000 +.L7F0DAA48: +/* 10F578 7F0DAA48 142006D3 */ bnez $at, .L7F0DC598 +/* 10F57C 7F0DAA4C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10F580 7F0DAA50 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10F584 7F0DAA54 93AC0139 */ lbu $t4, 0x139($sp) +/* 10F588 7F0DAA58 24190001 */ li $t9, 1 +/* 10F58C 7F0DAA5C 010B6821 */ addu $t5, $t0, $t3 +/* 10F590 7F0DAA60 A1AC0000 */ sb $t4, ($t5) +/* 10F594 7F0DAA64 97AE013C */ lhu $t6, 0x13c($sp) +/* 10F598 7F0DAA68 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10F59C 7F0DAA6C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10F5A0 7F0DAA70 31CA1800 */ andi $t2, $t6, 0x1800 +/* 10F5A4 7F0DAA74 000AC0C3 */ sra $t8, $t2, 3 +/* 10F5A8 7F0DAA78 31CF00FF */ andi $t7, $t6, 0xff +/* 10F5AC 7F0DAA7C 030F4825 */ or $t1, $t8, $t7 +/* 10F5B0 7F0DAA80 01095821 */ addu $t3, $t0, $t1 +/* 10F5B4 7F0DAA84 100006C4 */ b .L7F0DC598 +/* 10F5B8 7F0DAA88 A1790000 */ sb $t9, ($t3) +spectrum_op_CB_0F: +/* 10F5BC 7F0DAA8C 320A0001 */ andi $t2, $s0, 1 +/* 10F5C0 7F0DAA90 000A71C0 */ sll $t6, $t2, 7 +/* 10F5C4 7F0DAA94 00106843 */ sra $t5, $s0, 1 +/* 10F5C8 7F0DAA98 01AE8025 */ or $s0, $t5, $t6 +/* 10F5CC 7F0DAA9C 321800FF */ andi $t8, $s0, 0xff +/* 10F5D0 7F0DAAA0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F5D4 7F0DAAA4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F5D8 7F0DAAA8 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F5DC 7F0DAAAC AFAF0048 */ sw $t7, 0x48($sp) +/* 10F5E0 7F0DAAB0 03008025 */ move $s0, $t8 +/* 10F5E4 7F0DAAB4 330800A8 */ andi $t0, $t8, 0xa8 +/* 10F5E8 7F0DAAB8 A3AA0131 */ sb $t2, 0x131($sp) +/* 10F5EC 7F0DAABC 030D7021 */ addu $t6, $t8, $t5 +/* 10F5F0 7F0DAAC0 91D80000 */ lbu $t8, ($t6) +/* 10F5F4 7F0DAAC4 01484825 */ or $t1, $t2, $t0 +/* 10F5F8 7F0DAAC8 000F5980 */ sll $t3, $t7, 6 +/* 10F5FC 7F0DAACC 012B6025 */ or $t4, $t1, $t3 +/* 10F600 7F0DAAD0 030C8825 */ or $s1, $t8, $t4 +/* 10F604 7F0DAAD4 322F00FF */ andi $t7, $s1, 0xff +/* 10F608 7F0DAAD8 100006AF */ b .L7F0DC598 +/* 10F60C 7F0DAADC 01E08825 */ move $s1, $t7 +spectrum_op_CB_10: +/* 10F610 7F0DAAE0 001269C3 */ sra $t5, $s2, 7 +/* 10F614 7F0DAAE4 00124040 */ sll $t0, $s2, 1 +/* 10F618 7F0DAAE8 32390001 */ andi $t9, $s1, 1 +/* 10F61C 7F0DAAEC 01199025 */ or $s2, $t0, $t9 +/* 10F620 7F0DAAF0 324900FF */ andi $t1, $s2, 0xff +/* 10F624 7F0DAAF4 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F628 7F0DAAF8 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F62C 7F0DAAFC 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F630 7F0DAB00 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F634 7F0DAB04 01209025 */ move $s2, $t1 +/* 10F638 7F0DAB08 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10F63C 7F0DAB0C A3AD0130 */ sb $t5, 0x130($sp) +/* 10F640 7F0DAB10 0128C821 */ addu $t9, $t1, $t0 +/* 10F644 7F0DAB14 93290000 */ lbu $t1, ($t9) +/* 10F648 7F0DAB18 01AEC025 */ or $t8, $t5, $t6 +/* 10F64C 7F0DAB1C 000B7980 */ sll $t7, $t3, 6 +/* 10F650 7F0DAB20 030F5025 */ or $t2, $t8, $t7 +/* 10F654 7F0DAB24 012A8825 */ or $s1, $t1, $t2 +/* 10F658 7F0DAB28 322B00FF */ andi $t3, $s1, 0xff +/* 10F65C 7F0DAB2C 1000069A */ b .L7F0DC598 +/* 10F660 7F0DAB30 01608825 */ move $s1, $t3 +spectrum_op_CB_11: +/* 10F664 7F0DAB34 001341C3 */ sra $t0, $s3, 7 +/* 10F668 7F0DAB38 00137040 */ sll $t6, $s3, 1 +/* 10F66C 7F0DAB3C 322C0001 */ andi $t4, $s1, 1 +/* 10F670 7F0DAB40 01CC9825 */ or $s3, $t6, $t4 +/* 10F674 7F0DAB44 327800FF */ andi $t8, $s3, 0xff +/* 10F678 7F0DAB48 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10F67C 7F0DAB4C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10F680 7F0DAB50 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F684 7F0DAB54 AFAF0048 */ sw $t7, 0x48($sp) +/* 10F688 7F0DAB58 03009825 */ move $s3, $t8 +/* 10F68C 7F0DAB5C 331900A8 */ andi $t9, $t8, 0xa8 +/* 10F690 7F0DAB60 A3A8012F */ sb $t0, 0x12f($sp) +/* 10F694 7F0DAB64 030E6021 */ addu $t4, $t8, $t6 +/* 10F698 7F0DAB68 91980000 */ lbu $t8, ($t4) +/* 10F69C 7F0DAB6C 01194825 */ or $t1, $t0, $t9 +/* 10F6A0 7F0DAB70 000F5980 */ sll $t3, $t7, 6 +/* 10F6A4 7F0DAB74 012B6825 */ or $t5, $t1, $t3 +/* 10F6A8 7F0DAB78 030D8825 */ or $s1, $t8, $t5 +/* 10F6AC 7F0DAB7C 322F00FF */ andi $t7, $s1, 0xff +/* 10F6B0 7F0DAB80 10000685 */ b .L7F0DC598 +/* 10F6B4 7F0DAB84 01E08825 */ move $s1, $t7 +spectrum_op_CB_12: +/* 10F6B8 7F0DAB88 001471C3 */ sra $t6, $s4, 7 +/* 10F6BC 7F0DAB8C 0014C840 */ sll $t9, $s4, 1 +/* 10F6C0 7F0DAB90 322A0001 */ andi $t2, $s1, 1 +/* 10F6C4 7F0DAB94 032AA025 */ or $s4, $t9, $t2 +/* 10F6C8 7F0DAB98 328900FF */ andi $t1, $s4, 0xff +/* 10F6CC 7F0DAB9C 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F6D0 7F0DABA0 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F6D4 7F0DABA4 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F6D8 7F0DABA8 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F6DC 7F0DABAC 0120A025 */ move $s4, $t1 +/* 10F6E0 7F0DABB0 312C00A8 */ andi $t4, $t1, 0xa8 +/* 10F6E4 7F0DABB4 A3AE012E */ sb $t6, 0x12e($sp) +/* 10F6E8 7F0DABB8 01395021 */ addu $t2, $t1, $t9 +/* 10F6EC 7F0DABBC 91490000 */ lbu $t1, ($t2) +/* 10F6F0 7F0DABC0 01CCC025 */ or $t8, $t6, $t4 +/* 10F6F4 7F0DABC4 000B7980 */ sll $t7, $t3, 6 +/* 10F6F8 7F0DABC8 030F4025 */ or $t0, $t8, $t7 +/* 10F6FC 7F0DABCC 01288825 */ or $s1, $t1, $t0 +/* 10F700 7F0DABD0 322B00FF */ andi $t3, $s1, 0xff +/* 10F704 7F0DABD4 10000670 */ b .L7F0DC598 +/* 10F708 7F0DABD8 01608825 */ move $s1, $t3 +spectrum_op_CB_13: +/* 10F70C 7F0DABDC 0015C9C3 */ sra $t9, $s5, 7 +/* 10F710 7F0DABE0 00156040 */ sll $t4, $s5, 1 +/* 10F714 7F0DABE4 322D0001 */ andi $t5, $s1, 1 +/* 10F718 7F0DABE8 018DA825 */ or $s5, $t4, $t5 +/* 10F71C 7F0DABEC 32B800FF */ andi $t8, $s5, 0xff +/* 10F720 7F0DABF0 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10F724 7F0DABF4 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10F728 7F0DABF8 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F72C 7F0DABFC AFAF0048 */ sw $t7, 0x48($sp) +/* 10F730 7F0DAC00 0300A825 */ move $s5, $t8 +/* 10F734 7F0DAC04 330A00A8 */ andi $t2, $t8, 0xa8 +/* 10F738 7F0DAC08 A3B9012D */ sb $t9, 0x12d($sp) +/* 10F73C 7F0DAC0C 030C6821 */ addu $t5, $t8, $t4 +/* 10F740 7F0DAC10 91B80000 */ lbu $t8, ($t5) +/* 10F744 7F0DAC14 032A4825 */ or $t1, $t9, $t2 +/* 10F748 7F0DAC18 000F5980 */ sll $t3, $t7, 6 +/* 10F74C 7F0DAC1C 012B7025 */ or $t6, $t1, $t3 +/* 10F750 7F0DAC20 030E8825 */ or $s1, $t8, $t6 +/* 10F754 7F0DAC24 322F00FF */ andi $t7, $s1, 0xff +/* 10F758 7F0DAC28 1000065B */ b .L7F0DC598 +/* 10F75C 7F0DAC2C 01E08825 */ move $s1, $t7 +spectrum_op_CB_14: +/* 10F760 7F0DAC30 001661C3 */ sra $t4, $s6, 7 +/* 10F764 7F0DAC34 00165040 */ sll $t2, $s6, 1 +/* 10F768 7F0DAC38 32280001 */ andi $t0, $s1, 1 +/* 10F76C 7F0DAC3C 0148B025 */ or $s6, $t2, $t0 +/* 10F770 7F0DAC40 32C900FF */ andi $t1, $s6, 0xff +/* 10F774 7F0DAC44 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10F778 7F0DAC48 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10F77C 7F0DAC4C 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F780 7F0DAC50 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F784 7F0DAC54 0120B025 */ move $s6, $t1 +/* 10F788 7F0DAC58 312D00A8 */ andi $t5, $t1, 0xa8 +/* 10F78C 7F0DAC5C A3AC012C */ sb $t4, 0x12c($sp) +/* 10F790 7F0DAC60 012A4021 */ addu $t0, $t1, $t2 +/* 10F794 7F0DAC64 91090000 */ lbu $t1, ($t0) +/* 10F798 7F0DAC68 018DC025 */ or $t8, $t4, $t5 +/* 10F79C 7F0DAC6C 000B7980 */ sll $t7, $t3, 6 +/* 10F7A0 7F0DAC70 030FC825 */ or $t9, $t8, $t7 +/* 10F7A4 7F0DAC74 01398825 */ or $s1, $t1, $t9 +/* 10F7A8 7F0DAC78 322B00FF */ andi $t3, $s1, 0xff +/* 10F7AC 7F0DAC7C 10000646 */ b .L7F0DC598 +/* 10F7B0 7F0DAC80 01608825 */ move $s1, $t3 +spectrum_op_CB_15: +/* 10F7B4 7F0DAC84 001751C3 */ sra $t2, $s7, 7 +/* 10F7B8 7F0DAC88 00176840 */ sll $t5, $s7, 1 +/* 10F7BC 7F0DAC8C 322E0001 */ andi $t6, $s1, 1 +/* 10F7C0 7F0DAC90 01AEB825 */ or $s7, $t5, $t6 +/* 10F7C4 7F0DAC94 32F800FF */ andi $t8, $s7, 0xff +/* 10F7C8 7F0DAC98 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F7CC 7F0DAC9C 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F7D0 7F0DACA0 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F7D4 7F0DACA4 AFAF0048 */ sw $t7, 0x48($sp) +/* 10F7D8 7F0DACA8 0300B825 */ move $s7, $t8 +/* 10F7DC 7F0DACAC 330800A8 */ andi $t0, $t8, 0xa8 +/* 10F7E0 7F0DACB0 A3AA012B */ sb $t2, 0x12b($sp) +/* 10F7E4 7F0DACB4 030D7021 */ addu $t6, $t8, $t5 +/* 10F7E8 7F0DACB8 91D80000 */ lbu $t8, ($t6) +/* 10F7EC 7F0DACBC 01484825 */ or $t1, $t2, $t0 +/* 10F7F0 7F0DACC0 000F5980 */ sll $t3, $t7, 6 +/* 10F7F4 7F0DACC4 012B6025 */ or $t4, $t1, $t3 +/* 10F7F8 7F0DACC8 030C8825 */ or $s1, $t8, $t4 +/* 10F7FC 7F0DACCC 322F00FF */ andi $t7, $s1, 0xff +/* 10F800 7F0DACD0 10000631 */ b .L7F0DC598 +/* 10F804 7F0DACD4 01E08825 */ move $s1, $t7 +spectrum_op_CB_16: +/* 10F808 7F0DACD8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10F80C 7F0DACDC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10F810 7F0DACE0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10F814 7F0DACE4 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F818 7F0DACE8 25480007 */ addiu $t0, $t2, 7 +/* 10F81C 7F0DACEC AFA8028C */ sw $t0, 0x28c($sp) +/* 10F820 7F0DACF0 03295821 */ addu $t3, $t9, $t1 +/* 10F824 7F0DACF4 916D0000 */ lbu $t5, ($t3) +/* 10F828 7F0DACF8 322F0001 */ andi $t7, $s1, 1 +/* 10F82C 7F0DACFC 31AE00FF */ andi $t6, $t5, 0xff +/* 10F830 7F0DAD00 000E6040 */ sll $t4, $t6, 1 +/* 10F834 7F0DAD04 018F5025 */ or $t2, $t4, $t7 +/* 10F838 7F0DAD08 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10F83C 7F0DAD0C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10F840 7F0DAD10 000E49C3 */ sra $t1, $t6, 7 +/* 10F844 7F0DAD14 314800FF */ andi $t0, $t2, 0xff +/* 10F848 7F0DAD18 A3AD0139 */ sb $t5, 0x139($sp) +/* 10F84C 7F0DAD1C 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10F850 7F0DAD20 2D190001 */ sltiu $t9, $t0, 1 +/* 10F854 7F0DAD24 AFB90048 */ sw $t9, 0x48($sp) +/* 10F858 7F0DAD28 012DC025 */ or $t8, $t1, $t5 +/* 10F85C 7F0DAD2C A3AA0139 */ sb $t2, 0x139($sp) +/* 10F860 7F0DAD30 A3A9012A */ sb $t1, 0x12a($sp) +/* 10F864 7F0DAD34 010F5821 */ addu $t3, $t0, $t7 +/* 10F868 7F0DAD38 91690000 */ lbu $t1, ($t3) +/* 10F86C 7F0DAD3C 00197180 */ sll $t6, $t9, 6 +/* 10F870 7F0DAD40 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F874 7F0DAD44 030E6025 */ or $t4, $t8, $t6 +/* 10F878 7F0DAD48 012C8825 */ or $s1, $t1, $t4 +/* 10F87C 7F0DAD4C 322D00FF */ andi $t5, $s1, 0xff +/* 10F880 7F0DAD50 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10F884 7F0DAD54 14200007 */ bnez $at, .L7F0DAD74 +/* 10F888 7F0DAD58 01A08825 */ move $s1, $t5 +/* 10F88C 7F0DAD5C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10F890 7F0DAD60 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10F894 7F0DAD64 0140C025 */ move $t8, $t2 +/* 10F898 7F0DAD68 01D95021 */ addu $t2, $t6, $t9 +/* 10F89C 7F0DAD6C 1000060A */ b .L7F0DC598 +/* 10F8A0 7F0DAD70 A1580000 */ sb $t8, ($t2) +.L7F0DAD74: +/* 10F8A4 7F0DAD74 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F8A8 7F0DAD78 97B8013C */ lhu $t8, 0x13c($sp) +/* 10F8AC 7F0DAD7C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F8B0 7F0DAD80 29015800 */ slti $at, $t0, 0x5800 +/* 10F8B4 7F0DAD84 5420000D */ bnezl $at, .L7F0DADBC +/* 10F8B8 7F0DAD88 2B014000 */ slti $at, $t8, 0x4000 +/* 10F8BC 7F0DAD8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F8C0 7F0DAD90 93AF0139 */ lbu $t7, 0x139($sp) +/* 10F8C4 7F0DAD94 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10F8C8 7F0DAD98 01684821 */ addu $t1, $t3, $t0 +/* 10F8CC 7F0DAD9C A12F0000 */ sb $t7, ($t1) +/* 10F8D0 7F0DADA0 97AE013C */ lhu $t6, 0x13c($sp) +/* 10F8D4 7F0DADA4 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10F8D8 7F0DADA8 240C0001 */ li $t4, 1 +/* 10F8DC 7F0DADAC 01AEC821 */ addu $t9, $t5, $t6 +/* 10F8E0 7F0DADB0 100005F9 */ b .L7F0DC598 +/* 10F8E4 7F0DADB4 A32CA800 */ sb $t4, -0x5800($t9) +/* 10F8E8 7F0DADB8 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DADBC: +/* 10F8EC 7F0DADBC 142005F6 */ bnez $at, .L7F0DC598 +/* 10F8F0 7F0DADC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F8F4 7F0DADC4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F8F8 7F0DADC8 93AA0139 */ lbu $t2, 0x139($sp) +/* 10F8FC 7F0DADCC 240F0001 */ li $t7, 1 +/* 10F900 7F0DADD0 01784021 */ addu $t0, $t3, $t8 +/* 10F904 7F0DADD4 A10A0000 */ sb $t2, ($t0) +/* 10F908 7F0DADD8 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F90C 7F0DADDC 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10F910 7F0DADE0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10F914 7F0DADE4 312D1800 */ andi $t5, $t1, 0x1800 +/* 10F918 7F0DADE8 000D70C3 */ sra $t6, $t5, 3 +/* 10F91C 7F0DADEC 312C00FF */ andi $t4, $t1, 0xff +/* 10F920 7F0DADF0 01CCC825 */ or $t9, $t6, $t4 +/* 10F924 7F0DADF4 0179C021 */ addu $t8, $t3, $t9 +/* 10F928 7F0DADF8 100005E7 */ b .L7F0DC598 +/* 10F92C 7F0DADFC A30F0000 */ sb $t7, ($t8) +spectrum_op_CB_17: +/* 10F930 7F0DAE00 001061C3 */ sra $t4, $s0, 7 +/* 10F934 7F0DAE04 00104040 */ sll $t0, $s0, 1 +/* 10F938 7F0DAE08 322D0001 */ andi $t5, $s1, 1 +/* 10F93C 7F0DAE0C 010D8025 */ or $s0, $t0, $t5 +/* 10F940 7F0DAE10 320900FF */ andi $t1, $s0, 0xff +/* 10F944 7F0DAE14 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F948 7F0DAE18 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F94C 7F0DAE1C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F950 7F0DAE20 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F954 7F0DAE24 01208025 */ move $s0, $t1 +/* 10F958 7F0DAE28 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10F95C 7F0DAE2C A3AC0129 */ sb $t4, 0x129($sp) +/* 10F960 7F0DAE30 01286821 */ addu $t5, $t1, $t0 +/* 10F964 7F0DAE34 91A90000 */ lbu $t1, ($t5) +/* 10F968 7F0DAE38 018BC825 */ or $t9, $t4, $t3 +/* 10F96C 7F0DAE3C 000EC180 */ sll $t8, $t6, 6 +/* 10F970 7F0DAE40 03385025 */ or $t2, $t9, $t8 +/* 10F974 7F0DAE44 012A8825 */ or $s1, $t1, $t2 +/* 10F978 7F0DAE48 322E00FF */ andi $t6, $s1, 0xff +/* 10F97C 7F0DAE4C 100005D2 */ b .L7F0DC598 +/* 10F980 7F0DAE50 01C08825 */ move $s1, $t6 +spectrum_op_CB_18: +/* 10F984 7F0DAE54 32480001 */ andi $t0, $s2, 1 +/* 10F988 7F0DAE58 00125843 */ sra $t3, $s2, 1 +/* 10F98C 7F0DAE5C 001179C0 */ sll $t7, $s1, 7 +/* 10F990 7F0DAE60 016F9025 */ or $s2, $t3, $t7 +/* 10F994 7F0DAE64 325900FF */ andi $t9, $s2, 0xff +/* 10F998 7F0DAE68 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10F99C 7F0DAE6C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10F9A0 7F0DAE70 2F380001 */ sltiu $t8, $t9, 1 +/* 10F9A4 7F0DAE74 AFB80048 */ sw $t8, 0x48($sp) +/* 10F9A8 7F0DAE78 03209025 */ move $s2, $t9 +/* 10F9AC 7F0DAE7C 332D00A8 */ andi $t5, $t9, 0xa8 +/* 10F9B0 7F0DAE80 A3A80128 */ sb $t0, 0x128($sp) +/* 10F9B4 7F0DAE84 032B7821 */ addu $t7, $t9, $t3 +/* 10F9B8 7F0DAE88 91F90000 */ lbu $t9, ($t7) +/* 10F9BC 7F0DAE8C 010D4825 */ or $t1, $t0, $t5 +/* 10F9C0 7F0DAE90 00187180 */ sll $t6, $t8, 6 +/* 10F9C4 7F0DAE94 012E6025 */ or $t4, $t1, $t6 +/* 10F9C8 7F0DAE98 032C8825 */ or $s1, $t9, $t4 +/* 10F9CC 7F0DAE9C 323800FF */ andi $t8, $s1, 0xff +/* 10F9D0 7F0DAEA0 100005BD */ b .L7F0DC598 +/* 10F9D4 7F0DAEA4 03008825 */ move $s1, $t8 +spectrum_op_CB_19: +/* 10F9D8 7F0DAEA8 326B0001 */ andi $t3, $s3, 1 +/* 10F9DC 7F0DAEAC 00136843 */ sra $t5, $s3, 1 +/* 10F9E0 7F0DAEB0 001151C0 */ sll $t2, $s1, 7 +/* 10F9E4 7F0DAEB4 01AA9825 */ or $s3, $t5, $t2 +/* 10F9E8 7F0DAEB8 326900FF */ andi $t1, $s3, 0xff +/* 10F9EC 7F0DAEBC 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F9F0 7F0DAEC0 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F9F4 7F0DAEC4 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F9F8 7F0DAEC8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F9FC 7F0DAECC 01209825 */ move $s3, $t1 +/* 10FA00 7F0DAED0 312F00A8 */ andi $t7, $t1, 0xa8 +/* 10FA04 7F0DAED4 A3AB0127 */ sb $t3, 0x127($sp) +/* 10FA08 7F0DAED8 012D5021 */ addu $t2, $t1, $t5 +/* 10FA0C 7F0DAEDC 91490000 */ lbu $t1, ($t2) +/* 10FA10 7F0DAEE0 016FC825 */ or $t9, $t3, $t7 +/* 10FA14 7F0DAEE4 000EC180 */ sll $t8, $t6, 6 +/* 10FA18 7F0DAEE8 03384025 */ or $t0, $t9, $t8 +/* 10FA1C 7F0DAEEC 01288825 */ or $s1, $t1, $t0 +/* 10FA20 7F0DAEF0 322E00FF */ andi $t6, $s1, 0xff +/* 10FA24 7F0DAEF4 100005A8 */ b .L7F0DC598 +/* 10FA28 7F0DAEF8 01C08825 */ move $s1, $t6 +spectrum_op_CB_1A: +/* 10FA2C 7F0DAEFC 328D0001 */ andi $t5, $s4, 1 +/* 10FA30 7F0DAF00 00147843 */ sra $t7, $s4, 1 +/* 10FA34 7F0DAF04 001161C0 */ sll $t4, $s1, 7 +/* 10FA38 7F0DAF08 01ECA025 */ or $s4, $t7, $t4 +/* 10FA3C 7F0DAF0C 329900FF */ andi $t9, $s4, 0xff +/* 10FA40 7F0DAF10 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10FA44 7F0DAF14 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10FA48 7F0DAF18 2F380001 */ sltiu $t8, $t9, 1 +/* 10FA4C 7F0DAF1C AFB80048 */ sw $t8, 0x48($sp) +/* 10FA50 7F0DAF20 0320A025 */ move $s4, $t9 +/* 10FA54 7F0DAF24 332A00A8 */ andi $t2, $t9, 0xa8 +/* 10FA58 7F0DAF28 A3AD0126 */ sb $t5, 0x126($sp) +/* 10FA5C 7F0DAF2C 032F6021 */ addu $t4, $t9, $t7 +/* 10FA60 7F0DAF30 91990000 */ lbu $t9, ($t4) +/* 10FA64 7F0DAF34 01AA4825 */ or $t1, $t5, $t2 +/* 10FA68 7F0DAF38 00187180 */ sll $t6, $t8, 6 +/* 10FA6C 7F0DAF3C 012E5825 */ or $t3, $t1, $t6 +/* 10FA70 7F0DAF40 032B8825 */ or $s1, $t9, $t3 +/* 10FA74 7F0DAF44 323800FF */ andi $t8, $s1, 0xff +/* 10FA78 7F0DAF48 10000593 */ b .L7F0DC598 +/* 10FA7C 7F0DAF4C 03008825 */ move $s1, $t8 +spectrum_op_CB_1B: +/* 10FA80 7F0DAF50 32AF0001 */ andi $t7, $s5, 1 +/* 10FA84 7F0DAF54 00155043 */ sra $t2, $s5, 1 +/* 10FA88 7F0DAF58 001141C0 */ sll $t0, $s1, 7 +/* 10FA8C 7F0DAF5C 0148A825 */ or $s5, $t2, $t0 +/* 10FA90 7F0DAF60 32A900FF */ andi $t1, $s5, 0xff +/* 10FA94 7F0DAF64 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FA98 7F0DAF68 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FA9C 7F0DAF6C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10FAA0 7F0DAF70 AFAE0048 */ sw $t6, 0x48($sp) +/* 10FAA4 7F0DAF74 0120A825 */ move $s5, $t1 +/* 10FAA8 7F0DAF78 312C00A8 */ andi $t4, $t1, 0xa8 +/* 10FAAC 7F0DAF7C A3AF0125 */ sb $t7, 0x125($sp) +/* 10FAB0 7F0DAF80 012A4021 */ addu $t0, $t1, $t2 +/* 10FAB4 7F0DAF84 91090000 */ lbu $t1, ($t0) +/* 10FAB8 7F0DAF88 01ECC825 */ or $t9, $t7, $t4 +/* 10FABC 7F0DAF8C 000EC180 */ sll $t8, $t6, 6 +/* 10FAC0 7F0DAF90 03386825 */ or $t5, $t9, $t8 +/* 10FAC4 7F0DAF94 012D8825 */ or $s1, $t1, $t5 +/* 10FAC8 7F0DAF98 322E00FF */ andi $t6, $s1, 0xff +/* 10FACC 7F0DAF9C 1000057E */ b .L7F0DC598 +/* 10FAD0 7F0DAFA0 01C08825 */ move $s1, $t6 +spectrum_op_CB_1C: +/* 10FAD4 7F0DAFA4 32CA0001 */ andi $t2, $s6, 1 +/* 10FAD8 7F0DAFA8 00166043 */ sra $t4, $s6, 1 +/* 10FADC 7F0DAFAC 001159C0 */ sll $t3, $s1, 7 +/* 10FAE0 7F0DAFB0 018BB025 */ or $s6, $t4, $t3 +/* 10FAE4 7F0DAFB4 32D900FF */ andi $t9, $s6, 0xff +/* 10FAE8 7F0DAFB8 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10FAEC 7F0DAFBC 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10FAF0 7F0DAFC0 2F380001 */ sltiu $t8, $t9, 1 +/* 10FAF4 7F0DAFC4 AFB80048 */ sw $t8, 0x48($sp) +/* 10FAF8 7F0DAFC8 0320B025 */ move $s6, $t9 +/* 10FAFC 7F0DAFCC 332800A8 */ andi $t0, $t9, 0xa8 +/* 10FB00 7F0DAFD0 A3AA0124 */ sb $t2, 0x124($sp) +/* 10FB04 7F0DAFD4 032C5821 */ addu $t3, $t9, $t4 +/* 10FB08 7F0DAFD8 91790000 */ lbu $t9, ($t3) +/* 10FB0C 7F0DAFDC 01484825 */ or $t1, $t2, $t0 +/* 10FB10 7F0DAFE0 00187180 */ sll $t6, $t8, 6 +/* 10FB14 7F0DAFE4 012E7825 */ or $t7, $t1, $t6 +/* 10FB18 7F0DAFE8 032F8825 */ or $s1, $t9, $t7 +/* 10FB1C 7F0DAFEC 323800FF */ andi $t8, $s1, 0xff +/* 10FB20 7F0DAFF0 10000569 */ b .L7F0DC598 +/* 10FB24 7F0DAFF4 03008825 */ move $s1, $t8 +spectrum_op_CB_1D: +/* 10FB28 7F0DAFF8 32EC0001 */ andi $t4, $s7, 1 +/* 10FB2C 7F0DAFFC 00174043 */ sra $t0, $s7, 1 +/* 10FB30 7F0DB000 001169C0 */ sll $t5, $s1, 7 +/* 10FB34 7F0DB004 010DB825 */ or $s7, $t0, $t5 +/* 10FB38 7F0DB008 32E900FF */ andi $t1, $s7, 0xff +/* 10FB3C 7F0DB00C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10FB40 7F0DB010 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10FB44 7F0DB014 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10FB48 7F0DB018 AFAE0048 */ sw $t6, 0x48($sp) +/* 10FB4C 7F0DB01C 0120B825 */ move $s7, $t1 +/* 10FB50 7F0DB020 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10FB54 7F0DB024 A3AC0123 */ sb $t4, 0x123($sp) +/* 10FB58 7F0DB028 01286821 */ addu $t5, $t1, $t0 +/* 10FB5C 7F0DB02C 91A90000 */ lbu $t1, ($t5) +/* 10FB60 7F0DB030 018BC825 */ or $t9, $t4, $t3 +/* 10FB64 7F0DB034 000EC180 */ sll $t8, $t6, 6 +/* 10FB68 7F0DB038 03385025 */ or $t2, $t9, $t8 +/* 10FB6C 7F0DB03C 012A8825 */ or $s1, $t1, $t2 +/* 10FB70 7F0DB040 322E00FF */ andi $t6, $s1, 0xff +/* 10FB74 7F0DB044 10000554 */ b .L7F0DC598 +/* 10FB78 7F0DB048 01C08825 */ move $s1, $t6 +spectrum_op_CB_1E: +/* 10FB7C 7F0DB04C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10FB80 7F0DB050 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10FB84 7F0DB054 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10FB88 7F0DB058 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FB8C 7F0DB05C 258B0007 */ addiu $t3, $t4, 7 +/* 10FB90 7F0DB060 AFAB028C */ sw $t3, 0x28c($sp) +/* 10FB94 7F0DB064 01F9C021 */ addu $t8, $t7, $t9 +/* 10FB98 7F0DB068 93080000 */ lbu $t0, ($t8) +/* 10FB9C 7F0DB06C 001171C0 */ sll $t6, $s1, 7 +/* 10FBA0 7F0DB070 310D00FF */ andi $t5, $t0, 0xff +/* 10FBA4 7F0DB074 000D5043 */ sra $t2, $t5, 1 +/* 10FBA8 7F0DB078 014E6025 */ or $t4, $t2, $t6 +/* 10FBAC 7F0DB07C 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10FBB0 7F0DB080 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10FBB4 7F0DB084 31B90001 */ andi $t9, $t5, 1 +/* 10FBB8 7F0DB088 318B00FF */ andi $t3, $t4, 0xff +/* 10FBBC 7F0DB08C A3A80139 */ sb $t0, 0x139($sp) +/* 10FBC0 7F0DB090 318800A8 */ andi $t0, $t4, 0xa8 +/* 10FBC4 7F0DB094 2D6F0001 */ sltiu $t7, $t3, 1 +/* 10FBC8 7F0DB098 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FBCC 7F0DB09C 03284825 */ or $t1, $t9, $t0 +/* 10FBD0 7F0DB0A0 A3AC0139 */ sb $t4, 0x139($sp) +/* 10FBD4 7F0DB0A4 A3B90122 */ sb $t9, 0x122($sp) +/* 10FBD8 7F0DB0A8 016EC021 */ addu $t8, $t3, $t6 +/* 10FBDC 7F0DB0AC 93190000 */ lbu $t9, ($t8) +/* 10FBE0 7F0DB0B0 000F6980 */ sll $t5, $t7, 6 +/* 10FBE4 7F0DB0B4 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FBE8 7F0DB0B8 012D5025 */ or $t2, $t1, $t5 +/* 10FBEC 7F0DB0BC 032A8825 */ or $s1, $t9, $t2 +/* 10FBF0 7F0DB0C0 322800FF */ andi $t0, $s1, 0xff +/* 10FBF4 7F0DB0C4 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10FBF8 7F0DB0C8 14200007 */ bnez $at, .L7F0DB0E8 +/* 10FBFC 7F0DB0CC 01008825 */ move $s1, $t0 +/* 10FC00 7F0DB0D0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10FC04 7F0DB0D4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10FC08 7F0DB0D8 01804825 */ move $t1, $t4 +/* 10FC0C 7F0DB0DC 01AF6021 */ addu $t4, $t5, $t7 +/* 10FC10 7F0DB0E0 1000052D */ b .L7F0DC598 +/* 10FC14 7F0DB0E4 A1890000 */ sb $t1, ($t4) +.L7F0DB0E8: +/* 10FC18 7F0DB0E8 97AB013C */ lhu $t3, 0x13c($sp) +/* 10FC1C 7F0DB0EC 97A9013C */ lhu $t1, 0x13c($sp) +/* 10FC20 7F0DB0F0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10FC24 7F0DB0F4 29615800 */ slti $at, $t3, 0x5800 +/* 10FC28 7F0DB0F8 5420000D */ bnezl $at, .L7F0DB130 +/* 10FC2C 7F0DB0FC 29214000 */ slti $at, $t1, 0x4000 +/* 10FC30 7F0DB100 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10FC34 7F0DB104 93AE0139 */ lbu $t6, 0x139($sp) +/* 10FC38 7F0DB108 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10FC3C 7F0DB10C 030BC821 */ addu $t9, $t8, $t3 +/* 10FC40 7F0DB110 A32E0000 */ sb $t6, ($t9) +/* 10FC44 7F0DB114 97AD013C */ lhu $t5, 0x13c($sp) +/* 10FC48 7F0DB118 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10FC4C 7F0DB11C 240A0001 */ li $t2, 1 +/* 10FC50 7F0DB120 010D7821 */ addu $t7, $t0, $t5 +/* 10FC54 7F0DB124 1000051C */ b .L7F0DC598 +/* 10FC58 7F0DB128 A1EAA800 */ sb $t2, -0x5800($t7) +/* 10FC5C 7F0DB12C 29214000 */ slti $at, $t1, 0x4000 +.L7F0DB130: +/* 10FC60 7F0DB130 14200519 */ bnez $at, .L7F0DC598 +/* 10FC64 7F0DB134 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10FC68 7F0DB138 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10FC6C 7F0DB13C 93AC0139 */ lbu $t4, 0x139($sp) +/* 10FC70 7F0DB140 240E0001 */ li $t6, 1 +/* 10FC74 7F0DB144 03095821 */ addu $t3, $t8, $t1 +/* 10FC78 7F0DB148 A16C0000 */ sb $t4, ($t3) +/* 10FC7C 7F0DB14C 97B9013C */ lhu $t9, 0x13c($sp) +/* 10FC80 7F0DB150 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10FC84 7F0DB154 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10FC88 7F0DB158 33281800 */ andi $t0, $t9, 0x1800 +/* 10FC8C 7F0DB15C 000868C3 */ sra $t5, $t0, 3 +/* 10FC90 7F0DB160 332A00FF */ andi $t2, $t9, 0xff +/* 10FC94 7F0DB164 01AA7825 */ or $t7, $t5, $t2 +/* 10FC98 7F0DB168 030F4821 */ addu $t1, $t8, $t7 +/* 10FC9C 7F0DB16C 1000050A */ b .L7F0DC598 +/* 10FCA0 7F0DB170 A12E0000 */ sb $t6, ($t1) +spectrum_op_CB_1F: +/* 10FCA4 7F0DB174 320A0001 */ andi $t2, $s0, 1 +/* 10FCA8 7F0DB178 00105843 */ sra $t3, $s0, 1 +/* 10FCAC 7F0DB17C 001141C0 */ sll $t0, $s1, 7 +/* 10FCB0 7F0DB180 01688025 */ or $s0, $t3, $t0 +/* 10FCB4 7F0DB184 321900FF */ andi $t9, $s0, 0xff +/* 10FCB8 7F0DB188 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10FCBC 7F0DB18C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10FCC0 7F0DB190 2F2D0001 */ sltiu $t5, $t9, 1 +/* 10FCC4 7F0DB194 AFAD0048 */ sw $t5, 0x48($sp) +/* 10FCC8 7F0DB198 03208025 */ move $s0, $t9 +/* 10FCCC 7F0DB19C 333800A8 */ andi $t8, $t9, 0xa8 +/* 10FCD0 7F0DB1A0 A3AA0121 */ sb $t2, 0x121($sp) +/* 10FCD4 7F0DB1A4 032B4021 */ addu $t0, $t9, $t3 +/* 10FCD8 7F0DB1A8 91190000 */ lbu $t9, ($t0) +/* 10FCDC 7F0DB1AC 01587825 */ or $t7, $t2, $t8 +/* 10FCE0 7F0DB1B0 000D4980 */ sll $t1, $t5, 6 +/* 10FCE4 7F0DB1B4 01E96025 */ or $t4, $t7, $t1 +/* 10FCE8 7F0DB1B8 032C8825 */ or $s1, $t9, $t4 +/* 10FCEC 7F0DB1BC 322D00FF */ andi $t5, $s1, 0xff +/* 10FCF0 7F0DB1C0 100004F5 */ b .L7F0DC598 +/* 10FCF4 7F0DB1C4 01A08825 */ move $s1, $t5 +spectrum_op_CB_20: +/* 10FCF8 7F0DB1C8 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FCFC 7F0DB1CC 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FD00 7F0DB1D0 001249C3 */ sra $t1, $s2, 7 +/* 10FD04 7F0DB1D4 0012C040 */ sll $t8, $s2, 1 +/* 10FD08 7F0DB1D8 331200FF */ andi $s2, $t8, 0xff +/* 10FD0C 7F0DB1DC 2E4F0001 */ sltiu $t7, $s2, 1 +/* 10FD10 7F0DB1E0 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FD14 7F0DB1E4 A3A90120 */ sb $t1, 0x120($sp) +/* 10FD18 7F0DB1E8 024AC021 */ addu $t8, $s2, $t2 +/* 10FD1C 7F0DB1EC 930E0000 */ lbu $t6, ($t8) +/* 10FD20 7F0DB1F0 324B00A8 */ andi $t3, $s2, 0xa8 +/* 10FD24 7F0DB1F4 012B4025 */ or $t0, $t1, $t3 +/* 10FD28 7F0DB1F8 000F6180 */ sll $t4, $t7, 6 +/* 10FD2C 7F0DB1FC 010C6825 */ or $t5, $t0, $t4 +/* 10FD30 7F0DB200 01CD8825 */ or $s1, $t6, $t5 +/* 10FD34 7F0DB204 322F00FF */ andi $t7, $s1, 0xff +/* 10FD38 7F0DB208 100004E3 */ b .L7F0DC598 +/* 10FD3C 7F0DB20C 01E08825 */ move $s1, $t7 +spectrum_op_CB_21: +/* 10FD40 7F0DB210 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10FD44 7F0DB214 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10FD48 7F0DB218 001361C3 */ sra $t4, $s3, 7 +/* 10FD4C 7F0DB21C 00135840 */ sll $t3, $s3, 1 +/* 10FD50 7F0DB220 317300FF */ andi $s3, $t3, 0xff +/* 10FD54 7F0DB224 2E680001 */ sltiu $t0, $s3, 1 +/* 10FD58 7F0DB228 AFA80048 */ sw $t0, 0x48($sp) +/* 10FD5C 7F0DB22C A3AC011F */ sb $t4, 0x11f($sp) +/* 10FD60 7F0DB230 02695821 */ addu $t3, $s3, $t1 +/* 10FD64 7F0DB234 91790000 */ lbu $t9, ($t3) +/* 10FD68 7F0DB238 326A00A8 */ andi $t2, $s3, 0xa8 +/* 10FD6C 7F0DB23C 018AC025 */ or $t8, $t4, $t2 +/* 10FD70 7F0DB240 00086980 */ sll $t5, $t0, 6 +/* 10FD74 7F0DB244 030D7825 */ or $t7, $t8, $t5 +/* 10FD78 7F0DB248 032F8825 */ or $s1, $t9, $t7 +/* 10FD7C 7F0DB24C 322800FF */ andi $t0, $s1, 0xff +/* 10FD80 7F0DB250 100004D1 */ b .L7F0DC598 +/* 10FD84 7F0DB254 01008825 */ move $s1, $t0 +spectrum_op_CB_22: +/* 10FD88 7F0DB258 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10FD8C 7F0DB25C 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10FD90 7F0DB260 001469C3 */ sra $t5, $s4, 7 +/* 10FD94 7F0DB264 00145040 */ sll $t2, $s4, 1 +/* 10FD98 7F0DB268 315400FF */ andi $s4, $t2, 0xff +/* 10FD9C 7F0DB26C 2E980001 */ sltiu $t8, $s4, 1 +/* 10FDA0 7F0DB270 AFB80048 */ sw $t8, 0x48($sp) +/* 10FDA4 7F0DB274 A3AD011E */ sb $t5, 0x11e($sp) +/* 10FDA8 7F0DB278 028C5021 */ addu $t2, $s4, $t4 +/* 10FDAC 7F0DB27C 914E0000 */ lbu $t6, ($t2) +/* 10FDB0 7F0DB280 328900A8 */ andi $t1, $s4, 0xa8 +/* 10FDB4 7F0DB284 01A95825 */ or $t3, $t5, $t1 +/* 10FDB8 7F0DB288 00187980 */ sll $t7, $t8, 6 +/* 10FDBC 7F0DB28C 016F4025 */ or $t0, $t3, $t7 +/* 10FDC0 7F0DB290 01C88825 */ or $s1, $t6, $t0 +/* 10FDC4 7F0DB294 323800FF */ andi $t8, $s1, 0xff +/* 10FDC8 7F0DB298 100004BF */ b .L7F0DC598 +/* 10FDCC 7F0DB29C 03008825 */ move $s1, $t8 +spectrum_op_CB_23: +/* 10FDD0 7F0DB2A0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10FDD4 7F0DB2A4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10FDD8 7F0DB2A8 001579C3 */ sra $t7, $s5, 7 +/* 10FDDC 7F0DB2AC 00154840 */ sll $t1, $s5, 1 +/* 10FDE0 7F0DB2B0 313500FF */ andi $s5, $t1, 0xff +/* 10FDE4 7F0DB2B4 2EAB0001 */ sltiu $t3, $s5, 1 +/* 10FDE8 7F0DB2B8 AFAB0048 */ sw $t3, 0x48($sp) +/* 10FDEC 7F0DB2BC A3AF011D */ sb $t7, 0x11d($sp) +/* 10FDF0 7F0DB2C0 02AD4821 */ addu $t1, $s5, $t5 +/* 10FDF4 7F0DB2C4 91390000 */ lbu $t9, ($t1) +/* 10FDF8 7F0DB2C8 32AC00A8 */ andi $t4, $s5, 0xa8 +/* 10FDFC 7F0DB2CC 01EC5025 */ or $t2, $t7, $t4 +/* 10FE00 7F0DB2D0 000B4180 */ sll $t0, $t3, 6 +/* 10FE04 7F0DB2D4 0148C025 */ or $t8, $t2, $t0 +/* 10FE08 7F0DB2D8 03388825 */ or $s1, $t9, $t8 +/* 10FE0C 7F0DB2DC 322B00FF */ andi $t3, $s1, 0xff +/* 10FE10 7F0DB2E0 100004AD */ b .L7F0DC598 +/* 10FE14 7F0DB2E4 01608825 */ move $s1, $t3 +spectrum_op_CB_24: +/* 10FE18 7F0DB2E8 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10FE1C 7F0DB2EC 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10FE20 7F0DB2F0 001641C3 */ sra $t0, $s6, 7 +/* 10FE24 7F0DB2F4 00166040 */ sll $t4, $s6, 1 +/* 10FE28 7F0DB2F8 319600FF */ andi $s6, $t4, 0xff +/* 10FE2C 7F0DB2FC 2ECA0001 */ sltiu $t2, $s6, 1 +/* 10FE30 7F0DB300 AFAA0048 */ sw $t2, 0x48($sp) +/* 10FE34 7F0DB304 A3A8011C */ sb $t0, 0x11c($sp) +/* 10FE38 7F0DB308 02CF6021 */ addu $t4, $s6, $t7 +/* 10FE3C 7F0DB30C 918E0000 */ lbu $t6, ($t4) +/* 10FE40 7F0DB310 32CD00A8 */ andi $t5, $s6, 0xa8 +/* 10FE44 7F0DB314 010D4825 */ or $t1, $t0, $t5 +/* 10FE48 7F0DB318 000AC180 */ sll $t8, $t2, 6 +/* 10FE4C 7F0DB31C 01385825 */ or $t3, $t1, $t8 +/* 10FE50 7F0DB320 01CB8825 */ or $s1, $t6, $t3 +/* 10FE54 7F0DB324 322A00FF */ andi $t2, $s1, 0xff +/* 10FE58 7F0DB328 1000049B */ b .L7F0DC598 +/* 10FE5C 7F0DB32C 01408825 */ move $s1, $t2 +spectrum_op_CB_25: +/* 10FE60 7F0DB330 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10FE64 7F0DB334 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10FE68 7F0DB338 0017C1C3 */ sra $t8, $s7, 7 +/* 10FE6C 7F0DB33C 00176840 */ sll $t5, $s7, 1 +/* 10FE70 7F0DB340 31B700FF */ andi $s7, $t5, 0xff +/* 10FE74 7F0DB344 2EE90001 */ sltiu $t1, $s7, 1 +/* 10FE78 7F0DB348 AFA90048 */ sw $t1, 0x48($sp) +/* 10FE7C 7F0DB34C A3B8011B */ sb $t8, 0x11b($sp) +/* 10FE80 7F0DB350 02E86821 */ addu $t5, $s7, $t0 +/* 10FE84 7F0DB354 91B90000 */ lbu $t9, ($t5) +/* 10FE88 7F0DB358 32EF00A8 */ andi $t7, $s7, 0xa8 +/* 10FE8C 7F0DB35C 030F6025 */ or $t4, $t8, $t7 +/* 10FE90 7F0DB360 00095980 */ sll $t3, $t1, 6 +/* 10FE94 7F0DB364 018B5025 */ or $t2, $t4, $t3 +/* 10FE98 7F0DB368 032A8825 */ or $s1, $t9, $t2 +/* 10FE9C 7F0DB36C 322900FF */ andi $t1, $s1, 0xff +/* 10FEA0 7F0DB370 10000489 */ b .L7F0DC598 +/* 10FEA4 7F0DB374 01208825 */ move $s1, $t1 +spectrum_op_CB_26: +/* 10FEA8 7F0DB378 8FB8028C */ lw $t8, 0x28c($sp) +/* 10FEAC 7F0DB37C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10FEB0 7F0DB380 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10FEB4 7F0DB384 97AE013C */ lhu $t6, 0x13c($sp) +/* 10FEB8 7F0DB388 270F0007 */ addiu $t7, $t8, 7 +/* 10FEBC 7F0DB38C AFAF028C */ sw $t7, 0x28c($sp) +/* 10FEC0 7F0DB390 01CC5821 */ addu $t3, $t6, $t4 +/* 10FEC4 7F0DB394 91680000 */ lbu $t0, ($t3) +/* 10FEC8 7F0DB398 310D00FF */ andi $t5, $t0, 0xff +/* 10FECC 7F0DB39C 000D79C3 */ sra $t7, $t5, 7 +/* 10FED0 7F0DB3A0 000D5040 */ sll $t2, $t5, 1 +/* 10FED4 7F0DB3A4 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10FED8 7F0DB3A8 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10FEDC 7F0DB3AC 314900FF */ andi $t1, $t2, 0xff +/* 10FEE0 7F0DB3B0 A3A80139 */ sb $t0, 0x139($sp) +/* 10FEE4 7F0DB3B4 2D380001 */ sltiu $t8, $t1, 1 +/* 10FEE8 7F0DB3B8 314C00A8 */ andi $t4, $t2, 0xa8 +/* 10FEEC 7F0DB3BC 01EC5825 */ or $t3, $t7, $t4 +/* 10FEF0 7F0DB3C0 AFB80048 */ sw $t8, 0x48($sp) +/* 10FEF4 7F0DB3C4 A3AA0139 */ sb $t2, 0x139($sp) +/* 10FEF8 7F0DB3C8 A3AF011A */ sb $t7, 0x11a($sp) +/* 10FEFC 7F0DB3CC 012D7021 */ addu $t6, $t1, $t5 +/* 10FF00 7F0DB3D0 91CF0000 */ lbu $t7, ($t6) +/* 10FF04 7F0DB3D4 00184180 */ sll $t0, $t8, 6 +/* 10FF08 7F0DB3D8 97B8013C */ lhu $t8, 0x13c($sp) +/* 10FF0C 7F0DB3DC 0168C825 */ or $t9, $t3, $t0 +/* 10FF10 7F0DB3E0 01F98825 */ or $s1, $t7, $t9 +/* 10FF14 7F0DB3E4 322C00FF */ andi $t4, $s1, 0xff +/* 10FF18 7F0DB3E8 2B015B00 */ slti $at, $t8, 0x5b00 +/* 10FF1C 7F0DB3EC 14200007 */ bnez $at, .L7F0DB40C +/* 10FF20 7F0DB3F0 01808825 */ move $s1, $t4 +/* 10FF24 7F0DB3F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10FF28 7F0DB3F8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10FF2C 7F0DB3FC 01405825 */ move $t3, $t2 +/* 10FF30 7F0DB400 01185021 */ addu $t2, $t0, $t8 +/* 10FF34 7F0DB404 10000464 */ b .L7F0DC598 +/* 10FF38 7F0DB408 A14B0000 */ sb $t3, ($t2) +.L7F0DB40C: +/* 10FF3C 7F0DB40C 97A9013C */ lhu $t1, 0x13c($sp) +/* 10FF40 7F0DB410 97AB013C */ lhu $t3, 0x13c($sp) +/* 10FF44 7F0DB414 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10FF48 7F0DB418 29215800 */ slti $at, $t1, 0x5800 +/* 10FF4C 7F0DB41C 5420000D */ bnezl $at, .L7F0DB454 +/* 10FF50 7F0DB420 29614000 */ slti $at, $t3, 0x4000 +/* 10FF54 7F0DB424 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10FF58 7F0DB428 93AD0139 */ lbu $t5, 0x139($sp) +/* 10FF5C 7F0DB42C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10FF60 7F0DB430 01C97821 */ addu $t7, $t6, $t1 +/* 10FF64 7F0DB434 A1ED0000 */ sb $t5, ($t7) +/* 10FF68 7F0DB438 97A8013C */ lhu $t0, 0x13c($sp) +/* 10FF6C 7F0DB43C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10FF70 7F0DB440 24190001 */ li $t9, 1 +/* 10FF74 7F0DB444 0188C021 */ addu $t8, $t4, $t0 +/* 10FF78 7F0DB448 10000453 */ b .L7F0DC598 +/* 10FF7C 7F0DB44C A319A800 */ sb $t9, -0x5800($t8) +/* 10FF80 7F0DB450 29614000 */ slti $at, $t3, 0x4000 +.L7F0DB454: +/* 10FF84 7F0DB454 14200450 */ bnez $at, .L7F0DC598 +/* 10FF88 7F0DB458 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10FF8C 7F0DB45C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10FF90 7F0DB460 93AA0139 */ lbu $t2, 0x139($sp) +/* 10FF94 7F0DB464 240D0001 */ li $t5, 1 +/* 10FF98 7F0DB468 01CB4821 */ addu $t1, $t6, $t3 +/* 10FF9C 7F0DB46C A12A0000 */ sb $t2, ($t1) +/* 10FFA0 7F0DB470 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FFA4 7F0DB474 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10FFA8 7F0DB478 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10FFAC 7F0DB47C 31EC1800 */ andi $t4, $t7, 0x1800 +/* 10FFB0 7F0DB480 000C40C3 */ sra $t0, $t4, 3 +/* 10FFB4 7F0DB484 31F900FF */ andi $t9, $t7, 0xff +/* 10FFB8 7F0DB488 0119C025 */ or $t8, $t0, $t9 +/* 10FFBC 7F0DB48C 01D85821 */ addu $t3, $t6, $t8 +/* 10FFC0 7F0DB490 10000441 */ b .L7F0DC598 +/* 10FFC4 7F0DB494 A16D0000 */ sb $t5, ($t3) +spectrum_op_CB_27: +/* 10FFC8 7F0DB498 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FFCC 7F0DB49C 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FFD0 7F0DB4A0 001041C3 */ sra $t0, $s0, 7 +/* 10FFD4 7F0DB4A4 00104840 */ sll $t1, $s0, 1 +/* 10FFD8 7F0DB4A8 313000FF */ andi $s0, $t1, 0xff +/* 10FFDC 7F0DB4AC 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10FFE0 7F0DB4B0 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FFE4 7F0DB4B4 A3A80119 */ sb $t0, 0x119($sp) +/* 10FFE8 7F0DB4B8 020A4821 */ addu $t1, $s0, $t2 +/* 10FFEC 7F0DB4BC 912C0000 */ lbu $t4, ($t1) +/* 10FFF0 7F0DB4C0 321900A8 */ andi $t9, $s0, 0xa8 +/* 10FFF4 7F0DB4C4 01197025 */ or $t6, $t0, $t9 +/* 10FFF8 7F0DB4C8 000F6980 */ sll $t5, $t7, 6 +/* 10FFFC 7F0DB4CC 01CD5825 */ or $t3, $t6, $t5 +/* 110000 7F0DB4D0 018B8825 */ or $s1, $t4, $t3 +/* 110004 7F0DB4D4 322F00FF */ andi $t7, $s1, 0xff +/* 110008 7F0DB4D8 1000042F */ b .L7F0DC598 +/* 11000C 7F0DB4DC 01E08825 */ move $s1, $t7 +spectrum_op_CB_28: +/* 110010 7F0DB4E0 0012CE00 */ sll $t9, $s2, 0x18 +/* 110014 7F0DB4E4 0019C603 */ sra $t8, $t9, 0x18 +/* 110018 7F0DB4E8 00187043 */ sra $t6, $t8, 1 +/* 11001C 7F0DB4EC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 110020 7F0DB4F0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110024 7F0DB4F4 32490001 */ andi $t1, $s2, 1 +/* 110028 7F0DB4F8 31D200FF */ andi $s2, $t6, 0xff +/* 11002C 7F0DB4FC 2E4A0001 */ sltiu $t2, $s2, 1 +/* 110030 7F0DB500 AFAA0048 */ sw $t2, 0x48($sp) +/* 110034 7F0DB504 A3A90118 */ sb $t1, 0x118($sp) +/* 110038 7F0DB508 02587021 */ addu $t6, $s2, $t8 +/* 11003C 7F0DB50C 91CD0000 */ lbu $t5, ($t6) +/* 110040 7F0DB510 324C00A8 */ andi $t4, $s2, 0xa8 +/* 110044 7F0DB514 012C5825 */ or $t3, $t1, $t4 +/* 110048 7F0DB518 000A4180 */ sll $t0, $t2, 6 +/* 11004C 7F0DB51C 0168C825 */ or $t9, $t3, $t0 +/* 110050 7F0DB520 01B98825 */ or $s1, $t5, $t9 +/* 110054 7F0DB524 322A00FF */ andi $t2, $s1, 0xff +/* 110058 7F0DB528 1000041B */ b .L7F0DC598 +/* 11005C 7F0DB52C 01408825 */ move $s1, $t2 +spectrum_op_CB_29: +/* 110060 7F0DB530 00136600 */ sll $t4, $s3, 0x18 +/* 110064 7F0DB534 000C7E03 */ sra $t7, $t4, 0x18 +/* 110068 7F0DB538 000F5843 */ sra $t3, $t7, 1 +/* 11006C 7F0DB53C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110070 7F0DB540 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110074 7F0DB544 326E0001 */ andi $t6, $s3, 1 +/* 110078 7F0DB548 317300FF */ andi $s3, $t3, 0xff +/* 11007C 7F0DB54C 2E780001 */ sltiu $t8, $s3, 1 +/* 110080 7F0DB550 AFB80048 */ sw $t8, 0x48($sp) +/* 110084 7F0DB554 A3AE0117 */ sb $t6, 0x117($sp) +/* 110088 7F0DB558 026F5821 */ addu $t3, $s3, $t7 +/* 11008C 7F0DB55C 91680000 */ lbu $t0, ($t3) +/* 110090 7F0DB560 326D00A8 */ andi $t5, $s3, 0xa8 +/* 110094 7F0DB564 01CDC825 */ or $t9, $t6, $t5 +/* 110098 7F0DB568 00184980 */ sll $t1, $t8, 6 +/* 11009C 7F0DB56C 03296025 */ or $t4, $t9, $t1 +/* 1100A0 7F0DB570 010C8825 */ or $s1, $t0, $t4 +/* 1100A4 7F0DB574 323800FF */ andi $t8, $s1, 0xff +/* 1100A8 7F0DB578 10000407 */ b .L7F0DC598 +/* 1100AC 7F0DB57C 03008825 */ move $s1, $t8 +spectrum_op_CB_2A: +/* 1100B0 7F0DB580 00146E00 */ sll $t5, $s4, 0x18 +/* 1100B4 7F0DB584 000D5603 */ sra $t2, $t5, 0x18 +/* 1100B8 7F0DB588 000AC843 */ sra $t9, $t2, 1 +/* 1100BC 7F0DB58C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 1100C0 7F0DB590 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 1100C4 7F0DB594 328B0001 */ andi $t3, $s4, 1 +/* 1100C8 7F0DB598 333400FF */ andi $s4, $t9, 0xff +/* 1100CC 7F0DB59C 2E8F0001 */ sltiu $t7, $s4, 1 +/* 1100D0 7F0DB5A0 AFAF0048 */ sw $t7, 0x48($sp) +/* 1100D4 7F0DB5A4 A3AB0116 */ sb $t3, 0x116($sp) +/* 1100D8 7F0DB5A8 028AC821 */ addu $t9, $s4, $t2 +/* 1100DC 7F0DB5AC 93290000 */ lbu $t1, ($t9) +/* 1100E0 7F0DB5B0 328800A8 */ andi $t0, $s4, 0xa8 +/* 1100E4 7F0DB5B4 01686025 */ or $t4, $t3, $t0 +/* 1100E8 7F0DB5B8 000F7180 */ sll $t6, $t7, 6 +/* 1100EC 7F0DB5BC 018E6825 */ or $t5, $t4, $t6 +/* 1100F0 7F0DB5C0 012D8825 */ or $s1, $t1, $t5 +/* 1100F4 7F0DB5C4 322F00FF */ andi $t7, $s1, 0xff +/* 1100F8 7F0DB5C8 100003F3 */ b .L7F0DC598 +/* 1100FC 7F0DB5CC 01E08825 */ move $s1, $t7 +spectrum_op_CB_2B: +/* 110100 7F0DB5D0 00154600 */ sll $t0, $s5, 0x18 +/* 110104 7F0DB5D4 0008C603 */ sra $t8, $t0, 0x18 +/* 110108 7F0DB5D8 00186043 */ sra $t4, $t8, 1 +/* 11010C 7F0DB5DC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 110110 7F0DB5E0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110114 7F0DB5E4 32B90001 */ andi $t9, $s5, 1 +/* 110118 7F0DB5E8 319500FF */ andi $s5, $t4, 0xff +/* 11011C 7F0DB5EC 2EAA0001 */ sltiu $t2, $s5, 1 +/* 110120 7F0DB5F0 AFAA0048 */ sw $t2, 0x48($sp) +/* 110124 7F0DB5F4 A3B90115 */ sb $t9, 0x115($sp) +/* 110128 7F0DB5F8 02B86021 */ addu $t4, $s5, $t8 +/* 11012C 7F0DB5FC 918E0000 */ lbu $t6, ($t4) +/* 110130 7F0DB600 32A900A8 */ andi $t1, $s5, 0xa8 +/* 110134 7F0DB604 03296825 */ or $t5, $t9, $t1 +/* 110138 7F0DB608 000A5980 */ sll $t3, $t2, 6 +/* 11013C 7F0DB60C 01AB4025 */ or $t0, $t5, $t3 +/* 110140 7F0DB610 01C88825 */ or $s1, $t6, $t0 +/* 110144 7F0DB614 322A00FF */ andi $t2, $s1, 0xff +/* 110148 7F0DB618 100003DF */ b .L7F0DC598 +/* 11014C 7F0DB61C 01408825 */ move $s1, $t2 +spectrum_op_CB_2C: +/* 110150 7F0DB620 00164E00 */ sll $t1, $s6, 0x18 +/* 110154 7F0DB624 00097E03 */ sra $t7, $t1, 0x18 +/* 110158 7F0DB628 000F6843 */ sra $t5, $t7, 1 +/* 11015C 7F0DB62C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110160 7F0DB630 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110164 7F0DB634 32CC0001 */ andi $t4, $s6, 1 +/* 110168 7F0DB638 31B600FF */ andi $s6, $t5, 0xff +/* 11016C 7F0DB63C 2ED80001 */ sltiu $t8, $s6, 1 +/* 110170 7F0DB640 AFB80048 */ sw $t8, 0x48($sp) +/* 110174 7F0DB644 A3AC0114 */ sb $t4, 0x114($sp) +/* 110178 7F0DB648 02CF6821 */ addu $t5, $s6, $t7 +/* 11017C 7F0DB64C 91AB0000 */ lbu $t3, ($t5) +/* 110180 7F0DB650 32CE00A8 */ andi $t6, $s6, 0xa8 +/* 110184 7F0DB654 018E4025 */ or $t0, $t4, $t6 +/* 110188 7F0DB658 0018C980 */ sll $t9, $t8, 6 +/* 11018C 7F0DB65C 01194825 */ or $t1, $t0, $t9 +/* 110190 7F0DB660 01698825 */ or $s1, $t3, $t1 +/* 110194 7F0DB664 323800FF */ andi $t8, $s1, 0xff +/* 110198 7F0DB668 100003CB */ b .L7F0DC598 +/* 11019C 7F0DB66C 03008825 */ move $s1, $t8 +spectrum_op_CB_2D: +/* 1101A0 7F0DB670 00177600 */ sll $t6, $s7, 0x18 +/* 1101A4 7F0DB674 000E5603 */ sra $t2, $t6, 0x18 +/* 1101A8 7F0DB678 000A4043 */ sra $t0, $t2, 1 +/* 1101AC 7F0DB67C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 1101B0 7F0DB680 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 1101B4 7F0DB684 32ED0001 */ andi $t5, $s7, 1 +/* 1101B8 7F0DB688 311700FF */ andi $s7, $t0, 0xff +/* 1101BC 7F0DB68C 2EEF0001 */ sltiu $t7, $s7, 1 +/* 1101C0 7F0DB690 AFAF0048 */ sw $t7, 0x48($sp) +/* 1101C4 7F0DB694 A3AD0113 */ sb $t5, 0x113($sp) +/* 1101C8 7F0DB698 02EA4021 */ addu $t0, $s7, $t2 +/* 1101CC 7F0DB69C 91190000 */ lbu $t9, ($t0) +/* 1101D0 7F0DB6A0 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 1101D4 7F0DB6A4 01AB4825 */ or $t1, $t5, $t3 +/* 1101D8 7F0DB6A8 000F6180 */ sll $t4, $t7, 6 +/* 1101DC 7F0DB6AC 012C7025 */ or $t6, $t1, $t4 +/* 1101E0 7F0DB6B0 032E8825 */ or $s1, $t9, $t6 +/* 1101E4 7F0DB6B4 322F00FF */ andi $t7, $s1, 0xff +/* 1101E8 7F0DB6B8 100003B7 */ b .L7F0DC598 +/* 1101EC 7F0DB6BC 01E08825 */ move $s1, $t7 +spectrum_op_CB_2E: +/* 1101F0 7F0DB6C0 8FAD028C */ lw $t5, 0x28c($sp) +/* 1101F4 7F0DB6C4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1101F8 7F0DB6C8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1101FC 7F0DB6CC 97B8013C */ lhu $t8, 0x13c($sp) +/* 110200 7F0DB6D0 25AB0007 */ addiu $t3, $t5, 7 +/* 110204 7F0DB6D4 AFAB028C */ sw $t3, 0x28c($sp) +/* 110208 7F0DB6D8 03096021 */ addu $t4, $t8, $t1 +/* 11020C 7F0DB6DC 91880000 */ lbu $t0, ($t4) +/* 110210 7F0DB6E0 A3A80139 */ sb $t0, 0x139($sp) +/* 110214 7F0DB6E4 83AE0139 */ lb $t6, 0x139($sp) +/* 110218 7F0DB6E8 31180001 */ andi $t8, $t0, 1 +/* 11021C 7F0DB6EC A3B80112 */ sb $t8, 0x112($sp) +/* 110220 7F0DB6F0 000E7843 */ sra $t7, $t6, 1 +/* 110224 7F0DB6F4 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 110228 7F0DB6F8 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 11022C 7F0DB6FC 31ED00FF */ andi $t5, $t7, 0xff +/* 110230 7F0DB700 2DAB0001 */ sltiu $t3, $t5, 1 +/* 110234 7F0DB704 31EC00A8 */ andi $t4, $t7, 0xa8 +/* 110238 7F0DB708 030C5025 */ or $t2, $t8, $t4 +/* 11023C 7F0DB70C AFAB0048 */ sw $t3, 0x48($sp) +/* 110240 7F0DB710 A3AF0139 */ sb $t7, 0x139($sp) +/* 110244 7F0DB714 01AE4821 */ addu $t1, $t5, $t6 +/* 110248 7F0DB718 91380000 */ lbu $t8, ($t1) +/* 11024C 7F0DB71C 000B4180 */ sll $t0, $t3, 6 +/* 110250 7F0DB720 97AB013C */ lhu $t3, 0x13c($sp) +/* 110254 7F0DB724 0148C825 */ or $t9, $t2, $t0 +/* 110258 7F0DB728 03198825 */ or $s1, $t8, $t9 +/* 11025C 7F0DB72C 322C00FF */ andi $t4, $s1, 0xff +/* 110260 7F0DB730 29615B00 */ slti $at, $t3, 0x5b00 +/* 110264 7F0DB734 14200007 */ bnez $at, .L7F0DB754 +/* 110268 7F0DB738 01808825 */ move $s1, $t4 +/* 11026C 7F0DB73C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 110270 7F0DB740 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 110274 7F0DB744 01E05025 */ move $t2, $t7 +/* 110278 7F0DB748 010B7821 */ addu $t7, $t0, $t3 +/* 11027C 7F0DB74C 10000392 */ b .L7F0DC598 +/* 110280 7F0DB750 A1EA0000 */ sb $t2, ($t7) +.L7F0DB754: +/* 110284 7F0DB754 97AD013C */ lhu $t5, 0x13c($sp) +/* 110288 7F0DB758 97AA013C */ lhu $t2, 0x13c($sp) +/* 11028C 7F0DB75C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 110290 7F0DB760 29A15800 */ slti $at, $t5, 0x5800 +/* 110294 7F0DB764 5420000D */ bnezl $at, .L7F0DB79C +/* 110298 7F0DB768 29414000 */ slti $at, $t2, 0x4000 +/* 11029C 7F0DB76C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1102A0 7F0DB770 93AE0139 */ lbu $t6, 0x139($sp) +/* 1102A4 7F0DB774 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1102A8 7F0DB778 012DC021 */ addu $t8, $t1, $t5 +/* 1102AC 7F0DB77C A30E0000 */ sb $t6, ($t8) +/* 1102B0 7F0DB780 97A8013C */ lhu $t0, 0x13c($sp) +/* 1102B4 7F0DB784 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1102B8 7F0DB788 24190001 */ li $t9, 1 +/* 1102BC 7F0DB78C 01885821 */ addu $t3, $t4, $t0 +/* 1102C0 7F0DB790 10000381 */ b .L7F0DC598 +/* 1102C4 7F0DB794 A179A800 */ sb $t9, -0x5800($t3) +/* 1102C8 7F0DB798 29414000 */ slti $at, $t2, 0x4000 +.L7F0DB79C: +/* 1102CC 7F0DB79C 1420037E */ bnez $at, .L7F0DC598 +/* 1102D0 7F0DB7A0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1102D4 7F0DB7A4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1102D8 7F0DB7A8 93AF0139 */ lbu $t7, 0x139($sp) +/* 1102DC 7F0DB7AC 240E0001 */ li $t6, 1 +/* 1102E0 7F0DB7B0 012A6821 */ addu $t5, $t1, $t2 +/* 1102E4 7F0DB7B4 A1AF0000 */ sb $t7, ($t5) +/* 1102E8 7F0DB7B8 97B8013C */ lhu $t8, 0x13c($sp) +/* 1102EC 7F0DB7BC 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1102F0 7F0DB7C0 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1102F4 7F0DB7C4 330C1800 */ andi $t4, $t8, 0x1800 +/* 1102F8 7F0DB7C8 000C40C3 */ sra $t0, $t4, 3 +/* 1102FC 7F0DB7CC 331900FF */ andi $t9, $t8, 0xff +/* 110300 7F0DB7D0 01195825 */ or $t3, $t0, $t9 +/* 110304 7F0DB7D4 012B5021 */ addu $t2, $t1, $t3 +/* 110308 7F0DB7D8 1000036F */ b .L7F0DC598 +/* 11030C 7F0DB7DC A14E0000 */ sb $t6, ($t2) +spectrum_op_CB_2F: +/* 110310 7F0DB7E0 00106E00 */ sll $t5, $s0, 0x18 +/* 110314 7F0DB7E4 000D6603 */ sra $t4, $t5, 0x18 +/* 110318 7F0DB7E8 000CC043 */ sra $t8, $t4, 1 +/* 11031C 7F0DB7EC 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 110320 7F0DB7F0 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 110324 7F0DB7F4 32090001 */ andi $t1, $s0, 1 +/* 110328 7F0DB7F8 331000FF */ andi $s0, $t8, 0xff +/* 11032C 7F0DB7FC 2E190001 */ sltiu $t9, $s0, 1 +/* 110330 7F0DB800 AFB90048 */ sw $t9, 0x48($sp) +/* 110334 7F0DB804 A3A90111 */ sb $t1, 0x111($sp) +/* 110338 7F0DB808 020CC021 */ addu $t8, $s0, $t4 +/* 11033C 7F0DB80C 93080000 */ lbu $t0, ($t8) +/* 110340 7F0DB810 320B00A8 */ andi $t3, $s0, 0xa8 +/* 110344 7F0DB814 012B7025 */ or $t6, $t1, $t3 +/* 110348 7F0DB818 00197980 */ sll $t7, $t9, 6 +/* 11034C 7F0DB81C 01CF6825 */ or $t5, $t6, $t7 +/* 110350 7F0DB820 010D8825 */ or $s1, $t0, $t5 +/* 110354 7F0DB824 323900FF */ andi $t9, $s1, 0xff +/* 110358 7F0DB828 1000035B */ b .L7F0DC598 +/* 11035C 7F0DB82C 03208825 */ move $s1, $t9 +spectrum_op_CB_30: +/* 110360 7F0DB830 00125840 */ sll $t3, $s2, 1 +/* 110364 7F0DB834 356A0001 */ ori $t2, $t3, 1 +/* 110368 7F0DB838 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 11036C 7F0DB83C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 110370 7F0DB840 001261C3 */ sra $t4, $s2, 7 +/* 110374 7F0DB844 315200FF */ andi $s2, $t2, 0xff +/* 110378 7F0DB848 2E4F0001 */ sltiu $t7, $s2, 1 +/* 11037C 7F0DB84C AFAF0048 */ sw $t7, 0x48($sp) +/* 110380 7F0DB850 A3AC0110 */ sb $t4, 0x110($sp) +/* 110384 7F0DB854 024B5021 */ addu $t2, $s2, $t3 +/* 110388 7F0DB858 914E0000 */ lbu $t6, ($t2) +/* 11038C 7F0DB85C 325800A8 */ andi $t8, $s2, 0xa8 +/* 110390 7F0DB860 01984025 */ or $t0, $t4, $t8 +/* 110394 7F0DB864 000FC980 */ sll $t9, $t7, 6 +/* 110398 7F0DB868 01194825 */ or $t1, $t0, $t9 +/* 11039C 7F0DB86C 01C98825 */ or $s1, $t6, $t1 +/* 1103A0 7F0DB870 322F00FF */ andi $t7, $s1, 0xff +/* 1103A4 7F0DB874 10000348 */ b .L7F0DC598 +/* 1103A8 7F0DB878 01E08825 */ move $s1, $t7 +spectrum_op_CB_31: +/* 1103AC 7F0DB87C 0013C040 */ sll $t8, $s3, 1 +/* 1103B0 7F0DB880 370D0001 */ ori $t5, $t8, 1 +/* 1103B4 7F0DB884 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 1103B8 7F0DB888 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1103BC 7F0DB88C 001359C3 */ sra $t3, $s3, 7 +/* 1103C0 7F0DB890 31B300FF */ andi $s3, $t5, 0xff +/* 1103C4 7F0DB894 2E790001 */ sltiu $t9, $s3, 1 +/* 1103C8 7F0DB898 AFB90048 */ sw $t9, 0x48($sp) +/* 1103CC 7F0DB89C A3AB010F */ sb $t3, 0x10f($sp) +/* 1103D0 7F0DB8A0 02786821 */ addu $t5, $s3, $t8 +/* 1103D4 7F0DB8A4 91A80000 */ lbu $t0, ($t5) +/* 1103D8 7F0DB8A8 326A00A8 */ andi $t2, $s3, 0xa8 +/* 1103DC 7F0DB8AC 016A7025 */ or $t6, $t3, $t2 +/* 1103E0 7F0DB8B0 00197980 */ sll $t7, $t9, 6 +/* 1103E4 7F0DB8B4 01CF6025 */ or $t4, $t6, $t7 +/* 1103E8 7F0DB8B8 010C8825 */ or $s1, $t0, $t4 +/* 1103EC 7F0DB8BC 323900FF */ andi $t9, $s1, 0xff +/* 1103F0 7F0DB8C0 10000335 */ b .L7F0DC598 +/* 1103F4 7F0DB8C4 03208825 */ move $s1, $t9 +spectrum_op_CB_32: +/* 1103F8 7F0DB8C8 00145040 */ sll $t2, $s4, 1 +/* 1103FC 7F0DB8CC 35490001 */ ori $t1, $t2, 1 +/* 110400 7F0DB8D0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 110404 7F0DB8D4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 110408 7F0DB8D8 0014C1C3 */ sra $t8, $s4, 7 +/* 11040C 7F0DB8DC 313400FF */ andi $s4, $t1, 0xff +/* 110410 7F0DB8E0 2E8F0001 */ sltiu $t7, $s4, 1 +/* 110414 7F0DB8E4 AFAF0048 */ sw $t7, 0x48($sp) +/* 110418 7F0DB8E8 A3B8010E */ sb $t8, 0x10e($sp) +/* 11041C 7F0DB8EC 028A4821 */ addu $t1, $s4, $t2 +/* 110420 7F0DB8F0 912E0000 */ lbu $t6, ($t1) +/* 110424 7F0DB8F4 328D00A8 */ andi $t5, $s4, 0xa8 +/* 110428 7F0DB8F8 030D4025 */ or $t0, $t8, $t5 +/* 11042C 7F0DB8FC 000FC980 */ sll $t9, $t7, 6 +/* 110430 7F0DB900 01195825 */ or $t3, $t0, $t9 +/* 110434 7F0DB904 01CB8825 */ or $s1, $t6, $t3 +/* 110438 7F0DB908 322F00FF */ andi $t7, $s1, 0xff +/* 11043C 7F0DB90C 10000322 */ b .L7F0DC598 +/* 110440 7F0DB910 01E08825 */ move $s1, $t7 +spectrum_op_CB_33: +/* 110444 7F0DB914 00156840 */ sll $t5, $s5, 1 +/* 110448 7F0DB918 35AC0001 */ ori $t4, $t5, 1 +/* 11044C 7F0DB91C 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 110450 7F0DB920 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 110454 7F0DB924 001551C3 */ sra $t2, $s5, 7 +/* 110458 7F0DB928 319500FF */ andi $s5, $t4, 0xff +/* 11045C 7F0DB92C 2EB90001 */ sltiu $t9, $s5, 1 +/* 110460 7F0DB930 AFB90048 */ sw $t9, 0x48($sp) +/* 110464 7F0DB934 A3AA010D */ sb $t2, 0x10d($sp) +/* 110468 7F0DB938 02AD6021 */ addu $t4, $s5, $t5 +/* 11046C 7F0DB93C 91880000 */ lbu $t0, ($t4) +/* 110470 7F0DB940 32A900A8 */ andi $t1, $s5, 0xa8 +/* 110474 7F0DB944 01497025 */ or $t6, $t2, $t1 +/* 110478 7F0DB948 00197980 */ sll $t7, $t9, 6 +/* 11047C 7F0DB94C 01CFC025 */ or $t8, $t6, $t7 +/* 110480 7F0DB950 01188825 */ or $s1, $t0, $t8 +/* 110484 7F0DB954 323900FF */ andi $t9, $s1, 0xff +/* 110488 7F0DB958 1000030F */ b .L7F0DC598 +/* 11048C 7F0DB95C 03208825 */ move $s1, $t9 +spectrum_op_CB_34: +/* 110490 7F0DB960 00164840 */ sll $t1, $s6, 1 +/* 110494 7F0DB964 352B0001 */ ori $t3, $t1, 1 +/* 110498 7F0DB968 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 11049C 7F0DB96C 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 1104A0 7F0DB970 001669C3 */ sra $t5, $s6, 7 +/* 1104A4 7F0DB974 317600FF */ andi $s6, $t3, 0xff +/* 1104A8 7F0DB978 2ECF0001 */ sltiu $t7, $s6, 1 +/* 1104AC 7F0DB97C AFAF0048 */ sw $t7, 0x48($sp) +/* 1104B0 7F0DB980 A3AD010C */ sb $t5, 0x10c($sp) +/* 1104B4 7F0DB984 02C95821 */ addu $t3, $s6, $t1 +/* 1104B8 7F0DB988 916E0000 */ lbu $t6, ($t3) +/* 1104BC 7F0DB98C 32CC00A8 */ andi $t4, $s6, 0xa8 +/* 1104C0 7F0DB990 01AC4025 */ or $t0, $t5, $t4 +/* 1104C4 7F0DB994 000FC980 */ sll $t9, $t7, 6 +/* 1104C8 7F0DB998 01195025 */ or $t2, $t0, $t9 +/* 1104CC 7F0DB99C 01CA8825 */ or $s1, $t6, $t2 +/* 1104D0 7F0DB9A0 322F00FF */ andi $t7, $s1, 0xff +/* 1104D4 7F0DB9A4 100002FC */ b .L7F0DC598 +/* 1104D8 7F0DB9A8 01E08825 */ move $s1, $t7 +spectrum_op_CB_35: +/* 1104DC 7F0DB9AC 00176040 */ sll $t4, $s7, 1 +/* 1104E0 7F0DB9B0 35980001 */ ori $t8, $t4, 1 +/* 1104E4 7F0DB9B4 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 1104E8 7F0DB9B8 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 1104EC 7F0DB9BC 001749C3 */ sra $t1, $s7, 7 +/* 1104F0 7F0DB9C0 331700FF */ andi $s7, $t8, 0xff +/* 1104F4 7F0DB9C4 2EF90001 */ sltiu $t9, $s7, 1 +/* 1104F8 7F0DB9C8 AFB90048 */ sw $t9, 0x48($sp) +/* 1104FC 7F0DB9CC A3A9010B */ sb $t1, 0x10b($sp) +/* 110500 7F0DB9D0 02ECC021 */ addu $t8, $s7, $t4 +/* 110504 7F0DB9D4 93080000 */ lbu $t0, ($t8) +/* 110508 7F0DB9D8 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 11050C 7F0DB9DC 012B7025 */ or $t6, $t1, $t3 +/* 110510 7F0DB9E0 00197980 */ sll $t7, $t9, 6 +/* 110514 7F0DB9E4 01CF6825 */ or $t5, $t6, $t7 +/* 110518 7F0DB9E8 010D8825 */ or $s1, $t0, $t5 +/* 11051C 7F0DB9EC 323900FF */ andi $t9, $s1, 0xff +/* 110520 7F0DB9F0 100002E9 */ b .L7F0DC598 +/* 110524 7F0DB9F4 03208825 */ move $s1, $t9 +spectrum_op_CB_36: +/* 110528 7F0DB9F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 11052C 7F0DB9FC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 110530 7F0DBA00 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 110534 7F0DBA04 97AA013C */ lhu $t2, 0x13c($sp) +/* 110538 7F0DBA08 252B0007 */ addiu $t3, $t1, 7 +/* 11053C 7F0DBA0C AFAB028C */ sw $t3, 0x28c($sp) +/* 110540 7F0DBA10 014E7821 */ addu $t7, $t2, $t6 +/* 110544 7F0DBA14 91EC0000 */ lbu $t4, ($t7) +/* 110548 7F0DBA18 319800FF */ andi $t8, $t4, 0xff +/* 11054C 7F0DBA1C 00186840 */ sll $t5, $t8, 1 +/* 110550 7F0DBA20 35B90001 */ ori $t9, $t5, 1 +/* 110554 7F0DBA24 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 110558 7F0DBA28 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 11055C 7F0DBA2C 332900FF */ andi $t1, $t9, 0xff +/* 110560 7F0DBA30 001851C3 */ sra $t2, $t8, 7 +/* 110564 7F0DBA34 A3AC0139 */ sb $t4, 0x139($sp) +/* 110568 7F0DBA38 2D2B0001 */ sltiu $t3, $t1, 1 +/* 11056C 7F0DBA3C 332F00A8 */ andi $t7, $t9, 0xa8 +/* 110570 7F0DBA40 014F6025 */ or $t4, $t2, $t7 +/* 110574 7F0DBA44 AFAB0048 */ sw $t3, 0x48($sp) +/* 110578 7F0DBA48 A3B90139 */ sb $t9, 0x139($sp) +/* 11057C 7F0DBA4C A3AA010A */ sb $t2, 0x10a($sp) +/* 110580 7F0DBA50 012D7021 */ addu $t6, $t1, $t5 +/* 110584 7F0DBA54 91CA0000 */ lbu $t2, ($t6) +/* 110588 7F0DBA58 000B4180 */ sll $t0, $t3, 6 +/* 11058C 7F0DBA5C 97AB013C */ lhu $t3, 0x13c($sp) +/* 110590 7F0DBA60 0188C025 */ or $t8, $t4, $t0 +/* 110594 7F0DBA64 01588825 */ or $s1, $t2, $t8 +/* 110598 7F0DBA68 322F00FF */ andi $t7, $s1, 0xff +/* 11059C 7F0DBA6C 29615B00 */ slti $at, $t3, 0x5b00 +/* 1105A0 7F0DBA70 14200007 */ bnez $at, .L7F0DBA90 +/* 1105A4 7F0DBA74 01E08825 */ move $s1, $t7 +/* 1105A8 7F0DBA78 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1105AC 7F0DBA7C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1105B0 7F0DBA80 03206025 */ move $t4, $t9 +/* 1105B4 7F0DBA84 010BC821 */ addu $t9, $t0, $t3 +/* 1105B8 7F0DBA88 100002C3 */ b .L7F0DC598 +/* 1105BC 7F0DBA8C A32C0000 */ sb $t4, ($t9) +.L7F0DBA90: +/* 1105C0 7F0DBA90 97A9013C */ lhu $t1, 0x13c($sp) +/* 1105C4 7F0DBA94 97AC013C */ lhu $t4, 0x13c($sp) +/* 1105C8 7F0DBA98 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1105CC 7F0DBA9C 29215800 */ slti $at, $t1, 0x5800 +/* 1105D0 7F0DBAA0 5420000D */ bnezl $at, .L7F0DBAD8 +/* 1105D4 7F0DBAA4 29814000 */ slti $at, $t4, 0x4000 +/* 1105D8 7F0DBAA8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1105DC 7F0DBAAC 93AD0139 */ lbu $t5, 0x139($sp) +/* 1105E0 7F0DBAB0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1105E4 7F0DBAB4 01C95021 */ addu $t2, $t6, $t1 +/* 1105E8 7F0DBAB8 A14D0000 */ sb $t5, ($t2) +/* 1105EC 7F0DBABC 97A8013C */ lhu $t0, 0x13c($sp) +/* 1105F0 7F0DBAC0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1105F4 7F0DBAC4 24180001 */ li $t8, 1 +/* 1105F8 7F0DBAC8 01E85821 */ addu $t3, $t7, $t0 +/* 1105FC 7F0DBACC 100002B2 */ b .L7F0DC598 +/* 110600 7F0DBAD0 A178A800 */ sb $t8, -0x5800($t3) +/* 110604 7F0DBAD4 29814000 */ slti $at, $t4, 0x4000 +.L7F0DBAD8: +/* 110608 7F0DBAD8 142002AF */ bnez $at, .L7F0DC598 +/* 11060C 7F0DBADC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 110610 7F0DBAE0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 110614 7F0DBAE4 93B90139 */ lbu $t9, 0x139($sp) +/* 110618 7F0DBAE8 240D0001 */ li $t5, 1 +/* 11061C 7F0DBAEC 01CC4821 */ addu $t1, $t6, $t4 +/* 110620 7F0DBAF0 A1390000 */ sb $t9, ($t1) +/* 110624 7F0DBAF4 97AA013C */ lhu $t2, 0x13c($sp) +/* 110628 7F0DBAF8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11062C 7F0DBAFC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110630 7F0DBB00 314F1800 */ andi $t7, $t2, 0x1800 +/* 110634 7F0DBB04 000F40C3 */ sra $t0, $t7, 3 +/* 110638 7F0DBB08 315800FF */ andi $t8, $t2, 0xff +/* 11063C 7F0DBB0C 01185825 */ or $t3, $t0, $t8 +/* 110640 7F0DBB10 01CB6021 */ addu $t4, $t6, $t3 +/* 110644 7F0DBB14 100002A0 */ b .L7F0DC598 +/* 110648 7F0DBB18 A18D0000 */ sb $t5, ($t4) +spectrum_op_CB_37: +/* 11064C 7F0DBB1C 00104840 */ sll $t1, $s0, 1 +/* 110650 7F0DBB20 352F0001 */ ori $t7, $t1, 1 +/* 110654 7F0DBB24 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 110658 7F0DBB28 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 11065C 7F0DBB2C 0010C1C3 */ sra $t8, $s0, 7 +/* 110660 7F0DBB30 31F000FF */ andi $s0, $t7, 0xff +/* 110664 7F0DBB34 2E080001 */ sltiu $t0, $s0, 1 +/* 110668 7F0DBB38 AFA80048 */ sw $t0, 0x48($sp) +/* 11066C 7F0DBB3C A3B80109 */ sb $t8, 0x109($sp) +/* 110670 7F0DBB40 02097821 */ addu $t7, $s0, $t1 +/* 110674 7F0DBB44 91EA0000 */ lbu $t2, ($t7) +/* 110678 7F0DBB48 320E00A8 */ andi $t6, $s0, 0xa8 +/* 11067C 7F0DBB4C 030E5825 */ or $t3, $t8, $t6 +/* 110680 7F0DBB50 00086180 */ sll $t4, $t0, 6 +/* 110684 7F0DBB54 016CC825 */ or $t9, $t3, $t4 +/* 110688 7F0DBB58 01598825 */ or $s1, $t2, $t9 +/* 11068C 7F0DBB5C 322800FF */ andi $t0, $s1, 0xff +/* 110690 7F0DBB60 1000028D */ b .L7F0DC598 +/* 110694 7F0DBB64 01008825 */ move $s1, $t0 +spectrum_op_CB_38: +/* 110698 7F0DBB68 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 11069C 7F0DBB6C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1106A0 7F0DBB70 324C0001 */ andi $t4, $s2, 1 +/* 1106A4 7F0DBB74 00127042 */ srl $t6, $s2, 1 +/* 1106A8 7F0DBB78 31D200FF */ andi $s2, $t6, 0xff +/* 1106AC 7F0DBB7C 2E4B0001 */ sltiu $t3, $s2, 1 +/* 1106B0 7F0DBB80 AFAB0048 */ sw $t3, 0x48($sp) +/* 1106B4 7F0DBB84 A3AC0108 */ sb $t4, 0x108($sp) +/* 1106B8 7F0DBB88 02587021 */ addu $t6, $s2, $t8 +/* 1106BC 7F0DBB8C 91CD0000 */ lbu $t5, ($t6) +/* 1106C0 7F0DBB90 324900A8 */ andi $t1, $s2, 0xa8 +/* 1106C4 7F0DBB94 01897825 */ or $t7, $t4, $t1 +/* 1106C8 7F0DBB98 000BC980 */ sll $t9, $t3, 6 +/* 1106CC 7F0DBB9C 01F94025 */ or $t0, $t7, $t9 +/* 1106D0 7F0DBBA0 01A88825 */ or $s1, $t5, $t0 +/* 1106D4 7F0DBBA4 322B00FF */ andi $t3, $s1, 0xff +/* 1106D8 7F0DBBA8 1000027B */ b .L7F0DC598 +/* 1106DC 7F0DBBAC 01608825 */ move $s1, $t3 +spectrum_op_CB_39: +/* 1106E0 7F0DBBB0 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 1106E4 7F0DBBB4 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 1106E8 7F0DBBB8 32790001 */ andi $t9, $s3, 1 +/* 1106EC 7F0DBBBC 00134842 */ srl $t1, $s3, 1 +/* 1106F0 7F0DBBC0 313300FF */ andi $s3, $t1, 0xff +/* 1106F4 7F0DBBC4 2E6F0001 */ sltiu $t7, $s3, 1 +/* 1106F8 7F0DBBC8 AFAF0048 */ sw $t7, 0x48($sp) +/* 1106FC 7F0DBBCC A3B90107 */ sb $t9, 0x107($sp) +/* 110700 7F0DBBD0 026C4821 */ addu $t1, $s3, $t4 +/* 110704 7F0DBBD4 912A0000 */ lbu $t2, ($t1) +/* 110708 7F0DBBD8 327800A8 */ andi $t8, $s3, 0xa8 +/* 11070C 7F0DBBDC 03387025 */ or $t6, $t9, $t8 +/* 110710 7F0DBBE0 000F4180 */ sll $t0, $t7, 6 +/* 110714 7F0DBBE4 01C85825 */ or $t3, $t6, $t0 +/* 110718 7F0DBBE8 014B8825 */ or $s1, $t2, $t3 +/* 11071C 7F0DBBEC 322F00FF */ andi $t7, $s1, 0xff +/* 110720 7F0DBBF0 10000269 */ b .L7F0DC598 +/* 110724 7F0DBBF4 01E08825 */ move $s1, $t7 +spectrum_op_CB_3A: +/* 110728 7F0DBBF8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 11072C 7F0DBBFC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 110730 7F0DBC00 32880001 */ andi $t0, $s4, 1 +/* 110734 7F0DBC04 0014C042 */ srl $t8, $s4, 1 +/* 110738 7F0DBC08 331400FF */ andi $s4, $t8, 0xff +/* 11073C 7F0DBC0C 2E8E0001 */ sltiu $t6, $s4, 1 +/* 110740 7F0DBC10 AFAE0048 */ sw $t6, 0x48($sp) +/* 110744 7F0DBC14 A3A80106 */ sb $t0, 0x106($sp) +/* 110748 7F0DBC18 0299C021 */ addu $t8, $s4, $t9 +/* 11074C 7F0DBC1C 930D0000 */ lbu $t5, ($t8) +/* 110750 7F0DBC20 328C00A8 */ andi $t4, $s4, 0xa8 +/* 110754 7F0DBC24 010C4825 */ or $t1, $t0, $t4 +/* 110758 7F0DBC28 000E5980 */ sll $t3, $t6, 6 +/* 11075C 7F0DBC2C 012B7825 */ or $t7, $t1, $t3 +/* 110760 7F0DBC30 01AF8825 */ or $s1, $t5, $t7 +/* 110764 7F0DBC34 322E00FF */ andi $t6, $s1, 0xff +/* 110768 7F0DBC38 10000257 */ b .L7F0DC598 +/* 11076C 7F0DBC3C 01C08825 */ move $s1, $t6 +spectrum_op_CB_3B: +/* 110770 7F0DBC40 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 110774 7F0DBC44 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 110778 7F0DBC48 32AB0001 */ andi $t3, $s5, 1 +/* 11077C 7F0DBC4C 00156042 */ srl $t4, $s5, 1 +/* 110780 7F0DBC50 319500FF */ andi $s5, $t4, 0xff +/* 110784 7F0DBC54 2EA90001 */ sltiu $t1, $s5, 1 +/* 110788 7F0DBC58 AFA90048 */ sw $t1, 0x48($sp) +/* 11078C 7F0DBC5C A3AB0105 */ sb $t3, 0x105($sp) +/* 110790 7F0DBC60 02A86021 */ addu $t4, $s5, $t0 +/* 110794 7F0DBC64 918A0000 */ lbu $t2, ($t4) +/* 110798 7F0DBC68 32B900A8 */ andi $t9, $s5, 0xa8 +/* 11079C 7F0DBC6C 0179C025 */ or $t8, $t3, $t9 +/* 1107A0 7F0DBC70 00097980 */ sll $t7, $t1, 6 +/* 1107A4 7F0DBC74 030F7025 */ or $t6, $t8, $t7 +/* 1107A8 7F0DBC78 014E8825 */ or $s1, $t2, $t6 +/* 1107AC 7F0DBC7C 322900FF */ andi $t1, $s1, 0xff +/* 1107B0 7F0DBC80 10000245 */ b .L7F0DC598 +/* 1107B4 7F0DBC84 01208825 */ move $s1, $t1 +spectrum_op_CB_3C: +/* 1107B8 7F0DBC88 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 1107BC 7F0DBC8C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 1107C0 7F0DBC90 32CF0001 */ andi $t7, $s6, 1 +/* 1107C4 7F0DBC94 0016C842 */ srl $t9, $s6, 1 +/* 1107C8 7F0DBC98 333600FF */ andi $s6, $t9, 0xff +/* 1107CC 7F0DBC9C 2ED80001 */ sltiu $t8, $s6, 1 +/* 1107D0 7F0DBCA0 AFB80048 */ sw $t8, 0x48($sp) +/* 1107D4 7F0DBCA4 A3AF0104 */ sb $t7, 0x104($sp) +/* 1107D8 7F0DBCA8 02CBC821 */ addu $t9, $s6, $t3 +/* 1107DC 7F0DBCAC 932D0000 */ lbu $t5, ($t9) +/* 1107E0 7F0DBCB0 32C800A8 */ andi $t0, $s6, 0xa8 +/* 1107E4 7F0DBCB4 01E86025 */ or $t4, $t7, $t0 +/* 1107E8 7F0DBCB8 00187180 */ sll $t6, $t8, 6 +/* 1107EC 7F0DBCBC 018E4825 */ or $t1, $t4, $t6 +/* 1107F0 7F0DBCC0 01A98825 */ or $s1, $t5, $t1 +/* 1107F4 7F0DBCC4 323800FF */ andi $t8, $s1, 0xff +/* 1107F8 7F0DBCC8 10000233 */ b .L7F0DC598 +/* 1107FC 7F0DBCCC 03008825 */ move $s1, $t8 +spectrum_op_CB_3D: +/* 110800 7F0DBCD0 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110804 7F0DBCD4 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110808 7F0DBCD8 32EE0001 */ andi $t6, $s7, 1 +/* 11080C 7F0DBCDC 00174042 */ srl $t0, $s7, 1 +/* 110810 7F0DBCE0 311700FF */ andi $s7, $t0, 0xff +/* 110814 7F0DBCE4 2EEC0001 */ sltiu $t4, $s7, 1 +/* 110818 7F0DBCE8 AFAC0048 */ sw $t4, 0x48($sp) +/* 11081C 7F0DBCEC A3AE0103 */ sb $t6, 0x103($sp) +/* 110820 7F0DBCF0 02EF4021 */ addu $t0, $s7, $t7 +/* 110824 7F0DBCF4 910A0000 */ lbu $t2, ($t0) +/* 110828 7F0DBCF8 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 11082C 7F0DBCFC 01CBC825 */ or $t9, $t6, $t3 +/* 110830 7F0DBD00 000C4980 */ sll $t1, $t4, 6 +/* 110834 7F0DBD04 0329C025 */ or $t8, $t9, $t1 +/* 110838 7F0DBD08 01588825 */ or $s1, $t2, $t8 +/* 11083C 7F0DBD0C 322C00FF */ andi $t4, $s1, 0xff +/* 110840 7F0DBD10 10000221 */ b .L7F0DC598 +/* 110844 7F0DBD14 01808825 */ move $s1, $t4 +spectrum_op_CB_3E: +/* 110848 7F0DBD18 8FAE028C */ lw $t6, 0x28c($sp) +/* 11084C 7F0DBD1C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 110850 7F0DBD20 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 110854 7F0DBD24 97AD013C */ lhu $t5, 0x13c($sp) +/* 110858 7F0DBD28 25CB0007 */ addiu $t3, $t6, 7 +/* 11085C 7F0DBD2C AFAB028C */ sw $t3, 0x28c($sp) +/* 110860 7F0DBD30 01B94821 */ addu $t1, $t5, $t9 +/* 110864 7F0DBD34 912F0000 */ lbu $t7, ($t1) +/* 110868 7F0DBD38 31E800FF */ andi $t0, $t7, 0xff +/* 11086C 7F0DBD3C 310B0001 */ andi $t3, $t0, 1 +/* 110870 7F0DBD40 0008C042 */ srl $t8, $t0, 1 +/* 110874 7F0DBD44 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 110878 7F0DBD48 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 11087C 7F0DBD4C 330C00FF */ andi $t4, $t8, 0xff +/* 110880 7F0DBD50 A3AF0139 */ sb $t7, 0x139($sp) +/* 110884 7F0DBD54 2D8E0001 */ sltiu $t6, $t4, 1 +/* 110888 7F0DBD58 331900A8 */ andi $t9, $t8, 0xa8 +/* 11088C 7F0DBD5C 01794825 */ or $t1, $t3, $t9 +/* 110890 7F0DBD60 AFAE0048 */ sw $t6, 0x48($sp) +/* 110894 7F0DBD64 A3B80139 */ sb $t8, 0x139($sp) +/* 110898 7F0DBD68 A3AB0102 */ sb $t3, 0x102($sp) +/* 11089C 7F0DBD6C 01886821 */ addu $t5, $t4, $t0 +/* 1108A0 7F0DBD70 91AB0000 */ lbu $t3, ($t5) +/* 1108A4 7F0DBD74 000E7980 */ sll $t7, $t6, 6 +/* 1108A8 7F0DBD78 97AE013C */ lhu $t6, 0x13c($sp) +/* 1108AC 7F0DBD7C 012F5025 */ or $t2, $t1, $t7 +/* 1108B0 7F0DBD80 016A8825 */ or $s1, $t3, $t2 +/* 1108B4 7F0DBD84 323900FF */ andi $t9, $s1, 0xff +/* 1108B8 7F0DBD88 29C15B00 */ slti $at, $t6, 0x5b00 +/* 1108BC 7F0DBD8C 14200007 */ bnez $at, .L7F0DBDAC +/* 1108C0 7F0DBD90 03208825 */ move $s1, $t9 +/* 1108C4 7F0DBD94 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1108C8 7F0DBD98 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1108CC 7F0DBD9C 03004825 */ move $t1, $t8 +/* 1108D0 7F0DBDA0 01EEC021 */ addu $t8, $t7, $t6 +/* 1108D4 7F0DBDA4 100001FC */ b .L7F0DC598 +/* 1108D8 7F0DBDA8 A3090000 */ sb $t1, ($t8) +.L7F0DBDAC: +/* 1108DC 7F0DBDAC 97AC013C */ lhu $t4, 0x13c($sp) +/* 1108E0 7F0DBDB0 97A9013C */ lhu $t1, 0x13c($sp) +/* 1108E4 7F0DBDB4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1108E8 7F0DBDB8 29815800 */ slti $at, $t4, 0x5800 +/* 1108EC 7F0DBDBC 5420000D */ bnezl $at, .L7F0DBDF4 +/* 1108F0 7F0DBDC0 29214000 */ slti $at, $t1, 0x4000 +/* 1108F4 7F0DBDC4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1108F8 7F0DBDC8 93A80139 */ lbu $t0, 0x139($sp) +/* 1108FC 7F0DBDCC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 110900 7F0DBDD0 01AC5821 */ addu $t3, $t5, $t4 +/* 110904 7F0DBDD4 A1680000 */ sb $t0, ($t3) +/* 110908 7F0DBDD8 97AF013C */ lhu $t7, 0x13c($sp) +/* 11090C 7F0DBDDC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 110910 7F0DBDE0 240A0001 */ li $t2, 1 +/* 110914 7F0DBDE4 032F7021 */ addu $t6, $t9, $t7 +/* 110918 7F0DBDE8 100001EB */ b .L7F0DC598 +/* 11091C 7F0DBDEC A1CAA800 */ sb $t2, -0x5800($t6) +/* 110920 7F0DBDF0 29214000 */ slti $at, $t1, 0x4000 +.L7F0DBDF4: +/* 110924 7F0DBDF4 142001E8 */ bnez $at, .L7F0DC598 +/* 110928 7F0DBDF8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 11092C 7F0DBDFC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110930 7F0DBE00 93B80139 */ lbu $t8, 0x139($sp) +/* 110934 7F0DBE04 24080001 */ li $t0, 1 +/* 110938 7F0DBE08 01A96021 */ addu $t4, $t5, $t1 +/* 11093C 7F0DBE0C A1980000 */ sb $t8, ($t4) +/* 110940 7F0DBE10 97AB013C */ lhu $t3, 0x13c($sp) +/* 110944 7F0DBE14 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 110948 7F0DBE18 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11094C 7F0DBE1C 31791800 */ andi $t9, $t3, 0x1800 +/* 110950 7F0DBE20 001978C3 */ sra $t7, $t9, 3 +/* 110954 7F0DBE24 316A00FF */ andi $t2, $t3, 0xff +/* 110958 7F0DBE28 01EA7025 */ or $t6, $t7, $t2 +/* 11095C 7F0DBE2C 01AE4821 */ addu $t1, $t5, $t6 +/* 110960 7F0DBE30 100001D9 */ b .L7F0DC598 +/* 110964 7F0DBE34 A1280000 */ sb $t0, ($t1) +spectrum_op_CB_3F: +/* 110968 7F0DBE38 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 11096C 7F0DBE3C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110970 7F0DBE40 320F0001 */ andi $t7, $s0, 1 +/* 110974 7F0DBE44 00106042 */ srl $t4, $s0, 1 +/* 110978 7F0DBE48 319000FF */ andi $s0, $t4, 0xff +/* 11097C 7F0DBE4C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 110980 7F0DBE50 AFAB0048 */ sw $t3, 0x48($sp) +/* 110984 7F0DBE54 A3AF0101 */ sb $t7, 0x101($sp) +/* 110988 7F0DBE58 02186021 */ addu $t4, $s0, $t8 +/* 11098C 7F0DBE5C 91990000 */ lbu $t9, ($t4) +/* 110990 7F0DBE60 320A00A8 */ andi $t2, $s0, 0xa8 +/* 110994 7F0DBE64 01EA6825 */ or $t5, $t7, $t2 +/* 110998 7F0DBE68 000B4180 */ sll $t0, $t3, 6 +/* 11099C 7F0DBE6C 01A84825 */ or $t1, $t5, $t0 +/* 1109A0 7F0DBE70 03298825 */ or $s1, $t9, $t1 +/* 1109A4 7F0DBE74 322B00FF */ andi $t3, $s1, 0xff +/* 1109A8 7F0DBE78 100001C7 */ b .L7F0DC598 +/* 1109AC 7F0DBE7C 01608825 */ move $s1, $t3 +.L7F0DBE80: +/* 1109B0 7F0DBE80 000F50C3 */ sra $t2, $t7, 3 +/* 1109B4 7F0DBE84 31ED00C7 */ andi $t5, $t7, 0xc7 +/* 1109B8 7F0DBE88 314E0007 */ andi $t6, $t2, 7 +/* 1109BC 7F0DBE8C 29A10088 */ slti $at, $t5, 0x88 +/* 1109C0 7F0DBE90 A3AE0100 */ sb $t6, 0x100($sp) +/* 1109C4 7F0DBE94 1420000A */ bnez $at, .L7F0DBEC0 +/* 1109C8 7F0DBE98 AFAD0048 */ sw $t5, 0x48($sp) +/* 1109CC 7F0DBE9C 25A8FF40 */ addiu $t0, $t5, -0xc0 +/* 1109D0 7F0DBEA0 2D010008 */ sltiu $at, $t0, 8 +/* 1109D4 7F0DBEA4 102001BC */ beqz $at, .L7F0DC598 +/* 1109D8 7F0DBEA8 00084080 */ sll $t0, $t0, 2 +/* 1109DC 7F0DBEAC 3C018006 */ lui $at, %hi(jpt_8005C62C) +/* 1109E0 7F0DBEB0 00280821 */ addu $at, $at, $t0 +/* 1109E4 7F0DBEB4 8C28C62C */ lw $t0, %lo(jpt_8005C62C)($at) +/* 1109E8 7F0DBEB8 01000008 */ jr $t0 +/* 1109EC 7F0DBEBC 00000000 */ nop +.L7F0DBEC0: +/* 1109F0 7F0DBEC0 8FB80048 */ lw $t8, 0x48($sp) +/* 1109F4 7F0DBEC4 8FB90048 */ lw $t9, 0x48($sp) +/* 1109F8 7F0DBEC8 2B010048 */ slti $at, $t8, 0x48 +/* 1109FC 7F0DBECC 1420000A */ bnez $at, .L7F0DBEF8 +/* 110A00 7F0DBED0 2729FFC0 */ addiu $t1, $t9, -0x40 +/* 110A04 7F0DBED4 270CFF80 */ addiu $t4, $t8, -0x80 +/* 110A08 7F0DBED8 2D810008 */ sltiu $at, $t4, 8 +/* 110A0C 7F0DBEDC 102001AE */ beqz $at, .L7F0DC598 +/* 110A10 7F0DBEE0 000C6080 */ sll $t4, $t4, 2 +/* 110A14 7F0DBEE4 3C018006 */ lui $at, %hi(jpt_8005C64C) +/* 110A18 7F0DBEE8 002C0821 */ addu $at, $at, $t4 +/* 110A1C 7F0DBEEC 8C2CC64C */ lw $t4, %lo(jpt_8005C64C)($at) +/* 110A20 7F0DBEF0 01800008 */ jr $t4 +/* 110A24 7F0DBEF4 00000000 */ nop +.L7F0DBEF8: +/* 110A28 7F0DBEF8 2D210008 */ sltiu $at, $t1, 8 +/* 110A2C 7F0DBEFC 102001A6 */ beqz $at, .L7F0DC598 +/* 110A30 7F0DBF00 00094880 */ sll $t1, $t1, 2 +/* 110A34 7F0DBF04 3C018006 */ lui $at, %hi(jpt_8005C66C) +/* 110A38 7F0DBF08 00290821 */ addu $at, $at, $t1 +/* 110A3C 7F0DBF0C 8C29C66C */ lw $t1, %lo(jpt_8005C66C)($at) +/* 110A40 7F0DBF10 01200008 */ jr $t1 +/* 110A44 7F0DBF14 00000000 */ nop +spectrum_op_BIT_x_B: +/* 110A48 7F0DBF18 93AB0100 */ lbu $t3, 0x100($sp) +/* 110A4C 7F0DBF1C 240A0001 */ li $t2, 1 +/* 110A50 7F0DBF20 24080054 */ li $t0, 84 +/* 110A54 7F0DBF24 016A7004 */ sllv $t6, $t2, $t3 +/* 110A58 7F0DBF28 024E7824 */ and $t7, $s2, $t6 +/* 110A5C 7F0DBF2C 11E00003 */ beqz $t7, .L7F0DBF3C +/* 110A60 7F0DBF30 240D0010 */ li $t5, 16 +/* 110A64 7F0DBF34 10000002 */ b .L7F0DBF40 +/* 110A68 7F0DBF38 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0DBF3C: +/* 110A6C 7F0DBF3C AFA80044 */ sw $t0, 0x44($sp) +.L7F0DBF40: +/* 110A70 7F0DBF40 8FB80044 */ lw $t8, 0x44($sp) +/* 110A74 7F0DBF44 322C0001 */ andi $t4, $s1, 1 +/* 110A78 7F0DBF48 32490028 */ andi $t1, $s2, 0x28 +/* 110A7C 7F0DBF4C 030CC825 */ or $t9, $t8, $t4 +/* 110A80 7F0DBF50 03298825 */ or $s1, $t9, $t1 +/* 110A84 7F0DBF54 322A00FF */ andi $t2, $s1, 0xff +/* 110A88 7F0DBF58 1000018F */ b .L7F0DC598 +/* 110A8C 7F0DBF5C 01408825 */ move $s1, $t2 +spectrum_op_BIT_x_C: +/* 110A90 7F0DBF60 93AB0100 */ lbu $t3, 0x100($sp) +/* 110A94 7F0DBF64 240E0001 */ li $t6, 1 +/* 110A98 7F0DBF68 24180054 */ li $t8, 84 +/* 110A9C 7F0DBF6C 016E7804 */ sllv $t7, $t6, $t3 +/* 110AA0 7F0DBF70 026F6824 */ and $t5, $s3, $t7 +/* 110AA4 7F0DBF74 11A00003 */ beqz $t5, .L7F0DBF84 +/* 110AA8 7F0DBF78 24080010 */ li $t0, 16 +/* 110AAC 7F0DBF7C 10000002 */ b .L7F0DBF88 +/* 110AB0 7F0DBF80 AFA80048 */ sw $t0, 0x48($sp) +.L7F0DBF84: +/* 110AB4 7F0DBF84 AFB80048 */ sw $t8, 0x48($sp) +.L7F0DBF88: +/* 110AB8 7F0DBF88 8FAC0048 */ lw $t4, 0x48($sp) +/* 110ABC 7F0DBF8C 32390001 */ andi $t9, $s1, 1 +/* 110AC0 7F0DBF90 326A0028 */ andi $t2, $s3, 0x28 +/* 110AC4 7F0DBF94 01994825 */ or $t1, $t4, $t9 +/* 110AC8 7F0DBF98 012A8825 */ or $s1, $t1, $t2 +/* 110ACC 7F0DBF9C 322E00FF */ andi $t6, $s1, 0xff +/* 110AD0 7F0DBFA0 1000017D */ b .L7F0DC598 +/* 110AD4 7F0DBFA4 01C08825 */ move $s1, $t6 +spectrum_op_BIT_x_D: +/* 110AD8 7F0DBFA8 93AB0100 */ lbu $t3, 0x100($sp) +/* 110ADC 7F0DBFAC 240F0001 */ li $t7, 1 +/* 110AE0 7F0DBFB0 240C0054 */ li $t4, 84 +/* 110AE4 7F0DBFB4 016F6804 */ sllv $t5, $t7, $t3 +/* 110AE8 7F0DBFB8 028D4024 */ and $t0, $s4, $t5 +/* 110AEC 7F0DBFBC 11000003 */ beqz $t0, .L7F0DBFCC +/* 110AF0 7F0DBFC0 24180010 */ li $t8, 16 +/* 110AF4 7F0DBFC4 10000002 */ b .L7F0DBFD0 +/* 110AF8 7F0DBFC8 AFB80048 */ sw $t8, 0x48($sp) +.L7F0DBFCC: +/* 110AFC 7F0DBFCC AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DBFD0: +/* 110B00 7F0DBFD0 8FB90048 */ lw $t9, 0x48($sp) +/* 110B04 7F0DBFD4 32290001 */ andi $t1, $s1, 1 +/* 110B08 7F0DBFD8 328E0028 */ andi $t6, $s4, 0x28 +/* 110B0C 7F0DBFDC 03295025 */ or $t2, $t9, $t1 +/* 110B10 7F0DBFE0 014E8825 */ or $s1, $t2, $t6 +/* 110B14 7F0DBFE4 322F00FF */ andi $t7, $s1, 0xff +/* 110B18 7F0DBFE8 1000016B */ b .L7F0DC598 +/* 110B1C 7F0DBFEC 01E08825 */ move $s1, $t7 +spectrum_op_BIT_x_E: +/* 110B20 7F0DBFF0 93AB0100 */ lbu $t3, 0x100($sp) +/* 110B24 7F0DBFF4 240D0001 */ li $t5, 1 +/* 110B28 7F0DBFF8 24190054 */ li $t9, 84 +/* 110B2C 7F0DBFFC 016D4004 */ sllv $t0, $t5, $t3 +/* 110B30 7F0DC000 02A8C024 */ and $t8, $s5, $t0 +/* 110B34 7F0DC004 13000003 */ beqz $t8, .L7F0DC014 +/* 110B38 7F0DC008 240C0010 */ li $t4, 16 +/* 110B3C 7F0DC00C 10000002 */ b .L7F0DC018 +/* 110B40 7F0DC010 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DC014: +/* 110B44 7F0DC014 AFB90048 */ sw $t9, 0x48($sp) +.L7F0DC018: +/* 110B48 7F0DC018 8FA90048 */ lw $t1, 0x48($sp) +/* 110B4C 7F0DC01C 322A0001 */ andi $t2, $s1, 1 +/* 110B50 7F0DC020 32AF0028 */ andi $t7, $s5, 0x28 +/* 110B54 7F0DC024 012A7025 */ or $t6, $t1, $t2 +/* 110B58 7F0DC028 01CF8825 */ or $s1, $t6, $t7 +/* 110B5C 7F0DC02C 322D00FF */ andi $t5, $s1, 0xff +/* 110B60 7F0DC030 10000159 */ b .L7F0DC598 +/* 110B64 7F0DC034 01A08825 */ move $s1, $t5 +spectrum_op_BIT_x_H: +/* 110B68 7F0DC038 93AB0100 */ lbu $t3, 0x100($sp) +/* 110B6C 7F0DC03C 24080001 */ li $t0, 1 +/* 110B70 7F0DC040 24090054 */ li $t1, 84 +/* 110B74 7F0DC044 0168C004 */ sllv $t8, $t0, $t3 +/* 110B78 7F0DC048 02D86024 */ and $t4, $s6, $t8 +/* 110B7C 7F0DC04C 11800003 */ beqz $t4, .L7F0DC05C +/* 110B80 7F0DC050 24190010 */ li $t9, 16 +/* 110B84 7F0DC054 10000002 */ b .L7F0DC060 +/* 110B88 7F0DC058 AFB90048 */ sw $t9, 0x48($sp) +.L7F0DC05C: +/* 110B8C 7F0DC05C AFA90048 */ sw $t1, 0x48($sp) +.L7F0DC060: +/* 110B90 7F0DC060 8FAA0048 */ lw $t2, 0x48($sp) +/* 110B94 7F0DC064 322E0001 */ andi $t6, $s1, 1 +/* 110B98 7F0DC068 32CD0028 */ andi $t5, $s6, 0x28 +/* 110B9C 7F0DC06C 014E7825 */ or $t7, $t2, $t6 +/* 110BA0 7F0DC070 01ED8825 */ or $s1, $t7, $t5 +/* 110BA4 7F0DC074 322800FF */ andi $t0, $s1, 0xff +/* 110BA8 7F0DC078 10000147 */ b .L7F0DC598 +/* 110BAC 7F0DC07C 01008825 */ move $s1, $t0 +spectrum_op_BIT_x_L: +/* 110BB0 7F0DC080 93AB0100 */ lbu $t3, 0x100($sp) +/* 110BB4 7F0DC084 24180001 */ li $t8, 1 +/* 110BB8 7F0DC088 240A0054 */ li $t2, 84 +/* 110BBC 7F0DC08C 01786004 */ sllv $t4, $t8, $t3 +/* 110BC0 7F0DC090 02ECC824 */ and $t9, $s7, $t4 +/* 110BC4 7F0DC094 13200003 */ beqz $t9, .L7F0DC0A4 +/* 110BC8 7F0DC098 24090010 */ li $t1, 16 +/* 110BCC 7F0DC09C 10000002 */ b .L7F0DC0A8 +/* 110BD0 7F0DC0A0 AFA90048 */ sw $t1, 0x48($sp) +.L7F0DC0A4: +/* 110BD4 7F0DC0A4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0DC0A8: +/* 110BD8 7F0DC0A8 8FAE0048 */ lw $t6, 0x48($sp) +/* 110BDC 7F0DC0AC 322F0001 */ andi $t7, $s1, 1 +/* 110BE0 7F0DC0B0 32E80028 */ andi $t0, $s7, 0x28 +/* 110BE4 7F0DC0B4 01CF6825 */ or $t5, $t6, $t7 +/* 110BE8 7F0DC0B8 01A88825 */ or $s1, $t5, $t0 +/* 110BEC 7F0DC0BC 323800FF */ andi $t8, $s1, 0xff +/* 110BF0 7F0DC0C0 10000135 */ b .L7F0DC598 +/* 110BF4 7F0DC0C4 03008825 */ move $s1, $t8 +spectrum_op_BIT_x_HL: +/* 110BF8 7F0DC0C8 8FAB028C */ lw $t3, 0x28c($sp) +/* 110BFC 7F0DC0CC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 110C00 7F0DC0D0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 110C04 7F0DC0D4 97B9013C */ lhu $t9, 0x13c($sp) +/* 110C08 7F0DC0D8 256C0004 */ addiu $t4, $t3, 4 +/* 110C0C 7F0DC0DC 93AF0100 */ lbu $t7, 0x100($sp) +/* 110C10 7F0DC0E0 AFAC028C */ sw $t4, 0x28c($sp) +/* 110C14 7F0DC0E4 03295021 */ addu $t2, $t9, $t1 +/* 110C18 7F0DC0E8 914E0000 */ lbu $t6, ($t2) +/* 110C1C 7F0DC0EC 240D0001 */ li $t5, 1 +/* 110C20 7F0DC0F0 01ED4004 */ sllv $t0, $t5, $t7 +/* 110C24 7F0DC0F4 01C8C024 */ and $t8, $t6, $t0 +/* 110C28 7F0DC0F8 13000004 */ beqz $t8, .L7F0DC10C +/* 110C2C 7F0DC0FC A3AE0139 */ sb $t6, 0x139($sp) +/* 110C30 7F0DC100 240B0010 */ li $t3, 16 +/* 110C34 7F0DC104 10000003 */ b .L7F0DC114 +/* 110C38 7F0DC108 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DC10C: +/* 110C3C 7F0DC10C 240C0054 */ li $t4, 84 +/* 110C40 7F0DC110 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DC114: +/* 110C44 7F0DC114 8FB90048 */ lw $t9, 0x48($sp) +/* 110C48 7F0DC118 93AD0139 */ lbu $t5, 0x139($sp) +/* 110C4C 7F0DC11C 97A8013C */ lhu $t0, 0x13c($sp) +/* 110C50 7F0DC120 32290001 */ andi $t1, $s1, 1 +/* 110C54 7F0DC124 03295025 */ or $t2, $t9, $t1 +/* 110C58 7F0DC128 31AF0028 */ andi $t7, $t5, 0x28 +/* 110C5C 7F0DC12C 014F8825 */ or $s1, $t2, $t7 +/* 110C60 7F0DC130 322E00FF */ andi $t6, $s1, 0xff +/* 110C64 7F0DC134 29015B00 */ slti $at, $t0, 0x5b00 +/* 110C68 7F0DC138 14200007 */ bnez $at, .L7F0DC158 +/* 110C6C 7F0DC13C 01C08825 */ move $s1, $t6 +/* 110C70 7F0DC140 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110C74 7F0DC144 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110C78 7F0DC148 93B80139 */ lbu $t8, 0x139($sp) +/* 110C7C 7F0DC14C 01686021 */ addu $t4, $t3, $t0 +/* 110C80 7F0DC150 10000111 */ b .L7F0DC598 +/* 110C84 7F0DC154 A1980000 */ sb $t8, ($t4) +.L7F0DC158: +/* 110C88 7F0DC158 97B9013C */ lhu $t9, 0x13c($sp) +/* 110C8C 7F0DC15C 97B8013C */ lhu $t8, 0x13c($sp) +/* 110C90 7F0DC160 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 110C94 7F0DC164 2B215800 */ slti $at, $t9, 0x5800 +/* 110C98 7F0DC168 5420000D */ bnezl $at, .L7F0DC1A0 +/* 110C9C 7F0DC16C 2B014000 */ slti $at, $t8, 0x4000 +/* 110CA0 7F0DC170 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110CA4 7F0DC174 93A90139 */ lbu $t1, 0x139($sp) +/* 110CA8 7F0DC178 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 110CAC 7F0DC17C 01B95021 */ addu $t2, $t5, $t9 +/* 110CB0 7F0DC180 A1490000 */ sb $t1, ($t2) +/* 110CB4 7F0DC184 97AB013C */ lhu $t3, 0x13c($sp) +/* 110CB8 7F0DC188 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110CBC 7F0DC18C 240F0001 */ li $t7, 1 +/* 110CC0 7F0DC190 01CB4021 */ addu $t0, $t6, $t3 +/* 110CC4 7F0DC194 10000100 */ b .L7F0DC598 +/* 110CC8 7F0DC198 A10FA800 */ sb $t7, -0x5800($t0) +/* 110CCC 7F0DC19C 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DC1A0: +/* 110CD0 7F0DC1A0 142000FD */ bnez $at, .L7F0DC598 +/* 110CD4 7F0DC1A4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 110CD8 7F0DC1A8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110CDC 7F0DC1AC 93AC0139 */ lbu $t4, 0x139($sp) +/* 110CE0 7F0DC1B0 24090001 */ li $t1, 1 +/* 110CE4 7F0DC1B4 01B8C821 */ addu $t9, $t5, $t8 +/* 110CE8 7F0DC1B8 A32C0000 */ sb $t4, ($t9) +/* 110CEC 7F0DC1BC 97AA013C */ lhu $t2, 0x13c($sp) +/* 110CF0 7F0DC1C0 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 110CF4 7F0DC1C4 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 110CF8 7F0DC1C8 314E1800 */ andi $t6, $t2, 0x1800 +/* 110CFC 7F0DC1CC 000E58C3 */ sra $t3, $t6, 3 +/* 110D00 7F0DC1D0 314F00FF */ andi $t7, $t2, 0xff +/* 110D04 7F0DC1D4 016F4025 */ or $t0, $t3, $t7 +/* 110D08 7F0DC1D8 01A8C021 */ addu $t8, $t5, $t0 +/* 110D0C 7F0DC1DC 100000EE */ b .L7F0DC598 +/* 110D10 7F0DC1E0 A3090000 */ sb $t1, ($t8) +spectrum_op_BIT_x_A: +/* 110D14 7F0DC1E4 93AC0100 */ lbu $t4, 0x100($sp) +/* 110D18 7F0DC1E8 24190001 */ li $t9, 1 +/* 110D1C 7F0DC1EC 240F0054 */ li $t7, 84 +/* 110D20 7F0DC1F0 01997004 */ sllv $t6, $t9, $t4 +/* 110D24 7F0DC1F4 020E5024 */ and $t2, $s0, $t6 +/* 110D28 7F0DC1F8 11400003 */ beqz $t2, .L7F0DC208 +/* 110D2C 7F0DC1FC 240B0010 */ li $t3, 16 +/* 110D30 7F0DC200 10000002 */ b .L7F0DC20C +/* 110D34 7F0DC204 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DC208: +/* 110D38 7F0DC208 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0DC20C: +/* 110D3C 7F0DC20C 8FAD0048 */ lw $t5, 0x48($sp) +/* 110D40 7F0DC210 32280001 */ andi $t0, $s1, 1 +/* 110D44 7F0DC214 32180028 */ andi $t8, $s0, 0x28 +/* 110D48 7F0DC218 01A84825 */ or $t1, $t5, $t0 +/* 110D4C 7F0DC21C 01388825 */ or $s1, $t1, $t8 +/* 110D50 7F0DC220 323900FF */ andi $t9, $s1, 0xff +/* 110D54 7F0DC224 100000DC */ b .L7F0DC598 +/* 110D58 7F0DC228 03208825 */ move $s1, $t9 +spectrum_op_RES_x_B: +/* 110D5C 7F0DC22C 93AC0100 */ lbu $t4, 0x100($sp) +/* 110D60 7F0DC230 240E0001 */ li $t6, 1 +/* 110D64 7F0DC234 018E5004 */ sllv $t2, $t6, $t4 +/* 110D68 7F0DC238 01405827 */ not $t3, $t2 +/* 110D6C 7F0DC23C 024B9024 */ and $s2, $s2, $t3 +/* 110D70 7F0DC240 324F00FF */ andi $t7, $s2, 0xff +/* 110D74 7F0DC244 100000D4 */ b .L7F0DC598 +/* 110D78 7F0DC248 01E09025 */ move $s2, $t7 +spectrum_op_RES_x_C: +/* 110D7C 7F0DC24C 93AD0100 */ lbu $t5, 0x100($sp) +/* 110D80 7F0DC250 24080001 */ li $t0, 1 +/* 110D84 7F0DC254 01A84804 */ sllv $t1, $t0, $t5 +/* 110D88 7F0DC258 0120C027 */ not $t8, $t1 +/* 110D8C 7F0DC25C 02789824 */ and $s3, $s3, $t8 +/* 110D90 7F0DC260 327900FF */ andi $t9, $s3, 0xff +/* 110D94 7F0DC264 100000CC */ b .L7F0DC598 +/* 110D98 7F0DC268 03209825 */ move $s3, $t9 +spectrum_op_RES_x_D: +/* 110D9C 7F0DC26C 93AE0100 */ lbu $t6, 0x100($sp) +/* 110DA0 7F0DC270 240C0001 */ li $t4, 1 +/* 110DA4 7F0DC274 01CC5004 */ sllv $t2, $t4, $t6 +/* 110DA8 7F0DC278 01405827 */ not $t3, $t2 +/* 110DAC 7F0DC27C 028BA024 */ and $s4, $s4, $t3 +/* 110DB0 7F0DC280 328F00FF */ andi $t7, $s4, 0xff +/* 110DB4 7F0DC284 100000C4 */ b .L7F0DC598 +/* 110DB8 7F0DC288 01E0A025 */ move $s4, $t7 +spectrum_op_RES_x_E: +/* 110DBC 7F0DC28C 93A80100 */ lbu $t0, 0x100($sp) +/* 110DC0 7F0DC290 240D0001 */ li $t5, 1 +/* 110DC4 7F0DC294 010D4804 */ sllv $t1, $t5, $t0 +/* 110DC8 7F0DC298 0120C027 */ not $t8, $t1 +/* 110DCC 7F0DC29C 02B8A824 */ and $s5, $s5, $t8 +/* 110DD0 7F0DC2A0 32B900FF */ andi $t9, $s5, 0xff +/* 110DD4 7F0DC2A4 100000BC */ b .L7F0DC598 +/* 110DD8 7F0DC2A8 0320A825 */ move $s5, $t9 +spectrum_op_RES_x_H: +/* 110DDC 7F0DC2AC 93AC0100 */ lbu $t4, 0x100($sp) +/* 110DE0 7F0DC2B0 240E0001 */ li $t6, 1 +/* 110DE4 7F0DC2B4 018E5004 */ sllv $t2, $t6, $t4 +/* 110DE8 7F0DC2B8 01405827 */ not $t3, $t2 +/* 110DEC 7F0DC2BC 02CBB024 */ and $s6, $s6, $t3 +/* 110DF0 7F0DC2C0 32CF00FF */ andi $t7, $s6, 0xff +/* 110DF4 7F0DC2C4 100000B4 */ b .L7F0DC598 +/* 110DF8 7F0DC2C8 01E0B025 */ move $s6, $t7 +spectrum_op_RES_x_L: +/* 110DFC 7F0DC2CC 93AD0100 */ lbu $t5, 0x100($sp) +/* 110E00 7F0DC2D0 24080001 */ li $t0, 1 +/* 110E04 7F0DC2D4 01A84804 */ sllv $t1, $t0, $t5 +/* 110E08 7F0DC2D8 0120C027 */ not $t8, $t1 +/* 110E0C 7F0DC2DC 02F8B824 */ and $s7, $s7, $t8 +/* 110E10 7F0DC2E0 32F900FF */ andi $t9, $s7, 0xff +/* 110E14 7F0DC2E4 100000AC */ b .L7F0DC598 +/* 110E18 7F0DC2E8 0320B825 */ move $s7, $t9 +spectrum_op_RES_x_HL: +/* 110E1C 7F0DC2EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 110E20 7F0DC2F0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110E24 7F0DC2F4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110E28 7F0DC2F8 97AA013C */ lhu $t2, 0x13c($sp) +/* 110E2C 7F0DC2FC 25CC0004 */ addiu $t4, $t6, 4 +/* 110E30 7F0DC300 93AD0100 */ lbu $t5, 0x100($sp) +/* 110E34 7F0DC304 AFAC028C */ sw $t4, 0x28c($sp) +/* 110E38 7F0DC308 014B7821 */ addu $t7, $t2, $t3 +/* 110E3C 7F0DC30C 91E80000 */ lbu $t0, ($t7) +/* 110E40 7F0DC310 97AC013C */ lhu $t4, 0x13c($sp) +/* 110E44 7F0DC314 24090001 */ li $t1, 1 +/* 110E48 7F0DC318 01A9C004 */ sllv $t8, $t1, $t5 +/* 110E4C 7F0DC31C 0300C827 */ not $t9, $t8 +/* 110E50 7F0DC320 01197024 */ and $t6, $t0, $t9 +/* 110E54 7F0DC324 A3A80139 */ sb $t0, 0x139($sp) +/* 110E58 7F0DC328 29815B00 */ slti $at, $t4, 0x5b00 +/* 110E5C 7F0DC32C 14200006 */ bnez $at, .L7F0DC348 +/* 110E60 7F0DC330 A3AE0139 */ sb $t6, 0x139($sp) +/* 110E64 7F0DC334 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110E68 7F0DC338 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110E6C 7F0DC33C 016C7821 */ addu $t7, $t3, $t4 +/* 110E70 7F0DC340 10000095 */ b .L7F0DC598 +/* 110E74 7F0DC344 A1EE0000 */ sb $t6, ($t7) +.L7F0DC348: +/* 110E78 7F0DC348 97A9013C */ lhu $t1, 0x13c($sp) +/* 110E7C 7F0DC34C 97AA013C */ lhu $t2, 0x13c($sp) +/* 110E80 7F0DC350 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 110E84 7F0DC354 29215800 */ slti $at, $t1, 0x5800 +/* 110E88 7F0DC358 5420000D */ bnezl $at, .L7F0DC390 +/* 110E8C 7F0DC35C 29414000 */ slti $at, $t2, 0x4000 +/* 110E90 7F0DC360 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 110E94 7F0DC364 93AD0139 */ lbu $t5, 0x139($sp) +/* 110E98 7F0DC368 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 110E9C 7F0DC36C 03094021 */ addu $t0, $t8, $t1 +/* 110EA0 7F0DC370 A10D0000 */ sb $t5, ($t0) +/* 110EA4 7F0DC374 97AB013C */ lhu $t3, 0x13c($sp) +/* 110EA8 7F0DC378 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110EAC 7F0DC37C 24190001 */ li $t9, 1 +/* 110EB0 7F0DC380 01CB6021 */ addu $t4, $t6, $t3 +/* 110EB4 7F0DC384 10000084 */ b .L7F0DC598 +/* 110EB8 7F0DC388 A199A800 */ sb $t9, -0x5800($t4) +/* 110EBC 7F0DC38C 29414000 */ slti $at, $t2, 0x4000 +.L7F0DC390: +/* 110EC0 7F0DC390 14200081 */ bnez $at, .L7F0DC598 +/* 110EC4 7F0DC394 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 110EC8 7F0DC398 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 110ECC 7F0DC39C 93AF0139 */ lbu $t7, 0x139($sp) +/* 110ED0 7F0DC3A0 240D0001 */ li $t5, 1 +/* 110ED4 7F0DC3A4 030A4821 */ addu $t1, $t8, $t2 +/* 110ED8 7F0DC3A8 A12F0000 */ sb $t7, ($t1) +/* 110EDC 7F0DC3AC 97A8013C */ lhu $t0, 0x13c($sp) +/* 110EE0 7F0DC3B0 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 110EE4 7F0DC3B4 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 110EE8 7F0DC3B8 310E1800 */ andi $t6, $t0, 0x1800 +/* 110EEC 7F0DC3BC 000E58C3 */ sra $t3, $t6, 3 +/* 110EF0 7F0DC3C0 311900FF */ andi $t9, $t0, 0xff +/* 110EF4 7F0DC3C4 01796025 */ or $t4, $t3, $t9 +/* 110EF8 7F0DC3C8 030C5021 */ addu $t2, $t8, $t4 +/* 110EFC 7F0DC3CC 10000072 */ b .L7F0DC598 +/* 110F00 7F0DC3D0 A14D0000 */ sb $t5, ($t2) +spectrum_op_RES_x_A: +/* 110F04 7F0DC3D4 93AF0100 */ lbu $t7, 0x100($sp) +/* 110F08 7F0DC3D8 24090001 */ li $t1, 1 +/* 110F0C 7F0DC3DC 01E97004 */ sllv $t6, $t1, $t7 +/* 110F10 7F0DC3E0 01C04027 */ not $t0, $t6 +/* 110F14 7F0DC3E4 02088024 */ and $s0, $s0, $t0 +/* 110F18 7F0DC3E8 320B00FF */ andi $t3, $s0, 0xff +/* 110F1C 7F0DC3EC 1000006A */ b .L7F0DC598 +/* 110F20 7F0DC3F0 01608025 */ move $s0, $t3 +spectrum_op_SET_x_B: +/* 110F24 7F0DC3F4 93B90100 */ lbu $t9, 0x100($sp) +/* 110F28 7F0DC3F8 24180001 */ li $t8, 1 +/* 110F2C 7F0DC3FC 03386004 */ sllv $t4, $t8, $t9 +/* 110F30 7F0DC400 024C9025 */ or $s2, $s2, $t4 +/* 110F34 7F0DC404 324D00FF */ andi $t5, $s2, 0xff +/* 110F38 7F0DC408 10000063 */ b .L7F0DC598 +/* 110F3C 7F0DC40C 01A09025 */ move $s2, $t5 +spectrum_op_SET_x_C: +/* 110F40 7F0DC410 93AA0100 */ lbu $t2, 0x100($sp) +/* 110F44 7F0DC414 24090001 */ li $t1, 1 +/* 110F48 7F0DC418 01497804 */ sllv $t7, $t1, $t2 +/* 110F4C 7F0DC41C 026F9825 */ or $s3, $s3, $t7 +/* 110F50 7F0DC420 326E00FF */ andi $t6, $s3, 0xff +/* 110F54 7F0DC424 1000005C */ b .L7F0DC598 +/* 110F58 7F0DC428 01C09825 */ move $s3, $t6 +spectrum_op_SET_x_D: +/* 110F5C 7F0DC42C 93A80100 */ lbu $t0, 0x100($sp) +/* 110F60 7F0DC430 240B0001 */ li $t3, 1 +/* 110F64 7F0DC434 010BC004 */ sllv $t8, $t3, $t0 +/* 110F68 7F0DC438 0298A025 */ or $s4, $s4, $t8 +/* 110F6C 7F0DC43C 329900FF */ andi $t9, $s4, 0xff +/* 110F70 7F0DC440 10000055 */ b .L7F0DC598 +/* 110F74 7F0DC444 0320A025 */ move $s4, $t9 +spectrum_op_SET_x_E: +/* 110F78 7F0DC448 93AC0100 */ lbu $t4, 0x100($sp) +/* 110F7C 7F0DC44C 240D0001 */ li $t5, 1 +/* 110F80 7F0DC450 018D4804 */ sllv $t1, $t5, $t4 +/* 110F84 7F0DC454 02A9A825 */ or $s5, $s5, $t1 +/* 110F88 7F0DC458 32AA00FF */ andi $t2, $s5, 0xff +/* 110F8C 7F0DC45C 1000004E */ b .L7F0DC598 +/* 110F90 7F0DC460 0140A825 */ move $s5, $t2 +spectrum_op_SET_x_H: +/* 110F94 7F0DC464 93AF0100 */ lbu $t7, 0x100($sp) +/* 110F98 7F0DC468 240E0001 */ li $t6, 1 +/* 110F9C 7F0DC46C 01EE5804 */ sllv $t3, $t6, $t7 +/* 110FA0 7F0DC470 02CBB025 */ or $s6, $s6, $t3 +/* 110FA4 7F0DC474 32C800FF */ andi $t0, $s6, 0xff +/* 110FA8 7F0DC478 10000047 */ b .L7F0DC598 +/* 110FAC 7F0DC47C 0100B025 */ move $s6, $t0 +spectrum_op_SET_x_L: +/* 110FB0 7F0DC480 93B80100 */ lbu $t8, 0x100($sp) +/* 110FB4 7F0DC484 24190001 */ li $t9, 1 +/* 110FB8 7F0DC488 03196804 */ sllv $t5, $t9, $t8 +/* 110FBC 7F0DC48C 02EDB825 */ or $s7, $s7, $t5 +/* 110FC0 7F0DC490 32EC00FF */ andi $t4, $s7, 0xff +/* 110FC4 7F0DC494 10000040 */ b .L7F0DC598 +/* 110FC8 7F0DC498 0180B825 */ move $s7, $t4 +spectrum_op_SET_x_HL: +/* 110FCC 7F0DC49C 8FA9028C */ lw $t1, 0x28c($sp) +/* 110FD0 7F0DC4A0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 110FD4 7F0DC4A4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 110FD8 7F0DC4A8 97AE013C */ lhu $t6, 0x13c($sp) +/* 110FDC 7F0DC4AC 252A0004 */ addiu $t2, $t1, 4 +/* 110FE0 7F0DC4B0 AFAA028C */ sw $t2, 0x28c($sp) +/* 110FE4 7F0DC4B4 01CF5821 */ addu $t3, $t6, $t7 +/* 110FE8 7F0DC4B8 91680000 */ lbu $t0, ($t3) +/* 110FEC 7F0DC4BC 93B90100 */ lbu $t9, 0x100($sp) +/* 110FF0 7F0DC4C0 97A9013C */ lhu $t1, 0x13c($sp) +/* 110FF4 7F0DC4C4 24180001 */ li $t8, 1 +/* 110FF8 7F0DC4C8 03386804 */ sllv $t5, $t8, $t9 +/* 110FFC 7F0DC4CC 010D6025 */ or $t4, $t0, $t5 +/* 111000 7F0DC4D0 A3A80139 */ sb $t0, 0x139($sp) +/* 111004 7F0DC4D4 29215B00 */ slti $at, $t1, 0x5b00 +/* 111008 7F0DC4D8 14200006 */ bnez $at, .L7F0DC4F4 +/* 11100C 7F0DC4DC A3AC0139 */ sb $t4, 0x139($sp) +/* 111010 7F0DC4E0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111014 7F0DC4E4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111018 7F0DC4E8 01C97821 */ addu $t7, $t6, $t1 +/* 11101C 7F0DC4EC 1000002A */ b .L7F0DC598 +/* 111020 7F0DC4F0 A1EC0000 */ sb $t4, ($t7) +.L7F0DC4F4: +/* 111024 7F0DC4F4 97AB013C */ lhu $t3, 0x13c($sp) +/* 111028 7F0DC4F8 97AA013C */ lhu $t2, 0x13c($sp) +/* 11102C 7F0DC4FC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111030 7F0DC500 29615800 */ slti $at, $t3, 0x5800 +/* 111034 7F0DC504 5420000D */ bnezl $at, .L7F0DC53C +/* 111038 7F0DC508 29414000 */ slti $at, $t2, 0x4000 +/* 11103C 7F0DC50C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111040 7F0DC510 93B80139 */ lbu $t8, 0x139($sp) +/* 111044 7F0DC514 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 111048 7F0DC518 032B4021 */ addu $t0, $t9, $t3 +/* 11104C 7F0DC51C A1180000 */ sb $t8, ($t0) +/* 111050 7F0DC520 97AE013C */ lhu $t6, 0x13c($sp) +/* 111054 7F0DC524 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 111058 7F0DC528 240D0001 */ li $t5, 1 +/* 11105C 7F0DC52C 018E4821 */ addu $t1, $t4, $t6 +/* 111060 7F0DC530 10000019 */ b .L7F0DC598 +/* 111064 7F0DC534 A12DA800 */ sb $t5, -0x5800($t1) +/* 111068 7F0DC538 29414000 */ slti $at, $t2, 0x4000 +.L7F0DC53C: +/* 11106C 7F0DC53C 14200016 */ bnez $at, .L7F0DC598 +/* 111070 7F0DC540 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111074 7F0DC544 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111078 7F0DC548 93AF0139 */ lbu $t7, 0x139($sp) +/* 11107C 7F0DC54C 24180001 */ li $t8, 1 +/* 111080 7F0DC550 032A5821 */ addu $t3, $t9, $t2 +/* 111084 7F0DC554 A16F0000 */ sb $t7, ($t3) +/* 111088 7F0DC558 97A8013C */ lhu $t0, 0x13c($sp) +/* 11108C 7F0DC55C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 111090 7F0DC560 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 111094 7F0DC564 310C1800 */ andi $t4, $t0, 0x1800 +/* 111098 7F0DC568 000C70C3 */ sra $t6, $t4, 3 +/* 11109C 7F0DC56C 310D00FF */ andi $t5, $t0, 0xff +/* 1110A0 7F0DC570 01CD4825 */ or $t1, $t6, $t5 +/* 1110A4 7F0DC574 03295021 */ addu $t2, $t9, $t1 +/* 1110A8 7F0DC578 10000007 */ b .L7F0DC598 +/* 1110AC 7F0DC57C A1580000 */ sb $t8, ($t2) +spectrum_op_SET_x_A: +/* 1110B0 7F0DC580 93AF0100 */ lbu $t7, 0x100($sp) +/* 1110B4 7F0DC584 240B0001 */ li $t3, 1 +/* 1110B8 7F0DC588 01EB6004 */ sllv $t4, $t3, $t7 +/* 1110BC 7F0DC58C 020C8025 */ or $s0, $s0, $t4 +/* 1110C0 7F0DC590 320800FF */ andi $t0, $s0, 0xff +/* 1110C4 7F0DC594 01008025 */ move $s0, $t0 +.L7F0DC598: +/* 1110C8 7F0DC598 93AE0287 */ lbu $t6, 0x287($sp) +/* 1110CC 7F0DC59C 93AD013A */ lbu $t5, 0x13a($sp) +/* 1110D0 7F0DC5A0 11C01896 */ beqz $t6, .L7F0E27FC +/* 1110D4 7F0DC5A4 2DA10008 */ sltiu $at, $t5, 8 +/* 1110D8 7F0DC5A8 10201894 */ beqz $at, .L7F0E27FC +/* 1110DC 7F0DC5AC 000D6880 */ sll $t5, $t5, 2 +/* 1110E0 7F0DC5B0 3C018006 */ lui $at, %hi(jpt_8005C68C) +/* 1110E4 7F0DC5B4 002D0821 */ addu $at, $at, $t5 +/* 1110E8 7F0DC5B8 8C2DC68C */ lw $t5, %lo(jpt_8005C68C)($at) +.L7F0DC5BC: +/* 1110EC 7F0DC5BC 01A00008 */ jr $t5 +/* 1110F0 7F0DC5C0 00000000 */ nop +.L7F0DC5C4: +/* 1110F4 7F0DC5C4 1000188D */ b .L7F0E27FC +/* 1110F8 7F0DC5C8 93B20139 */ lbu $s2, 0x139($sp) +.L7F0DC5CC: +/* 1110FC 7F0DC5CC 1000188B */ b .L7F0E27FC +/* 111100 7F0DC5D0 93B30139 */ lbu $s3, 0x139($sp) +.L7F0DC5D4: +/* 111104 7F0DC5D4 10001889 */ b .L7F0E27FC +/* 111108 7F0DC5D8 93B40139 */ lbu $s4, 0x139($sp) +.L7F0DC5DC: +/* 11110C 7F0DC5DC 10001887 */ b .L7F0E27FC +/* 111110 7F0DC5E0 93B50139 */ lbu $s5, 0x139($sp) +.L7F0DC5E4: +/* 111114 7F0DC5E4 10001885 */ b .L7F0E27FC +/* 111118 7F0DC5E8 93B60139 */ lbu $s6, 0x139($sp) +.L7F0DC5EC: +/* 11111C 7F0DC5EC 10001883 */ b .L7F0E27FC +/* 111120 7F0DC5F0 93B70139 */ lbu $s7, 0x139($sp) +.L7F0DC5F4: +/* 111124 7F0DC5F4 10001881 */ b .L7F0E27FC +/* 111128 7F0DC5F8 93B00139 */ lbu $s0, 0x139($sp) +spectrum_op_CC: +/* 11112C 7F0DC5FC 8FB9028C */ lw $t9, 0x28c($sp) +/* 111130 7F0DC600 32380040 */ andi $t8, $s1, 0x40 +/* 111134 7F0DC604 2729000A */ addiu $t1, $t9, 0xa +/* 111138 7F0DC608 13000072 */ beqz $t8, .L7F0DC7D4 +/* 11113C 7F0DC60C AFA9028C */ sw $t1, 0x28c($sp) +/* 111140 7F0DC610 97AF0292 */ lhu $t7, 0x292($sp) +/* 111144 7F0DC614 252B0007 */ addiu $t3, $t1, 7 +/* 111148 7F0DC618 AFAB028C */ sw $t3, 0x28c($sp) +/* 11114C 7F0DC61C 25ECFFFE */ addiu $t4, $t7, -2 +/* 111150 7F0DC620 3188FFFF */ andi $t0, $t4, 0xffff +/* 111154 7F0DC624 29015B00 */ slti $at, $t0, 0x5b00 +/* 111158 7F0DC628 14200008 */ bnez $at, .L7F0DC64C +/* 11115C 7F0DC62C A7AC0292 */ sh $t4, 0x292($sp) +/* 111160 7F0DC630 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111164 7F0DC634 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111168 7F0DC638 97AE0298 */ lhu $t6, 0x298($sp) +/* 11116C 7F0DC63C 03284821 */ addu $t1, $t9, $t0 +/* 111170 7F0DC640 25CD0002 */ addiu $t5, $t6, 2 +/* 111174 7F0DC644 10000024 */ b .L7F0DC6D8 +/* 111178 7F0DC648 A12D0000 */ sb $t5, ($t1) +.L7F0DC64C: +/* 11117C 7F0DC64C 97B80292 */ lhu $t8, 0x292($sp) +/* 111180 7F0DC650 97A90292 */ lhu $t1, 0x292($sp) +/* 111184 7F0DC654 97AA0298 */ lhu $t2, 0x298($sp) +/* 111188 7F0DC658 2B015800 */ slti $at, $t8, 0x5800 +/* 11118C 7F0DC65C 1420000C */ bnez $at, .L7F0DC690 +/* 111190 7F0DC660 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111194 7F0DC664 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111198 7F0DC668 254B0002 */ addiu $t3, $t2, 2 +/* 11119C 7F0DC66C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1111A0 7F0DC670 01F86021 */ addu $t4, $t7, $t8 +/* 1111A4 7F0DC674 A18B0000 */ sb $t3, ($t4) +/* 1111A8 7F0DC678 97A80292 */ lhu $t0, 0x292($sp) +/* 1111AC 7F0DC67C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1111B0 7F0DC680 240E0001 */ li $t6, 1 +/* 1111B4 7F0DC684 03286821 */ addu $t5, $t9, $t0 +/* 1111B8 7F0DC688 10000013 */ b .L7F0DC6D8 +/* 1111BC 7F0DC68C A1AEA800 */ sb $t6, -0x5800($t5) +.L7F0DC690: +/* 1111C0 7F0DC690 29214000 */ slti $at, $t1, 0x4000 +/* 1111C4 7F0DC694 14200010 */ bnez $at, .L7F0DC6D8 +/* 1111C8 7F0DC698 97AA0298 */ lhu $t2, 0x298($sp) +/* 1111CC 7F0DC69C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1111D0 7F0DC6A0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1111D4 7F0DC6A4 254F0002 */ addiu $t7, $t2, 2 +/* 1111D8 7F0DC6A8 240C0001 */ li $t4, 1 +/* 1111DC 7F0DC6AC 03095821 */ addu $t3, $t8, $t1 +/* 1111E0 7F0DC6B0 A16F0000 */ sb $t7, ($t3) +/* 1111E4 7F0DC6B4 97B90292 */ lhu $t9, 0x292($sp) +/* 1111E8 7F0DC6B8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1111EC 7F0DC6BC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1111F0 7F0DC6C0 33281800 */ andi $t0, $t9, 0x1800 +/* 1111F4 7F0DC6C4 000870C3 */ sra $t6, $t0, 3 +/* 1111F8 7F0DC6C8 332D00FF */ andi $t5, $t9, 0xff +/* 1111FC 7F0DC6CC 01CD5025 */ or $t2, $t6, $t5 +/* 111200 7F0DC6D0 030A4821 */ addu $t1, $t8, $t2 +/* 111204 7F0DC6D4 A12C0000 */ sb $t4, ($t1) +.L7F0DC6D8: +/* 111208 7F0DC6D8 97AF0292 */ lhu $t7, 0x292($sp) +/* 11120C 7F0DC6DC 97AA0292 */ lhu $t2, 0x292($sp) +/* 111210 7F0DC6E0 97A80298 */ lhu $t0, 0x298($sp) +/* 111214 7F0DC6E4 25EB0001 */ addiu $t3, $t7, 1 +/* 111218 7F0DC6E8 29615B00 */ slti $at, $t3, 0x5b00 +/* 11121C 7F0DC6EC 14200008 */ bnez $at, .L7F0DC710 +/* 111220 7F0DC6F0 254C0001 */ addiu $t4, $t2, 1 +/* 111224 7F0DC6F4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111228 7F0DC6F8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11122C 7F0DC6FC 25190002 */ addiu $t9, $t0, 2 +/* 111230 7F0DC700 00197203 */ sra $t6, $t9, 8 +/* 111234 7F0DC704 01AFC021 */ addu $t8, $t5, $t7 +/* 111238 7F0DC708 10000027 */ b .L7F0DC7A8 +/* 11123C 7F0DC70C A30E0001 */ sb $t6, 1($t8) +.L7F0DC710: +/* 111240 7F0DC710 29815800 */ slti $at, $t4, 0x5800 +/* 111244 7F0DC714 1420000F */ bnez $at, .L7F0DC754 +/* 111248 7F0DC718 97A90292 */ lhu $t1, 0x292($sp) +/* 11124C 7F0DC71C 97A90298 */ lhu $t1, 0x298($sp) +/* 111250 7F0DC720 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111254 7F0DC724 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111258 7F0DC728 252B0002 */ addiu $t3, $t1, 2 +/* 11125C 7F0DC72C 000B4203 */ sra $t0, $t3, 8 +/* 111260 7F0DC730 032A6821 */ addu $t5, $t9, $t2 +/* 111264 7F0DC734 A1A80001 */ sb $t0, 1($t5) +/* 111268 7F0DC738 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11126C 7F0DC73C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 111270 7F0DC740 97B80292 */ lhu $t8, 0x292($sp) +/* 111274 7F0DC744 240F0001 */ li $t7, 1 +/* 111278 7F0DC748 01D86021 */ addu $t4, $t6, $t8 +/* 11127C 7F0DC74C 10000016 */ b .L7F0DC7A8 +/* 111280 7F0DC750 A18FA801 */ sb $t7, -0x57ff($t4) +.L7F0DC754: +/* 111284 7F0DC754 252B0001 */ addiu $t3, $t1, 1 +/* 111288 7F0DC758 29614000 */ slti $at, $t3, 0x4000 +/* 11128C 7F0DC75C 14200012 */ bnez $at, .L7F0DC7A8 +/* 111290 7F0DC760 97B90298 */ lhu $t9, 0x298($sp) +/* 111294 7F0DC764 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111298 7F0DC768 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11129C 7F0DC76C 272A0002 */ addiu $t2, $t9, 2 +/* 1112A0 7F0DC770 000A4203 */ sra $t0, $t2, 8 +/* 1112A4 7F0DC774 01A97021 */ addu $t6, $t5, $t1 +/* 1112A8 7F0DC778 A1C80001 */ sb $t0, 1($t6) +/* 1112AC 7F0DC77C 97AF0292 */ lhu $t7, 0x292($sp) +/* 1112B0 7F0DC780 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1112B4 7F0DC784 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1112B8 7F0DC788 25EC0001 */ addiu $t4, $t7, 1 +/* 1112BC 7F0DC78C 318B1800 */ andi $t3, $t4, 0x1800 +/* 1112C0 7F0DC790 000BC8C3 */ sra $t9, $t3, 3 +/* 1112C4 7F0DC794 318A00FF */ andi $t2, $t4, 0xff +/* 1112C8 7F0DC798 032A6825 */ or $t5, $t9, $t2 +/* 1112CC 7F0DC79C 24180001 */ li $t8, 1 +/* 1112D0 7F0DC7A0 012D4021 */ addu $t0, $t1, $t5 +/* 1112D4 7F0DC7A4 A1180000 */ sb $t8, ($t0) +.L7F0DC7A8: +/* 1112D8 7F0DC7A8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1112DC 7F0DC7AC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1112E0 7F0DC7B0 97AE0298 */ lhu $t6, 0x298($sp) +/* 1112E4 7F0DC7B4 01EEC821 */ addu $t9, $t7, $t6 +/* 1112E8 7F0DC7B8 932A0001 */ lbu $t2, 1($t9) +/* 1112EC 7F0DC7BC 01CF5821 */ addu $t3, $t6, $t7 +/* 1112F0 7F0DC7C0 916C0000 */ lbu $t4, ($t3) +/* 1112F4 7F0DC7C4 000A4A00 */ sll $t1, $t2, 8 +/* 1112F8 7F0DC7C8 01896825 */ or $t5, $t4, $t1 +/* 1112FC 7F0DC7CC 1000180B */ b .L7F0E27FC +/* 111300 7F0DC7D0 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0DC7D4: +/* 111304 7F0DC7D4 97B80298 */ lhu $t8, 0x298($sp) +/* 111308 7F0DC7D8 27080002 */ addiu $t0, $t8, 2 +/* 11130C 7F0DC7DC 10001807 */ b .L7F0E27FC +/* 111310 7F0DC7E0 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_CD: +/* 111314 7F0DC7E4 8FAB028C */ lw $t3, 0x28c($sp) +/* 111318 7F0DC7E8 97AA0292 */ lhu $t2, 0x292($sp) +/* 11131C 7F0DC7EC 97AD0298 */ lhu $t5, 0x298($sp) +/* 111320 7F0DC7F0 256F000A */ addiu $t7, $t3, 0xa +/* 111324 7F0DC7F4 254CFFFE */ addiu $t4, $t2, -2 +/* 111328 7F0DC7F8 3189FFFF */ andi $t1, $t4, 0xffff +/* 11132C 7F0DC7FC AFAF028C */ sw $t7, 0x28c($sp) +/* 111330 7F0DC800 29215B00 */ slti $at, $t1, 0x5b00 +/* 111334 7F0DC804 25F90007 */ addiu $t9, $t7, 7 +/* 111338 7F0DC808 AFB9028C */ sw $t9, 0x28c($sp) +/* 11133C 7F0DC80C 14200007 */ bnez $at, .L7F0DC82C +/* 111340 7F0DC810 A7AC0292 */ sh $t4, 0x292($sp) +/* 111344 7F0DC814 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111348 7F0DC818 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 11134C 7F0DC81C 25B80002 */ addiu $t8, $t5, 2 +/* 111350 7F0DC820 01095821 */ addu $t3, $t0, $t1 +/* 111354 7F0DC824 10000024 */ b .L7F0DC8B8 +/* 111358 7F0DC828 A1780000 */ sb $t8, ($t3) +.L7F0DC82C: +/* 11135C 7F0DC82C 97AF0292 */ lhu $t7, 0x292($sp) +/* 111360 7F0DC830 97AB0292 */ lhu $t3, 0x292($sp) +/* 111364 7F0DC834 97AE0298 */ lhu $t6, 0x298($sp) +/* 111368 7F0DC838 29E15800 */ slti $at, $t7, 0x5800 +/* 11136C 7F0DC83C 1420000C */ bnez $at, .L7F0DC870 +/* 111370 7F0DC840 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111374 7F0DC844 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111378 7F0DC848 25D90002 */ addiu $t9, $t6, 2 +/* 11137C 7F0DC84C 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 111380 7F0DC850 014F6021 */ addu $t4, $t2, $t7 +/* 111384 7F0DC854 A1990000 */ sb $t9, ($t4) +/* 111388 7F0DC858 97A90292 */ lhu $t1, 0x292($sp) +/* 11138C 7F0DC85C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111390 7F0DC860 240D0001 */ li $t5, 1 +/* 111394 7F0DC864 0109C021 */ addu $t8, $t0, $t1 +/* 111398 7F0DC868 10000013 */ b .L7F0DC8B8 +/* 11139C 7F0DC86C A30DA800 */ sb $t5, -0x5800($t8) +.L7F0DC870: +/* 1113A0 7F0DC870 29614000 */ slti $at, $t3, 0x4000 +/* 1113A4 7F0DC874 14200010 */ bnez $at, .L7F0DC8B8 +/* 1113A8 7F0DC878 97AE0298 */ lhu $t6, 0x298($sp) +/* 1113AC 7F0DC87C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1113B0 7F0DC880 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1113B4 7F0DC884 25CA0002 */ addiu $t2, $t6, 2 +/* 1113B8 7F0DC888 240C0001 */ li $t4, 1 +/* 1113BC 7F0DC88C 01EBC821 */ addu $t9, $t7, $t3 +/* 1113C0 7F0DC890 A32A0000 */ sb $t2, ($t9) +/* 1113C4 7F0DC894 97A80292 */ lhu $t0, 0x292($sp) +/* 1113C8 7F0DC898 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1113CC 7F0DC89C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1113D0 7F0DC8A0 31091800 */ andi $t1, $t0, 0x1800 +/* 1113D4 7F0DC8A4 000968C3 */ sra $t5, $t1, 3 +/* 1113D8 7F0DC8A8 311800FF */ andi $t8, $t0, 0xff +/* 1113DC 7F0DC8AC 01B87025 */ or $t6, $t5, $t8 +/* 1113E0 7F0DC8B0 01EE5821 */ addu $t3, $t7, $t6 +/* 1113E4 7F0DC8B4 A16C0000 */ sb $t4, ($t3) +.L7F0DC8B8: +/* 1113E8 7F0DC8B8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1113EC 7F0DC8BC 97AE0292 */ lhu $t6, 0x292($sp) +/* 1113F0 7F0DC8C0 97A90298 */ lhu $t1, 0x298($sp) +/* 1113F4 7F0DC8C4 25590001 */ addiu $t9, $t2, 1 +/* 1113F8 7F0DC8C8 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1113FC 7F0DC8CC 14200008 */ bnez $at, .L7F0DC8F0 +/* 111400 7F0DC8D0 25CC0001 */ addiu $t4, $t6, 1 +/* 111404 7F0DC8D4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111408 7F0DC8D8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11140C 7F0DC8DC 25280002 */ addiu $t0, $t1, 2 +/* 111410 7F0DC8E0 00086A03 */ sra $t5, $t0, 8 +/* 111414 7F0DC8E4 030A7821 */ addu $t7, $t8, $t2 +/* 111418 7F0DC8E8 10000027 */ b .L7F0DC988 +/* 11141C 7F0DC8EC A1ED0001 */ sb $t5, 1($t7) +.L7F0DC8F0: +/* 111420 7F0DC8F0 29815800 */ slti $at, $t4, 0x5800 +/* 111424 7F0DC8F4 1420000F */ bnez $at, .L7F0DC934 +/* 111428 7F0DC8F8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11142C 7F0DC8FC 97AB0298 */ lhu $t3, 0x298($sp) +/* 111430 7F0DC900 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111434 7F0DC904 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111438 7F0DC908 25790002 */ addiu $t9, $t3, 2 +/* 11143C 7F0DC90C 00194A03 */ sra $t1, $t9, 8 +/* 111440 7F0DC910 010EC021 */ addu $t8, $t0, $t6 +/* 111444 7F0DC914 A3090001 */ sb $t1, 1($t8) +/* 111448 7F0DC918 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 11144C 7F0DC91C 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111450 7F0DC920 97AF0292 */ lhu $t7, 0x292($sp) +/* 111454 7F0DC924 240A0001 */ li $t2, 1 +/* 111458 7F0DC928 01AF6021 */ addu $t4, $t5, $t7 +/* 11145C 7F0DC92C 10000016 */ b .L7F0DC988 +/* 111460 7F0DC930 A18AA801 */ sb $t2, -0x57ff($t4) +.L7F0DC934: +/* 111464 7F0DC934 25790001 */ addiu $t9, $t3, 1 +/* 111468 7F0DC938 2B214000 */ slti $at, $t9, 0x4000 +/* 11146C 7F0DC93C 14200012 */ bnez $at, .L7F0DC988 +/* 111470 7F0DC940 97A80298 */ lhu $t0, 0x298($sp) +/* 111474 7F0DC944 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111478 7F0DC948 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11147C 7F0DC94C 250E0002 */ addiu $t6, $t0, 2 +/* 111480 7F0DC950 000E4A03 */ sra $t1, $t6, 8 +/* 111484 7F0DC954 030B6821 */ addu $t5, $t8, $t3 +/* 111488 7F0DC958 A1A90001 */ sb $t1, 1($t5) +/* 11148C 7F0DC95C 97AA0292 */ lhu $t2, 0x292($sp) +/* 111490 7F0DC960 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111494 7F0DC964 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111498 7F0DC968 254C0001 */ addiu $t4, $t2, 1 +/* 11149C 7F0DC96C 31991800 */ andi $t9, $t4, 0x1800 +/* 1114A0 7F0DC970 001940C3 */ sra $t0, $t9, 3 +/* 1114A4 7F0DC974 318E00FF */ andi $t6, $t4, 0xff +/* 1114A8 7F0DC978 010EC025 */ or $t8, $t0, $t6 +/* 1114AC 7F0DC97C 240F0001 */ li $t7, 1 +/* 1114B0 7F0DC980 01784821 */ addu $t1, $t3, $t8 +/* 1114B4 7F0DC984 A12F0000 */ sb $t7, ($t1) +.L7F0DC988: +/* 1114B8 7F0DC988 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1114BC 7F0DC98C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1114C0 7F0DC990 97AD0298 */ lhu $t5, 0x298($sp) +/* 1114C4 7F0DC994 014D4021 */ addu $t0, $t2, $t5 +/* 1114C8 7F0DC998 910E0001 */ lbu $t6, 1($t0) +/* 1114CC 7F0DC99C 01AAC821 */ addu $t9, $t5, $t2 +/* 1114D0 7F0DC9A0 932C0000 */ lbu $t4, ($t9) +/* 1114D4 7F0DC9A4 000E5A00 */ sll $t3, $t6, 8 +/* 1114D8 7F0DC9A8 018BC025 */ or $t8, $t4, $t3 +/* 1114DC 7F0DC9AC 10001793 */ b .L7F0E27FC +/* 1114E0 7F0DC9B0 A7B80298 */ sh $t8, 0x298($sp) +spectrum_op_CE: +/* 1114E4 7F0DC9B4 8FAF028C */ lw $t7, 0x28c($sp) +/* 1114E8 7F0DC9B8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1114EC 7F0DC9BC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1114F0 7F0DC9C0 97B90298 */ lhu $t9, 0x298($sp) +/* 1114F4 7F0DC9C4 25E90007 */ addiu $t1, $t7, 7 +/* 1114F8 7F0DC9C8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1114FC 7F0DC9CC 032A6821 */ addu $t5, $t9, $t2 +/* 111500 7F0DC9D0 91A80000 */ lbu $t0, ($t5) +/* 111504 7F0DC9D4 322C0001 */ andi $t4, $s1, 1 +/* 111508 7F0DC9D8 32380001 */ andi $t8, $s1, 1 +/* 11150C 7F0DC9DC 02087021 */ addu $t6, $s0, $t0 +/* 111510 7F0DC9E0 01CC5821 */ addu $t3, $t6, $t4 +/* 111514 7F0DC9E4 320E000F */ andi $t6, $s0, 0xf +/* 111518 7F0DC9E8 310D000F */ andi $t5, $t0, 0xf +/* 11151C 7F0DC9EC 01CD6021 */ addu $t4, $t6, $t5 +/* 111520 7F0DC9F0 316F00A8 */ andi $t7, $t3, 0xa8 +/* 111524 7F0DC9F4 000BCA03 */ sra $t9, $t3, 8 +/* 111528 7F0DC9F8 01F95025 */ or $t2, $t7, $t9 +/* 11152C 7F0DC9FC 01984821 */ addu $t1, $t4, $t8 +/* 111530 7F0DCA00 2401000F */ li $at, 15 +/* 111534 7F0DCA04 0029782A */ slt $t7, $at, $t1 +/* 111538 7F0DCA08 000FC900 */ sll $t9, $t7, 4 +/* 11153C 7F0DCA0C 01604825 */ move $t1, $t3 +/* 111540 7F0DCA10 02006827 */ not $t5, $s0 +/* 111544 7F0DCA14 01307826 */ xor $t7, $t1, $s0 +/* 111548 7F0DCA18 A7AB00FE */ sh $t3, 0xfe($sp) +/* 11154C 7F0DCA1C 01A86026 */ xor $t4, $t5, $t0 +/* 111550 7F0DCA20 93B000FF */ lbu $s0, 0xff($sp) +/* 111554 7F0DCA24 31980080 */ andi $t8, $t4, 0x80 +/* 111558 7F0DCA28 01597025 */ or $t6, $t2, $t9 +/* 11155C 7F0DCA2C 030F5024 */ and $t2, $t8, $t7 +/* 111560 7F0DCA30 A3A800FD */ sb $t0, 0xfd($sp) +/* 111564 7F0DCA34 97B80298 */ lhu $t8, 0x298($sp) +/* 111568 7F0DCA38 000AC943 */ sra $t9, $t2, 5 +/* 11156C 7F0DCA3C 2E080001 */ sltiu $t0, $s0, 1 +/* 111570 7F0DCA40 00085980 */ sll $t3, $t0, 6 +/* 111574 7F0DCA44 01D96825 */ or $t5, $t6, $t9 +/* 111578 7F0DCA48 01AB8825 */ or $s1, $t5, $t3 +/* 11157C 7F0DCA4C 322900FF */ andi $t1, $s1, 0xff +/* 111580 7F0DCA50 270F0001 */ addiu $t7, $t8, 1 +/* 111584 7F0DCA54 01208825 */ move $s1, $t1 +/* 111588 7F0DCA58 AFA80048 */ sw $t0, 0x48($sp) +/* 11158C 7F0DCA5C 10001767 */ b .L7F0E27FC +/* 111590 7F0DCA60 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_CF: +/* 111594 7F0DCA64 97B90292 */ lhu $t9, 0x292($sp) +/* 111598 7F0DCA68 8FAA028C */ lw $t2, 0x28c($sp) +/* 11159C 7F0DCA6C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1115A0 7F0DCA70 272DFFFE */ addiu $t5, $t9, -2 +/* 1115A4 7F0DCA74 31A8FFFF */ andi $t0, $t5, 0xffff +/* 1115A8 7F0DCA78 29015B00 */ slti $at, $t0, 0x5b00 +/* 1115AC 7F0DCA7C 254E000B */ addiu $t6, $t2, 0xb +/* 1115B0 7F0DCA80 AFAE028C */ sw $t6, 0x28c($sp) +/* 1115B4 7F0DCA84 14200006 */ bnez $at, .L7F0DCAA0 +/* 1115B8 7F0DCA88 A7AD0292 */ sh $t5, 0x292($sp) +/* 1115BC 7F0DCA8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1115C0 7F0DCA90 97AC0298 */ lhu $t4, 0x298($sp) +/* 1115C4 7F0DCA94 01684821 */ addu $t1, $t3, $t0 +/* 1115C8 7F0DCA98 10000023 */ b .L7F0DCB28 +/* 1115CC 7F0DCA9C A12C0000 */ sb $t4, ($t1) +.L7F0DCAA0: +/* 1115D0 7F0DCAA0 97B80292 */ lhu $t8, 0x292($sp) +/* 1115D4 7F0DCAA4 97AC0292 */ lhu $t4, 0x292($sp) +/* 1115D8 7F0DCAA8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1115DC 7F0DCAAC 2B015800 */ slti $at, $t8, 0x5800 +/* 1115E0 7F0DCAB0 5420000D */ bnezl $at, .L7F0DCAE8 +/* 1115E4 7F0DCAB4 29814000 */ slti $at, $t4, 0x4000 +/* 1115E8 7F0DCAB8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1115EC 7F0DCABC 97AF0298 */ lhu $t7, 0x298($sp) +/* 1115F0 7F0DCAC0 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 1115F4 7F0DCAC4 01587021 */ addu $t6, $t2, $t8 +/* 1115F8 7F0DCAC8 A1CF0000 */ sb $t7, ($t6) +/* 1115FC 7F0DCACC 97AB0292 */ lhu $t3, 0x292($sp) +/* 111600 7F0DCAD0 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111604 7F0DCAD4 24190001 */ li $t9, 1 +/* 111608 7F0DCAD8 01AB4021 */ addu $t0, $t5, $t3 +/* 11160C 7F0DCADC 10000012 */ b .L7F0DCB28 +/* 111610 7F0DCAE0 A119A800 */ sb $t9, -0x5800($t0) +/* 111614 7F0DCAE4 29814000 */ slti $at, $t4, 0x4000 +.L7F0DCAE8: +/* 111618 7F0DCAE8 1420000F */ bnez $at, .L7F0DCB28 +/* 11161C 7F0DCAEC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111620 7F0DCAF0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111624 7F0DCAF4 97A90298 */ lhu $t1, 0x298($sp) +/* 111628 7F0DCAF8 240F0001 */ li $t7, 1 +/* 11162C 7F0DCAFC 014CC021 */ addu $t8, $t2, $t4 +/* 111630 7F0DCB00 A3090000 */ sb $t1, ($t8) +/* 111634 7F0DCB04 97AE0292 */ lhu $t6, 0x292($sp) +/* 111638 7F0DCB08 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 11163C 7F0DCB0C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 111640 7F0DCB10 31CD1800 */ andi $t5, $t6, 0x1800 +/* 111644 7F0DCB14 000D58C3 */ sra $t3, $t5, 3 +/* 111648 7F0DCB18 31D900FF */ andi $t9, $t6, 0xff +/* 11164C 7F0DCB1C 01794025 */ or $t0, $t3, $t9 +/* 111650 7F0DCB20 01486021 */ addu $t4, $t2, $t0 +/* 111654 7F0DCB24 A18F0000 */ sb $t7, ($t4) +.L7F0DCB28: +/* 111658 7F0DCB28 97A90292 */ lhu $t1, 0x292($sp) +/* 11165C 7F0DCB2C 97AA0292 */ lhu $t2, 0x292($sp) +/* 111660 7F0DCB30 97AD0298 */ lhu $t5, 0x298($sp) +/* 111664 7F0DCB34 25380001 */ addiu $t8, $t1, 1 +/* 111668 7F0DCB38 2B015B00 */ slti $at, $t8, 0x5b00 +/* 11166C 7F0DCB3C 14200007 */ bnez $at, .L7F0DCB5C +/* 111670 7F0DCB40 25480001 */ addiu $t0, $t2, 1 +/* 111674 7F0DCB44 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 111678 7F0DCB48 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11167C 7F0DCB4C 000D7203 */ sra $t6, $t5, 8 +/* 111680 7F0DCB50 0169C821 */ addu $t9, $t3, $t1 +/* 111684 7F0DCB54 10000025 */ b .L7F0DCBEC +/* 111688 7F0DCB58 A32E0001 */ sb $t6, 1($t9) +.L7F0DCB5C: +/* 11168C 7F0DCB5C 29015800 */ slti $at, $t0, 0x5800 +/* 111690 7F0DCB60 1420000E */ bnez $at, .L7F0DCB9C +/* 111694 7F0DCB64 97A80292 */ lhu $t0, 0x292($sp) +/* 111698 7F0DCB68 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 11169C 7F0DCB6C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1116A0 7F0DCB70 97AF0298 */ lhu $t7, 0x298($sp) +/* 1116A4 7F0DCB74 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1116A8 7F0DCB78 030A6821 */ addu $t5, $t8, $t2 +/* 1116AC 7F0DCB7C 000F6203 */ sra $t4, $t7, 8 +/* 1116B0 7F0DCB80 A1AC0001 */ sb $t4, 1($t5) +/* 1116B4 7F0DCB84 97AE0292 */ lhu $t6, 0x292($sp) +/* 1116B8 7F0DCB88 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1116BC 7F0DCB8C 240B0001 */ li $t3, 1 +/* 1116C0 7F0DCB90 012EC821 */ addu $t9, $t1, $t6 +/* 1116C4 7F0DCB94 10000015 */ b .L7F0DCBEC +/* 1116C8 7F0DCB98 A32BA801 */ sb $t3, -0x57ff($t9) +.L7F0DCB9C: +/* 1116CC 7F0DCB9C 250F0001 */ addiu $t7, $t0, 1 +/* 1116D0 7F0DCBA0 29E14000 */ slti $at, $t7, 0x4000 +/* 1116D4 7F0DCBA4 14200011 */ bnez $at, .L7F0DCBEC +/* 1116D8 7F0DCBA8 97B80298 */ lhu $t8, 0x298($sp) +/* 1116DC 7F0DCBAC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1116E0 7F0DCBB0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1116E4 7F0DCBB4 00185203 */ sra $t2, $t8, 8 +/* 1116E8 7F0DCBB8 24090001 */ li $t1, 1 +/* 1116EC 7F0DCBBC 01886821 */ addu $t5, $t4, $t0 +/* 1116F0 7F0DCBC0 A1AA0001 */ sb $t2, 1($t5) +/* 1116F4 7F0DCBC4 97AE0292 */ lhu $t6, 0x292($sp) +/* 1116F8 7F0DCBC8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1116FC 7F0DCBCC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111700 7F0DCBD0 25CB0001 */ addiu $t3, $t6, 1 +/* 111704 7F0DCBD4 31791800 */ andi $t9, $t3, 0x1800 +/* 111708 7F0DCBD8 001978C3 */ sra $t7, $t9, 3 +/* 11170C 7F0DCBDC 317800FF */ andi $t8, $t3, 0xff +/* 111710 7F0DCBE0 01F86025 */ or $t4, $t7, $t8 +/* 111714 7F0DCBE4 010C5021 */ addu $t2, $t0, $t4 +/* 111718 7F0DCBE8 A1490000 */ sb $t1, ($t2) +.L7F0DCBEC: +/* 11171C 7F0DCBEC 240D0008 */ li $t5, 8 +/* 111720 7F0DCBF0 10001702 */ b .L7F0E27FC +/* 111724 7F0DCBF4 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_D0: +/* 111728 7F0DCBF8 8FAE028C */ lw $t6, 0x28c($sp) +/* 11172C 7F0DCBFC 322B0001 */ andi $t3, $s1, 1 +/* 111730 7F0DCC00 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 111734 7F0DCC04 25D90005 */ addiu $t9, $t6, 5 +/* 111738 7F0DCC08 156016FC */ bnez $t3, .L7F0E27FC +/* 11173C 7F0DCC0C AFB9028C */ sw $t9, 0x28c($sp) +/* 111740 7F0DCC10 97A80292 */ lhu $t0, 0x292($sp) +/* 111744 7F0DCC14 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 111748 7F0DCC18 27380006 */ addiu $t8, $t9, 6 +/* 11174C 7F0DCC1C AFB8028C */ sw $t8, 0x28c($sp) +/* 111750 7F0DCC20 01886821 */ addu $t5, $t4, $t0 +/* 111754 7F0DCC24 91AE0001 */ lbu $t6, 1($t5) +/* 111758 7F0DCC28 010C4821 */ addu $t1, $t0, $t4 +/* 11175C 7F0DCC2C 912A0000 */ lbu $t2, ($t1) +/* 111760 7F0DCC30 000ECA00 */ sll $t9, $t6, 8 +/* 111764 7F0DCC34 250F0002 */ addiu $t7, $t0, 2 +/* 111768 7F0DCC38 01595825 */ or $t3, $t2, $t9 +/* 11176C 7F0DCC3C A7AB0298 */ sh $t3, 0x298($sp) +/* 111770 7F0DCC40 100016EE */ b .L7F0E27FC +/* 111774 7F0DCC44 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_D1: +/* 111778 7F0DCC48 8FB8028C */ lw $t8, 0x28c($sp) +/* 11177C 7F0DCC4C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111780 7F0DCC50 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 111784 7F0DCC54 97AC0292 */ lhu $t4, 0x292($sp) +/* 111788 7F0DCC58 2709000A */ addiu $t1, $t8, 0xa +/* 11178C 7F0DCC5C AFA9028C */ sw $t1, 0x28c($sp) +/* 111790 7F0DCC60 018D7021 */ addu $t6, $t4, $t5 +/* 111794 7F0DCC64 91D50000 */ lbu $s5, ($t6) +/* 111798 7F0DCC68 91D40001 */ lbu $s4, 1($t6) +/* 11179C 7F0DCC6C 258A0002 */ addiu $t2, $t4, 2 +/* 1117A0 7F0DCC70 100016E2 */ b .L7F0E27FC +/* 1117A4 7F0DCC74 A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_D2: +/* 1117A8 7F0DCC78 8FB9028C */ lw $t9, 0x28c($sp) +/* 1117AC 7F0DCC7C 32280001 */ andi $t0, $s1, 1 +/* 1117B0 7F0DCC80 97AF0298 */ lhu $t7, 0x298($sp) +/* 1117B4 7F0DCC84 272B000A */ addiu $t3, $t9, 0xa +/* 1117B8 7F0DCC88 1500000B */ bnez $t0, .L7F0DCCB8 +/* 1117BC 7F0DCC8C AFAB028C */ sw $t3, 0x28c($sp) +/* 1117C0 7F0DCC90 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1117C4 7F0DCC94 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1117C8 7F0DCC98 030F7021 */ addu $t6, $t8, $t7 +/* 1117CC 7F0DCC9C 91CC0001 */ lbu $t4, 1($t6) +/* 1117D0 7F0DCCA0 01F84821 */ addu $t1, $t7, $t8 +/* 1117D4 7F0DCCA4 912D0000 */ lbu $t5, ($t1) +/* 1117D8 7F0DCCA8 000C5200 */ sll $t2, $t4, 8 +/* 1117DC 7F0DCCAC 01AAC825 */ or $t9, $t5, $t2 +/* 1117E0 7F0DCCB0 100016D2 */ b .L7F0E27FC +/* 1117E4 7F0DCCB4 A7B90298 */ sh $t9, 0x298($sp) +.L7F0DCCB8: +/* 1117E8 7F0DCCB8 97AB0298 */ lhu $t3, 0x298($sp) +/* 1117EC 7F0DCCBC 25680002 */ addiu $t0, $t3, 2 +/* 1117F0 7F0DCCC0 100016CE */ b .L7F0E27FC +/* 1117F4 7F0DCCC4 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_D3: +/* 1117F8 7F0DCCC8 8FA9028C */ lw $t1, 0x28c($sp) +/* 1117FC 7F0DCCCC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111800 7F0DCCD0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111804 7F0DCCD4 97AF0298 */ lhu $t7, 0x298($sp) +/* 111808 7F0DCCD8 2524000B */ addiu $a0, $t1, 0xb +/* 11180C 7F0DCCDC AFA4028C */ sw $a0, 0x28c($sp) +/* 111810 7F0DCCE0 01EE6021 */ addu $t4, $t7, $t6 +/* 111814 7F0DCCE4 91860000 */ lbu $a2, ($t4) +/* 111818 7F0DCCE8 02002825 */ move $a1, $s0 +/* 11181C 7F0DCCEC 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 111820 7F0DCCF0 02003825 */ move $a3, $s0 +/* 111824 7F0DCCF4 8FAD028C */ lw $t5, 0x28c($sp) +/* 111828 7F0DCCF8 97AB0298 */ lhu $t3, 0x298($sp) +/* 11182C 7F0DCCFC AFA20048 */ sw $v0, 0x48($sp) +/* 111830 7F0DCD00 01A2C821 */ addu $t9, $t5, $v0 +/* 111834 7F0DCD04 25680001 */ addiu $t0, $t3, 1 +/* 111838 7F0DCD08 AFB9028C */ sw $t9, 0x28c($sp) +/* 11183C 7F0DCD0C 100016BB */ b .L7F0E27FC +/* 111840 7F0DCD10 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_D4: +/* 111844 7F0DCD14 8FA9028C */ lw $t1, 0x28c($sp) +/* 111848 7F0DCD18 322F0001 */ andi $t7, $s1, 1 +/* 11184C 7F0DCD1C 2538000A */ addiu $t8, $t1, 0xa +/* 111850 7F0DCD20 15E00072 */ bnez $t7, .L7F0DCEEC +/* 111854 7F0DCD24 AFB8028C */ sw $t8, 0x28c($sp) +/* 111858 7F0DCD28 97AD0292 */ lhu $t5, 0x292($sp) +/* 11185C 7F0DCD2C 270C0007 */ addiu $t4, $t8, 7 +/* 111860 7F0DCD30 AFAC028C */ sw $t4, 0x28c($sp) +/* 111864 7F0DCD34 25AAFFFE */ addiu $t2, $t5, -2 +/* 111868 7F0DCD38 3159FFFF */ andi $t9, $t2, 0xffff +/* 11186C 7F0DCD3C 2B215B00 */ slti $at, $t9, 0x5b00 +/* 111870 7F0DCD40 14200008 */ bnez $at, .L7F0DCD64 +/* 111874 7F0DCD44 A7AA0292 */ sh $t2, 0x292($sp) +/* 111878 7F0DCD48 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11187C 7F0DCD4C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111880 7F0DCD50 97AB0298 */ lhu $t3, 0x298($sp) +/* 111884 7F0DCD54 0139C021 */ addu $t8, $t1, $t9 +/* 111888 7F0DCD58 25680002 */ addiu $t0, $t3, 2 +/* 11188C 7F0DCD5C 10000024 */ b .L7F0DCDF0 +/* 111890 7F0DCD60 A3080000 */ sb $t0, ($t8) +.L7F0DCD64: +/* 111894 7F0DCD64 97AF0292 */ lhu $t7, 0x292($sp) +/* 111898 7F0DCD68 97B80292 */ lhu $t8, 0x292($sp) +/* 11189C 7F0DCD6C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1118A0 7F0DCD70 29E15800 */ slti $at, $t7, 0x5800 +/* 1118A4 7F0DCD74 1420000C */ bnez $at, .L7F0DCDA8 +/* 1118A8 7F0DCD78 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1118AC 7F0DCD7C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1118B0 7F0DCD80 25CC0002 */ addiu $t4, $t6, 2 +/* 1118B4 7F0DCD84 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1118B8 7F0DCD88 01AF5021 */ addu $t2, $t5, $t7 +/* 1118BC 7F0DCD8C A14C0000 */ sb $t4, ($t2) +/* 1118C0 7F0DCD90 97B90292 */ lhu $t9, 0x292($sp) +/* 1118C4 7F0DCD94 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1118C8 7F0DCD98 240B0001 */ li $t3, 1 +/* 1118CC 7F0DCD9C 01394021 */ addu $t0, $t1, $t9 +/* 1118D0 7F0DCDA0 10000013 */ b .L7F0DCDF0 +/* 1118D4 7F0DCDA4 A10BA800 */ sb $t3, -0x5800($t0) +.L7F0DCDA8: +/* 1118D8 7F0DCDA8 2B014000 */ slti $at, $t8, 0x4000 +/* 1118DC 7F0DCDAC 14200010 */ bnez $at, .L7F0DCDF0 +/* 1118E0 7F0DCDB0 97AE0298 */ lhu $t6, 0x298($sp) +/* 1118E4 7F0DCDB4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1118E8 7F0DCDB8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1118EC 7F0DCDBC 25CD0002 */ addiu $t5, $t6, 2 +/* 1118F0 7F0DCDC0 240A0001 */ li $t2, 1 +/* 1118F4 7F0DCDC4 01F86021 */ addu $t4, $t7, $t8 +/* 1118F8 7F0DCDC8 A18D0000 */ sb $t5, ($t4) +/* 1118FC 7F0DCDCC 97A90292 */ lhu $t1, 0x292($sp) +/* 111900 7F0DCDD0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 111904 7F0DCDD4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 111908 7F0DCDD8 31391800 */ andi $t9, $t1, 0x1800 +/* 11190C 7F0DCDDC 001958C3 */ sra $t3, $t9, 3 +/* 111910 7F0DCDE0 312800FF */ andi $t0, $t1, 0xff +/* 111914 7F0DCDE4 01687025 */ or $t6, $t3, $t0 +/* 111918 7F0DCDE8 01EEC021 */ addu $t8, $t7, $t6 +/* 11191C 7F0DCDEC A30A0000 */ sb $t2, ($t8) +.L7F0DCDF0: +/* 111920 7F0DCDF0 97AD0292 */ lhu $t5, 0x292($sp) +/* 111924 7F0DCDF4 97AE0292 */ lhu $t6, 0x292($sp) +/* 111928 7F0DCDF8 97B90298 */ lhu $t9, 0x298($sp) +/* 11192C 7F0DCDFC 25AC0001 */ addiu $t4, $t5, 1 +/* 111930 7F0DCE00 29815B00 */ slti $at, $t4, 0x5b00 +/* 111934 7F0DCE04 14200008 */ bnez $at, .L7F0DCE28 +/* 111938 7F0DCE08 25CA0001 */ addiu $t2, $t6, 1 +/* 11193C 7F0DCE0C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111940 7F0DCE10 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111944 7F0DCE14 27290002 */ addiu $t1, $t9, 2 +/* 111948 7F0DCE18 00095A03 */ sra $t3, $t1, 8 +/* 11194C 7F0DCE1C 010D7821 */ addu $t7, $t0, $t5 +/* 111950 7F0DCE20 10000027 */ b .L7F0DCEC0 +/* 111954 7F0DCE24 A1EB0001 */ sb $t3, 1($t7) +.L7F0DCE28: +/* 111958 7F0DCE28 29415800 */ slti $at, $t2, 0x5800 +/* 11195C 7F0DCE2C 1420000F */ bnez $at, .L7F0DCE6C +/* 111960 7F0DCE30 97B80292 */ lhu $t8, 0x292($sp) +/* 111964 7F0DCE34 97B80298 */ lhu $t8, 0x298($sp) +/* 111968 7F0DCE38 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11196C 7F0DCE3C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111970 7F0DCE40 270C0002 */ addiu $t4, $t8, 2 +/* 111974 7F0DCE44 000CCA03 */ sra $t9, $t4, 8 +/* 111978 7F0DCE48 012E4021 */ addu $t0, $t1, $t6 +/* 11197C 7F0DCE4C A1190001 */ sb $t9, 1($t0) +/* 111980 7F0DCE50 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111984 7F0DCE54 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111988 7F0DCE58 97AF0292 */ lhu $t7, 0x292($sp) +/* 11198C 7F0DCE5C 240D0001 */ li $t5, 1 +/* 111990 7F0DCE60 016F5021 */ addu $t2, $t3, $t7 +/* 111994 7F0DCE64 10000016 */ b .L7F0DCEC0 +/* 111998 7F0DCE68 A14DA801 */ sb $t5, -0x57ff($t2) +.L7F0DCE6C: +/* 11199C 7F0DCE6C 270C0001 */ addiu $t4, $t8, 1 +/* 1119A0 7F0DCE70 29814000 */ slti $at, $t4, 0x4000 +/* 1119A4 7F0DCE74 14200012 */ bnez $at, .L7F0DCEC0 +/* 1119A8 7F0DCE78 97A90298 */ lhu $t1, 0x298($sp) +/* 1119AC 7F0DCE7C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1119B0 7F0DCE80 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1119B4 7F0DCE84 252E0002 */ addiu $t6, $t1, 2 +/* 1119B8 7F0DCE88 000ECA03 */ sra $t9, $t6, 8 +/* 1119BC 7F0DCE8C 01185821 */ addu $t3, $t0, $t8 +/* 1119C0 7F0DCE90 A1790001 */ sb $t9, 1($t3) +/* 1119C4 7F0DCE94 97AD0292 */ lhu $t5, 0x292($sp) +/* 1119C8 7F0DCE98 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1119CC 7F0DCE9C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1119D0 7F0DCEA0 25AA0001 */ addiu $t2, $t5, 1 +/* 1119D4 7F0DCEA4 314C1800 */ andi $t4, $t2, 0x1800 +/* 1119D8 7F0DCEA8 000C48C3 */ sra $t1, $t4, 3 +/* 1119DC 7F0DCEAC 314E00FF */ andi $t6, $t2, 0xff +/* 1119E0 7F0DCEB0 012E4025 */ or $t0, $t1, $t6 +/* 1119E4 7F0DCEB4 240F0001 */ li $t7, 1 +/* 1119E8 7F0DCEB8 0308C821 */ addu $t9, $t8, $t0 +/* 1119EC 7F0DCEBC A32F0000 */ sb $t7, ($t9) +.L7F0DCEC0: +/* 1119F0 7F0DCEC0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1119F4 7F0DCEC4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1119F8 7F0DCEC8 97AB0298 */ lhu $t3, 0x298($sp) +/* 1119FC 7F0DCECC 01AB4821 */ addu $t1, $t5, $t3 +/* 111A00 7F0DCED0 912E0001 */ lbu $t6, 1($t1) +/* 111A04 7F0DCED4 016D6021 */ addu $t4, $t3, $t5 +/* 111A08 7F0DCED8 918A0000 */ lbu $t2, ($t4) +/* 111A0C 7F0DCEDC 000EC200 */ sll $t8, $t6, 8 +/* 111A10 7F0DCEE0 01584025 */ or $t0, $t2, $t8 +/* 111A14 7F0DCEE4 10001645 */ b .L7F0E27FC +/* 111A18 7F0DCEE8 A7A80298 */ sh $t0, 0x298($sp) +.L7F0DCEEC: +/* 111A1C 7F0DCEEC 97AF0298 */ lhu $t7, 0x298($sp) +/* 111A20 7F0DCEF0 25F90002 */ addiu $t9, $t7, 2 +/* 111A24 7F0DCEF4 10001641 */ b .L7F0E27FC +/* 111A28 7F0DCEF8 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_D5: +/* 111A2C 7F0DCEFC 97AB0292 */ lhu $t3, 0x292($sp) +/* 111A30 7F0DCF00 8FAC028C */ lw $t4, 0x28c($sp) +/* 111A34 7F0DCF04 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111A38 7F0DCF08 2569FFFE */ addiu $t1, $t3, -2 +/* 111A3C 7F0DCF0C 312EFFFF */ andi $t6, $t1, 0xffff +/* 111A40 7F0DCF10 29C15B00 */ slti $at, $t6, 0x5b00 +/* 111A44 7F0DCF14 258D000B */ addiu $t5, $t4, 0xb +/* 111A48 7F0DCF18 AFAD028C */ sw $t5, 0x28c($sp) +/* 111A4C 7F0DCF1C 14200005 */ bnez $at, .L7F0DCF34 +/* 111A50 7F0DCF20 A7A90292 */ sh $t1, 0x292($sp) +/* 111A54 7F0DCF24 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111A58 7F0DCF28 014EC021 */ addu $t8, $t2, $t6 +/* 111A5C 7F0DCF2C 10000021 */ b .L7F0DCFB4 +/* 111A60 7F0DCF30 A3150000 */ sb $s5, ($t8) +.L7F0DCF34: +/* 111A64 7F0DCF34 97A80292 */ lhu $t0, 0x292($sp) +/* 111A68 7F0DCF38 97AA0292 */ lhu $t2, 0x292($sp) +/* 111A6C 7F0DCF3C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111A70 7F0DCF40 29015800 */ slti $at, $t0, 0x5800 +/* 111A74 7F0DCF44 5420000C */ bnezl $at, .L7F0DCF78 +/* 111A78 7F0DCF48 29414000 */ slti $at, $t2, 0x4000 +/* 111A7C 7F0DCF4C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111A80 7F0DCF50 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 111A84 7F0DCF54 240C0001 */ li $t4, 1 +/* 111A88 7F0DCF58 01E8C821 */ addu $t9, $t7, $t0 +/* 111A8C 7F0DCF5C A3350000 */ sb $s5, ($t9) +/* 111A90 7F0DCF60 97AB0292 */ lhu $t3, 0x292($sp) +/* 111A94 7F0DCF64 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111A98 7F0DCF68 01AB4821 */ addu $t1, $t5, $t3 +/* 111A9C 7F0DCF6C 10000011 */ b .L7F0DCFB4 +/* 111AA0 7F0DCF70 A12CA800 */ sb $t4, -0x5800($t1) +/* 111AA4 7F0DCF74 29414000 */ slti $at, $t2, 0x4000 +.L7F0DCF78: +/* 111AA8 7F0DCF78 1420000E */ bnez $at, .L7F0DCFB4 +/* 111AAC 7F0DCF7C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111AB0 7F0DCF80 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111AB4 7F0DCF84 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111AB8 7F0DCF88 240F0001 */ li $t7, 1 +/* 111ABC 7F0DCF8C 01CAC021 */ addu $t8, $t6, $t2 +/* 111AC0 7F0DCF90 A3150000 */ sb $s5, ($t8) +/* 111AC4 7F0DCF94 97A80292 */ lhu $t0, 0x292($sp) +/* 111AC8 7F0DCF98 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111ACC 7F0DCF9C 31191800 */ andi $t9, $t0, 0x1800 +/* 111AD0 7F0DCFA0 001968C3 */ sra $t5, $t9, 3 +/* 111AD4 7F0DCFA4 310B00FF */ andi $t3, $t0, 0xff +/* 111AD8 7F0DCFA8 01AB6025 */ or $t4, $t5, $t3 +/* 111ADC 7F0DCFAC 012C7021 */ addu $t6, $t1, $t4 +/* 111AE0 7F0DCFB0 A1CF0000 */ sb $t7, ($t6) +.L7F0DCFB4: +/* 111AE4 7F0DCFB4 97AA0292 */ lhu $t2, 0x292($sp) +/* 111AE8 7F0DCFB8 97AD0292 */ lhu $t5, 0x292($sp) +/* 111AEC 7F0DCFBC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111AF0 7F0DCFC0 25580001 */ addiu $t8, $t2, 1 +/* 111AF4 7F0DCFC4 2B015B00 */ slti $at, $t8, 0x5b00 +/* 111AF8 7F0DCFC8 14200005 */ bnez $at, .L7F0DCFE0 +/* 111AFC 7F0DCFCC 25AB0001 */ addiu $t3, $t5, 1 +/* 111B00 7F0DCFD0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111B04 7F0DCFD4 032A4021 */ addu $t0, $t9, $t2 +/* 111B08 7F0DCFD8 10001608 */ b .L7F0E27FC +/* 111B0C 7F0DCFDC A1140001 */ sb $s4, 1($t0) +.L7F0DCFE0: +/* 111B10 7F0DCFE0 29615800 */ slti $at, $t3, 0x5800 +/* 111B14 7F0DCFE4 1420000C */ bnez $at, .L7F0DD018 +/* 111B18 7F0DCFE8 97AA0292 */ lhu $t2, 0x292($sp) +/* 111B1C 7F0DCFEC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111B20 7F0DCFF0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111B24 7F0DCFF4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 111B28 7F0DCFF8 240F0001 */ li $t7, 1 +/* 111B2C 7F0DCFFC 012D6021 */ addu $t4, $t1, $t5 +/* 111B30 7F0DD000 A1940001 */ sb $s4, 1($t4) +/* 111B34 7F0DD004 97B80292 */ lhu $t8, 0x292($sp) +/* 111B38 7F0DD008 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 111B3C 7F0DD00C 01D8C821 */ addu $t9, $t6, $t8 +/* 111B40 7F0DD010 100015FA */ b .L7F0E27FC +/* 111B44 7F0DD014 A32FA801 */ sb $t7, -0x57ff($t9) +.L7F0DD018: +/* 111B48 7F0DD018 25480001 */ addiu $t0, $t2, 1 +/* 111B4C 7F0DD01C 29014000 */ slti $at, $t0, 0x4000 +/* 111B50 7F0DD020 142015F6 */ bnez $at, .L7F0E27FC +/* 111B54 7F0DD024 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 111B58 7F0DD028 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 111B5C 7F0DD02C 240D0001 */ li $t5, 1 +/* 111B60 7F0DD030 016A4821 */ addu $t1, $t3, $t2 +/* 111B64 7F0DD034 A1340001 */ sb $s4, 1($t1) +/* 111B68 7F0DD038 97AC0292 */ lhu $t4, 0x292($sp) +/* 111B6C 7F0DD03C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111B70 7F0DD040 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111B74 7F0DD044 258E0001 */ addiu $t6, $t4, 1 +/* 111B78 7F0DD048 31D81800 */ andi $t8, $t6, 0x1800 +/* 111B7C 7F0DD04C 001878C3 */ sra $t7, $t8, 3 +/* 111B80 7F0DD050 31D900FF */ andi $t9, $t6, 0xff +/* 111B84 7F0DD054 01F94025 */ or $t0, $t7, $t9 +/* 111B88 7F0DD058 01685021 */ addu $t2, $t3, $t0 +/* 111B8C 7F0DD05C 100015E7 */ b .L7F0E27FC +/* 111B90 7F0DD060 A14D0000 */ sb $t5, ($t2) +spectrum_op_D6: +/* 111B94 7F0DD064 8FA9028C */ lw $t1, 0x28c($sp) +/* 111B98 7F0DD068 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111B9C 7F0DD06C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111BA0 7F0DD070 97B80298 */ lhu $t8, 0x298($sp) +/* 111BA4 7F0DD074 252C0007 */ addiu $t4, $t1, 7 +/* 111BA8 7F0DD078 AFAC028C */ sw $t4, 0x28c($sp) +/* 111BAC 7F0DD07C 030E7821 */ addu $t7, $t8, $t6 +/* 111BB0 7F0DD080 91F90000 */ lbu $t9, ($t7) +/* 111BB4 7F0DD084 320F000F */ andi $t7, $s0, 0xf +/* 111BB8 7F0DD088 02195823 */ subu $t3, $s0, $t9 +/* 111BBC 7F0DD08C 316801FF */ andi $t0, $t3, 0x1ff +/* 111BC0 7F0DD090 310A00A8 */ andi $t2, $t0, 0xa8 +/* 111BC4 7F0DD094 00086203 */ sra $t4, $t0, 8 +/* 111BC8 7F0DD098 332E000F */ andi $t6, $t9, 0xf +/* 111BCC 7F0DD09C 01EE582A */ slt $t3, $t7, $t6 +/* 111BD0 7F0DD0A0 014CC025 */ or $t8, $t2, $t4 +/* 111BD4 7F0DD0A4 02195026 */ xor $t2, $s0, $t9 +/* 111BD8 7F0DD0A8 000B6900 */ sll $t5, $t3, 4 +/* 111BDC 7F0DD0AC 01107026 */ xor $t6, $t0, $s0 +/* 111BE0 7F0DD0B0 A7A800FA */ sh $t0, 0xfa($sp) +/* 111BE4 7F0DD0B4 93B000FB */ lbu $s0, 0xfb($sp) +/* 111BE8 7F0DD0B8 314C0080 */ andi $t4, $t2, 0x80 +/* 111BEC 7F0DD0BC 018E5824 */ and $t3, $t4, $t6 +/* 111BF0 7F0DD0C0 030D4825 */ or $t1, $t8, $t5 +/* 111BF4 7F0DD0C4 000BC143 */ sra $t8, $t3, 5 +/* 111BF8 7F0DD0C8 97AE0298 */ lhu $t6, 0x298($sp) +/* 111BFC 7F0DD0CC 01388825 */ or $s1, $t1, $t8 +/* 111C00 7F0DD0D0 A3B900F9 */ sb $t9, 0xf9($sp) +/* 111C04 7F0DD0D4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 111C08 7F0DD0D8 000A7980 */ sll $t7, $t2, 6 +/* 111C0C 7F0DD0DC 36390002 */ ori $t9, $s1, 2 +/* 111C10 7F0DD0E0 032F8825 */ or $s1, $t9, $t7 +/* 111C14 7F0DD0E4 322C00FF */ andi $t4, $s1, 0xff +/* 111C18 7F0DD0E8 25CB0001 */ addiu $t3, $t6, 1 +/* 111C1C 7F0DD0EC 01808825 */ move $s1, $t4 +/* 111C20 7F0DD0F0 AFAA0048 */ sw $t2, 0x48($sp) +/* 111C24 7F0DD0F4 100015C1 */ b .L7F0E27FC +/* 111C28 7F0DD0F8 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_D7: +/* 111C2C 7F0DD0FC 97AD0292 */ lhu $t5, 0x292($sp) +/* 111C30 7F0DD100 8FA9028C */ lw $t1, 0x28c($sp) +/* 111C34 7F0DD104 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111C38 7F0DD108 25B9FFFE */ addiu $t9, $t5, -2 +/* 111C3C 7F0DD10C 332AFFFF */ andi $t2, $t9, 0xffff +/* 111C40 7F0DD110 29415B00 */ slti $at, $t2, 0x5b00 +/* 111C44 7F0DD114 2538000B */ addiu $t8, $t1, 0xb +/* 111C48 7F0DD118 AFB8028C */ sw $t8, 0x28c($sp) +/* 111C4C 7F0DD11C 14200006 */ bnez $at, .L7F0DD138 +/* 111C50 7F0DD120 A7B90292 */ sh $t9, 0x292($sp) +/* 111C54 7F0DD124 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111C58 7F0DD128 97A80298 */ lhu $t0, 0x298($sp) +/* 111C5C 7F0DD12C 01EA6021 */ addu $t4, $t7, $t2 +/* 111C60 7F0DD130 10000023 */ b .L7F0DD1C0 +/* 111C64 7F0DD134 A1880000 */ sb $t0, ($t4) +.L7F0DD138: +/* 111C68 7F0DD138 97AE0292 */ lhu $t6, 0x292($sp) +/* 111C6C 7F0DD13C 97A80292 */ lhu $t0, 0x292($sp) +/* 111C70 7F0DD140 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111C74 7F0DD144 29C15800 */ slti $at, $t6, 0x5800 +/* 111C78 7F0DD148 5420000D */ bnezl $at, .L7F0DD180 +/* 111C7C 7F0DD14C 29014000 */ slti $at, $t0, 0x4000 +/* 111C80 7F0DD150 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111C84 7F0DD154 97AB0298 */ lhu $t3, 0x298($sp) +/* 111C88 7F0DD158 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 111C8C 7F0DD15C 012EC021 */ addu $t8, $t1, $t6 +/* 111C90 7F0DD160 A30B0000 */ sb $t3, ($t8) +/* 111C94 7F0DD164 97AF0292 */ lhu $t7, 0x292($sp) +/* 111C98 7F0DD168 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 111C9C 7F0DD16C 240D0001 */ li $t5, 1 +/* 111CA0 7F0DD170 032F5021 */ addu $t2, $t9, $t7 +/* 111CA4 7F0DD174 10000012 */ b .L7F0DD1C0 +/* 111CA8 7F0DD178 A14DA800 */ sb $t5, -0x5800($t2) +/* 111CAC 7F0DD17C 29014000 */ slti $at, $t0, 0x4000 +.L7F0DD180: +/* 111CB0 7F0DD180 1420000F */ bnez $at, .L7F0DD1C0 +/* 111CB4 7F0DD184 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111CB8 7F0DD188 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111CBC 7F0DD18C 97AC0298 */ lhu $t4, 0x298($sp) +/* 111CC0 7F0DD190 240B0001 */ li $t3, 1 +/* 111CC4 7F0DD194 01287021 */ addu $t6, $t1, $t0 +/* 111CC8 7F0DD198 A1CC0000 */ sb $t4, ($t6) +/* 111CCC 7F0DD19C 97B80292 */ lhu $t8, 0x292($sp) +/* 111CD0 7F0DD1A0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111CD4 7F0DD1A4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111CD8 7F0DD1A8 33191800 */ andi $t9, $t8, 0x1800 +/* 111CDC 7F0DD1AC 001978C3 */ sra $t7, $t9, 3 +/* 111CE0 7F0DD1B0 330D00FF */ andi $t5, $t8, 0xff +/* 111CE4 7F0DD1B4 01ED5025 */ or $t2, $t7, $t5 +/* 111CE8 7F0DD1B8 012A4021 */ addu $t0, $t1, $t2 +/* 111CEC 7F0DD1BC A10B0000 */ sb $t3, ($t0) +.L7F0DD1C0: +/* 111CF0 7F0DD1C0 97AC0292 */ lhu $t4, 0x292($sp) +/* 111CF4 7F0DD1C4 97A90292 */ lhu $t1, 0x292($sp) +/* 111CF8 7F0DD1C8 97B90298 */ lhu $t9, 0x298($sp) +/* 111CFC 7F0DD1CC 258E0001 */ addiu $t6, $t4, 1 +/* 111D00 7F0DD1D0 29C15B00 */ slti $at, $t6, 0x5b00 +/* 111D04 7F0DD1D4 14200007 */ bnez $at, .L7F0DD1F4 +/* 111D08 7F0DD1D8 252A0001 */ addiu $t2, $t1, 1 +/* 111D0C 7F0DD1DC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111D10 7F0DD1E0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111D14 7F0DD1E4 0019C203 */ sra $t8, $t9, 8 +/* 111D18 7F0DD1E8 01EC6821 */ addu $t5, $t7, $t4 +/* 111D1C 7F0DD1EC 10000025 */ b .L7F0DD284 +/* 111D20 7F0DD1F0 A1B80001 */ sb $t8, 1($t5) +.L7F0DD1F4: +/* 111D24 7F0DD1F4 29415800 */ slti $at, $t2, 0x5800 +/* 111D28 7F0DD1F8 1420000E */ bnez $at, .L7F0DD234 +/* 111D2C 7F0DD1FC 97AA0292 */ lhu $t2, 0x292($sp) +/* 111D30 7F0DD200 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111D34 7F0DD204 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111D38 7F0DD208 97AB0298 */ lhu $t3, 0x298($sp) +/* 111D3C 7F0DD20C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 111D40 7F0DD210 01C9C821 */ addu $t9, $t6, $t1 +/* 111D44 7F0DD214 000B4203 */ sra $t0, $t3, 8 +/* 111D48 7F0DD218 A3280001 */ sb $t0, 1($t9) +/* 111D4C 7F0DD21C 97B80292 */ lhu $t8, 0x292($sp) +/* 111D50 7F0DD220 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 111D54 7F0DD224 240F0001 */ li $t7, 1 +/* 111D58 7F0DD228 01986821 */ addu $t5, $t4, $t8 +/* 111D5C 7F0DD22C 10000015 */ b .L7F0DD284 +/* 111D60 7F0DD230 A1AFA801 */ sb $t7, -0x57ff($t5) +.L7F0DD234: +/* 111D64 7F0DD234 254B0001 */ addiu $t3, $t2, 1 +/* 111D68 7F0DD238 29614000 */ slti $at, $t3, 0x4000 +/* 111D6C 7F0DD23C 14200011 */ bnez $at, .L7F0DD284 +/* 111D70 7F0DD240 97AE0298 */ lhu $t6, 0x298($sp) +/* 111D74 7F0DD244 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111D78 7F0DD248 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111D7C 7F0DD24C 000E4A03 */ sra $t1, $t6, 8 +/* 111D80 7F0DD250 240C0001 */ li $t4, 1 +/* 111D84 7F0DD254 010AC821 */ addu $t9, $t0, $t2 +/* 111D88 7F0DD258 A3290001 */ sb $t1, 1($t9) +/* 111D8C 7F0DD25C 97B80292 */ lhu $t8, 0x292($sp) +/* 111D90 7F0DD260 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 111D94 7F0DD264 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 111D98 7F0DD268 270F0001 */ addiu $t7, $t8, 1 +/* 111D9C 7F0DD26C 31ED1800 */ andi $t5, $t7, 0x1800 +/* 111DA0 7F0DD270 000D58C3 */ sra $t3, $t5, 3 +/* 111DA4 7F0DD274 31EE00FF */ andi $t6, $t7, 0xff +/* 111DA8 7F0DD278 016E4025 */ or $t0, $t3, $t6 +/* 111DAC 7F0DD27C 01484821 */ addu $t1, $t2, $t0 +/* 111DB0 7F0DD280 A12C0000 */ sb $t4, ($t1) +.L7F0DD284: +/* 111DB4 7F0DD284 24190010 */ li $t9, 16 +/* 111DB8 7F0DD288 1000155C */ b .L7F0E27FC +/* 111DBC 7F0DD28C A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_D8: +/* 111DC0 7F0DD290 8FB8028C */ lw $t8, 0x28c($sp) +/* 111DC4 7F0DD294 322F0001 */ andi $t7, $s1, 1 +/* 111DC8 7F0DD298 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111DCC 7F0DD29C 270D0005 */ addiu $t5, $t8, 5 +/* 111DD0 7F0DD2A0 11E01556 */ beqz $t7, .L7F0E27FC +/* 111DD4 7F0DD2A4 AFAD028C */ sw $t5, 0x28c($sp) +/* 111DD8 7F0DD2A8 97AA0292 */ lhu $t2, 0x292($sp) +/* 111DDC 7F0DD2AC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111DE0 7F0DD2B0 25AE0006 */ addiu $t6, $t5, 6 +/* 111DE4 7F0DD2B4 AFAE028C */ sw $t6, 0x28c($sp) +/* 111DE8 7F0DD2B8 010AC821 */ addu $t9, $t0, $t2 +/* 111DEC 7F0DD2BC 93380001 */ lbu $t8, 1($t9) +/* 111DF0 7F0DD2C0 01486021 */ addu $t4, $t2, $t0 +/* 111DF4 7F0DD2C4 91890000 */ lbu $t1, ($t4) +/* 111DF8 7F0DD2C8 00186A00 */ sll $t5, $t8, 8 +/* 111DFC 7F0DD2CC 254B0002 */ addiu $t3, $t2, 2 +/* 111E00 7F0DD2D0 012D7825 */ or $t7, $t1, $t5 +/* 111E04 7F0DD2D4 A7AF0298 */ sh $t7, 0x298($sp) +/* 111E08 7F0DD2D8 10001548 */ b .L7F0E27FC +/* 111E0C 7F0DD2DC A7AB0292 */ sh $t3, 0x292($sp) +spectrum_op_D9: +/* 111E10 7F0DD2E0 8FAE028C */ lw $t6, 0x28c($sp) +/* 111E14 7F0DD2E4 A3B200F8 */ sb $s2, 0xf8($sp) +/* 111E18 7F0DD2E8 A3B300F7 */ sb $s3, 0xf7($sp) +/* 111E1C 7F0DD2EC A3B400F6 */ sb $s4, 0xf6($sp) +/* 111E20 7F0DD2F0 A3B500F5 */ sb $s5, 0xf5($sp) +/* 111E24 7F0DD2F4 A3B600F4 */ sb $s6, 0xf4($sp) +/* 111E28 7F0DD2F8 A3B700F3 */ sb $s7, 0xf3($sp) +/* 111E2C 7F0DD2FC 93A800F8 */ lbu $t0, 0xf8($sp) +/* 111E30 7F0DD300 93B900F7 */ lbu $t9, 0xf7($sp) +/* 111E34 7F0DD304 93B800F6 */ lbu $t8, 0xf6($sp) +/* 111E38 7F0DD308 93A900F5 */ lbu $t1, 0xf5($sp) +/* 111E3C 7F0DD30C 93AD00F4 */ lbu $t5, 0xf4($sp) +/* 111E40 7F0DD310 93AF00F3 */ lbu $t7, 0xf3($sp) +/* 111E44 7F0DD314 93B202A4 */ lbu $s2, 0x2a4($sp) +/* 111E48 7F0DD318 93B302A3 */ lbu $s3, 0x2a3($sp) +/* 111E4C 7F0DD31C 93B402A2 */ lbu $s4, 0x2a2($sp) +/* 111E50 7F0DD320 93B502A1 */ lbu $s5, 0x2a1($sp) +/* 111E54 7F0DD324 93B602A0 */ lbu $s6, 0x2a0($sp) +/* 111E58 7F0DD328 93B7029F */ lbu $s7, 0x29f($sp) +/* 111E5C 7F0DD32C 25CC0004 */ addiu $t4, $t6, 4 +/* 111E60 7F0DD330 AFAC028C */ sw $t4, 0x28c($sp) +/* 111E64 7F0DD334 A3A802A4 */ sb $t0, 0x2a4($sp) +/* 111E68 7F0DD338 A3B902A3 */ sb $t9, 0x2a3($sp) +/* 111E6C 7F0DD33C A3B802A2 */ sb $t8, 0x2a2($sp) +/* 111E70 7F0DD340 A3A902A1 */ sb $t1, 0x2a1($sp) +/* 111E74 7F0DD344 A3AD02A0 */ sb $t5, 0x2a0($sp) +/* 111E78 7F0DD348 1000152C */ b .L7F0E27FC +/* 111E7C 7F0DD34C A3AF029F */ sb $t7, 0x29f($sp) +spectrum_op_DA: +/* 111E80 7F0DD350 8FAA028C */ lw $t2, 0x28c($sp) +/* 111E84 7F0DD354 322E0001 */ andi $t6, $s1, 1 +/* 111E88 7F0DD358 97AC0298 */ lhu $t4, 0x298($sp) +/* 111E8C 7F0DD35C 254B000A */ addiu $t3, $t2, 0xa +/* 111E90 7F0DD360 11C0000B */ beqz $t6, .L7F0DD390 +/* 111E94 7F0DD364 AFAB028C */ sw $t3, 0x28c($sp) +/* 111E98 7F0DD368 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111E9C 7F0DD36C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111EA0 7F0DD370 010C4821 */ addu $t1, $t0, $t4 +/* 111EA4 7F0DD374 912D0001 */ lbu $t5, 1($t1) +/* 111EA8 7F0DD378 0188C821 */ addu $t9, $t4, $t0 +/* 111EAC 7F0DD37C 93380000 */ lbu $t8, ($t9) +/* 111EB0 7F0DD380 000D7A00 */ sll $t7, $t5, 8 +/* 111EB4 7F0DD384 030F5025 */ or $t2, $t8, $t7 +/* 111EB8 7F0DD388 1000151C */ b .L7F0E27FC +/* 111EBC 7F0DD38C A7AA0298 */ sh $t2, 0x298($sp) +.L7F0DD390: +/* 111EC0 7F0DD390 97AB0298 */ lhu $t3, 0x298($sp) +/* 111EC4 7F0DD394 256E0002 */ addiu $t6, $t3, 2 +/* 111EC8 7F0DD398 10001518 */ b .L7F0E27FC +/* 111ECC 7F0DD39C A7AE0298 */ sh $t6, 0x298($sp) +spectrum_op_DB: +/* 111ED0 7F0DD3A0 8FB9028C */ lw $t9, 0x28c($sp) +/* 111ED4 7F0DD3A4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111ED8 7F0DD3A8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111EDC 7F0DD3AC 97AC0298 */ lhu $t4, 0x298($sp) +/* 111EE0 7F0DD3B0 2724000B */ addiu $a0, $t9, 0xb +/* 111EE4 7F0DD3B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 111EE8 7F0DD3B8 01896821 */ addu $t5, $t4, $t1 +/* 111EEC 7F0DD3BC 91A60000 */ lbu $a2, ($t5) +/* 111EF0 7F0DD3C0 0FC34DB6 */ jal spectrum_input_handling +/* 111EF4 7F0DD3C4 02002825 */ move $a1, $s0 +/* 111EF8 7F0DD3C8 8FB8028C */ lw $t8, 0x28c($sp) +/* 111EFC 7F0DD3CC 97AE0298 */ lhu $t6, 0x298($sp) +/* 111F00 7F0DD3D0 304FFFFF */ andi $t7, $v0, 0xffff +/* 111F04 7F0DD3D4 000F5203 */ sra $t2, $t7, 8 +/* 111F08 7F0DD3D8 A7A200F0 */ sh $v0, 0xf0($sp) +/* 111F0C 7F0DD3DC 030A5821 */ addu $t3, $t8, $t2 +/* 111F10 7F0DD3E0 25D90001 */ addiu $t9, $t6, 1 +/* 111F14 7F0DD3E4 93B000F1 */ lbu $s0, 0xf1($sp) +/* 111F18 7F0DD3E8 AFAB028C */ sw $t3, 0x28c($sp) +/* 111F1C 7F0DD3EC 10001503 */ b .L7F0E27FC +/* 111F20 7F0DD3F0 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_DC: +/* 111F24 7F0DD3F4 8FA8028C */ lw $t0, 0x28c($sp) +/* 111F28 7F0DD3F8 32290001 */ andi $t1, $s1, 1 +/* 111F2C 7F0DD3FC 250C000A */ addiu $t4, $t0, 0xa +/* 111F30 7F0DD400 11200072 */ beqz $t1, .L7F0DD5CC +/* 111F34 7F0DD404 AFAC028C */ sw $t4, 0x28c($sp) +/* 111F38 7F0DD408 97B80292 */ lhu $t8, 0x292($sp) +/* 111F3C 7F0DD40C 258F0007 */ addiu $t7, $t4, 7 +/* 111F40 7F0DD410 AFAF028C */ sw $t7, 0x28c($sp) +/* 111F44 7F0DD414 270AFFFE */ addiu $t2, $t8, -2 +/* 111F48 7F0DD418 314BFFFF */ andi $t3, $t2, 0xffff +/* 111F4C 7F0DD41C 29615B00 */ slti $at, $t3, 0x5b00 +/* 111F50 7F0DD420 14200008 */ bnez $at, .L7F0DD444 +/* 111F54 7F0DD424 A7AA0292 */ sh $t2, 0x292($sp) +/* 111F58 7F0DD428 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111F5C 7F0DD42C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111F60 7F0DD430 97AE0298 */ lhu $t6, 0x298($sp) +/* 111F64 7F0DD434 010B6021 */ addu $t4, $t0, $t3 +/* 111F68 7F0DD438 25D90002 */ addiu $t9, $t6, 2 +/* 111F6C 7F0DD43C 10000024 */ b .L7F0DD4D0 +/* 111F70 7F0DD440 A1990000 */ sb $t9, ($t4) +.L7F0DD444: +/* 111F74 7F0DD444 97A90292 */ lhu $t1, 0x292($sp) +/* 111F78 7F0DD448 97AC0292 */ lhu $t4, 0x292($sp) +/* 111F7C 7F0DD44C 97AD0298 */ lhu $t5, 0x298($sp) +/* 111F80 7F0DD450 29215800 */ slti $at, $t1, 0x5800 +/* 111F84 7F0DD454 1420000C */ bnez $at, .L7F0DD488 +/* 111F88 7F0DD458 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111F8C 7F0DD45C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 111F90 7F0DD460 25AF0002 */ addiu $t7, $t5, 2 +/* 111F94 7F0DD464 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 111F98 7F0DD468 03095021 */ addu $t2, $t8, $t1 +/* 111F9C 7F0DD46C A14F0000 */ sb $t7, ($t2) +/* 111FA0 7F0DD470 97AB0292 */ lhu $t3, 0x292($sp) +/* 111FA4 7F0DD474 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111FA8 7F0DD478 240E0001 */ li $t6, 1 +/* 111FAC 7F0DD47C 010BC821 */ addu $t9, $t0, $t3 +/* 111FB0 7F0DD480 10000013 */ b .L7F0DD4D0 +/* 111FB4 7F0DD484 A32EA800 */ sb $t6, -0x5800($t9) +.L7F0DD488: +/* 111FB8 7F0DD488 29814000 */ slti $at, $t4, 0x4000 +/* 111FBC 7F0DD48C 14200010 */ bnez $at, .L7F0DD4D0 +/* 111FC0 7F0DD490 97AD0298 */ lhu $t5, 0x298($sp) +/* 111FC4 7F0DD494 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111FC8 7F0DD498 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111FCC 7F0DD49C 25B80002 */ addiu $t8, $t5, 2 +/* 111FD0 7F0DD4A0 240A0001 */ li $t2, 1 +/* 111FD4 7F0DD4A4 012C7821 */ addu $t7, $t1, $t4 +/* 111FD8 7F0DD4A8 A1F80000 */ sb $t8, ($t7) +/* 111FDC 7F0DD4AC 97A80292 */ lhu $t0, 0x292($sp) +/* 111FE0 7F0DD4B0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111FE4 7F0DD4B4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111FE8 7F0DD4B8 310B1800 */ andi $t3, $t0, 0x1800 +/* 111FEC 7F0DD4BC 000B70C3 */ sra $t6, $t3, 3 +/* 111FF0 7F0DD4C0 311900FF */ andi $t9, $t0, 0xff +/* 111FF4 7F0DD4C4 01D96825 */ or $t5, $t6, $t9 +/* 111FF8 7F0DD4C8 012D6021 */ addu $t4, $t1, $t5 +/* 111FFC 7F0DD4CC A18A0000 */ sb $t2, ($t4) +.L7F0DD4D0: +/* 112000 7F0DD4D0 97B80292 */ lhu $t8, 0x292($sp) +/* 112004 7F0DD4D4 97AD0292 */ lhu $t5, 0x292($sp) +/* 112008 7F0DD4D8 97AB0298 */ lhu $t3, 0x298($sp) +/* 11200C 7F0DD4DC 270F0001 */ addiu $t7, $t8, 1 +/* 112010 7F0DD4E0 29E15B00 */ slti $at, $t7, 0x5b00 +/* 112014 7F0DD4E4 14200008 */ bnez $at, .L7F0DD508 +/* 112018 7F0DD4E8 25AA0001 */ addiu $t2, $t5, 1 +/* 11201C 7F0DD4EC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112020 7F0DD4F0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112024 7F0DD4F4 25680002 */ addiu $t0, $t3, 2 +/* 112028 7F0DD4F8 00087203 */ sra $t6, $t0, 8 +/* 11202C 7F0DD4FC 03384821 */ addu $t1, $t9, $t8 +/* 112030 7F0DD500 10000027 */ b .L7F0DD5A0 +/* 112034 7F0DD504 A12E0001 */ sb $t6, 1($t1) +.L7F0DD508: +/* 112038 7F0DD508 29415800 */ slti $at, $t2, 0x5800 +/* 11203C 7F0DD50C 1420000F */ bnez $at, .L7F0DD54C +/* 112040 7F0DD510 97AC0292 */ lhu $t4, 0x292($sp) +/* 112044 7F0DD514 97AC0298 */ lhu $t4, 0x298($sp) +/* 112048 7F0DD518 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 11204C 7F0DD51C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112050 7F0DD520 258F0002 */ addiu $t7, $t4, 2 +/* 112054 7F0DD524 000F5A03 */ sra $t3, $t7, 8 +/* 112058 7F0DD528 010DC821 */ addu $t9, $t0, $t5 +/* 11205C 7F0DD52C A32B0001 */ sb $t3, 1($t9) +/* 112060 7F0DD530 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112064 7F0DD534 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112068 7F0DD538 97A90292 */ lhu $t1, 0x292($sp) +/* 11206C 7F0DD53C 24180001 */ li $t8, 1 +/* 112070 7F0DD540 01C95021 */ addu $t2, $t6, $t1 +/* 112074 7F0DD544 10000016 */ b .L7F0DD5A0 +/* 112078 7F0DD548 A158A801 */ sb $t8, -0x57ff($t2) +.L7F0DD54C: +/* 11207C 7F0DD54C 258F0001 */ addiu $t7, $t4, 1 +/* 112080 7F0DD550 29E14000 */ slti $at, $t7, 0x4000 +/* 112084 7F0DD554 14200012 */ bnez $at, .L7F0DD5A0 +/* 112088 7F0DD558 97A80298 */ lhu $t0, 0x298($sp) +/* 11208C 7F0DD55C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112090 7F0DD560 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112094 7F0DD564 250D0002 */ addiu $t5, $t0, 2 +/* 112098 7F0DD568 000D5A03 */ sra $t3, $t5, 8 +/* 11209C 7F0DD56C 032C7021 */ addu $t6, $t9, $t4 +/* 1120A0 7F0DD570 A1CB0001 */ sb $t3, 1($t6) +/* 1120A4 7F0DD574 97B80292 */ lhu $t8, 0x292($sp) +/* 1120A8 7F0DD578 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1120AC 7F0DD57C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1120B0 7F0DD580 270A0001 */ addiu $t2, $t8, 1 +/* 1120B4 7F0DD584 314F1800 */ andi $t7, $t2, 0x1800 +/* 1120B8 7F0DD588 000F40C3 */ sra $t0, $t7, 3 +/* 1120BC 7F0DD58C 314D00FF */ andi $t5, $t2, 0xff +/* 1120C0 7F0DD590 010DC825 */ or $t9, $t0, $t5 +/* 1120C4 7F0DD594 24090001 */ li $t1, 1 +/* 1120C8 7F0DD598 01995821 */ addu $t3, $t4, $t9 +/* 1120CC 7F0DD59C A1690000 */ sb $t1, ($t3) +.L7F0DD5A0: +/* 1120D0 7F0DD5A0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1120D4 7F0DD5A4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1120D8 7F0DD5A8 97AE0298 */ lhu $t6, 0x298($sp) +/* 1120DC 7F0DD5AC 030E4021 */ addu $t0, $t8, $t6 +/* 1120E0 7F0DD5B0 910D0001 */ lbu $t5, 1($t0) +/* 1120E4 7F0DD5B4 01D87821 */ addu $t7, $t6, $t8 +/* 1120E8 7F0DD5B8 91EA0000 */ lbu $t2, ($t7) +/* 1120EC 7F0DD5BC 000D6200 */ sll $t4, $t5, 8 +/* 1120F0 7F0DD5C0 014CC825 */ or $t9, $t2, $t4 +/* 1120F4 7F0DD5C4 1000148D */ b .L7F0E27FC +/* 1120F8 7F0DD5C8 A7B90298 */ sh $t9, 0x298($sp) +.L7F0DD5CC: +/* 1120FC 7F0DD5CC 97A90298 */ lhu $t1, 0x298($sp) +/* 112100 7F0DD5D0 252B0002 */ addiu $t3, $t1, 2 +/* 112104 7F0DD5D4 10001489 */ b .L7F0E27FC +/* 112108 7F0DD5D8 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_DD: +/* 11210C 7F0DD5DC 8FAF028C */ lw $t7, 0x28c($sp) +/* 112110 7F0DD5E0 240E0001 */ li $t6, 1 +/* 112114 7F0DD5E4 A3AE0286 */ sb $t6, 0x286($sp) +/* 112118 7F0DD5E8 25F80004 */ addiu $t8, $t7, 4 +/* 11211C 7F0DD5EC AFB8028C */ sw $t8, 0x28c($sp) +/* 112120 7F0DD5F0 10001482 */ b .L7F0E27FC +/* 112124 7F0DD5F4 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_DE: +/* 112128 7F0DD5F8 8FA8028C */ lw $t0, 0x28c($sp) +/* 11212C 7F0DD5FC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112130 7F0DD600 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112134 7F0DD604 97AA0298 */ lhu $t2, 0x298($sp) +/* 112138 7F0DD608 250D0007 */ addiu $t5, $t0, 7 +/* 11213C 7F0DD60C AFAD028C */ sw $t5, 0x28c($sp) +/* 112140 7F0DD610 014CC821 */ addu $t9, $t2, $t4 +/* 112144 7F0DD614 93290000 */ lbu $t1, ($t9) +/* 112148 7F0DD618 322F0001 */ andi $t7, $s1, 1 +/* 11214C 7F0DD61C 3208000F */ andi $t0, $s0, 0xf +/* 112150 7F0DD620 02095823 */ subu $t3, $s0, $t1 +/* 112154 7F0DD624 016FC023 */ subu $t8, $t3, $t7 +/* 112158 7F0DD628 330E01FF */ andi $t6, $t8, 0x1ff +/* 11215C 7F0DD62C 312B000F */ andi $t3, $t1, 0xf +/* 112160 7F0DD630 016FC021 */ addu $t8, $t3, $t7 +/* 112164 7F0DD634 0118502A */ slt $t2, $t0, $t8 +/* 112168 7F0DD638 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 11216C 7F0DD63C 000E6203 */ sra $t4, $t6, 8 +/* 112170 7F0DD640 01ACC825 */ or $t9, $t5, $t4 +/* 112174 7F0DD644 02095826 */ xor $t3, $s0, $t1 +/* 112178 7F0DD648 000A6900 */ sll $t5, $t2, 4 +/* 11217C 7F0DD64C 01D0C026 */ xor $t8, $t6, $s0 +/* 112180 7F0DD650 A7AE00EE */ sh $t6, 0xee($sp) +/* 112184 7F0DD654 93B000EF */ lbu $s0, 0xef($sp) +/* 112188 7F0DD658 316F0080 */ andi $t7, $t3, 0x80 +/* 11218C 7F0DD65C 01F85024 */ and $t2, $t7, $t8 +/* 112190 7F0DD660 032D6025 */ or $t4, $t9, $t5 +/* 112194 7F0DD664 000AC943 */ sra $t9, $t2, 5 +/* 112198 7F0DD668 97B80298 */ lhu $t8, 0x298($sp) +/* 11219C 7F0DD66C 01998825 */ or $s1, $t4, $t9 +/* 1121A0 7F0DD670 A3A900ED */ sb $t1, 0xed($sp) +/* 1121A4 7F0DD674 2E0B0001 */ sltiu $t3, $s0, 1 +/* 1121A8 7F0DD678 000B4180 */ sll $t0, $t3, 6 +/* 1121AC 7F0DD67C 36290002 */ ori $t1, $s1, 2 +/* 1121B0 7F0DD680 01288825 */ or $s1, $t1, $t0 +/* 1121B4 7F0DD684 322F00FF */ andi $t7, $s1, 0xff +/* 1121B8 7F0DD688 270A0001 */ addiu $t2, $t8, 1 +/* 1121BC 7F0DD68C 01E08825 */ move $s1, $t7 +/* 1121C0 7F0DD690 AFAB0048 */ sw $t3, 0x48($sp) +/* 1121C4 7F0DD694 10001459 */ b .L7F0E27FC +/* 1121C8 7F0DD698 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_DF: +/* 1121CC 7F0DD69C 97AD0292 */ lhu $t5, 0x292($sp) +/* 1121D0 7F0DD6A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 1121D4 7F0DD6A4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1121D8 7F0DD6A8 25A9FFFE */ addiu $t1, $t5, -2 +/* 1121DC 7F0DD6AC 312BFFFF */ andi $t3, $t1, 0xffff +/* 1121E0 7F0DD6B0 29615B00 */ slti $at, $t3, 0x5b00 +/* 1121E4 7F0DD6B4 2599000B */ addiu $t9, $t4, 0xb +/* 1121E8 7F0DD6B8 AFB9028C */ sw $t9, 0x28c($sp) +/* 1121EC 7F0DD6BC 14200006 */ bnez $at, .L7F0DD6D8 +/* 1121F0 7F0DD6C0 A7A90292 */ sh $t1, 0x292($sp) +/* 1121F4 7F0DD6C4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1121F8 7F0DD6C8 97AE0298 */ lhu $t6, 0x298($sp) +/* 1121FC 7F0DD6CC 010B7821 */ addu $t7, $t0, $t3 +/* 112200 7F0DD6D0 10000023 */ b .L7F0DD760 +/* 112204 7F0DD6D4 A1EE0000 */ sb $t6, ($t7) +.L7F0DD6D8: +/* 112208 7F0DD6D8 97B80292 */ lhu $t8, 0x292($sp) +/* 11220C 7F0DD6DC 97AE0292 */ lhu $t6, 0x292($sp) +/* 112210 7F0DD6E0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112214 7F0DD6E4 2B015800 */ slti $at, $t8, 0x5800 +/* 112218 7F0DD6E8 5420000D */ bnezl $at, .L7F0DD720 +/* 11221C 7F0DD6EC 29C14000 */ slti $at, $t6, 0x4000 +/* 112220 7F0DD6F0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112224 7F0DD6F4 97AA0298 */ lhu $t2, 0x298($sp) +/* 112228 7F0DD6F8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 11222C 7F0DD6FC 0198C821 */ addu $t9, $t4, $t8 +/* 112230 7F0DD700 A32A0000 */ sb $t2, ($t9) +/* 112234 7F0DD704 97A80292 */ lhu $t0, 0x292($sp) +/* 112238 7F0DD708 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 11223C 7F0DD70C 240D0001 */ li $t5, 1 +/* 112240 7F0DD710 01285821 */ addu $t3, $t1, $t0 +/* 112244 7F0DD714 10000012 */ b .L7F0DD760 +/* 112248 7F0DD718 A16DA800 */ sb $t5, -0x5800($t3) +/* 11224C 7F0DD71C 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DD720: +/* 112250 7F0DD720 1420000F */ bnez $at, .L7F0DD760 +/* 112254 7F0DD724 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112258 7F0DD728 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 11225C 7F0DD72C 97AF0298 */ lhu $t7, 0x298($sp) +/* 112260 7F0DD730 240A0001 */ li $t2, 1 +/* 112264 7F0DD734 018EC021 */ addu $t8, $t4, $t6 +/* 112268 7F0DD738 A30F0000 */ sb $t7, ($t8) +/* 11226C 7F0DD73C 97B90292 */ lhu $t9, 0x292($sp) +/* 112270 7F0DD740 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112274 7F0DD744 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112278 7F0DD748 33291800 */ andi $t1, $t9, 0x1800 +/* 11227C 7F0DD74C 000940C3 */ sra $t0, $t1, 3 +/* 112280 7F0DD750 332D00FF */ andi $t5, $t9, 0xff +/* 112284 7F0DD754 010D5825 */ or $t3, $t0, $t5 +/* 112288 7F0DD758 018B7021 */ addu $t6, $t4, $t3 +/* 11228C 7F0DD75C A1CA0000 */ sb $t2, ($t6) +.L7F0DD760: +/* 112290 7F0DD760 97AF0292 */ lhu $t7, 0x292($sp) +/* 112294 7F0DD764 97AC0292 */ lhu $t4, 0x292($sp) +/* 112298 7F0DD768 97A90298 */ lhu $t1, 0x298($sp) +/* 11229C 7F0DD76C 25F80001 */ addiu $t8, $t7, 1 +/* 1122A0 7F0DD770 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1122A4 7F0DD774 14200007 */ bnez $at, .L7F0DD794 +/* 1122A8 7F0DD778 258B0001 */ addiu $t3, $t4, 1 +/* 1122AC 7F0DD77C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1122B0 7F0DD780 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1122B4 7F0DD784 0009CA03 */ sra $t9, $t1, 8 +/* 1122B8 7F0DD788 010F6821 */ addu $t5, $t0, $t7 +/* 1122BC 7F0DD78C 10000025 */ b .L7F0DD824 +/* 1122C0 7F0DD790 A1B90001 */ sb $t9, 1($t5) +.L7F0DD794: +/* 1122C4 7F0DD794 29615800 */ slti $at, $t3, 0x5800 +/* 1122C8 7F0DD798 1420000E */ bnez $at, .L7F0DD7D4 +/* 1122CC 7F0DD79C 97AB0292 */ lhu $t3, 0x292($sp) +/* 1122D0 7F0DD7A0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1122D4 7F0DD7A4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1122D8 7F0DD7A8 97AA0298 */ lhu $t2, 0x298($sp) +/* 1122DC 7F0DD7AC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1122E0 7F0DD7B0 030C4821 */ addu $t1, $t8, $t4 +/* 1122E4 7F0DD7B4 000A7203 */ sra $t6, $t2, 8 +/* 1122E8 7F0DD7B8 A12E0001 */ sb $t6, 1($t1) +/* 1122EC 7F0DD7BC 97B90292 */ lhu $t9, 0x292($sp) +/* 1122F0 7F0DD7C0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1122F4 7F0DD7C4 24080001 */ li $t0, 1 +/* 1122F8 7F0DD7C8 01F96821 */ addu $t5, $t7, $t9 +/* 1122FC 7F0DD7CC 10000015 */ b .L7F0DD824 +/* 112300 7F0DD7D0 A1A8A801 */ sb $t0, -0x57ff($t5) +.L7F0DD7D4: +/* 112304 7F0DD7D4 256A0001 */ addiu $t2, $t3, 1 +/* 112308 7F0DD7D8 29414000 */ slti $at, $t2, 0x4000 +/* 11230C 7F0DD7DC 14200011 */ bnez $at, .L7F0DD824 +/* 112310 7F0DD7E0 97B80298 */ lhu $t8, 0x298($sp) +/* 112314 7F0DD7E4 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112318 7F0DD7E8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11231C 7F0DD7EC 00186203 */ sra $t4, $t8, 8 +/* 112320 7F0DD7F0 240F0001 */ li $t7, 1 +/* 112324 7F0DD7F4 01CB4821 */ addu $t1, $t6, $t3 +/* 112328 7F0DD7F8 A12C0001 */ sb $t4, 1($t1) +/* 11232C 7F0DD7FC 97B90292 */ lhu $t9, 0x292($sp) +/* 112330 7F0DD800 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112334 7F0DD804 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112338 7F0DD808 27280001 */ addiu $t0, $t9, 1 +/* 11233C 7F0DD80C 310D1800 */ andi $t5, $t0, 0x1800 +/* 112340 7F0DD810 000D50C3 */ sra $t2, $t5, 3 +/* 112344 7F0DD814 311800FF */ andi $t8, $t0, 0xff +/* 112348 7F0DD818 01587025 */ or $t6, $t2, $t8 +/* 11234C 7F0DD81C 016E6021 */ addu $t4, $t3, $t6 +/* 112350 7F0DD820 A18F0000 */ sb $t7, ($t4) +.L7F0DD824: +/* 112354 7F0DD824 24090018 */ li $t1, 24 +/* 112358 7F0DD828 100013F4 */ b .L7F0E27FC +/* 11235C 7F0DD82C A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_E0: +/* 112360 7F0DD830 8FB9028C */ lw $t9, 0x28c($sp) +/* 112364 7F0DD834 32280004 */ andi $t0, $s1, 4 +/* 112368 7F0DD838 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 11236C 7F0DD83C 272D0005 */ addiu $t5, $t9, 5 +/* 112370 7F0DD840 150013EE */ bnez $t0, .L7F0E27FC +/* 112374 7F0DD844 AFAD028C */ sw $t5, 0x28c($sp) +/* 112378 7F0DD848 97AB0292 */ lhu $t3, 0x292($sp) +/* 11237C 7F0DD84C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112380 7F0DD850 25B80006 */ addiu $t8, $t5, 6 +/* 112384 7F0DD854 AFB8028C */ sw $t8, 0x28c($sp) +/* 112388 7F0DD858 01CB4821 */ addu $t1, $t6, $t3 +/* 11238C 7F0DD85C 91390001 */ lbu $t9, 1($t1) +/* 112390 7F0DD860 016E7821 */ addu $t7, $t3, $t6 +/* 112394 7F0DD864 91EC0000 */ lbu $t4, ($t7) +/* 112398 7F0DD868 00196A00 */ sll $t5, $t9, 8 +/* 11239C 7F0DD86C 256A0002 */ addiu $t2, $t3, 2 +/* 1123A0 7F0DD870 018D4025 */ or $t0, $t4, $t5 +/* 1123A4 7F0DD874 A7A80298 */ sh $t0, 0x298($sp) +/* 1123A8 7F0DD878 100013E0 */ b .L7F0E27FC +/* 1123AC 7F0DD87C A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_E1: +/* 1123B0 7F0DD880 8FB8028C */ lw $t8, 0x28c($sp) +/* 1123B4 7F0DD884 93AE0287 */ lbu $t6, 0x287($sp) +/* 1123B8 7F0DD888 93A80287 */ lbu $t0, 0x287($sp) +/* 1123BC 7F0DD88C 270F000A */ addiu $t7, $t8, 0xa +/* 1123C0 7F0DD890 15C0000A */ bnez $t6, .L7F0DD8BC +/* 1123C4 7F0DD894 AFAF028C */ sw $t7, 0x28c($sp) +/* 1123C8 7F0DD898 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1123CC 7F0DD89C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1123D0 7F0DD8A0 97A90292 */ lhu $t1, 0x292($sp) +/* 1123D4 7F0DD8A4 01396021 */ addu $t4, $t1, $t9 +/* 1123D8 7F0DD8A8 91970000 */ lbu $s7, ($t4) +/* 1123DC 7F0DD8AC 91960001 */ lbu $s6, 1($t4) +/* 1123E0 7F0DD8B0 252D0002 */ addiu $t5, $t1, 2 +/* 1123E4 7F0DD8B4 100013D1 */ b .L7F0E27FC +/* 1123E8 7F0DD8B8 A7AD0292 */ sh $t5, 0x292($sp) +.L7F0DD8BC: +/* 1123EC 7F0DD8BC 24010001 */ li $at, 1 +/* 1123F0 7F0DD8C0 1501000E */ bne $t0, $at, .L7F0DD8FC +/* 1123F4 7F0DD8C4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1123F8 7F0DD8C8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1123FC 7F0DD8CC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112400 7F0DD8D0 97AB0292 */ lhu $t3, 0x292($sp) +/* 112404 7F0DD8D4 014B7021 */ addu $t6, $t2, $t3 +/* 112408 7F0DD8D8 91D90001 */ lbu $t9, 1($t6) +/* 11240C 7F0DD8DC 016AC021 */ addu $t8, $t3, $t2 +/* 112410 7F0DD8E0 930F0000 */ lbu $t7, ($t8) +/* 112414 7F0DD8E4 00196200 */ sll $t4, $t9, 8 +/* 112418 7F0DD8E8 256D0002 */ addiu $t5, $t3, 2 +/* 11241C 7F0DD8EC 01EC4825 */ or $t1, $t7, $t4 +/* 112420 7F0DD8F0 A7A90296 */ sh $t1, 0x296($sp) +/* 112424 7F0DD8F4 100013C1 */ b .L7F0E27FC +/* 112428 7F0DD8F8 A7AD0292 */ sh $t5, 0x292($sp) +.L7F0DD8FC: +/* 11242C 7F0DD8FC 97A80292 */ lhu $t0, 0x292($sp) +/* 112430 7F0DD900 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112434 7F0DD904 250B0002 */ addiu $t3, $t0, 2 +/* 112438 7F0DD908 0308C821 */ addu $t9, $t8, $t0 +/* 11243C 7F0DD90C 932F0001 */ lbu $t7, 1($t9) +/* 112440 7F0DD910 01185021 */ addu $t2, $t0, $t8 +/* 112444 7F0DD914 914E0000 */ lbu $t6, ($t2) +/* 112448 7F0DD918 000F6200 */ sll $t4, $t7, 8 +/* 11244C 7F0DD91C A7AB0292 */ sh $t3, 0x292($sp) +/* 112450 7F0DD920 01CC4825 */ or $t1, $t6, $t4 +/* 112454 7F0DD924 100013B5 */ b .L7F0E27FC +/* 112458 7F0DD928 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_E2: +/* 11245C 7F0DD92C 8FAD028C */ lw $t5, 0x28c($sp) +/* 112460 7F0DD930 32380004 */ andi $t8, $s1, 4 +/* 112464 7F0DD934 97B90298 */ lhu $t9, 0x298($sp) +/* 112468 7F0DD938 25AA000A */ addiu $t2, $t5, 0xa +/* 11246C 7F0DD93C 1700000B */ bnez $t8, .L7F0DD96C +/* 112470 7F0DD940 AFAA028C */ sw $t2, 0x28c($sp) +/* 112474 7F0DD944 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112478 7F0DD948 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11247C 7F0DD94C 01F94821 */ addu $t1, $t7, $t9 +/* 112480 7F0DD950 91280001 */ lbu $t0, 1($t1) +/* 112484 7F0DD954 032F7021 */ addu $t6, $t9, $t7 +/* 112488 7F0DD958 91CC0000 */ lbu $t4, ($t6) +/* 11248C 7F0DD95C 00085A00 */ sll $t3, $t0, 8 +/* 112490 7F0DD960 018B6825 */ or $t5, $t4, $t3 +/* 112494 7F0DD964 100013A5 */ b .L7F0E27FC +/* 112498 7F0DD968 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0DD96C: +/* 11249C 7F0DD96C 97AA0298 */ lhu $t2, 0x298($sp) +/* 1124A0 7F0DD970 25580002 */ addiu $t8, $t2, 2 +/* 1124A4 7F0DD974 100013A1 */ b .L7F0E27FC +/* 1124A8 7F0DD978 A7B80298 */ sh $t8, 0x298($sp) +spectrum_op_E3: +/* 1124AC 7F0DD97C 8FAE028C */ lw $t6, 0x28c($sp) +/* 1124B0 7F0DD980 93B90287 */ lbu $t9, 0x287($sp) +/* 1124B4 7F0DD984 93AC0287 */ lbu $t4, 0x287($sp) +/* 1124B8 7F0DD988 25CF0013 */ addiu $t7, $t6, 0x13 +/* 1124BC 7F0DD98C 17200063 */ bnez $t9, .L7F0DDB1C +/* 1124C0 7F0DD990 AFAF028C */ sw $t7, 0x28c($sp) +/* 1124C4 7F0DD994 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1124C8 7F0DD998 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1124CC 7F0DD99C 97A90292 */ lhu $t1, 0x292($sp) +/* 1124D0 7F0DD9A0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1124D4 7F0DD9A4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1124D8 7F0DD9A8 01096821 */ addu $t5, $t0, $t1 +/* 1124DC 7F0DD9AC 91AA0001 */ lbu $t2, 1($t5) +/* 1124E0 7F0DD9B0 01286021 */ addu $t4, $t1, $t0 +/* 1124E4 7F0DD9B4 918B0000 */ lbu $t3, ($t4) +/* 1124E8 7F0DD9B8 000AC200 */ sll $t8, $t2, 8 +/* 1124EC 7F0DD9BC 29E15B00 */ slti $at, $t7, 0x5b00 +/* 1124F0 7F0DD9C0 01787025 */ or $t6, $t3, $t8 +/* 1124F4 7F0DD9C4 14200005 */ bnez $at, .L7F0DD9DC +/* 1124F8 7F0DD9C8 A7AE00EA */ sh $t6, 0xea($sp) +/* 1124FC 7F0DD9CC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112500 7F0DD9D0 032F6021 */ addu $t4, $t9, $t7 +/* 112504 7F0DD9D4 10000021 */ b .L7F0DDA5C +/* 112508 7F0DD9D8 A1970000 */ sb $s7, ($t4) +.L7F0DD9DC: +/* 11250C 7F0DD9DC 97A80292 */ lhu $t0, 0x292($sp) +/* 112510 7F0DD9E0 97B90292 */ lhu $t9, 0x292($sp) +/* 112514 7F0DD9E4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112518 7F0DD9E8 29015800 */ slti $at, $t0, 0x5800 +/* 11251C 7F0DD9EC 5420000C */ bnezl $at, .L7F0DDA20 +/* 112520 7F0DD9F0 2B214000 */ slti $at, $t9, 0x4000 +/* 112524 7F0DD9F4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112528 7F0DD9F8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 11252C 7F0DD9FC 240A0001 */ li $t2, 1 +/* 112530 7F0DDA00 01286821 */ addu $t5, $t1, $t0 +/* 112534 7F0DDA04 A1B70000 */ sb $s7, ($t5) +/* 112538 7F0DDA08 97B80292 */ lhu $t8, 0x292($sp) +/* 11253C 7F0DDA0C 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112540 7F0DDA10 01787021 */ addu $t6, $t3, $t8 +/* 112544 7F0DDA14 10000011 */ b .L7F0DDA5C +/* 112548 7F0DDA18 A1CAA800 */ sb $t2, -0x5800($t6) +/* 11254C 7F0DDA1C 2B214000 */ slti $at, $t9, 0x4000 +.L7F0DDA20: +/* 112550 7F0DDA20 1420000E */ bnez $at, .L7F0DDA5C +/* 112554 7F0DDA24 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112558 7F0DDA28 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11255C 7F0DDA2C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112560 7F0DDA30 24090001 */ li $t1, 1 +/* 112564 7F0DDA34 01F96021 */ addu $t4, $t7, $t9 +/* 112568 7F0DDA38 A1970000 */ sb $s7, ($t4) +/* 11256C 7F0DDA3C 97A80292 */ lhu $t0, 0x292($sp) +/* 112570 7F0DDA40 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112574 7F0DDA44 310D1800 */ andi $t5, $t0, 0x1800 +/* 112578 7F0DDA48 000D58C3 */ sra $t3, $t5, 3 +/* 11257C 7F0DDA4C 311800FF */ andi $t8, $t0, 0xff +/* 112580 7F0DDA50 01785025 */ or $t2, $t3, $t8 +/* 112584 7F0DDA54 01CA7821 */ addu $t7, $t6, $t2 +/* 112588 7F0DDA58 A1E90000 */ sb $t1, ($t7) +.L7F0DDA5C: +/* 11258C 7F0DDA5C 97B90292 */ lhu $t9, 0x292($sp) +/* 112590 7F0DDA60 97AB0292 */ lhu $t3, 0x292($sp) +/* 112594 7F0DDA64 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112598 7F0DDA68 272C0001 */ addiu $t4, $t9, 1 +/* 11259C 7F0DDA6C 29815B00 */ slti $at, $t4, 0x5b00 +/* 1125A0 7F0DDA70 14200005 */ bnez $at, .L7F0DDA88 +/* 1125A4 7F0DDA74 25780001 */ addiu $t8, $t3, 1 +/* 1125A8 7F0DDA78 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1125AC 7F0DDA7C 01B94021 */ addu $t0, $t5, $t9 +/* 1125B0 7F0DDA80 10000021 */ b .L7F0DDB08 +/* 1125B4 7F0DDA84 A1160001 */ sb $s6, 1($t0) +.L7F0DDA88: +/* 1125B8 7F0DDA88 2B015800 */ slti $at, $t8, 0x5800 +/* 1125BC 7F0DDA8C 1420000C */ bnez $at, .L7F0DDAC0 +/* 1125C0 7F0DDA90 97B90292 */ lhu $t9, 0x292($sp) +/* 1125C4 7F0DDA94 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1125C8 7F0DDA98 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1125CC 7F0DDA9C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1125D0 7F0DDAA0 24090001 */ li $t1, 1 +/* 1125D4 7F0DDAA4 01CB5021 */ addu $t2, $t6, $t3 +/* 1125D8 7F0DDAA8 A1560001 */ sb $s6, 1($t2) +/* 1125DC 7F0DDAAC 97AC0292 */ lhu $t4, 0x292($sp) +/* 1125E0 7F0DDAB0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1125E4 7F0DDAB4 01EC6821 */ addu $t5, $t7, $t4 +/* 1125E8 7F0DDAB8 10000013 */ b .L7F0DDB08 +/* 1125EC 7F0DDABC A1A9A801 */ sb $t1, -0x57ff($t5) +.L7F0DDAC0: +/* 1125F0 7F0DDAC0 27280001 */ addiu $t0, $t9, 1 +/* 1125F4 7F0DDAC4 29014000 */ slti $at, $t0, 0x4000 +/* 1125F8 7F0DDAC8 1420000F */ bnez $at, .L7F0DDB08 +/* 1125FC 7F0DDACC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112600 7F0DDAD0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112604 7F0DDAD4 240B0001 */ li $t3, 1 +/* 112608 7F0DDAD8 03197021 */ addu $t6, $t8, $t9 +/* 11260C 7F0DDADC A1D60001 */ sb $s6, 1($t6) +/* 112610 7F0DDAE0 97AA0292 */ lhu $t2, 0x292($sp) +/* 112614 7F0DDAE4 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 112618 7F0DDAE8 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 11261C 7F0DDAEC 254F0001 */ addiu $t7, $t2, 1 +/* 112620 7F0DDAF0 31EC1800 */ andi $t4, $t7, 0x1800 +/* 112624 7F0DDAF4 000C48C3 */ sra $t1, $t4, 3 +/* 112628 7F0DDAF8 31ED00FF */ andi $t5, $t7, 0xff +/* 11262C 7F0DDAFC 012D4025 */ or $t0, $t1, $t5 +/* 112630 7F0DDB00 0308C821 */ addu $t9, $t8, $t0 +/* 112634 7F0DDB04 A32B0000 */ sb $t3, ($t9) +.L7F0DDB08: +/* 112638 7F0DDB08 97B600EA */ lhu $s6, 0xea($sp) +/* 11263C 7F0DDB0C 93B700EB */ lbu $s7, 0xeb($sp) +/* 112640 7F0DDB10 00167203 */ sra $t6, $s6, 8 +/* 112644 7F0DDB14 10001339 */ b .L7F0E27FC +/* 112648 7F0DDB18 31D600FF */ andi $s6, $t6, 0xff +.L7F0DDB1C: +/* 11264C 7F0DDB1C 24010001 */ li $at, 1 +/* 112650 7F0DDB20 1581006A */ bne $t4, $at, .L7F0DDCCC +/* 112654 7F0DDB24 97B80292 */ lhu $t8, 0x292($sp) +/* 112658 7F0DDB28 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11265C 7F0DDB2C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112660 7F0DDB30 97AF0292 */ lhu $t7, 0x292($sp) +/* 112664 7F0DDB34 97AA0292 */ lhu $t2, 0x292($sp) +/* 112668 7F0DDB38 012F4021 */ addu $t0, $t1, $t7 +/* 11266C 7F0DDB3C 910B0001 */ lbu $t3, 1($t0) +/* 112670 7F0DDB40 01E96821 */ addu $t5, $t7, $t1 +/* 112674 7F0DDB44 91B80000 */ lbu $t8, ($t5) +/* 112678 7F0DDB48 000BCA00 */ sll $t9, $t3, 8 +/* 11267C 7F0DDB4C 29415B00 */ slti $at, $t2, 0x5b00 +/* 112680 7F0DDB50 03197025 */ or $t6, $t8, $t9 +/* 112684 7F0DDB54 14200007 */ bnez $at, .L7F0DDB74 +/* 112688 7F0DDB58 A7AE00E8 */ sh $t6, 0xe8($sp) +/* 11268C 7F0DDB5C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112690 7F0DDB60 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112694 7F0DDB64 97AC0296 */ lhu $t4, 0x296($sp) +/* 112698 7F0DDB68 01AA4821 */ addu $t1, $t5, $t2 +/* 11269C 7F0DDB6C 10000023 */ b .L7F0DDBFC +/* 1126A0 7F0DDB70 A12C0000 */ sb $t4, ($t1) +.L7F0DDB74: +/* 1126A4 7F0DDB74 97AF0292 */ lhu $t7, 0x292($sp) +/* 1126A8 7F0DDB78 97AC0292 */ lhu $t4, 0x292($sp) +/* 1126AC 7F0DDB7C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1126B0 7F0DDB80 29E15800 */ slti $at, $t7, 0x5800 +/* 1126B4 7F0DDB84 5420000D */ bnezl $at, .L7F0DDBBC +/* 1126B8 7F0DDB88 29814000 */ slti $at, $t4, 0x4000 +/* 1126BC 7F0DDB8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1126C0 7F0DDB90 97A80296 */ lhu $t0, 0x296($sp) +/* 1126C4 7F0DDB94 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1126C8 7F0DDB98 016FC021 */ addu $t8, $t3, $t7 +/* 1126CC 7F0DDB9C A3080000 */ sb $t0, ($t8) +/* 1126D0 7F0DDBA0 97AD0292 */ lhu $t5, 0x292($sp) +/* 1126D4 7F0DDBA4 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1126D8 7F0DDBA8 24190001 */ li $t9, 1 +/* 1126DC 7F0DDBAC 01CD5021 */ addu $t2, $t6, $t5 +/* 1126E0 7F0DDBB0 10000012 */ b .L7F0DDBFC +/* 1126E4 7F0DDBB4 A159A800 */ sb $t9, -0x5800($t2) +/* 1126E8 7F0DDBB8 29814000 */ slti $at, $t4, 0x4000 +.L7F0DDBBC: +/* 1126EC 7F0DDBBC 1420000F */ bnez $at, .L7F0DDBFC +/* 1126F0 7F0DDBC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1126F4 7F0DDBC4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1126F8 7F0DDBC8 97A90296 */ lhu $t1, 0x296($sp) +/* 1126FC 7F0DDBCC 24080001 */ li $t0, 1 +/* 112700 7F0DDBD0 016C7821 */ addu $t7, $t3, $t4 +/* 112704 7F0DDBD4 A1E90000 */ sb $t1, ($t7) +/* 112708 7F0DDBD8 97B80292 */ lhu $t8, 0x292($sp) +/* 11270C 7F0DDBDC 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112710 7F0DDBE0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112714 7F0DDBE4 330E1800 */ andi $t6, $t8, 0x1800 +/* 112718 7F0DDBE8 000E68C3 */ sra $t5, $t6, 3 +/* 11271C 7F0DDBEC 331900FF */ andi $t9, $t8, 0xff +/* 112720 7F0DDBF0 01B95025 */ or $t2, $t5, $t9 +/* 112724 7F0DDBF4 016A6021 */ addu $t4, $t3, $t2 +/* 112728 7F0DDBF8 A1880000 */ sb $t0, ($t4) +.L7F0DDBFC: +/* 11272C 7F0DDBFC 97A90292 */ lhu $t1, 0x292($sp) +/* 112730 7F0DDC00 97AB0292 */ lhu $t3, 0x292($sp) +/* 112734 7F0DDC04 97AE0296 */ lhu $t6, 0x296($sp) +/* 112738 7F0DDC08 252F0001 */ addiu $t7, $t1, 1 +/* 11273C 7F0DDC0C 29E15B00 */ slti $at, $t7, 0x5b00 +/* 112740 7F0DDC10 14200007 */ bnez $at, .L7F0DDC30 +/* 112744 7F0DDC14 256A0001 */ addiu $t2, $t3, 1 +/* 112748 7F0DDC18 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 11274C 7F0DDC1C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112750 7F0DDC20 000EC203 */ sra $t8, $t6, 8 +/* 112754 7F0DDC24 01A9C821 */ addu $t9, $t5, $t1 +/* 112758 7F0DDC28 10000025 */ b .L7F0DDCC0 +/* 11275C 7F0DDC2C A3380001 */ sb $t8, 1($t9) +.L7F0DDC30: +/* 112760 7F0DDC30 29415800 */ slti $at, $t2, 0x5800 +/* 112764 7F0DDC34 1420000E */ bnez $at, .L7F0DDC70 +/* 112768 7F0DDC38 97AA0292 */ lhu $t2, 0x292($sp) +/* 11276C 7F0DDC3C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112770 7F0DDC40 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 112774 7F0DDC44 97A80296 */ lhu $t0, 0x296($sp) +/* 112778 7F0DDC48 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 11277C 7F0DDC4C 01EB7021 */ addu $t6, $t7, $t3 +/* 112780 7F0DDC50 00086203 */ sra $t4, $t0, 8 +/* 112784 7F0DDC54 A1CC0001 */ sb $t4, 1($t6) +/* 112788 7F0DDC58 97B80292 */ lhu $t8, 0x292($sp) +/* 11278C 7F0DDC5C 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112790 7F0DDC60 240D0001 */ li $t5, 1 +/* 112794 7F0DDC64 0138C821 */ addu $t9, $t1, $t8 +/* 112798 7F0DDC68 10000015 */ b .L7F0DDCC0 +/* 11279C 7F0DDC6C A32DA801 */ sb $t5, -0x57ff($t9) +.L7F0DDC70: +/* 1127A0 7F0DDC70 25480001 */ addiu $t0, $t2, 1 +/* 1127A4 7F0DDC74 29014000 */ slti $at, $t0, 0x4000 +/* 1127A8 7F0DDC78 14200011 */ bnez $at, .L7F0DDCC0 +/* 1127AC 7F0DDC7C 97AF0296 */ lhu $t7, 0x296($sp) +/* 1127B0 7F0DDC80 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1127B4 7F0DDC84 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1127B8 7F0DDC88 000F5A03 */ sra $t3, $t7, 8 +/* 1127BC 7F0DDC8C 24090001 */ li $t1, 1 +/* 1127C0 7F0DDC90 018A7021 */ addu $t6, $t4, $t2 +/* 1127C4 7F0DDC94 A1CB0001 */ sb $t3, 1($t6) +/* 1127C8 7F0DDC98 97B80292 */ lhu $t8, 0x292($sp) +/* 1127CC 7F0DDC9C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1127D0 7F0DDCA0 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1127D4 7F0DDCA4 270D0001 */ addiu $t5, $t8, 1 +/* 1127D8 7F0DDCA8 31B91800 */ andi $t9, $t5, 0x1800 +/* 1127DC 7F0DDCAC 001940C3 */ sra $t0, $t9, 3 +/* 1127E0 7F0DDCB0 31AF00FF */ andi $t7, $t5, 0xff +/* 1127E4 7F0DDCB4 010F6025 */ or $t4, $t0, $t7 +/* 1127E8 7F0DDCB8 014C5821 */ addu $t3, $t2, $t4 +/* 1127EC 7F0DDCBC A1690000 */ sb $t1, ($t3) +.L7F0DDCC0: +/* 1127F0 7F0DDCC0 97AE00E8 */ lhu $t6, 0xe8($sp) +/* 1127F4 7F0DDCC4 100012CD */ b .L7F0E27FC +/* 1127F8 7F0DDCC8 A7AE0296 */ sh $t6, 0x296($sp) +.L7F0DDCCC: +/* 1127FC 7F0DDCCC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112800 7F0DDCD0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112804 7F0DDCD4 97AB0292 */ lhu $t3, 0x292($sp) +/* 112808 7F0DDCD8 03387821 */ addu $t7, $t9, $t8 +/* 11280C 7F0DDCDC 91EA0001 */ lbu $t2, 1($t7) +/* 112810 7F0DDCE0 03196821 */ addu $t5, $t8, $t9 +/* 112814 7F0DDCE4 91A80000 */ lbu $t0, ($t5) +/* 112818 7F0DDCE8 000A6200 */ sll $t4, $t2, 8 +/* 11281C 7F0DDCEC 29615B00 */ slti $at, $t3, 0x5b00 +/* 112820 7F0DDCF0 010C4825 */ or $t1, $t0, $t4 +/* 112824 7F0DDCF4 14200007 */ bnez $at, .L7F0DDD14 +/* 112828 7F0DDCF8 A7A900E6 */ sh $t1, 0xe6($sp) +/* 11282C 7F0DDCFC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112830 7F0DDD00 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112834 7F0DDD04 97AE0294 */ lhu $t6, 0x294($sp) +/* 112838 7F0DDD08 01ABC821 */ addu $t9, $t5, $t3 +/* 11283C 7F0DDD0C 10000023 */ b .L7F0DDD9C +/* 112840 7F0DDD10 A32E0000 */ sb $t6, ($t9) +.L7F0DDD14: +/* 112844 7F0DDD14 97B80292 */ lhu $t8, 0x292($sp) +/* 112848 7F0DDD18 97AE0292 */ lhu $t6, 0x292($sp) +/* 11284C 7F0DDD1C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112850 7F0DDD20 2B015800 */ slti $at, $t8, 0x5800 +/* 112854 7F0DDD24 5420000D */ bnezl $at, .L7F0DDD5C +/* 112858 7F0DDD28 29C14000 */ slti $at, $t6, 0x4000 +/* 11285C 7F0DDD2C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112860 7F0DDD30 97AF0294 */ lhu $t7, 0x294($sp) +/* 112864 7F0DDD34 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 112868 7F0DDD38 01584021 */ addu $t0, $t2, $t8 +/* 11286C 7F0DDD3C A10F0000 */ sb $t7, ($t0) +/* 112870 7F0DDD40 97AD0292 */ lhu $t5, 0x292($sp) +/* 112874 7F0DDD44 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112878 7F0DDD48 240C0001 */ li $t4, 1 +/* 11287C 7F0DDD4C 012D5821 */ addu $t3, $t1, $t5 +/* 112880 7F0DDD50 10000012 */ b .L7F0DDD9C +/* 112884 7F0DDD54 A16CA800 */ sb $t4, -0x5800($t3) +/* 112888 7F0DDD58 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DDD5C: +/* 11288C 7F0DDD5C 1420000F */ bnez $at, .L7F0DDD9C +/* 112890 7F0DDD60 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112894 7F0DDD64 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112898 7F0DDD68 97B90294 */ lhu $t9, 0x294($sp) +/* 11289C 7F0DDD6C 240F0001 */ li $t7, 1 +/* 1128A0 7F0DDD70 014EC021 */ addu $t8, $t2, $t6 +/* 1128A4 7F0DDD74 A3190000 */ sb $t9, ($t8) +/* 1128A8 7F0DDD78 97A80292 */ lhu $t0, 0x292($sp) +/* 1128AC 7F0DDD7C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1128B0 7F0DDD80 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1128B4 7F0DDD84 31091800 */ andi $t1, $t0, 0x1800 +/* 1128B8 7F0DDD88 000968C3 */ sra $t5, $t1, 3 +/* 1128BC 7F0DDD8C 310C00FF */ andi $t4, $t0, 0xff +/* 1128C0 7F0DDD90 01AC5825 */ or $t3, $t5, $t4 +/* 1128C4 7F0DDD94 014B7021 */ addu $t6, $t2, $t3 +/* 1128C8 7F0DDD98 A1CF0000 */ sb $t7, ($t6) +.L7F0DDD9C: +/* 1128CC 7F0DDD9C 97B90292 */ lhu $t9, 0x292($sp) +/* 1128D0 7F0DDDA0 97AA0292 */ lhu $t2, 0x292($sp) +/* 1128D4 7F0DDDA4 97A90294 */ lhu $t1, 0x294($sp) +/* 1128D8 7F0DDDA8 27380001 */ addiu $t8, $t9, 1 +/* 1128DC 7F0DDDAC 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1128E0 7F0DDDB0 14200007 */ bnez $at, .L7F0DDDD0 +/* 1128E4 7F0DDDB4 254B0001 */ addiu $t3, $t2, 1 +/* 1128E8 7F0DDDB8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1128EC 7F0DDDBC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1128F0 7F0DDDC0 00094203 */ sra $t0, $t1, 8 +/* 1128F4 7F0DDDC4 01B96021 */ addu $t4, $t5, $t9 +/* 1128F8 7F0DDDC8 10000025 */ b .L7F0DDE60 +/* 1128FC 7F0DDDCC A1880001 */ sb $t0, 1($t4) +.L7F0DDDD0: +/* 112900 7F0DDDD0 29615800 */ slti $at, $t3, 0x5800 +/* 112904 7F0DDDD4 1420000E */ bnez $at, .L7F0DDE10 +/* 112908 7F0DDDD8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11290C 7F0DDDDC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112910 7F0DDDE0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112914 7F0DDDE4 97AF0294 */ lhu $t7, 0x294($sp) +/* 112918 7F0DDDE8 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 11291C 7F0DDDEC 030A4821 */ addu $t1, $t8, $t2 +/* 112920 7F0DDDF0 000F7203 */ sra $t6, $t7, 8 +/* 112924 7F0DDDF4 A12E0001 */ sb $t6, 1($t1) +/* 112928 7F0DDDF8 97A80292 */ lhu $t0, 0x292($sp) +/* 11292C 7F0DDDFC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 112930 7F0DDE00 240D0001 */ li $t5, 1 +/* 112934 7F0DDE04 03286021 */ addu $t4, $t9, $t0 +/* 112938 7F0DDE08 10000015 */ b .L7F0DDE60 +/* 11293C 7F0DDE0C A18DA801 */ sb $t5, -0x57ff($t4) +.L7F0DDE10: +/* 112940 7F0DDE10 256F0001 */ addiu $t7, $t3, 1 +/* 112944 7F0DDE14 29E14000 */ slti $at, $t7, 0x4000 +/* 112948 7F0DDE18 14200011 */ bnez $at, .L7F0DDE60 +/* 11294C 7F0DDE1C 97B80294 */ lhu $t8, 0x294($sp) +/* 112950 7F0DDE20 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112954 7F0DDE24 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112958 7F0DDE28 00185203 */ sra $t2, $t8, 8 +/* 11295C 7F0DDE2C 24190001 */ li $t9, 1 +/* 112960 7F0DDE30 01CB4821 */ addu $t1, $t6, $t3 +/* 112964 7F0DDE34 A12A0001 */ sb $t2, 1($t1) +/* 112968 7F0DDE38 97A80292 */ lhu $t0, 0x292($sp) +/* 11296C 7F0DDE3C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112970 7F0DDE40 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112974 7F0DDE44 250D0001 */ addiu $t5, $t0, 1 +/* 112978 7F0DDE48 31AC1800 */ andi $t4, $t5, 0x1800 +/* 11297C 7F0DDE4C 000C78C3 */ sra $t7, $t4, 3 +/* 112980 7F0DDE50 31B800FF */ andi $t8, $t5, 0xff +/* 112984 7F0DDE54 01F87025 */ or $t6, $t7, $t8 +/* 112988 7F0DDE58 016E5021 */ addu $t2, $t3, $t6 +/* 11298C 7F0DDE5C A1590000 */ sb $t9, ($t2) +.L7F0DDE60: +/* 112990 7F0DDE60 97A900E6 */ lhu $t1, 0xe6($sp) +/* 112994 7F0DDE64 10001265 */ b .L7F0E27FC +/* 112998 7F0DDE68 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_E4: +/* 11299C 7F0DDE6C 8FA8028C */ lw $t0, 0x28c($sp) +/* 1129A0 7F0DDE70 322D0004 */ andi $t5, $s1, 4 +/* 1129A4 7F0DDE74 250C000A */ addiu $t4, $t0, 0xa +/* 1129A8 7F0DDE78 15A00072 */ bnez $t5, .L7F0DE044 +/* 1129AC 7F0DDE7C AFAC028C */ sw $t4, 0x28c($sp) +/* 1129B0 7F0DDE80 97AB0292 */ lhu $t3, 0x292($sp) +/* 1129B4 7F0DDE84 25980007 */ addiu $t8, $t4, 7 +/* 1129B8 7F0DDE88 AFB8028C */ sw $t8, 0x28c($sp) +/* 1129BC 7F0DDE8C 256EFFFE */ addiu $t6, $t3, -2 +/* 1129C0 7F0DDE90 31D9FFFF */ andi $t9, $t6, 0xffff +/* 1129C4 7F0DDE94 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1129C8 7F0DDE98 14200008 */ bnez $at, .L7F0DDEBC +/* 1129CC 7F0DDE9C A7AE0292 */ sh $t6, 0x292($sp) +/* 1129D0 7F0DDEA0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1129D4 7F0DDEA4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1129D8 7F0DDEA8 97AA0298 */ lhu $t2, 0x298($sp) +/* 1129DC 7F0DDEAC 01196021 */ addu $t4, $t0, $t9 +/* 1129E0 7F0DDEB0 25490002 */ addiu $t1, $t2, 2 +/* 1129E4 7F0DDEB4 10000024 */ b .L7F0DDF48 +/* 1129E8 7F0DDEB8 A1890000 */ sb $t1, ($t4) +.L7F0DDEBC: +/* 1129EC 7F0DDEBC 97AD0292 */ lhu $t5, 0x292($sp) +/* 1129F0 7F0DDEC0 97AC0292 */ lhu $t4, 0x292($sp) +/* 1129F4 7F0DDEC4 97AF0298 */ lhu $t7, 0x298($sp) +/* 1129F8 7F0DDEC8 29A15800 */ slti $at, $t5, 0x5800 +/* 1129FC 7F0DDECC 1420000C */ bnez $at, .L7F0DDF00 +/* 112A00 7F0DDED0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 112A04 7F0DDED4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 112A08 7F0DDED8 25F80002 */ addiu $t8, $t7, 2 +/* 112A0C 7F0DDEDC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112A10 7F0DDEE0 016D7021 */ addu $t6, $t3, $t5 +/* 112A14 7F0DDEE4 A1D80000 */ sb $t8, ($t6) +/* 112A18 7F0DDEE8 97B90292 */ lhu $t9, 0x292($sp) +/* 112A1C 7F0DDEEC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112A20 7F0DDEF0 240A0001 */ li $t2, 1 +/* 112A24 7F0DDEF4 01194821 */ addu $t1, $t0, $t9 +/* 112A28 7F0DDEF8 10000013 */ b .L7F0DDF48 +/* 112A2C 7F0DDEFC A12AA800 */ sb $t2, -0x5800($t1) +.L7F0DDF00: +/* 112A30 7F0DDF00 29814000 */ slti $at, $t4, 0x4000 +/* 112A34 7F0DDF04 14200010 */ bnez $at, .L7F0DDF48 +/* 112A38 7F0DDF08 97AF0298 */ lhu $t7, 0x298($sp) +/* 112A3C 7F0DDF0C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112A40 7F0DDF10 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112A44 7F0DDF14 25EB0002 */ addiu $t3, $t7, 2 +/* 112A48 7F0DDF18 240E0001 */ li $t6, 1 +/* 112A4C 7F0DDF1C 01ACC021 */ addu $t8, $t5, $t4 +/* 112A50 7F0DDF20 A30B0000 */ sb $t3, ($t8) +/* 112A54 7F0DDF24 97A80292 */ lhu $t0, 0x292($sp) +/* 112A58 7F0DDF28 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 112A5C 7F0DDF2C 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 112A60 7F0DDF30 31191800 */ andi $t9, $t0, 0x1800 +/* 112A64 7F0DDF34 001950C3 */ sra $t2, $t9, 3 +/* 112A68 7F0DDF38 310900FF */ andi $t1, $t0, 0xff +/* 112A6C 7F0DDF3C 01497825 */ or $t7, $t2, $t1 +/* 112A70 7F0DDF40 01AF6021 */ addu $t4, $t5, $t7 +/* 112A74 7F0DDF44 A18E0000 */ sb $t6, ($t4) +.L7F0DDF48: +/* 112A78 7F0DDF48 97AB0292 */ lhu $t3, 0x292($sp) +/* 112A7C 7F0DDF4C 97AF0292 */ lhu $t7, 0x292($sp) +/* 112A80 7F0DDF50 97B90298 */ lhu $t9, 0x298($sp) +/* 112A84 7F0DDF54 25780001 */ addiu $t8, $t3, 1 +/* 112A88 7F0DDF58 2B015B00 */ slti $at, $t8, 0x5b00 +/* 112A8C 7F0DDF5C 14200008 */ bnez $at, .L7F0DDF80 +/* 112A90 7F0DDF60 25EE0001 */ addiu $t6, $t7, 1 +/* 112A94 7F0DDF64 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112A98 7F0DDF68 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112A9C 7F0DDF6C 27280002 */ addiu $t0, $t9, 2 +/* 112AA0 7F0DDF70 00085203 */ sra $t2, $t0, 8 +/* 112AA4 7F0DDF74 012B6821 */ addu $t5, $t1, $t3 +/* 112AA8 7F0DDF78 10000027 */ b .L7F0DE018 +/* 112AAC 7F0DDF7C A1AA0001 */ sb $t2, 1($t5) +.L7F0DDF80: +/* 112AB0 7F0DDF80 29C15800 */ slti $at, $t6, 0x5800 +/* 112AB4 7F0DDF84 1420000F */ bnez $at, .L7F0DDFC4 +/* 112AB8 7F0DDF88 97AC0292 */ lhu $t4, 0x292($sp) +/* 112ABC 7F0DDF8C 97AC0298 */ lhu $t4, 0x298($sp) +/* 112AC0 7F0DDF90 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112AC4 7F0DDF94 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112AC8 7F0DDF98 25980002 */ addiu $t8, $t4, 2 +/* 112ACC 7F0DDF9C 0018CA03 */ sra $t9, $t8, 8 +/* 112AD0 7F0DDFA0 010F4821 */ addu $t1, $t0, $t7 +/* 112AD4 7F0DDFA4 A1390001 */ sb $t9, 1($t1) +/* 112AD8 7F0DDFA8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 112ADC 7F0DDFAC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 112AE0 7F0DDFB0 97AD0292 */ lhu $t5, 0x292($sp) +/* 112AE4 7F0DDFB4 240B0001 */ li $t3, 1 +/* 112AE8 7F0DDFB8 014D7021 */ addu $t6, $t2, $t5 +/* 112AEC 7F0DDFBC 10000016 */ b .L7F0DE018 +/* 112AF0 7F0DDFC0 A1CBA801 */ sb $t3, -0x57ff($t6) +.L7F0DDFC4: +/* 112AF4 7F0DDFC4 25980001 */ addiu $t8, $t4, 1 +/* 112AF8 7F0DDFC8 2B014000 */ slti $at, $t8, 0x4000 +/* 112AFC 7F0DDFCC 14200012 */ bnez $at, .L7F0DE018 +/* 112B00 7F0DDFD0 97A80298 */ lhu $t0, 0x298($sp) +/* 112B04 7F0DDFD4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112B08 7F0DDFD8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112B0C 7F0DDFDC 250F0002 */ addiu $t7, $t0, 2 +/* 112B10 7F0DDFE0 000FCA03 */ sra $t9, $t7, 8 +/* 112B14 7F0DDFE4 012C5021 */ addu $t2, $t1, $t4 +/* 112B18 7F0DDFE8 A1590001 */ sb $t9, 1($t2) +/* 112B1C 7F0DDFEC 97AB0292 */ lhu $t3, 0x292($sp) +/* 112B20 7F0DDFF0 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112B24 7F0DDFF4 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112B28 7F0DDFF8 256E0001 */ addiu $t6, $t3, 1 +/* 112B2C 7F0DDFFC 31D81800 */ andi $t8, $t6, 0x1800 +/* 112B30 7F0DE000 001840C3 */ sra $t0, $t8, 3 +/* 112B34 7F0DE004 31CF00FF */ andi $t7, $t6, 0xff +/* 112B38 7F0DE008 010F4825 */ or $t1, $t0, $t7 +/* 112B3C 7F0DE00C 240D0001 */ li $t5, 1 +/* 112B40 7F0DE010 0189C821 */ addu $t9, $t4, $t1 +/* 112B44 7F0DE014 A32D0000 */ sb $t5, ($t9) +.L7F0DE018: +/* 112B48 7F0DE018 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 112B4C 7F0DE01C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 112B50 7F0DE020 97AA0298 */ lhu $t2, 0x298($sp) +/* 112B54 7F0DE024 016A4021 */ addu $t0, $t3, $t2 +/* 112B58 7F0DE028 910F0001 */ lbu $t7, 1($t0) +/* 112B5C 7F0DE02C 014BC021 */ addu $t8, $t2, $t3 +/* 112B60 7F0DE030 930E0000 */ lbu $t6, ($t8) +/* 112B64 7F0DE034 000F6200 */ sll $t4, $t7, 8 +/* 112B68 7F0DE038 01CC4825 */ or $t1, $t6, $t4 +/* 112B6C 7F0DE03C 100011EF */ b .L7F0E27FC +/* 112B70 7F0DE040 A7A90298 */ sh $t1, 0x298($sp) +.L7F0DE044: +/* 112B74 7F0DE044 97AD0298 */ lhu $t5, 0x298($sp) +/* 112B78 7F0DE048 25B90002 */ addiu $t9, $t5, 2 +/* 112B7C 7F0DE04C 100011EB */ b .L7F0E27FC +/* 112B80 7F0DE050 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_E5: +/* 112B84 7F0DE054 8FB8028C */ lw $t8, 0x28c($sp) +/* 112B88 7F0DE058 93AA0287 */ lbu $t2, 0x287($sp) +/* 112B8C 7F0DE05C 93AF0287 */ lbu $t7, 0x287($sp) +/* 112B90 7F0DE060 270B000B */ addiu $t3, $t8, 0xb +/* 112B94 7F0DE064 15400058 */ bnez $t2, .L7F0DE1C8 +/* 112B98 7F0DE068 AFAB028C */ sw $t3, 0x28c($sp) +/* 112B9C 7F0DE06C 97A80292 */ lhu $t0, 0x292($sp) +/* 112BA0 7F0DE070 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112BA4 7F0DE074 250FFFFE */ addiu $t7, $t0, -2 +/* 112BA8 7F0DE078 31EEFFFF */ andi $t6, $t7, 0xffff +/* 112BAC 7F0DE07C 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112BB0 7F0DE080 14200005 */ bnez $at, .L7F0DE098 +/* 112BB4 7F0DE084 A7AF0292 */ sh $t7, 0x292($sp) +/* 112BB8 7F0DE088 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112BBC 7F0DE08C 018E4821 */ addu $t1, $t4, $t6 +/* 112BC0 7F0DE090 10000021 */ b .L7F0DE118 +/* 112BC4 7F0DE094 A1370000 */ sb $s7, ($t1) +.L7F0DE098: +/* 112BC8 7F0DE098 97AD0292 */ lhu $t5, 0x292($sp) +/* 112BCC 7F0DE09C 97AC0292 */ lhu $t4, 0x292($sp) +/* 112BD0 7F0DE0A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112BD4 7F0DE0A4 29A15800 */ slti $at, $t5, 0x5800 +/* 112BD8 7F0DE0A8 5420000C */ bnezl $at, .L7F0DE0DC +/* 112BDC 7F0DE0AC 29814000 */ slti $at, $t4, 0x4000 +/* 112BE0 7F0DE0B0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112BE4 7F0DE0B4 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 112BE8 7F0DE0B8 240B0001 */ li $t3, 1 +/* 112BEC 7F0DE0BC 032DC021 */ addu $t8, $t9, $t5 +/* 112BF0 7F0DE0C0 A3170000 */ sb $s7, ($t8) +/* 112BF4 7F0DE0C4 97A80292 */ lhu $t0, 0x292($sp) +/* 112BF8 7F0DE0C8 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 112BFC 7F0DE0CC 01487821 */ addu $t7, $t2, $t0 +/* 112C00 7F0DE0D0 10000011 */ b .L7F0DE118 +/* 112C04 7F0DE0D4 A1EBA800 */ sb $t3, -0x5800($t7) +/* 112C08 7F0DE0D8 29814000 */ slti $at, $t4, 0x4000 +.L7F0DE0DC: +/* 112C0C 7F0DE0DC 1420000E */ bnez $at, .L7F0DE118 +/* 112C10 7F0DE0E0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112C14 7F0DE0E4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112C18 7F0DE0E8 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 112C1C 7F0DE0EC 24190001 */ li $t9, 1 +/* 112C20 7F0DE0F0 01CC4821 */ addu $t1, $t6, $t4 +/* 112C24 7F0DE0F4 A1370000 */ sb $s7, ($t1) +/* 112C28 7F0DE0F8 97AD0292 */ lhu $t5, 0x292($sp) +/* 112C2C 7F0DE0FC 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 112C30 7F0DE100 31B81800 */ andi $t8, $t5, 0x1800 +/* 112C34 7F0DE104 001850C3 */ sra $t2, $t8, 3 +/* 112C38 7F0DE108 31A800FF */ andi $t0, $t5, 0xff +/* 112C3C 7F0DE10C 01485825 */ or $t3, $t2, $t0 +/* 112C40 7F0DE110 01EB7021 */ addu $t6, $t7, $t3 +/* 112C44 7F0DE114 A1D90000 */ sb $t9, ($t6) +.L7F0DE118: +/* 112C48 7F0DE118 97AC0292 */ lhu $t4, 0x292($sp) +/* 112C4C 7F0DE11C 97AA0292 */ lhu $t2, 0x292($sp) +/* 112C50 7F0DE120 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112C54 7F0DE124 25890001 */ addiu $t1, $t4, 1 +/* 112C58 7F0DE128 29215B00 */ slti $at, $t1, 0x5b00 +/* 112C5C 7F0DE12C 14200005 */ bnez $at, .L7F0DE144 +/* 112C60 7F0DE130 25480001 */ addiu $t0, $t2, 1 +/* 112C64 7F0DE134 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112C68 7F0DE138 030C6821 */ addu $t5, $t8, $t4 +/* 112C6C 7F0DE13C 100011AF */ b .L7F0E27FC +/* 112C70 7F0DE140 A1B60001 */ sb $s6, 1($t5) +.L7F0DE144: +/* 112C74 7F0DE144 29015800 */ slti $at, $t0, 0x5800 +/* 112C78 7F0DE148 1420000C */ bnez $at, .L7F0DE17C +/* 112C7C 7F0DE14C 97AC0292 */ lhu $t4, 0x292($sp) +/* 112C80 7F0DE150 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112C84 7F0DE154 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 112C88 7F0DE158 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112C8C 7F0DE15C 24190001 */ li $t9, 1 +/* 112C90 7F0DE160 01EA5821 */ addu $t3, $t7, $t2 +/* 112C94 7F0DE164 A1760001 */ sb $s6, 1($t3) +/* 112C98 7F0DE168 97A90292 */ lhu $t1, 0x292($sp) +/* 112C9C 7F0DE16C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112CA0 7F0DE170 01C9C021 */ addu $t8, $t6, $t1 +/* 112CA4 7F0DE174 100011A1 */ b .L7F0E27FC +/* 112CA8 7F0DE178 A319A801 */ sb $t9, -0x57ff($t8) +.L7F0DE17C: +/* 112CAC 7F0DE17C 258D0001 */ addiu $t5, $t4, 1 +/* 112CB0 7F0DE180 29A14000 */ slti $at, $t5, 0x4000 +/* 112CB4 7F0DE184 1420119D */ bnez $at, .L7F0E27FC +/* 112CB8 7F0DE188 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112CBC 7F0DE18C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112CC0 7F0DE190 240A0001 */ li $t2, 1 +/* 112CC4 7F0DE194 010C7821 */ addu $t7, $t0, $t4 +/* 112CC8 7F0DE198 A1F60001 */ sb $s6, 1($t7) +/* 112CCC 7F0DE19C 97AB0292 */ lhu $t3, 0x292($sp) +/* 112CD0 7F0DE1A0 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112CD4 7F0DE1A4 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112CD8 7F0DE1A8 256E0001 */ addiu $t6, $t3, 1 +/* 112CDC 7F0DE1AC 31C91800 */ andi $t1, $t6, 0x1800 +/* 112CE0 7F0DE1B0 0009C8C3 */ sra $t9, $t1, 3 +/* 112CE4 7F0DE1B4 31D800FF */ andi $t8, $t6, 0xff +/* 112CE8 7F0DE1B8 03386825 */ or $t5, $t9, $t8 +/* 112CEC 7F0DE1BC 010D6021 */ addu $t4, $t0, $t5 +/* 112CF0 7F0DE1C0 1000118E */ b .L7F0E27FC +/* 112CF4 7F0DE1C4 A18A0000 */ sb $t2, ($t4) +.L7F0DE1C8: +/* 112CF8 7F0DE1C8 24010001 */ li $at, 1 +/* 112CFC 7F0DE1CC 15E10061 */ bne $t7, $at, .L7F0DE354 +/* 112D00 7F0DE1D0 97A90292 */ lhu $t1, 0x292($sp) +/* 112D04 7F0DE1D4 97AB0292 */ lhu $t3, 0x292($sp) +/* 112D08 7F0DE1D8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112D0C 7F0DE1DC 2569FFFE */ addiu $t1, $t3, -2 +/* 112D10 7F0DE1E0 312EFFFF */ andi $t6, $t1, 0xffff +/* 112D14 7F0DE1E4 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112D18 7F0DE1E8 14200006 */ bnez $at, .L7F0DE204 +/* 112D1C 7F0DE1EC A7A90292 */ sh $t1, 0x292($sp) +/* 112D20 7F0DE1F0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112D24 7F0DE1F4 97B90296 */ lhu $t9, 0x296($sp) +/* 112D28 7F0DE1F8 030E4021 */ addu $t0, $t8, $t6 +/* 112D2C 7F0DE1FC 10000023 */ b .L7F0DE28C +/* 112D30 7F0DE200 A1190000 */ sb $t9, ($t0) +.L7F0DE204: +/* 112D34 7F0DE204 97AD0292 */ lhu $t5, 0x292($sp) +/* 112D38 7F0DE208 97B90292 */ lhu $t9, 0x292($sp) +/* 112D3C 7F0DE20C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112D40 7F0DE210 29A15800 */ slti $at, $t5, 0x5800 +/* 112D44 7F0DE214 5420000D */ bnezl $at, .L7F0DE24C +/* 112D48 7F0DE218 2B214000 */ slti $at, $t9, 0x4000 +/* 112D4C 7F0DE21C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112D50 7F0DE220 97AA0296 */ lhu $t2, 0x296($sp) +/* 112D54 7F0DE224 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 112D58 7F0DE228 018D7821 */ addu $t7, $t4, $t5 +/* 112D5C 7F0DE22C A1EA0000 */ sb $t2, ($t7) +/* 112D60 7F0DE230 97B80292 */ lhu $t8, 0x292($sp) +/* 112D64 7F0DE234 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112D68 7F0DE238 240B0001 */ li $t3, 1 +/* 112D6C 7F0DE23C 01387021 */ addu $t6, $t1, $t8 +/* 112D70 7F0DE240 10000012 */ b .L7F0DE28C +/* 112D74 7F0DE244 A1CBA800 */ sb $t3, -0x5800($t6) +/* 112D78 7F0DE248 2B214000 */ slti $at, $t9, 0x4000 +.L7F0DE24C: +/* 112D7C 7F0DE24C 1420000F */ bnez $at, .L7F0DE28C +/* 112D80 7F0DE250 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112D84 7F0DE254 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112D88 7F0DE258 97A80296 */ lhu $t0, 0x296($sp) +/* 112D8C 7F0DE25C 240A0001 */ li $t2, 1 +/* 112D90 7F0DE260 01996821 */ addu $t5, $t4, $t9 +/* 112D94 7F0DE264 A1A80000 */ sb $t0, ($t5) +/* 112D98 7F0DE268 97AF0292 */ lhu $t7, 0x292($sp) +/* 112D9C 7F0DE26C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112DA0 7F0DE270 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112DA4 7F0DE274 31E91800 */ andi $t1, $t7, 0x1800 +/* 112DA8 7F0DE278 0009C0C3 */ sra $t8, $t1, 3 +/* 112DAC 7F0DE27C 31EB00FF */ andi $t3, $t7, 0xff +/* 112DB0 7F0DE280 030B7025 */ or $t6, $t8, $t3 +/* 112DB4 7F0DE284 018EC821 */ addu $t9, $t4, $t6 +/* 112DB8 7F0DE288 A32A0000 */ sb $t2, ($t9) +.L7F0DE28C: +/* 112DBC 7F0DE28C 97A80292 */ lhu $t0, 0x292($sp) +/* 112DC0 7F0DE290 97AC0292 */ lhu $t4, 0x292($sp) +/* 112DC4 7F0DE294 97A90296 */ lhu $t1, 0x296($sp) +/* 112DC8 7F0DE298 250D0001 */ addiu $t5, $t0, 1 +/* 112DCC 7F0DE29C 29A15B00 */ slti $at, $t5, 0x5b00 +/* 112DD0 7F0DE2A0 14200007 */ bnez $at, .L7F0DE2C0 +/* 112DD4 7F0DE2A4 258E0001 */ addiu $t6, $t4, 1 +/* 112DD8 7F0DE2A8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112DDC 7F0DE2AC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112DE0 7F0DE2B0 00097A03 */ sra $t7, $t1, 8 +/* 112DE4 7F0DE2B4 03085821 */ addu $t3, $t8, $t0 +/* 112DE8 7F0DE2B8 10001150 */ b .L7F0E27FC +/* 112DEC 7F0DE2BC A16F0001 */ sb $t7, 1($t3) +.L7F0DE2C0: +/* 112DF0 7F0DE2C0 29C15800 */ slti $at, $t6, 0x5800 +/* 112DF4 7F0DE2C4 1420000E */ bnez $at, .L7F0DE300 +/* 112DF8 7F0DE2C8 97AE0292 */ lhu $t6, 0x292($sp) +/* 112DFC 7F0DE2CC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112E00 7F0DE2D0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112E04 7F0DE2D4 97AA0296 */ lhu $t2, 0x296($sp) +/* 112E08 7F0DE2D8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112E0C 7F0DE2DC 01AC4821 */ addu $t1, $t5, $t4 +/* 112E10 7F0DE2E0 000ACA03 */ sra $t9, $t2, 8 +/* 112E14 7F0DE2E4 A1390001 */ sb $t9, 1($t1) +/* 112E18 7F0DE2E8 97AF0292 */ lhu $t7, 0x292($sp) +/* 112E1C 7F0DE2EC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112E20 7F0DE2F0 24180001 */ li $t8, 1 +/* 112E24 7F0DE2F4 010F5821 */ addu $t3, $t0, $t7 +/* 112E28 7F0DE2F8 10001140 */ b .L7F0E27FC +/* 112E2C 7F0DE2FC A178A801 */ sb $t8, -0x57ff($t3) +.L7F0DE300: +/* 112E30 7F0DE300 25CA0001 */ addiu $t2, $t6, 1 +/* 112E34 7F0DE304 29414000 */ slti $at, $t2, 0x4000 +/* 112E38 7F0DE308 1420113C */ bnez $at, .L7F0E27FC +/* 112E3C 7F0DE30C 97AD0296 */ lhu $t5, 0x296($sp) +/* 112E40 7F0DE310 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112E44 7F0DE314 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112E48 7F0DE318 000D6203 */ sra $t4, $t5, 8 +/* 112E4C 7F0DE31C 24080001 */ li $t0, 1 +/* 112E50 7F0DE320 032E4821 */ addu $t1, $t9, $t6 +/* 112E54 7F0DE324 A12C0001 */ sb $t4, 1($t1) +/* 112E58 7F0DE328 97AF0292 */ lhu $t7, 0x292($sp) +/* 112E5C 7F0DE32C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112E60 7F0DE330 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112E64 7F0DE334 25F80001 */ addiu $t8, $t7, 1 +/* 112E68 7F0DE338 330B1800 */ andi $t3, $t8, 0x1800 +/* 112E6C 7F0DE33C 000B50C3 */ sra $t2, $t3, 3 +/* 112E70 7F0DE340 330D00FF */ andi $t5, $t8, 0xff +/* 112E74 7F0DE344 014DC825 */ or $t9, $t2, $t5 +/* 112E78 7F0DE348 01D96021 */ addu $t4, $t6, $t9 +/* 112E7C 7F0DE34C 1000112B */ b .L7F0E27FC +/* 112E80 7F0DE350 A1880000 */ sb $t0, ($t4) +.L7F0DE354: +/* 112E84 7F0DE354 252FFFFE */ addiu $t7, $t1, -2 +/* 112E88 7F0DE358 31EBFFFF */ andi $t3, $t7, 0xffff +/* 112E8C 7F0DE35C 29615B00 */ slti $at, $t3, 0x5b00 +/* 112E90 7F0DE360 14200007 */ bnez $at, .L7F0DE380 +/* 112E94 7F0DE364 A7AF0292 */ sh $t7, 0x292($sp) +/* 112E98 7F0DE368 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112E9C 7F0DE36C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112EA0 7F0DE370 97B80294 */ lhu $t8, 0x294($sp) +/* 112EA4 7F0DE374 014B6821 */ addu $t5, $t2, $t3 +/* 112EA8 7F0DE378 10000023 */ b .L7F0DE408 +/* 112EAC 7F0DE37C A1B80000 */ sb $t8, ($t5) +.L7F0DE380: +/* 112EB0 7F0DE380 97AE0292 */ lhu $t6, 0x292($sp) +/* 112EB4 7F0DE384 97B80292 */ lhu $t8, 0x292($sp) +/* 112EB8 7F0DE388 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112EBC 7F0DE38C 29C15800 */ slti $at, $t6, 0x5800 +/* 112EC0 7F0DE390 5420000D */ bnezl $at, .L7F0DE3C8 +/* 112EC4 7F0DE394 2B014000 */ slti $at, $t8, 0x4000 +/* 112EC8 7F0DE398 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112ECC 7F0DE39C 97B90294 */ lhu $t9, 0x294($sp) +/* 112ED0 7F0DE3A0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 112ED4 7F0DE3A4 010E6021 */ addu $t4, $t0, $t6 +/* 112ED8 7F0DE3A8 A1990000 */ sb $t9, ($t4) +/* 112EDC 7F0DE3AC 97AA0292 */ lhu $t2, 0x292($sp) +/* 112EE0 7F0DE3B0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 112EE4 7F0DE3B4 24090001 */ li $t1, 1 +/* 112EE8 7F0DE3B8 01EA5821 */ addu $t3, $t7, $t2 +/* 112EEC 7F0DE3BC 10000012 */ b .L7F0DE408 +/* 112EF0 7F0DE3C0 A169A800 */ sb $t1, -0x5800($t3) +/* 112EF4 7F0DE3C4 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DE3C8: +/* 112EF8 7F0DE3C8 1420000F */ bnez $at, .L7F0DE408 +/* 112EFC 7F0DE3CC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112F00 7F0DE3D0 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112F04 7F0DE3D4 97AD0294 */ lhu $t5, 0x294($sp) +/* 112F08 7F0DE3D8 24190001 */ li $t9, 1 +/* 112F0C 7F0DE3DC 01187021 */ addu $t6, $t0, $t8 +/* 112F10 7F0DE3E0 A1CD0000 */ sb $t5, ($t6) +/* 112F14 7F0DE3E4 97AC0292 */ lhu $t4, 0x292($sp) +/* 112F18 7F0DE3E8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112F1C 7F0DE3EC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112F20 7F0DE3F0 318F1800 */ andi $t7, $t4, 0x1800 +/* 112F24 7F0DE3F4 000F50C3 */ sra $t2, $t7, 3 +/* 112F28 7F0DE3F8 318900FF */ andi $t1, $t4, 0xff +/* 112F2C 7F0DE3FC 01495825 */ or $t3, $t2, $t1 +/* 112F30 7F0DE400 010BC021 */ addu $t8, $t0, $t3 +/* 112F34 7F0DE404 A3190000 */ sb $t9, ($t8) +.L7F0DE408: +/* 112F38 7F0DE408 97AD0292 */ lhu $t5, 0x292($sp) +/* 112F3C 7F0DE40C 97A80292 */ lhu $t0, 0x292($sp) +/* 112F40 7F0DE410 97AF0294 */ lhu $t7, 0x294($sp) +/* 112F44 7F0DE414 25AE0001 */ addiu $t6, $t5, 1 +/* 112F48 7F0DE418 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112F4C 7F0DE41C 14200007 */ bnez $at, .L7F0DE43C +/* 112F50 7F0DE420 250B0001 */ addiu $t3, $t0, 1 +/* 112F54 7F0DE424 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112F58 7F0DE428 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112F5C 7F0DE42C 000F6203 */ sra $t4, $t7, 8 +/* 112F60 7F0DE430 014D4821 */ addu $t1, $t2, $t5 +/* 112F64 7F0DE434 100010F1 */ b .L7F0E27FC +/* 112F68 7F0DE438 A12C0001 */ sb $t4, 1($t1) +.L7F0DE43C: +/* 112F6C 7F0DE43C 29615800 */ slti $at, $t3, 0x5800 +/* 112F70 7F0DE440 1420000E */ bnez $at, .L7F0DE47C +/* 112F74 7F0DE444 97AB0292 */ lhu $t3, 0x292($sp) +/* 112F78 7F0DE448 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112F7C 7F0DE44C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112F80 7F0DE450 97B90294 */ lhu $t9, 0x294($sp) +/* 112F84 7F0DE454 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 112F88 7F0DE458 01C87821 */ addu $t7, $t6, $t0 +/* 112F8C 7F0DE45C 0019C203 */ sra $t8, $t9, 8 +/* 112F90 7F0DE460 A1F80001 */ sb $t8, 1($t7) +/* 112F94 7F0DE464 97AC0292 */ lhu $t4, 0x292($sp) +/* 112F98 7F0DE468 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 112F9C 7F0DE46C 240A0001 */ li $t2, 1 +/* 112FA0 7F0DE470 01AC4821 */ addu $t1, $t5, $t4 +/* 112FA4 7F0DE474 100010E1 */ b .L7F0E27FC +/* 112FA8 7F0DE478 A12AA801 */ sb $t2, -0x57ff($t1) +.L7F0DE47C: +/* 112FAC 7F0DE47C 25790001 */ addiu $t9, $t3, 1 +/* 112FB0 7F0DE480 2B214000 */ slti $at, $t9, 0x4000 +/* 112FB4 7F0DE484 142010DD */ bnez $at, .L7F0E27FC +/* 112FB8 7F0DE488 97AE0294 */ lhu $t6, 0x294($sp) +/* 112FBC 7F0DE48C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112FC0 7F0DE490 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112FC4 7F0DE494 000E4203 */ sra $t0, $t6, 8 +/* 112FC8 7F0DE498 240D0001 */ li $t5, 1 +/* 112FCC 7F0DE49C 030B7821 */ addu $t7, $t8, $t3 +/* 112FD0 7F0DE4A0 A1E80001 */ sb $t0, 1($t7) +/* 112FD4 7F0DE4A4 97AC0292 */ lhu $t4, 0x292($sp) +/* 112FD8 7F0DE4A8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112FDC 7F0DE4AC 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112FE0 7F0DE4B0 258A0001 */ addiu $t2, $t4, 1 +/* 112FE4 7F0DE4B4 31491800 */ andi $t1, $t2, 0x1800 +/* 112FE8 7F0DE4B8 0009C8C3 */ sra $t9, $t1, 3 +/* 112FEC 7F0DE4BC 314E00FF */ andi $t6, $t2, 0xff +/* 112FF0 7F0DE4C0 032EC025 */ or $t8, $t9, $t6 +/* 112FF4 7F0DE4C4 01784021 */ addu $t0, $t3, $t8 +/* 112FF8 7F0DE4C8 100010CC */ b .L7F0E27FC +/* 112FFC 7F0DE4CC A10D0000 */ sb $t5, ($t0) +spectrum_op_E6: +/* 113000 7F0DE4D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 113004 7F0DE4D4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113008 7F0DE4D8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 11300C 7F0DE4DC 97AA0298 */ lhu $t2, 0x298($sp) +/* 113010 7F0DE4E0 25EC0007 */ addiu $t4, $t7, 7 +/* 113014 7F0DE4E4 AFAC028C */ sw $t4, 0x28c($sp) +/* 113018 7F0DE4E8 012AC821 */ addu $t9, $t1, $t2 +/* 11301C 7F0DE4EC 932E0000 */ lbu $t6, ($t9) +/* 113020 7F0DE4F0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 113024 7F0DE4F4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 113028 7F0DE4F8 020E8024 */ and $s0, $s0, $t6 +/* 11302C 7F0DE4FC 320B00FF */ andi $t3, $s0, 0xff +/* 113030 7F0DE500 2D780001 */ sltiu $t8, $t3, 1 +/* 113034 7F0DE504 AFB80048 */ sw $t8, 0x48($sp) +/* 113038 7F0DE508 00187980 */ sll $t7, $t8, 6 +/* 11303C 7F0DE50C 016AC821 */ addu $t9, $t3, $t2 +/* 113040 7F0DE510 932E0000 */ lbu $t6, ($t9) +/* 113044 7F0DE514 316D00A8 */ andi $t5, $t3, 0xa8 +/* 113048 7F0DE518 97B80298 */ lhu $t8, 0x298($sp) +/* 11304C 7F0DE51C 01AF6025 */ or $t4, $t5, $t7 +/* 113050 7F0DE520 35890010 */ ori $t1, $t4, 0x10 +/* 113054 7F0DE524 01608025 */ move $s0, $t3 +/* 113058 7F0DE528 01C98825 */ or $s1, $t6, $t1 +/* 11305C 7F0DE52C 322B00FF */ andi $t3, $s1, 0xff +/* 113060 7F0DE530 27080001 */ addiu $t0, $t8, 1 +/* 113064 7F0DE534 01608825 */ move $s1, $t3 +/* 113068 7F0DE538 100010B0 */ b .L7F0E27FC +/* 11306C 7F0DE53C A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_E7: +/* 113070 7F0DE540 97AC0292 */ lhu $t4, 0x292($sp) +/* 113074 7F0DE544 8FAD028C */ lw $t5, 0x28c($sp) +/* 113078 7F0DE548 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11307C 7F0DE54C 258AFFFE */ addiu $t2, $t4, -2 +/* 113080 7F0DE550 3159FFFF */ andi $t9, $t2, 0xffff +/* 113084 7F0DE554 2B215B00 */ slti $at, $t9, 0x5b00 +/* 113088 7F0DE558 25AF000B */ addiu $t7, $t5, 0xb +/* 11308C 7F0DE55C AFAF028C */ sw $t7, 0x28c($sp) +/* 113090 7F0DE560 14200006 */ bnez $at, .L7F0DE57C +/* 113094 7F0DE564 A7AA0292 */ sh $t2, 0x292($sp) +/* 113098 7F0DE568 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 11309C 7F0DE56C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1130A0 7F0DE570 01395821 */ addu $t3, $t1, $t9 +/* 1130A4 7F0DE574 10000023 */ b .L7F0DE604 +/* 1130A8 7F0DE578 A16E0000 */ sb $t6, ($t3) +.L7F0DE57C: +/* 1130AC 7F0DE57C 97B80292 */ lhu $t8, 0x292($sp) +/* 1130B0 7F0DE580 97AE0292 */ lhu $t6, 0x292($sp) +/* 1130B4 7F0DE584 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1130B8 7F0DE588 2B015800 */ slti $at, $t8, 0x5800 +/* 1130BC 7F0DE58C 5420000D */ bnezl $at, .L7F0DE5C4 +/* 1130C0 7F0DE590 29C14000 */ slti $at, $t6, 0x4000 +/* 1130C4 7F0DE594 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1130C8 7F0DE598 97A80298 */ lhu $t0, 0x298($sp) +/* 1130CC 7F0DE59C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1130D0 7F0DE5A0 01B87821 */ addu $t7, $t5, $t8 +/* 1130D4 7F0DE5A4 A1E80000 */ sb $t0, ($t7) +/* 1130D8 7F0DE5A8 97A90292 */ lhu $t1, 0x292($sp) +/* 1130DC 7F0DE5AC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1130E0 7F0DE5B0 240C0001 */ li $t4, 1 +/* 1130E4 7F0DE5B4 0149C821 */ addu $t9, $t2, $t1 +/* 1130E8 7F0DE5B8 10000012 */ b .L7F0DE604 +/* 1130EC 7F0DE5BC A32CA800 */ sb $t4, -0x5800($t9) +/* 1130F0 7F0DE5C0 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DE5C4: +/* 1130F4 7F0DE5C4 1420000F */ bnez $at, .L7F0DE604 +/* 1130F8 7F0DE5C8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1130FC 7F0DE5CC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 113100 7F0DE5D0 97AB0298 */ lhu $t3, 0x298($sp) +/* 113104 7F0DE5D4 24080001 */ li $t0, 1 +/* 113108 7F0DE5D8 01AEC021 */ addu $t8, $t5, $t6 +/* 11310C 7F0DE5DC A30B0000 */ sb $t3, ($t8) +/* 113110 7F0DE5E0 97AF0292 */ lhu $t7, 0x292($sp) +/* 113114 7F0DE5E4 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 113118 7F0DE5E8 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11311C 7F0DE5EC 31EA1800 */ andi $t2, $t7, 0x1800 +/* 113120 7F0DE5F0 000A48C3 */ sra $t1, $t2, 3 +/* 113124 7F0DE5F4 31EC00FF */ andi $t4, $t7, 0xff +/* 113128 7F0DE5F8 012CC825 */ or $t9, $t1, $t4 +/* 11312C 7F0DE5FC 01B97021 */ addu $t6, $t5, $t9 +/* 113130 7F0DE600 A1C80000 */ sb $t0, ($t6) +.L7F0DE604: +/* 113134 7F0DE604 97AB0292 */ lhu $t3, 0x292($sp) +/* 113138 7F0DE608 97AD0292 */ lhu $t5, 0x292($sp) +/* 11313C 7F0DE60C 97AA0298 */ lhu $t2, 0x298($sp) +/* 113140 7F0DE610 25780001 */ addiu $t8, $t3, 1 +/* 113144 7F0DE614 2B015B00 */ slti $at, $t8, 0x5b00 +/* 113148 7F0DE618 14200007 */ bnez $at, .L7F0DE638 +/* 11314C 7F0DE61C 25B90001 */ addiu $t9, $t5, 1 +/* 113150 7F0DE620 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113154 7F0DE624 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113158 7F0DE628 000A7A03 */ sra $t7, $t2, 8 +/* 11315C 7F0DE62C 012B6021 */ addu $t4, $t1, $t3 +/* 113160 7F0DE630 10000025 */ b .L7F0DE6C8 +/* 113164 7F0DE634 A18F0001 */ sb $t7, 1($t4) +.L7F0DE638: +/* 113168 7F0DE638 2B215800 */ slti $at, $t9, 0x5800 +/* 11316C 7F0DE63C 1420000E */ bnez $at, .L7F0DE678 +/* 113170 7F0DE640 97B90292 */ lhu $t9, 0x292($sp) +/* 113174 7F0DE644 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 113178 7F0DE648 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11317C 7F0DE64C 97A80298 */ lhu $t0, 0x298($sp) +/* 113180 7F0DE650 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 113184 7F0DE654 030D5021 */ addu $t2, $t8, $t5 +/* 113188 7F0DE658 00087203 */ sra $t6, $t0, 8 +/* 11318C 7F0DE65C A14E0001 */ sb $t6, 1($t2) +/* 113190 7F0DE660 97AF0292 */ lhu $t7, 0x292($sp) +/* 113194 7F0DE664 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 113198 7F0DE668 24090001 */ li $t1, 1 +/* 11319C 7F0DE66C 016F6021 */ addu $t4, $t3, $t7 +/* 1131A0 7F0DE670 10000015 */ b .L7F0DE6C8 +/* 1131A4 7F0DE674 A189A801 */ sb $t1, -0x57ff($t4) +.L7F0DE678: +/* 1131A8 7F0DE678 27280001 */ addiu $t0, $t9, 1 +/* 1131AC 7F0DE67C 29014000 */ slti $at, $t0, 0x4000 +/* 1131B0 7F0DE680 14200011 */ bnez $at, .L7F0DE6C8 +/* 1131B4 7F0DE684 97B80298 */ lhu $t8, 0x298($sp) +/* 1131B8 7F0DE688 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1131BC 7F0DE68C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1131C0 7F0DE690 00186A03 */ sra $t5, $t8, 8 +/* 1131C4 7F0DE694 240B0001 */ li $t3, 1 +/* 1131C8 7F0DE698 01D95021 */ addu $t2, $t6, $t9 +/* 1131CC 7F0DE69C A14D0001 */ sb $t5, 1($t2) +/* 1131D0 7F0DE6A0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1131D4 7F0DE6A4 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1131D8 7F0DE6A8 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1131DC 7F0DE6AC 25E90001 */ addiu $t1, $t7, 1 +/* 1131E0 7F0DE6B0 312C1800 */ andi $t4, $t1, 0x1800 +/* 1131E4 7F0DE6B4 000C40C3 */ sra $t0, $t4, 3 +/* 1131E8 7F0DE6B8 313800FF */ andi $t8, $t1, 0xff +/* 1131EC 7F0DE6BC 01187025 */ or $t6, $t0, $t8 +/* 1131F0 7F0DE6C0 032E6821 */ addu $t5, $t9, $t6 +/* 1131F4 7F0DE6C4 A1AB0000 */ sb $t3, ($t5) +.L7F0DE6C8: +/* 1131F8 7F0DE6C8 240A0020 */ li $t2, 32 +/* 1131FC 7F0DE6CC 1000104B */ b .L7F0E27FC +/* 113200 7F0DE6D0 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_E8: +/* 113204 7F0DE6D4 8FAF028C */ lw $t7, 0x28c($sp) +/* 113208 7F0DE6D8 32290004 */ andi $t1, $s1, 4 +/* 11320C 7F0DE6DC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113210 7F0DE6E0 25EC0005 */ addiu $t4, $t7, 5 +/* 113214 7F0DE6E4 11201045 */ beqz $t1, .L7F0E27FC +/* 113218 7F0DE6E8 AFAC028C */ sw $t4, 0x28c($sp) +/* 11321C 7F0DE6EC 97B90292 */ lhu $t9, 0x292($sp) +/* 113220 7F0DE6F0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113224 7F0DE6F4 25980006 */ addiu $t8, $t4, 6 +/* 113228 7F0DE6F8 AFB8028C */ sw $t8, 0x28c($sp) +/* 11322C 7F0DE6FC 01D95021 */ addu $t2, $t6, $t9 +/* 113230 7F0DE700 914F0001 */ lbu $t7, 1($t2) +/* 113234 7F0DE704 032E5821 */ addu $t3, $t9, $t6 +/* 113238 7F0DE708 916D0000 */ lbu $t5, ($t3) +/* 11323C 7F0DE70C 000F6200 */ sll $t4, $t7, 8 +/* 113240 7F0DE710 27280002 */ addiu $t0, $t9, 2 +/* 113244 7F0DE714 01AC4825 */ or $t1, $t5, $t4 +/* 113248 7F0DE718 A7A90298 */ sh $t1, 0x298($sp) +/* 11324C 7F0DE71C 10001037 */ b .L7F0E27FC +/* 113250 7F0DE720 A7A80292 */ sh $t0, 0x292($sp) +spectrum_op_E9: +/* 113254 7F0DE724 8FB8028C */ lw $t8, 0x28c($sp) +/* 113258 7F0DE728 93AE0287 */ lbu $t6, 0x287($sp) +/* 11325C 7F0DE72C 93AD0287 */ lbu $t5, 0x287($sp) +/* 113260 7F0DE730 270B0004 */ addiu $t3, $t8, 4 +/* 113264 7F0DE734 15C00005 */ bnez $t6, .L7F0DE74C +/* 113268 7F0DE738 AFAB028C */ sw $t3, 0x28c($sp) +/* 11326C 7F0DE73C 00165200 */ sll $t2, $s6, 8 +/* 113270 7F0DE740 01577825 */ or $t7, $t2, $s7 +/* 113274 7F0DE744 1000102D */ b .L7F0E27FC +/* 113278 7F0DE748 A7AF0298 */ sh $t7, 0x298($sp) +.L7F0DE74C: +/* 11327C 7F0DE74C 24010001 */ li $at, 1 +/* 113280 7F0DE750 15A10004 */ bne $t5, $at, .L7F0DE764 +/* 113284 7F0DE754 97A90294 */ lhu $t1, 0x294($sp) +/* 113288 7F0DE758 97AC0296 */ lhu $t4, 0x296($sp) +/* 11328C 7F0DE75C 10000002 */ b .L7F0DE768 +/* 113290 7F0DE760 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DE764: +/* 113294 7F0DE764 AFA90048 */ sw $t1, 0x48($sp) +.L7F0DE768: +/* 113298 7F0DE768 8FB90048 */ lw $t9, 0x48($sp) +/* 11329C 7F0DE76C 10001023 */ b .L7F0E27FC +/* 1132A0 7F0DE770 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_EA: +/* 1132A4 7F0DE774 8FA8028C */ lw $t0, 0x28c($sp) +/* 1132A8 7F0DE778 322B0004 */ andi $t3, $s1, 4 +/* 1132AC 7F0DE77C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1132B0 7F0DE780 2518000A */ addiu $t8, $t0, 0xa +/* 1132B4 7F0DE784 1160000B */ beqz $t3, .L7F0DE7B4 +/* 1132B8 7F0DE788 AFB8028C */ sw $t8, 0x28c($sp) +/* 1132BC 7F0DE78C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1132C0 7F0DE790 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1132C4 7F0DE794 014E6021 */ addu $t4, $t2, $t6 +/* 1132C8 7F0DE798 91890001 */ lbu $t1, 1($t4) +/* 1132CC 7F0DE79C 01CA7821 */ addu $t7, $t6, $t2 +/* 1132D0 7F0DE7A0 91ED0000 */ lbu $t5, ($t7) +/* 1132D4 7F0DE7A4 0009CA00 */ sll $t9, $t1, 8 +/* 1132D8 7F0DE7A8 01B94025 */ or $t0, $t5, $t9 +/* 1132DC 7F0DE7AC 10001013 */ b .L7F0E27FC +/* 1132E0 7F0DE7B0 A7A80298 */ sh $t0, 0x298($sp) +.L7F0DE7B4: +/* 1132E4 7F0DE7B4 97B80298 */ lhu $t8, 0x298($sp) +/* 1132E8 7F0DE7B8 270B0002 */ addiu $t3, $t8, 2 +/* 1132EC 7F0DE7BC 1000100F */ b .L7F0E27FC +/* 1132F0 7F0DE7C0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_EB: +/* 1132F4 7F0DE7C4 8FAF028C */ lw $t7, 0x28c($sp) +/* 1132F8 7F0DE7C8 A3B600E5 */ sb $s6, 0xe5($sp) +/* 1132FC 7F0DE7CC A3B500E4 */ sb $s5, 0xe4($sp) +/* 113300 7F0DE7D0 329600FF */ andi $s6, $s4, 0xff +/* 113304 7F0DE7D4 32F500FF */ andi $s5, $s7, 0xff +/* 113308 7F0DE7D8 25EA0004 */ addiu $t2, $t7, 4 +/* 11330C 7F0DE7DC AFAA028C */ sw $t2, 0x28c($sp) +/* 113310 7F0DE7E0 93B400E5 */ lbu $s4, 0xe5($sp) +/* 113314 7F0DE7E4 10001005 */ b .L7F0E27FC +/* 113318 7F0DE7E8 93B700E4 */ lbu $s7, 0xe4($sp) +spectrum_op_EC: +/* 11331C 7F0DE7EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 113320 7F0DE7F0 32290004 */ andi $t1, $s1, 4 +/* 113324 7F0DE7F4 25CC000A */ addiu $t4, $t6, 0xa +/* 113328 7F0DE7F8 11200072 */ beqz $t1, .L7F0DE9C4 +/* 11332C 7F0DE7FC AFAC028C */ sw $t4, 0x28c($sp) +/* 113330 7F0DE800 97A80292 */ lhu $t0, 0x292($sp) +/* 113334 7F0DE804 25990007 */ addiu $t9, $t4, 7 +/* 113338 7F0DE808 AFB9028C */ sw $t9, 0x28c($sp) +/* 11333C 7F0DE80C 2518FFFE */ addiu $t8, $t0, -2 +/* 113340 7F0DE810 330BFFFF */ andi $t3, $t8, 0xffff +/* 113344 7F0DE814 29615B00 */ slti $at, $t3, 0x5b00 +/* 113348 7F0DE818 14200008 */ bnez $at, .L7F0DE83C +/* 11334C 7F0DE81C A7B80292 */ sh $t8, 0x292($sp) +/* 113350 7F0DE820 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113354 7F0DE824 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113358 7F0DE828 97AF0298 */ lhu $t7, 0x298($sp) +/* 11335C 7F0DE82C 01CB6021 */ addu $t4, $t6, $t3 +/* 113360 7F0DE830 25EA0002 */ addiu $t2, $t7, 2 +/* 113364 7F0DE834 10000024 */ b .L7F0DE8C8 +/* 113368 7F0DE838 A18A0000 */ sb $t2, ($t4) +.L7F0DE83C: +/* 11336C 7F0DE83C 97A90292 */ lhu $t1, 0x292($sp) +/* 113370 7F0DE840 97AC0292 */ lhu $t4, 0x292($sp) +/* 113374 7F0DE844 97AD0298 */ lhu $t5, 0x298($sp) +/* 113378 7F0DE848 29215800 */ slti $at, $t1, 0x5800 +/* 11337C 7F0DE84C 1420000C */ bnez $at, .L7F0DE880 +/* 113380 7F0DE850 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113384 7F0DE854 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113388 7F0DE858 25B90002 */ addiu $t9, $t5, 2 +/* 11338C 7F0DE85C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 113390 7F0DE860 0109C021 */ addu $t8, $t0, $t1 +/* 113394 7F0DE864 A3190000 */ sb $t9, ($t8) +/* 113398 7F0DE868 97AB0292 */ lhu $t3, 0x292($sp) +/* 11339C 7F0DE86C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1133A0 7F0DE870 240F0001 */ li $t7, 1 +/* 1133A4 7F0DE874 01CB5021 */ addu $t2, $t6, $t3 +/* 1133A8 7F0DE878 10000013 */ b .L7F0DE8C8 +/* 1133AC 7F0DE87C A14FA800 */ sb $t7, -0x5800($t2) +.L7F0DE880: +/* 1133B0 7F0DE880 29814000 */ slti $at, $t4, 0x4000 +/* 1133B4 7F0DE884 14200010 */ bnez $at, .L7F0DE8C8 +/* 1133B8 7F0DE888 97AD0298 */ lhu $t5, 0x298($sp) +/* 1133BC 7F0DE88C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1133C0 7F0DE890 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1133C4 7F0DE894 25A80002 */ addiu $t0, $t5, 2 +/* 1133C8 7F0DE898 24180001 */ li $t8, 1 +/* 1133CC 7F0DE89C 012CC821 */ addu $t9, $t1, $t4 +/* 1133D0 7F0DE8A0 A3280000 */ sb $t0, ($t9) +/* 1133D4 7F0DE8A4 97AE0292 */ lhu $t6, 0x292($sp) +/* 1133D8 7F0DE8A8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1133DC 7F0DE8AC 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1133E0 7F0DE8B0 31CB1800 */ andi $t3, $t6, 0x1800 +/* 1133E4 7F0DE8B4 000B78C3 */ sra $t7, $t3, 3 +/* 1133E8 7F0DE8B8 31CA00FF */ andi $t2, $t6, 0xff +/* 1133EC 7F0DE8BC 01EA6825 */ or $t5, $t7, $t2 +/* 1133F0 7F0DE8C0 012D6021 */ addu $t4, $t1, $t5 +/* 1133F4 7F0DE8C4 A1980000 */ sb $t8, ($t4) +.L7F0DE8C8: +/* 1133F8 7F0DE8C8 97A80292 */ lhu $t0, 0x292($sp) +/* 1133FC 7F0DE8CC 97AD0292 */ lhu $t5, 0x292($sp) +/* 113400 7F0DE8D0 97AB0298 */ lhu $t3, 0x298($sp) +/* 113404 7F0DE8D4 25190001 */ addiu $t9, $t0, 1 +/* 113408 7F0DE8D8 2B215B00 */ slti $at, $t9, 0x5b00 +/* 11340C 7F0DE8DC 14200008 */ bnez $at, .L7F0DE900 +/* 113410 7F0DE8E0 25B80001 */ addiu $t8, $t5, 1 +/* 113414 7F0DE8E4 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113418 7F0DE8E8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 11341C 7F0DE8EC 256E0002 */ addiu $t6, $t3, 2 +/* 113420 7F0DE8F0 000E7A03 */ sra $t7, $t6, 8 +/* 113424 7F0DE8F4 01484821 */ addu $t1, $t2, $t0 +/* 113428 7F0DE8F8 10000027 */ b .L7F0DE998 +/* 11342C 7F0DE8FC A12F0001 */ sb $t7, 1($t1) +.L7F0DE900: +/* 113430 7F0DE900 2B015800 */ slti $at, $t8, 0x5800 +/* 113434 7F0DE904 1420000F */ bnez $at, .L7F0DE944 +/* 113438 7F0DE908 97AC0292 */ lhu $t4, 0x292($sp) +/* 11343C 7F0DE90C 97AC0298 */ lhu $t4, 0x298($sp) +/* 113440 7F0DE910 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113444 7F0DE914 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113448 7F0DE918 25990002 */ addiu $t9, $t4, 2 +/* 11344C 7F0DE91C 00195A03 */ sra $t3, $t9, 8 +/* 113450 7F0DE920 01CD5021 */ addu $t2, $t6, $t5 +/* 113454 7F0DE924 A14B0001 */ sb $t3, 1($t2) +/* 113458 7F0DE928 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 11345C 7F0DE92C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 113460 7F0DE930 97A90292 */ lhu $t1, 0x292($sp) +/* 113464 7F0DE934 24080001 */ li $t0, 1 +/* 113468 7F0DE938 01E9C021 */ addu $t8, $t7, $t1 +/* 11346C 7F0DE93C 10000016 */ b .L7F0DE998 +/* 113470 7F0DE940 A308A801 */ sb $t0, -0x57ff($t8) +.L7F0DE944: +/* 113474 7F0DE944 25990001 */ addiu $t9, $t4, 1 +/* 113478 7F0DE948 2B214000 */ slti $at, $t9, 0x4000 +/* 11347C 7F0DE94C 14200012 */ bnez $at, .L7F0DE998 +/* 113480 7F0DE950 97AE0298 */ lhu $t6, 0x298($sp) +/* 113484 7F0DE954 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113488 7F0DE958 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 11348C 7F0DE95C 25CD0002 */ addiu $t5, $t6, 2 +/* 113490 7F0DE960 000D5A03 */ sra $t3, $t5, 8 +/* 113494 7F0DE964 014C7821 */ addu $t7, $t2, $t4 +/* 113498 7F0DE968 A1EB0001 */ sb $t3, 1($t7) +/* 11349C 7F0DE96C 97A80292 */ lhu $t0, 0x292($sp) +/* 1134A0 7F0DE970 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1134A4 7F0DE974 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1134A8 7F0DE978 25180001 */ addiu $t8, $t0, 1 +/* 1134AC 7F0DE97C 33191800 */ andi $t9, $t8, 0x1800 +/* 1134B0 7F0DE980 001970C3 */ sra $t6, $t9, 3 +/* 1134B4 7F0DE984 330D00FF */ andi $t5, $t8, 0xff +/* 1134B8 7F0DE988 01CD5025 */ or $t2, $t6, $t5 +/* 1134BC 7F0DE98C 24090001 */ li $t1, 1 +/* 1134C0 7F0DE990 018A5821 */ addu $t3, $t4, $t2 +/* 1134C4 7F0DE994 A1690000 */ sb $t1, ($t3) +.L7F0DE998: +/* 1134C8 7F0DE998 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1134CC 7F0DE99C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1134D0 7F0DE9A0 97AF0298 */ lhu $t7, 0x298($sp) +/* 1134D4 7F0DE9A4 010F7021 */ addu $t6, $t0, $t7 +/* 1134D8 7F0DE9A8 91CD0001 */ lbu $t5, 1($t6) +/* 1134DC 7F0DE9AC 01E8C821 */ addu $t9, $t7, $t0 +/* 1134E0 7F0DE9B0 93380000 */ lbu $t8, ($t9) +/* 1134E4 7F0DE9B4 000D6200 */ sll $t4, $t5, 8 +/* 1134E8 7F0DE9B8 030C5025 */ or $t2, $t8, $t4 +/* 1134EC 7F0DE9BC 10000F8F */ b .L7F0E27FC +/* 1134F0 7F0DE9C0 A7AA0298 */ sh $t2, 0x298($sp) +.L7F0DE9C4: +/* 1134F4 7F0DE9C4 97A90298 */ lhu $t1, 0x298($sp) +/* 1134F8 7F0DE9C8 252B0002 */ addiu $t3, $t1, 2 +/* 1134FC 7F0DE9CC 10000F8B */ b .L7F0E27FC +/* 113500 7F0DE9D0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_ED: +/* 113504 7F0DE9D4 8FB9028C */ lw $t9, 0x28c($sp) +/* 113508 7F0DE9D8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 11350C 7F0DE9DC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113510 7F0DE9E0 97AF0298 */ lhu $t7, 0x298($sp) +/* 113514 7F0DE9E4 27280004 */ addiu $t0, $t9, 4 +/* 113518 7F0DE9E8 AFA8028C */ sw $t0, 0x28c($sp) +/* 11351C 7F0DE9EC 01EE6821 */ addu $t5, $t7, $t6 +/* 113520 7F0DE9F0 91B80000 */ lbu $t8, ($t5) +/* 113524 7F0DE9F4 8FAA0288 */ lw $t2, 0x288($sp) +/* 113528 7F0DE9F8 25EC0001 */ addiu $t4, $t7, 1 +/* 11352C 7F0DE9FC 330B00FF */ andi $t3, $t8, 0xff +/* 113530 7F0DEA00 2961007F */ slti $at, $t3, 0x7f +/* 113534 7F0DEA04 25490001 */ addiu $t1, $t2, 1 +/* 113538 7F0DEA08 A7AC0298 */ sh $t4, 0x298($sp) +/* 11353C 7F0DEA0C AFA90288 */ sw $t1, 0x288($sp) +/* 113540 7F0DEA10 AFAB0048 */ sw $t3, 0x48($sp) +/* 113544 7F0DEA14 1420000A */ bnez $at, .L7F0DEA40 +/* 113548 7F0DEA18 A3B800E3 */ sb $t8, 0xe3($sp) +/* 11354C 7F0DEA1C 2579FF60 */ addiu $t9, $t3, -0xa0 +/* 113550 7F0DEA20 2F21001C */ sltiu $at, $t9, 0x1c +/* 113554 7F0DEA24 10200C11 */ beqz $at, .L7F0E1A6C +/* 113558 7F0DEA28 0019C880 */ sll $t9, $t9, 2 +/* 11355C 7F0DEA2C 3C018006 */ lui $at, %hi(jpt_8005C6AC) +/* 113560 7F0DEA30 00390821 */ addu $at, $at, $t9 +/* 113564 7F0DEA34 8C39C6AC */ lw $t9, %lo(jpt_8005C6AC)($at) +/* 113568 7F0DEA38 03200008 */ jr $t9 +/* 11356C 7F0DEA3C 00000000 */ nop +.L7F0DEA40: +/* 113570 7F0DEA40 8FA80048 */ lw $t0, 0x48($sp) +/* 113574 7F0DEA44 250EFFC0 */ addiu $t6, $t0, -0x40 +/* 113578 7F0DEA48 2DC1003F */ sltiu $at, $t6, 0x3f +/* 11357C 7F0DEA4C 10200C07 */ beqz $at, .L7F0E1A6C +/* 113580 7F0DEA50 000E7080 */ sll $t6, $t6, 2 +/* 113584 7F0DEA54 3C018006 */ lui $at, %hi(jpt_8005C71C) +/* 113588 7F0DEA58 002E0821 */ addu $at, $at, $t6 +/* 11358C 7F0DEA5C 8C2EC71C */ lw $t6, %lo(jpt_8005C71C)($at) +/* 113590 7F0DEA60 01C00008 */ jr $t6 +/* 113594 7F0DEA64 00000000 */ nop +spectrum_op_ED_40: +/* 113598 7F0DEA68 8FAD028C */ lw $t5, 0x28c($sp) +/* 11359C 7F0DEA6C 02402825 */ move $a1, $s2 +/* 1135A0 7F0DEA70 02603025 */ move $a2, $s3 +/* 1135A4 7F0DEA74 25A40008 */ addiu $a0, $t5, 8 +/* 1135A8 7F0DEA78 0FC34DB6 */ jal spectrum_input_handling +/* 1135AC 7F0DEA7C AFA4028C */ sw $a0, 0x28c($sp) +/* 1135B0 7F0DEA80 8FAF028C */ lw $t7, 0x28c($sp) +/* 1135B4 7F0DEA84 304CFFFF */ andi $t4, $v0, 0xffff +/* 1135B8 7F0DEA88 000C5203 */ sra $t2, $t4, 8 +/* 1135BC 7F0DEA8C A7A200E0 */ sh $v0, 0xe0($sp) +/* 1135C0 7F0DEA90 01EA4821 */ addu $t1, $t7, $t2 +/* 1135C4 7F0DEA94 93B200E1 */ lbu $s2, 0xe1($sp) +/* 1135C8 7F0DEA98 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 1135CC 7F0DEA9C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 1135D0 7F0DEAA0 2E4B0001 */ sltiu $t3, $s2, 1 +/* 1135D4 7F0DEAA4 AFAB0048 */ sw $t3, 0x48($sp) +/* 1135D8 7F0DEAA8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1135DC 7F0DEAAC 024F5021 */ addu $t2, $s2, $t7 +/* 1135E0 7F0DEAB0 91490000 */ lbu $t1, ($t2) +/* 1135E4 7F0DEAB4 32390001 */ andi $t9, $s1, 1 +/* 1135E8 7F0DEAB8 324800A8 */ andi $t0, $s2, 0xa8 +/* 1135EC 7F0DEABC 03287025 */ or $t6, $t9, $t0 +/* 1135F0 7F0DEAC0 000BC180 */ sll $t8, $t3, 6 +/* 1135F4 7F0DEAC4 01D86025 */ or $t4, $t6, $t8 +/* 1135F8 7F0DEAC8 012C8825 */ or $s1, $t1, $t4 +/* 1135FC 7F0DEACC 322B00FF */ andi $t3, $s1, 0xff +/* 113600 7F0DEAD0 10000F4A */ b .L7F0E27FC +/* 113604 7F0DEAD4 01608825 */ move $s1, $t3 +spectrum_op_ED_41: +/* 113608 7F0DEAD8 8FB9028C */ lw $t9, 0x28c($sp) +/* 11360C 7F0DEADC 02402825 */ move $a1, $s2 +/* 113610 7F0DEAE0 02603025 */ move $a2, $s3 +/* 113614 7F0DEAE4 27240008 */ addiu $a0, $t9, 8 +/* 113618 7F0DEAE8 AFA4028C */ sw $a0, 0x28c($sp) +/* 11361C 7F0DEAEC 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 113620 7F0DEAF0 02403825 */ move $a3, $s2 +/* 113624 7F0DEAF4 8FAD028C */ lw $t5, 0x28c($sp) +/* 113628 7F0DEAF8 AFA20048 */ sw $v0, 0x48($sp) +/* 11362C 7F0DEAFC 01A2C021 */ addu $t8, $t5, $v0 +/* 113630 7F0DEB00 10000F3E */ b .L7F0E27FC +/* 113634 7F0DEB04 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_ED_42: +/* 113638 7F0DEB08 00124A00 */ sll $t1, $s2, 8 +/* 11363C 7F0DEB0C 8FAF028C */ lw $t7, 0x28c($sp) +/* 113640 7F0DEB10 01336025 */ or $t4, $t1, $s3 +/* 113644 7F0DEB14 00165A00 */ sll $t3, $s6, 8 +/* 113648 7F0DEB18 0177C825 */ or $t9, $t3, $s7 +/* 11364C 7F0DEB1C 3188FFFF */ andi $t0, $t4, 0xffff +/* 113650 7F0DEB20 03286823 */ subu $t5, $t9, $t0 +/* 113654 7F0DEB24 322E0001 */ andi $t6, $s1, 1 +/* 113658 7F0DEB28 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 11365C 7F0DEB2C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 113660 7F0DEB30 01AEC023 */ subu $t8, $t5, $t6 +/* 113664 7F0DEB34 25EA000B */ addiu $t2, $t7, 0xb +/* 113668 7F0DEB38 03017824 */ and $t7, $t8, $at +/* 11366C 7F0DEB3C 000F5A02 */ srl $t3, $t7, 8 +/* 113670 7F0DEB40 317900A8 */ andi $t9, $t3, 0xa8 +/* 113674 7F0DEB44 000F4402 */ srl $t0, $t7, 0x10 +/* 113678 7F0DEB48 AFAA028C */ sw $t2, 0x28c($sp) +/* 11367C 7F0DEB4C 03286825 */ or $t5, $t9, $t0 +/* 113680 7F0DEB50 31EAFFFF */ andi $t2, $t7, 0xffff +/* 113684 7F0DEB54 2D490001 */ sltiu $t1, $t2, 1 +/* 113688 7F0DEB58 35AE0002 */ ori $t6, $t5, 2 +/* 11368C 7F0DEB5C 00164200 */ sll $t0, $s6, 8 +/* 113690 7F0DEB60 01176825 */ or $t5, $t0, $s7 +/* 113694 7F0DEB64 318A0FFF */ andi $t2, $t4, 0xfff +/* 113698 7F0DEB68 322B0001 */ andi $t3, $s1, 1 +/* 11369C 7F0DEB6C 014BC821 */ addu $t9, $t2, $t3 +/* 1136A0 7F0DEB70 31B80FFF */ andi $t8, $t5, 0xfff +/* 1136A4 7F0DEB74 0319502A */ slt $t2, $t8, $t9 +/* 1136A8 7F0DEB78 000A5900 */ sll $t3, $t2, 4 +/* 1136AC 7F0DEB7C 01CB4025 */ or $t0, $t6, $t3 +/* 1136B0 7F0DEB80 00166A00 */ sll $t5, $s6, 8 +/* 1136B4 7F0DEB84 01B7C025 */ or $t8, $t5, $s7 +/* 1136B8 7F0DEB88 00165200 */ sll $t2, $s6, 8 +/* 1136BC 7F0DEB8C 01577025 */ or $t6, $t2, $s7 +/* 1136C0 7F0DEB90 01805825 */ move $t3, $t4 +/* 1136C4 7F0DEB94 01CB6826 */ xor $t5, $t6, $t3 +/* 1136C8 7F0DEB98 030FC826 */ xor $t9, $t8, $t7 +/* 1136CC 7F0DEB9C 01B9C024 */ and $t8, $t5, $t9 +/* 1136D0 7F0DEBA0 330A8000 */ andi $t2, $t8, 0x8000 +/* 1136D4 7F0DEBA4 A7AC00DE */ sh $t4, 0xde($sp) +/* 1136D8 7F0DEBA8 000A6342 */ srl $t4, $t2, 0xd +/* 1136DC 7F0DEBAC 010C7025 */ or $t6, $t0, $t4 +/* 1136E0 7F0DEBB0 00095980 */ sll $t3, $t1, 6 +/* 1136E4 7F0DEBB4 01CB8825 */ or $s1, $t6, $t3 +/* 1136E8 7F0DEBB8 000FB202 */ srl $s6, $t7, 8 +/* 1136EC 7F0DEBBC 32D800FF */ andi $t8, $s6, 0xff +/* 1136F0 7F0DEBC0 362D0002 */ ori $t5, $s1, 2 +/* 1136F4 7F0DEBC4 AFAF00D8 */ sw $t7, 0xd8($sp) +/* 1136F8 7F0DEBC8 93B700DB */ lbu $s7, 0xdb($sp) +/* 1136FC 7F0DEBCC 31B100FF */ andi $s1, $t5, 0xff +/* 113700 7F0DEBD0 0300B025 */ move $s6, $t8 +/* 113704 7F0DEBD4 10000F09 */ b .L7F0E27FC +/* 113708 7F0DEBD8 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_ED_43: +/* 11370C 7F0DEBDC 8FAA028C */ lw $t2, 0x28c($sp) +/* 113710 7F0DEBE0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113714 7F0DEBE4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113718 7F0DEBE8 97AC0298 */ lhu $t4, 0x298($sp) +/* 11371C 7F0DEBEC 25480010 */ addiu $t0, $t2, 0x10 +/* 113720 7F0DEBF0 AFA8028C */ sw $t0, 0x28c($sp) +/* 113724 7F0DEBF4 012C6821 */ addu $t5, $t1, $t4 +/* 113728 7F0DEBF8 91B90001 */ lbu $t9, 1($t5) +/* 11372C 7F0DEBFC 01897021 */ addu $t6, $t4, $t1 +/* 113730 7F0DEC00 91CB0000 */ lbu $t3, ($t6) +/* 113734 7F0DEC04 00197A00 */ sll $t7, $t9, 8 +/* 113738 7F0DEC08 258A0002 */ addiu $t2, $t4, 2 +/* 11373C 7F0DEC0C 016FC025 */ or $t8, $t3, $t7 +/* 113740 7F0DEC10 3308FFFF */ andi $t0, $t8, 0xffff +/* 113744 7F0DEC14 29015B00 */ slti $at, $t0, 0x5b00 +/* 113748 7F0DEC18 A7B800D6 */ sh $t8, 0xd6($sp) +/* 11374C 7F0DEC1C 14200006 */ bnez $at, .L7F0DEC38 +/* 113750 7F0DEC20 A7AA0298 */ sh $t2, 0x298($sp) +/* 113754 7F0DEC24 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113758 7F0DEC28 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11375C 7F0DEC2C 01C84821 */ addu $t1, $t6, $t0 +/* 113760 7F0DEC30 10000021 */ b .L7F0DECB8 +/* 113764 7F0DEC34 A1330000 */ sb $s3, ($t1) +.L7F0DEC38: +/* 113768 7F0DEC38 97AD00D6 */ lhu $t5, 0xd6($sp) +/* 11376C 7F0DEC3C 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 113770 7F0DEC40 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 113774 7F0DEC44 29A15800 */ slti $at, $t5, 0x5800 +/* 113778 7F0DEC48 5420000C */ bnezl $at, .L7F0DEC7C +/* 11377C 7F0DEC4C 29C14000 */ slti $at, $t6, 0x4000 +/* 113780 7F0DEC50 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 113784 7F0DEC54 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 113788 7F0DEC58 240F0001 */ li $t7, 1 +/* 11378C 7F0DEC5C 032D5821 */ addu $t3, $t9, $t5 +/* 113790 7F0DEC60 A1730000 */ sb $s3, ($t3) +/* 113794 7F0DEC64 97AC00D6 */ lhu $t4, 0xd6($sp) +/* 113798 7F0DEC68 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 11379C 7F0DEC6C 030C5021 */ addu $t2, $t8, $t4 +/* 1137A0 7F0DEC70 10000011 */ b .L7F0DECB8 +/* 1137A4 7F0DEC74 A14FA800 */ sb $t7, -0x5800($t2) +/* 1137A8 7F0DEC78 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DEC7C: +/* 1137AC 7F0DEC7C 1420000E */ bnez $at, .L7F0DECB8 +/* 1137B0 7F0DEC80 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1137B4 7F0DEC84 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1137B8 7F0DEC88 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1137BC 7F0DEC8C 24190001 */ li $t9, 1 +/* 1137C0 7F0DEC90 010E4821 */ addu $t1, $t0, $t6 +/* 1137C4 7F0DEC94 A1330000 */ sb $s3, ($t1) +/* 1137C8 7F0DEC98 97AD00D6 */ lhu $t5, 0xd6($sp) +/* 1137CC 7F0DEC9C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1137D0 7F0DECA0 31AB1800 */ andi $t3, $t5, 0x1800 +/* 1137D4 7F0DECA4 000BC0C3 */ sra $t8, $t3, 3 +/* 1137D8 7F0DECA8 31AC00FF */ andi $t4, $t5, 0xff +/* 1137DC 7F0DECAC 030C7825 */ or $t7, $t8, $t4 +/* 1137E0 7F0DECB0 014F4021 */ addu $t0, $t2, $t7 +/* 1137E4 7F0DECB4 A1190000 */ sb $t9, ($t0) +.L7F0DECB8: +/* 1137E8 7F0DECB8 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 1137EC 7F0DECBC 97B800D6 */ lhu $t8, 0xd6($sp) +/* 1137F0 7F0DECC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1137F4 7F0DECC4 25C90001 */ addiu $t1, $t6, 1 +/* 1137F8 7F0DECC8 29215B00 */ slti $at, $t1, 0x5b00 +/* 1137FC 7F0DECCC 14200005 */ bnez $at, .L7F0DECE4 +/* 113800 7F0DECD0 270C0001 */ addiu $t4, $t8, 1 +/* 113804 7F0DECD4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 113808 7F0DECD8 016E6821 */ addu $t5, $t3, $t6 +/* 11380C 7F0DECDC 10000EC7 */ b .L7F0E27FC +/* 113810 7F0DECE0 A1B20001 */ sb $s2, 1($t5) +.L7F0DECE4: +/* 113814 7F0DECE4 29815800 */ slti $at, $t4, 0x5800 +/* 113818 7F0DECE8 1420000C */ bnez $at, .L7F0DED1C +/* 11381C 7F0DECEC 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 113820 7F0DECF0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113824 7F0DECF4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 113828 7F0DECF8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 11382C 7F0DECFC 24190001 */ li $t9, 1 +/* 113830 7F0DED00 01587821 */ addu $t7, $t2, $t8 +/* 113834 7F0DED04 A1F20001 */ sb $s2, 1($t7) +/* 113838 7F0DED08 97A900D6 */ lhu $t1, 0xd6($sp) +/* 11383C 7F0DED0C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 113840 7F0DED10 01095821 */ addu $t3, $t0, $t1 +/* 113844 7F0DED14 10000EB9 */ b .L7F0E27FC +/* 113848 7F0DED18 A179A801 */ sb $t9, -0x57ff($t3) +.L7F0DED1C: +/* 11384C 7F0DED1C 25CD0001 */ addiu $t5, $t6, 1 +/* 113850 7F0DED20 29A14000 */ slti $at, $t5, 0x4000 +/* 113854 7F0DED24 14200EB5 */ bnez $at, .L7F0E27FC +/* 113858 7F0DED28 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 11385C 7F0DED2C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113860 7F0DED30 24180001 */ li $t8, 1 +/* 113864 7F0DED34 018E5021 */ addu $t2, $t4, $t6 +/* 113868 7F0DED38 A1520001 */ sb $s2, 1($t2) +/* 11386C 7F0DED3C 97AF00D6 */ lhu $t7, 0xd6($sp) +/* 113870 7F0DED40 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 113874 7F0DED44 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 113878 7F0DED48 25E80001 */ addiu $t0, $t7, 1 +/* 11387C 7F0DED4C 31091800 */ andi $t1, $t0, 0x1800 +/* 113880 7F0DED50 0009C8C3 */ sra $t9, $t1, 3 +/* 113884 7F0DED54 310B00FF */ andi $t3, $t0, 0xff +/* 113888 7F0DED58 032B6825 */ or $t5, $t9, $t3 +/* 11388C 7F0DED5C 018D7021 */ addu $t6, $t4, $t5 +/* 113890 7F0DED60 10000EA6 */ b .L7F0E27FC +/* 113894 7F0DED64 A1D80000 */ sb $t8, ($t6) +spectrum_op_ED_44: +/* 113898 7F0DED68 00108023 */ negu $s0, $s0 +/* 11389C 7F0DED6C 320900FF */ andi $t1, $s0, 0xff +/* 1138A0 7F0DED70 8FAA028C */ lw $t2, 0x28c($sp) +/* 1138A4 7F0DED74 2D280001 */ sltiu $t0, $t1, 1 +/* 1138A8 7F0DED78 3138000F */ andi $t8, $t1, 0xf +/* 1138AC 7F0DED7C 01208025 */ move $s0, $t1 +/* 1138B0 7F0DED80 313900A8 */ andi $t9, $t1, 0xa8 +/* 1138B4 7F0DED84 254F0004 */ addiu $t7, $t2, 4 +/* 1138B8 7F0DED88 39290080 */ xori $t1, $t1, 0x80 +/* 1138BC 7F0DED8C 0018702A */ slt $t6, $zero, $t8 +/* 1138C0 7F0DED90 00086180 */ sll $t4, $t0, 6 +/* 1138C4 7F0DED94 AFAF028C */ sw $t7, 0x28c($sp) +/* 1138C8 7F0DED98 032C6825 */ or $t5, $t9, $t4 +/* 1138CC 7F0DED9C 000E5100 */ sll $t2, $t6, 4 +/* 1138D0 7F0DEDA0 2D290001 */ sltiu $t1, $t1, 1 +/* 1138D4 7F0DEDA4 AFA80048 */ sw $t0, 0x48($sp) +/* 1138D8 7F0DEDA8 00094080 */ sll $t0, $t1, 2 +/* 1138DC 7F0DEDAC 01AA7825 */ or $t7, $t5, $t2 +/* 1138E0 7F0DEDB0 01E85825 */ or $t3, $t7, $t0 +/* 1138E4 7F0DEDB4 35790002 */ ori $t9, $t3, 2 +/* 1138E8 7F0DEDB8 0010602A */ slt $t4, $zero, $s0 +/* 1138EC 7F0DEDBC 032C8825 */ or $s1, $t9, $t4 +/* 1138F0 7F0DEDC0 323800FF */ andi $t8, $s1, 0xff +/* 1138F4 7F0DEDC4 10000E8D */ b .L7F0E27FC +/* 1138F8 7F0DEDC8 03008825 */ move $s1, $t8 +spectrum_op_ED_45: +/* 1138FC 7F0DEDCC 8FAE028C */ lw $t6, 0x28c($sp) +/* 113900 7F0DEDD0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 113904 7F0DEDD4 93AA029C */ lbu $t2, 0x29c($sp) +/* 113908 7F0DEDD8 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11390C 7F0DEDDC 97A80292 */ lhu $t0, 0x292($sp) +/* 113910 7F0DEDE0 25CD0004 */ addiu $t5, $t6, 4 +/* 113914 7F0DEDE4 AFAD028C */ sw $t5, 0x28c($sp) +/* 113918 7F0DEDE8 25AF0006 */ addiu $t7, $t5, 6 +/* 11391C 7F0DEDEC AFAF028C */ sw $t7, 0x28c($sp) +/* 113920 7F0DEDF0 A3AA029D */ sb $t2, 0x29d($sp) +/* 113924 7F0DEDF4 0168C021 */ addu $t8, $t3, $t0 +/* 113928 7F0DEDF8 930E0001 */ lbu $t6, 1($t8) +/* 11392C 7F0DEDFC 010BC821 */ addu $t9, $t0, $t3 +/* 113930 7F0DEE00 932C0000 */ lbu $t4, ($t9) +/* 113934 7F0DEE04 000E6A00 */ sll $t5, $t6, 8 +/* 113938 7F0DEE08 25090002 */ addiu $t1, $t0, 2 +/* 11393C 7F0DEE0C 018D5025 */ or $t2, $t4, $t5 +/* 113940 7F0DEE10 A7AA0298 */ sh $t2, 0x298($sp) +/* 113944 7F0DEE14 10000E79 */ b .L7F0E27FC +/* 113948 7F0DEE18 A7A90292 */ sh $t1, 0x292($sp) +spectrum_op_ED_46: +/* 11394C 7F0DEE1C 8FAF028C */ lw $t7, 0x28c($sp) +/* 113950 7F0DEE20 A3A0029B */ sb $zero, 0x29b($sp) +/* 113954 7F0DEE24 25F90004 */ addiu $t9, $t7, 4 +/* 113958 7F0DEE28 10000E74 */ b .L7F0E27FC +/* 11395C 7F0DEE2C AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_ED_47: +/* 113960 7F0DEE30 8FAB028C */ lw $t3, 0x28c($sp) +/* 113964 7F0DEE34 A3B0029E */ sb $s0, 0x29e($sp) +/* 113968 7F0DEE38 25780005 */ addiu $t8, $t3, 5 +/* 11396C 7F0DEE3C 10000E6F */ b .L7F0E27FC +/* 113970 7F0DEE40 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_ED_48: +/* 113974 7F0DEE44 8FAE028C */ lw $t6, 0x28c($sp) +/* 113978 7F0DEE48 02402825 */ move $a1, $s2 +/* 11397C 7F0DEE4C 02603025 */ move $a2, $s3 +/* 113980 7F0DEE50 25C40008 */ addiu $a0, $t6, 8 +/* 113984 7F0DEE54 0FC34DB6 */ jal spectrum_input_handling +/* 113988 7F0DEE58 AFA4028C */ sw $a0, 0x28c($sp) +/* 11398C 7F0DEE5C 8FAD028C */ lw $t5, 0x28c($sp) +/* 113990 7F0DEE60 304AFFFF */ andi $t2, $v0, 0xffff +/* 113994 7F0DEE64 000A4203 */ sra $t0, $t2, 8 +/* 113998 7F0DEE68 A7A200D4 */ sh $v0, 0xd4($sp) +/* 11399C 7F0DEE6C 01A84821 */ addu $t1, $t5, $t0 +/* 1139A0 7F0DEE70 93B300D5 */ lbu $s3, 0xd5($sp) +/* 1139A4 7F0DEE74 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 1139A8 7F0DEE78 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 1139AC 7F0DEE7C 2E6F0001 */ sltiu $t7, $s3, 1 +/* 1139B0 7F0DEE80 AFAF0048 */ sw $t7, 0x48($sp) +/* 1139B4 7F0DEE84 AFA9028C */ sw $t1, 0x28c($sp) +/* 1139B8 7F0DEE88 026D4021 */ addu $t0, $s3, $t5 +/* 1139BC 7F0DEE8C 91090000 */ lbu $t1, ($t0) +/* 1139C0 7F0DEE90 32390001 */ andi $t9, $s1, 1 +/* 1139C4 7F0DEE94 326B00A8 */ andi $t3, $s3, 0xa8 +/* 1139C8 7F0DEE98 032BC025 */ or $t8, $t9, $t3 +/* 1139CC 7F0DEE9C 000F6180 */ sll $t4, $t7, 6 +/* 1139D0 7F0DEEA0 030C5025 */ or $t2, $t8, $t4 +/* 1139D4 7F0DEEA4 012A8825 */ or $s1, $t1, $t2 +/* 1139D8 7F0DEEA8 322F00FF */ andi $t7, $s1, 0xff +/* 1139DC 7F0DEEAC 10000E53 */ b .L7F0E27FC +/* 1139E0 7F0DEEB0 01E08825 */ move $s1, $t7 +spectrum_op_ED_49: +/* 1139E4 7F0DEEB4 8FB9028C */ lw $t9, 0x28c($sp) +/* 1139E8 7F0DEEB8 02402825 */ move $a1, $s2 +/* 1139EC 7F0DEEBC 02603025 */ move $a2, $s3 +/* 1139F0 7F0DEEC0 27240008 */ addiu $a0, $t9, 8 +/* 1139F4 7F0DEEC4 AFA4028C */ sw $a0, 0x28c($sp) +/* 1139F8 7F0DEEC8 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1139FC 7F0DEECC 02603825 */ move $a3, $s3 +/* 113A00 7F0DEED0 8FAE028C */ lw $t6, 0x28c($sp) +/* 113A04 7F0DEED4 AFA20048 */ sw $v0, 0x48($sp) +/* 113A08 7F0DEED8 01C26021 */ addu $t4, $t6, $v0 +/* 113A0C 7F0DEEDC 10000E47 */ b .L7F0E27FC +/* 113A10 7F0DEEE0 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_ED_4A: +/* 113A14 7F0DEEE4 00124A00 */ sll $t1, $s2, 8 +/* 113A18 7F0DEEE8 01335025 */ or $t2, $t1, $s3 +/* 113A1C 7F0DEEEC 00167A00 */ sll $t7, $s6, 8 +/* 113A20 7F0DEEF0 01F7C825 */ or $t9, $t7, $s7 +/* 113A24 7F0DEEF4 314BFFFF */ andi $t3, $t2, 0xffff +/* 113A28 7F0DEEF8 8FAD028C */ lw $t5, 0x28c($sp) +/* 113A2C 7F0DEEFC 032B7021 */ addu $t6, $t9, $t3 +/* 113A30 7F0DEF00 32380001 */ andi $t8, $s1, 1 +/* 113A34 7F0DEF04 01D86021 */ addu $t4, $t6, $t8 +/* 113A38 7F0DEF08 25A8000B */ addiu $t0, $t5, 0xb +/* 113A3C 7F0DEF0C 000C4A02 */ srl $t1, $t4, 8 +/* 113A40 7F0DEF10 AFA8028C */ sw $t0, 0x28c($sp) +/* 113A44 7F0DEF14 312F00A8 */ andi $t7, $t1, 0xa8 +/* 113A48 7F0DEF18 318DFFFF */ andi $t5, $t4, 0xffff +/* 113A4C 7F0DEF1C 000CCC02 */ srl $t9, $t4, 0x10 +/* 113A50 7F0DEF20 00167200 */ sll $t6, $s6, 8 +/* 113A54 7F0DEF24 01D7C025 */ or $t8, $t6, $s7 +/* 113A58 7F0DEF28 01F95825 */ or $t3, $t7, $t9 +/* 113A5C 7F0DEF2C 2DA80001 */ sltiu $t0, $t5, 1 +/* 113A60 7F0DEF30 330D0FFF */ andi $t5, $t8, 0xfff +/* 113A64 7F0DEF34 314F0FFF */ andi $t7, $t2, 0xfff +/* 113A68 7F0DEF38 01AFC821 */ addu $t9, $t5, $t7 +/* 113A6C 7F0DEF3C 322E0001 */ andi $t6, $s1, 1 +/* 113A70 7F0DEF40 032EC021 */ addu $t8, $t9, $t6 +/* 113A74 7F0DEF44 24010FFF */ li $at, 4095 +/* 113A78 7F0DEF48 0038482A */ slt $t1, $at, $t8 +/* 113A7C 7F0DEF4C 00096900 */ sll $t5, $t1, 4 +/* 113A80 7F0DEF50 016D7825 */ or $t7, $t3, $t5 +/* 113A84 7F0DEF54 0016CA00 */ sll $t9, $s6, 8 +/* 113A88 7F0DEF58 03377025 */ or $t6, $t9, $s7 +/* 113A8C 7F0DEF5C 00164A00 */ sll $t1, $s6, 8 +/* 113A90 7F0DEF60 01375827 */ nor $t3, $t1, $s7 +/* 113A94 7F0DEF64 01406825 */ move $t5, $t2 +/* 113A98 7F0DEF68 016DC826 */ xor $t9, $t3, $t5 +/* 113A9C 7F0DEF6C 01CCC026 */ xor $t8, $t6, $t4 +/* 113AA0 7F0DEF70 03387024 */ and $t6, $t9, $t8 +/* 113AA4 7F0DEF74 31C98000 */ andi $t1, $t6, 0x8000 +/* 113AA8 7F0DEF78 A7AA00D2 */ sh $t2, 0xd2($sp) +/* 113AAC 7F0DEF7C 00095342 */ srl $t2, $t1, 0xd +/* 113AB0 7F0DEF80 01EA5825 */ or $t3, $t7, $t2 +/* 113AB4 7F0DEF84 00086980 */ sll $t5, $t0, 6 +/* 113AB8 7F0DEF88 016D8825 */ or $s1, $t3, $t5 +/* 113ABC 7F0DEF8C 000CB202 */ srl $s6, $t4, 8 +/* 113AC0 7F0DEF90 32CE00FF */ andi $t6, $s6, 0xff +/* 113AC4 7F0DEF94 36390002 */ ori $t9, $s1, 2 +/* 113AC8 7F0DEF98 AFAC00CC */ sw $t4, 0xcc($sp) +/* 113ACC 7F0DEF9C 93B700CF */ lbu $s7, 0xcf($sp) +/* 113AD0 7F0DEFA0 333100FF */ andi $s1, $t9, 0xff +/* 113AD4 7F0DEFA4 01C0B025 */ move $s6, $t6 +/* 113AD8 7F0DEFA8 10000E14 */ b .L7F0E27FC +/* 113ADC 7F0DEFAC AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_ED_4B: +/* 113AE0 7F0DEFB0 8FA9028C */ lw $t1, 0x28c($sp) +/* 113AE4 7F0DEFB4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113AE8 7F0DEFB8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113AEC 7F0DEFBC 97AA0298 */ lhu $t2, 0x298($sp) +/* 113AF0 7F0DEFC0 252F0010 */ addiu $t7, $t1, 0x10 +/* 113AF4 7F0DEFC4 AFAF028C */ sw $t7, 0x28c($sp) +/* 113AF8 7F0DEFC8 010AC821 */ addu $t9, $t0, $t2 +/* 113AFC 7F0DEFCC 93380001 */ lbu $t8, 1($t9) +/* 113B00 7F0DEFD0 01485821 */ addu $t3, $t2, $t0 +/* 113B04 7F0DEFD4 916D0000 */ lbu $t5, ($t3) +/* 113B08 7F0DEFD8 00186200 */ sll $t4, $t8, 8 +/* 113B0C 7F0DEFDC 25490002 */ addiu $t1, $t2, 2 +/* 113B10 7F0DEFE0 01AC7025 */ or $t6, $t5, $t4 +/* 113B14 7F0DEFE4 31CFFFFF */ andi $t7, $t6, 0xffff +/* 113B18 7F0DEFE8 A7AE00CA */ sh $t6, 0xca($sp) +/* 113B1C 7F0DEFEC A7A90298 */ sh $t1, 0x298($sp) +/* 113B20 7F0DEFF0 01E85821 */ addu $t3, $t7, $t0 +/* 113B24 7F0DEFF4 91730000 */ lbu $s3, ($t3) +/* 113B28 7F0DEFF8 10000E00 */ b .L7F0E27FC +/* 113B2C 7F0DEFFC 91720001 */ lbu $s2, 1($t3) +spectrum_op_ED_4C: +/* 113B30 7F0DF000 00108023 */ negu $s0, $s0 +/* 113B34 7F0DF004 320D00FF */ andi $t5, $s0, 0xff +/* 113B38 7F0DF008 8FB9028C */ lw $t9, 0x28c($sp) +/* 113B3C 7F0DF00C 2DAC0001 */ sltiu $t4, $t5, 1 +/* 113B40 7F0DF010 31A8000F */ andi $t0, $t5, 0xf +/* 113B44 7F0DF014 01A08025 */ move $s0, $t5 +/* 113B48 7F0DF018 31AE00A8 */ andi $t6, $t5, 0xa8 +/* 113B4C 7F0DF01C 27380004 */ addiu $t8, $t9, 4 +/* 113B50 7F0DF020 39AD0080 */ xori $t5, $t5, 0x80 +/* 113B54 7F0DF024 0008582A */ slt $t3, $zero, $t0 +/* 113B58 7F0DF028 000C4980 */ sll $t1, $t4, 6 +/* 113B5C 7F0DF02C AFB8028C */ sw $t8, 0x28c($sp) +/* 113B60 7F0DF030 01C97825 */ or $t7, $t6, $t1 +/* 113B64 7F0DF034 000BC900 */ sll $t9, $t3, 4 +/* 113B68 7F0DF038 2DAD0001 */ sltiu $t5, $t5, 1 +/* 113B6C 7F0DF03C AFAC0048 */ sw $t4, 0x48($sp) +/* 113B70 7F0DF040 000D6080 */ sll $t4, $t5, 2 +/* 113B74 7F0DF044 01F9C025 */ or $t8, $t7, $t9 +/* 113B78 7F0DF048 030C5025 */ or $t2, $t8, $t4 +/* 113B7C 7F0DF04C 354E0002 */ ori $t6, $t2, 2 +/* 113B80 7F0DF050 0010482A */ slt $t1, $zero, $s0 +/* 113B84 7F0DF054 01C98825 */ or $s1, $t6, $t1 +/* 113B88 7F0DF058 322800FF */ andi $t0, $s1, 0xff +/* 113B8C 7F0DF05C 10000DE7 */ b .L7F0E27FC +/* 113B90 7F0DF060 01008825 */ move $s1, $t0 +spectrum_op_ED_4D: +/* 113B94 7F0DF064 8FAB028C */ lw $t3, 0x28c($sp) +/* 113B98 7F0DF068 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 113B9C 7F0DF06C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113BA0 7F0DF070 97B80292 */ lhu $t8, 0x292($sp) +/* 113BA4 7F0DF074 256F0004 */ addiu $t7, $t3, 4 +/* 113BA8 7F0DF078 AFAF028C */ sw $t7, 0x28c($sp) +/* 113BAC 7F0DF07C 25ED0006 */ addiu $t5, $t7, 6 +/* 113BB0 7F0DF080 AFAD028C */ sw $t5, 0x28c($sp) +/* 113BB4 7F0DF084 01984821 */ addu $t1, $t4, $t8 +/* 113BB8 7F0DF088 91280001 */ lbu $t0, 1($t1) +/* 113BBC 7F0DF08C 030C5021 */ addu $t2, $t8, $t4 +/* 113BC0 7F0DF090 914E0000 */ lbu $t6, ($t2) +/* 113BC4 7F0DF094 00085A00 */ sll $t3, $t0, 8 +/* 113BC8 7F0DF098 27190002 */ addiu $t9, $t8, 2 +/* 113BCC 7F0DF09C 01CB7825 */ or $t7, $t6, $t3 +/* 113BD0 7F0DF0A0 A7AF0298 */ sh $t7, 0x298($sp) +/* 113BD4 7F0DF0A4 10000DD5 */ b .L7F0E27FC +/* 113BD8 7F0DF0A8 A7B90292 */ sh $t9, 0x292($sp) +spectrum_op_ED_4E: +/* 113BDC 7F0DF0AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 113BE0 7F0DF0B0 240C0001 */ li $t4, 1 +/* 113BE4 7F0DF0B4 A3AC029B */ sb $t4, 0x29b($sp) +/* 113BE8 7F0DF0B8 25AA0004 */ addiu $t2, $t5, 4 +/* 113BEC 7F0DF0BC 10000DCF */ b .L7F0E27FC +/* 113BF0 7F0DF0C0 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_4F: +/* 113BF4 7F0DF0C4 8FA9028C */ lw $t1, 0x28c($sp) +/* 113BF8 7F0DF0C8 320E00FF */ andi $t6, $s0, 0xff +/* 113BFC 7F0DF0CC A3B002A7 */ sb $s0, 0x2a7($sp) +/* 113C00 7F0DF0D0 25280005 */ addiu $t0, $t1, 5 +/* 113C04 7F0DF0D4 AFA8028C */ sw $t0, 0x28c($sp) +/* 113C08 7F0DF0D8 10000DC8 */ b .L7F0E27FC +/* 113C0C 7F0DF0DC AFAE0288 */ sw $t6, 0x288($sp) +spectrum_op_ED_50: +/* 113C10 7F0DF0E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 113C14 7F0DF0E4 02402825 */ move $a1, $s2 +/* 113C18 7F0DF0E8 02603025 */ move $a2, $s3 +/* 113C1C 7F0DF0EC 25640008 */ addiu $a0, $t3, 8 +/* 113C20 7F0DF0F0 0FC34DB6 */ jal spectrum_input_handling +/* 113C24 7F0DF0F4 AFA4028C */ sw $a0, 0x28c($sp) +/* 113C28 7F0DF0F8 8FB8028C */ lw $t8, 0x28c($sp) +/* 113C2C 7F0DF0FC 3059FFFF */ andi $t9, $v0, 0xffff +/* 113C30 7F0DF100 00196A03 */ sra $t5, $t9, 8 +/* 113C34 7F0DF104 A7A200C8 */ sh $v0, 0xc8($sp) +/* 113C38 7F0DF108 030D5021 */ addu $t2, $t8, $t5 +/* 113C3C 7F0DF10C 93B400C9 */ lbu $s4, 0xc9($sp) +/* 113C40 7F0DF110 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 113C44 7F0DF114 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 113C48 7F0DF118 2E8C0001 */ sltiu $t4, $s4, 1 +/* 113C4C 7F0DF11C AFAC0048 */ sw $t4, 0x48($sp) +/* 113C50 7F0DF120 AFAA028C */ sw $t2, 0x28c($sp) +/* 113C54 7F0DF124 02986821 */ addu $t5, $s4, $t8 +/* 113C58 7F0DF128 91AA0000 */ lbu $t2, ($t5) +/* 113C5C 7F0DF12C 32290001 */ andi $t1, $s1, 1 +/* 113C60 7F0DF130 328800A8 */ andi $t0, $s4, 0xa8 +/* 113C64 7F0DF134 01287025 */ or $t6, $t1, $t0 +/* 113C68 7F0DF138 000C7980 */ sll $t7, $t4, 6 +/* 113C6C 7F0DF13C 01CFC825 */ or $t9, $t6, $t7 +/* 113C70 7F0DF140 01598825 */ or $s1, $t2, $t9 +/* 113C74 7F0DF144 322C00FF */ andi $t4, $s1, 0xff +/* 113C78 7F0DF148 10000DAC */ b .L7F0E27FC +/* 113C7C 7F0DF14C 01808825 */ move $s1, $t4 +spectrum_op_ED_51: +/* 113C80 7F0DF150 8FA9028C */ lw $t1, 0x28c($sp) +/* 113C84 7F0DF154 02402825 */ move $a1, $s2 +/* 113C88 7F0DF158 02603025 */ move $a2, $s3 +/* 113C8C 7F0DF15C 25240008 */ addiu $a0, $t1, 8 +/* 113C90 7F0DF160 AFA4028C */ sw $a0, 0x28c($sp) +/* 113C94 7F0DF164 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 113C98 7F0DF168 02803825 */ move $a3, $s4 +/* 113C9C 7F0DF16C 8FAB028C */ lw $t3, 0x28c($sp) +/* 113CA0 7F0DF170 AFA20048 */ sw $v0, 0x48($sp) +/* 113CA4 7F0DF174 01627821 */ addu $t7, $t3, $v0 +/* 113CA8 7F0DF178 10000DA0 */ b .L7F0E27FC +/* 113CAC 7F0DF17C AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_ED_52: +/* 113CB0 7F0DF180 00145200 */ sll $t2, $s4, 8 +/* 113CB4 7F0DF184 8FB8028C */ lw $t8, 0x28c($sp) +/* 113CB8 7F0DF188 0155C825 */ or $t9, $t2, $s5 +/* 113CBC 7F0DF18C 00166200 */ sll $t4, $s6, 8 +/* 113CC0 7F0DF190 01974825 */ or $t1, $t4, $s7 +/* 113CC4 7F0DF194 3328FFFF */ andi $t0, $t9, 0xffff +/* 113CC8 7F0DF198 01285823 */ subu $t3, $t1, $t0 +/* 113CCC 7F0DF19C 322E0001 */ andi $t6, $s1, 1 +/* 113CD0 7F0DF1A0 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 113CD4 7F0DF1A4 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 113CD8 7F0DF1A8 016E7823 */ subu $t7, $t3, $t6 +/* 113CDC 7F0DF1AC 270D000B */ addiu $t5, $t8, 0xb +/* 113CE0 7F0DF1B0 01E1C024 */ and $t8, $t7, $at +/* 113CE4 7F0DF1B4 00186202 */ srl $t4, $t8, 8 +/* 113CE8 7F0DF1B8 318900A8 */ andi $t1, $t4, 0xa8 +/* 113CEC 7F0DF1BC 00184402 */ srl $t0, $t8, 0x10 +/* 113CF0 7F0DF1C0 AFAD028C */ sw $t5, 0x28c($sp) +/* 113CF4 7F0DF1C4 01285825 */ or $t3, $t1, $t0 +/* 113CF8 7F0DF1C8 330DFFFF */ andi $t5, $t8, 0xffff +/* 113CFC 7F0DF1CC 2DAA0001 */ sltiu $t2, $t5, 1 +/* 113D00 7F0DF1D0 356E0002 */ ori $t6, $t3, 2 +/* 113D04 7F0DF1D4 00164200 */ sll $t0, $s6, 8 +/* 113D08 7F0DF1D8 01175825 */ or $t3, $t0, $s7 +/* 113D0C 7F0DF1DC 332D0FFF */ andi $t5, $t9, 0xfff +/* 113D10 7F0DF1E0 322C0001 */ andi $t4, $s1, 1 +/* 113D14 7F0DF1E4 01AC4821 */ addu $t1, $t5, $t4 +/* 113D18 7F0DF1E8 316F0FFF */ andi $t7, $t3, 0xfff +/* 113D1C 7F0DF1EC 01E9682A */ slt $t5, $t7, $t1 +/* 113D20 7F0DF1F0 000D6100 */ sll $t4, $t5, 4 +/* 113D24 7F0DF1F4 01CC4025 */ or $t0, $t6, $t4 +/* 113D28 7F0DF1F8 00165A00 */ sll $t3, $s6, 8 +/* 113D2C 7F0DF1FC 01777825 */ or $t7, $t3, $s7 +/* 113D30 7F0DF200 00166A00 */ sll $t5, $s6, 8 +/* 113D34 7F0DF204 01B77025 */ or $t6, $t5, $s7 +/* 113D38 7F0DF208 03206025 */ move $t4, $t9 +/* 113D3C 7F0DF20C 01CC5826 */ xor $t3, $t6, $t4 +/* 113D40 7F0DF210 01F84826 */ xor $t1, $t7, $t8 +/* 113D44 7F0DF214 01697824 */ and $t7, $t3, $t1 +/* 113D48 7F0DF218 31ED8000 */ andi $t5, $t7, 0x8000 +/* 113D4C 7F0DF21C A7B900C6 */ sh $t9, 0xc6($sp) +/* 113D50 7F0DF220 000DCB42 */ srl $t9, $t5, 0xd +/* 113D54 7F0DF224 01197025 */ or $t6, $t0, $t9 +/* 113D58 7F0DF228 000A6180 */ sll $t4, $t2, 6 +/* 113D5C 7F0DF22C 01CC8825 */ or $s1, $t6, $t4 +/* 113D60 7F0DF230 0018B202 */ srl $s6, $t8, 8 +/* 113D64 7F0DF234 32CF00FF */ andi $t7, $s6, 0xff +/* 113D68 7F0DF238 362B0002 */ ori $t3, $s1, 2 +/* 113D6C 7F0DF23C AFB800C0 */ sw $t8, 0xc0($sp) +/* 113D70 7F0DF240 93B700C3 */ lbu $s7, 0xc3($sp) +/* 113D74 7F0DF244 317100FF */ andi $s1, $t3, 0xff +/* 113D78 7F0DF248 01E0B025 */ move $s6, $t7 +/* 113D7C 7F0DF24C 10000D6B */ b .L7F0E27FC +/* 113D80 7F0DF250 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_ED_53: +/* 113D84 7F0DF254 8FAD028C */ lw $t5, 0x28c($sp) +/* 113D88 7F0DF258 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113D8C 7F0DF25C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 113D90 7F0DF260 97B90298 */ lhu $t9, 0x298($sp) +/* 113D94 7F0DF264 25A80010 */ addiu $t0, $t5, 0x10 +/* 113D98 7F0DF268 AFA8028C */ sw $t0, 0x28c($sp) +/* 113D9C 7F0DF26C 01595821 */ addu $t3, $t2, $t9 +/* 113DA0 7F0DF270 91690001 */ lbu $t1, 1($t3) +/* 113DA4 7F0DF274 032A7021 */ addu $t6, $t9, $t2 +/* 113DA8 7F0DF278 91CC0000 */ lbu $t4, ($t6) +/* 113DAC 7F0DF27C 0009C200 */ sll $t8, $t1, 8 +/* 113DB0 7F0DF280 272D0002 */ addiu $t5, $t9, 2 +/* 113DB4 7F0DF284 01987825 */ or $t7, $t4, $t8 +/* 113DB8 7F0DF288 31E8FFFF */ andi $t0, $t7, 0xffff +/* 113DBC 7F0DF28C 29015B00 */ slti $at, $t0, 0x5b00 +/* 113DC0 7F0DF290 A7AF00BE */ sh $t7, 0xbe($sp) +/* 113DC4 7F0DF294 14200006 */ bnez $at, .L7F0DF2B0 +/* 113DC8 7F0DF298 A7AD0298 */ sh $t5, 0x298($sp) +/* 113DCC 7F0DF29C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113DD0 7F0DF2A0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113DD4 7F0DF2A4 01C85021 */ addu $t2, $t6, $t0 +/* 113DD8 7F0DF2A8 10000021 */ b .L7F0DF330 +/* 113DDC 7F0DF2AC A1550000 */ sb $s5, ($t2) +.L7F0DF2B0: +/* 113DE0 7F0DF2B0 97AB00BE */ lhu $t3, 0xbe($sp) +/* 113DE4 7F0DF2B4 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113DE8 7F0DF2B8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113DEC 7F0DF2BC 29615800 */ slti $at, $t3, 0x5800 +/* 113DF0 7F0DF2C0 5420000C */ bnezl $at, .L7F0DF2F4 +/* 113DF4 7F0DF2C4 29C14000 */ slti $at, $t6, 0x4000 +/* 113DF8 7F0DF2C8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113DFC 7F0DF2CC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 113E00 7F0DF2D0 24180001 */ li $t8, 1 +/* 113E04 7F0DF2D4 012B6021 */ addu $t4, $t1, $t3 +/* 113E08 7F0DF2D8 A1950000 */ sb $s5, ($t4) +/* 113E0C 7F0DF2DC 97B900BE */ lhu $t9, 0xbe($sp) +/* 113E10 7F0DF2E0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 113E14 7F0DF2E4 01F96821 */ addu $t5, $t7, $t9 +/* 113E18 7F0DF2E8 10000011 */ b .L7F0DF330 +/* 113E1C 7F0DF2EC A1B8A800 */ sb $t8, -0x5800($t5) +/* 113E20 7F0DF2F0 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DF2F4: +/* 113E24 7F0DF2F4 1420000E */ bnez $at, .L7F0DF330 +/* 113E28 7F0DF2F8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113E2C 7F0DF2FC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113E30 7F0DF300 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 113E34 7F0DF304 24090001 */ li $t1, 1 +/* 113E38 7F0DF308 010E5021 */ addu $t2, $t0, $t6 +/* 113E3C 7F0DF30C A1550000 */ sb $s5, ($t2) +/* 113E40 7F0DF310 97AB00BE */ lhu $t3, 0xbe($sp) +/* 113E44 7F0DF314 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 113E48 7F0DF318 316C1800 */ andi $t4, $t3, 0x1800 +/* 113E4C 7F0DF31C 000C78C3 */ sra $t7, $t4, 3 +/* 113E50 7F0DF320 317900FF */ andi $t9, $t3, 0xff +/* 113E54 7F0DF324 01F9C025 */ or $t8, $t7, $t9 +/* 113E58 7F0DF328 01B84021 */ addu $t0, $t5, $t8 +/* 113E5C 7F0DF32C A1090000 */ sb $t1, ($t0) +.L7F0DF330: +/* 113E60 7F0DF330 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113E64 7F0DF334 97AF00BE */ lhu $t7, 0xbe($sp) +/* 113E68 7F0DF338 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 113E6C 7F0DF33C 25CA0001 */ addiu $t2, $t6, 1 +/* 113E70 7F0DF340 29415B00 */ slti $at, $t2, 0x5b00 +/* 113E74 7F0DF344 14200005 */ bnez $at, .L7F0DF35C +/* 113E78 7F0DF348 25F90001 */ addiu $t9, $t7, 1 +/* 113E7C 7F0DF34C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113E80 7F0DF350 018E5821 */ addu $t3, $t4, $t6 +/* 113E84 7F0DF354 10000D29 */ b .L7F0E27FC +/* 113E88 7F0DF358 A1740001 */ sb $s4, 1($t3) +.L7F0DF35C: +/* 113E8C 7F0DF35C 2B215800 */ slti $at, $t9, 0x5800 +/* 113E90 7F0DF360 1420000C */ bnez $at, .L7F0DF394 +/* 113E94 7F0DF364 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113E98 7F0DF368 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 113E9C 7F0DF36C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 113EA0 7F0DF370 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 113EA4 7F0DF374 24090001 */ li $t1, 1 +/* 113EA8 7F0DF378 01AFC021 */ addu $t8, $t5, $t7 +/* 113EAC 7F0DF37C A3140001 */ sb $s4, 1($t8) +/* 113EB0 7F0DF380 97AA00BE */ lhu $t2, 0xbe($sp) +/* 113EB4 7F0DF384 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 113EB8 7F0DF388 010A6021 */ addu $t4, $t0, $t2 +/* 113EBC 7F0DF38C 10000D1B */ b .L7F0E27FC +/* 113EC0 7F0DF390 A189A801 */ sb $t1, -0x57ff($t4) +.L7F0DF394: +/* 113EC4 7F0DF394 25CB0001 */ addiu $t3, $t6, 1 +/* 113EC8 7F0DF398 29614000 */ slti $at, $t3, 0x4000 +/* 113ECC 7F0DF39C 14200D17 */ bnez $at, .L7F0E27FC +/* 113ED0 7F0DF3A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 113ED4 7F0DF3A4 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 113ED8 7F0DF3A8 240F0001 */ li $t7, 1 +/* 113EDC 7F0DF3AC 032E6821 */ addu $t5, $t9, $t6 +/* 113EE0 7F0DF3B0 A1B40001 */ sb $s4, 1($t5) +/* 113EE4 7F0DF3B4 97B800BE */ lhu $t8, 0xbe($sp) +/* 113EE8 7F0DF3B8 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 113EEC 7F0DF3BC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 113EF0 7F0DF3C0 27080001 */ addiu $t0, $t8, 1 +/* 113EF4 7F0DF3C4 310A1800 */ andi $t2, $t0, 0x1800 +/* 113EF8 7F0DF3C8 000A48C3 */ sra $t1, $t2, 3 +/* 113EFC 7F0DF3CC 310C00FF */ andi $t4, $t0, 0xff +/* 113F00 7F0DF3D0 012C5825 */ or $t3, $t1, $t4 +/* 113F04 7F0DF3D4 032B7021 */ addu $t6, $t9, $t3 +/* 113F08 7F0DF3D8 10000D08 */ b .L7F0E27FC +/* 113F0C 7F0DF3DC A1CF0000 */ sb $t7, ($t6) +spectrum_op_ED_54: +/* 113F10 7F0DF3E0 00108023 */ negu $s0, $s0 +/* 113F14 7F0DF3E4 320A00FF */ andi $t2, $s0, 0xff +/* 113F18 7F0DF3E8 8FAD028C */ lw $t5, 0x28c($sp) +/* 113F1C 7F0DF3EC 2D480001 */ sltiu $t0, $t2, 1 +/* 113F20 7F0DF3F0 314F000F */ andi $t7, $t2, 0xf +/* 113F24 7F0DF3F4 01408025 */ move $s0, $t2 +/* 113F28 7F0DF3F8 314900A8 */ andi $t1, $t2, 0xa8 +/* 113F2C 7F0DF3FC 25B80004 */ addiu $t8, $t5, 4 +/* 113F30 7F0DF400 394A0080 */ xori $t2, $t2, 0x80 +/* 113F34 7F0DF404 000F702A */ slt $t6, $zero, $t7 +/* 113F38 7F0DF408 0008C980 */ sll $t9, $t0, 6 +/* 113F3C 7F0DF40C AFB8028C */ sw $t8, 0x28c($sp) +/* 113F40 7F0DF410 01395825 */ or $t3, $t1, $t9 +/* 113F44 7F0DF414 000E6900 */ sll $t5, $t6, 4 +/* 113F48 7F0DF418 2D4A0001 */ sltiu $t2, $t2, 1 +/* 113F4C 7F0DF41C AFA80048 */ sw $t0, 0x48($sp) +/* 113F50 7F0DF420 000A4080 */ sll $t0, $t2, 2 +/* 113F54 7F0DF424 016DC025 */ or $t8, $t3, $t5 +/* 113F58 7F0DF428 03086025 */ or $t4, $t8, $t0 +/* 113F5C 7F0DF42C 35890002 */ ori $t1, $t4, 2 +/* 113F60 7F0DF430 0010C82A */ slt $t9, $zero, $s0 +/* 113F64 7F0DF434 01398825 */ or $s1, $t1, $t9 +/* 113F68 7F0DF438 322F00FF */ andi $t7, $s1, 0xff +/* 113F6C 7F0DF43C 10000CEF */ b .L7F0E27FC +/* 113F70 7F0DF440 01E08825 */ move $s1, $t7 +spectrum_op_ED_55: +/* 113F74 7F0DF444 8FAE028C */ lw $t6, 0x28c($sp) +/* 113F78 7F0DF448 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113F7C 7F0DF44C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113F80 7F0DF450 97B80292 */ lhu $t8, 0x292($sp) +/* 113F84 7F0DF454 25CB0004 */ addiu $t3, $t6, 4 +/* 113F88 7F0DF458 AFAB028C */ sw $t3, 0x28c($sp) +/* 113F8C 7F0DF45C 256A0006 */ addiu $t2, $t3, 6 +/* 113F90 7F0DF460 AFAA028C */ sw $t2, 0x28c($sp) +/* 113F94 7F0DF464 0118C821 */ addu $t9, $t0, $t8 +/* 113F98 7F0DF468 932F0001 */ lbu $t7, 1($t9) +/* 113F9C 7F0DF46C 03086021 */ addu $t4, $t8, $t0 +/* 113FA0 7F0DF470 91890000 */ lbu $t1, ($t4) +/* 113FA4 7F0DF474 000F7200 */ sll $t6, $t7, 8 +/* 113FA8 7F0DF478 270D0002 */ addiu $t5, $t8, 2 +/* 113FAC 7F0DF47C 012E5825 */ or $t3, $t1, $t6 +/* 113FB0 7F0DF480 A7AB0298 */ sh $t3, 0x298($sp) +/* 113FB4 7F0DF484 10000CDD */ b .L7F0E27FC +/* 113FB8 7F0DF488 A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_ED_56: +/* 113FBC 7F0DF48C 8FAA028C */ lw $t2, 0x28c($sp) +/* 113FC0 7F0DF490 24080002 */ li $t0, 2 +/* 113FC4 7F0DF494 A3A8029B */ sb $t0, 0x29b($sp) +/* 113FC8 7F0DF498 254C0004 */ addiu $t4, $t2, 4 +/* 113FCC 7F0DF49C 10000CD7 */ b .L7F0E27FC +/* 113FD0 7F0DF4A0 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_ED_57: +/* 113FD4 7F0DF4A4 93B0029E */ lbu $s0, 0x29e($sp) +/* 113FD8 7F0DF4A8 8FB9028C */ lw $t9, 0x28c($sp) +/* 113FDC 7F0DF4AC 93A8029C */ lbu $t0, 0x29c($sp) +/* 113FE0 7F0DF4B0 322E0001 */ andi $t6, $s1, 1 +/* 113FE4 7F0DF4B4 2E090001 */ sltiu $t1, $s0, 1 +/* 113FE8 7F0DF4B8 320B00A8 */ andi $t3, $s0, 0xa8 +/* 113FEC 7F0DF4BC 01CBC025 */ or $t8, $t6, $t3 +/* 113FF0 7F0DF4C0 00095180 */ sll $t2, $t1, 6 +/* 113FF4 7F0DF4C4 272F0005 */ addiu $t7, $t9, 5 +/* 113FF8 7F0DF4C8 030A6025 */ or $t4, $t8, $t2 +/* 113FFC 7F0DF4CC 0008C880 */ sll $t9, $t0, 2 +/* 114000 7F0DF4D0 AFAF028C */ sw $t7, 0x28c($sp) +/* 114004 7F0DF4D4 01998825 */ or $s1, $t4, $t9 +/* 114008 7F0DF4D8 322F00FF */ andi $t7, $s1, 0xff +/* 11400C 7F0DF4DC 01E08825 */ move $s1, $t7 +/* 114010 7F0DF4E0 10000CC6 */ b .L7F0E27FC +/* 114014 7F0DF4E4 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_ED_58: +/* 114018 7F0DF4E8 8FA9028C */ lw $t1, 0x28c($sp) +/* 11401C 7F0DF4EC 02402825 */ move $a1, $s2 +/* 114020 7F0DF4F0 02603025 */ move $a2, $s3 +/* 114024 7F0DF4F4 25240008 */ addiu $a0, $t1, 8 +/* 114028 7F0DF4F8 0FC34DB6 */ jal spectrum_input_handling +/* 11402C 7F0DF4FC AFA4028C */ sw $a0, 0x28c($sp) +/* 114030 7F0DF500 8FAB028C */ lw $t3, 0x28c($sp) +/* 114034 7F0DF504 304DFFFF */ andi $t5, $v0, 0xffff +/* 114038 7F0DF508 000DC203 */ sra $t8, $t5, 8 +/* 11403C 7F0DF50C A7A200BC */ sh $v0, 0xbc($sp) +/* 114040 7F0DF510 01785021 */ addu $t2, $t3, $t8 +/* 114044 7F0DF514 93B500BD */ lbu $s5, 0xbd($sp) +/* 114048 7F0DF518 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 11404C 7F0DF51C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 114050 7F0DF520 2EA80001 */ sltiu $t0, $s5, 1 +/* 114054 7F0DF524 AFA80048 */ sw $t0, 0x48($sp) +/* 114058 7F0DF528 AFAA028C */ sw $t2, 0x28c($sp) +/* 11405C 7F0DF52C 02ABC021 */ addu $t8, $s5, $t3 +/* 114060 7F0DF530 930A0000 */ lbu $t2, ($t8) +/* 114064 7F0DF534 322C0001 */ andi $t4, $s1, 1 +/* 114068 7F0DF538 32B900A8 */ andi $t9, $s5, 0xa8 +/* 11406C 7F0DF53C 01997825 */ or $t7, $t4, $t9 +/* 114070 7F0DF540 00087180 */ sll $t6, $t0, 6 +/* 114074 7F0DF544 01EE6825 */ or $t5, $t7, $t6 +/* 114078 7F0DF548 014D8825 */ or $s1, $t2, $t5 +/* 11407C 7F0DF54C 322800FF */ andi $t0, $s1, 0xff +/* 114080 7F0DF550 10000CAA */ b .L7F0E27FC +/* 114084 7F0DF554 01008825 */ move $s1, $t0 +spectrum_op_ED_59: +/* 114088 7F0DF558 8FAC028C */ lw $t4, 0x28c($sp) +/* 11408C 7F0DF55C 02402825 */ move $a1, $s2 +/* 114090 7F0DF560 02603025 */ move $a2, $s3 +/* 114094 7F0DF564 25840008 */ addiu $a0, $t4, 8 +/* 114098 7F0DF568 AFA4028C */ sw $a0, 0x28c($sp) +/* 11409C 7F0DF56C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1140A0 7F0DF570 02A03825 */ move $a3, $s5 +/* 1140A4 7F0DF574 8FA9028C */ lw $t1, 0x28c($sp) +/* 1140A8 7F0DF578 AFA20048 */ sw $v0, 0x48($sp) +/* 1140AC 7F0DF57C 01227021 */ addu $t6, $t1, $v0 +/* 1140B0 7F0DF580 10000C9E */ b .L7F0E27FC +/* 1140B4 7F0DF584 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_5A: +/* 1140B8 7F0DF588 00145200 */ sll $t2, $s4, 8 +/* 1140BC 7F0DF58C 01556825 */ or $t5, $t2, $s5 +/* 1140C0 7F0DF590 00164200 */ sll $t0, $s6, 8 +/* 1140C4 7F0DF594 01176025 */ or $t4, $t0, $s7 +/* 1140C8 7F0DF598 31B9FFFF */ andi $t9, $t5, 0xffff +/* 1140CC 7F0DF59C 8FAB028C */ lw $t3, 0x28c($sp) +/* 1140D0 7F0DF5A0 01994821 */ addu $t1, $t4, $t9 +/* 1140D4 7F0DF5A4 322F0001 */ andi $t7, $s1, 1 +/* 1140D8 7F0DF5A8 012F7021 */ addu $t6, $t1, $t7 +/* 1140DC 7F0DF5AC 2578000B */ addiu $t8, $t3, 0xb +/* 1140E0 7F0DF5B0 000E5202 */ srl $t2, $t6, 8 +/* 1140E4 7F0DF5B4 AFB8028C */ sw $t8, 0x28c($sp) +/* 1140E8 7F0DF5B8 314800A8 */ andi $t0, $t2, 0xa8 +/* 1140EC 7F0DF5BC 31CBFFFF */ andi $t3, $t6, 0xffff +/* 1140F0 7F0DF5C0 000E6402 */ srl $t4, $t6, 0x10 +/* 1140F4 7F0DF5C4 00164A00 */ sll $t1, $s6, 8 +/* 1140F8 7F0DF5C8 01377825 */ or $t7, $t1, $s7 +/* 1140FC 7F0DF5CC 010CC825 */ or $t9, $t0, $t4 +/* 114100 7F0DF5D0 2D780001 */ sltiu $t8, $t3, 1 +/* 114104 7F0DF5D4 31EB0FFF */ andi $t3, $t7, 0xfff +/* 114108 7F0DF5D8 31A80FFF */ andi $t0, $t5, 0xfff +/* 11410C 7F0DF5DC 01686021 */ addu $t4, $t3, $t0 +/* 114110 7F0DF5E0 32290001 */ andi $t1, $s1, 1 +/* 114114 7F0DF5E4 01897821 */ addu $t7, $t4, $t1 +/* 114118 7F0DF5E8 24010FFF */ li $at, 4095 +/* 11411C 7F0DF5EC 002F502A */ slt $t2, $at, $t7 +/* 114120 7F0DF5F0 000A5900 */ sll $t3, $t2, 4 +/* 114124 7F0DF5F4 032B4025 */ or $t0, $t9, $t3 +/* 114128 7F0DF5F8 00166200 */ sll $t4, $s6, 8 +/* 11412C 7F0DF5FC 01974825 */ or $t1, $t4, $s7 +/* 114130 7F0DF600 00165200 */ sll $t2, $s6, 8 +/* 114134 7F0DF604 0157C827 */ nor $t9, $t2, $s7 +/* 114138 7F0DF608 01A05825 */ move $t3, $t5 +/* 11413C 7F0DF60C 032B6026 */ xor $t4, $t9, $t3 +/* 114140 7F0DF610 012E7826 */ xor $t7, $t1, $t6 +/* 114144 7F0DF614 018F4824 */ and $t1, $t4, $t7 +/* 114148 7F0DF618 312A8000 */ andi $t2, $t1, 0x8000 +/* 11414C 7F0DF61C A7AD00BA */ sh $t5, 0xba($sp) +/* 114150 7F0DF620 000A6B42 */ srl $t5, $t2, 0xd +/* 114154 7F0DF624 010DC825 */ or $t9, $t0, $t5 +/* 114158 7F0DF628 00185980 */ sll $t3, $t8, 6 +/* 11415C 7F0DF62C 032B8825 */ or $s1, $t9, $t3 +/* 114160 7F0DF630 000EB202 */ srl $s6, $t6, 8 +/* 114164 7F0DF634 32C900FF */ andi $t1, $s6, 0xff +/* 114168 7F0DF638 362C0002 */ ori $t4, $s1, 2 +/* 11416C 7F0DF63C AFAE00B4 */ sw $t6, 0xb4($sp) +/* 114170 7F0DF640 93B700B7 */ lbu $s7, 0xb7($sp) +/* 114174 7F0DF644 319100FF */ andi $s1, $t4, 0xff +/* 114178 7F0DF648 0120B025 */ move $s6, $t1 +/* 11417C 7F0DF64C 10000C6B */ b .L7F0E27FC +/* 114180 7F0DF650 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_ED_5B: +/* 114184 7F0DF654 8FAA028C */ lw $t2, 0x28c($sp) +/* 114188 7F0DF658 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 11418C 7F0DF65C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 114190 7F0DF660 97AD0298 */ lhu $t5, 0x298($sp) +/* 114194 7F0DF664 25480010 */ addiu $t0, $t2, 0x10 +/* 114198 7F0DF668 AFA8028C */ sw $t0, 0x28c($sp) +/* 11419C 7F0DF66C 030D6021 */ addu $t4, $t8, $t5 +/* 1141A0 7F0DF670 918F0001 */ lbu $t7, 1($t4) +/* 1141A4 7F0DF674 01B8C821 */ addu $t9, $t5, $t8 +/* 1141A8 7F0DF678 932B0000 */ lbu $t3, ($t9) +/* 1141AC 7F0DF67C 000F7200 */ sll $t6, $t7, 8 +/* 1141B0 7F0DF680 25AA0002 */ addiu $t2, $t5, 2 +/* 1141B4 7F0DF684 016E4825 */ or $t1, $t3, $t6 +/* 1141B8 7F0DF688 3128FFFF */ andi $t0, $t1, 0xffff +/* 1141BC 7F0DF68C A7A900B2 */ sh $t1, 0xb2($sp) +/* 1141C0 7F0DF690 A7AA0298 */ sh $t2, 0x298($sp) +/* 1141C4 7F0DF694 0118C821 */ addu $t9, $t0, $t8 +/* 1141C8 7F0DF698 93350000 */ lbu $s5, ($t9) +/* 1141CC 7F0DF69C 10000C57 */ b .L7F0E27FC +/* 1141D0 7F0DF6A0 93340001 */ lbu $s4, 1($t9) +spectrum_op_ED_5C: +/* 1141D4 7F0DF6A4 00108023 */ negu $s0, $s0 +/* 1141D8 7F0DF6A8 320B00FF */ andi $t3, $s0, 0xff +/* 1141DC 7F0DF6AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 1141E0 7F0DF6B0 2D6E0001 */ sltiu $t6, $t3, 1 +/* 1141E4 7F0DF6B4 3178000F */ andi $t8, $t3, 0xf +/* 1141E8 7F0DF6B8 01608025 */ move $s0, $t3 +/* 1141EC 7F0DF6BC 316900A8 */ andi $t1, $t3, 0xa8 +/* 1141F0 7F0DF6C0 258F0004 */ addiu $t7, $t4, 4 +/* 1141F4 7F0DF6C4 396B0080 */ xori $t3, $t3, 0x80 +/* 1141F8 7F0DF6C8 0018C82A */ slt $t9, $zero, $t8 +/* 1141FC 7F0DF6CC 000E5180 */ sll $t2, $t6, 6 +/* 114200 7F0DF6D0 AFAF028C */ sw $t7, 0x28c($sp) +/* 114204 7F0DF6D4 012A4025 */ or $t0, $t1, $t2 +/* 114208 7F0DF6D8 00196100 */ sll $t4, $t9, 4 +/* 11420C 7F0DF6DC 2D6B0001 */ sltiu $t3, $t3, 1 +/* 114210 7F0DF6E0 AFAE0048 */ sw $t6, 0x48($sp) +/* 114214 7F0DF6E4 000B7080 */ sll $t6, $t3, 2 +/* 114218 7F0DF6E8 010C7825 */ or $t7, $t0, $t4 +/* 11421C 7F0DF6EC 01EE6825 */ or $t5, $t7, $t6 +/* 114220 7F0DF6F0 35A90002 */ ori $t1, $t5, 2 +/* 114224 7F0DF6F4 0010502A */ slt $t2, $zero, $s0 +/* 114228 7F0DF6F8 012A8825 */ or $s1, $t1, $t2 +/* 11422C 7F0DF6FC 323800FF */ andi $t8, $s1, 0xff +/* 114230 7F0DF700 10000C3E */ b .L7F0E27FC +/* 114234 7F0DF704 03008825 */ move $s1, $t8 +spectrum_op_ED_5D: +/* 114238 7F0DF708 8FB9028C */ lw $t9, 0x28c($sp) +/* 11423C 7F0DF70C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114240 7F0DF710 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114244 7F0DF714 97AF0292 */ lhu $t7, 0x292($sp) +/* 114248 7F0DF718 27280004 */ addiu $t0, $t9, 4 +/* 11424C 7F0DF71C AFA8028C */ sw $t0, 0x28c($sp) +/* 114250 7F0DF720 250B0006 */ addiu $t3, $t0, 6 +/* 114254 7F0DF724 AFAB028C */ sw $t3, 0x28c($sp) +/* 114258 7F0DF728 01CF5021 */ addu $t2, $t6, $t7 +/* 11425C 7F0DF72C 91580001 */ lbu $t8, 1($t2) +/* 114260 7F0DF730 01EE6821 */ addu $t5, $t7, $t6 +/* 114264 7F0DF734 91A90000 */ lbu $t1, ($t5) +/* 114268 7F0DF738 0018CA00 */ sll $t9, $t8, 8 +/* 11426C 7F0DF73C 25EC0002 */ addiu $t4, $t7, 2 +/* 114270 7F0DF740 01394025 */ or $t0, $t1, $t9 +/* 114274 7F0DF744 A7A80298 */ sh $t0, 0x298($sp) +/* 114278 7F0DF748 10000C2C */ b .L7F0E27FC +/* 11427C 7F0DF74C A7AC0292 */ sh $t4, 0x292($sp) +spectrum_op_ED_5E: +/* 114280 7F0DF750 8FAB028C */ lw $t3, 0x28c($sp) +/* 114284 7F0DF754 240E0003 */ li $t6, 3 +/* 114288 7F0DF758 A3AE029B */ sb $t6, 0x29b($sp) +/* 11428C 7F0DF75C 256D0004 */ addiu $t5, $t3, 4 +/* 114290 7F0DF760 10000C26 */ b .L7F0E27FC +/* 114294 7F0DF764 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_ED_5F: +/* 114298 7F0DF768 93A902A7 */ lbu $t1, 0x2a7($sp) +/* 11429C 7F0DF76C 8FA80288 */ lw $t0, 0x288($sp) +/* 1142A0 7F0DF770 8FAA028C */ lw $t2, 0x28c($sp) +/* 1142A4 7F0DF774 31390080 */ andi $t9, $t1, 0x80 +/* 1142A8 7F0DF778 310F007F */ andi $t7, $t0, 0x7f +/* 1142AC 7F0DF77C 032F8025 */ or $s0, $t9, $t7 +/* 1142B0 7F0DF780 320B00FF */ andi $t3, $s0, 0xff +/* 1142B4 7F0DF784 25580005 */ addiu $t8, $t2, 5 +/* 1142B8 7F0DF788 93AF029C */ lbu $t7, 0x29c($sp) +/* 1142BC 7F0DF78C AFB8028C */ sw $t8, 0x28c($sp) +/* 1142C0 7F0DF790 316A00A8 */ andi $t2, $t3, 0xa8 +/* 1142C4 7F0DF794 2D6D0001 */ sltiu $t5, $t3, 1 +/* 1142C8 7F0DF798 322E0001 */ andi $t6, $s1, 1 +/* 1142CC 7F0DF79C 01CAC025 */ or $t8, $t6, $t2 +/* 1142D0 7F0DF7A0 000D4180 */ sll $t0, $t5, 6 +/* 1142D4 7F0DF7A4 A3B002A7 */ sb $s0, 0x2a7($sp) +/* 1142D8 7F0DF7A8 0308C825 */ or $t9, $t8, $t0 +/* 1142DC 7F0DF7AC 000F6080 */ sll $t4, $t7, 2 +/* 1142E0 7F0DF7B0 01608025 */ move $s0, $t3 +/* 1142E4 7F0DF7B4 032C8825 */ or $s1, $t9, $t4 +/* 1142E8 7F0DF7B8 322B00FF */ andi $t3, $s1, 0xff +/* 1142EC 7F0DF7BC 01608825 */ move $s1, $t3 +/* 1142F0 7F0DF7C0 10000C0E */ b .L7F0E27FC +/* 1142F4 7F0DF7C4 AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_ED_60: +/* 1142F8 7F0DF7C8 8FAD028C */ lw $t5, 0x28c($sp) +/* 1142FC 7F0DF7CC 02402825 */ move $a1, $s2 +/* 114300 7F0DF7D0 02603025 */ move $a2, $s3 +/* 114304 7F0DF7D4 25A40008 */ addiu $a0, $t5, 8 +/* 114308 7F0DF7D8 0FC34DB6 */ jal spectrum_input_handling +/* 11430C 7F0DF7DC AFA4028C */ sw $a0, 0x28c($sp) +/* 114310 7F0DF7E0 8FAA028C */ lw $t2, 0x28c($sp) +/* 114314 7F0DF7E4 3049FFFF */ andi $t1, $v0, 0xffff +/* 114318 7F0DF7E8 0009C203 */ sra $t8, $t1, 8 +/* 11431C 7F0DF7EC A7A200B0 */ sh $v0, 0xb0($sp) +/* 114320 7F0DF7F0 01584021 */ addu $t0, $t2, $t8 +/* 114324 7F0DF7F4 93B600B1 */ lbu $s6, 0xb1($sp) +/* 114328 7F0DF7F8 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 11432C 7F0DF7FC 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 114330 7F0DF800 2ECF0001 */ sltiu $t7, $s6, 1 +/* 114334 7F0DF804 AFAF0048 */ sw $t7, 0x48($sp) +/* 114338 7F0DF808 AFA8028C */ sw $t0, 0x28c($sp) +/* 11433C 7F0DF80C 02CAC021 */ addu $t8, $s6, $t2 +/* 114340 7F0DF810 93080000 */ lbu $t0, ($t8) +/* 114344 7F0DF814 32390001 */ andi $t9, $s1, 1 +/* 114348 7F0DF818 32CC00A8 */ andi $t4, $s6, 0xa8 +/* 11434C 7F0DF81C 032C5825 */ or $t3, $t9, $t4 +/* 114350 7F0DF820 000F7180 */ sll $t6, $t7, 6 +/* 114354 7F0DF824 016E4825 */ or $t1, $t3, $t6 +/* 114358 7F0DF828 01098825 */ or $s1, $t0, $t1 +/* 11435C 7F0DF82C 322F00FF */ andi $t7, $s1, 0xff +/* 114360 7F0DF830 10000BF2 */ b .L7F0E27FC +/* 114364 7F0DF834 01E08825 */ move $s1, $t7 +spectrum_op_ED_61: +/* 114368 7F0DF838 8FB9028C */ lw $t9, 0x28c($sp) +/* 11436C 7F0DF83C 02402825 */ move $a1, $s2 +/* 114370 7F0DF840 02603025 */ move $a2, $s3 +/* 114374 7F0DF844 27240008 */ addiu $a0, $t9, 8 +/* 114378 7F0DF848 AFA4028C */ sw $a0, 0x28c($sp) +/* 11437C 7F0DF84C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 114380 7F0DF850 02C03825 */ move $a3, $s6 +/* 114384 7F0DF854 8FAD028C */ lw $t5, 0x28c($sp) +/* 114388 7F0DF858 AFA20048 */ sw $v0, 0x48($sp) +/* 11438C 7F0DF85C 01A27021 */ addu $t6, $t5, $v0 +/* 114390 7F0DF860 10000BE6 */ b .L7F0E27FC +/* 114394 7F0DF864 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_62: +/* 114398 7F0DF868 00164200 */ sll $t0, $s6, 8 +/* 11439C 7F0DF86C 8FAA028C */ lw $t2, 0x28c($sp) +/* 1143A0 7F0DF870 01174825 */ or $t1, $t0, $s7 +/* 1143A4 7F0DF874 00167A00 */ sll $t7, $s6, 8 +/* 1143A8 7F0DF878 01F7C825 */ or $t9, $t7, $s7 +/* 1143AC 7F0DF87C 312CFFFF */ andi $t4, $t1, 0xffff +/* 1143B0 7F0DF880 032C6823 */ subu $t5, $t9, $t4 +/* 1143B4 7F0DF884 322B0001 */ andi $t3, $s1, 1 +/* 1143B8 7F0DF888 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 1143BC 7F0DF88C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 1143C0 7F0DF890 01AB7023 */ subu $t6, $t5, $t3 +/* 1143C4 7F0DF894 2558000B */ addiu $t8, $t2, 0xb +/* 1143C8 7F0DF898 01C15024 */ and $t2, $t6, $at +/* 1143CC 7F0DF89C 000A7A02 */ srl $t7, $t2, 8 +/* 1143D0 7F0DF8A0 31F900A8 */ andi $t9, $t7, 0xa8 +/* 1143D4 7F0DF8A4 000A6402 */ srl $t4, $t2, 0x10 +/* 1143D8 7F0DF8A8 AFB8028C */ sw $t8, 0x28c($sp) +/* 1143DC 7F0DF8AC 032C6825 */ or $t5, $t9, $t4 +/* 1143E0 7F0DF8B0 3158FFFF */ andi $t8, $t2, 0xffff +/* 1143E4 7F0DF8B4 2F080001 */ sltiu $t0, $t8, 1 +/* 1143E8 7F0DF8B8 35AB0002 */ ori $t3, $t5, 2 +/* 1143EC 7F0DF8BC 00166200 */ sll $t4, $s6, 8 +/* 1143F0 7F0DF8C0 01976825 */ or $t5, $t4, $s7 +/* 1143F4 7F0DF8C4 31380FFF */ andi $t8, $t1, 0xfff +/* 1143F8 7F0DF8C8 322F0001 */ andi $t7, $s1, 1 +/* 1143FC 7F0DF8CC 030FC821 */ addu $t9, $t8, $t7 +/* 114400 7F0DF8D0 31AE0FFF */ andi $t6, $t5, 0xfff +/* 114404 7F0DF8D4 01D9C02A */ slt $t8, $t6, $t9 +/* 114408 7F0DF8D8 00187900 */ sll $t7, $t8, 4 +/* 11440C 7F0DF8DC 016F6025 */ or $t4, $t3, $t7 +/* 114410 7F0DF8E0 00166A00 */ sll $t5, $s6, 8 +/* 114414 7F0DF8E4 01B77025 */ or $t6, $t5, $s7 +/* 114418 7F0DF8E8 0016C200 */ sll $t8, $s6, 8 +/* 11441C 7F0DF8EC 03175825 */ or $t3, $t8, $s7 +/* 114420 7F0DF8F0 01207825 */ move $t7, $t1 +/* 114424 7F0DF8F4 016F6826 */ xor $t5, $t3, $t7 +/* 114428 7F0DF8F8 01CAC826 */ xor $t9, $t6, $t2 +/* 11442C 7F0DF8FC 01B97024 */ and $t6, $t5, $t9 +/* 114430 7F0DF900 31D88000 */ andi $t8, $t6, 0x8000 +/* 114434 7F0DF904 A7A900AE */ sh $t1, 0xae($sp) +/* 114438 7F0DF908 00184B42 */ srl $t1, $t8, 0xd +/* 11443C 7F0DF90C 01895825 */ or $t3, $t4, $t1 +/* 114440 7F0DF910 00087980 */ sll $t7, $t0, 6 +/* 114444 7F0DF914 016F8825 */ or $s1, $t3, $t7 +/* 114448 7F0DF918 000AB202 */ srl $s6, $t2, 8 +/* 11444C 7F0DF91C 32CE00FF */ andi $t6, $s6, 0xff +/* 114450 7F0DF920 362D0002 */ ori $t5, $s1, 2 +/* 114454 7F0DF924 AFAA00A8 */ sw $t2, 0xa8($sp) +/* 114458 7F0DF928 93B700AB */ lbu $s7, 0xab($sp) +/* 11445C 7F0DF92C 31B100FF */ andi $s1, $t5, 0xff +/* 114460 7F0DF930 01C0B025 */ move $s6, $t6 +/* 114464 7F0DF934 10000BB1 */ b .L7F0E27FC +/* 114468 7F0DF938 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_ED_63: +/* 11446C 7F0DF93C 8FB8028C */ lw $t8, 0x28c($sp) +/* 114470 7F0DF940 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114474 7F0DF944 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 114478 7F0DF948 97A90298 */ lhu $t1, 0x298($sp) +/* 11447C 7F0DF94C 270C0010 */ addiu $t4, $t8, 0x10 +/* 114480 7F0DF950 AFAC028C */ sw $t4, 0x28c($sp) +/* 114484 7F0DF954 01096821 */ addu $t5, $t0, $t1 +/* 114488 7F0DF958 91B90001 */ lbu $t9, 1($t5) +/* 11448C 7F0DF95C 01285821 */ addu $t3, $t1, $t0 +/* 114490 7F0DF960 916F0000 */ lbu $t7, ($t3) +/* 114494 7F0DF964 00195200 */ sll $t2, $t9, 8 +/* 114498 7F0DF968 25380002 */ addiu $t8, $t1, 2 +/* 11449C 7F0DF96C 01EA7025 */ or $t6, $t7, $t2 +/* 1144A0 7F0DF970 31CCFFFF */ andi $t4, $t6, 0xffff +/* 1144A4 7F0DF974 29815B00 */ slti $at, $t4, 0x5b00 +/* 1144A8 7F0DF978 A7AE00A6 */ sh $t6, 0xa6($sp) +/* 1144AC 7F0DF97C 14200006 */ bnez $at, .L7F0DF998 +/* 1144B0 7F0DF980 A7B80298 */ sh $t8, 0x298($sp) +/* 1144B4 7F0DF984 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1144B8 7F0DF988 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1144BC 7F0DF98C 016C4021 */ addu $t0, $t3, $t4 +/* 1144C0 7F0DF990 10000021 */ b .L7F0DFA18 +/* 1144C4 7F0DF994 A1170000 */ sb $s7, ($t0) +.L7F0DF998: +/* 1144C8 7F0DF998 97AD00A6 */ lhu $t5, 0xa6($sp) +/* 1144CC 7F0DF99C 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 1144D0 7F0DF9A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1144D4 7F0DF9A4 29A15800 */ slti $at, $t5, 0x5800 +/* 1144D8 7F0DF9A8 5420000C */ bnezl $at, .L7F0DF9DC +/* 1144DC 7F0DF9AC 29614000 */ slti $at, $t3, 0x4000 +/* 1144E0 7F0DF9B0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1144E4 7F0DF9B4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1144E8 7F0DF9B8 240A0001 */ li $t2, 1 +/* 1144EC 7F0DF9BC 032D7821 */ addu $t7, $t9, $t5 +/* 1144F0 7F0DF9C0 A1F70000 */ sb $s7, ($t7) +/* 1144F4 7F0DF9C4 97A900A6 */ lhu $t1, 0xa6($sp) +/* 1144F8 7F0DF9C8 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1144FC 7F0DF9CC 01C9C021 */ addu $t8, $t6, $t1 +/* 114500 7F0DF9D0 10000011 */ b .L7F0DFA18 +/* 114504 7F0DF9D4 A30AA800 */ sb $t2, -0x5800($t8) +/* 114508 7F0DF9D8 29614000 */ slti $at, $t3, 0x4000 +.L7F0DF9DC: +/* 11450C 7F0DF9DC 1420000E */ bnez $at, .L7F0DFA18 +/* 114510 7F0DF9E0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 114514 7F0DF9E4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 114518 7F0DF9E8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 11451C 7F0DF9EC 24190001 */ li $t9, 1 +/* 114520 7F0DF9F0 018B4021 */ addu $t0, $t4, $t3 +/* 114524 7F0DF9F4 A1170000 */ sb $s7, ($t0) +/* 114528 7F0DF9F8 97AD00A6 */ lhu $t5, 0xa6($sp) +/* 11452C 7F0DF9FC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 114530 7F0DFA00 31AF1800 */ andi $t7, $t5, 0x1800 +/* 114534 7F0DFA04 000F70C3 */ sra $t6, $t7, 3 +/* 114538 7F0DFA08 31A900FF */ andi $t1, $t5, 0xff +/* 11453C 7F0DFA0C 01C95025 */ or $t2, $t6, $t1 +/* 114540 7F0DFA10 030A6021 */ addu $t4, $t8, $t2 +/* 114544 7F0DFA14 A1990000 */ sb $t9, ($t4) +.L7F0DFA18: +/* 114548 7F0DFA18 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 11454C 7F0DFA1C 97AE00A6 */ lhu $t6, 0xa6($sp) +/* 114550 7F0DFA20 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 114554 7F0DFA24 25680001 */ addiu $t0, $t3, 1 +/* 114558 7F0DFA28 29015B00 */ slti $at, $t0, 0x5b00 +/* 11455C 7F0DFA2C 14200005 */ bnez $at, .L7F0DFA44 +/* 114560 7F0DFA30 25C90001 */ addiu $t1, $t6, 1 +/* 114564 7F0DFA34 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 114568 7F0DFA38 01EB6821 */ addu $t5, $t7, $t3 +/* 11456C 7F0DFA3C 10000B6F */ b .L7F0E27FC +/* 114570 7F0DFA40 A1B60001 */ sb $s6, 1($t5) +.L7F0DFA44: +/* 114574 7F0DFA44 29215800 */ slti $at, $t1, 0x5800 +/* 114578 7F0DFA48 1420000C */ bnez $at, .L7F0DFA7C +/* 11457C 7F0DFA4C 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 114580 7F0DFA50 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 114584 7F0DFA54 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 114588 7F0DFA58 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 11458C 7F0DFA5C 24190001 */ li $t9, 1 +/* 114590 7F0DFA60 030E5021 */ addu $t2, $t8, $t6 +/* 114594 7F0DFA64 A1560001 */ sb $s6, 1($t2) +/* 114598 7F0DFA68 97A800A6 */ lhu $t0, 0xa6($sp) +/* 11459C 7F0DFA6C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1145A0 7F0DFA70 01887821 */ addu $t7, $t4, $t0 +/* 1145A4 7F0DFA74 10000B61 */ b .L7F0E27FC +/* 1145A8 7F0DFA78 A1F9A801 */ sb $t9, -0x57ff($t7) +.L7F0DFA7C: +/* 1145AC 7F0DFA7C 256D0001 */ addiu $t5, $t3, 1 +/* 1145B0 7F0DFA80 29A14000 */ slti $at, $t5, 0x4000 +/* 1145B4 7F0DFA84 14200B5D */ bnez $at, .L7F0E27FC +/* 1145B8 7F0DFA88 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1145BC 7F0DFA8C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1145C0 7F0DFA90 240E0001 */ li $t6, 1 +/* 1145C4 7F0DFA94 012BC021 */ addu $t8, $t1, $t3 +/* 1145C8 7F0DFA98 A3160001 */ sb $s6, 1($t8) +/* 1145CC 7F0DFA9C 97AA00A6 */ lhu $t2, 0xa6($sp) +/* 1145D0 7F0DFAA0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1145D4 7F0DFAA4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1145D8 7F0DFAA8 254C0001 */ addiu $t4, $t2, 1 +/* 1145DC 7F0DFAAC 31881800 */ andi $t0, $t4, 0x1800 +/* 1145E0 7F0DFAB0 0008C8C3 */ sra $t9, $t0, 3 +/* 1145E4 7F0DFAB4 318F00FF */ andi $t7, $t4, 0xff +/* 1145E8 7F0DFAB8 032F6825 */ or $t5, $t9, $t7 +/* 1145EC 7F0DFABC 012D5821 */ addu $t3, $t1, $t5 +/* 1145F0 7F0DFAC0 10000B4E */ b .L7F0E27FC +/* 1145F4 7F0DFAC4 A16E0000 */ sb $t6, ($t3) +spectrum_op_ED_64: +/* 1145F8 7F0DFAC8 00108023 */ negu $s0, $s0 +/* 1145FC 7F0DFACC 320800FF */ andi $t0, $s0, 0xff +/* 114600 7F0DFAD0 8FB8028C */ lw $t8, 0x28c($sp) +/* 114604 7F0DFAD4 2D0C0001 */ sltiu $t4, $t0, 1 +/* 114608 7F0DFAD8 310E000F */ andi $t6, $t0, 0xf +/* 11460C 7F0DFADC 01008025 */ move $s0, $t0 +/* 114610 7F0DFAE0 311900A8 */ andi $t9, $t0, 0xa8 +/* 114614 7F0DFAE4 270A0004 */ addiu $t2, $t8, 4 +/* 114618 7F0DFAE8 39080080 */ xori $t0, $t0, 0x80 +/* 11461C 7F0DFAEC 000E582A */ slt $t3, $zero, $t6 +/* 114620 7F0DFAF0 000C4980 */ sll $t1, $t4, 6 +/* 114624 7F0DFAF4 AFAA028C */ sw $t2, 0x28c($sp) +/* 114628 7F0DFAF8 03296825 */ or $t5, $t9, $t1 +/* 11462C 7F0DFAFC 000BC100 */ sll $t8, $t3, 4 +/* 114630 7F0DFB00 2D080001 */ sltiu $t0, $t0, 1 +/* 114634 7F0DFB04 AFAC0048 */ sw $t4, 0x48($sp) +/* 114638 7F0DFB08 00086080 */ sll $t4, $t0, 2 +/* 11463C 7F0DFB0C 01B85025 */ or $t2, $t5, $t8 +/* 114640 7F0DFB10 014C7825 */ or $t7, $t2, $t4 +/* 114644 7F0DFB14 35F90002 */ ori $t9, $t7, 2 +/* 114648 7F0DFB18 0010482A */ slt $t1, $zero, $s0 +/* 11464C 7F0DFB1C 03298825 */ or $s1, $t9, $t1 +/* 114650 7F0DFB20 322E00FF */ andi $t6, $s1, 0xff +/* 114654 7F0DFB24 10000B35 */ b .L7F0E27FC +/* 114658 7F0DFB28 01C08825 */ move $s1, $t6 +spectrum_op_ED_65: +/* 11465C 7F0DFB2C 8FAB028C */ lw $t3, 0x28c($sp) +/* 114660 7F0DFB30 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 114664 7F0DFB34 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 114668 7F0DFB38 97AA0292 */ lhu $t2, 0x292($sp) +/* 11466C 7F0DFB3C 256D0004 */ addiu $t5, $t3, 4 +/* 114670 7F0DFB40 AFAD028C */ sw $t5, 0x28c($sp) +/* 114674 7F0DFB44 25A80006 */ addiu $t0, $t5, 6 +/* 114678 7F0DFB48 AFA8028C */ sw $t0, 0x28c($sp) +/* 11467C 7F0DFB4C 018A4821 */ addu $t1, $t4, $t2 +/* 114680 7F0DFB50 912E0001 */ lbu $t6, 1($t1) +/* 114684 7F0DFB54 014C7821 */ addu $t7, $t2, $t4 +/* 114688 7F0DFB58 91F90000 */ lbu $t9, ($t7) +/* 11468C 7F0DFB5C 000E5A00 */ sll $t3, $t6, 8 +/* 114690 7F0DFB60 25580002 */ addiu $t8, $t2, 2 +/* 114694 7F0DFB64 032B6825 */ or $t5, $t9, $t3 +/* 114698 7F0DFB68 A7AD0298 */ sh $t5, 0x298($sp) +/* 11469C 7F0DFB6C 10000B23 */ b .L7F0E27FC +/* 1146A0 7F0DFB70 A7B80292 */ sh $t8, 0x292($sp) +spectrum_op_ED_66: +/* 1146A4 7F0DFB74 8FA8028C */ lw $t0, 0x28c($sp) +/* 1146A8 7F0DFB78 A3A0029B */ sb $zero, 0x29b($sp) +/* 1146AC 7F0DFB7C 250F0004 */ addiu $t7, $t0, 4 +/* 1146B0 7F0DFB80 10000B1E */ b .L7F0E27FC +/* 1146B4 7F0DFB84 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_ED_67: +/* 1146B8 7F0DFB88 8FAC028C */ lw $t4, 0x28c($sp) +/* 1146BC 7F0DFB8C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1146C0 7F0DFB90 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1146C4 7F0DFB94 00167200 */ sll $t6, $s6, 8 +/* 1146C8 7F0DFB98 01D7C825 */ or $t9, $t6, $s7 +/* 1146CC 7F0DFB9C 2589000E */ addiu $t1, $t4, 0xe +/* 1146D0 7F0DFBA0 AFA9028C */ sw $t1, 0x28c($sp) +/* 1146D4 7F0DFBA4 032B6821 */ addu $t5, $t9, $t3 +/* 1146D8 7F0DFBA8 91AA0000 */ lbu $t2, ($t5) +/* 1146DC 7F0DFBAC 00104100 */ sll $t0, $s0, 4 +/* 1146E0 7F0DFBB0 320900F0 */ andi $t1, $s0, 0xf0 +/* 1146E4 7F0DFBB4 0016CA00 */ sll $t9, $s6, 8 +/* 1146E8 7F0DFBB8 314C000F */ andi $t4, $t2, 0xf +/* 1146EC 7F0DFBBC 012C8025 */ or $s0, $t1, $t4 +/* 1146F0 7F0DFBC0 03375825 */ or $t3, $t9, $s7 +/* 1146F4 7F0DFBC4 000AC103 */ sra $t8, $t2, 4 +/* 1146F8 7F0DFBC8 01187825 */ or $t7, $t0, $t8 +/* 1146FC 7F0DFBCC 320E00FF */ andi $t6, $s0, 0xff +/* 114700 7F0DFBD0 29615B00 */ slti $at, $t3, 0x5b00 +/* 114704 7F0DFBD4 A3AF00A4 */ sb $t7, 0xa4($sp) +/* 114708 7F0DFBD8 01C08025 */ move $s0, $t6 +/* 11470C 7F0DFBDC 14200009 */ bnez $at, .L7F0DFC04 +/* 114710 7F0DFBE0 A3AA00A5 */ sb $t2, 0xa5($sp) +/* 114714 7F0DFBE4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114718 7F0DFBE8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 11471C 7F0DFBEC 01E06825 */ move $t5, $t7 +/* 114720 7F0DFBF0 0016C200 */ sll $t8, $s6, 8 +/* 114724 7F0DFBF4 03177825 */ or $t7, $t8, $s7 +/* 114728 7F0DFBF8 010F5021 */ addu $t2, $t0, $t7 +/* 11472C 7F0DFBFC 1000002B */ b .L7F0DFCAC +/* 114730 7F0DFC00 A14D0000 */ sb $t5, ($t2) +.L7F0DFC04: +/* 114734 7F0DFC04 00164A00 */ sll $t1, $s6, 8 +/* 114738 7F0DFC08 01376025 */ or $t4, $t1, $s7 +/* 11473C 7F0DFC0C 29815800 */ slti $at, $t4, 0x5800 +/* 114740 7F0DFC10 14200010 */ bnez $at, .L7F0DFC54 +/* 114744 7F0DFC14 00165A00 */ sll $t3, $s6, 8 +/* 114748 7F0DFC18 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 11474C 7F0DFC1C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 114750 7F0DFC20 93AE00A4 */ lbu $t6, 0xa4($sp) +/* 114754 7F0DFC24 00165A00 */ sll $t3, $s6, 8 +/* 114758 7F0DFC28 0177C025 */ or $t8, $t3, $s7 +/* 11475C 7F0DFC2C 03384021 */ addu $t0, $t9, $t8 +/* 114760 7F0DFC30 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 114764 7F0DFC34 A10E0000 */ sb $t6, ($t0) +/* 114768 7F0DFC38 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11476C 7F0DFC3C 00165200 */ sll $t2, $s6, 8 +/* 114770 7F0DFC40 01574825 */ or $t1, $t2, $s7 +/* 114774 7F0DFC44 240F0001 */ li $t7, 1 +/* 114778 7F0DFC48 01A96021 */ addu $t4, $t5, $t1 +/* 11477C 7F0DFC4C 10000017 */ b .L7F0DFCAC +/* 114780 7F0DFC50 A18FA800 */ sb $t7, -0x5800($t4) +.L7F0DFC54: +/* 114784 7F0DFC54 0177C825 */ or $t9, $t3, $s7 +/* 114788 7F0DFC58 2B214000 */ slti $at, $t9, 0x4000 +/* 11478C 7F0DFC5C 14200013 */ bnez $at, .L7F0DFCAC +/* 114790 7F0DFC60 93B800A4 */ lbu $t8, 0xa4($sp) +/* 114794 7F0DFC64 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114798 7F0DFC68 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11479C 7F0DFC6C 00164200 */ sll $t0, $s6, 8 +/* 1147A0 7F0DFC70 01175025 */ or $t2, $t0, $s7 +/* 1147A4 7F0DFC74 01CA6821 */ addu $t5, $t6, $t2 +/* 1147A8 7F0DFC78 A1B80000 */ sb $t8, ($t5) +/* 1147AC 7F0DFC7C 00167A00 */ sll $t7, $s6, 8 +/* 1147B0 7F0DFC80 01F76025 */ or $t4, $t7, $s7 +/* 1147B4 7F0DFC84 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 1147B8 7F0DFC88 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 1147BC 7F0DFC8C 318B1800 */ andi $t3, $t4, 0x1800 +/* 1147C0 7F0DFC90 01177025 */ or $t6, $t0, $s7 +/* 1147C4 7F0DFC94 31CA00FF */ andi $t2, $t6, 0xff +/* 1147C8 7F0DFC98 000BC8C3 */ sra $t9, $t3, 3 +/* 1147CC 7F0DFC9C 032AC025 */ or $t8, $t9, $t2 +/* 1147D0 7F0DFCA0 24090001 */ li $t1, 1 +/* 1147D4 7F0DFCA4 01B87821 */ addu $t7, $t5, $t8 +/* 1147D8 7F0DFCA8 A1E90000 */ sb $t1, ($t7) +.L7F0DFCAC: +/* 1147DC 7F0DFCAC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 1147E0 7F0DFCB0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1147E4 7F0DFCB4 2E0C0001 */ sltiu $t4, $s0, 1 +/* 1147E8 7F0DFCB8 AFAC0048 */ sw $t4, 0x48($sp) +/* 1147EC 7F0DFCBC 02184821 */ addu $t1, $s0, $t8 +/* 1147F0 7F0DFCC0 912F0000 */ lbu $t7, ($t1) +/* 1147F4 7F0DFCC4 322B0001 */ andi $t3, $s1, 1 +/* 1147F8 7F0DFCC8 320800A8 */ andi $t0, $s0, 0xa8 +/* 1147FC 7F0DFCCC 01687025 */ or $t6, $t3, $t0 +/* 114800 7F0DFCD0 000C5180 */ sll $t2, $t4, 6 +/* 114804 7F0DFCD4 01CA6825 */ or $t5, $t6, $t2 +/* 114808 7F0DFCD8 01ED8825 */ or $s1, $t7, $t5 +/* 11480C 7F0DFCDC 322C00FF */ andi $t4, $s1, 0xff +/* 114810 7F0DFCE0 10000AC6 */ b .L7F0E27FC +/* 114814 7F0DFCE4 01808825 */ move $s1, $t4 +spectrum_op_ED_68: +/* 114818 7F0DFCE8 8FAB028C */ lw $t3, 0x28c($sp) +/* 11481C 7F0DFCEC 02402825 */ move $a1, $s2 +/* 114820 7F0DFCF0 02603025 */ move $a2, $s3 +/* 114824 7F0DFCF4 25640008 */ addiu $a0, $t3, 8 +/* 114828 7F0DFCF8 0FC34DB6 */ jal spectrum_input_handling +/* 11482C 7F0DFCFC AFA4028C */ sw $a0, 0x28c($sp) +/* 114830 7F0DFD00 8FB9028C */ lw $t9, 0x28c($sp) +/* 114834 7F0DFD04 304EFFFF */ andi $t6, $v0, 0xffff +/* 114838 7F0DFD08 000E5203 */ sra $t2, $t6, 8 +/* 11483C 7F0DFD0C A7A200A2 */ sh $v0, 0xa2($sp) +/* 114840 7F0DFD10 032AC021 */ addu $t8, $t9, $t2 +/* 114844 7F0DFD14 93B700A3 */ lbu $s7, 0xa3($sp) +/* 114848 7F0DFD18 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 11484C 7F0DFD1C 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114850 7F0DFD20 2EE90001 */ sltiu $t1, $s7, 1 +/* 114854 7F0DFD24 AFA90048 */ sw $t1, 0x48($sp) +/* 114858 7F0DFD28 AFB8028C */ sw $t8, 0x28c($sp) +/* 11485C 7F0DFD2C 02F95021 */ addu $t2, $s7, $t9 +/* 114860 7F0DFD30 91580000 */ lbu $t8, ($t2) +/* 114864 7F0DFD34 322F0001 */ andi $t7, $s1, 1 +/* 114868 7F0DFD38 32ED00A8 */ andi $t5, $s7, 0xa8 +/* 11486C 7F0DFD3C 01ED6025 */ or $t4, $t7, $t5 +/* 114870 7F0DFD40 00094180 */ sll $t0, $t1, 6 +/* 114874 7F0DFD44 01887025 */ or $t6, $t4, $t0 +/* 114878 7F0DFD48 030E8825 */ or $s1, $t8, $t6 +/* 11487C 7F0DFD4C 322900FF */ andi $t1, $s1, 0xff +/* 114880 7F0DFD50 10000AAA */ b .L7F0E27FC +/* 114884 7F0DFD54 01208825 */ move $s1, $t1 +spectrum_op_ED_69: +/* 114888 7F0DFD58 8FAF028C */ lw $t7, 0x28c($sp) +/* 11488C 7F0DFD5C 02402825 */ move $a1, $s2 +/* 114890 7F0DFD60 02603025 */ move $a2, $s3 +/* 114894 7F0DFD64 25E40008 */ addiu $a0, $t7, 8 +/* 114898 7F0DFD68 AFA4028C */ sw $a0, 0x28c($sp) +/* 11489C 7F0DFD6C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1148A0 7F0DFD70 02E03825 */ move $a3, $s7 +/* 1148A4 7F0DFD74 8FAB028C */ lw $t3, 0x28c($sp) +/* 1148A8 7F0DFD78 AFA20048 */ sw $v0, 0x48($sp) +/* 1148AC 7F0DFD7C 01624021 */ addu $t0, $t3, $v0 +/* 1148B0 7F0DFD80 10000A9E */ b .L7F0E27FC +/* 1148B4 7F0DFD84 AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_ED_6A: +/* 1148B8 7F0DFD88 0016C200 */ sll $t8, $s6, 8 +/* 1148BC 7F0DFD8C 03177025 */ or $t6, $t8, $s7 +/* 1148C0 7F0DFD90 00164A00 */ sll $t1, $s6, 8 +/* 1148C4 7F0DFD94 01377825 */ or $t7, $t1, $s7 +/* 1148C8 7F0DFD98 31CDFFFF */ andi $t5, $t6, 0xffff +/* 1148CC 7F0DFD9C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1148D0 7F0DFDA0 01ED5821 */ addu $t3, $t7, $t5 +/* 1148D4 7F0DFDA4 322C0001 */ andi $t4, $s1, 1 +/* 1148D8 7F0DFDA8 016C4021 */ addu $t0, $t3, $t4 +/* 1148DC 7F0DFDAC 272A000B */ addiu $t2, $t9, 0xb +/* 1148E0 7F0DFDB0 0008C202 */ srl $t8, $t0, 8 +/* 1148E4 7F0DFDB4 AFAA028C */ sw $t2, 0x28c($sp) +/* 1148E8 7F0DFDB8 330900A8 */ andi $t1, $t8, 0xa8 +/* 1148EC 7F0DFDBC 3119FFFF */ andi $t9, $t0, 0xffff +/* 1148F0 7F0DFDC0 00087C02 */ srl $t7, $t0, 0x10 +/* 1148F4 7F0DFDC4 00165A00 */ sll $t3, $s6, 8 +/* 1148F8 7F0DFDC8 01776025 */ or $t4, $t3, $s7 +/* 1148FC 7F0DFDCC 012F6825 */ or $t5, $t1, $t7 +/* 114900 7F0DFDD0 2F2A0001 */ sltiu $t2, $t9, 1 +/* 114904 7F0DFDD4 31990FFF */ andi $t9, $t4, 0xfff +/* 114908 7F0DFDD8 31C90FFF */ andi $t1, $t6, 0xfff +/* 11490C 7F0DFDDC 03297821 */ addu $t7, $t9, $t1 +/* 114910 7F0DFDE0 322B0001 */ andi $t3, $s1, 1 +/* 114914 7F0DFDE4 01EB6021 */ addu $t4, $t7, $t3 +/* 114918 7F0DFDE8 24010FFF */ li $at, 4095 +/* 11491C 7F0DFDEC 002CC02A */ slt $t8, $at, $t4 +/* 114920 7F0DFDF0 0018C900 */ sll $t9, $t8, 4 +/* 114924 7F0DFDF4 01B94825 */ or $t1, $t5, $t9 +/* 114928 7F0DFDF8 00167A00 */ sll $t7, $s6, 8 +/* 11492C 7F0DFDFC 01F75825 */ or $t3, $t7, $s7 +/* 114930 7F0DFE00 0016C200 */ sll $t8, $s6, 8 +/* 114934 7F0DFE04 03176827 */ nor $t5, $t8, $s7 +/* 114938 7F0DFE08 01C0C825 */ move $t9, $t6 +/* 11493C 7F0DFE0C 01B97826 */ xor $t7, $t5, $t9 +/* 114940 7F0DFE10 01686026 */ xor $t4, $t3, $t0 +/* 114944 7F0DFE14 01EC5824 */ and $t3, $t7, $t4 +/* 114948 7F0DFE18 31788000 */ andi $t8, $t3, 0x8000 +/* 11494C 7F0DFE1C A7AE00A0 */ sh $t6, 0xa0($sp) +/* 114950 7F0DFE20 00187342 */ srl $t6, $t8, 0xd +/* 114954 7F0DFE24 012E6825 */ or $t5, $t1, $t6 +/* 114958 7F0DFE28 000AC980 */ sll $t9, $t2, 6 +/* 11495C 7F0DFE2C 01B98825 */ or $s1, $t5, $t9 +/* 114960 7F0DFE30 0008B202 */ srl $s6, $t0, 8 +/* 114964 7F0DFE34 32CB00FF */ andi $t3, $s6, 0xff +/* 114968 7F0DFE38 362F0002 */ ori $t7, $s1, 2 +/* 11496C 7F0DFE3C AFA8009C */ sw $t0, 0x9c($sp) +/* 114970 7F0DFE40 93B7009F */ lbu $s7, 0x9f($sp) +/* 114974 7F0DFE44 31F100FF */ andi $s1, $t7, 0xff +/* 114978 7F0DFE48 0160B025 */ move $s6, $t3 +/* 11497C 7F0DFE4C 10000A6B */ b .L7F0E27FC +/* 114980 7F0DFE50 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_ED_6B: +/* 114984 7F0DFE54 8FB8028C */ lw $t8, 0x28c($sp) +/* 114988 7F0DFE58 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11498C 7F0DFE5C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 114990 7F0DFE60 97AE0298 */ lhu $t6, 0x298($sp) +/* 114994 7F0DFE64 27090010 */ addiu $t1, $t8, 0x10 +/* 114998 7F0DFE68 AFA9028C */ sw $t1, 0x28c($sp) +/* 11499C 7F0DFE6C 014E7821 */ addu $t7, $t2, $t6 +/* 1149A0 7F0DFE70 91EC0001 */ lbu $t4, 1($t7) +/* 1149A4 7F0DFE74 01CA6821 */ addu $t5, $t6, $t2 +/* 1149A8 7F0DFE78 91B90000 */ lbu $t9, ($t5) +/* 1149AC 7F0DFE7C 000C4200 */ sll $t0, $t4, 8 +/* 1149B0 7F0DFE80 25D80002 */ addiu $t8, $t6, 2 +/* 1149B4 7F0DFE84 03285825 */ or $t3, $t9, $t0 +/* 1149B8 7F0DFE88 3169FFFF */ andi $t1, $t3, 0xffff +/* 1149BC 7F0DFE8C A7AB009A */ sh $t3, 0x9a($sp) +/* 1149C0 7F0DFE90 A7B80298 */ sh $t8, 0x298($sp) +/* 1149C4 7F0DFE94 012A6821 */ addu $t5, $t1, $t2 +/* 1149C8 7F0DFE98 91B70000 */ lbu $s7, ($t5) +/* 1149CC 7F0DFE9C 10000A57 */ b .L7F0E27FC +/* 1149D0 7F0DFEA0 91B60001 */ lbu $s6, 1($t5) +spectrum_op_ED_6C: +/* 1149D4 7F0DFEA4 00108023 */ negu $s0, $s0 +/* 1149D8 7F0DFEA8 321900FF */ andi $t9, $s0, 0xff +/* 1149DC 7F0DFEAC 8FAF028C */ lw $t7, 0x28c($sp) +/* 1149E0 7F0DFEB0 2F280001 */ sltiu $t0, $t9, 1 +/* 1149E4 7F0DFEB4 332A000F */ andi $t2, $t9, 0xf +/* 1149E8 7F0DFEB8 03208025 */ move $s0, $t9 +/* 1149EC 7F0DFEBC 332B00A8 */ andi $t3, $t9, 0xa8 +/* 1149F0 7F0DFEC0 25EC0004 */ addiu $t4, $t7, 4 +/* 1149F4 7F0DFEC4 3B390080 */ xori $t9, $t9, 0x80 +/* 1149F8 7F0DFEC8 000A682A */ slt $t5, $zero, $t2 +/* 1149FC 7F0DFECC 0008C180 */ sll $t8, $t0, 6 +/* 114A00 7F0DFED0 AFAC028C */ sw $t4, 0x28c($sp) +/* 114A04 7F0DFED4 01784825 */ or $t1, $t3, $t8 +/* 114A08 7F0DFED8 000D7900 */ sll $t7, $t5, 4 +/* 114A0C 7F0DFEDC 2F390001 */ sltiu $t9, $t9, 1 +/* 114A10 7F0DFEE0 AFA80048 */ sw $t0, 0x48($sp) +/* 114A14 7F0DFEE4 00194080 */ sll $t0, $t9, 2 +/* 114A18 7F0DFEE8 012F6025 */ or $t4, $t1, $t7 +/* 114A1C 7F0DFEEC 01887025 */ or $t6, $t4, $t0 +/* 114A20 7F0DFEF0 35CB0002 */ ori $t3, $t6, 2 +/* 114A24 7F0DFEF4 0010C02A */ slt $t8, $zero, $s0 +/* 114A28 7F0DFEF8 01788825 */ or $s1, $t3, $t8 +/* 114A2C 7F0DFEFC 322A00FF */ andi $t2, $s1, 0xff +/* 114A30 7F0DFF00 10000A3E */ b .L7F0E27FC +/* 114A34 7F0DFF04 01408825 */ move $s1, $t2 +spectrum_op_ED_6D: +/* 114A38 7F0DFF08 8FAD028C */ lw $t5, 0x28c($sp) +/* 114A3C 7F0DFF0C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114A40 7F0DFF10 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 114A44 7F0DFF14 97AC0292 */ lhu $t4, 0x292($sp) +/* 114A48 7F0DFF18 25A90004 */ addiu $t1, $t5, 4 +/* 114A4C 7F0DFF1C AFA9028C */ sw $t1, 0x28c($sp) +/* 114A50 7F0DFF20 25390006 */ addiu $t9, $t1, 6 +/* 114A54 7F0DFF24 AFB9028C */ sw $t9, 0x28c($sp) +/* 114A58 7F0DFF28 010CC021 */ addu $t8, $t0, $t4 +/* 114A5C 7F0DFF2C 930A0001 */ lbu $t2, 1($t8) +/* 114A60 7F0DFF30 01887021 */ addu $t6, $t4, $t0 +/* 114A64 7F0DFF34 91CB0000 */ lbu $t3, ($t6) +/* 114A68 7F0DFF38 000A6A00 */ sll $t5, $t2, 8 +/* 114A6C 7F0DFF3C 258F0002 */ addiu $t7, $t4, 2 +/* 114A70 7F0DFF40 016D4825 */ or $t1, $t3, $t5 +/* 114A74 7F0DFF44 A7A90298 */ sh $t1, 0x298($sp) +/* 114A78 7F0DFF48 10000A2C */ b .L7F0E27FC +/* 114A7C 7F0DFF4C A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_ED_6E: +/* 114A80 7F0DFF50 8FB9028C */ lw $t9, 0x28c($sp) +/* 114A84 7F0DFF54 24080001 */ li $t0, 1 +/* 114A88 7F0DFF58 A3A8029B */ sb $t0, 0x29b($sp) +/* 114A8C 7F0DFF5C 272E0004 */ addiu $t6, $t9, 4 +/* 114A90 7F0DFF60 10000A26 */ b .L7F0E27FC +/* 114A94 7F0DFF64 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_6F: +/* 114A98 7F0DFF68 8FB8028C */ lw $t8, 0x28c($sp) +/* 114A9C 7F0DFF6C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 114AA0 7F0DFF70 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 114AA4 7F0DFF74 00165A00 */ sll $t3, $s6, 8 +/* 114AA8 7F0DFF78 01776825 */ or $t5, $t3, $s7 +/* 114AAC 7F0DFF7C 270A0005 */ addiu $t2, $t8, 5 +/* 114AB0 7F0DFF80 AFAA028C */ sw $t2, 0x28c($sp) +/* 114AB4 7F0DFF84 01A96021 */ addu $t4, $t5, $t1 +/* 114AB8 7F0DFF88 918F0000 */ lbu $t7, ($t4) +/* 114ABC 7F0DFF8C 320E000F */ andi $t6, $s0, 0xf +/* 114AC0 7F0DFF90 320A00F0 */ andi $t2, $s0, 0xf0 +/* 114AC4 7F0DFF94 00166A00 */ sll $t5, $s6, 8 +/* 114AC8 7F0DFF98 000FC103 */ sra $t8, $t7, 4 +/* 114ACC 7F0DFF9C 01588025 */ or $s0, $t2, $t8 +/* 114AD0 7F0DFFA0 01B74825 */ or $t1, $t5, $s7 +/* 114AD4 7F0DFFA4 000FC900 */ sll $t9, $t7, 4 +/* 114AD8 7F0DFFA8 01D94025 */ or $t0, $t6, $t9 +/* 114ADC 7F0DFFAC 320B00FF */ andi $t3, $s0, 0xff +/* 114AE0 7F0DFFB0 29215B00 */ slti $at, $t1, 0x5b00 +/* 114AE4 7F0DFFB4 A3A80098 */ sb $t0, 0x98($sp) +/* 114AE8 7F0DFFB8 01608025 */ move $s0, $t3 +/* 114AEC 7F0DFFBC 14200009 */ bnez $at, .L7F0DFFE4 +/* 114AF0 7F0DFFC0 A3AF0099 */ sb $t7, 0x99($sp) +/* 114AF4 7F0DFFC4 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114AF8 7F0DFFC8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114AFC 7F0DFFCC 01006025 */ move $t4, $t0 +/* 114B00 7F0DFFD0 0016CA00 */ sll $t9, $s6, 8 +/* 114B04 7F0DFFD4 03374025 */ or $t0, $t9, $s7 +/* 114B08 7F0DFFD8 01C87821 */ addu $t7, $t6, $t0 +/* 114B0C 7F0DFFDC 1000002B */ b .L7F0E008C +/* 114B10 7F0DFFE0 A1EC0000 */ sb $t4, ($t7) +.L7F0DFFE4: +/* 114B14 7F0DFFE4 00165200 */ sll $t2, $s6, 8 +/* 114B18 7F0DFFE8 0157C025 */ or $t8, $t2, $s7 +/* 114B1C 7F0DFFEC 2B015800 */ slti $at, $t8, 0x5800 +/* 114B20 7F0DFFF0 14200010 */ bnez $at, .L7F0E0034 +/* 114B24 7F0DFFF4 00164A00 */ sll $t1, $s6, 8 +/* 114B28 7F0DFFF8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 114B2C 7F0DFFFC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 114B30 7F0E0000 93AB0098 */ lbu $t3, 0x98($sp) +/* 114B34 7F0E0004 00164A00 */ sll $t1, $s6, 8 +/* 114B38 7F0E0008 0137C825 */ or $t9, $t1, $s7 +/* 114B3C 7F0E000C 01B97021 */ addu $t6, $t5, $t9 +/* 114B40 7F0E0010 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114B44 7F0E0014 A1CB0000 */ sb $t3, ($t6) +/* 114B48 7F0E0018 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114B4C 7F0E001C 00167A00 */ sll $t7, $s6, 8 +/* 114B50 7F0E0020 01F75025 */ or $t2, $t7, $s7 +/* 114B54 7F0E0024 24080001 */ li $t0, 1 +/* 114B58 7F0E0028 018AC021 */ addu $t8, $t4, $t2 +/* 114B5C 7F0E002C 10000017 */ b .L7F0E008C +/* 114B60 7F0E0030 A308A800 */ sb $t0, -0x5800($t8) +.L7F0E0034: +/* 114B64 7F0E0034 01376825 */ or $t5, $t1, $s7 +/* 114B68 7F0E0038 29A14000 */ slti $at, $t5, 0x4000 +/* 114B6C 7F0E003C 14200013 */ bnez $at, .L7F0E008C +/* 114B70 7F0E0040 93B90098 */ lbu $t9, 0x98($sp) +/* 114B74 7F0E0044 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114B78 7F0E0048 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114B7C 7F0E004C 00167200 */ sll $t6, $s6, 8 +/* 114B80 7F0E0050 01D77825 */ or $t7, $t6, $s7 +/* 114B84 7F0E0054 016F6021 */ addu $t4, $t3, $t7 +/* 114B88 7F0E0058 A1990000 */ sb $t9, ($t4) +/* 114B8C 7F0E005C 00164200 */ sll $t0, $s6, 8 +/* 114B90 7F0E0060 0117C025 */ or $t8, $t0, $s7 +/* 114B94 7F0E0064 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114B98 7F0E0068 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114B9C 7F0E006C 33091800 */ andi $t1, $t8, 0x1800 +/* 114BA0 7F0E0070 01D75825 */ or $t3, $t6, $s7 +/* 114BA4 7F0E0074 316F00FF */ andi $t7, $t3, 0xff +/* 114BA8 7F0E0078 000968C3 */ sra $t5, $t1, 3 +/* 114BAC 7F0E007C 01AFC825 */ or $t9, $t5, $t7 +/* 114BB0 7F0E0080 240A0001 */ li $t2, 1 +/* 114BB4 7F0E0084 01994021 */ addu $t0, $t4, $t9 +/* 114BB8 7F0E0088 A10A0000 */ sb $t2, ($t0) +.L7F0E008C: +/* 114BBC 7F0E008C 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 114BC0 7F0E0090 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114BC4 7F0E0094 2E180001 */ sltiu $t8, $s0, 1 +/* 114BC8 7F0E0098 AFB80048 */ sw $t8, 0x48($sp) +/* 114BCC 7F0E009C 02195021 */ addu $t2, $s0, $t9 +/* 114BD0 7F0E00A0 91480000 */ lbu $t0, ($t2) +/* 114BD4 7F0E00A4 32290001 */ andi $t1, $s1, 1 +/* 114BD8 7F0E00A8 320E00A8 */ andi $t6, $s0, 0xa8 +/* 114BDC 7F0E00AC 012E5825 */ or $t3, $t1, $t6 +/* 114BE0 7F0E00B0 00187980 */ sll $t7, $t8, 6 +/* 114BE4 7F0E00B4 016F6025 */ or $t4, $t3, $t7 +/* 114BE8 7F0E00B8 010C8825 */ or $s1, $t0, $t4 +/* 114BEC 7F0E00BC 323800FF */ andi $t8, $s1, 0xff +/* 114BF0 7F0E00C0 100009CE */ b .L7F0E27FC +/* 114BF4 7F0E00C4 03008825 */ move $s1, $t8 +spectrum_op_ED_70: +/* 114BF8 7F0E00C8 8FA9028C */ lw $t1, 0x28c($sp) +/* 114BFC 7F0E00CC 02402825 */ move $a1, $s2 +/* 114C00 7F0E00D0 02603025 */ move $a2, $s3 +/* 114C04 7F0E00D4 25240008 */ addiu $a0, $t1, 8 +/* 114C08 7F0E00D8 0FC34DB6 */ jal spectrum_input_handling +/* 114C0C 7F0E00DC AFA4028C */ sw $a0, 0x28c($sp) +/* 114C10 7F0E00E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 114C14 7F0E00E4 3058FFFF */ andi $t8, $v0, 0xffff +/* 114C18 7F0E00E8 00187A03 */ sra $t7, $t8, 8 +/* 114C1C 7F0E00EC 016FC821 */ addu $t9, $t3, $t7 +/* 114C20 7F0E00F0 AFB9028C */ sw $t9, 0x28c($sp) +/* 114C24 7F0E00F4 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 114C28 7F0E00F8 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114C2C 7F0E00FC 330A00FF */ andi $t2, $t8, 0xff +/* 114C30 7F0E0100 330900A8 */ andi $t1, $t8, 0xa8 +/* 114C34 7F0E0104 2D480001 */ sltiu $t0, $t2, 1 +/* 114C38 7F0E0108 A3B80097 */ sb $t8, 0x97($sp) +/* 114C3C 7F0E010C 322C0001 */ andi $t4, $s1, 1 +/* 114C40 7F0E0110 01897025 */ or $t6, $t4, $t1 +/* 114C44 7F0E0114 AFA80048 */ sw $t0, 0x48($sp) +/* 114C48 7F0E0118 A7A20094 */ sh $v0, 0x94($sp) +/* 114C4C 7F0E011C 0159C021 */ addu $t8, $t2, $t9 +/* 114C50 7F0E0120 930C0000 */ lbu $t4, ($t8) +/* 114C54 7F0E0124 00085980 */ sll $t3, $t0, 6 +/* 114C58 7F0E0128 01CB7825 */ or $t7, $t6, $t3 +/* 114C5C 7F0E012C 018F8825 */ or $s1, $t4, $t7 +/* 114C60 7F0E0130 322900FF */ andi $t1, $s1, 0xff +/* 114C64 7F0E0134 100009B1 */ b .L7F0E27FC +/* 114C68 7F0E0138 01208825 */ move $s1, $t1 +spectrum_op_ED_71: +/* 114C6C 7F0E013C 8FA8028C */ lw $t0, 0x28c($sp) +/* 114C70 7F0E0140 02402825 */ move $a1, $s2 +/* 114C74 7F0E0144 02603025 */ move $a2, $s3 +/* 114C78 7F0E0148 25040008 */ addiu $a0, $t0, 8 +/* 114C7C 7F0E014C AFA4028C */ sw $a0, 0x28c($sp) +/* 114C80 7F0E0150 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 114C84 7F0E0154 00003825 */ move $a3, $zero +/* 114C88 7F0E0158 8FAB028C */ lw $t3, 0x28c($sp) +/* 114C8C 7F0E015C AFA20048 */ sw $v0, 0x48($sp) +/* 114C90 7F0E0160 01625021 */ addu $t2, $t3, $v0 +/* 114C94 7F0E0164 100009A5 */ b .L7F0E27FC +/* 114C98 7F0E0168 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_72: +/* 114C9C 7F0E016C 97AC0292 */ lhu $t4, 0x292($sp) +/* 114CA0 7F0E0170 8FB9028C */ lw $t9, 0x28c($sp) +/* 114CA4 7F0E0174 00167A00 */ sll $t7, $s6, 8 +/* 114CA8 7F0E0178 01F74825 */ or $t1, $t7, $s7 +/* 114CAC 7F0E017C 322E0001 */ andi $t6, $s1, 1 +/* 114CB0 7F0E0180 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 114CB4 7F0E0184 012C4023 */ subu $t0, $t1, $t4 +/* 114CB8 7F0E0188 010E5823 */ subu $t3, $t0, $t6 +/* 114CBC 7F0E018C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 114CC0 7F0E0190 2738000B */ addiu $t8, $t9, 0xb +/* 114CC4 7F0E0194 AFB8028C */ sw $t8, 0x28c($sp) +/* 114CC8 7F0E0198 01616824 */ and $t5, $t3, $at +/* 114CCC 7F0E019C 000DC202 */ srl $t8, $t5, 8 +/* 114CD0 7F0E01A0 330F00A8 */ andi $t7, $t8, 0xa8 +/* 114CD4 7F0E01A4 000D4C02 */ srl $t1, $t5, 0x10 +/* 114CD8 7F0E01A8 01E94025 */ or $t0, $t7, $t1 +/* 114CDC 7F0E01AC 31AAFFFF */ andi $t2, $t5, 0xffff +/* 114CE0 7F0E01B0 2D590001 */ sltiu $t9, $t2, 1 +/* 114CE4 7F0E01B4 322A0001 */ andi $t2, $s1, 1 +/* 114CE8 7F0E01B8 350E0002 */ ori $t6, $t0, 2 +/* 114CEC 7F0E01BC 00164A00 */ sll $t1, $s6, 8 +/* 114CF0 7F0E01C0 318B0FFF */ andi $t3, $t4, 0xfff +/* 114CF4 7F0E01C4 016A7821 */ addu $t7, $t3, $t2 +/* 114CF8 7F0E01C8 01374025 */ or $t0, $t1, $s7 +/* 114CFC 7F0E01CC 310B0FFF */ andi $t3, $t0, 0xfff +/* 114D00 7F0E01D0 016F502A */ slt $t2, $t3, $t7 +/* 114D04 7F0E01D4 000A4900 */ sll $t1, $t2, 4 +/* 114D08 7F0E01D8 01C94025 */ or $t0, $t6, $t1 +/* 114D0C 7F0E01DC 00165A00 */ sll $t3, $s6, 8 +/* 114D10 7F0E01E0 01777825 */ or $t7, $t3, $s7 +/* 114D14 7F0E01E4 00167200 */ sll $t6, $s6, 8 +/* 114D18 7F0E01E8 01D74825 */ or $t1, $t6, $s7 +/* 114D1C 7F0E01EC 012D5826 */ xor $t3, $t1, $t5 +/* 114D20 7F0E01F0 01EC5026 */ xor $t2, $t7, $t4 +/* 114D24 7F0E01F4 014B7824 */ and $t7, $t2, $t3 +/* 114D28 7F0E01F8 A7AC0092 */ sh $t4, 0x92($sp) +/* 114D2C 7F0E01FC 31EC8000 */ andi $t4, $t7, 0x8000 +/* 114D30 7F0E0200 000C7342 */ srl $t6, $t4, 0xd +/* 114D34 7F0E0204 AFAD008C */ sw $t5, 0x8c($sp) +/* 114D38 7F0E0208 00196980 */ sll $t5, $t9, 6 +/* 114D3C 7F0E020C 010E4825 */ or $t1, $t0, $t6 +/* 114D40 7F0E0210 012D8825 */ or $s1, $t1, $t5 +/* 114D44 7F0E0214 362A0002 */ ori $t2, $s1, 2 +/* 114D48 7F0E0218 315100FF */ andi $s1, $t2, 0xff +/* 114D4C 7F0E021C 93B7008F */ lbu $s7, 0x8f($sp) +/* 114D50 7F0E0220 331600FF */ andi $s6, $t8, 0xff +/* 114D54 7F0E0224 10000975 */ b .L7F0E27FC +/* 114D58 7F0E0228 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_ED_73: +/* 114D5C 7F0E022C 8FAF028C */ lw $t7, 0x28c($sp) +/* 114D60 7F0E0230 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114D64 7F0E0234 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114D68 7F0E0238 97A80298 */ lhu $t0, 0x298($sp) +/* 114D6C 7F0E023C 25EC0010 */ addiu $t4, $t7, 0x10 +/* 114D70 7F0E0240 AFAC028C */ sw $t4, 0x28c($sp) +/* 114D74 7F0E0244 01C86821 */ addu $t5, $t6, $t0 +/* 114D78 7F0E0248 91AA0001 */ lbu $t2, 1($t5) +/* 114D7C 7F0E024C 010EC821 */ addu $t9, $t0, $t6 +/* 114D80 7F0E0250 93290000 */ lbu $t1, ($t9) +/* 114D84 7F0E0254 000A5A00 */ sll $t3, $t2, 8 +/* 114D88 7F0E0258 250F0002 */ addiu $t7, $t0, 2 +/* 114D8C 7F0E025C 012BC025 */ or $t8, $t1, $t3 +/* 114D90 7F0E0260 330CFFFF */ andi $t4, $t8, 0xffff +/* 114D94 7F0E0264 29815B00 */ slti $at, $t4, 0x5b00 +/* 114D98 7F0E0268 A7B8008A */ sh $t8, 0x8a($sp) +/* 114D9C 7F0E026C 14200007 */ bnez $at, .L7F0E028C +/* 114DA0 7F0E0270 A7AF0298 */ sh $t7, 0x298($sp) +/* 114DA4 7F0E0274 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114DA8 7F0E0278 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114DAC 7F0E027C 97B90292 */ lhu $t9, 0x292($sp) +/* 114DB0 7F0E0280 01CC6821 */ addu $t5, $t6, $t4 +/* 114DB4 7F0E0284 10000023 */ b .L7F0E0314 +/* 114DB8 7F0E0288 A1B90000 */ sb $t9, ($t5) +.L7F0E028C: +/* 114DBC 7F0E028C 97AA008A */ lhu $t2, 0x8a($sp) +/* 114DC0 7F0E0290 97B9008A */ lhu $t9, 0x8a($sp) +/* 114DC4 7F0E0294 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114DC8 7F0E0298 29415800 */ slti $at, $t2, 0x5800 +/* 114DCC 7F0E029C 5420000D */ bnezl $at, .L7F0E02D4 +/* 114DD0 7F0E02A0 2B214000 */ slti $at, $t9, 0x4000 +/* 114DD4 7F0E02A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114DD8 7F0E02A8 97A90292 */ lhu $t1, 0x292($sp) +/* 114DDC 7F0E02AC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 114DE0 7F0E02B0 016AC021 */ addu $t8, $t3, $t2 +/* 114DE4 7F0E02B4 A3090000 */ sb $t1, ($t8) +/* 114DE8 7F0E02B8 97AE008A */ lhu $t6, 0x8a($sp) +/* 114DEC 7F0E02BC 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 114DF0 7F0E02C0 24080001 */ li $t0, 1 +/* 114DF4 7F0E02C4 01EE6021 */ addu $t4, $t7, $t6 +/* 114DF8 7F0E02C8 10000012 */ b .L7F0E0314 +/* 114DFC 7F0E02CC A188A800 */ sb $t0, -0x5800($t4) +/* 114E00 7F0E02D0 2B214000 */ slti $at, $t9, 0x4000 +.L7F0E02D4: +/* 114E04 7F0E02D4 1420000F */ bnez $at, .L7F0E0314 +/* 114E08 7F0E02D8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114E0C 7F0E02DC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114E10 7F0E02E0 97AD0292 */ lhu $t5, 0x292($sp) +/* 114E14 7F0E02E4 24090001 */ li $t1, 1 +/* 114E18 7F0E02E8 01795021 */ addu $t2, $t3, $t9 +/* 114E1C 7F0E02EC A14D0000 */ sb $t5, ($t2) +/* 114E20 7F0E02F0 97B8008A */ lhu $t8, 0x8a($sp) +/* 114E24 7F0E02F4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 114E28 7F0E02F8 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 114E2C 7F0E02FC 330F1800 */ andi $t7, $t8, 0x1800 +/* 114E30 7F0E0300 000F70C3 */ sra $t6, $t7, 3 +/* 114E34 7F0E0304 330800FF */ andi $t0, $t8, 0xff +/* 114E38 7F0E0308 01C86025 */ or $t4, $t6, $t0 +/* 114E3C 7F0E030C 016CC821 */ addu $t9, $t3, $t4 +/* 114E40 7F0E0310 A3290000 */ sb $t1, ($t9) +.L7F0E0314: +/* 114E44 7F0E0314 97AD008A */ lhu $t5, 0x8a($sp) +/* 114E48 7F0E0318 97AB008A */ lhu $t3, 0x8a($sp) +/* 114E4C 7F0E031C 97AF0292 */ lhu $t7, 0x292($sp) +/* 114E50 7F0E0320 25AA0001 */ addiu $t2, $t5, 1 +/* 114E54 7F0E0324 29415B00 */ slti $at, $t2, 0x5b00 +/* 114E58 7F0E0328 14200007 */ bnez $at, .L7F0E0348 +/* 114E5C 7F0E032C 256C0001 */ addiu $t4, $t3, 1 +/* 114E60 7F0E0330 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114E64 7F0E0334 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114E68 7F0E0338 000FC203 */ sra $t8, $t7, 8 +/* 114E6C 7F0E033C 01CD4021 */ addu $t0, $t6, $t5 +/* 114E70 7F0E0340 1000092E */ b .L7F0E27FC +/* 114E74 7F0E0344 A1180001 */ sb $t8, 1($t0) +.L7F0E0348: +/* 114E78 7F0E0348 29815800 */ slti $at, $t4, 0x5800 +/* 114E7C 7F0E034C 1420000E */ bnez $at, .L7F0E0388 +/* 114E80 7F0E0350 97AC008A */ lhu $t4, 0x8a($sp) +/* 114E84 7F0E0354 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 114E88 7F0E0358 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 114E8C 7F0E035C 97A90292 */ lhu $t1, 0x292($sp) +/* 114E90 7F0E0360 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 114E94 7F0E0364 014B7821 */ addu $t7, $t2, $t3 +/* 114E98 7F0E0368 0009CA03 */ sra $t9, $t1, 8 +/* 114E9C 7F0E036C A1F90001 */ sb $t9, 1($t7) +/* 114EA0 7F0E0370 97B8008A */ lhu $t8, 0x8a($sp) +/* 114EA4 7F0E0374 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 114EA8 7F0E0378 240E0001 */ li $t6, 1 +/* 114EAC 7F0E037C 01B84021 */ addu $t0, $t5, $t8 +/* 114EB0 7F0E0380 1000091E */ b .L7F0E27FC +/* 114EB4 7F0E0384 A10EA801 */ sb $t6, -0x57ff($t0) +.L7F0E0388: +/* 114EB8 7F0E0388 25890001 */ addiu $t1, $t4, 1 +/* 114EBC 7F0E038C 29214000 */ slti $at, $t1, 0x4000 +/* 114EC0 7F0E0390 1420091A */ bnez $at, .L7F0E27FC +/* 114EC4 7F0E0394 97AA0292 */ lhu $t2, 0x292($sp) +/* 114EC8 7F0E0398 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 114ECC 7F0E039C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 114ED0 7F0E03A0 000A5A03 */ sra $t3, $t2, 8 +/* 114ED4 7F0E03A4 240D0001 */ li $t5, 1 +/* 114ED8 7F0E03A8 032C7821 */ addu $t7, $t9, $t4 +/* 114EDC 7F0E03AC A1EB0001 */ sb $t3, 1($t7) +/* 114EE0 7F0E03B0 97B8008A */ lhu $t8, 0x8a($sp) +/* 114EE4 7F0E03B4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114EE8 7F0E03B8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114EEC 7F0E03BC 270E0001 */ addiu $t6, $t8, 1 +/* 114EF0 7F0E03C0 31C81800 */ andi $t0, $t6, 0x1800 +/* 114EF4 7F0E03C4 000848C3 */ sra $t1, $t0, 3 +/* 114EF8 7F0E03C8 31CA00FF */ andi $t2, $t6, 0xff +/* 114EFC 7F0E03CC 012AC825 */ or $t9, $t1, $t2 +/* 114F00 7F0E03D0 01995821 */ addu $t3, $t4, $t9 +/* 114F04 7F0E03D4 10000909 */ b .L7F0E27FC +/* 114F08 7F0E03D8 A16D0000 */ sb $t5, ($t3) +spectrum_op_ED_74: +/* 114F0C 7F0E03DC 00108023 */ negu $s0, $s0 +/* 114F10 7F0E03E0 320800FF */ andi $t0, $s0, 0xff +/* 114F14 7F0E03E4 8FAF028C */ lw $t7, 0x28c($sp) +/* 114F18 7F0E03E8 2D0E0001 */ sltiu $t6, $t0, 1 +/* 114F1C 7F0E03EC 310D000F */ andi $t5, $t0, 0xf +/* 114F20 7F0E03F0 01008025 */ move $s0, $t0 +/* 114F24 7F0E03F4 310900A8 */ andi $t1, $t0, 0xa8 +/* 114F28 7F0E03F8 25F80004 */ addiu $t8, $t7, 4 +/* 114F2C 7F0E03FC 39080080 */ xori $t0, $t0, 0x80 +/* 114F30 7F0E0400 000D582A */ slt $t3, $zero, $t5 +/* 114F34 7F0E0404 000E6180 */ sll $t4, $t6, 6 +/* 114F38 7F0E0408 AFB8028C */ sw $t8, 0x28c($sp) +/* 114F3C 7F0E040C 012CC825 */ or $t9, $t1, $t4 +/* 114F40 7F0E0410 000B7900 */ sll $t7, $t3, 4 +/* 114F44 7F0E0414 2D080001 */ sltiu $t0, $t0, 1 +/* 114F48 7F0E0418 AFAE0048 */ sw $t6, 0x48($sp) +/* 114F4C 7F0E041C 00087080 */ sll $t6, $t0, 2 +/* 114F50 7F0E0420 032FC025 */ or $t8, $t9, $t7 +/* 114F54 7F0E0424 030E5025 */ or $t2, $t8, $t6 +/* 114F58 7F0E0428 35490002 */ ori $t1, $t2, 2 +/* 114F5C 7F0E042C 0010602A */ slt $t4, $zero, $s0 +/* 114F60 7F0E0430 012C8825 */ or $s1, $t1, $t4 +/* 114F64 7F0E0434 322D00FF */ andi $t5, $s1, 0xff +/* 114F68 7F0E0438 100008F0 */ b .L7F0E27FC +/* 114F6C 7F0E043C 01A08825 */ move $s1, $t5 +spectrum_op_ED_75: +/* 114F70 7F0E0440 8FAB028C */ lw $t3, 0x28c($sp) +/* 114F74 7F0E0444 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114F78 7F0E0448 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114F7C 7F0E044C 97B80292 */ lhu $t8, 0x292($sp) +/* 114F80 7F0E0450 25790004 */ addiu $t9, $t3, 4 +/* 114F84 7F0E0454 AFB9028C */ sw $t9, 0x28c($sp) +/* 114F88 7F0E0458 27280006 */ addiu $t0, $t9, 6 +/* 114F8C 7F0E045C AFA8028C */ sw $t0, 0x28c($sp) +/* 114F90 7F0E0460 01D86021 */ addu $t4, $t6, $t8 +/* 114F94 7F0E0464 918D0001 */ lbu $t5, 1($t4) +/* 114F98 7F0E0468 030E5021 */ addu $t2, $t8, $t6 +/* 114F9C 7F0E046C 91490000 */ lbu $t1, ($t2) +/* 114FA0 7F0E0470 000D5A00 */ sll $t3, $t5, 8 +/* 114FA4 7F0E0474 270F0002 */ addiu $t7, $t8, 2 +/* 114FA8 7F0E0478 012BC825 */ or $t9, $t1, $t3 +/* 114FAC 7F0E047C A7B90298 */ sh $t9, 0x298($sp) +/* 114FB0 7F0E0480 100008DE */ b .L7F0E27FC +/* 114FB4 7F0E0484 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_ED_76: +/* 114FB8 7F0E0488 8FA8028C */ lw $t0, 0x28c($sp) +/* 114FBC 7F0E048C 240E0002 */ li $t6, 2 +/* 114FC0 7F0E0490 A3AE029B */ sb $t6, 0x29b($sp) +/* 114FC4 7F0E0494 250A0004 */ addiu $t2, $t0, 4 +/* 114FC8 7F0E0498 100008D8 */ b .L7F0E27FC +/* 114FCC 7F0E049C AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_78: +/* 114FD0 7F0E04A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 114FD4 7F0E04A4 02402825 */ move $a1, $s2 +/* 114FD8 7F0E04A8 02603025 */ move $a2, $s3 +/* 114FDC 7F0E04AC 25840008 */ addiu $a0, $t4, 8 +/* 114FE0 7F0E04B0 0FC34DB6 */ jal spectrum_input_handling +/* 114FE4 7F0E04B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 114FE8 7F0E04B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 114FEC 7F0E04BC 304BFFFF */ andi $t3, $v0, 0xffff +/* 114FF0 7F0E04C0 000BCA03 */ sra $t9, $t3, 8 +/* 114FF4 7F0E04C4 A7A20088 */ sh $v0, 0x88($sp) +/* 114FF8 7F0E04C8 0139C021 */ addu $t8, $t1, $t9 +/* 114FFC 7F0E04CC 93B00089 */ lbu $s0, 0x89($sp) +/* 115000 7F0E04D0 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 115004 7F0E04D4 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 115008 7F0E04D8 2E0F0001 */ sltiu $t7, $s0, 1 +/* 11500C 7F0E04DC AFAF0048 */ sw $t7, 0x48($sp) +/* 115010 7F0E04E0 AFB8028C */ sw $t8, 0x28c($sp) +/* 115014 7F0E04E4 0209C821 */ addu $t9, $s0, $t1 +/* 115018 7F0E04E8 93380000 */ lbu $t8, ($t9) +/* 11501C 7F0E04EC 32280001 */ andi $t0, $s1, 1 +/* 115020 7F0E04F0 320A00A8 */ andi $t2, $s0, 0xa8 +/* 115024 7F0E04F4 010A7025 */ or $t6, $t0, $t2 +/* 115028 7F0E04F8 000F6980 */ sll $t5, $t7, 6 +/* 11502C 7F0E04FC 01CD5825 */ or $t3, $t6, $t5 +/* 115030 7F0E0500 030B8825 */ or $s1, $t8, $t3 +/* 115034 7F0E0504 322F00FF */ andi $t7, $s1, 0xff +/* 115038 7F0E0508 100008BC */ b .L7F0E27FC +/* 11503C 7F0E050C 01E08825 */ move $s1, $t7 +spectrum_op_ED_79: +/* 115040 7F0E0510 8FA8028C */ lw $t0, 0x28c($sp) +/* 115044 7F0E0514 02402825 */ move $a1, $s2 +/* 115048 7F0E0518 02603025 */ move $a2, $s3 +/* 11504C 7F0E051C 25040008 */ addiu $a0, $t0, 8 +/* 115050 7F0E0520 AFA4028C */ sw $a0, 0x28c($sp) +/* 115054 7F0E0524 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115058 7F0E0528 02003825 */ move $a3, $s0 +/* 11505C 7F0E052C 8FAC028C */ lw $t4, 0x28c($sp) +/* 115060 7F0E0530 AFA20048 */ sw $v0, 0x48($sp) +/* 115064 7F0E0534 01826821 */ addu $t5, $t4, $v0 +/* 115068 7F0E0538 100008B0 */ b .L7F0E27FC +/* 11506C 7F0E053C AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_ED_7A: +/* 115070 7F0E0540 97B80292 */ lhu $t8, 0x292($sp) +/* 115074 7F0E0544 00165A00 */ sll $t3, $s6, 8 +/* 115078 7F0E0548 8FA9028C */ lw $t1, 0x28c($sp) +/* 11507C 7F0E054C 01777825 */ or $t7, $t3, $s7 +/* 115080 7F0E0550 322A0001 */ andi $t2, $s1, 1 +/* 115084 7F0E0554 01F84021 */ addu $t0, $t7, $t8 +/* 115088 7F0E0558 010A6021 */ addu $t4, $t0, $t2 +/* 11508C 7F0E055C 2539000B */ addiu $t9, $t1, 0xb +/* 115090 7F0E0560 AFB9028C */ sw $t9, 0x28c($sp) +/* 115094 7F0E0564 000C4A02 */ srl $t1, $t4, 8 +/* 115098 7F0E0568 313900A8 */ andi $t9, $t1, 0xa8 +/* 11509C 7F0E056C 318EFFFF */ andi $t6, $t4, 0xffff +/* 1150A0 7F0E0570 000C5C02 */ srl $t3, $t4, 0x10 +/* 1150A4 7F0E0574 00164200 */ sll $t0, $s6, 8 +/* 1150A8 7F0E0578 01175025 */ or $t2, $t0, $s7 +/* 1150AC 7F0E057C 032B7825 */ or $t7, $t9, $t3 +/* 1150B0 7F0E0580 2DCD0001 */ sltiu $t5, $t6, 1 +/* 1150B4 7F0E0584 314E0FFF */ andi $t6, $t2, 0xfff +/* 1150B8 7F0E0588 33190FFF */ andi $t9, $t8, 0xfff +/* 1150BC 7F0E058C 01D95821 */ addu $t3, $t6, $t9 +/* 1150C0 7F0E0590 32280001 */ andi $t0, $s1, 1 +/* 1150C4 7F0E0594 01685021 */ addu $t2, $t3, $t0 +/* 1150C8 7F0E0598 24010FFF */ li $at, 4095 +/* 1150CC 7F0E059C 002A702A */ slt $t6, $at, $t2 +/* 1150D0 7F0E05A0 000EC900 */ sll $t9, $t6, 4 +/* 1150D4 7F0E05A4 01F95825 */ or $t3, $t7, $t9 +/* 1150D8 7F0E05A8 00164200 */ sll $t0, $s6, 8 +/* 1150DC 7F0E05AC 01175027 */ nor $t2, $t0, $s7 +/* 1150E0 7F0E05B0 00167A00 */ sll $t7, $s6, 8 +/* 1150E4 7F0E05B4 01F7C825 */ or $t9, $t7, $s7 +/* 1150E8 7F0E05B8 032C4026 */ xor $t0, $t9, $t4 +/* 1150EC 7F0E05BC 01587026 */ xor $t6, $t2, $t8 +/* 1150F0 7F0E05C0 01C85024 */ and $t2, $t6, $t0 +/* 1150F4 7F0E05C4 A7B80086 */ sh $t8, 0x86($sp) +/* 1150F8 7F0E05C8 31588000 */ andi $t8, $t2, 0x8000 +/* 1150FC 7F0E05CC 00187B42 */ srl $t7, $t8, 0xd +/* 115100 7F0E05D0 AFAC0080 */ sw $t4, 0x80($sp) +/* 115104 7F0E05D4 000D6180 */ sll $t4, $t5, 6 +/* 115108 7F0E05D8 016FC825 */ or $t9, $t3, $t7 +/* 11510C 7F0E05DC 032C8825 */ or $s1, $t9, $t4 +/* 115110 7F0E05E0 362E0002 */ ori $t6, $s1, 2 +/* 115114 7F0E05E4 31D100FF */ andi $s1, $t6, 0xff +/* 115118 7F0E05E8 93B70083 */ lbu $s7, 0x83($sp) +/* 11511C 7F0E05EC 313600FF */ andi $s6, $t1, 0xff +/* 115120 7F0E05F0 10000882 */ b .L7F0E27FC +/* 115124 7F0E05F4 AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_ED_7B: +/* 115128 7F0E05F8 8FAA028C */ lw $t2, 0x28c($sp) +/* 11512C 7F0E05FC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115130 7F0E0600 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115134 7F0E0604 97AB0298 */ lhu $t3, 0x298($sp) +/* 115138 7F0E0608 25580010 */ addiu $t8, $t2, 0x10 +/* 11513C 7F0E060C AFB8028C */ sw $t8, 0x28c($sp) +/* 115140 7F0E0610 01EB6021 */ addu $t4, $t7, $t3 +/* 115144 7F0E0614 918E0001 */ lbu $t6, 1($t4) +/* 115148 7F0E0618 016F6821 */ addu $t5, $t3, $t7 +/* 11514C 7F0E061C 91B90000 */ lbu $t9, ($t5) +/* 115150 7F0E0620 000E4200 */ sll $t0, $t6, 8 +/* 115154 7F0E0624 256A0002 */ addiu $t2, $t3, 2 +/* 115158 7F0E0628 03284825 */ or $t1, $t9, $t0 +/* 11515C 7F0E062C 3138FFFF */ andi $t8, $t1, 0xffff +/* 115160 7F0E0630 A7A9007E */ sh $t1, 0x7e($sp) +/* 115164 7F0E0634 A7AA0298 */ sh $t2, 0x298($sp) +/* 115168 7F0E0638 01F87021 */ addu $t6, $t7, $t8 +/* 11516C 7F0E063C 91D90001 */ lbu $t9, 1($t6) +/* 115170 7F0E0640 030F6821 */ addu $t5, $t8, $t7 +/* 115174 7F0E0644 91AC0000 */ lbu $t4, ($t5) +/* 115178 7F0E0648 00194200 */ sll $t0, $t9, 8 +/* 11517C 7F0E064C 01884825 */ or $t1, $t4, $t0 +/* 115180 7F0E0650 1000086A */ b .L7F0E27FC +/* 115184 7F0E0654 A7A90292 */ sh $t1, 0x292($sp) +spectrum_op_ED_7C: +/* 115188 7F0E0658 00108023 */ negu $s0, $s0 +/* 11518C 7F0E065C 320D00FF */ andi $t5, $s0, 0xff +/* 115190 7F0E0660 8FAB028C */ lw $t3, 0x28c($sp) +/* 115194 7F0E0664 2DAF0001 */ sltiu $t7, $t5, 1 +/* 115198 7F0E0668 31A8000F */ andi $t0, $t5, 0xf +/* 11519C 7F0E066C 01A08025 */ move $s0, $t5 +/* 1151A0 7F0E0670 31B800A8 */ andi $t8, $t5, 0xa8 +/* 1151A4 7F0E0674 256A0004 */ addiu $t2, $t3, 4 +/* 1151A8 7F0E0678 39AD0080 */ xori $t5, $t5, 0x80 +/* 1151AC 7F0E067C 0008482A */ slt $t1, $zero, $t0 +/* 1151B0 7F0E0680 000FC980 */ sll $t9, $t7, 6 +/* 1151B4 7F0E0684 AFAA028C */ sw $t2, 0x28c($sp) +/* 1151B8 7F0E0688 03196025 */ or $t4, $t8, $t9 +/* 1151BC 7F0E068C 00095900 */ sll $t3, $t1, 4 +/* 1151C0 7F0E0690 2DAD0001 */ sltiu $t5, $t5, 1 +/* 1151C4 7F0E0694 AFAF0048 */ sw $t7, 0x48($sp) +/* 1151C8 7F0E0698 000D7880 */ sll $t7, $t5, 2 +/* 1151CC 7F0E069C 018B5025 */ or $t2, $t4, $t3 +/* 1151D0 7F0E06A0 014F7025 */ or $t6, $t2, $t7 +/* 1151D4 7F0E06A4 35D80002 */ ori $t8, $t6, 2 +/* 1151D8 7F0E06A8 0010C82A */ slt $t9, $zero, $s0 +/* 1151DC 7F0E06AC 03198825 */ or $s1, $t8, $t9 +/* 1151E0 7F0E06B0 322800FF */ andi $t0, $s1, 0xff +/* 1151E4 7F0E06B4 10000851 */ b .L7F0E27FC +/* 1151E8 7F0E06B8 01008825 */ move $s1, $t0 +spectrum_op_ED_7D: +/* 1151EC 7F0E06BC 8FA9028C */ lw $t1, 0x28c($sp) +/* 1151F0 7F0E06C0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1151F4 7F0E06C4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1151F8 7F0E06C8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1151FC 7F0E06CC 252C0004 */ addiu $t4, $t1, 4 +/* 115200 7F0E06D0 AFAC028C */ sw $t4, 0x28c($sp) +/* 115204 7F0E06D4 258D0006 */ addiu $t5, $t4, 6 +/* 115208 7F0E06D8 AFAD028C */ sw $t5, 0x28c($sp) +/* 11520C 7F0E06DC 01EAC821 */ addu $t9, $t7, $t2 +/* 115210 7F0E06E0 93280001 */ lbu $t0, 1($t9) +/* 115214 7F0E06E4 014F7021 */ addu $t6, $t2, $t7 +/* 115218 7F0E06E8 91D80000 */ lbu $t8, ($t6) +/* 11521C 7F0E06EC 00084A00 */ sll $t1, $t0, 8 +/* 115220 7F0E06F0 254B0002 */ addiu $t3, $t2, 2 +/* 115224 7F0E06F4 03096025 */ or $t4, $t8, $t1 +/* 115228 7F0E06F8 A7AC0298 */ sh $t4, 0x298($sp) +/* 11522C 7F0E06FC 1000083F */ b .L7F0E27FC +/* 115230 7F0E0700 A7AB0292 */ sh $t3, 0x292($sp) +spectrum_op_ED_7E: +/* 115234 7F0E0704 8FAD028C */ lw $t5, 0x28c($sp) +/* 115238 7F0E0708 240F0003 */ li $t7, 3 +/* 11523C 7F0E070C A3AF029B */ sb $t7, 0x29b($sp) +/* 115240 7F0E0710 25AE0004 */ addiu $t6, $t5, 4 +/* 115244 7F0E0714 10000839 */ b .L7F0E27FC +/* 115248 7F0E0718 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_A0: +/* 11524C 7F0E071C 8FB9028C */ lw $t9, 0x28c($sp) +/* 115250 7F0E0720 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115254 7F0E0724 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115258 7F0E0728 0016C200 */ sll $t8, $s6, 8 +/* 11525C 7F0E072C 03174825 */ or $t1, $t8, $s7 +/* 115260 7F0E0730 2728000C */ addiu $t0, $t9, 0xc +/* 115264 7F0E0734 AFA8028C */ sw $t0, 0x28c($sp) +/* 115268 7F0E0738 00146A00 */ sll $t5, $s4, 8 +/* 11526C 7F0E073C 012C5021 */ addu $t2, $t1, $t4 +/* 115270 7F0E0740 914B0000 */ lbu $t3, ($t2) +/* 115274 7F0E0744 01B57025 */ or $t6, $t5, $s5 +/* 115278 7F0E0748 29C15B00 */ slti $at, $t6, 0x5b00 +/* 11527C 7F0E074C 14200008 */ bnez $at, .L7F0E0770 +/* 115280 7F0E0750 A3AB007D */ sb $t3, 0x7d($sp) +/* 115284 7F0E0754 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115288 7F0E0758 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 11528C 7F0E075C 00144200 */ sll $t0, $s4, 8 +/* 115290 7F0E0760 0115C025 */ or $t8, $t0, $s5 +/* 115294 7F0E0764 03384821 */ addu $t1, $t9, $t8 +/* 115298 7F0E0768 1000002B */ b .L7F0E0818 +/* 11529C 7F0E076C A12B0000 */ sb $t3, ($t1) +.L7F0E0770: +/* 1152A0 7F0E0770 00146200 */ sll $t4, $s4, 8 +/* 1152A4 7F0E0774 01955025 */ or $t2, $t4, $s5 +/* 1152A8 7F0E0778 29415800 */ slti $at, $t2, 0x5800 +/* 1152AC 7F0E077C 14200010 */ bnez $at, .L7F0E07C0 +/* 1152B0 7F0E0780 00147200 */ sll $t6, $s4, 8 +/* 1152B4 7F0E0784 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1152B8 7F0E0788 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1152BC 7F0E078C 93AB007D */ lbu $t3, 0x7d($sp) +/* 1152C0 7F0E0790 00147200 */ sll $t6, $s4, 8 +/* 1152C4 7F0E0794 01D54025 */ or $t0, $t6, $s5 +/* 1152C8 7F0E0798 01A8C821 */ addu $t9, $t5, $t0 +/* 1152CC 7F0E079C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1152D0 7F0E07A0 A32B0000 */ sb $t3, ($t9) +/* 1152D4 7F0E07A4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1152D8 7F0E07A8 00144A00 */ sll $t1, $s4, 8 +/* 1152DC 7F0E07AC 01356025 */ or $t4, $t1, $s5 +/* 1152E0 7F0E07B0 24180001 */ li $t8, 1 +/* 1152E4 7F0E07B4 01EC5021 */ addu $t2, $t7, $t4 +/* 1152E8 7F0E07B8 10000017 */ b .L7F0E0818 +/* 1152EC 7F0E07BC A158A800 */ sb $t8, -0x5800($t2) +.L7F0E07C0: +/* 1152F0 7F0E07C0 01D56825 */ or $t5, $t6, $s5 +/* 1152F4 7F0E07C4 29A14000 */ slti $at, $t5, 0x4000 +/* 1152F8 7F0E07C8 14200013 */ bnez $at, .L7F0E0818 +/* 1152FC 7F0E07CC 93A8007D */ lbu $t0, 0x7d($sp) +/* 115300 7F0E07D0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115304 7F0E07D4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 115308 7F0E07D8 0014CA00 */ sll $t9, $s4, 8 +/* 11530C 7F0E07DC 03354825 */ or $t1, $t9, $s5 +/* 115310 7F0E07E0 01697821 */ addu $t7, $t3, $t1 +/* 115314 7F0E07E4 A1E80000 */ sb $t0, ($t7) +/* 115318 7F0E07E8 0014C200 */ sll $t8, $s4, 8 +/* 11531C 7F0E07EC 03155025 */ or $t2, $t8, $s5 +/* 115320 7F0E07F0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 115324 7F0E07F4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 115328 7F0E07F8 314E1800 */ andi $t6, $t2, 0x1800 +/* 11532C 7F0E07FC 03355825 */ or $t3, $t9, $s5 +/* 115330 7F0E0800 316900FF */ andi $t1, $t3, 0xff +/* 115334 7F0E0804 000E68C3 */ sra $t5, $t6, 3 +/* 115338 7F0E0808 01A94025 */ or $t0, $t5, $t1 +/* 11533C 7F0E080C 240C0001 */ li $t4, 1 +/* 115340 7F0E0810 01E8C021 */ addu $t8, $t7, $t0 +/* 115344 7F0E0814 A30C0000 */ sb $t4, ($t8) +.L7F0E0818: +/* 115348 7F0E0818 26F70001 */ addiu $s7, $s7, 1 +/* 11534C 7F0E081C 32EA00FF */ andi $t2, $s7, 0xff +/* 115350 7F0E0820 15400004 */ bnez $t2, .L7F0E0834 +/* 115354 7F0E0824 0140B825 */ move $s7, $t2 +/* 115358 7F0E0828 26D60001 */ addiu $s6, $s6, 1 +/* 11535C 7F0E082C 32CE00FF */ andi $t6, $s6, 0xff +/* 115360 7F0E0830 01C0B025 */ move $s6, $t6 +.L7F0E0834: +/* 115364 7F0E0834 26B50001 */ addiu $s5, $s5, 1 +/* 115368 7F0E0838 32B900FF */ andi $t9, $s5, 0xff +/* 11536C 7F0E083C 17200004 */ bnez $t9, .L7F0E0850 +/* 115370 7F0E0840 0320A825 */ move $s5, $t9 +/* 115374 7F0E0844 26940001 */ addiu $s4, $s4, 1 +/* 115378 7F0E0848 328B00FF */ andi $t3, $s4, 0xff +/* 11537C 7F0E084C 0160A025 */ move $s4, $t3 +.L7F0E0850: +/* 115380 7F0E0850 2E6D0001 */ sltiu $t5, $s3, 1 +/* 115384 7F0E0854 2673FFFF */ addiu $s3, $s3, -1 +/* 115388 7F0E0858 326900FF */ andi $t1, $s3, 0xff +/* 11538C 7F0E085C 01209825 */ move $s3, $t1 +/* 115390 7F0E0860 11A00004 */ beqz $t5, .L7F0E0874 +/* 115394 7F0E0864 AFAD0048 */ sw $t5, 0x48($sp) +/* 115398 7F0E0868 2652FFFF */ addiu $s2, $s2, -1 +/* 11539C 7F0E086C 324800FF */ andi $t0, $s2, 0xff +/* 1153A0 7F0E0870 01009025 */ move $s2, $t0 +.L7F0E0874: +/* 1153A4 7F0E0874 93B8007D */ lbu $t8, 0x7d($sp) +/* 1153A8 7F0E0878 0253C825 */ or $t9, $s2, $s3 +/* 1153AC 7F0E087C 0019582A */ slt $t3, $zero, $t9 +/* 1153B0 7F0E0880 322C00C1 */ andi $t4, $s1, 0xc1 +/* 1153B4 7F0E0884 330A0028 */ andi $t2, $t8, 0x28 +/* 1153B8 7F0E0888 018A7025 */ or $t6, $t4, $t2 +/* 1153BC 7F0E088C 000B6880 */ sll $t5, $t3, 2 +/* 1153C0 7F0E0890 01CD8825 */ or $s1, $t6, $t5 +/* 1153C4 7F0E0894 322900FF */ andi $t1, $s1, 0xff +/* 1153C8 7F0E0898 100007D8 */ b .L7F0E27FC +/* 1153CC 7F0E089C 01208825 */ move $s1, $t1 +spectrum_op_ED_A1: +/* 1153D0 7F0E08A0 8FAF028C */ lw $t7, 0x28c($sp) +/* 1153D4 7F0E08A4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1153D8 7F0E08A8 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1153DC 7F0E08AC 00166200 */ sll $t4, $s6, 8 +/* 1153E0 7F0E08B0 32380001 */ andi $t8, $s1, 1 +/* 1153E4 7F0E08B4 01975025 */ or $t2, $t4, $s7 +/* 1153E8 7F0E08B8 25E8000C */ addiu $t0, $t7, 0xc +/* 1153EC 7F0E08BC AFA8028C */ sw $t0, 0x28c($sp) +/* 1153F0 7F0E08C0 A3B8007C */ sb $t8, 0x7c($sp) +/* 1153F4 7F0E08C4 01595821 */ addu $t3, $t2, $t9 +/* 1153F8 7F0E08C8 916E0000 */ lbu $t6, ($t3) +/* 1153FC 7F0E08CC 26F70001 */ addiu $s7, $s7, 1 +/* 115400 7F0E08D0 020E6823 */ subu $t5, $s0, $t6 +/* 115404 7F0E08D4 31A901FF */ andi $t1, $t5, 0x1ff +/* 115408 7F0E08D8 312FFFFF */ andi $t7, $t1, 0xffff +/* 11540C 7F0E08DC 2DE80001 */ sltiu $t0, $t7, 1 +/* 115410 7F0E08E0 320F000F */ andi $t7, $s0, 0xf +/* 115414 7F0E08E4 31CD000F */ andi $t5, $t6, 0xf +/* 115418 7F0E08E8 01EDC02A */ slt $t8, $t7, $t5 +/* 11541C 7F0E08EC 312C00A8 */ andi $t4, $t1, 0xa8 +/* 115420 7F0E08F0 0009CA03 */ sra $t9, $t1, 8 +/* 115424 7F0E08F4 01995825 */ or $t3, $t4, $t9 +/* 115428 7F0E08F8 00185100 */ sll $t2, $t8, 4 +/* 11542C 7F0E08FC 01206825 */ move $t5, $t1 +/* 115430 7F0E0900 020EC826 */ xor $t9, $s0, $t6 +/* 115434 7F0E0904 332F0080 */ andi $t7, $t9, 0x80 +/* 115438 7F0E0908 01B0C026 */ xor $t8, $t5, $s0 +/* 11543C 7F0E090C 016A6025 */ or $t4, $t3, $t2 +/* 115440 7F0E0910 01F85824 */ and $t3, $t7, $t8 +/* 115444 7F0E0914 000B5143 */ sra $t2, $t3, 5 +/* 115448 7F0E0918 A3AE0079 */ sb $t6, 0x79($sp) +/* 11544C 7F0E091C 018A7025 */ or $t6, $t4, $t2 +/* 115450 7F0E0920 A7A9007A */ sh $t1, 0x7a($sp) +/* 115454 7F0E0924 00084980 */ sll $t1, $t0, 6 +/* 115458 7F0E0928 35D90002 */ ori $t9, $t6, 2 +/* 11545C 7F0E092C 03298825 */ or $s1, $t9, $t1 +/* 115460 7F0E0930 322D00FF */ andi $t5, $s1, 0xff +/* 115464 7F0E0934 32EF00FF */ andi $t7, $s7, 0xff +/* 115468 7F0E0938 01A08825 */ move $s1, $t5 +/* 11546C 7F0E093C AFA80048 */ sw $t0, 0x48($sp) +/* 115470 7F0E0940 15E00004 */ bnez $t7, .L7F0E0954 +/* 115474 7F0E0944 01E0B825 */ move $s7, $t7 +/* 115478 7F0E0948 26D60001 */ addiu $s6, $s6, 1 +/* 11547C 7F0E094C 32D800FF */ andi $t8, $s6, 0xff +/* 115480 7F0E0950 0300B025 */ move $s6, $t8 +.L7F0E0954: +/* 115484 7F0E0954 2E6B0001 */ sltiu $t3, $s3, 1 +/* 115488 7F0E0958 2673FFFF */ addiu $s3, $s3, -1 +/* 11548C 7F0E095C 326C00FF */ andi $t4, $s3, 0xff +/* 115490 7F0E0960 01809825 */ move $s3, $t4 +/* 115494 7F0E0964 11600004 */ beqz $t3, .L7F0E0978 +/* 115498 7F0E0968 AFAB0048 */ sw $t3, 0x48($sp) +/* 11549C 7F0E096C 2652FFFF */ addiu $s2, $s2, -1 +/* 1154A0 7F0E0970 324E00FF */ andi $t6, $s2, 0xff +/* 1154A4 7F0E0974 01C09025 */ move $s2, $t6 +.L7F0E0978: +/* 1154A8 7F0E0978 93B9007C */ lbu $t9, 0x7c($sp) +/* 1154AC 7F0E097C 02536825 */ or $t5, $s2, $s3 +/* 1154B0 7F0E0980 000D782A */ slt $t7, $zero, $t5 +/* 1154B4 7F0E0984 322800FA */ andi $t0, $s1, 0xfa +/* 1154B8 7F0E0988 000FC080 */ sll $t8, $t7, 2 +/* 1154BC 7F0E098C 01194825 */ or $t1, $t0, $t9 +/* 1154C0 7F0E0990 01388825 */ or $s1, $t1, $t8 +/* 1154C4 7F0E0994 322B00FF */ andi $t3, $s1, 0xff +/* 1154C8 7F0E0998 10000798 */ b .L7F0E27FC +/* 1154CC 7F0E099C 01608825 */ move $s1, $t3 +spectrum_op_ED_A2: +/* 1154D0 7F0E09A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 1154D4 7F0E09A4 02402825 */ move $a1, $s2 +/* 1154D8 7F0E09A8 02603025 */ move $a2, $s3 +/* 1154DC 7F0E09AC 2584000C */ addiu $a0, $t4, 0xc +/* 1154E0 7F0E09B0 0FC34DB6 */ jal spectrum_input_handling +/* 1154E4 7F0E09B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 1154E8 7F0E09B8 00167200 */ sll $t6, $s6, 8 +/* 1154EC 7F0E09BC 01D74025 */ or $t0, $t6, $s7 +/* 1154F0 7F0E09C0 29015B00 */ slti $at, $t0, 0x5b00 +/* 1154F4 7F0E09C4 14200008 */ bnez $at, .L7F0E09E8 +/* 1154F8 7F0E09C8 A7A20076 */ sh $v0, 0x76($sp) +/* 1154FC 7F0E09CC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 115500 7F0E09D0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 115504 7F0E09D4 00167A00 */ sll $t7, $s6, 8 +/* 115508 7F0E09D8 01F74825 */ or $t1, $t7, $s7 +/* 11550C 7F0E09DC 01A9C021 */ addu $t8, $t5, $t1 +/* 115510 7F0E09E0 1000002B */ b .L7F0E0A90 +/* 115514 7F0E09E4 A3020000 */ sb $v0, ($t8) +.L7F0E09E8: +/* 115518 7F0E09E8 00165A00 */ sll $t3, $s6, 8 +/* 11551C 7F0E09EC 01776025 */ or $t4, $t3, $s7 +/* 115520 7F0E09F0 29815800 */ slti $at, $t4, 0x5800 +/* 115524 7F0E09F4 14200010 */ bnez $at, .L7F0E0A38 +/* 115528 7F0E09F8 00164200 */ sll $t0, $s6, 8 +/* 11552C 7F0E09FC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 115530 7F0E0A00 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 115534 7F0E0A04 97AA0076 */ lhu $t2, 0x76($sp) +/* 115538 7F0E0A08 00164200 */ sll $t0, $s6, 8 +/* 11553C 7F0E0A0C 01177825 */ or $t7, $t0, $s7 +/* 115540 7F0E0A10 01CF6821 */ addu $t5, $t6, $t7 +/* 115544 7F0E0A14 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 115548 7F0E0A18 A1AA0000 */ sb $t2, ($t5) +/* 11554C 7F0E0A1C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 115550 7F0E0A20 0016C200 */ sll $t8, $s6, 8 +/* 115554 7F0E0A24 03175825 */ or $t3, $t8, $s7 +/* 115558 7F0E0A28 24090001 */ li $t1, 1 +/* 11555C 7F0E0A2C 032B6021 */ addu $t4, $t9, $t3 +/* 115560 7F0E0A30 10000017 */ b .L7F0E0A90 +/* 115564 7F0E0A34 A189A800 */ sb $t1, -0x5800($t4) +.L7F0E0A38: +/* 115568 7F0E0A38 01177025 */ or $t6, $t0, $s7 +/* 11556C 7F0E0A3C 29C14000 */ slti $at, $t6, 0x4000 +/* 115570 7F0E0A40 14200013 */ bnez $at, .L7F0E0A90 +/* 115574 7F0E0A44 97AF0076 */ lhu $t7, 0x76($sp) +/* 115578 7F0E0A48 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11557C 7F0E0A4C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 115580 7F0E0A50 00166A00 */ sll $t5, $s6, 8 +/* 115584 7F0E0A54 01B7C025 */ or $t8, $t5, $s7 +/* 115588 7F0E0A58 0158C821 */ addu $t9, $t2, $t8 +/* 11558C 7F0E0A5C A32F0000 */ sb $t7, ($t9) +/* 115590 7F0E0A60 00164A00 */ sll $t1, $s6, 8 +/* 115594 7F0E0A64 01376025 */ or $t4, $t1, $s7 +/* 115598 7F0E0A68 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 11559C 7F0E0A6C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1155A0 7F0E0A70 31881800 */ andi $t0, $t4, 0x1800 +/* 1155A4 7F0E0A74 01B75025 */ or $t2, $t5, $s7 +/* 1155A8 7F0E0A78 315800FF */ andi $t8, $t2, 0xff +/* 1155AC 7F0E0A7C 000870C3 */ sra $t6, $t0, 3 +/* 1155B0 7F0E0A80 01D87825 */ or $t7, $t6, $t8 +/* 1155B4 7F0E0A84 240B0001 */ li $t3, 1 +/* 1155B8 7F0E0A88 032F4821 */ addu $t1, $t9, $t7 +/* 1155BC 7F0E0A8C A12B0000 */ sb $t3, ($t1) +.L7F0E0A90: +/* 1155C0 7F0E0A90 97A80076 */ lhu $t0, 0x76($sp) +/* 1155C4 7F0E0A94 8FAC028C */ lw $t4, 0x28c($sp) +/* 1155C8 7F0E0A98 26F70001 */ addiu $s7, $s7, 1 +/* 1155CC 7F0E0A9C 00086A03 */ sra $t5, $t0, 8 +/* 1155D0 7F0E0AA0 32EE00FF */ andi $t6, $s7, 0xff +/* 1155D4 7F0E0AA4 018D5021 */ addu $t2, $t4, $t5 +/* 1155D8 7F0E0AA8 AFAA028C */ sw $t2, 0x28c($sp) +/* 1155DC 7F0E0AAC 15C00004 */ bnez $t6, .L7F0E0AC0 +/* 1155E0 7F0E0AB0 01C0B825 */ move $s7, $t6 +/* 1155E4 7F0E0AB4 26D60001 */ addiu $s6, $s6, 1 +/* 1155E8 7F0E0AB8 32D800FF */ andi $t8, $s6, 0xff +/* 1155EC 7F0E0ABC 0300B025 */ move $s6, $t8 +.L7F0E0AC0: +/* 1155F0 7F0E0AC0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 1155F4 7F0E0AC4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 1155F8 7F0E0AC8 2652FFFF */ addiu $s2, $s2, -1 +/* 1155FC 7F0E0ACC 325900FF */ andi $t9, $s2, 0xff +/* 115600 7F0E0AD0 032D5021 */ addu $t2, $t9, $t5 +/* 115604 7F0E0AD4 914E0000 */ lbu $t6, ($t2) +/* 115608 7F0E0AD8 0019582A */ slt $t3, $zero, $t9 +/* 11560C 7F0E0ADC 000B4980 */ sll $t1, $t3, 6 +/* 115610 7F0E0AE0 332F00A8 */ andi $t7, $t9, 0xa8 +/* 115614 7F0E0AE4 03209025 */ move $s2, $t9 +/* 115618 7F0E0AE8 01E94025 */ or $t0, $t7, $t1 +/* 11561C 7F0E0AEC 01D3C026 */ xor $t8, $t6, $s3 +/* 115620 7F0E0AF0 33190004 */ andi $t9, $t8, 4 +/* 115624 7F0E0AF4 350C0002 */ ori $t4, $t0, 2 +/* 115628 7F0E0AF8 032C8825 */ or $s1, $t9, $t4 +/* 11562C 7F0E0AFC 322B00FF */ andi $t3, $s1, 0xff +/* 115630 7F0E0B00 1000073E */ b .L7F0E27FC +/* 115634 7F0E0B04 01608825 */ move $s1, $t3 +spectrum_op_ED_A3: +/* 115638 7F0E0B08 8FAF028C */ lw $t7, 0x28c($sp) +/* 11563C 7F0E0B0C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 115640 7F0E0B10 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 115644 7F0E0B14 00164200 */ sll $t0, $s6, 8 +/* 115648 7F0E0B18 01176825 */ or $t5, $t0, $s7 +/* 11564C 7F0E0B1C 25E4000C */ addiu $a0, $t7, 0xc +/* 115650 7F0E0B20 AFA4028C */ sw $a0, 0x28c($sp) +/* 115654 7F0E0B24 01AA7021 */ addu $t6, $t5, $t2 +/* 115658 7F0E0B28 91C70000 */ lbu $a3, ($t6) +/* 11565C 7F0E0B2C 02402825 */ move $a1, $s2 +/* 115660 7F0E0B30 02603025 */ move $a2, $s3 +/* 115664 7F0E0B34 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115668 7F0E0B38 A3A70075 */ sb $a3, 0x75($sp) +/* 11566C 7F0E0B3C 8FB9028C */ lw $t9, 0x28c($sp) +/* 115670 7F0E0B40 26F70001 */ addiu $s7, $s7, 1 +/* 115674 7F0E0B44 32EF00FF */ andi $t7, $s7, 0xff +/* 115678 7F0E0B48 03225821 */ addu $t3, $t9, $v0 +/* 11567C 7F0E0B4C AFAB028C */ sw $t3, 0x28c($sp) +/* 115680 7F0E0B50 AFA20048 */ sw $v0, 0x48($sp) +/* 115684 7F0E0B54 15E00004 */ bnez $t7, .L7F0E0B68 +/* 115688 7F0E0B58 01E0B825 */ move $s7, $t7 +/* 11568C 7F0E0B5C 26D60001 */ addiu $s6, $s6, 1 +/* 115690 7F0E0B60 32C800FF */ andi $t0, $s6, 0xff +/* 115694 7F0E0B64 0100B025 */ move $s6, $t0 +.L7F0E0B68: +/* 115698 7F0E0B68 2652FFFF */ addiu $s2, $s2, -1 +/* 11569C 7F0E0B6C 324D00FF */ andi $t5, $s2, 0xff +/* 1156A0 7F0E0B70 322A0001 */ andi $t2, $s1, 1 +/* 1156A4 7F0E0B74 354E0012 */ ori $t6, $t2, 0x12 +/* 1156A8 7F0E0B78 31A900A8 */ andi $t1, $t5, 0xa8 +/* 1156AC 7F0E0B7C 2DB90001 */ sltiu $t9, $t5, 1 +/* 1156B0 7F0E0B80 00196180 */ sll $t4, $t9, 6 +/* 1156B4 7F0E0B84 01C9C025 */ or $t8, $t6, $t1 +/* 1156B8 7F0E0B88 030C8825 */ or $s1, $t8, $t4 +/* 1156BC 7F0E0B8C 322B00FF */ andi $t3, $s1, 0xff +/* 1156C0 7F0E0B90 01A09025 */ move $s2, $t5 +/* 1156C4 7F0E0B94 10000719 */ b .L7F0E27FC +/* 1156C8 7F0E0B98 01608825 */ move $s1, $t3 +spectrum_op_ED_A8: +/* 1156CC 7F0E0B9C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1156D0 7F0E0BA0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1156D4 7F0E0BA4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1156D8 7F0E0BA8 00166A00 */ sll $t5, $s6, 8 +/* 1156DC 7F0E0BAC 01B75025 */ or $t2, $t5, $s7 +/* 1156E0 7F0E0BB0 25E8000C */ addiu $t0, $t7, 0xc +/* 1156E4 7F0E0BB4 AFA8028C */ sw $t0, 0x28c($sp) +/* 1156E8 7F0E0BB8 0014C200 */ sll $t8, $s4, 8 +/* 1156EC 7F0E0BBC 014E4821 */ addu $t1, $t2, $t6 +/* 1156F0 7F0E0BC0 91390000 */ lbu $t9, ($t1) +/* 1156F4 7F0E0BC4 03156025 */ or $t4, $t8, $s5 +/* 1156F8 7F0E0BC8 29815B00 */ slti $at, $t4, 0x5b00 +/* 1156FC 7F0E0BCC 14200008 */ bnez $at, .L7F0E0BF0 +/* 115700 7F0E0BD0 A3B90074 */ sb $t9, 0x74($sp) +/* 115704 7F0E0BD4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115708 7F0E0BD8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11570C 7F0E0BDC 00144200 */ sll $t0, $s4, 8 +/* 115710 7F0E0BE0 01156825 */ or $t5, $t0, $s5 +/* 115714 7F0E0BE4 01ED5021 */ addu $t2, $t7, $t5 +/* 115718 7F0E0BE8 1000002B */ b .L7F0E0C98 +/* 11571C 7F0E0BEC A1590000 */ sb $t9, ($t2) +.L7F0E0BF0: +/* 115720 7F0E0BF0 00147200 */ sll $t6, $s4, 8 +/* 115724 7F0E0BF4 01D54825 */ or $t1, $t6, $s5 +/* 115728 7F0E0BF8 29215800 */ slti $at, $t1, 0x5800 +/* 11572C 7F0E0BFC 14200010 */ bnez $at, .L7F0E0C40 +/* 115730 7F0E0C00 00146200 */ sll $t4, $s4, 8 +/* 115734 7F0E0C04 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115738 7F0E0C08 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11573C 7F0E0C0C 93B90074 */ lbu $t9, 0x74($sp) +/* 115740 7F0E0C10 00146200 */ sll $t4, $s4, 8 +/* 115744 7F0E0C14 01954025 */ or $t0, $t4, $s5 +/* 115748 7F0E0C18 03087821 */ addu $t7, $t8, $t0 +/* 11574C 7F0E0C1C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115750 7F0E0C20 A1F90000 */ sb $t9, ($t7) +/* 115754 7F0E0C24 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115758 7F0E0C28 00145200 */ sll $t2, $s4, 8 +/* 11575C 7F0E0C2C 01557025 */ or $t6, $t2, $s5 +/* 115760 7F0E0C30 240D0001 */ li $t5, 1 +/* 115764 7F0E0C34 016E4821 */ addu $t1, $t3, $t6 +/* 115768 7F0E0C38 10000017 */ b .L7F0E0C98 +/* 11576C 7F0E0C3C A12DA800 */ sb $t5, -0x5800($t1) +.L7F0E0C40: +/* 115770 7F0E0C40 0195C025 */ or $t8, $t4, $s5 +/* 115774 7F0E0C44 2B014000 */ slti $at, $t8, 0x4000 +/* 115778 7F0E0C48 14200013 */ bnez $at, .L7F0E0C98 +/* 11577C 7F0E0C4C 93A80074 */ lbu $t0, 0x74($sp) +/* 115780 7F0E0C50 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115784 7F0E0C54 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 115788 7F0E0C58 00147A00 */ sll $t7, $s4, 8 +/* 11578C 7F0E0C5C 01F55025 */ or $t2, $t7, $s5 +/* 115790 7F0E0C60 032A5821 */ addu $t3, $t9, $t2 +/* 115794 7F0E0C64 A1680000 */ sb $t0, ($t3) +/* 115798 7F0E0C68 00146A00 */ sll $t5, $s4, 8 +/* 11579C 7F0E0C6C 01B54825 */ or $t1, $t5, $s5 +/* 1157A0 7F0E0C70 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 1157A4 7F0E0C74 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 1157A8 7F0E0C78 312C1800 */ andi $t4, $t1, 0x1800 +/* 1157AC 7F0E0C7C 01F5C825 */ or $t9, $t7, $s5 +/* 1157B0 7F0E0C80 332A00FF */ andi $t2, $t9, 0xff +/* 1157B4 7F0E0C84 000CC0C3 */ sra $t8, $t4, 3 +/* 1157B8 7F0E0C88 030A4025 */ or $t0, $t8, $t2 +/* 1157BC 7F0E0C8C 240E0001 */ li $t6, 1 +/* 1157C0 7F0E0C90 01686821 */ addu $t5, $t3, $t0 +/* 1157C4 7F0E0C94 A1AE0000 */ sb $t6, ($t5) +.L7F0E0C98: +/* 1157C8 7F0E0C98 2EE90001 */ sltiu $t1, $s7, 1 +/* 1157CC 7F0E0C9C 26F7FFFF */ addiu $s7, $s7, -1 +/* 1157D0 7F0E0CA0 32EC00FF */ andi $t4, $s7, 0xff +/* 1157D4 7F0E0CA4 0180B825 */ move $s7, $t4 +/* 1157D8 7F0E0CA8 11200004 */ beqz $t1, .L7F0E0CBC +/* 1157DC 7F0E0CAC AFA90048 */ sw $t1, 0x48($sp) +/* 1157E0 7F0E0CB0 26D6FFFF */ addiu $s6, $s6, -1 +/* 1157E4 7F0E0CB4 32D900FF */ andi $t9, $s6, 0xff +/* 1157E8 7F0E0CB8 0320B025 */ move $s6, $t9 +.L7F0E0CBC: +/* 1157EC 7F0E0CBC 2EB80001 */ sltiu $t8, $s5, 1 +/* 1157F0 7F0E0CC0 26B5FFFF */ addiu $s5, $s5, -1 +/* 1157F4 7F0E0CC4 32AA00FF */ andi $t2, $s5, 0xff +/* 1157F8 7F0E0CC8 0140A825 */ move $s5, $t2 +/* 1157FC 7F0E0CCC 13000004 */ beqz $t8, .L7F0E0CE0 +/* 115800 7F0E0CD0 AFB80048 */ sw $t8, 0x48($sp) +/* 115804 7F0E0CD4 2694FFFF */ addiu $s4, $s4, -1 +/* 115808 7F0E0CD8 328800FF */ andi $t0, $s4, 0xff +/* 11580C 7F0E0CDC 0100A025 */ move $s4, $t0 +.L7F0E0CE0: +/* 115810 7F0E0CE0 2E6E0001 */ sltiu $t6, $s3, 1 +/* 115814 7F0E0CE4 2673FFFF */ addiu $s3, $s3, -1 +/* 115818 7F0E0CE8 326D00FF */ andi $t5, $s3, 0xff +/* 11581C 7F0E0CEC 01A09825 */ move $s3, $t5 +/* 115820 7F0E0CF0 11C00004 */ beqz $t6, .L7F0E0D04 +/* 115824 7F0E0CF4 AFAE0048 */ sw $t6, 0x48($sp) +/* 115828 7F0E0CF8 2652FFFF */ addiu $s2, $s2, -1 +/* 11582C 7F0E0CFC 324C00FF */ andi $t4, $s2, 0xff +/* 115830 7F0E0D00 01809025 */ move $s2, $t4 +.L7F0E0D04: +/* 115834 7F0E0D04 93B90074 */ lbu $t9, 0x74($sp) +/* 115838 7F0E0D08 02535825 */ or $t3, $s2, $s3 +/* 11583C 7F0E0D0C 000B402A */ slt $t0, $zero, $t3 +/* 115840 7F0E0D10 322F00C1 */ andi $t7, $s1, 0xc1 +/* 115844 7F0E0D14 33380028 */ andi $t8, $t9, 0x28 +/* 115848 7F0E0D18 01F85025 */ or $t2, $t7, $t8 +/* 11584C 7F0E0D1C 00087080 */ sll $t6, $t0, 2 +/* 115850 7F0E0D20 014E8825 */ or $s1, $t2, $t6 +/* 115854 7F0E0D24 322D00FF */ andi $t5, $s1, 0xff +/* 115858 7F0E0D28 100006B4 */ b .L7F0E27FC +/* 11585C 7F0E0D2C 01A08825 */ move $s1, $t5 +spectrum_op_ED_A9: +/* 115860 7F0E0D30 8FA9028C */ lw $t1, 0x28c($sp) +/* 115864 7F0E0D34 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115868 7F0E0D38 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11586C 7F0E0D3C 00167A00 */ sll $t7, $s6, 8 +/* 115870 7F0E0D40 32390001 */ andi $t9, $s1, 1 +/* 115874 7F0E0D44 01F7C025 */ or $t8, $t7, $s7 +/* 115878 7F0E0D48 252C000C */ addiu $t4, $t1, 0xc +/* 11587C 7F0E0D4C AFAC028C */ sw $t4, 0x28c($sp) +/* 115880 7F0E0D50 A3B90073 */ sb $t9, 0x73($sp) +/* 115884 7F0E0D54 030B4021 */ addu $t0, $t8, $t3 +/* 115888 7F0E0D58 910A0000 */ lbu $t2, ($t0) +/* 11588C 7F0E0D5C 020A7023 */ subu $t6, $s0, $t2 +/* 115890 7F0E0D60 31CD01FF */ andi $t5, $t6, 0x1ff +/* 115894 7F0E0D64 31A9FFFF */ andi $t1, $t5, 0xffff +/* 115898 7F0E0D68 2D2C0001 */ sltiu $t4, $t1, 1 +/* 11589C 7F0E0D6C 3209000F */ andi $t1, $s0, 0xf +/* 1158A0 7F0E0D70 314E000F */ andi $t6, $t2, 0xf +/* 1158A4 7F0E0D74 012EC82A */ slt $t9, $t1, $t6 +/* 1158A8 7F0E0D78 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 1158AC 7F0E0D7C 000D5A03 */ sra $t3, $t5, 8 +/* 1158B0 7F0E0D80 01EB4025 */ or $t0, $t7, $t3 +/* 1158B4 7F0E0D84 0019C100 */ sll $t8, $t9, 4 +/* 1158B8 7F0E0D88 01A07025 */ move $t6, $t5 +/* 1158BC 7F0E0D8C 020A5826 */ xor $t3, $s0, $t2 +/* 1158C0 7F0E0D90 31690080 */ andi $t1, $t3, 0x80 +/* 1158C4 7F0E0D94 01D0C826 */ xor $t9, $t6, $s0 +/* 1158C8 7F0E0D98 01187825 */ or $t7, $t0, $t8 +/* 1158CC 7F0E0D9C 01394024 */ and $t0, $t1, $t9 +/* 1158D0 7F0E0DA0 0008C143 */ sra $t8, $t0, 5 +/* 1158D4 7F0E0DA4 A3AA006F */ sb $t2, 0x6f($sp) +/* 1158D8 7F0E0DA8 01F85025 */ or $t2, $t7, $t8 +/* 1158DC 7F0E0DAC A7AD0070 */ sh $t5, 0x70($sp) +/* 1158E0 7F0E0DB0 000C6980 */ sll $t5, $t4, 6 +/* 1158E4 7F0E0DB4 354B0002 */ ori $t3, $t2, 2 +/* 1158E8 7F0E0DB8 2EE90001 */ sltiu $t1, $s7, 1 +/* 1158EC 7F0E0DBC 016D8825 */ or $s1, $t3, $t5 +/* 1158F0 7F0E0DC0 26F7FFFF */ addiu $s7, $s7, -1 +/* 1158F4 7F0E0DC4 322E00FF */ andi $t6, $s1, 0xff +/* 1158F8 7F0E0DC8 AFAC0048 */ sw $t4, 0x48($sp) +/* 1158FC 7F0E0DCC 32F900FF */ andi $t9, $s7, 0xff +/* 115900 7F0E0DD0 01C08825 */ move $s1, $t6 +/* 115904 7F0E0DD4 0320B825 */ move $s7, $t9 +/* 115908 7F0E0DD8 11200004 */ beqz $t1, .L7F0E0DEC +/* 11590C 7F0E0DDC AFA90048 */ sw $t1, 0x48($sp) +/* 115910 7F0E0DE0 26D6FFFF */ addiu $s6, $s6, -1 +/* 115914 7F0E0DE4 32CF00FF */ andi $t7, $s6, 0xff +/* 115918 7F0E0DE8 01E0B025 */ move $s6, $t7 +.L7F0E0DEC: +/* 11591C 7F0E0DEC 2E780001 */ sltiu $t8, $s3, 1 +/* 115920 7F0E0DF0 2673FFFF */ addiu $s3, $s3, -1 +/* 115924 7F0E0DF4 326A00FF */ andi $t2, $s3, 0xff +/* 115928 7F0E0DF8 01409825 */ move $s3, $t2 +/* 11592C 7F0E0DFC 13000004 */ beqz $t8, .L7F0E0E10 +/* 115930 7F0E0E00 AFB80048 */ sw $t8, 0x48($sp) +/* 115934 7F0E0E04 2652FFFF */ addiu $s2, $s2, -1 +/* 115938 7F0E0E08 324B00FF */ andi $t3, $s2, 0xff +/* 11593C 7F0E0E0C 01609025 */ move $s2, $t3 +.L7F0E0E10: +/* 115940 7F0E0E10 93AE0073 */ lbu $t6, 0x73($sp) +/* 115944 7F0E0E14 0253C825 */ or $t9, $s2, $s3 +/* 115948 7F0E0E18 0019402A */ slt $t0, $zero, $t9 +/* 11594C 7F0E0E1C 322D00FA */ andi $t5, $s1, 0xfa +/* 115950 7F0E0E20 00087880 */ sll $t7, $t0, 2 +/* 115954 7F0E0E24 01AE4825 */ or $t1, $t5, $t6 +/* 115958 7F0E0E28 012F8825 */ or $s1, $t1, $t7 +/* 11595C 7F0E0E2C 323800FF */ andi $t8, $s1, 0xff +/* 115960 7F0E0E30 10000672 */ b .L7F0E27FC +/* 115964 7F0E0E34 03008825 */ move $s1, $t8 +spectrum_op_ED_AA: +/* 115968 7F0E0E38 8FAA028C */ lw $t2, 0x28c($sp) +/* 11596C 7F0E0E3C 02402825 */ move $a1, $s2 +/* 115970 7F0E0E40 02603025 */ move $a2, $s3 +/* 115974 7F0E0E44 2544000C */ addiu $a0, $t2, 0xc +/* 115978 7F0E0E48 0FC34DB6 */ jal spectrum_input_handling +/* 11597C 7F0E0E4C AFA4028C */ sw $a0, 0x28c($sp) +/* 115980 7F0E0E50 00165A00 */ sll $t3, $s6, 8 +/* 115984 7F0E0E54 01776825 */ or $t5, $t3, $s7 +/* 115988 7F0E0E58 29A15B00 */ slti $at, $t5, 0x5b00 +/* 11598C 7F0E0E5C 14200008 */ bnez $at, .L7F0E0E80 +/* 115990 7F0E0E60 A7A2006C */ sh $v0, 0x6c($sp) +/* 115994 7F0E0E64 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115998 7F0E0E68 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 11599C 7F0E0E6C 00164200 */ sll $t0, $s6, 8 +/* 1159A0 7F0E0E70 01174825 */ or $t1, $t0, $s7 +/* 1159A4 7F0E0E74 03297821 */ addu $t7, $t9, $t1 +/* 1159A8 7F0E0E78 1000002B */ b .L7F0E0F28 +/* 1159AC 7F0E0E7C A1E20000 */ sb $v0, ($t7) +.L7F0E0E80: +/* 1159B0 7F0E0E80 0016C200 */ sll $t8, $s6, 8 +/* 1159B4 7F0E0E84 03175025 */ or $t2, $t8, $s7 +/* 1159B8 7F0E0E88 29415800 */ slti $at, $t2, 0x5800 +/* 1159BC 7F0E0E8C 14200010 */ bnez $at, .L7F0E0ED0 +/* 1159C0 7F0E0E90 00166A00 */ sll $t5, $s6, 8 +/* 1159C4 7F0E0E94 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1159C8 7F0E0E98 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1159CC 7F0E0E9C 97AC006C */ lhu $t4, 0x6c($sp) +/* 1159D0 7F0E0EA0 00166A00 */ sll $t5, $s6, 8 +/* 1159D4 7F0E0EA4 01B74025 */ or $t0, $t5, $s7 +/* 1159D8 7F0E0EA8 0168C821 */ addu $t9, $t3, $t0 +/* 1159DC 7F0E0EAC 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1159E0 7F0E0EB0 A32C0000 */ sb $t4, ($t9) +/* 1159E4 7F0E0EB4 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1159E8 7F0E0EB8 00167A00 */ sll $t7, $s6, 8 +/* 1159EC 7F0E0EBC 01F7C025 */ or $t8, $t7, $s7 +/* 1159F0 7F0E0EC0 24090001 */ li $t1, 1 +/* 1159F4 7F0E0EC4 01D85021 */ addu $t2, $t6, $t8 +/* 1159F8 7F0E0EC8 10000017 */ b .L7F0E0F28 +/* 1159FC 7F0E0ECC A149A800 */ sb $t1, -0x5800($t2) +.L7F0E0ED0: +/* 115A00 7F0E0ED0 01B75825 */ or $t3, $t5, $s7 +/* 115A04 7F0E0ED4 29614000 */ slti $at, $t3, 0x4000 +/* 115A08 7F0E0ED8 14200013 */ bnez $at, .L7F0E0F28 +/* 115A0C 7F0E0EDC 97A8006C */ lhu $t0, 0x6c($sp) +/* 115A10 7F0E0EE0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115A14 7F0E0EE4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115A18 7F0E0EE8 0016CA00 */ sll $t9, $s6, 8 +/* 115A1C 7F0E0EEC 03377825 */ or $t7, $t9, $s7 +/* 115A20 7F0E0EF0 018F7021 */ addu $t6, $t4, $t7 +/* 115A24 7F0E0EF4 A1C80000 */ sb $t0, ($t6) +/* 115A28 7F0E0EF8 00164A00 */ sll $t1, $s6, 8 +/* 115A2C 7F0E0EFC 01375025 */ or $t2, $t1, $s7 +/* 115A30 7F0E0F00 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115A34 7F0E0F04 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115A38 7F0E0F08 314D1800 */ andi $t5, $t2, 0x1800 +/* 115A3C 7F0E0F0C 03376025 */ or $t4, $t9, $s7 +/* 115A40 7F0E0F10 318F00FF */ andi $t7, $t4, 0xff +/* 115A44 7F0E0F14 000D58C3 */ sra $t3, $t5, 3 +/* 115A48 7F0E0F18 016F4025 */ or $t0, $t3, $t7 +/* 115A4C 7F0E0F1C 24180001 */ li $t8, 1 +/* 115A50 7F0E0F20 01C84821 */ addu $t1, $t6, $t0 +/* 115A54 7F0E0F24 A1380000 */ sb $t8, ($t1) +.L7F0E0F28: +/* 115A58 7F0E0F28 97AD006C */ lhu $t5, 0x6c($sp) +/* 115A5C 7F0E0F2C 8FAA028C */ lw $t2, 0x28c($sp) +/* 115A60 7F0E0F30 2EEB0001 */ sltiu $t3, $s7, 1 +/* 115A64 7F0E0F34 26F7FFFF */ addiu $s7, $s7, -1 +/* 115A68 7F0E0F38 000DCA03 */ sra $t9, $t5, 8 +/* 115A6C 7F0E0F3C 32EF00FF */ andi $t7, $s7, 0xff +/* 115A70 7F0E0F40 01596021 */ addu $t4, $t2, $t9 +/* 115A74 7F0E0F44 AFAC028C */ sw $t4, 0x28c($sp) +/* 115A78 7F0E0F48 01E0B825 */ move $s7, $t7 +/* 115A7C 7F0E0F4C 11600004 */ beqz $t3, .L7F0E0F60 +/* 115A80 7F0E0F50 AFAB0048 */ sw $t3, 0x48($sp) +/* 115A84 7F0E0F54 26D6FFFF */ addiu $s6, $s6, -1 +/* 115A88 7F0E0F58 32C800FF */ andi $t0, $s6, 0xff +/* 115A8C 7F0E0F5C 0100B025 */ move $s6, $t0 +.L7F0E0F60: +/* 115A90 7F0E0F60 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 115A94 7F0E0F64 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 115A98 7F0E0F68 2652FFFF */ addiu $s2, $s2, -1 +/* 115A9C 7F0E0F6C 325800FF */ andi $t8, $s2, 0xff +/* 115AA0 7F0E0F70 030B7821 */ addu $t7, $t8, $t3 +/* 115AA4 7F0E0F74 91EE0000 */ lbu $t6, ($t7) +/* 115AA8 7F0E0F78 330900A8 */ andi $t1, $t8, 0xa8 +/* 115AAC 7F0E0F7C 0018682A */ slt $t5, $zero, $t8 +/* 115AB0 7F0E0F80 03009025 */ move $s2, $t8 +/* 115AB4 7F0E0F84 000D5180 */ sll $t2, $t5, 6 +/* 115AB8 7F0E0F88 01D34026 */ xor $t0, $t6, $s3 +/* 115ABC 7F0E0F8C 39180004 */ xori $t8, $t0, 4 +/* 115AC0 7F0E0F90 012AC825 */ or $t9, $t1, $t2 +/* 115AC4 7F0E0F94 372C0002 */ ori $t4, $t9, 2 +/* 115AC8 7F0E0F98 330D0004 */ andi $t5, $t8, 4 +/* 115ACC 7F0E0F9C 01AC8825 */ or $s1, $t5, $t4 +/* 115AD0 7F0E0FA0 322900FF */ andi $t1, $s1, 0xff +/* 115AD4 7F0E0FA4 10000615 */ b .L7F0E27FC +/* 115AD8 7F0E0FA8 01208825 */ move $s1, $t1 +spectrum_op_ED_AB: +/* 115ADC 7F0E0FAC 8FAA028C */ lw $t2, 0x28c($sp) +/* 115AE0 7F0E0FB0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 115AE4 7F0E0FB4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 115AE8 7F0E0FB8 00165A00 */ sll $t3, $s6, 8 +/* 115AEC 7F0E0FBC 01777825 */ or $t7, $t3, $s7 +/* 115AF0 7F0E0FC0 2544000C */ addiu $a0, $t2, 0xc +/* 115AF4 7F0E0FC4 AFA4028C */ sw $a0, 0x28c($sp) +/* 115AF8 7F0E0FC8 01EE4021 */ addu $t0, $t7, $t6 +/* 115AFC 7F0E0FCC 91070000 */ lbu $a3, ($t0) +/* 115B00 7F0E0FD0 02402825 */ move $a1, $s2 +/* 115B04 7F0E0FD4 02603025 */ move $a2, $s3 +/* 115B08 7F0E0FD8 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115B0C 7F0E0FDC A3A7006B */ sb $a3, 0x6b($sp) +/* 115B10 7F0E0FE0 8FAD028C */ lw $t5, 0x28c($sp) +/* 115B14 7F0E0FE4 2EEA0001 */ sltiu $t2, $s7, 1 +/* 115B18 7F0E0FE8 26F7FFFF */ addiu $s7, $s7, -1 +/* 115B1C 7F0E0FEC AFA20048 */ sw $v0, 0x48($sp) +/* 115B20 7F0E0FF0 32EB00FF */ andi $t3, $s7, 0xff +/* 115B24 7F0E0FF4 01A24821 */ addu $t1, $t5, $v0 +/* 115B28 7F0E0FF8 AFA9028C */ sw $t1, 0x28c($sp) +/* 115B2C 7F0E0FFC 0160B825 */ move $s7, $t3 +/* 115B30 7F0E1000 11400004 */ beqz $t2, .L7F0E1014 +/* 115B34 7F0E1004 AFAA0048 */ sw $t2, 0x48($sp) +/* 115B38 7F0E1008 26D6FFFF */ addiu $s6, $s6, -1 +/* 115B3C 7F0E100C 32CE00FF */ andi $t6, $s6, 0xff +/* 115B40 7F0E1010 01C0B025 */ move $s6, $t6 +.L7F0E1014: +/* 115B44 7F0E1014 2652FFFF */ addiu $s2, $s2, -1 +/* 115B48 7F0E1018 324800FF */ andi $t0, $s2, 0xff +/* 115B4C 7F0E101C 32390001 */ andi $t9, $s1, 1 +/* 115B50 7F0E1020 37380012 */ ori $t8, $t9, 0x12 +/* 115B54 7F0E1024 310D00A8 */ andi $t5, $t0, 0xa8 +/* 115B58 7F0E1028 2D090001 */ sltiu $t1, $t0, 1 +/* 115B5C 7F0E102C 00095180 */ sll $t2, $t1, 6 +/* 115B60 7F0E1030 030D6025 */ or $t4, $t8, $t5 +/* 115B64 7F0E1034 018A8825 */ or $s1, $t4, $t2 +/* 115B68 7F0E1038 322B00FF */ andi $t3, $s1, 0xff +/* 115B6C 7F0E103C 01009025 */ move $s2, $t0 +/* 115B70 7F0E1040 100005EE */ b .L7F0E27FC +/* 115B74 7F0E1044 01608825 */ move $s1, $t3 +spectrum_op_ED_B0: +/* 115B78 7F0E1048 8FAF028C */ lw $t7, 0x28c($sp) +/* 115B7C 7F0E104C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115B80 7F0E1050 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 115B84 7F0E1054 00164200 */ sll $t0, $s6, 8 +/* 115B88 7F0E1058 0117C825 */ or $t9, $t0, $s7 +/* 115B8C 7F0E105C 25EE000C */ addiu $t6, $t7, 0xc +/* 115B90 7F0E1060 AFAE028C */ sw $t6, 0x28c($sp) +/* 115B94 7F0E1064 00146200 */ sll $t4, $s4, 8 +/* 115B98 7F0E1068 03386821 */ addu $t5, $t9, $t8 +/* 115B9C 7F0E106C 91A90000 */ lbu $t1, ($t5) +/* 115BA0 7F0E1070 01955025 */ or $t2, $t4, $s5 +/* 115BA4 7F0E1074 29415B00 */ slti $at, $t2, 0x5b00 +/* 115BA8 7F0E1078 14200008 */ bnez $at, .L7F0E109C +/* 115BAC 7F0E107C A3A9006A */ sb $t1, 0x6a($sp) +/* 115BB0 7F0E1080 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115BB4 7F0E1084 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115BB8 7F0E1088 00147200 */ sll $t6, $s4, 8 +/* 115BBC 7F0E108C 01D54025 */ or $t0, $t6, $s5 +/* 115BC0 7F0E1090 01E8C821 */ addu $t9, $t7, $t0 +/* 115BC4 7F0E1094 1000002B */ b .L7F0E1144 +/* 115BC8 7F0E1098 A3290000 */ sb $t1, ($t9) +.L7F0E109C: +/* 115BCC 7F0E109C 0014C200 */ sll $t8, $s4, 8 +/* 115BD0 7F0E10A0 03156825 */ or $t5, $t8, $s5 +/* 115BD4 7F0E10A4 29A15800 */ slti $at, $t5, 0x5800 +/* 115BD8 7F0E10A8 14200010 */ bnez $at, .L7F0E10EC +/* 115BDC 7F0E10AC 00145200 */ sll $t2, $s4, 8 +/* 115BE0 7F0E10B0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115BE4 7F0E10B4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115BE8 7F0E10B8 93A9006A */ lbu $t1, 0x6a($sp) +/* 115BEC 7F0E10BC 00145200 */ sll $t2, $s4, 8 +/* 115BF0 7F0E10C0 01557025 */ or $t6, $t2, $s5 +/* 115BF4 7F0E10C4 018E7821 */ addu $t7, $t4, $t6 +/* 115BF8 7F0E10C8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115BFC 7F0E10CC A1E90000 */ sb $t1, ($t7) +/* 115C00 7F0E10D0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115C04 7F0E10D4 0014CA00 */ sll $t9, $s4, 8 +/* 115C08 7F0E10D8 0335C025 */ or $t8, $t9, $s5 +/* 115C0C 7F0E10DC 24080001 */ li $t0, 1 +/* 115C10 7F0E10E0 01786821 */ addu $t5, $t3, $t8 +/* 115C14 7F0E10E4 10000017 */ b .L7F0E1144 +/* 115C18 7F0E10E8 A1A8A800 */ sb $t0, -0x5800($t5) +.L7F0E10EC: +/* 115C1C 7F0E10EC 01556025 */ or $t4, $t2, $s5 +/* 115C20 7F0E10F0 29814000 */ slti $at, $t4, 0x4000 +/* 115C24 7F0E10F4 14200013 */ bnez $at, .L7F0E1144 +/* 115C28 7F0E10F8 93AE006A */ lbu $t6, 0x6a($sp) +/* 115C2C 7F0E10FC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 115C30 7F0E1100 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 115C34 7F0E1104 00147A00 */ sll $t7, $s4, 8 +/* 115C38 7F0E1108 01F5C825 */ or $t9, $t7, $s5 +/* 115C3C 7F0E110C 01395821 */ addu $t3, $t1, $t9 +/* 115C40 7F0E1110 A16E0000 */ sb $t6, ($t3) +/* 115C44 7F0E1114 00144200 */ sll $t0, $s4, 8 +/* 115C48 7F0E1118 01156825 */ or $t5, $t0, $s5 +/* 115C4C 7F0E111C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115C50 7F0E1120 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115C54 7F0E1124 31AA1800 */ andi $t2, $t5, 0x1800 +/* 115C58 7F0E1128 01F54825 */ or $t1, $t7, $s5 +/* 115C5C 7F0E112C 313900FF */ andi $t9, $t1, 0xff +/* 115C60 7F0E1130 000A60C3 */ sra $t4, $t2, 3 +/* 115C64 7F0E1134 01997025 */ or $t6, $t4, $t9 +/* 115C68 7F0E1138 24180001 */ li $t8, 1 +/* 115C6C 7F0E113C 016E4021 */ addu $t0, $t3, $t6 +/* 115C70 7F0E1140 A1180000 */ sb $t8, ($t0) +.L7F0E1144: +/* 115C74 7F0E1144 26F70001 */ addiu $s7, $s7, 1 +/* 115C78 7F0E1148 32ED00FF */ andi $t5, $s7, 0xff +/* 115C7C 7F0E114C 15A00004 */ bnez $t5, .L7F0E1160 +/* 115C80 7F0E1150 01A0B825 */ move $s7, $t5 +/* 115C84 7F0E1154 26D60001 */ addiu $s6, $s6, 1 +/* 115C88 7F0E1158 32CA00FF */ andi $t2, $s6, 0xff +/* 115C8C 7F0E115C 0140B025 */ move $s6, $t2 +.L7F0E1160: +/* 115C90 7F0E1160 26B50001 */ addiu $s5, $s5, 1 +/* 115C94 7F0E1164 32AF00FF */ andi $t7, $s5, 0xff +/* 115C98 7F0E1168 15E00004 */ bnez $t7, .L7F0E117C +/* 115C9C 7F0E116C 01E0A825 */ move $s5, $t7 +/* 115CA0 7F0E1170 26940001 */ addiu $s4, $s4, 1 +/* 115CA4 7F0E1174 328900FF */ andi $t1, $s4, 0xff +/* 115CA8 7F0E1178 0120A025 */ move $s4, $t1 +.L7F0E117C: +/* 115CAC 7F0E117C 2E6C0001 */ sltiu $t4, $s3, 1 +/* 115CB0 7F0E1180 2673FFFF */ addiu $s3, $s3, -1 +/* 115CB4 7F0E1184 327900FF */ andi $t9, $s3, 0xff +/* 115CB8 7F0E1188 03209825 */ move $s3, $t9 +/* 115CBC 7F0E118C 11800004 */ beqz $t4, .L7F0E11A0 +/* 115CC0 7F0E1190 AFAC0048 */ sw $t4, 0x48($sp) +/* 115CC4 7F0E1194 2652FFFF */ addiu $s2, $s2, -1 +/* 115CC8 7F0E1198 324E00FF */ andi $t6, $s2, 0xff +/* 115CCC 7F0E119C 01C09025 */ move $s2, $t6 +.L7F0E11A0: +/* 115CD0 7F0E11A0 93A8006A */ lbu $t0, 0x6a($sp) +/* 115CD4 7F0E11A4 02537825 */ or $t7, $s2, $s3 +/* 115CD8 7F0E11A8 000F482A */ slt $t1, $zero, $t7 +/* 115CDC 7F0E11AC 323800C1 */ andi $t8, $s1, 0xc1 +/* 115CE0 7F0E11B0 310D0028 */ andi $t5, $t0, 0x28 +/* 115CE4 7F0E11B4 030D5025 */ or $t2, $t8, $t5 +/* 115CE8 7F0E11B8 00096080 */ sll $t4, $t1, 2 +/* 115CEC 7F0E11BC 014C8825 */ or $s1, $t2, $t4 +/* 115CF0 7F0E11C0 323900FF */ andi $t9, $s1, 0xff +/* 115CF4 7F0E11C4 02535825 */ or $t3, $s2, $s3 +/* 115CF8 7F0E11C8 1160058C */ beqz $t3, .L7F0E27FC +/* 115CFC 7F0E11CC 03208825 */ move $s1, $t9 +/* 115D00 7F0E11D0 97AE0298 */ lhu $t6, 0x298($sp) +/* 115D04 7F0E11D4 8FB8028C */ lw $t8, 0x28c($sp) +/* 115D08 7F0E11D8 25C8FFFE */ addiu $t0, $t6, -2 +/* 115D0C 7F0E11DC 270D0005 */ addiu $t5, $t8, 5 +/* 115D10 7F0E11E0 AFAD028C */ sw $t5, 0x28c($sp) +/* 115D14 7F0E11E4 10000585 */ b .L7F0E27FC +/* 115D18 7F0E11E8 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B1: +/* 115D1C 7F0E11EC 8FAF028C */ lw $t7, 0x28c($sp) +/* 115D20 7F0E11F0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115D24 7F0E11F4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 115D28 7F0E11F8 00166200 */ sll $t4, $s6, 8 +/* 115D2C 7F0E11FC 322A0001 */ andi $t2, $s1, 1 +/* 115D30 7F0E1200 0197C825 */ or $t9, $t4, $s7 +/* 115D34 7F0E1204 25E9000C */ addiu $t1, $t7, 0xc +/* 115D38 7F0E1208 AFA9028C */ sw $t1, 0x28c($sp) +/* 115D3C 7F0E120C A3AA0069 */ sb $t2, 0x69($sp) +/* 115D40 7F0E1210 032B7021 */ addu $t6, $t9, $t3 +/* 115D44 7F0E1214 91C80000 */ lbu $t0, ($t6) +/* 115D48 7F0E1218 26F70001 */ addiu $s7, $s7, 1 +/* 115D4C 7F0E121C 24010004 */ li $at, 4 +/* 115D50 7F0E1220 0208C023 */ subu $t8, $s0, $t0 +/* 115D54 7F0E1224 330D01FF */ andi $t5, $t8, 0x1ff +/* 115D58 7F0E1228 31AFFFFF */ andi $t7, $t5, 0xffff +/* 115D5C 7F0E122C 2DE90001 */ sltiu $t1, $t7, 1 +/* 115D60 7F0E1230 320F000F */ andi $t7, $s0, 0xf +/* 115D64 7F0E1234 3118000F */ andi $t8, $t0, 0xf +/* 115D68 7F0E1238 01F8502A */ slt $t2, $t7, $t8 +/* 115D6C 7F0E123C 31AC00A8 */ andi $t4, $t5, 0xa8 +/* 115D70 7F0E1240 000D5A03 */ sra $t3, $t5, 8 +/* 115D74 7F0E1244 018B7025 */ or $t6, $t4, $t3 +/* 115D78 7F0E1248 000AC900 */ sll $t9, $t2, 4 +/* 115D7C 7F0E124C 01A0C025 */ move $t8, $t5 +/* 115D80 7F0E1250 02085826 */ xor $t3, $s0, $t0 +/* 115D84 7F0E1254 316F0080 */ andi $t7, $t3, 0x80 +/* 115D88 7F0E1258 03105026 */ xor $t2, $t8, $s0 +/* 115D8C 7F0E125C 01D96025 */ or $t4, $t6, $t9 +/* 115D90 7F0E1260 01EA7024 */ and $t6, $t7, $t2 +/* 115D94 7F0E1264 000EC943 */ sra $t9, $t6, 5 +/* 115D98 7F0E1268 A3A80065 */ sb $t0, 0x65($sp) +/* 115D9C 7F0E126C 01994025 */ or $t0, $t4, $t9 +/* 115DA0 7F0E1270 A7AD0066 */ sh $t5, 0x66($sp) +/* 115DA4 7F0E1274 00096980 */ sll $t5, $t1, 6 +/* 115DA8 7F0E1278 350B0002 */ ori $t3, $t0, 2 +/* 115DAC 7F0E127C 016D8825 */ or $s1, $t3, $t5 +/* 115DB0 7F0E1280 323800FF */ andi $t8, $s1, 0xff +/* 115DB4 7F0E1284 32EF00FF */ andi $t7, $s7, 0xff +/* 115DB8 7F0E1288 03008825 */ move $s1, $t8 +/* 115DBC 7F0E128C AFA90048 */ sw $t1, 0x48($sp) +/* 115DC0 7F0E1290 15E00004 */ bnez $t7, .L7F0E12A4 +/* 115DC4 7F0E1294 01E0B825 */ move $s7, $t7 +/* 115DC8 7F0E1298 26D60001 */ addiu $s6, $s6, 1 +/* 115DCC 7F0E129C 32CA00FF */ andi $t2, $s6, 0xff +/* 115DD0 7F0E12A0 0140B025 */ move $s6, $t2 +.L7F0E12A4: +/* 115DD4 7F0E12A4 2E6E0001 */ sltiu $t6, $s3, 1 +/* 115DD8 7F0E12A8 2673FFFF */ addiu $s3, $s3, -1 +/* 115DDC 7F0E12AC 326C00FF */ andi $t4, $s3, 0xff +/* 115DE0 7F0E12B0 01809825 */ move $s3, $t4 +/* 115DE4 7F0E12B4 11C00004 */ beqz $t6, .L7F0E12C8 +/* 115DE8 7F0E12B8 AFAE0048 */ sw $t6, 0x48($sp) +/* 115DEC 7F0E12BC 2652FFFF */ addiu $s2, $s2, -1 +/* 115DF0 7F0E12C0 324800FF */ andi $t0, $s2, 0xff +/* 115DF4 7F0E12C4 01009025 */ move $s2, $t0 +.L7F0E12C8: +/* 115DF8 7F0E12C8 93AB0069 */ lbu $t3, 0x69($sp) +/* 115DFC 7F0E12CC 0253C025 */ or $t8, $s2, $s3 +/* 115E00 7F0E12D0 0018782A */ slt $t7, $zero, $t8 +/* 115E04 7F0E12D4 322900FA */ andi $t1, $s1, 0xfa +/* 115E08 7F0E12D8 000F5080 */ sll $t2, $t7, 2 +/* 115E0C 7F0E12DC 012B6825 */ or $t5, $t1, $t3 +/* 115E10 7F0E12E0 01AA8825 */ or $s1, $t5, $t2 +/* 115E14 7F0E12E4 322E00FF */ andi $t6, $s1, 0xff +/* 115E18 7F0E12E8 31CC0044 */ andi $t4, $t6, 0x44 +/* 115E1C 7F0E12EC 15810543 */ bne $t4, $at, .L7F0E27FC +/* 115E20 7F0E12F0 01C08825 */ move $s1, $t6 +/* 115E24 7F0E12F4 97B90298 */ lhu $t9, 0x298($sp) +/* 115E28 7F0E12F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 115E2C 7F0E12FC 2728FFFE */ addiu $t0, $t9, -2 +/* 115E30 7F0E1300 252B0005 */ addiu $t3, $t1, 5 +/* 115E34 7F0E1304 AFAB028C */ sw $t3, 0x28c($sp) +/* 115E38 7F0E1308 1000053C */ b .L7F0E27FC +/* 115E3C 7F0E130C A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B2: +/* 115E40 7F0E1310 8FB8028C */ lw $t8, 0x28c($sp) +/* 115E44 7F0E1314 02402825 */ move $a1, $s2 +/* 115E48 7F0E1318 02603025 */ move $a2, $s3 +/* 115E4C 7F0E131C 2704000C */ addiu $a0, $t8, 0xc +/* 115E50 7F0E1320 0FC34DB6 */ jal spectrum_input_handling +/* 115E54 7F0E1324 AFA4028C */ sw $a0, 0x28c($sp) +/* 115E58 7F0E1328 00166A00 */ sll $t5, $s6, 8 +/* 115E5C 7F0E132C 01B75025 */ or $t2, $t5, $s7 +/* 115E60 7F0E1330 29415B00 */ slti $at, $t2, 0x5b00 +/* 115E64 7F0E1334 14200008 */ bnez $at, .L7F0E1358 +/* 115E68 7F0E1338 A7A20062 */ sh $v0, 0x62($sp) +/* 115E6C 7F0E133C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115E70 7F0E1340 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115E74 7F0E1344 0016CA00 */ sll $t9, $s6, 8 +/* 115E78 7F0E1348 03374025 */ or $t0, $t9, $s7 +/* 115E7C 7F0E134C 01884821 */ addu $t1, $t4, $t0 +/* 115E80 7F0E1350 1000002B */ b .L7F0E1400 +/* 115E84 7F0E1354 A1220000 */ sb $v0, ($t1) +.L7F0E1358: +/* 115E88 7F0E1358 00165A00 */ sll $t3, $s6, 8 +/* 115E8C 7F0E135C 0177C025 */ or $t8, $t3, $s7 +/* 115E90 7F0E1360 2B015800 */ slti $at, $t8, 0x5800 +/* 115E94 7F0E1364 14200010 */ bnez $at, .L7F0E13A8 +/* 115E98 7F0E1368 00165200 */ sll $t2, $s6, 8 +/* 115E9C 7F0E136C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 115EA0 7F0E1370 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 115EA4 7F0E1374 97AF0062 */ lhu $t7, 0x62($sp) +/* 115EA8 7F0E1378 00165200 */ sll $t2, $s6, 8 +/* 115EAC 7F0E137C 0157C825 */ or $t9, $t2, $s7 +/* 115EB0 7F0E1380 01B96021 */ addu $t4, $t5, $t9 +/* 115EB4 7F0E1384 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115EB8 7F0E1388 A18F0000 */ sb $t7, ($t4) +/* 115EBC 7F0E138C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115EC0 7F0E1390 00164A00 */ sll $t1, $s6, 8 +/* 115EC4 7F0E1394 01375825 */ or $t3, $t1, $s7 +/* 115EC8 7F0E1398 24080001 */ li $t0, 1 +/* 115ECC 7F0E139C 01CBC021 */ addu $t8, $t6, $t3 +/* 115ED0 7F0E13A0 10000017 */ b .L7F0E1400 +/* 115ED4 7F0E13A4 A308A800 */ sb $t0, -0x5800($t8) +.L7F0E13A8: +/* 115ED8 7F0E13A8 01576825 */ or $t5, $t2, $s7 +/* 115EDC 7F0E13AC 29A14000 */ slti $at, $t5, 0x4000 +/* 115EE0 7F0E13B0 14200013 */ bnez $at, .L7F0E1400 +/* 115EE4 7F0E13B4 97B90062 */ lhu $t9, 0x62($sp) +/* 115EE8 7F0E13B8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115EEC 7F0E13BC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115EF0 7F0E13C0 00166200 */ sll $t4, $s6, 8 +/* 115EF4 7F0E13C4 01974825 */ or $t1, $t4, $s7 +/* 115EF8 7F0E13C8 01E97021 */ addu $t6, $t7, $t1 +/* 115EFC 7F0E13CC A1D90000 */ sb $t9, ($t6) +/* 115F00 7F0E13D0 00164200 */ sll $t0, $s6, 8 +/* 115F04 7F0E13D4 0117C025 */ or $t8, $t0, $s7 +/* 115F08 7F0E13D8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115F0C 7F0E13DC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115F10 7F0E13E0 330A1800 */ andi $t2, $t8, 0x1800 +/* 115F14 7F0E13E4 01977825 */ or $t7, $t4, $s7 +/* 115F18 7F0E13E8 31E900FF */ andi $t1, $t7, 0xff +/* 115F1C 7F0E13EC 000A68C3 */ sra $t5, $t2, 3 +/* 115F20 7F0E13F0 01A9C825 */ or $t9, $t5, $t1 +/* 115F24 7F0E13F4 240B0001 */ li $t3, 1 +/* 115F28 7F0E13F8 01D94021 */ addu $t0, $t6, $t9 +/* 115F2C 7F0E13FC A10B0000 */ sb $t3, ($t0) +.L7F0E1400: +/* 115F30 7F0E1400 97AA0062 */ lhu $t2, 0x62($sp) +/* 115F34 7F0E1404 8FB8028C */ lw $t8, 0x28c($sp) +/* 115F38 7F0E1408 26F70001 */ addiu $s7, $s7, 1 +/* 115F3C 7F0E140C 000A6203 */ sra $t4, $t2, 8 +/* 115F40 7F0E1410 32ED00FF */ andi $t5, $s7, 0xff +/* 115F44 7F0E1414 030C7821 */ addu $t7, $t8, $t4 +/* 115F48 7F0E1418 AFAF028C */ sw $t7, 0x28c($sp) +/* 115F4C 7F0E141C 15A00004 */ bnez $t5, .L7F0E1430 +/* 115F50 7F0E1420 01A0B825 */ move $s7, $t5 +/* 115F54 7F0E1424 26D60001 */ addiu $s6, $s6, 1 +/* 115F58 7F0E1428 32C900FF */ andi $t1, $s6, 0xff +/* 115F5C 7F0E142C 0120B025 */ move $s6, $t1 +.L7F0E1430: +/* 115F60 7F0E1430 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 115F64 7F0E1434 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 115F68 7F0E1438 2652FFFF */ addiu $s2, $s2, -1 +/* 115F6C 7F0E143C 324E00FF */ andi $t6, $s2, 0xff +/* 115F70 7F0E1440 01CC7821 */ addu $t7, $t6, $t4 +/* 115F74 7F0E1444 91ED0000 */ lbu $t5, ($t7) +/* 115F78 7F0E1448 000E582A */ slt $t3, $zero, $t6 +/* 115F7C 7F0E144C 000B4180 */ sll $t0, $t3, 6 +/* 115F80 7F0E1450 31D900A8 */ andi $t9, $t6, 0xa8 +/* 115F84 7F0E1454 01C09025 */ move $s2, $t6 +/* 115F88 7F0E1458 03285025 */ or $t2, $t9, $t0 +/* 115F8C 7F0E145C 01B34826 */ xor $t1, $t5, $s3 +/* 115F90 7F0E1460 312E0004 */ andi $t6, $t1, 4 +/* 115F94 7F0E1464 35580002 */ ori $t8, $t2, 2 +/* 115F98 7F0E1468 01D88825 */ or $s1, $t6, $t8 +/* 115F9C 7F0E146C 322B00FF */ andi $t3, $s1, 0xff +/* 115FA0 7F0E1470 124004E2 */ beqz $s2, .L7F0E27FC +/* 115FA4 7F0E1474 01608825 */ move $s1, $t3 +/* 115FA8 7F0E1478 97B90298 */ lhu $t9, 0x298($sp) +/* 115FAC 7F0E147C 8FAA028C */ lw $t2, 0x28c($sp) +/* 115FB0 7F0E1480 2728FFFE */ addiu $t0, $t9, -2 +/* 115FB4 7F0E1484 254C0005 */ addiu $t4, $t2, 5 +/* 115FB8 7F0E1488 AFAC028C */ sw $t4, 0x28c($sp) +/* 115FBC 7F0E148C 100004DB */ b .L7F0E27FC +/* 115FC0 7F0E1490 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B3: +/* 115FC4 7F0E1494 8FAF028C */ lw $t7, 0x28c($sp) +/* 115FC8 7F0E1498 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115FCC 7F0E149C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 115FD0 7F0E14A0 00164A00 */ sll $t1, $s6, 8 +/* 115FD4 7F0E14A4 01377025 */ or $t6, $t1, $s7 +/* 115FD8 7F0E14A8 25E4000C */ addiu $a0, $t7, 0xc +/* 115FDC 7F0E14AC AFA4028C */ sw $a0, 0x28c($sp) +/* 115FE0 7F0E14B0 01D85821 */ addu $t3, $t6, $t8 +/* 115FE4 7F0E14B4 91670000 */ lbu $a3, ($t3) +/* 115FE8 7F0E14B8 02402825 */ move $a1, $s2 +/* 115FEC 7F0E14BC 02603025 */ move $a2, $s3 +/* 115FF0 7F0E14C0 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115FF4 7F0E14C4 A3A70061 */ sb $a3, 0x61($sp) +/* 115FF8 7F0E14C8 8FA8028C */ lw $t0, 0x28c($sp) +/* 115FFC 7F0E14CC 26F70001 */ addiu $s7, $s7, 1 +/* 116000 7F0E14D0 32EF00FF */ andi $t7, $s7, 0xff +/* 116004 7F0E14D4 01026021 */ addu $t4, $t0, $v0 +/* 116008 7F0E14D8 AFAC028C */ sw $t4, 0x28c($sp) +/* 11600C 7F0E14DC AFA20048 */ sw $v0, 0x48($sp) +/* 116010 7F0E14E0 15E00004 */ bnez $t7, .L7F0E14F4 +/* 116014 7F0E14E4 01E0B825 */ move $s7, $t7 +/* 116018 7F0E14E8 26D60001 */ addiu $s6, $s6, 1 +/* 11601C 7F0E14EC 32C900FF */ andi $t1, $s6, 0xff +/* 116020 7F0E14F0 0120B025 */ move $s6, $t1 +.L7F0E14F4: +/* 116024 7F0E14F4 2652FFFF */ addiu $s2, $s2, -1 +/* 116028 7F0E14F8 324E00FF */ andi $t6, $s2, 0xff +/* 11602C 7F0E14FC 32380001 */ andi $t8, $s1, 1 +/* 116030 7F0E1500 370B0012 */ ori $t3, $t8, 0x12 +/* 116034 7F0E1504 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 116038 7F0E1508 2DC80001 */ sltiu $t0, $t6, 1 +/* 11603C 7F0E150C 00085180 */ sll $t2, $t0, 6 +/* 116040 7F0E1510 016DC825 */ or $t9, $t3, $t5 +/* 116044 7F0E1514 032A8825 */ or $s1, $t9, $t2 +/* 116048 7F0E1518 322C00FF */ andi $t4, $s1, 0xff +/* 11604C 7F0E151C 01C09025 */ move $s2, $t6 +/* 116050 7F0E1520 11C004B6 */ beqz $t6, .L7F0E27FC +/* 116054 7F0E1524 01808825 */ move $s1, $t4 +/* 116058 7F0E1528 97AF0298 */ lhu $t7, 0x298($sp) +/* 11605C 7F0E152C 8FAE028C */ lw $t6, 0x28c($sp) +/* 116060 7F0E1530 25E9FFFE */ addiu $t1, $t7, -2 +/* 116064 7F0E1534 25D80005 */ addiu $t8, $t6, 5 +/* 116068 7F0E1538 AFB8028C */ sw $t8, 0x28c($sp) +/* 11606C 7F0E153C 100004AF */ b .L7F0E27FC +/* 116070 7F0E1540 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_ED_B8: +/* 116074 7F0E1544 8FAB028C */ lw $t3, 0x28c($sp) +/* 116078 7F0E1548 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11607C 7F0E154C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116080 7F0E1550 00164200 */ sll $t0, $s6, 8 +/* 116084 7F0E1554 0117C825 */ or $t9, $t0, $s7 +/* 116088 7F0E1558 256D000C */ addiu $t5, $t3, 0xc +/* 11608C 7F0E155C AFAD028C */ sw $t5, 0x28c($sp) +/* 116090 7F0E1560 00144A00 */ sll $t1, $s4, 8 +/* 116094 7F0E1564 032A6021 */ addu $t4, $t9, $t2 +/* 116098 7F0E1568 918F0000 */ lbu $t7, ($t4) +/* 11609C 7F0E156C 01357025 */ or $t6, $t1, $s5 +/* 1160A0 7F0E1570 29C15B00 */ slti $at, $t6, 0x5b00 +/* 1160A4 7F0E1574 14200008 */ bnez $at, .L7F0E1598 +/* 1160A8 7F0E1578 A3AF0060 */ sb $t7, 0x60($sp) +/* 1160AC 7F0E157C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1160B0 7F0E1580 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1160B4 7F0E1584 00146A00 */ sll $t5, $s4, 8 +/* 1160B8 7F0E1588 01B54025 */ or $t0, $t5, $s5 +/* 1160BC 7F0E158C 0168C821 */ addu $t9, $t3, $t0 +/* 1160C0 7F0E1590 1000002B */ b .L7F0E1640 +/* 1160C4 7F0E1594 A32F0000 */ sb $t7, ($t9) +.L7F0E1598: +/* 1160C8 7F0E1598 00145200 */ sll $t2, $s4, 8 +/* 1160CC 7F0E159C 01556025 */ or $t4, $t2, $s5 +/* 1160D0 7F0E15A0 29815800 */ slti $at, $t4, 0x5800 +/* 1160D4 7F0E15A4 14200010 */ bnez $at, .L7F0E15E8 +/* 1160D8 7F0E15A8 00147200 */ sll $t6, $s4, 8 +/* 1160DC 7F0E15AC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1160E0 7F0E15B0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1160E4 7F0E15B4 93AF0060 */ lbu $t7, 0x60($sp) +/* 1160E8 7F0E15B8 00147200 */ sll $t6, $s4, 8 +/* 1160EC 7F0E15BC 01D56825 */ or $t5, $t6, $s5 +/* 1160F0 7F0E15C0 012D5821 */ addu $t3, $t1, $t5 +/* 1160F4 7F0E15C4 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1160F8 7F0E15C8 A16F0000 */ sb $t7, ($t3) +/* 1160FC 7F0E15CC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116100 7F0E15D0 0014CA00 */ sll $t9, $s4, 8 +/* 116104 7F0E15D4 03355025 */ or $t2, $t9, $s5 +/* 116108 7F0E15D8 24080001 */ li $t0, 1 +/* 11610C 7F0E15DC 030A6021 */ addu $t4, $t8, $t2 +/* 116110 7F0E15E0 10000017 */ b .L7F0E1640 +/* 116114 7F0E15E4 A188A800 */ sb $t0, -0x5800($t4) +.L7F0E15E8: +/* 116118 7F0E15E8 01D54825 */ or $t1, $t6, $s5 +/* 11611C 7F0E15EC 29214000 */ slti $at, $t1, 0x4000 +/* 116120 7F0E15F0 14200013 */ bnez $at, .L7F0E1640 +/* 116124 7F0E15F4 93AD0060 */ lbu $t5, 0x60($sp) +/* 116128 7F0E15F8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 11612C 7F0E15FC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116130 7F0E1600 00145A00 */ sll $t3, $s4, 8 +/* 116134 7F0E1604 0175C825 */ or $t9, $t3, $s5 +/* 116138 7F0E1608 01F9C021 */ addu $t8, $t7, $t9 +/* 11613C 7F0E160C A30D0000 */ sb $t5, ($t8) +/* 116140 7F0E1610 00144200 */ sll $t0, $s4, 8 +/* 116144 7F0E1614 01156025 */ or $t4, $t0, $s5 +/* 116148 7F0E1618 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 11614C 7F0E161C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116150 7F0E1620 318E1800 */ andi $t6, $t4, 0x1800 +/* 116154 7F0E1624 01757825 */ or $t7, $t3, $s5 +/* 116158 7F0E1628 31F900FF */ andi $t9, $t7, 0xff +/* 11615C 7F0E162C 000E48C3 */ sra $t1, $t6, 3 +/* 116160 7F0E1630 01396825 */ or $t5, $t1, $t9 +/* 116164 7F0E1634 240A0001 */ li $t2, 1 +/* 116168 7F0E1638 030D4021 */ addu $t0, $t8, $t5 +/* 11616C 7F0E163C A10A0000 */ sb $t2, ($t0) +.L7F0E1640: +/* 116170 7F0E1640 2EEC0001 */ sltiu $t4, $s7, 1 +/* 116174 7F0E1644 26F7FFFF */ addiu $s7, $s7, -1 +/* 116178 7F0E1648 32EE00FF */ andi $t6, $s7, 0xff +/* 11617C 7F0E164C 01C0B825 */ move $s7, $t6 +/* 116180 7F0E1650 11800004 */ beqz $t4, .L7F0E1664 +/* 116184 7F0E1654 AFAC0048 */ sw $t4, 0x48($sp) +/* 116188 7F0E1658 26D6FFFF */ addiu $s6, $s6, -1 +/* 11618C 7F0E165C 32CF00FF */ andi $t7, $s6, 0xff +/* 116190 7F0E1660 01E0B025 */ move $s6, $t7 +.L7F0E1664: +/* 116194 7F0E1664 2EA90001 */ sltiu $t1, $s5, 1 +/* 116198 7F0E1668 26B5FFFF */ addiu $s5, $s5, -1 +/* 11619C 7F0E166C 32B900FF */ andi $t9, $s5, 0xff +/* 1161A0 7F0E1670 0320A825 */ move $s5, $t9 +/* 1161A4 7F0E1674 11200004 */ beqz $t1, .L7F0E1688 +/* 1161A8 7F0E1678 AFA90048 */ sw $t1, 0x48($sp) +/* 1161AC 7F0E167C 2694FFFF */ addiu $s4, $s4, -1 +/* 1161B0 7F0E1680 328D00FF */ andi $t5, $s4, 0xff +/* 1161B4 7F0E1684 01A0A025 */ move $s4, $t5 +.L7F0E1688: +/* 1161B8 7F0E1688 2E6A0001 */ sltiu $t2, $s3, 1 +/* 1161BC 7F0E168C 2673FFFF */ addiu $s3, $s3, -1 +/* 1161C0 7F0E1690 326800FF */ andi $t0, $s3, 0xff +/* 1161C4 7F0E1694 01009825 */ move $s3, $t0 +/* 1161C8 7F0E1698 11400004 */ beqz $t2, .L7F0E16AC +/* 1161CC 7F0E169C AFAA0048 */ sw $t2, 0x48($sp) +/* 1161D0 7F0E16A0 2652FFFF */ addiu $s2, $s2, -1 +/* 1161D4 7F0E16A4 324E00FF */ andi $t6, $s2, 0xff +/* 1161D8 7F0E16A8 01C09025 */ move $s2, $t6 +.L7F0E16AC: +/* 1161DC 7F0E16AC 93AF0060 */ lbu $t7, 0x60($sp) +/* 1161E0 7F0E16B0 0253C025 */ or $t8, $s2, $s3 +/* 1161E4 7F0E16B4 0018682A */ slt $t5, $zero, $t8 +/* 1161E8 7F0E16B8 322B00C1 */ andi $t3, $s1, 0xc1 +/* 1161EC 7F0E16BC 31E90028 */ andi $t1, $t7, 0x28 +/* 1161F0 7F0E16C0 0169C825 */ or $t9, $t3, $t1 +/* 1161F4 7F0E16C4 000D5080 */ sll $t2, $t5, 2 +/* 1161F8 7F0E16C8 032A8825 */ or $s1, $t9, $t2 +/* 1161FC 7F0E16CC 322800FF */ andi $t0, $s1, 0xff +/* 116200 7F0E16D0 02536025 */ or $t4, $s2, $s3 +/* 116204 7F0E16D4 11800449 */ beqz $t4, .L7F0E27FC +/* 116208 7F0E16D8 01008825 */ move $s1, $t0 +/* 11620C 7F0E16DC 97AE0298 */ lhu $t6, 0x298($sp) +/* 116210 7F0E16E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 116214 7F0E16E4 25CFFFFE */ addiu $t7, $t6, -2 +/* 116218 7F0E16E8 25690005 */ addiu $t1, $t3, 5 +/* 11621C 7F0E16EC AFA9028C */ sw $t1, 0x28c($sp) +/* 116220 7F0E16F0 10000442 */ b .L7F0E27FC +/* 116224 7F0E16F4 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_ED_B9: +/* 116228 7F0E16F8 8FB8028C */ lw $t8, 0x28c($sp) +/* 11622C 7F0E16FC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116230 7F0E1700 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116234 7F0E1704 00165200 */ sll $t2, $s6, 8 +/* 116238 7F0E1708 32390001 */ andi $t9, $s1, 1 +/* 11623C 7F0E170C 01574025 */ or $t0, $t2, $s7 +/* 116240 7F0E1710 270D000C */ addiu $t5, $t8, 0xc +/* 116244 7F0E1714 AFAD028C */ sw $t5, 0x28c($sp) +/* 116248 7F0E1718 A3B9005F */ sb $t9, 0x5f($sp) +/* 11624C 7F0E171C 010C7021 */ addu $t6, $t0, $t4 +/* 116250 7F0E1720 91CF0000 */ lbu $t7, ($t6) +/* 116254 7F0E1724 24010004 */ li $at, 4 +/* 116258 7F0E1728 020F5823 */ subu $t3, $s0, $t7 +/* 11625C 7F0E172C 316901FF */ andi $t1, $t3, 0x1ff +/* 116260 7F0E1730 3138FFFF */ andi $t8, $t1, 0xffff +/* 116264 7F0E1734 2F0D0001 */ sltiu $t5, $t8, 1 +/* 116268 7F0E1738 3218000F */ andi $t8, $s0, 0xf +/* 11626C 7F0E173C 31EB000F */ andi $t3, $t7, 0xf +/* 116270 7F0E1740 030BC82A */ slt $t9, $t8, $t3 +/* 116274 7F0E1744 312A00A8 */ andi $t2, $t1, 0xa8 +/* 116278 7F0E1748 00096203 */ sra $t4, $t1, 8 +/* 11627C 7F0E174C 014C7025 */ or $t6, $t2, $t4 +/* 116280 7F0E1750 00194100 */ sll $t0, $t9, 4 +/* 116284 7F0E1754 01205825 */ move $t3, $t1 +/* 116288 7F0E1758 020F6026 */ xor $t4, $s0, $t7 +/* 11628C 7F0E175C 31980080 */ andi $t8, $t4, 0x80 +/* 116290 7F0E1760 0170C826 */ xor $t9, $t3, $s0 +/* 116294 7F0E1764 01C85025 */ or $t2, $t6, $t0 +/* 116298 7F0E1768 03197024 */ and $t6, $t8, $t9 +/* 11629C 7F0E176C 000E4143 */ sra $t0, $t6, 5 +/* 1162A0 7F0E1770 A3AF005B */ sb $t7, 0x5b($sp) +/* 1162A4 7F0E1774 01487825 */ or $t7, $t2, $t0 +/* 1162A8 7F0E1778 A7A9005C */ sh $t1, 0x5c($sp) +/* 1162AC 7F0E177C 000D4980 */ sll $t1, $t5, 6 +/* 1162B0 7F0E1780 35EC0002 */ ori $t4, $t7, 2 +/* 1162B4 7F0E1784 2EF80001 */ sltiu $t8, $s7, 1 +/* 1162B8 7F0E1788 01898825 */ or $s1, $t4, $t1 +/* 1162BC 7F0E178C 26F7FFFF */ addiu $s7, $s7, -1 +/* 1162C0 7F0E1790 322B00FF */ andi $t3, $s1, 0xff +/* 1162C4 7F0E1794 AFAD0048 */ sw $t5, 0x48($sp) +/* 1162C8 7F0E1798 32F900FF */ andi $t9, $s7, 0xff +/* 1162CC 7F0E179C 01608825 */ move $s1, $t3 +/* 1162D0 7F0E17A0 0320B825 */ move $s7, $t9 +/* 1162D4 7F0E17A4 13000004 */ beqz $t8, .L7F0E17B8 +/* 1162D8 7F0E17A8 AFB80048 */ sw $t8, 0x48($sp) +/* 1162DC 7F0E17AC 26D6FFFF */ addiu $s6, $s6, -1 +/* 1162E0 7F0E17B0 32CA00FF */ andi $t2, $s6, 0xff +/* 1162E4 7F0E17B4 0140B025 */ move $s6, $t2 +.L7F0E17B8: +/* 1162E8 7F0E17B8 2E680001 */ sltiu $t0, $s3, 1 +/* 1162EC 7F0E17BC 2673FFFF */ addiu $s3, $s3, -1 +/* 1162F0 7F0E17C0 326F00FF */ andi $t7, $s3, 0xff +/* 1162F4 7F0E17C4 01E09825 */ move $s3, $t7 +/* 1162F8 7F0E17C8 11000004 */ beqz $t0, .L7F0E17DC +/* 1162FC 7F0E17CC AFA80048 */ sw $t0, 0x48($sp) +/* 116300 7F0E17D0 2652FFFF */ addiu $s2, $s2, -1 +/* 116304 7F0E17D4 324C00FF */ andi $t4, $s2, 0xff +/* 116308 7F0E17D8 01809025 */ move $s2, $t4 +.L7F0E17DC: +/* 11630C 7F0E17DC 93AB005F */ lbu $t3, 0x5f($sp) +/* 116310 7F0E17E0 0253C825 */ or $t9, $s2, $s3 +/* 116314 7F0E17E4 0019702A */ slt $t6, $zero, $t9 +/* 116318 7F0E17E8 322900FA */ andi $t1, $s1, 0xfa +/* 11631C 7F0E17EC 000E5080 */ sll $t2, $t6, 2 +/* 116320 7F0E17F0 012BC025 */ or $t8, $t1, $t3 +/* 116324 7F0E17F4 030A8825 */ or $s1, $t8, $t2 +/* 116328 7F0E17F8 322800FF */ andi $t0, $s1, 0xff +/* 11632C 7F0E17FC 310F0044 */ andi $t7, $t0, 0x44 +/* 116330 7F0E1800 15E103FE */ bne $t7, $at, .L7F0E27FC +/* 116334 7F0E1804 01008825 */ move $s1, $t0 +/* 116338 7F0E1808 97AD0298 */ lhu $t5, 0x298($sp) +/* 11633C 7F0E180C 8FA9028C */ lw $t1, 0x28c($sp) +/* 116340 7F0E1810 25ACFFFE */ addiu $t4, $t5, -2 +/* 116344 7F0E1814 252B0005 */ addiu $t3, $t1, 5 +/* 116348 7F0E1818 AFAB028C */ sw $t3, 0x28c($sp) +/* 11634C 7F0E181C 100003F7 */ b .L7F0E27FC +/* 116350 7F0E1820 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_ED_BA: +/* 116354 7F0E1824 8FB9028C */ lw $t9, 0x28c($sp) +/* 116358 7F0E1828 02402825 */ move $a1, $s2 +/* 11635C 7F0E182C 02603025 */ move $a2, $s3 +/* 116360 7F0E1830 2724000C */ addiu $a0, $t9, 0xc +/* 116364 7F0E1834 0FC34DB6 */ jal spectrum_input_handling +/* 116368 7F0E1838 AFA4028C */ sw $a0, 0x28c($sp) +/* 11636C 7F0E183C 0016C200 */ sll $t8, $s6, 8 +/* 116370 7F0E1840 03175025 */ or $t2, $t8, $s7 +/* 116374 7F0E1844 29415B00 */ slti $at, $t2, 0x5b00 +/* 116378 7F0E1848 14200008 */ bnez $at, .L7F0E186C +/* 11637C 7F0E184C A7A20058 */ sh $v0, 0x58($sp) +/* 116380 7F0E1850 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116384 7F0E1854 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116388 7F0E1858 00166A00 */ sll $t5, $s6, 8 +/* 11638C 7F0E185C 01B76025 */ or $t4, $t5, $s7 +/* 116390 7F0E1860 01EC4821 */ addu $t1, $t7, $t4 +/* 116394 7F0E1864 1000002B */ b .L7F0E1914 +/* 116398 7F0E1868 A1220000 */ sb $v0, ($t1) +.L7F0E186C: +/* 11639C 7F0E186C 00165A00 */ sll $t3, $s6, 8 +/* 1163A0 7F0E1870 0177C825 */ or $t9, $t3, $s7 +/* 1163A4 7F0E1874 2B215800 */ slti $at, $t9, 0x5800 +/* 1163A8 7F0E1878 14200010 */ bnez $at, .L7F0E18BC +/* 1163AC 7F0E187C 00165200 */ sll $t2, $s6, 8 +/* 1163B0 7F0E1880 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1163B4 7F0E1884 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1163B8 7F0E1888 97AE0058 */ lhu $t6, 0x58($sp) +/* 1163BC 7F0E188C 00165200 */ sll $t2, $s6, 8 +/* 1163C0 7F0E1890 01576825 */ or $t5, $t2, $s7 +/* 1163C4 7F0E1894 030D7821 */ addu $t7, $t8, $t5 +/* 1163C8 7F0E1898 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1163CC 7F0E189C A1EE0000 */ sb $t6, ($t7) +/* 1163D0 7F0E18A0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 1163D4 7F0E18A4 00164A00 */ sll $t1, $s6, 8 +/* 1163D8 7F0E18A8 01375825 */ or $t3, $t1, $s7 +/* 1163DC 7F0E18AC 240C0001 */ li $t4, 1 +/* 1163E0 7F0E18B0 010BC821 */ addu $t9, $t0, $t3 +/* 1163E4 7F0E18B4 10000017 */ b .L7F0E1914 +/* 1163E8 7F0E18B8 A32CA800 */ sb $t4, -0x5800($t9) +.L7F0E18BC: +/* 1163EC 7F0E18BC 0157C025 */ or $t8, $t2, $s7 +/* 1163F0 7F0E18C0 2B014000 */ slti $at, $t8, 0x4000 +/* 1163F4 7F0E18C4 14200013 */ bnez $at, .L7F0E1914 +/* 1163F8 7F0E18C8 97AD0058 */ lhu $t5, 0x58($sp) +/* 1163FC 7F0E18CC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116400 7F0E18D0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116404 7F0E18D4 00167A00 */ sll $t7, $s6, 8 +/* 116408 7F0E18D8 01F74825 */ or $t1, $t7, $s7 +/* 11640C 7F0E18DC 01C94021 */ addu $t0, $t6, $t1 +/* 116410 7F0E18E0 A10D0000 */ sb $t5, ($t0) +/* 116414 7F0E18E4 00166200 */ sll $t4, $s6, 8 +/* 116418 7F0E18E8 0197C825 */ or $t9, $t4, $s7 +/* 11641C 7F0E18EC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116420 7F0E18F0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116424 7F0E18F4 332A1800 */ andi $t2, $t9, 0x1800 +/* 116428 7F0E18F8 01F77025 */ or $t6, $t7, $s7 +/* 11642C 7F0E18FC 31C900FF */ andi $t1, $t6, 0xff +/* 116430 7F0E1900 000AC0C3 */ sra $t8, $t2, 3 +/* 116434 7F0E1904 03096825 */ or $t5, $t8, $t1 +/* 116438 7F0E1908 240B0001 */ li $t3, 1 +/* 11643C 7F0E190C 010D6021 */ addu $t4, $t0, $t5 +/* 116440 7F0E1910 A18B0000 */ sb $t3, ($t4) +.L7F0E1914: +/* 116444 7F0E1914 97AA0058 */ lhu $t2, 0x58($sp) +/* 116448 7F0E1918 8FB9028C */ lw $t9, 0x28c($sp) +/* 11644C 7F0E191C 2EF80001 */ sltiu $t8, $s7, 1 +/* 116450 7F0E1920 26F7FFFF */ addiu $s7, $s7, -1 +/* 116454 7F0E1924 000A7A03 */ sra $t7, $t2, 8 +/* 116458 7F0E1928 32E900FF */ andi $t1, $s7, 0xff +/* 11645C 7F0E192C 032F7021 */ addu $t6, $t9, $t7 +/* 116460 7F0E1930 AFAE028C */ sw $t6, 0x28c($sp) +/* 116464 7F0E1934 0120B825 */ move $s7, $t1 +/* 116468 7F0E1938 13000004 */ beqz $t8, .L7F0E194C +/* 11646C 7F0E193C AFB80048 */ sw $t8, 0x48($sp) +/* 116470 7F0E1940 26D6FFFF */ addiu $s6, $s6, -1 +/* 116474 7F0E1944 32CD00FF */ andi $t5, $s6, 0xff +/* 116478 7F0E1948 01A0B025 */ move $s6, $t5 +.L7F0E194C: +/* 11647C 7F0E194C 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 116480 7F0E1950 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 116484 7F0E1954 2652FFFF */ addiu $s2, $s2, -1 +/* 116488 7F0E1958 324B00FF */ andi $t3, $s2, 0xff +/* 11648C 7F0E195C 01784821 */ addu $t1, $t3, $t8 +/* 116490 7F0E1960 91280000 */ lbu $t0, ($t1) +/* 116494 7F0E1964 316C00A8 */ andi $t4, $t3, 0xa8 +/* 116498 7F0E1968 000B502A */ slt $t2, $zero, $t3 +/* 11649C 7F0E196C 01609025 */ move $s2, $t3 +/* 1164A0 7F0E1970 000AC980 */ sll $t9, $t2, 6 +/* 1164A4 7F0E1974 01136826 */ xor $t5, $t0, $s3 +/* 1164A8 7F0E1978 39AB0004 */ xori $t3, $t5, 4 +/* 1164AC 7F0E197C 01997825 */ or $t7, $t4, $t9 +/* 1164B0 7F0E1980 35EE0002 */ ori $t6, $t7, 2 +/* 1164B4 7F0E1984 316A0004 */ andi $t2, $t3, 4 +/* 1164B8 7F0E1988 014E8825 */ or $s1, $t2, $t6 +/* 1164BC 7F0E198C 322C00FF */ andi $t4, $s1, 0xff +/* 1164C0 7F0E1990 1240039A */ beqz $s2, .L7F0E27FC +/* 1164C4 7F0E1994 01808825 */ move $s1, $t4 +/* 1164C8 7F0E1998 97B90298 */ lhu $t9, 0x298($sp) +/* 1164CC 7F0E199C 8FB8028C */ lw $t8, 0x28c($sp) +/* 1164D0 7F0E19A0 272FFFFE */ addiu $t7, $t9, -2 +/* 1164D4 7F0E19A4 27090005 */ addiu $t1, $t8, 5 +/* 1164D8 7F0E19A8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1164DC 7F0E19AC 10000393 */ b .L7F0E27FC +/* 1164E0 7F0E19B0 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_ED_BB: +/* 1164E4 7F0E19B4 8FA8028C */ lw $t0, 0x28c($sp) +/* 1164E8 7F0E19B8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1164EC 7F0E19BC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1164F0 7F0E19C0 00165A00 */ sll $t3, $s6, 8 +/* 1164F4 7F0E19C4 01775025 */ or $t2, $t3, $s7 +/* 1164F8 7F0E19C8 2504000C */ addiu $a0, $t0, 0xc +/* 1164FC 7F0E19CC AFA4028C */ sw $a0, 0x28c($sp) +/* 116500 7F0E19D0 014E6021 */ addu $t4, $t2, $t6 +/* 116504 7F0E19D4 91870000 */ lbu $a3, ($t4) +/* 116508 7F0E19D8 02402825 */ move $a1, $s2 +/* 11650C 7F0E19DC 02603025 */ move $a2, $s3 +/* 116510 7F0E19E0 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 116514 7F0E19E4 A3A70057 */ sb $a3, 0x57($sp) +/* 116518 7F0E19E8 8FAF028C */ lw $t7, 0x28c($sp) +/* 11651C 7F0E19EC 2EE80001 */ sltiu $t0, $s7, 1 +/* 116520 7F0E19F0 26F7FFFF */ addiu $s7, $s7, -1 +/* 116524 7F0E19F4 AFA20048 */ sw $v0, 0x48($sp) +/* 116528 7F0E19F8 32EB00FF */ andi $t3, $s7, 0xff +/* 11652C 7F0E19FC 01E24821 */ addu $t1, $t7, $v0 +/* 116530 7F0E1A00 AFA9028C */ sw $t1, 0x28c($sp) +/* 116534 7F0E1A04 0160B825 */ move $s7, $t3 +/* 116538 7F0E1A08 11000004 */ beqz $t0, .L7F0E1A1C +/* 11653C 7F0E1A0C AFA80048 */ sw $t0, 0x48($sp) +/* 116540 7F0E1A10 26D6FFFF */ addiu $s6, $s6, -1 +/* 116544 7F0E1A14 32CE00FF */ andi $t6, $s6, 0xff +/* 116548 7F0E1A18 01C0B025 */ move $s6, $t6 +.L7F0E1A1C: +/* 11654C 7F0E1A1C 2652FFFF */ addiu $s2, $s2, -1 +/* 116550 7F0E1A20 324C00FF */ andi $t4, $s2, 0xff +/* 116554 7F0E1A24 322D0001 */ andi $t5, $s1, 1 +/* 116558 7F0E1A28 35B90012 */ ori $t9, $t5, 0x12 +/* 11655C 7F0E1A2C 318F00A8 */ andi $t7, $t4, 0xa8 +/* 116560 7F0E1A30 2D890001 */ sltiu $t1, $t4, 1 +/* 116564 7F0E1A34 00094180 */ sll $t0, $t1, 6 +/* 116568 7F0E1A38 032FC025 */ or $t8, $t9, $t7 +/* 11656C 7F0E1A3C 03088825 */ or $s1, $t8, $t0 +/* 116570 7F0E1A40 322B00FF */ andi $t3, $s1, 0xff +/* 116574 7F0E1A44 01809025 */ move $s2, $t4 +/* 116578 7F0E1A48 1180036C */ beqz $t4, .L7F0E27FC +/* 11657C 7F0E1A4C 01608825 */ move $s1, $t3 +/* 116580 7F0E1A50 97AA0298 */ lhu $t2, 0x298($sp) +/* 116584 7F0E1A54 8FAC028C */ lw $t4, 0x28c($sp) +/* 116588 7F0E1A58 254EFFFE */ addiu $t6, $t2, -2 +/* 11658C 7F0E1A5C 258D0005 */ addiu $t5, $t4, 5 +/* 116590 7F0E1A60 AFAD028C */ sw $t5, 0x28c($sp) +/* 116594 7F0E1A64 10000365 */ b .L7F0E27FC +/* 116598 7F0E1A68 A7AE0298 */ sh $t6, 0x298($sp) +.L7F0E1A6C: +/* 11659C 7F0E1A6C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1165A0 7F0E1A70 272F0004 */ addiu $t7, $t9, 4 +/* 1165A4 7F0E1A74 10000361 */ b .L7F0E27FC +/* 1165A8 7F0E1A78 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_EE: +/* 1165AC 7F0E1A7C 8FA9028C */ lw $t1, 0x28c($sp) +/* 1165B0 7F0E1A80 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1165B4 7F0E1A84 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1165B8 7F0E1A88 97AB0298 */ lhu $t3, 0x298($sp) +/* 1165BC 7F0E1A8C 25380007 */ addiu $t8, $t1, 7 +/* 1165C0 7F0E1A90 AFB8028C */ sw $t8, 0x28c($sp) +/* 1165C4 7F0E1A94 010B5021 */ addu $t2, $t0, $t3 +/* 1165C8 7F0E1A98 914E0000 */ lbu $t6, ($t2) +/* 1165CC 7F0E1A9C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 1165D0 7F0E1AA0 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 1165D4 7F0E1AA4 020E8026 */ xor $s0, $s0, $t6 +/* 1165D8 7F0E1AA8 320C00FF */ andi $t4, $s0, 0xff +/* 1165DC 7F0E1AAC 2D8D0001 */ sltiu $t5, $t4, 1 +/* 1165E0 7F0E1AB0 AFAD0048 */ sw $t5, 0x48($sp) +/* 1165E4 7F0E1AB4 01885821 */ addu $t3, $t4, $t0 +/* 1165E8 7F0E1AB8 916A0000 */ lbu $t2, ($t3) +/* 1165EC 7F0E1ABC 01808025 */ move $s0, $t4 +/* 1165F0 7F0E1AC0 319900A8 */ andi $t9, $t4, 0xa8 +/* 1165F4 7F0E1AC4 97AC0298 */ lhu $t4, 0x298($sp) +/* 1165F8 7F0E1AC8 000D4980 */ sll $t1, $t5, 6 +/* 1165FC 7F0E1ACC 0329C025 */ or $t8, $t9, $t1 +/* 116600 7F0E1AD0 01588825 */ or $s1, $t2, $t8 +/* 116604 7F0E1AD4 322E00FF */ andi $t6, $s1, 0xff +/* 116608 7F0E1AD8 258D0001 */ addiu $t5, $t4, 1 +/* 11660C 7F0E1ADC 01C08825 */ move $s1, $t6 +/* 116610 7F0E1AE0 10000346 */ b .L7F0E27FC +/* 116614 7F0E1AE4 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_EF: +/* 116618 7F0E1AE8 97A90292 */ lhu $t1, 0x292($sp) +/* 11661C 7F0E1AEC 8FAF028C */ lw $t7, 0x28c($sp) +/* 116620 7F0E1AF0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116624 7F0E1AF4 2528FFFE */ addiu $t0, $t1, -2 +/* 116628 7F0E1AF8 310BFFFF */ andi $t3, $t0, 0xffff +/* 11662C 7F0E1AFC 29615B00 */ slti $at, $t3, 0x5b00 +/* 116630 7F0E1B00 25F9000B */ addiu $t9, $t7, 0xb +/* 116634 7F0E1B04 AFB9028C */ sw $t9, 0x28c($sp) +/* 116638 7F0E1B08 14200006 */ bnez $at, .L7F0E1B24 +/* 11663C 7F0E1B0C A7A80292 */ sh $t0, 0x292($sp) +/* 116640 7F0E1B10 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116644 7F0E1B14 97AA0298 */ lhu $t2, 0x298($sp) +/* 116648 7F0E1B18 030B7021 */ addu $t6, $t8, $t3 +/* 11664C 7F0E1B1C 10000023 */ b .L7F0E1BAC +/* 116650 7F0E1B20 A1CA0000 */ sb $t2, ($t6) +.L7F0E1B24: +/* 116654 7F0E1B24 97AC0292 */ lhu $t4, 0x292($sp) +/* 116658 7F0E1B28 97AA0292 */ lhu $t2, 0x292($sp) +/* 11665C 7F0E1B2C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116660 7F0E1B30 29815800 */ slti $at, $t4, 0x5800 +/* 116664 7F0E1B34 5420000D */ bnezl $at, .L7F0E1B6C +/* 116668 7F0E1B38 29414000 */ slti $at, $t2, 0x4000 +/* 11666C 7F0E1B3C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116670 7F0E1B40 97AD0298 */ lhu $t5, 0x298($sp) +/* 116674 7F0E1B44 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116678 7F0E1B48 01ECC821 */ addu $t9, $t7, $t4 +/* 11667C 7F0E1B4C A32D0000 */ sb $t5, ($t9) +/* 116680 7F0E1B50 97B80292 */ lhu $t8, 0x292($sp) +/* 116684 7F0E1B54 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116688 7F0E1B58 24090001 */ li $t1, 1 +/* 11668C 7F0E1B5C 01185821 */ addu $t3, $t0, $t8 +/* 116690 7F0E1B60 10000012 */ b .L7F0E1BAC +/* 116694 7F0E1B64 A169A800 */ sb $t1, -0x5800($t3) +/* 116698 7F0E1B68 29414000 */ slti $at, $t2, 0x4000 +.L7F0E1B6C: +/* 11669C 7F0E1B6C 1420000F */ bnez $at, .L7F0E1BAC +/* 1166A0 7F0E1B70 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1166A4 7F0E1B74 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1166A8 7F0E1B78 97AE0298 */ lhu $t6, 0x298($sp) +/* 1166AC 7F0E1B7C 240D0001 */ li $t5, 1 +/* 1166B0 7F0E1B80 01EA6021 */ addu $t4, $t7, $t2 +/* 1166B4 7F0E1B84 A18E0000 */ sb $t6, ($t4) +/* 1166B8 7F0E1B88 97B90292 */ lhu $t9, 0x292($sp) +/* 1166BC 7F0E1B8C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1166C0 7F0E1B90 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1166C4 7F0E1B94 33281800 */ andi $t0, $t9, 0x1800 +/* 1166C8 7F0E1B98 0008C0C3 */ sra $t8, $t0, 3 +/* 1166CC 7F0E1B9C 332900FF */ andi $t1, $t9, 0xff +/* 1166D0 7F0E1BA0 03095825 */ or $t3, $t8, $t1 +/* 1166D4 7F0E1BA4 01EB5021 */ addu $t2, $t7, $t3 +/* 1166D8 7F0E1BA8 A14D0000 */ sb $t5, ($t2) +.L7F0E1BAC: +/* 1166DC 7F0E1BAC 97AE0292 */ lhu $t6, 0x292($sp) +/* 1166E0 7F0E1BB0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1166E4 7F0E1BB4 97A80298 */ lhu $t0, 0x298($sp) +/* 1166E8 7F0E1BB8 25CC0001 */ addiu $t4, $t6, 1 +/* 1166EC 7F0E1BBC 29815B00 */ slti $at, $t4, 0x5b00 +/* 1166F0 7F0E1BC0 14200007 */ bnez $at, .L7F0E1BE0 +/* 1166F4 7F0E1BC4 25EB0001 */ addiu $t3, $t7, 1 +/* 1166F8 7F0E1BC8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1166FC 7F0E1BCC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116700 7F0E1BD0 0008CA03 */ sra $t9, $t0, 8 +/* 116704 7F0E1BD4 030E4821 */ addu $t1, $t8, $t6 +/* 116708 7F0E1BD8 10000025 */ b .L7F0E1C70 +/* 11670C 7F0E1BDC A1390001 */ sb $t9, 1($t1) +.L7F0E1BE0: +/* 116710 7F0E1BE0 29615800 */ slti $at, $t3, 0x5800 +/* 116714 7F0E1BE4 1420000E */ bnez $at, .L7F0E1C20 +/* 116718 7F0E1BE8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11671C 7F0E1BEC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116720 7F0E1BF0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116724 7F0E1BF4 97AD0298 */ lhu $t5, 0x298($sp) +/* 116728 7F0E1BF8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11672C 7F0E1BFC 018F4021 */ addu $t0, $t4, $t7 +/* 116730 7F0E1C00 000D5203 */ sra $t2, $t5, 8 +/* 116734 7F0E1C04 A10A0001 */ sb $t2, 1($t0) +/* 116738 7F0E1C08 97B90292 */ lhu $t9, 0x292($sp) +/* 11673C 7F0E1C0C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 116740 7F0E1C10 24180001 */ li $t8, 1 +/* 116744 7F0E1C14 01D94821 */ addu $t1, $t6, $t9 +/* 116748 7F0E1C18 10000015 */ b .L7F0E1C70 +/* 11674C 7F0E1C1C A138A801 */ sb $t8, -0x57ff($t1) +.L7F0E1C20: +/* 116750 7F0E1C20 256D0001 */ addiu $t5, $t3, 1 +/* 116754 7F0E1C24 29A14000 */ slti $at, $t5, 0x4000 +/* 116758 7F0E1C28 14200011 */ bnez $at, .L7F0E1C70 +/* 11675C 7F0E1C2C 97AC0298 */ lhu $t4, 0x298($sp) +/* 116760 7F0E1C30 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116764 7F0E1C34 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116768 7F0E1C38 000C7A03 */ sra $t7, $t4, 8 +/* 11676C 7F0E1C3C 240E0001 */ li $t6, 1 +/* 116770 7F0E1C40 014B4021 */ addu $t0, $t2, $t3 +/* 116774 7F0E1C44 A10F0001 */ sb $t7, 1($t0) +/* 116778 7F0E1C48 97B90292 */ lhu $t9, 0x292($sp) +/* 11677C 7F0E1C4C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 116780 7F0E1C50 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 116784 7F0E1C54 27380001 */ addiu $t8, $t9, 1 +/* 116788 7F0E1C58 33091800 */ andi $t1, $t8, 0x1800 +/* 11678C 7F0E1C5C 000968C3 */ sra $t5, $t1, 3 +/* 116790 7F0E1C60 330C00FF */ andi $t4, $t8, 0xff +/* 116794 7F0E1C64 01AC5025 */ or $t2, $t5, $t4 +/* 116798 7F0E1C68 016A7821 */ addu $t7, $t3, $t2 +/* 11679C 7F0E1C6C A1EE0000 */ sb $t6, ($t7) +.L7F0E1C70: +/* 1167A0 7F0E1C70 24080028 */ li $t0, 40 +/* 1167A4 7F0E1C74 100002E1 */ b .L7F0E27FC +/* 1167A8 7F0E1C78 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_F0: +/* 1167AC 7F0E1C7C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1167B0 7F0E1C80 32380080 */ andi $t8, $s1, 0x80 +/* 1167B4 7F0E1C84 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1167B8 7F0E1C88 27290005 */ addiu $t1, $t9, 5 +/* 1167BC 7F0E1C8C 170002DB */ bnez $t8, .L7F0E27FC +/* 1167C0 7F0E1C90 AFA9028C */ sw $t1, 0x28c($sp) +/* 1167C4 7F0E1C94 97AB0292 */ lhu $t3, 0x292($sp) +/* 1167C8 7F0E1C98 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1167CC 7F0E1C9C 252C0006 */ addiu $t4, $t1, 6 +/* 1167D0 7F0E1CA0 AFAC028C */ sw $t4, 0x28c($sp) +/* 1167D4 7F0E1CA4 014B4021 */ addu $t0, $t2, $t3 +/* 1167D8 7F0E1CA8 91190001 */ lbu $t9, 1($t0) +/* 1167DC 7F0E1CAC 016A7021 */ addu $t6, $t3, $t2 +/* 1167E0 7F0E1CB0 91CF0000 */ lbu $t7, ($t6) +/* 1167E4 7F0E1CB4 00194A00 */ sll $t1, $t9, 8 +/* 1167E8 7F0E1CB8 256D0002 */ addiu $t5, $t3, 2 +/* 1167EC 7F0E1CBC 01E9C025 */ or $t8, $t7, $t1 +/* 1167F0 7F0E1CC0 A7B80298 */ sh $t8, 0x298($sp) +/* 1167F4 7F0E1CC4 100002CD */ b .L7F0E27FC +/* 1167F8 7F0E1CC8 A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_F1: +/* 1167FC 7F0E1CCC 8FAC028C */ lw $t4, 0x28c($sp) +/* 116800 7F0E1CD0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116804 7F0E1CD4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116808 7F0E1CD8 97AA0292 */ lhu $t2, 0x292($sp) +/* 11680C 7F0E1CDC 258E000A */ addiu $t6, $t4, 0xa +/* 116810 7F0E1CE0 AFAE028C */ sw $t6, 0x28c($sp) +/* 116814 7F0E1CE4 0148C821 */ addu $t9, $t2, $t0 +/* 116818 7F0E1CE8 93310000 */ lbu $s1, ($t9) +/* 11681C 7F0E1CEC 93300001 */ lbu $s0, 1($t9) +/* 116820 7F0E1CF0 254F0002 */ addiu $t7, $t2, 2 +/* 116824 7F0E1CF4 100002C1 */ b .L7F0E27FC +/* 116828 7F0E1CF8 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_F2: +/* 11682C 7F0E1CFC 8FA9028C */ lw $t1, 0x28c($sp) +/* 116830 7F0E1D00 322B0080 */ andi $t3, $s1, 0x80 +/* 116834 7F0E1D04 97AD0298 */ lhu $t5, 0x298($sp) +/* 116838 7F0E1D08 2538000A */ addiu $t8, $t1, 0xa +/* 11683C 7F0E1D0C 1560000B */ bnez $t3, .L7F0E1D3C +/* 116840 7F0E1D10 AFB8028C */ sw $t8, 0x28c($sp) +/* 116844 7F0E1D14 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116848 7F0E1D18 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 11684C 7F0E1D1C 018DC821 */ addu $t9, $t4, $t5 +/* 116850 7F0E1D20 932A0001 */ lbu $t2, 1($t9) +/* 116854 7F0E1D24 01AC7021 */ addu $t6, $t5, $t4 +/* 116858 7F0E1D28 91C80000 */ lbu $t0, ($t6) +/* 11685C 7F0E1D2C 000A7A00 */ sll $t7, $t2, 8 +/* 116860 7F0E1D30 010F4825 */ or $t1, $t0, $t7 +/* 116864 7F0E1D34 100002B1 */ b .L7F0E27FC +/* 116868 7F0E1D38 A7A90298 */ sh $t1, 0x298($sp) +.L7F0E1D3C: +/* 11686C 7F0E1D3C 97B80298 */ lhu $t8, 0x298($sp) +/* 116870 7F0E1D40 270B0002 */ addiu $t3, $t8, 2 +/* 116874 7F0E1D44 100002AD */ b .L7F0E27FC +/* 116878 7F0E1D48 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_F3: +/* 11687C 7F0E1D4C 8FAE028C */ lw $t6, 0x28c($sp) +/* 116880 7F0E1D50 A3A0029C */ sb $zero, 0x29c($sp) +/* 116884 7F0E1D54 A3A0029D */ sb $zero, 0x29d($sp) +/* 116888 7F0E1D58 25CC0004 */ addiu $t4, $t6, 4 +/* 11688C 7F0E1D5C AFAC028C */ sw $t4, 0x28c($sp) +/* 116890 7F0E1D60 100002A6 */ b .L7F0E27FC +/* 116894 7F0E1D64 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_F4: +/* 116898 7F0E1D68 8FAD028C */ lw $t5, 0x28c($sp) +/* 11689C 7F0E1D6C 322A0080 */ andi $t2, $s1, 0x80 +/* 1168A0 7F0E1D70 25B9000A */ addiu $t9, $t5, 0xa +/* 1168A4 7F0E1D74 15400072 */ bnez $t2, .L7F0E1F40 +/* 1168A8 7F0E1D78 AFB9028C */ sw $t9, 0x28c($sp) +/* 1168AC 7F0E1D7C 97A90292 */ lhu $t1, 0x292($sp) +/* 1168B0 7F0E1D80 272F0007 */ addiu $t7, $t9, 7 +/* 1168B4 7F0E1D84 AFAF028C */ sw $t7, 0x28c($sp) +/* 1168B8 7F0E1D88 2538FFFE */ addiu $t8, $t1, -2 +/* 1168BC 7F0E1D8C 330BFFFF */ andi $t3, $t8, 0xffff +/* 1168C0 7F0E1D90 29615B00 */ slti $at, $t3, 0x5b00 +/* 1168C4 7F0E1D94 14200008 */ bnez $at, .L7F0E1DB8 +/* 1168C8 7F0E1D98 A7B80292 */ sh $t8, 0x292($sp) +/* 1168CC 7F0E1D9C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1168D0 7F0E1DA0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1168D4 7F0E1DA4 97AE0298 */ lhu $t6, 0x298($sp) +/* 1168D8 7F0E1DA8 01ABC821 */ addu $t9, $t5, $t3 +/* 1168DC 7F0E1DAC 25CC0002 */ addiu $t4, $t6, 2 +/* 1168E0 7F0E1DB0 10000024 */ b .L7F0E1E44 +/* 1168E4 7F0E1DB4 A32C0000 */ sb $t4, ($t9) +.L7F0E1DB8: +/* 1168E8 7F0E1DB8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1168EC 7F0E1DBC 97B90292 */ lhu $t9, 0x292($sp) +/* 1168F0 7F0E1DC0 97A80298 */ lhu $t0, 0x298($sp) +/* 1168F4 7F0E1DC4 29415800 */ slti $at, $t2, 0x5800 +/* 1168F8 7F0E1DC8 1420000C */ bnez $at, .L7F0E1DFC +/* 1168FC 7F0E1DCC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 116900 7F0E1DD0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 116904 7F0E1DD4 250F0002 */ addiu $t7, $t0, 2 +/* 116908 7F0E1DD8 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 11690C 7F0E1DDC 012AC021 */ addu $t8, $t1, $t2 +/* 116910 7F0E1DE0 A30F0000 */ sb $t7, ($t8) +/* 116914 7F0E1DE4 97AB0292 */ lhu $t3, 0x292($sp) +/* 116918 7F0E1DE8 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11691C 7F0E1DEC 240E0001 */ li $t6, 1 +/* 116920 7F0E1DF0 01AB6021 */ addu $t4, $t5, $t3 +/* 116924 7F0E1DF4 10000013 */ b .L7F0E1E44 +/* 116928 7F0E1DF8 A18EA800 */ sb $t6, -0x5800($t4) +.L7F0E1DFC: +/* 11692C 7F0E1DFC 2B214000 */ slti $at, $t9, 0x4000 +/* 116930 7F0E1E00 14200010 */ bnez $at, .L7F0E1E44 +/* 116934 7F0E1E04 97A80298 */ lhu $t0, 0x298($sp) +/* 116938 7F0E1E08 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11693C 7F0E1E0C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116940 7F0E1E10 25090002 */ addiu $t1, $t0, 2 +/* 116944 7F0E1E14 24180001 */ li $t8, 1 +/* 116948 7F0E1E18 01597821 */ addu $t7, $t2, $t9 +/* 11694C 7F0E1E1C A1E90000 */ sb $t1, ($t7) +/* 116950 7F0E1E20 97AD0292 */ lhu $t5, 0x292($sp) +/* 116954 7F0E1E24 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 116958 7F0E1E28 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 11695C 7F0E1E2C 31AB1800 */ andi $t3, $t5, 0x1800 +/* 116960 7F0E1E30 000B70C3 */ sra $t6, $t3, 3 +/* 116964 7F0E1E34 31AC00FF */ andi $t4, $t5, 0xff +/* 116968 7F0E1E38 01CC4025 */ or $t0, $t6, $t4 +/* 11696C 7F0E1E3C 0148C821 */ addu $t9, $t2, $t0 +/* 116970 7F0E1E40 A3380000 */ sb $t8, ($t9) +.L7F0E1E44: +/* 116974 7F0E1E44 97A90292 */ lhu $t1, 0x292($sp) +/* 116978 7F0E1E48 97A80292 */ lhu $t0, 0x292($sp) +/* 11697C 7F0E1E4C 97AB0298 */ lhu $t3, 0x298($sp) +/* 116980 7F0E1E50 252F0001 */ addiu $t7, $t1, 1 +/* 116984 7F0E1E54 29E15B00 */ slti $at, $t7, 0x5b00 +/* 116988 7F0E1E58 14200008 */ bnez $at, .L7F0E1E7C +/* 11698C 7F0E1E5C 25180001 */ addiu $t8, $t0, 1 +/* 116990 7F0E1E60 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116994 7F0E1E64 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116998 7F0E1E68 256D0002 */ addiu $t5, $t3, 2 +/* 11699C 7F0E1E6C 000D7203 */ sra $t6, $t5, 8 +/* 1169A0 7F0E1E70 01895021 */ addu $t2, $t4, $t1 +/* 1169A4 7F0E1E74 10000027 */ b .L7F0E1F14 +/* 1169A8 7F0E1E78 A14E0001 */ sb $t6, 1($t2) +.L7F0E1E7C: +/* 1169AC 7F0E1E7C 2B015800 */ slti $at, $t8, 0x5800 +/* 1169B0 7F0E1E80 1420000F */ bnez $at, .L7F0E1EC0 +/* 1169B4 7F0E1E84 97B90292 */ lhu $t9, 0x292($sp) +/* 1169B8 7F0E1E88 97B90298 */ lhu $t9, 0x298($sp) +/* 1169BC 7F0E1E8C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1169C0 7F0E1E90 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1169C4 7F0E1E94 272F0002 */ addiu $t7, $t9, 2 +/* 1169C8 7F0E1E98 000F5A03 */ sra $t3, $t7, 8 +/* 1169CC 7F0E1E9C 01A86021 */ addu $t4, $t5, $t0 +/* 1169D0 7F0E1EA0 A18B0001 */ sb $t3, 1($t4) +/* 1169D4 7F0E1EA4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1169D8 7F0E1EA8 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1169DC 7F0E1EAC 97AA0292 */ lhu $t2, 0x292($sp) +/* 1169E0 7F0E1EB0 24090001 */ li $t1, 1 +/* 1169E4 7F0E1EB4 01CAC021 */ addu $t8, $t6, $t2 +/* 1169E8 7F0E1EB8 10000016 */ b .L7F0E1F14 +/* 1169EC 7F0E1EBC A309A801 */ sb $t1, -0x57ff($t8) +.L7F0E1EC0: +/* 1169F0 7F0E1EC0 272F0001 */ addiu $t7, $t9, 1 +/* 1169F4 7F0E1EC4 29E14000 */ slti $at, $t7, 0x4000 +/* 1169F8 7F0E1EC8 14200012 */ bnez $at, .L7F0E1F14 +/* 1169FC 7F0E1ECC 97AD0298 */ lhu $t5, 0x298($sp) +/* 116A00 7F0E1ED0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116A04 7F0E1ED4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116A08 7F0E1ED8 25A80002 */ addiu $t0, $t5, 2 +/* 116A0C 7F0E1EDC 00085A03 */ sra $t3, $t0, 8 +/* 116A10 7F0E1EE0 01997021 */ addu $t6, $t4, $t9 +/* 116A14 7F0E1EE4 A1CB0001 */ sb $t3, 1($t6) +/* 116A18 7F0E1EE8 97A90292 */ lhu $t1, 0x292($sp) +/* 116A1C 7F0E1EEC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 116A20 7F0E1EF0 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 116A24 7F0E1EF4 25380001 */ addiu $t8, $t1, 1 +/* 116A28 7F0E1EF8 330F1800 */ andi $t7, $t8, 0x1800 +/* 116A2C 7F0E1EFC 000F68C3 */ sra $t5, $t7, 3 +/* 116A30 7F0E1F00 330800FF */ andi $t0, $t8, 0xff +/* 116A34 7F0E1F04 01A86025 */ or $t4, $t5, $t0 +/* 116A38 7F0E1F08 240A0001 */ li $t2, 1 +/* 116A3C 7F0E1F0C 032C5821 */ addu $t3, $t9, $t4 +/* 116A40 7F0E1F10 A16A0000 */ sb $t2, ($t3) +.L7F0E1F14: +/* 116A44 7F0E1F14 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 116A48 7F0E1F18 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 116A4C 7F0E1F1C 97AE0298 */ lhu $t6, 0x298($sp) +/* 116A50 7F0E1F20 012E6821 */ addu $t5, $t1, $t6 +/* 116A54 7F0E1F24 91A80001 */ lbu $t0, 1($t5) +/* 116A58 7F0E1F28 01C97821 */ addu $t7, $t6, $t1 +/* 116A5C 7F0E1F2C 91F80000 */ lbu $t8, ($t7) +/* 116A60 7F0E1F30 0008CA00 */ sll $t9, $t0, 8 +/* 116A64 7F0E1F34 03196025 */ or $t4, $t8, $t9 +/* 116A68 7F0E1F38 10000230 */ b .L7F0E27FC +/* 116A6C 7F0E1F3C A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E1F40: +/* 116A70 7F0E1F40 97AA0298 */ lhu $t2, 0x298($sp) +/* 116A74 7F0E1F44 254B0002 */ addiu $t3, $t2, 2 +/* 116A78 7F0E1F48 1000022C */ b .L7F0E27FC +/* 116A7C 7F0E1F4C A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_F5: +/* 116A80 7F0E1F50 97AE0292 */ lhu $t6, 0x292($sp) +/* 116A84 7F0E1F54 8FAF028C */ lw $t7, 0x28c($sp) +/* 116A88 7F0E1F58 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116A8C 7F0E1F5C 25CDFFFE */ addiu $t5, $t6, -2 +/* 116A90 7F0E1F60 31A8FFFF */ andi $t0, $t5, 0xffff +/* 116A94 7F0E1F64 29015B00 */ slti $at, $t0, 0x5b00 +/* 116A98 7F0E1F68 25E9000B */ addiu $t1, $t7, 0xb +/* 116A9C 7F0E1F6C AFA9028C */ sw $t1, 0x28c($sp) +/* 116AA0 7F0E1F70 14200005 */ bnez $at, .L7F0E1F88 +/* 116AA4 7F0E1F74 A7AD0292 */ sh $t5, 0x292($sp) +/* 116AA8 7F0E1F78 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116AAC 7F0E1F7C 0308C821 */ addu $t9, $t8, $t0 +/* 116AB0 7F0E1F80 10000021 */ b .L7F0E2008 +/* 116AB4 7F0E1F84 A3310000 */ sb $s1, ($t9) +.L7F0E1F88: +/* 116AB8 7F0E1F88 97AC0292 */ lhu $t4, 0x292($sp) +/* 116ABC 7F0E1F8C 97B80292 */ lhu $t8, 0x292($sp) +/* 116AC0 7F0E1F90 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116AC4 7F0E1F94 29815800 */ slti $at, $t4, 0x5800 +/* 116AC8 7F0E1F98 5420000C */ bnezl $at, .L7F0E1FCC +/* 116ACC 7F0E1F9C 2B014000 */ slti $at, $t8, 0x4000 +/* 116AD0 7F0E1FA0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116AD4 7F0E1FA4 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 116AD8 7F0E1FA8 240F0001 */ li $t7, 1 +/* 116ADC 7F0E1FAC 014C5821 */ addu $t3, $t2, $t4 +/* 116AE0 7F0E1FB0 A1710000 */ sb $s1, ($t3) +/* 116AE4 7F0E1FB4 97AE0292 */ lhu $t6, 0x292($sp) +/* 116AE8 7F0E1FB8 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 116AEC 7F0E1FBC 012E6821 */ addu $t5, $t1, $t6 +/* 116AF0 7F0E1FC0 10000011 */ b .L7F0E2008 +/* 116AF4 7F0E1FC4 A1AFA800 */ sb $t7, -0x5800($t5) +/* 116AF8 7F0E1FC8 2B014000 */ slti $at, $t8, 0x4000 +.L7F0E1FCC: +/* 116AFC 7F0E1FCC 1420000E */ bnez $at, .L7F0E2008 +/* 116B00 7F0E1FD0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116B04 7F0E1FD4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116B08 7F0E1FD8 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 116B0C 7F0E1FDC 240A0001 */ li $t2, 1 +/* 116B10 7F0E1FE0 0118C821 */ addu $t9, $t0, $t8 +/* 116B14 7F0E1FE4 A3310000 */ sb $s1, ($t9) +/* 116B18 7F0E1FE8 97AC0292 */ lhu $t4, 0x292($sp) +/* 116B1C 7F0E1FEC 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 116B20 7F0E1FF0 318B1800 */ andi $t3, $t4, 0x1800 +/* 116B24 7F0E1FF4 000B48C3 */ sra $t1, $t3, 3 +/* 116B28 7F0E1FF8 318E00FF */ andi $t6, $t4, 0xff +/* 116B2C 7F0E1FFC 012E7825 */ or $t7, $t1, $t6 +/* 116B30 7F0E2000 01AF4021 */ addu $t0, $t5, $t7 +/* 116B34 7F0E2004 A10A0000 */ sb $t2, ($t0) +.L7F0E2008: +/* 116B38 7F0E2008 97B80292 */ lhu $t8, 0x292($sp) +/* 116B3C 7F0E200C 97A90292 */ lhu $t1, 0x292($sp) +/* 116B40 7F0E2010 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 116B44 7F0E2014 27190001 */ addiu $t9, $t8, 1 +/* 116B48 7F0E2018 2B215B00 */ slti $at, $t9, 0x5b00 +/* 116B4C 7F0E201C 14200005 */ bnez $at, .L7F0E2034 +/* 116B50 7F0E2020 252E0001 */ addiu $t6, $t1, 1 +/* 116B54 7F0E2024 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 116B58 7F0E2028 01786021 */ addu $t4, $t3, $t8 +/* 116B5C 7F0E202C 100001F3 */ b .L7F0E27FC +/* 116B60 7F0E2030 A1900001 */ sb $s0, 1($t4) +.L7F0E2034: +/* 116B64 7F0E2034 29C15800 */ slti $at, $t6, 0x5800 +/* 116B68 7F0E2038 1420000C */ bnez $at, .L7F0E206C +/* 116B6C 7F0E203C 97B80292 */ lhu $t8, 0x292($sp) +/* 116B70 7F0E2040 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 116B74 7F0E2044 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 116B78 7F0E2048 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116B7C 7F0E204C 240A0001 */ li $t2, 1 +/* 116B80 7F0E2050 01A97821 */ addu $t7, $t5, $t1 +/* 116B84 7F0E2054 A1F00001 */ sb $s0, 1($t7) +/* 116B88 7F0E2058 97B90292 */ lhu $t9, 0x292($sp) +/* 116B8C 7F0E205C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116B90 7F0E2060 01195821 */ addu $t3, $t0, $t9 +/* 116B94 7F0E2064 100001E5 */ b .L7F0E27FC +/* 116B98 7F0E2068 A16AA801 */ sb $t2, -0x57ff($t3) +.L7F0E206C: +/* 116B9C 7F0E206C 270C0001 */ addiu $t4, $t8, 1 +/* 116BA0 7F0E2070 29814000 */ slti $at, $t4, 0x4000 +/* 116BA4 7F0E2074 142001E1 */ bnez $at, .L7F0E27FC +/* 116BA8 7F0E2078 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116BAC 7F0E207C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116BB0 7F0E2080 24090001 */ li $t1, 1 +/* 116BB4 7F0E2084 01D86821 */ addu $t5, $t6, $t8 +/* 116BB8 7F0E2088 A1B00001 */ sb $s0, 1($t5) +/* 116BBC 7F0E208C 97AF0292 */ lhu $t7, 0x292($sp) +/* 116BC0 7F0E2090 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 116BC4 7F0E2094 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 116BC8 7F0E2098 25E80001 */ addiu $t0, $t7, 1 +/* 116BCC 7F0E209C 31191800 */ andi $t9, $t0, 0x1800 +/* 116BD0 7F0E20A0 001950C3 */ sra $t2, $t9, 3 +/* 116BD4 7F0E20A4 310B00FF */ andi $t3, $t0, 0xff +/* 116BD8 7F0E20A8 014B6025 */ or $t4, $t2, $t3 +/* 116BDC 7F0E20AC 01CCC021 */ addu $t8, $t6, $t4 +/* 116BE0 7F0E20B0 100001D2 */ b .L7F0E27FC +/* 116BE4 7F0E20B4 A3090000 */ sb $t1, ($t8) +spectrum_op_F6: +/* 116BE8 7F0E20B8 8FAD028C */ lw $t5, 0x28c($sp) +/* 116BEC 7F0E20BC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 116BF0 7F0E20C0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 116BF4 7F0E20C4 97A80298 */ lhu $t0, 0x298($sp) +/* 116BF8 7F0E20C8 25AF0007 */ addiu $t7, $t5, 7 +/* 116BFC 7F0E20CC AFAF028C */ sw $t7, 0x28c($sp) +/* 116C00 7F0E20D0 03285021 */ addu $t2, $t9, $t0 +/* 116C04 7F0E20D4 914B0000 */ lbu $t3, ($t2) +/* 116C08 7F0E20D8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 116C0C 7F0E20DC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 116C10 7F0E20E0 020B8025 */ or $s0, $s0, $t3 +/* 116C14 7F0E20E4 320E00FF */ andi $t6, $s0, 0xff +/* 116C18 7F0E20E8 2DCC0001 */ sltiu $t4, $t6, 1 +/* 116C1C 7F0E20EC AFAC0048 */ sw $t4, 0x48($sp) +/* 116C20 7F0E20F0 01D94021 */ addu $t0, $t6, $t9 +/* 116C24 7F0E20F4 910A0000 */ lbu $t2, ($t0) +/* 116C28 7F0E20F8 01C08025 */ move $s0, $t6 +/* 116C2C 7F0E20FC 31C900A8 */ andi $t1, $t6, 0xa8 +/* 116C30 7F0E2100 97AE0298 */ lhu $t6, 0x298($sp) +/* 116C34 7F0E2104 000C6980 */ sll $t5, $t4, 6 +/* 116C38 7F0E2108 012D7825 */ or $t7, $t1, $t5 +/* 116C3C 7F0E210C 014F8825 */ or $s1, $t2, $t7 +/* 116C40 7F0E2110 322B00FF */ andi $t3, $s1, 0xff +/* 116C44 7F0E2114 25CC0001 */ addiu $t4, $t6, 1 +/* 116C48 7F0E2118 01608825 */ move $s1, $t3 +/* 116C4C 7F0E211C 100001B7 */ b .L7F0E27FC +/* 116C50 7F0E2120 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_F7: +/* 116C54 7F0E2124 97AD0292 */ lhu $t5, 0x292($sp) +/* 116C58 7F0E2128 8FB8028C */ lw $t8, 0x28c($sp) +/* 116C5C 7F0E212C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116C60 7F0E2130 25B9FFFE */ addiu $t9, $t5, -2 +/* 116C64 7F0E2134 3328FFFF */ andi $t0, $t9, 0xffff +/* 116C68 7F0E2138 29015B00 */ slti $at, $t0, 0x5b00 +/* 116C6C 7F0E213C 2709000B */ addiu $t1, $t8, 0xb +/* 116C70 7F0E2140 AFA9028C */ sw $t1, 0x28c($sp) +/* 116C74 7F0E2144 14200006 */ bnez $at, .L7F0E2160 +/* 116C78 7F0E2148 A7B90292 */ sh $t9, 0x292($sp) +/* 116C7C 7F0E214C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116C80 7F0E2150 97AA0298 */ lhu $t2, 0x298($sp) +/* 116C84 7F0E2154 01E85821 */ addu $t3, $t7, $t0 +/* 116C88 7F0E2158 10000023 */ b .L7F0E21E8 +/* 116C8C 7F0E215C A16A0000 */ sb $t2, ($t3) +.L7F0E2160: +/* 116C90 7F0E2160 97AE0292 */ lhu $t6, 0x292($sp) +/* 116C94 7F0E2164 97AA0292 */ lhu $t2, 0x292($sp) +/* 116C98 7F0E2168 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116C9C 7F0E216C 29C15800 */ slti $at, $t6, 0x5800 +/* 116CA0 7F0E2170 5420000D */ bnezl $at, .L7F0E21A8 +/* 116CA4 7F0E2174 29414000 */ slti $at, $t2, 0x4000 +/* 116CA8 7F0E2178 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116CAC 7F0E217C 97AC0298 */ lhu $t4, 0x298($sp) +/* 116CB0 7F0E2180 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 116CB4 7F0E2184 030E4821 */ addu $t1, $t8, $t6 +/* 116CB8 7F0E2188 A12C0000 */ sb $t4, ($t1) +/* 116CBC 7F0E218C 97AF0292 */ lhu $t7, 0x292($sp) +/* 116CC0 7F0E2190 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 116CC4 7F0E2194 240D0001 */ li $t5, 1 +/* 116CC8 7F0E2198 032F4021 */ addu $t0, $t9, $t7 +/* 116CCC 7F0E219C 10000012 */ b .L7F0E21E8 +/* 116CD0 7F0E21A0 A10DA800 */ sb $t5, -0x5800($t0) +/* 116CD4 7F0E21A4 29414000 */ slti $at, $t2, 0x4000 +.L7F0E21A8: +/* 116CD8 7F0E21A8 1420000F */ bnez $at, .L7F0E21E8 +/* 116CDC 7F0E21AC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116CE0 7F0E21B0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116CE4 7F0E21B4 97AB0298 */ lhu $t3, 0x298($sp) +/* 116CE8 7F0E21B8 240C0001 */ li $t4, 1 +/* 116CEC 7F0E21BC 030A7021 */ addu $t6, $t8, $t2 +/* 116CF0 7F0E21C0 A1CB0000 */ sb $t3, ($t6) +/* 116CF4 7F0E21C4 97A90292 */ lhu $t1, 0x292($sp) +/* 116CF8 7F0E21C8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 116CFC 7F0E21CC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116D00 7F0E21D0 31391800 */ andi $t9, $t1, 0x1800 +/* 116D04 7F0E21D4 001978C3 */ sra $t7, $t9, 3 +/* 116D08 7F0E21D8 312D00FF */ andi $t5, $t1, 0xff +/* 116D0C 7F0E21DC 01ED4025 */ or $t0, $t7, $t5 +/* 116D10 7F0E21E0 03085021 */ addu $t2, $t8, $t0 +/* 116D14 7F0E21E4 A14C0000 */ sb $t4, ($t2) +.L7F0E21E8: +/* 116D18 7F0E21E8 97AB0292 */ lhu $t3, 0x292($sp) +/* 116D1C 7F0E21EC 97B80292 */ lhu $t8, 0x292($sp) +/* 116D20 7F0E21F0 97B90298 */ lhu $t9, 0x298($sp) +/* 116D24 7F0E21F4 256E0001 */ addiu $t6, $t3, 1 +/* 116D28 7F0E21F8 29C15B00 */ slti $at, $t6, 0x5b00 +/* 116D2C 7F0E21FC 14200007 */ bnez $at, .L7F0E221C +/* 116D30 7F0E2200 27080001 */ addiu $t0, $t8, 1 +/* 116D34 7F0E2204 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116D38 7F0E2208 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116D3C 7F0E220C 00194A03 */ sra $t1, $t9, 8 +/* 116D40 7F0E2210 01EB6821 */ addu $t5, $t7, $t3 +/* 116D44 7F0E2214 10000025 */ b .L7F0E22AC +/* 116D48 7F0E2218 A1A90001 */ sb $t1, 1($t5) +.L7F0E221C: +/* 116D4C 7F0E221C 29015800 */ slti $at, $t0, 0x5800 +/* 116D50 7F0E2220 1420000E */ bnez $at, .L7F0E225C +/* 116D54 7F0E2224 97A80292 */ lhu $t0, 0x292($sp) +/* 116D58 7F0E2228 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116D5C 7F0E222C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116D60 7F0E2230 97AC0298 */ lhu $t4, 0x298($sp) +/* 116D64 7F0E2234 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 116D68 7F0E2238 01D8C821 */ addu $t9, $t6, $t8 +/* 116D6C 7F0E223C 000C5203 */ sra $t2, $t4, 8 +/* 116D70 7F0E2240 A32A0001 */ sb $t2, 1($t9) +/* 116D74 7F0E2244 97A90292 */ lhu $t1, 0x292($sp) +/* 116D78 7F0E2248 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 116D7C 7F0E224C 240F0001 */ li $t7, 1 +/* 116D80 7F0E2250 01696821 */ addu $t5, $t3, $t1 +/* 116D84 7F0E2254 10000015 */ b .L7F0E22AC +/* 116D88 7F0E2258 A1AFA801 */ sb $t7, -0x57ff($t5) +.L7F0E225C: +/* 116D8C 7F0E225C 250C0001 */ addiu $t4, $t0, 1 +/* 116D90 7F0E2260 29814000 */ slti $at, $t4, 0x4000 +/* 116D94 7F0E2264 14200011 */ bnez $at, .L7F0E22AC +/* 116D98 7F0E2268 97AE0298 */ lhu $t6, 0x298($sp) +/* 116D9C 7F0E226C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116DA0 7F0E2270 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116DA4 7F0E2274 000EC203 */ sra $t8, $t6, 8 +/* 116DA8 7F0E2278 240B0001 */ li $t3, 1 +/* 116DAC 7F0E227C 0148C821 */ addu $t9, $t2, $t0 +/* 116DB0 7F0E2280 A3380001 */ sb $t8, 1($t9) +/* 116DB4 7F0E2284 97A90292 */ lhu $t1, 0x292($sp) +/* 116DB8 7F0E2288 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116DBC 7F0E228C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116DC0 7F0E2290 252F0001 */ addiu $t7, $t1, 1 +/* 116DC4 7F0E2294 31ED1800 */ andi $t5, $t7, 0x1800 +/* 116DC8 7F0E2298 000D60C3 */ sra $t4, $t5, 3 +/* 116DCC 7F0E229C 31EE00FF */ andi $t6, $t7, 0xff +/* 116DD0 7F0E22A0 018E5025 */ or $t2, $t4, $t6 +/* 116DD4 7F0E22A4 010AC021 */ addu $t8, $t0, $t2 +/* 116DD8 7F0E22A8 A30B0000 */ sb $t3, ($t8) +.L7F0E22AC: +/* 116DDC 7F0E22AC 24190030 */ li $t9, 48 +/* 116DE0 7F0E22B0 10000152 */ b .L7F0E27FC +/* 116DE4 7F0E22B4 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_F8: +/* 116DE8 7F0E22B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 116DEC 7F0E22BC 322F0080 */ andi $t7, $s1, 0x80 +/* 116DF0 7F0E22C0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116DF4 7F0E22C4 252D0005 */ addiu $t5, $t1, 5 +/* 116DF8 7F0E22C8 11E0014C */ beqz $t7, .L7F0E27FC +/* 116DFC 7F0E22CC AFAD028C */ sw $t5, 0x28c($sp) +/* 116E00 7F0E22D0 97A80292 */ lhu $t0, 0x292($sp) +/* 116E04 7F0E22D4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116E08 7F0E22D8 25AE0006 */ addiu $t6, $t5, 6 +/* 116E0C 7F0E22DC AFAE028C */ sw $t6, 0x28c($sp) +/* 116E10 7F0E22E0 0148C821 */ addu $t9, $t2, $t0 +/* 116E14 7F0E22E4 93290001 */ lbu $t1, 1($t9) +/* 116E18 7F0E22E8 010A5821 */ addu $t3, $t0, $t2 +/* 116E1C 7F0E22EC 91780000 */ lbu $t8, ($t3) +/* 116E20 7F0E22F0 00096A00 */ sll $t5, $t1, 8 +/* 116E24 7F0E22F4 250C0002 */ addiu $t4, $t0, 2 +/* 116E28 7F0E22F8 030D7825 */ or $t7, $t8, $t5 +/* 116E2C 7F0E22FC A7AF0298 */ sh $t7, 0x298($sp) +/* 116E30 7F0E2300 1000013E */ b .L7F0E27FC +/* 116E34 7F0E2304 A7AC0292 */ sh $t4, 0x292($sp) +spectrum_op_F9: +/* 116E38 7F0E2308 8FAE028C */ lw $t6, 0x28c($sp) +/* 116E3C 7F0E230C 93AA0287 */ lbu $t2, 0x287($sp) +/* 116E40 7F0E2310 93B80287 */ lbu $t8, 0x287($sp) +/* 116E44 7F0E2314 25CB0006 */ addiu $t3, $t6, 6 +/* 116E48 7F0E2318 15400005 */ bnez $t2, .L7F0E2330 +/* 116E4C 7F0E231C AFAB028C */ sw $t3, 0x28c($sp) +/* 116E50 7F0E2320 0016CA00 */ sll $t9, $s6, 8 +/* 116E54 7F0E2324 03374825 */ or $t1, $t9, $s7 +/* 116E58 7F0E2328 10000134 */ b .L7F0E27FC +/* 116E5C 7F0E232C A7A90292 */ sh $t1, 0x292($sp) +.L7F0E2330: +/* 116E60 7F0E2330 24010001 */ li $at, 1 +/* 116E64 7F0E2334 17010004 */ bne $t8, $at, .L7F0E2348 +/* 116E68 7F0E2338 97AF0294 */ lhu $t7, 0x294($sp) +/* 116E6C 7F0E233C 97AD0296 */ lhu $t5, 0x296($sp) +/* 116E70 7F0E2340 10000002 */ b .L7F0E234C +/* 116E74 7F0E2344 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0E2348: +/* 116E78 7F0E2348 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0E234C: +/* 116E7C 7F0E234C 8FA80048 */ lw $t0, 0x48($sp) +/* 116E80 7F0E2350 1000012A */ b .L7F0E27FC +/* 116E84 7F0E2354 A7A80292 */ sh $t0, 0x292($sp) +spectrum_op_FA: +/* 116E88 7F0E2358 8FAC028C */ lw $t4, 0x28c($sp) +/* 116E8C 7F0E235C 322B0080 */ andi $t3, $s1, 0x80 +/* 116E90 7F0E2360 97AA0298 */ lhu $t2, 0x298($sp) +/* 116E94 7F0E2364 258E000A */ addiu $t6, $t4, 0xa +/* 116E98 7F0E2368 1160000B */ beqz $t3, .L7F0E2398 +/* 116E9C 7F0E236C AFAE028C */ sw $t6, 0x28c($sp) +/* 116EA0 7F0E2370 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 116EA4 7F0E2374 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 116EA8 7F0E2378 032A6821 */ addu $t5, $t9, $t2 +/* 116EAC 7F0E237C 91AF0001 */ lbu $t7, 1($t5) +/* 116EB0 7F0E2380 01594821 */ addu $t1, $t2, $t9 +/* 116EB4 7F0E2384 91380000 */ lbu $t8, ($t1) +/* 116EB8 7F0E2388 000F4200 */ sll $t0, $t7, 8 +/* 116EBC 7F0E238C 03086025 */ or $t4, $t8, $t0 +/* 116EC0 7F0E2390 1000011A */ b .L7F0E27FC +/* 116EC4 7F0E2394 A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E2398: +/* 116EC8 7F0E2398 97AE0298 */ lhu $t6, 0x298($sp) +/* 116ECC 7F0E239C 25CB0002 */ addiu $t3, $t6, 2 +/* 116ED0 7F0E23A0 10000116 */ b .L7F0E27FC +/* 116ED4 7F0E23A4 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_FB: +/* 116ED8 7F0E23A8 8FA9028C */ lw $t1, 0x28c($sp) +/* 116EDC 7F0E23AC 240A0001 */ li $t2, 1 +/* 116EE0 7F0E23B0 240D0001 */ li $t5, 1 +/* 116EE4 7F0E23B4 25390004 */ addiu $t9, $t1, 4 +/* 116EE8 7F0E23B8 AFB9028C */ sw $t9, 0x28c($sp) +/* 116EEC 7F0E23BC A3AD029D */ sb $t5, 0x29d($sp) +/* 116EF0 7F0E23C0 A3AA029C */ sb $t2, 0x29c($sp) +/* 116EF4 7F0E23C4 1000010D */ b .L7F0E27FC +/* 116EF8 7F0E23C8 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_FC: +/* 116EFC 7F0E23CC 8FAF028C */ lw $t7, 0x28c($sp) +/* 116F00 7F0E23D0 32280080 */ andi $t0, $s1, 0x80 +/* 116F04 7F0E23D4 25F8000A */ addiu $t8, $t7, 0xa +/* 116F08 7F0E23D8 11000072 */ beqz $t0, .L7F0E25A4 +/* 116F0C 7F0E23DC AFB8028C */ sw $t8, 0x28c($sp) +/* 116F10 7F0E23E0 97AB0292 */ lhu $t3, 0x292($sp) +/* 116F14 7F0E23E4 270E0007 */ addiu $t6, $t8, 7 +/* 116F18 7F0E23E8 AFAE028C */ sw $t6, 0x28c($sp) +/* 116F1C 7F0E23EC 2569FFFE */ addiu $t1, $t3, -2 +/* 116F20 7F0E23F0 3139FFFF */ andi $t9, $t1, 0xffff +/* 116F24 7F0E23F4 2B215B00 */ slti $at, $t9, 0x5b00 +/* 116F28 7F0E23F8 14200008 */ bnez $at, .L7F0E241C +/* 116F2C 7F0E23FC A7A90292 */ sh $t1, 0x292($sp) +/* 116F30 7F0E2400 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116F34 7F0E2404 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116F38 7F0E2408 97AA0298 */ lhu $t2, 0x298($sp) +/* 116F3C 7F0E240C 01F9C021 */ addu $t8, $t7, $t9 +/* 116F40 7F0E2410 254D0002 */ addiu $t5, $t2, 2 +/* 116F44 7F0E2414 10000024 */ b .L7F0E24A8 +/* 116F48 7F0E2418 A30D0000 */ sb $t5, ($t8) +.L7F0E241C: +/* 116F4C 7F0E241C 97A80292 */ lhu $t0, 0x292($sp) +/* 116F50 7F0E2420 97B80292 */ lhu $t8, 0x292($sp) +/* 116F54 7F0E2424 97AC0298 */ lhu $t4, 0x298($sp) +/* 116F58 7F0E2428 29015800 */ slti $at, $t0, 0x5800 +/* 116F5C 7F0E242C 1420000C */ bnez $at, .L7F0E2460 +/* 116F60 7F0E2430 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 116F64 7F0E2434 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 116F68 7F0E2438 258E0002 */ addiu $t6, $t4, 2 +/* 116F6C 7F0E243C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 116F70 7F0E2440 01684821 */ addu $t1, $t3, $t0 +/* 116F74 7F0E2444 A12E0000 */ sb $t6, ($t1) +/* 116F78 7F0E2448 97B90292 */ lhu $t9, 0x292($sp) +/* 116F7C 7F0E244C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 116F80 7F0E2450 240A0001 */ li $t2, 1 +/* 116F84 7F0E2454 01F96821 */ addu $t5, $t7, $t9 +/* 116F88 7F0E2458 10000013 */ b .L7F0E24A8 +/* 116F8C 7F0E245C A1AAA800 */ sb $t2, -0x5800($t5) +.L7F0E2460: +/* 116F90 7F0E2460 2B014000 */ slti $at, $t8, 0x4000 +/* 116F94 7F0E2464 14200010 */ bnez $at, .L7F0E24A8 +/* 116F98 7F0E2468 97AC0298 */ lhu $t4, 0x298($sp) +/* 116F9C 7F0E246C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116FA0 7F0E2470 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116FA4 7F0E2474 258B0002 */ addiu $t3, $t4, 2 +/* 116FA8 7F0E2478 24090001 */ li $t1, 1 +/* 116FAC 7F0E247C 01187021 */ addu $t6, $t0, $t8 +/* 116FB0 7F0E2480 A1CB0000 */ sb $t3, ($t6) +/* 116FB4 7F0E2484 97AF0292 */ lhu $t7, 0x292($sp) +/* 116FB8 7F0E2488 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116FBC 7F0E248C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116FC0 7F0E2490 31F91800 */ andi $t9, $t7, 0x1800 +/* 116FC4 7F0E2494 001950C3 */ sra $t2, $t9, 3 +/* 116FC8 7F0E2498 31ED00FF */ andi $t5, $t7, 0xff +/* 116FCC 7F0E249C 014D6025 */ or $t4, $t2, $t5 +/* 116FD0 7F0E24A0 010CC021 */ addu $t8, $t0, $t4 +/* 116FD4 7F0E24A4 A3090000 */ sb $t1, ($t8) +.L7F0E24A8: +/* 116FD8 7F0E24A8 97AB0292 */ lhu $t3, 0x292($sp) +/* 116FDC 7F0E24AC 97AC0292 */ lhu $t4, 0x292($sp) +/* 116FE0 7F0E24B0 97B90298 */ lhu $t9, 0x298($sp) +/* 116FE4 7F0E24B4 256E0001 */ addiu $t6, $t3, 1 +/* 116FE8 7F0E24B8 29C15B00 */ slti $at, $t6, 0x5b00 +/* 116FEC 7F0E24BC 14200008 */ bnez $at, .L7F0E24E0 +/* 116FF0 7F0E24C0 25890001 */ addiu $t1, $t4, 1 +/* 116FF4 7F0E24C4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 116FF8 7F0E24C8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 116FFC 7F0E24CC 272F0002 */ addiu $t7, $t9, 2 +/* 117000 7F0E24D0 000F5203 */ sra $t2, $t7, 8 +/* 117004 7F0E24D4 01AB4021 */ addu $t0, $t5, $t3 +/* 117008 7F0E24D8 10000027 */ b .L7F0E2578 +/* 11700C 7F0E24DC A10A0001 */ sb $t2, 1($t0) +.L7F0E24E0: +/* 117010 7F0E24E0 29215800 */ slti $at, $t1, 0x5800 +/* 117014 7F0E24E4 1420000F */ bnez $at, .L7F0E2524 +/* 117018 7F0E24E8 97B80292 */ lhu $t8, 0x292($sp) +/* 11701C 7F0E24EC 97B80298 */ lhu $t8, 0x298($sp) +/* 117020 7F0E24F0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 117024 7F0E24F4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 117028 7F0E24F8 270E0002 */ addiu $t6, $t8, 2 +/* 11702C 7F0E24FC 000ECA03 */ sra $t9, $t6, 8 +/* 117030 7F0E2500 01EC6821 */ addu $t5, $t7, $t4 +/* 117034 7F0E2504 A1B90001 */ sb $t9, 1($t5) +/* 117038 7F0E2508 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 11703C 7F0E250C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117040 7F0E2510 97A80292 */ lhu $t0, 0x292($sp) +/* 117044 7F0E2514 240B0001 */ li $t3, 1 +/* 117048 7F0E2518 01484821 */ addu $t1, $t2, $t0 +/* 11704C 7F0E251C 10000016 */ b .L7F0E2578 +/* 117050 7F0E2520 A12BA801 */ sb $t3, -0x57ff($t1) +.L7F0E2524: +/* 117054 7F0E2524 270E0001 */ addiu $t6, $t8, 1 +/* 117058 7F0E2528 29C14000 */ slti $at, $t6, 0x4000 +/* 11705C 7F0E252C 14200012 */ bnez $at, .L7F0E2578 +/* 117060 7F0E2530 97AF0298 */ lhu $t7, 0x298($sp) +/* 117064 7F0E2534 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117068 7F0E2538 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11706C 7F0E253C 25EC0002 */ addiu $t4, $t7, 2 +/* 117070 7F0E2540 000CCA03 */ sra $t9, $t4, 8 +/* 117074 7F0E2544 01B85021 */ addu $t2, $t5, $t8 +/* 117078 7F0E2548 A1590001 */ sb $t9, 1($t2) +/* 11707C 7F0E254C 97AB0292 */ lhu $t3, 0x292($sp) +/* 117080 7F0E2550 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 117084 7F0E2554 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 117088 7F0E2558 25690001 */ addiu $t1, $t3, 1 +/* 11708C 7F0E255C 312E1800 */ andi $t6, $t1, 0x1800 +/* 117090 7F0E2560 000E78C3 */ sra $t7, $t6, 3 +/* 117094 7F0E2564 312C00FF */ andi $t4, $t1, 0xff +/* 117098 7F0E2568 01EC6825 */ or $t5, $t7, $t4 +/* 11709C 7F0E256C 24080001 */ li $t0, 1 +/* 1170A0 7F0E2570 030DC821 */ addu $t9, $t8, $t5 +/* 1170A4 7F0E2574 A3280000 */ sb $t0, ($t9) +.L7F0E2578: +/* 1170A8 7F0E2578 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1170AC 7F0E257C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1170B0 7F0E2580 97AA0298 */ lhu $t2, 0x298($sp) +/* 1170B4 7F0E2584 016A7821 */ addu $t7, $t3, $t2 +/* 1170B8 7F0E2588 91EC0001 */ lbu $t4, 1($t7) +/* 1170BC 7F0E258C 014B7021 */ addu $t6, $t2, $t3 +/* 1170C0 7F0E2590 91C90000 */ lbu $t1, ($t6) +/* 1170C4 7F0E2594 000CC200 */ sll $t8, $t4, 8 +/* 1170C8 7F0E2598 01386825 */ or $t5, $t1, $t8 +/* 1170CC 7F0E259C 10000097 */ b .L7F0E27FC +/* 1170D0 7F0E25A0 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0E25A4: +/* 1170D4 7F0E25A4 97A80298 */ lhu $t0, 0x298($sp) +/* 1170D8 7F0E25A8 25190002 */ addiu $t9, $t0, 2 +/* 1170DC 7F0E25AC 10000093 */ b .L7F0E27FC +/* 1170E0 7F0E25B0 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_FD: +/* 1170E4 7F0E25B4 8FAE028C */ lw $t6, 0x28c($sp) +/* 1170E8 7F0E25B8 240A0002 */ li $t2, 2 +/* 1170EC 7F0E25BC A3AA0286 */ sb $t2, 0x286($sp) +/* 1170F0 7F0E25C0 25CB0004 */ addiu $t3, $t6, 4 +/* 1170F4 7F0E25C4 AFAB028C */ sw $t3, 0x28c($sp) +/* 1170F8 7F0E25C8 1000008C */ b .L7F0E27FC +/* 1170FC 7F0E25CC A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_FE: +/* 117100 7F0E25D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 117104 7F0E25D4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117108 7F0E25D8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11710C 7F0E25DC 97A90298 */ lhu $t1, 0x298($sp) +/* 117110 7F0E25E0 25EC0007 */ addiu $t4, $t7, 7 +/* 117114 7F0E25E4 AFAC028C */ sw $t4, 0x28c($sp) +/* 117118 7F0E25E8 01386821 */ addu $t5, $t1, $t8 +/* 11711C 7F0E25EC 91A80000 */ lbu $t0, ($t5) +/* 117120 7F0E25F0 0208C823 */ subu $t9, $s0, $t0 +/* 117124 7F0E25F4 332E01FF */ andi $t6, $t9, 0x1ff +/* 117128 7F0E25F8 31CBFFFF */ andi $t3, $t6, 0xffff +/* 11712C 7F0E25FC 2D6A0001 */ sltiu $t2, $t3, 1 +/* 117130 7F0E2600 320B000F */ andi $t3, $s0, 0xf +/* 117134 7F0E2604 3119000F */ andi $t9, $t0, 0xf +/* 117138 7F0E2608 0179782A */ slt $t7, $t3, $t9 +/* 11713C 7F0E260C 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 117140 7F0E2610 000EC203 */ sra $t8, $t6, 8 +/* 117144 7F0E2614 01986825 */ or $t5, $t4, $t8 +/* 117148 7F0E2618 000F4900 */ sll $t1, $t7, 4 +/* 11714C 7F0E261C 01C0C825 */ move $t9, $t6 +/* 117150 7F0E2620 0208C026 */ xor $t8, $s0, $t0 +/* 117154 7F0E2624 330B0080 */ andi $t3, $t8, 0x80 +/* 117158 7F0E2628 03307826 */ xor $t7, $t9, $s0 +/* 11715C 7F0E262C 01A96025 */ or $t4, $t5, $t1 +/* 117160 7F0E2630 016F6824 */ and $t5, $t3, $t7 +/* 117164 7F0E2634 000D4943 */ sra $t1, $t5, 5 +/* 117168 7F0E2638 A3A80053 */ sb $t0, 0x53($sp) +/* 11716C 7F0E263C 97AB0298 */ lhu $t3, 0x298($sp) +/* 117170 7F0E2640 01894025 */ or $t0, $t4, $t1 +/* 117174 7F0E2644 A7AE0054 */ sh $t6, 0x54($sp) +/* 117178 7F0E2648 000A7180 */ sll $t6, $t2, 6 +/* 11717C 7F0E264C 35180002 */ ori $t8, $t0, 2 +/* 117180 7F0E2650 030E8825 */ or $s1, $t8, $t6 +/* 117184 7F0E2654 323900FF */ andi $t9, $s1, 0xff +/* 117188 7F0E2658 256F0001 */ addiu $t7, $t3, 1 +/* 11718C 7F0E265C 03208825 */ move $s1, $t9 +/* 117190 7F0E2660 AFAA0048 */ sw $t2, 0x48($sp) +/* 117194 7F0E2664 10000065 */ b .L7F0E27FC +/* 117198 7F0E2668 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_FF: +/* 11719C 7F0E266C 97A90292 */ lhu $t1, 0x292($sp) +/* 1171A0 7F0E2670 8FAD028C */ lw $t5, 0x28c($sp) +/* 1171A4 7F0E2674 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1171A8 7F0E2678 2528FFFE */ addiu $t0, $t1, -2 +/* 1171AC 7F0E267C 310AFFFF */ andi $t2, $t0, 0xffff +/* 1171B0 7F0E2680 29415B00 */ slti $at, $t2, 0x5b00 +/* 1171B4 7F0E2684 25AC000B */ addiu $t4, $t5, 0xb +/* 1171B8 7F0E2688 AFAC028C */ sw $t4, 0x28c($sp) +/* 1171BC 7F0E268C 14200006 */ bnez $at, .L7F0E26A8 +/* 1171C0 7F0E2690 A7A80292 */ sh $t0, 0x292($sp) +/* 1171C4 7F0E2694 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1171C8 7F0E2698 97B80298 */ lhu $t8, 0x298($sp) +/* 1171CC 7F0E269C 01CAC821 */ addu $t9, $t6, $t2 +/* 1171D0 7F0E26A0 10000023 */ b .L7F0E2730 +/* 1171D4 7F0E26A4 A3380000 */ sb $t8, ($t9) +.L7F0E26A8: +/* 1171D8 7F0E26A8 97AB0292 */ lhu $t3, 0x292($sp) +/* 1171DC 7F0E26AC 97B80292 */ lhu $t8, 0x292($sp) +/* 1171E0 7F0E26B0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1171E4 7F0E26B4 29615800 */ slti $at, $t3, 0x5800 +/* 1171E8 7F0E26B8 5420000D */ bnezl $at, .L7F0E26F0 +/* 1171EC 7F0E26BC 2B014000 */ slti $at, $t8, 0x4000 +/* 1171F0 7F0E26C0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1171F4 7F0E26C4 97AF0298 */ lhu $t7, 0x298($sp) +/* 1171F8 7F0E26C8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1171FC 7F0E26CC 01AB6021 */ addu $t4, $t5, $t3 +/* 117200 7F0E26D0 A18F0000 */ sb $t7, ($t4) +/* 117204 7F0E26D4 97AE0292 */ lhu $t6, 0x292($sp) +/* 117208 7F0E26D8 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 11720C 7F0E26DC 24090001 */ li $t1, 1 +/* 117210 7F0E26E0 010E5021 */ addu $t2, $t0, $t6 +/* 117214 7F0E26E4 10000012 */ b .L7F0E2730 +/* 117218 7F0E26E8 A149A800 */ sb $t1, -0x5800($t2) +/* 11721C 7F0E26EC 2B014000 */ slti $at, $t8, 0x4000 +.L7F0E26F0: +/* 117220 7F0E26F0 1420000F */ bnez $at, .L7F0E2730 +/* 117224 7F0E26F4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117228 7F0E26F8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11722C 7F0E26FC 97B90298 */ lhu $t9, 0x298($sp) +/* 117230 7F0E2700 240F0001 */ li $t7, 1 +/* 117234 7F0E2704 01B85821 */ addu $t3, $t5, $t8 +/* 117238 7F0E2708 A1790000 */ sb $t9, ($t3) +/* 11723C 7F0E270C 97AC0292 */ lhu $t4, 0x292($sp) +/* 117240 7F0E2710 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 117244 7F0E2714 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 117248 7F0E2718 31881800 */ andi $t0, $t4, 0x1800 +/* 11724C 7F0E271C 000870C3 */ sra $t6, $t0, 3 +/* 117250 7F0E2720 318900FF */ andi $t1, $t4, 0xff +/* 117254 7F0E2724 01C95025 */ or $t2, $t6, $t1 +/* 117258 7F0E2728 01AAC021 */ addu $t8, $t5, $t2 +/* 11725C 7F0E272C A30F0000 */ sb $t7, ($t8) +.L7F0E2730: +/* 117260 7F0E2730 97B90292 */ lhu $t9, 0x292($sp) +/* 117264 7F0E2734 97AD0292 */ lhu $t5, 0x292($sp) +/* 117268 7F0E2738 97A80298 */ lhu $t0, 0x298($sp) +/* 11726C 7F0E273C 272B0001 */ addiu $t3, $t9, 1 +/* 117270 7F0E2740 29615B00 */ slti $at, $t3, 0x5b00 +/* 117274 7F0E2744 14200007 */ bnez $at, .L7F0E2764 +/* 117278 7F0E2748 25AA0001 */ addiu $t2, $t5, 1 +/* 11727C 7F0E274C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 117280 7F0E2750 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 117284 7F0E2754 00086203 */ sra $t4, $t0, 8 +/* 117288 7F0E2758 01D94821 */ addu $t1, $t6, $t9 +/* 11728C 7F0E275C 10000025 */ b .L7F0E27F4 +/* 117290 7F0E2760 A12C0001 */ sb $t4, 1($t1) +.L7F0E2764: +/* 117294 7F0E2764 29415800 */ slti $at, $t2, 0x5800 +/* 117298 7F0E2768 1420000E */ bnez $at, .L7F0E27A4 +/* 11729C 7F0E276C 97AA0292 */ lhu $t2, 0x292($sp) +/* 1172A0 7F0E2770 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1172A4 7F0E2774 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1172A8 7F0E2778 97AF0298 */ lhu $t7, 0x298($sp) +/* 1172AC 7F0E277C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1172B0 7F0E2780 016D4021 */ addu $t0, $t3, $t5 +/* 1172B4 7F0E2784 000FC203 */ sra $t8, $t7, 8 +/* 1172B8 7F0E2788 A1180001 */ sb $t8, 1($t0) +/* 1172BC 7F0E278C 97AC0292 */ lhu $t4, 0x292($sp) +/* 1172C0 7F0E2790 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1172C4 7F0E2794 240E0001 */ li $t6, 1 +/* 1172C8 7F0E2798 032C4821 */ addu $t1, $t9, $t4 +/* 1172CC 7F0E279C 10000015 */ b .L7F0E27F4 +/* 1172D0 7F0E27A0 A12EA801 */ sb $t6, -0x57ff($t1) +.L7F0E27A4: +/* 1172D4 7F0E27A4 254F0001 */ addiu $t7, $t2, 1 +/* 1172D8 7F0E27A8 29E14000 */ slti $at, $t7, 0x4000 +/* 1172DC 7F0E27AC 14200011 */ bnez $at, .L7F0E27F4 +/* 1172E0 7F0E27B0 97AB0298 */ lhu $t3, 0x298($sp) +/* 1172E4 7F0E27B4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1172E8 7F0E27B8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1172EC 7F0E27BC 000B6A03 */ sra $t5, $t3, 8 +/* 1172F0 7F0E27C0 24190001 */ li $t9, 1 +/* 1172F4 7F0E27C4 030A4021 */ addu $t0, $t8, $t2 +/* 1172F8 7F0E27C8 A10D0001 */ sb $t5, 1($t0) +/* 1172FC 7F0E27CC 97AC0292 */ lhu $t4, 0x292($sp) +/* 117300 7F0E27D0 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 117304 7F0E27D4 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117308 7F0E27D8 258E0001 */ addiu $t6, $t4, 1 +/* 11730C 7F0E27DC 31C91800 */ andi $t1, $t6, 0x1800 +/* 117310 7F0E27E0 000978C3 */ sra $t7, $t1, 3 +/* 117314 7F0E27E4 31CB00FF */ andi $t3, $t6, 0xff +/* 117318 7F0E27E8 01EBC025 */ or $t8, $t7, $t3 +/* 11731C 7F0E27EC 01586821 */ addu $t5, $t2, $t8 +/* 117320 7F0E27F0 A1B90000 */ sb $t9, ($t5) +.L7F0E27F4: +/* 117324 7F0E27F4 24080038 */ li $t0, 56 +/* 117328 7F0E27F8 A7A80298 */ sh $t0, 0x298($sp) +.L7F0E27FC: +/* 11732C 7F0E27FC 8FAC028C */ lw $t4, 0x28c($sp) +/* 117330 7F0E2800 8FA90280 */ lw $t1, 0x280($sp) +/* 117334 7F0E2804 0189082B */ sltu $at, $t4, $t1 +/* 117338 7F0E2808 1420C473 */ bnez $at, .L7F0D39D8 +/* 11733C 7F0E280C 00000000 */ nop +/* 117340 7F0E2810 93AE0285 */ lbu $t6, 0x285($sp) +/* 117344 7F0E2814 11C0C470 */ beqz $t6, .L7F0D39D8 +/* 117348 7F0E2818 00000000 */ nop +.L7F0E281C: +/* 11734C 7F0E281C 8FAF028C */ lw $t7, 0x28c($sp) +/* 117350 7F0E2820 8FAB0280 */ lw $t3, 0x280($sp) +/* 117354 7F0E2824 93AA0285 */ lbu $t2, 0x285($sp) +/* 117358 7F0E2828 01EB082B */ sltu $at, $t7, $t3 +/* 11735C 7F0E282C 142000F6 */ bnez $at, .L7F0E2C08 +/* 117360 7F0E2830 00000000 */ nop +/* 117364 7F0E2834 114000F4 */ beqz $t2, .L7F0E2C08 +/* 117368 7F0E2838 00000000 */ nop +/* 11736C 7F0E283C 93B9029D */ lbu $t9, 0x29d($sp) +/* 117370 7F0E2840 01EBC023 */ subu $t8, $t7, $t3 +/* 117374 7F0E2844 AFB8028C */ sw $t8, 0x28c($sp) +/* 117378 7F0E2848 132000EF */ beqz $t9, .L7F0E2C08 +/* 11737C 7F0E284C 97AD0298 */ lhu $t5, 0x298($sp) +/* 117380 7F0E2850 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 117384 7F0E2854 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 117388 7F0E2858 24010076 */ li $at, 118 +/* 11738C 7F0E285C 25AE0001 */ addiu $t6, $t5, 1 +/* 117390 7F0E2860 01A86021 */ addu $t4, $t5, $t0 +/* 117394 7F0E2864 91890000 */ lbu $t1, ($t4) +/* 117398 7F0E2868 55210003 */ bnel $t1, $at, .L7F0E2878 +/* 11739C 7F0E286C 8FAA028C */ lw $t2, 0x28c($sp) +/* 1173A0 7F0E2870 A7AE0298 */ sh $t6, 0x298($sp) +/* 1173A4 7F0E2874 8FAA028C */ lw $t2, 0x28c($sp) +.L7F0E2878: +/* 1173A8 7F0E2878 93AB029B */ lbu $t3, 0x29b($sp) +/* 1173AC 7F0E287C A3A0029C */ sb $zero, 0x29c($sp) +/* 1173B0 7F0E2880 254F0005 */ addiu $t7, $t2, 5 +/* 1173B4 7F0E2884 A3A0029D */ sb $zero, 0x29d($sp) +/* 1173B8 7F0E2888 AFAF028C */ sw $t7, 0x28c($sp) +/* 1173BC 7F0E288C 1160000A */ beqz $t3, .L7F0E28B8 +/* 1173C0 7F0E2890 AFAB0048 */ sw $t3, 0x48($sp) +/* 1173C4 7F0E2894 24010001 */ li $at, 1 +/* 1173C8 7F0E2898 11610007 */ beq $t3, $at, .L7F0E28B8 +/* 1173CC 7F0E289C 24010002 */ li $at, 2 +/* 1173D0 7F0E28A0 11610005 */ beq $t3, $at, .L7F0E28B8 +/* 1173D4 7F0E28A4 24010003 */ li $at, 3 +/* 1173D8 7F0E28A8 11610068 */ beq $t3, $at, .L7F0E2A4C +/* 1173DC 7F0E28AC 8FB9028C */ lw $t9, 0x28c($sp) +/* 1173E0 7F0E28B0 100000D5 */ b .L7F0E2C08 +/* 1173E4 7F0E28B4 00000000 */ nop +.L7F0E28B8: +/* 1173E8 7F0E28B8 97A80292 */ lhu $t0, 0x292($sp) +/* 1173EC 7F0E28BC 8FB8028C */ lw $t8, 0x28c($sp) +/* 1173F0 7F0E28C0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1173F4 7F0E28C4 250CFFFE */ addiu $t4, $t0, -2 +/* 1173F8 7F0E28C8 3189FFFF */ andi $t1, $t4, 0xffff +/* 1173FC 7F0E28CC 29215B00 */ slti $at, $t1, 0x5b00 +/* 117400 7F0E28D0 27190008 */ addiu $t9, $t8, 8 +/* 117404 7F0E28D4 AFB9028C */ sw $t9, 0x28c($sp) +/* 117408 7F0E28D8 14200006 */ bnez $at, .L7F0E28F4 +/* 11740C 7F0E28DC A7AC0292 */ sh $t4, 0x292($sp) +/* 117410 7F0E28E0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 117414 7F0E28E4 97AD0298 */ lhu $t5, 0x298($sp) +/* 117418 7F0E28E8 01C95021 */ addu $t2, $t6, $t1 +/* 11741C 7F0E28EC 10000023 */ b .L7F0E297C +/* 117420 7F0E28F0 A14D0000 */ sb $t5, ($t2) +.L7F0E28F4: +/* 117424 7F0E28F4 97AF0292 */ lhu $t7, 0x292($sp) +/* 117428 7F0E28F8 97AD0292 */ lhu $t5, 0x292($sp) +/* 11742C 7F0E28FC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117430 7F0E2900 29E15800 */ slti $at, $t7, 0x5800 +/* 117434 7F0E2904 5420000D */ bnezl $at, .L7F0E293C +/* 117438 7F0E2908 29A14000 */ slti $at, $t5, 0x4000 +/* 11743C 7F0E290C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 117440 7F0E2910 97AB0298 */ lhu $t3, 0x298($sp) +/* 117444 7F0E2914 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 117448 7F0E2918 030FC821 */ addu $t9, $t8, $t7 +/* 11744C 7F0E291C A32B0000 */ sb $t3, ($t9) +/* 117450 7F0E2920 97AE0292 */ lhu $t6, 0x292($sp) +/* 117454 7F0E2924 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 117458 7F0E2928 24080001 */ li $t0, 1 +/* 11745C 7F0E292C 018E4821 */ addu $t1, $t4, $t6 +/* 117460 7F0E2930 10000012 */ b .L7F0E297C +/* 117464 7F0E2934 A128A800 */ sb $t0, -0x5800($t1) +/* 117468 7F0E2938 29A14000 */ slti $at, $t5, 0x4000 +.L7F0E293C: +/* 11746C 7F0E293C 1420000F */ bnez $at, .L7F0E297C +/* 117470 7F0E2940 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117474 7F0E2944 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 117478 7F0E2948 97AA0298 */ lhu $t2, 0x298($sp) +/* 11747C 7F0E294C 240B0001 */ li $t3, 1 +/* 117480 7F0E2950 030D7821 */ addu $t7, $t8, $t5 +/* 117484 7F0E2954 A1EA0000 */ sb $t2, ($t7) +/* 117488 7F0E2958 97B90292 */ lhu $t9, 0x292($sp) +/* 11748C 7F0E295C 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 117490 7F0E2960 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 117494 7F0E2964 332C1800 */ andi $t4, $t9, 0x1800 +/* 117498 7F0E2968 000C70C3 */ sra $t6, $t4, 3 +/* 11749C 7F0E296C 332800FF */ andi $t0, $t9, 0xff +/* 1174A0 7F0E2970 01C84825 */ or $t1, $t6, $t0 +/* 1174A4 7F0E2974 03096821 */ addu $t5, $t8, $t1 +/* 1174A8 7F0E2978 A1AB0000 */ sb $t3, ($t5) +.L7F0E297C: +/* 1174AC 7F0E297C 97AA0292 */ lhu $t2, 0x292($sp) +/* 1174B0 7F0E2980 97B80292 */ lhu $t8, 0x292($sp) +/* 1174B4 7F0E2984 97AC0298 */ lhu $t4, 0x298($sp) +/* 1174B8 7F0E2988 254F0001 */ addiu $t7, $t2, 1 +/* 1174BC 7F0E298C 29E15B00 */ slti $at, $t7, 0x5b00 +/* 1174C0 7F0E2990 14200007 */ bnez $at, .L7F0E29B0 +/* 1174C4 7F0E2994 27090001 */ addiu $t1, $t8, 1 +/* 1174C8 7F0E2998 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1174CC 7F0E299C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1174D0 7F0E29A0 000CCA03 */ sra $t9, $t4, 8 +/* 1174D4 7F0E29A4 01CA4021 */ addu $t0, $t6, $t2 +/* 1174D8 7F0E29A8 10000025 */ b .L7F0E2A40 +/* 1174DC 7F0E29AC A1190001 */ sb $t9, 1($t0) +.L7F0E29B0: +/* 1174E0 7F0E29B0 29215800 */ slti $at, $t1, 0x5800 +/* 1174E4 7F0E29B4 1420000E */ bnez $at, .L7F0E29F0 +/* 1174E8 7F0E29B8 97A90292 */ lhu $t1, 0x292($sp) +/* 1174EC 7F0E29BC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1174F0 7F0E29C0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1174F4 7F0E29C4 97AB0298 */ lhu $t3, 0x298($sp) +/* 1174F8 7F0E29C8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1174FC 7F0E29CC 01F86021 */ addu $t4, $t7, $t8 +/* 117500 7F0E29D0 000B6A03 */ sra $t5, $t3, 8 +/* 117504 7F0E29D4 A18D0001 */ sb $t5, 1($t4) +/* 117508 7F0E29D8 97B90292 */ lhu $t9, 0x292($sp) +/* 11750C 7F0E29DC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117510 7F0E29E0 240E0001 */ li $t6, 1 +/* 117514 7F0E29E4 01594021 */ addu $t0, $t2, $t9 +/* 117518 7F0E29E8 10000015 */ b .L7F0E2A40 +/* 11751C 7F0E29EC A10EA801 */ sb $t6, -0x57ff($t0) +.L7F0E29F0: +/* 117520 7F0E29F0 252B0001 */ addiu $t3, $t1, 1 +/* 117524 7F0E29F4 29614000 */ slti $at, $t3, 0x4000 +/* 117528 7F0E29F8 14200011 */ bnez $at, .L7F0E2A40 +/* 11752C 7F0E29FC 97AF0298 */ lhu $t7, 0x298($sp) +/* 117530 7F0E2A00 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117534 7F0E2A04 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 117538 7F0E2A08 000FC203 */ sra $t8, $t7, 8 +/* 11753C 7F0E2A0C 240A0001 */ li $t2, 1 +/* 117540 7F0E2A10 01A96021 */ addu $t4, $t5, $t1 +/* 117544 7F0E2A14 A1980001 */ sb $t8, 1($t4) +/* 117548 7F0E2A18 97B90292 */ lhu $t9, 0x292($sp) +/* 11754C 7F0E2A1C 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 117550 7F0E2A20 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 117554 7F0E2A24 272E0001 */ addiu $t6, $t9, 1 +/* 117558 7F0E2A28 31C81800 */ andi $t0, $t6, 0x1800 +/* 11755C 7F0E2A2C 000858C3 */ sra $t3, $t0, 3 +/* 117560 7F0E2A30 31CF00FF */ andi $t7, $t6, 0xff +/* 117564 7F0E2A34 016F6825 */ or $t5, $t3, $t7 +/* 117568 7F0E2A38 012DC021 */ addu $t8, $t1, $t5 +/* 11756C 7F0E2A3C A30A0000 */ sb $t2, ($t8) +.L7F0E2A40: +/* 117570 7F0E2A40 240C0038 */ li $t4, 56 +/* 117574 7F0E2A44 10000070 */ b .L7F0E2C08 +/* 117578 7F0E2A48 A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E2A4C: +/* 11757C 7F0E2A4C 93AE029E */ lbu $t6, 0x29e($sp) +/* 117580 7F0E2A50 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 117584 7F0E2A54 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 117588 7F0E2A58 000E5A00 */ sll $t3, $t6, 8 +/* 11758C 7F0E2A5C 2728000E */ addiu $t0, $t9, 0xe +/* 117590 7F0E2A60 356F00FF */ ori $t7, $t3, 0xff +/* 117594 7F0E2A64 97AE0292 */ lhu $t6, 0x292($sp) +/* 117598 7F0E2A68 AFA8028C */ sw $t0, 0x28c($sp) +/* 11759C 7F0E2A6C 012FC021 */ addu $t8, $t1, $t7 +/* 1175A0 7F0E2A70 930C0001 */ lbu $t4, 1($t8) +/* 1175A4 7F0E2A74 01E96821 */ addu $t5, $t7, $t1 +/* 1175A8 7F0E2A78 91AA0000 */ lbu $t2, ($t5) +/* 1175AC 7F0E2A7C 25CBFFFE */ addiu $t3, $t6, -2 +/* 1175B0 7F0E2A80 316DFFFF */ andi $t5, $t3, 0xffff +/* 1175B4 7F0E2A84 000CCA00 */ sll $t9, $t4, 8 +/* 1175B8 7F0E2A88 29A15B00 */ slti $at, $t5, 0x5b00 +/* 1175BC 7F0E2A8C 01594025 */ or $t0, $t2, $t9 +/* 1175C0 7F0E2A90 AFA8004C */ sw $t0, 0x4c($sp) +/* 1175C4 7F0E2A94 14200007 */ bnez $at, .L7F0E2AB4 +/* 1175C8 7F0E2A98 A7AB0292 */ sh $t3, 0x292($sp) +/* 1175CC 7F0E2A9C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1175D0 7F0E2AA0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1175D4 7F0E2AA4 97A90298 */ lhu $t1, 0x298($sp) +/* 1175D8 7F0E2AA8 01EDC021 */ addu $t8, $t7, $t5 +/* 1175DC 7F0E2AAC 10000023 */ b .L7F0E2B3C +/* 1175E0 7F0E2AB0 A3090000 */ sb $t1, ($t8) +.L7F0E2AB4: +/* 1175E4 7F0E2AB4 97AC0292 */ lhu $t4, 0x292($sp) +/* 1175E8 7F0E2AB8 97A90292 */ lhu $t1, 0x292($sp) +/* 1175EC 7F0E2ABC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1175F0 7F0E2AC0 29815800 */ slti $at, $t4, 0x5800 +/* 1175F4 7F0E2AC4 5420000D */ bnezl $at, .L7F0E2AFC +/* 1175F8 7F0E2AC8 29214000 */ slti $at, $t1, 0x4000 +/* 1175FC 7F0E2ACC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 117600 7F0E2AD0 97AA0298 */ lhu $t2, 0x298($sp) +/* 117604 7F0E2AD4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 117608 7F0E2AD8 032C4021 */ addu $t0, $t9, $t4 +/* 11760C 7F0E2ADC A10A0000 */ sb $t2, ($t0) +/* 117610 7F0E2AE0 97AF0292 */ lhu $t7, 0x292($sp) +/* 117614 7F0E2AE4 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 117618 7F0E2AE8 240E0001 */ li $t6, 1 +/* 11761C 7F0E2AEC 016F6821 */ addu $t5, $t3, $t7 +/* 117620 7F0E2AF0 10000012 */ b .L7F0E2B3C +/* 117624 7F0E2AF4 A1AEA800 */ sb $t6, -0x5800($t5) +/* 117628 7F0E2AF8 29214000 */ slti $at, $t1, 0x4000 +.L7F0E2AFC: +/* 11762C 7F0E2AFC 1420000F */ bnez $at, .L7F0E2B3C +/* 117630 7F0E2B00 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 117634 7F0E2B04 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 117638 7F0E2B08 97B80298 */ lhu $t8, 0x298($sp) +/* 11763C 7F0E2B0C 240A0001 */ li $t2, 1 +/* 117640 7F0E2B10 03296021 */ addu $t4, $t9, $t1 +/* 117644 7F0E2B14 A1980000 */ sb $t8, ($t4) +/* 117648 7F0E2B18 97A80292 */ lhu $t0, 0x292($sp) +/* 11764C 7F0E2B1C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 117650 7F0E2B20 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 117654 7F0E2B24 310B1800 */ andi $t3, $t0, 0x1800 +/* 117658 7F0E2B28 000B78C3 */ sra $t7, $t3, 3 +/* 11765C 7F0E2B2C 310E00FF */ andi $t6, $t0, 0xff +/* 117660 7F0E2B30 01EE6825 */ or $t5, $t7, $t6 +/* 117664 7F0E2B34 032D4821 */ addu $t1, $t9, $t5 +/* 117668 7F0E2B38 A12A0000 */ sb $t2, ($t1) +.L7F0E2B3C: +/* 11766C 7F0E2B3C 97B80292 */ lhu $t8, 0x292($sp) +/* 117670 7F0E2B40 97B90292 */ lhu $t9, 0x292($sp) +/* 117674 7F0E2B44 97AB0298 */ lhu $t3, 0x298($sp) +/* 117678 7F0E2B48 270C0001 */ addiu $t4, $t8, 1 +/* 11767C 7F0E2B4C 29815B00 */ slti $at, $t4, 0x5b00 +/* 117680 7F0E2B50 14200007 */ bnez $at, .L7F0E2B70 +/* 117684 7F0E2B54 272D0001 */ addiu $t5, $t9, 1 +/* 117688 7F0E2B58 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 11768C 7F0E2B5C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 117690 7F0E2B60 000B4203 */ sra $t0, $t3, 8 +/* 117694 7F0E2B64 01F87021 */ addu $t6, $t7, $t8 +/* 117698 7F0E2B68 10000025 */ b .L7F0E2C00 +/* 11769C 7F0E2B6C A1C80001 */ sb $t0, 1($t6) +.L7F0E2B70: +/* 1176A0 7F0E2B70 29A15800 */ slti $at, $t5, 0x5800 +/* 1176A4 7F0E2B74 1420000E */ bnez $at, .L7F0E2BB0 +/* 1176A8 7F0E2B78 97AD0292 */ lhu $t5, 0x292($sp) +/* 1176AC 7F0E2B7C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1176B0 7F0E2B80 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1176B4 7F0E2B84 97AA0298 */ lhu $t2, 0x298($sp) +/* 1176B8 7F0E2B88 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1176BC 7F0E2B8C 01995821 */ addu $t3, $t4, $t9 +/* 1176C0 7F0E2B90 000A4A03 */ sra $t1, $t2, 8 +/* 1176C4 7F0E2B94 A1690001 */ sb $t1, 1($t3) +/* 1176C8 7F0E2B98 97A80292 */ lhu $t0, 0x292($sp) +/* 1176CC 7F0E2B9C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1176D0 7F0E2BA0 240F0001 */ li $t7, 1 +/* 1176D4 7F0E2BA4 03087021 */ addu $t6, $t8, $t0 +/* 1176D8 7F0E2BA8 10000015 */ b .L7F0E2C00 +/* 1176DC 7F0E2BAC A1CFA801 */ sb $t7, -0x57ff($t6) +.L7F0E2BB0: +/* 1176E0 7F0E2BB0 25AA0001 */ addiu $t2, $t5, 1 +/* 1176E4 7F0E2BB4 29414000 */ slti $at, $t2, 0x4000 +/* 1176E8 7F0E2BB8 14200011 */ bnez $at, .L7F0E2C00 +/* 1176EC 7F0E2BBC 97AC0298 */ lhu $t4, 0x298($sp) +/* 1176F0 7F0E2BC0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1176F4 7F0E2BC4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1176F8 7F0E2BC8 000CCA03 */ sra $t9, $t4, 8 +/* 1176FC 7F0E2BCC 24180001 */ li $t8, 1 +/* 117700 7F0E2BD0 012D5821 */ addu $t3, $t1, $t5 +/* 117704 7F0E2BD4 A1790001 */ sb $t9, 1($t3) +/* 117708 7F0E2BD8 97A80292 */ lhu $t0, 0x292($sp) +/* 11770C 7F0E2BDC 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 117710 7F0E2BE0 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 117714 7F0E2BE4 250F0001 */ addiu $t7, $t0, 1 +/* 117718 7F0E2BE8 31EE1800 */ andi $t6, $t7, 0x1800 +/* 11771C 7F0E2BEC 000E50C3 */ sra $t2, $t6, 3 +/* 117720 7F0E2BF0 31EC00FF */ andi $t4, $t7, 0xff +/* 117724 7F0E2BF4 014C4825 */ or $t1, $t2, $t4 +/* 117728 7F0E2BF8 01A9C821 */ addu $t9, $t5, $t1 +/* 11772C 7F0E2BFC A3380000 */ sb $t8, ($t9) +.L7F0E2C00: +/* 117730 7F0E2C00 8FAB004C */ lw $t3, 0x4c($sp) +/* 117734 7F0E2C04 A7AB0298 */ sh $t3, 0x298($sp) +.L7F0E2C08: +/* 117738 7F0E2C08 3C018009 */ lui $at, %hi(spectrum_header16_15) +/* 11773C 7F0E2C0C A030E338 */ sb $s0, %lo(spectrum_header16_15)($at) +/* 117740 7F0E2C10 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E339) +/* 117744 7F0E2C14 A031E339 */ sb $s1, %lo(byte_CODE_bss_8008E339)($at) +/* 117748 7F0E2C18 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33A) +/* 11774C 7F0E2C1C A032E33A */ sb $s2, %lo(byte_CODE_bss_8008E33A)($at) +/* 117750 7F0E2C20 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33B) +/* 117754 7F0E2C24 A033E33B */ sb $s3, %lo(byte_CODE_bss_8008E33B)($at) +/* 117758 7F0E2C28 3C018009 */ lui $at, %hi(off_CODE_bss_8008E33C) +/* 11775C 7F0E2C2C A034E33C */ sb $s4, %lo(off_CODE_bss_8008E33C)($at) +/* 117760 7F0E2C30 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33D) +/* 117764 7F0E2C34 A035E33D */ sb $s5, %lo(byte_CODE_bss_8008E33D)($at) +/* 117768 7F0E2C38 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33E) +/* 11776C 7F0E2C3C A036E33E */ sb $s6, %lo(byte_CODE_bss_8008E33E)($at) +/* 117770 7F0E2C40 93A802A6 */ lbu $t0, 0x2a6($sp) +/* 117774 7F0E2C44 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33F) +/* 117778 7F0E2C48 A037E33F */ sb $s7, %lo(byte_CODE_bss_8008E33F)($at) +/* 11777C 7F0E2C4C 93AE02A5 */ lbu $t6, 0x2a5($sp) +/* 117780 7F0E2C50 3C018009 */ lui $at, %hi(off_CODE_bss_8008E340) +/* 117784 7F0E2C54 A028E340 */ sb $t0, %lo(off_CODE_bss_8008E340)($at) +/* 117788 7F0E2C58 93AF02A4 */ lbu $t7, 0x2a4($sp) +/* 11778C 7F0E2C5C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E341) +/* 117790 7F0E2C60 A02EE341 */ sb $t6, %lo(byte_CODE_bss_8008E341)($at) +/* 117794 7F0E2C64 93AA02A3 */ lbu $t2, 0x2a3($sp) +/* 117798 7F0E2C68 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E342) +/* 11779C 7F0E2C6C A02FE342 */ sb $t7, %lo(byte_CODE_bss_8008E342)($at) +/* 1177A0 7F0E2C70 93AC02A2 */ lbu $t4, 0x2a2($sp) +/* 1177A4 7F0E2C74 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E343) +/* 1177A8 7F0E2C78 A02AE343 */ sb $t2, %lo(byte_CODE_bss_8008E343)($at) +/* 1177AC 7F0E2C7C 93AD02A1 */ lbu $t5, 0x2a1($sp) +/* 1177B0 7F0E2C80 3C018009 */ lui $at, %hi(off_CODE_bss_8008E344) +/* 1177B4 7F0E2C84 A02CE344 */ sb $t4, %lo(off_CODE_bss_8008E344)($at) +/* 1177B8 7F0E2C88 93A902A0 */ lbu $t1, 0x2a0($sp) +/* 1177BC 7F0E2C8C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E345) +/* 1177C0 7F0E2C90 A02DE345 */ sb $t5, %lo(byte_CODE_bss_8008E345)($at) +/* 1177C4 7F0E2C94 93B8029F */ lbu $t8, 0x29f($sp) +/* 1177C8 7F0E2C98 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E346) +/* 1177CC 7F0E2C9C A029E346 */ sb $t1, %lo(byte_CODE_bss_8008E346)($at) +/* 1177D0 7F0E2CA0 93B9029D */ lbu $t9, 0x29d($sp) +/* 1177D4 7F0E2CA4 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E347) +/* 1177D8 7F0E2CA8 A038E347 */ sb $t8, %lo(byte_CODE_bss_8008E347)($at) +/* 1177DC 7F0E2CAC 93AB029C */ lbu $t3, 0x29c($sp) +/* 1177E0 7F0E2CB0 3C018009 */ lui $at, %hi(spec_IFF2_lower) +/* 1177E4 7F0E2CB4 A039E34A */ sb $t9, %lo(spec_IFF2_lower)($at) +/* 1177E8 7F0E2CB8 93A8029E */ lbu $t0, 0x29e($sp) +/* 1177EC 7F0E2CBC 3C018009 */ lui $at, %hi(spec_IFF2_upper) +/* 1177F0 7F0E2CC0 A02BE34B */ sb $t3, %lo(spec_IFF2_upper)($at) +/* 1177F4 7F0E2CC4 93AE02A7 */ lbu $t6, 0x2a7($sp) +/* 1177F8 7F0E2CC8 3C018009 */ lui $at, %hi(spec_I) +/* 1177FC 7F0E2CCC A028E348 */ sb $t0, %lo(spec_I)($at) +/* 117800 7F0E2CD0 93AA029B */ lbu $t2, 0x29b($sp) +/* 117804 7F0E2CD4 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E349) +/* 117808 7F0E2CD8 A02EE349 */ sb $t6, %lo(byte_CODE_bss_8008E349)($at) +/* 11780C 7F0E2CDC 97AC0296 */ lhu $t4, 0x296($sp) +/* 117810 7F0E2CE0 3C018009 */ lui $at, %hi(spec_IM) +/* 117814 7F0E2CE4 A02AE34C */ sb $t2, %lo(spec_IM)($at) +/* 117818 7F0E2CE8 97AD0294 */ lhu $t5, 0x294($sp) +/* 11781C 7F0E2CEC 3C018009 */ lui $at, %hi(spec_IX) +/* 117820 7F0E2CF0 A42CE34E */ sh $t4, %lo(spec_IX)($at) +/* 117824 7F0E2CF4 97A90292 */ lhu $t1, 0x292($sp) +/* 117828 7F0E2CF8 3C018009 */ lui $at, %hi(spec_IY) +/* 11782C 7F0E2CFC 8FAF0288 */ lw $t7, 0x288($sp) +/* 117830 7F0E2D00 A42DE350 */ sh $t5, %lo(spec_IY)($at) +/* 117834 7F0E2D04 8FBF0034 */ lw $ra, 0x34($sp) +/* 117838 7F0E2D08 3C018009 */ lui $at, %hi(spec_SP) +/* 11783C 7F0E2D0C 97B80298 */ lhu $t8, 0x298($sp) +/* 117840 7F0E2D10 A429E352 */ sh $t1, %lo(spec_SP)($at) +/* 117844 7F0E2D14 3C018009 */ lui $at, %hi(spec_PC) +/* 117848 7F0E2D18 8FB70030 */ lw $s7, 0x30($sp) +/* 11784C 7F0E2D1C 8FB6002C */ lw $s6, 0x2c($sp) +/* 117850 7F0E2D20 8FB50028 */ lw $s5, 0x28($sp) +/* 117854 7F0E2D24 8FB40024 */ lw $s4, 0x24($sp) +/* 117858 7F0E2D28 8FB30020 */ lw $s3, 0x20($sp) +/* 11785C 7F0E2D2C 8FB2001C */ lw $s2, 0x1c($sp) +/* 117860 7F0E2D30 8FB10018 */ lw $s1, 0x18($sp) +/* 117864 7F0E2D34 8FB00014 */ lw $s0, 0x14($sp) +/* 117868 7F0E2D38 A3AF02A7 */ sb $t7, 0x2a7($sp) +/* 11786C 7F0E2D3C 27BD02B0 */ addiu $sp, $sp, 0x2b0 +/* 117870 7F0E2D40 03E00008 */ jr $ra +/* 117874 7F0E2D44 A438E354 */ sh $t8, %lo(spec_PC)($at) +) +#endif + diff --git a/src/game/spectrum.h b/src/game/spectrum.h new file mode 100644 index 0000000..3d3bb9d --- /dev/null +++ b/src/game/spectrum.h @@ -0,0 +1,9 @@ +#ifndef _SPECTRUM_H_ +#define _SPECTRUM_H_ +#include "ultra64.h" + +extern void init_spectrum_game(u32 game); +extern void run_spectrum_game(void); +extern void spectrum_draw_screen(u32); + +#endif diff --git a/src/game/stan.c b/src/game/stan.c new file mode 100644 index 0000000..2fb0fb2 --- /dev/null +++ b/src/game/stan.c @@ -0,0 +1,7061 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007B120 +s32 clippingfile; +//CODE.bss:8007B124 +s32 ptr_firstroom; +//CODE.bss:8007B128 +s32 dword_CODE_bss_8007B128; +//CODE.bss:8007B12C +s32 dword_CODE_bss_8007B12C; +//CODE.bss:8007B130 +s32 dword_CODE_bss_8007B130; +//CODE.bss:8007B134 +char dword_CODE_bss_8007B134; +char dword_CODE_bss_8007B135; +char dword_CODE_bss_8007B136; +char dword_CODE_bss_8007B137; +char dword_CODE_bss_8007B138[0x21C]; +//CODE.bss:8007B354 +s32 dword_CODE_bss_8007B354; +//CODE.bss:8007B358 +s32 dword_CODE_bss_8007B358[0x1a1]; +//CODE.bss:8007B9DC +s32 dword_CODE_bss_8007B9DC; +//CODE.bss:8007B9E0 +s32 dword_CODE_bss_8007B9E0; +//CODE.bss:8007B9E4 +s32 dword_CODE_bss_8007B9E4; +//CODE.bss:8007B9E8 +s32 dword_CODE_bss_8007B9E8; +//CODE.bss:8007B9EC +s32 dword_CODE_bss_8007B9EC; +//CODE.bss:8007B9F0 +f32 flt_CODE_bss_8007B9F0; +//CODE.bss:8007B9F4 +f32 flt_CODE_bss_8007B9F4; +//CODE.bss:8007B9F8 +f32 flt_CODE_bss_8007B9F8; +//CODE.bss:8007B9FC +f32 flt_CODE_bss_8007B9FC; +//CODE.bss:8007BA00 +f32 flt_CODE_bss_8007BA00; +//CODE.bss:8007BA04 +s32 dword_CODE_bss_8007BA04; +//CODE.bss:8007BA08 +s32 dword_CODE_bss_8007BA08; +//CODE.bss:8007BA0C +s32 dword_CODE_bss_8007BA0C; +//CODE.bss:8007BA10 +char dword_CODE_bss_8007BA10[0x580]; + + +// data +//D:80040F30 +s32 D_80040F30[] = {0x8D8604C5, 0x9DA40000, 0, 0}; +s32 stan_c_debug_notice_list_entry = 0; +//D:80040F44 +f32 D_80040F44 = 1.0; +//D:80040F48 +f32 D_80040F48 = 1.0; +//D:80040F4C +u8 list_of_tilesizes[] = { + 0x20,0x20,0x20,0x20, + 0x28,0x30,0x38,0x40, + 0x48,0x50,0x58,0x00 +}; +//D:80040F58 +s32 base_ptr_connection_vals = 0; +//D:80040F5C +s32 ptr_firstroom_0 = 0; +//D:80040F60 +s32 D_80040F60 = 0; +//D:80040F64 +s32 D_80040F64[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80040FAC +s32 D_80040FAC = 0; +//D:80040FB0 +s32 stanLoaded = 0; +//D:80040FB4 +s32 stanlinelog_flag[] = { + 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 +}; +//D:800413BC +s32 D_800413BC = 0; +//D:800413C0 +f32 D_800413C0 = 0.0; +//D:800413C4 +f32 D_800413C4 = 0.0; +//D:800413C8 +s32 D_800413C8 = 1; +//D:800413CC +s32 D_800413CC = 1; +//D:800413D0 +s32 D_800413D0[] = {0, 0, 0, 0, 0, 0, 0, 0}; + + +// rodata +//D:800585A0 +const char aCDCC[] = "%c%d%c%c"; +//D:800585AC +const char aStan_c_debug[] = "stan_c_debug"; +//D:800585BC +const char aStanlinelog[] = "-stanlinelog"; + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AEF30(f32 arg0) { + // Node 0 + return 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) { + s32 sp24; + s32 temp_a1; + s32 phi_v0; + + // Node 0 + sp24 = (s32) ((D_80040FAC * 9) + &D_80040F64); + temp_a1 = (arg0->unk2 & 7); + D_80040FAC = (s32) ((D_80040FAC + 1) & 7); + if (temp_a1 == 0) + { + // Node 1 + phi_v0 = 0; + } + else + { + // Node 2 + phi_v0 = (temp_a1 + 0x30); + } + // Node 3 + sprintf(sp24, &aCDCC, ((((s32) *arg0 >> 0xf) & 1) + 0x70), (*arg0 & 0x7fff), (s32) ((((s32) arg0->unk2 >> 3) & 0x1f) + 0x61), (s32) phi_v0); + return sp24; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AEF3C +/* 0E3A6C 7F0AEF3C 3C068004 */ lui $a2, %hi(D_80040FAC) +/* 0E3A70 7F0AEF40 8CC60FAC */ lw $a2, %lo(D_80040FAC)($a2) +/* 0E3A74 7F0AEF44 3C0F8004 */ lui $t7, %hi(D_80040F64) +/* 0E3A78 7F0AEF48 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E3A7C 7F0AEF4C 000670C0 */ sll $t6, $a2, 3 +/* 0E3A80 7F0AEF50 25EF0F64 */ addiu $t7, %lo(D_80040F64) # addiu $t7, $t7, 0xf64 +/* 0E3A84 7F0AEF54 01C67021 */ addu $t6, $t6, $a2 +/* 0E3A88 7F0AEF58 01CFC021 */ addu $t8, $t6, $t7 +/* 0E3A8C 7F0AEF5C AFBF001C */ sw $ra, 0x1c($sp) +/* 0E3A90 7F0AEF60 AFB80024 */ sw $t8, 0x24($sp) +/* 0E3A94 7F0AEF64 94820000 */ lhu $v0, ($a0) +/* 0E3A98 7F0AEF68 90830002 */ lbu $v1, 2($a0) +/* 0E3A9C 7F0AEF6C 24C60001 */ addiu $a2, $a2, 1 +/* 0E3AA0 7F0AEF70 000243C3 */ sra $t0, $v0, 0xf +/* 0E3AA4 7F0AEF74 000348C3 */ sra $t1, $v1, 3 +/* 0E3AA8 7F0AEF78 30D90007 */ andi $t9, $a2, 7 +/* 0E3AAC 7F0AEF7C 310A0001 */ andi $t2, $t0, 1 +/* 0E3AB0 7F0AEF80 312B001F */ andi $t3, $t1, 0x1f +/* 0E3AB4 7F0AEF84 3C018004 */ lui $at, %hi(D_80040FAC) +/* 0E3AB8 7F0AEF88 30650007 */ andi $a1, $v1, 7 +/* 0E3ABC 7F0AEF8C 01404025 */ move $t0, $t2 +/* 0E3AC0 7F0AEF90 01604825 */ move $t1, $t3 +/* 0E3AC4 7F0AEF94 AC390FAC */ sw $t9, %lo(D_80040FAC)($at) +/* 0E3AC8 7F0AEF98 14A00003 */ bnez $a1, .L7F0AEFA8 +/* 0E3ACC 7F0AEF9C 30477FFF */ andi $a3, $v0, 0x7fff +/* 0E3AD0 7F0AEFA0 10000002 */ b .L7F0AEFAC +/* 0E3AD4 7F0AEFA4 00001025 */ move $v0, $zero +.L7F0AEFA8: +/* 0E3AD8 7F0AEFA8 24A20030 */ addiu $v0, $a1, 0x30 +.L7F0AEFAC: +/* 0E3ADC 7F0AEFAC 3C058006 */ lui $a1, %hi(aCDCC) +/* 0E3AE0 7F0AEFB0 252C0061 */ addiu $t4, $t1, 0x61 +/* 0E3AE4 7F0AEFB4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E3AE8 7F0AEFB8 24A585A0 */ addiu $a1, %lo(aCDCC) # addiu $a1, $a1, -0x7a60 +/* 0E3AEC 7F0AEFBC 8FA40024 */ lw $a0, 0x24($sp) +/* 0E3AF0 7F0AEFC0 25060070 */ addiu $a2, $t0, 0x70 +/* 0E3AF4 7F0AEFC4 0C002B25 */ jal sprintf +/* 0E3AF8 7F0AEFC8 AFA20014 */ sw $v0, 0x14($sp) +/* 0E3AFC 7F0AEFCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E3B00 7F0AEFD0 8FA20024 */ lw $v0, 0x24($sp) +/* 0E3B04 7F0AEFD4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E3B08 7F0AEFD8 03E00008 */ jr $ra +/* 0E3B0C 7F0AEFDC 00000000 */ nop +) +#endif + + + + +void sub_GAME_7F0AEFE0(void) { + sub_GAME_7F0AEF3C(); +} + +u32 stanRemovedAnimationRoutine(s32 arg0) { + return 0; +} + +void stanInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug"); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF038(void) { + void *temp_v1; + s32 temp_s0; + s32 temp_a2; + void *temp_s0_2; + s32 temp_s0_4; + s16 temp_s0_3; + s32 temp_s2; + s32 temp_v1_2; + s32 temp_s0_5; + void *temp_a0; + void *phi_v1; + s32 phi_a1; + void *phi_a0; + void *phi_s3; + void *phi_s5; + s16 phi_s0; + s32 phi_s2; + s32 phi_v1_2; + s32 phi_s0_2; + void *phi_s1; + s32 phi_a2; + + // Node 0 + dword_CODE_bss_8007B9DC = 0; + dword_CODE_bss_8007B12C = 0; + dword_CODE_bss_8007B12C = 0; + dword_CODE_bss_8007B130 = 0; + phi_v1 = &dword_CODE_bss_8007B134; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 0x10); + temp_v1->unk-10 = 0; + temp_v1->unk-C = 0; + temp_v1->unk-8 = 0; + temp_v1->unk-4 = 0; + phi_v1 = temp_v1; + if (temp_v1 != &dword_CODE_bss_8007B354) + { + goto loop_1; + } + // Node 2 + if (*clippingfile->unk4 != 0) + { + // Node 3 + phi_a1 = 0xff; + phi_a0 = clippingfile->unk4; + phi_a2 = 0xff; +loop_4: + // Node 4 + temp_s0 = phi_a0->unk3; + phi_a1 = phi_a1; + if (phi_a1 != temp_s0) + { + // Node 5 + temp_a2 = (temp_s0 & 0xff); + if (temp_a2 >= dword_CODE_bss_8007B9DC) + { + // Node 6 + dword_CODE_bss_8007B9DC = (s32) (temp_a2 + 1); + } + // Node 7 + *(&dword_CODE_bss_8007B128 + (temp_a2 * 4)) = (void *) phi_a0; + temp_s0_2 = (&dword_CODE_bss_8007B358 + (temp_a2 * 0xc)); + temp_s0_2->unk4 = (u16)0x7fff; + temp_s0_2->unkA = (u16)-0x8000; + temp_s0_2->unk2 = (s16) temp_s0_2->unk4; + *temp_s0_2 = (s16) temp_s0_2->unk4; + temp_s0_2->unk8 = (s16) temp_s0_2->unkA; + temp_s0_2->unk6 = (s16) temp_s0_2->unkA; + phi_a1 = temp_a2; + phi_a2 = temp_a2; + } + // Node 8 + temp_s0_4 = (((s32) phi_a0->unk6 >> 0xc) & 0xf); + phi_s0_2 = temp_s0_4; + if (temp_s0_4 > 0) + { + // Node 9 + phi_v1_2 = 0; + phi_s1 = phi_a0; +loop_10: + // Node 10 + phi_s3 = phi_s1; + phi_s5 = (&dword_CODE_bss_8007B358 + (((phi_a2 * 4) - phi_a2) * 4)); + phi_s2 = 0; +loop_11: + // Node 11 + temp_s0_3 = phi_s3->unk8; + temp_s2 = (phi_s2 + 2); + phi_s0 = temp_s0_3; + if (temp_s0_3 < *phi_s5) + { + // Node 12 + *phi_s5 = temp_s0_3; + phi_s0 = phi_s3->unk8; + } + // Node 13 + if (phi_s5->unk6 < phi_s0) + { + // Node 14 + phi_s5->unk6 = (s16) phi_s0; + } + // Node 15 + phi_s3 = (phi_s3 + 2); + phi_s5 = (phi_s5 + 2); + phi_s2 = temp_s2; + if (temp_s2 != 6) + { + goto loop_11; + } + // Node 16 + temp_v1_2 = (phi_v1_2 + 1); + temp_s0_5 = (((s32) phi_a0->unk6 >> 0xc) & 0xf); + phi_v1_2 = temp_v1_2; + phi_s0_2 = temp_s0_5; + phi_s1 = (phi_s1 + 8); + if (temp_v1_2 < temp_s0_5) + { + goto loop_10; + } + } + // Node 17 + temp_a0 = (*(&list_of_tilesizes + phi_s0_2) + phi_a0); + phi_a0 = temp_a0; + phi_a2 = phi_a2; + if (*temp_a0 != 0) + { + goto loop_4; + } + } + // Node 18 + // Error: assert not self.is_leaf + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF038 +/* 0E3B68 7F0AF038 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E3B6C 7F0AF03C 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007B9DC) +/* 0E3B70 7F0AF040 24E7B9DC */ addiu $a3, %lo(dword_CODE_bss_8007B9DC) # addiu $a3, $a3, -0x4624 +/* 0E3B74 7F0AF044 ACE00000 */ sw $zero, ($a3) +/* 0E3B78 7F0AF048 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B12C) +/* 0E3B7C 7F0AF04C AC20B128 */ sw $zero, %lo(dword_CODE_bss_8007B128)($at) +/* 0E3B80 7F0AF050 AC20B12C */ sw $zero, %lo(dword_CODE_bss_8007B12C)($at) +/* 0E3B84 7F0AF054 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B130) +/* 0E3B88 7F0AF058 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B134) +/* 0E3B8C 7F0AF05C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B354) +/* 0E3B90 7F0AF060 AFB5001C */ sw $s5, 0x1c($sp) +/* 0E3B94 7F0AF064 AFB40018 */ sw $s4, 0x18($sp) +/* 0E3B98 7F0AF068 AFB30014 */ sw $s3, 0x14($sp) +/* 0E3B9C 7F0AF06C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3BA0 7F0AF070 AFB1000C */ sw $s1, 0xc($sp) +/* 0E3BA4 7F0AF074 AFB00008 */ sw $s0, 8($sp) +/* 0E3BA8 7F0AF078 240600FF */ li $a2, 255 +/* 0E3BAC 7F0AF07C 2442B354 */ addiu $v0, %lo(dword_CODE_bss_8007B354) # addiu $v0, $v0, -0x4cac +/* 0E3BB0 7F0AF080 2463B134 */ addiu $v1, %lo(dword_CODE_bss_8007B134) # addiu $v1, $v1, -0x4ecc +/* 0E3BB4 7F0AF084 AC20B130 */ sw $zero, %lo(dword_CODE_bss_8007B130)($at) +.L7F0AF088: +/* 0E3BB8 7F0AF088 24630010 */ addiu $v1, $v1, 0x10 +/* 0E3BBC 7F0AF08C AC60FFF0 */ sw $zero, -0x10($v1) +/* 0E3BC0 7F0AF090 AC60FFF4 */ sw $zero, -0xc($v1) +/* 0E3BC4 7F0AF094 AC60FFF8 */ sw $zero, -8($v1) +/* 0E3BC8 7F0AF098 1462FFFB */ bne $v1, $v0, .L7F0AF088 +/* 0E3BCC 7F0AF09C AC60FFFC */ sw $zero, -4($v1) +/* 0E3BD0 7F0AF0A0 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E3BD4 7F0AF0A4 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E3BD8 7F0AF0A8 3C0D8004 */ lui $t5, %hi(list_of_tilesizes) +/* 0E3BDC 7F0AF0AC 25AD0F4C */ addiu $t5, %lo(list_of_tilesizes) # addiu $t5, $t5, 0xf4c +/* 0E3BE0 7F0AF0B0 8DC40004 */ lw $a0, 4($t6) +/* 0E3BE4 7F0AF0B4 00C02825 */ move $a1, $a2 +/* 0E3BE8 7F0AF0B8 240C8000 */ li $t4, -32768 +/* 0E3BEC 7F0AF0BC 8C8F0000 */ lw $t7, ($a0) +/* 0E3BF0 7F0AF0C0 240B7FFF */ li $t3, 32767 +/* 0E3BF4 7F0AF0C4 240A000C */ li $t2, 12 +/* 0E3BF8 7F0AF0C8 11E00048 */ beqz $t7, .L7F0AF1EC +/* 0E3BFC 7F0AF0CC 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007B358) +/* 0E3C00 7F0AF0D0 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007B128) +/* 0E3C04 7F0AF0D4 2508B128 */ addiu $t0, %lo(dword_CODE_bss_8007B128) # addiu $t0, $t0, -0x4ed8 +/* 0E3C08 7F0AF0D8 2529B358 */ addiu $t1, %lo(dword_CODE_bss_8007B358) # addiu $t1, $t1, -0x4ca8 +/* 0E3C0C 7F0AF0DC 24020006 */ li $v0, 6 +/* 0E3C10 7F0AF0E0 90900003 */ lbu $s0, 3($a0) +.L7F0AF0E4: +/* 0E3C14 7F0AF0E4 00001825 */ move $v1, $zero +/* 0E3C18 7F0AF0E8 50B00017 */ beql $a1, $s0, .L7F0AF148 +/* 0E3C1C 7F0AF0EC 84900006 */ lh $s0, 6($a0) +/* 0E3C20 7F0AF0F0 8CF80000 */ lw $t8, ($a3) +/* 0E3C24 7F0AF0F4 320600FF */ andi $a2, $s0, 0xff +/* 0E3C28 7F0AF0F8 00C02825 */ move $a1, $a2 +/* 0E3C2C 7F0AF0FC 00D8082A */ slt $at, $a2, $t8 +/* 0E3C30 7F0AF100 14200002 */ bnez $at, .L7F0AF10C +/* 0E3C34 7F0AF104 24B90001 */ addiu $t9, $a1, 1 +/* 0E3C38 7F0AF108 ACF90000 */ sw $t9, ($a3) +.L7F0AF10C: +/* 0E3C3C 7F0AF10C 00CA0019 */ multu $a2, $t2 +/* 0E3C40 7F0AF110 00067080 */ sll $t6, $a2, 2 +/* 0E3C44 7F0AF114 010E7821 */ addu $t7, $t0, $t6 +/* 0E3C48 7F0AF118 ADE40000 */ sw $a0, ($t7) +/* 0E3C4C 7F0AF11C 0000C012 */ mflo $t8 +/* 0E3C50 7F0AF120 01388021 */ addu $s0, $t1, $t8 +/* 0E3C54 7F0AF124 A60B0004 */ sh $t3, 4($s0) +/* 0E3C58 7F0AF128 86110004 */ lh $s1, 4($s0) +/* 0E3C5C 7F0AF12C A60C000A */ sh $t4, 0xa($s0) +/* 0E3C60 7F0AF130 A6110002 */ sh $s1, 2($s0) +/* 0E3C64 7F0AF134 A6110000 */ sh $s1, ($s0) +/* 0E3C68 7F0AF138 8611000A */ lh $s1, 0xa($s0) +/* 0E3C6C 7F0AF13C A6110008 */ sh $s1, 8($s0) +/* 0E3C70 7F0AF140 A6110006 */ sh $s1, 6($s0) +/* 0E3C74 7F0AF144 84900006 */ lh $s0, 6($a0) +.L7F0AF148: +/* 0E3C78 7F0AF148 00067880 */ sll $t7, $a2, 2 +/* 0E3C7C 7F0AF14C 01E67823 */ subu $t7, $t7, $a2 +/* 0E3C80 7F0AF150 0010CB03 */ sra $t9, $s0, 0xc +/* 0E3C84 7F0AF154 3330000F */ andi $s0, $t9, 0xf +/* 0E3C88 7F0AF158 1A00001E */ blez $s0, .L7F0AF1D4 +/* 0E3C8C 7F0AF15C 00808825 */ move $s1, $a0 +/* 0E3C90 7F0AF160 000F7880 */ sll $t7, $t7, 2 +/* 0E3C94 7F0AF164 012FA021 */ addu $s4, $t1, $t7 +/* 0E3C98 7F0AF168 00009025 */ move $s2, $zero +.L7F0AF16C: +/* 0E3C9C 7F0AF16C 02209825 */ move $s3, $s1 +/* 0E3CA0 7F0AF170 0280A825 */ move $s5, $s4 +.L7F0AF174: +/* 0E3CA4 7F0AF174 86700008 */ lh $s0, 8($s3) +/* 0E3CA8 7F0AF178 86B80000 */ lh $t8, ($s5) +/* 0E3CAC 7F0AF17C 26520002 */ addiu $s2, $s2, 2 +/* 0E3CB0 7F0AF180 0218082A */ slt $at, $s0, $t8 +/* 0E3CB4 7F0AF184 50200004 */ beql $at, $zero, .L7F0AF198 +/* 0E3CB8 7F0AF188 86B90006 */ lh $t9, 6($s5) +/* 0E3CBC 7F0AF18C A6B00000 */ sh $s0, ($s5) +/* 0E3CC0 7F0AF190 86700008 */ lh $s0, 8($s3) +/* 0E3CC4 7F0AF194 86B90006 */ lh $t9, 6($s5) +.L7F0AF198: +/* 0E3CC8 7F0AF198 26730002 */ addiu $s3, $s3, 2 +/* 0E3CCC 7F0AF19C 0330082A */ slt $at, $t9, $s0 +/* 0E3CD0 7F0AF1A0 10200002 */ beqz $at, .L7F0AF1AC +/* 0E3CD4 7F0AF1A4 00000000 */ nop +/* 0E3CD8 7F0AF1A8 A6B00006 */ sh $s0, 6($s5) +.L7F0AF1AC: +/* 0E3CDC 7F0AF1AC 1642FFF1 */ bne $s2, $v0, .L7F0AF174 +/* 0E3CE0 7F0AF1B0 26B50002 */ addiu $s5, $s5, 2 +/* 0E3CE4 7F0AF1B4 84900006 */ lh $s0, 6($a0) +/* 0E3CE8 7F0AF1B8 24630001 */ addiu $v1, $v1, 1 +/* 0E3CEC 7F0AF1BC 26310008 */ addiu $s1, $s1, 8 +/* 0E3CF0 7F0AF1C0 00107303 */ sra $t6, $s0, 0xc +/* 0E3CF4 7F0AF1C4 31D0000F */ andi $s0, $t6, 0xf +/* 0E3CF8 7F0AF1C8 0070082A */ slt $at, $v1, $s0 +/* 0E3CFC 7F0AF1CC 5420FFE7 */ bnezl $at, .L7F0AF16C +/* 0E3D00 7F0AF1D0 00009025 */ move $s2, $zero +.L7F0AF1D4: +/* 0E3D04 7F0AF1D4 01B0C021 */ addu $t8, $t5, $s0 +/* 0E3D08 7F0AF1D8 93190000 */ lbu $t9, ($t8) +/* 0E3D0C 7F0AF1DC 03242021 */ addu $a0, $t9, $a0 +/* 0E3D10 7F0AF1E0 8C8E0000 */ lw $t6, ($a0) +/* 0E3D14 7F0AF1E4 55C0FFBF */ bnezl $t6, .L7F0AF0E4 +/* 0E3D18 7F0AF1E8 90900003 */ lbu $s0, 3($a0) +.L7F0AF1EC: +/* 0E3D1C 7F0AF1EC 8FB00008 */ lw $s0, 8($sp) +/* 0E3D20 7F0AF1F0 8FB1000C */ lw $s1, 0xc($sp) +/* 0E3D24 7F0AF1F4 8FB20010 */ lw $s2, 0x10($sp) +/* 0E3D28 7F0AF1F8 8FB30014 */ lw $s3, 0x14($sp) +/* 0E3D2C 7F0AF1FC 8FB40018 */ lw $s4, 0x18($sp) +/* 0E3D30 7F0AF200 8FB5001C */ lw $s5, 0x1c($sp) +/* 0E3D34 7F0AF204 03E00008 */ jr $ra +/* 0E3D38 7F0AF208 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF20C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800585CC +.word 0x46fffe00 /*32767.0*/ +glabel D_800585D0 +.word 0xff7fffff /*-3.4028235e38*/ +glabel D_800585D4 +.word 0xc6fffe00 /*-32767.0*/ +.text +glabel sub_GAME_7F0AF20C +/* 0E3D3C 7F0AF20C 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0E3D40 7F0AF210 3C018006 */ lui $at, %hi(D_800585CC) +/* 0E3D44 7F0AF214 C42285CC */ lwc1 $f2, %lo(D_800585CC)($at) +/* 0E3D48 7F0AF218 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0E3D4C 7F0AF21C 3C018006 */ lui $at, %hi(D_800585D0) +/* 0E3D50 7F0AF220 C43885D0 */ lwc1 $f24, %lo(D_800585D0)($at) +/* 0E3D54 7F0AF224 AFBF005C */ sw $ra, 0x5c($sp) +/* 0E3D58 7F0AF228 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E3D5C 7F0AF22C AFB70054 */ sw $s7, 0x54($sp) +/* 0E3D60 7F0AF230 AFB60050 */ sw $s6, 0x50($sp) +/* 0E3D64 7F0AF234 AFB5004C */ sw $s5, 0x4c($sp) +/* 0E3D68 7F0AF238 AFB40048 */ sw $s4, 0x48($sp) +/* 0E3D6C 7F0AF23C AFB30044 */ sw $s3, 0x44($sp) +/* 0E3D70 7F0AF240 AFB20040 */ sw $s2, 0x40($sp) +/* 0E3D74 7F0AF244 AFB1003C */ sw $s1, 0x3c($sp) +/* 0E3D78 7F0AF248 AFB00038 */ sw $s0, 0x38($sp) +/* 0E3D7C 7F0AF24C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0E3D80 7F0AF250 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0E3D84 7F0AF254 AFA500CC */ sw $a1, 0xcc($sp) +/* 0E3D88 7F0AF258 AFA600D0 */ sw $a2, 0xd0($sp) +/* 0E3D8C 7F0AF25C AFA0009C */ sw $zero, 0x9c($sp) +/* 0E3D90 7F0AF260 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E3D94 7F0AF264 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E3D98 7F0AF268 C4840000 */ lwc1 $f4, ($a0) +/* 0E3D9C 7F0AF26C 0080A025 */ move $s4, $a0 +/* 0E3DA0 7F0AF270 3C178004 */ lui $s7, %hi(list_of_tilesizes) +/* 0E3DA4 7F0AF274 46002182 */ mul.s $f6, $f4, $f0 +/* 0E3DA8 7F0AF278 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_8007B128) +/* 0E3DAC 7F0AF27C 3C018006 */ lui $at, %hi(D_800585D4) +/* 0E3DB0 7F0AF280 254AB128 */ addiu $t2, %lo(dword_CODE_bss_8007B128) # addiu $t2, $t2, -0x4ed8 +/* 0E3DB4 7F0AF284 26F70F4C */ addiu $s7, %lo(list_of_tilesizes) # addiu $s7, $s7, 0xf4c +/* 0E3DB8 7F0AF288 24130003 */ li $s3, 3 +/* 0E3DBC 7F0AF28C 241600FF */ li $s6, 255 +/* 0E3DC0 7F0AF290 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0E3DC4 7F0AF294 C4880004 */ lwc1 $f8, 4($a0) +/* 0E3DC8 7F0AF298 27BE007C */ addiu $fp, $sp, 0x7c +/* 0E3DCC 7F0AF29C 46004282 */ mul.s $f10, $f8, $f0 +/* 0E3DD0 7F0AF2A0 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0E3DD4 7F0AF2A4 C4900008 */ lwc1 $f16, 8($a0) +/* 0E3DD8 7F0AF2A8 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0E3DDC 7F0AF2AC 24040004 */ li $a0, 4 +/* 0E3DE0 7F0AF2B0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E3DE4 7F0AF2B4 4604103C */ c.lt.s $f2, $f4 +/* 0E3DE8 7F0AF2B8 00000000 */ nop +/* 0E3DEC 7F0AF2BC 45000002 */ bc1f .L7F0AF2C8 +/* 0E3DF0 7F0AF2C0 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0E3DF4 7F0AF2C4 E7A200BC */ swc1 $f2, 0xbc($sp) +.L7F0AF2C8: +/* 0E3DF8 7F0AF2C8 C42085D4 */ lwc1 $f0, %lo(D_800585D4)($at) +/* 0E3DFC 7F0AF2CC C7AC00BC */ lwc1 $f12, 0xbc($sp) +/* 0E3E00 7F0AF2D0 C7A200C0 */ lwc1 $f2, 0xc0($sp) +/* 0E3E04 7F0AF2D4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0E3E08 7F0AF2D8 4600603C */ c.lt.s $f12, $f0 +/* 0E3E0C 7F0AF2DC 0000A825 */ move $s5, $zero +/* 0E3E10 7F0AF2E0 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007B9DC) +/* 0E3E14 7F0AF2E4 4600128D */ trunc.w.s $f10, $f2 +/* 0E3E18 7F0AF2E8 45020003 */ bc1fl .L7F0AF2F8 +/* 0E3E1C 7F0AF2EC C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0E3E20 7F0AF2F0 46000306 */ mov.s $f12, $f0 +/* 0E3E24 7F0AF2F4 C7A000B8 */ lwc1 $f0, 0xb8($sp) +.L7F0AF2F8: +/* 0E3E28 7F0AF2F8 4600620D */ trunc.w.s $f8, $f12 +/* 0E3E2C 7F0AF2FC 8CC6B9DC */ lw $a2, %lo(dword_CODE_bss_8007B9DC)($a2) +/* 0E3E30 7F0AF300 44095000 */ mfc1 $t1, $f10 +/* 0E3E34 7F0AF304 4600018D */ trunc.w.s $f6, $f0 +/* 0E3E38 7F0AF308 44194000 */ mfc1 $t9, $f8 +/* 0E3E3C 7F0AF30C E7AC00BC */ swc1 $f12, 0xbc($sp) +/* 0E3E40 7F0AF310 A7A900B0 */ sh $t1, 0xb0($sp) +/* 0E3E44 7F0AF314 440F3000 */ mfc1 $t7, $f6 +/* 0E3E48 7F0AF318 A7B900AE */ sh $t9, 0xae($sp) +/* 0E3E4C 7F0AF31C 18C0008F */ blez $a2, .L7F0AF55C +/* 0E3E50 7F0AF320 A7AF00AC */ sh $t7, 0xac($sp) +/* 0E3E54 7F0AF324 4481B000 */ mtc1 $at, $f22 +/* 0E3E58 7F0AF328 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0E3E5C 7F0AF32C 4481A000 */ mtc1 $at, $f20 +/* 0E3E60 7F0AF330 AFAA0070 */ sw $t2, 0x70($sp) +/* 0E3E64 7F0AF334 8FB20088 */ lw $s2, 0x88($sp) +.L7F0AF338: +/* 0E3E68 7F0AF338 8FAB0070 */ lw $t3, 0x70($sp) +/* 0E3E6C 7F0AF33C 00156080 */ sll $t4, $s5, 2 +/* 0E3E70 7F0AF340 01956023 */ subu $t4, $t4, $s5 +/* 0E3E74 7F0AF344 8D650000 */ lw $a1, ($t3) +/* 0E3E78 7F0AF348 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007B358) +/* 0E3E7C 7F0AF34C 25ADB358 */ addiu $t5, %lo(dword_CODE_bss_8007B358) # addiu $t5, $t5, -0x4ca8 +/* 0E3E80 7F0AF350 10A0007B */ beqz $a1, .L7F0AF540 +/* 0E3E84 7F0AF354 000C6080 */ sll $t4, $t4, 2 +/* 0E3E88 7F0AF358 018D1021 */ addu $v0, $t4, $t5 +/* 0E3E8C 7F0AF35C 844F0000 */ lh $t7, ($v0) +/* 0E3E90 7F0AF360 87AE00AC */ lh $t6, 0xac($sp) +/* 0E3E94 7F0AF364 87B900AC */ lh $t9, 0xac($sp) +/* 0E3E98 7F0AF368 01CF082A */ slt $at, $t6, $t7 +/* 0E3E9C 7F0AF36C 54200075 */ bnezl $at, .L7F0AF544 +/* 0E3EA0 7F0AF370 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EA4 7F0AF374 84580006 */ lh $t8, 6($v0) +/* 0E3EA8 7F0AF378 87A800B0 */ lh $t0, 0xb0($sp) +/* 0E3EAC 7F0AF37C 0319082A */ slt $at, $t8, $t9 +/* 0E3EB0 7F0AF380 54200070 */ bnezl $at, .L7F0AF544 +/* 0E3EB4 7F0AF384 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EB8 7F0AF388 84490004 */ lh $t1, 4($v0) +/* 0E3EBC 7F0AF38C 87AB00B0 */ lh $t3, 0xb0($sp) +/* 0E3EC0 7F0AF390 0109082A */ slt $at, $t0, $t1 +/* 0E3EC4 7F0AF394 5420006B */ bnezl $at, .L7F0AF544 +/* 0E3EC8 7F0AF398 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3ECC 7F0AF39C 844A000A */ lh $t2, 0xa($v0) +/* 0E3ED0 7F0AF3A0 87AC00AE */ lh $t4, 0xae($sp) +/* 0E3ED4 7F0AF3A4 014B082A */ slt $at, $t2, $t3 +/* 0E3ED8 7F0AF3A8 54200066 */ bnezl $at, .L7F0AF544 +/* 0E3EDC 7F0AF3AC 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EE0 7F0AF3B0 844D0002 */ lh $t5, 2($v0) +/* 0E3EE4 7F0AF3B4 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0E3EE8 7F0AF3B8 018D082A */ slt $at, $t4, $t5 +/* 0E3EEC 7F0AF3BC 54200061 */ bnezl $at, .L7F0AF544 +/* 0E3EF0 7F0AF3C0 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EF4 7F0AF3C4 51C00015 */ beql $t6, $zero, .L7F0AF41C +/* 0E3EF8 7F0AF3C8 8CB80000 */ lw $t8, ($a1) +/* 0E3EFC 7F0AF3CC 91CF0000 */ lbu $t7, ($t6) +/* 0E3F00 7F0AF3D0 00008025 */ move $s0, $zero +/* 0E3F04 7F0AF3D4 01C01021 */ addu $v0, $t6, $zero +/* 0E3F08 7F0AF3D8 12CF000D */ beq $s6, $t7, .L7F0AF410 +/* 0E3F0C 7F0AF3DC 00000000 */ nop +/* 0E3F10 7F0AF3E0 91C30000 */ lbu $v1, ($t6) +.L7F0AF3E4: +/* 0E3F14 7F0AF3E4 56A30004 */ bnel $s5, $v1, .L7F0AF3F8 +/* 0E3F18 7F0AF3E8 90430001 */ lbu $v1, 1($v0) +/* 0E3F1C 7F0AF3EC 1000000B */ b .L7F0AF41C +/* 0E3F20 7F0AF3F0 8CB80000 */ lw $t8, ($a1) +/* 0E3F24 7F0AF3F4 90430001 */ lbu $v1, 1($v0) +.L7F0AF3F8: +/* 0E3F28 7F0AF3F8 26100001 */ addiu $s0, $s0, 1 +/* 0E3F2C 7F0AF3FC 24420001 */ addiu $v0, $v0, 1 +/* 0E3F30 7F0AF400 12C30003 */ beq $s6, $v1, .L7F0AF410 +/* 0E3F34 7F0AF404 00000000 */ nop +/* 0E3F38 7F0AF408 1604FFF6 */ bne $s0, $a0, .L7F0AF3E4 +/* 0E3F3C 7F0AF40C 00000000 */ nop +.L7F0AF410: +/* 0E3F40 7F0AF410 1000004C */ b .L7F0AF544 +/* 0E3F44 7F0AF414 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3F48 7F0AF418 8CB80000 */ lw $t8, ($a1) +.L7F0AF41C: +/* 0E3F4C 7F0AF41C 00A08825 */ move $s1, $a1 +/* 0E3F50 7F0AF420 13000044 */ beqz $t8, .L7F0AF534 +/* 0E3F54 7F0AF424 00000000 */ nop +/* 0E3F58 7F0AF428 90B90003 */ lbu $t9, 3($a1) +/* 0E3F5C 7F0AF42C 16B90041 */ bne $s5, $t9, .L7F0AF534 +/* 0E3F60 7F0AF430 00008025 */ move $s0, $zero +.L7F0AF434: +/* 0E3F64 7F0AF434 C7A000B8 */ lwc1 $f0, 0xb8($sp) +.L7F0AF438: +/* 0E3F68 7F0AF438 C7A200C0 */ lwc1 $f2, 0xc0($sp) +/* 0E3F6C 7F0AF43C 02202025 */ move $a0, $s1 +/* 0E3F70 7F0AF440 44060000 */ mfc1 $a2, $f0 +/* 0E3F74 7F0AF444 44071000 */ mfc1 $a3, $f2 +/* 0E3F78 7F0AF448 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E3F7C 7F0AF44C 02002825 */ move $a1, $s0 +/* 0E3F80 7F0AF450 4614003C */ c.lt.s $f0, $f20 +/* 0E3F84 7F0AF454 26100001 */ addiu $s0, $s0, 1 +/* 0E3F88 7F0AF458 4503002B */ bc1tl .L7F0AF508 +/* 0E3F8C 7F0AF45C 86220006 */ lh $v0, 6($s1) +/* 0E3F90 7F0AF460 4616003C */ c.lt.s $f0, $f22 +/* 0E3F94 7F0AF464 00000000 */ nop +/* 0E3F98 7F0AF468 45000002 */ bc1f .L7F0AF474 +/* 0E3F9C 7F0AF46C 00000000 */ nop +/* 0E3FA0 7F0AF470 24120001 */ li $s2, 1 +.L7F0AF474: +/* 0E3FA4 7F0AF474 5613FFF0 */ bnel $s0, $s3, .L7F0AF438 +/* 0E3FA8 7F0AF478 C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0E3FAC 7F0AF47C 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E3FB0 7F0AF480 02202025 */ move $a0, $s1 +/* 0E3FB4 7F0AF484 54400020 */ bnezl $v0, .L7F0AF508 +/* 0E3FB8 7F0AF488 86220006 */ lh $v0, 6($s1) +/* 0E3FBC 7F0AF48C 1240000E */ beqz $s2, .L7F0AF4C8 +/* 0E3FC0 7F0AF490 02202025 */ move $a0, $s1 +/* 0E3FC4 7F0AF494 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E3FC8 7F0AF498 03C02825 */ move $a1, $fp +/* 0E3FCC 7F0AF49C AFB100A0 */ sw $s1, 0xa0($sp) +/* 0E3FD0 7F0AF4A0 C6900008 */ lwc1 $f16, 8($s4) +/* 0E3FD4 7F0AF4A4 8E870000 */ lw $a3, ($s4) +/* 0E3FD8 7F0AF4A8 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0E3FDC 7F0AF4AC 8FA5007C */ lw $a1, 0x7c($sp) +/* 0E3FE0 7F0AF4B0 8FA60084 */ lw $a2, 0x84($sp) +/* 0E3FE4 7F0AF4B4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0E3FE8 7F0AF4B8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0E3FEC 7F0AF4BC 10400011 */ beqz $v0, .L7F0AF504 +/* 0E3FF0 7F0AF4C0 8FA800A0 */ lw $t0, 0xa0($sp) +/* 0E3FF4 7F0AF4C4 1511000F */ bne $t0, $s1, .L7F0AF504 +.L7F0AF4C8: +/* 0E3FF8 7F0AF4C8 02202025 */ move $a0, $s1 +/* 0E3FFC 7F0AF4CC 8E850000 */ lw $a1, ($s4) +/* 0E4000 7F0AF4D0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E4004 7F0AF4D4 8E860008 */ lw $a2, 8($s4) +/* 0E4008 7F0AF4D8 C6920004 */ lwc1 $f18, 4($s4) +/* 0E400C 7F0AF4DC 4600903C */ c.lt.s $f18, $f0 +/* 0E4010 7F0AF4E0 00000000 */ nop +/* 0E4014 7F0AF4E4 45030008 */ bc1tl .L7F0AF508 +/* 0E4018 7F0AF4E8 86220006 */ lh $v0, 6($s1) +/* 0E401C 7F0AF4EC 4600C03C */ c.lt.s $f24, $f0 +/* 0E4020 7F0AF4F0 00000000 */ nop +/* 0E4024 7F0AF4F4 45020004 */ bc1fl .L7F0AF508 +/* 0E4028 7F0AF4F8 86220006 */ lh $v0, 6($s1) +/* 0E402C 7F0AF4FC AFB1009C */ sw $s1, 0x9c($sp) +/* 0E4030 7F0AF500 46000606 */ mov.s $f24, $f0 +.L7F0AF504: +/* 0E4034 7F0AF504 86220006 */ lh $v0, 6($s1) +.L7F0AF508: +/* 0E4038 7F0AF508 00024B03 */ sra $t1, $v0, 0xc +/* 0E403C 7F0AF50C 312A000F */ andi $t2, $t1, 0xf +/* 0E4040 7F0AF510 02EA5821 */ addu $t3, $s7, $t2 +/* 0E4044 7F0AF514 916C0000 */ lbu $t4, ($t3) +/* 0E4048 7F0AF518 01918821 */ addu $s1, $t4, $s1 +/* 0E404C 7F0AF51C 8E2D0000 */ lw $t5, ($s1) +/* 0E4050 7F0AF520 11A00004 */ beqz $t5, .L7F0AF534 +/* 0E4054 7F0AF524 00000000 */ nop +/* 0E4058 7F0AF528 922F0003 */ lbu $t7, 3($s1) +/* 0E405C 7F0AF52C 52AFFFC1 */ beql $s5, $t7, .L7F0AF434 +/* 0E4060 7F0AF530 00008025 */ move $s0, $zero +.L7F0AF534: +/* 0E4064 7F0AF534 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007B9DC) +/* 0E4068 7F0AF538 8CC6B9DC */ lw $a2, %lo(dword_CODE_bss_8007B9DC)($a2) +/* 0E406C 7F0AF53C 24040004 */ li $a0, 4 +.L7F0AF540: +/* 0E4070 7F0AF540 8FAE0070 */ lw $t6, 0x70($sp) +.L7F0AF544: +/* 0E4074 7F0AF544 26B50001 */ addiu $s5, $s5, 1 +/* 0E4078 7F0AF548 02A6082A */ slt $at, $s5, $a2 +/* 0E407C 7F0AF54C 25D80004 */ addiu $t8, $t6, 4 +/* 0E4080 7F0AF550 1420FF79 */ bnez $at, .L7F0AF338 +/* 0E4084 7F0AF554 AFB80070 */ sw $t8, 0x70($sp) +/* 0E4088 7F0AF558 AFB20088 */ sw $s2, 0x88($sp) +.L7F0AF55C: +/* 0E408C 7F0AF55C 8FB9009C */ lw $t9, 0x9c($sp) +/* 0E4090 7F0AF560 8FA800D0 */ lw $t0, 0xd0($sp) +/* 0E4094 7F0AF564 53200005 */ beql $t9, $zero, .L7F0AF57C +/* 0E4098 7F0AF568 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E409C 7F0AF56C 51000003 */ beql $t0, $zero, .L7F0AF57C +/* 0E40A0 7F0AF570 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E40A4 7F0AF574 E5180000 */ swc1 $f24, ($t0) +/* 0E40A8 7F0AF578 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0AF57C: +/* 0E40AC 7F0AF57C 8FA2009C */ lw $v0, 0x9c($sp) +/* 0E40B0 7F0AF580 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0E40B4 7F0AF584 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0E40B8 7F0AF588 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0E40BC 7F0AF58C 8FB00038 */ lw $s0, 0x38($sp) +/* 0E40C0 7F0AF590 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E40C4 7F0AF594 8FB20040 */ lw $s2, 0x40($sp) +/* 0E40C8 7F0AF598 8FB30044 */ lw $s3, 0x44($sp) +/* 0E40CC 7F0AF59C 8FB40048 */ lw $s4, 0x48($sp) +/* 0E40D0 7F0AF5A0 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E40D4 7F0AF5A4 8FB60050 */ lw $s6, 0x50($sp) +/* 0E40D8 7F0AF5A8 8FB70054 */ lw $s7, 0x54($sp) +/* 0E40DC 7F0AF5AC 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E40E0 7F0AF5B0 03E00008 */ jr $ra +/* 0E40E4 7F0AF5B4 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void stanLoadFile(void *arg0) { + stanLoaded = 1; + clippingfile = arg0; + base_ptr_connection_vals = (s32) (arg0->unk4 + -0x80); + if (check_token(1, "-stanlinelog") != 0) + { + stanlinelog_flag = 1; + } + sub_GAME_7F0AF038(); + sub_GAME_7F0B2950(1.0); +} + +#else +GLOBAL_ASM( +.text +glabel stanLoadFile +/* 0E40E8 7F0AF5B8 3C028008 */ lui $v0, %hi(clippingfile) +/* 0E40EC 7F0AF5BC 240E0001 */ li $t6, 1 +/* 0E40F0 7F0AF5C0 3C018004 */ lui $at, %hi(stanLoaded) +/* 0E40F4 7F0AF5C4 2442B120 */ addiu $v0, %lo(clippingfile) # addiu $v0, $v0, -0x4ee0 +/* 0E40F8 7F0AF5C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E40FC 7F0AF5CC AC2E0FB0 */ sw $t6, %lo(stanLoaded)($at) +/* 0E4100 7F0AF5D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4104 7F0AF5D4 AC440000 */ sw $a0, ($v0) +/* 0E4108 7F0AF5D8 8C980004 */ lw $t8, 4($a0) +/* 0E410C 7F0AF5DC 3C018004 */ lui $at, %hi(base_ptr_connection_vals) +/* 0E4110 7F0AF5E0 3C058006 */ lui $a1, %hi(aStanlinelog) +/* 0E4114 7F0AF5E4 2719FF80 */ addiu $t9, $t8, -0x80 +/* 0E4118 7F0AF5E8 AC390F58 */ sw $t9, %lo(base_ptr_connection_vals)($at) +/* 0E411C 7F0AF5EC 24A585BC */ addiu $a1, %lo(aStanlinelog) # addiu $a1, $a1, -0x7a44 +/* 0E4120 7F0AF5F0 0C0029A8 */ jal check_token +/* 0E4124 7F0AF5F4 24040001 */ li $a0, 1 +/* 0E4128 7F0AF5F8 10400003 */ beqz $v0, .L7F0AF608 +/* 0E412C 7F0AF5FC 24080001 */ li $t0, 1 +/* 0E4130 7F0AF600 3C018004 */ lui $at, %hi(stanlinelog_flag) +/* 0E4134 7F0AF604 AC280FB4 */ sw $t0, %lo(stanlinelog_flag)($at) +.L7F0AF608: +/* 0E4138 7F0AF608 0FC2BC0E */ jal sub_GAME_7F0AF038 +/* 0E413C 7F0AF60C 00000000 */ nop +/* 0E4140 7F0AF610 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E4144 7F0AF614 44816000 */ mtc1 $at, $f12 +/* 0E4148 7F0AF618 0FC2CA54 */ jal sub_GAME_7F0B2950 +/* 0E414C 7F0AF61C 00000000 */ nop +/* 0E4150 7F0AF620 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4154 7F0AF624 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4158 7F0AF628 03E00008 */ jr $ra +/* 0E415C 7F0AF62C 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0AF630(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0AF638(s32 arg0, s32 arg1, void *arg2) { + s32 temp_s4; + void *temp_s3; + s32 temp_s1; + void *temp_s2; + s32 temp_a1; + s32 temp_v0; + s32 temp_s0; + void *temp_v1; + void *phi_s2; + s32 phi_a1; + void *phi_a0; + void *phi_s2_2; + s32 phi_s0; + s32 phi_a1_2; + s32 phi_s1; + s32 phi_s7; + void *phi_s2_3; + s32 phi_a1_3; + s32 phi_s1_2; + s32 phi_s1_3; + s32 phi_s7_2; + s32 phi_s7_3; + s32 phi_s1_4; + + // Node 0 + temp_s4 = (arg1 & 0xff); + *arg2 = arg0; + phi_s2 = (arg2 + 4); + phi_a1 = arg1; + phi_s1_3 = 1; + phi_s7_3 = 0; +loop_1: + // Node 1 + temp_s3 = phi_s2->unk-4; + temp_s1 = (phi_s1_3 + -1); + temp_s2 = (phi_s2 + -4); + phi_s1 = temp_s1; + phi_s7 = phi_s7_3; + phi_s2 = temp_s2; + phi_a1 = phi_a1; + if (temp_s4 != (((s32) *temp_s3 >> 0xf) & 1)) + { + // Node 2 + *temp_s3 = (s16) (*temp_s3 ^ 0x8000); + phi_s7_2 = phi_s7_3; + if (sub_GAME_7F0AF760(temp_s3, phi_a1) == 0) + { + // Node 3 + phi_s7_2 = (phi_s7_3 + 1); + } + // Node 4 + temp_a1 = (((s32) temp_s3->unk6 >> 0xc) & 0xf); + phi_a0 = temp_s3; + phi_s2_2 = temp_s2; + phi_s0 = 0; + phi_s1 = temp_s1; + phi_s7 = phi_s7_2; + phi_s2 = temp_s2; + phi_a1 = temp_a1; + phi_a1_3 = temp_a1; + phi_s1_4 = temp_s1; + if (temp_a1 > 0) + { +loop_5: + // Node 5 + temp_v0 = phi_a0->unkE; + temp_s0 = (phi_s0 + 1); + phi_a1_2 = phi_a1_3; + phi_s2_3 = phi_s2_2; + phi_s1_2 = phi_s1_4; + if ((temp_v0 >> 4) != 0) + { + // Node 6 + temp_v1 = ((temp_v0 * 8) + base_ptr_connection_vals); + phi_a1_2 = phi_a1_3; + phi_s2_3 = phi_s2_2; + phi_s1_2 = phi_s1_4; + if (temp_s4 != (((s32) *temp_v1 >> 0xf) & 1)) + { + // Node 7 + *phi_s2_2 = temp_v1; + phi_a1_2 = (((s32) temp_s3->unk6 >> 0xc) & 0xf); + phi_s2_3 = (phi_s2_2 + 4); + phi_s1_2 = (phi_s1_4 + 1); + } + } + // Node 8 + phi_a0 = (phi_a0 + 8); + phi_s2_2 = phi_s2_3; + phi_s0 = temp_s0; + phi_s1 = phi_s1_2; + phi_s7 = phi_s7_2; + phi_s2 = phi_s2_3; + phi_a1 = phi_a1_2; + phi_a1_3 = phi_a1_2; + phi_s1_4 = phi_s1_2; + if (temp_s0 < phi_a1_2) + { + goto loop_5; + } + } + } + // Node 9 + phi_s1_3 = phi_s1; + phi_s7_3 = phi_s7; + if (phi_s1 != 0) + { + goto loop_1; + } + // Node 10 + return phi_s7; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF638 +/* 0E4168 7F0AF638 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0E416C 7F0AF63C AFB70030 */ sw $s7, 0x30($sp) +/* 0E4170 7F0AF640 AFB6002C */ sw $s6, 0x2c($sp) +/* 0E4174 7F0AF644 AFB40024 */ sw $s4, 0x24($sp) +/* 0E4178 7F0AF648 AFB2001C */ sw $s2, 0x1c($sp) +/* 0E417C 7F0AF64C AFB10018 */ sw $s1, 0x18($sp) +/* 0E4180 7F0AF650 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E4184 7F0AF654 AFB50028 */ sw $s5, 0x28($sp) +/* 0E4188 7F0AF658 AFB30020 */ sw $s3, 0x20($sp) +/* 0E418C 7F0AF65C AFB00014 */ sw $s0, 0x14($sp) +/* 0E4190 7F0AF660 AFA5003C */ sw $a1, 0x3c($sp) +/* 0E4194 7F0AF664 3C168004 */ lui $s6, %hi(base_ptr_connection_vals) +/* 0E4198 7F0AF668 30B400FF */ andi $s4, $a1, 0xff +/* 0E419C 7F0AF66C 0000B825 */ move $s7, $zero +/* 0E41A0 7F0AF670 ACC40000 */ sw $a0, ($a2) +/* 0E41A4 7F0AF674 24110001 */ li $s1, 1 +/* 0E41A8 7F0AF678 26D60F58 */ addiu $s6, %lo(base_ptr_connection_vals) # addiu $s6, $s6, 0xf58 +/* 0E41AC 7F0AF67C 24D20004 */ addiu $s2, $a2, 4 +/* 0E41B0 7F0AF680 8E53FFFC */ lw $s3, -4($s2) +.L7F0AF684: +/* 0E41B4 7F0AF684 2631FFFF */ addiu $s1, $s1, -1 +/* 0E41B8 7F0AF688 2652FFFC */ addiu $s2, $s2, -4 +/* 0E41BC 7F0AF68C 96620000 */ lhu $v0, ($s3) +/* 0E41C0 7F0AF690 00008025 */ move $s0, $zero +/* 0E41C4 7F0AF694 02602025 */ move $a0, $s3 +/* 0E41C8 7F0AF698 00027BC3 */ sra $t7, $v0, 0xf +/* 0E41CC 7F0AF69C 31F80001 */ andi $t8, $t7, 1 +/* 0E41D0 7F0AF6A0 12980021 */ beq $s4, $t8, .L7F0AF728 +/* 0E41D4 7F0AF6A4 38598000 */ xori $t9, $v0, 0x8000 +/* 0E41D8 7F0AF6A8 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E41DC 7F0AF6AC A6790000 */ sh $t9, ($s3) +/* 0E41E0 7F0AF6B0 14400002 */ bnez $v0, .L7F0AF6BC +/* 0E41E4 7F0AF6B4 02602025 */ move $a0, $s3 +/* 0E41E8 7F0AF6B8 26F70001 */ addiu $s7, $s7, 1 +.L7F0AF6BC: +/* 0E41EC 7F0AF6BC 86650006 */ lh $a1, 6($s3) +/* 0E41F0 7F0AF6C0 00054303 */ sra $t0, $a1, 0xc +/* 0E41F4 7F0AF6C4 3105000F */ andi $a1, $t0, 0xf +/* 0E41F8 7F0AF6C8 18A00017 */ blez $a1, .L7F0AF728 +/* 0E41FC 7F0AF6CC 00000000 */ nop +.L7F0AF6D0: +/* 0E4200 7F0AF6D0 9482000E */ lhu $v0, 0xe($a0) +/* 0E4204 7F0AF6D4 26100001 */ addiu $s0, $s0, 1 +/* 0E4208 7F0AF6D8 00025103 */ sra $t2, $v0, 4 +/* 0E420C 7F0AF6DC 51400010 */ beql $t2, $zero, .L7F0AF720 +/* 0E4210 7F0AF6E0 0205082A */ slt $at, $s0, $a1 +/* 0E4214 7F0AF6E4 8ECC0000 */ lw $t4, ($s6) +/* 0E4218 7F0AF6E8 000258C0 */ sll $t3, $v0, 3 +/* 0E421C 7F0AF6EC 016C1821 */ addu $v1, $t3, $t4 +/* 0E4220 7F0AF6F0 946D0000 */ lhu $t5, ($v1) +/* 0E4224 7F0AF6F4 000D73C3 */ sra $t6, $t5, 0xf +/* 0E4228 7F0AF6F8 31CF0001 */ andi $t7, $t6, 1 +/* 0E422C 7F0AF6FC 528F0008 */ beql $s4, $t7, .L7F0AF720 +/* 0E4230 7F0AF700 0205082A */ slt $at, $s0, $a1 +/* 0E4234 7F0AF704 AE430000 */ sw $v1, ($s2) +/* 0E4238 7F0AF708 86650006 */ lh $a1, 6($s3) +/* 0E423C 7F0AF70C 26310001 */ addiu $s1, $s1, 1 +/* 0E4240 7F0AF710 26520004 */ addiu $s2, $s2, 4 +/* 0E4244 7F0AF714 0005C303 */ sra $t8, $a1, 0xc +/* 0E4248 7F0AF718 3305000F */ andi $a1, $t8, 0xf +/* 0E424C 7F0AF71C 0205082A */ slt $at, $s0, $a1 +.L7F0AF720: +/* 0E4250 7F0AF720 1420FFEB */ bnez $at, .L7F0AF6D0 +/* 0E4254 7F0AF724 24840008 */ addiu $a0, $a0, 8 +.L7F0AF728: +/* 0E4258 7F0AF728 5620FFD6 */ bnezl $s1, .L7F0AF684 +/* 0E425C 7F0AF72C 8E53FFFC */ lw $s3, -4($s2) +/* 0E4260 7F0AF730 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E4264 7F0AF734 02E01025 */ move $v0, $s7 +/* 0E4268 7F0AF738 8FB70030 */ lw $s7, 0x30($sp) +/* 0E426C 7F0AF73C 8FB00014 */ lw $s0, 0x14($sp) +/* 0E4270 7F0AF740 8FB10018 */ lw $s1, 0x18($sp) +/* 0E4274 7F0AF744 8FB2001C */ lw $s2, 0x1c($sp) +/* 0E4278 7F0AF748 8FB30020 */ lw $s3, 0x20($sp) +/* 0E427C 7F0AF74C 8FB40024 */ lw $s4, 0x24($sp) +/* 0E4280 7F0AF750 8FB50028 */ lw $s5, 0x28($sp) +/* 0E4284 7F0AF754 8FB6002C */ lw $s6, 0x2c($sp) +/* 0E4288 7F0AF758 03E00008 */ jr $ra +/* 0E428C 7F0AF75C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0AF760(void *arg0) { + u32 sp0; + s32 sp8; + s32 sp10; + s32 sp14; + s32 sp1C; + void *temp_t1; + void *temp_t0; + void *temp_t2; + s32 temp_t5; + s32 temp_t8; + u32 temp_t8_2; + + // Node 0 + temp_t1 = (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8)); + temp_t0 = (arg0 + ((((s32) arg0->unk6 >> 4) & 0xf) * 8)); + sp14 = (s32) (temp_t0->unk8 - temp_t1->unk8); + temp_t2 = (arg0 + ((arg0->unk6 & 0xf) * 8)); + sp1C = (s32) (temp_t0->unkC - temp_t1->unkC); + temp_t5 = (temp_t2->unk8 - temp_t1->unk8); + sp8 = temp_t5; + temp_t8 = (temp_t2->unkC - temp_t1->unkC); + sp10 = temp_t8; + temp_t8_2 = ((sp1C * temp_t5) - (temp_t8 * sp14)); + sp0 = temp_t8_2; + return (temp_t8_2 < 1U); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF760 +/* 0E4290 7F0AF760 84850006 */ lh $a1, 6($a0) +/* 0E4294 7F0AF764 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E4298 7F0AF768 00051A03 */ sra $v1, $a1, 8 +/* 0E429C 7F0AF76C 00053103 */ sra $a2, $a1, 4 +/* 0E42A0 7F0AF770 306E000F */ andi $t6, $v1, 0xf +/* 0E42A4 7F0AF774 30CF000F */ andi $t7, $a2, 0xf +/* 0E42A8 7F0AF778 000FC0C0 */ sll $t8, $t7, 3 +/* 0E42AC 7F0AF77C 000EC8C0 */ sll $t9, $t6, 3 +/* 0E42B0 7F0AF780 00994821 */ addu $t1, $a0, $t9 +/* 0E42B4 7F0AF784 00984021 */ addu $t0, $a0, $t8 +/* 0E42B8 7F0AF788 850B0008 */ lh $t3, 8($t0) +/* 0E42BC 7F0AF78C 852C0008 */ lh $t4, 8($t1) +/* 0E42C0 7F0AF790 30A7000F */ andi $a3, $a1, 0xf +/* 0E42C4 7F0AF794 0007C8C0 */ sll $t9, $a3, 3 +/* 0E42C8 7F0AF798 016C6823 */ subu $t5, $t3, $t4 +/* 0E42CC 7F0AF79C AFAD0014 */ sw $t5, 0x14($sp) +/* 0E42D0 7F0AF7A0 852F000C */ lh $t7, 0xc($t1) +/* 0E42D4 7F0AF7A4 850E000C */ lh $t6, 0xc($t0) +/* 0E42D8 7F0AF7A8 00995021 */ addu $t2, $a0, $t9 +/* 0E42DC 7F0AF7AC 01CFC023 */ subu $t8, $t6, $t7 +/* 0E42E0 7F0AF7B0 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E42E4 7F0AF7B4 852C0008 */ lh $t4, 8($t1) +/* 0E42E8 7F0AF7B8 854B0008 */ lh $t3, 8($t2) +/* 0E42EC 7F0AF7BC 8FB9001C */ lw $t9, 0x1c($sp) +/* 0E42F0 7F0AF7C0 016C6823 */ subu $t5, $t3, $t4 +/* 0E42F4 7F0AF7C4 032D0019 */ multu $t9, $t5 +/* 0E42F8 7F0AF7C8 AFAD0008 */ sw $t5, 8($sp) +/* 0E42FC 7F0AF7CC 852F000C */ lh $t7, 0xc($t1) +/* 0E4300 7F0AF7D0 854E000C */ lh $t6, 0xc($t2) +/* 0E4304 7F0AF7D4 01CFC023 */ subu $t8, $t6, $t7 +/* 0E4308 7F0AF7D8 8FAE0014 */ lw $t6, 0x14($sp) +/* 0E430C 7F0AF7DC AFB80010 */ sw $t8, 0x10($sp) +/* 0E4310 7F0AF7E0 00006012 */ mflo $t4 +/* 0E4314 7F0AF7E4 00000000 */ nop +/* 0E4318 7F0AF7E8 00000000 */ nop +/* 0E431C 7F0AF7EC 030E0019 */ multu $t8, $t6 +/* 0E4320 7F0AF7F0 00007812 */ mflo $t7 +/* 0E4324 7F0AF7F4 018FC023 */ subu $t8, $t4, $t7 +/* 0E4328 7F0AF7F8 AFB80000 */ sw $t8, ($sp) +/* 0E432C 7F0AF7FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E4330 7F0AF800 03E00008 */ jr $ra +/* 0E4334 7F0AF804 2F020001 */ sltiu $v0, $t8, 1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF808(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF808 +/* 0E4338 7F0AF808 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0E433C 7F0AF80C 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E4340 7F0AF810 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E4344 7F0AF814 AFBF0044 */ sw $ra, 0x44($sp) +/* 0E4348 7F0AF818 AFB20040 */ sw $s2, 0x40($sp) +/* 0E434C 7F0AF81C AFB1003C */ sw $s1, 0x3c($sp) +/* 0E4350 7F0AF820 AFB00038 */ sw $s0, 0x38($sp) +/* 0E4354 7F0AF824 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0E4358 7F0AF828 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E435C 7F0AF82C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4360 7F0AF830 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4364 7F0AF834 8DD00004 */ lw $s0, 4($t6) +/* 0E4368 7F0AF838 4486B000 */ mtc1 $a2, $f22 +/* 0E436C 7F0AF83C 4487C000 */ mtc1 $a3, $f24 +/* 0E4370 7F0AF840 8E0F0000 */ lw $t7, ($s0) +/* 0E4374 7F0AF844 46006506 */ mov.s $f20, $f12 +/* 0E4378 7F0AF848 46007686 */ mov.s $f26, $f14 +/* 0E437C 7F0AF84C 11E0002A */ beqz $t7, .L7F0AF8F8 +/* 0E4380 7F0AF850 3C128004 */ lui $s2, %hi(list_of_tilesizes) +/* 0E4384 7F0AF854 26520F4C */ addiu $s2, %lo(list_of_tilesizes) # addiu $s2, $s2, 0xf4c +/* 0E4388 7F0AF858 27B10050 */ addiu $s1, $sp, 0x50 +/* 0E438C 7F0AF85C AFB00050 */ sw $s0, 0x50($sp) +.L7F0AF860: +/* 0E4390 7F0AF860 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E4394 7F0AF864 02002025 */ move $a0, $s0 +/* 0E4398 7F0AF868 5440001B */ bnezl $v0, .L7F0AF8D8 +/* 0E439C 7F0AF86C 86020006 */ lh $v0, 6($s0) +/* 0E43A0 7F0AF870 4405A000 */ mfc1 $a1, $f20 +/* 0E43A4 7F0AF874 4406B000 */ mfc1 $a2, $f22 +/* 0E43A8 7F0AF878 0FC2C0DB */ jal sub_GAME_7F0B036C +/* 0E43AC 7F0AF87C 02002025 */ move $a0, $s0 +/* 0E43B0 7F0AF880 50400015 */ beql $v0, $zero, .L7F0AF8D8 +/* 0E43B4 7F0AF884 86020006 */ lh $v0, 6($s0) +/* 0E43B8 7F0AF888 4405A000 */ mfc1 $a1, $f20 +/* 0E43BC 7F0AF88C 4406B000 */ mfc1 $a2, $f22 +/* 0E43C0 7F0AF890 4407C000 */ mfc1 $a3, $f24 +/* 0E43C4 7F0AF894 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0E43C8 7F0AF898 02202025 */ move $a0, $s1 +/* 0E43CC 7F0AF89C 1040000D */ beqz $v0, .L7F0AF8D4 +/* 0E43D0 7F0AF8A0 8FB80050 */ lw $t8, 0x50($sp) +/* 0E43D4 7F0AF8A4 5618000C */ bnel $s0, $t8, .L7F0AF8D8 +/* 0E43D8 7F0AF8A8 86020006 */ lh $v0, 6($s0) +/* 0E43DC 7F0AF8AC 4405A000 */ mfc1 $a1, $f20 +/* 0E43E0 7F0AF8B0 4406B000 */ mfc1 $a2, $f22 +/* 0E43E4 7F0AF8B4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E43E8 7F0AF8B8 02002025 */ move $a0, $s0 +/* 0E43EC 7F0AF8BC 461A003C */ c.lt.s $f0, $f26 +/* 0E43F0 7F0AF8C0 00000000 */ nop +/* 0E43F4 7F0AF8C4 45020004 */ bc1fl .L7F0AF8D8 +/* 0E43F8 7F0AF8C8 86020006 */ lh $v0, 6($s0) +/* 0E43FC 7F0AF8CC 1000000B */ b .L7F0AF8FC +/* 0E4400 7F0AF8D0 02001025 */ move $v0, $s0 +.L7F0AF8D4: +/* 0E4404 7F0AF8D4 86020006 */ lh $v0, 6($s0) +.L7F0AF8D8: +/* 0E4408 7F0AF8D8 0002CB03 */ sra $t9, $v0, 0xc +/* 0E440C 7F0AF8DC 3328000F */ andi $t0, $t9, 0xf +/* 0E4410 7F0AF8E0 02484821 */ addu $t1, $s2, $t0 +/* 0E4414 7F0AF8E4 912A0000 */ lbu $t2, ($t1) +/* 0E4418 7F0AF8E8 01508021 */ addu $s0, $t2, $s0 +/* 0E441C 7F0AF8EC 8E0B0000 */ lw $t3, ($s0) +/* 0E4420 7F0AF8F0 5560FFDB */ bnezl $t3, .L7F0AF860 +/* 0E4424 7F0AF8F4 AFB00050 */ sw $s0, 0x50($sp) +.L7F0AF8F8: +/* 0E4428 7F0AF8F8 00001025 */ move $v0, $zero +.L7F0AF8FC: +/* 0E442C 7F0AF8FC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0E4430 7F0AF900 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4434 7F0AF904 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4438 7F0AF908 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E443C 7F0AF90C D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0E4440 7F0AF910 8FB00038 */ lw $s0, 0x38($sp) +/* 0E4444 7F0AF914 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E4448 7F0AF918 8FB20040 */ lw $s2, 0x40($sp) +/* 0E444C 7F0AF91C 03E00008 */ jr $ra +/* 0E4450 7F0AF920 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AF924(void *arg0, void *arg1) { + void *temp_t2; + void *temp_t1; + void *temp_t0; + + // Node 0 + temp_t2 = (arg0 + ((((s32) arg0->unk6 >> 4) & 0xf) * 8)); + temp_t1 = (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8)); + temp_t0 = (arg0 + ((arg0->unk6 & 0xf) * 8)); + *arg1 = (f32) ((((f32) temp_t0->unk8 + ((f32) temp_t1->unk8 + (f32) temp_t2->unk8)) / 3.0f) * D_80040F48); + arg1->unk4 = (f32) ((((f32) temp_t0->unkA + ((f32) temp_t1->unkA + (f32) temp_t2->unkA)) / 3.0f) * D_80040F48); + arg1->unk8 = (f32) ((((f32) temp_t0->unkC + ((f32) temp_t1->unkC + (f32) temp_t2->unkC)) / 3.0f) * D_80040F48); + return 3.0f; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF924 +/* 0E4454 7F0AF924 84870006 */ lh $a3, 6($a0) +/* 0E4458 7F0AF928 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0E445C 7F0AF92C 44810000 */ mtc1 $at, $f0 +/* 0E4460 7F0AF930 00077203 */ sra $t6, $a3, 8 +/* 0E4464 7F0AF934 31CF000F */ andi $t7, $t6, 0xf +/* 0E4468 7F0AF938 0007C103 */ sra $t8, $a3, 4 +/* 0E446C 7F0AF93C 3319000F */ andi $t9, $t8, 0xf +/* 0E4470 7F0AF940 000F70C0 */ sll $t6, $t7, 3 +/* 0E4474 7F0AF944 001978C0 */ sll $t7, $t9, 3 +/* 0E4478 7F0AF948 008F5021 */ addu $t2, $a0, $t7 +/* 0E447C 7F0AF94C 008E4821 */ addu $t1, $a0, $t6 +/* 0E4480 7F0AF950 85380008 */ lh $t8, 8($t1) +/* 0E4484 7F0AF954 85590008 */ lh $t9, 8($t2) +/* 0E4488 7F0AF958 30EC000F */ andi $t4, $a3, 0xf +/* 0E448C 7F0AF95C 000C68C0 */ sll $t5, $t4, 3 +/* 0E4490 7F0AF960 44982000 */ mtc1 $t8, $f4 +/* 0E4494 7F0AF964 44994000 */ mtc1 $t9, $f8 +/* 0E4498 7F0AF968 008D4021 */ addu $t0, $a0, $t5 +/* 0E449C 7F0AF96C 850C0008 */ lh $t4, 8($t0) +/* 0E44A0 7F0AF970 468021A0 */ cvt.s.w $f6, $f4 +/* 0E44A4 7F0AF974 3C0B8004 */ lui $t3, %hi(D_80040F48) +/* 0E44A8 7F0AF978 448C9000 */ mtc1 $t4, $f18 +/* 0E44AC 7F0AF97C 256B0F48 */ addiu $t3, %lo(D_80040F48) # addiu $t3, $t3, 0xf48 +/* 0E44B0 7F0AF980 468042A0 */ cvt.s.w $f10, $f8 +/* 0E44B4 7F0AF984 46809120 */ cvt.s.w $f4, $f18 +/* 0E44B8 7F0AF988 460A3400 */ add.s $f16, $f6, $f10 +/* 0E44BC 7F0AF98C C56A0000 */ lwc1 $f10, ($t3) +/* 0E44C0 7F0AF990 46102200 */ add.s $f8, $f4, $f16 +/* 0E44C4 7F0AF994 46004183 */ div.s $f6, $f8, $f0 +/* 0E44C8 7F0AF998 460A3482 */ mul.s $f18, $f6, $f10 +/* 0E44CC 7F0AF99C E4B20000 */ swc1 $f18, ($a1) +/* 0E44D0 7F0AF9A0 854E000A */ lh $t6, 0xa($t2) +/* 0E44D4 7F0AF9A4 852D000A */ lh $t5, 0xa($t1) +/* 0E44D8 7F0AF9A8 850F000A */ lh $t7, 0xa($t0) +/* 0E44DC 7F0AF9AC 448E4000 */ mtc1 $t6, $f8 +/* 0E44E0 7F0AF9B0 448D2000 */ mtc1 $t5, $f4 +/* 0E44E4 7F0AF9B4 448F9000 */ mtc1 $t7, $f18 +/* 0E44E8 7F0AF9B8 468041A0 */ cvt.s.w $f6, $f8 +/* 0E44EC 7F0AF9BC 46802420 */ cvt.s.w $f16, $f4 +/* 0E44F0 7F0AF9C0 46809120 */ cvt.s.w $f4, $f18 +/* 0E44F4 7F0AF9C4 46068280 */ add.s $f10, $f16, $f6 +/* 0E44F8 7F0AF9C8 C5660000 */ lwc1 $f6, ($t3) +/* 0E44FC 7F0AF9CC 460A2200 */ add.s $f8, $f4, $f10 +/* 0E4500 7F0AF9D0 46004403 */ div.s $f16, $f8, $f0 +/* 0E4504 7F0AF9D4 46068482 */ mul.s $f18, $f16, $f6 +/* 0E4508 7F0AF9D8 E4B20004 */ swc1 $f18, 4($a1) +/* 0E450C 7F0AF9DC 8559000C */ lh $t9, 0xc($t2) +/* 0E4510 7F0AF9E0 8538000C */ lh $t8, 0xc($t1) +/* 0E4514 7F0AF9E4 850C000C */ lh $t4, 0xc($t0) +/* 0E4518 7F0AF9E8 44994000 */ mtc1 $t9, $f8 +/* 0E451C 7F0AF9EC 44982000 */ mtc1 $t8, $f4 +/* 0E4520 7F0AF9F0 448C9000 */ mtc1 $t4, $f18 +/* 0E4524 7F0AF9F4 46804420 */ cvt.s.w $f16, $f8 +/* 0E4528 7F0AF9F8 468022A0 */ cvt.s.w $f10, $f4 +/* 0E452C 7F0AF9FC 46809120 */ cvt.s.w $f4, $f18 +/* 0E4530 7F0AFA00 46105180 */ add.s $f6, $f10, $f16 +/* 0E4534 7F0AFA04 C5700000 */ lwc1 $f16, ($t3) +/* 0E4538 7F0AFA08 46062200 */ add.s $f8, $f4, $f6 +/* 0E453C 7F0AFA0C 46004283 */ div.s $f10, $f8, $f0 +/* 0E4540 7F0AFA10 46105482 */ mul.s $f18, $f10, $f16 +/* 0E4544 7F0AFA14 03E00008 */ jr $ra +/* 0E4548 7F0AFA18 E4B20008 */ swc1 $f18, 8($a1) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFA1C(void *arg0, s32 arg1, void *arg2) { + f32 sp1C; + s32 temp_a3; + void *temp_v0; + + // Node 0 + temp_a3 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_v0 = (arg0 + ((temp_a3 & 0xf) * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + sub_GAME_7F0AF924(&sp1C, temp_a3); + *arg2 = (f32) ((sp1C * D_800585D8) + (D_800585DC * *arg2)); + arg2->unk4 = (f32) ((sp20 * D_800585D8) + (D_800585DC * arg2->unk4)); + arg2->unk8 = (f32) ((sp24 * D_800585D8) + (D_800585DC * arg2->unk8)); + return D_800585D8; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800585D8 +.word 0x3dcccccd /*0.1*/ +glabel D_800585DC +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F0AFA1C +/* 0E454C 7F0AFA1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E4550 7F0AFA20 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4554 7F0AFA24 848E0006 */ lh $t6, 6($a0) +/* 0E4558 7F0AFA28 00057880 */ sll $t7, $a1, 2 +/* 0E455C 7F0AFA2C 24180008 */ li $t8, 8 +/* 0E4560 7F0AFA30 030FC823 */ subu $t9, $t8, $t7 +/* 0E4564 7F0AFA34 032E3807 */ srav $a3, $t6, $t9 +/* 0E4568 7F0AFA38 30E8000F */ andi $t0, $a3, 0xf +/* 0E456C 7F0AFA3C 000848C0 */ sll $t1, $t0, 3 +/* 0E4570 7F0AFA40 00891021 */ addu $v0, $a0, $t1 +/* 0E4574 7F0AFA44 844A0008 */ lh $t2, 8($v0) +/* 0E4578 7F0AFA48 3C038004 */ lui $v1, %hi(D_80040F48) +/* 0E457C 7F0AFA4C 24630F48 */ addiu $v1, %lo(D_80040F48) # addiu $v1, $v1, 0xf48 +/* 0E4580 7F0AFA50 448A2000 */ mtc1 $t2, $f4 +/* 0E4584 7F0AFA54 C4680000 */ lwc1 $f8, ($v1) +/* 0E4588 7F0AFA58 27A5001C */ addiu $a1, $sp, 0x1c +/* 0E458C 7F0AFA5C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4590 7F0AFA60 46083282 */ mul.s $f10, $f6, $f8 +/* 0E4594 7F0AFA64 E4CA0000 */ swc1 $f10, ($a2) +/* 0E4598 7F0AFA68 844B000A */ lh $t3, 0xa($v0) +/* 0E459C 7F0AFA6C C4640000 */ lwc1 $f4, ($v1) +/* 0E45A0 7F0AFA70 448B8000 */ mtc1 $t3, $f16 +/* 0E45A4 7F0AFA74 00000000 */ nop +/* 0E45A8 7F0AFA78 468084A0 */ cvt.s.w $f18, $f16 +/* 0E45AC 7F0AFA7C 46049182 */ mul.s $f6, $f18, $f4 +/* 0E45B0 7F0AFA80 E4C60004 */ swc1 $f6, 4($a2) +/* 0E45B4 7F0AFA84 844C000C */ lh $t4, 0xc($v0) +/* 0E45B8 7F0AFA88 C4700000 */ lwc1 $f16, ($v1) +/* 0E45BC 7F0AFA8C 448C4000 */ mtc1 $t4, $f8 +/* 0E45C0 7F0AFA90 00000000 */ nop +/* 0E45C4 7F0AFA94 468042A0 */ cvt.s.w $f10, $f8 +/* 0E45C8 7F0AFA98 46105482 */ mul.s $f18, $f10, $f16 +/* 0E45CC 7F0AFA9C E4D20008 */ swc1 $f18, 8($a2) +/* 0E45D0 7F0AFAA0 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E45D4 7F0AFAA4 AFA60030 */ sw $a2, 0x30($sp) +/* 0E45D8 7F0AFAA8 3C018006 */ lui $at, %hi(D_800585D8) +/* 0E45DC 7F0AFAAC C42085D8 */ lwc1 $f0, %lo(D_800585D8)($at) +/* 0E45E0 7F0AFAB0 8FA60030 */ lw $a2, 0x30($sp) +/* 0E45E4 7F0AFAB4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0E45E8 7F0AFAB8 3C018006 */ lui $at, %hi(D_800585DC) +/* 0E45EC 7F0AFABC C42285DC */ lwc1 $f2, %lo(D_800585DC)($at) +/* 0E45F0 7F0AFAC0 46002182 */ mul.s $f6, $f4, $f0 +/* 0E45F4 7F0AFAC4 C4C80000 */ lwc1 $f8, ($a2) +/* 0E45F8 7F0AFAC8 46081282 */ mul.s $f10, $f2, $f8 +/* 0E45FC 7F0AFACC C4C80004 */ lwc1 $f8, 4($a2) +/* 0E4600 7F0AFAD0 460A3400 */ add.s $f16, $f6, $f10 +/* 0E4604 7F0AFAD4 E4D00000 */ swc1 $f16, ($a2) +/* 0E4608 7F0AFAD8 C7B20020 */ lwc1 $f18, 0x20($sp) +/* 0E460C 7F0AFADC 46009102 */ mul.s $f4, $f18, $f0 +/* 0E4610 7F0AFAE0 00000000 */ nop +/* 0E4614 7F0AFAE4 46081182 */ mul.s $f6, $f2, $f8 +/* 0E4618 7F0AFAE8 C4C80008 */ lwc1 $f8, 8($a2) +/* 0E461C 7F0AFAEC 46062280 */ add.s $f10, $f4, $f6 +/* 0E4620 7F0AFAF0 E4CA0004 */ swc1 $f10, 4($a2) +/* 0E4624 7F0AFAF4 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0E4628 7F0AFAF8 46008482 */ mul.s $f18, $f16, $f0 +/* 0E462C 7F0AFAFC 00000000 */ nop +/* 0E4630 7F0AFB00 46081102 */ mul.s $f4, $f2, $f8 +/* 0E4634 7F0AFB04 46049180 */ add.s $f6, $f18, $f4 +/* 0E4638 7F0AFB08 E4C60008 */ swc1 $f6, 8($a2) +/* 0E463C 7F0AFB0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4640 7F0AFB10 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E4644 7F0AFB14 03E00008 */ jr $ra +/* 0E4648 7F0AFB18 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFB1C(void *arg0, void *arg1) { + f32 sp4; + f32 sp8; + f32 spC; + f32 temp_f18; + f32 temp_f8; + + // Node 0 + sp4 = (f32) (*arg1 - *arg0); + temp_f18 = (arg1->unk4 - arg0->unk4); + sp8 = temp_f18; + temp_f8 = (arg1->unk8 - arg0->unk8); + spC = temp_f8; + return ((temp_f8 * temp_f8) + ((sp4 * sp4) + (temp_f18 * temp_f18))); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFB1C +/* 0E464C 7F0AFB1C C4A40000 */ lwc1 $f4, ($a1) +/* 0E4650 7F0AFB20 C4860000 */ lwc1 $f6, ($a0) +/* 0E4654 7F0AFB24 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0E4658 7F0AFB28 46062201 */ sub.s $f8, $f4, $f6 +/* 0E465C 7F0AFB2C E7A80004 */ swc1 $f8, 4($sp) +/* 0E4660 7F0AFB30 C4900004 */ lwc1 $f16, 4($a0) +/* 0E4664 7F0AFB34 C4AA0004 */ lwc1 $f10, 4($a1) +/* 0E4668 7F0AFB38 46105481 */ sub.s $f18, $f10, $f16 +/* 0E466C 7F0AFB3C C7AA0004 */ lwc1 $f10, 4($sp) +/* 0E4670 7F0AFB40 E7B20008 */ swc1 $f18, 8($sp) +/* 0E4674 7F0AFB44 C4860008 */ lwc1 $f6, 8($a0) +/* 0E4678 7F0AFB48 C4A40008 */ lwc1 $f4, 8($a1) +/* 0E467C 7F0AFB4C 460A5402 */ mul.s $f16, $f10, $f10 +/* 0E4680 7F0AFB50 C7B20008 */ lwc1 $f18, 8($sp) +/* 0E4684 7F0AFB54 46062201 */ sub.s $f8, $f4, $f6 +/* 0E4688 7F0AFB58 46129102 */ mul.s $f4, $f18, $f18 +/* 0E468C 7F0AFB5C E7A8000C */ swc1 $f8, 0xc($sp) +/* 0E4690 7F0AFB60 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0E4694 7F0AFB64 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0E4698 7F0AFB68 46084282 */ mul.s $f10, $f8, $f8 +/* 0E469C 7F0AFB6C 46048180 */ add.s $f6, $f16, $f4 +/* 0E46A0 7F0AFB70 03E00008 */ jr $ra +/* 0E46A4 7F0AFB74 46065000 */ add.s $f0, $f10, $f6 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AFB78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFB78 +/* 0E46A8 7F0AFB78 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0E46AC 7F0AFB7C AFBF004C */ sw $ra, 0x4c($sp) +/* 0E46B0 7F0AFB80 AFBE0048 */ sw $fp, 0x48($sp) +/* 0E46B4 7F0AFB84 AFB70044 */ sw $s7, 0x44($sp) +/* 0E46B8 7F0AFB88 AFB60040 */ sw $s6, 0x40($sp) +/* 0E46BC 7F0AFB8C AFB5003C */ sw $s5, 0x3c($sp) +/* 0E46C0 7F0AFB90 AFB40038 */ sw $s4, 0x38($sp) +/* 0E46C4 7F0AFB94 AFB30034 */ sw $s3, 0x34($sp) +/* 0E46C8 7F0AFB98 AFB20030 */ sw $s2, 0x30($sp) +/* 0E46CC 7F0AFB9C AFB1002C */ sw $s1, 0x2c($sp) +/* 0E46D0 7F0AFBA0 AFB00028 */ sw $s0, 0x28($sp) +/* 0E46D4 7F0AFBA4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E46D8 7F0AFBA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E46DC 7F0AFBAC AFA00078 */ sw $zero, 0x78($sp) +/* 0E46E0 7F0AFBB0 C4840000 */ lwc1 $f4, ($a0) +/* 0E46E4 7F0AFBB4 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E46E8 7F0AFBB8 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E46EC 7F0AFBBC E7A40064 */ swc1 $f4, 0x64($sp) +/* 0E46F0 7F0AFBC0 C4A60000 */ lwc1 $f6, ($a1) +/* 0E46F4 7F0AFBC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0E46F8 7F0AFBC8 4487B000 */ mtc1 $a3, $f22 +/* 0E46FC 7F0AFBCC E7A60068 */ swc1 $f6, 0x68($sp) +/* 0E4700 7F0AFBD0 C4C80000 */ lwc1 $f8, ($a2) +/* 0E4704 7F0AFBD4 4481A000 */ mtc1 $at, $f20 +/* 0E4708 7F0AFBD8 00809825 */ move $s3, $a0 +/* 0E470C 7F0AFBDC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 0E4710 7F0AFBE0 8DD10004 */ lw $s1, 4($t6) +/* 0E4714 7F0AFBE4 00A0A025 */ move $s4, $a1 +/* 0E4718 7F0AFBE8 00C0A825 */ move $s5, $a2 +/* 0E471C 7F0AFBEC 8E2F0000 */ lw $t7, ($s1) +/* 0E4720 7F0AFBF0 24160003 */ li $s6, 3 +/* 0E4724 7F0AFBF4 27B7007C */ addiu $s7, $sp, 0x7c +/* 0E4728 7F0AFBF8 11E00039 */ beqz $t7, .L7F0AFCE0 +/* 0E472C 7F0AFBFC 241E0004 */ li $fp, 4 +/* 0E4730 7F0AFC00 27B20058 */ addiu $s2, $sp, 0x58 +/* 0E4734 7F0AFC04 96380000 */ lhu $t8, ($s1) +.L7F0AFC08: +/* 0E4738 7F0AFC08 24010001 */ li $at, 1 +/* 0E473C 7F0AFC0C 0018CBC3 */ sra $t9, $t8, 0xf +/* 0E4740 7F0AFC10 33280001 */ andi $t0, $t9, 1 +/* 0E4744 7F0AFC14 51010029 */ beql $t0, $at, .L7F0AFCBC +/* 0E4748 7F0AFC18 86220006 */ lh $v0, 6($s1) +/* 0E474C 7F0AFC1C 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E4750 7F0AFC20 02202025 */ move $a0, $s1 +/* 0E4754 7F0AFC24 14400024 */ bnez $v0, .L7F0AFCB8 +/* 0E4758 7F0AFC28 00008025 */ move $s0, $zero +.L7F0AFC2C: +/* 0E475C 7F0AFC2C 16160006 */ bne $s0, $s6, .L7F0AFC48 +/* 0E4760 7F0AFC30 02202025 */ move $a0, $s1 +/* 0E4764 7F0AFC34 02202025 */ move $a0, $s1 +/* 0E4768 7F0AFC38 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E476C 7F0AFC3C 02402825 */ move $a1, $s2 +/* 0E4770 7F0AFC40 10000005 */ b .L7F0AFC58 +/* 0E4774 7F0AFC44 4407B000 */ mfc1 $a3, $f22 +.L7F0AFC48: +/* 0E4778 7F0AFC48 02002825 */ move $a1, $s0 +/* 0E477C 7F0AFC4C 0FC2BE87 */ jal sub_GAME_7F0AFA1C +/* 0E4780 7F0AFC50 02403025 */ move $a2, $s2 +/* 0E4784 7F0AFC54 4407B000 */ mfc1 $a3, $f22 +.L7F0AFC58: +/* 0E4788 7F0AFC58 AFB1007C */ sw $s1, 0x7c($sp) +/* 0E478C 7F0AFC5C 02E02025 */ move $a0, $s7 +/* 0E4790 7F0AFC60 8FA50058 */ lw $a1, 0x58($sp) +/* 0E4794 7F0AFC64 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0E4798 7F0AFC68 8FA60060 */ lw $a2, 0x60($sp) +/* 0E479C 7F0AFC6C 0441000F */ bgez $v0, .L7F0AFCAC +/* 0E47A0 7F0AFC70 02402025 */ move $a0, $s2 +/* 0E47A4 7F0AFC74 0FC2BEC7 */ jal sub_GAME_7F0AFB1C +/* 0E47A8 7F0AFC78 27A50064 */ addiu $a1, $sp, 0x64 +/* 0E47AC 7F0AFC7C 4614003C */ c.lt.s $f0, $f20 +/* 0E47B0 7F0AFC80 00000000 */ nop +/* 0E47B4 7F0AFC84 4502000A */ bc1fl .L7F0AFCB0 +/* 0E47B8 7F0AFC88 26100001 */ addiu $s0, $s0, 1 +/* 0E47BC 7F0AFC8C C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0E47C0 7F0AFC90 AFB10078 */ sw $s1, 0x78($sp) +/* 0E47C4 7F0AFC94 46000506 */ mov.s $f20, $f0 +/* 0E47C8 7F0AFC98 E66A0000 */ swc1 $f10, ($s3) +/* 0E47CC 7F0AFC9C C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0E47D0 7F0AFCA0 E6900000 */ swc1 $f16, ($s4) +/* 0E47D4 7F0AFCA4 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0E47D8 7F0AFCA8 E6B20000 */ swc1 $f18, ($s5) +.L7F0AFCAC: +/* 0E47DC 7F0AFCAC 26100001 */ addiu $s0, $s0, 1 +.L7F0AFCB0: +/* 0E47E0 7F0AFCB0 161EFFDE */ bne $s0, $fp, .L7F0AFC2C +/* 0E47E4 7F0AFCB4 00000000 */ nop +.L7F0AFCB8: +/* 0E47E8 7F0AFCB8 86220006 */ lh $v0, 6($s1) +.L7F0AFCBC: +/* 0E47EC 7F0AFCBC 3C0B8004 */ lui $t3, %hi(list_of_tilesizes) +/* 0E47F0 7F0AFCC0 00024B03 */ sra $t1, $v0, 0xc +/* 0E47F4 7F0AFCC4 312A000F */ andi $t2, $t1, 0xf +/* 0E47F8 7F0AFCC8 016A5821 */ addu $t3, $t3, $t2 +/* 0E47FC 7F0AFCCC 916B0F4C */ lbu $t3, %lo(list_of_tilesizes)($t3) +/* 0E4800 7F0AFCD0 01718821 */ addu $s1, $t3, $s1 +/* 0E4804 7F0AFCD4 8E2C0000 */ lw $t4, ($s1) +/* 0E4808 7F0AFCD8 5580FFCB */ bnezl $t4, .L7F0AFC08 +/* 0E480C 7F0AFCDC 96380000 */ lhu $t8, ($s1) +.L7F0AFCE0: +/* 0E4810 7F0AFCE0 8FBF004C */ lw $ra, 0x4c($sp) +/* 0E4814 7F0AFCE4 8FA20078 */ lw $v0, 0x78($sp) +/* 0E4818 7F0AFCE8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E481C 7F0AFCEC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4820 7F0AFCF0 8FB00028 */ lw $s0, 0x28($sp) +/* 0E4824 7F0AFCF4 8FB1002C */ lw $s1, 0x2c($sp) +/* 0E4828 7F0AFCF8 8FB20030 */ lw $s2, 0x30($sp) +/* 0E482C 7F0AFCFC 8FB30034 */ lw $s3, 0x34($sp) +/* 0E4830 7F0AFD00 8FB40038 */ lw $s4, 0x38($sp) +/* 0E4834 7F0AFD04 8FB5003C */ lw $s5, 0x3c($sp) +/* 0E4838 7F0AFD08 8FB60040 */ lw $s6, 0x40($sp) +/* 0E483C 7F0AFD0C 8FB70044 */ lw $s7, 0x44($sp) +/* 0E4840 7F0AFD10 8FBE0048 */ lw $fp, 0x48($sp) +/* 0E4844 7F0AFD14 03E00008 */ jr $ra +/* 0E4848 7F0AFD18 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFD1C(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + void *sp18; + void *sp1C; + f32 sp40; + s32 temp_hi; + void *temp_v0; + void *temp_v1; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + + // Node 0 + temp_hi = ((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)); + temp_v0 = (arg0 + (temp_hi * 8)); + temp_v1 = (arg0 + (arg1 * 8)); + temp_f2 = (f32) (temp_v0->unk8 - temp_v1->unk8); + temp_f14 = (f32) (temp_v0->unkC - temp_v1->unkC); + sp40 = temp_f2; + sp18 = temp_v1; + sp1C = temp_v0; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_hi); + if (temp_ret != 0.0f) + { + // Node 2 + // Node 3 + return ((((arg3 - (f32) temp_v1->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) temp_v1->unk8))) / temp_ret); + } + // Node 1 + temp_f0 = (arg2 - (f32) temp_v0->unk8); + temp_f2_2 = (arg3 - (f32) temp_v0->unkC); + return ((((arg3 - (f32) temp_v1->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) temp_v1->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFD1C +/* 0E484C 7F0AFD1C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E4850 7F0AFD20 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4854 7F0AFD24 AFA60050 */ sw $a2, 0x50($sp) +/* 0E4858 7F0AFD28 AFA70054 */ sw $a3, 0x54($sp) +/* 0E485C 7F0AFD2C 848F0006 */ lh $t7, 6($a0) +/* 0E4860 7F0AFD30 24AE0001 */ addiu $t6, $a1, 1 +/* 0E4864 7F0AFD34 000548C0 */ sll $t1, $a1, 3 +/* 0E4868 7F0AFD38 000FC303 */ sra $t8, $t7, 0xc +/* 0E486C 7F0AFD3C 3319000F */ andi $t9, $t8, 0xf +/* 0E4870 7F0AFD40 01D9001A */ div $zero, $t6, $t9 +/* 0E4874 7F0AFD44 00003010 */ mfhi $a2 +/* 0E4878 7F0AFD48 000640C0 */ sll $t0, $a2, 3 +/* 0E487C 7F0AFD4C 00881021 */ addu $v0, $a0, $t0 +/* 0E4880 7F0AFD50 00891821 */ addu $v1, $a0, $t1 +/* 0E4884 7F0AFD54 846B0008 */ lh $t3, 8($v1) +/* 0E4888 7F0AFD58 844A0008 */ lh $t2, 8($v0) +/* 0E488C 7F0AFD5C 846F000C */ lh $t7, 0xc($v1) +/* 0E4890 7F0AFD60 844D000C */ lh $t5, 0xc($v0) +/* 0E4894 7F0AFD64 014B6023 */ subu $t4, $t2, $t3 +/* 0E4898 7F0AFD68 448C2000 */ mtc1 $t4, $f4 +/* 0E489C 7F0AFD6C 01AFC023 */ subu $t8, $t5, $t7 +/* 0E48A0 7F0AFD70 44983000 */ mtc1 $t8, $f6 +/* 0E48A4 7F0AFD74 468020A0 */ cvt.s.w $f2, $f4 +/* 0E48A8 7F0AFD78 17200002 */ bnez $t9, .L7F0AFD84 +/* 0E48AC 7F0AFD7C 00000000 */ nop +/* 0E48B0 7F0AFD80 0007000D */ break 7 +.L7F0AFD84: +/* 0E48B4 7F0AFD84 2401FFFF */ li $at, -1 +/* 0E48B8 7F0AFD88 17210004 */ bne $t9, $at, .L7F0AFD9C +/* 0E48BC 7F0AFD8C 3C018000 */ lui $at, 0x8000 +/* 0E48C0 7F0AFD90 15C10002 */ bne $t6, $at, .L7F0AFD9C +/* 0E48C4 7F0AFD94 00000000 */ nop +/* 0E48C8 7F0AFD98 0006000D */ break 6 +.L7F0AFD9C: +/* 0E48CC 7F0AFD9C 468033A0 */ cvt.s.w $f14, $f6 +/* 0E48D0 7F0AFDA0 46021202 */ mul.s $f8, $f2, $f2 +/* 0E48D4 7F0AFDA4 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0E48D8 7F0AFDA8 AFA30018 */ sw $v1, 0x18($sp) +/* 0E48DC 7F0AFDAC AFA2001C */ sw $v0, 0x1c($sp) +/* 0E48E0 7F0AFDB0 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E48E4 7F0AFDB4 E7AE003C */ swc1 $f14, 0x3c($sp) +/* 0E48E8 7F0AFDB8 0C007DF8 */ jal sqrtf +/* 0E48EC 7F0AFDBC 460A4300 */ add.s $f12, $f8, $f10 +/* 0E48F0 7F0AFDC0 44802000 */ mtc1 $zero, $f4 +/* 0E48F4 7F0AFDC4 8FA2001C */ lw $v0, 0x1c($sp) +/* 0E48F8 7F0AFDC8 8FA30018 */ lw $v1, 0x18($sp) +/* 0E48FC 7F0AFDCC 46040032 */ c.eq.s $f0, $f4 +/* 0E4900 7F0AFDD0 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0E4904 7F0AFDD4 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 0E4908 7F0AFDD8 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E490C 7F0AFDDC 45000011 */ bc1f .L7F0AFE24 +/* 0E4910 7F0AFDE0 46000406 */ mov.s $f16, $f0 +/* 0E4914 7F0AFDE4 844E0008 */ lh $t6, 8($v0) +/* 0E4918 7F0AFDE8 8459000C */ lh $t9, 0xc($v0) +/* 0E491C 7F0AFDEC C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4920 7F0AFDF0 448E3000 */ mtc1 $t6, $f6 +/* 0E4924 7F0AFDF4 44992000 */ mtc1 $t9, $f4 +/* 0E4928 7F0AFDF8 46803220 */ cvt.s.w $f8, $f6 +/* 0E492C 7F0AFDFC 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4930 7F0AFE00 46089001 */ sub.s $f0, $f18, $f8 +/* 0E4934 7F0AFE04 46065081 */ sub.s $f2, $f10, $f6 +/* 0E4938 7F0AFE08 46000202 */ mul.s $f8, $f0, $f0 +/* 0E493C 7F0AFE0C 00000000 */ nop +/* 0E4940 7F0AFE10 46021102 */ mul.s $f4, $f2, $f2 +/* 0E4944 7F0AFE14 0C007DF8 */ jal sqrtf +/* 0E4948 7F0AFE18 46044300 */ add.s $f12, $f8, $f4 +/* 0E494C 7F0AFE1C 10000011 */ b .L7F0AFE64 +/* 0E4950 7F0AFE20 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFE24: +/* 0E4954 7F0AFE24 8468000C */ lh $t0, 0xc($v1) +/* 0E4958 7F0AFE28 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E495C 7F0AFE2C 84690008 */ lh $t1, 8($v1) +/* 0E4960 7F0AFE30 44883000 */ mtc1 $t0, $f6 +/* 0E4964 7F0AFE34 00000000 */ nop +/* 0E4968 7F0AFE38 46803220 */ cvt.s.w $f8, $f6 +/* 0E496C 7F0AFE3C 46001187 */ neg.s $f6, $f2 +/* 0E4970 7F0AFE40 46085101 */ sub.s $f4, $f10, $f8 +/* 0E4974 7F0AFE44 44894000 */ mtc1 $t1, $f8 +/* 0E4978 7F0AFE48 46062282 */ mul.s $f10, $f4, $f6 +/* 0E497C 7F0AFE4C 46804120 */ cvt.s.w $f4, $f8 +/* 0E4980 7F0AFE50 46049181 */ sub.s $f6, $f18, $f4 +/* 0E4984 7F0AFE54 46067202 */ mul.s $f8, $f14, $f6 +/* 0E4988 7F0AFE58 46085300 */ add.s $f12, $f10, $f8 +/* 0E498C 7F0AFE5C 46106003 */ div.s $f0, $f12, $f16 +/* 0E4990 7F0AFE60 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFE64: +/* 0E4994 7F0AFE64 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E4998 7F0AFE68 03E00008 */ jr $ra +/* 0E499C 7F0AFE6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFE70(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + f32 sp40; + s32 temp_a1; + void *temp_a2; + void *temp_a0; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + s32 phi_v1; + + // Node 0 + if (arg1 != 2) + { + // Node 1 + phi_v1 = (arg1 + 1); + } + else + { + // Node 2 + phi_v1 = 0; + } + // Node 3 + temp_a1 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_a2 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_a0 = (arg0 + ((((s32) arg0->unk6 >> (8 - (phi_v1 * 4))) & 0xf) * 8)); + temp_f2 = (f32) (temp_a0->unk8 - temp_a2->unk8); + temp_f14 = (f32) (temp_a0->unkC - temp_a2->unkC); + sp40 = temp_f2; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_a0, temp_a1, temp_a2, arg0); + if (temp_ret != 0.0f) + { + // Node 5 + // Node 6 + return ((((arg3 - (f32) sp18->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) sp18->unk8))) / temp_ret); + } + // Node 4 + temp_f0 = (arg2 - (f32) sp1C->unk8); + temp_f2_2 = (arg3 - (f32) sp1C->unkC); + return ((((arg3 - (f32) sp18->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) sp18->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFE70 +/* 0E49A0 7F0AFE70 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E49A4 7F0AFE74 AFA70054 */ sw $a3, 0x54($sp) +/* 0E49A8 7F0AFE78 24010002 */ li $at, 2 +/* 0E49AC 7F0AFE7C 00803825 */ move $a3, $a0 +/* 0E49B0 7F0AFE80 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E49B4 7F0AFE84 AFA40048 */ sw $a0, 0x48($sp) +/* 0E49B8 7F0AFE88 10A10003 */ beq $a1, $at, .L7F0AFE98 +/* 0E49BC 7F0AFE8C AFA60050 */ sw $a2, 0x50($sp) +/* 0E49C0 7F0AFE90 10000002 */ b .L7F0AFE9C +/* 0E49C4 7F0AFE94 24A30001 */ addiu $v1, $a1, 1 +.L7F0AFE98: +/* 0E49C8 7F0AFE98 00001825 */ move $v1, $zero +.L7F0AFE9C: +/* 0E49CC 7F0AFE9C 84E20006 */ lh $v0, 6($a3) +/* 0E49D0 7F0AFEA0 24080008 */ li $t0, 8 +/* 0E49D4 7F0AFEA4 00057080 */ sll $t6, $a1, 2 +/* 0E49D8 7F0AFEA8 0003C880 */ sll $t9, $v1, 2 +/* 0E49DC 7F0AFEAC 010E7823 */ subu $t7, $t0, $t6 +/* 0E49E0 7F0AFEB0 01194823 */ subu $t1, $t0, $t9 +/* 0E49E4 7F0AFEB4 01E22807 */ srav $a1, $v0, $t7 +/* 0E49E8 7F0AFEB8 01221807 */ srav $v1, $v0, $t1 +/* 0E49EC 7F0AFEBC 30B8000F */ andi $t8, $a1, 0xf +/* 0E49F0 7F0AFEC0 306A000F */ andi $t2, $v1, 0xf +/* 0E49F4 7F0AFEC4 000A58C0 */ sll $t3, $t2, 3 +/* 0E49F8 7F0AFEC8 001860C0 */ sll $t4, $t8, 3 +/* 0E49FC 7F0AFECC 00EC3021 */ addu $a2, $a3, $t4 +/* 0E4A00 7F0AFED0 00EB2021 */ addu $a0, $a3, $t3 +/* 0E4A04 7F0AFED4 848D0008 */ lh $t5, 8($a0) +/* 0E4A08 7F0AFED8 84CE0008 */ lh $t6, 8($a2) +/* 0E4A0C 7F0AFEDC 8498000C */ lh $t8, 0xc($a0) +/* 0E4A10 7F0AFEE0 84D9000C */ lh $t9, 0xc($a2) +/* 0E4A14 7F0AFEE4 01AE7823 */ subu $t7, $t5, $t6 +/* 0E4A18 7F0AFEE8 448F2000 */ mtc1 $t7, $f4 +/* 0E4A1C 7F0AFEEC 03194823 */ subu $t1, $t8, $t9 +/* 0E4A20 7F0AFEF0 44893000 */ mtc1 $t1, $f6 +/* 0E4A24 7F0AFEF4 468020A0 */ cvt.s.w $f2, $f4 +/* 0E4A28 7F0AFEF8 AFA60018 */ sw $a2, 0x18($sp) +/* 0E4A2C 7F0AFEFC AFA4001C */ sw $a0, 0x1c($sp) +/* 0E4A30 7F0AFF00 468033A0 */ cvt.s.w $f14, $f6 +/* 0E4A34 7F0AFF04 46021202 */ mul.s $f8, $f2, $f2 +/* 0E4A38 7F0AFF08 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0E4A3C 7F0AFF0C 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4A40 7F0AFF10 E7AE003C */ swc1 $f14, 0x3c($sp) +/* 0E4A44 7F0AFF14 0C007DF8 */ jal sqrtf +/* 0E4A48 7F0AFF18 460A4300 */ add.s $f12, $f8, $f10 +/* 0E4A4C 7F0AFF1C 44802000 */ mtc1 $zero, $f4 +/* 0E4A50 7F0AFF20 8FA4001C */ lw $a0, 0x1c($sp) +/* 0E4A54 7F0AFF24 8FA60018 */ lw $a2, 0x18($sp) +/* 0E4A58 7F0AFF28 46040032 */ c.eq.s $f0, $f4 +/* 0E4A5C 7F0AFF2C C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0E4A60 7F0AFF30 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 0E4A64 7F0AFF34 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E4A68 7F0AFF38 45000011 */ bc1f .L7F0AFF80 +/* 0E4A6C 7F0AFF3C 46000406 */ mov.s $f16, $f0 +/* 0E4A70 7F0AFF40 848A0008 */ lh $t2, 8($a0) +/* 0E4A74 7F0AFF44 848B000C */ lh $t3, 0xc($a0) +/* 0E4A78 7F0AFF48 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4A7C 7F0AFF4C 448A3000 */ mtc1 $t2, $f6 +/* 0E4A80 7F0AFF50 448B2000 */ mtc1 $t3, $f4 +/* 0E4A84 7F0AFF54 46803220 */ cvt.s.w $f8, $f6 +/* 0E4A88 7F0AFF58 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4A8C 7F0AFF5C 46089001 */ sub.s $f0, $f18, $f8 +/* 0E4A90 7F0AFF60 46065081 */ sub.s $f2, $f10, $f6 +/* 0E4A94 7F0AFF64 46000202 */ mul.s $f8, $f0, $f0 +/* 0E4A98 7F0AFF68 00000000 */ nop +/* 0E4A9C 7F0AFF6C 46021102 */ mul.s $f4, $f2, $f2 +/* 0E4AA0 7F0AFF70 0C007DF8 */ jal sqrtf +/* 0E4AA4 7F0AFF74 46044300 */ add.s $f12, $f8, $f4 +/* 0E4AA8 7F0AFF78 10000011 */ b .L7F0AFFC0 +/* 0E4AAC 7F0AFF7C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFF80: +/* 0E4AB0 7F0AFF80 84CC000C */ lh $t4, 0xc($a2) +/* 0E4AB4 7F0AFF84 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4AB8 7F0AFF88 84CD0008 */ lh $t5, 8($a2) +/* 0E4ABC 7F0AFF8C 448C3000 */ mtc1 $t4, $f6 +/* 0E4AC0 7F0AFF90 00000000 */ nop +/* 0E4AC4 7F0AFF94 46803220 */ cvt.s.w $f8, $f6 +/* 0E4AC8 7F0AFF98 46001187 */ neg.s $f6, $f2 +/* 0E4ACC 7F0AFF9C 46085101 */ sub.s $f4, $f10, $f8 +/* 0E4AD0 7F0AFFA0 448D4000 */ mtc1 $t5, $f8 +/* 0E4AD4 7F0AFFA4 46062282 */ mul.s $f10, $f4, $f6 +/* 0E4AD8 7F0AFFA8 46804120 */ cvt.s.w $f4, $f8 +/* 0E4ADC 7F0AFFAC 46049181 */ sub.s $f6, $f18, $f4 +/* 0E4AE0 7F0AFFB0 46067202 */ mul.s $f8, $f14, $f6 +/* 0E4AE4 7F0AFFB4 46085300 */ add.s $f12, $f10, $f8 +/* 0E4AE8 7F0AFFB8 46106003 */ div.s $f0, $f12, $f16 +/* 0E4AEC 7F0AFFBC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFFC0: +/* 0E4AF0 7F0AFFC0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E4AF4 7F0AFFC4 03E00008 */ jr $ra +/* 0E4AF8 7F0AFFC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFFCC(f32 arg2, f32 arg3) { + // Node 0 + return (sub_GAME_7F0AFD1C(arg2, arg3, (arg2 * D_80040F44), (arg3 * D_80040F44)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFFCC +/* 0E4AFC 7F0AFFCC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4B00 7F0AFFD0 44866000 */ mtc1 $a2, $f12 +/* 0E4B04 7F0AFFD4 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4B08 7F0AFFD8 44877000 */ mtc1 $a3, $f14 +/* 0E4B0C 7F0AFFDC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B10 7F0AFFE0 46006102 */ mul.s $f4, $f12, $f0 +/* 0E4B14 7F0AFFE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4B18 7F0AFFE8 46007182 */ mul.s $f6, $f14, $f0 +/* 0E4B1C 7F0AFFEC 44062000 */ mfc1 $a2, $f4 +/* 0E4B20 7F0AFFF0 44073000 */ mfc1 $a3, $f6 +/* 0E4B24 7F0AFFF4 0FC2BF47 */ jal sub_GAME_7F0AFD1C +/* 0E4B28 7F0AFFF8 00000000 */ nop +/* 0E4B2C 7F0AFFFC 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4B30 7F0B0000 C4280F48 */ lwc1 $f8, %lo(D_80040F48)($at) +/* 0E4B34 7F0B0004 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4B38 7F0B0008 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4B3C 7F0B000C 46080002 */ mul.s $f0, $f0, $f8 +/* 0E4B40 7F0B0010 03E00008 */ jr $ra +/* 0E4B44 7F0B0014 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0018(f32 arg2, f32 arg3) { + // Node 0 + return (sub_GAME_7F0AFE70(arg2, arg3, (arg2 * D_80040F44), (arg3 * D_80040F44)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0018 +/* 0E4B48 7F0B0018 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4B4C 7F0B001C 44866000 */ mtc1 $a2, $f12 +/* 0E4B50 7F0B0020 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4B54 7F0B0024 44877000 */ mtc1 $a3, $f14 +/* 0E4B58 7F0B0028 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B5C 7F0B002C 46006102 */ mul.s $f4, $f12, $f0 +/* 0E4B60 7F0B0030 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4B64 7F0B0034 46007182 */ mul.s $f6, $f14, $f0 +/* 0E4B68 7F0B0038 44062000 */ mfc1 $a2, $f4 +/* 0E4B6C 7F0B003C 44073000 */ mfc1 $a3, $f6 +/* 0E4B70 7F0B0040 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E4B74 7F0B0044 00000000 */ nop +/* 0E4B78 7F0B0048 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4B7C 7F0B004C C4280F48 */ lwc1 $f8, %lo(D_80040F48)($at) +/* 0E4B80 7F0B0050 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4B84 7F0B0054 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4B88 7F0B0058 46080002 */ mul.s $f0, $f0, $f8 +/* 0E4B8C 7F0B005C 03E00008 */ jr $ra +/* 0E4B90 7F0B0060 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0064(s32 arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + f32 temp_f18; + f32 temp_f14; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + temp_f18 = (arg3 - (f32) temp_v0->unkC); + temp_f14 = (arg2 - (f32) temp_v0->unk8); + arg3 = temp_f18; + return sqrtf(((temp_f14 * temp_f14) + (temp_f18 * temp_f18)), temp_f14); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0064 +/* 0E4B94 7F0B0064 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B98 7F0B0068 000570C0 */ sll $t6, $a1, 3 +/* 0E4B9C 7F0B006C AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4BA0 7F0B0070 AFA70024 */ sw $a3, 0x24($sp) +/* 0E4BA4 7F0B0074 008E1021 */ addu $v0, $a0, $t6 +/* 0E4BA8 7F0B0078 8458000C */ lh $t8, 0xc($v0) +/* 0E4BAC 7F0B007C 844F0008 */ lh $t7, 8($v0) +/* 0E4BB0 7F0B0080 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 0E4BB4 7F0B0084 44985000 */ mtc1 $t8, $f10 +/* 0E4BB8 7F0B0088 448F2000 */ mtc1 $t7, $f4 +/* 0E4BBC 7F0B008C 44867000 */ mtc1 $a2, $f14 +/* 0E4BC0 7F0B0090 46805420 */ cvt.s.w $f16, $f10 +/* 0E4BC4 7F0B0094 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4BC8 7F0B0098 46104481 */ sub.s $f18, $f8, $f16 +/* 0E4BCC 7F0B009C 46067381 */ sub.s $f14, $f14, $f6 +/* 0E4BD0 7F0B00A0 46129102 */ mul.s $f4, $f18, $f18 +/* 0E4BD4 7F0B00A4 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0E4BD8 7F0B00A8 460E7182 */ mul.s $f6, $f14, $f14 +/* 0E4BDC 7F0B00AC 0C007DF8 */ jal sqrtf +/* 0E4BE0 7F0B00B0 46043300 */ add.s $f12, $f6, $f4 +/* 0E4BE4 7F0B00B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4BE8 7F0B00B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4BEC 7F0B00BC 03E00008 */ jr $ra +/* 0E4BF0 7F0B00C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B00C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B00C4 +/* 0E4BF4 7F0B00C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E4BF8 7F0B00C8 000570C0 */ sll $t6, $a1, 3 +/* 0E4BFC 7F0B00CC AFBF001C */ sw $ra, 0x1c($sp) +/* 0E4C00 7F0B00D0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0E4C04 7F0B00D4 008E1021 */ addu $v0, $a0, $t6 +/* 0E4C08 7F0B00D8 844F0008 */ lh $t7, 8($v0) +/* 0E4C0C 7F0B00DC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4C10 7F0B00E0 44867000 */ mtc1 $a2, $f14 +/* 0E4C14 7F0B00E4 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4C18 7F0B00E8 8458000C */ lh $t8, 0xc($v0) +/* 0E4C1C 7F0B00EC 448F2000 */ mtc1 $t7, $f4 +/* 0E4C20 7F0B00F0 46007382 */ mul.s $f14, $f14, $f0 +/* 0E4C24 7F0B00F4 4487A000 */ mtc1 $a3, $f20 +/* 0E4C28 7F0B00F8 44984000 */ mtc1 $t8, $f8 +/* 0E4C2C 7F0B00FC 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E4C30 7F0B0100 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4C34 7F0B0104 468042A0 */ cvt.s.w $f10, $f8 +/* 0E4C38 7F0B0108 46067381 */ sub.s $f14, $f14, $f6 +/* 0E4C3C 7F0B010C 460AA501 */ sub.s $f20, $f20, $f10 +/* 0E4C40 7F0B0110 460E7402 */ mul.s $f16, $f14, $f14 +/* 0E4C44 7F0B0114 00000000 */ nop +/* 0E4C48 7F0B0118 4614A482 */ mul.s $f18, $f20, $f20 +/* 0E4C4C 7F0B011C 0C007DF8 */ jal sqrtf +/* 0E4C50 7F0B0120 46128300 */ add.s $f12, $f16, $f18 +/* 0E4C54 7F0B0124 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4C58 7F0B0128 C4240F48 */ lwc1 $f4, %lo(D_80040F48)($at) +/* 0E4C5C 7F0B012C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E4C60 7F0B0130 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0E4C64 7F0B0134 46040002 */ mul.s $f0, $f0, $f4 +/* 0E4C68 7F0B0138 03E00008 */ jr $ra +/* 0E4C6C 7F0B013C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0140(s32 arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + return ((((f32) temp_v0->unkC * (arg3 * D_80040F44)) + ((arg2 * D_80040F44) * (f32) temp_v0->unk8)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0140 +/* 0E4C70 7F0B0140 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4C74 7F0B0144 000570C0 */ sll $t6, $a1, 3 +/* 0E4C78 7F0B0148 44866000 */ mtc1 $a2, $f12 +/* 0E4C7C 7F0B014C C4220F44 */ lwc1 $f2, %lo(D_80040F44)($at) +/* 0E4C80 7F0B0150 008E1021 */ addu $v0, $a0, $t6 +/* 0E4C84 7F0B0154 844F000C */ lh $t7, 0xc($v0) +/* 0E4C88 7F0B0158 46026302 */ mul.s $f12, $f12, $f2 +/* 0E4C8C 7F0B015C 44877000 */ mtc1 $a3, $f14 +/* 0E4C90 7F0B0160 84580008 */ lh $t8, 8($v0) +/* 0E4C94 7F0B0164 448F2000 */ mtc1 $t7, $f4 +/* 0E4C98 7F0B0168 46027382 */ mul.s $f14, $f14, $f2 +/* 0E4C9C 7F0B016C 44985000 */ mtc1 $t8, $f10 +/* 0E4CA0 7F0B0170 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4CA4 7F0B0174 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4CA8 7F0B0178 46805420 */ cvt.s.w $f16, $f10 +/* 0E4CAC 7F0B017C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0E4CB0 7F0B0180 C4260F48 */ lwc1 $f6, %lo(D_80040F48)($at) +/* 0E4CB4 7F0B0184 46106482 */ mul.s $f18, $f12, $f16 +/* 0E4CB8 7F0B0188 46124100 */ add.s $f4, $f8, $f18 +/* 0E4CBC 7F0B018C 46062002 */ mul.s $f0, $f4, $f6 +/* 0E4CC0 7F0B0190 03E00008 */ jr $ra +/* 0E4CC4 7F0B0194 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0198(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + void *temp_v0_2; + f32 temp_f0; + f32 temp_f2; + f32 temp_f12; + f32 temp_f14; + f32 temp_f18; + f32 temp_f6; + f32 temp_f2_2; + f32 temp_f0_2; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + temp_v0_2 = (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8)); + temp_f0 = (f32) temp_v0->unk8; + temp_f2 = (f32) temp_v0->unkC; + temp_f12 = ((f32) temp_v0_2->unk8 - temp_f0); + temp_f14 = ((f32) temp_v0_2->unkC - temp_f2); + temp_f18 = (arg2 - temp_f0); + temp_f6 = (arg3 - temp_f2); + arg2 = temp_f18; + arg3 = temp_f6; + temp_f2_2 = ((temp_f12 * temp_f12) + (temp_f14 * temp_f14)); + temp_f0_2 = ((temp_f18 * temp_f12) + (temp_f6 * temp_f14)); + phi_v0 = 0; + if (temp_f2_2 < temp_f0_2) + { + // Node 1 + phi_v0 = 1; + } + // Node 2 + if ((phi_v0 != 0) && (temp_f0_2 < 0.0f)) + { + // Node 4 + phi_v0_2 = 1; + // Node 5 + if (phi_v0_2 == 0) + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f0_2) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f0_2 < temp_f2_2) + { + // Node 10 + } + } + } + } + else + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f0_2) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f0_2 < temp_f2_2) + { + // Node 10 + } + } + } + // Node 11 + return temp_f0_2; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0198 +/* 0E4CC8 7F0B0198 AFA60008 */ sw $a2, 8($sp) +/* 0E4CCC 7F0B019C AFA7000C */ sw $a3, 0xc($sp) +/* 0E4CD0 7F0B01A0 84880006 */ lh $t0, 6($a0) +/* 0E4CD4 7F0B01A4 24B90001 */ addiu $t9, $a1, 1 +/* 0E4CD8 7F0B01A8 000570C0 */ sll $t6, $a1, 3 +/* 0E4CDC 7F0B01AC 00084B03 */ sra $t1, $t0, 0xc +/* 0E4CE0 7F0B01B0 312A000F */ andi $t2, $t1, 0xf +/* 0E4CE4 7F0B01B4 032A001A */ div $zero, $t9, $t2 +/* 0E4CE8 7F0B01B8 008E1021 */ addu $v0, $a0, $t6 +/* 0E4CEC 7F0B01BC 00002810 */ mfhi $a1 +/* 0E4CF0 7F0B01C0 844F0008 */ lh $t7, 8($v0) +/* 0E4CF4 7F0B01C4 8458000C */ lh $t8, 0xc($v0) +/* 0E4CF8 7F0B01C8 000558C0 */ sll $t3, $a1, 3 +/* 0E4CFC 7F0B01CC 008B1021 */ addu $v0, $a0, $t3 +/* 0E4D00 7F0B01D0 844C0008 */ lh $t4, 8($v0) +/* 0E4D04 7F0B01D4 844D000C */ lh $t5, 0xc($v0) +/* 0E4D08 7F0B01D8 448F2000 */ mtc1 $t7, $f4 +/* 0E4D0C 7F0B01DC 448C4000 */ mtc1 $t4, $f8 +/* 0E4D10 7F0B01E0 44983000 */ mtc1 $t8, $f6 +/* 0E4D14 7F0B01E4 46802020 */ cvt.s.w $f0, $f4 +/* 0E4D18 7F0B01E8 448D5000 */ mtc1 $t5, $f10 +/* 0E4D1C 7F0B01EC C7B00008 */ lwc1 $f16, 8($sp) +/* 0E4D20 7F0B01F0 C7A4000C */ lwc1 $f4, 0xc($sp) +/* 0E4D24 7F0B01F4 00001025 */ move $v0, $zero +/* 0E4D28 7F0B01F8 46804320 */ cvt.s.w $f12, $f8 +/* 0E4D2C 7F0B01FC 468030A0 */ cvt.s.w $f2, $f6 +/* 0E4D30 7F0B0200 15400002 */ bnez $t2, .L7F0B020C +/* 0E4D34 7F0B0204 00000000 */ nop +/* 0E4D38 7F0B0208 0007000D */ break 7 +.L7F0B020C: +/* 0E4D3C 7F0B020C 2401FFFF */ li $at, -1 +/* 0E4D40 7F0B0210 15410004 */ bne $t2, $at, .L7F0B0224 +/* 0E4D44 7F0B0214 3C018000 */ lui $at, 0x8000 +/* 0E4D48 7F0B0218 17210002 */ bne $t9, $at, .L7F0B0224 +/* 0E4D4C 7F0B021C 00000000 */ nop +/* 0E4D50 7F0B0220 0006000D */ break 6 +.L7F0B0224: +/* 0E4D54 7F0B0224 468053A0 */ cvt.s.w $f14, $f10 +/* 0E4D58 7F0B0228 46006301 */ sub.s $f12, $f12, $f0 +/* 0E4D5C 7F0B022C 46027381 */ sub.s $f14, $f14, $f2 +/* 0E4D60 7F0B0230 460C6202 */ mul.s $f8, $f12, $f12 +/* 0E4D64 7F0B0234 46008481 */ sub.s $f18, $f16, $f0 +/* 0E4D68 7F0B0238 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4D6C 7F0B023C 46022181 */ sub.s $f6, $f4, $f2 +/* 0E4D70 7F0B0240 460C9402 */ mul.s $f16, $f18, $f12 +/* 0E4D74 7F0B0244 E7B20008 */ swc1 $f18, 8($sp) +/* 0E4D78 7F0B0248 460E3102 */ mul.s $f4, $f6, $f14 +/* 0E4D7C 7F0B024C E7A6000C */ swc1 $f6, 0xc($sp) +/* 0E4D80 7F0B0250 460A4080 */ add.s $f2, $f8, $f10 +/* 0E4D84 7F0B0254 46048000 */ add.s $f0, $f16, $f4 +/* 0E4D88 7F0B0258 4600103C */ c.lt.s $f2, $f0 +/* 0E4D8C 7F0B025C 00000000 */ nop +/* 0E4D90 7F0B0260 45000002 */ bc1f .L7F0B026C +/* 0E4D94 7F0B0264 00000000 */ nop +/* 0E4D98 7F0B0268 24020001 */ li $v0, 1 +.L7F0B026C: +/* 0E4D9C 7F0B026C 5040000B */ beql $v0, $zero, .L7F0B029C +/* 0E4DA0 7F0B0270 44805000 */ mtc1 $zero, $f10 +/* 0E4DA4 7F0B0274 44804000 */ mtc1 $zero, $f8 +/* 0E4DA8 7F0B0278 00001025 */ move $v0, $zero +/* 0E4DAC 7F0B027C 4608003C */ c.lt.s $f0, $f8 +/* 0E4DB0 7F0B0280 00000000 */ nop +/* 0E4DB4 7F0B0284 45000002 */ bc1f .L7F0B0290 +/* 0E4DB8 7F0B0288 00000000 */ nop +/* 0E4DBC 7F0B028C 24020001 */ li $v0, 1 +.L7F0B0290: +/* 0E4DC0 7F0B0290 1440000F */ bnez $v0, .L7F0B02D0 +/* 0E4DC4 7F0B0294 00000000 */ nop +/* 0E4DC8 7F0B0298 44805000 */ mtc1 $zero, $f10 +.L7F0B029C: +/* 0E4DCC 7F0B029C 00001025 */ move $v0, $zero +/* 0E4DD0 7F0B02A0 4600503C */ c.lt.s $f10, $f0 +/* 0E4DD4 7F0B02A4 00000000 */ nop +/* 0E4DD8 7F0B02A8 45000002 */ bc1f .L7F0B02B4 +/* 0E4DDC 7F0B02AC 00000000 */ nop +/* 0E4DE0 7F0B02B0 24020001 */ li $v0, 1 +.L7F0B02B4: +/* 0E4DE4 7F0B02B4 10400006 */ beqz $v0, .L7F0B02D0 +/* 0E4DE8 7F0B02B8 00000000 */ nop +/* 0E4DEC 7F0B02BC 4602003C */ c.lt.s $f0, $f2 +/* 0E4DF0 7F0B02C0 00001025 */ move $v0, $zero +/* 0E4DF4 7F0B02C4 45000002 */ bc1f .L7F0B02D0 +/* 0E4DF8 7F0B02C8 00000000 */ nop +/* 0E4DFC 7F0B02CC 24020001 */ li $v0, 1 +.L7F0B02D0: +/* 0E4E00 7F0B02D0 03E00008 */ jr $ra +/* 0E4E04 7F0B02D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B02D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B02D8 +/* 0E4E08 7F0B02D8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4E0C 7F0B02DC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E4E10 7F0B02E0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4E14 7F0B02E4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4E18 7F0B02E8 AFB20038 */ sw $s2, 0x38($sp) +/* 0E4E1C 7F0B02EC AFB10034 */ sw $s1, 0x34($sp) +/* 0E4E20 7F0B02F0 AFB00030 */ sw $s0, 0x30($sp) +/* 0E4E24 7F0B02F4 4485A000 */ mtc1 $a1, $f20 +/* 0E4E28 7F0B02F8 4486B000 */ mtc1 $a2, $f22 +/* 0E4E2C 7F0B02FC 4480C000 */ mtc1 $zero, $f24 +/* 0E4E30 7F0B0300 00808825 */ move $s1, $a0 +/* 0E4E34 7F0B0304 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E4E38 7F0B0308 00008025 */ move $s0, $zero +/* 0E4E3C 7F0B030C 24120003 */ li $s2, 3 +/* 0E4E40 7F0B0310 4406A000 */ mfc1 $a2, $f20 +.L7F0B0314: +/* 0E4E44 7F0B0314 4407B000 */ mfc1 $a3, $f22 +/* 0E4E48 7F0B0318 02202025 */ move $a0, $s1 +/* 0E4E4C 7F0B031C 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E4E50 7F0B0320 02002825 */ move $a1, $s0 +/* 0E4E54 7F0B0324 4618003C */ c.lt.s $f0, $f24 +/* 0E4E58 7F0B0328 26100001 */ addiu $s0, $s0, 1 +/* 0E4E5C 7F0B032C 45000003 */ bc1f .L7F0B033C +/* 0E4E60 7F0B0330 00000000 */ nop +/* 0E4E64 7F0B0334 10000004 */ b .L7F0B0348 +/* 0E4E68 7F0B0338 00001025 */ move $v0, $zero +.L7F0B033C: +/* 0E4E6C 7F0B033C 5612FFF5 */ bnel $s0, $s2, .L7F0B0314 +/* 0E4E70 7F0B0340 4406A000 */ mfc1 $a2, $f20 +/* 0E4E74 7F0B0344 24020001 */ li $v0, 1 +.L7F0B0348: +/* 0E4E78 7F0B0348 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E4E7C 7F0B034C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4E80 7F0B0350 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4E84 7F0B0354 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E4E88 7F0B0358 8FB00030 */ lw $s0, 0x30($sp) +/* 0E4E8C 7F0B035C 8FB10034 */ lw $s1, 0x34($sp) +/* 0E4E90 7F0B0360 8FB20038 */ lw $s2, 0x38($sp) +/* 0E4E94 7F0B0364 03E00008 */ jr $ra +/* 0E4E98 7F0B0368 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B036C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B036C +/* 0E4E9C 7F0B036C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4EA0 7F0B0370 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E4EA4 7F0B0374 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4EA8 7F0B0378 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4EAC 7F0B037C AFB20038 */ sw $s2, 0x38($sp) +/* 0E4EB0 7F0B0380 AFB10034 */ sw $s1, 0x34($sp) +/* 0E4EB4 7F0B0384 AFB00030 */ sw $s0, 0x30($sp) +/* 0E4EB8 7F0B0388 4485A000 */ mtc1 $a1, $f20 +/* 0E4EBC 7F0B038C 4486B000 */ mtc1 $a2, $f22 +/* 0E4EC0 7F0B0390 4480C000 */ mtc1 $zero, $f24 +/* 0E4EC4 7F0B0394 00808825 */ move $s1, $a0 +/* 0E4EC8 7F0B0398 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E4ECC 7F0B039C 00008025 */ move $s0, $zero +/* 0E4ED0 7F0B03A0 24120003 */ li $s2, 3 +/* 0E4ED4 7F0B03A4 4406A000 */ mfc1 $a2, $f20 +.L7F0B03A8: +/* 0E4ED8 7F0B03A8 4407B000 */ mfc1 $a3, $f22 +/* 0E4EDC 7F0B03AC 02202025 */ move $a0, $s1 +/* 0E4EE0 7F0B03B0 0FC2C006 */ jal sub_GAME_7F0B0018 +/* 0E4EE4 7F0B03B4 02002825 */ move $a1, $s0 +/* 0E4EE8 7F0B03B8 4618003C */ c.lt.s $f0, $f24 +/* 0E4EEC 7F0B03BC 26100001 */ addiu $s0, $s0, 1 +/* 0E4EF0 7F0B03C0 45000003 */ bc1f .L7F0B03D0 +/* 0E4EF4 7F0B03C4 00000000 */ nop +/* 0E4EF8 7F0B03C8 10000004 */ b .L7F0B03DC +/* 0E4EFC 7F0B03CC 00001025 */ move $v0, $zero +.L7F0B03D0: +/* 0E4F00 7F0B03D0 5612FFF5 */ bnel $s0, $s2, .L7F0B03A8 +/* 0E4F04 7F0B03D4 4406A000 */ mfc1 $a2, $f20 +/* 0E4F08 7F0B03D8 24020001 */ li $v0, 1 +.L7F0B03DC: +/* 0E4F0C 7F0B03DC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E4F10 7F0B03E0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4F14 7F0B03E4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4F18 7F0B03E8 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E4F1C 7F0B03EC 8FB00030 */ lw $s0, 0x30($sp) +/* 0E4F20 7F0B03F0 8FB10034 */ lw $s1, 0x34($sp) +/* 0E4F24 7F0B03F4 8FB20038 */ lw $s2, 0x38($sp) +/* 0E4F28 7F0B03F8 03E00008 */ jr $ra +/* 0E4F2C 7F0B03FC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0400(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + f32 sp38; + s32 temp_a1; + s32 temp_a0; + void *temp_a2; + void *temp_v1; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + s32 phi_a0; + + // Node 0 + if (arg1 != 2) + { + // Node 1 + phi_a0 = (arg1 + 1); + } + else + { + // Node 2 + phi_a0 = 0; + } + // Node 3 + temp_a1 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_a0 = ((s32) arg0->unk6 >> (8 - (phi_a0 * 4))); + temp_a2 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_v1 = (arg0 + ((temp_a0 & 0xf) * 8)); + temp_f2 = (f32) (temp_v1->unk8 - temp_a2->unk8); + temp_f14 = (f32) (temp_v1->unkC - temp_a2->unkC); + sp38 = temp_f2; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_a0, temp_a1, temp_a2, arg0); + if (temp_ret != 0.0f) + { + // Node 5 + // Node 6 + return ((((arg3 - (f32) sp1C->unkC) * -temp_f2) + (sp34 * (arg2 - (f32) sp1C->unk8))) / temp_ret); + } + // Node 4 + return ((((arg3 - (f32) sp1C->unkC) * -temp_f2) + (sp34 * (arg2 - (f32) sp1C->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0400 +/* 0E4F30 7F0B0400 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4F34 7F0B0404 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E4F38 7F0B0408 24010002 */ li $at, 2 +/* 0E4F3C 7F0B040C 00803825 */ move $a3, $a0 +/* 0E4F40 7F0B0410 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4F44 7F0B0414 AFA40040 */ sw $a0, 0x40($sp) +/* 0E4F48 7F0B0418 10A10003 */ beq $a1, $at, .L7F0B0428 +/* 0E4F4C 7F0B041C AFA60048 */ sw $a2, 0x48($sp) +/* 0E4F50 7F0B0420 10000002 */ b .L7F0B042C +/* 0E4F54 7F0B0424 24A40001 */ addiu $a0, $a1, 1 +.L7F0B0428: +/* 0E4F58 7F0B0428 00002025 */ move $a0, $zero +.L7F0B042C: +/* 0E4F5C 7F0B042C 84E20006 */ lh $v0, 6($a3) +/* 0E4F60 7F0B0430 24080008 */ li $t0, 8 +/* 0E4F64 7F0B0434 00057080 */ sll $t6, $a1, 2 +/* 0E4F68 7F0B0438 0004C880 */ sll $t9, $a0, 2 +/* 0E4F6C 7F0B043C 010E7823 */ subu $t7, $t0, $t6 +/* 0E4F70 7F0B0440 01194823 */ subu $t1, $t0, $t9 +/* 0E4F74 7F0B0444 01E22807 */ srav $a1, $v0, $t7 +/* 0E4F78 7F0B0448 01222007 */ srav $a0, $v0, $t1 +/* 0E4F7C 7F0B044C 30B8000F */ andi $t8, $a1, 0xf +/* 0E4F80 7F0B0450 308A000F */ andi $t2, $a0, 0xf +/* 0E4F84 7F0B0454 000A58C0 */ sll $t3, $t2, 3 +/* 0E4F88 7F0B0458 001860C0 */ sll $t4, $t8, 3 +/* 0E4F8C 7F0B045C 00EC3021 */ addu $a2, $a3, $t4 +/* 0E4F90 7F0B0460 00EB1821 */ addu $v1, $a3, $t3 +/* 0E4F94 7F0B0464 846D0008 */ lh $t5, 8($v1) +/* 0E4F98 7F0B0468 84CE0008 */ lh $t6, 8($a2) +/* 0E4F9C 7F0B046C 8478000C */ lh $t8, 0xc($v1) +/* 0E4FA0 7F0B0470 84D9000C */ lh $t9, 0xc($a2) +/* 0E4FA4 7F0B0474 01AE7823 */ subu $t7, $t5, $t6 +/* 0E4FA8 7F0B0478 448F2000 */ mtc1 $t7, $f4 +/* 0E4FAC 7F0B047C 03194823 */ subu $t1, $t8, $t9 +/* 0E4FB0 7F0B0480 44893000 */ mtc1 $t1, $f6 +/* 0E4FB4 7F0B0484 468020A0 */ cvt.s.w $f2, $f4 +/* 0E4FB8 7F0B0488 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E4FBC 7F0B048C 468033A0 */ cvt.s.w $f14, $f6 +/* 0E4FC0 7F0B0490 46021202 */ mul.s $f8, $f2, $f2 +/* 0E4FC4 7F0B0494 E7A20038 */ swc1 $f2, 0x38($sp) +/* 0E4FC8 7F0B0498 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4FCC 7F0B049C E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0E4FD0 7F0B04A0 0C007DF8 */ jal sqrtf +/* 0E4FD4 7F0B04A4 460A4300 */ add.s $f12, $f8, $f10 +/* 0E4FD8 7F0B04A8 44806000 */ mtc1 $zero, $f12 +/* 0E4FDC 7F0B04AC 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E4FE0 7F0B04B0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0E4FE4 7F0B04B4 460C0032 */ c.eq.s $f0, $f12 +/* 0E4FE8 7F0B04B8 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0E4FEC 7F0B04BC 46000406 */ mov.s $f16, $f0 +/* 0E4FF0 7F0B04C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4FF4 7F0B04C4 45020004 */ bc1fl .L7F0B04D8 +/* 0E4FF8 7F0B04C8 84CA000C */ lh $t2, 0xc($a2) +/* 0E4FFC 7F0B04CC 10000010 */ b .L7F0B0510 +/* 0E5000 7F0B04D0 46006006 */ mov.s $f0, $f12 +/* 0E5004 7F0B04D4 84CA000C */ lh $t2, 0xc($a2) +.L7F0B04D8: +/* 0E5008 7F0B04D8 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0E500C 7F0B04DC 84CB0008 */ lh $t3, 8($a2) +/* 0E5010 7F0B04E0 448A2000 */ mtc1 $t2, $f4 +/* 0E5014 7F0B04E4 46001287 */ neg.s $f10, $f2 +/* 0E5018 7F0B04E8 468021A0 */ cvt.s.w $f6, $f4 +/* 0E501C 7F0B04EC 46069201 */ sub.s $f8, $f18, $f6 +/* 0E5020 7F0B04F0 448B3000 */ mtc1 $t3, $f6 +/* 0E5024 7F0B04F4 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0E5028 7F0B04F8 460A4102 */ mul.s $f4, $f8, $f10 +/* 0E502C 7F0B04FC 46803220 */ cvt.s.w $f8, $f6 +/* 0E5030 7F0B0500 46089281 */ sub.s $f10, $f18, $f8 +/* 0E5034 7F0B0504 460A7182 */ mul.s $f6, $f14, $f10 +/* 0E5038 7F0B0508 46062300 */ add.s $f12, $f4, $f6 +/* 0E503C 7F0B050C 46106003 */ div.s $f0, $f12, $f16 +.L7F0B0510: +/* 0E5040 7F0B0510 03E00008 */ jr $ra +/* 0E5044 7F0B0514 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0518(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0518 +/* 0E5048 7F0B0518 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E504C 7F0B051C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E5050 7F0B0520 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E5054 7F0B0524 4485A000 */ mtc1 $a1, $f20 +/* 0E5058 7F0B0528 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E505C 7F0B052C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E5060 7F0B0530 4486B000 */ mtc1 $a2, $f22 +/* 0E5064 7F0B0534 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E5068 7F0B0538 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E506C 7F0B053C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0E5070 7F0B0540 AFB20038 */ sw $s2, 0x38($sp) +/* 0E5074 7F0B0544 AFB10034 */ sw $s1, 0x34($sp) +/* 0E5078 7F0B0548 AFB00030 */ sw $s0, 0x30($sp) +/* 0E507C 7F0B054C 4481C000 */ mtc1 $at, $f24 +/* 0E5080 7F0B0550 4600B582 */ mul.s $f22, $f22, $f0 +/* 0E5084 7F0B0554 00808825 */ move $s1, $a0 +/* 0E5088 7F0B0558 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E508C 7F0B055C 00008025 */ move $s0, $zero +/* 0E5090 7F0B0560 24120003 */ li $s2, 3 +/* 0E5094 7F0B0564 4406A000 */ mfc1 $a2, $f20 +.L7F0B0568: +/* 0E5098 7F0B0568 4407B000 */ mfc1 $a3, $f22 +/* 0E509C 7F0B056C 02202025 */ move $a0, $s1 +/* 0E50A0 7F0B0570 0FC2C100 */ jal sub_GAME_7F0B0400 +/* 0E50A4 7F0B0574 02002825 */ move $a1, $s0 +/* 0E50A8 7F0B0578 4618003C */ c.lt.s $f0, $f24 +/* 0E50AC 7F0B057C 26100001 */ addiu $s0, $s0, 1 +/* 0E50B0 7F0B0580 45000003 */ bc1f .L7F0B0590 +/* 0E50B4 7F0B0584 00000000 */ nop +/* 0E50B8 7F0B0588 10000004 */ b .L7F0B059C +/* 0E50BC 7F0B058C 00001025 */ move $v0, $zero +.L7F0B0590: +/* 0E50C0 7F0B0590 5612FFF5 */ bnel $s0, $s2, .L7F0B0568 +/* 0E50C4 7F0B0594 4406A000 */ mfc1 $a2, $f20 +/* 0E50C8 7F0B0598 24020001 */ li $v0, 1 +.L7F0B059C: +/* 0E50CC 7F0B059C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E50D0 7F0B05A0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E50D4 7F0B05A4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E50D8 7F0B05A8 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E50DC 7F0B05AC 8FB00030 */ lw $s0, 0x30($sp) +/* 0E50E0 7F0B05B0 8FB10034 */ lw $s1, 0x34($sp) +/* 0E50E4 7F0B05B4 8FB20038 */ lw $s2, 0x38($sp) +/* 0E50E8 7F0B05B8 03E00008 */ jr $ra +/* 0E50EC 7F0B05BC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B05C0(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + f32 temp_f0; + f32 temp_f2; + + // Node 0 + temp_f0 = (arg1 * arg2); + temp_f2 = (arg0 * arg3); + if (temp_f0 < temp_f2) + { + // Node 1 + return 1; + } + // Node 2 + if (temp_f2 < temp_f0) + { + // Node 3 + return -1; + } + // Node 4 + if ((arg0 * arg2) < 0.0f) + { + // Node 6 + return -1; + } + // Node 5 + if ((arg1 * arg3) < 0.0f) + { + // Node 6 + return -1; + } + // Node 7 + if (((arg0 * arg0) + (arg1 * arg1)) < ((arg2 * arg2) + (arg3 * arg3))) + { + // Node 8 + return 1; + } + // Node 9 + return 0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B05C0 +/* 0E50F0 7F0B05C0 AFA60008 */ sw $a2, 8($sp) +/* 0E50F4 7F0B05C4 C7A40008 */ lwc1 $f4, 8($sp) +/* 0E50F8 7F0B05C8 AFA7000C */ sw $a3, 0xc($sp) +/* 0E50FC 7F0B05CC C7A6000C */ lwc1 $f6, 0xc($sp) +/* 0E5100 7F0B05D0 46047002 */ mul.s $f0, $f14, $f4 +/* 0E5104 7F0B05D4 00000000 */ nop +/* 0E5108 7F0B05D8 46066082 */ mul.s $f2, $f12, $f6 +/* 0E510C 7F0B05DC 4602003C */ c.lt.s $f0, $f2 +/* 0E5110 7F0B05E0 00000000 */ nop +/* 0E5114 7F0B05E4 45000003 */ bc1f .L7F0B05F4 +/* 0E5118 7F0B05E8 00000000 */ nop +/* 0E511C 7F0B05EC 03E00008 */ jr $ra +/* 0E5120 7F0B05F0 24020001 */ li $v0, 1 + +.L7F0B05F4: +/* 0E5124 7F0B05F4 4600103C */ c.lt.s $f2, $f0 +/* 0E5128 7F0B05F8 C7A80008 */ lwc1 $f8, 8($sp) +/* 0E512C 7F0B05FC 45000003 */ bc1f .L7F0B060C +/* 0E5130 7F0B0600 00000000 */ nop +/* 0E5134 7F0B0604 03E00008 */ jr $ra +/* 0E5138 7F0B0608 2402FFFF */ li $v0, -1 + +.L7F0B060C: +/* 0E513C 7F0B060C 46086282 */ mul.s $f10, $f12, $f8 +/* 0E5140 7F0B0610 44800000 */ mtc1 $zero, $f0 +/* 0E5144 7F0B0614 C7B0000C */ lwc1 $f16, 0xc($sp) +/* 0E5148 7F0B0618 4600503C */ c.lt.s $f10, $f0 +/* 0E514C 7F0B061C 00000000 */ nop +/* 0E5150 7F0B0620 45010006 */ bc1t .L7F0B063C +/* 0E5154 7F0B0624 00000000 */ nop +/* 0E5158 7F0B0628 46107482 */ mul.s $f18, $f14, $f16 +/* 0E515C 7F0B062C 4600903C */ c.lt.s $f18, $f0 +/* 0E5160 7F0B0630 00000000 */ nop +/* 0E5164 7F0B0634 45000003 */ bc1f .L7F0B0644 +/* 0E5168 7F0B0638 00000000 */ nop +.L7F0B063C: +/* 0E516C 7F0B063C 03E00008 */ jr $ra +/* 0E5170 7F0B0640 2402FFFF */ li $v0, -1 + +.L7F0B0644: +/* 0E5174 7F0B0644 460C6102 */ mul.s $f4, $f12, $f12 +/* 0E5178 7F0B0648 C7AA0008 */ lwc1 $f10, 8($sp) +/* 0E517C 7F0B064C C7B2000C */ lwc1 $f18, 0xc($sp) +/* 0E5180 7F0B0650 460E7182 */ mul.s $f6, $f14, $f14 +/* 0E5184 7F0B0654 00001025 */ move $v0, $zero +/* 0E5188 7F0B0658 460A5402 */ mul.s $f16, $f10, $f10 +/* 0E518C 7F0B065C 46062200 */ add.s $f8, $f4, $f6 +/* 0E5190 7F0B0660 46129102 */ mul.s $f4, $f18, $f18 +/* 0E5194 7F0B0664 46048180 */ add.s $f6, $f16, $f4 +/* 0E5198 7F0B0668 4606403C */ c.lt.s $f8, $f6 +/* 0E519C 7F0B066C 00000000 */ nop +/* 0E51A0 7F0B0670 45000003 */ bc1f .L7F0B0680 +/* 0E51A4 7F0B0674 00000000 */ nop +/* 0E51A8 7F0B0678 03E00008 */ jr $ra +/* 0E51AC 7F0B067C 24020001 */ li $v0, 1 + +.L7F0B0680: +/* 0E51B0 7F0B0680 03E00008 */ jr $ra +/* 0E51B4 7F0B0684 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0688(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) { + f32 sp20; + f32 sp24; + s32 sp28; + s32 sp2C; + f32 temp_f0; + f32 temp_f2; + s32 temp_t7; + s32 phi_return; + + // Node 0 + temp_f0 = (arg0 - arg4); + temp_f2 = (arg1 - arg5); + sp24 = temp_f0; + sp20 = temp_f2; + sp2C = sub_GAME_7F0B05C0((arg2 - arg0), (arg3 - arg1), -temp_f0, -temp_f2); + temp_t7 = ((sub_GAME_7F0B05C0(sp1C, sp18, (arg6 - arg0), (arg7 - arg1)) * sp2C) < 1); + phi_return = temp_t7; + if (temp_t7 != 0) + { + // Node 1 + sp28 = sub_GAME_7F0B05C0((arg6 - arg4), (arg7 - arg5), sp24, sp20); + phi_return = ((sub_GAME_7F0B05C0(sp1C, sp18, (arg2 - arg4), (arg3 - arg5)) * sp28) < 1); + } + // Node 2 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0688 +/* 0E51B8 7F0B0688 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E51BC 7F0B068C C7B20058 */ lwc1 $f18, 0x58($sp) +/* 0E51C0 7F0B0690 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0E51C4 7F0B0694 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0E51C8 7F0B0698 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0E51CC 7F0B069C E7AE004C */ swc1 $f14, 0x4c($sp) +/* 0E51D0 7F0B06A0 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0E51D4 7F0B06A4 46125001 */ sub.s $f0, $f10, $f18 +/* 0E51D8 7F0B06A8 AFA60050 */ sw $a2, 0x50($sp) +/* 0E51DC 7F0B06AC C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E51E0 7F0B06B0 46104081 */ sub.s $f2, $f8, $f16 +/* 0E51E4 7F0B06B4 AFA70054 */ sw $a3, 0x54($sp) +/* 0E51E8 7F0B06B8 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0E51EC 7F0B06BC 460A9301 */ sub.s $f12, $f18, $f10 +/* 0E51F0 7F0B06C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E51F4 7F0B06C4 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0E51F8 7F0B06C8 46088381 */ sub.s $f14, $f16, $f8 +/* 0E51FC 7F0B06CC E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E5200 7F0B06D0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0E5204 7F0B06D4 46000207 */ neg.s $f8, $f0 +/* 0E5208 7F0B06D8 46001407 */ neg.s $f16, $f2 +/* 0E520C 7F0B06DC 44064000 */ mfc1 $a2, $f8 +/* 0E5210 7F0B06E0 44078000 */ mfc1 $a3, $f16 +/* 0E5214 7F0B06E4 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5218 7F0B06E8 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0E521C 7F0B06EC C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0E5220 7F0B06F0 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0E5224 7F0B06F4 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0E5228 7F0B06F8 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0E522C 7F0B06FC 46103481 */ sub.s $f18, $f6, $f16 +/* 0E5230 7F0B0700 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0E5234 7F0B0704 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 0E5238 7F0B0708 46045201 */ sub.s $f8, $f10, $f4 +/* 0E523C 7F0B070C 44069000 */ mfc1 $a2, $f18 +/* 0E5240 7F0B0710 AFA2002C */ sw $v0, 0x2c($sp) +/* 0E5244 7F0B0714 44074000 */ mfc1 $a3, $f8 +/* 0E5248 7F0B0718 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E524C 7F0B071C 00000000 */ nop +/* 0E5250 7F0B0720 8FAE002C */ lw $t6, 0x2c($sp) +/* 0E5254 7F0B0724 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0E5258 7F0B0728 C7B00058 */ lwc1 $f16, 0x58($sp) +/* 0E525C 7F0B072C 004E0019 */ multu $v0, $t6 +/* 0E5260 7F0B0730 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0E5264 7F0B0734 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0E5268 7F0B0738 00001012 */ mflo $v0 +/* 0E526C 7F0B073C 284F0001 */ slti $t7, $v0, 1 +/* 0E5270 7F0B0740 11E0001A */ beqz $t7, .L7F0B07AC +/* 0E5274 7F0B0744 01E01025 */ move $v0, $t7 +/* 0E5278 7F0B0748 46103301 */ sub.s $f12, $f6, $f16 +/* 0E527C 7F0B074C 8FA60024 */ lw $a2, 0x24($sp) +/* 0E5280 7F0B0750 8FA70020 */ lw $a3, 0x20($sp) +/* 0E5284 7F0B0754 460A9381 */ sub.s $f14, $f18, $f10 +/* 0E5288 7F0B0758 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0E528C 7F0B075C 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5290 7F0B0760 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0E5294 7F0B0764 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0E5298 7F0B0768 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0E529C 7F0B076C C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0E52A0 7F0B0770 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0E52A4 7F0B0774 46082181 */ sub.s $f6, $f4, $f8 +/* 0E52A8 7F0B0778 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0E52AC 7F0B077C C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 0E52B0 7F0B0780 46128281 */ sub.s $f10, $f16, $f18 +/* 0E52B4 7F0B0784 44063000 */ mfc1 $a2, $f6 +/* 0E52B8 7F0B0788 AFA20028 */ sw $v0, 0x28($sp) +/* 0E52BC 7F0B078C 44075000 */ mfc1 $a3, $f10 +/* 0E52C0 7F0B0790 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E52C4 7F0B0794 00000000 */ nop +/* 0E52C8 7F0B0798 8FB80028 */ lw $t8, 0x28($sp) +/* 0E52CC 7F0B079C 00580019 */ multu $v0, $t8 +/* 0E52D0 7F0B07A0 00001012 */ mflo $v0 +/* 0E52D4 7F0B07A4 28590001 */ slti $t9, $v0, 1 +/* 0E52D8 7F0B07A8 03201025 */ move $v0, $t9 +.L7F0B07AC: +/* 0E52DC 7F0B07AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E52E0 7F0B07B0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E52E4 7F0B07B4 03E00008 */ jr $ra +/* 0E52E8 7F0B07B8 00000000 */ nop +) +#endif + + + + + +#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; + + // Node 0 + temp_f2 = (arg1 - arg5); + temp_f0 = (arg0 - arg4); + sp44 = 1; + sp28 = temp_f0; + sp24 = temp_f2; + sp2C = sub_GAME_7F0B05C0((arg2 - arg0), (arg3 - arg1), -temp_f0, -temp_f2); + sp4C = (s32) (sub_GAME_7F0B05C0(sp20, sp1C, (arg6 - arg0), (arg7 - arg1)) * sp2C); + sp2C = sub_GAME_7F0B05C0((arg6 - arg4), (arg7 - arg5), sp28, sp24); + if (sp4C >= arg8) + { + // Node 1 + sp44 = 0; + } + // Node 2 + phi_a0 = sp44; + if ((sub_GAME_7F0B05C0(sp20, sp1C, (arg2 - arg4), (arg3 - arg5)) * sp2C) >= arg8) + { + // Node 3 + phi_a0 = 0; + } + // Node 4 + return phi_a0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B07BC +/* 0E52EC 7F0B07BC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0E52F0 7F0B07C0 E7AC0068 */ swc1 $f12, 0x68($sp) +/* 0E52F4 7F0B07C4 AFA60070 */ sw $a2, 0x70($sp) +/* 0E52F8 7F0B07C8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0E52FC 7F0B07CC C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0E5300 7F0B07D0 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 0E5304 7F0B07D4 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0E5308 7F0B07D8 46062301 */ sub.s $f12, $f4, $f6 +/* 0E530C 7F0B07DC C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0E5310 7F0B07E0 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E5314 7F0B07E4 AFA70074 */ sw $a3, 0x74($sp) +/* 0E5318 7F0B07E8 46045081 */ sub.s $f2, $f10, $f4 +/* 0E531C 7F0B07EC C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0E5320 7F0B07F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E5324 7F0B07F4 46103001 */ sub.s $f0, $f6, $f16 +/* 0E5328 7F0B07F8 240E0001 */ li $t6, 1 +/* 0E532C 7F0B07FC AFAE0044 */ sw $t6, 0x44($sp) +/* 0E5330 7F0B0800 460A4381 */ sub.s $f14, $f8, $f10 +/* 0E5334 7F0B0804 E7A00028 */ swc1 $f0, 0x28($sp) +/* 0E5338 7F0B0808 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0E533C 7F0B080C 46001207 */ neg.s $f8, $f2 +/* 0E5340 7F0B0810 46000487 */ neg.s $f18, $f0 +/* 0E5344 7F0B0814 44074000 */ mfc1 $a3, $f8 +/* 0E5348 7F0B0818 44069000 */ mfc1 $a2, $f18 +/* 0E534C 7F0B081C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0E5350 7F0B0820 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5354 7F0B0824 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0E5358 7F0B0828 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E535C 7F0B082C C7B00068 */ lwc1 $f16, 0x68($sp) +/* 0E5360 7F0B0830 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0E5364 7F0B0834 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0E5368 7F0B0838 46103481 */ sub.s $f18, $f6, $f16 +/* 0E536C 7F0B083C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0E5370 7F0B0840 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0E5374 7F0B0844 46045201 */ sub.s $f8, $f10, $f4 +/* 0E5378 7F0B0848 44069000 */ mfc1 $a2, $f18 +/* 0E537C 7F0B084C AFA2002C */ sw $v0, 0x2c($sp) +/* 0E5380 7F0B0850 44074000 */ mfc1 $a3, $f8 +/* 0E5384 7F0B0854 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5388 7F0B0858 00000000 */ nop +/* 0E538C 7F0B085C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0E5390 7F0B0860 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E5394 7F0B0864 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E5398 7F0B0868 004F0019 */ multu $v0, $t7 +/* 0E539C 7F0B086C C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0E53A0 7F0B0870 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0E53A4 7F0B0874 46103301 */ sub.s $f12, $f6, $f16 +/* 0E53A8 7F0B0878 8FA60028 */ lw $a2, 0x28($sp) +/* 0E53AC 7F0B087C 8FA70024 */ lw $a3, 0x24($sp) +/* 0E53B0 7F0B0880 460A9381 */ sub.s $f14, $f18, $f10 +/* 0E53B4 7F0B0884 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0E53B8 7F0B0888 0000C012 */ mflo $t8 +/* 0E53BC 7F0B088C AFB8004C */ sw $t8, 0x4c($sp) +/* 0E53C0 7F0B0890 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E53C4 7F0B0894 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0E53C8 7F0B0898 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0E53CC 7F0B089C C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0E53D0 7F0B08A0 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0E53D4 7F0B08A4 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0E53D8 7F0B08A8 46082181 */ sub.s $f6, $f4, $f8 +/* 0E53DC 7F0B08AC C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0E53E0 7F0B08B0 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0E53E4 7F0B08B4 46128281 */ sub.s $f10, $f16, $f18 +/* 0E53E8 7F0B08B8 44063000 */ mfc1 $a2, $f6 +/* 0E53EC 7F0B08BC AFA2002C */ sw $v0, 0x2c($sp) +/* 0E53F0 7F0B08C0 44075000 */ mfc1 $a3, $f10 +/* 0E53F4 7F0B08C4 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E53F8 7F0B08C8 00000000 */ nop +/* 0E53FC 7F0B08CC 8FA30088 */ lw $v1, 0x88($sp) +/* 0E5400 7F0B08D0 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E5404 7F0B08D4 0323082A */ slt $at, $t9, $v1 +/* 0E5408 7F0B08D8 54200003 */ bnezl $at, .L7F0B08E8 +/* 0E540C 7F0B08DC 8FA8002C */ lw $t0, 0x2c($sp) +/* 0E5410 7F0B08E0 AFA00044 */ sw $zero, 0x44($sp) +/* 0E5414 7F0B08E4 8FA8002C */ lw $t0, 0x2c($sp) +.L7F0B08E8: +/* 0E5418 7F0B08E8 8FA40044 */ lw $a0, 0x44($sp) +/* 0E541C 7F0B08EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E5420 7F0B08F0 00480019 */ multu $v0, $t0 +/* 0E5424 7F0B08F4 27BD0068 */ addiu $sp, $sp, 0x68 +/* 0E5428 7F0B08F8 00004812 */ mflo $t1 +/* 0E542C 7F0B08FC 0123082A */ slt $at, $t1, $v1 +/* 0E5430 7F0B0900 14200002 */ bnez $at, .L7F0B090C +/* 0E5434 7F0B0904 00000000 */ nop +/* 0E5438 7F0B0908 00002025 */ move $a0, $zero +.L7F0B090C: +/* 0E543C 7F0B090C 03E00008 */ jr $ra +/* 0E5440 7F0B0910 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0914(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0914 +/* 0E5444 7F0B0914 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0E5448 7F0B0918 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0E544C 7F0B091C 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E5450 7F0B0920 4485A000 */ mtc1 $a1, $f20 +/* 0E5454 7F0B0924 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E5458 7F0B0928 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 0E545C 7F0B092C 4486B000 */ mtc1 $a2, $f22 +/* 0E5460 7F0B0930 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E5464 7F0B0934 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 0E5468 7F0B0938 4487C000 */ mtc1 $a3, $f24 +/* 0E546C 7F0B093C 4600B582 */ mul.s $f22, $f22, $f0 +/* 0E5470 7F0B0940 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 0E5474 7F0B0944 C7BA00C8 */ lwc1 $f26, 0xc8($sp) +/* 0E5478 7F0B0948 4600C602 */ mul.s $f24, $f24, $f0 +/* 0E547C 7F0B094C AFBF0084 */ sw $ra, 0x84($sp) +/* 0E5480 7F0B0950 AFBE0080 */ sw $fp, 0x80($sp) +/* 0E5484 7F0B0954 4600D682 */ mul.s $f26, $f26, $f0 +/* 0E5488 7F0B0958 AFB7007C */ sw $s7, 0x7c($sp) +/* 0E548C 7F0B095C AFB60078 */ sw $s6, 0x78($sp) +/* 0E5490 7F0B0960 AFB50074 */ sw $s5, 0x74($sp) +/* 0E5494 7F0B0964 AFB40070 */ sw $s4, 0x70($sp) +/* 0E5498 7F0B0968 AFB3006C */ sw $s3, 0x6c($sp) +/* 0E549C 7F0B096C AFB20068 */ sw $s2, 0x68($sp) +/* 0E54A0 7F0B0970 AFB10064 */ sw $s1, 0x64($sp) +/* 0E54A4 7F0B0974 AFB00060 */ sw $s0, 0x60($sp) +/* 0E54A8 7F0B0978 F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 0E54AC 7F0B097C F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 0E54B0 7F0B0980 AFA400B8 */ sw $a0, 0xb8($sp) +/* 0E54B4 7F0B0984 8C820000 */ lw $v0, ($a0) +/* 0E54B8 7F0B0988 4616D701 */ sub.s $f28, $f26, $f22 +/* 0E54BC 7F0B098C 00807025 */ move $t6, $a0 +/* 0E54C0 7F0B0990 0000A825 */ move $s5, $zero +/* 0E54C4 7F0B0994 AFA0008C */ sw $zero, 0x8c($sp) +/* 0E54C8 7F0B0998 4600E707 */ neg.s $f28, $f28 +/* 0E54CC 7F0B099C 4614C781 */ sub.s $f30, $f24, $f20 +/* 0E54D0 7F0B09A0 00008825 */ move $s1, $zero +/* 0E54D4 7F0B09A4 0000A025 */ move $s4, $zero +/* 0E54D8 7F0B09A8 8FBE0098 */ lw $fp, 0x98($sp) +/* 0E54DC 7F0B09AC 00409825 */ move $s3, $v0 +/* 0E54E0 7F0B09B0 0040B025 */ move $s6, $v0 +/* 0E54E4 7F0B09B4 0040B825 */ move $s7, $v0 +.L7F0B09B8: +/* 0E54E8 7F0B09B8 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E54EC 7F0B09BC 02602025 */ move $a0, $s3 +/* 0E54F0 7F0B09C0 51E00005 */ beql $t7, $zero, .L7F0B09D8 +/* 0E54F4 7F0B09C4 86640006 */ lh $a0, 6($s3) +/* 0E54F8 7F0B09C8 02C02825 */ move $a1, $s6 +/* 0E54FC 7F0B09CC 01E0F809 */ jalr $t7 +/* 0E5500 7F0B09D0 8FA600D0 */ lw $a2, 0xd0($sp) +/* 0E5504 7F0B09D4 86640006 */ lh $a0, 6($s3) +.L7F0B09D8: +/* 0E5508 7F0B09D8 02608025 */ move $s0, $s3 +/* 0E550C 7F0B09DC 0004C303 */ sra $t8, $a0, 0xc +/* 0E5510 7F0B09E0 3319000F */ andi $t9, $t8, 0xf +/* 0E5514 7F0B09E4 1B200051 */ blez $t9, .L7F0B0B2C +/* 0E5518 7F0B09E8 03202025 */ move $a0, $t9 +.L7F0B09EC: +/* 0E551C 7F0B09EC 26320001 */ addiu $s2, $s1, 1 +/* 0E5520 7F0B09F0 0244001A */ div $zero, $s2, $a0 +/* 0E5524 7F0B09F4 00001810 */ mfhi $v1 +/* 0E5528 7F0B09F8 000358C0 */ sll $t3, $v1, 3 +/* 0E552C 7F0B09FC 026B1021 */ addu $v0, $s3, $t3 +/* 0E5530 7F0B0A00 8445000C */ lh $a1, 0xc($v0) +/* 0E5534 7F0B0A04 8608000C */ lh $t0, 0xc($s0) +/* 0E5538 7F0B0A08 84490008 */ lh $t1, 8($v0) +/* 0E553C 7F0B0A0C 860A0008 */ lh $t2, 8($s0) +/* 0E5540 7F0B0A10 00A86023 */ subu $t4, $a1, $t0 +/* 0E5544 7F0B0A14 448C3000 */ mtc1 $t4, $f6 +/* 0E5548 7F0B0A18 012A6823 */ subu $t5, $t1, $t2 +/* 0E554C 7F0B0A1C 448D8000 */ mtc1 $t5, $f16 +/* 0E5550 7F0B0A20 46803220 */ cvt.s.w $f8, $f6 +/* 0E5554 7F0B0A24 44802000 */ mtc1 $zero, $f4 +/* 0E5558 7F0B0A28 14800002 */ bnez $a0, .L7F0B0A34 +/* 0E555C 7F0B0A2C 00000000 */ nop +/* 0E5560 7F0B0A30 0007000D */ break 7 +.L7F0B0A34: +/* 0E5564 7F0B0A34 2401FFFF */ li $at, -1 +/* 0E5568 7F0B0A38 14810004 */ bne $a0, $at, .L7F0B0A4C +/* 0E556C 7F0B0A3C 3C018000 */ lui $at, 0x8000 +/* 0E5570 7F0B0A40 16410002 */ bne $s2, $at, .L7F0B0A4C +/* 0E5574 7F0B0A44 00000000 */ nop +/* 0E5578 7F0B0A48 0006000D */ break 6 +.L7F0B0A4C: +/* 0E557C 7F0B0A4C 468084A0 */ cvt.s.w $f18, $f16 +/* 0E5580 7F0B0A50 461E4282 */ mul.s $f10, $f8, $f30 +/* 0E5584 7F0B0A54 00000000 */ nop +/* 0E5588 7F0B0A58 4612E182 */ mul.s $f6, $f28, $f18 +/* 0E558C 7F0B0A5C 46065200 */ add.s $f8, $f10, $f6 +/* 0E5590 7F0B0A60 4604403E */ c.le.s $f8, $f4 +/* 0E5594 7F0B0A64 00000000 */ nop +/* 0E5598 7F0B0A68 45000028 */ bc1f .L7F0B0B0C +/* 0E559C 7F0B0A6C 00000000 */ nop +/* 0E55A0 7F0B0A70 448A8000 */ mtc1 $t2, $f16 +/* 0E55A4 7F0B0A74 44885000 */ mtc1 $t0, $f10 +/* 0E55A8 7F0B0A78 44892000 */ mtc1 $t1, $f4 +/* 0E55AC 7F0B0A7C 468084A0 */ cvt.s.w $f18, $f16 +/* 0E55B0 7F0B0A80 44858000 */ mtc1 $a1, $f16 +/* 0E55B4 7F0B0A84 9602000E */ lhu $v0, 0xe($s0) +/* 0E55B8 7F0B0A88 4406C000 */ mfc1 $a2, $f24 +/* 0E55BC 7F0B0A8C 4407D000 */ mfc1 $a3, $f26 +/* 0E55C0 7F0B0A90 468051A0 */ cvt.s.w $f6, $f10 +/* 0E55C4 7F0B0A94 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0E55C8 7F0B0A98 00027103 */ sra $t6, $v0, 4 +/* 0E55CC 7F0B0A9C 000E782B */ sltu $t7, $zero, $t6 +/* 0E55D0 7F0B0AA0 AFAF0020 */ sw $t7, 0x20($sp) +/* 0E55D4 7F0B0AA4 46802220 */ cvt.s.w $f8, $f4 +/* 0E55D8 7F0B0AA8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0E55DC 7F0B0AAC 4600A306 */ mov.s $f12, $f20 +/* 0E55E0 7F0B0AB0 4600B386 */ mov.s $f14, $f22 +/* 0E55E4 7F0B0AB4 468084A0 */ cvt.s.w $f18, $f16 +/* 0E55E8 7F0B0AB8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E55EC 7F0B0ABC 0FC2C1EF */ jal sub_GAME_7F0B07BC +/* 0E55F0 7F0B0AC0 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0E55F4 7F0B0AC4 50400012 */ beql $v0, $zero, .L7F0B0B10 +/* 0E55F8 7F0B0AC8 86640006 */ lh $a0, 6($s3) +/* 0E55FC 7F0B0ACC 9603000E */ lhu $v1, 0xe($s0) +/* 0E5600 7F0B0AD0 3C198004 */ lui $t9, %hi(base_ptr_connection_vals) +/* 0E5604 7F0B0AD4 8F390F58 */ lw $t9, %lo(base_ptr_connection_vals)($t9) +/* 0E5608 7F0B0AD8 0003C0C0 */ sll $t8, $v1, 3 +/* 0E560C 7F0B0ADC 26940001 */ addiu $s4, $s4, 1 +/* 0E5610 7F0B0AE0 03191021 */ addu $v0, $t8, $t9 +/* 0E5614 7F0B0AE4 12C20009 */ beq $s6, $v0, .L7F0B0B0C +/* 0E5618 7F0B0AE8 00000000 */ nop +/* 0E561C 7F0B0AEC 12E20007 */ beq $s7, $v0, .L7F0B0B0C +/* 0E5620 7F0B0AF0 00000000 */ nop +/* 0E5624 7F0B0AF4 00035903 */ sra $t3, $v1, 4 +/* 0E5628 7F0B0AF8 11600003 */ beqz $t3, .L7F0B0B08 +/* 0E562C 7F0B0AFC 0220F025 */ move $fp, $s1 +/* 0E5630 7F0B0B00 10000002 */ b .L7F0B0B0C +/* 0E5634 7F0B0B04 0040A825 */ move $s5, $v0 +.L7F0B0B08: +/* 0E5638 7F0B0B08 0000A825 */ move $s5, $zero +.L7F0B0B0C: +/* 0E563C 7F0B0B0C 86640006 */ lh $a0, 6($s3) +.L7F0B0B10: +/* 0E5640 7F0B0B10 02408825 */ move $s1, $s2 +/* 0E5644 7F0B0B14 26100008 */ addiu $s0, $s0, 8 +/* 0E5648 7F0B0B18 00046303 */ sra $t4, $a0, 0xc +/* 0E564C 7F0B0B1C 318D000F */ andi $t5, $t4, 0xf +/* 0E5650 7F0B0B20 024D082A */ slt $at, $s2, $t5 +/* 0E5654 7F0B0B24 1420FFB1 */ bnez $at, .L7F0B09EC +/* 0E5658 7F0B0B28 01A02025 */ move $a0, $t5 +.L7F0B0B2C: +/* 0E565C 7F0B0B2C 02C0B825 */ move $s7, $s6 +/* 0E5660 7F0B0B30 0260B025 */ move $s6, $s3 +/* 0E5664 7F0B0B34 02751026 */ xor $v0, $s3, $s5 +/* 0E5668 7F0B0B38 14400002 */ bnez $v0, .L7F0B0B44 +/* 0E566C 7F0B0B3C 02A09825 */ move $s3, $s5 +/* 0E5670 7F0B0B40 0000A025 */ move $s4, $zero +.L7F0B0B44: +/* 0E5674 7F0B0B44 16800003 */ bnez $s4, .L7F0B0B54 +/* 0E5678 7F0B0B48 8FAE008C */ lw $t6, 0x8c($sp) +/* 0E567C 7F0B0B4C 10000013 */ b .L7F0B0B9C +/* 0E5680 7F0B0B50 24020001 */ li $v0, 1 +.L7F0B0B54: +/* 0E5684 7F0B0B54 29C201F5 */ slti $v0, $t6, 0x1f5 +/* 0E5688 7F0B0B58 38420001 */ xori $v0, $v0, 1 +/* 0E568C 7F0B0B5C 25CF0001 */ addiu $t7, $t6, 1 +/* 0E5690 7F0B0B60 14400005 */ bnez $v0, .L7F0B0B78 +/* 0E5694 7F0B0B64 AFAF008C */ sw $t7, 0x8c($sp) +/* 0E5698 7F0B0B68 12A00003 */ beqz $s5, .L7F0B0B78 +/* 0E569C 7F0B0B6C 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E56A0 7F0B0B70 16800007 */ bnez $s4, .L7F0B0B90 +/* 0E56A4 7F0B0B74 00008825 */ move $s1, $zero +.L7F0B0B78: +/* 0E56A8 7F0B0B78 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E56AC 7F0B0B7C AC36B9E4 */ sw $s6, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E56B0 7F0B0B80 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E56B4 7F0B0B84 AC3EB9E8 */ sw $fp, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E56B8 7F0B0B88 10000004 */ b .L7F0B0B9C +/* 0E56BC 7F0B0B8C 00001025 */ move $v0, $zero +.L7F0B0B90: +/* 0E56C0 7F0B0B90 AF150000 */ sw $s5, ($t8) +/* 0E56C4 7F0B0B94 1000FF88 */ b .L7F0B09B8 +/* 0E56C8 7F0B0B98 0000A025 */ move $s4, $zero +.L7F0B0B9C: +/* 0E56CC 7F0B0B9C 8FBF0084 */ lw $ra, 0x84($sp) +/* 0E56D0 7F0B0BA0 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0E56D4 7F0B0BA4 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 0E56D8 7F0B0BA8 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 0E56DC 7F0B0BAC D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 0E56E0 7F0B0BB0 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 0E56E4 7F0B0BB4 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 0E56E8 7F0B0BB8 8FB00060 */ lw $s0, 0x60($sp) +/* 0E56EC 7F0B0BBC 8FB10064 */ lw $s1, 0x64($sp) +/* 0E56F0 7F0B0BC0 8FB20068 */ lw $s2, 0x68($sp) +/* 0E56F4 7F0B0BC4 8FB3006C */ lw $s3, 0x6c($sp) +/* 0E56F8 7F0B0BC8 8FB40070 */ lw $s4, 0x70($sp) +/* 0E56FC 7F0B0BCC 8FB50074 */ lw $s5, 0x74($sp) +/* 0E5700 7F0B0BD0 8FB60078 */ lw $s6, 0x78($sp) +/* 0E5704 7F0B0BD4 8FB7007C */ lw $s7, 0x7c($sp) +/* 0E5708 7F0B0BD8 8FBE0080 */ lw $fp, 0x80($sp) +/* 0E570C 7F0B0BDC 03E00008 */ jr $ra +/* 0E5710 7F0B0BE0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0BE4(s32 arg1, ? arg2, ? arg3, f32 arg4) { + sub_GAME_7F0B0914(arg1, arg2, arg1, arg2, arg4, 0, 0); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0BE4 +/* 0E5714 7F0B0BE4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E5718 7F0B0BE8 44856000 */ mtc1 $a1, $f12 +/* 0E571C 7F0B0BEC 44867000 */ mtc1 $a2, $f14 +/* 0E5720 7F0B0BF0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0E5724 7F0B0BF4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E5728 7F0B0BF8 44056000 */ mfc1 $a1, $f12 +/* 0E572C 7F0B0BFC 44067000 */ mfc1 $a2, $f14 +/* 0E5730 7F0B0C00 AFA70034 */ sw $a3, 0x34($sp) +/* 0E5734 7F0B0C04 AFA00014 */ sw $zero, 0x14($sp) +/* 0E5738 7F0B0C08 AFA00018 */ sw $zero, 0x18($sp) +/* 0E573C 7F0B0C0C 0FC2C245 */ jal sub_GAME_7F0B0914 +/* 0E5740 7F0B0C10 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E5744 7F0B0C14 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E5748 7F0B0C18 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E574C 7F0B0C1C 03E00008 */ jr $ra +/* 0E5750 7F0B0C20 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0C24(s32 arg1, ? arg2, ? arg3, f32 arg4, ?32 arg5, void *arg6, ?32 arg7) { + ?32 sp30; + ?32 sp34; + ?32 sp38; + ?32 sp3C; + + // Node 0 + sp34 = 0; + sp3C = -1; + sp30 = arg5; + sp38 = arg7; + *arg6 = sp34; + return sub_GAME_7F0B0914(arg1, arg2, arg1, arg2, arg4, &sub_GAME_7F0B0C98, &sp30); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0C24 +/* 0E5754 7F0B0C24 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E5758 7F0B0C28 44856000 */ mtc1 $a1, $f12 +/* 0E575C 7F0B0C2C 44867000 */ mtc1 $a2, $f14 +/* 0E5760 7F0B0C30 8FAE0054 */ lw $t6, 0x54($sp) +/* 0E5764 7F0B0C34 8FAF005C */ lw $t7, 0x5c($sp) +/* 0E5768 7F0B0C38 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0E576C 7F0B0C3C 3C197F0B */ lui $t9, %hi(sub_GAME_7F0B0C98) # $t9, 0x7f0b +/* 0E5770 7F0B0C40 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E5774 7F0B0C44 2418FFFF */ li $t8, -1 +/* 0E5778 7F0B0C48 27390C98 */ addiu $t9, %lo(sub_GAME_7F0B0C98) # addiu $t9, $t9, 0xc98 +/* 0E577C 7F0B0C4C 27A80030 */ addiu $t0, $sp, 0x30 +/* 0E5780 7F0B0C50 44056000 */ mfc1 $a1, $f12 +/* 0E5784 7F0B0C54 44067000 */ mfc1 $a2, $f14 +/* 0E5788 7F0B0C58 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E578C 7F0B0C5C AFA00034 */ sw $zero, 0x34($sp) +/* 0E5790 7F0B0C60 AFB8003C */ sw $t8, 0x3c($sp) +/* 0E5794 7F0B0C64 AFA80018 */ sw $t0, 0x18($sp) +/* 0E5798 7F0B0C68 AFB90014 */ sw $t9, 0x14($sp) +/* 0E579C 7F0B0C6C AFAE0030 */ sw $t6, 0x30($sp) +/* 0E57A0 7F0B0C70 AFAF0038 */ sw $t7, 0x38($sp) +/* 0E57A4 7F0B0C74 0FC2C245 */ jal sub_GAME_7F0B0914 +/* 0E57A8 7F0B0C78 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E57AC 7F0B0C7C 8FA90034 */ lw $t1, 0x34($sp) +/* 0E57B0 7F0B0C80 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E57B4 7F0B0C84 AD490000 */ sw $t1, ($t2) +/* 0E57B8 7F0B0C88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E57BC 7F0B0C8C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0E57C0 7F0B0C90 03E00008 */ jr $ra +/* 0E57C4 7F0B0C94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0C98(void *arg0, s32 arg1, void *arg2) { + // Node 0 + if (arg2->unkC != arg0->unk3) + { + // Node 1 + if (arg2->unk4 < arg2->unk8) + { + // Node 2 + **arg2 = (s32) arg0->unk3; + arg2->unkC = (s32) arg0->unk3; + *arg2 = (void *) (*arg2 + 4); + arg2->unk4 = (s32) (arg2->unk4 + 1); + } + } + // Node 3 + return arg0->unk3; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0C98 +/* 0E57C8 7F0B0C98 AFA50004 */ sw $a1, 4($sp) +/* 0E57CC 7F0B0C9C 8CCE000C */ lw $t6, 0xc($a2) +/* 0E57D0 7F0B0CA0 90820003 */ lbu $v0, 3($a0) +/* 0E57D4 7F0B0CA4 11C2000F */ beq $t6, $v0, .L7F0B0CE4 +/* 0E57D8 7F0B0CA8 00000000 */ nop +/* 0E57DC 7F0B0CAC 8CCF0004 */ lw $t7, 4($a2) +/* 0E57E0 7F0B0CB0 8CD80008 */ lw $t8, 8($a2) +/* 0E57E4 7F0B0CB4 01F8082A */ slt $at, $t7, $t8 +/* 0E57E8 7F0B0CB8 1020000A */ beqz $at, .L7F0B0CE4 +/* 0E57EC 7F0B0CBC 00000000 */ nop +/* 0E57F0 7F0B0CC0 8CD90000 */ lw $t9, ($a2) +/* 0E57F4 7F0B0CC4 AF220000 */ sw $v0, ($t9) +/* 0E57F8 7F0B0CC8 8CC80000 */ lw $t0, ($a2) +/* 0E57FC 7F0B0CCC 8CCA0004 */ lw $t2, 4($a2) +/* 0E5800 7F0B0CD0 ACC2000C */ sw $v0, 0xc($a2) +/* 0E5804 7F0B0CD4 25090004 */ addiu $t1, $t0, 4 +/* 0E5808 7F0B0CD8 254B0001 */ addiu $t3, $t2, 1 +/* 0E580C 7F0B0CDC ACC90000 */ sw $t1, ($a2) +/* 0E5810 7F0B0CE0 ACCB0004 */ sw $t3, 4($a2) +.L7F0B0CE4: +/* 0E5814 7F0B0CE4 03E00008 */ jr $ra +/* 0E5818 7F0B0CE8 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0B0CEC(void) { + sub_GAME_7F0B0C98(); +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0D0C(void *arg0, s32 arg1, ? arg2, void *arg3, ? arg4, f32 arg5, void *arg6, s32 arg7) { + s32 sp40; + void *sp44; + void *phi_v0; + + // Node 0 + sp40 = 0; + if (*arg3 != 0) + { + // Node 1 + if (arg0->unk3 == *arg3->unk3) + { + // Node 2 + *arg6 = (s32) arg0->unk3; + return sp40; + } + // Node 3 + if (sub_GAME_7F0B8FD0((arg0->unk3 & 0xff), (*arg3->unk3 & 0xff), arg0->unk3, *arg3->unk3) != 0) + { + // Node 4 + *arg6 = (s32) arg0->unk3; + arg6->unk4 = (s32) *arg3->unk3; + return sp40; + } + } + // Node 5 + if (sub_GAME_7F0B0C24(&sp44, arg1, arg2, arg4, arg5, arg6, &sp40, arg7) == 0) + { + // Node 6 + return sp40; + } + // Node 7 + if (arg7 < sp40) + { + // Node 8 + sp40 = arg7; + } + // Node 9 + phi_v0 = *arg3; + if (*arg3 == 0) + { + // Node 10 + *arg3 = sp44; + phi_v0 = sp44; + } + // Node 11 + if (sp44 == phi_v0) + { + // Node 13 + // Node 14 + return sp40; + } + // Node 12 + return sp40; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0D0C +/* 0E583C 7F0B0D0C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E5840 7F0B0D10 AFBF002C */ sw $ra, 0x2c($sp) +/* 0E5844 7F0B0D14 AFB00028 */ sw $s0, 0x28($sp) +/* 0E5848 7F0B0D18 AFA40048 */ sw $a0, 0x48($sp) +/* 0E584C 7F0B0D1C AFA5004C */ sw $a1, 0x4c($sp) +/* 0E5850 7F0B0D20 AFA60050 */ sw $a2, 0x50($sp) +/* 0E5854 7F0B0D24 AFA40044 */ sw $a0, 0x44($sp) +/* 0E5858 7F0B0D28 AFA00040 */ sw $zero, 0x40($sp) +/* 0E585C 7F0B0D2C 8CE20000 */ lw $v0, ($a3) +/* 0E5860 7F0B0D30 00E08025 */ move $s0, $a3 +/* 0E5864 7F0B0D34 50400016 */ beql $v0, $zero, .L7F0B0D90 +/* 0E5868 7F0B0D38 8FA30060 */ lw $v1, 0x60($sp) +/* 0E586C 7F0B0D3C 90860003 */ lbu $a2, 3($a0) +/* 0E5870 7F0B0D40 90470003 */ lbu $a3, 3($v0) +/* 0E5874 7F0B0D44 8FA30060 */ lw $v1, 0x60($sp) +/* 0E5878 7F0B0D48 24020001 */ li $v0, 1 +/* 0E587C 7F0B0D4C 14C70003 */ bne $a2, $a3, .L7F0B0D5C +/* 0E5880 7F0B0D50 30C400FF */ andi $a0, $a2, 0xff +/* 0E5884 7F0B0D54 1000002E */ b .L7F0B0E10 +/* 0E5888 7F0B0D58 AC660000 */ sw $a2, ($v1) +.L7F0B0D5C: +/* 0E588C 7F0B0D5C 0FC2E3F4 */ jal sub_GAME_7F0B8FD0 +/* 0E5890 7F0B0D60 30E500FF */ andi $a1, $a3, 0xff +/* 0E5894 7F0B0D64 10400009 */ beqz $v0, .L7F0B0D8C +/* 0E5898 7F0B0D68 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E589C 7F0B0D6C 8FA30060 */ lw $v1, 0x60($sp) +/* 0E58A0 7F0B0D70 91F80003 */ lbu $t8, 3($t7) +/* 0E58A4 7F0B0D74 24020002 */ li $v0, 2 +/* 0E58A8 7F0B0D78 AC780000 */ sw $t8, ($v1) +/* 0E58AC 7F0B0D7C 8E190000 */ lw $t9, ($s0) +/* 0E58B0 7F0B0D80 93280003 */ lbu $t0, 3($t9) +/* 0E58B4 7F0B0D84 10000022 */ b .L7F0B0E10 +/* 0E58B8 7F0B0D88 AC680004 */ sw $t0, 4($v1) +.L7F0B0D8C: +/* 0E58BC 7F0B0D8C 8FA30060 */ lw $v1, 0x60($sp) +.L7F0B0D90: +/* 0E58C0 7F0B0D90 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0E58C4 7F0B0D94 8FAA0064 */ lw $t2, 0x64($sp) +/* 0E58C8 7F0B0D98 27A90040 */ addiu $t1, $sp, 0x40 +/* 0E58CC 7F0B0D9C AFA90018 */ sw $t1, 0x18($sp) +/* 0E58D0 7F0B0DA0 27A40044 */ addiu $a0, $sp, 0x44 +/* 0E58D4 7F0B0DA4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0E58D8 7F0B0DA8 8FA60050 */ lw $a2, 0x50($sp) +/* 0E58DC 7F0B0DAC 8FA70058 */ lw $a3, 0x58($sp) +/* 0E58E0 7F0B0DB0 AFA30014 */ sw $v1, 0x14($sp) +/* 0E58E4 7F0B0DB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E58E8 7F0B0DB8 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E58EC 7F0B0DBC AFAA001C */ sw $t2, 0x1c($sp) +/* 0E58F0 7F0B0DC0 14400003 */ bnez $v0, .L7F0B0DD0 +/* 0E58F4 7F0B0DC4 8FA30064 */ lw $v1, 0x64($sp) +/* 0E58F8 7F0B0DC8 10000011 */ b .L7F0B0E10 +/* 0E58FC 7F0B0DCC 00001025 */ move $v0, $zero +.L7F0B0DD0: +/* 0E5900 7F0B0DD0 8FAB0040 */ lw $t3, 0x40($sp) +/* 0E5904 7F0B0DD4 006B082A */ slt $at, $v1, $t3 +/* 0E5908 7F0B0DD8 50200003 */ beql $at, $zero, .L7F0B0DE8 +/* 0E590C 7F0B0DDC 8E020000 */ lw $v0, ($s0) +/* 0E5910 7F0B0DE0 AFA30040 */ sw $v1, 0x40($sp) +/* 0E5914 7F0B0DE4 8E020000 */ lw $v0, ($s0) +.L7F0B0DE8: +/* 0E5918 7F0B0DE8 54400004 */ bnezl $v0, .L7F0B0DFC +/* 0E591C 7F0B0DEC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0E5920 7F0B0DF0 8FA20044 */ lw $v0, 0x44($sp) +/* 0E5924 7F0B0DF4 AE020000 */ sw $v0, ($s0) +/* 0E5928 7F0B0DF8 8FAD0044 */ lw $t5, 0x44($sp) +.L7F0B0DFC: +/* 0E592C 7F0B0DFC 51A20004 */ beql $t5, $v0, .L7F0B0E10 +/* 0E5930 7F0B0E00 8FA20040 */ lw $v0, 0x40($sp) +/* 0E5934 7F0B0E04 10000002 */ b .L7F0B0E10 +/* 0E5938 7F0B0E08 00001025 */ move $v0, $zero +/* 0E593C 7F0B0E0C 8FA20040 */ lw $v0, 0x40($sp) +.L7F0B0E10: +/* 0E5940 7F0B0E10 8FBF002C */ lw $ra, 0x2c($sp) +/* 0E5944 7F0B0E14 8FB00028 */ lw $s0, 0x28($sp) +/* 0E5948 7F0B0E18 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E594C 7F0B0E1C 03E00008 */ jr $ra +/* 0E5950 7F0B0E20 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0E24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0E24 +/* 0E5954 7F0B0E24 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 0E5958 7F0B0E28 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0E595C 7F0B0E2C C7A6017C */ lwc1 $f6, 0x17c($sp) +/* 0E5960 7F0B0E30 F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E5964 7F0B0E34 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E5968 7F0B0E38 4604303E */ c.le.s $f6, $f4 +/* 0E596C 7F0B0E3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5970 7F0B0E40 4487C000 */ mtc1 $a3, $f24 +/* 0E5974 7F0B0E44 AFB00058 */ sw $s0, 0x58($sp) +/* 0E5978 7F0B0E48 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E597C 7F0B0E4C 44856000 */ mtc1 $a1, $f12 +/* 0E5980 7F0B0E50 44867000 */ mtc1 $a2, $f14 +/* 0E5984 7F0B0E54 4481E000 */ mtc1 $at, $f28 +/* 0E5988 7F0B0E58 C7BA0170 */ lwc1 $f26, 0x170($sp) +/* 0E598C 7F0B0E5C 27B000D0 */ addiu $s0, $sp, 0xd0 +/* 0E5990 7F0B0E60 AFBF007C */ sw $ra, 0x7c($sp) +/* 0E5994 7F0B0E64 AFBE0078 */ sw $fp, 0x78($sp) +/* 0E5998 7F0B0E68 AFB70074 */ sw $s7, 0x74($sp) +/* 0E599C 7F0B0E6C AFB60070 */ sw $s6, 0x70($sp) +/* 0E59A0 7F0B0E70 AFB5006C */ sw $s5, 0x6c($sp) +/* 0E59A4 7F0B0E74 AFB40068 */ sw $s4, 0x68($sp) +/* 0E59A8 7F0B0E78 AFB30064 */ sw $s3, 0x64($sp) +/* 0E59AC 7F0B0E7C AFB20060 */ sw $s2, 0x60($sp) +/* 0E59B0 7F0B0E80 AFB1005C */ sw $s1, 0x5c($sp) +/* 0E59B4 7F0B0E84 F7BE0050 */ sdc1 $f30, 0x50($sp) +/* 0E59B8 7F0B0E88 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E59BC 7F0B0E8C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E59C0 7F0B0E90 AFA40160 */ sw $a0, 0x160($sp) +/* 0E59C4 7F0B0E94 AFA00124 */ sw $zero, 0x124($sp) +/* 0E59C8 7F0B0E98 45000002 */ bc1f .L7F0B0EA4 +/* 0E59CC 7F0B0E9C 00007025 */ move $t6, $zero +/* 0E59D0 7F0B0EA0 240E0001 */ li $t6, 1 +.L7F0B0EA4: +/* 0E59D4 7F0B0EA4 8FAF0160 */ lw $t7, 0x160($sp) +/* 0E59D8 7F0B0EA8 AFAE00CC */ sw $t6, 0xcc($sp) +/* 0E59DC 7F0B0EAC 44056000 */ mfc1 $a1, $f12 +/* 0E59E0 7F0B0EB0 8DF80000 */ lw $t8, ($t7) +/* 0E59E4 7F0B0EB4 44067000 */ mfc1 $a2, $f14 +/* 0E59E8 7F0B0EB8 4407C000 */ mfc1 $a3, $f24 +/* 0E59EC 7F0B0EBC 27B90124 */ addiu $t9, $sp, 0x124 +/* 0E59F0 7F0B0EC0 240B0014 */ li $t3, 20 +/* 0E59F4 7F0B0EC4 0000A825 */ move $s5, $zero +/* 0E59F8 7F0B0EC8 E7AC014C */ swc1 $f12, 0x14c($sp) +/* 0E59FC 7F0B0ECC E7AE0150 */ swc1 $f14, 0x150($sp) +/* 0E5A00 7F0B0ED0 E7B80144 */ swc1 $f24, 0x144($sp) +/* 0E5A04 7F0B0ED4 E7BA0148 */ swc1 $f26, 0x148($sp) +/* 0E5A08 7F0B0ED8 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E5A0C 7F0B0EDC AFB90018 */ sw $t9, 0x18($sp) +/* 0E5A10 7F0B0EE0 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0E5A14 7F0B0EE4 E7AC0164 */ swc1 $f12, 0x164($sp) +/* 0E5A18 7F0B0EE8 AFB00014 */ sw $s0, 0x14($sp) +/* 0E5A1C 7F0B0EEC E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E5A20 7F0B0EF0 27A40154 */ addiu $a0, $sp, 0x154 +/* 0E5A24 7F0B0EF4 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E5A28 7F0B0EF8 AFB80154 */ sw $t8, 0x154($sp) +/* 0E5A2C 7F0B0EFC 8FAC0124 */ lw $t4, 0x124($sp) +/* 0E5A30 7F0B0F00 3C078008 */ lui $a3, %hi(flt_CODE_bss_8007B9F8) +/* 0E5A34 7F0B0F04 AFA20158 */ sw $v0, 0x158($sp) +/* 0E5A38 7F0B0F08 29810015 */ slti $at, $t4, 0x15 +/* 0E5A3C 7F0B0F0C 14200003 */ bnez $at, .L7F0B0F1C +/* 0E5A40 7F0B0F10 24E7B9F8 */ addiu $a3, %lo(flt_CODE_bss_8007B9F8) # addiu $a3, $a3, -0x4608 +/* 0E5A44 7F0B0F14 240D0014 */ li $t5, 20 +/* 0E5A48 7F0B0F18 AFAD0124 */ sw $t5, 0x124($sp) +.L7F0B0F1C: +/* 0E5A4C 7F0B0F1C 1440003B */ bnez $v0, .L7F0B100C +/* 0E5A50 7F0B0F20 3C1E8008 */ lui $fp, %hi(flt_CODE_bss_8007B9F0) +/* 0E5A54 7F0B0F24 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B9E4) +/* 0E5A58 7F0B0F28 8C42B9E4 */ lw $v0, %lo(dword_CODE_bss_8007B9E4)($v0) +/* 0E5A5C 7F0B0F2C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B9E8) +/* 0E5A60 7F0B0F30 8C63B9E8 */ lw $v1, %lo(dword_CODE_bss_8007B9E8)($v1) +/* 0E5A64 7F0B0F34 844F0006 */ lh $t7, 6($v0) +/* 0E5A68 7F0B0F38 240B0001 */ li $t3, 1 +/* 0E5A6C 7F0B0F3C 246E0001 */ addiu $t6, $v1, 1 +/* 0E5A70 7F0B0F40 000FC303 */ sra $t8, $t7, 0xc +/* 0E5A74 7F0B0F44 3319000F */ andi $t9, $t8, 0xf +/* 0E5A78 7F0B0F48 01D9001A */ div $zero, $t6, $t9 +/* 0E5A7C 7F0B0F4C 000360C0 */ sll $t4, $v1, 3 +/* 0E5A80 7F0B0F50 004C4021 */ addu $t0, $v0, $t4 +/* 0E5A84 7F0B0F54 27DEB9F0 */ addiu $fp, %lo(flt_CODE_bss_8007B9F0) # addiu $fp, $fp, -0x4610 +/* 0E5A88 7F0B0F58 17200002 */ bnez $t9, .L7F0B0F64 +/* 0E5A8C 7F0B0F5C 00000000 */ nop +/* 0E5A90 7F0B0F60 0007000D */ break 7 +.L7F0B0F64: +/* 0E5A94 7F0B0F64 2401FFFF */ li $at, -1 +/* 0E5A98 7F0B0F68 17210004 */ bne $t9, $at, .L7F0B0F7C +/* 0E5A9C 7F0B0F6C 3C018000 */ lui $at, 0x8000 +/* 0E5AA0 7F0B0F70 15C10002 */ bne $t6, $at, .L7F0B0F7C +/* 0E5AA4 7F0B0F74 00000000 */ nop +/* 0E5AA8 7F0B0F78 0006000D */ break 6 +.L7F0B0F7C: +/* 0E5AAC 7F0B0F7C 3C018004 */ lui $at, %hi(D_800413BC) +/* 0E5AB0 7F0B0F80 AC2B13BC */ sw $t3, %lo(D_800413BC)($at) +/* 0E5AB4 7F0B0F84 850D0008 */ lh $t5, 8($t0) +/* 0E5AB8 7F0B0F88 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E5ABC 7F0B0F8C C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E5AC0 7F0B0F90 448D4000 */ mtc1 $t5, $f8 +/* 0E5AC4 7F0B0F94 00005010 */ mfhi $t2 +/* 0E5AC8 7F0B0F98 000AC0C0 */ sll $t8, $t2, 3 +/* 0E5ACC 7F0B0F9C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E5AD0 7F0B0FA0 00584821 */ addu $t1, $v0, $t8 +/* 0E5AD4 7F0B0FA4 03C03025 */ move $a2, $fp +/* 0E5AD8 7F0B0FA8 27A4014C */ addiu $a0, $sp, 0x14c +/* 0E5ADC 7F0B0FAC 27A50144 */ addiu $a1, $sp, 0x144 +/* 0E5AE0 7F0B0FB0 46005482 */ mul.s $f18, $f10, $f0 +/* 0E5AE4 7F0B0FB4 E7D20000 */ swc1 $f18, ($fp) +/* 0E5AE8 7F0B0FB8 850F000C */ lh $t7, 0xc($t0) +/* 0E5AEC 7F0B0FBC 448F2000 */ mtc1 $t7, $f4 +/* 0E5AF0 7F0B0FC0 00000000 */ nop +/* 0E5AF4 7F0B0FC4 468021A0 */ cvt.s.w $f6, $f4 +/* 0E5AF8 7F0B0FC8 46003202 */ mul.s $f8, $f6, $f0 +/* 0E5AFC 7F0B0FCC E7C80004 */ swc1 $f8, 4($fp) +/* 0E5B00 7F0B0FD0 852E0008 */ lh $t6, 8($t1) +/* 0E5B04 7F0B0FD4 448E5000 */ mtc1 $t6, $f10 +/* 0E5B08 7F0B0FD8 00000000 */ nop +/* 0E5B0C 7F0B0FDC 468054A0 */ cvt.s.w $f18, $f10 +/* 0E5B10 7F0B0FE0 46009102 */ mul.s $f4, $f18, $f0 +/* 0E5B14 7F0B0FE4 E4E40000 */ swc1 $f4, ($a3) +/* 0E5B18 7F0B0FE8 8539000C */ lh $t9, 0xc($t1) +/* 0E5B1C 7F0B0FEC 44993000 */ mtc1 $t9, $f6 +/* 0E5B20 7F0B0FF0 00000000 */ nop +/* 0E5B24 7F0B0FF4 46803220 */ cvt.s.w $f8, $f6 +/* 0E5B28 7F0B0FF8 46004282 */ mul.s $f10, $f8, $f0 +/* 0E5B2C 7F0B0FFC 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E5B30 7F0B1000 E4EA0004 */ swc1 $f10, 4($a3) +/* 0E5B34 7F0B1004 10000003 */ b .L7F0B1014 +/* 0E5B38 7F0B1008 46000706 */ mov.s $f28, $f0 +.L7F0B100C: +/* 0E5B3C 7F0B100C 3C1E8008 */ lui $fp, %hi(flt_CODE_bss_8007B9F0) +/* 0E5B40 7F0B1010 27DEB9F0 */ addiu $fp, %lo(flt_CODE_bss_8007B9F0) # addiu $fp, $fp, -0x4610 +.L7F0B1014: +/* 0E5B44 7F0B1014 8FAB0174 */ lw $t3, 0x174($sp) +/* 0E5B48 7F0B1018 3C178008 */ lui $s7, %hi(dword_CODE_bss_8007BA04) +/* 0E5B4C 7F0B101C 26F7BA04 */ addiu $s7, %lo(dword_CODE_bss_8007BA04) # addiu $s7, $s7, -0x45fc +/* 0E5B50 7F0B1020 116000CF */ beqz $t3, .L7F0B1360 +/* 0E5B54 7F0B1024 AEE00000 */ sw $zero, ($s7) +/* 0E5B58 7F0B1028 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E5B5C 7F0B102C 240CFFFF */ li $t4, -1 +/* 0E5B60 7F0B1030 02002025 */ move $a0, $s0 +/* 0E5B64 7F0B1034 000D7880 */ sll $t7, $t5, 2 +/* 0E5B68 7F0B1038 020FC021 */ addu $t8, $s0, $t7 +/* 0E5B6C 7F0B103C 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E5B70 7F0B1040 AF0C0000 */ sw $t4, ($t8) +/* 0E5B74 7F0B1044 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E5B78 7F0B1048 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E5B7C 7F0B104C 27B4012C */ addiu $s4, $sp, 0x12c +/* 0E5B80 7F0B1050 27B30134 */ addiu $s3, $sp, 0x134 +/* 0E5B84 7F0B1054 84620000 */ lh $v0, ($v1) +/* 0E5B88 7F0B1058 044200C2 */ bltzl $v0, .L7F0B1364 +/* 0E5B8C 7F0B105C 8FAC0154 */ lw $t4, 0x154($sp) +/* 0E5B90 7F0B1060 AFA300B8 */ sw $v1, 0xb8($sp) +/* 0E5B94 7F0B1064 C7BE00C4 */ lwc1 $f30, 0xc4($sp) +.L7F0B1068: +/* 0E5B98 7F0B1068 00027080 */ sll $t6, $v0, 2 +/* 0E5B9C 7F0B106C 01C27023 */ subu $t6, $t6, $v0 +/* 0E5BA0 7F0B1070 000E7080 */ sll $t6, $t6, 2 +/* 0E5BA4 7F0B1074 01C27021 */ addu $t6, $t6, $v0 +/* 0E5BA8 7F0B1078 3C198007 */ lui $t9, %hi(pos_data_entry) +/* 0E5BAC 7F0B107C 27399C38 */ addiu $t9, %lo(pos_data_entry) # addiu $t9, $t9, -0x63c8 +/* 0E5BB0 7F0B1080 000E7080 */ sll $t6, $t6, 2 +/* 0E5BB4 7F0B1084 01D9B021 */ addu $s6, $t6, $t9 +/* 0E5BB8 7F0B1088 02C02025 */ move $a0, $s6 +/* 0E5BBC 7F0B108C 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E5BC0 7F0B1090 8FA50174 */ lw $a1, 0x174($sp) +/* 0E5BC4 7F0B1094 104000AB */ beqz $v0, .L7F0B1344 +/* 0E5BC8 7F0B1098 C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5BCC 7F0B109C 27AB00A0 */ addiu $t3, $sp, 0xa0 +/* 0E5BD0 7F0B10A0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E5BD4 7F0B10A4 02C02025 */ move $a0, $s6 +/* 0E5BD8 7F0B10A8 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0E5BDC 7F0B10AC 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0E5BE0 7F0B10B0 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0E5BE4 7F0B10B4 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0E5BE8 7F0B10B8 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5BEC 7F0B10BC 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0E5BF0 7F0B10C0 C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5BF4 7F0B10C4 584000A0 */ blezl $v0, .L7F0B1348 +/* 0E5BF8 7F0B10C8 8FA300B8 */ lw $v1, 0xb8($sp) +/* 0E5BFC 7F0B10CC 1840009D */ blez $v0, .L7F0B1344 +/* 0E5C00 7F0B10D0 00002825 */ move $a1, $zero +/* 0E5C04 7F0B10D4 00008825 */ move $s1, $zero +/* 0E5C08 7F0B10D8 8FAD00B0 */ lw $t5, 0xb0($sp) +.L7F0B10DC: +/* 0E5C0C 7F0B10DC 24B20001 */ addiu $s2, $a1, 1 +/* 0E5C10 7F0B10E0 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E5C14 7F0B10E4 024D001A */ div $zero, $s2, $t5 +/* 0E5C18 7F0B10E8 01F11821 */ addu $v1, $t7, $s1 +/* 0E5C1C 7F0B10EC C4720000 */ lwc1 $f18, ($v1) +/* 0E5C20 7F0B10F0 00001010 */ mfhi $v0 +/* 0E5C24 7F0B10F4 000260C0 */ sll $t4, $v0, 3 +/* 0E5C28 7F0B10F8 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0E5C2C 7F0B10FC C4640004 */ lwc1 $f4, 4($v1) +/* 0E5C30 7F0B1100 01EC2021 */ addu $a0, $t7, $t4 +/* 0E5C34 7F0B1104 4406C000 */ mfc1 $a2, $f24 +/* 0E5C38 7F0B1108 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0E5C3C 7F0B110C C4860000 */ lwc1 $f6, ($a0) +/* 0E5C40 7F0B1110 4407D000 */ mfc1 $a3, $f26 +/* 0E5C44 7F0B1114 15A00002 */ bnez $t5, .L7F0B1120 +/* 0E5C48 7F0B1118 00000000 */ nop +/* 0E5C4C 7F0B111C 0007000D */ break 7 +.L7F0B1120: +/* 0E5C50 7F0B1120 2401FFFF */ li $at, -1 +/* 0E5C54 7F0B1124 15A10004 */ bne $t5, $at, .L7F0B1138 +/* 0E5C58 7F0B1128 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0E5C5C 7F0B112C 16410002 */ bne $s2, $at, .L7F0B1138 +/* 0E5C60 7F0B1130 00000000 */ nop +/* 0E5C64 7F0B1134 0006000D */ break 6 +.L7F0B1138: +/* 0E5C68 7F0B1138 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E5C6C 7F0B113C C4880004 */ lwc1 $f8, 4($a0) +/* 0E5C70 7F0B1140 00408025 */ move $s0, $v0 +/* 0E5C74 7F0B1144 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5C78 7F0B1148 C7AC0164 */ lwc1 $f12, 0x164($sp) +/* 0E5C7C 7F0B114C C7AE0168 */ lwc1 $f14, 0x168($sp) +/* 0E5C80 7F0B1150 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0E5C84 7F0B1154 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0E5C88 7F0B1158 10400074 */ beqz $v0, .L7F0B132C +/* 0E5C8C 7F0B115C C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5C90 7F0B1160 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0E5C94 7F0B1164 001070C0 */ sll $t6, $s0, 3 +/* 0E5C98 7F0B1168 27A4014C */ addiu $a0, $sp, 0x14c +/* 0E5C9C 7F0B116C 03111821 */ addu $v1, $t8, $s1 +/* 0E5CA0 7F0B1170 C46A0000 */ lwc1 $f10, ($v1) +/* 0E5CA4 7F0B1174 030E1021 */ addu $v0, $t8, $t6 +/* 0E5CA8 7F0B1178 27A50144 */ addiu $a1, $sp, 0x144 +/* 0E5CAC 7F0B117C E7AA0134 */ swc1 $f10, 0x134($sp) +/* 0E5CB0 7F0B1180 C4720004 */ lwc1 $f18, 4($v1) +/* 0E5CB4 7F0B1184 02603025 */ move $a2, $s3 +/* 0E5CB8 7F0B1188 02803825 */ move $a3, $s4 +/* 0E5CBC 7F0B118C E7B20138 */ swc1 $f18, 0x138($sp) +/* 0E5CC0 7F0B1190 C4440000 */ lwc1 $f4, ($v0) +/* 0E5CC4 7F0B1194 E7A4012C */ swc1 $f4, 0x12c($sp) +/* 0E5CC8 7F0B1198 C4460004 */ lwc1 $f6, 4($v0) +/* 0E5CCC 7F0B119C E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5CD0 7F0B11A0 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E5CD4 7F0B11A4 E7A60130 */ swc1 $f6, 0x130($sp) +/* 0E5CD8 7F0B11A8 461C003C */ c.lt.s $f0, $f28 +/* 0E5CDC 7F0B11AC C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5CE0 7F0B11B0 46000586 */ mov.s $f22, $f0 +/* 0E5CE4 7F0B11B4 4502005E */ bc1fl .L7F0B1330 +/* 0E5CE8 7F0B11B8 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0E5CEC 7F0B11BC 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E5CF0 7F0B11C0 24100001 */ li $s0, 1 +/* 0E5CF4 7F0B11C4 13200043 */ beqz $t9, .L7F0B12D4 +/* 0E5CF8 7F0B11C8 00000000 */ nop +/* 0E5CFC 7F0B11CC 16A00030 */ bnez $s5, .L7F0B1290 +/* 0E5D00 7F0B11D0 C7A80180 */ lwc1 $f8, 0x180($sp) +/* 0E5D04 7F0B11D4 C7AA0184 */ lwc1 $f10, 0x184($sp) +/* 0E5D08 7F0B11D8 24150001 */ li $s5, 1 +/* 0E5D0C 7F0B11DC C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0E5D10 7F0B11E0 4608503E */ c.le.s $f10, $f8 +/* 0E5D14 7F0B11E4 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 0E5D18 7F0B11E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5D1C 7F0B11EC 45020005 */ bc1fl .L7F0B1204 +/* 0E5D20 7F0B11F0 44813000 */ mtc1 $at, $f6 +/* 0E5D24 7F0B11F4 46124781 */ sub.s $f30, $f8, $f18 +/* 0E5D28 7F0B11F8 10000025 */ b .L7F0B1290 +/* 0E5D2C 7F0B11FC 46045401 */ sub.s $f16, $f10, $f4 +/* 0E5D30 7F0B1200 44813000 */ mtc1 $at, $f6 +.L7F0B1204: +/* 0E5D34 7F0B1204 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5D38 7F0B1208 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5D3C 7F0B120C 4606E03C */ c.lt.s $f28, $f6 +/* 0E5D40 7F0B1210 00000000 */ nop +/* 0E5D44 7F0B1214 45020009 */ bc1fl .L7F0B123C +/* 0E5D48 7F0B1218 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5D4C 7F0B121C 4600C601 */ sub.s $f24, $f24, $f0 +/* 0E5D50 7F0B1220 4602D681 */ sub.s $f26, $f26, $f2 +/* 0E5D54 7F0B1224 461CC602 */ mul.s $f24, $f24, $f28 +/* 0E5D58 7F0B1228 00000000 */ nop +/* 0E5D5C 7F0B122C 461CD682 */ mul.s $f26, $f26, $f28 +/* 0E5D60 7F0B1230 46180600 */ add.s $f24, $f0, $f24 +/* 0E5D64 7F0B1234 461A1680 */ add.s $f26, $f2, $f26 +/* 0E5D68 7F0B1238 C7A00164 */ lwc1 $f0, 0x164($sp) +.L7F0B123C: +/* 0E5D6C 7F0B123C C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5D70 7F0B1240 8FAB0160 */ lw $t3, 0x160($sp) +/* 0E5D74 7F0B1244 44050000 */ mfc1 $a1, $f0 +/* 0E5D78 7F0B1248 44061000 */ mfc1 $a2, $f2 +/* 0E5D7C 7F0B124C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E5D80 7F0B1250 8D640000 */ lw $a0, ($t3) +/* 0E5D84 7F0B1254 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0E5D88 7F0B1258 C7AA017C */ lwc1 $f10, 0x17c($sp) +/* 0E5D8C 7F0B125C 4405C000 */ mfc1 $a1, $f24 +/* 0E5D90 7F0B1260 46004480 */ add.s $f18, $f8, $f0 +/* 0E5D94 7F0B1264 4406D000 */ mfc1 $a2, $f26 +/* 0E5D98 7F0B1268 46000506 */ mov.s $f20, $f0 +/* 0E5D9C 7F0B126C 46005100 */ add.s $f4, $f10, $f0 +/* 0E5DA0 7F0B1270 E7B20178 */ swc1 $f18, 0x178($sp) +/* 0E5DA4 7F0B1274 8FA40154 */ lw $a0, 0x154($sp) +/* 0E5DA8 7F0B1278 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E5DAC 7F0B127C E7A4017C */ swc1 $f4, 0x17c($sp) +/* 0E5DB0 7F0B1280 46140181 */ sub.s $f6, $f0, $f20 +/* 0E5DB4 7F0B1284 461C3083 */ div.s $f2, $f6, $f28 +/* 0E5DB8 7F0B1288 46001406 */ mov.s $f16, $f2 +/* 0E5DBC 7F0B128C 46001786 */ mov.s $f30, $f2 +.L7F0B1290: +/* 0E5DC0 7F0B1290 46168202 */ mul.s $f8, $f16, $f22 +/* 0E5DC4 7F0B1294 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0E5DC8 7F0B1298 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0E5DCC 7F0B129C 46124280 */ add.s $f10, $f8, $f18 +/* 0E5DD0 7F0B12A0 460A203E */ c.le.s $f4, $f10 +/* 0E5DD4 7F0B12A4 00000000 */ nop +/* 0E5DD8 7F0B12A8 4503000A */ bc1tl .L7F0B12D4 +/* 0E5DDC 7F0B12AC 00008025 */ move $s0, $zero +/* 0E5DE0 7F0B12B0 4616F202 */ mul.s $f8, $f30, $f22 +/* 0E5DE4 7F0B12B4 C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0E5DE8 7F0B12B8 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0E5DEC 7F0B12BC 46124280 */ add.s $f10, $f8, $f18 +/* 0E5DF0 7F0B12C0 4606503E */ c.le.s $f10, $f6 +/* 0E5DF4 7F0B12C4 00000000 */ nop +/* 0E5DF8 7F0B12C8 45000002 */ bc1f .L7F0B12D4 +/* 0E5DFC 7F0B12CC 00000000 */ nop +/* 0E5E00 7F0B12D0 00008025 */ move $s0, $zero +.L7F0B12D4: +/* 0E5E04 7F0B12D4 12000015 */ beqz $s0, .L7F0B132C +/* 0E5E08 7F0B12D8 240D0001 */ li $t5, 1 +/* 0E5E0C 7F0B12DC 3C018004 */ lui $at, %hi(D_800413BC) +/* 0E5E10 7F0B12E0 AFA00158 */ sw $zero, 0x158($sp) +/* 0E5E14 7F0B12E4 AC2D13BC */ sw $t5, %lo(D_800413BC)($at) +/* 0E5E18 7F0B12E8 8E610000 */ lw $at, ($s3) +/* 0E5E1C 7F0B12EC 8E780004 */ lw $t8, 4($s3) +/* 0E5E20 7F0B12F0 3C0E8008 */ lui $t6, %hi(flt_CODE_bss_8007B9F8) +/* 0E5E24 7F0B12F4 AFC10000 */ sw $at, ($fp) +/* 0E5E28 7F0B12F8 8E810000 */ lw $at, ($s4) +/* 0E5E2C 7F0B12FC 25CEB9F8 */ addiu $t6, %lo(flt_CODE_bss_8007B9F8) # addiu $t6, $t6, -0x4608 +/* 0E5E30 7F0B1300 AFD80004 */ sw $t8, 4($fp) +/* 0E5E34 7F0B1304 ADC10000 */ sw $at, ($t6) +/* 0E5E38 7F0B1308 8E8D0004 */ lw $t5, 4($s4) +/* 0E5E3C 7F0B130C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E5E40 7F0B1310 4600B706 */ mov.s $f28, $f22 +/* 0E5E44 7F0B1314 ADCD0004 */ sw $t5, 4($t6) +/* 0E5E48 7F0B1318 AC20B9E4 */ sw $zero, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E5E4C 7F0B131C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E5E50 7F0B1320 AC20B9E8 */ sw $zero, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E5E54 7F0B1324 AEF60000 */ sw $s6, ($s7) +/* 0E5E58 7F0B1328 AFA00154 */ sw $zero, 0x154($sp) +.L7F0B132C: +/* 0E5E5C 7F0B132C 8FA200B0 */ lw $v0, 0xb0($sp) +.L7F0B1330: +/* 0E5E60 7F0B1330 02402825 */ move $a1, $s2 +/* 0E5E64 7F0B1334 26310008 */ addiu $s1, $s1, 8 +/* 0E5E68 7F0B1338 0242082A */ slt $at, $s2, $v0 +/* 0E5E6C 7F0B133C 5420FF67 */ bnezl $at, .L7F0B10DC +/* 0E5E70 7F0B1340 8FAD00B0 */ lw $t5, 0xb0($sp) +.L7F0B1344: +/* 0E5E74 7F0B1344 8FA300B8 */ lw $v1, 0xb8($sp) +.L7F0B1348: +/* 0E5E78 7F0B1348 84620002 */ lh $v0, 2($v1) +/* 0E5E7C 7F0B134C 24630002 */ addiu $v1, $v1, 2 +/* 0E5E80 7F0B1350 AFA300B8 */ sw $v1, 0xb8($sp) +/* 0E5E84 7F0B1354 0441FF44 */ bgez $v0, .L7F0B1068 +/* 0E5E88 7F0B1358 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5E8C 7F0B135C E7BE00C4 */ swc1 $f30, 0xc4($sp) +.L7F0B1360: +/* 0E5E90 7F0B1360 8FAC0154 */ lw $t4, 0x154($sp) +.L7F0B1364: +/* 0E5E94 7F0B1364 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5E98 7F0B1368 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5E9C 7F0B136C 55800011 */ bnezl $t4, .L7F0B13B4 +/* 0E5EA0 7F0B1370 8FAB0154 */ lw $t3, 0x154($sp) +/* 0E5EA4 7F0B1374 4600C601 */ sub.s $f24, $f24, $f0 +/* 0E5EA8 7F0B1378 8FAF0160 */ lw $t7, 0x160($sp) +/* 0E5EAC 7F0B137C 44050000 */ mfc1 $a1, $f0 +/* 0E5EB0 7F0B1380 4602D681 */ sub.s $f26, $f26, $f2 +/* 0E5EB4 7F0B1384 461CC602 */ mul.s $f24, $f24, $f28 +/* 0E5EB8 7F0B1388 8DF80000 */ lw $t8, ($t7) +/* 0E5EBC 7F0B138C 44061000 */ mfc1 $a2, $f2 +/* 0E5EC0 7F0B1390 461CD682 */ mul.s $f26, $f26, $f28 +/* 0E5EC4 7F0B1394 27A40154 */ addiu $a0, $sp, 0x154 +/* 0E5EC8 7F0B1398 AFB80154 */ sw $t8, 0x154($sp) +/* 0E5ECC 7F0B139C 46180600 */ add.s $f24, $f0, $f24 +/* 0E5ED0 7F0B13A0 461A1680 */ add.s $f26, $f2, $f26 +/* 0E5ED4 7F0B13A4 4407C000 */ mfc1 $a3, $f24 +/* 0E5ED8 7F0B13A8 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0E5EDC 7F0B13AC E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E5EE0 7F0B13B0 8FAB0154 */ lw $t3, 0x154($sp) +.L7F0B13B4: +/* 0E5EE4 7F0B13B4 8FB90160 */ lw $t9, 0x160($sp) +/* 0E5EE8 7F0B13B8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 0E5EEC 7F0B13BC AF2B0000 */ sw $t3, ($t9) +/* 0E5EF0 7F0B13C0 8FBF007C */ lw $ra, 0x7c($sp) +/* 0E5EF4 7F0B13C4 E43CBA00 */ swc1 $f28, %lo(flt_CODE_bss_8007BA00)($at) +/* 0E5EF8 7F0B13C8 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E5EFC 7F0B13CC 8FBE0078 */ lw $fp, 0x78($sp) +/* 0E5F00 7F0B13D0 8FB70074 */ lw $s7, 0x74($sp) +/* 0E5F04 7F0B13D4 8FB60070 */ lw $s6, 0x70($sp) +/* 0E5F08 7F0B13D8 8FB5006C */ lw $s5, 0x6c($sp) +/* 0E5F0C 7F0B13DC 8FB40068 */ lw $s4, 0x68($sp) +/* 0E5F10 7F0B13E0 8FB30064 */ lw $s3, 0x64($sp) +/* 0E5F14 7F0B13E4 8FB20060 */ lw $s2, 0x60($sp) +/* 0E5F18 7F0B13E8 8FB1005C */ lw $s1, 0x5c($sp) +/* 0E5F1C 7F0B13EC 8FB00058 */ lw $s0, 0x58($sp) +/* 0E5F20 7F0B13F0 D7BE0050 */ ldc1 $f30, 0x50($sp) +/* 0E5F24 7F0B13F4 D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E5F28 7F0B13F8 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E5F2C 7F0B13FC D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E5F30 7F0B1400 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E5F34 7F0B1404 8FA20158 */ lw $v0, 0x158($sp) +/* 0E5F38 7F0B1408 03E00008 */ jr $ra +/* 0E5F3C 7F0B140C 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1410(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1410 +/* 0E5F40 7F0B1410 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 0E5F44 7F0B1414 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E5F48 7F0B1418 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E5F4C 7F0B141C F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E5F50 7F0B1420 4485B000 */ mtc1 $a1, $f22 +/* 0E5F54 7F0B1424 4486C000 */ mtc1 $a2, $f24 +/* 0E5F58 7F0B1428 4487D000 */ mtc1 $a3, $f26 +/* 0E5F5C 7F0B142C F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E5F60 7F0B1430 C7BC0138 */ lwc1 $f28, 0x138($sp) +/* 0E5F64 7F0B1434 AFB10054 */ sw $s1, 0x54($sp) +/* 0E5F68 7F0B1438 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E5F6C 7F0B143C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5F70 7F0B1440 27B10098 */ addiu $s1, $sp, 0x98 +/* 0E5F74 7F0B1444 AFBF0074 */ sw $ra, 0x74($sp) +/* 0E5F78 7F0B1448 AFBE0070 */ sw $fp, 0x70($sp) +/* 0E5F7C 7F0B144C 4481A000 */ mtc1 $at, $f20 +/* 0E5F80 7F0B1450 AFA400F0 */ sw $a0, 0xf0($sp) +/* 0E5F84 7F0B1454 27AE00EC */ addiu $t6, $sp, 0xec +/* 0E5F88 7F0B1458 240F0014 */ li $t7, 20 +/* 0E5F8C 7F0B145C 4405B000 */ mfc1 $a1, $f22 +/* 0E5F90 7F0B1460 4406C000 */ mfc1 $a2, $f24 +/* 0E5F94 7F0B1464 4407D000 */ mfc1 $a3, $f26 +/* 0E5F98 7F0B1468 AFB7006C */ sw $s7, 0x6c($sp) +/* 0E5F9C 7F0B146C AFB60068 */ sw $s6, 0x68($sp) +/* 0E5FA0 7F0B1470 AFB50064 */ sw $s5, 0x64($sp) +/* 0E5FA4 7F0B1474 AFB40060 */ sw $s4, 0x60($sp) +/* 0E5FA8 7F0B1478 AFB3005C */ sw $s3, 0x5c($sp) +/* 0E5FAC 7F0B147C AFB20058 */ sw $s2, 0x58($sp) +/* 0E5FB0 7F0B1480 AFB00050 */ sw $s0, 0x50($sp) +/* 0E5FB4 7F0B1484 0000F025 */ move $fp, $zero +/* 0E5FB8 7F0B1488 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E5FBC 7F0B148C AFAE0018 */ sw $t6, 0x18($sp) +/* 0E5FC0 7F0B1490 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0E5FC4 7F0B1494 AFB10014 */ sw $s1, 0x14($sp) +/* 0E5FC8 7F0B1498 AFA000EC */ sw $zero, 0xec($sp) +/* 0E5FCC 7F0B149C 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E5FD0 7F0B14A0 E7BC0010 */ swc1 $f28, 0x10($sp) +/* 0E5FD4 7F0B14A4 8FA300EC */ lw $v1, 0xec($sp) +/* 0E5FD8 7F0B14A8 2419FFFF */ li $t9, -1 +/* 0E5FDC 7F0B14AC 02202025 */ move $a0, $s1 +/* 0E5FE0 7F0B14B0 28610015 */ slti $at, $v1, 0x15 +/* 0E5FE4 7F0B14B4 54200003 */ bnezl $at, .L7F0B14C4 +/* 0E5FE8 7F0B14B8 8FB8013C */ lw $t8, 0x13c($sp) +/* 0E5FEC 7F0B14BC 24030014 */ li $v1, 20 +/* 0E5FF0 7F0B14C0 8FB8013C */ lw $t8, 0x13c($sp) +.L7F0B14C4: +/* 0E5FF4 7F0B14C4 E7B60118 */ swc1 $f22, 0x118($sp) +/* 0E5FF8 7F0B14C8 E7B8011C */ swc1 $f24, 0x11c($sp) +/* 0E5FFC 7F0B14CC E7BA0110 */ swc1 $f26, 0x110($sp) +/* 0E6000 7F0B14D0 1300006A */ beqz $t8, .L7F0B167C +/* 0E6004 7F0B14D4 E7BC0114 */ swc1 $f28, 0x114($sp) +/* 0E6008 7F0B14D8 00034080 */ sll $t0, $v1, 2 +/* 0E600C 7F0B14DC 02284821 */ addu $t1, $s1, $t0 +/* 0E6010 7F0B14E0 AD390000 */ sw $t9, ($t1) +/* 0E6014 7F0B14E4 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E6018 7F0B14E8 AFA300EC */ sw $v1, 0xec($sp) +/* 0E601C 7F0B14EC 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E6020 7F0B14F0 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E6024 7F0B14F4 27B700F8 */ addiu $s7, $sp, 0xf8 +/* 0E6028 7F0B14F8 27B60100 */ addiu $s6, $sp, 0x100 +/* 0E602C 7F0B14FC 84620000 */ lh $v0, ($v1) +/* 0E6030 7F0B1500 27B50110 */ addiu $s5, $sp, 0x110 +/* 0E6034 7F0B1504 27B40118 */ addiu $s4, $sp, 0x118 +/* 0E6038 7F0B1508 0442005D */ bltzl $v0, .L7F0B1680 +/* 0E603C 7F0B150C 8FBF0074 */ lw $ra, 0x74($sp) +/* 0E6040 7F0B1510 AFA30094 */ sw $v1, 0x94($sp) +/* 0E6044 7F0B1514 00025080 */ sll $t2, $v0, 2 +.L7F0B1518: +/* 0E6048 7F0B1518 01425023 */ subu $t2, $t2, $v0 +/* 0E604C 7F0B151C 000A5080 */ sll $t2, $t2, 2 +/* 0E6050 7F0B1520 01425021 */ addu $t2, $t2, $v0 +/* 0E6054 7F0B1524 3C0B8007 */ lui $t3, %hi(pos_data_entry) +/* 0E6058 7F0B1528 256B9C38 */ addiu $t3, %lo(pos_data_entry) # addiu $t3, $t3, -0x63c8 +/* 0E605C 7F0B152C 000A5080 */ sll $t2, $t2, 2 +/* 0E6060 7F0B1530 014B9821 */ addu $s3, $t2, $t3 +/* 0E6064 7F0B1534 02602025 */ move $a0, $s3 +/* 0E6068 7F0B1538 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E606C 7F0B153C 8FA5013C */ lw $a1, 0x13c($sp) +/* 0E6070 7F0B1540 10400048 */ beqz $v0, .L7F0B1664 +/* 0E6074 7F0B1544 02602025 */ move $a0, $s3 +/* 0E6078 7F0B1548 27A50090 */ addiu $a1, $sp, 0x90 +/* 0E607C 7F0B154C 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0E6080 7F0B1550 27A6008C */ addiu $a2, $sp, 0x8c +/* 0E6084 7F0B1554 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6088 7F0B1558 58400043 */ blezl $v0, .L7F0B1668 +/* 0E608C 7F0B155C 8FA30094 */ lw $v1, 0x94($sp) +/* 0E6090 7F0B1560 18400040 */ blez $v0, .L7F0B1664 +/* 0E6094 7F0B1564 00002825 */ move $a1, $zero +/* 0E6098 7F0B1568 00008025 */ move $s0, $zero +/* 0E609C 7F0B156C 8FAC008C */ lw $t4, 0x8c($sp) +.L7F0B1570: +/* 0E60A0 7F0B1570 24B20001 */ addiu $s2, $a1, 1 +/* 0E60A4 7F0B1574 8FAD0090 */ lw $t5, 0x90($sp) +/* 0E60A8 7F0B1578 024C001A */ div $zero, $s2, $t4 +/* 0E60AC 7F0B157C 01B01821 */ addu $v1, $t5, $s0 +/* 0E60B0 7F0B1580 C4640000 */ lwc1 $f4, ($v1) +/* 0E60B4 7F0B1584 00001010 */ mfhi $v0 +/* 0E60B8 7F0B1588 000270C0 */ sll $t6, $v0, 3 +/* 0E60BC 7F0B158C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E60C0 7F0B1590 C4660004 */ lwc1 $f6, 4($v1) +/* 0E60C4 7F0B1594 01AE2021 */ addu $a0, $t5, $t6 +/* 0E60C8 7F0B1598 4406D000 */ mfc1 $a2, $f26 +/* 0E60CC 7F0B159C E7A60014 */ swc1 $f6, 0x14($sp) +/* 0E60D0 7F0B15A0 C4880000 */ lwc1 $f8, ($a0) +/* 0E60D4 7F0B15A4 4407E000 */ mfc1 $a3, $f28 +/* 0E60D8 7F0B15A8 15800002 */ bnez $t4, .L7F0B15B4 +/* 0E60DC 7F0B15AC 00000000 */ nop +/* 0E60E0 7F0B15B0 0007000D */ break 7 +.L7F0B15B4: +/* 0E60E4 7F0B15B4 2401FFFF */ li $at, -1 +/* 0E60E8 7F0B15B8 15810004 */ bne $t4, $at, .L7F0B15CC +/* 0E60EC 7F0B15BC 3C018000 */ lui $at, 0x8000 +/* 0E60F0 7F0B15C0 16410002 */ bne $s2, $at, .L7F0B15CC +/* 0E60F4 7F0B15C4 00000000 */ nop +/* 0E60F8 7F0B15C8 0006000D */ break 6 +.L7F0B15CC: +/* 0E60FC 7F0B15CC E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E6100 7F0B15D0 C48A0004 */ lwc1 $f10, 4($a0) +/* 0E6104 7F0B15D4 00408825 */ move $s1, $v0 +/* 0E6108 7F0B15D8 4600B306 */ mov.s $f12, $f22 +/* 0E610C 7F0B15DC 4600C386 */ mov.s $f14, $f24 +/* 0E6110 7F0B15E0 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0E6114 7F0B15E4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0E6118 7F0B15E8 50400019 */ beql $v0, $zero, .L7F0B1650 +/* 0E611C 7F0B15EC 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6120 7F0B15F0 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E6124 7F0B15F4 0011C0C0 */ sll $t8, $s1, 3 +/* 0E6128 7F0B15F8 02802025 */ move $a0, $s4 +/* 0E612C 7F0B15FC 01F01821 */ addu $v1, $t7, $s0 +/* 0E6130 7F0B1600 C4700000 */ lwc1 $f16, ($v1) +/* 0E6134 7F0B1604 01F81021 */ addu $v0, $t7, $t8 +/* 0E6138 7F0B1608 02A02825 */ move $a1, $s5 +/* 0E613C 7F0B160C E7B00100 */ swc1 $f16, 0x100($sp) +/* 0E6140 7F0B1610 C4720004 */ lwc1 $f18, 4($v1) +/* 0E6144 7F0B1614 02C03025 */ move $a2, $s6 +/* 0E6148 7F0B1618 02E03825 */ move $a3, $s7 +/* 0E614C 7F0B161C E7B20104 */ swc1 $f18, 0x104($sp) +/* 0E6150 7F0B1620 C4440000 */ lwc1 $f4, ($v0) +/* 0E6154 7F0B1624 E7A400F8 */ swc1 $f4, 0xf8($sp) +/* 0E6158 7F0B1628 C4460004 */ lwc1 $f6, 4($v0) +/* 0E615C 7F0B162C 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E6160 7F0B1630 E7A600FC */ swc1 $f6, 0xfc($sp) +/* 0E6164 7F0B1634 4614003C */ c.lt.s $f0, $f20 +/* 0E6168 7F0B1638 00000000 */ nop +/* 0E616C 7F0B163C 45020004 */ bc1fl .L7F0B1650 +/* 0E6170 7F0B1640 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6174 7F0B1644 46000506 */ mov.s $f20, $f0 +/* 0E6178 7F0B1648 0260F025 */ move $fp, $s3 +/* 0E617C 7F0B164C 8FA2008C */ lw $v0, 0x8c($sp) +.L7F0B1650: +/* 0E6180 7F0B1650 02402825 */ move $a1, $s2 +/* 0E6184 7F0B1654 26100008 */ addiu $s0, $s0, 8 +/* 0E6188 7F0B1658 0242082A */ slt $at, $s2, $v0 +/* 0E618C 7F0B165C 5420FFC4 */ bnezl $at, .L7F0B1570 +/* 0E6190 7F0B1660 8FAC008C */ lw $t4, 0x8c($sp) +.L7F0B1664: +/* 0E6194 7F0B1664 8FA30094 */ lw $v1, 0x94($sp) +.L7F0B1668: +/* 0E6198 7F0B1668 84620002 */ lh $v0, 2($v1) +/* 0E619C 7F0B166C 24630002 */ addiu $v1, $v1, 2 +/* 0E61A0 7F0B1670 AFA30094 */ sw $v1, 0x94($sp) +/* 0E61A4 7F0B1674 0443FFA8 */ bgezl $v0, .L7F0B1518 +/* 0E61A8 7F0B1678 00025080 */ sll $t2, $v0, 2 +.L7F0B167C: +/* 0E61AC 7F0B167C 8FBF0074 */ lw $ra, 0x74($sp) +.L7F0B1680: +/* 0E61B0 7F0B1680 03C01025 */ move $v0, $fp +/* 0E61B4 7F0B1684 8FBE0070 */ lw $fp, 0x70($sp) +/* 0E61B8 7F0B1688 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E61BC 7F0B168C D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E61C0 7F0B1690 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E61C4 7F0B1694 D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E61C8 7F0B1698 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E61CC 7F0B169C 8FB00050 */ lw $s0, 0x50($sp) +/* 0E61D0 7F0B16A0 8FB10054 */ lw $s1, 0x54($sp) +/* 0E61D4 7F0B16A4 8FB20058 */ lw $s2, 0x58($sp) +/* 0E61D8 7F0B16A8 8FB3005C */ lw $s3, 0x5c($sp) +/* 0E61DC 7F0B16AC 8FB40060 */ lw $s4, 0x60($sp) +/* 0E61E0 7F0B16B0 8FB50064 */ lw $s5, 0x64($sp) +/* 0E61E4 7F0B16B4 8FB60068 */ lw $s6, 0x68($sp) +/* 0E61E8 7F0B16B8 8FB7006C */ lw $s7, 0x6c($sp) +/* 0E61EC 7F0B16BC 03E00008 */ jr $ra +/* 0E61F0 7F0B16C0 27BD0128 */ addiu $sp, $sp, 0x128 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B16C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 sp1C; + f32 sp20; + f32 temp_f2; + f32 temp_f16; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + + // Node 0 + temp_f2 = (arg2 - arg0); + temp_f16 = (arg3 - arg1); + sp20 = temp_f2; + sp1C = temp_f16; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f16 * temp_f16))); + if (temp_ret != 0.0f) + { + // Node 2 + // Node 3 + return (((temp_f16 * (arg4 - arg0)) + (-temp_f2 * (arg5 - arg1))) / temp_ret); + } + // Node 1 + temp_f0 = (arg4 - arg2); + temp_f2_2 = (arg5 - arg3); + return (((temp_f16 * (arg4 - arg0)) + (-temp_f2 * (arg5 - arg1))) / temp_ret); +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1794(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + f32 temp_f8; + f32 temp_f16; + + // Node 0 + temp_f8 = (arg2 - arg0); + temp_f16 = (arg3 - arg1); + arg2 = temp_f8; + arg3 = temp_f16; + sqrtf(((temp_f8 * temp_f8) + (temp_f16 * temp_f16))); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1794 +/* 0E62C4 7F0B1794 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E62C8 7F0B1798 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0E62CC 7F0B179C AFA60020 */ sw $a2, 0x20($sp) +/* 0E62D0 7F0B17A0 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0E62D4 7F0B17A4 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 0E62D8 7F0B17A8 AFA70024 */ sw $a3, 0x24($sp) +/* 0E62DC 7F0B17AC C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0E62E0 7F0B17B0 46062201 */ sub.s $f8, $f4, $f6 +/* 0E62E4 7F0B17B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E62E8 7F0B17B8 460E5401 */ sub.s $f16, $f10, $f14 +/* 0E62EC 7F0B17BC 46084482 */ mul.s $f18, $f8, $f8 +/* 0E62F0 7F0B17C0 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0E62F4 7F0B17C4 46108102 */ mul.s $f4, $f16, $f16 +/* 0E62F8 7F0B17C8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 0E62FC 7F0B17CC 0C007DF8 */ jal sqrtf +/* 0E6300 7F0B17D0 46049300 */ add.s $f12, $f18, $f4 +/* 0E6304 7F0B17D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E6308 7F0B17D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E630C 7F0B17DC 03E00008 */ jr $ra +/* 0E6310 7F0B17E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B17E4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 temp_f6; + f32 temp_f10; + f32 temp_f0; + f32 temp_f2; + f32 temp_f18; + f32 temp_f16; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + + // Node 0 + temp_f6 = (arg4 - arg0); + temp_f10 = (arg5 - arg1); + arg4 = temp_f6; + temp_f0 = (arg2 - arg0); + arg5 = temp_f10; + temp_f2 = (arg3 - arg1); + temp_f18 = ((temp_f0 * temp_f0) + (temp_f2 * temp_f2)); + temp_f16 = ((temp_f6 * temp_f0) + (temp_f10 * temp_f2)); + phi_v0 = 0; + if (temp_f18 < temp_f16) + { + // Node 1 + phi_v0 = 1; + } + // Node 2 + if ((phi_v0 != 0) && (temp_f16 < 0.0f)) + { + // Node 4 + phi_v0_2 = 1; + // Node 5 + if (phi_v0_2 == 0) + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f16) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f16 < temp_f18) + { + // Node 10 + } + } + } + } + else + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f16) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f16 < temp_f18) + { + // Node 10 + } + } + } + // Node 11 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B17E4 +/* 0E6314 7F0B17E4 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0E6318 7F0B17E8 C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0E631C 7F0B17EC AFA60008 */ sw $a2, 8($sp) +/* 0E6320 7F0B17F0 460C2181 */ sub.s $f6, $f4, $f12 +/* 0E6324 7F0B17F4 C7A40008 */ lwc1 $f4, 8($sp) +/* 0E6328 7F0B17F8 AFA7000C */ sw $a3, 0xc($sp) +/* 0E632C 7F0B17FC 460E4281 */ sub.s $f10, $f8, $f14 +/* 0E6330 7F0B1800 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0E6334 7F0B1804 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0E6338 7F0B1808 460C2001 */ sub.s $f0, $f4, $f12 +/* 0E633C 7F0B180C E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0E6340 7F0B1810 00001025 */ move $v0, $zero +/* 0E6344 7F0B1814 460E4081 */ sub.s $f2, $f8, $f14 +/* 0E6348 7F0B1818 46000102 */ mul.s $f4, $f0, $f0 +/* 0E634C 7F0B181C 00000000 */ nop +/* 0E6350 7F0B1820 46021202 */ mul.s $f8, $f2, $f2 +/* 0E6354 7F0B1824 46082480 */ add.s $f18, $f4, $f8 +/* 0E6358 7F0B1828 46003102 */ mul.s $f4, $f6, $f0 +/* 0E635C 7F0B182C 00000000 */ nop +/* 0E6360 7F0B1830 46025202 */ mul.s $f8, $f10, $f2 +/* 0E6364 7F0B1834 46082400 */ add.s $f16, $f4, $f8 +/* 0E6368 7F0B1838 4610903C */ c.lt.s $f18, $f16 +/* 0E636C 7F0B183C 00000000 */ nop +/* 0E6370 7F0B1840 45000002 */ bc1f .L7F0B184C +/* 0E6374 7F0B1844 00000000 */ nop +/* 0E6378 7F0B1848 24020001 */ li $v0, 1 +.L7F0B184C: +/* 0E637C 7F0B184C 5040000B */ beql $v0, $zero, .L7F0B187C +/* 0E6380 7F0B1850 44805000 */ mtc1 $zero, $f10 +/* 0E6384 7F0B1854 44803000 */ mtc1 $zero, $f6 +/* 0E6388 7F0B1858 00001025 */ move $v0, $zero +/* 0E638C 7F0B185C 4606803C */ c.lt.s $f16, $f6 +/* 0E6390 7F0B1860 00000000 */ nop +/* 0E6394 7F0B1864 45000002 */ bc1f .L7F0B1870 +/* 0E6398 7F0B1868 00000000 */ nop +/* 0E639C 7F0B186C 24020001 */ li $v0, 1 +.L7F0B1870: +/* 0E63A0 7F0B1870 1440000F */ bnez $v0, .L7F0B18B0 +/* 0E63A4 7F0B1874 00000000 */ nop +/* 0E63A8 7F0B1878 44805000 */ mtc1 $zero, $f10 +.L7F0B187C: +/* 0E63AC 7F0B187C 00001025 */ move $v0, $zero +/* 0E63B0 7F0B1880 4610503C */ c.lt.s $f10, $f16 +/* 0E63B4 7F0B1884 00000000 */ nop +/* 0E63B8 7F0B1888 45000002 */ bc1f .L7F0B1894 +/* 0E63BC 7F0B188C 00000000 */ nop +/* 0E63C0 7F0B1890 24020001 */ li $v0, 1 +.L7F0B1894: +/* 0E63C4 7F0B1894 10400006 */ beqz $v0, .L7F0B18B0 +/* 0E63C8 7F0B1898 00000000 */ nop +/* 0E63CC 7F0B189C 4612803C */ c.lt.s $f16, $f18 +/* 0E63D0 7F0B18A0 00001025 */ move $v0, $zero +/* 0E63D4 7F0B18A4 45000002 */ bc1f .L7F0B18B0 +/* 0E63D8 7F0B18A8 00000000 */ nop +/* 0E63DC 7F0B18AC 24020001 */ li $v0, 1 +.L7F0B18B0: +/* 0E63E0 7F0B18B0 03E00008 */ jr $ra +/* 0E63E4 7F0B18B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B18B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B18B8 +/* 0E63E8 7F0B18B8 27BDFEE0 */ addiu $sp, $sp, -0x120 +/* 0E63EC 7F0B18BC C7A40134 */ lwc1 $f4, 0x134($sp) +/* 0E63F0 7F0B18C0 C7A60138 */ lwc1 $f6, 0x138($sp) +/* 0E63F4 7F0B18C4 F7BE0050 */ sdc1 $f30, 0x50($sp) +/* 0E63F8 7F0B18C8 F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E63FC 7F0B18CC 4604303E */ c.le.s $f6, $f4 +/* 0E6400 7F0B18D0 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E6404 7F0B18D4 4485D000 */ mtc1 $a1, $f26 +/* 0E6408 7F0B18D8 4486E000 */ mtc1 $a2, $f28 +/* 0E640C 7F0B18DC 4487F000 */ mtc1 $a3, $f30 +/* 0E6410 7F0B18E0 AFB20060 */ sw $s2, 0x60($sp) +/* 0E6414 7F0B18E4 AFB1005C */ sw $s1, 0x5c($sp) +/* 0E6418 7F0B18E8 AFB00058 */ sw $s0, 0x58($sp) +/* 0E641C 7F0B18EC 00808825 */ move $s1, $a0 +/* 0E6420 7F0B18F0 27B200A8 */ addiu $s2, $sp, 0xa8 +/* 0E6424 7F0B18F4 AFBF007C */ sw $ra, 0x7c($sp) +/* 0E6428 7F0B18F8 AFBE0078 */ sw $fp, 0x78($sp) +/* 0E642C 7F0B18FC AFB70074 */ sw $s7, 0x74($sp) +/* 0E6430 7F0B1900 AFB60070 */ sw $s6, 0x70($sp) +/* 0E6434 7F0B1904 AFB5006C */ sw $s5, 0x6c($sp) +/* 0E6438 7F0B1908 AFB40068 */ sw $s4, 0x68($sp) +/* 0E643C 7F0B190C AFB30064 */ sw $s3, 0x64($sp) +/* 0E6440 7F0B1910 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E6444 7F0B1914 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E6448 7F0B1918 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E644C 7F0B191C 45000002 */ bc1f .L7F0B1928 +/* 0E6450 7F0B1920 00008025 */ move $s0, $zero +/* 0E6454 7F0B1924 24100001 */ li $s0, 1 +.L7F0B1928: +/* 0E6458 7F0B1928 4405D000 */ mfc1 $a1, $f26 +/* 0E645C 7F0B192C 4406E000 */ mfc1 $a2, $f28 +/* 0E6460 7F0B1930 4407F000 */ mfc1 $a3, $f30 +/* 0E6464 7F0B1934 27AE00FC */ addiu $t6, $sp, 0xfc +/* 0E6468 7F0B1938 240F0014 */ li $t7, 20 +/* 0E646C 7F0B193C AFB00108 */ sw $s0, 0x108($sp) +/* 0E6470 7F0B1940 AFA000FC */ sw $zero, 0xfc($sp) +/* 0E6474 7F0B1944 AFAF0018 */ sw $t7, 0x18($sp) +/* 0E6478 7F0B1948 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E647C 7F0B194C 02202025 */ move $a0, $s1 +/* 0E6480 7F0B1950 0FC2C86C */ jal sub_GAME_7F0B21B0 +/* 0E6484 7F0B1954 AFB20010 */ sw $s2, 0x10($sp) +/* 0E6488 7F0B1958 04400003 */ bltz $v0, .L7F0B1968 +/* 0E648C 7F0B195C 8FB800FC */ lw $t8, 0xfc($sp) +/* 0E6490 7F0B1960 100000C7 */ b .L7F0B1C80 +/* 0E6494 7F0B1964 8FBF007C */ lw $ra, 0x7c($sp) +.L7F0B1968: +/* 0E6498 7F0B1968 2B010015 */ slti $at, $t8, 0x15 +/* 0E649C 7F0B196C 14200002 */ bnez $at, .L7F0B1978 +/* 0E64A0 7F0B1970 24190014 */ li $t9, 20 +/* 0E64A4 7F0B1974 AFB900FC */ sw $t9, 0xfc($sp) +.L7F0B1978: +/* 0E64A8 7F0B1978 8FA80130 */ lw $t0, 0x130($sp) +/* 0E64AC 7F0B197C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA04) +/* 0E64B0 7F0B1980 AC20BA04 */ sw $zero, %lo(dword_CODE_bss_8007BA04)($at) +/* 0E64B4 7F0B1984 510000BD */ beql $t0, $zero, .L7F0B1C7C +/* 0E64B8 7F0B1988 2402FFFE */ li $v0, -2 +/* 0E64BC 7F0B198C 5200000C */ beql $s0, $zero, .L7F0B19C0 +/* 0E64C0 7F0B1990 8FAA00FC */ lw $t2, 0xfc($sp) +/* 0E64C4 7F0B1994 4405D000 */ mfc1 $a1, $f26 +/* 0E64C8 7F0B1998 4406E000 */ mfc1 $a2, $f28 +/* 0E64CC 7F0B199C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E64D0 7F0B19A0 8E240000 */ lw $a0, ($s1) +/* 0E64D4 7F0B19A4 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 0E64D8 7F0B19A8 C7B00138 */ lwc1 $f16, 0x138($sp) +/* 0E64DC 7F0B19AC 46004280 */ add.s $f10, $f8, $f0 +/* 0E64E0 7F0B19B0 46008480 */ add.s $f18, $f16, $f0 +/* 0E64E4 7F0B19B4 E7AA0134 */ swc1 $f10, 0x134($sp) +/* 0E64E8 7F0B19B8 E7B20138 */ swc1 $f18, 0x138($sp) +/* 0E64EC 7F0B19BC 8FAA00FC */ lw $t2, 0xfc($sp) +.L7F0B19C0: +/* 0E64F0 7F0B19C0 2409FFFF */ li $t1, -1 +/* 0E64F4 7F0B19C4 02402025 */ move $a0, $s2 +/* 0E64F8 7F0B19C8 000A5880 */ sll $t3, $t2, 2 +/* 0E64FC 7F0B19CC 024B6021 */ addu $t4, $s2, $t3 +/* 0E6500 7F0B19D0 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E6504 7F0B19D4 AD890000 */ sw $t1, ($t4) +/* 0E6508 7F0B19D8 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E650C 7F0B19DC 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E6510 7F0B19E0 3C1E8008 */ lui $fp, %hi(dword_CODE_bss_8007B9E4) +/* 0E6514 7F0B19E4 3C168004 */ lui $s6, %hi(D_800413BC) +/* 0E6518 7F0B19E8 84620000 */ lh $v0, ($v1) +/* 0E651C 7F0B19EC 26D613BC */ addiu $s6, %lo(D_800413BC) # addiu $s6, $s6, 0x13bc +/* 0E6520 7F0B19F0 27DEB9E4 */ addiu $fp, %lo(dword_CODE_bss_8007B9E4) # addiu $fp, $fp, -0x461c +/* 0E6524 7F0B19F4 044000A0 */ bltz $v0, .L7F0B1C78 +/* 0E6528 7F0B19F8 24170001 */ li $s7, 1 +/* 0E652C 7F0B19FC 3C148008 */ lui $s4, %hi(flt_CODE_bss_8007B9F8) +/* 0E6530 7F0B1A00 3C138008 */ lui $s3, %hi(flt_CODE_bss_8007B9F0) +/* 0E6534 7F0B1A04 2673B9F0 */ addiu $s3, %lo(flt_CODE_bss_8007B9F0) # addiu $s3, $s3, -0x4610 +/* 0E6538 7F0B1A08 2694B9F8 */ addiu $s4, %lo(flt_CODE_bss_8007B9F8) # addiu $s4, $s4, -0x4608 +/* 0E653C 7F0B1A0C AFA30100 */ sw $v1, 0x100($sp) +/* 0E6540 7F0B1A10 00026880 */ sll $t5, $v0, 2 +.L7F0B1A14: +/* 0E6544 7F0B1A14 01A26823 */ subu $t5, $t5, $v0 +/* 0E6548 7F0B1A18 000D6880 */ sll $t5, $t5, 2 +/* 0E654C 7F0B1A1C 01A26821 */ addu $t5, $t5, $v0 +/* 0E6550 7F0B1A20 3C0E8007 */ lui $t6, %hi(pos_data_entry) +/* 0E6554 7F0B1A24 25CE9C38 */ addiu $t6, %lo(pos_data_entry) # addiu $t6, $t6, -0x63c8 +/* 0E6558 7F0B1A28 000D6880 */ sll $t5, $t5, 2 +/* 0E655C 7F0B1A2C 01AEA821 */ addu $s5, $t5, $t6 +/* 0E6560 7F0B1A30 02A02025 */ move $a0, $s5 +/* 0E6564 7F0B1A34 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E6568 7F0B1A38 8FA50130 */ lw $a1, 0x130($sp) +/* 0E656C 7F0B1A3C 10400088 */ beqz $v0, .L7F0B1C60 +/* 0E6570 7F0B1A40 02A02025 */ move $a0, $s5 +/* 0E6574 7F0B1A44 27AF0090 */ addiu $t7, $sp, 0x90 +/* 0E6578 7F0B1A48 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E657C 7F0B1A4C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0E6580 7F0B1A50 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0E6584 7F0B1A54 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0E6588 7F0B1A58 27A70094 */ addiu $a3, $sp, 0x94 +/* 0E658C 7F0B1A5C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E6590 7F0B1A60 8FB90108 */ lw $t9, 0x108($sp) +/* 0E6594 7F0B1A64 5B00007F */ blezl $t8, .L7F0B1C64 +/* 0E6598 7F0B1A68 8FA30100 */ lw $v1, 0x100($sp) +/* 0E659C 7F0B1A6C 1320000D */ beqz $t9, .L7F0B1AA4 +/* 0E65A0 7F0B1A70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E65A4 7F0B1A74 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 0E65A8 7F0B1A78 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0E65AC 7F0B1A7C C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0E65B0 7F0B1A80 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 0E65B4 7F0B1A84 4604303E */ c.le.s $f6, $f4 +/* 0E65B8 7F0B1A88 00000000 */ nop +/* 0E65BC 7F0B1A8C 45020075 */ bc1fl .L7F0B1C64 +/* 0E65C0 7F0B1A90 8FA30100 */ lw $v1, 0x100($sp) +/* 0E65C4 7F0B1A94 4608503E */ c.le.s $f10, $f8 +/* 0E65C8 7F0B1A98 00000000 */ nop +/* 0E65CC 7F0B1A9C 45020071 */ bc1fl .L7F0B1C64 +/* 0E65D0 7F0B1AA0 8FA30100 */ lw $v1, 0x100($sp) +.L7F0B1AA4: +/* 0E65D4 7F0B1AA4 4481C000 */ mtc1 $at, $f24 +/* 0E65D8 7F0B1AA8 00002825 */ move $a1, $zero +.L7F0B1AAC: +/* 0E65DC 7F0B1AAC 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 0E65E0 7F0B1AB0 24A80001 */ addiu $t0, $a1, 1 +/* 0E65E4 7F0B1AB4 8FAB00A4 */ lw $t3, 0xa4($sp) +/* 0E65E8 7F0B1AB8 010A001A */ div $zero, $t0, $t2 +/* 0E65EC 7F0B1ABC 00001810 */ mfhi $v1 +/* 0E65F0 7F0B1AC0 000348C0 */ sll $t1, $v1, 3 +/* 0E65F4 7F0B1AC4 000588C0 */ sll $s1, $a1, 3 +/* 0E65F8 7F0B1AC8 01711021 */ addu $v0, $t3, $s1 +/* 0E65FC 7F0B1ACC 01692021 */ addu $a0, $t3, $t1 +/* 0E6600 7F0B1AD0 8C860000 */ lw $a2, ($a0) +/* 0E6604 7F0B1AD4 8C870004 */ lw $a3, 4($a0) +/* 0E6608 7F0B1AD8 C44C0000 */ lwc1 $f12, ($v0) +/* 0E660C 7F0B1ADC C44E0004 */ lwc1 $f14, 4($v0) +/* 0E6610 7F0B1AE0 15400002 */ bnez $t2, .L7F0B1AEC +/* 0E6614 7F0B1AE4 00000000 */ nop +/* 0E6618 7F0B1AE8 0007000D */ break 7 +.L7F0B1AEC: +/* 0E661C 7F0B1AEC 2401FFFF */ li $at, -1 +/* 0E6620 7F0B1AF0 15410004 */ bne $t2, $at, .L7F0B1B04 +/* 0E6624 7F0B1AF4 3C018000 */ lui $at, 0x8000 +/* 0E6628 7F0B1AF8 15010002 */ bne $t0, $at, .L7F0B1B04 +/* 0E662C 7F0B1AFC 00000000 */ nop +/* 0E6630 7F0B1B00 0006000D */ break 6 +.L7F0B1B04: +/* 0E6634 7F0B1B04 00609025 */ move $s2, $v1 +/* 0E6638 7F0B1B08 E7BC0014 */ swc1 $f28, 0x14($sp) +/* 0E663C 7F0B1B0C 0FC2C5B1 */ jal sub_GAME_7F0B16C4 +/* 0E6640 7F0B1B10 E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E6644 7F0B1B14 44808000 */ mtc1 $zero, $f16 +/* 0E6648 7F0B1B18 46000506 */ mov.s $f20, $f0 +/* 0E664C 7F0B1B1C 4610003C */ c.lt.s $f0, $f16 +/* 0E6650 7F0B1B20 00000000 */ nop +/* 0E6654 7F0B1B24 45020003 */ bc1fl .L7F0B1B34 +/* 0E6658 7F0B1B28 4614C03C */ c.lt.s $f24, $f20 +/* 0E665C 7F0B1B2C 46000507 */ neg.s $f20, $f0 +/* 0E6660 7F0B1B30 4614C03C */ c.lt.s $f24, $f20 +.L7F0B1B34: +/* 0E6664 7F0B1B34 00000000 */ nop +/* 0E6668 7F0B1B38 4500003C */ bc1f .L7F0B1C2C +/* 0E666C 7F0B1B3C 00000000 */ nop +/* 0E6670 7F0B1B40 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 0E6674 7F0B1B44 4406D000 */ mfc1 $a2, $f26 +/* 0E6678 7F0B1B48 4407E000 */ mfc1 $a3, $f28 +/* 0E667C 7F0B1B4C 01911021 */ addu $v0, $t4, $s1 +/* 0E6680 7F0B1B50 C44C0000 */ lwc1 $f12, ($v0) +/* 0E6684 7F0B1B54 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 0E6688 7F0B1B58 C44E0004 */ lwc1 $f14, 4($v0) +/* 0E668C 7F0B1B5C 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 0E6690 7F0B1B60 001280C0 */ sll $s0, $s2, 3 +/* 0E6694 7F0B1B64 4406D000 */ mfc1 $a2, $f26 +/* 0E6698 7F0B1B68 4407E000 */ mfc1 $a3, $f28 +/* 0E669C 7F0B1B6C 01B01821 */ addu $v1, $t5, $s0 +/* 0E66A0 7F0B1B70 46000586 */ mov.s $f22, $f0 +/* 0E66A4 7F0B1B74 C46C0000 */ lwc1 $f12, ($v1) +/* 0E66A8 7F0B1B78 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 0E66AC 7F0B1B7C C46E0004 */ lwc1 $f14, 4($v1) +/* 0E66B0 7F0B1B80 461EA03C */ c.lt.s $f20, $f30 +/* 0E66B4 7F0B1B84 00000000 */ nop +/* 0E66B8 7F0B1B88 45000028 */ bc1f .L7F0B1C2C +/* 0E66BC 7F0B1B8C 00000000 */ nop +/* 0E66C0 7F0B1B90 461EB03C */ c.lt.s $f22, $f30 +/* 0E66C4 7F0B1B94 00000000 */ nop +/* 0E66C8 7F0B1B98 45030012 */ bc1tl .L7F0B1BE4 +/* 0E66CC 7F0B1B9C 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E66D0 7F0B1BA0 461E003C */ c.lt.s $f0, $f30 +/* 0E66D4 7F0B1BA4 00000000 */ nop +/* 0E66D8 7F0B1BA8 4503000E */ bc1tl .L7F0B1BE4 +/* 0E66DC 7F0B1BAC 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E66E0 7F0B1BB0 8FAE00A4 */ lw $t6, 0xa4($sp) +/* 0E66E4 7F0B1BB4 01D11021 */ addu $v0, $t6, $s1 +/* 0E66E8 7F0B1BB8 01D01821 */ addu $v1, $t6, $s0 +/* 0E66EC 7F0B1BBC 8C660000 */ lw $a2, ($v1) +/* 0E66F0 7F0B1BC0 8C670004 */ lw $a3, 4($v1) +/* 0E66F4 7F0B1BC4 C44C0000 */ lwc1 $f12, ($v0) +/* 0E66F8 7F0B1BC8 C44E0004 */ lwc1 $f14, 4($v0) +/* 0E66FC 7F0B1BCC E7BC0014 */ swc1 $f28, 0x14($sp) +/* 0E6700 7F0B1BD0 0FC2C5F9 */ jal sub_GAME_7F0B17E4 +/* 0E6704 7F0B1BD4 E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E6708 7F0B1BD8 10400014 */ beqz $v0, .L7F0B1C2C +/* 0E670C 7F0B1BDC 00000000 */ nop +/* 0E6710 7F0B1BE0 8FAF00A4 */ lw $t7, 0xa4($sp) +.L7F0B1BE4: +/* 0E6714 7F0B1BE4 AED70000 */ sw $s7, ($s6) +/* 0E6718 7F0B1BE8 8FB800A4 */ lw $t8, 0xa4($sp) +/* 0E671C 7F0B1BEC 01F11021 */ addu $v0, $t7, $s1 +/* 0E6720 7F0B1BF0 C4520000 */ lwc1 $f18, ($v0) +/* 0E6724 7F0B1BF4 03101821 */ addu $v1, $t8, $s0 +/* 0E6728 7F0B1BF8 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E672C 7F0B1BFC E6720000 */ swc1 $f18, ($s3) +/* 0E6730 7F0B1C00 C4440004 */ lwc1 $f4, 4($v0) +/* 0E6734 7F0B1C04 4600A606 */ mov.s $f24, $f20 +/* 0E6738 7F0B1C08 E6640004 */ swc1 $f4, 4($s3) +/* 0E673C 7F0B1C0C C4660000 */ lwc1 $f6, ($v1) +/* 0E6740 7F0B1C10 E6860000 */ swc1 $f6, ($s4) +/* 0E6744 7F0B1C14 C4680004 */ lwc1 $f8, 4($v1) +/* 0E6748 7F0B1C18 AFC00000 */ sw $zero, ($fp) +/* 0E674C 7F0B1C1C E6880004 */ swc1 $f8, 4($s4) +/* 0E6750 7F0B1C20 AC20B9E8 */ sw $zero, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E6754 7F0B1C24 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA04) +/* 0E6758 7F0B1C28 AC35BA04 */ sw $s5, %lo(dword_CODE_bss_8007BA04)($at) +.L7F0B1C2C: +/* 0E675C 7F0B1C2C 52400004 */ beql $s2, $zero, .L7F0B1C40 +/* 0E6760 7F0B1C30 3C01BF80 */ lui $at, 0xbf80 +/* 0E6764 7F0B1C34 1000FF9D */ b .L7F0B1AAC +/* 0E6768 7F0B1C38 02402825 */ move $a1, $s2 +/* 0E676C 7F0B1C3C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F0B1C40: +/* 0E6770 7F0B1C40 44815000 */ mtc1 $at, $f10 +/* 0E6774 7F0B1C44 00000000 */ nop +/* 0E6778 7F0B1C48 4618503C */ c.lt.s $f10, $f24 +/* 0E677C 7F0B1C4C 00000000 */ nop +/* 0E6780 7F0B1C50 45020004 */ bc1fl .L7F0B1C64 +/* 0E6784 7F0B1C54 8FA30100 */ lw $v1, 0x100($sp) +/* 0E6788 7F0B1C58 10000008 */ b .L7F0B1C7C +/* 0E678C 7F0B1C5C 24020002 */ li $v0, 2 +.L7F0B1C60: +/* 0E6790 7F0B1C60 8FA30100 */ lw $v1, 0x100($sp) +.L7F0B1C64: +/* 0E6794 7F0B1C64 84620002 */ lh $v0, 2($v1) +/* 0E6798 7F0B1C68 24630002 */ addiu $v1, $v1, 2 +/* 0E679C 7F0B1C6C AFA30100 */ sw $v1, 0x100($sp) +/* 0E67A0 7F0B1C70 0443FF68 */ bgezl $v0, .L7F0B1A14 +/* 0E67A4 7F0B1C74 00026880 */ sll $t5, $v0, 2 +.L7F0B1C78: +/* 0E67A8 7F0B1C78 2402FFFE */ li $v0, -2 +.L7F0B1C7C: +/* 0E67AC 7F0B1C7C 8FBF007C */ lw $ra, 0x7c($sp) +.L7F0B1C80: +/* 0E67B0 7F0B1C80 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E67B4 7F0B1C84 D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E67B8 7F0B1C88 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E67BC 7F0B1C8C D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E67C0 7F0B1C90 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E67C4 7F0B1C94 D7BE0050 */ ldc1 $f30, 0x50($sp) +/* 0E67C8 7F0B1C98 8FB00058 */ lw $s0, 0x58($sp) +/* 0E67CC 7F0B1C9C 8FB1005C */ lw $s1, 0x5c($sp) +/* 0E67D0 7F0B1CA0 8FB20060 */ lw $s2, 0x60($sp) +/* 0E67D4 7F0B1CA4 8FB30064 */ lw $s3, 0x64($sp) +/* 0E67D8 7F0B1CA8 8FB40068 */ lw $s4, 0x68($sp) +/* 0E67DC 7F0B1CAC 8FB5006C */ lw $s5, 0x6c($sp) +/* 0E67E0 7F0B1CB0 8FB60070 */ lw $s6, 0x70($sp) +/* 0E67E4 7F0B1CB4 8FB70074 */ lw $s7, 0x74($sp) +/* 0E67E8 7F0B1CB8 8FBE0078 */ lw $fp, 0x78($sp) +/* 0E67EC 7F0B1CBC 03E00008 */ jr $ra +/* 0E67F0 7F0B1CC0 27BD0120 */ addiu $sp, $sp, 0x120 +) +#endif + + + + + +void sub_GAME_7F0B1CC4(void) { + dword_CODE_bss_8007B9E4 = 0; + dword_CODE_bss_8007B9E8 = 0; + D_800413BC = 0; +} + +s32 sub_GAME_7F0B1CE0(void) { + return dword_CODE_bss_8007B9E4; +} + +s32 sub_GAME_7F0B1CEC(void) { + return dword_CODE_bss_8007B9E8; +} + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B1CF8(void *arg0, s32 arg1, void *arg2, void *arg3) { + void *temp_v0; + void *temp_v0_2; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + temp_v0_2 = (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8)); + *arg3 = (f32) ((f32) temp_v0_2->unk8 * D_80040F48); + arg3->unk4 = (f32) ((f32) temp_v0_2->unkA * D_80040F48); + arg3->unk8 = (f32) ((f32) temp_v0_2->unkC * D_80040F48); + return temp_v0_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1CF8 +/* 0E6828 7F0B1CF8 000570C0 */ sll $t6, $a1, 3 +/* 0E682C 7F0B1CFC 008E1021 */ addu $v0, $a0, $t6 +/* 0E6830 7F0B1D00 844F0008 */ lh $t7, 8($v0) +/* 0E6834 7F0B1D04 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E6838 7F0B1D08 C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E683C 7F0B1D0C 448F2000 */ mtc1 $t7, $f4 +/* 0E6840 7F0B1D10 24A80001 */ addiu $t0, $a1, 1 +/* 0E6844 7F0B1D14 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6848 7F0B1D18 46003202 */ mul.s $f8, $f6, $f0 +/* 0E684C 7F0B1D1C E4C80000 */ swc1 $f8, ($a2) +/* 0E6850 7F0B1D20 8458000A */ lh $t8, 0xa($v0) +/* 0E6854 7F0B1D24 44985000 */ mtc1 $t8, $f10 +/* 0E6858 7F0B1D28 00000000 */ nop +/* 0E685C 7F0B1D2C 46805420 */ cvt.s.w $f16, $f10 +/* 0E6860 7F0B1D30 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6864 7F0B1D34 E4D20004 */ swc1 $f18, 4($a2) +/* 0E6868 7F0B1D38 8459000C */ lh $t9, 0xc($v0) +/* 0E686C 7F0B1D3C 44992000 */ mtc1 $t9, $f4 +/* 0E6870 7F0B1D40 00000000 */ nop +/* 0E6874 7F0B1D44 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6878 7F0B1D48 46003202 */ mul.s $f8, $f6, $f0 +/* 0E687C 7F0B1D4C E4C80008 */ swc1 $f8, 8($a2) +/* 0E6880 7F0B1D50 84890006 */ lh $t1, 6($a0) +/* 0E6884 7F0B1D54 00095303 */ sra $t2, $t1, 0xc +/* 0E6888 7F0B1D58 314B000F */ andi $t3, $t2, 0xf +/* 0E688C 7F0B1D5C 010B001A */ div $zero, $t0, $t3 +/* 0E6890 7F0B1D60 00002810 */ mfhi $a1 +/* 0E6894 7F0B1D64 000560C0 */ sll $t4, $a1, 3 +/* 0E6898 7F0B1D68 008C1021 */ addu $v0, $a0, $t4 +/* 0E689C 7F0B1D6C 844D0008 */ lh $t5, 8($v0) +/* 0E68A0 7F0B1D70 15600002 */ bnez $t3, .L7F0B1D7C +/* 0E68A4 7F0B1D74 00000000 */ nop +/* 0E68A8 7F0B1D78 0007000D */ break 7 +.L7F0B1D7C: +/* 0E68AC 7F0B1D7C 2401FFFF */ li $at, -1 +/* 0E68B0 7F0B1D80 15610004 */ bne $t3, $at, .L7F0B1D94 +/* 0E68B4 7F0B1D84 3C018000 */ lui $at, 0x8000 +/* 0E68B8 7F0B1D88 15010002 */ bne $t0, $at, .L7F0B1D94 +/* 0E68BC 7F0B1D8C 00000000 */ nop +/* 0E68C0 7F0B1D90 0006000D */ break 6 +.L7F0B1D94: +/* 0E68C4 7F0B1D94 448D5000 */ mtc1 $t5, $f10 +/* 0E68C8 7F0B1D98 00000000 */ nop +/* 0E68CC 7F0B1D9C 46805420 */ cvt.s.w $f16, $f10 +/* 0E68D0 7F0B1DA0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E68D4 7F0B1DA4 E4F20000 */ swc1 $f18, ($a3) +/* 0E68D8 7F0B1DA8 844E000A */ lh $t6, 0xa($v0) +/* 0E68DC 7F0B1DAC 448E2000 */ mtc1 $t6, $f4 +/* 0E68E0 7F0B1DB0 00000000 */ nop +/* 0E68E4 7F0B1DB4 468021A0 */ cvt.s.w $f6, $f4 +/* 0E68E8 7F0B1DB8 46003202 */ mul.s $f8, $f6, $f0 +/* 0E68EC 7F0B1DBC E4E80004 */ swc1 $f8, 4($a3) +/* 0E68F0 7F0B1DC0 844F000C */ lh $t7, 0xc($v0) +/* 0E68F4 7F0B1DC4 448F5000 */ mtc1 $t7, $f10 +/* 0E68F8 7F0B1DC8 00000000 */ nop +/* 0E68FC 7F0B1DCC 46805420 */ cvt.s.w $f16, $f10 +/* 0E6900 7F0B1DD0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6904 7F0B1DD4 03E00008 */ jr $ra +/* 0E6908 7F0B1DD8 E4F20008 */ swc1 $f18, 8($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1DDC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1DDC +/* 0E690C 7F0B1DDC 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 0E6910 7F0B1DE0 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 0E6914 7F0B1DE4 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E6918 7F0B1DE8 4485D000 */ mtc1 $a1, $f26 +/* 0E691C 7F0B1DEC C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E6920 7F0B1DF0 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 0E6924 7F0B1DF4 4486E000 */ mtc1 $a2, $f28 +/* 0E6928 7F0B1DF8 4600D682 */ mul.s $f26, $f26, $f0 +/* 0E692C 7F0B1DFC F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 0E6930 7F0B1E00 4487F000 */ mtc1 $a3, $f30 +/* 0E6934 7F0B1E04 4600E702 */ mul.s $f28, $f28, $f0 +/* 0E6938 7F0B1E08 AFBF0074 */ sw $ra, 0x74($sp) +/* 0E693C 7F0B1E0C AFBE0070 */ sw $fp, 0x70($sp) +/* 0E6940 7F0B1E10 AFB7006C */ sw $s7, 0x6c($sp) +/* 0E6944 7F0B1E14 AFB60068 */ sw $s6, 0x68($sp) +/* 0E6948 7F0B1E18 AFB50064 */ sw $s5, 0x64($sp) +/* 0E694C 7F0B1E1C AFB40060 */ sw $s4, 0x60($sp) +/* 0E6950 7F0B1E20 AFB3005C */ sw $s3, 0x5c($sp) +/* 0E6954 7F0B1E24 AFB20058 */ sw $s2, 0x58($sp) +/* 0E6958 7F0B1E28 AFB10054 */ sw $s1, 0x54($sp) +/* 0E695C 7F0B1E2C AFB00050 */ sw $s0, 0x50($sp) +/* 0E6960 7F0B1E30 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0E6964 7F0B1E34 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0E6968 7F0B1E38 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0E696C 7F0B1E3C AFA000A4 */ sw $zero, 0xa4($sp) +/* 0E6970 7F0B1E40 8C8E0000 */ lw $t6, ($a0) +/* 0E6974 7F0B1E44 27AF00B0 */ addiu $t7, $sp, 0xb0 +/* 0E6978 7F0B1E48 4600F782 */ mul.s $f30, $f30, $f0 +/* 0E697C 7F0B1E4C 24140001 */ li $s4, 1 +/* 0E6980 7F0B1E50 AFAF0084 */ sw $t7, 0x84($sp) +/* 0E6984 7F0B1E54 27B200B0 */ addiu $s2, $sp, 0xb0 +/* 0E6988 7F0B1E58 8FB60164 */ lw $s6, 0x164($sp) +/* 0E698C 7F0B1E5C 8FB7016C */ lw $s7, 0x16c($sp) +/* 0E6990 7F0B1E60 8FBE0168 */ lw $fp, 0x168($sp) +/* 0E6994 7F0B1E64 AFAE00B0 */ sw $t6, 0xb0($sp) +/* 0E6998 7F0B1E68 8FB80084 */ lw $t8, 0x84($sp) +.L7F0B1E6C: +/* 0E699C 7F0B1E6C 8FB900A4 */ lw $t9, 0xa4($sp) +/* 0E69A0 7F0B1E70 8FAA0160 */ lw $t2, 0x160($sp) +/* 0E69A4 7F0B1E74 8F130000 */ lw $s3, ($t8) +/* 0E69A8 7F0B1E78 27090004 */ addiu $t1, $t8, 4 +/* 0E69AC 7F0B1E7C 27280001 */ addiu $t0, $t9, 1 +/* 0E69B0 7F0B1E80 AFA800A4 */ sw $t0, 0xa4($sp) +/* 0E69B4 7F0B1E84 AFA90084 */ sw $t1, 0x84($sp) +/* 0E69B8 7F0B1E88 11400004 */ beqz $t2, .L7F0B1E9C +/* 0E69BC 7F0B1E8C 00008025 */ move $s0, $zero +/* 0E69C0 7F0B1E90 02602025 */ move $a0, $s3 +/* 0E69C4 7F0B1E94 0140F809 */ jalr $t2 +/* 0E69C8 7F0B1E98 02E02825 */ move $a1, $s7 +.L7F0B1E9C: +/* 0E69CC 7F0B1E9C 86620006 */ lh $v0, 6($s3) +/* 0E69D0 7F0B1EA0 00025B03 */ sra $t3, $v0, 0xc +/* 0E69D4 7F0B1EA4 316C000F */ andi $t4, $t3, 0xf +/* 0E69D8 7F0B1EA8 19800069 */ blez $t4, .L7F0B2050 +/* 0E69DC 7F0B1EAC 01801025 */ move $v0, $t4 +.L7F0B1EB0: +/* 0E69E0 7F0B1EB0 26150001 */ addiu $s5, $s0, 1 +/* 0E69E4 7F0B1EB4 02A2001A */ div $zero, $s5, $v0 +/* 0E69E8 7F0B1EB8 00008810 */ mfhi $s1 +/* 0E69EC 7F0B1EBC 4406D000 */ mfc1 $a2, $f26 +/* 0E69F0 7F0B1EC0 14400002 */ bnez $v0, .L7F0B1ECC +/* 0E69F4 7F0B1EC4 00000000 */ nop +/* 0E69F8 7F0B1EC8 0007000D */ break 7 +.L7F0B1ECC: +/* 0E69FC 7F0B1ECC 2401FFFF */ li $at, -1 +/* 0E6A00 7F0B1ED0 14410004 */ bne $v0, $at, .L7F0B1EE4 +/* 0E6A04 7F0B1ED4 3C018000 */ lui $at, 0x8000 +/* 0E6A08 7F0B1ED8 16A10002 */ bne $s5, $at, .L7F0B1EE4 +/* 0E6A0C 7F0B1EDC 00000000 */ nop +/* 0E6A10 7F0B1EE0 0006000D */ break 6 +.L7F0B1EE4: +/* 0E6A14 7F0B1EE4 4407E000 */ mfc1 $a3, $f28 +/* 0E6A18 7F0B1EE8 02602025 */ move $a0, $s3 +/* 0E6A1C 7F0B1EEC 0FC2BF47 */ jal sub_GAME_7F0AFD1C +/* 0E6A20 7F0B1EF0 02002825 */ move $a1, $s0 +/* 0E6A24 7F0B1EF4 4406D000 */ mfc1 $a2, $f26 +/* 0E6A28 7F0B1EF8 4407E000 */ mfc1 $a3, $f28 +/* 0E6A2C 7F0B1EFC 46000586 */ mov.s $f22, $f0 +/* 0E6A30 7F0B1F00 02602025 */ move $a0, $s3 +/* 0E6A34 7F0B1F04 0FC2C019 */ jal sub_GAME_7F0B0064 +/* 0E6A38 7F0B1F08 02002825 */ move $a1, $s0 +/* 0E6A3C 7F0B1F0C 4406D000 */ mfc1 $a2, $f26 +/* 0E6A40 7F0B1F10 4407E000 */ mfc1 $a3, $f28 +/* 0E6A44 7F0B1F14 46000506 */ mov.s $f20, $f0 +/* 0E6A48 7F0B1F18 02602025 */ move $a0, $s3 +/* 0E6A4C 7F0B1F1C 0FC2C019 */ jal sub_GAME_7F0B0064 +/* 0E6A50 7F0B1F20 02202825 */ move $a1, $s1 +/* 0E6A54 7F0B1F24 461EB03C */ c.lt.s $f22, $f30 +/* 0E6A58 7F0B1F28 46000606 */ mov.s $f24, $f0 +/* 0E6A5C 7F0B1F2C 45020042 */ bc1fl .L7F0B2038 +/* 0E6A60 7F0B1F30 86620006 */ lh $v0, 6($s3) +/* 0E6A64 7F0B1F34 461EA03C */ c.lt.s $f20, $f30 +/* 0E6A68 7F0B1F38 00000000 */ nop +/* 0E6A6C 7F0B1F3C 4501000B */ bc1t .L7F0B1F6C +/* 0E6A70 7F0B1F40 00000000 */ nop +/* 0E6A74 7F0B1F44 461E003C */ c.lt.s $f0, $f30 +/* 0E6A78 7F0B1F48 02602025 */ move $a0, $s3 +/* 0E6A7C 7F0B1F4C 45010007 */ bc1t .L7F0B1F6C +/* 0E6A80 7F0B1F50 00000000 */ nop +/* 0E6A84 7F0B1F54 4406D000 */ mfc1 $a2, $f26 +/* 0E6A88 7F0B1F58 4407E000 */ mfc1 $a3, $f28 +/* 0E6A8C 7F0B1F5C 0FC2C066 */ jal sub_GAME_7F0B0198 +/* 0E6A90 7F0B1F60 02002825 */ move $a1, $s0 +/* 0E6A94 7F0B1F64 50400034 */ beql $v0, $zero, .L7F0B2038 +/* 0E6A98 7F0B1F68 86620006 */ lh $v0, 6($s3) +.L7F0B1F6C: +/* 0E6A9C 7F0B1F6C 12C00008 */ beqz $s6, .L7F0B1F90 +/* 0E6AA0 7F0B1F70 02602025 */ move $a0, $s3 +/* 0E6AA4 7F0B1F74 4406B000 */ mfc1 $a2, $f22 +/* 0E6AA8 7F0B1F78 4407A000 */ mfc1 $a3, $f20 +/* 0E6AAC 7F0B1F7C 02002825 */ move $a1, $s0 +/* 0E6AB0 7F0B1F80 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0E6AB4 7F0B1F84 02C0F809 */ jalr $s6 +/* 0E6AB8 7F0B1F88 AFB70014 */ sw $s7, 0x14($sp) +/* 0E6ABC 7F0B1F8C 1440001B */ bnez $v0, .L7F0B1FFC +.L7F0B1F90: +/* 0E6AC0 7F0B1F90 001068C0 */ sll $t5, $s0, 3 +/* 0E6AC4 7F0B1F94 026D7021 */ addu $t6, $s3, $t5 +/* 0E6AC8 7F0B1F98 95C4000E */ lhu $a0, 0xe($t6) +/* 0E6ACC 7F0B1F9C 3C088004 */ lui $t0, %hi(base_ptr_connection_vals) +/* 0E6AD0 7F0B1FA0 2682FFFF */ addiu $v0, $s4, -1 +/* 0E6AD4 7F0B1FA4 00047903 */ sra $t7, $a0, 4 +/* 0E6AD8 7F0B1FA8 11E00014 */ beqz $t7, .L7F0B1FFC +/* 0E6ADC 7F0B1FAC 0004C8C0 */ sll $t9, $a0, 3 +/* 0E6AE0 7F0B1FB0 8D080F58 */ lw $t0, %lo(base_ptr_connection_vals)($t0) +/* 0E6AE4 7F0B1FB4 00402825 */ move $a1, $v0 +/* 0E6AE8 7F0B1FB8 0440000B */ bltz $v0, .L7F0B1FE8 +/* 0E6AEC 7F0B1FBC 03281821 */ addu $v1, $t9, $t0 +/* 0E6AF0 7F0B1FC0 0002C080 */ sll $t8, $v0, 2 +/* 0E6AF4 7F0B1FC4 27A900B0 */ addiu $t1, $sp, 0xb0 +/* 0E6AF8 7F0B1FC8 03091021 */ addu $v0, $t8, $t1 +/* 0E6AFC 7F0B1FCC 8C4A0000 */ lw $t2, ($v0) +.L7F0B1FD0: +/* 0E6B00 7F0B1FD0 2442FFFC */ addiu $v0, $v0, -4 +/* 0E6B04 7F0B1FD4 0052082B */ sltu $at, $v0, $s2 +/* 0E6B08 7F0B1FD8 506A0017 */ beql $v1, $t2, .L7F0B2038 +/* 0E6B0C 7F0B1FDC 86620006 */ lh $v0, 6($s3) +/* 0E6B10 7F0B1FE0 5020FFFB */ beql $at, $zero, .L7F0B1FD0 +/* 0E6B14 7F0B1FE4 8C4A0000 */ lw $t2, ($v0) +.L7F0B1FE8: +/* 0E6B18 7F0B1FE8 00145880 */ sll $t3, $s4, 2 +/* 0E6B1C 7F0B1FEC 03AB6021 */ addu $t4, $sp, $t3 +/* 0E6B20 7F0B1FF0 AD8300B0 */ sw $v1, 0xb0($t4) +/* 0E6B24 7F0B1FF4 1000000F */ b .L7F0B2034 +/* 0E6B28 7F0B1FF8 26940001 */ addiu $s4, $s4, 1 +.L7F0B1FFC: +/* 0E6B2C 7F0B1FFC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E6B30 7F0B2000 AC33B9E4 */ sw $s3, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E6B34 7F0B2004 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E6B38 7F0B2008 13C00008 */ beqz $fp, .L7F0B202C +/* 0E6B3C 7F0B200C AC30B9E8 */ sw $s0, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E6B40 7F0B2010 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 0E6B44 7F0B2014 02802825 */ move $a1, $s4 +/* 0E6B48 7F0B2018 03C0F809 */ jalr $fp +/* 0E6B4C 7F0B201C 02E03025 */ move $a2, $s7 +/* 0E6B50 7F0B2020 24010001 */ li $at, 1 +/* 0E6B54 7F0B2024 50410004 */ beql $v0, $at, .L7F0B2038 +/* 0E6B58 7F0B2028 86620006 */ lh $v0, 6($s3) +.L7F0B202C: +/* 0E6B5C 7F0B202C 10000016 */ b .L7F0B2088 +/* 0E6B60 7F0B2030 24020002 */ li $v0, 2 +.L7F0B2034: +/* 0E6B64 7F0B2034 86620006 */ lh $v0, 6($s3) +.L7F0B2038: +/* 0E6B68 7F0B2038 02A08025 */ move $s0, $s5 +/* 0E6B6C 7F0B203C 00026B03 */ sra $t5, $v0, 0xc +/* 0E6B70 7F0B2040 31AE000F */ andi $t6, $t5, 0xf +/* 0E6B74 7F0B2044 02AE082A */ slt $at, $s5, $t6 +/* 0E6B78 7F0B2048 1420FF99 */ bnez $at, .L7F0B1EB0 +/* 0E6B7C 7F0B204C 01C01025 */ move $v0, $t6 +.L7F0B2050: +/* 0E6B80 7F0B2050 2E810029 */ sltiu $at, $s4, 0x29 +/* 0E6B84 7F0B2054 14200003 */ bnez $at, .L7F0B2064 +/* 0E6B88 7F0B2058 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E6B8C 7F0B205C 1000000A */ b .L7F0B2088 +/* 0E6B90 7F0B2060 24020005 */ li $v0, 5 +.L7F0B2064: +/* 0E6B94 7F0B2064 01F4082A */ slt $at, $t7, $s4 +/* 0E6B98 7F0B2068 5420FF80 */ bnezl $at, .L7F0B1E6C +/* 0E6B9C 7F0B206C 8FB80084 */ lw $t8, 0x84($sp) +/* 0E6BA0 7F0B2070 13C00004 */ beqz $fp, .L7F0B2084 +/* 0E6BA4 7F0B2074 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 0E6BA8 7F0B2078 02802825 */ move $a1, $s4 +/* 0E6BAC 7F0B207C 03C0F809 */ jalr $fp +/* 0E6BB0 7F0B2080 02E03025 */ move $a2, $s7 +.L7F0B2084: +/* 0E6BB4 7F0B2084 2402FFFE */ li $v0, -2 +.L7F0B2088: +/* 0E6BB8 7F0B2088 8FBF0074 */ lw $ra, 0x74($sp) +/* 0E6BBC 7F0B208C D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0E6BC0 7F0B2090 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0E6BC4 7F0B2094 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0E6BC8 7F0B2098 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0E6BCC 7F0B209C D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0E6BD0 7F0B20A0 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0E6BD4 7F0B20A4 8FB00050 */ lw $s0, 0x50($sp) +/* 0E6BD8 7F0B20A8 8FB10054 */ lw $s1, 0x54($sp) +/* 0E6BDC 7F0B20AC 8FB20058 */ lw $s2, 0x58($sp) +/* 0E6BE0 7F0B20B0 8FB3005C */ lw $s3, 0x5c($sp) +/* 0E6BE4 7F0B20B4 8FB40060 */ lw $s4, 0x60($sp) +/* 0E6BE8 7F0B20B8 8FB50064 */ lw $s5, 0x64($sp) +/* 0E6BEC 7F0B20BC 8FB60068 */ lw $s6, 0x68($sp) +/* 0E6BF0 7F0B20C0 8FB7006C */ lw $s7, 0x6c($sp) +/* 0E6BF4 7F0B20C4 8FBE0070 */ lw $fp, 0x70($sp) +/* 0E6BF8 7F0B20C8 03E00008 */ jr $ra +/* 0E6BFC 7F0B20CC 27BD0150 */ addiu $sp, $sp, 0x150 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B20D0(s32 arg1, ? arg2, ? arg3) { + // Node 0 + sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, 0, 0, 0, 0); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B20D0 +/* 0E6C00 7F0B20D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E6C04 7F0B20D4 44856000 */ mtc1 $a1, $f12 +/* 0E6C08 7F0B20D8 44867000 */ mtc1 $a2, $f14 +/* 0E6C0C 7F0B20DC AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6C10 7F0B20E0 44056000 */ mfc1 $a1, $f12 +/* 0E6C14 7F0B20E4 44067000 */ mfc1 $a2, $f14 +/* 0E6C18 7F0B20E8 AFA70034 */ sw $a3, 0x34($sp) +/* 0E6C1C 7F0B20EC AFA00010 */ sw $zero, 0x10($sp) +/* 0E6C20 7F0B20F0 AFA00014 */ sw $zero, 0x14($sp) +/* 0E6C24 7F0B20F4 AFA00018 */ sw $zero, 0x18($sp) +/* 0E6C28 7F0B20F8 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6C2C 7F0B20FC AFA0001C */ sw $zero, 0x1c($sp) +/* 0E6C30 7F0B2100 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6C34 7F0B2104 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E6C38 7F0B2108 03E00008 */ jr $ra +/* 0E6C3C 7F0B210C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2110(void *arg0, void *arg1) { + s32 temp_v1; + void *phi_t0; + s32 phi_v1; + + // Node 0 + if (arg1->unk4 > 0) + { + // Node 1 + phi_t0 = *arg1; + phi_v1 = 0; +loop_2: + // Node 2 + if (arg0->unk3 == *phi_t0) + { + // Node 3 + return 0; + } + // Node 4 + temp_v1 = (phi_v1 + 1); + phi_t0 = (phi_t0 + 4); + phi_v1 = temp_v1; + if (temp_v1 < arg1->unk4) + { + goto loop_2; + } + } + // Node 5 + if (arg1->unk4 < arg1->unk8) + { + // Node 6 + *(*arg1 + (arg1->unk4 * 4)) = (s32) arg0->unk3; + arg1->unk4 = (s32) (arg1->unk4 + 1); + } + // Node 7 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2110 +/* 0E6C40 7F0B2110 8CA60004 */ lw $a2, 4($a1) +/* 0E6C44 7F0B2114 00A01025 */ move $v0, $a1 +/* 0E6C48 7F0B2118 00001825 */ move $v1, $zero +/* 0E6C4C 7F0B211C 58C0000F */ blezl $a2, .L7F0B215C +/* 0E6C50 7F0B2120 8CB80008 */ lw $t8, 8($a1) +/* 0E6C54 7F0B2124 90870003 */ lbu $a3, 3($a0) +/* 0E6C58 7F0B2128 8CA80000 */ lw $t0, ($a1) +/* 0E6C5C 7F0B212C 8D0E0000 */ lw $t6, ($t0) +.L7F0B2130: +/* 0E6C60 7F0B2130 54EE0004 */ bnel $a3, $t6, .L7F0B2144 +/* 0E6C64 7F0B2134 8C4F0004 */ lw $t7, 4($v0) +/* 0E6C68 7F0B2138 03E00008 */ jr $ra +/* 0E6C6C 7F0B213C 00001025 */ move $v0, $zero + +/* 0E6C70 7F0B2140 8C4F0004 */ lw $t7, 4($v0) +.L7F0B2144: +/* 0E6C74 7F0B2144 24630001 */ addiu $v1, $v1, 1 +/* 0E6C78 7F0B2148 25080004 */ addiu $t0, $t0, 4 +/* 0E6C7C 7F0B214C 006F082A */ slt $at, $v1, $t7 +/* 0E6C80 7F0B2150 5420FFF7 */ bnezl $at, .L7F0B2130 +/* 0E6C84 7F0B2154 8D0E0000 */ lw $t6, ($t0) +/* 0E6C88 7F0B2158 8CB80008 */ lw $t8, 8($a1) +.L7F0B215C: +/* 0E6C8C 7F0B215C 00001025 */ move $v0, $zero +/* 0E6C90 7F0B2160 00D8082A */ slt $at, $a2, $t8 +/* 0E6C94 7F0B2164 10200009 */ beqz $at, .L7F0B218C +/* 0E6C98 7F0B2168 00000000 */ nop +/* 0E6C9C 7F0B216C 8CA90000 */ lw $t1, ($a1) +/* 0E6CA0 7F0B2170 90990003 */ lbu $t9, 3($a0) +/* 0E6CA4 7F0B2174 00065080 */ sll $t2, $a2, 2 +/* 0E6CA8 7F0B2178 012A5821 */ addu $t3, $t1, $t2 +/* 0E6CAC 7F0B217C AD790000 */ sw $t9, ($t3) +/* 0E6CB0 7F0B2180 8CAC0004 */ lw $t4, 4($a1) +/* 0E6CB4 7F0B2184 258D0001 */ addiu $t5, $t4, 1 +/* 0E6CB8 7F0B2188 ACAD0004 */ sw $t5, 4($a1) +.L7F0B218C: +/* 0E6CBC 7F0B218C 03E00008 */ jr $ra +/* 0E6CC0 7F0B2190 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2194(s32 arg0, s32 arg1, void *arg2) { + // Node 0 + arg2->unkC = (s32) (arg2->unkC + 1); + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2194 +/* 0E6CC4 7F0B2194 AFA40000 */ sw $a0, ($sp) +/* 0E6CC8 7F0B2198 AFA50004 */ sw $a1, 4($sp) +/* 0E6CCC 7F0B219C 8CCE000C */ lw $t6, 0xc($a2) +/* 0E6CD0 7F0B21A0 24020001 */ li $v0, 1 +/* 0E6CD4 7F0B21A4 25CF0001 */ addiu $t7, $t6, 1 +/* 0E6CD8 7F0B21A8 03E00008 */ jr $ra +/* 0E6CDC 7F0B21AC ACCF000C */ sw $t7, 0xc($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B21B0(s32 arg1, ? arg2, ? arg3, ?32 arg4, void *arg5, ?32 arg6) { + ?32 sp30; + ?32 sp34; + ?32 sp38; + s32 sp3C; + + // Node 0 + sp34 = 0; + sp3C = 0; + sp30 = arg4; + sp38 = arg6; + *arg5 = sp34; + if (sp3C >= 2) + { + // Node 1 + } + // Node 2 + return sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, &sub_GAME_7F0B2110, 0, &sub_GAME_7F0B2194, &sp30); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B21B0 +/* 0E6CE0 7F0B21B0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E6CE4 7F0B21B4 44856000 */ mtc1 $a1, $f12 +/* 0E6CE8 7F0B21B8 44867000 */ mtc1 $a2, $f14 +/* 0E6CEC 7F0B21BC 8FAE0050 */ lw $t6, 0x50($sp) +/* 0E6CF0 7F0B21C0 8FAF0058 */ lw $t7, 0x58($sp) +/* 0E6CF4 7F0B21C4 3C187F0B */ lui $t8, %hi(sub_GAME_7F0B2110) # $t8, 0x7f0b +/* 0E6CF8 7F0B21C8 3C197F0B */ lui $t9, %hi(sub_GAME_7F0B2194) # $t9, 0x7f0b +/* 0E6CFC 7F0B21CC AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6D00 7F0B21D0 27392194 */ addiu $t9, %lo(sub_GAME_7F0B2194) # addiu $t9, $t9, 0x2194 +/* 0E6D04 7F0B21D4 27182110 */ addiu $t8, %lo(sub_GAME_7F0B2110) # addiu $t8, $t8, 0x2110 +/* 0E6D08 7F0B21D8 27A80030 */ addiu $t0, $sp, 0x30 +/* 0E6D0C 7F0B21DC 44056000 */ mfc1 $a1, $f12 +/* 0E6D10 7F0B21E0 44067000 */ mfc1 $a2, $f14 +/* 0E6D14 7F0B21E4 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E6D18 7F0B21E8 AFA00034 */ sw $zero, 0x34($sp) +/* 0E6D1C 7F0B21EC AFA0003C */ sw $zero, 0x3c($sp) +/* 0E6D20 7F0B21F0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E6D24 7F0B21F4 AFB80010 */ sw $t8, 0x10($sp) +/* 0E6D28 7F0B21F8 AFB90018 */ sw $t9, 0x18($sp) +/* 0E6D2C 7F0B21FC AFA00014 */ sw $zero, 0x14($sp) +/* 0E6D30 7F0B2200 AFAE0030 */ sw $t6, 0x30($sp) +/* 0E6D34 7F0B2204 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6D38 7F0B2208 AFAF0038 */ sw $t7, 0x38($sp) +/* 0E6D3C 7F0B220C 8FA90034 */ lw $t1, 0x34($sp) +/* 0E6D40 7F0B2210 8FAA0054 */ lw $t2, 0x54($sp) +/* 0E6D44 7F0B2214 00401825 */ move $v1, $v0 +/* 0E6D48 7F0B2218 00601025 */ move $v0, $v1 +/* 0E6D4C 7F0B221C AD490000 */ sw $t1, ($t2) +/* 0E6D50 7F0B2220 8FAB003C */ lw $t3, 0x3c($sp) +/* 0E6D54 7F0B2224 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6D58 7F0B2228 29610002 */ slti $at, $t3, 2 +/* 0E6D5C 7F0B222C 14200003 */ bnez $at, .L7F0B223C +/* 0E6D60 7F0B2230 00000000 */ nop +/* 0E6D64 7F0B2234 10000001 */ b .L7F0B223C +/* 0E6D68 7F0B2238 24020002 */ li $v0, 2 +.L7F0B223C: +/* 0E6D6C 7F0B223C 03E00008 */ jr $ra +/* 0E6D70 7F0B2240 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2244(void *arg0, void *arg1) { + // Node 0 + if ((*(&D_80040F30 + ((s32) arg0->unk4 >> 0xc)) & 2) != 0) + { + // Node 1 + *arg1 = 1; + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2244 +/* 0E6D74 7F0B2244 84820004 */ lh $v0, 4($a0) +/* 0E6D78 7F0B2248 3C0F8004 */ lui $t7, %hi(D_80040F30) +/* 0E6D7C 7F0B224C 24190001 */ li $t9, 1 +/* 0E6D80 7F0B2250 00027303 */ sra $t6, $v0, 0xc +/* 0E6D84 7F0B2254 01EE7821 */ addu $t7, $t7, $t6 +/* 0E6D88 7F0B2258 91EF0F30 */ lbu $t7, %lo(D_80040F30)($t7) +/* 0E6D8C 7F0B225C 31F80002 */ andi $t8, $t7, 2 +/* 0E6D90 7F0B2260 13000002 */ beqz $t8, .L7F0B226C +/* 0E6D94 7F0B2264 00000000 */ nop +/* 0E6D98 7F0B2268 ACB90000 */ sw $t9, ($a1) +.L7F0B226C: +/* 0E6D9C 7F0B226C 03E00008 */ jr $ra +/* 0E6DA0 7F0B2270 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2274(s32 arg0, s32 arg1, ? arg2, ? arg3, void *arg5) { + void *temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = (arg0 + (arg1 * 8)); + if (((s32) temp_t7->unkE >> 4) != 0) + { + // Node 1 + temp_v1 = ((temp_t7->unkE * 8) + base_ptr_connection_vals); + if ((*(&D_80040F30 + ((s32) temp_v1->unk4 >> 0xc)) & 2) != 0) + { + // Node 2 + *arg5 = 1; + return 1; + } + // Node 3 + if ((*(&D_80040F30 + ((s32) temp_v1->unk4 >> 0xc)) & 0x40) != 0) + { + // Node 4 + dword_CODE_bss_8007BA0C = temp_v1; + arg5->unk4 = 1; + return 0; + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2274 +/* 0E6DA4 7F0B2274 000570C0 */ sll $t6, $a1, 3 +/* 0E6DA8 7F0B2278 AFA60008 */ sw $a2, 8($sp) +/* 0E6DAC 7F0B227C AFA7000C */ sw $a3, 0xc($sp) +/* 0E6DB0 7F0B2280 008E7821 */ addu $t7, $a0, $t6 +/* 0E6DB4 7F0B2284 95E2000E */ lhu $v0, 0xe($t7) +/* 0E6DB8 7F0B2288 3C088004 */ lui $t0, %hi(base_ptr_connection_vals) +/* 0E6DBC 7F0B228C 0002C103 */ sra $t8, $v0, 4 +/* 0E6DC0 7F0B2290 5300001E */ beql $t8, $zero, .L7F0B230C +/* 0E6DC4 7F0B2294 00001025 */ move $v0, $zero +/* 0E6DC8 7F0B2298 8D080F58 */ lw $t0, %lo(base_ptr_connection_vals)($t0) +/* 0E6DCC 7F0B229C 0002C8C0 */ sll $t9, $v0, 3 +/* 0E6DD0 7F0B22A0 3C058004 */ lui $a1, %hi(D_80040F30) +/* 0E6DD4 7F0B22A4 03281821 */ addu $v1, $t9, $t0 +/* 0E6DD8 7F0B22A8 84640004 */ lh $a0, 4($v1) +/* 0E6DDC 7F0B22AC 24A50F30 */ addiu $a1, %lo(D_80040F30) # addiu $a1, $a1, 0xf30 +/* 0E6DE0 7F0B22B0 240D0001 */ li $t5, 1 +/* 0E6DE4 7F0B22B4 00044B03 */ sra $t1, $a0, 0xc +/* 0E6DE8 7F0B22B8 00A95021 */ addu $t2, $a1, $t1 +/* 0E6DEC 7F0B22BC 914B0000 */ lbu $t3, ($t2) +/* 0E6DF0 7F0B22C0 00047B03 */ sra $t7, $a0, 0xc +/* 0E6DF4 7F0B22C4 8FAE0014 */ lw $t6, 0x14($sp) +/* 0E6DF8 7F0B22C8 316C0002 */ andi $t4, $t3, 2 +/* 0E6DFC 7F0B22CC 11800004 */ beqz $t4, .L7F0B22E0 +/* 0E6E00 7F0B22D0 00AFC021 */ addu $t8, $a1, $t7 +/* 0E6E04 7F0B22D4 ADCD0000 */ sw $t5, ($t6) +/* 0E6E08 7F0B22D8 03E00008 */ jr $ra +/* 0E6E0C 7F0B22DC 24020001 */ li $v0, 1 + +.L7F0B22E0: +/* 0E6E10 7F0B22E0 93190000 */ lbu $t9, ($t8) +/* 0E6E14 7F0B22E4 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA0C) +/* 0E6E18 7F0B22E8 24090001 */ li $t1, 1 +/* 0E6E1C 7F0B22EC 33280040 */ andi $t0, $t9, 0x40 +/* 0E6E20 7F0B22F0 11000005 */ beqz $t0, .L7F0B2308 +/* 0E6E24 7F0B22F4 00001025 */ move $v0, $zero +/* 0E6E28 7F0B22F8 8FAA0014 */ lw $t2, 0x14($sp) +/* 0E6E2C 7F0B22FC AC23BA0C */ sw $v1, %lo(dword_CODE_bss_8007BA0C)($at) +/* 0E6E30 7F0B2300 03E00008 */ jr $ra +/* 0E6E34 7F0B2304 AD490004 */ sw $t1, 4($t2) + +.L7F0B2308: +/* 0E6E38 7F0B2308 00001025 */ move $v0, $zero +.L7F0B230C: +/* 0E6E3C 7F0B230C 03E00008 */ jr $ra +/* 0E6E40 7F0B2310 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2314(s32 arg0, s32 arg1, ? arg2, ? arg3, void *arg4) { + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + + // Node 0 + phi_v0 = arg4; + phi_v1 = 0; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 4); + *phi_v0 = 0; + phi_v0->unk4 = 0; + phi_v0->unk8 = 0; + phi_v0->unkC = 0; + phi_v0 = (phi_v0 + 0x10); + phi_v1 = temp_v1; + if (temp_v1 != 0x10) + { + goto loop_1; + } + // Node 2 + return sub_GAME_7F0B1DDC(arg1, arg2, arg0, arg1, arg2, arg3, &sub_GAME_7F0B2244, &sub_GAME_7F0B2274, 0, arg4); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2314 +/* 0E6E44 7F0B2314 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E6E48 7F0B2318 AFA40028 */ sw $a0, 0x28($sp) +/* 0E6E4C 7F0B231C 44856000 */ mtc1 $a1, $f12 +/* 0E6E50 7F0B2320 44867000 */ mtc1 $a2, $f14 +/* 0E6E54 7F0B2324 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6E58 7F0B2328 AFA70034 */ sw $a3, 0x34($sp) +/* 0E6E5C 7F0B232C 24040010 */ li $a0, 16 +/* 0E6E60 7F0B2330 8FA20038 */ lw $v0, 0x38($sp) +/* 0E6E64 7F0B2334 00001825 */ move $v1, $zero +.L7F0B2338: +/* 0E6E68 7F0B2338 24630004 */ addiu $v1, $v1, 4 +/* 0E6E6C 7F0B233C AC400000 */ sw $zero, ($v0) +/* 0E6E70 7F0B2340 AC400004 */ sw $zero, 4($v0) +/* 0E6E74 7F0B2344 AC400008 */ sw $zero, 8($v0) +/* 0E6E78 7F0B2348 AC40000C */ sw $zero, 0xc($v0) +/* 0E6E7C 7F0B234C 1464FFFA */ bne $v1, $a0, .L7F0B2338 +/* 0E6E80 7F0B2350 24420010 */ addiu $v0, $v0, 0x10 +/* 0E6E84 7F0B2354 8FB80038 */ lw $t8, 0x38($sp) +/* 0E6E88 7F0B2358 3C0E7F0B */ lui $t6, %hi(sub_GAME_7F0B2244) # $t6, 0x7f0b +/* 0E6E8C 7F0B235C 3C0F7F0B */ lui $t7, %hi(sub_GAME_7F0B2274) # $t7, 0x7f0b +/* 0E6E90 7F0B2360 25EF2274 */ addiu $t7, %lo(sub_GAME_7F0B2274) # addiu $t7, $t7, 0x2274 +/* 0E6E94 7F0B2364 25CE2244 */ addiu $t6, %lo(sub_GAME_7F0B2244) # addiu $t6, $t6, 0x2244 +/* 0E6E98 7F0B2368 44056000 */ mfc1 $a1, $f12 +/* 0E6E9C 7F0B236C 44067000 */ mfc1 $a2, $f14 +/* 0E6EA0 7F0B2370 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E6EA4 7F0B2374 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E6EA8 7F0B2378 8FA40028 */ lw $a0, 0x28($sp) +/* 0E6EAC 7F0B237C 8FA70034 */ lw $a3, 0x34($sp) +/* 0E6EB0 7F0B2380 AFA00018 */ sw $zero, 0x18($sp) +/* 0E6EB4 7F0B2384 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6EB8 7F0B2388 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E6EBC 7F0B238C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6EC0 7F0B2390 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E6EC4 7F0B2394 03E00008 */ jr $ra +/* 0E6EC8 7F0B2398 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B239C(void *arg0) { + // Node 0 + return *arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B239C +/* 0E6ECC 7F0B239C 03E00008 */ jr $ra +/* 0E6ED0 7F0B23A0 8C820000 */ lw $v0, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B23A4(void *arg0) { + // Node 0 + return arg0->unk4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B23A4 +/* 0E6ED4 7F0B23A4 03E00008 */ jr $ra +/* 0E6ED8 7F0B23A8 8C820004 */ lw $v0, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B23AC(void *arg0, s32 arg1, void *arg2) { + void *temp_v0; + + // Node 0 + temp_v0 = (arg0 + ((((s32) arg0->unk6 >> (8 - (arg1 * 4))) & 0xf) * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + return D_80040F48; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B23AC +/* 0E6EDC 7F0B23AC 848E0006 */ lh $t6, 6($a0) +/* 0E6EE0 7F0B23B0 00057880 */ sll $t7, $a1, 2 +/* 0E6EE4 7F0B23B4 24180008 */ li $t8, 8 +/* 0E6EE8 7F0B23B8 030FC823 */ subu $t9, $t8, $t7 +/* 0E6EEC 7F0B23BC 032E2807 */ srav $a1, $t6, $t9 +/* 0E6EF0 7F0B23C0 30A8000F */ andi $t0, $a1, 0xf +/* 0E6EF4 7F0B23C4 000848C0 */ sll $t1, $t0, 3 +/* 0E6EF8 7F0B23C8 00891021 */ addu $v0, $a0, $t1 +/* 0E6EFC 7F0B23CC 844A0008 */ lh $t2, 8($v0) +/* 0E6F00 7F0B23D0 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E6F04 7F0B23D4 C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E6F08 7F0B23D8 448A2000 */ mtc1 $t2, $f4 +/* 0E6F0C 7F0B23DC 00000000 */ nop +/* 0E6F10 7F0B23E0 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6F14 7F0B23E4 46003202 */ mul.s $f8, $f6, $f0 +/* 0E6F18 7F0B23E8 E4C80000 */ swc1 $f8, ($a2) +/* 0E6F1C 7F0B23EC 844B000A */ lh $t3, 0xa($v0) +/* 0E6F20 7F0B23F0 448B5000 */ mtc1 $t3, $f10 +/* 0E6F24 7F0B23F4 00000000 */ nop +/* 0E6F28 7F0B23F8 46805420 */ cvt.s.w $f16, $f10 +/* 0E6F2C 7F0B23FC 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6F30 7F0B2400 E4D20004 */ swc1 $f18, 4($a2) +/* 0E6F34 7F0B2404 844C000C */ lh $t4, 0xc($v0) +/* 0E6F38 7F0B2408 448C2000 */ mtc1 $t4, $f4 +/* 0E6F3C 7F0B240C 00000000 */ nop +/* 0E6F40 7F0B2410 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6F44 7F0B2414 46003202 */ mul.s $f8, $f6, $f0 +/* 0E6F48 7F0B2418 03E00008 */ jr $ra +/* 0E6F4C 7F0B241C E4C80008 */ swc1 $f8, 8($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2420(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2420 +/* 0E6F50 7F0B2420 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E6F54 7F0B2424 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007BA0C) +/* 0E6F58 7F0B2428 8D29BA0C */ lw $t1, %lo(dword_CODE_bss_8007BA0C)($t1) +/* 0E6F5C 7F0B242C AFBF003C */ sw $ra, 0x3c($sp) +/* 0E6F60 7F0B2430 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E6F64 7F0B2434 AFB70034 */ sw $s7, 0x34($sp) +/* 0E6F68 7F0B2438 AFB60030 */ sw $s6, 0x30($sp) +/* 0E6F6C 7F0B243C AFB5002C */ sw $s5, 0x2c($sp) +/* 0E6F70 7F0B2440 AFB40028 */ sw $s4, 0x28($sp) +/* 0E6F74 7F0B2444 AFB30024 */ sw $s3, 0x24($sp) +/* 0E6F78 7F0B2448 AFB20020 */ sw $s2, 0x20($sp) +/* 0E6F7C 7F0B244C AFB1001C */ sw $s1, 0x1c($sp) +/* 0E6F80 7F0B2450 AFB00018 */ sw $s0, 0x18($sp) +/* 0E6F84 7F0B2454 85280006 */ lh $t0, 6($t1) +/* 0E6F88 7F0B2458 00808025 */ move $s0, $a0 +/* 0E6F8C 7F0B245C 00A08825 */ move $s1, $a1 +/* 0E6F90 7F0B2460 00087303 */ sra $t6, $t0, 0xc +/* 0E6F94 7F0B2464 31C8000F */ andi $t0, $t6, 0xf +/* 0E6F98 7F0B2468 00C0A825 */ move $s5, $a2 +/* 0E6F9C 7F0B246C 1900005B */ blez $t0, .L7F0B25DC +/* 0E6FA0 7F0B2470 00003825 */ move $a3, $zero +/* 0E6FA4 7F0B2474 3C048004 */ lui $a0, %hi(base_ptr_connection_vals) +/* 0E6FA8 7F0B2478 3C058004 */ lui $a1, %hi(D_80040F30) +/* 0E6FAC 7F0B247C 24A50F30 */ addiu $a1, %lo(D_80040F30) # addiu $a1, $a1, 0xf30 +/* 0E6FB0 7F0B2480 8C840F58 */ lw $a0, %lo(base_ptr_connection_vals)($a0) +/* 0E6FB4 7F0B2484 01201825 */ move $v1, $t1 +.L7F0B2488: +/* 0E6FB8 7F0B2488 9462000E */ lhu $v0, 0xe($v1) +/* 0E6FBC 7F0B248C 0002C0C0 */ sll $t8, $v0, 3 +/* 0E6FC0 7F0B2490 0002C903 */ sra $t9, $v0, 4 +/* 0E6FC4 7F0B2494 1320004D */ beqz $t9, .L7F0B25CC +/* 0E6FC8 7F0B2498 0304B021 */ addu $s6, $t8, $a0 +/* 0E6FCC 7F0B249C 86C20004 */ lh $v0, 4($s6) +/* 0E6FD0 7F0B24A0 00025303 */ sra $t2, $v0, 0xc +/* 0E6FD4 7F0B24A4 00AA5821 */ addu $t3, $a1, $t2 +/* 0E6FD8 7F0B24A8 916C0000 */ lbu $t4, ($t3) +/* 0E6FDC 7F0B24AC 318D0040 */ andi $t5, $t4, 0x40 +/* 0E6FE0 7F0B24B0 11A00046 */ beqz $t5, .L7F0B25CC +/* 0E6FE4 7F0B24B4 24FE0002 */ addiu $fp, $a3, 2 +/* 0E6FE8 7F0B24B8 24010003 */ li $at, 3 +/* 0E6FEC 7F0B24BC 03C1001A */ div $zero, $fp, $at +/* 0E6FF0 7F0B24C0 AE090000 */ sw $t1, ($s0) +/* 0E6FF4 7F0B24C4 00007010 */ mfhi $t6 +/* 0E6FF8 7F0B24C8 AE360000 */ sw $s6, ($s1) +/* 0E6FFC 7F0B24CC 0000B825 */ move $s7, $zero +/* 0E7000 7F0B24D0 AFA90040 */ sw $t1, 0x40($sp) +/* 0E7004 7F0B24D4 01C0F025 */ move $fp, $t6 +/* 0E7008 7F0B24D8 2414000C */ li $s4, 12 +/* 0E700C 7F0B24DC 24130003 */ li $s3, 3 +/* 0E7010 7F0B24E0 00008025 */ move $s0, $zero +.L7F0B24E4: +/* 0E7014 7F0B24E4 00179083 */ sra $s2, $s7, 2 +/* 0E7018 7F0B24E8 02E08825 */ move $s1, $s7 +.L7F0B24EC: +/* 0E701C 7F0B24EC 02507821 */ addu $t7, $s2, $s0 +/* 0E7020 7F0B24F0 01F3001A */ div $zero, $t7, $s3 +/* 0E7024 7F0B24F4 00002810 */ mfhi $a1 +/* 0E7028 7F0B24F8 32380003 */ andi $t8, $s1, 3 +/* 0E702C 7F0B24FC 02C02025 */ move $a0, $s6 +/* 0E7030 7F0B2500 03140019 */ multu $t8, $s4 +/* 0E7034 7F0B2504 16600002 */ bnez $s3, .L7F0B2510 +/* 0E7038 7F0B2508 00000000 */ nop +/* 0E703C 7F0B250C 0007000D */ break 7 +.L7F0B2510: +/* 0E7040 7F0B2510 2401FFFF */ li $at, -1 +/* 0E7044 7F0B2514 16610004 */ bne $s3, $at, .L7F0B2528 +/* 0E7048 7F0B2518 3C018000 */ lui $at, 0x8000 +/* 0E704C 7F0B251C 15E10002 */ bne $t7, $at, .L7F0B2528 +/* 0E7050 7F0B2520 00000000 */ nop +/* 0E7054 7F0B2524 0006000D */ break 6 +.L7F0B2528: +/* 0E7058 7F0B2528 0000C812 */ mflo $t9 +/* 0E705C 7F0B252C 02B93021 */ addu $a2, $s5, $t9 +/* 0E7060 7F0B2530 0FC2C8EB */ jal sub_GAME_7F0B23AC +/* 0E7064 7F0B2534 00000000 */ nop +/* 0E7068 7F0B2538 26100001 */ addiu $s0, $s0, 1 +/* 0E706C 7F0B253C 1613FFEB */ bne $s0, $s3, .L7F0B24EC +/* 0E7070 7F0B2540 26310001 */ addiu $s1, $s1, 1 +/* 0E7074 7F0B2544 26EA0003 */ addiu $t2, $s7, 3 +/* 0E7078 7F0B2548 314B0003 */ andi $t3, $t2, 3 +/* 0E707C 7F0B254C 01740019 */ multu $t3, $s4 +/* 0E7080 7F0B2550 8FA40040 */ lw $a0, 0x40($sp) +/* 0E7084 7F0B2554 03C02825 */ move $a1, $fp +/* 0E7088 7F0B2558 00006012 */ mflo $t4 +/* 0E708C 7F0B255C 02AC3021 */ addu $a2, $s5, $t4 +/* 0E7090 7F0B2560 0FC2C8EB */ jal sub_GAME_7F0B23AC +/* 0E7094 7F0B2564 00000000 */ nop +/* 0E7098 7F0B2568 26F70001 */ addiu $s7, $s7, 1 +/* 0E709C 7F0B256C 52F4001C */ beql $s7, $s4, .L7F0B25E0 +/* 0E70A0 7F0B2570 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E70A4 7F0B2574 C6A0001C */ lwc1 $f0, 0x1c($s5) +/* 0E70A8 7F0B2578 C6A20004 */ lwc1 $f2, 4($s5) +/* 0E70AC 7F0B257C 4602003C */ c.lt.s $f0, $f2 +/* 0E70B0 7F0B2580 00000000 */ nop +/* 0E70B4 7F0B2584 4503FFD7 */ bc1tl .L7F0B24E4 +/* 0E70B8 7F0B2588 00008025 */ move $s0, $zero +/* 0E70BC 7F0B258C C6AC0010 */ lwc1 $f12, 0x10($s5) +/* 0E70C0 7F0B2590 460C003C */ c.lt.s $f0, $f12 +/* 0E70C4 7F0B2594 00000000 */ nop +/* 0E70C8 7F0B2598 4503FFD2 */ bc1tl .L7F0B24E4 +/* 0E70CC 7F0B259C 00008025 */ move $s0, $zero +/* 0E70D0 7F0B25A0 C6A00028 */ lwc1 $f0, 0x28($s5) +/* 0E70D4 7F0B25A4 4602003C */ c.lt.s $f0, $f2 +/* 0E70D8 7F0B25A8 00000000 */ nop +/* 0E70DC 7F0B25AC 4503FFCD */ bc1tl .L7F0B24E4 +/* 0E70E0 7F0B25B0 00008025 */ move $s0, $zero +/* 0E70E4 7F0B25B4 460C003C */ c.lt.s $f0, $f12 +/* 0E70E8 7F0B25B8 00000000 */ nop +/* 0E70EC 7F0B25BC 4503FFC9 */ bc1tl .L7F0B24E4 +/* 0E70F0 7F0B25C0 00008025 */ move $s0, $zero +/* 0E70F4 7F0B25C4 10000006 */ b .L7F0B25E0 +/* 0E70F8 7F0B25C8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0B25CC: +/* 0E70FC 7F0B25CC 24E70001 */ addiu $a3, $a3, 1 +/* 0E7100 7F0B25D0 00E8082A */ slt $at, $a3, $t0 +/* 0E7104 7F0B25D4 1420FFAC */ bnez $at, .L7F0B2488 +/* 0E7108 7F0B25D8 24630008 */ addiu $v1, $v1, 8 +.L7F0B25DC: +/* 0E710C 7F0B25DC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0B25E0: +/* 0E7110 7F0B25E0 8FB00018 */ lw $s0, 0x18($sp) +/* 0E7114 7F0B25E4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E7118 7F0B25E8 8FB20020 */ lw $s2, 0x20($sp) +/* 0E711C 7F0B25EC 8FB30024 */ lw $s3, 0x24($sp) +/* 0E7120 7F0B25F0 8FB40028 */ lw $s4, 0x28($sp) +/* 0E7124 7F0B25F4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E7128 7F0B25F8 8FB60030 */ lw $s6, 0x30($sp) +/* 0E712C 7F0B25FC 8FB70034 */ lw $s7, 0x34($sp) +/* 0E7130 7F0B2600 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E7134 7F0B2604 03E00008 */ jr $ra +/* 0E7138 7F0B2608 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B260C(void *arg0, s32 arg1, ? arg2, ? arg3, void *arg5) { + // Node 0 + if (*arg5 < (f32) (arg0 + (arg1 * 8))->unkA) + { + // Node 1 + if (*arg5 < (f32) (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8))->unkA) + { + // Node 2 + return 1; + } + } + // Node 3 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B260C +/* 0E713C 7F0B260C 000570C0 */ sll $t6, $a1, 3 +/* 0E7140 7F0B2610 AFA60008 */ sw $a2, 8($sp) +/* 0E7144 7F0B2614 AFA7000C */ sw $a3, 0xc($sp) +/* 0E7148 7F0B2618 008E7821 */ addu $t7, $a0, $t6 +/* 0E714C 7F0B261C 85F8000A */ lh $t8, 0xa($t7) +/* 0E7150 7F0B2620 8FA60014 */ lw $a2, 0x14($sp) +/* 0E7154 7F0B2624 44982000 */ mtc1 $t8, $f4 +/* 0E7158 7F0B2628 C4C00000 */ lwc1 $f0, ($a2) +/* 0E715C 7F0B262C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E7160 7F0B2630 4606003C */ c.lt.s $f0, $f6 +/* 0E7164 7F0B2634 00000000 */ nop +/* 0E7168 7F0B2638 4502001D */ bc1fl .L7F0B26B0 +/* 0E716C 7F0B263C 00001025 */ move $v0, $zero +/* 0E7170 7F0B2640 84880006 */ lh $t0, 6($a0) +/* 0E7174 7F0B2644 24B90001 */ addiu $t9, $a1, 1 +/* 0E7178 7F0B2648 00084B03 */ sra $t1, $t0, 0xc +/* 0E717C 7F0B264C 312A000F */ andi $t2, $t1, 0xf +/* 0E7180 7F0B2650 032A001A */ div $zero, $t9, $t2 +/* 0E7184 7F0B2654 00001010 */ mfhi $v0 +/* 0E7188 7F0B2658 000258C0 */ sll $t3, $v0, 3 +/* 0E718C 7F0B265C 008B6021 */ addu $t4, $a0, $t3 +/* 0E7190 7F0B2660 858D000A */ lh $t5, 0xa($t4) +/* 0E7194 7F0B2664 15400002 */ bnez $t2, .L7F0B2670 +/* 0E7198 7F0B2668 00000000 */ nop +/* 0E719C 7F0B266C 0007000D */ break 7 +.L7F0B2670: +/* 0E71A0 7F0B2670 2401FFFF */ li $at, -1 +/* 0E71A4 7F0B2674 15410004 */ bne $t2, $at, .L7F0B2688 +/* 0E71A8 7F0B2678 3C018000 */ lui $at, 0x8000 +/* 0E71AC 7F0B267C 17210002 */ bne $t9, $at, .L7F0B2688 +/* 0E71B0 7F0B2680 00000000 */ nop +/* 0E71B4 7F0B2684 0006000D */ break 6 +.L7F0B2688: +/* 0E71B8 7F0B2688 448D4000 */ mtc1 $t5, $f8 +/* 0E71BC 7F0B268C 00000000 */ nop +/* 0E71C0 7F0B2690 468042A0 */ cvt.s.w $f10, $f8 +/* 0E71C4 7F0B2694 460A003C */ c.lt.s $f0, $f10 +/* 0E71C8 7F0B2698 00000000 */ nop +/* 0E71CC 7F0B269C 45020004 */ bc1fl .L7F0B26B0 +/* 0E71D0 7F0B26A0 00001025 */ move $v0, $zero +/* 0E71D4 7F0B26A4 03E00008 */ jr $ra +/* 0E71D8 7F0B26A8 24020001 */ li $v0, 1 + +/* 0E71DC 7F0B26AC 00001025 */ move $v0, $zero +.L7F0B26B0: +/* 0E71E0 7F0B26B0 03E00008 */ jr $ra +/* 0E71E4 7F0B26B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B26B8(s32 arg1, ? arg2, ? arg3, f32 arg4) { + f32 sp2C; + + // Node 0 + sp2C = (f32) (arg4 * D_80040F44); + sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, 0, &sub_GAME_7F0B260C, 0, &sp2C); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B26B8 +/* 0E71E8 7F0B26B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E71EC 7F0B26BC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E71F0 7F0B26C0 C4260F44 */ lwc1 $f6, %lo(D_80040F44)($at) +/* 0E71F4 7F0B26C4 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E71F8 7F0B26C8 44856000 */ mtc1 $a1, $f12 +/* 0E71FC 7F0B26CC 44867000 */ mtc1 $a2, $f14 +/* 0E7200 7F0B26D0 46062202 */ mul.s $f8, $f4, $f6 +/* 0E7204 7F0B26D4 3C0E7F0B */ lui $t6, %hi(sub_GAME_7F0B260C) # $t6, 0x7f0b +/* 0E7208 7F0B26D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E720C 7F0B26DC 25CE260C */ addiu $t6, %lo(sub_GAME_7F0B260C) # addiu $t6, $t6, 0x260c +/* 0E7210 7F0B26E0 27AF002C */ addiu $t7, $sp, 0x2c +/* 0E7214 7F0B26E4 44056000 */ mfc1 $a1, $f12 +/* 0E7218 7F0B26E8 44067000 */ mfc1 $a2, $f14 +/* 0E721C 7F0B26EC AFA7003C */ sw $a3, 0x3c($sp) +/* 0E7220 7F0B26F0 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0E7224 7F0B26F4 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E7228 7F0B26F8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E722C 7F0B26FC AFA00010 */ sw $zero, 0x10($sp) +/* 0E7230 7F0B2700 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E7234 7F0B2704 AFA00018 */ sw $zero, 0x18($sp) +/* 0E7238 7F0B2708 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E723C 7F0B270C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E7240 7F0B2710 03E00008 */ jr $ra +/* 0E7244 7F0B2714 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2718 +/* 0E7248 7F0B2718 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E724C 7F0B271C AFBF003C */ sw $ra, 0x3c($sp) +/* 0E7250 7F0B2720 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E7254 7F0B2724 AFB40028 */ sw $s4, 0x28($sp) +/* 0E7258 7F0B2728 0080A025 */ move $s4, $a0 +/* 0E725C 7F0B272C 00A0A825 */ move $s5, $a1 +/* 0E7260 7F0B2730 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E7264 7F0B2734 AFB70034 */ sw $s7, 0x34($sp) +/* 0E7268 7F0B2738 AFB60030 */ sw $s6, 0x30($sp) +/* 0E726C 7F0B273C AFB30024 */ sw $s3, 0x24($sp) +/* 0E7270 7F0B2740 AFB20020 */ sw $s2, 0x20($sp) +/* 0E7274 7F0B2744 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E7278 7F0B2748 00A0F809 */ jalr $a1 +/* 0E727C 7F0B274C AFB00018 */ sw $s0, 0x18($sp) +/* 0E7280 7F0B2750 10400003 */ beqz $v0, .L7F0B2760 +/* 0E7284 7F0B2754 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA10) +/* 0E7288 7F0B2758 10000049 */ b .L7F0B2880 +/* 0E728C 7F0B275C 02801025 */ move $v0, $s4 +.L7F0B2760: +/* 0E7290 7F0B2760 240E0001 */ li $t6, 1 +/* 0E7294 7F0B2764 3C178008 */ lui $s7, %hi(dword_CODE_bss_8007BA10) +/* 0E7298 7F0B2768 3C168004 */ lui $s6, %hi(base_ptr_connection_vals) +/* 0E729C 7F0B276C AC34BA10 */ sw $s4, %lo(dword_CODE_bss_8007BA10)($at) +/* 0E72A0 7F0B2770 24110001 */ li $s1, 1 +/* 0E72A4 7F0B2774 26D60F58 */ addiu $s6, %lo(base_ptr_connection_vals) # addiu $s6, $s6, 0xf58 +/* 0E72A8 7F0B2778 26F7BA10 */ addiu $s7, %lo(dword_CODE_bss_8007BA10) # addiu $s7, $s7, -0x45f0 +/* 0E72AC 7F0B277C AFAE0058 */ sw $t6, 0x58($sp) +/* 0E72B0 7F0B2780 0000F025 */ move $fp, $zero +.L7F0B2784: +/* 0E72B4 7F0B2784 1A200037 */ blez $s1, .L7F0B2864 +/* 0E72B8 7F0B2788 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007BA10) +/* 0E72BC 7F0B278C 25EFBA10 */ addiu $t7, %lo(dword_CODE_bss_8007BA10) # addiu $t7, $t7, -0x45f0 +/* 0E72C0 7F0B2790 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0B2794: +/* 0E72C4 7F0B2794 8FB80044 */ lw $t8, 0x44($sp) +/* 0E72C8 7F0B2798 00009025 */ move $s2, $zero +/* 0E72CC 7F0B279C 8F140000 */ lw $s4, ($t8) +/* 0E72D0 7F0B27A0 86840006 */ lh $a0, 6($s4) +/* 0E72D4 7F0B27A4 02809825 */ move $s3, $s4 +/* 0E72D8 7F0B27A8 0004CB03 */ sra $t9, $a0, 0xc +/* 0E72DC 7F0B27AC 3324000F */ andi $a0, $t9, 0xf +/* 0E72E0 7F0B27B0 58800026 */ blezl $a0, .L7F0B284C +/* 0E72E4 7F0B27B4 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B27B8: +/* 0E72E8 7F0B27B8 9662000E */ lhu $v0, 0xe($s3) +/* 0E72EC 7F0B27BC 8ECA0000 */ lw $t2, ($s6) +/* 0E72F0 7F0B27C0 000248C0 */ sll $t1, $v0, 3 +/* 0E72F4 7F0B27C4 00025903 */ sra $t3, $v0, 4 +/* 0E72F8 7F0B27C8 1160001B */ beqz $t3, .L7F0B2838 +/* 0E72FC 7F0B27CC 012A8021 */ addu $s0, $t1, $t2 +/* 0E7300 7F0B27D0 1A200009 */ blez $s1, .L7F0B27F8 +/* 0E7304 7F0B27D4 00001025 */ move $v0, $zero +/* 0E7308 7F0B27D8 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA10) +/* 0E730C 7F0B27DC 2463BA10 */ addiu $v1, %lo(dword_CODE_bss_8007BA10) # addiu $v1, $v1, -0x45f0 +.L7F0B27E0: +/* 0E7310 7F0B27E0 8C6C0000 */ lw $t4, ($v1) +/* 0E7314 7F0B27E4 24420001 */ addiu $v0, $v0, 1 +/* 0E7318 7F0B27E8 520C0014 */ beql $s0, $t4, .L7F0B283C +/* 0E731C 7F0B27EC 26520001 */ addiu $s2, $s2, 1 +/* 0E7320 7F0B27F0 1451FFFB */ bne $v0, $s1, .L7F0B27E0 +/* 0E7324 7F0B27F4 24630004 */ addiu $v1, $v1, 4 +.L7F0B27F8: +/* 0E7328 7F0B27F8 02A0F809 */ jalr $s5 +/* 0E732C 7F0B27FC 02002025 */ move $a0, $s0 +/* 0E7330 7F0B2800 10400003 */ beqz $v0, .L7F0B2810 +/* 0E7334 7F0B2804 00116880 */ sll $t5, $s1, 2 +/* 0E7338 7F0B2808 1000001D */ b .L7F0B2880 +/* 0E733C 7F0B280C 02001025 */ move $v0, $s0 +.L7F0B2810: +/* 0E7340 7F0B2810 26310001 */ addiu $s1, $s1, 1 +/* 0E7344 7F0B2814 02ED7021 */ addu $t6, $s7, $t5 +/* 0E7348 7F0B2818 2E21015F */ sltiu $at, $s1, 0x15f +/* 0E734C 7F0B281C 14200003 */ bnez $at, .L7F0B282C +/* 0E7350 7F0B2820 ADD00000 */ sw $s0, ($t6) +/* 0E7354 7F0B2824 10000016 */ b .L7F0B2880 +/* 0E7358 7F0B2828 00001025 */ move $v0, $zero +.L7F0B282C: +/* 0E735C 7F0B282C 86840006 */ lh $a0, 6($s4) +/* 0E7360 7F0B2830 00047B03 */ sra $t7, $a0, 0xc +/* 0E7364 7F0B2834 31E4000F */ andi $a0, $t7, 0xf +.L7F0B2838: +/* 0E7368 7F0B2838 26520001 */ addiu $s2, $s2, 1 +.L7F0B283C: +/* 0E736C 7F0B283C 0244082A */ slt $at, $s2, $a0 +/* 0E7370 7F0B2840 1420FFDD */ bnez $at, .L7F0B27B8 +/* 0E7374 7F0B2844 26730008 */ addiu $s3, $s3, 8 +/* 0E7378 7F0B2848 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B284C: +/* 0E737C 7F0B284C 8FA90058 */ lw $t1, 0x58($sp) +/* 0E7380 7F0B2850 27DE0001 */ addiu $fp, $fp, 1 +/* 0E7384 7F0B2854 27280004 */ addiu $t0, $t9, 4 +/* 0E7388 7F0B2858 03C9082A */ slt $at, $fp, $t1 +/* 0E738C 7F0B285C 1420FFCD */ bnez $at, .L7F0B2794 +/* 0E7390 7F0B2860 AFA80044 */ sw $t0, 0x44($sp) +.L7F0B2864: +/* 0E7394 7F0B2864 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E7398 7F0B2868 0000F025 */ move $fp, $zero +/* 0E739C 7F0B286C 522A0004 */ beql $s1, $t2, .L7F0B2880 +/* 0E73A0 7F0B2870 00001025 */ move $v0, $zero +/* 0E73A4 7F0B2874 1000FFC3 */ b .L7F0B2784 +/* 0E73A8 7F0B2878 AFB10058 */ sw $s1, 0x58($sp) +/* 0E73AC 7F0B287C 00001025 */ move $v0, $zero +.L7F0B2880: +/* 0E73B0 7F0B2880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E73B4 7F0B2884 8FB00018 */ lw $s0, 0x18($sp) +/* 0E73B8 7F0B2888 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E73BC 7F0B288C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E73C0 7F0B2890 8FB30024 */ lw $s3, 0x24($sp) +/* 0E73C4 7F0B2894 8FB40028 */ lw $s4, 0x28($sp) +/* 0E73C8 7F0B2898 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E73CC 7F0B289C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E73D0 7F0B28A0 8FB70034 */ lw $s7, 0x34($sp) +/* 0E73D4 7F0B28A4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E73D8 7F0B28A8 03E00008 */ jr $ra +/* 0E73DC 7F0B28AC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B28B0(void *arg0, void *arg1) { + s32 sp1C; + + // Node 0 + sp1C = (s32) dword_CODE_bss_8007B9E4; + if (dword_CODE_bss_8007B9E4 != 0) + { + // Node 1 + sub_GAME_7F0B1CF8(dword_CODE_bss_8007B9E4, dword_CODE_bss_8007B9E8, arg0, arg1); + return 0; + } + // Node 2 + if (D_800413BC == 0) + { + // Node 4 + // Node 5 + return 0; + } + // Node 3 + arg0->unk4 = 0.0f; + *arg0 = (f32) flt_CODE_bss_8007B9F0; + arg0->unk8 = (f32) flt_CODE_bss_8007B9F0.unk4; + arg1->unk4 = 0.0f; + *arg1 = (f32) flt_CODE_bss_8007B9F8; + arg1->unk8 = (f32) flt_CODE_bss_8007B9F8.unk4; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B28B0 +/* 0E73E0 7F0B28B0 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007B9E4) +/* 0E73E4 7F0B28B4 8DCEB9E4 */ lw $t6, %lo(dword_CODE_bss_8007B9E4)($t6) +/* 0E73E8 7F0B28B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E73EC 7F0B28BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0E73F0 7F0B28C0 00803025 */ move $a2, $a0 +/* 0E73F4 7F0B28C4 00A03825 */ move $a3, $a1 +/* 0E73F8 7F0B28C8 11C00007 */ beqz $t6, .L7F0B28E8 +/* 0E73FC 7F0B28CC AFAE001C */ sw $t6, 0x1c($sp) +/* 0E7400 7F0B28D0 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007B9E8) +/* 0E7404 7F0B28D4 8CA5B9E8 */ lw $a1, %lo(dword_CODE_bss_8007B9E8)($a1) +/* 0E7408 7F0B28D8 0FC2C73E */ jal sub_GAME_7F0B1CF8 +/* 0E740C 7F0B28DC 01C02025 */ move $a0, $t6 +/* 0E7410 7F0B28E0 10000017 */ b .L7F0B2940 +/* 0E7414 7F0B28E4 24020001 */ li $v0, 1 +.L7F0B28E8: +/* 0E7418 7F0B28E8 3C0F8004 */ lui $t7, %hi(D_800413BC) +/* 0E741C 7F0B28EC 8DEF13BC */ lw $t7, %lo(D_800413BC)($t7) +/* 0E7420 7F0B28F0 3C038008 */ lui $v1, %hi(flt_CODE_bss_8007B9F0) +/* 0E7424 7F0B28F4 2463B9F0 */ addiu $v1, %lo(flt_CODE_bss_8007B9F0) # addiu $v1, $v1, -0x4610 +/* 0E7428 7F0B28F8 51E00011 */ beql $t7, $zero, .L7F0B2940 +/* 0E742C 7F0B28FC 00001025 */ move $v0, $zero +/* 0E7430 7F0B2900 44800000 */ mtc1 $zero, $f0 +/* 0E7434 7F0B2904 C4640000 */ lwc1 $f4, ($v1) +/* 0E7438 7F0B2908 3C048008 */ lui $a0, %hi(flt_CODE_bss_8007B9F8) +/* 0E743C 7F0B290C E4C00004 */ swc1 $f0, 4($a2) +/* 0E7440 7F0B2910 E4C40000 */ swc1 $f4, ($a2) +/* 0E7444 7F0B2914 C4660004 */ lwc1 $f6, 4($v1) +/* 0E7448 7F0B2918 2484B9F8 */ addiu $a0, %lo(flt_CODE_bss_8007B9F8) # addiu $a0, $a0, -0x4608 +/* 0E744C 7F0B291C 24020001 */ li $v0, 1 +/* 0E7450 7F0B2920 E4C60008 */ swc1 $f6, 8($a2) +/* 0E7454 7F0B2924 C4880000 */ lwc1 $f8, ($a0) +/* 0E7458 7F0B2928 E4E00004 */ swc1 $f0, 4($a3) +/* 0E745C 7F0B292C E4E80000 */ swc1 $f8, ($a3) +/* 0E7460 7F0B2930 C48A0004 */ lwc1 $f10, 4($a0) +/* 0E7464 7F0B2934 10000002 */ b .L7F0B2940 +/* 0E7468 7F0B2938 E4EA0008 */ swc1 $f10, 8($a3) +/* 0E746C 7F0B293C 00001025 */ move $v0, $zero +.L7F0B2940: +/* 0E7470 7F0B2940 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7474 7F0B2944 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E7478 7F0B2948 03E00008 */ jr $ra +/* 0E747C 7F0B294C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2950(f32 arg0) { + // Node 0 + D_80040F44 = arg0; + D_80040F48 = (f32) (1.0f / arg0); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2950 +/* 0E7480 7F0B2950 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E7484 7F0B2954 E42C0F44 */ swc1 $f12, %lo(D_80040F44)($at) +/* 0E7488 7F0B2958 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E748C 7F0B295C 44812000 */ mtc1 $at, $f4 +/* 0E7490 7F0B2960 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E7494 7F0B2964 460C2183 */ div.s $f6, $f4, $f12 +/* 0E7498 7F0B2968 03E00008 */ jr $ra +/* 0E749C 7F0B296C E4260F48 */ swc1 $f6, %lo(D_80040F48)($at) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B2970(void *arg0, s32 arg1, f32 arg2) { + f64 sp20; + f64 sp28; + f64 sp30; + s32 sp38; + u32 sp3C; + s32 sp40; + u32 sp44; + s32 sp58; + u32 sp5C; + s32 sp60; + u32 sp64; + s32 sp68; + u32 sp6C; + s32 sp70; + u32 sp74; + f32 sp78; + f32 sp7C; + f32 sp80; + f32 sp84; + f32 sp88; + f32 sp8C; + s32 temp_a1; + s32 temp_a2; + void *temp_s0; + void *temp_v1; + s32 temp_a3; + void *temp_t0; + f32 temp_f18; + f32 temp_f6; + f32 temp_f10; + f32 temp_f4; + f32 temp_f10_2; + ? temp_ret; + ? temp_ret_2; + ? temp_ret_3; + ? temp_ret_4; + ? temp_ret_5; + ? temp_ret_6; + u32 temp_t9; + u32 temp_t5; + + // Node 0 + temp_a1 = ((s32) arg0->unk6 >> 8); + temp_a2 = ((s32) arg0->unk6 >> 4); + arg2 = (f32) (arg2 * D_80040F44); + temp_s0 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_v1 = (arg0 + ((temp_a2 & 0xf) * 8)); + temp_a3 = (arg0->unk6 & 0xf); + temp_t0 = (arg0 + (temp_a3 * 8)); + sp84 = (f32) (temp_v1->unk8 - temp_s0->unk8); + temp_f18 = (f32) (temp_v1->unkA - temp_s0->unkA); + sp88 = temp_f18; + temp_f6 = (f32) (temp_v1->unkC - temp_s0->unkC); + sp8C = temp_f6; + temp_f10 = (f32) (temp_t0->unk8 - temp_s0->unk8); + sp78 = temp_f10; + temp_f4 = (f32) (temp_t0->unkA - temp_s0->unkA); + sp7C = temp_f4; + temp_f10_2 = (f32) (temp_t0->unkC - temp_s0->unkC); + sp80 = temp_f10_2; + temp_ret = __f_to_ll(((temp_f18 * temp_f10_2) - (temp_f4 * temp_f6)), (arg1 * D_80040F44), temp_a1, temp_a2, temp_a3); + sp60 = temp_ret; + sp64 = temp_ret; + temp_ret_2 = __f_to_ll(((sp8C * temp_f10) - (sp80 * sp84))); + sp68 = temp_ret_2; + sp6C = temp_ret_2; + temp_ret_3 = __f_to_ll(((sp84 * sp7C) - (sp78 * sp88))); + sp70 = temp_ret_3; + sp74 = temp_ret_3; + temp_ret_4 = __ll_mul(sp68, sp6C, ((s32) temp_s0->unkA >> 0x1f), temp_s0->unkA); + sp38 = temp_ret_4; + sp3C = temp_ret_4; + temp_ret_5 = __ll_mul(sp60, sp64, ((s32) temp_s0->unk8 >> 0x1f), temp_s0->unk8); + sp40 = temp_ret_5; + sp44 = temp_ret_5; + temp_ret_6 = __ll_mul(sp70, sp74, ((s32) temp_s0->unkC >> 0x1f), temp_s0->unkC); + temp_t9 = (temp_ret_6 + sp44); + temp_t5 = (temp_t9 + sp3C); + sp58 = (s32) (((temp_t5 < sp3C) + (((temp_t9 < sp44) + temp_ret_6) + sp40)) + sp38); + sp5C = temp_t5; + if (sp68 != 0) + { + // Node 3 + sp20 = __ll_to_d(sp70, sp74); + sp28 = __ll_to_d(sp60, sp64); + sp30 = __ll_to_d(sp58, sp5C); + // Node 4 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); + } + // Node 1 + if (sp6C != 0) + { + // Node 3 + sp20 = __ll_to_d(sp70, sp74); + sp28 = __ll_to_d(sp60, sp64); + sp30 = __ll_to_d(sp58, sp5C); + // Node 4 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); + } + // Node 2 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2970 +/* 0E74A0 7F0B2970 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E74A4 7F0B2974 44857000 */ mtc1 $a1, $f14 +/* 0E74A8 7F0B2978 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E74AC 7F0B297C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0E74B0 7F0B2980 AFA60098 */ sw $a2, 0x98($sp) +/* 0E74B4 7F0B2984 46007382 */ mul.s $f14, $f14, $f0 +/* 0E74B8 7F0B2988 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0E74BC 7F0B298C AFBF001C */ sw $ra, 0x1c($sp) +/* 0E74C0 7F0B2990 AFB00018 */ sw $s0, 0x18($sp) +/* 0E74C4 7F0B2994 46002182 */ mul.s $f6, $f4, $f0 +/* 0E74C8 7F0B2998 84820006 */ lh $v0, 6($a0) +/* 0E74CC 7F0B299C 00022A03 */ sra $a1, $v0, 8 +/* 0E74D0 7F0B29A0 00023103 */ sra $a2, $v0, 4 +/* 0E74D4 7F0B29A4 30AE000F */ andi $t6, $a1, 0xf +/* 0E74D8 7F0B29A8 30CF000F */ andi $t7, $a2, 0xf +/* 0E74DC 7F0B29AC E7A60098 */ swc1 $f6, 0x98($sp) +/* 0E74E0 7F0B29B0 000FC0C0 */ sll $t8, $t7, 3 +/* 0E74E4 7F0B29B4 000EC8C0 */ sll $t9, $t6, 3 +/* 0E74E8 7F0B29B8 00998021 */ addu $s0, $a0, $t9 +/* 0E74EC 7F0B29BC 00981821 */ addu $v1, $a0, $t8 +/* 0E74F0 7F0B29C0 84690008 */ lh $t1, 8($v1) +/* 0E74F4 7F0B29C4 860A0008 */ lh $t2, 8($s0) +/* 0E74F8 7F0B29C8 3047000F */ andi $a3, $v0, 0xf +/* 0E74FC 7F0B29CC 012A5823 */ subu $t3, $t1, $t2 +/* 0E7500 7F0B29D0 448B4000 */ mtc1 $t3, $f8 +/* 0E7504 7F0B29D4 000748C0 */ sll $t1, $a3, 3 +/* 0E7508 7F0B29D8 00894021 */ addu $t0, $a0, $t1 +/* 0E750C 7F0B29DC 468042A0 */ cvt.s.w $f10, $f8 +/* 0E7510 7F0B29E0 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0E7514 7F0B29E4 860D000A */ lh $t5, 0xa($s0) +/* 0E7518 7F0B29E8 846C000A */ lh $t4, 0xa($v1) +/* 0E751C 7F0B29EC 018D7023 */ subu $t6, $t4, $t5 +/* 0E7520 7F0B29F0 448E8000 */ mtc1 $t6, $f16 +/* 0E7524 7F0B29F4 00000000 */ nop +/* 0E7528 7F0B29F8 468084A0 */ cvt.s.w $f18, $f16 +/* 0E752C 7F0B29FC E7B20088 */ swc1 $f18, 0x88($sp) +/* 0E7530 7F0B2A00 8618000C */ lh $t8, 0xc($s0) +/* 0E7534 7F0B2A04 846F000C */ lh $t7, 0xc($v1) +/* 0E7538 7F0B2A08 01F8C823 */ subu $t9, $t7, $t8 +/* 0E753C 7F0B2A0C 44992000 */ mtc1 $t9, $f4 +/* 0E7540 7F0B2A10 00000000 */ nop +/* 0E7544 7F0B2A14 468021A0 */ cvt.s.w $f6, $f4 +/* 0E7548 7F0B2A18 E7A6008C */ swc1 $f6, 0x8c($sp) +/* 0E754C 7F0B2A1C 860B0008 */ lh $t3, 8($s0) +/* 0E7550 7F0B2A20 850A0008 */ lh $t2, 8($t0) +/* 0E7554 7F0B2A24 014B6023 */ subu $t4, $t2, $t3 +/* 0E7558 7F0B2A28 448C4000 */ mtc1 $t4, $f8 +/* 0E755C 7F0B2A2C 00000000 */ nop +/* 0E7560 7F0B2A30 468042A0 */ cvt.s.w $f10, $f8 +/* 0E7564 7F0B2A34 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0E7568 7F0B2A38 860E000A */ lh $t6, 0xa($s0) +/* 0E756C 7F0B2A3C 850D000A */ lh $t5, 0xa($t0) +/* 0E7570 7F0B2A40 01AE7823 */ subu $t7, $t5, $t6 +/* 0E7574 7F0B2A44 448F8000 */ mtc1 $t7, $f16 +/* 0E7578 7F0B2A48 00000000 */ nop +/* 0E757C 7F0B2A4C 46808120 */ cvt.s.w $f4, $f16 +/* 0E7580 7F0B2A50 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 0E7584 7F0B2A54 8619000C */ lh $t9, 0xc($s0) +/* 0E7588 7F0B2A58 8518000C */ lh $t8, 0xc($t0) +/* 0E758C 7F0B2A5C E7AE0094 */ swc1 $f14, 0x94($sp) +/* 0E7590 7F0B2A60 03194823 */ subu $t1, $t8, $t9 +/* 0E7594 7F0B2A64 44894000 */ mtc1 $t1, $f8 +/* 0E7598 7F0B2A68 00000000 */ nop +/* 0E759C 7F0B2A6C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E75A0 7F0B2A70 460A9402 */ mul.s $f16, $f18, $f10 +/* 0E75A4 7F0B2A74 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 0E75A8 7F0B2A78 46062202 */ mul.s $f8, $f4, $f6 +/* 0E75AC 7F0B2A7C 0C005E4B */ jal __f_to_ll +/* 0E75B0 7F0B2A80 46088301 */ sub.s $f12, $f16, $f8 +/* 0E75B4 7F0B2A84 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0E75B8 7F0B2A88 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0E75BC 7F0B2A8C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E75C0 7F0B2A90 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0E75C4 7F0B2A94 460A9102 */ mul.s $f4, $f18, $f10 +/* 0E75C8 7F0B2A98 AFA20060 */ sw $v0, 0x60($sp) +/* 0E75CC 7F0B2A9C AFA30064 */ sw $v1, 0x64($sp) +/* 0E75D0 7F0B2AA0 46103202 */ mul.s $f8, $f6, $f16 +/* 0E75D4 7F0B2AA4 0C005E4B */ jal __f_to_ll +/* 0E75D8 7F0B2AA8 46082301 */ sub.s $f12, $f4, $f8 +/* 0E75DC 7F0B2AAC C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0E75E0 7F0B2AB0 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0E75E4 7F0B2AB4 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E75E8 7F0B2AB8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0E75EC 7F0B2ABC 460A9182 */ mul.s $f6, $f18, $f10 +/* 0E75F0 7F0B2AC0 AFA20068 */ sw $v0, 0x68($sp) +/* 0E75F4 7F0B2AC4 AFA3006C */ sw $v1, 0x6c($sp) +/* 0E75F8 7F0B2AC8 46048202 */ mul.s $f8, $f16, $f4 +/* 0E75FC 7F0B2ACC 0C005E4B */ jal __f_to_ll +/* 0E7600 7F0B2AD0 46083301 */ sub.s $f12, $f6, $f8 +/* 0E7604 7F0B2AD4 AFA20070 */ sw $v0, 0x70($sp) +/* 0E7608 7F0B2AD8 AFA30074 */ sw $v1, 0x74($sp) +/* 0E760C 7F0B2ADC 8607000A */ lh $a3, 0xa($s0) +/* 0E7610 7F0B2AE0 8FA40068 */ lw $a0, 0x68($sp) +/* 0E7614 7F0B2AE4 8FA5006C */ lw $a1, 0x6c($sp) +/* 0E7618 7F0B2AE8 0C003B6A */ jal __ll_mul +/* 0E761C 7F0B2AEC 000737C3 */ sra $a2, $a3, 0x1f +/* 0E7620 7F0B2AF0 AFA20038 */ sw $v0, 0x38($sp) +/* 0E7624 7F0B2AF4 AFA3003C */ sw $v1, 0x3c($sp) +/* 0E7628 7F0B2AF8 86070008 */ lh $a3, 8($s0) +/* 0E762C 7F0B2AFC 8FA40060 */ lw $a0, 0x60($sp) +/* 0E7630 7F0B2B00 8FA50064 */ lw $a1, 0x64($sp) +/* 0E7634 7F0B2B04 0C003B6A */ jal __ll_mul +/* 0E7638 7F0B2B08 000737C3 */ sra $a2, $a3, 0x1f +/* 0E763C 7F0B2B0C AFA20040 */ sw $v0, 0x40($sp) +/* 0E7640 7F0B2B10 AFA30044 */ sw $v1, 0x44($sp) +/* 0E7644 7F0B2B14 8607000C */ lh $a3, 0xc($s0) +/* 0E7648 7F0B2B18 8FA40070 */ lw $a0, 0x70($sp) +/* 0E764C 7F0B2B1C 8FA50074 */ lw $a1, 0x74($sp) +/* 0E7650 7F0B2B20 0C003B6A */ jal __ll_mul +/* 0E7654 7F0B2B24 000737C3 */ sra $a2, $a3, 0x1f +/* 0E7658 7F0B2B28 8FAF0044 */ lw $t7, 0x44($sp) +/* 0E765C 7F0B2B2C 8FAE0040 */ lw $t6, 0x40($sp) +/* 0E7660 7F0B2B30 8FAB003C */ lw $t3, 0x3c($sp) +/* 0E7664 7F0B2B34 006FC821 */ addu $t9, $v1, $t7 +/* 0E7668 7F0B2B38 032F082B */ sltu $at, $t9, $t7 +/* 0E766C 7F0B2B3C 0022C021 */ addu $t8, $at, $v0 +/* 0E7670 7F0B2B40 8FAA0038 */ lw $t2, 0x38($sp) +/* 0E7674 7F0B2B44 030EC021 */ addu $t8, $t8, $t6 +/* 0E7678 7F0B2B48 032B6821 */ addu $t5, $t9, $t3 +/* 0E767C 7F0B2B4C 8FAE0068 */ lw $t6, 0x68($sp) +/* 0E7680 7F0B2B50 01AB082B */ sltu $at, $t5, $t3 +/* 0E7684 7F0B2B54 00386021 */ addu $t4, $at, $t8 +/* 0E7688 7F0B2B58 018A6021 */ addu $t4, $t4, $t2 +/* 0E768C 7F0B2B5C AFAC0058 */ sw $t4, 0x58($sp) +/* 0E7690 7F0B2B60 AFAD005C */ sw $t5, 0x5c($sp) +/* 0E7694 7F0B2B64 15C0000C */ bnez $t6, .L7F0B2B98 +/* 0E7698 7F0B2B68 8FAF006C */ lw $t7, 0x6c($sp) +/* 0E769C 7F0B2B6C 55E0000B */ bnezl $t7, .L7F0B2B9C +/* 0E76A0 7F0B2B70 8FA40070 */ lw $a0, 0x70($sp) +/* 0E76A4 7F0B2B74 8609000A */ lh $t1, 0xa($s0) +/* 0E76A8 7F0B2B78 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E76AC 7F0B2B7C C4300F48 */ lwc1 $f16, %lo(D_80040F48)($at) +/* 0E76B0 7F0B2B80 44899000 */ mtc1 $t1, $f18 +/* 0E76B4 7F0B2B84 00000000 */ nop +/* 0E76B8 7F0B2B88 468092A0 */ cvt.s.w $f10, $f18 +/* 0E76BC 7F0B2B8C 46105002 */ mul.s $f0, $f10, $f16 +/* 0E76C0 7F0B2B90 10000022 */ b .L7F0B2C1C +/* 0E76C4 7F0B2B94 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B2B98: +/* 0E76C8 7F0B2B98 8FA40070 */ lw $a0, 0x70($sp) +.L7F0B2B9C: +/* 0E76CC 7F0B2B9C 0C005EA1 */ jal __ll_to_d +/* 0E76D0 7F0B2BA0 8FA50074 */ lw $a1, 0x74($sp) +/* 0E76D4 7F0B2BA4 F7A00020 */ sdc1 $f0, 0x20($sp) +/* 0E76D8 7F0B2BA8 8FA40060 */ lw $a0, 0x60($sp) +/* 0E76DC 7F0B2BAC 0C005EA1 */ jal __ll_to_d +/* 0E76E0 7F0B2BB0 8FA50064 */ lw $a1, 0x64($sp) +/* 0E76E4 7F0B2BB4 8FA40058 */ lw $a0, 0x58($sp) +/* 0E76E8 7F0B2BB8 8FA5005C */ lw $a1, 0x5c($sp) +/* 0E76EC 7F0B2BBC 0C005EA1 */ jal __ll_to_d +/* 0E76F0 7F0B2BC0 F7A00028 */ sdc1 $f0, 0x28($sp) +/* 0E76F4 7F0B2BC4 8FA40068 */ lw $a0, 0x68($sp) +/* 0E76F8 7F0B2BC8 8FA5006C */ lw $a1, 0x6c($sp) +/* 0E76FC 7F0B2BCC 0C005EA1 */ jal __ll_to_d +/* 0E7700 7F0B2BD0 F7A00030 */ sdc1 $f0, 0x30($sp) +/* 0E7704 7F0B2BD4 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0E7708 7F0B2BD8 D7A80020 */ ldc1 $f8, 0x20($sp) +/* 0E770C 7F0B2BDC C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0E7710 7F0B2BE0 460021A1 */ cvt.d.s $f6, $f4 +/* 0E7714 7F0B2BE4 D7A20028 */ ldc1 $f2, 0x28($sp) +/* 0E7718 7F0B2BE8 46283482 */ mul.d $f18, $f6, $f8 +/* 0E771C 7F0B2BEC 46005421 */ cvt.d.s $f16, $f10 +/* 0E7720 7F0B2BF0 D7AC0030 */ ldc1 $f12, 0x30($sp) +/* 0E7724 7F0B2BF4 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E7728 7F0B2BF8 46228102 */ mul.d $f4, $f16, $f2 +/* 0E772C 7F0B2BFC 46246181 */ sub.d $f6, $f12, $f4 +/* 0E7730 7F0B2C00 C4240F48 */ lwc1 $f4, %lo(D_80040F48)($at) +/* 0E7734 7F0B2C04 46323201 */ sub.d $f8, $f6, $f18 +/* 0E7738 7F0B2C08 46204283 */ div.d $f10, $f8, $f0 +/* 0E773C 7F0B2C0C 46205420 */ cvt.s.d $f16, $f10 +/* 0E7740 7F0B2C10 46048002 */ mul.s $f0, $f16, $f4 +/* 0E7744 7F0B2C14 00000000 */ nop +/* 0E7748 7F0B2C18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B2C1C: +/* 0E774C 7F0B2C1C 8FB00018 */ lw $s0, 0x18($sp) +/* 0E7750 7F0B2C20 27BD0090 */ addiu $sp, $sp, 0x90 +/* 0E7754 7F0B2C24 03E00008 */ jr $ra +/* 0E7758 7F0B2C28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 copy_tile_RGB_as_24bit(void *arg0, s32 arg1, ? arg2, void *arg3) { + s32 temp_v0; + s32 temp_t7; + s32 temp_t9; + s32 temp_t3; + + // Node 0 + temp_v0 = ((s32) arg0->unk4 >> 8); + temp_t7 = (temp_v0 & 0xf); + temp_t9 = (((s32) arg0->unk4 >> 4) & 0xf); + temp_t3 = (arg0->unk4 & 0xf); + *arg3 = (s8) ((temp_t7 * 0x10) | temp_t7); + arg3->unk1 = (s8) ((temp_t9 * 0x10) | temp_t9); + arg3->unk2 = (s8) ((temp_t3 * 0x10) | temp_t3); + return temp_v0; +} +#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 + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B2C74(void *arg0, void *arg1) { + f32 temp_f2; + f32 phi_f16; + f32 phi_f2; + + // Node 0 + temp_f2 = (f32) (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8))->unkA; + if (temp_f2 < temp_f2) + { + // Node 1 + } + // Node 2 + phi_f16 = temp_f2; + if (temp_f2 < temp_f2) + { + // Node 3 + phi_f16 = temp_f2; + } + // Node 4 + if (temp_f2 < temp_f2) + { + // Node 5 + } + // Node 6 + phi_f2 = temp_f2; + if (temp_f2 < temp_f2) + { + // Node 7 + phi_f2 = temp_f2; + } + // Node 8 + *arg1 = (f32) (phi_f16 * D_80040F48); + arg1->unk4 = (f32) (phi_f2 * D_80040F48); + return temp_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2C74 +/* 0E77A4 7F0B2C74 848E0006 */ lh $t6, 6($a0) +/* 0E77A8 7F0B2C78 3C028004 */ lui $v0, %hi(D_80040F48) +/* 0E77AC 7F0B2C7C 24420F48 */ addiu $v0, %lo(D_80040F48) # addiu $v0, $v0, 0xf48 +/* 0E77B0 7F0B2C80 000E7A03 */ sra $t7, $t6, 8 +/* 0E77B4 7F0B2C84 31F8000F */ andi $t8, $t7, 0xf +/* 0E77B8 7F0B2C88 0018C8C0 */ sll $t9, $t8, 3 +/* 0E77BC 7F0B2C8C 00994021 */ addu $t0, $a0, $t9 +/* 0E77C0 7F0B2C90 8509000A */ lh $t1, 0xa($t0) +/* 0E77C4 7F0B2C94 44892000 */ mtc1 $t1, $f4 +/* 0E77C8 7F0B2C98 00000000 */ nop +/* 0E77CC 7F0B2C9C 468020A0 */ cvt.s.w $f2, $f4 +/* 0E77D0 7F0B2CA0 4602103C */ c.lt.s $f2, $f2 +/* 0E77D4 7F0B2CA4 46001006 */ mov.s $f0, $f2 +/* 0E77D8 7F0B2CA8 46001306 */ mov.s $f12, $f2 +/* 0E77DC 7F0B2CAC 46001386 */ mov.s $f14, $f2 +/* 0E77E0 7F0B2CB0 45000002 */ bc1f .L7F0B2CBC +/* 0E77E4 7F0B2CB4 46001406 */ mov.s $f16, $f2 +/* 0E77E8 7F0B2CB8 46001406 */ mov.s $f16, $f2 +.L7F0B2CBC: +/* 0E77EC 7F0B2CBC 4610703C */ c.lt.s $f14, $f16 +/* 0E77F0 7F0B2CC0 00000000 */ nop +/* 0E77F4 7F0B2CC4 45020003 */ bc1fl .L7F0B2CD4 +/* 0E77F8 7F0B2CC8 460C003C */ c.lt.s $f0, $f12 +/* 0E77FC 7F0B2CCC 46007406 */ mov.s $f16, $f14 +/* 0E7800 7F0B2CD0 460C003C */ c.lt.s $f0, $f12 +.L7F0B2CD4: +/* 0E7804 7F0B2CD4 46000086 */ mov.s $f2, $f0 +/* 0E7808 7F0B2CD8 45020003 */ bc1fl .L7F0B2CE8 +/* 0E780C 7F0B2CDC 460E103C */ c.lt.s $f2, $f14 +/* 0E7810 7F0B2CE0 46006086 */ mov.s $f2, $f12 +/* 0E7814 7F0B2CE4 460E103C */ c.lt.s $f2, $f14 +.L7F0B2CE8: +/* 0E7818 7F0B2CE8 00000000 */ nop +/* 0E781C 7F0B2CEC 45020003 */ bc1fl .L7F0B2CFC +/* 0E7820 7F0B2CF0 C4460000 */ lwc1 $f6, ($v0) +/* 0E7824 7F0B2CF4 46007086 */ mov.s $f2, $f14 +/* 0E7828 7F0B2CF8 C4460000 */ lwc1 $f6, ($v0) +.L7F0B2CFC: +/* 0E782C 7F0B2CFC 46068202 */ mul.s $f8, $f16, $f6 +/* 0E7830 7F0B2D00 E4A80000 */ swc1 $f8, ($a1) +/* 0E7834 7F0B2D04 C44A0000 */ lwc1 $f10, ($v0) +/* 0E7838 7F0B2D08 460A1482 */ mul.s $f18, $f2, $f10 +/* 0E783C 7F0B2D0C 03E00008 */ jr $ra +/* 0E7840 7F0B2D10 E4B20004 */ swc1 $f18, 4($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2D14(void) { + ? sp18; + + // Node 0 + sub_GAME_7F0B2C74(&sp18); + return sp18; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2D14 +/* 0E7844 7F0B2D14 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E7848 7F0B2D18 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E784C 7F0B2D1C 0FC2CB1D */ jal sub_GAME_7F0B2C74 +/* 0E7850 7F0B2D20 27A50018 */ addiu $a1, $sp, 0x18 +/* 0E7854 7F0B2D24 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7858 7F0B2D28 C7A00018 */ lwc1 $f0, 0x18($sp) +/* 0E785C 7F0B2D2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E7860 7F0B2D30 03E00008 */ jr $ra +/* 0E7864 7F0B2D34 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0B2D38(s32 arg0, s32 arg1, s32 arg2) { + return; +} + +s32 sub_GAME_7F0B2D48(s32 arg0) { + return arg0; +} + + + + + + +#ifdef NONMATCHING +void stanConvertNameStringToS32(void *arg0, void *arg1, void *arg2) { + s32 sp30; + void *sp38; + s32 temp_v1; + ? temp_ret; + s32 temp_v1_2; + s32 phi_v1; + + // Node 0 + temp_v1 = (*arg0 + -0x70); + if (temp_v1 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 1 + if (temp_v1 >= 2) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 2 + sp30 = temp_v1; + temp_ret = strtol((arg0 + 1), &sp38, 0xa); + if (sp38 == sp1C) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 3 + if (temp_ret >= 0x8000U) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 4 + temp_v1_2 = (*sp38 + -0x61); + if (temp_v1_2 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 5 + if (temp_v1_2 >= 0x1a) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 6 + phi_v1 = sp38->unk1; + if (sp38->unk1 != 0) + { + // Node 7 + phi_v1 = sp38->unk1; + if (sp38->unk1 != 0x30) + { + // Node 8 + phi_v1 = (sp38->unk1 + -0x30); + } + } + // Node 9 + if (phi_v1 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 10 + if (phi_v1 >= 8) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 11 + if (sp38->unk1 != 0) + { + // Node 12 + if (sp38->unk2 != 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + } + // Node 13 + *arg1 = (s16) ((sp30 << 0xf) | temp_ret); + *arg2 = (s8) ((temp_v1_2 * 8) | phi_v1); + return; +} +#else +GLOBAL_ASM( +.text +glabel stanConvertNameStringToS32 +/* 0E7880 7F0B2D50 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E7884 7F0B2D54 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7888 7F0B2D58 AFA50044 */ sw $a1, 0x44($sp) +/* 0E788C 7F0B2D5C AFA60048 */ sw $a2, 0x48($sp) +/* 0E7890 7F0B2D60 90830000 */ lbu $v1, ($a0) +/* 0E7894 7F0B2D64 2463FF90 */ addiu $v1, $v1, -0x70 +/* 0E7898 7F0B2D68 04600031 */ bltz $v1, .L7F0B2E30 +/* 0E789C 7F0B2D6C 28610002 */ slti $at, $v1, 2 +/* 0E78A0 7F0B2D70 1020002F */ beqz $at, .L7F0B2E30 +/* 0E78A4 7F0B2D74 24840001 */ addiu $a0, $a0, 1 +/* 0E78A8 7F0B2D78 AFA30030 */ sw $v1, 0x30($sp) +/* 0E78AC 7F0B2D7C 27A50038 */ addiu $a1, $sp, 0x38 +/* 0E78B0 7F0B2D80 2406000A */ li $a2, 10 +/* 0E78B4 7F0B2D84 0C002A78 */ jal strtol +/* 0E78B8 7F0B2D88 AFA4001C */ sw $a0, 0x1c($sp) +/* 0E78BC 7F0B2D8C 8FA4001C */ lw $a0, 0x1c($sp) +/* 0E78C0 7F0B2D90 8FAE0038 */ lw $t6, 0x38($sp) +/* 0E78C4 7F0B2D94 34018000 */ li $at, 32768 +/* 0E78C8 7F0B2D98 0041082B */ sltu $at, $v0, $at +/* 0E78CC 7F0B2D9C 51C40025 */ beql $t6, $a0, .L7F0B2E34 +/* 0E78D0 7F0B2DA0 8FB90044 */ lw $t9, 0x44($sp) +/* 0E78D4 7F0B2DA4 10200022 */ beqz $at, .L7F0B2E30 +/* 0E78D8 7F0B2DA8 8FAF0038 */ lw $t7, 0x38($sp) +/* 0E78DC 7F0B2DAC 91E30000 */ lbu $v1, ($t7) +/* 0E78E0 7F0B2DB0 2463FF9F */ addiu $v1, $v1, -0x61 +/* 0E78E4 7F0B2DB4 0460001E */ bltz $v1, .L7F0B2E30 +/* 0E78E8 7F0B2DB8 2861001A */ slti $at, $v1, 0x1a +/* 0E78EC 7F0B2DBC 1020001C */ beqz $at, .L7F0B2E30 +/* 0E78F0 7F0B2DC0 8FB80038 */ lw $t8, 0x38($sp) +/* 0E78F4 7F0B2DC4 93040001 */ lbu $a0, 1($t8) +/* 0E78F8 7F0B2DC8 00602825 */ move $a1, $v1 +/* 0E78FC 7F0B2DCC 24010030 */ li $at, 48 +/* 0E7900 7F0B2DD0 10800004 */ beqz $a0, .L7F0B2DE4 +/* 0E7904 7F0B2DD4 00801825 */ move $v1, $a0 +/* 0E7908 7F0B2DD8 10610002 */ beq $v1, $at, .L7F0B2DE4 +/* 0E790C 7F0B2DDC 00000000 */ nop +/* 0E7910 7F0B2DE0 2463FFD0 */ addiu $v1, $v1, -0x30 +.L7F0B2DE4: +/* 0E7914 7F0B2DE4 04600012 */ bltz $v1, .L7F0B2E30 +/* 0E7918 7F0B2DE8 28610008 */ slti $at, $v1, 8 +/* 0E791C 7F0B2DEC 50200011 */ beql $at, $zero, .L7F0B2E34 +/* 0E7920 7F0B2DF0 8FB90044 */ lw $t9, 0x44($sp) +/* 0E7924 7F0B2DF4 10800004 */ beqz $a0, .L7F0B2E08 +/* 0E7928 7F0B2DF8 8FB90038 */ lw $t9, 0x38($sp) +/* 0E792C 7F0B2DFC 93280002 */ lbu $t0, 2($t9) +/* 0E7930 7F0B2E00 5500000C */ bnezl $t0, .L7F0B2E34 +/* 0E7934 7F0B2E04 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B2E08: +/* 0E7938 7F0B2E08 8FA90030 */ lw $t1, 0x30($sp) +/* 0E793C 7F0B2E0C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0E7940 7F0B2E10 000568C0 */ sll $t5, $a1, 3 +/* 0E7944 7F0B2E14 000953C0 */ sll $t2, $t1, 0xf +/* 0E7948 7F0B2E18 01425825 */ or $t3, $t2, $v0 +/* 0E794C 7F0B2E1C A58B0000 */ sh $t3, ($t4) +/* 0E7950 7F0B2E20 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E7954 7F0B2E24 01A37025 */ or $t6, $t5, $v1 +/* 0E7958 7F0B2E28 10000007 */ b .L7F0B2E48 +/* 0E795C 7F0B2E2C A1EE0000 */ sb $t6, ($t7) +.L7F0B2E30: +/* 0E7960 7F0B2E30 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B2E34: +/* 0E7964 7F0B2E34 3418FFFF */ li $t8, 65535 +/* 0E7968 7F0B2E38 240800FF */ li $t0, 255 +/* 0E796C 7F0B2E3C A7380000 */ sh $t8, ($t9) +/* 0E7970 7F0B2E40 8FA90048 */ lw $t1, 0x48($sp) +/* 0E7974 7F0B2E44 A1280000 */ sb $t0, ($t1) +.L7F0B2E48: +/* 0E7978 7F0B2E48 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E797C 7F0B2E4C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0E7980 7F0B2E50 03E00008 */ jr $ra +/* 0E7984 7F0B2E54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void stanMatchTileName(void) { + +} +#else +GLOBAL_ASM( +.text +glabel stanMatchTileName +/* 0E7988 7F0B2E58 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E798C 7F0B2E5C AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7990 7F0B2E60 908E0000 */ lbu $t6, ($a0) +/* 0E7994 7F0B2E64 27A50022 */ addiu $a1, $sp, 0x22 +/* 0E7998 7F0B2E68 15C00003 */ bnez $t6, .L7F0B2E78 +/* 0E799C 7F0B2E6C 00000000 */ nop +/* 0E79A0 7F0B2E70 1000001F */ b .L7F0B2EF0 +/* 0E79A4 7F0B2E74 00001025 */ move $v0, $zero +.L7F0B2E78: +/* 0E79A8 7F0B2E78 0FC2CB54 */ jal stanConvertNameStringToS32 +/* 0E79AC 7F0B2E7C 27A60021 */ addiu $a2, $sp, 0x21 +/* 0E79B0 7F0B2E80 3C0F8008 */ lui $t7, %hi(clippingfile) +/* 0E79B4 7F0B2E84 8DEFB120 */ lw $t7, %lo(clippingfile)($t7) +/* 0E79B8 7F0B2E88 3C058004 */ lui $a1, %hi(list_of_tilesizes) +/* 0E79BC 7F0B2E8C 24A50F4C */ addiu $a1, %lo(list_of_tilesizes) # addiu $a1, $a1, 0xf4c +/* 0E79C0 7F0B2E90 8DE30004 */ lw $v1, 4($t7) +/* 0E79C4 7F0B2E94 97A40022 */ lhu $a0, 0x22($sp) +/* 0E79C8 7F0B2E98 8C780000 */ lw $t8, ($v1) +/* 0E79CC 7F0B2E9C 53000014 */ beql $t8, $zero, .L7F0B2EF0 +/* 0E79D0 7F0B2EA0 00001025 */ move $v0, $zero +/* 0E79D4 7F0B2EA4 94790000 */ lhu $t9, ($v1) +.L7F0B2EA8: +/* 0E79D8 7F0B2EA8 93A80021 */ lbu $t0, 0x21($sp) +/* 0E79DC 7F0B2EAC 54990007 */ bnel $a0, $t9, .L7F0B2ECC +/* 0E79E0 7F0B2EB0 84620006 */ lh $v0, 6($v1) +/* 0E79E4 7F0B2EB4 90690002 */ lbu $t1, 2($v1) +/* 0E79E8 7F0B2EB8 55090004 */ bnel $t0, $t1, .L7F0B2ECC +/* 0E79EC 7F0B2EBC 84620006 */ lh $v0, 6($v1) +/* 0E79F0 7F0B2EC0 1000000B */ b .L7F0B2EF0 +/* 0E79F4 7F0B2EC4 00601025 */ move $v0, $v1 +/* 0E79F8 7F0B2EC8 84620006 */ lh $v0, 6($v1) +.L7F0B2ECC: +/* 0E79FC 7F0B2ECC 00025303 */ sra $t2, $v0, 0xc +/* 0E7A00 7F0B2ED0 314B000F */ andi $t3, $t2, 0xf +/* 0E7A04 7F0B2ED4 00AB6021 */ addu $t4, $a1, $t3 +/* 0E7A08 7F0B2ED8 918D0000 */ lbu $t5, ($t4) +/* 0E7A0C 7F0B2EDC 01A31821 */ addu $v1, $t5, $v1 +/* 0E7A10 7F0B2EE0 8C6E0000 */ lw $t6, ($v1) +/* 0E7A14 7F0B2EE4 55C0FFF0 */ bnezl $t6, .L7F0B2EA8 +/* 0E7A18 7F0B2EE8 94790000 */ lhu $t9, ($v1) +/* 0E7A1C 7F0B2EEC 00001025 */ move $v0, $zero +.L7F0B2EF0: +/* 0E7A20 7F0B2EF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7A24 7F0B2EF4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E7A28 7F0B2EF8 03E00008 */ jr $ra +/* 0E7A2C 7F0B2EFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2F00(void *arg0) { + ? temp_ret; + + // Node 0 + temp_ret = stanMatchTileName(*arg0); + *arg0 = temp_ret; + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2F00 +/* 0E7A30 7F0B2F00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7A34 7F0B2F04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7A38 7F0B2F08 AFA40018 */ sw $a0, 0x18($sp) +/* 0E7A3C 7F0B2F0C 0FC2CB96 */ jal stanMatchTileName +/* 0E7A40 7F0B2F10 8C840000 */ lw $a0, ($a0) +/* 0E7A44 7F0B2F14 8FAF0018 */ lw $t7, 0x18($sp) +/* 0E7A48 7F0B2F18 ADE20000 */ sw $v0, ($t7) +/* 0E7A4C 7F0B2F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7A50 7F0B2F20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7A54 7F0B2F24 03E00008 */ jr $ra +/* 0E7A58 7F0B2F28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *stanDetermineEOF(void *arg0, s32 arg1, s32 arg2) { + s32 temp_v0; + void *temp_a3; + s32 temp_v1; + void *temp_a3_2; + void *temp_v0_2; + void *temp_v0_3; + s32 phi_v1; + void *phi_a3; + void *phi_a3_2; + void *phi_v0; + + // Node 0 + clippingfile = arg0; + temp_v0 = (arg2 - arg1); + base_ptr_connection_vals = (s32) ((arg0->unk4 + temp_v0) + -0x80); + ptr_firstroom_0 = (s32) (arg0->unk4 + temp_v0); + temp_a3 = (arg0 + 4); + phi_a3_2 = temp_a3; + if (arg0->unk4 != 0) + { + // Node 1 + phi_v1 = *temp_a3; + phi_a3 = temp_a3; +loop_2: + // Node 2 + temp_v1 = phi_a3->unk4; + *phi_a3 = (s32) (phi_v1 + temp_v0); + temp_a3_2 = (phi_a3 + 4); + phi_v1 = temp_v1; + phi_a3 = temp_a3_2; + phi_a3_2 = temp_a3_2; + if (temp_v1 != 0) + { + goto loop_2; + } + } + // Node 3 + temp_v0_2 = (phi_a3_2 + 4); + phi_v0 = temp_v0_2; + if (*temp_v0_2 != 0) + { +loop_4: + // Node 4 + D_80040F60 = (void *) phi_v0; + temp_v0_3 = (*(&list_of_tilesizes + (((s32) phi_v0->unk6 >> 0xc) & 0xf)) + phi_v0); + phi_v0 = temp_v0_3; + if (*temp_v0_3 != 0) + { + goto loop_4; + } + } + // Node 5 + clippingfile = arg0; + return temp_v0_2; +} +#else +GLOBAL_ASM( +.text +glabel stanDetermineEOF +/* 0E7A5C 7F0B2F2C 3C088008 */ lui $t0, %hi(clippingfile) +/* 0E7A60 7F0B2F30 2508B120 */ addiu $t0, %lo(clippingfile) # addiu $t0, $t0, -0x4ee0 +/* 0E7A64 7F0B2F34 AD040000 */ sw $a0, ($t0) +/* 0E7A68 7F0B2F38 8C8E0004 */ lw $t6, 4($a0) +/* 0E7A6C 7F0B2F3C 00C51023 */ subu $v0, $a2, $a1 +/* 0E7A70 7F0B2F40 3C018004 */ lui $at, %hi(base_ptr_connection_vals) +/* 0E7A74 7F0B2F44 01C27821 */ addu $t7, $t6, $v0 +/* 0E7A78 7F0B2F48 25F8FF80 */ addiu $t8, $t7, -0x80 +/* 0E7A7C 7F0B2F4C AC380F58 */ sw $t8, %lo(base_ptr_connection_vals)($at) +/* 0E7A80 7F0B2F50 8C990004 */ lw $t9, 4($a0) +/* 0E7A84 7F0B2F54 3C018004 */ lui $at, %hi(ptr_firstroom_0) +/* 0E7A88 7F0B2F58 3C068004 */ lui $a2, %hi(list_of_tilesizes) +/* 0E7A8C 7F0B2F5C 03224821 */ addu $t1, $t9, $v0 +/* 0E7A90 7F0B2F60 AC290F5C */ sw $t1, %lo(ptr_firstroom_0)($at) +/* 0E7A94 7F0B2F64 8C8A0004 */ lw $t2, 4($a0) +/* 0E7A98 7F0B2F68 24870004 */ addiu $a3, $a0, 4 +/* 0E7A9C 7F0B2F6C 24C60F4C */ addiu $a2, %lo(list_of_tilesizes) # addiu $a2, $a2, 0xf4c +/* 0E7AA0 7F0B2F70 11400008 */ beqz $t2, .L7F0B2F94 +/* 0E7AA4 7F0B2F74 3C058004 */ lui $a1, %hi(D_80040F60) +/* 0E7AA8 7F0B2F78 8CE30000 */ lw $v1, ($a3) +/* 0E7AAC 7F0B2F7C 00625821 */ addu $t3, $v1, $v0 +.L7F0B2F80: +/* 0E7AB0 7F0B2F80 8CE30004 */ lw $v1, 4($a3) +/* 0E7AB4 7F0B2F84 ACEB0000 */ sw $t3, ($a3) +/* 0E7AB8 7F0B2F88 24E70004 */ addiu $a3, $a3, 4 +/* 0E7ABC 7F0B2F8C 5460FFFC */ bnezl $v1, .L7F0B2F80 +/* 0E7AC0 7F0B2F90 00625821 */ addu $t3, $v1, $v0 +.L7F0B2F94: +/* 0E7AC4 7F0B2F94 24E20004 */ addiu $v0, $a3, 4 +/* 0E7AC8 7F0B2F98 8C4C0000 */ lw $t4, ($v0) +/* 0E7ACC 7F0B2F9C 24A50F60 */ addiu $a1, %lo(D_80040F60) # addiu $a1, $a1, 0xf60 +/* 0E7AD0 7F0B2FA0 1180000B */ beqz $t4, .L7F0B2FD0 +/* 0E7AD4 7F0B2FA4 00000000 */ nop +/* 0E7AD8 7F0B2FA8 ACA20000 */ sw $v0, ($a1) +.L7F0B2FAC: +/* 0E7ADC 7F0B2FAC 84430006 */ lh $v1, 6($v0) +/* 0E7AE0 7F0B2FB0 00036B03 */ sra $t5, $v1, 0xc +/* 0E7AE4 7F0B2FB4 31AE000F */ andi $t6, $t5, 0xf +/* 0E7AE8 7F0B2FB8 00CE7821 */ addu $t7, $a2, $t6 +/* 0E7AEC 7F0B2FBC 91F80000 */ lbu $t8, ($t7) +/* 0E7AF0 7F0B2FC0 03021021 */ addu $v0, $t8, $v0 +/* 0E7AF4 7F0B2FC4 8C590000 */ lw $t9, ($v0) +/* 0E7AF8 7F0B2FC8 5720FFF8 */ bnezl $t9, .L7F0B2FAC +/* 0E7AFC 7F0B2FCC ACA20000 */ sw $v0, ($a1) +.L7F0B2FD0: +/* 0E7B00 7F0B2FD0 03E00008 */ jr $ra +/* 0E7B04 7F0B2FD4 AD040000 */ sw $a0, ($t0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B2FD8(void *arg0) { + return arg0->unk3; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2FD8 +/* 0E7B08 7F0B2FD8 03E00008 */ jr $ra +/* 0E7B0C 7F0B2FDC 90820003 */ lbu $v0, 3($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2FE0(void *arg0) { + sub_GAME_7F0B4F9C(arg0->unk3); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2FE0 +/* 0E7B10 7F0B2FE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7B14 7F0B2FE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7B18 7F0B2FE8 90820003 */ lbu $v0, 3($a0) +/* 0E7B1C 7F0B2FEC 0FC2D3E7 */ jal sub_GAME_7F0B4F9C +/* 0E7B20 7F0B2FF0 00402025 */ move $a0, $v0 +/* 0E7B24 7F0B2FF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7B28 7F0B2FF8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7B2C 7F0B2FFC 03E00008 */ jr $ra +/* 0E7B30 7F0B3000 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3004(void) { + sub_GAME_7F0B2D14(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3004 +/* 0E7B34 7F0B3004 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7B38 7F0B3008 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7B3C 7F0B300C 0FC2CB45 */ jal sub_GAME_7F0B2D14 +/* 0E7B40 7F0B3010 00000000 */ nop +/* 0E7B44 7F0B3014 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7B48 7F0B3018 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7B4C 7F0B301C 03E00008 */ jr $ra +/* 0E7B50 7F0B3020 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B3024(s32 *ptrdl, s32 *ptrtile, u32 RGBAColor) { + 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 + + + + + + +s32 sub_GAME_7F0B3034(s32 arg0) { + return arg0; +} + +s32 sub_GAME_7F0B303C(s32 arg0) { + return arg0; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3044(void) { + +} +#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 num_microcode_cmds_that_fit +/* 0E7B80 7F0B3050 AFA0001C */ sw $zero, 0x1c($sp) +/* 0E7B84 7F0B3054 28411000 */ slti $at, $v0, 0x1000 +/* 0E7B88 7F0B3058 14200005 */ bnez $at, .L7F0B3070 +/* 0E7B8C 7F0B305C 00000000 */ nop +/* 0E7B90 7F0B3060 0FC2F5E9 */ jal sub_GAME_7F0BD7A4 +/* 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 +s32 sub_GAME_7F0B312C(s32 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 +void sub_GAME_7F0B3138(s32 arg0, s32 arg1, ? arg2, ? arg3, ? arg4, f32 arg5, ?32 arg6, f32 arg7, f32 arg8) { + // Node 0 + return sub_GAME_7F0B0E24(arg2, arg3, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, 0.0f, 1.0f); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3138 +/* 0E7C68 7F0B3138 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E7C6C 7F0B313C 44866000 */ mtc1 $a2, $f12 +/* 0E7C70 7F0B3140 44877000 */ mtc1 $a3, $f14 +/* 0E7C74 7F0B3144 AFA40030 */ sw $a0, 0x30($sp) +/* 0E7C78 7F0B3148 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7C7C 7F0B314C 44818000 */ mtc1 $at, $f16 +/* 0E7C80 7F0B3150 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0E7C84 7F0B3154 8FAE0048 */ lw $t6, 0x48($sp) +/* 0E7C88 7F0B3158 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0E7C8C 7F0B315C C7A80050 */ lwc1 $f8, 0x50($sp) +/* 0E7C90 7F0B3160 44805000 */ mtc1 $zero, $f10 +/* 0E7C94 7F0B3164 00A02025 */ move $a0, $a1 +/* 0E7C98 7F0B3168 AFBF002C */ sw $ra, 0x2c($sp) +/* 0E7C9C 7F0B316C 44056000 */ mfc1 $a1, $f12 +/* 0E7CA0 7F0B3170 44067000 */ mfc1 $a2, $f14 +/* 0E7CA4 7F0B3174 8FA70040 */ lw $a3, 0x40($sp) +/* 0E7CA8 7F0B3178 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E7CAC 7F0B317C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0E7CB0 7F0B3180 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E7CB4 7F0B3184 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E7CB8 7F0B3188 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0E7CBC 7F0B318C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0E7CC0 7F0B3190 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0E7CC4 7F0B3194 8FBF002C */ lw $ra, 0x2c($sp) +/* 0E7CC8 7F0B3198 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E7CCC 7F0B319C 03E00008 */ jr $ra +/* 0E7CD0 7F0B31A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B31A4(s32 arg0, s32 arg1, ? arg2, ? arg3, ? arg4, ?32 arg5, f32 arg6, f32 arg7) { + // Node 0 + return sub_GAME_7F0B18B8(arg2, arg3, arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B31A4 +/* 0E7CD4 7F0B31A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E7CD8 7F0B31A8 44866000 */ mtc1 $a2, $f12 +/* 0E7CDC 7F0B31AC 44877000 */ mtc1 $a3, $f14 +/* 0E7CE0 7F0B31B0 AFA40028 */ sw $a0, 0x28($sp) +/* 0E7CE4 7F0B31B4 8FAE003C */ lw $t6, 0x3c($sp) +/* 0E7CE8 7F0B31B8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E7CEC 7F0B31BC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0E7CF0 7F0B31C0 AFA5002C */ sw $a1, 0x2c($sp) +/* 0E7CF4 7F0B31C4 00A02025 */ move $a0, $a1 +/* 0E7CF8 7F0B31C8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E7CFC 7F0B31CC 44056000 */ mfc1 $a1, $f12 +/* 0E7D00 7F0B31D0 44067000 */ mfc1 $a2, $f14 +/* 0E7D04 7F0B31D4 8FA70038 */ lw $a3, 0x38($sp) +/* 0E7D08 7F0B31D8 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E7D0C 7F0B31DC E7A40014 */ swc1 $f4, 0x14($sp) +/* 0E7D10 7F0B31E0 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0E7D14 7F0B31E4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E7D18 7F0B31E8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E7D1C 7F0B31EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E7D20 7F0B31F0 03E00008 */ jr $ra +/* 0E7D24 7F0B31F4 00000000 */ nop +) +#endif + + diff --git a/src/game/stan.h b/src/game/stan.h new file mode 100644 index 0000000..f758b23 --- /dev/null +++ b/src/game/stan.h @@ -0,0 +1,7 @@ +#ifndef _STAN_H_ +#define _STAN_H_ +#include "ultra64.h" + +void stanInitDebugNoticeList(void); + +#endif diff --git a/src/game/textrelated.c b/src/game/textrelated.c new file mode 100644 index 0000000..9083962 --- /dev/null +++ b/src/game/textrelated.c @@ -0,0 +1,3187 @@ +#include "ultra64.h" + + +// data +s32 D_80040E80 = 0; +s32 text_spacing = 0; +s32 text_orientation = 0; +s32 text_wordwrap = 0; +s32 overlap_correction = -1; +s32 text_bilevel_filter = 0; +s32 text_x = 0; +s32 text_y = 0; +s32 text_s = 0; +s32 text_t = 0; +s32 D_80040EA8 = 0; +s32 ptrFirstFontTableSmall = 0; +s32 ptrSecondFontTableSmall = 0; +s32 ptrFirstFontTableLarge = 0; +s32 ptrSecondFontTableLarge = 0; + +u16 D_80040EBC[] = { + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff +}; +u32 D_80040EDC = 0; +u32 D_80040EE0 = 0; + +u32 D_80040EE4[] = { + 0x55555555, 0x55555555, + 0xAAAAAAAA, 0xAAAAAAAA, + 0xFFFFFFFF, 0xFFFFFFFF +}; +u32 D_80040EFC = 0; +u32 D_80040F00 = 0; + + +s32 D_80040F04 = 0xC; +s32 D_80040F08 = 0xB; +s32 D_80040F0C = 0; +s32 D_80040F10 = 0; +s32 D_80040F14 = 0; +s32 D_80040F18 = 0; +s32 D_80040F1C = 0xC; +s32 D_80040F20 = 0xB; +s32 D_80040F24 = 0; +s32 D_80040F28 = 0; + + + +void textrelatedInit_REMOVED(void) { + +} + +void setTextSpacingInverted(s32 spacing) { + text_spacing = -spacing; +} + +void setTextOrientation(s32 orientation) { + text_orientation = orientation; +} + +void setTextWordWrap(s32 flag) { + text_wordwrap = flag; +} + +void setTextOverlapCorrection(s32 flag) { + overlap_correction = flag; +} + + + + + + +#ifdef NONMATCHING +void load_font_tables(void) +{ + s32 sp1C; + s32 MACROSIZE; + s32 MACROSIZE; + s32 temp_ret; + s32 temp_ret_2; + s32 i_next; + s32 temp_v1_2; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_v0_4; + void *temp_v0_5; + s32 i; + s32 phi_v1_2; + + text_spacing = 0; + text_orientation = 0; + text_wordwrap = 0; + overlap_correction = -1; + text_bilevel_filter = 0; + text_x = 0; + text_y = 0; + text_s = 0; + MACROSIZE = 0x24b0 - 0; + text_t = 0; + ptrFirstFontTableSmall = mempAllocBytesInBank(MACROSIZE, 4); + ptrSecondFontTableSmall = (s32) (ptrFirstFontTableSmall + 0x2a4); + romCopy(&ptrFirstFontTableSmall, &_fonttablectlsmall1SegmentRomStart, MACROSIZE); + i = 0; +loop_1: + temp_v0 = ptrSecondFontTableSmall + i; + i_next = i + 0x18; + temp_v0->unk14 = (s32) (temp_v0->unk14 + ptrFirstFontTableSmall); + i = i_next; + if (i_next < 0x8d0) + { + goto loop_1; + } + MACROSIZE = 0x3540 - 0; + ptrFirstFontTableLarge = mempAllocBytesInBank(MACROSIZE, 4); + ptrSecondFontTableLarge = (s32) (ptrFirstFontTableLarge + 0x2a4); + romCopy(&ptrFirstFontTableLarge, &_fonttablectllarge1SegmentRomStart, MACROSIZE); + ptrSecondFontTableLarge->unk14 = (s32) (ptrSecondFontTableLarge->unk14 + ptrFirstFontTableLarge); + ptrSecondFontTableLarge->unk2C = (s32) (ptrSecondFontTableLarge->unk2C + ptrFirstFontTableLarge); + phi_v1_2 = 0x30; +loop_3: + temp_v0_2 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_2->unk14 = (s32) (temp_v0_2->unk14 + ptrFirstFontTableLarge); + temp_v0_3 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_3->unk2C = (s32) (temp_v0_3->unk2C + ptrFirstFontTableLarge); + temp_v0_4 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_4->unk44 = (s32) (temp_v0_4->unk44 + ptrFirstFontTableLarge); + temp_v0_5 = ptrSecondFontTableLarge + phi_v1_2; + temp_v1_2 = phi_v1_2 + 0x60; + temp_v0_5->unk5C = (s32) (temp_v0_5->unk5C + ptrFirstFontTableLarge); + phi_v1_2 = temp_v1_2; + if (temp_v1_2 != 0x8d0) + { + goto loop_3; + } +} +#else +GLOBAL_ASM( +.text +glabel load_font_tables +/* 0E16DC 7F0ACBAC 3C018004 */ lui $at, %hi(text_spacing) +/* 0E16E0 7F0ACBB0 AC200E84 */ sw $zero, %lo(text_spacing)($at) +/* 0E16E4 7F0ACBB4 3C018004 */ lui $at, %hi(text_orientation) +/* 0E16E8 7F0ACBB8 AC200E88 */ sw $zero, %lo(text_orientation)($at) +/* 0E16EC 7F0ACBBC 3C018004 */ lui $at, %hi(text_wordwrap) +/* 0E16F0 7F0ACBC0 AC200E8C */ sw $zero, %lo(text_wordwrap)($at) +/* 0E16F4 7F0ACBC4 3C018004 */ lui $at, %hi(overlap_correction) +/* 0E16F8 7F0ACBC8 240EFFFF */ li $t6, -1 +/* 0E16FC 7F0ACBCC AC2E0E90 */ sw $t6, %lo(overlap_correction)($at) +/* 0E1700 7F0ACBD0 3C018004 */ lui $at, %hi(text_bilevel_filter) +/* 0E1704 7F0ACBD4 AC200E94 */ sw $zero, %lo(text_bilevel_filter)($at) +/* 0E1708 7F0ACBD8 3C018004 */ lui $at, %hi(text_x) +/* 0E170C 7F0ACBDC AC200E98 */ sw $zero, %lo(text_x)($at) +/* 0E1710 7F0ACBE0 3C018004 */ lui $at, %hi(text_y) +/* 0E1714 7F0ACBE4 AC200E9C */ sw $zero, %lo(text_y)($at) +/* 0E1718 7F0ACBE8 3C018004 */ lui $at, %hi(text_s) +/* 0E171C 7F0ACBEC 3C0F0000 */ lui $t7, %hi(0x000024B0) # $t7, 0 +/* 0E1720 7F0ACBF0 3C180000 */ lui $t8, 0 +/* 0E1724 7F0ACBF4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E1728 7F0ACBF8 AC200EA0 */ sw $zero, %lo(text_s)($at) +/* 0E172C 7F0ACBFC 27180000 */ addiu $t8, $t8, 0 +/* 0E1730 7F0ACC00 25EF24B0 */ addiu $t7, %lo(0x000024B0) # addiu $t7, $t7, 0x24b0 +/* 0E1734 7F0ACC04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E1738 7F0ACC08 3C018004 */ lui $at, %hi(text_t) +/* 0E173C 7F0ACC0C 01F83023 */ subu $a2, $t7, $t8 +/* 0E1740 7F0ACC10 AC200EA4 */ sw $zero, %lo(text_t)($at) +/* 0E1744 7F0ACC14 00C02025 */ move $a0, $a2 +/* 0E1748 7F0ACC18 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E174C 7F0ACC1C 0C0025C8 */ jal mempAllocBytesInBank +/* 0E1750 7F0ACC20 24050004 */ li $a1, 4 +/* 0E1754 7F0ACC24 3C078004 */ lui $a3, %hi(ptrFirstFontTableSmall) +/* 0E1758 7F0ACC28 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0E175C 7F0ACC2C 25080EB0 */ addiu $t0, %lo(ptrSecondFontTableSmall) # addiu $t0, $t0, 0xeb0 +/* 0E1760 7F0ACC30 24E70EAC */ addiu $a3, %lo(ptrFirstFontTableSmall) # addiu $a3, $a3, 0xeac +/* 0E1764 7F0ACC34 245902A4 */ addiu $t9, $v0, 0x2a4 +/* 0E1768 7F0ACC38 3C05002E */ lui $a1, %hi(_fonttablectlsmall1SegmentRomStart) # $a1, 0x2e +/* 0E176C 7F0ACC3C ACE20000 */ sw $v0, ($a3) +/* 0E1770 7F0ACC40 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E1774 7F0ACC44 AD190000 */ sw $t9, ($t0) +/* 0E1778 7F0ACC48 00402025 */ move $a0, $v0 +/* 0E177C 7F0ACC4C 0C001707 */ jal romCopy +/* 0E1780 7F0ACC50 24A563F0 */ addiu $a1, %lo(_fonttablectlsmall1SegmentRomStart) # addiu $a1, $a1, 0x63f0 +/* 0E1784 7F0ACC54 3C078004 */ lui $a3, %hi(ptrFirstFontTableSmall) +/* 0E1788 7F0ACC58 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0E178C 7F0ACC5C 25080EB0 */ addiu $t0, %lo(ptrSecondFontTableSmall) # addiu $t0, $t0, 0xeb0 +/* 0E1790 7F0ACC60 24E70EAC */ addiu $a3, %lo(ptrFirstFontTableSmall) # addiu $a3, $a3, 0xeac +/* 0E1794 7F0ACC64 00001825 */ move $v1, $zero +.L7F0ACC68: +/* 0E1798 7F0ACC68 8D090000 */ lw $t1, ($t0) +/* 0E179C 7F0ACC6C 8CEB0000 */ lw $t3, ($a3) +/* 0E17A0 7F0ACC70 01231021 */ addu $v0, $t1, $v1 +/* 0E17A4 7F0ACC74 8C4A0014 */ lw $t2, 0x14($v0) +/* 0E17A8 7F0ACC78 24630018 */ addiu $v1, $v1, 0x18 +/* 0E17AC 7F0ACC7C 286108D0 */ slti $at, $v1, 0x8d0 +/* 0E17B0 7F0ACC80 014B6021 */ addu $t4, $t2, $t3 +/* 0E17B4 7F0ACC84 1420FFF8 */ bnez $at, .L7F0ACC68 +/* 0E17B8 7F0ACC88 AC4C0014 */ sw $t4, 0x14($v0) +/* 0E17BC 7F0ACC8C 3C0D0000 */ lui $t5, %hi(0x00003540) # $t5, 0 +/* 0E17C0 7F0ACC90 3C0E0000 */ lui $t6, 0 +/* 0E17C4 7F0ACC94 25CE0000 */ addiu $t6, $t6, 0 +/* 0E17C8 7F0ACC98 25AD3540 */ addiu $t5, %lo(0x00003540) # addiu $t5, $t5, 0x3540 +/* 0E17CC 7F0ACC9C 01AE3023 */ subu $a2, $t5, $t6 +/* 0E17D0 7F0ACCA0 00C02025 */ move $a0, $a2 +/* 0E17D4 7F0ACCA4 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E17D8 7F0ACCA8 0C0025C8 */ jal mempAllocBytesInBank +/* 0E17DC 7F0ACCAC 24050004 */ li $a1, 4 +/* 0E17E0 7F0ACCB0 3C078004 */ lui $a3, %hi(ptrFirstFontTableLarge) +/* 0E17E4 7F0ACCB4 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 0E17E8 7F0ACCB8 25080EB8 */ addiu $t0, %lo(ptrSecondFontTableLarge) # addiu $t0, $t0, 0xeb8 +/* 0E17EC 7F0ACCBC 24E70EB4 */ addiu $a3, %lo(ptrFirstFontTableLarge) # addiu $a3, $a3, 0xeb4 +/* 0E17F0 7F0ACCC0 244F02A4 */ addiu $t7, $v0, 0x2a4 +/* 0E17F4 7F0ACCC4 3C05002F */ lui $a1, %hi(_fonttablectllarge1SegmentRomStart) # $a1, 0x2f +/* 0E17F8 7F0ACCC8 ACE20000 */ sw $v0, ($a3) +/* 0E17FC 7F0ACCCC 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E1800 7F0ACCD0 AD0F0000 */ sw $t7, ($t0) +/* 0E1804 7F0ACCD4 00402025 */ move $a0, $v0 +/* 0E1808 7F0ACCD8 0C001707 */ jal romCopy +/* 0E180C 7F0ACCDC 24A588A0 */ addiu $a1, %lo(_fonttablectllarge1SegmentRomStart) # addiu $a1, $a1, -0x7760 +/* 0E1810 7F0ACCE0 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 0E1814 7F0ACCE4 25080EB8 */ addiu $t0, %lo(ptrSecondFontTableLarge) # addiu $t0, $t0, 0xeb8 +/* 0E1818 7F0ACCE8 8D020000 */ lw $v0, ($t0) +/* 0E181C 7F0ACCEC 3C078004 */ lui $a3, %hi(ptrFirstFontTableLarge) +/* 0E1820 7F0ACCF0 24E70EB4 */ addiu $a3, %lo(ptrFirstFontTableLarge) # addiu $a3, $a3, 0xeb4 +/* 0E1824 7F0ACCF4 8CF90000 */ lw $t9, ($a3) +/* 0E1828 7F0ACCF8 8C580014 */ lw $t8, 0x14($v0) +/* 0E182C 7F0ACCFC 24030030 */ li $v1, 48 +/* 0E1830 7F0ACD00 240408D0 */ li $a0, 2256 +/* 0E1834 7F0ACD04 03194821 */ addu $t1, $t8, $t9 +/* 0E1838 7F0ACD08 AC490014 */ sw $t1, 0x14($v0) +/* 0E183C 7F0ACD0C 8D020000 */ lw $v0, ($t0) +/* 0E1840 7F0ACD10 8CEB0000 */ lw $t3, ($a3) +/* 0E1844 7F0ACD14 8C4A002C */ lw $t2, 0x2c($v0) +/* 0E1848 7F0ACD18 014B6021 */ addu $t4, $t2, $t3 +/* 0E184C 7F0ACD1C AC4C002C */ sw $t4, 0x2c($v0) +.L7F0ACD20: +/* 0E1850 7F0ACD20 8D0D0000 */ lw $t5, ($t0) +/* 0E1854 7F0ACD24 8CEF0000 */ lw $t7, ($a3) +/* 0E1858 7F0ACD28 01A31021 */ addu $v0, $t5, $v1 +/* 0E185C 7F0ACD2C 8C4E0014 */ lw $t6, 0x14($v0) +/* 0E1860 7F0ACD30 01CFC021 */ addu $t8, $t6, $t7 +/* 0E1864 7F0ACD34 AC580014 */ sw $t8, 0x14($v0) +/* 0E1868 7F0ACD38 8D190000 */ lw $t9, ($t0) +/* 0E186C 7F0ACD3C 8CEA0000 */ lw $t2, ($a3) +/* 0E1870 7F0ACD40 03231021 */ addu $v0, $t9, $v1 +/* 0E1874 7F0ACD44 8C49002C */ lw $t1, 0x2c($v0) +/* 0E1878 7F0ACD48 012A5821 */ addu $t3, $t1, $t2 +/* 0E187C 7F0ACD4C AC4B002C */ sw $t3, 0x2c($v0) +/* 0E1880 7F0ACD50 8D0C0000 */ lw $t4, ($t0) +/* 0E1884 7F0ACD54 8CEE0000 */ lw $t6, ($a3) +/* 0E1888 7F0ACD58 01831021 */ addu $v0, $t4, $v1 +/* 0E188C 7F0ACD5C 8C4D0044 */ lw $t5, 0x44($v0) +/* 0E1890 7F0ACD60 01AE7821 */ addu $t7, $t5, $t6 +/* 0E1894 7F0ACD64 AC4F0044 */ sw $t7, 0x44($v0) +/* 0E1898 7F0ACD68 8D180000 */ lw $t8, ($t0) +/* 0E189C 7F0ACD6C 8CE90000 */ lw $t1, ($a3) +/* 0E18A0 7F0ACD70 03031021 */ addu $v0, $t8, $v1 +/* 0E18A4 7F0ACD74 8C59005C */ lw $t9, 0x5c($v0) +/* 0E18A8 7F0ACD78 24630060 */ addiu $v1, $v1, 0x60 +/* 0E18AC 7F0ACD7C 03295021 */ addu $t2, $t9, $t1 +/* 0E18B0 7F0ACD80 1464FFE7 */ bne $v1, $a0, .L7F0ACD20 +/* 0E18B4 7F0ACD84 AC4A005C */ sw $t2, 0x5c($v0) +/* 0E18B8 7F0ACD88 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E18BC 7F0ACD8C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E18C0 7F0ACD90 03E00008 */ jr $ra +/* 0E18C4 7F0ACD94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void microcode_constructor(u32 *DL) + +{ + DL[0] = 0xe7000000; //rdp_pipesync + DL[1] = 0; + DL[2] = 0xba001402; //rsp_uc05_setothermode_h + DL[3] = 0; + DL[5] = 0xc0; + DL[4] = 0xba000602; //rsp_uc05_setothermode_h + DL[6] = 0xb900031d; //rsp_uc05_setothermode_l + DL[7] = 0x5041c8; + DL[8] = 0xfcff97ff; //rdp_setcombine + DL[9] = 0xff2dfeff; //rdp_setcolourimage + DL[10] = 0xba001301; //rsp_uc05_setothermode_h + DL[0xb] = 0; + DL[0xc] = 0xb9000002; //rsp_uc05_setothermode_l + DL[0xd] = 0; + DL[0xe] = 0xba001001; //rsp_uc05_setothermode_h + DL[0xf] = 0; + DL[0x11] = 0xc00; + DL[0x10] = 0xba000903; //rsp_uc05_setothermode_h + DL[0x12] = 0xba000e02; //rsp_uc05_setothermode_h + DL[0x13] = 0; + if (text_bilevel_filter != 0) { + DL[0x15] = 0x3000; + DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h + return; + } + DL[0x15] = 0x2000; + DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h + return; +} +#else +GLOBAL_ASM( +.text +glabel microcode_constructor +/* 0E18C8 7F0ACD98 00801025 */ move $v0, $a0 +/* 0E18CC 7F0ACD9C 24840008 */ addiu $a0, $a0, 8 +/* 0E18D0 7F0ACDA0 3C0EE700 */ lui $t6, 0xe700 +/* 0E18D4 7F0ACDA4 AC4E0000 */ sw $t6, ($v0) +/* 0E18D8 7F0ACDA8 AC400004 */ sw $zero, 4($v0) +/* 0E18DC 7F0ACDAC 00801825 */ move $v1, $a0 +/* 0E18E0 7F0ACDB0 24840008 */ addiu $a0, $a0, 8 +/* 0E18E4 7F0ACDB4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0E18E8 7F0ACDB8 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0E18EC 7F0ACDBC 00802825 */ move $a1, $a0 +/* 0E18F0 7F0ACDC0 AC6F0000 */ sw $t7, ($v1) +/* 0E18F4 7F0ACDC4 AC600004 */ sw $zero, 4($v1) +/* 0E18F8 7F0ACDC8 24840008 */ addiu $a0, $a0, 8 +/* 0E18FC 7F0ACDCC 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 0E1900 7F0ACDD0 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 0E1904 7F0ACDD4 241900C0 */ li $t9, 192 +/* 0E1908 7F0ACDD8 00803025 */ move $a2, $a0 +/* 0E190C 7F0ACDDC ACB90004 */ sw $t9, 4($a1) +/* 0E1910 7F0ACDE0 ACB80000 */ sw $t8, ($a1) +/* 0E1914 7F0ACDE4 24840008 */ addiu $a0, $a0, 8 +/* 0E1918 7F0ACDE8 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900 +/* 0E191C 7F0ACDEC 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50 +/* 0E1920 7F0ACDF0 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8 +/* 0E1924 7F0ACDF4 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d +/* 0E1928 7F0ACDF8 00803825 */ move $a3, $a0 +/* 0E192C 7F0ACDFC ACC80000 */ sw $t0, ($a2) +/* 0E1930 7F0ACE00 ACC90004 */ sw $t1, 4($a2) +/* 0E1934 7F0ACE04 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff +/* 0E1938 7F0ACE08 3C0BFF2D */ lui $t3, (0xFF2DFEFF >> 16) # lui $t3, 0xff2d +/* 0E193C 7F0ACE0C 356BFEFF */ ori $t3, (0xFF2DFEFF & 0xFFFF) # ori $t3, $t3, 0xfeff +/* 0E1940 7F0ACE10 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff +/* 0E1944 7F0ACE14 24840008 */ addiu $a0, $a0, 8 +/* 0E1948 7F0ACE18 ACEA0000 */ sw $t2, ($a3) +/* 0E194C 7F0ACE1C ACEB0004 */ sw $t3, 4($a3) +/* 0E1950 7F0ACE20 00801025 */ move $v0, $a0 +/* 0E1954 7F0ACE24 24840008 */ addiu $a0, $a0, 8 +/* 0E1958 7F0ACE28 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00 +/* 0E195C 7F0ACE2C 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301 +/* 0E1960 7F0ACE30 00801825 */ move $v1, $a0 +/* 0E1964 7F0ACE34 AC4C0000 */ sw $t4, ($v0) +/* 0E1968 7F0ACE38 AC400004 */ sw $zero, 4($v0) +/* 0E196C 7F0ACE3C 24840008 */ addiu $a0, $a0, 8 +/* 0E1970 7F0ACE40 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 0E1974 7F0ACE44 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 0E1978 7F0ACE48 00802825 */ move $a1, $a0 +/* 0E197C 7F0ACE4C AC6D0000 */ sw $t5, ($v1) +/* 0E1980 7F0ACE50 AC600004 */ sw $zero, 4($v1) +/* 0E1984 7F0ACE54 24840008 */ addiu $a0, $a0, 8 +/* 0E1988 7F0ACE58 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 0E198C 7F0ACE5C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 0E1990 7F0ACE60 00803025 */ move $a2, $a0 +/* 0E1994 7F0ACE64 ACAE0000 */ sw $t6, ($a1) +/* 0E1998 7F0ACE68 ACA00004 */ sw $zero, 4($a1) +/* 0E199C 7F0ACE6C 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00 +/* 0E19A0 7F0ACE70 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903 +/* 0E19A4 7F0ACE74 24840008 */ addiu $a0, $a0, 8 +/* 0E19A8 7F0ACE78 24180C00 */ li $t8, 3072 +/* 0E19AC 7F0ACE7C ACD80004 */ sw $t8, 4($a2) +/* 0E19B0 7F0ACE80 ACCF0000 */ sw $t7, ($a2) +/* 0E19B4 7F0ACE84 00803825 */ move $a3, $a0 +/* 0E19B8 7F0ACE88 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 +/* 0E19BC 7F0ACE8C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 +/* 0E19C0 7F0ACE90 ACF90000 */ sw $t9, ($a3) +/* 0E19C4 7F0ACE94 ACE00004 */ sw $zero, 4($a3) +/* 0E19C8 7F0ACE98 3C088004 */ lui $t0, %hi(text_bilevel_filter) +/* 0E19CC 7F0ACE9C 8D080E94 */ lw $t0, %lo(text_bilevel_filter)($t0) +/* 0E19D0 7F0ACEA0 24840008 */ addiu $a0, $a0, 8 +/* 0E19D4 7F0ACEA4 00801025 */ move $v0, $a0 +/* 0E19D8 7F0ACEA8 1100000A */ beqz $t0, .L7F0ACED4 +/* 0E19DC 7F0ACEAC 3C0BBA00 */ lui $t3, 0xba00 +/* 0E19E0 7F0ACEB0 00801025 */ move $v0, $a0 +/* 0E19E4 7F0ACEB4 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00 +/* 0E19E8 7F0ACEB8 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02 +/* 0E19EC 7F0ACEBC 240A3000 */ li $t2, 12288 +/* 0E19F0 7F0ACEC0 AC4A0004 */ sw $t2, 4($v0) +/* 0E19F4 7F0ACEC4 AC490000 */ sw $t1, ($v0) +/* 0E19F8 7F0ACEC8 24840008 */ addiu $a0, $a0, 8 +/* 0E19FC 7F0ACECC 03E00008 */ jr $ra +/* 0E1A00 7F0ACED0 00801025 */ move $v0, $a0 + +.L7F0ACED4: +/* 0E1A04 7F0ACED4 356B0C02 */ ori $t3, $t3, 0xc02 +/* 0E1A08 7F0ACED8 240C2000 */ li $t4, 8192 +/* 0E1A0C 7F0ACEDC AC4C0004 */ sw $t4, 4($v0) +/* 0E1A10 7F0ACEE0 AC4B0000 */ sw $t3, ($v0) +/* 0E1A14 7F0ACEE4 24840008 */ addiu $a0, $a0, 8 +/* 0E1A18 7F0ACEE8 03E00008 */ jr $ra +/* 0E1A1C 7F0ACEEC 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +s32 combiner_bayer_lod_perspective(void *arg0) { + void *temp_a1; + void *temp_a2; + void *temp_a3; + + // Node 0 + temp_a1 = (arg0 + 8); + *arg0 = 0xe7000000; + arg0->unk4 = 0; + temp_a2 = (temp_a1 + 8); + temp_a1->unk4 = 0x40; + *temp_a1 = 0xba000602; + temp_a3 = (temp_a2 + 8); + temp_a2->unk4 = 0x80000; + *temp_a2 = 0xba001301; + temp_a3->unk4 = 0x10000; + *temp_a3 = 0xba001001; + return; + // (possible return value: (temp_a3 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel combiner_bayer_lod_perspective +/* 0E1A20 7F0ACEF0 24850008 */ addiu $a1, $a0, 8 +/* 0E1A24 7F0ACEF4 3C0EE700 */ lui $t6, 0xe700 +/* 0E1A28 7F0ACEF8 AC8E0000 */ sw $t6, ($a0) +/* 0E1A2C 7F0ACEFC AC800004 */ sw $zero, 4($a0) +/* 0E1A30 7F0ACF00 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 0E1A34 7F0ACF04 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 0E1A38 7F0ACF08 24A60008 */ addiu $a2, $a1, 8 +/* 0E1A3C 7F0ACF0C 24180040 */ li $t8, 64 +/* 0E1A40 7F0ACF10 ACB80004 */ sw $t8, 4($a1) +/* 0E1A44 7F0ACF14 ACAF0000 */ sw $t7, ($a1) +/* 0E1A48 7F0ACF18 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 +/* 0E1A4C 7F0ACF1C 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 +/* 0E1A50 7F0ACF20 24C70008 */ addiu $a3, $a2, 8 +/* 0E1A54 7F0ACF24 3C080008 */ lui $t0, 8 +/* 0E1A58 7F0ACF28 3C09BA00 */ lui $t1, (0xBA001001 >> 16) # lui $t1, 0xba00 +/* 0E1A5C 7F0ACF2C ACC80004 */ sw $t0, 4($a2) +/* 0E1A60 7F0ACF30 ACD90000 */ sw $t9, ($a2) +/* 0E1A64 7F0ACF34 35291001 */ ori $t1, (0xBA001001 & 0xFFFF) # ori $t1, $t1, 0x1001 +/* 0E1A68 7F0ACF38 3C0A0001 */ lui $t2, 1 +/* 0E1A6C 7F0ACF3C ACEA0004 */ sw $t2, 4($a3) +/* 0E1A70 7F0ACF40 ACE90000 */ sw $t1, ($a3) +/* 0E1A74 7F0ACF44 03E00008 */ jr $ra +/* 0E1A78 7F0ACF48 24E20008 */ addiu $v0, $a3, 8 +) +#endif + + + + + +#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)) +} + +#else +GLOBAL_ASM( +.text +glabel draw_blackbox_to_screen +/* 0E1A7C 7F0ACF4C 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 +/* 0E1A80 7F0ACF50 3C0B0050 */ lui $t3, (0x00504240 >> 16) # lui $t3, 0x50 +/* 0E1A84 7F0ACF54 00801025 */ move $v0, $a0 +/* 0E1A88 7F0ACF58 356B4240 */ ori $t3, (0x00504240 & 0xFFFF) # ori $t3, $t3, 0x4240 +/* 0E1A8C 7F0ACF5C 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d +/* 0E1A90 7F0ACF60 AC4A0000 */ sw $t2, ($v0) +/* 0E1A94 7F0ACF64 AC4B0004 */ sw $t3, 4($v0) +/* 0E1A98 7F0ACF68 3C0EFCFF */ lui $t6, (0xFCFFFFFF >> 16) # lui $t6, 0xfcff +/* 0E1A9C 7F0ACF6C 3C0FFFFD */ lui $t7, (0xFFFDF6FB >> 16) # lui $t7, 0xfffd +/* 0E1AA0 7F0ACF70 24840008 */ addiu $a0, $a0, 8 +/* 0E1AA4 7F0ACF74 35EFF6FB */ ori $t7, (0xFFFDF6FB & 0xFFFF) # ori $t7, $t7, 0xf6fb +/* 0E1AA8 7F0ACF78 35CEFFFF */ ori $t6, (0xFCFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0E1AAC 7F0ACF7C AC8E0000 */ sw $t6, ($a0) +/* 0E1AB0 7F0ACF80 AC8F0004 */ sw $t7, 4($a0) +/* 0E1AB4 7F0ACF84 24880008 */ addiu $t0, $a0, 8 +/* 0E1AB8 7F0ACF88 3C18FA00 */ lui $t8, 0xfa00 +/* 0E1ABC 7F0ACF8C AD180000 */ sw $t8, ($t0) +/* 0E1AC0 7F0ACF90 AD000004 */ sw $zero, 4($t0) +/* 0E1AC4 7F0ACF94 8FB90010 */ lw $t9, 0x10($sp) +/* 0E1AC8 7F0ACF98 8CF80000 */ lw $t8, ($a3) +/* 0E1ACC 7F0ACF9C 3C01F600 */ lui $at, 0xf600 +/* 0E1AD0 7F0ACFA0 8F2C0000 */ lw $t4, ($t9) +/* 0E1AD4 7F0ACFA4 331903FF */ andi $t9, $t8, 0x3ff +/* 0E1AD8 7F0ACFA8 25090008 */ addiu $t1, $t0, 8 +/* 0E1ADC 7F0ACFAC 318D03FF */ andi $t5, $t4, 0x3ff +/* 0E1AE0 7F0ACFB0 000D7080 */ sll $t6, $t5, 2 +/* 0E1AE4 7F0ACFB4 01C17825 */ or $t7, $t6, $at +/* 0E1AE8 7F0ACFB8 00196380 */ sll $t4, $t9, 0xe +/* 0E1AEC 7F0ACFBC 01EC6825 */ or $t5, $t7, $t4 +/* 0E1AF0 7F0ACFC0 AD2D0000 */ sw $t5, ($t1) +/* 0E1AF4 7F0ACFC4 8CAF0000 */ lw $t7, ($a1) +/* 0E1AF8 7F0ACFC8 8CCE0000 */ lw $t6, ($a2) +/* 0E1AFC 7F0ACFCC 25230008 */ addiu $v1, $t1, 8 +/* 0E1B00 7F0ACFD0 31EC03FF */ andi $t4, $t7, 0x3ff +/* 0E1B04 7F0ACFD4 31D803FF */ andi $t8, $t6, 0x3ff +/* 0E1B08 7F0ACFD8 0018C880 */ sll $t9, $t8, 2 +/* 0E1B0C 7F0ACFDC 000C6B80 */ sll $t5, $t4, 0xe +/* 0E1B10 7F0ACFE0 032D7025 */ or $t6, $t9, $t5 +/* 0E1B14 7F0ACFE4 AD2E0004 */ sw $t6, 4($t1) +/* 0E1B18 7F0ACFE8 24650008 */ addiu $a1, $v1, 8 +/* 0E1B1C 7F0ACFEC 3C18FCFF */ lui $t8, (0xFCFF97FF >> 16) # lui $t8, 0xfcff +/* 0E1B20 7F0ACFF0 3C0FFF2D */ lui $t7, (0xFF2DFEFF >> 16) # lui $t7, 0xff2d +/* 0E1B24 7F0ACFF4 AC6B0004 */ sw $t3, 4($v1) +/* 0E1B28 7F0ACFF8 AC6A0000 */ sw $t2, ($v1) +/* 0E1B2C 7F0ACFFC 35EFFEFF */ ori $t7, (0xFF2DFEFF & 0xFFFF) # ori $t7, $t7, 0xfeff +/* 0E1B30 7F0AD000 371897FF */ ori $t8, (0xFCFF97FF & 0xFFFF) # ori $t8, $t8, 0x97ff +/* 0E1B34 7F0AD004 ACB80000 */ sw $t8, ($a1) +/* 0E1B38 7F0AD008 ACAF0004 */ sw $t7, 4($a1) +/* 0E1B3C 7F0AD00C 03E00008 */ jr $ra +/* 0E1B40 7F0AD010 24A20008 */ addiu $v0, $a1, 8 +) +#endif + + + + + +#ifdef NONMATCHING +s32 microcode_constructor_related_to_menus(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u32 arg5) { + void *temp_a0; + void *temp_t0; + void *temp_t1; + void *temp_v1; + + // 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_t1 = (temp_t0 + 8); + temp_t0->unk4 = (s32) (((((arg5 >> 0x18) << 0x18) | (((arg5 >> 0x10) & 0xff) << 0x10)) | (((arg5 >> 8) & 0xff) << 8)) | (arg5 & 0xff)); + temp_v1 = (temp_t1 + 8); + temp_t1->unk4 = (s32) (((arg1 & 0x3ff) << 0xe) | ((arg2 & 0x3ff) * 4)); + *temp_t1 = (s32) ((((arg3 & 0x3ff) << 0xe) | 0xf6000000) | ((arg4 & 0x3ff) * 4)); + temp_v1->unk4 = 0xff2dfeff; + *temp_v1 = 0xfcff97ff; + return; + // (possible return value: (temp_v1 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel microcode_constructor_related_to_menus +/* 0E1B44 7F0AD014 00801025 */ move $v0, $a0 +/* 0E1B48 7F0AD018 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0E1B4C 7F0AD01C 3C0F0050 */ lui $t7, (0x00504240 >> 16) # lui $t7, 0x50 +/* 0E1B50 7F0AD020 35EF4240 */ ori $t7, (0x00504240 & 0xFFFF) # ori $t7, $t7, 0x4240 +/* 0E1B54 7F0AD024 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0E1B58 7F0AD028 AC4E0000 */ sw $t6, ($v0) +/* 0E1B5C 7F0AD02C AC4F0004 */ sw $t7, 4($v0) +/* 0E1B60 7F0AD030 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 0E1B64 7F0AD034 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 0E1B68 7F0AD038 24840008 */ addiu $a0, $a0, 8 +/* 0E1B6C 7F0AD03C 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 0E1B70 7F0AD040 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 0E1B74 7F0AD044 AC980000 */ sw $t8, ($a0) +/* 0E1B78 7F0AD048 AC990004 */ sw $t9, 4($a0) +/* 0E1B7C 7F0AD04C 24880008 */ addiu $t0, $a0, 8 +/* 0E1B80 7F0AD050 3C0AFA00 */ lui $t2, 0xfa00 +/* 0E1B84 7F0AD054 AD0A0000 */ sw $t2, ($t0) +/* 0E1B88 7F0AD058 8FAB0014 */ lw $t3, 0x14($sp) +/* 0E1B8C 7F0AD05C 3C01F600 */ lui $at, 0xf600 +/* 0E1B90 7F0AD060 25090008 */ addiu $t1, $t0, 8 +/* 0E1B94 7F0AD064 000BCC02 */ srl $t9, $t3, 0x10 +/* 0E1B98 7F0AD068 332A00FF */ andi $t2, $t9, 0xff +/* 0E1B9C 7F0AD06C 000A6400 */ sll $t4, $t2, 0x10 +/* 0E1BA0 7F0AD070 000B7602 */ srl $t6, $t3, 0x18 +/* 0E1BA4 7F0AD074 000E7E00 */ sll $t7, $t6, 0x18 +/* 0E1BA8 7F0AD078 000BC202 */ srl $t8, $t3, 8 +/* 0E1BAC 7F0AD07C 331900FF */ andi $t9, $t8, 0xff +/* 0E1BB0 7F0AD080 01EC6825 */ or $t5, $t7, $t4 +/* 0E1BB4 7F0AD084 00195200 */ sll $t2, $t9, 8 +/* 0E1BB8 7F0AD088 01606025 */ move $t4, $t3 +/* 0E1BBC 7F0AD08C 318E00FF */ andi $t6, $t4, 0xff +/* 0E1BC0 7F0AD090 01AA7825 */ or $t7, $t5, $t2 +/* 0E1BC4 7F0AD094 01EEC025 */ or $t8, $t7, $t6 +/* 0E1BC8 7F0AD098 AD180004 */ sw $t8, 4($t0) +/* 0E1BCC 7F0AD09C 8FAB0010 */ lw $t3, 0x10($sp) +/* 0E1BD0 7F0AD0A0 30F903FF */ andi $t9, $a3, 0x3ff +/* 0E1BD4 7F0AD0A4 00196B80 */ sll $t5, $t9, 0xe +/* 0E1BD8 7F0AD0A8 01A15025 */ or $t2, $t5, $at +/* 0E1BDC 7F0AD0AC 316C03FF */ andi $t4, $t3, 0x3ff +/* 0E1BE0 7F0AD0B0 000C7880 */ sll $t7, $t4, 2 +/* 0E1BE4 7F0AD0B4 014F7025 */ or $t6, $t2, $t7 +/* 0E1BE8 7F0AD0B8 30CD03FF */ andi $t5, $a2, 0x3ff +/* 0E1BEC 7F0AD0BC 30B803FF */ andi $t8, $a1, 0x3ff +/* 0E1BF0 7F0AD0C0 0018CB80 */ sll $t9, $t8, 0xe +/* 0E1BF4 7F0AD0C4 000D5880 */ sll $t3, $t5, 2 +/* 0E1BF8 7F0AD0C8 032B6025 */ or $t4, $t9, $t3 +/* 0E1BFC 7F0AD0CC 25230008 */ addiu $v1, $t1, 8 +/* 0E1C00 7F0AD0D0 3C0FFF2D */ lui $t7, (0xFF2DFEFF >> 16) # lui $t7, 0xff2d +/* 0E1C04 7F0AD0D4 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff +/* 0E1C08 7F0AD0D8 AD2C0004 */ sw $t4, 4($t1) +/* 0E1C0C 7F0AD0DC AD2E0000 */ sw $t6, ($t1) +/* 0E1C10 7F0AD0E0 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff +/* 0E1C14 7F0AD0E4 35EFFEFF */ ori $t7, (0xFF2DFEFF & 0xFFFF) # ori $t7, $t7, 0xfeff +/* 0E1C18 7F0AD0E8 AC6F0004 */ sw $t7, 4($v1) +/* 0E1C1C 7F0AD0EC AC6A0000 */ sw $t2, ($v1) +/* 0E1C20 7F0AD0F0 03E00008 */ jr $ra +/* 0E1C24 7F0AD0F4 24620008 */ addiu $v0, $v1, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AD0F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AD0F8 +/* 0E1C28 7F0AD0F8 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0E1C2C 7F0AD0FC 8FB90100 */ lw $t9, 0x100($sp) +/* 0E1C30 7F0AD100 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E1C34 7F0AD104 AFB10018 */ sw $s1, 0x18($sp) +/* 0E1C38 7F0AD108 AFB00014 */ sw $s0, 0x14($sp) +/* 0E1C3C 7F0AD10C AFA500F4 */ sw $a1, 0xf4($sp) +/* 0E1C40 7F0AD110 8F2C0010 */ lw $t4, 0x10($t9) +/* 0E1C44 7F0AD114 8CCE0000 */ lw $t6, ($a2) +/* 0E1C48 7F0AD118 8FAF0118 */ lw $t7, 0x118($sp) +/* 0E1C4C 7F0AD11C 000C6880 */ sll $t5, $t4, 2 +/* 0E1C50 7F0AD120 01AC6823 */ subu $t5, $t5, $t4 +/* 0E1C54 7F0AD124 8FB80104 */ lw $t8, 0x104($sp) +/* 0E1C58 7F0AD128 000D6880 */ sll $t5, $t5, 2 +/* 0E1C5C 7F0AD12C 8CF90010 */ lw $t9, 0x10($a3) +/* 0E1C60 7F0AD130 01AC6821 */ addu $t5, $t5, $t4 +/* 0E1C64 7F0AD134 01CF4821 */ addu $t1, $t6, $t7 +/* 0E1C68 7F0AD138 000D7080 */ sll $t6, $t5, 2 +/* 0E1C6C 7F0AD13C 030E7821 */ addu $t7, $t8, $t6 +/* 0E1C70 7F0AD140 00196080 */ sll $t4, $t9, 2 +/* 0E1C74 7F0AD144 01EC6821 */ addu $t5, $t7, $t4 +/* 0E1C78 7F0AD148 3C0E8004 */ lui $t6, %hi(text_spacing) +/* 0E1C7C 7F0AD14C 8DCE0E84 */ lw $t6, %lo(text_spacing)($t6) +/* 0E1C80 7F0AD150 8DB80000 */ lw $t8, ($t5) +/* 0E1C84 7F0AD154 8CAF0000 */ lw $t7, ($a1) +/* 0E1C88 7F0AD158 00808025 */ move $s0, $a0 +/* 0E1C8C 7F0AD15C 030E1021 */ addu $v0, $t8, $t6 +/* 0E1C90 7F0AD160 01E26023 */ subu $t4, $t7, $v0 +/* 0E1C94 7F0AD164 258D0001 */ addiu $t5, $t4, 1 +/* 0E1C98 7F0AD168 ACAD0000 */ sw $t5, ($a1) +/* 0E1C9C 7F0AD16C 3C188004 */ lui $t8, %hi(text_orientation) +/* 0E1CA0 7F0AD170 8F180E88 */ lw $t8, %lo(text_orientation)($t8) +/* 0E1CA4 7F0AD174 00E08825 */ move $s1, $a3 +/* 0E1CA8 7F0AD178 57000014 */ bnezl $t8, .L7F0AD1CC +/* 0E1CAC 7F0AD17C 8FA40108 */ lw $a0, 0x108($sp) +/* 0E1CB0 7F0AD180 59A00244 */ blezl $t5, .L7F0ADA94 +/* 0E1CB4 7F0AD184 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CB8 7F0AD188 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1CBC 7F0AD18C AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1CC0 7F0AD190 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E1CC4 7F0AD194 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1CC8 7F0AD198 8DCF0000 */ lw $t7, ($t6) +/* 0E1CCC 7F0AD19C 004F082A */ slt $at, $v0, $t7 +/* 0E1CD0 7F0AD1A0 5420023C */ bnezl $at, .L7F0ADA94 +/* 0E1CD4 7F0AD1A4 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CD8 7F0AD1A8 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1CDC 7F0AD1AC AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1CE0 7F0AD1B0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1CE4 7F0AD1B4 8E2C0004 */ lw $t4, 4($s1) +/* 0E1CE8 7F0AD1B8 012CC821 */ addu $t9, $t1, $t4 +/* 0E1CEC 7F0AD1BC 0059082A */ slt $at, $v0, $t9 +/* 0E1CF0 7F0AD1C0 54200234 */ bnezl $at, .L7F0ADA94 +/* 0E1CF4 7F0AD1C4 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CF8 7F0AD1C8 8FA40108 */ lw $a0, 0x108($sp) +.L7F0AD1CC: +/* 0E1CFC 7F0AD1CC 8FB80110 */ lw $t8, 0x110($sp) +/* 0E1D00 7F0AD1D0 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E1D04 7F0AD1D4 8FAA010C */ lw $t2, 0x10c($sp) +/* 0E1D08 7F0AD1D8 00986821 */ addu $t5, $a0, $t8 +/* 0E1D0C 7F0AD1DC AFAD0024 */ sw $t5, 0x24($sp) +/* 0E1D10 7F0AD1E0 8DC20000 */ lw $v0, ($t6) +/* 0E1D14 7F0AD1E4 8FAC0114 */ lw $t4, 0x114($sp) +/* 0E1D18 7F0AD1E8 01A2082A */ slt $at, $t5, $v0 +/* 0E1D1C 7F0AD1EC 54200229 */ bnezl $at, .L7F0ADA94 +/* 0E1D20 7F0AD1F0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D24 7F0AD1F4 8E390004 */ lw $t9, 4($s1) +/* 0E1D28 7F0AD1F8 014C5821 */ addu $t3, $t2, $t4 +/* 0E1D2C 7F0AD1FC 03291821 */ addu $v1, $t9, $t1 +/* 0E1D30 7F0AD200 0163082A */ slt $at, $t3, $v1 +/* 0E1D34 7F0AD204 14200222 */ bnez $at, .L7F0ADA90 +/* 0E1D38 7F0AD208 0044082A */ slt $at, $v0, $a0 +/* 0E1D3C 7F0AD20C 54200221 */ bnezl $at, .L7F0ADA94 +/* 0E1D40 7F0AD210 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D44 7F0AD214 8E380008 */ lw $t8, 8($s1) +/* 0E1D48 7F0AD218 00786821 */ addu $t5, $v1, $t8 +/* 0E1D4C 7F0AD21C 01AA082A */ slt $at, $t5, $t2 +/* 0E1D50 7F0AD220 5420021C */ bnezl $at, .L7F0ADA94 +/* 0E1D54 7F0AD224 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D58 7F0AD228 8E2E0000 */ lw $t6, ($s1) +/* 0E1D5C 7F0AD22C 3C058004 */ lui $a1, %hi(D_80040EA8) +/* 0E1D60 7F0AD230 24A50EA8 */ addiu $a1, %lo(D_80040EA8) # addiu $a1, $a1, 0xea8 +/* 0E1D64 7F0AD234 29C10080 */ slti $at, $t6, 0x80 +/* 0E1D68 7F0AD238 1020006F */ beqz $at, .L7F0AD3F8 +/* 0E1D6C 7F0AD23C 02001025 */ move $v0, $s0 +/* 0E1D70 7F0AD240 02001025 */ move $v0, $s0 +/* 0E1D74 7F0AD244 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 +/* 0E1D78 7F0AD248 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 +/* 0E1D7C 7F0AD24C 26100008 */ addiu $s0, $s0, 8 +/* 0E1D80 7F0AD250 AC4F0000 */ sw $t7, ($v0) +/* 0E1D84 7F0AD254 AC400004 */ sw $zero, 4($v0) +/* 0E1D88 7F0AD258 02001825 */ move $v1, $s0 +/* 0E1D8C 7F0AD25C 3C0CFD90 */ lui $t4, 0xfd90 +/* 0E1D90 7F0AD260 AC6C0000 */ sw $t4, ($v1) +/* 0E1D94 7F0AD264 8E390014 */ lw $t9, 0x14($s1) +/* 0E1D98 7F0AD268 26100008 */ addiu $s0, $s0, 8 +/* 0E1D9C 7F0AD26C 02002025 */ move $a0, $s0 +/* 0E1DA0 7F0AD270 26100008 */ addiu $s0, $s0, 8 +/* 0E1DA4 7F0AD274 AC790004 */ sw $t9, 4($v1) +/* 0E1DA8 7F0AD278 02002825 */ move $a1, $s0 +/* 0E1DAC 7F0AD27C 3C18F590 */ lui $t8, 0xf590 +/* 0E1DB0 7F0AD280 3C0D0700 */ lui $t5, 0x700 +/* 0E1DB4 7F0AD284 AC8D0004 */ sw $t5, 4($a0) +/* 0E1DB8 7F0AD288 AC980000 */ sw $t8, ($a0) +/* 0E1DBC 7F0AD28C 26100008 */ addiu $s0, $s0, 8 +/* 0E1DC0 7F0AD290 3C0EE600 */ lui $t6, 0xe600 +/* 0E1DC4 7F0AD294 ACAE0000 */ sw $t6, ($a1) +/* 0E1DC8 7F0AD298 02004025 */ move $t0, $s0 +/* 0E1DCC 7F0AD29C ACA00004 */ sw $zero, 4($a1) +/* 0E1DD0 7F0AD2A0 3C0FF300 */ lui $t7, 0xf300 +/* 0E1DD4 7F0AD2A4 AD0F0000 */ sw $t7, ($t0) +/* 0E1DD8 7F0AD2A8 8E23000C */ lw $v1, 0xc($s1) +/* 0E1DDC 7F0AD2AC 8E390008 */ lw $t9, 8($s1) +/* 0E1DE0 7F0AD2B0 26100008 */ addiu $s0, $s0, 8 +/* 0E1DE4 7F0AD2B4 24630007 */ addiu $v1, $v1, 7 +/* 0E1DE8 7F0AD2B8 306C00F8 */ andi $t4, $v1, 0xf8 +/* 0E1DEC 7F0AD2BC 01990019 */ multu $t4, $t9 +/* 0E1DF0 7F0AD2C0 01801825 */ move $v1, $t4 +/* 0E1DF4 7F0AD2C4 240607FF */ li $a2, 2047 +/* 0E1DF8 7F0AD2C8 00001012 */ mflo $v0 +/* 0E1DFC 7F0AD2CC 24420001 */ addiu $v0, $v0, 1 +/* 0E1E00 7F0AD2D0 0002C043 */ sra $t8, $v0, 1 +/* 0E1E04 7F0AD2D4 2702FFFF */ addiu $v0, $t8, -1 +/* 0E1E08 7F0AD2D8 284107FF */ slti $at, $v0, 0x7ff +/* 0E1E0C 7F0AD2DC 10200003 */ beqz $at, .L7F0AD2EC +/* 0E1E10 7F0AD2E0 00000000 */ nop +/* 0E1E14 7F0AD2E4 10000001 */ b .L7F0AD2EC +/* 0E1E18 7F0AD2E8 00403025 */ move $a2, $v0 +.L7F0AD2EC: +/* 0E1E1C 7F0AD2EC 04610003 */ bgez $v1, .L7F0AD2FC +/* 0E1E20 7F0AD2F0 000310C3 */ sra $v0, $v1, 3 +/* 0E1E24 7F0AD2F4 24610007 */ addiu $at, $v1, 7 +/* 0E1E28 7F0AD2F8 000110C3 */ sra $v0, $at, 3 +.L7F0AD2FC: +/* 0E1E2C 7F0AD2FC 1C400003 */ bgtz $v0, .L7F0AD30C +/* 0E1E30 7F0AD300 30D90FFF */ andi $t9, $a2, 0xfff +/* 0E1E34 7F0AD304 10000002 */ b .L7F0AD310 +/* 0E1E38 7F0AD308 24070001 */ li $a3, 1 +.L7F0AD30C: +/* 0E1E3C 7F0AD30C 00403825 */ move $a3, $v0 +.L7F0AD310: +/* 0E1E40 7F0AD310 1C400003 */ bgtz $v0, .L7F0AD320 +/* 0E1E44 7F0AD314 24ED07FF */ addiu $t5, $a3, 0x7ff +/* 0E1E48 7F0AD318 10000002 */ b .L7F0AD324 +/* 0E1E4C 7F0AD31C 24050001 */ li $a1, 1 +.L7F0AD320: +/* 0E1E50 7F0AD320 00402825 */ move $a1, $v0 +.L7F0AD324: +/* 0E1E54 7F0AD324 01A5001A */ div $zero, $t5, $a1 +/* 0E1E58 7F0AD328 14A00002 */ bnez $a1, .L7F0AD334 +/* 0E1E5C 7F0AD32C 00000000 */ nop +/* 0E1E60 7F0AD330 0007000D */ break 7 +.L7F0AD334: +/* 0E1E64 7F0AD334 2401FFFF */ li $at, -1 +/* 0E1E68 7F0AD338 14A10004 */ bne $a1, $at, .L7F0AD34C +/* 0E1E6C 7F0AD33C 3C018000 */ lui $at, 0x8000 +/* 0E1E70 7F0AD340 15A10002 */ bne $t5, $at, .L7F0AD34C +/* 0E1E74 7F0AD344 00000000 */ nop +/* 0E1E78 7F0AD348 0006000D */ break 6 +.L7F0AD34C: +/* 0E1E7C 7F0AD34C 00007012 */ mflo $t6 +/* 0E1E80 7F0AD350 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E1E84 7F0AD354 3C010700 */ lui $at, 0x700 +/* 0E1E88 7F0AD358 01E16025 */ or $t4, $t7, $at +/* 0E1E8C 7F0AD35C 0019C300 */ sll $t8, $t9, 0xc +/* 0E1E90 7F0AD360 01986825 */ or $t5, $t4, $t8 +/* 0E1E94 7F0AD364 AD0D0004 */ sw $t5, 4($t0) +/* 0E1E98 7F0AD368 02001025 */ move $v0, $s0 +/* 0E1E9C 7F0AD36C 3C0EE700 */ lui $t6, 0xe700 +/* 0E1EA0 7F0AD370 AC4E0000 */ sw $t6, ($v0) +/* 0E1EA4 7F0AD374 AC400004 */ sw $zero, 4($v0) +/* 0E1EA8 7F0AD378 8E2F000C */ lw $t7, 0xc($s1) +/* 0E1EAC 7F0AD37C 26100008 */ addiu $s0, $s0, 8 +/* 0E1EB0 7F0AD380 02001825 */ move $v1, $s0 +/* 0E1EB4 7F0AD384 25F90007 */ addiu $t9, $t7, 7 +/* 0E1EB8 7F0AD388 332C00F8 */ andi $t4, $t9, 0xf8 +/* 0E1EBC 7F0AD38C 25980007 */ addiu $t8, $t4, 7 +/* 0E1EC0 7F0AD390 001868C3 */ sra $t5, $t8, 3 +/* 0E1EC4 7F0AD394 31AE01FF */ andi $t6, $t5, 0x1ff +/* 0E1EC8 7F0AD398 000E7A40 */ sll $t7, $t6, 9 +/* 0E1ECC 7F0AD39C 3C01F588 */ lui $at, 0xf588 +/* 0E1ED0 7F0AD3A0 01E1C825 */ or $t9, $t7, $at +/* 0E1ED4 7F0AD3A4 26100008 */ addiu $s0, $s0, 8 +/* 0E1ED8 7F0AD3A8 02002025 */ move $a0, $s0 +/* 0E1EDC 7F0AD3AC AC790000 */ sw $t9, ($v1) +/* 0E1EE0 7F0AD3B0 3C0CF200 */ lui $t4, 0xf200 +/* 0E1EE4 7F0AD3B4 AC600004 */ sw $zero, 4($v1) +/* 0E1EE8 7F0AD3B8 AC8C0000 */ sw $t4, ($a0) +/* 0E1EEC 7F0AD3BC 8E38000C */ lw $t8, 0xc($s1) +/* 0E1EF0 7F0AD3C0 26100008 */ addiu $s0, $s0, 8 +/* 0E1EF4 7F0AD3C4 270D0007 */ addiu $t5, $t8, 7 +/* 0E1EF8 7F0AD3C8 31AE00F8 */ andi $t6, $t5, 0xf8 +/* 0E1EFC 7F0AD3CC 8E2D0008 */ lw $t5, 8($s1) +/* 0E1F00 7F0AD3D0 25CFFFFF */ addiu $t7, $t6, -1 +/* 0E1F04 7F0AD3D4 000FC880 */ sll $t9, $t7, 2 +/* 0E1F08 7F0AD3D8 332C0FFF */ andi $t4, $t9, 0xfff +/* 0E1F0C 7F0AD3DC 25AEFFFF */ addiu $t6, $t5, -1 +/* 0E1F10 7F0AD3E0 000E7880 */ sll $t7, $t6, 2 +/* 0E1F14 7F0AD3E4 31F90FFF */ andi $t9, $t7, 0xfff +/* 0E1F18 7F0AD3E8 000CC300 */ sll $t8, $t4, 0xc +/* 0E1F1C 7F0AD3EC 03196025 */ or $t4, $t8, $t9 +/* 0E1F20 7F0AD3F0 100000AC */ b .L7F0AD6A4 +/* 0E1F24 7F0AD3F4 AC8C0004 */ sw $t4, 4($a0) +.L7F0AD3F8: +/* 0E1F28 7F0AD3F8 26100008 */ addiu $s0, $s0, 8 +/* 0E1F2C 7F0AD3FC 3C0DE700 */ lui $t5, 0xe700 +/* 0E1F30 7F0AD400 AC4D0000 */ sw $t5, ($v0) +/* 0E1F34 7F0AD404 AC400004 */ sw $zero, 4($v0) +/* 0E1F38 7F0AD408 02001825 */ move $v1, $s0 +/* 0E1F3C 7F0AD40C 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 +/* 0E1F40 7F0AD410 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 0E1F44 7F0AD414 340FC000 */ li $t7, 49152 +/* 0E1F48 7F0AD418 AC6F0004 */ sw $t7, 4($v1) +/* 0E1F4C 7F0AD41C AC6E0000 */ sw $t6, ($v1) +/* 0E1F50 7F0AD420 8CB80000 */ lw $t8, ($a1) +/* 0E1F54 7F0AD424 26100008 */ addiu $s0, $s0, 8 +/* 0E1F58 7F0AD428 02003825 */ move $a3, $s0 +/* 0E1F5C 7F0AD42C 13000056 */ beqz $t8, .L7F0AD588 +/* 0E1F60 7F0AD430 3C19FD10 */ lui $t9, 0xfd10 +/* 0E1F64 7F0AD434 ACA00000 */ sw $zero, ($a1) +/* 0E1F68 7F0AD438 ACF90000 */ sw $t9, ($a3) +/* 0E1F6C 7F0AD43C 3C048004 */ lui $a0, %hi(D_80040EBC) +/* 0E1F70 7F0AD440 24840EBC */ addiu $a0, %lo(D_80040EBC) # addiu $a0, $a0, 0xebc +/* 0E1F74 7F0AD444 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E1F78 7F0AD448 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1F7C 7F0AD44C AFA700B4 */ sw $a3, 0xb4($sp) +/* 0E1F80 7F0AD450 0C003A2C */ jal osVirtualToPhysical +/* 0E1F84 7F0AD454 26100008 */ addiu $s0, $s0, 8 +/* 0E1F88 7F0AD458 8FA700B4 */ lw $a3, 0xb4($sp) +/* 0E1F8C 7F0AD45C 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1F90 7F0AD460 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E1F94 7F0AD464 02001825 */ move $v1, $s0 +/* 0E1F98 7F0AD468 26100008 */ addiu $s0, $s0, 8 +/* 0E1F9C 7F0AD46C ACE20004 */ sw $v0, 4($a3) +/* 0E1FA0 7F0AD470 02002025 */ move $a0, $s0 +/* 0E1FA4 7F0AD474 3C0CE800 */ lui $t4, 0xe800 +/* 0E1FA8 7F0AD478 3C0DF500 */ lui $t5, (0xF5000100 >> 16) # lui $t5, 0xf500 +/* 0E1FAC 7F0AD47C 35AD0100 */ ori $t5, (0xF5000100 & 0xFFFF) # ori $t5, $t5, 0x100 +/* 0E1FB0 7F0AD480 AC6C0000 */ sw $t4, ($v1) +/* 0E1FB4 7F0AD484 AC600004 */ sw $zero, 4($v1) +/* 0E1FB8 7F0AD488 AC8D0000 */ sw $t5, ($a0) +/* 0E1FBC 7F0AD48C 26100008 */ addiu $s0, $s0, 8 +/* 0E1FC0 7F0AD490 3C0E0700 */ lui $t6, 0x700 +/* 0E1FC4 7F0AD494 AC8E0004 */ sw $t6, 4($a0) +/* 0E1FC8 7F0AD498 02002825 */ move $a1, $s0 +/* 0E1FCC 7F0AD49C 26100008 */ addiu $s0, $s0, 8 +/* 0E1FD0 7F0AD4A0 02003025 */ move $a2, $s0 +/* 0E1FD4 7F0AD4A4 3C0FE600 */ lui $t7, 0xe600 +/* 0E1FD8 7F0AD4A8 ACAF0000 */ sw $t7, ($a1) +/* 0E1FDC 7F0AD4AC 26100008 */ addiu $s0, $s0, 8 +/* 0E1FE0 7F0AD4B0 ACA00004 */ sw $zero, 4($a1) +/* 0E1FE4 7F0AD4B4 3C190703 */ lui $t9, (0x0703C000 >> 16) # lui $t9, 0x703 +/* 0E1FE8 7F0AD4B8 3739C000 */ ori $t9, (0x0703C000 & 0xFFFF) # ori $t9, $t9, 0xc000 +/* 0E1FEC 7F0AD4BC 02004025 */ move $t0, $s0 +/* 0E1FF0 7F0AD4C0 3C18F000 */ lui $t8, 0xf000 +/* 0E1FF4 7F0AD4C4 ACD80000 */ sw $t8, ($a2) +/* 0E1FF8 7F0AD4C8 ACD90004 */ sw $t9, 4($a2) +/* 0E1FFC 7F0AD4CC 26100008 */ addiu $s0, $s0, 8 +/* 0E2000 7F0AD4D0 3C0CE700 */ lui $t4, 0xe700 +/* 0E2004 7F0AD4D4 AD0C0000 */ sw $t4, ($t0) +/* 0E2008 7F0AD4D8 AD000004 */ sw $zero, 4($t0) +/* 0E200C 7F0AD4DC 02003825 */ move $a3, $s0 +/* 0E2010 7F0AD4E0 3C0DFD10 */ lui $t5, 0xfd10 +/* 0E2014 7F0AD4E4 ACED0000 */ sw $t5, ($a3) +/* 0E2018 7F0AD4E8 3C048004 */ lui $a0, %hi(D_80040EDC) +/* 0E201C 7F0AD4EC 24840EDC */ addiu $a0, %lo(D_80040EDC) # addiu $a0, $a0, 0xedc +/* 0E2020 7F0AD4F0 AFA7009C */ sw $a3, 0x9c($sp) +/* 0E2024 7F0AD4F4 26100008 */ addiu $s0, $s0, 8 +/* 0E2028 7F0AD4F8 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E202C 7F0AD4FC 0C003A2C */ jal osVirtualToPhysical +/* 0E2030 7F0AD500 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E2034 7F0AD504 8FA7009C */ lw $a3, 0x9c($sp) +/* 0E2038 7F0AD508 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E203C 7F0AD50C 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E2040 7F0AD510 02001825 */ move $v1, $s0 +/* 0E2044 7F0AD514 26100008 */ addiu $s0, $s0, 8 +/* 0E2048 7F0AD518 3C0EE800 */ lui $t6, 0xe800 +/* 0E204C 7F0AD51C ACE20004 */ sw $v0, 4($a3) +/* 0E2050 7F0AD520 AC6E0000 */ sw $t6, ($v1) +/* 0E2054 7F0AD524 02002025 */ move $a0, $s0 +/* 0E2058 7F0AD528 26100008 */ addiu $s0, $s0, 8 +/* 0E205C 7F0AD52C AC600004 */ sw $zero, 4($v1) +/* 0E2060 7F0AD530 3C0FF500 */ lui $t7, (0xF5000110 >> 16) # lui $t7, 0xf500 +/* 0E2064 7F0AD534 35EF0110 */ ori $t7, (0xF5000110 & 0xFFFF) # ori $t7, $t7, 0x110 +/* 0E2068 7F0AD538 02002825 */ move $a1, $s0 +/* 0E206C 7F0AD53C 3C180700 */ lui $t8, 0x700 +/* 0E2070 7F0AD540 AC980004 */ sw $t8, 4($a0) +/* 0E2074 7F0AD544 26100008 */ addiu $s0, $s0, 8 +/* 0E2078 7F0AD548 AC8F0000 */ sw $t7, ($a0) +/* 0E207C 7F0AD54C 02003025 */ move $a2, $s0 +/* 0E2080 7F0AD550 3C19E600 */ lui $t9, 0xe600 +/* 0E2084 7F0AD554 ACB90000 */ sw $t9, ($a1) +/* 0E2088 7F0AD558 26100008 */ addiu $s0, $s0, 8 +/* 0E208C 7F0AD55C ACA00004 */ sw $zero, 4($a1) +/* 0E2090 7F0AD560 3C0D0703 */ lui $t5, (0x0703C000 >> 16) # lui $t5, 0x703 +/* 0E2094 7F0AD564 35ADC000 */ ori $t5, (0x0703C000 & 0xFFFF) # ori $t5, $t5, 0xc000 +/* 0E2098 7F0AD568 02004025 */ move $t0, $s0 +/* 0E209C 7F0AD56C 3C0CF000 */ lui $t4, 0xf000 +/* 0E20A0 7F0AD570 ACCC0000 */ sw $t4, ($a2) +/* 0E20A4 7F0AD574 ACCD0004 */ sw $t5, 4($a2) +/* 0E20A8 7F0AD578 3C0EE700 */ lui $t6, 0xe700 +/* 0E20AC 7F0AD57C AD0E0000 */ sw $t6, ($t0) +/* 0E20B0 7F0AD580 AD000004 */ sw $zero, 4($t0) +/* 0E20B4 7F0AD584 26100008 */ addiu $s0, $s0, 8 +.L7F0AD588: +/* 0E20B8 7F0AD588 02002825 */ move $a1, $s0 +/* 0E20BC 7F0AD58C 3C0FFD50 */ lui $t7, 0xfd50 +/* 0E20C0 7F0AD590 ACAF0000 */ sw $t7, ($a1) +/* 0E20C4 7F0AD594 8E240014 */ lw $a0, 0x14($s1) +/* 0E20C8 7F0AD598 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E20CC 7F0AD59C AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E20D0 7F0AD5A0 AFA50084 */ sw $a1, 0x84($sp) +/* 0E20D4 7F0AD5A4 0C003A2C */ jal osVirtualToPhysical +/* 0E20D8 7F0AD5A8 26100008 */ addiu $s0, $s0, 8 +/* 0E20DC 7F0AD5AC 8FA50084 */ lw $a1, 0x84($sp) +/* 0E20E0 7F0AD5B0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E20E4 7F0AD5B4 8FAA010C */ lw $t2, 0x10c($sp) +/* 0E20E8 7F0AD5B8 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E20EC 7F0AD5BC 02001825 */ move $v1, $s0 +/* 0E20F0 7F0AD5C0 26100008 */ addiu $s0, $s0, 8 +/* 0E20F4 7F0AD5C4 ACA20004 */ sw $v0, 4($a1) +/* 0E20F8 7F0AD5C8 3C080700 */ lui $t0, 0x700 +/* 0E20FC 7F0AD5CC 3C18F550 */ lui $t8, 0xf550 +/* 0E2100 7F0AD5D0 02002025 */ move $a0, $s0 +/* 0E2104 7F0AD5D4 AC780000 */ sw $t8, ($v1) +/* 0E2108 7F0AD5D8 AC680004 */ sw $t0, 4($v1) +/* 0E210C 7F0AD5DC 26100008 */ addiu $s0, $s0, 8 +/* 0E2110 7F0AD5E0 3C19E600 */ lui $t9, 0xe600 +/* 0E2114 7F0AD5E4 AC990000 */ sw $t9, ($a0) +/* 0E2118 7F0AD5E8 AC800004 */ sw $zero, 4($a0) +/* 0E211C 7F0AD5EC 02003025 */ move $a2, $s0 +/* 0E2120 7F0AD5F0 3C0CF300 */ lui $t4, 0xf300 +/* 0E2124 7F0AD5F4 ACCC0000 */ sw $t4, ($a2) +/* 0E2128 7F0AD5F8 8E270008 */ lw $a3, 8($s1) +/* 0E212C 7F0AD5FC 26100008 */ addiu $s0, $s0, 8 +/* 0E2130 7F0AD600 02001025 */ move $v0, $s0 +/* 0E2134 7F0AD604 00076880 */ sll $t5, $a3, 2 +/* 0E2138 7F0AD608 25A7FFFF */ addiu $a3, $t5, -1 +/* 0E213C 7F0AD60C 28E107FF */ slti $at, $a3, 0x7ff +/* 0E2140 7F0AD610 10200003 */ beqz $at, .L7F0AD620 +/* 0E2144 7F0AD614 26100008 */ addiu $s0, $s0, 8 +/* 0E2148 7F0AD618 10000002 */ b .L7F0AD624 +/* 0E214C 7F0AD61C 00E02825 */ move $a1, $a3 +.L7F0AD620: +/* 0E2150 7F0AD620 240507FF */ li $a1, 2047 +.L7F0AD624: +/* 0E2154 7F0AD624 30AE0FFF */ andi $t6, $a1, 0xfff +/* 0E2158 7F0AD628 000E7B00 */ sll $t7, $t6, 0xc +/* 0E215C 7F0AD62C 01E8C025 */ or $t8, $t7, $t0 +/* 0E2160 7F0AD630 37190800 */ ori $t9, $t8, 0x800 +/* 0E2164 7F0AD634 ACD90004 */ sw $t9, 4($a2) +/* 0E2168 7F0AD638 3C0CE700 */ lui $t4, 0xe700 +/* 0E216C 7F0AD63C 3C0DF540 */ lui $t5, (0xF5400200 >> 16) # lui $t5, 0xf540 +/* 0E2170 7F0AD640 AC4C0000 */ sw $t4, ($v0) +/* 0E2174 7F0AD644 AC400004 */ sw $zero, 4($v0) +/* 0E2178 7F0AD648 35AD0200 */ ori $t5, (0xF5400200 & 0xFFFF) # ori $t5, $t5, 0x200 +/* 0E217C 7F0AD64C 02001825 */ move $v1, $s0 +/* 0E2180 7F0AD650 AC6D0000 */ sw $t5, ($v1) +/* 0E2184 7F0AD654 8E2F0000 */ lw $t7, ($s1) +/* 0E2188 7F0AD658 3C010008 */ lui $at, 8 +/* 0E218C 7F0AD65C 26100008 */ addiu $s0, $s0, 8 +/* 0E2190 7F0AD660 31F80001 */ andi $t8, $t7, 1 +/* 0E2194 7F0AD664 0018CD00 */ sll $t9, $t8, 0x14 +/* 0E2198 7F0AD668 03216025 */ or $t4, $t9, $at +/* 0E219C 7F0AD66C 358D0200 */ ori $t5, $t4, 0x200 +/* 0E21A0 7F0AD670 AC6D0004 */ sw $t5, 4($v1) +/* 0E21A4 7F0AD674 02002025 */ move $a0, $s0 +/* 0E21A8 7F0AD678 3C0EF200 */ lui $t6, 0xf200 +/* 0E21AC 7F0AD67C AC8E0000 */ sw $t6, ($a0) +/* 0E21B0 7F0AD680 8E2F0008 */ lw $t7, 8($s1) +/* 0E21B4 7F0AD684 3C010003 */ lui $at, (0x0003C000 >> 16) # lui $at, 3 +/* 0E21B8 7F0AD688 3421C000 */ ori $at, (0x0003C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 0E21BC 7F0AD68C 25F8FFFF */ addiu $t8, $t7, -1 +/* 0E21C0 7F0AD690 0018C880 */ sll $t9, $t8, 2 +/* 0E21C4 7F0AD694 332C0FFF */ andi $t4, $t9, 0xfff +/* 0E21C8 7F0AD698 01816825 */ or $t5, $t4, $at +/* 0E21CC 7F0AD69C AC8D0004 */ sw $t5, 4($a0) +/* 0E21D0 7F0AD6A0 26100008 */ addiu $s0, $s0, 8 +.L7F0AD6A4: +/* 0E21D4 7F0AD6A4 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E21D8 7F0AD6A8 8E38000C */ lw $t8, 0xc($s1) +/* 0E21DC 7F0AD6AC 8FB90024 */ lw $t9, 0x24($sp) +/* 0E21E0 7F0AD6B0 8DCF0000 */ lw $t7, ($t6) +/* 0E21E4 7F0AD6B4 01F84021 */ addu $t0, $t7, $t8 +/* 0E21E8 7F0AD6B8 0328082A */ slt $at, $t9, $t0 +/* 0E21EC 7F0AD6BC 542000F5 */ bnezl $at, .L7F0ADA94 +/* 0E21F0 7F0AD6C0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E21F4 7F0AD6C4 8E240004 */ lw $a0, 4($s1) +/* 0E21F8 7F0AD6C8 00891821 */ addu $v1, $a0, $t1 +/* 0E21FC 7F0AD6CC 006A082A */ slt $at, $v1, $t2 +/* 0E2200 7F0AD6D0 542000B4 */ bnezl $at, .L7F0AD9A4 +/* 0E2204 7F0AD6D4 8E2E0008 */ lw $t6, 8($s1) +/* 0E2208 7F0AD6D8 8E2C0008 */ lw $t4, 8($s1) +/* 0E220C 7F0AD6DC 3C0D8004 */ lui $t5, %hi(text_orientation) +/* 0E2210 7F0AD6E0 006C1021 */ addu $v0, $v1, $t4 +/* 0E2214 7F0AD6E4 0162082A */ slt $at, $t3, $v0 +/* 0E2218 7F0AD6E8 54200077 */ bnezl $at, .L7F0AD8C8 +/* 0E221C 7F0AD6EC 0163082A */ slt $at, $t3, $v1 +/* 0E2220 7F0AD6F0 8DAD0E88 */ lw $t5, %lo(text_orientation)($t5) +/* 0E2224 7F0AD6F4 3C068004 */ lui $a2, %hi(text_x) +/* 0E2228 7F0AD6F8 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E222C 7F0AD6FC 11A0003E */ beqz $t5, .L7F0AD7F8 +/* 0E2230 7F0AD700 3C078004 */ lui $a3, %hi(text_y) +/* 0E2234 7F0AD704 3C068004 */ lui $a2, %hi(text_x) +/* 0E2238 7F0AD708 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E223C 7F0AD70C 8CCF0000 */ lw $t7, ($a2) +/* 0E2240 7F0AD710 3C078004 */ lui $a3, %hi(text_y) +/* 0E2244 7F0AD714 00087080 */ sll $t6, $t0, 2 +/* 0E2248 7F0AD718 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E224C 7F0AD71C 01CFC021 */ addu $t8, $t6, $t7 +/* 0E2250 7F0AD720 8CEF0000 */ lw $t7, ($a3) +/* 0E2254 7F0AD724 33190FFF */ andi $t9, $t8, 0xfff +/* 0E2258 7F0AD728 01246823 */ subu $t5, $t1, $a0 +/* 0E225C 7F0AD72C 000D7080 */ sll $t6, $t5, 2 +/* 0E2260 7F0AD730 3C01E500 */ lui $at, 0xe500 +/* 0E2264 7F0AD734 03216025 */ or $t4, $t9, $at +/* 0E2268 7F0AD738 01CFC021 */ addu $t8, $t6, $t7 +/* 0E226C 7F0AD73C 33190FFF */ andi $t9, $t8, 0xfff +/* 0E2270 7F0AD740 00196B00 */ sll $t5, $t9, 0xc +/* 0E2274 7F0AD744 018D7025 */ or $t6, $t4, $t5 +/* 0E2278 7F0AD748 02001025 */ move $v0, $s0 +/* 0E227C 7F0AD74C AC4E0000 */ sw $t6, ($v0) +/* 0E2280 7F0AD750 8FAF00F4 */ lw $t7, 0xf4($sp) +/* 0E2284 7F0AD754 8CCC0000 */ lw $t4, ($a2) +/* 0E2288 7F0AD758 26100008 */ addiu $s0, $s0, 8 +/* 0E228C 7F0AD75C 8DF80000 */ lw $t8, ($t7) +/* 0E2290 7F0AD760 8E2F0004 */ lw $t7, 4($s1) +/* 0E2294 7F0AD764 02001825 */ move $v1, $s0 +/* 0E2298 7F0AD768 0018C880 */ sll $t9, $t8, 2 +/* 0E229C 7F0AD76C 032C6821 */ addu $t5, $t9, $t4 +/* 0E22A0 7F0AD770 8E390008 */ lw $t9, 8($s1) +/* 0E22A4 7F0AD774 012FC023 */ subu $t8, $t1, $t7 +/* 0E22A8 7F0AD778 8CEF0000 */ lw $t7, ($a3) +/* 0E22AC 7F0AD77C 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0E22B0 7F0AD780 03196023 */ subu $t4, $t8, $t9 +/* 0E22B4 7F0AD784 000C6880 */ sll $t5, $t4, 2 +/* 0E22B8 7F0AD788 01AFC021 */ addu $t8, $t5, $t7 +/* 0E22BC 7F0AD78C 33190FFF */ andi $t9, $t8, 0xfff +/* 0E22C0 7F0AD790 00196300 */ sll $t4, $t9, 0xc +/* 0E22C4 7F0AD794 01CC6825 */ or $t5, $t6, $t4 +/* 0E22C8 7F0AD798 AC4D0004 */ sw $t5, 4($v0) +/* 0E22CC 7F0AD79C 3C0FB400 */ lui $t7, 0xb400 +/* 0E22D0 7F0AD7A0 AC6F0000 */ sw $t7, ($v1) +/* 0E22D4 7F0AD7A4 8E380008 */ lw $t8, 8($s1) +/* 0E22D8 7F0AD7A8 3C0C8004 */ lui $t4, %hi(text_s) +/* 0E22DC 7F0AD7AC 8D8C0EA0 */ lw $t4, %lo(text_s)($t4) +/* 0E22E0 7F0AD7B0 2719FFFF */ addiu $t9, $t8, -1 +/* 0E22E4 7F0AD7B4 00197140 */ sll $t6, $t9, 5 +/* 0E22E8 7F0AD7B8 3C188004 */ lui $t8, %hi(text_t) +/* 0E22EC 7F0AD7BC 8F190EA4 */ lw $t9, %lo(text_t)($t8) +/* 0E22F0 7F0AD7C0 01CC6821 */ addu $t5, $t6, $t4 +/* 0E22F4 7F0AD7C4 31AFFFFF */ andi $t7, $t5, 0xffff +/* 0E22F8 7F0AD7C8 26100008 */ addiu $s0, $s0, 8 +/* 0E22FC 7F0AD7CC 00197400 */ sll $t6, $t9, 0x10 +/* 0E2300 7F0AD7D0 01CF6025 */ or $t4, $t6, $t7 +/* 0E2304 7F0AD7D4 02002825 */ move $a1, $s0 +/* 0E2308 7F0AD7D8 3C180400 */ lui $t8, (0x0400FC00 >> 16) # lui $t8, 0x400 +/* 0E230C 7F0AD7DC 3718FC00 */ ori $t8, (0x0400FC00 & 0xFFFF) # ori $t8, $t8, 0xfc00 +/* 0E2310 7F0AD7E0 AC6C0004 */ sw $t4, 4($v1) +/* 0E2314 7F0AD7E4 3C0DB300 */ lui $t5, 0xb300 +/* 0E2318 7F0AD7E8 ACAD0000 */ sw $t5, ($a1) +/* 0E231C 7F0AD7EC ACB80004 */ sw $t8, 4($a1) +/* 0E2320 7F0AD7F0 100000A7 */ b .L7F0ADA90 +/* 0E2324 7F0AD7F4 26100008 */ addiu $s0, $s0, 8 +.L7F0AD7F8: +/* 0E2328 7F0AD7F8 8CCE0000 */ lw $t6, ($a2) +/* 0E232C 7F0AD7FC 0008C880 */ sll $t9, $t0, 2 +/* 0E2330 7F0AD800 24E70E9C */ addiu $a3, $a3, %lo(text_y) +/* 0E2334 7F0AD804 032E7821 */ addu $t7, $t9, $t6 +/* 0E2338 7F0AD808 8CEE0000 */ lw $t6, ($a3) +/* 0E233C 7F0AD80C 31EC0FFF */ andi $t4, $t7, 0xfff +/* 0E2340 7F0AD810 000C6B00 */ sll $t5, $t4, 0xc +/* 0E2344 7F0AD814 0002C880 */ sll $t9, $v0, 2 +/* 0E2348 7F0AD818 3C01E400 */ lui $at, 0xe400 +/* 0E234C 7F0AD81C 032E7821 */ addu $t7, $t9, $t6 +/* 0E2350 7F0AD820 31EC0FFF */ andi $t4, $t7, 0xfff +/* 0E2354 7F0AD824 01A1C025 */ or $t8, $t5, $at +/* 0E2358 7F0AD828 030C6825 */ or $t5, $t8, $t4 +/* 0E235C 7F0AD82C 02001825 */ move $v1, $s0 +/* 0E2360 7F0AD830 AC6D0000 */ sw $t5, ($v1) +/* 0E2364 7F0AD834 8FB900F4 */ lw $t9, 0xf4($sp) +/* 0E2368 7F0AD838 8CD80000 */ lw $t8, ($a2) +/* 0E236C 7F0AD83C 26100008 */ addiu $s0, $s0, 8 +/* 0E2370 7F0AD840 8F2E0000 */ lw $t6, ($t9) +/* 0E2374 7F0AD844 02002025 */ move $a0, $s0 +/* 0E2378 7F0AD848 26100008 */ addiu $s0, $s0, 8 +/* 0E237C 7F0AD84C 000E7880 */ sll $t7, $t6, 2 +/* 0E2380 7F0AD850 8E2E0004 */ lw $t6, 4($s1) +/* 0E2384 7F0AD854 01F86021 */ addu $t4, $t7, $t8 +/* 0E2388 7F0AD858 318D0FFF */ andi $t5, $t4, 0xfff +/* 0E238C 7F0AD85C 8CEC0000 */ lw $t4, ($a3) +/* 0E2390 7F0AD860 012E7821 */ addu $t7, $t1, $t6 +/* 0E2394 7F0AD864 000FC080 */ sll $t8, $t7, 2 +/* 0E2398 7F0AD868 000DCB00 */ sll $t9, $t5, 0xc +/* 0E239C 7F0AD86C 030C6821 */ addu $t5, $t8, $t4 +/* 0E23A0 7F0AD870 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0E23A4 7F0AD874 032E7825 */ or $t7, $t9, $t6 +/* 0E23A8 7F0AD878 AC6F0004 */ sw $t7, 4($v1) +/* 0E23AC 7F0AD87C 3C18B400 */ lui $t8, 0xb400 +/* 0E23B0 7F0AD880 AC980000 */ sw $t8, ($a0) +/* 0E23B4 7F0AD884 3C0C8004 */ lui $t4, %hi(text_s) +/* 0E23B8 7F0AD888 8D8D0EA0 */ lw $t5, %lo(text_s)($t4) +/* 0E23BC 7F0AD88C 3C0E8004 */ lui $t6, %hi(text_t) +/* 0E23C0 7F0AD890 8DCE0EA4 */ lw $t6, %lo(text_t)($t6) +/* 0E23C4 7F0AD894 000DCC00 */ sll $t9, $t5, 0x10 +/* 0E23C8 7F0AD898 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 0E23CC 7F0AD89C 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0E23D0 7F0AD8A0 032FC025 */ or $t8, $t9, $t7 +/* 0E23D4 7F0AD8A4 02002825 */ move $a1, $s0 +/* 0E23D8 7F0AD8A8 AC980004 */ sw $t8, 4($a0) +/* 0E23DC 7F0AD8AC 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0E23E0 7F0AD8B0 3C0CB300 */ lui $t4, 0xb300 +/* 0E23E4 7F0AD8B4 ACAC0000 */ sw $t4, ($a1) +/* 0E23E8 7F0AD8B8 ACAD0004 */ sw $t5, 4($a1) +/* 0E23EC 7F0AD8BC 10000074 */ b .L7F0ADA90 +/* 0E23F0 7F0AD8C0 26100008 */ addiu $s0, $s0, 8 +/* 0E23F4 7F0AD8C4 0163082A */ slt $at, $t3, $v1 +.L7F0AD8C8: +/* 0E23F8 7F0AD8C8 14200071 */ bnez $at, .L7F0ADA90 +/* 0E23FC 7F0AD8CC 3C068004 */ lui $a2, %hi(text_x) +/* 0E2400 7F0AD8D0 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E2404 7F0AD8D4 8CD90000 */ lw $t9, ($a2) +/* 0E2408 7F0AD8D8 3C078004 */ lui $a3, %hi(text_y) +/* 0E240C 7F0AD8DC 00087080 */ sll $t6, $t0, 2 +/* 0E2410 7F0AD8E0 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E2414 7F0AD8E4 01D97821 */ addu $t7, $t6, $t9 +/* 0E2418 7F0AD8E8 8CEE0000 */ lw $t6, ($a3) +/* 0E241C 7F0AD8EC 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2420 7F0AD8F0 00186300 */ sll $t4, $t8, 0xc +/* 0E2424 7F0AD8F4 3C01E400 */ lui $at, 0xe400 +/* 0E2428 7F0AD8F8 016EC821 */ addu $t9, $t3, $t6 +/* 0E242C 7F0AD8FC 332F0FFF */ andi $t7, $t9, 0xfff +/* 0E2430 7F0AD900 01816825 */ or $t5, $t4, $at +/* 0E2434 7F0AD904 01AFC025 */ or $t8, $t5, $t7 +/* 0E2438 7F0AD908 02001025 */ move $v0, $s0 +/* 0E243C 7F0AD90C AC580000 */ sw $t8, ($v0) +/* 0E2440 7F0AD910 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E2444 7F0AD914 8CCD0000 */ lw $t5, ($a2) +/* 0E2448 7F0AD918 26100008 */ addiu $s0, $s0, 8 +/* 0E244C 7F0AD91C 8D8E0000 */ lw $t6, ($t4) +/* 0E2450 7F0AD920 02001825 */ move $v1, $s0 +/* 0E2454 7F0AD924 26100008 */ addiu $s0, $s0, 8 +/* 0E2458 7F0AD928 000EC880 */ sll $t9, $t6, 2 +/* 0E245C 7F0AD92C 8E2E0004 */ lw $t6, 4($s1) +/* 0E2460 7F0AD930 032D7821 */ addu $t7, $t9, $t5 +/* 0E2464 7F0AD934 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2468 7F0AD938 8CEF0000 */ lw $t7, ($a3) +/* 0E246C 7F0AD93C 012EC821 */ addu $t9, $t1, $t6 +/* 0E2470 7F0AD940 00196880 */ sll $t5, $t9, 2 +/* 0E2474 7F0AD944 00186300 */ sll $t4, $t8, 0xc +/* 0E2478 7F0AD948 01AFC021 */ addu $t8, $t5, $t7 +/* 0E247C 7F0AD94C 330E0FFF */ andi $t6, $t8, 0xfff +/* 0E2480 7F0AD950 018EC825 */ or $t9, $t4, $t6 +/* 0E2484 7F0AD954 AC590004 */ sw $t9, 4($v0) +/* 0E2488 7F0AD958 3C0DB400 */ lui $t5, 0xb400 +/* 0E248C 7F0AD95C AC6D0000 */ sw $t5, ($v1) +/* 0E2490 7F0AD960 3C0F8004 */ lui $t7, %hi(text_s) +/* 0E2494 7F0AD964 8DF80EA0 */ lw $t8, %lo(text_s)($t7) +/* 0E2498 7F0AD968 3C0E8004 */ lui $t6, %hi(text_t) +/* 0E249C 7F0AD96C 8DCE0EA4 */ lw $t6, %lo(text_t)($t6) +/* 0E24A0 7F0AD970 00186400 */ sll $t4, $t8, 0x10 +/* 0E24A4 7F0AD974 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0E24A8 7F0AD978 31D9FFFF */ andi $t9, $t6, 0xffff +/* 0E24AC 7F0AD97C 01996825 */ or $t5, $t4, $t9 +/* 0E24B0 7F0AD980 02002025 */ move $a0, $s0 +/* 0E24B4 7F0AD984 AC6D0004 */ sw $t5, 4($v1) +/* 0E24B8 7F0AD988 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0E24BC 7F0AD98C 3C0FB300 */ lui $t7, 0xb300 +/* 0E24C0 7F0AD990 AC8F0000 */ sw $t7, ($a0) +/* 0E24C4 7F0AD994 AC980004 */ sw $t8, 4($a0) +/* 0E24C8 7F0AD998 1000003D */ b .L7F0ADA90 +/* 0E24CC 7F0AD99C 26100008 */ addiu $s0, $s0, 8 +/* 0E24D0 7F0AD9A0 8E2E0008 */ lw $t6, 8($s1) +.L7F0AD9A4: +/* 0E24D4 7F0AD9A4 3C068004 */ lui $a2, %hi(text_x) +/* 0E24D8 7F0AD9A8 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E24DC 7F0AD9AC 006E1021 */ addu $v0, $v1, $t6 +/* 0E24E0 7F0AD9B0 004A082A */ slt $at, $v0, $t2 +/* 0E24E4 7F0AD9B4 14200036 */ bnez $at, .L7F0ADA90 +/* 0E24E8 7F0AD9B8 3C078004 */ lui $a3, %hi(text_y) +/* 0E24EC 7F0AD9BC 8CD90000 */ lw $t9, ($a2) +/* 0E24F0 7F0AD9C0 00086080 */ sll $t4, $t0, 2 +/* 0E24F4 7F0AD9C4 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E24F8 7F0AD9C8 01996821 */ addu $t5, $t4, $t9 +/* 0E24FC 7F0AD9CC 8CF90000 */ lw $t9, ($a3) +/* 0E2500 7F0AD9D0 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2504 7F0AD9D4 000FC300 */ sll $t8, $t7, 0xc +/* 0E2508 7F0AD9D8 00026080 */ sll $t4, $v0, 2 +/* 0E250C 7F0AD9DC 3C01E400 */ lui $at, 0xe400 +/* 0E2510 7F0AD9E0 01996821 */ addu $t5, $t4, $t9 +/* 0E2514 7F0AD9E4 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2518 7F0AD9E8 03017025 */ or $t6, $t8, $at +/* 0E251C 7F0AD9EC 01CFC025 */ or $t8, $t6, $t7 +/* 0E2520 7F0AD9F0 02001825 */ move $v1, $s0 +/* 0E2524 7F0AD9F4 AC780000 */ sw $t8, ($v1) +/* 0E2528 7F0AD9F8 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E252C 7F0AD9FC 8CCE0000 */ lw $t6, ($a2) +/* 0E2530 7F0ADA00 26100008 */ addiu $s0, $s0, 8 +/* 0E2534 7F0ADA04 8D990000 */ lw $t9, ($t4) +/* 0E2538 7F0ADA08 02002025 */ move $a0, $s0 +/* 0E253C 7F0ADA0C 26100008 */ addiu $s0, $s0, 8 +/* 0E2540 7F0ADA10 00196880 */ sll $t5, $t9, 2 +/* 0E2544 7F0ADA14 01AE7821 */ addu $t7, $t5, $t6 +/* 0E2548 7F0ADA18 8CED0000 */ lw $t5, ($a3) +/* 0E254C 7F0ADA1C 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2550 7F0ADA20 000AC880 */ sll $t9, $t2, 2 +/* 0E2554 7F0ADA24 032D7021 */ addu $t6, $t9, $t5 +/* 0E2558 7F0ADA28 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E255C 7F0ADA2C 00186300 */ sll $t4, $t8, 0xc +/* 0E2560 7F0ADA30 018FC025 */ or $t8, $t4, $t7 +/* 0E2564 7F0ADA34 AC780004 */ sw $t8, 4($v1) +/* 0E2568 7F0ADA38 3C19B400 */ lui $t9, 0xb400 +/* 0E256C 7F0ADA3C AC990000 */ sw $t9, ($a0) +/* 0E2570 7F0ADA40 8E2E0004 */ lw $t6, 4($s1) +/* 0E2574 7F0ADA44 01496823 */ subu $t5, $t2, $t1 +/* 0E2578 7F0ADA48 3C188004 */ lui $t8, %hi(text_t) +/* 0E257C 7F0ADA4C 01AE6023 */ subu $t4, $t5, $t6 +/* 0E2580 7F0ADA50 8F180EA4 */ lw $t8, %lo(text_t)($t8) +/* 0E2584 7F0ADA54 000C7940 */ sll $t7, $t4, 5 +/* 0E2588 7F0ADA58 3C0E8004 */ lui $t6, %hi(text_s) +/* 0E258C 7F0ADA5C 8DCC0EA0 */ lw $t4, %lo(text_s)($t6) +/* 0E2590 7F0ADA60 01F8C821 */ addu $t9, $t7, $t8 +/* 0E2594 7F0ADA64 332DFFFF */ andi $t5, $t9, 0xffff +/* 0E2598 7F0ADA68 000C7C00 */ sll $t7, $t4, 0x10 +/* 0E259C 7F0ADA6C 01EDC025 */ or $t8, $t7, $t5 +/* 0E25A0 7F0ADA70 02002825 */ move $a1, $s0 +/* 0E25A4 7F0ADA74 AC980004 */ sw $t8, 4($a0) +/* 0E25A8 7F0ADA78 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 +/* 0E25AC 7F0ADA7C 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 +/* 0E25B0 7F0ADA80 3C19B300 */ lui $t9, 0xb300 +/* 0E25B4 7F0ADA84 ACB90000 */ sw $t9, ($a1) +/* 0E25B8 7F0ADA88 ACAE0004 */ sw $t6, 4($a1) +/* 0E25BC 7F0ADA8C 26100008 */ addiu $s0, $s0, 8 +.L7F0ADA90: +/* 0E25C0 7F0ADA90 8FAC00F4 */ lw $t4, 0xf4($sp) +.L7F0ADA94: +/* 0E25C4 7F0ADA94 8E2D000C */ lw $t5, 0xc($s1) +/* 0E25C8 7F0ADA98 02001025 */ move $v0, $s0 +/* 0E25CC 7F0ADA9C 8D8F0000 */ lw $t7, ($t4) +/* 0E25D0 7F0ADAA0 01EDC021 */ addu $t8, $t7, $t5 +/* 0E25D4 7F0ADAA4 AD980000 */ sw $t8, ($t4) +/* 0E25D8 7F0ADAA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E25DC 7F0ADAAC 8FB10018 */ lw $s1, 0x18($sp) +/* 0E25E0 7F0ADAB0 8FB00014 */ lw $s0, 0x14($sp) +/* 0E25E4 7F0ADAB4 03E00008 */ jr $ra +/* 0E25E8 7F0ADAB8 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void en_text_write_stuff(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel en_text_write_stuff +/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1 +/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp) +/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp) +/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp) +/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp) +/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp) +/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp) +/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp) +/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp) +/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp) +/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2) +/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1) +/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3 +/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1 +/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2 +/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0 +/* 0E2640 7F0ADB10 24150048 */ li $s5, 72 +/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30 +/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9) +/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9) +/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1 +/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp) +.L7F0ADB30: +/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3 +/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54 +/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe +/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54 +/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14 +/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp) +.L7F0ADB54: +/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp) +/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00 +/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0) +/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18 +/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10 +/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff +/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18 +/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8 +/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff +/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10 +/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4 +/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8 +/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9 +/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff +/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3 +/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0) +/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0) +/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8 +/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp) +/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78 +/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp) +/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c +/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32 +.L7F0ADBB0: +/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4 +/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10 +/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1) +/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72 +/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1 +/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5 +/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C +/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1) +/* 0E2700 7F0ADBD0 2401000A */ li $at, 10 +.L7F0ADBD4: +/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28 +/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80 +/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction) +/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0) +/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72 +/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10 +/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1 +/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1) +/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14 +/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2) +/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2) +/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0 +/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C +/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2) +.L7F0ADC10: +/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2) +.L7F0ADC14: +/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2 +/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2) +.L7F0ADC1C: +/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C +/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1) +/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80 +.L7F0ADC28: +/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0 +/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC) +/* 0E2760 7F0ADC30 24030018 */ li $v1, 24 +/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1 +/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp) +/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3 +/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1 +/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2 +/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp) +/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp) +/* 0E278C 7F0ADC5C 00005812 */ mflo $t3 +/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0 +/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1 +/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp) +/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp) +/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4 +/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0 +/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 +/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) +/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C +/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1 +.L7F0ADCA0: +/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC) +/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6) +/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0) +/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f +/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6) +/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6) +/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7 +/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f +/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6) +/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6) +/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4 +/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6) +/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000 +/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff +/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6) +/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6) +/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15 +/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16 +/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6) +/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c7 +/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C +/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6) +/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp) +/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp) +.L7F0ADD0C: +/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C +/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80 +/* 0E2844 7F0ADD14 24040002 */ li $a0, 2 +/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80 +.L7F0ADD1C: +/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX +/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp) +/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp) +/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3 +/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1 +/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2 +/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6 +/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp) +/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp) +/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp) +/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp) +/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp) +/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 +/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 +.L7F0ADD6C: +/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0) +/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0 +/* 0E28A4 7F0ADD74 24010020 */ li $at, 32 +.L7F0ADD78: +/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3 +/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp) +/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp) +/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp) +/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp) +/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp) +/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp) +/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra +/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel en_text_write_stuff +/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1 +/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp) +/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp) +/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp) +/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp) +/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp) +/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp) +/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp) +/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp) +/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp) +/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2) +/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1) +/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3 +/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1 +/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2 +/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0 +/* 0E2640 7F0ADB10 24150048 */ li $s5, 72 +/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30 +/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9) +/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9) +/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1 +/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp) +.L7F0ADB30: +/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3 +/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54 +/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe +/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54 +/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14 +/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp) +.L7F0ADB54: +/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp) +/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00 +/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0) +/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18 +/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10 +/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff +/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18 +/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8 +/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff +/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10 +/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4 +/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8 +/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9 +/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff +/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3 +/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0) +/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0) +/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8 +/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp) +/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78 +/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp) +/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c +/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32 +.L7F0ADBB0: +/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4 +/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10 +/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1) +/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72 +/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1 +/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5 +/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C +/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1) +/* 0E2700 7F0ADBD0 2401000A */ li $at, 10 +.L7F0ADBD4: +/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28 +/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80 +/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction) +/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0) +/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72 +/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10 +/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1 +/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1) +/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14 +/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2) +/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2) +/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0 +/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C +/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2) +.L7F0ADC10: +/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2) +.L7F0ADC14: +/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2 +/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2) +.L7F0ADC1C: +/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C +/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1) +/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80 +.L7F0ADC28: +/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0 +/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC) +/* 0E2760 7F0ADC30 24030018 */ li $v1, 24 +/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1 +/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp) +/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3 +/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1 +/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2 +/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp) +/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp) +/* 0E278C 7F0ADC5C 00005812 */ mflo $t3 +/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0 +/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1 +/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp) +/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp) +/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4 +/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0 +/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 +/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) +/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C +/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1 +.L7F0ADCA0: +/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC) +/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6) +/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0) +/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f +/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6) +/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6) +/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7 +/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f +/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6) +/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6) +/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4 +/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6) +/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000 +/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff +/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6) +/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6) +/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15 +/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16 +/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6) +/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c8 +/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C +/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6) +/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp) +/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp) +.L7F0ADD0C: +/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C +/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80 +/* 0E2844 7F0ADD14 24040002 */ li $a0, 2 +/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80 +.L7F0ADD1C: +/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX +/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp) +/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp) +/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3 +/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1 +/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2 +/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6 +/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp) +/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp) +/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp) +/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp) +/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp) +/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 +/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 +.L7F0ADD6C: +/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0) +/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0 +/* 0E28A4 7F0ADD74 24010020 */ li $at, 32 +.L7F0ADD78: +/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3 +/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp) +/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp) +/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp) +/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp) +/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp) +/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp) +/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra +/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ADDAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ADDAC +/* 0E28DC 7F0ADDAC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E28E0 7F0ADDB0 AFBF004C */ sw $ra, 0x4c($sp) +/* 0E28E4 7F0ADDB4 AFBE0048 */ sw $fp, 0x48($sp) +/* 0E28E8 7F0ADDB8 AFB70044 */ sw $s7, 0x44($sp) +/* 0E28EC 7F0ADDBC AFB60040 */ sw $s6, 0x40($sp) +/* 0E28F0 7F0ADDC0 AFB5003C */ sw $s5, 0x3c($sp) +/* 0E28F4 7F0ADDC4 AFB40038 */ sw $s4, 0x38($sp) +/* 0E28F8 7F0ADDC8 AFB30034 */ sw $s3, 0x34($sp) +/* 0E28FC 7F0ADDCC AFB20030 */ sw $s2, 0x30($sp) +/* 0E2900 7F0ADDD0 AFB1002C */ sw $s1, 0x2c($sp) +/* 0E2904 7F0ADDD4 AFB00028 */ sw $s0, 0x28($sp) +/* 0E2908 7F0ADDD8 8CCE0000 */ lw $t6, ($a2) +/* 0E290C 7F0ADDDC 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E2910 7F0ADDE0 8FA90070 */ lw $t1, 0x70($sp) +/* 0E2914 7F0ADDE4 8FB90074 */ lw $t9, 0x74($sp) +/* 0E2918 7F0ADDE8 01CFC021 */ addu $t8, $t6, $t7 +/* 0E291C 7F0ADDEC AFB80050 */ sw $t8, 0x50($sp) +/* 0E2920 7F0ADDF0 8D2A0010 */ lw $t2, 0x10($t1) +/* 0E2924 7F0ADDF4 8CEE0010 */ lw $t6, 0x10($a3) +/* 0E2928 7F0ADDF8 00809825 */ move $s3, $a0 +/* 0E292C 7F0ADDFC 000A5880 */ sll $t3, $t2, 2 +/* 0E2930 7F0ADE00 016A5823 */ subu $t3, $t3, $t2 +/* 0E2934 7F0ADE04 000B5880 */ sll $t3, $t3, 2 +/* 0E2938 7F0ADE08 016A5821 */ addu $t3, $t3, $t2 +/* 0E293C 7F0ADE0C 000B6080 */ sll $t4, $t3, 2 +/* 0E2940 7F0ADE10 032C6821 */ addu $t5, $t9, $t4 +/* 0E2944 7F0ADE14 000E7880 */ sll $t7, $t6, 2 +/* 0E2948 7F0ADE18 01AFC021 */ addu $t8, $t5, $t7 +/* 0E294C 7F0ADE1C 3C0A8004 */ lui $t2, %hi(text_spacing) +/* 0E2950 7F0ADE20 8D4A0E84 */ lw $t2, %lo(text_spacing)($t2) +/* 0E2954 7F0ADE24 8F090000 */ lw $t1, ($t8) +/* 0E2958 7F0ADE28 8CAB0000 */ lw $t3, ($a1) +/* 0E295C 7F0ADE2C 00E0F025 */ move $fp, $a3 +/* 0E2960 7F0ADE30 012A1021 */ addu $v0, $t1, $t2 +/* 0E2964 7F0ADE34 0162C823 */ subu $t9, $t3, $v0 +/* 0E2968 7F0ADE38 272C0001 */ addiu $t4, $t9, 1 +/* 0E296C 7F0ADE3C ACAC0000 */ sw $t4, ($a1) +/* 0E2970 7F0ADE40 AFA50064 */ sw $a1, 0x64($sp) +/* 0E2974 7F0ADE44 8CAE0000 */ lw $t6, ($a1) +/* 0E2978 7F0ADE48 59C00173 */ blezl $t6, .L7F0AE418 +/* 0E297C 7F0ADE4C 8FA50064 */ lw $a1, 0x64($sp) +/* 0E2980 7F0ADE50 0C001107 */ jal get_video2_settings_txtClipW +/* 0E2984 7F0ADE54 AFA50064 */ sw $a1, 0x64($sp) +/* 0E2988 7F0ADE58 8FAD0064 */ lw $t5, 0x64($sp) +/* 0E298C 7F0ADE5C 8DAF0000 */ lw $t7, ($t5) +/* 0E2990 7F0ADE60 004F082A */ slt $at, $v0, $t7 +/* 0E2994 7F0ADE64 5420016C */ bnezl $at, .L7F0AE418 +/* 0E2998 7F0ADE68 8FA50064 */ lw $a1, 0x64($sp) +/* 0E299C 7F0ADE6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0E29A0 7F0ADE70 00000000 */ nop +/* 0E29A4 7F0ADE74 8FB80050 */ lw $t8, 0x50($sp) +/* 0E29A8 7F0ADE78 8FC90004 */ lw $t1, 4($fp) +/* 0E29AC 7F0ADE7C 8FAA0064 */ lw $t2, 0x64($sp) +/* 0E29B0 7F0ADE80 03092021 */ addu $a0, $t8, $t1 +/* 0E29B4 7F0ADE84 0044082A */ slt $at, $v0, $a0 +/* 0E29B8 7F0ADE88 54200163 */ bnezl $at, .L7F0AE418 +/* 0E29BC 7F0ADE8C 8FA50064 */ lw $a1, 0x64($sp) +/* 0E29C0 7F0ADE90 8FB40078 */ lw $s4, 0x78($sp) +/* 0E29C4 7F0ADE94 8FB60088 */ lw $s6, 0x88($sp) +/* 0E29C8 7F0ADE98 8D430000 */ lw $v1, ($t2) +/* 0E29CC 7F0ADE9C 8FB5007C */ lw $s5, 0x7c($sp) +/* 0E29D0 7F0ADEA0 02965821 */ addu $t3, $s4, $s6 +/* 0E29D4 7F0ADEA4 0163082A */ slt $at, $t3, $v1 +/* 0E29D8 7F0ADEA8 1420015A */ bnez $at, .L7F0AE414 +/* 0E29DC 7F0ADEAC 8FB7008C */ lw $s7, 0x8c($sp) +/* 0E29E0 7F0ADEB0 02B7C821 */ addu $t9, $s5, $s7 +/* 0E29E4 7F0ADEB4 0324082A */ slt $at, $t9, $a0 +/* 0E29E8 7F0ADEB8 14200156 */ bnez $at, .L7F0AE414 +/* 0E29EC 7F0ADEBC 0074082A */ slt $at, $v1, $s4 +/* 0E29F0 7F0ADEC0 54200155 */ bnezl $at, .L7F0AE418 +/* 0E29F4 7F0ADEC4 8FA50064 */ lw $a1, 0x64($sp) +/* 0E29F8 7F0ADEC8 8FCC0008 */ lw $t4, 8($fp) +/* 0E29FC 7F0ADECC 008C7021 */ addu $t6, $a0, $t4 +/* 0E2A00 7F0ADED0 01D5082A */ slt $at, $t6, $s5 +/* 0E2A04 7F0ADED4 54200150 */ bnezl $at, .L7F0AE418 +/* 0E2A08 7F0ADED8 8FA50064 */ lw $a1, 0x64($sp) +/* 0E2A0C 7F0ADEDC 8FCD0000 */ lw $t5, ($fp) +/* 0E2A10 7F0ADEE0 3C058004 */ lui $a1, %hi(D_80040EA8) +/* 0E2A14 7F0ADEE4 24A50EA8 */ addiu $a1, %lo(D_80040EA8) # addiu $a1, $a1, 0xea8 +/* 0E2A18 7F0ADEE8 29A10080 */ slti $at, $t5, 0x80 +/* 0E2A1C 7F0ADEEC 1020006E */ beqz $at, .L7F0AE0A8 +/* 0E2A20 7F0ADEF0 3C11E700 */ lui $s1, 0xe700 +/* 0E2A24 7F0ADEF4 02601025 */ move $v0, $s3 +/* 0E2A28 7F0ADEF8 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 +/* 0E2A2C 7F0ADEFC 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 +/* 0E2A30 7F0ADF00 26730008 */ addiu $s3, $s3, 8 +/* 0E2A34 7F0ADF04 AC4F0000 */ sw $t7, ($v0) +/* 0E2A38 7F0ADF08 AC400004 */ sw $zero, 4($v0) +/* 0E2A3C 7F0ADF0C 02601825 */ move $v1, $s3 +/* 0E2A40 7F0ADF10 3C18FD90 */ lui $t8, 0xfd90 +/* 0E2A44 7F0ADF14 AC780000 */ sw $t8, ($v1) +/* 0E2A48 7F0ADF18 8FC90014 */ lw $t1, 0x14($fp) +/* 0E2A4C 7F0ADF1C 26730008 */ addiu $s3, $s3, 8 +/* 0E2A50 7F0ADF20 02602025 */ move $a0, $s3 +/* 0E2A54 7F0ADF24 26730008 */ addiu $s3, $s3, 8 +/* 0E2A58 7F0ADF28 AC690004 */ sw $t1, 4($v1) +/* 0E2A5C 7F0ADF2C 3C120700 */ lui $s2, 0x700 +/* 0E2A60 7F0ADF30 02602825 */ move $a1, $s3 +/* 0E2A64 7F0ADF34 3C0AF590 */ lui $t2, 0xf590 +/* 0E2A68 7F0ADF38 AC8A0000 */ sw $t2, ($a0) +/* 0E2A6C 7F0ADF3C AC920004 */ sw $s2, 4($a0) +/* 0E2A70 7F0ADF40 26730008 */ addiu $s3, $s3, 8 +/* 0E2A74 7F0ADF44 3C0BE600 */ lui $t3, 0xe600 +/* 0E2A78 7F0ADF48 ACAB0000 */ sw $t3, ($a1) +/* 0E2A7C 7F0ADF4C 02604025 */ move $t0, $s3 +/* 0E2A80 7F0ADF50 ACA00004 */ sw $zero, 4($a1) +/* 0E2A84 7F0ADF54 3C19F300 */ lui $t9, 0xf300 +/* 0E2A88 7F0ADF58 AD190000 */ sw $t9, ($t0) +/* 0E2A8C 7F0ADF5C 8FC3000C */ lw $v1, 0xc($fp) +/* 0E2A90 7F0ADF60 8FCE0008 */ lw $t6, 8($fp) +/* 0E2A94 7F0ADF64 26730008 */ addiu $s3, $s3, 8 +/* 0E2A98 7F0ADF68 24630007 */ addiu $v1, $v1, 7 +/* 0E2A9C 7F0ADF6C 306C00F8 */ andi $t4, $v1, 0xf8 +/* 0E2AA0 7F0ADF70 018E0019 */ multu $t4, $t6 +/* 0E2AA4 7F0ADF74 01801825 */ move $v1, $t4 +/* 0E2AA8 7F0ADF78 3C11E700 */ lui $s1, 0xe700 +/* 0E2AAC 7F0ADF7C 240607FF */ li $a2, 2047 +/* 0E2AB0 7F0ADF80 00001012 */ mflo $v0 +/* 0E2AB4 7F0ADF84 24420001 */ addiu $v0, $v0, 1 +/* 0E2AB8 7F0ADF88 00026843 */ sra $t5, $v0, 1 +/* 0E2ABC 7F0ADF8C 25A2FFFF */ addiu $v0, $t5, -1 +/* 0E2AC0 7F0ADF90 284107FF */ slti $at, $v0, 0x7ff +/* 0E2AC4 7F0ADF94 10200003 */ beqz $at, .L7F0ADFA4 +/* 0E2AC8 7F0ADF98 00000000 */ nop +/* 0E2ACC 7F0ADF9C 10000001 */ b .L7F0ADFA4 +/* 0E2AD0 7F0ADFA0 00403025 */ move $a2, $v0 +.L7F0ADFA4: +/* 0E2AD4 7F0ADFA4 04610003 */ bgez $v1, .L7F0ADFB4 +/* 0E2AD8 7F0ADFA8 000310C3 */ sra $v0, $v1, 3 +/* 0E2ADC 7F0ADFAC 24610007 */ addiu $at, $v1, 7 +/* 0E2AE0 7F0ADFB0 000110C3 */ sra $v0, $at, 3 +.L7F0ADFB4: +/* 0E2AE4 7F0ADFB4 1C400003 */ bgtz $v0, .L7F0ADFC4 +/* 0E2AE8 7F0ADFB8 30CB0FFF */ andi $t3, $a2, 0xfff +/* 0E2AEC 7F0ADFBC 10000002 */ b .L7F0ADFC8 +/* 0E2AF0 7F0ADFC0 24070001 */ li $a3, 1 +.L7F0ADFC4: +/* 0E2AF4 7F0ADFC4 00403825 */ move $a3, $v0 +.L7F0ADFC8: +/* 0E2AF8 7F0ADFC8 1C400003 */ bgtz $v0, .L7F0ADFD8 +/* 0E2AFC 7F0ADFCC 24EF07FF */ addiu $t7, $a3, 0x7ff +/* 0E2B00 7F0ADFD0 10000002 */ b .L7F0ADFDC +/* 0E2B04 7F0ADFD4 24050001 */ li $a1, 1 +.L7F0ADFD8: +/* 0E2B08 7F0ADFD8 00402825 */ move $a1, $v0 +.L7F0ADFDC: +/* 0E2B0C 7F0ADFDC 01E5001A */ div $zero, $t7, $a1 +/* 0E2B10 7F0ADFE0 0000C012 */ mflo $t8 +/* 0E2B14 7F0ADFE4 33090FFF */ andi $t1, $t8, 0xfff +/* 0E2B18 7F0ADFE8 01325025 */ or $t2, $t1, $s2 +/* 0E2B1C 7F0ADFEC 000BCB00 */ sll $t9, $t3, 0xc +/* 0E2B20 7F0ADFF0 01596025 */ or $t4, $t2, $t9 +/* 0E2B24 7F0ADFF4 AD0C0004 */ sw $t4, 4($t0) +/* 0E2B28 7F0ADFF8 02601025 */ move $v0, $s3 +/* 0E2B2C 7F0ADFFC AC510000 */ sw $s1, ($v0) +/* 0E2B30 7F0AE000 AC400004 */ sw $zero, 4($v0) +/* 0E2B34 7F0AE004 8FCE000C */ lw $t6, 0xc($fp) +/* 0E2B38 7F0AE008 14A00002 */ bnez $a1, .L7F0AE014 +/* 0E2B3C 7F0AE00C 00000000 */ nop +/* 0E2B40 7F0AE010 0007000D */ break 7 +.L7F0AE014: +/* 0E2B44 7F0AE014 2401FFFF */ li $at, -1 +/* 0E2B48 7F0AE018 14A10004 */ bne $a1, $at, .L7F0AE02C +/* 0E2B4C 7F0AE01C 3C018000 */ lui $at, 0x8000 +/* 0E2B50 7F0AE020 15E10002 */ bne $t7, $at, .L7F0AE02C +/* 0E2B54 7F0AE024 00000000 */ nop +/* 0E2B58 7F0AE028 0006000D */ break 6 +.L7F0AE02C: +/* 0E2B5C 7F0AE02C 25CD0007 */ addiu $t5, $t6, 7 +/* 0E2B60 7F0AE030 31AF00F8 */ andi $t7, $t5, 0xf8 +/* 0E2B64 7F0AE034 25F80007 */ addiu $t8, $t7, 7 +/* 0E2B68 7F0AE038 001848C3 */ sra $t1, $t8, 3 +/* 0E2B6C 7F0AE03C 26730008 */ addiu $s3, $s3, 8 +/* 0E2B70 7F0AE040 02601825 */ move $v1, $s3 +/* 0E2B74 7F0AE044 312B01FF */ andi $t3, $t1, 0x1ff +/* 0E2B78 7F0AE048 000B5240 */ sll $t2, $t3, 9 +/* 0E2B7C 7F0AE04C 3C01F588 */ lui $at, 0xf588 +/* 0E2B80 7F0AE050 0141C825 */ or $t9, $t2, $at +/* 0E2B84 7F0AE054 26730008 */ addiu $s3, $s3, 8 +/* 0E2B88 7F0AE058 02602025 */ move $a0, $s3 +/* 0E2B8C 7F0AE05C AC790000 */ sw $t9, ($v1) +/* 0E2B90 7F0AE060 AC600004 */ sw $zero, 4($v1) +/* 0E2B94 7F0AE064 3C0CF200 */ lui $t4, 0xf200 +/* 0E2B98 7F0AE068 AC8C0000 */ sw $t4, ($a0) +/* 0E2B9C 7F0AE06C 8FCE000C */ lw $t6, 0xc($fp) +/* 0E2BA0 7F0AE070 8FD90008 */ lw $t9, 8($fp) +/* 0E2BA4 7F0AE074 26730008 */ addiu $s3, $s3, 8 +/* 0E2BA8 7F0AE078 25CD0007 */ addiu $t5, $t6, 7 +/* 0E2BAC 7F0AE07C 31AF00F8 */ andi $t7, $t5, 0xf8 +/* 0E2BB0 7F0AE080 25F8FFFF */ addiu $t8, $t7, -1 +/* 0E2BB4 7F0AE084 00184880 */ sll $t1, $t8, 2 +/* 0E2BB8 7F0AE088 272CFFFF */ addiu $t4, $t9, -1 +/* 0E2BBC 7F0AE08C 000C7080 */ sll $t6, $t4, 2 +/* 0E2BC0 7F0AE090 312B0FFF */ andi $t3, $t1, 0xfff +/* 0E2BC4 7F0AE094 000B5300 */ sll $t2, $t3, 0xc +/* 0E2BC8 7F0AE098 31CD0FFF */ andi $t5, $t6, 0xfff +/* 0E2BCC 7F0AE09C 014D7825 */ or $t7, $t2, $t5 +/* 0E2BD0 7F0AE0A0 10000095 */ b .L7F0AE2F8 +/* 0E2BD4 7F0AE0A4 AC8F0004 */ sw $t7, 4($a0) +.L7F0AE0A8: +/* 0E2BD8 7F0AE0A8 02601025 */ move $v0, $s3 +/* 0E2BDC 7F0AE0AC 26730008 */ addiu $s3, $s3, 8 +/* 0E2BE0 7F0AE0B0 AC510000 */ sw $s1, ($v0) +/* 0E2BE4 7F0AE0B4 AC400004 */ sw $zero, 4($v0) +/* 0E2BE8 7F0AE0B8 02601825 */ move $v1, $s3 +/* 0E2BEC 7F0AE0BC 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 0E2BF0 7F0AE0C0 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 0E2BF4 7F0AE0C4 3409C000 */ li $t1, 49152 +/* 0E2BF8 7F0AE0C8 AC690004 */ sw $t1, 4($v1) +/* 0E2BFC 7F0AE0CC AC780000 */ sw $t8, ($v1) +/* 0E2C00 7F0AE0D0 8CAB0000 */ lw $t3, ($a1) +/* 0E2C04 7F0AE0D4 26730008 */ addiu $s3, $s3, 8 +/* 0E2C08 7F0AE0D8 02608025 */ move $s0, $s3 +/* 0E2C0C 7F0AE0DC 11600047 */ beqz $t3, .L7F0AE1FC +/* 0E2C10 7F0AE0E0 3C19FD10 */ lui $t9, 0xfd10 +/* 0E2C14 7F0AE0E4 ACA00000 */ sw $zero, ($a1) +/* 0E2C18 7F0AE0E8 3C048004 */ lui $a0, %hi(D_80040EBC) +/* 0E2C1C 7F0AE0EC 24840EBC */ addiu $a0, %lo(D_80040EBC) # addiu $a0, $a0, 0xebc +/* 0E2C20 7F0AE0F0 AE190000 */ sw $t9, ($s0) +/* 0E2C24 7F0AE0F4 0C003A2C */ jal osVirtualToPhysical +/* 0E2C28 7F0AE0F8 26730008 */ addiu $s3, $s3, 8 +/* 0E2C2C 7F0AE0FC 02601825 */ move $v1, $s3 +/* 0E2C30 7F0AE100 26730008 */ addiu $s3, $s3, 8 +/* 0E2C34 7F0AE104 AE020004 */ sw $v0, 4($s0) +/* 0E2C38 7F0AE108 02602025 */ move $a0, $s3 +/* 0E2C3C 7F0AE10C 3C0CE800 */ lui $t4, 0xe800 +/* 0E2C40 7F0AE110 AC6C0000 */ sw $t4, ($v1) +/* 0E2C44 7F0AE114 AC600004 */ sw $zero, 4($v1) +/* 0E2C48 7F0AE118 3C0EF500 */ lui $t6, (0xF5000100 >> 16) # lui $t6, 0xf500 +/* 0E2C4C 7F0AE11C 35CE0100 */ ori $t6, (0xF5000100 & 0xFFFF) # ori $t6, $t6, 0x100 +/* 0E2C50 7F0AE120 26730008 */ addiu $s3, $s3, 8 +/* 0E2C54 7F0AE124 3C120700 */ lui $s2, 0x700 +/* 0E2C58 7F0AE128 AC920004 */ sw $s2, 4($a0) +/* 0E2C5C 7F0AE12C 02602825 */ move $a1, $s3 +/* 0E2C60 7F0AE130 AC8E0000 */ sw $t6, ($a0) +/* 0E2C64 7F0AE134 26730008 */ addiu $s3, $s3, 8 +/* 0E2C68 7F0AE138 02603025 */ move $a2, $s3 +/* 0E2C6C 7F0AE13C 3C0AE600 */ lui $t2, 0xe600 +/* 0E2C70 7F0AE140 ACAA0000 */ sw $t2, ($a1) +/* 0E2C74 7F0AE144 26730008 */ addiu $s3, $s3, 8 +/* 0E2C78 7F0AE148 ACA00004 */ sw $zero, 4($a1) +/* 0E2C7C 7F0AE14C 3C0F0703 */ lui $t7, (0x0703C000 >> 16) # lui $t7, 0x703 +/* 0E2C80 7F0AE150 35EFC000 */ ori $t7, (0x0703C000 & 0xFFFF) # ori $t7, $t7, 0xc000 +/* 0E2C84 7F0AE154 02603825 */ move $a3, $s3 +/* 0E2C88 7F0AE158 3C0DF000 */ lui $t5, 0xf000 +/* 0E2C8C 7F0AE15C ACCD0000 */ sw $t5, ($a2) +/* 0E2C90 7F0AE160 ACCF0004 */ sw $t7, 4($a2) +/* 0E2C94 7F0AE164 26730008 */ addiu $s3, $s3, 8 +/* 0E2C98 7F0AE168 ACE00004 */ sw $zero, 4($a3) +/* 0E2C9C 7F0AE16C ACF10000 */ sw $s1, ($a3) +/* 0E2CA0 7F0AE170 02608025 */ move $s0, $s3 +/* 0E2CA4 7F0AE174 3C048004 */ lui $a0, %hi(D_80040EDC) +/* 0E2CA8 7F0AE178 3C18FD10 */ lui $t8, 0xfd10 +/* 0E2CAC 7F0AE17C AE180000 */ sw $t8, ($s0) +/* 0E2CB0 7F0AE180 24840EDC */ addiu $a0, %lo(D_80040EDC) # addiu $a0, $a0, 0xedc +/* 0E2CB4 7F0AE184 0C003A2C */ jal osVirtualToPhysical +/* 0E2CB8 7F0AE188 26730008 */ addiu $s3, $s3, 8 +/* 0E2CBC 7F0AE18C 02601825 */ move $v1, $s3 +/* 0E2CC0 7F0AE190 26730008 */ addiu $s3, $s3, 8 +/* 0E2CC4 7F0AE194 AE020004 */ sw $v0, 4($s0) +/* 0E2CC8 7F0AE198 02602025 */ move $a0, $s3 +/* 0E2CCC 7F0AE19C 3C09E800 */ lui $t1, 0xe800 +/* 0E2CD0 7F0AE1A0 AC690000 */ sw $t1, ($v1) +/* 0E2CD4 7F0AE1A4 26730008 */ addiu $s3, $s3, 8 +/* 0E2CD8 7F0AE1A8 AC600004 */ sw $zero, 4($v1) +/* 0E2CDC 7F0AE1AC 3C0BF500 */ lui $t3, (0xF5000110 >> 16) # lui $t3, 0xf500 +/* 0E2CE0 7F0AE1B0 356B0110 */ ori $t3, (0xF5000110 & 0xFFFF) # ori $t3, $t3, 0x110 +/* 0E2CE4 7F0AE1B4 02602825 */ move $a1, $s3 +/* 0E2CE8 7F0AE1B8 26730008 */ addiu $s3, $s3, 8 +/* 0E2CEC 7F0AE1BC AC8B0000 */ sw $t3, ($a0) +/* 0E2CF0 7F0AE1C0 AC920004 */ sw $s2, 4($a0) +/* 0E2CF4 7F0AE1C4 02603025 */ move $a2, $s3 +/* 0E2CF8 7F0AE1C8 3C19E600 */ lui $t9, 0xe600 +/* 0E2CFC 7F0AE1CC ACB90000 */ sw $t9, ($a1) +/* 0E2D00 7F0AE1D0 26730008 */ addiu $s3, $s3, 8 +/* 0E2D04 7F0AE1D4 ACA00004 */ sw $zero, 4($a1) +/* 0E2D08 7F0AE1D8 3C0E0703 */ lui $t6, (0x0703C000 >> 16) # lui $t6, 0x703 +/* 0E2D0C 7F0AE1DC 35CEC000 */ ori $t6, (0x0703C000 & 0xFFFF) # ori $t6, $t6, 0xc000 +/* 0E2D10 7F0AE1E0 02603825 */ move $a3, $s3 +/* 0E2D14 7F0AE1E4 3C0CF000 */ lui $t4, 0xf000 +/* 0E2D18 7F0AE1E8 ACCC0000 */ sw $t4, ($a2) +/* 0E2D1C 7F0AE1EC ACCE0004 */ sw $t6, 4($a2) +/* 0E2D20 7F0AE1F0 ACE00004 */ sw $zero, 4($a3) +/* 0E2D24 7F0AE1F4 ACF10000 */ sw $s1, ($a3) +/* 0E2D28 7F0AE1F8 26730008 */ addiu $s3, $s3, 8 +.L7F0AE1FC: +/* 0E2D2C 7F0AE1FC 02608025 */ move $s0, $s3 +/* 0E2D30 7F0AE200 3C0AFD50 */ lui $t2, 0xfd50 +/* 0E2D34 7F0AE204 AE0A0000 */ sw $t2, ($s0) +/* 0E2D38 7F0AE208 3C120700 */ lui $s2, 0x700 +/* 0E2D3C 7F0AE20C 8FC40014 */ lw $a0, 0x14($fp) +/* 0E2D40 7F0AE210 0C003A2C */ jal osVirtualToPhysical +/* 0E2D44 7F0AE214 26730008 */ addiu $s3, $s3, 8 +/* 0E2D48 7F0AE218 02601825 */ move $v1, $s3 +/* 0E2D4C 7F0AE21C AE020004 */ sw $v0, 4($s0) +/* 0E2D50 7F0AE220 26730008 */ addiu $s3, $s3, 8 +/* 0E2D54 7F0AE224 3C0DF550 */ lui $t5, 0xf550 +/* 0E2D58 7F0AE228 02602025 */ move $a0, $s3 +/* 0E2D5C 7F0AE22C AC6D0000 */ sw $t5, ($v1) +/* 0E2D60 7F0AE230 AC720004 */ sw $s2, 4($v1) +/* 0E2D64 7F0AE234 26730008 */ addiu $s3, $s3, 8 +/* 0E2D68 7F0AE238 3C0FE600 */ lui $t7, 0xe600 +/* 0E2D6C 7F0AE23C AC8F0000 */ sw $t7, ($a0) +/* 0E2D70 7F0AE240 AC800004 */ sw $zero, 4($a0) +/* 0E2D74 7F0AE244 02603025 */ move $a2, $s3 +/* 0E2D78 7F0AE248 3C18F300 */ lui $t8, 0xf300 +/* 0E2D7C 7F0AE24C ACD80000 */ sw $t8, ($a2) +/* 0E2D80 7F0AE250 8FC70008 */ lw $a3, 8($fp) +/* 0E2D84 7F0AE254 26730008 */ addiu $s3, $s3, 8 +/* 0E2D88 7F0AE258 02601025 */ move $v0, $s3 +/* 0E2D8C 7F0AE25C 00074880 */ sll $t1, $a3, 2 +/* 0E2D90 7F0AE260 2527FFFF */ addiu $a3, $t1, -1 +/* 0E2D94 7F0AE264 28E107FF */ slti $at, $a3, 0x7ff +/* 0E2D98 7F0AE268 10200003 */ beqz $at, .L7F0AE278 +/* 0E2D9C 7F0AE26C 26730008 */ addiu $s3, $s3, 8 +/* 0E2DA0 7F0AE270 10000002 */ b .L7F0AE27C +/* 0E2DA4 7F0AE274 00E02825 */ move $a1, $a3 +.L7F0AE278: +/* 0E2DA8 7F0AE278 240507FF */ li $a1, 2047 +.L7F0AE27C: +/* 0E2DAC 7F0AE27C 30AB0FFF */ andi $t3, $a1, 0xfff +/* 0E2DB0 7F0AE280 000BCB00 */ sll $t9, $t3, 0xc +/* 0E2DB4 7F0AE284 03326025 */ or $t4, $t9, $s2 +/* 0E2DB8 7F0AE288 358E0800 */ ori $t6, $t4, 0x800 +/* 0E2DBC 7F0AE28C ACCE0004 */ sw $t6, 4($a2) +/* 0E2DC0 7F0AE290 3C0AF540 */ lui $t2, (0xF5400200 >> 16) # lui $t2, 0xf540 +/* 0E2DC4 7F0AE294 AC400004 */ sw $zero, 4($v0) +/* 0E2DC8 7F0AE298 AC510000 */ sw $s1, ($v0) +/* 0E2DCC 7F0AE29C 354A0200 */ ori $t2, (0xF5400200 & 0xFFFF) # ori $t2, $t2, 0x200 +/* 0E2DD0 7F0AE2A0 02601825 */ move $v1, $s3 +/* 0E2DD4 7F0AE2A4 AC6A0000 */ sw $t2, ($v1) +/* 0E2DD8 7F0AE2A8 8FCF0000 */ lw $t7, ($fp) +/* 0E2DDC 7F0AE2AC 3C010008 */ lui $at, 8 +/* 0E2DE0 7F0AE2B0 26730008 */ addiu $s3, $s3, 8 +/* 0E2DE4 7F0AE2B4 31F80001 */ andi $t8, $t7, 1 +/* 0E2DE8 7F0AE2B8 00184D00 */ sll $t1, $t8, 0x14 +/* 0E2DEC 7F0AE2BC 01215825 */ or $t3, $t1, $at +/* 0E2DF0 7F0AE2C0 35790200 */ ori $t9, $t3, 0x200 +/* 0E2DF4 7F0AE2C4 AC790004 */ sw $t9, 4($v1) +/* 0E2DF8 7F0AE2C8 02602025 */ move $a0, $s3 +/* 0E2DFC 7F0AE2CC 3C0CF200 */ lui $t4, 0xf200 +/* 0E2E00 7F0AE2D0 AC8C0000 */ sw $t4, ($a0) +/* 0E2E04 7F0AE2D4 8FCE0008 */ lw $t6, 8($fp) +/* 0E2E08 7F0AE2D8 3C010003 */ lui $at, (0x0003C000 >> 16) # lui $at, 3 +/* 0E2E0C 7F0AE2DC 3421C000 */ ori $at, (0x0003C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 0E2E10 7F0AE2E0 25CAFFFF */ addiu $t2, $t6, -1 +/* 0E2E14 7F0AE2E4 000A6880 */ sll $t5, $t2, 2 +/* 0E2E18 7F0AE2E8 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2E1C 7F0AE2EC 01E1C025 */ or $t8, $t7, $at +/* 0E2E20 7F0AE2F0 AC980004 */ sw $t8, 4($a0) +/* 0E2E24 7F0AE2F4 26730008 */ addiu $s3, $s3, 8 +.L7F0AE2F8: +/* 0E2E28 7F0AE2F8 8FA20084 */ lw $v0, 0x84($sp) +/* 0E2E2C 7F0AE2FC 02602025 */ move $a0, $s3 +/* 0E2E30 7F0AE300 3C09FA00 */ lui $t1, 0xfa00 +/* 0E2E34 7F0AE304 00026602 */ srl $t4, $v0, 0x18 +/* 0E2E38 7F0AE308 00026C02 */ srl $t5, $v0, 0x10 +/* 0E2E3C 7F0AE30C 31AF00FF */ andi $t7, $t5, 0xff +/* 0E2E40 7F0AE310 000C7600 */ sll $t6, $t4, 0x18 +/* 0E2E44 7F0AE314 000FC400 */ sll $t8, $t7, 0x10 +/* 0E2E48 7F0AE318 AC890000 */ sw $t1, ($a0) +/* 0E2E4C 7F0AE31C 0002CA02 */ srl $t9, $v0, 8 +/* 0E2E50 7F0AE320 332C00FF */ andi $t4, $t9, 0xff +/* 0E2E54 7F0AE324 01D84825 */ or $t1, $t6, $t8 +/* 0E2E58 7F0AE328 000C5200 */ sll $t2, $t4, 8 +/* 0E2E5C 7F0AE32C 012A6825 */ or $t5, $t1, $t2 +/* 0E2E60 7F0AE330 304E00FF */ andi $t6, $v0, 0xff +/* 0E2E64 7F0AE334 01AEC025 */ or $t8, $t5, $t6 +/* 0E2E68 7F0AE338 AC980004 */ sw $t8, 4($a0) +/* 0E2E6C 7F0AE33C 8FAB0064 */ lw $t3, 0x64($sp) +/* 0E2E70 7F0AE340 26730008 */ addiu $s3, $s3, 8 +/* 0E2E74 7F0AE344 2411FFFF */ li $s1, -1 +/* 0E2E78 7F0AE348 24120002 */ li $s2, 2 +/* 0E2E7C 7F0AE34C 8D630000 */ lw $v1, ($t3) +/* 0E2E80 7F0AE350 2410FFFF */ li $s0, -1 +.L7F0AE354: +/* 0E2E84 7F0AE354 16200003 */ bnez $s1, .L7F0AE364 +/* 0E2E88 7F0AE358 00712821 */ addu $a1, $v1, $s1 +/* 0E2E8C 7F0AE35C 5200000E */ beql $s0, $zero, .L7F0AE398 +/* 0E2E90 7F0AE360 26100001 */ addiu $s0, $s0, 1 +.L7F0AE364: +/* 0E2E94 7F0AE364 8FB90050 */ lw $t9, 0x50($sp) +/* 0E2E98 7F0AE368 02602025 */ move $a0, $s3 +/* 0E2E9C 7F0AE36C 03C03825 */ move $a3, $fp +/* 0E2EA0 7F0AE370 AFB40010 */ sw $s4, 0x10($sp) +/* 0E2EA4 7F0AE374 AFB50014 */ sw $s5, 0x14($sp) +/* 0E2EA8 7F0AE378 AFB60018 */ sw $s6, 0x18($sp) +/* 0E2EAC 7F0AE37C AFB7001C */ sw $s7, 0x1c($sp) +/* 0E2EB0 7F0AE380 0FC2B917 */ jal sub_GAME_7F0AE45C +/* 0E2EB4 7F0AE384 03303021 */ addu $a2, $t9, $s0 +/* 0E2EB8 7F0AE388 8FAC0064 */ lw $t4, 0x64($sp) +/* 0E2EBC 7F0AE38C 00409825 */ move $s3, $v0 +/* 0E2EC0 7F0AE390 8D830000 */ lw $v1, ($t4) +/* 0E2EC4 7F0AE394 26100001 */ addiu $s0, $s0, 1 +.L7F0AE398: +/* 0E2EC8 7F0AE398 1612FFEE */ bne $s0, $s2, .L7F0AE354 +/* 0E2ECC 7F0AE39C 00000000 */ nop +/* 0E2ED0 7F0AE3A0 26310001 */ addiu $s1, $s1, 1 +/* 0E2ED4 7F0AE3A4 5632FFEB */ bnel $s1, $s2, .L7F0AE354 +/* 0E2ED8 7F0AE3A8 2410FFFF */ li $s0, -1 +/* 0E2EDC 7F0AE3AC 8FA20080 */ lw $v0, 0x80($sp) +/* 0E2EE0 7F0AE3B0 3C09FA00 */ lui $t1, 0xfa00 +/* 0E2EE4 7F0AE3B4 AE690000 */ sw $t1, ($s3) +/* 0E2EE8 7F0AE3B8 00026E02 */ srl $t5, $v0, 0x18 +/* 0E2EEC 7F0AE3BC 00025C02 */ srl $t3, $v0, 0x10 +/* 0E2EF0 7F0AE3C0 317900FF */ andi $t9, $t3, 0xff +/* 0E2EF4 7F0AE3C4 000D7600 */ sll $t6, $t5, 0x18 +/* 0E2EF8 7F0AE3C8 00196400 */ sll $t4, $t9, 0x10 +/* 0E2EFC 7F0AE3CC 00027A02 */ srl $t7, $v0, 8 +/* 0E2F00 7F0AE3D0 31ED00FF */ andi $t5, $t7, 0xff +/* 0E2F04 7F0AE3D4 01CC4825 */ or $t1, $t6, $t4 +/* 0E2F08 7F0AE3D8 000DC200 */ sll $t8, $t5, 8 +/* 0E2F0C 7F0AE3DC 01385825 */ or $t3, $t1, $t8 +/* 0E2F10 7F0AE3E0 304E00FF */ andi $t6, $v0, 0xff +/* 0E2F14 7F0AE3E4 016E6025 */ or $t4, $t3, $t6 +/* 0E2F18 7F0AE3E8 AE6C0004 */ sw $t4, 4($s3) +/* 0E2F1C 7F0AE3EC 00602825 */ move $a1, $v1 +/* 0E2F20 7F0AE3F0 26640008 */ addiu $a0, $s3, 8 +/* 0E2F24 7F0AE3F4 AFB7001C */ sw $s7, 0x1c($sp) +/* 0E2F28 7F0AE3F8 AFB60018 */ sw $s6, 0x18($sp) +/* 0E2F2C 7F0AE3FC AFB50014 */ sw $s5, 0x14($sp) +/* 0E2F30 7F0AE400 AFB40010 */ sw $s4, 0x10($sp) +/* 0E2F34 7F0AE404 8FA60050 */ lw $a2, 0x50($sp) +/* 0E2F38 7F0AE408 0FC2B917 */ jal sub_GAME_7F0AE45C +/* 0E2F3C 7F0AE40C 03C03825 */ move $a3, $fp +/* 0E2F40 7F0AE410 00409825 */ move $s3, $v0 +.L7F0AE414: +/* 0E2F44 7F0AE414 8FA50064 */ lw $a1, 0x64($sp) +.L7F0AE418: +/* 0E2F48 7F0AE418 8FCF000C */ lw $t7, 0xc($fp) +/* 0E2F4C 7F0AE41C 02601025 */ move $v0, $s3 +/* 0E2F50 7F0AE420 8CAA0000 */ lw $t2, ($a1) +/* 0E2F54 7F0AE424 014F6821 */ addu $t5, $t2, $t7 +/* 0E2F58 7F0AE428 ACAD0000 */ sw $t5, ($a1) +/* 0E2F5C 7F0AE42C 8FBF004C */ lw $ra, 0x4c($sp) +/* 0E2F60 7F0AE430 8FBE0048 */ lw $fp, 0x48($sp) +/* 0E2F64 7F0AE434 8FB70044 */ lw $s7, 0x44($sp) +/* 0E2F68 7F0AE438 8FB60040 */ lw $s6, 0x40($sp) +/* 0E2F6C 7F0AE43C 8FB5003C */ lw $s5, 0x3c($sp) +/* 0E2F70 7F0AE440 8FB40038 */ lw $s4, 0x38($sp) +/* 0E2F74 7F0AE444 8FB30034 */ lw $s3, 0x34($sp) +/* 0E2F78 7F0AE448 8FB20030 */ lw $s2, 0x30($sp) +/* 0E2F7C 7F0AE44C 8FB1002C */ lw $s1, 0x2c($sp) +/* 0E2F80 7F0AE450 8FB00028 */ lw $s0, 0x28($sp) +/* 0E2F84 7F0AE454 03E00008 */ jr $ra +/* 0E2F88 7F0AE458 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AE45C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AE45C +/* 0E2F8C 7F0AE45C 8CEE000C */ lw $t6, 0xc($a3) +/* 0E2F90 7F0AE460 8FAF0010 */ lw $t7, 0x10($sp) +/* 0E2F94 7F0AE464 8FB80018 */ lw $t8, 0x18($sp) +/* 0E2F98 7F0AE468 01C51021 */ addu $v0, $t6, $a1 +/* 0E2F9C 7F0AE46C 01F8C821 */ addu $t9, $t7, $t8 +/* 0E2FA0 7F0AE470 0322082A */ slt $at, $t9, $v0 +/* 0E2FA4 7F0AE474 1420009B */ bnez $at, .L7F0AE6E4 +/* 0E2FA8 7F0AE478 00000000 */ nop +/* 0E2FAC 7F0AE47C 8CE30004 */ lw $v1, 4($a3) +/* 0E2FB0 7F0AE480 8FA90014 */ lw $t1, 0x14($sp) +/* 0E2FB4 7F0AE484 8FAC001C */ lw $t4, 0x1c($sp) +/* 0E2FB8 7F0AE488 00664021 */ addu $t0, $v1, $a2 +/* 0E2FBC 7F0AE48C 0109082A */ slt $at, $t0, $t1 +/* 0E2FC0 7F0AE490 5420006E */ bnezl $at, .L7F0AE64C +/* 0E2FC4 7F0AE494 8CEF0008 */ lw $t7, 8($a3) +/* 0E2FC8 7F0AE498 8CED0008 */ lw $t5, 8($a3) +/* 0E2FCC 7F0AE49C 012C5021 */ addu $t2, $t1, $t4 +/* 0E2FD0 7F0AE4A0 3C0E8004 */ lui $t6, %hi(text_orientation) +/* 0E2FD4 7F0AE4A4 010D5821 */ addu $t3, $t0, $t5 +/* 0E2FD8 7F0AE4A8 014B082A */ slt $at, $t2, $t3 +/* 0E2FDC 7F0AE4AC 54200047 */ bnezl $at, .L7F0AE5CC +/* 0E2FE0 7F0AE4B0 0148082A */ slt $at, $t2, $t0 +/* 0E2FE4 7F0AE4B4 8DCE0E88 */ lw $t6, %lo(text_orientation)($t6) +/* 0E2FE8 7F0AE4B8 0002C080 */ sll $t8, $v0, 2 +/* 0E2FEC 7F0AE4BC 330C0FFF */ andi $t4, $t8, 0xfff +/* 0E2FF0 7F0AE4C0 11C00026 */ beqz $t6, .L7F0AE55C +/* 0E2FF4 7F0AE4C4 24880008 */ addiu $t0, $a0, 8 +/* 0E2FF8 7F0AE4C8 00C37823 */ subu $t7, $a2, $v1 +/* 0E2FFC 7F0AE4CC 000FC080 */ sll $t8, $t7, 2 +/* 0E3000 7F0AE4D0 33190FFF */ andi $t9, $t8, 0xfff +/* 0E3004 7F0AE4D4 00196300 */ sll $t4, $t9, 0xc +/* 0E3008 7F0AE4D8 3C01E500 */ lui $at, 0xe500 +/* 0E300C 7F0AE4DC 00027080 */ sll $t6, $v0, 2 +/* 0E3010 7F0AE4E0 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E3014 7F0AE4E4 01816825 */ or $t5, $t4, $at +/* 0E3018 7F0AE4E8 01AFC025 */ or $t8, $t5, $t7 +/* 0E301C 7F0AE4EC AC980000 */ sw $t8, ($a0) +/* 0E3020 7F0AE4F0 8CF90004 */ lw $t9, 4($a3) +/* 0E3024 7F0AE4F4 8CEE0008 */ lw $t6, 8($a3) +/* 0E3028 7F0AE4F8 24890008 */ addiu $t1, $a0, 8 +/* 0E302C 7F0AE4FC 00D96023 */ subu $t4, $a2, $t9 +/* 0E3030 7F0AE500 018E6823 */ subu $t5, $t4, $t6 +/* 0E3034 7F0AE504 000D7880 */ sll $t7, $t5, 2 +/* 0E3038 7F0AE508 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E303C 7F0AE50C 00056080 */ sll $t4, $a1, 2 +/* 0E3040 7F0AE510 318E0FFF */ andi $t6, $t4, 0xfff +/* 0E3044 7F0AE514 0018CB00 */ sll $t9, $t8, 0xc +/* 0E3048 7F0AE518 032E6825 */ or $t5, $t9, $t6 +/* 0E304C 7F0AE51C AC8D0004 */ sw $t5, 4($a0) +/* 0E3050 7F0AE520 3C0FB400 */ lui $t7, 0xb400 +/* 0E3054 7F0AE524 AD2F0000 */ sw $t7, ($t1) +/* 0E3058 7F0AE528 8CF80008 */ lw $t8, 8($a3) +/* 0E305C 7F0AE52C 3C0F0400 */ lui $t7, (0x0400FC00 >> 16) # lui $t7, 0x400 +/* 0E3060 7F0AE530 252A0008 */ addiu $t2, $t1, 8 +/* 0E3064 7F0AE534 270CFFFF */ addiu $t4, $t8, -1 +/* 0E3068 7F0AE538 000CC940 */ sll $t9, $t4, 5 +/* 0E306C 7F0AE53C 332EFFFF */ andi $t6, $t9, 0xffff +/* 0E3070 7F0AE540 AD2E0004 */ sw $t6, 4($t1) +/* 0E3074 7F0AE544 35EFFC00 */ ori $t7, (0x0400FC00 & 0xFFFF) # ori $t7, $t7, 0xfc00 +/* 0E3078 7F0AE548 3C0DB300 */ lui $t5, 0xb300 +/* 0E307C 7F0AE54C AD4D0000 */ sw $t5, ($t2) +/* 0E3080 7F0AE550 AD4F0004 */ sw $t7, 4($t2) +/* 0E3084 7F0AE554 03E00008 */ jr $ra +/* 0E3088 7F0AE558 25420008 */ addiu $v0, $t2, 8 + +.L7F0AE55C: +/* 0E308C 7F0AE55C 000CCB00 */ sll $t9, $t4, 0xc +/* 0E3090 7F0AE560 3C01E400 */ lui $at, 0xe400 +/* 0E3094 7F0AE564 000B6880 */ sll $t5, $t3, 2 +/* 0E3098 7F0AE568 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E309C 7F0AE56C 03217025 */ or $t6, $t9, $at +/* 0E30A0 7F0AE570 01CFC025 */ or $t8, $t6, $t7 +/* 0E30A4 7F0AE574 AC980000 */ sw $t8, ($a0) +/* 0E30A8 7F0AE578 8CEE0004 */ lw $t6, 4($a3) +/* 0E30AC 7F0AE57C 00056080 */ sll $t4, $a1, 2 +/* 0E30B0 7F0AE580 31990FFF */ andi $t9, $t4, 0xfff +/* 0E30B4 7F0AE584 00CE7821 */ addu $t7, $a2, $t6 +/* 0E30B8 7F0AE588 000FC080 */ sll $t8, $t7, 2 +/* 0E30BC 7F0AE58C 330C0FFF */ andi $t4, $t8, 0xfff +/* 0E30C0 7F0AE590 00196B00 */ sll $t5, $t9, 0xc +/* 0E30C4 7F0AE594 01ACC825 */ or $t9, $t5, $t4 +/* 0E30C8 7F0AE598 AC990004 */ sw $t9, 4($a0) +/* 0E30CC 7F0AE59C 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0E30D0 7F0AE5A0 3C0EB400 */ lui $t6, 0xb400 +/* 0E30D4 7F0AE5A4 25090008 */ addiu $t1, $t0, 8 +/* 0E30D8 7F0AE5A8 AD0E0000 */ sw $t6, ($t0) +/* 0E30DC 7F0AE5AC 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0E30E0 7F0AE5B0 AD000004 */ sw $zero, 4($t0) +/* 0E30E4 7F0AE5B4 3C0FB300 */ lui $t7, 0xb300 +/* 0E30E8 7F0AE5B8 AD2F0000 */ sw $t7, ($t1) +/* 0E30EC 7F0AE5BC AD380004 */ sw $t8, 4($t1) +/* 0E30F0 7F0AE5C0 03E00008 */ jr $ra +/* 0E30F4 7F0AE5C4 25220008 */ addiu $v0, $t1, 8 + +/* 0E30F8 7F0AE5C8 0148082A */ slt $at, $t2, $t0 +.L7F0AE5CC: +/* 0E30FC 7F0AE5CC 14200045 */ bnez $at, .L7F0AE6E4 +/* 0E3100 7F0AE5D0 24880008 */ addiu $t0, $a0, 8 +/* 0E3104 7F0AE5D4 00026880 */ sll $t5, $v0, 2 +/* 0E3108 7F0AE5D8 31AC0FFF */ andi $t4, $t5, 0xfff +/* 0E310C 7F0AE5DC 000CCB00 */ sll $t9, $t4, 0xc +/* 0E3110 7F0AE5E0 3C01E400 */ lui $at, 0xe400 +/* 0E3114 7F0AE5E4 000A7880 */ sll $t7, $t2, 2 +/* 0E3118 7F0AE5E8 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E311C 7F0AE5EC 03217025 */ or $t6, $t9, $at +/* 0E3120 7F0AE5F0 01D86825 */ or $t5, $t6, $t8 +/* 0E3124 7F0AE5F4 AC8D0000 */ sw $t5, ($a0) +/* 0E3128 7F0AE5F8 8CEE0004 */ lw $t6, 4($a3) +/* 0E312C 7F0AE5FC 00056080 */ sll $t4, $a1, 2 +/* 0E3130 7F0AE600 31990FFF */ andi $t9, $t4, 0xfff +/* 0E3134 7F0AE604 00CEC021 */ addu $t8, $a2, $t6 +/* 0E3138 7F0AE608 00186880 */ sll $t5, $t8, 2 +/* 0E313C 7F0AE60C 31AC0FFF */ andi $t4, $t5, 0xfff +/* 0E3140 7F0AE610 00197B00 */ sll $t7, $t9, 0xc +/* 0E3144 7F0AE614 01ECC825 */ or $t9, $t7, $t4 +/* 0E3148 7F0AE618 AC990004 */ sw $t9, 4($a0) +/* 0E314C 7F0AE61C 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 0E3150 7F0AE620 3C0EB400 */ lui $t6, 0xb400 +/* 0E3154 7F0AE624 25090008 */ addiu $t1, $t0, 8 +/* 0E3158 7F0AE628 AD0E0000 */ sw $t6, ($t0) +/* 0E315C 7F0AE62C 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0E3160 7F0AE630 AD000004 */ sw $zero, 4($t0) +/* 0E3164 7F0AE634 3C18B300 */ lui $t8, 0xb300 +/* 0E3168 7F0AE638 AD380000 */ sw $t8, ($t1) +/* 0E316C 7F0AE63C AD2D0004 */ sw $t5, 4($t1) +/* 0E3170 7F0AE640 03E00008 */ jr $ra +/* 0E3174 7F0AE644 25220008 */ addiu $v0, $t1, 8 + +/* 0E3178 7F0AE648 8CEF0008 */ lw $t7, 8($a3) +.L7F0AE64C: +/* 0E317C 7F0AE64C 00026080 */ sll $t4, $v0, 2 +/* 0E3180 7F0AE650 31990FFF */ andi $t9, $t4, 0xfff +/* 0E3184 7F0AE654 010F5821 */ addu $t3, $t0, $t7 +/* 0E3188 7F0AE658 0169082A */ slt $at, $t3, $t1 +/* 0E318C 7F0AE65C 14200021 */ bnez $at, .L7F0AE6E4 +/* 0E3190 7F0AE660 00801825 */ move $v1, $a0 +/* 0E3194 7F0AE664 00197300 */ sll $t6, $t9, 0xc +/* 0E3198 7F0AE668 3C01E400 */ lui $at, 0xe400 +/* 0E319C 7F0AE66C 000B6880 */ sll $t5, $t3, 2 +/* 0E31A0 7F0AE670 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E31A4 7F0AE674 01C1C025 */ or $t8, $t6, $at +/* 0E31A8 7F0AE678 030F6025 */ or $t4, $t8, $t7 +/* 0E31AC 7F0AE67C 0005C880 */ sll $t9, $a1, 2 +/* 0E31B0 7F0AE680 332E0FFF */ andi $t6, $t9, 0xfff +/* 0E31B4 7F0AE684 0009C080 */ sll $t8, $t1, 2 +/* 0E31B8 7F0AE688 330F0FFF */ andi $t7, $t8, 0xfff +/* 0E31BC 7F0AE68C 000E6B00 */ sll $t5, $t6, 0xc +/* 0E31C0 7F0AE690 AC6C0000 */ sw $t4, ($v1) +/* 0E31C4 7F0AE694 01AF6025 */ or $t4, $t5, $t7 +/* 0E31C8 7F0AE698 24840008 */ addiu $a0, $a0, 8 +/* 0E31CC 7F0AE69C 00804025 */ move $t0, $a0 +/* 0E31D0 7F0AE6A0 AC6C0004 */ sw $t4, 4($v1) +/* 0E31D4 7F0AE6A4 3C19B400 */ lui $t9, 0xb400 +/* 0E31D8 7F0AE6A8 AD190000 */ sw $t9, ($t0) +/* 0E31DC 7F0AE6AC 8CEE0004 */ lw $t6, 4($a3) +/* 0E31E0 7F0AE6B0 24840008 */ addiu $a0, $a0, 8 +/* 0E31E4 7F0AE6B4 00805025 */ move $t2, $a0 +/* 0E31E8 7F0AE6B8 012EC023 */ subu $t8, $t1, $t6 +/* 0E31EC 7F0AE6BC 03066823 */ subu $t5, $t8, $a2 +/* 0E31F0 7F0AE6C0 000D7940 */ sll $t7, $t5, 5 +/* 0E31F4 7F0AE6C4 31ECFFFF */ andi $t4, $t7, 0xffff +/* 0E31F8 7F0AE6C8 AD0C0004 */ sw $t4, 4($t0) +/* 0E31FC 7F0AE6CC 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 +/* 0E3200 7F0AE6D0 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 +/* 0E3204 7F0AE6D4 3C19B300 */ lui $t9, 0xb300 +/* 0E3208 7F0AE6D8 AD590000 */ sw $t9, ($t2) +/* 0E320C 7F0AE6DC AD4E0004 */ sw $t6, 4($t2) +/* 0E3210 7F0AE6E0 24840008 */ addiu $a0, $a0, 8 +.L7F0AE6E4: +/* 0E3214 7F0AE6E4 03E00008 */ jr $ra +/* 0E3218 7F0AE6E8 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void jp_text_write_stuff(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel jp_text_write_stuff +/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1 +/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp) +/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp) +/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp) +/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp) +/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp) +/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp) +/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp) +/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp) +/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp) +/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp) +/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp) +/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2) +/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1) +/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3 +/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1 +/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2 +/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0 +/* 0E3270 7F0AE740 24140048 */ li $s4, 72 +/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760 +/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp) +/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9) +/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9) +/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1 +/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp) +.L7F0AE760: +/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74 +/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784 +/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe +/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784 +/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14 +/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp) +.L7F0AE784: +/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0) +/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp) +/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958 +/* 0E32C4 7F0AE794 24010020 */ li $at, 32 +.L7F0AE798: +/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC +/* 0E32CC 7F0AE79C 2401000A */ li $at, 10 +/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1) +/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72 +/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1 +/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5 +/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C +/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1) +/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10 +.L7F0AE7BC: +/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8 +/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80 +/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1) +/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3) +/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72 +/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1 +/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9 +/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C +/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3) +/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80 +.L7F0AE7E8: +/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870 +/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14) +/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24 +/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1 +/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp) +/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp) +/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp) +/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5 +/* 0E3344 7F0AE814 02202825 */ move $a1, $s1 +/* 0E3348 7F0AE818 02603025 */ move $a2, $s3 +/* 0E334C 7F0AE81C 00004812 */ mflo $t1 +/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2 +/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1 +/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp) +/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp) +/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp) +/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp) +/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp) +/* 0E337C 7F0AE84C 00005812 */ mflo $t3 +/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2 +/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318 +/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp) +/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0 +/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0) +/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C +/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1 +.L7F0AE870: +/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14) +/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6) +/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0) +/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f +/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2) +/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6) +/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7 +/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f +/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2) +/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6) +/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4 +/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2) +/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000 +/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff +/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2) +/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6) +/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15 +/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16 +/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2) +/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c7 +/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC +/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2) +/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp) +/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0AE8DC: +/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC +/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80 +/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2 +/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80 +.L7F0AE8EC: +/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX +/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp) +/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp) +/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp) +/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5 +/* 0E3440 7F0AE910 02202825 */ move $a1, $s1 +/* 0E3444 7F0AE914 02603025 */ move $a2, $s3 +/* 0E3448 7F0AE918 02403825 */ move $a3, $s2 +/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp) +/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp) +/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp) +/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0 +/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2 +.L7F0AE94C: +/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0) +/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798 +/* 0E3484 7F0AE954 24010020 */ li $at, 32 +.L7F0AE958: +/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp) +/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5 +/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp) +/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp) +/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp) +/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp) +/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp) +/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp) +/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp) +/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp) +/* 0E34B4 7F0AE984 03E00008 */ jr $ra +/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel jp_text_write_stuff +/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1 +/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp) +/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp) +/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp) +/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp) +/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp) +/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp) +/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp) +/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp) +/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp) +/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp) +/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp) +/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2) +/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1) +/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3 +/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1 +/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2 +/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0 +/* 0E3270 7F0AE740 24140048 */ li $s4, 72 +/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760 +/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp) +/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9) +/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9) +/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1 +/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp) +.L7F0AE760: +/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74 +/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784 +/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe +/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784 +/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14 +/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp) +.L7F0AE784: +/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0) +/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp) +/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958 +/* 0E32C4 7F0AE794 24010020 */ li $at, 32 +.L7F0AE798: +/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC +/* 0E32CC 7F0AE79C 2401000A */ li $at, 10 +/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1) +/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72 +/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1 +/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5 +/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C +/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1) +/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10 +.L7F0AE7BC: +/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8 +/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80 +/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1) +/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3) +/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72 +/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1 +/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9 +/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C +/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3) +/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80 +.L7F0AE7E8: +/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870 +/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14) +/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24 +/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1 +/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp) +/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp) +/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp) +/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5 +/* 0E3344 7F0AE814 02202825 */ move $a1, $s1 +/* 0E3348 7F0AE818 02603025 */ move $a2, $s3 +/* 0E334C 7F0AE81C 00004812 */ mflo $t1 +/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2 +/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1 +/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp) +/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp) +/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp) +/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp) +/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp) +/* 0E337C 7F0AE84C 00005812 */ mflo $t3 +/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2 +/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318 +/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp) +/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0 +/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0) +/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C +/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1 +.L7F0AE870: +/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14) +/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6) +/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0) +/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f +/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2) +/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6) +/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7 +/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f +/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2) +/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6) +/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4 +/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2) +/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000 +/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff +/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2) +/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6) +/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15 +/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16 +/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2) +/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c8 +/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC +/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2) +/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp) +/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0AE8DC: +/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC +/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80 +/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2 +/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80 +.L7F0AE8EC: +/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX +/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp) +/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp) +/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp) +/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5 +/* 0E3440 7F0AE910 02202825 */ move $a1, $s1 +/* 0E3444 7F0AE914 02603025 */ move $a2, $s3 +/* 0E3448 7F0AE918 02403825 */ move $a3, $s2 +/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp) +/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp) +/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp) +/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0 +/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2 +.L7F0AE94C: +/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0) +/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798 +/* 0E3484 7F0AE954 24010020 */ li $at, 32 +.L7F0AE958: +/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp) +/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5 +/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp) +/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp) +/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp) +/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp) +/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp) +/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp) +/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp) +/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp) +/* 0E34B4 7F0AE984 03E00008 */ jr $ra +/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AE98C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AE98C +/* 0E34BC 7F0AE98C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E34C0 7F0AE990 AFB00008 */ sw $s0, 8($sp) +/* 0E34C4 7F0AE994 8FB0002C */ lw $s0, 0x2c($sp) +/* 0E34C8 7F0AE998 AFB30014 */ sw $s3, 0x14($sp) +/* 0E34CC 7F0AE99C AFB20010 */ sw $s2, 0x10($sp) +/* 0E34D0 7F0AE9A0 AFB1000C */ sw $s1, 0xc($sp) +/* 0E34D4 7F0AE9A4 AC800000 */ sw $zero, ($a0) +/* 0E34D8 7F0AE9A8 24020048 */ li $v0, 72 +/* 0E34DC 7F0AE9AC 00004025 */ move $t0, $zero +/* 0E34E0 7F0AE9B0 16000004 */ bnez $s0, .L7F0AE9C4 +/* 0E34E4 7F0AE9B4 ACA00000 */ sw $zero, ($a1) +/* 0E34E8 7F0AE9B8 8CEE0890 */ lw $t6, 0x890($a3) +/* 0E34EC 7F0AE9BC 8CEF088C */ lw $t7, 0x88c($a3) +/* 0E34F0 7F0AE9C0 01CF8021 */ addu $s0, $t6, $t7 +.L7F0AE9C4: +/* 0E34F4 7F0AE9C4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0E34F8 7F0AE9C8 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0E34FC 7F0AE9CC 3C138004 */ lui $s3, %hi(text_spacing) +/* 0E3500 7F0AE9D0 2A01000E */ slti $at, $s0, 0xe +/* 0E3504 7F0AE9D4 13000004 */ beqz $t8, .L7F0AE9E8 +/* 0E3508 7F0AE9D8 26730E84 */ addiu $s3, %lo(text_spacing) # addiu $s3, $s3, 0xe84 +/* 0E350C 7F0AE9DC 50200003 */ beql $at, $zero, .L7F0AE9EC +/* 0E3510 7F0AE9E0 90C90000 */ lbu $t1, ($a2) +/* 0E3514 7F0AE9E4 2410000E */ li $s0, 14 +.L7F0AE9E8: +/* 0E3518 7F0AE9E8 90C90000 */ lbu $t1, ($a2) +.L7F0AE9EC: +/* 0E351C 7F0AE9EC 2412000D */ li $s2, 13 +/* 0E3520 7F0AE9F0 24110018 */ li $s1, 24 +/* 0E3524 7F0AE9F4 11200050 */ beqz $t1, .L7F0AEB38 +/* 0E3528 7F0AE9F8 240D000A */ li $t5, 10 +/* 0E352C 7F0AE9FC 240C0020 */ li $t4, 32 +/* 0E3530 7F0AEA00 8FAA0028 */ lw $t2, 0x28($sp) +.L7F0AEA04: +/* 0E3534 7F0AEA04 1589000A */ bne $t4, $t1, .L7F0AEA30 +/* 0E3538 7F0AEA08 00000000 */ nop +/* 0E353C 7F0AEA0C 90D90001 */ lbu $t9, 1($a2) +/* 0E3540 7F0AEA10 24020048 */ li $v0, 72 +/* 0E3544 7F0AEA14 11B90004 */ beq $t5, $t9, .L7F0AEA28 +/* 0E3548 7F0AEA18 00000000 */ nop +/* 0E354C 7F0AEA1C 8CAE0000 */ lw $t6, ($a1) +/* 0E3550 7F0AEA20 25CF0005 */ addiu $t7, $t6, 5 +/* 0E3554 7F0AEA24 ACAF0000 */ sw $t7, ($a1) +.L7F0AEA28: +/* 0E3558 7F0AEA28 10000040 */ b .L7F0AEB2C +/* 0E355C 7F0AEA2C 24C60001 */ addiu $a2, $a2, 1 +.L7F0AEA30: +/* 0E3560 7F0AEA30 15A9000C */ bne $t5, $t1, .L7F0AEA64 +/* 0E3564 7F0AEA34 29210080 */ slti $at, $t1, 0x80 +/* 0E3568 7F0AEA38 8CA30000 */ lw $v1, ($a1) +/* 0E356C 7F0AEA3C 0103082A */ slt $at, $t0, $v1 +/* 0E3570 7F0AEA40 50200003 */ beql $at, $zero, .L7F0AEA50 +/* 0E3574 7F0AEA44 ACA00000 */ sw $zero, ($a1) +/* 0E3578 7F0AEA48 00604025 */ move $t0, $v1 +/* 0E357C 7F0AEA4C ACA00000 */ sw $zero, ($a1) +.L7F0AEA50: +/* 0E3580 7F0AEA50 8C980000 */ lw $t8, ($a0) +/* 0E3584 7F0AEA54 24C60001 */ addiu $a2, $a2, 1 +/* 0E3588 7F0AEA58 0310C821 */ addu $t9, $t8, $s0 +/* 0E358C 7F0AEA5C 10000033 */ b .L7F0AEB2C +/* 0E3590 7F0AEA60 AC990000 */ sw $t9, ($a0) +.L7F0AEA64: +/* 0E3594 7F0AEA64 5020001C */ beql $at, $zero, .L7F0AEAD8 +/* 0E3598 7F0AEA68 292100C0 */ slti $at, $t1, 0xc0 +/* 0E359C 7F0AEA6C 01310019 */ multu $t1, $s1 +/* 0E35A0 7F0AEA70 24C60001 */ addiu $a2, $a2, 1 +/* 0E35A4 7F0AEA74 00007012 */ mflo $t6 +/* 0E35A8 7F0AEA78 00EE5821 */ addu $t3, $a3, $t6 +/* 0E35AC 7F0AEA7C 8D6FFCF8 */ lw $t7, -0x308($t3) +/* 0E35B0 7F0AEA80 00510019 */ multu $v0, $s1 +/* 0E35B4 7F0AEA84 000FC080 */ sll $t8, $t7, 2 +/* 0E35B8 7F0AEA88 0158C821 */ addu $t9, $t2, $t8 +/* 0E35BC 7F0AEA8C 00007012 */ mflo $t6 +/* 0E35C0 7F0AEA90 00EE7821 */ addu $t7, $a3, $t6 +/* 0E35C4 7F0AEA94 8DF8FCF8 */ lw $t8, -0x308($t7) +/* 0E35C8 7F0AEA98 03120019 */ multu $t8, $s2 +/* 0E35CC 7F0AEA9C 00007012 */ mflo $t6 +/* 0E35D0 7F0AEAA0 000E7880 */ sll $t7, $t6, 2 +/* 0E35D4 7F0AEAA4 032FC021 */ addu $t8, $t9, $t7 +/* 0E35D8 7F0AEAA8 8F0E0000 */ lw $t6, ($t8) +/* 0E35DC 7F0AEAAC 8E790000 */ lw $t9, ($s3) +/* 0E35E0 7F0AEAB0 8D78FCF4 */ lw $t8, -0x30c($t3) +/* 0E35E4 7F0AEAB4 8CAF0000 */ lw $t7, ($a1) +/* 0E35E8 7F0AEAB8 01D91821 */ addu $v1, $t6, $t9 +/* 0E35EC 7F0AEABC 2463FFFF */ addiu $v1, $v1, -1 +/* 0E35F0 7F0AEAC0 01F87021 */ addu $t6, $t7, $t8 +/* 0E35F4 7F0AEAC4 01C3C823 */ subu $t9, $t6, $v1 +/* 0E35F8 7F0AEAC8 ACB90000 */ sw $t9, ($a1) +/* 0E35FC 7F0AEACC 10000017 */ b .L7F0AEB2C +/* 0E3600 7F0AEAD0 90C2FFFF */ lbu $v0, -1($a2) +/* 0E3604 7F0AEAD4 292100C0 */ slti $at, $t1, 0xc0 +.L7F0AEAD8: +/* 0E3608 7F0AEAD8 5020000C */ beql $at, $zero, .L7F0AEB0C +/* 0E360C 7F0AEADC 8D580000 */ lw $t8, ($t2) +/* 0E3610 7F0AEAE0 8D4F0000 */ lw $t7, ($t2) +/* 0E3614 7F0AEAE4 8E780000 */ lw $t8, ($s3) +/* 0E3618 7F0AEAE8 8CAE0000 */ lw $t6, ($a1) +/* 0E361C 7F0AEAEC 24C60002 */ addiu $a2, $a2, 2 +/* 0E3620 7F0AEAF0 01F81821 */ addu $v1, $t7, $t8 +/* 0E3624 7F0AEAF4 2463FFFF */ addiu $v1, $v1, -1 +/* 0E3628 7F0AEAF8 01C3C823 */ subu $t9, $t6, $v1 +/* 0E362C 7F0AEAFC 272F000B */ addiu $t7, $t9, 0xb +/* 0E3630 7F0AEB00 1000000A */ b .L7F0AEB2C +/* 0E3634 7F0AEB04 ACAF0000 */ sw $t7, ($a1) +/* 0E3638 7F0AEB08 8D580000 */ lw $t8, ($t2) +.L7F0AEB0C: +/* 0E363C 7F0AEB0C 8E6E0000 */ lw $t6, ($s3) +/* 0E3640 7F0AEB10 8CB90000 */ lw $t9, ($a1) +/* 0E3644 7F0AEB14 24C60002 */ addiu $a2, $a2, 2 +/* 0E3648 7F0AEB18 030E1821 */ addu $v1, $t8, $t6 +/* 0E364C 7F0AEB1C 2463FFFF */ addiu $v1, $v1, -1 +/* 0E3650 7F0AEB20 03237823 */ subu $t7, $t9, $v1 +/* 0E3654 7F0AEB24 25F8000F */ addiu $t8, $t7, 0xf +/* 0E3658 7F0AEB28 ACB80000 */ sw $t8, ($a1) +.L7F0AEB2C: +/* 0E365C 7F0AEB2C 90C90000 */ lbu $t1, ($a2) +/* 0E3660 7F0AEB30 1520FFB4 */ bnez $t1, .L7F0AEA04 +/* 0E3664 7F0AEB34 00000000 */ nop +.L7F0AEB38: +/* 0E3668 7F0AEB38 8CAE0000 */ lw $t6, ($a1) +/* 0E366C 7F0AEB3C 01C8082A */ slt $at, $t6, $t0 +/* 0E3670 7F0AEB40 50200003 */ beql $at, $zero, .L7F0AEB50 +/* 0E3674 7F0AEB44 8FB00008 */ lw $s0, 8($sp) +/* 0E3678 7F0AEB48 ACA80000 */ sw $t0, ($a1) +/* 0E367C 7F0AEB4C 8FB00008 */ lw $s0, 8($sp) +.L7F0AEB50: +/* 0E3680 7F0AEB50 8FB1000C */ lw $s1, 0xc($sp) +/* 0E3684 7F0AEB54 8FB20010 */ lw $s2, 0x10($sp) +/* 0E3688 7F0AEB58 8FB30014 */ lw $s3, 0x14($sp) +/* 0E368C 7F0AEB5C 03E00008 */ jr $ra +/* 0E3690 7F0AEB60 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AEB64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AEB64 +/* 0E3694 7F0AEB64 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0E3698 7F0AEB68 AFB40030 */ sw $s4, 0x30($sp) +/* 0E369C 7F0AEB6C AFB3002C */ sw $s3, 0x2c($sp) +/* 0E36A0 7F0AEB70 AFB20028 */ sw $s2, 0x28($sp) +/* 0E36A4 7F0AEB74 AFB00020 */ sw $s0, 0x20($sp) +/* 0E36A8 7F0AEB78 00C08025 */ move $s0, $a2 +/* 0E36AC 7F0AEB7C 00A09025 */ move $s2, $a1 +/* 0E36B0 7F0AEB80 00E09825 */ move $s3, $a3 +/* 0E36B4 7F0AEB84 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E36B8 7F0AEB88 AFB10024 */ sw $s1, 0x24($sp) +/* 0E36BC 7F0AEB8C AFA40090 */ sw $a0, 0x90($sp) +/* 0E36C0 7F0AEB90 00005825 */ move $t3, $zero +/* 0E36C4 7F0AEB94 AFA0007C */ sw $zero, 0x7c($sp) +/* 0E36C8 7F0AEB98 240D0001 */ li $t5, 1 +/* 0E36CC 7F0AEB9C 27B4004C */ addiu $s4, $sp, 0x4c +/* 0E36D0 7F0AEBA0 240A0018 */ li $t2, 24 +.L7F0AEBA4: +/* 0E36D4 7F0AEBA4 AFA00080 */ sw $zero, 0x80($sp) +/* 0E36D8 7F0AEBA8 92440000 */ lbu $a0, ($s2) +/* 0E36DC 7F0AEBAC 00008825 */ move $s1, $zero +/* 0E36E0 7F0AEBB0 00001825 */ move $v1, $zero +/* 0E36E4 7F0AEBB4 28810021 */ slti $at, $a0, 0x21 +/* 0E36E8 7F0AEBB8 1420001E */ bnez $at, .L7F0AEC34 +/* 0E36EC 7F0AEBBC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0E36F0 7F0AEBC0 27A2004C */ addiu $v0, $sp, 0x4c +/* 0E36F4 7F0AEBC4 A0440000 */ sb $a0, ($v0) +.L7F0AEBC8: +/* 0E36F8 7F0AEBC8 924E0000 */ lbu $t6, ($s2) +/* 0E36FC 7F0AEBCC 26520001 */ addiu $s2, $s2, 1 +/* 0E3700 7F0AEBD0 26310001 */ addiu $s1, $s1, 1 +/* 0E3704 7F0AEBD4 01CA0019 */ multu $t6, $t2 +/* 0E3708 7F0AEBD8 904E0000 */ lbu $t6, ($v0) +/* 0E370C 7F0AEBDC 24420001 */ addiu $v0, $v0, 1 +/* 0E3710 7F0AEBE0 29C10080 */ slti $at, $t6, 0x80 +/* 0E3714 7F0AEBE4 00007812 */ mflo $t7 +/* 0E3718 7F0AEBE8 026FC021 */ addu $t8, $s3, $t7 +/* 0E371C 7F0AEBEC 8F19FCF4 */ lw $t9, -0x30c($t8) +/* 0E3720 7F0AEBF0 1420000C */ bnez $at, .L7F0AEC24 +/* 0E3724 7F0AEBF4 00791821 */ addu $v1, $v1, $t9 +/* 0E3728 7F0AEBF8 924F0000 */ lbu $t7, ($s2) +/* 0E372C 7F0AEBFC 26520001 */ addiu $s2, $s2, 1 +/* 0E3730 7F0AEC00 26310001 */ addiu $s1, $s1, 1 +/* 0E3734 7F0AEC04 A04F0000 */ sb $t7, ($v0) +/* 0E3738 7F0AEC08 9258FFFF */ lbu $t8, -1($s2) +/* 0E373C 7F0AEC0C 24420001 */ addiu $v0, $v0, 1 +/* 0E3740 7F0AEC10 030A0019 */ multu $t8, $t2 +/* 0E3744 7F0AEC14 0000C812 */ mflo $t9 +/* 0E3748 7F0AEC18 02797021 */ addu $t6, $s3, $t9 +/* 0E374C 7F0AEC1C 8DCFFCF4 */ lw $t7, -0x30c($t6) +/* 0E3750 7F0AEC20 006F1821 */ addu $v1, $v1, $t7 +.L7F0AEC24: +/* 0E3754 7F0AEC24 92440000 */ lbu $a0, ($s2) +/* 0E3758 7F0AEC28 28810021 */ slti $at, $a0, 0x21 +/* 0E375C 7F0AEC2C 5020FFE6 */ beql $at, $zero, .L7F0AEBC8 +/* 0E3760 7F0AEC30 A0440000 */ sb $a0, ($v0) +.L7F0AEC34: +/* 0E3764 7F0AEC34 0291C021 */ addu $t8, $s4, $s1 +/* 0E3768 7F0AEC38 A3000000 */ sb $zero, ($t8) +/* 0E376C 7F0AEC3C 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0E3770 7F0AEC40 AFAD0078 */ sw $t5, 0x78($sp) +/* 0E3774 7F0AEC44 AFAB008C */ sw $t3, 0x8c($sp) +/* 0E3778 7F0AEC48 AFA00014 */ sw $zero, 0x14($sp) +/* 0E377C 7F0AEC4C 27A4007C */ addiu $a0, $sp, 0x7c +/* 0E3780 7F0AEC50 02803025 */ move $a2, $s4 +/* 0E3784 7F0AEC54 02603825 */ move $a3, $s3 +/* 0E3788 7F0AEC58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E378C 7F0AEC5C AFB90010 */ sw $t9, 0x10($sp) +/* 0E3790 7F0AEC60 8FAB008C */ lw $t3, 0x8c($sp) +/* 0E3794 7F0AEC64 8FAE0080 */ lw $t6, 0x80($sp) +/* 0E3798 7F0AEC68 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E379C 7F0AEC6C 3C088004 */ lui $t0, %hi(text_wordwrap) +/* 0E37A0 7F0AEC70 016E5821 */ addu $t3, $t3, $t6 +/* 0E37A4 7F0AEC74 01EB082A */ slt $at, $t7, $t3 +/* 0E37A8 7F0AEC78 25080E8C */ addiu $t0, %lo(text_wordwrap) # addiu $t0, $t0, 0xe8c +/* 0E37AC 7F0AEC7C 24090020 */ li $t1, 32 +/* 0E37B0 7F0AEC80 240A0018 */ li $t2, 24 +/* 0E37B4 7F0AEC84 240C000A */ li $t4, 10 +/* 0E37B8 7F0AEC88 14200003 */ bnez $at, .L7F0AEC98 +/* 0E37BC 7F0AEC8C 8FAD0078 */ lw $t5, 0x78($sp) +/* 0E37C0 7F0AEC90 10000002 */ b .L7F0AEC9C +/* 0E37C4 7F0AEC94 24040001 */ li $a0, 1 +.L7F0AEC98: +/* 0E37C8 7F0AEC98 00002025 */ move $a0, $zero +.L7F0AEC9C: +/* 0E37CC 7F0AEC9C 92420000 */ lbu $v0, ($s2) +/* 0E37D0 7F0AECA0 2401000A */ li $at, 10 +/* 0E37D4 7F0AECA4 5441002F */ bnel $v0, $at, .L7F0AED64 +/* 0E37D8 7F0AECA8 24010020 */ li $at, 32 +/* 0E37DC 7F0AECAC 1480000E */ bnez $a0, .L7F0AECE8 +/* 0E37E0 7F0AECB0 00001825 */ move $v1, $zero +/* 0E37E4 7F0AECB4 A20C0000 */ sb $t4, ($s0) +/* 0E37E8 7F0AECB8 8D180000 */ lw $t8, ($t0) +/* 0E37EC 7F0AECBC 26100001 */ addiu $s0, $s0, 1 +/* 0E37F0 7F0AECC0 1B000009 */ blez $t8, .L7F0AECE8 +/* 0E37F4 7F0AECC4 00000000 */ nop +/* 0E37F8 7F0AECC8 A2090000 */ sb $t1, ($s0) +.L7F0AECCC: +/* 0E37FC 7F0AECCC 8D190000 */ lw $t9, ($t0) +/* 0E3800 7F0AECD0 24630001 */ addiu $v1, $v1, 1 +/* 0E3804 7F0AECD4 26100001 */ addiu $s0, $s0, 1 +/* 0E3808 7F0AECD8 0079082A */ slt $at, $v1, $t9 +/* 0E380C 7F0AECDC 5420FFFB */ bnezl $at, .L7F0AECCC +/* 0E3810 7F0AECE0 A2090000 */ sb $t1, ($s0) +/* 0E3814 7F0AECE4 00001825 */ move $v1, $zero +.L7F0AECE8: +/* 0E3818 7F0AECE8 1A20001A */ blez $s1, .L7F0AED54 +/* 0E381C 7F0AECEC 00005825 */ move $t3, $zero +/* 0E3820 7F0AECF0 32250003 */ andi $a1, $s1, 3 +/* 0E3824 7F0AECF4 10A00009 */ beqz $a1, .L7F0AED1C +/* 0E3828 7F0AECF8 00A02025 */ move $a0, $a1 +/* 0E382C 7F0AECFC 02831021 */ addu $v0, $s4, $v1 +.L7F0AED00: +/* 0E3830 7F0AED00 904E0000 */ lbu $t6, ($v0) +/* 0E3834 7F0AED04 24630001 */ addiu $v1, $v1, 1 +/* 0E3838 7F0AED08 26100001 */ addiu $s0, $s0, 1 +/* 0E383C 7F0AED0C 24420001 */ addiu $v0, $v0, 1 +/* 0E3840 7F0AED10 1483FFFB */ bne $a0, $v1, .L7F0AED00 +/* 0E3844 7F0AED14 A20EFFFF */ sb $t6, -1($s0) +/* 0E3848 7F0AED18 1071000E */ beq $v1, $s1, .L7F0AED54 +.L7F0AED1C: +/* 0E384C 7F0AED1C 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E3850 7F0AED20 022F2021 */ addu $a0, $s1, $t7 +/* 0E3854 7F0AED24 02831021 */ addu $v0, $s4, $v1 +.L7F0AED28: +/* 0E3858 7F0AED28 90580000 */ lbu $t8, ($v0) +/* 0E385C 7F0AED2C 24420004 */ addiu $v0, $v0, 4 +/* 0E3860 7F0AED30 26100004 */ addiu $s0, $s0, 4 +/* 0E3864 7F0AED34 A218FFFC */ sb $t8, -4($s0) +/* 0E3868 7F0AED38 9059FFFD */ lbu $t9, -3($v0) +/* 0E386C 7F0AED3C A219FFFD */ sb $t9, -3($s0) +/* 0E3870 7F0AED40 904EFFFE */ lbu $t6, -2($v0) +/* 0E3874 7F0AED44 A20EFFFE */ sb $t6, -2($s0) +/* 0E3878 7F0AED48 904FFFFF */ lbu $t7, -1($v0) +/* 0E387C 7F0AED4C 1444FFF6 */ bne $v0, $a0, .L7F0AED28 +/* 0E3880 7F0AED50 A20FFFFF */ sb $t7, -1($s0) +.L7F0AED54: +/* 0E3884 7F0AED54 A20C0000 */ sb $t4, ($s0) +/* 0E3888 7F0AED58 10000061 */ b .L7F0AEEE0 +/* 0E388C 7F0AED5C 26100001 */ addiu $s0, $s0, 1 +/* 0E3890 7F0AED60 24010020 */ li $at, 32 +.L7F0AED64: +/* 0E3894 7F0AED64 14410032 */ bne $v0, $at, .L7F0AEE30 +/* 0E3898 7F0AED68 00000000 */ nop +/* 0E389C 7F0AED6C 14800012 */ bnez $a0, .L7F0AEDB8 +/* 0E38A0 7F0AED70 00001825 */ move $v1, $zero +/* 0E38A4 7F0AED74 A20C0000 */ sb $t4, ($s0) +/* 0E38A8 7F0AED78 8D020000 */ lw $v0, ($t0) +/* 0E38AC 7F0AED7C 26100001 */ addiu $s0, $s0, 1 +/* 0E38B0 7F0AED80 5840000A */ blezl $v0, .L7F0AEDAC +/* 0E38B4 7F0AED84 8FB90080 */ lw $t9, 0x80($sp) +/* 0E38B8 7F0AED88 A2090000 */ sb $t1, ($s0) +.L7F0AED8C: +/* 0E38BC 7F0AED8C 8D020000 */ lw $v0, ($t0) +/* 0E38C0 7F0AED90 24630001 */ addiu $v1, $v1, 1 +/* 0E38C4 7F0AED94 26100001 */ addiu $s0, $s0, 1 +/* 0E38C8 7F0AED98 0062082A */ slt $at, $v1, $v0 +/* 0E38CC 7F0AED9C 5420FFFB */ bnezl $at, .L7F0AED8C +/* 0E38D0 7F0AEDA0 A2090000 */ sb $t1, ($s0) +/* 0E38D4 7F0AEDA4 00001825 */ move $v1, $zero +/* 0E38D8 7F0AEDA8 8FB90080 */ lw $t9, 0x80($sp) +.L7F0AEDAC: +/* 0E38DC 7F0AEDAC 0002C080 */ sll $t8, $v0, 2 +/* 0E38E0 7F0AEDB0 0302C021 */ addu $t8, $t8, $v0 +/* 0E38E4 7F0AEDB4 03195821 */ addu $t3, $t8, $t9 +.L7F0AEDB8: +/* 0E38E8 7F0AEDB8 1A20001A */ blez $s1, .L7F0AEE24 +/* 0E38EC 7F0AEDBC 256B0005 */ addiu $t3, $t3, 5 +/* 0E38F0 7F0AEDC0 32250003 */ andi $a1, $s1, 3 +/* 0E38F4 7F0AEDC4 10A00009 */ beqz $a1, .L7F0AEDEC +/* 0E38F8 7F0AEDC8 00A02025 */ move $a0, $a1 +/* 0E38FC 7F0AEDCC 02831021 */ addu $v0, $s4, $v1 +.L7F0AEDD0: +/* 0E3900 7F0AEDD0 904E0000 */ lbu $t6, ($v0) +/* 0E3904 7F0AEDD4 24630001 */ addiu $v1, $v1, 1 +/* 0E3908 7F0AEDD8 26100001 */ addiu $s0, $s0, 1 +/* 0E390C 7F0AEDDC 24420001 */ addiu $v0, $v0, 1 +/* 0E3910 7F0AEDE0 1483FFFB */ bne $a0, $v1, .L7F0AEDD0 +/* 0E3914 7F0AEDE4 A20EFFFF */ sb $t6, -1($s0) +/* 0E3918 7F0AEDE8 1071000E */ beq $v1, $s1, .L7F0AEE24 +.L7F0AEDEC: +/* 0E391C 7F0AEDEC 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E3920 7F0AEDF0 022F2021 */ addu $a0, $s1, $t7 +/* 0E3924 7F0AEDF4 02831021 */ addu $v0, $s4, $v1 +.L7F0AEDF8: +/* 0E3928 7F0AEDF8 90580000 */ lbu $t8, ($v0) +/* 0E392C 7F0AEDFC 24420004 */ addiu $v0, $v0, 4 +/* 0E3930 7F0AEE00 26100004 */ addiu $s0, $s0, 4 +/* 0E3934 7F0AEE04 A218FFFC */ sb $t8, -4($s0) +/* 0E3938 7F0AEE08 9059FFFD */ lbu $t9, -3($v0) +/* 0E393C 7F0AEE0C A219FFFD */ sb $t9, -3($s0) +/* 0E3940 7F0AEE10 904EFFFE */ lbu $t6, -2($v0) +/* 0E3944 7F0AEE14 A20EFFFE */ sb $t6, -2($s0) +/* 0E3948 7F0AEE18 904FFFFF */ lbu $t7, -1($v0) +/* 0E394C 7F0AEE1C 1444FFF6 */ bne $v0, $a0, .L7F0AEDF8 +/* 0E3950 7F0AEE20 A20FFFFF */ sb $t7, -1($s0) +.L7F0AEE24: +/* 0E3954 7F0AEE24 A2090000 */ sb $t1, ($s0) +/* 0E3958 7F0AEE28 1000002D */ b .L7F0AEEE0 +/* 0E395C 7F0AEE2C 26100001 */ addiu $s0, $s0, 1 +.L7F0AEE30: +/* 0E3960 7F0AEE30 1440002B */ bnez $v0, .L7F0AEEE0 +/* 0E3964 7F0AEE34 00001825 */ move $v1, $zero +/* 0E3968 7F0AEE38 1480000E */ bnez $a0, .L7F0AEE74 +/* 0E396C 7F0AEE3C 00006825 */ move $t5, $zero +/* 0E3970 7F0AEE40 A20C0000 */ sb $t4, ($s0) +/* 0E3974 7F0AEE44 8D180000 */ lw $t8, ($t0) +/* 0E3978 7F0AEE48 26100001 */ addiu $s0, $s0, 1 +/* 0E397C 7F0AEE4C 1B000009 */ blez $t8, .L7F0AEE74 +/* 0E3980 7F0AEE50 00000000 */ nop +/* 0E3984 7F0AEE54 A2090000 */ sb $t1, ($s0) +.L7F0AEE58: +/* 0E3988 7F0AEE58 8D190000 */ lw $t9, ($t0) +/* 0E398C 7F0AEE5C 24630001 */ addiu $v1, $v1, 1 +/* 0E3990 7F0AEE60 26100001 */ addiu $s0, $s0, 1 +/* 0E3994 7F0AEE64 0079082A */ slt $at, $v1, $t9 +/* 0E3998 7F0AEE68 5420FFFB */ bnezl $at, .L7F0AEE58 +/* 0E399C 7F0AEE6C A2090000 */ sb $t1, ($s0) +/* 0E39A0 7F0AEE70 00001825 */ move $v1, $zero +.L7F0AEE74: +/* 0E39A4 7F0AEE74 1A200019 */ blez $s1, .L7F0AEEDC +/* 0E39A8 7F0AEE78 32250003 */ andi $a1, $s1, 3 +/* 0E39AC 7F0AEE7C 10A00009 */ beqz $a1, .L7F0AEEA4 +/* 0E39B0 7F0AEE80 00A02025 */ move $a0, $a1 +/* 0E39B4 7F0AEE84 02831021 */ addu $v0, $s4, $v1 +.L7F0AEE88: +/* 0E39B8 7F0AEE88 904E0000 */ lbu $t6, ($v0) +/* 0E39BC 7F0AEE8C 24630001 */ addiu $v1, $v1, 1 +/* 0E39C0 7F0AEE90 26100001 */ addiu $s0, $s0, 1 +/* 0E39C4 7F0AEE94 24420001 */ addiu $v0, $v0, 1 +/* 0E39C8 7F0AEE98 1483FFFB */ bne $a0, $v1, .L7F0AEE88 +/* 0E39CC 7F0AEE9C A20EFFFF */ sb $t6, -1($s0) +/* 0E39D0 7F0AEEA0 1071000E */ beq $v1, $s1, .L7F0AEEDC +.L7F0AEEA4: +/* 0E39D4 7F0AEEA4 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E39D8 7F0AEEA8 022F2021 */ addu $a0, $s1, $t7 +/* 0E39DC 7F0AEEAC 02831021 */ addu $v0, $s4, $v1 +.L7F0AEEB0: +/* 0E39E0 7F0AEEB0 90580000 */ lbu $t8, ($v0) +/* 0E39E4 7F0AEEB4 24420004 */ addiu $v0, $v0, 4 +/* 0E39E8 7F0AEEB8 26100004 */ addiu $s0, $s0, 4 +/* 0E39EC 7F0AEEBC A218FFFC */ sb $t8, -4($s0) +/* 0E39F0 7F0AEEC0 9059FFFD */ lbu $t9, -3($v0) +/* 0E39F4 7F0AEEC4 A219FFFD */ sb $t9, -3($s0) +/* 0E39F8 7F0AEEC8 904EFFFE */ lbu $t6, -2($v0) +/* 0E39FC 7F0AEECC A20EFFFE */ sb $t6, -2($s0) +/* 0E3A00 7F0AEED0 904FFFFF */ lbu $t7, -1($v0) +/* 0E3A04 7F0AEED4 1444FFF6 */ bne $v0, $a0, .L7F0AEEB0 +/* 0E3A08 7F0AEED8 A20FFFFF */ sb $t7, -1($s0) +.L7F0AEEDC: +/* 0E3A0C 7F0AEEDC A2000000 */ sb $zero, ($s0) +.L7F0AEEE0: +/* 0E3A10 7F0AEEE0 24010001 */ li $at, 1 +/* 0E3A14 7F0AEEE4 11A1FF2F */ beq $t5, $at, .L7F0AEBA4 +/* 0E3A18 7F0AEEE8 26520001 */ addiu $s2, $s2, 1 +/* 0E3A1C 7F0AEEEC 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E3A20 7F0AEEF0 8FB00020 */ lw $s0, 0x20($sp) +/* 0E3A24 7F0AEEF4 8FB10024 */ lw $s1, 0x24($sp) +/* 0E3A28 7F0AEEF8 8FB20028 */ lw $s2, 0x28($sp) +/* 0E3A2C 7F0AEEFC 8FB3002C */ lw $s3, 0x2c($sp) +/* 0E3A30 7F0AEF00 8FB40030 */ lw $s4, 0x30($sp) +/* 0E3A34 7F0AEF04 03E00008 */ jr $ra +/* 0E3A38 7F0AEF08 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +void sub_GAME_7F0AEF0C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + // (function likely stubbed) +} + +u32 sub_GAME_7F0AEF20(u32 param_1,u32 param_2){ + return param_1; +} + + diff --git a/src/game/textrelated.h b/src/game/textrelated.h new file mode 100644 index 0000000..02e3ce2 --- /dev/null +++ b/src/game/textrelated.h @@ -0,0 +1,11 @@ +#ifndef _TEXTRELATED_H_ +#define _TEXTRELATED_H_ +#include "ultra64.h" + +extern s32 ptrFirstFontTableSmall; +extern s32 ptrSecondFontTableSmall; +extern s32 ptrFirstFontTableLarge; +extern s32 ptrSecondFontTableLarge; + +void textrelatedInit_REMOVED(void); +#endif diff --git a/src/game/truncf.c b/src/game/truncf.c new file mode 100644 index 0000000..40b43d5 --- /dev/null +++ b/src/game/truncf.c @@ -0,0 +1,98 @@ +#include "ultra64.h" + + + + + + + +#ifdef NONMATCHING +void truncf(void) { + +} +#else +GLOBAL_ASM( +.text +glabel truncf +/* 090E90 7F05C360 44802000 */ mtc1 $zero, $f4 +/* 090E94 7F05C364 00000000 */ nop +/* 090E98 7F05C368 460C203E */ c.le.s $f4, $f12 +/* 090E9C 7F05C36C 00000000 */ nop +/* 090EA0 7F05C370 45020008 */ bc1fl .L7F05C394 +/* 090EA4 7F05C374 4600628D */ trunc.w.s $f10, $f12 +/* 090EA8 7F05C378 4600618D */ trunc.w.s $f6, $f12 +/* 090EAC 7F05C37C 440F3000 */ mfc1 $t7, $f6 +/* 090EB0 7F05C380 00000000 */ nop +/* 090EB4 7F05C384 448F4000 */ mtc1 $t7, $f8 +/* 090EB8 7F05C388 03E00008 */ jr $ra +/* 090EBC 7F05C38C 46804020 */ cvt.s.w $f0, $f8 + +/* 090EC0 7F05C390 4600628D */ trunc.w.s $f10, $f12 +.L7F05C394: +/* 090EC4 7F05C394 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 090EC8 7F05C398 44195000 */ mfc1 $t9, $f10 +/* 090ECC 7F05C39C 00000000 */ nop +/* 090ED0 7F05C3A0 44998000 */ mtc1 $t9, $f16 +/* 090ED4 7F05C3A4 00000000 */ nop +/* 090ED8 7F05C3A8 468080A0 */ cvt.s.w $f2, $f16 +/* 090EDC 7F05C3AC 46026032 */ c.eq.s $f12, $f2 +/* 090EE0 7F05C3B0 00000000 */ nop +/* 090EE4 7F05C3B4 45020004 */ bc1fl .L7F05C3C8 +/* 090EE8 7F05C3B8 44819000 */ mtc1 $at, $f18 +/* 090EEC 7F05C3BC 03E00008 */ jr $ra +/* 090EF0 7F05C3C0 46001006 */ mov.s $f0, $f2 + +/* 090EF4 7F05C3C4 44819000 */ mtc1 $at, $f18 +.L7F05C3C8: +/* 090EF8 7F05C3C8 00000000 */ nop +/* 090EFC 7F05C3CC 46121001 */ sub.s $f0, $f2, $f18 +/* 090F00 7F05C3D0 03E00008 */ jr $ra +/* 090F04 7F05C3D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C3D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C3D8 +/* 090F08 7F05C3D8 44802000 */ mtc1 $zero, $f4 +/* 090F0C 7F05C3DC 00000000 */ nop +/* 090F10 7F05C3E0 460C203E */ c.le.s $f4, $f12 +/* 090F14 7F05C3E4 00000000 */ nop +/* 090F18 7F05C3E8 45020006 */ bc1fl .L7F05C404 +/* 090F1C 7F05C3EC 4600620D */ trunc.w.s $f8, $f12 +/* 090F20 7F05C3F0 4600618D */ trunc.w.s $f6, $f12 +/* 090F24 7F05C3F4 44023000 */ mfc1 $v0, $f6 +/* 090F28 7F05C3F8 03E00008 */ jr $ra +/* 090F2C 7F05C3FC 00000000 */ nop + +/* 090F30 7F05C400 4600620D */ trunc.w.s $f8, $f12 +.L7F05C404: +/* 090F34 7F05C404 44034000 */ mfc1 $v1, $f8 +/* 090F38 7F05C408 00000000 */ nop +/* 090F3C 7F05C40C 44835000 */ mtc1 $v1, $f10 +/* 090F40 7F05C410 2462FFFF */ addiu $v0, $v1, -1 +/* 090F44 7F05C414 46805420 */ cvt.s.w $f16, $f10 +/* 090F48 7F05C418 46106032 */ c.eq.s $f12, $f16 +/* 090F4C 7F05C41C 00000000 */ nop +/* 090F50 7F05C420 45000003 */ bc1f .L7F05C430 +/* 090F54 7F05C424 00000000 */ nop +/* 090F58 7F05C428 03E00008 */ jr $ra +/* 090F5C 7F05C42C 00601025 */ move $v0, $v1 + +.L7F05C430: +/* 090F60 7F05C430 03E00008 */ jr $ra +/* 090F64 7F05C434 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_007800.c b/src/game/unk_007800.c new file mode 100644 index 0000000..32c318f --- /dev/null +++ b/src/game/unk_007800.c @@ -0,0 +1,161 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void cleanupExplosions(void) { + ? temp_ret; + void *temp_t8; + s32 temp_s0; + void *temp_t7; + s32 temp_s0_2; + s32 phi_s0; + s32 phi_s0_2; + ? phi_return; + ? phi_return_2; + ? phi_return_3; + ? phi_return_4; + + // Node 0 + D_80040170 = 0; + temp_ret = video_related_9(0); + phi_s0 = 0; + phi_return_3 = temp_ret; + phi_return_4 = temp_ret; + if (ptr_explosion_buf != 0) + { +loop_1: + // Node 1 + temp_t8 = (ptr_explosion_buf + phi_s0); + if (*temp_t8 != 0) + { + // Node 2 + sub_GAME_7F03A538(*temp_t8); + unset_stateflag_0x04_for_posdata(*(ptr_explosion_buf + phi_s0)); + *(ptr_explosion_buf + phi_s0) = 0; + phi_return_4 = set_last_obj_pos_data(*(ptr_explosion_buf + phi_s0)); + } + // Node 3 + temp_s0 = (phi_s0 + 0x3e0); + phi_s0 = temp_s0; + phi_return_3 = phi_return_4; + phi_return_4 = phi_return_4; + if (temp_s0 != 0x1740) + { + goto loop_1; + } + } + // Node 4 + phi_s0_2 = 0; + phi_return = phi_return_3; + phi_return_2 = phi_return_3; + if (ptr_smoke_buf != 0) + { +loop_5: + // Node 5 + temp_t7 = (ptr_smoke_buf + phi_s0_2); + if (*temp_t7 != 0) + { + // Node 6 + sub_GAME_7F03A538(*temp_t7); + unset_stateflag_0x04_for_posdata(*(ptr_smoke_buf + phi_s0_2)); + *(ptr_smoke_buf + phi_s0_2) = 0; + phi_return_2 = set_last_obj_pos_data(*(ptr_smoke_buf + phi_s0_2)); + } + // Node 7 + temp_s0_2 = (phi_s0_2 + 0x198); + phi_s0_2 = temp_s0_2; + phi_return = phi_return_2; + phi_return_2 = phi_return_2; + if (temp_s0_2 != 0x1fe0) + { + goto loop_5; + } + } + // Node 8 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupExplosions +/* 03C330 7F007800 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03C334 7F007804 AFBF0024 */ sw $ra, 0x24($sp) +/* 03C338 7F007808 3C018004 */ lui $at, %hi(D_80040170) +/* 03C33C 7F00780C 44806000 */ mtc1 $zero, $f12 +/* 03C340 7F007810 AFB20020 */ sw $s2, 0x20($sp) +/* 03C344 7F007814 AFB1001C */ sw $s1, 0x1c($sp) +/* 03C348 7F007818 AFB00018 */ sw $s0, 0x18($sp) +/* 03C34C 7F00781C 0C000EC1 */ jal video_related_9 +/* 03C350 7F007820 AC200170 */ sw $zero, %lo(D_80040170)($at) +/* 03C354 7F007824 3C118008 */ lui $s1, %hi(ptr_explosion_buf) +/* 03C358 7F007828 2631A144 */ addiu $s1, %lo(ptr_explosion_buf) # addiu $s1, $s1, -0x5ebc +/* 03C35C 7F00782C 8E2E0000 */ lw $t6, ($s1) +/* 03C360 7F007830 00008025 */ move $s0, $zero +/* 03C364 7F007834 24121740 */ li $s2, 5952 +/* 03C368 7F007838 11C00016 */ beqz $t6, .L7F007894 +/* 03C36C 7F00783C 00000000 */ nop +/* 03C370 7F007840 8E2F0000 */ lw $t7, ($s1) +.L7F007844: +/* 03C374 7F007844 01F0C021 */ addu $t8, $t7, $s0 +/* 03C378 7F007848 8F040000 */ lw $a0, ($t8) +/* 03C37C 7F00784C 5080000F */ beql $a0, $zero, .L7F00788C +/* 03C380 7F007850 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 03C384 7F007854 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03C388 7F007858 00000000 */ nop +/* 03C38C 7F00785C 8E390000 */ lw $t9, ($s1) +/* 03C390 7F007860 03304021 */ addu $t0, $t9, $s0 +/* 03C394 7F007864 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C398 7F007868 8D040000 */ lw $a0, ($t0) +/* 03C39C 7F00786C 8E290000 */ lw $t1, ($s1) +/* 03C3A0 7F007870 01305021 */ addu $t2, $t1, $s0 +/* 03C3A4 7F007874 0FC0E921 */ jal set_last_obj_pos_data +/* 03C3A8 7F007878 8D440000 */ lw $a0, ($t2) +/* 03C3AC 7F00787C 8E2B0000 */ lw $t3, ($s1) +/* 03C3B0 7F007880 01706021 */ addu $t4, $t3, $s0 +/* 03C3B4 7F007884 AD800000 */ sw $zero, ($t4) +/* 03C3B8 7F007888 261003E0 */ addiu $s0, $s0, 0x3e0 +.L7F00788C: +/* 03C3BC 7F00788C 5612FFED */ bnel $s0, $s2, .L7F007844 +/* 03C3C0 7F007890 8E2F0000 */ lw $t7, ($s1) +.L7F007894: +/* 03C3C4 7F007894 3C118008 */ lui $s1, %hi(ptr_smoke_buf) +/* 03C3C8 7F007898 2631A140 */ addiu $s1, %lo(ptr_smoke_buf) # addiu $s1, $s1, -0x5ec0 +/* 03C3CC 7F00789C 8E2D0000 */ lw $t5, ($s1) +/* 03C3D0 7F0078A0 00008025 */ move $s0, $zero +/* 03C3D4 7F0078A4 24121FE0 */ li $s2, 8160 +/* 03C3D8 7F0078A8 51A00017 */ beql $t5, $zero, .L7F007908 +/* 03C3DC 7F0078AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 03C3E0 7F0078B0 8E2E0000 */ lw $t6, ($s1) +.L7F0078B4: +/* 03C3E4 7F0078B4 01D07821 */ addu $t7, $t6, $s0 +/* 03C3E8 7F0078B8 8DE40000 */ lw $a0, ($t7) +/* 03C3EC 7F0078BC 5080000F */ beql $a0, $zero, .L7F0078FC +/* 03C3F0 7F0078C0 26100198 */ addiu $s0, $s0, 0x198 +/* 03C3F4 7F0078C4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03C3F8 7F0078C8 00000000 */ nop +/* 03C3FC 7F0078CC 8E380000 */ lw $t8, ($s1) +/* 03C400 7F0078D0 0310C821 */ addu $t9, $t8, $s0 +/* 03C404 7F0078D4 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C408 7F0078D8 8F240000 */ lw $a0, ($t9) +/* 03C40C 7F0078DC 8E280000 */ lw $t0, ($s1) +/* 03C410 7F0078E0 01104821 */ addu $t1, $t0, $s0 +/* 03C414 7F0078E4 0FC0E921 */ jal set_last_obj_pos_data +/* 03C418 7F0078E8 8D240000 */ lw $a0, ($t1) +/* 03C41C 7F0078EC 8E2A0000 */ lw $t2, ($s1) +/* 03C420 7F0078F0 01505821 */ addu $t3, $t2, $s0 +/* 03C424 7F0078F4 AD600000 */ sw $zero, ($t3) +/* 03C428 7F0078F8 26100198 */ addiu $s0, $s0, 0x198 +.L7F0078FC: +/* 03C42C 7F0078FC 5612FFED */ bnel $s0, $s2, .L7F0078B4 +/* 03C430 7F007900 8E2E0000 */ lw $t6, ($s1) +/* 03C434 7F007904 8FBF0024 */ lw $ra, 0x24($sp) +.L7F007908: +/* 03C438 7F007908 8FB00018 */ lw $s0, 0x18($sp) +/* 03C43C 7F00790C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03C440 7F007910 8FB20020 */ lw $s2, 0x20($sp) +/* 03C444 7F007914 03E00008 */ jr $ra +/* 03C448 7F007918 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + diff --git a/src/game/unk_007920.c b/src/game/unk_007920.c new file mode 100644 index 0000000..6d60ad4 --- /dev/null +++ b/src/game/unk_007920.c @@ -0,0 +1,58 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +s32 sub_GAME_7F007920(void) { + s32 temp_v0; + s32 phi_v1; + s32 phi_v0; + + // Node 0 + if (dword_CODE_bss_8007A160 > 0) + { + // Node 1 + phi_v1 = 0; + phi_v0 = 0; +loop_2: + // Node 2 + temp_v0 = (phi_v0 + 1); + *(dword_CODE_bss_8007A164 + phi_v1) = 0; + phi_v1 = (phi_v1 + 0x68); + phi_v0 = temp_v0; + if (temp_v0 < dword_CODE_bss_8007A160) + { + goto loop_2; + } + } + // Node 3 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007920 +/* 03C450 7F007920 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 03C454 7F007924 2484A160 */ addiu $a0, %lo(dword_CODE_bss_8007A160) # addiu $a0, $a0, -0x5ea0 +/* 03C458 7F007928 8C8E0000 */ lw $t6, ($a0) +/* 03C45C 7F00792C 00001025 */ move $v0, $zero +/* 03C460 7F007930 00001825 */ move $v1, $zero +/* 03C464 7F007934 19C0000B */ blez $t6, .L7F007964 +/* 03C468 7F007938 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A164) +/* 03C46C 7F00793C 24A5A164 */ addiu $a1, %lo(dword_CODE_bss_8007A164) # addiu $a1, $a1, -0x5e9c +/* 03C470 7F007940 8CAF0000 */ lw $t7, ($a1) +.L7F007944: +/* 03C474 7F007944 24420001 */ addiu $v0, $v0, 1 +/* 03C478 7F007948 01E3C021 */ addu $t8, $t7, $v1 +/* 03C47C 7F00794C AF000000 */ sw $zero, ($t8) +/* 03C480 7F007950 8C990000 */ lw $t9, ($a0) +/* 03C484 7F007954 24630068 */ addiu $v1, $v1, 0x68 +/* 03C488 7F007958 0059082A */ slt $at, $v0, $t9 +/* 03C48C 7F00795C 5420FFF9 */ bnezl $at, .L7F007944 +/* 03C490 7F007960 8CAF0000 */ lw $t7, ($a1) +.L7F007964: +/* 03C494 7F007964 03E00008 */ jr $ra +/* 03C498 7F007968 00000000 */ nop +) +#endif + diff --git a/src/game/unk_007980.c b/src/game/unk_007980.c new file mode 100644 index 0000000..31558a5 --- /dev/null +++ b/src/game/unk_007980.c @@ -0,0 +1,118 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupplayersoundrelated(void) { + ? temp_ret; + void *temp_s0; + s32 temp_s1; + s32 temp_s4; + ? temp_ret_2; + void *phi_s2; + s32 phi_s1; + s32 phi_s4; + ? phi_return; + + // Node 0 + temp_ret = get_num_players(); + phi_return = temp_ret; + if (temp_ret > 0) + { + // Node 1 + phi_s2 = ((0 * 4) + &ptr_BONDdata_p1); + phi_s4 = 0; +loop_2: + // Node 2 + phi_s1 = 0; +loop_3: + // Node 3 + temp_s0 = (*phi_s2 + phi_s1); + if (temp_s0->unkA44 != 0) + { + // Node 4 + if (sfxGetArg0Unk3F(temp_s0->unkA44) != 0) + { + // Node 5 + sfxDeactivate((temp_s0 + 0x870)->unk1D4); + } + } + // Node 6 + temp_s1 = (phi_s1 + 0x3a8); + phi_s1 = temp_s1; + if (temp_s1 != 0x750) + { + goto loop_3; + } + // Node 7 + temp_s4 = (phi_s4 + 1); + temp_ret_2 = get_num_players(); + phi_s2 = (phi_s2 + 4); + phi_s4 = temp_s4; + phi_return = temp_ret_2; + if (temp_s4 < temp_ret_2) + { + goto loop_2; + } + } + // Node 8 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel cleanupplayersoundrelated +/* 03C4B0 7F007980 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C4B4 7F007984 AFBF002C */ sw $ra, 0x2c($sp) +/* 03C4B8 7F007988 AFB40028 */ sw $s4, 0x28($sp) +/* 03C4BC 7F00798C AFB30024 */ sw $s3, 0x24($sp) +/* 03C4C0 7F007990 AFB20020 */ sw $s2, 0x20($sp) +/* 03C4C4 7F007994 AFB1001C */ sw $s1, 0x1c($sp) +/* 03C4C8 7F007998 AFB00018 */ sw $s0, 0x18($sp) +/* 03C4CC 7F00799C 0FC26919 */ jal get_num_players +/* 03C4D0 7F0079A0 0000A025 */ move $s4, $zero +/* 03C4D4 7F0079A4 1840001B */ blez $v0, .L7F007A14 +/* 03C4D8 7F0079A8 00147080 */ sll $t6, $s4, 2 +/* 03C4DC 7F0079AC 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 03C4E0 7F0079B0 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 03C4E4 7F0079B4 01CF9021 */ addu $s2, $t6, $t7 +/* 03C4E8 7F0079B8 24130750 */ li $s3, 1872 +/* 03C4EC 7F0079BC 00008825 */ move $s1, $zero +.L7F0079C0: +/* 03C4F0 7F0079C0 8E580000 */ lw $t8, ($s2) +.L7F0079C4: +/* 03C4F4 7F0079C4 03118021 */ addu $s0, $t8, $s1 +/* 03C4F8 7F0079C8 8E040A44 */ lw $a0, 0xa44($s0) +/* 03C4FC 7F0079CC 26100870 */ addiu $s0, $s0, 0x870 +/* 03C500 7F0079D0 50800008 */ beql $a0, $zero, .L7F0079F4 +/* 03C504 7F0079D4 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 03C508 7F0079D8 0C00237C */ jal sfxGetArg0Unk3F +/* 03C50C 7F0079DC 00000000 */ nop +/* 03C510 7F0079E0 50400004 */ beql $v0, $zero, .L7F0079F4 +/* 03C514 7F0079E4 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 03C518 7F0079E8 0C002408 */ jal sfxDeactivate +/* 03C51C 7F0079EC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 03C520 7F0079F0 263103A8 */ addiu $s1, $s1, 0x3a8 +.L7F0079F4: +/* 03C524 7F0079F4 5633FFF3 */ bnel $s1, $s3, .L7F0079C4 +/* 03C528 7F0079F8 8E580000 */ lw $t8, ($s2) +/* 03C52C 7F0079FC 26940001 */ addiu $s4, $s4, 1 +/* 03C530 7F007A00 0FC26919 */ jal get_num_players +/* 03C534 7F007A04 26520004 */ addiu $s2, $s2, 4 +/* 03C538 7F007A08 0282082A */ slt $at, $s4, $v0 +/* 03C53C 7F007A0C 5420FFEC */ bnezl $at, .L7F0079C0 +/* 03C540 7F007A10 00008825 */ move $s1, $zero +.L7F007A14: +/* 03C544 7F007A14 8FBF002C */ lw $ra, 0x2c($sp) +/* 03C548 7F007A18 8FB00018 */ lw $s0, 0x18($sp) +/* 03C54C 7F007A1C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03C550 7F007A20 8FB20020 */ lw $s2, 0x20($sp) +/* 03C554 7F007A24 8FB30024 */ lw $s3, 0x24($sp) +/* 03C558 7F007A28 8FB40028 */ lw $s4, 0x28($sp) +/* 03C55C 7F007A2C 03E00008 */ jr $ra +/* 03C560 7F007A30 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + diff --git a/src/game/unk_01B0E0.c b/src/game/unk_01B0E0.c new file mode 100644 index 0000000..b118773 --- /dev/null +++ b/src/game/unk_01B0E0.c @@ -0,0 +1,134 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F01B0E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B0E0 +/* 04FC10 7F01B0E0 94820000 */ lhu $v0, ($a0) +/* 04FC14 7F01B0E4 94830002 */ lhu $v1, 2($a0) +/* 04FC18 7F01B0E8 2487000A */ addiu $a3, $a0, 0xa +/* 04FC1C 7F01B0EC 00430019 */ multu $v0, $v1 +/* 04FC20 7F01B0F0 00003012 */ mflo $a2 +/* 04FC24 7F01B0F4 00000000 */ nop +/* 04FC28 7F01B0F8 00000000 */ nop +/* 04FC2C 7F01B0FC 90E20000 */ lbu $v0, ($a3) +.L7F01B100: +/* 04FC30 7F01B100 90E30001 */ lbu $v1, 1($a3) +/* 04FC34 7F01B104 24E70002 */ addiu $a3, $a3, 2 +/* 04FC38 7F01B108 00C23023 */ subu $a2, $a2, $v0 +/* 04FC3C 7F01B10C 2442FFFF */ addiu $v0, $v0, -1 +.L7F01B110: +/* 04FC40 7F01B110 0002202A */ slt $a0, $zero, $v0 +/* 04FC44 7F01B114 2442FFFF */ addiu $v0, $v0, -1 +/* 04FC48 7F01B118 A0A30000 */ sb $v1, ($a1) +/* 04FC4C 7F01B11C 1480FFFC */ bnez $a0, .L7F01B110 +/* 04FC50 7F01B120 24A50001 */ addiu $a1, $a1, 1 +/* 04FC54 7F01B124 5CC0FFF6 */ bgtzl $a2, .L7F01B100 +/* 04FC58 7F01B128 90E20000 */ lbu $v0, ($a3) +/* 04FC5C 7F01B12C 03E00008 */ jr $ra +/* 04FC60 7F01B130 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B134(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B134 +/* 04FC64 7F01B134 27BDFFF8 */ addiu $sp, $sp, -8 +/* 04FC68 7F01B138 AFB00004 */ sw $s0, 4($sp) +/* 04FC6C 7F01B13C 94820000 */ lhu $v0, ($a0) +/* 04FC70 7F01B140 94830002 */ lhu $v1, 2($a0) +/* 04FC74 7F01B144 00A08025 */ move $s0, $a1 +/* 04FC78 7F01B148 2487000A */ addiu $a3, $a0, 0xa +/* 04FC7C 7F01B14C 00430019 */ multu $v0, $v1 +/* 04FC80 7F01B150 00003012 */ mflo $a2 +/* 04FC84 7F01B154 00000000 */ nop +/* 04FC88 7F01B158 00000000 */ nop +/* 04FC8C 7F01B15C 90E40002 */ lbu $a0, 2($a3) +.L7F01B160: +/* 04FC90 7F01B160 90E50003 */ lbu $a1, 3($a3) +/* 04FC94 7F01B164 90E30001 */ lbu $v1, 1($a3) +/* 04FC98 7F01B168 0004C0C3 */ sra $t8, $a0, 3 +/* 04FC9C 7F01B16C 000570C3 */ sra $t6, $a1, 3 +/* 04FCA0 7F01B170 90E20000 */ lbu $v0, ($a3) +/* 04FCA4 7F01B174 000E7AC0 */ sll $t7, $t6, 0xb +/* 04FCA8 7F01B178 0018C980 */ sll $t9, $t8, 6 +/* 04FCAC 7F01B17C 000350C3 */ sra $t2, $v1, 3 +/* 04FCB0 7F01B180 000A5840 */ sll $t3, $t2, 1 +/* 04FCB4 7F01B184 01F94825 */ or $t1, $t7, $t9 +/* 04FCB8 7F01B188 012B4025 */ or $t0, $t1, $t3 +/* 04FCBC 7F01B18C 350C0001 */ ori $t4, $t0, 1 +/* 04FCC0 7F01B190 00C23023 */ subu $a2, $a2, $v0 +/* 04FCC4 7F01B194 24E70004 */ addiu $a3, $a3, 4 +/* 04FCC8 7F01B198 01804025 */ move $t0, $t4 +/* 04FCCC 7F01B19C 2442FFFF */ addiu $v0, $v0, -1 +.L7F01B1A0: +/* 04FCD0 7F01B1A0 0002182A */ slt $v1, $zero, $v0 +/* 04FCD4 7F01B1A4 2442FFFF */ addiu $v0, $v0, -1 +/* 04FCD8 7F01B1A8 A6080000 */ sh $t0, ($s0) +/* 04FCDC 7F01B1AC 1460FFFC */ bnez $v1, .L7F01B1A0 +/* 04FCE0 7F01B1B0 26100002 */ addiu $s0, $s0, 2 +/* 04FCE4 7F01B1B4 5CC0FFEA */ bgtzl $a2, .L7F01B160 +/* 04FCE8 7F01B1B8 90E40002 */ lbu $a0, 2($a3) +/* 04FCEC 7F01B1BC 8FB00004 */ lw $s0, 4($sp) +/* 04FCF0 7F01B1C0 03E00008 */ jr $ra +/* 04FCF4 7F01B1C4 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B1C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B1C8 +/* 04FCF8 7F01B1C8 94830000 */ lhu $v1, ($a0) +/* 04FCFC 7F01B1CC 94860002 */ lhu $a2, 2($a0) +/* 04FD00 7F01B1D0 00A01025 */ move $v0, $a1 +/* 04FD04 7F01B1D4 2488000A */ addiu $t0, $a0, 0xa +/* 04FD08 7F01B1D8 00660019 */ multu $v1, $a2 +/* 04FD0C 7F01B1DC 240A00FF */ li $t2, 255 +/* 04FD10 7F01B1E0 00003812 */ mflo $a3 +/* 04FD14 7F01B1E4 00000000 */ nop +/* 04FD18 7F01B1E8 00000000 */ nop +/* 04FD1C 7F01B1EC 91030000 */ lbu $v1, ($t0) +.L7F01B1F0: +/* 04FD20 7F01B1F0 91040001 */ lbu $a0, 1($t0) +/* 04FD24 7F01B1F4 91050002 */ lbu $a1, 2($t0) +/* 04FD28 7F01B1F8 00E33823 */ subu $a3, $a3, $v1 +/* 04FD2C 7F01B1FC 91060003 */ lbu $a2, 3($t0) +/* 04FD30 7F01B200 25080004 */ addiu $t0, $t0, 4 +/* 04FD34 7F01B204 2463FFFF */ addiu $v1, $v1, -1 +.L7F01B208: +/* 04FD38 7F01B208 0003482A */ slt $t1, $zero, $v1 +/* 04FD3C 7F01B20C A0460000 */ sb $a2, ($v0) +/* 04FD40 7F01B210 A0450001 */ sb $a1, 1($v0) +/* 04FD44 7F01B214 A0440002 */ sb $a0, 2($v0) +/* 04FD48 7F01B218 A04A0003 */ sb $t2, 3($v0) +/* 04FD4C 7F01B21C 2463FFFF */ addiu $v1, $v1, -1 +/* 04FD50 7F01B220 1520FFF9 */ bnez $t1, .L7F01B208 +/* 04FD54 7F01B224 24420004 */ addiu $v0, $v0, 4 +/* 04FD58 7F01B228 5CE0FFF1 */ bgtzl $a3, .L7F01B1F0 +/* 04FD5C 7F01B22C 91030000 */ lbu $v1, ($t0) +/* 04FD60 7F01B230 03E00008 */ jr $ra +/* 04FD64 7F01B234 00000000 */ nop +) +#endif + + diff --git a/src/game/unk_01B240.c b/src/game/unk_01B240.c new file mode 100644 index 0000000..79da544 --- /dev/null +++ b/src/game/unk_01B240.c @@ -0,0 +1,626 @@ +#include "ultra64.h" + + +s32 D_8002BB00 = 0; +s32 D_8002BB04 = 0; +s32 D_8002BB08 = 0; +f32 D_8002BB0C = 255.0; +f32 D_8002BB10 = 255.0; +f32 D_8002BB14 = 255.0; +s32 D_8002BB18 = 0; +s32 D_8002BB1C = 0; +s32 D_8002BB20 = 0; +s32 D_8002BB24 = 0; +s32 D_8002BB28 = 0; +s32 D_8002BB2C = 0; + + + + + + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F01B240(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051CF0 +.word 0x43958000 +.text +glabel sub_GAME_7F01B240 +/* 04FD70 7F01B240 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 04FD74 7F01B244 AFB20028 */ sw $s2, 0x28($sp) +/* 04FD78 7F01B248 AFBF0044 */ sw $ra, 0x44($sp) +/* 04FD7C 7F01B24C AFBE0040 */ sw $fp, 0x40($sp) +/* 04FD80 7F01B250 AFB7003C */ sw $s7, 0x3c($sp) +/* 04FD84 7F01B254 AFB60038 */ sw $s6, 0x38($sp) +/* 04FD88 7F01B258 AFB50034 */ sw $s5, 0x34($sp) +/* 04FD8C 7F01B25C AFB40030 */ sw $s4, 0x30($sp) +/* 04FD90 7F01B260 AFB3002C */ sw $s3, 0x2c($sp) +/* 04FD94 7F01B264 AFB10024 */ sw $s1, 0x24($sp) +/* 04FD98 7F01B268 AFB00020 */ sw $s0, 0x20($sp) +/* 04FD9C 7F01B26C F7B80018 */ sdc1 $f24, 0x18($sp) +/* 04FDA0 7F01B270 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 04FDA4 7F01B274 F7B40008 */ sdc1 $f20, 8($sp) +/* 04FDA8 7F01B278 8FB20058 */ lw $s2, 0x58($sp) +/* 04FDAC 7F01B27C 8CEE0000 */ lw $t6, ($a3) +/* 04FDB0 7F01B280 8CEF0004 */ lw $t7, 4($a3) +/* 04FDB4 7F01B284 8E590000 */ lw $t9, ($s2) +/* 04FDB8 7F01B288 448E2000 */ mtc1 $t6, $f4 +/* 04FDBC 7F01B28C 8E4E0004 */ lw $t6, 4($s2) +/* 04FDC0 7F01B290 448F3000 */ mtc1 $t7, $f6 +/* 04FDC4 7F01B294 44995000 */ mtc1 $t9, $f10 +/* 04FDC8 7F01B298 46802020 */ cvt.s.w $f0, $f4 +/* 04FDCC 7F01B29C 8E4F0008 */ lw $t7, 8($s2) +/* 04FDD0 7F01B2A0 448E2000 */ mtc1 $t6, $f4 +/* 04FDD4 7F01B2A4 8CF80008 */ lw $t8, 8($a3) +/* 04FDD8 7F01B2A8 3C018003 */ lui $at, %hi(D_8002BB0C) +/* 04FDDC 7F01B2AC 468030A0 */ cvt.s.w $f2, $f6 +/* 04FDE0 7F01B2B0 448F3000 */ mtc1 $t7, $f6 +/* 04FDE4 7F01B2B4 44984000 */ mtc1 $t8, $f8 +/* 04FDE8 7F01B2B8 3C140708 */ lui $s4, (0x07080200 >> 16) # lui $s4, 0x708 +/* 04FDEC 7F01B2BC 3C17070D */ lui $s7, (0x070DB026 >> 16) # lui $s7, 0x70d +/* 04FDF0 7F01B2C0 468053A0 */ cvt.s.w $f14, $f10 +/* 04FDF4 7F01B2C4 3C1FF588 */ lui $ra, (0xF5886E00 >> 16) # lui $ra, 0xf588 +/* 04FDF8 7F01B2C8 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 04FDFC 7F01B2CC 3C0AE46D */ lui $t2, (0xE46DF000 >> 16) # lui $t2, 0xe46d +/* 04FE00 7F01B2D0 00A08025 */ move $s0, $a1 +/* 04FE04 7F01B2D4 46802420 */ cvt.s.w $f16, $f4 +/* 04FE08 7F01B2D8 E42EBB0C */ swc1 $f14, %lo(D_8002BB0C)($at) +/* 04FE0C 7F01B2DC 3C018003 */ lui $at, %hi(D_8002BB10) +/* 04FE10 7F01B2E0 00C08825 */ move $s1, $a2 +/* 04FE14 7F01B2E4 00004025 */ move $t0, $zero +/* 04FE18 7F01B2E8 468034A0 */ cvt.s.w $f18, $f6 +/* 04FE1C 7F01B2EC E430BB10 */ swc1 $f16, %lo(D_8002BB10)($at) +/* 04FE20 7F01B2F0 3C018003 */ lui $at, %hi(D_8002BB14) +/* 04FE24 7F01B2F4 354AF000 */ ori $t2, (0xE46DF000 & 0xFFFF) # ori $t2, $t2, 0xf000 +/* 04FE28 7F01B2F8 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 04FE2C 7F01B2FC 46804320 */ cvt.s.w $f12, $f8 +/* 04FE30 7F01B300 E432BB14 */ swc1 $f18, %lo(D_8002BB14)($at) +/* 04FE34 7F01B304 3C018005 */ lui $at, %hi(D_80051CF0) +/* 04FE38 7F01B308 37FF6E00 */ ori $ra, (0xF5886E00 & 0xFFFF) # ori $ra, $ra, 0x6e00 +/* 04FE3C 7F01B30C 36F7B026 */ ori $s7, (0x070DB026 & 0xFFFF) # ori $s7, $s7, 0xb026 +/* 04FE40 7F01B310 46028581 */ sub.s $f22, $f16, $f2 +/* 04FE44 7F01B314 C4301CF0 */ lwc1 $f16, %lo(D_80051CF0)($at) +/* 04FE48 7F01B318 36940200 */ ori $s4, (0x07080200 & 0xFFFF) # ori $s4, $s4, 0x200 +/* 04FE4C 7F01B31C 460C9601 */ sub.s $f24, $f18, $f12 +/* 04FE50 7F01B320 3C12FD90 */ lui $s2, 0xfd90 +/* 04FE54 7F01B324 3C13F590 */ lui $s3, 0xf590 +/* 04FE58 7F01B328 46007501 */ sub.s $f20, $f14, $f0 +/* 04FE5C 7F01B32C 3C15E600 */ lui $s5, 0xe600 +/* 04FE60 7F01B330 3C16F300 */ lui $s6, 0xf300 +/* 04FE64 7F01B334 3C1EE700 */ lui $fp, 0xe700 +/* 04FE68 7F01B338 24090001 */ li $t1, 1 +/* 04FE6C 7F01B33C 3C0CB300 */ lui $t4, 0xb300 +/* 04FE70 7F01B340 3C0BB400 */ lui $t3, 0xb400 +.L7F01B344: +/* 04FE74 7F01B344 44884000 */ mtc1 $t0, $f8 +/* 04FE78 7F01B348 00801025 */ move $v0, $a0 +/* 04FE7C 7F01B34C 24840008 */ addiu $a0, $a0, 8 +/* 04FE80 7F01B350 468043A0 */ cvt.s.w $f14, $f8 +/* 04FE84 7F01B354 00801825 */ move $v1, $a0 +/* 04FE88 7F01B358 AC520000 */ sw $s2, ($v0) +/* 04FE8C 7F01B35C AC500004 */ sw $s0, 4($v0) +/* 04FE90 7F01B360 24840008 */ addiu $a0, $a0, 8 +/* 04FE94 7F01B364 00802825 */ move $a1, $a0 +/* 04FE98 7F01B368 460EA282 */ mul.s $f10, $f20, $f14 +/* 04FE9C 7F01B36C AC740004 */ sw $s4, 4($v1) +/* 04FEA0 7F01B370 AC730000 */ sw $s3, ($v1) +/* 04FEA4 7F01B374 24840008 */ addiu $a0, $a0, 8 +/* 04FEA8 7F01B378 00803025 */ move $a2, $a0 +/* 04FEAC 7F01B37C 24840008 */ addiu $a0, $a0, 8 +/* 04FEB0 7F01B380 ACB50000 */ sw $s5, ($a1) +/* 04FEB4 7F01B384 46105103 */ div.s $f4, $f10, $f16 +/* 04FEB8 7F01B388 ACA00004 */ sw $zero, 4($a1) +/* 04FEBC 7F01B38C 00803825 */ move $a3, $a0 +/* 04FEC0 7F01B390 24840008 */ addiu $a0, $a0, 8 +/* 04FEC4 7F01B394 ACD70004 */ sw $s7, 4($a2) +/* 04FEC8 7F01B398 ACD60000 */ sw $s6, ($a2) +/* 04FECC 7F01B39C 00801025 */ move $v0, $a0 +/* 04FED0 7F01B3A0 ACE00004 */ sw $zero, 4($a3) +/* 04FED4 7F01B3A4 ACFE0000 */ sw $fp, ($a3) +/* 04FED8 7F01B3A8 3C180008 */ lui $t8, (0x00080200 >> 16) # lui $t8, 8 +/* 04FEDC 7F01B3AC 37180200 */ ori $t8, (0x00080200 & 0xFFFF) # ori $t8, $t8, 0x200 +/* 04FEE0 7F01B3B0 24840008 */ addiu $a0, $a0, 8 +/* 04FEE4 7F01B3B4 00801825 */ move $v1, $a0 +/* 04FEE8 7F01B3B8 AC580004 */ sw $t8, 4($v0) +/* 04FEEC 7F01B3BC AC5F0000 */ sw $ra, ($v0) +/* 04FEF0 7F01B3C0 3C19F200 */ lui $t9, 0xf200 +/* 04FEF4 7F01B3C4 AC790000 */ sw $t9, ($v1) +/* 04FEF8 7F01B3C8 24190001 */ li $t9, 1 +/* 04FEFC 7F01B3CC 24840008 */ addiu $a0, $a0, 8 +/* 04FF00 7F01B3D0 3C0E006D */ lui $t6, (0x006DC000 >> 16) # lui $t6, 0x6d +/* 04FF04 7F01B3D4 35CEC000 */ ori $t6, (0x006DC000 & 0xFFFF) # ori $t6, $t6, 0xc000 +/* 04FF08 7F01B3D8 00802825 */ move $a1, $a0 +/* 04FF0C 7F01B3DC AC6E0004 */ sw $t6, 4($v1) +/* 04FF10 7F01B3E0 46002180 */ add.s $f6, $f4, $f0 +/* 04FF14 7F01B3E4 24840008 */ addiu $a0, $a0, 8 +/* 04FF18 7F01B3E8 3C0FFA00 */ lui $t7, 0xfa00 +/* 04FF1C 7F01B3EC ACAF0000 */ sw $t7, ($a1) +/* 04FF20 7F01B3F0 4458F800 */ cfc1 $t8, $31 +/* 04FF24 7F01B3F4 44D9F800 */ ctc1 $t9, $31 +/* 04FF28 7F01B3F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04FF2C 7F01B3FC 00801025 */ move $v0, $a0 +/* 04FF30 7F01B400 46003224 */ cvt.w.s $f8, $f6 +/* 04FF34 7F01B404 4459F800 */ cfc1 $t9, $31 +/* 04FF38 7F01B408 00000000 */ nop +/* 04FF3C 7F01B40C 33390078 */ andi $t9, $t9, 0x78 +/* 04FF40 7F01B410 53200013 */ beql $t9, $zero, .L7F01B460 +/* 04FF44 7F01B414 44194000 */ mfc1 $t9, $f8 +/* 04FF48 7F01B418 44814000 */ mtc1 $at, $f8 +/* 04FF4C 7F01B41C 24190001 */ li $t9, 1 +/* 04FF50 7F01B420 46083201 */ sub.s $f8, $f6, $f8 +/* 04FF54 7F01B424 44D9F800 */ ctc1 $t9, $31 +/* 04FF58 7F01B428 00000000 */ nop +/* 04FF5C 7F01B42C 46004224 */ cvt.w.s $f8, $f8 +/* 04FF60 7F01B430 4459F800 */ cfc1 $t9, $31 +/* 04FF64 7F01B434 00000000 */ nop +/* 04FF68 7F01B438 33390078 */ andi $t9, $t9, 0x78 +/* 04FF6C 7F01B43C 17200005 */ bnez $t9, .L7F01B454 +/* 04FF70 7F01B440 00000000 */ nop +/* 04FF74 7F01B444 44194000 */ mfc1 $t9, $f8 +/* 04FF78 7F01B448 3C018000 */ lui $at, 0x8000 +/* 04FF7C 7F01B44C 10000007 */ b .L7F01B46C +/* 04FF80 7F01B450 0321C825 */ or $t9, $t9, $at +.L7F01B454: +/* 04FF84 7F01B454 10000005 */ b .L7F01B46C +/* 04FF88 7F01B458 2419FFFF */ li $t9, -1 +/* 04FF8C 7F01B45C 44194000 */ mfc1 $t9, $f8 +.L7F01B460: +/* 04FF90 7F01B460 00000000 */ nop +/* 04FF94 7F01B464 0720FFFB */ bltz $t9, .L7F01B454 +/* 04FF98 7F01B468 00000000 */ nop +.L7F01B46C: +/* 04FF9C 7F01B46C 44D8F800 */ ctc1 $t8, $31 +/* 04FFA0 7F01B470 03207025 */ move $t6, $t9 +/* 04FFA4 7F01B474 24190001 */ li $t9, 1 +/* 04FFA8 7F01B478 460EB282 */ mul.s $f10, $f22, $f14 +/* 04FFAC 7F01B47C 000E7E00 */ sll $t7, $t6, 0x18 +/* 04FFB0 7F01B480 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04FFB4 7F01B484 46105103 */ div.s $f4, $f10, $f16 +/* 04FFB8 7F01B488 46041180 */ add.s $f6, $f2, $f4 +/* 04FFBC 7F01B48C 4458F800 */ cfc1 $t8, $31 +/* 04FFC0 7F01B490 44D9F800 */ ctc1 $t9, $31 +/* 04FFC4 7F01B494 00000000 */ nop +/* 04FFC8 7F01B498 46003224 */ cvt.w.s $f8, $f6 +/* 04FFCC 7F01B49C 4459F800 */ cfc1 $t9, $31 +/* 04FFD0 7F01B4A0 00000000 */ nop +/* 04FFD4 7F01B4A4 33390078 */ andi $t9, $t9, 0x78 +/* 04FFD8 7F01B4A8 53200013 */ beql $t9, $zero, .L7F01B4F8 +/* 04FFDC 7F01B4AC 44194000 */ mfc1 $t9, $f8 +/* 04FFE0 7F01B4B0 44814000 */ mtc1 $at, $f8 +/* 04FFE4 7F01B4B4 24190001 */ li $t9, 1 +/* 04FFE8 7F01B4B8 46083201 */ sub.s $f8, $f6, $f8 +/* 04FFEC 7F01B4BC 44D9F800 */ ctc1 $t9, $31 +/* 04FFF0 7F01B4C0 00000000 */ nop +/* 04FFF4 7F01B4C4 46004224 */ cvt.w.s $f8, $f8 +/* 04FFF8 7F01B4C8 4459F800 */ cfc1 $t9, $31 +/* 04FFFC 7F01B4CC 00000000 */ nop +/* 050000 7F01B4D0 33390078 */ andi $t9, $t9, 0x78 +/* 050004 7F01B4D4 17200005 */ bnez $t9, .L7F01B4EC +/* 050008 7F01B4D8 00000000 */ nop +/* 05000C 7F01B4DC 44194000 */ mfc1 $t9, $f8 +/* 050010 7F01B4E0 3C018000 */ lui $at, 0x8000 +/* 050014 7F01B4E4 10000007 */ b .L7F01B504 +/* 050018 7F01B4E8 0321C825 */ or $t9, $t9, $at +.L7F01B4EC: +/* 05001C 7F01B4EC 10000005 */ b .L7F01B504 +/* 050020 7F01B4F0 2419FFFF */ li $t9, -1 +/* 050024 7F01B4F4 44194000 */ mfc1 $t9, $f8 +.L7F01B4F8: +/* 050028 7F01B4F8 00000000 */ nop +/* 05002C 7F01B4FC 0720FFFB */ bltz $t9, .L7F01B4EC +/* 050030 7F01B500 00000000 */ nop +.L7F01B504: +/* 050034 7F01B504 44D8F800 */ ctc1 $t8, $31 +/* 050038 7F01B508 332E00FF */ andi $t6, $t9, 0xff +/* 05003C 7F01B50C 000EC400 */ sll $t8, $t6, 0x10 +/* 050040 7F01B510 460EC282 */ mul.s $f10, $f24, $f14 +/* 050044 7F01B514 01F8C825 */ or $t9, $t7, $t8 +/* 050048 7F01B518 240F0001 */ li $t7, 1 +/* 05004C 7F01B51C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 050050 7F01B520 46105103 */ div.s $f4, $f10, $f16 +/* 050054 7F01B524 46046180 */ add.s $f6, $f12, $f4 +/* 050058 7F01B528 444EF800 */ cfc1 $t6, $31 +/* 05005C 7F01B52C 44CFF800 */ ctc1 $t7, $31 +/* 050060 7F01B530 00000000 */ nop +/* 050064 7F01B534 46003224 */ cvt.w.s $f8, $f6 +/* 050068 7F01B538 444FF800 */ cfc1 $t7, $31 +/* 05006C 7F01B53C 00000000 */ nop +/* 050070 7F01B540 31EF0078 */ andi $t7, $t7, 0x78 +/* 050074 7F01B544 51E00013 */ beql $t7, $zero, .L7F01B594 +/* 050078 7F01B548 440F4000 */ mfc1 $t7, $f8 +/* 05007C 7F01B54C 44814000 */ mtc1 $at, $f8 +/* 050080 7F01B550 240F0001 */ li $t7, 1 +/* 050084 7F01B554 46083201 */ sub.s $f8, $f6, $f8 +/* 050088 7F01B558 44CFF800 */ ctc1 $t7, $31 +/* 05008C 7F01B55C 00000000 */ nop +/* 050090 7F01B560 46004224 */ cvt.w.s $f8, $f8 +/* 050094 7F01B564 444FF800 */ cfc1 $t7, $31 +/* 050098 7F01B568 00000000 */ nop +/* 05009C 7F01B56C 31EF0078 */ andi $t7, $t7, 0x78 +/* 0500A0 7F01B570 15E00005 */ bnez $t7, .L7F01B588 +/* 0500A4 7F01B574 00000000 */ nop +/* 0500A8 7F01B578 440F4000 */ mfc1 $t7, $f8 +/* 0500AC 7F01B57C 3C018000 */ lui $at, 0x8000 +/* 0500B0 7F01B580 10000007 */ b .L7F01B5A0 +/* 0500B4 7F01B584 01E17825 */ or $t7, $t7, $at +.L7F01B588: +/* 0500B8 7F01B588 10000005 */ b .L7F01B5A0 +/* 0500BC 7F01B58C 240FFFFF */ li $t7, -1 +/* 0500C0 7F01B590 440F4000 */ mfc1 $t7, $f8 +.L7F01B594: +/* 0500C4 7F01B594 00000000 */ nop +/* 0500C8 7F01B598 05E0FFFB */ bltz $t7, .L7F01B588 +/* 0500CC 7F01B59C 00000000 */ nop +.L7F01B5A0: +/* 0500D0 7F01B5A0 44CEF800 */ ctc1 $t6, $31 +/* 0500D4 7F01B5A4 31F800FF */ andi $t8, $t7, 0xff +/* 0500D8 7F01B5A8 00187200 */ sll $t6, $t8, 8 +/* 0500DC 7F01B5AC 032E7825 */ or $t7, $t9, $t6 +/* 0500E0 7F01B5B0 35F800FF */ ori $t8, $t7, 0xff +/* 0500E4 7F01B5B4 06210018 */ bgez $s1, .L7F01B618 +/* 0500E8 7F01B5B8 ACB80004 */ sw $t8, 4($a1) +/* 0500EC 7F01B5BC 25190011 */ addiu $t9, $t0, 0x11 +/* 0500F0 7F01B5C0 00197080 */ sll $t6, $t9, 2 +/* 0500F4 7F01B5C4 25CFFFFF */ addiu $t7, $t6, -1 +/* 0500F8 7F01B5C8 31F80FFF */ andi $t8, $t7, 0xfff +/* 0500FC 7F01B5CC 250E0010 */ addiu $t6, $t0, 0x10 +/* 050100 7F01B5D0 000E7880 */ sll $t7, $t6, 2 +/* 050104 7F01B5D4 030AC825 */ or $t9, $t8, $t2 +/* 050108 7F01B5D8 00801025 */ move $v0, $a0 +/* 05010C 7F01B5DC 24840008 */ addiu $a0, $a0, 8 +/* 050110 7F01B5E0 31F80FFF */ andi $t8, $t7, 0xfff +/* 050114 7F01B5E4 AC580004 */ sw $t8, 4($v0) +/* 050118 7F01B5E8 00801825 */ move $v1, $a0 +/* 05011C 7F01B5EC 24840008 */ addiu $a0, $a0, 8 +/* 050120 7F01B5F0 00117823 */ negu $t7, $s1 +/* 050124 7F01B5F4 AC590000 */ sw $t9, ($v0) +/* 050128 7F01B5F8 000FC540 */ sll $t8, $t7, 0x15 +/* 05012C 7F01B5FC 00802825 */ move $a1, $a0 +/* 050130 7F01B600 AC780004 */ sw $t8, 4($v1) +/* 050134 7F01B604 AC6B0000 */ sw $t3, ($v1) +/* 050138 7F01B608 ACAD0004 */ sw $t5, 4($a1) +/* 05013C 7F01B60C ACAC0000 */ sw $t4, ($a1) +/* 050140 7F01B610 10000018 */ b .L7F01B674 +/* 050144 7F01B614 24840008 */ addiu $a0, $a0, 8 +.L7F01B618: +/* 050148 7F01B618 25190011 */ addiu $t9, $t0, 0x11 +/* 05014C 7F01B61C 00197080 */ sll $t6, $t9, 2 +/* 050150 7F01B620 25CFFFFF */ addiu $t7, $t6, -1 +/* 050154 7F01B624 31F80FFF */ andi $t8, $t7, 0xfff +/* 050158 7F01B628 030AC825 */ or $t9, $t8, $t2 +/* 05015C 7F01B62C 00117080 */ sll $t6, $s1, 2 +/* 050160 7F01B630 31CF0FFF */ andi $t7, $t6, 0xfff +/* 050164 7F01B634 AC590000 */ sw $t9, ($v0) +/* 050168 7F01B638 25190010 */ addiu $t9, $t0, 0x10 +/* 05016C 7F01B63C 00197080 */ sll $t6, $t9, 2 +/* 050170 7F01B640 000FC300 */ sll $t8, $t7, 0xc +/* 050174 7F01B644 31CF0FFF */ andi $t7, $t6, 0xfff +/* 050178 7F01B648 24840008 */ addiu $a0, $a0, 8 +/* 05017C 7F01B64C 00801825 */ move $v1, $a0 +/* 050180 7F01B650 030FC825 */ or $t9, $t8, $t7 +/* 050184 7F01B654 AC590004 */ sw $t9, 4($v0) +/* 050188 7F01B658 24840008 */ addiu $a0, $a0, 8 +/* 05018C 7F01B65C 00802825 */ move $a1, $a0 +/* 050190 7F01B660 AC600004 */ sw $zero, 4($v1) +/* 050194 7F01B664 AC6B0000 */ sw $t3, ($v1) +/* 050198 7F01B668 ACAD0004 */ sw $t5, 4($a1) +/* 05019C 7F01B66C ACAC0000 */ sw $t4, ($a1) +/* 0501A0 7F01B670 24840008 */ addiu $a0, $a0, 8 +.L7F01B674: +/* 0501A4 7F01B674 01204025 */ move $t0, $t1 +/* 0501A8 7F01B678 25290001 */ addiu $t1, $t1, 1 +/* 0501AC 7F01B67C 2921012C */ slti $at, $t1, 0x12c +/* 0501B0 7F01B680 1420FF30 */ bnez $at, .L7F01B344 +/* 0501B4 7F01B684 261001B8 */ addiu $s0, $s0, 0x1b8 +/* 0501B8 7F01B688 3C018003 */ lui $at, %hi(D_8002BB08) +/* 0501BC 7F01B68C E42CBB08 */ swc1 $f12, %lo(D_8002BB08)($at) +/* 0501C0 7F01B690 8FBF0044 */ lw $ra, 0x44($sp) +/* 0501C4 7F01B694 3C018003 */ lui $at, %hi(D_8002BB04) +/* 0501C8 7F01B698 E422BB04 */ swc1 $f2, %lo(D_8002BB04)($at) +/* 0501CC 7F01B69C 3C018003 */ lui $at, %hi(D_8002BB00) +/* 0501D0 7F01B6A0 D7B40008 */ ldc1 $f20, 8($sp) +/* 0501D4 7F01B6A4 D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0501D8 7F01B6A8 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0501DC 7F01B6AC 8FB00020 */ lw $s0, 0x20($sp) +/* 0501E0 7F01B6B0 8FB10024 */ lw $s1, 0x24($sp) +/* 0501E4 7F01B6B4 8FB20028 */ lw $s2, 0x28($sp) +/* 0501E8 7F01B6B8 8FB3002C */ lw $s3, 0x2c($sp) +/* 0501EC 7F01B6BC 8FB40030 */ lw $s4, 0x30($sp) +/* 0501F0 7F01B6C0 8FB50034 */ lw $s5, 0x34($sp) +/* 0501F4 7F01B6C4 8FB60038 */ lw $s6, 0x38($sp) +/* 0501F8 7F01B6C8 8FB7003C */ lw $s7, 0x3c($sp) +/* 0501FC 7F01B6CC 8FBE0040 */ lw $fp, 0x40($sp) +/* 050200 7F01B6D0 E420BB00 */ swc1 $f0, %lo(D_8002BB00)($at) +/* 050204 7F01B6D4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 050208 7F01B6D8 03E00008 */ jr $ra +/* 05020C 7F01B6DC 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B6E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B6E0 +/* 050210 7F01B6E0 44862000 */ mtc1 $a2, $f4 +/* 050214 7F01B6E4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 050218 7F01B6E8 3C018003 */ lui $at, %hi(D_8002BB2C) +/* 05021C 7F01B6EC 468023A0 */ cvt.s.w $f14, $f4 +/* 050220 7F01B6F0 AFBF0044 */ sw $ra, 0x44($sp) +/* 050224 7F01B6F4 AFBE0040 */ sw $fp, 0x40($sp) +/* 050228 7F01B6F8 AFB60038 */ sw $s6, 0x38($sp) +/* 05022C 7F01B6FC AFB3002C */ sw $s3, 0x2c($sp) +/* 050230 7F01B700 AFB7003C */ sw $s7, 0x3c($sp) +/* 050234 7F01B704 E42EBB2C */ swc1 $f14, %lo(D_8002BB2C)($at) +/* 050238 7F01B708 C426BB2C */ lwc1 $f6, %lo(D_8002BB2C)($at) +/* 05023C 7F01B70C 46007406 */ mov.s $f16, $f14 +/* 050240 7F01B710 3C018003 */ lui $at, %hi(D_8002BB24) +/* 050244 7F01B714 E430BB24 */ swc1 $f16, %lo(D_8002BB24)($at) +/* 050248 7F01B718 3C018003 */ lui $at, %hi(D_8002BB28) +/* 05024C 7F01B71C E42EBB28 */ swc1 $f14, %lo(D_8002BB28)($at) +/* 050250 7F01B720 3C014359 */ li $at, 0x43590000 # 217.000000 +/* 050254 7F01B724 AFB50034 */ sw $s5, 0x34($sp) +/* 050258 7F01B728 AFB40030 */ sw $s4, 0x30($sp) +/* 05025C 7F01B72C AFB20028 */ sw $s2, 0x28($sp) +/* 050260 7F01B730 AFB10024 */ sw $s1, 0x24($sp) +/* 050264 7F01B734 AFB00020 */ sw $s0, 0x20($sp) +/* 050268 7F01B738 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 05026C 7F01B73C F7B60010 */ sdc1 $f22, 0x10($sp) +/* 050270 7F01B740 F7B40008 */ sdc1 $f20, 8($sp) +/* 050274 7F01B744 3C130708 */ lui $s3, (0x07080200 >> 16) # lui $s3, 0x708 +/* 050278 7F01B748 3C160713 */ lui $s6, (0x0713F01A >> 16) # lui $s6, 0x713 +/* 05027C 7F01B74C 3C1EF510 */ lui $fp, (0xF510A000 >> 16) # lui $fp, 0xf510 +/* 050280 7F01B750 3C1F0008 */ lui $ra, (0x00080200 >> 16) # lui $ra, 8 +/* 050284 7F01B754 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 050288 7F01B758 3C0AE44F */ lui $t2, (0xE44FF000 >> 16) # lui $t2, 0xe44f +/* 05028C 7F01B75C 44818000 */ mtc1 $at, $f16 +/* 050290 7F01B760 00A08025 */ move $s0, $a1 +/* 050294 7F01B764 00003825 */ move $a3, $zero +/* 050298 7F01B768 46007006 */ mov.s $f0, $f14 +/* 05029C 7F01B76C 46007306 */ mov.s $f12, $f14 +/* 0502A0 7F01B770 354AF000 */ ori $t2, (0xE44FF000 & 0xFFFF) # ori $t2, $t2, 0xf000 +/* 0502A4 7F01B774 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0502A8 7F01B778 37FF0200 */ ori $ra, (0x00080200 & 0xFFFF) # ori $ra, $ra, 0x200 +/* 0502AC 7F01B77C 37DEA000 */ ori $fp, (0xF510A000 & 0xFFFF) # ori $fp, $fp, 0xa000 +/* 0502B0 7F01B780 36D6F01A */ ori $s6, (0x0713F01A & 0xFFFF) # ori $s6, $s6, 0xf01a +/* 0502B4 7F01B784 36730200 */ ori $s3, (0x07080200 & 0xFFFF) # ori $s3, $s3, 0x200 +/* 0502B8 7F01B788 460E7501 */ sub.s $f20, $f14, $f14 +/* 0502BC 7F01B78C 3C11FD10 */ lui $s1, 0xfd10 +/* 0502C0 7F01B790 3C12F510 */ lui $s2, 0xf510 +/* 0502C4 7F01B794 460E7581 */ sub.s $f22, $f14, $f14 +/* 0502C8 7F01B798 3C14E600 */ lui $s4, 0xe600 +/* 0502CC 7F01B79C 3C15F300 */ lui $s5, 0xf300 +/* 0502D0 7F01B7A0 3C17E700 */ lui $s7, 0xe700 +/* 0502D4 7F01B7A4 24090001 */ li $t1, 1 +/* 0502D8 7F01B7A8 3C0CB300 */ lui $t4, 0xb300 +/* 0502DC 7F01B7AC 3C0BB400 */ lui $t3, 0xb400 +/* 0502E0 7F01B7B0 460E3601 */ sub.s $f24, $f6, $f14 +.L7F01B7B4: +/* 0502E4 7F01B7B4 44874000 */ mtc1 $a3, $f8 +/* 0502E8 7F01B7B8 00801025 */ move $v0, $a0 +/* 0502EC 7F01B7BC 24840008 */ addiu $a0, $a0, 8 +/* 0502F0 7F01B7C0 468040A0 */ cvt.s.w $f2, $f8 +/* 0502F4 7F01B7C4 00801825 */ move $v1, $a0 +/* 0502F8 7F01B7C8 AC510000 */ sw $s1, ($v0) +/* 0502FC 7F01B7CC AC500004 */ sw $s0, 4($v0) +/* 050300 7F01B7D0 24840008 */ addiu $a0, $a0, 8 +/* 050304 7F01B7D4 00802825 */ move $a1, $a0 +/* 050308 7F01B7D8 4602A282 */ mul.s $f10, $f20, $f2 +/* 05030C 7F01B7DC AC730004 */ sw $s3, 4($v1) +/* 050310 7F01B7E0 AC720000 */ sw $s2, ($v1) +/* 050314 7F01B7E4 24840008 */ addiu $a0, $a0, 8 +/* 050318 7F01B7E8 00803025 */ move $a2, $a0 +/* 05031C 7F01B7EC 24840008 */ addiu $a0, $a0, 8 +/* 050320 7F01B7F0 ACB40000 */ sw $s4, ($a1) +/* 050324 7F01B7F4 46105103 */ div.s $f4, $f10, $f16 +/* 050328 7F01B7F8 ACA00004 */ sw $zero, 4($a1) +/* 05032C 7F01B7FC 00804025 */ move $t0, $a0 +/* 050330 7F01B800 24840008 */ addiu $a0, $a0, 8 +/* 050334 7F01B804 ACD60004 */ sw $s6, 4($a2) +/* 050338 7F01B808 ACD50000 */ sw $s5, ($a2) +/* 05033C 7F01B80C 00801025 */ move $v0, $a0 +/* 050340 7F01B810 AD000004 */ sw $zero, 4($t0) +/* 050344 7F01B814 AD170000 */ sw $s7, ($t0) +/* 050348 7F01B818 24840008 */ addiu $a0, $a0, 8 +/* 05034C 7F01B81C 00801825 */ move $v1, $a0 +/* 050350 7F01B820 AC5F0004 */ sw $ra, 4($v0) +/* 050354 7F01B824 AC5E0000 */ sw $fp, ($v0) +/* 050358 7F01B828 3C0EF200 */ lui $t6, 0xf200 +/* 05035C 7F01B82C AC6E0000 */ sw $t6, ($v1) +/* 050360 7F01B830 240E0001 */ li $t6, 1 +/* 050364 7F01B834 24840008 */ addiu $a0, $a0, 8 +/* 050368 7F01B838 00802825 */ move $a1, $a0 +/* 05036C 7F01B83C 3C0F004F */ lui $t7, (0x004FC000 >> 16) # lui $t7, 0x4f +/* 050370 7F01B840 24840008 */ addiu $a0, $a0, 8 +/* 050374 7F01B844 35EFC000 */ ori $t7, (0x004FC000 & 0xFFFF) # ori $t7, $t7, 0xc000 +/* 050378 7F01B848 00801025 */ move $v0, $a0 +/* 05037C 7F01B84C AC6F0004 */ sw $t7, 4($v1) +/* 050380 7F01B850 46002180 */ add.s $f6, $f4, $f0 +/* 050384 7F01B854 24840008 */ addiu $a0, $a0, 8 +/* 050388 7F01B858 3C18FA00 */ lui $t8, 0xfa00 +/* 05038C 7F01B85C 00801825 */ move $v1, $a0 +/* 050390 7F01B860 4459F800 */ cfc1 $t9, $31 +/* 050394 7F01B864 44CEF800 */ ctc1 $t6, $31 +/* 050398 7F01B868 ACB80000 */ sw $t8, ($a1) +/* 05039C 7F01B86C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0503A0 7F01B870 46003224 */ cvt.w.s $f8, $f6 +/* 0503A4 7F01B874 24840008 */ addiu $a0, $a0, 8 +/* 0503A8 7F01B878 26100280 */ addiu $s0, $s0, 0x280 +/* 0503AC 7F01B87C 444EF800 */ cfc1 $t6, $31 +/* 0503B0 7F01B880 00000000 */ nop +/* 0503B4 7F01B884 31CE0078 */ andi $t6, $t6, 0x78 +/* 0503B8 7F01B888 51C00013 */ beql $t6, $zero, .L7F01B8D8 +/* 0503BC 7F01B88C 440E4000 */ mfc1 $t6, $f8 +/* 0503C0 7F01B890 44814000 */ mtc1 $at, $f8 +/* 0503C4 7F01B894 240E0001 */ li $t6, 1 +/* 0503C8 7F01B898 46083201 */ sub.s $f8, $f6, $f8 +/* 0503CC 7F01B89C 44CEF800 */ ctc1 $t6, $31 +/* 0503D0 7F01B8A0 00000000 */ nop +/* 0503D4 7F01B8A4 46004224 */ cvt.w.s $f8, $f8 +/* 0503D8 7F01B8A8 444EF800 */ cfc1 $t6, $31 +/* 0503DC 7F01B8AC 00000000 */ nop +/* 0503E0 7F01B8B0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0503E4 7F01B8B4 15C00005 */ bnez $t6, .L7F01B8CC +/* 0503E8 7F01B8B8 00000000 */ nop +/* 0503EC 7F01B8BC 440E4000 */ mfc1 $t6, $f8 +/* 0503F0 7F01B8C0 3C018000 */ lui $at, 0x8000 +/* 0503F4 7F01B8C4 10000007 */ b .L7F01B8E4 +/* 0503F8 7F01B8C8 01C17025 */ or $t6, $t6, $at +.L7F01B8CC: +/* 0503FC 7F01B8CC 10000005 */ b .L7F01B8E4 +/* 050400 7F01B8D0 240EFFFF */ li $t6, -1 +/* 050404 7F01B8D4 440E4000 */ mfc1 $t6, $f8 +.L7F01B8D8: +/* 050408 7F01B8D8 00000000 */ nop +/* 05040C 7F01B8DC 05C0FFFB */ bltz $t6, .L7F01B8CC +/* 050410 7F01B8E0 00000000 */ nop +.L7F01B8E4: +/* 050414 7F01B8E4 44D9F800 */ ctc1 $t9, $31 +/* 050418 7F01B8E8 01C07825 */ move $t7, $t6 +/* 05041C 7F01B8EC 240E0001 */ li $t6, 1 +/* 050420 7F01B8F0 4602B282 */ mul.s $f10, $f22, $f2 +/* 050424 7F01B8F4 000FC600 */ sll $t8, $t7, 0x18 +/* 050428 7F01B8F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 05042C 7F01B8FC 46105103 */ div.s $f4, $f10, $f16 +/* 050430 7F01B900 46046180 */ add.s $f6, $f12, $f4 +/* 050434 7F01B904 4459F800 */ cfc1 $t9, $31 +/* 050438 7F01B908 44CEF800 */ ctc1 $t6, $31 +/* 05043C 7F01B90C 00000000 */ nop +/* 050440 7F01B910 46003224 */ cvt.w.s $f8, $f6 +/* 050444 7F01B914 444EF800 */ cfc1 $t6, $31 +/* 050448 7F01B918 00000000 */ nop +/* 05044C 7F01B91C 31CE0078 */ andi $t6, $t6, 0x78 +/* 050450 7F01B920 51C00013 */ beql $t6, $zero, .L7F01B970 +/* 050454 7F01B924 440E4000 */ mfc1 $t6, $f8 +/* 050458 7F01B928 44814000 */ mtc1 $at, $f8 +/* 05045C 7F01B92C 240E0001 */ li $t6, 1 +/* 050460 7F01B930 46083201 */ sub.s $f8, $f6, $f8 +/* 050464 7F01B934 44CEF800 */ ctc1 $t6, $31 +/* 050468 7F01B938 00000000 */ nop +/* 05046C 7F01B93C 46004224 */ cvt.w.s $f8, $f8 +/* 050470 7F01B940 444EF800 */ cfc1 $t6, $31 +/* 050474 7F01B944 00000000 */ nop +/* 050478 7F01B948 31CE0078 */ andi $t6, $t6, 0x78 +/* 05047C 7F01B94C 15C00005 */ bnez $t6, .L7F01B964 +/* 050480 7F01B950 00000000 */ nop +/* 050484 7F01B954 440E4000 */ mfc1 $t6, $f8 +/* 050488 7F01B958 3C018000 */ lui $at, 0x8000 +/* 05048C 7F01B95C 10000007 */ b .L7F01B97C +/* 050490 7F01B960 01C17025 */ or $t6, $t6, $at +.L7F01B964: +/* 050494 7F01B964 10000005 */ b .L7F01B97C +/* 050498 7F01B968 240EFFFF */ li $t6, -1 +/* 05049C 7F01B96C 440E4000 */ mfc1 $t6, $f8 +.L7F01B970: +/* 0504A0 7F01B970 00000000 */ nop +/* 0504A4 7F01B974 05C0FFFB */ bltz $t6, .L7F01B964 +/* 0504A8 7F01B978 00000000 */ nop +.L7F01B97C: +/* 0504AC 7F01B97C 44D9F800 */ ctc1 $t9, $31 +/* 0504B0 7F01B980 31CF00FF */ andi $t7, $t6, 0xff +/* 0504B4 7F01B984 000FCC00 */ sll $t9, $t7, 0x10 +/* 0504B8 7F01B988 4602C282 */ mul.s $f10, $f24, $f2 +/* 0504BC 7F01B98C 03197025 */ or $t6, $t8, $t9 +/* 0504C0 7F01B990 24180001 */ li $t8, 1 +/* 0504C4 7F01B994 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0504C8 7F01B998 46105103 */ div.s $f4, $f10, $f16 +/* 0504CC 7F01B99C 46047180 */ add.s $f6, $f14, $f4 +/* 0504D0 7F01B9A0 444FF800 */ cfc1 $t7, $31 +/* 0504D4 7F01B9A4 44D8F800 */ ctc1 $t8, $31 +/* 0504D8 7F01B9A8 00000000 */ nop +/* 0504DC 7F01B9AC 46003224 */ cvt.w.s $f8, $f6 +/* 0504E0 7F01B9B0 4458F800 */ cfc1 $t8, $31 +/* 0504E4 7F01B9B4 00000000 */ nop +/* 0504E8 7F01B9B8 33180078 */ andi $t8, $t8, 0x78 +/* 0504EC 7F01B9BC 53000013 */ beql $t8, $zero, .L7F01BA0C +/* 0504F0 7F01B9C0 44184000 */ mfc1 $t8, $f8 +/* 0504F4 7F01B9C4 44814000 */ mtc1 $at, $f8 +/* 0504F8 7F01B9C8 24180001 */ li $t8, 1 +/* 0504FC 7F01B9CC 46083201 */ sub.s $f8, $f6, $f8 +/* 050500 7F01B9D0 44D8F800 */ ctc1 $t8, $31 +/* 050504 7F01B9D4 00000000 */ nop +/* 050508 7F01B9D8 46004224 */ cvt.w.s $f8, $f8 +/* 05050C 7F01B9DC 4458F800 */ cfc1 $t8, $31 +/* 050510 7F01B9E0 00000000 */ nop +/* 050514 7F01B9E4 33180078 */ andi $t8, $t8, 0x78 +/* 050518 7F01B9E8 17000005 */ bnez $t8, .L7F01BA00 +/* 05051C 7F01B9EC 00000000 */ nop +/* 050520 7F01B9F0 44184000 */ mfc1 $t8, $f8 +/* 050524 7F01B9F4 3C018000 */ lui $at, 0x8000 +/* 050528 7F01B9F8 10000007 */ b .L7F01BA18 +/* 05052C 7F01B9FC 0301C025 */ or $t8, $t8, $at +.L7F01BA00: +/* 050530 7F01BA00 10000005 */ b .L7F01BA18 +/* 050534 7F01BA04 2418FFFF */ li $t8, -1 +/* 050538 7F01BA08 44184000 */ mfc1 $t8, $f8 +.L7F01BA0C: +/* 05053C 7F01BA0C 00000000 */ nop +/* 050540 7F01BA10 0700FFFB */ bltz $t8, .L7F01BA00 +/* 050544 7F01BA14 00000000 */ nop +.L7F01BA18: +/* 050548 7F01BA18 44CFF800 */ ctc1 $t7, $31 +/* 05054C 7F01BA1C 331900FF */ andi $t9, $t8, 0xff +/* 050550 7F01BA20 00197A00 */ sll $t7, $t9, 8 +/* 050554 7F01BA24 01CFC025 */ or $t8, $t6, $t7 +/* 050558 7F01BA28 371900FF */ ori $t9, $t8, 0xff +/* 05055C 7F01BA2C 24EE000D */ addiu $t6, $a3, 0xd +/* 050560 7F01BA30 000E7880 */ sll $t7, $t6, 2 +/* 050564 7F01BA34 ACB90004 */ sw $t9, 4($a1) +/* 050568 7F01BA38 25F8FFFF */ addiu $t8, $t7, -1 +/* 05056C 7F01BA3C 33190FFF */ andi $t9, $t8, 0xfff +/* 050570 7F01BA40 24EF000C */ addiu $t7, $a3, 0xc +/* 050574 7F01BA44 000FC080 */ sll $t8, $t7, 2 +/* 050578 7F01BA48 032A7025 */ or $t6, $t9, $t2 +/* 05057C 7F01BA4C 33190FFF */ andi $t9, $t8, 0xfff +/* 050580 7F01BA50 AC590004 */ sw $t9, 4($v0) +/* 050584 7F01BA54 AC4E0000 */ sw $t6, ($v0) +/* 050588 7F01BA58 01203825 */ move $a3, $t1 +/* 05058C 7F01BA5C 00802825 */ move $a1, $a0 +/* 050590 7F01BA60 25290001 */ addiu $t1, $t1, 1 +/* 050594 7F01BA64 AC600004 */ sw $zero, 4($v1) +/* 050598 7F01BA68 AC6B0000 */ sw $t3, ($v1) +/* 05059C 7F01BA6C 292100DA */ slti $at, $t1, 0xda +/* 0505A0 7F01BA70 ACAD0004 */ sw $t5, 4($a1) +/* 0505A4 7F01BA74 ACAC0000 */ sw $t4, ($a1) +/* 0505A8 7F01BA78 1420FF4E */ bnez $at, .L7F01B7B4 +/* 0505AC 7F01BA7C 24840008 */ addiu $a0, $a0, 8 +/* 0505B0 7F01BA80 3C018003 */ lui $at, %hi(D_8002BB20) +/* 0505B4 7F01BA84 E42EBB20 */ swc1 $f14, %lo(D_8002BB20)($at) +/* 0505B8 7F01BA88 8FBF0044 */ lw $ra, 0x44($sp) +/* 0505BC 7F01BA8C 3C018003 */ lui $at, %hi(D_8002BB1C) +/* 0505C0 7F01BA90 E42CBB1C */ swc1 $f12, %lo(D_8002BB1C)($at) +/* 0505C4 7F01BA94 3C018003 */ lui $at, %hi(D_8002BB18) +/* 0505C8 7F01BA98 D7B40008 */ ldc1 $f20, 8($sp) +/* 0505CC 7F01BA9C D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0505D0 7F01BAA0 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0505D4 7F01BAA4 8FB00020 */ lw $s0, 0x20($sp) +/* 0505D8 7F01BAA8 8FB10024 */ lw $s1, 0x24($sp) +/* 0505DC 7F01BAAC 8FB20028 */ lw $s2, 0x28($sp) +/* 0505E0 7F01BAB0 8FB3002C */ lw $s3, 0x2c($sp) +/* 0505E4 7F01BAB4 8FB40030 */ lw $s4, 0x30($sp) +/* 0505E8 7F01BAB8 8FB50034 */ lw $s5, 0x34($sp) +/* 0505EC 7F01BABC 8FB60038 */ lw $s6, 0x38($sp) +/* 0505F0 7F01BAC0 8FB7003C */ lw $s7, 0x3c($sp) +/* 0505F4 7F01BAC4 8FBE0040 */ lw $fp, 0x40($sp) +/* 0505F8 7F01BAC8 E420BB18 */ swc1 $f0, %lo(D_8002BB18)($at) +/* 0505FC 7F01BACC 27BD0048 */ addiu $sp, $sp, 0x48 +/* 050600 7F01BAD0 03E00008 */ jr $ra +/* 050604 7F01BAD4 00801025 */ move $v0, $a0 +) +#endif + + diff --git a/src/game/unk_01BAE0.c b/src/game/unk_01BAE0.c new file mode 100644 index 0000000..861352a --- /dev/null +++ b/src/game/unk_01BAE0.c @@ -0,0 +1,440 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void sub_GAME_7F01BAE0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel PI_80051D00 +.word 0x40490FDB /*3.1415927*/ +.text +glabel sub_GAME_7F01BAE0 +/* 050610 7F01BAE0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 050614 7F01BAE4 AFB50058 */ sw $s5, 0x58($sp) +/* 050618 7F01BAE8 AFB2004C */ sw $s2, 0x4c($sp) +/* 05061C 7F01BAEC AFB00044 */ sw $s0, 0x44($sp) +/* 050620 7F01BAF0 00808025 */ move $s0, $a0 +/* 050624 7F01BAF4 00A0A825 */ move $s5, $a1 +/* 050628 7F01BAF8 AFBF005C */ sw $ra, 0x5c($sp) +/* 05062C 7F01BAFC AFB40054 */ sw $s4, 0x54($sp) +/* 050630 7F01BB00 AFB30050 */ sw $s3, 0x50($sp) +/* 050634 7F01BB04 AFB10048 */ sw $s1, 0x48($sp) +/* 050638 7F01BB08 F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 05063C 7F01BB0C F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 050640 7F01BB10 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 050644 7F01BB14 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 050648 7F01BB18 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 05064C 7F01BB1C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 050650 7F01BB20 04A00126 */ bltz $a1, .L7F01BFBC +/* 050654 7F01BB24 00009025 */ move $s2, $zero +/* 050658 7F01BB28 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 05065C 7F01BB2C 4481F000 */ mtc1 $at, $f30 +/* 050660 7F01BB30 3C018005 */ lui $at, %hi(PI_80051D00) +/* 050664 7F01BB34 C43C1D00 */ lwc1 $f28, %lo(PI_80051D00)($at) +/* 050668 7F01BB38 3C01C2DE */ li $at, 0xC2DE0000 # -111.000000 +/* 05066C 7F01BB3C 44952000 */ mtc1 $s5, $f4 +/* 050670 7F01BB40 4481C000 */ mtc1 $at, $f24 +/* 050674 7F01BB44 3C01430F */ li $at, 0x430F0000 # 143.000000 +/* 050678 7F01BB48 4481B000 */ mtc1 $at, $f22 +/* 05067C 7F01BB4C 241100FF */ li $s1, 255 +/* 050680 7F01BB50 468026A0 */ cvt.s.w $f26, $f4 +/* 050684 7F01BB54 44923000 */ mtc1 $s2, $f6 +.L7F01BB58: +/* 050688 7F01BB58 00000000 */ nop +/* 05068C 7F01BB5C 46803220 */ cvt.s.w $f8, $f6 +/* 050690 7F01BB60 461C4282 */ mul.s $f10, $f8, $f28 +/* 050694 7F01BB64 461A5503 */ div.s $f20, $f10, $f26 +/* 050698 7F01BB68 0FC15FAB */ jal sinf +/* 05069C 7F01BB6C 4600A306 */ mov.s $f12, $f20 +/* 0506A0 7F01BB70 461E0402 */ mul.s $f16, $f0, $f30 +/* 0506A4 7F01BB74 4600A306 */ mov.s $f12, $f20 +/* 0506A8 7F01BB78 4600848D */ trunc.w.s $f18, $f16 +/* 0506AC 7F01BB7C 44139000 */ mfc1 $s3, $f18 +/* 0506B0 7F01BB80 00000000 */ nop +/* 0506B4 7F01BB84 00137C00 */ sll $t7, $s3, 0x10 +/* 0506B8 7F01BB88 0FC15FA8 */ jal cosf +/* 0506BC 7F01BB8C 000F9C03 */ sra $s3, $t7, 0x10 +/* 0506C0 7F01BB90 3C01C280 */ li $at, 0xC2800000 # -64.000000 +/* 0506C4 7F01BB94 44812000 */ mtc1 $at, $f4 +/* 0506C8 7F01BB98 A6130000 */ sh $s3, ($s0) +/* 0506CC 7F01BB9C A6000004 */ sh $zero, 4($s0) +/* 0506D0 7F01BBA0 46040182 */ mul.s $f6, $f0, $f4 +/* 0506D4 7F01BBA4 A6000006 */ sh $zero, 6($s0) +/* 0506D8 7F01BBA8 A6000008 */ sh $zero, 8($s0) +/* 0506DC 7F01BBAC A600000A */ sh $zero, 0xa($s0) +/* 0506E0 7F01BBB0 A211000C */ sb $s1, 0xc($s0) +/* 0506E4 7F01BBB4 A211000D */ sb $s1, 0xd($s0) +/* 0506E8 7F01BBB8 A211000E */ sb $s1, 0xe($s0) +/* 0506EC 7F01BBBC 4600320D */ trunc.w.s $f8, $f6 +/* 0506F0 7F01BBC0 4600A306 */ mov.s $f12, $f20 +/* 0506F4 7F01BBC4 44024000 */ mfc1 $v0, $f8 +/* 0506F8 7F01BBC8 00000000 */ nop +/* 0506FC 7F01BBCC 0002A400 */ sll $s4, $v0, 0x10 +/* 050700 7F01BBD0 00144403 */ sra $t0, $s4, 0x10 +/* 050704 7F01BBD4 0100A025 */ move $s4, $t0 +/* 050708 7F01BBD8 0FC15FA8 */ jal cosf +/* 05070C 7F01BBDC A6020002 */ sh $v0, 2($s0) +/* 050710 7F01BBE0 46180282 */ mul.s $f10, $f0, $f24 +/* 050714 7F01BBE4 240A0001 */ li $t2, 1 +/* 050718 7F01BBE8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 05071C 7F01BBEC 460AB401 */ sub.s $f16, $f22, $f10 +/* 050720 7F01BBF0 4449F800 */ cfc1 $t1, $31 +/* 050724 7F01BBF4 44CAF800 */ ctc1 $t2, $31 +/* 050728 7F01BBF8 00000000 */ nop +/* 05072C 7F01BBFC 460084A4 */ cvt.w.s $f18, $f16 +/* 050730 7F01BC00 444AF800 */ cfc1 $t2, $31 +/* 050734 7F01BC04 00000000 */ nop +/* 050738 7F01BC08 314A0078 */ andi $t2, $t2, 0x78 +/* 05073C 7F01BC0C 51400013 */ beql $t2, $zero, .L7F01BC5C +/* 050740 7F01BC10 440A9000 */ mfc1 $t2, $f18 +/* 050744 7F01BC14 44819000 */ mtc1 $at, $f18 +/* 050748 7F01BC18 240A0001 */ li $t2, 1 +/* 05074C 7F01BC1C 46128481 */ sub.s $f18, $f16, $f18 +/* 050750 7F01BC20 44CAF800 */ ctc1 $t2, $31 +/* 050754 7F01BC24 00000000 */ nop +/* 050758 7F01BC28 460094A4 */ cvt.w.s $f18, $f18 +/* 05075C 7F01BC2C 444AF800 */ cfc1 $t2, $31 +/* 050760 7F01BC30 00000000 */ nop +/* 050764 7F01BC34 314A0078 */ andi $t2, $t2, 0x78 +/* 050768 7F01BC38 15400005 */ bnez $t2, .L7F01BC50 +/* 05076C 7F01BC3C 00000000 */ nop +/* 050770 7F01BC40 440A9000 */ mfc1 $t2, $f18 +/* 050774 7F01BC44 3C018000 */ lui $at, 0x8000 +/* 050778 7F01BC48 10000007 */ b .L7F01BC68 +/* 05077C 7F01BC4C 01415025 */ or $t2, $t2, $at +.L7F01BC50: +/* 050780 7F01BC50 10000005 */ b .L7F01BC68 +/* 050784 7F01BC54 240AFFFF */ li $t2, -1 +/* 050788 7F01BC58 440A9000 */ mfc1 $t2, $f18 +.L7F01BC5C: +/* 05078C 7F01BC5C 00000000 */ nop +/* 050790 7F01BC60 0540FFFB */ bltz $t2, .L7F01BC50 +/* 050794 7F01BC64 00000000 */ nop +.L7F01BC68: +/* 050798 7F01BC68 44C9F800 */ ctc1 $t1, $31 +/* 05079C 7F01BC6C A20A000C */ sb $t2, 0xc($s0) +/* 0507A0 7F01BC70 0FC15FA8 */ jal cosf +/* 0507A4 7F01BC74 4600A306 */ mov.s $f12, $f20 +/* 0507A8 7F01BC78 46180102 */ mul.s $f4, $f0, $f24 +/* 0507AC 7F01BC7C 240C0001 */ li $t4, 1 +/* 0507B0 7F01BC80 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0507B4 7F01BC84 4604B181 */ sub.s $f6, $f22, $f4 +/* 0507B8 7F01BC88 444BF800 */ cfc1 $t3, $31 +/* 0507BC 7F01BC8C 44CCF800 */ ctc1 $t4, $31 +/* 0507C0 7F01BC90 00000000 */ nop +/* 0507C4 7F01BC94 46003224 */ cvt.w.s $f8, $f6 +/* 0507C8 7F01BC98 444CF800 */ cfc1 $t4, $31 +/* 0507CC 7F01BC9C 00000000 */ nop +/* 0507D0 7F01BCA0 318C0078 */ andi $t4, $t4, 0x78 +/* 0507D4 7F01BCA4 51800013 */ beql $t4, $zero, .L7F01BCF4 +/* 0507D8 7F01BCA8 440C4000 */ mfc1 $t4, $f8 +/* 0507DC 7F01BCAC 44814000 */ mtc1 $at, $f8 +/* 0507E0 7F01BCB0 240C0001 */ li $t4, 1 +/* 0507E4 7F01BCB4 46083201 */ sub.s $f8, $f6, $f8 +/* 0507E8 7F01BCB8 44CCF800 */ ctc1 $t4, $31 +/* 0507EC 7F01BCBC 00000000 */ nop +/* 0507F0 7F01BCC0 46004224 */ cvt.w.s $f8, $f8 +/* 0507F4 7F01BCC4 444CF800 */ cfc1 $t4, $31 +/* 0507F8 7F01BCC8 00000000 */ nop +/* 0507FC 7F01BCCC 318C0078 */ andi $t4, $t4, 0x78 +/* 050800 7F01BCD0 15800005 */ bnez $t4, .L7F01BCE8 +/* 050804 7F01BCD4 00000000 */ nop +/* 050808 7F01BCD8 440C4000 */ mfc1 $t4, $f8 +/* 05080C 7F01BCDC 3C018000 */ lui $at, 0x8000 +/* 050810 7F01BCE0 10000007 */ b .L7F01BD00 +/* 050814 7F01BCE4 01816025 */ or $t4, $t4, $at +.L7F01BCE8: +/* 050818 7F01BCE8 10000005 */ b .L7F01BD00 +/* 05081C 7F01BCEC 240CFFFF */ li $t4, -1 +/* 050820 7F01BCF0 440C4000 */ mfc1 $t4, $f8 +.L7F01BCF4: +/* 050824 7F01BCF4 00000000 */ nop +/* 050828 7F01BCF8 0580FFFB */ bltz $t4, .L7F01BCE8 +/* 05082C 7F01BCFC 00000000 */ nop +.L7F01BD00: +/* 050830 7F01BD00 44CBF800 */ ctc1 $t3, $31 +/* 050834 7F01BD04 A20C000D */ sb $t4, 0xd($s0) +/* 050838 7F01BD08 0FC15FA8 */ jal cosf +/* 05083C 7F01BD0C 4600A306 */ mov.s $f12, $f20 +/* 050840 7F01BD10 46180282 */ mul.s $f10, $f0, $f24 +/* 050844 7F01BD14 240E0001 */ li $t6, 1 +/* 050848 7F01BD18 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 05084C 7F01BD1C 460AB401 */ sub.s $f16, $f22, $f10 +/* 050850 7F01BD20 444DF800 */ cfc1 $t5, $31 +/* 050854 7F01BD24 44CEF800 */ ctc1 $t6, $31 +/* 050858 7F01BD28 00000000 */ nop +/* 05085C 7F01BD2C 460084A4 */ cvt.w.s $f18, $f16 +/* 050860 7F01BD30 444EF800 */ cfc1 $t6, $31 +/* 050864 7F01BD34 00000000 */ nop +/* 050868 7F01BD38 31CE0078 */ andi $t6, $t6, 0x78 +/* 05086C 7F01BD3C 51C00013 */ beql $t6, $zero, .L7F01BD8C +/* 050870 7F01BD40 440E9000 */ mfc1 $t6, $f18 +/* 050874 7F01BD44 44819000 */ mtc1 $at, $f18 +/* 050878 7F01BD48 240E0001 */ li $t6, 1 +/* 05087C 7F01BD4C 46128481 */ sub.s $f18, $f16, $f18 +/* 050880 7F01BD50 44CEF800 */ ctc1 $t6, $31 +/* 050884 7F01BD54 00000000 */ nop +/* 050888 7F01BD58 460094A4 */ cvt.w.s $f18, $f18 +/* 05088C 7F01BD5C 444EF800 */ cfc1 $t6, $31 +/* 050890 7F01BD60 00000000 */ nop +/* 050894 7F01BD64 31CE0078 */ andi $t6, $t6, 0x78 +/* 050898 7F01BD68 15C00005 */ bnez $t6, .L7F01BD80 +/* 05089C 7F01BD6C 00000000 */ nop +/* 0508A0 7F01BD70 440E9000 */ mfc1 $t6, $f18 +/* 0508A4 7F01BD74 3C018000 */ lui $at, 0x8000 +/* 0508A8 7F01BD78 10000007 */ b .L7F01BD98 +/* 0508AC 7F01BD7C 01C17025 */ or $t6, $t6, $at +.L7F01BD80: +/* 0508B0 7F01BD80 10000005 */ b .L7F01BD98 +/* 0508B4 7F01BD84 240EFFFF */ li $t6, -1 +/* 0508B8 7F01BD88 440E9000 */ mfc1 $t6, $f18 +.L7F01BD8C: +/* 0508BC 7F01BD8C 00000000 */ nop +/* 0508C0 7F01BD90 05C0FFFB */ bltz $t6, .L7F01BD80 +/* 0508C4 7F01BD94 00000000 */ nop +.L7F01BD98: +/* 0508C8 7F01BD98 44CDF800 */ ctc1 $t5, $31 +/* 0508CC 7F01BD9C A20E000E */ sb $t6, 0xe($s0) +/* 0508D0 7F01BDA0 A200000F */ sb $zero, 0xf($s0) +/* 0508D4 7F01BDA4 12400081 */ beqz $s2, .L7F01BFAC +/* 0508D8 7F01BDA8 26100010 */ addiu $s0, $s0, 0x10 +/* 0508DC 7F01BDAC 0255082A */ slt $at, $s2, $s5 +/* 0508E0 7F01BDB0 1020007E */ beqz $at, .L7F01BFAC +/* 0508E4 7F01BDB4 00137823 */ negu $t7, $s3 +/* 0508E8 7F01BDB8 A60F0000 */ sh $t7, ($s0) +/* 0508EC 7F01BDBC A6140002 */ sh $s4, 2($s0) +/* 0508F0 7F01BDC0 A6000004 */ sh $zero, 4($s0) +/* 0508F4 7F01BDC4 A6000006 */ sh $zero, 6($s0) +/* 0508F8 7F01BDC8 A6000008 */ sh $zero, 8($s0) +/* 0508FC 7F01BDCC A600000A */ sh $zero, 0xa($s0) +/* 050900 7F01BDD0 A211000C */ sb $s1, 0xc($s0) +/* 050904 7F01BDD4 A211000D */ sb $s1, 0xd($s0) +/* 050908 7F01BDD8 A211000E */ sb $s1, 0xe($s0) +/* 05090C 7F01BDDC 0FC15FA8 */ jal cosf +/* 050910 7F01BDE0 4600A306 */ mov.s $f12, $f20 +/* 050914 7F01BDE4 46180102 */ mul.s $f4, $f0, $f24 +/* 050918 7F01BDE8 24190001 */ li $t9, 1 +/* 05091C 7F01BDEC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 050920 7F01BDF0 4604B181 */ sub.s $f6, $f22, $f4 +/* 050924 7F01BDF4 4458F800 */ cfc1 $t8, $31 +/* 050928 7F01BDF8 44D9F800 */ ctc1 $t9, $31 +/* 05092C 7F01BDFC 00000000 */ nop +/* 050930 7F01BE00 46003224 */ cvt.w.s $f8, $f6 +/* 050934 7F01BE04 4459F800 */ cfc1 $t9, $31 +/* 050938 7F01BE08 00000000 */ nop +/* 05093C 7F01BE0C 33390078 */ andi $t9, $t9, 0x78 +/* 050940 7F01BE10 53200013 */ beql $t9, $zero, .L7F01BE60 +/* 050944 7F01BE14 44194000 */ mfc1 $t9, $f8 +/* 050948 7F01BE18 44814000 */ mtc1 $at, $f8 +/* 05094C 7F01BE1C 24190001 */ li $t9, 1 +/* 050950 7F01BE20 46083201 */ sub.s $f8, $f6, $f8 +/* 050954 7F01BE24 44D9F800 */ ctc1 $t9, $31 +/* 050958 7F01BE28 00000000 */ nop +/* 05095C 7F01BE2C 46004224 */ cvt.w.s $f8, $f8 +/* 050960 7F01BE30 4459F800 */ cfc1 $t9, $31 +/* 050964 7F01BE34 00000000 */ nop +/* 050968 7F01BE38 33390078 */ andi $t9, $t9, 0x78 +/* 05096C 7F01BE3C 17200005 */ bnez $t9, .L7F01BE54 +/* 050970 7F01BE40 00000000 */ nop +/* 050974 7F01BE44 44194000 */ mfc1 $t9, $f8 +/* 050978 7F01BE48 3C018000 */ lui $at, 0x8000 +/* 05097C 7F01BE4C 10000007 */ b .L7F01BE6C +/* 050980 7F01BE50 0321C825 */ or $t9, $t9, $at +.L7F01BE54: +/* 050984 7F01BE54 10000005 */ b .L7F01BE6C +/* 050988 7F01BE58 2419FFFF */ li $t9, -1 +/* 05098C 7F01BE5C 44194000 */ mfc1 $t9, $f8 +.L7F01BE60: +/* 050990 7F01BE60 00000000 */ nop +/* 050994 7F01BE64 0720FFFB */ bltz $t9, .L7F01BE54 +/* 050998 7F01BE68 00000000 */ nop +.L7F01BE6C: +/* 05099C 7F01BE6C 44D8F800 */ ctc1 $t8, $31 +/* 0509A0 7F01BE70 A219000C */ sb $t9, 0xc($s0) +/* 0509A4 7F01BE74 0FC15FA8 */ jal cosf +/* 0509A8 7F01BE78 4600A306 */ mov.s $f12, $f20 +/* 0509AC 7F01BE7C 46180282 */ mul.s $f10, $f0, $f24 +/* 0509B0 7F01BE80 24090001 */ li $t1, 1 +/* 0509B4 7F01BE84 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0509B8 7F01BE88 460AB401 */ sub.s $f16, $f22, $f10 +/* 0509BC 7F01BE8C 4448F800 */ cfc1 $t0, $31 +/* 0509C0 7F01BE90 44C9F800 */ ctc1 $t1, $31 +/* 0509C4 7F01BE94 00000000 */ nop +/* 0509C8 7F01BE98 460084A4 */ cvt.w.s $f18, $f16 +/* 0509CC 7F01BE9C 4449F800 */ cfc1 $t1, $31 +/* 0509D0 7F01BEA0 00000000 */ nop +/* 0509D4 7F01BEA4 31290078 */ andi $t1, $t1, 0x78 +/* 0509D8 7F01BEA8 51200013 */ beql $t1, $zero, .L7F01BEF8 +/* 0509DC 7F01BEAC 44099000 */ mfc1 $t1, $f18 +/* 0509E0 7F01BEB0 44819000 */ mtc1 $at, $f18 +/* 0509E4 7F01BEB4 24090001 */ li $t1, 1 +/* 0509E8 7F01BEB8 46128481 */ sub.s $f18, $f16, $f18 +/* 0509EC 7F01BEBC 44C9F800 */ ctc1 $t1, $31 +/* 0509F0 7F01BEC0 00000000 */ nop +/* 0509F4 7F01BEC4 460094A4 */ cvt.w.s $f18, $f18 +/* 0509F8 7F01BEC8 4449F800 */ cfc1 $t1, $31 +/* 0509FC 7F01BECC 00000000 */ nop +/* 050A00 7F01BED0 31290078 */ andi $t1, $t1, 0x78 +/* 050A04 7F01BED4 15200005 */ bnez $t1, .L7F01BEEC +/* 050A08 7F01BED8 00000000 */ nop +/* 050A0C 7F01BEDC 44099000 */ mfc1 $t1, $f18 +/* 050A10 7F01BEE0 3C018000 */ lui $at, 0x8000 +/* 050A14 7F01BEE4 10000007 */ b .L7F01BF04 +/* 050A18 7F01BEE8 01214825 */ or $t1, $t1, $at +.L7F01BEEC: +/* 050A1C 7F01BEEC 10000005 */ b .L7F01BF04 +/* 050A20 7F01BEF0 2409FFFF */ li $t1, -1 +/* 050A24 7F01BEF4 44099000 */ mfc1 $t1, $f18 +.L7F01BEF8: +/* 050A28 7F01BEF8 00000000 */ nop +/* 050A2C 7F01BEFC 0520FFFB */ bltz $t1, .L7F01BEEC +/* 050A30 7F01BF00 00000000 */ nop +.L7F01BF04: +/* 050A34 7F01BF04 44C8F800 */ ctc1 $t0, $31 +/* 050A38 7F01BF08 A209000D */ sb $t1, 0xd($s0) +/* 050A3C 7F01BF0C 0FC15FA8 */ jal cosf +/* 050A40 7F01BF10 4600A306 */ mov.s $f12, $f20 +/* 050A44 7F01BF14 46180102 */ mul.s $f4, $f0, $f24 +/* 050A48 7F01BF18 240B0001 */ li $t3, 1 +/* 050A4C 7F01BF1C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 050A50 7F01BF20 4604B181 */ sub.s $f6, $f22, $f4 +/* 050A54 7F01BF24 444AF800 */ cfc1 $t2, $31 +/* 050A58 7F01BF28 44CBF800 */ ctc1 $t3, $31 +/* 050A5C 7F01BF2C 00000000 */ nop +/* 050A60 7F01BF30 46003224 */ cvt.w.s $f8, $f6 +/* 050A64 7F01BF34 444BF800 */ cfc1 $t3, $31 +/* 050A68 7F01BF38 00000000 */ nop +/* 050A6C 7F01BF3C 316B0078 */ andi $t3, $t3, 0x78 +/* 050A70 7F01BF40 51600013 */ beql $t3, $zero, .L7F01BF90 +/* 050A74 7F01BF44 440B4000 */ mfc1 $t3, $f8 +/* 050A78 7F01BF48 44814000 */ mtc1 $at, $f8 +/* 050A7C 7F01BF4C 240B0001 */ li $t3, 1 +/* 050A80 7F01BF50 46083201 */ sub.s $f8, $f6, $f8 +/* 050A84 7F01BF54 44CBF800 */ ctc1 $t3, $31 +/* 050A88 7F01BF58 00000000 */ nop +/* 050A8C 7F01BF5C 46004224 */ cvt.w.s $f8, $f8 +/* 050A90 7F01BF60 444BF800 */ cfc1 $t3, $31 +/* 050A94 7F01BF64 00000000 */ nop +/* 050A98 7F01BF68 316B0078 */ andi $t3, $t3, 0x78 +/* 050A9C 7F01BF6C 15600005 */ bnez $t3, .L7F01BF84 +/* 050AA0 7F01BF70 00000000 */ nop +/* 050AA4 7F01BF74 440B4000 */ mfc1 $t3, $f8 +/* 050AA8 7F01BF78 3C018000 */ lui $at, 0x8000 +/* 050AAC 7F01BF7C 10000007 */ b .L7F01BF9C +/* 050AB0 7F01BF80 01615825 */ or $t3, $t3, $at +.L7F01BF84: +/* 050AB4 7F01BF84 10000005 */ b .L7F01BF9C +/* 050AB8 7F01BF88 240BFFFF */ li $t3, -1 +/* 050ABC 7F01BF8C 440B4000 */ mfc1 $t3, $f8 +.L7F01BF90: +/* 050AC0 7F01BF90 00000000 */ nop +/* 050AC4 7F01BF94 0560FFFB */ bltz $t3, .L7F01BF84 +/* 050AC8 7F01BF98 00000000 */ nop +.L7F01BF9C: +/* 050ACC 7F01BF9C 44CAF800 */ ctc1 $t2, $31 +/* 050AD0 7F01BFA0 A20B000E */ sb $t3, 0xe($s0) +/* 050AD4 7F01BFA4 A200000F */ sb $zero, 0xf($s0) +/* 050AD8 7F01BFA8 26100010 */ addiu $s0, $s0, 0x10 +.L7F01BFAC: +/* 050ADC 7F01BFAC 26520002 */ addiu $s2, $s2, 2 +/* 050AE0 7F01BFB0 02B2082A */ slt $at, $s5, $s2 +/* 050AE4 7F01BFB4 5020FEE8 */ beql $at, $zero, .L7F01BB58 +/* 050AE8 7F01BFB8 44923000 */ mtc1 $s2, $f6 +.L7F01BFBC: +/* 050AEC 7F01BFBC 8FBF005C */ lw $ra, 0x5c($sp) +/* 050AF0 7F01BFC0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 050AF4 7F01BFC4 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 050AF8 7F01BFC8 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 050AFC 7F01BFCC D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 050B00 7F01BFD0 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 050B04 7F01BFD4 D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 050B08 7F01BFD8 8FB00044 */ lw $s0, 0x44($sp) +/* 050B0C 7F01BFDC 8FB10048 */ lw $s1, 0x48($sp) +/* 050B10 7F01BFE0 8FB2004C */ lw $s2, 0x4c($sp) +/* 050B14 7F01BFE4 8FB30050 */ lw $s3, 0x50($sp) +/* 050B18 7F01BFE8 8FB40054 */ lw $s4, 0x54($sp) +/* 050B1C 7F01BFEC 8FB50058 */ lw $s5, 0x58($sp) +/* 050B20 7F01BFF0 03E00008 */ jr $ra +/* 050B24 7F01BFF4 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01BFF8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01BFF8 +/* 050B28 7F01BFF8 240A000A */ li $t2, 10 +/* 050B2C 7F01BFFC 3C09BF00 */ lui $t1, 0xbf00 +/* 050B30 7F01C000 3C080400 */ lui $t0, 0x400 +/* 050B34 7F01C004 28C10011 */ slti $at, $a2, 0x11 +.L7F01C008: +/* 050B38 7F01C008 14200003 */ bnez $at, .L7F01C018 +/* 050B3C 7F01C00C 00801825 */ move $v1, $a0 +/* 050B40 7F01C010 10000004 */ b .L7F01C024 +/* 050B44 7F01C014 24020010 */ li $v0, 16 +.L7F01C018: +/* 050B48 7F01C018 00061600 */ sll $v0, $a2, 0x18 +/* 050B4C 7F01C01C 00027603 */ sra $t6, $v0, 0x18 +/* 050B50 7F01C020 01C01025 */ move $v0, $t6 +.L7F01C024: +/* 050B54 7F01C024 244FFFFF */ addiu $t7, $v0, -1 +/* 050B58 7F01C028 000FC100 */ sll $t8, $t7, 4 +/* 050B5C 7F01C02C 331900FF */ andi $t9, $t8, 0xff +/* 050B60 7F01C030 00026900 */ sll $t5, $v0, 4 +/* 050B64 7F01C034 00195C00 */ sll $t3, $t9, 0x10 +/* 050B68 7F01C038 01686025 */ or $t4, $t3, $t0 +/* 050B6C 7F01C03C 31AEFFFF */ andi $t6, $t5, 0xffff +/* 050B70 7F01C040 2442FFFD */ addiu $v0, $v0, -3 +/* 050B74 7F01C044 018E7825 */ or $t7, $t4, $t6 +/* 050B78 7F01C048 AC650004 */ sw $a1, 4($v1) +/* 050B7C 7F01C04C 0002C600 */ sll $t8, $v0, 0x18 +/* 050B80 7F01C050 AC6F0000 */ sw $t7, ($v1) +/* 050B84 7F01C054 24840008 */ addiu $a0, $a0, 8 +/* 050B88 7F01C058 24A500E0 */ addiu $a1, $a1, 0xe0 +/* 050B8C 7F01C05C 00181603 */ sra $v0, $t8, 0x18 +.L7F01C060: +/* 050B90 7F01C060 004A0019 */ multu $v0, $t2 +/* 050B94 7F01C064 2442FFFF */ addiu $v0, $v0, -1 +/* 050B98 7F01C068 00801825 */ move $v1, $a0 +/* 050B9C 7F01C06C AC690000 */ sw $t1, ($v1) +/* 050BA0 7F01C070 24840008 */ addiu $a0, $a0, 8 +/* 050BA4 7F01C074 00003812 */ mflo $a3 +/* 050BA8 7F01C078 24EC000A */ addiu $t4, $a3, 0xa +/* 050BAC 7F01C07C 318E00FF */ andi $t6, $t4, 0xff +/* 050BB0 7F01C080 30EB00FF */ andi $t3, $a3, 0xff +/* 050BB4 7F01C084 000B6C00 */ sll $t5, $t3, 0x10 +/* 050BB8 7F01C088 000E7A00 */ sll $t7, $t6, 8 +/* 050BBC 7F01C08C 24F90014 */ addiu $t9, $a3, 0x14 +/* 050BC0 7F01C090 332B00FF */ andi $t3, $t9, 0xff +/* 050BC4 7F01C094 01AFC025 */ or $t8, $t5, $t7 +/* 050BC8 7F01C098 00027600 */ sll $t6, $v0, 0x18 +/* 050BCC 7F01C09C 000E1603 */ sra $v0, $t6, 0x18 +/* 050BD0 7F01C0A0 030B6025 */ or $t4, $t8, $t3 +/* 050BD4 7F01C0A4 0441FFEE */ bgez $v0, .L7F01C060 +/* 050BD8 7F01C0A8 AC6C0004 */ sw $t4, 4($v1) +/* 050BDC 7F01C0AC 24C6FFF2 */ addiu $a2, $a2, -0xe +/* 050BE0 7F01C0B0 28C10003 */ slti $at, $a2, 3 +/* 050BE4 7F01C0B4 5020FFD4 */ beql $at, $zero, .L7F01C008 +/* 050BE8 7F01C0B8 28C10011 */ slti $at, $a2, 0x11 +/* 050BEC 7F01C0BC 3C0FB800 */ lui $t7, 0xb800 +/* 050BF0 7F01C0C0 AC8F0000 */ sw $t7, ($a0) +/* 050BF4 7F01C0C4 24820008 */ addiu $v0, $a0, 8 +/* 050BF8 7F01C0C8 03E00008 */ jr $ra +/* 050BFC 7F01C0CC AC800004 */ sw $zero, 4($a0) +) +#endif + + + + + + diff --git a/src/game/unk_05A9E0.c b/src/game/unk_05A9E0.c new file mode 100644 index 0000000..2bd39d5 --- /dev/null +++ b/src/game/unk_05A9E0.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + + +f32 sub_GAME_7F05A9E0(f32 arg0) { + return sqrtf(((sinf(arg0) / cosf(arg0)) + 1.0f)); +} + + + diff --git a/src/game/unk_05AB70.c b/src/game/unk_05AB70.c new file mode 100644 index 0000000..758dc81 --- /dev/null +++ b/src/game/unk_05AB70.c @@ -0,0 +1,166 @@ +#include "ultra64.h" + + +//data +//D:80032320 +s16 table_1[] = { + 0x8000,0x7EBA,0x7D74,0x7C2D,0x7AE7,0x79A0,0x7859,0x7711,0x75C9,0x7480, + 0x7337,0x71EC,0x70A1,0x6F55,0x6E07,0x6CB8,0x6B68,0x6A17,0x68C4,0x6770, + 0x661A,0x64C1,0x6367,0x620B,0x60AD,0x5F4C,0x5DE9,0x5C83,0x5B1A,0x59AE, + 0x583E,0x56CB,0x5555,0x53DB,0x525C,0x50D9,0x4F51,0x4DC5,0x4C32,0x4A9A, + 0x48FC,0x4757,0x45AB,0x43F7,0x423A,0x4075,0x3EA5,0x3CCB,0x3AE5,0x38F1, + 0x36EF,0x34DC,0x32B7,0x307D,0x2E2B,0x2BBD,0x292E,0x2678,0x2391,0x206C, + 0x1CF6, 0 +}; + +//D:8003239C +s16 table_2[] = { + 0x1CF6,0x1CBB,0x1C80,0x1C45,0x1C08,0x1BCC,0x1B8F,0x1B51,0x1B13,0x1AD4, + 0x1A95,0x1A55,0x1A14,0x19D3,0x1992,0x194F,0x190C,0x18C9,0x1884,0x183F, + 0x17F9,0x17B3,0x176B,0x1723,0x16DA,0x1690,0x1645,0x15F9,0x15AC,0x155E, + 0x150F,0x14BE,0x146D,0x141A,0x13C6,0x1370,0x1319,0x12C1,0x1267,0x120B, + 0x11AD,0x114E,0x10EC,0x1088,0x1022, 0xFB9, 0xF4D, 0xEDE, 0xE6C, 0xDF7, + 0xD7D, 0xD00, 0xC7D, 0xBF4, 0xB66, 0xAD0, 0xA31, 0x989, 0x8D3, 0x80E, + 0x734, 0x63D, 0x518, 0x39A +}; + +//D:8003241C +s16 table_3[] = { + 0x39A, 0x31E, 0x28C, 0x1CD, 0, 0 +}; + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AB70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AB70 +/* 08F6A0 7F05AB70 28817FE0 */ slti $at, $a0, 0x7fe0 +/* 08F6A4 7F05AB74 14200006 */ bnez $at, .L7F05AB90 +/* 08F6A8 7F05AB78 24030007 */ li $v1, 7 +/* 08F6AC 7F05AB7C 3C068003 */ lui $a2, %hi(table_3) +/* 08F6B0 7F05AB80 24050003 */ li $a1, 3 +/* 08F6B4 7F05AB84 24C6241C */ addiu $a2, %lo(table_3) # addiu $a2, $a2, 0x241c +/* 08F6B8 7F05AB88 1000000D */ b .L7F05ABC0 +/* 08F6BC 7F05AB8C 24848020 */ addiu $a0, $a0, -0x7fe0 +.L7F05AB90: +/* 08F6C0 7F05AB90 28817800 */ slti $at, $a0, 0x7800 +/* 08F6C4 7F05AB94 14200007 */ bnez $at, .L7F05ABB4 +/* 08F6C8 7F05AB98 240301FF */ li $v1, 511 +/* 08F6CC 7F05AB9C 3C068003 */ lui $a2, %hi(table_2) +/* 08F6D0 7F05ABA0 2403001F */ li $v1, 31 +/* 08F6D4 7F05ABA4 24050005 */ li $a1, 5 +/* 08F6D8 7F05ABA8 24C6239C */ addiu $a2, %lo(table_2) # addiu $a2, $a2, 0x239c +/* 08F6DC 7F05ABAC 10000004 */ b .L7F05ABC0 +/* 08F6E0 7F05ABB0 24848800 */ addiu $a0, $a0, -0x7800 +.L7F05ABB4: +/* 08F6E4 7F05ABB4 3C068003 */ lui $a2, %hi(table_1) +/* 08F6E8 7F05ABB8 24050009 */ li $a1, 9 +/* 08F6EC 7F05ABBC 24C62320 */ addiu $a2, %lo(table_1) # addiu $a2, $a2, 0x2320 +.L7F05ABC0: +/* 08F6F0 7F05ABC0 00A47007 */ srav $t6, $a0, $a1 +/* 08F6F4 7F05ABC4 000E7840 */ sll $t7, $t6, 1 +/* 08F6F8 7F05ABC8 00CF4021 */ addu $t0, $a2, $t7 +/* 08F6FC 7F05ABCC 95070000 */ lhu $a3, ($t0) +/* 08F700 7F05ABD0 95090002 */ lhu $t1, 2($t0) +/* 08F704 7F05ABD4 0083C824 */ and $t9, $a0, $v1 +/* 08F708 7F05ABD8 00E9C023 */ subu $t8, $a3, $t1 +/* 08F70C 7F05ABDC 03190019 */ multu $t8, $t9 +/* 08F710 7F05ABE0 00005012 */ mflo $t2 +/* 08F714 7F05ABE4 00AA5807 */ srav $t3, $t2, $a1 +/* 08F718 7F05ABE8 03E00008 */ jr $ra +/* 08F71C 7F05ABEC 00EB1023 */ subu $v0, $a3, $t3 +) +#endif + + + + + +#ifdef NONMATCHING +u16 acos(s16) { + +} +#else +GLOBAL_ASM( +.text +glabel acos +/* 08F720 7F05ABF0 00042C00 */ sll $a1, $a0, 0x10 +/* 08F724 7F05ABF4 00057403 */ sra $t6, $a1, 0x10 +/* 08F728 7F05ABF8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08F72C 7F05ABFC AFBF0014 */ sw $ra, 0x14($sp) +/* 08F730 7F05AC00 AFA40018 */ sw $a0, 0x18($sp) +/* 08F734 7F05AC04 05C00003 */ bltz $t6, .L7F05AC14 +/* 08F738 7F05AC08 01C02825 */ move $a1, $t6 +/* 08F73C 7F05AC0C 10000002 */ b .L7F05AC18 +/* 08F740 7F05AC10 01C02025 */ move $a0, $t6 +.L7F05AC14: +/* 08F744 7F05AC14 00052023 */ negu $a0, $a1 +.L7F05AC18: +/* 08F748 7F05AC18 0FC16ADC */ jal sub_GAME_7F05AB70 +/* 08F74C 7F05AC1C A7A5001A */ sh $a1, 0x1a($sp) +/* 08F750 7F05AC20 87A5001A */ lh $a1, 0x1a($sp) +/* 08F754 7F05AC24 8FBF0014 */ lw $ra, 0x14($sp) +/* 08F758 7F05AC28 00402025 */ move $a0, $v0 +/* 08F75C 7F05AC2C 04A10003 */ bgez $a1, .L7F05AC3C +/* 08F760 7F05AC30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08F764 7F05AC34 340FFFFF */ li $t7, 65535 +/* 08F768 7F05AC38 01E22023 */ subu $a0, $t7, $v0 +.L7F05AC3C: +/* 08F76C 7F05AC3C 03E00008 */ jr $ra +/* 08F770 7F05AC40 3082FFFF */ andi $v0, $a0, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +s16 asin(s16) { + +} +#else +GLOBAL_ASM( +.text +glabel asin +/* 08F774 7F05AC44 00042C00 */ sll $a1, $a0, 0x10 +/* 08F778 7F05AC48 00057403 */ sra $t6, $a1, 0x10 +/* 08F77C 7F05AC4C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08F780 7F05AC50 AFBF0014 */ sw $ra, 0x14($sp) +/* 08F784 7F05AC54 AFA40018 */ sw $a0, 0x18($sp) +/* 08F788 7F05AC58 05C00003 */ bltz $t6, .L7F05AC68 +/* 08F78C 7F05AC5C 01C02825 */ move $a1, $t6 +/* 08F790 7F05AC60 10000002 */ b .L7F05AC6C +/* 08F794 7F05AC64 01C02025 */ move $a0, $t6 +.L7F05AC68: +/* 08F798 7F05AC68 00052023 */ negu $a0, $a1 +.L7F05AC6C: +/* 08F79C 7F05AC6C 0FC16ADC */ jal sub_GAME_7F05AB70 +/* 08F7A0 7F05AC70 A7A5001A */ sh $a1, 0x1a($sp) +/* 08F7A4 7F05AC74 87A5001A */ lh $a1, 0x1a($sp) +/* 08F7A8 7F05AC78 8FBF0014 */ lw $ra, 0x14($sp) +/* 08F7AC 7F05AC7C 24018000 */ li $at, -32768 +/* 08F7B0 7F05AC80 04A00004 */ bltz $a1, .L7F05AC94 +/* 08F7B4 7F05AC84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08F7B8 7F05AC88 240F7FFF */ li $t7, 32767 +/* 08F7BC 7F05AC8C 10000002 */ b .L7F05AC98 +/* 08F7C0 7F05AC90 01E22023 */ subu $a0, $t7, $v0 +.L7F05AC94: +/* 08F7C4 7F05AC94 00412021 */ addu $a0, $v0, $at +.L7F05AC98: +/* 08F7C8 7F05AC98 00041400 */ sll $v0, $a0, 0x10 +/* 08F7CC 7F05AC9C 0002C403 */ sra $t8, $v0, 0x10 +/* 08F7D0 7F05ACA0 03E00008 */ jr $ra +/* 08F7D4 7F05ACA4 03001025 */ move $v0, $t8 +) +#endif + + + diff --git a/src/game/unk_05ACB0.c b/src/game/unk_05ACB0.c new file mode 100644 index 0000000..e4c9e2b --- /dev/null +++ b/src/game/unk_05ACB0.c @@ -0,0 +1,28 @@ +#include "ultra64.h" + +u16 acos(s16); +s16 asin(s16); + +f32 acosf(f32 cosinef) { + s16 cosines; + if (1.0f <= cosinef) { + cosines = 0x7FFF; + } else if (cosinef <= -1.0f) { + cosines = -0x7FFF; + } else { + cosines = (cosinef * 32767.0f); + } + return (acos(cosines) * 3.1415927f) / 65535.0f; +} + +f32 asinf(f32 sinef) { + s16 sines; + if (1.0f <= sinef) { + sines = 0x7FFF; + } else if (sinef <= -1.0f) { + sines = -0x7FFF; + } else { + sines = (sinef * 32767.0f); + } + return (asin(sines) * 3.1415927f) / 65535.0f; +} diff --git a/src/game/unk_05AE00.c b/src/game/unk_05AE00.c new file mode 100644 index 0000000..856d870 --- /dev/null +++ b/src/game/unk_05AE00.c @@ -0,0 +1,321 @@ +#include "ultra64.h" + +#ifdef NONMATCHING +void sub_GAME_7F05AE00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AE00 +/* 08F930 7F05AE00 C4800000 */ lwc1 $f0, ($a0) +/* 08F934 7F05AE04 C4A40000 */ lwc1 $f4, ($a1) +/* 08F938 7F05AE08 44866000 */ mtc1 $a2, $f12 +/* 08F93C 7F05AE0C 46002181 */ sub.s $f6, $f4, $f0 +/* 08F940 7F05AE10 460C3202 */ mul.s $f8, $f6, $f12 +/* 08F944 7F05AE14 46004280 */ add.s $f10, $f8, $f0 +/* 08F948 7F05AE18 E4EA0000 */ swc1 $f10, ($a3) +/* 08F94C 7F05AE1C C4B00004 */ lwc1 $f16, 4($a1) +/* 08F950 7F05AE20 C4820004 */ lwc1 $f2, 4($a0) +/* 08F954 7F05AE24 46028481 */ sub.s $f18, $f16, $f2 +/* 08F958 7F05AE28 460C9102 */ mul.s $f4, $f18, $f12 +/* 08F95C 7F05AE2C 46022180 */ add.s $f6, $f4, $f2 +/* 08F960 7F05AE30 E4E60004 */ swc1 $f6, 4($a3) +/* 08F964 7F05AE34 C4A80008 */ lwc1 $f8, 8($a1) +/* 08F968 7F05AE38 C48E0008 */ lwc1 $f14, 8($a0) +/* 08F96C 7F05AE3C 460E4281 */ sub.s $f10, $f8, $f14 +/* 08F970 7F05AE40 460C5402 */ mul.s $f16, $f10, $f12 +/* 08F974 7F05AE44 460E8480 */ add.s $f18, $f16, $f14 +/* 08F978 7F05AE48 03E00008 */ jr $ra +/* 08F97C 7F05AE4C E4F20008 */ swc1 $f18, 8($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AE50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AE50 +/* 08F980 7F05AE50 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 08F984 7F05AE54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08F988 7F05AE58 44819000 */ mtc1 $at, $f18 +/* 08F98C 7F05AE5C 46042082 */ mul.s $f2, $f4, $f4 +/* 08F990 7F05AE60 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 08F994 7F05AE64 44813000 */ mtc1 $at, $f6 +/* 08F998 7F05AE68 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 08F99C 7F05AE6C 44815000 */ mtc1 $at, $f10 +/* 08F9A0 7F05AE70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08F9A4 7F05AE74 AFA60008 */ sw $a2, 8($sp) +/* 08F9A8 7F05AE78 46041402 */ mul.s $f16, $f2, $f4 +/* 08F9AC 7F05AE7C AFA7000C */ sw $a3, 0xc($sp) +/* 08F9B0 7F05AE80 46103202 */ mul.s $f8, $f6, $f16 +/* 08F9B4 7F05AE84 00000000 */ nop +/* 08F9B8 7F05AE88 46025182 */ mul.s $f6, $f10, $f2 +/* 08F9BC 7F05AE8C 46064281 */ sub.s $f10, $f8, $f6 +/* 08F9C0 7F05AE90 44814000 */ mtc1 $at, $f8 +/* 08F9C4 7F05AE94 3C01BFC0 */ li $at, 0xBFC00000 # -1.500000 +/* 08F9C8 7F05AE98 46085180 */ add.s $f6, $f10, $f8 +/* 08F9CC 7F05AE9C 46102200 */ add.s $f8, $f4, $f16 +/* 08F9D0 7F05AEA0 46067282 */ mul.s $f10, $f14, $f6 +/* 08F9D4 7F05AEA4 00000000 */ nop +/* 08F9D8 7F05AEA8 46124182 */ mul.s $f6, $f8, $f18 +/* 08F9DC 7F05AEAC 46061201 */ sub.s $f8, $f2, $f6 +/* 08F9E0 7F05AEB0 46086182 */ mul.s $f6, $f12, $f8 +/* 08F9E4 7F05AEB4 460A3200 */ add.s $f8, $f6, $f10 +/* 08F9E8 7F05AEB8 44813000 */ mtc1 $at, $f6 +/* 08F9EC 7F05AEBC 00000000 */ nop +/* 08F9F0 7F05AEC0 46103282 */ mul.s $f10, $f6, $f16 +/* 08F9F4 7F05AEC4 46021180 */ add.s $f6, $f2, $f2 +/* 08F9F8 7F05AEC8 46065280 */ add.s $f10, $f10, $f6 +/* 08F9FC 7F05AECC 46049182 */ mul.s $f6, $f18, $f4 +/* 08FA00 7F05AED0 46065100 */ add.s $f4, $f10, $f6 +/* 08FA04 7F05AED4 C7AA0008 */ lwc1 $f10, 8($sp) +/* 08FA08 7F05AED8 46045182 */ mul.s $f6, $f10, $f4 +/* 08FA0C 7F05AEDC C7A4000C */ lwc1 $f4, 0xc($sp) +/* 08FA10 7F05AEE0 46064280 */ add.s $f10, $f8, $f6 +/* 08FA14 7F05AEE4 46028201 */ sub.s $f8, $f16, $f2 +/* 08FA18 7F05AEE8 46124182 */ mul.s $f6, $f8, $f18 +/* 08FA1C 7F05AEEC 00000000 */ nop +/* 08FA20 7F05AEF0 46062202 */ mul.s $f8, $f4, $f6 +/* 08FA24 7F05AEF4 03E00008 */ jr $ra +/* 08FA28 7F05AEF8 46085000 */ add.s $f0, $f10, $f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AEFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AEFC +/* 08FA2C 7F05AEFC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08FA30 7F05AF00 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 08FA34 7F05AF04 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08FA38 7F05AF08 44813000 */ mtc1 $at, $f6 +/* 08FA3C 7F05AF0C 460C6002 */ mul.s $f0, $f12, $f12 +/* 08FA40 7F05AF10 8FAE003C */ lw $t6, 0x3c($sp) +/* 08FA44 7F05AF14 460C0082 */ mul.s $f2, $f0, $f12 +/* 08FA48 7F05AF18 46001101 */ sub.s $f4, $f2, $f0 +/* 08FA4C 7F05AF1C 46026280 */ add.s $f10, $f12, $f2 +/* 08FA50 7F05AF20 46062202 */ mul.s $f8, $f4, $f6 +/* 08FA54 7F05AF24 44812000 */ mtc1 $at, $f4 +/* 08FA58 7F05AF28 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 08FA5C 7F05AF2C 46045182 */ mul.s $f6, $f10, $f4 +/* 08FA60 7F05AF30 44815000 */ mtc1 $at, $f10 +/* 08FA64 7F05AF34 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 08FA68 7F05AF38 E7A80000 */ swc1 $f8, ($sp) +/* 08FA6C 7F05AF3C 46025102 */ mul.s $f4, $f10, $f2 +/* 08FA70 7F05AF40 46060381 */ sub.s $f14, $f0, $f6 +/* 08FA74 7F05AF44 44813000 */ mtc1 $at, $f6 +/* 08FA78 7F05AF48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FA7C 7F05AF4C 46003282 */ mul.s $f10, $f6, $f0 +/* 08FA80 7F05AF50 460A2181 */ sub.s $f6, $f4, $f10 +/* 08FA84 7F05AF54 44812000 */ mtc1 $at, $f4 +/* 08FA88 7F05AF58 3C01BFC0 */ li $at, 0xBFC00000 # -1.500000 +/* 08FA8C 7F05AF5C 44815000 */ mtc1 $at, $f10 +/* 08FA90 7F05AF60 46043400 */ add.s $f16, $f6, $f4 +/* 08FA94 7F05AF64 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08FA98 7F05AF68 46025182 */ mul.s $f6, $f10, $f2 +/* 08FA9C 7F05AF6C 46000100 */ add.s $f4, $f0, $f0 +/* 08FAA0 7F05AF70 46043280 */ add.s $f10, $f6, $f4 +/* 08FAA4 7F05AF74 44813000 */ mtc1 $at, $f6 +/* 08FAA8 7F05AF78 00000000 */ nop +/* 08FAAC 7F05AF7C 460C3102 */ mul.s $f4, $f6, $f12 +/* 08FAB0 7F05AF80 C4E60000 */ lwc1 $f6, ($a3) +/* 08FAB4 7F05AF84 46045480 */ add.s $f18, $f10, $f4 +/* 08FAB8 7F05AF88 46083282 */ mul.s $f10, $f6, $f8 +/* 08FABC 7F05AF8C C4840000 */ lwc1 $f4, ($a0) +/* 08FAC0 7F05AF90 46047182 */ mul.s $f6, $f14, $f4 +/* 08FAC4 7F05AF94 C4A40000 */ lwc1 $f4, ($a1) +/* 08FAC8 7F05AF98 46048102 */ mul.s $f4, $f16, $f4 +/* 08FACC 7F05AF9C 46043180 */ add.s $f6, $f6, $f4 +/* 08FAD0 7F05AFA0 C4C40000 */ lwc1 $f4, ($a2) +/* 08FAD4 7F05AFA4 46049102 */ mul.s $f4, $f18, $f4 +/* 08FAD8 7F05AFA8 46043180 */ add.s $f6, $f6, $f4 +/* 08FADC 7F05AFAC 46065100 */ add.s $f4, $f10, $f6 +/* 08FAE0 7F05AFB0 E5C40000 */ swc1 $f4, ($t6) +/* 08FAE4 7F05AFB4 C4EA0004 */ lwc1 $f10, 4($a3) +/* 08FAE8 7F05AFB8 C4840004 */ lwc1 $f4, 4($a0) +/* 08FAEC 7F05AFBC 46085182 */ mul.s $f6, $f10, $f8 +/* 08FAF0 7F05AFC0 00000000 */ nop +/* 08FAF4 7F05AFC4 46047282 */ mul.s $f10, $f14, $f4 +/* 08FAF8 7F05AFC8 C4A40004 */ lwc1 $f4, 4($a1) +/* 08FAFC 7F05AFCC 46048102 */ mul.s $f4, $f16, $f4 +/* 08FB00 7F05AFD0 46045280 */ add.s $f10, $f10, $f4 +/* 08FB04 7F05AFD4 C4C40004 */ lwc1 $f4, 4($a2) +/* 08FB08 7F05AFD8 46049102 */ mul.s $f4, $f18, $f4 +/* 08FB0C 7F05AFDC 46045280 */ add.s $f10, $f10, $f4 +/* 08FB10 7F05AFE0 460A3100 */ add.s $f4, $f6, $f10 +/* 08FB14 7F05AFE4 E5C40004 */ swc1 $f4, 4($t6) +/* 08FB18 7F05AFE8 C4E60008 */ lwc1 $f6, 8($a3) +/* 08FB1C 7F05AFEC C4840008 */ lwc1 $f4, 8($a0) +/* 08FB20 7F05AFF0 46083282 */ mul.s $f10, $f6, $f8 +/* 08FB24 7F05AFF4 C4A80008 */ lwc1 $f8, 8($a1) +/* 08FB28 7F05AFF8 46047182 */ mul.s $f6, $f14, $f4 +/* 08FB2C 7F05AFFC 00000000 */ nop +/* 08FB30 7F05B000 46088102 */ mul.s $f4, $f16, $f8 +/* 08FB34 7F05B004 46043200 */ add.s $f8, $f6, $f4 +/* 08FB38 7F05B008 C4C60008 */ lwc1 $f6, 8($a2) +/* 08FB3C 7F05B00C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08FB40 7F05B010 46069102 */ mul.s $f4, $f18, $f6 +/* 08FB44 7F05B014 46044180 */ add.s $f6, $f8, $f4 +/* 08FB48 7F05B018 46065200 */ add.s $f8, $f10, $f6 +/* 08FB4C 7F05B01C 03E00008 */ jr $ra +/* 08FB50 7F05B020 E5C80008 */ swc1 $f8, 8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05B024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05B024 +/* 08FB54 7F05B024 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08FB58 7F05B028 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 08FB5C 7F05B02C C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 08FB60 7F05B030 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 08FB64 7F05B034 460C6002 */ mul.s $f0, $f12, $f12 +/* 08FB68 7F05B038 8FAE0040 */ lw $t6, 0x40($sp) +/* 08FB6C 7F05B03C 460C0082 */ mul.s $f2, $f0, $f12 +/* 08FB70 7F05B040 46000200 */ add.s $f8, $f0, $f0 +/* 08FB74 7F05B044 46001101 */ sub.s $f4, $f2, $f0 +/* 08FB78 7F05B048 46026280 */ add.s $f10, $f12, $f2 +/* 08FB7C 7F05B04C 460E2182 */ mul.s $f6, $f4, $f14 +/* 08FB80 7F05B050 460A4101 */ sub.s $f4, $f8, $f10 +/* 08FB84 7F05B054 44814000 */ mtc1 $at, $f8 +/* 08FB88 7F05B058 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FB8C 7F05B05C E7A60000 */ swc1 $f6, ($sp) +/* 08FB90 7F05B060 460E4281 */ sub.s $f10, $f8, $f14 +/* 08FB94 7F05B064 460E2402 */ mul.s $f16, $f4, $f14 +/* 08FB98 7F05B068 44814000 */ mtc1 $at, $f8 +/* 08FB9C 7F05B06C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FBA0 7F05B070 46025102 */ mul.s $f4, $f10, $f2 +/* 08FBA4 7F05B074 46087281 */ sub.s $f10, $f14, $f8 +/* 08FBA8 7F05B078 460A0202 */ mul.s $f8, $f0, $f10 +/* 08FBAC 7F05B07C 46082280 */ add.s $f10, $f4, $f8 +/* 08FBB0 7F05B080 44812000 */ mtc1 $at, $f4 +/* 08FBB4 7F05B084 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FBB8 7F05B088 44814000 */ mtc1 $at, $f8 +/* 08FBBC 7F05B08C 46045480 */ add.s $f18, $f10, $f4 +/* 08FBC0 7F05B090 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 08FBC4 7F05B094 460E7280 */ add.s $f10, $f14, $f14 +/* 08FBC8 7F05B098 460A4101 */ sub.s $f4, $f8, $f10 +/* 08FBCC 7F05B09C 44815000 */ mtc1 $at, $f10 +/* 08FBD0 7F05B0A0 46040202 */ mul.s $f8, $f0, $f4 +/* 08FBD4 7F05B0A4 460A7101 */ sub.s $f4, $f14, $f10 +/* 08FBD8 7F05B0A8 46022282 */ mul.s $f10, $f4, $f2 +/* 08FBDC 7F05B0AC 46085100 */ add.s $f4, $f10, $f8 +/* 08FBE0 7F05B0B0 460E6282 */ mul.s $f10, $f12, $f14 +/* 08FBE4 7F05B0B4 460A2200 */ add.s $f8, $f4, $f10 +/* 08FBE8 7F05B0B8 E7A80008 */ swc1 $f8, 8($sp) +/* 08FBEC 7F05B0BC C4840000 */ lwc1 $f4, ($a0) +/* 08FBF0 7F05B0C0 46048282 */ mul.s $f10, $f16, $f4 +/* 08FBF4 7F05B0C4 C4A40000 */ lwc1 $f4, ($a1) +/* 08FBF8 7F05B0C8 46049102 */ mul.s $f4, $f18, $f4 +/* 08FBFC 7F05B0CC 46045280 */ add.s $f10, $f10, $f4 +/* 08FC00 7F05B0D0 C4C40000 */ lwc1 $f4, ($a2) +/* 08FC04 7F05B0D4 46044102 */ mul.s $f4, $f8, $f4 +/* 08FC08 7F05B0D8 46045280 */ add.s $f10, $f10, $f4 +/* 08FC0C 7F05B0DC C4E40000 */ lwc1 $f4, ($a3) +/* 08FC10 7F05B0E0 46062102 */ mul.s $f4, $f4, $f6 +/* 08FC14 7F05B0E4 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC18 7F05B0E8 E5C40000 */ swc1 $f4, ($t6) +/* 08FC1C 7F05B0EC C48A0004 */ lwc1 $f10, 4($a0) +/* 08FC20 7F05B0F0 460A8102 */ mul.s $f4, $f16, $f10 +/* 08FC24 7F05B0F4 C4AA0004 */ lwc1 $f10, 4($a1) +/* 08FC28 7F05B0F8 460A9282 */ mul.s $f10, $f18, $f10 +/* 08FC2C 7F05B0FC 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC30 7F05B100 C4CA0004 */ lwc1 $f10, 4($a2) +/* 08FC34 7F05B104 460A4282 */ mul.s $f10, $f8, $f10 +/* 08FC38 7F05B108 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC3C 7F05B10C C4EA0004 */ lwc1 $f10, 4($a3) +/* 08FC40 7F05B110 46065282 */ mul.s $f10, $f10, $f6 +/* 08FC44 7F05B114 46045280 */ add.s $f10, $f10, $f4 +/* 08FC48 7F05B118 E5CA0004 */ swc1 $f10, 4($t6) +/* 08FC4C 7F05B11C C4840008 */ lwc1 $f4, 8($a0) +/* 08FC50 7F05B120 46048282 */ mul.s $f10, $f16, $f4 +/* 08FC54 7F05B124 C4A40008 */ lwc1 $f4, 8($a1) +/* 08FC58 7F05B128 46049102 */ mul.s $f4, $f18, $f4 +/* 08FC5C 7F05B12C 46045280 */ add.s $f10, $f10, $f4 +/* 08FC60 7F05B130 C4C40008 */ lwc1 $f4, 8($a2) +/* 08FC64 7F05B134 46044202 */ mul.s $f8, $f8, $f4 +/* 08FC68 7F05B138 46085100 */ add.s $f4, $f10, $f8 +/* 08FC6C 7F05B13C C4EA0008 */ lwc1 $f10, 8($a3) +/* 08FC70 7F05B140 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08FC74 7F05B144 46065202 */ mul.s $f8, $f10, $f6 +/* 08FC78 7F05B148 46044280 */ add.s $f10, $f8, $f4 +/* 08FC7C 7F05B14C 03E00008 */ jr $ra +/* 08FC80 7F05B150 E5CA0008 */ swc1 $f10, 8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05B154(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05B154 +/* 08FC84 7F05B154 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 08FC88 7F05B158 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FC8C 7F05B15C 44814000 */ mtc1 $at, $f8 +/* 08FC90 7F05B160 46042082 */ mul.s $f2, $f4, $f4 +/* 08FC94 7F05B164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FC98 7F05B168 AFA60008 */ sw $a2, 8($sp) +/* 08FC9C 7F05B16C AFA7000C */ sw $a3, 0xc($sp) +/* 08FCA0 7F05B170 46041402 */ mul.s $f16, $f2, $f4 +/* 08FCA4 7F05B174 46108180 */ add.s $f6, $f16, $f16 +/* 08FCA8 7F05B178 46024282 */ mul.s $f10, $f8, $f2 +/* 08FCAC 7F05B17C 460A3201 */ sub.s $f8, $f6, $f10 +/* 08FCB0 7F05B180 44813000 */ mtc1 $at, $f6 +/* 08FCB4 7F05B184 00000000 */ nop +/* 08FCB8 7F05B188 46064480 */ add.s $f18, $f8, $f6 +/* 08FCBC 7F05B18C 44814000 */ mtc1 $at, $f8 +/* 08FCC0 7F05B190 00000000 */ nop +/* 08FCC4 7F05B194 46124181 */ sub.s $f6, $f8, $f18 +/* 08FCC8 7F05B198 46126282 */ mul.s $f10, $f12, $f18 +/* 08FCCC 7F05B19C 00000000 */ nop +/* 08FCD0 7F05B1A0 46067202 */ mul.s $f8, $f14, $f6 +/* 08FCD4 7F05B1A4 46085180 */ add.s $f6, $f10, $f8 +/* 08FCD8 7F05B1A8 46021280 */ add.s $f10, $f2, $f2 +/* 08FCDC 7F05B1AC 460A8201 */ sub.s $f8, $f16, $f10 +/* 08FCE0 7F05B1B0 46044280 */ add.s $f10, $f8, $f4 +/* 08FCE4 7F05B1B4 C7A80008 */ lwc1 $f8, 8($sp) +/* 08FCE8 7F05B1B8 460A4102 */ mul.s $f4, $f8, $f10 +/* 08FCEC 7F05B1BC C7AA000C */ lwc1 $f10, 0xc($sp) +/* 08FCF0 7F05B1C0 46043200 */ add.s $f8, $f6, $f4 +/* 08FCF4 7F05B1C4 46028181 */ sub.s $f6, $f16, $f2 +/* 08FCF8 7F05B1C8 46065102 */ mul.s $f4, $f10, $f6 +/* 08FCFC 7F05B1CC 03E00008 */ jr $ra +/* 08FD00 7F05B1D0 46044000 */ add.s $f0, $f8, $f4 +) +#endif + + + + diff --git a/src/game/unk_05B1E0.c b/src/game/unk_05B1E0.c new file mode 100644 index 0000000..54ac9f1 --- /dev/null +++ b/src/game/unk_05B1E0.c @@ -0,0 +1,314 @@ +#include "ultra64.h" + +typedef u16 vec3u[3]; +typedef f32 vec3f[3]; +typedef f32 mat44f[4][4]; +typedef f32 quatf[4]; // w, x, y, z + +float acosf(float); + +#define M_PI 3.1415927f +#define HALF2RAD(x) (x * (M_PI / 32768.0f)) + +void quaternion_set_rotation_around_xyz(vec3u angles, quatf q) { + f32 cos_x = cosf(HALF2RAD(angles[0]) * 0.5f); + f32 sin_x = sinf(HALF2RAD(angles[0]) * 0.5f); + f32 cos_y = cosf(HALF2RAD(angles[1]) * 0.5f); + f32 sin_y = sinf(HALF2RAD(angles[1]) * 0.5f); + f32 cos_z = cosf(HALF2RAD(angles[2]) * 0.5f); + f32 sin_z = sinf(HALF2RAD(angles[2]) * 0.5f); + f32 cos_x_cos_y = cos_x * cos_y; + f32 cos_x_sin_y = cos_x * sin_y; + f32 sin_x_cos_y = sin_x * cos_y; + f32 sin_x_sin_y = sin_x * sin_y; + q[0] = ((cos_x_cos_y * cos_z) + (sin_x_sin_y * sin_z)); + q[1] = ((sin_x_cos_y * cos_z) - (cos_x_sin_y * sin_z)); + q[2] = ((cos_x_sin_y * cos_z) + (sin_x_cos_y * sin_z)); + q[3] = ((cos_x_cos_y * sin_z) - (sin_x_sin_y * cos_z)); +} + +void quaternion_set_rotation_around_xyzf(vec3f angles, quatf q) { + f32 cos_x = cosf(angles[0] * 0.5f); + f32 sin_x = sinf(angles[0] * 0.5f); + f32 cos_y = cosf(angles[1] * 0.5f); + f32 sin_y = sinf(angles[1] * 0.5f); + f32 cos_z = cosf(angles[2] * 0.5f); + f32 sin_z = sinf(angles[2] * 0.5f); + f32 cos_x_cos_y = cos_x * cos_y; + f32 cos_x_sin_y = cos_x * sin_y; + f32 sin_x_cos_y = sin_x * cos_y; + f32 sin_x_sin_y = sin_x * sin_y; + q[0] = (cos_x_cos_y * cos_z) + (sin_x_sin_y * sin_z); + q[1] = (sin_x_cos_y * cos_z) - (cos_x_sin_y * sin_z); + q[2] = (cos_x_sin_y * cos_z) + (sin_x_cos_y * sin_z); + q[3] = (cos_x_cos_y * sin_z) - (sin_x_sin_y * cos_z); +} + +void quaternion_set_rotation_around_x(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = sinf(angle * 0.5f); + q[2] = 0.0f; + q[3] = 0.0f; +} + +void quaternion_set_rotation_around_y(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = 0.0f; + q[2] = sinf(angle * 0.5f); + q[3] = 0.0f; +} + +void quaternion_set_rotation_around_z(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = 0.0f; + q[2] = 0.0f; + q[3] = sinf(angle * 0.5f); +} + +void quaternion_to_matrix(quatf q, mat44f matrix) { + f32 temp_f6 = 2.0f / ((q[0] * q[0]) + (q[1] * q[1]) + (q[2] * q[2]) + (q[3] * q[3])); + f32 temp_f18 = q[1] * temp_f6; + f32 temp_f16 = q[2] * temp_f6; + f32 temp_f14 = q[3] * temp_f6; + f32 sp34 = q[0] * temp_f18; + f32 sp30 = q[0] * temp_f16; + f32 sp2C = q[0] * temp_f14; + f32 sp28 = q[1] * temp_f18; + f32 sp24 = q[1] * temp_f16; + f32 sp20 = q[1] * temp_f14; + f32 sp1C = q[2] * temp_f16; + f32 sp18 = q[2] * temp_f14; + f32 sp14 = q[3] * temp_f14; + matrix[0][0] = (1.0f - (sp1C + sp14)); + matrix[0][1] = (sp24 + sp2C); + matrix[0][2] = (sp20 - sp30); + matrix[1][0] = (sp24 - sp2C); + matrix[1][1] = (1.0f - (sp28 + sp14)); + matrix[1][2] = (sp18 + sp34); + matrix[2][0] = (sp20 + sp30); + matrix[2][1] = (sp18 - sp34); + matrix[2][2] = (1.0f - (sp28 + sp1C)); + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][3] = 0.0f; + matrix[3][3] = 1.0f; +} + +void quaternion_from_matrix(mat44f arg0, quatf arg1) { + f32 var1; + f32 var2; + f32 trace = arg0[0][0] + arg0[1][1] + arg0[2][2] + 1.0f; + if (0.0f < trace) { + var1 = sqrtf(trace); + var2 = 0.5f / var1; + arg1[0] = var1 * 0.5f; + arg1[1] = (arg0[1][2] - arg0[2][1]) * var2; + arg1[2] = (arg0[2][0] - arg0[0][2]) * var2; + arg1[3] = (arg0[0][1] - arg0[1][0]) * var2; + } else { + s32 i; + s32 j; + s32 indices[3] = {1,2,0}; + s32 k; + i = 0; + if (arg0[0][0] < arg0[1][1]) { + i = 1; + } + if (arg0[i][i] < arg0[2][2]) { + i = 2; + } + j = indices[i]; + k = indices[j]; + var1 = sqrtf(arg0[i][i] - arg0[j][j] - arg0[k][k] + 1.0f); + var2 = 0.5f / var1; + arg1[i + 1] = var1 * 0.5f; + arg1[ 0] = (arg0[j][k] - arg0[k][j]) * var2; + arg1[j + 1] = (arg0[i][j] + arg0[j][i]) * var2; + arg1[k + 1] = (arg0[i][k] + arg0[k][i]) * var2; + } +} + +void quaternion_to_transform_matrix(vec3f position, quatf rotation, mat44f matrix) { + quaternion_to_matrix(rotation, matrix); + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; +} + +#define EPSILON 0.00001001f + +void quaternion_slerp(quatf q1, quatf q2, f32 t, quatf result) { + f32 dot = (q1[0] * q2[0]) + (q1[1] * q2[1]) + (q1[2] * q2[2]) + (q1[3] * q2[3]); + f32 theta; + f32 theta_q1; + f32 theta_q2; + f32 sine; + f32 coeff_q1; + f32 coeff_q2; + if (dot < (-1.0f + EPSILON)) { + result[0] = ((1.0f - t) * q1[0]) - (q2[0] * t); + result[1] = ((1.0f - t) * q1[1]) - (q2[1] * t); + result[2] = ((1.0f - t) * q1[2]) - (q2[2] * t); + result[3] = ((1.0f - t) * q1[3]) - (q2[3] * t); + } + else if (dot <= (1.0f - EPSILON)) { + theta = acosf(dot); + theta_q1 = (1.0f - t) * theta; + theta_q2 = t * theta; + sine = sinf(theta); + coeff_q1 = sinf(theta_q1) / sine; + coeff_q2 = sinf(theta_q2) / sine; + result[0] = (coeff_q1 * q1[0]) + (q2[0] * coeff_q2); + result[1] = (coeff_q1 * q1[1]) + (q2[1] * coeff_q2); + result[2] = (coeff_q1 * q1[2]) + (q2[2] * coeff_q2); + result[3] = (coeff_q1 * q1[3]) + (q2[3] * coeff_q2); + } else { + result[0] = ((1.0f - t) * q1[0]) + (q2[0] * t); + result[1] = ((1.0f - t) * q1[1]) + (q2[1] * t); + result[2] = ((1.0f - t) * q1[2]) + (q2[2] * t); + result[3] = ((1.0f - t) * q1[3]) + (q2[3] * t); + } +} + +void quaternion_7F05BC68(quatf q, f32 t, quatf result) { + f32 phi_f12 = q[0]; + f32 phi_f16 = 1.0f; + f32 temp_f0_2; + f32 test2; + f32 temp_f4; + f32 sp20; + f32 temp_f2; + f32 test; + if (q[0] < 0.0f) { + phi_f12 = -phi_f12; + phi_f16 = -phi_f16; + } + if (phi_f12 < -0.99998999f) { + result[0] = (q[0] * t) - ((1.0f - t) * phi_f16); + result[1] = (q[1] * t); + result[2] = (q[2] * t); + result[3] = (q[3] * t); + } else if (phi_f12 <= 0.99998999f) { + temp_f0_2 = acosf(phi_f12); + test2 = t * temp_f0_2; + temp_f4 = (1.0f - t) * temp_f0_2; + sp20 = sinf(temp_f0_2); + temp_f2 = sinf(test2) / sp20; + test = sinf(temp_f4) / sp20; + result[0] = (q[0] * temp_f2) + (test * phi_f16); + result[1] = (q[1] * temp_f2); + result[2] = (q[2] * temp_f2); + result[3] = (q[3] * temp_f2); + } else { + result[0] = (q[0] * t) + ((1.0f - t) * phi_f16); + result[1] = (q[1] * t); + result[2] = (q[2] * t); + result[3] = (q[3] * t); + } +} + +void quaternion_ensure_shortest_path(quatf q1, quatf q2) { + f32 dot = (q1[0] * q2[0]) + (q1[1] * q2[1]) + (q1[2] * q2[2]) + (q1[3] * q2[3]); + if (dot < 0.0f) { + q2[0] = -q2[0]; + q2[1] = -q2[1]; + q2[2] = -q2[2]; + q2[3] = -q2[3]; + } +} + +void quaternion_multiply(quatf lhs, quatf rhs, quatf result) { + result[0] = (lhs[0] * rhs[0]) - (lhs[1] * rhs[1]) - (lhs[2] * rhs[2]) - (lhs[3] * rhs[3]); + result[1] = (lhs[0] * rhs[1]) + (rhs[0] * lhs[1]) + (lhs[2] * rhs[3]) - (lhs[3] * rhs[2]); + result[2] = (lhs[0] * rhs[2]) + (rhs[0] * lhs[2]) + (lhs[3] * rhs[1]) - (lhs[1] * rhs[3]); + result[3] = (lhs[0] * rhs[3]) + (rhs[0] * lhs[3]) + (lhs[1] * rhs[2]) - (lhs[2] * rhs[1]); +} + +void quaternion_multiply_in_place(quatf lhs, quatf rhs) { + quatf result; + quaternion_multiply(lhs, rhs, result); + rhs[0] = result[0]; + rhs[1] = result[1]; + rhs[2] = result[2]; + rhs[3] = result[3]; +} + +void quaternion_7F05BFD4(quatf q1, quatf q2) { + f32 angle = acosf(q1[0]); + f32 sine = sinf(angle); + if (sine == 0.0f) { + q2[0] = 0.0f; + q2[1] = 0.0f; + q2[2] = 0.0f; + q2[3] = 0.0f; + } else { + q2[0] = 0.0f; + q2[1] = (q1[1] * (angle / sine)); + q2[2] = (q1[2] * (angle / sine)); + q2[3] = (q1[3] * (angle / sine)); + } +} + +void quaternion_7F05C068(quatf q1, quatf q2) { + f32 sine; + f32 angle = sqrtf((q1[1] * q1[1]) + (q1[2] * q1[2]) + (q1[3] * q1[3])); + f32 unknown; + if (angle == 0.0f) { + q2[0] = 1.0f; + q2[1] = 0.0f; + q2[2] = 0.0f; + q2[3] = 0.0f; + } else { + sine = sinf(angle); + unknown = sine / angle; + q2[0] = cosf(angle); + q2[1] = (q1[1] * unknown); + q2[2] = (q1[2] * unknown); + q2[3] = (q1[3] * unknown); + } +} + +void quaternion_7F05C138(quatf arg0, quatf arg1, quatf arg2, quatf result) { + quatf conjugate; + quatf sp50; + quatf sp40; + quatf sp30; + quatf sp20; + conjugate[0] = arg1[0]; + conjugate[1] = -arg1[1]; + conjugate[2] = -arg1[2]; + conjugate[3] = -arg1[3]; + quaternion_multiply(conjugate, arg0, sp50); + quaternion_multiply(conjugate, arg2, sp40); + quaternion_7F05BFD4(sp50, sp30); + quaternion_7F05BFD4(sp40, sp20); + sp30[0] = -(sp30[0] + sp20[0]) * 0.25f; + sp30[1] = -(sp30[1] + sp20[1]) * 0.25f; + sp30[2] = -(sp30[2] + sp20[2]) * 0.25f; + sp30[3] = -(sp30[3] + sp20[3]) * 0.25f; + quaternion_7F05C068(sp30, sp50); + quaternion_multiply(arg1, sp50, result); +} + +void quaternion_7F05C250(quatf q1, quatf q2, quatf q3, quatf q4, f32 t, quatf result) { + quatf q5; + quatf q6; + f32 t2 = (t + t) * (1.0f - t); + quaternion_ensure_shortest_path(q1, q4); + quaternion_slerp(q1, q4, t, q5); + quaternion_ensure_shortest_path(q2, q3); + quaternion_slerp(q2, q3, t, q6); + quaternion_ensure_shortest_path(q5, q6); + quaternion_slerp(q5, q6, t2, result); +} + +void quaternion_7F05C2F0(quatf q1, quatf q2, quatf q3, quatf q4, f32 t, quatf result) { + quatf q5; + quatf q6; + quaternion_7F05C138(q1, q2, q3, q5); + quaternion_7F05C138(q2, q3, q4, q6); + quaternion_7F05C250(q2, q5, q6, q3, t, result); +} diff --git a/src/game/unk_05C440.c b/src/game/unk_05C440.c new file mode 100644 index 0000000..3055001 --- /dev/null +++ b/src/game/unk_05C440.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "game/unk_05C440.h" + + +f32 sub_GAME_7F05C440(f32 arg0) +{ + f32 temp_f2; + + if (arg0 <= 0.0f) + { + return (f32) (s32) arg0; + } + temp_f2 = (f32) (s32) arg0; + if (arg0 == temp_f2) + { + return temp_f2; + } + return temp_f2 + 1.0f; +} + + +s32 sub_GAME_7F05C4B8(f32 arg0) +{ + s32 temp_f8; + + if (arg0 <= 0.0f) + { + return (s32) arg0; + } + temp_f8 = (s32) arg0; + if (arg0 == (f32) temp_f8) + { + return temp_f8; + } + return temp_f8 + 1; +} diff --git a/src/game/unk_05C440.h b/src/game/unk_05C440.h new file mode 100644 index 0000000..4ae39d4 --- /dev/null +++ b/src/game/unk_05C440.h @@ -0,0 +1,9 @@ +#ifndef _UNK_05C440_H_ +#define _UNK_05C440_H_ + +#include "ultra64.h" + +f32 sub_GAME_7F05C440(f32 arg0); +s32 sub_GAME_7F05C4B8(f32 arg0); + +#endif diff --git a/src/game/unk_08DBB0.c b/src/game/unk_08DBB0.c new file mode 100644 index 0000000..96a979d --- /dev/null +++ b/src/game/unk_08DBB0.c @@ -0,0 +1,2784 @@ +#include "ultra64.h" +#include "game/lvl.h" +#include "game/unk_093880.h" + +// data +//D:80036AD0 +u32 D_80036AD0 = 0x4144; +u32 D_80036AD4 = 0x41180000; +u32 D_80036AD8 = 0x41D80000; +u32 D_80036ADC = 0; +u32 D_80036AE0 = 0; + +//D:80036AE4 +u32 D_80036AE4 = 0x3FC00000; +u32 D_80036AE8 = 0x4070; +u32 D_80036AEC = 0x40F00000; +u32 D_80036AF0 = 0x41880000; +u32 D_80036AF4 = 0; +//D:80036AF8 +u32 D_80036AF8 = 0x3FC00000; +//D:80036AFC +u32 D_80036AFC = 0x42C80000; + +//D:80036B00 +u32 D_80036B00 = 0; +//D:80036B04 +u32 D_80036B04 = 0; +//D:80036B08 +u32 D_80036B08 = 0; +//D:80036B0C +u32 D_80036B0C = 0; +//D:80036B10 +u32 D_80036B10 = 0; +//D:80036B14 +f32 D_80036B14 = 1.0; +//D:80036B18 +u32 D_80036B18 = 0; +//D:80036B1C +f32 D_80036B1C = 1.0; +//D:80036B20 +u32 D_80036B20 = 0; +//D:80036B24 +u32 D_80036B24 = 0; +//D:80036B28 +u32 D_80036B28 = 1; +//D:80036B2C +u32 D_80036B2C = 3; +//D:80036B30 +u32 D_80036B30[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80036B60 +u32 D_80036B60 = 0; +//D:80036B64 +u32 D_80036B64 = 0; +//D:80036B68 +u32 D_80036B68 = 0; +//D:80036B6C +u32 D_80036B6C = 0; + + + +// rodata + + + +#ifdef NONMATCHING// +void sub_GAME_7F08DBB0(void) +{ + pPlayer->field_5BC = (pPlayer->field_5BC == 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08DBB0 +/* 0C26E0 7F08DBB0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C26E4 7F08DBB4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C26E8 7F08DBB8 806205BC */ lb $v0, 0x5bc($v1) +/* 0C26EC 7F08DBBC 2C4E0001 */ sltiu $t6, $v0, 1 +/* 0C26F0 7F08DBC0 03E00008 */ jr $ra +/* 0C26F4 7F08DBC4 A06E05BC */ sb $t6, 0x5bc($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DBC8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552E0 +.word 0x3ca3d70a /*0.02*/ +glabel D_800552E4 +.word 0x3ca3d70a /*0.02*/ +glabel D_800552E8 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_800552EC +.word 0xbc23d70a /*-0.0099999998*/ +glabel D_800552F0 +.word 0xbc23d70a /*-0.0099999998*/ +glabel D_800552F4 +.word 0x3c23d70a /*0.0099999998*/ +.text +glabel sub_GAME_7F08DBC8 +/* 0C26F8 7F08DBC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C26FC 7F08DBCC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C2700 7F08DBD0 AFB20028 */ sw $s2, 0x28($sp) +/* 0C2704 7F08DBD4 AFB10024 */ sw $s1, 0x24($sp) +/* 0C2708 7F08DBD8 AFB00020 */ sw $s0, 0x20($sp) +/* 0C270C 7F08DBDC 0C002914 */ jal get_random_value +/* 0C2710 7F08DBE0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C2714 7F08DBE4 44822000 */ mtc1 $v0, $f4 +/* 0C2718 7F08DBE8 3C118008 */ lui $s1, %hi(pPlayer) +/* 0C271C 7F08DBEC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0C2720 7F08DBF0 4481A000 */ mtc1 $at, $f20 +/* 0C2724 7F08DBF4 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0C2728 7F08DBF8 8E300000 */ lw $s0, ($s1) +/* 0C272C 7F08DBFC 2412000C */ li $s2, 12 +/* 0C2730 7F08DC00 04410005 */ bgez $v0, .L7F08DC18 +/* 0C2734 7F08DC04 468021A0 */ cvt.s.w $f6, $f4 +/* 0C2738 7F08DC08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C273C 7F08DC0C 44814000 */ mtc1 $at, $f8 +/* 0C2740 7F08DC10 00000000 */ nop +/* 0C2744 7F08DC14 46083180 */ add.s $f6, $f6, $f8 +.L7F08DC18: +/* 0C2748 7F08DC18 46143282 */ mul.s $f10, $f6, $f20 +/* 0C274C 7F08DC1C 8E0E0594 */ lw $t6, 0x594($s0) +/* 0C2750 7F08DC20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C2754 7F08DC24 44818000 */ mtc1 $at, $f16 +/* 0C2758 7F08DC28 01D20019 */ multu $t6, $s2 +/* 0C275C 7F08DC2C 3C018005 */ lui $at, %hi(D_800552E0) +/* 0C2760 7F08DC30 C42452E0 */ lwc1 $f4, %lo(D_800552E0)($at) +/* 0C2764 7F08DC34 46105481 */ sub.s $f18, $f10, $f16 +/* 0C2768 7F08DC38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C276C 7F08DC3C 44813000 */ mtc1 $at, $f6 +/* 0C2770 7F08DC40 46049202 */ mul.s $f8, $f18, $f4 +/* 0C2774 7F08DC44 00007812 */ mflo $t7 +/* 0C2778 7F08DC48 020FC021 */ addu $t8, $s0, $t7 +/* 0C277C 7F08DC4C E7080564 */ swc1 $f8, 0x564($t8) +/* 0C2780 7F08DC50 8E300000 */ lw $s0, ($s1) +/* 0C2784 7F08DC54 8E190594 */ lw $t9, 0x594($s0) +/* 0C2788 7F08DC58 03320019 */ multu $t9, $s2 +/* 0C278C 7F08DC5C 00004012 */ mflo $t0 +/* 0C2790 7F08DC60 02084821 */ addu $t1, $s0, $t0 +/* 0C2794 7F08DC64 0C002914 */ jal get_random_value +/* 0C2798 7F08DC68 E526056C */ swc1 $f6, 0x56c($t1) +/* 0C279C 7F08DC6C 44825000 */ mtc1 $v0, $f10 +/* 0C27A0 7F08DC70 8E300000 */ lw $s0, ($s1) +/* 0C27A4 7F08DC74 04410005 */ bgez $v0, .L7F08DC8C +/* 0C27A8 7F08DC78 46805420 */ cvt.s.w $f16, $f10 +/* 0C27AC 7F08DC7C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C27B0 7F08DC80 44819000 */ mtc1 $at, $f18 +/* 0C27B4 7F08DC84 00000000 */ nop +/* 0C27B8 7F08DC88 46128400 */ add.s $f16, $f16, $f18 +.L7F08DC8C: +/* 0C27BC 7F08DC8C 46148102 */ mul.s $f4, $f16, $f20 +/* 0C27C0 7F08DC90 8E0A0594 */ lw $t2, 0x594($s0) +/* 0C27C4 7F08DC94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C27C8 7F08DC98 44814000 */ mtc1 $at, $f8 +/* 0C27CC 7F08DC9C 01520019 */ multu $t2, $s2 +/* 0C27D0 7F08DCA0 3C018005 */ lui $at, %hi(D_800552E4) +/* 0C27D4 7F08DCA4 C42A52E4 */ lwc1 $f10, %lo(D_800552E4)($at) +/* 0C27D8 7F08DCA8 46082181 */ sub.s $f6, $f4, $f8 +/* 0C27DC 7F08DCAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C27E0 7F08DCB0 44818000 */ mtc1 $at, $f16 +/* 0C27E4 7F08DCB4 460A3482 */ mul.s $f18, $f6, $f10 +/* 0C27E8 7F08DCB8 00005812 */ mflo $t3 +/* 0C27EC 7F08DCBC 020B6021 */ addu $t4, $s0, $t3 +/* 0C27F0 7F08DCC0 E592057C */ swc1 $f18, 0x57c($t4) +/* 0C27F4 7F08DCC4 8E300000 */ lw $s0, ($s1) +/* 0C27F8 7F08DCC8 8E0D0594 */ lw $t5, 0x594($s0) +/* 0C27FC 7F08DCCC 01B20019 */ multu $t5, $s2 +/* 0C2800 7F08DCD0 00007012 */ mflo $t6 +/* 0C2804 7F08DCD4 020E7821 */ addu $t7, $s0, $t6 +/* 0C2808 7F08DCD8 E5F00580 */ swc1 $f16, 0x580($t7) +/* 0C280C 7F08DCDC 8E380000 */ lw $t8, ($s1) +/* 0C2810 7F08DCE0 8F190594 */ lw $t9, 0x594($t8) +/* 0C2814 7F08DCE4 13200027 */ beqz $t9, .L7F08DD84 +/* 0C2818 7F08DCE8 00000000 */ nop +/* 0C281C 7F08DCEC 0C002914 */ jal get_random_value +/* 0C2820 7F08DCF0 00000000 */ nop +/* 0C2824 7F08DCF4 44822000 */ mtc1 $v0, $f4 +/* 0C2828 7F08DCF8 8E300000 */ lw $s0, ($s1) +/* 0C282C 7F08DCFC 04410005 */ bgez $v0, .L7F08DD14 +/* 0C2830 7F08DD00 46802220 */ cvt.s.w $f8, $f4 +/* 0C2834 7F08DD04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2838 7F08DD08 44813000 */ mtc1 $at, $f6 +/* 0C283C 7F08DD0C 00000000 */ nop +/* 0C2840 7F08DD10 46064200 */ add.s $f8, $f8, $f6 +.L7F08DD14: +/* 0C2844 7F08DD14 8E080594 */ lw $t0, 0x594($s0) +/* 0C2848 7F08DD18 46144282 */ mul.s $f10, $f8, $f20 +/* 0C284C 7F08DD1C 3C018005 */ lui $at, %hi(D_800552E8) +/* 0C2850 7F08DD20 01120019 */ multu $t0, $s2 +/* 0C2854 7F08DD24 C43252E8 */ lwc1 $f18, %lo(D_800552E8)($at) +/* 0C2858 7F08DD28 46125402 */ mul.s $f16, $f10, $f18 +/* 0C285C 7F08DD2C 00004812 */ mflo $t1 +/* 0C2860 7F08DD30 02095021 */ addu $t2, $s0, $t1 +/* 0C2864 7F08DD34 0C002914 */ jal get_random_value +/* 0C2868 7F08DD38 E5500568 */ swc1 $f16, 0x568($t2) +/* 0C286C 7F08DD3C 44822000 */ mtc1 $v0, $f4 +/* 0C2870 7F08DD40 8E300000 */ lw $s0, ($s1) +/* 0C2874 7F08DD44 04410005 */ bgez $v0, .L7F08DD5C +/* 0C2878 7F08DD48 468021A0 */ cvt.s.w $f6, $f4 +/* 0C287C 7F08DD4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2880 7F08DD50 44814000 */ mtc1 $at, $f8 +/* 0C2884 7F08DD54 00000000 */ nop +/* 0C2888 7F08DD58 46083180 */ add.s $f6, $f6, $f8 +.L7F08DD5C: +/* 0C288C 7F08DD5C 8E0B0594 */ lw $t3, 0x594($s0) +/* 0C2890 7F08DD60 46143282 */ mul.s $f10, $f6, $f20 +/* 0C2894 7F08DD64 3C018005 */ lui $at, %hi(D_800552EC) +/* 0C2898 7F08DD68 01720019 */ multu $t3, $s2 +/* 0C289C 7F08DD6C C43252EC */ lwc1 $f18, %lo(D_800552EC)($at) +/* 0C28A0 7F08DD70 46125402 */ mul.s $f16, $f10, $f18 +/* 0C28A4 7F08DD74 00006012 */ mflo $t4 +/* 0C28A8 7F08DD78 020C6821 */ addu $t5, $s0, $t4 +/* 0C28AC 7F08DD7C 10000026 */ b .L7F08DE18 +/* 0C28B0 7F08DD80 E5B00584 */ swc1 $f16, 0x584($t5) +.L7F08DD84: +/* 0C28B4 7F08DD84 0C002914 */ jal get_random_value +/* 0C28B8 7F08DD88 00000000 */ nop +/* 0C28BC 7F08DD8C 44822000 */ mtc1 $v0, $f4 +/* 0C28C0 7F08DD90 8E300000 */ lw $s0, ($s1) +/* 0C28C4 7F08DD94 04410005 */ bgez $v0, .L7F08DDAC +/* 0C28C8 7F08DD98 46802220 */ cvt.s.w $f8, $f4 +/* 0C28CC 7F08DD9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C28D0 7F08DDA0 44813000 */ mtc1 $at, $f6 +/* 0C28D4 7F08DDA4 00000000 */ nop +/* 0C28D8 7F08DDA8 46064200 */ add.s $f8, $f8, $f6 +.L7F08DDAC: +/* 0C28DC 7F08DDAC 8E0E0594 */ lw $t6, 0x594($s0) +/* 0C28E0 7F08DDB0 46144282 */ mul.s $f10, $f8, $f20 +/* 0C28E4 7F08DDB4 3C018005 */ lui $at, %hi(D_800552F0) +/* 0C28E8 7F08DDB8 01D20019 */ multu $t6, $s2 +/* 0C28EC 7F08DDBC C43252F0 */ lwc1 $f18, %lo(D_800552F0)($at) +/* 0C28F0 7F08DDC0 46125402 */ mul.s $f16, $f10, $f18 +/* 0C28F4 7F08DDC4 00007812 */ mflo $t7 +/* 0C28F8 7F08DDC8 020FC021 */ addu $t8, $s0, $t7 +/* 0C28FC 7F08DDCC 0C002914 */ jal get_random_value +/* 0C2900 7F08DDD0 E7100568 */ swc1 $f16, 0x568($t8) +/* 0C2904 7F08DDD4 44822000 */ mtc1 $v0, $f4 +/* 0C2908 7F08DDD8 8E300000 */ lw $s0, ($s1) +/* 0C290C 7F08DDDC 04410005 */ bgez $v0, .L7F08DDF4 +/* 0C2910 7F08DDE0 468021A0 */ cvt.s.w $f6, $f4 +/* 0C2914 7F08DDE4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2918 7F08DDE8 44814000 */ mtc1 $at, $f8 +/* 0C291C 7F08DDEC 00000000 */ nop +/* 0C2920 7F08DDF0 46083180 */ add.s $f6, $f6, $f8 +.L7F08DDF4: +/* 0C2924 7F08DDF4 8E190594 */ lw $t9, 0x594($s0) +/* 0C2928 7F08DDF8 46143282 */ mul.s $f10, $f6, $f20 +/* 0C292C 7F08DDFC 3C018005 */ lui $at, %hi(D_800552F4) +/* 0C2930 7F08DE00 03320019 */ multu $t9, $s2 +/* 0C2934 7F08DE04 C43252F4 */ lwc1 $f18, %lo(D_800552F4)($at) +/* 0C2938 7F08DE08 46125402 */ mul.s $f16, $f10, $f18 +/* 0C293C 7F08DE0C 00004012 */ mflo $t0 +/* 0C2940 7F08DE10 02084821 */ addu $t1, $s0, $t0 +/* 0C2944 7F08DE14 E5300584 */ swc1 $f16, 0x584($t1) +.L7F08DE18: +/* 0C2948 7F08DE18 8E300000 */ lw $s0, ($s1) +/* 0C294C 7F08DE1C 240B0001 */ li $t3, 1 +/* 0C2950 7F08DE20 8E0A0594 */ lw $t2, 0x594($s0) +/* 0C2954 7F08DE24 016A6023 */ subu $t4, $t3, $t2 +/* 0C2958 7F08DE28 AE0C0594 */ sw $t4, 0x594($s0) +/* 0C295C 7F08DE2C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C2960 7F08DE30 8FB20028 */ lw $s2, 0x28($sp) +/* 0C2964 7F08DE34 8FB10024 */ lw $s1, 0x24($sp) +/* 0C2968 7F08DE38 8FB00020 */ lw $s0, 0x20($sp) +/* 0C296C 7F08DE3C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C2970 7F08DE40 03E00008 */ jr $ra +/* 0C2974 7F08DE44 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DE48(struct xyzpoint *param_1) +{ + int i; + + if (pPlayer->field_4DC != 0) + { + (pPlayer->velocity).x = 0.00000000f; + (pPlayer->velocity).y = param_1->y / 0.06999999f; + (pPlayer->velocity).z = 0.00000000f; + pPlayer->field_4DC = 0; + } + for (i = 0; i < clock_timer; ++i) + { + //wrong register allocation for mult + (pPlayer->velocity).x = param_1->x + ((pPlayer->velocity).x * 0.93f); + (pPlayer->velocity).y = param_1->y + ((pPlayer->velocity).y * 0.93f); + (pPlayer->velocity).z = param_1->z + ((pPlayer->velocity).z * 0.93f); + } + (pPlayer->scaled_velocity).x = (pPlayer->velocity).x * 0.06999999f; + (pPlayer->scaled_velocity).y = (pPlayer->velocity).y * 0.06999999f; + (pPlayer->scaled_velocity).z = (pPlayer->velocity).z * 0.06999999f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552F8 +.word 0x3d8f5c28 /*0.069999993*/ +glabel master_player_perspective +.word 0x3d8f5c28 /*0.069999993*/ +glabel D_80055300 +.word 0x3f6e147b /*0.93000001*/ +.text +glabel sub_GAME_7F08DE48 +/* 0C2978 7F08DE48 3C058008 */ lui $a1, %hi(pPlayer) +/* 0C297C 7F08DE4C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0C2980 7F08DE50 8CA20000 */ lw $v0, ($a1) +/* 0C2984 7F08DE54 3C068005 */ lui $a2, %hi(clock_timer) +/* 0C2988 7F08DE58 24C68374 */ addiu $a2, %lo(clock_timer) # addiu $a2, $a2, -0x7c8c +/* 0C298C 7F08DE5C 8C4E04DC */ lw $t6, 0x4dc($v0) +/* 0C2990 7F08DE60 51C0000E */ beql $t6, $zero, .L7F08DE9C +/* 0C2994 7F08DE64 8CC80000 */ lw $t0, ($a2) +/* 0C2998 7F08DE68 44800000 */ mtc1 $zero, $f0 +/* 0C299C 7F08DE6C 3C018005 */ lui $at, %hi(D_800552F8) +/* 0C29A0 7F08DE70 C42252F8 */ lwc1 $f2, %lo(D_800552F8)($at) +/* 0C29A4 7F08DE74 E4400520 */ swc1 $f0, 0x520($v0) +/* 0C29A8 7F08DE78 C4840004 */ lwc1 $f4, 4($a0) +/* 0C29AC 7F08DE7C 8CAF0000 */ lw $t7, ($a1) +/* 0C29B0 7F08DE80 46022183 */ div.s $f6, $f4, $f2 +/* 0C29B4 7F08DE84 E5E60524 */ swc1 $f6, 0x524($t7) +/* 0C29B8 7F08DE88 8CB80000 */ lw $t8, ($a1) +/* 0C29BC 7F08DE8C E7000528 */ swc1 $f0, 0x528($t8) +/* 0C29C0 7F08DE90 8CB90000 */ lw $t9, ($a1) +/* 0C29C4 7F08DE94 AF2004DC */ sw $zero, 0x4dc($t9) +/* 0C29C8 7F08DE98 8CC80000 */ lw $t0, ($a2) +.L7F08DE9C: +/* 0C29CC 7F08DE9C 3C018005 */ lui $at, %hi(master_player_perspective) +/* 0C29D0 7F08DEA0 C42252FC */ lwc1 $f2, %lo(master_player_perspective)($at) +/* 0C29D4 7F08DEA4 1900001A */ blez $t0, .L7F08DF10 +/* 0C29D8 7F08DEA8 00001825 */ move $v1, $zero +/* 0C29DC 7F08DEAC 3C018005 */ lui $at, %hi(D_80055300) +/* 0C29E0 7F08DEB0 C4205300 */ lwc1 $f0, %lo(D_80055300)($at) +/* 0C29E4 7F08DEB4 8CA20000 */ lw $v0, ($a1) +.L7F08DEB8: +/* 0C29E8 7F08DEB8 C4880000 */ lwc1 $f8, ($a0) +/* 0C29EC 7F08DEBC 24630001 */ addiu $v1, $v1, 1 +/* 0C29F0 7F08DEC0 C44A0520 */ lwc1 $f10, 0x520($v0) +/* 0C29F4 7F08DEC4 460A0402 */ mul.s $f16, $f0, $f10 +/* 0C29F8 7F08DEC8 46104480 */ add.s $f18, $f8, $f16 +/* 0C29FC 7F08DECC E4520520 */ swc1 $f18, 0x520($v0) +/* 0C2A00 7F08DED0 8CA20000 */ lw $v0, ($a1) +/* 0C2A04 7F08DED4 C4840004 */ lwc1 $f4, 4($a0) +/* 0C2A08 7F08DED8 C4460524 */ lwc1 $f6, 0x524($v0) +/* 0C2A0C 7F08DEDC 46060282 */ mul.s $f10, $f0, $f6 +/* 0C2A10 7F08DEE0 460A2200 */ add.s $f8, $f4, $f10 +/* 0C2A14 7F08DEE4 E4480524 */ swc1 $f8, 0x524($v0) +/* 0C2A18 7F08DEE8 8CA20000 */ lw $v0, ($a1) +/* 0C2A1C 7F08DEEC C4900008 */ lwc1 $f16, 8($a0) +/* 0C2A20 7F08DEF0 C4520528 */ lwc1 $f18, 0x528($v0) +/* 0C2A24 7F08DEF4 46120182 */ mul.s $f6, $f0, $f18 +/* 0C2A28 7F08DEF8 46068100 */ add.s $f4, $f16, $f6 +/* 0C2A2C 7F08DEFC E4440528 */ swc1 $f4, 0x528($v0) +/* 0C2A30 7F08DF00 8CC90000 */ lw $t1, ($a2) +/* 0C2A34 7F08DF04 0069082A */ slt $at, $v1, $t1 +/* 0C2A38 7F08DF08 5420FFEB */ bnezl $at, .L7F08DEB8 +/* 0C2A3C 7F08DF0C 8CA20000 */ lw $v0, ($a1) +.L7F08DF10: +/* 0C2A40 7F08DF10 8CA20000 */ lw $v0, ($a1) +/* 0C2A44 7F08DF14 C44A0520 */ lwc1 $f10, 0x520($v0) +/* 0C2A48 7F08DF18 46025202 */ mul.s $f8, $f10, $f2 +/* 0C2A4C 7F08DF1C E44804FC */ swc1 $f8, 0x4fc($v0) +/* 0C2A50 7F08DF20 8CA20000 */ lw $v0, ($a1) +/* 0C2A54 7F08DF24 C4520524 */ lwc1 $f18, 0x524($v0) +/* 0C2A58 7F08DF28 46029402 */ mul.s $f16, $f18, $f2 +/* 0C2A5C 7F08DF2C E4500500 */ swc1 $f16, 0x500($v0) +/* 0C2A60 7F08DF30 8CA20000 */ lw $v0, ($a1) +/* 0C2A64 7F08DF34 C4460528 */ lwc1 $f6, 0x528($v0) +/* 0C2A68 7F08DF38 46023102 */ mul.s $f4, $f6, $f2 +/* 0C2A6C 7F08DF3C 03E00008 */ jr $ra +/* 0C2A70 7F08DF40 E4440504 */ swc1 $f4, 0x504($v0) +) +#endif + + + + + + +void sub_GAME_7F08DF44(struct xyzpoint *param_1, struct xyzpoint *param_2) +{ + int i; + + if (pPlayer->field_4E0 != 0) + { + (pPlayer->field_52C).x = param_1->x / (1.0f - pPlayer->field_4EC); + (pPlayer->field_52C).y = param_1->y / (1.0f - pPlayer->field_4EC); + (pPlayer->field_52C).z = param_1->z / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).x = param_2->x / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).y = param_2->y / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).z = param_2->z / (1.0f - pPlayer->field_4EC); + pPlayer->field_4E0 = 0; + } + + for (i = 0; i < clock_timer; ++i) + { + (pPlayer->field_52C).x = param_1->x + pPlayer->field_4EC * (pPlayer->field_52C).x; + (pPlayer->field_52C).y = param_1->y + pPlayer->field_4EC * (pPlayer->field_52C).y; + (pPlayer->field_52C).z = param_1->z + pPlayer->field_4EC * (pPlayer->field_52C).z; + (pPlayer->field_538).x = param_2->x + pPlayer->field_4EC * (pPlayer->field_538).x; + (pPlayer->field_538).y = param_2->y + pPlayer->field_4EC * (pPlayer->field_538).y; + (pPlayer->field_538).z = param_2->z + pPlayer->field_4EC * (pPlayer->field_538).z; + } + + (pPlayer->field_508).x = (pPlayer->field_52C).x * (1.0f - pPlayer->field_4EC); + (pPlayer->field_508).y = (pPlayer->field_52C).y * (1.0f - pPlayer->field_4EC); + (pPlayer->field_508).z = (pPlayer->field_52C).z * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).x = (pPlayer->field_538).x * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).y = (pPlayer->field_538).y * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).z = (pPlayer->field_538).z * (1.0f - pPlayer->field_4EC); + +} + + +void sub_GAME_7F08E164(float param_1) +{ + float fVar1; + + if (param_1 != pPlayer->field_4EC) { + fVar1 = 1.0f - param_1; + (pPlayer->field_52C).x = ((pPlayer->field_52C).x * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_52C).y = ((pPlayer->field_52C).y * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_52C).z = ((pPlayer->field_52C).z * (1.0f - pPlayer->field_4EC)) / fVar1; + + (pPlayer->field_538).x = ((pPlayer->field_538).x * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_538).y = ((pPlayer->field_538).y * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_538).z = ((pPlayer->field_538).z * (1.0f - pPlayer->field_4EC)) / fVar1; + pPlayer->field_4EC = param_1; + } +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F08E240(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055304 +.word 0x3f333333 /*0.69999999*/ +glabel D_80055308 +.word 0x3dcccccd /*0.1*/ +glabel D_8005530C +.word 0x3f19999a /*0.60000002*/ +glabel D_80055310 +.word 0x3f199999 /*0.59999996*/ +glabel D_80055314 +.word 0x3ecccccd /*0.40000001*/ +glabel D_80055318 +.word 0x3ecccccd /*0.40000001*/ +glabel D_8005531C +.word 0x3f666666 /*0.89999998*/ +glabel D_80055320 +.word 0x3f6e147b /*0.93000001*/ +glabel D_80055324 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80055328 +.word 0x3f59999a /*0.85000002*/ +glabel D_8005532C +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80055330 +.word 0x3c088889 /*0.0083333338*/ +glabel D_80055334 +.word 0x3cccccce /*0.025000002*/ +.text +glabel sub_GAME_7F08E240 +/* 0C2D70 7F08E240 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0C2D74 7F08E244 3C0F8003 */ lui $t7, %hi(D_80036B00) +/* 0C2D78 7F08E248 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C2D7C 7F08E24C AFB00018 */ sw $s0, 0x18($sp) +/* 0C2D80 7F08E250 E7AC00E8 */ swc1 $f12, 0xe8($sp) +/* 0C2D84 7F08E254 E7AE00EC */ swc1 $f14, 0xec($sp) +/* 0C2D88 7F08E258 25EF6B00 */ addiu $t7, %lo(D_80036B00) # addiu $t7, $t7, 0x6b00 +/* 0C2D8C 7F08E25C 8DE10000 */ lw $at, ($t7) +/* 0C2D90 7F08E260 27AE00DC */ addiu $t6, $sp, 0xdc +/* 0C2D94 7F08E264 8DE80004 */ lw $t0, 4($t7) +/* 0C2D98 7F08E268 ADC10000 */ sw $at, ($t6) +/* 0C2D9C 7F08E26C 8DE10008 */ lw $at, 8($t7) +/* 0C2DA0 7F08E270 3C0A8003 */ lui $t2, %hi(D_80036B0C) +/* 0C2DA4 7F08E274 254A6B0C */ addiu $t2, %lo(D_80036B0C) # addiu $t2, $t2, 0x6b0c +/* 0C2DA8 7F08E278 ADC80004 */ sw $t0, 4($t6) +/* 0C2DAC 7F08E27C ADC10008 */ sw $at, 8($t6) +/* 0C2DB0 7F08E280 8D410000 */ lw $at, ($t2) +/* 0C2DB4 7F08E284 27A900D0 */ addiu $t1, $sp, 0xd0 +/* 0C2DB8 7F08E288 8D4D0004 */ lw $t5, 4($t2) +/* 0C2DBC 7F08E28C AD210000 */ sw $at, ($t1) +/* 0C2DC0 7F08E290 8D410008 */ lw $at, 8($t2) +/* 0C2DC4 7F08E294 3C188003 */ lui $t8, %hi(D_80036B18) +/* 0C2DC8 7F08E298 27186B18 */ addiu $t8, %lo(D_80036B18) # addiu $t8, $t8, 0x6b18 +/* 0C2DCC 7F08E29C AD2D0004 */ sw $t5, 4($t1) +/* 0C2DD0 7F08E2A0 AD210008 */ sw $at, 8($t1) +/* 0C2DD4 7F08E2A4 8F010000 */ lw $at, ($t8) +/* 0C2DD8 7F08E2A8 27B900C4 */ addiu $t9, $sp, 0xc4 +/* 0C2DDC 7F08E2AC 8F080004 */ lw $t0, 4($t8) +/* 0C2DE0 7F08E2B0 AF210000 */ sw $at, ($t9) +/* 0C2DE4 7F08E2B4 8F010008 */ lw $at, 8($t8) +/* 0C2DE8 7F08E2B8 3C108008 */ lui $s0, %hi(pPlayer) +/* 0C2DEC 7F08E2BC 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0C2DF0 7F08E2C0 AF280004 */ sw $t0, 4($t9) +/* 0C2DF4 7F08E2C4 AF210008 */ sw $at, 8($t9) +/* 0C2DF8 7F08E2C8 8E040000 */ lw $a0, ($s0) +/* 0C2DFC 7F08E2CC 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 0C2E00 7F08E2D0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2E04 7F08E2D4 8E020000 */ lw $v0, ($s0) +/* 0C2E08 7F08E2D8 E7A000C0 */ swc1 $f0, 0xc0($sp) +/* 0C2E0C 7F08E2DC 3C098003 */ lui $t1, %hi(D_80036B24) +/* 0C2E10 7F08E2E0 8C4304E8 */ lw $v1, 0x4e8($v0) +/* 0C2E14 7F08E2E4 25296B24 */ addiu $t1, %lo(D_80036B24) # addiu $t1, $t1, 0x6b24 +/* 0C2E18 7F08E2E8 252D003C */ addiu $t5, $t1, 0x3c +/* 0C2E1C 7F08E2EC 14600024 */ bnez $v1, .L7F08E380 +/* 0C2E20 7F08E2F0 27AB0080 */ addiu $t3, $sp, 0x80 +/* 0C2E24 7F08E2F4 3C018005 */ lui $at, %hi(D_80055304) +/* 0C2E28 7F08E2F8 C4245304 */ lwc1 $f4, %lo(D_80055304)($at) +/* 0C2E2C 7F08E2FC 3C018005 */ lui $at, %hi(D_80055308) +/* 0C2E30 7F08E300 4600203C */ c.lt.s $f4, $f0 +/* 0C2E34 7F08E304 00000000 */ nop +/* 0C2E38 7F08E308 45000005 */ bc1f .L7F08E320 +/* 0C2E3C 7F08E30C 00000000 */ nop +/* 0C2E40 7F08E310 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C2E44 7F08E314 44813000 */ mtc1 $at, $f6 +/* 0C2E48 7F08E318 10000015 */ b .L7F08E370 +/* 0C2E4C 7F08E31C E44604F4 */ swc1 $f6, 0x4f4($v0) +.L7F08E320: +/* 0C2E50 7F08E320 C4225308 */ lwc1 $f2, %lo(D_80055308)($at) +/* 0C2E54 7F08E324 3C018005 */ lui $at, %hi(D_80055318) +/* 0C2E58 7F08E328 4600103C */ c.lt.s $f2, $f0 +/* 0C2E5C 7F08E32C 00000000 */ nop +/* 0C2E60 7F08E330 4500000D */ bc1f .L7F08E368 +/* 0C2E64 7F08E334 00000000 */ nop +/* 0C2E68 7F08E338 46020201 */ sub.s $f8, $f0, $f2 +/* 0C2E6C 7F08E33C 3C018005 */ lui $at, %hi(D_8005530C) +/* 0C2E70 7F08E340 C42A530C */ lwc1 $f10, %lo(D_8005530C)($at) +/* 0C2E74 7F08E344 3C018005 */ lui $at, %hi(D_80055310) +/* 0C2E78 7F08E348 C4325310 */ lwc1 $f18, %lo(D_80055310)($at) +/* 0C2E7C 7F08E34C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0C2E80 7F08E350 3C018005 */ lui $at, %hi(D_80055318) +/* 0C2E84 7F08E354 C4265314 */ lwc1 $f6, %lo(D_80055314)($at) +/* 0C2E88 7F08E358 46128103 */ div.s $f4, $f16, $f18 +/* 0C2E8C 7F08E35C 46062200 */ add.s $f8, $f4, $f6 +/* 0C2E90 7F08E360 10000003 */ b .L7F08E370 +/* 0C2E94 7F08E364 E44804F4 */ swc1 $f8, 0x4f4($v0) +.L7F08E368: +/* 0C2E98 7F08E368 C42A5318 */ lwc1 $f10, %lo(D_80055318)($at) +/* 0C2E9C 7F08E36C E44A04F4 */ swc1 $f10, 0x4f4($v0) +.L7F08E370: +/* 0C2EA0 7F08E370 8E020000 */ lw $v0, ($s0) +/* 0C2EA4 7F08E374 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C2EA8 7F08E378 10000012 */ b .L7F08E3C4 +/* 0C2EAC 7F08E37C E45004F8 */ swc1 $f16, 0x4f8($v0) +.L7F08E380: +/* 0C2EB0 7F08E380 24010001 */ li $at, 1 +/* 0C2EB4 7F08E384 14610008 */ bne $v1, $at, .L7F08E3A8 +/* 0C2EB8 7F08E388 3C018005 */ lui $at, %hi(D_8005531C) +/* 0C2EBC 7F08E38C C432531C */ lwc1 $f18, %lo(D_8005531C)($at) +/* 0C2EC0 7F08E390 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C2EC4 7F08E394 44812000 */ mtc1 $at, $f4 +/* 0C2EC8 7F08E398 E45204F4 */ swc1 $f18, 0x4f4($v0) +/* 0C2ECC 7F08E39C 8E0C0000 */ lw $t4, ($s0) +/* 0C2ED0 7F08E3A0 10000008 */ b .L7F08E3C4 +/* 0C2ED4 7F08E3A4 E58404F8 */ swc1 $f4, 0x4f8($t4) +.L7F08E3A8: +/* 0C2ED8 7F08E3A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C2EDC 7F08E3AC 44813000 */ mtc1 $at, $f6 +/* 0C2EE0 7F08E3B0 00000000 */ nop +/* 0C2EE4 7F08E3B4 E44604F4 */ swc1 $f6, 0x4f4($v0) +/* 0C2EE8 7F08E3B8 8E020000 */ lw $v0, ($s0) +/* 0C2EEC 7F08E3BC C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C2EF0 7F08E3C0 E44804F8 */ swc1 $f8, 0x4f8($v0) +.L7F08E3C4: +/* 0C2EF4 7F08E3C4 8D210000 */ lw $at, ($t1) +/* 0C2EF8 7F08E3C8 2529000C */ addiu $t1, $t1, 0xc +/* 0C2EFC 7F08E3CC 256B000C */ addiu $t3, $t3, 0xc +/* 0C2F00 7F08E3D0 AD61FFF4 */ sw $at, -0xc($t3) +/* 0C2F04 7F08E3D4 8D21FFF8 */ lw $at, -8($t1) +/* 0C2F08 7F08E3D8 AD61FFF8 */ sw $at, -8($t3) +/* 0C2F0C 7F08E3DC 8D21FFFC */ lw $at, -4($t1) +/* 0C2F10 7F08E3E0 152DFFF8 */ bne $t1, $t5, .L7F08E3C4 +/* 0C2F14 7F08E3E4 AD61FFFC */ sw $at, -4($t3) +/* 0C2F18 7F08E3E8 8D210000 */ lw $at, ($t1) +/* 0C2F1C 7F08E3EC 3C0E8003 */ lui $t6, %hi(D_80036B64) +/* 0C2F20 7F08E3F0 25CE6B64 */ addiu $t6, %lo(D_80036B64) # addiu $t6, $t6, 0x6b64 +/* 0C2F24 7F08E3F4 AD610000 */ sw $at, ($t3) +/* 0C2F28 7F08E3F8 8DC10000 */ lw $at, ($t6) +/* 0C2F2C 7F08E3FC 27AF0034 */ addiu $t7, $sp, 0x34 +/* 0C2F30 7F08E400 8DD80004 */ lw $t8, 4($t6) +/* 0C2F34 7F08E404 ADE10000 */ sw $at, ($t7) +/* 0C2F38 7F08E408 8DC10008 */ lw $at, 8($t6) +/* 0C2F3C 7F08E40C ADF80004 */ sw $t8, 4($t7) +/* 0C2F40 7F08E410 0FC1C078 */ jal sub_GAME_7F0701E0 +/* 0C2F44 7F08E414 ADE10008 */ sw $at, 8($t7) +/* 0C2F48 7F08E418 8E080000 */ lw $t0, ($s0) +/* 0C2F4C 7F08E41C AFA20030 */ sw $v0, 0x30($sp) +/* 0C2F50 7F08E420 00002025 */ move $a0, $zero +/* 0C2F54 7F08E424 0FC1C075 */ jal sub_GAME_7F0701D4 +/* 0C2F58 7F08E428 AD0004E4 */ sw $zero, 0x4e4($t0) +/* 0C2F5C 7F08E42C 8E040000 */ lw $a0, ($s0) +/* 0C2F60 7F08E430 3C058005 */ lui $a1, %hi(clock_timer) +/* 0C2F64 7F08E434 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 0C2F68 7F08E438 24060001 */ li $a2, 1 +/* 0C2F6C 7F08E43C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 0C2F70 7F08E440 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2F74 7F08E444 0FC1C075 */ jal sub_GAME_7F0701D4 +/* 0C2F78 7F08E448 8FA40030 */ lw $a0, 0x30($sp) +/* 0C2F7C 7F08E44C 8E040000 */ lw $a0, ($s0) +/* 0C2F80 7F08E450 0FC1B5AC */ jal subcalcpos +/* 0C2F84 7F08E454 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2F88 7F08E458 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0C2F8C 7F08E45C 27A40040 */ addiu $a0, $sp, 0x40 +/* 0C2F90 7F08E460 8E020000 */ lw $v0, ($s0) +/* 0C2F94 7F08E464 27AC0040 */ addiu $t4, $sp, 0x40 +/* 0C2F98 7F08E468 AFAC0080 */ sw $t4, 0x80($sp) +/* 0C2F9C 7F08E46C 244A06D0 */ addiu $t2, $v0, 0x6d0 +/* 0C2FA0 7F08E470 AFAA0090 */ sw $t2, 0x90($sp) +/* 0C2FA4 7F08E474 27A40080 */ addiu $a0, $sp, 0x80 +/* 0C2FA8 7F08E478 0FC1BCBE */ jal subcalcmatrices +/* 0C2FAC 7F08E47C 24450598 */ addiu $a1, $v0, 0x598 +/* 0C2FB0 7F08E480 8E020000 */ lw $v0, ($s0) +/* 0C2FB4 7F08E484 27A50034 */ addiu $a1, $sp, 0x34 +/* 0C2FB8 7F08E488 C44A0554 */ lwc1 $f10, 0x554($v0) +/* 0C2FBC 7F08E48C E44A0544 */ swc1 $f10, 0x544($v0) +/* 0C2FC0 7F08E490 8E020000 */ lw $v0, ($s0) +/* 0C2FC4 7F08E494 C4500558 */ lwc1 $f16, 0x558($v0) +/* 0C2FC8 7F08E498 E4500548 */ swc1 $f16, 0x548($v0) +/* 0C2FCC 7F08E49C 8E020000 */ lw $v0, ($s0) +/* 0C2FD0 7F08E4A0 C452055C */ lwc1 $f18, 0x55c($v0) +/* 0C2FD4 7F08E4A4 E452054C */ swc1 $f18, 0x54c($v0) +/* 0C2FD8 7F08E4A8 8E040000 */ lw $a0, ($s0) +/* 0C2FDC 7F08E4AC 0FC1B2E6 */ jal getsuboffset +/* 0C2FE0 7F08E4B0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2FE4 7F08E4B4 8E020000 */ lw $v0, ($s0) +/* 0C2FE8 7F08E4B8 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0C2FEC 7F08E4BC C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0C2FF0 7F08E4C0 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C2FF4 7F08E4C4 27A50034 */ addiu $a1, $sp, 0x34 +/* 0C2FF8 7F08E4C8 24440598 */ addiu $a0, $v0, 0x598 +/* 0C2FFC 7F08E4CC 46062201 */ sub.s $f8, $f4, $f6 +/* 0C3000 7F08E4D0 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0C3004 7F08E4D4 C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3008 7F08E4D8 46105481 */ sub.s $f18, $f10, $f16 +/* 0C300C 7F08E4DC 0FC1B303 */ jal setsuboffset +/* 0C3010 7F08E4E0 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0C3014 7F08E4E4 44800000 */ mtc1 $zero, $f0 +/* 0C3018 7F08E4E8 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0C301C 7F08E4EC 4604003C */ c.lt.s $f0, $f4 +/* 0C3020 7F08E4F0 00000000 */ nop +/* 0C3024 7F08E4F4 45020071 */ bc1fl .L7F08E6BC +/* 0C3028 7F08E4F8 8E020000 */ lw $v0, ($s0) +/* 0C302C 7F08E4FC 8E020000 */ lw $v0, ($s0) +/* 0C3030 7F08E500 C7A800EC */ lwc1 $f8, 0xec($sp) +/* 0C3034 7F08E504 3C048005 */ lui $a0, %hi(clock_timer) +/* 0C3038 7F08E508 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C303C 7F08E50C 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 0C3040 7F08E510 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 0C3044 7F08E514 46083280 */ add.s $f10, $f6, $f8 +/* 0C3048 7F08E518 E44A0700 */ swc1 $f10, 0x700($v0) +/* 0C304C 7F08E51C 8E020000 */ lw $v0, ($s0) +/* 0C3050 7F08E520 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 0C3054 7F08E524 C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3058 7F08E528 46128102 */ mul.s $f4, $f16, $f18 +/* 0C305C 7F08E52C E4440708 */ swc1 $f4, 0x708($v0) +/* 0C3060 7F08E530 8C8D0000 */ lw $t5, ($a0) +/* 0C3064 7F08E534 59A0000D */ blezl $t5, .L7F08E56C +/* 0C3068 7F08E538 8E020000 */ lw $v0, ($s0) +/* 0C306C 7F08E53C 8E020000 */ lw $v0, ($s0) +/* 0C3070 7F08E540 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 0C3074 7F08E544 C4680000 */ lwc1 $f8, ($v1) +/* 0C3078 7F08E548 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C307C 7F08E54C 46083283 */ div.s $f10, $f6, $f8 +/* 0C3080 7F08E550 E44A0700 */ swc1 $f10, 0x700($v0) +/* 0C3084 7F08E554 8E020000 */ lw $v0, ($s0) +/* 0C3088 7F08E558 C4720000 */ lwc1 $f18, ($v1) +/* 0C308C 7F08E55C C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3090 7F08E560 46128103 */ div.s $f4, $f16, $f18 +/* 0C3094 7F08E564 E4440708 */ swc1 $f4, 0x708($v0) +/* 0C3098 7F08E568 8E020000 */ lw $v0, ($s0) +.L7F08E56C: +/* 0C309C 7F08E56C C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C30A0 7F08E570 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C30A4 7F08E574 46083282 */ mul.s $f10, $f6, $f8 +/* 0C30A8 7F08E578 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 0C30AC 7F08E57C C4500704 */ lwc1 $f16, 0x704($v0) +/* 0C30B0 7F08E580 C4400550 */ lwc1 $f0, 0x550($v0) +/* 0C30B4 7F08E584 C44404F4 */ lwc1 $f4, 0x4f4($v0) +/* 0C30B8 7F08E588 46008481 */ sub.s $f18, $f16, $f0 +/* 0C30BC 7F08E58C 46049182 */ mul.s $f6, $f18, $f4 +/* 0C30C0 7F08E590 46003200 */ add.s $f8, $f6, $f0 +/* 0C30C4 7F08E594 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 0C30C8 7F08E598 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C30CC 7F08E59C C44A0708 */ lwc1 $f10, 0x708($v0) +/* 0C30D0 7F08E5A0 46105482 */ mul.s $f18, $f10, $f16 +/* 0C30D4 7F08E5A4 E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 0C30D8 7F08E5A8 8C4904E8 */ lw $t1, 0x4e8($v0) +/* 0C30DC 7F08E5AC 05220032 */ bltzl $t1, .L7F08E678 +/* 0C30E0 7F08E5B0 C45006F0 */ lwc1 $f16, 0x6f0($v0) +/* 0C30E4 7F08E5B4 C44406F0 */ lwc1 $f4, 0x6f0($v0) +/* 0C30E8 7F08E5B8 C44604F8 */ lwc1 $f6, 0x4f8($v0) +/* 0C30EC 7F08E5BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C30F0 7F08E5C0 44810000 */ mtc1 $at, $f0 +/* 0C30F4 7F08E5C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0C30F8 7F08E5C8 8C990000 */ lw $t9, ($a0) +/* 0C30FC 7F08E5CC E7A800D0 */ swc1 $f8, 0xd0($sp) +/* 0C3100 7F08E5D0 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C3104 7F08E5D4 C44A06F4 */ lwc1 $f10, 0x6f4($v0) +/* 0C3108 7F08E5D8 46105482 */ mul.s $f18, $f10, $f16 +/* 0C310C 7F08E5DC E7B200D4 */ swc1 $f18, 0xd4($sp) +/* 0C3110 7F08E5E0 C44406F8 */ lwc1 $f4, 0x6f8($v0) +/* 0C3114 7F08E5E4 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C3118 7F08E5E8 46002181 */ sub.s $f6, $f4, $f0 +/* 0C311C 7F08E5EC 46083282 */ mul.s $f10, $f6, $f8 +/* 0C3120 7F08E5F0 46005400 */ add.s $f16, $f10, $f0 +/* 0C3124 7F08E5F4 E7B000D8 */ swc1 $f16, 0xd8($sp) +/* 0C3128 7F08E5F8 C44404F4 */ lwc1 $f4, 0x4f4($v0) +/* 0C312C 7F08E5FC C45206E0 */ lwc1 $f18, 0x6e0($v0) +/* 0C3130 7F08E600 46049182 */ mul.s $f6, $f18, $f4 +/* 0C3134 7F08E604 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0C3138 7F08E608 C44806E4 */ lwc1 $f8, 0x6e4($v0) +/* 0C313C 7F08E60C C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C3140 7F08E610 46004281 */ sub.s $f10, $f8, $f0 +/* 0C3144 7F08E614 46105482 */ mul.s $f18, $f10, $f16 +/* 0C3148 7F08E618 46009100 */ add.s $f4, $f18, $f0 +/* 0C314C 7F08E61C E7A400C8 */ swc1 $f4, 0xc8($sp) +/* 0C3150 7F08E620 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C3154 7F08E624 C44606E8 */ lwc1 $f6, 0x6e8($v0) +/* 0C3158 7F08E628 46083282 */ mul.s $f10, $f6, $f8 +/* 0C315C 7F08E62C E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0C3160 7F08E630 8C4B04F0 */ lw $t3, 0x4f0($v0) +/* 0C3164 7F08E634 01797821 */ addu $t7, $t3, $t9 +/* 0C3168 7F08E638 AC4F04F0 */ sw $t7, 0x4f0($v0) +/* 0C316C 7F08E63C 8E0E0000 */ lw $t6, ($s0) +/* 0C3170 7F08E640 8DD804F0 */ lw $t8, 0x4f0($t6) +/* 0C3174 7F08E644 2B01003D */ slti $at, $t8, 0x3d +/* 0C3178 7F08E648 14200005 */ bnez $at, .L7F08E660 +/* 0C317C 7F08E64C 3C018005 */ lui $at, %hi(D_80055320) +/* 0C3180 7F08E650 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C3184 7F08E654 C42C5320 */ lwc1 $f12, %lo(D_80055320)($at) +/* 0C3188 7F08E658 1000008E */ b .L7F08E894 +/* 0C318C 7F08E65C 00000000 */ nop +.L7F08E660: +/* 0C3190 7F08E660 3C018005 */ lui $at, %hi(D_80055324) +/* 0C3194 7F08E664 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C3198 7F08E668 C42C5324 */ lwc1 $f12, %lo(D_80055324)($at) +/* 0C319C 7F08E66C 10000089 */ b .L7F08E894 +/* 0C31A0 7F08E670 00000000 */ nop +/* 0C31A4 7F08E674 C45006F0 */ lwc1 $f16, 0x6f0($v0) +.L7F08E678: +/* 0C31A8 7F08E678 3C018005 */ lui $at, %hi(D_80055328) +/* 0C31AC 7F08E67C C42C5328 */ lwc1 $f12, %lo(D_80055328)($at) +/* 0C31B0 7F08E680 E7B000D0 */ swc1 $f16, 0xd0($sp) +/* 0C31B4 7F08E684 C45206F4 */ lwc1 $f18, 0x6f4($v0) +/* 0C31B8 7F08E688 E7B200D4 */ swc1 $f18, 0xd4($sp) +/* 0C31BC 7F08E68C C44406F8 */ lwc1 $f4, 0x6f8($v0) +/* 0C31C0 7F08E690 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 0C31C4 7F08E694 C44606E0 */ lwc1 $f6, 0x6e0($v0) +/* 0C31C8 7F08E698 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0C31CC 7F08E69C C44806E4 */ lwc1 $f8, 0x6e4($v0) +/* 0C31D0 7F08E6A0 E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 0C31D4 7F08E6A4 C44A06E8 */ lwc1 $f10, 0x6e8($v0) +/* 0C31D8 7F08E6A8 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C31DC 7F08E6AC E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0C31E0 7F08E6B0 10000078 */ b .L7F08E894 +/* 0C31E4 7F08E6B4 00000000 */ nop +/* 0C31E8 7F08E6B8 8E020000 */ lw $v0, ($s0) +.L7F08E6BC: +/* 0C31EC 7F08E6BC 3C018005 */ lui $at, %hi(D_8005532C) +/* 0C31F0 7F08E6C0 C4500554 */ lwc1 $f16, 0x554($v0) +/* 0C31F4 7F08E6C4 E4500544 */ swc1 $f16, 0x544($v0) +/* 0C31F8 7F08E6C8 8E020000 */ lw $v0, ($s0) +/* 0C31FC 7F08E6CC C4520558 */ lwc1 $f18, 0x558($v0) +/* 0C3200 7F08E6D0 E4520548 */ swc1 $f18, 0x548($v0) +/* 0C3204 7F08E6D4 8E020000 */ lw $v0, ($s0) +/* 0C3208 7F08E6D8 C444055C */ lwc1 $f4, 0x55c($v0) +/* 0C320C 7F08E6DC E444054C */ swc1 $f4, 0x54c($v0) +/* 0C3210 7F08E6E0 8E020000 */ lw $v0, ($s0) +/* 0C3214 7F08E6E4 E7A000DC */ swc1 $f0, 0xdc($sp) +/* 0C3218 7F08E6E8 C4460550 */ lwc1 $f6, 0x550($v0) +/* 0C321C 7F08E6EC E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 0C3220 7F08E6F0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 0C3224 7F08E6F4 AC4004F0 */ sw $zero, 0x4f0($v0) +/* 0C3228 7F08E6F8 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C322C 7F08E6FC C42C532C */ lwc1 $f12, %lo(D_8005532C)($at) +/* 0C3230 7F08E700 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3234 7F08E704 00000000 */ nop +/* 0C3238 7F08E708 3C018005 */ lui $at, %hi(D_80055330) +/* 0C323C 7F08E70C C4285330 */ lwc1 $f8, %lo(D_80055330)($at) +/* 0C3240 7F08E710 3C018005 */ lui $at, %hi(D_80055334) +/* 0C3244 7F08E714 C42A5334 */ lwc1 $f10, %lo(D_80055334)($at) +/* 0C3248 7F08E718 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 0C324C 7F08E71C 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 0C3250 7F08E720 46005402 */ mul.s $f16, $f10, $f0 +/* 0C3254 7F08E724 C4640000 */ lwc1 $f4, ($v1) +/* 0C3258 7F08E728 8E020000 */ lw $v0, ($s0) +/* 0C325C 7F08E72C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C3260 7F08E730 C44A0560 */ lwc1 $f10, 0x560($v0) +/* 0C3264 7F08E734 46104480 */ add.s $f18, $f8, $f16 +/* 0C3268 7F08E738 44818000 */ mtc1 $at, $f16 +/* 0C326C 7F08E73C 46049182 */ mul.s $f6, $f18, $f4 +/* 0C3270 7F08E740 46065200 */ add.s $f8, $f10, $f6 +/* 0C3274 7F08E744 E4480560 */ swc1 $f8, 0x560($v0) +/* 0C3278 7F08E748 8E020000 */ lw $v0, ($s0) +/* 0C327C 7F08E74C C4420560 */ lwc1 $f2, 0x560($v0) +/* 0C3280 7F08E750 4602803E */ c.le.s $f16, $f2 +/* 0C3284 7F08E754 00000000 */ nop +/* 0C3288 7F08E758 4502000C */ bc1fl .L7F08E78C +/* 0C328C 7F08E75C 8C430594 */ lw $v1, 0x594($v0) +/* 0C3290 7F08E760 0FC236F2 */ jal sub_GAME_7F08DBC8 +/* 0C3294 7F08E764 00000000 */ nop +/* 0C3298 7F08E768 8E020000 */ lw $v0, ($s0) +/* 0C329C 7F08E76C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C32A0 7F08E770 44812000 */ mtc1 $at, $f4 +/* 0C32A4 7F08E774 C4520560 */ lwc1 $f18, 0x560($v0) +/* 0C32A8 7F08E778 46049281 */ sub.s $f10, $f18, $f4 +/* 0C32AC 7F08E77C E44A0560 */ swc1 $f10, 0x560($v0) +/* 0C32B0 7F08E780 8E020000 */ lw $v0, ($s0) +/* 0C32B4 7F08E784 C4420560 */ lwc1 $f2, 0x560($v0) +/* 0C32B8 7F08E788 8C430594 */ lw $v1, 0x594($v0) +.L7F08E78C: +/* 0C32BC 7F08E78C 44061000 */ mfc1 $a2, $f2 +/* 0C32C0 7F08E790 27A700D0 */ addiu $a3, $sp, 0xd0 +/* 0C32C4 7F08E794 00034080 */ sll $t0, $v1, 2 +/* 0C32C8 7F08E798 01034023 */ subu $t0, $t0, $v1 +/* 0C32CC 7F08E79C 00081880 */ sll $v1, $t0, 2 +/* 0C32D0 7F08E7A0 00036023 */ negu $t4, $v1 +/* 0C32D4 7F08E7A4 004C2821 */ addu $a1, $v0, $t4 +/* 0C32D8 7F08E7A8 00432021 */ addu $a0, $v0, $v1 +/* 0C32DC 7F08E7AC 24840564 */ addiu $a0, $a0, 0x564 +/* 0C32E0 7F08E7B0 0FC16B80 */ jal sub_GAME_7F05AE00 +/* 0C32E4 7F08E7B4 24A50570 */ addiu $a1, $a1, 0x570 +/* 0C32E8 7F08E7B8 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C32EC 7F08E7BC 00000000 */ nop +/* 0C32F0 7F08E7C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C32F4 7F08E7C4 44813000 */ mtc1 $at, $f6 +/* 0C32F8 7F08E7C8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C32FC 7F08E7CC 44814000 */ mtc1 $at, $f8 +/* 0C3300 7F08E7D0 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 0C3304 7F08E7D4 46004402 */ mul.s $f16, $f8, $f0 +/* 0C3308 7F08E7D8 46103480 */ add.s $f18, $f6, $f16 +/* 0C330C 7F08E7DC 46122282 */ mul.s $f10, $f4, $f18 +/* 0C3310 7F08E7E0 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3314 7F08E7E4 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 0C3318 7F08E7E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C331C 7F08E7EC 44814000 */ mtc1 $at, $f8 +/* 0C3320 7F08E7F0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C3324 7F08E7F4 44813000 */ mtc1 $at, $f6 +/* 0C3328 7F08E7F8 C7B200D4 */ lwc1 $f18, 0xd4($sp) +/* 0C332C 7F08E7FC 8E020000 */ lw $v0, ($s0) +/* 0C3330 7F08E800 46003402 */ mul.s $f16, $f6, $f0 +/* 0C3334 7F08E804 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0C3338 7F08E808 46104100 */ add.s $f4, $f8, $f16 +/* 0C333C 7F08E80C 46049282 */ mul.s $f10, $f18, $f4 +/* 0C3340 7F08E810 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 0C3344 7F08E814 8C430594 */ lw $v1, 0x594($v0) +/* 0C3348 7F08E818 8C460560 */ lw $a2, 0x560($v0) +/* 0C334C 7F08E81C 00035080 */ sll $t2, $v1, 2 +/* 0C3350 7F08E820 01435023 */ subu $t2, $t2, $v1 +/* 0C3354 7F08E824 000A1880 */ sll $v1, $t2, 2 +/* 0C3358 7F08E828 00036823 */ negu $t5, $v1 +/* 0C335C 7F08E82C 004D2821 */ addu $a1, $v0, $t5 +/* 0C3360 7F08E830 00432021 */ addu $a0, $v0, $v1 +/* 0C3364 7F08E834 2484057C */ addiu $a0, $a0, 0x57c +/* 0C3368 7F08E838 0FC16B80 */ jal sub_GAME_7F05AE00 +/* 0C336C 7F08E83C 24A50588 */ addiu $a1, $a1, 0x588 +/* 0C3370 7F08E840 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3374 7F08E844 00000000 */ nop +/* 0C3378 7F08E848 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C337C 7F08E84C 44813000 */ mtc1 $at, $f6 +/* 0C3380 7F08E850 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C3384 7F08E854 44814000 */ mtc1 $at, $f8 +/* 0C3388 7F08E858 C7A400C4 */ lwc1 $f4, 0xc4($sp) +/* 0C338C 7F08E85C 46004402 */ mul.s $f16, $f8, $f0 +/* 0C3390 7F08E860 46103480 */ add.s $f18, $f6, $f16 +/* 0C3394 7F08E864 46122282 */ mul.s $f10, $f4, $f18 +/* 0C3398 7F08E868 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C339C 7F08E86C E7AA00C4 */ swc1 $f10, 0xc4($sp) +/* 0C33A0 7F08E870 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C33A4 7F08E874 44814000 */ mtc1 $at, $f8 +/* 0C33A8 7F08E878 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C33AC 7F08E87C 44813000 */ mtc1 $at, $f6 +/* 0C33B0 7F08E880 C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0C33B4 7F08E884 46003402 */ mul.s $f16, $f6, $f0 +/* 0C33B8 7F08E888 46104100 */ add.s $f4, $f8, $f16 +/* 0C33BC 7F08E88C 46049282 */ mul.s $f10, $f18, $f4 +/* 0C33C0 7F08E890 E7AA00CC */ swc1 $f10, 0xcc($sp) +.L7F08E894: +/* 0C33C4 7F08E894 0FC23792 */ jal sub_GAME_7F08DE48 +/* 0C33C8 7F08E898 27A400DC */ addiu $a0, $sp, 0xdc +/* 0C33CC 7F08E89C 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0C33D0 7F08E8A0 0FC237D1 */ jal sub_GAME_7F08DF44 +/* 0C33D4 7F08E8A4 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0C33D8 7F08E8A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C33DC 7F08E8AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0C33E0 7F08E8B0 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 0C33E4 7F08E8B4 03E00008 */ jr $ra +/* 0C33E8 7F08E8B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08E8BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08E8BC +/* 0C33EC 7F08E8BC 3C058003 */ lui $a1, %hi(D_80036AD0) +/* 0C33F0 7F08E8C0 24A56AD0 */ addiu $a1, %lo(D_80036AD0) # addiu $a1, $a1, 0x6ad0 +/* 0C33F4 7F08E8C4 C4A40024 */ lwc1 $f4, 0x24($a1) +/* 0C33F8 7F08E8C8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C33FC 7F08E8CC AFB00020 */ sw $s0, 0x20($sp) +/* 0C3400 7F08E8D0 3C108003 */ lui $s0, %hi(D_80036AD0) +/* 0C3404 7F08E8D4 46046302 */ mul.s $f12, $f12, $f4 +/* 0C3408 7F08E8D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C340C 7F08E8DC 26106AD0 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6ad0 +/* 0C3410 7F08E8E0 00001025 */ move $v0, $zero +/* 0C3414 7F08E8E4 24030002 */ li $v1, 2 +.L7F08E8E8: +/* 0C3418 7F08E8E8 C600000C */ lwc1 $f0, 0xc($s0) +/* 0C341C 7F08E8EC C6060014 */ lwc1 $f6, 0x14($s0) +/* 0C3420 7F08E8F0 46060202 */ mul.s $f8, $f0, $f6 +/* 0C3424 7F08E8F4 4608603E */ c.le.s $f12, $f8 +/* 0C3428 7F08E8F8 00000000 */ nop +/* 0C342C 7F08E8FC 4500004A */ bc1f .L7F08EA28 +/* 0C3430 7F08E900 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C3434 7F08E904 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C3438 7F08E908 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0C343C 7F08E90C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C3440 7F08E910 8D0404E8 */ lw $a0, 0x4e8($t0) +/* 0C3444 7F08E914 5044003A */ beql $v0, $a0, .L7F08EA00 +/* 0C3448 7F08E918 46006303 */ div.s $f12, $f12, $f0 +/* 0C344C 7F08E91C 44807000 */ mtc1 $zero, $f14 +/* 0C3450 7F08E920 0480000F */ bltz $a0, .L7F08E960 +/* 0C3454 7F08E924 00047080 */ sll $t6, $a0, 2 +/* 0C3458 7F08E928 01C47023 */ subu $t6, $t6, $a0 +/* 0C345C 7F08E92C 000E70C0 */ sll $t6, $t6, 3 +/* 0C3460 7F08E930 00AE1821 */ addu $v1, $a1, $t6 +/* 0C3464 7F08E934 C4600004 */ lwc1 $f0, 4($v1) +/* 0C3468 7F08E938 C4720008 */ lwc1 $f18, 8($v1) +/* 0C346C 7F08E93C C50A05C0 */ lwc1 $f10, 0x5c0($t0) +/* 0C3470 7F08E940 C6020004 */ lwc1 $f2, 4($s0) +/* 0C3474 7F08E944 46009101 */ sub.s $f4, $f18, $f0 +/* 0C3478 7F08E948 C6060008 */ lwc1 $f6, 8($s0) +/* 0C347C 7F08E94C 46005401 */ sub.s $f16, $f10, $f0 +/* 0C3480 7F08E950 46023201 */ sub.s $f8, $f6, $f2 +/* 0C3484 7F08E954 46048383 */ div.s $f14, $f16, $f4 +/* 0C3488 7F08E958 460E4282 */ mul.s $f10, $f8, $f14 +/* 0C348C 7F08E95C 46025380 */ add.s $f14, $f10, $f2 +.L7F08E960: +/* 0C3490 7F08E960 44819000 */ mtc1 $at, $f18 +/* 0C3494 7F08E964 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0C3498 7F08E968 810605BC */ lb $a2, 0x5bc($t0) +/* 0C349C 7F08E96C 44818000 */ mtc1 $at, $f16 +/* 0C34A0 7F08E970 8E0F0000 */ lw $t7, ($s0) +/* 0C34A4 7F08E974 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0C34A8 7F08E978 44077000 */ mfc1 $a3, $f14 +/* 0C34AC 7F08E97C E7AC0030 */ swc1 $f12, 0x30($sp) +/* 0C34B0 7F08E980 AFA2002C */ sw $v0, 0x2c($sp) +/* 0C34B4 7F08E984 25040598 */ addiu $a0, $t0, 0x598 +/* 0C34B8 7F08E988 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0C34BC 7F08E98C E7B00014 */ swc1 $f16, 0x14($sp) +/* 0C34C0 7F08E990 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C34C4 7F08E994 01F82821 */ addu $a1, $t7, $t8 +/* 0C34C8 7F08E998 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34CC 7F08E99C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34D0 7F08E9A0 8E050004 */ lw $a1, 4($s0) +/* 0C34D4 7F08E9A4 24060000 */ li $a2, 0 +/* 0C34D8 7F08E9A8 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0C34DC 7F08E9AC 24840598 */ addiu $a0, $a0, 0x598 +/* 0C34E0 7F08E9B0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34E4 7F08E9B4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34E8 7F08E9B8 8E050008 */ lw $a1, 8($s0) +/* 0C34EC 7F08E9BC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0C34F0 7F08E9C0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C34F4 7F08E9C4 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34F8 7F08E9C8 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34FC 7F08E9CC 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 0C3500 7F08E9D0 24A5DBB0 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x2450 +/* 0C3504 7F08E9D4 0FC1BF8F */ jal sub_GAME_7F06FE3C +/* 0C3508 7F08E9D8 24840598 */ addiu $a0, $a0, 0x598 +/* 0C350C 7F08E9DC 3C198008 */ lui $t9, %hi(pPlayer) +/* 0C3510 7F08E9E0 8FA2002C */ lw $v0, 0x2c($sp) +/* 0C3514 7F08E9E4 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0C3518 7F08E9E8 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0C351C 7F08E9EC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C3520 7F08E9F0 AF2204E8 */ sw $v0, 0x4e8($t9) +/* 0C3524 7F08E9F4 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C3528 7F08E9F8 C600000C */ lwc1 $f0, 0xc($s0) +/* 0C352C 7F08E9FC 46006303 */ div.s $f12, $f12, $f0 +.L7F08EA00: +/* 0C3530 7F08EA00 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C3534 7F08EA04 44812000 */ mtc1 $at, $f4 +/* 0C3538 7F08EA08 25040598 */ addiu $a0, $t0, 0x598 +/* 0C353C 7F08EA0C 24060000 */ li $a2, 0 +/* 0C3540 7F08EA10 46046182 */ mul.s $f6, $f12, $f4 +/* 0C3544 7F08EA14 44053000 */ mfc1 $a1, $f6 +/* 0C3548 7F08EA18 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C354C 7F08EA1C 00000000 */ nop +/* 0C3550 7F08EA20 10000005 */ b .L7F08EA38 +/* 0C3554 7F08EA24 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EA28: +/* 0C3558 7F08EA28 24420001 */ addiu $v0, $v0, 1 +/* 0C355C 7F08EA2C 1443FFAE */ bne $v0, $v1, .L7F08E8E8 +/* 0C3560 7F08EA30 26100018 */ addiu $s0, $s0, 0x18 +/* 0C3564 7F08EA34 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EA38: +/* 0C3568 7F08EA38 8FB00020 */ lw $s0, 0x20($sp) +/* 0C356C 7F08EA3C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C3570 7F08EA40 03E00008 */ jr $ra +/* 0C3574 7F08EA44 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EA48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EA48 +/* 0C3578 7F08EA48 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C357C 7F08EA4C 44877000 */ mtc1 $a3, $f14 +/* 0C3580 7F08EA50 44812000 */ mtc1 $at, $f4 +/* 0C3584 7F08EA54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C3588 7F08EA58 AFA50024 */ sw $a1, 0x24($sp) +/* 0C358C 7F08EA5C 46047182 */ mul.s $f6, $f14, $f4 +/* 0C3590 7F08EA60 44866000 */ mtc1 $a2, $f12 +/* 0C3594 7F08EA64 00802825 */ move $a1, $a0 +/* 0C3598 7F08EA68 AFA40020 */ sw $a0, 0x20($sp) +/* 0C359C 7F08EA6C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C35A0 7F08EA70 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0C35A4 7F08EA74 44814000 */ mtc1 $at, $f8 +/* 0C35A8 7F08EA78 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C35AC 7F08EA7C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C35B0 7F08EA80 44076000 */ mfc1 $a3, $f12 +/* 0C35B4 7F08EA84 8FA60024 */ lw $a2, 0x24($sp) +/* 0C35B8 7F08EA88 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0C35BC 7F08EA8C 24840598 */ addiu $a0, $a0, 0x598 +/* 0C35C0 7F08EA90 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C35C4 7F08EA94 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0C35C8 7F08EA98 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C35CC 7F08EA9C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C35D0 7F08EAA0 240EFFFF */ li $t6, -1 +/* 0C35D4 7F08EAA4 ADEE04E8 */ sw $t6, 0x4e8($t7) +/* 0C35D8 7F08EAA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C35DC 7F08EAAC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C35E0 7F08EAB0 03E00008 */ jr $ra +/* 0C35E4 7F08EAB4 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EAB8(f32 param_1) +{ + sub_GAME_7F06FE4C(pPlayer->field_598, param_1 * 0.5f, 0); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EAB8 +/* 0C35E8 7F08EAB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C35EC 7F08EABC 44812000 */ mtc1 $at, $f4 +/* 0C35F0 7F08EAC0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C35F4 7F08EAC4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C35F8 7F08EAC8 46046182 */ mul.s $f6, $f12, $f4 +/* 0C35FC 7F08EACC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C3600 7F08EAD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C3604 7F08EAD4 24060000 */ li $a2, 0 +/* 0C3608 7F08EAD8 24840598 */ addiu $a0, $a0, 0x598 +/* 0C360C 7F08EADC 44053000 */ mfc1 $a1, $f6 +/* 0C3610 7F08EAE0 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C3614 7F08EAE4 00000000 */ nop +/* 0C3618 7F08EAE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C361C 7F08EAEC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C3620 7F08EAF0 03E00008 */ jr $ra +/* 0C3624 7F08EAF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EAF8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055338 +.word 0x3c4cccce /*0.012500001*/ +glabel D_8005533C +.word 0x3b888889 /*0.0041666669*/ +.text +glabel sub_GAME_7F08EAF8 +/* 0C3628 7F08EAF8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C362C 7F08EAFC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 get_BONDdata_bondfadefracnew +/* 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(pPlayer) +/* 0C3664 7F08EB34 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C3668 7F08EB38 24840598 */ addiu $a0, $a0, 0x598 +/* 0C366C 7F08EB3C 46083080 */ add.s $f2, $f6, $f8 +/* 0C3670 7F08EB40 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 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(pPlayer) +/* 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(pPlayer)($t8) +/* 0C3698 7F08EB68 3C098003 */ lui $t1, %hi(D_80036AD0) +/* 0C369C 7F08EB6C 25296AD0 */ addiu $t1, %lo(D_80036AD0) # 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EBD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EBD0 +/* 0C3700 7F08EBD0 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3704 7F08EBD4 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 0C3708 7F08EBD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0C370C 7F08EBDC F7B40008 */ sdc1 $f20, 8($sp) +/* 0C3710 7F08EBE0 AFA50014 */ sw $a1, 0x14($sp) +/* 0C3714 7F08EBE4 00803825 */ move $a3, $a0 +/* 0C3718 7F08EBE8 10400024 */ beqz $v0, .L7F08EC7C +/* 0C371C 7F08EBEC 00001825 */ move $v1, $zero +/* 0C3720 7F08EBF0 8C4E0000 */ lw $t6, ($v0) +/* 0C3724 7F08EBF4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0C3728 7F08EBF8 44810000 */ mtc1 $at, $f0 +/* 0C372C 7F08EBFC 05C0001F */ bltz $t6, .L7F08EC7C +/* 0C3730 7F08EC00 00402025 */ move $a0, $v0 +/* 0C3734 7F08EC04 3C068007 */ lui $a2, %hi(ptr_0xxxpresets) +/* 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(ptr_0xxxpresets)($a2) +/* 0C374C 7F08EC1C 8C450000 */ lw $a1, ($v0) +.L7F08EC20: +/* 0C3750 7F08EC20 00A70019 */ multu $a1, $a3 +/* 0C3754 7F08EC24 4614003C */ c.lt.s $f0, $f20 +/* 0C3758 7F08EC28 00007812 */ mflo $t7 +/* 0C375C 7F08EC2C 01E61021 */ addu $v0, $t7, $a2 +/* 0C3760 7F08EC30 C4440008 */ lwc1 $f4, 8($v0) +/* 0C3764 7F08EC34 C4460000 */ lwc1 $f6, ($v0) +/* 0C3768 7F08EC38 46046381 */ sub.s $f14, $f12, $f4 +/* 0C376C 7F08EC3C 46068481 */ sub.s $f18, $f16, $f6 +/* 0C3770 7F08EC40 460E7202 */ mul.s $f8, $f14, $f14 +/* 0C3774 7F08EC44 00000000 */ nop +/* 0C3778 7F08EC48 46129282 */ mul.s $f10, $f18, $f18 +/* 0C377C 7F08EC4C 45010005 */ bc1t .L7F08EC64 +/* 0C3780 7F08EC50 460A4080 */ add.s $f2, $f8, $f10 +/* 0C3784 7F08EC54 4600103C */ c.lt.s $f2, $f0 +/* 0C3788 7F08EC58 00000000 */ nop +/* 0C378C 7F08EC5C 45020004 */ bc1fl .L7F08EC70 +/* 0C3790 7F08EC60 8C850010 */ lw $a1, 0x10($a0) +.L7F08EC64: +/* 0C3794 7F08EC64 46001006 */ mov.s $f0, $f2 +/* 0C3798 7F08EC68 00801825 */ move $v1, $a0 +/* 0C379C 7F08EC6C 8C850010 */ lw $a1, 0x10($a0) +.L7F08EC70: +/* 0C37A0 7F08EC70 24840010 */ addiu $a0, $a0, 0x10 +/* 0C37A4 7F08EC74 04A1FFEA */ bgez $a1, .L7F08EC20 +/* 0C37A8 7F08EC78 00000000 */ nop +.L7F08EC7C: +/* 0C37AC 7F08EC7C D7B40008 */ ldc1 $f20, 8($sp) +/* 0C37B0 7F08EC80 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0C37B4 7F08EC84 03E00008 */ jr $ra +/* 0C37B8 7F08EC88 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EC8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EC8C +/* 0C37BC 7F08EC8C AFA50004 */ sw $a1, 4($sp) +/* 0C37C0 7F08EC90 8CC20004 */ lw $v0, 4($a2) +/* 0C37C4 7F08EC94 00803825 */ move $a3, $a0 +/* 0C37C8 7F08EC98 00C01825 */ move $v1, $a2 +/* 0C37CC 7F08EC9C 1040002E */ beqz $v0, .L7F08ED58 +/* 0C37D0 7F08ECA0 00000000 */ nop +/* 0C37D4 7F08ECA4 8CCE0000 */ lw $t6, ($a2) +/* 0C37D8 7F08ECA8 240A002C */ li $t2, 44 +/* 0C37DC 7F08ECAC 3C0B8007 */ lui $t3, %hi(ptr_setup_path_tbl) +/* 0C37E0 7F08ECB0 01CA0019 */ multu $t6, $t2 +/* 0C37E4 7F08ECB4 256B5D00 */ addiu $t3, %lo(ptr_setup_path_tbl) # addiu $t3, $t3, 0x5d00 +/* 0C37E8 7F08ECB8 8D650018 */ lw $a1, 0x18($t3) +/* 0C37EC 7F08ECBC C4E20008 */ lwc1 $f2, 8($a3) +/* 0C37F0 7F08ECC0 C4EE0000 */ lwc1 $f14, ($a3) +/* 0C37F4 7F08ECC4 8C490000 */ lw $t1, ($v0) +/* 0C37F8 7F08ECC8 8D680000 */ lw $t0, ($t3) +/* 0C37FC 7F08ECCC 00007812 */ mflo $t7 +/* 0C3800 7F08ECD0 01E52021 */ addu $a0, $t7, $a1 +/* 0C3804 7F08ECD4 C4840008 */ lwc1 $f4, 8($a0) +/* 0C3808 7F08ECD8 C4860000 */ lwc1 $f6, ($a0) +/* 0C380C 7F08ECDC 46041301 */ sub.s $f12, $f2, $f4 +/* 0C3810 7F08ECE0 46067401 */ sub.s $f16, $f14, $f6 +/* 0C3814 7F08ECE4 460C6202 */ mul.s $f8, $f12, $f12 +/* 0C3818 7F08ECE8 00000000 */ nop +/* 0C381C 7F08ECEC 46108282 */ mul.s $f10, $f16, $f16 +/* 0C3820 7F08ECF0 05200019 */ bltz $t1, .L7F08ED58 +/* 0C3824 7F08ECF4 460A4000 */ add.s $f0, $f8, $f10 +/* 0C3828 7F08ECF8 0009C100 */ sll $t8, $t1, 4 +.L7F08ECFC: +/* 0C382C 7F08ECFC 03083021 */ addu $a2, $t8, $t0 +/* 0C3830 7F08ED00 8CD90000 */ lw $t9, ($a2) +/* 0C3834 7F08ED04 032A0019 */ multu $t9, $t2 +/* 0C3838 7F08ED08 00006012 */ mflo $t4 +/* 0C383C 7F08ED0C 01852021 */ addu $a0, $t4, $a1 +/* 0C3840 7F08ED10 C4840008 */ lwc1 $f4, 8($a0) +/* 0C3844 7F08ED14 C4860000 */ lwc1 $f6, ($a0) +/* 0C3848 7F08ED18 46041301 */ sub.s $f12, $f2, $f4 +/* 0C384C 7F08ED1C 46067401 */ sub.s $f16, $f14, $f6 +/* 0C3850 7F08ED20 460C6202 */ mul.s $f8, $f12, $f12 +/* 0C3854 7F08ED24 00000000 */ nop +/* 0C3858 7F08ED28 46108282 */ mul.s $f10, $f16, $f16 +/* 0C385C 7F08ED2C 460A4480 */ add.s $f18, $f8, $f10 +/* 0C3860 7F08ED30 4600903C */ c.lt.s $f18, $f0 +/* 0C3864 7F08ED34 00000000 */ nop +/* 0C3868 7F08ED38 45000003 */ bc1f .L7F08ED48 +/* 0C386C 7F08ED3C 00000000 */ nop +/* 0C3870 7F08ED40 46009006 */ mov.s $f0, $f18 +/* 0C3874 7F08ED44 00C01825 */ move $v1, $a2 +.L7F08ED48: +/* 0C3878 7F08ED48 8C490004 */ lw $t1, 4($v0) +/* 0C387C 7F08ED4C 24420004 */ addiu $v0, $v0, 4 +/* 0C3880 7F08ED50 0523FFEA */ bgezl $t1, .L7F08ECFC +/* 0C3884 7F08ED54 0009C100 */ sll $t8, $t1, 4 +.L7F08ED58: +/* 0C3888 7F08ED58 03E00008 */ jr $ra +/* 0C388C 7F08ED5C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08ED60(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08ED60 +/* 0C3890 7F08ED60 8C830000 */ lw $v1, ($a0) +/* 0C3894 7F08ED64 3C028007 */ lui $v0, %hi(ptr_setup_path_link) +/* 0C3898 7F08ED68 00A03025 */ move $a2, $a1 +/* 0C389C 7F08ED6C 0460000E */ bltz $v1, .L7F08EDA8 +/* 0C38A0 7F08ED70 8C425D04 */ lw $v0, %lo(ptr_setup_path_link)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EDB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EDB4 +/* 0C38E4 7F08EDB4 8C830000 */ lw $v1, ($a0) +/* 0C38E8 7F08EDB8 3C028007 */ lui $v0, %hi(ptr_setup_path_link) +/* 0C38EC 7F08EDBC 00A03025 */ move $a2, $a1 +/* 0C38F0 7F08EDC0 0460000D */ bltz $v1, .L7F08EDF8 +/* 0C38F4 7F08EDC4 8C425D04 */ lw $v0, %lo(ptr_setup_path_link)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EE00(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EE70(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EF1C(void) { + +} +#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 +void sub_GAME_7F08EFA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EFA0 +/* 0C3AD0 7F08EFA0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3AD4 7F08EFA4 AFB40028 */ sw $s4, 0x28($sp) +/* 0C3AD8 7F08EFA8 AFB30024 */ sw $s3, 0x24($sp) +/* 0C3ADC 7F08EFAC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C3AE0 7F08EFB0 28E10002 */ slti $at, $a3, 2 +/* 0C3AE4 7F08EFB4 00E09825 */ move $s3, $a3 +/* 0C3AE8 7F08EFB8 00A0A025 */ move $s4, $a1 +/* 0C3AEC 7F08EFBC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C3AF0 7F08EFC0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C3AF4 7F08EFC4 AFB00018 */ sw $s0, 0x18($sp) +/* 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(ptr_setup_path_link) +/* 0C3B08 7F08EFD8 8CC65D04 */ lw $a2, %lo(ptr_setup_path_link)($a2) +/* 0C3B0C 7F08EFDC 50C0001F */ beql $a2, $zero, .L7F08F05C +/* 0C3B10 7F08EFE0 AE200000 */ sw $zero, ($s1) +/* 0C3B14 7F08EFE4 0FC23BC7 */ jal sub_GAME_7F08EF1C +/* 0C3B18 7F08EFE8 AFA40030 */ sw $a0, 0x30($sp) +/* 0C3B1C 7F08EFEC 1040001A */ beqz $v0, .L7F08F058 +/* 0C3B20 7F08EFF0 8FA40030 */ lw $a0, 0x30($sp) +/* 0C3B24 7F08EFF4 8FA20038 */ lw $v0, 0x38($sp) +/* 0C3B28 7F08EFF8 00809025 */ move $s2, $a0 +/* 0C3B2C 7F08EFFC 2673270F */ addiu $s3, $s3, 0x270f +/* 0C3B30 7F08F000 AC440000 */ sw $a0, ($v0) +/* 0C3B34 7F08F004 8E8E0008 */ lw $t6, 8($s4) +/* 0C3B38 7F08F008 24102711 */ li $s0, 10001 +/* 0C3B3C 7F08F00C 24510004 */ addiu $s1, $v0, 4 +/* 0C3B40 7F08F010 29C12711 */ slti $at, $t6, 0x2711 +/* 0C3B44 7F08F014 14200010 */ bnez $at, .L7F08F058 +/* 0C3B48 7F08F018 2A612712 */ slti $at, $s3, 0x2712 +/* 0C3B4C 7F08F01C 5420000F */ bnezl $at, .L7F08F05C +/* 0C3B50 7F08F020 AE200000 */ sw $zero, ($s1) +/* 0C3B54 7F08F024 8E440000 */ lw $a0, ($s2) +.L7F08F028: +/* 0C3B58 7F08F028 0FC23B58 */ jal sub_GAME_7F08ED60 +/* 0C3B5C 7F08F02C 02002825 */ move $a1, $s0 +/* 0C3B60 7F08F030 AE220000 */ sw $v0, ($s1) +/* 0C3B64 7F08F034 8E8F0008 */ lw $t7, 8($s4) +/* 0C3B68 7F08F038 26100001 */ addiu $s0, $s0, 1 +/* 0C3B6C 7F08F03C 00409025 */ move $s2, $v0 +/* 0C3B70 7F08F040 01F0082A */ slt $at, $t7, $s0 +/* 0C3B74 7F08F044 14200004 */ bnez $at, .L7F08F058 +/* 0C3B78 7F08F048 26310004 */ addiu $s1, $s1, 4 +/* 0C3B7C 7F08F04C 0213082A */ slt $at, $s0, $s3 +/* 0C3B80 7F08F050 5420FFF5 */ bnezl $at, .L7F08F028 +/* 0C3B84 7F08F054 8E440000 */ lw $a0, ($s2) +.L7F08F058: +/* 0C3B88 7F08F058 AE200000 */ sw $zero, ($s1) +.L7F08F05C: +/* 0C3B8C 7F08F05C 8FB80038 */ lw $t8, 0x38($sp) +/* 0C3B90 7F08F060 26310004 */ addiu $s1, $s1, 4 +/* 0C3B94 7F08F064 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C3B98 7F08F068 02381023 */ subu $v0, $s1, $t8 +/* 0C3B9C 7F08F06C 0002C883 */ sra $t9, $v0, 2 +/* 0C3BA0 7F08F070 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C3BA4 7F08F074 8FB40028 */ lw $s4, 0x28($sp) +/* 0C3BA8 7F08F078 8FB30024 */ lw $s3, 0x24($sp) +/* 0C3BAC 7F08F07C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C3BB0 7F08F080 8FB00018 */ lw $s0, 0x18($sp) +/* 0C3BB4 7F08F084 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C3BB8 7F08F088 03E00008 */ jr $ra +/* 0C3BBC 7F08F08C 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F090 +/* 0C3BC0 7F08F090 8C830000 */ lw $v1, ($a0) +/* 0C3BC4 7F08F094 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3BC8 7F08F098 00A03825 */ move $a3, $a1 +/* 0C3BCC 7F08F09C 0460000F */ bltz $v1, .L7F08F0DC +/* 0C3BD0 7F08F0A0 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($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(ptr_setup_path_tbl) +/* 0C3C20 7F08F0F0 00A03825 */ move $a3, $a1 +/* 0C3C24 7F08F0F4 0460000E */ bltz $v1, .L7F08F130 +/* 0C3C28 7F08F0F8 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($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(ptr_setup_path_tbl) +/* 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(ptr_setup_path_tbl)($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 sub_GAME_7F08F1D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F1D8 +/* 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(ptr_setup_path_tbl) +/* 0C3D34 7F08F204 01D50019 */ multu $t6, $s5 +/* 0C3D38 7F08F208 24425D00 */ addiu $v0, %lo(ptr_setup_path_tbl) # 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(void) { + +} +#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 sub_GAME_7F08F1D8 +/* 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 sub_GAME_7F08F090 +/* 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 sub_GAME_7F08F090 +/* 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(ptr_setup_path_tbl) +/* 0C3F80 7F08F450 254A5D00 */ addiu $t2, %lo(ptr_setup_path_tbl) # 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 sub_GAME_7F08F4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F4F0 +/* 0C4020 7F08F4F0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0C4024 7F08F4F4 AFB00018 */ sw $s0, 0x18($sp) +/* 0C4028 7F08F4F8 3C108007 */ lui $s0, %hi(ptr_setup_path_link) +/* 0C402C 7F08F4FC 8E105D04 */ lw $s0, %lo(ptr_setup_path_link)($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) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F67C +/* 0C41AC 7F08F67C 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C41B0 7F08F680 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F6B0(void) { + +} +#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 get_random_value +/* 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(ptr_setup_path_tbl) +/* 0C4268 7F08F738 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($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(ptr_setup_path_tbl) +/* 0C42A8 7F08F778 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($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(ptr_setup_path_tbl) +/* 0C4348 7F08F818 31630003 */ andi $v1, $t3, 3 +/* 0C434C 7F08F81C 10600010 */ beqz $v1, .L7F08F860 +/* 0C4350 7F08F820 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F908(void) { + +} +#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 get_random_value +/* 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(ptr_setup_path_link) +/* 0C44C0 7F08F990 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($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(ptr_setup_path_link) +/* 0C4508 7F08F9D8 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($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(ptr_setup_path_link) +/* 0C45C0 7F08FA90 31630003 */ andi $v1, $t3, 3 +/* 0C45C4 7F08FA94 10600011 */ beqz $v1, .L7F08FADC +/* 0C45C8 7F08FA98 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08FB90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08FB90 +/* 0C46C0 7F08FB90 3C068007 */ lui $a2, %hi(ptr_setup_path_link) +/* 0C46C4 7F08FB94 8CC65D04 */ lw $a2, %lo(ptr_setup_path_link)($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 sub_GAME_7F08F1D8 +/* 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 sub_GAME_7F08F1D8 +/* 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 sub_GAME_7F08F090 +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08FD1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08FD1C +/* 0C484C 7F08FD1C 3C088007 */ lui $t0, %hi(ptr_setup_path_tbl) +/* 0C4850 7F08FD20 8D085D00 */ lw $t0, %lo(ptr_setup_path_tbl)($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 get_random_value +/* 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 get_random_value +/* 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 sub_GAME_7F08F4F0 +/* 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/unk_091080.c b/src/game/unk_091080.c new file mode 100644 index 0000000..1947e39 --- /dev/null +++ b/src/game/unk_091080.c @@ -0,0 +1,647 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80079E20 +s32 dword_CODE_bss_80079E20; + + +// data +//D:80037010 +s32 D_80037010 = 0; +//D:80037014 +f32 stanbondx = 0.0f; +//D:80037018 +s32 stanbondy = 0; +//D:8003701C +s32 stanbondz = 0; +//D:80037020 +s32 D_80037020 = 0; +//D:80037024 +s32 D_80037024 = 0; +//D:80037028 +f32 D_80037028 = -1.0; +//D:8003702C +s32 D_8003702C = 0; +//D:80037030 +f32 D_80037030 = 1.0; +//D:80037034 +s32 D_80037034 = 0; +//D:80037038 +s32 D_80037038 = 0; +//D:8003703C +f32 D_8003703C = 1.0; +//D:80037040 +s32 D_80037040 = 0; +//D:80037044 +s32 D_80037044 = 0; +//D:80037048 +f32 D_80037048 = 1.0; +//D:8003704C +s32 D_8003704C = 0; +//D:80037050 +f32 D_80037050 = 1.0; +//D:80037054 +s32 D_80037054 = 0; +//D:80037058 +f32 D_80037058 = 1.0; +//D:8003705C +f32 D_8003705C = 1.0; +//D:80037060 +s32 D_80037060 = 0; +//D:80037064 +s32 D_80037064 = 0; +//D:80037068 +s32 D_80037068 = 0; + + +// rodata + + +#ifdef NONMATCHING +void sub_GAME_7F091080(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055850 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055854 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055858 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005585C +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F091080 +/* 0C5BB0 7F091080 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C5BB4 7F091084 AFA40018 */ sw $a0, 0x18($sp) +/* 0C5BB8 7F091088 83AF001B */ lb $t7, 0x1b($sp) +/* 0C5BBC 7F09108C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C5BC0 7F091090 44810000 */ mtc1 $at, $f0 +/* 0C5BC4 7F091094 00053E00 */ sll $a3, $a1, 0x18 +/* 0C5BC8 7F091098 00077603 */ sra $t6, $a3, 0x18 +/* 0C5BCC 7F09109C 29E1FFFD */ slti $at, $t7, -3 +/* 0C5BD0 7F0910A0 01C03825 */ move $a3, $t6 +/* 0C5BD4 7F0910A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5BD8 7F0910A8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0C5BDC 7F0910AC AFA60020 */ sw $a2, 0x20($sp) +/* 0C5BE0 7F0910B0 10200004 */ beqz $at, .L7F0910C4 +/* 0C5BE4 7F0910B4 46000086 */ mov.s $f2, $f0 +/* 0C5BE8 7F0910B8 25F80003 */ addiu $t8, $t7, 3 +/* 0C5BEC 7F0910BC 10000008 */ b .L7F0910E0 +/* 0C5BF0 7F0910C0 A3B8001B */ sb $t8, 0x1b($sp) +.L7F0910C4: +/* 0C5BF4 7F0910C4 83B9001B */ lb $t9, 0x1b($sp) +/* 0C5BF8 7F0910C8 2B210004 */ slti $at, $t9, 4 +/* 0C5BFC 7F0910CC 14200003 */ bnez $at, .L7F0910DC +/* 0C5C00 7F0910D0 2728FFFD */ addiu $t0, $t9, -3 +/* 0C5C04 7F0910D4 10000002 */ b .L7F0910E0 +/* 0C5C08 7F0910D8 A3A8001B */ sb $t0, 0x1b($sp) +.L7F0910DC: +/* 0C5C0C 7F0910DC A3A0001B */ sb $zero, 0x1b($sp) +.L7F0910E0: +/* 0C5C10 7F0910E0 28E1FFFD */ slti $at, $a3, -3 +/* 0C5C14 7F0910E4 10200005 */ beqz $at, .L7F0910FC +/* 0C5C18 7F0910E8 97A50022 */ lhu $a1, 0x22($sp) +/* 0C5C1C 7F0910EC 24E70003 */ addiu $a3, $a3, 3 +/* 0C5C20 7F0910F0 00074E00 */ sll $t1, $a3, 0x18 +/* 0C5C24 7F0910F4 10000008 */ b .L7F091118 +/* 0C5C28 7F0910F8 00093E03 */ sra $a3, $t1, 0x18 +.L7F0910FC: +/* 0C5C2C 7F0910FC 28E10004 */ slti $at, $a3, 4 +/* 0C5C30 7F091100 14200004 */ bnez $at, .L7F091114 +/* 0C5C34 7F091104 24E7FFFD */ addiu $a3, $a3, -3 +/* 0C5C38 7F091108 00075E00 */ sll $t3, $a3, 0x18 +/* 0C5C3C 7F09110C 10000002 */ b .L7F091118 +/* 0C5C40 7F091110 000B3E03 */ sra $a3, $t3, 0x18 +.L7F091114: +/* 0C5C44 7F091114 00003825 */ move $a3, $zero +.L7F091118: +/* 0C5C48 7F091118 30AD0030 */ andi $t5, $a1, 0x30 +/* 0C5C4C 7F09111C 15A00085 */ bnez $t5, .L7F091334 +/* 0C5C50 7F091120 30AE2000 */ andi $t6, $a1, 0x2000 +/* 0C5C54 7F091124 11C00005 */ beqz $t6, .L7F09113C +/* 0C5C58 7F091128 3C0F8003 */ lui $t7, %hi(D_80037054) +/* 0C5C5C 7F09112C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C5C60 7F091130 44812000 */ mtc1 $at, $f4 +/* 0C5C64 7F091134 00000000 */ nop +/* 0C5C68 7F091138 46040083 */ div.s $f2, $f0, $f4 +.L7F09113C: +/* 0C5C6C 7F09113C 95EF7054 */ lhu $t7, %lo(D_80037054)($t7) +/* 0C5C70 7F091140 44874000 */ mtc1 $a3, $f8 +/* 0C5C74 7F091144 30AA0101 */ andi $t2, $a1, 0x101 +/* 0C5C78 7F091148 01E0C027 */ not $t8, $t7 +/* 0C5C7C 7F09114C 00B81024 */ and $v0, $a1, $t8 +/* 0C5C80 7F091150 30598000 */ andi $t9, $v0, 0x8000 +/* 0C5C84 7F091154 30484000 */ andi $t0, $v0, 0x4000 +/* 0C5C88 7F091158 13200005 */ beqz $t9, .L7F091170 +/* 0C5C8C 7F09115C 46804020 */ cvt.s.w $f0, $f8 +/* 0C5C90 7F091160 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5C94 7F091164 C42C7050 */ lwc1 $f12, %lo(D_80037050)($at) +/* 0C5C98 7F091168 460C6300 */ add.s $f12, $f12, $f12 +/* 0C5C9C 7F09116C E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +.L7F091170: +/* 0C5CA0 7F091170 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5CA4 7F091174 11000006 */ beqz $t0, .L7F091190 +/* 0C5CA8 7F091178 C42C7050 */ lwc1 $f12, %lo(D_80037050)($at) +/* 0C5CAC 7F09117C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C5CB0 7F091180 44813000 */ mtc1 $at, $f6 +/* 0C5CB4 7F091184 00000000 */ nop +/* 0C5CB8 7F091188 46066302 */ mul.s $f12, $f12, $f6 +/* 0C5CBC 7F09118C 00000000 */ nop +.L7F091190: +/* 0C5CC0 7F091190 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5CC4 7F091194 C4307040 */ lwc1 $f16, %lo(D_80037040)($at) +/* 0C5CC8 7F091198 3C048003 */ lui $a0, %hi(stanbondx) +/* 0C5CCC 7F09119C 24847014 */ addiu $a0, %lo(stanbondx) # addiu $a0, $a0, 0x7014 +/* 0C5CD0 7F0911A0 46100102 */ mul.s $f4, $f0, $f16 +/* 0C5CD4 7F0911A4 C48A0000 */ lwc1 $f10, ($a0) +/* 0C5CD8 7F0911A8 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5CDC 7F0911AC 30A90202 */ andi $t1, $a1, 0x202 +/* 0C5CE0 7F0911B0 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5CE4 7F0911B4 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5CE8 7F0911B8 30AD0400 */ andi $t5, $a1, 0x400 +/* 0C5CEC 7F0911BC 46022182 */ mul.s $f6, $f4, $f2 +/* 0C5CF0 7F0911C0 30AE0008 */ andi $t6, $a1, 8 +/* 0C5CF4 7F0911C4 30AF0004 */ andi $t7, $a1, 4 +/* 0C5CF8 7F0911C8 460C3202 */ mul.s $f8, $f6, $f12 +/* 0C5CFC 7F0911CC C4860008 */ lwc1 $f6, 8($a0) +/* 0C5D00 7F0911D0 46085100 */ add.s $f4, $f10, $f8 +/* 0C5D04 7F0911D4 46000287 */ neg.s $f10, $f0 +/* 0C5D08 7F0911D8 E4840000 */ swc1 $f4, ($a0) +/* 0C5D0C 7F0911DC C432703C */ lwc1 $f18, %lo(D_8003703C)($at) +/* 0C5D10 7F0911E0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0C5D14 7F0911E4 46125202 */ mul.s $f8, $f10, $f18 +/* 0C5D18 7F0911E8 00000000 */ nop +/* 0C5D1C 7F0911EC 46024102 */ mul.s $f4, $f8, $f2 +/* 0C5D20 7F0911F0 00000000 */ nop +/* 0C5D24 7F0911F4 460C2282 */ mul.s $f10, $f4, $f12 +/* 0C5D28 7F0911F8 460A3200 */ add.s $f8, $f6, $f10 +/* 0C5D2C 7F0911FC 11200011 */ beqz $t1, .L7F091244 +/* 0C5D30 7F091200 E4880008 */ swc1 $f8, 8($a0) +/* 0C5D34 7F091204 44810000 */ mtc1 $at, $f0 +/* 0C5D38 7F091208 C4840000 */ lwc1 $f4, ($a0) +/* 0C5D3C 7F09120C 46120182 */ mul.s $f6, $f0, $f18 +/* 0C5D40 7F091210 00000000 */ nop +/* 0C5D44 7F091214 46023282 */ mul.s $f10, $f6, $f2 +/* 0C5D48 7F091218 00000000 */ nop +/* 0C5D4C 7F09121C 460C5202 */ mul.s $f8, $f10, $f12 +/* 0C5D50 7F091220 C48A0008 */ lwc1 $f10, 8($a0) +/* 0C5D54 7F091224 46082181 */ sub.s $f6, $f4, $f8 +/* 0C5D58 7F091228 46100102 */ mul.s $f4, $f0, $f16 +/* 0C5D5C 7F09122C E4860000 */ swc1 $f6, ($a0) +/* 0C5D60 7F091230 46022202 */ mul.s $f8, $f4, $f2 +/* 0C5D64 7F091234 00000000 */ nop +/* 0C5D68 7F091238 460C4182 */ mul.s $f6, $f8, $f12 +/* 0C5D6C 7F09123C 46065101 */ sub.s $f4, $f10, $f6 +/* 0C5D70 7F091240 E4840008 */ swc1 $f4, 8($a0) +.L7F091244: +/* 0C5D74 7F091244 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0C5D78 7F091248 44810000 */ mtc1 $at, $f0 +/* 0C5D7C 7F09124C 51400010 */ beql $t2, $zero, .L7F091290 +/* 0C5D80 7F091250 83AB001B */ lb $t3, 0x1b($sp) +/* 0C5D84 7F091254 46120282 */ mul.s $f10, $f0, $f18 +/* 0C5D88 7F091258 C4880000 */ lwc1 $f8, ($a0) +/* 0C5D8C 7F09125C 46025182 */ mul.s $f6, $f10, $f2 +/* 0C5D90 7F091260 00000000 */ nop +/* 0C5D94 7F091264 460C3102 */ mul.s $f4, $f6, $f12 +/* 0C5D98 7F091268 C4860008 */ lwc1 $f6, 8($a0) +/* 0C5D9C 7F09126C 46044280 */ add.s $f10, $f8, $f4 +/* 0C5DA0 7F091270 46100202 */ mul.s $f8, $f0, $f16 +/* 0C5DA4 7F091274 E48A0000 */ swc1 $f10, ($a0) +/* 0C5DA8 7F091278 46024102 */ mul.s $f4, $f8, $f2 +/* 0C5DAC 7F09127C 00000000 */ nop +/* 0C5DB0 7F091280 460C2282 */ mul.s $f10, $f4, $f12 +/* 0C5DB4 7F091284 460A3200 */ add.s $f8, $f6, $f10 +/* 0C5DB8 7F091288 E4880008 */ swc1 $f8, 8($a0) +/* 0C5DBC 7F09128C 83AB001B */ lb $t3, 0x1b($sp) +.L7F091290: +/* 0C5DC0 7F091290 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0C5DC4 7F091294 44814000 */ mtc1 $at, $f8 +/* 0C5DC8 7F091298 448B2000 */ mtc1 $t3, $f4 +/* 0C5DCC 7F09129C 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5DD0 7F0912A0 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5DD4 7F0912A4 468021A0 */ cvt.s.w $f6, $f4 +/* 0C5DD8 7F0912A8 30AC0800 */ andi $t4, $a1, 0x800 +/* 0C5DDC 7F0912AC 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5DE0 7F0912B0 46023282 */ mul.s $f10, $f6, $f2 +/* 0C5DE4 7F0912B4 C4660000 */ lwc1 $f6, ($v1) +/* 0C5DE8 7F0912B8 46085102 */ mul.s $f4, $f10, $f8 +/* 0C5DEC 7F0912BC 46043280 */ add.s $f10, $f6, $f4 +/* 0C5DF0 7F0912C0 11800005 */ beqz $t4, .L7F0912D8 +/* 0C5DF4 7F0912C4 E46A0000 */ swc1 $f10, ($v1) +/* 0C5DF8 7F0912C8 46021180 */ add.s $f6, $f2, $f2 +/* 0C5DFC 7F0912CC C4480000 */ lwc1 $f8, ($v0) +/* 0C5E00 7F0912D0 46064101 */ sub.s $f4, $f8, $f6 +/* 0C5E04 7F0912D4 E4440000 */ swc1 $f4, ($v0) +.L7F0912D8: +/* 0C5E08 7F0912D8 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5E0C 7F0912DC 11A00005 */ beqz $t5, .L7F0912F4 +/* 0C5E10 7F0912E0 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5E14 7F0912E4 46021200 */ add.s $f8, $f2, $f2 +/* 0C5E18 7F0912E8 C44A0000 */ lwc1 $f10, ($v0) +/* 0C5E1C 7F0912EC 46085180 */ add.s $f6, $f10, $f8 +/* 0C5E20 7F0912F0 E4460000 */ swc1 $f6, ($v0) +.L7F0912F4: +/* 0C5E24 7F0912F4 11C00006 */ beqz $t6, .L7F091310 +/* 0C5E28 7F0912F8 00000000 */ nop +/* 0C5E2C 7F0912FC 46020282 */ mul.s $f10, $f0, $f2 +/* 0C5E30 7F091300 C4840004 */ lwc1 $f4, 4($a0) +/* 0C5E34 7F091304 460C5202 */ mul.s $f8, $f10, $f12 +/* 0C5E38 7F091308 46082180 */ add.s $f6, $f4, $f8 +/* 0C5E3C 7F09130C E4860004 */ swc1 $f6, 4($a0) +.L7F091310: +/* 0C5E40 7F091310 11E00008 */ beqz $t7, .L7F091334 +/* 0C5E44 7F091314 E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +/* 0C5E48 7F091318 46020102 */ mul.s $f4, $f0, $f2 +/* 0C5E4C 7F09131C C48A0004 */ lwc1 $f10, 4($a0) +/* 0C5E50 7F091320 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5E54 7F091324 460C2202 */ mul.s $f8, $f4, $f12 +/* 0C5E58 7F091328 46085181 */ sub.s $f6, $f10, $f8 +/* 0C5E5C 7F09132C E4860004 */ swc1 $f6, 4($a0) +/* 0C5E60 7F091330 E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +.L7F091334: +/* 0C5E64 7F091334 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5E68 7F091338 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5E6C 7F09133C 44806000 */ mtc1 $zero, $f12 +/* 0C5E70 7F091340 C46E0000 */ lwc1 $f14, ($v1) +/* 0C5E74 7F091344 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5E78 7F091348 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5E7C 7F09134C 460C703C */ c.lt.s $f14, $f12 +/* 0C5E80 7F091350 3C0143B4 */ lui $at, 0x43b4 +/* 0C5E84 7F091354 4502000B */ bc1fl .L7F091384 +/* 0C5E88 7F091358 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0C5E8C 7F09135C 44811000 */ mtc1 $at, $f2 +/* 0C5E90 7F091360 00000000 */ nop +/* 0C5E94 7F091364 46027100 */ add.s $f4, $f14, $f2 +.L7F091368: +/* 0C5E98 7F091368 E4640000 */ swc1 $f4, ($v1) +/* 0C5E9C 7F09136C C46E0000 */ lwc1 $f14, ($v1) +/* 0C5EA0 7F091370 460C703C */ c.lt.s $f14, $f12 +/* 0C5EA4 7F091374 00000000 */ nop +/* 0C5EA8 7F091378 4503FFFB */ bc1tl .L7F091368 +/* 0C5EAC 7F09137C 46027100 */ add.s $f4, $f14, $f2 +/* 0C5EB0 7F091380 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F091384: +/* 0C5EB4 7F091384 44811000 */ mtc1 $at, $f2 +/* 0C5EB8 7F091388 3C018005 */ lui $at, %hi(D_80055850) +/* 0C5EBC 7F09138C 460E103E */ c.le.s $f2, $f14 +/* 0C5EC0 7F091390 00000000 */ nop +/* 0C5EC4 7F091394 45020009 */ bc1fl .L7F0913BC +/* 0C5EC8 7F091398 C4400000 */ lwc1 $f0, ($v0) +/* 0C5ECC 7F09139C 46027281 */ sub.s $f10, $f14, $f2 +.L7F0913A0: +/* 0C5ED0 7F0913A0 E46A0000 */ swc1 $f10, ($v1) +/* 0C5ED4 7F0913A4 C46E0000 */ lwc1 $f14, ($v1) +/* 0C5ED8 7F0913A8 460E103E */ c.le.s $f2, $f14 +/* 0C5EDC 7F0913AC 00000000 */ nop +/* 0C5EE0 7F0913B0 4503FFFB */ bc1tl .L7F0913A0 +/* 0C5EE4 7F0913B4 46027281 */ sub.s $f10, $f14, $f2 +/* 0C5EE8 7F0913B8 C4400000 */ lwc1 $f0, ($v0) +.L7F0913BC: +/* 0C5EEC 7F0913BC 460C003C */ c.lt.s $f0, $f12 +/* 0C5EF0 7F0913C0 00000000 */ nop +/* 0C5EF4 7F0913C4 45020009 */ bc1fl .L7F0913EC +/* 0C5EF8 7F0913C8 4600103E */ c.le.s $f2, $f0 +/* 0C5EFC 7F0913CC 46020200 */ add.s $f8, $f0, $f2 +.L7F0913D0: +/* 0C5F00 7F0913D0 E4480000 */ swc1 $f8, ($v0) +/* 0C5F04 7F0913D4 C4400000 */ lwc1 $f0, ($v0) +/* 0C5F08 7F0913D8 460C003C */ c.lt.s $f0, $f12 +/* 0C5F0C 7F0913DC 00000000 */ nop +/* 0C5F10 7F0913E0 4503FFFB */ bc1tl .L7F0913D0 +/* 0C5F14 7F0913E4 46020200 */ add.s $f8, $f0, $f2 +/* 0C5F18 7F0913E8 4600103E */ c.le.s $f2, $f0 +.L7F0913EC: +/* 0C5F1C 7F0913EC 00000000 */ nop +/* 0C5F20 7F0913F0 45000008 */ bc1f .L7F091414 +/* 0C5F24 7F0913F4 00000000 */ nop +/* 0C5F28 7F0913F8 46020181 */ sub.s $f6, $f0, $f2 +.L7F0913FC: +/* 0C5F2C 7F0913FC E4460000 */ swc1 $f6, ($v0) +/* 0C5F30 7F091400 C4400000 */ lwc1 $f0, ($v0) +/* 0C5F34 7F091404 4600103E */ c.le.s $f2, $f0 +/* 0C5F38 7F091408 00000000 */ nop +/* 0C5F3C 7F09140C 4503FFFB */ bc1tl .L7F0913FC +/* 0C5F40 7F091410 46020181 */ sub.s $f6, $f0, $f2 +.L7F091414: +/* 0C5F44 7F091414 C4245850 */ lwc1 $f4, %lo(D_80055850)($at) +/* 0C5F48 7F091418 46047302 */ mul.s $f12, $f14, $f4 +/* 0C5F4C 7F09141C 0FC15FA8 */ jal cosf +/* 0C5F50 7F091420 00000000 */ nop +/* 0C5F54 7F091424 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5F58 7F091428 E420703C */ swc1 $f0, %lo(D_8003703C)($at) +/* 0C5F5C 7F09142C 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5F60 7F091430 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5F64 7F091434 3C018005 */ lui $at, %hi(D_80055854) +/* 0C5F68 7F091438 C4285854 */ lwc1 $f8, %lo(D_80055854)($at) +/* 0C5F6C 7F09143C C46A0000 */ lwc1 $f10, ($v1) +/* 0C5F70 7F091440 46085302 */ mul.s $f12, $f10, $f8 +/* 0C5F74 7F091444 0FC15FAB */ jal sinf +/* 0C5F78 7F091448 00000000 */ nop +/* 0C5F7C 7F09144C 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5F80 7F091450 E4207040 */ swc1 $f0, %lo(D_80037040)($at) +/* 0C5F84 7F091454 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5F88 7F091458 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5F8C 7F09145C 3C018005 */ lui $at, %hi(D_80055858) +/* 0C5F90 7F091460 C4245858 */ lwc1 $f4, %lo(D_80055858)($at) +/* 0C5F94 7F091464 C4460000 */ lwc1 $f6, ($v0) +/* 0C5F98 7F091468 46043302 */ mul.s $f12, $f6, $f4 +/* 0C5F9C 7F09146C 0FC15FA8 */ jal cosf +/* 0C5FA0 7F091470 00000000 */ nop +/* 0C5FA4 7F091474 3C018003 */ lui $at, %hi(D_80037048) +/* 0C5FA8 7F091478 E4207048 */ swc1 $f0, %lo(D_80037048)($at) +/* 0C5FAC 7F09147C 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5FB0 7F091480 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5FB4 7F091484 3C018005 */ lui $at, %hi(D_8005585C) +/* 0C5FB8 7F091488 C428585C */ lwc1 $f8, %lo(D_8005585C)($at) +/* 0C5FBC 7F09148C C44A0000 */ lwc1 $f10, ($v0) +/* 0C5FC0 7F091490 46085302 */ mul.s $f12, $f10, $f8 +/* 0C5FC4 7F091494 0FC15FAB */ jal sinf +/* 0C5FC8 7F091498 00000000 */ nop +/* 0C5FCC 7F09149C 3C048003 */ lui $a0, %hi(D_8003704C) +/* 0C5FD0 7F0914A0 2484704C */ addiu $a0, %lo(D_8003704C) # addiu $a0, $a0, 0x704c +/* 0C5FD4 7F0914A4 E4800000 */ swc1 $f0, ($a0) +/* 0C5FD8 7F0914A8 C4820000 */ lwc1 $f2, ($a0) +/* 0C5FDC 7F0914AC 3C028003 */ lui $v0, %hi(D_80037020) +/* 0C5FE0 7F0914B0 24427020 */ addiu $v0, %lo(D_80037020) # addiu $v0, $v0, 0x7020 +/* 0C5FE4 7F0914B4 3C018003 */ lui $at, %hi(D_80037048) +/* 0C5FE8 7F0914B8 E4420004 */ swc1 $f2, 4($v0) +/* 0C5FEC 7F0914BC C42E7048 */ lwc1 $f14, %lo(D_80037048)($at) +/* 0C5FF0 7F0914C0 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5FF4 7F0914C4 C4307040 */ lwc1 $f16, %lo(D_80037040)($at) +/* 0C5FF8 7F0914C8 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5FFC 7F0914CC 46007107 */ neg.s $f4, $f14 +/* 0C6000 7F0914D0 46107182 */ mul.s $f6, $f14, $f16 +/* 0C6004 7F0914D4 46001207 */ neg.s $f8, $f2 +/* 0C6008 7F0914D8 3C038003 */ lui $v1, %hi(D_8003702C) +/* 0C600C 7F0914DC 2463702C */ addiu $v1, %lo(D_8003702C) # addiu $v1, $v1, 0x702c +/* 0C6010 7F0914E0 97B80022 */ lhu $t8, 0x22($sp) +/* 0C6014 7F0914E4 E4460000 */ swc1 $f6, ($v0) +/* 0C6018 7F0914E8 C432703C */ lwc1 $f18, %lo(D_8003703C)($at) +/* 0C601C 7F0914EC 3C018003 */ lui $at, %hi(D_80037054) +/* 0C6020 7F0914F0 E46E0004 */ swc1 $f14, 4($v1) +/* 0C6024 7F0914F4 46122282 */ mul.s $f10, $f4, $f18 +/* 0C6028 7F0914F8 00000000 */ nop +/* 0C602C 7F0914FC 46104182 */ mul.s $f6, $f8, $f16 +/* 0C6030 7F091500 00000000 */ nop +/* 0C6034 7F091504 46121102 */ mul.s $f4, $f2, $f18 +/* 0C6038 7F091508 E44A0008 */ swc1 $f10, 8($v0) +/* 0C603C 7F09150C E4660000 */ swc1 $f6, ($v1) +/* 0C6040 7F091510 E4640008 */ swc1 $f4, 8($v1) +/* 0C6044 7F091514 A4387054 */ sh $t8, %lo(D_80037054)($at) +/* 0C6048 7F091518 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0C604C 7F09151C 44816000 */ mtc1 $at, $f12 +/* 0C6050 7F091520 0FC26C85 */ jal set_cur_player_fovy +/* 0C6054 7F091524 00000000 */ nop +/* 0C6058 7F091528 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079E20) +/* 0C605C 7F09152C 24429E20 */ addiu $v0, %lo(dword_CODE_bss_80079E20) # addiu $v0, $v0, -0x61e0 +/* 0C6060 7F091530 8C590000 */ lw $t9, ($v0) +/* 0C6064 7F091534 24010001 */ li $at, 1 +/* 0C6068 7F091538 27230001 */ addiu $v1, $t9, 1 +/* 0C606C 7F09153C 14610007 */ bne $v1, $at, .L7F09155C +/* 0C6070 7F091540 AC430000 */ sw $v1, ($v0) +/* 0C6074 7F091544 0FC173D7 */ jal remove_item_in_hand +/* 0C6078 7F091548 00002025 */ move $a0, $zero +/* 0C607C 7F09154C 0FC173D7 */ jal remove_item_in_hand +/* 0C6080 7F091550 24040001 */ li $a0, 1 +/* 0C6084 7F091554 10000007 */ b .L7F091574 +/* 0C6088 7F091558 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09155C: +/* 0C608C 7F09155C 24010004 */ li $at, 4 +/* 0C6090 7F091560 54610004 */ bnel $v1, $at, .L7F091574 +/* 0C6094 7F091564 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6098 7F091568 0FC1E73C */ jal solo_char_load +/* 0C609C 7F09156C 00000000 */ nop +/* 0C60A0 7F091570 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091574: +/* 0C60A4 7F091574 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C60A8 7F091578 03E00008 */ jr $ra +/* 0C60AC 7F09157C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F091580(s32 arg0) { + // Node 0 + sub_GAME_7F0876C4(&stanbondx, &D_80037020, &D_8003702C); + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F091580 +/* 0C60B0 7F091580 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C60B4 7F091584 AFA40018 */ sw $a0, 0x18($sp) +/* 0C60B8 7F091588 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C60BC 7F09158C 3C048003 */ lui $a0, %hi(stanbondx) +/* 0C60C0 7F091590 3C058003 */ lui $a1, %hi(D_80037020) +/* 0C60C4 7F091594 3C068003 */ lui $a2, %hi(D_8003702C) +/* 0C60C8 7F091598 24C6702C */ addiu $a2, %lo(D_8003702C) # addiu $a2, $a2, 0x702c +/* 0C60CC 7F09159C 24A57020 */ addiu $a1, %lo(D_80037020) # addiu $a1, $a1, 0x7020 +/* 0C60D0 7F0915A0 0FC21DB1 */ jal sub_GAME_7F0876C4 +/* 0C60D4 7F0915A4 24847014 */ addiu $a0, %lo(stanbondx) # addiu $a0, $a0, 0x7014 +/* 0C60D8 7F0915A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C60DC 7F0915AC 8FA20018 */ lw $v0, 0x18($sp) +/* 0C60E0 7F0915B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C60E4 7F0915B4 03E00008 */ jr $ra +/* 0C60E8 7F0915B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0915BC(f32 arg0) { + f32 temp_f0; + + // Node 0 + temp_f0 = (D_80037058 / arg0); + D_80037058 = arg0; + stanbondx = (f32) (stanbondx * temp_f0); + stanbondx.unk4 = (f32) (stanbondx.unk4 * temp_f0); + stanbondx.unk8 = (f32) (stanbondx.unk8 * temp_f0); + D_8003705C = (f32) (1.0f / arg0); + return; + // (possible return value: temp_f0) +} + + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0915BC +/* 0C60EC 7F0915BC 3C028003 */ lui $v0, %hi(D_80037058) +/* 0C60F0 7F0915C0 24427058 */ addiu $v0, %lo(D_80037058) # addiu $v0, $v0, 0x7058 +/* 0C60F4 7F0915C4 C4440000 */ lwc1 $f4, ($v0) +/* 0C60F8 7F0915C8 3C038003 */ lui $v1, %hi(stanbondx) +/* 0C60FC 7F0915CC 24637014 */ addiu $v1, %lo(stanbondx) # addiu $v1, $v1, 0x7014 +/* 0C6100 7F0915D0 460C2003 */ div.s $f0, $f4, $f12 +/* 0C6104 7F0915D4 C4660000 */ lwc1 $f6, ($v1) +/* 0C6108 7F0915D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C610C 7F0915DC C46A0004 */ lwc1 $f10, 4($v1) +/* 0C6110 7F0915E0 C4720008 */ lwc1 $f18, 8($v1) +/* 0C6114 7F0915E4 E44C0000 */ swc1 $f12, ($v0) +/* 0C6118 7F0915E8 46003202 */ mul.s $f8, $f6, $f0 +/* 0C611C 7F0915EC 44813000 */ mtc1 $at, $f6 +/* 0C6120 7F0915F0 3C018003 */ lui $at, %hi(D_8003705C) +/* 0C6124 7F0915F4 46005402 */ mul.s $f16, $f10, $f0 +/* 0C6128 7F0915F8 00000000 */ nop +/* 0C612C 7F0915FC 46009102 */ mul.s $f4, $f18, $f0 +/* 0C6130 7F091600 E4680000 */ swc1 $f8, ($v1) +/* 0C6134 7F091604 E4700004 */ swc1 $f16, 4($v1) +/* 0C6138 7F091608 460C3203 */ div.s $f8, $f6, $f12 +/* 0C613C 7F09160C E4640008 */ swc1 $f4, 8($v1) +/* 0C6140 7F091610 03E00008 */ jr $ra +/* 0C6144 7F091614 E428705C */ swc1 $f8, %lo(D_8003705C)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F091618(void) +{ + float __x; + + get_BONDdata_position(); + __x = get_curplay_horizontal_rotation_in_degrees(); + __x = 6.28318548f - __x; + cosf(__x); + sinf(__x); + cosf(__x); + sinf(__x); + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055860 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F091618 +/* 0C6148 7F091618 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C614C 7F09161C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6150 7F091620 0FC227F5 */ jal get_BONDdata_position +/* 0C6154 7F091624 00000000 */ nop +/* 0C6158 7F091628 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0C615C 7F09162C 00000000 */ nop +/* 0C6160 7F091630 3C018005 */ lui $at, %hi(D_80055860) +/* 0C6164 7F091634 C4245860 */ lwc1 $f4, %lo(D_80055860)($at) +/* 0C6168 7F091638 46002301 */ sub.s $f12, $f4, $f0 +/* 0C616C 7F09163C 0FC15FA8 */ jal cosf +/* 0C6170 7F091640 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0C6174 7F091644 0FC15FAB */ jal sinf +/* 0C6178 7F091648 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C617C 7F09164C 0FC15FA8 */ jal cosf +/* 0C6180 7F091650 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C6184 7F091654 0FC15FAB */ jal sinf +/* 0C6188 7F091658 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C618C 7F09165C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6190 7F091660 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C6194 7F091664 03E00008 */ jr $ra +/* 0C6198 7F091668 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09166C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09166C +/* 0C619C 7F09166C 3C028003 */ lui $v0, %hi(stanbondx) +/* 0C61A0 7F091670 3C038003 */ lui $v1, %hi(D_80037060) +/* 0C61A4 7F091674 24637060 */ addiu $v1, %lo(D_80037060) # addiu $v1, $v1, 0x7060 +/* 0C61A8 7F091678 24427014 */ addiu $v0, %lo(stanbondx) # addiu $v0, $v0, 0x7014 +/* 0C61AC 7F09167C C4440000 */ lwc1 $f4, ($v0) +/* 0C61B0 7F091680 C4660000 */ lwc1 $f6, ($v1) +/* 0C61B4 7F091684 C4480004 */ lwc1 $f8, 4($v0) +/* 0C61B8 7F091688 C46A0004 */ lwc1 $f10, 4($v1) +/* 0C61BC 7F09168C 46062001 */ sub.s $f0, $f4, $f6 +/* 0C61C0 7F091690 C4500008 */ lwc1 $f16, 8($v0) +/* 0C61C4 7F091694 C4720008 */ lwc1 $f18, 8($v1) +/* 0C61C8 7F091698 460A4081 */ sub.s $f2, $f8, $f10 +/* 0C61CC 7F09169C 46000102 */ mul.s $f4, $f0, $f0 +/* 0C61D0 7F0916A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C61D4 7F0916A4 46128381 */ sub.s $f14, $f16, $f18 +/* 0C61D8 7F0916A8 46021182 */ mul.s $f6, $f2, $f2 +/* 0C61DC 7F0916AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C61E0 7F0916B0 460E7282 */ mul.s $f10, $f14, $f14 +/* 0C61E4 7F0916B4 46062200 */ add.s $f8, $f4, $f6 +/* 0C61E8 7F0916B8 0C007DF8 */ jal sqrtf +/* 0C61EC 7F0916BC 460A4300 */ add.s $f12, $f8, $f10 +/* 0C61F0 7F0916C0 3C028003 */ lui $v0, %hi(stanbondx) +/* 0C61F4 7F0916C4 24427014 */ addiu $v0, %lo(stanbondx) # addiu $v0, $v0, 0x7014 +/* 0C61F8 7F0916C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C61FC 7F0916CC 3C038003 */ lui $v1, %hi(D_80037060) +/* 0C6200 7F0916D0 C4500000 */ lwc1 $f16, ($v0) +/* 0C6204 7F0916D4 C4520004 */ lwc1 $f18, 4($v0) +/* 0C6208 7F0916D8 C4440008 */ lwc1 $f4, 8($v0) +/* 0C620C 7F0916DC 24637060 */ addiu $v1, %lo(D_80037060) # addiu $v1, $v1, 0x7060 +/* 0C6210 7F0916E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C6214 7F0916E4 E4700000 */ swc1 $f16, ($v1) +/* 0C6218 7F0916E8 E4720004 */ swc1 $f18, 4($v1) +/* 0C621C 7F0916EC 03E00008 */ jr $ra +/* 0C6220 7F0916F0 E4640008 */ swc1 $f4, 8($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0916F4(void) +{ + struct xyzpoint *pos; + + pos = get_BONDdata_position(); + stanbondx.x = pos->x; + stanbondx.y = pos->y; + stanbondx.z = pos->z; + dword_CODE_bss_80079E20 = 0; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0916F4 +/* 0C6224 7F0916F4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C6228 7F0916F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C622C 7F0916FC 0FC227F5 */ jal get_BONDdata_position +/* 0C6230 7F091700 00000000 */ nop +/* 0C6234 7F091704 C4440000 */ lwc1 $f4, ($v0) +/* 0C6238 7F091708 3C038003 */ lui $v1, %hi(stanbondx) +/* 0C623C 7F09170C 24637014 */ addiu $v1, %lo(stanbondx) # addiu $v1, $v1, 0x7014 +/* 0C6240 7F091710 E4640000 */ swc1 $f4, ($v1) +/* 0C6244 7F091714 C4460004 */ lwc1 $f6, 4($v0) +/* 0C6248 7F091718 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C624C 7F09171C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079E20) +/* 0C6250 7F091720 E4660004 */ swc1 $f6, 4($v1) +/* 0C6254 7F091724 C4480008 */ lwc1 $f8, 8($v0) +/* 0C6258 7F091728 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C625C 7F09172C E4680008 */ swc1 $f8, 8($v1) +/* 0C6260 7F091730 03E00008 */ jr $ra +/* 0C6264 7F091734 AC209E20 */ sw $zero, %lo(dword_CODE_bss_80079E20)($at) +) +#endif + + + diff --git a/src/game/unk_092890.c b/src/game/unk_092890.c new file mode 100644 index 0000000..b2939d7 --- /dev/null +++ b/src/game/unk_092890.c @@ -0,0 +1,391 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void sub_GAME_7F092890(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F092890 +/* 0C73C0 7F092890 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 0C73C4 7F092894 F7BE0030 */ sdc1 $f30, 0x30($sp) +/* 0C73C8 7F092898 F7BC0028 */ sdc1 $f28, 0x28($sp) +/* 0C73CC 7F09289C F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 0C73D0 7F0928A0 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 0C73D4 7F0928A4 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 0C73D8 7F0928A8 F7B40008 */ sdc1 $f20, 8($sp) +/* 0C73DC 7F0928AC C4E40000 */ lwc1 $f4, ($a3) +/* 0C73E0 7F0928B0 8FA90170 */ lw $t1, 0x170($sp) +/* 0C73E4 7F0928B4 8FAA016C */ lw $t2, 0x16c($sp) +/* 0C73E8 7F0928B8 46002221 */ cvt.d.s $f8, $f4 +/* 0C73EC 7F0928BC F7A80090 */ sdc1 $f8, 0x90($sp) +/* 0C73F0 7F0928C0 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0C73F4 7F0928C4 460051A1 */ cvt.d.s $f6, $f10 +/* 0C73F8 7F0928C8 F7A60098 */ sdc1 $f6, 0x98($sp) +/* 0C73FC 7F0928CC C4E40008 */ lwc1 $f4, 8($a3) +/* 0C7400 7F0928D0 46002221 */ cvt.d.s $f8, $f4 +/* 0C7404 7F0928D4 F7A800A0 */ sdc1 $f8, 0xa0($sp) +/* 0C7408 7F0928D8 C52A0000 */ lwc1 $f10, ($t1) +/* 0C740C 7F0928DC 460051A1 */ cvt.d.s $f6, $f10 +/* 0C7410 7F0928E0 F7A60078 */ sdc1 $f6, 0x78($sp) +/* 0C7414 7F0928E4 C5240004 */ lwc1 $f4, 4($t1) +/* 0C7418 7F0928E8 46002221 */ cvt.d.s $f8, $f4 +/* 0C741C 7F0928EC F7A80080 */ sdc1 $f8, 0x80($sp) +/* 0C7420 7F0928F0 C52A0008 */ lwc1 $f10, 8($t1) +/* 0C7424 7F0928F4 46005121 */ cvt.d.s $f4, $f10 +/* 0C7428 7F0928F8 F7A40088 */ sdc1 $f4, 0x88($sp) +/* 0C742C 7F0928FC C54A0000 */ lwc1 $f10, ($t2) +/* 0C7430 7F092900 460052A1 */ cvt.d.s $f10, $f10 +/* 0C7434 7F092904 F7AA0060 */ sdc1 $f10, 0x60($sp) +/* 0C7438 7F092908 C54A0004 */ lwc1 $f10, 4($t2) +/* 0C743C 7F09290C 460052A1 */ cvt.d.s $f10, $f10 +/* 0C7440 7F092910 F7AA0068 */ sdc1 $f10, 0x68($sp) +/* 0C7444 7F092914 C54A0008 */ lwc1 $f10, 8($t2) +/* 0C7448 7F092918 460052A1 */ cvt.d.s $f10, $f10 +/* 0C744C 7F09291C F7AA0070 */ sdc1 $f10, 0x70($sp) +/* 0C7450 7F092920 848C0000 */ lh $t4, ($a0) +/* 0C7454 7F092924 84AB0000 */ lh $t3, ($a1) +/* 0C7458 7F092928 016C6823 */ subu $t5, $t3, $t4 +/* 0C745C 7F09292C 448D5000 */ mtc1 $t5, $f10 +/* 0C7460 7F092930 00000000 */ nop +/* 0C7464 7F092934 468052A1 */ cvt.d.w $f10, $f10 +/* 0C7468 7F092938 F7AA0140 */ sdc1 $f10, 0x140($sp) +/* 0C746C 7F09293C 84CE0000 */ lh $t6, ($a2) +/* 0C7470 7F092940 84AF0000 */ lh $t7, ($a1) +/* 0C7474 7F092944 F7A60038 */ sdc1 $f6, 0x38($sp) +/* 0C7478 7F092948 01CFC023 */ subu $t8, $t6, $t7 +/* 0C747C 7F09294C 44983000 */ mtc1 $t8, $f6 +/* 0C7480 7F092950 00000000 */ nop +/* 0C7484 7F092954 468031A1 */ cvt.d.w $f6, $f6 +/* 0C7488 7F092958 F7A60128 */ sdc1 $f6, 0x128($sp) +/* 0C748C 7F09295C 84880002 */ lh $t0, 2($a0) +/* 0C7490 7F092960 84B90002 */ lh $t9, 2($a1) +/* 0C7494 7F092964 F7A80040 */ sdc1 $f8, 0x40($sp) +/* 0C7498 7F092968 03284823 */ subu $t1, $t9, $t0 +/* 0C749C 7F09296C 44894000 */ mtc1 $t1, $f8 +/* 0C74A0 7F092970 00000000 */ nop +/* 0C74A4 7F092974 46804221 */ cvt.d.w $f8, $f8 +/* 0C74A8 7F092978 F7A80148 */ sdc1 $f8, 0x148($sp) +/* 0C74AC 7F09297C 84CA0002 */ lh $t2, 2($a2) +/* 0C74B0 7F092980 84AB0002 */ lh $t3, 2($a1) +/* 0C74B4 7F092984 014B6023 */ subu $t4, $t2, $t3 +/* 0C74B8 7F092988 448C4000 */ mtc1 $t4, $f8 +/* 0C74BC 7F09298C 00000000 */ nop +/* 0C74C0 7F092990 46804221 */ cvt.d.w $f8, $f8 +/* 0C74C4 7F092994 F7A80130 */ sdc1 $f8, 0x130($sp) +/* 0C74C8 7F092998 848E0004 */ lh $t6, 4($a0) +/* 0C74CC 7F09299C 84AD0004 */ lh $t5, 4($a1) +/* 0C74D0 7F0929A0 01AE7823 */ subu $t7, $t5, $t6 +/* 0C74D4 7F0929A4 448F4000 */ mtc1 $t7, $f8 +/* 0C74D8 7F0929A8 00000000 */ nop +/* 0C74DC 7F0929AC 46804221 */ cvt.d.w $f8, $f8 +/* 0C74E0 7F0929B0 F7A80150 */ sdc1 $f8, 0x150($sp) +/* 0C74E4 7F0929B4 84D80004 */ lh $t8, 4($a2) +/* 0C74E8 7F0929B8 84B90004 */ lh $t9, 4($a1) +/* 0C74EC 7F0929BC 03194023 */ subu $t0, $t8, $t9 +/* 0C74F0 7F0929C0 44884000 */ mtc1 $t0, $f8 +/* 0C74F4 7F0929C4 00000000 */ nop +/* 0C74F8 7F0929C8 46804221 */ cvt.d.w $f8, $f8 +/* 0C74FC 7F0929CC F7A80138 */ sdc1 $f8, 0x138($sp) +/* 0C7500 7F0929D0 848A0000 */ lh $t2, ($a0) +/* 0C7504 7F0929D4 84C90000 */ lh $t1, ($a2) +/* 0C7508 7F0929D8 012A5823 */ subu $t3, $t1, $t2 +/* 0C750C 7F0929DC 448B4000 */ mtc1 $t3, $f8 +/* 0C7510 7F0929E0 00000000 */ nop +/* 0C7514 7F0929E4 46804221 */ cvt.d.w $f8, $f8 +/* 0C7518 7F0929E8 F7A80110 */ sdc1 $f8, 0x110($sp) +/* 0C751C 7F0929EC 848D0002 */ lh $t5, 2($a0) +/* 0C7520 7F0929F0 84CC0002 */ lh $t4, 2($a2) +/* 0C7524 7F0929F4 018D7023 */ subu $t6, $t4, $t5 +/* 0C7528 7F0929F8 448E4000 */ mtc1 $t6, $f8 +/* 0C752C 7F0929FC 00000000 */ nop +/* 0C7530 7F092A00 46804221 */ cvt.d.w $f8, $f8 +/* 0C7534 7F092A04 F7A80118 */ sdc1 $f8, 0x118($sp) +/* 0C7538 7F092A08 84980004 */ lh $t8, 4($a0) +/* 0C753C 7F092A0C 84CF0004 */ lh $t7, 4($a2) +/* 0C7540 7F092A10 F7A40048 */ sdc1 $f4, 0x48($sp) +/* 0C7544 7F092A14 D7A40138 */ ldc1 $f4, 0x138($sp) +/* 0C7548 7F092A18 01F8C823 */ subu $t9, $t7, $t8 +/* 0C754C 7F092A1C 44994000 */ mtc1 $t9, $f8 +/* 0C7550 7F092A20 00000000 */ nop +/* 0C7554 7F092A24 46804221 */ cvt.d.w $f8, $f8 +/* 0C7558 7F092A28 F7A80120 */ sdc1 $f8, 0x120($sp) +/* 0C755C 7F092A2C D7A80148 */ ldc1 $f8, 0x148($sp) +/* 0C7560 7F092A30 46244482 */ mul.d $f18, $f8, $f4 +/* 0C7564 7F092A34 D7A40130 */ ldc1 $f4, 0x130($sp) +/* 0C7568 7F092A38 D7A80150 */ ldc1 $f8, 0x150($sp) +/* 0C756C 7F092A3C 46244502 */ mul.d $f20, $f8, $f4 +/* 0C7570 7F092A40 D7A40138 */ ldc1 $f4, 0x138($sp) +/* 0C7574 7F092A44 46264582 */ mul.d $f22, $f8, $f6 +/* 0C7578 7F092A48 D7A80130 */ ldc1 $f8, 0x130($sp) +/* 0C757C 7F092A4C 46245602 */ mul.d $f24, $f10, $f4 +/* 0C7580 7F092A50 D7A40148 */ ldc1 $f4, 0x148($sp) +/* 0C7584 7F092A54 46349301 */ sub.d $f12, $f18, $f20 +/* 0C7588 7F092A58 46285682 */ mul.d $f26, $f10, $f8 +/* 0C758C 7F092A5C 00000000 */ nop +/* 0C7590 7F092A60 46262702 */ mul.d $f28, $f4, $f6 +/* 0C7594 7F092A64 D7A40090 */ ldc1 $f4, 0x90($sp) +/* 0C7598 7F092A68 4638B381 */ sub.d $f14, $f22, $f24 +/* 0C759C 7F092A6C 463CD401 */ sub.d $f16, $f26, $f28 +/* 0C75A0 7F092A70 F7B000F8 */ sdc1 $f16, 0xf8($sp) +/* 0C75A4 7F092A74 84880000 */ lh $t0, ($a0) +/* 0C75A8 7F092A78 84890002 */ lh $t1, 2($a0) +/* 0C75AC 7F092A7C 848A0004 */ lh $t2, 4($a0) +/* 0C75B0 7F092A80 44885000 */ mtc1 $t0, $f10 +/* 0C75B4 7F092A84 F7AE0100 */ sdc1 $f14, 0x100($sp) +/* 0C75B8 7F092A88 F7AC0108 */ sdc1 $f12, 0x108($sp) +/* 0C75BC 7F092A8C 46805221 */ cvt.d.w $f8, $f10 +/* 0C75C0 7F092A90 46244180 */ add.d $f6, $f8, $f4 +/* 0C75C4 7F092A94 44894000 */ mtc1 $t1, $f8 +/* 0C75C8 7F092A98 00000000 */ nop +/* 0C75CC 7F092A9C 46804121 */ cvt.d.w $f4, $f8 +/* 0C75D0 7F092AA0 46266282 */ mul.d $f10, $f12, $f6 +/* 0C75D4 7F092AA4 D7A60098 */ ldc1 $f6, 0x98($sp) +/* 0C75D8 7F092AA8 46262200 */ add.d $f8, $f4, $f6 +/* 0C75DC 7F092AAC 46287102 */ mul.d $f4, $f14, $f8 +/* 0C75E0 7F092AB0 D7A800A0 */ ldc1 $f8, 0xa0($sp) +/* 0C75E4 7F092AB4 46245180 */ add.d $f6, $f10, $f4 +/* 0C75E8 7F092AB8 448A5000 */ mtc1 $t2, $f10 +/* 0C75EC 7F092ABC 00000000 */ nop +/* 0C75F0 7F092AC0 46805121 */ cvt.d.w $f4, $f10 +/* 0C75F4 7F092AC4 46244280 */ add.d $f10, $f8, $f4 +/* 0C75F8 7F092AC8 D7A80048 */ ldc1 $f8, 0x48($sp) +/* 0C75FC 7F092ACC 46305102 */ mul.d $f4, $f10, $f16 +/* 0C7600 7F092AD0 46262280 */ add.d $f10, $f4, $f6 +/* 0C7604 7F092AD4 46304182 */ mul.d $f6, $f8, $f16 +/* 0C7608 7F092AD8 D7A40040 */ ldc1 $f4, 0x40($sp) +/* 0C760C 7F092ADC F7AA00F0 */ sdc1 $f10, 0xf0($sp) +/* 0C7610 7F092AE0 D7AA0038 */ ldc1 $f10, 0x38($sp) +/* 0C7614 7F092AE4 462A6202 */ mul.d $f8, $f12, $f10 +/* 0C7618 7F092AE8 00000000 */ nop +/* 0C761C 7F092AEC 46247282 */ mul.d $f10, $f14, $f4 +/* 0C7620 7F092AF0 462A4100 */ add.d $f4, $f8, $f10 +/* 0C7624 7F092AF4 44804000 */ mtc1 $zero, $f8 +/* 0C7628 7F092AF8 44804800 */ mtc1 $zero, $f9 +/* 0C762C 7F092AFC 46243000 */ add.d $f0, $f6, $f4 +/* 0C7630 7F092B00 D7A60060 */ ldc1 $f6, 0x60($sp) +/* 0C7634 7F092B04 46280032 */ c.eq.d $f0, $f8 +/* 0C7638 7F092B08 00000000 */ nop +/* 0C763C 7F092B0C 45000003 */ bc1f .L7F092B1C +/* 0C7640 7F092B10 00000000 */ nop +/* 0C7644 7F092B14 100000C5 */ b .L7F092E2C +/* 0C7648 7F092B18 00001025 */ move $v0, $zero +.L7F092B1C: +/* 0C764C 7F092B1C 46266102 */ mul.d $f4, $f12, $f6 +/* 0C7650 7F092B20 D7AA00F0 */ ldc1 $f10, 0xf0($sp) +/* 0C7654 7F092B24 F7A60048 */ sdc1 $f6, 0x48($sp) +/* 0C7658 7F092B28 463AE781 */ sub.d $f30, $f28, $f26 +/* 0C765C 7F092B2C 00001025 */ move $v0, $zero +/* 0C7660 7F092B30 46245201 */ sub.d $f8, $f10, $f4 +/* 0C7664 7F092B34 D7AA0068 */ ldc1 $f10, 0x68($sp) +/* 0C7668 7F092B38 462A7102 */ mul.d $f4, $f14, $f10 +/* 0C766C 7F092B3C F7AA0040 */ sdc1 $f10, 0x40($sp) +/* 0C7670 7F092B40 46244201 */ sub.d $f8, $f8, $f4 +/* 0C7674 7F092B44 D7A40070 */ ldc1 $f4, 0x70($sp) +/* 0C7678 7F092B48 46302182 */ mul.d $f6, $f4, $f16 +/* 0C767C 7F092B4C F7A40038 */ sdc1 $f4, 0x38($sp) +/* 0C7680 7F092B50 D7A40080 */ ldc1 $f4, 0x80($sp) +/* 0C7684 7F092B54 46264201 */ sub.d $f8, $f8, $f6 +/* 0C7688 7F092B58 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 0C768C 7F092B5C 46266282 */ mul.d $f10, $f12, $f6 +/* 0C7690 7F092B60 F7A80050 */ sdc1 $f8, 0x50($sp) +/* 0C7694 7F092B64 F7A60058 */ sdc1 $f6, 0x58($sp) +/* 0C7698 7F092B68 46247202 */ mul.d $f8, $f14, $f4 +/* 0C769C 7F092B6C D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C76A0 7F092B70 46285280 */ add.d $f10, $f10, $f8 +/* 0C76A4 7F092B74 D7A80088 */ ldc1 $f8, 0x88($sp) +/* 0C76A8 7F092B78 46304182 */ mul.d $f6, $f8, $f16 +/* 0C76AC 7F092B7C 44808000 */ mtc1 $zero, $f16 +/* 0C76B0 7F092B80 44808800 */ mtc1 $zero, $f17 +/* 0C76B4 7F092B84 462A3180 */ add.d $f6, $f6, $f10 +/* 0C76B8 7F092B88 D7AA0050 */ ldc1 $f10, 0x50($sp) +/* 0C76BC 7F092B8C 46265083 */ div.d $f2, $f10, $f6 +/* 0C76C0 7F092B90 D7AA0058 */ ldc1 $f10, 0x58($sp) +/* 0C76C4 7F092B94 46225182 */ mul.d $f6, $f10, $f2 +/* 0C76C8 7F092B98 D7AA0048 */ ldc1 $f10, 0x48($sp) +/* 0C76CC 7F092B9C 462A3180 */ add.d $f6, $f6, $f10 +/* 0C76D0 7F092BA0 46222282 */ mul.d $f10, $f4, $f2 +/* 0C76D4 7F092BA4 D7A40040 */ ldc1 $f4, 0x40($sp) +/* 0C76D8 7F092BA8 F7A600C8 */ sdc1 $f6, 0xc8($sp) +/* 0C76DC 7F092BAC 46245280 */ add.d $f10, $f10, $f4 +/* 0C76E0 7F092BB0 46224102 */ mul.d $f4, $f8, $f2 +/* 0C76E4 7F092BB4 D7A80038 */ ldc1 $f8, 0x38($sp) +/* 0C76E8 7F092BB8 F7AA00D0 */ sdc1 $f10, 0xd0($sp) +/* 0C76EC 7F092BBC 46282100 */ add.d $f4, $f4, $f8 +/* 0C76F0 7F092BC0 D7A80090 */ ldc1 $f8, 0x90($sp) +/* 0C76F4 7F092BC4 F7A400D8 */ sdc1 $f4, 0xd8($sp) +/* 0C76F8 7F092BC8 848B0000 */ lh $t3, ($a0) +/* 0C76FC 7F092BCC F7AA0058 */ sdc1 $f10, 0x58($sp) +/* 0C7700 7F092BD0 448B5000 */ mtc1 $t3, $f10 +/* 0C7704 7F092BD4 00000000 */ nop +/* 0C7708 7F092BD8 468052A1 */ cvt.d.w $f10, $f10 +/* 0C770C 7F092BDC 462A4200 */ add.d $f8, $f8, $f10 +/* 0C7710 7F092BE0 46283281 */ sub.d $f10, $f6, $f8 +/* 0C7714 7F092BE4 D7A80098 */ ldc1 $f8, 0x98($sp) +/* 0C7718 7F092BE8 D7A60058 */ ldc1 $f6, 0x58($sp) +/* 0C771C 7F092BEC F7AA00B0 */ sdc1 $f10, 0xb0($sp) +/* 0C7720 7F092BF0 848C0002 */ lh $t4, 2($a0) +/* 0C7724 7F092BF4 448C5000 */ mtc1 $t4, $f10 +/* 0C7728 7F092BF8 00000000 */ nop +/* 0C772C 7F092BFC 468052A1 */ cvt.d.w $f10, $f10 +/* 0C7730 7F092C00 462A4200 */ add.d $f8, $f8, $f10 +/* 0C7734 7F092C04 46283281 */ sub.d $f10, $f6, $f8 +/* 0C7738 7F092C08 D7A600A0 */ ldc1 $f6, 0xa0($sp) +/* 0C773C 7F092C0C F7AA00B8 */ sdc1 $f10, 0xb8($sp) +/* 0C7740 7F092C10 848D0004 */ lh $t5, 4($a0) +/* 0C7744 7F092C14 448D4000 */ mtc1 $t5, $f8 +/* 0C7748 7F092C18 00000000 */ nop +/* 0C774C 7F092C1C 468042A1 */ cvt.d.w $f10, $f8 +/* 0C7750 7F092C20 462A3200 */ add.d $f8, $f6, $f10 +/* 0C7754 7F092C24 44805000 */ mtc1 $zero, $f10 +/* 0C7758 7F092C28 44805800 */ mtc1 $zero, $f11 +/* 0C775C 7F092C2C 46282181 */ sub.d $f6, $f4, $f8 +/* 0C7760 7F092C30 D7A400B0 */ ldc1 $f4, 0xb0($sp) +/* 0C7764 7F092C34 462AF032 */ c.eq.d $f30, $f10 +/* 0C7768 7F092C38 F7A600C0 */ sdc1 $f6, 0xc0($sp) +/* 0C776C 7F092C3C D7A600B8 */ ldc1 $f6, 0xb8($sp) +/* 0C7770 7F092C40 45030008 */ bc1tl .L7F092C64 +/* 0C7774 7F092C44 4632A301 */ sub.d $f12, $f20, $f18 +/* 0C7778 7F092C48 462E2202 */ mul.d $f8, $f4, $f14 +/* 0C777C 7F092C4C D7AC0140 */ ldc1 $f12, 0x140($sp) +/* 0C7780 7F092C50 46266282 */ mul.d $f10, $f12, $f6 +/* 0C7784 7F092C54 462A4101 */ sub.d $f4, $f8, $f10 +/* 0C7788 7F092C58 1000001C */ b .L7F092CCC +/* 0C778C 7F092C5C 463E2083 */ div.d $f2, $f4, $f30 +/* 0C7790 7F092C60 4632A301 */ sub.d $f12, $f20, $f18 +.L7F092C64: +/* 0C7794 7F092C64 44803800 */ mtc1 $zero, $f7 +/* 0C7798 7F092C68 44803000 */ mtc1 $zero, $f6 +/* 0C779C 7F092C6C D7A800B8 */ ldc1 $f8, 0xb8($sp) +/* 0C77A0 7F092C70 D7A400B0 */ ldc1 $f4, 0xb0($sp) +/* 0C77A4 7F092C74 46266032 */ c.eq.d $f12, $f6 +/* 0C77A8 7F092C78 D7A60150 */ ldc1 $f6, 0x150($sp) +/* 0C77AC 7F092C7C D7AA00C0 */ ldc1 $f10, 0xc0($sp) +/* 0C77B0 7F092C80 4501000B */ bc1t .L7F092CB0 +/* 0C77B4 7F092C84 00000000 */ nop +/* 0C77B8 7F092C88 D7AA0150 */ ldc1 $f10, 0x150($sp) +/* 0C77BC 7F092C8C D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C77C0 7F092C90 D7A600C0 */ ldc1 $f6, 0xc0($sp) +/* 0C77C4 7F092C94 462A4102 */ mul.d $f4, $f8, $f10 +/* 0C77C8 7F092C98 00000000 */ nop +/* 0C77CC 7F092C9C 46267202 */ mul.d $f8, $f14, $f6 +/* 0C77D0 7F092CA0 46282281 */ sub.d $f10, $f4, $f8 +/* 0C77D4 7F092CA4 462C5083 */ div.d $f2, $f10, $f12 +/* 0C77D8 7F092CA8 10000008 */ b .L7F092CCC +/* 0C77DC 7F092CAC D7AC0140 */ ldc1 $f12, 0x140($sp) +.L7F092CB0: +/* 0C77E0 7F092CB0 46243202 */ mul.d $f8, $f6, $f4 +/* 0C77E4 7F092CB4 D7AC0140 */ ldc1 $f12, 0x140($sp) +/* 0C77E8 7F092CB8 4636C001 */ sub.d $f0, $f24, $f22 +/* 0C77EC 7F092CBC D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C77F0 7F092CC0 462C5182 */ mul.d $f6, $f10, $f12 +/* 0C77F4 7F092CC4 46283101 */ sub.d $f4, $f6, $f8 +/* 0C77F8 7F092CC8 46202083 */ div.d $f2, $f4, $f0 +.L7F092CCC: +/* 0C77FC 7F092CCC 462C8032 */ c.eq.d $f16, $f12 +/* 0C7800 7F092CD0 D7A60110 */ ldc1 $f6, 0x110($sp) +/* 0C7804 7F092CD4 45030007 */ bc1tl .L7F092CF4 +/* 0C7808 7F092CD8 462E8032 */ c.eq.d $f16, $f14 +/* 0C780C 7F092CDC 46261202 */ mul.d $f8, $f2, $f6 +/* 0C7810 7F092CE0 D7AA00B0 */ ldc1 $f10, 0xb0($sp) +/* 0C7814 7F092CE4 46285101 */ sub.d $f4, $f10, $f8 +/* 0C7818 7F092CE8 10000010 */ b .L7F092D2C +/* 0C781C 7F092CEC 462C2003 */ div.d $f0, $f4, $f12 +/* 0C7820 7F092CF0 462E8032 */ c.eq.d $f16, $f14 +.L7F092CF4: +/* 0C7824 7F092CF4 D7AA0118 */ ldc1 $f10, 0x118($sp) +/* 0C7828 7F092CF8 D7A60120 */ ldc1 $f6, 0x120($sp) +/* 0C782C 7F092CFC 45010006 */ bc1t .L7F092D18 +/* 0C7830 7F092D00 00000000 */ nop +/* 0C7834 7F092D04 462A1202 */ mul.d $f8, $f2, $f10 +/* 0C7838 7F092D08 D7A600B8 */ ldc1 $f6, 0xb8($sp) +/* 0C783C 7F092D0C 46283101 */ sub.d $f4, $f6, $f8 +/* 0C7840 7F092D10 10000006 */ b .L7F092D2C +/* 0C7844 7F092D14 462E2003 */ div.d $f0, $f4, $f14 +.L7F092D18: +/* 0C7848 7F092D18 46261202 */ mul.d $f8, $f2, $f6 +/* 0C784C 7F092D1C D7AA00C0 */ ldc1 $f10, 0xc0($sp) +/* 0C7850 7F092D20 D7A60150 */ ldc1 $f6, 0x150($sp) +/* 0C7854 7F092D24 46285101 */ sub.d $f4, $f10, $f8 +/* 0C7858 7F092D28 46262003 */ div.d $f0, $f4, $f6 +.L7F092D2C: +/* 0C785C 7F092D2C 4620803E */ c.le.d $f16, $f0 +/* 0C7860 7F092D30 00000000 */ nop +/* 0C7864 7F092D34 4500003D */ bc1f .L7F092E2C +/* 0C7868 7F092D38 00000000 */ nop +/* 0C786C 7F092D3C 4622803E */ c.le.d $f16, $f2 +/* 0C7870 7F092D40 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0C7874 7F092D44 45000039 */ bc1f .L7F092E2C +/* 0C7878 7F092D48 00000000 */ nop +/* 0C787C 7F092D4C 46220200 */ add.d $f8, $f0, $f2 +/* 0C7880 7F092D50 44815800 */ mtc1 $at, $f11 +/* 0C7884 7F092D54 44805000 */ mtc1 $zero, $f10 +/* 0C7888 7F092D58 00000000 */ nop +/* 0C788C 7F092D5C 462A403E */ c.le.d $f8, $f10 +/* 0C7890 7F092D60 00000000 */ nop +/* 0C7894 7F092D64 45000031 */ bc1f .L7F092E2C +/* 0C7898 7F092D68 00000000 */ nop +/* 0C789C 7F092D6C 8FA20168 */ lw $v0, 0x168($sp) +/* 0C78A0 7F092D70 D7A400C8 */ ldc1 $f4, 0xc8($sp) +/* 0C78A4 7F092D74 C4460000 */ lwc1 $f6, ($v0) +/* 0C78A8 7F092D78 460032A1 */ cvt.d.s $f10, $f6 +/* 0C78AC 7F092D7C D7A60078 */ ldc1 $f6, 0x78($sp) +/* 0C78B0 7F092D80 462A2201 */ sub.d $f8, $f4, $f10 +/* 0C78B4 7F092D84 46283282 */ mul.d $f10, $f6, $f8 +/* 0C78B8 7F092D88 C4480004 */ lwc1 $f8, 4($v0) +/* 0C78BC 7F092D8C D7A600D0 */ ldc1 $f6, 0xd0($sp) +/* 0C78C0 7F092D90 46004221 */ cvt.d.s $f8, $f8 +/* 0C78C4 7F092D94 46283181 */ sub.d $f6, $f6, $f8 +/* 0C78C8 7F092D98 D7A80080 */ ldc1 $f8, 0x80($sp) +/* 0C78CC 7F092D9C 46264202 */ mul.d $f8, $f8, $f6 +/* 0C78D0 7F092DA0 46285180 */ add.d $f6, $f10, $f8 +/* 0C78D4 7F092DA4 C4480008 */ lwc1 $f8, 8($v0) +/* 0C78D8 7F092DA8 D7AA00D8 */ ldc1 $f10, 0xd8($sp) +/* 0C78DC 7F092DAC 46004221 */ cvt.d.s $f8, $f8 +/* 0C78E0 7F092DB0 46285281 */ sub.d $f10, $f10, $f8 +/* 0C78E4 7F092DB4 D7A80088 */ ldc1 $f8, 0x88($sp) +/* 0C78E8 7F092DB8 46285282 */ mul.d $f10, $f10, $f8 +/* 0C78EC 7F092DBC 46265200 */ add.d $f8, $f10, $f6 +/* 0C78F0 7F092DC0 4628803E */ c.le.d $f16, $f8 +/* 0C78F4 7F092DC4 00000000 */ nop +/* 0C78F8 7F092DC8 45000016 */ bc1f .L7F092E24 +/* 0C78FC 7F092DCC 00000000 */ nop +/* 0C7900 7F092DD0 462022A0 */ cvt.s.d $f10, $f4 +/* 0C7904 7F092DD4 8FA30174 */ lw $v1, 0x174($sp) +/* 0C7908 7F092DD8 24020001 */ li $v0, 1 +/* 0C790C 7F092DDC E46A0000 */ swc1 $f10, ($v1) +/* 0C7910 7F092DE0 D7A600D0 */ ldc1 $f6, 0xd0($sp) +/* 0C7914 7F092DE4 46203220 */ cvt.s.d $f8, $f6 +/* 0C7918 7F092DE8 E4680004 */ swc1 $f8, 4($v1) +/* 0C791C 7F092DEC D7A400D8 */ ldc1 $f4, 0xd8($sp) +/* 0C7920 7F092DF0 462022A0 */ cvt.s.d $f10, $f4 +/* 0C7924 7F092DF4 E46A0008 */ swc1 $f10, 8($v1) +/* 0C7928 7F092DF8 D7A60108 */ ldc1 $f6, 0x108($sp) +/* 0C792C 7F092DFC 46203220 */ cvt.s.d $f8, $f6 +/* 0C7930 7F092E00 E468000C */ swc1 $f8, 0xc($v1) +/* 0C7934 7F092E04 D7A40100 */ ldc1 $f4, 0x100($sp) +/* 0C7938 7F092E08 462022A0 */ cvt.s.d $f10, $f4 +/* 0C793C 7F092E0C E46A0010 */ swc1 $f10, 0x10($v1) +/* 0C7940 7F092E10 D7A600F8 */ ldc1 $f6, 0xf8($sp) +/* 0C7944 7F092E14 A460002A */ sh $zero, 0x2a($v1) +/* 0C7948 7F092E18 46203220 */ cvt.s.d $f8, $f6 +/* 0C794C 7F092E1C 10000003 */ b .L7F092E2C +/* 0C7950 7F092E20 E4680014 */ swc1 $f8, 0x14($v1) +.L7F092E24: +/* 0C7954 7F092E24 10000001 */ b .L7F092E2C +/* 0C7958 7F092E28 00001025 */ move $v0, $zero +.L7F092E2C: +/* 0C795C 7F092E2C D7B40008 */ ldc1 $f20, 8($sp) +/* 0C7960 7F092E30 D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0C7964 7F092E34 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0C7968 7F092E38 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 0C796C 7F092E3C D7BC0028 */ ldc1 $f28, 0x28($sp) +/* 0C7970 7F092E40 D7BE0030 */ ldc1 $f30, 0x30($sp) +/* 0C7974 7F092E44 03E00008 */ jr $ra +/* 0C7978 7F092E48 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + diff --git a/src/game/unk_092E50.c b/src/game/unk_092E50.c new file mode 100644 index 0000000..21c87a9 --- /dev/null +++ b/src/game/unk_092E50.c @@ -0,0 +1,808 @@ +#include "ultra64.h" +#include "game/unk_092E50.h" +// bss +//CODE.bss:80079E80 +f32 flt_CODE_bss_80079E80; +//CODE.bss:80079E84 +f32 flt_CODE_bss_80079E84; +//CODE.bss:80079E88 +f32 flt_CODE_bss_80079E88; + + +// data +//Gfx MipMap2C_Something_Setup[]={}; +//D:8003FCC0 +u64 MipMap2C_Something_Setup[] = { + 0xF580080000018060,0xF580080001018060,0xF200200200000000,0xF200200201000000, + 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, + 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, + 0xB800000000000000 +}; + +//Gfx MipMap2C_Something2_Setup[]={}; +//D:8003FD28 +u64 MipMap2C_Something2_Setup[] = { + 0xF548040000014050,0xF548040001014050,0xF200200200000000,0xF200200201000000, + 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, + 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, + 0xB800000000000000 +}; + +//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 +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, + 0, 0,0xC19FFFFE00000000,0x419FFFFE00000000, + 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 +}; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F092E50(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057510 +.word 0x3dcccccd /*0.1*/ +glabel D_80057514 +.word 0x40c90fd0 /*6.2831802*/ +glabel D_80057518 +.word 0x3d23d70a /*0.039999999*/ +.text +glabel sub_GAME_7F092E50 +/* 0C7980 7F092E50 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0C7984 7F092E54 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0C7988 7F092E58 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0C798C 7F092E5C 44810000 */ mtc1 $at, $f0 +/* 0C7990 7F092E60 448E2000 */ mtc1 $t6, $f4 +/* 0C7994 7F092E64 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7998 7F092E68 44814000 */ mtc1 $at, $f8 +/* 0C799C 7F092E6C 46802420 */ cvt.s.w $f16, $f4 +/* 0C79A0 7F092E70 3C088008 */ lui $t0, %hi(flt_CODE_bss_80079E80) +/* 0C79A4 7F092E74 25089E80 */ addiu $t0, %lo(flt_CODE_bss_80079E80) # addiu $t0, $t0, -0x6180 +/* 0C79A8 7F092E78 C5060000 */ lwc1 $f6, ($t0) +/* 0C79AC 7F092E7C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C79B0 7F092E80 44809000 */ mtc1 $zero, $f18 +/* 0C79B4 7F092E84 46088282 */ mul.s $f10, $f16, $f8 +/* 0C79B8 7F092E88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C79BC 7F092E8C 3C018005 */ lui $at, %hi(D_80057510) +/* 0C79C0 7F092E90 24180001 */ li $t8, 1 +/* 0C79C4 7F092E94 460A3100 */ add.s $f4, $f6, $f10 +/* 0C79C8 7F092E98 E5040000 */ swc1 $f4, ($t0) +/* 0C79CC 7F092E9C C50E0000 */ lwc1 $f14, ($t0) +/* 0C79D0 7F092EA0 460E003E */ c.le.s $f0, $f14 +/* 0C79D4 7F092EA4 00000000 */ nop +/* 0C79D8 7F092EA8 45020005 */ bc1fl .L7F092EC0 +/* 0C79DC 7F092EAC 4612703C */ c.lt.s $f14, $f18 +/* 0C79E0 7F092EB0 46007201 */ sub.s $f8, $f14, $f0 +/* 0C79E4 7F092EB4 E5080000 */ swc1 $f8, ($t0) +/* 0C79E8 7F092EB8 C50E0000 */ lwc1 $f14, ($t0) +/* 0C79EC 7F092EBC 4612703C */ c.lt.s $f14, $f18 +.L7F092EC0: +/* 0C79F0 7F092EC0 00000000 */ nop +/* 0C79F4 7F092EC4 45000004 */ bc1f .L7F092ED8 +/* 0C79F8 7F092EC8 00000000 */ nop +/* 0C79FC 7F092ECC 46007180 */ add.s $f6, $f14, $f0 +/* 0C7A00 7F092ED0 E5060000 */ swc1 $f6, ($t0) +/* 0C7A04 7F092ED4 C50E0000 */ lwc1 $f14, ($t0) +.L7F092ED8: +/* 0C7A08 7F092ED8 C4247510 */ lwc1 $f4, %lo(D_80057510)($at) +/* 0C7A0C 7F092EDC 3C078008 */ lui $a3, %hi(flt_CODE_bss_80079E84) +/* 0C7A10 7F092EE0 24E79E84 */ addiu $a3, %lo(flt_CODE_bss_80079E84) # addiu $a3, $a3, -0x617c +/* 0C7A14 7F092EE4 46048202 */ mul.s $f8, $f16, $f4 +/* 0C7A18 7F092EE8 C4EA0000 */ lwc1 $f10, ($a3) +/* 0C7A1C 7F092EEC 3C018005 */ lui $at, %hi(D_80057514) +/* 0C7A20 7F092EF0 46085180 */ add.s $f6, $f10, $f8 +/* 0C7A24 7F092EF4 E4E60000 */ swc1 $f6, ($a3) +/* 0C7A28 7F092EF8 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7A2C 7F092EFC 4602003E */ c.le.s $f0, $f2 +/* 0C7A30 7F092F00 00000000 */ nop +/* 0C7A34 7F092F04 45020005 */ bc1fl .L7F092F1C +/* 0C7A38 7F092F08 4612103C */ c.lt.s $f2, $f18 +/* 0C7A3C 7F092F0C 46001101 */ sub.s $f4, $f2, $f0 +/* 0C7A40 7F092F10 E4E40000 */ swc1 $f4, ($a3) +/* 0C7A44 7F092F14 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7A48 7F092F18 4612103C */ c.lt.s $f2, $f18 +.L7F092F1C: +/* 0C7A4C 7F092F1C 00000000 */ nop +/* 0C7A50 7F092F20 45000004 */ bc1f .L7F092F34 +/* 0C7A54 7F092F24 00000000 */ nop +/* 0C7A58 7F092F28 46001280 */ add.s $f10, $f2, $f0 +/* 0C7A5C 7F092F2C E4EA0000 */ swc1 $f10, ($a3) +/* 0C7A60 7F092F30 C4E20000 */ lwc1 $f2, ($a3) +.L7F092F34: +/* 0C7A64 7F092F34 C4207514 */ lwc1 $f0, %lo(D_80057514)($at) +/* 0C7A68 7F092F38 3C018005 */ lui $at, %hi(D_80057518) +/* 0C7A6C 7F092F3C C4267518 */ lwc1 $f6, %lo(D_80057518)($at) +/* 0C7A70 7F092F40 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E88) +/* 0C7A74 7F092F44 24C69E88 */ addiu $a2, %lo(flt_CODE_bss_80079E88) # addiu $a2, $a2, -0x6178 +/* 0C7A78 7F092F48 46068102 */ mul.s $f4, $f16, $f6 +/* 0C7A7C 7F092F4C C4C80000 */ lwc1 $f8, ($a2) +/* 0C7A80 7F092F50 46044280 */ add.s $f10, $f8, $f4 +/* 0C7A84 7F092F54 E4CA0000 */ swc1 $f10, ($a2) +/* 0C7A88 7F092F58 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7A8C 7F092F5C 460C003E */ c.le.s $f0, $f12 +/* 0C7A90 7F092F60 00000000 */ nop +/* 0C7A94 7F092F64 45020005 */ bc1fl .L7F092F7C +/* 0C7A98 7F092F68 4612603C */ c.lt.s $f12, $f18 +/* 0C7A9C 7F092F6C 46006181 */ sub.s $f6, $f12, $f0 +/* 0C7AA0 7F092F70 E4C60000 */ swc1 $f6, ($a2) +/* 0C7AA4 7F092F74 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7AA8 7F092F78 4612603C */ c.lt.s $f12, $f18 +.L7F092F7C: +/* 0C7AAC 7F092F7C 00000000 */ nop +/* 0C7AB0 7F092F80 45020005 */ bc1fl .L7F092F98 +/* 0C7AB4 7F092F84 444FF800 */ cfc1 $t7, $31 +/* 0C7AB8 7F092F88 46006200 */ add.s $f8, $f12, $f0 +/* 0C7ABC 7F092F8C E4C80000 */ swc1 $f8, ($a2) +/* 0C7AC0 7F092F90 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7AC4 7F092F94 444FF800 */ cfc1 $t7, $31 +.L7F092F98: +/* 0C7AC8 7F092F98 44D8F800 */ ctc1 $t8, $31 +/* 0C7ACC 7F092F9C 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7AD0 7F092FA0 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7AD4 7F092FA4 46007124 */ cvt.w.s $f4, $f14 +/* 0C7AD8 7F092FA8 8C430010 */ lw $v1, 0x10($v0) +/* 0C7ADC 7F092FAC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7AE0 7F092FB0 4458F800 */ cfc1 $t8, $31 +/* 0C7AE4 7F092FB4 00000000 */ nop +/* 0C7AE8 7F092FB8 33180078 */ andi $t8, $t8, 0x78 +/* 0C7AEC 7F092FBC 53000013 */ beql $t8, $zero, .L7F09300C +/* 0C7AF0 7F092FC0 44182000 */ mfc1 $t8, $f4 +/* 0C7AF4 7F092FC4 44812000 */ mtc1 $at, $f4 +/* 0C7AF8 7F092FC8 24180001 */ li $t8, 1 +/* 0C7AFC 7F092FCC 46047101 */ sub.s $f4, $f14, $f4 +/* 0C7B00 7F092FD0 44D8F800 */ ctc1 $t8, $31 +/* 0C7B04 7F092FD4 00000000 */ nop +/* 0C7B08 7F092FD8 46002124 */ cvt.w.s $f4, $f4 +/* 0C7B0C 7F092FDC 4458F800 */ cfc1 $t8, $31 +/* 0C7B10 7F092FE0 00000000 */ nop +/* 0C7B14 7F092FE4 33180078 */ andi $t8, $t8, 0x78 +/* 0C7B18 7F092FE8 17000005 */ bnez $t8, .L7F093000 +/* 0C7B1C 7F092FEC 00000000 */ nop +/* 0C7B20 7F092FF0 44182000 */ mfc1 $t8, $f4 +/* 0C7B24 7F092FF4 3C018000 */ lui $at, 0x8000 +/* 0C7B28 7F092FF8 10000007 */ b .L7F093018 +/* 0C7B2C 7F092FFC 0301C025 */ or $t8, $t8, $at +.L7F093000: +/* 0C7B30 7F093000 10000005 */ b .L7F093018 +/* 0C7B34 7F093004 2418FFFF */ li $t8, -1 +/* 0C7B38 7F093008 44182000 */ mfc1 $t8, $f4 +.L7F09300C: +/* 0C7B3C 7F09300C 00000000 */ nop +/* 0C7B40 7F093010 0700FFFB */ bltz $t8, .L7F093000 +/* 0C7B44 7F093014 00000000 */ nop +.L7F093018: +/* 0C7B48 7F093018 44CFF800 */ ctc1 $t7, $31 +/* 0C7B4C 7F09301C 240F0001 */ li $t7, 1 +/* 0C7B50 7F093020 00034B02 */ srl $t1, $v1, 0xc +/* 0C7B54 7F093024 03095026 */ xor $t2, $t8, $t1 +/* 0C7B58 7F093028 444EF800 */ cfc1 $t6, $31 +/* 0C7B5C 7F09302C 44CFF800 */ ctc1 $t7, $31 +/* 0C7B60 7F093030 000A5D00 */ sll $t3, $t2, 0x14 +/* 0C7B64 7F093034 000B6202 */ srl $t4, $t3, 8 +/* 0C7B68 7F093038 460012A4 */ cvt.w.s $f10, $f2 +/* 0C7B6C 7F09303C 01836826 */ xor $t5, $t4, $v1 +/* 0C7B70 7F093040 AC4D0010 */ sw $t5, 0x10($v0) +/* 0C7B74 7F093044 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7B78 7F093048 444FF800 */ cfc1 $t7, $31 +/* 0C7B7C 7F09304C 00000000 */ nop +/* 0C7B80 7F093050 31EF0078 */ andi $t7, $t7, 0x78 +/* 0C7B84 7F093054 51E00013 */ beql $t7, $zero, .L7F0930A4 +/* 0C7B88 7F093058 440F5000 */ mfc1 $t7, $f10 +/* 0C7B8C 7F09305C 44815000 */ mtc1 $at, $f10 +/* 0C7B90 7F093060 240F0001 */ li $t7, 1 +/* 0C7B94 7F093064 460A1281 */ sub.s $f10, $f2, $f10 +/* 0C7B98 7F093068 44CFF800 */ ctc1 $t7, $31 +/* 0C7B9C 7F09306C 00000000 */ nop +/* 0C7BA0 7F093070 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7BA4 7F093074 444FF800 */ cfc1 $t7, $31 +/* 0C7BA8 7F093078 00000000 */ nop +/* 0C7BAC 7F09307C 31EF0078 */ andi $t7, $t7, 0x78 +/* 0C7BB0 7F093080 15E00005 */ bnez $t7, .L7F093098 +/* 0C7BB4 7F093084 00000000 */ nop +/* 0C7BB8 7F093088 440F5000 */ mfc1 $t7, $f10 +/* 0C7BBC 7F09308C 3C018000 */ lui $at, 0x8000 +/* 0C7BC0 7F093090 10000007 */ b .L7F0930B0 +/* 0C7BC4 7F093094 01E17825 */ or $t7, $t7, $at +.L7F093098: +/* 0C7BC8 7F093098 10000005 */ b .L7F0930B0 +/* 0C7BCC 7F09309C 240FFFFF */ li $t7, -1 +/* 0C7BD0 7F0930A0 440F5000 */ mfc1 $t7, $f10 +.L7F0930A4: +/* 0C7BD4 7F0930A4 00000000 */ nop +/* 0C7BD8 7F0930A8 05E0FFFB */ bltz $t7, .L7F093098 +/* 0C7BDC 7F0930AC 00000000 */ nop +.L7F0930B0: +/* 0C7BE0 7F0930B0 44CEF800 */ ctc1 $t6, $31 +/* 0C7BE4 7F0930B4 94490012 */ lhu $t1, 0x12($v0) +/* 0C7BE8 7F0930B8 8C440018 */ lw $a0, 0x18($v0) +/* 0C7BEC 7F0930BC 4600718D */ trunc.w.s $f6, $f14 +/* 0C7BF0 7F0930C0 31F90FFF */ andi $t9, $t7, 0xfff +/* 0C7BF4 7F0930C4 312AF000 */ andi $t2, $t1, 0xf000 +/* 0C7BF8 7F0930C8 032A5825 */ or $t3, $t9, $t2 +/* 0C7BFC 7F0930CC 440D3000 */ mfc1 $t5, $f6 +/* 0C7C00 7F0930D0 00044B02 */ srl $t1, $a0, 0xc +/* 0C7C04 7F0930D4 4600120D */ trunc.w.s $f8, $f2 +/* 0C7C08 7F0930D8 25AE005A */ addiu $t6, $t5, 0x5a +/* 0C7C0C 7F0930DC 31D800FF */ andi $t8, $t6, 0xff +/* 0C7C10 7F0930E0 0309C826 */ xor $t9, $t8, $t1 +/* 0C7C14 7F0930E4 A44B0012 */ sh $t3, 0x12($v0) +/* 0C7C18 7F0930E8 00195500 */ sll $t2, $t9, 0x14 +/* 0C7C1C 7F0930EC 000A5A02 */ srl $t3, $t2, 8 +/* 0C7C20 7F0930F0 01646026 */ xor $t4, $t3, $a0 +/* 0C7C24 7F0930F4 440E4000 */ mfc1 $t6, $f8 +/* 0C7C28 7F0930F8 AC4C0018 */ sw $t4, 0x18($v0) +/* 0C7C2C 7F0930FC 944A001A */ lhu $t2, 0x1a($v0) +/* 0C7C30 7F093100 25C90096 */ addiu $t1, $t6, 0x96 +/* 0C7C34 7F093104 313900FF */ andi $t9, $t1, 0xff +/* 0C7C38 7F093108 314BF000 */ andi $t3, $t2, 0xf000 +/* 0C7C3C 7F09310C 032B6025 */ or $t4, $t9, $t3 +/* 0C7C40 7F093110 0FC15FAB */ jal sinf +/* 0C7C44 7F093114 A44C001A */ sh $t4, 0x1a($v0) +/* 0C7C48 7F093118 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C7C4C 7F09311C 44812000 */ mtc1 $at, $f4 +/* 0C7C50 7F093120 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C7C54 7F093124 44813000 */ mtc1 $at, $f6 +/* 0C7C58 7F093128 46040282 */ mul.s $f10, $f0, $f4 +/* 0C7C5C 7F09312C 240E0001 */ li $t6, 1 +/* 0C7C60 7F093130 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7C64 7F093134 3C038004 */ lui $v1, %hi(MipMap2C_Something2_Setup) +/* 0C7C68 7F093138 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E88) +/* 0C7C6C 7F09313C 3C078008 */ lui $a3, %hi(flt_CODE_bss_80079E84) +/* 0C7C70 7F093140 3C088008 */ lui $t0, %hi(flt_CODE_bss_80079E80) +/* 0C7C74 7F093144 46065200 */ add.s $f8, $f10, $f6 +/* 0C7C78 7F093148 25089E80 */ addiu $t0, %lo(flt_CODE_bss_80079E80) # addiu $t0, $t0, -0x6180 +/* 0C7C7C 7F09314C 24E79E84 */ addiu $a3, %lo(flt_CODE_bss_80079E84) # addiu $a3, $a3, -0x617c +/* 0C7C80 7F093150 24C69E88 */ addiu $a2, %lo(flt_CODE_bss_80079E88) # addiu $a2, $a2, -0x6178 +/* 0C7C84 7F093154 444DF800 */ cfc1 $t5, $31 +/* 0C7C88 7F093158 44CEF800 */ ctc1 $t6, $31 +/* 0C7C8C 7F09315C 2463FD28 */ addiu $v1, %lo(MipMap2C_Something2_Setup) # addiu $v1, $v1, -0x2d8 +/* 0C7C90 7F093160 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7C94 7F093164 46004124 */ cvt.w.s $f4, $f8 +/* 0C7C98 7F093168 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7C9C 7F09316C 444EF800 */ cfc1 $t6, $31 +/* 0C7CA0 7F093170 00000000 */ nop +/* 0C7CA4 7F093174 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C7CA8 7F093178 51C00013 */ beql $t6, $zero, .L7F0931C8 +/* 0C7CAC 7F09317C 440E2000 */ mfc1 $t6, $f4 +/* 0C7CB0 7F093180 44812000 */ mtc1 $at, $f4 +/* 0C7CB4 7F093184 240E0001 */ li $t6, 1 +/* 0C7CB8 7F093188 46044101 */ sub.s $f4, $f8, $f4 +/* 0C7CBC 7F09318C 44CEF800 */ ctc1 $t6, $31 +/* 0C7CC0 7F093190 00000000 */ nop +/* 0C7CC4 7F093194 46002124 */ cvt.w.s $f4, $f4 +/* 0C7CC8 7F093198 444EF800 */ cfc1 $t6, $31 +/* 0C7CCC 7F09319C 00000000 */ nop +/* 0C7CD0 7F0931A0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C7CD4 7F0931A4 15C00005 */ bnez $t6, .L7F0931BC +/* 0C7CD8 7F0931A8 00000000 */ nop +/* 0C7CDC 7F0931AC 440E2000 */ mfc1 $t6, $f4 +/* 0C7CE0 7F0931B0 3C018000 */ lui $at, 0x8000 +/* 0C7CE4 7F0931B4 10000007 */ b .L7F0931D4 +/* 0C7CE8 7F0931B8 01C17025 */ or $t6, $t6, $at +.L7F0931BC: +/* 0C7CEC 7F0931BC 10000005 */ b .L7F0931D4 +/* 0C7CF0 7F0931C0 240EFFFF */ li $t6, -1 +/* 0C7CF4 7F0931C4 440E2000 */ mfc1 $t6, $f4 +.L7F0931C8: +/* 0C7CF8 7F0931C8 00000000 */ nop +/* 0C7CFC 7F0931CC 05C0FFFB */ bltz $t6, .L7F0931BC +/* 0C7D00 7F0931D0 00000000 */ nop +.L7F0931D4: +/* 0C7D04 7F0931D4 44CDF800 */ ctc1 $t5, $31 +/* 0C7D08 7F0931D8 24190001 */ li $t9, 1 +/* 0C7D0C 7F0931DC C50E0000 */ lwc1 $f14, ($t0) +/* 0C7D10 7F0931E0 8C4F0020 */ lw $t7, 0x20($v0) +/* 0C7D14 7F0931E4 444AF800 */ cfc1 $t2, $31 +/* 0C7D18 7F0931E8 44D9F800 */ ctc1 $t9, $31 +/* 0C7D1C 7F0931EC 2401FF00 */ li $at, -256 +/* 0C7D20 7F0931F0 01E1C024 */ and $t8, $t7, $at +/* 0C7D24 7F0931F4 460072A4 */ cvt.w.s $f10, $f14 +/* 0C7D28 7F0931F8 01D84825 */ or $t1, $t6, $t8 +/* 0C7D2C 7F0931FC AC490020 */ sw $t1, 0x20($v0) +/* 0C7D30 7F093200 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7D34 7F093204 4459F800 */ cfc1 $t9, $31 +/* 0C7D38 7F093208 8C640010 */ lw $a0, 0x10($v1) +/* 0C7D3C 7F09320C 33390078 */ andi $t9, $t9, 0x78 +/* 0C7D40 7F093210 53200013 */ beql $t9, $zero, .L7F093260 +/* 0C7D44 7F093214 44195000 */ mfc1 $t9, $f10 +/* 0C7D48 7F093218 44815000 */ mtc1 $at, $f10 +/* 0C7D4C 7F09321C 24190001 */ li $t9, 1 +/* 0C7D50 7F093220 460A7281 */ sub.s $f10, $f14, $f10 +/* 0C7D54 7F093224 44D9F800 */ ctc1 $t9, $31 +/* 0C7D58 7F093228 00000000 */ nop +/* 0C7D5C 7F09322C 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7D60 7F093230 4459F800 */ cfc1 $t9, $31 +/* 0C7D64 7F093234 00000000 */ nop +/* 0C7D68 7F093238 33390078 */ andi $t9, $t9, 0x78 +/* 0C7D6C 7F09323C 17200005 */ bnez $t9, .L7F093254 +/* 0C7D70 7F093240 00000000 */ nop +/* 0C7D74 7F093244 44195000 */ mfc1 $t9, $f10 +/* 0C7D78 7F093248 3C018000 */ lui $at, 0x8000 +/* 0C7D7C 7F09324C 10000007 */ b .L7F09326C +/* 0C7D80 7F093250 0321C825 */ or $t9, $t9, $at +.L7F093254: +/* 0C7D84 7F093254 10000005 */ b .L7F09326C +/* 0C7D88 7F093258 2419FFFF */ li $t9, -1 +/* 0C7D8C 7F09325C 44195000 */ mfc1 $t9, $f10 +.L7F093260: +/* 0C7D90 7F093260 00000000 */ nop +/* 0C7D94 7F093264 0720FFFB */ bltz $t9, .L7F093254 +/* 0C7D98 7F093268 00000000 */ nop +.L7F09326C: +/* 0C7D9C 7F09326C 44CAF800 */ ctc1 $t2, $31 +/* 0C7DA0 7F093270 240A0001 */ li $t2, 1 +/* 0C7DA4 7F093274 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7DA8 7F093278 00046302 */ srl $t4, $a0, 0xc +/* 0C7DAC 7F09327C 4449F800 */ cfc1 $t1, $31 +/* 0C7DB0 7F093280 44CAF800 */ ctc1 $t2, $31 +/* 0C7DB4 7F093284 032C6826 */ xor $t5, $t9, $t4 +/* 0C7DB8 7F093288 000D7D00 */ sll $t7, $t5, 0x14 +/* 0C7DBC 7F09328C 460011A4 */ cvt.w.s $f6, $f2 +/* 0C7DC0 7F093290 000F7202 */ srl $t6, $t7, 8 +/* 0C7DC4 7F093294 01C4C026 */ xor $t8, $t6, $a0 +/* 0C7DC8 7F093298 AC780010 */ sw $t8, 0x10($v1) +/* 0C7DCC 7F09329C 444AF800 */ cfc1 $t2, $31 +/* 0C7DD0 7F0932A0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7DD4 7F0932A4 314A0078 */ andi $t2, $t2, 0x78 +/* 0C7DD8 7F0932A8 51400013 */ beql $t2, $zero, .L7F0932F8 +/* 0C7DDC 7F0932AC 440A3000 */ mfc1 $t2, $f6 +/* 0C7DE0 7F0932B0 44813000 */ mtc1 $at, $f6 +/* 0C7DE4 7F0932B4 240A0001 */ li $t2, 1 +/* 0C7DE8 7F0932B8 46061181 */ sub.s $f6, $f2, $f6 +/* 0C7DEC 7F0932BC 44CAF800 */ ctc1 $t2, $31 +/* 0C7DF0 7F0932C0 00000000 */ nop +/* 0C7DF4 7F0932C4 460031A4 */ cvt.w.s $f6, $f6 +/* 0C7DF8 7F0932C8 444AF800 */ cfc1 $t2, $31 +/* 0C7DFC 7F0932CC 00000000 */ nop +/* 0C7E00 7F0932D0 314A0078 */ andi $t2, $t2, 0x78 +/* 0C7E04 7F0932D4 15400005 */ bnez $t2, .L7F0932EC +/* 0C7E08 7F0932D8 00000000 */ nop +/* 0C7E0C 7F0932DC 440A3000 */ mfc1 $t2, $f6 +/* 0C7E10 7F0932E0 3C018000 */ lui $at, 0x8000 +/* 0C7E14 7F0932E4 10000007 */ b .L7F093304 +/* 0C7E18 7F0932E8 01415025 */ or $t2, $t2, $at +.L7F0932EC: +/* 0C7E1C 7F0932EC 10000005 */ b .L7F093304 +/* 0C7E20 7F0932F0 240AFFFF */ li $t2, -1 +/* 0C7E24 7F0932F4 440A3000 */ mfc1 $t2, $f6 +.L7F0932F8: +/* 0C7E28 7F0932F8 00000000 */ nop +/* 0C7E2C 7F0932FC 0540FFFB */ bltz $t2, .L7F0932EC +/* 0C7E30 7F093300 00000000 */ nop +.L7F093304: +/* 0C7E34 7F093304 44C9F800 */ ctc1 $t1, $31 +/* 0C7E38 7F093308 946C0012 */ lhu $t4, 0x12($v1) +/* 0C7E3C 7F09330C 8C650018 */ lw $a1, 0x18($v1) +/* 0C7E40 7F093310 4600720D */ trunc.w.s $f8, $f14 +/* 0C7E44 7F093314 314B0FFF */ andi $t3, $t2, 0xfff +/* 0C7E48 7F093318 318DF000 */ andi $t5, $t4, 0xf000 +/* 0C7E4C 7F09331C 016D7825 */ or $t7, $t3, $t5 +/* 0C7E50 7F093320 44184000 */ mfc1 $t8, $f8 +/* 0C7E54 7F093324 00056302 */ srl $t4, $a1, 0xc +/* 0C7E58 7F093328 4600110D */ trunc.w.s $f4, $f2 +/* 0C7E5C 7F09332C 2709005A */ addiu $t1, $t8, 0x5a +/* 0C7E60 7F093330 313900FF */ andi $t9, $t1, 0xff +/* 0C7E64 7F093334 032C5826 */ xor $t3, $t9, $t4 +/* 0C7E68 7F093338 A46F0012 */ sh $t7, 0x12($v1) +/* 0C7E6C 7F09333C 000B6D00 */ sll $t5, $t3, 0x14 +/* 0C7E70 7F093340 000D7A02 */ srl $t7, $t5, 8 +/* 0C7E74 7F093344 01E57026 */ xor $t6, $t7, $a1 +/* 0C7E78 7F093348 44092000 */ mfc1 $t1, $f4 +/* 0C7E7C 7F09334C AC6E0018 */ sw $t6, 0x18($v1) +/* 0C7E80 7F093350 946D001A */ lhu $t5, 0x1a($v1) +/* 0C7E84 7F093354 252C0096 */ addiu $t4, $t1, 0x96 +/* 0C7E88 7F093358 318B00FF */ andi $t3, $t4, 0xff +/* 0C7E8C 7F09335C 31AFF000 */ andi $t7, $t5, 0xf000 +/* 0C7E90 7F093360 016F7025 */ or $t6, $t3, $t7 +/* 0C7E94 7F093364 A46E001A */ sh $t6, 0x1a($v1) +/* 0C7E98 7F093368 0FC15FAB */ jal sinf +/* 0C7E9C 7F09336C C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7EA0 7F093370 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C7EA4 7F093374 44815000 */ mtc1 $at, $f10 +/* 0C7EA8 7F093378 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C7EAC 7F09337C 44814000 */ mtc1 $at, $f8 +/* 0C7EB0 7F093380 460A0182 */ mul.s $f6, $f0, $f10 +/* 0C7EB4 7F093384 24090001 */ li $t1, 1 +/* 0C7EB8 7F093388 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7EBC 7F09338C 3C038004 */ lui $v1, %hi(MipMap2C_Something2_Setup) +/* 0C7EC0 7F093390 2463FD28 */ addiu $v1, %lo(MipMap2C_Something2_Setup) # addiu $v1, $v1, -0x2d8 +/* 0C7EC4 7F093394 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7EC8 7F093398 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7ECC 7F09339C 46083100 */ add.s $f4, $f6, $f8 +/* 0C7ED0 7F0933A0 4458F800 */ cfc1 $t8, $31 +/* 0C7ED4 7F0933A4 44C9F800 */ ctc1 $t1, $31 +/* 0C7ED8 7F0933A8 00000000 */ nop +/* 0C7EDC 7F0933AC 460022A4 */ cvt.w.s $f10, $f4 +/* 0C7EE0 7F0933B0 4449F800 */ cfc1 $t1, $31 +/* 0C7EE4 7F0933B4 00000000 */ nop +/* 0C7EE8 7F0933B8 31290078 */ andi $t1, $t1, 0x78 +/* 0C7EEC 7F0933BC 51200013 */ beql $t1, $zero, .L7F09340C +/* 0C7EF0 7F0933C0 44095000 */ mfc1 $t1, $f10 +/* 0C7EF4 7F0933C4 44815000 */ mtc1 $at, $f10 +/* 0C7EF8 7F0933C8 24090001 */ li $t1, 1 +/* 0C7EFC 7F0933CC 460A2281 */ sub.s $f10, $f4, $f10 +/* 0C7F00 7F0933D0 44C9F800 */ ctc1 $t1, $31 +/* 0C7F04 7F0933D4 00000000 */ nop +/* 0C7F08 7F0933D8 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7F0C 7F0933DC 4449F800 */ cfc1 $t1, $31 +/* 0C7F10 7F0933E0 00000000 */ nop +/* 0C7F14 7F0933E4 31290078 */ andi $t1, $t1, 0x78 +/* 0C7F18 7F0933E8 15200005 */ bnez $t1, .L7F093400 +/* 0C7F1C 7F0933EC 00000000 */ nop +/* 0C7F20 7F0933F0 44095000 */ mfc1 $t1, $f10 +/* 0C7F24 7F0933F4 3C018000 */ lui $at, 0x8000 +/* 0C7F28 7F0933F8 10000007 */ b .L7F093418 +/* 0C7F2C 7F0933FC 01214825 */ or $t1, $t1, $at +.L7F093400: +/* 0C7F30 7F093400 10000005 */ b .L7F093418 +/* 0C7F34 7F093404 2409FFFF */ li $t1, -1 +/* 0C7F38 7F093408 44095000 */ mfc1 $t1, $f10 +.L7F09340C: +/* 0C7F3C 7F09340C 00000000 */ nop +/* 0C7F40 7F093410 0520FFFB */ bltz $t1, .L7F093400 +/* 0C7F44 7F093414 00000000 */ nop +.L7F093418: +/* 0C7F48 7F093418 8C4A0020 */ lw $t2, 0x20($v0) +/* 0C7F4C 7F09341C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7F50 7F093420 2401FF00 */ li $at, -256 +/* 0C7F54 7F093424 0141C824 */ and $t9, $t2, $at +/* 0C7F58 7F093428 01396025 */ or $t4, $t1, $t9 +/* 0C7F5C 7F09342C 44D8F800 */ ctc1 $t8, $31 +/* 0C7F60 7F093430 AC6C0020 */ sw $t4, 0x20($v1) +/* 0C7F64 7F093434 03E00008 */ jr $ra +/* 0C7F68 7F093438 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09343C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09343C +/* 0C7F6C 7F09343C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7F70 7F093440 10A00009 */ beqz $a1, .L7F093468 +/* 0C7F74 7F093444 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C7F78 7F093448 00801025 */ move $v0, $a0 +/* 0C7F7C 7F09344C 3C0F8004 */ lui $t7, %hi(MipMap2C_Something_Setup) +/* 0C7F80 7F093450 25EFFCC0 */ addiu $t7, %lo(MipMap2C_Something_Setup) # addiu $t7, $t7, -0x340 +/* 0C7F84 7F093454 3C0E0600 */ lui $t6, 0x600 +/* 0C7F88 7F093458 AC4E0000 */ sw $t6, ($v0) +/* 0C7F8C 7F09345C AC4F0004 */ sw $t7, 4($v0) +/* 0C7F90 7F093460 10000079 */ b .L7F093648 +/* 0C7F94 7F093464 24840008 */ addiu $a0, $a0, 8 +.L7F093468: +/* 0C7F98 7F093468 3C08F510 */ lui $t0, %hi(0xF5100004) # $t0, 0xf510 +/* 0C7F9C 7F09346C 00801025 */ move $v0, $a0 +/* 0C7FA0 7F093470 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 0C7FA4 7F093474 35080800 */ ori $t0, (0xF5100800 & 0xFFFF) # ori $t0, $t0, 0x800 +/* 0C7FA8 7F093478 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 0C7FAC 7F09347C 24830008 */ addiu $v1, $a0, 8 +/* 0C7FB0 7F093480 AC580004 */ sw $t8, 4($v0) +/* 0C7FB4 7F093484 AC480000 */ sw $t0, ($v0) +/* 0C7FB8 7F093488 3C190101 */ lui $t9, (0x01014050 >> 16) # lui $t9, 0x101 +/* 0C7FBC 7F09348C 37394050 */ ori $t9, (0x01014050 & 0xFFFF) # ori $t9, $t9, 0x4050 +/* 0C7FC0 7F093490 24650008 */ addiu $a1, $v1, 8 +/* 0C7FC4 7F093494 AC790004 */ sw $t9, 4($v1) +/* 0C7FC8 7F093498 AC680000 */ sw $t0, ($v1) +/* 0C7FCC 7F09349C 24A60008 */ addiu $a2, $a1, 8 +/* 0C7FD0 7F0934A0 3C0AF200 */ lui $t2, 0xf200 +/* 0C7FD4 7F0934A4 ACAA0000 */ sw $t2, ($a1) +/* 0C7FD8 7F0934A8 ACA00004 */ sw $zero, 4($a1) +/* 0C7FDC 7F0934AC 3C0BF205 */ lui $t3, (0xF205A096 >> 16) # lui $t3, 0xf205 +/* 0C7FE0 7F0934B0 356BA096 */ ori $t3, (0xF205A096 & 0xFFFF) # ori $t3, $t3, 0xa096 +/* 0C7FE4 7F0934B4 3C0C0100 */ lui $t4, 0x100 +/* 0C7FE8 7F0934B8 ACCC0004 */ sw $t4, 4($a2) +/* 0C7FEC 7F0934BC ACCB0000 */ sw $t3, ($a2) +/* 0C7FF0 7F0934C0 24C70008 */ addiu $a3, $a2, 8 +/* 0C7FF4 7F0934C4 24E40008 */ addiu $a0, $a3, 8 +/* 0C7FF8 7F0934C8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E88) +/* 0C7FFC 7F0934CC C42C9E88 */ lwc1 $f12, %lo(flt_CODE_bss_80079E88)($at) +/* 0C8000 7F0934D0 AFA40030 */ sw $a0, 0x30($sp) +/* 0C8004 7F0934D4 0FC15FAB */ jal sinf +/* 0C8008 7F0934D8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C800C 7F0934DC 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C8010 7F0934E0 44812000 */ mtc1 $at, $f4 +/* 0C8014 7F0934E4 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C8018 7F0934E8 44814000 */ mtc1 $at, $f8 +/* 0C801C 7F0934EC 46040182 */ mul.s $f6, $f0, $f4 +/* 0C8020 7F0934F0 240E0001 */ li $t6, 1 +/* 0C8024 7F0934F4 8FA40030 */ lw $a0, 0x30($sp) +/* 0C8028 7F0934F8 3C0ABA00 */ lui $t2, (0xBA001102 >> 16) # lui $t2, 0xba00 +/* 0C802C 7F0934FC 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 0C8030 7F093500 00801025 */ move $v0, $a0 +/* 0C8034 7F093504 24840008 */ addiu $a0, $a0, 8 +/* 0C8038 7F093508 46083280 */ add.s $f10, $f6, $f8 +/* 0C803C 7F09350C 00801825 */ move $v1, $a0 +/* 0C8040 7F093510 24840008 */ addiu $a0, $a0, 8 +/* 0C8044 7F093514 00802825 */ move $a1, $a0 +/* 0C8048 7F093518 444DF800 */ cfc1 $t5, $31 +/* 0C804C 7F09351C 44CEF800 */ ctc1 $t6, $31 +/* 0C8050 7F093520 3C0CFC27 */ lui $t4, (0xFC272C04 >> 16) # lui $t4, 0xfc27 +/* 0C8054 7F093524 8FA70018 */ lw $a3, 0x18($sp) +/* 0C8058 7F093528 46005424 */ cvt.w.s $f16, $f10 +/* 0C805C 7F09352C 24092000 */ li $t1, 8192 +/* 0C8060 7F093530 2419FFFF */ li $t9, -1 +/* 0C8064 7F093534 354A1102 */ ori $t2, (0xBA001102 & 0xFFFF) # ori $t2, $t2, 0x1102 +/* 0C8068 7F093538 444EF800 */ cfc1 $t6, $31 +/* 0C806C 7F09353C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 0C8070 7F093540 358C2C04 */ ori $t4, (0xFC272C04 & 0xFFFF) # ori $t4, $t4, 0x2c04 +/* 0C8074 7F093544 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8078 7F093548 11C00013 */ beqz $t6, .L7F093598 +/* 0C807C 7F09354C 24840008 */ addiu $a0, $a0, 8 +/* 0C8080 7F093550 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8084 7F093554 44818000 */ mtc1 $at, $f16 +/* 0C8088 7F093558 240E0001 */ li $t6, 1 +/* 0C808C 7F09355C 46105401 */ sub.s $f16, $f10, $f16 +/* 0C8090 7F093560 44CEF800 */ ctc1 $t6, $31 +/* 0C8094 7F093564 00000000 */ nop +/* 0C8098 7F093568 46008424 */ cvt.w.s $f16, $f16 +/* 0C809C 7F09356C 444EF800 */ cfc1 $t6, $31 +/* 0C80A0 7F093570 00000000 */ nop +/* 0C80A4 7F093574 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C80A8 7F093578 15C00005 */ bnez $t6, .L7F093590 +/* 0C80AC 7F09357C 00000000 */ nop +/* 0C80B0 7F093580 440E8000 */ mfc1 $t6, $f16 +/* 0C80B4 7F093584 3C018000 */ lui $at, 0x8000 +/* 0C80B8 7F093588 10000007 */ b .L7F0935A8 +/* 0C80BC 7F09358C 01C17025 */ or $t6, $t6, $at +.L7F093590: +/* 0C80C0 7F093590 10000005 */ b .L7F0935A8 +/* 0C80C4 7F093594 240EFFFF */ li $t6, -1 +.L7F093598: +/* 0C80C8 7F093598 440E8000 */ mfc1 $t6, $f16 +/* 0C80CC 7F09359C 00000000 */ nop +/* 0C80D0 7F0935A0 05C0FFFB */ bltz $t6, .L7F093590 +/* 0C80D4 7F0935A4 00000000 */ nop +.L7F0935A8: +/* 0C80D8 7F0935A8 31CF00FF */ andi $t7, $t6, 0xff +/* 0C80DC 7F0935AC 3C01FA00 */ lui $at, 0xfa00 +/* 0C80E0 7F0935B0 01E1C025 */ or $t8, $t7, $at +/* 0C80E4 7F0935B4 ACF80000 */ sw $t8, ($a3) +/* 0C80E8 7F0935B8 ACF90004 */ sw $t9, 4($a3) +/* 0C80EC 7F0935BC AC400004 */ sw $zero, 4($v0) +/* 0C80F0 7F0935C0 AC4A0000 */ sw $t2, ($v0) +/* 0C80F4 7F0935C4 44CDF800 */ ctc1 $t5, $31 +/* 0C80F8 7F0935C8 AC690004 */ sw $t1, 4($v1) +/* 0C80FC 7F0935CC AC6B0000 */ sw $t3, ($v1) +/* 0C8100 7F0935D0 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 +/* 0C8104 7F0935D4 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff +/* 0C8108 7F0935D8 00803025 */ move $a2, $a0 +/* 0C810C 7F0935DC ACAD0004 */ sw $t5, 4($a1) +/* 0C8110 7F0935E0 ACAC0000 */ sw $t4, ($a1) +/* 0C8114 7F0935E4 24840008 */ addiu $a0, $a0, 8 +/* 0C8118 7F0935E8 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 +/* 0C811C 7F0935EC 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0C8120 7F0935F0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0C8124 7F0935F4 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0C8128 7F0935F8 00804025 */ move $t0, $a0 +/* 0C812C 7F0935FC ACCF0004 */ sw $t7, 4($a2) +/* 0C8130 7F093600 ACCE0000 */ sw $t6, ($a2) +/* 0C8134 7F093604 24840008 */ addiu $a0, $a0, 8 +/* 0C8138 7F093608 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 0C813C 7F09360C 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 0C8140 7F093610 00801025 */ move $v0, $a0 +/* 0C8144 7F093614 AD180000 */ sw $t8, ($t0) +/* 0C8148 7F093618 AD000004 */ sw $zero, %lo(0xF5100004)($t0) +/* 0C814C 7F09361C 24840008 */ addiu $a0, $a0, 8 +/* 0C8150 7F093620 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0C8154 7F093624 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0C8158 7F093628 3C0A0010 */ lui $t2, 0x10 +/* 0C815C 7F09362C 00801825 */ move $v1, $a0 +/* 0C8160 7F093630 AC4A0004 */ sw $t2, 4($v0) +/* 0C8164 7F093634 AC590000 */ sw $t9, ($v0) +/* 0C8168 7F093638 3C0BB700 */ lui $t3, 0xb700 +/* 0C816C 7F09363C AC6B0000 */ sw $t3, ($v1) +/* 0C8170 7F093640 AC690004 */ sw $t1, 4($v1) +/* 0C8174 7F093644 24840008 */ addiu $a0, $a0, 8 +.L7F093648: +/* 0C8178 7F093648 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C817C 7F09364C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C8180 7F093650 00801025 */ move $v0, $a0 +/* 0C8184 7F093654 03E00008 */ jr $ra +/* 0C8188 7F093658 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09365C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09365C +/* 0C818C 7F09365C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C8190 7F093660 10A00009 */ beqz $a1, .L7F093688 +/* 0C8194 7F093664 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C8198 7F093668 00801025 */ move $v0, $a0 +/* 0C819C 7F09366C 3C0F8004 */ lui $t7, %hi(MipMap2C_Something2_Setup) +/* 0C81A0 7F093670 25EFFD28 */ addiu $t7, %lo(MipMap2C_Something2_Setup) # addiu $t7, $t7, -0x2d8 +/* 0C81A4 7F093674 3C0E0600 */ lui $t6, 0x600 +/* 0C81A8 7F093678 AC4E0000 */ sw $t6, ($v0) +/* 0C81AC 7F09367C AC4F0004 */ sw $t7, 4($v0) +/* 0C81B0 7F093680 10000079 */ b .L7F093868 +/* 0C81B4 7F093684 24840008 */ addiu $a0, $a0, 8 +.L7F093688: +/* 0C81B8 7F093688 3C08F548 */ lui $t0, %hi(0xF5480004) # $t0, 0xf548 +/* 0C81BC 7F09368C 00801025 */ move $v0, $a0 +/* 0C81C0 7F093690 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 0C81C4 7F093694 35080400 */ ori $t0, (0xF5480400 & 0xFFFF) # ori $t0, $t0, 0x400 +/* 0C81C8 7F093698 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 0C81CC 7F09369C 24830008 */ addiu $v1, $a0, 8 +/* 0C81D0 7F0936A0 AC580004 */ sw $t8, 4($v0) +/* 0C81D4 7F0936A4 AC480000 */ sw $t0, ($v0) +/* 0C81D8 7F0936A8 3C190101 */ lui $t9, (0x01014050 >> 16) # lui $t9, 0x101 +/* 0C81DC 7F0936AC 37394050 */ ori $t9, (0x01014050 & 0xFFFF) # ori $t9, $t9, 0x4050 +/* 0C81E0 7F0936B0 24650008 */ addiu $a1, $v1, 8 +/* 0C81E4 7F0936B4 AC790004 */ sw $t9, 4($v1) +/* 0C81E8 7F0936B8 AC680000 */ sw $t0, ($v1) +/* 0C81EC 7F0936BC 24A60008 */ addiu $a2, $a1, 8 +/* 0C81F0 7F0936C0 3C0AF200 */ lui $t2, 0xf200 +/* 0C81F4 7F0936C4 ACAA0000 */ sw $t2, ($a1) +/* 0C81F8 7F0936C8 ACA00004 */ sw $zero, 4($a1) +/* 0C81FC 7F0936CC 3C0BF205 */ lui $t3, (0xF205A096 >> 16) # lui $t3, 0xf205 +/* 0C8200 7F0936D0 356BA096 */ ori $t3, (0xF205A096 & 0xFFFF) # ori $t3, $t3, 0xa096 +/* 0C8204 7F0936D4 3C0C0100 */ lui $t4, 0x100 +/* 0C8208 7F0936D8 ACCC0004 */ sw $t4, 4($a2) +/* 0C820C 7F0936DC ACCB0000 */ sw $t3, ($a2) +/* 0C8210 7F0936E0 24C70008 */ addiu $a3, $a2, 8 +/* 0C8214 7F0936E4 24E40008 */ addiu $a0, $a3, 8 +/* 0C8218 7F0936E8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E88) +/* 0C821C 7F0936EC C42C9E88 */ lwc1 $f12, %lo(flt_CODE_bss_80079E88)($at) +/* 0C8220 7F0936F0 AFA40030 */ sw $a0, 0x30($sp) +/* 0C8224 7F0936F4 0FC15FAB */ jal sinf +/* 0C8228 7F0936F8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C822C 7F0936FC 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C8230 7F093700 44812000 */ mtc1 $at, $f4 +/* 0C8234 7F093704 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C8238 7F093708 44814000 */ mtc1 $at, $f8 +/* 0C823C 7F09370C 46040182 */ mul.s $f6, $f0, $f4 +/* 0C8240 7F093710 240E0001 */ li $t6, 1 +/* 0C8244 7F093714 8FA40030 */ lw $a0, 0x30($sp) +/* 0C8248 7F093718 3C0ABA00 */ lui $t2, (0xBA001102 >> 16) # lui $t2, 0xba00 +/* 0C824C 7F09371C 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 0C8250 7F093720 00801025 */ move $v0, $a0 +/* 0C8254 7F093724 24840008 */ addiu $a0, $a0, 8 +/* 0C8258 7F093728 46083280 */ add.s $f10, $f6, $f8 +/* 0C825C 7F09372C 00801825 */ move $v1, $a0 +/* 0C8260 7F093730 24840008 */ addiu $a0, $a0, 8 +/* 0C8264 7F093734 00802825 */ move $a1, $a0 +/* 0C8268 7F093738 444DF800 */ cfc1 $t5, $31 +/* 0C826C 7F09373C 44CEF800 */ ctc1 $t6, $31 +/* 0C8270 7F093740 3C0CFC27 */ lui $t4, (0xFC272C04 >> 16) # lui $t4, 0xfc27 +/* 0C8274 7F093744 8FA70018 */ lw $a3, 0x18($sp) +/* 0C8278 7F093748 46005424 */ cvt.w.s $f16, $f10 +/* 0C827C 7F09374C 24092000 */ li $t1, 8192 +/* 0C8280 7F093750 2419FFFF */ li $t9, -1 +/* 0C8284 7F093754 354A1102 */ ori $t2, (0xBA001102 & 0xFFFF) # ori $t2, $t2, 0x1102 +/* 0C8288 7F093758 444EF800 */ cfc1 $t6, $31 +/* 0C828C 7F09375C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 0C8290 7F093760 358C2C04 */ ori $t4, (0xFC272C04 & 0xFFFF) # ori $t4, $t4, 0x2c04 +/* 0C8294 7F093764 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8298 7F093768 11C00013 */ beqz $t6, .L7F0937B8 +/* 0C829C 7F09376C 24840008 */ addiu $a0, $a0, 8 +/* 0C82A0 7F093770 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C82A4 7F093774 44818000 */ mtc1 $at, $f16 +/* 0C82A8 7F093778 240E0001 */ li $t6, 1 +/* 0C82AC 7F09377C 46105401 */ sub.s $f16, $f10, $f16 +/* 0C82B0 7F093780 44CEF800 */ ctc1 $t6, $31 +/* 0C82B4 7F093784 00000000 */ nop +/* 0C82B8 7F093788 46008424 */ cvt.w.s $f16, $f16 +/* 0C82BC 7F09378C 444EF800 */ cfc1 $t6, $31 +/* 0C82C0 7F093790 00000000 */ nop +/* 0C82C4 7F093794 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C82C8 7F093798 15C00005 */ bnez $t6, .L7F0937B0 +/* 0C82CC 7F09379C 00000000 */ nop +/* 0C82D0 7F0937A0 440E8000 */ mfc1 $t6, $f16 +/* 0C82D4 7F0937A4 3C018000 */ lui $at, 0x8000 +/* 0C82D8 7F0937A8 10000007 */ b .L7F0937C8 +/* 0C82DC 7F0937AC 01C17025 */ or $t6, $t6, $at +.L7F0937B0: +/* 0C82E0 7F0937B0 10000005 */ b .L7F0937C8 +/* 0C82E4 7F0937B4 240EFFFF */ li $t6, -1 +.L7F0937B8: +/* 0C82E8 7F0937B8 440E8000 */ mfc1 $t6, $f16 +/* 0C82EC 7F0937BC 00000000 */ nop +/* 0C82F0 7F0937C0 05C0FFFB */ bltz $t6, .L7F0937B0 +/* 0C82F4 7F0937C4 00000000 */ nop +.L7F0937C8: +/* 0C82F8 7F0937C8 31CF00FF */ andi $t7, $t6, 0xff +/* 0C82FC 7F0937CC 3C01FA00 */ lui $at, 0xfa00 +/* 0C8300 7F0937D0 01E1C025 */ or $t8, $t7, $at +/* 0C8304 7F0937D4 ACF80000 */ sw $t8, ($a3) +/* 0C8308 7F0937D8 ACF90004 */ sw $t9, 4($a3) +/* 0C830C 7F0937DC AC400004 */ sw $zero, 4($v0) +/* 0C8310 7F0937E0 AC4A0000 */ sw $t2, ($v0) +/* 0C8314 7F0937E4 44CDF800 */ ctc1 $t5, $31 +/* 0C8318 7F0937E8 AC690004 */ sw $t1, 4($v1) +/* 0C831C 7F0937EC AC6B0000 */ sw $t3, ($v1) +/* 0C8320 7F0937F0 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 +/* 0C8324 7F0937F4 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff +/* 0C8328 7F0937F8 00803025 */ move $a2, $a0 +/* 0C832C 7F0937FC ACAD0004 */ sw $t5, 4($a1) +/* 0C8330 7F093800 ACAC0000 */ sw $t4, ($a1) +/* 0C8334 7F093804 24840008 */ addiu $a0, $a0, 8 +/* 0C8338 7F093808 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 +/* 0C833C 7F09380C 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0C8340 7F093810 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0C8344 7F093814 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0C8348 7F093818 00804025 */ move $t0, $a0 +/* 0C834C 7F09381C ACCF0004 */ sw $t7, 4($a2) +/* 0C8350 7F093820 ACCE0000 */ sw $t6, ($a2) +/* 0C8354 7F093824 24840008 */ addiu $a0, $a0, 8 +/* 0C8358 7F093828 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 0C835C 7F09382C 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 0C8360 7F093830 00801025 */ move $v0, $a0 +/* 0C8364 7F093834 AD180000 */ sw $t8, ($t0) +/* 0C8368 7F093838 AD000004 */ sw $zero, %lo(0xF5480004)($t0) +/* 0C836C 7F09383C 24840008 */ addiu $a0, $a0, 8 +/* 0C8370 7F093840 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0C8374 7F093844 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0C8378 7F093848 3C0A0010 */ lui $t2, 0x10 +/* 0C837C 7F09384C 00801825 */ move $v1, $a0 +/* 0C8380 7F093850 AC4A0004 */ sw $t2, 4($v0) +/* 0C8384 7F093854 AC590000 */ sw $t9, ($v0) +/* 0C8388 7F093858 3C0BB700 */ lui $t3, 0xb700 +/* 0C838C 7F09385C AC6B0000 */ sw $t3, ($v1) +/* 0C8390 7F093860 AC690004 */ sw $t1, 4($v1) +/* 0C8394 7F093864 24840008 */ addiu $a0, $a0, 8 +.L7F093868: +/* 0C8398 7F093868 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C839C 7F09386C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C83A0 7F093870 00801025 */ move $v0, $a0 +/* 0C83A4 7F093874 03E00008 */ jr $ra +/* 0C83A8 7F093878 00000000 */ nop +) +#endif + + diff --git a/src/game/unk_092E50.h b/src/game/unk_092E50.h new file mode 100644 index 0000000..67ab97f --- /dev/null +++ b/src/game/unk_092E50.h @@ -0,0 +1,12 @@ +#ifndef _UNK_092E50_H_ +#define _UNK_092E50_H_ +#include "ultra64.h" + + +extern f32 D_8003FD94[]; + +extern f32 flt_CODE_bss_80079E80; +extern f32 flt_CODE_bss_80079E84; +extern f32 flt_CODE_bss_80079E88; + +#endif diff --git a/src/game/unk_093880.c b/src/game/unk_093880.c new file mode 100644 index 0000000..73921c8 --- /dev/null +++ b/src/game/unk_093880.c @@ -0,0 +1,10432 @@ +#include "ultra64.h" +#include "game/unk_093880.h" +#include "game/unk_092E50.h" +#include "game/bond.h" +#include "game/lvl.h" + +// bss +s32 copyof_stagenum; +s32 dword_CODE_bss_80079E94; +char dword_CODE_bss_80079E98[0x48]; +u32 *ptr_BONDdata_p1; +u32 *ptr_BONDdata_p2; +u32 *ptr_BONDdata_p3; +u32 *ptr_BONDdata_p4; + +struct player_data player1_player_data; +struct player_data player2_player_data; +struct player_data player3_player_data; +struct player_data player4_player_data; + +struct Player *pPlayer; +struct player_data *pPlayersPerm; +s32 player_num; +s32 random_byte; +s32 dword_CODE_bss_8007A0C0; +s32 dword_CODE_bss_8007A0C4; +s32 dword_CODE_bss_8007A0C8; +s32 dword_CODE_bss_8007A0CC; + + + + +#ifdef NONMATCHING +void sub_GAME_7F093880(f32 arg0, f32 arg1, ? arg2) { + f32 sp18; + f32 sp1C; + f32 sp20; + s32 sp24; + + // Node 0 + sp24 = sub_GAME_7F078444(); + sp1C = (f32) (getPlayer_c_screenleft() + arg0); + sp18 = getPlayer_c_screentop(); + sp20 = (f32) (get_ptr_currentdata()->unk38 + (arg1 + sp18)); + sub_GAME_7F077EEC(&sp1C, arg2, 0x42c80000); + return matrix_4x4_rotate_vector_in_place(sp24, arg2); +} + +#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 sub_GAME_7F078444 +/* 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 get_ptr_currentdata +/* 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) { + 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; + + // Node 0 + temp_s1 = get_BONDdata_position(); + 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) + { + // Node 1 + phi_f12 = 1.0f; + } + // Node 2 + *arg2 = (f32) (1.0f - phi_f12); + if (0.0f == arg0->unk4) + { + // Node 3 + phi_f16 = D_80057524; + } + else + { + // Node 4 + phi_f16 = arg0->unk4; + } + // Node 5 + phi_return = 0.0f; + if (0.0f < phi_f16) + { + // Node 6 + sp24 = (f32) phi_f16; + temp_f2 = ((get_ptr_currentdata(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) + { + // Node 7 + phi_f2 = (temp_f2 * (D_80057528 / temp_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; + } + // Node 9 + return phi_return; +} +#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 get_BONDdata_position +/* 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 get_ptr_currentdata +/* 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) { + 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; + + // Node 0 + temp_s1 = get_BONDdata_position(); + 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) + { + // Node 1 + phi_f2 = 1.0f; + } + // Node 2 + *arg2 = (f32) (1.0f - phi_f2); + if (0.0f == arg0->unk4) + { + // Node 3 + phi_f16 = D_80057530; + } + else + { + // Node 4 + phi_f16 = arg0->unk4; + } + // Node 5 + phi_return = arg0->unk4; + if (phi_f16 < 0.0f) + { + // Node 6 + sp24 = (f32) phi_f16; + temp_f2 = ((get_ptr_currentdata(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 get_BONDdata_position +/* 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 get_ptr_currentdata +/* 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 + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F093BFC(void *arg0, void *arg1, void *arg2) { + f32 temp_f0; + + // Node 0 + arg2->unk4 = 0.0f; + temp_f0 = (arg0->unk4 / (arg0->unk4 - arg1->unk4)); + *arg2 = (f32) (((*arg1 - *arg0) * temp_f0) + *arg0); + arg2->unk8 = (f32) (((arg1->unk8 - arg0->unk8) * temp_f0) + arg0->unk8); + return temp_f0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F093BFC +/* 0C872C 7F093BFC C4820004 */ lwc1 $f2, 4($a0) +/* 0C8730 7F093C00 C4A40004 */ lwc1 $f4, 4($a1) +/* 0C8734 7F093C04 C48C0000 */ lwc1 $f12, ($a0) +/* 0C8738 7F093C08 C4A80000 */ lwc1 $f8, ($a1) +/* 0C873C 7F093C0C 46041181 */ sub.s $f6, $f2, $f4 +/* 0C8740 7F093C10 44802000 */ mtc1 $zero, $f4 +/* 0C8744 7F093C14 460C4281 */ sub.s $f10, $f8, $f12 +/* 0C8748 7F093C18 E4C40004 */ swc1 $f4, 4($a2) +/* 0C874C 7F093C1C 46061003 */ div.s $f0, $f2, $f6 +/* 0C8750 7F093C20 46005402 */ mul.s $f16, $f10, $f0 +/* 0C8754 7F093C24 460C8480 */ add.s $f18, $f16, $f12 +/* 0C8758 7F093C28 E4D20000 */ swc1 $f18, ($a2) +/* 0C875C 7F093C2C C4A60008 */ lwc1 $f6, 8($a1) +/* 0C8760 7F093C30 C48E0008 */ lwc1 $f14, 8($a0) +/* 0C8764 7F093C34 460E3201 */ sub.s $f8, $f6, $f14 +/* 0C8768 7F093C38 46004282 */ mul.s $f10, $f8, $f0 +/* 0C876C 7F093C3C 460E5400 */ add.s $f16, $f10, $f14 +/* 0C8770 7F093C40 03E00008 */ jr $ra +/* 0C8774 7F093C44 E4D00008 */ swc1 $f16, 8($a2) +) +#endif + + + + + + +f32 sub_GAME_7F093C48(f32 a, f32 b, f32 c) +{ + if (a < b) + { + return b; + } + if (c < a) + { + return c; + } + return a; +} + + + +f32 addpoint5tofloat(f32 arg0) { + return (f32) (s32) (arg0 + 0.5f); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F093CB0(void) { + +} +#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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F093FA4(void) { + +} +#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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F094298(void) { + +} +#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 sub_GAME_7F094438(void) +{ + D_8003FD94[0] = (clock_timer + D_8003FD94[0]); + if ( D_8003FD94[0] > 4096.0f) + { + D_8003FD94[0] -= 4096.0f; + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F094488(void) { + +} +#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 get_ptr_currentdata +/* 0C8FF4 7F0944C4 46040603 */ div.s $f24, $f0, $f4 +/* 0C8FF8 7F0944C8 0FC2E9CB */ jal get_ptr_currentdata +/* 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 get_num_players +/* 0C9014 7F0944E4 00000000 */ nop +/* 0C9018 7F0944E8 24010001 */ li $at, 1 +/* 0C901C 7F0944EC 1441003B */ bne $v0, $at, .L7F0945DC +/* 0C9020 7F0944F0 3C088008 */ lui $t0, %hi(pPlayer) +/* 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 set_setfillcolor +/* 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 get_video2_settings_width +/* 0C9064 7F094534 00408825 */ move $s1, $v0 +/* 0C9068 7F094538 0C001145 */ jal get_video2_settings_ulx +/* 0C906C 7F09453C A7A2007A */ sh $v0, 0x7a($sp) +/* 0C9070 7F094540 0C001149 */ jal get_video2_settings_uly +/* 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 get_video2_settings_height +/* 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 get_video2_settings_ulx +/* 0C90C0 7F094590 AE380000 */ sw $t8, ($s1) +/* 0C90C4 7F094594 00028400 */ sll $s0, $v0, 0x10 +/* 0C90C8 7F094598 0010CC03 */ sra $t9, $s0, 0x10 +/* 0C90CC 7F09459C 0C001149 */ jal get_video2_settings_uly +/* 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(pPlayer) # 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 set_setfillcolor +/* 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 get_BONDdata_field_10DC +/* 0CA2E8 7F0957B8 00000000 */ nop +/* 0CA2EC 7F0957BC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 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 get_ptr_currentdata +/* 0CB9C0 7F096E90 AFAA0228 */ sw $t2, 0x228($sp) +/* 0CB9C4 7F096E94 0FC2E9CB */ jal get_ptr_currentdata +/* 0CB9C8 7F096E98 00408025 */ move $s0, $v0 +/* 0CB9CC 7F096E9C 0FC2E9CB */ jal get_ptr_currentdata +/* 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 get_BONDdata_field_10DC +/* 0CBA28 7F096EF8 ADF90000 */ sw $t9, ($t7) +/* 0CBA2C 7F096EFC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F097388(void) { + +} +#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 get_ptr_currentdata +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0977B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0977B4 +/* 0CC2E4 7F0977B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0CC2E8 7F0977B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CC2EC 7F0977BC C4A60028 */ lwc1 $f6, 0x28($a1) +/* 0CC2F0 7F0977C0 C4840028 */ lwc1 $f4, 0x28($a0) +/* 0CC2F4 7F0977C4 C4AA002C */ lwc1 $f10, 0x2c($a1) +/* 0CC2F8 7F0977C8 C488002C */ lwc1 $f8, 0x2c($a0) +/* 0CC2FC 7F0977CC 46062001 */ sub.s $f0, $f4, $f6 +/* 0CC300 7F0977D0 460A4081 */ sub.s $f2, $f8, $f10 +/* 0CC304 7F0977D4 46000402 */ mul.s $f16, $f0, $f0 +/* 0CC308 7F0977D8 00000000 */ nop +/* 0CC30C 7F0977DC 46021482 */ mul.s $f18, $f2, $f2 +/* 0CC310 7F0977E0 0C007DF8 */ jal sqrtf +/* 0CC314 7F0977E4 46128300 */ add.s $f12, $f16, $f18 +/* 0CC318 7F0977E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CC31C 7F0977EC 44812000 */ mtc1 $at, $f4 +/* 0CC320 7F0977F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CC324 7F0977F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0CC328 7F0977F8 4604003C */ c.lt.s $f0, $f4 +/* 0CC32C 7F0977FC 00001825 */ move $v1, $zero +/* 0CC330 7F097800 45000003 */ bc1f .L7F097810 +/* 0CC334 7F097804 00000000 */ nop +/* 0CC338 7F097808 10000001 */ b .L7F097810 +/* 0CC33C 7F09780C 24030001 */ li $v1, 1 +.L7F097810: +/* 0CC340 7F097810 03E00008 */ jr $ra +/* 0CC344 7F097814 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F097818(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F098A2C(void) { + +} +#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 + + + + + +#ifdef NONMATCHING +void default_player_perspective_and_height(void) +{ + player1_playerdata[0].handicap = 1.00000000; + player1_playerdata[0].player_perspective_height = 1.00000000; + player1_playerdata[1].handicap = 1.00000000; + player1_playerdata[1].player_perspective_height = 1.00000000; + player1_playerdata[2].handicap = 1.00000000; + player1_playerdata[2].player_perspective_height = 1.00000000; + player1_playerdata[3].handicap = 1.00000000; + player1_playerdata[3].player_perspective_height = 1.00000000; +} +#else +GLOBAL_ASM( +.text +glabel default_player_perspective_and_height +/* 0CEE10 7F09A2E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CEE14 7F09A2E4 44810000 */ mtc1 $at, $f0 +/* 0CEE18 7F09A2E8 3C018008 */ lui $at, %hi(player1_player_data+0x64) +/* 0CEE1C 7F09A2EC E4209F54 */ swc1 $f0, %lo(player1_player_data+0x64)($at) +/* 0CEE20 7F09A2F0 3C018008 */ lui $at, %hi(player1_player_data+0x5c) +/* 0CEE24 7F09A2F4 E4209F4C */ swc1 $f0, %lo(player1_player_data+0x5c)($at) +/* 0CEE28 7F09A2F8 3C018008 */ lui $at, %hi(player2_player_data+0x64) +/* 0CEE2C 7F09A2FC E4209FC4 */ swc1 $f0, %lo(player2_player_data+0x64)($at) +/* 0CEE30 7F09A300 3C018008 */ lui $at, %hi(player2_player_data+0x5C) +/* 0CEE34 7F09A304 E4209FBC */ swc1 $f0, %lo(player2_player_data+0x5C)($at) +/* 0CEE38 7F09A308 3C018008 */ lui $at, %hi(player3_player_data+0x64) +/* 0CEE3C 7F09A30C E420A034 */ swc1 $f0, %lo(player3_player_data+0x64)($at) +/* 0CEE40 7F09A310 3C018008 */ lui $at, %hi(player3_player_data+0x5C) +/* 0CEE44 7F09A314 E420A02C */ swc1 $f0, %lo(player3_player_data+0x5C)($at) +/* 0CEE48 7F09A318 3C018008 */ lui $at, %hi(player4_player_data+0x64) +/* 0CEE4C 7F09A31C E420A0A4 */ swc1 $f0, %lo(player4_player_data+0x64)($at) +/* 0CEE50 7F09A320 3C018008 */ lui $at, %hi(player4_player_data+92) +/* 0CEE54 7F09A324 03E00008 */ jr $ra +/* 0CEE58 7F09A328 E420A09C */ swc1 $f0, %lo(player4_player_data+92)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void reset_play_data_ptrs(void) +{ + ptr_BONDdata_p1[0] = NULL; + ptr_BONDdata_p1[1] = NULL; + ptr_BONDdata_p1[2] = NULL; + ptr_BONDdata_p1[3] = NULL; + pPlayer = NULL; + pPlayersPerm = NULL; + player_num = 0; + random_byte = 0; + DAT_8007a0c0 = 0; + DAT_8007a0c4 = 1; + DAT_8007a0c8 = 2; + DAT_8007a0cc = 3; +} +#else +GLOBAL_ASM( +.text +glabel reset_play_data_ptrs +/* 0CEE5C 7F09A32C 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0CEE60 7F09A330 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0CEE64 7F09A334 AC400000 */ sw $zero, ($v0) +/* 0CEE68 7F09A338 AC400004 */ sw $zero, 4($v0) +/* 0CEE6C 7F09A33C AC400008 */ sw $zero, 8($v0) +/* 0CEE70 7F09A340 AC40000C */ sw $zero, 0xc($v0) +/* 0CEE74 7F09A344 3C018008 */ lui $at, %hi(pPlayer) +/* 0CEE78 7F09A348 AC20A0B0 */ sw $zero, %lo(pPlayer)($at) +/* 0CEE7C 7F09A34C 3C018008 */ lui $at, %hi(pPlayersPerm) +/* 0CEE80 7F09A350 AC20A0B4 */ sw $zero, %lo(pPlayersPerm)($at) +/* 0CEE84 7F09A354 3C018008 */ lui $at, %hi(player_num) +/* 0CEE88 7F09A358 AC20A0B8 */ sw $zero, %lo(player_num)($at) +/* 0CEE8C 7F09A35C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C0) +/* 0CEE90 7F09A360 3C018008 */ lui $at, %hi(random_byte) +/* 0CEE94 7F09A364 2463A0C0 */ addiu $v1, %lo(dword_CODE_bss_8007A0C0) # addiu $v1, $v1, -0x5f40 +/* 0CEE98 7F09A368 AC20A0BC */ sw $zero, %lo(random_byte)($at) +/* 0CEE9C 7F09A36C 240E0001 */ li $t6, 1 +/* 0CEEA0 7F09A370 240F0002 */ li $t7, 2 +/* 0CEEA4 7F09A374 24180003 */ li $t8, 3 +/* 0CEEA8 7F09A378 AC600000 */ sw $zero, ($v1) +/* 0CEEAC 7F09A37C AC6E0004 */ sw $t6, 4($v1) +/* 0CEEB0 7F09A380 AC6F0008 */ sw $t7, 8($v1) +/* 0CEEB4 7F09A384 03E00008 */ jr $ra +/* 0CEEB8 7F09A388 AC78000C */ sw $t8, 0xc($v1) +) +#endif + + + + +#ifdef NONMATCHING +void init_player_data_ptrs_construct_viewports(int playercount) +{ + int player; + + ptr_BONDdata_p1[0] = NULL; + ptr_BONDdata_p1[1] = NULL; + ptr_BONDdata_p1[2] = NULL; + ptr_BONDdata_p1[3] = NULL; + + random_byte = get_random_value() & 0xff; + if (playercount < 1) { + initBONDdataforPlayer(0); + set_cur_player(0); + set_cur_player_screen_size( get_video2_settings_width(), get_video2_settings_height() ); + set_cur_player_viewport_size( get_video2_settings_ulx(), get_video2_settings_uly() ); + } + else { + for (player = 0; player != playercount; player++) + { + initBONDdataforPlayer(player); + } + set_cur_player(0); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel init_player_data_ptrs_construct_viewports +/* 0CEEBC 7F09A38C 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0CEEC0 7F09A390 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0CEEC4 7F09A394 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0CEEC8 7F09A398 AFBF001C */ sw $ra, 0x1c($sp) +/* 0CEECC 7F09A39C AFB10018 */ sw $s1, 0x18($sp) +/* 0CEED0 7F09A3A0 00808825 */ move $s1, $a0 +/* 0CEED4 7F09A3A4 AFB00014 */ sw $s0, 0x14($sp) +/* 0CEED8 7F09A3A8 AC400000 */ sw $zero, ($v0) +/* 0CEEDC 7F09A3AC AC400004 */ sw $zero, 4($v0) +/* 0CEEE0 7F09A3B0 AC400008 */ sw $zero, 8($v0) +/* 0CEEE4 7F09A3B4 0C002914 */ jal get_random_value +/* 0CEEE8 7F09A3B8 AC40000C */ sw $zero, 0xc($v0) +/* 0CEEEC 7F09A3BC 304E00FF */ andi $t6, $v0, 0xff +/* 0CEEF0 7F09A3C0 3C018008 */ lui $at, %hi(random_byte) +/* 0CEEF4 7F09A3C4 1A20000C */ blez $s1, .L7F09A3F8 +/* 0CEEF8 7F09A3C8 AC2EA0BC */ sw $t6, %lo(random_byte)($at) +/* 0CEEFC 7F09A3CC 1A200006 */ blez $s1, .L7F09A3E8 +/* 0CEF00 7F09A3D0 00008025 */ move $s0, $zero +.L7F09A3D4: +/* 0CEF04 7F09A3D4 0FC2692F */ jal initBONDdataforPlayer +/* 0CEF08 7F09A3D8 02002025 */ move $a0, $s0 +/* 0CEF0C 7F09A3DC 26100001 */ addiu $s0, $s0, 1 +/* 0CEF10 7F09A3E0 1611FFFC */ bne $s0, $s1, .L7F09A3D4 +/* 0CEF14 7F09A3E4 00000000 */ nop +.L7F09A3E8: +/* 0CEF18 7F09A3E8 0FC26C43 */ jal set_cur_player +/* 0CEF1C 7F09A3EC 00002025 */ move $a0, $zero +/* 0CEF20 7F09A3F0 10000018 */ b .L7F09A454 +/* 0CEF24 7F09A3F4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09A3F8: +/* 0CEF28 7F09A3F8 0FC2692F */ jal initBONDdataforPlayer +/* 0CEF2C 7F09A3FC 00002025 */ move $a0, $zero +/* 0CEF30 7F09A400 0FC26C43 */ jal set_cur_player +/* 0CEF34 7F09A404 00002025 */ move $a0, $zero +/* 0CEF38 7F09A408 0C001127 */ jal get_video2_settings_width +/* 0CEF3C 7F09A40C 00000000 */ nop +/* 0CEF40 7F09A410 00028400 */ sll $s0, $v0, 0x10 +/* 0CEF44 7F09A414 00107C03 */ sra $t7, $s0, 0x10 +/* 0CEF48 7F09A418 0C00112B */ jal get_video2_settings_height +/* 0CEF4C 7F09A41C 01E08025 */ move $s0, $t7 +/* 0CEF50 7F09A420 02002025 */ move $a0, $s0 +/* 0CEF54 7F09A424 0FC26C77 */ jal set_cur_player_screen_size +/* 0CEF58 7F09A428 00402825 */ move $a1, $v0 +/* 0CEF5C 7F09A42C 0C001145 */ jal get_video2_settings_ulx +/* 0CEF60 7F09A430 00000000 */ nop +/* 0CEF64 7F09A434 00028400 */ sll $s0, $v0, 0x10 +/* 0CEF68 7F09A438 0010C403 */ sra $t8, $s0, 0x10 +/* 0CEF6C 7F09A43C 0C001149 */ jal get_video2_settings_uly +/* 0CEF70 7F09A440 03008025 */ move $s0, $t8 +/* 0CEF74 7F09A444 02002025 */ move $a0, $s0 +/* 0CEF78 7F09A448 0FC26C7E */ jal set_cur_player_viewport_size +/* 0CEF7C 7F09A44C 00402825 */ move $a1, $v0 +/* 0CEF80 7F09A450 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09A454: +/* 0CEF84 7F09A454 8FB00014 */ lw $s0, 0x14($sp) +/* 0CEF88 7F09A458 8FB10018 */ lw $s1, 0x18($sp) +/* 0CEF8C 7F09A45C 03E00008 */ jr $ra +/* 0CEF90 7F09A460 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +u32 get_num_players(void) +{ + u32 uVar1; + + uVar1 = (u32)(ptr_BONDdata_p1[0] != NULL); + if (ptr_BONDdata_p1[1] != NULL) { + uVar1 = (uint)(ptr_BONDdata_p1[0] != NULL) + 1; + } + if (ptr_BONDdata_p1[2] != NULL) { + uVar1 = uVar1 + 1; + } + if (ptr_BONDdata_p1[3] != NULL) { + uVar1 = uVar1 + 1; + } + return uVar1; +} +#else +GLOBAL_ASM( +.text +glabel get_num_players +/* 0CEF94 7F09A464 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0CEF98 7F09A468 8DCE9EE0 */ lw $t6, %lo(ptr_BONDdata_p1)($t6) +/* 0CEF9C 7F09A46C 00001825 */ move $v1, $zero +/* 0CEFA0 7F09A470 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p2) +/* 0CEFA4 7F09A474 11C00002 */ beqz $t6, .L7F09A480 +/* 0CEFA8 7F09A478 3C188008 */ lui $t8, %hi(ptr_BONDdata_p3) +/* 0CEFAC 7F09A47C 24030001 */ li $v1, 1 +.L7F09A480: +/* 0CEFB0 7F09A480 8DEF9EE4 */ lw $t7, %lo(ptr_BONDdata_p2)($t7) +/* 0CEFB4 7F09A484 3C198008 */ lui $t9, %hi(ptr_BONDdata_p4) +/* 0CEFB8 7F09A488 11E00002 */ beqz $t7, .L7F09A494 +/* 0CEFBC 7F09A48C 00000000 */ nop +/* 0CEFC0 7F09A490 24630001 */ addiu $v1, $v1, 1 +.L7F09A494: +/* 0CEFC4 7F09A494 8F189EE8 */ lw $t8, %lo(ptr_BONDdata_p3)($t8) +/* 0CEFC8 7F09A498 13000002 */ beqz $t8, .L7F09A4A4 +/* 0CEFCC 7F09A49C 00000000 */ nop +/* 0CEFD0 7F09A4A0 24630001 */ addiu $v1, $v1, 1 +.L7F09A4A4: +/* 0CEFD4 7F09A4A4 8F399EEC */ lw $t9, %lo(ptr_BONDdata_p4)($t9) +/* 0CEFD8 7F09A4A8 13200002 */ beqz $t9, .L7F09A4B4 +/* 0CEFDC 7F09A4AC 00000000 */ nop +/* 0CEFE0 7F09A4B0 24630001 */ addiu $v1, $v1, 1 +.L7F09A4B4: +/* 0CEFE4 7F09A4B4 03E00008 */ jr $ra +/* 0CEFE8 7F09A4B8 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void initBONDdataforPlayer(PLAYER_ID player) +{ + int iVar1; + int iVar2; + Player **ppPVar3; + int *dest; + int *src; + int *src_next; + Player *pPVar4; + int array234undefined4 [234]; + int iStack4; + f32 temp_3f36e15f8e; + + 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 = ptr_BONDdata_p1 + 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)->clipping_height = 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)->field_1274 = 0.00000000; + (*ppPVar3)->field_1278 = 0.00000000; + (*ppPVar3)->field_127C = 0.00000000; + (*ppPVar3)->crouchposition = 2; + (*ppPVar3)->field_29FC = 2; + (*ppPVar3)->ducking_height_offset = 0.00000000; + (*ppPVar3)->field_A4 = 0.00000000; + (*ppPVar3)->position_data_pointer = 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)->boost_factor_x = 0.00000000; + (*ppPVar3)->boost_factor_y = 0.00000000; + (*ppPVar3)->boost_factor_z = 0.00000000; + (*ppPVar3)->viewport_alpha = -1.00000000; + (*ppPVar3)->bondfadetime60 = -1.00000000; + (*ppPVar3)->bondfadetimemax = 0.00000000; + (*ppPVar3)->bondfadefracold = 0.00000000; + (*ppPVar3)->bondfadefracnew = 0.00000000; + (*ppPVar3)->field_1A0 = 0; + (*ppPVar3)->field_1C0 = 0; + (*ppPVar3)->field_1C4 = 0; + (*ppPVar3)->pause_animation_state = 0; + (*ppPVar3)->paused_flag = 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)->field_3B4 = 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)->tint_red = 0xff; + (*ppPVar3)->tint_green = 0xff; + (*ppPVar3)->tint_blue = 0xff; + (*ppPVar3)->tint_alpha = 0.00000000; + (*ppPVar3)->field_3E0 = -1.00000000; + (*ppPVar3)->timer_for_fade = -1.00000000; + (*ppPVar3)->field_3E8 = 0xff; + (*ppPVar3)->field_3EC = 0xff; + (*ppPVar3)->field_3F0 = 0xff; + (*ppPVar3)->field_3F4 = 0xff; + (*ppPVar3)->field_3F8 = 0xff; + (*ppPVar3)->field_3FC = 0xff; + (*ppPVar3)->field_400 = 0.00000000; + (*ppPVar3)->field_404 = 0.00000000; + (*ppPVar3)->cuff_value = CUFF_BLUE; + (*ppPVar3)->field_420 = 1; + (*ppPVar3)->field_424 = 0; + (*ppPVar3)->field_428 = 0; + (*ppPVar3)->field_42C = 2; + (*ppPVar3)->controlstyle = 0; + (*ppPVar3)->field_4DC = 1; + (*ppPVar3)->field_4E0 = 1; + (*ppPVar3)->field_4E4 = 1; + (*ppPVar3)->field_4E8 = 0; + (*ppPVar3)->field_4EC = 0.93000001; + (*ppPVar3)->field_4F0 = 0; + (*ppPVar3)->field_4F4 = 1.00000000; + (*ppPVar3)->field_4F8 = 1.00000000; + (*ppPVar3)->scaled_velocity = 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)->velocity = 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)->field_544 = 0.00000000; + (*ppPVar3)->field_548 = 0.00000000; + (*ppPVar3)->field_54C = 0.00000000; + (*ppPVar3)->stationary_ground_offset = 0.00000000; + (*ppPVar3)->field_554 = 0.00000000; + (*ppPVar3)->field_558 = 0.00000000; + (*ppPVar3)->field_55C = 0.00000000; + (*ppPVar3)->field_560 = 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)->field_594 = 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)->field_FC0 = 1.00000000; + (*ppPVar3)->field_FC4 = 1.00000000; + (*ppPVar3)->field_FC8 = 0; + (*ppPVar3)->field_FCC = 0; + (*ppPVar3)->field_FD0 = 0; + (*ppPVar3)->field_FD4 = 0; + (*ppPVar3)->field_FD8 = 0; + (*ppPVar3)->field_FDC = -1; + (*ppPVar3)->field_FDD = -1; + (*ppPVar3)->field_FDE = -1; + (*ppPVar3)->field_FDF = '\0'; + (*ppPVar3)->field_FE0 = 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)->field_FF8 = 0.89999998; + (*ppPVar3)->field_FFC = 0.00000000; + (*ppPVar3)->field_1000 = 0.00000000; + (*ppPVar3)->field_1004 = 0.00000000; + (*ppPVar3)->field_1008 = 0.00000000; + (*ppPVar3)->field_100C = 0.89999998; + (*ppPVar3)->field_1010 = 0.00000000; + (*ppPVar3)->holds_neg_pi = -3.14159274; + (*ppPVar3)->field_1018 = 0.00000000; + (*ppPVar3)->field_105C = 0; + (*ppPVar3)->copiedgoldeneye = 0; + (*ppPVar3)->somekinda_flags = 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)->field_10D8 = 0; + (*ppPVar3)->field_10DC = 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)->somekinda_bitflags = 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; +} +#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(ptr_BONDdata_p1) +/* 0CF040 7F09A510 27399EE0 */ addiu $t9, %lo(ptr_BONDdata_p1) # addiu $t9, $t9, -0x6120 +/* 0CF044 7F09A514 000C6880 */ sll $t5, $t4, 2 +/* 0CF048 7F09A518 01B91821 */ addu $v1, $t5, $t9 +/* 0CF04C 7F09A51C AC620000 */ sw $v0, ($v1) +/* 0CF050 7F09A520 AC400000 */ sw $zero, ($v0) +/* 0CF054 7F09A524 44800000 */ mtc1 $zero, $f0 +/* 0CF058 7F09A528 8C780000 */ lw $t8, ($v1) +/* 0CF05C 7F09A52C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CF060 7F09A530 44811000 */ mtc1 $at, $f2 +/* 0CF064 7F09A534 E7000004 */ swc1 $f0, 4($t8) +/* 0CF068 7F09A538 8C6B0000 */ lw $t3, ($v1) +/* 0CF06C 7F09A53C 24040002 */ li $a0, 2 +/* 0CF070 7F09A540 24080001 */ li $t0, 1 +/* 0CF074 7F09A544 E5600008 */ swc1 $f0, 8($t3) +/* 0CF078 7F09A548 8C6F0000 */ lw $t7, ($v1) +/* 0CF07C 7F09A54C 2409FFFF */ li $t1, -1 +/* 0CF080 7F09A550 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0CF084 7F09A554 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0CF088 7F09A558 8C6E0000 */ lw $t6, ($v1) +/* 0CF08C 7F09A55C 44812000 */ mtc1 $at, $f4 +/* 0CF090 7F09A560 3C018005 */ lui $at, %hi(D_80057610) +/* 0CF094 7F09A564 E5C00010 */ swc1 $f0, 0x10($t6) +/* 0CF098 7F09A568 8C6C0000 */ lw $t4, ($v1) +/* 0CF09C 7F09A56C 240200FF */ li $v0, 255 +/* 0CF0A0 7F09A570 27AA0024 */ addiu $t2, $sp, 0x24 +/* 0CF0A4 7F09A574 E5800014 */ swc1 $f0, 0x14($t4) +/* 0CF0A8 7F09A578 8C6D0000 */ lw $t5, ($v1) +/* 0CF0AC 7F09A57C E5A20018 */ swc1 $f2, 0x18($t5) +/* 0CF0B0 7F09A580 8C790000 */ lw $t9, ($v1) +/* 0CF0B4 7F09A584 E720001C */ swc1 $f0, 0x1c($t9) +/* 0CF0B8 7F09A588 8C780000 */ lw $t8, ($v1) +/* 0CF0BC 7F09A58C E7020020 */ swc1 $f2, 0x20($t8) +/* 0CF0C0 7F09A590 8C6B0000 */ lw $t3, ($v1) +/* 0CF0C4 7F09A594 E5600024 */ swc1 $f0, 0x24($t3) +/* 0CF0C8 7F09A598 8C6F0000 */ lw $t7, ($v1) +/* 0CF0CC 7F09A59C E5E00028 */ swc1 $f0, 0x28($t7) +/* 0CF0D0 7F09A5A0 8C6E0000 */ lw $t6, ($v1) +/* 0CF0D4 7F09A5A4 E5C0002C */ swc1 $f0, 0x2c($t6) +/* 0CF0D8 7F09A5A8 8C6C0000 */ lw $t4, ($v1) +/* 0CF0DC 7F09A5AC E5800030 */ swc1 $f0, 0x30($t4) +/* 0CF0E0 7F09A5B0 8C6D0000 */ lw $t5, ($v1) +/* 0CF0E4 7F09A5B4 ADA00034 */ sw $zero, 0x34($t5) +/* 0CF0E8 7F09A5B8 8C790000 */ lw $t9, ($v1) +/* 0CF0EC 7F09A5BC E7200038 */ swc1 $f0, 0x38($t9) +/* 0CF0F0 7F09A5C0 8C780000 */ lw $t8, ($v1) +/* 0CF0F4 7F09A5C4 E700003C */ swc1 $f0, 0x3c($t8) +/* 0CF0F8 7F09A5C8 8C6B0000 */ lw $t3, ($v1) +/* 0CF0FC 7F09A5CC E5600040 */ swc1 $f0, 0x40($t3) +/* 0CF100 7F09A5D0 8C6F0000 */ lw $t7, ($v1) +/* 0CF104 7F09A5D4 E5E00044 */ swc1 $f0, 0x44($t7) +/* 0CF108 7F09A5D8 8C6E0000 */ lw $t6, ($v1) +/* 0CF10C 7F09A5DC E5C00048 */ swc1 $f0, 0x48($t6) +/* 0CF110 7F09A5E0 8C6C0000 */ lw $t4, ($v1) +/* 0CF114 7F09A5E4 E580004C */ swc1 $f0, 0x4c($t4) +/* 0CF118 7F09A5E8 8C6D0000 */ lw $t5, ($v1) +/* 0CF11C 7F09A5EC E5A00050 */ swc1 $f0, 0x50($t5) +/* 0CF120 7F09A5F0 8C790000 */ lw $t9, ($v1) +/* 0CF124 7F09A5F4 E7200054 */ swc1 $f0, 0x54($t9) +/* 0CF128 7F09A5F8 8C780000 */ lw $t8, ($v1) +/* 0CF12C 7F09A5FC E7000058 */ swc1 $f0, 0x58($t8) +/* 0CF130 7F09A600 8C6B0000 */ lw $t3, ($v1) +/* 0CF134 7F09A604 E560006C */ swc1 $f0, 0x6c($t3) +/* 0CF138 7F09A608 8C6F0000 */ lw $t7, ($v1) +/* 0CF13C 7F09A60C E5E00070 */ swc1 $f0, 0x70($t7) +/* 0CF140 7F09A610 8C6E0000 */ lw $t6, ($v1) +/* 0CF144 7F09A614 E5C00074 */ swc1 $f0, 0x74($t6) +/* 0CF148 7F09A618 8C6C0000 */ lw $t4, ($v1) +/* 0CF14C 7F09A61C E5800078 */ swc1 $f0, 0x78($t4) +/* 0CF150 7F09A620 8C6D0000 */ lw $t5, ($v1) +/* 0CF154 7F09A624 E5A0007C */ swc1 $f0, 0x7c($t5) +/* 0CF158 7F09A628 8C790000 */ lw $t9, ($v1) +/* 0CF15C 7F09A62C E7200080 */ swc1 $f0, 0x80($t9) +/* 0CF160 7F09A630 8C780000 */ lw $t8, ($v1) +/* 0CF164 7F09A634 E7000084 */ swc1 $f0, 0x84($t8) +/* 0CF168 7F09A638 8C6B0000 */ lw $t3, ($v1) +/* 0CF16C 7F09A63C E5600088 */ swc1 $f0, 0x88($t3) +/* 0CF170 7F09A640 8C6F0000 */ lw $t7, ($v1) +/* 0CF174 7F09A644 ADE0008C */ sw $zero, 0x8c($t7) +/* 0CF178 7F09A648 8C6E0000 */ lw $t6, ($v1) +/* 0CF17C 7F09A64C E5C00090 */ swc1 $f0, 0x90($t6) +/* 0CF180 7F09A650 8C6C0000 */ lw $t4, ($v1) +/* 0CF184 7F09A654 AD800094 */ sw $zero, 0x94($t4) +/* 0CF188 7F09A658 8C6D0000 */ lw $t5, ($v1) +/* 0CF18C 7F09A65C E5A00098 */ swc1 $f0, 0x98($t5) +/* 0CF190 7F09A660 8C790000 */ lw $t9, ($v1) +/* 0CF194 7F09A664 E7201274 */ swc1 $f0, 0x1274($t9) +/* 0CF198 7F09A668 8C780000 */ lw $t8, ($v1) +/* 0CF19C 7F09A66C E7001278 */ swc1 $f0, 0x1278($t8) +/* 0CF1A0 7F09A670 8C6B0000 */ lw $t3, ($v1) +/* 0CF1A4 7F09A674 E560127C */ swc1 $f0, 0x127c($t3) +/* 0CF1A8 7F09A678 8C6F0000 */ lw $t7, ($v1) +/* 0CF1AC 7F09A67C ADE4009C */ sw $a0, 0x9c($t7) +/* 0CF1B0 7F09A680 8C6E0000 */ lw $t6, ($v1) +/* 0CF1B4 7F09A684 ADC429FC */ sw $a0, 0x29fc($t6) +/* 0CF1B8 7F09A688 8C6C0000 */ lw $t4, ($v1) +/* 0CF1BC 7F09A68C E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0CF1C0 7F09A690 8C6D0000 */ lw $t5, ($v1) +/* 0CF1C4 7F09A694 E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0CF1C8 7F09A698 8C790000 */ lw $t9, ($v1) +/* 0CF1CC 7F09A69C AF2000A8 */ sw $zero, 0xa8($t9) +/* 0CF1D0 7F09A6A0 8C780000 */ lw $t8, ($v1) +/* 0CF1D4 7F09A6A4 AF0800AC */ sw $t0, 0xac($t8) +/* 0CF1D8 7F09A6A8 8C6B0000 */ lw $t3, ($v1) +/* 0CF1DC 7F09A6AC AD6000D0 */ sw $zero, 0xd0($t3) +/* 0CF1E0 7F09A6B0 8C6F0000 */ lw $t7, ($v1) +/* 0CF1E4 7F09A6B4 ADE000D4 */ sw $zero, 0xd4($t7) +/* 0CF1E8 7F09A6B8 8C6E0000 */ lw $t6, ($v1) +/* 0CF1EC 7F09A6BC ADC000D8 */ sw $zero, 0xd8($t6) +/* 0CF1F0 7F09A6C0 8C6C0000 */ lw $t4, ($v1) +/* 0CF1F4 7F09A6C4 E58200DC */ swc1 $f2, 0xdc($t4) +/* 0CF1F8 7F09A6C8 8C6D0000 */ lw $t5, ($v1) +/* 0CF1FC 7F09A6CC E5A000E0 */ swc1 $f0, 0xe0($t5) +/* 0CF200 7F09A6D0 8C790000 */ lw $t9, ($v1) +/* 0CF204 7F09A6D4 E72200E4 */ swc1 $f2, 0xe4($t9) +/* 0CF208 7F09A6D8 8C780000 */ lw $t8, ($v1) +/* 0CF20C 7F09A6DC E70000E8 */ swc1 $f0, 0xe8($t8) +/* 0CF210 7F09A6E0 8C6B0000 */ lw $t3, ($v1) +/* 0CF214 7F09A6E4 E56200EC */ swc1 $f2, 0xec($t3) +/* 0CF218 7F09A6E8 8C6F0000 */ lw $t7, ($v1) +/* 0CF21C 7F09A6EC E5E000F0 */ swc1 $f0, 0xf0($t7) +/* 0CF220 7F09A6F0 8C6E0000 */ lw $t6, ($v1) +/* 0CF224 7F09A6F4 ADC900F4 */ sw $t1, 0xf4($t6) +/* 0CF228 7F09A6F8 8C6C0000 */ lw $t4, ($v1) +/* 0CF22C 7F09A6FC AD8900F8 */ sw $t1, 0xf8($t4) +/* 0CF230 7F09A700 8C6D0000 */ lw $t5, ($v1) +/* 0CF234 7F09A704 ADA00104 */ sw $zero, 0x104($t5) +/* 0CF238 7F09A708 8C790000 */ lw $t9, ($v1) +/* 0CF23C 7F09A70C AF200108 */ sw $zero, 0x108($t9) +/* 0CF240 7F09A710 8C780000 */ lw $t8, ($v1) +/* 0CF244 7F09A714 AF00010C */ sw $zero, 0x10c($t8) +/* 0CF248 7F09A718 8C6B0000 */ lw $t3, ($v1) +/* 0CF24C 7F09A71C AD600110 */ sw $zero, 0x110($t3) +/* 0CF250 7F09A720 8C6F0000 */ lw $t7, ($v1) +/* 0CF254 7F09A724 ADE80114 */ sw $t0, 0x114($t7) +/* 0CF258 7F09A728 8C6E0000 */ lw $t6, ($v1) +/* 0CF25C 7F09A72C ADC80118 */ sw $t0, 0x118($t6) +/* 0CF260 7F09A730 8C6C0000 */ lw $t4, ($v1) +/* 0CF264 7F09A734 AD80011C */ sw $zero, 0x11c($t4) +/* 0CF268 7F09A738 8C6D0000 */ lw $t5, ($v1) +/* 0CF26C 7F09A73C ADA80120 */ sw $t0, 0x120($t5) +/* 0CF270 7F09A740 8C790000 */ lw $t9, ($v1) +/* 0CF274 7F09A744 AF200124 */ sw $zero, 0x124($t9) +/* 0CF278 7F09A748 8C780000 */ lw $t8, ($v1) +/* 0CF27C 7F09A74C AF080128 */ sw $t0, 0x128($t8) +/* 0CF280 7F09A750 8C6B0000 */ lw $t3, ($v1) +/* 0CF284 7F09A754 E560012C */ swc1 $f0, 0x12c($t3) +/* 0CF288 7F09A758 8C6F0000 */ lw $t7, ($v1) +/* 0CF28C 7F09A75C ADE00130 */ sw $zero, 0x130($t7) +/* 0CF290 7F09A760 8C6E0000 */ lw $t6, ($v1) +/* 0CF294 7F09A764 ADC90134 */ sw $t1, 0x134($t6) +/* 0CF298 7F09A768 8C6C0000 */ lw $t4, ($v1) +/* 0CF29C 7F09A76C AD880138 */ sw $t0, 0x138($t4) +/* 0CF2A0 7F09A770 8C6D0000 */ lw $t5, ($v1) +/* 0CF2A4 7F09A774 E5A0013C */ swc1 $f0, 0x13c($t5) +/* 0CF2A8 7F09A778 8C790000 */ lw $t9, ($v1) +/* 0CF2AC 7F09A77C AF200140 */ sw $zero, 0x140($t9) +/* 0CF2B0 7F09A780 8C780000 */ lw $t8, ($v1) +/* 0CF2B4 7F09A784 AF090144 */ sw $t1, 0x144($t8) +/* 0CF2B8 7F09A788 8C6B0000 */ lw $t3, ($v1) +/* 0CF2BC 7F09A78C E5600148 */ swc1 $f0, 0x148($t3) +/* 0CF2C0 7F09A790 8C6F0000 */ lw $t7, ($v1) +/* 0CF2C4 7F09A794 E5E0014C */ swc1 $f0, 0x14c($t7) +/* 0CF2C8 7F09A798 8C6E0000 */ lw $t6, ($v1) +/* 0CF2CC 7F09A79C E5C20150 */ swc1 $f2, 0x150($t6) +/* 0CF2D0 7F09A7A0 8C6C0000 */ lw $t4, ($v1) +/* 0CF2D4 7F09A7A4 E5800154 */ swc1 $f0, 0x154($t4) +/* 0CF2D8 7F09A7A8 8C6D0000 */ lw $t5, ($v1) +/* 0CF2DC 7F09A7AC E5A40158 */ swc1 $f4, 0x158($t5) +/* 0CF2E0 7F09A7B0 8C790000 */ lw $t9, ($v1) +/* 0CF2E4 7F09A7B4 C4267610 */ lwc1 $f6, %lo(D_80057610)($at) +/* 0CF2E8 7F09A7B8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CF2EC 7F09A7BC 44816000 */ mtc1 $at, $f12 +/* 0CF2F0 7F09A7C0 E726015C */ swc1 $f6, 0x15c($t9) +/* 0CF2F4 7F09A7C4 8C780000 */ lw $t8, ($v1) +/* 0CF2F8 7F09A7C8 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 +/* 0CF2FC 7F09A7CC 44814000 */ mtc1 $at, $f8 +/* 0CF300 7F09A7D0 E7000160 */ swc1 $f0, 0x160($t8) +/* 0CF304 7F09A7D4 8C6B0000 */ lw $t3, ($v1) +/* 0CF308 7F09A7D8 3C018005 */ lui $at, %hi(D_80057614) +/* 0CF30C 7F09A7DC E5620164 */ swc1 $f2, 0x164($t3) +/* 0CF310 7F09A7E0 8C6F0000 */ lw $t7, ($v1) +/* 0CF314 7F09A7E4 E5E00168 */ swc1 $f0, 0x168($t7) +/* 0CF318 7F09A7E8 8C6E0000 */ lw $t6, ($v1) +/* 0CF31C 7F09A7EC E5C0016C */ swc1 $f0, 0x16c($t6) +/* 0CF320 7F09A7F0 8C6C0000 */ lw $t4, ($v1) +/* 0CF324 7F09A7F4 E5800170 */ swc1 $f0, 0x170($t4) +/* 0CF328 7F09A7F8 8C6D0000 */ lw $t5, ($v1) +/* 0CF32C 7F09A7FC E5A00174 */ swc1 $f0, 0x174($t5) +/* 0CF330 7F09A800 8C790000 */ lw $t9, ($v1) +/* 0CF334 7F09A804 E7202A4C */ swc1 $f0, 0x2a4c($t9) +/* 0CF338 7F09A808 8C780000 */ lw $t8, ($v1) +/* 0CF33C 7F09A80C E7020178 */ swc1 $f2, 0x178($t8) +/* 0CF340 7F09A810 8C6B0000 */ lw $t3, ($v1) +/* 0CF344 7F09A814 E5600180 */ swc1 $f0, 0x180($t3) +/* 0CF348 7F09A818 8C6F0000 */ lw $t7, ($v1) +/* 0CF34C 7F09A81C E5E00184 */ swc1 $f0, 0x184($t7) +/* 0CF350 7F09A820 8C6E0000 */ lw $t6, ($v1) +/* 0CF354 7F09A824 E5C00188 */ swc1 $f0, 0x188($t6) +/* 0CF358 7F09A828 8C6C0000 */ lw $t4, ($v1) +/* 0CF35C 7F09A82C E58C018C */ swc1 $f12, 0x18c($t4) +/* 0CF360 7F09A830 8C6D0000 */ lw $t5, ($v1) +/* 0CF364 7F09A834 E5AC0190 */ swc1 $f12, 0x190($t5) +/* 0CF368 7F09A838 8C790000 */ lw $t9, ($v1) +/* 0CF36C 7F09A83C E7200194 */ swc1 $f0, 0x194($t9) +/* 0CF370 7F09A840 8C780000 */ lw $t8, ($v1) +/* 0CF374 7F09A844 E7000198 */ swc1 $f0, 0x198($t8) +/* 0CF378 7F09A848 8C6B0000 */ lw $t3, ($v1) +/* 0CF37C 7F09A84C E560019C */ swc1 $f0, 0x19c($t3) +/* 0CF380 7F09A850 8C6F0000 */ lw $t7, ($v1) +/* 0CF384 7F09A854 ADE001A0 */ sw $zero, 0x1a0($t7) +/* 0CF388 7F09A858 8C6E0000 */ lw $t6, ($v1) +/* 0CF38C 7F09A85C ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0CF390 7F09A860 8C6C0000 */ lw $t4, ($v1) +/* 0CF394 7F09A864 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0CF398 7F09A868 8C6D0000 */ lw $t5, ($v1) +/* 0CF39C 7F09A86C ADA001C8 */ sw $zero, 0x1c8($t5) +/* 0CF3A0 7F09A870 8C790000 */ lw $t9, ($v1) +/* 0CF3A4 7F09A874 AF2801CC */ sw $t0, 0x1cc($t9) +/* 0CF3A8 7F09A878 8C780000 */ lw $t8, ($v1) +/* 0CF3AC 7F09A87C AF0001D0 */ sw $zero, 0x1d0($t8) +/* 0CF3B0 7F09A880 8C6B0000 */ lw $t3, ($v1) +/* 0CF3B4 7F09A884 E56001D4 */ swc1 $f0, 0x1d4($t3) +/* 0CF3B8 7F09A888 8C6F0000 */ lw $t7, ($v1) +/* 0CF3BC 7F09A88C E5E001D8 */ swc1 $f0, 0x1d8($t7) +/* 0CF3C0 7F09A890 8C6E0000 */ lw $t6, ($v1) +/* 0CF3C4 7F09A894 E5C801DC */ swc1 $f8, 0x1dc($t6) +/* 0CF3C8 7F09A898 8C6C0000 */ lw $t4, ($v1) +/* 0CF3CC 7F09A89C E58001E0 */ swc1 $f0, 0x1e0($t4) +/* 0CF3D0 7F09A8A0 8C6D0000 */ lw $t5, ($v1) +/* 0CF3D4 7F09A8A4 E5A201E4 */ swc1 $f2, 0x1e4($t5) +/* 0CF3D8 7F09A8A8 8C790000 */ lw $t9, ($v1) +/* 0CF3DC 7F09A8AC E72001E8 */ swc1 $f0, 0x1e8($t9) +/* 0CF3E0 7F09A8B0 8C780000 */ lw $t8, ($v1) +/* 0CF3E4 7F09A8B4 E70001EC */ swc1 $f0, 0x1ec($t8) +/* 0CF3E8 7F09A8B8 8C6B0000 */ lw $t3, ($v1) +/* 0CF3EC 7F09A8BC E56001F0 */ swc1 $f0, 0x1f0($t3) +/* 0CF3F0 7F09A8C0 8C6F0000 */ lw $t7, ($v1) +/* 0CF3F4 7F09A8C4 E5E201F4 */ swc1 $f2, 0x1f4($t7) +/* 0CF3F8 7F09A8C8 8C6E0000 */ lw $t6, ($v1) +/* 0CF3FC 7F09A8CC ADC00200 */ sw $zero, 0x200($t6) +/* 0CF400 7F09A8D0 8C6C0000 */ lw $t4, ($v1) +/* 0CF404 7F09A8D4 E5800204 */ swc1 $f0, 0x204($t4) +/* 0CF408 7F09A8D8 8C6D0000 */ lw $t5, ($v1) +/* 0CF40C 7F09A8DC E5A00208 */ swc1 $f0, 0x208($t5) +/* 0CF410 7F09A8E0 8C790000 */ lw $t9, ($v1) +/* 0CF414 7F09A8E4 E720020C */ swc1 $f0, 0x20c($t9) +/* 0CF418 7F09A8E8 8C780000 */ lw $t8, ($v1) +/* 0CF41C 7F09A8EC E7000210 */ swc1 $f0, 0x210($t8) +/* 0CF420 7F09A8F0 8C6B0000 */ lw $t3, ($v1) +/* 0CF424 7F09A8F4 E5600214 */ swc1 $f0, 0x214($t3) +/* 0CF428 7F09A8F8 8C6F0000 */ lw $t7, ($v1) +/* 0CF42C 7F09A8FC ADE00218 */ sw $zero, 0x218($t7) +/* 0CF430 7F09A900 8C6E0000 */ lw $t6, ($v1) +/* 0CF434 7F09A904 ADC8021C */ sw $t0, 0x21c($t6) +/* 0CF438 7F09A908 8C6C0000 */ lw $t4, ($v1) +/* 0CF43C 7F09A90C AD800220 */ sw $zero, 0x220($t4) +/* 0CF440 7F09A910 8C6D0000 */ lw $t5, ($v1) +/* 0CF444 7F09A914 E5A00224 */ swc1 $f0, 0x224($t5) +/* 0CF448 7F09A918 8C790000 */ lw $t9, ($v1) +/* 0CF44C 7F09A91C A72003B4 */ sh $zero, 0x3b4($t9) +/* 0CF450 7F09A920 8C780000 */ lw $t8, ($v1) +/* 0CF454 7F09A924 A70003B6 */ sh $zero, 0x3b6($t8) +/* 0CF458 7F09A928 8C6B0000 */ lw $t3, ($v1) +/* 0CF45C 7F09A92C E56003B8 */ swc1 $f0, 0x3b8($t3) +/* 0CF460 7F09A930 8C6F0000 */ lw $t7, ($v1) +/* 0CF464 7F09A934 E5E003BC */ swc1 $f0, 0x3bc($t7) +/* 0CF468 7F09A938 8C6E0000 */ lw $t6, ($v1) +/* 0CF46C 7F09A93C C42A7614 */ lwc1 $f10, %lo(D_80057614)($at) +/* 0CF470 7F09A940 E5CA03C0 */ swc1 $f10, 0x3c0($t6) +/* 0CF474 7F09A944 8C6C0000 */ lw $t4, ($v1) +/* 0CF478 7F09A948 E58003C4 */ swc1 $f0, 0x3c4($t4) +/* 0CF47C 7F09A94C 8C6D0000 */ lw $t5, ($v1) +/* 0CF480 7F09A950 E5A003C8 */ swc1 $f0, 0x3c8($t5) +/* 0CF484 7F09A954 8C790000 */ lw $t9, ($v1) +/* 0CF488 7F09A958 E72203CC */ swc1 $f2, 0x3cc($t9) +/* 0CF48C 7F09A95C 8C780000 */ lw $t8, ($v1) +/* 0CF490 7F09A960 AF0203D0 */ sw $v0, 0x3d0($t8) +/* 0CF494 7F09A964 8C6B0000 */ lw $t3, ($v1) +/* 0CF498 7F09A968 AD6203D4 */ sw $v0, 0x3d4($t3) +/* 0CF49C 7F09A96C 8C6F0000 */ lw $t7, ($v1) +/* 0CF4A0 7F09A970 3C018005 */ lui $at, %hi(D_80057618) +/* 0CF4A4 7F09A974 24070020 */ li $a3, 32 +/* 0CF4A8 7F09A978 ADE203D8 */ sw $v0, 0x3d8($t7) +/* 0CF4AC 7F09A97C 8C6E0000 */ lw $t6, ($v1) +/* 0CF4B0 7F09A980 240601FF */ li $a2, 511 +/* 0CF4B4 7F09A984 240501E0 */ li $a1, 480 +/* 0CF4B8 7F09A988 E5C003DC */ swc1 $f0, 0x3dc($t6) +/* 0CF4BC 7F09A98C 8C6C0000 */ lw $t4, ($v1) +/* 0CF4C0 7F09A990 E58C03E0 */ swc1 $f12, 0x3e0($t4) +/* 0CF4C4 7F09A994 8C6D0000 */ lw $t5, ($v1) +/* 0CF4C8 7F09A998 E5AC03E4 */ swc1 $f12, 0x3e4($t5) +/* 0CF4CC 7F09A99C 8C790000 */ lw $t9, ($v1) +/* 0CF4D0 7F09A9A0 AF2203E8 */ sw $v0, 0x3e8($t9) +/* 0CF4D4 7F09A9A4 8C780000 */ lw $t8, ($v1) +/* 0CF4D8 7F09A9A8 AF0203EC */ sw $v0, 0x3ec($t8) +/* 0CF4DC 7F09A9AC 8C6B0000 */ lw $t3, ($v1) +/* 0CF4E0 7F09A9B0 AD6203F0 */ sw $v0, 0x3f0($t3) +/* 0CF4E4 7F09A9B4 8C6F0000 */ lw $t7, ($v1) +/* 0CF4E8 7F09A9B8 ADE203F4 */ sw $v0, 0x3f4($t7) +/* 0CF4EC 7F09A9BC 8C6E0000 */ lw $t6, ($v1) +/* 0CF4F0 7F09A9C0 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0CF4F4 7F09A9C4 8C6C0000 */ lw $t4, ($v1) +/* 0CF4F8 7F09A9C8 AD8203FC */ sw $v0, 0x3fc($t4) +/* 0CF4FC 7F09A9CC 8C6D0000 */ lw $t5, ($v1) +/* 0CF500 7F09A9D0 00001025 */ move $v0, $zero +/* 0CF504 7F09A9D4 E5A00400 */ swc1 $f0, 0x400($t5) +/* 0CF508 7F09A9D8 8C790000 */ lw $t9, ($v1) +/* 0CF50C 7F09A9DC E7200404 */ swc1 $f0, 0x404($t9) +/* 0CF510 7F09A9E0 8C780000 */ lw $t8, ($v1) +/* 0CF514 7F09A9E4 AF00041C */ sw $zero, 0x41c($t8) +/* 0CF518 7F09A9E8 8C6B0000 */ lw $t3, ($v1) +/* 0CF51C 7F09A9EC AD680420 */ sw $t0, 0x420($t3) +/* 0CF520 7F09A9F0 8C6F0000 */ lw $t7, ($v1) +/* 0CF524 7F09A9F4 ADE00424 */ sw $zero, 0x424($t7) +/* 0CF528 7F09A9F8 8C6E0000 */ lw $t6, ($v1) +/* 0CF52C 7F09A9FC ADC00428 */ sw $zero, 0x428($t6) +/* 0CF530 7F09AA00 8C6C0000 */ lw $t4, ($v1) +/* 0CF534 7F09AA04 AD84042C */ sw $a0, 0x42c($t4) +/* 0CF538 7F09AA08 8C6D0000 */ lw $t5, ($v1) +/* 0CF53C 7F09AA0C 24040280 */ li $a0, 640 +/* 0CF540 7F09AA10 ADA00430 */ sw $zero, 0x430($t5) +/* 0CF544 7F09AA14 8C790000 */ lw $t9, ($v1) +/* 0CF548 7F09AA18 AF2804DC */ sw $t0, 0x4dc($t9) +/* 0CF54C 7F09AA1C 8C780000 */ lw $t8, ($v1) +/* 0CF550 7F09AA20 AF0804E0 */ sw $t0, 0x4e0($t8) +/* 0CF554 7F09AA24 8C6B0000 */ lw $t3, ($v1) +/* 0CF558 7F09AA28 AD6804E4 */ sw $t0, 0x4e4($t3) +/* 0CF55C 7F09AA2C 8C6F0000 */ lw $t7, ($v1) +/* 0CF560 7F09AA30 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 0CF564 7F09AA34 8C6E0000 */ lw $t6, ($v1) +/* 0CF568 7F09AA38 C4327618 */ lwc1 $f18, %lo(D_80057618)($at) +/* 0CF56C 7F09AA3C 3C018005 */ lui $at, %hi(D_8005761C) +/* 0CF570 7F09AA40 E5D204EC */ swc1 $f18, 0x4ec($t6) +/* 0CF574 7F09AA44 8C6C0000 */ lw $t4, ($v1) +/* 0CF578 7F09AA48 AD8004F0 */ sw $zero, 0x4f0($t4) +/* 0CF57C 7F09AA4C 8C6D0000 */ lw $t5, ($v1) +/* 0CF580 7F09AA50 E5A204F4 */ swc1 $f2, 0x4f4($t5) +/* 0CF584 7F09AA54 8C790000 */ lw $t9, ($v1) +/* 0CF588 7F09AA58 E72204F8 */ swc1 $f2, 0x4f8($t9) +/* 0CF58C 7F09AA5C 8C780000 */ lw $t8, ($v1) +/* 0CF590 7F09AA60 E70004FC */ swc1 $f0, 0x4fc($t8) +/* 0CF594 7F09AA64 8C6B0000 */ lw $t3, ($v1) +/* 0CF598 7F09AA68 E5600500 */ swc1 $f0, 0x500($t3) +/* 0CF59C 7F09AA6C 8C6F0000 */ lw $t7, ($v1) +/* 0CF5A0 7F09AA70 E5E00504 */ swc1 $f0, 0x504($t7) +/* 0CF5A4 7F09AA74 8C6E0000 */ lw $t6, ($v1) +/* 0CF5A8 7F09AA78 C42C761C */ lwc1 $f12, %lo(D_8005761C)($at) +/* 0CF5AC 7F09AA7C E5C00508 */ swc1 $f0, 0x508($t6) +/* 0CF5B0 7F09AA80 8C6C0000 */ lw $t4, ($v1) +/* 0CF5B4 7F09AA84 E580050C */ swc1 $f0, 0x50c($t4) +/* 0CF5B8 7F09AA88 8C6D0000 */ lw $t5, ($v1) +/* 0CF5BC 7F09AA8C E5A20510 */ swc1 $f2, 0x510($t5) +/* 0CF5C0 7F09AA90 8C790000 */ lw $t9, ($v1) +/* 0CF5C4 7F09AA94 E7200514 */ swc1 $f0, 0x514($t9) +/* 0CF5C8 7F09AA98 8C780000 */ lw $t8, ($v1) +/* 0CF5CC 7F09AA9C E7020518 */ swc1 $f2, 0x518($t8) +/* 0CF5D0 7F09AAA0 8C6B0000 */ lw $t3, ($v1) +/* 0CF5D4 7F09AAA4 E560051C */ swc1 $f0, 0x51c($t3) +/* 0CF5D8 7F09AAA8 8C6F0000 */ lw $t7, ($v1) +/* 0CF5DC 7F09AAAC E5E00520 */ swc1 $f0, 0x520($t7) +/* 0CF5E0 7F09AAB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF5E4 7F09AAB4 E5C00524 */ swc1 $f0, 0x524($t6) +/* 0CF5E8 7F09AAB8 8C6C0000 */ lw $t4, ($v1) +/* 0CF5EC 7F09AABC E5800528 */ swc1 $f0, 0x528($t4) +/* 0CF5F0 7F09AAC0 8C6D0000 */ lw $t5, ($v1) +/* 0CF5F4 7F09AAC4 E5A0052C */ swc1 $f0, 0x52c($t5) +/* 0CF5F8 7F09AAC8 8C790000 */ lw $t9, ($v1) +/* 0CF5FC 7F09AACC E7200530 */ swc1 $f0, 0x530($t9) +/* 0CF600 7F09AAD0 8C780000 */ lw $t8, ($v1) +/* 0CF604 7F09AAD4 E70C0534 */ swc1 $f12, 0x534($t8) +/* 0CF608 7F09AAD8 8C6B0000 */ lw $t3, ($v1) +/* 0CF60C 7F09AADC E5600538 */ swc1 $f0, 0x538($t3) +/* 0CF610 7F09AAE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF614 7F09AAE4 E5EC053C */ swc1 $f12, 0x53c($t7) +/* 0CF618 7F09AAE8 8C6E0000 */ lw $t6, ($v1) +/* 0CF61C 7F09AAEC E5C00540 */ swc1 $f0, 0x540($t6) +/* 0CF620 7F09AAF0 8C6C0000 */ lw $t4, ($v1) +/* 0CF624 7F09AAF4 E5800544 */ swc1 $f0, 0x544($t4) +/* 0CF628 7F09AAF8 8C6D0000 */ lw $t5, ($v1) +/* 0CF62C 7F09AAFC E5A00548 */ swc1 $f0, 0x548($t5) +/* 0CF630 7F09AB00 8C790000 */ lw $t9, ($v1) +/* 0CF634 7F09AB04 E720054C */ swc1 $f0, 0x54c($t9) +/* 0CF638 7F09AB08 8C780000 */ lw $t8, ($v1) +/* 0CF63C 7F09AB0C E7000550 */ swc1 $f0, 0x550($t8) +/* 0CF640 7F09AB10 8C6B0000 */ lw $t3, ($v1) +/* 0CF644 7F09AB14 E5600554 */ swc1 $f0, 0x554($t3) +/* 0CF648 7F09AB18 8C6F0000 */ lw $t7, ($v1) +/* 0CF64C 7F09AB1C E5E00558 */ swc1 $f0, 0x558($t7) +/* 0CF650 7F09AB20 8C6E0000 */ lw $t6, ($v1) +/* 0CF654 7F09AB24 E5C0055C */ swc1 $f0, 0x55c($t6) +/* 0CF658 7F09AB28 8C6C0000 */ lw $t4, ($v1) +/* 0CF65C 7F09AB2C E5800560 */ swc1 $f0, 0x560($t4) +/* 0CF660 7F09AB30 8C6D0000 */ lw $t5, ($v1) +/* 0CF664 7F09AB34 E5A00564 */ swc1 $f0, 0x564($t5) +/* 0CF668 7F09AB38 8C790000 */ lw $t9, ($v1) +/* 0CF66C 7F09AB3C E7200568 */ swc1 $f0, 0x568($t9) +/* 0CF670 7F09AB40 8C780000 */ lw $t8, ($v1) +/* 0CF674 7F09AB44 E702056C */ swc1 $f2, 0x56c($t8) +/* 0CF678 7F09AB48 8C6B0000 */ lw $t3, ($v1) +/* 0CF67C 7F09AB4C E5600570 */ swc1 $f0, 0x570($t3) +/* 0CF680 7F09AB50 8C6F0000 */ lw $t7, ($v1) +/* 0CF684 7F09AB54 E5E00574 */ swc1 $f0, 0x574($t7) +/* 0CF688 7F09AB58 8C6E0000 */ lw $t6, ($v1) +/* 0CF68C 7F09AB5C E5C20578 */ swc1 $f2, 0x578($t6) +/* 0CF690 7F09AB60 8C6C0000 */ lw $t4, ($v1) +/* 0CF694 7F09AB64 E580057C */ swc1 $f0, 0x57c($t4) +/* 0CF698 7F09AB68 8C6D0000 */ lw $t5, ($v1) +/* 0CF69C 7F09AB6C E5A20580 */ swc1 $f2, 0x580($t5) +/* 0CF6A0 7F09AB70 8C790000 */ lw $t9, ($v1) +/* 0CF6A4 7F09AB74 E7200584 */ swc1 $f0, 0x584($t9) +/* 0CF6A8 7F09AB78 8C780000 */ lw $t8, ($v1) +/* 0CF6AC 7F09AB7C E7000588 */ swc1 $f0, 0x588($t8) +/* 0CF6B0 7F09AB80 8C6B0000 */ lw $t3, ($v1) +/* 0CF6B4 7F09AB84 E562058C */ swc1 $f2, 0x58c($t3) +/* 0CF6B8 7F09AB88 8C6F0000 */ lw $t7, ($v1) +/* 0CF6BC 7F09AB8C E5E00590 */ swc1 $f0, 0x590($t7) +/* 0CF6C0 7F09AB90 8C6E0000 */ lw $t6, ($v1) +/* 0CF6C4 7F09AB94 ADC00594 */ sw $zero, 0x594($t6) +.L7F09AB98: +/* 0CF6C8 7F09AB98 8C6C0000 */ lw $t4, ($v1) +/* 0CF6CC 7F09AB9C 01826821 */ addu $t5, $t4, $v0 +/* 0CF6D0 7F09ABA0 A5A407D0 */ sh $a0, 0x7d0($t5) +/* 0CF6D4 7F09ABA4 8C790000 */ lw $t9, ($v1) +/* 0CF6D8 7F09ABA8 0322C021 */ addu $t8, $t9, $v0 +/* 0CF6DC 7F09ABAC A70507D2 */ sh $a1, 0x7d2($t8) +/* 0CF6E0 7F09ABB0 8C6B0000 */ lw $t3, ($v1) +/* 0CF6E4 7F09ABB4 01627821 */ addu $t7, $t3, $v0 +/* 0CF6E8 7F09ABB8 A5E607D4 */ sh $a2, 0x7d4($t7) +/* 0CF6EC 7F09ABBC 8C6E0000 */ lw $t6, ($v1) +/* 0CF6F0 7F09ABC0 01C26021 */ addu $t4, $t6, $v0 +/* 0CF6F4 7F09ABC4 A58007D6 */ sh $zero, 0x7d6($t4) +/* 0CF6F8 7F09ABC8 8C6D0000 */ lw $t5, ($v1) +/* 0CF6FC 7F09ABCC 01A2C821 */ addu $t9, $t5, $v0 +/* 0CF700 7F09ABD0 A72407D8 */ sh $a0, 0x7d8($t9) +/* 0CF704 7F09ABD4 8C780000 */ lw $t8, ($v1) +/* 0CF708 7F09ABD8 03025821 */ addu $t3, $t8, $v0 +/* 0CF70C 7F09ABDC A56507DA */ sh $a1, 0x7da($t3) +/* 0CF710 7F09ABE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF714 7F09ABE4 01E27021 */ addu $t6, $t7, $v0 +/* 0CF718 7F09ABE8 A5C607DC */ sh $a2, 0x7dc($t6) +/* 0CF71C 7F09ABEC 8C6C0000 */ lw $t4, ($v1) +/* 0CF720 7F09ABF0 01826821 */ addu $t5, $t4, $v0 +/* 0CF724 7F09ABF4 24420010 */ addiu $v0, $v0, 0x10 +/* 0CF728 7F09ABF8 1447FFE7 */ bne $v0, $a3, .L7F09AB98 +/* 0CF72C 7F09ABFC A5A007DE */ sh $zero, 0x7de($t5) +/* 0CF730 7F09AC00 8C790000 */ lw $t9, ($v1) +/* 0CF734 7F09AC04 24020064 */ li $v0, 100 +/* 0CF738 7F09AC08 A72207F0 */ sh $v0, 0x7f0($t9) +/* 0CF73C 7F09AC0C 8C780000 */ lw $t8, ($v1) +/* 0CF740 7F09AC10 A70207F2 */ sh $v0, 0x7f2($t8) +/* 0CF744 7F09AC14 8C6B0000 */ lw $t3, ($v1) +/* 0CF748 7F09AC18 A56007F4 */ sh $zero, 0x7f4($t3) +/* 0CF74C 7F09AC1C 8C6F0000 */ lw $t7, ($v1) +/* 0CF750 7F09AC20 A5E007F6 */ sh $zero, 0x7f6($t7) +/* 0CF754 7F09AC24 8C6E0000 */ lw $t6, ($v1) +/* 0CF758 7F09AC28 ADC007F8 */ sw $zero, 0x7f8($t6) +/* 0CF75C 7F09AC2C 8C6C0000 */ lw $t4, ($v1) +/* 0CF760 7F09AC30 AD8007FC */ sw $zero, 0x7fc($t4) +/* 0CF764 7F09AC34 8C6D0000 */ lw $t5, ($v1) +/* 0CF768 7F09AC38 ADA00800 */ sw $zero, 0x800($t5) +/* 0CF76C 7F09AC3C 8C790000 */ lw $t9, ($v1) +/* 0CF770 7F09AC40 AF200804 */ sw $zero, 0x804($t9) +/* 0CF774 7F09AC44 8C780000 */ lw $t8, ($v1) +/* 0CF778 7F09AC48 AF092A44 */ sw $t1, 0x2a44($t8) +/* 0CF77C 7F09AC4C 8C6B0000 */ lw $t3, ($v1) +/* 0CF780 7F09AC50 0140C025 */ move $t8, $t2 +/* 0CF784 7F09AC54 AD692A48 */ sw $t1, 0x2a48($t3) +/* 0CF788 7F09AC58 8C6F0000 */ lw $t7, ($v1) +/* 0CF78C 7F09AC5C 254B03A8 */ addiu $t3, $t2, 0x3a8 +/* 0CF790 7F09AC60 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0CF794 7F09AC64 8C6E0000 */ lw $t6, ($v1) +/* 0CF798 7F09AC68 01407825 */ move $t7, $t2 +/* 0CF79C 7F09AC6C ADC02A54 */ sw $zero, 0x2a54($t6) +/* 0CF7A0 7F09AC70 8C6C0000 */ lw $t4, ($v1) +/* 0CF7A4 7F09AC74 AD800808 */ sw $zero, 0x808($t4) +/* 0CF7A8 7F09AC78 8C6D0000 */ lw $t5, ($v1) +/* 0CF7AC 7F09AC7C ADA0080C */ sw $zero, 0x80c($t5) +/* 0CF7B0 7F09AC80 8C790000 */ lw $t9, ($v1) +.L7F09AC84: +/* 0CF7B4 7F09AC84 8DE10000 */ lw $at, ($t7) +/* 0CF7B8 7F09AC88 25EF000C */ addiu $t7, $t7, 0xc +/* 0CF7BC 7F09AC8C 2739000C */ addiu $t9, $t9, 0xc +/* 0CF7C0 7F09AC90 AF210864 */ sw $at, 0x864($t9) +/* 0CF7C4 7F09AC94 8DE1FFF8 */ lw $at, -8($t7) +/* 0CF7C8 7F09AC98 AF210868 */ sw $at, 0x868($t9) +/* 0CF7CC 7F09AC9C 8DE1FFFC */ lw $at, -4($t7) +/* 0CF7D0 7F09ACA0 15EBFFF8 */ bne $t7, $t3, .L7F09AC84 +/* 0CF7D4 7F09ACA4 AF21086C */ sw $at, 0x86c($t9) +/* 0CF7D8 7F09ACA8 8C6E0000 */ lw $t6, ($v1) +/* 0CF7DC 7F09ACAC 254D03A8 */ addiu $t5, $t2, 0x3a8 +.L7F09ACB0: +/* 0CF7E0 7F09ACB0 8F010000 */ lw $at, ($t8) +/* 0CF7E4 7F09ACB4 2718000C */ addiu $t8, $t8, 0xc +/* 0CF7E8 7F09ACB8 25CE000C */ addiu $t6, $t6, 0xc +/* 0CF7EC 7F09ACBC ADC10C0C */ sw $at, 0xc0c($t6) +/* 0CF7F0 7F09ACC0 8F01FFF8 */ lw $at, -8($t8) +/* 0CF7F4 7F09ACC4 ADC10C10 */ sw $at, 0xc10($t6) +/* 0CF7F8 7F09ACC8 8F01FFFC */ lw $at, -4($t8) +/* 0CF7FC 7F09ACCC 170DFFF8 */ bne $t8, $t5, .L7F09ACB0 +/* 0CF800 7F09ACD0 ADC10C14 */ sw $at, 0xc14($t6) +/* 0CF804 7F09ACD4 8C6B0000 */ lw $t3, ($v1) +/* 0CF808 7F09ACD8 3C018005 */ lui $at, %hi(D_80057620) +/* 0CF80C 7F09ACDC 240200FF */ li $v0, 255 +/* 0CF810 7F09ACE0 E5620FC0 */ swc1 $f2, 0xfc0($t3) +/* 0CF814 7F09ACE4 8C6F0000 */ lw $t7, ($v1) +/* 0CF818 7F09ACE8 24040007 */ li $a0, 7 +/* 0CF81C 7F09ACEC E5E20FC4 */ swc1 $f2, 0xfc4($t7) +/* 0CF820 7F09ACF0 8C790000 */ lw $t9, ($v1) +/* 0CF824 7F09ACF4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 0CF828 7F09ACF8 8C6C0000 */ lw $t4, ($v1) +/* 0CF82C 7F09ACFC AD800FCC */ sw $zero, 0xfcc($t4) +/* 0CF830 7F09AD00 8C6D0000 */ lw $t5, ($v1) +/* 0CF834 7F09AD04 C42C7620 */ lwc1 $f12, %lo(D_80057620)($at) +/* 0CF838 7F09AD08 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0CF83C 7F09AD0C ADA00FD0 */ sw $zero, 0xfd0($t5) +/* 0CF840 7F09AD10 8C780000 */ lw $t8, ($v1) +/* 0CF844 7F09AD14 AF000FD4 */ sw $zero, 0xfd4($t8) +/* 0CF848 7F09AD18 8C6E0000 */ lw $t6, ($v1) +/* 0CF84C 7F09AD1C ADC00FD8 */ sw $zero, 0xfd8($t6) +/* 0CF850 7F09AD20 8C6B0000 */ lw $t3, ($v1) +/* 0CF854 7F09AD24 A1620FDC */ sb $v0, 0xfdc($t3) +/* 0CF858 7F09AD28 8C6F0000 */ lw $t7, ($v1) +/* 0CF85C 7F09AD2C A1E20FDD */ sb $v0, 0xfdd($t7) +/* 0CF860 7F09AD30 8C790000 */ lw $t9, ($v1) +/* 0CF864 7F09AD34 A3220FDE */ sb $v0, 0xfde($t9) +/* 0CF868 7F09AD38 8C6C0000 */ lw $t4, ($v1) +/* 0CF86C 7F09AD3C 3C028008 */ lui $v0, %hi(random_byte) +/* 0CF870 7F09AD40 2442A0BC */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5f44 +/* 0CF874 7F09AD44 A1800FDF */ sb $zero, 0xfdf($t4) +/* 0CF878 7F09AD48 8C6D0000 */ lw $t5, ($v1) +/* 0CF87C 7F09AD4C ADA80FE0 */ sw $t0, 0xfe0($t5) +/* 0CF880 7F09AD50 8C780000 */ lw $t8, ($v1) +/* 0CF884 7F09AD54 AF000FE4 */ sw $zero, 0xfe4($t8) +/* 0CF888 7F09AD58 8C6E0000 */ lw $t6, ($v1) +/* 0CF88C 7F09AD5C E5C00FE8 */ swc1 $f0, 0xfe8($t6) +/* 0CF890 7F09AD60 8C6B0000 */ lw $t3, ($v1) +/* 0CF894 7F09AD64 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 0CF898 7F09AD68 8C6F0000 */ lw $t7, ($v1) +/* 0CF89C 7F09AD6C E5E00FF0 */ swc1 $f0, 0xff0($t7) +/* 0CF8A0 7F09AD70 8C790000 */ lw $t9, ($v1) +/* 0CF8A4 7F09AD74 E7200FF4 */ swc1 $f0, 0xff4($t9) +/* 0CF8A8 7F09AD78 8C6C0000 */ lw $t4, ($v1) +/* 0CF8AC 7F09AD7C E58C0FF8 */ swc1 $f12, 0xff8($t4) +/* 0CF8B0 7F09AD80 8C6D0000 */ lw $t5, ($v1) +/* 0CF8B4 7F09AD84 E5A00FFC */ swc1 $f0, 0xffc($t5) +/* 0CF8B8 7F09AD88 8C780000 */ lw $t8, ($v1) +/* 0CF8BC 7F09AD8C E7001000 */ swc1 $f0, 0x1000($t8) +/* 0CF8C0 7F09AD90 8C6E0000 */ lw $t6, ($v1) +/* 0CF8C4 7F09AD94 E5C01004 */ swc1 $f0, 0x1004($t6) +/* 0CF8C8 7F09AD98 8C6B0000 */ lw $t3, ($v1) +/* 0CF8CC 7F09AD9C E5601008 */ swc1 $f0, 0x1008($t3) +/* 0CF8D0 7F09ADA0 8C6F0000 */ lw $t7, ($v1) +/* 0CF8D4 7F09ADA4 E5EC100C */ swc1 $f12, 0x100c($t7) +/* 0CF8D8 7F09ADA8 44816000 */ mtc1 $at, $f12 +/* 0CF8DC 7F09ADAC 8C790000 */ lw $t9, ($v1) +/* 0CF8E0 7F09ADB0 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0CF8E4 7F09ADB4 44817000 */ mtc1 $at, $f14 +/* 0CF8E8 7F09ADB8 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0CF8EC 7F09ADBC 44818000 */ mtc1 $at, $f16 +/* 0CF8F0 7F09ADC0 E7201010 */ swc1 $f0, 0x1010($t9) +/* 0CF8F4 7F09ADC4 3C018005 */ lui $at, %hi(D_80057624) +/* 0CF8F8 7F09ADC8 C4247624 */ lwc1 $f4, %lo(D_80057624)($at) +/* 0CF8FC 7F09ADCC 8C6C0000 */ lw $t4, ($v1) +/* 0CF900 7F09ADD0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0CF904 7F09ADD4 44813000 */ mtc1 $at, $f6 +/* 0CF908 7F09ADD8 E5841014 */ swc1 $f4, 0x1014($t4) +/* 0CF90C 7F09ADDC 8C6D0000 */ lw $t5, ($v1) +/* 0CF910 7F09ADE0 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 0CF914 7F09ADE4 44814000 */ mtc1 $at, $f8 +/* 0CF918 7F09ADE8 E5A01018 */ swc1 $f0, 0x1018($t5) +/* 0CF91C 7F09ADEC 8C780000 */ lw $t8, ($v1) +/* 0CF920 7F09ADF0 3C014320 */ li $at, 0x43200000 # 160.000000 +/* 0CF924 7F09ADF4 44815000 */ mtc1 $at, $f10 +/* 0CF928 7F09ADF8 AF00105C */ sw $zero, 0x105c($t8) +/* 0CF92C 7F09ADFC 8C6E0000 */ lw $t6, ($v1) +/* 0CF930 7F09AE00 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0CF934 7F09AE04 44819000 */ mtc1 $at, $f18 +/* 0CF938 7F09AE08 ADC01060 */ sw $zero, 0x1060($t6) +/* 0CF93C 7F09AE0C 8C6B0000 */ lw $t3, ($v1) +/* 0CF940 7F09AE10 3C018005 */ lui $at, %hi(D_80057628) +/* 0CF944 7F09AE14 AD601064 */ sw $zero, 0x1064($t3) +/* 0CF948 7F09AE18 8C6F0000 */ lw $t7, ($v1) +/* 0CF94C 7F09AE1C E5E0106C */ swc1 $f0, 0x106c($t7) +/* 0CF950 7F09AE20 8C790000 */ lw $t9, ($v1) +/* 0CF954 7F09AE24 E7201070 */ swc1 $f0, 0x1070($t9) +/* 0CF958 7F09AE28 8C6C0000 */ lw $t4, ($v1) +/* 0CF95C 7F09AE2C E5801074 */ swc1 $f0, 0x1074($t4) +/* 0CF960 7F09AE30 8C6D0000 */ lw $t5, ($v1) +/* 0CF964 7F09AE34 ADA01078 */ sw $zero, 0x1078($t5) +/* 0CF968 7F09AE38 8C780000 */ lw $t8, ($v1) +/* 0CF96C 7F09AE3C E700107C */ swc1 $f0, 0x107c($t8) +/* 0CF970 7F09AE40 8C6E0000 */ lw $t6, ($v1) +/* 0CF974 7F09AE44 E5C01080 */ swc1 $f0, 0x1080($t6) +/* 0CF978 7F09AE48 8C6B0000 */ lw $t3, ($v1) +/* 0CF97C 7F09AE4C E56C1084 */ swc1 $f12, 0x1084($t3) +/* 0CF980 7F09AE50 8C6F0000 */ lw $t7, ($v1) +/* 0CF984 7F09AE54 E5EC1088 */ swc1 $f12, 0x1088($t7) +/* 0CF988 7F09AE58 8C790000 */ lw $t9, ($v1) +/* 0CF98C 7F09AE5C AF29108C */ sw $t1, 0x108c($t9) +/* 0CF990 7F09AE60 8C6C0000 */ lw $t4, ($v1) +/* 0CF994 7F09AE64 E58E1090 */ swc1 $f14, 0x1090($t4) +/* 0CF998 7F09AE68 8C6D0000 */ lw $t5, ($v1) +/* 0CF99C 7F09AE6C E5B01094 */ swc1 $f16, 0x1094($t5) +/* 0CF9A0 7F09AE70 8C780000 */ lw $t8, ($v1) +/* 0CF9A4 7F09AE74 E7001098 */ swc1 $f0, 0x1098($t8) +/* 0CF9A8 7F09AE78 8C6E0000 */ lw $t6, ($v1) +/* 0CF9AC 7F09AE7C E5C0109C */ swc1 $f0, 0x109c($t6) +/* 0CF9B0 7F09AE80 8C6B0000 */ lw $t3, ($v1) +/* 0CF9B4 7F09AE84 E56610A0 */ swc1 $f6, 0x10a0($t3) +/* 0CF9B8 7F09AE88 8C6F0000 */ lw $t7, ($v1) +/* 0CF9BC 7F09AE8C E5E810A4 */ swc1 $f8, 0x10a4($t7) +/* 0CF9C0 7F09AE90 8C790000 */ lw $t9, ($v1) +/* 0CF9C4 7F09AE94 E72210A8 */ swc1 $f2, 0x10a8($t9) +/* 0CF9C8 7F09AE98 8C6C0000 */ lw $t4, ($v1) +/* 0CF9CC 7F09AE9C E58A10AC */ swc1 $f10, 0x10ac($t4) +/* 0CF9D0 7F09AEA0 8C6D0000 */ lw $t5, ($v1) +/* 0CF9D4 7F09AEA4 E5B210B0 */ swc1 $f18, 0x10b0($t5) +/* 0CF9D8 7F09AEA8 8C780000 */ lw $t8, ($v1) +/* 0CF9DC 7F09AEAC E70210B4 */ swc1 $f2, 0x10b4($t8) +/* 0CF9E0 7F09AEB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF9E4 7F09AEB4 E5C210B8 */ swc1 $f2, 0x10b8($t6) +/* 0CF9E8 7F09AEB8 8C6B0000 */ lw $t3, ($v1) +/* 0CF9EC 7F09AEBC E56210BC */ swc1 $f2, 0x10bc($t3) +/* 0CF9F0 7F09AEC0 8C6F0000 */ lw $t7, ($v1) +/* 0CF9F4 7F09AEC4 E5E210C0 */ swc1 $f2, 0x10c0($t7) +/* 0CF9F8 7F09AEC8 8C790000 */ lw $t9, ($v1) +/* 0CF9FC 7F09AECC AF2010C4 */ sw $zero, 0x10c4($t9) +/* 0CFA00 7F09AED0 8C6C0000 */ lw $t4, ($v1) +/* 0CFA04 7F09AED4 AD8010C8 */ sw $zero, 0x10c8($t4) +/* 0CFA08 7F09AED8 8C6D0000 */ lw $t5, ($v1) +/* 0CFA0C 7F09AEDC ADA010CC */ sw $zero, 0x10cc($t5) +/* 0CFA10 7F09AEE0 8C780000 */ lw $t8, ($v1) +/* 0CFA14 7F09AEE4 AF0010D0 */ sw $zero, 0x10d0($t8) +/* 0CFA18 7F09AEE8 8C6E0000 */ lw $t6, ($v1) +/* 0CFA1C 7F09AEEC ADC010D4 */ sw $zero, 0x10d4($t6) +/* 0CFA20 7F09AEF0 8C6B0000 */ lw $t3, ($v1) +/* 0CFA24 7F09AEF4 AD6010D8 */ sw $zero, 0x10d8($t3) +/* 0CFA28 7F09AEF8 8C6F0000 */ lw $t7, ($v1) +/* 0CFA2C 7F09AEFC ADE010DC */ sw $zero, 0x10dc($t7) +/* 0CFA30 7F09AF00 8C790000 */ lw $t9, ($v1) +/* 0CFA34 7F09AF04 AF2010E0 */ sw $zero, 0x10e0($t9) +/* 0CFA38 7F09AF08 8C6C0000 */ lw $t4, ($v1) +/* 0CFA3C 7F09AF0C 3C190001 */ lui $t9, 1 +/* 0CFA40 7F09AF10 AD8010E4 */ sw $zero, 0x10e4($t4) +/* 0CFA44 7F09AF14 8C6D0000 */ lw $t5, ($v1) +/* 0CFA48 7F09AF18 ADA010E8 */ sw $zero, 0x10e8($t5) +/* 0CFA4C 7F09AF1C 8C780000 */ lw $t8, ($v1) +/* 0CFA50 7F09AF20 AF0010EC */ sw $zero, 0x10ec($t8) +/* 0CFA54 7F09AF24 8C6E0000 */ lw $t6, ($v1) +/* 0CFA58 7F09AF28 E5C210F0 */ swc1 $f2, 0x10f0($t6) +/* 0CFA5C 7F09AF2C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA60 7F09AF30 E56210F4 */ swc1 $f2, 0x10f4($t3) +/* 0CFA64 7F09AF34 8C6F0000 */ lw $t7, ($v1) +/* 0CFA68 7F09AF38 E5E210F8 */ swc1 $f2, 0x10f8($t7) +/* 0CFA6C 7F09AF3C 8C6C0000 */ lw $t4, ($v1) +/* 0CFA70 7F09AF40 AD9910FC */ sw $t9, 0x10fc($t4) +/* 0CFA74 7F09AF44 8C6D0000 */ lw $t5, ($v1) +/* 0CFA78 7F09AF48 E5A01118 */ swc1 $f0, 0x1118($t5) +/* 0CFA7C 7F09AF4C 8C780000 */ lw $t8, ($v1) +/* 0CFA80 7F09AF50 E700111C */ swc1 $f0, 0x111c($t8) +/* 0CFA84 7F09AF54 8C6E0000 */ lw $t6, ($v1) +/* 0CFA88 7F09AF58 E5CE1120 */ swc1 $f14, 0x1120($t6) +/* 0CFA8C 7F09AF5C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA90 7F09AF60 E5701124 */ swc1 $f16, 0x1124($t3) +/* 0CFA94 7F09AF64 8C6F0000 */ lw $t7, ($v1) +/* 0CFA98 7F09AF68 ADE01128 */ sw $zero, 0x1128($t7) +/* 0CFA9C 7F09AF6C 8C790000 */ lw $t9, ($v1) +/* 0CFAA0 7F09AF70 AF2011B0 */ sw $zero, 0x11b0($t9) +/* 0CFAA4 7F09AF74 8C6C0000 */ lw $t4, ($v1) +/* 0CFAA8 7F09AF78 AD8011B4 */ sw $zero, 0x11b4($t4) +/* 0CFAAC 7F09AF7C 8C6D0000 */ lw $t5, ($v1) +/* 0CFAB0 7F09AF80 ADA011B8 */ sw $zero, 0x11b8($t5) +/* 0CFAB4 7F09AF84 8C780000 */ lw $t8, ($v1) +/* 0CFAB8 7F09AF88 E70011BC */ swc1 $f0, 0x11bc($t8) +/* 0CFABC 7F09AF8C 8C6E0000 */ lw $t6, ($v1) +/* 0CFAC0 7F09AF90 E5C011C0 */ swc1 $f0, 0x11c0($t6) +/* 0CFAC4 7F09AF94 8C6B0000 */ lw $t3, ($v1) +/* 0CFAC8 7F09AF98 E56C11C4 */ swc1 $f12, 0x11c4($t3) +/* 0CFACC 7F09AF9C 8C6F0000 */ lw $t7, ($v1) +/* 0CFAD0 7F09AFA0 E5EC11C8 */ swc1 $f12, 0x11c8($t7) +/* 0CFAD4 7F09AFA4 8C790000 */ lw $t9, ($v1) +/* 0CFAD8 7F09AFA8 E72C11CC */ swc1 $f12, 0x11cc($t9) +/* 0CFADC 7F09AFAC 8C6C0000 */ lw $t4, ($v1) +/* 0CFAE0 7F09AFB0 E58C11D0 */ swc1 $f12, 0x11d0($t4) +/* 0CFAE4 7F09AFB4 8C6D0000 */ lw $t5, ($v1) +/* 0CFAE8 7F09AFB8 C4247628 */ lwc1 $f4, %lo(D_80057628)($at) +/* 0CFAEC 7F09AFBC 3C018003 */ lui $at, %hi(invisible_to_guards_flag) +/* 0CFAF0 7F09AFC0 E5A411D4 */ swc1 $f4, 0x11d4($t5) +/* 0CFAF4 7F09AFC4 8C780000 */ lw $t8, ($v1) +/* 0CFAF8 7F09AFC8 AF0011D8 */ sw $zero, 0x11d8($t8) +/* 0CFAFC 7F09AFCC 8C6E0000 */ lw $t6, ($v1) +/* 0CFB00 7F09AFD0 ADC911DC */ sw $t1, 0x11dc($t6) +/* 0CFB04 7F09AFD4 8C6B0000 */ lw $t3, ($v1) +/* 0CFB08 7F09AFD8 AD6011E0 */ sw $zero, 0x11e0($t3) +/* 0CFB0C 7F09AFDC 8C6F0000 */ lw $t7, ($v1) +/* 0CFB10 7F09AFE0 ADE011E4 */ sw $zero, 0x11e4($t7) +/* 0CFB14 7F09AFE4 8C790000 */ lw $t9, ($v1) +/* 0CFB18 7F09AFE8 AF2011E8 */ sw $zero, 0x11e8($t9) +/* 0CFB1C 7F09AFEC 8C6C0000 */ lw $t4, ($v1) +/* 0CFB20 7F09AFF0 AD8011EC */ sw $zero, 0x11ec($t4) +/* 0CFB24 7F09AFF4 8C6D0000 */ lw $t5, ($v1) +/* 0CFB28 7F09AFF8 ADA011F0 */ sw $zero, 0x11f0($t5) +/* 0CFB2C 7F09AFFC 8C780000 */ lw $t8, ($v1) +/* 0CFB30 7F09B000 AF0011F4 */ sw $zero, 0x11f4($t8) +/* 0CFB34 7F09B004 8C6E0000 */ lw $t6, ($v1) +/* 0CFB38 7F09B008 E5C01280 */ swc1 $f0, 0x1280($t6) +/* 0CFB3C 7F09B00C 8C6B0000 */ lw $t3, ($v1) +/* 0CFB40 7F09B010 AD601284 */ sw $zero, 0x1284($t3) +/* 0CFB44 7F09B014 8C6F0000 */ lw $t7, ($v1) +/* 0CFB48 7F09B018 E5E01288 */ swc1 $f0, 0x1288($t7) +/* 0CFB4C 7F09B01C 8C790000 */ lw $t9, ($v1) +/* 0CFB50 7F09B020 A32012B6 */ sb $zero, 0x12b6($t9) +/* 0CFB54 7F09B024 8C6C0000 */ lw $t4, ($v1) +/* 0CFB58 7F09B028 AD8429B8 */ sw $a0, 0x29b8($t4) +/* 0CFB5C 7F09B02C 8C6D0000 */ lw $t5, ($v1) +/* 0CFB60 7F09B030 E5A229BC */ swc1 $f2, 0x29bc($t5) +/* 0CFB64 7F09B034 8C780000 */ lw $t8, ($v1) +/* 0CFB68 7F09B038 E70029C0 */ swc1 $f0, 0x29c0($t8) +/* 0CFB6C 7F09B03C 8C6E0000 */ lw $t6, ($v1) +/* 0CFB70 7F09B040 ADC029C4 */ sw $zero, 0x29c4($t6) +/* 0CFB74 7F09B044 8C6B0000 */ lw $t3, ($v1) +/* 0CFB78 7F09B048 AD6429D4 */ sw $a0, 0x29d4($t3) +/* 0CFB7C 7F09B04C 8C6F0000 */ lw $t7, ($v1) +/* 0CFB80 7F09B050 ADE029D8 */ sw $zero, 0x29d8($t7) +/* 0CFB84 7F09B054 8C6C0000 */ lw $t4, ($v1) +/* 0CFB88 7F09B058 8C590000 */ lw $t9, ($v0) +/* 0CFB8C 7F09B05C AD9929E0 */ sw $t9, 0x29e0($t4) +/* 0CFB90 7F09B060 8C4D0000 */ lw $t5, ($v0) +/* 0CFB94 7F09B064 8C6E0000 */ lw $t6, ($v1) +/* 0CFB98 7F09B068 25B80001 */ addiu $t8, $t5, 1 +/* 0CFB9C 7F09B06C AC580000 */ sw $t8, ($v0) +/* 0CFBA0 7F09B070 ADC929E4 */ sw $t1, 0x29e4($t6) +/* 0CFBA4 7F09B074 8C6B0000 */ lw $t3, ($v1) +/* 0CFBA8 7F09B078 AD6929E8 */ sw $t1, 0x29e8($t3) +/* 0CFBAC 7F09B07C 8C6F0000 */ lw $t7, ($v1) +/* 0CFBB0 7F09B080 ADE929EC */ sw $t1, 0x29ec($t7) +/* 0CFBB4 7F09B084 8C790000 */ lw $t9, ($v1) +/* 0CFBB8 7F09B088 AF2929F0 */ sw $t1, 0x29f0($t9) +/* 0CFBBC 7F09B08C 8C6C0000 */ lw $t4, ($v1) +/* 0CFBC0 7F09B090 AD802A00 */ sw $zero, 0x2a00($t4) +/* 0CFBC4 7F09B094 8C6D0000 */ lw $t5, ($v1) +/* 0CFBC8 7F09B098 ADA02A30 */ sw $zero, 0x2a30($t5) +/* 0CFBCC 7F09B09C 8C780000 */ lw $t8, ($v1) +/* 0CFBD0 7F09B0A0 AF002A34 */ sw $zero, 0x2a34($t8) +/* 0CFBD4 7F09B0A4 8C6E0000 */ lw $t6, ($v1) +/* 0CFBD8 7F09B0A8 ADC82A38 */ sw $t0, 0x2a38($t6) +/* 0CFBDC 7F09B0AC 8C6B0000 */ lw $t3, ($v1) +/* 0CFBE0 7F09B0B0 E5622A3C */ swc1 $f2, 0x2a3c($t3) +/* 0CFBE4 7F09B0B4 8C6F0000 */ lw $t7, ($v1) +/* 0CFBE8 7F09B0B8 E5E22A40 */ swc1 $f2, 0x2a40($t7) +/* 0CFBEC 7F09B0BC 8C790000 */ lw $t9, ($v1) +/* 0CFBF0 7F09B0C0 AF202A58 */ sw $zero, 0x2a58($t9) +/* 0CFBF4 7F09B0C4 8C6C0000 */ lw $t4, ($v1) +/* 0CFBF8 7F09B0C8 AD802A5C */ sw $zero, 0x2a5c($t4) +/* 0CFBFC 7F09B0CC 8C6D0000 */ lw $t5, ($v1) +/* 0CFC00 7F09B0D0 E5A02A60 */ swc1 $f0, 0x2a60($t5) +/* 0CFC04 7F09B0D4 8C780000 */ lw $t8, ($v1) +/* 0CFC08 7F09B0D8 AF002A64 */ sw $zero, 0x2a64($t8) +/* 0CFC0C 7F09B0DC 8C6E0000 */ lw $t6, ($v1) +/* 0CFC10 7F09B0E0 ADC82A68 */ sw $t0, 0x2a68($t6) +/* 0CFC14 7F09B0E4 8C6B0000 */ lw $t3, ($v1) +/* 0CFC18 7F09B0E8 AD602A6C */ sw $zero, 0x2a6c($t3) +/* 0CFC1C 7F09B0EC 8C6F0000 */ lw $t7, ($v1) +/* 0CFC20 7F09B0F0 ADE02A70 */ sw $zero, 0x2a70($t7) +/* 0CFC24 7F09B0F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CFC28 7F09B0F8 AC2864C4 */ sw $t0, %lo(invisible_to_guards_flag)($at) +/* 0CFC2C 7F09B0FC 3C018003 */ lui $at, %hi(obj_collision_flag) +/* 0CFC30 7F09B100 AC2864C8 */ sw $t0, %lo(obj_collision_flag)($at) +/* 0CFC34 7F09B104 03E00008 */ jr $ra +/* 0CFC38 7F09B108 27BD03D0 */ addiu $sp, $sp, 0x3d0 +) +#endif + +#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(ptr_BONDdata_p1) # $t9, 0x8008 +/* 0CFC20 7F09B0B0 27399F50 */ addiu $t9, %lo(ptr_BONDdata_p1) # 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(invisible_to_guards_flag) # $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(invisible_to_guards_flag)($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 + +#endif + + + +#ifdef NONMATCHING +void set_cur_player(PLAYER_ID playernum) +{ + pPlayer = ptr_BONDdata_p1[playernum]; + pPlayersPerm = player1_playerdata[playernum]; + player_num = playernum; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_cur_player +/* 0CFC3C 7F09B10C 00047080 */ sll $t6, $a0, 2 +/* 0CFC40 7F09B110 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0CFC44 7F09B114 01EE7821 */ addu $t7, $t7, $t6 +/* 0CFC48 7F09B118 8DEF9EE0 */ lw $t7, %lo(ptr_BONDdata_p1)($t7) +/* 0CFC4C 7F09B11C 3C018008 */ lui $at, %hi(player_num) +/* 0CFC50 7F09B120 AC24A0B8 */ sw $a0, %lo(player_num)($at) +/* 0CFC54 7F09B124 0004C0C0 */ sll $t8, $a0, 3 +/* 0CFC58 7F09B128 3C018008 */ lui $at, %hi(pPlayer) +/* 0CFC5C 7F09B12C 0304C023 */ subu $t8, $t8, $a0 +/* 0CFC60 7F09B130 3C198008 */ lui $t9, %hi(player1_player_data) +/* 0CFC64 7F09B134 27399EF0 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x6110 +/* 0CFC68 7F09B138 0018C100 */ sll $t8, $t8, 4 +/* 0CFC6C 7F09B13C AC2FA0B0 */ sw $t7, %lo(pPlayer)($at) +/* 0CFC70 7F09B140 3C018008 */ lui $at, %hi(pPlayersPerm) +/* 0CFC74 7F09B144 03194021 */ addu $t0, $t8, $t9 +/* 0CFC78 7F09B148 03E00008 */ jr $ra +/* 0CFC7C 7F09B14C AC28A0B4 */ sw $t0, %lo(pPlayersPerm)($at) +) +#endif + + + + +s32 get_cur_playernum(void) { + return player_num; +} + + + + + + +#ifdef NONMATCHING +void proc_7F09B15C(int position_data_pointer) +{ + Player *pPVar1; + s32 numplayers; + Player **ppPVar2; + int i; + + i = 0; + numplayers = get_num_players(); + if (0 < numplayers) { + ppPVar2 = ptr_BONDdata_p1; + pPVar1 = ptr_BONDdata_p1[0]; + while (ppPVar2 = ppPVar2 + 1, position_data_pointer != pPVar1->position_data_pointer) { + i = i + 1; + numplayers = get_num_players(); + if (numplayers <= i) { + return; + } + pPVar1 = *ppPVar2; + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B15C +/* 0CFC8C 7F09B15C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0CFC90 7F09B160 AFBF0024 */ sw $ra, 0x24($sp) +/* 0CFC94 7F09B164 AFB20020 */ sw $s2, 0x20($sp) +/* 0CFC98 7F09B168 AFB1001C */ sw $s1, 0x1c($sp) +/* 0CFC9C 7F09B16C 00809025 */ move $s2, $a0 +/* 0CFCA0 7F09B170 AFB00018 */ sw $s0, 0x18($sp) +/* 0CFCA4 7F09B174 0FC26919 */ jal get_num_players +/* 0CFCA8 7F09B178 00008825 */ move $s1, $zero +/* 0CFCAC 7F09B17C 18400010 */ blez $v0, .L7F09B1C0 +/* 0CFCB0 7F09B180 00117080 */ sll $t6, $s1, 2 +/* 0CFCB4 7F09B184 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0CFCB8 7F09B188 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0CFCBC 7F09B18C 01CF8021 */ addu $s0, $t6, $t7 +/* 0CFCC0 7F09B190 8E180000 */ lw $t8, ($s0) +.L7F09B194: +/* 0CFCC4 7F09B194 26100004 */ addiu $s0, $s0, 4 +/* 0CFCC8 7F09B198 8F1900A8 */ lw $t9, 0xa8($t8) +/* 0CFCCC 7F09B19C 16590003 */ bne $s2, $t9, .L7F09B1AC +/* 0CFCD0 7F09B1A0 00000000 */ nop +/* 0CFCD4 7F09B1A4 10000007 */ b .L7F09B1C4 +/* 0CFCD8 7F09B1A8 02201025 */ move $v0, $s1 +.L7F09B1AC: +/* 0CFCDC 7F09B1AC 0FC26919 */ jal get_num_players +/* 0CFCE0 7F09B1B0 26310001 */ addiu $s1, $s1, 1 +/* 0CFCE4 7F09B1B4 0222082A */ slt $at, $s1, $v0 +/* 0CFCE8 7F09B1B8 5420FFF6 */ bnezl $at, .L7F09B194 +/* 0CFCEC 7F09B1BC 8E180000 */ lw $t8, ($s0) +.L7F09B1C0: +/* 0CFCF0 7F09B1C0 2402FFFF */ li $v0, -1 +.L7F09B1C4: +/* 0CFCF4 7F09B1C4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0CFCF8 7F09B1C8 8FB00018 */ lw $s0, 0x18($sp) +/* 0CFCFC 7F09B1CC 8FB1001C */ lw $s1, 0x1c($sp) +/* 0CFD00 7F09B1D0 8FB20020 */ lw $s2, 0x20($sp) +/* 0CFD04 7F09B1D4 03E00008 */ jr $ra +/* 0CFD08 7F09B1D8 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void set_cur_player_screen_size(u32 width, u32 height) { + pPlayer->viewx = width; + pPlayer->viewy = height; +} + +void set_cur_player_viewport_size(u32 ulx, u32 uly) { + pPlayer->viewleft = ulx; + pPlayer->viewtop = uly; +} + +void set_cur_player_fovy(f32 fovy) { + pPlayer->fovy = fovy; +} + +void set_cur_player_aspect(f32 aspect) { + pPlayer->aspect = aspect; +} + +f32 get_cur_player_fovy(void) { + return pPlayer->fovy; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B244(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005762C*/ +glabel jpt_weapon_multi +.word weapon_multi_none +.word weapon_multi_none +.word weapon_multi_hunting_knife +.word weapon_multi_throwing_knife +.word weapon_multi_pp7 +.word weapon_multi_pp7_silent +.word weapon_multi_dd44 +.word weapon_multi_klobb +.word weapon_multi_kf7 +.word weapon_multi_zmg +.word weapon_multi_d5k +.word weapon_multi_d5k_silent +.word weapon_multi_phantom +.word weapon_multi_ar33 +.word weapon_multi_rcp90 +.word weapon_multi_shotgun +.word weapon_multi_auto_shot +.word weapon_multi_sniper +.word weapon_multi_cougar +.word weapon_multi_goldengun +.word weapon_multi_pp7_special1 +.word weapon_multi_pp7_special2 +.word weapon_multi_moonraker +/*.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_7F09B244 +/* 0CFD74 7F09B244 28810020 */ slti $at, $a0, 0x20 +/* 0CFD78 7F09B248 14200006 */ bnez $at, .L7F09B264 +/* 0CFD7C 7F09B24C 2403FFFF */ li $v1, -1 +/* 0CFD80 7F09B250 24010058 */ li $at, 88 +/* 0CFD84 7F09B254 50810042 */ beql $a0, $at, .L7F09B360 +/* 0CFD88 7F09B258 2403014D */ li $v1, 333 +/* 0CFD8C 7F09B25C 03E00008 */ jr $ra +/* 0CFD90 7F09B260 00601025 */ move $v0, $v1 + +.L7F09B264: +/* 0CFD94 7F09B264 2C810020 */ sltiu $at, $a0, 0x20 +/* 0CFD98 7F09B268 1020003D */ beqz $at, .L7F09B360 +/* 0CFD9C 7F09B26C 00047080 */ sll $t6, $a0, 2 +/* 0CFDA0 7F09B270 3C018005 */ lui $at, %hi(jpt_weapon_multi) +/* 0CFDA4 7F09B274 002E0821 */ addu $at, $at, $t6 +/* 0CFDA8 7F09B278 8C2E762C */ lw $t6, %lo(jpt_weapon_multi)($at) +/* 0CFDAC 7F09B27C 01C00008 */ jr $t6 +/* 0CFDB0 7F09B280 00000000 */ nop +weapon_multi_hunting_knife: +/* 0CFDB4 7F09B284 03E00008 */ jr $ra +/* 0CFDB8 7F09B288 240200BA */ li $v0, 186 + +weapon_multi_pp7: +/* 0CFDBC 7F09B28C 03E00008 */ jr $ra +/* 0CFDC0 7F09B290 240200BF */ li $v0, 191 + +weapon_multi_klobb: +/* 0CFDC4 7F09B294 03E00008 */ jr $ra +/* 0CFDC8 7F09B298 240200C1 */ li $v0, 193 + +weapon_multi_kf7: +/* 0CFDCC 7F09B29C 03E00008 */ jr $ra +/* 0CFDD0 7F09B2A0 240200B8 */ li $v0, 184 + +weapon_multi_zmg: +/* 0CFDD4 7F09B2A4 03E00008 */ jr $ra +/* 0CFDD8 7F09B2A8 240200C3 */ li $v0, 195 + +weapon_multi_d5k: +/* 0CFDDC 7F09B2AC 03E00008 */ jr $ra +/* 0CFDE0 7F09B2B0 240200BD */ li $v0, 189 + +weapon_multi_phantom: +/* 0CFDE4 7F09B2B4 03E00008 */ jr $ra +/* 0CFDE8 7F09B2B8 240200C2 */ li $v0, 194 + +weapon_multi_ar33: +/* 0CFDEC 7F09B2BC 03E00008 */ jr $ra +/* 0CFDF0 7F09B2C0 240200BC */ li $v0, 188 + +weapon_multi_rcp90: +/* 0CFDF4 7F09B2C4 03E00008 */ jr $ra +/* 0CFDF8 7F09B2C8 240200C5 */ li $v0, 197 + +weapon_multi_shotgun: +/* 0CFDFC 7F09B2CC 03E00008 */ jr $ra +/* 0CFE00 7F09B2D0 240200C0 */ li $v0, 192 + +weapon_multi_grenade_laun: +/* 0CFE04 7F09B2D4 03E00008 */ jr $ra +/* 0CFE08 7F09B2D8 240200B9 */ li $v0, 185 + +weapon_multi_hand: +/* 0CFE0C 7F09B2DC 03E00008 */ jr $ra +/* 0CFE10 7F09B2E0 240200C4 */ li $v0, 196 + +weapon_multi_remote: +/* 0CFE14 7F09B2E4 03E00008 */ jr $ra +/* 0CFE18 7F09B2E8 240200C7 */ li $v0, 199 + +weapon_multi_prox: +/* 0CFE1C 7F09B2EC 03E00008 */ jr $ra +/* 0CFE20 7F09B2F0 240200C8 */ li $v0, 200 + +weapon_multi_timed: +/* 0CFE24 7F09B2F4 03E00008 */ jr $ra +/* 0CFE28 7F09B2F8 240200C9 */ li $v0, 201 + +weapon_multi_cougar: +/* 0CFE2C 7F09B2FC 03E00008 */ jr $ra +/* 0CFE30 7F09B300 240200BE */ li $v0, 190 + +weapon_multi_moonraker: +/* 0CFE34 7F09B304 03E00008 */ jr $ra +/* 0CFE38 7F09B308 240200BB */ li $v0, 187 + +weapon_multi_sniper: +/* 0CFE3C 7F09B30C 03E00008 */ jr $ra +/* 0CFE40 7F09B310 240200D2 */ li $v0, 210 + +weapon_multi_d5k_silent: +/* 0CFE44 7F09B314 03E00008 */ jr $ra +/* 0CFE48 7F09B318 240200CE */ li $v0, 206 + +weapon_multi_dd44: +/* 0CFE4C 7F09B31C 03E00008 */ jr $ra +/* 0CFE50 7F09B320 240200CD */ li $v0, 205 + +weapon_multi_pp7_silent: +/* 0CFE54 7F09B324 03E00008 */ jr $ra +/* 0CFE58 7F09B328 240200CC */ li $v0, 204 + +weapon_multi_throwing_knife: +/* 0CFE5C 7F09B32C 03E00008 */ jr $ra +/* 0CFE60 7F09B330 240200D1 */ li $v0, 209 + +weapon_multi_auto_shot: +/* 0CFE64 7F09B334 03E00008 */ jr $ra +/* 0CFE68 7F09B338 240200CF */ li $v0, 207 + +weapon_multi_rocket_launch: +/* 0CFE6C 7F09B33C 03E00008 */ jr $ra +/* 0CFE70 7F09B340 240200D3 */ li $v0, 211 + +weapon_multi_goldengun: +/* 0CFE74 7F09B344 03E00008 */ jr $ra +/* 0CFE78 7F09B348 240200D0 */ li $v0, 208 + +weapon_multi_pp7_special1: +/* 0CFE7C 7F09B34C 03E00008 */ jr $ra +/* 0CFE80 7F09B350 240200BF */ li $v0, 191 + +weapon_multi_pp7_special2: +/* 0CFE84 7F09B354 03E00008 */ jr $ra +/* 0CFE88 7F09B358 240200BF */ li $v0, 191 + +/* 0CFE8C 7F09B35C 2403014D */ li $v1, 333 +weapon_multi_none: +.L7F09B360: +/* 0CFE90 7F09B360 03E00008 */ jr $ra +/* 0CFE94 7F09B364 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B368(s32 arg0) { + // Node 0 + return set_0x4_in_runtime_flags_for_item_in_guards_hand(pPlayer->unkA8->unk4, arg0); +} + +#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(pPlayer) +/* 0CFE9C 7F09B36C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($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 set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 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 +s32 sub_GAME_7F09B398(s32 arg0) { + s32 sp24; + s32 sp30; + s32 sp34; + s32 temp_v1; + ? temp_ret; + s32 temp_ret_2; + ? phi_a3; + s32 phi_return; + + // Node 0 + temp_v1 = (arg0 * 4); + phi_return = pPlayer->unkA8->unk4; + if ((pPlayer->unkA8->unk4 + temp_v1)->unk160 == 0) + { + // Node 1 + sp34 = (s32) pPlayer->unkA8->unk4; + sp24 = temp_v1; + temp_ret = get_item_in_hand(); + sp30 = temp_ret; + temp_ret_2 = sub_GAME_7F09B244(temp_ret); + phi_return = temp_ret_2; + if (temp_ret_2 >= 0) + { + // Node 2 + if (temp_v1 == 0) + { + // Node 3 + phi_a3 = 0; + } + else + { + // Node 4 + phi_a3 = 0x10000000; + } + // Node 5 + phi_return = something_with_generating_object(sp34, temp_ret_2, sp30, phi_a3, 0, 0); + } + } + // Node 6 + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.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_7F09B398 +/* 0CFEC8 7F09B398 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0CFECC 7F09B39C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0CFED0 7F09B3A0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0CFED4 7F09B3A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0CFED8 7F09B3A8 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0CFEDC 7F09B3AC 00041880 */ sll $v1, $a0, 2 +/* 0CFEE0 7F09B3B0 8DE20004 */ lw $v0, 4($t7) +/* 0CFEE4 7F09B3B4 0043C021 */ addu $t8, $v0, $v1 +/* 0CFEE8 7F09B3B8 8F190160 */ lw $t9, 0x160($t8) +/* 0CFEEC 7F09B3BC 57200014 */ bnezl $t9, .L7F09B410 +/* 0CFEF0 7F09B3C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0CFEF4 7F09B3C4 AFA20034 */ sw $v0, 0x34($sp) +/* 0CFEF8 7F09B3C8 0FC17674 */ jal get_item_in_hand +/* 0CFEFC 7F09B3CC AFA30024 */ sw $v1, 0x24($sp) +/* 0CFF00 7F09B3D0 AFA20030 */ sw $v0, 0x30($sp) +/* 0CFF04 7F09B3D4 0FC26C91 */ jal sub_GAME_7F09B244 +/* 0CFF08 7F09B3D8 00402025 */ move $a0, $v0 +/* 0CFF0C 7F09B3DC 8FA30024 */ lw $v1, 0x24($sp) +/* 0CFF10 7F09B3E0 0440000A */ bltz $v0, .L7F09B40C +/* 0CFF14 7F09B3E4 00402825 */ move $a1, $v0 +/* 0CFF18 7F09B3E8 14600003 */ bnez $v1, .L7F09B3F8 +/* 0CFF1C 7F09B3EC 8FA40034 */ lw $a0, 0x34($sp) +/* 0CFF20 7F09B3F0 10000002 */ b .L7F09B3FC +/* 0CFF24 7F09B3F4 00003825 */ move $a3, $zero +.L7F09B3F8: +/* 0CFF28 7F09B3F8 3C071000 */ lui $a3, 0x1000 +.L7F09B3FC: +/* 0CFF2C 7F09B3FC 8FA60030 */ lw $a2, 0x30($sp) +/* 0CFF30 7F09B400 AFA00010 */ sw $zero, 0x10($sp) +/* 0CFF34 7F09B404 0FC14885 */ jal something_with_generating_object +/* 0CFF38 7F09B408 AFA00014 */ sw $zero, 0x14($sp) +.L7F09B40C: +/* 0CFF3C 7F09B40C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09B410: +/* 0CFF40 7F09B410 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0CFF44 7F09B414 03E00008 */ jr $ra +/* 0CFF48 7F09B418 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B41C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B41C +/* 0CFF4C 7F09B41C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0CFF50 7F09B420 AFB1001C */ sw $s1, 0x1c($sp) +/* 0CFF54 7F09B424 AFB00018 */ sw $s0, 0x18($sp) +/* 0CFF58 7F09B428 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007A0C0) +/* 0CFF5C 7F09B42C AFBF002C */ sw $ra, 0x2c($sp) +/* 0CFF60 7F09B430 AFB40028 */ sw $s4, 0x28($sp) +/* 0CFF64 7F09B434 AFB30024 */ sw $s3, 0x24($sp) +/* 0CFF68 7F09B438 AFB20020 */ sw $s2, 0x20($sp) +/* 0CFF6C 7F09B43C 2631A0C0 */ addiu $s1, %lo(dword_CODE_bss_8007A0C0) # addiu $s1, $s1, -0x5f40 +/* 0CFF70 7F09B440 00008025 */ move $s0, $zero +.L7F09B444: +/* 0CFF74 7F09B444 AE300000 */ sw $s0, ($s1) +/* 0CFF78 7F09B448 26100001 */ addiu $s0, $s0, 1 +/* 0CFF7C 7F09B44C 2A010004 */ slti $at, $s0, 4 +/* 0CFF80 7F09B450 1420FFFC */ bnez $at, .L7F09B444 +/* 0CFF84 7F09B454 26310004 */ addiu $s1, $s1, 4 +/* 0CFF88 7F09B458 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0C0) +/* 0CFF8C 7F09B45C 25D2A0C0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007A0C0) +/* 0CFF90 7F09B460 02408825 */ move $s1, $s2 +/* 0CFF94 7F09B464 00008025 */ move $s0, $zero +/* 0CFF98 7F09B468 24140003 */ li $s4, 3 +/* 0CFF9C 7F09B46C 24130004 */ li $s3, 4 +.L7F09B470: +/* 0CFFA0 7F09B470 0C002914 */ jal get_random_value +/* 0CFFA4 7F09B474 00000000 */ nop +/* 0CFFA8 7F09B478 02707823 */ subu $t7, $s3, $s0 +/* 0CFFAC 7F09B47C 004F001B */ divu $zero, $v0, $t7 +/* 0CFFB0 7F09B480 0000C010 */ mfhi $t8 +/* 0CFFB4 7F09B484 0018C880 */ sll $t9, $t8, 2 +/* 0CFFB8 7F09B488 02591821 */ addu $v1, $s2, $t9 +/* 0CFFBC 7F09B48C 8C680000 */ lw $t0, ($v1) +/* 0CFFC0 7F09B490 8E240000 */ lw $a0, ($s1) +/* 0CFFC4 7F09B494 26100001 */ addiu $s0, $s0, 1 +/* 0CFFC8 7F09B498 15E00002 */ bnez $t7, .L7F09B4A4 +/* 0CFFCC 7F09B49C 00000000 */ nop +/* 0CFFD0 7F09B4A0 0007000D */ break 7 +.L7F09B4A4: +/* 0CFFD4 7F09B4A4 AE280000 */ sw $t0, ($s1) +/* 0CFFD8 7F09B4A8 26520004 */ addiu $s2, $s2, 4 +/* 0CFFDC 7F09B4AC 26310004 */ addiu $s1, $s1, 4 +/* 0CFFE0 7F09B4B0 1614FFEF */ bne $s0, $s4, .L7F09B470 +/* 0CFFE4 7F09B4B4 AC640000 */ sw $a0, ($v1) +/* 0CFFE8 7F09B4B8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0CFFEC 7F09B4BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0CFFF0 7F09B4C0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0CFFF4 7F09B4C4 8FB20020 */ lw $s2, 0x20($sp) +/* 0CFFF8 7F09B4C8 8FB30024 */ lw $s3, 0x24($sp) +/* 0CFFFC 7F09B4CC 8FB40028 */ lw $s4, 0x28($sp) +/* 0D0000 7F09B4D0 03E00008 */ jr $ra +/* 0D0004 7F09B4D4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F09B4D8(s32 arg0) { + s32 temp_v0; + void *temp_a1; + void *phi_a1; + s32 phi_v1; + s32 phi_v1_2; + s32 phi_v1_3; + + // Node 0 + phi_a1 = &dword_CODE_bss_8007A0C0; + phi_v1_3 = 0; +loop_1: + // Node 1 + temp_v0 = *phi_a1; + temp_a1 = (phi_a1 + 4); + phi_v1 = phi_v1_3; + if (arg0 != temp_v0) + { + // Node 2 + phi_v1_2 = phi_v1_3; + if (*(&ptr_BONDdata_p1 + (temp_v0 * 4)) != 0) + { + // Node 3 + phi_v1_2 = (phi_v1_3 + 1); + } + // Node 4 + phi_a1 = temp_a1; + phi_v1 = phi_v1_2; + phi_v1_3 = phi_v1_2; + if (temp_a1 != &dword_CODE_bss_8007A0D0) + { + goto loop_1; + } + } + // Node 5 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B4D8 +/* 0D0008 7F09B4D8 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A0C0) +/* 0D000C 7F09B4DC 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0D0) +/* 0D0010 7F09B4E0 3C068008 */ lui $a2, %hi(ptr_BONDdata_p1) +/* 0D0014 7F09B4E4 00001825 */ move $v1, $zero +/* 0D0018 7F09B4E8 24C69EE0 */ addiu $a2, %lo(ptr_BONDdata_p1) # addiu $a2, $a2, -0x6120 +/* 0D001C 7F09B4EC 24E7A0D0 */ addiu $a3, %lo(dword_CODE_bss_8007A0D0) # addiu $a3, $a3, -0x5f30 +/* 0D0020 7F09B4F0 24A5A0C0 */ addiu $a1, %lo(dword_CODE_bss_8007A0C0) # addiu $a1, $a1, -0x5f40 +/* 0D0024 7F09B4F4 8CA20000 */ lw $v0, ($a1) +.L7F09B4F8: +/* 0D0028 7F09B4F8 24A50004 */ addiu $a1, $a1, 4 +/* 0D002C 7F09B4FC 10820008 */ beq $a0, $v0, .L7F09B520 +/* 0D0030 7F09B500 00027080 */ sll $t6, $v0, 2 +/* 0D0034 7F09B504 00CE7821 */ addu $t7, $a2, $t6 +/* 0D0038 7F09B508 8DF80000 */ lw $t8, ($t7) +/* 0D003C 7F09B50C 13000002 */ beqz $t8, .L7F09B518 +/* 0D0040 7F09B510 00000000 */ nop +/* 0D0044 7F09B514 24630001 */ addiu $v1, $v1, 1 +.L7F09B518: +/* 0D0048 7F09B518 54A7FFF7 */ bnel $a1, $a3, .L7F09B4F8 +/* 0D004C 7F09B51C 8CA20000 */ lw $v0, ($a1) +.L7F09B520: +/* 0D0050 7F09B520 03E00008 */ jr $ra +/* 0D0054 7F09B524 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +int proc_7F09B528(int param_1) +{ + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C0] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C0; + } + param_1--; + } + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C4] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C4; + } + param_1--; + } + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C8] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C8; + } + param_1--; + } + if ((ptr_BONDdata_p1[dword_CODE_bss_8007A0CC] != NULL) && (param_1 == 0)) { + return dword_CODE_bss_8007A0CC; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B528 +/* 0D0058 7F09B528 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C0) +/* 0D005C 7F09B52C 8C63A0C0 */ lw $v1, %lo(dword_CODE_bss_8007A0C0)($v1) +/* 0D0060 7F09B530 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0D0064 7F09B534 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0D0068 7F09B538 00037080 */ sll $t6, $v1, 2 +/* 0D006C 7F09B53C 004E7821 */ addu $t7, $v0, $t6 +/* 0D0070 7F09B540 8DF80000 */ lw $t8, ($t7) +/* 0D0074 7F09B544 13000006 */ beqz $t8, .L7F09B560 +/* 0D0078 7F09B548 00000000 */ nop +/* 0D007C 7F09B54C 54800004 */ bnezl $a0, .L7F09B560 +/* 0D0080 7F09B550 2484FFFF */ addiu $a0, $a0, -1 +/* 0D0084 7F09B554 03E00008 */ jr $ra +/* 0D0088 7F09B558 00601025 */ move $v0, $v1 + +/* 0D008C 7F09B55C 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B560: +/* 0D0090 7F09B560 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C4) +/* 0D0094 7F09B564 8C63A0C4 */ lw $v1, %lo(dword_CODE_bss_8007A0C4)($v1) +/* 0D0098 7F09B568 0003C880 */ sll $t9, $v1, 2 +/* 0D009C 7F09B56C 00594021 */ addu $t0, $v0, $t9 +/* 0D00A0 7F09B570 8D090000 */ lw $t1, ($t0) +/* 0D00A4 7F09B574 11200006 */ beqz $t1, .L7F09B590 +/* 0D00A8 7F09B578 00000000 */ nop +/* 0D00AC 7F09B57C 54800004 */ bnezl $a0, .L7F09B590 +/* 0D00B0 7F09B580 2484FFFF */ addiu $a0, $a0, -1 +/* 0D00B4 7F09B584 03E00008 */ jr $ra +/* 0D00B8 7F09B588 00601025 */ move $v0, $v1 + +/* 0D00BC 7F09B58C 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B590: +/* 0D00C0 7F09B590 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C8) +/* 0D00C4 7F09B594 8C63A0C8 */ lw $v1, %lo(dword_CODE_bss_8007A0C8)($v1) +/* 0D00C8 7F09B598 00035080 */ sll $t2, $v1, 2 +/* 0D00CC 7F09B59C 004A5821 */ addu $t3, $v0, $t2 +/* 0D00D0 7F09B5A0 8D6C0000 */ lw $t4, ($t3) +/* 0D00D4 7F09B5A4 11800006 */ beqz $t4, .L7F09B5C0 +/* 0D00D8 7F09B5A8 00000000 */ nop +/* 0D00DC 7F09B5AC 54800004 */ bnezl $a0, .L7F09B5C0 +/* 0D00E0 7F09B5B0 2484FFFF */ addiu $a0, $a0, -1 +/* 0D00E4 7F09B5B4 03E00008 */ jr $ra +/* 0D00E8 7F09B5B8 00601025 */ move $v0, $v1 + +/* 0D00EC 7F09B5BC 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B5C0: +/* 0D00F0 7F09B5C0 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0CC) +/* 0D00F4 7F09B5C4 8C63A0CC */ lw $v1, %lo(dword_CODE_bss_8007A0CC)($v1) +/* 0D00F8 7F09B5C8 00036880 */ sll $t5, $v1, 2 +/* 0D00FC 7F09B5CC 004D7021 */ addu $t6, $v0, $t5 +/* 0D0100 7F09B5D0 8DCF0000 */ lw $t7, ($t6) +/* 0D0104 7F09B5D4 00001025 */ move $v0, $zero +/* 0D0108 7F09B5D8 11E00005 */ beqz $t7, .L7F09B5F0 +/* 0D010C 7F09B5DC 00000000 */ nop +/* 0D0110 7F09B5E0 14800003 */ bnez $a0, .L7F09B5F0 +/* 0D0114 7F09B5E4 00000000 */ nop +/* 0D0118 7F09B5E8 03E00008 */ jr $ra +/* 0D011C 7F09B5EC 00601025 */ move $v0, $v1 + +.L7F09B5F0: +/* 0D0120 7F09B5F0 03E00008 */ jr $ra +/* 0D0124 7F09B5F4 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_093880.h b/src/game/unk_093880.h new file mode 100644 index 0000000..61e3374 --- /dev/null +++ b/src/game/unk_093880.h @@ -0,0 +1,47 @@ +#ifndef _UNK_093880_H_ +#define _UNK_093880_H_ +#include "ultra64.h" +#include "game/bond.h" + +struct player_data { + int shots_fired; + int head_hits; + int body_hits; + int leg_hits; + int other_hit_weapon; + int other_hit_hat; + int other_hit_objects; + int kill_count; + int killed_gg_owner_count; + int killed_p1; + int killed_p2; + int killed_p3; + int killed_p4; + int time_other_players_on_screen; + float distance_traveled; + int damage_to_backside; + float body_armor_pickups; + int min_time_between_kills; + int max_time_between_kills; + int longest_inning; + s32 shortest_inning; + int most_killed_one_life; + int most_killed_one_time; + float handicap; + int flag_counter; + float player_perspective_height; + char order_out_in_yolt; + char have_token_or_goldengun; + char autoaim; + char sight; + int killed_civilians; +}; + +extern struct player_data player1_player_data; +extern struct player_data player2_player_data; +extern struct player_data player3_player_data; +extern struct player_data player4_player_data; + +extern struct Player * pPlayer; +extern struct player_data *pPlayersPerm; +#endif diff --git a/src/game/unk_09B600.c b/src/game/unk_09B600.c new file mode 100644 index 0000000..6461979 --- /dev/null +++ b/src/game/unk_09B600.c @@ -0,0 +1,101 @@ +#include "ultra64.h" + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B600 +/* 0D0130 7F09B600 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D0134 7F09B604 3C0E8F80 */ lui $t6, (0x8F809F47 >> 16) # lui $t6, 0x8f80 # seed for save profile checksum confirmation +/* 0D0138 7F09B608 3C0F3108 */ lui $t7, (0x3108B3C1 >> 16) # lui $t7, 0x3108 +/* 0D013C 7F09B60C AFB50028 */ sw $s5, 0x28($sp) +/* 0D0140 7F09B610 AFB40024 */ sw $s4, 0x24($sp) +/* 0D0144 7F09B614 AFB30020 */ sw $s3, 0x20($sp) +/* 0D0148 7F09B618 AFB10018 */ sw $s1, 0x18($sp) +/* 0D014C 7F09B61C AFB00014 */ sw $s0, 0x14($sp) +/* 0D0150 7F09B620 35EFB3C1 */ ori $t7, (0x3108B3C1 & 0xFFFF) # ori $t7, $t7, 0xb3c1 +/* 0D0154 7F09B624 35CE9F47 */ ori $t6, (0x8F809F47 & 0xFFFF) # ori $t6, $t6, 0x9f47 +/* 0D0158 7F09B628 0085082B */ sltu $at, $a0, $a1 # +/* 0D015C 7F09B62C 00A0A825 */ move $s5, $a1 +/* 0D0160 7F09B630 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D0164 7F09B634 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D0168 7F09B638 AFA60060 */ sw $a2, 0x60($sp) +/* 0D016C 7F09B63C 00803825 */ move $a3, $a0 +/* 0D0170 7F09B640 00008825 */ move $s1, $zero +/* 0D0174 7F09B644 AFAE0048 */ sw $t6, 0x48($sp) +/* 0D0178 7F09B648 AFAF004C */ sw $t7, 0x4c($sp) +/* 0D017C 7F09B64C 00009825 */ move $s3, $zero +/* 0D0180 7F09B650 0000A025 */ move $s4, $zero +/* 0D0184 7F09B654 10200016 */ beqz $at, .L7F09B6B0 +/* 0D0188 7F09B658 00808025 */ move $s0, $a0 +/* 0D018C 7F09B65C AFA40058 */ sw $a0, 0x58($sp) +/* 0D0190 7F09B660 27B20048 */ addiu $s2, $sp, 0x48 +.L7F09B664: +/* 0D0194 7F09B664 92180000 */ lbu $t8, ($s0) +/* 0D0198 7F09B668 8FAD004C */ lw $t5, 0x4c($sp) +/* 0D019C 7F09B66C 3239000F */ andi $t9, $s1, 0xf +/* 0D01A0 7F09B670 03384004 */ sllv $t0, $t8, $t9 +/* 0D01A4 7F09B674 8FAC0048 */ lw $t4, 0x48($sp) +/* 0D01A8 7F09B678 010D7821 */ addu $t7, $t0, $t5 +/* 0D01AC 7F09B67C 000857C3 */ sra $t2, $t0, 0x1f +/* 0D01B0 7F09B680 01ED082B */ sltu $at, $t7, $t5 +/* 0D01B4 7F09B684 002A7021 */ addu $t6, $at, $t2 +/* 0D01B8 7F09B688 01CC7021 */ addu $t6, $t6, $t4 +/* 0D01BC 7F09B68C AFAE0048 */ sw $t6, 0x48($sp) +/* 0D01C0 7F09B690 AFAF004C */ sw $t7, 0x4c($sp) +/* 0D01C4 7F09B694 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D01C8 7F09B698 02402025 */ move $a0, $s2 +/* 0D01CC 7F09B69C 26100001 */ addiu $s0, $s0, 1 +/* 0D01D0 7F09B6A0 26310007 */ addiu $s1, $s1, 7 +/* 0D01D4 7F09B6A4 1615FFEF */ bne $s0, $s5, .L7F09B664 +/* 0D01D8 7F09B6A8 02629826 */ xor $s3, $s3, $v0 +/* 0D01DC 7F09B6AC 8FA70058 */ lw $a3, 0x58($sp) +.L7F09B6B0: +/* 0D01E0 7F09B6B0 26B0FFFF */ addiu $s0, $s5, -1 +/* 0D01E4 7F09B6B4 0207082B */ sltu $at, $s0, $a3 +/* 0D01E8 7F09B6B8 14200014 */ bnez $at, .L7F09B70C +/* 0D01EC 7F09B6BC 27B20048 */ addiu $s2, $sp, 0x48 +/* 0D01F0 7F09B6C0 24F5FFFF */ addiu $s5, $a3, -1 +.L7F09B6C4: +/* 0D01F4 7F09B6C4 92090000 */ lbu $t1, ($s0) +/* 0D01F8 7F09B6C8 8FAB004C */ lw $t3, 0x4c($sp) +/* 0D01FC 7F09B6CC 3238000F */ andi $t8, $s1, 0xf +/* 0D0200 7F09B6D0 0309C804 */ sllv $t9, $t1, $t8 +/* 0D0204 7F09B6D4 8FAA0048 */ lw $t2, 0x48($sp) +/* 0D0208 7F09B6D8 032B6821 */ addu $t5, $t9, $t3 +/* 0D020C 7F09B6DC 001947C3 */ sra $t0, $t9, 0x1f +/* 0D0210 7F09B6E0 01AB082B */ sltu $at, $t5, $t3 +/* 0D0214 7F09B6E4 00286021 */ addu $t4, $at, $t0 +/* 0D0218 7F09B6E8 018A6021 */ addu $t4, $t4, $t2 +/* 0D021C 7F09B6EC AFAC0048 */ sw $t4, 0x48($sp) +/* 0D0220 7F09B6F0 AFAD004C */ sw $t5, 0x4c($sp) +/* 0D0224 7F09B6F4 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D0228 7F09B6F8 02402025 */ move $a0, $s2 +/* 0D022C 7F09B6FC 2610FFFF */ addiu $s0, $s0, -1 +/* 0D0230 7F09B700 26310003 */ addiu $s1, $s1, 3 +/* 0D0234 7F09B704 1615FFEF */ bne $s0, $s5, .L7F09B6C4 +/* 0D0238 7F09B708 0282A026 */ xor $s4, $s4, $v0 +.L7F09B70C: +/* 0D023C 7F09B70C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0D0240 7F09B710 ADD30000 */ sw $s3, ($t6) +/* 0D0244 7F09B714 ADD40004 */ sw $s4, 4($t6) +/* 0D0248 7F09B718 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D024C 7F09B71C 8FB50028 */ lw $s5, 0x28($sp) +/* 0D0250 7F09B720 8FB40024 */ lw $s4, 0x24($sp) +/* 0D0254 7F09B724 8FB30020 */ lw $s3, 0x20($sp) +/* 0D0258 7F09B728 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D025C 7F09B72C 8FB10018 */ lw $s1, 0x18($sp) +/* 0D0260 7F09B730 8FB00014 */ lw $s0, 0x14($sp) +/* 0D0264 7F09B734 03E00008 */ jr $ra +/* 0D0268 7F09B738 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + diff --git a/src/game/unk_09B740.c b/src/game/unk_09B740.c new file mode 100644 index 0000000..5a5ba7a --- /dev/null +++ b/src/game/unk_09B740.c @@ -0,0 +1,60 @@ +#include "ultra64.h" + + +// data +//D:80040160 +u64 random_val = 0xAB8D9F7781280783; + + + +#ifdef NONMATCHING +void sub_GAME_7F09B740(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B740 +/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(random_val) +/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(random_val)($a0) +/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(random_val) +/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f +/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f +/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0 +/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc +/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1 +/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0 +/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0 +/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14 +/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff +/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2 +/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0 +/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(random_val)($at) +/* 0D02B0 7F09B780 03E00008 */ jr $ra +/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B788(u64 param_1) +{ + random_val = param_1 + 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B788 +/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1 +/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(random_val) +/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(random_val)($at) +/* 0D02C4 7F09B794 03E00008 */ jr $ra +/* 0D02C8 7F09B798 24040000 */ li $a0, 0 +) +#endif + + diff --git a/src/game/unk_09B7A0.c b/src/game/unk_09B7A0.c new file mode 100644 index 0000000..d322af8 --- /dev/null +++ b/src/game/unk_09B7A0.c @@ -0,0 +1,871 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007A0D0 +s32 dword_CODE_bss_8007A0D0; +//CODE.bss:8007A0D4 +s32 dword_CODE_bss_8007A0D4; +//CODE.bss:8007A0D8 +s32 dword_CODE_bss_8007A0D8; +//CODE.bss:8007A0DC +s32 dword_CODE_bss_8007A0DC; +//CODE.bss:8007A0E0 +s32 dword_CODE_bss_8007A0E0; +//CODE.bss:8007A0E4 +s32 dword_CODE_bss_8007A0E4; +//CODE.bss:8007A0E8 +s32 dword_CODE_bss_8007A0E8; +//CODE.bss:8007A0EC +s32 dword_CODE_bss_8007A0EC; +//CODE.bss:8007A0F0 +s16 word_CODE_bss_8007A0F0; +//CODE.bss:8007A0F2 +s16 word_CODE_bss_8007A0F2; + + + +void null_init_main_1(void) { + return; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B7A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B7A8 +/* 0D02D8 7F09B7A8 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0D4) +/* 0D02DC 7F09B7AC 8C63A0D4 */ lw $v1, %lo(dword_CODE_bss_8007A0D4)($v1) +/* 0D02E0 7F09B7B0 00001025 */ move $v0, $zero +/* 0D02E4 7F09B7B4 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0E8) +/* 0D02E8 7F09B7B8 18600008 */ blez $v1, .L7F09B7DC +/* 0D02EC 7F09B7BC 00032880 */ sll $a1, $v1, 2 +/* 0D02F0 7F09B7C0 00A32821 */ addu $a1, $a1, $v1 +/* 0D02F4 7F09B7C4 00052880 */ sll $a1, $a1, 2 +/* 0D02F8 7F09B7C8 8C84A0E8 */ lw $a0, %lo(dword_CODE_bss_8007A0E8)($a0) +.L7F09B7CC: +/* 0D02FC 7F09B7CC 24420014 */ addiu $v0, $v0, 0x14 +/* 0D0300 7F09B7D0 0045082A */ slt $at, $v0, $a1 +/* 0D0304 7F09B7D4 1420FFFD */ bnez $at, .L7F09B7CC +/* 0D0308 7F09B7D8 24840014 */ addiu $a0, $a0, 0x14 +.L7F09B7DC: +/* 0D030C 7F09B7DC 03E00008 */ jr $ra +/* 0D0310 7F09B7E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B7E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B7E4 +/* 0D0314 7F09B7E4 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0318 7F09B7E8 8C63A0DC */ lw $v1, %lo(dword_CODE_bss_8007A0DC)($v1) +/* 0D031C 7F09B7EC 00001025 */ move $v0, $zero +/* 0D0320 7F09B7F0 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0EC) +/* 0D0324 7F09B7F4 18600008 */ blez $v1, .L7F09B818 +/* 0D0328 7F09B7F8 00032880 */ sll $a1, $v1, 2 +/* 0D032C 7F09B7FC 00A32821 */ addu $a1, $a1, $v1 +/* 0D0330 7F09B800 00052880 */ sll $a1, $a1, 2 +/* 0D0334 7F09B804 8C84A0EC */ lw $a0, %lo(dword_CODE_bss_8007A0EC)($a0) +.L7F09B808: +/* 0D0338 7F09B808 24420014 */ addiu $v0, $v0, 0x14 +/* 0D033C 7F09B80C 0045082A */ slt $at, $v0, $a1 +/* 0D0340 7F09B810 1420FFFD */ bnez $at, .L7F09B808 +/* 0D0344 7F09B814 24840014 */ addiu $a0, $a0, 0x14 +.L7F09B818: +/* 0D0348 7F09B818 03E00008 */ jr $ra +/* 0D034C 7F09B81C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B820(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B820 +/* 0D0350 7F09B820 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D0354 7F09B824 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D0358 7F09B828 0FC26919 */ jal get_num_players +/* 0D035C 7F09B82C 00000000 */ nop +/* 0D0360 7F09B830 28410002 */ slti $at, $v0, 2 +/* 0D0364 7F09B834 1420000F */ bnez $at, .L7F09B874 +/* 0D0368 7F09B838 240201F4 */ li $v0, 500 +/* 0D036C 7F09B83C 240E0BB8 */ li $t6, 3000 +/* 0D0370 7F09B840 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D0374 7F09B844 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D0378 7F09B848 AC2EA0D0 */ sw $t6, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D037C 7F09B84C 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D0380 7F09B850 240F0050 */ li $t7, 80 +/* 0D0384 7F09B854 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0388 7F09B858 AD0F0000 */ sw $t7, ($t0) +/* 0D038C 7F09B85C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D0390 7F09B860 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0394 7F09B864 24030014 */ li $v1, 20 +/* 0D0398 7F09B868 AC22A0D8 */ sw $v0, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D039C 7F09B86C 10000022 */ b .L7F09B8F8 +/* 0D03A0 7F09B870 AD230000 */ sw $v1, ($t1) +.L7F09B874: +/* 0D03A4 7F09B874 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 0D03A8 7F09B878 00000000 */ nop +/* 0D03AC 7F09B87C 2401001E */ li $at, 30 +/* 0D03B0 7F09B880 10410011 */ beq $v0, $at, .L7F09B8C8 +/* 0D03B4 7F09B884 2401001D */ li $at, 29 +/* 0D03B8 7F09B888 1041000F */ beq $v0, $at, .L7F09B8C8 +/* 0D03BC 7F09B88C 24030014 */ li $v1, 20 +/* 0D03C0 7F09B890 240201F4 */ li $v0, 500 +/* 0D03C4 7F09B894 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D03C8 7F09B898 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D03CC 7F09B89C AC22A0D0 */ sw $v0, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D03D0 7F09B8A0 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D03D4 7F09B8A4 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D03D8 7F09B8A8 AD030000 */ sw $v1, ($t0) +/* 0D03DC 7F09B8AC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D03E0 7F09B8B0 241805DC */ li $t8, 1500 +/* 0D03E4 7F09B8B4 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D03E8 7F09B8B8 AC38A0D8 */ sw $t8, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D03EC 7F09B8BC 24190028 */ li $t9, 40 +/* 0D03F0 7F09B8C0 1000000D */ b .L7F09B8F8 +/* 0D03F4 7F09B8C4 AD390000 */ sw $t9, ($t1) +.L7F09B8C8: +/* 0D03F8 7F09B8C8 240201F4 */ li $v0, 500 +/* 0D03FC 7F09B8CC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D0400 7F09B8D0 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D0404 7F09B8D4 AC22A0D0 */ sw $v0, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D0408 7F09B8D8 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D040C 7F09B8DC 24030014 */ li $v1, 20 +/* 0D0410 7F09B8E0 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0414 7F09B8E4 AD030000 */ sw $v1, ($t0) +/* 0D0418 7F09B8E8 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D041C 7F09B8EC 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0420 7F09B8F0 AC22A0D8 */ sw $v0, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D0424 7F09B8F4 AD230000 */ sw $v1, ($t1) +.L7F09B8F8: +/* 0D0428 7F09B8F8 8D040000 */ lw $a0, ($t0) +/* 0D042C 7F09B8FC 24050004 */ li $a1, 4 +/* 0D0430 7F09B900 00045880 */ sll $t3, $a0, 2 +/* 0D0434 7F09B904 01645821 */ addu $t3, $t3, $a0 +/* 0D0438 7F09B908 0C0025C8 */ jal mempAllocBytesInBank +/* 0D043C 7F09B90C 000B2080 */ sll $a0, $t3, 2 +/* 0D0440 7F09B910 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0E8) +/* 0D0444 7F09B914 24C6A0E8 */ addiu $a2, %lo(dword_CODE_bss_8007A0E8) # addiu $a2, $a2, -0x5f18 +/* 0D0448 7F09B918 ACC20000 */ sw $v0, ($a2) +/* 0D044C 7F09B91C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0D0) +/* 0D0450 7F09B920 8C84A0D0 */ lw $a0, %lo(dword_CODE_bss_8007A0D0)($a0) +/* 0D0454 7F09B924 24050004 */ li $a1, 4 +/* 0D0458 7F09B928 00046100 */ sll $t4, $a0, 4 +/* 0D045C 7F09B92C 0C0025C8 */ jal mempAllocBytesInBank +/* 0D0460 7F09B930 01802025 */ move $a0, $t4 +/* 0D0464 7F09B934 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0468 7F09B938 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0E0) +/* 0D046C 7F09B93C AC22A0E0 */ sw $v0, %lo(dword_CODE_bss_8007A0E0)($at) +/* 0D0470 7F09B940 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0474 7F09B944 8D240000 */ lw $a0, ($t1) +/* 0D0478 7F09B948 24050004 */ li $a1, 4 +/* 0D047C 7F09B94C 00046880 */ sll $t5, $a0, 2 +/* 0D0480 7F09B950 01A46821 */ addu $t5, $t5, $a0 +/* 0D0484 7F09B954 0C0025C8 */ jal mempAllocBytesInBank +/* 0D0488 7F09B958 000D2080 */ sll $a0, $t5, 2 +/* 0D048C 7F09B95C 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0490 7F09B960 24E7A0EC */ addiu $a3, %lo(dword_CODE_bss_8007A0EC) # addiu $a3, $a3, -0x5f14 +/* 0D0494 7F09B964 ACE20000 */ sw $v0, ($a3) +/* 0D0498 7F09B968 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0D8) +/* 0D049C 7F09B96C 8C84A0D8 */ lw $a0, %lo(dword_CODE_bss_8007A0D8)($a0) +/* 0D04A0 7F09B970 24050004 */ li $a1, 4 +/* 0D04A4 7F09B974 00047100 */ sll $t6, $a0, 4 +/* 0D04A8 7F09B978 0C0025C8 */ jal mempAllocBytesInBank +/* 0D04AC 7F09B97C 01C02025 */ move $a0, $t6 +/* 0D04B0 7F09B980 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_8007A0D0) +/* 0D04B4 7F09B984 254AA0D0 */ addiu $t2, %lo(dword_CODE_bss_8007A0D0) # addiu $t2, $t2, -0x5f30 +/* 0D04B8 7F09B988 8D4F0000 */ lw $t7, ($t2) +/* 0D04BC 7F09B98C 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A0E4) +/* 0D04C0 7F09B990 24A5A0E4 */ addiu $a1, %lo(dword_CODE_bss_8007A0E4) # addiu $a1, $a1, -0x5f1c +/* 0D04C4 7F09B994 ACA20000 */ sw $v0, ($a1) +/* 0D04C8 7F09B998 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0E8) +/* 0D04CC 7F09B99C 3C018008 */ lui $at, %hi(word_CODE_bss_8007A0F0) +/* 0D04D0 7F09B9A0 24C6A0E8 */ addiu $a2, %lo(dword_CODE_bss_8007A0E8) # addiu $a2, $a2, -0x5f18 +/* 0D04D4 7F09B9A4 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007A0E0) +/* 0D04D8 7F09B9A8 A42FA0F0 */ sh $t7, %lo(word_CODE_bss_8007A0F0)($at) +/* 0D04DC 7F09B9AC 8CD90000 */ lw $t9, ($a2) +/* 0D04E0 7F09B9B0 8F18A0E0 */ lw $t8, %lo(dword_CODE_bss_8007A0E0)($t8) +/* 0D04E4 7F09B9B4 2404FFFF */ li $a0, -1 +/* 0D04E8 7F09B9B8 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D04EC 7F09B9BC AF380000 */ sw $t8, ($t9) +/* 0D04F0 7F09B9C0 8CCC0000 */ lw $t4, ($a2) +/* 0D04F4 7F09B9C4 8D4B0000 */ lw $t3, ($t2) +/* 0D04F8 7F09B9C8 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D04FC 7F09B9CC 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0500 7F09B9D0 A58B000C */ sh $t3, 0xc($t4) +/* 0D0504 7F09B9D4 8CCD0000 */ lw $t5, ($a2) +/* 0D0508 7F09B9D8 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D050C 7F09B9DC 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0510 7F09B9E0 A5A0000E */ sh $zero, 0xe($t5) +/* 0D0514 7F09B9E4 8CCE0000 */ lw $t6, ($a2) +/* 0D0518 7F09B9E8 24E7A0EC */ addiu $a3, %lo(dword_CODE_bss_8007A0EC) # addiu $a3, $a3, -0x5f14 +/* 0D051C 7F09B9EC 24020014 */ li $v0, 20 +/* 0D0520 7F09B9F0 A5C40010 */ sh $a0, 0x10($t6) +/* 0D0524 7F09B9F4 8CCF0000 */ lw $t7, ($a2) +/* 0D0528 7F09B9F8 24030001 */ li $v1, 1 +/* 0D052C 7F09B9FC 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007A0D8) +/* 0D0530 7F09BA00 A5E40012 */ sh $a0, 0x12($t7) +/* 0D0534 7F09BA04 8D180000 */ lw $t8, ($t0) +/* 0D0538 7F09BA08 2B010002 */ slti $at, $t8, 2 +/* 0D053C 7F09BA0C 1420000B */ bnez $at, .L7F09BA3C +/* 0D0540 7F09BA10 00000000 */ nop +/* 0D0544 7F09BA14 8CD90000 */ lw $t9, ($a2) +.L7F09BA18: +/* 0D0548 7F09BA18 24630001 */ addiu $v1, $v1, 1 +/* 0D054C 7F09BA1C 03225821 */ addu $t3, $t9, $v0 +/* 0D0550 7F09BA20 A564000E */ sh $a0, 0xe($t3) +/* 0D0554 7F09BA24 8D0C0000 */ lw $t4, ($t0) +/* 0D0558 7F09BA28 24420014 */ addiu $v0, $v0, 0x14 +/* 0D055C 7F09BA2C 006C082A */ slt $at, $v1, $t4 +/* 0D0560 7F09BA30 5420FFF9 */ bnezl $at, .L7F09BA18 +/* 0D0564 7F09BA34 8CD90000 */ lw $t9, ($a2) +/* 0D0568 7F09BA38 24030001 */ li $v1, 1 +.L7F09BA3C: +/* 0D056C 7F09BA3C 8DADA0D8 */ lw $t5, %lo(dword_CODE_bss_8007A0D8)($t5) +/* 0D0570 7F09BA40 3C018008 */ lui $at, %hi(word_CODE_bss_8007A0F2) +/* 0D0574 7F09BA44 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007A0D8) +/* 0D0578 7F09BA48 A42DA0F2 */ sh $t5, %lo(word_CODE_bss_8007A0F2)($at) +/* 0D057C 7F09BA4C 8CEF0000 */ lw $t7, ($a3) +/* 0D0580 7F09BA50 8CAE0000 */ lw $t6, ($a1) +/* 0D0584 7F09BA54 24020014 */ li $v0, 20 +/* 0D0588 7F09BA58 ADEE0000 */ sw $t6, ($t7) +/* 0D058C 7F09BA5C 8CF90000 */ lw $t9, ($a3) +/* 0D0590 7F09BA60 8F18A0D8 */ lw $t8, %lo(dword_CODE_bss_8007A0D8)($t8) +/* 0D0594 7F09BA64 A738000C */ sh $t8, 0xc($t9) +/* 0D0598 7F09BA68 8CEB0000 */ lw $t3, ($a3) +/* 0D059C 7F09BA6C A560000E */ sh $zero, 0xe($t3) +/* 0D05A0 7F09BA70 8CEC0000 */ lw $t4, ($a3) +/* 0D05A4 7F09BA74 A5840010 */ sh $a0, 0x10($t4) +/* 0D05A8 7F09BA78 8CED0000 */ lw $t5, ($a3) +/* 0D05AC 7F09BA7C A5A40012 */ sh $a0, 0x12($t5) +/* 0D05B0 7F09BA80 8D2E0000 */ lw $t6, ($t1) +/* 0D05B4 7F09BA84 29C10002 */ slti $at, $t6, 2 +/* 0D05B8 7F09BA88 5420000B */ bnezl $at, .L7F09BAB8 +/* 0D05BC 7F09BA8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D05C0 7F09BA90 8CEF0000 */ lw $t7, ($a3) +.L7F09BA94: +/* 0D05C4 7F09BA94 24630001 */ addiu $v1, $v1, 1 +/* 0D05C8 7F09BA98 01E2C021 */ addu $t8, $t7, $v0 +/* 0D05CC 7F09BA9C A704000E */ sh $a0, 0xe($t8) +/* 0D05D0 7F09BAA0 8D390000 */ lw $t9, ($t1) +/* 0D05D4 7F09BAA4 24420014 */ addiu $v0, $v0, 0x14 +/* 0D05D8 7F09BAA8 0079082A */ slt $at, $v1, $t9 +/* 0D05DC 7F09BAAC 5420FFF9 */ bnezl $at, .L7F09BA94 +/* 0D05E0 7F09BAB0 8CEF0000 */ lw $t7, ($a3) +/* 0D05E4 7F09BAB4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09BAB8: +/* 0D05E8 7F09BAB8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0D05EC 7F09BABC 03E00008 */ jr $ra +/* 0D05F0 7F09BAC0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BAC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BAC4 +/* 0D05F4 7F09BAC4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0D05F8 7F09BAC8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D05FC 7F09BACC AFB40028 */ sw $s4, 0x28($sp) +/* 0D0600 7F09BAD0 AFB30024 */ sw $s3, 0x24($sp) +/* 0D0604 7F09BAD4 00809825 */ move $s3, $a0 +/* 0D0608 7F09BAD8 00A0A025 */ move $s4, $a1 +/* 0D060C 7F09BADC AFB20020 */ sw $s2, 0x20($sp) +/* 0D0610 7F09BAE0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0D0614 7F09BAE4 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 0D0618 7F09BAE8 AFB00018 */ sw $s0, 0x18($sp) +/* 0D061C 7F09BAEC 1040002B */ beqz $v0, .L7F09BB9C +/* 0D0620 7F09BAF0 00408825 */ move $s1, $v0 +/* 0D0624 7F09BAF4 24120001 */ li $s2, 1 +/* 0D0628 7F09BAF8 24100018 */ li $s0, 24 +/* 0D062C 7F09BAFC 922E0000 */ lbu $t6, ($s1) +.L7F09BB00: +/* 0D0630 7F09BB00 564E0024 */ bnel $s2, $t6, .L7F09BB94 +/* 0D0634 7F09BB04 8E310024 */ lw $s1, 0x24($s1) +/* 0D0638 7F09BB08 8E220004 */ lw $v0, 4($s1) +/* 0D063C 7F09BB0C 8C440014 */ lw $a0, 0x14($v0) +/* 0D0640 7F09BB10 8C830008 */ lw $v1, 8($a0) +/* 0D0644 7F09BB14 8C650000 */ lw $a1, ($v1) +/* 0D0648 7F09BB18 50A0001E */ beql $a1, $zero, .L7F09BB94 +/* 0D064C 7F09BB1C 8E310024 */ lw $s1, 0x24($s1) +/* 0D0650 7F09BB20 94A20000 */ lhu $v0, ($a1) +.L7F09BB24: +/* 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 +/* 0D0664 7F09BB34 00000000 */ nop +/* 0D0668 7F09BB38 8C580000 */ lw $t8, ($v0) +/* 0D066C 7F09BB3C 56780015 */ bnel $s3, $t8, .L7F09BB94 +/* 0D0670 7F09BB40 8E310024 */ lw $s1, 0x24($s1) +/* 0D0674 7F09BB44 10000012 */ b .L7F09BB90 +/* 0D0678 7F09BB48 AC540000 */ sw $s4, ($v0) +/* 0D067C 7F09BB4C 8CA20014 */ lw $v0, 0x14($a1) +.L7F09BB50: +/* 0D0680 7F09BB50 10400003 */ beqz $v0, .L7F09BB60 +/* 0D0684 7F09BB54 00000000 */ nop +/* 0D0688 7F09BB58 1000000B */ b .L7F09BB88 +/* 0D068C 7F09BB5C 00402825 */ move $a1, $v0 +.L7F09BB60: +/* 0D0690 7F09BB60 10A00009 */ beqz $a1, .L7F09BB88 +/* 0D0694 7F09BB64 00000000 */ nop +/* 0D0698 7F09BB68 8CA2000C */ lw $v0, 0xc($a1) +.L7F09BB6C: +/* 0D069C 7F09BB6C 50400004 */ beql $v0, $zero, .L7F09BB80 +/* 0D06A0 7F09BB70 8CA50008 */ lw $a1, 8($a1) +/* 0D06A4 7F09BB74 10000004 */ b .L7F09BB88 +/* 0D06A8 7F09BB78 00402825 */ move $a1, $v0 +/* 0D06AC 7F09BB7C 8CA50008 */ lw $a1, 8($a1) +.L7F09BB80: +/* 0D06B0 7F09BB80 54A0FFFA */ bnezl $a1, .L7F09BB6C +/* 0D06B4 7F09BB84 8CA2000C */ lw $v0, 0xc($a1) +.L7F09BB88: +/* 0D06B8 7F09BB88 54A0FFE6 */ bnezl $a1, .L7F09BB24 +/* 0D06BC 7F09BB8C 94A20000 */ lhu $v0, ($a1) +.L7F09BB90: +/* 0D06C0 7F09BB90 8E310024 */ lw $s1, 0x24($s1) +.L7F09BB94: +/* 0D06C4 7F09BB94 5620FFDA */ bnezl $s1, .L7F09BB00 +/* 0D06C8 7F09BB98 922E0000 */ lbu $t6, ($s1) +.L7F09BB9C: +/* 0D06CC 7F09BB9C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D06D0 7F09BBA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0D06D4 7F09BBA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D06D8 7F09BBA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0D06DC 7F09BBAC 8FB30024 */ lw $s3, 0x24($sp) +/* 0D06E0 7F09BBB0 8FB40028 */ lw $s4, 0x28($sp) +/* 0D06E4 7F09BBB4 03E00008 */ jr $ra +/* 0D06E8 7F09BBB8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BBBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BBBC +/* 0D06EC 7F09BBBC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0D06F0 7F09BBC0 AFB5002C */ sw $s5, 0x2c($sp) +/* 0D06F4 7F09BBC4 3C158008 */ lui $s5, %hi(word_CODE_bss_8007A0F2) +/* 0D06F8 7F09BBC8 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007A0D8) +/* 0D06FC 7F09BBCC 8DEFA0D8 */ lw $t7, %lo(dword_CODE_bss_8007A0D8)($t7) +/* 0D0700 7F09BBD0 26B5A0F2 */ addiu $s5, %lo(word_CODE_bss_8007A0F2) # addiu $s5, $s5, -0x5f0e +/* 0D0704 7F09BBD4 86AE0000 */ lh $t6, ($s5) +/* 0D0708 7F09BBD8 000FC083 */ sra $t8, $t7, 2 +/* 0D070C 7F09BBDC AFB60030 */ sw $s6, 0x30($sp) +/* 0D0710 7F09BBE0 01D8082A */ slt $at, $t6, $t8 +/* 0D0714 7F09BBE4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D0718 7F09BBE8 AFBE0038 */ sw $fp, 0x38($sp) +/* 0D071C 7F09BBEC AFB70034 */ sw $s7, 0x34($sp) +/* 0D0720 7F09BBF0 AFB40028 */ sw $s4, 0x28($sp) +/* 0D0724 7F09BBF4 AFB30024 */ sw $s3, 0x24($sp) +/* 0D0728 7F09BBF8 AFB20020 */ sw $s2, 0x20($sp) +/* 0D072C 7F09BBFC AFB1001C */ sw $s1, 0x1c($sp) +/* 0D0730 7F09BC00 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0734 7F09BC04 1020004B */ beqz $at, .L7F09BD34 +/* 0D0738 7F09BC08 0000B025 */ move $s6, $zero +/* 0D073C 7F09BC0C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0DC) +/* 0D0740 7F09BC10 8C84A0DC */ lw $a0, %lo(dword_CODE_bss_8007A0DC)($a0) +/* 0D0744 7F09BC14 0000F025 */ move $fp, $zero +/* 0D0748 7F09BC18 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0EC) +/* 0D074C 7F09BC1C 2485FFFF */ addiu $a1, $a0, -1 +/* 0D0750 7F09BC20 18A00044 */ blez $a1, .L7F09BD34 +/* 0D0754 7F09BC24 24170014 */ li $s7, 20 +/* 0D0758 7F09BC28 3C148008 */ lui $s4, %hi(dword_CODE_bss_8007A0EC) +/* 0D075C 7F09BC2C 2694A0EC */ addiu $s4, %lo(dword_CODE_bss_8007A0EC) # addiu $s4, $s4, -0x5f14 +/* 0D0760 7F09BC30 8C63A0EC */ lw $v1, %lo(dword_CODE_bss_8007A0EC)($v1) +.L7F09BC34: +/* 0D0764 7F09BC34 03D70019 */ multu $fp, $s7 +/* 0D0768 7F09BC38 27C20001 */ addiu $v0, $fp, 1 +/* 0D076C 7F09BC3C 00025400 */ sll $t2, $v0, 0x10 +/* 0D0770 7F09BC40 000A5C03 */ sra $t3, $t2, 0x10 +/* 0D0774 7F09BC44 00029400 */ sll $s2, $v0, 0x10 +/* 0D0778 7F09BC48 00124C03 */ sra $t1, $s2, 0x10 +/* 0D077C 7F09BC4C 0164082A */ slt $at, $t3, $a0 +/* 0D0780 7F09BC50 00009812 */ mflo $s3 +/* 0D0784 7F09BC54 0073C821 */ addu $t9, $v1, $s3 +/* 0D0788 7F09BC58 8728000E */ lh $t0, 0xe($t9) +/* 0D078C 7F09BC5C 59000030 */ blezl $t0, .L7F09BD20 +/* 0D0790 7F09BC60 27DE0001 */ addiu $fp, $fp, 1 +/* 0D0794 7F09BC64 1020002D */ beqz $at, .L7F09BD1C +/* 0D0798 7F09BC68 01209025 */ move $s2, $t1 +.L7F09BC6C: +/* 0D079C 7F09BC6C 02570019 */ multu $s2, $s7 +/* 0D07A0 7F09BC70 00738021 */ addu $s0, $v1, $s3 +/* 0D07A4 7F09BC74 00008812 */ mflo $s1 +/* 0D07A8 7F09BC78 00711021 */ addu $v0, $v1, $s1 +/* 0D07AC 7F09BC7C 844C000E */ lh $t4, 0xe($v0) +/* 0D07B0 7F09BC80 59800020 */ blezl $t4, .L7F09BD04 +/* 0D07B4 7F09BC84 26520001 */ addiu $s2, $s2, 1 +/* 0D07B8 7F09BC88 8E0D0004 */ lw $t5, 4($s0) +/* 0D07BC 7F09BC8C 8C4F0004 */ lw $t7, 4($v0) +/* 0D07C0 7F09BC90 55AF001C */ bnel $t5, $t7, .L7F09BD04 +/* 0D07C4 7F09BC94 26520001 */ addiu $s2, $s2, 1 +/* 0D07C8 7F09BC98 8E0E0008 */ lw $t6, 8($s0) +/* 0D07CC 7F09BC9C 8C580008 */ lw $t8, 8($v0) +/* 0D07D0 7F09BCA0 55D80018 */ bnel $t6, $t8, .L7F09BD04 +/* 0D07D4 7F09BCA4 26520001 */ addiu $s2, $s2, 1 +/* 0D07D8 7F09BCA8 8C440000 */ lw $a0, ($v0) +/* 0D07DC 7F09BCAC 8E050000 */ lw $a1, ($s0) +/* 0D07E0 7F09BCB0 0FC26EB1 */ jal sub_GAME_7F09BAC4 +/* 0D07E4 7F09BCB4 24160001 */ li $s6, 1 +/* 0D07E8 7F09BCB8 8E830000 */ lw $v1, ($s4) +/* 0D07EC 7F09BCBC 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0DC) +/* 0D07F0 7F09BCC0 00738021 */ addu $s0, $v1, $s3 +/* 0D07F4 7F09BCC4 00714021 */ addu $t0, $v1, $s1 +/* 0D07F8 7F09BCC8 8509000E */ lh $t1, 0xe($t0) +/* 0D07FC 7F09BCCC 8619000E */ lh $t9, 0xe($s0) +/* 0D0800 7F09BCD0 03295021 */ addu $t2, $t9, $t1 +/* 0D0804 7F09BCD4 A60A000E */ sh $t2, 0xe($s0) +/* 0D0808 7F09BCD8 8E8B0000 */ lw $t3, ($s4) +/* 0D080C 7F09BCDC 01716021 */ addu $t4, $t3, $s1 +/* 0D0810 7F09BCE0 A580000E */ sh $zero, 0xe($t4) +/* 0D0814 7F09BCE4 8E830000 */ lw $v1, ($s4) +/* 0D0818 7F09BCE8 86AD0000 */ lh $t5, ($s5) +/* 0D081C 7F09BCEC 00717821 */ addu $t7, $v1, $s1 +/* 0D0820 7F09BCF0 85EE000C */ lh $t6, 0xc($t7) +/* 0D0824 7F09BCF4 01AEC021 */ addu $t8, $t5, $t6 +/* 0D0828 7F09BCF8 A6B80000 */ sh $t8, ($s5) +/* 0D082C 7F09BCFC 8C84A0DC */ lw $a0, %lo(dword_CODE_bss_8007A0DC)($a0) +/* 0D0830 7F09BD00 26520001 */ addiu $s2, $s2, 1 +.L7F09BD04: +/* 0D0834 7F09BD04 00124400 */ sll $t0, $s2, 0x10 +/* 0D0838 7F09BD08 00089403 */ sra $s2, $t0, 0x10 +/* 0D083C 7F09BD0C 0244082A */ slt $at, $s2, $a0 +/* 0D0840 7F09BD10 1420FFD6 */ bnez $at, .L7F09BC6C +/* 0D0844 7F09BD14 00000000 */ nop +/* 0D0848 7F09BD18 2485FFFF */ addiu $a1, $a0, -1 +.L7F09BD1C: +/* 0D084C 7F09BD1C 27DE0001 */ addiu $fp, $fp, 1 +.L7F09BD20: +/* 0D0850 7F09BD20 001E4C00 */ sll $t1, $fp, 0x10 +/* 0D0854 7F09BD24 0009F403 */ sra $fp, $t1, 0x10 +/* 0D0858 7F09BD28 03C5082A */ slt $at, $fp, $a1 +/* 0D085C 7F09BD2C 1420FFC1 */ bnez $at, .L7F09BC34 +/* 0D0860 7F09BD30 00000000 */ nop +.L7F09BD34: +/* 0D0864 7F09BD34 3C148008 */ lui $s4, %hi(dword_CODE_bss_8007A0EC) +/* 0D0868 7F09BD38 2694A0EC */ addiu $s4, %lo(dword_CODE_bss_8007A0EC) # addiu $s4, $s4, -0x5f14 +/* 0D086C 7F09BD3C 12C0002E */ beqz $s6, .L7F09BDF8 +/* 0D0870 7F09BD40 24170014 */ li $s7, 20 +/* 0D0874 7F09BD44 00002025 */ move $a0, $zero +/* 0D0878 7F09BD48 0000F025 */ move $fp, $zero +/* 0D087C 7F09BD4C 2405FFFF */ li $a1, -1 +.L7F09BD50: +/* 0D0880 7F09BD50 03D70019 */ multu $fp, $s7 +/* 0D0884 7F09BD54 8E830000 */ lw $v1, ($s4) +/* 0D0888 7F09BD58 00009812 */ mflo $s3 +/* 0D088C 7F09BD5C 00738021 */ addu $s0, $v1, $s3 +/* 0D0890 7F09BD60 86120010 */ lh $s2, 0x10($s0) +/* 0D0894 7F09BD64 06420022 */ bltzl $s2, .L7F09BDF0 +/* 0D0898 7F09BD68 24040001 */ li $a0, 1 +/* 0D089C 7F09BD6C 860B000E */ lh $t3, 0xe($s0) +/* 0D08A0 7F09BD70 5560001B */ bnezl $t3, .L7F09BDE0 +/* 0D08A4 7F09BD74 0012F400 */ sll $fp, $s2, 0x10 +/* 0D08A8 7F09BD78 02570019 */ multu $s2, $s7 +/* 0D08AC 7F09BD7C 00008812 */ mflo $s1 +/* 0D08B0 7F09BD80 00711021 */ addu $v0, $v1, $s1 +/* 0D08B4 7F09BD84 844C000E */ lh $t4, 0xe($v0) +/* 0D08B8 7F09BD88 55800015 */ bnezl $t4, .L7F09BDE0 +/* 0D08BC 7F09BD8C 0012F400 */ sll $fp, $s2, 0x10 +/* 0D08C0 7F09BD90 860F000C */ lh $t7, 0xc($s0) +/* 0D08C4 7F09BD94 844D000C */ lh $t5, 0xc($v0) +/* 0D08C8 7F09BD98 01ED7021 */ addu $t6, $t7, $t5 +/* 0D08CC 7F09BD9C A60E000C */ sh $t6, 0xc($s0) +/* 0D08D0 7F09BDA0 8E980000 */ lw $t8, ($s4) +/* 0D08D4 7F09BDA4 03114021 */ addu $t0, $t8, $s1 +/* 0D08D8 7F09BDA8 A505000E */ sh $a1, 0xe($t0) +/* 0D08DC 7F09BDAC 8E830000 */ lw $v1, ($s4) +/* 0D08E0 7F09BDB0 0071C821 */ addu $t9, $v1, $s1 +/* 0D08E4 7F09BDB4 87320010 */ lh $s2, 0x10($t9) +/* 0D08E8 7F09BDB8 00734821 */ addu $t1, $v1, $s3 +/* 0D08EC 7F09BDBC 0640000C */ bltz $s2, .L7F09BDF0 +/* 0D08F0 7F09BDC0 A5320010 */ sh $s2, 0x10($t1) +/* 0D08F4 7F09BDC4 02570019 */ multu $s2, $s7 +/* 0D08F8 7F09BDC8 8E8A0000 */ lw $t2, ($s4) +/* 0D08FC 7F09BDCC 00005812 */ mflo $t3 +/* 0D0900 7F09BDD0 014B6021 */ addu $t4, $t2, $t3 +/* 0D0904 7F09BDD4 10000006 */ b .L7F09BDF0 +/* 0D0908 7F09BDD8 A59E0012 */ sh $fp, 0x12($t4) +/* 0D090C 7F09BDDC 0012F400 */ sll $fp, $s2, 0x10 +.L7F09BDE0: +/* 0D0910 7F09BDE0 001E7C03 */ sra $t7, $fp, 0x10 +/* 0D0914 7F09BDE4 10000002 */ b .L7F09BDF0 +/* 0D0918 7F09BDE8 01E0F025 */ move $fp, $t7 +/* 0D091C 7F09BDEC 24040001 */ li $a0, 1 +.L7F09BDF0: +/* 0D0920 7F09BDF0 1080FFD7 */ beqz $a0, .L7F09BD50 +/* 0D0924 7F09BDF4 00000000 */ nop +.L7F09BDF8: +/* 0D0928 7F09BDF8 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0D8) +/* 0D092C 7F09BDFC 8DCEA0D8 */ lw $t6, %lo(dword_CODE_bss_8007A0D8)($t6) +/* 0D0930 7F09BE00 86AD0000 */ lh $t5, ($s5) +/* 0D0934 7F09BE04 000EC083 */ sra $t8, $t6, 2 +/* 0D0938 7F09BE08 01B8082A */ slt $at, $t5, $t8 +/* 0D093C 7F09BE0C 50200004 */ beql $at, $zero, .L7F09BE20 +/* 0D0940 7F09BE10 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D0944 7F09BE14 0FC159A4 */ jal sub_GAME_7F056690 +/* 0D0948 7F09BE18 00000000 */ nop +/* 0D094C 7F09BE1C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09BE20: +/* 0D0950 7F09BE20 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0954 7F09BE24 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D0958 7F09BE28 8FB20020 */ lw $s2, 0x20($sp) +/* 0D095C 7F09BE2C 8FB30024 */ lw $s3, 0x24($sp) +/* 0D0960 7F09BE30 8FB40028 */ lw $s4, 0x28($sp) +/* 0D0964 7F09BE34 8FB5002C */ lw $s5, 0x2c($sp) +/* 0D0968 7F09BE38 8FB60030 */ lw $s6, 0x30($sp) +/* 0D096C 7F09BE3C 8FB70034 */ lw $s7, 0x34($sp) +/* 0D0970 7F09BE40 8FBE0038 */ lw $fp, 0x38($sp) +/* 0D0974 7F09BE44 03E00008 */ jr $ra +/* 0D0978 7F09BE48 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BE4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BE4C +/* 0D097C 7F09BE4C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0D0980 7F09BE50 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0984 7F09BE54 24010B0B */ li $at, 2827 +/* 0D0988 7F09BE58 00808025 */ move $s0, $a0 +/* 0D098C 7F09BE5C AFBF001C */ sw $ra, 0x1c($sp) +/* 0D0990 7F09BE60 AFA60028 */ sw $a2, 0x28($sp) +/* 0D0994 7F09BE64 10A1000A */ beq $a1, $at, .L7F09BE90 +/* 0D0998 7F09BE68 AFA7002C */ sw $a3, 0x2c($sp) +/* 0D099C 7F09BE6C 3401CCCC */ li $at, 52428 +/* 0D09A0 7F09BE70 14A1000E */ bne $a1, $at, .L7F09BEAC +/* 0D09A4 7F09BE74 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0E8) +/* 0D09A8 7F09BE78 3C0B8008 */ lui $t3, %hi(word_CODE_bss_8007A0F0) +/* 0D09AC 7F09BE7C 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0D4+2) +/* 0D09B0 7F09BE80 8D08A0E8 */ lw $t0, %lo(dword_CODE_bss_8007A0E8)($t0) +/* 0D09B4 7F09BE84 256BA0F0 */ addiu $t3, %lo(word_CODE_bss_8007A0F0) # addiu $t3, $t3, -0x5f10 +/* 0D09B8 7F09BE88 1000000A */ b .L7F09BEB4 +/* 0D09BC 7F09BE8C 84C6A0D6 */ lh $a2, %lo(dword_CODE_bss_8007A0D4+2)($a2) +.L7F09BE90: +/* 0D09C0 7F09BE90 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0EC) +/* 0D09C4 7F09BE94 3C0B8008 */ lui $t3, %hi(word_CODE_bss_8007A0F2) +/* 0D09C8 7F09BE98 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0DC+0x2) +/* 0D09CC 7F09BE9C 8D08A0EC */ lw $t0, %lo(dword_CODE_bss_8007A0EC)($t0) +/* 0D09D0 7F09BEA0 256BA0F2 */ addiu $t3, %lo(word_CODE_bss_8007A0F2) # addiu $t3, $t3, -0x5f0e +/* 0D09D4 7F09BEA4 10000003 */ b .L7F09BEB4 +/* 0D09D8 7F09BEA8 84C6A0DE */ lh $a2, %lo(dword_CODE_bss_8007A0DC+0x2)($a2) +.L7F09BEAC: +/* 0D09DC 7F09BEAC 10000060 */ b .L7F09C030 +/* 0D09E0 7F09BEB0 00001025 */ move $v0, $zero +.L7F09BEB4: +/* 0D09E4 7F09BEB4 00001825 */ move $v1, $zero +/* 0D09E8 7F09BEB8 00001025 */ move $v0, $zero +/* 0D09EC 7F09BEBC 00002825 */ move $a1, $zero +/* 0D09F0 7F09BEC0 24090014 */ li $t1, 20 +/* 0D09F4 7F09BEC4 2407FFFF */ li $a3, -1 +.L7F09BEC8: +/* 0D09F8 7F09BEC8 00A90019 */ multu $a1, $t1 +/* 0D09FC 7F09BECC 00007012 */ mflo $t6 +/* 0D0A00 7F09BED0 010E2021 */ addu $a0, $t0, $t6 +/* 0D0A04 7F09BED4 848F000E */ lh $t7, 0xe($a0) +/* 0D0A08 7F09BED8 55E00008 */ bnezl $t7, .L7F09BEFC +/* 0D0A0C 7F09BEDC 84850010 */ lh $a1, 0x10($a0) +/* 0D0A10 7F09BEE0 8498000C */ lh $t8, 0xc($a0) +/* 0D0A14 7F09BEE4 0310082A */ slt $at, $t8, $s0 +/* 0D0A18 7F09BEE8 54200004 */ bnezl $at, .L7F09BEFC +/* 0D0A1C 7F09BEEC 84850010 */ lh $a1, 0x10($a0) +/* 0D0A20 7F09BEF0 1000000B */ b .L7F09BF20 +/* 0D0A24 7F09BEF4 24030001 */ li $v1, 1 +/* 0D0A28 7F09BEF8 84850010 */ lh $a1, 0x10($a0) +.L7F09BEFC: +/* 0D0A2C 7F09BEFC 24420001 */ addiu $v0, $v0, 1 +/* 0D0A30 7F09BF00 00C2082A */ slt $at, $a2, $v0 +/* 0D0A34 7F09BF04 50A70004 */ beql $a1, $a3, .L7F09BF18 +/* 0D0A38 7F09BF08 00071C00 */ sll $v1, $a3, 0x10 +/* 0D0A3C 7F09BF0C 10200004 */ beqz $at, .L7F09BF20 +/* 0D0A40 7F09BF10 00000000 */ nop +/* 0D0A44 7F09BF14 00071C00 */ sll $v1, $a3, 0x10 +.L7F09BF18: +/* 0D0A48 7F09BF18 0003CC03 */ sra $t9, $v1, 0x10 +/* 0D0A4C 7F09BF1C 03201825 */ move $v1, $t9 +.L7F09BF20: +/* 0D0A50 7F09BF20 1060FFE9 */ beqz $v1, .L7F09BEC8 +/* 0D0A54 7F09BF24 00000000 */ nop +/* 0D0A58 7F09BF28 00C2082A */ slt $at, $a2, $v0 +/* 0D0A5C 7F09BF2C 50200008 */ beql $at, $zero, .L7F09BF50 +/* 0D0A60 7F09BF30 24010001 */ li $at, 1 +/* 0D0A64 7F09BF34 0FC26DEA */ jal sub_GAME_7F09B7A8 +/* 0D0A68 7F09BF38 00000000 */ nop +/* 0D0A6C 7F09BF3C 0FC26DF9 */ jal sub_GAME_7F09B7E4 +/* 0D0A70 7F09BF40 00000000 */ nop +/* 0D0A74 7F09BF44 1000003A */ b .L7F09C030 +/* 0D0A78 7F09BF48 00001025 */ move $v0, $zero +/* 0D0A7C 7F09BF4C 24010001 */ li $at, 1 +.L7F09BF50: +/* 0D0A80 7F09BF50 14610037 */ bne $v1, $at, .L7F09C030 +/* 0D0A84 7F09BF54 00001025 */ move $v0, $zero +/* 0D0A88 7F09BF58 00A90019 */ multu $a1, $t1 +/* 0D0A8C 7F09BF5C 8FAE0028 */ lw $t6, 0x28($sp) +/* 0D0A90 7F09BF60 00006025 */ move $t4, $zero +/* 0D0A94 7F09BF64 00006812 */ mflo $t5 +/* 0D0A98 7F09BF68 010D2021 */ addu $a0, $t0, $t5 +/* 0D0A9C 7F09BF6C 8498000E */ lh $t8, 0xe($a0) +/* 0D0AA0 7F09BF70 848A000C */ lh $t2, 0xc($a0) +/* 0D0AA4 7F09BF74 AC8E0004 */ sw $t6, 4($a0) +/* 0D0AA8 7F09BF78 8FAF002C */ lw $t7, 0x2c($sp) +/* 0D0AAC 7F09BF7C 27190001 */ addiu $t9, $t8, 1 +/* 0D0AB0 7F09BF80 A499000E */ sh $t9, 0xe($a0) +/* 0D0AB4 7F09BF84 1150001F */ beq $t2, $s0, .L7F09C004 +/* 0D0AB8 7F09BF88 AC8F0008 */ sw $t7, 8($a0) +/* 0D0ABC 7F09BF8C 18C0001D */ blez $a2, .L7F09C004 +/* 0D0AC0 7F09BF90 00001825 */ move $v1, $zero +/* 0D0AC4 7F09BF94 01001025 */ move $v0, $t0 +.L7F09BF98: +/* 0D0AC8 7F09BF98 844D000E */ lh $t5, 0xe($v0) +/* 0D0ACC 7F09BF9C 54ED0017 */ bnel $a3, $t5, .L7F09BFFC +/* 0D0AD0 7F09BFA0 24630001 */ addiu $v1, $v1, 1 +/* 0D0AD4 7F09BFA4 8C8E0000 */ lw $t6, ($a0) +/* 0D0AD8 7F09BFA8 A490000C */ sh $s0, 0xc($a0) +/* 0D0ADC 7F09BFAC 00107900 */ sll $t7, $s0, 4 +/* 0D0AE0 7F09BFB0 0150C823 */ subu $t9, $t2, $s0 +/* 0D0AE4 7F09BFB4 01CFC021 */ addu $t8, $t6, $t7 +/* 0D0AE8 7F09BFB8 AC580000 */ sw $t8, ($v0) +/* 0D0AEC 7F09BFBC A459000C */ sh $t9, 0xc($v0) +/* 0D0AF0 7F09BFC0 A440000E */ sh $zero, 0xe($v0) +/* 0D0AF4 7F09BFC4 A4450012 */ sh $a1, 0x12($v0) +/* 0D0AF8 7F09BFC8 848D0010 */ lh $t5, 0x10($a0) +/* 0D0AFC 7F09BFCC 240C0001 */ li $t4, 1 +/* 0D0B00 7F09BFD0 A44D0010 */ sh $t5, 0x10($v0) +/* 0D0B04 7F09BFD4 84820010 */ lh $v0, 0x10($a0) +/* 0D0B08 7F09BFD8 04400005 */ bltz $v0, .L7F09BFF0 +/* 0D0B0C 7F09BFDC 00000000 */ nop +/* 0D0B10 7F09BFE0 00490019 */ multu $v0, $t1 +/* 0D0B14 7F09BFE4 00007012 */ mflo $t6 +/* 0D0B18 7F09BFE8 010E7821 */ addu $t7, $t0, $t6 +/* 0D0B1C 7F09BFEC A5E30012 */ sh $v1, 0x12($t7) +.L7F09BFF0: +/* 0D0B20 7F09BFF0 10000004 */ b .L7F09C004 +/* 0D0B24 7F09BFF4 A4830010 */ sh $v1, 0x10($a0) +/* 0D0B28 7F09BFF8 24630001 */ addiu $v1, $v1, 1 +.L7F09BFFC: +/* 0D0B2C 7F09BFFC 1466FFE6 */ bne $v1, $a2, .L7F09BF98 +/* 0D0B30 7F09C000 24420014 */ addiu $v0, $v0, 0x14 +.L7F09C004: +/* 0D0B34 7F09C004 51800006 */ beql $t4, $zero, .L7F09C020 +/* 0D0B38 7F09C008 856D0000 */ lh $t5, ($t3) +/* 0D0B3C 7F09C00C 85780000 */ lh $t8, ($t3) +/* 0D0B40 7F09C010 0310C823 */ subu $t9, $t8, $s0 +/* 0D0B44 7F09C014 10000004 */ b .L7F09C028 +/* 0D0B48 7F09C018 A5790000 */ sh $t9, ($t3) +/* 0D0B4C 7F09C01C 856D0000 */ lh $t5, ($t3) +.L7F09C020: +/* 0D0B50 7F09C020 01AA7023 */ subu $t6, $t5, $t2 +/* 0D0B54 7F09C024 A56E0000 */ sh $t6, ($t3) +.L7F09C028: +/* 0D0B58 7F09C028 10000001 */ b .L7F09C030 +/* 0D0B5C 7F09C02C 8C820000 */ lw $v0, ($a0) +.L7F09C030: +/* 0D0B60 7F09C030 8FBF001C */ lw $ra, 0x1c($sp) +/* 0D0B64 7F09C034 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0B68 7F09C038 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0D0B6C 7F09C03C 03E00008 */ jr $ra +/* 0D0B70 7F09C040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09C044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09C044 +/* 0D0B74 7F09C044 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A0E0) +/* 0D0B78 7F09C048 8C42A0E0 */ lw $v0, %lo(dword_CODE_bss_8007A0E0)($v0) +/* 0D0B7C 7F09C04C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0D0B80 7F09C050 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0B84 7F09C054 0082082B */ sltu $at, $a0, $v0 +/* 0D0B88 7F09C058 00808025 */ move $s0, $a0 +/* 0D0B8C 7F09C05C 1420000D */ bnez $at, .L7F09C094 +/* 0D0B90 7F09C060 AFBF001C */ sw $ra, 0x1c($sp) +/* 0D0B94 7F09C064 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0D0) +/* 0D0B98 7F09C068 8DCEA0D0 */ lw $t6, %lo(dword_CODE_bss_8007A0D0)($t6) +/* 0D0B9C 7F09C06C 3C0A8008 */ lui $t2, %hi(word_CODE_bss_8007A0F0) +/* 0D0BA0 7F09C070 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0E8) +/* 0D0BA4 7F09C074 25CFFFFF */ addiu $t7, $t6, -1 +/* 0D0BA8 7F09C078 000FC100 */ sll $t8, $t7, 4 +/* 0D0BAC 7F09C07C 0302C821 */ addu $t9, $t8, $v0 +/* 0D0BB0 7F09C080 0324082B */ sltu $at, $t9, $a0 +/* 0D0BB4 7F09C084 14200003 */ bnez $at, .L7F09C094 +/* 0D0BB8 7F09C088 254AA0F0 */ addiu $t2, %lo(word_CODE_bss_8007A0F0) # addiu $t2, $t2, -0x5f10 +/* 0D0BBC 7F09C08C 10000018 */ b .L7F09C0F0 +/* 0D0BC0 7F09C090 8CE7A0E8 */ lw $a3, %lo(dword_CODE_bss_8007A0E8)($a3) +.L7F09C094: +/* 0D0BC4 7F09C094 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A0E4) +/* 0D0BC8 7F09C098 8C42A0E4 */ lw $v0, %lo(dword_CODE_bss_8007A0E4)($v0) +/* 0D0BCC 7F09C09C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007A0D8) +/* 0D0BD0 7F09C0A0 0202082B */ sltu $at, $s0, $v0 +/* 0D0BD4 7F09C0A4 1420000C */ bnez $at, .L7F09C0D8 +/* 0D0BD8 7F09C0A8 00000000 */ nop +/* 0D0BDC 7F09C0AC 8D6BA0D8 */ lw $t3, %lo(dword_CODE_bss_8007A0D8)($t3) +/* 0D0BE0 7F09C0B0 3C0A8008 */ lui $t2, %hi(word_CODE_bss_8007A0F2) +/* 0D0BE4 7F09C0B4 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0BE8 7F09C0B8 256CFFFF */ addiu $t4, $t3, -1 +/* 0D0BEC 7F09C0BC 000C6900 */ sll $t5, $t4, 4 +/* 0D0BF0 7F09C0C0 01A27021 */ addu $t6, $t5, $v0 +/* 0D0BF4 7F09C0C4 01D0082B */ sltu $at, $t6, $s0 +/* 0D0BF8 7F09C0C8 14200003 */ bnez $at, .L7F09C0D8 +/* 0D0BFC 7F09C0CC 254AA0F2 */ addiu $t2, %lo(word_CODE_bss_8007A0F2) # addiu $t2, $t2, -0x5f0e +/* 0D0C00 7F09C0D0 10000007 */ b .L7F09C0F0 +/* 0D0C04 7F09C0D4 8CE7A0EC */ lw $a3, %lo(dword_CODE_bss_8007A0EC)($a3) +.L7F09C0D8: +/* 0D0C08 7F09C0D8 0FC26DEA */ jal sub_GAME_7F09B7A8 +/* 0D0C0C 7F09C0DC 00000000 */ nop +/* 0D0C10 7F09C0E0 0FC26DF9 */ jal sub_GAME_7F09B7E4 +/* 0D0C14 7F09C0E4 00000000 */ nop +/* 0D0C18 7F09C0E8 10000053 */ b .L7F09C238 +/* 0D0C1C 7F09C0EC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09C0F0: +/* 0D0C20 7F09C0F0 00002825 */ move $a1, $zero +/* 0D0C24 7F09C0F4 00004025 */ move $t0, $zero +/* 0D0C28 7F09C0F8 2409FFFF */ li $t1, -1 +/* 0D0C2C 7F09C0FC 24060014 */ li $a2, 20 +.L7F09C100: +/* 0D0C30 7F09C100 00A60019 */ multu $a1, $a2 +/* 0D0C34 7F09C104 00007812 */ mflo $t7 +/* 0D0C38 7F09C108 00EF2021 */ addu $a0, $a3, $t7 +/* 0D0C3C 7F09C10C 8C980000 */ lw $t8, ($a0) +/* 0D0C40 7F09C110 56180043 */ bnel $s0, $t8, .L7F09C220 +/* 0D0C44 7F09C114 84850010 */ lh $a1, 0x10($a0) +/* 0D0C48 7F09C118 8482000E */ lh $v0, 0xe($a0) +/* 0D0C4C 7F09C11C 24080001 */ li $t0, 1 +/* 0D0C50 7F09C120 2459FFFF */ addiu $t9, $v0, -1 +/* 0D0C54 7F09C124 A499000E */ sh $t9, 0xe($a0) +/* 0D0C58 7F09C128 848B000E */ lh $t3, 0xe($a0) +/* 0D0C5C 7F09C12C 1560003F */ bnez $t3, .L7F09C22C +/* 0D0C60 7F09C130 00000000 */ nop +/* 0D0C64 7F09C134 854C0000 */ lh $t4, ($t2) +/* 0D0C68 7F09C138 848D000C */ lh $t5, 0xc($a0) +/* 0D0C6C 7F09C13C 018D7021 */ addu $t6, $t4, $t5 +/* 0D0C70 7F09C140 A54E0000 */ sh $t6, ($t2) +/* 0D0C74 7F09C144 84830010 */ lh $v1, 0x10($a0) +/* 0D0C78 7F09C148 04620016 */ bltzl $v1, .L7F09C1A4 +/* 0D0C7C 7F09C14C 84830012 */ lh $v1, 0x12($a0) +/* 0D0C80 7F09C150 00660019 */ multu $v1, $a2 +/* 0D0C84 7F09C154 00007812 */ mflo $t7 +/* 0D0C88 7F09C158 00EF1021 */ addu $v0, $a3, $t7 +/* 0D0C8C 7F09C15C 8458000E */ lh $t8, 0xe($v0) +/* 0D0C90 7F09C160 57000010 */ bnezl $t8, .L7F09C1A4 +/* 0D0C94 7F09C164 84830012 */ lh $v1, 0x12($a0) +/* 0D0C98 7F09C168 8499000C */ lh $t9, 0xc($a0) +/* 0D0C9C 7F09C16C 844B000C */ lh $t3, 0xc($v0) +/* 0D0CA0 7F09C170 032B6021 */ addu $t4, $t9, $t3 +/* 0D0CA4 7F09C174 A48C000C */ sh $t4, 0xc($a0) +/* 0D0CA8 7F09C178 844D0010 */ lh $t5, 0x10($v0) +/* 0D0CAC 7F09C17C A48D0010 */ sh $t5, 0x10($a0) +/* 0D0CB0 7F09C180 A449000E */ sh $t1, 0xe($v0) +/* 0D0CB4 7F09C184 84830010 */ lh $v1, 0x10($a0) +/* 0D0CB8 7F09C188 04620006 */ bltzl $v1, .L7F09C1A4 +/* 0D0CBC 7F09C18C 84830012 */ lh $v1, 0x12($a0) +/* 0D0CC0 7F09C190 00660019 */ multu $v1, $a2 +/* 0D0CC4 7F09C194 00007012 */ mflo $t6 +/* 0D0CC8 7F09C198 00EE7821 */ addu $t7, $a3, $t6 +/* 0D0CCC 7F09C19C A5E50012 */ sh $a1, 0x12($t7) +/* 0D0CD0 7F09C1A0 84830012 */ lh $v1, 0x12($a0) +.L7F09C1A4: +/* 0D0CD4 7F09C1A4 04600021 */ bltz $v1, .L7F09C22C +/* 0D0CD8 7F09C1A8 00000000 */ nop +/* 0D0CDC 7F09C1AC 00660019 */ multu $v1, $a2 +/* 0D0CE0 7F09C1B0 0000C012 */ mflo $t8 +/* 0D0CE4 7F09C1B4 00F81021 */ addu $v0, $a3, $t8 +/* 0D0CE8 7F09C1B8 8459000E */ lh $t9, 0xe($v0) +/* 0D0CEC 7F09C1BC 0003C400 */ sll $t8, $v1, 0x10 +/* 0D0CF0 7F09C1C0 1720001A */ bnez $t9, .L7F09C22C +/* 0D0CF4 7F09C1C4 0018CC03 */ sra $t9, $t8, 0x10 +/* 0D0CF8 7F09C1C8 03260019 */ multu $t9, $a2 +/* 0D0CFC 7F09C1CC 844B000C */ lh $t3, 0xc($v0) +/* 0D0D00 7F09C1D0 848C000C */ lh $t4, 0xc($a0) +/* 0D0D04 7F09C1D4 00032C00 */ sll $a1, $v1, 0x10 +/* 0D0D08 7F09C1D8 00057C03 */ sra $t7, $a1, 0x10 +/* 0D0D0C 7F09C1DC 016C6821 */ addu $t5, $t3, $t4 +/* 0D0D10 7F09C1E0 A44D000C */ sh $t5, 0xc($v0) +/* 0D0D14 7F09C1E4 848E0010 */ lh $t6, 0x10($a0) +/* 0D0D18 7F09C1E8 01E02825 */ move $a1, $t7 +/* 0D0D1C 7F09C1EC 00005812 */ mflo $t3 +/* 0D0D20 7F09C1F0 A44E0010 */ sh $t6, 0x10($v0) +/* 0D0D24 7F09C1F4 A489000E */ sh $t1, 0xe($a0) +/* 0D0D28 7F09C1F8 00EB6021 */ addu $t4, $a3, $t3 +/* 0D0D2C 7F09C1FC 85830010 */ lh $v1, 0x10($t4) +/* 0D0D30 7F09C200 0460000A */ bltz $v1, .L7F09C22C +/* 0D0D34 7F09C204 00000000 */ nop +/* 0D0D38 7F09C208 00660019 */ multu $v1, $a2 +/* 0D0D3C 7F09C20C 00006812 */ mflo $t5 +/* 0D0D40 7F09C210 00ED7021 */ addu $t6, $a3, $t5 +/* 0D0D44 7F09C214 10000005 */ b .L7F09C22C +/* 0D0D48 7F09C218 A5CF0012 */ sh $t7, 0x12($t6) +/* 0D0D4C 7F09C21C 84850010 */ lh $a1, 0x10($a0) +.L7F09C220: +/* 0D0D50 7F09C220 14A90002 */ bne $a1, $t1, .L7F09C22C +/* 0D0D54 7F09C224 00000000 */ nop +/* 0D0D58 7F09C228 24080001 */ li $t0, 1 +.L7F09C22C: +/* 0D0D5C 7F09C22C 1100FFB4 */ beqz $t0, .L7F09C100 +/* 0D0D60 7F09C230 00000000 */ nop +/* 0D0D64 7F09C234 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09C238: +/* 0D0D68 7F09C238 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0D6C 7F09C23C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0D0D70 7F09C240 03E00008 */ jr $ra +/* 0D0D74 7F09C244 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_09C250.c b/src/game/unk_09C250.c new file mode 100644 index 0000000..f179fdf --- /dev/null +++ b/src/game/unk_09C250.c @@ -0,0 +1,7222 @@ +#include "ultra64.h" +#include "game/unk_09C250.h" + +// bss +//CODE.bss:8007A100 +char dword_CODE_bss_8007A100[0x40]; +//CODE.bss:8007A140 +u32 *ptr_smoke_buf; +//CODE.bss:8007A144 +u32 *ptr_explosion_buf; +//CODE.bss:8007A148 +s32 max_casings; +//CODE.bss:8007A14C +u32 *ptr_ejected_casing_buf; +//CODE.bss:8007A150 +u32 *ptr_scorch_buf; +//CODE.bss:8007A154 +u32 *ptr_bullet_impact_buf; + +// data +//D:80040170 +s32 D_80040170 = 0; +//D:80040174 +s32 D_80040174 = 0; +//D:80040178 +f32 D_80040178 = 1.0; +//D:8004017C +u32 D_8004017C[] = { + 0x1003C, 0x630000, 0,0x80808000, + 0x3E99999A, 0xB40000, 0x1E0003C, 0x2D003C, + 0x3CA3D70A,0x50506000,0x3E99999A, 0xB40000, + 0x1E0003C, 0x320014,0x3C23D70A,0x80808000, + 0x3E99999A, 0xB40000, 0x280003C, 0x780064, + 0x3C23D70A,0xC0C0C000,0x3E99999A, 0xB40000, + 0x280003C, 0x3C0050,0x3CA3D70A,0x40404000, + 0x3E99999A, 0xB40000, 0x302003C, 0x3200BE, + 0x3E19999A,0x40404000,0x3E99999A, 0xB40000, + 0x384003C, 0x46012C,0x3C23D70A,0x40404000, + 0x3E99999A, 0xB40000, 0x3C003C, 0x8000F, + 0x3CF5C28F,0xFFFFFF00,0x3E99999A, 0xB40000, + 0x140001, 0x6001E,0x3CF5C28F,0xFFFFFF00, + 0x40000000, 0x1E0000, 0x190001, 0x70010, + 0x3CF5C28F,0xE0E0E000,0x40400000, 0x1E0000, + 0x384003C, 0x460384,0x3C23D70A,0x40404000, + 0x3E99999A, 0xB40000,0x3DCCCCCD,0x3DCCCCCD, + 0, 0,0x3DCCCCCD, 0, + 0, 0x10001,0x3F800000, 0, + 0x3DCCCCCD, 0, 0, 0, + 0, 0,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x1E0001,0x3F800000, 0xA0000, + 0x40A00000, 0,0x40000000,0x40C00000, + 0x7000000, 0,0x41A00000,0x41A00000, + 0, 0,0x41F00000,0x42480000, + 0x42480000, 0x500001,0x40400000, 0x280000, + 0x40C00000,0x40A00000,0x3F333333,0x40C00000, + 0x2B50000,0x3E000000,0x42480000,0x42480000, + 0, 0,0x42480000,0x42C80000, + 0x42C80000, 0x5A0001,0x40800000, 0x320000, + 0x40C00000,0x41200000,0x3F800000,0x40C00000, + 0x2B60000,0x3F000000,0x42700000,0x42A00000, + 0x3F800000,0x3E99999A,0x42C80000,0x43160000, + 0x438C0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x3F800000,0x42700000,0x42F00000, + 0x3F800000,0x3E99999A,0x43160000,0x43480000, + 0x439B0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x41A00000,0x41A00000, + 0, 0,0x41B00000,0x42200000, + 0x42200000, 0x500001,0x40400000, 0x280000, + 0x40C00000,0x40A00000,0x3F333333,0x40C00000, + 0x2B50000,0x3F000000,0x420C0000,0x42200000, + 0, 0,0x420C0000,0x428C0000, + 0x428C0000, 0x5A0001,0x40800000, 0x320000, + 0x40C00000,0x41200000,0x3F800000,0x40C00000, + 0x2B60000,0x3F800000,0x42480000,0x42A00000, + 0x3F800000,0x3E99999A,0x42480000,0x42C80000, + 0x435C0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x42700000,0x42F00000, + 0x3F800000,0x3E99999A,0x42480000,0x43020000, + 0x43660000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x42200000,0x42200000, + 0x3ECCCCCD,0x3E4CCCCD,0x428C0000,0x42C80000, + 0x43340000, 0xAA0004,0x40A00000, 0x780000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x4AE0000,0x3F800000,0x42480000,0x42480000, + 0x3F19999A,0x3ECCCCCD,0x42C80000,0x43160000, + 0x43820000, 0xB40001,0x40800000, 0x960000, + 0x40C00000,0x41F00000,0x40400000,0x40C00000, + 0x4AC0000,0x40000000,0x428C0000,0x42700000, + 0x3F800000,0x3F19999A,0x43160000,0x43610000, + 0x43A00000, 0xB40002,0x40A00000, 0x960000, + 0x40C00000,0x41F00000,0x40800000,0x41400000, + 0x5AC0000,0x40800000,0x42A00000,0x42700000, + 0x40000000,0x3F333333,0x43480000,0x43960000, + 0x43F00000, 0xB40002,0x40A00000, 0xC80000, + 0x40C00000,0x41F00000,0x40C00000,0x41700000, + 0x6AD0000,0x40800000,0x42480000,0x42480000, + 0, 0,0x42F00000,0x43480000, + 0x43C80000, 0x960004,0x40800000, 0x960000, + 0x40C00000,0x41F00000,0x40400000,0x40C00000, + 0x4AD0000,0x40800000,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x10001,0x3F800000, 0x960000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x7AA0000, 0,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x10001,0x3F800000, 0x640000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x7AA0000, 0,0x42A00000,0x42700000, + 0x41700000,0x40A00000,0x44BB8000,0x45098000, + 0x45610000, 0x12C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000,0x42A00000,0x42700000, + 0x40400000,0x3F800000,0x43960000,0x43E10000, + 0x44200000, 0x3C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000,0x42B40000,0x42960000, + 0x40200000,0x3F5EB852,0x437A0000,0x43BB8000, + 0x44160000, 0xB40002,0x40A00000, 0xC80000, + 0x40C00000,0x41F00000,0x40C00000,0x41700000, + 0x6AD0000,0x40800000,0x43200000,0x42F00000, + 0x40C00000,0x40000000,0x44160000,0x43E10000, + 0x44200000, 0x3C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000, 0x2000078, 0x2000120, + 0x20001C8, 0x2000270, 0x2000318, 0x20003C0, + 0x2000468, 0x2000510, 0x20005B8, 0x2000660, + 0x2000708, 0x20007B0, 0x2000858, 0x2000900, + 0x20009A8, 0, 0, 0 +}; +//D:8004080C +u32 D_8004080C[] = { + 0x41200000, 0x41200000, 0x1020800, 0x40C00000, 0x40C00000, 0x1020800, + 0x41000000, 0x41000000, 0x20800, 0x41A00000, 0x41A00000, 0x1020800, 0x40C00000, + 0x40C00000, 0x1020800, 0x41000000, 0x41000000, 0x1020800, 0x41400000, + 0x41400000, 0x1020800, 0x40C00000, 0x40C00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41A00000, 0x41A00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41A00000, 0x41A00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41C00000, 0x41C00000, 0x1020800, 0x40C00000, + 0x40C00000, 0x1020100, 0x40C00000, 0x40C00000, 0x1020100, 0x41C00000, + 0x41C00000, 0x2020800, 0x40C00000, 0x40C00000, 0x1020100, 0x41000000, + 0x41000000, 0x1020100, 0x41400000, 0x41400000, 0x1020100, 0, 0, 0, 0 +}; + +//D:8004090C +u32 D_8004090C = 0xFFFFFFFF; +//D:80040910 +u32 D_80040910 = 0; +//D:80040914 +u32 D_80040914 = 0; +//D:80040918 +u32 D_80040918 = 0; +//D:8004091C +u32 D_8004091C = 0; +//D:80040920 +u32 D_80040920 = 0; +//D:80040924 +u32 D_80040924 = 0; +//D:80040928 +u32 D_80040928 = 0; +//D:8004092C +u32 D_8004092C = 0xDC; +//D:80040930 +u32 D_80040930 = 0; +//D:80040934 +u32 D_80040934 = 0; +//D:80040938 +u32 D_80040938 = 0; +//D:8004093C +u32 D_8004093C = 0xDC; + + +// rodata + + +#ifdef NONMATCHING +void sub_GAME_7F09C250(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800576B0 +.word 0x497423fe /*999999.88*/ +glabel D_800576B4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09C250 +/* 0D0D80 7F09C250 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0D0D84 7F09C254 00077400 */ sll $t6, $a3, 0x10 +/* 0D0D88 7F09C258 000E7C03 */ sra $t7, $t6, 0x10 +/* 0D0D8C 7F09C25C 3C198004 */ lui $t9, %hi(D_8004017C+0x108) +/* 0D0D90 7F09C260 AFB10020 */ sw $s1, 0x20($sp) +/* 0D0D94 7F09C264 27390284 */ addiu $t9, %lo(D_8004017C+0x108) # addiu $t9, $t9, 0x284 +/* 0D0D98 7F09C268 000FC180 */ sll $t8, $t7, 6 +/* 0D0D9C 7F09C26C AFB30028 */ sw $s3, 0x28($sp) +/* 0D0DA0 7F09C270 AFA70054 */ sw $a3, 0x54($sp) +/* 0D0DA4 7F09C274 03198821 */ addu $s1, $t8, $t9 +/* 0D0DA8 7F09C278 24010010 */ li $at, 16 +/* 0D0DAC 7F09C27C 01E03825 */ move $a3, $t7 +/* 0D0DB0 7F09C280 00A09825 */ move $s3, $a1 +/* 0D0DB4 7F09C284 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D0DB8 7F09C288 AFB20024 */ sw $s2, 0x24($sp) +/* 0D0DBC 7F09C28C AFB0001C */ sw $s0, 0x1c($sp) +/* 0D0DC0 7F09C290 AFA40048 */ sw $a0, 0x48($sp) +/* 0D0DC4 7F09C294 AFA60050 */ sw $a2, 0x50($sp) +/* 0D0DC8 7F09C298 AFB10044 */ sw $s1, 0x44($sp) +/* 0D0DCC 7F09C29C 11E10006 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DD0 7F09C2A0 00004025 */ move $t0, $zero +/* 0D0DD4 7F09C2A4 24010001 */ li $at, 1 +/* 0D0DD8 7F09C2A8 11E10003 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DDC 7F09C2AC 240E0006 */ li $t6, 6 +/* 0D0DE0 7F09C2B0 3C018004 */ lui $at, %hi(D_80040170) +/* 0D0DE4 7F09C2B4 AC2E0170 */ sw $t6, %lo(D_80040170)($at) +.L7F09C2B8: +/* 0D0DE8 7F09C2B8 3C048008 */ lui $a0, %hi(ptr_explosion_buf) +/* 0D0DEC 7F09C2BC 8C84A144 */ lw $a0, %lo(ptr_explosion_buf)($a0) +/* 0D0DF0 7F09C2C0 00001025 */ move $v0, $zero +/* 0D0DF4 7F09C2C4 00801825 */ move $v1, $a0 +.L7F09C2C8: +/* 0D0DF8 7F09C2C8 8C6F0000 */ lw $t7, ($v1) +/* 0D0DFC 7F09C2CC 55E00004 */ bnezl $t7, .L7F09C2E0 +/* 0D0E00 7F09C2D0 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D0E04 7F09C2D4 10000005 */ b .L7F09C2EC +/* 0D0E08 7F09C2D8 00444021 */ addu $t0, $v0, $a0 +/* 0D0E0C 7F09C2DC 244203E0 */ addiu $v0, $v0, 0x3e0 +.L7F09C2E0: +/* 0D0E10 7F09C2E0 28411740 */ slti $at, $v0, 0x1740 +/* 0D0E14 7F09C2E4 1420FFF8 */ bnez $at, .L7F09C2C8 +/* 0D0E18 7F09C2E8 246303E0 */ addiu $v1, $v1, 0x3e0 +.L7F09C2EC: +/* 0D0E1C 7F09C2EC 51000129 */ beql $t0, $zero, .L7F09C794 +/* 0D0E20 7F09C2F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D0E24 7F09C2F4 A7A70056 */ sh $a3, 0x56($sp) +/* 0D0E28 7F09C2F8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 0D0E2C 7F09C2FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E30 7F09C300 92230039 */ lbu $v1, 0x39($s1) +/* 0D0E34 7F09C304 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0E38 7F09C308 00403825 */ move $a3, $v0 +/* 0D0E3C 7F09C30C 1860000E */ blez $v1, .L7F09C348 +/* 0D0E40 7F09C310 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D0E44 7F09C314 00032C00 */ sll $a1, $v1, 0x10 +/* 0D0E48 7F09C318 0005C403 */ sra $t8, $a1, 0x10 +/* 0D0E4C 7F09C31C 03002825 */ move $a1, $t8 +/* 0D0E50 7F09C320 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D0E54 7F09C324 00003025 */ move $a2, $zero +/* 0D0E58 7F09C328 AFA20030 */ sw $v0, 0x30($sp) +/* 0D0E5C 7F09C32C 0C002382 */ jal play_sfx_a1 +/* 0D0E60 7F09C330 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E64 7F09C334 00402025 */ move $a0, $v0 +/* 0D0E68 7F09C338 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0D0E6C 7F09C33C 02602825 */ move $a1, $s3 +/* 0D0E70 7F09C340 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0E74 7F09C344 8FA80040 */ lw $t0, 0x40($sp) +.L7F09C348: +/* 0D0E78 7F09C348 10E00111 */ beqz $a3, .L7F09C790 +/* 0D0E7C 7F09C34C 8FA60060 */ lw $a2, 0x60($sp) +/* 0D0E80 7F09C350 90EE0001 */ lbu $t6, 1($a3) +/* 0D0E84 7F09C354 24190007 */ li $t9, 7 +/* 0D0E88 7F09C358 A0F90000 */ sb $t9, ($a3) +/* 0D0E8C 7F09C35C 35CF0002 */ ori $t7, $t6, 2 +/* 0D0E90 7F09C360 A0EF0001 */ sb $t7, 1($a3) +/* 0D0E94 7F09C364 ACE80004 */ sw $t0, 4($a3) +/* 0D0E98 7F09C368 8FB80050 */ lw $t8, 0x50($sp) +/* 0D0E9C 7F09C36C 240500FF */ li $a1, 255 +/* 0D0EA0 7F09C370 00008025 */ move $s0, $zero +/* 0D0EA4 7F09C374 ACF80014 */ sw $t8, 0x14($a3) +/* 0D0EA8 7F09C378 C6640000 */ lwc1 $f4, ($s3) +/* 0D0EAC 7F09C37C 240E00FF */ li $t6, 255 +/* 0D0EB0 7F09C380 E4E40008 */ swc1 $f4, 8($a3) +/* 0D0EB4 7F09C384 C6660004 */ lwc1 $f6, 4($s3) +/* 0D0EB8 7F09C388 E4E6000C */ swc1 $f6, 0xc($a3) +/* 0D0EBC 7F09C38C C6680008 */ lwc1 $f8, 8($s3) +/* 0D0EC0 7F09C390 E4E80010 */ swc1 $f8, 0x10($a3) +/* 0D0EC4 7F09C394 90D90000 */ lbu $t9, ($a2) +/* 0D0EC8 7F09C398 10B9000C */ beq $a1, $t9, .L7F09C3CC +/* 0D0ECC 7F09C39C 00E01821 */ addu $v1, $a3, $zero +/* 0D0ED0 7F09C3A0 00C01021 */ addu $v0, $a2, $zero +/* 0D0ED4 7F09C3A4 90C40000 */ lbu $a0, ($a2) +/* 0D0ED8 7F09C3A8 24120007 */ li $s2, 7 +/* 0D0EDC 7F09C3AC A064002C */ sb $a0, 0x2c($v1) +.L7F09C3B0: +/* 0D0EE0 7F09C3B0 90440001 */ lbu $a0, 1($v0) +/* 0D0EE4 7F09C3B4 26100001 */ addiu $s0, $s0, 1 +/* 0D0EE8 7F09C3B8 24630001 */ addiu $v1, $v1, 1 +/* 0D0EEC 7F09C3BC 10A40003 */ beq $a1, $a0, .L7F09C3CC +/* 0D0EF0 7F09C3C0 24420001 */ addiu $v0, $v0, 1 +/* 0D0EF4 7F09C3C4 5612FFFA */ bnel $s0, $s2, .L7F09C3B0 +/* 0D0EF8 7F09C3C8 A064002C */ sb $a0, 0x2c($v1) +.L7F09C3CC: +/* 0D0EFC 7F09C3CC 00F07821 */ addu $t7, $a3, $s0 +/* 0D0F00 7F09C3D0 A1EE002C */ sb $t6, 0x2c($t7) +/* 0D0F04 7F09C3D4 8FB80064 */ lw $t8, 0x64($sp) +/* 0D0F08 7F09C3D8 24120007 */ li $s2, 7 +/* 0D0F0C 7F09C3DC 00008025 */ move $s0, $zero +/* 0D0F10 7F09C3E0 13000004 */ beqz $t8, .L7F09C3F4 +/* 0D0F14 7F09C3E4 00E02025 */ move $a0, $a3 +/* 0D0F18 7F09C3E8 90F90001 */ lbu $t9, 1($a3) +/* 0D0F1C 7F09C3EC 372E0008 */ ori $t6, $t9, 8 +/* 0D0F20 7F09C3F0 A0EE0001 */ sb $t6, 1($a3) +.L7F09C3F4: +/* 0D0F24 7F09C3F4 AFA70030 */ sw $a3, 0x30($sp) +/* 0D0F28 7F09C3F8 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 0D0F2C 7F09C3FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0F30 7F09C400 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0D0F34 7F09C404 8FA40030 */ lw $a0, 0x30($sp) +/* 0D0F38 7F09C408 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0F3C 7F09C40C 8FA20058 */ lw $v0, 0x58($sp) +/* 0D0F40 7F09C410 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0F44 7F09C414 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0F48 7F09C418 87AF0056 */ lh $t7, 0x56($sp) +/* 0D0F4C 7F09C41C 2418FFFF */ li $t8, -1 +/* 0D0F50 7F09C420 A50003C8 */ sh $zero, 0x3c8($t0) +/* 0D0F54 7F09C424 A51803CA */ sh $t8, 0x3ca($t0) +/* 0D0F58 7F09C428 A10203CD */ sb $v0, 0x3cd($t0) +/* 0D0F5C 7F09C42C AD070000 */ sw $a3, ($t0) +/* 0D0F60 7F09C430 AD090004 */ sw $t1, 4($t0) +/* 0D0F64 7F09C434 A10F03CC */ sb $t7, 0x3cc($t0) +/* 0D0F68 7F09C438 8FB9005C */ lw $t9, 0x5c($sp) +/* 0D0F6C 7F09C43C 3C018005 */ lui $at, %hi(D_800576B0) +/* 0D0F70 7F09C440 1040002D */ beqz $v0, .L7F09C4F8 +/* 0D0F74 7F09C444 A11903CE */ sb $t9, 0x3ce($t0) +/* 0D0F78 7F09C448 51200019 */ beql $t1, $zero, .L7F09C4B0 +/* 0D0F7C 7F09C44C C6660000 */ lwc1 $f6, ($s3) +/* 0D0F80 7F09C450 8D2E0014 */ lw $t6, 0x14($t1) +/* 0D0F84 7F09C454 51C00016 */ beql $t6, $zero, .L7F09C4B0 +/* 0D0F88 7F09C458 C6660000 */ lwc1 $f6, ($s3) +/* 0D0F8C 7F09C45C C52A0008 */ lwc1 $f10, 8($t1) +/* 0D0F90 7F09C460 E50A03D0 */ swc1 $f10, 0x3d0($t0) +/* 0D0F94 7F09C464 8D260010 */ lw $a2, 0x10($t1) +/* 0D0F98 7F09C468 8D250008 */ lw $a1, 8($t1) +/* 0D0F9C 7F09C46C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FA0 7F09C470 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FA4 7F09C474 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FA8 7F09C478 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FAC 7F09C47C 44818000 */ mtc1 $at, $f16 +/* 0D0FB0 7F09C480 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FB4 7F09C484 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0FB8 7F09C488 46100480 */ add.s $f18, $f0, $f16 +/* 0D0FBC 7F09C48C E51203D4 */ swc1 $f18, 0x3d4($t0) +/* 0D0FC0 7F09C490 C5240010 */ lwc1 $f4, 0x10($t1) +/* 0D0FC4 7F09C494 E50403D8 */ swc1 $f4, 0x3d8($t0) +/* 0D0FC8 7F09C498 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0D0FCC 7F09C49C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FD0 7F09C4A0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FD4 7F09C4A4 10000016 */ b .L7F09C500 +/* 0D0FD8 7F09C4A8 A50203DC */ sh $v0, 0x3dc($t0) +/* 0D0FDC 7F09C4AC C6660000 */ lwc1 $f6, ($s3) +.L7F09C4B0: +/* 0D0FE0 7F09C4B0 E50603D0 */ swc1 $f6, 0x3d0($t0) +/* 0D0FE4 7F09C4B4 8E660008 */ lw $a2, 8($s3) +/* 0D0FE8 7F09C4B8 8E650000 */ lw $a1, ($s3) +/* 0D0FEC 7F09C4BC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FF0 7F09C4C0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FF4 7F09C4C4 8FA40050 */ lw $a0, 0x50($sp) +/* 0D0FF8 7F09C4C8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FFC 7F09C4CC 44814000 */ mtc1 $at, $f8 +/* 0D1000 7F09C4D0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1004 7F09C4D4 46080280 */ add.s $f10, $f0, $f8 +/* 0D1008 7F09C4D8 E50A03D4 */ swc1 $f10, 0x3d4($t0) +/* 0D100C 7F09C4DC C6700008 */ lwc1 $f16, 8($s3) +/* 0D1010 7F09C4E0 E51003D8 */ swc1 $f16, 0x3d8($t0) +/* 0D1014 7F09C4E4 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0D1018 7F09C4E8 8FA40050 */ lw $a0, 0x50($sp) +/* 0D101C 7F09C4EC 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1020 7F09C4F0 10000003 */ b .L7F09C500 +/* 0D1024 7F09C4F4 A50203DC */ sh $v0, 0x3dc($t0) +.L7F09C4F8: +/* 0D1028 7F09C4F8 C43276B0 */ lwc1 $f18, %lo(D_800576B0)($at) +/* 0D102C 7F09C4FC E51203D0 */ swc1 $f18, 0x3d0($t0) +.L7F09C500: +/* 0D1030 7F09C500 0C002914 */ jal get_random_value +/* 0D1034 7F09C504 AFA80040 */ sw $t0, 0x40($sp) +/* 0D1038 7F09C508 44822000 */ mtc1 $v0, $f4 +/* 0D103C 7F09C50C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1040 7F09C510 04410004 */ bgez $v0, .L7F09C524 +/* 0D1044 7F09C514 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1048 7F09C518 44814000 */ mtc1 $at, $f8 +/* 0D104C 7F09C51C 00000000 */ nop +/* 0D1050 7F09C520 46083180 */ add.s $f6, $f6, $f8 +.L7F09C524: +/* 0D1054 7F09C524 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1058 7F09C528 44815000 */ mtc1 $at, $f10 +/* 0D105C 7F09C52C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1060 7F09C530 44819000 */ mtc1 $at, $f18 +/* 0D1064 7F09C534 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1068 7F09C538 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D106C 7F09C53C 44814000 */ mtc1 $at, $f8 +/* 0D1070 7F09C540 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0D1074 7F09C544 46128102 */ mul.s $f4, $f16, $f18 +/* 0D1078 7F09C548 46082180 */ add.s $f6, $f4, $f8 +/* 0D107C 7F09C54C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1080 7F09C550 0C002914 */ jal get_random_value +/* 0D1084 7F09C554 E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0D1088 7F09C558 44829000 */ mtc1 $v0, $f18 +/* 0D108C 7F09C55C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1090 7F09C560 04410004 */ bgez $v0, .L7F09C574 +/* 0D1094 7F09C564 46809120 */ cvt.s.w $f4, $f18 +/* 0D1098 7F09C568 44814000 */ mtc1 $at, $f8 +/* 0D109C 7F09C56C 00000000 */ nop +/* 0D10A0 7F09C570 46082100 */ add.s $f4, $f4, $f8 +.L7F09C574: +/* 0D10A4 7F09C574 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D10A8 7F09C578 44813000 */ mtc1 $at, $f6 +/* 0D10AC 7F09C57C 3C018005 */ lui $at, %hi(D_800576B4) +/* 0D10B0 7F09C580 C43076B4 */ lwc1 $f16, %lo(D_800576B4)($at) +/* 0D10B4 7F09C584 46062282 */ mul.s $f10, $f4, $f6 +/* 0D10B8 7F09C588 00000000 */ nop +/* 0D10BC 7F09C58C 46105302 */ mul.s $f12, $f10, $f16 +/* 0D10C0 7F09C590 0FC15FA8 */ jal cosf +/* 0D10C4 7F09C594 E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0D10C8 7F09C598 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0D10CC 7F09C59C 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10D0 7F09C5A0 46120202 */ mul.s $f8, $f0, $f18 +/* 0D10D4 7F09C5A4 E5080014 */ swc1 $f8, 0x14($t0) +/* 0D10D8 7F09C5A8 0FC15FAB */ jal sinf +/* 0D10DC 7F09C5AC C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0D10E0 7F09C5B0 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D10E4 7F09C5B4 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10E8 7F09C5B8 240F0001 */ li $t7, 1 +/* 0D10EC 7F09C5BC 46040182 */ mul.s $f6, $f0, $f4 +/* 0D10F0 7F09C5C0 A50F001C */ sh $t7, 0x1c($t0) +/* 0D10F4 7F09C5C4 E5060018 */ swc1 $f6, 0x18($t0) +/* 0D10F8 7F09C5C8 C66A0000 */ lwc1 $f10, ($s3) +/* 0D10FC 7F09C5CC E50A0008 */ swc1 $f10, 8($t0) +/* 0D1100 7F09C5D0 C6700004 */ lwc1 $f16, 4($s3) +/* 0D1104 7F09C5D4 E510000C */ swc1 $f16, 0xc($t0) +/* 0D1108 7F09C5D8 C6720008 */ lwc1 $f18, 8($s3) +/* 0D110C 7F09C5DC E5120010 */ swc1 $f18, 0x10($t0) +/* 0D1110 7F09C5E0 86380024 */ lh $t8, 0x24($s1) +/* 0D1114 7F09C5E4 1B00000E */ blez $t8, .L7F09C620 +/* 0D1118 7F09C5E8 00000000 */ nop +/* 0D111C 7F09C5EC C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C5F0: +/* 0D1120 7F09C5F0 8E25002C */ lw $a1, 0x2c($s1) +/* 0D1124 7F09C5F4 8E260030 */ lw $a2, 0x30($s1) +/* 0D1128 7F09C5F8 8E270034 */ lw $a3, 0x34($s1) +/* 0D112C 7F09C5FC 02602025 */ move $a0, $s3 +/* 0D1130 7F09C600 0FC27C95 */ jal sub_GAME_7F09F254 +/* 0D1134 7F09C604 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0D1138 7F09C608 8FB90044 */ lw $t9, 0x44($sp) +/* 0D113C 7F09C60C 26100001 */ addiu $s0, $s0, 1 +/* 0D1140 7F09C610 872E0024 */ lh $t6, 0x24($t9) +/* 0D1144 7F09C614 020E082A */ slt $at, $s0, $t6 +/* 0D1148 7F09C618 5420FFF5 */ bnezl $at, .L7F09C5F0 +/* 0D114C 7F09C61C C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C620: +/* 0D1150 7F09C620 0FC26919 */ jal get_num_players +/* 0D1154 7F09C624 00000000 */ nop +/* 0D1158 7F09C628 28410002 */ slti $at, $v0, 2 +/* 0D115C 7F09C62C 14200058 */ bnez $at, .L7F09C790 +/* 0D1160 7F09C630 00003025 */ move $a2, $zero +/* 0D1164 7F09C634 3C0D8008 */ lui $t5, %hi(ptr_smoke_buf) +/* 0D1168 7F09C638 3C0B8004 */ lui $t3, %hi(D_8004017C) +/* 0D116C 7F09C63C 256B017C */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x17c +/* 0D1170 7F09C640 25ADA140 */ addiu $t5, %lo(ptr_smoke_buf) # addiu $t5, $t5, -0x5ec0 +/* 0D1174 7F09C644 241F1FE0 */ li $ra, 8160 +/* 0D1178 7F09C648 240C0018 */ li $t4, 24 +/* 0D117C 7F09C64C 240A0009 */ li $t2, 9 +/* 0D1180 7F09C650 24090008 */ li $t1, 8 +/* 0D1184 7F09C654 8DA30000 */ lw $v1, ($t5) +.L7F09C658: +/* 0D1188 7F09C658 00662821 */ addu $a1, $v1, $a2 +/* 0D118C 7F09C65C 8CAF0000 */ lw $t7, ($a1) +/* 0D1190 7F09C660 00C33821 */ addu $a3, $a2, $v1 +/* 0D1194 7F09C664 51E00011 */ beql $t7, $zero, .L7F09C6AC +/* 0D1198 7F09C668 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D119C 7F09C66C 84E20006 */ lh $v0, 6($a3) +/* 0D11A0 7F09C670 5242000E */ beql $s2, $v0, .L7F09C6AC +/* 0D11A4 7F09C674 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11A8 7F09C678 84E80006 */ lh $t0, 6($a3) +/* 0D11AC 7F09C67C 5128000B */ beql $t1, $t0, .L7F09C6AC +/* 0D11B0 7F09C680 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11B4 7F09C684 51480009 */ beql $t2, $t0, .L7F09C6AC +/* 0D11B8 7F09C688 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11BC 7F09C68C 004C0019 */ multu $v0, $t4 +/* 0D11C0 7F09C690 0000C012 */ mflo $t8 +/* 0D11C4 7F09C694 0178C821 */ addu $t9, $t3, $t8 +/* 0D11C8 7F09C698 872E0000 */ lh $t6, ($t9) +/* 0D11CC 7F09C69C A4EE0004 */ sh $t6, 4($a3) +/* 0D11D0 7F09C6A0 8DA30000 */ lw $v1, ($t5) +/* 0D11D4 7F09C6A4 00662821 */ addu $a1, $v1, $a2 +/* 0D11D8 7F09C6A8 8CAF0198 */ lw $t7, 0x198($a1) +.L7F09C6AC: +/* 0D11DC 7F09C6AC 00C32021 */ addu $a0, $a2, $v1 +/* 0D11E0 7F09C6B0 51E00011 */ beql $t7, $zero, .L7F09C6F8 +/* 0D11E4 7F09C6B4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11E8 7F09C6B8 8482019E */ lh $v0, 0x19e($a0) +/* 0D11EC 7F09C6BC 24840198 */ addiu $a0, $a0, 0x198 +/* 0D11F0 7F09C6C0 5242000D */ beql $s2, $v0, .L7F09C6F8 +/* 0D11F4 7F09C6C4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11F8 7F09C6C8 5122000B */ beql $t1, $v0, .L7F09C6F8 +/* 0D11FC 7F09C6CC 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1200 7F09C6D0 51420009 */ beql $t2, $v0, .L7F09C6F8 +/* 0D1204 7F09C6D4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1208 7F09C6D8 004C0019 */ multu $v0, $t4 +/* 0D120C 7F09C6DC 0000C012 */ mflo $t8 +/* 0D1210 7F09C6E0 0178C821 */ addu $t9, $t3, $t8 +/* 0D1214 7F09C6E4 872E0000 */ lh $t6, ($t9) +/* 0D1218 7F09C6E8 A48E0004 */ sh $t6, 4($a0) +/* 0D121C 7F09C6EC 8DA30000 */ lw $v1, ($t5) +/* 0D1220 7F09C6F0 00662821 */ addu $a1, $v1, $a2 +/* 0D1224 7F09C6F4 8CAF0330 */ lw $t7, 0x330($a1) +.L7F09C6F8: +/* 0D1228 7F09C6F8 00C32021 */ addu $a0, $a2, $v1 +/* 0D122C 7F09C6FC 51E00011 */ beql $t7, $zero, .L7F09C744 +/* 0D1230 7F09C700 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1234 7F09C704 84820336 */ lh $v0, 0x336($a0) +/* 0D1238 7F09C708 24840330 */ addiu $a0, $a0, 0x330 +/* 0D123C 7F09C70C 5242000D */ beql $s2, $v0, .L7F09C744 +/* 0D1240 7F09C710 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1244 7F09C714 5122000B */ beql $t1, $v0, .L7F09C744 +/* 0D1248 7F09C718 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D124C 7F09C71C 51420009 */ beql $t2, $v0, .L7F09C744 +/* 0D1250 7F09C720 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1254 7F09C724 004C0019 */ multu $v0, $t4 +/* 0D1258 7F09C728 0000C012 */ mflo $t8 +/* 0D125C 7F09C72C 0178C821 */ addu $t9, $t3, $t8 +/* 0D1260 7F09C730 872E0000 */ lh $t6, ($t9) +/* 0D1264 7F09C734 A48E0004 */ sh $t6, 4($a0) +/* 0D1268 7F09C738 8DA30000 */ lw $v1, ($t5) +/* 0D126C 7F09C73C 00662821 */ addu $a1, $v1, $a2 +/* 0D1270 7F09C740 8CAF04C8 */ lw $t7, 0x4c8($a1) +.L7F09C744: +/* 0D1274 7F09C744 00C32021 */ addu $a0, $a2, $v1 +/* 0D1278 7F09C748 51E0000F */ beql $t7, $zero, .L7F09C788 +/* 0D127C 7F09C74C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1280 7F09C750 848204CE */ lh $v0, 0x4ce($a0) +/* 0D1284 7F09C754 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 0D1288 7F09C758 5242000B */ beql $s2, $v0, .L7F09C788 +/* 0D128C 7F09C75C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1290 7F09C760 51220009 */ beql $t1, $v0, .L7F09C788 +/* 0D1294 7F09C764 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1298 7F09C768 51420007 */ beql $t2, $v0, .L7F09C788 +/* 0D129C 7F09C76C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D12A0 7F09C770 004C0019 */ multu $v0, $t4 +/* 0D12A4 7F09C774 0000C012 */ mflo $t8 +/* 0D12A8 7F09C778 0178C821 */ addu $t9, $t3, $t8 +/* 0D12AC 7F09C77C 872E0000 */ lh $t6, ($t9) +/* 0D12B0 7F09C780 A48E0004 */ sh $t6, 4($a0) +/* 0D12B4 7F09C784 24C60660 */ addiu $a2, $a2, 0x660 +.L7F09C788: +/* 0D12B8 7F09C788 54DFFFB3 */ bnel $a2, $ra, .L7F09C658 +/* 0D12BC 7F09C78C 8DA30000 */ lw $v1, ($t5) +.L7F09C790: +/* 0D12C0 7F09C790 8FBF002C */ lw $ra, 0x2c($sp) +.L7F09C794: +/* 0D12C4 7F09C794 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D12C8 7F09C798 8FB10020 */ lw $s1, 0x20($sp) +/* 0D12CC 7F09C79C 8FB20024 */ lw $s2, 0x24($sp) +/* 0D12D0 7F09C7A0 8FB30028 */ lw $s3, 0x28($sp) +/* 0D12D4 7F09C7A4 03E00008 */ jr $ra +/* 0D12D8 7F09C7A8 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800576B0 +.word 0x497423fe /*999999.88*/ +glabel D_800576B4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09C250 +/* 0D1960 7F09CDF0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0D1964 7F09CDF4 AFA7005C */ sw $a3, 0x5c($sp) +/* 0D1968 7F09CDF8 87AE005E */ lh $t6, 0x5e($sp) +/* 0D196C 7F09CDFC 3C088008 */ lui $t0, %hi(ptr_explosion_buf) # $t0, 0x8008 +/* 0D1970 7F09CE00 8D08A1B4 */ lw $t0, %lo(ptr_explosion_buf)($t0) +/* 0D1974 7F09CE04 3C188004 */ lui $t8, %hi(D_8004017C+0x108) # $t8, 0x8004 +/* 0D1978 7F09CE08 AFB10024 */ sw $s1, 0x24($sp) +/* 0D197C 7F09CE0C 271802B4 */ addiu $t8, %lo(D_8004017C+0x108) # addiu $t8, $t8, 0x2b4 +/* 0D1980 7F09CE10 000E7980 */ sll $t7, $t6, 6 +/* 0D1984 7F09CE14 AFB40030 */ sw $s4, 0x30($sp) +/* 0D1988 7F09CE18 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D198C 7F09CE1C 01F88821 */ addu $s1, $t7, $t8 +/* 0D1990 7F09CE20 00A09825 */ move $s3, $a1 +/* 0D1994 7F09CE24 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D1998 7F09CE28 AFB20028 */ sw $s2, 0x28($sp) +/* 0D199C 7F09CE2C AFB00020 */ sw $s0, 0x20($sp) +/* 0D19A0 7F09CE30 AFA40050 */ sw $a0, 0x50($sp) +/* 0D19A4 7F09CE34 AFA60058 */ sw $a2, 0x58($sp) +/* 0D19A8 7F09CE38 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D19AC 7F09CE3C 0000A025 */ move $s4, $zero +/* 0D19B0 7F09CE40 00001025 */ move $v0, $zero +/* 0D19B4 7F09CE44 01001825 */ move $v1, $t0 +.Ljp7F09CE48: +/* 0D19B8 7F09CE48 8C790000 */ lw $t9, ($v1) +/* 0D19BC 7F09CE4C 57200004 */ bnezl $t9, .Ljp7F09CE60 +/* 0D19C0 7F09CE50 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D19C4 7F09CE54 10000005 */ b .Ljp7F09CE6C +/* 0D19C8 7F09CE58 0048A021 */ addu $s4, $v0, $t0 +/* 0D19CC 7F09CE5C 244203E0 */ addiu $v0, $v0, 0x3e0 +.Ljp7F09CE60: +/* 0D19D0 7F09CE60 28411740 */ slti $at, $v0, 0x1740 +/* 0D19D4 7F09CE64 1420FFF8 */ bnez $at, .Ljp7F09CE48 +/* 0D19D8 7F09CE68 246303E0 */ addiu $v1, $v1, 0x3e0 +.Ljp7F09CE6C: +/* 0D19DC 7F09CE6C 52800124 */ beql $s4, $zero, .Ljp7F09D300 +/* 0D19E0 7F09CE70 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D19E4 7F09CE74 0FC0E9CC */ jal remove_last_obj_pos_data_entry +/* 0D19E8 7F09CE78 00000000 */ nop +/* 0D19EC 7F09CE7C 87AE005E */ lh $t6, 0x5e($sp) +/* 0D19F0 7F09CE80 24010010 */ li $at, 16 +/* 0D19F4 7F09CE84 00403825 */ move $a3, $v0 +/* 0D19F8 7F09CE88 11C10006 */ beq $t6, $at, .Ljp7F09CEA4 +/* 0D19FC 7F09CE8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0D1A00 7F09CE90 24010001 */ li $at, 1 +/* 0D1A04 7F09CE94 11C10003 */ beq $t6, $at, .Ljp7F09CEA4 +/* 0D1A08 7F09CE98 240F0006 */ li $t7, 6 +/* 0D1A0C 7F09CE9C 3C018004 */ lui $at, %hi(D_80040170) # $at, 0x8004 +/* 0D1A10 7F09CEA0 AC2F01A0 */ sw $t7, %lo(D_80040170)($at) +.Ljp7F09CEA4: +/* 0D1A14 7F09CEA4 92220039 */ lbu $v0, 0x39($s1) +/* 0D1A18 7F09CEA8 00003025 */ move $a2, $zero +/* 0D1A1C 7F09CEAC 1840000A */ blez $v0, .Ljp7F09CED8 +/* 0D1A20 7F09CEB0 00022C00 */ sll $a1, $v0, 0x10 +/* 0D1A24 7F09CEB4 0005C403 */ sra $t8, $a1, 0x10 +/* 0D1A28 7F09CEB8 03002825 */ move $a1, $t8 +/* 0D1A2C 7F09CEBC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D1A30 7F09CEC0 0C002386 */ jal play_sfx_a1 +/* 0D1A34 7F09CEC4 AFA70038 */ sw $a3, 0x38($sp) +/* 0D1A38 7F09CEC8 00402025 */ move $a0, $v0 +/* 0D1A3C 7F09CECC 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0D1A40 7F09CED0 02602825 */ move $a1, $s3 +/* 0D1A44 7F09CED4 8FA70038 */ lw $a3, 0x38($sp) +.Ljp7F09CED8: +/* 0D1A48 7F09CED8 10E00108 */ beqz $a3, .Ljp7F09D2FC +/* 0D1A4C 7F09CEDC 8FA60068 */ lw $a2, 0x68($sp) +/* 0D1A50 7F09CEE0 90EE0001 */ lbu $t6, 1($a3) +/* 0D1A54 7F09CEE4 24190007 */ li $t9, 7 +/* 0D1A58 7F09CEE8 A0F90000 */ sb $t9, ($a3) +/* 0D1A5C 7F09CEEC 35CF0002 */ ori $t7, $t6, 2 +/* 0D1A60 7F09CEF0 A0EF0001 */ sb $t7, 1($a3) +/* 0D1A64 7F09CEF4 ACF40004 */ sw $s4, 4($a3) +/* 0D1A68 7F09CEF8 8FB80058 */ lw $t8, 0x58($sp) +/* 0D1A6C 7F09CEFC 240500FF */ li $a1, 255 +/* 0D1A70 7F09CF00 00008025 */ move $s0, $zero +/* 0D1A74 7F09CF04 ACF80014 */ sw $t8, 0x14($a3) +/* 0D1A78 7F09CF08 C6640000 */ lwc1 $f4, ($s3) +/* 0D1A7C 7F09CF0C 240E00FF */ li $t6, 255 +/* 0D1A80 7F09CF10 E4E40008 */ swc1 $f4, 8($a3) +/* 0D1A84 7F09CF14 C6660004 */ lwc1 $f6, 4($s3) +/* 0D1A88 7F09CF18 E4E6000C */ swc1 $f6, 0xc($a3) +/* 0D1A8C 7F09CF1C C6680008 */ lwc1 $f8, 8($s3) +/* 0D1A90 7F09CF20 E4E80010 */ swc1 $f8, 0x10($a3) +/* 0D1A94 7F09CF24 90D90000 */ lbu $t9, ($a2) +/* 0D1A98 7F09CF28 10B9000C */ beq $a1, $t9, .Ljp7F09CF5C +/* 0D1A9C 7F09CF2C 00E01821 */ addu $v1, $a3, $zero +/* 0D1AA0 7F09CF30 00C01021 */ addu $v0, $a2, $zero +/* 0D1AA4 7F09CF34 90C40000 */ lbu $a0, ($a2) +/* 0D1AA8 7F09CF38 24120007 */ li $s2, 7 +/* 0D1AAC 7F09CF3C A064002C */ sb $a0, 0x2c($v1) +.Ljp7F09CF40: +/* 0D1AB0 7F09CF40 90440001 */ lbu $a0, 1($v0) +/* 0D1AB4 7F09CF44 26100001 */ addiu $s0, $s0, 1 +/* 0D1AB8 7F09CF48 24630001 */ addiu $v1, $v1, 1 +/* 0D1ABC 7F09CF4C 10A40003 */ beq $a1, $a0, .Ljp7F09CF5C +/* 0D1AC0 7F09CF50 24420001 */ addiu $v0, $v0, 1 +/* 0D1AC4 7F09CF54 5612FFFA */ bnel $s0, $s2, .Ljp7F09CF40 +/* 0D1AC8 7F09CF58 A064002C */ sb $a0, 0x2c($v1) +.Ljp7F09CF5C: +/* 0D1ACC 7F09CF5C 00F07821 */ addu $t7, $a3, $s0 +/* 0D1AD0 7F09CF60 A1EE002C */ sb $t6, 0x2c($t7) +/* 0D1AD4 7F09CF64 8FB8006C */ lw $t8, 0x6c($sp) +/* 0D1AD8 7F09CF68 24120007 */ li $s2, 7 +/* 0D1ADC 7F09CF6C 00008025 */ move $s0, $zero +/* 0D1AE0 7F09CF70 13000004 */ beqz $t8, .Ljp7F09CF84 +/* 0D1AE4 7F09CF74 00E02025 */ move $a0, $a3 +/* 0D1AE8 7F09CF78 90F90001 */ lbu $t9, 1($a3) +/* 0D1AEC 7F09CF7C 372E0008 */ ori $t6, $t9, 8 +/* 0D1AF0 7F09CF80 A0EE0001 */ sb $t6, 1($a3) +.Ljp7F09CF84: +/* 0D1AF4 7F09CF84 0FC0E9FC */ jal sub_GAME_7F03A4F0 +/* 0D1AF8 7F09CF88 AFA70038 */ sw $a3, 0x38($sp) +/* 0D1AFC 7F09CF8C 0FC0E9C1 */ jal set_stateflag_0x04_for_posdata +/* 0D1B00 7F09CF90 8FA40038 */ lw $a0, 0x38($sp) +/* 0D1B04 7F09CF94 8FA20060 */ lw $v0, 0x60($sp) +/* 0D1B08 7F09CF98 8FA70038 */ lw $a3, 0x38($sp) +/* 0D1B0C 7F09CF9C 8FA80050 */ lw $t0, 0x50($sp) +/* 0D1B10 7F09CFA0 87AF005E */ lh $t7, 0x5e($sp) +/* 0D1B14 7F09CFA4 2418FFFF */ li $t8, -1 +/* 0D1B18 7F09CFA8 A68003C8 */ sh $zero, 0x3c8($s4) +/* 0D1B1C 7F09CFAC A69803CA */ sh $t8, 0x3ca($s4) +/* 0D1B20 7F09CFB0 A28203CD */ sb $v0, 0x3cd($s4) +/* 0D1B24 7F09CFB4 AE870000 */ sw $a3, ($s4) +/* 0D1B28 7F09CFB8 AE880004 */ sw $t0, 4($s4) +/* 0D1B2C 7F09CFBC A28F03CC */ sb $t7, 0x3cc($s4) +/* 0D1B30 7F09CFC0 8FB90064 */ lw $t9, 0x64($sp) +/* 0D1B34 7F09CFC4 3C018005 */ lui $at, %hi(D_800576B0) # $at, 0x8005 +/* 0D1B38 7F09CFC8 10400028 */ beqz $v0, .Ljp7F09D06C +/* 0D1B3C 7F09CFCC A29903CE */ sb $t9, 0x3ce($s4) +/* 0D1B40 7F09CFD0 51000016 */ beql $t0, $zero, .Ljp7F09D02C +/* 0D1B44 7F09CFD4 C6660000 */ lwc1 $f6, ($s3) +/* 0D1B48 7F09CFD8 8D0E0014 */ lw $t6, 0x14($t0) +/* 0D1B4C 7F09CFDC 51C00013 */ beql $t6, $zero, .Ljp7F09D02C +/* 0D1B50 7F09CFE0 C6660000 */ lwc1 $f6, ($s3) +/* 0D1B54 7F09CFE4 C50A0008 */ lwc1 $f10, 8($t0) +/* 0D1B58 7F09CFE8 E68A03D0 */ swc1 $f10, 0x3d0($s4) +/* 0D1B5C 7F09CFEC 8D060010 */ lw $a2, 0x10($t0) +/* 0D1B60 7F09CFF0 8D050008 */ lw $a1, 8($t0) +/* 0D1B64 7F09CFF4 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0D1B68 7F09CFF8 8D040014 */ lw $a0, 0x14($t0) +/* 0D1B6C 7F09CFFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1B70 7F09D000 44818000 */ mtc1 $at, $f16 +/* 0D1B74 7F09D004 8FA80050 */ lw $t0, 0x50($sp) +/* 0D1B78 7F09D008 46100480 */ add.s $f18, $f0, $f16 +/* 0D1B7C 7F09D00C E69203D4 */ swc1 $f18, 0x3d4($s4) +/* 0D1B80 7F09D010 C5040010 */ lwc1 $f4, 0x10($t0) +/* 0D1B84 7F09D014 E68403D8 */ swc1 $f4, 0x3d8($s4) +/* 0D1B88 7F09D018 0FC2CEE2 */ jal sub_GAME_7F0B2FD8 +/* 0D1B8C 7F09D01C 8D040014 */ lw $a0, 0x14($t0) +/* 0D1B90 7F09D020 10000014 */ b .Ljp7F09D074 +/* 0D1B94 7F09D024 A68203DC */ sh $v0, 0x3dc($s4) +/* 0D1B98 7F09D028 C6660000 */ lwc1 $f6, ($s3) +.Ljp7F09D02C: +/* 0D1B9C 7F09D02C E68603D0 */ swc1 $f6, 0x3d0($s4) +/* 0D1BA0 7F09D030 8E660008 */ lw $a2, 8($s3) +/* 0D1BA4 7F09D034 8E650000 */ lw $a1, ($s3) +/* 0D1BA8 7F09D038 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0D1BAC 7F09D03C 8FA40058 */ lw $a0, 0x58($sp) +/* 0D1BB0 7F09D040 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1BB4 7F09D044 44814000 */ mtc1 $at, $f8 +/* 0D1BB8 7F09D048 00000000 */ nop +/* 0D1BBC 7F09D04C 46080280 */ add.s $f10, $f0, $f8 +/* 0D1BC0 7F09D050 E68A03D4 */ swc1 $f10, 0x3d4($s4) +/* 0D1BC4 7F09D054 C6700008 */ lwc1 $f16, 8($s3) +/* 0D1BC8 7F09D058 E69003D8 */ swc1 $f16, 0x3d8($s4) +/* 0D1BCC 7F09D05C 0FC2CEE2 */ jal sub_GAME_7F0B2FD8 +/* 0D1BD0 7F09D060 8FA40058 */ lw $a0, 0x58($sp) +/* 0D1BD4 7F09D064 10000003 */ b .Ljp7F09D074 +/* 0D1BD8 7F09D068 A68203DC */ sh $v0, 0x3dc($s4) +.Ljp7F09D06C: +/* 0D1BDC 7F09D06C C43276E0 */ lwc1 $f18, %lo(D_800576B0)($at) +/* 0D1BE0 7F09D070 E69203D0 */ swc1 $f18, 0x3d0($s4) +.Ljp7F09D074: +/* 0D1BE4 7F09D074 0C002918 */ jal get_random_value +/* 0D1BE8 7F09D078 00000000 */ nop +/* 0D1BEC 7F09D07C 44822000 */ mtc1 $v0, $f4 +/* 0D1BF0 7F09D080 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1BF4 7F09D084 04410004 */ bgez $v0, .Ljp7F09D098 +/* 0D1BF8 7F09D088 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1BFC 7F09D08C 44814000 */ mtc1 $at, $f8 +/* 0D1C00 7F09D090 00000000 */ nop +/* 0D1C04 7F09D094 46083180 */ add.s $f6, $f6, $f8 +.Ljp7F09D098: +/* 0D1C08 7F09D098 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1C0C 7F09D09C 44815000 */ mtc1 $at, $f10 +/* 0D1C10 7F09D0A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1C14 7F09D0A4 44819000 */ mtc1 $at, $f18 +/* 0D1C18 7F09D0A8 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1C1C 7F09D0AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1C20 7F09D0B0 44814000 */ mtc1 $at, $f8 +/* 0D1C24 7F09D0B4 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0D1C28 7F09D0B8 46128102 */ mul.s $f4, $f16, $f18 +/* 0D1C2C 7F09D0BC 46082180 */ add.s $f6, $f4, $f8 +/* 0D1C30 7F09D0C0 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1C34 7F09D0C4 0C002918 */ jal get_random_value +/* 0D1C38 7F09D0C8 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0D1C3C 7F09D0CC 44829000 */ mtc1 $v0, $f18 +/* 0D1C40 7F09D0D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C44 7F09D0D4 04410004 */ bgez $v0, .Ljp7F09D0E8 +/* 0D1C48 7F09D0D8 46809120 */ cvt.s.w $f4, $f18 +/* 0D1C4C 7F09D0DC 44814000 */ mtc1 $at, $f8 +/* 0D1C50 7F09D0E0 00000000 */ nop +/* 0D1C54 7F09D0E4 46082100 */ add.s $f4, $f4, $f8 +.Ljp7F09D0E8: +/* 0D1C58 7F09D0E8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1C5C 7F09D0EC 44813000 */ mtc1 $at, $f6 +/* 0D1C60 7F09D0F0 3C018005 */ lui $at, %hi(D_800576B4) # $at, 0x8005 +/* 0D1C64 7F09D0F4 C43076E4 */ lwc1 $f16, %lo(D_800576B4)($at) +/* 0D1C68 7F09D0F8 46062282 */ mul.s $f10, $f4, $f6 +/* 0D1C6C 7F09D0FC 00000000 */ nop +/* 0D1C70 7F09D100 46105302 */ mul.s $f12, $f10, $f16 +/* 0D1C74 7F09D104 0FC160F0 */ jal cosf +/* 0D1C78 7F09D108 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 0D1C7C 7F09D10C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0D1C80 7F09D110 46120202 */ mul.s $f8, $f0, $f18 +/* 0D1C84 7F09D114 E6880014 */ swc1 $f8, 0x14($s4) +/* 0D1C88 7F09D118 0FC160F3 */ jal sinf +/* 0D1C8C 7F09D11C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 0D1C90 7F09D120 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D1C94 7F09D124 240F0001 */ li $t7, 1 +/* 0D1C98 7F09D128 A68F001C */ sh $t7, 0x1c($s4) +/* 0D1C9C 7F09D12C 46040182 */ mul.s $f6, $f0, $f4 +/* 0D1CA0 7F09D130 E6860018 */ swc1 $f6, 0x18($s4) +/* 0D1CA4 7F09D134 C66A0000 */ lwc1 $f10, ($s3) +/* 0D1CA8 7F09D138 E68A0008 */ swc1 $f10, 8($s4) +/* 0D1CAC 7F09D13C C6700004 */ lwc1 $f16, 4($s3) +/* 0D1CB0 7F09D140 E690000C */ swc1 $f16, 0xc($s4) +/* 0D1CB4 7F09D144 C6720008 */ lwc1 $f18, 8($s3) +/* 0D1CB8 7F09D148 E6920010 */ swc1 $f18, 0x10($s4) +/* 0D1CBC 7F09D14C 86380024 */ lh $t8, 0x24($s1) +/* 0D1CC0 7F09D150 1B00000E */ blez $t8, .Ljp7F09D18C +/* 0D1CC4 7F09D154 00000000 */ nop +/* 0D1CC8 7F09D158 C6280028 */ lwc1 $f8, 0x28($s1) +.Ljp7F09D15C: +/* 0D1CCC 7F09D15C 8E25002C */ lw $a1, 0x2c($s1) +/* 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 +/* 0D1CE0 7F09D170 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0D1CE4 7F09D174 8FB9004C */ lw $t9, 0x4c($sp) +/* 0D1CE8 7F09D178 26100001 */ addiu $s0, $s0, 1 +/* 0D1CEC 7F09D17C 872E0024 */ lh $t6, 0x24($t9) +/* 0D1CF0 7F09D180 020E082A */ slt $at, $s0, $t6 +/* 0D1CF4 7F09D184 5420FFF5 */ bnezl $at, .Ljp7F09D15C +/* 0D1CF8 7F09D188 C6280028 */ lwc1 $f8, 0x28($s1) +.Ljp7F09D18C: +/* 0D1CFC 7F09D18C 0FC26C01 */ jal get_num_players +/* 0D1D00 7F09D190 00000000 */ nop +/* 0D1D04 7F09D194 28410002 */ slti $at, $v0, 2 +/* 0D1D08 7F09D198 14200058 */ bnez $at, .Ljp7F09D2FC +/* 0D1D0C 7F09D19C 00003025 */ move $a2, $zero +/* 0D1D10 7F09D1A0 3C0D8008 */ lui $t5, %hi(ptr_smoke_buf) # $t5, 0x8008 +/* 0D1D14 7F09D1A4 3C0B8004 */ lui $t3, %hi(D_8004017C) # $t3, 0x8004 +/* 0D1D18 7F09D1A8 256B01AC */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x1ac +/* 0D1D1C 7F09D1AC 25ADA1B0 */ addiu $t5, %lo(ptr_smoke_buf) # addiu $t5, $t5, -0x5e50 +/* 0D1D20 7F09D1B0 241F1FE0 */ li $ra, 8160 +/* 0D1D24 7F09D1B4 240C0018 */ li $t4, 24 +/* 0D1D28 7F09D1B8 240A0009 */ li $t2, 9 +/* 0D1D2C 7F09D1BC 24090008 */ li $t1, 8 +/* 0D1D30 7F09D1C0 8DA30000 */ lw $v1, ($t5) +.Ljp7F09D1C4: +/* 0D1D34 7F09D1C4 00662821 */ addu $a1, $v1, $a2 +/* 0D1D38 7F09D1C8 8CAF0000 */ lw $t7, ($a1) +/* 0D1D3C 7F09D1CC 00C33821 */ addu $a3, $a2, $v1 +/* 0D1D40 7F09D1D0 51E00011 */ beql $t7, $zero, .Ljp7F09D218 +/* 0D1D44 7F09D1D4 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D48 7F09D1D8 84E20006 */ lh $v0, 6($a3) +/* 0D1D4C 7F09D1DC 5242000E */ beql $s2, $v0, .Ljp7F09D218 +/* 0D1D50 7F09D1E0 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D54 7F09D1E4 84E80006 */ lh $t0, 6($a3) +/* 0D1D58 7F09D1E8 5128000B */ beql $t1, $t0, .Ljp7F09D218 +/* 0D1D5C 7F09D1EC 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D60 7F09D1F0 51480009 */ beql $t2, $t0, .Ljp7F09D218 +/* 0D1D64 7F09D1F4 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D68 7F09D1F8 004C0019 */ multu $v0, $t4 +/* 0D1D6C 7F09D1FC 0000C012 */ mflo $t8 +/* 0D1D70 7F09D200 0178C821 */ addu $t9, $t3, $t8 +/* 0D1D74 7F09D204 872E0000 */ lh $t6, ($t9) +/* 0D1D78 7F09D208 A4EE0004 */ sh $t6, 4($a3) +/* 0D1D7C 7F09D20C 8DA30000 */ lw $v1, ($t5) +/* 0D1D80 7F09D210 00662821 */ addu $a1, $v1, $a2 +/* 0D1D84 7F09D214 8CAF0198 */ lw $t7, 0x198($a1) +.Ljp7F09D218: +/* 0D1D88 7F09D218 00C32021 */ addu $a0, $a2, $v1 +/* 0D1D8C 7F09D21C 51E00011 */ beql $t7, $zero, .Ljp7F09D264 +/* 0D1D90 7F09D220 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1D94 7F09D224 8482019E */ lh $v0, 0x19e($a0) +/* 0D1D98 7F09D228 24840198 */ addiu $a0, $a0, 0x198 +/* 0D1D9C 7F09D22C 5242000D */ beql $s2, $v0, .Ljp7F09D264 +/* 0D1DA0 7F09D230 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DA4 7F09D234 5122000B */ beql $t1, $v0, .Ljp7F09D264 +/* 0D1DA8 7F09D238 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DAC 7F09D23C 51420009 */ beql $t2, $v0, .Ljp7F09D264 +/* 0D1DB0 7F09D240 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DB4 7F09D244 004C0019 */ multu $v0, $t4 +/* 0D1DB8 7F09D248 0000C012 */ mflo $t8 +/* 0D1DBC 7F09D24C 0178C821 */ addu $t9, $t3, $t8 +/* 0D1DC0 7F09D250 872E0000 */ lh $t6, ($t9) +/* 0D1DC4 7F09D254 A48E0004 */ sh $t6, 4($a0) +/* 0D1DC8 7F09D258 8DA30000 */ lw $v1, ($t5) +/* 0D1DCC 7F09D25C 00662821 */ addu $a1, $v1, $a2 +/* 0D1DD0 7F09D260 8CAF0330 */ lw $t7, 0x330($a1) +.Ljp7F09D264: +/* 0D1DD4 7F09D264 00C32021 */ addu $a0, $a2, $v1 +/* 0D1DD8 7F09D268 51E00011 */ beql $t7, $zero, .Ljp7F09D2B0 +/* 0D1DDC 7F09D26C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DE0 7F09D270 84820336 */ lh $v0, 0x336($a0) +/* 0D1DE4 7F09D274 24840330 */ addiu $a0, $a0, 0x330 +/* 0D1DE8 7F09D278 5242000D */ beql $s2, $v0, .Ljp7F09D2B0 +/* 0D1DEC 7F09D27C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DF0 7F09D280 5122000B */ beql $t1, $v0, .Ljp7F09D2B0 +/* 0D1DF4 7F09D284 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DF8 7F09D288 51420009 */ beql $t2, $v0, .Ljp7F09D2B0 +/* 0D1DFC 7F09D28C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1E00 7F09D290 004C0019 */ multu $v0, $t4 +/* 0D1E04 7F09D294 0000C012 */ mflo $t8 +/* 0D1E08 7F09D298 0178C821 */ addu $t9, $t3, $t8 +/* 0D1E0C 7F09D29C 872E0000 */ lh $t6, ($t9) +/* 0D1E10 7F09D2A0 A48E0004 */ sh $t6, 4($a0) +/* 0D1E14 7F09D2A4 8DA30000 */ lw $v1, ($t5) +/* 0D1E18 7F09D2A8 00662821 */ addu $a1, $v1, $a2 +/* 0D1E1C 7F09D2AC 8CAF04C8 */ lw $t7, 0x4c8($a1) +.Ljp7F09D2B0: +/* 0D1E20 7F09D2B0 00C32021 */ addu $a0, $a2, $v1 +/* 0D1E24 7F09D2B4 51E0000F */ beql $t7, $zero, .Ljp7F09D2F4 +/* 0D1E28 7F09D2B8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E2C 7F09D2BC 848204CE */ lh $v0, 0x4ce($a0) +/* 0D1E30 7F09D2C0 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 0D1E34 7F09D2C4 5242000B */ beql $s2, $v0, .Ljp7F09D2F4 +/* 0D1E38 7F09D2C8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E3C 7F09D2CC 51220009 */ beql $t1, $v0, .Ljp7F09D2F4 +/* 0D1E40 7F09D2D0 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E44 7F09D2D4 51420007 */ beql $t2, $v0, .Ljp7F09D2F4 +/* 0D1E48 7F09D2D8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E4C 7F09D2DC 004C0019 */ multu $v0, $t4 +/* 0D1E50 7F09D2E0 0000C012 */ mflo $t8 +/* 0D1E54 7F09D2E4 0178C821 */ addu $t9, $t3, $t8 +/* 0D1E58 7F09D2E8 872E0000 */ lh $t6, ($t9) +/* 0D1E5C 7F09D2EC A48E0004 */ sh $t6, 4($a0) +/* 0D1E60 7F09D2F0 24C60660 */ addiu $a2, $a2, 0x660 +.Ljp7F09D2F4: +/* 0D1E64 7F09D2F4 54DFFFB3 */ bnel $a2, $ra, .Ljp7F09D1C4 +/* 0D1E68 7F09D2F8 8DA30000 */ lw $v1, ($t5) +.Ljp7F09D2FC: +/* 0D1E6C 7F09D2FC 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F09D300: +/* 0D1E70 7F09D300 0014102B */ sltu $v0, $zero, $s4 +/* 0D1E74 7F09D304 8FB40030 */ lw $s4, 0x30($sp) +/* 0D1E78 7F09D308 8FB00020 */ lw $s0, 0x20($sp) +/* 0D1E7C 7F09D30C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D1E80 7F09D310 8FB20028 */ lw $s2, 0x28($sp) +/* 0D1E84 7F09D314 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D1E88 7F09D318 03E00008 */ jr $ra +/* 0D1E8C 7F09D31C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +#endif + + +void sub_GAME_7F09C7AC(void) { + D_80040170 = 6; + D_80040174 = 6; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09C7C4(void) { + +} +#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(D_80040170) +/* 0D12FC 7F09C7CC 8DCE0170 */ lw $t6, %lo(D_80040170)($t6) +/* 0D1300 7F09C7D0 AFB20030 */ sw $s2, 0x30($sp) +/* 0D1304 7F09C7D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 0D1308 7F09C7D8 00808825 */ move $s1, $a0 +/* 0D130C 7F09C7DC 00A09025 */ move $s2, $a1 +/* 0D1310 7F09C7E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D1314 7F09C7E4 AFB40038 */ sw $s4, 0x38($sp) +/* 0D1318 7F09C7E8 AFB30034 */ sw $s3, 0x34($sp) +/* 0D131C 7F09C7EC AFB00028 */ sw $s0, 0x28($sp) +/* 0D1320 7F09C7F0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1324 7F09C7F4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1328 7F09C7F8 15C00006 */ bnez $t6, .L7F09C814 +/* 0D132C 7F09C7FC AFA60060 */ sw $a2, 0x60($sp) +/* 0D1330 7F09C800 44806000 */ mtc1 $zero, $f12 +/* 0D1334 7F09C804 0C000EC1 */ jal video_related_9 +/* 0D1338 7F09C808 00000000 */ nop +/* 0D133C 7F09C80C 10000069 */ b .L7F09C9B4 +/* 0D1340 7F09C810 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09C814: +/* 0D1344 7F09C814 3C018005 */ lui $at, %hi(D_800576B8) +/* 0D1348 7F09C818 C43476B8 */ lwc1 $f20, %lo(D_800576B8)($at) +/* 0D134C 7F09C81C 0FC15FA8 */ jal cosf +/* 0D1350 7F09C820 4600A306 */ mov.s $f12, $f20 +/* 0D1354 7F09C824 46000586 */ mov.s $f22, $f0 +/* 0D1358 7F09C828 0FC15FAB */ jal sinf +/* 0D135C 7F09C82C 4600A306 */ mov.s $f12, $f20 +/* 0D1360 7F09C830 C6440000 */ lwc1 $f4, ($s2) +/* 0D1364 7F09C834 C6480008 */ lwc1 $f8, 8($s2) +/* 0D1368 7F09C838 4600A306 */ mov.s $f12, $f20 +/* 0D136C 7F09C83C 4604B182 */ mul.s $f6, $f22, $f4 +/* 0D1370 7F09C840 00000000 */ nop +/* 0D1374 7F09C844 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1378 7F09C848 460A3401 */ sub.s $f16, $f6, $f10 +/* 0D137C 7F09C84C 0FC15FAB */ jal sinf +/* 0D1380 7F09C850 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0D1384 7F09C854 46000586 */ mov.s $f22, $f0 +/* 0D1388 7F09C858 0FC15FA8 */ jal cosf +/* 0D138C 7F09C85C 4600A306 */ mov.s $f12, $f20 +/* 0D1390 7F09C860 C6520008 */ lwc1 $f18, 8($s2) +/* 0D1394 7F09C864 C6480000 */ lwc1 $f8, ($s2) +/* 0D1398 7F09C868 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D139C 7F09C86C 46009102 */ mul.s $f4, $f18, $f0 +/* 0D13A0 7F09C870 3C128004 */ lui $s2, %hi(D_8004017C+0x108) +/* 0D13A4 7F09C874 3C028008 */ lui $v0, %hi(ptr_explosion_buf) +/* 0D13A8 7F09C878 4608B182 */ mul.s $f6, $f22, $f8 +/* 0D13AC 7F09C87C 3C138008 */ lui $s3, %hi(ptr_explosion_buf) +/* 0D13B0 7F09C880 4480A000 */ mtc1 $zero, $f20 +/* 0D13B4 7F09C884 4481B000 */ mtc1 $at, $f22 +/* 0D13B8 7F09C888 2673A144 */ addiu $s3, %lo(ptr_explosion_buf) # addiu $s3, $s3, -0x5ebc +/* 0D13BC 7F09C88C 8C42A144 */ lw $v0, %lo(ptr_explosion_buf)($v0) +/* 0D13C0 7F09C890 26520284 */ addiu $s2, %lo(D_8004017C+0x108) # addiu $s2, $s2, 0x284 +/* 0D13C4 7F09C894 46062280 */ add.s $f10, $f4, $f6 +/* 0D13C8 7F09C898 00008025 */ move $s0, $zero +/* 0D13CC 7F09C89C 24141740 */ li $s4, 5952 +/* 0D13D0 7F09C8A0 E7AA0040 */ swc1 $f10, 0x40($sp) +.L7F09C8A4: +/* 0D13D4 7F09C8A4 8C430000 */ lw $v1, ($v0) +/* 0D13D8 7F09C8A8 5060001A */ beql $v1, $zero, .L7F09C914 +/* 0D13DC 7F09C8AC 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 0D13E0 7F09C8B0 C4700008 */ lwc1 $f16, 8($v1) +/* 0D13E4 7F09C8B4 C6320000 */ lwc1 $f18, ($s1) +/* 0D13E8 7F09C8B8 C468000C */ lwc1 $f8, 0xc($v1) +/* 0D13EC 7F09C8BC C6240004 */ lwc1 $f4, 4($s1) +/* 0D13F0 7F09C8C0 46128001 */ sub.s $f0, $f16, $f18 +/* 0D13F4 7F09C8C4 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D13F8 7F09C8C8 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D13FC 7F09C8CC 46044081 */ sub.s $f2, $f8, $f4 +/* 0D1400 7F09C8D0 46000402 */ mul.s $f16, $f0, $f0 +/* 0D1404 7F09C8D4 460A3381 */ sub.s $f14, $f6, $f10 +/* 0D1408 7F09C8D8 46021482 */ mul.s $f18, $f2, $f2 +/* 0D140C 7F09C8DC 46128200 */ add.s $f8, $f16, $f18 +/* 0D1410 7F09C8E0 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D1414 7F09C8E4 0C007DF8 */ jal sqrtf +/* 0D1418 7F09C8E8 46044300 */ add.s $f12, $f8, $f4 +/* 0D141C 7F09C8EC 8E6F0000 */ lw $t7, ($s3) +/* 0D1420 7F09C8F0 01F01021 */ addu $v0, $t7, $s0 +/* 0D1424 7F09C8F4 805803CC */ lb $t8, 0x3cc($v0) +/* 0D1428 7F09C8F8 0018C980 */ sll $t9, $t8, 6 +/* 0D142C 7F09C8FC 02594021 */ addu $t0, $s2, $t9 +/* 0D1430 7F09C900 C5060010 */ lwc1 $f6, 0x10($t0) +/* 0D1434 7F09C904 46003083 */ div.s $f2, $f6, $f0 +/* 0D1438 7F09C908 46161282 */ mul.s $f10, $f2, $f22 +/* 0D143C 7F09C90C 460AA500 */ add.s $f20, $f20, $f10 +/* 0D1440 7F09C910 261003E0 */ addiu $s0, $s0, 0x3e0 +.L7F09C914: +/* 0D1444 7F09C914 1614FFE3 */ bne $s0, $s4, .L7F09C8A4 +/* 0D1448 7F09C918 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D144C 7F09C91C 3C038004 */ lui $v1, %hi(D_80040174) +/* 0D1450 7F09C920 24630174 */ addiu $v1, %lo(D_80040174) # addiu $v1, $v1, 0x174 +/* 0D1454 7F09C924 8C620000 */ lw $v0, ($v1) +/* 0D1458 7F09C928 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D145C 7F09C92C 18400005 */ blez $v0, .L7F09C944 +/* 0D1460 7F09C930 00000000 */ nop +/* 0D1464 7F09C934 44818000 */ mtc1 $at, $f16 +/* 0D1468 7F09C938 2449FFFF */ addiu $t1, $v0, -1 +/* 0D146C 7F09C93C AC690000 */ sw $t1, ($v1) +/* 0D1470 7F09C940 4610A500 */ add.s $f20, $f20, $f16 +.L7F09C944: +/* 0D1474 7F09C944 3C028004 */ lui $v0, %hi(D_80040170) +/* 0D1478 7F09C948 24420170 */ addiu $v0, %lo(D_80040170) # addiu $v0, $v0, 0x170 +/* 0D147C 7F09C94C 8C4A0000 */ lw $t2, ($v0) +/* 0D1480 7F09C950 254BFFFF */ addiu $t3, $t2, -1 +/* 0D1484 7F09C954 316D0002 */ andi $t5, $t3, 2 +/* 0D1488 7F09C958 11A00005 */ beqz $t5, .L7F09C970 +/* 0D148C 7F09C95C AC4B0000 */ sw $t3, ($v0) +/* 0D1490 7F09C960 8FA30060 */ lw $v1, 0x60($sp) +/* 0D1494 7F09C964 E4740004 */ swc1 $f20, 4($v1) +/* 0D1498 7F09C968 10000004 */ b .L7F09C97C +/* 0D149C 7F09C96C 4600A507 */ neg.s $f20, $f20 +.L7F09C970: +/* 0D14A0 7F09C970 8FA30060 */ lw $v1, 0x60($sp) +/* 0D14A4 7F09C974 4600A487 */ neg.s $f18, $f20 +/* 0D14A8 7F09C978 E4720004 */ swc1 $f18, 4($v1) +.L7F09C97C: +/* 0D14AC 7F09C97C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0D14B0 7F09C980 4608A102 */ mul.s $f4, $f20, $f8 +/* 0D14B4 7F09C984 E4640000 */ swc1 $f4, ($v1) +/* 0D14B8 7F09C988 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0D14BC 7F09C98C 4606A282 */ mul.s $f10, $f20, $f6 +/* 0D14C0 7F09C990 E46A0008 */ swc1 $f10, 8($v1) +/* 0D14C4 7F09C994 8C4F0000 */ lw $t7, ($v0) +/* 0D14C8 7F09C998 448F8000 */ mtc1 $t7, $f16 +/* 0D14CC 7F09C99C 00000000 */ nop +/* 0D14D0 7F09C9A0 468084A0 */ cvt.s.w $f18, $f16 +/* 0D14D4 7F09C9A4 46149302 */ mul.s $f12, $f18, $f20 +/* 0D14D8 7F09C9A8 0C000EC1 */ jal video_related_9 +/* 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 + +#ifdef VERSION_JP +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(D_80040170) # $t6, 0x8004 +/* 0D1EB0 7F09D340 8DCE01A0 */ lw $t6, %lo(D_80040170)($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 video_related_9 +/* 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(D_8004017C+0x108) # $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(D_8004017C+0x108) # 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(D_80040174) # $v1, 0x8004 +/* 0D202C 7F09D4BC 246301A4 */ addiu $v1, %lo(D_80040174) # 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(D_80040170) # $v0, 0x8004 +/* 0D2054 7F09D4E4 244201A0 */ addiu $v0, %lo(D_80040170) # 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 video_related_9 +/* 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 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F09C9D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09C9D8 +/* 0D1508 7F09C9D8 27BDFF00 */ addiu $sp, $sp, -0x100 +/* 0D150C 7F09C9DC AFBF006C */ sw $ra, 0x6c($sp) +/* 0D1510 7F09C9E0 AFB60068 */ sw $s6, 0x68($sp) +/* 0D1514 7F09C9E4 AFB50064 */ sw $s5, 0x64($sp) +/* 0D1518 7F09C9E8 AFB40060 */ sw $s4, 0x60($sp) +/* 0D151C 7F09C9EC AFB3005C */ sw $s3, 0x5c($sp) +/* 0D1520 7F09C9F0 AFB20058 */ sw $s2, 0x58($sp) +/* 0D1524 7F09C9F4 AFB10054 */ sw $s1, 0x54($sp) +/* 0D1528 7F09C9F8 AFB00050 */ sw $s0, 0x50($sp) +/* 0D152C 7F09C9FC F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 0D1530 7F09CA00 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 0D1534 7F09CA04 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 0D1538 7F09CA08 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0D153C 7F09CA0C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0D1540 7F09CA10 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0D1544 7F09CA14 AFA60108 */ sw $a2, 0x108($sp) +/* 0D1548 7F09CA18 8C920004 */ lw $s2, 4($a0) +/* 0D154C 7F09CA1C 3C188004 */ lui $t8, %hi(D_8004017C+0x108) +/* 0D1550 7F09CA20 4485E000 */ mtc1 $a1, $f28 +/* 0D1554 7F09CA24 824E03CC */ lb $t6, 0x3cc($s2) +/* 0D1558 7F09CA28 865903C8 */ lh $t9, 0x3c8($s2) +/* 0D155C 7F09CA2C 864803CA */ lh $t0, 0x3ca($s2) +/* 0D1560 7F09CA30 27180284 */ addiu $t8, %lo(D_8004017C+0x108) # addiu $t8, $t8, 0x284 +/* 0D1564 7F09CA34 000E7980 */ sll $t7, $t6, 6 +/* 0D1568 7F09CA38 0328082A */ slt $at, $t9, $t0 +/* 0D156C 7F09CA3C 00808825 */ move $s1, $a0 +/* 0D1570 7F09CA40 14200119 */ bnez $at, .L7F09CEA8 +/* 0D1574 7F09CA44 01F8B021 */ addu $s6, $t7, $t8 +/* 0D1578 7F09CA48 27B000E0 */ addiu $s0, $sp, 0xe0 +/* 0D157C 7F09CA4C 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0D1580 7F09CA50 02002825 */ move $a1, $s0 +/* 0D1584 7F09CA54 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0D1588 7F09CA58 02002025 */ move $a0, $s0 +/* 0D158C 7F09CA5C 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 0D1590 7F09CA60 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 0D1594 7F09CA64 24150003 */ li $s5, 3 +/* 0D1598 7F09CA68 86620000 */ lh $v0, ($s3) +/* 0D159C 7F09CA6C 0442010A */ bltzl $v0, .L7F09CE98 +/* 0D15A0 7F09CA70 86C9001C */ lh $t1, 0x1c($s6) +/* 0D15A4 7F09CA74 4480F000 */ mtc1 $zero, $f30 +/* 0D15A8 7F09CA78 24140001 */ li $s4, 1 +/* 0D15AC 7F09CA7C 00024880 */ sll $t1, $v0, 2 +.L7F09CA80: +/* 0D15B0 7F09CA80 01224823 */ subu $t1, $t1, $v0 +/* 0D15B4 7F09CA84 00094880 */ sll $t1, $t1, 2 +/* 0D15B8 7F09CA88 8E4B0004 */ lw $t3, 4($s2) +/* 0D15BC 7F09CA8C 01224821 */ addu $t1, $t1, $v0 +/* 0D15C0 7F09CA90 3C0A8007 */ lui $t2, %hi(pos_data_entry) +/* 0D15C4 7F09CA94 254A9C38 */ addiu $t2, %lo(pos_data_entry) # addiu $t2, $t2, -0x63c8 +/* 0D15C8 7F09CA98 00094880 */ sll $t1, $t1, 2 +/* 0D15CC 7F09CA9C 012A8021 */ addu $s0, $t1, $t2 +/* 0D15D0 7F09CAA0 520B00F9 */ beql $s0, $t3, .L7F09CE88 +/* 0D15D4 7F09CAA4 86620002 */ lh $v0, 2($s3) +/* 0D15D8 7F09CAA8 860C0002 */ lh $t4, 2($s0) +/* 0D15DC 7F09CAAC 558000F6 */ bnezl $t4, .L7F09CE88 +/* 0D15E0 7F09CAB0 86620002 */ lh $v0, 2($s3) +/* 0D15E4 7F09CAB4 92020000 */ lbu $v0, ($s0) +/* 0D15E8 7F09CAB8 24010004 */ li $at, 4 +/* 0D15EC 7F09CABC 52820006 */ beql $s4, $v0, .L7F09CAD8 +/* 0D15F0 7F09CAC0 8E030004 */ lw $v1, 4($s0) +/* 0D15F4 7F09CAC4 10410003 */ beq $v0, $at, .L7F09CAD4 +/* 0D15F8 7F09CAC8 24010002 */ li $at, 2 +/* 0D15FC 7F09CACC 1441006B */ bne $v0, $at, .L7F09CC7C +/* 0D1600 7F09CAD0 00000000 */ nop +.L7F09CAD4: +/* 0D1604 7F09CAD4 8E030004 */ lw $v1, 4($s0) +.L7F09CAD8: +/* 0D1608 7F09CAD8 C6260008 */ lwc1 $f6, 8($s1) +/* 0D160C 7F09CADC C62A000C */ lwc1 $f10, 0xc($s1) +/* 0D1610 7F09CAE0 C4640058 */ lwc1 $f4, 0x58($v1) +/* 0D1614 7F09CAE4 C468005C */ lwc1 $f8, 0x5c($v1) +/* 0D1618 7F09CAE8 46062481 */ sub.s $f18, $f4, $f6 +/* 0D161C 7F09CAEC C6260010 */ lwc1 $f6, 0x10($s1) +/* 0D1620 7F09CAF0 C4640060 */ lwc1 $f4, 0x60($v1) +/* 0D1624 7F09CAF4 460A4501 */ sub.s $f20, $f8, $f10 +/* 0D1628 7F09CAF8 461C903E */ c.le.s $f18, $f28 +/* 0D162C 7F09CAFC 46062581 */ sub.s $f22, $f4, $f6 +/* 0D1630 7F09CB00 4500005C */ bc1f .L7F09CC74 +/* 0D1634 7F09CB04 00000000 */ nop +/* 0D1638 7F09CB08 4600E007 */ neg.s $f0, $f28 +/* 0D163C 7F09CB0C C7A80108 */ lwc1 $f8, 0x108($sp) +/* 0D1640 7F09CB10 4612003E */ c.le.s $f0, $f18 +/* 0D1644 7F09CB14 00000000 */ nop +/* 0D1648 7F09CB18 45000056 */ bc1f .L7F09CC74 +/* 0D164C 7F09CB1C 00000000 */ nop +/* 0D1650 7F09CB20 4608A03E */ c.le.s $f20, $f8 +/* 0D1654 7F09CB24 00000000 */ nop +/* 0D1658 7F09CB28 45000052 */ bc1f .L7F09CC74 +/* 0D165C 7F09CB2C 00000000 */ nop +/* 0D1660 7F09CB30 46004287 */ neg.s $f10, $f8 +/* 0D1664 7F09CB34 4614503E */ c.le.s $f10, $f20 +/* 0D1668 7F09CB38 00000000 */ nop +/* 0D166C 7F09CB3C 4500004D */ bc1f .L7F09CC74 +/* 0D1670 7F09CB40 00000000 */ nop +/* 0D1674 7F09CB44 461CB03E */ c.le.s $f22, $f28 +/* 0D1678 7F09CB48 00000000 */ nop +/* 0D167C 7F09CB4C 45000049 */ bc1f .L7F09CC74 +/* 0D1680 7F09CB50 00000000 */ nop +/* 0D1684 7F09CB54 4616003E */ c.le.s $f0, $f22 +/* 0D1688 7F09CB58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D168C 7F09CB5C 45000045 */ bc1f .L7F09CC74 +/* 0D1690 7F09CB60 00000000 */ nop +/* 0D1694 7F09CB64 461C9083 */ div.s $f2, $f18, $f28 +/* 0D1698 7F09CB68 C6DA003C */ lwc1 $f26, 0x3c($s6) +/* 0D169C 7F09CB6C 4608A383 */ div.s $f14, $f20, $f8 +/* 0D16A0 7F09CB70 46001006 */ mov.s $f0, $f2 +/* 0D16A4 7F09CB74 461E103C */ c.lt.s $f2, $f30 +/* 0D16A8 7F09CB78 461CB603 */ div.s $f24, $f22, $f28 +/* 0D16AC 7F09CB7C 4481B000 */ mtc1 $at, $f22 +/* 0D16B0 7F09CB80 46007306 */ mov.s $f12, $f14 +/* 0D16B4 7F09CB84 45000002 */ bc1f .L7F09CB90 +/* 0D16B8 7F09CB88 4600C406 */ mov.s $f16, $f24 +/* 0D16BC 7F09CB8C 46001007 */ neg.s $f0, $f2 +.L7F09CB90: +/* 0D16C0 7F09CB90 461E703C */ c.lt.s $f14, $f30 +/* 0D16C4 7F09CB94 4600B501 */ sub.s $f20, $f22, $f0 +/* 0D16C8 7F09CB98 45020003 */ bc1fl .L7F09CBA8 +/* 0D16CC 7F09CB9C 461EC03C */ c.lt.s $f24, $f30 +/* 0D16D0 7F09CBA0 46007307 */ neg.s $f12, $f14 +/* 0D16D4 7F09CBA4 461EC03C */ c.lt.s $f24, $f30 +.L7F09CBA8: +/* 0D16D8 7F09CBA8 460CB301 */ sub.s $f12, $f22, $f12 +/* 0D16DC 7F09CBAC 45020003 */ bc1fl .L7F09CBBC +/* 0D16E0 7F09CBB0 4614603C */ c.lt.s $f12, $f20 +/* 0D16E4 7F09CBB4 4600C407 */ neg.s $f16, $f24 +/* 0D16E8 7F09CBB8 4614603C */ c.lt.s $f12, $f20 +.L7F09CBBC: +/* 0D16EC 7F09CBBC 4610B401 */ sub.s $f16, $f22, $f16 +/* 0D16F0 7F09CBC0 45020003 */ bc1fl .L7F09CBD0 +/* 0D16F4 7F09CBC4 4614803C */ c.lt.s $f16, $f20 +/* 0D16F8 7F09CBC8 46006506 */ mov.s $f20, $f12 +/* 0D16FC 7F09CBCC 4614803C */ c.lt.s $f16, $f20 +.L7F09CBD0: +/* 0D1700 7F09CBD0 00000000 */ nop +/* 0D1704 7F09CBD4 45020003 */ bc1fl .L7F09CBE4 +/* 0D1708 7F09CBD8 8C6D0064 */ lw $t5, 0x64($v1) +/* 0D170C 7F09CBDC 46008506 */ mov.s $f20, $f16 +/* 0D1710 7F09CBE0 8C6D0064 */ lw $t5, 0x64($v1) +.L7F09CBE4: +/* 0D1714 7F09CBE4 461AA502 */ mul.s $f20, $f20, $f26 +/* 0D1718 7F09CBE8 31AE1000 */ andi $t6, $t5, 0x1000 +/* 0D171C 7F09CBEC 15C00021 */ bnez $t6, .L7F09CC74 +/* 0D1720 7F09CBF0 00000000 */ nop +/* 0D1724 7F09CBF4 8C6F000C */ lw $t7, 0xc($v1) +/* 0D1728 7F09CBF8 3C010020 */ lui $at, (0x00200400 >> 16) # lui $at, 0x20 +/* 0D172C 7F09CBFC 34210400 */ ori $at, (0x00200400 & 0xFFFF) # ori $at, $at, 0x400 +/* 0D1730 7F09CC00 01E1C024 */ and $t8, $t7, $at +/* 0D1734 7F09CC04 1700001B */ bnez $t8, .L7F09CC74 +/* 0D1738 7F09CC08 00000000 */ nop +/* 0D173C 7F09CC0C 0C002914 */ jal get_random_value +/* 0D1740 7F09CC10 AFA300CC */ sw $v1, 0xcc($sp) +/* 0D1744 7F09CC14 44822000 */ mtc1 $v0, $f4 +/* 0D1748 7F09CC18 8FA300CC */ lw $v1, 0xcc($sp) +/* 0D174C 7F09CC1C 02002025 */ move $a0, $s0 +/* 0D1750 7F09CC20 04410005 */ bgez $v0, .L7F09CC38 +/* 0D1754 7F09CC24 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1758 7F09CC28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D175C 7F09CC2C 44815000 */ mtc1 $at, $f10 +/* 0D1760 7F09CC30 00000000 */ nop +/* 0D1764 7F09CC34 460A3180 */ add.s $f6, $f6, $f10 +.L7F09CC38: +/* 0D1768 7F09CC38 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D176C 7F09CC3C 44814000 */ mtc1 $at, $f8 +/* 0D1770 7F09CC40 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1774 7F09CC44 44815000 */ mtc1 $at, $f10 +/* 0D1778 7F09CC48 46083102 */ mul.s $f4, $f6, $f8 +/* 0D177C 7F09CC4C 825903CE */ lb $t9, 0x3ce($s2) +/* 0D1780 7F09CC50 24660058 */ addiu $a2, $v1, 0x58 +/* 0D1784 7F09CC54 2407001D */ li $a3, 29 +/* 0D1788 7F09CC58 AFB90010 */ sw $t9, 0x10($sp) +/* 0D178C 7F09CC5C 460A2182 */ mul.s $f6, $f4, $f10 +/* 0D1790 7F09CC60 46163200 */ add.s $f8, $f6, $f22 +/* 0D1794 7F09CC64 46144102 */ mul.s $f4, $f8, $f20 +/* 0D1798 7F09CC68 44052000 */ mfc1 $a1, $f4 +/* 0D179C 7F09CC6C 0FC137BF */ jal sub_GAME_7F04DEFC +/* 0D17A0 7F09CC70 00000000 */ nop +.L7F09CC74: +/* 0D17A4 7F09CC74 10000084 */ b .L7F09CE88 +/* 0D17A8 7F09CC78 86620002 */ lh $v0, 2($s3) +.L7F09CC7C: +/* 0D17AC 7F09CC7C 12A20003 */ beq $s5, $v0, .L7F09CC8C +/* 0D17B0 7F09CC80 24010006 */ li $at, 6 +/* 0D17B4 7F09CC84 54410080 */ bnel $v0, $at, .L7F09CE88 +/* 0D17B8 7F09CC88 86620002 */ lh $v0, 2($s3) +.L7F09CC8C: +/* 0D17BC 7F09CC8C C60A0008 */ lwc1 $f10, 8($s0) +/* 0D17C0 7F09CC90 C6260008 */ lwc1 $f6, 8($s1) +/* 0D17C4 7F09CC94 C608000C */ lwc1 $f8, 0xc($s0) +/* 0D17C8 7F09CC98 C624000C */ lwc1 $f4, 0xc($s1) +/* 0D17CC 7F09CC9C 46065581 */ sub.s $f22, $f10, $f6 +/* 0D17D0 7F09CCA0 C6260010 */ lwc1 $f6, 0x10($s1) +/* 0D17D4 7F09CCA4 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0D17D8 7F09CCA8 46044481 */ sub.s $f18, $f8, $f4 +/* 0D17DC 7F09CCAC 461CB03E */ c.le.s $f22, $f28 +/* 0D17E0 7F09CCB0 46065601 */ sub.s $f24, $f10, $f6 +/* 0D17E4 7F09CCB4 45020074 */ bc1fl .L7F09CE88 +/* 0D17E8 7F09CCB8 86620002 */ lh $v0, 2($s3) +/* 0D17EC 7F09CCBC 4600E007 */ neg.s $f0, $f28 +/* 0D17F0 7F09CCC0 C7A80108 */ lwc1 $f8, 0x108($sp) +/* 0D17F4 7F09CCC4 4616003E */ c.le.s $f0, $f22 +/* 0D17F8 7F09CCC8 00000000 */ nop +/* 0D17FC 7F09CCCC 4502006E */ bc1fl .L7F09CE88 +/* 0D1800 7F09CCD0 86620002 */ lh $v0, 2($s3) +/* 0D1804 7F09CCD4 4608903E */ c.le.s $f18, $f8 +/* 0D1808 7F09CCD8 00000000 */ nop +/* 0D180C 7F09CCDC 4502006A */ bc1fl .L7F09CE88 +/* 0D1810 7F09CCE0 86620002 */ lh $v0, 2($s3) +/* 0D1814 7F09CCE4 46004107 */ neg.s $f4, $f8 +/* 0D1818 7F09CCE8 4612203E */ c.le.s $f4, $f18 +/* 0D181C 7F09CCEC 00000000 */ nop +/* 0D1820 7F09CCF0 45020065 */ bc1fl .L7F09CE88 +/* 0D1824 7F09CCF4 86620002 */ lh $v0, 2($s3) +/* 0D1828 7F09CCF8 461CC03E */ c.le.s $f24, $f28 +/* 0D182C 7F09CCFC 00000000 */ nop +/* 0D1830 7F09CD00 45020061 */ bc1fl .L7F09CE88 +/* 0D1834 7F09CD04 86620002 */ lh $v0, 2($s3) +/* 0D1838 7F09CD08 4618003E */ c.le.s $f0, $f24 +/* 0D183C 7F09CD0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1840 7F09CD10 4502005D */ bc1fl .L7F09CE88 +/* 0D1844 7F09CD14 86620002 */ lh $v0, 2($s3) +/* 0D1848 7F09CD18 461CB083 */ div.s $f2, $f22, $f28 +/* 0D184C 7F09CD1C C6DA003C */ lwc1 $f26, 0x3c($s6) +/* 0D1850 7F09CD20 26250008 */ addiu $a1, $s1, 8 +/* 0D1854 7F09CD24 02803825 */ move $a3, $s4 +/* 0D1858 7F09CD28 46089383 */ div.s $f14, $f18, $f8 +/* 0D185C 7F09CD2C 46001006 */ mov.s $f0, $f2 +/* 0D1860 7F09CD30 461E103C */ c.lt.s $f2, $f30 +/* 0D1864 7F09CD34 461CC503 */ div.s $f20, $f24, $f28 +/* 0D1868 7F09CD38 46007306 */ mov.s $f12, $f14 +/* 0D186C 7F09CD3C 45000002 */ bc1f .L7F09CD48 +/* 0D1870 7F09CD40 4600A406 */ mov.s $f16, $f20 +/* 0D1874 7F09CD44 46001007 */ neg.s $f0, $f2 +.L7F09CD48: +/* 0D1878 7F09CD48 461E703C */ c.lt.s $f14, $f30 +/* 0D187C 7F09CD4C 44811000 */ mtc1 $at, $f2 +/* 0D1880 7F09CD50 45020003 */ bc1fl .L7F09CD60 +/* 0D1884 7F09CD54 461EA03C */ c.lt.s $f20, $f30 +/* 0D1888 7F09CD58 46007307 */ neg.s $f12, $f14 +/* 0D188C 7F09CD5C 461EA03C */ c.lt.s $f20, $f30 +.L7F09CD60: +/* 0D1890 7F09CD60 460C1301 */ sub.s $f12, $f2, $f12 +/* 0D1894 7F09CD64 45020003 */ bc1fl .L7F09CD74 +/* 0D1898 7F09CD68 46001501 */ sub.s $f20, $f2, $f0 +/* 0D189C 7F09CD6C 4600A407 */ neg.s $f16, $f20 +/* 0D18A0 7F09CD70 46001501 */ sub.s $f20, $f2, $f0 +.L7F09CD74: +/* 0D18A4 7F09CD74 46101401 */ sub.s $f16, $f2, $f16 +/* 0D18A8 7F09CD78 4614603C */ c.lt.s $f12, $f20 +/* 0D18AC 7F09CD7C 00000000 */ nop +/* 0D18B0 7F09CD80 45020003 */ bc1fl .L7F09CD90 +/* 0D18B4 7F09CD84 4614803C */ c.lt.s $f16, $f20 +/* 0D18B8 7F09CD88 46006506 */ mov.s $f20, $f12 +/* 0D18BC 7F09CD8C 4614803C */ c.lt.s $f16, $f20 +.L7F09CD90: +/* 0D18C0 7F09CD90 00000000 */ nop +/* 0D18C4 7F09CD94 45000002 */ bc1f .L7F09CDA0 +/* 0D18C8 7F09CD98 00000000 */ nop +/* 0D18CC 7F09CD9C 46008506 */ mov.s $f20, $f16 +.L7F09CDA0: +/* 0D18D0 7F09CDA0 4614A502 */ mul.s $f20, $f20, $f20 +/* 0D18D4 7F09CDA4 00000000 */ nop +/* 0D18D8 7F09CDA8 461AA502 */ mul.s $f20, $f20, $f26 +/* 0D18DC 7F09CDAC 16A20006 */ bne $s5, $v0, .L7F09CDC8 +/* 0D18E0 7F09CDB0 00000000 */ nop +/* 0D18E4 7F09CDB4 4406A000 */ mfc1 $a2, $f20 +/* 0D18E8 7F09CDB8 0FC09E01 */ jal sub_GAME_7F027804 +/* 0D18EC 7F09CDBC 8E040004 */ lw $a0, 4($s0) +/* 0D18F0 7F09CDC0 10000031 */ b .L7F09CE88 +/* 0D18F4 7F09CDC4 86620002 */ lh $v0, 2($s3) +.L7F09CDC8: +/* 0D18F8 7F09CDC8 461EB032 */ c.eq.s $f22, $f30 +/* 0D18FC 7F09CDCC 00000000 */ nop +/* 0D1900 7F09CDD0 45000005 */ bc1f .L7F09CDE8 +/* 0D1904 7F09CDD4 00000000 */ nop +/* 0D1908 7F09CDD8 461EC032 */ c.eq.s $f24, $f30 +/* 0D190C 7F09CDDC 00000000 */ nop +/* 0D1910 7F09CDE0 4501000E */ bc1t .L7F09CE1C +/* 0D1914 7F09CDE4 00000000 */ nop +.L7F09CDE8: +/* 0D1918 7F09CDE8 4616B282 */ mul.s $f10, $f22, $f22 +/* 0D191C 7F09CDEC 00000000 */ nop +/* 0D1920 7F09CDF0 4618C182 */ mul.s $f6, $f24, $f24 +/* 0D1924 7F09CDF4 0C007DF8 */ jal sqrtf +/* 0D1928 7F09CDF8 46065300 */ add.s $f12, $f10, $f6 +/* 0D192C 7F09CDFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1930 7F09CE00 44812000 */ mtc1 $at, $f4 +/* 0D1934 7F09CE04 00000000 */ nop +/* 0D1938 7F09CE08 46002083 */ div.s $f2, $f4, $f0 +/* 0D193C 7F09CE0C 4602B582 */ mul.s $f22, $f22, $f2 +/* 0D1940 7F09CE10 00000000 */ nop +/* 0D1944 7F09CE14 4602C602 */ mul.s $f24, $f24, $f2 +/* 0D1948 7F09CE18 00000000 */ nop +.L7F09CE1C: +/* 0D194C 7F09CE1C 0FC26C54 */ jal get_cur_playernum +/* 0D1950 7F09CE20 00000000 */ nop +/* 0D1954 7F09CE24 AFA20090 */ sw $v0, 0x90($sp) +/* 0D1958 7F09CE28 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0D195C 7F09CE2C 02002025 */ move $a0, $s0 +/* 0D1960 7F09CE30 0FC26C43 */ jal set_cur_player +/* 0D1964 7F09CE34 00402025 */ move $a0, $v0 +/* 0D1968 7F09CE38 0FC26919 */ jal get_num_players +/* 0D196C 7F09CE3C 00000000 */ nop +/* 0D1970 7F09CE40 14540004 */ bne $v0, $s4, .L7F09CE54 +/* 0D1974 7F09CE44 3C018004 */ lui $at, %hi(D_80040178) +/* 0D1978 7F09CE48 C4280178 */ lwc1 $f8, %lo(D_80040178)($at) +/* 0D197C 7F09CE4C 4608A502 */ mul.s $f20, $f20, $f8 +/* 0D1980 7F09CE50 00000000 */ nop +.L7F09CE54: +/* 0D1984 7F09CE54 0FC1F39E */ jal get_intank_flag +/* 0D1988 7F09CE58 00000000 */ nop +/* 0D198C 7F09CE5C 14540002 */ bne $v0, $s4, .L7F09CE68 +/* 0D1990 7F09CE60 4600B386 */ mov.s $f14, $f22 +/* 0D1994 7F09CE64 4614A500 */ add.s $f20, $f20, $f20 +.L7F09CE68: +/* 0D1998 7F09CE68 4406C000 */ mfc1 $a2, $f24 +/* 0D199C 7F09CE6C 824703CE */ lb $a3, 0x3ce($s2) +/* 0D19A0 7F09CE70 AFB40010 */ sw $s4, 0x10($sp) +/* 0D19A4 7F09CE74 0FC22647 */ jal record_damage_kills +/* 0D19A8 7F09CE78 4600A306 */ mov.s $f12, $f20 +/* 0D19AC 7F09CE7C 0FC26C43 */ jal set_cur_player +/* 0D19B0 7F09CE80 8FA40090 */ lw $a0, 0x90($sp) +/* 0D19B4 7F09CE84 86620002 */ lh $v0, 2($s3) +.L7F09CE88: +/* 0D19B8 7F09CE88 26730002 */ addiu $s3, $s3, 2 +/* 0D19BC 7F09CE8C 0443FEFC */ bgezl $v0, .L7F09CA80 +/* 0D19C0 7F09CE90 00024880 */ sll $t1, $v0, 2 +/* 0D19C4 7F09CE94 86C9001C */ lh $t1, 0x1c($s6) +.L7F09CE98: +/* 0D19C8 7F09CE98 864803C8 */ lh $t0, 0x3c8($s2) +/* 0D19CC 7F09CE9C 00095083 */ sra $t2, $t1, 2 +/* 0D19D0 7F09CEA0 010A5821 */ addu $t3, $t0, $t2 +/* 0D19D4 7F09CEA4 A64B03CA */ sh $t3, 0x3ca($s2) +.L7F09CEA8: +/* 0D19D8 7F09CEA8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D19DC 7F09CEAC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0D19E0 7F09CEB0 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0D19E4 7F09CEB4 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0D19E8 7F09CEB8 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0D19EC 7F09CEBC D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0D19F0 7F09CEC0 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0D19F4 7F09CEC4 8FB00050 */ lw $s0, 0x50($sp) +/* 0D19F8 7F09CEC8 8FB10054 */ lw $s1, 0x54($sp) +/* 0D19FC 7F09CECC 8FB20058 */ lw $s2, 0x58($sp) +/* 0D1A00 7F09CED0 8FB3005C */ lw $s3, 0x5c($sp) +/* 0D1A04 7F09CED4 8FB40060 */ lw $s4, 0x60($sp) +/* 0D1A08 7F09CED8 8FB50064 */ lw $s5, 0x64($sp) +/* 0D1A0C 7F09CEDC 8FB60068 */ lw $s6, 0x68($sp) +/* 0D1A10 7F09CEE0 03E00008 */ jr $ra +/* 0D1A14 7F09CEE4 27BD0100 */ addiu $sp, $sp, 0x100 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09CEE8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576BC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09CEE8 +/* 0D1A18 7F09CEE8 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0D1A1C 7F09CEEC AFBF006C */ sw $ra, 0x6c($sp) +/* 0D1A20 7F09CEF0 AFB70068 */ sw $s7, 0x68($sp) +/* 0D1A24 7F09CEF4 AFB60064 */ sw $s6, 0x64($sp) +/* 0D1A28 7F09CEF8 AFB50060 */ sw $s5, 0x60($sp) +/* 0D1A2C 7F09CEFC AFB4005C */ sw $s4, 0x5c($sp) +/* 0D1A30 7F09CF00 AFB30058 */ sw $s3, 0x58($sp) +/* 0D1A34 7F09CF04 AFB20054 */ sw $s2, 0x54($sp) +/* 0D1A38 7F09CF08 AFB10050 */ sw $s1, 0x50($sp) +/* 0D1A3C 7F09CF0C AFB0004C */ sw $s0, 0x4c($sp) +/* 0D1A40 7F09CF10 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D1A44 7F09CF14 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D1A48 7F09CF18 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D1A4C 7F09CF1C F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D1A50 7F09CF20 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1A54 7F09CF24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1A58 7F09CF28 8C920004 */ lw $s2, 4($a0) +/* 0D1A5C 7F09CF2C 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D1A60 7F09CF30 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D1A64 7F09CF34 824503CC */ lb $a1, 0x3cc($s2) +/* 0D1A68 7F09CF38 3C0F8004 */ lui $t7, %hi(D_8004017C+0x108) +/* 0D1A6C 7F09CF3C 25EF0284 */ addiu $t7, %lo(D_8004017C+0x108) # addiu $t7, $t7, 0x284 +/* 0D1A70 7F09CF40 00057180 */ sll $t6, $a1, 6 +/* 0D1A74 7F09CF44 00809825 */ move $s3, $a0 +/* 0D1A78 7F09CF48 14400003 */ bnez $v0, .L7F09CF58 +/* 0D1A7C 7F09CF4C 01CFA821 */ addu $s5, $t6, $t7 +/* 0D1A80 7F09CF50 10000155 */ b .L7F09D4A8 +/* 0D1A84 7F09CF54 00001025 */ move $v0, $zero +.L7F09CF58: +/* 0D1A88 7F09CF58 2841000F */ slti $at, $v0, 0xf +/* 0D1A8C 7F09CF5C 50200007 */ beql $at, $zero, .L7F09CF7C +/* 0D1A90 7F09CF60 3C014170 */ lui $at, 0x4170 +/* 0D1A94 7F09CF64 44822000 */ mtc1 $v0, $f4 +/* 0D1A98 7F09CF68 00000000 */ nop +/* 0D1A9C 7F09CF6C 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1AA0 7F09CF70 10000005 */ b .L7F09CF88 +/* 0D1AA4 7F09CF74 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0D1AA8 7F09CF78 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F09CF7C: +/* 0D1AAC 7F09CF7C 44814000 */ mtc1 $at, $f8 +/* 0D1AB0 7F09CF80 00000000 */ nop +/* 0D1AB4 7F09CF84 E7A800A0 */ swc1 $f8, 0xa0($sp) +.L7F09CF88: +/* 0D1AB8 7F09CF88 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1ABC 7F09CF8C 28610008 */ slti $at, $v1, 8 +/* 0D1AC0 7F09CF90 542000D5 */ bnezl $at, .L7F09D2E8 +/* 0D1AC4 7F09CF94 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 0D1AC8 7F09CF98 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1ACC 7F09CF9C 0062082A */ slt $at, $v1, $v0 +/* 0D1AD0 7F09CFA0 502000D1 */ beql $at, $zero, .L7F09D2E8 +/* 0D1AD4 7F09CFA4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 0D1AD8 7F09CFA8 44835000 */ mtc1 $v1, $f10 +/* 0D1ADC 7F09CFAC C6B20008 */ lwc1 $f18, 8($s5) +/* 0D1AE0 7F09CFB0 C6A8000C */ lwc1 $f8, 0xc($s5) +/* 0D1AE4 7F09CFB4 46805020 */ cvt.s.w $f0, $f10 +/* 0D1AE8 7F09CFB8 C6B00000 */ lwc1 $f16, ($s5) +/* 0D1AEC 7F09CFBC C6A60004 */ lwc1 $f6, 4($s5) +/* 0D1AF0 7F09CFC0 2417000E */ li $s7, 14 +/* 0D1AF4 7F09CFC4 28610020 */ slti $at, $v1, 0x20 +/* 0D1AF8 7F09CFC8 24160001 */ li $s6, 1 +/* 0D1AFC 7F09CFCC 46009102 */ mul.s $f4, $f18, $f0 +/* 0D1B00 7F09CFD0 00000000 */ nop +/* 0D1B04 7F09CFD4 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1B08 7F09CFD8 46048700 */ add.s $f28, $f16, $f4 +/* 0D1B0C 7F09CFDC 16E5001F */ bne $s7, $a1, .L7F09D05C +/* 0D1B10 7F09CFE0 460A3780 */ add.s $f30, $f6, $f10 +/* 0D1B14 7F09CFE4 1020000C */ beqz $at, .L7F09D018 +/* 0D1B18 7F09CFE8 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0D1B1C 7F09CFEC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D1B20 7F09CFF0 44819000 */ mtc1 $at, $f18 +/* 0D1B24 7F09CFF4 C668000C */ lwc1 $f8, 0xc($s3) +/* 0D1B28 7F09CFF8 46109102 */ mul.s $f4, $f18, $f16 +/* 0D1B2C 7F09CFFC 46044180 */ add.s $f6, $f8, $f4 +/* 0D1B30 7F09D000 E666000C */ swc1 $f6, 0xc($s3) +/* 0D1B34 7F09D004 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1B38 7F09D008 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1B3C 7F09D00C 44835000 */ mtc1 $v1, $f10 +/* 0D1B40 7F09D010 00000000 */ nop +/* 0D1B44 7F09D014 46805020 */ cvt.s.w $f0, $f10 +.L7F09D018: +/* 0D1B48 7F09D018 28610021 */ slti $at, $v1, 0x21 +/* 0D1B4C 7F09D01C 1420000F */ bnez $at, .L7F09D05C +/* 0D1B50 7F09D020 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0D1B54 7F09D024 44811000 */ mtc1 $at, $f2 +/* 0D1B58 7F09D028 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0D1B5C 7F09D02C 44819000 */ mtc1 $at, $f18 +/* 0D1B60 7F09D030 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0D1B64 7F09D034 44814000 */ mtc1 $at, $f8 +/* 0D1B68 7F09D038 46120402 */ mul.s $f16, $f0, $f18 +/* 0D1B6C 7F09D03C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0D1B70 7F09D040 4481F000 */ mtc1 $at, $f30 +/* 0D1B74 7F09D044 46088700 */ add.s $f28, $f16, $f8 +/* 0D1B78 7F09D048 461C103C */ c.lt.s $f2, $f28 +/* 0D1B7C 7F09D04C 00000000 */ nop +/* 0D1B80 7F09D050 45000002 */ bc1f .L7F09D05C +/* 0D1B84 7F09D054 00000000 */ nop +/* 0D1B88 7F09D058 46001706 */ mov.s $f28, $f2 +.L7F09D05C: +/* 0D1B8C 7F09D05C 86B8001E */ lh $t8, 0x1e($s5) +/* 0D1B90 7F09D060 44829000 */ mtc1 $v0, $f18 +/* 0D1B94 7F09D064 0000A025 */ move $s4, $zero +/* 0D1B98 7F09D068 44982000 */ mtc1 $t8, $f4 +/* 0D1B9C 7F09D06C 46809420 */ cvt.s.w $f16, $f18 +/* 0D1BA0 7F09D070 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1BA4 7F09D074 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1BA8 7F09D078 46003282 */ mul.s $f10, $f6, $f0 +/* 0D1BAC 7F09D07C 46105203 */ div.s $f8, $f10, $f16 +/* 0D1BB0 7F09D080 4600410D */ trunc.w.s $f4, $f8 +/* 0D1BB4 7F09D084 44082000 */ mfc1 $t0, $f4 +/* 0D1BB8 7F09D088 00000000 */ nop +/* 0D1BBC 7F09D08C 25090001 */ addiu $t1, $t0, 1 +/* 0D1BC0 7F09D090 19200061 */ blez $t1, .L7F09D218 +/* 0D1BC4 7F09D094 AFA9009C */ sw $t1, 0x9c($sp) +/* 0D1BC8 7F09D098 4481D000 */ mtc1 $at, $f26 +/* 0D1BCC 7F09D09C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1BD0 7F09D0A0 4481B000 */ mtc1 $at, $f22 +/* 0D1BD4 7F09D0A4 241103C0 */ li $s1, 960 +/* 0D1BD8 7F09D0A8 00001025 */ move $v0, $zero +.L7F09D0AC: +/* 0D1BDC 7F09D0AC 02408025 */ move $s0, $s2 +.L7F09D0B0: +/* 0D1BE0 7F09D0B0 860A001C */ lh $t2, 0x1c($s0) +/* 0D1BE4 7F09D0B4 24420018 */ addiu $v0, $v0, 0x18 +/* 0D1BE8 7F09D0B8 15400051 */ bnez $t2, .L7F09D200 +/* 0D1BEC 7F09D0BC 00000000 */ nop +/* 0D1BF0 7F09D0C0 0C002914 */ jal get_random_value +/* 0D1BF4 7F09D0C4 A616001C */ sh $s6, 0x1c($s0) +/* 0D1BF8 7F09D0C8 44823000 */ mtc1 $v0, $f6 +/* 0D1BFC 7F09D0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C00 7F09D0D0 04410004 */ bgez $v0, .L7F09D0E4 +/* 0D1C04 7F09D0D4 468034A0 */ cvt.s.w $f18, $f6 +/* 0D1C08 7F09D0D8 44815000 */ mtc1 $at, $f10 +/* 0D1C0C 7F09D0DC 00000000 */ nop +/* 0D1C10 7F09D0E0 460A9480 */ add.s $f18, $f18, $f10 +.L7F09D0E4: +/* 0D1C14 7F09D0E4 46169402 */ mul.s $f16, $f18, $f22 +/* 0D1C18 7F09D0E8 C6660008 */ lwc1 $f6, 8($s3) +/* 0D1C1C 7F09D0EC 461A8201 */ sub.s $f8, $f16, $f26 +/* 0D1C20 7F09D0F0 461C4102 */ mul.s $f4, $f8, $f28 +/* 0D1C24 7F09D0F4 46062280 */ add.s $f10, $f4, $f6 +/* 0D1C28 7F09D0F8 0C002914 */ jal get_random_value +/* 0D1C2C 7F09D0FC E60A0008 */ swc1 $f10, 8($s0) +/* 0D1C30 7F09D100 44829000 */ mtc1 $v0, $f18 +/* 0D1C34 7F09D104 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C38 7F09D108 04410004 */ bgez $v0, .L7F09D11C +/* 0D1C3C 7F09D10C 46809420 */ cvt.s.w $f16, $f18 +/* 0D1C40 7F09D110 44814000 */ mtc1 $at, $f8 +/* 0D1C44 7F09D114 00000000 */ nop +/* 0D1C48 7F09D118 46088400 */ add.s $f16, $f16, $f8 +.L7F09D11C: +/* 0D1C4C 7F09D11C 46168102 */ mul.s $f4, $f16, $f22 +/* 0D1C50 7F09D120 C672000C */ lwc1 $f18, 0xc($s3) +/* 0D1C54 7F09D124 461A2181 */ sub.s $f6, $f4, $f26 +/* 0D1C58 7F09D128 461E3282 */ mul.s $f10, $f6, $f30 +/* 0D1C5C 7F09D12C 46125200 */ add.s $f8, $f10, $f18 +/* 0D1C60 7F09D130 0C002914 */ jal get_random_value +/* 0D1C64 7F09D134 E608000C */ swc1 $f8, 0xc($s0) +/* 0D1C68 7F09D138 44828000 */ mtc1 $v0, $f16 +/* 0D1C6C 7F09D13C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C70 7F09D140 04410004 */ bgez $v0, .L7F09D154 +/* 0D1C74 7F09D144 46808120 */ cvt.s.w $f4, $f16 +/* 0D1C78 7F09D148 44813000 */ mtc1 $at, $f6 +/* 0D1C7C 7F09D14C 00000000 */ nop +/* 0D1C80 7F09D150 46062100 */ add.s $f4, $f4, $f6 +.L7F09D154: +/* 0D1C84 7F09D154 46162282 */ mul.s $f10, $f4, $f22 +/* 0D1C88 7F09D158 C6700010 */ lwc1 $f16, 0x10($s3) +/* 0D1C8C 7F09D15C 461A5481 */ sub.s $f18, $f10, $f26 +/* 0D1C90 7F09D160 461C9202 */ mul.s $f8, $f18, $f28 +/* 0D1C94 7F09D164 46104180 */ add.s $f6, $f8, $f16 +/* 0D1C98 7F09D168 0C002914 */ jal get_random_value +/* 0D1C9C 7F09D16C E6060010 */ swc1 $f6, 0x10($s0) +/* 0D1CA0 7F09D170 44822000 */ mtc1 $v0, $f4 +/* 0D1CA4 7F09D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1CA8 7F09D178 04410004 */ bgez $v0, .L7F09D18C +/* 0D1CAC 7F09D17C 468022A0 */ cvt.s.w $f10, $f4 +/* 0D1CB0 7F09D180 44819000 */ mtc1 $at, $f18 +/* 0D1CB4 7F09D184 00000000 */ nop +/* 0D1CB8 7F09D188 46125280 */ add.s $f10, $f10, $f18 +.L7F09D18C: +/* 0D1CBC 7F09D18C 46165202 */ mul.s $f8, $f10, $f22 +/* 0D1CC0 7F09D190 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1CC4 7F09D194 44813000 */ mtc1 $at, $f6 +/* 0D1CC8 7F09D198 C6B20010 */ lwc1 $f18, 0x10($s5) +/* 0D1CCC 7F09D19C 461A4402 */ mul.s $f16, $f8, $f26 +/* 0D1CD0 7F09D1A0 46068100 */ add.s $f4, $f16, $f6 +/* 0D1CD4 7F09D1A4 46122502 */ mul.s $f20, $f4, $f18 +/* 0D1CD8 7F09D1A8 0C002914 */ jal get_random_value +/* 0D1CDC 7F09D1AC 00000000 */ nop +/* 0D1CE0 7F09D1B0 44825000 */ mtc1 $v0, $f10 +/* 0D1CE4 7F09D1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1CE8 7F09D1B8 04410004 */ bgez $v0, .L7F09D1CC +/* 0D1CEC 7F09D1BC 46805220 */ cvt.s.w $f8, $f10 +/* 0D1CF0 7F09D1C0 44818000 */ mtc1 $at, $f16 +/* 0D1CF4 7F09D1C4 00000000 */ nop +/* 0D1CF8 7F09D1C8 46104200 */ add.s $f8, $f8, $f16 +.L7F09D1CC: +/* 0D1CFC 7F09D1CC 46164182 */ mul.s $f6, $f8, $f22 +/* 0D1D00 7F09D1D0 3C018005 */ lui $at, %hi(D_800576BC) +/* 0D1D04 7F09D1D4 C42476BC */ lwc1 $f4, %lo(D_800576BC)($at) +/* 0D1D08 7F09D1D8 46043302 */ mul.s $f12, $f6, $f4 +/* 0D1D0C 7F09D1DC 0FC15FA8 */ jal cosf +/* 0D1D10 7F09D1E0 46006606 */ mov.s $f24, $f12 +/* 0D1D14 7F09D1E4 46140482 */ mul.s $f18, $f0, $f20 +/* 0D1D18 7F09D1E8 4600C306 */ mov.s $f12, $f24 +/* 0D1D1C 7F09D1EC 0FC15FAB */ jal sinf +/* 0D1D20 7F09D1F0 E6120014 */ swc1 $f18, 0x14($s0) +/* 0D1D24 7F09D1F4 46140282 */ mul.s $f10, $f0, $f20 +/* 0D1D28 7F09D1F8 10000003 */ b .L7F09D208 +/* 0D1D2C 7F09D1FC E60A0018 */ swc1 $f10, 0x18($s0) +.L7F09D200: +/* 0D1D30 7F09D200 1451FFAB */ bne $v0, $s1, .L7F09D0B0 +/* 0D1D34 7F09D204 26100018 */ addiu $s0, $s0, 0x18 +.L7F09D208: +/* 0D1D38 7F09D208 8FAB009C */ lw $t3, 0x9c($sp) +/* 0D1D3C 7F09D20C 26940001 */ addiu $s4, $s4, 1 +/* 0D1D40 7F09D210 568BFFA6 */ bnel $s4, $t3, .L7F09D0AC +/* 0D1D44 7F09D214 00001025 */ move $v0, $zero +.L7F09D218: +/* 0D1D48 7F09D218 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1D4C 7F09D21C 4481D000 */ mtc1 $at, $f26 +/* 0D1D50 7F09D220 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0D1D54 7F09D224 44814000 */ mtc1 $at, $f8 +/* 0D1D58 7F09D228 C6B00010 */ lwc1 $f16, 0x10($s5) +/* 0D1D5C 7F09D22C C6720008 */ lwc1 $f18, 8($s3) +/* 0D1D60 7F09D230 02602025 */ move $a0, $s3 +/* 0D1D64 7F09D234 46088002 */ mul.s $f0, $f16, $f8 +/* 0D1D68 7F09D238 27A50090 */ addiu $a1, $sp, 0x90 +/* 0D1D6C 7F09D23C 27A60084 */ addiu $a2, $sp, 0x84 +/* 0D1D70 7F09D240 461AE182 */ mul.s $f6, $f28, $f26 +/* 0D1D74 7F09D244 46003700 */ add.s $f28, $f6, $f0 +/* 0D1D78 7F09D248 461AF102 */ mul.s $f4, $f30, $f26 +/* 0D1D7C 7F09D24C 4407E000 */ mfc1 $a3, $f28 +/* 0D1D80 7F09D250 461C9281 */ sub.s $f10, $f18, $f28 +/* 0D1D84 7F09D254 46002780 */ add.s $f30, $f4, $f0 +/* 0D1D88 7F09D258 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0D1D8C 7F09D25C C670000C */ lwc1 $f16, 0xc($s3) +/* 0D1D90 7F09D260 461E8201 */ sub.s $f8, $f16, $f30 +/* 0D1D94 7F09D264 E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D1D98 7F09D268 C6660010 */ lwc1 $f6, 0x10($s3) +/* 0D1D9C 7F09D26C 461C3101 */ sub.s $f4, $f6, $f28 +/* 0D1DA0 7F09D270 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0D1DA4 7F09D274 C6720008 */ lwc1 $f18, 8($s3) +/* 0D1DA8 7F09D278 461C9280 */ add.s $f10, $f18, $f28 +/* 0D1DAC 7F09D27C E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0D1DB0 7F09D280 C670000C */ lwc1 $f16, 0xc($s3) +/* 0D1DB4 7F09D284 461E8200 */ add.s $f8, $f16, $f30 +/* 0D1DB8 7F09D288 E7A80088 */ swc1 $f8, 0x88($sp) +/* 0D1DBC 7F09D28C C6660010 */ lwc1 $f6, 0x10($s3) +/* 0D1DC0 7F09D290 461C3100 */ add.s $f4, $f6, $f28 +/* 0D1DC4 7F09D294 0FC0F89F */ jal sub_GAME_7F03E27C +/* 0D1DC8 7F09D298 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0D1DCC 7F09D29C 864C03C8 */ lh $t4, 0x3c8($s2) +/* 0D1DD0 7F09D2A0 C6A00014 */ lwc1 $f0, 0x14($s5) +/* 0D1DD4 7F09D2A4 C6B20018 */ lwc1 $f18, 0x18($s5) +/* 0D1DD8 7F09D2A8 448C8000 */ mtc1 $t4, $f16 +/* 0D1DDC 7F09D2AC 86AD001C */ lh $t5, 0x1c($s5) +/* 0D1DE0 7F09D2B0 46009281 */ sub.s $f10, $f18, $f0 +/* 0D1DE4 7F09D2B4 02602025 */ move $a0, $s3 +/* 0D1DE8 7F09D2B8 448D2000 */ mtc1 $t5, $f4 +/* 0D1DEC 7F09D2BC 46808220 */ cvt.s.w $f8, $f16 +/* 0D1DF0 7F09D2C0 468024A0 */ cvt.s.w $f18, $f4 +/* 0D1DF4 7F09D2C4 46085182 */ mul.s $f6, $f10, $f8 +/* 0D1DF8 7F09D2C8 46123403 */ div.s $f16, $f6, $f18 +/* 0D1DFC 7F09D2CC 46100780 */ add.s $f30, $f0, $f16 +/* 0D1E00 7F09D2D0 4405F000 */ mfc1 $a1, $f30 +/* 0D1E04 7F09D2D4 4406F000 */ mfc1 $a2, $f30 +/* 0D1E08 7F09D2D8 0FC27276 */ jal sub_GAME_7F09C9D8 +/* 0D1E0C 7F09D2DC 00000000 */ nop +/* 0D1E10 7F09D2E0 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1E14 7F09D2E4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +.L7F09D2E8: +/* 0D1E18 7F09D2E8 24160001 */ li $s6, 1 +/* 0D1E1C 7F09D2EC 2417000E */ li $s7, 14 +/* 0D1E20 7F09D2F0 4600520D */ trunc.w.s $f8, $f10 +/* 0D1E24 7F09D2F4 0000A025 */ move $s4, $zero +/* 0D1E28 7F09D2F8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1E2C 7F09D2FC 440F4000 */ mfc1 $t7, $f8 +/* 0D1E30 7F09D300 00000000 */ nop +/* 0D1E34 7F09D304 19E00058 */ blez $t7, .L7F09D468 +/* 0D1E38 7F09D308 AFAF0070 */ sw $t7, 0x70($sp) +/* 0D1E3C 7F09D30C 4481A000 */ mtc1 $at, $f20 +/* 0D1E40 7F09D310 241103C0 */ li $s1, 960 +/* 0D1E44 7F09D314 24780001 */ addiu $t8, $v1, 1 +.L7F09D318: +/* 0D1E48 7F09D318 A65803C8 */ sh $t8, 0x3c8($s2) +/* 0D1E4C 7F09D31C 00001025 */ move $v0, $zero +/* 0D1E50 7F09D320 02408025 */ move $s0, $s2 +.L7F09D324: +/* 0D1E54 7F09D324 8603001C */ lh $v1, 0x1c($s0) +/* 0D1E58 7F09D328 24420018 */ addiu $v0, $v0, 0x18 +/* 0D1E5C 7F09D32C 18600002 */ blez $v1, .L7F09D338 +/* 0D1E60 7F09D330 24790001 */ addiu $t9, $v1, 1 +/* 0D1E64 7F09D334 A619001C */ sh $t9, 0x1c($s0) +.L7F09D338: +/* 0D1E68 7F09D338 1451FFFA */ bne $v0, $s1, .L7F09D324 +/* 0D1E6C 7F09D33C 26100018 */ addiu $s0, $s0, 0x18 +/* 0D1E70 7F09D340 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1E74 7F09D344 2401000F */ li $at, 15 +/* 0D1E78 7F09D348 54610005 */ bnel $v1, $at, .L7F09D360 +/* 0D1E7C 7F09D34C 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1E80 7F09D350 824803CC */ lb $t0, 0x3cc($s2) +/* 0D1E84 7F09D354 52E80009 */ beql $s7, $t0, .L7F09D37C +/* 0D1E88 7F09D358 8E420004 */ lw $v0, 4($s2) +/* 0D1E8C 7F09D35C 86A2001C */ lh $v0, 0x1c($s5) +.L7F09D360: +/* 0D1E90 7F09D360 24690014 */ addiu $t1, $v1, 0x14 +/* 0D1E94 7F09D364 5449002F */ bnel $v0, $t1, .L7F09D424 +/* 0D1E98 7F09D368 00025843 */ sra $t3, $v0, 1 +/* 0D1E9C 7F09D36C 824A03CC */ lb $t2, 0x3cc($s2) +/* 0D1EA0 7F09D370 52EA002C */ beql $s7, $t2, .L7F09D424 +/* 0D1EA4 7F09D374 00025843 */ sra $t3, $v0, 1 +/* 0D1EA8 7F09D378 8E420004 */ lw $v0, 4($s2) +.L7F09D37C: +/* 0D1EAC 7F09D37C 26640008 */ addiu $a0, $s3, 8 +/* 0D1EB0 7F09D380 2667002C */ addiu $a3, $s3, 0x2c +/* 0D1EB4 7F09D384 5040001E */ beql $v0, $zero, .L7F09D400 +/* 0D1EB8 7F09D388 92680001 */ lbu $t0, 1($s3) +/* 0D1EBC 7F09D38C 8C450014 */ lw $a1, 0x14($v0) +/* 0D1EC0 7F09D390 50A0001B */ beql $a1, $zero, .L7F09D400 +/* 0D1EC4 7F09D394 92680001 */ lbu $t0, 1($s3) +/* 0D1EC8 7F09D398 904B0000 */ lbu $t3, ($v0) +/* 0D1ECC 7F09D39C 2447002C */ addiu $a3, $v0, 0x2c +/* 0D1ED0 7F09D3A0 24440008 */ addiu $a0, $v0, 8 +/* 0D1ED4 7F09D3A4 56CB000C */ bnel $s6, $t3, .L7F09D3D8 +/* 0D1ED8 7F09D3A8 926F0001 */ lbu $t7, 1($s3) +/* 0D1EDC 7F09D3AC 926C0001 */ lbu $t4, 1($s3) +/* 0D1EE0 7F09D3B0 8C430004 */ lw $v1, 4($v0) +/* 0D1EE4 7F09D3B4 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1EE8 7F09D3B8 318D0008 */ andi $t5, $t4, 8 +/* 0D1EEC 7F09D3BC 000D702B */ sltu $t6, $zero, $t5 +/* 0D1EF0 7F09D3C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0D1EF4 7F09D3C4 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1EF8 7F09D3C8 24640058 */ addiu $a0, $v1, 0x58 +/* 0D1EFC 7F09D3CC 10000009 */ b .L7F09D3F4 +/* 0D1F00 7F09D3D0 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F04 7F09D3D4 926F0001 */ lbu $t7, 1($s3) +.L7F09D3D8: +/* 0D1F08 7F09D3D8 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1F0C 7F09D3DC 2447002C */ addiu $a3, $v0, 0x2c +/* 0D1F10 7F09D3E0 31F80008 */ andi $t8, $t7, 8 +/* 0D1F14 7F09D3E4 0018C82B */ sltu $t9, $zero, $t8 +/* 0D1F18 7F09D3E8 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1F1C 7F09D3EC AFB90010 */ sw $t9, 0x10($sp) +/* 0D1F20 7F09D3F0 864303C8 */ lh $v1, 0x3c8($s2) +.L7F09D3F4: +/* 0D1F24 7F09D3F4 1000000A */ b .L7F09D420 +/* 0D1F28 7F09D3F8 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1F2C 7F09D3FC 92680001 */ lbu $t0, 1($s3) +.L7F09D400: +/* 0D1F30 7F09D400 8E650014 */ lw $a1, 0x14($s3) +/* 0D1F34 7F09D404 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1F38 7F09D408 31090008 */ andi $t1, $t0, 8 +/* 0D1F3C 7F09D40C 0009502B */ sltu $t2, $zero, $t1 +/* 0D1F40 7F09D410 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1F44 7F09D414 AFAA0010 */ sw $t2, 0x10($sp) +/* 0D1F48 7F09D418 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F4C 7F09D41C 86A2001C */ lh $v0, 0x1c($s5) +.L7F09D420: +/* 0D1F50 7F09D420 00025843 */ sra $t3, $v0, 1 +.L7F09D424: +/* 0D1F54 7F09D424 5563000D */ bnel $t3, $v1, .L7F09D45C +/* 0D1F58 7F09D428 8FAD0070 */ lw $t5, 0x70($sp) +/* 0D1F5C 7F09D42C 824C03CD */ lb $t4, 0x3cd($s2) +/* 0D1F60 7F09D430 5180000A */ beql $t4, $zero, .L7F09D45C +/* 0D1F64 7F09D434 8FAD0070 */ lw $t5, 0x70($sp) +/* 0D1F68 7F09D438 C6A40010 */ lwc1 $f4, 0x10($s5) +/* 0D1F6C 7F09D43C 264403D0 */ addiu $a0, $s2, 0x3d0 +/* 0D1F70 7F09D440 864603DC */ lh $a2, 0x3dc($s2) +/* 0D1F74 7F09D444 46142182 */ mul.s $f6, $f4, $f20 +/* 0D1F78 7F09D448 44053000 */ mfc1 $a1, $f6 +/* 0D1F7C 7F09D44C 0FC2809F */ jal sub_GAME_7F0A027C +/* 0D1F80 7F09D450 00000000 */ nop +/* 0D1F84 7F09D454 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F88 7F09D458 8FAD0070 */ lw $t5, 0x70($sp) +.L7F09D45C: +/* 0D1F8C 7F09D45C 26940001 */ addiu $s4, $s4, 1 +/* 0D1F90 7F09D460 568DFFAD */ bnel $s4, $t5, .L7F09D318 +/* 0D1F94 7F09D464 24780001 */ addiu $t8, $v1, 1 +.L7F09D468: +/* 0D1F98 7F09D468 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0D1F9C 7F09D46C 44819000 */ mtc1 $at, $f18 +/* 0D1FA0 7F09D470 C6B00020 */ lwc1 $f16, 0x20($s5) +/* 0D1FA4 7F09D474 86B8001C */ lh $t8, 0x1c($s5) +/* 0D1FA8 7F09D478 00001025 */ move $v0, $zero +/* 0D1FAC 7F09D47C 46109282 */ mul.s $f10, $f18, $f16 +/* 0D1FB0 7F09D480 4600520D */ trunc.w.s $f8, $f10 +/* 0D1FB4 7F09D484 440F4000 */ mfc1 $t7, $f8 +/* 0D1FB8 7F09D488 00000000 */ nop +/* 0D1FBC 7F09D48C 030FC821 */ addu $t9, $t8, $t7 +/* 0D1FC0 7F09D490 0079082A */ slt $at, $v1, $t9 +/* 0D1FC4 7F09D494 14200004 */ bnez $at, .L7F09D4A8 +/* 0D1FC8 7F09D498 00000000 */ nop +/* 0D1FCC 7F09D49C AE400000 */ sw $zero, ($s2) +/* 0D1FD0 7F09D4A0 10000001 */ b .L7F09D4A8 +/* 0D1FD4 7F09D4A4 24020001 */ li $v0, 1 +.L7F09D4A8: +/* 0D1FD8 7F09D4A8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D1FDC 7F09D4AC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D1FE0 7F09D4B0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D1FE4 7F09D4B4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D1FE8 7F09D4B8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D1FEC 7F09D4BC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D1FF0 7F09D4C0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D1FF4 7F09D4C4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0D1FF8 7F09D4C8 8FB10050 */ lw $s1, 0x50($sp) +/* 0D1FFC 7F09D4CC 8FB20054 */ lw $s2, 0x54($sp) +/* 0D2000 7F09D4D0 8FB30058 */ lw $s3, 0x58($sp) +/* 0D2004 7F09D4D4 8FB4005C */ lw $s4, 0x5c($sp) +/* 0D2008 7F09D4D8 8FB50060 */ lw $s5, 0x60($sp) +/* 0D200C 7F09D4DC 8FB60064 */ lw $s6, 0x64($sp) +/* 0D2010 7F09D4E0 8FB70068 */ lw $s7, 0x68($sp) +/* 0D2014 7F09D4E4 03E00008 */ jr $ra +/* 0D2018 7F09D4E8 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09D4EC(void) { + +} +#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 get_BONDdata_field_10CC +/* 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(clock_timer) +/* 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(clock_timer)($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 +void sub_GAME_7F09D5A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09D5A0 +/* 0D20D0 7F09D5A0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0D20D4 7F09D5A4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D20D8 7F09D5A8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D20DC 7F09D5AC AFB70038 */ sw $s7, 0x38($sp) +/* 0D20E0 7F09D5B0 AFB60034 */ sw $s6, 0x34($sp) +/* 0D20E4 7F09D5B4 AFB50030 */ sw $s5, 0x30($sp) +/* 0D20E8 7F09D5B8 AFB4002C */ sw $s4, 0x2c($sp) +/* 0D20EC 7F09D5BC AFB30028 */ sw $s3, 0x28($sp) +/* 0D20F0 7F09D5C0 AFB20024 */ sw $s2, 0x24($sp) +/* 0D20F4 7F09D5C4 AFB10020 */ sw $s1, 0x20($sp) +/* 0D20F8 7F09D5C8 9091002C */ lbu $s1, 0x2c($a0) +/* 0D20FC 7F09D5CC 00808025 */ move $s0, $a0 +/* 0D2100 7F09D5D0 8C950004 */ lw $s5, 4($a0) +/* 0D2104 7F09D5D4 00C09025 */ move $s2, $a2 +/* 0D2108 7F09D5D8 00A0A025 */ move $s4, $a1 +/* 0D210C 7F09D5DC 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D2110 7F09D5E0 02202025 */ move $a0, $s1 +/* 0D2114 7F09D5E4 16400003 */ bnez $s2, .L7F09D5F4 +/* 0D2118 7F09D5E8 0040B025 */ move $s6, $v0 +/* 0D211C 7F09D5EC 10000084 */ b .L7F09D800 +/* 0D2120 7F09D5F0 02801025 */ move $v0, $s4 +.L7F09D5F4: +/* 0D2124 7F09D5F4 02002025 */ move $a0, $s0 +/* 0D2128 7F09D5F8 0FC15299 */ jal sub_GAME_7F054A64 +/* 0D212C 7F09D5FC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0D2130 7F09D600 1840000A */ blez $v0, .L7F09D62C +/* 0D2134 7F09D604 00000000 */ nop +/* 0D2138 7F09D608 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0D213C 7F09D60C 02802025 */ move $a0, $s4 +/* 0D2140 7F09D610 8FA50070 */ lw $a1, 0x70($sp) +/* 0D2144 7F09D614 8FA60074 */ lw $a2, 0x74($sp) +/* 0D2148 7F09D618 8FA70078 */ lw $a3, 0x78($sp) +/* 0D214C 7F09D61C 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0D2150 7F09D620 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0D2154 7F09D624 10000004 */ b .L7F09D638 +/* 0D2158 7F09D628 0040A025 */ move $s4, $v0 +.L7F09D62C: +/* 0D215C 7F09D62C 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0D2160 7F09D630 02802025 */ move $a0, $s4 +/* 0D2164 7F09D634 0040A025 */ move $s4, $v0 +.L7F09D638: +/* 0D2168 7F09D638 02801025 */ move $v0, $s4 +/* 0D216C 7F09D63C 3C0F0001 */ lui $t7, (0x00013000 >> 16) # lui $t7, 1 +/* 0D2170 7F09D640 35EF3000 */ ori $t7, (0x00013000 & 0xFFFF) # ori $t7, $t7, 0x3000 +/* 0D2174 7F09D644 26940008 */ addiu $s4, $s4, 8 +/* 0D2178 7F09D648 3C0EB600 */ lui $t6, 0xb600 +/* 0D217C 7F09D64C 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D2180 7F09D650 AC4E0000 */ sw $t6, ($v0) +/* 0D2184 7F09D654 AC4F0004 */ sw $t7, 4($v0) +/* 0D2188 7F09D658 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D218C 7F09D65C 02808025 */ move $s0, $s4 +/* 0D2190 7F09D660 AE180000 */ sw $t8, ($s0) +/* 0D2194 7F09D664 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D2198 7F09D668 26940008 */ addiu $s4, $s4, 8 +/* 0D219C 7F09D66C 0C003A2C */ jal osVirtualToPhysical +/* 0D21A0 7F09D670 00402025 */ move $a0, $v0 +/* 0D21A4 7F09D674 AE020004 */ sw $v0, 4($s0) +/* 0D21A8 7F09D678 02802025 */ move $a0, $s4 +/* 0D21AC 7F09D67C 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D21B0 7F09D680 02202825 */ move $a1, $s1 +/* 0D21B4 7F09D684 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00 +/* 0D21B8 7F09D688 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806 +/* 0D21BC 7F09D68C AC590000 */ sw $t9, ($v0) +/* 0D21C0 7F09D690 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D21C4 7F09D694 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D21C8 7F09D698 00408025 */ move $s0, $v0 +/* 0D21CC 7F09D69C 0C003A2C */ jal osVirtualToPhysical +/* 0D21D0 7F09D6A0 24540008 */ addiu $s4, $v0, 8 +/* 0D21D4 7F09D6A4 3C178004 */ lui $s7, %hi(D_8004017C+0x680) +/* 0D21D8 7F09D6A8 3C138004 */ lui $s3, %hi(D_8004017C+0x108) +/* 0D21DC 7F09D6AC AE020004 */ sw $v0, 4($s0) +/* 0D21E0 7F09D6B0 26730284 */ addiu $s3, %lo(D_8004017C+0x108) # addiu $s3, $s3, 0x284 +/* 0D21E4 7F09D6B4 26F707FC */ addiu $s7, %lo(D_8004017C+0x680) # addiu $s7, $s7, 0x7fc +/* 0D21E8 7F09D6B8 2412000E */ li $s2, 14 +.L7F09D6BC: +/* 0D21EC 7F09D6BC 02801025 */ move $v0, $s4 +/* 0D21F0 7F09D6C0 3C080600 */ lui $t0, 0x600 +/* 0D21F4 7F09D6C4 AC480000 */ sw $t0, ($v0) +/* 0D21F8 7F09D6C8 8EE90000 */ lw $t1, ($s7) +/* 0D21FC 7F09D6CC 26940008 */ addiu $s4, $s4, 8 +/* 0D2200 7F09D6D0 00008825 */ move $s1, $zero +/* 0D2204 7F09D6D4 02A08025 */ move $s0, $s5 +/* 0D2208 7F09D6D8 AC490004 */ sw $t1, 4($v0) +.L7F09D6DC: +/* 0D220C 7F09D6DC 8602001C */ lh $v0, 0x1c($s0) +/* 0D2210 7F09D6E0 18400012 */ blez $v0, .L7F09D72C +/* 0D2214 7F09D6E4 244AFFFF */ addiu $t2, $v0, -1 +/* 0D2218 7F09D6E8 448A3000 */ mtc1 $t2, $f6 +/* 0D221C 7F09D6EC 82AB03CC */ lb $t3, 0x3cc($s5) +/* 0D2220 7F09D6F0 26040008 */ addiu $a0, $s0, 8 +/* 0D2224 7F09D6F4 46803220 */ cvt.s.w $f8, $f6 +/* 0D2228 7F09D6F8 000B6180 */ sll $t4, $t3, 6 +/* 0D222C 7F09D6FC 026C6821 */ addu $t5, $s3, $t4 +/* 0D2230 7F09D700 C5AA0020 */ lwc1 $f10, 0x20($t5) +/* 0D2234 7F09D704 02802825 */ move $a1, $s4 +/* 0D2238 7F09D708 460A4403 */ div.s $f16, $f8, $f10 +/* 0D223C 7F09D70C 4600848D */ trunc.w.s $f18, $f16 +/* 0D2240 7F09D710 440F9000 */ mfc1 $t7, $f18 +/* 0D2244 7F09D714 00000000 */ nop +/* 0D2248 7F09D718 564F0005 */ bnel $s2, $t7, .L7F09D730 +/* 0D224C 7F09D71C 26310018 */ addiu $s1, $s1, 0x18 +/* 0D2250 7F09D720 0FC2760B */ jal sub_GAME_7F09D82C +/* 0D2254 7F09D724 02C03025 */ move $a2, $s6 +/* 0D2258 7F09D728 0040A025 */ move $s4, $v0 +.L7F09D72C: +/* 0D225C 7F09D72C 26310018 */ addiu $s1, $s1, 0x18 +.L7F09D730: +/* 0D2260 7F09D730 2A2103C0 */ slti $at, $s1, 0x3c0 +/* 0D2264 7F09D734 1420FFE9 */ bnez $at, .L7F09D6DC +/* 0D2268 7F09D738 26100018 */ addiu $s0, $s0, 0x18 +/* 0D226C 7F09D73C 2652FFFF */ addiu $s2, $s2, -1 +/* 0D2270 7F09D740 0641FFDE */ bgez $s2, .L7F09D6BC +/* 0D2274 7F09D744 26F7FFFC */ addiu $s7, $s7, -4 +/* 0D2278 7F09D748 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D227C 7F09D74C 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D2280 7F09D750 02809025 */ move $s2, $s4 +/* 0D2284 7F09D754 AE580000 */ sw $t8, ($s2) +/* 0D2288 7F09D758 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D228C 7F09D75C 26940008 */ addiu $s4, $s4, 8 +/* 0D2290 7F09D760 0C003A2C */ jal osVirtualToPhysical +/* 0D2294 7F09D764 00402025 */ move $a0, $v0 +/* 0D2298 7F09D768 AE420004 */ sw $v0, 4($s2) +/* 0D229C 7F09D76C 82B903CC */ lb $t9, 0x3cc($s5) +/* 0D22A0 7F09D770 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D22A4 7F09D774 44813000 */ mtc1 $at, $f6 +/* 0D22A8 7F09D778 00194180 */ sll $t0, $t9, 6 +/* 0D22AC 7F09D77C 02684821 */ addu $t1, $s3, $t0 +/* 0D22B0 7F09D780 C5240020 */ lwc1 $f4, 0x20($t1) +/* 0D22B4 7F09D784 240203C0 */ li $v0, 960 +/* 0D22B8 7F09D788 00008825 */ move $s1, $zero +/* 0D22BC 7F09D78C 46062202 */ mul.s $f8, $f4, $f6 +/* 0D22C0 7F09D790 02A08025 */ move $s0, $s5 +/* 0D22C4 7F09D794 4600428D */ trunc.w.s $f10, $f8 +/* 0D22C8 7F09D798 44035000 */ mfc1 $v1, $f10 +/* 0D22CC 7F09D79C 00000000 */ nop +.L7F09D7A0: +/* 0D22D0 7F09D7A0 860B001C */ lh $t3, 0x1c($s0) +/* 0D22D4 7F09D7A4 26310060 */ addiu $s1, $s1, 0x60 +/* 0D22D8 7F09D7A8 006B082A */ slt $at, $v1, $t3 +/* 0D22DC 7F09D7AC 50200003 */ beql $at, $zero, .L7F09D7BC +/* 0D22E0 7F09D7B0 860C0034 */ lh $t4, 0x34($s0) +/* 0D22E4 7F09D7B4 A600001C */ sh $zero, 0x1c($s0) +/* 0D22E8 7F09D7B8 860C0034 */ lh $t4, 0x34($s0) +.L7F09D7BC: +/* 0D22EC 7F09D7BC 006C082A */ slt $at, $v1, $t4 +/* 0D22F0 7F09D7C0 50200003 */ beql $at, $zero, .L7F09D7D0 +/* 0D22F4 7F09D7C4 860D004C */ lh $t5, 0x4c($s0) +/* 0D22F8 7F09D7C8 A6000034 */ sh $zero, 0x34($s0) +/* 0D22FC 7F09D7CC 860D004C */ lh $t5, 0x4c($s0) +.L7F09D7D0: +/* 0D2300 7F09D7D0 006D082A */ slt $at, $v1, $t5 +/* 0D2304 7F09D7D4 50200003 */ beql $at, $zero, .L7F09D7E4 +/* 0D2308 7F09D7D8 860E0064 */ lh $t6, 0x64($s0) +/* 0D230C 7F09D7DC A600004C */ sh $zero, 0x4c($s0) +/* 0D2310 7F09D7E0 860E0064 */ lh $t6, 0x64($s0) +.L7F09D7E4: +/* 0D2314 7F09D7E4 006E082A */ slt $at, $v1, $t6 +/* 0D2318 7F09D7E8 10200002 */ beqz $at, .L7F09D7F4 +/* 0D231C 7F09D7EC 00000000 */ nop +/* 0D2320 7F09D7F0 A6000064 */ sh $zero, 0x64($s0) +.L7F09D7F4: +/* 0D2324 7F09D7F4 1622FFEA */ bne $s1, $v0, .L7F09D7A0 +/* 0D2328 7F09D7F8 26100060 */ addiu $s0, $s0, 0x60 +/* 0D232C 7F09D7FC 02801025 */ move $v0, $s4 +.L7F09D800: +/* 0D2330 7F09D800 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D2334 7F09D804 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D2338 7F09D808 8FB10020 */ lw $s1, 0x20($sp) +/* 0D233C 7F09D80C 8FB20024 */ lw $s2, 0x24($sp) +/* 0D2340 7F09D810 8FB30028 */ lw $s3, 0x28($sp) +/* 0D2344 7F09D814 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D2348 7F09D818 8FB50030 */ lw $s5, 0x30($sp) +/* 0D234C 7F09D81C 8FB60034 */ lw $s6, 0x34($sp) +/* 0D2350 7F09D820 8FB70038 */ lw $s7, 0x38($sp) +/* 0D2354 7F09D824 03E00008 */ jr $ra +/* 0D2358 7F09D828 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09D82C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09D82C +/* 0D235C 7F09D82C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0D2360 7F09D830 3C0F8004 */ lui $t7, %hi(D_8004080C+0xF4) +/* 0D2364 7F09D834 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D2368 7F09D838 AFB20020 */ sw $s2, 0x20($sp) +/* 0D236C 7F09D83C AFB1001C */ sw $s1, 0x1c($sp) +/* 0D2370 7F09D840 AFB00018 */ sw $s0, 0x18($sp) +/* 0D2374 7F09D844 25EF0900 */ addiu $t7, %lo(D_8004080C+0xF4) # addiu $t7, $t7, 0x900 +/* 0D2378 7F09D848 8DE10000 */ lw $at, ($t7) +/* 0D237C 7F09D84C 8DE80004 */ lw $t0, 4($t7) +/* 0D2380 7F09D850 27AE00A0 */ addiu $t6, $sp, 0xa0 +/* 0D2384 7F09D854 ADC10000 */ sw $at, ($t6) +/* 0D2388 7F09D858 ADC80004 */ sw $t0, 4($t6) +/* 0D238C 7F09D85C 8DE8000C */ lw $t0, 0xc($t7) +/* 0D2390 7F09D860 8DE10008 */ lw $at, 8($t7) +/* 0D2394 7F09D864 00808025 */ move $s0, $a0 +/* 0D2398 7F09D868 00C08825 */ move $s1, $a2 +/* 0D239C 7F09D86C 00A09025 */ move $s2, $a1 +/* 0D23A0 7F09D870 ADC8000C */ sw $t0, 0xc($t6) +/* 0D23A4 7F09D874 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D23A8 7F09D878 ADC10008 */ sw $at, 8($t6) +/* 0D23AC 7F09D87C 0FC227F5 */ jal get_BONDdata_position +/* 0D23B0 7F09D880 AFA2009C */ sw $v0, 0x9c($sp) +/* 0D23B4 7F09D884 C6040000 */ lwc1 $f4, ($s0) +/* 0D23B8 7F09D888 C4460000 */ lwc1 $f6, ($v0) +/* 0D23BC 7F09D88C C6080004 */ lwc1 $f8, 4($s0) +/* 0D23C0 7F09D890 C44A0004 */ lwc1 $f10, 4($v0) +/* 0D23C4 7F09D894 46062381 */ sub.s $f14, $f4, $f6 +/* 0D23C8 7F09D898 C4460008 */ lwc1 $f6, 8($v0) +/* 0D23CC 7F09D89C C6040008 */ lwc1 $f4, 8($s0) +/* 0D23D0 7F09D8A0 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D23D4 7F09D8A4 460E7202 */ mul.s $f8, $f14, $f14 +/* 0D23D8 7F09D8A8 E7AE0064 */ swc1 $f14, 0x64($sp) +/* 0D23DC 7F09D8AC 46062481 */ sub.s $f18, $f4, $f6 +/* 0D23E0 7F09D8B0 46108282 */ mul.s $f10, $f16, $f16 +/* 0D23E4 7F09D8B4 E7B00060 */ swc1 $f16, 0x60($sp) +/* 0D23E8 7F09D8B8 AFA20098 */ sw $v0, 0x98($sp) +/* 0D23EC 7F09D8BC 46129182 */ mul.s $f6, $f18, $f18 +/* 0D23F0 7F09D8C0 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 0D23F4 7F09D8C4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D23F8 7F09D8C8 0C007DF8 */ jal sqrtf +/* 0D23FC 7F09D8CC 46062300 */ add.s $f12, $f4, $f6 +/* 0D2400 7F09D8D0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D2404 7F09D8D4 44814000 */ mtc1 $at, $f8 +/* 0D2408 7F09D8D8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D240C 7F09D8DC 44815000 */ mtc1 $at, $f10 +/* 0D2410 7F09D8E0 46080302 */ mul.s $f12, $f0, $f8 +/* 0D2414 7F09D8E4 44802000 */ mtc1 $zero, $f4 +/* 0D2418 7F09D8E8 8FA3009C */ lw $v1, 0x9c($sp) +/* 0D241C 7F09D8EC 8FA50098 */ lw $a1, 0x98($sp) +/* 0D2420 7F09D8F0 C7AE0064 */ lwc1 $f14, 0x64($sp) +/* 0D2424 7F09D8F4 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0D2428 7F09D8F8 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0D242C 7F09D8FC 460C503C */ c.lt.s $f10, $f12 +/* 0D2430 7F09D900 00000000 */ nop +/* 0D2434 7F09D904 45000003 */ bc1f .L7F09D914 +/* 0D2438 7F09D908 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D243C 7F09D90C 44816000 */ mtc1 $at, $f12 +/* 0D2440 7F09D910 00000000 */ nop +.L7F09D914: +/* 0D2444 7F09D914 46040032 */ c.eq.s $f0, $f4 +/* 0D2448 7F09D918 00000000 */ nop +/* 0D244C 7F09D91C 45020005 */ bc1fl .L7F09D934 +/* 0D2450 7F09D920 460C0181 */ sub.s $f6, $f0, $f12 +/* 0D2454 7F09D924 44801000 */ mtc1 $zero, $f2 +/* 0D2458 7F09D928 10000004 */ b .L7F09D93C +/* 0D245C 7F09D92C C608000C */ lwc1 $f8, 0xc($s0) +/* 0D2460 7F09D930 460C0181 */ sub.s $f6, $f0, $f12 +.L7F09D934: +/* 0D2464 7F09D934 46003083 */ div.s $f2, $f6, $f0 +/* 0D2468 7F09D938 C608000C */ lwc1 $f8, 0xc($s0) +.L7F09D93C: +/* 0D246C 7F09D93C C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0D2470 7F09D940 C4A40000 */ lwc1 $f4, ($a1) +/* 0D2474 7F09D944 46024002 */ mul.s $f0, $f8, $f2 +/* 0D2478 7F09D948 24040004 */ li $a0, 4 +/* 0D247C 7F09D94C 46025302 */ mul.s $f12, $f10, $f2 +/* 0D2480 7F09D950 00000000 */ nop +/* 0D2484 7F09D954 46027182 */ mul.s $f6, $f14, $f2 +/* 0D2488 7F09D958 46062200 */ add.s $f8, $f4, $f6 +/* 0D248C 7F09D95C 46028102 */ mul.s $f4, $f16, $f2 +/* 0D2490 7F09D960 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0D2494 7F09D964 C4AA0004 */ lwc1 $f10, 4($a1) +/* 0D2498 7F09D968 46045180 */ add.s $f6, $f10, $f4 +/* 0D249C 7F09D96C 46029282 */ mul.s $f10, $f18, $f2 +/* 0D24A0 7F09D970 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0D24A4 7F09D974 C4A80008 */ lwc1 $f8, 8($a1) +/* 0D24A8 7F09D978 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0D24AC 7F09D97C E7A00054 */ swc1 $f0, 0x54($sp) +/* 0D24B0 7F09D980 460A4100 */ add.s $f4, $f8, $f10 +/* 0D24B4 7F09D984 AFA3009C */ sw $v1, 0x9c($sp) +/* 0D24B8 7F09D988 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D24BC 7F09D98C E7A40044 */ swc1 $f4, 0x44($sp) +/* 0D24C0 7F09D990 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0D24C4 7F09D994 8C810000 */ lw $at, ($a0) +/* 0D24C8 7F09D998 8FA3009C */ lw $v1, 0x9c($sp) +/* 0D24CC 7F09D99C C7A00054 */ lwc1 $f0, 0x54($sp) +/* 0D24D0 7F09D9A0 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0D24D4 7F09D9A4 AC410000 */ sw $at, ($v0) +/* 0D24D8 7F09D9A8 8C8B0004 */ lw $t3, 4($a0) +/* 0D24DC 7F09D9AC 00408025 */ move $s0, $v0 +/* 0D24E0 7F09D9B0 AC4B0004 */ sw $t3, 4($v0) +/* 0D24E4 7F09D9B4 8C810008 */ lw $at, 8($a0) +/* 0D24E8 7F09D9B8 AC410008 */ sw $at, 8($v0) +/* 0D24EC 7F09D9BC 8C8B000C */ lw $t3, 0xc($a0) +/* 0D24F0 7F09D9C0 AC4B000C */ sw $t3, 0xc($v0) +/* 0D24F4 7F09D9C4 8C810000 */ lw $at, ($a0) +/* 0D24F8 7F09D9C8 AC410010 */ sw $at, 0x10($v0) +/* 0D24FC 7F09D9CC 8C990004 */ lw $t9, 4($a0) +/* 0D2500 7F09D9D0 AC590014 */ sw $t9, 0x14($v0) +/* 0D2504 7F09D9D4 8C810008 */ lw $at, 8($a0) +/* 0D2508 7F09D9D8 AC410018 */ sw $at, 0x18($v0) +/* 0D250C 7F09D9DC 8C99000C */ lw $t9, 0xc($a0) +/* 0D2510 7F09D9E0 AC59001C */ sw $t9, 0x1c($v0) +/* 0D2514 7F09D9E4 8C810000 */ lw $at, ($a0) +/* 0D2518 7F09D9E8 AC410020 */ sw $at, 0x20($v0) +/* 0D251C 7F09D9EC 8C8F0004 */ lw $t7, 4($a0) +/* 0D2520 7F09D9F0 AC4F0024 */ sw $t7, 0x24($v0) +/* 0D2524 7F09D9F4 8C810008 */ lw $at, 8($a0) +/* 0D2528 7F09D9F8 AC410028 */ sw $at, 0x28($v0) +/* 0D252C 7F09D9FC 8C8F000C */ lw $t7, 0xc($a0) +/* 0D2530 7F09DA00 AC4F002C */ sw $t7, 0x2c($v0) +/* 0D2534 7F09DA04 8C810000 */ lw $at, ($a0) +/* 0D2538 7F09DA08 AC410030 */ sw $at, 0x30($v0) +/* 0D253C 7F09DA0C 8C890004 */ lw $t1, 4($a0) +/* 0D2540 7F09DA10 AC490034 */ sw $t1, 0x34($v0) +/* 0D2544 7F09DA14 8C810008 */ lw $at, 8($a0) +/* 0D2548 7F09DA18 AC410038 */ sw $at, 0x38($v0) +/* 0D254C 7F09DA1C 8C89000C */ lw $t1, 0xc($a0) +/* 0D2550 7F09DA20 AC49003C */ sw $t1, 0x3c($v0) +/* 0D2554 7F09DA24 8C810000 */ lw $at, ($a0) +/* 0D2558 7F09DA28 AC410040 */ sw $at, 0x40($v0) +/* 0D255C 7F09DA2C 8C8C0004 */ lw $t4, 4($a0) +/* 0D2560 7F09DA30 AC4C0044 */ sw $t4, 0x44($v0) +/* 0D2564 7F09DA34 8C810008 */ lw $at, 8($a0) +/* 0D2568 7F09DA38 AC410048 */ sw $at, 0x48($v0) +/* 0D256C 7F09DA3C 8C8C000C */ lw $t4, 0xc($a0) +/* 0D2570 7F09DA40 AC4C004C */ sw $t4, 0x4c($v0) +/* 0D2574 7F09DA44 C4660000 */ lwc1 $f6, ($v1) +/* 0D2578 7F09DA48 46003202 */ mul.s $f8, $f6, $f0 +/* 0D257C 7F09DA4C E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0D2580 7F09DA50 C46A0004 */ lwc1 $f10, 4($v1) +/* 0D2584 7F09DA54 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2588 7F09DA58 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0D258C 7F09DA5C C4660008 */ lwc1 $f6, 8($v1) +/* 0D2590 7F09DA60 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2594 7F09DA64 E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D2598 7F09DA68 C46A0000 */ lwc1 $f10, ($v1) +/* 0D259C 7F09DA6C 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25A0 7F09DA70 E7A40080 */ swc1 $f4, 0x80($sp) +/* 0D25A4 7F09DA74 C4660004 */ lwc1 $f6, 4($v1) +/* 0D25A8 7F09DA78 460C3202 */ mul.s $f8, $f6, $f12 +/* 0D25AC 7F09DA7C E7A80084 */ swc1 $f8, 0x84($sp) +/* 0D25B0 7F09DA80 C46A0008 */ lwc1 $f10, 8($v1) +/* 0D25B4 7F09DA84 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25B8 7F09DA88 E7A40088 */ swc1 $f4, 0x88($sp) +/* 0D25BC 7F09DA8C C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D25C0 7F09DA90 46003202 */ mul.s $f8, $f6, $f0 +/* 0D25C4 7F09DA94 E7A80074 */ swc1 $f8, 0x74($sp) +/* 0D25C8 7F09DA98 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 0D25CC 7F09DA9C 46005102 */ mul.s $f4, $f10, $f0 +/* 0D25D0 7F09DAA0 E7A40078 */ swc1 $f4, 0x78($sp) +/* 0D25D4 7F09DAA4 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0D25D8 7F09DAA8 46003202 */ mul.s $f8, $f6, $f0 +/* 0D25DC 7F09DAAC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0D25E0 7F09DAB0 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0D25E4 7F09DAB4 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25E8 7F09DAB8 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0D25EC 7F09DABC C4660014 */ lwc1 $f6, 0x14($v1) +/* 0D25F0 7F09DAC0 460C3202 */ mul.s $f8, $f6, $f12 +/* 0D25F4 7F09DAC4 E7A8006C */ swc1 $f8, 0x6c($sp) +/* 0D25F8 7F09DAC8 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0D25FC 7F09DACC 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D2600 7F09DAD0 0FC2D20F */ jal get_room_data_float1 +/* 0D2604 7F09DAD4 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0D2608 7F09DAD8 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0D260C 7F09DADC C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0D2610 7F09DAE0 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0D2614 7F09DAE4 46083281 */ sub.s $f10, $f6, $f8 +/* 0D2618 7F09DAE8 46045181 */ sub.s $f6, $f10, $f4 +/* 0D261C 7F09DAEC C62A0000 */ lwc1 $f10, ($s1) +/* 0D2620 7F09DAF0 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2624 7F09DAF4 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D2628 7F09DAF8 4600218D */ trunc.w.s $f6, $f4 +/* 0D262C 7F09DAFC 440E3000 */ mfc1 $t6, $f6 +/* 0D2630 7F09DB00 0FC2D20F */ jal get_room_data_float1 +/* 0D2634 7F09DB04 A60E0000 */ sh $t6, ($s0) +/* 0D2638 7F09DB08 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0D263C 7F09DB0C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D2640 7F09DB10 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0D2644 7F09DB14 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D2648 7F09DB18 46062201 */ sub.s $f8, $f4, $f6 +/* 0D264C 7F09DB1C C6240004 */ lwc1 $f4, 4($s1) +/* 0D2650 7F09DB20 46004282 */ mul.s $f10, $f8, $f0 +/* 0D2654 7F09DB24 46045181 */ sub.s $f6, $f10, $f4 +/* 0D2658 7F09DB28 4600320D */ trunc.w.s $f8, $f6 +/* 0D265C 7F09DB2C 440F4000 */ mfc1 $t7, $f8 +/* 0D2660 7F09DB30 0FC2D20F */ jal get_room_data_float1 +/* 0D2664 7F09DB34 A60F0002 */ sh $t7, 2($s0) +/* 0D2668 7F09DB38 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0D266C 7F09DB3C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D2670 7F09DB40 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0D2674 7F09DB44 240906E0 */ li $t1, 1760 +/* 0D2678 7F09DB48 46045181 */ sub.s $f6, $f10, $f4 +/* 0D267C 7F09DB4C 46083281 */ sub.s $f10, $f6, $f8 +/* 0D2680 7F09DB50 C6260008 */ lwc1 $f6, 8($s1) +/* 0D2684 7F09DB54 A6090008 */ sh $t1, 8($s0) +/* 0D2688 7F09DB58 A600000A */ sh $zero, 0xa($s0) +/* 0D268C 7F09DB5C 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2690 7F09DB60 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2694 7F09DB64 4600428D */ trunc.w.s $f10, $f8 +/* 0D2698 7F09DB68 44085000 */ mfc1 $t0, $f10 +/* 0D269C 7F09DB6C 0FC2D20F */ jal get_room_data_float1 +/* 0D26A0 7F09DB70 A6080004 */ sh $t0, 4($s0) +/* 0D26A4 7F09DB74 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0D26A8 7F09DB78 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0D26AC 7F09DB7C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0D26B0 7F09DB80 46062200 */ add.s $f8, $f4, $f6 +/* 0D26B4 7F09DB84 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D26B8 7F09DB88 C6280000 */ lwc1 $f8, ($s1) +/* 0D26BC 7F09DB8C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D26C0 7F09DB90 46083281 */ sub.s $f10, $f6, $f8 +/* 0D26C4 7F09DB94 4600510D */ trunc.w.s $f4, $f10 +/* 0D26C8 7F09DB98 440B2000 */ mfc1 $t3, $f4 +/* 0D26CC 7F09DB9C 0FC2D20F */ jal get_room_data_float1 +/* 0D26D0 7F09DBA0 A60B0010 */ sh $t3, 0x10($s0) +/* 0D26D4 7F09DBA4 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0D26D8 7F09DBA8 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0D26DC 7F09DBAC C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D26E0 7F09DBB0 46083280 */ add.s $f10, $f6, $f8 +/* 0D26E4 7F09DBB4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D26E8 7F09DBB8 C62A0004 */ lwc1 $f10, 4($s1) +/* 0D26EC 7F09DBBC 46003202 */ mul.s $f8, $f6, $f0 +/* 0D26F0 7F09DBC0 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D26F4 7F09DBC4 4600218D */ trunc.w.s $f6, $f4 +/* 0D26F8 7F09DBC8 44193000 */ mfc1 $t9, $f6 +/* 0D26FC 7F09DBCC 0FC2D20F */ jal get_room_data_float1 +/* 0D2700 7F09DBD0 A6190012 */ sh $t9, 0x12($s0) +/* 0D2704 7F09DBD4 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0D2708 7F09DBD8 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 0D270C 7F09DBDC C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2710 7F09DBE0 460A4100 */ add.s $f4, $f8, $f10 +/* 0D2714 7F09DBE4 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2718 7F09DBE8 C6240008 */ lwc1 $f4, 8($s1) +/* 0D271C 7F09DBEC A6000018 */ sh $zero, 0x18($s0) +/* 0D2720 7F09DBF0 A600001A */ sh $zero, 0x1a($s0) +/* 0D2724 7F09DBF4 46004282 */ mul.s $f10, $f8, $f0 +/* 0D2728 7F09DBF8 46045181 */ sub.s $f6, $f10, $f4 +/* 0D272C 7F09DBFC 4600320D */ trunc.w.s $f8, $f6 +/* 0D2730 7F09DC00 44184000 */ mfc1 $t8, $f8 +/* 0D2734 7F09DC04 0FC2D20F */ jal get_room_data_float1 +/* 0D2738 7F09DC08 A6180014 */ sh $t8, 0x14($s0) +/* 0D273C 7F09DC0C C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D2740 7F09DC10 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 0D2744 7F09DC14 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0D2748 7F09DC18 46045180 */ add.s $f6, $f10, $f4 +/* 0D274C 7F09DC1C 46083280 */ add.s $f10, $f6, $f8 +/* 0D2750 7F09DC20 C6260000 */ lwc1 $f6, ($s1) +/* 0D2754 7F09DC24 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2758 7F09DC28 46062201 */ sub.s $f8, $f4, $f6 +/* 0D275C 7F09DC2C 4600428D */ trunc.w.s $f10, $f8 +/* 0D2760 7F09DC30 440A5000 */ mfc1 $t2, $f10 +/* 0D2764 7F09DC34 0FC2D20F */ jal get_room_data_float1 +/* 0D2768 7F09DC38 A60A0020 */ sh $t2, 0x20($s0) +/* 0D276C 7F09DC3C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D2770 7F09DC40 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0D2774 7F09DC44 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0D2778 7F09DC48 46062200 */ add.s $f8, $f4, $f6 +/* 0D277C 7F09DC4C 460A4100 */ add.s $f4, $f8, $f10 +/* 0D2780 7F09DC50 C6280004 */ lwc1 $f8, 4($s1) +/* 0D2784 7F09DC54 46002182 */ mul.s $f6, $f4, $f0 +/* 0D2788 7F09DC58 46083281 */ sub.s $f10, $f6, $f8 +/* 0D278C 7F09DC5C 4600510D */ trunc.w.s $f4, $f10 +/* 0D2790 7F09DC60 44092000 */ mfc1 $t1, $f4 +/* 0D2794 7F09DC64 0FC2D20F */ jal get_room_data_float1 +/* 0D2798 7F09DC68 A6090022 */ sh $t1, 0x22($s0) +/* 0D279C 7F09DC6C C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0D27A0 7F09DC70 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D27A4 7F09DC74 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0D27A8 7F09DC78 240C06E0 */ li $t4, 1760 +/* 0D27AC 7F09DC7C 46083280 */ add.s $f10, $f6, $f8 +/* 0D27B0 7F09DC80 46045180 */ add.s $f6, $f10, $f4 +/* 0D27B4 7F09DC84 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D27B8 7F09DC88 A6000028 */ sh $zero, 0x28($s0) +/* 0D27BC 7F09DC8C A60C002A */ sh $t4, 0x2a($s0) +/* 0D27C0 7F09DC90 46003202 */ mul.s $f8, $f6, $f0 +/* 0D27C4 7F09DC94 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D27C8 7F09DC98 4600218D */ trunc.w.s $f6, $f4 +/* 0D27CC 7F09DC9C 440B3000 */ mfc1 $t3, $f6 +/* 0D27D0 7F09DCA0 0FC2D20F */ jal get_room_data_float1 +/* 0D27D4 7F09DCA4 A60B0024 */ sh $t3, 0x24($s0) +/* 0D27D8 7F09DCA8 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0D27DC 7F09DCAC C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D27E0 7F09DCB0 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0D27E4 7F09DCB4 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D27E8 7F09DCB8 46062200 */ add.s $f8, $f4, $f6 +/* 0D27EC 7F09DCBC C6240000 */ lwc1 $f4, ($s1) +/* 0D27F0 7F09DCC0 46004282 */ mul.s $f10, $f8, $f0 +/* 0D27F4 7F09DCC4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D27F8 7F09DCC8 4600320D */ trunc.w.s $f8, $f6 +/* 0D27FC 7F09DCCC 440E4000 */ mfc1 $t6, $f8 +/* 0D2800 7F09DCD0 0FC2D20F */ jal get_room_data_float1 +/* 0D2804 7F09DCD4 A60E0030 */ sh $t6, 0x30($s0) +/* 0D2808 7F09DCD8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0D280C 7F09DCDC C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0D2810 7F09DCE0 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0D2814 7F09DCE4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D2818 7F09DCE8 46083280 */ add.s $f10, $f6, $f8 +/* 0D281C 7F09DCEC C6260004 */ lwc1 $f6, 4($s1) +/* 0D2820 7F09DCF0 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2824 7F09DCF4 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2828 7F09DCF8 4600428D */ trunc.w.s $f10, $f8 +/* 0D282C 7F09DCFC 440F5000 */ mfc1 $t7, $f10 +/* 0D2830 7F09DD00 0FC2D20F */ jal get_room_data_float1 +/* 0D2834 7F09DD04 A60F0032 */ sh $t7, 0x32($s0) +/* 0D2838 7F09DD08 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D283C 7F09DD0C C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0D2840 7F09DD10 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D2844 7F09DD14 240906E0 */ li $t1, 1760 +/* 0D2848 7F09DD18 46062201 */ sub.s $f8, $f4, $f6 +/* 0D284C 7F09DD1C 240D06E0 */ li $t5, 1760 +/* 0D2850 7F09DD20 3C0B0430 */ lui $t3, (0x04300040 >> 16) # lui $t3, 0x430 +/* 0D2854 7F09DD24 356B0040 */ ori $t3, (0x04300040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D2858 7F09DD28 460A4100 */ add.s $f4, $f8, $f10 +/* 0D285C 7F09DD2C C6280008 */ lwc1 $f8, 8($s1) +/* 0D2860 7F09DD30 A6090038 */ sh $t1, 0x38($s0) +/* 0D2864 7F09DD34 A60D003A */ sh $t5, 0x3a($s0) +/* 0D2868 7F09DD38 46002182 */ mul.s $f6, $f4, $f0 +/* 0D286C 7F09DD3C 02402825 */ move $a1, $s2 +/* 0D2870 7F09DD40 26520008 */ addiu $s2, $s2, 8 +/* 0D2874 7F09DD44 02002025 */ move $a0, $s0 +/* 0D2878 7F09DD48 46083281 */ sub.s $f10, $f6, $f8 +/* 0D287C 7F09DD4C 4600510D */ trunc.w.s $f4, $f10 +/* 0D2880 7F09DD50 44082000 */ mfc1 $t0, $f4 +/* 0D2884 7F09DD54 00000000 */ nop +/* 0D2888 7F09DD58 A6080034 */ sh $t0, 0x34($s0) +/* 0D288C 7F09DD5C ACAB0000 */ sw $t3, ($a1) +/* 0D2890 7F09DD60 0C003A2C */ jal osVirtualToPhysical +/* 0D2894 7F09DD64 AFA50038 */ sw $a1, 0x38($sp) +/* 0D2898 7F09DD68 8FA50038 */ lw $a1, 0x38($sp) +/* 0D289C 7F09DD6C 02401825 */ move $v1, $s2 +/* 0D28A0 7F09DD70 3C0CB100 */ lui $t4, (0xB1000032 >> 16) # lui $t4, 0xb100 +/* 0D28A4 7F09DD74 ACA20004 */ sw $v0, 4($a1) +/* 0D28A8 7F09DD78 358C0032 */ ori $t4, (0xB1000032 & 0xFFFF) # ori $t4, $t4, 0x32 +/* 0D28AC 7F09DD7C 24192010 */ li $t9, 8208 +/* 0D28B0 7F09DD80 AC790004 */ sw $t9, 4($v1) +/* 0D28B4 7F09DD84 AC6C0000 */ sw $t4, ($v1) +/* 0D28B8 7F09DD88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D28BC 7F09DD8C 26420008 */ addiu $v0, $s2, 8 +/* 0D28C0 7F09DD90 8FB20020 */ lw $s2, 0x20($sp) +/* 0D28C4 7F09DD94 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D28C8 7F09DD98 8FB00018 */ lw $s0, 0x18($sp) +/* 0D28CC 7F09DD9C 03E00008 */ jr $ra +/* 0D28D0 7F09DDA0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09DDA4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576C0 +.word 0x46ea6000 /*30000.0*/ +glabel D_800576C4 +.word 0x46ea6000 /*30000.0*/ +glabel D_800576C8 +.word 0xc6ea6000 /*-30000.0*/ +.text +glabel sub_GAME_7F09DDA4 +/* 0D28D4 7F09DDA4 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0D28D8 7F09DDA8 3C0F8004 */ lui $t7, %hi(D_80040910) +/* 0D28DC 7F09DDAC AFBF0034 */ sw $ra, 0x34($sp) +/* 0D28E0 7F09DDB0 AFB50030 */ sw $s5, 0x30($sp) +/* 0D28E4 7F09DDB4 AFB4002C */ sw $s4, 0x2c($sp) +/* 0D28E8 7F09DDB8 AFB30028 */ sw $s3, 0x28($sp) +/* 0D28EC 7F09DDBC AFB20024 */ sw $s2, 0x24($sp) +/* 0D28F0 7F09DDC0 AFB10020 */ sw $s1, 0x20($sp) +/* 0D28F4 7F09DDC4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D28F8 7F09DDC8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D28FC 7F09DDCC AFA600E0 */ sw $a2, 0xe0($sp) +/* 0D2900 7F09DDD0 25EF0910 */ addiu $t7, %lo(D_80040910) # addiu $t7, $t7, 0x910 +/* 0D2904 7F09DDD4 8DE10000 */ lw $at, ($t7) +/* 0D2908 7F09DDD8 8DE80004 */ lw $t0, 4($t7) +/* 0D290C 7F09DDDC 27AE00C0 */ addiu $t6, $sp, 0xc0 +/* 0D2910 7F09DDE0 ADC10000 */ sw $at, ($t6) +/* 0D2914 7F09DDE4 ADC80004 */ sw $t0, 4($t6) +/* 0D2918 7F09DDE8 8DE8000C */ lw $t0, 0xc($t7) +/* 0D291C 7F09DDEC 8DE10008 */ lw $at, 8($t7) +/* 0D2920 7F09DDF0 00A08825 */ move $s1, $a1 +/* 0D2924 7F09DDF4 00809025 */ move $s2, $a0 +/* 0D2928 7F09DDF8 00E09825 */ move $s3, $a3 +/* 0D292C 7F09DDFC ADC8000C */ sw $t0, 0xc($t6) +/* 0D2930 7F09DE00 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D2934 7F09DE04 ADC10008 */ sw $at, 8($t6) +/* 0D2938 7F09DE08 0FC227F5 */ jal get_BONDdata_position +/* 0D293C 7F09DE0C AFA200BC */ sw $v0, 0xbc($sp) +/* 0D2940 7F09DE10 AFA20070 */ sw $v0, 0x70($sp) +/* 0D2944 7F09DE14 86490006 */ lh $t1, 6($s2) +/* 0D2948 7F09DE18 24150018 */ li $s5, 24 +/* 0D294C 7F09DE1C 3C148004 */ lui $s4, %hi(D_8004017C) +/* 0D2950 7F09DE20 01350019 */ multu $t1, $s5 +/* 0D2954 7F09DE24 2694017C */ addiu $s4, %lo(D_8004017C) # addiu $s4, $s4, 0x17c +/* 0D2958 7F09DE28 86250024 */ lh $a1, 0x24($s1) +/* 0D295C 7F09DE2C 8FA300BC */ lw $v1, 0xbc($sp) +/* 0D2960 7F09DE30 24180001 */ li $t8, 1 +/* 0D2964 7F09DE34 00005012 */ mflo $t2 +/* 0D2968 7F09DE38 028A5821 */ addu $t3, $s4, $t2 +/* 0D296C 7F09DE3C 85640002 */ lh $a0, 2($t3) +/* 0D2970 7F09DE40 0085082A */ slt $at, $a0, $a1 +/* 0D2974 7F09DE44 5420002C */ bnezl $at, .L7F09DEF8 +/* 0D2978 7F09DE48 4459F800 */ cfc1 $t9, $31 +/* 0D297C 7F09DE4C 44843000 */ mtc1 $a0, $f6 +/* 0D2980 7F09DE50 C6240020 */ lwc1 $f4, 0x20($s1) +/* 0D2984 7F09DE54 240D0001 */ li $t5, 1 +/* 0D2988 7F09DE58 46803220 */ cvt.s.w $f8, $f6 +/* 0D298C 7F09DE5C 44853000 */ mtc1 $a1, $f6 +/* 0D2990 7F09DE60 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D2994 7F09DE64 46082283 */ div.s $f10, $f4, $f8 +/* 0D2998 7F09DE68 46803120 */ cvt.s.w $f4, $f6 +/* 0D299C 7F09DE6C 46045202 */ mul.s $f8, $f10, $f4 +/* 0D29A0 7F09DE70 444CF800 */ cfc1 $t4, $31 +/* 0D29A4 7F09DE74 44CDF800 */ ctc1 $t5, $31 +/* 0D29A8 7F09DE78 00000000 */ nop +/* 0D29AC 7F09DE7C 460041A4 */ cvt.w.s $f6, $f8 +/* 0D29B0 7F09DE80 444DF800 */ cfc1 $t5, $31 +/* 0D29B4 7F09DE84 00000000 */ nop +/* 0D29B8 7F09DE88 31AD0078 */ andi $t5, $t5, 0x78 +/* 0D29BC 7F09DE8C 51A00013 */ beql $t5, $zero, .L7F09DEDC +/* 0D29C0 7F09DE90 440D3000 */ mfc1 $t5, $f6 +/* 0D29C4 7F09DE94 44813000 */ mtc1 $at, $f6 +/* 0D29C8 7F09DE98 240D0001 */ li $t5, 1 +/* 0D29CC 7F09DE9C 46064181 */ sub.s $f6, $f8, $f6 +/* 0D29D0 7F09DEA0 44CDF800 */ ctc1 $t5, $31 +/* 0D29D4 7F09DEA4 00000000 */ nop +/* 0D29D8 7F09DEA8 460031A4 */ cvt.w.s $f6, $f6 +/* 0D29DC 7F09DEAC 444DF800 */ cfc1 $t5, $31 +/* 0D29E0 7F09DEB0 00000000 */ nop +/* 0D29E4 7F09DEB4 31AD0078 */ andi $t5, $t5, 0x78 +/* 0D29E8 7F09DEB8 15A00005 */ bnez $t5, .L7F09DED0 +/* 0D29EC 7F09DEBC 00000000 */ nop +/* 0D29F0 7F09DEC0 440D3000 */ mfc1 $t5, $f6 +/* 0D29F4 7F09DEC4 3C018000 */ lui $at, 0x8000 +/* 0D29F8 7F09DEC8 10000007 */ b .L7F09DEE8 +/* 0D29FC 7F09DECC 01A16825 */ or $t5, $t5, $at +.L7F09DED0: +/* 0D2A00 7F09DED0 10000005 */ b .L7F09DEE8 +/* 0D2A04 7F09DED4 240DFFFF */ li $t5, -1 +/* 0D2A08 7F09DED8 440D3000 */ mfc1 $t5, $f6 +.L7F09DEDC: +/* 0D2A0C 7F09DEDC 00000000 */ nop +/* 0D2A10 7F09DEE0 05A0FFFB */ bltz $t5, .L7F09DED0 +/* 0D2A14 7F09DEE4 00000000 */ nop +.L7F09DEE8: +/* 0D2A18 7F09DEE8 44CCF800 */ ctc1 $t4, $31 +/* 0D2A1C 7F09DEEC 10000023 */ b .L7F09DF7C +/* 0D2A20 7F09DEF0 A3AD0077 */ sb $t5, 0x77($sp) +/* 0D2A24 7F09DEF4 4459F800 */ cfc1 $t9, $31 +.L7F09DEF8: +/* 0D2A28 7F09DEF8 44D8F800 */ ctc1 $t8, $31 +/* 0D2A2C 7F09DEFC C62A0020 */ lwc1 $f10, 0x20($s1) +/* 0D2A30 7F09DF00 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D2A34 7F09DF04 46005124 */ cvt.w.s $f4, $f10 +/* 0D2A38 7F09DF08 4458F800 */ cfc1 $t8, $31 +/* 0D2A3C 7F09DF0C 00000000 */ nop +/* 0D2A40 7F09DF10 33180078 */ andi $t8, $t8, 0x78 +/* 0D2A44 7F09DF14 53000013 */ beql $t8, $zero, .L7F09DF64 +/* 0D2A48 7F09DF18 44182000 */ mfc1 $t8, $f4 +/* 0D2A4C 7F09DF1C 44812000 */ mtc1 $at, $f4 +/* 0D2A50 7F09DF20 24180001 */ li $t8, 1 +/* 0D2A54 7F09DF24 46045101 */ sub.s $f4, $f10, $f4 +/* 0D2A58 7F09DF28 44D8F800 */ ctc1 $t8, $31 +/* 0D2A5C 7F09DF2C 00000000 */ nop +/* 0D2A60 7F09DF30 46002124 */ cvt.w.s $f4, $f4 +/* 0D2A64 7F09DF34 4458F800 */ cfc1 $t8, $31 +/* 0D2A68 7F09DF38 00000000 */ nop +/* 0D2A6C 7F09DF3C 33180078 */ andi $t8, $t8, 0x78 +/* 0D2A70 7F09DF40 17000005 */ bnez $t8, .L7F09DF58 +/* 0D2A74 7F09DF44 00000000 */ nop +/* 0D2A78 7F09DF48 44182000 */ mfc1 $t8, $f4 +/* 0D2A7C 7F09DF4C 3C018000 */ lui $at, 0x8000 +/* 0D2A80 7F09DF50 10000007 */ b .L7F09DF70 +/* 0D2A84 7F09DF54 0301C025 */ or $t8, $t8, $at +.L7F09DF58: +/* 0D2A88 7F09DF58 10000005 */ b .L7F09DF70 +/* 0D2A8C 7F09DF5C 2418FFFF */ li $t8, -1 +/* 0D2A90 7F09DF60 44182000 */ mfc1 $t8, $f4 +.L7F09DF64: +/* 0D2A94 7F09DF64 00000000 */ nop +/* 0D2A98 7F09DF68 0700FFFB */ bltz $t8, .L7F09DF58 +/* 0D2A9C 7F09DF6C 00000000 */ nop +.L7F09DF70: +/* 0D2AA0 7F09DF70 44D9F800 */ ctc1 $t9, $31 +/* 0D2AA4 7F09DF74 A3B80077 */ sb $t8, 0x77($sp) +/* 0D2AA8 7F09DF78 00000000 */ nop +.L7F09DF7C: +/* 0D2AAC 7F09DF7C 24040004 */ li $a0, 4 +/* 0D2AB0 7F09DF80 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D2AB4 7F09DF84 AFA300BC */ sw $v1, 0xbc($sp) +/* 0D2AB8 7F09DF88 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0D2ABC 7F09DF8C 8C810000 */ lw $at, ($a0) +/* 0D2AC0 7F09DF90 00408025 */ move $s0, $v0 +/* 0D2AC4 7F09DF94 AC410000 */ sw $at, ($v0) +/* 0D2AC8 7F09DF98 8C880004 */ lw $t0, 4($a0) +/* 0D2ACC 7F09DF9C AC480004 */ sw $t0, 4($v0) +/* 0D2AD0 7F09DFA0 8C810008 */ lw $at, 8($a0) +/* 0D2AD4 7F09DFA4 AC410008 */ sw $at, 8($v0) +/* 0D2AD8 7F09DFA8 8C88000C */ lw $t0, 0xc($a0) +/* 0D2ADC 7F09DFAC AC48000C */ sw $t0, 0xc($v0) +/* 0D2AE0 7F09DFB0 8C810000 */ lw $at, ($a0) +/* 0D2AE4 7F09DFB4 AC410010 */ sw $at, 0x10($v0) +/* 0D2AE8 7F09DFB8 8C8B0004 */ lw $t3, 4($a0) +/* 0D2AEC 7F09DFBC AC4B0014 */ sw $t3, 0x14($v0) +/* 0D2AF0 7F09DFC0 8C810008 */ lw $at, 8($a0) +/* 0D2AF4 7F09DFC4 AC410018 */ sw $at, 0x18($v0) +/* 0D2AF8 7F09DFC8 8C8B000C */ lw $t3, 0xc($a0) +/* 0D2AFC 7F09DFCC AC4B001C */ sw $t3, 0x1c($v0) +/* 0D2B00 7F09DFD0 8C810000 */ lw $at, ($a0) +/* 0D2B04 7F09DFD4 AC410020 */ sw $at, 0x20($v0) +/* 0D2B08 7F09DFD8 8C990004 */ lw $t9, 4($a0) +/* 0D2B0C 7F09DFDC AC590024 */ sw $t9, 0x24($v0) +/* 0D2B10 7F09DFE0 8C810008 */ lw $at, 8($a0) +/* 0D2B14 7F09DFE4 AC410028 */ sw $at, 0x28($v0) +/* 0D2B18 7F09DFE8 8C99000C */ lw $t9, 0xc($a0) +/* 0D2B1C 7F09DFEC AC59002C */ sw $t9, 0x2c($v0) +/* 0D2B20 7F09DFF0 8C810000 */ lw $at, ($a0) +/* 0D2B24 7F09DFF4 AC410030 */ sw $at, 0x30($v0) +/* 0D2B28 7F09DFF8 8C8E0004 */ lw $t6, 4($a0) +/* 0D2B2C 7F09DFFC AC4E0034 */ sw $t6, 0x34($v0) +/* 0D2B30 7F09E000 8C810008 */ lw $at, 8($a0) +/* 0D2B34 7F09E004 AC410038 */ sw $at, 0x38($v0) +/* 0D2B38 7F09E008 8C8E000C */ lw $t6, 0xc($a0) +/* 0D2B3C 7F09E00C AC4E003C */ sw $t6, 0x3c($v0) +/* 0D2B40 7F09E010 0FC15FA8 */ jal cosf +/* 0D2B44 7F09E014 C62C0010 */ lwc1 $f12, 0x10($s1) +/* 0D2B48 7F09E018 C628000C */ lwc1 $f8, 0xc($s1) +/* 0D2B4C 7F09E01C C62C0010 */ lwc1 $f12, 0x10($s1) +/* 0D2B50 7F09E020 46080382 */ mul.s $f14, $f0, $f8 +/* 0D2B54 7F09E024 0FC15FAB */ jal sinf +/* 0D2B58 7F09E028 E7AE0088 */ swc1 $f14, 0x88($sp) +/* 0D2B5C 7F09E02C C626000C */ lwc1 $f6, 0xc($s1) +/* 0D2B60 7F09E030 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 0D2B64 7F09E034 46060402 */ mul.s $f16, $f0, $f6 +/* 0D2B68 7F09E038 0FC15FAB */ jal sinf +/* 0D2B6C 7F09E03C E7B00084 */ swc1 $f16, 0x84($sp) +/* 0D2B70 7F09E040 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0D2B74 7F09E044 44815000 */ mtc1 $at, $f10 +/* 0D2B78 7F09E048 C6280000 */ lwc1 $f8, ($s1) +/* 0D2B7C 7F09E04C 460A0102 */ mul.s $f4, $f0, $f10 +/* 0D2B80 7F09E050 46082180 */ add.s $f6, $f4, $f8 +/* 0D2B84 7F09E054 E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D2B88 7F09E058 C62A0004 */ lwc1 $f10, 4($s1) +/* 0D2B8C 7F09E05C E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0D2B90 7F09E060 0FC15FAB */ jal sinf +/* 0D2B94 7F09E064 C62C001C */ lwc1 $f12, 0x1c($s1) +/* 0D2B98 7F09E068 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0D2B9C 7F09E06C 44812000 */ mtc1 $at, $f4 +/* 0D2BA0 7F09E070 C6260008 */ lwc1 $f6, 8($s1) +/* 0D2BA4 7F09E074 8FA20070 */ lw $v0, 0x70($sp) +/* 0D2BA8 7F09E078 46040202 */ mul.s $f8, $f0, $f4 +/* 0D2BAC 7F09E07C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D2BB0 7F09E080 46064280 */ add.s $f10, $f8, $f6 +/* 0D2BB4 7F09E084 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2BB8 7F09E088 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D2BBC 7F09E08C C4480000 */ lwc1 $f8, ($v0) +/* 0D2BC0 7F09E090 46082501 */ sub.s $f20, $f4, $f8 +/* 0D2BC4 7F09E094 C4440004 */ lwc1 $f4, 4($v0) +/* 0D2BC8 7F09E098 C4480008 */ lwc1 $f8, 8($v0) +/* 0D2BCC 7F09E09C 46043481 */ sub.s $f18, $f6, $f4 +/* 0D2BD0 7F09E0A0 4614A182 */ mul.s $f6, $f20, $f20 +/* 0D2BD4 7F09E0A4 46085081 */ sub.s $f2, $f10, $f8 +/* 0D2BD8 7F09E0A8 46129102 */ mul.s $f4, $f18, $f18 +/* 0D2BDC 7F09E0AC E7B20068 */ swc1 $f18, 0x68($sp) +/* 0D2BE0 7F09E0B0 46021202 */ mul.s $f8, $f2, $f2 +/* 0D2BE4 7F09E0B4 E7A20064 */ swc1 $f2, 0x64($sp) +/* 0D2BE8 7F09E0B8 46043280 */ add.s $f10, $f6, $f4 +/* 0D2BEC 7F09E0BC 0C007DF8 */ jal sqrtf +/* 0D2BF0 7F09E0C0 46085300 */ add.s $f12, $f10, $f8 +/* 0D2BF4 7F09E0C4 3C018005 */ lui $at, %hi(D_800576C0) +/* 0D2BF8 7F09E0C8 C42676C0 */ lwc1 $f6, %lo(D_800576C0)($at) +/* 0D2BFC 7F09E0CC 8FA300BC */ lw $v1, 0xbc($sp) +/* 0D2C00 7F09E0D0 C7AE0088 */ lwc1 $f14, 0x88($sp) +/* 0D2C04 7F09E0D4 4600303C */ c.lt.s $f6, $f0 +/* 0D2C08 7F09E0D8 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0D2C0C 7F09E0DC C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D2C10 7F09E0E0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D2C14 7F09E0E4 45020004 */ bc1fl .L7F09E0F8 +/* 0D2C18 7F09E0E8 44812000 */ mtc1 $at, $f4 +/* 0D2C1C 7F09E0EC 1000017A */ b .L7F09E6D8 +/* 0D2C20 7F09E0F0 8FA200E0 */ lw $v0, 0xe0($sp) +/* 0D2C24 7F09E0F4 44812000 */ mtc1 $at, $f4 +.L7F09E0F8: +/* 0D2C28 7F09E0F8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D2C2C 7F09E0FC 44815000 */ mtc1 $at, $f10 +/* 0D2C30 7F09E100 46040302 */ mul.s $f12, $f0, $f4 +/* 0D2C34 7F09E104 44804000 */ mtc1 $zero, $f8 +/* 0D2C38 7F09E108 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D2C3C 7F09E10C 460C503C */ c.lt.s $f10, $f12 +/* 0D2C40 7F09E110 00000000 */ nop +/* 0D2C44 7F09E114 45020004 */ bc1fl .L7F09E128 +/* 0D2C48 7F09E118 46080032 */ c.eq.s $f0, $f8 +/* 0D2C4C 7F09E11C 44816000 */ mtc1 $at, $f12 +/* 0D2C50 7F09E120 00000000 */ nop +/* 0D2C54 7F09E124 46080032 */ c.eq.s $f0, $f8 +.L7F09E128: +/* 0D2C58 7F09E128 00000000 */ nop +/* 0D2C5C 7F09E12C 45020005 */ bc1fl .L7F09E144 +/* 0D2C60 7F09E130 460C0181 */ sub.s $f6, $f0, $f12 +/* 0D2C64 7F09E134 44801000 */ mtc1 $zero, $f2 +/* 0D2C68 7F09E138 10000003 */ b .L7F09E148 +/* 0D2C6C 7F09E13C 00000000 */ nop +/* 0D2C70 7F09E140 460C0181 */ sub.s $f6, $f0, $f12 +.L7F09E144: +/* 0D2C74 7F09E144 46003083 */ div.s $f2, $f6, $f0 +.L7F09E148: +/* 0D2C78 7F09E148 46027382 */ mul.s $f14, $f14, $f2 +/* 0D2C7C 7F09E14C 8FA20070 */ lw $v0, 0x70($sp) +/* 0D2C80 7F09E150 46028402 */ mul.s $f16, $f16, $f2 +/* 0D2C84 7F09E154 C4440000 */ lwc1 $f4, ($v0) +/* 0D2C88 7F09E158 4602A282 */ mul.s $f10, $f20, $f2 +/* 0D2C8C 7F09E15C 460A2200 */ add.s $f8, $f4, $f10 +/* 0D2C90 7F09E160 46029102 */ mul.s $f4, $f18, $f2 +/* 0D2C94 7F09E164 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0D2C98 7F09E168 C4460004 */ lwc1 $f6, 4($v0) +/* 0D2C9C 7F09E16C 46043280 */ add.s $f10, $f6, $f4 +/* 0D2CA0 7F09E170 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0D2CA4 7F09E174 46023102 */ mul.s $f4, $f6, $f2 +/* 0D2CA8 7F09E178 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0D2CAC 7F09E17C C4480008 */ lwc1 $f8, 8($v0) +/* 0D2CB0 7F09E180 46044280 */ add.s $f10, $f8, $f4 +/* 0D2CB4 7F09E184 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D2CB8 7F09E188 C4660000 */ lwc1 $f6, ($v1) +/* 0D2CBC 7F09E18C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2CC0 7F09E190 E7A800B0 */ swc1 $f8, 0xb0($sp) +/* 0D2CC4 7F09E194 C4640004 */ lwc1 $f4, 4($v1) +/* 0D2CC8 7F09E198 460E2282 */ mul.s $f10, $f4, $f14 +/* 0D2CCC 7F09E19C E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0D2CD0 7F09E1A0 C4660008 */ lwc1 $f6, 8($v1) +/* 0D2CD4 7F09E1A4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2CD8 7F09E1A8 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0D2CDC 7F09E1AC C4640000 */ lwc1 $f4, ($v1) +/* 0D2CE0 7F09E1B0 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2CE4 7F09E1B4 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0D2CE8 7F09E1B8 C4660004 */ lwc1 $f6, 4($v1) +/* 0D2CEC 7F09E1BC 46103202 */ mul.s $f8, $f6, $f16 +/* 0D2CF0 7F09E1C0 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0D2CF4 7F09E1C4 C4640008 */ lwc1 $f4, 8($v1) +/* 0D2CF8 7F09E1C8 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2CFC 7F09E1CC E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0D2D00 7F09E1D0 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D2D04 7F09E1D4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2D08 7F09E1D8 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0D2D0C 7F09E1DC C4640014 */ lwc1 $f4, 0x14($v1) +/* 0D2D10 7F09E1E0 460E2282 */ mul.s $f10, $f4, $f14 +/* 0D2D14 7F09E1E4 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0D2D18 7F09E1E8 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0D2D1C 7F09E1EC 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2D20 7F09E1F0 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0D2D24 7F09E1F4 C4640010 */ lwc1 $f4, 0x10($v1) +/* 0D2D28 7F09E1F8 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2D2C 7F09E1FC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 0D2D30 7F09E200 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0D2D34 7F09E204 46103202 */ mul.s $f8, $f6, $f16 +/* 0D2D38 7F09E208 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0D2D3C 7F09E20C C4640018 */ lwc1 $f4, 0x18($v1) +/* 0D2D40 7F09E210 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2D44 7F09E214 0FC2D20F */ jal get_room_data_float1 +/* 0D2D48 7F09E218 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0D2D4C 7F09E21C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0D2D50 7F09E220 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0D2D54 7F09E224 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D2D58 7F09E228 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D2D5C 7F09E22C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2D60 7F09E230 4481A000 */ mtc1 $at, $f20 +/* 0D2D64 7F09E234 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2D68 7F09E238 C6640000 */ lwc1 $f4, ($s3) +/* 0D2D6C 7F09E23C 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2D70 7F09E240 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2D74 7F09E244 46145082 */ mul.s $f2, $f10, $f20 +/* 0D2D78 7F09E248 0FC2D20F */ jal get_room_data_float1 +/* 0D2D7C 7F09E24C E7A20054 */ swc1 $f2, 0x54($sp) +/* 0D2D80 7F09E250 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2D84 7F09E254 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0D2D88 7F09E258 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D2D8C 7F09E25C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2D90 7F09E260 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2D94 7F09E264 C6640004 */ lwc1 $f4, 4($s3) +/* 0D2D98 7F09E268 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2D9C 7F09E26C 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2DA0 7F09E270 46145302 */ mul.s $f12, $f10, $f20 +/* 0D2DA4 7F09E274 0FC2D20F */ jal get_room_data_float1 +/* 0D2DA8 7F09E278 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0D2DAC 7F09E27C C7A60078 */ lwc1 $f6, 0x78($sp) +/* 0D2DB0 7F09E280 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 0D2DB4 7F09E284 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0D2DB8 7F09E288 3C018005 */ lui $at, %hi(D_800576C4) +/* 0D2DBC 7F09E28C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2DC0 7F09E290 C43076C4 */ lwc1 $f16, %lo(D_800576C4)($at) +/* 0D2DC4 7F09E294 C7A20054 */ lwc1 $f2, 0x54($sp) +/* 0D2DC8 7F09E298 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0D2DCC 7F09E29C 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2DD0 7F09E2A0 C6640008 */ lwc1 $f4, 8($s3) +/* 0D2DD4 7F09E2A4 3C018005 */ lui $at, %hi(D_800576C8) +/* 0D2DD8 7F09E2A8 4602803C */ c.lt.s $f16, $f2 +/* 0D2DDC 7F09E2AC 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2DE0 7F09E2B0 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2DE4 7F09E2B4 46145382 */ mul.s $f14, $f10, $f20 +/* 0D2DE8 7F09E2B8 45010016 */ bc1t .L7F09E314 +/* 0D2DEC 7F09E2BC 00000000 */ nop +/* 0D2DF0 7F09E2C0 C42076C8 */ lwc1 $f0, %lo(D_800576C8)($at) +/* 0D2DF4 7F09E2C4 4600103C */ c.lt.s $f2, $f0 +/* 0D2DF8 7F09E2C8 00000000 */ nop +/* 0D2DFC 7F09E2CC 45010011 */ bc1t .L7F09E314 +/* 0D2E00 7F09E2D0 00000000 */ nop +/* 0D2E04 7F09E2D4 460C803C */ c.lt.s $f16, $f12 +/* 0D2E08 7F09E2D8 00000000 */ nop +/* 0D2E0C 7F09E2DC 4501000D */ bc1t .L7F09E314 +/* 0D2E10 7F09E2E0 00000000 */ nop +/* 0D2E14 7F09E2E4 4600603C */ c.lt.s $f12, $f0 +/* 0D2E18 7F09E2E8 00000000 */ nop +/* 0D2E1C 7F09E2EC 45010009 */ bc1t .L7F09E314 +/* 0D2E20 7F09E2F0 00000000 */ nop +/* 0D2E24 7F09E2F4 460E803C */ c.lt.s $f16, $f14 +/* 0D2E28 7F09E2F8 00000000 */ nop +/* 0D2E2C 7F09E2FC 45010005 */ bc1t .L7F09E314 +/* 0D2E30 7F09E300 00000000 */ nop +/* 0D2E34 7F09E304 4600703C */ c.lt.s $f14, $f0 +/* 0D2E38 7F09E308 00000000 */ nop +/* 0D2E3C 7F09E30C 45020004 */ bc1fl .L7F09E320 +/* 0D2E40 7F09E310 4600118D */ trunc.w.s $f6, $f2 +.L7F09E314: +/* 0D2E44 7F09E314 100000F0 */ b .L7F09E6D8 +/* 0D2E48 7F09E318 8FA200E0 */ lw $v0, 0xe0($sp) +/* 0D2E4C 7F09E31C 4600118D */ trunc.w.s $f6, $f2 +.L7F09E320: +/* 0D2E50 7F09E320 241906E0 */ li $t9, 1760 +/* 0D2E54 7F09E324 A6190008 */ sh $t9, 8($s0) +/* 0D2E58 7F09E328 4600620D */ trunc.w.s $f8, $f12 +/* 0D2E5C 7F09E32C 440A3000 */ mfc1 $t2, $f6 +/* 0D2E60 7F09E330 A600000A */ sh $zero, 0xa($s0) +/* 0D2E64 7F09E334 4600710D */ trunc.w.s $f4, $f14 +/* 0D2E68 7F09E338 440B4000 */ mfc1 $t3, $f8 +/* 0D2E6C 7F09E33C A60A0000 */ sh $t2, ($s0) +/* 0D2E70 7F09E340 440C2000 */ mfc1 $t4, $f4 +/* 0D2E74 7F09E344 A60B0002 */ sh $t3, 2($s0) +/* 0D2E78 7F09E348 A60C0004 */ sh $t4, 4($s0) +/* 0D2E7C 7F09E34C 864F0006 */ lh $t7, 6($s2) +/* 0D2E80 7F09E350 01F50019 */ multu $t7, $s5 +/* 0D2E84 7F09E354 0000C012 */ mflo $t8 +/* 0D2E88 7F09E358 02987021 */ addu $t6, $s4, $t8 +/* 0D2E8C 7F09E35C 91C8000C */ lbu $t0, 0xc($t6) +/* 0D2E90 7F09E360 A208000C */ sb $t0, 0xc($s0) +/* 0D2E94 7F09E364 864A0006 */ lh $t2, 6($s2) +/* 0D2E98 7F09E368 01550019 */ multu $t2, $s5 +/* 0D2E9C 7F09E36C 00004812 */ mflo $t1 +/* 0D2EA0 7F09E370 02895821 */ addu $t3, $s4, $t1 +/* 0D2EA4 7F09E374 916D000D */ lbu $t5, 0xd($t3) +/* 0D2EA8 7F09E378 A20D000D */ sb $t5, 0xd($s0) +/* 0D2EAC 7F09E37C 864C0006 */ lh $t4, 6($s2) +/* 0D2EB0 7F09E380 01950019 */ multu $t4, $s5 +/* 0D2EB4 7F09E384 0000C812 */ mflo $t9 +/* 0D2EB8 7F09E388 02997821 */ addu $t7, $s4, $t9 +/* 0D2EBC 7F09E38C 91F8000E */ lbu $t8, 0xe($t7) +/* 0D2EC0 7F09E390 A218000E */ sb $t8, 0xe($s0) +/* 0D2EC4 7F09E394 93AE0077 */ lbu $t6, 0x77($sp) +/* 0D2EC8 7F09E398 0FC2D20F */ jal get_room_data_float1 +/* 0D2ECC 7F09E39C A20E000F */ sb $t6, 0xf($s0) +/* 0D2ED0 7F09E3A0 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D2ED4 7F09E3A4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0D2ED8 7F09E3A8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0D2EDC 7F09E3AC 46065200 */ add.s $f8, $f10, $f6 +/* 0D2EE0 7F09E3B0 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2EE4 7F09E3B4 C6680000 */ lwc1 $f8, ($s3) +/* 0D2EE8 7F09E3B8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D2EEC 7F09E3BC 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2EF0 7F09E3C0 46142282 */ mul.s $f10, $f4, $f20 +/* 0D2EF4 7F09E3C4 4600518D */ trunc.w.s $f6, $f10 +/* 0D2EF8 7F09E3C8 440A3000 */ mfc1 $t2, $f6 +/* 0D2EFC 7F09E3CC 0FC2D20F */ jal get_room_data_float1 +/* 0D2F00 7F09E3D0 A60A0010 */ sh $t2, 0x10($s0) +/* 0D2F04 7F09E3D4 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0D2F08 7F09E3D8 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D2F0C 7F09E3DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D2F10 7F09E3E0 46044280 */ add.s $f10, $f8, $f4 +/* 0D2F14 7F09E3E4 46065201 */ sub.s $f8, $f10, $f6 +/* 0D2F18 7F09E3E8 C66A0004 */ lwc1 $f10, 4($s3) +/* 0D2F1C 7F09E3EC 46004102 */ mul.s $f4, $f8, $f0 +/* 0D2F20 7F09E3F0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2F24 7F09E3F4 46143202 */ mul.s $f8, $f6, $f20 +/* 0D2F28 7F09E3F8 4600410D */ trunc.w.s $f4, $f8 +/* 0D2F2C 7F09E3FC 440B2000 */ mfc1 $t3, $f4 +/* 0D2F30 7F09E400 0FC2D20F */ jal get_room_data_float1 +/* 0D2F34 7F09E404 A60B0012 */ sh $t3, 0x12($s0) +/* 0D2F38 7F09E408 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0D2F3C 7F09E40C C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0D2F40 7F09E410 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D2F44 7F09E414 46065200 */ add.s $f8, $f10, $f6 +/* 0D2F48 7F09E418 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2F4C 7F09E41C C6680008 */ lwc1 $f8, 8($s3) +/* 0D2F50 7F09E420 A6000018 */ sh $zero, 0x18($s0) +/* 0D2F54 7F09E424 A600001A */ sh $zero, 0x1a($s0) +/* 0D2F58 7F09E428 46005182 */ mul.s $f6, $f10, $f0 +/* 0D2F5C 7F09E42C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2F60 7F09E430 46142282 */ mul.s $f10, $f4, $f20 +/* 0D2F64 7F09E434 4600518D */ trunc.w.s $f6, $f10 +/* 0D2F68 7F09E438 440C3000 */ mfc1 $t4, $f6 +/* 0D2F6C 7F09E43C 00000000 */ nop +/* 0D2F70 7F09E440 A60C0014 */ sh $t4, 0x14($s0) +/* 0D2F74 7F09E444 86590006 */ lh $t9, 6($s2) +/* 0D2F78 7F09E448 03350019 */ multu $t9, $s5 +/* 0D2F7C 7F09E44C 00007812 */ mflo $t7 +/* 0D2F80 7F09E450 028FC021 */ addu $t8, $s4, $t7 +/* 0D2F84 7F09E454 930E000C */ lbu $t6, 0xc($t8) +/* 0D2F88 7F09E458 A20E001C */ sb $t6, 0x1c($s0) +/* 0D2F8C 7F09E45C 86480006 */ lh $t0, 6($s2) +/* 0D2F90 7F09E460 01150019 */ multu $t0, $s5 +/* 0D2F94 7F09E464 00005012 */ mflo $t2 +/* 0D2F98 7F09E468 028A4821 */ addu $t1, $s4, $t2 +/* 0D2F9C 7F09E46C 912B000D */ lbu $t3, 0xd($t1) +/* 0D2FA0 7F09E470 A20B001D */ sb $t3, 0x1d($s0) +/* 0D2FA4 7F09E474 864D0006 */ lh $t5, 6($s2) +/* 0D2FA8 7F09E478 01B50019 */ multu $t5, $s5 +/* 0D2FAC 7F09E47C 00006012 */ mflo $t4 +/* 0D2FB0 7F09E480 028CC821 */ addu $t9, $s4, $t4 +/* 0D2FB4 7F09E484 932F000E */ lbu $t7, 0xe($t9) +/* 0D2FB8 7F09E488 A20F001E */ sb $t7, 0x1e($s0) +/* 0D2FBC 7F09E48C 93B80077 */ lbu $t8, 0x77($sp) +/* 0D2FC0 7F09E490 0FC2D20F */ jal get_room_data_float1 +/* 0D2FC4 7F09E494 A218001F */ sb $t8, 0x1f($s0) +/* 0D2FC8 7F09E498 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0D2FCC 7F09E49C C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0D2FD0 7F09E4A0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0D2FD4 7F09E4A4 46044280 */ add.s $f10, $f8, $f4 +/* 0D2FD8 7F09E4A8 46065200 */ add.s $f8, $f10, $f6 +/* 0D2FDC 7F09E4AC C66A0000 */ lwc1 $f10, ($s3) +/* 0D2FE0 7F09E4B0 46004102 */ mul.s $f4, $f8, $f0 +/* 0D2FE4 7F09E4B4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2FE8 7F09E4B8 46143202 */ mul.s $f8, $f6, $f20 +/* 0D2FEC 7F09E4BC 4600410D */ trunc.w.s $f4, $f8 +/* 0D2FF0 7F09E4C0 44082000 */ mfc1 $t0, $f4 +/* 0D2FF4 7F09E4C4 0FC2D20F */ jal get_room_data_float1 +/* 0D2FF8 7F09E4C8 A6080020 */ sh $t0, 0x20($s0) +/* 0D2FFC 7F09E4CC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D3000 7F09E4D0 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0D3004 7F09E4D4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0D3008 7F09E4D8 46065200 */ add.s $f8, $f10, $f6 +/* 0D300C 7F09E4DC 46044280 */ add.s $f10, $f8, $f4 +/* 0D3010 7F09E4E0 C6680004 */ lwc1 $f8, 4($s3) +/* 0D3014 7F09E4E4 46005182 */ mul.s $f6, $f10, $f0 +/* 0D3018 7F09E4E8 46083101 */ sub.s $f4, $f6, $f8 +/* 0D301C 7F09E4EC 46142282 */ mul.s $f10, $f4, $f20 +/* 0D3020 7F09E4F0 4600518D */ trunc.w.s $f6, $f10 +/* 0D3024 7F09E4F4 44093000 */ mfc1 $t1, $f6 +/* 0D3028 7F09E4F8 0FC2D20F */ jal get_room_data_float1 +/* 0D302C 7F09E4FC A6090022 */ sh $t1, 0x22($s0) +/* 0D3030 7F09E500 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0D3034 7F09E504 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0D3038 7F09E508 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 0D303C 7F09E50C 240C06E0 */ li $t4, 1760 +/* 0D3040 7F09E510 46044280 */ add.s $f10, $f8, $f4 +/* 0D3044 7F09E514 46065200 */ add.s $f8, $f10, $f6 +/* 0D3048 7F09E518 C66A0008 */ lwc1 $f10, 8($s3) +/* 0D304C 7F09E51C A6000028 */ sh $zero, 0x28($s0) +/* 0D3050 7F09E520 A60C002A */ sh $t4, 0x2a($s0) +/* 0D3054 7F09E524 46004102 */ mul.s $f4, $f8, $f0 +/* 0D3058 7F09E528 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D305C 7F09E52C 46143202 */ mul.s $f8, $f6, $f20 +/* 0D3060 7F09E530 4600410D */ trunc.w.s $f4, $f8 +/* 0D3064 7F09E534 440D2000 */ mfc1 $t5, $f4 +/* 0D3068 7F09E538 00000000 */ nop +/* 0D306C 7F09E53C A60D0024 */ sh $t5, 0x24($s0) +/* 0D3070 7F09E540 86590006 */ lh $t9, 6($s2) +/* 0D3074 7F09E544 03350019 */ multu $t9, $s5 +/* 0D3078 7F09E548 00007812 */ mflo $t7 +/* 0D307C 7F09E54C 028FC021 */ addu $t8, $s4, $t7 +/* 0D3080 7F09E550 930E000C */ lbu $t6, 0xc($t8) +/* 0D3084 7F09E554 A20E002C */ sb $t6, 0x2c($s0) +/* 0D3088 7F09E558 86480006 */ lh $t0, 6($s2) +/* 0D308C 7F09E55C 01150019 */ multu $t0, $s5 +/* 0D3090 7F09E560 00005012 */ mflo $t2 +/* 0D3094 7F09E564 028A4821 */ addu $t1, $s4, $t2 +/* 0D3098 7F09E568 912B000D */ lbu $t3, 0xd($t1) +/* 0D309C 7F09E56C A20B002D */ sb $t3, 0x2d($s0) +/* 0D30A0 7F09E570 864D0006 */ lh $t5, 6($s2) +/* 0D30A4 7F09E574 01B50019 */ multu $t5, $s5 +/* 0D30A8 7F09E578 00006012 */ mflo $t4 +/* 0D30AC 7F09E57C 028CC821 */ addu $t9, $s4, $t4 +/* 0D30B0 7F09E580 932F000E */ lbu $t7, 0xe($t9) +/* 0D30B4 7F09E584 A20F002E */ sb $t7, 0x2e($s0) +/* 0D30B8 7F09E588 93B80077 */ lbu $t8, 0x77($sp) +/* 0D30BC 7F09E58C 0FC2D20F */ jal get_room_data_float1 +/* 0D30C0 7F09E590 A218002F */ sb $t8, 0x2f($s0) +/* 0D30C4 7F09E594 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D30C8 7F09E598 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0D30CC 7F09E59C C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0D30D0 7F09E5A0 46065201 */ sub.s $f8, $f10, $f6 +/* 0D30D4 7F09E5A4 46044280 */ add.s $f10, $f8, $f4 +/* 0D30D8 7F09E5A8 C6680000 */ lwc1 $f8, ($s3) +/* 0D30DC 7F09E5AC 46005182 */ mul.s $f6, $f10, $f0 +/* 0D30E0 7F09E5B0 46083101 */ sub.s $f4, $f6, $f8 +/* 0D30E4 7F09E5B4 46142282 */ mul.s $f10, $f4, $f20 +/* 0D30E8 7F09E5B8 4600518D */ trunc.w.s $f6, $f10 +/* 0D30EC 7F09E5BC 44083000 */ mfc1 $t0, $f6 +/* 0D30F0 7F09E5C0 0FC2D20F */ jal get_room_data_float1 +/* 0D30F4 7F09E5C4 A6080030 */ sh $t0, 0x30($s0) +/* 0D30F8 7F09E5C8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0D30FC 7F09E5CC C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D3100 7F09E5D0 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D3104 7F09E5D4 46044281 */ sub.s $f10, $f8, $f4 +/* 0D3108 7F09E5D8 46065200 */ add.s $f8, $f10, $f6 +/* 0D310C 7F09E5DC C66A0004 */ lwc1 $f10, 4($s3) +/* 0D3110 7F09E5E0 46004102 */ mul.s $f4, $f8, $f0 +/* 0D3114 7F09E5E4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D3118 7F09E5E8 46143202 */ mul.s $f8, $f6, $f20 +/* 0D311C 7F09E5EC 4600410D */ trunc.w.s $f4, $f8 +/* 0D3120 7F09E5F0 44092000 */ mfc1 $t1, $f4 +/* 0D3124 7F09E5F4 0FC2D20F */ jal get_room_data_float1 +/* 0D3128 7F09E5F8 A6090032 */ sh $t1, 0x32($s0) +/* 0D312C 7F09E5FC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0D3130 7F09E600 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0D3134 7F09E604 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D3138 7F09E608 240C06E0 */ li $t4, 1760 +/* 0D313C 7F09E60C 46065201 */ sub.s $f8, $f10, $f6 +/* 0D3140 7F09E610 241906E0 */ li $t9, 1760 +/* 0D3144 7F09E614 02002025 */ move $a0, $s0 +/* 0D3148 7F09E618 46044280 */ add.s $f10, $f8, $f4 +/* 0D314C 7F09E61C C6680008 */ lwc1 $f8, 8($s3) +/* 0D3150 7F09E620 A60C0038 */ sh $t4, 0x38($s0) +/* 0D3154 7F09E624 A619003A */ sh $t9, 0x3a($s0) +/* 0D3158 7F09E628 46005182 */ mul.s $f6, $f10, $f0 +/* 0D315C 7F09E62C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D3160 7F09E630 46142282 */ mul.s $f10, $f4, $f20 +/* 0D3164 7F09E634 4600518D */ trunc.w.s $f6, $f10 +/* 0D3168 7F09E638 440D3000 */ mfc1 $t5, $f6 +/* 0D316C 7F09E63C 00000000 */ nop +/* 0D3170 7F09E640 A60D0034 */ sh $t5, 0x34($s0) +/* 0D3174 7F09E644 864F0006 */ lh $t7, 6($s2) +/* 0D3178 7F09E648 01F50019 */ multu $t7, $s5 +/* 0D317C 7F09E64C 0000C012 */ mflo $t8 +/* 0D3180 7F09E650 02987021 */ addu $t6, $s4, $t8 +/* 0D3184 7F09E654 91C8000C */ lbu $t0, 0xc($t6) +/* 0D3188 7F09E658 A208003C */ sb $t0, 0x3c($s0) +/* 0D318C 7F09E65C 864A0006 */ lh $t2, 6($s2) +/* 0D3190 7F09E660 01550019 */ multu $t2, $s5 +/* 0D3194 7F09E664 00004812 */ mflo $t1 +/* 0D3198 7F09E668 02895821 */ addu $t3, $s4, $t1 +/* 0D319C 7F09E66C 916D000D */ lbu $t5, 0xd($t3) +/* 0D31A0 7F09E670 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D31A4 7F09E674 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D31A8 7F09E678 A20D003D */ sb $t5, 0x3d($s0) +/* 0D31AC 7F09E67C 864C0006 */ lh $t4, 6($s2) +/* 0D31B0 7F09E680 01950019 */ multu $t4, $s5 +/* 0D31B4 7F09E684 0000C812 */ mflo $t9 +/* 0D31B8 7F09E688 02997821 */ addu $t7, $s4, $t9 +/* 0D31BC 7F09E68C 91F8000E */ lbu $t8, 0xe($t7) +/* 0D31C0 7F09E690 A218003E */ sb $t8, 0x3e($s0) +/* 0D31C4 7F09E694 93AE0077 */ lbu $t6, 0x77($sp) +/* 0D31C8 7F09E698 A20E003F */ sb $t6, 0x3f($s0) +/* 0D31CC 7F09E69C 8FB100E0 */ lw $s1, 0xe0($sp) +/* 0D31D0 7F09E6A0 262A0008 */ addiu $t2, $s1, 8 +/* 0D31D4 7F09E6A4 AFAA00E0 */ sw $t2, 0xe0($sp) +/* 0D31D8 7F09E6A8 0C003A2C */ jal osVirtualToPhysical +/* 0D31DC 7F09E6AC AE290000 */ sw $t1, ($s1) +/* 0D31E0 7F09E6B0 AE220004 */ sw $v0, 4($s1) +/* 0D31E4 7F09E6B4 8FAB00E0 */ lw $t3, 0xe0($sp) +/* 0D31E8 7F09E6B8 3C0CB100 */ lui $t4, (0xB1000032 >> 16) # lui $t4, 0xb100 +/* 0D31EC 7F09E6BC 358C0032 */ ori $t4, (0xB1000032 & 0xFFFF) # ori $t4, $t4, 0x32 +/* 0D31F0 7F09E6C0 256D0008 */ addiu $t5, $t3, 8 +/* 0D31F4 7F09E6C4 AFAD00E0 */ sw $t5, 0xe0($sp) +/* 0D31F8 7F09E6C8 24192010 */ li $t9, 8208 +/* 0D31FC 7F09E6CC AD790004 */ sw $t9, 4($t3) +/* 0D3200 7F09E6D0 AD6C0000 */ sw $t4, ($t3) +/* 0D3204 7F09E6D4 8FA200E0 */ lw $v0, 0xe0($sp) +.L7F09E6D8: +/* 0D3208 7F09E6D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D320C 7F09E6DC D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D3210 7F09E6E0 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D3214 7F09E6E4 8FB10020 */ lw $s1, 0x20($sp) +/* 0D3218 7F09E6E8 8FB20024 */ lw $s2, 0x24($sp) +/* 0D321C 7F09E6EC 8FB30028 */ lw $s3, 0x28($sp) +/* 0D3220 7F09E6F0 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D3224 7F09E6F4 8FB50030 */ lw $s5, 0x30($sp) +/* 0D3228 7F09E6F8 03E00008 */ jr $ra +/* 0D322C 7F09E6FC 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09E700(void) { + +} +#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 get_num_players +/* 0D324C 7F09E71C AFA0002C */ sw $zero, 0x2c($sp) +/* 0D3250 7F09E720 3C0B8004 */ lui $t3, %hi(D_8004017C) +/* 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(D_8004017C) # 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 remove_last_obj_pos_data_entry +/* 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 sub_GAME_7F03A4F0 +/* 0D33A8 7F09E878 AFAD002C */ sw $t5, 0x2c($sp) +/* 0D33AC 7F09E87C 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 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 +void sub_GAME_7F09E8AC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576CC +.word 0x3e19999a /*0.15000001*/ +glabel D_800576D0 +.word 0x3e99999a /*0.30000001*/ +glabel D_800576D4 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_800576D8 +.word 0x3ca3d70a /*0.02*/ +glabel D_800576DC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09E8AC +/* 0D33DC 7F09E8AC 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0D33E0 7F09E8B0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D33E4 7F09E8B4 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D33E8 7F09E8B8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0D33EC 7F09E8BC AFBE0068 */ sw $fp, 0x68($sp) +/* 0D33F0 7F09E8C0 AFB70064 */ sw $s7, 0x64($sp) +/* 0D33F4 7F09E8C4 AFB60060 */ sw $s6, 0x60($sp) +/* 0D33F8 7F09E8C8 AFB5005C */ sw $s5, 0x5c($sp) +/* 0D33FC 7F09E8CC AFB40058 */ sw $s4, 0x58($sp) +/* 0D3400 7F09E8D0 AFB30054 */ sw $s3, 0x54($sp) +/* 0D3404 7F09E8D4 AFB20050 */ sw $s2, 0x50($sp) +/* 0D3408 7F09E8D8 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D340C 7F09E8DC AFB00048 */ sw $s0, 0x48($sp) +/* 0D3410 7F09E8E0 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D3414 7F09E8E4 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D3418 7F09E8E8 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D341C 7F09E8EC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D3420 7F09E8F0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D3424 7F09E8F4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D3428 7F09E8F8 0080B825 */ move $s7, $a0 +/* 0D342C 7F09E8FC 14400003 */ bnez $v0, .L7F09E90C +/* 0D3430 7F09E900 8C930004 */ lw $s3, 4($a0) +/* 0D3434 7F09E904 10000193 */ b .L7F09EF54 +/* 0D3438 7F09E908 00001025 */ move $v0, $zero +.L7F09E90C: +/* 0D343C 7F09E90C 2841000F */ slti $at, $v0, 0xf +/* 0D3440 7F09E910 50200005 */ beql $at, $zero, .L7F09E928 +/* 0D3444 7F09E914 3C014170 */ lui $at, 0x4170 +/* 0D3448 7F09E918 44822000 */ mtc1 $v0, $f4 +/* 0D344C 7F09E91C 10000004 */ b .L7F09E930 +/* 0D3450 7F09E920 46802020 */ cvt.s.w $f0, $f4 +/* 0D3454 7F09E924 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F09E928: +/* 0D3458 7F09E928 44810000 */ mtc1 $at, $f0 +/* 0D345C 7F09E92C 00000000 */ nop +.L7F09E930: +/* 0D3460 7F09E930 4600018D */ trunc.w.s $f6, $f0 +/* 0D3464 7F09E934 3C158004 */ lui $s5, %hi(D_8004017C) +/* 0D3468 7F09E938 26B5017C */ addiu $s5, %lo(D_8004017C) # addiu $s5, $s5, 0x17c +/* 0D346C 7F09E93C 0000F025 */ move $fp, $zero +/* 0D3470 7F09E940 440F3000 */ mfc1 $t7, $f6 +/* 0D3474 7F09E944 3C018005 */ lui $at, %hi(D_800576CC) +/* 0D3478 7F09E948 24160018 */ li $s6, 24 +/* 0D347C 7F09E94C 19E000FD */ blez $t7, .L7F09ED44 +/* 0D3480 7F09E950 AFAF008C */ sw $t7, 0x8c($sp) +/* 0D3484 7F09E954 C43E76CC */ lwc1 $f30, %lo(D_800576CC)($at) +/* 0D3488 7F09E958 3C018005 */ lui $at, %hi(D_800576D0) +/* 0D348C 7F09E95C C43C76D0 */ lwc1 $f28, %lo(D_800576D0)($at) +/* 0D3490 7F09E960 3C018005 */ lui $at, %hi(D_800576D4) +/* 0D3494 7F09E964 C43876D4 */ lwc1 $f24, %lo(D_800576D4)($at) +/* 0D3498 7F09E968 3C018005 */ lui $at, %hi(D_800576D8) +/* 0D349C 7F09E96C C43676D8 */ lwc1 $f22, %lo(D_800576D8)($at) +/* 0D34A0 7F09E970 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D34A4 7F09E974 4481A000 */ mtc1 $at, $f20 +/* 0D34A8 7F09E978 4480D000 */ mtc1 $zero, $f26 +/* 0D34AC 7F09E97C 24140190 */ li $s4, 400 +/* 0D34B0 7F09E980 86790004 */ lh $t9, 4($s3) +.L7F09E984: +/* 0D34B4 7F09E984 00001025 */ move $v0, $zero +/* 0D34B8 7F09E988 00009025 */ move $s2, $zero +/* 0D34BC 7F09E98C 27280001 */ addiu $t0, $t9, 1 +/* 0D34C0 7F09E990 A6680004 */ sh $t0, 4($s3) +/* 0D34C4 7F09E994 02608825 */ move $s1, $s3 +.L7F09E998: +/* 0D34C8 7F09E998 C6280014 */ lwc1 $f8, 0x14($s1) +/* 0D34CC 7F09E99C 4608D032 */ c.eq.s $f26, $f8 +/* 0D34D0 7F09E9A0 00000000 */ nop +/* 0D34D4 7F09E9A4 4503003C */ bc1tl .L7F09EA98 +/* 0D34D8 7F09E9A8 26520028 */ addiu $s2, $s2, 0x28 +/* 0D34DC 7F09E9AC 26300008 */ addiu $s0, $s1, 8 +/* 0D34E0 7F09E9B0 C60A0004 */ lwc1 $f10, 4($s0) +/* 0D34E4 7F09E9B4 C612000C */ lwc1 $f18, 0xc($s0) +/* 0D34E8 7F09E9B8 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0D34EC 7F09E9BC 461C5400 */ add.s $f16, $f10, $f28 +/* 0D34F0 7F09E9C0 860C0024 */ lh $t4, 0x24($s0) +/* 0D34F4 7F09E9C4 461E9100 */ add.s $f4, $f18, $f30 +/* 0D34F8 7F09E9C8 E6100004 */ swc1 $f16, 4($s0) +/* 0D34FC 7F09E9CC C6100010 */ lwc1 $f16, 0x10($s0) +/* 0D3500 7F09E9D0 C6120014 */ lwc1 $f18, 0x14($s0) +/* 0D3504 7F09E9D4 E604000C */ swc1 $f4, 0xc($s0) +/* 0D3508 7F09E9D8 86690006 */ lh $t1, 6($s3) +/* 0D350C 7F09E9DC 46128100 */ add.s $f4, $f16, $f18 +/* 0D3510 7F09E9E0 258D0001 */ addiu $t5, $t4, 1 +/* 0D3514 7F09E9E4 01360019 */ multu $t1, $s6 +/* 0D3518 7F09E9E8 00005012 */ mflo $t2 +/* 0D351C 7F09E9EC 02AA5821 */ addu $t3, $s5, $t2 +/* 0D3520 7F09E9F0 C5680010 */ lwc1 $f8, 0x10($t3) +/* 0D3524 7F09E9F4 A60D0024 */ sh $t5, 0x24($s0) +/* 0D3528 7F09E9F8 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D352C 7F09E9FC 46083281 */ sub.s $f10, $f6, $f8 +/* 0D3530 7F09EA00 0C002914 */ jal get_random_value +/* 0D3534 7F09EA04 E60A0020 */ swc1 $f10, 0x20($s0) +/* 0D3538 7F09EA08 44824000 */ mtc1 $v0, $f8 +/* 0D353C 7F09EA0C C6060018 */ lwc1 $f6, 0x18($s0) +/* 0D3540 7F09EA10 04410005 */ bgez $v0, .L7F09EA28 +/* 0D3544 7F09EA14 468042A0 */ cvt.s.w $f10, $f8 +/* 0D3548 7F09EA18 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D354C 7F09EA1C 44818000 */ mtc1 $at, $f16 +/* 0D3550 7F09EA20 00000000 */ nop +/* 0D3554 7F09EA24 46105280 */ add.s $f10, $f10, $f16 +.L7F09EA28: +/* 0D3558 7F09EA28 46145482 */ mul.s $f18, $f10, $f20 +/* 0D355C 7F09EA2C 00000000 */ nop +/* 0D3560 7F09EA30 46189102 */ mul.s $f4, $f18, $f24 +/* 0D3564 7F09EA34 4604B200 */ add.s $f8, $f22, $f4 +/* 0D3568 7F09EA38 46083400 */ add.s $f16, $f6, $f8 +/* 0D356C 7F09EA3C 0C002914 */ jal get_random_value +/* 0D3570 7F09EA40 E6100018 */ swc1 $f16, 0x18($s0) +/* 0D3574 7F09EA44 44829000 */ mtc1 $v0, $f18 +/* 0D3578 7F09EA48 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D357C 7F09EA4C 04410005 */ bgez $v0, .L7F09EA64 +/* 0D3580 7F09EA50 46809120 */ cvt.s.w $f4, $f18 +/* 0D3584 7F09EA54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3588 7F09EA58 44813000 */ mtc1 $at, $f6 +/* 0D358C 7F09EA5C 00000000 */ nop +/* 0D3590 7F09EA60 46062100 */ add.s $f4, $f4, $f6 +.L7F09EA64: +/* 0D3594 7F09EA64 46142202 */ mul.s $f8, $f4, $f20 +/* 0D3598 7F09EA68 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D359C 7F09EA6C C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D35A0 7F09EA70 46184402 */ mul.s $f16, $f8, $f24 +/* 0D35A4 7F09EA74 44814000 */ mtc1 $at, $f8 +/* 0D35A8 7F09EA78 00000000 */ nop +/* 0D35AC 7F09EA7C 4608203C */ c.lt.s $f4, $f8 +/* 0D35B0 7F09EA80 4610B480 */ add.s $f18, $f22, $f16 +/* 0D35B4 7F09EA84 46125180 */ add.s $f6, $f10, $f18 +/* 0D35B8 7F09EA88 45000002 */ bc1f .L7F09EA94 +/* 0D35BC 7F09EA8C E606001C */ swc1 $f6, 0x1c($s0) +/* 0D35C0 7F09EA90 E61A000C */ swc1 $f26, 0xc($s0) +.L7F09EA94: +/* 0D35C4 7F09EA94 26520028 */ addiu $s2, $s2, 0x28 +.L7F09EA98: +/* 0D35C8 7F09EA98 2A410190 */ slti $at, $s2, 0x190 +/* 0D35CC 7F09EA9C 1420FFBE */ bnez $at, .L7F09E998 +/* 0D35D0 7F09EAA0 26310028 */ addiu $s1, $s1, 0x28 +/* 0D35D4 7F09EAA4 866E0006 */ lh $t6, 6($s3) +/* 0D35D8 7F09EAA8 86630004 */ lh $v1, 4($s3) +/* 0D35DC 7F09EAAC 01D60019 */ multu $t6, $s6 +/* 0D35E0 7F09EAB0 00007812 */ mflo $t7 +/* 0D35E4 7F09EAB4 02AF2021 */ addu $a0, $s5, $t7 +/* 0D35E8 7F09EAB8 84980000 */ lh $t8, ($a0) +/* 0D35EC 7F09EABC 0078082A */ slt $at, $v1, $t8 +/* 0D35F0 7F09EAC0 5020009D */ beql $at, $zero, .L7F09ED38 +/* 0D35F4 7F09EAC4 8FAB008C */ lw $t3, 0x8c($sp) +/* 0D35F8 7F09EAC8 84990004 */ lh $t9, 4($a0) +/* 0D35FC 7F09EACC 00009025 */ move $s2, $zero +/* 0D3600 7F09EAD0 02608825 */ move $s1, $s3 +/* 0D3604 7F09EAD4 0079001A */ div $zero, $v1, $t9 +/* 0D3608 7F09EAD8 17200002 */ bnez $t9, .L7F09EAE4 +/* 0D360C 7F09EADC 00000000 */ nop +/* 0D3610 7F09EAE0 0007000D */ break 7 +.L7F09EAE4: +/* 0D3614 7F09EAE4 2401FFFF */ li $at, -1 +/* 0D3618 7F09EAE8 17210004 */ bne $t9, $at, .L7F09EAFC +/* 0D361C 7F09EAEC 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0D3620 7F09EAF0 14610002 */ bne $v1, $at, .L7F09EAFC +/* 0D3624 7F09EAF4 00000000 */ nop +/* 0D3628 7F09EAF8 0006000D */ break 6 +.L7F09EAFC: +/* 0D362C 7F09EAFC 24010001 */ li $at, 1 +/* 0D3630 7F09EB00 00004010 */ mfhi $t0 +/* 0D3634 7F09EB04 5501008C */ bnel $t0, $at, .L7F09ED38 +/* 0D3638 7F09EB08 8FAB008C */ lw $t3, 0x8c($sp) +.L7F09EB0C: +/* 0D363C 7F09EB0C C6300014 */ lwc1 $f16, 0x14($s1) +/* 0D3640 7F09EB10 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3644 7F09EB14 4610D032 */ c.eq.s $f26, $f16 +/* 0D3648 7F09EB18 00000000 */ nop +/* 0D364C 7F09EB1C 45000083 */ bc1f .L7F09ED2C +/* 0D3650 7F09EB20 00000000 */ nop +/* 0D3654 7F09EB24 0C002914 */ jal get_random_value +/* 0D3658 7F09EB28 00000000 */ nop +/* 0D365C 7F09EB2C 44825000 */ mtc1 $v0, $f10 +/* 0D3660 7F09EB30 26300008 */ addiu $s0, $s1, 8 +/* 0D3664 7F09EB34 04410005 */ bgez $v0, .L7F09EB4C +/* 0D3668 7F09EB38 468054A0 */ cvt.s.w $f18, $f10 +/* 0D366C 7F09EB3C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3670 7F09EB40 44813000 */ mtc1 $at, $f6 +/* 0D3674 7F09EB44 00000000 */ nop +/* 0D3678 7F09EB48 46069480 */ add.s $f18, $f18, $f6 +.L7F09EB4C: +/* 0D367C 7F09EB4C 86690006 */ lh $t1, 6($s3) +/* 0D3680 7F09EB50 46149102 */ mul.s $f4, $f18, $f20 +/* 0D3684 7F09EB54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D3688 7F09EB58 01360019 */ multu $t1, $s6 +/* 0D368C 7F09EB5C 44814000 */ mtc1 $at, $f8 +/* 0D3690 7F09EB60 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3694 7F09EB64 44815000 */ mtc1 $at, $f10 +/* 0D3698 7F09EB68 46082402 */ mul.s $f16, $f4, $f8 +/* 0D369C 7F09EB6C 00005012 */ mflo $t2 +/* 0D36A0 7F09EB70 02AA5821 */ addu $t3, $s5, $t2 +/* 0D36A4 7F09EB74 856C0006 */ lh $t4, 6($t3) +/* 0D36A8 7F09EB78 460A8180 */ add.s $f6, $f16, $f10 +/* 0D36AC 7F09EB7C 448C9000 */ mtc1 $t4, $f18 +/* 0D36B0 7F09EB80 00000000 */ nop +/* 0D36B4 7F09EB84 46809120 */ cvt.s.w $f4, $f18 +/* 0D36B8 7F09EB88 46043202 */ mul.s $f8, $f6, $f4 +/* 0D36BC 7F09EB8C 0C002914 */ jal get_random_value +/* 0D36C0 7F09EB90 E608000C */ swc1 $f8, 0xc($s0) +/* 0D36C4 7F09EB94 24010046 */ li $at, 70 +/* 0D36C8 7F09EB98 0041001B */ divu $zero, $v0, $at +/* 0D36CC 7F09EB9C 00006810 */ mfhi $t5 +/* 0D36D0 7F09EBA0 448D8000 */ mtc1 $t5, $f16 +/* 0D36D4 7F09EBA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D36D8 7F09EBA8 05A10004 */ bgez $t5, .L7F09EBBC +/* 0D36DC 7F09EBAC 468082A0 */ cvt.s.w $f10, $f16 +/* 0D36E0 7F09EBB0 44819000 */ mtc1 $at, $f18 +/* 0D36E4 7F09EBB4 00000000 */ nop +/* 0D36E8 7F09EBB8 46125280 */ add.s $f10, $f10, $f18 +.L7F09EBBC: +/* 0D36EC 7F09EBBC 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0D36F0 7F09EBC0 44813000 */ mtc1 $at, $f6 +/* 0D36F4 7F09EBC4 A6000024 */ sh $zero, 0x24($s0) +/* 0D36F8 7F09EBC8 46065100 */ add.s $f4, $f10, $f6 +/* 0D36FC 7F09EBCC 0C002914 */ jal get_random_value +/* 0D3700 7F09EBD0 E6040020 */ swc1 $f4, 0x20($s0) +/* 0D3704 7F09EBD4 44824000 */ mtc1 $v0, $f8 +/* 0D3708 7F09EBD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D370C 7F09EBDC 04410004 */ bgez $v0, .L7F09EBF0 +/* 0D3710 7F09EBE0 46804420 */ cvt.s.w $f16, $f8 +/* 0D3714 7F09EBE4 44819000 */ mtc1 $at, $f18 +/* 0D3718 7F09EBE8 00000000 */ nop +/* 0D371C 7F09EBEC 46128400 */ add.s $f16, $f16, $f18 +.L7F09EBF0: +/* 0D3720 7F09EBF0 46148282 */ mul.s $f10, $f16, $f20 +/* 0D3724 7F09EBF4 3C018005 */ lui $at, %hi(D_800576DC) +/* 0D3728 7F09EBF8 C42676DC */ lwc1 $f6, %lo(D_800576DC)($at) +/* 0D372C 7F09EBFC 46065102 */ mul.s $f4, $f10, $f6 +/* 0D3730 7F09EC00 0C002914 */ jal get_random_value +/* 0D3734 7F09EC04 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D3738 7F09EC08 44829000 */ mtc1 $v0, $f18 +/* 0D373C 7F09EC0C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D3740 7F09EC10 44814000 */ mtc1 $at, $f8 +/* 0D3744 7F09EC14 04410005 */ bgez $v0, .L7F09EC2C +/* 0D3748 7F09EC18 46809420 */ cvt.s.w $f16, $f18 +/* 0D374C 7F09EC1C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3750 7F09EC20 44815000 */ mtc1 $at, $f10 +/* 0D3754 7F09EC24 00000000 */ nop +/* 0D3758 7F09EC28 460A8400 */ add.s $f16, $f16, $f10 +.L7F09EC2C: +/* 0D375C 7F09EC2C 866E0006 */ lh $t6, 6($s3) +/* 0D3760 7F09EC30 46148182 */ mul.s $f6, $f16, $f20 +/* 0D3764 7F09EC34 46064101 */ sub.s $f4, $f8, $f6 +/* 0D3768 7F09EC38 01D60019 */ multu $t6, $s6 +/* 0D376C 7F09EC3C 00007812 */ mflo $t7 +/* 0D3770 7F09EC40 02AFC021 */ addu $t8, $s5, $t7 +/* 0D3774 7F09EC44 C7120008 */ lwc1 $f18, 8($t8) +/* 0D3778 7F09EC48 46049282 */ mul.s $f10, $f18, $f4 +/* 0D377C 7F09EC4C E60A0014 */ swc1 $f10, 0x14($s0) +/* 0D3780 7F09EC50 C6F00008 */ lwc1 $f16, 8($s7) +/* 0D3784 7F09EC54 E6100000 */ swc1 $f16, ($s0) +/* 0D3788 7F09EC58 C6E8000C */ lwc1 $f8, 0xc($s7) +/* 0D378C 7F09EC5C E6080004 */ swc1 $f8, 4($s0) +/* 0D3790 7F09EC60 C6E60010 */ lwc1 $f6, 0x10($s7) +/* 0D3794 7F09EC64 0C002914 */ jal get_random_value +/* 0D3798 7F09EC68 E6060008 */ swc1 $f6, 8($s0) +/* 0D379C 7F09EC6C 44829000 */ mtc1 $v0, $f18 +/* 0D37A0 7F09EC70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D37A4 7F09EC74 04410004 */ bgez $v0, .L7F09EC88 +/* 0D37A8 7F09EC78 46809120 */ cvt.s.w $f4, $f18 +/* 0D37AC 7F09EC7C 44815000 */ mtc1 $at, $f10 +/* 0D37B0 7F09EC80 00000000 */ nop +/* 0D37B4 7F09EC84 460A2100 */ add.s $f4, $f4, $f10 +.L7F09EC88: +/* 0D37B8 7F09EC88 46142402 */ mul.s $f16, $f4, $f20 +/* 0D37BC 7F09EC8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D37C0 7F09EC90 44814000 */ mtc1 $at, $f8 +/* 0D37C4 7F09EC94 00000000 */ nop +/* 0D37C8 7F09EC98 46088182 */ mul.s $f6, $f16, $f8 +/* 0D37CC 7F09EC9C 0C002914 */ jal get_random_value +/* 0D37D0 7F09ECA0 E6060018 */ swc1 $f6, 0x18($s0) +/* 0D37D4 7F09ECA4 44829000 */ mtc1 $v0, $f18 +/* 0D37D8 7F09ECA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D37DC 7F09ECAC 04410004 */ bgez $v0, .L7F09ECC0 +/* 0D37E0 7F09ECB0 468092A0 */ cvt.s.w $f10, $f18 +/* 0D37E4 7F09ECB4 44812000 */ mtc1 $at, $f4 +/* 0D37E8 7F09ECB8 00000000 */ nop +/* 0D37EC 7F09ECBC 46045280 */ add.s $f10, $f10, $f4 +.L7F09ECC0: +/* 0D37F0 7F09ECC0 46145402 */ mul.s $f16, $f10, $f20 +/* 0D37F4 7F09ECC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D37F8 7F09ECC8 44814000 */ mtc1 $at, $f8 +/* 0D37FC 7F09ECCC 00000000 */ nop +/* 0D3800 7F09ECD0 46088182 */ mul.s $f6, $f16, $f8 +/* 0D3804 7F09ECD4 E606001C */ swc1 $f6, 0x1c($s0) +/* 0D3808 7F09ECD8 86790006 */ lh $t9, 6($s3) +/* 0D380C 7F09ECDC 86630004 */ lh $v1, 4($s3) +/* 0D3810 7F09ECE0 03360019 */ multu $t9, $s6 +/* 0D3814 7F09ECE4 00004012 */ mflo $t0 +/* 0D3818 7F09ECE8 02A82021 */ addu $a0, $s5, $t0 +/* 0D381C 7F09ECEC 84850000 */ lh $a1, ($a0) +/* 0D3820 7F09ECF0 84860014 */ lh $a2, 0x14($a0) +/* 0D3824 7F09ECF4 00A64823 */ subu $t1, $a1, $a2 +/* 0D3828 7F09ECF8 0123082A */ slt $at, $t1, $v1 +/* 0D382C 7F09ECFC 5020000E */ beql $at, $zero, .L7F09ED38 +/* 0D3830 7F09ED00 8FAB008C */ lw $t3, 0x8c($sp) +/* 0D3834 7F09ED04 00A35023 */ subu $t2, $a1, $v1 +/* 0D3838 7F09ED08 448A9000 */ mtc1 $t2, $f18 +/* 0D383C 7F09ED0C 44865000 */ mtc1 $a2, $f10 +/* 0D3840 7F09ED10 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0D3844 7F09ED14 46809120 */ cvt.s.w $f4, $f18 +/* 0D3848 7F09ED18 46805420 */ cvt.s.w $f16, $f10 +/* 0D384C 7F09ED1C 46102203 */ div.s $f8, $f4, $f16 +/* 0D3850 7F09ED20 46083482 */ mul.s $f18, $f6, $f8 +/* 0D3854 7F09ED24 10000003 */ b .L7F09ED34 +/* 0D3858 7F09ED28 E6120020 */ swc1 $f18, 0x20($s0) +.L7F09ED2C: +/* 0D385C 7F09ED2C 1654FF77 */ bne $s2, $s4, .L7F09EB0C +/* 0D3860 7F09ED30 26310028 */ addiu $s1, $s1, 0x28 +.L7F09ED34: +/* 0D3864 7F09ED34 8FAB008C */ lw $t3, 0x8c($sp) +.L7F09ED38: +/* 0D3868 7F09ED38 27DE0001 */ addiu $fp, $fp, 1 +/* 0D386C 7F09ED3C 57CBFF11 */ bnel $fp, $t3, .L7F09E984 +/* 0D3870 7F09ED40 86790004 */ lh $t9, 4($s3) +.L7F09ED44: +/* 0D3874 7F09ED44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3878 7F09ED48 44812000 */ mtc1 $at, $f4 +/* 0D387C 7F09ED4C C6EA0008 */ lwc1 $f10, 8($s7) +/* 0D3880 7F09ED50 44814000 */ mtc1 $at, $f8 +/* 0D3884 7F09ED54 4480D000 */ mtc1 $zero, $f26 +/* 0D3888 7F09ED58 46045401 */ sub.s $f16, $f10, $f4 +/* 0D388C 7F09ED5C 44812000 */ mtc1 $at, $f4 +/* 0D3890 7F09ED60 3C158004 */ lui $s5, %hi(D_8004017C) +/* 0D3894 7F09ED64 26B5017C */ addiu $s5, %lo(D_8004017C) # addiu $s5, $s5, 0x17c +/* 0D3898 7F09ED68 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 0D389C 7F09ED6C C6E6000C */ lwc1 $f6, 0xc($s7) +/* 0D38A0 7F09ED70 24160018 */ li $s6, 24 +/* 0D38A4 7F09ED74 00009025 */ move $s2, $zero +/* 0D38A8 7F09ED78 46083481 */ sub.s $f18, $f6, $f8 +/* 0D38AC 7F09ED7C 44814000 */ mtc1 $at, $f8 +/* 0D38B0 7F09ED80 02608825 */ move $s1, $s3 +/* 0D38B4 7F09ED84 27B0009C */ addiu $s0, $sp, 0x9c +/* 0D38B8 7F09ED88 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0D38BC 7F09ED8C C6EA0010 */ lwc1 $f10, 0x10($s7) +/* 0D38C0 7F09ED90 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0D38C4 7F09ED94 4600D386 */ mov.s $f14, $f26 +/* 0D38C8 7F09ED98 46045401 */ sub.s $f16, $f10, $f4 +/* 0D38CC 7F09ED9C 44812000 */ mtc1 $at, $f4 +/* 0D38D0 7F09EDA0 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 0D38D4 7F09EDA4 C6E60008 */ lwc1 $f6, 8($s7) +/* 0D38D8 7F09EDA8 46083480 */ add.s $f18, $f6, $f8 +/* 0D38DC 7F09EDAC 44814000 */ mtc1 $at, $f8 +/* 0D38E0 7F09EDB0 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0D38E4 7F09EDB4 C6EA000C */ lwc1 $f10, 0xc($s7) +/* 0D38E8 7F09EDB8 46045400 */ add.s $f16, $f10, $f4 +/* 0D38EC 7F09EDBC E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 0D38F0 7F09EDC0 C6E60010 */ lwc1 $f6, 0x10($s7) +/* 0D38F4 7F09EDC4 46083480 */ add.s $f18, $f6, $f8 +/* 0D38F8 7F09EDC8 E7B200A4 */ swc1 $f18, 0xa4($sp) +.L7F09EDCC: +/* 0D38FC 7F09EDCC C62A0014 */ lwc1 $f10, 0x14($s1) +/* 0D3900 7F09EDD0 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3904 7F09EDD4 2A410190 */ slti $at, $s2, 0x190 +/* 0D3908 7F09EDD8 460AD032 */ c.eq.s $f26, $f10 +/* 0D390C 7F09EDDC 00002025 */ move $a0, $zero +/* 0D3910 7F09EDE0 02202825 */ move $a1, $s1 +/* 0D3914 7F09EDE4 27A200A8 */ addiu $v0, $sp, 0xa8 +/* 0D3918 7F09EDE8 45010016 */ bc1t .L7F09EE44 +/* 0D391C 7F09EDEC 00000000 */ nop +.L7F09EDF0: +/* 0D3920 7F09EDF0 C4A40008 */ lwc1 $f4, 8($a1) +/* 0D3924 7F09EDF4 C6300014 */ lwc1 $f16, 0x14($s1) +/* 0D3928 7F09EDF8 C4460000 */ lwc1 $f6, ($v0) +/* 0D392C 7F09EDFC 24A50004 */ addiu $a1, $a1, 4 +/* 0D3930 7F09EE00 46102001 */ sub.s $f0, $f4, $f16 +/* 0D3934 7F09EE04 02041821 */ addu $v1, $s0, $a0 +/* 0D3938 7F09EE08 4606003C */ c.lt.s $f0, $f6 +/* 0D393C 7F09EE0C 00000000 */ nop +/* 0D3940 7F09EE10 45020004 */ bc1fl .L7F09EE24 +/* 0D3944 7F09EE14 C4680000 */ lwc1 $f8, ($v1) +/* 0D3948 7F09EE18 10000007 */ b .L7F09EE38 +/* 0D394C 7F09EE1C E4400000 */ swc1 $f0, ($v0) +/* 0D3950 7F09EE20 C4680000 */ lwc1 $f8, ($v1) +.L7F09EE24: +/* 0D3954 7F09EE24 4600403C */ c.lt.s $f8, $f0 +/* 0D3958 7F09EE28 00000000 */ nop +/* 0D395C 7F09EE2C 45020003 */ bc1fl .L7F09EE3C +/* 0D3960 7F09EE30 24420004 */ addiu $v0, $v0, 4 +/* 0D3964 7F09EE34 E4600000 */ swc1 $f0, ($v1) +.L7F09EE38: +/* 0D3968 7F09EE38 24420004 */ addiu $v0, $v0, 4 +.L7F09EE3C: +/* 0D396C 7F09EE3C 1446FFEC */ bne $v0, $a2, .L7F09EDF0 +/* 0D3970 7F09EE40 24840004 */ addiu $a0, $a0, 4 +.L7F09EE44: +/* 0D3974 7F09EE44 1420FFE1 */ bnez $at, .L7F09EDCC +/* 0D3978 7F09EE48 26310028 */ addiu $s1, $s1, 0x28 +/* 0D397C 7F09EE4C C6E00008 */ lwc1 $f0, 8($s7) +/* 0D3980 7F09EE50 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0D3984 7F09EE54 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D3988 7F09EE58 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D398C 7F09EE5C 46120081 */ sub.s $f2, $f0, $f18 +/* 0D3990 7F09EE60 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0D3994 7F09EE64 02E02025 */ move $a0, $s7 +/* 0D3998 7F09EE68 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0D399C 7F09EE6C 4602D03C */ c.lt.s $f26, $f2 +/* 0D39A0 7F09EE70 00000000 */ nop +/* 0D39A4 7F09EE74 45020003 */ bc1fl .L7F09EE84 +/* 0D39A8 7F09EE78 C6E20010 */ lwc1 $f2, 0x10($s7) +/* 0D39AC 7F09EE7C 46001386 */ mov.s $f14, $f2 +/* 0D39B0 7F09EE80 C6E20010 */ lwc1 $f2, 0x10($s7) +.L7F09EE84: +/* 0D39B4 7F09EE84 460A1301 */ sub.s $f12, $f2, $f10 +/* 0D39B8 7F09EE88 460C703C */ c.lt.s $f14, $f12 +/* 0D39BC 7F09EE8C 00000000 */ nop +/* 0D39C0 7F09EE90 45020003 */ bc1fl .L7F09EEA0 +/* 0D39C4 7F09EE94 46002301 */ sub.s $f12, $f4, $f0 +/* 0D39C8 7F09EE98 46006386 */ mov.s $f14, $f12 +/* 0D39CC 7F09EE9C 46002301 */ sub.s $f12, $f4, $f0 +.L7F09EEA0: +/* 0D39D0 7F09EEA0 46028001 */ sub.s $f0, $f16, $f2 +/* 0D39D4 7F09EEA4 460C703C */ c.lt.s $f14, $f12 +/* 0D39D8 7F09EEA8 00000000 */ nop +/* 0D39DC 7F09EEAC 45020003 */ bc1fl .L7F09EEBC +/* 0D39E0 7F09EEB0 4600703C */ c.lt.s $f14, $f0 +/* 0D39E4 7F09EEB4 46006386 */ mov.s $f14, $f12 +/* 0D39E8 7F09EEB8 4600703C */ c.lt.s $f14, $f0 +.L7F09EEBC: +/* 0D39EC 7F09EEBC 00000000 */ nop +/* 0D39F0 7F09EEC0 45020003 */ bc1fl .L7F09EED0 +/* 0D39F4 7F09EEC4 44077000 */ mfc1 $a3, $f14 +/* 0D39F8 7F09EEC8 46000386 */ mov.s $f14, $f0 +/* 0D39FC 7F09EECC 44077000 */ mfc1 $a3, $f14 +.L7F09EED0: +/* 0D3A00 7F09EED0 0FC0F89F */ jal sub_GAME_7F03E27C +/* 0D3A04 7F09EED4 02003025 */ move $a2, $s0 +/* 0D3A08 7F09EED8 866C0006 */ lh $t4, 6($s3) +/* 0D3A0C 7F09EEDC 86780004 */ lh $t8, 4($s3) +/* 0D3A10 7F09EEE0 00009025 */ move $s2, $zero +/* 0D3A14 7F09EEE4 01960019 */ multu $t4, $s6 +/* 0D3A18 7F09EEE8 02608825 */ move $s1, $s3 +/* 0D3A1C 7F09EEEC 24020190 */ li $v0, 400 +/* 0D3A20 7F09EEF0 00001825 */ move $v1, $zero +/* 0D3A24 7F09EEF4 00006812 */ mflo $t5 +/* 0D3A28 7F09EEF8 02AD7021 */ addu $t6, $s5, $t5 +/* 0D3A2C 7F09EEFC 85CF0004 */ lh $t7, 4($t6) +/* 0D3A30 7F09EF00 01F8082A */ slt $at, $t7, $t8 +/* 0D3A34 7F09EF04 1020000E */ beqz $at, .L7F09EF40 +/* 0D3A38 7F09EF08 00000000 */ nop +/* 0D3A3C 7F09EF0C 24030001 */ li $v1, 1 +.L7F09EF10: +/* 0D3A40 7F09EF10 C6260014 */ lwc1 $f6, 0x14($s1) +/* 0D3A44 7F09EF14 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3A48 7F09EF18 4606D03C */ c.lt.s $f26, $f6 +/* 0D3A4C 7F09EF1C 00000000 */ nop +/* 0D3A50 7F09EF20 45000003 */ bc1f .L7F09EF30 +/* 0D3A54 7F09EF24 00000000 */ nop +/* 0D3A58 7F09EF28 10000005 */ b .L7F09EF40 +/* 0D3A5C 7F09EF2C 00001825 */ move $v1, $zero +.L7F09EF30: +/* 0D3A60 7F09EF30 1642FFF7 */ bne $s2, $v0, .L7F09EF10 +/* 0D3A64 7F09EF34 26310028 */ addiu $s1, $s1, 0x28 +/* 0D3A68 7F09EF38 10000001 */ b .L7F09EF40 +/* 0D3A6C 7F09EF3C 00000000 */ nop +.L7F09EF40: +/* 0D3A70 7F09EF40 10600004 */ beqz $v1, .L7F09EF54 +/* 0D3A74 7F09EF44 00001025 */ move $v0, $zero +/* 0D3A78 7F09EF48 AE600000 */ sw $zero, ($s3) +/* 0D3A7C 7F09EF4C 10000001 */ b .L7F09EF54 +/* 0D3A80 7F09EF50 24020001 */ li $v0, 1 +.L7F09EF54: +/* 0D3A84 7F09EF54 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D3A88 7F09EF58 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D3A8C 7F09EF5C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D3A90 7F09EF60 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D3A94 7F09EF64 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D3A98 7F09EF68 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D3A9C 7F09EF6C D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D3AA0 7F09EF70 8FB00048 */ lw $s0, 0x48($sp) +/* 0D3AA4 7F09EF74 8FB1004C */ lw $s1, 0x4c($sp) +/* 0D3AA8 7F09EF78 8FB20050 */ lw $s2, 0x50($sp) +/* 0D3AAC 7F09EF7C 8FB30054 */ lw $s3, 0x54($sp) +/* 0D3AB0 7F09EF80 8FB40058 */ lw $s4, 0x58($sp) +/* 0D3AB4 7F09EF84 8FB5005C */ lw $s5, 0x5c($sp) +/* 0D3AB8 7F09EF88 8FB60060 */ lw $s6, 0x60($sp) +/* 0D3ABC 7F09EF8C 8FB70064 */ lw $s7, 0x64($sp) +/* 0D3AC0 7F09EF90 8FBE0068 */ lw $fp, 0x68($sp) +/* 0D3AC4 7F09EF94 03E00008 */ jr $ra +/* 0D3AC8 7F09EF98 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09EF9C(void) { + +} +#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 get_BONDdata_field_10CC +/* 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 +void sub_GAME_7F09F03C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09F03C +/* 0D3B6C 7F09F03C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0D3B70 7F09F040 AFB00024 */ sw $s0, 0x24($sp) +/* 0D3B74 7F09F044 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D3B78 7F09F048 AFB50038 */ sw $s5, 0x38($sp) +/* 0D3B7C 7F09F04C AFB40034 */ sw $s4, 0x34($sp) +/* 0D3B80 7F09F050 AFB30030 */ sw $s3, 0x30($sp) +/* 0D3B84 7F09F054 AFB2002C */ sw $s2, 0x2c($sp) +/* 0D3B88 7F09F058 AFB10028 */ sw $s1, 0x28($sp) +/* 0D3B8C 7F09F05C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D3B90 7F09F060 9091002C */ lbu $s1, 0x2c($a0) +/* 0D3B94 7F09F064 00808025 */ move $s0, $a0 +/* 0D3B98 7F09F068 8C940004 */ lw $s4, 4($a0) +/* 0D3B9C 7F09F06C 00A09025 */ move $s2, $a1 +/* 0D3BA0 7F09F070 00C09825 */ move $s3, $a2 +/* 0D3BA4 7F09F074 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D3BA8 7F09F078 02202025 */ move $a0, $s1 +/* 0D3BAC 7F09F07C 16600003 */ bnez $s3, .L7F09F08C +/* 0D3BB0 7F09F080 0040A825 */ move $s5, $v0 +/* 0D3BB4 7F09F084 10000069 */ b .L7F09F22C +/* 0D3BB8 7F09F088 02401025 */ move $v0, $s2 +.L7F09F08C: +/* 0D3BBC 7F09F08C 02002025 */ move $a0, $s0 +/* 0D3BC0 7F09F090 0FC15299 */ jal sub_GAME_7F054A64 +/* 0D3BC4 7F09F094 27A50078 */ addiu $a1, $sp, 0x78 +/* 0D3BC8 7F09F098 1840000A */ blez $v0, .L7F09F0C4 +/* 0D3BCC 7F09F09C 00000000 */ nop +/* 0D3BD0 7F09F0A0 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0D3BD4 7F09F0A4 02402025 */ move $a0, $s2 +/* 0D3BD8 7F09F0A8 8FA50078 */ lw $a1, 0x78($sp) +/* 0D3BDC 7F09F0AC 8FA6007C */ lw $a2, 0x7c($sp) +/* 0D3BE0 7F09F0B0 8FA70080 */ lw $a3, 0x80($sp) +/* 0D3BE4 7F09F0B4 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0D3BE8 7F09F0B8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0D3BEC 7F09F0BC 10000004 */ b .L7F09F0D0 +/* 0D3BF0 7F09F0C0 00409025 */ move $s2, $v0 +.L7F09F0C4: +/* 0D3BF4 7F09F0C4 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0D3BF8 7F09F0C8 02402025 */ move $a0, $s2 +/* 0D3BFC 7F09F0CC 00409025 */ move $s2, $v0 +.L7F09F0D0: +/* 0D3C00 7F09F0D0 02401025 */ move $v0, $s2 +/* 0D3C04 7F09F0D4 3C0F0001 */ lui $t7, (0x00013000 >> 16) # lui $t7, 1 +/* 0D3C08 7F09F0D8 35EF3000 */ ori $t7, (0x00013000 & 0xFFFF) # ori $t7, $t7, 0x3000 +/* 0D3C0C 7F09F0DC 26520008 */ addiu $s2, $s2, 8 +/* 0D3C10 7F09F0E0 3C0EB600 */ lui $t6, 0xb600 +/* 0D3C14 7F09F0E4 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D3C18 7F09F0E8 AC4E0000 */ sw $t6, ($v0) +/* 0D3C1C 7F09F0EC AC4F0004 */ sw $t7, 4($v0) +/* 0D3C20 7F09F0F0 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D3C24 7F09F0F4 02408025 */ move $s0, $s2 +/* 0D3C28 7F09F0F8 AE180000 */ sw $t8, ($s0) +/* 0D3C2C 7F09F0FC 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D3C30 7F09F100 26520008 */ addiu $s2, $s2, 8 +/* 0D3C34 7F09F104 0C003A2C */ jal osVirtualToPhysical +/* 0D3C38 7F09F108 00402025 */ move $a0, $v0 +/* 0D3C3C 7F09F10C AE020004 */ sw $v0, 4($s0) +/* 0D3C40 7F09F110 02402025 */ move $a0, $s2 +/* 0D3C44 7F09F114 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D3C48 7F09F118 02202825 */ move $a1, $s1 +/* 0D3C4C 7F09F11C 3C190100 */ lui $t9, (0x01000040 >> 16) # lui $t9, 0x100 +/* 0D3C50 7F09F120 37390040 */ ori $t9, (0x01000040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D3C54 7F09F124 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A100) +/* 0D3C58 7F09F128 2484A100 */ addiu $a0, %lo(dword_CODE_bss_8007A100) # addiu $a0, $a0, -0x5f00 +/* 0D3C5C 7F09F12C AC590000 */ sw $t9, ($v0) +/* 0D3C60 7F09F130 00408025 */ move $s0, $v0 +/* 0D3C64 7F09F134 0C003A2C */ jal osVirtualToPhysical +/* 0D3C68 7F09F138 24520008 */ addiu $s2, $v0, 8 +/* 0D3C6C 7F09F13C 3C08BC00 */ lui $t0, (0xBC000806 >> 16) # lui $t0, 0xbc00 +/* 0D3C70 7F09F140 AE020004 */ sw $v0, 4($s0) +/* 0D3C74 7F09F144 35080806 */ ori $t0, (0xBC000806 & 0xFFFF) # ori $t0, $t0, 0x806 +/* 0D3C78 7F09F148 02409825 */ move $s3, $s2 +/* 0D3C7C 7F09F14C AE680000 */ sw $t0, ($s3) +/* 0D3C80 7F09F150 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D3C84 7F09F154 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D3C88 7F09F158 0C003A2C */ jal osVirtualToPhysical +/* 0D3C8C 7F09F15C 26520008 */ addiu $s2, $s2, 8 +/* 0D3C90 7F09F160 AE620004 */ sw $v0, 4($s3) +/* 0D3C94 7F09F164 02401825 */ move $v1, $s2 +/* 0D3C98 7F09F168 26520008 */ addiu $s2, $s2, 8 +/* 0D3C9C 7F09F16C 3C0A0200 */ lui $t2, 0x200 +/* 0D3CA0 7F09F170 254A0000 */ addiu $t2, $t2, 0 +/* 0D3CA4 7F09F174 3C090600 */ lui $t1, 0x600 +/* 0D3CA8 7F09F178 02402025 */ move $a0, $s2 +/* 0D3CAC 7F09F17C AC690000 */ sw $t1, ($v1) +/* 0D3CB0 7F09F180 AC6A0004 */ sw $t2, 4($v1) +/* 0D3CB4 7F09F184 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 0D3CB8 7F09F188 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 0D3CBC 7F09F18C 240C0080 */ li $t4, 128 +/* 0D3CC0 7F09F190 4480A000 */ mtc1 $zero, $f20 +/* 0D3CC4 7F09F194 AC8C0004 */ sw $t4, 4($a0) +/* 0D3CC8 7F09F198 AC8B0000 */ sw $t3, ($a0) +/* 0D3CCC 7F09F19C 26520008 */ addiu $s2, $s2, 8 +/* 0D3CD0 7F09F1A0 24130190 */ li $s3, 400 +/* 0D3CD4 7F09F1A4 00008825 */ move $s1, $zero +/* 0D3CD8 7F09F1A8 02808025 */ move $s0, $s4 +.L7F09F1AC: +/* 0D3CDC 7F09F1AC C6060014 */ lwc1 $f6, 0x14($s0) +/* 0D3CE0 7F09F1B0 02802025 */ move $a0, $s4 +/* 0D3CE4 7F09F1B4 26050008 */ addiu $a1, $s0, 8 +/* 0D3CE8 7F09F1B8 4606A03C */ c.lt.s $f20, $f6 +/* 0D3CEC 7F09F1BC 02403025 */ move $a2, $s2 +/* 0D3CF0 7F09F1C0 45020006 */ bc1fl .L7F09F1DC +/* 0D3CF4 7F09F1C4 E6140014 */ swc1 $f20, 0x14($s0) +/* 0D3CF8 7F09F1C8 0FC27769 */ jal sub_GAME_7F09DDA4 +/* 0D3CFC 7F09F1CC 02A03825 */ move $a3, $s5 +/* 0D3D00 7F09F1D0 10000002 */ b .L7F09F1DC +/* 0D3D04 7F09F1D4 00409025 */ move $s2, $v0 +/* 0D3D08 7F09F1D8 E6140014 */ swc1 $f20, 0x14($s0) +.L7F09F1DC: +/* 0D3D0C 7F09F1DC 26310028 */ addiu $s1, $s1, 0x28 +/* 0D3D10 7F09F1E0 1633FFF2 */ bne $s1, $s3, .L7F09F1AC +/* 0D3D14 7F09F1E4 26100028 */ addiu $s0, $s0, 0x28 +/* 0D3D18 7F09F1E8 02401025 */ move $v0, $s2 +/* 0D3D1C 7F09F1EC 3C0DBA00 */ lui $t5, (0xBA000602 >> 16) # lui $t5, 0xba00 +/* 0D3D20 7F09F1F0 35AD0602 */ ori $t5, (0xBA000602 & 0xFFFF) # ori $t5, $t5, 0x602 +/* 0D3D24 7F09F1F4 26520008 */ addiu $s2, $s2, 8 +/* 0D3D28 7F09F1F8 240E0040 */ li $t6, 64 +/* 0D3D2C 7F09F1FC 3C0F0103 */ lui $t7, (0x01030040 >> 16) # lui $t7, 0x103 +/* 0D3D30 7F09F200 AC4E0004 */ sw $t6, 4($v0) +/* 0D3D34 7F09F204 AC4D0000 */ sw $t5, ($v0) +/* 0D3D38 7F09F208 35EF0040 */ ori $t7, (0x01030040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0D3D3C 7F09F20C 02408025 */ move $s0, $s2 +/* 0D3D40 7F09F210 AE0F0000 */ sw $t7, ($s0) +/* 0D3D44 7F09F214 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D3D48 7F09F218 26520008 */ addiu $s2, $s2, 8 +/* 0D3D4C 7F09F21C 0C003A2C */ jal osVirtualToPhysical +/* 0D3D50 7F09F220 00402025 */ move $a0, $v0 +/* 0D3D54 7F09F224 AE020004 */ sw $v0, 4($s0) +/* 0D3D58 7F09F228 02401025 */ move $v0, $s2 +.L7F09F22C: +/* 0D3D5C 7F09F22C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D3D60 7F09F230 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D3D64 7F09F234 8FB00024 */ lw $s0, 0x24($sp) +/* 0D3D68 7F09F238 8FB10028 */ lw $s1, 0x28($sp) +/* 0D3D6C 7F09F23C 8FB2002C */ lw $s2, 0x2c($sp) +/* 0D3D70 7F09F240 8FB30030 */ lw $s3, 0x30($sp) +/* 0D3D74 7F09F244 8FB40034 */ lw $s4, 0x34($sp) +/* 0D3D78 7F09F248 8FB50038 */ lw $s5, 0x38($sp) +/* 0D3D7C 7F09F24C 03E00008 */ jr $ra +/* 0D3D80 7F09F250 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09F254(void) { + +} +#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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 0D3E2C 7F09F2FC E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0D3E30 7F09F300 3C128004 */ lui $s2, %hi(D_8004017C+0x684) +/* 0D3E34 7F09F304 26520800 */ addiu $s2, %lo(D_8004017C+0x684) # addiu $s2, $s2, 0x800 +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 0D428C 7F09F75C A548006C */ sh $t0, 0x6c($t2) +/* 0D4290 7F09F760 30460003 */ andi $a2, $v0, 3 +/* 0D4294 7F09F764 00067200 */ sll $t6, $a2, 8 +/* 0D4298 7F09F768 0C002914 */ jal get_random_value +/* 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 get_random_value +/* 0D4378 7F09F848 A5A50072 */ sh $a1, 0x72($t5) +/* 0D437C 7F09F84C 30480001 */ andi $t0, $v0, 1 +/* 0D4380 7F09F850 1100005B */ beqz $t0, .L7F09F9C0 +/* 0D4384 7F09F854 00000000 */ nop +/* 0D4388 7F09F858 0C002914 */ jal get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09FD3C(void) { + +} +#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 sub_GAME_7F09FD3C +/* 0D486C 7F09FD3C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D4870 7F09FD40 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D4874 7F09FD44 8C428374 */ lw $v0, %lo(clock_timer)($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 get_random_value +/* 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 +void sub_GAME_7F0A0034(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576FC +.word 0xc69c4000 /*-20000.0*/ +glabel D_80057700 +.word 0x469c4000 /*20000.0*/ +.text +glabel sub_GAME_7F0A0034 +/* 0D4B64 7F0A0034 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0D4B68 7F0A0038 AFB00028 */ sw $s0, 0x28($sp) +/* 0D4B6C 7F0A003C AFBF004C */ sw $ra, 0x4c($sp) +/* 0D4B70 7F0A0040 AFBE0048 */ sw $fp, 0x48($sp) +/* 0D4B74 7F0A0044 AFB70044 */ sw $s7, 0x44($sp) +/* 0D4B78 7F0A0048 AFB60040 */ sw $s6, 0x40($sp) +/* 0D4B7C 7F0A004C AFB5003C */ sw $s5, 0x3c($sp) +/* 0D4B80 7F0A0050 AFB40038 */ sw $s4, 0x38($sp) +/* 0D4B84 7F0A0054 AFB30034 */ sw $s3, 0x34($sp) +/* 0D4B88 7F0A0058 AFB20030 */ sw $s2, 0x30($sp) +/* 0D4B8C 7F0A005C AFB1002C */ sw $s1, 0x2c($sp) +/* 0D4B90 7F0A0060 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D4B94 7F0A0064 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D4B98 7F0A0068 3C0EB600 */ lui $t6, 0xb600 +/* 0D4B9C 7F0A006C 240F3000 */ li $t7, 12288 +/* 0D4BA0 7F0A0070 AC8F0004 */ sw $t7, 4($a0) +/* 0D4BA4 7F0A0074 AC8E0000 */ sw $t6, ($a0) +/* 0D4BA8 7F0A0078 24900008 */ addiu $s0, $a0, 8 +/* 0D4BAC 7F0A007C 3C18BC00 */ lui $t8, (0xBC000806 >> 16) # lui $t8, 0xbc00 +/* 0D4BB0 7F0A0080 37180806 */ ori $t8, (0xBC000806 & 0xFFFF) # ori $t8, $t8, 0x806 +/* 0D4BB4 7F0A0084 02008825 */ move $s1, $s0 +/* 0D4BB8 7F0A0088 AE380000 */ sw $t8, ($s1) +/* 0D4BBC 7F0A008C 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D4BC0 7F0A0090 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D4BC4 7F0A0094 0C003A2C */ jal osVirtualToPhysical +/* 0D4BC8 7F0A0098 26100008 */ addiu $s0, $s0, 8 +/* 0D4BCC 7F0A009C 02001825 */ move $v1, $s0 +/* 0D4BD0 7F0A00A0 AE220004 */ sw $v0, 4($s1) +/* 0D4BD4 7F0A00A4 3C080200 */ lui $t0, 0x200 +/* 0D4BD8 7F0A00A8 25080A50 */ addiu $t0, $t0, 0xa50 +/* 0D4BDC 7F0A00AC 26100008 */ addiu $s0, $s0, 8 +/* 0D4BE0 7F0A00B0 3C190600 */ lui $t9, 0x600 +/* 0D4BE4 7F0A00B4 AC790000 */ sw $t9, ($v1) +/* 0D4BE8 7F0A00B8 AC680004 */ sw $t0, 4($v1) +/* 0D4BEC 7F0A00BC 02002025 */ move $a0, $s0 +/* 0D4BF0 7F0A00C0 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 +/* 0D4BF4 7F0A00C4 3C0A0050 */ lui $t2, (0x005049D8 >> 16) # lui $t2, 0x50 +/* 0D4BF8 7F0A00C8 354A49D8 */ ori $t2, (0x005049D8 & 0xFFFF) # ori $t2, $t2, 0x49d8 +/* 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) +/* 0D4C10 7F0A00E0 26100008 */ addiu $s0, $s0, 8 +/* 0D4C14 7F0A00E4 0000A825 */ move $s5, $zero +/* 0D4C18 7F0A00E8 19600055 */ blez $t3, .L7F0A0240 +/* 0D4C1C 7F0A00EC 00009825 */ move $s3, $zero +/* 0D4C20 7F0A00F0 3C018005 */ lui $at, %hi(D_800576FC) +/* 0D4C24 7F0A00F4 C43676FC */ lwc1 $f22, %lo(D_800576FC)($at) +/* 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 +/* 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) +/* 0D4C48 7F0A0118 27B40080 */ addiu $s4, $sp, 0x80 +/* 0D4C4C 7F0A011C 8ECC0000 */ lw $t4, ($s6) +.L7F0A0120: +/* 0D4C50 7F0A0120 01931021 */ addu $v0, $t4, $s3 +/* 0D4C54 7F0A0124 8C4D0000 */ lw $t5, ($v0) +/* 0D4C58 7F0A0128 24440004 */ addiu $a0, $v0, 4 +/* 0D4C5C 7F0A012C 24450010 */ addiu $a1, $v0, 0x10 +/* 0D4C60 7F0A0130 19A0003C */ blez $t5, .L7F0A0224 +/* 0D4C64 7F0A0134 00000000 */ nop +/* 0D4C68 7F0A0138 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0D4C6C 7F0A013C 02803025 */ move $a2, $s4 +/* 0D4C70 7F0A0140 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D4C74 7F0A0144 00000000 */ nop +/* 0D4C78 7F0A0148 00402025 */ move $a0, $v0 +/* 0D4C7C 7F0A014C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0D4C80 7F0A0150 02802825 */ move $a1, $s4 +/* 0D4C84 7F0A0154 C7A000B0 */ lwc1 $f0, 0xb0($sp) +/* 0D4C88 7F0A0158 4614003C */ c.lt.s $f0, $f20 +/* 0D4C8C 7F0A015C 00000000 */ nop +/* 0D4C90 7F0A0160 45000030 */ bc1f .L7F0A0224 +/* 0D4C94 7F0A0164 00000000 */ nop +/* 0D4C98 7F0A0168 4600B03C */ c.lt.s $f22, $f0 +/* 0D4C9C 7F0A016C C7A000B4 */ lwc1 $f0, 0xb4($sp) +/* 0D4CA0 7F0A0170 4500002C */ bc1f .L7F0A0224 +/* 0D4CA4 7F0A0174 00000000 */ nop +/* 0D4CA8 7F0A0178 4614003C */ c.lt.s $f0, $f20 +/* 0D4CAC 7F0A017C 00000000 */ nop +/* 0D4CB0 7F0A0180 45000028 */ bc1f .L7F0A0224 +/* 0D4CB4 7F0A0184 00000000 */ nop +/* 0D4CB8 7F0A0188 4600B03C */ c.lt.s $f22, $f0 +/* 0D4CBC 7F0A018C C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0D4CC0 7F0A0190 45000024 */ bc1f .L7F0A0224 +/* 0D4CC4 7F0A0194 00000000 */ nop +/* 0D4CC8 7F0A0198 4614003C */ c.lt.s $f0, $f20 +/* 0D4CCC 7F0A019C 00000000 */ nop +/* 0D4CD0 7F0A01A0 45000020 */ bc1f .L7F0A0224 +/* 0D4CD4 7F0A01A4 00000000 */ nop +/* 0D4CD8 7F0A01A8 4600B03C */ c.lt.s $f22, $f0 +/* 0D4CDC 7F0A01AC 00000000 */ nop +/* 0D4CE0 7F0A01B0 4500001C */ bc1f .L7F0A0224 +/* 0D4CE4 7F0A01B4 00000000 */ nop +/* 0D4CE8 7F0A01B8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D4CEC 7F0A01BC 00000000 */ nop +/* 0D4CF0 7F0A01C0 00409025 */ move $s2, $v0 +/* 0D4CF4 7F0A01C4 02802025 */ move $a0, $s4 +/* 0D4CF8 7F0A01C8 0FC16327 */ jal sub_GAME_7F058C9C +/* 0D4CFC 7F0A01CC 00402825 */ move $a1, $v0 +/* 0D4D00 7F0A01D0 02008825 */ move $s1, $s0 +/* 0D4D04 7F0A01D4 AE370000 */ sw $s7, ($s1) +/* 0D4D08 7F0A01D8 26100008 */ addiu $s0, $s0, 8 +/* 0D4D0C 7F0A01DC 0C003A2C */ jal osVirtualToPhysical +/* 0D4D10 7F0A01E0 02402025 */ move $a0, $s2 +/* 0D4D14 7F0A01E4 AE220004 */ sw $v0, 4($s1) +/* 0D4D18 7F0A01E8 02009025 */ move $s2, $s0 +/* 0D4D1C 7F0A01EC AE5E0000 */ sw $fp, ($s2) +/* 0D4D20 7F0A01F0 8ECE0000 */ lw $t6, ($s6) +/* 0D4D24 7F0A01F4 26100008 */ addiu $s0, $s0, 8 +/* 0D4D28 7F0A01F8 01D32021 */ addu $a0, $t6, $s3 +/* 0D4D2C 7F0A01FC 0C003A2C */ jal osVirtualToPhysical +/* 0D4D30 7F0A0200 24840038 */ addiu $a0, $a0, 0x38 +/* 0D4D34 7F0A0204 02001825 */ move $v1, $s0 +/* 0D4D38 7F0A0208 AE420004 */ sw $v0, 4($s2) +/* 0D4D3C 7F0A020C 3C0FB100 */ lui $t7, (0xB1000032 >> 16) # lui $t7, 0xb100 +/* 0D4D40 7F0A0210 35EF0032 */ ori $t7, (0xB1000032 & 0xFFFF) # ori $t7, $t7, 0x32 +/* 0D4D44 7F0A0214 24182010 */ li $t8, 8208 +/* 0D4D48 7F0A0218 AC780004 */ sw $t8, 4($v1) +/* 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) +/* 0D4D5C 7F0A022C 26B50001 */ addiu $s5, $s5, 1 +/* 0D4D60 7F0A0230 26730078 */ addiu $s3, $s3, 0x78 +/* 0D4D64 7F0A0234 02B9082A */ slt $at, $s5, $t9 +/* 0D4D68 7F0A0238 5420FFB9 */ bnezl $at, .L7F0A0120 +/* 0D4D6C 7F0A023C 8ECC0000 */ lw $t4, ($s6) +.L7F0A0240: +/* 0D4D70 7F0A0240 8FBF004C */ lw $ra, 0x4c($sp) +/* 0D4D74 7F0A0244 02001025 */ move $v0, $s0 +/* 0D4D78 7F0A0248 8FB00028 */ lw $s0, 0x28($sp) +/* 0D4D7C 7F0A024C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D4D80 7F0A0250 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D4D84 7F0A0254 8FB1002C */ lw $s1, 0x2c($sp) +/* 0D4D88 7F0A0258 8FB20030 */ lw $s2, 0x30($sp) +/* 0D4D8C 7F0A025C 8FB30034 */ lw $s3, 0x34($sp) +/* 0D4D90 7F0A0260 8FB40038 */ lw $s4, 0x38($sp) +/* 0D4D94 7F0A0264 8FB5003C */ lw $s5, 0x3c($sp) +/* 0D4D98 7F0A0268 8FB60040 */ lw $s6, 0x40($sp) +/* 0D4D9C 7F0A026C 8FB70044 */ lw $s7, 0x44($sp) +/* 0D4DA0 7F0A0270 8FBE0048 */ lw $fp, 0x48($sp) +/* 0D4DA4 7F0A0274 03E00008 */ jr $ra +/* 0D4DA8 7F0A0278 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A027C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057704 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80057708 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005770C +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F0A027C +/* 0D4DAC 7F0A027C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0D4DB0 7F0A0280 3C0E8004 */ lui $t6, %hi(D_80040920) +/* 0D4DB4 7F0A0284 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D4DB8 7F0A0288 AFB40030 */ sw $s4, 0x30($sp) +/* 0D4DBC 7F0A028C AFB3002C */ sw $s3, 0x2c($sp) +/* 0D4DC0 7F0A0290 AFB20028 */ sw $s2, 0x28($sp) +/* 0D4DC4 7F0A0294 AFB10024 */ sw $s1, 0x24($sp) +/* 0D4DC8 7F0A0298 AFB00020 */ sw $s0, 0x20($sp) +/* 0D4DCC 7F0A029C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D4DD0 7F0A02A0 AFA60070 */ sw $a2, 0x70($sp) +/* 0D4DD4 7F0A02A4 25CE0920 */ addiu $t6, %lo(D_80040920) # addiu $t6, $t6, 0x920 +/* 0D4DD8 7F0A02A8 8DC10000 */ lw $at, ($t6) +/* 0D4DDC 7F0A02AC 27B30058 */ addiu $s3, $sp, 0x58 +/* 0D4DE0 7F0A02B0 4485A000 */ mtc1 $a1, $f20 +/* 0D4DE4 7F0A02B4 AE610000 */ sw $at, ($s3) +/* 0D4DE8 7F0A02B8 8DD90004 */ lw $t9, 4($t6) +/* 0D4DEC 7F0A02BC 0080A025 */ move $s4, $a0 +/* 0D4DF0 7F0A02C0 AE790004 */ sw $t9, 4($s3) +/* 0D4DF4 7F0A02C4 8DC10008 */ lw $at, 8($t6) +/* 0D4DF8 7F0A02C8 AE610008 */ sw $at, 8($s3) +/* 0D4DFC 7F0A02CC 8DD9000C */ lw $t9, 0xc($t6) +/* 0D4E00 7F0A02D0 0C002914 */ jal get_random_value +/* 0D4E04 7F0A02D4 AE79000C */ sw $t9, 0xc($s3) +/* 0D4E08 7F0A02D8 44822000 */ mtc1 $v0, $f4 +/* 0D4E0C 7F0A02DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4E10 7F0A02E0 04410004 */ bgez $v0, .L7F0A02F4 +/* 0D4E14 7F0A02E4 468021A0 */ cvt.s.w $f6, $f4 +/* 0D4E18 7F0A02E8 44814000 */ mtc1 $at, $f8 +/* 0D4E1C 7F0A02EC 00000000 */ nop +/* 0D4E20 7F0A02F0 46083180 */ add.s $f6, $f6, $f8 +.L7F0A02F4: +/* 0D4E24 7F0A02F4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D4E28 7F0A02F8 44815000 */ mtc1 $at, $f10 +/* 0D4E2C 7F0A02FC 3C018005 */ lui $at, %hi(D_80057704) +/* 0D4E30 7F0A0300 C4327704 */ lwc1 $f18, %lo(D_80057704)($at) +/* 0D4E34 7F0A0304 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D4E38 7F0A0308 00000000 */ nop +/* 0D4E3C 7F0A030C 46128102 */ mul.s $f4, $f16, $f18 +/* 0D4E40 7F0A0310 0C002914 */ jal get_random_value +/* 0D4E44 7F0A0314 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0D4E48 7F0A0318 24010050 */ li $at, 80 +/* 0D4E4C 7F0A031C 0041001B */ divu $zero, $v0, $at +/* 0D4E50 7F0A0320 00004010 */ mfhi $t0 +/* 0D4E54 7F0A0324 240900FF */ li $t1, 255 +/* 0D4E58 7F0A0328 01285023 */ subu $t2, $t1, $t0 +/* 0D4E5C 7F0A032C A3AA004B */ sb $t2, 0x4b($sp) +/* 0D4E60 7F0A0330 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D4E64 7F0A0334 87A40072 */ lh $a0, 0x72($sp) +/* 0D4E68 7F0A0338 0FC26919 */ jal get_num_players +/* 0D4E6C 7F0A033C 00408025 */ move $s0, $v0 +/* 0D4E70 7F0A0340 28410002 */ slti $at, $v0, 2 +/* 0D4E74 7F0A0344 102001D2 */ beqz $at, .L7F0A0A90 +/* 0D4E78 7F0A0348 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0D4E7C 7F0A034C 44810000 */ mtc1 $at, $f0 +/* 0D4E80 7F0A0350 00000000 */ nop +/* 0D4E84 7F0A0354 4614003C */ c.lt.s $f0, $f20 +/* 0D4E88 7F0A0358 00000000 */ nop +/* 0D4E8C 7F0A035C 45000002 */ bc1f .L7F0A0368 +/* 0D4E90 7F0A0360 00000000 */ nop +/* 0D4E94 7F0A0364 46000506 */ mov.s $f20, $f0 +.L7F0A0368: +/* 0D4E98 7F0A0368 0C002914 */ jal get_random_value +/* 0D4E9C 7F0A036C 00000000 */ nop +/* 0D4EA0 7F0A0370 44824000 */ mtc1 $v0, $f8 +/* 0D4EA4 7F0A0374 04410005 */ bgez $v0, .L7F0A038C +/* 0D4EA8 7F0A0378 468041A0 */ cvt.s.w $f6, $f8 +/* 0D4EAC 7F0A037C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4EB0 7F0A0380 44815000 */ mtc1 $at, $f10 +/* 0D4EB4 7F0A0384 00000000 */ nop +/* 0D4EB8 7F0A0388 460A3180 */ add.s $f6, $f6, $f10 +.L7F0A038C: +/* 0D4EBC 7F0A038C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D4EC0 7F0A0390 44818000 */ mtc1 $at, $f16 +/* 0D4EC4 7F0A0394 3C018005 */ lui $at, %hi(D_80057708) +/* 0D4EC8 7F0A0398 C4247708 */ lwc1 $f4, %lo(D_80057708)($at) +/* 0D4ECC 7F0A039C 46103482 */ mul.s $f18, $f6, $f16 +/* 0D4ED0 7F0A03A0 3C018005 */ lui $at, %hi(D_8005770C) +/* 0D4ED4 7F0A03A4 C42A770C */ lwc1 $f10, %lo(D_8005770C)($at) +/* 0D4ED8 7F0A03A8 46122202 */ mul.s $f8, $f4, $f18 +/* 0D4EDC 7F0A03AC 46085180 */ add.s $f6, $f10, $f8 +/* 0D4EE0 7F0A03B0 4606A502 */ mul.s $f20, $f20, $f6 +/* 0D4EE4 7F0A03B4 0FC2D20F */ jal get_room_data_float1 +/* 0D4EE8 7F0A03B8 00000000 */ nop +/* 0D4EEC 7F0A03BC C6900000 */ lwc1 $f16, ($s4) +/* 0D4EF0 7F0A03C0 C6120000 */ lwc1 $f18, ($s0) +/* 0D4EF4 7F0A03C4 46008102 */ mul.s $f4, $f16, $f0 +/* 0D4EF8 7F0A03C8 46122281 */ sub.s $f10, $f4, $f18 +/* 0D4EFC 7F0A03CC 0FC2D20F */ jal get_room_data_float1 +/* 0D4F00 7F0A03D0 E68A0000 */ swc1 $f10, ($s4) +/* 0D4F04 7F0A03D4 C6880004 */ lwc1 $f8, 4($s4) +/* 0D4F08 7F0A03D8 C6100004 */ lwc1 $f16, 4($s0) +/* 0D4F0C 7F0A03DC 46004182 */ mul.s $f6, $f8, $f0 +/* 0D4F10 7F0A03E0 46103101 */ sub.s $f4, $f6, $f16 +/* 0D4F14 7F0A03E4 0FC2D20F */ jal get_room_data_float1 +/* 0D4F18 7F0A03E8 E6840004 */ swc1 $f4, 4($s4) +/* 0D4F1C 7F0A03EC C6920008 */ lwc1 $f18, 8($s4) +/* 0D4F20 7F0A03F0 C6080008 */ lwc1 $f8, 8($s0) +/* 0D4F24 7F0A03F4 46009282 */ mul.s $f10, $f18, $f0 +/* 0D4F28 7F0A03F8 46085181 */ sub.s $f6, $f10, $f8 +/* 0D4F2C 7F0A03FC 0FC2D20F */ jal get_room_data_float1 +/* 0D4F30 7F0A0400 E6860008 */ swc1 $f6, 8($s4) +/* 0D4F34 7F0A0404 4600A502 */ mul.s $f20, $f20, $f0 +/* 0D4F38 7F0A0408 0FC15FA8 */ jal cosf +/* 0D4F3C 7F0A040C C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0D4F40 7F0A0410 46140402 */ mul.s $f16, $f0, $f20 +/* 0D4F44 7F0A0414 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0D4F48 7F0A0418 0FC15FAB */ jal sinf +/* 0D4F4C 7F0A041C E7B00050 */ swc1 $f16, 0x50($sp) +/* 0D4F50 7F0A0420 3C128004 */ lui $s2, %hi(D_8004017C+0x688) +/* 0D4F54 7F0A0424 26520804 */ addiu $s2, %lo(D_8004017C+0x688) # addiu $s2, $s2, 0x804 +/* 0D4F58 7F0A0428 8E4D0000 */ lw $t5, ($s2) +/* 0D4F5C 7F0A042C 24110058 */ li $s1, 88 +/* 0D4F60 7F0A0430 46140082 */ mul.s $f2, $f0, $f20 +/* 0D4F64 7F0A0434 3C108008 */ lui $s0, %hi(ptr_scorch_buf) +/* 0D4F68 7F0A0438 01B10019 */ multu $t5, $s1 +/* 0D4F6C 7F0A043C 2610A150 */ addiu $s0, %lo(ptr_scorch_buf) # addiu $s0, $s0, -0x5eb0 +/* 0D4F70 7F0A0440 8E0C0000 */ lw $t4, ($s0) +/* 0D4F74 7F0A0444 87AB0072 */ lh $t3, 0x72($sp) +/* 0D4F78 7F0A0448 E7A2004C */ swc1 $f2, 0x4c($sp) +/* 0D4F7C 7F0A044C 0000C012 */ mflo $t8 +/* 0D4F80 7F0A0450 01987821 */ addu $t7, $t4, $t8 +/* 0D4F84 7F0A0454 A5EB0000 */ sh $t3, ($t7) +/* 0D4F88 7F0A0458 8E590000 */ lw $t9, ($s2) +/* 0D4F8C 7F0A045C 8E0E0000 */ lw $t6, ($s0) +/* 0D4F90 7F0A0460 C6840000 */ lwc1 $f4, ($s4) +/* 0D4F94 7F0A0464 03310019 */ multu $t9, $s1 +/* 0D4F98 7F0A0468 00004812 */ mflo $t1 +/* 0D4F9C 7F0A046C 01C94021 */ addu $t0, $t6, $t1 +/* 0D4FA0 7F0A0470 E5040004 */ swc1 $f4, 4($t0) +/* 0D4FA4 7F0A0474 8E4D0000 */ lw $t5, ($s2) +/* 0D4FA8 7F0A0478 8E0A0000 */ lw $t2, ($s0) +/* 0D4FAC 7F0A047C C6920004 */ lwc1 $f18, 4($s4) +/* 0D4FB0 7F0A0480 01B10019 */ multu $t5, $s1 +/* 0D4FB4 7F0A0484 00006012 */ mflo $t4 +/* 0D4FB8 7F0A0488 014CC021 */ addu $t8, $t2, $t4 +/* 0D4FBC 7F0A048C E7120008 */ swc1 $f18, 8($t8) +/* 0D4FC0 7F0A0490 8E4F0000 */ lw $t7, ($s2) +/* 0D4FC4 7F0A0494 8E0B0000 */ lw $t3, ($s0) +/* 0D4FC8 7F0A0498 C68A0008 */ lwc1 $f10, 8($s4) +/* 0D4FCC 7F0A049C 01F10019 */ multu $t7, $s1 +/* 0D4FD0 7F0A04A0 0000C812 */ mflo $t9 +/* 0D4FD4 7F0A04A4 01797021 */ addu $t6, $t3, $t9 +/* 0D4FD8 7F0A04A8 E5CA000C */ swc1 $f10, 0xc($t6) +/* 0D4FDC 7F0A04AC 8E480000 */ lw $t0, ($s2) +/* 0D4FE0 7F0A04B0 8E090000 */ lw $t1, ($s0) +/* 0D4FE4 7F0A04B4 01110019 */ multu $t0, $s1 +/* 0D4FE8 7F0A04B8 00006812 */ mflo $t5 +/* 0D4FEC 7F0A04BC 012D5021 */ addu $t2, $t1, $t5 +/* 0D4FF0 7F0A04C0 E5540010 */ swc1 $f20, 0x10($t2) +/* 0D4FF4 7F0A04C4 8E580000 */ lw $t8, ($s2) +/* 0D4FF8 7F0A04C8 8E0C0000 */ lw $t4, ($s0) +/* 0D4FFC 7F0A04CC 8E610000 */ lw $at, ($s3) +/* 0D5000 7F0A04D0 03110019 */ multu $t8, $s1 +/* 0D5004 7F0A04D4 00007812 */ mflo $t7 +/* 0D5008 7F0A04D8 018F5821 */ addu $t3, $t4, $t7 +/* 0D500C 7F0A04DC AD610018 */ sw $at, 0x18($t3) +/* 0D5010 7F0A04E0 8E6E0004 */ lw $t6, 4($s3) +/* 0D5014 7F0A04E4 AD6E001C */ sw $t6, 0x1c($t3) +/* 0D5018 7F0A04E8 8E610008 */ lw $at, 8($s3) +/* 0D501C 7F0A04EC AD610020 */ sw $at, 0x20($t3) +/* 0D5020 7F0A04F0 8E6E000C */ lw $t6, 0xc($s3) +/* 0D5024 7F0A04F4 AD6E0024 */ sw $t6, 0x24($t3) +/* 0D5028 7F0A04F8 8E490000 */ lw $t1, ($s2) +/* 0D502C 7F0A04FC 8E080000 */ lw $t0, ($s0) +/* 0D5030 7F0A0500 8E610000 */ lw $at, ($s3) +/* 0D5034 7F0A0504 01310019 */ multu $t1, $s1 +/* 0D5038 7F0A0508 00006812 */ mflo $t5 +/* 0D503C 7F0A050C 010D5021 */ addu $t2, $t0, $t5 +/* 0D5040 7F0A0510 AD410028 */ sw $at, 0x28($t2) +/* 0D5044 7F0A0514 8E6C0004 */ lw $t4, 4($s3) +/* 0D5048 7F0A0518 AD4C002C */ sw $t4, 0x2c($t2) +/* 0D504C 7F0A051C 8E610008 */ lw $at, 8($s3) +/* 0D5050 7F0A0520 AD410030 */ sw $at, 0x30($t2) +/* 0D5054 7F0A0524 8E6C000C */ lw $t4, 0xc($s3) +/* 0D5058 7F0A0528 AD4C0034 */ sw $t4, 0x34($t2) +/* 0D505C 7F0A052C 8E590000 */ lw $t9, ($s2) +/* 0D5060 7F0A0530 8E0F0000 */ lw $t7, ($s0) +/* 0D5064 7F0A0534 8E610000 */ lw $at, ($s3) +/* 0D5068 7F0A0538 03310019 */ multu $t9, $s1 +/* 0D506C 7F0A053C 00005812 */ mflo $t3 +/* 0D5070 7F0A0540 01EB7021 */ addu $t6, $t7, $t3 +/* 0D5074 7F0A0544 ADC10038 */ sw $at, 0x38($t6) +/* 0D5078 7F0A0548 8E680004 */ lw $t0, 4($s3) +/* 0D507C 7F0A054C ADC8003C */ sw $t0, 0x3c($t6) +/* 0D5080 7F0A0550 8E610008 */ lw $at, 8($s3) +/* 0D5084 7F0A0554 ADC10040 */ sw $at, 0x40($t6) +/* 0D5088 7F0A0558 8E68000C */ lw $t0, 0xc($s3) +/* 0D508C 7F0A055C ADC80044 */ sw $t0, 0x44($t6) +/* 0D5090 7F0A0560 8E580000 */ lw $t8, ($s2) +/* 0D5094 7F0A0564 8E0D0000 */ lw $t5, ($s0) +/* 0D5098 7F0A0568 8E610000 */ lw $at, ($s3) +/* 0D509C 7F0A056C 03110019 */ multu $t8, $s1 +/* 0D50A0 7F0A0570 00005012 */ mflo $t2 +/* 0D50A4 7F0A0574 01AA6021 */ addu $t4, $t5, $t2 +/* 0D50A8 7F0A0578 AD810048 */ sw $at, 0x48($t4) +/* 0D50AC 7F0A057C 8E6F0004 */ lw $t7, 4($s3) +/* 0D50B0 7F0A0580 AD8F004C */ sw $t7, 0x4c($t4) +/* 0D50B4 7F0A0584 8E610008 */ lw $at, 8($s3) +/* 0D50B8 7F0A0588 AD810050 */ sw $at, 0x50($t4) +/* 0D50BC 7F0A058C 8E6F000C */ lw $t7, 0xc($s3) +/* 0D50C0 7F0A0590 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D50C4 7F0A0594 44815000 */ mtc1 $at, $f10 +/* 0D50C8 7F0A0598 AD8F0054 */ sw $t7, 0x54($t4) +/* 0D50CC 7F0A059C 8E480000 */ lw $t0, ($s2) +/* 0D50D0 7F0A05A0 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0D50D4 7F0A05A4 C6880000 */ lwc1 $f8, ($s4) +/* 0D50D8 7F0A05A8 01110019 */ multu $t0, $s1 +/* 0D50DC 7F0A05AC 8E0E0000 */ lw $t6, ($s0) +/* 0D50E0 7F0A05B0 46064400 */ add.s $f16, $f8, $f6 +/* 0D50E4 7F0A05B4 4600810D */ trunc.w.s $f4, $f16 +/* 0D50E8 7F0A05B8 44092000 */ mfc1 $t1, $f4 +/* 0D50EC 7F0A05BC 0000C012 */ mflo $t8 +/* 0D50F0 7F0A05C0 01D86821 */ addu $t5, $t6, $t8 +/* 0D50F4 7F0A05C4 A5A90018 */ sh $t1, 0x18($t5) +/* 0D50F8 7F0A05C8 8E4F0000 */ lw $t7, ($s2) +/* 0D50FC 7F0A05CC C6920004 */ lwc1 $f18, 4($s4) +/* 0D5100 7F0A05D0 8E0C0000 */ lw $t4, ($s0) +/* 0D5104 7F0A05D4 01F10019 */ multu $t7, $s1 +/* 0D5108 7F0A05D8 460A9200 */ add.s $f8, $f18, $f10 +/* 0D510C 7F0A05DC 3C0E8009 */ lui $t6, %hi(genericimage) +/* 0D5110 7F0A05E0 4600418D */ trunc.w.s $f6, $f8 +/* 0D5114 7F0A05E4 44193000 */ mfc1 $t9, $f6 +/* 0D5118 7F0A05E8 00005812 */ mflo $t3 +/* 0D511C 7F0A05EC 018B4021 */ addu $t0, $t4, $t3 +/* 0D5120 7F0A05F0 A519001A */ sh $t9, 0x1a($t0) +/* 0D5124 7F0A05F4 8E4D0000 */ lw $t5, ($s2) +/* 0D5128 7F0A05F8 C6900008 */ lwc1 $f16, 8($s4) +/* 0D512C 7F0A05FC 8E090000 */ lw $t1, ($s0) +/* 0D5130 7F0A0600 01B10019 */ multu $t5, $s1 +/* 0D5134 7F0A0604 46028100 */ add.s $f4, $f16, $f2 +/* 0D5138 7F0A0608 4600248D */ trunc.w.s $f18, $f4 +/* 0D513C 7F0A060C 44189000 */ mfc1 $t8, $f18 +/* 0D5140 7F0A0610 00005012 */ mflo $t2 +/* 0D5144 7F0A0614 012A7821 */ addu $t7, $t1, $t2 +/* 0D5148 7F0A0618 A5F8001C */ sh $t8, 0x1c($t7) +/* 0D514C 7F0A061C 8E4B0000 */ lw $t3, ($s2) +/* 0D5150 7F0A0620 8E0C0000 */ lw $t4, ($s0) +/* 0D5154 7F0A0624 01710019 */ multu $t3, $s1 +/* 0D5158 7F0A0628 0000C812 */ mflo $t9 +/* 0D515C 7F0A062C 01994021 */ addu $t0, $t4, $t9 +/* 0D5160 7F0A0630 A5000020 */ sh $zero, 0x20($t0) +/* 0D5164 7F0A0634 8E580000 */ lw $t8, ($s2) +/* 0D5168 7F0A0638 8DCED0B8 */ lw $t6, %lo(genericimage)($t6) +/* 0D516C 7F0A063C 8E0A0000 */ lw $t2, ($s0) +/* 0D5170 7F0A0640 03110019 */ multu $t8, $s1 +/* 0D5174 7F0A0644 91CD0004 */ lbu $t5, 4($t6) +/* 0D5178 7F0A0648 000D4940 */ sll $t1, $t5, 5 +/* 0D517C 7F0A064C 00007812 */ mflo $t7 +/* 0D5180 7F0A0650 014F5821 */ addu $t3, $t2, $t7 +/* 0D5184 7F0A0654 0C002914 */ jal get_random_value +/* 0D5188 7F0A0658 A5690022 */ sh $t1, 0x22($t3) +/* 0D518C 7F0A065C 24010032 */ li $at, 50 +/* 0D5190 7F0A0660 0041001B */ divu $zero, $v0, $at +/* 0D5194 7F0A0664 00009810 */ mfhi $s3 +/* 0D5198 7F0A0668 8E590000 */ lw $t9, ($s2) +/* 0D519C 7F0A066C 8E0C0000 */ lw $t4, ($s0) +/* 0D51A0 7F0A0670 C7B4004C */ lwc1 $f20, 0x4c($sp) +/* 0D51A4 7F0A0674 03310019 */ multu $t9, $s1 +/* 0D51A8 7F0A0678 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D51AC 7F0A067C 44812000 */ mtc1 $at, $f4 +/* 0D51B0 7F0A0680 00004012 */ mflo $t0 +/* 0D51B4 7F0A0684 01887021 */ addu $t6, $t4, $t0 +/* 0D51B8 7F0A0688 A1D30026 */ sb $s3, 0x26($t6) +/* 0D51BC 7F0A068C 8E580000 */ lw $t8, ($s2) +/* 0D51C0 7F0A0690 8E0D0000 */ lw $t5, ($s0) +/* 0D51C4 7F0A0694 03110019 */ multu $t8, $s1 +/* 0D51C8 7F0A0698 00005012 */ mflo $t2 +/* 0D51CC 7F0A069C 01AA7821 */ addu $t7, $t5, $t2 +/* 0D51D0 7F0A06A0 A1F30025 */ sb $s3, 0x25($t7) +/* 0D51D4 7F0A06A4 8E4B0000 */ lw $t3, ($s2) +/* 0D51D8 7F0A06A8 8E090000 */ lw $t1, ($s0) +/* 0D51DC 7F0A06AC 01710019 */ multu $t3, $s1 +/* 0D51E0 7F0A06B0 0000C812 */ mflo $t9 +/* 0D51E4 7F0A06B4 01396021 */ addu $t4, $t1, $t9 +/* 0D51E8 7F0A06B8 A1930024 */ sb $s3, 0x24($t4) +/* 0D51EC 7F0A06BC 8E580000 */ lw $t8, ($s2) +/* 0D51F0 7F0A06C0 8E0E0000 */ lw $t6, ($s0) +/* 0D51F4 7F0A06C4 93A8004B */ lbu $t0, 0x4b($sp) +/* 0D51F8 7F0A06C8 03110019 */ multu $t8, $s1 +/* 0D51FC 7F0A06CC 00006812 */ mflo $t5 +/* 0D5200 7F0A06D0 01CD5021 */ addu $t2, $t6, $t5 +/* 0D5204 7F0A06D4 A1480027 */ sb $t0, 0x27($t2) +/* 0D5208 7F0A06D8 8E590000 */ lw $t9, ($s2) +/* 0D520C 7F0A06DC C68A0000 */ lwc1 $f10, ($s4) +/* 0D5210 7F0A06E0 8E090000 */ lw $t1, ($s0) +/* 0D5214 7F0A06E4 03310019 */ multu $t9, $s1 +/* 0D5218 7F0A06E8 46145200 */ add.s $f8, $f10, $f20 +/* 0D521C 7F0A06EC 4600418D */ trunc.w.s $f6, $f8 +/* 0D5220 7F0A06F0 440B3000 */ mfc1 $t3, $f6 +/* 0D5224 7F0A06F4 00006012 */ mflo $t4 +/* 0D5228 7F0A06F8 012CC021 */ addu $t8, $t1, $t4 +/* 0D522C 7F0A06FC A70B0028 */ sh $t3, 0x28($t8) +/* 0D5230 7F0A0700 8E4A0000 */ lw $t2, ($s2) +/* 0D5234 7F0A0704 C6900004 */ lwc1 $f16, 4($s4) +/* 0D5238 7F0A0708 8E080000 */ lw $t0, ($s0) +/* 0D523C 7F0A070C 01510019 */ multu $t2, $s1 +/* 0D5240 7F0A0710 46048480 */ add.s $f18, $f16, $f4 +/* 0D5244 7F0A0714 4600928D */ trunc.w.s $f10, $f18 +/* 0D5248 7F0A0718 440D5000 */ mfc1 $t5, $f10 +/* 0D524C 7F0A071C 00007812 */ mflo $t7 +/* 0D5250 7F0A0720 010FC821 */ addu $t9, $t0, $t7 +/* 0D5254 7F0A0724 A72D002A */ sh $t5, 0x2a($t9) +/* 0D5258 7F0A0728 8E580000 */ lw $t8, ($s2) +/* 0D525C 7F0A072C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0D5260 7F0A0730 C6880008 */ lwc1 $f8, 8($s4) +/* 0D5264 7F0A0734 03110019 */ multu $t8, $s1 +/* 0D5268 7F0A0738 8E0B0000 */ lw $t3, ($s0) +/* 0D526C 7F0A073C 46064401 */ sub.s $f16, $f8, $f6 +/* 0D5270 7F0A0740 4600810D */ trunc.w.s $f4, $f16 +/* 0D5274 7F0A0744 440C2000 */ mfc1 $t4, $f4 +/* 0D5278 7F0A0748 00007012 */ mflo $t6 +/* 0D527C 7F0A074C 016E5021 */ addu $t2, $t3, $t6 +/* 0D5280 7F0A0750 A54C002C */ sh $t4, 0x2c($t2) +/* 0D5284 7F0A0754 8E4F0000 */ lw $t7, ($s2) +/* 0D5288 7F0A0758 8E080000 */ lw $t0, ($s0) +/* 0D528C 7F0A075C 01F10019 */ multu $t7, $s1 +/* 0D5290 7F0A0760 00006812 */ mflo $t5 +/* 0D5294 7F0A0764 010DC821 */ addu $t9, $t0, $t5 +/* 0D5298 7F0A0768 A7200030 */ sh $zero, 0x30($t9) +/* 0D529C 7F0A076C 8E580000 */ lw $t8, ($s2) +/* 0D52A0 7F0A0770 8E090000 */ lw $t1, ($s0) +/* 0D52A4 7F0A0774 03110019 */ multu $t8, $s1 +/* 0D52A8 7F0A0778 00005812 */ mflo $t3 +/* 0D52AC 7F0A077C 012B7021 */ addu $t6, $t1, $t3 +/* 0D52B0 7F0A0780 0C002914 */ jal get_random_value +/* 0D52B4 7F0A0784 A5C00032 */ sh $zero, 0x32($t6) +/* 0D52B8 7F0A0788 24010032 */ li $at, 50 +/* 0D52BC 7F0A078C 0041001B */ divu $zero, $v0, $at +/* 0D52C0 7F0A0790 00009810 */ mfhi $s3 +/* 0D52C4 7F0A0794 8E4A0000 */ lw $t2, ($s2) +/* 0D52C8 7F0A0798 8E0C0000 */ lw $t4, ($s0) +/* 0D52CC 7F0A079C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D52D0 7F0A07A0 01510019 */ multu $t2, $s1 +/* 0D52D4 7F0A07A4 44812000 */ mtc1 $at, $f4 +/* 0D52D8 7F0A07A8 00007812 */ mflo $t7 +/* 0D52DC 7F0A07AC 018F4021 */ addu $t0, $t4, $t7 +/* 0D52E0 7F0A07B0 A1130036 */ sb $s3, 0x36($t0) +/* 0D52E4 7F0A07B4 8E590000 */ lw $t9, ($s2) +/* 0D52E8 7F0A07B8 8E0D0000 */ lw $t5, ($s0) +/* 0D52EC 7F0A07BC 03310019 */ multu $t9, $s1 +/* 0D52F0 7F0A07C0 0000C012 */ mflo $t8 +/* 0D52F4 7F0A07C4 01B84821 */ addu $t1, $t5, $t8 +/* 0D52F8 7F0A07C8 A1330035 */ sb $s3, 0x35($t1) +/* 0D52FC 7F0A07CC 8E4E0000 */ lw $t6, ($s2) +/* 0D5300 7F0A07D0 8E0B0000 */ lw $t3, ($s0) +/* 0D5304 7F0A07D4 01D10019 */ multu $t6, $s1 +/* 0D5308 7F0A07D8 00005012 */ mflo $t2 +/* 0D530C 7F0A07DC 016A6021 */ addu $t4, $t3, $t2 +/* 0D5310 7F0A07E0 A1930034 */ sb $s3, 0x34($t4) +/* 0D5314 7F0A07E4 8E590000 */ lw $t9, ($s2) +/* 0D5318 7F0A07E8 8E080000 */ lw $t0, ($s0) +/* 0D531C 7F0A07EC 93AF004B */ lbu $t7, 0x4b($sp) +/* 0D5320 7F0A07F0 03310019 */ multu $t9, $s1 +/* 0D5324 7F0A07F4 00006812 */ mflo $t5 +/* 0D5328 7F0A07F8 010DC021 */ addu $t8, $t0, $t5 +/* 0D532C 7F0A07FC A30F0037 */ sb $t7, 0x37($t8) +/* 0D5330 7F0A0800 8E4A0000 */ lw $t2, ($s2) +/* 0D5334 7F0A0804 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0D5338 7F0A0808 C6920000 */ lwc1 $f18, ($s4) +/* 0D533C 7F0A080C 01510019 */ multu $t2, $s1 +/* 0D5340 7F0A0810 8E0B0000 */ lw $t3, ($s0) +/* 0D5344 7F0A0814 460A9201 */ sub.s $f8, $f18, $f10 +/* 0D5348 7F0A0818 4600418D */ trunc.w.s $f6, $f8 +/* 0D534C 7F0A081C 440E3000 */ mfc1 $t6, $f6 +/* 0D5350 7F0A0820 00006012 */ mflo $t4 +/* 0D5354 7F0A0824 016CC821 */ addu $t9, $t3, $t4 +/* 0D5358 7F0A0828 A72E0038 */ sh $t6, 0x38($t9) +/* 0D535C 7F0A082C 8E580000 */ lw $t8, ($s2) +/* 0D5360 7F0A0830 C6900004 */ lwc1 $f16, 4($s4) +/* 0D5364 7F0A0834 8E0F0000 */ lw $t7, ($s0) +/* 0D5368 7F0A0838 03110019 */ multu $t8, $s1 +/* 0D536C 7F0A083C 46048480 */ add.s $f18, $f16, $f4 +/* 0D5370 7F0A0840 4600928D */ trunc.w.s $f10, $f18 +/* 0D5374 7F0A0844 440D5000 */ mfc1 $t5, $f10 +/* 0D5378 7F0A0848 00004812 */ mflo $t1 +/* 0D537C 7F0A084C 01E95021 */ addu $t2, $t7, $t1 +/* 0D5380 7F0A0850 A54D003A */ sh $t5, 0x3a($t2) +/* 0D5384 7F0A0854 8E590000 */ lw $t9, ($s2) +/* 0D5388 7F0A0858 C6880008 */ lwc1 $f8, 8($s4) +/* 0D538C 7F0A085C 8E0E0000 */ lw $t6, ($s0) +/* 0D5390 7F0A0860 03310019 */ multu $t9, $s1 +/* 0D5394 7F0A0864 46144181 */ sub.s $f6, $f8, $f20 +/* 0D5398 7F0A0868 3C0F8009 */ lui $t7, %hi(genericimage) +/* 0D539C 7F0A086C 4600340D */ trunc.w.s $f16, $f6 +/* 0D53A0 7F0A0870 440C8000 */ mfc1 $t4, $f16 +/* 0D53A4 7F0A0874 00004012 */ mflo $t0 +/* 0D53A8 7F0A0878 01C8C021 */ addu $t8, $t6, $t0 +/* 0D53AC 7F0A087C A70C003C */ sh $t4, 0x3c($t8) +/* 0D53B0 7F0A0880 8E4B0000 */ lw $t3, ($s2) +/* 0D53B4 7F0A0884 8DEFD0B8 */ lw $t7, %lo(genericimage)($t7) +/* 0D53B8 7F0A0888 8E0A0000 */ lw $t2, ($s0) +/* 0D53BC 7F0A088C 01710019 */ multu $t3, $s1 +/* 0D53C0 7F0A0890 91E90005 */ lbu $t1, 5($t7) +/* 0D53C4 7F0A0894 00096940 */ sll $t5, $t1, 5 +/* 0D53C8 7F0A0898 0000C812 */ mflo $t9 +/* 0D53CC 7F0A089C 01597021 */ addu $t6, $t2, $t9 +/* 0D53D0 7F0A08A0 A5CD0040 */ sh $t5, 0x40($t6) +/* 0D53D4 7F0A08A4 8E4C0000 */ lw $t4, ($s2) +/* 0D53D8 7F0A08A8 8E080000 */ lw $t0, ($s0) +/* 0D53DC 7F0A08AC 01910019 */ multu $t4, $s1 +/* 0D53E0 7F0A08B0 0000C012 */ mflo $t8 +/* 0D53E4 7F0A08B4 01187821 */ addu $t7, $t0, $t8 +/* 0D53E8 7F0A08B8 0C002914 */ jal get_random_value +/* 0D53EC 7F0A08BC A5E00042 */ sh $zero, 0x42($t7) +/* 0D53F0 7F0A08C0 24010032 */ li $at, 50 +/* 0D53F4 7F0A08C4 0041001B */ divu $zero, $v0, $at +/* 0D53F8 7F0A08C8 00009810 */ mfhi $s3 +/* 0D53FC 7F0A08CC 8E4B0000 */ lw $t3, ($s2) +/* 0D5400 7F0A08D0 8E090000 */ lw $t1, ($s0) +/* 0D5404 7F0A08D4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D5408 7F0A08D8 01710019 */ multu $t3, $s1 +/* 0D540C 7F0A08DC 44813000 */ mtc1 $at, $f6 +/* 0D5410 7F0A08E0 00005012 */ mflo $t2 +/* 0D5414 7F0A08E4 012AC821 */ addu $t9, $t1, $t2 +/* 0D5418 7F0A08E8 A3330046 */ sb $s3, 0x46($t9) +/* 0D541C 7F0A08EC 8E4E0000 */ lw $t6, ($s2) +/* 0D5420 7F0A08F0 8E0D0000 */ lw $t5, ($s0) +/* 0D5424 7F0A08F4 01D10019 */ multu $t6, $s1 +/* 0D5428 7F0A08F8 00006012 */ mflo $t4 +/* 0D542C 7F0A08FC 01AC4021 */ addu $t0, $t5, $t4 +/* 0D5430 7F0A0900 A1130045 */ sb $s3, 0x45($t0) +/* 0D5434 7F0A0904 8E4F0000 */ lw $t7, ($s2) +/* 0D5438 7F0A0908 8E180000 */ lw $t8, ($s0) +/* 0D543C 7F0A090C 01F10019 */ multu $t7, $s1 +/* 0D5440 7F0A0910 00005812 */ mflo $t3 +/* 0D5444 7F0A0914 030B4821 */ addu $t1, $t8, $t3 +/* 0D5448 7F0A0918 A1330044 */ sb $s3, 0x44($t1) +/* 0D544C 7F0A091C 8E4E0000 */ lw $t6, ($s2) +/* 0D5450 7F0A0920 8E190000 */ lw $t9, ($s0) +/* 0D5454 7F0A0924 93AA004B */ lbu $t2, 0x4b($sp) +/* 0D5458 7F0A0928 01D10019 */ multu $t6, $s1 +/* 0D545C 7F0A092C 00006812 */ mflo $t5 +/* 0D5460 7F0A0930 032D6021 */ addu $t4, $t9, $t5 +/* 0D5464 7F0A0934 A18A0047 */ sb $t2, 0x47($t4) +/* 0D5468 7F0A0938 8E4B0000 */ lw $t3, ($s2) +/* 0D546C 7F0A093C C6840000 */ lwc1 $f4, ($s4) +/* 0D5470 7F0A0940 8E180000 */ lw $t8, ($s0) +/* 0D5474 7F0A0944 01710019 */ multu $t3, $s1 +/* 0D5478 7F0A0948 46142481 */ sub.s $f18, $f4, $f20 +/* 0D547C 7F0A094C 4600928D */ trunc.w.s $f10, $f18 +/* 0D5480 7F0A0950 440F5000 */ mfc1 $t7, $f10 +/* 0D5484 7F0A0954 00004812 */ mflo $t1 +/* 0D5488 7F0A0958 03097021 */ addu $t6, $t8, $t1 +/* 0D548C 7F0A095C A5CF0048 */ sh $t7, 0x48($t6) +/* 0D5490 7F0A0960 8E4C0000 */ lw $t4, ($s2) +/* 0D5494 7F0A0964 C6880004 */ lwc1 $f8, 4($s4) +/* 0D5498 7F0A0968 8E0A0000 */ lw $t2, ($s0) +/* 0D549C 7F0A096C 01910019 */ multu $t4, $s1 +/* 0D54A0 7F0A0970 46064400 */ add.s $f16, $f8, $f6 +/* 0D54A4 7F0A0974 4600810D */ trunc.w.s $f4, $f16 +/* 0D54A8 7F0A0978 440D2000 */ mfc1 $t5, $f4 +/* 0D54AC 7F0A097C 00004012 */ mflo $t0 +/* 0D54B0 7F0A0980 01485821 */ addu $t3, $t2, $t0 +/* 0D54B4 7F0A0984 A56D004A */ sh $t5, 0x4a($t3) +/* 0D54B8 7F0A0988 8E4E0000 */ lw $t6, ($s2) +/* 0D54BC 7F0A098C C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0D54C0 7F0A0990 C6920008 */ lwc1 $f18, 8($s4) +/* 0D54C4 7F0A0994 01D10019 */ multu $t6, $s1 +/* 0D54C8 7F0A0998 8E0F0000 */ lw $t7, ($s0) +/* 0D54CC 7F0A099C 460A9200 */ add.s $f8, $f18, $f10 +/* 0D54D0 7F0A09A0 3C0A8009 */ lui $t2, %hi(genericimage) +/* 0D54D4 7F0A09A4 4600418D */ trunc.w.s $f6, $f8 +/* 0D54D8 7F0A09A8 44093000 */ mfc1 $t1, $f6 +/* 0D54DC 7F0A09AC 0000C812 */ mflo $t9 +/* 0D54E0 7F0A09B0 01F96021 */ addu $t4, $t7, $t9 +/* 0D54E4 7F0A09B4 A589004C */ sh $t1, 0x4c($t4) +/* 0D54E8 7F0A09B8 8E580000 */ lw $t8, ($s2) +/* 0D54EC 7F0A09BC 8D4AD0B8 */ lw $t2, %lo(genericimage)($t2) +/* 0D54F0 7F0A09C0 8E0B0000 */ lw $t3, ($s0) +/* 0D54F4 7F0A09C4 03110019 */ multu $t8, $s1 +/* 0D54F8 7F0A09C8 91480004 */ lbu $t0, 4($t2) +/* 0D54FC 7F0A09CC 3C198009 */ lui $t9, %hi(genericimage) +/* 0D5500 7F0A09D0 00086940 */ sll $t5, $t0, 5 +/* 0D5504 7F0A09D4 00007012 */ mflo $t6 +/* 0D5508 7F0A09D8 016E7821 */ addu $t7, $t3, $t6 +/* 0D550C 7F0A09DC A5ED0050 */ sh $t5, 0x50($t7) +/* 0D5510 7F0A09E0 8E480000 */ lw $t0, ($s2) +/* 0D5514 7F0A09E4 8F39D0B8 */ lw $t9, %lo(genericimage)($t9) +/* 0D5518 7F0A09E8 8E0A0000 */ lw $t2, ($s0) +/* 0D551C 7F0A09EC 01110019 */ multu $t0, $s1 +/* 0D5520 7F0A09F0 93290005 */ lbu $t1, 5($t9) +/* 0D5524 7F0A09F4 00096140 */ sll $t4, $t1, 5 +/* 0D5528 7F0A09F8 0000C012 */ mflo $t8 +/* 0D552C 7F0A09FC 01585821 */ addu $t3, $t2, $t8 +/* 0D5530 7F0A0A00 0C002914 */ jal get_random_value +/* 0D5534 7F0A0A04 A56C0052 */ sh $t4, 0x52($t3) +/* 0D5538 7F0A0A08 24010032 */ li $at, 50 +/* 0D553C 7F0A0A0C 0041001B */ divu $zero, $v0, $at +/* 0D5540 7F0A0A10 00009810 */ mfhi $s3 +/* 0D5544 7F0A0A14 8E4D0000 */ lw $t5, ($s2) +/* 0D5548 7F0A0A18 8E0E0000 */ lw $t6, ($s0) +/* 0D554C 7F0A0A1C 01B10019 */ multu $t5, $s1 +/* 0D5550 7F0A0A20 00007812 */ mflo $t7 +/* 0D5554 7F0A0A24 01CFC821 */ addu $t9, $t6, $t7 +/* 0D5558 7F0A0A28 A3330056 */ sb $s3, 0x56($t9) +/* 0D555C 7F0A0A2C 8E480000 */ lw $t0, ($s2) +/* 0D5560 7F0A0A30 8E090000 */ lw $t1, ($s0) +/* 0D5564 7F0A0A34 01110019 */ multu $t0, $s1 +/* 0D5568 7F0A0A38 00005012 */ mflo $t2 +/* 0D556C 7F0A0A3C 012AC021 */ addu $t8, $t1, $t2 +/* 0D5570 7F0A0A40 A3130055 */ sb $s3, 0x55($t8) +/* 0D5574 7F0A0A44 8E4B0000 */ lw $t3, ($s2) +/* 0D5578 7F0A0A48 8E0C0000 */ lw $t4, ($s0) +/* 0D557C 7F0A0A4C 01710019 */ multu $t3, $s1 +/* 0D5580 7F0A0A50 00006812 */ mflo $t5 +/* 0D5584 7F0A0A54 018D7021 */ addu $t6, $t4, $t5 +/* 0D5588 7F0A0A58 A1D30054 */ sb $s3, 0x54($t6) +/* 0D558C 7F0A0A5C 8E480000 */ lw $t0, ($s2) +/* 0D5590 7F0A0A60 8E190000 */ lw $t9, ($s0) +/* 0D5594 7F0A0A64 93AF004B */ lbu $t7, 0x4b($sp) +/* 0D5598 7F0A0A68 01110019 */ multu $t0, $s1 +/* 0D559C 7F0A0A6C 00004812 */ mflo $t1 +/* 0D55A0 7F0A0A70 03295021 */ addu $t2, $t9, $t1 +/* 0D55A4 7F0A0A74 A14F0057 */ sb $t7, 0x57($t2) +/* 0D55A8 7F0A0A78 8E580000 */ lw $t8, ($s2) +/* 0D55AC 7F0A0A7C 270B0001 */ addiu $t3, $t8, 1 +/* 0D55B0 7F0A0A80 29610014 */ slti $at, $t3, 0x14 +/* 0D55B4 7F0A0A84 14200002 */ bnez $at, .L7F0A0A90 +/* 0D55B8 7F0A0A88 AE4B0000 */ sw $t3, ($s2) +/* 0D55BC 7F0A0A8C AE400000 */ sw $zero, ($s2) +.L7F0A0A90: +/* 0D55C0 7F0A0A90 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D55C4 7F0A0A94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D55C8 7F0A0A98 8FB00020 */ lw $s0, 0x20($sp) +/* 0D55CC 7F0A0A9C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D55D0 7F0A0AA0 8FB20028 */ lw $s2, 0x28($sp) +/* 0D55D4 7F0A0AA4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D55D8 7F0A0AA8 8FB40030 */ lw $s4, 0x30($sp) +/* 0D55DC 7F0A0AAC 03E00008 */ jr $ra +/* 0D55E0 7F0A0AB0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0AB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0AB4 +/* 0D55E4 7F0A0AB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0D55E8 7F0A0AB8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D55EC 7F0A0ABC AFB30028 */ sw $s3, 0x28($sp) +/* 0D55F0 7F0A0AC0 AFB70038 */ sw $s7, 0x38($sp) +/* 0D55F4 7F0A0AC4 AFB60034 */ sw $s6, 0x34($sp) +/* 0D55F8 7F0A0AC8 AFB50030 */ sw $s5, 0x30($sp) +/* 0D55FC 7F0A0ACC AFB4002C */ sw $s4, 0x2c($sp) +/* 0D5600 7F0A0AD0 AFB20024 */ sw $s2, 0x24($sp) +/* 0D5604 7F0A0AD4 AFB10020 */ sw $s1, 0x20($sp) +/* 0D5608 7F0A0AD8 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D560C 7F0A0ADC AFA40040 */ sw $a0, 0x40($sp) +/* 0D5610 7F0A0AE0 0FC26919 */ jal get_num_players +/* 0D5614 7F0A0AE4 2413FFFF */ li $s3, -1 +/* 0D5618 7F0A0AE8 28410002 */ slti $at, $v0, 2 +/* 0D561C 7F0A0AEC 14200003 */ bnez $at, .L7F0A0AFC +/* 0D5620 7F0A0AF0 8FAE0040 */ lw $t6, 0x40($sp) +/* 0D5624 7F0A0AF4 10000054 */ b .L7F0A0C48 +/* 0D5628 7F0A0AF8 8FA20040 */ lw $v0, 0x40($sp) +.L7F0A0AFC: +/* 0D562C 7F0A0AFC 25CF0008 */ addiu $t7, $t6, 8 +/* 0D5630 7F0A0B00 AFAF0040 */ sw $t7, 0x40($sp) +/* 0D5634 7F0A0B04 3C18B700 */ lui $t8, 0xb700 +/* 0D5638 7F0A0B08 24192000 */ li $t9, 8192 +/* 0D563C 7F0A0B0C ADD90004 */ sw $t9, 4($t6) +/* 0D5640 7F0A0B10 ADD80000 */ sw $t8, ($t6) +/* 0D5644 7F0A0B14 8FA90040 */ lw $t1, 0x40($sp) +/* 0D5648 7F0A0B18 3C0C0001 */ lui $t4, (0x00011000 >> 16) # lui $t4, 1 +/* 0D564C 7F0A0B1C 358C1000 */ ori $t4, (0x00011000 & 0xFFFF) # ori $t4, $t4, 0x1000 +/* 0D5650 7F0A0B20 252A0008 */ addiu $t2, $t1, 8 +/* 0D5654 7F0A0B24 AFAA0040 */ sw $t2, 0x40($sp) +/* 0D5658 7F0A0B28 3C0BB600 */ lui $t3, 0xb600 +/* 0D565C 7F0A0B2C AD2B0000 */ sw $t3, ($t1) +/* 0D5660 7F0A0B30 AD2C0004 */ sw $t4, 4($t1) +/* 0D5664 7F0A0B34 8FAD0040 */ lw $t5, 0x40($sp) +/* 0D5668 7F0A0B38 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 0D566C 7F0A0B3C 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 0D5670 7F0A0B40 25AE0008 */ addiu $t6, $t5, 8 +/* 0D5674 7F0A0B44 AFAE0040 */ sw $t6, 0x40($sp) +/* 0D5678 7F0A0B48 24180080 */ li $t8, 128 +/* 0D567C 7F0A0B4C 24190002 */ li $t9, 2 +/* 0D5680 7F0A0B50 3C058009 */ lui $a1, %hi(genericimage) +/* 0D5684 7F0A0B54 ADB80004 */ sw $t8, 4($t5) +/* 0D5688 7F0A0B58 ADAF0000 */ sw $t7, ($t5) +/* 0D568C 7F0A0B5C AFB90010 */ sw $t9, 0x10($sp) +/* 0D5690 7F0A0B60 8CA5D0B8 */ lw $a1, %lo(genericimage)($a1) +/* 0D5694 7F0A0B64 27A40040 */ addiu $a0, $sp, 0x40 +/* 0D5698 7F0A0B68 24060004 */ li $a2, 4 +/* 0D569C 7F0A0B6C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D56A0 7F0A0B70 24070001 */ li $a3, 1 +/* 0D56A4 7F0A0B74 3C15B100 */ lui $s5, (0xB1000032 >> 16) # lui $s5, 0xb100 +/* 0D56A8 7F0A0B78 3C140430 */ lui $s4, (0x04300040 >> 16) # lui $s4, 0x430 +/* 0D56AC 7F0A0B7C 3C128008 */ lui $s2, %hi(ptr_scorch_buf) +/* 0D56B0 7F0A0B80 2652A150 */ addiu $s2, %lo(ptr_scorch_buf) # addiu $s2, $s2, -0x5eb0 +/* 0D56B4 7F0A0B84 36940040 */ ori $s4, (0x04300040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0D56B8 7F0A0B88 36B50032 */ ori $s5, (0xB1000032 & 0xFFFF) # ori $s5, $s5, 0x32 +/* 0D56BC 7F0A0B8C 00008025 */ move $s0, $zero +/* 0D56C0 7F0A0B90 241706E0 */ li $s7, 1760 +/* 0D56C4 7F0A0B94 24162010 */ li $s6, 8208 +/* 0D56C8 7F0A0B98 8E490000 */ lw $t1, ($s2) +.L7F0A0B9C: +/* 0D56CC 7F0A0B9C 01305021 */ addu $t2, $t1, $s0 +/* 0D56D0 7F0A0BA0 85450000 */ lh $a1, ($t2) +/* 0D56D4 7F0A0BA4 04A2001D */ bltzl $a1, .L7F0A0C1C +/* 0D56D8 7F0A0BA8 26100058 */ addiu $s0, $s0, 0x58 +/* 0D56DC 7F0A0BAC 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0D56E0 7F0A0BB0 00A02025 */ move $a0, $a1 +/* 0D56E4 7F0A0BB4 50400019 */ beql $v0, $zero, .L7F0A0C1C +/* 0D56E8 7F0A0BB8 26100058 */ addiu $s0, $s0, 0x58 +/* 0D56EC 7F0A0BBC 8E4B0000 */ lw $t3, ($s2) +/* 0D56F0 7F0A0BC0 8FA40040 */ lw $a0, 0x40($sp) +/* 0D56F4 7F0A0BC4 01706021 */ addu $t4, $t3, $s0 +/* 0D56F8 7F0A0BC8 85850000 */ lh $a1, ($t4) +/* 0D56FC 7F0A0BCC 52650005 */ beql $s3, $a1, .L7F0A0BE4 +/* 0D5700 7F0A0BD0 8FB10040 */ lw $s1, 0x40($sp) +/* 0D5704 7F0A0BD4 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D5708 7F0A0BD8 00A09825 */ move $s3, $a1 +/* 0D570C 7F0A0BDC AFA20040 */ sw $v0, 0x40($sp) +/* 0D5710 7F0A0BE0 8FB10040 */ lw $s1, 0x40($sp) +.L7F0A0BE4: +/* 0D5714 7F0A0BE4 262E0008 */ addiu $t6, $s1, 8 +/* 0D5718 7F0A0BE8 AFAE0040 */ sw $t6, 0x40($sp) +/* 0D571C 7F0A0BEC AE340000 */ sw $s4, ($s1) +/* 0D5720 7F0A0BF0 8E4F0000 */ lw $t7, ($s2) +/* 0D5724 7F0A0BF4 01F02021 */ addu $a0, $t7, $s0 +/* 0D5728 7F0A0BF8 0C003A2C */ jal osVirtualToPhysical +/* 0D572C 7F0A0BFC 24840018 */ addiu $a0, $a0, 0x18 +/* 0D5730 7F0A0C00 AE220004 */ sw $v0, 4($s1) +/* 0D5734 7F0A0C04 8FB80040 */ lw $t8, 0x40($sp) +/* 0D5738 7F0A0C08 27190008 */ addiu $t9, $t8, 8 +/* 0D573C 7F0A0C0C AFB90040 */ sw $t9, 0x40($sp) +/* 0D5740 7F0A0C10 AF160004 */ sw $s6, 4($t8) +/* 0D5744 7F0A0C14 AF150000 */ sw $s5, ($t8) +/* 0D5748 7F0A0C18 26100058 */ addiu $s0, $s0, 0x58 +.L7F0A0C1C: +/* 0D574C 7F0A0C1C 5617FFDF */ bnel $s0, $s7, .L7F0A0B9C +/* 0D5750 7F0A0C20 8E490000 */ lw $t1, ($s2) +/* 0D5754 7F0A0C24 8FA90040 */ lw $t1, 0x40($sp) +/* 0D5758 7F0A0C28 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 0D575C 7F0A0C2C 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 0D5760 7F0A0C30 252A0008 */ addiu $t2, $t1, 8 +/* 0D5764 7F0A0C34 AFAA0040 */ sw $t2, 0x40($sp) +/* 0D5768 7F0A0C38 240C0040 */ li $t4, 64 +/* 0D576C 7F0A0C3C AD2C0004 */ sw $t4, 4($t1) +/* 0D5770 7F0A0C40 AD2B0000 */ sw $t3, ($t1) +/* 0D5774 7F0A0C44 8FA20040 */ lw $v0, 0x40($sp) +.L7F0A0C48: +/* 0D5778 7F0A0C48 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D577C 7F0A0C4C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D5780 7F0A0C50 8FB10020 */ lw $s1, 0x20($sp) +/* 0D5784 7F0A0C54 8FB20024 */ lw $s2, 0x24($sp) +/* 0D5788 7F0A0C58 8FB30028 */ lw $s3, 0x28($sp) +/* 0D578C 7F0A0C5C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D5790 7F0A0C60 8FB50030 */ lw $s5, 0x30($sp) +/* 0D5794 7F0A0C64 8FB60034 */ lw $s6, 0x34($sp) +/* 0D5798 7F0A0C68 8FB70038 */ lw $s7, 0x38($sp) +/* 0D579C 7F0A0C6C 03E00008 */ jr $ra +/* 0D57A0 7F0A0C70 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0C74(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0C74 +/* 0D57A4 7F0A0C74 44802000 */ mtc1 $zero, $f4 +/* 0D57A8 7F0A0C78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D57AC 7F0A0C7C 460C203E */ c.le.s $f4, $f12 +/* 0D57B0 7F0A0C80 00000000 */ nop +/* 0D57B4 7F0A0C84 4502000A */ bc1fl .L7F0A0CB0 +/* 0D57B8 7F0A0C88 44818000 */ mtc1 $at, $f16 +/* 0D57BC 7F0A0C8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D57C0 7F0A0C90 44813000 */ mtc1 $at, $f6 +/* 0D57C4 7F0A0C94 00000000 */ nop +/* 0D57C8 7F0A0C98 46066200 */ add.s $f8, $f12, $f6 +/* 0D57CC 7F0A0C9C 4600428D */ trunc.w.s $f10, $f8 +/* 0D57D0 7F0A0CA0 44025000 */ mfc1 $v0, $f10 +/* 0D57D4 7F0A0CA4 03E00008 */ jr $ra +/* 0D57D8 7F0A0CA8 00000000 */ nop + +/* 0D57DC 7F0A0CAC 44818000 */ mtc1 $at, $f16 +.L7F0A0CB0: +/* 0D57E0 7F0A0CB0 00000000 */ nop +/* 0D57E4 7F0A0CB4 46106481 */ sub.s $f18, $f12, $f16 +/* 0D57E8 7F0A0CB8 4600910D */ trunc.w.s $f4, $f18 +/* 0D57EC 7F0A0CBC 44022000 */ mfc1 $v0, $f4 +/* 0D57F0 7F0A0CC0 00000000 */ nop +/* 0D57F4 7F0A0CC4 03E00008 */ jr $ra +/* 0D57F8 7F0A0CC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0CCC(void) { + +} +#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) { + +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0E98(void) { + +} +#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 +void sub_GAME_7F0A108C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A108C +/* 0D5BBC 7F0A108C 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0D5BC0 7F0A1090 3C0E8004 */ lui $t6, %hi(D_80040930) +/* 0D5BC4 7F0A1094 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D5BC8 7F0A1098 AFB60030 */ sw $s6, 0x30($sp) +/* 0D5BCC 7F0A109C AFB5002C */ sw $s5, 0x2c($sp) +/* 0D5BD0 7F0A10A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0D5BD4 7F0A10A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0D5BD8 7F0A10A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0D5BDC 7F0A10AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0D5BE0 7F0A10B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0D5BE4 7F0A10B4 AFA600F8 */ sw $a2, 0xf8($sp) +/* 0D5BE8 7F0A10B8 AFA700FC */ sw $a3, 0xfc($sp) +/* 0D5BEC 7F0A10BC 25CE0930 */ addiu $t6, %lo(D_80040930) # addiu $t6, $t6, 0x930 +/* 0D5BF0 7F0A10C0 8DC10000 */ lw $at, ($t6) +/* 0D5BF4 7F0A10C4 27B500E0 */ addiu $s5, $sp, 0xe0 +/* 0D5BF8 7F0A10C8 00808825 */ move $s1, $a0 +/* 0D5BFC 7F0A10CC AEA10000 */ sw $at, ($s5) +/* 0D5C00 7F0A10D0 8DD90004 */ lw $t9, 4($t6) +/* 0D5C04 7F0A10D4 00A08025 */ move $s0, $a1 +/* 0D5C08 7F0A10D8 2404000F */ li $a0, 15 +/* 0D5C0C 7F0A10DC AEB90004 */ sw $t9, 4($s5) +/* 0D5C10 7F0A10E0 8DC10008 */ lw $at, 8($t6) +/* 0D5C14 7F0A10E4 AEA10008 */ sw $at, 8($s5) +/* 0D5C18 7F0A10E8 8DD9000C */ lw $t9, 0xc($t6) +/* 0D5C1C 7F0A10EC 0FC249EF */ jal cheatCheckIfOn +/* 0D5C20 7F0A10F0 AEB9000C */ sw $t9, 0xc($s5) +/* 0D5C24 7F0A10F4 10400003 */ beqz $v0, .L7F0A1104 +/* 0D5C28 7F0A10F8 3C0A8004 */ lui $t2, %hi(D_8004080C) +/* 0D5C2C 7F0A10FC 24080010 */ li $t0, 16 +/* 0D5C30 7F0A1100 A7A800FA */ sh $t0, 0xfa($sp) +.L7F0A1104: +/* 0D5C34 7F0A1104 C6240000 */ lwc1 $f4, ($s1) +/* 0D5C38 7F0A1108 87B400FA */ lh $s4, 0xfa($sp) +/* 0D5C3C 7F0A110C 254A080C */ addiu $t2, %lo(D_8004080C) # addiu $t2, $t2, 0x80c +/* 0D5C40 7F0A1110 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0D5C44 7F0A1114 C6260004 */ lwc1 $f6, 4($s1) +/* 0D5C48 7F0A1118 00144880 */ sll $t1, $s4, 2 +/* 0D5C4C 7F0A111C 01344823 */ subu $t1, $t1, $s4 +/* 0D5C50 7F0A1120 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D5C54 7F0A1124 C6280008 */ lwc1 $f8, 8($s1) +/* 0D5C58 7F0A1128 0009A080 */ sll $s4, $t1, 2 +/* 0D5C5C 7F0A112C 028A5821 */ addu $t3, $s4, $t2 +/* 0D5C60 7F0A1130 AFAB0050 */ sw $t3, 0x50($sp) +/* 0D5C64 7F0A1134 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0D5C68 7F0A1138 C56A0000 */ lwc1 $f10, ($t3) +/* 0D5C6C 7F0A113C 44808000 */ mtc1 $zero, $f16 +/* 0D5C70 7F0A1140 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0D5C74 7F0A1144 C5640004 */ lwc1 $f4, 4($t3) +/* 0D5C78 7F0A1148 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0D5C7C 7F0A114C C60E0000 */ lwc1 $f14, ($s0) +/* 0D5C80 7F0A1150 460E8032 */ c.eq.s $f16, $f14 +/* 0D5C84 7F0A1154 00000000 */ nop +/* 0D5C88 7F0A1158 4500000E */ bc1f .L7F0A1194 +/* 0D5C8C 7F0A115C 00000000 */ nop +/* 0D5C90 7F0A1160 C6060008 */ lwc1 $f6, 8($s0) +/* 0D5C94 7F0A1164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D5C98 7F0A1168 46068032 */ c.eq.s $f16, $f6 +/* 0D5C9C 7F0A116C 00000000 */ nop +/* 0D5CA0 7F0A1170 45000008 */ bc1f .L7F0A1194 +/* 0D5CA4 7F0A1174 00000000 */ nop +/* 0D5CA8 7F0A1178 44810000 */ mtc1 $at, $f0 +/* 0D5CAC 7F0A117C E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0D5CB0 7F0A1180 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0D5CB4 7F0A1184 E7B000BC */ swc1 $f16, 0xbc($sp) +/* 0D5CB8 7F0A1188 E7A000B0 */ swc1 $f0, 0xb0($sp) +/* 0D5CBC 7F0A118C 10000025 */ b .L7F0A1224 +/* 0D5CC0 7F0A1190 E7A000C4 */ swc1 $f0, 0xc4($sp) +.L7F0A1194: +/* 0D5CC4 7F0A1194 460E7202 */ mul.s $f8, $f14, $f14 +/* 0D5CC8 7F0A1198 C6020004 */ lwc1 $f2, 4($s0) +/* 0D5CCC 7F0A119C C6000008 */ lwc1 $f0, 8($s0) +/* 0D5CD0 7F0A11A0 46021282 */ mul.s $f10, $f2, $f2 +/* 0D5CD4 7F0A11A4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D5CD8 7F0A11A8 46000182 */ mul.s $f6, $f0, $f0 +/* 0D5CDC 7F0A11AC 0C007DF8 */ jal sqrtf +/* 0D5CE0 7F0A11B0 46043300 */ add.s $f12, $f6, $f4 +/* 0D5CE4 7F0A11B4 C6080000 */ lwc1 $f8, ($s0) +/* 0D5CE8 7F0A11B8 C6060008 */ lwc1 $f6, 8($s0) +/* 0D5CEC 7F0A11BC C60A0004 */ lwc1 $f10, 4($s0) +/* 0D5CF0 7F0A11C0 46004383 */ div.s $f14, $f8, $f0 +/* 0D5CF4 7F0A11C4 46003403 */ div.s $f16, $f6, $f0 +/* 0D5CF8 7F0A11C8 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 0D5CFC 7F0A11CC 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D5D00 7F0A11D0 46005483 */ div.s $f18, $f10, $f0 +/* 0D5D04 7F0A11D4 E7B000D4 */ swc1 $f16, 0xd4($sp) +/* 0D5D08 7F0A11D8 46108202 */ mul.s $f8, $f16, $f16 +/* 0D5D0C 7F0A11DC 46082300 */ add.s $f12, $f4, $f8 +/* 0D5D10 7F0A11E0 0C007DF8 */ jal sqrtf +/* 0D5D14 7F0A11E4 E7B200D8 */ swc1 $f18, 0xd8($sp) +/* 0D5D18 7F0A11E8 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 0D5D1C 7F0A11EC C7B000D4 */ lwc1 $f16, 0xd4($sp) +/* 0D5D20 7F0A11F0 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 0D5D24 7F0A11F4 46007083 */ div.s $f2, $f14, $f0 +/* 0D5D28 7F0A11F8 46000107 */ neg.s $f4, $f0 +/* 0D5D2C 7F0A11FC E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0D5D30 7F0A1200 46008303 */ div.s $f12, $f16, $f0 +/* 0D5D34 7F0A1204 44808000 */ mtc1 $zero, $f16 +/* 0D5D38 7F0A1208 46029182 */ mul.s $f6, $f18, $f2 +/* 0D5D3C 7F0A120C 46001287 */ neg.s $f10, $f2 +/* 0D5D40 7F0A1210 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0D5D44 7F0A1214 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0D5D48 7F0A1218 460C9202 */ mul.s $f8, $f18, $f12 +/* 0D5D4C 7F0A121C E7AC00C4 */ swc1 $f12, 0xc4($sp) +/* 0D5D50 7F0A1220 E7A800B0 */ swc1 $f8, 0xb0($sp) +.L7F0A1224: +/* 0D5D54 7F0A1224 8FA20100 */ lw $v0, 0x100($sp) +/* 0D5D58 7F0A1228 10400044 */ beqz $v0, .L7F0A133C +/* 0D5D5C 7F0A122C 00000000 */ nop +/* 0D5D60 7F0A1230 8C500004 */ lw $s0, 4($v0) +/* 0D5D64 7F0A1234 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0D5D68 7F0A1238 83AF0107 */ lb $t7, 0x107($sp) +/* 0D5D6C 7F0A123C 8E0D0014 */ lw $t5, 0x14($s0) +/* 0D5D70 7F0A1240 C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 0D5D74 7F0A1244 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0D5D78 7F0A1248 8DB8000C */ lw $t8, 0xc($t5) +/* 0D5D7C 7F0A124C E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D5D80 7F0A1250 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0D5D84 7F0A1254 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D5D88 7F0A1258 000F7180 */ sll $t6, $t7, 6 +/* 0D5D8C 7F0A125C 030E8821 */ addu $s1, $t8, $t6 +/* 0D5D90 7F0A1260 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0D5D94 7F0A1264 02202025 */ move $a0, $s1 +/* 0D5D98 7F0A1268 27A50078 */ addiu $a1, $sp, 0x78 +/* 0D5D9C 7F0A126C E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D5DA0 7F0A1270 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0D5DA4 7F0A1274 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0D5DA8 7F0A1278 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0D5DAC 7F0A127C E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0D5DB0 7F0A1280 02202025 */ move $a0, $s1 +/* 0D5DB4 7F0A1284 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0D5DB8 7F0A1288 27A5006C */ addiu $a1, $sp, 0x6c +/* 0D5DBC 7F0A128C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 0D5DC0 7F0A1290 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 0D5DC4 7F0A1294 C7AE0080 */ lwc1 $f14, 0x80($sp) +/* 0D5DC8 7F0A1298 46000182 */ mul.s $f6, $f0, $f0 +/* 0D5DCC 7F0A129C 00000000 */ nop +/* 0D5DD0 7F0A12A0 46021102 */ mul.s $f4, $f2, $f2 +/* 0D5DD4 7F0A12A4 46043200 */ add.s $f8, $f6, $f4 +/* 0D5DD8 7F0A12A8 460E7282 */ mul.s $f10, $f14, $f14 +/* 0D5DDC 7F0A12AC 0C007DF8 */ jal sqrtf +/* 0D5DE0 7F0A12B0 46085300 */ add.s $f12, $f10, $f8 +/* 0D5DE4 7F0A12B4 C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 0D5DE8 7F0A12B8 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 0D5DEC 7F0A12BC C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0D5DF0 7F0A12C0 46021182 */ mul.s $f6, $f2, $f2 +/* 0D5DF4 7F0A12C4 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0D5DF8 7F0A12C8 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D5DFC 7F0A12CC 46043280 */ add.s $f10, $f6, $f4 +/* 0D5E00 7F0A12D0 46108202 */ mul.s $f8, $f16, $f16 +/* 0D5E04 7F0A12D4 0C007DF8 */ jal sqrtf +/* 0D5E08 7F0A12D8 460A4300 */ add.s $f12, $f8, $f10 +/* 0D5E0C 7F0A12DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D5E10 7F0A12E0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D5E14 7F0A12E4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D5E18 7F0A12E8 8FB90050 */ lw $t9, 0x50($sp) +/* 0D5E1C 7F0A12EC 46043203 */ div.s $f8, $f6, $f4 +/* 0D5E20 7F0A12F0 46005183 */ div.s $f6, $f10, $f0 +/* 0D5E24 7F0A12F4 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D5E28 7F0A12F8 E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D5E2C 7F0A12FC 9328000A */ lbu $t0, 0xa($t9) +/* 0D5E30 7F0A1300 29010002 */ slti $at, $t0, 2 +/* 0D5E34 7F0A1304 5020000A */ beql $at, $zero, .L7F0A1330 +/* 0D5E38 7F0A1308 920C0002 */ lbu $t4, 2($s0) +/* 0D5E3C 7F0A130C 93290009 */ lbu $t1, 9($t9) +/* 0D5E40 7F0A1310 24010002 */ li $at, 2 +/* 0D5E44 7F0A1314 55210006 */ bnel $t1, $at, .L7F0A1330 +/* 0D5E48 7F0A1318 920C0002 */ lbu $t4, 2($s0) +/* 0D5E4C 7F0A131C 920A0002 */ lbu $t2, 2($s0) +/* 0D5E50 7F0A1320 354B0002 */ ori $t3, $t2, 2 +/* 0D5E54 7F0A1324 10000022 */ b .L7F0A13B0 +/* 0D5E58 7F0A1328 A20B0002 */ sb $t3, 2($s0) +/* 0D5E5C 7F0A132C 920C0002 */ lbu $t4, 2($s0) +.L7F0A1330: +/* 0D5E60 7F0A1330 358D0001 */ ori $t5, $t4, 1 +/* 0D5E64 7F0A1334 1000001E */ b .L7F0A13B0 +/* 0D5E68 7F0A1338 A20D0002 */ sb $t5, 2($s0) +.L7F0A133C: +/* 0D5E6C 7F0A133C 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D5E70 7F0A1340 87A400FE */ lh $a0, 0xfe($sp) +/* 0D5E74 7F0A1344 0FC2D20F */ jal get_room_data_float1 +/* 0D5E78 7F0A1348 00408025 */ move $s0, $v0 +/* 0D5E7C 7F0A134C C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D5E80 7F0A1350 C60A0000 */ lwc1 $f10, ($s0) +/* 0D5E84 7F0A1354 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5E88 7F0A1358 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5E8C 7F0A135C 0FC2D20F */ jal get_room_data_float1 +/* 0D5E90 7F0A1360 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0D5E94 7F0A1364 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0D5E98 7F0A1368 C60A0004 */ lwc1 $f10, 4($s0) +/* 0D5E9C 7F0A136C 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5EA0 7F0A1370 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5EA4 7F0A1374 0FC2D20F */ jal get_room_data_float1 +/* 0D5EA8 7F0A1378 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D5EAC 7F0A137C C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D5EB0 7F0A1380 C60A0008 */ lwc1 $f10, 8($s0) +/* 0D5EB4 7F0A1384 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5EB8 7F0A1388 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5EBC 7F0A138C 0FC2D20F */ jal get_room_data_float1 +/* 0D5EC0 7F0A1390 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0D5EC4 7F0A1394 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D5EC8 7F0A1398 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5ECC 7F0A139C 0FC2D20F */ jal get_room_data_float1 +/* 0D5ED0 7F0A13A0 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D5ED4 7F0A13A4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D5ED8 7F0A13A8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D5EDC 7F0A13AC E7A60098 */ swc1 $f6, 0x98($sp) +.L7F0A13B0: +/* 0D5EE0 7F0A13B0 3C128004 */ lui $s2, %hi(D_8004017C+0x68C) +/* 0D5EE4 7F0A13B4 26520808 */ addiu $s2, %lo(D_8004017C+0x68C) # addiu $s2, $s2, 0x808 +/* 0D5EE8 7F0A13B8 8E4E0000 */ lw $t6, ($s2) +/* 0D5EEC 7F0A13BC 24160050 */ li $s6, 80 +/* 0D5EF0 7F0A13C0 3C138008 */ lui $s3, %hi(ptr_bullet_impact_buf) +/* 0D5EF4 7F0A13C4 01D60019 */ multu $t6, $s6 +/* 0D5EF8 7F0A13C8 2673A154 */ addiu $s3, %lo(ptr_bullet_impact_buf) # addiu $s3, $s3, -0x5eac +/* 0D5EFC 7F0A13CC 8E780000 */ lw $t8, ($s3) +/* 0D5F00 7F0A13D0 8FAF0100 */ lw $t7, 0x100($sp) +/* 0D5F04 7F0A13D4 00004012 */ mflo $t0 +/* 0D5F08 7F0A13D8 0308C821 */ addu $t9, $t8, $t0 +/* 0D5F0C 7F0A13DC AF2F0048 */ sw $t7, 0x48($t9) +/* 0D5F10 7F0A13E0 8E4B0000 */ lw $t3, ($s2) +/* 0D5F14 7F0A13E4 8E6A0000 */ lw $t2, ($s3) +/* 0D5F18 7F0A13E8 83A90107 */ lb $t1, 0x107($sp) +/* 0D5F1C 7F0A13EC 01760019 */ multu $t3, $s6 +/* 0D5F20 7F0A13F0 00006012 */ mflo $t4 +/* 0D5F24 7F0A13F4 014C6821 */ addu $t5, $t2, $t4 +/* 0D5F28 7F0A13F8 A1A9004C */ sb $t1, 0x4c($t5) +/* 0D5F2C 7F0A13FC 8E480000 */ lw $t0, ($s2) +/* 0D5F30 7F0A1400 8E780000 */ lw $t8, ($s3) +/* 0D5F34 7F0A1404 83AE010B */ lb $t6, 0x10b($sp) +/* 0D5F38 7F0A1408 01160019 */ multu $t0, $s6 +/* 0D5F3C 7F0A140C 00007812 */ mflo $t7 +/* 0D5F40 7F0A1410 030FC821 */ addu $t9, $t8, $t7 +/* 0D5F44 7F0A1414 A32E004D */ sb $t6, 0x4d($t9) +/* 0D5F48 7F0A1418 8E4C0000 */ lw $t4, ($s2) +/* 0D5F4C 7F0A141C 8E6A0000 */ lw $t2, ($s3) +/* 0D5F50 7F0A1420 87AB00FE */ lh $t3, 0xfe($sp) +/* 0D5F54 7F0A1424 01960019 */ multu $t4, $s6 +/* 0D5F58 7F0A1428 00004812 */ mflo $t1 +/* 0D5F5C 7F0A142C 01496821 */ addu $t5, $t2, $t1 +/* 0D5F60 7F0A1430 A5AB0000 */ sh $t3, ($t5) +/* 0D5F64 7F0A1434 8E4F0000 */ lw $t7, ($s2) +/* 0D5F68 7F0A1438 8E780000 */ lw $t8, ($s3) +/* 0D5F6C 7F0A143C 87A800FA */ lh $t0, 0xfa($sp) +/* 0D5F70 7F0A1440 01F60019 */ multu $t7, $s6 +/* 0D5F74 7F0A1444 00007012 */ mflo $t6 +/* 0D5F78 7F0A1448 030EC821 */ addu $t9, $t8, $t6 +/* 0D5F7C 7F0A144C A7280002 */ sh $t0, 2($t9) +/* 0D5F80 7F0A1450 8E4A0000 */ lw $t2, ($s2) +/* 0D5F84 7F0A1454 8E6C0000 */ lw $t4, ($s3) +/* 0D5F88 7F0A1458 8EA10000 */ lw $at, ($s5) +/* 0D5F8C 7F0A145C 01560019 */ multu $t2, $s6 +/* 0D5F90 7F0A1460 00004812 */ mflo $t1 +/* 0D5F94 7F0A1464 01895821 */ addu $t3, $t4, $t1 +/* 0D5F98 7F0A1468 AD610008 */ sw $at, 8($t3) +/* 0D5F9C 7F0A146C 8EAF0004 */ lw $t7, 4($s5) +/* 0D5FA0 7F0A1470 AD6F000C */ sw $t7, 0xc($t3) +/* 0D5FA4 7F0A1474 8EA10008 */ lw $at, 8($s5) +/* 0D5FA8 7F0A1478 AD610010 */ sw $at, 0x10($t3) +/* 0D5FAC 7F0A147C 8EAF000C */ lw $t7, 0xc($s5) +/* 0D5FB0 7F0A1480 AD6F0014 */ sw $t7, 0x14($t3) +/* 0D5FB4 7F0A1484 8E4E0000 */ lw $t6, ($s2) +/* 0D5FB8 7F0A1488 8E780000 */ lw $t8, ($s3) +/* 0D5FBC 7F0A148C 8EA10000 */ lw $at, ($s5) +/* 0D5FC0 7F0A1490 01D60019 */ multu $t6, $s6 +/* 0D5FC4 7F0A1494 00004012 */ mflo $t0 +/* 0D5FC8 7F0A1498 0308C821 */ addu $t9, $t8, $t0 +/* 0D5FCC 7F0A149C AF210018 */ sw $at, 0x18($t9) +/* 0D5FD0 7F0A14A0 8EAC0004 */ lw $t4, 4($s5) +/* 0D5FD4 7F0A14A4 AF2C001C */ sw $t4, 0x1c($t9) +/* 0D5FD8 7F0A14A8 8EA10008 */ lw $at, 8($s5) +/* 0D5FDC 7F0A14AC AF210020 */ sw $at, 0x20($t9) +/* 0D5FE0 7F0A14B0 8EAC000C */ lw $t4, 0xc($s5) +/* 0D5FE4 7F0A14B4 AF2C0024 */ sw $t4, 0x24($t9) +/* 0D5FE8 7F0A14B8 8E4D0000 */ lw $t5, ($s2) +/* 0D5FEC 7F0A14BC 8E690000 */ lw $t1, ($s3) +/* 0D5FF0 7F0A14C0 8EA10000 */ lw $at, ($s5) +/* 0D5FF4 7F0A14C4 01B60019 */ multu $t5, $s6 +/* 0D5FF8 7F0A14C8 00005812 */ mflo $t3 +/* 0D5FFC 7F0A14CC 012B7821 */ addu $t7, $t1, $t3 +/* 0D6000 7F0A14D0 ADE10028 */ sw $at, 0x28($t7) +/* 0D6004 7F0A14D4 8EB80004 */ lw $t8, 4($s5) +/* 0D6008 7F0A14D8 ADF8002C */ sw $t8, 0x2c($t7) +/* 0D600C 7F0A14DC 8EA10008 */ lw $at, 8($s5) +/* 0D6010 7F0A14E0 ADE10030 */ sw $at, 0x30($t7) +/* 0D6014 7F0A14E4 8EB8000C */ lw $t8, 0xc($s5) +/* 0D6018 7F0A14E8 ADF80034 */ sw $t8, 0x34($t7) +/* 0D601C 7F0A14EC 8E4A0000 */ lw $t2, ($s2) +/* 0D6020 7F0A14F0 8E680000 */ lw $t0, ($s3) +/* 0D6024 7F0A14F4 8EA10000 */ lw $at, ($s5) +/* 0D6028 7F0A14F8 01560019 */ multu $t2, $s6 +/* 0D602C 7F0A14FC 0000C812 */ mflo $t9 +/* 0D6030 7F0A1500 01196021 */ addu $t4, $t0, $t9 +/* 0D6034 7F0A1504 AD810038 */ sw $at, 0x38($t4) +/* 0D6038 7F0A1508 8EA90004 */ lw $t1, 4($s5) +/* 0D603C 7F0A150C AD89003C */ sw $t1, 0x3c($t4) +/* 0D6040 7F0A1510 8EA10008 */ lw $at, 8($s5) +/* 0D6044 7F0A1514 AD810040 */ sw $at, 0x40($t4) +/* 0D6048 7F0A1518 8EA9000C */ lw $t1, 0xc($s5) +/* 0D604C 7F0A151C AD890044 */ sw $t1, 0x44($t4) +/* 0D6050 7F0A1520 C7A800C4 */ lwc1 $f8, 0xc4($sp) +/* 0D6054 7F0A1524 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D6058 7F0A1528 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 0D605C 7F0A152C C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D6060 7F0A1530 46082002 */ mul.s $f0, $f4, $f8 +/* 0D6064 7F0A1534 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D6068 7F0A1538 46065082 */ mul.s $f2, $f10, $f6 +/* 0D606C 7F0A153C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0D6070 7F0A1540 46002201 */ sub.s $f8, $f4, $f0 +/* 0D6074 7F0A1544 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0D6078 7F0A1548 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D607C 7F0A154C 46024301 */ sub.s $f12, $f8, $f2 +/* 0D6080 7F0A1550 8E4E0000 */ lw $t6, ($s2) +/* 0D6084 7F0A1554 8E6B0000 */ lw $t3, ($s3) +/* 0D6088 7F0A1558 44804000 */ mtc1 $zero, $f8 +/* 0D608C 7F0A155C 01D60019 */ multu $t6, $s6 +/* 0D6090 7F0A1560 00007812 */ mflo $t7 +/* 0D6094 7F0A1564 016FC021 */ addu $t8, $t3, $t7 +/* 0D6098 7F0A1568 A7020008 */ sh $v0, 8($t8) +/* 0D609C 7F0A156C C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0D60A0 7F0A1570 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D60A4 7F0A1574 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0D60A8 7F0A1578 46065002 */ mul.s $f0, $f10, $f6 +/* 0D60AC 7F0A157C 46082281 */ sub.s $f10, $f4, $f8 +/* 0D60B0 7F0A1580 46005301 */ sub.s $f12, $f10, $f0 +/* 0D60B4 7F0A1584 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D60B8 7F0A1588 E7A00044 */ swc1 $f0, 0x44($sp) +/* 0D60BC 7F0A158C 8E480000 */ lw $t0, ($s2) +/* 0D60C0 7F0A1590 8E6A0000 */ lw $t2, ($s3) +/* 0D60C4 7F0A1594 01160019 */ multu $t0, $s6 +/* 0D60C8 7F0A1598 0000C812 */ mflo $t9 +/* 0D60CC 7F0A159C 01596821 */ addu $t5, $t2, $t9 +/* 0D60D0 7F0A15A0 A5A2000A */ sh $v0, 0xa($t5) +/* 0D60D4 7F0A15A4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0D60D8 7F0A15A8 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D60DC 7F0A15AC C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D60E0 7F0A15B0 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D60E4 7F0A15B4 46043002 */ mul.s $f0, $f6, $f4 +/* 0D60E8 7F0A15B8 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 0D60EC 7F0A15BC 460A4082 */ mul.s $f2, $f8, $f10 +/* 0D60F0 7F0A15C0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 0D60F4 7F0A15C4 46003101 */ sub.s $f4, $f6, $f0 +/* 0D60F8 7F0A15C8 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 0D60FC 7F0A15CC 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6100 7F0A15D0 46022301 */ sub.s $f12, $f4, $f2 +/* 0D6104 7F0A15D4 8E490000 */ lw $t1, ($s2) +/* 0D6108 7F0A15D8 8E6C0000 */ lw $t4, ($s3) +/* 0D610C 7F0A15DC 3C108009 */ lui $s0, %hi(impactimages) +/* 0D6110 7F0A15E0 01360019 */ multu $t1, $s6 +/* 0D6114 7F0A15E4 2610D0BC */ addiu $s0, %lo(impactimages) # addiu $s0, $s0, -0x2f44 +/* 0D6118 7F0A15E8 00007012 */ mflo $t6 +/* 0D611C 7F0A15EC 018E5821 */ addu $t3, $t4, $t6 +/* 0D6120 7F0A15F0 A562000C */ sh $v0, 0xc($t3) +/* 0D6124 7F0A15F4 8E580000 */ lw $t8, ($s2) +/* 0D6128 7F0A15F8 8E6F0000 */ lw $t7, ($s3) +/* 0D612C 7F0A15FC 03160019 */ multu $t8, $s6 +/* 0D6130 7F0A1600 00004012 */ mflo $t0 +/* 0D6134 7F0A1604 01E85021 */ addu $t2, $t7, $t0 +/* 0D6138 7F0A1608 A5400010 */ sh $zero, 0x10($t2) +/* 0D613C 7F0A160C 8E4B0000 */ lw $t3, ($s2) +/* 0D6140 7F0A1610 8E190000 */ lw $t9, ($s0) +/* 0D6144 7F0A1614 8E6E0000 */ lw $t6, ($s3) +/* 0D6148 7F0A1618 01760019 */ multu $t3, $s6 +/* 0D614C 7F0A161C 03346821 */ addu $t5, $t9, $s4 +/* 0D6150 7F0A1620 91A90005 */ lbu $t1, 5($t5) +/* 0D6154 7F0A1624 00096140 */ sll $t4, $t1, 5 +/* 0D6158 7F0A1628 0000C012 */ mflo $t8 +/* 0D615C 7F0A162C 01D87821 */ addu $t7, $t6, $t8 +/* 0D6160 7F0A1630 A5EC0012 */ sh $t4, 0x12($t7) +/* 0D6164 7F0A1634 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D6168 7F0A1638 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D616C 7F0A163C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6170 7F0A1640 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D6174 7F0A1644 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6178 7F0A1648 46043300 */ add.s $f12, $f6, $f4 +/* 0D617C 7F0A164C 8E4A0000 */ lw $t2, ($s2) +/* 0D6180 7F0A1650 8E680000 */ lw $t0, ($s3) +/* 0D6184 7F0A1654 44805000 */ mtc1 $zero, $f10 +/* 0D6188 7F0A1658 01560019 */ multu $t2, $s6 +/* 0D618C 7F0A165C 0000C812 */ mflo $t9 +/* 0D6190 7F0A1660 01196821 */ addu $t5, $t0, $t9 +/* 0D6194 7F0A1664 A5A20018 */ sh $v0, 0x18($t5) +/* 0D6198 7F0A1668 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D619C 7F0A166C C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D61A0 7F0A1670 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D61A4 7F0A1674 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D61A8 7F0A1678 46043300 */ add.s $f12, $f6, $f4 +/* 0D61AC 7F0A167C 8E4B0000 */ lw $t3, ($s2) +/* 0D61B0 7F0A1680 8E690000 */ lw $t1, ($s3) +/* 0D61B4 7F0A1684 01760019 */ multu $t3, $s6 +/* 0D61B8 7F0A1688 00007012 */ mflo $t6 +/* 0D61BC 7F0A168C 012EC021 */ addu $t8, $t1, $t6 +/* 0D61C0 7F0A1690 A702001A */ sh $v0, 0x1a($t8) +/* 0D61C4 7F0A1694 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D61C8 7F0A1698 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D61CC 7F0A169C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D61D0 7F0A16A0 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D61D4 7F0A16A4 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D61D8 7F0A16A8 46043300 */ add.s $f12, $f6, $f4 +/* 0D61DC 7F0A16AC 8E4F0000 */ lw $t7, ($s2) +/* 0D61E0 7F0A16B0 8E6C0000 */ lw $t4, ($s3) +/* 0D61E4 7F0A16B4 01F60019 */ multu $t7, $s6 +/* 0D61E8 7F0A16B8 00005012 */ mflo $t2 +/* 0D61EC 7F0A16BC 018A4021 */ addu $t0, $t4, $t2 +/* 0D61F0 7F0A16C0 A502001C */ sh $v0, 0x1c($t0) +/* 0D61F4 7F0A16C4 8E4D0000 */ lw $t5, ($s2) +/* 0D61F8 7F0A16C8 8E790000 */ lw $t9, ($s3) +/* 0D61FC 7F0A16CC 01B60019 */ multu $t5, $s6 +/* 0D6200 7F0A16D0 00005812 */ mflo $t3 +/* 0D6204 7F0A16D4 032B4821 */ addu $t1, $t9, $t3 +/* 0D6208 7F0A16D8 A5200020 */ sh $zero, 0x20($t1) +/* 0D620C 7F0A16DC 8E580000 */ lw $t8, ($s2) +/* 0D6210 7F0A16E0 8E6E0000 */ lw $t6, ($s3) +/* 0D6214 7F0A16E4 03160019 */ multu $t8, $s6 +/* 0D6218 7F0A16E8 00007812 */ mflo $t7 +/* 0D621C 7F0A16EC 01CF6021 */ addu $t4, $t6, $t7 +/* 0D6220 7F0A16F0 A5800022 */ sh $zero, 0x22($t4) +/* 0D6224 7F0A16F4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D6228 7F0A16F8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D622C 7F0A16FC C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6230 7F0A1700 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6234 7F0A1704 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6238 7F0A1708 46043300 */ add.s $f12, $f6, $f4 +/* 0D623C 7F0A170C 8E480000 */ lw $t0, ($s2) +/* 0D6240 7F0A1710 8E6A0000 */ lw $t2, ($s3) +/* 0D6244 7F0A1714 44805000 */ mtc1 $zero, $f10 +/* 0D6248 7F0A1718 01160019 */ multu $t0, $s6 +/* 0D624C 7F0A171C 00006812 */ mflo $t5 +/* 0D6250 7F0A1720 014DC821 */ addu $t9, $t2, $t5 +/* 0D6254 7F0A1724 A7220028 */ sh $v0, 0x28($t9) +/* 0D6258 7F0A1728 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D625C 7F0A172C C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D6260 7F0A1730 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6264 7F0A1734 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6268 7F0A1738 46043300 */ add.s $f12, $f6, $f4 +/* 0D626C 7F0A173C 8E490000 */ lw $t1, ($s2) +/* 0D6270 7F0A1740 8E6B0000 */ lw $t3, ($s3) +/* 0D6274 7F0A1744 01360019 */ multu $t1, $s6 +/* 0D6278 7F0A1748 0000C012 */ mflo $t8 +/* 0D627C 7F0A174C 01787021 */ addu $t6, $t3, $t8 +/* 0D6280 7F0A1750 A5C2002A */ sh $v0, 0x2a($t6) +/* 0D6284 7F0A1754 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D6288 7F0A1758 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D628C 7F0A175C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D6290 7F0A1760 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6294 7F0A1764 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6298 7F0A1768 46043300 */ add.s $f12, $f6, $f4 +/* 0D629C 7F0A176C 8E4C0000 */ lw $t4, ($s2) +/* 0D62A0 7F0A1770 8E6F0000 */ lw $t7, ($s3) +/* 0D62A4 7F0A1774 01960019 */ multu $t4, $s6 +/* 0D62A8 7F0A1778 00004012 */ mflo $t0 +/* 0D62AC 7F0A177C 01E85021 */ addu $t2, $t7, $t0 +/* 0D62B0 7F0A1780 A542002C */ sh $v0, 0x2c($t2) +/* 0D62B4 7F0A1784 8E4E0000 */ lw $t6, ($s2) +/* 0D62B8 7F0A1788 8E0D0000 */ lw $t5, ($s0) +/* 0D62BC 7F0A178C 8E780000 */ lw $t8, ($s3) +/* 0D62C0 7F0A1790 01D60019 */ multu $t6, $s6 +/* 0D62C4 7F0A1794 01B4C821 */ addu $t9, $t5, $s4 +/* 0D62C8 7F0A1798 93290004 */ lbu $t1, 4($t9) +/* 0D62CC 7F0A179C 00095940 */ sll $t3, $t1, 5 +/* 0D62D0 7F0A17A0 00006012 */ mflo $t4 +/* 0D62D4 7F0A17A4 030C7821 */ addu $t7, $t8, $t4 +/* 0D62D8 7F0A17A8 A5EB0030 */ sh $t3, 0x30($t7) +/* 0D62DC 7F0A17AC 8E4A0000 */ lw $t2, ($s2) +/* 0D62E0 7F0A17B0 8E680000 */ lw $t0, ($s3) +/* 0D62E4 7F0A17B4 01560019 */ multu $t2, $s6 +/* 0D62E8 7F0A17B8 00006812 */ mflo $t5 +/* 0D62EC 7F0A17BC 010DC821 */ addu $t9, $t0, $t5 +/* 0D62F0 7F0A17C0 A7200032 */ sh $zero, 0x32($t9) +/* 0D62F4 7F0A17C4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D62F8 7F0A17C8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D62FC 7F0A17CC C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6300 7F0A17D0 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6304 7F0A17D4 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6308 7F0A17D8 46043301 */ sub.s $f12, $f6, $f4 +/* 0D630C 7F0A17DC 8E4E0000 */ lw $t6, ($s2) +/* 0D6310 7F0A17E0 8E690000 */ lw $t1, ($s3) +/* 0D6314 7F0A17E4 44805000 */ mtc1 $zero, $f10 +/* 0D6318 7F0A17E8 01D60019 */ multu $t6, $s6 +/* 0D631C 7F0A17EC 0000C012 */ mflo $t8 +/* 0D6320 7F0A17F0 01386021 */ addu $t4, $t1, $t8 +/* 0D6324 7F0A17F4 A5820038 */ sh $v0, 0x38($t4) +/* 0D6328 7F0A17F8 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D632C 7F0A17FC C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D6330 7F0A1800 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6334 7F0A1804 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6338 7F0A1808 46043301 */ sub.s $f12, $f6, $f4 +/* 0D633C 7F0A180C 8E4F0000 */ lw $t7, ($s2) +/* 0D6340 7F0A1810 8E6B0000 */ lw $t3, ($s3) +/* 0D6344 7F0A1814 01F60019 */ multu $t7, $s6 +/* 0D6348 7F0A1818 00005012 */ mflo $t2 +/* 0D634C 7F0A181C 016A4021 */ addu $t0, $t3, $t2 +/* 0D6350 7F0A1820 A502003A */ sh $v0, 0x3a($t0) +/* 0D6354 7F0A1824 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D6358 7F0A1828 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D635C 7F0A182C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D6360 7F0A1830 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6364 7F0A1834 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6368 7F0A1838 46043301 */ sub.s $f12, $f6, $f4 +/* 0D636C 7F0A183C 8E590000 */ lw $t9, ($s2) +/* 0D6370 7F0A1840 8E6D0000 */ lw $t5, ($s3) +/* 0D6374 7F0A1844 00008825 */ move $s1, $zero +/* 0D6378 7F0A1848 03360019 */ multu $t9, $s6 +/* 0D637C 7F0A184C 24150028 */ li $s5, 40 +/* 0D6380 7F0A1850 00007012 */ mflo $t6 +/* 0D6384 7F0A1854 01AE4821 */ addu $t1, $t5, $t6 +/* 0D6388 7F0A1858 A522003C */ sh $v0, 0x3c($t1) +/* 0D638C 7F0A185C 8E480000 */ lw $t0, ($s2) +/* 0D6390 7F0A1860 8E180000 */ lw $t8, ($s0) +/* 0D6394 7F0A1864 8E6A0000 */ lw $t2, ($s3) +/* 0D6398 7F0A1868 01160019 */ multu $t0, $s6 +/* 0D639C 7F0A186C 03146021 */ addu $t4, $t8, $s4 +/* 0D63A0 7F0A1870 918F0004 */ lbu $t7, 4($t4) +/* 0D63A4 7F0A1874 000F5940 */ sll $t3, $t7, 5 +/* 0D63A8 7F0A1878 0000C812 */ mflo $t9 +/* 0D63AC 7F0A187C 01596821 */ addu $t5, $t2, $t9 +/* 0D63B0 7F0A1880 A5AB0040 */ sh $t3, 0x40($t5) +/* 0D63B4 7F0A1884 8E480000 */ lw $t0, ($s2) +/* 0D63B8 7F0A1888 8E0E0000 */ lw $t6, ($s0) +/* 0D63BC 7F0A188C 8E6F0000 */ lw $t7, ($s3) +/* 0D63C0 7F0A1890 01160019 */ multu $t0, $s6 +/* 0D63C4 7F0A1894 01D44821 */ addu $t1, $t6, $s4 +/* 0D63C8 7F0A1898 91380005 */ lbu $t8, 5($t1) +/* 0D63CC 7F0A189C 241400FF */ li $s4, 255 +/* 0D63D0 7F0A18A0 00186140 */ sll $t4, $t8, 5 +/* 0D63D4 7F0A18A4 00005012 */ mflo $t2 +/* 0D63D8 7F0A18A8 01EAC821 */ addu $t9, $t7, $t2 +/* 0D63DC 7F0A18AC A72C0042 */ sh $t4, 0x42($t9) +/* 0D63E0 7F0A18B0 93A40061 */ lbu $a0, 0x61($sp) +/* 0D63E4 7F0A18B4 93A50062 */ lbu $a1, 0x62($sp) +.L7F0A18B8: +/* 0D63E8 7F0A18B8 8FAB0050 */ lw $t3, 0x50($sp) +/* 0D63EC 7F0A18BC 24010001 */ li $at, 1 +/* 0D63F0 7F0A18C0 91620008 */ lbu $v0, 8($t3) +/* 0D63F4 7F0A18C4 10400013 */ beqz $v0, .L7F0A1914 +/* 0D63F8 7F0A18C8 00000000 */ nop +/* 0D63FC 7F0A18CC 10410005 */ beq $v0, $at, .L7F0A18E4 +/* 0D6400 7F0A18D0 24010002 */ li $at, 2 +/* 0D6404 7F0A18D4 1041001A */ beq $v0, $at, .L7F0A1940 +/* 0D6408 7F0A18D8 00000000 */ nop +/* 0D640C 7F0A18DC 1000002E */ b .L7F0A1998 +/* 0D6410 7F0A18E0 00008025 */ move $s0, $zero +.L7F0A18E4: +/* 0D6414 7F0A18E4 0C002914 */ jal get_random_value +/* 0D6418 7F0A18E8 00000000 */ nop +/* 0D641C 7F0A18EC 0055001B */ divu $zero, $v0, $s5 +/* 0D6420 7F0A18F0 00006810 */ mfhi $t5 +/* 0D6424 7F0A18F4 028D1823 */ subu $v1, $s4, $t5 +/* 0D6428 7F0A18F8 16A00002 */ bnez $s5, .L7F0A1904 +/* 0D642C 7F0A18FC 00000000 */ nop +/* 0D6430 7F0A1900 0007000D */ break 7 +.L7F0A1904: +/* 0D6434 7F0A1904 306400FF */ andi $a0, $v1, 0xff +/* 0D6438 7F0A1908 306500FF */ andi $a1, $v1, 0xff +/* 0D643C 7F0A190C 10000022 */ b .L7F0A1998 +/* 0D6440 7F0A1910 307000FF */ andi $s0, $v1, 0xff +.L7F0A1914: +/* 0D6444 7F0A1914 0C002914 */ jal get_random_value +/* 0D6448 7F0A1918 00000000 */ nop +/* 0D644C 7F0A191C 0055001B */ divu $zero, $v0, $s5 +/* 0D6450 7F0A1920 00001810 */ mfhi $v1 +/* 0D6454 7F0A1924 306400FF */ andi $a0, $v1, 0xff +/* 0D6458 7F0A1928 16A00002 */ bnez $s5, .L7F0A1934 +/* 0D645C 7F0A192C 00000000 */ nop +/* 0D6460 7F0A1930 0007000D */ break 7 +.L7F0A1934: +/* 0D6464 7F0A1934 306500FF */ andi $a1, $v1, 0xff +/* 0D6468 7F0A1938 10000017 */ b .L7F0A1998 +/* 0D646C 7F0A193C 307000FF */ andi $s0, $v1, 0xff +.L7F0A1940: +/* 0D6470 7F0A1940 0C002914 */ jal get_random_value +/* 0D6474 7F0A1944 00000000 */ nop +/* 0D6478 7F0A1948 304E0001 */ andi $t6, $v0, 1 +/* 0D647C 7F0A194C 11C00003 */ beqz $t6, .L7F0A195C +/* 0D6480 7F0A1950 00008025 */ move $s0, $zero +/* 0D6484 7F0A1954 10000001 */ b .L7F0A195C +/* 0D6488 7F0A1958 329000FF */ andi $s0, $s4, 0xff +.L7F0A195C: +/* 0D648C 7F0A195C 0C002914 */ jal get_random_value +/* 0D6490 7F0A1960 00000000 */ nop +/* 0D6494 7F0A1964 30490001 */ andi $t1, $v0, 1 +/* 0D6498 7F0A1968 11200003 */ beqz $t1, .L7F0A1978 +/* 0D649C 7F0A196C 00002825 */ move $a1, $zero +/* 0D64A0 7F0A1970 10000001 */ b .L7F0A1978 +/* 0D64A4 7F0A1974 328500FF */ andi $a1, $s4, 0xff +.L7F0A1978: +/* 0D64A8 7F0A1978 0C002914 */ jal get_random_value +/* 0D64AC 7F0A197C A3A50062 */ sb $a1, 0x62($sp) +/* 0D64B0 7F0A1980 30580001 */ andi $t8, $v0, 1 +/* 0D64B4 7F0A1984 13000003 */ beqz $t8, .L7F0A1994 +/* 0D64B8 7F0A1988 93A50062 */ lbu $a1, 0x62($sp) +/* 0D64BC 7F0A198C 10000002 */ b .L7F0A1998 +/* 0D64C0 7F0A1990 328400FF */ andi $a0, $s4, 0xff +.L7F0A1994: +/* 0D64C4 7F0A1994 00002025 */ move $a0, $zero +.L7F0A1998: +/* 0D64C8 7F0A1998 8E4F0000 */ lw $t7, ($s2) +/* 0D64CC 7F0A199C 8E680000 */ lw $t0, ($s3) +/* 0D64D0 7F0A19A0 24010040 */ li $at, 64 +/* 0D64D4 7F0A19A4 000F5080 */ sll $t2, $t7, 2 +/* 0D64D8 7F0A19A8 014F5021 */ addu $t2, $t2, $t7 +/* 0D64DC 7F0A19AC 000A5100 */ sll $t2, $t2, 4 +/* 0D64E0 7F0A19B0 010A6021 */ addu $t4, $t0, $t2 +/* 0D64E4 7F0A19B4 0191C821 */ addu $t9, $t4, $s1 +/* 0D64E8 7F0A19B8 A3300014 */ sb $s0, 0x14($t9) +/* 0D64EC 7F0A19BC 8E4D0000 */ lw $t5, ($s2) +/* 0D64F0 7F0A19C0 8E6B0000 */ lw $t3, ($s3) +/* 0D64F4 7F0A19C4 000D7080 */ sll $t6, $t5, 2 +/* 0D64F8 7F0A19C8 01CD7021 */ addu $t6, $t6, $t5 +/* 0D64FC 7F0A19CC 000E7100 */ sll $t6, $t6, 4 +/* 0D6500 7F0A19D0 016E4821 */ addu $t1, $t3, $t6 +/* 0D6504 7F0A19D4 0131C021 */ addu $t8, $t1, $s1 +/* 0D6508 7F0A19D8 A3050015 */ sb $a1, 0x15($t8) +/* 0D650C 7F0A19DC 8E480000 */ lw $t0, ($s2) +/* 0D6510 7F0A19E0 8E6F0000 */ lw $t7, ($s3) +/* 0D6514 7F0A19E4 00085080 */ sll $t2, $t0, 2 +/* 0D6518 7F0A19E8 01485021 */ addu $t2, $t2, $t0 +/* 0D651C 7F0A19EC 000A5100 */ sll $t2, $t2, 4 +/* 0D6520 7F0A19F0 01EA6021 */ addu $t4, $t7, $t2 +/* 0D6524 7F0A19F4 0191C821 */ addu $t9, $t4, $s1 +/* 0D6528 7F0A19F8 A3240016 */ sb $a0, 0x16($t9) +/* 0D652C 7F0A19FC 8E4B0000 */ lw $t3, ($s2) +/* 0D6530 7F0A1A00 8E6D0000 */ lw $t5, ($s3) +/* 0D6534 7F0A1A04 000B7080 */ sll $t6, $t3, 2 +/* 0D6538 7F0A1A08 01CB7021 */ addu $t6, $t6, $t3 +/* 0D653C 7F0A1A0C 000E7100 */ sll $t6, $t6, 4 +/* 0D6540 7F0A1A10 01AE4821 */ addu $t1, $t5, $t6 +/* 0D6544 7F0A1A14 0131C021 */ addu $t8, $t1, $s1 +/* 0D6548 7F0A1A18 26310010 */ addiu $s1, $s1, 0x10 +/* 0D654C 7F0A1A1C 1621FFA6 */ bne $s1, $at, .L7F0A18B8 +/* 0D6550 7F0A1A20 A3140017 */ sb $s4, 0x17($t8) +/* 0D6554 7F0A1A24 8E480000 */ lw $t0, ($s2) +/* 0D6558 7F0A1A28 A3A40061 */ sb $a0, 0x61($sp) +/* 0D655C 7F0A1A2C A3A50062 */ sb $a1, 0x62($sp) +/* 0D6560 7F0A1A30 25040001 */ addiu $a0, $t0, 1 +/* 0D6564 7F0A1A34 28810064 */ slti $at, $a0, 0x64 +/* 0D6568 7F0A1A38 14200003 */ bnez $at, .L7F0A1A48 +/* 0D656C 7F0A1A3C AE440000 */ sw $a0, ($s2) +/* 0D6570 7F0A1A40 AE400000 */ sw $zero, ($s2) +/* 0D6574 7F0A1A44 00002025 */ move $a0, $zero +.L7F0A1A48: +/* 0D6578 7F0A1A48 0FC283A6 */ jal sub_GAME_7F0A0E98 +/* 0D657C 7F0A1A4C 00000000 */ nop +/* 0D6580 7F0A1A50 8E590000 */ lw $t9, ($s2) +/* 0D6584 7F0A1A54 8E6C0000 */ lw $t4, ($s3) +/* 0D6588 7F0A1A58 240AFFFF */ li $t2, -1 +/* 0D658C 7F0A1A5C 03360019 */ multu $t9, $s6 +/* 0D6590 7F0A1A60 00005812 */ mflo $t3 +/* 0D6594 7F0A1A64 018B6821 */ addu $t5, $t4, $t3 +/* 0D6598 7F0A1A68 A5AA0000 */ sh $t2, ($t5) +/* 0D659C 7F0A1A6C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D65A0 7F0A1A70 8FB60030 */ lw $s6, 0x30($sp) +/* 0D65A4 7F0A1A74 8FB5002C */ lw $s5, 0x2c($sp) +/* 0D65A8 7F0A1A78 8FB40028 */ lw $s4, 0x28($sp) +/* 0D65AC 7F0A1A7C 8FB30024 */ lw $s3, 0x24($sp) +/* 0D65B0 7F0A1A80 8FB20020 */ lw $s2, 0x20($sp) +/* 0D65B4 7F0A1A84 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D65B8 7F0A1A88 8FB00018 */ lw $s0, 0x18($sp) +/* 0D65BC 7F0A1A8C 03E00008 */ jr $ra +/* 0D65C0 7F0A1A90 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A1A94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A1A94 +/* 0D65C4 7F0A1A94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0D65C8 7F0A1A98 AFB60038 */ sw $s6, 0x38($sp) +/* 0D65CC 7F0A1A9C AFB50034 */ sw $s5, 0x34($sp) +/* 0D65D0 7F0A1AA0 240EFFFF */ li $t6, -1 +/* 0D65D4 7F0A1AA4 00A0B025 */ move $s6, $a1 +/* 0D65D8 7F0A1AA8 AFBF0044 */ sw $ra, 0x44($sp) +/* 0D65DC 7F0A1AAC AFBE0040 */ sw $fp, 0x40($sp) +/* 0D65E0 7F0A1AB0 AFB7003C */ sw $s7, 0x3c($sp) +/* 0D65E4 7F0A1AB4 AFB40030 */ sw $s4, 0x30($sp) +/* 0D65E8 7F0A1AB8 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D65EC 7F0A1ABC AFB20028 */ sw $s2, 0x28($sp) +/* 0D65F0 7F0A1AC0 AFB10024 */ sw $s1, 0x24($sp) +/* 0D65F4 7F0A1AC4 AFB00020 */ sw $s0, 0x20($sp) +/* 0D65F8 7F0A1AC8 AFA40060 */ sw $a0, 0x60($sp) +/* 0D65FC 7F0A1ACC AFA60068 */ sw $a2, 0x68($sp) +/* 0D6600 7F0A1AD0 2415FFFF */ li $s5, -1 +/* 0D6604 7F0A1AD4 AFA00050 */ sw $zero, 0x50($sp) +/* 0D6608 7F0A1AD8 AFA0004C */ sw $zero, 0x4c($sp) +/* 0D660C 7F0A1ADC 10A00003 */ beqz $a1, .L7F0A1AEC +/* 0D6610 7F0A1AE0 AFAE0048 */ sw $t6, 0x48($sp) +/* 0D6614 7F0A1AE4 8CAF0004 */ lw $t7, 4($a1) +/* 0D6618 7F0A1AE8 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0A1AEC: +/* 0D661C 7F0A1AEC 8FB80060 */ lw $t8, 0x60($sp) +/* 0D6620 7F0A1AF0 3C08B600 */ lui $t0, 0xb600 +/* 0D6624 7F0A1AF4 24093000 */ li $t1, 12288 +/* 0D6628 7F0A1AF8 27190008 */ addiu $t9, $t8, 8 +/* 0D662C 7F0A1AFC AFB90060 */ sw $t9, 0x60($sp) +/* 0D6630 7F0A1B00 AF090004 */ sw $t1, 4($t8) +/* 0D6634 7F0A1B04 AF080000 */ sw $t0, ($t8) +/* 0D6638 7F0A1B08 8FAA0060 */ lw $t2, 0x60($sp) +/* 0D663C 7F0A1B0C 3C0CBA00 */ lui $t4, (0xBA000602 >> 16) # lui $t4, 0xba00 +/* 0D6640 7F0A1B10 358C0602 */ ori $t4, (0xBA000602 & 0xFFFF) # ori $t4, $t4, 0x602 +/* 0D6644 7F0A1B14 254B0008 */ addiu $t3, $t2, 8 +/* 0D6648 7F0A1B18 AFAB0060 */ sw $t3, 0x60($sp) +/* 0D664C 7F0A1B1C 240D0080 */ li $t5, 128 +/* 0D6650 7F0A1B20 3C1E8004 */ lui $fp, %hi(D_8004080C) +/* 0D6654 7F0A1B24 3C178008 */ lui $s7, %hi(ptr_bullet_impact_buf) +/* 0D6658 7F0A1B28 26F7A154 */ addiu $s7, %lo(ptr_bullet_impact_buf) # addiu $s7, $s7, -0x5eac +/* 0D665C 7F0A1B2C 27DE080C */ addiu $fp, %lo(D_8004080C) # addiu $fp, $fp, 0x80c +/* 0D6660 7F0A1B30 0000A025 */ move $s4, $zero +/* 0D6664 7F0A1B34 AD4D0004 */ sw $t5, 4($t2) +/* 0D6668 7F0A1B38 AD4C0000 */ sw $t4, ($t2) +/* 0D666C 7F0A1B3C 8EEE0000 */ lw $t6, ($s7) +.L7F0A1B40: +/* 0D6670 7F0A1B40 01D41821 */ addu $v1, $t6, $s4 +/* 0D6674 7F0A1B44 8C6F0048 */ lw $t7, 0x48($v1) +/* 0D6678 7F0A1B48 56CF0068 */ bnel $s6, $t7, .L7F0A1CEC +/* 0D667C 7F0A1B4C 26940050 */ addiu $s4, $s4, 0x50 +/* 0D6680 7F0A1B50 84650000 */ lh $a1, ($v1) +/* 0D6684 7F0A1B54 04A20065 */ bltzl $a1, .L7F0A1CEC +/* 0D6688 7F0A1B58 26940050 */ addiu $s4, $s4, 0x50 +/* 0D668C 7F0A1B5C 56C00008 */ bnezl $s6, .L7F0A1B80 +/* 0D6690 7F0A1B60 8FB90068 */ lw $t9, 0x68($sp) +/* 0D6694 7F0A1B64 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0D6698 7F0A1B68 00A02025 */ move $a0, $a1 +/* 0D669C 7F0A1B6C 5040005F */ beql $v0, $zero, .L7F0A1CEC +/* 0D66A0 7F0A1B70 26940050 */ addiu $s4, $s4, 0x50 +/* 0D66A4 7F0A1B74 8EF80000 */ lw $t8, ($s7) +/* 0D66A8 7F0A1B78 03141821 */ addu $v1, $t8, $s4 +/* 0D66AC 7F0A1B7C 8FB90068 */ lw $t9, 0x68($sp) +.L7F0A1B80: +/* 0D66B0 7F0A1B80 84730002 */ lh $s3, 2($v1) +/* 0D66B4 7F0A1B84 240C0001 */ li $t4, 1 +/* 0D66B8 7F0A1B88 1320000D */ beqz $t9, .L7F0A1BC0 +/* 0D66BC 7F0A1B8C 00139080 */ sll $s2, $s3, 2 +/* 0D66C0 7F0A1B90 00139080 */ sll $s2, $s3, 2 +/* 0D66C4 7F0A1B94 02539023 */ subu $s2, $s2, $s3 +/* 0D66C8 7F0A1B98 00129080 */ sll $s2, $s2, 2 +/* 0D66CC 7F0A1B9C 03D28021 */ addu $s0, $fp, $s2 +/* 0D66D0 7F0A1BA0 9202000A */ lbu $v0, 0xa($s0) +/* 0D66D4 7F0A1BA4 28480002 */ slti $t0, $v0, 2 +/* 0D66D8 7F0A1BA8 11000010 */ beqz $t0, .L7F0A1BEC +/* 0D66DC 7F0A1BAC 01001025 */ move $v0, $t0 +/* 0D66E0 7F0A1BB0 92020009 */ lbu $v0, 9($s0) +/* 0D66E4 7F0A1BB4 38490002 */ xori $t1, $v0, 2 +/* 0D66E8 7F0A1BB8 1000000C */ b .L7F0A1BEC +/* 0D66EC 7F0A1BBC 2D220001 */ sltiu $v0, $t1, 1 +.L7F0A1BC0: +/* 0D66F0 7F0A1BC0 02539023 */ subu $s2, $s2, $s3 +/* 0D66F4 7F0A1BC4 00129080 */ sll $s2, $s2, 2 +/* 0D66F8 7F0A1BC8 03D28021 */ addu $s0, $fp, $s2 +/* 0D66FC 7F0A1BCC 9202000A */ lbu $v0, 0xa($s0) +/* 0D6700 7F0A1BD0 284A0002 */ slti $t2, $v0, 2 +/* 0D6704 7F0A1BD4 39420001 */ xori $v0, $t2, 1 +/* 0D6708 7F0A1BD8 14400004 */ bnez $v0, .L7F0A1BEC +/* 0D670C 7F0A1BDC 00000000 */ nop +/* 0D6710 7F0A1BE0 92020009 */ lbu $v0, 9($s0) +/* 0D6714 7F0A1BE4 384B0002 */ xori $t3, $v0, 2 +/* 0D6718 7F0A1BE8 000B102B */ sltu $v0, $zero, $t3 +.L7F0A1BEC: +/* 0D671C 7F0A1BEC 5040003F */ beql $v0, $zero, .L7F0A1CEC +/* 0D6720 7F0A1BF0 26940050 */ addiu $s4, $s4, 0x50 +/* 0D6724 7F0A1BF4 12C00014 */ beqz $s6, .L7F0A1C48 +/* 0D6728 7F0A1BF8 AFAC0050 */ sw $t4, 0x50($sp) +/* 0D672C 7F0A1BFC 8062004C */ lb $v0, 0x4c($v1) +/* 0D6730 7F0A1C00 8FAE004C */ lw $t6, 0x4c($sp) +/* 0D6734 7F0A1C04 8FB10060 */ lw $s1, 0x60($sp) +/* 0D6738 7F0A1C08 12A20018 */ beq $s5, $v0, .L7F0A1C6C +/* 0D673C 7F0A1C0C 00026980 */ sll $t5, $v0, 6 +/* 0D6740 7F0A1C10 8DCF0014 */ lw $t7, 0x14($t6) +/* 0D6744 7F0A1C14 0002AC00 */ sll $s5, $v0, 0x10 +/* 0D6748 7F0A1C18 26290008 */ addiu $t1, $s1, 8 +/* 0D674C 7F0A1C1C 8DF8000C */ lw $t8, 0xc($t7) +/* 0D6750 7F0A1C20 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 +/* 0D6754 7F0A1C24 0015CC03 */ sra $t9, $s5, 0x10 +/* 0D6758 7F0A1C28 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 0D675C 7F0A1C2C AFA90060 */ sw $t1, 0x60($sp) +/* 0D6760 7F0A1C30 0320A825 */ move $s5, $t9 +/* 0D6764 7F0A1C34 AE2A0000 */ sw $t2, ($s1) +/* 0D6768 7F0A1C38 0C003A2C */ jal osVirtualToPhysical +/* 0D676C 7F0A1C3C 01B82021 */ addu $a0, $t5, $t8 +/* 0D6770 7F0A1C40 1000000A */ b .L7F0A1C6C +/* 0D6774 7F0A1C44 AE220004 */ sw $v0, 4($s1) +.L7F0A1C48: +/* 0D6778 7F0A1C48 84650000 */ lh $a1, ($v1) +/* 0D677C 7F0A1C4C 8FA40060 */ lw $a0, 0x60($sp) +/* 0D6780 7F0A1C50 52A50007 */ beql $s5, $a1, .L7F0A1C70 +/* 0D6784 7F0A1C54 8FAC0048 */ lw $t4, 0x48($sp) +/* 0D6788 7F0A1C58 0005AC00 */ sll $s5, $a1, 0x10 +/* 0D678C 7F0A1C5C 00155C03 */ sra $t3, $s5, 0x10 +/* 0D6790 7F0A1C60 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D6794 7F0A1C64 0160A825 */ move $s5, $t3 +/* 0D6798 7F0A1C68 AFA20060 */ sw $v0, 0x60($sp) +.L7F0A1C6C: +/* 0D679C 7F0A1C6C 8FAC0048 */ lw $t4, 0x48($sp) +.L7F0A1C70: +/* 0D67A0 7F0A1C70 27A40060 */ addiu $a0, $sp, 0x60 +/* 0D67A4 7F0A1C74 3C0E8009 */ lui $t6, %hi(impactimages) +/* 0D67A8 7F0A1C78 11930008 */ beq $t4, $s3, .L7F0A1C9C +/* 0D67AC 7F0A1C7C 240F0002 */ li $t7, 2 +/* 0D67B0 7F0A1C80 8DCED0BC */ lw $t6, %lo(impactimages)($t6) +/* 0D67B4 7F0A1C84 92060009 */ lbu $a2, 9($s0) +/* 0D67B8 7F0A1C88 9207000A */ lbu $a3, 0xa($s0) +/* 0D67BC 7F0A1C8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0D67C0 7F0A1C90 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D67C4 7F0A1C94 024E2821 */ addu $a1, $s2, $t6 +/* 0D67C8 7F0A1C98 AFB30048 */ sw $s3, 0x48($sp) +.L7F0A1C9C: +/* 0D67CC 7F0A1C9C 8FB00060 */ lw $s0, 0x60($sp) +/* 0D67D0 7F0A1CA0 3C190430 */ lui $t9, (0x04300040 >> 16) # lui $t9, 0x430 +/* 0D67D4 7F0A1CA4 37390040 */ ori $t9, (0x04300040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D67D8 7F0A1CA8 26180008 */ addiu $t8, $s0, 8 +/* 0D67DC 7F0A1CAC AFB80060 */ sw $t8, 0x60($sp) +/* 0D67E0 7F0A1CB0 AE190000 */ sw $t9, ($s0) +/* 0D67E4 7F0A1CB4 8EE80000 */ lw $t0, ($s7) +/* 0D67E8 7F0A1CB8 01142021 */ addu $a0, $t0, $s4 +/* 0D67EC 7F0A1CBC 0C003A2C */ jal osVirtualToPhysical +/* 0D67F0 7F0A1CC0 24840008 */ addiu $a0, $a0, 8 +/* 0D67F4 7F0A1CC4 AE020004 */ sw $v0, 4($s0) +/* 0D67F8 7F0A1CC8 8FA90060 */ lw $t1, 0x60($sp) +/* 0D67FC 7F0A1CCC 3C0BB100 */ lui $t3, (0xB1000032 >> 16) # lui $t3, 0xb100 +/* 0D6800 7F0A1CD0 356B0032 */ ori $t3, (0xB1000032 & 0xFFFF) # ori $t3, $t3, 0x32 +/* 0D6804 7F0A1CD4 252A0008 */ addiu $t2, $t1, 8 +/* 0D6808 7F0A1CD8 AFAA0060 */ sw $t2, 0x60($sp) +/* 0D680C 7F0A1CDC 240C2010 */ li $t4, 8208 +/* 0D6810 7F0A1CE0 AD2C0004 */ sw $t4, 4($t1) +/* 0D6814 7F0A1CE4 AD2B0000 */ sw $t3, ($t1) +/* 0D6818 7F0A1CE8 26940050 */ addiu $s4, $s4, 0x50 +.L7F0A1CEC: +/* 0D681C 7F0A1CEC 24011F40 */ li $at, 8000 +/* 0D6820 7F0A1CF0 5681FF93 */ bnel $s4, $at, .L7F0A1B40 +/* 0D6824 7F0A1CF4 8EEE0000 */ lw $t6, ($s7) +/* 0D6828 7F0A1CF8 12C0000A */ beqz $s6, .L7F0A1D24 +/* 0D682C 7F0A1CFC 8FAE0050 */ lw $t6, 0x50($sp) +/* 0D6830 7F0A1D00 15C00008 */ bnez $t6, .L7F0A1D24 +/* 0D6834 7F0A1D04 8FAF004C */ lw $t7, 0x4c($sp) +/* 0D6838 7F0A1D08 8FB80068 */ lw $t8, 0x68($sp) +/* 0D683C 7F0A1D0C 91ED0002 */ lbu $t5, 2($t7) +/* 0D6840 7F0A1D10 24190001 */ li $t9, 1 +/* 0D6844 7F0A1D14 03194004 */ sllv $t0, $t9, $t8 +/* 0D6848 7F0A1D18 01004827 */ not $t1, $t0 +/* 0D684C 7F0A1D1C 01A95024 */ and $t2, $t5, $t1 +/* 0D6850 7F0A1D20 A1EA0002 */ sb $t2, 2($t7) +.L7F0A1D24: +/* 0D6854 7F0A1D24 8FAB0060 */ lw $t3, 0x60($sp) +/* 0D6858 7F0A1D28 3C0EBA00 */ lui $t6, (0xBA000602 >> 16) # lui $t6, 0xba00 +/* 0D685C 7F0A1D2C 35CE0602 */ ori $t6, (0xBA000602 & 0xFFFF) # ori $t6, $t6, 0x602 +/* 0D6860 7F0A1D30 256C0008 */ addiu $t4, $t3, 8 +/* 0D6864 7F0A1D34 AFAC0060 */ sw $t4, 0x60($sp) +/* 0D6868 7F0A1D38 24190040 */ li $t9, 64 +/* 0D686C 7F0A1D3C AD790004 */ sw $t9, 4($t3) +/* 0D6870 7F0A1D40 AD6E0000 */ sw $t6, ($t3) +/* 0D6874 7F0A1D44 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D6878 7F0A1D48 8FBE0040 */ lw $fp, 0x40($sp) +/* 0D687C 7F0A1D4C 8FB7003C */ lw $s7, 0x3c($sp) +/* 0D6880 7F0A1D50 8FB60038 */ lw $s6, 0x38($sp) +/* 0D6884 7F0A1D54 8FB50034 */ lw $s5, 0x34($sp) +/* 0D6888 7F0A1D58 8FB40030 */ lw $s4, 0x30($sp) +/* 0D688C 7F0A1D5C 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D6890 7F0A1D60 8FB20028 */ lw $s2, 0x28($sp) +/* 0D6894 7F0A1D64 8FB10024 */ lw $s1, 0x24($sp) +/* 0D6898 7F0A1D68 8FB00020 */ lw $s0, 0x20($sp) +/* 0D689C 7F0A1D6C 8FA20060 */ lw $v0, 0x60($sp) +/* 0D68A0 7F0A1D70 03E00008 */ jr $ra +/* 0D68A4 7F0A1D74 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + + +void sub_GAME_7F0A1D78(u32 *param_1) +{ + sub_GAME_7F0A1A94(param_1,0,0); +} + + diff --git a/src/game/unk_09C250.h b/src/game/unk_09C250.h new file mode 100644 index 0000000..8d368e1 --- /dev/null +++ b/src/game/unk_09C250.h @@ -0,0 +1,7 @@ +#ifndef _UNK_09C250_H_ +#define _UNK_09C250_H_ +#include "ultra64.h" + +extern char dword_CODE_bss_8007A100[]; + +#endif diff --git a/src/game/unk_0A1DA0.c b/src/game/unk_0A1DA0.c new file mode 100644 index 0000000..09f4e15 --- /dev/null +++ b/src/game/unk_0A1DA0.c @@ -0,0 +1,3281 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007A160 +u32 dword_CODE_bss_8007A160; +//CODE.bss:8007A164 +u32 dword_CODE_bss_8007A164; +//CODE.bss:8007A168 +u32 dword_CODE_bss_8007A168; +//CODE.bss:8007A16C +u32 dword_CODE_bss_8007A16C; +//CODE.bss:8007A170 +u8 dword_CODE_bss_8007A170[0x370]; +//CODE.bss:8007A4E0 +u8 dword_CODE_bss_8007A4E0[0xBB8]; +//CODE.bss:8007B098 +u8 dword_CODE_bss_8007B098[8]; + + +// data +//D:80040940 +u32 D_80040940[] = { + 0, 0, 0, 0, + 0, 0, 0, 0 +}; + +//D:80040960 +u32 D_80040960[] = { + 0xFFFFFFFF, + 0xFFFFC8FF, + 0xFF0000FF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0, 0 +}; + +u32 D_80040980 = 0; +u32 D_80040984 = 0; +u32 D_80040988 = 0; +u32 D_8004098C = 0; +u32 D_80040990 = 0; +u32 watch_screen_index = 0; +u32 D_80040998 = 0; +u32 D_8004099C = 0; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F0A1DA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057710 +.word 0x3dcccccd /*0.1*/ +glabel D_80057714 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F0A1DA0 +/* 0D68D0 7F0A1DA0 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 0D68D4 7F0A1DA4 AFBF005C */ sw $ra, 0x5c($sp) +/* 0D68D8 7F0A1DA8 AFB50058 */ sw $s5, 0x58($sp) +/* 0D68DC 7F0A1DAC AFB40054 */ sw $s4, 0x54($sp) +/* 0D68E0 7F0A1DB0 AFB30050 */ sw $s3, 0x50($sp) +/* 0D68E4 7F0A1DB4 AFB2004C */ sw $s2, 0x4c($sp) +/* 0D68E8 7F0A1DB8 AFB10048 */ sw $s1, 0x48($sp) +/* 0D68EC 7F0A1DBC AFB00044 */ sw $s0, 0x44($sp) +/* 0D68F0 7F0A1DC0 F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 0D68F4 7F0A1DC4 F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 0D68F8 7F0A1DC8 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 0D68FC 7F0A1DCC F7B80020 */ sdc1 $f24, 0x20($sp) +/* 0D6900 7F0A1DD0 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0D6904 7F0A1DD4 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D6908 7F0A1DD8 C4A40000 */ lwc1 $f4, ($a1) +/* 0D690C 7F0A1DDC 00C08025 */ move $s0, $a2 +/* 0D6910 7F0A1DE0 00808825 */ move $s1, $a0 +/* 0D6914 7F0A1DE4 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0D6918 7F0A1DE8 C4A60004 */ lwc1 $f6, 4($a1) +/* 0D691C 7F0A1DEC C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D6920 7F0A1DF0 00E09025 */ move $s2, $a3 +/* 0D6924 7F0A1DF4 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0D6928 7F0A1DF8 460A5402 */ mul.s $f16, $f10, $f10 +/* 0D692C 7F0A1DFC C4A80008 */ lwc1 $f8, 8($a1) +/* 0D6930 7F0A1E00 C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D6934 7F0A1E04 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0D6938 7F0A1E08 46129102 */ mul.s $f4, $f18, $f18 +/* 0D693C 7F0A1E0C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D6940 7F0A1E10 46084282 */ mul.s $f10, $f8, $f8 +/* 0D6944 7F0A1E14 46048180 */ add.s $f6, $f16, $f4 +/* 0D6948 7F0A1E18 0C007DF8 */ jal sqrtf +/* 0D694C 7F0A1E1C 46065300 */ add.s $f12, $f10, $f6 +/* 0D6950 7F0A1E20 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D6954 7F0A1E24 4481D000 */ mtc1 $at, $f26 +/* 0D6958 7F0A1E28 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D695C 7F0A1E2C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6960 7F0A1E30 4600D503 */ div.s $f20, $f26, $f0 +/* 0D6964 7F0A1E34 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D6968 7F0A1E38 C7B600F0 */ lwc1 $f22, 0xf0($sp) +/* 0D696C 7F0A1E3C C7BC00F4 */ lwc1 $f28, 0xf4($sp) +/* 0D6970 7F0A1E40 46149402 */ mul.s $f16, $f18, $f20 +/* 0D6974 7F0A1E44 00000000 */ nop +/* 0D6978 7F0A1E48 46142202 */ mul.s $f8, $f4, $f20 +/* 0D697C 7F0A1E4C 00000000 */ nop +/* 0D6980 7F0A1E50 46145182 */ mul.s $f6, $f10, $f20 +/* 0D6984 7F0A1E54 E7B00090 */ swc1 $f16, 0x90($sp) +/* 0D6988 7F0A1E58 4600B582 */ mul.s $f22, $f22, $f0 +/* 0D698C 7F0A1E5C E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D6990 7F0A1E60 4600E702 */ mul.s $f28, $f28, $f0 +/* 0D6994 7F0A1E64 E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D6998 7F0A1E68 C6120000 */ lwc1 $f18, ($s0) +/* 0D699C 7F0A1E6C E7B20084 */ swc1 $f18, 0x84($sp) +/* 0D69A0 7F0A1E70 C6100004 */ lwc1 $f16, 4($s0) +/* 0D69A4 7F0A1E74 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0D69A8 7F0A1E78 E7B00088 */ swc1 $f16, 0x88($sp) +/* 0D69AC 7F0A1E7C 46084282 */ mul.s $f10, $f8, $f8 +/* 0D69B0 7F0A1E80 C6040008 */ lwc1 $f4, 8($s0) +/* 0D69B4 7F0A1E84 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0D69B8 7F0A1E88 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0D69BC 7F0A1E8C 46063482 */ mul.s $f18, $f6, $f6 +/* 0D69C0 7F0A1E90 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 0D69C4 7F0A1E94 46042202 */ mul.s $f8, $f4, $f4 +/* 0D69C8 7F0A1E98 46125400 */ add.s $f16, $f10, $f18 +/* 0D69CC 7F0A1E9C 0C007DF8 */ jal sqrtf +/* 0D69D0 7F0A1EA0 46104300 */ add.s $f12, $f8, $f16 +/* 0D69D4 7F0A1EA4 4600D503 */ div.s $f20, $f26, $f0 +/* 0D69D8 7F0A1EA8 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D69DC 7F0A1EAC C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0D69E0 7F0A1EB0 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0D69E4 7F0A1EB4 C7B800F8 */ lwc1 $f24, 0xf8($sp) +/* 0D69E8 7F0A1EB8 46143282 */ mul.s $f10, $f6, $f20 +/* 0D69EC 7F0A1EBC C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0D69F0 7F0A1EC0 46149102 */ mul.s $f4, $f18, $f20 +/* 0D69F4 7F0A1EC4 00000000 */ nop +/* 0D69F8 7F0A1EC8 46144402 */ mul.s $f16, $f8, $f20 +/* 0D69FC 7F0A1ECC E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0D6A00 7F0A1ED0 4600C602 */ mul.s $f24, $f24, $f0 +/* 0D6A04 7F0A1ED4 E7A40088 */ swc1 $f4, 0x88($sp) +/* 0D6A08 7F0A1ED8 46003282 */ mul.s $f10, $f6, $f0 +/* 0D6A0C 7F0A1EDC E7B0008C */ swc1 $f16, 0x8c($sp) +/* 0D6A10 7F0A1EE0 E7AA00FC */ swc1 $f10, 0xfc($sp) +/* 0D6A14 7F0A1EE4 C64E0008 */ lwc1 $f14, 8($s2) +/* 0D6A18 7F0A1EE8 0FC16A8C */ jal atan2f +/* 0D6A1C 7F0A1EEC C64C0000 */ lwc1 $f12, ($s2) +/* 0D6A20 7F0A1EF0 C7B200FC */ lwc1 $f18, 0xfc($sp) +/* 0D6A24 7F0A1EF4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A160) +/* 0D6A28 7F0A1EF8 8DCEA160 */ lw $t6, %lo(dword_CODE_bss_8007A160)($t6) +/* 0D6A2C 7F0A1EFC 4616E501 */ sub.s $f20, $f28, $f22 +/* 0D6A30 7F0A1F00 46000786 */ mov.s $f30, $f0 +/* 0D6A34 7F0A1F04 46189681 */ sub.s $f26, $f18, $f24 +/* 0D6A38 7F0A1F08 461AA102 */ mul.s $f4, $f20, $f26 +/* 0D6A3C 7F0A1F0C 05C10003 */ bgez $t6, .L7F0A1F1C +/* 0D6A40 7F0A1F10 000E7843 */ sra $t7, $t6, 1 +/* 0D6A44 7F0A1F14 25C10001 */ addiu $at, $t6, 1 +/* 0D6A48 7F0A1F18 00017843 */ sra $t7, $at, 1 +.L7F0A1F1C: +/* 0D6A4C 7F0A1F1C 448F4000 */ mtc1 $t7, $f8 +/* 0D6A50 7F0A1F20 00000000 */ nop +/* 0D6A54 7F0A1F24 46804420 */ cvt.s.w $f16, $f8 +/* 0D6A58 7F0A1F28 0C007DF8 */ jal sqrtf +/* 0D6A5C 7F0A1F2C 46102303 */ div.s $f12, $f4, $f16 +/* 0D6A60 7F0A1F30 4600018D */ trunc.w.s $f6, $f0 +/* 0D6A64 7F0A1F34 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D6A68 7F0A1F38 E7A000B0 */ swc1 $f0, 0xb0($sp) +/* 0D6A6C 7F0A1F3C C6320000 */ lwc1 $f18, ($s1) +/* 0D6A70 7F0A1F40 44023000 */ mfc1 $v0, $f6 +/* 0D6A74 7F0A1F44 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D6A78 7F0A1F48 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D6A7C 7F0A1F4C 0002C843 */ sra $t9, $v0, 1 +/* 0D6A80 7F0A1F50 44995000 */ mtc1 $t9, $f10 +/* 0D6A84 7F0A1F54 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D6A88 7F0A1F58 24050047 */ li $a1, 71 +/* 0D6A8C 7F0A1F5C 468053A0 */ cvt.s.w $f14, $f10 +/* 0D6A90 7F0A1F60 00003025 */ move $a2, $zero +/* 0D6A94 7F0A1F64 00408025 */ move $s0, $v0 +/* 0D6A98 7F0A1F68 00409025 */ move $s2, $v0 +/* 0D6A9C 7F0A1F6C 460EB300 */ add.s $f12, $f22, $f14 +/* 0D6AA0 7F0A1F70 460EC080 */ add.s $f2, $f24, $f14 +/* 0D6AA4 7F0A1F74 46086102 */ mul.s $f4, $f12, $f8 +/* 0D6AA8 7F0A1F78 46049400 */ add.s $f16, $f18, $f4 +/* 0D6AAC 7F0A1F7C 46023282 */ mul.s $f10, $f6, $f2 +/* 0D6AB0 7F0A1F80 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6AB4 7F0A1F84 46046182 */ mul.s $f6, $f12, $f4 +/* 0D6AB8 7F0A1F88 46105200 */ add.s $f8, $f10, $f16 +/* 0D6ABC 7F0A1F8C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0D6AC0 7F0A1F90 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D6AC4 7F0A1F94 46028202 */ mul.s $f8, $f16, $f2 +/* 0D6AC8 7F0A1F98 C6320004 */ lwc1 $f18, 4($s1) +/* 0D6ACC 7F0A1F9C 46069280 */ add.s $f10, $f18, $f6 +/* 0D6AD0 7F0A1FA0 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0D6AD4 7F0A1FA4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D6AD8 7F0A1FA8 46066402 */ mul.s $f16, $f12, $f6 +/* 0D6ADC 7F0A1FAC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D6AE0 7F0A1FB0 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0D6AE4 7F0A1FB4 46025102 */ mul.s $f4, $f10, $f2 +/* 0D6AE8 7F0A1FB8 C6320008 */ lwc1 $f18, 8($s1) +/* 0D6AEC 7F0A1FBC 46109200 */ add.s $f8, $f18, $f16 +/* 0D6AF0 7F0A1FC0 46082180 */ add.s $f6, $f4, $f8 +/* 0D6AF4 7F0A1FC4 0C002382 */ jal play_sfx_a1 +/* 0D6AF8 7F0A1FC8 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D6AFC 7F0A1FCC 00402025 */ move $a0, $v0 +/* 0D6B00 7F0A1FD0 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0D6B04 7F0A1FD4 02202825 */ move $a1, $s1 +/* 0D6B08 7F0A1FD8 44922000 */ mtc1 $s2, $f4 +/* 0D6B0C 7F0A1FDC 44909000 */ mtc1 $s0, $f18 +/* 0D6B10 7F0A1FE0 00009825 */ move $s3, $zero +/* 0D6B14 7F0A1FE4 46802220 */ cvt.s.w $f8, $f4 +/* 0D6B18 7F0A1FE8 3C018005 */ lui $at, %hi(D_80057710) +/* 0D6B1C 7F0A1FEC 468095A0 */ cvt.s.w $f22, $f18 +/* 0D6B20 7F0A1FF0 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0D6B24 7F0A1FF4 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0D6B28 7F0A1FF8 4606D483 */ div.s $f18, $f26, $f6 +/* 0D6B2C 7F0A1FFC 4616A403 */ div.s $f16, $f20, $f22 +/* 0D6B30 7F0A2000 4600828D */ trunc.w.s $f10, $f16 +/* 0D6B34 7F0A2004 4600940D */ trunc.w.s $f16, $f18 +/* 0D6B38 7F0A2008 44145000 */ mfc1 $s4, $f10 +/* 0D6B3C 7F0A200C 44158000 */ mfc1 $s5, $f16 +/* 0D6B40 7F0A2010 02808825 */ move $s1, $s4 +/* 0D6B44 7F0A2014 5AA00044 */ blezl $s5, .L7F0A2128 +/* 0D6B48 7F0A2018 8FBF005C */ lw $ra, 0x5c($sp) +/* 0D6B4C 7F0A201C C43C7710 */ lwc1 $f28, %lo(D_80057710)($at) +/* 0D6B50 7F0A2020 3C018005 */ lui $at, %hi(D_80057714) +/* 0D6B54 7F0A2024 C43A7714 */ lwc1 $f26, %lo(D_80057714)($at) +/* 0D6B58 7F0A2028 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D6B5C 7F0A202C 4481C000 */ mtc1 $at, $f24 +/* 0D6B60 7F0A2030 27B200C0 */ addiu $s2, $sp, 0xc0 +.L7F0A2034: +/* 0D6B64 7F0A2034 1A800037 */ blez $s4, .L7F0A2114 +/* 0D6B68 7F0A2038 00008025 */ move $s0, $zero +/* 0D6B6C 7F0A203C 44935000 */ mtc1 $s3, $f10 +/* 0D6B70 7F0A2040 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0D6B74 7F0A2044 46805120 */ cvt.s.w $f4, $f10 +/* 0D6B78 7F0A2048 46082502 */ mul.s $f20, $f4, $f8 +/* 0D6B7C 7F0A204C 00000000 */ nop +/* 0D6B80 7F0A2050 44903000 */ mtc1 $s0, $f6 +.L7F0A2054: +/* 0D6B84 7F0A2054 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D6B88 7F0A2058 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0D6B8C 7F0A205C 468034A0 */ cvt.s.w $f18, $f6 +/* 0D6B90 7F0A2060 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D6B94 7F0A2064 46169002 */ mul.s $f0, $f18, $f22 +/* 0D6B98 7F0A2068 00000000 */ nop +/* 0D6B9C 7F0A206C 460A0102 */ mul.s $f4, $f0, $f10 +/* 0D6BA0 7F0A2070 46048200 */ add.s $f8, $f16, $f4 +/* 0D6BA4 7F0A2074 46143482 */ mul.s $f18, $f6, $f20 +/* 0D6BA8 7F0A2078 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6BAC 7F0A207C C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0D6BB0 7F0A2080 46040182 */ mul.s $f6, $f0, $f4 +/* 0D6BB4 7F0A2084 46089280 */ add.s $f10, $f18, $f8 +/* 0D6BB8 7F0A2088 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0D6BBC 7F0A208C 46068480 */ add.s $f18, $f16, $f6 +/* 0D6BC0 7F0A2090 E7AA00C0 */ swc1 $f10, 0xc0($sp) +/* 0D6BC4 7F0A2094 46144282 */ mul.s $f10, $f8, $f20 +/* 0D6BC8 7F0A2098 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0D6BCC 7F0A209C C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0D6BD0 7F0A20A0 46060202 */ mul.s $f8, $f0, $f6 +/* 0D6BD4 7F0A20A4 46125100 */ add.s $f4, $f10, $f18 +/* 0D6BD8 7F0A20A8 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0D6BDC 7F0A20AC 46088280 */ add.s $f10, $f16, $f8 +/* 0D6BE0 7F0A20B0 E7A400C4 */ swc1 $f4, 0xc4($sp) +/* 0D6BE4 7F0A20B4 46149102 */ mul.s $f4, $f18, $f20 +/* 0D6BE8 7F0A20B8 460A2180 */ add.s $f6, $f4, $f10 +/* 0D6BEC 7F0A20BC 0C002914 */ jal get_random_value +/* 0D6BF0 7F0A20C0 E7A600C8 */ swc1 $f6, 0xc8($sp) +/* 0D6BF4 7F0A20C4 44828000 */ mtc1 $v0, $f16 +/* 0D6BF8 7F0A20C8 4405F000 */ mfc1 $a1, $f30 +/* 0D6BFC 7F0A20CC 02402025 */ move $a0, $s2 +/* 0D6C00 7F0A20D0 04410005 */ bgez $v0, .L7F0A20E8 +/* 0D6C04 7F0A20D4 46808220 */ cvt.s.w $f8, $f16 +/* 0D6C08 7F0A20D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6C0C 7F0A20DC 44819000 */ mtc1 $at, $f18 +/* 0D6C10 7F0A20E0 00000000 */ nop +/* 0D6C14 7F0A20E4 46124200 */ add.s $f8, $f8, $f18 +.L7F0A20E8: +/* 0D6C18 7F0A20E8 46184102 */ mul.s $f4, $f8, $f24 +/* 0D6C1C 7F0A20EC C7B000B0 */ lwc1 $f16, 0xb0($sp) +/* 0D6C20 7F0A20F0 461A2282 */ mul.s $f10, $f4, $f26 +/* 0D6C24 7F0A20F4 461C5180 */ add.s $f6, $f10, $f28 +/* 0D6C28 7F0A20F8 46103482 */ mul.s $f18, $f6, $f16 +/* 0D6C2C 7F0A20FC 44069000 */ mfc1 $a2, $f18 +/* 0D6C30 7F0A2100 0FC28858 */ jal sub_GAME_7F0A2160 +/* 0D6C34 7F0A2104 00000000 */ nop +/* 0D6C38 7F0A2108 26100001 */ addiu $s0, $s0, 1 +/* 0D6C3C 7F0A210C 5611FFD1 */ bnel $s0, $s1, .L7F0A2054 +/* 0D6C40 7F0A2110 44903000 */ mtc1 $s0, $f6 +.L7F0A2114: +/* 0D6C44 7F0A2114 26730001 */ addiu $s3, $s3, 1 +/* 0D6C48 7F0A2118 0275082A */ slt $at, $s3, $s5 +/* 0D6C4C 7F0A211C 1420FFC5 */ bnez $at, .L7F0A2034 +/* 0D6C50 7F0A2120 00000000 */ nop +/* 0D6C54 7F0A2124 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0A2128: +/* 0D6C58 7F0A2128 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D6C5C 7F0A212C D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0D6C60 7F0A2130 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 0D6C64 7F0A2134 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 0D6C68 7F0A2138 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 0D6C6C 7F0A213C D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 0D6C70 7F0A2140 8FB00044 */ lw $s0, 0x44($sp) +/* 0D6C74 7F0A2144 8FB10048 */ lw $s1, 0x48($sp) +/* 0D6C78 7F0A2148 8FB2004C */ lw $s2, 0x4c($sp) +/* 0D6C7C 7F0A214C 8FB30050 */ lw $s3, 0x50($sp) +/* 0D6C80 7F0A2150 8FB40054 */ lw $s4, 0x54($sp) +/* 0D6C84 7F0A2154 8FB50058 */ lw $s5, 0x58($sp) +/* 0D6C88 7F0A2158 03E00008 */ jr $ra +/* 0D6C8C 7F0A215C 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2160(void) { + +} +#else +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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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(dword_CODE_bss_8007A164) +/* 0D6D50 7F0A2220 03120019 */ multu $t8, $s2 +/* 0D6D54 7F0A2224 2631A164 */ addiu $s1, %lo(dword_CODE_bss_8007A164) # 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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 get_random_value +/* 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(dword_CODE_bss_8007A160) +/* 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(dword_CODE_bss_8007A160)($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 NONMATCHING +void sub_GAME_7F0A28D4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057728 +.word 0x46ea6000 /*30000.0*/ +glabel D_8005772C +.word 0xc6ea6000 /*-30000.0*/ +glabel D_80057730 +.word 0x3dcccccd /*0.1*/ +glabel D_80057734 +.word 0x00000000 /*0.0*/ +glabel D_80057738 +.word 0x00000000 /*0.0*/ +glabel D_8005773C +.word 0x00000000 /*0.0*/ +.text +glabel sub_GAME_7F0A28D4 +/* 0D7404 7F0A28D4 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D7408 7F0A28D8 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D740C 7F0A28DC 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A160) +/* 0D7410 7F0A28E0 2508A160 */ addiu $t0, %lo(dword_CODE_bss_8007A160) # addiu $t0, $t0, -0x5ea0 +/* 0D7414 7F0A28E4 2841000F */ slti $at, $v0, 0xf +/* 0D7418 7F0A28E8 10200004 */ beqz $at, .L7F0A28FC +/* 0D741C 7F0A28EC 00001825 */ move $v1, $zero +/* 0D7420 7F0A28F0 44822000 */ mtc1 $v0, $f4 +/* 0D7424 7F0A28F4 10000004 */ b .L7F0A2908 +/* 0D7428 7F0A28F8 46802020 */ cvt.s.w $f0, $f4 +.L7F0A28FC: +/* 0D742C 7F0A28FC 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D7430 7F0A2900 44810000 */ mtc1 $at, $f0 +/* 0D7434 7F0A2904 00000000 */ nop +.L7F0A2908: +/* 0D7438 7F0A2908 8D0E0000 */ lw $t6, ($t0) +/* 0D743C 7F0A290C 00001025 */ move $v0, $zero +/* 0D7440 7F0A2910 3C018005 */ lui $at, %hi(D_80057728) +/* 0D7444 7F0A2914 19C000C9 */ blez $t6, .L7F0A2C3C +/* 0D7448 7F0A2918 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A164) +/* 0D744C 7F0A291C C4307728 */ lwc1 $f16, %lo(D_80057728)($at) +/* 0D7450 7F0A2920 3C018005 */ lui $at, %hi(D_8005772C) +/* 0D7454 7F0A2924 C42E772C */ lwc1 $f14, %lo(D_8005772C)($at) +/* 0D7458 7F0A2928 3C018005 */ lui $at, %hi(D_80057730) +/* 0D745C 7F0A292C C42C7730 */ lwc1 $f12, %lo(D_80057730)($at) +/* 0D7460 7F0A2930 2529A164 */ addiu $t1, %lo(dword_CODE_bss_8007A164) # addiu $t1, $t1, -0x5e9c +/* 0D7464 7F0A2934 8D2F0000 */ lw $t7, ($t1) +.L7F0A2938: +/* 0D7468 7F0A2938 01E32021 */ addu $a0, $t7, $v1 +/* 0D746C 7F0A293C 8C850000 */ lw $a1, ($a0) +/* 0D7470 7F0A2940 58A000B9 */ blezl $a1, .L7F0A2C28 +/* 0D7474 7F0A2944 8D0C0000 */ lw $t4, ($t0) +/* 0D7478 7F0A2948 4600018D */ trunc.w.s $f6, $f0 +/* 0D747C 7F0A294C 00003825 */ move $a3, $zero +/* 0D7480 7F0A2950 44063000 */ mfc1 $a2, $f6 +/* 0D7484 7F0A2954 00000000 */ nop +/* 0D7488 7F0A2958 00A6C821 */ addu $t9, $a1, $a2 +/* 0D748C 7F0A295C AC990000 */ sw $t9, ($a0) +/* 0D7490 7F0A2960 8D2A0000 */ lw $t2, ($t1) +/* 0D7494 7F0A2964 01432021 */ addu $a0, $t2, $v1 +/* 0D7498 7F0A2968 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 0D749C 7F0A296C C4880010 */ lwc1 $f8, 0x10($a0) +/* 0D74A0 7F0A2970 46005482 */ mul.s $f18, $f10, $f0 +/* 0D74A4 7F0A2974 46124100 */ add.s $f4, $f8, $f18 +/* 0D74A8 7F0A2978 E4840010 */ swc1 $f4, 0x10($a0) +/* 0D74AC 7F0A297C 8D2B0000 */ lw $t3, ($t1) +/* 0D74B0 7F0A2980 01632021 */ addu $a0, $t3, $v1 +/* 0D74B4 7F0A2984 C48A002C */ lwc1 $f10, 0x2c($a0) +/* 0D74B8 7F0A2988 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0D74BC 7F0A298C 46005202 */ mul.s $f8, $f10, $f0 +/* 0D74C0 7F0A2990 46083480 */ add.s $f18, $f6, $f8 +/* 0D74C4 7F0A2994 E4920014 */ swc1 $f18, 0x14($a0) +/* 0D74C8 7F0A2998 8D2C0000 */ lw $t4, ($t1) +/* 0D74CC 7F0A299C 01832021 */ addu $a0, $t4, $v1 +/* 0D74D0 7F0A29A0 C48A0030 */ lwc1 $f10, 0x30($a0) +/* 0D74D4 7F0A29A4 C4840018 */ lwc1 $f4, 0x18($a0) +/* 0D74D8 7F0A29A8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D74DC 7F0A29AC 46062200 */ add.s $f8, $f4, $f6 +/* 0D74E0 7F0A29B0 E4880018 */ swc1 $f8, 0x18($a0) +/* 0D74E4 7F0A29B4 8D2D0000 */ lw $t5, ($t1) +/* 0D74E8 7F0A29B8 01A32021 */ addu $a0, $t5, $v1 +/* 0D74EC 7F0A29BC C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0D74F0 7F0A29C0 C4920004 */ lwc1 $f18, 4($a0) +/* 0D74F4 7F0A29C4 46005102 */ mul.s $f4, $f10, $f0 +/* 0D74F8 7F0A29C8 46049180 */ add.s $f6, $f18, $f4 +/* 0D74FC 7F0A29CC E4860004 */ swc1 $f6, 4($a0) +/* 0D7500 7F0A29D0 8D2E0000 */ lw $t6, ($t1) +/* 0D7504 7F0A29D4 01C32021 */ addu $a0, $t6, $v1 +/* 0D7508 7F0A29D8 C48A0024 */ lwc1 $f10, 0x24($a0) +/* 0D750C 7F0A29DC C488000C */ lwc1 $f8, 0xc($a0) +/* 0D7510 7F0A29E0 46005482 */ mul.s $f18, $f10, $f0 +/* 0D7514 7F0A29E4 46124100 */ add.s $f4, $f8, $f18 +/* 0D7518 7F0A29E8 18C0007B */ blez $a2, .L7F0A2BD8 +/* 0D751C 7F0A29EC E484000C */ swc1 $f4, 0xc($a0) +/* 0D7520 7F0A29F0 30C40003 */ andi $a0, $a2, 3 +/* 0D7524 7F0A29F4 1080001C */ beqz $a0, .L7F0A2A68 +/* 0D7528 7F0A29F8 00802825 */ move $a1, $a0 +/* 0D752C 7F0A29FC 24E70001 */ addiu $a3, $a3, 1 +/* 0D7530 7F0A2A00 10A7000E */ beq $a1, $a3, .L7F0A2A3C +/* 0D7534 7F0A2A04 8D2F0000 */ lw $t7, ($t1) +.L7F0A2A08: +/* 0D7538 7F0A2A08 01E32021 */ addu $a0, $t7, $v1 +/* 0D753C 7F0A2A0C C4920008 */ lwc1 $f18, 8($a0) +/* 0D7540 7F0A2A10 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7544 7F0A2A14 24E70001 */ addiu $a3, $a3, 1 +/* 0D7548 7F0A2A18 460A9280 */ add.s $f10, $f18, $f10 +/* 0D754C 7F0A2A1C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7550 7F0A2A20 8D380000 */ lw $t8, ($t1) +/* 0D7554 7F0A2A24 03032021 */ addu $a0, $t8, $v1 +/* 0D7558 7F0A2A28 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D755C 7F0A2A2C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7560 7F0A2A30 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7564 7F0A2A34 14A7FFF4 */ bne $a1, $a3, .L7F0A2A08 +/* 0D7568 7F0A2A38 8D2F0000 */ lw $t7, ($t1) +.L7F0A2A3C: +/* 0D756C 7F0A2A3C 01E32021 */ addu $a0, $t7, $v1 +/* 0D7570 7F0A2A40 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7574 7F0A2A44 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7578 7F0A2A48 460A9280 */ add.s $f10, $f18, $f10 +/* 0D757C 7F0A2A4C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7580 7F0A2A50 8D380000 */ lw $t8, ($t1) +/* 0D7584 7F0A2A54 03032021 */ addu $a0, $t8, $v1 +/* 0D7588 7F0A2A58 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D758C 7F0A2A5C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7590 7F0A2A60 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7594 7F0A2A64 10E6005C */ beq $a3, $a2, .L7F0A2BD8 +.L7F0A2A68: +/* 0D7598 7F0A2A68 24E70004 */ addiu $a3, $a3, 4 +/* 0D759C 7F0A2A6C 10E6002F */ beq $a3, $a2, .L7F0A2B2C +/* 0D75A0 7F0A2A70 8D390000 */ lw $t9, ($t1) +.L7F0A2A74: +/* 0D75A4 7F0A2A74 03232021 */ addu $a0, $t9, $v1 +/* 0D75A8 7F0A2A78 C4920008 */ lwc1 $f18, 8($a0) +/* 0D75AC 7F0A2A7C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D75B0 7F0A2A80 24E70004 */ addiu $a3, $a3, 4 +/* 0D75B4 7F0A2A84 460A9280 */ add.s $f10, $f18, $f10 +/* 0D75B8 7F0A2A88 E48A0008 */ swc1 $f10, 8($a0) +/* 0D75BC 7F0A2A8C 8D2A0000 */ lw $t2, ($t1) +/* 0D75C0 7F0A2A90 01432021 */ addu $a0, $t2, $v1 +/* 0D75C4 7F0A2A94 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D75C8 7F0A2A98 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D75CC 7F0A2A9C E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D75D0 7F0A2AA0 8D2B0000 */ lw $t3, ($t1) +/* 0D75D4 7F0A2AA4 01632021 */ addu $a0, $t3, $v1 +/* 0D75D8 7F0A2AA8 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D75DC 7F0A2AAC C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D75E0 7F0A2AB0 46125480 */ add.s $f18, $f10, $f18 +/* 0D75E4 7F0A2AB4 E4920008 */ swc1 $f18, 8($a0) +/* 0D75E8 7F0A2AB8 8D2C0000 */ lw $t4, ($t1) +/* 0D75EC 7F0A2ABC 01832021 */ addu $a0, $t4, $v1 +/* 0D75F0 7F0A2AC0 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D75F4 7F0A2AC4 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D75F8 7F0A2AC8 E4920020 */ swc1 $f18, 0x20($a0) +/* 0D75FC 7F0A2ACC 8D2D0000 */ lw $t5, ($t1) +/* 0D7600 7F0A2AD0 01A32021 */ addu $a0, $t5, $v1 +/* 0D7604 7F0A2AD4 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7608 7F0A2AD8 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D760C 7F0A2ADC 460A9280 */ add.s $f10, $f18, $f10 +/* 0D7610 7F0A2AE0 E48A0008 */ swc1 $f10, 8($a0) +/* 0D7614 7F0A2AE4 8D2E0000 */ lw $t6, ($t1) +/* 0D7618 7F0A2AE8 01C32021 */ addu $a0, $t6, $v1 +/* 0D761C 7F0A2AEC C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7620 7F0A2AF0 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7624 7F0A2AF4 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7628 7F0A2AF8 8D2F0000 */ lw $t7, ($t1) +/* 0D762C 7F0A2AFC 01E32021 */ addu $a0, $t7, $v1 +/* 0D7630 7F0A2B00 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D7634 7F0A2B04 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7638 7F0A2B08 46125480 */ add.s $f18, $f10, $f18 +/* 0D763C 7F0A2B0C E4920008 */ swc1 $f18, 8($a0) +/* 0D7640 7F0A2B10 8D380000 */ lw $t8, ($t1) +/* 0D7644 7F0A2B14 03032021 */ addu $a0, $t8, $v1 +/* 0D7648 7F0A2B18 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D764C 7F0A2B1C 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D7650 7F0A2B20 E4920020 */ swc1 $f18, 0x20($a0) +/* 0D7654 7F0A2B24 14E6FFD3 */ bne $a3, $a2, .L7F0A2A74 +/* 0D7658 7F0A2B28 8D390000 */ lw $t9, ($t1) +.L7F0A2B2C: +/* 0D765C 7F0A2B2C 03232021 */ addu $a0, $t9, $v1 +/* 0D7660 7F0A2B30 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7664 7F0A2B34 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7668 7F0A2B38 460A9280 */ add.s $f10, $f18, $f10 +/* 0D766C 7F0A2B3C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7670 7F0A2B40 8D2A0000 */ lw $t2, ($t1) +/* 0D7674 7F0A2B44 01432021 */ addu $a0, $t2, $v1 +/* 0D7678 7F0A2B48 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D767C 7F0A2B4C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7680 7F0A2B50 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7684 7F0A2B54 8D2B0000 */ lw $t3, ($t1) +/* 0D7688 7F0A2B58 01632021 */ addu $a0, $t3, $v1 +/* 0D768C 7F0A2B5C C48A0008 */ lwc1 $f10, 8($a0) +/* 0D7690 7F0A2B60 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7694 7F0A2B64 46125480 */ add.s $f18, $f10, $f18 +/* 0D7698 7F0A2B68 E4920008 */ swc1 $f18, 8($a0) +/* 0D769C 7F0A2B6C 8D2C0000 */ lw $t4, ($t1) +/* 0D76A0 7F0A2B70 01832021 */ addu $a0, $t4, $v1 +/* 0D76A4 7F0A2B74 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D76A8 7F0A2B78 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D76AC 7F0A2B7C E4920020 */ swc1 $f18, 0x20($a0) +/* 0D76B0 7F0A2B80 8D2D0000 */ lw $t5, ($t1) +/* 0D76B4 7F0A2B84 01A32021 */ addu $a0, $t5, $v1 +/* 0D76B8 7F0A2B88 C4920008 */ lwc1 $f18, 8($a0) +/* 0D76BC 7F0A2B8C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D76C0 7F0A2B90 460A9280 */ add.s $f10, $f18, $f10 +/* 0D76C4 7F0A2B94 E48A0008 */ swc1 $f10, 8($a0) +/* 0D76C8 7F0A2B98 8D2E0000 */ lw $t6, ($t1) +/* 0D76CC 7F0A2B9C 01C32021 */ addu $a0, $t6, $v1 +/* 0D76D0 7F0A2BA0 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D76D4 7F0A2BA4 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D76D8 7F0A2BA8 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D76DC 7F0A2BAC 8D2F0000 */ lw $t7, ($t1) +/* 0D76E0 7F0A2BB0 01E32021 */ addu $a0, $t7, $v1 +/* 0D76E4 7F0A2BB4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D76E8 7F0A2BB8 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D76EC 7F0A2BBC 46125480 */ add.s $f18, $f10, $f18 +/* 0D76F0 7F0A2BC0 E4920008 */ swc1 $f18, 8($a0) +/* 0D76F4 7F0A2BC4 8D380000 */ lw $t8, ($t1) +/* 0D76F8 7F0A2BC8 03032021 */ addu $a0, $t8, $v1 +/* 0D76FC 7F0A2BCC C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7700 7F0A2BD0 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D7704 7F0A2BD4 E4920020 */ swc1 $f18, 0x20($a0) +.L7F0A2BD8: +/* 0D7708 7F0A2BD8 8D390000 */ lw $t9, ($t1) +/* 0D770C 7F0A2BDC 03232021 */ addu $a0, $t9, $v1 +/* 0D7710 7F0A2BE0 8C8A0000 */ lw $t2, ($a0) +/* 0D7714 7F0A2BE4 29410096 */ slti $at, $t2, 0x96 +/* 0D7718 7F0A2BE8 54200005 */ bnezl $at, .L7F0A2C00 +/* 0D771C 7F0A2BEC C4820008 */ lwc1 $f2, 8($a0) +/* 0D7720 7F0A2BF0 AC800000 */ sw $zero, ($a0) +/* 0D7724 7F0A2BF4 8D2B0000 */ lw $t3, ($t1) +/* 0D7728 7F0A2BF8 01632021 */ addu $a0, $t3, $v1 +/* 0D772C 7F0A2BFC C4820008 */ lwc1 $f2, 8($a0) +.L7F0A2C00: +/* 0D7730 7F0A2C00 460E103C */ c.lt.s $f2, $f14 +/* 0D7734 7F0A2C04 00000000 */ nop +/* 0D7738 7F0A2C08 45030006 */ bc1tl .L7F0A2C24 +/* 0D773C 7F0A2C0C AC800000 */ sw $zero, ($a0) +/* 0D7740 7F0A2C10 4602803C */ c.lt.s $f16, $f2 +/* 0D7744 7F0A2C14 00000000 */ nop +/* 0D7748 7F0A2C18 45020003 */ bc1fl .L7F0A2C28 +/* 0D774C 7F0A2C1C 8D0C0000 */ lw $t4, ($t0) +/* 0D7750 7F0A2C20 AC800000 */ sw $zero, ($a0) +.L7F0A2C24: +/* 0D7754 7F0A2C24 8D0C0000 */ lw $t4, ($t0) +.L7F0A2C28: +/* 0D7758 7F0A2C28 24420001 */ addiu $v0, $v0, 1 +/* 0D775C 7F0A2C2C 24630068 */ addiu $v1, $v1, 0x68 +/* 0D7760 7F0A2C30 004C082A */ slt $at, $v0, $t4 +/* 0D7764 7F0A2C34 5420FF40 */ bnezl $at, .L7F0A2938 +/* 0D7768 7F0A2C38 8D2F0000 */ lw $t7, ($t1) +.L7F0A2C3C: +/* 0D776C 7F0A2C3C 03E00008 */ jr $ra +/* 0D7770 7F0A2C40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2C44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A2C44 +/* 0D7774 7F0A2C44 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0D7778 7F0A2C48 3C058009 */ lui $a1, %hi(glassoverlayimage) +/* 0D777C 7F0A2C4C 8CA5D11C */ lw $a1, %lo(glassoverlayimage)($a1) +/* 0D7780 7F0A2C50 AFBF0044 */ sw $ra, 0x44($sp) +/* 0D7784 7F0A2C54 AFA400D0 */ sw $a0, 0xd0($sp) +/* 0D7788 7F0A2C58 240E0002 */ li $t6, 2 +/* 0D778C 7F0A2C5C AFBE0040 */ sw $fp, 0x40($sp) +/* 0D7790 7F0A2C60 AFB7003C */ sw $s7, 0x3c($sp) +/* 0D7794 7F0A2C64 AFB60038 */ sw $s6, 0x38($sp) +/* 0D7798 7F0A2C68 AFB50034 */ sw $s5, 0x34($sp) +/* 0D779C 7F0A2C6C AFB40030 */ sw $s4, 0x30($sp) +/* 0D77A0 7F0A2C70 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D77A4 7F0A2C74 AFB20028 */ sw $s2, 0x28($sp) +/* 0D77A8 7F0A2C78 AFB10024 */ sw $s1, 0x24($sp) +/* 0D77AC 7F0A2C7C AFB00020 */ sw $s0, 0x20($sp) +/* 0D77B0 7F0A2C80 AFAE0010 */ sw $t6, 0x10($sp) +/* 0D77B4 7F0A2C84 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0D77B8 7F0A2C88 24060002 */ li $a2, 2 +/* 0D77BC 7F0A2C8C 24070001 */ li $a3, 1 +/* 0D77C0 7F0A2C90 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D77C4 7F0A2C94 24A5000C */ addiu $a1, $a1, 0xc +/* 0D77C8 7F0A2C98 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D77CC 7F0A2C9C 3C19BB00 */ lui $t9, (0xBB001001 >> 16) # lui $t9, 0xbb00 +/* 0D77D0 7F0A2CA0 3C080D80 */ lui $t0, (0x0D800D80 >> 16) # lui $t0, 0xd80 +/* 0D77D4 7F0A2CA4 25F80008 */ addiu $t8, $t7, 8 +/* 0D77D8 7F0A2CA8 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D77DC 7F0A2CAC 35080D80 */ ori $t0, (0x0D800D80 & 0xFFFF) # ori $t0, $t0, 0xd80 +/* 0D77E0 7F0A2CB0 37391001 */ ori $t9, (0xBB001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 0D77E4 7F0A2CB4 ADF90000 */ sw $t9, ($t7) +/* 0D77E8 7F0A2CB8 ADE80004 */ sw $t0, 4($t7) +/* 0D77EC 7F0A2CBC 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0D77F0 7F0A2CC0 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 +/* 0D77F4 7F0A2CC4 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 +/* 0D77F8 7F0A2CC8 252A0008 */ addiu $t2, $t1, 8 +/* 0D77FC 7F0A2CCC AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7800 7F0A2CD0 3C0C0010 */ lui $t4, 0x10 +/* 0D7804 7F0A2CD4 AD2C0004 */ sw $t4, 4($t1) +/* 0D7808 7F0A2CD8 AD2B0000 */ sw $t3, ($t1) +/* 0D780C 7F0A2CDC 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0D7810 7F0A2CE0 3C0FBA00 */ lui $t7, (0xBA001001 >> 16) # lui $t7, 0xba00 +/* 0D7814 7F0A2CE4 35EF1001 */ ori $t7, (0xBA001001 & 0xFFFF) # ori $t7, $t7, 0x1001 +/* 0D7818 7F0A2CE8 25AE0008 */ addiu $t6, $t5, 8 +/* 0D781C 7F0A2CEC AFAE00D0 */ sw $t6, 0xd0($sp) +/* 0D7820 7F0A2CF0 3C180001 */ lui $t8, 1 +/* 0D7824 7F0A2CF4 ADB80004 */ sw $t8, 4($t5) +/* 0D7828 7F0A2CF8 ADAF0000 */ sw $t7, ($t5) +/* 0D782C 7F0A2CFC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0D7830 7F0A2D00 3C09B600 */ lui $t1, 0xb600 +/* 0D7834 7F0A2D04 240A3000 */ li $t2, 12288 +/* 0D7838 7F0A2D08 27280008 */ addiu $t0, $t9, 8 +/* 0D783C 7F0A2D0C AFA800D0 */ sw $t0, 0xd0($sp) +/* 0D7840 7F0A2D10 AF2A0004 */ sw $t2, 4($t9) +/* 0D7844 7F0A2D14 AF290000 */ sw $t1, ($t9) +/* 0D7848 7F0A2D18 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0D784C 7F0A2D1C 3C0DBA00 */ lui $t5, (0xBA000C02 >> 16) # lui $t5, 0xba00 +/* 0D7850 7F0A2D20 35AD0C02 */ ori $t5, (0xBA000C02 & 0xFFFF) # ori $t5, $t5, 0xc02 +/* 0D7854 7F0A2D24 256C0008 */ addiu $t4, $t3, 8 +/* 0D7858 7F0A2D28 AFAC00D0 */ sw $t4, 0xd0($sp) +/* 0D785C 7F0A2D2C 240E2000 */ li $t6, 8192 +/* 0D7860 7F0A2D30 AD6E0004 */ sw $t6, 4($t3) +/* 0D7864 7F0A2D34 AD6D0000 */ sw $t5, ($t3) +/* 0D7868 7F0A2D38 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D786C 7F0A2D3C 3C19B700 */ lui $t9, 0xb700 +/* 0D7870 7F0A2D40 3C080006 */ lui $t0, 6 +/* 0D7874 7F0A2D44 25F80008 */ addiu $t8, $t7, 8 +/* 0D7878 7F0A2D48 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D787C 7F0A2D4C ADE80004 */ sw $t0, 4($t7) +/* 0D7880 7F0A2D50 ADF90000 */ sw $t9, ($t7) +/* 0D7884 7F0A2D54 8FB000D0 */ lw $s0, 0xd0($sp) +/* 0D7888 7F0A2D58 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0D788C 7F0A2D5C 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D7890 7F0A2D60 260A0008 */ addiu $t2, $s0, 8 +/* 0D7894 7F0A2D64 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7898 7F0A2D68 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D789C 7F0A2D6C AE0B0000 */ sw $t3, ($s0) +/* 0D78A0 7F0A2D70 0C003A2C */ jal osVirtualToPhysical +/* 0D78A4 7F0A2D74 00402025 */ move $a0, $v0 +/* 0D78A8 7F0A2D78 AE020004 */ sw $v0, 4($s0) +/* 0D78AC 7F0A2D7C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 0D78B0 7F0A2D80 8C84A160 */ lw $a0, %lo(dword_CODE_bss_8007A160)($a0) +/* 0D78B4 7F0A2D84 00008025 */ move $s0, $zero +/* 0D78B8 7F0A2D88 0000A025 */ move $s4, $zero +/* 0D78BC 7F0A2D8C 18800044 */ blez $a0, .L7F0A2EA0 +/* 0D78C0 7F0A2D90 3C170420 */ lui $s7, (0x04200030 >> 16) # lui $s7, 0x420 +/* 0D78C4 7F0A2D94 3C168008 */ lui $s6, %hi(pPlayer) +/* 0D78C8 7F0A2D98 3C138008 */ lui $s3, %hi(dword_CODE_bss_8007A164) +/* 0D78CC 7F0A2D9C 2673A164 */ addiu $s3, %lo(dword_CODE_bss_8007A164) # addiu $s3, $s3, -0x5e9c +/* 0D78D0 7F0A2DA0 26D6A0B0 */ addiu $s6, %lo(pPlayer) # addiu $s6, $s6, -0x5f50 +/* 0D78D4 7F0A2DA4 3C1EBF00 */ lui $fp, 0xbf00 +/* 0D78D8 7F0A2DA8 36F70030 */ ori $s7, (0x04200030 & 0xFFFF) # ori $s7, $s7, 0x30 +/* 0D78DC 7F0A2DAC 27B50090 */ addiu $s5, $sp, 0x90 +.L7F0A2DB0: +/* 0D78E0 7F0A2DB0 8E6C0000 */ lw $t4, ($s3) +/* 0D78E4 7F0A2DB4 01906821 */ addu $t5, $t4, $s0 +/* 0D78E8 7F0A2DB8 8DAE0000 */ lw $t6, ($t5) +/* 0D78EC 7F0A2DBC 59C00035 */ blezl $t6, .L7F0A2E94 +/* 0D78F0 7F0A2DC0 26940001 */ addiu $s4, $s4, 1 +/* 0D78F4 7F0A2DC4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D78F8 7F0A2DC8 00000000 */ nop +/* 0D78FC 7F0A2DCC 8E6F0000 */ lw $t7, ($s3) +/* 0D7900 7F0A2DD0 00408825 */ move $s1, $v0 +/* 0D7904 7F0A2DD4 02A03025 */ move $a2, $s5 +/* 0D7908 7F0A2DD8 01F01821 */ addu $v1, $t7, $s0 +/* 0D790C 7F0A2DDC 24640004 */ addiu $a0, $v1, 4 +/* 0D7910 7F0A2DE0 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0D7914 7F0A2DE4 24650010 */ addiu $a1, $v1, 0x10 +/* 0D7918 7F0A2DE8 8EC20000 */ lw $v0, ($s6) +/* 0D791C 7F0A2DEC C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0D7920 7F0A2DF0 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0D7924 7F0A2DF4 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0D7928 7F0A2DF8 02A02025 */ move $a0, $s5 +/* 0D792C 7F0A2DFC 02202825 */ move $a1, $s1 +/* 0D7930 7F0A2E00 46062201 */ sub.s $f8, $f4, $f6 +/* 0D7934 7F0A2E04 C7A400C8 */ lwc1 $f4, 0xc8($sp) +/* 0D7938 7F0A2E08 E7A800C0 */ swc1 $f8, 0xc0($sp) +/* 0D793C 7F0A2E0C C450003C */ lwc1 $f16, 0x3c($v0) +/* 0D7940 7F0A2E10 46105481 */ sub.s $f18, $f10, $f16 +/* 0D7944 7F0A2E14 E7B200C4 */ swc1 $f18, 0xc4($sp) +/* 0D7948 7F0A2E18 C4460040 */ lwc1 $f6, 0x40($v0) +/* 0D794C 7F0A2E1C 46062201 */ sub.s $f8, $f4, $f6 +/* 0D7950 7F0A2E20 0FC16327 */ jal sub_GAME_7F058C9C +/* 0D7954 7F0A2E24 E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 0D7958 7F0A2E28 8FB200D0 */ lw $s2, 0xd0($sp) +/* 0D795C 7F0A2E2C 3C080102 */ lui $t0, (0x01020040 >> 16) # lui $t0, 0x102 +/* 0D7960 7F0A2E30 35080040 */ ori $t0, (0x01020040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0D7964 7F0A2E34 26590008 */ addiu $t9, $s2, 8 +/* 0D7968 7F0A2E38 AFB900D0 */ sw $t9, 0xd0($sp) +/* 0D796C 7F0A2E3C 02202025 */ move $a0, $s1 +/* 0D7970 7F0A2E40 0C003A2C */ jal osVirtualToPhysical +/* 0D7974 7F0A2E44 AE480000 */ sw $t0, ($s2) +/* 0D7978 7F0A2E48 AE420004 */ sw $v0, 4($s2) +/* 0D797C 7F0A2E4C 8FB100D0 */ lw $s1, 0xd0($sp) +/* 0D7980 7F0A2E50 262A0008 */ addiu $t2, $s1, 8 +/* 0D7984 7F0A2E54 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7988 7F0A2E58 AE370000 */ sw $s7, ($s1) +/* 0D798C 7F0A2E5C 8E6B0000 */ lw $t3, ($s3) +/* 0D7990 7F0A2E60 01702021 */ addu $a0, $t3, $s0 +/* 0D7994 7F0A2E64 0C003A2C */ jal osVirtualToPhysical +/* 0D7998 7F0A2E68 24840038 */ addiu $a0, $a0, 0x38 +/* 0D799C 7F0A2E6C AE220004 */ sw $v0, 4($s1) +/* 0D79A0 7F0A2E70 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0D79A4 7F0A2E74 240E0A14 */ li $t6, 2580 +/* 0D79A8 7F0A2E78 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 0D79AC 7F0A2E7C 258D0008 */ addiu $t5, $t4, 8 +/* 0D79B0 7F0A2E80 AFAD00D0 */ sw $t5, 0xd0($sp) +/* 0D79B4 7F0A2E84 AD8E0004 */ sw $t6, 4($t4) +/* 0D79B8 7F0A2E88 AD9E0000 */ sw $fp, ($t4) +/* 0D79BC 7F0A2E8C 8C84A160 */ lw $a0, %lo(dword_CODE_bss_8007A160)($a0) +/* 0D79C0 7F0A2E90 26940001 */ addiu $s4, $s4, 1 +.L7F0A2E94: +/* 0D79C4 7F0A2E94 0284082A */ slt $at, $s4, $a0 +/* 0D79C8 7F0A2E98 1420FFC5 */ bnez $at, .L7F0A2DB0 +/* 0D79CC 7F0A2E9C 26100068 */ addiu $s0, $s0, 0x68 +.L7F0A2EA0: +/* 0D79D0 7F0A2EA0 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D79D4 7F0A2EA4 3C19B600 */ lui $t9, 0xb600 +/* 0D79D8 7F0A2EA8 3C080006 */ lui $t0, 6 +/* 0D79DC 7F0A2EAC 25F80008 */ addiu $t8, $t7, 8 +/* 0D79E0 7F0A2EB0 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D79E4 7F0A2EB4 ADE80004 */ sw $t0, 4($t7) +/* 0D79E8 7F0A2EB8 ADF90000 */ sw $t9, ($t7) +/* 0D79EC 7F0A2EBC 8FB000D0 */ lw $s0, 0xd0($sp) +/* 0D79F0 7F0A2EC0 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0D79F4 7F0A2EC4 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D79F8 7F0A2EC8 260A0008 */ addiu $t2, $s0, 8 +/* 0D79FC 7F0A2ECC AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7A00 7F0A2ED0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D7A04 7F0A2ED4 AE0B0000 */ sw $t3, ($s0) +/* 0D7A08 7F0A2ED8 AE020004 */ sw $v0, 4($s0) +/* 0D7A0C 7F0A2EDC 8FB100D0 */ lw $s1, 0xd0($sp) +/* 0D7A10 7F0A2EE0 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0D7A14 7F0A2EE4 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0D7A18 7F0A2EE8 262D0008 */ addiu $t5, $s1, 8 +/* 0D7A1C 7F0A2EEC AFAD00D0 */ sw $t5, 0xd0($sp) +/* 0D7A20 7F0A2EF0 0FC1E0D5 */ jal get_BONDdata_field_10C8 +/* 0D7A24 7F0A2EF4 AE2E0000 */ sw $t6, ($s1) +/* 0D7A28 7F0A2EF8 AE220004 */ sw $v0, 4($s1) +/* 0D7A2C 7F0A2EFC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D7A30 7F0A2F00 8FBE0040 */ lw $fp, 0x40($sp) +/* 0D7A34 7F0A2F04 8FB7003C */ lw $s7, 0x3c($sp) +/* 0D7A38 7F0A2F08 8FB60038 */ lw $s6, 0x38($sp) +/* 0D7A3C 7F0A2F0C 8FB50034 */ lw $s5, 0x34($sp) +/* 0D7A40 7F0A2F10 8FB40030 */ lw $s4, 0x30($sp) +/* 0D7A44 7F0A2F14 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D7A48 7F0A2F18 8FB20028 */ lw $s2, 0x28($sp) +/* 0D7A4C 7F0A2F1C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D7A50 7F0A2F20 8FB00020 */ lw $s0, 0x20($sp) +/* 0D7A54 7F0A2F24 8FA200D0 */ lw $v0, 0xd0($sp) +/* 0D7A58 7F0A2F28 03E00008 */ jr $ra +/* 0D7A5C 7F0A2F2C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2F30(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057740 +.word 0x4061d000, 0x00000000 /*142.5*/ +glabel D_80057748 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F0A2F30 +/* 0D7A60 7F0A2F30 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0D7A64 7F0A2F34 AFB60060 */ sw $s6, 0x60($sp) +/* 0D7A68 7F0A2F38 00C0B025 */ move $s6, $a2 +/* 0D7A6C 7F0A2F3C 44963000 */ mtc1 $s6, $f6 +/* 0D7A70 7F0A2F40 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0D7A74 7F0A2F44 44812000 */ mtc1 $at, $f4 +/* 0D7A78 7F0A2F48 46803220 */ cvt.s.w $f8, $f6 +/* 0D7A7C 7F0A2F4C F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D7A80 7F0A2F50 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0D7A84 7F0A2F54 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D7A88 7F0A2F58 4481F000 */ mtc1 $at, $f30 +/* 0D7A8C 7F0A2F5C 4487B000 */ mtc1 $a3, $f22 +/* 0D7A90 7F0A2F60 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D7A94 7F0A2F64 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D7A98 7F0A2F68 4481E000 */ mtc1 $at, $f28 +/* 0D7A9C 7F0A2F6C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D7AA0 7F0A2F70 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0D7AA4 7F0A2F74 AFBE0068 */ sw $fp, 0x68($sp) +/* 0D7AA8 7F0A2F78 AFB70064 */ sw $s7, 0x64($sp) +/* 0D7AAC 7F0A2F7C AFB5005C */ sw $s5, 0x5c($sp) +/* 0D7AB0 7F0A2F80 AFB30054 */ sw $s3, 0x54($sp) +/* 0D7AB4 7F0A2F84 AFB20050 */ sw $s2, 0x50($sp) +/* 0D7AB8 7F0A2F88 AFB00048 */ sw $s0, 0x48($sp) +/* 0D7ABC 7F0A2F8C 4481D000 */ mtc1 $at, $f26 +/* 0D7AC0 7F0A2F90 4604B582 */ mul.s $f22, $f22, $f4 +/* 0D7AC4 7F0A2F94 00808025 */ move $s0, $a0 +/* 0D7AC8 7F0A2F98 AFBF006C */ sw $ra, 0x6c($sp) +/* 0D7ACC 7F0A2F9C AFB40058 */ sw $s4, 0x58($sp) +/* 0D7AD0 7F0A2FA0 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D7AD4 7F0A2FA4 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D7AD8 7F0A2FA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D7ADC 7F0A2FAC AFA5009C */ sw $a1, 0x9c($sp) +/* 0D7AE0 7F0A2FB0 00009025 */ move $s2, $zero +/* 0D7AE4 7F0A2FB4 241300FF */ li $s3, 255 +/* 0D7AE8 7F0A2FB8 24150030 */ li $s5, 48 +/* 0D7AEC 7F0A2FBC 24170006 */ li $s7, 6 +/* 0D7AF0 7F0A2FC0 241E0002 */ li $fp, 2 +/* 0D7AF4 7F0A2FC4 E7A80074 */ swc1 $f8, 0x74($sp) +/* 0D7AF8 7F0A2FC8 AFA00080 */ sw $zero, 0x80($sp) +.L7F0A2FCC: +/* 0D7AFC 7F0A2FCC 8FA20080 */ lw $v0, 0x80($sp) +/* 0D7B00 7F0A2FD0 3C018005 */ lui $at, %hi(D_80057740) +/* 0D7B04 7F0A2FD4 D42A7740 */ ldc1 $f10, %lo(D_80057740)($at) +/* 0D7B08 7F0A2FD8 44828000 */ mtc1 $v0, $f16 +/* 0D7B0C 7F0A2FDC 3C018005 */ lui $at, %hi(D_80057748) +/* 0D7B10 7F0A2FE0 0000A025 */ move $s4, $zero +/* 0D7B14 7F0A2FE4 468084A1 */ cvt.d.w $f18, $f16 +/* 0D7B18 7F0A2FE8 46325101 */ sub.d $f4, $f10, $f18 +/* 0D7B1C 7F0A2FEC C42A7748 */ lwc1 $f10, %lo(D_80057748)($at) +/* 0D7B20 7F0A2FF0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0D7B24 7F0A2FF4 4620218D */ trunc.w.d $f6, $f4 +/* 0D7B28 7F0A2FF8 44812000 */ mtc1 $at, $f4 +/* 0D7B2C 7F0A2FFC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0D7B30 7F0A3000 440F3000 */ mfc1 $t7, $f6 +/* 0D7B34 7F0A3004 00000000 */ nop +/* 0D7B38 7F0A3008 448F4000 */ mtc1 $t7, $f8 +/* 0D7B3C 7F0A300C 00000000 */ nop +/* 0D7B40 7F0A3010 46804420 */ cvt.s.w $f16, $f8 +/* 0D7B44 7F0A3014 44814000 */ mtc1 $at, $f8 +/* 0D7B48 7F0A3018 460A8482 */ mul.s $f18, $f16, $f10 +/* 0D7B4C 7F0A301C 00000000 */ nop +/* 0D7B50 7F0A3020 46049182 */ mul.s $f6, $f18, $f4 +/* 0D7B54 7F0A3024 46083603 */ div.s $f24, $f6, $f8 +.L7F0A3028: +/* 0D7B58 7F0A3028 0FC15FAB */ jal sinf +/* 0D7B5C 7F0A302C 4600C306 */ mov.s $f12, $f24 +/* 0D7B60 7F0A3030 461C0282 */ mul.s $f10, $f0, $f28 +/* 0D7B64 7F0A3034 02F4C023 */ subu $t8, $s7, $s4 +/* 0D7B68 7F0A3038 44988000 */ mtc1 $t8, $f16 +/* 0D7B6C 7F0A303C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7B70 7F0A3040 44813000 */ mtc1 $at, $f6 +/* 0D7B74 7F0A3044 4600C306 */ mov.s $f12, $f24 +/* 0D7B78 7F0A3048 46808520 */ cvt.s.w $f20, $f16 +/* 0D7B7C 7F0A304C 461E5482 */ mul.s $f18, $f10, $f30 +/* 0D7B80 7F0A3050 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0D7B84 7F0A3054 46149102 */ mul.s $f4, $f18, $f20 +/* 0D7B88 7F0A3058 46062203 */ div.s $f8, $f4, $f6 +/* 0D7B8C 7F0A305C 46104282 */ mul.s $f10, $f8, $f16 +/* 0D7B90 7F0A3060 4600548D */ trunc.w.s $f18, $f10 +/* 0D7B94 7F0A3064 44119000 */ mfc1 $s1, $f18 +/* 0D7B98 7F0A3068 00000000 */ nop +/* 0D7B9C 7F0A306C 00114400 */ sll $t0, $s1, 0x10 +/* 0D7BA0 7F0A3070 0FC15FA8 */ jal cosf +/* 0D7BA4 7F0A3074 00088C03 */ sra $s1, $t0, 0x10 +/* 0D7BA8 7F0A3078 461C0102 */ mul.s $f4, $f0, $f28 +/* 0D7BAC 7F0A307C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7BB0 7F0A3080 44818000 */ mtc1 $at, $f16 +/* 0D7BB4 7F0A3084 262A0001 */ addiu $t2, $s1, 1 +/* 0D7BB8 7F0A3088 A60A0000 */ sh $t2, ($s0) +/* 0D7BBC 7F0A308C A6000002 */ sh $zero, 2($s0) +/* 0D7BC0 7F0A3090 A6000006 */ sh $zero, 6($s0) +/* 0D7BC4 7F0A3094 461E2182 */ mul.s $f6, $f4, $f30 +/* 0D7BC8 7F0A3098 A6000008 */ sh $zero, 8($s0) +/* 0D7BCC 7F0A309C A600000A */ sh $zero, 0xa($s0) +/* 0D7BD0 7F0A30A0 A213000C */ sb $s3, 0xc($s0) +/* 0D7BD4 7F0A30A4 A213000D */ sb $s3, 0xd($s0) +/* 0D7BD8 7F0A30A8 A213000E */ sb $s3, 0xe($s0) +/* 0D7BDC 7F0A30AC 46143202 */ mul.s $f8, $f6, $f20 +/* 0D7BE0 7F0A30B0 46104283 */ div.s $f10, $f8, $f16 +/* 0D7BE4 7F0A30B4 4600548D */ trunc.w.s $f18, $f10 +/* 0D7BE8 7F0A30B8 440E9000 */ mfc1 $t6, $f18 +/* 0D7BEC 7F0A30BC 00000000 */ nop +/* 0D7BF0 7F0A30C0 000E7823 */ negu $t7, $t6 +/* 0D7BF4 7F0A30C4 1AC00013 */ blez $s6, .L7F0A3114 +/* 0D7BF8 7F0A30C8 A60F0004 */ sh $t7, 4($s0) +/* 0D7BFC 7F0A30CC 0FC15FA8 */ jal cosf +/* 0D7C00 7F0A30D0 4600C306 */ mov.s $f12, $f24 +/* 0D7C04 7F0A30D4 3C0142C0 */ li $at, 0x42C00000 # 96.000000 +/* 0D7C08 7F0A30D8 44811000 */ mtc1 $at, $f2 +/* 0D7C0C 7F0A30DC 4600C306 */ mov.s $f12, $f24 +/* 0D7C10 7F0A30E0 46020102 */ mul.s $f4, $f0, $f2 +/* 0D7C14 7F0A30E4 46041181 */ sub.s $f6, $f2, $f4 +/* 0D7C18 7F0A30E8 4600320D */ trunc.w.s $f8, $f6 +/* 0D7C1C 7F0A30EC 44194000 */ mfc1 $t9, $f8 +/* 0D7C20 7F0A30F0 0FC15FA8 */ jal cosf +/* 0D7C24 7F0A30F4 A219000C */ sb $t9, 0xc($s0) +/* 0D7C28 7F0A30F8 461A0402 */ mul.s $f16, $f0, $f26 +/* 0D7C2C 7F0A30FC A213000E */ sb $s3, 0xe($s0) +/* 0D7C30 7F0A3100 4610D281 */ sub.s $f10, $f26, $f16 +/* 0D7C34 7F0A3104 4600548D */ trunc.w.s $f18, $f10 +/* 0D7C38 7F0A3108 44099000 */ mfc1 $t1, $f18 +/* 0D7C3C 7F0A310C 10000015 */ b .L7F0A3164 +/* 0D7C40 7F0A3110 A209000D */ sb $t1, 0xd($s0) +.L7F0A3114: +/* 0D7C44 7F0A3114 06C30014 */ bgezl $s6, .L7F0A3168 +/* 0D7C48 7F0A3118 2A41000A */ slti $at, $s2, 0xa +/* 0D7C4C 7F0A311C 0FC15FA8 */ jal cosf +/* 0D7C50 7F0A3120 4600C306 */ mov.s $f12, $f24 +/* 0D7C54 7F0A3124 461A0102 */ mul.s $f4, $f0, $f26 +/* 0D7C58 7F0A3128 4600C306 */ mov.s $f12, $f24 +/* 0D7C5C 7F0A312C 4604D181 */ sub.s $f6, $f26, $f4 +/* 0D7C60 7F0A3130 4600320D */ trunc.w.s $f8, $f6 +/* 0D7C64 7F0A3134 440B4000 */ mfc1 $t3, $f8 +/* 0D7C68 7F0A3138 0FC15FA8 */ jal cosf +/* 0D7C6C 7F0A313C A20B000D */ sb $t3, 0xd($s0) +/* 0D7C70 7F0A3140 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0D7C74 7F0A3144 44815000 */ mtc1 $at, $f10 +/* 0D7C78 7F0A3148 44818000 */ mtc1 $at, $f16 +/* 0D7C7C 7F0A314C 460A0482 */ mul.s $f18, $f0, $f10 +/* 0D7C80 7F0A3150 46128101 */ sub.s $f4, $f16, $f18 +/* 0D7C84 7F0A3154 4600218D */ trunc.w.s $f6, $f4 +/* 0D7C88 7F0A3158 440D3000 */ mfc1 $t5, $f6 +/* 0D7C8C 7F0A315C 00000000 */ nop +/* 0D7C90 7F0A3160 A20D000E */ sb $t5, 0xe($s0) +.L7F0A3164: +/* 0D7C94 7F0A3164 2A41000A */ slti $at, $s2, 0xa +.L7F0A3168: +/* 0D7C98 7F0A3168 10200022 */ beqz $at, .L7F0A31F4 +/* 0D7C9C 7F0A316C 26940001 */ addiu $s4, $s4, 1 +/* 0D7CA0 7F0A3170 4600B20D */ trunc.w.s $f8, $f22 +/* 0D7CA4 7F0A3174 44024000 */ mfc1 $v0, $f8 +/* 0D7CA8 7F0A3178 00000000 */ nop +/* 0D7CAC 7F0A317C 00021840 */ sll $v1, $v0, 1 +/* 0D7CB0 7F0A3180 2463FFFF */ addiu $v1, $v1, -1 +/* 0D7CB4 7F0A3184 0072082A */ slt $at, $v1, $s2 +/* 0D7CB8 7F0A3188 54200004 */ bnezl $at, .L7F0A319C +/* 0D7CBC 7F0A318C 4616B280 */ add.s $f10, $f22, $f22 +/* 0D7CC0 7F0A3190 1000004D */ b .L7F0A32C8 +/* 0D7CC4 7F0A3194 A213000F */ sb $s3, 0xf($s0) +/* 0D7CC8 7F0A3198 4616B280 */ add.s $f10, $f22, $f22 +.L7F0A319C: +/* 0D7CCC 7F0A319C 4600540D */ trunc.w.s $f16, $f10 +/* 0D7CD0 7F0A31A0 44188000 */ mfc1 $t8, $f16 +/* 0D7CD4 7F0A31A4 00000000 */ nop +/* 0D7CD8 7F0A31A8 0258082A */ slt $at, $s2, $t8 +/* 0D7CDC 7F0A31AC 1020000F */ beqz $at, .L7F0A31EC +/* 0D7CE0 7F0A31B0 0072082A */ slt $at, $v1, $s2 +/* 0D7CE4 7F0A31B4 1020000D */ beqz $at, .L7F0A31EC +/* 0D7CE8 7F0A31B8 00000000 */ nop +/* 0D7CEC 7F0A31BC 44829000 */ mtc1 $v0, $f18 +/* 0D7CF0 7F0A31C0 3C01434F */ li $at, 0x434F0000 # 207.000000 +/* 0D7CF4 7F0A31C4 44814000 */ mtc1 $at, $f8 +/* 0D7CF8 7F0A31C8 46809120 */ cvt.s.w $f4, $f18 +/* 0D7CFC 7F0A31CC 4604B181 */ sub.s $f6, $f22, $f4 +/* 0D7D00 7F0A31D0 46083282 */ mul.s $f10, $f6, $f8 +/* 0D7D04 7F0A31D4 4600540D */ trunc.w.s $f16, $f10 +/* 0D7D08 7F0A31D8 44088000 */ mfc1 $t0, $f16 +/* 0D7D0C 7F0A31DC 00000000 */ nop +/* 0D7D10 7F0A31E0 25090030 */ addiu $t1, $t0, 0x30 +/* 0D7D14 7F0A31E4 10000038 */ b .L7F0A32C8 +/* 0D7D18 7F0A31E8 A209000F */ sb $t1, 0xf($s0) +.L7F0A31EC: +/* 0D7D1C 7F0A31EC 10000036 */ b .L7F0A32C8 +/* 0D7D20 7F0A31F0 A215000F */ sb $s5, 0xf($s0) +.L7F0A31F4: +/* 0D7D24 7F0A31F4 2A41000A */ slti $at, $s2, 0xa +/* 0D7D28 7F0A31F8 14200033 */ bnez $at, .L7F0A32C8 +/* 0D7D2C 7F0A31FC 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7D30 7F0A3200 44819000 */ mtc1 $at, $f18 +/* 0D7D34 7F0A3204 44924000 */ mtc1 $s2, $f8 +/* 0D7D38 7F0A3208 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 0D7D3C 7F0A320C 4612B001 */ sub.s $f0, $f22, $f18 +/* 0D7D40 7F0A3210 44812000 */ mtc1 $at, $f4 +/* 0D7D44 7F0A3214 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D7D48 7F0A3218 468042A0 */ cvt.s.w $f10, $f8 +/* 0D7D4C 7F0A321C 461C0082 */ mul.s $f2, $f0, $f28 +/* 0D7D50 7F0A3220 46022180 */ add.s $f6, $f4, $f2 +/* 0D7D54 7F0A3224 4606503E */ c.le.s $f10, $f6 +/* 0D7D58 7F0A3228 00000000 */ nop +/* 0D7D5C 7F0A322C 45020004 */ bc1fl .L7F0A3240 +/* 0D7D60 7F0A3230 44818000 */ mtc1 $at, $f16 +/* 0D7D64 7F0A3234 10000024 */ b .L7F0A32C8 +/* 0D7D68 7F0A3238 A213000F */ sb $s3, 0xf($s0) +/* 0D7D6C 7F0A323C 44818000 */ mtc1 $at, $f16 +.L7F0A3240: +/* 0D7D70 7F0A3240 00000000 */ nop +/* 0D7D74 7F0A3244 46101480 */ add.s $f18, $f2, $f16 +/* 0D7D78 7F0A3248 4600910D */ trunc.w.s $f4, $f18 +/* 0D7D7C 7F0A324C 440B2000 */ mfc1 $t3, $f4 +/* 0D7D80 7F0A3250 00000000 */ nop +/* 0D7D84 7F0A3254 256C0009 */ addiu $t4, $t3, 9 +/* 0D7D88 7F0A3258 0192082A */ slt $at, $t4, $s2 +/* 0D7D8C 7F0A325C 5420001A */ bnezl $at, .L7F0A32C8 +/* 0D7D90 7F0A3260 A215000F */ sb $s5, 0xf($s0) +/* 0D7D94 7F0A3264 4600020D */ trunc.w.s $f8, $f0 +/* 0D7D98 7F0A3268 440E4000 */ mfc1 $t6, $f8 +/* 0D7D9C 7F0A326C 00000000 */ nop +/* 0D7DA0 7F0A3270 000E7840 */ sll $t7, $t6, 1 +/* 0D7DA4 7F0A3274 25F80008 */ addiu $t8, $t7, 8 +/* 0D7DA8 7F0A3278 0312082A */ slt $at, $t8, $s2 +/* 0D7DAC 7F0A327C 50200012 */ beql $at, $zero, .L7F0A32C8 +/* 0D7DB0 7F0A3280 A215000F */ sb $s5, 0xf($s0) +/* 0D7DB4 7F0A3284 4600B18D */ trunc.w.s $f6, $f22 +/* 0D7DB8 7F0A3288 3C01434F */ li $at, 0x434F0000 # 207.000000 +/* 0D7DBC 7F0A328C 44812000 */ mtc1 $at, $f4 +/* 0D7DC0 7F0A3290 44083000 */ mfc1 $t0, $f6 +/* 0D7DC4 7F0A3294 00000000 */ nop +/* 0D7DC8 7F0A3298 44885000 */ mtc1 $t0, $f10 +/* 0D7DCC 7F0A329C 00000000 */ nop +/* 0D7DD0 7F0A32A0 46805420 */ cvt.s.w $f16, $f10 +/* 0D7DD4 7F0A32A4 4610B481 */ sub.s $f18, $f22, $f16 +/* 0D7DD8 7F0A32A8 46049202 */ mul.s $f8, $f18, $f4 +/* 0D7DDC 7F0A32AC 4600418D */ trunc.w.s $f6, $f8 +/* 0D7DE0 7F0A32B0 440A3000 */ mfc1 $t2, $f6 +/* 0D7DE4 7F0A32B4 00000000 */ nop +/* 0D7DE8 7F0A32B8 254B0030 */ addiu $t3, $t2, 0x30 +/* 0D7DEC 7F0A32BC 10000002 */ b .L7F0A32C8 +/* 0D7DF0 7F0A32C0 A20B000F */ sb $t3, 0xf($s0) +/* 0D7DF4 7F0A32C4 A215000F */ sb $s5, 0xf($s0) +.L7F0A32C8: +/* 0D7DF8 7F0A32C8 169EFF57 */ bne $s4, $fp, .L7F0A3028 +/* 0D7DFC 7F0A32CC 26100010 */ addiu $s0, $s0, 0x10 +/* 0D7E00 7F0A32D0 8FAC0080 */ lw $t4, 0x80($sp) +/* 0D7E04 7F0A32D4 26520001 */ addiu $s2, $s2, 1 +/* 0D7E08 7F0A32D8 24010017 */ li $at, 23 +/* 0D7E0C 7F0A32DC 258D0005 */ addiu $t5, $t4, 5 +/* 0D7E10 7F0A32E0 1641FF3A */ bne $s2, $at, .L7F0A2FCC +/* 0D7E14 7F0A32E4 AFAD0080 */ sw $t5, 0x80($sp) +/* 0D7E18 7F0A32E8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D7E1C 7F0A32EC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D7E20 7F0A32F0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D7E24 7F0A32F4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D7E28 7F0A32F8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D7E2C 7F0A32FC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D7E30 7F0A3300 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D7E34 7F0A3304 8FB00048 */ lw $s0, 0x48($sp) +/* 0D7E38 7F0A3308 8FB1004C */ lw $s1, 0x4c($sp) +/* 0D7E3C 7F0A330C 8FB20050 */ lw $s2, 0x50($sp) +/* 0D7E40 7F0A3310 8FB30054 */ lw $s3, 0x54($sp) +/* 0D7E44 7F0A3314 8FB40058 */ lw $s4, 0x58($sp) +/* 0D7E48 7F0A3318 8FB5005C */ lw $s5, 0x5c($sp) +/* 0D7E4C 7F0A331C 8FB60060 */ lw $s6, 0x60($sp) +/* 0D7E50 7F0A3320 8FB70064 */ lw $s7, 0x64($sp) +/* 0D7E54 7F0A3324 8FBE0068 */ lw $fp, 0x68($sp) +/* 0D7E58 7F0A3328 03E00008 */ jr $ra +/* 0D7E5C 7F0A332C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3330(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3330 +/* 0D7E60 7F0A3330 00803825 */ move $a3, $a0 +/* 0D7E64 7F0A3334 00001025 */ move $v0, $zero +/* 0D7E68 7F0A3338 04C10003 */ bgez $a2, .L7F0A3348 +/* 0D7E6C 7F0A333C 00061843 */ sra $v1, $a2, 1 +/* 0D7E70 7F0A3340 24C10001 */ addiu $at, $a2, 1 +/* 0D7E74 7F0A3344 00011843 */ sra $v1, $at, 1 +.L7F0A3348: +/* 0D7E78 7F0A3348 2463FFFE */ addiu $v1, $v1, -2 +/* 0D7E7C 7F0A334C 04600026 */ bltz $v1, .L7F0A33E8 +/* 0D7E80 7F0A3350 3C0BB800 */ lui $t3, 0xb800 +/* 0D7E84 7F0A3354 3C08B100 */ lui $t0, (0xB1000032 >> 16) # lui $t0, 0xb100 +/* 0D7E88 7F0A3358 3C060430 */ lui $a2, (0x04300040 >> 16) # lui $a2, 0x430 +/* 0D7E8C 7F0A335C 34C60040 */ ori $a2, (0x04300040 & 0xFFFF) # ori $a2, $a2, 0x40 +/* 0D7E90 7F0A3360 35080032 */ ori $t0, (0xB1000032 & 0xFFFF) # ori $t0, $t0, 0x32 +/* 0D7E94 7F0A3364 24092110 */ li $t1, 8464 +.L7F0A3368: +/* 0D7E98 7F0A3368 00E02025 */ move $a0, $a3 +/* 0D7E9C 7F0A336C 28410009 */ slti $at, $v0, 9 +/* 0D7EA0 7F0A3370 AC860000 */ sw $a2, ($a0) +/* 0D7EA4 7F0A3374 AC850004 */ sw $a1, 4($a0) +/* 0D7EA8 7F0A3378 1420000D */ bnez $at, .L7F0A33B0 +/* 0D7EAC 7F0A337C 24E70008 */ addiu $a3, $a3, 8 +/* 0D7EB0 7F0A3380 244E0003 */ addiu $t6, $v0, 3 +/* 0D7EB4 7F0A3384 05C10004 */ bgez $t6, .L7F0A3398 +/* 0D7EB8 7F0A3388 31CF0003 */ andi $t7, $t6, 3 +/* 0D7EBC 7F0A338C 11E00002 */ beqz $t7, .L7F0A3398 +/* 0D7EC0 7F0A3390 00000000 */ nop +/* 0D7EC4 7F0A3394 25EFFFFC */ addiu $t7, $t7, -4 +.L7F0A3398: +/* 0D7EC8 7F0A3398 11E0000D */ beqz $t7, .L7F0A33D0 +/* 0D7ECC 7F0A339C 00E02025 */ move $a0, $a3 +/* 0D7ED0 7F0A33A0 24E70008 */ addiu $a3, $a3, 8 +/* 0D7ED4 7F0A33A4 AC880000 */ sw $t0, ($a0) +/* 0D7ED8 7F0A33A8 10000009 */ b .L7F0A33D0 +/* 0D7EDC 7F0A33AC AC890004 */ sw $t1, 4($a0) +.L7F0A33B0: +/* 0D7EE0 7F0A33B0 28410009 */ slti $at, $v0, 9 +/* 0D7EE4 7F0A33B4 10200006 */ beqz $at, .L7F0A33D0 +/* 0D7EE8 7F0A33B8 30580001 */ andi $t8, $v0, 1 +/* 0D7EEC 7F0A33BC 17000004 */ bnez $t8, .L7F0A33D0 +/* 0D7EF0 7F0A33C0 00E02025 */ move $a0, $a3 +/* 0D7EF4 7F0A33C4 24E70008 */ addiu $a3, $a3, 8 +/* 0D7EF8 7F0A33C8 AC880000 */ sw $t0, ($a0) +/* 0D7EFC 7F0A33CC AC890004 */ sw $t1, 4($a0) +.L7F0A33D0: +/* 0D7F00 7F0A33D0 24420001 */ addiu $v0, $v0, 1 +/* 0D7F04 7F0A33D4 0002CE00 */ sll $t9, $v0, 0x18 +/* 0D7F08 7F0A33D8 00191603 */ sra $v0, $t9, 0x18 +/* 0D7F0C 7F0A33DC 0062082A */ slt $at, $v1, $v0 +/* 0D7F10 7F0A33E0 1020FFE1 */ beqz $at, .L7F0A3368 +/* 0D7F14 7F0A33E4 24A50020 */ addiu $a1, $a1, 0x20 +.L7F0A33E8: +/* 0D7F18 7F0A33E8 24E20008 */ addiu $v0, $a3, 8 +/* 0D7F1C 7F0A33EC ACEB0000 */ sw $t3, ($a3) +/* 0D7F20 7F0A33F0 03E00008 */ jr $ra +/* 0D7F24 7F0A33F4 ACE00004 */ sw $zero, 4($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A33F8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005774C +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F0A33F8 +/* 0D7F28 7F0A33F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0D7F2C 7F0A33FC F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 0D7F30 7F0A3400 4486F000 */ mtc1 $a2, $f30 +/* 0D7F34 7F0A3404 AFB6005C */ sw $s6, 0x5c($sp) +/* 0D7F38 7F0A3408 AFB00044 */ sw $s0, 0x44($sp) +/* 0D7F3C 7F0A340C 00808025 */ move $s0, $a0 +/* 0D7F40 7F0A3410 00A0B025 */ move $s6, $a1 +/* 0D7F44 7F0A3414 AFBF0064 */ sw $ra, 0x64($sp) +/* 0D7F48 7F0A3418 AFB70060 */ sw $s7, 0x60($sp) +/* 0D7F4C 7F0A341C AFB50058 */ sw $s5, 0x58($sp) +/* 0D7F50 7F0A3420 AFB40054 */ sw $s4, 0x54($sp) +/* 0D7F54 7F0A3424 AFB30050 */ sw $s3, 0x50($sp) +/* 0D7F58 7F0A3428 AFB2004C */ sw $s2, 0x4c($sp) +/* 0D7F5C 7F0A342C AFB10048 */ sw $s1, 0x48($sp) +/* 0D7F60 7F0A3430 F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 0D7F64 7F0A3434 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 0D7F68 7F0A3438 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 0D7F6C 7F0A343C F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0D7F70 7F0A3440 10E0000F */ beqz $a3, .L7F0A3480 +/* 0D7F74 7F0A3444 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D7F78 7F0A3448 241500B0 */ li $s5, 176 +/* 0D7F7C 7F0A344C 240E0001 */ li $t6, 1 +/* 0D7F80 7F0A3450 240F002C */ li $t7, 44 +/* 0D7F84 7F0A3454 A48E0000 */ sh $t6, ($a0) +/* 0D7F88 7F0A3458 A4800002 */ sh $zero, 2($a0) +/* 0D7F8C 7F0A345C A4800004 */ sh $zero, 4($a0) +/* 0D7F90 7F0A3460 A4800006 */ sh $zero, 6($a0) +/* 0D7F94 7F0A3464 A4800008 */ sh $zero, 8($a0) +/* 0D7F98 7F0A3468 A480000A */ sh $zero, 0xa($a0) +/* 0D7F9C 7F0A346C A080000C */ sb $zero, 0xc($a0) +/* 0D7FA0 7F0A3470 A08F000D */ sb $t7, 0xd($a0) +/* 0D7FA4 7F0A3474 A080000E */ sb $zero, 0xe($a0) +/* 0D7FA8 7F0A3478 A095000F */ sb $s5, 0xf($a0) +/* 0D7FAC 7F0A347C 24900010 */ addiu $s0, $a0, 0x10 +.L7F0A3480: +/* 0D7FB0 7F0A3480 26D7FFF9 */ addiu $s7, $s6, -7 +/* 0D7FB4 7F0A3484 2AE10007 */ slti $at, $s7, 7 +/* 0D7FB8 7F0A3488 241500B0 */ li $s5, 176 +/* 0D7FBC 7F0A348C 14200129 */ bnez $at, .L7F0A3934 +/* 0D7FC0 7F0A3490 24110007 */ li $s1, 7 +/* 0D7FC4 7F0A3494 44962000 */ mtc1 $s6, $f4 +/* 0D7FC8 7F0A3498 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0D7FCC 7F0A349C 4481E000 */ mtc1 $at, $f28 +/* 0D7FD0 7F0A34A0 46802020 */ cvt.s.w $f0, $f4 +/* 0D7FD4 7F0A34A4 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 0D7FD8 7F0A34A8 4481D000 */ mtc1 $at, $f26 +/* 0D7FDC 7F0A34AC 3C014402 */ li $at, 0x44020000 # 520.000000 +/* 0D7FE0 7F0A34B0 4481C000 */ mtc1 $at, $f24 +/* 0D7FE4 7F0A34B4 4480B000 */ mtc1 $zero, $f22 +/* 0D7FE8 7F0A34B8 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0D7FEC 7F0A34BC 241300FF */ li $s3, 255 +/* 0D7FF0 7F0A34C0 44913000 */ mtc1 $s1, $f6 +.L7F0A34C4: +/* 0D7FF4 7F0A34C4 3C018005 */ lui $at, %hi(D_8005774C) +/* 0D7FF8 7F0A34C8 C42A774C */ lwc1 $f10, %lo(D_8005774C)($at) +/* 0D7FFC 7F0A34CC 46803220 */ cvt.s.w $f8, $f6 +/* 0D8000 7F0A34D0 C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 0D8004 7F0A34D4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8008 7F0A34D8 46008503 */ div.s $f20, $f16, $f0 +/* 0D800C 7F0A34DC 0FC15FAB */ jal sinf +/* 0D8010 7F0A34E0 4600A306 */ mov.s $f12, $f20 +/* 0D8014 7F0A34E4 46180482 */ mul.s $f18, $f0, $f24 +/* 0D8018 7F0A34E8 4600A306 */ mov.s $f12, $f20 +/* 0D801C 7F0A34EC 461E9102 */ mul.s $f4, $f18, $f30 +/* 0D8020 7F0A34F0 4600218D */ trunc.w.s $f6, $f4 +/* 0D8024 7F0A34F4 44123000 */ mfc1 $s2, $f6 +/* 0D8028 7F0A34F8 00000000 */ nop +/* 0D802C 7F0A34FC 0012CC00 */ sll $t9, $s2, 0x10 +/* 0D8030 7F0A3500 0FC15FA8 */ jal cosf +/* 0D8034 7F0A3504 00199403 */ sra $s2, $t9, 0x10 +/* 0D8038 7F0A3508 46180202 */ mul.s $f8, $f0, $f24 +/* 0D803C 7F0A350C 264B0001 */ addiu $t3, $s2, 1 +/* 0D8040 7F0A3510 A60B0000 */ sh $t3, ($s0) +/* 0D8044 7F0A3514 A6000002 */ sh $zero, 2($s0) +/* 0D8048 7F0A3518 A6000006 */ sh $zero, 6($s0) +/* 0D804C 7F0A351C A6000008 */ sh $zero, 8($s0) +/* 0D8050 7F0A3520 A600000A */ sh $zero, 0xa($s0) +/* 0D8054 7F0A3524 461E4282 */ mul.s $f10, $f8, $f30 +/* 0D8058 7F0A3528 4600A306 */ mov.s $f12, $f20 +/* 0D805C 7F0A352C 4600540D */ trunc.w.s $f16, $f10 +/* 0D8060 7F0A3530 440D8000 */ mfc1 $t5, $f16 +/* 0D8064 7F0A3534 00000000 */ nop +/* 0D8068 7F0A3538 000DA400 */ sll $s4, $t5, 0x10 +/* 0D806C 7F0A353C 00145403 */ sra $t2, $s4, 0x10 +/* 0D8070 7F0A3540 000D7023 */ negu $t6, $t5 +/* 0D8074 7F0A3544 0140A025 */ move $s4, $t2 +/* 0D8078 7F0A3548 0FC15FA8 */ jal cosf +/* 0D807C 7F0A354C A60E0004 */ sh $t6, 4($s0) +/* 0D8080 7F0A3550 46160482 */ mul.s $f18, $f0, $f22 +/* 0D8084 7F0A3554 24180001 */ li $t8, 1 +/* 0D8088 7F0A3558 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D808C 7F0A355C 4612B101 */ sub.s $f4, $f22, $f18 +/* 0D8090 7F0A3560 444FF800 */ cfc1 $t7, $31 +/* 0D8094 7F0A3564 44D8F800 */ ctc1 $t8, $31 +/* 0D8098 7F0A3568 00000000 */ nop +/* 0D809C 7F0A356C 460021A4 */ cvt.w.s $f6, $f4 +/* 0D80A0 7F0A3570 4458F800 */ cfc1 $t8, $31 +/* 0D80A4 7F0A3574 00000000 */ nop +/* 0D80A8 7F0A3578 33180078 */ andi $t8, $t8, 0x78 +/* 0D80AC 7F0A357C 53000013 */ beql $t8, $zero, .L7F0A35CC +/* 0D80B0 7F0A3580 44183000 */ mfc1 $t8, $f6 +/* 0D80B4 7F0A3584 44813000 */ mtc1 $at, $f6 +/* 0D80B8 7F0A3588 24180001 */ li $t8, 1 +/* 0D80BC 7F0A358C 46062181 */ sub.s $f6, $f4, $f6 +/* 0D80C0 7F0A3590 44D8F800 */ ctc1 $t8, $31 +/* 0D80C4 7F0A3594 00000000 */ nop +/* 0D80C8 7F0A3598 460031A4 */ cvt.w.s $f6, $f6 +/* 0D80CC 7F0A359C 4458F800 */ cfc1 $t8, $31 +/* 0D80D0 7F0A35A0 00000000 */ nop +/* 0D80D4 7F0A35A4 33180078 */ andi $t8, $t8, 0x78 +/* 0D80D8 7F0A35A8 17000005 */ bnez $t8, .L7F0A35C0 +/* 0D80DC 7F0A35AC 00000000 */ nop +/* 0D80E0 7F0A35B0 44183000 */ mfc1 $t8, $f6 +/* 0D80E4 7F0A35B4 3C018000 */ lui $at, 0x8000 +/* 0D80E8 7F0A35B8 10000007 */ b .L7F0A35D8 +/* 0D80EC 7F0A35BC 0301C025 */ or $t8, $t8, $at +.L7F0A35C0: +/* 0D80F0 7F0A35C0 10000005 */ b .L7F0A35D8 +/* 0D80F4 7F0A35C4 2418FFFF */ li $t8, -1 +/* 0D80F8 7F0A35C8 44183000 */ mfc1 $t8, $f6 +.L7F0A35CC: +/* 0D80FC 7F0A35CC 00000000 */ nop +/* 0D8100 7F0A35D0 0700FFFB */ bltz $t8, .L7F0A35C0 +/* 0D8104 7F0A35D4 00000000 */ nop +.L7F0A35D8: +/* 0D8108 7F0A35D8 44CFF800 */ ctc1 $t7, $31 +/* 0D810C 7F0A35DC A218000C */ sb $t8, 0xc($s0) +/* 0D8110 7F0A35E0 0FC15FA8 */ jal cosf +/* 0D8114 7F0A35E4 4600A306 */ mov.s $f12, $f20 +/* 0D8118 7F0A35E8 461C0202 */ mul.s $f8, $f0, $f28 +/* 0D811C 7F0A35EC 24080001 */ li $t0, 1 +/* 0D8120 7F0A35F0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8124 7F0A35F4 4608D281 */ sub.s $f10, $f26, $f8 +/* 0D8128 7F0A35F8 4459F800 */ cfc1 $t9, $31 +/* 0D812C 7F0A35FC 44C8F800 */ ctc1 $t0, $31 +/* 0D8130 7F0A3600 00000000 */ nop +/* 0D8134 7F0A3604 46005424 */ cvt.w.s $f16, $f10 +/* 0D8138 7F0A3608 4448F800 */ cfc1 $t0, $31 +/* 0D813C 7F0A360C 00000000 */ nop +/* 0D8140 7F0A3610 31080078 */ andi $t0, $t0, 0x78 +/* 0D8144 7F0A3614 51000013 */ beql $t0, $zero, .L7F0A3664 +/* 0D8148 7F0A3618 44088000 */ mfc1 $t0, $f16 +/* 0D814C 7F0A361C 44818000 */ mtc1 $at, $f16 +/* 0D8150 7F0A3620 24080001 */ li $t0, 1 +/* 0D8154 7F0A3624 46105401 */ sub.s $f16, $f10, $f16 +/* 0D8158 7F0A3628 44C8F800 */ ctc1 $t0, $31 +/* 0D815C 7F0A362C 00000000 */ nop +/* 0D8160 7F0A3630 46008424 */ cvt.w.s $f16, $f16 +/* 0D8164 7F0A3634 4448F800 */ cfc1 $t0, $31 +/* 0D8168 7F0A3638 00000000 */ nop +/* 0D816C 7F0A363C 31080078 */ andi $t0, $t0, 0x78 +/* 0D8170 7F0A3640 15000005 */ bnez $t0, .L7F0A3658 +/* 0D8174 7F0A3644 00000000 */ nop +/* 0D8178 7F0A3648 44088000 */ mfc1 $t0, $f16 +/* 0D817C 7F0A364C 3C018000 */ lui $at, 0x8000 +/* 0D8180 7F0A3650 10000007 */ b .L7F0A3670 +/* 0D8184 7F0A3654 01014025 */ or $t0, $t0, $at +.L7F0A3658: +/* 0D8188 7F0A3658 10000005 */ b .L7F0A3670 +/* 0D818C 7F0A365C 2408FFFF */ li $t0, -1 +/* 0D8190 7F0A3660 44088000 */ mfc1 $t0, $f16 +.L7F0A3664: +/* 0D8194 7F0A3664 00000000 */ nop +/* 0D8198 7F0A3668 0500FFFB */ bltz $t0, .L7F0A3658 +/* 0D819C 7F0A366C 00000000 */ nop +.L7F0A3670: +/* 0D81A0 7F0A3670 44D9F800 */ ctc1 $t9, $31 +/* 0D81A4 7F0A3674 A208000D */ sb $t0, 0xd($s0) +/* 0D81A8 7F0A3678 0FC15FA8 */ jal cosf +/* 0D81AC 7F0A367C 4600A306 */ mov.s $f12, $f20 +/* 0D81B0 7F0A3680 46160482 */ mul.s $f18, $f0, $f22 +/* 0D81B4 7F0A3684 240A0001 */ li $t2, 1 +/* 0D81B8 7F0A3688 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D81BC 7F0A368C 4612B101 */ sub.s $f4, $f22, $f18 +/* 0D81C0 7F0A3690 4449F800 */ cfc1 $t1, $31 +/* 0D81C4 7F0A3694 44CAF800 */ ctc1 $t2, $31 +/* 0D81C8 7F0A3698 00000000 */ nop +/* 0D81CC 7F0A369C 460021A4 */ cvt.w.s $f6, $f4 +/* 0D81D0 7F0A36A0 444AF800 */ cfc1 $t2, $31 +/* 0D81D4 7F0A36A4 00000000 */ nop +/* 0D81D8 7F0A36A8 314A0078 */ andi $t2, $t2, 0x78 +/* 0D81DC 7F0A36AC 51400013 */ beql $t2, $zero, .L7F0A36FC +/* 0D81E0 7F0A36B0 440A3000 */ mfc1 $t2, $f6 +/* 0D81E4 7F0A36B4 44813000 */ mtc1 $at, $f6 +/* 0D81E8 7F0A36B8 240A0001 */ li $t2, 1 +/* 0D81EC 7F0A36BC 46062181 */ sub.s $f6, $f4, $f6 +/* 0D81F0 7F0A36C0 44CAF800 */ ctc1 $t2, $31 +/* 0D81F4 7F0A36C4 00000000 */ nop +/* 0D81F8 7F0A36C8 460031A4 */ cvt.w.s $f6, $f6 +/* 0D81FC 7F0A36CC 444AF800 */ cfc1 $t2, $31 +/* 0D8200 7F0A36D0 00000000 */ nop +/* 0D8204 7F0A36D4 314A0078 */ andi $t2, $t2, 0x78 +/* 0D8208 7F0A36D8 15400005 */ bnez $t2, .L7F0A36F0 +/* 0D820C 7F0A36DC 00000000 */ nop +/* 0D8210 7F0A36E0 440A3000 */ mfc1 $t2, $f6 +/* 0D8214 7F0A36E4 3C018000 */ lui $at, 0x8000 +/* 0D8218 7F0A36E8 10000007 */ b .L7F0A3708 +/* 0D821C 7F0A36EC 01415025 */ or $t2, $t2, $at +.L7F0A36F0: +/* 0D8220 7F0A36F0 10000005 */ b .L7F0A3708 +/* 0D8224 7F0A36F4 240AFFFF */ li $t2, -1 +/* 0D8228 7F0A36F8 440A3000 */ mfc1 $t2, $f6 +.L7F0A36FC: +/* 0D822C 7F0A36FC 00000000 */ nop +/* 0D8230 7F0A3700 0540FFFB */ bltz $t2, .L7F0A36F0 +/* 0D8234 7F0A3704 00000000 */ nop +.L7F0A3708: +/* 0D8238 7F0A3708 44C9F800 */ ctc1 $t1, $31 +/* 0D823C 7F0A370C A20A000E */ sb $t2, 0xe($s0) +/* 0D8240 7F0A3710 A215000F */ sb $s5, 0xf($s0) +/* 0D8244 7F0A3714 12200083 */ beqz $s1, .L7F0A3924 +/* 0D8248 7F0A3718 26100010 */ addiu $s0, $s0, 0x10 +/* 0D824C 7F0A371C 0236082A */ slt $at, $s1, $s6 +/* 0D8250 7F0A3720 10200080 */ beqz $at, .L7F0A3924 +/* 0D8254 7F0A3724 240B0001 */ li $t3, 1 +/* 0D8258 7F0A3728 01726023 */ subu $t4, $t3, $s2 +/* 0D825C 7F0A372C 00146823 */ negu $t5, $s4 +/* 0D8260 7F0A3730 A60C0000 */ sh $t4, ($s0) +/* 0D8264 7F0A3734 A6000002 */ sh $zero, 2($s0) +/* 0D8268 7F0A3738 A60D0004 */ sh $t5, 4($s0) +/* 0D826C 7F0A373C A6000006 */ sh $zero, 6($s0) +/* 0D8270 7F0A3740 A6000008 */ sh $zero, 8($s0) +/* 0D8274 7F0A3744 A600000A */ sh $zero, 0xa($s0) +/* 0D8278 7F0A3748 A213000C */ sb $s3, 0xc($s0) +/* 0D827C 7F0A374C A213000D */ sb $s3, 0xd($s0) +/* 0D8280 7F0A3750 A213000E */ sb $s3, 0xe($s0) +/* 0D8284 7F0A3754 0FC15FA8 */ jal cosf +/* 0D8288 7F0A3758 4600A306 */ mov.s $f12, $f20 +/* 0D828C 7F0A375C 46160202 */ mul.s $f8, $f0, $f22 +/* 0D8290 7F0A3760 240F0001 */ li $t7, 1 +/* 0D8294 7F0A3764 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8298 7F0A3768 4608B281 */ sub.s $f10, $f22, $f8 +/* 0D829C 7F0A376C 444EF800 */ cfc1 $t6, $31 +/* 0D82A0 7F0A3770 44CFF800 */ ctc1 $t7, $31 +/* 0D82A4 7F0A3774 00000000 */ nop +/* 0D82A8 7F0A3778 46005424 */ cvt.w.s $f16, $f10 +/* 0D82AC 7F0A377C 444FF800 */ cfc1 $t7, $31 +/* 0D82B0 7F0A3780 00000000 */ nop +/* 0D82B4 7F0A3784 31EF0078 */ andi $t7, $t7, 0x78 +/* 0D82B8 7F0A3788 51E00013 */ beql $t7, $zero, .L7F0A37D8 +/* 0D82BC 7F0A378C 440F8000 */ mfc1 $t7, $f16 +/* 0D82C0 7F0A3790 44818000 */ mtc1 $at, $f16 +/* 0D82C4 7F0A3794 240F0001 */ li $t7, 1 +/* 0D82C8 7F0A3798 46105401 */ sub.s $f16, $f10, $f16 +/* 0D82CC 7F0A379C 44CFF800 */ ctc1 $t7, $31 +/* 0D82D0 7F0A37A0 00000000 */ nop +/* 0D82D4 7F0A37A4 46008424 */ cvt.w.s $f16, $f16 +/* 0D82D8 7F0A37A8 444FF800 */ cfc1 $t7, $31 +/* 0D82DC 7F0A37AC 00000000 */ nop +/* 0D82E0 7F0A37B0 31EF0078 */ andi $t7, $t7, 0x78 +/* 0D82E4 7F0A37B4 15E00005 */ bnez $t7, .L7F0A37CC +/* 0D82E8 7F0A37B8 00000000 */ nop +/* 0D82EC 7F0A37BC 440F8000 */ mfc1 $t7, $f16 +/* 0D82F0 7F0A37C0 3C018000 */ lui $at, 0x8000 +/* 0D82F4 7F0A37C4 10000007 */ b .L7F0A37E4 +/* 0D82F8 7F0A37C8 01E17825 */ or $t7, $t7, $at +.L7F0A37CC: +/* 0D82FC 7F0A37CC 10000005 */ b .L7F0A37E4 +/* 0D8300 7F0A37D0 240FFFFF */ li $t7, -1 +/* 0D8304 7F0A37D4 440F8000 */ mfc1 $t7, $f16 +.L7F0A37D8: +/* 0D8308 7F0A37D8 00000000 */ nop +/* 0D830C 7F0A37DC 05E0FFFB */ bltz $t7, .L7F0A37CC +/* 0D8310 7F0A37E0 00000000 */ nop +.L7F0A37E4: +/* 0D8314 7F0A37E4 44CEF800 */ ctc1 $t6, $31 +/* 0D8318 7F0A37E8 A20F000C */ sb $t7, 0xc($s0) +/* 0D831C 7F0A37EC 0FC15FA8 */ jal cosf +/* 0D8320 7F0A37F0 4600A306 */ mov.s $f12, $f20 +/* 0D8324 7F0A37F4 461C0482 */ mul.s $f18, $f0, $f28 +/* 0D8328 7F0A37F8 24190001 */ li $t9, 1 +/* 0D832C 7F0A37FC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8330 7F0A3800 4612D101 */ sub.s $f4, $f26, $f18 +/* 0D8334 7F0A3804 4458F800 */ cfc1 $t8, $31 +/* 0D8338 7F0A3808 44D9F800 */ ctc1 $t9, $31 +/* 0D833C 7F0A380C 00000000 */ nop +/* 0D8340 7F0A3810 460021A4 */ cvt.w.s $f6, $f4 +/* 0D8344 7F0A3814 4459F800 */ cfc1 $t9, $31 +/* 0D8348 7F0A3818 00000000 */ nop +/* 0D834C 7F0A381C 33390078 */ andi $t9, $t9, 0x78 +/* 0D8350 7F0A3820 53200013 */ beql $t9, $zero, .L7F0A3870 +/* 0D8354 7F0A3824 44193000 */ mfc1 $t9, $f6 +/* 0D8358 7F0A3828 44813000 */ mtc1 $at, $f6 +/* 0D835C 7F0A382C 24190001 */ li $t9, 1 +/* 0D8360 7F0A3830 46062181 */ sub.s $f6, $f4, $f6 +/* 0D8364 7F0A3834 44D9F800 */ ctc1 $t9, $31 +/* 0D8368 7F0A3838 00000000 */ nop +/* 0D836C 7F0A383C 460031A4 */ cvt.w.s $f6, $f6 +/* 0D8370 7F0A3840 4459F800 */ cfc1 $t9, $31 +/* 0D8374 7F0A3844 00000000 */ nop +/* 0D8378 7F0A3848 33390078 */ andi $t9, $t9, 0x78 +/* 0D837C 7F0A384C 17200005 */ bnez $t9, .L7F0A3864 +/* 0D8380 7F0A3850 00000000 */ nop +/* 0D8384 7F0A3854 44193000 */ mfc1 $t9, $f6 +/* 0D8388 7F0A3858 3C018000 */ lui $at, 0x8000 +/* 0D838C 7F0A385C 10000007 */ b .L7F0A387C +/* 0D8390 7F0A3860 0321C825 */ or $t9, $t9, $at +.L7F0A3864: +/* 0D8394 7F0A3864 10000005 */ b .L7F0A387C +/* 0D8398 7F0A3868 2419FFFF */ li $t9, -1 +/* 0D839C 7F0A386C 44193000 */ mfc1 $t9, $f6 +.L7F0A3870: +/* 0D83A0 7F0A3870 00000000 */ nop +/* 0D83A4 7F0A3874 0720FFFB */ bltz $t9, .L7F0A3864 +/* 0D83A8 7F0A3878 00000000 */ nop +.L7F0A387C: +/* 0D83AC 7F0A387C 44D8F800 */ ctc1 $t8, $31 +/* 0D83B0 7F0A3880 A219000D */ sb $t9, 0xd($s0) +/* 0D83B4 7F0A3884 0FC15FA8 */ jal cosf +/* 0D83B8 7F0A3888 4600A306 */ mov.s $f12, $f20 +/* 0D83BC 7F0A388C 46160202 */ mul.s $f8, $f0, $f22 +/* 0D83C0 7F0A3890 24090001 */ li $t1, 1 +/* 0D83C4 7F0A3894 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D83C8 7F0A3898 4608B281 */ sub.s $f10, $f22, $f8 +/* 0D83CC 7F0A389C 4448F800 */ cfc1 $t0, $31 +/* 0D83D0 7F0A38A0 44C9F800 */ ctc1 $t1, $31 +/* 0D83D4 7F0A38A4 00000000 */ nop +/* 0D83D8 7F0A38A8 46005424 */ cvt.w.s $f16, $f10 +/* 0D83DC 7F0A38AC 4449F800 */ cfc1 $t1, $31 +/* 0D83E0 7F0A38B0 00000000 */ nop +/* 0D83E4 7F0A38B4 31290078 */ andi $t1, $t1, 0x78 +/* 0D83E8 7F0A38B8 51200013 */ beql $t1, $zero, .L7F0A3908 +/* 0D83EC 7F0A38BC 44098000 */ mfc1 $t1, $f16 +/* 0D83F0 7F0A38C0 44818000 */ mtc1 $at, $f16 +/* 0D83F4 7F0A38C4 24090001 */ li $t1, 1 +/* 0D83F8 7F0A38C8 46105401 */ sub.s $f16, $f10, $f16 +/* 0D83FC 7F0A38CC 44C9F800 */ ctc1 $t1, $31 +/* 0D8400 7F0A38D0 00000000 */ nop +/* 0D8404 7F0A38D4 46008424 */ cvt.w.s $f16, $f16 +/* 0D8408 7F0A38D8 4449F800 */ cfc1 $t1, $31 +/* 0D840C 7F0A38DC 00000000 */ nop +/* 0D8410 7F0A38E0 31290078 */ andi $t1, $t1, 0x78 +/* 0D8414 7F0A38E4 15200005 */ bnez $t1, .L7F0A38FC +/* 0D8418 7F0A38E8 00000000 */ nop +/* 0D841C 7F0A38EC 44098000 */ mfc1 $t1, $f16 +/* 0D8420 7F0A38F0 3C018000 */ lui $at, 0x8000 +/* 0D8424 7F0A38F4 10000007 */ b .L7F0A3914 +/* 0D8428 7F0A38F8 01214825 */ or $t1, $t1, $at +.L7F0A38FC: +/* 0D842C 7F0A38FC 10000005 */ b .L7F0A3914 +/* 0D8430 7F0A3900 2409FFFF */ li $t1, -1 +/* 0D8434 7F0A3904 44098000 */ mfc1 $t1, $f16 +.L7F0A3908: +/* 0D8438 7F0A3908 00000000 */ nop +/* 0D843C 7F0A390C 0520FFFB */ bltz $t1, .L7F0A38FC +/* 0D8440 7F0A3910 00000000 */ nop +.L7F0A3914: +/* 0D8444 7F0A3914 44C8F800 */ ctc1 $t0, $31 +/* 0D8448 7F0A3918 A209000E */ sb $t1, 0xe($s0) +/* 0D844C 7F0A391C A215000F */ sb $s5, 0xf($s0) +/* 0D8450 7F0A3920 26100010 */ addiu $s0, $s0, 0x10 +.L7F0A3924: +/* 0D8454 7F0A3924 26310002 */ addiu $s1, $s1, 2 +/* 0D8458 7F0A3928 02F1082A */ slt $at, $s7, $s1 +/* 0D845C 7F0A392C 5020FEE5 */ beql $at, $zero, .L7F0A34C4 +/* 0D8460 7F0A3930 44913000 */ mtc1 $s1, $f6 +.L7F0A3934: +/* 0D8464 7F0A3934 8FBF0064 */ lw $ra, 0x64($sp) +/* 0D8468 7F0A3938 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D846C 7F0A393C D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0D8470 7F0A3940 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 0D8474 7F0A3944 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 0D8478 7F0A3948 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 0D847C 7F0A394C D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 0D8480 7F0A3950 8FB00044 */ lw $s0, 0x44($sp) +/* 0D8484 7F0A3954 8FB10048 */ lw $s1, 0x48($sp) +/* 0D8488 7F0A3958 8FB2004C */ lw $s2, 0x4c($sp) +/* 0D848C 7F0A395C 8FB30050 */ lw $s3, 0x50($sp) +/* 0D8490 7F0A3960 8FB40054 */ lw $s4, 0x54($sp) +/* 0D8494 7F0A3964 8FB50058 */ lw $s5, 0x58($sp) +/* 0D8498 7F0A3968 8FB6005C */ lw $s6, 0x5c($sp) +/* 0D849C 7F0A396C 8FB70060 */ lw $s7, 0x60($sp) +/* 0D84A0 7F0A3970 03E00008 */ jr $ra +/* 0D84A4 7F0A3974 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3978(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3978 +/* 0D84A8 7F0A3978 10E00036 */ beqz $a3, .L7F0A3A54 +/* 0D84AC 7F0A397C AFA60008 */ sw $a2, 8($sp) +/* 0D84B0 7F0A3980 00A01025 */ move $v0, $a1 +/* 0D84B4 7F0A3984 00803025 */ move $a2, $a0 +/* 0D84B8 7F0A3988 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D84BC 7F0A398C 24A50010 */ addiu $a1, $a1, 0x10 +/* 0D84C0 7F0A3990 24840008 */ addiu $a0, $a0, 8 +/* 0D84C4 7F0A3994 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D84C8 7F0A3998 24AE00E0 */ addiu $t6, $a1, 0xe0 +/* 0D84CC 7F0A399C 00803825 */ move $a3, $a0 +/* 0D84D0 7F0A39A0 3C0A0404 */ lui $t2, (0x04040010 >> 16) # lui $t2, 0x404 +/* 0D84D4 7F0A39A4 ACCE0004 */ sw $t6, 4($a2) +/* 0D84D8 7F0A39A8 ACC90000 */ sw $t1, ($a2) +/* 0D84DC 7F0A39AC 24840008 */ addiu $a0, $a0, 8 +/* 0D84E0 7F0A39B0 354A0010 */ ori $t2, (0x04040010 & 0xFFFF) # ori $t2, $t2, 0x10 +/* 0D84E4 7F0A39B4 00804025 */ move $t0, $a0 +/* 0D84E8 7F0A39B8 ACEA0000 */ sw $t2, ($a3) +/* 0D84EC 7F0A39BC ACE20004 */ sw $v0, 4($a3) +/* 0D84F0 7F0A39C0 3C0FB100 */ lui $t7, (0xB1000003 >> 16) # lui $t7, 0xb100 +/* 0D84F4 7F0A39C4 35EF0003 */ ori $t7, (0xB1000003 & 0xFFFF) # ori $t7, $t7, 3 +/* 0D84F8 7F0A39C8 24180042 */ li $t8, 66 +/* 0D84FC 7F0A39CC 3C0BB100 */ lui $t3, (0xB1000042 >> 16) # lui $t3, 0xb100 +/* 0D8500 7F0A39D0 24030007 */ li $v1, 7 +/* 0D8504 7F0A39D4 AD180004 */ sw $t8, 4($t0) +/* 0D8508 7F0A39D8 AD0F0000 */ sw $t7, ($t0) +/* 0D850C 7F0A39DC 24840008 */ addiu $a0, $a0, 8 +/* 0D8510 7F0A39E0 356B0042 */ ori $t3, (0xB1000042 & 0xFFFF) # ori $t3, $t3, 0x42 +/* 0D8514 7F0A39E4 240C3140 */ li $t4, 12608 +.L7F0A39E8: +/* 0D8518 7F0A39E8 00803025 */ move $a2, $a0 +/* 0D851C 7F0A39EC 0060C825 */ move $t9, $v1 +/* 0D8520 7F0A39F0 00196940 */ sll $t5, $t9, 5 +/* 0D8524 7F0A39F4 24840008 */ addiu $a0, $a0, 8 +/* 0D8528 7F0A39F8 01A57021 */ addu $t6, $t5, $a1 +/* 0D852C 7F0A39FC 00803825 */ move $a3, $a0 +/* 0D8530 7F0A3A00 2463FFFF */ addiu $v1, $v1, -1 +/* 0D8534 7F0A3A04 ACCE0004 */ sw $t6, 4($a2) +/* 0D8538 7F0A3A08 ACC90000 */ sw $t1, ($a2) +/* 0D853C 7F0A3A0C 24840008 */ addiu $a0, $a0, 8 +/* 0D8540 7F0A3A10 00037E00 */ sll $t7, $v1, 0x18 +/* 0D8544 7F0A3A14 00804025 */ move $t0, $a0 +/* 0D8548 7F0A3A18 000F1E03 */ sra $v1, $t7, 0x18 +/* 0D854C 7F0A3A1C ACE20004 */ sw $v0, 4($a3) +/* 0D8550 7F0A3A20 ACEA0000 */ sw $t2, ($a3) +/* 0D8554 7F0A3A24 AD0C0004 */ sw $t4, 4($t0) +/* 0D8558 7F0A3A28 AD0B0000 */ sw $t3, ($t0) +/* 0D855C 7F0A3A2C 0461FFEE */ bgez $v1, .L7F0A39E8 +/* 0D8560 7F0A3A30 24840008 */ addiu $a0, $a0, 8 +/* 0D8564 7F0A3A34 00801025 */ move $v0, $a0 +/* 0D8568 7F0A3A38 3C19B100 */ lui $t9, (0xB1000004 >> 16) # lui $t9, 0xb100 +/* 0D856C 7F0A3A3C 37390004 */ ori $t9, (0xB1000004 & 0xFFFF) # ori $t9, $t9, 4 +/* 0D8570 7F0A3A40 240D0010 */ li $t5, 16 +/* 0D8574 7F0A3A44 AC4D0004 */ sw $t5, 4($v0) +/* 0D8578 7F0A3A48 AC590000 */ sw $t9, ($v0) +/* 0D857C 7F0A3A4C 10000015 */ b .L7F0A3AA4 +/* 0D8580 7F0A3A50 24840008 */ addiu $a0, $a0, 8 +.L7F0A3A54: +/* 0D8584 7F0A3A54 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D8588 7F0A3A58 3C07B100 */ lui $a3, (0xB1000032 >> 16) # lui $a3, 0xb100 +/* 0D858C 7F0A3A5C 34E70032 */ ori $a3, (0xB1000032 & 0xFFFF) # ori $a3, $a3, 0x32 +/* 0D8590 7F0A3A60 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D8594 7F0A3A64 00001825 */ move $v1, $zero +/* 0D8598 7F0A3A68 24082110 */ li $t0, 8464 +.L7F0A3A6C: +/* 0D859C 7F0A3A6C 24630001 */ addiu $v1, $v1, 1 +/* 0D85A0 7F0A3A70 00801025 */ move $v0, $a0 +/* 0D85A4 7F0A3A74 00037600 */ sll $t6, $v1, 0x18 +/* 0D85A8 7F0A3A78 24840008 */ addiu $a0, $a0, 8 +/* 0D85AC 7F0A3A7C 000E1E03 */ sra $v1, $t6, 0x18 +/* 0D85B0 7F0A3A80 AC450004 */ sw $a1, 4($v0) +/* 0D85B4 7F0A3A84 00803025 */ move $a2, $a0 +/* 0D85B8 7F0A3A88 28610008 */ slti $at, $v1, 8 +/* 0D85BC 7F0A3A8C AC490000 */ sw $t1, ($v0) +/* 0D85C0 7F0A3A90 ACC80004 */ sw $t0, 4($a2) +/* 0D85C4 7F0A3A94 ACC70000 */ sw $a3, ($a2) +/* 0D85C8 7F0A3A98 24840008 */ addiu $a0, $a0, 8 +/* 0D85CC 7F0A3A9C 1420FFF3 */ bnez $at, .L7F0A3A6C +/* 0D85D0 7F0A3AA0 24A50020 */ addiu $a1, $a1, 0x20 +.L7F0A3AA4: +/* 0D85D4 7F0A3AA4 3C18B800 */ lui $t8, 0xb800 +/* 0D85D8 7F0A3AA8 AC980000 */ sw $t8, ($a0) +/* 0D85DC 7F0A3AAC 24820008 */ addiu $v0, $a0, 8 +/* 0D85E0 7F0A3AB0 03E00008 */ jr $ra +/* 0D85E4 7F0A3AB4 AC800004 */ sw $zero, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3AB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3AB8 +/* 0D85E8 7F0A3AB8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0D85EC 7F0A3ABC 8FAE001C */ lw $t6, 0x1c($sp) +/* 0D85F0 7F0A3AC0 AFB00004 */ sw $s0, 4($sp) +/* 0D85F4 7F0A3AC4 24100002 */ li $s0, 2 +/* 0D85F8 7F0A3AC8 00AE4021 */ addu $t0, $a1, $t6 +/* 0D85FC 7F0A3ACC 8FA50018 */ lw $a1, 0x18($sp) +/* 0D8600 7F0A3AD0 8FA90020 */ lw $t1, 0x20($sp) +/* 0D8604 7F0A3AD4 00001025 */ move $v0, $zero +/* 0D8608 7F0A3AD8 240D00F0 */ li $t5, 240 +/* 0D860C 7F0A3ADC 240C0070 */ li $t4, 112 +/* 0D8610 7F0A3AE0 240B0020 */ li $t3, 32 +.L7F0A3AE4: +/* 0D8614 7F0A3AE4 00001825 */ move $v1, $zero +/* 0D8618 7F0A3AE8 00C95021 */ addu $t2, $a2, $t1 +.L7F0A3AEC: +/* 0D861C 7F0A3AEC 24630001 */ addiu $v1, $v1, 1 +/* 0D8620 7F0A3AF0 A48A0004 */ sh $t2, 4($a0) +/* 0D8624 7F0A3AF4 01455021 */ addu $t2, $t2, $a1 +/* 0D8628 7F0A3AF8 A4880000 */ sh $t0, ($a0) +/* 0D862C 7F0A3AFC A4800002 */ sh $zero, 2($a0) +/* 0D8630 7F0A3B00 A4800006 */ sh $zero, 6($a0) +/* 0D8634 7F0A3B04 A4800008 */ sh $zero, 8($a0) +/* 0D8638 7F0A3B08 A480000A */ sh $zero, 0xa($a0) +/* 0D863C 7F0A3B0C A08B000C */ sb $t3, 0xc($a0) +/* 0D8640 7F0A3B10 A08C000D */ sb $t4, 0xd($a0) +/* 0D8644 7F0A3B14 A08B000E */ sb $t3, 0xe($a0) +/* 0D8648 7F0A3B18 A08D000F */ sb $t5, 0xf($a0) +/* 0D864C 7F0A3B1C 1470FFF3 */ bne $v1, $s0, .L7F0A3AEC +/* 0D8650 7F0A3B20 24840010 */ addiu $a0, $a0, 0x10 +/* 0D8654 7F0A3B24 24420001 */ addiu $v0, $v0, 1 +/* 0D8658 7F0A3B28 1450FFEE */ bne $v0, $s0, .L7F0A3AE4 +/* 0D865C 7F0A3B2C 01074021 */ addu $t0, $t0, $a3 +/* 0D8660 7F0A3B30 8FB00004 */ lw $s0, 4($sp) +/* 0D8664 7F0A3B34 27BD0008 */ addiu $sp, $sp, 8 +/* 0D8668 7F0A3B38 03E00008 */ jr $ra +/* 0D866C 7F0A3B3C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3B40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3B40 +/* 0D8670 7F0A3B40 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 0D8674 7F0A3B44 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0D8678 7F0A3B48 24860008 */ addiu $a2, $a0, 8 +/* 0D867C 7F0A3B4C 3C0FB100 */ lui $t7, (0xB1000032 >> 16) # lui $t7, 0xb100 +/* 0D8680 7F0A3B50 AC8E0000 */ sw $t6, ($a0) +/* 0D8684 7F0A3B54 AC850004 */ sw $a1, 4($a0) +/* 0D8688 7F0A3B58 35EF0032 */ ori $t7, (0xB1000032 & 0xFFFF) # ori $t7, $t7, 0x32 +/* 0D868C 7F0A3B5C 24182110 */ li $t8, 8464 +/* 0D8690 7F0A3B60 ACD80004 */ sw $t8, 4($a2) +/* 0D8694 7F0A3B64 ACCF0000 */ sw $t7, ($a2) +/* 0D8698 7F0A3B68 03E00008 */ jr $ra +/* 0D869C 7F0A3B6C 24C20008 */ addiu $v0, $a2, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3B70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3B70 +/* 0D86A0 7F0A3B70 3C0F8004 */ lui $t7, %hi(D_80040960) +/* 0D86A4 7F0A3B74 25EF0960 */ addiu $t7, %lo(D_80040960) # addiu $t7, $t7, 0x960 +/* 0D86A8 7F0A3B78 00047080 */ sll $t6, $a0, 2 +/* 0D86AC 7F0A3B7C 01CF1021 */ addu $v0, $t6, $t7 +/* 0D86B0 7F0A3B80 90580000 */ lbu $t8, ($v0) +/* 0D86B4 7F0A3B84 A0B80000 */ sb $t8, ($a1) +/* 0D86B8 7F0A3B88 90590001 */ lbu $t9, 1($v0) +/* 0D86BC 7F0A3B8C A0B90001 */ sb $t9, 1($a1) +/* 0D86C0 7F0A3B90 90480002 */ lbu $t0, 2($v0) +/* 0D86C4 7F0A3B94 A0A80002 */ sb $t0, 2($a1) +/* 0D86C8 7F0A3B98 90490003 */ lbu $t1, 3($v0) +/* 0D86CC 7F0A3B9C 03E00008 */ jr $ra +/* 0D86D0 7F0A3BA0 A0A90003 */ sb $t1, 3($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3BA4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3BA4 +/* 0D86D4 7F0A3BA4 90B80000 */ lbu $t8, ($a1) +/* 0D86D8 7F0A3BA8 3C0F8004 */ lui $t7, %hi(D_80040960) +/* 0D86DC 7F0A3BAC 25EF0960 */ addiu $t7, %lo(D_80040960) # addiu $t7, $t7, 0x960 +/* 0D86E0 7F0A3BB0 00047080 */ sll $t6, $a0, 2 +/* 0D86E4 7F0A3BB4 01CF1021 */ addu $v0, $t6, $t7 +/* 0D86E8 7F0A3BB8 A0580000 */ sb $t8, ($v0) +/* 0D86EC 7F0A3BBC 90B90001 */ lbu $t9, 1($a1) +/* 0D86F0 7F0A3BC0 A0590001 */ sb $t9, 1($v0) +/* 0D86F4 7F0A3BC4 90A80002 */ lbu $t0, 2($a1) +/* 0D86F8 7F0A3BC8 A0480002 */ sb $t0, 2($v0) +/* 0D86FC 7F0A3BCC 90A90003 */ lbu $t1, 3($a1) +/* 0D8700 7F0A3BD0 03E00008 */ jr $ra +/* 0D8704 7F0A3BD4 A0490003 */ sb $t1, 3($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3BD8(void) { + +} +#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_8007A4E0) +/* 0D8710 7F0A3BE0 2463A4E0 */ addiu $v1, %lo(dword_CODE_bss_8007A4E0) # 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 +void sub_GAME_7F0A3C08(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057750 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80057754 +.word 0x3fb501e2 /*1.41412*/ +.text +glabel sub_GAME_7F0A3C08 +/* 0D8738 7F0A3C08 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0D873C 7F0A3C0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D8740 7F0A3C10 4487A000 */ mtc1 $a3, $f20 +/* 0D8744 7F0A3C14 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D8748 7F0A3C18 AFB00020 */ sw $s0, 0x20($sp) +/* 0D874C 7F0A3C1C 00808025 */ move $s0, $a0 +/* 0D8750 7F0A3C20 AFA50034 */ sw $a1, 0x34($sp) +/* 0D8754 7F0A3C24 0C002914 */ jal get_random_value +/* 0D8758 7F0A3C28 AFA60038 */ sw $a2, 0x38($sp) +/* 0D875C 7F0A3C2C 44822000 */ mtc1 $v0, $f4 +/* 0D8760 7F0A3C30 8FA50034 */ lw $a1, 0x34($sp) +/* 0D8764 7F0A3C34 8FA60038 */ lw $a2, 0x38($sp) +/* 0D8768 7F0A3C38 04410005 */ bgez $v0, .L7F0A3C50 +/* 0D876C 7F0A3C3C 468021A0 */ cvt.s.w $f6, $f4 +/* 0D8770 7F0A3C40 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D8774 7F0A3C44 44814000 */ mtc1 $at, $f8 +/* 0D8778 7F0A3C48 00000000 */ nop +/* 0D877C 7F0A3C4C 46083180 */ add.s $f6, $f6, $f8 +.L7F0A3C50: +/* 0D8780 7F0A3C50 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D8784 7F0A3C54 44815000 */ mtc1 $at, $f10 +/* 0D8788 7F0A3C58 3C018005 */ lui $at, %hi(D_80057750) +/* 0D878C 7F0A3C5C C4327750 */ lwc1 $f18, %lo(D_80057750)($at) +/* 0D8790 7F0A3C60 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D8794 7F0A3C64 24010004 */ li $at, 4 +/* 0D8798 7F0A3C68 240F0001 */ li $t7, 1 +/* 0D879C 7F0A3C6C 46128102 */ mul.s $f4, $f16, $f18 +/* 0D87A0 7F0A3C70 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0D87A4 7F0A3C74 AE000000 */ sw $zero, ($s0) +/* 0D87A8 7F0A3C78 87AE0042 */ lh $t6, 0x42($sp) +/* 0D87AC 7F0A3C7C 14C10009 */ bne $a2, $at, .L7F0A3CA4 +/* 0D87B0 7F0A3C80 A60E0006 */ sh $t6, 6($s0) +/* 0D87B4 7F0A3C84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D87B8 7F0A3C88 44814000 */ mtc1 $at, $f8 +/* 0D87BC 7F0A3C8C A60F0004 */ sh $t7, 4($s0) +/* 0D87C0 7F0A3C90 3C188009 */ lui $t8, %hi(flareimage2) +/* 0D87C4 7F0A3C94 E6080008 */ swc1 $f8, 8($s0) +/* 0D87C8 7F0A3C98 8F18D0CC */ lw $t8, %lo(flareimage2)($t8) +/* 0D87CC 7F0A3C9C 10000029 */ b .L7F0A3D44 +/* 0D87D0 7F0A3CA0 AE18000C */ sw $t8, 0xc($s0) +.L7F0A3CA4: +/* 0D87D4 7F0A3CA4 24010001 */ li $at, 1 +/* 0D87D8 7F0A3CA8 14C10009 */ bne $a2, $at, .L7F0A3CD0 +/* 0D87DC 7F0A3CAC 2419000B */ li $t9, 11 +/* 0D87E0 7F0A3CB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D87E4 7F0A3CB4 44813000 */ mtc1 $at, $f6 +/* 0D87E8 7F0A3CB8 A6190004 */ sh $t9, 4($s0) +/* 0D87EC 7F0A3CBC 3C088009 */ lui $t0, %hi(explosion_smokeimages) +/* 0D87F0 7F0A3CC0 E6060008 */ swc1 $f6, 8($s0) +/* 0D87F4 7F0A3CC4 8D08D0C0 */ lw $t0, %lo(explosion_smokeimages)($t0) +/* 0D87F8 7F0A3CC8 1000001E */ b .L7F0A3D44 +/* 0D87FC 7F0A3CCC AE08000C */ sw $t0, 0xc($s0) +.L7F0A3CD0: +/* 0D8800 7F0A3CD0 24010003 */ li $at, 3 +/* 0D8804 7F0A3CD4 14C10009 */ bne $a2, $at, .L7F0A3CFC +/* 0D8808 7F0A3CD8 24090009 */ li $t1, 9 +/* 0D880C 7F0A3CDC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D8810 7F0A3CE0 44815000 */ mtc1 $at, $f10 +/* 0D8814 7F0A3CE4 A6090004 */ sh $t1, 4($s0) +/* 0D8818 7F0A3CE8 3C0A8009 */ lui $t2, %hi(scattered_explosions) +/* 0D881C 7F0A3CEC E60A0008 */ swc1 $f10, 8($s0) +/* 0D8820 7F0A3CF0 8D4AD0C4 */ lw $t2, %lo(scattered_explosions)($t2) +/* 0D8824 7F0A3CF4 10000013 */ b .L7F0A3D44 +/* 0D8828 7F0A3CF8 AE0A000C */ sw $t2, 0xc($s0) +.L7F0A3CFC: +/* 0D882C 7F0A3CFC 24010006 */ li $at, 6 +/* 0D8830 7F0A3D00 14C10009 */ bne $a2, $at, .L7F0A3D28 +/* 0D8834 7F0A3D04 240D000B */ li $t5, 11 +/* 0D8838 7F0A3D08 44808000 */ mtc1 $zero, $f16 +/* 0D883C 7F0A3D0C 240B0064 */ li $t3, 100 +/* 0D8840 7F0A3D10 A60B0004 */ sh $t3, 4($s0) +/* 0D8844 7F0A3D14 3C0C8009 */ lui $t4, %hi(flareimage2) +/* 0D8848 7F0A3D18 E6100008 */ swc1 $f16, 8($s0) +/* 0D884C 7F0A3D1C 8D8CD0CC */ lw $t4, %lo(flareimage2)($t4) +/* 0D8850 7F0A3D20 10000008 */ b .L7F0A3D44 +/* 0D8854 7F0A3D24 AE0C000C */ sw $t4, 0xc($s0) +.L7F0A3D28: +/* 0D8858 7F0A3D28 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D885C 7F0A3D2C 44819000 */ mtc1 $at, $f18 +/* 0D8860 7F0A3D30 A60D0004 */ sh $t5, 4($s0) +/* 0D8864 7F0A3D34 3C0E8009 */ lui $t6, %hi(explosion_smokeimages) +/* 0D8868 7F0A3D38 E6120008 */ swc1 $f18, 8($s0) +/* 0D886C 7F0A3D3C 8DCED0C0 */ lw $t6, %lo(explosion_smokeimages)($t6) +/* 0D8870 7F0A3D40 AE0E000C */ sw $t6, 0xc($s0) +.L7F0A3D44: +/* 0D8874 7F0A3D44 3C188004 */ lui $t8, %hi(D_80040960) +/* 0D8878 7F0A3D48 27180960 */ addiu $t8, %lo(D_80040960) # addiu $t8, $t8, 0x960 +/* 0D887C 7F0A3D4C 00067880 */ sll $t7, $a2, 2 +/* 0D8880 7F0A3D50 01F81021 */ addu $v0, $t7, $t8 +/* 0D8884 7F0A3D54 90590000 */ lbu $t9, ($v0) +/* 0D8888 7F0A3D58 A2190028 */ sb $t9, 0x28($s0) +/* 0D888C 7F0A3D5C 90480001 */ lbu $t0, 1($v0) +/* 0D8890 7F0A3D60 A2080029 */ sb $t0, 0x29($s0) +/* 0D8894 7F0A3D64 90490002 */ lbu $t1, 2($v0) +/* 0D8898 7F0A3D68 A209002A */ sb $t1, 0x2a($s0) +/* 0D889C 7F0A3D6C 904A0003 */ lbu $t2, 3($v0) +/* 0D88A0 7F0A3D70 A20A002B */ sb $t2, 0x2b($s0) +/* 0D88A4 7F0A3D74 C4A40000 */ lwc1 $f4, ($a1) +/* 0D88A8 7F0A3D78 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D88AC 7F0A3D7C C4A80004 */ lwc1 $f8, 4($a1) +/* 0D88B0 7F0A3D80 E6080014 */ swc1 $f8, 0x14($s0) +/* 0D88B4 7F0A3D84 C4A60008 */ lwc1 $f6, 8($a1) +/* 0D88B8 7F0A3D88 0C002914 */ jal get_random_value +/* 0D88BC 7F0A3D8C E6060018 */ swc1 $f6, 0x18($s0) +/* 0D88C0 7F0A3D90 44825000 */ mtc1 $v0, $f10 +/* 0D88C4 7F0A3D94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D88C8 7F0A3D98 04410004 */ bgez $v0, .L7F0A3DAC +/* 0D88CC 7F0A3D9C 46805420 */ cvt.s.w $f16, $f10 +/* 0D88D0 7F0A3DA0 44819000 */ mtc1 $at, $f18 +/* 0D88D4 7F0A3DA4 00000000 */ nop +/* 0D88D8 7F0A3DA8 46128400 */ add.s $f16, $f16, $f18 +.L7F0A3DAC: +/* 0D88DC 7F0A3DAC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D88E0 7F0A3DB0 44812000 */ mtc1 $at, $f4 +/* 0D88E4 7F0A3DB4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0D88E8 7F0A3DB8 44813000 */ mtc1 $at, $f6 +/* 0D88EC 7F0A3DBC 46048202 */ mul.s $f8, $f16, $f4 +/* 0D88F0 7F0A3DC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D88F4 7F0A3DC4 44819000 */ mtc1 $at, $f18 +/* 0D88F8 7F0A3DC8 3C018005 */ lui $at, %hi(D_80057754) +/* 0D88FC 7F0A3DCC C4247754 */ lwc1 $f4, %lo(D_80057754)($at) +/* 0D8900 7F0A3DD0 46064282 */ mul.s $f10, $f8, $f6 +/* 0D8904 7F0A3DD4 460A9400 */ add.s $f16, $f18, $f10 +/* 0D8908 7F0A3DD8 4610A502 */ mul.s $f20, $f20, $f16 +/* 0D890C 7F0A3DDC 00000000 */ nop +/* 0D8910 7F0A3DE0 4604A502 */ mul.s $f20, $f20, $f4 +/* 0D8914 7F0A3DE4 E6140024 */ swc1 $f20, 0x24($s0) +/* 0D8918 7F0A3DE8 0FC15FA8 */ jal cosf +/* 0D891C 7F0A3DEC C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0D8920 7F0A3DF0 46140202 */ mul.s $f8, $f0, $f20 +/* 0D8924 7F0A3DF4 E608001C */ swc1 $f8, 0x1c($s0) +/* 0D8928 7F0A3DF8 0FC15FAB */ jal sinf +/* 0D892C 7F0A3DFC C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0D8930 7F0A3E00 46140182 */ mul.s $f6, $f0, $f20 +/* 0D8934 7F0A3E04 E6060020 */ swc1 $f6, 0x20($s0) +/* 0D8938 7F0A3E08 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D893C 7F0A3E0C 8FB00020 */ lw $s0, 0x20($sp) +/* 0D8940 7F0A3E10 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D8944 7F0A3E14 03E00008 */ jr $ra +/* 0D8948 7F0A3E18 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3E1C +/* 0D894C 7F0A3E1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D8950 7F0A3E20 AFB00020 */ sw $s0, 0x20($sp) +/* 0D8954 7F0A3E24 44866000 */ mtc1 $a2, $f12 +/* 0D8958 7F0A3E28 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A170) +/* 0D895C 7F0A3E2C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A4E0) +/* 0D8960 7F0A3E30 00A03025 */ move $a2, $a1 +/* 0D8964 7F0A3E34 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D8968 7F0A3E38 AFA40028 */ sw $a0, 0x28($sp) +/* 0D896C 7F0A3E3C AFA5002C */ sw $a1, 0x2c($sp) +/* 0D8970 7F0A3E40 AFA70034 */ sw $a3, 0x34($sp) +/* 0D8974 7F0A3E44 2442A4E0 */ addiu $v0, %lo(dword_CODE_bss_8007A4E0) # addiu $v0, $v0, -0x5b20 +/* 0D8978 7F0A3E48 2610A170 */ addiu $s0, %lo(dword_CODE_bss_8007A170) # addiu $s0, $s0, -0x5e90 +/* 0D897C 7F0A3E4C 860E0004 */ lh $t6, 4($s0) +.L7F0A3E50: +/* 0D8980 7F0A3E50 55C0000A */ bnezl $t6, .L7F0A3E7C +/* 0D8984 7F0A3E54 2610002C */ addiu $s0, $s0, 0x2c +/* 0D8988 7F0A3E58 87AF0036 */ lh $t7, 0x36($sp) +/* 0D898C 7F0A3E5C 44076000 */ mfc1 $a3, $f12 +/* 0D8990 7F0A3E60 02002025 */ move $a0, $s0 +/* 0D8994 7F0A3E64 8FA50028 */ lw $a1, 0x28($sp) +/* 0D8998 7F0A3E68 0FC28F02 */ jal sub_GAME_7F0A3C08 +/* 0D899C 7F0A3E6C AFAF0010 */ sw $t7, 0x10($sp) +/* 0D89A0 7F0A3E70 10000006 */ b .L7F0A3E8C +/* 0D89A4 7F0A3E74 02001025 */ move $v0, $s0 +/* 0D89A8 7F0A3E78 2610002C */ addiu $s0, $s0, 0x2c +.L7F0A3E7C: +/* 0D89AC 7F0A3E7C 0202082B */ sltu $at, $s0, $v0 +/* 0D89B0 7F0A3E80 5420FFF3 */ bnezl $at, .L7F0A3E50 +/* 0D89B4 7F0A3E84 860E0004 */ lh $t6, 4($s0) +/* 0D89B8 7F0A3E88 00001025 */ move $v0, $zero +.L7F0A3E8C: +/* 0D89BC 7F0A3E8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D89C0 7F0A3E90 8FB00020 */ lw $s0, 0x20($sp) +/* 0D89C4 7F0A3E94 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D89C8 7F0A3E98 03E00008 */ jr $ra +/* 0D89CC 7F0A3E9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3EA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3EA0 +/* 0D89D0 7F0A3EA0 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A170) +/* 0D89D4 7F0A3EA4 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A4E0) +/* 0D89D8 7F0A3EA8 3C058005 */ lui $a1, %hi(clock_timer) +/* 0D89DC 7F0A3EAC 2463A4E0 */ addiu $v1, %lo(dword_CODE_bss_8007A4E0) # addiu $v1, $v1, -0x5b20 +/* 0D89E0 7F0A3EB0 2442A170 */ addiu $v0, %lo(dword_CODE_bss_8007A170) # addiu $v0, $v0, -0x5e90 +/* 0D89E4 7F0A3EB4 24A58374 */ addiu $a1, %lo(clock_timer) # addiu $a1, $a1, -0x7c8c +/* 0D89E8 7F0A3EB8 844E0004 */ lh $t6, 4($v0) +.L7F0A3EBC: +/* 0D89EC 7F0A3EBC 59C0000C */ blezl $t6, .L7F0A3EF0 +/* 0D89F0 7F0A3EC0 2442002C */ addiu $v0, $v0, 0x2c +/* 0D89F4 7F0A3EC4 8C4F0000 */ lw $t7, ($v0) +/* 0D89F8 7F0A3EC8 8CB80000 */ lw $t8, ($a1) +/* 0D89FC 7F0A3ECC 01F8C821 */ addu $t9, $t7, $t8 +/* 0D8A00 7F0A3ED0 07200006 */ bltz $t9, .L7F0A3EEC +/* 0D8A04 7F0A3ED4 AC590000 */ sw $t9, ($v0) +/* 0D8A08 7F0A3ED8 84480004 */ lh $t0, 4($v0) +/* 0D8A0C 7F0A3EDC 0328082A */ slt $at, $t9, $t0 +/* 0D8A10 7F0A3EE0 54200003 */ bnezl $at, .L7F0A3EF0 +/* 0D8A14 7F0A3EE4 2442002C */ addiu $v0, $v0, 0x2c +/* 0D8A18 7F0A3EE8 A4400004 */ sh $zero, 4($v0) +.L7F0A3EEC: +/* 0D8A1C 7F0A3EEC 2442002C */ addiu $v0, $v0, 0x2c +.L7F0A3EF0: +/* 0D8A20 7F0A3EF0 0043082B */ sltu $at, $v0, $v1 +/* 0D8A24 7F0A3EF4 5420FFF1 */ bnezl $at, .L7F0A3EBC +/* 0D8A28 7F0A3EF8 844E0004 */ lh $t6, 4($v0) +/* 0D8A2C 7F0A3EFC 03E00008 */ jr $ra +/* 0D8A30 7F0A3F00 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3F04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3F04 +/* 0D8A34 7F0A3F04 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0D8A38 7F0A3F08 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D8A3C 7F0A3F0C AFB20028 */ sw $s2, 0x28($sp) +/* 0D8A40 7F0A3F10 AFB10024 */ sw $s1, 0x24($sp) +/* 0D8A44 7F0A3F14 AFB00020 */ sw $s0, 0x20($sp) +/* 0D8A48 7F0A3F18 AFA500BC */ sw $a1, 0xbc($sp) +/* 0D8A4C 7F0A3F1C AFA600C0 */ sw $a2, 0xc0($sp) +/* 0D8A50 7F0A3F20 848E0004 */ lh $t6, 4($a0) +/* 0D8A54 7F0A3F24 00808025 */ move $s0, $a0 +/* 0D8A58 7F0A3F28 59C0017A */ blezl $t6, .L7F0A4514 +/* 0D8A5C 7F0A3F2C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D8A60 7F0A3F30 8C8F0000 */ lw $t7, ($a0) +/* 0D8A64 7F0A3F34 24840010 */ addiu $a0, $a0, 0x10 +/* 0D8A68 7F0A3F38 05E20176 */ bltzl $t7, .L7F0A4514 +/* 0D8A6C 7F0A3F3C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D8A70 7F0A3F40 0FC1E296 */ jal sub_GAME_7F078A58 +/* 0D8A74 7F0A3F44 8E050024 */ lw $a1, 0x24($s0) +/* 0D8A78 7F0A3F48 10400171 */ beqz $v0, .L7F0A4510 +/* 0D8A7C 7F0A3F4C 3C198004 */ lui $t9, %hi(D_80040980) +/* 0D8A80 7F0A3F50 27390980 */ addiu $t9, %lo(D_80040980) # addiu $t9, $t9, 0x980 +/* 0D8A84 7F0A3F54 8F210000 */ lw $at, ($t9) +/* 0D8A88 7F0A3F58 8F290004 */ lw $t1, 4($t9) +/* 0D8A8C 7F0A3F5C 27B800A8 */ addiu $t8, $sp, 0xa8 +/* 0D8A90 7F0A3F60 AF010000 */ sw $at, ($t8) +/* 0D8A94 7F0A3F64 AF090004 */ sw $t1, 4($t8) +/* 0D8A98 7F0A3F68 8F29000C */ lw $t1, 0xc($t9) +/* 0D8A9C 7F0A3F6C 8F210008 */ lw $at, 8($t9) +/* 0D8AA0 7F0A3F70 AF09000C */ sw $t1, 0xc($t8) +/* 0D8AA4 7F0A3F74 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D8AA8 7F0A3F78 AF010008 */ sw $at, 8($t8) +/* 0D8AAC 7F0A3F7C 8FAA00BC */ lw $t2, 0xbc($sp) +/* 0D8AB0 7F0A3F80 24040004 */ li $a0, 4 +/* 0D8AB4 7F0A3F84 8D4B0000 */ lw $t3, ($t2) +/* 0D8AB8 7F0A3F88 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0D8ABC 7F0A3F8C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D8AC0 7F0A3F90 AFAB00A0 */ sw $t3, 0xa0($sp) +/* 0D8AC4 7F0A3F94 86040006 */ lh $a0, 6($s0) +/* 0D8AC8 7F0A3F98 00408825 */ move $s1, $v0 +/* 0D8ACC 7F0A3F9C 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D8AD0 7F0A3FA0 AFA40058 */ sw $a0, 0x58($sp) +/* 0D8AD4 7F0A3FA4 920C0028 */ lbu $t4, 0x28($s0) +/* 0D8AD8 7F0A3FA8 8FA300A4 */ lw $v1, 0xa4($sp) +/* 0D8ADC 7F0A3FAC 00409025 */ move $s2, $v0 +/* 0D8AE0 7F0A3FB0 A3AC00B4 */ sb $t4, 0xb4($sp) +/* 0D8AE4 7F0A3FB4 920D0029 */ lbu $t5, 0x29($s0) +/* 0D8AE8 7F0A3FB8 27A200A8 */ addiu $v0, $sp, 0xa8 +/* 0D8AEC 7F0A3FBC A3AD00B5 */ sb $t5, 0xb5($sp) +/* 0D8AF0 7F0A3FC0 920E002A */ lbu $t6, 0x2a($s0) +/* 0D8AF4 7F0A3FC4 A3AE00B6 */ sb $t6, 0xb6($sp) +/* 0D8AF8 7F0A3FC8 920F002B */ lbu $t7, 0x2b($s0) +/* 0D8AFC 7F0A3FCC A3AF00B7 */ sb $t7, 0xb7($sp) +/* 0D8B00 7F0A3FD0 8E080000 */ lw $t0, ($s0) +/* 0D8B04 7F0A3FD4 C6080008 */ lwc1 $f8, 8($s0) +/* 0D8B08 7F0A3FD8 44882000 */ mtc1 $t0, $f4 +/* 0D8B0C 7F0A3FDC 00000000 */ nop +/* 0D8B10 7F0A3FE0 468021A0 */ cvt.s.w $f6, $f4 +/* 0D8B14 7F0A3FE4 46083282 */ mul.s $f10, $f6, $f8 +/* 0D8B18 7F0A3FE8 4600540D */ trunc.w.s $f16, $f10 +/* 0D8B1C 7F0A3FEC 44198000 */ mfc1 $t9, $f16 +/* 0D8B20 7F0A3FF0 00000000 */ nop +/* 0D8B24 7F0A3FF4 AFB9005C */ sw $t9, 0x5c($sp) +/* 0D8B28 7F0A3FF8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 0D8B2C 7F0A3FFC E7B20090 */ swc1 $f18, 0x90($sp) +/* 0D8B30 7F0A4000 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0D8B34 7F0A4004 E7A40094 */ swc1 $f4, 0x94($sp) +/* 0D8B38 7F0A4008 C6060018 */ lwc1 $f6, 0x18($s0) +/* 0D8B3C 7F0A400C E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D8B40 7F0A4010 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8B44 7F0A4014 C4680000 */ lwc1 $f8, ($v1) +/* 0D8B48 7F0A4018 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B4C 7F0A401C E7B00084 */ swc1 $f16, 0x84($sp) +/* 0D8B50 7F0A4020 C604001C */ lwc1 $f4, 0x1c($s0) +/* 0D8B54 7F0A4024 C4720004 */ lwc1 $f18, 4($v1) +/* 0D8B58 7F0A4028 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B5C 7F0A402C E7A60088 */ swc1 $f6, 0x88($sp) +/* 0D8B60 7F0A4030 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8B64 7F0A4034 C4680008 */ lwc1 $f8, 8($v1) +/* 0D8B68 7F0A4038 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B6C 7F0A403C E7B0008C */ swc1 $f16, 0x8c($sp) +/* 0D8B70 7F0A4040 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8B74 7F0A4044 C4720000 */ lwc1 $f18, ($v1) +/* 0D8B78 7F0A4048 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B7C 7F0A404C E7A60078 */ swc1 $f6, 0x78($sp) +/* 0D8B80 7F0A4050 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0D8B84 7F0A4054 C4680004 */ lwc1 $f8, 4($v1) +/* 0D8B88 7F0A4058 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B8C 7F0A405C E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0D8B90 7F0A4060 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8B94 7F0A4064 C4720008 */ lwc1 $f18, 8($v1) +/* 0D8B98 7F0A4068 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B9C 7F0A406C E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D8BA0 7F0A4070 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8BA4 7F0A4074 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0D8BA8 7F0A4078 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BAC 7F0A407C E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0D8BB0 7F0A4080 C604001C */ lwc1 $f4, 0x1c($s0) +/* 0D8BB4 7F0A4084 C4720014 */ lwc1 $f18, 0x14($v1) +/* 0D8BB8 7F0A4088 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BBC 7F0A408C E7A60070 */ swc1 $f6, 0x70($sp) +/* 0D8BC0 7F0A4090 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8BC4 7F0A4094 C4680018 */ lwc1 $f8, 0x18($v1) +/* 0D8BC8 7F0A4098 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BCC 7F0A409C E7B00074 */ swc1 $f16, 0x74($sp) +/* 0D8BD0 7F0A40A0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8BD4 7F0A40A4 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0D8BD8 7F0A40A8 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BDC 7F0A40AC E7A60060 */ swc1 $f6, 0x60($sp) +/* 0D8BE0 7F0A40B0 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0D8BE4 7F0A40B4 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0D8BE8 7F0A40B8 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BEC 7F0A40BC E7B00064 */ swc1 $f16, 0x64($sp) +/* 0D8BF0 7F0A40C0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8BF4 7F0A40C4 C4720018 */ lwc1 $f18, 0x18($v1) +/* 0D8BF8 7F0A40C8 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BFC 7F0A40CC E7A60068 */ swc1 $f6, 0x68($sp) +/* 0D8C00 7F0A40D0 8C410000 */ lw $at, ($v0) +/* 0D8C04 7F0A40D4 AE210000 */ sw $at, ($s1) +/* 0D8C08 7F0A40D8 8C4B0004 */ lw $t3, 4($v0) +/* 0D8C0C 7F0A40DC AE2B0004 */ sw $t3, 4($s1) +/* 0D8C10 7F0A40E0 8C410008 */ lw $at, 8($v0) +/* 0D8C14 7F0A40E4 AE210008 */ sw $at, 8($s1) +/* 0D8C18 7F0A40E8 8C4B000C */ lw $t3, 0xc($v0) +/* 0D8C1C 7F0A40EC AE2B000C */ sw $t3, 0xc($s1) +/* 0D8C20 7F0A40F0 8C410000 */ lw $at, ($v0) +/* 0D8C24 7F0A40F4 AE210010 */ sw $at, 0x10($s1) +/* 0D8C28 7F0A40F8 8C4E0004 */ lw $t6, 4($v0) +/* 0D8C2C 7F0A40FC AE2E0014 */ sw $t6, 0x14($s1) +/* 0D8C30 7F0A4100 8C410008 */ lw $at, 8($v0) +/* 0D8C34 7F0A4104 AE210018 */ sw $at, 0x18($s1) +/* 0D8C38 7F0A4108 8C4E000C */ lw $t6, 0xc($v0) +/* 0D8C3C 7F0A410C AE2E001C */ sw $t6, 0x1c($s1) +/* 0D8C40 7F0A4110 8C410000 */ lw $at, ($v0) +/* 0D8C44 7F0A4114 AE210020 */ sw $at, 0x20($s1) +/* 0D8C48 7F0A4118 8C580004 */ lw $t8, 4($v0) +/* 0D8C4C 7F0A411C AE380024 */ sw $t8, 0x24($s1) +/* 0D8C50 7F0A4120 8C410008 */ lw $at, 8($v0) +/* 0D8C54 7F0A4124 AE210028 */ sw $at, 0x28($s1) +/* 0D8C58 7F0A4128 8C58000C */ lw $t8, 0xc($v0) +/* 0D8C5C 7F0A412C AE38002C */ sw $t8, 0x2c($s1) +/* 0D8C60 7F0A4130 8C410000 */ lw $at, ($v0) +/* 0D8C64 7F0A4134 AE210030 */ sw $at, 0x30($s1) +/* 0D8C68 7F0A4138 8C490004 */ lw $t1, 4($v0) +/* 0D8C6C 7F0A413C AE290034 */ sw $t1, 0x34($s1) +/* 0D8C70 7F0A4140 8C410008 */ lw $at, 8($v0) +/* 0D8C74 7F0A4144 AE210038 */ sw $at, 0x38($s1) +/* 0D8C78 7F0A4148 8C49000C */ lw $t1, 0xc($v0) +/* 0D8C7C 7F0A414C 0FC2D20F */ jal get_room_data_float1 +/* 0D8C80 7F0A4150 AE29003C */ sw $t1, 0x3c($s1) +/* 0D8C84 7F0A4154 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D8C88 7F0A4158 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0D8C8C 7F0A415C C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0D8C90 7F0A4160 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8C94 7F0A4164 C6480000 */ lwc1 $f8, ($s2) +/* 0D8C98 7F0A4168 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8C9C 7F0A416C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8CA0 7F0A4170 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8CA4 7F0A4174 4600540D */ trunc.w.s $f16, $f10 +/* 0D8CA8 7F0A4178 440D8000 */ mfc1 $t5, $f16 +/* 0D8CAC 7F0A417C 0FC2D20F */ jal get_room_data_float1 +/* 0D8CB0 7F0A4180 A62D0000 */ sh $t5, ($s1) +/* 0D8CB4 7F0A4184 C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D8CB8 7F0A4188 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D8CBC 7F0A418C C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0D8CC0 7F0A4190 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8CC4 7F0A4194 C6520004 */ lwc1 $f18, 4($s2) +/* 0D8CC8 7F0A4198 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8CCC 7F0A419C 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8CD0 7F0A41A0 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8CD4 7F0A41A4 4600218D */ trunc.w.s $f6, $f4 +/* 0D8CD8 7F0A41A8 440E3000 */ mfc1 $t6, $f6 +/* 0D8CDC 7F0A41AC 0FC2D20F */ jal get_room_data_float1 +/* 0D8CE0 7F0A41B0 A62E0002 */ sh $t6, 2($s1) +/* 0D8CE4 7F0A41B4 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D8CE8 7F0A41B8 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D8CEC 7F0A41BC C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D8CF0 7F0A41C0 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8CF4 7F0A41C4 C6480008 */ lwc1 $f8, 8($s2) +/* 0D8CF8 7F0A41C8 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8CFC 7F0A41CC 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8D00 7F0A41D0 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D04 7F0A41D4 4600540D */ trunc.w.s $f16, $f10 +/* 0D8D08 7F0A41D8 440F8000 */ mfc1 $t7, $f16 +/* 0D8D0C 7F0A41DC 00000000 */ nop +/* 0D8D10 7F0A41E0 A62F0004 */ sh $t7, 4($s1) +/* 0D8D14 7F0A41E4 8FA2005C */ lw $v0, 0x5c($sp) +/* 0D8D18 7F0A41E8 8E0A000C */ lw $t2, 0xc($s0) +/* 0D8D1C 7F0A41EC 0002C080 */ sll $t8, $v0, 2 +/* 0D8D20 7F0A41F0 0302C023 */ subu $t8, $t8, $v0 +/* 0D8D24 7F0A41F4 0018C080 */ sll $t8, $t8, 2 +/* 0D8D28 7F0A41F8 0158C821 */ addu $t9, $t2, $t8 +/* 0D8D2C 7F0A41FC 93290004 */ lbu $t1, 4($t9) +/* 0D8D30 7F0A4200 A620000A */ sh $zero, 0xa($s1) +/* 0D8D34 7F0A4204 00095940 */ sll $t3, $t1, 5 +/* 0D8D38 7F0A4208 A62B0008 */ sh $t3, 8($s1) +/* 0D8D3C 7F0A420C 0FC2D20F */ jal get_room_data_float1 +/* 0D8D40 7F0A4210 AFB80034 */ sw $t8, 0x34($sp) +/* 0D8D44 7F0A4214 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D8D48 7F0A4218 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D8D4C 7F0A421C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0D8D50 7F0A4220 46049180 */ add.s $f6, $f18, $f4 +/* 0D8D54 7F0A4224 C6520000 */ lwc1 $f18, ($s2) +/* 0D8D58 7F0A4228 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D5C 7F0A422C 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8D60 7F0A4230 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8D64 7F0A4234 4600218D */ trunc.w.s $f6, $f4 +/* 0D8D68 7F0A4238 440C3000 */ mfc1 $t4, $f6 +/* 0D8D6C 7F0A423C 0FC2D20F */ jal get_room_data_float1 +/* 0D8D70 7F0A4240 A62C0010 */ sh $t4, 0x10($s1) +/* 0D8D74 7F0A4244 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D8D78 7F0A4248 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D8D7C 7F0A424C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0D8D80 7F0A4250 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8D84 7F0A4254 C6480004 */ lwc1 $f8, 4($s2) +/* 0D8D88 7F0A4258 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8D8C 7F0A425C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8D90 7F0A4260 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D94 7F0A4264 4600540D */ trunc.w.s $f16, $f10 +/* 0D8D98 7F0A4268 44088000 */ mfc1 $t0, $f16 +/* 0D8D9C 7F0A426C 0FC2D20F */ jal get_room_data_float1 +/* 0D8DA0 7F0A4270 A6280012 */ sh $t0, 0x12($s1) +/* 0D8DA4 7F0A4274 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0D8DA8 7F0A4278 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D8DAC 7F0A427C C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0D8DB0 7F0A4280 46049180 */ add.s $f6, $f18, $f4 +/* 0D8DB4 7F0A4284 C6520008 */ lwc1 $f18, 8($s2) +/* 0D8DB8 7F0A4288 A6200018 */ sh $zero, 0x18($s1) +/* 0D8DBC 7F0A428C A620001A */ sh $zero, 0x1a($s1) +/* 0D8DC0 7F0A4290 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8DC4 7F0A4294 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8DC8 7F0A4298 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8DCC 7F0A429C 4600218D */ trunc.w.s $f6, $f4 +/* 0D8DD0 7F0A42A0 44183000 */ mfc1 $t8, $f6 +/* 0D8DD4 7F0A42A4 0FC2D20F */ jal get_room_data_float1 +/* 0D8DD8 7F0A42A8 A6380014 */ sh $t8, 0x14($s1) +/* 0D8DDC 7F0A42AC C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D8DE0 7F0A42B0 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0D8DE4 7F0A42B4 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0D8DE8 7F0A42B8 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8DEC 7F0A42BC C6480000 */ lwc1 $f8, ($s2) +/* 0D8DF0 7F0A42C0 46128100 */ add.s $f4, $f16, $f18 +/* 0D8DF4 7F0A42C4 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8DF8 7F0A42C8 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8DFC 7F0A42CC 4600540D */ trunc.w.s $f16, $f10 +/* 0D8E00 7F0A42D0 44198000 */ mfc1 $t9, $f16 +/* 0D8E04 7F0A42D4 0FC2D20F */ jal get_room_data_float1 +/* 0D8E08 7F0A42D8 A6390020 */ sh $t9, 0x20($s1) +/* 0D8E0C 7F0A42DC C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D8E10 7F0A42E0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D8E14 7F0A42E4 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0D8E18 7F0A42E8 46049180 */ add.s $f6, $f18, $f4 +/* 0D8E1C 7F0A42EC C6520004 */ lwc1 $f18, 4($s2) +/* 0D8E20 7F0A42F0 46083280 */ add.s $f10, $f6, $f8 +/* 0D8E24 7F0A42F4 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8E28 7F0A42F8 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8E2C 7F0A42FC 4600218D */ trunc.w.s $f6, $f4 +/* 0D8E30 7F0A4300 440B3000 */ mfc1 $t3, $f6 +/* 0D8E34 7F0A4304 0FC2D20F */ jal get_room_data_float1 +/* 0D8E38 7F0A4308 A62B0022 */ sh $t3, 0x22($s1) +/* 0D8E3C 7F0A430C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D8E40 7F0A4310 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D8E44 7F0A4314 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D8E48 7F0A4318 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8E4C 7F0A431C C6480008 */ lwc1 $f8, 8($s2) +/* 0D8E50 7F0A4320 A6200028 */ sh $zero, 0x28($s1) +/* 0D8E54 7F0A4324 46128100 */ add.s $f4, $f16, $f18 +/* 0D8E58 7F0A4328 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8E5C 7F0A432C 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8E60 7F0A4330 4600540D */ trunc.w.s $f16, $f10 +/* 0D8E64 7F0A4334 440C8000 */ mfc1 $t4, $f16 +/* 0D8E68 7F0A4338 00000000 */ nop +/* 0D8E6C 7F0A433C A62C0024 */ sh $t4, 0x24($s1) +/* 0D8E70 7F0A4340 8FA80034 */ lw $t0, 0x34($sp) +/* 0D8E74 7F0A4344 8E0E000C */ lw $t6, 0xc($s0) +/* 0D8E78 7F0A4348 01C87821 */ addu $t7, $t6, $t0 +/* 0D8E7C 7F0A434C 91F80005 */ lbu $t8, 5($t7) +/* 0D8E80 7F0A4350 00185140 */ sll $t2, $t8, 5 +/* 0D8E84 7F0A4354 0FC2D20F */ jal get_room_data_float1 +/* 0D8E88 7F0A4358 A62A002A */ sh $t2, 0x2a($s1) +/* 0D8E8C 7F0A435C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D8E90 7F0A4360 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D8E94 7F0A4364 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0D8E98 7F0A4368 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8E9C 7F0A436C C6520000 */ lwc1 $f18, ($s2) +/* 0D8EA0 7F0A4370 46083280 */ add.s $f10, $f6, $f8 +/* 0D8EA4 7F0A4374 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8EA8 7F0A4378 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8EAC 7F0A437C 4600218D */ trunc.w.s $f6, $f4 +/* 0D8EB0 7F0A4380 44093000 */ mfc1 $t1, $f6 +/* 0D8EB4 7F0A4384 0FC2D20F */ jal get_room_data_float1 +/* 0D8EB8 7F0A4388 A6290030 */ sh $t1, 0x30($s1) +/* 0D8EBC 7F0A438C C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D8EC0 7F0A4390 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D8EC4 7F0A4394 C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0D8EC8 7F0A4398 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8ECC 7F0A439C C6480004 */ lwc1 $f8, 4($s2) +/* 0D8ED0 7F0A43A0 46128100 */ add.s $f4, $f16, $f18 +/* 0D8ED4 7F0A43A4 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8ED8 7F0A43A8 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8EDC 7F0A43AC 4600540D */ trunc.w.s $f16, $f10 +/* 0D8EE0 7F0A43B0 440D8000 */ mfc1 $t5, $f16 +/* 0D8EE4 7F0A43B4 0FC2D20F */ jal get_room_data_float1 +/* 0D8EE8 7F0A43B8 A62D0032 */ sh $t5, 0x32($s1) +/* 0D8EEC 7F0A43BC C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0D8EF0 7F0A43C0 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D8EF4 7F0A43C4 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0D8EF8 7F0A43C8 8FA40034 */ lw $a0, 0x34($sp) +/* 0D8EFC 7F0A43CC 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8F00 7F0A43D0 C6520008 */ lwc1 $f18, 8($s2) +/* 0D8F04 7F0A43D4 46083280 */ add.s $f10, $f6, $f8 +/* 0D8F08 7F0A43D8 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8F0C 7F0A43DC 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8F10 7F0A43E0 4600218D */ trunc.w.s $f6, $f4 +/* 0D8F14 7F0A43E4 440E3000 */ mfc1 $t6, $f6 +/* 0D8F18 7F0A43E8 00000000 */ nop +/* 0D8F1C 7F0A43EC A62E0034 */ sh $t6, 0x34($s1) +/* 0D8F20 7F0A43F0 8E08000C */ lw $t0, 0xc($s0) +/* 0D8F24 7F0A43F4 01047821 */ addu $t7, $t0, $a0 +/* 0D8F28 7F0A43F8 91F80004 */ lbu $t8, 4($t7) +/* 0D8F2C 7F0A43FC 240F2000 */ li $t7, 8192 +/* 0D8F30 7F0A4400 3C08B700 */ lui $t0, 0xb700 +/* 0D8F34 7F0A4404 00185140 */ sll $t2, $t8, 5 +/* 0D8F38 7F0A4408 A62A0038 */ sh $t2, 0x38($s1) +/* 0D8F3C 7F0A440C 8E19000C */ lw $t9, 0xc($s0) +/* 0D8F40 7F0A4410 03244821 */ addu $t1, $t9, $a0 +/* 0D8F44 7F0A4414 912B0005 */ lbu $t3, 5($t1) +/* 0D8F48 7F0A4418 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0D8F4C 7F0A441C 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D8F50 7F0A4420 000B6940 */ sll $t5, $t3, 5 +/* 0D8F54 7F0A4424 A62D003A */ sh $t5, 0x3a($s1) +/* 0D8F58 7F0A4428 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0D8F5C 7F0A442C 258E0008 */ addiu $t6, $t4, 8 +/* 0D8F60 7F0A4430 AFAE00A0 */ sw $t6, 0xa0($sp) +/* 0D8F64 7F0A4434 AD8F0004 */ sw $t7, 4($t4) +/* 0D8F68 7F0A4438 AD880000 */ sw $t0, ($t4) +/* 0D8F6C 7F0A443C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0D8F70 7F0A4440 270A0008 */ addiu $t2, $t8, 8 +/* 0D8F74 7F0A4444 AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0D8F78 7F0A4448 AF190000 */ sw $t9, ($t8) +/* 0D8F7C 7F0A444C 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D8F80 7F0A4450 AFB8004C */ sw $t8, 0x4c($sp) +/* 0D8F84 7F0A4454 0C003A2C */ jal osVirtualToPhysical +/* 0D8F88 7F0A4458 00402025 */ move $a0, $v0 +/* 0D8F8C 7F0A445C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0D8F90 7F0A4460 AD220004 */ sw $v0, 4($t1) +/* 0D8F94 7F0A4464 8FA50058 */ lw $a1, 0x58($sp) +/* 0D8F98 7F0A4468 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D8F9C 7F0A446C 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0D8FA0 7F0A4470 AFA200A0 */ sw $v0, 0xa0($sp) +/* 0D8FA4 7F0A4474 8E0B000C */ lw $t3, 0xc($s0) +/* 0D8FA8 7F0A4478 8FAD0034 */ lw $t5, 0x34($sp) +/* 0D8FAC 7F0A447C 240C0002 */ li $t4, 2 +/* 0D8FB0 7F0A4480 AFAC0010 */ sw $t4, 0x10($sp) +/* 0D8FB4 7F0A4484 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0D8FB8 7F0A4488 24060004 */ li $a2, 4 +/* 0D8FBC 7F0A448C 8FA700C0 */ lw $a3, 0xc0($sp) +/* 0D8FC0 7F0A4490 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D8FC4 7F0A4494 016D2821 */ addu $a1, $t3, $t5 +/* 0D8FC8 7F0A4498 8FB000A0 */ lw $s0, 0xa0($sp) +/* 0D8FCC 7F0A449C 3C0F0430 */ lui $t7, (0x04300040 >> 16) # lui $t7, 0x430 +/* 0D8FD0 7F0A44A0 35EF0040 */ ori $t7, (0x04300040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0D8FD4 7F0A44A4 26080008 */ addiu $t0, $s0, 8 +/* 0D8FD8 7F0A44A8 AFA800A0 */ sw $t0, 0xa0($sp) +/* 0D8FDC 7F0A44AC 02202025 */ move $a0, $s1 +/* 0D8FE0 7F0A44B0 0C003A2C */ jal osVirtualToPhysical +/* 0D8FE4 7F0A44B4 AE0F0000 */ sw $t7, ($s0) +/* 0D8FE8 7F0A44B8 AE020004 */ sw $v0, 4($s0) +/* 0D8FEC 7F0A44BC 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0D8FF0 7F0A44C0 3C19B100 */ lui $t9, (0xB1000032 >> 16) # lui $t9, 0xb100 +/* 0D8FF4 7F0A44C4 37390032 */ ori $t9, (0xB1000032 & 0xFFFF) # ori $t9, $t9, 0x32 +/* 0D8FF8 7F0A44C8 270A0008 */ addiu $t2, $t8, 8 +/* 0D8FFC 7F0A44CC AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0D9000 7F0A44D0 24092010 */ li $t1, 8208 +/* 0D9004 7F0A44D4 AF090004 */ sw $t1, 4($t8) +/* 0D9008 7F0A44D8 AF190000 */ sw $t9, ($t8) +/* 0D900C 7F0A44DC 8FB100A0 */ lw $s1, 0xa0($sp) +/* 0D9010 7F0A44E0 3C0C0103 */ lui $t4, (0x01030040 >> 16) # lui $t4, 0x103 +/* 0D9014 7F0A44E4 358C0040 */ ori $t4, (0x01030040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 0D9018 7F0A44E8 262D0008 */ addiu $t5, $s1, 8 +/* 0D901C 7F0A44EC AFAD00A0 */ sw $t5, 0xa0($sp) +/* 0D9020 7F0A44F0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D9024 7F0A44F4 AE2C0000 */ sw $t4, ($s1) +/* 0D9028 7F0A44F8 0C003A2C */ jal osVirtualToPhysical +/* 0D902C 7F0A44FC 00402025 */ move $a0, $v0 +/* 0D9030 7F0A4500 AE220004 */ sw $v0, 4($s1) +/* 0D9034 7F0A4504 8FA800BC */ lw $t0, 0xbc($sp) +/* 0D9038 7F0A4508 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0D903C 7F0A450C AD0E0000 */ sw $t6, ($t0) +.L7F0A4510: +/* 0D9040 7F0A4510 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0A4514: +/* 0D9044 7F0A4514 8FB00020 */ lw $s0, 0x20($sp) +/* 0D9048 7F0A4518 8FB10024 */ lw $s1, 0x24($sp) +/* 0D904C 7F0A451C 8FB20028 */ lw $s2, 0x28($sp) +/* 0D9050 7F0A4520 03E00008 */ jr $ra +/* 0D9054 7F0A4524 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4528(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4528 +/* 0D9058 7F0A4528 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D905C 7F0A452C AFB10018 */ sw $s1, 0x18($sp) +/* 0D9060 7F0A4530 AFB00014 */ sw $s0, 0x14($sp) +/* 0D9064 7F0A4534 AFB30020 */ sw $s3, 0x20($sp) +/* 0D9068 7F0A4538 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D906C 7F0A453C 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A170) +/* 0D9070 7F0A4540 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007A4E0) +/* 0D9074 7F0A4544 00809025 */ move $s2, $a0 +/* 0D9078 7F0A4548 00A09825 */ move $s3, $a1 +/* 0D907C 7F0A454C AFBF0024 */ sw $ra, 0x24($sp) +/* 0D9080 7F0A4550 2631A4E0 */ addiu $s1, %lo(dword_CODE_bss_8007A4E0) # addiu $s1, $s1, -0x5b20 +/* 0D9084 7F0A4554 2610A170 */ addiu $s0, %lo(dword_CODE_bss_8007A170) # addiu $s0, $s0, -0x5e90 +/* 0D9088 7F0A4558 02002025 */ move $a0, $s0 +.L7F0A455C: +/* 0D908C 7F0A455C 02402825 */ move $a1, $s2 +/* 0D9090 7F0A4560 0FC28FC1 */ jal sub_GAME_7F0A3F04 +/* 0D9094 7F0A4564 02603025 */ move $a2, $s3 +/* 0D9098 7F0A4568 2610002C */ addiu $s0, $s0, 0x2c +/* 0D909C 7F0A456C 0211082B */ sltu $at, $s0, $s1 +/* 0D90A0 7F0A4570 5420FFFA */ bnezl $at, .L7F0A455C +/* 0D90A4 7F0A4574 02002025 */ move $a0, $s0 +/* 0D90A8 7F0A4578 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D90AC 7F0A457C 8FB00014 */ lw $s0, 0x14($sp) +/* 0D90B0 7F0A4580 8FB10018 */ lw $s1, 0x18($sp) +/* 0D90B4 7F0A4584 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D90B8 7F0A4588 8FB30020 */ lw $s3, 0x20($sp) +/* 0D90BC 7F0A458C 03E00008 */ jr $ra +/* 0D90C0 7F0A4590 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4594(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4594 +/* 0D90C4 7F0A4594 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D90C8 7F0A4598 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D90CC 7F0A459C C4840010 */ lwc1 $f4, 0x10($a0) +/* 0D90D0 7F0A45A0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 0D90D4 7F0A45A4 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0D90D8 7F0A45A8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0D90DC 7F0A45AC C4880018 */ lwc1 $f8, 0x18($a0) +/* 0D90E0 7F0A45B0 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D90E4 7F0A45B4 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0D90E8 7F0A45B8 00402025 */ move $a0, $v0 +/* 0D90EC 7F0A45BC 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0D90F0 7F0A45C0 27A5001C */ addiu $a1, $sp, 0x1c +/* 0D90F4 7F0A45C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D90F8 7F0A45C8 C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0D90FC 7F0A45CC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D9100 7F0A45D0 03E00008 */ jr $ra +/* 0D9104 7F0A45D4 46000007 */ neg.s $f0, $f0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A45D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A45D8 +/* 0D9108 7F0A45D8 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A4E0) +/* 0D910C 7F0A45DC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B098) +/* 0D9110 7F0A45E0 2463B098 */ addiu $v1, %lo(dword_CODE_bss_8007B098) # addiu $v1, $v1, -0x4f68 +/* 0D9114 7F0A45E4 2442A4E0 */ addiu $v0, %lo(dword_CODE_bss_8007A4E0) # addiu $v0, $v0, -0x5b20 +.L7F0A45E8: +/* 0D9118 7F0A45E8 2442003C */ addiu $v0, $v0, 0x3c +/* 0D911C 7F0A45EC 0043082B */ sltu $at, $v0, $v1 +/* 0D9120 7F0A45F0 1420FFFD */ bnez $at, .L7F0A45E8 +/* 0D9124 7F0A45F4 A440FFC8 */ sh $zero, -0x38($v0) +/* 0D9128 7F0A45F8 03E00008 */ jr $ra +/* 0D912C 7F0A45FC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4600 +/* 0D9130 7F0A4600 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D9134 7F0A4604 AFB00020 */ sw $s0, 0x20($sp) +/* 0D9138 7F0A4608 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D913C 7F0A460C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B098) +/* 0D9140 7F0A4610 44876000 */ mtc1 $a3, $f12 +/* 0D9144 7F0A4614 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D9148 7F0A4618 AFA40028 */ sw $a0, 0x28($sp) +/* 0D914C 7F0A461C AFA5002C */ sw $a1, 0x2c($sp) +/* 0D9150 7F0A4620 2442B098 */ addiu $v0, %lo(dword_CODE_bss_8007B098) # addiu $v0, $v0, -0x4f68 +/* 0D9154 7F0A4624 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D9158 7F0A4628 860E0004 */ lh $t6, 4($s0) +.L7F0A462C: +/* 0D915C 7F0A462C 55C00013 */ bnezl $t6, .L7F0A467C +/* 0D9160 7F0A4630 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9164 7F0A4634 87AF003E */ lh $t7, 0x3e($sp) +/* 0D9168 7F0A4638 44076000 */ mfc1 $a3, $f12 +/* 0D916C 7F0A463C 02002025 */ move $a0, $s0 +/* 0D9170 7F0A4640 8FA50028 */ lw $a1, 0x28($sp) +/* 0D9174 7F0A4644 0FC28F02 */ jal sub_GAME_7F0A3C08 +/* 0D9178 7F0A4648 AFAF0010 */ sw $t7, 0x10($sp) +/* 0D917C 7F0A464C 8FA3002C */ lw $v1, 0x2c($sp) +/* 0D9180 7F0A4650 02001025 */ move $v0, $s0 +/* 0D9184 7F0A4654 C4640000 */ lwc1 $f4, ($v1) +/* 0D9188 7F0A4658 E604002C */ swc1 $f4, 0x2c($s0) +/* 0D918C 7F0A465C C4660004 */ lwc1 $f6, 4($v1) +/* 0D9190 7F0A4660 E6060030 */ swc1 $f6, 0x30($s0) +/* 0D9194 7F0A4664 C4680008 */ lwc1 $f8, 8($v1) +/* 0D9198 7F0A4668 E6080034 */ swc1 $f8, 0x34($s0) +/* 0D919C 7F0A466C C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0D91A0 7F0A4670 10000006 */ b .L7F0A468C +/* 0D91A4 7F0A4674 E60A0038 */ swc1 $f10, 0x38($s0) +/* 0D91A8 7F0A4678 2610003C */ addiu $s0, $s0, 0x3c +.L7F0A467C: +/* 0D91AC 7F0A467C 0202082B */ sltu $at, $s0, $v0 +/* 0D91B0 7F0A4680 5420FFEA */ bnezl $at, .L7F0A462C +/* 0D91B4 7F0A4684 860E0004 */ lh $t6, 4($s0) +/* 0D91B8 7F0A4688 00001025 */ move $v0, $zero +.L7F0A468C: +/* 0D91BC 7F0A468C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D91C0 7F0A4690 8FB00020 */ lw $s0, 0x20($sp) +/* 0D91C4 7F0A4694 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D91C8 7F0A4698 03E00008 */ jr $ra +/* 0D91CC 7F0A469C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A46A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A46A0 +/* 0D91D0 7F0A46A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D91D4 7F0A46A4 AFB30020 */ sw $s3, 0x20($sp) +/* 0D91D8 7F0A46A8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D91DC 7F0A46AC AFB10018 */ sw $s1, 0x18($sp) +/* 0D91E0 7F0A46B0 AFB00014 */ sw $s0, 0x14($sp) +/* 0D91E4 7F0A46B4 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D91E8 7F0A46B8 3C138008 */ lui $s3, %hi(dword_CODE_bss_8007B098) +/* 0D91EC 7F0A46BC 3C118005 */ lui $s1, %hi(clock_timer) +/* 0D91F0 7F0A46C0 3C128005 */ lui $s2, %hi(global_timer_delta) +/* 0D91F4 7F0A46C4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D91F8 7F0A46C8 2673B098 */ addiu $s3, %lo(dword_CODE_bss_8007B098) # addiu $s3, $s3, -0x4f68 +/* 0D91FC 7F0A46CC 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D9200 7F0A46D0 26528378 */ addiu $s2, %lo(global_timer_delta) # addiu $s2, $s2, -0x7c88 +/* 0D9204 7F0A46D4 26318374 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c8c +/* 0D9208 7F0A46D8 860E0004 */ lh $t6, 4($s0) +.L7F0A46DC: +/* 0D920C 7F0A46DC 59C00018 */ blezl $t6, .L7F0A4740 +/* 0D9210 7F0A46E0 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9214 7F0A46E4 8E0F0000 */ lw $t7, ($s0) +/* 0D9218 7F0A46E8 8E380000 */ lw $t8, ($s1) +/* 0D921C 7F0A46EC 01F8C821 */ addu $t9, $t7, $t8 +/* 0D9220 7F0A46F0 07200012 */ bltz $t9, .L7F0A473C +/* 0D9224 7F0A46F4 AE190000 */ sw $t9, ($s0) +/* 0D9228 7F0A46F8 86080004 */ lh $t0, 4($s0) +/* 0D922C 7F0A46FC 26040010 */ addiu $a0, $s0, 0x10 +/* 0D9230 7F0A4700 2605002C */ addiu $a1, $s0, 0x2c +/* 0D9234 7F0A4704 0328082A */ slt $at, $t9, $t0 +/* 0D9238 7F0A4708 5020000C */ beql $at, $zero, .L7F0A473C +/* 0D923C 7F0A470C A6000004 */ sh $zero, 4($s0) +/* 0D9240 7F0A4710 0FC15F62 */ jal sub_GAME_7F057D88 +/* 0D9244 7F0A4714 8E460000 */ lw $a2, ($s2) +/* 0D9248 7F0A4718 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0D924C 7F0A471C C6060038 */ lwc1 $f6, 0x38($s0) +/* 0D9250 7F0A4720 4606203C */ c.lt.s $f4, $f6 +/* 0D9254 7F0A4724 00000000 */ nop +/* 0D9258 7F0A4728 45020005 */ bc1fl .L7F0A4740 +/* 0D925C 7F0A472C 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9260 7F0A4730 10000002 */ b .L7F0A473C +/* 0D9264 7F0A4734 A6000004 */ sh $zero, 4($s0) +/* 0D9268 7F0A4738 A6000004 */ sh $zero, 4($s0) +.L7F0A473C: +/* 0D926C 7F0A473C 2610003C */ addiu $s0, $s0, 0x3c +.L7F0A4740: +/* 0D9270 7F0A4740 0213082B */ sltu $at, $s0, $s3 +/* 0D9274 7F0A4744 5420FFE5 */ bnezl $at, .L7F0A46DC +/* 0D9278 7F0A4748 860E0004 */ lh $t6, 4($s0) +/* 0D927C 7F0A474C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D9280 7F0A4750 8FB00014 */ lw $s0, 0x14($sp) +/* 0D9284 7F0A4754 8FB10018 */ lw $s1, 0x18($sp) +/* 0D9288 7F0A4758 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D928C 7F0A475C 8FB30020 */ lw $s3, 0x20($sp) +/* 0D9290 7F0A4760 03E00008 */ jr $ra +/* 0D9294 7F0A4764 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4768(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4768 +/* 0D9298 7F0A4768 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D929C 7F0A476C AFB10018 */ sw $s1, 0x18($sp) +/* 0D92A0 7F0A4770 AFB00014 */ sw $s0, 0x14($sp) +/* 0D92A4 7F0A4774 AFB30020 */ sw $s3, 0x20($sp) +/* 0D92A8 7F0A4778 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D92AC 7F0A477C 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D92B0 7F0A4780 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007B098) +/* 0D92B4 7F0A4784 00809025 */ move $s2, $a0 +/* 0D92B8 7F0A4788 00A09825 */ move $s3, $a1 +/* 0D92BC 7F0A478C AFBF0024 */ sw $ra, 0x24($sp) +/* 0D92C0 7F0A4790 2631B098 */ addiu $s1, %lo(dword_CODE_bss_8007B098) # addiu $s1, $s1, -0x4f68 +/* 0D92C4 7F0A4794 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D92C8 7F0A4798 02002025 */ move $a0, $s0 +.L7F0A479C: +/* 0D92CC 7F0A479C 02402825 */ move $a1, $s2 +/* 0D92D0 7F0A47A0 0FC28FC1 */ jal sub_GAME_7F0A3F04 +/* 0D92D4 7F0A47A4 02603025 */ move $a2, $s3 +/* 0D92D8 7F0A47A8 2610003C */ addiu $s0, $s0, 0x3c +/* 0D92DC 7F0A47AC 0211082B */ sltu $at, $s0, $s1 +/* 0D92E0 7F0A47B0 5420FFFA */ bnezl $at, .L7F0A479C +/* 0D92E4 7F0A47B4 02002025 */ move $a0, $s0 +/* 0D92E8 7F0A47B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D92EC 7F0A47BC 8FB00014 */ lw $s0, 0x14($sp) +/* 0D92F0 7F0A47C0 8FB10018 */ lw $s1, 0x18($sp) +/* 0D92F4 7F0A47C4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D92F8 7F0A47C8 8FB30020 */ lw $s3, 0x20($sp) +/* 0D92FC 7F0A47CC 03E00008 */ jr $ra +/* 0D9300 7F0A47D0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void sub_GAME_7F0A47D4(void) { + sub_GAME_7F0A3BD8(); + sub_GAME_7F0A45D8(); +} + +void sub_GAME_7F0A47FC(void) { + sub_GAME_7F0A3EA0(); + sub_GAME_7F0A46A0(); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4824(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4824 +/* 0D9354 7F0A4824 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D9358 7F0A4828 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D935C 7F0A482C AFA40018 */ sw $a0, 0x18($sp) +/* 0D9360 7F0A4830 0FC2914A */ jal sub_GAME_7F0A4528 +/* 0D9364 7F0A4834 AFA5001C */ sw $a1, 0x1c($sp) +/* 0D9368 7F0A4838 8FA40018 */ lw $a0, 0x18($sp) +/* 0D936C 7F0A483C 0FC291DA */ jal sub_GAME_7F0A4768 +/* 0D9370 7F0A4840 8FA5001C */ lw $a1, 0x1c($sp) +/* 0D9374 7F0A4844 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D9378 7F0A4848 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0D937C 7F0A484C 03E00008 */ jr $ra +/* 0D9380 7F0A4850 00000000 */ nop +) +#endif + + + + diff --git a/src/game/unk_0A1DA0.h b/src/game/unk_0A1DA0.h new file mode 100644 index 0000000..c118f9d --- /dev/null +++ b/src/game/unk_0A1DA0.h @@ -0,0 +1,16 @@ +#ifndef _UNK_0A1DA0_H_ +#define _UNK_0A1DA0_H_ +#include "ultra64.h" + +extern u32 D_80040960[]; + +extern u32 D_80040980; +extern u32 D_80040984; +extern u32 D_80040988; +extern u32 D_8004098C; +extern u32 D_80040990; +extern u32 watch_screen_index; +extern u32 D_80040998; +extern u32 D_8004099C; + +#endif diff --git a/src/game/unk_0B3200.c b/src/game/unk_0B3200.c new file mode 100644 index 0000000..426bb68 --- /dev/null +++ b/src/game/unk_0B3200.c @@ -0,0 +1,476 @@ +#include "ultra64.h" + + +// rodata + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B3200(f32 *param_1,f32 *param_2,f32 *param_3,f32 *param_4) + +{ + 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; + } + } + +} +#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(struct xyzpoint *param_1,struct xyzpoint *param_2,struct xyzpoint *param_3) + +{ + + f32 fVar2; + float __x; + + + __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; + } + } + } + return fVar2; +} +#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 + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B33DC(void) { + +} +#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_0BC530.c b/src/game/unk_0BC530.c new file mode 100644 index 0000000..d346af3 --- /dev/null +++ b/src/game/unk_0BC530.c @@ -0,0 +1,540 @@ +#include "ultra64.h" +#include "game/unk_093880.h" + +// bss +char dword_CODE_bss_80083320[0x130]; +char dword_CODE_bss_80083450[0x4B0]; +char dword_CODE_bss_80083900[0x4B0]; +char dword_CODE_bss_80083DB0[0x4B00]; + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC530(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC530 +/* 0F1060 7F0BC530 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F1064 7F0BC534 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1068 7F0BC538 AFB00018 */ sw $s0, 0x18($sp) +/* 0F106C 7F0BC53C AFB20020 */ sw $s2, 0x20($sp) +/* 0F1070 7F0BC540 AFB1001C */ sw $s1, 0x1c($sp) +/* 0F1074 7F0BC544 0FC26919 */ jal get_num_players +/* 0F1078 7F0BC548 00008025 */ move $s0, $zero +/* 0F107C 7F0BC54C 1840000D */ blez $v0, .L7F0BC584 +/* 0F1080 7F0BC550 00107080 */ sll $t6, $s0, 2 +/* 0F1084 7F0BC554 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0F1088 7F0BC558 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0F108C 7F0BC55C 01CF8821 */ addu $s1, $t6, $t7 +/* 0F1090 7F0BC560 2412FFFF */ li $s2, -1 +/* 0F1094 7F0BC564 8E380000 */ lw $t8, ($s1) +.L7F0BC568: +/* 0F1098 7F0BC568 26100001 */ addiu $s0, $s0, 1 +/* 0F109C 7F0BC56C 26310004 */ addiu $s1, $s1, 4 +/* 0F10A0 7F0BC570 0FC26919 */ jal get_num_players +/* 0F10A4 7F0BC574 AF12108C */ sw $s2, 0x108c($t8) +/* 0F10A8 7F0BC578 0202082A */ slt $at, $s0, $v0 +/* 0F10AC 7F0BC57C 5420FFFA */ bnezl $at, .L7F0BC568 +/* 0F10B0 7F0BC580 8E380000 */ lw $t8, ($s1) +.L7F0BC584: +/* 0F10B4 7F0BC584 3C038008 */ lui $v1, %hi(dword_CODE_bss_80083450) +/* 0F10B8 7F0BC588 3C048008 */ lui $a0, %hi(dword_CODE_bss_80083320) +/* 0F10BC 7F0BC58C 3C028008 */ lui $v0, %hi(dword_CODE_bss_80083900) +/* 0F10C0 7F0BC590 3C068008 */ lui $a2, %hi(dword_CODE_bss_80083DB0) +/* 0F10C4 7F0BC594 2412FFFF */ li $s2, -1 +/* 0F10C8 7F0BC598 24C63DB0 */ addiu $a2, %lo(dword_CODE_bss_80083DB0) # addiu $a2, $a2, 0x3db0 +/* 0F10CC 7F0BC59C 24423900 */ addiu $v0, %lo(dword_CODE_bss_80083900) # addiu $v0, $v0, 0x3900 +/* 0F10D0 7F0BC5A0 24843320 */ addiu $a0, %lo(dword_CODE_bss_80083320) # addiu $a0, $a0, 0x3320 +/* 0F10D4 7F0BC5A4 24633450 */ addiu $v1, %lo(dword_CODE_bss_80083450) # addiu $v1, $v1, 0x3450 +/* 0F10D8 7F0BC5A8 24050002 */ li $a1, 2 +.L7F0BC5AC: +/* 0F10DC 7F0BC5AC 24420004 */ addiu $v0, $v0, 4 +/* 0F10E0 7F0BC5B0 0046082B */ sltu $at, $v0, $a2 +/* 0F10E4 7F0BC5B4 24630004 */ addiu $v1, $v1, 4 +/* 0F10E8 7F0BC5B8 24840001 */ addiu $a0, $a0, 1 +/* 0F10EC 7F0BC5BC AC72FFFC */ sw $s2, -4($v1) +/* 0F10F0 7F0BC5C0 A085FFFF */ sb $a1, -1($a0) +/* 0F10F4 7F0BC5C4 1420FFF9 */ bnez $at, .L7F0BC5AC +/* 0F10F8 7F0BC5C8 AC52FFFC */ sw $s2, -4($v0) +/* 0F10FC 7F0BC5CC 0FC2D791 */ jal getMaxNumRooms +/* 0F1100 7F0BC5D0 00008025 */ move $s0, $zero +/* 0F1104 7F0BC5D4 1840000D */ blez $v0, .L7F0BC60C +/* 0F1108 7F0BC5D8 0010C880 */ sll $t9, $s0, 2 +/* 0F110C 7F0BC5DC 0330C821 */ addu $t9, $t9, $s0 +/* 0F1110 7F0BC5E0 3C088004 */ lui $t0, %hi(array_room_info) +/* 0F1114 7F0BC5E4 25081414 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, 0x1414 +/* 0F1118 7F0BC5E8 0019C900 */ sll $t9, $t9, 4 +/* 0F111C 7F0BC5EC 03288821 */ addu $s1, $t9, $t0 +/* 0F1120 7F0BC5F0 26100001 */ addiu $s0, $s0, 1 +.L7F0BC5F4: +/* 0F1124 7F0BC5F4 26310050 */ addiu $s1, $s1, 0x50 +/* 0F1128 7F0BC5F8 0FC2D791 */ jal getMaxNumRooms +/* 0F112C 7F0BC5FC A632FFE6 */ sh $s2, -0x1a($s1) +/* 0F1130 7F0BC600 0202082A */ slt $at, $s0, $v0 +/* 0F1134 7F0BC604 5420FFFB */ bnezl $at, .L7F0BC5F4 +/* 0F1138 7F0BC608 26100001 */ addiu $s0, $s0, 1 +.L7F0BC60C: +/* 0F113C 7F0BC60C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1140 7F0BC610 8FB00018 */ lw $s0, 0x18($sp) +/* 0F1144 7F0BC614 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F1148 7F0BC618 8FB20020 */ lw $s2, 0x20($sp) +/* 0F114C 7F0BC61C 03E00008 */ jr $ra +/* 0F1150 7F0BC620 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + + +void sub_GAME_7F0BC624(s32 param_1) { + pPlayer->field_108C = param_1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC634(s16 param_1,int param_2) +{ + roominformationblock[param_2].field_36 = param_1; + (&dword_CODE_bss_80083450)[param_1] = param_2; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC634 +/* 0F1164 7F0BC634 00057080 */ sll $t6, $a1, 2 +/* 0F1168 7F0BC638 01C57021 */ addu $t6, $t6, $a1 +/* 0F116C 7F0BC63C 000E7100 */ sll $t6, $t6, 4 +/* 0F1170 7F0BC640 3C018004 */ lui $at, %hi(array_room_info + 0x10 +38) +/* 0F1174 7F0BC644 002E0821 */ addu $at, $at, $t6 +/* 0F1178 7F0BC648 A424144A */ sh $a0, %lo(array_room_info + 0x10 +38)($at) +/* 0F117C 7F0BC64C 3C018008 */ lui $at, %hi(dword_CODE_bss_80083450) +/* 0F1180 7F0BC650 00047880 */ sll $t7, $a0, 2 +/* 0F1184 7F0BC654 002F0821 */ addu $at, $at, $t7 +/* 0F1188 7F0BC658 03E00008 */ jr $ra +/* 0F118C 7F0BC65C AC253450 */ sw $a1, %lo(dword_CODE_bss_80083450)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC660(int param_1,int param_2) +{ + roominformationblock[param_2].field_36 = -1; + (&dword_CODE_bss_80083450)[param_1] = 0xffffffff; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC660 +/* 0F1190 7F0BC660 00057080 */ sll $t6, $a1, 2 +/* 0F1194 7F0BC664 01C57021 */ addu $t6, $t6, $a1 +/* 0F1198 7F0BC668 000E7100 */ sll $t6, $t6, 4 +/* 0F119C 7F0BC66C 3C018004 */ lui $at, %hi(array_room_info + 0x10 +38) +/* 0F11A0 7F0BC670 2402FFFF */ li $v0, -1 +/* 0F11A4 7F0BC674 002E0821 */ addu $at, $at, $t6 +/* 0F11A8 7F0BC678 A422144A */ sh $v0, %lo(array_room_info + 0x10 +38)($at) +/* 0F11AC 7F0BC67C 3C018008 */ lui $at, %hi(dword_CODE_bss_80083450) +/* 0F11B0 7F0BC680 00047880 */ sll $t7, $a0, 2 +/* 0F11B4 7F0BC684 002F0821 */ addu $at, $at, $t7 +/* 0F11B8 7F0BC688 03E00008 */ jr $ra +/* 0F11BC 7F0BC68C AC223450 */ sw $v0, %lo(dword_CODE_bss_80083450)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC690(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC690 +/* 0F11C0 7F0BC690 00041080 */ sll $v0, $a0, 2 +/* 0F11C4 7F0BC694 3C058008 */ lui $a1, %hi(dword_CODE_bss_80083450) +/* 0F11C8 7F0BC698 00A22821 */ addu $a1, $a1, $v0 +/* 0F11CC 7F0BC69C 8CA53450 */ lw $a1, %lo(dword_CODE_bss_80083450)($a1) +/* 0F11D0 7F0BC6A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F11D4 7F0BC6A4 2401FFFF */ li $at, -1 +/* 0F11D8 7F0BC6A8 10A10006 */ beq $a1, $at, .L7F0BC6C4 +/* 0F11DC 7F0BC6AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F11E0 7F0BC6B0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F11E4 7F0BC6B4 0FC2F198 */ jal sub_GAME_7F0BC660 +/* 0F11E8 7F0BC6B8 AFA40020 */ sw $a0, 0x20($sp) +/* 0F11EC 7F0BC6BC 8FA2001C */ lw $v0, 0x1c($sp) +/* 0F11F0 7F0BC6C0 8FA40020 */ lw $a0, 0x20($sp) +.L7F0BC6C4: +/* 0F11F4 7F0BC6C4 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F11F8 7F0BC6C8 00240821 */ addu $at, $at, $a0 +/* 0F11FC 7F0BC6CC 240E0002 */ li $t6, 2 +/* 0F1200 7F0BC6D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1204 7F0BC6D4 A02E3320 */ sb $t6, %lo(dword_CODE_bss_80083320)($at) +/* 0F1208 7F0BC6D8 3C018008 */ lui $at, %hi(dword_CODE_bss_80083900) +/* 0F120C 7F0BC6DC 00220821 */ addu $at, $at, $v0 +/* 0F1210 7F0BC6E0 240FFFFF */ li $t7, -1 +/* 0F1214 7F0BC6E4 AC2F3900 */ sw $t7, %lo(dword_CODE_bss_80083900)($at) +/* 0F1218 7F0BC6E8 03E00008 */ jr $ra +/* 0F121C 7F0BC6EC 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC6F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC6F0 +/* 0F1220 7F0BC6F0 3C028008 */ lui $v0, %hi(dword_CODE_bss_80083320) +/* 0F1224 7F0BC6F4 3C058008 */ lui $a1, %hi(dword_CODE_bss_80083900) +/* 0F1228 7F0BC6F8 24A53900 */ addiu $a1, %lo(dword_CODE_bss_80083900) # addiu $a1, $a1, 0x3900 +/* 0F122C 7F0BC6FC 24423320 */ addiu $v0, %lo(dword_CODE_bss_80083320) # addiu $v0, $v0, 0x3320 +/* 0F1230 7F0BC700 00001825 */ move $v1, $zero +/* 0F1234 7F0BC704 2406012C */ li $a2, 300 +/* 0F1238 7F0BC708 2404FFFF */ li $a0, -1 +.L7F0BC70C: +/* 0F123C 7F0BC70C 904E0000 */ lbu $t6, ($v0) +/* 0F1240 7F0BC710 00037880 */ sll $t7, $v1, 2 +/* 0F1244 7F0BC714 00AFC021 */ addu $t8, $a1, $t7 +/* 0F1248 7F0BC718 29C10002 */ slti $at, $t6, 2 +/* 0F124C 7F0BC71C 54200007 */ bnezl $at, .L7F0BC73C +/* 0F1250 7F0BC720 90480001 */ lbu $t0, 1($v0) +/* 0F1254 7F0BC724 8F190000 */ lw $t9, ($t8) +/* 0F1258 7F0BC728 54990004 */ bnel $a0, $t9, .L7F0BC73C +/* 0F125C 7F0BC72C 90480001 */ lbu $t0, 1($v0) +/* 0F1260 7F0BC730 03E00008 */ jr $ra +/* 0F1264 7F0BC734 00601025 */ move $v0, $v1 + +/* 0F1268 7F0BC738 90480001 */ lbu $t0, 1($v0) +.L7F0BC73C: +/* 0F126C 7F0BC73C 00034880 */ sll $t1, $v1, 2 +/* 0F1270 7F0BC740 00A95021 */ addu $t2, $a1, $t1 +/* 0F1274 7F0BC744 29010002 */ slti $at, $t0, 2 +/* 0F1278 7F0BC748 54200007 */ bnezl $at, .L7F0BC768 +/* 0F127C 7F0BC74C 904C0002 */ lbu $t4, 2($v0) +/* 0F1280 7F0BC750 8D4B0004 */ lw $t3, 4($t2) +/* 0F1284 7F0BC754 548B0004 */ bnel $a0, $t3, .L7F0BC768 +/* 0F1288 7F0BC758 904C0002 */ lbu $t4, 2($v0) +/* 0F128C 7F0BC75C 03E00008 */ jr $ra +/* 0F1290 7F0BC760 24620001 */ addiu $v0, $v1, 1 + +/* 0F1294 7F0BC764 904C0002 */ lbu $t4, 2($v0) +.L7F0BC768: +/* 0F1298 7F0BC768 00036880 */ sll $t5, $v1, 2 +/* 0F129C 7F0BC76C 00AD7021 */ addu $t6, $a1, $t5 +/* 0F12A0 7F0BC770 29810002 */ slti $at, $t4, 2 +/* 0F12A4 7F0BC774 54200007 */ bnezl $at, .L7F0BC794 +/* 0F12A8 7F0BC778 90580003 */ lbu $t8, 3($v0) +/* 0F12AC 7F0BC77C 8DCF0008 */ lw $t7, 8($t6) +/* 0F12B0 7F0BC780 548F0004 */ bnel $a0, $t7, .L7F0BC794 +/* 0F12B4 7F0BC784 90580003 */ lbu $t8, 3($v0) +/* 0F12B8 7F0BC788 03E00008 */ jr $ra +/* 0F12BC 7F0BC78C 24620002 */ addiu $v0, $v1, 2 + +/* 0F12C0 7F0BC790 90580003 */ lbu $t8, 3($v0) +.L7F0BC794: +/* 0F12C4 7F0BC794 0003C880 */ sll $t9, $v1, 2 +/* 0F12C8 7F0BC798 00B94021 */ addu $t0, $a1, $t9 +/* 0F12CC 7F0BC79C 2B010002 */ slti $at, $t8, 2 +/* 0F12D0 7F0BC7A0 54200007 */ bnezl $at, .L7F0BC7C0 +/* 0F12D4 7F0BC7A4 24630004 */ addiu $v1, $v1, 4 +/* 0F12D8 7F0BC7A8 8D09000C */ lw $t1, 0xc($t0) +/* 0F12DC 7F0BC7AC 54890004 */ bnel $a0, $t1, .L7F0BC7C0 +/* 0F12E0 7F0BC7B0 24630004 */ addiu $v1, $v1, 4 +/* 0F12E4 7F0BC7B4 03E00008 */ jr $ra +/* 0F12E8 7F0BC7B8 24620003 */ addiu $v0, $v1, 3 + +/* 0F12EC 7F0BC7BC 24630004 */ addiu $v1, $v1, 4 +.L7F0BC7C0: +/* 0F12F0 7F0BC7C0 1466FFD2 */ bne $v1, $a2, .L7F0BC70C +/* 0F12F4 7F0BC7C4 24420004 */ addiu $v0, $v0, 4 +/* 0F12F8 7F0BC7C8 00001025 */ move $v0, $zero +/* 0F12FC 7F0BC7CC 03E00008 */ jr $ra +/* 0F1300 7F0BC7D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC7D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC7D4 +/* 0F1304 7F0BC7D4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F1308 7F0BC7D8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F130C 7F0BC7DC AFB10018 */ sw $s1, 0x18($sp) +/* 0F1310 7F0BC7E0 AFB30020 */ sw $s3, 0x20($sp) +/* 0F1314 7F0BC7E4 AFB00014 */ sw $s0, 0x14($sp) +/* 0F1318 7F0BC7E8 3C118008 */ lui $s1, %hi(dword_CODE_bss_80083900) +/* 0F131C 7F0BC7EC 3C128008 */ lui $s2, %hi(dword_CODE_bss_80083320) +/* 0F1320 7F0BC7F0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1324 7F0BC7F4 26523320 */ addiu $s2, %lo(dword_CODE_bss_80083320) # addiu $s2, $s2, 0x3320 +/* 0F1328 7F0BC7F8 26313900 */ addiu $s1, %lo(dword_CODE_bss_80083900) # addiu $s1, $s1, 0x3900 +/* 0F132C 7F0BC7FC 00008025 */ move $s0, $zero +/* 0F1330 7F0BC800 2413012C */ li $s3, 300 +.L7F0BC804: +/* 0F1334 7F0BC804 8E2E0000 */ lw $t6, ($s1) +/* 0F1338 7F0BC808 02501021 */ addu $v0, $s2, $s0 +/* 0F133C 7F0BC80C 05C2000A */ bltzl $t6, .L7F0BC838 +/* 0F1340 7F0BC810 26100001 */ addiu $s0, $s0, 1 +/* 0F1344 7F0BC814 904F0000 */ lbu $t7, ($v0) +/* 0F1348 7F0BC818 25F80001 */ addiu $t8, $t7, 1 +/* 0F134C 7F0BC81C 331900FF */ andi $t9, $t8, 0xff +/* 0F1350 7F0BC820 2B210002 */ slti $at, $t9, 2 +/* 0F1354 7F0BC824 14200003 */ bnez $at, .L7F0BC834 +/* 0F1358 7F0BC828 A0580000 */ sb $t8, ($v0) +/* 0F135C 7F0BC82C 0FC2F1A4 */ jal sub_GAME_7F0BC690 +/* 0F1360 7F0BC830 02002025 */ move $a0, $s0 +.L7F0BC834: +/* 0F1364 7F0BC834 26100001 */ addiu $s0, $s0, 1 +.L7F0BC838: +/* 0F1368 7F0BC838 1613FFF2 */ bne $s0, $s3, .L7F0BC804 +/* 0F136C 7F0BC83C 26310004 */ addiu $s1, $s1, 4 +/* 0F1370 7F0BC840 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1374 7F0BC844 8FB00014 */ lw $s0, 0x14($sp) +/* 0F1378 7F0BC848 8FB10018 */ lw $s1, 0x18($sp) +/* 0F137C 7F0BC84C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F1380 7F0BC850 8FB30020 */ lw $s3, 0x20($sp) +/* 0F1384 7F0BC854 03E00008 */ jr $ra +/* 0F1388 7F0BC858 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC85C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC85C +/* 0F138C 7F0BC85C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0F1390 7F0BC860 00047880 */ sll $t7, $a0, 2 +/* 0F1394 7F0BC864 AFB00018 */ sw $s0, 0x18($sp) +/* 0F1398 7F0BC868 01E47821 */ addu $t7, $t7, $a0 +/* 0F139C 7F0BC86C 000F7900 */ sll $t7, $t7, 4 +/* 0F13A0 7F0BC870 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +38) +/* 0F13A4 7F0BC874 020F8021 */ addu $s0, $s0, $t7 +/* 0F13A8 7F0BC878 8610144A */ lh $s0, %lo(array_room_info + 0x10 +38)($s0) +/* 0F13AC 7F0BC87C 2402FFFF */ li $v0, -1 +/* 0F13B0 7F0BC880 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F13B4 7F0BC884 1202000C */ beq $s0, $v0, .L7F0BC8B8 +/* 0F13B8 7F0BC888 AFA40070 */ sw $a0, 0x70($sp) +/* 0F13BC 7F0BC88C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F13C0 7F0BC890 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F13C4 7F0BC894 00104080 */ sll $t0, $s0, 2 +/* 0F13C8 7F0BC898 3C098008 */ lui $t1, %hi(dword_CODE_bss_80083900) +/* 0F13CC 7F0BC89C 01284821 */ addu $t1, $t1, $t0 +/* 0F13D0 7F0BC8A0 8D293900 */ lw $t1, %lo(dword_CODE_bss_80083900)($t1) +/* 0F13D4 7F0BC8A4 8F19108C */ lw $t9, 0x108c($t8) +/* 0F13D8 7F0BC8A8 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F13DC 7F0BC8AC 00300821 */ addu $at, $at, $s0 +/* 0F13E0 7F0BC8B0 1329000F */ beq $t9, $t1, .L7F0BC8F0 +/* 0F13E4 7F0BC8B4 00000000 */ nop +.L7F0BC8B8: +/* 0F13E8 7F0BC8B8 12020003 */ beq $s0, $v0, .L7F0BC8C8 +/* 0F13EC 7F0BC8BC 02002025 */ move $a0, $s0 +/* 0F13F0 7F0BC8C0 0FC2F198 */ jal sub_GAME_7F0BC660 +/* 0F13F4 7F0BC8C4 8FA50070 */ lw $a1, 0x70($sp) +.L7F0BC8C8: +/* 0F13F8 7F0BC8C8 0FC2F1BC */ jal sub_GAME_7F0BC6F0 +/* 0F13FC 7F0BC8CC 00000000 */ nop +/* 0F1400 7F0BC8D0 00408025 */ move $s0, $v0 +/* 0F1404 7F0BC8D4 00402025 */ move $a0, $v0 +/* 0F1408 7F0BC8D8 0FC2F18D */ jal sub_GAME_7F0BC634 +/* 0F140C 7F0BC8DC 8FA50070 */ lw $a1, 0x70($sp) +/* 0F1410 7F0BC8E0 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F1414 7F0BC8E4 00300821 */ addu $at, $at, $s0 +/* 0F1418 7F0BC8E8 10000004 */ b .L7F0BC8FC +/* 0F141C 7F0BC8EC A0203320 */ sb $zero, %lo(dword_CODE_bss_80083320)($at) +.L7F0BC8F0: +/* 0F1420 7F0BC8F0 A0203320 */ sb $zero, %lo(dword_CODE_bss_80083320)($at) +/* 0F1424 7F0BC8F4 1000002E */ b .L7F0BC9B0 +/* 0F1428 7F0BC8F8 02001025 */ move $v0, $s0 +.L7F0BC8FC: +/* 0F142C 7F0BC8FC 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0F1430 7F0BC900 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0F1434 7F0BC904 00106080 */ sll $t4, $s0, 2 +/* 0F1438 7F0BC908 3C018008 */ lui $at, %hi(dword_CODE_bss_80083900) +/* 0F143C 7F0BC90C 8D4B108C */ lw $t3, 0x108c($t2) +/* 0F1440 7F0BC910 002C0821 */ addu $at, $at, $t4 +/* 0F1444 7F0BC914 27A4002C */ addiu $a0, $sp, 0x2c +/* 0F1448 7F0BC918 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0F144C 7F0BC91C AC2B3900 */ sw $t3, %lo(dword_CODE_bss_80083900)($at) +/* 0F1450 7F0BC920 8FAE0070 */ lw $t6, 0x70($sp) +/* 0F1454 7F0BC924 3C018004 */ lui $at, %hi(room_data_float2) +/* 0F1458 7F0BC928 C42013F8 */ lwc1 $f0, %lo(room_data_float2)($at) +/* 0F145C 7F0BC92C 3C0D8008 */ lui $t5, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1460 7F0BC930 8DADFF8C */ lw $t5, %lo(ptr_bgdata_room_fileposition_list)($t5) +/* 0F1464 7F0BC934 000E7880 */ sll $t7, $t6, 2 +/* 0F1468 7F0BC938 01EE7823 */ subu $t7, $t7, $t6 +/* 0F146C 7F0BC93C 000F78C0 */ sll $t7, $t7, 3 +/* 0F1470 7F0BC940 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0F1474 7F0BC944 E7A00040 */ swc1 $f0, 0x40($sp) +/* 0F1478 7F0BC948 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0F147C 7F0BC94C 01AF1821 */ addu $v1, $t5, $t7 +/* 0F1480 7F0BC950 C464000C */ lwc1 $f4, 0xc($v1) +/* 0F1484 7F0BC954 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F1488 7F0BC958 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F148C 7F0BC95C 46002182 */ mul.s $f6, $f4, $f0 +/* 0F1490 7F0BC960 3C088008 */ lui $t0, %hi(dword_CODE_bss_80083DB0) +/* 0F1494 7F0BC964 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0F1498 7F0BC968 25083DB0 */ addiu $t0, %lo(dword_CODE_bss_80083DB0) # addiu $t0, $t0, 0x3db0 +/* 0F149C 7F0BC96C 0010C180 */ sll $t8, $s0, 6 +/* 0F14A0 7F0BC970 03082821 */ addu $a1, $t8, $t0 +/* 0F14A4 7F0BC974 27A4002C */ addiu $a0, $sp, 0x2c +/* 0F14A8 7F0BC978 46083281 */ sub.s $f10, $f6, $f8 +/* 0F14AC 7F0BC97C E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0F14B0 7F0BC980 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0F14B4 7F0BC984 C444003C */ lwc1 $f4, 0x3c($v0) +/* 0F14B8 7F0BC988 46008482 */ mul.s $f18, $f16, $f0 +/* 0F14BC 7F0BC98C 46049181 */ sub.s $f6, $f18, $f4 +/* 0F14C0 7F0BC990 E7A60060 */ swc1 $f6, 0x60($sp) +/* 0F14C4 7F0BC994 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0F14C8 7F0BC998 C4500040 */ lwc1 $f16, 0x40($v0) +/* 0F14CC 7F0BC99C 46004282 */ mul.s $f10, $f8, $f0 +/* 0F14D0 7F0BC9A0 46105481 */ sub.s $f18, $f10, $f16 +/* 0F14D4 7F0BC9A4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0F14D8 7F0BC9A8 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0F14DC 7F0BC9AC 02001025 */ move $v0, $s0 +.L7F0BC9B0: +/* 0F14E0 7F0BC9B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F14E4 7F0BC9B4 8FB00018 */ lw $s0, 0x18($sp) +/* 0F14E8 7F0BC9B8 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0F14EC 7F0BC9BC 03E00008 */ jr $ra +/* 0F14F0 7F0BC9C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC9C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC9C4 +/* 0F14F4 7F0BC9C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F14F8 7F0BC9C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F14FC 7F0BC9CC 00803025 */ move $a2, $a0 +/* 0F1500 7F0BC9D0 AFA60018 */ sw $a2, 0x18($sp) +/* 0F1504 7F0BC9D4 0FC2F217 */ jal sub_GAME_7F0BC85C +/* 0F1508 7F0BC9D8 00A02025 */ move $a0, $a1 +/* 0F150C 7F0BC9DC 8FA30018 */ lw $v1, 0x18($sp) +/* 0F1510 7F0BC9E0 3C188008 */ lui $t8, %hi(dword_CODE_bss_80083DB0) +/* 0F1514 7F0BC9E4 27183DB0 */ addiu $t8, %lo(dword_CODE_bss_80083DB0) # addiu $t8, $t8, 0x3db0 +/* 0F1518 7F0BC9E8 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0F151C 7F0BC9EC 00027980 */ sll $t7, $v0, 6 +/* 0F1520 7F0BC9F0 01F8C821 */ addu $t9, $t7, $t8 +/* 0F1524 7F0BC9F4 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0F1528 7F0BC9F8 AC6E0000 */ sw $t6, ($v1) +/* 0F152C 7F0BC9FC AC790004 */ sw $t9, 4($v1) +/* 0F1530 7F0BCA00 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1534 7F0BCA04 24660008 */ addiu $a2, $v1, 8 +/* 0F1538 7F0BCA08 00C01025 */ move $v0, $a2 +/* 0F153C 7F0BCA0C 03E00008 */ jr $ra +/* 0F1540 7F0BCA10 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BCA14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BCA14 +/* 0F1544 7F0BCA14 3C0F8008 */ lui $t7, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1548 7F0BCA18 8DEFFF8C */ lw $t7, %lo(ptr_bgdata_room_fileposition_list)($t7) +/* 0F154C 7F0BCA1C 00047080 */ sll $t6, $a0, 2 +/* 0F1550 7F0BCA20 01C47023 */ subu $t6, $t6, $a0 +/* 0F1554 7F0BCA24 000E70C0 */ sll $t6, $t6, 3 +/* 0F1558 7F0BCA28 01CF1021 */ addu $v0, $t6, $t7 +/* 0F155C 7F0BCA2C 03E00008 */ jr $ra +/* 0F1560 7F0BCA30 2442000C */ addiu $v0, $v0, 0xc +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BCA34(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BCA34 +/* 0F1564 7F0BCA34 3C038008 */ lui $v1, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1568 7F0BCA38 2463FF8C */ addiu $v1, %lo(ptr_bgdata_room_fileposition_list) # addiu $v1, $v1, -0x74 +/* 0F156C 7F0BCA3C 8C6E0000 */ lw $t6, ($v1) +/* 0F1570 7F0BCA40 00041080 */ sll $v0, $a0, 2 +/* 0F1574 7F0BCA44 00441023 */ subu $v0, $v0, $a0 +/* 0F1578 7F0BCA48 3C068004 */ lui $a2, %hi(room_data_float2) +/* 0F157C 7F0BCA4C 000210C0 */ sll $v0, $v0, 3 +/* 0F1580 7F0BCA50 24C613F8 */ addiu $a2, %lo(room_data_float2) # addiu $a2, $a2, 0x13f8 +/* 0F1584 7F0BCA54 01C27821 */ addu $t7, $t6, $v0 +/* 0F1588 7F0BCA58 C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0F158C 7F0BCA5C C4C60000 */ lwc1 $f6, ($a2) +/* 0F1590 7F0BCA60 46062202 */ mul.s $f8, $f4, $f6 +/* 0F1594 7F0BCA64 E4A80000 */ swc1 $f8, ($a1) +/* 0F1598 7F0BCA68 8C780000 */ lw $t8, ($v1) +/* 0F159C 7F0BCA6C C4D00000 */ lwc1 $f16, ($a2) +/* 0F15A0 7F0BCA70 0302C821 */ addu $t9, $t8, $v0 +/* 0F15A4 7F0BCA74 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 0F15A8 7F0BCA78 46105482 */ mul.s $f18, $f10, $f16 +/* 0F15AC 7F0BCA7C E4B20004 */ swc1 $f18, 4($a1) +/* 0F15B0 7F0BCA80 8C680000 */ lw $t0, ($v1) +/* 0F15B4 7F0BCA84 C4C60000 */ lwc1 $f6, ($a2) +/* 0F15B8 7F0BCA88 01024821 */ addu $t1, $t0, $v0 +/* 0F15BC 7F0BCA8C C5240014 */ lwc1 $f4, 0x14($t1) +/* 0F15C0 7F0BCA90 46062202 */ mul.s $f8, $f4, $f6 +/* 0F15C4 7F0BCA94 03E00008 */ jr $ra +/* 0F15C8 7F0BCA98 E4A80008 */ swc1 $f8, 8($a1) +) +#endif + + diff --git a/src/game/unk_0C0A70.c b/src/game/unk_0C0A70.c new file mode 100644 index 0000000..2b1c671 --- /dev/null +++ b/src/game/unk_0C0A70.c @@ -0,0 +1,214 @@ +#include "ultra64.h" +#include "game/unk_0C0A70.h" + +// data +s32 D_80048490 = -1; +s32 D_80048494 = 0; +s32 D_80048498 = 1; +#ifdef VERSION_JP +f32 jpD_800484CC = 1.0f; +f32 jpD_800484D0 = 1.0f; +#endif +s32 D_8004849C = -1; +s32 D_800484A0 = 0; +s32 D_800484A4 = 0; +s32 D_800484A8 = 0; +u32 copy_of_osgetcount_value_0 = 0; +u32 copy_of_osgetcount_value_1 = 0; +s32 D_800484B4 = 1; + + + + +void store_osgetcount(void) +{ + copy_of_osgetcount_value_1 = osGetCount(); + copy_of_osgetcount_value_0 = copy_of_osgetcount_value_1; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0C0AA0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0AA0 +/* 0F55D0 7F0C0AA0 3C0E8005 */ lui $t6, %hi(copy_of_osgetcount_value_1) +/* 0F55D4 7F0C0AA4 8DCE84B0 */ lw $t6, %lo(copy_of_osgetcount_value_1)($t6) +/* 0F55D8 7F0C0AA8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F55DC 7F0C0AAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F55E0 7F0C0AB0 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0) +/* 0F55E4 7F0C0AB4 AFA40018 */ sw $a0, 0x18($sp) +/* 0F55E8 7F0C0AB8 0C003638 */ jal osGetCount +/* 0F55EC 7F0C0ABC AC2E84AC */ sw $t6, %lo(copy_of_osgetcount_value_0)($at) +/* 0F55F0 7F0C0AC0 3C048005 */ lui $a0, %hi(D_80048494) +/* 0F55F4 7F0C0AC4 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_1) +/* 0F55F8 7F0C0AC8 AC2284B0 */ sw $v0, %lo(copy_of_osgetcount_value_1)($at) +/* 0F55FC 7F0C0ACC 24848494 */ addiu $a0, %lo(D_80048494) # addiu $a0, $a0, -0x7b6c +/* 0F5600 7F0C0AD0 8C830000 */ lw $v1, ($a0) +/* 0F5604 7F0C0AD4 8FA70018 */ lw $a3, 0x18($sp) +/* 0F5608 7F0C0AD8 3C018005 */ lui $at, %hi(D_80048490) +/* 0F560C 7F0C0ADC AC238490 */ sw $v1, %lo(D_80048490)($at) +/* 0F5610 7F0C0AE0 00677821 */ addu $t7, $v1, $a3 +/* 0F5614 7F0C0AE4 AC8F0000 */ sw $t7, ($a0) +/* 0F5618 7F0C0AE8 3C018005 */ lui $at, %hi(D_80048498) +/* 0F561C 7F0C0AEC AC278498 */ sw $a3, %lo(D_80048498)($at) +/* 0F5620 7F0C0AF0 8C830000 */ lw $v1, ($a0) +/* 0F5624 7F0C0AF4 3C058005 */ lui $a1, %hi(D_800484A0) +/* 0F5628 7F0C0AF8 24A584A0 */ addiu $a1, %lo(D_800484A0) # addiu $a1, $a1, -0x7b60 +/* 0F562C 7F0C0AFC 8CB80000 */ lw $t8, ($a1) +/* 0F5630 7F0C0B00 3C068005 */ lui $a2, %hi(D_8004849C) +/* 0F5634 7F0C0B04 24C6849C */ addiu $a2, %lo(D_8004849C) # addiu $a2, $a2, -0x7b64 +/* 0F5638 7F0C0B08 30680001 */ andi $t0, $v1, 1 +/* 0F563C 7F0C0B0C ACD80000 */ sw $t8, ($a2) +/* 0F5640 7F0C0B10 04610003 */ bgez $v1, .L7F0C0B20 +/* 0F5644 7F0C0B14 0003C843 */ sra $t9, $v1, 1 +/* 0F5648 7F0C0B18 24610001 */ addiu $at, $v1, 1 +/* 0F564C 7F0C0B1C 0001C843 */ sra $t9, $at, 1 +.L7F0C0B20: +/* 0F5650 7F0C0B20 ACB90000 */ sw $t9, ($a1) +/* 0F5654 7F0C0B24 3C018005 */ lui $at, %hi(D_800484A4) +/* 0F5658 7F0C0B28 AC2884A4 */ sw $t0, %lo(D_800484A4)($at) +/* 0F565C 7F0C0B2C 8CCA0000 */ lw $t2, ($a2) +/* 0F5660 7F0C0B30 8CA90000 */ lw $t1, ($a1) +/* 0F5664 7F0C0B34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5668 7F0C0B38 3C018005 */ lui $at, %hi(D_800484A8) +/* 0F566C 7F0C0B3C 012A5823 */ subu $t3, $t1, $t2 +/* 0F5670 7F0C0B40 AC2B84A8 */ sw $t3, %lo(D_800484A8)($at) +/* 0F5674 7F0C0B44 03E00008 */ jr $ra +/* 0F5678 7F0C0B48 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0AA0 +/* 0F6280 7F0C1710 3C0E8005 */ lui $t6, %hi(copy_of_osgetcount_value_1) # $t6, 0x8005 +/* 0F6284 7F0C1714 8DCE84E8 */ lw $t6, %lo(copy_of_osgetcount_value_1)($t6) +/* 0F6288 7F0C1718 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F628C 7F0C171C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6290 7F0C1720 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0) # $at, 0x8005 +/* 0F6294 7F0C1724 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6298 7F0C1728 0C003648 */ jal osGetCount +/* 0F629C 7F0C172C AC2E84E4 */ sw $t6, %lo(copy_of_osgetcount_value_0)($at) +/* 0F62A0 7F0C1730 8FA60018 */ lw $a2, 0x18($sp) +/* 0F62A4 7F0C1734 3C048005 */ lui $a0, %hi(D_80048494) # $a0, 0x8005 +/* 0F62A8 7F0C1738 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_1) # $at, 0x8005 +/* 0F62AC 7F0C173C 44862000 */ mtc1 $a2, $f4 +/* 0F62B0 7F0C1740 AC2284E8 */ sw $v0, %lo(copy_of_osgetcount_value_1)($at) +/* 0F62B4 7F0C1744 248484C4 */ addiu $a0, %lo(D_80048494) # addiu $a0, $a0, -0x7b3c +/* 0F62B8 7F0C1748 8C830000 */ lw $v1, ($a0) +/* 0F62BC 7F0C174C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F62C0 7F0C1750 3C018005 */ lui $at, %hi(D_80048490) # $at, 0x8005 +/* 0F62C4 7F0C1754 AC2384C0 */ sw $v1, %lo(D_80048490)($at) +/* 0F62C8 7F0C1758 00667821 */ addu $t7, $v1, $a2 +/* 0F62CC 7F0C175C 3C078005 */ lui $a3, %hi(jpD_800484CC) # $a3, 0x8005 +/* 0F62D0 7F0C1760 AC8F0000 */ sw $t7, ($a0) +/* 0F62D4 7F0C1764 3C018005 */ lui $at, %hi(D_80048498) # $at, 0x8005 +/* 0F62D8 7F0C1768 24E784CC */ addiu $a3, %lo(jpD_800484CC) # addiu $a3, $a3, -0x7b34 +/* 0F62DC 7F0C176C AC2684C8 */ sw $a2, %lo(D_80048498)($at) +/* 0F62E0 7F0C1770 E4E60000 */ swc1 $f6, ($a3) +/* 0F62E4 7F0C1774 C4E80000 */ lwc1 $f8, ($a3) +/* 0F62E8 7F0C1778 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0F62EC 7F0C177C 3C058005 */ lui $a1, %hi(D_800484A0) # $a1, 0x8005 +/* 0F62F0 7F0C1780 E42884D0 */ swc1 $f8, %lo(jpD_800484D0)($at) +/* 0F62F4 7F0C1784 8C830000 */ lw $v1, ($a0) +/* 0F62F8 7F0C1788 24A584D8 */ addiu $a1, %lo(D_800484A0) # addiu $a1, $a1, -0x7b28 +/* 0F62FC 7F0C178C 8CB80000 */ lw $t8, ($a1) +/* 0F6300 7F0C1790 3C088005 */ lui $t0, %hi(D_8004849C) # $t0, 0x8005 +/* 0F6304 7F0C1794 250884D4 */ addiu $t0, %lo(D_8004849C) # addiu $t0, $t0, -0x7b2c +/* 0F6308 7F0C1798 30690001 */ andi $t1, $v1, 1 +/* 0F630C 7F0C179C AD180000 */ sw $t8, ($t0) +/* 0F6310 7F0C17A0 04610003 */ bgez $v1, .L7F0C17B0 +/* 0F6314 7F0C17A4 0003C843 */ sra $t9, $v1, 1 +/* 0F6318 7F0C17A8 24610001 */ addiu $at, $v1, 1 +/* 0F631C 7F0C17AC 0001C843 */ sra $t9, $at, 1 +.L7F0C17B0: +/* 0F6320 7F0C17B0 ACB90000 */ sw $t9, ($a1) +/* 0F6324 7F0C17B4 3C018005 */ lui $at, %hi(D_800484A4) # $at, 0x8005 +/* 0F6328 7F0C17B8 AC2984DC */ sw $t1, %lo(D_800484A4)($at) +/* 0F632C 7F0C17BC 8D0B0000 */ lw $t3, ($t0) +/* 0F6330 7F0C17C0 8CAA0000 */ lw $t2, ($a1) +/* 0F6334 7F0C17C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6338 7F0C17C8 3C018005 */ lui $at, %hi(D_800484A8) # $at, 0x8005 +/* 0F633C 7F0C17CC 014B6023 */ subu $t4, $t2, $t3 +/* 0F6340 7F0C17D0 AC2C84E0 */ sw $t4, %lo(D_800484A8)($at) +/* 0F6344 7F0C17D4 03E00008 */ jr $ra +/* 0F6348 7F0C17D8 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0C0B4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0B4C +/* 0F567C 7F0C0B4C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F5680 7F0C0B50 AFB30020 */ sw $s3, 0x20($sp) +/* 0F5684 7F0C0B54 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F5688 7F0C0B58 AFB10018 */ sw $s1, 0x18($sp) +/* 0F568C 7F0C0B5C AFB00014 */ sw $s0, 0x14($sp) +/* 0F5690 7F0C0B60 3C108005 */ lui $s0, %hi(D_800484B4) +/* 0F5694 7F0C0B64 3C118005 */ lui $s1, %hi(copy_of_osgetcount_value_1) +/* 0F5698 7F0C0B68 3C120005 */ lui $s2, (0x0005EB61 >> 16) # lui $s2, 5 +/* 0F569C 7F0C0B6C 3C13000B */ lui $s3, (0x000BD6C3 >> 16) # lui $s3, 0xb +/* 0F56A0 7F0C0B70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F56A4 7F0C0B74 3673D6C3 */ ori $s3, (0x000BD6C3 & 0xFFFF) # ori $s3, $s3, 0xd6c3 +/* 0F56A8 7F0C0B78 3652EB61 */ ori $s2, (0x0005EB61 & 0xFFFF) # ori $s2, $s2, 0xeb61 +/* 0F56AC 7F0C0B7C 263184B0 */ addiu $s1, %lo(copy_of_osgetcount_value_1) # addiu $s1, $s1, -0x7b50 +/* 0F56B0 7F0C0B80 261084B4 */ addiu $s0, %lo(D_800484B4) # addiu $s0, $s0, -0x7b4c +.L7F0C0B84: +/* 0F56B4 7F0C0B84 0C003638 */ jal osGetCount +/* 0F56B8 7F0C0B88 00000000 */ nop +/* 0F56BC 7F0C0B8C 8E2E0000 */ lw $t6, ($s1) +/* 0F56C0 7F0C0B90 8E190000 */ lw $t9, ($s0) +/* 0F56C4 7F0C0B94 004E7823 */ subu $t7, $v0, $t6 +/* 0F56C8 7F0C0B98 01F2C021 */ addu $t8, $t7, $s2 +/* 0F56CC 7F0C0B9C 0313001B */ divu $zero, $t8, $s3 +/* 0F56D0 7F0C0BA0 00002012 */ mflo $a0 +/* 0F56D4 7F0C0BA4 0099082B */ sltu $at, $a0, $t9 +/* 0F56D8 7F0C0BA8 16600002 */ bnez $s3, .L7F0C0BB4 +/* 0F56DC 7F0C0BAC 00000000 */ nop +/* 0F56E0 7F0C0BB0 0007000D */ break 7 +.L7F0C0BB4: +/* 0F56E4 7F0C0BB4 1420FFF3 */ bnez $at, .L7F0C0B84 +/* 0F56E8 7F0C0BB8 00000000 */ nop +/* 0F56EC 7F0C0BBC 24080001 */ li $t0, 1 +/* 0F56F0 7F0C0BC0 0FC302A8 */ jal sub_GAME_7F0C0AA0 +/* 0F56F4 7F0C0BC4 AE080000 */ sw $t0, ($s0) +/* 0F56F8 7F0C0BC8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F56FC 7F0C0BCC 8FB00014 */ lw $s0, 0x14($sp) +/* 0F5700 7F0C0BD0 8FB10018 */ lw $s1, 0x18($sp) +/* 0F5704 7F0C0BD4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F5708 7F0C0BD8 8FB30020 */ lw $s3, 0x20($sp) +/* 0F570C 7F0C0BDC 03E00008 */ jr $ra +/* 0F5710 7F0C0BE0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void sub_GAME_7F0C0BE4(s32 arg0) { + D_800484B4 = arg0; +} + +void sub_GAME_7F0C0BF0(void) { + sub_GAME_7F0A9358(); +} + + + diff --git a/src/game/unk_0C0A70.h b/src/game/unk_0C0A70.h new file mode 100644 index 0000000..7361e49 --- /dev/null +++ b/src/game/unk_0C0A70.h @@ -0,0 +1,16 @@ +#ifndef _UNK_0C0A70_H_ +#define _UNK_0C0A70_H_ +#include "ultra64.h" + +extern s32 D_80048490; +extern s32 D_80048494; +extern s32 D_80048498; +extern s32 D_8004849C; +extern s32 D_800484A0; +extern s32 D_800484A4; +extern s32 D_800484A8; +extern u32 copy_of_osgetcount_value_0; +extern u32 copy_of_osgetcount_value_1; +extern s32 D_800484B4; + +#endif diff --git a/src/game/unk_0CC4C0.c b/src/game/unk_0CC4C0.c new file mode 100644 index 0000000..1107fdf --- /dev/null +++ b/src/game/unk_0CC4C0.c @@ -0,0 +1,3176 @@ +#include "ultra64.h" +#include "game/lvl.h" +#include "game/image.h" +#include "game/unk_0CC4C0.h" + +// bss +//8008D140 +s32 dword_CODE_bss_8008D140; +//8008D144 +s32 dword_CODE_bss_8008D144; +//8008D148 +char dword_CODE_bss_8008D148[0x160]; +//8008D2A8 +char dword_CODE_bss_8008D2A8[0xA0]; +//8008D348 +s32 dword_CODE_bss_8008D348; + + +// data +//D:8004E760 +u16 D_8004E760[] = {0xD0, 0xD1}; +//D:8004E764 +u8 D_8004E764[] = {0x7, 0x0, 0x0, 0x0}; +//D:8004E768 +struct image_sound isnd_default = {&D_8004E760, &D_8004E764, 0x0, 0x1}; + +//D:8004E774 +u16 D_8004E774[] = {0xD0, 0xD1}; +//D:8004E778 +u8 D_8004E778[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E77C +struct image_sound isnd_stone = {&D_8004E774, &D_8004E778, 0x2, 0x1}; + +//D:8004E788 +u16 D_8004E788[] = {0x4B, 0xD9}; +//D:8004E78C +u8 D_8004E78C[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E790 +struct image_sound isnd_wood = {&D_8004E788, &D_8004E78C, 0x2, 0x1}; + +//D:8004E79C +u16 D_8004E79C[] = {0x48, 0xF0, 0xEF, 0x00}; +//D:8004E7A4 +u8 D_8004E7A4[] = {0x7, 0x0, 0x0, 0x0}; +//D:8004E7A8 +struct image_sound isnd_metal = {&D_8004E79C, &D_8004E7A4, 0x3, 0x1}; + +//D:8004E7B4 +u16 D_8004E7B4[] = {0x46, 0x00}; +//D:8004E7B8 +u8 D_8004E7B8[] = {0x4, 0x5, 0x6, 0x0}; +//D:8004E7BC +struct image_sound isnd_glass = {&D_8004E7B4, &D_8004E7B8, 0x1, 0x3}; + +//D:8004E7C8 +u16 D_8004E7C8[] = {0x4C, 0x00}; +//D:8004E7CC +u8 D_8004E7CC[] = {0, 0, 0, 0}; +//D:8004E7D0 +struct image_sound isnd_water = {&D_8004E7C8, &D_8004E7CC, 0x1, 0x0}; + +//D:8004E7DC +u16 D_8004E7DC[] = {0x4A, 0x00}; +//D:8004E7E0 +u8 D_8004E7E0[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E7E4 +struct image_sound isnd_snow = {&D_8004E7DC, &D_8004E7E0, 0x1, 0x1}; + +//D:8004E7F0 +u16 D_8004E7F0[] = {0xDC, 0xB9}; +//D:8004E7F4 +u8 D_8004E7F4[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E7F8 +struct image_sound isnd_dirt = {&D_8004E7F0, &D_8004E7F4, 0x2, 0x1}; + +//D:8004E804 +u16 D_8004E804[] = {0xE7, 0xE6, 0xE0, 0x00}; +//D:8004E80C +u8 D_8004E80C[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E810 +struct image_sound isnd_mud = {&D_8004E804, &D_8004E80C, 0x3, 0x1}; + +//D:8004E81C +u16 D_8004E81C[] = {0xD4, 0x00}; +//D:8004E820 +u8 D_8004E820[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E824 +struct image_sound isnd_tile = {&D_8004E81C, &D_8004E820, 0x1, 0x1}; + +//D:8004E830 +u16 D_8004E830[] = {0x78, 0xDD}; +//D:8004E834 +u8 D_8004E834[] = {0x1, 0x7, 0x0, 0x0}; +//D:8004E838 +struct image_sound isnd_metalobj = {&D_8004E830, &D_8004E834, 0x2, 0x2}; + +//D:8004E844 +u16 D_8004E844[] = {0x45, 0x00}; +//D:8004E848 +u8 D_8004E848[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E84C +struct image_sound isnd_chr = {&D_8004E844, &D_8004E848, 0x1, 0x1}; + +//D:8004E858 +u16 D_8004E858[] = {0x46, 0x00}; +//D:8004E85C +u8 D_8004E85C[] = {0x11, 0x12, 0x13, 0x0}; +//D:8004E860 +struct image_sound isnd_glass_xlu = {&D_8004E858, &D_8004E85C, 0x1, 0x3}; + +//D:8004E86C +u32 *D_8004E86C[] = { + &isnd_default, + &isnd_stone, + &isnd_wood, + &isnd_metal, + &isnd_glass, + &isnd_water, + &isnd_snow, + &isnd_dirt, + &isnd_mud, + &isnd_tile, + &isnd_metalobj, + &isnd_chr, + &isnd_glass_xlu, + "HIT_DEFAULT", + "HIT_STONE", + "HIT_WOOD", + "HIT_METAL", + "HIT_GLASS", + "HIT_WATER", + "HIT_SNOW", + "HIT_DIRT", + "HIT_MUD", + "HIT_TILE", + "HIT_METALOBJ", + "HIT_CHR", + "HIT_GLASS_XLU" +}; + + + +void nullsub_47(void) { + return; +} + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0CC4C8(void) { + void *temp_a0; + void *temp_v1; + void *phi_v1; + void *phi_a0; + + // Node 0 + phi_v1 = &dword_CODE_bss_8008D148; + phi_a0 = &dword_CODE_bss_8008D2A8; + // Node 1 + temp_a0 = (phi_a0 + 0x50); + phi_v1->unk2C = 0; + temp_a0->unk-3C = 0; + phi_v1->unk58 = 0; + temp_a0->unk-28 = 0; + phi_v1->unk84 = 0; + temp_a0->unk-14 = 0; + temp_v1 = (phi_v1 + 0xb0); + temp_v1->unk-B0 = 0; + temp_a0->unk-50 = 0; + phi_v1 = temp_v1; + phi_a0 = temp_a0; + if (temp_a0 != &dword_CODE_bss_8008D348) + { + goto loop_1; + } + // Node 2 + (void *)0x80090000->unk-2EC0 = -1; + return &dword_CODE_bss_8008D348; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC4C8 +/* 100FF8 7F0CC4C8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D148) +/* 100FFC 7F0CC4CC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D2A8) +/* 101000 7F0CC4D0 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D348) +/* 101004 7F0CC4D4 2442D348 */ addiu $v0, %lo(dword_CODE_bss_8008D348) # addiu $v0, $v0, -0x2cb8 +/* 101008 7F0CC4D8 2484D2A8 */ addiu $a0, %lo(dword_CODE_bss_8008D2A8) # addiu $a0, $a0, -0x2d58 +/* 10100C 7F0CC4DC 2463D148 */ addiu $v1, %lo(dword_CODE_bss_8008D148) # addiu $v1, $v1, -0x2eb8 +.L7F0CC4E0: +/* 101010 7F0CC4E0 24840050 */ addiu $a0, $a0, 0x50 +/* 101014 7F0CC4E4 AC60002C */ sw $zero, 0x2c($v1) +/* 101018 7F0CC4E8 AC80FFC4 */ sw $zero, -0x3c($a0) +/* 10101C 7F0CC4EC AC600058 */ sw $zero, 0x58($v1) +/* 101020 7F0CC4F0 AC80FFD8 */ sw $zero, -0x28($a0) +/* 101024 7F0CC4F4 AC600084 */ sw $zero, 0x84($v1) +/* 101028 7F0CC4F8 AC80FFEC */ sw $zero, -0x14($a0) +/* 10102C 7F0CC4FC 246300B0 */ addiu $v1, $v1, 0xb0 +/* 101030 7F0CC500 AC60FF50 */ sw $zero, -0xb0($v1) +/* 101034 7F0CC504 1482FFF6 */ bne $a0, $v0, .L7F0CC4E0 +/* 101038 7F0CC508 AC80FFB0 */ sw $zero, -0x50($a0) +/* 10103C 7F0CC50C 240EFFFF */ li $t6, -1 +/* 101040 7F0CC510 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D140) +/* 101044 7F0CC514 03E00008 */ jr $ra +/* 101048 7F0CC518 AC2ED140 */ sw $t6, %lo(dword_CODE_bss_8008D140)($at) +) +#endif + + + + + +#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) + { + 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; + } + } + // Node 2 + return (phi_v1_2 - arg2); +} + +#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) { + if (arg0 == dword_CODE_bss_8008D140) { + return 0; + } + dword_CODE_bss_8008D140 = arg0; + return 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC574(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { + void *temp_v0; + ? phi_v1; + + // Node 0 + temp_v0 = ((arg0 * 0x2c) + &dword_CODE_bss_8008D148); + if (((((((((((*temp_v0 == 0) || (arg1 != temp_v0->unk4)) || (arg2 != temp_v0->unk8)) || (arg3 != temp_v0->unkC)) || (arg4 != temp_v0->unk10)) || (arg5 != temp_v0->unk14)) || (arg6 != temp_v0->unk18)) || (arg7 != temp_v0->unk1C)) || (arg8 != temp_v0->unk20)) || (arg9 != temp_v0->unk24)) || (argA != temp_v0->unk28)) + { + // Node 11 + *temp_v0 = 1; + temp_v0->unk4 = arg1; + temp_v0->unk8 = arg2; + temp_v0->unkC = arg3; + temp_v0->unk10 = arg4; + temp_v0->unk14 = arg5; + temp_v0->unk18 = arg6; + temp_v0->unk1C = arg7; + temp_v0->unk20 = arg8; + temp_v0->unk24 = arg9; + temp_v0->unk28 = argA; + phi_v1 = 1; + } + else + { + + } + // Node 12 + return phi_v1; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC574 +/* 1010A4 7F0CC574 00047080 */ sll $t6, $a0, 2 +/* 1010A8 7F0CC578 01C47023 */ subu $t6, $t6, $a0 +/* 1010AC 7F0CC57C 000E7080 */ sll $t6, $t6, 2 +/* 1010B0 7F0CC580 01C47023 */ subu $t6, $t6, $a0 +/* 1010B4 7F0CC584 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D148) +/* 1010B8 7F0CC588 25EFD148 */ addiu $t7, %lo(dword_CODE_bss_8008D148) # addiu $t7, $t7, -0x2eb8 +/* 1010BC 7F0CC58C 000E7080 */ sll $t6, $t6, 2 +/* 1010C0 7F0CC590 01CF1021 */ addu $v0, $t6, $t7 +/* 1010C4 7F0CC594 8C580000 */ lw $t8, ($v0) +/* 1010C8 7F0CC598 00001825 */ move $v1, $zero +/* 1010CC 7F0CC59C 53000027 */ beql $t8, $zero, .L7F0CC63C +/* 1010D0 7F0CC5A0 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010D4 7F0CC5A4 8C590004 */ lw $t9, 4($v0) +/* 1010D8 7F0CC5A8 54B90024 */ bnel $a1, $t9, .L7F0CC63C +/* 1010DC 7F0CC5AC 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010E0 7F0CC5B0 8C480008 */ lw $t0, 8($v0) +/* 1010E4 7F0CC5B4 54C80021 */ bnel $a2, $t0, .L7F0CC63C +/* 1010E8 7F0CC5B8 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010EC 7F0CC5BC 8C49000C */ lw $t1, 0xc($v0) +/* 1010F0 7F0CC5C0 8FAA0010 */ lw $t2, 0x10($sp) +/* 1010F4 7F0CC5C4 54E9001D */ bnel $a3, $t1, .L7F0CC63C +/* 1010F8 7F0CC5C8 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010FC 7F0CC5CC 8C4B0010 */ lw $t3, 0x10($v0) +/* 101100 7F0CC5D0 8FAC0014 */ lw $t4, 0x14($sp) +/* 101104 7F0CC5D4 554B0019 */ bnel $t2, $t3, .L7F0CC63C +/* 101108 7F0CC5D8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10110C 7F0CC5DC 8C4D0014 */ lw $t5, 0x14($v0) +/* 101110 7F0CC5E0 8FAE0018 */ lw $t6, 0x18($sp) +/* 101114 7F0CC5E4 558D0015 */ bnel $t4, $t5, .L7F0CC63C +/* 101118 7F0CC5E8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10111C 7F0CC5EC 8C4F0018 */ lw $t7, 0x18($v0) +/* 101120 7F0CC5F0 8FB8001C */ lw $t8, 0x1c($sp) +/* 101124 7F0CC5F4 55CF0011 */ bnel $t6, $t7, .L7F0CC63C +/* 101128 7F0CC5F8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10112C 7F0CC5FC 8C59001C */ lw $t9, 0x1c($v0) +/* 101130 7F0CC600 8FA80020 */ lw $t0, 0x20($sp) +/* 101134 7F0CC604 5719000D */ bnel $t8, $t9, .L7F0CC63C +/* 101138 7F0CC608 8FAF0010 */ lw $t7, 0x10($sp) +/* 10113C 7F0CC60C 8C490020 */ lw $t1, 0x20($v0) +/* 101140 7F0CC610 8FAA0024 */ lw $t2, 0x24($sp) +/* 101144 7F0CC614 55090009 */ bnel $t0, $t1, .L7F0CC63C +/* 101148 7F0CC618 8FAF0010 */ lw $t7, 0x10($sp) +/* 10114C 7F0CC61C 8C4B0024 */ lw $t3, 0x24($v0) +/* 101150 7F0CC620 8FAC0028 */ lw $t4, 0x28($sp) +/* 101154 7F0CC624 554B0005 */ bnel $t2, $t3, .L7F0CC63C +/* 101158 7F0CC628 8FAF0010 */ lw $t7, 0x10($sp) +/* 10115C 7F0CC62C 8C4D0028 */ lw $t5, 0x28($v0) +/* 101160 7F0CC630 118D0015 */ beq $t4, $t5, .L7F0CC688 +/* 101164 7F0CC634 00000000 */ nop +/* 101168 7F0CC638 8FAF0010 */ lw $t7, 0x10($sp) +.L7F0CC63C: +/* 10116C 7F0CC63C 8FB80014 */ lw $t8, 0x14($sp) +/* 101170 7F0CC640 8FB90018 */ lw $t9, 0x18($sp) +/* 101174 7F0CC644 8FA8001C */ lw $t0, 0x1c($sp) +/* 101178 7F0CC648 8FA90020 */ lw $t1, 0x20($sp) +/* 10117C 7F0CC64C 8FAA0024 */ lw $t2, 0x24($sp) +/* 101180 7F0CC650 8FAB0028 */ lw $t3, 0x28($sp) +/* 101184 7F0CC654 240E0001 */ li $t6, 1 +/* 101188 7F0CC658 24030001 */ li $v1, 1 +/* 10118C 7F0CC65C AC4E0000 */ sw $t6, ($v0) +/* 101190 7F0CC660 AC450004 */ sw $a1, 4($v0) +/* 101194 7F0CC664 AC460008 */ sw $a2, 8($v0) +/* 101198 7F0CC668 AC47000C */ sw $a3, 0xc($v0) +/* 10119C 7F0CC66C AC4F0010 */ sw $t7, 0x10($v0) +/* 1011A0 7F0CC670 AC580014 */ sw $t8, 0x14($v0) +/* 1011A4 7F0CC674 AC590018 */ sw $t9, 0x18($v0) +/* 1011A8 7F0CC678 AC48001C */ sw $t0, 0x1c($v0) +/* 1011AC 7F0CC67C AC490020 */ sw $t1, 0x20($v0) +/* 1011B0 7F0CC680 AC4A0024 */ sw $t2, 0x24($v0) +/* 1011B4 7F0CC684 AC4B0028 */ sw $t3, 0x28($v0) +.L7F0CC688: +/* 1011B8 7F0CC688 03E00008 */ jr $ra +/* 1011BC 7F0CC68C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC690(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + void *temp_v0; + ? phi_v1; + + // Node 0 + temp_v0 = ((arg0 * 0x14) + &dword_CODE_bss_8008D2A8); + if (((((*temp_v0 == 0) || (arg1 != temp_v0->unk4)) || (arg2 != temp_v0->unk8)) || (arg3 != temp_v0->unkC)) || (arg4 != temp_v0->unk10)) + { + // Node 5 + *temp_v0 = 1; + temp_v0->unk4 = arg1; + temp_v0->unk8 = arg2; + temp_v0->unkC = arg3; + temp_v0->unk10 = arg4; + phi_v1 = 1; + } + else + { + + } + // Node 6 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC690 +/* 1011C0 7F0CC690 00047080 */ sll $t6, $a0, 2 +/* 1011C4 7F0CC694 01C47021 */ addu $t6, $t6, $a0 +/* 1011C8 7F0CC698 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D2A8) +/* 1011CC 7F0CC69C 25EFD2A8 */ addiu $t7, %lo(dword_CODE_bss_8008D2A8) # addiu $t7, $t7, -0x2d58 +/* 1011D0 7F0CC6A0 000E7080 */ sll $t6, $t6, 2 +/* 1011D4 7F0CC6A4 01CF1021 */ addu $v0, $t6, $t7 +/* 1011D8 7F0CC6A8 8C580000 */ lw $t8, ($v0) +/* 1011DC 7F0CC6AC 00001825 */ move $v1, $zero +/* 1011E0 7F0CC6B0 240C0001 */ li $t4, 1 +/* 1011E4 7F0CC6B4 5300000F */ beql $t8, $zero, .L7F0CC6F4 +/* 1011E8 7F0CC6B8 8FAD0010 */ lw $t5, 0x10($sp) +/* 1011EC 7F0CC6BC 8C590004 */ lw $t9, 4($v0) +/* 1011F0 7F0CC6C0 54B9000C */ bnel $a1, $t9, .L7F0CC6F4 +/* 1011F4 7F0CC6C4 8FAD0010 */ lw $t5, 0x10($sp) +/* 1011F8 7F0CC6C8 8C480008 */ lw $t0, 8($v0) +/* 1011FC 7F0CC6CC 54C80009 */ bnel $a2, $t0, .L7F0CC6F4 +/* 101200 7F0CC6D0 8FAD0010 */ lw $t5, 0x10($sp) +/* 101204 7F0CC6D4 8C49000C */ lw $t1, 0xc($v0) +/* 101208 7F0CC6D8 8FAA0010 */ lw $t2, 0x10($sp) +/* 10120C 7F0CC6DC 54E90005 */ bnel $a3, $t1, .L7F0CC6F4 +/* 101210 7F0CC6E0 8FAD0010 */ lw $t5, 0x10($sp) +/* 101214 7F0CC6E4 8C4B0010 */ lw $t3, 0x10($v0) +/* 101218 7F0CC6E8 114B0008 */ beq $t2, $t3, .L7F0CC70C +/* 10121C 7F0CC6EC 00000000 */ nop +/* 101220 7F0CC6F0 8FAD0010 */ lw $t5, 0x10($sp) +.L7F0CC6F4: +/* 101224 7F0CC6F4 24030001 */ li $v1, 1 +/* 101228 7F0CC6F8 AC4C0000 */ sw $t4, ($v0) +/* 10122C 7F0CC6FC AC450004 */ sw $a1, 4($v0) +/* 101230 7F0CC700 AC460008 */ sw $a2, 8($v0) +/* 101234 7F0CC704 AC47000C */ sw $a3, 0xc($v0) +/* 101238 7F0CC708 AC4D0010 */ sw $t5, 0x10($v0) +.L7F0CC70C: +/* 10123C 7F0CC70C 03E00008 */ jr $ra +/* 101240 7F0CC710 00601025 */ move $v0, $v1 +) +#endif + + + + + +#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 + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CC994(s32 arg0, s32 arg1) { + s32 sp1C; + + // Node 0 + sp1C = sub_GAME_7F0CC7FC(); + return (sub_GAME_7F0CC8E4(arg0, arg1) * sp1C); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC994 +/* 1014C4 7F0CC994 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 1014C8 7F0CC998 AFBF0014 */ sw $ra, 0x14($sp) +/* 1014CC 7F0CC99C AFA40020 */ sw $a0, 0x20($sp) +/* 1014D0 7F0CC9A0 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 1014D4 7F0CC9A4 AFA50024 */ sw $a1, 0x24($sp) +/* 1014D8 7F0CC9A8 AFA2001C */ sw $v0, 0x1c($sp) +/* 1014DC 7F0CC9AC 8FA40020 */ lw $a0, 0x20($sp) +/* 1014E0 7F0CC9B0 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 1014E4 7F0CC9B4 8FA50024 */ lw $a1, 0x24($sp) +/* 1014E8 7F0CC9B8 8FAE001C */ lw $t6, 0x1c($sp) +/* 1014EC 7F0CC9BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 1014F0 7F0CC9C0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 1014F4 7F0CC9C4 004E0019 */ multu $v0, $t6 +/* 1014F8 7F0CC9C8 00001012 */ mflo $v0 +/* 1014FC 7F0CC9CC 03E00008 */ jr $ra +/* 101500 7F0CC9D0 00000000 */ nop +) +#endif + + + + + +#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) + { + // Node 1 + phi_s2 = temp_t7; + } + else + { + // Node 2 + phi_s2 = 1U; + } + // Node 3 + *arg2 = 0; + if (temp_t6 == 3) + { + // Node 4 + *arg1 = 3; + } + else + { + // Node 5 + if (temp_t6 == 2) + { + // Node 6 + *arg1 = 2; + } + else + { + // Node 7 + if (temp_t6 == 1) + { + // Node 8 + *arg1 = 2; + } + else + { + // Node 9 + *arg1 = 2; + } + } + } + // Node 10 + phi_s0 = 0; + phi_return = 3; + if (phi_s2 > 0) + { +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; + } + } + // Node 12 + return phi_return; +} +#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 + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CCA9C(s32 arg0) { + s32 temp_a0; + s32 temp_t6; + s32 temp_v1; + s32 phi_a0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + temp_a0 = (arg0 + -1); + phi_v1_2 = 0; + if (temp_a0 > 0) + { + // Node 1 + phi_a0 = temp_a0; + phi_v1 = 0; +loop_2: + // Node 2 + temp_t6 = ((s32) phi_a0 >> 1); + temp_v1 = (phi_v1 + 1); + phi_v1_2 = temp_v1; + if (temp_t6 > 0) + { + // Node 3 + phi_a0 = temp_t6; + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (temp_v1 != 8) + { + goto loop_2; + } + } + } + // Node 4 + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCA9C +/* 1015CC 7F0CCA9C 2484FFFF */ addiu $a0, $a0, -1 +/* 1015D0 7F0CCAA0 18800008 */ blez $a0, .L7F0CCAC4 +/* 1015D4 7F0CCAA4 00001825 */ move $v1, $zero +/* 1015D8 7F0CCAA8 24020008 */ li $v0, 8 +/* 1015DC 7F0CCAAC 00047043 */ sra $t6, $a0, 1 +.L7F0CCAB0: +/* 1015E0 7F0CCAB0 01C02025 */ move $a0, $t6 +/* 1015E4 7F0CCAB4 19C00003 */ blez $t6, .L7F0CCAC4 +/* 1015E8 7F0CCAB8 24630001 */ addiu $v1, $v1, 1 +/* 1015EC 7F0CCABC 5462FFFC */ bnel $v1, $v0, .L7F0CCAB0 +/* 1015F0 7F0CCAC0 00047043 */ sra $t6, $a0, 1 +.L7F0CCAC4: +/* 1015F4 7F0CCAC4 03E00008 */ jr $ra +/* 1015F8 7F0CCAC8 00601025 */ move $v0, $v1 +) +#endif + + + + + +u32 sub_GAME_7F0CCACC(s32 arg0) { + if (arg0 == 1) { + return 2; + } + if (arg0 == 2) { + return 1; + } + return 0; +} + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CCAFC(f32 arg0) +{ + s32 temp_f4; + + temp_f4 = (s32) arg0; + if ((f32) temp_f4 < arg0) + { + return temp_f4 + 1; + } + return temp_f4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCAFC +/* 10162C 7F0CCAFC 4600610D */ trunc.w.s $f4, $f12 +/* 101630 7F0CCB00 44022000 */ mfc1 $v0, $f4 +/* 101634 7F0CCB04 00000000 */ nop +/* 101638 7F0CCB08 44823000 */ mtc1 $v0, $f6 +/* 10163C 7F0CCB0C 00401825 */ move $v1, $v0 +/* 101640 7F0CCB10 46803220 */ cvt.s.w $f8, $f6 +/* 101644 7F0CCB14 460C403C */ c.lt.s $f8, $f12 +/* 101648 7F0CCB18 00000000 */ nop +/* 10164C 7F0CCB1C 45000004 */ bc1f .L7F0CCB30 +/* 101650 7F0CCB20 00000000 */ nop +/* 101654 7F0CCB24 24430001 */ addiu $v1, $v0, 1 +/* 101658 7F0CCB28 03E00008 */ jr $ra +/* 10165C 7F0CCB2C 00601025 */ move $v0, $v1 + +.L7F0CCB30: +/* 101660 7F0CCB30 03E00008 */ jr $ra +/* 101664 7F0CCB34 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CCB38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCB38 +/* 101668 7F0CCB38 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 10166C 7F0CCB3C AFBF0014 */ sw $ra, 0x14($sp) +/* 101670 7F0CCB40 AFA40018 */ sw $a0, 0x18($sp) +/* 101674 7F0CCB44 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 101678 7F0CCB48 00002825 */ move $a1, $zero +/* 10167C 7F0CCB4C 8FAE0018 */ lw $t6, 0x18($sp) +/* 101680 7F0CCB50 24010003 */ li $at, 3 +/* 101684 7F0CCB54 00402025 */ move $a0, $v0 +/* 101688 7F0CCB58 8DC30008 */ lw $v1, 8($t6) +/* 10168C 7F0CCB5C 0002C080 */ sll $t8, $v0, 2 +/* 101690 7F0CCB60 306F0003 */ andi $t7, $v1, 3 +/* 101694 7F0CCB64 15E1000D */ bne $t7, $at, .L7F0CCB9C +/* 101698 7F0CCB68 01E01825 */ move $v1, $t7 +/* 10169C 7F0CCB6C 44983000 */ mtc1 $t8, $f6 +/* 1016A0 7F0CCB70 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 1016A4 7F0CCB74 44812000 */ mtc1 $at, $f4 +/* 1016A8 7F0CCB78 46803220 */ cvt.s.w $f8, $f6 +/* 1016AC 7F0CCB7C 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 1016B0 7F0CCB80 44818000 */ mtc1 $at, $f16 +/* 1016B4 7F0CCB84 46082283 */ div.s $f10, $f4, $f8 +/* 1016B8 7F0CCB88 46105302 */ mul.s $f12, $f10, $f16 +/* 1016BC 7F0CCB8C 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 1016C0 7F0CCB90 00000000 */ nop +/* 1016C4 7F0CCB94 1000002B */ b .L7F0CCC44 +/* 1016C8 7F0CCB98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCB9C: +/* 1016CC 7F0CCB9C 24010002 */ li $at, 2 +/* 1016D0 7F0CCBA0 1461000D */ bne $v1, $at, .L7F0CCBD8 +/* 1016D4 7F0CCBA4 0004C880 */ sll $t9, $a0, 2 +/* 1016D8 7F0CCBA8 44993000 */ mtc1 $t9, $f6 +/* 1016DC 7F0CCBAC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 1016E0 7F0CCBB0 44819000 */ mtc1 $at, $f18 +/* 1016E4 7F0CCBB4 46803120 */ cvt.s.w $f4, $f6 +/* 1016E8 7F0CCBB8 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 1016EC 7F0CCBBC 44815000 */ mtc1 $at, $f10 +/* 1016F0 7F0CCBC0 46049203 */ div.s $f8, $f18, $f4 +/* 1016F4 7F0CCBC4 460A4302 */ mul.s $f12, $f8, $f10 +/* 1016F8 7F0CCBC8 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 1016FC 7F0CCBCC 00000000 */ nop +/* 101700 7F0CCBD0 1000001C */ b .L7F0CCC44 +/* 101704 7F0CCBD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCBD8: +/* 101708 7F0CCBD8 24010001 */ li $at, 1 +/* 10170C 7F0CCBDC 1461000E */ bne $v1, $at, .L7F0CCC18 +/* 101710 7F0CCBE0 00044900 */ sll $t1, $a0, 4 +/* 101714 7F0CCBE4 000440C0 */ sll $t0, $a0, 3 +/* 101718 7F0CCBE8 44883000 */ mtc1 $t0, $f6 +/* 10171C 7F0CCBEC 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 101720 7F0CCBF0 44818000 */ mtc1 $at, $f16 +/* 101724 7F0CCBF4 468034A0 */ cvt.s.w $f18, $f6 +/* 101728 7F0CCBF8 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 10172C 7F0CCBFC 44814000 */ mtc1 $at, $f8 +/* 101730 7F0CCC00 46128103 */ div.s $f4, $f16, $f18 +/* 101734 7F0CCC04 46082302 */ mul.s $f12, $f4, $f8 +/* 101738 7F0CCC08 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 10173C 7F0CCC0C 00000000 */ nop +/* 101740 7F0CCC10 1000000C */ b .L7F0CCC44 +/* 101744 7F0CCC14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCC18: +/* 101748 7F0CCC18 44893000 */ mtc1 $t1, $f6 +/* 10174C 7F0CCC1C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 101750 7F0CCC20 44815000 */ mtc1 $at, $f10 +/* 101754 7F0CCC24 46803420 */ cvt.s.w $f16, $f6 +/* 101758 7F0CCC28 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 10175C 7F0CCC2C 44812000 */ mtc1 $at, $f4 +/* 101760 7F0CCC30 46105483 */ div.s $f18, $f10, $f16 +/* 101764 7F0CCC34 46049302 */ mul.s $f12, $f18, $f4 +/* 101768 7F0CCC38 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 10176C 7F0CCC3C 00000000 */ nop +/* 101770 7F0CCC40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCC44: +/* 101774 7F0CCC44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 101778 7F0CCC48 03E00008 */ jr $ra +/* 10177C 7F0CCC4C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CCC50(void) { + +} +#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 +void sub_GAME_7F0CCFBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCFBC +/* 101AEC 7F0CCFBC 27BDFFF8 */ addiu $sp, $sp, -8 +/* 101AF0 7F0CCFC0 AFB00004 */ sw $s0, 4($sp) +/* 101AF4 7F0CCFC4 90C2000B */ lbu $v0, 0xb($a2) +/* 101AF8 7F0CCFC8 00808025 */ move $s0, $a0 +/* 101AFC 7F0CCFCC 00001825 */ move $v1, $zero +/* 101B00 7F0CCFD0 00027142 */ srl $t6, $v0, 5 +/* 101B04 7F0CCFD4 11C00003 */ beqz $t6, .L7F0CCFE4 +/* 101B08 7F0CCFD8 00000000 */ nop +/* 101B0C 7F0CCFDC 10000001 */ b .L7F0CCFE4 +/* 101B10 7F0CCFE0 25C3FFFF */ addiu $v1, $t6, -1 +.L7F0CCFE4: +/* 101B14 7F0CCFE4 50E0001A */ beql $a3, $zero, .L7F0CD050 +/* 101B18 7F0CCFE8 8CAD0000 */ lw $t5, ($a1) +/* 101B1C 7F0CCFEC 10A0000D */ beqz $a1, .L7F0CD024 +/* 101B20 7F0CCFF0 02001025 */ move $v0, $s0 +/* 101B24 7F0CCFF4 8CA40000 */ lw $a0, ($a1) +/* 101B28 7F0CCFF8 2401C7FF */ li $at, -14337 +/* 101B2C 7F0CCFFC 0003C2C0 */ sll $t8, $v1, 0xb +/* 101B30 7F0CD000 00817824 */ and $t7, $a0, $at +/* 101B34 7F0CD004 01F81025 */ or $v0, $t7, $t8 +/* 101B38 7F0CD008 50440018 */ beql $v0, $a0, .L7F0CD06C +/* 101B3C 7F0CD00C 02001025 */ move $v0, $s0 +/* 101B40 7F0CD010 AE020000 */ sw $v0, ($s0) +/* 101B44 7F0CD014 8CB90004 */ lw $t9, 4($a1) +/* 101B48 7F0CD018 26100008 */ addiu $s0, $s0, 8 +/* 101B4C 7F0CD01C 10000012 */ b .L7F0CD068 +/* 101B50 7F0CD020 AE19FFFC */ sw $t9, -4($s0) +.L7F0CD024: +/* 101B54 7F0CD024 30680007 */ andi $t0, $v1, 7 +/* 101B58 7F0CD028 00084AC0 */ sll $t1, $t0, 0xb +/* 101B5C 7F0CD02C 3C01BB00 */ lui $at, 0xbb00 +/* 101B60 7F0CD030 01215025 */ or $t2, $t1, $at +/* 101B64 7F0CD034 354B0001 */ ori $t3, $t2, 1 +/* 101B68 7F0CD038 240CFFFF */ li $t4, -1 +/* 101B6C 7F0CD03C AC4C0004 */ sw $t4, 4($v0) +/* 101B70 7F0CD040 AC4B0000 */ sw $t3, ($v0) +/* 101B74 7F0CD044 10000008 */ b .L7F0CD068 +/* 101B78 7F0CD048 26100008 */ addiu $s0, $s0, 8 +/* 101B7C 7F0CD04C 8CAD0000 */ lw $t5, ($a1) +.L7F0CD050: +/* 101B80 7F0CD050 2401C7FF */ li $at, -14337 +/* 101B84 7F0CD054 0003C2C0 */ sll $t8, $v1, 0xb +/* 101B88 7F0CD058 01A17024 */ and $t6, $t5, $at +/* 101B8C 7F0CD05C ACAE0000 */ sw $t6, ($a1) +/* 101B90 7F0CD060 01D8C825 */ or $t9, $t6, $t8 +/* 101B94 7F0CD064 ACB90000 */ sw $t9, ($a1) +.L7F0CD068: +/* 101B98 7F0CD068 02001025 */ move $v0, $s0 +.L7F0CD06C: +/* 101B9C 7F0CD06C 8FB00004 */ lw $s0, 4($sp) +/* 101BA0 7F0CD070 03E00008 */ jr $ra +/* 101BA4 7F0CD074 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void expland_c0_DL_psuedocommands(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expland_c0_DL_psuedocommands +/* 101BA8 7F0CD078 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 101BAC 7F0CD07C AFB00034 */ sw $s0, 0x34($sp) +/* 101BB0 7F0CD080 00808025 */ move $s0, $a0 +/* 101BB4 7F0CD084 AFB10038 */ sw $s1, 0x38($sp) +/* 101BB8 7F0CD088 00A08825 */ move $s1, $a1 +/* 101BBC 7F0CD08C AFBF003C */ sw $ra, 0x3c($sp) +/* 101BC0 7F0CD090 AFA60098 */ sw $a2, 0x98($sp) +/* 101BC4 7F0CD094 00A02025 */ move $a0, $a1 +/* 101BC8 7F0CD098 27A5008C */ addiu $a1, $sp, 0x8c +/* 101BCC 7F0CD09C 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 101BD0 7F0CD0A0 27A60088 */ addiu $a2, $sp, 0x88 +/* 101BD4 7F0CD0A4 8E2E000C */ lw $t6, 0xc($s1) +/* 101BD8 7F0CD0A8 24040007 */ li $a0, 7 +/* 101BDC 7F0CD0AC 02001025 */ move $v0, $s0 +/* 101BE0 7F0CD0B0 000E7F82 */ srl $t7, $t6, 0x1e +/* 101BE4 7F0CD0B4 15E0004E */ bnez $t7, .L7F0CD1F0 +/* 101BE8 7F0CD0B8 3C01FD00 */ lui $at, 0xfd00 +/* 101BEC 7F0CD0BC 8E380008 */ lw $t8, 8($s1) +/* 101BF0 7F0CD0C0 8FAF008C */ lw $t7, 0x8c($sp) +/* 101BF4 7F0CD0C4 3C01FD00 */ lui $at, 0xfd00 +/* 101BF8 7F0CD0C8 0018CEC0 */ sll $t9, $t8, 0x1b +/* 101BFC 7F0CD0CC 00195F42 */ srl $t3, $t9, 0x1d +/* 101C00 7F0CD0D0 316C0007 */ andi $t4, $t3, 7 +/* 101C04 7F0CD0D4 000C6D40 */ sll $t5, $t4, 0x15 +/* 101C08 7F0CD0D8 31F80003 */ andi $t8, $t7, 3 +/* 101C0C 7F0CD0DC 0018CCC0 */ sll $t9, $t8, 0x13 +/* 101C10 7F0CD0E0 01A17025 */ or $t6, $t5, $at +/* 101C14 7F0CD0E4 01D95825 */ or $t3, $t6, $t9 +/* 101C18 7F0CD0E8 02001025 */ move $v0, $s0 +/* 101C1C 7F0CD0EC AC4B0000 */ sw $t3, ($v0) +/* 101C20 7F0CD0F0 8E2C0004 */ lw $t4, 4($s1) +/* 101C24 7F0CD0F4 26100008 */ addiu $s0, $s0, 8 +/* 101C28 7F0CD0F8 00003825 */ move $a3, $zero +/* 101C2C 7F0CD0FC AC4C0004 */ sw $t4, 4($v0) +/* 101C30 7F0CD100 8E250008 */ lw $a1, 8($s1) +/* 101C34 7F0CD104 8FB80098 */ lw $t8, 0x98($sp) +/* 101C38 7F0CD108 AFA00028 */ sw $zero, 0x28($sp) +/* 101C3C 7F0CD10C 00056EC0 */ sll $t5, $a1, 0x1b +/* 101C40 7F0CD110 000D2F42 */ srl $a1, $t5, 0x1d +/* 101C44 7F0CD114 AFA00024 */ sw $zero, 0x24($sp) +/* 101C48 7F0CD118 AFA00020 */ sw $zero, 0x20($sp) +/* 101C4C 7F0CD11C AFA0001C */ sw $zero, 0x1c($sp) +/* 101C50 7F0CD120 AFA00018 */ sw $zero, 0x18($sp) +/* 101C54 7F0CD124 AFA00014 */ sw $zero, 0x14($sp) +/* 101C58 7F0CD128 8FA6008C */ lw $a2, 0x8c($sp) +/* 101C5C 7F0CD12C 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101C60 7F0CD130 AFB80010 */ sw $t8, 0x10($sp) +/* 101C64 7F0CD134 10400013 */ beqz $v0, .L7F0CD184 +/* 101C68 7F0CD138 3C0A0700 */ lui $t2, 0x700 +/* 101C6C 7F0CD13C 8E2E0008 */ lw $t6, 8($s1) +/* 101C70 7F0CD140 8FB8008C */ lw $t8, 0x8c($sp) +/* 101C74 7F0CD144 3C01F500 */ lui $at, 0xf500 +/* 101C78 7F0CD148 000ECEC0 */ sll $t9, $t6, 0x1b +/* 101C7C 7F0CD14C 00195F42 */ srl $t3, $t9, 0x1d +/* 101C80 7F0CD150 316C0007 */ andi $t4, $t3, 7 +/* 101C84 7F0CD154 000C6D40 */ sll $t5, $t4, 0x15 +/* 101C88 7F0CD158 8FAC0098 */ lw $t4, 0x98($sp) +/* 101C8C 7F0CD15C 01A17825 */ or $t7, $t5, $at +/* 101C90 7F0CD160 330E0003 */ andi $t6, $t8, 3 +/* 101C94 7F0CD164 000ECCC0 */ sll $t9, $t6, 0x13 +/* 101C98 7F0CD168 02001025 */ move $v0, $s0 +/* 101C9C 7F0CD16C 01F95825 */ or $t3, $t7, $t9 +/* 101CA0 7F0CD170 318D01FF */ andi $t5, $t4, 0x1ff +/* 101CA4 7F0CD174 016DC025 */ or $t8, $t3, $t5 +/* 101CA8 7F0CD178 AC580000 */ sw $t8, ($v0) +/* 101CAC 7F0CD17C AC4A0004 */ sw $t2, 4($v0) +/* 101CB0 7F0CD180 26100008 */ addiu $s0, $s0, 8 +.L7F0CD184: /*LoadTexture(){gDPLoadSync(); gDPLoadBlock();}*/ +/* 101CB4 7F0CD184 02001025 */ move $v0, $s0 +/* 101CB8 7F0CD188 26100008 */ addiu $s0, $s0, 8 +/* 101CBC 7F0CD18C 3C0EE600 */ lui $t6, 0xe600 +/* 101CC0 7F0CD190 AC4E0000 */ sw $t6, ($v0) +/* 101CC4 7F0CD194 AC400004 */ sw $zero, 4($v0) +/* 101CC8 7F0CD198 02002825 */ move $a1, $s0 +/* 101CCC 7F0CD19C 3C0FF300 */ lui $t7, 0xf300 +/* 101CD0 7F0CD1A0 ACAF0000 */ sw $t7, ($a1) +/* 101CD4 7F0CD1A4 8FA30088 */ lw $v1, 0x88($sp) +/* 101CD8 7F0CD1A8 26100008 */ addiu $s0, $s0, 8 +/* 101CDC 7F0CD1AC 3C0A0700 */ lui $t2, 0x700 +/* 101CE0 7F0CD1B0 2463FFFF */ addiu $v1, $v1, -1 +/* 101CE4 7F0CD1B4 286107FF */ slti $at, $v1, 0x7ff +/* 101CE8 7F0CD1B8 10200003 */ beqz $at, .L7F0CD1C8 +/* 101CEC 7F0CD1BC 02001025 */ move $v0, $s0 +/* 101CF0 7F0CD1C0 10000002 */ b .L7F0CD1CC +/* 101CF4 7F0CD1C4 00602025 */ move $a0, $v1 +.L7F0CD1C8: +/* 101CF8 7F0CD1C8 240407FF */ li $a0, 2047 +.L7F0CD1CC: +/* 101CFC 7F0CD1CC 30990FFF */ andi $t9, $a0, 0xfff +/* 101D00 7F0CD1D0 00196300 */ sll $t4, $t9, 0xc +/* 101D04 7F0CD1D4 018A5825 */ or $t3, $t4, $t2 +/* 101D08 7F0CD1D8 ACAB0004 */ sw $t3, 4($a1) +/* 101D0C 7F0CD1DC 3C0DE700 */ lui $t5, 0xe700 +/* 101D10 7F0CD1E0 AC4D0000 */ sw $t5, ($v0) +/* 101D14 7F0CD1E4 AC400004 */ sw $zero, 4($v0) +/* 101D18 7F0CD1E8 1000008B */ b .L7F0CD418 +/* 101D1C 7F0CD1EC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD1F0: +/* 101D20 7F0CD1F0 8E380008 */ lw $t8, 8($s1) +/* 101D24 7F0CD1F4 8FAD008C */ lw $t5, 0x8c($sp) +/* 101D28 7F0CD1F8 26100008 */ addiu $s0, $s0, 8 +/* 101D2C 7F0CD1FC 001876C0 */ sll $t6, $t8, 0x1b +/* 101D30 7F0CD200 000E7F42 */ srl $t7, $t6, 0x1d +/* 101D34 7F0CD204 31F90007 */ andi $t9, $t7, 7 +/* 101D38 7F0CD208 00196540 */ sll $t4, $t9, 0x15 +/* 101D3C 7F0CD20C 31B80003 */ andi $t8, $t5, 3 +/* 101D40 7F0CD210 001874C0 */ sll $t6, $t8, 0x13 +/* 101D44 7F0CD214 01815825 */ or $t3, $t4, $at +/* 101D48 7F0CD218 016E7825 */ or $t7, $t3, $t6 +/* 101D4C 7F0CD21C AC4F0000 */ sw $t7, ($v0) +/* 101D50 7F0CD220 8E390004 */ lw $t9, 4($s1) +/* 101D54 7F0CD224 24040007 */ li $a0, 7 +/* 101D58 7F0CD228 00003825 */ move $a3, $zero +/* 101D5C 7F0CD22C AC590004 */ sw $t9, 4($v0) +/* 101D60 7F0CD230 8E250008 */ lw $a1, 8($s1) +/* 101D64 7F0CD234 8FB80098 */ lw $t8, 0x98($sp) +/* 101D68 7F0CD238 AFA00028 */ sw $zero, 0x28($sp) +/* 101D6C 7F0CD23C 000566C0 */ sll $t4, $a1, 0x1b +/* 101D70 7F0CD240 000C2F42 */ srl $a1, $t4, 0x1d +/* 101D74 7F0CD244 AFA00024 */ sw $zero, 0x24($sp) +/* 101D78 7F0CD248 AFA00020 */ sw $zero, 0x20($sp) +/* 101D7C 7F0CD24C AFA0001C */ sw $zero, 0x1c($sp) +/* 101D80 7F0CD250 AFA00018 */ sw $zero, 0x18($sp) +/* 101D84 7F0CD254 AFA00014 */ sw $zero, 0x14($sp) +/* 101D88 7F0CD258 8FA6008C */ lw $a2, 0x8c($sp) +/* 101D8C 7F0CD25C 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101D90 7F0CD260 AFB80010 */ sw $t8, 0x10($sp) +/* 101D94 7F0CD264 10400014 */ beqz $v0, .L7F0CD2B8 +/* 101D98 7F0CD268 00003025 */ move $a2, $zero +/* 101D9C 7F0CD26C 8E2B0008 */ lw $t3, 8($s1) +/* 101DA0 7F0CD270 8FB8008C */ lw $t8, 0x8c($sp) +/* 101DA4 7F0CD274 3C01F500 */ lui $at, 0xf500 +/* 101DA8 7F0CD278 000B76C0 */ sll $t6, $t3, 0x1b +/* 101DAC 7F0CD27C 000E7F42 */ srl $t7, $t6, 0x1d +/* 101DB0 7F0CD280 31F90007 */ andi $t9, $t7, 7 +/* 101DB4 7F0CD284 00196540 */ sll $t4, $t9, 0x15 +/* 101DB8 7F0CD288 8FB90098 */ lw $t9, 0x98($sp) +/* 101DBC 7F0CD28C 01816825 */ or $t5, $t4, $at +/* 101DC0 7F0CD290 330B0003 */ andi $t3, $t8, 3 +/* 101DC4 7F0CD294 000B74C0 */ sll $t6, $t3, 0x13 +/* 101DC8 7F0CD298 02001025 */ move $v0, $s0 +/* 101DCC 7F0CD29C 01AE7825 */ or $t7, $t5, $t6 +/* 101DD0 7F0CD2A0 332C01FF */ andi $t4, $t9, 0x1ff +/* 101DD4 7F0CD2A4 3C0A0700 */ lui $t2, 0x700 +/* 101DD8 7F0CD2A8 01ECC025 */ or $t8, $t7, $t4 +/* 101DDC 7F0CD2AC AC580000 */ sw $t8, ($v0) +/* 101DE0 7F0CD2B0 AC4A0004 */ sw $t2, 4($v0) +/* 101DE4 7F0CD2B4 26100008 */ addiu $s0, $s0, 8 +.L7F0CD2B8: +/* 101DE8 7F0CD2B8 02001025 */ move $v0, $s0 +/* 101DEC 7F0CD2BC 26100008 */ addiu $s0, $s0, 8 +/* 101DF0 7F0CD2C0 3C0BE600 */ lui $t3, 0xe600 +/* 101DF4 7F0CD2C4 AC4B0000 */ sw $t3, ($v0) +/* 101DF8 7F0CD2C8 AC400004 */ sw $zero, 4($v0) +/* 101DFC 7F0CD2CC 02002825 */ move $a1, $s0 +/* 101E00 7F0CD2D0 3C0DF300 */ lui $t5, 0xf300 +/* 101E04 7F0CD2D4 ACAD0000 */ sw $t5, ($a1) +/* 101E08 7F0CD2D8 8FA30088 */ lw $v1, 0x88($sp) +/* 101E0C 7F0CD2DC 26100008 */ addiu $s0, $s0, 8 +/* 101E10 7F0CD2E0 3C0A0700 */ lui $t2, 0x700 +/* 101E14 7F0CD2E4 2463FFFF */ addiu $v1, $v1, -1 +/* 101E18 7F0CD2E8 286107FF */ slti $at, $v1, 0x7ff +/* 101E1C 7F0CD2EC 10200003 */ beqz $at, .L7F0CD2FC +/* 101E20 7F0CD2F0 02001025 */ move $v0, $s0 +/* 101E24 7F0CD2F4 10000002 */ b .L7F0CD300 +/* 101E28 7F0CD2F8 00602025 */ move $a0, $v1 +.L7F0CD2FC: +/* 101E2C 7F0CD2FC 240407FF */ li $a0, 2047 +.L7F0CD300: +/* 101E30 7F0CD300 308E0FFF */ andi $t6, $a0, 0xfff +/* 101E34 7F0CD304 000ECB00 */ sll $t9, $t6, 0xc +/* 101E38 7F0CD308 032A7825 */ or $t7, $t9, $t2 +/* 101E3C 7F0CD30C ACAF0004 */ sw $t7, 4($a1) +/* 101E40 7F0CD310 3C0CE700 */ lui $t4, 0xe700 +/* 101E44 7F0CD314 AC4C0000 */ sw $t4, ($v0) +/* 101E48 7F0CD318 AC400004 */ sw $zero, 4($v0) +/* 101E4C 7F0CD31C 9238000A */ lbu $t8, 0xa($s1) +/* 101E50 7F0CD320 8FA80088 */ lw $t0, 0x88($sp) +/* 101E54 7F0CD324 240B03FF */ li $t3, 1023 +/* 101E58 7F0CD328 01781823 */ subu $v1, $t3, $t8 +/* 101E5C 7F0CD32C 0068082B */ sltu $at, $v1, $t0 +/* 101E60 7F0CD330 10200003 */ beqz $at, .L7F0CD340 +/* 101E64 7F0CD334 26100008 */ addiu $s0, $s0, 8 +/* 101E68 7F0CD338 10000002 */ b .L7F0CD344 +/* 101E6C 7F0CD33C 00604825 */ move $t1, $v1 +.L7F0CD340: +/* 101E70 7F0CD340 00004825 */ move $t1, $zero +.L7F0CD344: +/* 101E74 7F0CD344 01094023 */ subu $t0, $t0, $t1 +/* 101E78 7F0CD348 240E0100 */ li $t6, 256 +/* 101E7C 7F0CD34C AFAE0010 */ sw $t6, 0x10($sp) +/* 101E80 7F0CD350 AFA80070 */ sw $t0, 0x70($sp) +/* 101E84 7F0CD354 24040007 */ li $a0, 7 +/* 101E88 7F0CD358 00002825 */ move $a1, $zero +/* 101E8C 7F0CD35C 24070001 */ li $a3, 1 +/* 101E90 7F0CD360 AFA00014 */ sw $zero, 0x14($sp) +/* 101E94 7F0CD364 AFA00018 */ sw $zero, 0x18($sp) +/* 101E98 7F0CD368 AFA0001C */ sw $zero, 0x1c($sp) +/* 101E9C 7F0CD36C AFA00020 */ sw $zero, 0x20($sp) +/* 101EA0 7F0CD370 AFA00024 */ sw $zero, 0x24($sp) +/* 101EA4 7F0CD374 AFA00028 */ sw $zero, 0x28($sp) +/* 101EA8 7F0CD378 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101EAC 7F0CD37C AFA9006C */ sw $t1, 0x6c($sp) +/* 101EB0 7F0CD380 8FA80070 */ lw $t0, 0x70($sp) +/* 101EB4 7F0CD384 8FA9006C */ lw $t1, 0x6c($sp) +/* 101EB8 7F0CD388 10400007 */ beqz $v0, .L7F0CD3A8 +/* 101EBC 7F0CD38C 3C0A0700 */ lui $t2, 0x700 +/* 101EC0 7F0CD390 02001025 */ move $v0, $s0 +/* 101EC4 7F0CD394 3C19F500 */ lui $t9, (0xF5000300 >> 16) # lui $t9, 0xf500 +/* 101EC8 7F0CD398 37390300 */ ori $t9, (0xF5000300 & 0xFFFF) # ori $t9, $t9, 0x300 +/* 101ECC 7F0CD39C AC590000 */ sw $t9, ($v0) +/* 101ED0 7F0CD3A0 AC4A0004 */ sw $t2, 4($v0) +/* 101ED4 7F0CD3A4 26100008 */ addiu $s0, $s0, 8 +.L7F0CD3A8: +/* 101ED8 7F0CD3A8 02001025 */ move $v0, $s0 +/* 101EDC 7F0CD3AC 310B03FF */ andi $t3, $t0, 0x3ff +/* 101EE0 7F0CD3B0 000BC380 */ sll $t8, $t3, 0xe +/* 101EE4 7F0CD3B4 312403FF */ andi $a0, $t1, 0x3ff +/* 101EE8 7F0CD3B8 3C01F000 */ lui $at, 0xf000 +/* 101EEC 7F0CD3BC 26100008 */ addiu $s0, $s0, 8 +/* 101EF0 7F0CD3C0 3C0FE600 */ lui $t7, 0xe600 +/* 101EF4 7F0CD3C4 03016825 */ or $t5, $t8, $at +/* 101EF8 7F0CD3C8 00046080 */ sll $t4, $a0, 2 +/* 101EFC 7F0CD3CC AC4F0000 */ sw $t7, ($v0) +/* 101F00 7F0CD3D0 AC400004 */ sw $zero, 4($v0) +/* 101F04 7F0CD3D4 01AC7025 */ or $t6, $t5, $t4 +/* 101F08 7F0CD3D8 02001825 */ move $v1, $s0 +/* 101F0C 7F0CD3DC AC6E0000 */ sw $t6, ($v1) +/* 101F10 7F0CD3E0 9239000A */ lbu $t9, 0xa($s1) +/* 101F14 7F0CD3E4 01802025 */ move $a0, $t4 +/* 101F18 7F0CD3E8 26100008 */ addiu $s0, $s0, 8 +/* 101F1C 7F0CD3EC 03287821 */ addu $t7, $t9, $t0 +/* 101F20 7F0CD3F0 31EC03FF */ andi $t4, $t7, 0x3ff +/* 101F24 7F0CD3F4 000C5B80 */ sll $t3, $t4, 0xe +/* 101F28 7F0CD3F8 016AC025 */ or $t8, $t3, $t2 +/* 101F2C 7F0CD3FC 03046825 */ or $t5, $t8, $a0 +/* 101F30 7F0CD400 02002825 */ move $a1, $s0 +/* 101F34 7F0CD404 AC6D0004 */ sw $t5, 4($v1) +/* 101F38 7F0CD408 3C0EE700 */ lui $t6, 0xe700 +/* 101F3C 7F0CD40C ACAE0000 */ sw $t6, ($a1) +/* 101F40 7F0CD410 ACA00004 */ sw $zero, 4($a1) +/* 101F44 7F0CD414 26100008 */ addiu $s0, $s0, 8 +.L7F0CD418: +/* 101F48 7F0CD418 8FBF003C */ lw $ra, 0x3c($sp) +/* 101F4C 7F0CD41C 02001025 */ move $v0, $s0 +/* 101F50 7F0CD420 8FB00034 */ lw $s0, 0x34($sp) +/* 101F54 7F0CD424 8FB10038 */ lw $s1, 0x38($sp) +/* 101F58 7F0CD428 03E00008 */ jr $ra +/* 101F5C 7F0CD42C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CD430(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CD430 +/* 101F60 7F0CD430 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 101F64 7F0CD434 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 101F68 7F0CD438 AFBF005C */ sw $ra, 0x5c($sp) +/* 101F6C 7F0CD43C AFBE0058 */ sw $fp, 0x58($sp) +/* 101F70 7F0CD440 AFB70054 */ sw $s7, 0x54($sp) +/* 101F74 7F0CD444 AFB60050 */ sw $s6, 0x50($sp) +/* 101F78 7F0CD448 AFB5004C */ sw $s5, 0x4c($sp) +/* 101F7C 7F0CD44C AFB40048 */ sw $s4, 0x48($sp) +/* 101F80 7F0CD450 AFB30044 */ sw $s3, 0x44($sp) +/* 101F84 7F0CD454 AFB20040 */ sw $s2, 0x40($sp) +/* 101F88 7F0CD458 AFB1003C */ sw $s1, 0x3c($sp) +/* 101F8C 7F0CD45C AFB00038 */ sw $s0, 0x38($sp) +/* 101F90 7F0CD460 AFA600C0 */ sw $a2, 0xc0($sp) +/* 101F94 7F0CD464 AFA700C4 */ sw $a3, 0xc4($sp) +/* 101F98 7F0CD468 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 101F9C 7F0CD46C 90A2000B */ lbu $v0, 0xb($a1) +/* 101FA0 7F0CD470 8FB000CC */ lw $s0, 0xcc($sp) +/* 101FA4 7F0CD474 00A0A825 */ move $s5, $a1 +/* 101FA8 7F0CD478 00027942 */ srl $t7, $v0, 5 +/* 101FAC 7F0CD47C 01F04021 */ addu $t0, $t7, $s0 +/* 101FB0 7F0CD480 0208082A */ slt $at, $s0, $t0 +/* 101FB4 7F0CD484 102000BC */ beqz $at, .L7F0CD778 +/* 101FB8 7F0CD488 0080B025 */ move $s6, $a0 +/* 101FBC 7F0CD48C 02109023 */ subu $s2, $s0, $s0 +/* 101FC0 7F0CD490 AFB000AC */ sw $s0, 0xac($sp) +/* 101FC4 7F0CD494 AFA80064 */ sw $t0, 0x64($sp) +.L7F0CD498: +/* 101FC8 7F0CD498 02A02025 */ move $a0, $s5 +/* 101FCC 7F0CD49C 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 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 +/* 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 +/* 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 +/* 102010 7F0CD4E0 02402825 */ move $a1, $s2 +/* 102014 7F0CD4E4 AFA20080 */ sw $v0, 0x80($sp) +/* 102018 7F0CD4E8 8EA3000C */ lw $v1, 0xc($s5) +/* 10201C 7F0CD4EC 0003F080 */ sll $fp, $v1, 2 +/* 102020 7F0CD4F0 00032782 */ srl $a0, $v1, 0x1e +/* 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 +/* 102034 7F0CD504 03202025 */ move $a0, $t9 +/* 102038 7F0CD508 1040000A */ beqz $v0, .L7F0CD534 +/* 10203C 7F0CD50C 02003825 */ move $a3, $s0 +/* 102040 7F0CD510 3C09BA00 */ lui $t1, (0xBA000E02 >> 16) # lui $t1, 0xba00 +/* 102044 7F0CD514 35290E02 */ ori $t1, (0xBA000E02 & 0xFFFF) # ori $t1, $t1, 0xe02 +/* 102048 7F0CD518 02C01025 */ move $v0, $s6 +/* 10204C 7F0CD51C AC490000 */ sw $t1, ($v0) +/* 102050 7F0CD520 8EAA000C */ lw $t2, 0xc($s5) +/* 102054 7F0CD524 26D60008 */ addiu $s6, $s6, 8 +/* 102058 7F0CD528 000A5F82 */ srl $t3, $t2, 0x1e +/* 10205C 7F0CD52C 000B6380 */ sll $t4, $t3, 0xe +/* 102060 7F0CD530 AC4C0004 */ sw $t4, 4($v0) +.L7F0CD534: +/* 102064 7F0CD534 8EA20008 */ lw $v0, 8($s5) +/* 102068 7F0CD538 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 10206C 7F0CD53C 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 102070 7F0CD540 8FB800C4 */ lw $t8, 0xc4($sp) +/* 102074 7F0CD544 00022EC0 */ sll $a1, $v0, 0x1b +/* 102078 7F0CD548 00056F42 */ srl $t5, $a1, 0x1d +/* 10207C 7F0CD54C 01A02825 */ move $a1, $t5 +/* 102080 7F0CD550 AFB20028 */ sw $s2, 0x28($sp) +/* 102084 7F0CD554 AFB20024 */ sw $s2, 0x24($sp) +/* 102088 7F0CD558 AFB40020 */ sw $s4, 0x20($sp) +/* 10208C 7F0CD55C AFB3001C */ sw $s3, 0x1c($sp) +/* 102090 7F0CD560 8FA400AC */ lw $a0, 0xac($sp) +/* 102094 7F0CD564 30460003 */ andi $a2, $v0, 3 +/* 102098 7F0CD568 AFAE0010 */ sw $t6, 0x10($sp) +/* 10209C 7F0CD56C AFAF0014 */ sw $t7, 0x14($sp) +/* 1020A0 7F0CD570 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1020A4 7F0CD574 AFB80018 */ sw $t8, 0x18($sp) +/* 1020A8 7F0CD578 1040002D */ beqz $v0, .L7F0CD630 +/* 1020AC 7F0CD57C 02C08825 */ move $s1, $s6 +/* 1020B0 7F0CD580 8EAD0008 */ lw $t5, 8($s5) +/* 1020B4 7F0CD584 3C01F500 */ lui $at, 0xf500 +/* 1020B8 7F0CD588 26D60008 */ addiu $s6, $s6, 8 +/* 1020BC 7F0CD58C 000DCEC0 */ sll $t9, $t5, 0x1b +/* 1020C0 7F0CD590 00194F42 */ srl $t1, $t9, 0x1d +/* 1020C4 7F0CD594 312A0007 */ andi $t2, $t1, 7 +/* 1020C8 7F0CD598 000A5D40 */ sll $t3, $t2, 0x15 +/* 1020CC 7F0CD59C 01616025 */ or $t4, $t3, $at +/* 1020D0 7F0CD5A0 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 1020D4 7F0CD5A4 31AE0003 */ andi $t6, $t5, 3 +/* 1020D8 7F0CD5A8 000E7CC0 */ sll $t7, $t6, 0x13 +/* 1020DC 7F0CD5AC 321901FF */ andi $t9, $s0, 0x1ff +/* 1020E0 7F0CD5B0 00194A40 */ sll $t1, $t9, 9 +/* 1020E4 7F0CD5B4 018FC025 */ or $t8, $t4, $t7 +/* 1020E8 7F0CD5B8 03095025 */ or $t2, $t8, $t1 +/* 1020EC 7F0CD5BC 316D01FF */ andi $t5, $t3, 0x1ff +/* 1020F0 7F0CD5C0 014D7025 */ or $t6, $t2, $t5 +/* 1020F4 7F0CD5C4 AE2E0000 */ sw $t6, ($s1) +/* 1020F8 7F0CD5C8 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 1020FC 7F0CD5CC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 102100 7F0CD5D0 00408025 */ move $s0, $v0 +/* 102104 7F0CD5D4 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 102108 7F0CD5D8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 10210C 7F0CD5DC 8FB900AC */ lw $t9, 0xac($sp) +/* 102110 7F0CD5E0 304C0003 */ andi $t4, $v0, 3 +/* 102114 7F0CD5E4 000C7A00 */ sll $t7, $t4, 8 +/* 102118 7F0CD5E8 33380007 */ andi $t8, $t9, 7 +/* 10211C 7F0CD5EC 00184E00 */ sll $t1, $t8, 0x18 +/* 102120 7F0CD5F0 01E95825 */ or $t3, $t7, $t1 +/* 102124 7F0CD5F4 320A0003 */ andi $t2, $s0, 3 +/* 102128 7F0CD5F8 000A6C80 */ sll $t5, $t2, 0x12 +/* 10212C 7F0CD5FC 016D7025 */ or $t6, $t3, $t5 +/* 102130 7F0CD600 328C000F */ andi $t4, $s4, 0xf +/* 102134 7F0CD604 000CCB80 */ sll $t9, $t4, 0xe +/* 102138 7F0CD608 324F000F */ andi $t7, $s2, 0xf +/* 10213C 7F0CD60C 000F4A80 */ sll $t1, $t7, 0xa +/* 102140 7F0CD610 01D9C025 */ or $t8, $t6, $t9 +/* 102144 7F0CD614 326B000F */ andi $t3, $s3, 0xf +/* 102148 7F0CD618 000B6900 */ sll $t5, $t3, 4 +/* 10214C 7F0CD61C 03095025 */ or $t2, $t8, $t1 +/* 102150 7F0CD620 014D6025 */ or $t4, $t2, $t5 +/* 102154 7F0CD624 324E000F */ andi $t6, $s2, 0xf +/* 102158 7F0CD628 018EC825 */ or $t9, $t4, $t6 +/* 10215C 7F0CD62C AE390004 */ sw $t9, 4($s1) +.L7F0CD630: +/* 102160 7F0CD630 8FA200C8 */ lw $v0, 0xc8($sp) +/* 102164 7F0CD634 24030002 */ li $v1, 2 +/* 102168 7F0CD638 02A02025 */ move $a0, $s5 +/* 10216C 7F0CD63C 14430005 */ bne $v0, $v1, .L7F0CD654 +/* 102170 7F0CD640 02402825 */ move $a1, $s2 +/* 102174 7F0CD644 57C00004 */ bnezl $fp, .L7F0CD658 +/* 102178 7F0CD648 00008025 */ move $s0, $zero +/* 10217C 7F0CD64C 10000002 */ b .L7F0CD658 +/* 102180 7F0CD650 00608025 */ move $s0, $v1 +.L7F0CD654: +/* 102184 7F0CD654 00008025 */ move $s0, $zero +.L7F0CD658: +/* 102188 7F0CD658 14430005 */ bne $v0, $v1, .L7F0CD670 +/* 10218C 7F0CD65C AFB00090 */ sw $s0, 0x90($sp) +/* 102190 7F0CD660 57C00004 */ bnezl $fp, .L7F0CD674 +/* 102194 7F0CD664 00008025 */ move $s0, $zero +/* 102198 7F0CD668 10000002 */ b .L7F0CD674 +/* 10219C 7F0CD66C 00608025 */ move $s0, $v1 +.L7F0CD670: +/* 1021A0 7F0CD670 00008025 */ move $s0, $zero +.L7F0CD674: +/* 1021A4 7F0CD674 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 1021A8 7F0CD678 0200B825 */ move $s7, $s0 +/* 1021AC 7F0CD67C 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 1021B0 7F0CD680 00409825 */ move $s3, $v0 +/* 1021B4 7F0CD684 24010002 */ li $at, 2 +/* 1021B8 7F0CD688 15E10005 */ bne $t7, $at, .L7F0CD6A0 +/* 1021BC 7F0CD68C 2678FFFF */ addiu $t8, $s3, -1 +/* 1021C0 7F0CD690 57C00004 */ bnezl $fp, .L7F0CD6A4 +/* 1021C4 7F0CD694 00008025 */ move $s0, $zero +/* 1021C8 7F0CD698 10000002 */ b .L7F0CD6A4 +/* 1021CC 7F0CD69C 24100002 */ li $s0, 2 +.L7F0CD6A0: +/* 1021D0 7F0CD6A0 00008025 */ move $s0, $zero +.L7F0CD6A4: +/* 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 +/* 1021E4 7F0CD6B4 02402825 */ move $a1, $s2 +/* 1021E8 7F0CD6B8 8FAB00C8 */ lw $t3, 0xc8($sp) +/* 1021EC 7F0CD6BC 24010002 */ li $at, 2 +/* 1021F0 7F0CD6C0 00409825 */ move $s3, $v0 +/* 1021F4 7F0CD6C4 15610005 */ bne $t3, $at, .L7F0CD6DC +/* 1021F8 7F0CD6C8 8FA400AC */ lw $a0, 0xac($sp) +/* 1021FC 7F0CD6CC 57C00004 */ bnezl $fp, .L7F0CD6E0 +/* 102200 7F0CD6D0 00008025 */ move $s0, $zero +/* 102204 7F0CD6D4 10000002 */ b .L7F0CD6E0 +/* 102208 7F0CD6D8 24100002 */ li $s0, 2 +.L7F0CD6DC: +/* 10220C 7F0CD6DC 00008025 */ move $s0, $zero +.L7F0CD6E0: +/* 102210 7F0CD6E0 266AFFFF */ addiu $t2, $s3, -1 +/* 102214 7F0CD6E4 000A6880 */ sll $t5, $t2, 2 +/* 102218 7F0CD6E8 020D8821 */ addu $s1, $s0, $t5 +/* 10221C 7F0CD6EC AFB10010 */ sw $s1, 0x10($sp) +/* 102220 7F0CD6F0 8FA50090 */ lw $a1, 0x90($sp) +/* 102224 7F0CD6F4 02E03025 */ move $a2, $s7 +/* 102228 7F0CD6F8 0FC331A4 */ jal sub_GAME_7F0CC690 +/* 10222C 7F0CD6FC 02803825 */ move $a3, $s4 +/* 102230 7F0CD700 10400014 */ beqz $v0, .L7F0CD754 +/* 102234 7F0CD704 26520001 */ addiu $s2, $s2, 1 +/* 102238 7F0CD708 8FAC0090 */ lw $t4, 0x90($sp) +/* 10223C 7F0CD70C 3C01F200 */ lui $at, 0xf200 +/* 102240 7F0CD710 32F80FFF */ andi $t8, $s7, 0xfff +/* 102244 7F0CD714 318E0FFF */ andi $t6, $t4, 0xfff +/* 102248 7F0CD718 000ECB00 */ sll $t9, $t6, 0xc +/* 10224C 7F0CD71C 03217825 */ or $t7, $t9, $at +/* 102250 7F0CD720 01F84825 */ or $t1, $t7, $t8 +/* 102254 7F0CD724 02C01025 */ move $v0, $s6 +/* 102258 7F0CD728 AC490000 */ sw $t1, ($v0) +/* 10225C 7F0CD72C 8FAB00AC */ lw $t3, 0xac($sp) +/* 102260 7F0CD730 328C0FFF */ andi $t4, $s4, 0xfff +/* 102264 7F0CD734 000C7300 */ sll $t6, $t4, 0xc +/* 102268 7F0CD738 316A0007 */ andi $t2, $t3, 7 +/* 10226C 7F0CD73C 000A6E00 */ sll $t5, $t2, 0x18 +/* 102270 7F0CD740 01AEC825 */ or $t9, $t5, $t6 +/* 102274 7F0CD744 322F0FFF */ andi $t7, $s1, 0xfff +/* 102278 7F0CD748 032FC025 */ or $t8, $t9, $t7 +/* 10227C 7F0CD74C AC580004 */ sw $t8, 4($v0) +/* 102280 7F0CD750 26D60008 */ addiu $s6, $s6, 8 +.L7F0CD754: +/* 102284 7F0CD754 8FAC00AC */ lw $t4, 0xac($sp) +/* 102288 7F0CD758 8FA900B4 */ lw $t1, 0xb4($sp) +/* 10228C 7F0CD75C 8FAB0080 */ lw $t3, 0x80($sp) +/* 102290 7F0CD760 8FAE0064 */ lw $t6, 0x64($sp) +/* 102294 7F0CD764 258D0001 */ addiu $t5, $t4, 1 +/* 102298 7F0CD768 012B5021 */ addu $t2, $t1, $t3 +/* 10229C 7F0CD76C AFAD00AC */ sw $t5, 0xac($sp) +/* 1022A0 7F0CD770 15AEFF49 */ bne $t5, $t6, .L7F0CD498 +/* 1022A4 7F0CD774 AFAA00B4 */ sw $t2, 0xb4($sp) +.L7F0CD778: +/* 1022A8 7F0CD778 8FBF005C */ lw $ra, 0x5c($sp) +/* 1022AC 7F0CD77C 02C01025 */ move $v0, $s6 +/* 1022B0 7F0CD780 8FB60050 */ lw $s6, 0x50($sp) +/* 1022B4 7F0CD784 8FB00038 */ lw $s0, 0x38($sp) +/* 1022B8 7F0CD788 8FB1003C */ lw $s1, 0x3c($sp) +/* 1022BC 7F0CD78C 8FB20040 */ lw $s2, 0x40($sp) +/* 1022C0 7F0CD790 8FB30044 */ lw $s3, 0x44($sp) +/* 1022C4 7F0CD794 8FB40048 */ lw $s4, 0x48($sp) +/* 1022C8 7F0CD798 8FB5004C */ lw $s5, 0x4c($sp) +/* 1022CC 7F0CD79C 8FB70054 */ lw $s7, 0x54($sp) +/* 1022D0 7F0CD7A0 8FBE0058 */ lw $fp, 0x58($sp) +/* 1022D4 7F0CD7A4 03E00008 */ jr $ra +/* 1022D8 7F0CD7A8 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CD7AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CD7AC +/* 1022DC 7F0CD7AC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 1022E0 7F0CD7B0 AFB00034 */ sw $s0, 0x34($sp) +/* 1022E4 7F0CD7B4 00808025 */ move $s0, $a0 +/* 1022E8 7F0CD7B8 AFBF003C */ sw $ra, 0x3c($sp) +/* 1022EC 7F0CD7BC AFB10038 */ sw $s1, 0x38($sp) +/* 1022F0 7F0CD7C0 00A08825 */ move $s1, $a1 +/* 1022F4 7F0CD7C4 0FC332CE */ jal sub_GAME_7F0CCB38 +/* 1022F8 7F0CD7C8 00A02025 */ move $a0, $a1 +/* 1022FC 7F0CD7CC AFA2008C */ sw $v0, 0x8c($sp) +/* 102300 7F0CD7D0 02202025 */ move $a0, $s1 +/* 102304 7F0CD7D4 27A50094 */ addiu $a1, $sp, 0x94 +/* 102308 7F0CD7D8 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 10230C 7F0CD7DC 27A60090 */ addiu $a2, $sp, 0x90 +/* 102310 7F0CD7E0 8E2E000C */ lw $t6, 0xc($s1) +/* 102314 7F0CD7E4 24040007 */ li $a0, 7 +/* 102318 7F0CD7E8 02001025 */ move $v0, $s0 +/* 10231C 7F0CD7EC 000E7F82 */ srl $t7, $t6, 0x1e +/* 102320 7F0CD7F0 15E0004D */ bnez $t7, .L7F0CD928 +/* 102324 7F0CD7F4 3C01FD00 */ lui $at, 0xfd00 +/* 102328 7F0CD7F8 8E380008 */ lw $t8, 8($s1) +/* 10232C 7F0CD7FC 8FAF0094 */ lw $t7, 0x94($sp) +/* 102330 7F0CD800 3C01FD00 */ lui $at, 0xfd00 +/* 102334 7F0CD804 0018CEC0 */ sll $t9, $t8, 0x1b +/* 102338 7F0CD808 00195F42 */ srl $t3, $t9, 0x1d +/* 10233C 7F0CD80C 316C0007 */ andi $t4, $t3, 7 +/* 102340 7F0CD810 000C6D40 */ sll $t5, $t4, 0x15 +/* 102344 7F0CD814 31F80003 */ andi $t8, $t7, 3 +/* 102348 7F0CD818 0018CCC0 */ sll $t9, $t8, 0x13 +/* 10234C 7F0CD81C 01A17025 */ or $t6, $t5, $at +/* 102350 7F0CD820 01D95825 */ or $t3, $t6, $t9 +/* 102354 7F0CD824 02001025 */ move $v0, $s0 +/* 102358 7F0CD828 AC4B0000 */ sw $t3, ($v0) +/* 10235C 7F0CD82C 8E2C0004 */ lw $t4, 4($s1) +/* 102360 7F0CD830 26100008 */ addiu $s0, $s0, 8 +/* 102364 7F0CD834 00003825 */ move $a3, $zero +/* 102368 7F0CD838 AC4C0004 */ sw $t4, 4($v0) +/* 10236C 7F0CD83C 8E250008 */ lw $a1, 8($s1) +/* 102370 7F0CD840 AFA00028 */ sw $zero, 0x28($sp) +/* 102374 7F0CD844 AFA00024 */ sw $zero, 0x24($sp) +/* 102378 7F0CD848 00056EC0 */ sll $t5, $a1, 0x1b +/* 10237C 7F0CD84C 000D2F42 */ srl $a1, $t5, 0x1d +/* 102380 7F0CD850 AFA00020 */ sw $zero, 0x20($sp) +/* 102384 7F0CD854 AFA0001C */ sw $zero, 0x1c($sp) +/* 102388 7F0CD858 AFA00018 */ sw $zero, 0x18($sp) +/* 10238C 7F0CD85C AFA00014 */ sw $zero, 0x14($sp) +/* 102390 7F0CD860 AFA00010 */ sw $zero, 0x10($sp) +/* 102394 7F0CD864 0FC3315D */ jal sub_GAME_7F0CC574 +/* 102398 7F0CD868 8FA60094 */ lw $a2, 0x94($sp) +/* 10239C 7F0CD86C 10400010 */ beqz $v0, .L7F0CD8B0 +/* 1023A0 7F0CD870 3C0A0700 */ lui $t2, 0x700 +/* 1023A4 7F0CD874 8E380008 */ lw $t8, 8($s1) +/* 1023A8 7F0CD878 8FAF0094 */ lw $t7, 0x94($sp) +/* 1023AC 7F0CD87C 02001025 */ move $v0, $s0 +/* 1023B0 7F0CD880 001876C0 */ sll $t6, $t8, 0x1b +/* 1023B4 7F0CD884 000ECF42 */ srl $t9, $t6, 0x1d +/* 1023B8 7F0CD888 332B0007 */ andi $t3, $t9, 7 +/* 1023BC 7F0CD88C 000B6540 */ sll $t4, $t3, 0x15 +/* 1023C0 7F0CD890 3C01F500 */ lui $at, 0xf500 +/* 1023C4 7F0CD894 31F80003 */ andi $t8, $t7, 3 +/* 1023C8 7F0CD898 001874C0 */ sll $t6, $t8, 0x13 +/* 1023CC 7F0CD89C 01816825 */ or $t5, $t4, $at +/* 1023D0 7F0CD8A0 01AEC825 */ or $t9, $t5, $t6 +/* 1023D4 7F0CD8A4 AC590000 */ sw $t9, ($v0) +/* 1023D8 7F0CD8A8 AC4A0004 */ sw $t2, 4($v0) +/* 1023DC 7F0CD8AC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD8B0: +/* 1023E0 7F0CD8B0 02001025 */ move $v0, $s0 +/* 1023E4 7F0CD8B4 26100008 */ addiu $s0, $s0, 8 +/* 1023E8 7F0CD8B8 3C0BE600 */ lui $t3, 0xe600 +/* 1023EC 7F0CD8BC AC4B0000 */ sw $t3, ($v0) +/* 1023F0 7F0CD8C0 AC400004 */ sw $zero, 4($v0) +/* 1023F4 7F0CD8C4 02002825 */ move $a1, $s0 +/* 1023F8 7F0CD8C8 3C0CF300 */ lui $t4, 0xf300 +/* 1023FC 7F0CD8CC ACAC0000 */ sw $t4, ($a1) +/* 102400 7F0CD8D0 8FA30090 */ lw $v1, 0x90($sp) +/* 102404 7F0CD8D4 3C0A0700 */ lui $t2, 0x700 +/* 102408 7F0CD8D8 8FAE008C */ lw $t6, 0x8c($sp) +/* 10240C 7F0CD8DC 2463FFFF */ addiu $v1, $v1, -1 +/* 102410 7F0CD8E0 286107FF */ slti $at, $v1, 0x7ff +/* 102414 7F0CD8E4 10200003 */ beqz $at, .L7F0CD8F4 +/* 102418 7F0CD8E8 26100008 */ addiu $s0, $s0, 8 +/* 10241C 7F0CD8EC 10000002 */ b .L7F0CD8F8 +/* 102420 7F0CD8F0 00602025 */ move $a0, $v1 +.L7F0CD8F4: +/* 102424 7F0CD8F4 240407FF */ li $a0, 2047 +.L7F0CD8F8: +/* 102428 7F0CD8F8 308F0FFF */ andi $t7, $a0, 0xfff +/* 10242C 7F0CD8FC 000FC300 */ sll $t8, $t7, 0xc +/* 102430 7F0CD900 030A6825 */ or $t5, $t8, $t2 +/* 102434 7F0CD904 31D90FFF */ andi $t9, $t6, 0xfff +/* 102438 7F0CD908 01B95825 */ or $t3, $t5, $t9 +/* 10243C 7F0CD90C 02001025 */ move $v0, $s0 +/* 102440 7F0CD910 ACAB0004 */ sw $t3, 4($a1) +/* 102444 7F0CD914 3C0CE700 */ lui $t4, 0xe700 +/* 102448 7F0CD918 AC4C0000 */ sw $t4, ($v0) +/* 10244C 7F0CD91C AC400004 */ sw $zero, 4($v0) +/* 102450 7F0CD920 1000008A */ b .L7F0CDB4C +/* 102454 7F0CD924 26100008 */ addiu $s0, $s0, 8 +.L7F0CD928: +/* 102458 7F0CD928 8E2F0008 */ lw $t7, 8($s1) +/* 10245C 7F0CD92C 8FAC0094 */ lw $t4, 0x94($sp) +/* 102460 7F0CD930 26100008 */ addiu $s0, $s0, 8 +/* 102464 7F0CD934 000FC6C0 */ sll $t8, $t7, 0x1b +/* 102468 7F0CD938 00187742 */ srl $t6, $t8, 0x1d +/* 10246C 7F0CD93C 31CD0007 */ andi $t5, $t6, 7 +/* 102470 7F0CD940 000DCD40 */ sll $t9, $t5, 0x15 +/* 102474 7F0CD944 318F0003 */ andi $t7, $t4, 3 +/* 102478 7F0CD948 000FC4C0 */ sll $t8, $t7, 0x13 +/* 10247C 7F0CD94C 03215825 */ or $t3, $t9, $at +/* 102480 7F0CD950 01787025 */ or $t6, $t3, $t8 +/* 102484 7F0CD954 AC4E0000 */ sw $t6, ($v0) +/* 102488 7F0CD958 8E2D0004 */ lw $t5, 4($s1) +/* 10248C 7F0CD95C 24040007 */ li $a0, 7 +/* 102490 7F0CD960 00003825 */ move $a3, $zero +/* 102494 7F0CD964 AC4D0004 */ sw $t5, 4($v0) +/* 102498 7F0CD968 8E250008 */ lw $a1, 8($s1) +/* 10249C 7F0CD96C AFA00028 */ sw $zero, 0x28($sp) +/* 1024A0 7F0CD970 AFA00024 */ sw $zero, 0x24($sp) +/* 1024A4 7F0CD974 0005CEC0 */ sll $t9, $a1, 0x1b +/* 1024A8 7F0CD978 00192F42 */ srl $a1, $t9, 0x1d +/* 1024AC 7F0CD97C AFA00020 */ sw $zero, 0x20($sp) +/* 1024B0 7F0CD980 AFA0001C */ sw $zero, 0x1c($sp) +/* 1024B4 7F0CD984 AFA00018 */ sw $zero, 0x18($sp) +/* 1024B8 7F0CD988 AFA00014 */ sw $zero, 0x14($sp) +/* 1024BC 7F0CD98C AFA00010 */ sw $zero, 0x10($sp) +/* 1024C0 7F0CD990 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1024C4 7F0CD994 8FA60094 */ lw $a2, 0x94($sp) +/* 1024C8 7F0CD998 10400011 */ beqz $v0, .L7F0CD9E0 +/* 1024CC 7F0CD99C 00003025 */ move $a2, $zero +/* 1024D0 7F0CD9A0 8E2F0008 */ lw $t7, 8($s1) +/* 1024D4 7F0CD9A4 8FAC0094 */ lw $t4, 0x94($sp) +/* 1024D8 7F0CD9A8 02001025 */ move $v0, $s0 +/* 1024DC 7F0CD9AC 000F5EC0 */ sll $t3, $t7, 0x1b +/* 1024E0 7F0CD9B0 000BC742 */ srl $t8, $t3, 0x1d +/* 1024E4 7F0CD9B4 330E0007 */ andi $t6, $t8, 7 +/* 1024E8 7F0CD9B8 000E6D40 */ sll $t5, $t6, 0x15 +/* 1024EC 7F0CD9BC 3C01F500 */ lui $at, 0xf500 +/* 1024F0 7F0CD9C0 318F0003 */ andi $t7, $t4, 3 +/* 1024F4 7F0CD9C4 000F5CC0 */ sll $t3, $t7, 0x13 +/* 1024F8 7F0CD9C8 01A1C825 */ or $t9, $t5, $at +/* 1024FC 7F0CD9CC 3C0A0700 */ lui $t2, 0x700 +/* 102500 7F0CD9D0 032BC025 */ or $t8, $t9, $t3 +/* 102504 7F0CD9D4 AC580000 */ sw $t8, ($v0) +/* 102508 7F0CD9D8 AC4A0004 */ sw $t2, 4($v0) +/* 10250C 7F0CD9DC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD9E0: +/* 102510 7F0CD9E0 02001025 */ move $v0, $s0 +/* 102514 7F0CD9E4 26100008 */ addiu $s0, $s0, 8 +/* 102518 7F0CD9E8 3C0EE600 */ lui $t6, 0xe600 +/* 10251C 7F0CD9EC AC4E0000 */ sw $t6, ($v0) +/* 102520 7F0CD9F0 AC400004 */ sw $zero, 4($v0) +/* 102524 7F0CD9F4 02002825 */ move $a1, $s0 +/* 102528 7F0CD9F8 3C0DF300 */ lui $t5, 0xf300 +/* 10252C 7F0CD9FC ACAD0000 */ sw $t5, ($a1) +/* 102530 7F0CDA00 8FA30090 */ lw $v1, 0x90($sp) +/* 102534 7F0CDA04 3C0A0700 */ lui $t2, 0x700 +/* 102538 7F0CDA08 8FAB008C */ lw $t3, 0x8c($sp) +/* 10253C 7F0CDA0C 2463FFFF */ addiu $v1, $v1, -1 +/* 102540 7F0CDA10 286107FF */ slti $at, $v1, 0x7ff +/* 102544 7F0CDA14 10200003 */ beqz $at, .L7F0CDA24 +/* 102548 7F0CDA18 26100008 */ addiu $s0, $s0, 8 +/* 10254C 7F0CDA1C 10000002 */ b .L7F0CDA28 +/* 102550 7F0CDA20 00602025 */ move $a0, $v1 +.L7F0CDA24: +/* 102554 7F0CDA24 240407FF */ li $a0, 2047 +.L7F0CDA28: +/* 102558 7F0CDA28 308C0FFF */ andi $t4, $a0, 0xfff +/* 10255C 7F0CDA2C 000C7B00 */ sll $t7, $t4, 0xc +/* 102560 7F0CDA30 01EAC825 */ or $t9, $t7, $t2 +/* 102564 7F0CDA34 31780FFF */ andi $t8, $t3, 0xfff +/* 102568 7F0CDA38 03387025 */ or $t6, $t9, $t8 +/* 10256C 7F0CDA3C ACAE0004 */ sw $t6, 4($a1) +/* 102570 7F0CDA40 02001025 */ move $v0, $s0 +/* 102574 7F0CDA44 3C0DE700 */ lui $t5, 0xe700 +/* 102578 7F0CDA48 AC4D0000 */ sw $t5, ($v0) +/* 10257C 7F0CDA4C AC400004 */ sw $zero, 4($v0) +/* 102580 7F0CDA50 922C000A */ lbu $t4, 0xa($s1) +/* 102584 7F0CDA54 8FA80090 */ lw $t0, 0x90($sp) +/* 102588 7F0CDA58 240F03FF */ li $t7, 1023 +/* 10258C 7F0CDA5C 01EC1823 */ subu $v1, $t7, $t4 +/* 102590 7F0CDA60 0068082B */ sltu $at, $v1, $t0 +/* 102594 7F0CDA64 10200003 */ beqz $at, .L7F0CDA74 +/* 102598 7F0CDA68 26100008 */ addiu $s0, $s0, 8 +/* 10259C 7F0CDA6C 10000002 */ b .L7F0CDA78 +/* 1025A0 7F0CDA70 00604825 */ move $t1, $v1 +.L7F0CDA74: +/* 1025A4 7F0CDA74 00004825 */ move $t1, $zero +.L7F0CDA78: +/* 1025A8 7F0CDA78 01094023 */ subu $t0, $t0, $t1 +/* 1025AC 7F0CDA7C 24190100 */ li $t9, 256 +/* 1025B0 7F0CDA80 AFB90010 */ sw $t9, 0x10($sp) +/* 1025B4 7F0CDA84 AFA80074 */ sw $t0, 0x74($sp) +/* 1025B8 7F0CDA88 24040007 */ li $a0, 7 +/* 1025BC 7F0CDA8C 00002825 */ move $a1, $zero +/* 1025C0 7F0CDA90 24070001 */ li $a3, 1 +/* 1025C4 7F0CDA94 AFA00014 */ sw $zero, 0x14($sp) +/* 1025C8 7F0CDA98 AFA00018 */ sw $zero, 0x18($sp) +/* 1025CC 7F0CDA9C AFA0001C */ sw $zero, 0x1c($sp) +/* 1025D0 7F0CDAA0 AFA00020 */ sw $zero, 0x20($sp) +/* 1025D4 7F0CDAA4 AFA00024 */ sw $zero, 0x24($sp) +/* 1025D8 7F0CDAA8 AFA00028 */ sw $zero, 0x28($sp) +/* 1025DC 7F0CDAAC 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1025E0 7F0CDAB0 AFA90070 */ sw $t1, 0x70($sp) +/* 1025E4 7F0CDAB4 8FA80074 */ lw $t0, 0x74($sp) +/* 1025E8 7F0CDAB8 8FA90070 */ lw $t1, 0x70($sp) +/* 1025EC 7F0CDABC 10400007 */ beqz $v0, .L7F0CDADC +/* 1025F0 7F0CDAC0 3C0A0700 */ lui $t2, 0x700 +/* 1025F4 7F0CDAC4 02001025 */ move $v0, $s0 +/* 1025F8 7F0CDAC8 3C18F500 */ lui $t8, (0xF5000300 >> 16) # lui $t8, 0xf500 +/* 1025FC 7F0CDACC 37180300 */ ori $t8, (0xF5000300 & 0xFFFF) # ori $t8, $t8, 0x300 +/* 102600 7F0CDAD0 AC580000 */ sw $t8, ($v0) +/* 102604 7F0CDAD4 AC4A0004 */ sw $t2, 4($v0) +/* 102608 7F0CDAD8 26100008 */ addiu $s0, $s0, 8 +.L7F0CDADC: +/* 10260C 7F0CDADC 02001025 */ move $v0, $s0 +/* 102610 7F0CDAE0 310F03FF */ andi $t7, $t0, 0x3ff +/* 102614 7F0CDAE4 000F6380 */ sll $t4, $t7, 0xe +/* 102618 7F0CDAE8 312403FF */ andi $a0, $t1, 0x3ff +/* 10261C 7F0CDAEC 3C01F000 */ lui $at, 0xf000 +/* 102620 7F0CDAF0 26100008 */ addiu $s0, $s0, 8 +/* 102624 7F0CDAF4 3C0EE600 */ lui $t6, 0xe600 +/* 102628 7F0CDAF8 01815825 */ or $t3, $t4, $at +/* 10262C 7F0CDAFC 00046880 */ sll $t5, $a0, 2 +/* 102630 7F0CDB00 AC4E0000 */ sw $t6, ($v0) +/* 102634 7F0CDB04 AC400004 */ sw $zero, 4($v0) +/* 102638 7F0CDB08 016DC825 */ or $t9, $t3, $t5 +/* 10263C 7F0CDB0C 02001825 */ move $v1, $s0 +/* 102640 7F0CDB10 AC790000 */ sw $t9, ($v1) +/* 102644 7F0CDB14 9238000A */ lbu $t8, 0xa($s1) +/* 102648 7F0CDB18 01A02025 */ move $a0, $t5 +/* 10264C 7F0CDB1C 26100008 */ addiu $s0, $s0, 8 +/* 102650 7F0CDB20 03087021 */ addu $t6, $t8, $t0 +/* 102654 7F0CDB24 31CD03FF */ andi $t5, $t6, 0x3ff +/* 102658 7F0CDB28 000D7B80 */ sll $t7, $t5, 0xe +/* 10265C 7F0CDB2C 01EA6025 */ or $t4, $t7, $t2 +/* 102660 7F0CDB30 01845825 */ or $t3, $t4, $a0 +/* 102664 7F0CDB34 02002825 */ move $a1, $s0 +/* 102668 7F0CDB38 AC6B0004 */ sw $t3, 4($v1) +/* 10266C 7F0CDB3C 3C19E700 */ lui $t9, 0xe700 +/* 102670 7F0CDB40 ACB90000 */ sw $t9, ($a1) +/* 102674 7F0CDB44 ACA00004 */ sw $zero, 4($a1) +/* 102678 7F0CDB48 26100008 */ addiu $s0, $s0, 8 +.L7F0CDB4C: +/* 10267C 7F0CDB4C 8FBF003C */ lw $ra, 0x3c($sp) +/* 102680 7F0CDB50 02001025 */ move $v0, $s0 +/* 102684 7F0CDB54 8FB00034 */ lw $s0, 0x34($sp) +/* 102688 7F0CDB58 8FB10038 */ lw $s1, 0x38($sp) +/* 10268C 7F0CDB5C 03E00008 */ jr $ra +/* 102690 7F0CDB60 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDB64(void) { + +} +#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 +void sub_GAME_7F0CDE18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDE18 +/* 102948 7F0CDE18 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 10294C 7F0CDE1C AFBF0024 */ sw $ra, 0x24($sp) +/* 102950 7F0CDE20 AFA60030 */ sw $a2, 0x30($sp) +/* 102954 7F0CDE24 AFA5002C */ sw $a1, 0x2c($sp) +/* 102958 7F0CDE28 AFA70034 */ sw $a3, 0x34($sp) +/* 10295C 7F0CDE2C 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102960 7F0CDE30 00003025 */ move $a2, $zero +/* 102964 7F0CDE34 8FAE0038 */ lw $t6, 0x38($sp) +/* 102968 7F0CDE38 00402025 */ move $a0, $v0 +/* 10296C 7F0CDE3C 8FA5002C */ lw $a1, 0x2c($sp) +/* 102970 7F0CDE40 8FA60030 */ lw $a2, 0x30($sp) +/* 102974 7F0CDE44 8FA70034 */ lw $a3, 0x34($sp) +/* 102978 7F0CDE48 AFA00014 */ sw $zero, 0x14($sp) +/* 10297C 7F0CDE4C AFA00018 */ sw $zero, 0x18($sp) +/* 102980 7F0CDE50 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102984 7F0CDE54 AFAE0010 */ sw $t6, 0x10($sp) +/* 102988 7F0CDE58 8FA5002C */ lw $a1, 0x2c($sp) +/* 10298C 7F0CDE5C 24010001 */ li $at, 1 +/* 102990 7F0CDE60 00402025 */ move $a0, $v0 +/* 102994 7F0CDE64 90AF000B */ lbu $t7, 0xb($a1) +/* 102998 7F0CDE68 8FA60030 */ lw $a2, 0x30($sp) +/* 10299C 7F0CDE6C 8FA70034 */ lw $a3, 0x34($sp) +/* 1029A0 7F0CDE70 000FC142 */ srl $t8, $t7, 5 +/* 1029A4 7F0CDE74 17010007 */ bne $t8, $at, .L7F0CDE94 +/* 1029A8 7F0CDE78 8FB90038 */ lw $t9, 0x38($sp) +/* 1029AC 7F0CDE7C 24080001 */ li $t0, 1 +/* 1029B0 7F0CDE80 AFA80014 */ sw $t0, 0x14($sp) +/* 1029B4 7F0CDE84 AFB90010 */ sw $t9, 0x10($sp) +/* 1029B8 7F0CDE88 0FC3350C */ jal sub_GAME_7F0CD430 +/* 1029BC 7F0CDE8C AFA00018 */ sw $zero, 0x18($sp) +/* 1029C0 7F0CDE90 00402025 */ move $a0, $v0 +.L7F0CDE94: +/* 1029C4 7F0CDE94 8FBF0024 */ lw $ra, 0x24($sp) +/* 1029C8 7F0CDE98 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1029CC 7F0CDE9C 00801025 */ move $v0, $a0 +/* 1029D0 7F0CDEA0 03E00008 */ jr $ra +/* 1029D4 7F0CDEA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDEA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDEA8 +/* 1029D8 7F0CDEA8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 1029DC 7F0CDEAC AFB00028 */ sw $s0, 0x28($sp) +/* 1029E0 7F0CDEB0 00808025 */ move $s0, $a0 +/* 1029E4 7F0CDEB4 AFBF002C */ sw $ra, 0x2c($sp) +/* 1029E8 7F0CDEB8 AFA5003C */ sw $a1, 0x3c($sp) +/* 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 +/* 1029FC 7F0CDECC 8FA4004C */ lw $a0, 0x4c($sp) +/* 102A00 7F0CDED0 AFA20034 */ sw $v0, 0x34($sp) +/* 102A04 7F0CDED4 02002025 */ move $a0, $s0 +/* 102A08 7F0CDED8 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102A0C 7F0CDEDC 8FA5004C */ lw $a1, 0x4c($sp) +/* 102A10 7F0CDEE0 3C0EE800 */ lui $t6, 0xe800 +/* 102A14 7F0CDEE4 AC4E0000 */ sw $t6, ($v0) +/* 102A18 7F0CDEE8 AC400004 */ sw $zero, 4($v0) +/* 102A1C 7F0CDEEC 8FA60034 */ lw $a2, 0x34($sp) +/* 102A20 7F0CDEF0 8FA5003C */ lw $a1, 0x3c($sp) +/* 102A24 7F0CDEF4 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102A28 7F0CDEF8 24440008 */ addiu $a0, $v0, 8 +/* 102A2C 7F0CDEFC 8FAF0054 */ lw $t7, 0x54($sp) +/* 102A30 7F0CDF00 8FB80058 */ lw $t8, 0x58($sp) +/* 102A34 7F0CDF04 00402025 */ move $a0, $v0 +/* 102A38 7F0CDF08 8FA5004C */ lw $a1, 0x4c($sp) +/* 102A3C 7F0CDF0C 8FA60048 */ lw $a2, 0x48($sp) +/* 102A40 7F0CDF10 8FA70050 */ lw $a3, 0x50($sp) +/* 102A44 7F0CDF14 AFAF0010 */ sw $t7, 0x10($sp) +/* 102A48 7F0CDF18 0FC33314 */ jal sub_GAME_7F0CCC50 +/* 102A4C 7F0CDF1C AFB80014 */ sw $t8, 0x14($sp) +/* 102A50 7F0CDF20 8FB90048 */ lw $t9, 0x48($sp) +/* 102A54 7F0CDF24 8FA90034 */ lw $t1, 0x34($sp) +/* 102A58 7F0CDF28 24080001 */ li $t0, 1 +/* 102A5C 7F0CDF2C AFA80014 */ sw $t0, 0x14($sp) +/* 102A60 7F0CDF30 00402025 */ move $a0, $v0 +/* 102A64 7F0CDF34 8FA5003C */ lw $a1, 0x3c($sp) +/* 102A68 7F0CDF38 8FA60040 */ lw $a2, 0x40($sp) +/* 102A6C 7F0CDF3C 8FA70044 */ lw $a3, 0x44($sp) +/* 102A70 7F0CDF40 AFB90010 */ sw $t9, 0x10($sp) +/* 102A74 7F0CDF44 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102A78 7F0CDF48 AFA90018 */ sw $t1, 0x18($sp) +/* 102A7C 7F0CDF4C 8FAA003C */ lw $t2, 0x3c($sp) +/* 102A80 7F0CDF50 24010001 */ li $at, 1 +/* 102A84 7F0CDF54 00408025 */ move $s0, $v0 +/* 102A88 7F0CDF58 914B000B */ lbu $t3, 0xb($t2) +/* 102A8C 7F0CDF5C 00402025 */ move $a0, $v0 +/* 102A90 7F0CDF60 8FA60040 */ lw $a2, 0x40($sp) +/* 102A94 7F0CDF64 000B6142 */ srl $t4, $t3, 5 +/* 102A98 7F0CDF68 1581000A */ bne $t4, $at, .L7F0CDF94 +/* 102A9C 7F0CDF6C 01402825 */ move $a1, $t2 +/* 102AA0 7F0CDF70 8FAD0048 */ lw $t5, 0x48($sp) +/* 102AA4 7F0CDF74 8FAF0034 */ lw $t7, 0x34($sp) +/* 102AA8 7F0CDF78 240E0002 */ li $t6, 2 +/* 102AAC 7F0CDF7C AFAE0014 */ sw $t6, 0x14($sp) +/* 102AB0 7F0CDF80 8FA70044 */ lw $a3, 0x44($sp) +/* 102AB4 7F0CDF84 AFAD0010 */ sw $t5, 0x10($sp) +/* 102AB8 7F0CDF88 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102ABC 7F0CDF8C AFAF0018 */ sw $t7, 0x18($sp) +/* 102AC0 7F0CDF90 00408025 */ move $s0, $v0 +.L7F0CDF94: +/* 102AC4 7F0CDF94 8FBF002C */ lw $ra, 0x2c($sp) +/* 102AC8 7F0CDF98 02001025 */ move $v0, $s0 +/* 102ACC 7F0CDF9C 8FB00028 */ lw $s0, 0x28($sp) +/* 102AD0 7F0CDFA0 03E00008 */ jr $ra +/* 102AD4 7F0CDFA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDFA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDFA8 +/* 102AD8 7F0CDFA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 102ADC 7F0CDFAC AFBF002C */ sw $ra, 0x2c($sp) +/* 102AE0 7F0CDFB0 AFB00028 */ sw $s0, 0x28($sp) +/* 102AE4 7F0CDFB4 AFA60038 */ sw $a2, 0x38($sp) +/* 102AE8 7F0CDFB8 00A08025 */ move $s0, $a1 +/* 102AEC 7F0CDFBC AFA7003C */ sw $a3, 0x3c($sp) +/* 102AF0 7F0CDFC0 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102AF4 7F0CDFC4 00003025 */ move $a2, $zero +/* 102AF8 7F0CDFC8 8FAE0048 */ lw $t6, 0x48($sp) +/* 102AFC 7F0CDFCC 8FAF004C */ lw $t7, 0x4c($sp) +/* 102B00 7F0CDFD0 00402025 */ move $a0, $v0 +/* 102B04 7F0CDFD4 02002825 */ move $a1, $s0 +/* 102B08 7F0CDFD8 8FA60040 */ lw $a2, 0x40($sp) +/* 102B0C 7F0CDFDC 8FA70044 */ lw $a3, 0x44($sp) +/* 102B10 7F0CDFE0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102B14 7F0CDFE4 0FC33314 */ jal sub_GAME_7F0CCC50 +/* 102B18 7F0CDFE8 AFAF0014 */ sw $t7, 0x14($sp) +/* 102B1C 7F0CDFEC 8FB80040 */ lw $t8, 0x40($sp) +/* 102B20 7F0CDFF0 24190001 */ li $t9, 1 +/* 102B24 7F0CDFF4 AFB90014 */ sw $t9, 0x14($sp) +/* 102B28 7F0CDFF8 00402025 */ move $a0, $v0 +/* 102B2C 7F0CDFFC 02002825 */ move $a1, $s0 +/* 102B30 7F0CE000 8FA60038 */ lw $a2, 0x38($sp) +/* 102B34 7F0CE004 8FA7003C */ lw $a3, 0x3c($sp) +/* 102B38 7F0CE008 AFA00018 */ sw $zero, 0x18($sp) +/* 102B3C 7F0CE00C 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102B40 7F0CE010 AFB80010 */ sw $t8, 0x10($sp) +/* 102B44 7F0CE014 9208000B */ lbu $t0, 0xb($s0) +/* 102B48 7F0CE018 24010001 */ li $at, 1 +/* 102B4C 7F0CE01C 00402025 */ move $a0, $v0 +/* 102B50 7F0CE020 00084942 */ srl $t1, $t0, 5 +/* 102B54 7F0CE024 1521000A */ bne $t1, $at, .L7F0CE050 +/* 102B58 7F0CE028 02002825 */ move $a1, $s0 +/* 102B5C 7F0CE02C 8FAA0040 */ lw $t2, 0x40($sp) +/* 102B60 7F0CE030 240B0002 */ li $t3, 2 +/* 102B64 7F0CE034 AFAB0014 */ sw $t3, 0x14($sp) +/* 102B68 7F0CE038 8FA60038 */ lw $a2, 0x38($sp) +/* 102B6C 7F0CE03C 8FA7003C */ lw $a3, 0x3c($sp) +/* 102B70 7F0CE040 AFA00018 */ sw $zero, 0x18($sp) +/* 102B74 7F0CE044 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102B78 7F0CE048 AFAA0010 */ sw $t2, 0x10($sp) +/* 102B7C 7F0CE04C 00402025 */ move $a0, $v0 +.L7F0CE050: +/* 102B80 7F0CE050 8FBF002C */ lw $ra, 0x2c($sp) +/* 102B84 7F0CE054 8FB00028 */ lw $s0, 0x28($sp) +/* 102B88 7F0CE058 27BD0030 */ addiu $sp, $sp, 0x30 +/* 102B8C 7F0CE05C 03E00008 */ jr $ra +/* 102B90 7F0CE060 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE064(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE064 +/* 102B94 7F0CE064 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 102B98 7F0CE068 AFBF001C */ sw $ra, 0x1c($sp) +/* 102B9C 7F0CE06C AFA50024 */ sw $a1, 0x24($sp) +/* 102BA0 7F0CE070 AFA60028 */ sw $a2, 0x28($sp) +/* 102BA4 7F0CE074 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102BA8 7F0CE078 AFA7002C */ sw $a3, 0x2c($sp) +/* 102BAC 7F0CE07C 8FAE0030 */ lw $t6, 0x30($sp) +/* 102BB0 7F0CE080 00402025 */ move $a0, $v0 +/* 102BB4 7F0CE084 8FA50024 */ lw $a1, 0x24($sp) +/* 102BB8 7F0CE088 8FA60028 */ lw $a2, 0x28($sp) +/* 102BBC 7F0CE08C 8FA7002C */ lw $a3, 0x2c($sp) +/* 102BC0 7F0CE090 AFA00014 */ sw $zero, 0x14($sp) +/* 102BC4 7F0CE094 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102BC8 7F0CE098 AFAE0010 */ sw $t6, 0x10($sp) +/* 102BCC 7F0CE09C 8FBF001C */ lw $ra, 0x1c($sp) +/* 102BD0 7F0CE0A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 102BD4 7F0CE0A4 03E00008 */ jr $ra +/* 102BD8 7F0CE0A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE0AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE0AC +/* 102BDC 7F0CE0AC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 102BE0 7F0CE0B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 102BE4 7F0CE0B4 AFA50024 */ sw $a1, 0x24($sp) +/* 102BE8 7F0CE0B8 AFA60028 */ sw $a2, 0x28($sp) +/* 102BEC 7F0CE0BC 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102BF0 7F0CE0C0 AFA7002C */ sw $a3, 0x2c($sp) +/* 102BF4 7F0CE0C4 8FAE0030 */ lw $t6, 0x30($sp) +/* 102BF8 7F0CE0C8 00402025 */ move $a0, $v0 +/* 102BFC 7F0CE0CC 8FA50024 */ lw $a1, 0x24($sp) +/* 102C00 7F0CE0D0 8FA60028 */ lw $a2, 0x28($sp) +/* 102C04 7F0CE0D4 8FA7002C */ lw $a3, 0x2c($sp) +/* 102C08 7F0CE0D8 AFA00014 */ sw $zero, 0x14($sp) +/* 102C0C 7F0CE0DC 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102C10 7F0CE0E0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102C14 7F0CE0E4 8FAF0030 */ lw $t7, 0x30($sp) +/* 102C18 7F0CE0E8 24180001 */ li $t8, 1 +/* 102C1C 7F0CE0EC AFB80014 */ sw $t8, 0x14($sp) +/* 102C20 7F0CE0F0 00402025 */ move $a0, $v0 +/* 102C24 7F0CE0F4 8FA50024 */ lw $a1, 0x24($sp) +/* 102C28 7F0CE0F8 8FA60028 */ lw $a2, 0x28($sp) +/* 102C2C 7F0CE0FC 8FA7002C */ lw $a3, 0x2c($sp) +/* 102C30 7F0CE100 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102C34 7F0CE104 AFAF0010 */ sw $t7, 0x10($sp) +/* 102C38 7F0CE108 8FBF001C */ lw $ra, 0x1c($sp) +/* 102C3C 7F0CE10C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 102C40 7F0CE110 03E00008 */ jr $ra +/* 102C44 7F0CE114 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_microcode_sort_display_modes_expand_image_calls(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel PADDINGHACKING +.word 0 +/*D:8005BF20*/ +glabel tlb_ptr_DL_type_B1toC0 +.word .L7F0CE66C +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE6B8 +.word .L7F0CE694 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE66C +.word .L7F0CE1D8 + +/*D:8005BF60*/ +glabel tlb_ptr_C0_image_recall_types +.word .L7F0CE2BC +.word .L7F0CE428 +.word .L7F0CE4B8 +.word .L7F0CE584 +.word .L7F0CE5BC +.text +glabel process_microcode_sort_display_modes_expand_image_calls +/* 102C48 7F0CE118 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 102C4C 7F0CE11C AFB20038 */ sw $s2, 0x38($sp) +/* 102C50 7F0CE120 AFBF0054 */ sw $ra, 0x54($sp) +/* 102C54 7F0CE124 AFBE0050 */ sw $fp, 0x50($sp) +/* 102C58 7F0CE128 AFB60048 */ sw $s6, 0x48($sp) +/* 102C5C 7F0CE12C AFB40040 */ sw $s4, 0x40($sp) +/* 102C60 7F0CE130 AFB10034 */ sw $s1, 0x34($sp) +/* 102C64 7F0CE134 AFB00030 */ sw $s0, 0x30($sp) +/* 102C68 7F0CE138 240E0001 */ li $t6, 1 +/* 102C6C 7F0CE13C 000590C3 */ sra $s2, $a1, 3 +/* 102C70 7F0CE140 00E0B025 */ move $s6, $a3 +/* 102C74 7F0CE144 AFB7004C */ sw $s7, 0x4c($sp) +/* 102C78 7F0CE148 AFB50044 */ sw $s5, 0x44($sp) +/* 102C7C 7F0CE14C AFB3003C */ sw $s3, 0x3c($sp) +/* 102C80 7F0CE150 AFA600A0 */ sw $a2, 0xa0($sp) +/* 102C84 7F0CE154 AFA0008C */ sw $zero, 0x8c($sp) +/* 102C88 7F0CE158 0000A025 */ move $s4, $zero +/* 102C8C 7F0CE15C 0000F025 */ move $fp, $zero +/* 102C90 7F0CE160 AFAE005C */ sw $t6, 0x5c($sp) +/* 102C94 7F0CE164 AFA00058 */ sw $zero, 0x58($sp) +/* 102C98 7F0CE168 00808825 */ move $s1, $a0 +/* 102C9C 7F0CE16C 00C08025 */ move $s0, $a2 +/* 102CA0 7F0CE170 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 102CA4 7F0CE174 AFB20088 */ sw $s2, 0x88($sp) +/* 102CA8 7F0CE178 16C00003 */ bnez $s6, .L7F0CE188 +/* 102CAC 7F0CE17C 2417000F */ li $s7, 15 +/* 102CB0 7F0CE180 3C168009 */ lui $s6, %hi(ptr_texture_alloc_start) +/* 102CB4 7F0CE184 26D6C720 */ addiu $s6, %lo(ptr_texture_alloc_start) # addiu $s6, $s6, -0x38e0 +.L7F0CE188: +/* 102CB8 7F0CE188 1A40016F */ blez $s2, .L7F0CE748 +/* 102CBC 7F0CE18C 3C158005 */ lui $s5, %hi(D_800483C8) +/* 102CC0 7F0CE190 26B583C8 */ addiu $s5, %lo(D_800483C8) # addiu $s5, $s5, -0x7c38 +.L7F0CE194: +/* 102CC4 7F0CE194 92220000 */ lbu $v0, ($s1) +/* 102CC8 7F0CE198 284100C1 */ slti $at, $v0, 0xc1 +/* 102CCC 7F0CE19C 14200006 */ bnez $at, .L7F0CE1B8 +/* 102CD0 7F0CE1A0 244FFF4F */ addiu $t7, $v0, -0xb1 +/* 102CD4 7F0CE1A4 240100E7 */ li $at, 231 +/* 102CD8 7F0CE1A8 50410129 */ beql $v0, $at, .L7F0CE650 +/* 102CDC 7F0CE1AC 8E210000 */ lw $at, ($s1) +/* 102CE0 7F0CE1B0 1000015C */ b .L7F0CE724 +/* 102CE4 7F0CE1B4 8E210000 */ lw $at, ($s1) +.L7F0CE1B8: +/* 102CE8 7F0CE1B8 2DE10010 */ sltiu $at, $t7, 0x10 +/* 102CEC 7F0CE1BC 10200158 */ beqz $at, .L7F0CE720 +/* 102CF0 7F0CE1C0 000F7880 */ sll $t7, $t7, 2 +/* 102CF4 7F0CE1C4 3C018006 */ lui $at, %hi(tlb_ptr_DL_type_B1toC0) +/* 102CF8 7F0CE1C8 002F0821 */ addu $at, $at, $t7 +/* 102CFC 7F0CE1CC 8C2FBF20 */ lw $t7, %lo(tlb_ptr_DL_type_B1toC0)($at) +/* 102D00 7F0CE1D0 01E00008 */ jr $t7 +/* 102D04 7F0CE1D4 00000000 */ nop +.L7F0CE1D8: +/* 102D08 7F0CE1D8 17C00006 */ bnez $fp, .L7F0CE1F4 +/* 102D0C 7F0CE1DC 02001025 */ move $v0, $s0 +/* 102D10 7F0CE1E0 3C18E700 */ lui $t8, 0xe700 +/* 102D14 7F0CE1E4 AC580000 */ sw $t8, ($v0) +/* 102D18 7F0CE1E8 26100008 */ addiu $s0, $s0, 8 +/* 102D1C 7F0CE1EC AC400004 */ sw $zero, 4($v0) +/* 102D20 7F0CE1F0 241E0001 */ li $fp, 1 +.L7F0CE1F4: +/* 102D24 7F0CE1F4 8FB90058 */ lw $t9, 0x58($sp) +/* 102D28 7F0CE1F8 02002025 */ move $a0, $s0 +/* 102D2C 7F0CE1FC 53200004 */ beql $t9, $zero, .L7F0CE210 +/* 102D30 7F0CE200 8E330004 */ lw $s3, 4($s1) +/* 102D34 7F0CE204 0FC2ED80 */ jal save_ptrDL_enpoint_to_current_init_lightfixture_table +/* 102D38 7F0CE208 AFA00058 */ sw $zero, 0x58($sp) +/* 102D3C 7F0CE20C 8E330004 */ lw $s3, 4($s1) +.L7F0CE210: +/* 102D40 7F0CE210 3C0E8005 */ lui $t6, %hi(D_800483C4) +/* 102D44 7F0CE214 8DCE83C4 */ lw $t6, %lo(D_800483C4)($t6) +/* 102D48 7F0CE218 326D0FFF */ andi $t5, $s3, 0xfff +/* 102D4C 7F0CE21C 01A09825 */ move $s3, $t5 +/* 102D50 7F0CE220 15AE000D */ bne $t5, $t6, .L7F0CE258 +/* 102D54 7F0CE224 02C02825 */ move $a1, $s6 +/* 102D58 7F0CE228 8EA40000 */ lw $a0, ($s5) +/* 102D5C 7F0CE22C 000D7880 */ sll $t7, $t5, 2 +/* 102D60 7F0CE230 10800009 */ beqz $a0, .L7F0CE258 +/* 102D64 7F0CE234 008FC021 */ addu $t8, $a0, $t7 +/* 102D68 7F0CE238 93190000 */ lbu $t9, ($t8) +/* 102D6C 7F0CE23C 2F2100FF */ sltiu $at, $t9, 0xff +/* 102D70 7F0CE240 10200003 */ beqz $at, .L7F0CE250 +/* 102D74 7F0CE244 00000000 */ nop +/* 102D78 7F0CE248 10000004 */ b .L7F0CE25C +/* 102D7C 7F0CE24C 24140001 */ li $s4, 1 +.L7F0CE250: +/* 102D80 7F0CE250 10000002 */ b .L7F0CE25C +/* 102D84 7F0CE254 0000A025 */ move $s4, $zero +.L7F0CE258: +/* 102D88 7F0CE258 0000A025 */ move $s4, $zero +.L7F0CE25C: +/* 102D8C 7F0CE25C 0FC32FBA */ jal calls_load_image_to_buffer +/* 102D90 7F0CE260 02602025 */ move $a0, $s3 +/* 102D94 7F0CE264 02602025 */ move $a0, $s3 +/* 102D98 7F0CE268 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102D9C 7F0CE26C 02C02825 */ move $a1, $s6 +/* 102DA0 7F0CE270 104000F4 */ beqz $v0, .L7F0CE644 +/* 102DA4 7F0CE274 00409025 */ move $s2, $v0 +/* 102DA8 7F0CE278 8FA7005C */ lw $a3, 0x5c($sp) +/* 102DAC 7F0CE27C AFA0005C */ sw $zero, 0x5c($sp) +/* 102DB0 7F0CE280 02002025 */ move $a0, $s0 +/* 102DB4 7F0CE284 8FA5008C */ lw $a1, 0x8c($sp) +/* 102DB8 7F0CE288 0FC333EF */ jal sub_GAME_7F0CCFBC +/* 102DBC 7F0CE28C 00403025 */ move $a2, $v0 +/* 102DC0 7F0CE290 8E230000 */ lw $v1, ($s1) +/* 102DC4 7F0CE294 00408025 */ move $s0, $v0 +/* 102DC8 7F0CE298 306D0007 */ andi $t5, $v1, 7 +/* 102DCC 7F0CE29C 2DA10005 */ sltiu $at, $t5, 5 +/* 102DD0 7F0CE2A0 102000D3 */ beqz $at, .L7F0CE5F0 +/* 102DD4 7F0CE2A4 000D6880 */ sll $t5, $t5, 2 +/* 102DD8 7F0CE2A8 3C018006 */ lui $at, %hi(tlb_ptr_C0_image_recall_types) +/* 102DDC 7F0CE2AC 002D0821 */ addu $at, $at, $t5 +/* 102DE0 7F0CE2B0 8C2DBF60 */ lw $t5, %lo(tlb_ptr_C0_image_recall_types)($at) +/* 102DE4 7F0CE2B4 01A00008 */ jr $t5 +/* 102DE8 7F0CE2B8 00000000 */ nop +.L7F0CE2BC: +/* 102DEC 7F0CE2BC 8E290004 */ lw $t1, 4($s1) +/* 102DF0 7F0CE2C0 8EA40000 */ lw $a0, ($s5) +/* 102DF4 7F0CE2C4 00033582 */ srl $a2, $v1, 0x16 +/* 102DF8 7F0CE2C8 00097602 */ srl $t6, $t1, 0x18 +/* 102DFC 7F0CE2CC 31C900FF */ andi $t1, $t6, 0xff +/* 102E00 7F0CE2D0 00033D02 */ srl $a3, $v1, 0x14 +/* 102E04 7F0CE2D4 00034482 */ srl $t0, $v1, 0x12 +/* 102E08 7F0CE2D8 00035382 */ srl $t2, $v1, 0xe +/* 102E0C 7F0CE2DC 00035A82 */ srl $t3, $v1, 0xa +/* 102E10 7F0CE2E0 30D80003 */ andi $t8, $a2, 3 +/* 102E14 7F0CE2E4 30F90003 */ andi $t9, $a3, 3 +/* 102E18 7F0CE2E8 310D0003 */ andi $t5, $t0, 3 +/* 102E1C 7F0CE2EC 314E000F */ andi $t6, $t2, 0xf +/* 102E20 7F0CE2F0 316F000F */ andi $t7, $t3, 0xf +/* 102E24 7F0CE2F4 03003025 */ move $a2, $t8 +/* 102E28 7F0CE2F8 03203825 */ move $a3, $t9 +/* 102E2C 7F0CE2FC 01A04025 */ move $t0, $t5 +/* 102E30 7F0CE300 01C05025 */ move $t2, $t6 +/* 102E34 7F0CE304 1080001B */ beqz $a0, .L7F0CE374 +/* 102E38 7F0CE308 01E05825 */ move $t3, $t7 +/* 102E3C 7F0CE30C 00131880 */ sll $v1, $s3, 2 +/* 102E40 7F0CE310 00831021 */ addu $v0, $a0, $v1 +/* 102E44 7F0CE314 90580000 */ lbu $t8, ($v0) +/* 102E48 7F0CE318 240100FF */ li $at, 255 +/* 102E4C 7F0CE31C 17010015 */ bne $t8, $at, .L7F0CE374 +/* 102E50 7F0CE320 00000000 */ nop +/* 102E54 7F0CE324 A0490000 */ sb $t1, ($v0) +/* 102E58 7F0CE328 8EB90000 */ lw $t9, ($s5) +/* 102E5C 7F0CE32C 2404000F */ li $a0, 15 +/* 102E60 7F0CE330 008E6823 */ subu $t5, $a0, $t6 +/* 102E64 7F0CE334 03231021 */ addu $v0, $t9, $v1 +/* 102E68 7F0CE338 90590001 */ lbu $t9, 1($v0) +/* 102E6C 7F0CE33C 01A07025 */ move $t6, $t5 +/* 102E70 7F0CE340 000EC140 */ sll $t8, $t6, 5 +/* 102E74 7F0CE344 332DFF1F */ andi $t5, $t9, 0xff1f +/* 102E78 7F0CE348 030D7025 */ or $t6, $t8, $t5 +/* 102E7C 7F0CE34C A04E0001 */ sb $t6, 1($v0) +/* 102E80 7F0CE350 8EAF0000 */ lw $t7, ($s5) +/* 102E84 7F0CE354 008BC023 */ subu $t8, $a0, $t3 +/* 102E88 7F0CE358 00186880 */ sll $t5, $t8, 2 +/* 102E8C 7F0CE35C 01E31021 */ addu $v0, $t7, $v1 +/* 102E90 7F0CE360 904F0001 */ lbu $t7, 1($v0) +/* 102E94 7F0CE364 31AE001C */ andi $t6, $t5, 0x1c +/* 102E98 7F0CE368 31F9FFE3 */ andi $t9, $t7, 0xffe3 +/* 102E9C 7F0CE36C 01D9C025 */ or $t8, $t6, $t9 +/* 102EA0 7F0CE370 A0580001 */ sb $t8, 1($v0) +.L7F0CE374: +/* 102EA4 7F0CE374 12800024 */ beqz $s4, .L7F0CE408 +/* 102EA8 7F0CE378 02002025 */ move $a0, $s0 +/* 102EAC 7F0CE37C 8EAD0000 */ lw $t5, ($s5) +/* 102EB0 7F0CE380 00137880 */ sll $t7, $s3, 2 +/* 102EB4 7F0CE384 AFA80010 */ sw $t0, 0x10($sp) +/* 102EB8 7F0CE388 01AF1021 */ addu $v0, $t5, $t7 +/* 102EBC 7F0CE38C 904E0001 */ lbu $t6, 1($v0) +/* 102EC0 7F0CE390 02002025 */ move $a0, $s0 +/* 102EC4 7F0CE394 02402825 */ move $a1, $s2 +/* 102EC8 7F0CE398 000EC942 */ srl $t9, $t6, 5 +/* 102ECC 7F0CE39C 02F9C023 */ subu $t8, $s7, $t9 +/* 102ED0 7F0CE3A0 AFB80014 */ sw $t8, 0x14($sp) +/* 102ED4 7F0CE3A4 8C4D0000 */ lw $t5, ($v0) +/* 102ED8 7F0CE3A8 000D7AC0 */ sll $t7, $t5, 0xb +/* 102EDC 7F0CE3AC 000F7742 */ srl $t6, $t7, 0x1d +/* 102EE0 7F0CE3B0 02EEC823 */ subu $t9, $s7, $t6 +/* 102EE4 7F0CE3B4 AFB90018 */ sw $t9, 0x18($sp) +/* 102EE8 7F0CE3B8 90580000 */ lbu $t8, ($v0) +/* 102EEC 7F0CE3BC 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 102EF0 7F0CE3C0 AFB8001C */ sw $t8, 0x1c($sp) +/* 102EF4 7F0CE3C4 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 +/* 102EF8 7F0CE3C8 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 +/* 102EFC 7F0CE3CC AC4D0000 */ sw $t5, ($v0) +/* 102F00 7F0CE3D0 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 102F04 7F0CE3D4 3C18BA00 */ lui $t8, (0xBA001102 >> 16) # lui $t8, 0xba00 +/* 102F08 7F0CE3D8 3C0F0010 */ lui $t7, 0x10 +/* 102F0C 7F0CE3DC 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 102F10 7F0CE3E0 3C190001 */ lui $t9, 1 +/* 102F14 7F0CE3E4 37181102 */ ori $t8, (0xBA001102 & 0xFFFF) # ori $t8, $t8, 0x1102 +/* 102F18 7F0CE3E8 3C0D0004 */ lui $t5, 4 +/* 102F1C 7F0CE3EC AC4F0004 */ sw $t7, 4($v0) +/* 102F20 7F0CE3F0 AC59000C */ sw $t9, 0xc($v0) +/* 102F24 7F0CE3F4 AC4E0008 */ sw $t6, 8($v0) +/* 102F28 7F0CE3F8 AC4D0014 */ sw $t5, 0x14($v0) +/* 102F2C 7F0CE3FC AC580010 */ sw $t8, 0x10($v0) +/* 102F30 7F0CE400 1000007B */ b .L7F0CE5F0 +/* 102F34 7F0CE404 24500018 */ addiu $s0, $v0, 0x18 +.L7F0CE408: +/* 102F38 7F0CE408 02402825 */ move $a1, $s2 +/* 102F3C 7F0CE40C AFA80010 */ sw $t0, 0x10($sp) +/* 102F40 7F0CE410 AFAA0014 */ sw $t2, 0x14($sp) +/* 102F44 7F0CE414 AFAB0018 */ sw $t3, 0x18($sp) +/* 102F48 7F0CE418 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 102F4C 7F0CE41C AFA9001C */ sw $t1, 0x1c($sp) +/* 102F50 7F0CE420 10000073 */ b .L7F0CE5F0 +/* 102F54 7F0CE424 00408025 */ move $s0, $v0 +.L7F0CE428: +/* 102F58 7F0CE428 8E240004 */ lw $a0, 4($s1) +/* 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 +/* 102F6C 7F0CE43C AFA40080 */ sw $a0, 0x80($sp) +/* 102F70 7F0CE440 8FA40080 */ lw $a0, 0x80($sp) +/* 102F74 7F0CE444 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102F78 7F0CE448 02C02825 */ move $a1, $s6 +/* 102F7C 7F0CE44C 10400068 */ beqz $v0, .L7F0CE5F0 +/* 102F80 7F0CE450 02002025 */ move $a0, $s0 +/* 102F84 7F0CE454 8E230000 */ lw $v1, ($s1) +/* 102F88 7F0CE458 8E290004 */ lw $t1, 4($s1) +/* 102F8C 7F0CE45C AFA20014 */ sw $v0, 0x14($sp) +/* 102F90 7F0CE460 00033582 */ srl $a2, $v1, 0x16 +/* 102F94 7F0CE464 0009CE02 */ srl $t9, $t1, 0x18 +/* 102F98 7F0CE468 332900FF */ andi $t1, $t9, 0xff +/* 102F9C 7F0CE46C 00033D02 */ srl $a3, $v1, 0x14 +/* 102FA0 7F0CE470 00034482 */ srl $t0, $v1, 0x12 +/* 102FA4 7F0CE474 00035382 */ srl $t2, $v1, 0xe +/* 102FA8 7F0CE478 00035A82 */ srl $t3, $v1, 0xa +/* 102FAC 7F0CE47C 30CD0003 */ andi $t5, $a2, 3 +/* 102FB0 7F0CE480 30EF0003 */ andi $t7, $a3, 3 +/* 102FB4 7F0CE484 310E0003 */ andi $t6, $t0, 3 +/* 102FB8 7F0CE488 3159000F */ andi $t9, $t2, 0xf +/* 102FBC 7F0CE48C 3178000F */ andi $t8, $t3, 0xf +/* 102FC0 7F0CE490 01A03025 */ move $a2, $t5 +/* 102FC4 7F0CE494 01E03825 */ move $a3, $t7 +/* 102FC8 7F0CE498 AFB8001C */ sw $t8, 0x1c($sp) +/* 102FCC 7F0CE49C AFB90018 */ sw $t9, 0x18($sp) +/* 102FD0 7F0CE4A0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102FD4 7F0CE4A4 AFA90020 */ sw $t1, 0x20($sp) +/* 102FD8 7F0CE4A8 0FC337AA */ jal sub_GAME_7F0CDEA8 +/* 102FDC 7F0CE4AC 02402825 */ move $a1, $s2 +/* 102FE0 7F0CE4B0 1000004F */ b .L7F0CE5F0 +/* 102FE4 7F0CE4B4 00408025 */ move $s0, $v0 +.L7F0CE4B8: +/* 102FE8 7F0CE4B8 00033582 */ srl $a2, $v1, 0x16 +/* 102FEC 7F0CE4BC 00033D02 */ srl $a3, $v1, 0x14 +/* 102FF0 7F0CE4C0 00034482 */ srl $t0, $v1, 0x12 +/* 102FF4 7F0CE4C4 30CD0003 */ andi $t5, $a2, 3 +/* 102FF8 7F0CE4C8 30EF0003 */ andi $t7, $a3, 3 +/* 102FFC 7F0CE4CC 310E0003 */ andi $t6, $t0, 3 +/* 103000 7F0CE4D0 01A03025 */ move $a2, $t5 +/* 103004 7F0CE4D4 01E03825 */ move $a3, $t7 +/* 103008 7F0CE4D8 12800024 */ beqz $s4, .L7F0CE56C +/* 10300C 7F0CE4DC 01C04025 */ move $t0, $t6 +/* 103010 7F0CE4E0 8EB90000 */ lw $t9, ($s5) +/* 103014 7F0CE4E4 0013C080 */ sll $t8, $s3, 2 +/* 103018 7F0CE4E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 10301C 7F0CE4EC 03381021 */ addu $v0, $t9, $t8 +/* 103020 7F0CE4F0 904D0001 */ lbu $t5, 1($v0) +/* 103024 7F0CE4F4 02002025 */ move $a0, $s0 +/* 103028 7F0CE4F8 02402825 */ move $a1, $s2 +/* 10302C 7F0CE4FC 000D7942 */ srl $t7, $t5, 5 +/* 103030 7F0CE500 02EF7023 */ subu $t6, $s7, $t7 +/* 103034 7F0CE504 AFAE0014 */ sw $t6, 0x14($sp) +/* 103038 7F0CE508 8C590000 */ lw $t9, ($v0) +/* 10303C 7F0CE50C 0019C2C0 */ sll $t8, $t9, 0xb +/* 103040 7F0CE510 00186F42 */ srl $t5, $t8, 0x1d +/* 103044 7F0CE514 02ED7823 */ subu $t7, $s7, $t5 +/* 103048 7F0CE518 AFAF0018 */ sw $t7, 0x18($sp) +/* 10304C 7F0CE51C 904E0000 */ lbu $t6, ($v0) +/* 103050 7F0CE520 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 103054 7F0CE524 AFAE001C */ sw $t6, 0x1c($sp) +/* 103058 7F0CE528 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 10305C 7F0CE52C 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 103060 7F0CE530 AC590000 */ sw $t9, ($v0) +/* 103064 7F0CE534 3C0DBA00 */ lui $t5, (0xBA001001 >> 16) # lui $t5, 0xba00 +/* 103068 7F0CE538 3C0EBA00 */ lui $t6, (0xBA001102 >> 16) # lui $t6, 0xba00 +/* 10306C 7F0CE53C 3C180010 */ lui $t8, 0x10 +/* 103070 7F0CE540 35AD1001 */ ori $t5, (0xBA001001 & 0xFFFF) # ori $t5, $t5, 0x1001 +/* 103074 7F0CE544 3C0F0001 */ lui $t7, 1 +/* 103078 7F0CE548 35CE1102 */ ori $t6, (0xBA001102 & 0xFFFF) # ori $t6, $t6, 0x1102 +/* 10307C 7F0CE54C 3C190004 */ lui $t9, 4 +/* 103080 7F0CE550 AC580004 */ sw $t8, 4($v0) +/* 103084 7F0CE554 AC4F000C */ sw $t7, 0xc($v0) +/* 103088 7F0CE558 AC4D0008 */ sw $t5, 8($v0) +/* 10308C 7F0CE55C AC590014 */ sw $t9, 0x14($v0) +/* 103090 7F0CE560 AC4E0010 */ sw $t6, 0x10($v0) +/* 103094 7F0CE564 10000022 */ b .L7F0CE5F0 +/* 103098 7F0CE568 24500018 */ addiu $s0, $v0, 0x18 +.L7F0CE56C: +/* 10309C 7F0CE56C 02002025 */ move $a0, $s0 +/* 1030A0 7F0CE570 02402825 */ move $a1, $s2 +/* 1030A4 7F0CE574 0FC33786 */ jal sub_GAME_7F0CDE18 +/* 1030A8 7F0CE578 AFA80010 */ sw $t0, 0x10($sp) +/* 1030AC 7F0CE57C 1000001C */ b .L7F0CE5F0 +/* 1030B0 7F0CE580 00408025 */ move $s0, $v0 +.L7F0CE584: +/* 1030B4 7F0CE584 00033582 */ srl $a2, $v1, 0x16 +/* 1030B8 7F0CE588 00033D02 */ srl $a3, $v1, 0x14 +/* 1030BC 7F0CE58C 00034482 */ srl $t0, $v1, 0x12 +/* 1030C0 7F0CE590 30D80003 */ andi $t8, $a2, 3 +/* 1030C4 7F0CE594 30ED0003 */ andi $t5, $a3, 3 +/* 1030C8 7F0CE598 310F0003 */ andi $t7, $t0, 3 +/* 1030CC 7F0CE59C 03003025 */ move $a2, $t8 +/* 1030D0 7F0CE5A0 01A03825 */ move $a3, $t5 +/* 1030D4 7F0CE5A4 AFAF0010 */ sw $t7, 0x10($sp) +/* 1030D8 7F0CE5A8 02002025 */ move $a0, $s0 +/* 1030DC 7F0CE5AC 0FC3382B */ jal sub_GAME_7F0CE0AC +/* 1030E0 7F0CE5B0 02402825 */ move $a1, $s2 +/* 1030E4 7F0CE5B4 1000000E */ b .L7F0CE5F0 +/* 1030E8 7F0CE5B8 00408025 */ move $s0, $v0 +.L7F0CE5BC: +/* 1030EC 7F0CE5BC 00033582 */ srl $a2, $v1, 0x16 +/* 1030F0 7F0CE5C0 00033D02 */ srl $a3, $v1, 0x14 +/* 1030F4 7F0CE5C4 00034482 */ srl $t0, $v1, 0x12 +/* 1030F8 7F0CE5C8 30CE0003 */ andi $t6, $a2, 3 +/* 1030FC 7F0CE5CC 30F90003 */ andi $t9, $a3, 3 +/* 103100 7F0CE5D0 31180003 */ andi $t8, $t0, 3 +/* 103104 7F0CE5D4 01C03025 */ move $a2, $t6 +/* 103108 7F0CE5D8 03203825 */ move $a3, $t9 +/* 10310C 7F0CE5DC AFB80010 */ sw $t8, 0x10($sp) +/* 103110 7F0CE5E0 02002025 */ move $a0, $s0 +/* 103114 7F0CE5E4 0FC33819 */ jal sub_GAME_7F0CE064 +/* 103118 7F0CE5E8 02402825 */ move $a1, $s2 +/* 10311C 7F0CE5EC 00408025 */ move $s0, $v0 +def_7F0CE2B4: +.L7F0CE5F0: +/* 103120 7F0CE5F0 240105E4 */ li $at, 1508 +/* 103124 7F0CE5F4 16610005 */ bne $s3, $at, .L7F0CE60C +/* 103128 7F0CE5F8 02002025 */ move $a0, $s0 +/* 10312C 7F0CE5FC 0FC24D0F */ jal sub_GAME_7F09343C +/* 103130 7F0CE600 24050001 */ li $a1, 1 +/* 103134 7F0CE604 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 103138 7F0CE608 00408025 */ move $s0, $v0 +.L7F0CE60C: +/* 10313C 7F0CE60C 240105E7 */ li $at, 1511 +/* 103140 7F0CE610 16610005 */ bne $s3, $at, .L7F0CE628 +/* 103144 7F0CE614 02002025 */ move $a0, $s0 +/* 103148 7F0CE618 0FC24D97 */ jal sub_GAME_7F09365C +/* 10314C 7F0CE61C 24050001 */ li $a1, 1 +/* 103150 7F0CE620 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 103154 7F0CE624 00408025 */ move $s0, $v0 +.L7F0CE628: +/* 103158 7F0CE628 0FC2ED8C */ jal check_if_imageID_is_light +/* 10315C 7F0CE62C 02602025 */ move $a0, $s3 +/* 103160 7F0CE630 10400004 */ beqz $v0, .L7F0CE644 +/* 103164 7F0CE634 02002025 */ move $a0, $s0 +/* 103168 7F0CE638 240D0001 */ li $t5, 1 +/* 10316C 7F0CE63C 0FC2ED67 */ jal add_entry_to_init_lightfixture_table +/* 103170 7F0CE640 AFAD0058 */ sw $t5, 0x58($sp) +.L7F0CE644: +/* 103174 7F0CE644 1000003C */ b .L7F0CE738 +/* 103178 7F0CE648 26310008 */ addiu $s1, $s1, 8 +/* 10317C 7F0CE64C 8E210000 */ lw $at, ($s1) +.L7F0CE650: +/* 103180 7F0CE650 241E0001 */ li $fp, 1 +/* 103184 7F0CE654 26100008 */ addiu $s0, $s0, 8 +/* 103188 7F0CE658 AE01FFF8 */ sw $at, -8($s0) +/* 10318C 7F0CE65C 8E390004 */ lw $t9, 4($s1) +/* 103190 7F0CE660 26310008 */ addiu $s1, $s1, 8 +/* 103194 7F0CE664 10000034 */ b .L7F0CE738 +/* 103198 7F0CE668 AE19FFFC */ sw $t9, -4($s0) +.L7F0CE66C: +/* 10319C 7F0CE66C 24180001 */ li $t8, 1 +/* 1031A0 7F0CE670 AFB8005C */ sw $t8, 0x5c($sp) +/* 1031A4 7F0CE674 8E210000 */ lw $at, ($s1) +/* 1031A8 7F0CE678 0000F025 */ move $fp, $zero +/* 1031AC 7F0CE67C 26100008 */ addiu $s0, $s0, 8 +/* 1031B0 7F0CE680 AE01FFF8 */ sw $at, -8($s0) +/* 1031B4 7F0CE684 8E2F0004 */ lw $t7, 4($s1) +/* 1031B8 7F0CE688 26310008 */ addiu $s1, $s1, 8 +/* 1031BC 7F0CE68C 1000002A */ b .L7F0CE738 +/* 1031C0 7F0CE690 AE0FFFFC */ sw $t7, -4($s0) +.L7F0CE694: +/* 1031C4 7F0CE694 AFB0008C */ sw $s0, 0x8c($sp) +/* 1031C8 7F0CE698 AFA0005C */ sw $zero, 0x5c($sp) +/* 1031CC 7F0CE69C 8E210000 */ lw $at, ($s1) +/* 1031D0 7F0CE6A0 26100008 */ addiu $s0, $s0, 8 +/* 1031D4 7F0CE6A4 26310008 */ addiu $s1, $s1, 8 +/* 1031D8 7F0CE6A8 AE01FFF8 */ sw $at, -8($s0) +/* 1031DC 7F0CE6AC 8E2EFFFC */ lw $t6, -4($s1) +/* 1031E0 7F0CE6B0 10000021 */ b .L7F0CE738 +/* 1031E4 7F0CE6B4 AE0EFFFC */ sw $t6, -4($s0) +.L7F0CE6B8: +/* 1031E8 7F0CE6B8 52800013 */ beql $s4, $zero, .L7F0CE708 +/* 1031EC 7F0CE6BC 8E210000 */ lw $at, ($s1) +/* 1031F0 7F0CE6C0 82220002 */ lb $v0, 2($s1) +/* 1031F4 7F0CE6C4 24010011 */ li $at, 17 +/* 1031F8 7F0CE6C8 10410005 */ beq $v0, $at, .L7F0CE6E0 +/* 1031FC 7F0CE6CC 24010014 */ li $at, 20 +/* 103200 7F0CE6D0 10410003 */ beq $v0, $at, .L7F0CE6E0 +/* 103204 7F0CE6D4 24010010 */ li $at, 16 +/* 103208 7F0CE6D8 54410004 */ bnel $v0, $at, .L7F0CE6EC +/* 10320C 7F0CE6DC 8E210000 */ lw $at, ($s1) +.L7F0CE6E0: +/* 103210 7F0CE6E0 10000015 */ b .L7F0CE738 +/* 103214 7F0CE6E4 26310008 */ addiu $s1, $s1, 8 +/* 103218 7F0CE6E8 8E210000 */ lw $at, ($s1) +.L7F0CE6EC: +/* 10321C 7F0CE6EC 26100008 */ addiu $s0, $s0, 8 +/* 103220 7F0CE6F0 26310008 */ addiu $s1, $s1, 8 +/* 103224 7F0CE6F4 AE01FFF8 */ sw $at, -8($s0) +/* 103228 7F0CE6F8 8E2FFFFC */ lw $t7, -4($s1) +/* 10322C 7F0CE6FC 1000000E */ b .L7F0CE738 +/* 103230 7F0CE700 AE0FFFFC */ sw $t7, -4($s0) +/* 103234 7F0CE704 8E210000 */ lw $at, ($s1) +.L7F0CE708: +/* 103238 7F0CE708 26100008 */ addiu $s0, $s0, 8 +/* 10323C 7F0CE70C 26310008 */ addiu $s1, $s1, 8 +/* 103240 7F0CE710 AE01FFF8 */ sw $at, -8($s0) +/* 103244 7F0CE714 8E39FFFC */ lw $t9, -4($s1) +/* 103248 7F0CE718 10000007 */ b .L7F0CE738 +/* 10324C 7F0CE71C AE19FFFC */ sw $t9, -4($s0) +.L7F0CE720: +/* 103250 7F0CE720 8E210000 */ lw $at, ($s1) +.L7F0CE724: +/* 103254 7F0CE724 26100008 */ addiu $s0, $s0, 8 +/* 103258 7F0CE728 26310008 */ addiu $s1, $s1, 8 +/* 10325C 7F0CE72C AE01FFF8 */ sw $at, -8($s0) +/* 103260 7F0CE730 8E2DFFFC */ lw $t5, -4($s1) +/* 103264 7F0CE734 AE0DFFFC */ sw $t5, -4($s0) +.L7F0CE738: +/* 103268 7F0CE738 8FAF0088 */ lw $t7, 0x88($sp) +/* 10326C 7F0CE73C 25F8FFFF */ addiu $t8, $t7, -1 +/* 103270 7F0CE740 1F00FE94 */ bgtz $t8, .L7F0CE194 +/* 103274 7F0CE744 AFB80088 */ sw $t8, 0x88($sp) +.L7F0CE748: +/* 103278 7F0CE748 8FB90058 */ lw $t9, 0x58($sp) +/* 10327C 7F0CE74C 53200004 */ beql $t9, $zero, .L7F0CE760 +/* 103280 7F0CE750 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 103284 7F0CE754 0FC2ED80 */ jal save_ptrDL_enpoint_to_current_init_lightfixture_table +/* 103288 7F0CE758 02002025 */ move $a0, $s0 +/* 10328C 7F0CE75C 8FAE00A0 */ lw $t6, 0xa0($sp) +.L7F0CE760: +/* 103290 7F0CE760 8FBF0054 */ lw $ra, 0x54($sp) +/* 103294 7F0CE764 8FB10034 */ lw $s1, 0x34($sp) +/* 103298 7F0CE768 020E1023 */ subu $v0, $s0, $t6 +/* 10329C 7F0CE76C 8FB00030 */ lw $s0, 0x30($sp) +/* 1032A0 7F0CE770 8FB20038 */ lw $s2, 0x38($sp) +/* 1032A4 7F0CE774 8FB3003C */ lw $s3, 0x3c($sp) +/* 1032A8 7F0CE778 8FB40040 */ lw $s4, 0x40($sp) +/* 1032AC 7F0CE77C 8FB50044 */ lw $s5, 0x44($sp) +/* 1032B0 7F0CE780 8FB60048 */ lw $s6, 0x48($sp) +/* 1032B4 7F0CE784 8FB7004C */ lw $s7, 0x4c($sp) +/* 1032B8 7F0CE788 8FBE0050 */ lw $fp, 0x50($sp) +/* 1032BC 7F0CE78C 03E00008 */ jr $ra +/* 1032C0 7F0CE790 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE794(void) { + +} +#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 new file mode 100644 index 0000000..32719ef --- /dev/null +++ b/src/game/unk_0CC4C0.h @@ -0,0 +1,12 @@ +#ifndef _UNK_0CC4C0_H_ +#define _UNK_0CC4C0_H_ +#include "ultra64.h" + +struct image_sound { + u32 *thing1; + u32 *thing2; + u16 thing3; + u16 thing4; +}; + +#endif diff --git a/src/game/unk_0D1AC0.c b/src/game/unk_0D1AC0.c new file mode 100644 index 0000000..aab277c --- /dev/null +++ b/src/game/unk_0D1AC0.c @@ -0,0 +1,734 @@ +#include "ultra64.h" + + +// data +f32 D_8004EAF0 = 0.0; +f32 D_8004EAF4 = 0.0; + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0D1AC0(void *arg0) { + void *temp_v1; + void *temp_a1; + void *temp_a0; + void *temp_a3; + void *temp_v1_2; + void *temp_a1_2; + void *temp_a2; + + // Node 0 + D_8004EAF4 = 0.0f; + D_8004EAF0 = (f32) D_8004EAF4; + temp_v1 = (arg0 + 8); + *arg0 = 0xba000c02; + arg0->unk4 = 0; + temp_a1 = (temp_v1 + 8); + temp_v1->unk4 = 0xc0; + *temp_v1 = 0xba000602; + temp_a1->unk4 = 1; + *temp_a1 = 0xb6000000; + temp_a0 = (temp_a1 + 8); + temp_a3 = (temp_a0 + 8); + *temp_a0 = 0xe7000000; + temp_a0->unk4 = 0; + temp_v1_2 = (temp_a3 + 8); + *temp_a3 = 0xba001301; + temp_a3->unk4 = 0; + temp_a1_2 = (temp_v1_2 + 8); + temp_v1_2->unk4 = 0x300000; + *temp_v1_2 = 0xba001402; + temp_a2 = (temp_a1_2 + 8); + temp_a1_2->unk4 = 0xf0a4000; + *temp_a1_2 = 0xb900031d; + temp_a2->unk4 = 0x800000; + *temp_a2 = 0xba001701; + return; + // (possible return value: (temp_a2 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1AC0 +/* 1065F0 7F0D1AC0 44802000 */ mtc1 $zero, $f4 +/* 1065F4 7F0D1AC4 3C088005 */ lui $t0, %hi(D_8004EAF4) +/* 1065F8 7F0D1AC8 2508EAF4 */ addiu $t0, %lo(D_8004EAF4) # addiu $t0, $t0, -0x150c +/* 1065FC 7F0D1ACC E5040000 */ swc1 $f4, ($t0) +/* 106600 7F0D1AD0 C5060000 */ lwc1 $f6, ($t0) +/* 106604 7F0D1AD4 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106608 7F0D1AD8 00801025 */ move $v0, $a0 +/* 10660C 7F0D1ADC 3C0EBA00 */ lui $t6, (0xBA000C02 >> 16) # lui $t6, 0xba00 +/* 106610 7F0D1AE0 E426EAF0 */ swc1 $f6, %lo(D_8004EAF0)($at) +/* 106614 7F0D1AE4 35CE0C02 */ ori $t6, (0xBA000C02 & 0xFFFF) # ori $t6, $t6, 0xc02 +/* 106618 7F0D1AE8 24830008 */ addiu $v1, $a0, 8 +/* 10661C 7F0D1AEC AC4E0000 */ sw $t6, ($v0) +/* 106620 7F0D1AF0 AC400004 */ sw $zero, 4($v0) +/* 106624 7F0D1AF4 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 106628 7F0D1AF8 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 10662C 7F0D1AFC 24650008 */ addiu $a1, $v1, 8 +/* 106630 7F0D1B00 241800C0 */ li $t8, 192 +/* 106634 7F0D1B04 AC780004 */ sw $t8, 4($v1) +/* 106638 7F0D1B08 AC6F0000 */ sw $t7, ($v1) +/* 10663C 7F0D1B0C 3C19B600 */ lui $t9, 0xb600 +/* 106640 7F0D1B10 24090001 */ li $t1, 1 +/* 106644 7F0D1B14 ACA90004 */ sw $t1, 4($a1) +/* 106648 7F0D1B18 ACB90000 */ sw $t9, ($a1) +/* 10664C 7F0D1B1C 24A40008 */ addiu $a0, $a1, 8 +/* 106650 7F0D1B20 24870008 */ addiu $a3, $a0, 8 +/* 106654 7F0D1B24 3C0AE700 */ lui $t2, 0xe700 +/* 106658 7F0D1B28 AC8A0000 */ sw $t2, ($a0) +/* 10665C 7F0D1B2C AC800004 */ sw $zero, 4($a0) +/* 106660 7F0D1B30 3C0BBA00 */ lui $t3, (0xBA001301 >> 16) # lui $t3, 0xba00 +/* 106664 7F0D1B34 356B1301 */ ori $t3, (0xBA001301 & 0xFFFF) # ori $t3, $t3, 0x1301 +/* 106668 7F0D1B38 24E30008 */ addiu $v1, $a3, 8 +/* 10666C 7F0D1B3C ACEB0000 */ sw $t3, ($a3) +/* 106670 7F0D1B40 ACE00004 */ sw $zero, 4($a3) +/* 106674 7F0D1B44 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 106678 7F0D1B48 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 10667C 7F0D1B4C 24650008 */ addiu $a1, $v1, 8 +/* 106680 7F0D1B50 3C0D0030 */ lui $t5, 0x30 +/* 106684 7F0D1B54 AC6D0004 */ sw $t5, 4($v1) +/* 106688 7F0D1B58 AC6C0000 */ sw $t4, ($v1) +/* 10668C 7F0D1B5C 3C0F0F0A */ lui $t7, (0x0F0A4000 >> 16) # lui $t7, 0xf0a +/* 106690 7F0D1B60 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 106694 7F0D1B64 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 106698 7F0D1B68 35EF4000 */ ori $t7, (0x0F0A4000 & 0xFFFF) # ori $t7, $t7, 0x4000 +/* 10669C 7F0D1B6C 24A60008 */ addiu $a2, $a1, 8 +/* 1066A0 7F0D1B70 3C18BA00 */ lui $t8, (0xBA001701 >> 16) # lui $t8, 0xba00 +/* 1066A4 7F0D1B74 ACAF0004 */ sw $t7, 4($a1) +/* 1066A8 7F0D1B78 ACAE0000 */ sw $t6, ($a1) +/* 1066AC 7F0D1B7C 37181701 */ ori $t8, (0xBA001701 & 0xFFFF) # ori $t8, $t8, 0x1701 +/* 1066B0 7F0D1B80 3C190080 */ lui $t9, 0x80 +/* 1066B4 7F0D1B84 ACD90004 */ sw $t9, 4($a2) +/* 1066B8 7F0D1B88 ACD80000 */ sw $t8, ($a2) +/* 1066BC 7F0D1B8C 03E00008 */ jr $ra +/* 1066C0 7F0D1B90 24C20008 */ addiu $v0, $a2, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1B94(s32 arg1, ?32 argE) { + // Node 0 + sub_GAME_7F0D1BD0(arg1, arg1, argE, 2, 1); + return; + // (possible return value: sub_GAME_7F0D1BD0(arg1, arg1, argE, 2, 1)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1B94 +/* 1066C4 7F0D1B94 44856000 */ mtc1 $a1, $f12 +/* 1066C8 7F0D1B98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 1066CC 7F0D1B9C 8FAE0038 */ lw $t6, 0x38($sp) +/* 1066D0 7F0D1BA0 AFBF0024 */ sw $ra, 0x24($sp) +/* 1066D4 7F0D1BA4 240F0002 */ li $t7, 2 +/* 1066D8 7F0D1BA8 24180001 */ li $t8, 1 +/* 1066DC 7F0D1BAC 44056000 */ mfc1 $a1, $f12 +/* 1066E0 7F0D1BB0 AFB80018 */ sw $t8, 0x18($sp) +/* 1066E4 7F0D1BB4 AFAF0014 */ sw $t7, 0x14($sp) +/* 1066E8 7F0D1BB8 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 1066EC 7F0D1BBC AFAE0010 */ sw $t6, 0x10($sp) +/* 1066F0 7F0D1BC0 8FBF0024 */ lw $ra, 0x24($sp) +/* 1066F4 7F0D1BC4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1066F8 7F0D1BC8 03E00008 */ jr $ra +/* 1066FC 7F0D1BCC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1BD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1BD0 +/* 106700 7F0D1BD0 44856000 */ mtc1 $a1, $f12 +/* 106704 7F0D1BD4 44802000 */ mtc1 $zero, $f4 +/* 106708 7F0D1BD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 10670C 7F0D1BDC AFB2000C */ sw $s2, 0xc($sp) +/* 106710 7F0D1BE0 460C203C */ c.lt.s $f4, $f12 +/* 106714 7F0D1BE4 AFB10008 */ sw $s1, 8($sp) +/* 106718 7F0D1BE8 AFB00004 */ sw $s0, 4($sp) +/* 10671C 7F0D1BEC AFA60018 */ sw $a2, 0x18($sp) +/* 106720 7F0D1BF0 45000070 */ bc1f .L7F0D1DB4 +/* 106724 7F0D1BF4 AFA7001C */ sw $a3, 0x1c($sp) +/* 106728 7F0D1BF8 3C058005 */ lui $a1, %hi(D_8004EAF4) +/* 10672C 7F0D1BFC 24A5EAF4 */ addiu $a1, %lo(D_8004EAF4) # addiu $a1, $a1, -0x150c +/* 106730 7F0D1C00 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 106734 7F0D1C04 44817000 */ mtc1 $at, $f14 +/* 106738 7F0D1C08 C4A00000 */ lwc1 $f0, ($a1) +/* 10673C 7F0D1C0C 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106740 7F0D1C10 44815000 */ mtc1 $at, $f10 +/* 106744 7F0D1C14 460E0183 */ div.s $f6, $f0, $f14 +/* 106748 7F0D1C18 00804025 */ move $t0, $a0 +/* 10674C 7F0D1C1C 3C18F700 */ lui $t8, 0xf700 +/* 106750 7F0D1C20 AD180000 */ sw $t8, ($t0) +/* 106754 7F0D1C24 460A0402 */ mul.s $f16, $f0, $f10 +/* 106758 7F0D1C28 460C0080 */ add.s $f2, $f0, $f12 +/* 10675C 7F0D1C2C 8FB90018 */ lw $t9, 0x18($sp) +/* 106760 7F0D1C30 8FB8001C */ lw $t8, 0x1c($sp) +/* 106764 7F0D1C34 24840008 */ addiu $a0, $a0, 8 +/* 106768 7F0D1C38 00197200 */ sll $t6, $t9, 8 +/* 10676C 7F0D1C3C 31CFF800 */ andi $t7, $t6, 0xf800 +/* 106770 7F0D1C40 0018C8C0 */ sll $t9, $t8, 3 +/* 106774 7F0D1C44 332E07C0 */ andi $t6, $t9, 0x7c0 +/* 106778 7F0D1C48 8FB90020 */ lw $t9, 0x20($sp) +/* 10677C 7F0D1C4C 01EEC025 */ or $t8, $t7, $t6 +/* 106780 7F0D1C50 00197883 */ sra $t7, $t9, 2 +/* 106784 7F0D1C54 31EE003E */ andi $t6, $t7, 0x3e +/* 106788 7F0D1C58 030E4825 */ or $t1, $t8, $t6 +/* 10678C 7F0D1C5C 35390001 */ ori $t9, $t1, 1 +/* 106790 7F0D1C60 00197C00 */ sll $t7, $t9, 0x10 +/* 106794 7F0D1C64 01F9C025 */ or $t8, $t7, $t9 +/* 106798 7F0D1C68 460E8483 */ div.s $f18, $f16, $f14 +/* 10679C 7F0D1C6C AD180004 */ sw $t8, 4($t0) +/* 1067A0 7F0D1C70 4600320D */ trunc.w.s $f8, $f6 +/* 1067A4 7F0D1C74 44064000 */ mfc1 $a2, $f8 +/* 1067A8 7F0D1C78 00000000 */ nop +/* 1067AC 7F0D1C7C 00C01025 */ move $v0, $a2 +/* 1067B0 7F0D1C80 460E1183 */ div.s $f6, $f2, $f14 +/* 1067B4 7F0D1C84 4600910D */ trunc.w.s $f4, $f18 +/* 1067B8 7F0D1C88 44072000 */ mfc1 $a3, $f4 +/* 1067BC 7F0D1C8C 4600320D */ trunc.w.s $f8, $f6 +/* 1067C0 7F0D1C90 44034000 */ mfc1 $v1, $f8 +/* 1067C4 7F0D1C94 00000000 */ nop +/* 1067C8 7F0D1C98 0066082A */ slt $at, $v1, $a2 +/* 1067CC 7F0D1C9C 14200042 */ bnez $at, .L7F0D1DA8 +/* 1067D0 7F0D1CA0 28C10003 */ slti $at, $a2, 3 +/* 1067D4 7F0D1CA4 10200040 */ beqz $at, .L7F0D1DA8 +/* 1067D8 7F0D1CA8 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 1067DC 7F0D1CAC 44815000 */ mtc1 $at, $f10 +/* 1067E0 7F0D1CB0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 1067E4 7F0D1CB4 44819000 */ mtc1 $at, $f18 +/* 1067E8 7F0D1CB8 460A1402 */ mul.s $f16, $f2, $f10 +/* 1067EC 7F0D1CBC 000240C0 */ sll $t0, $v0, 3 +/* 1067F0 7F0D1CC0 01024023 */ subu $t0, $t0, $v0 +/* 1067F4 7F0D1CC4 000840C0 */ sll $t0, $t0, 3 +/* 1067F8 7F0D1CC8 01024023 */ subu $t0, $t0, $v0 +/* 1067FC 7F0D1CCC 00084080 */ sll $t0, $t0, 2 +/* 106800 7F0D1CD0 01024023 */ subu $t0, $t0, $v0 +/* 106804 7F0D1CD4 46128103 */ div.s $f4, $f16, $f18 +/* 106808 7F0D1CD8 00E84823 */ subu $t1, $a3, $t0 +/* 10680C 7F0D1CDC 25290032 */ addiu $t1, $t1, 0x32 +/* 106810 7F0D1CE0 24120007 */ li $s2, 7 +/* 106814 7F0D1CE4 3C11F600 */ lui $s1, 0xf600 +/* 106818 7F0D1CE8 8FAD0028 */ lw $t5, 0x28($sp) +/* 10681C 7F0D1CEC 8FAC0024 */ lw $t4, 0x24($sp) +/* 106820 7F0D1CF0 4600218D */ trunc.w.s $f6, $f4 +/* 106824 7F0D1CF4 44063000 */ mfc1 $a2, $f6 +/* 106828 7F0D1CF8 00000000 */ nop +/* 10682C 7F0D1CFC 00C85823 */ subu $t3, $a2, $t0 +.L7F0D1D00: +/* 106830 7F0D1D00 256B0032 */ addiu $t3, $t3, 0x32 +/* 106834 7F0D1D04 29210032 */ slti $at, $t1, 0x32 +/* 106838 7F0D1D08 01203825 */ move $a3, $t1 +/* 10683C 7F0D1D0C 10200002 */ beqz $at, .L7F0D1D18 +/* 106840 7F0D1D10 01605025 */ move $t2, $t3 +/* 106844 7F0D1D14 24070032 */ li $a3, 50 +.L7F0D1D18: +/* 106848 7F0D1D18 2961010E */ slti $at, $t3, 0x10e +/* 10684C 7F0D1D1C 14200002 */ bnez $at, .L7F0D1D28 +/* 106850 7F0D1D20 250800DB */ addiu $t0, $t0, 0xdb +/* 106854 7F0D1D24 240A010D */ li $t2, 269 +.L7F0D1D28: +/* 106858 7F0D1D28 0147082A */ slt $at, $t2, $a3 +/* 10685C 7F0D1D2C 54200018 */ bnezl $at, .L7F0D1D90 +/* 106860 7F0D1D30 24420001 */ addiu $v0, $v0, 1 +/* 106864 7F0D1D34 00520019 */ multu $v0, $s2 +/* 106868 7F0D1D38 314F03FF */ andi $t7, $t2, 0x3ff +/* 10686C 7F0D1D3C 000FC380 */ sll $t8, $t7, 0xe +/* 106870 7F0D1D40 018DC821 */ addu $t9, $t4, $t5 +/* 106874 7F0D1D44 03117025 */ or $t6, $t8, $s1 +/* 106878 7F0D1D48 00805825 */ move $t3, $a0 +/* 10687C 7F0D1D4C 24840008 */ addiu $a0, $a0, 8 +/* 106880 7F0D1D50 00008012 */ mflo $s0 +/* 106884 7F0D1D54 03307821 */ addu $t7, $t9, $s0 +/* 106888 7F0D1D58 25F80011 */ addiu $t8, $t7, 0x11 +/* 10688C 7F0D1D5C 331903FF */ andi $t9, $t8, 0x3ff +/* 106890 7F0D1D60 00197880 */ sll $t7, $t9, 2 +/* 106894 7F0D1D64 01CFC025 */ or $t8, $t6, $t7 +/* 106898 7F0D1D68 AD780000 */ sw $t8, ($t3) +/* 10689C 7F0D1D6C 01B07821 */ addu $t7, $t5, $s0 +/* 1068A0 7F0D1D70 30F903FF */ andi $t9, $a3, 0x3ff +/* 1068A4 7F0D1D74 00197380 */ sll $t6, $t9, 0xe +/* 1068A8 7F0D1D78 25F80012 */ addiu $t8, $t7, 0x12 +/* 1068AC 7F0D1D7C 331903FF */ andi $t9, $t8, 0x3ff +/* 1068B0 7F0D1D80 00197880 */ sll $t7, $t9, 2 +/* 1068B4 7F0D1D84 01CFC025 */ or $t8, $t6, $t7 +/* 1068B8 7F0D1D88 AD780004 */ sw $t8, 4($t3) +/* 1068BC 7F0D1D8C 24420001 */ addiu $v0, $v0, 1 +.L7F0D1D90: +/* 1068C0 7F0D1D90 0062082A */ slt $at, $v1, $v0 +/* 1068C4 7F0D1D94 14200004 */ bnez $at, .L7F0D1DA8 +/* 1068C8 7F0D1D98 2529FF25 */ addiu $t1, $t1, -0xdb +/* 1068CC 7F0D1D9C 28410003 */ slti $at, $v0, 3 +/* 1068D0 7F0D1DA0 5420FFD7 */ bnezl $at, .L7F0D1D00 +/* 1068D4 7F0D1DA4 00C85823 */ subu $t3, $a2, $t0 +.L7F0D1DA8: +/* 1068D8 7F0D1DA8 C4A80000 */ lwc1 $f8, ($a1) +/* 1068DC 7F0D1DAC 460C4280 */ add.s $f10, $f8, $f12 +/* 1068E0 7F0D1DB0 E4AA0000 */ swc1 $f10, ($a1) +.L7F0D1DB4: +/* 1068E4 7F0D1DB4 8FB00004 */ lw $s0, 4($sp) +/* 1068E8 7F0D1DB8 8FB10008 */ lw $s1, 8($sp) +/* 1068EC 7F0D1DBC 8FB2000C */ lw $s2, 0xc($sp) +/* 1068F0 7F0D1DC0 27BD0010 */ addiu $sp, $sp, 0x10 +/* 1068F4 7F0D1DC4 03E00008 */ jr $ra +/* 1068F8 7F0D1DC8 00801025 */ move $v0, $a0 +) +#endif + + + + + +void sub_GAME_7F0D1DCC(f32 arg0) { + if (0.0f < arg0) { + D_8004EAF4 = (f32) (D_8004EAF4 + arg0); + return; + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1DFC(s32 arg1, ?32 argC) { + // Node 0 + sub_GAME_7F0D1B94(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argC); + return; + // (possible return value: sub_GAME_7F0D1B94(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argC)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1DFC +/* 10692C 7F0D1DFC 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106930 7F0D1E00 44856000 */ mtc1 $a1, $f12 +/* 106934 7F0D1E04 C424EAF0 */ lwc1 $f4, %lo(D_8004EAF0)($at) +/* 106938 7F0D1E08 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 10693C 7F0D1E0C C428EAF4 */ lwc1 $f8, %lo(D_8004EAF4)($at) +/* 106940 7F0D1E10 460C2180 */ add.s $f6, $f4, $f12 +/* 106944 7F0D1E14 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 106948 7F0D1E18 8FAE0030 */ lw $t6, 0x30($sp) +/* 10694C 7F0D1E1C AFBF001C */ sw $ra, 0x1c($sp) +/* 106950 7F0D1E20 46083281 */ sub.s $f10, $f6, $f8 +/* 106954 7F0D1E24 AFAE0010 */ sw $t6, 0x10($sp) +/* 106958 7F0D1E28 44055000 */ mfc1 $a1, $f10 +/* 10695C 7F0D1E2C 0FC346E5 */ jal sub_GAME_7F0D1B94 +/* 106960 7F0D1E30 00000000 */ nop +/* 106964 7F0D1E34 8FBF001C */ lw $ra, 0x1c($sp) +/* 106968 7F0D1E38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 10696C 7F0D1E3C 03E00008 */ jr $ra +/* 106970 7F0D1E40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1E44(s32 arg1, ?32 argE, ?32 argF, ?32 arg10) { + // Node 0 + sub_GAME_7F0D1BD0(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argE, argF, arg10); + return; + // (possible return value: sub_GAME_7F0D1BD0(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argE, argF, arg10)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1E44 +/* 106974 7F0D1E44 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106978 7F0D1E48 44856000 */ mtc1 $a1, $f12 +/* 10697C 7F0D1E4C C424EAF0 */ lwc1 $f4, %lo(D_8004EAF0)($at) +/* 106980 7F0D1E50 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 106984 7F0D1E54 C428EAF4 */ lwc1 $f8, %lo(D_8004EAF4)($at) +/* 106988 7F0D1E58 460C2180 */ add.s $f6, $f4, $f12 +/* 10698C 7F0D1E5C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 106990 7F0D1E60 8FAE0038 */ lw $t6, 0x38($sp) +/* 106994 7F0D1E64 8FAF003C */ lw $t7, 0x3c($sp) +/* 106998 7F0D1E68 46083281 */ sub.s $f10, $f6, $f8 +/* 10699C 7F0D1E6C 8FB80040 */ lw $t8, 0x40($sp) +/* 1069A0 7F0D1E70 AFBF0024 */ sw $ra, 0x24($sp) +/* 1069A4 7F0D1E74 AFAE0010 */ sw $t6, 0x10($sp) +/* 1069A8 7F0D1E78 44055000 */ mfc1 $a1, $f10 +/* 1069AC 7F0D1E7C AFAF0014 */ sw $t7, 0x14($sp) +/* 1069B0 7F0D1E80 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 1069B4 7F0D1E84 AFB80018 */ sw $t8, 0x18($sp) +/* 1069B8 7F0D1E88 8FBF0024 */ lw $ra, 0x24($sp) +/* 1069BC 7F0D1E8C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1069C0 7F0D1E90 03E00008 */ jr $ra +/* 1069C4 7F0D1E94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1E98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1E98 +/* 1069C8 7F0D1E98 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 1069CC 7F0D1E9C 44810000 */ mtc1 $at, $f0 +/* 1069D0 7F0D1EA0 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 1069D4 7F0D1EA4 C424EAF4 */ lwc1 $f4, %lo(D_8004EAF4)($at) +/* 1069D8 7F0D1EA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1069DC 7F0D1EAC AFBF002C */ sw $ra, 0x2c($sp) +/* 1069E0 7F0D1EB0 46002183 */ div.s $f6, $f4, $f0 +/* 1069E4 7F0D1EB4 AFBE0028 */ sw $fp, 0x28($sp) +/* 1069E8 7F0D1EB8 AFB70024 */ sw $s7, 0x24($sp) +/* 1069EC 7F0D1EBC AFB60020 */ sw $s6, 0x20($sp) +/* 1069F0 7F0D1EC0 AFB5001C */ sw $s5, 0x1c($sp) +/* 1069F4 7F0D1EC4 AFB40018 */ sw $s4, 0x18($sp) +/* 1069F8 7F0D1EC8 AFB30014 */ sw $s3, 0x14($sp) +/* 1069FC 7F0D1ECC AFB20010 */ sw $s2, 0x10($sp) +/* 106A00 7F0D1ED0 AFB1000C */ sw $s1, 0xc($sp) +/* 106A04 7F0D1ED4 AFB00008 */ sw $s0, 8($sp) +/* 106A08 7F0D1ED8 00801025 */ move $v0, $a0 +/* 106A0C 7F0D1EDC 3C0FF700 */ lui $t7, 0xf700 +/* 106A10 7F0D1EE0 AC4F0000 */ sw $t7, ($v0) +/* 106A14 7F0D1EE4 000670C0 */ sll $t6, $a2, 3 +/* 106A18 7F0D1EE8 31CF07C0 */ andi $t7, $t6, 0x7c0 +/* 106A1C 7F0D1EEC 0005C200 */ sll $t8, $a1, 8 +/* 106A20 7F0D1EF0 3319F800 */ andi $t9, $t8, 0xf800 +/* 106A24 7F0D1EF4 032FC025 */ or $t8, $t9, $t7 +/* 106A28 7F0D1EF8 00077083 */ sra $t6, $a3, 2 +/* 106A2C 7F0D1EFC 31D9003E */ andi $t9, $t6, 0x3e +/* 106A30 7F0D1F00 03191825 */ or $v1, $t8, $t9 +/* 106A34 7F0D1F04 346F0001 */ ori $t7, $v1, 1 +/* 106A38 7F0D1F08 000F7400 */ sll $t6, $t7, 0x10 +/* 106A3C 7F0D1F0C 4600320D */ trunc.w.s $f8, $f6 +/* 106A40 7F0D1F10 01CFC025 */ or $t8, $t6, $t7 +/* 106A44 7F0D1F14 AC580004 */ sw $t8, 4($v0) +/* 106A48 7F0D1F18 24840008 */ addiu $a0, $a0, 8 +/* 106A4C 7F0D1F1C 44084000 */ mfc1 $t0, $f8 +/* 106A50 7F0D1F20 00000000 */ nop +/* 106A54 7F0D1F24 050200F2 */ bltzl $t0, .L7F0D22F0 +/* 106A58 7F0D1F28 8FBF002C */ lw $ra, 0x2c($sp) +/* 106A5C 7F0D1F2C 44805000 */ mtc1 $zero, $f10 +/* 106A60 7F0D1F30 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106A64 7F0D1F34 44819000 */ mtc1 $at, $f18 +/* 106A68 7F0D1F38 46805420 */ cvt.s.w $f16, $f10 +/* 106A6C 7F0D1F3C 24180001 */ li $t8, 1 +/* 106A70 7F0D1F40 44985000 */ mtc1 $t8, $f10 +/* 106A74 7F0D1F44 3C01F600 */ lui $at, 0xf600 +/* 106A78 7F0D1F48 24180002 */ li $t8, 2 +/* 106A7C 7F0D1F4C 000080C0 */ sll $s0, $zero, 3 +/* 106A80 7F0D1F50 46128102 */ mul.s $f4, $f16, $f18 +/* 106A84 7F0D1F54 02008023 */ subu $s0, $s0, $zero +/* 106A88 7F0D1F58 000848C0 */ sll $t1, $t0, 3 +/* 106A8C 7F0D1F5C 01284823 */ subu $t1, $t1, $t0 +/* 106A90 7F0D1F60 25290012 */ addiu $t1, $t1, 0x12 +/* 106A94 7F0D1F64 26030015 */ addiu $v1, $s0, 0x15 +/* 106A98 7F0D1F68 46805420 */ cvt.s.w $f16, $f10 +/* 106A9C 7F0D1F6C 44985000 */ mtc1 $t8, $f10 +/* 106AA0 7F0D1F70 26020012 */ addiu $v0, $s0, 0x12 +/* 106AA4 7F0D1F74 241F0027 */ li $ra, 39 +/* 106AA8 7F0D1F78 241E000B */ li $fp, 11 +/* 106AAC 7F0D1F7C 46002183 */ div.s $f6, $f4, $f0 +/* 106AB0 7F0D1F80 3C17F600 */ lui $s7, 0xf600 +/* 106AB4 7F0D1F84 4600320D */ trunc.w.s $f8, $f6 +/* 106AB8 7F0D1F88 44054000 */ mfc1 $a1, $f8 +/* 106ABC 7F0D1F8C 00000000 */ nop +/* 106AC0 7F0D1F90 24A50032 */ addiu $a1, $a1, 0x32 +/* 106AC4 7F0D1F94 30AF03FF */ andi $t7, $a1, 0x3ff +/* 106AC8 7F0D1F98 000F2B80 */ sll $a1, $t7, 0xe +/* 106ACC 7F0D1F9C 00A15025 */ or $t2, $a1, $at +/* 106AD0 7F0D1FA0 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106AD4 7F0D1FA4 44819000 */ mtc1 $at, $f18 +/* 106AD8 7F0D1FA8 3C01F600 */ lui $at, 0xf600 +/* 106ADC 7F0D1FAC 46128102 */ mul.s $f4, $f16, $f18 +/* 106AE0 7F0D1FB0 46805420 */ cvt.s.w $f16, $f10 +/* 106AE4 7F0D1FB4 46002183 */ div.s $f6, $f4, $f0 +/* 106AE8 7F0D1FB8 4600320D */ trunc.w.s $f8, $f6 +/* 106AEC 7F0D1FBC 44064000 */ mfc1 $a2, $f8 +/* 106AF0 7F0D1FC0 00000000 */ nop +/* 106AF4 7F0D1FC4 24C60032 */ addiu $a2, $a2, 0x32 +/* 106AF8 7F0D1FC8 30CF03FF */ andi $t7, $a2, 0x3ff +/* 106AFC 7F0D1FCC 000F3380 */ sll $a2, $t7, 0xe +/* 106B00 7F0D1FD0 00C15825 */ or $t3, $a2, $at +/* 106B04 7F0D1FD4 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106B08 7F0D1FD8 44819000 */ mtc1 $at, $f18 +/* 106B0C 7F0D1FDC 3C01F600 */ lui $at, 0xf600 +/* 106B10 7F0D1FE0 46128102 */ mul.s $f4, $f16, $f18 +/* 106B14 7F0D1FE4 46002183 */ div.s $f6, $f4, $f0 +/* 106B18 7F0D1FE8 4600320D */ trunc.w.s $f8, $f6 +/* 106B1C 7F0D1FEC 44074000 */ mfc1 $a3, $f8 +/* 106B20 7F0D1FF0 00000000 */ nop +/* 106B24 7F0D1FF4 24E70032 */ addiu $a3, $a3, 0x32 +/* 106B28 7F0D1FF8 30EF03FF */ andi $t7, $a3, 0x3ff +/* 106B2C 7F0D1FFC 000F3B80 */ sll $a3, $t7, 0xe +/* 106B30 7F0D2000 00E16025 */ or $t4, $a3, $at +/* 106B34 7F0D2004 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106B38 7F0D2008 44811000 */ mtc1 $at, $f2 +/* 106B3C 7F0D200C 00000000 */ nop +/* 106B40 7F0D2010 00808025 */ move $s0, $a0 +.L7F0D2014: +/* 106B44 7F0D2014 307203FF */ andi $s2, $v1, 0x3ff +/* 106B48 7F0D2018 305303FF */ andi $s3, $v0, 0x3ff +/* 106B4C 7F0D201C 00137880 */ sll $t7, $s3, 2 +/* 106B50 7F0D2020 0012C080 */ sll $t8, $s2, 2 +/* 106B54 7F0D2024 0158C825 */ or $t9, $t2, $t8 +/* 106B58 7F0D2028 00AF7025 */ or $t6, $a1, $t7 +/* 106B5C 7F0D202C AE0E0004 */ sw $t6, 4($s0) +/* 106B60 7F0D2030 AE190000 */ sw $t9, ($s0) +/* 106B64 7F0D2034 24840008 */ addiu $a0, $a0, 8 +/* 106B68 7F0D2038 00808025 */ move $s0, $a0 +/* 106B6C 7F0D203C 03009025 */ move $s2, $t8 +/* 106B70 7F0D2040 0178C025 */ or $t8, $t3, $t8 +/* 106B74 7F0D2044 00CFC825 */ or $t9, $a2, $t7 +/* 106B78 7F0D2048 AE190004 */ sw $t9, 4($s0) +/* 106B7C 7F0D204C AE180000 */ sw $t8, ($s0) +/* 106B80 7F0D2050 24840008 */ addiu $a0, $a0, 8 +/* 106B84 7F0D2054 00808025 */ move $s0, $a0 +/* 106B88 7F0D2058 01E09825 */ move $s3, $t7 +/* 106B8C 7F0D205C 00F37025 */ or $t6, $a3, $s3 +/* 106B90 7F0D2060 01927825 */ or $t7, $t4, $s2 +/* 106B94 7F0D2064 AE0F0000 */ sw $t7, ($s0) +/* 106B98 7F0D2068 AE0E0004 */ sw $t6, 4($s0) +/* 106B9C 7F0D206C 24840008 */ addiu $a0, $a0, 8 +/* 106BA0 7F0D2070 240D0003 */ li $t5, 3 +/* 106BA4 7F0D2074 448D7000 */ mtc1 $t5, $f14 +/* 106BA8 7F0D2078 27DEFFFC */ addiu $fp, $fp, -4 +/* 106BAC 7F0D207C 468073A0 */ cvt.s.w $f14, $f14 +/* 106BB0 7F0D2080 46027382 */ mul.s $f14, $f14, $f2 +/* 106BB4 7F0D2084 46007383 */ div.s $f14, $f14, $f0 +/* 106BB8 7F0D2088 4600738D */ trunc.w.s $f14, $f14 +/* 106BBC 7F0D208C 44117000 */ mfc1 $s1, $f14 +/* 106BC0 7F0D2090 00000000 */ nop +/* 106BC4 7F0D2094 26310032 */ addiu $s1, $s1, 0x32 +/* 106BC8 7F0D2098 323903FF */ andi $t9, $s1, 0x3ff +/* 106BCC 7F0D209C 00197B80 */ sll $t7, $t9, 0xe +/* 106BD0 7F0D20A0 01F77025 */ or $t6, $t7, $s7 +/* 106BD4 7F0D20A4 01F3C825 */ or $t9, $t7, $s3 +/* 106BD8 7F0D20A8 25AF0001 */ addiu $t7, $t5, 1 +/* 106BDC 7F0D20AC 448F7000 */ mtc1 $t7, $f14 +/* 106BE0 7F0D20B0 00000000 */ nop +/* 106BE4 7F0D20B4 468073A0 */ cvt.s.w $f14, $f14 +/* 106BE8 7F0D20B8 46027482 */ mul.s $f18, $f14, $f2 +/* 106BEC 7F0D20BC 51BE004D */ beql $t5, $fp, .L7F0D21F4 +/* 106BF0 7F0D20C0 46009403 */ div.s $f16, $f18, $f0 +/* 106BF4 7F0D20C4 46009403 */ div.s $f16, $f18, $f0 +.L7F0D20C8: +/* 106BF8 7F0D20C8 00808025 */ move $s0, $a0 +/* 106BFC 7F0D20CC 01D2C025 */ or $t8, $t6, $s2 +/* 106C00 7F0D20D0 AE180000 */ sw $t8, ($s0) +/* 106C04 7F0D20D4 AE190004 */ sw $t9, 4($s0) +/* 106C08 7F0D20D8 24840008 */ addiu $a0, $a0, 8 +/* 106C0C 7F0D20DC 00808025 */ move $s0, $a0 +/* 106C10 7F0D20E0 24840008 */ addiu $a0, $a0, 8 +/* 106C14 7F0D20E4 4600840D */ trunc.w.s $f16, $f16 +/* 106C18 7F0D20E8 44148000 */ mfc1 $s4, $f16 +/* 106C1C 7F0D20EC 00000000 */ nop +/* 106C20 7F0D20F0 26940032 */ addiu $s4, $s4, 0x32 +/* 106C24 7F0D20F4 329803FF */ andi $t8, $s4, 0x3ff +/* 106C28 7F0D20F8 0018CB80 */ sll $t9, $t8, 0xe +/* 106C2C 7F0D20FC 03377825 */ or $t7, $t9, $s7 +/* 106C30 7F0D2100 0333C025 */ or $t8, $t9, $s3 +/* 106C34 7F0D2104 25B90002 */ addiu $t9, $t5, 2 +/* 106C38 7F0D2108 44998000 */ mtc1 $t9, $f16 +/* 106C3C 7F0D210C 01F27025 */ or $t6, $t7, $s2 +/* 106C40 7F0D2110 AE0E0000 */ sw $t6, ($s0) +/* 106C44 7F0D2114 46808420 */ cvt.s.w $f16, $f16 +/* 106C48 7F0D2118 AE180004 */ sw $t8, 4($s0) +/* 106C4C 7F0D211C 00808025 */ move $s0, $a0 +/* 106C50 7F0D2120 24840008 */ addiu $a0, $a0, 8 +/* 106C54 7F0D2124 46028402 */ mul.s $f16, $f16, $f2 +/* 106C58 7F0D2128 46008403 */ div.s $f16, $f16, $f0 +/* 106C5C 7F0D212C 4600840D */ trunc.w.s $f16, $f16 +/* 106C60 7F0D2130 44158000 */ mfc1 $s5, $f16 +/* 106C64 7F0D2134 00000000 */ nop +/* 106C68 7F0D2138 26B50032 */ addiu $s5, $s5, 0x32 +/* 106C6C 7F0D213C 32AE03FF */ andi $t6, $s5, 0x3ff +/* 106C70 7F0D2140 000EC380 */ sll $t8, $t6, 0xe +/* 106C74 7F0D2144 0317C825 */ or $t9, $t8, $s7 +/* 106C78 7F0D2148 03137025 */ or $t6, $t8, $s3 +/* 106C7C 7F0D214C 25B80003 */ addiu $t8, $t5, 3 +/* 106C80 7F0D2150 44988000 */ mtc1 $t8, $f16 +/* 106C84 7F0D2154 25AD0004 */ addiu $t5, $t5, 4 +/* 106C88 7F0D2158 448D7000 */ mtc1 $t5, $f14 +/* 106C8C 7F0D215C 46808420 */ cvt.s.w $f16, $f16 +/* 106C90 7F0D2160 03327825 */ or $t7, $t9, $s2 +/* 106C94 7F0D2164 AE0F0000 */ sw $t7, ($s0) +/* 106C98 7F0D2168 AE0E0004 */ sw $t6, 4($s0) +/* 106C9C 7F0D216C 00808025 */ move $s0, $a0 +/* 106CA0 7F0D2170 24840008 */ addiu $a0, $a0, 8 +/* 106CA4 7F0D2174 46028402 */ mul.s $f16, $f16, $f2 +/* 106CA8 7F0D2178 46008403 */ div.s $f16, $f16, $f0 +/* 106CAC 7F0D217C 4600840D */ trunc.w.s $f16, $f16 +/* 106CB0 7F0D2180 468073A0 */ cvt.s.w $f14, $f14 +/* 106CB4 7F0D2184 44168000 */ mfc1 $s6, $f16 +/* 106CB8 7F0D2188 00000000 */ nop +/* 106CBC 7F0D218C 26D60032 */ addiu $s6, $s6, 0x32 +/* 106CC0 7F0D2190 32CF03FF */ andi $t7, $s6, 0x3ff +/* 106CC4 7F0D2194 46027382 */ mul.s $f14, $f14, $f2 +/* 106CC8 7F0D2198 000F7380 */ sll $t6, $t7, 0xe +/* 106CCC 7F0D219C 01D7C025 */ or $t8, $t6, $s7 +/* 106CD0 7F0D21A0 0312C825 */ or $t9, $t8, $s2 +/* 106CD4 7F0D21A4 AE190000 */ sw $t9, ($s0) +/* 106CD8 7F0D21A8 01D37825 */ or $t7, $t6, $s3 +/* 106CDC 7F0D21AC AE0F0004 */ sw $t7, 4($s0) +/* 106CE0 7F0D21B0 46007383 */ div.s $f14, $f14, $f0 +/* 106CE4 7F0D21B4 4600738D */ trunc.w.s $f14, $f14 +/* 106CE8 7F0D21B8 44117000 */ mfc1 $s1, $f14 +/* 106CEC 7F0D21BC 00000000 */ nop +/* 106CF0 7F0D21C0 26310032 */ addiu $s1, $s1, 0x32 +/* 106CF4 7F0D21C4 323903FF */ andi $t9, $s1, 0x3ff +/* 106CF8 7F0D21C8 00197B80 */ sll $t7, $t9, 0xe +/* 106CFC 7F0D21CC 01F77025 */ or $t6, $t7, $s7 +/* 106D00 7F0D21D0 01F3C825 */ or $t9, $t7, $s3 +/* 106D04 7F0D21D4 25AF0001 */ addiu $t7, $t5, 1 +/* 106D08 7F0D21D8 448F7000 */ mtc1 $t7, $f14 +/* 106D0C 7F0D21DC 00000000 */ nop +/* 106D10 7F0D21E0 468073A0 */ cvt.s.w $f14, $f14 +/* 106D14 7F0D21E4 46027482 */ mul.s $f18, $f14, $f2 +/* 106D18 7F0D21E8 55BEFFB7 */ bnel $t5, $fp, .L7F0D20C8 +/* 106D1C 7F0D21EC 46009403 */ div.s $f16, $f18, $f0 +/* 106D20 7F0D21F0 46009403 */ div.s $f16, $f18, $f0 +.L7F0D21F4: +/* 106D24 7F0D21F4 00808025 */ move $s0, $a0 +/* 106D28 7F0D21F8 01D2C025 */ or $t8, $t6, $s2 +/* 106D2C 7F0D21FC AE180000 */ sw $t8, ($s0) +/* 106D30 7F0D2200 AE190004 */ sw $t9, 4($s0) +/* 106D34 7F0D2204 24840008 */ addiu $a0, $a0, 8 +/* 106D38 7F0D2208 00808025 */ move $s0, $a0 +/* 106D3C 7F0D220C 24840008 */ addiu $a0, $a0, 8 +/* 106D40 7F0D2210 27DE0004 */ addiu $fp, $fp, 4 +/* 106D44 7F0D2214 4600840D */ trunc.w.s $f16, $f16 +/* 106D48 7F0D2218 44148000 */ mfc1 $s4, $f16 +/* 106D4C 7F0D221C 00000000 */ nop +/* 106D50 7F0D2220 26940032 */ addiu $s4, $s4, 0x32 +/* 106D54 7F0D2224 329803FF */ andi $t8, $s4, 0x3ff +/* 106D58 7F0D2228 0018CB80 */ sll $t9, $t8, 0xe +/* 106D5C 7F0D222C 03377825 */ or $t7, $t9, $s7 +/* 106D60 7F0D2230 0333C025 */ or $t8, $t9, $s3 +/* 106D64 7F0D2234 25B90002 */ addiu $t9, $t5, 2 +/* 106D68 7F0D2238 44998000 */ mtc1 $t9, $f16 +/* 106D6C 7F0D223C 01F27025 */ or $t6, $t7, $s2 +/* 106D70 7F0D2240 AE0E0000 */ sw $t6, ($s0) +/* 106D74 7F0D2244 46808420 */ cvt.s.w $f16, $f16 +/* 106D78 7F0D2248 AE180004 */ sw $t8, 4($s0) +/* 106D7C 7F0D224C 00808025 */ move $s0, $a0 +/* 106D80 7F0D2250 24840008 */ addiu $a0, $a0, 8 +/* 106D84 7F0D2254 46028402 */ mul.s $f16, $f16, $f2 +/* 106D88 7F0D2258 46008403 */ div.s $f16, $f16, $f0 +/* 106D8C 7F0D225C 4600840D */ trunc.w.s $f16, $f16 +/* 106D90 7F0D2260 44158000 */ mfc1 $s5, $f16 +/* 106D94 7F0D2264 00000000 */ nop +/* 106D98 7F0D2268 26B50032 */ addiu $s5, $s5, 0x32 +/* 106D9C 7F0D226C 32AE03FF */ andi $t6, $s5, 0x3ff +/* 106DA0 7F0D2270 000EC380 */ sll $t8, $t6, 0xe +/* 106DA4 7F0D2274 0317C825 */ or $t9, $t8, $s7 +/* 106DA8 7F0D2278 03137025 */ or $t6, $t8, $s3 +/* 106DAC 7F0D227C 25B80003 */ addiu $t8, $t5, 3 +/* 106DB0 7F0D2280 44988000 */ mtc1 $t8, $f16 +/* 106DB4 7F0D2284 03327825 */ or $t7, $t9, $s2 +/* 106DB8 7F0D2288 AE0F0000 */ sw $t7, ($s0) +/* 106DBC 7F0D228C 46808420 */ cvt.s.w $f16, $f16 +/* 106DC0 7F0D2290 AE0E0004 */ sw $t6, 4($s0) +/* 106DC4 7F0D2294 00808025 */ move $s0, $a0 +/* 106DC8 7F0D2298 24840008 */ addiu $a0, $a0, 8 +/* 106DCC 7F0D229C 25AD0004 */ addiu $t5, $t5, 4 +/* 106DD0 7F0D22A0 46028402 */ mul.s $f16, $f16, $f2 +/* 106DD4 7F0D22A4 46008403 */ div.s $f16, $f16, $f0 +/* 106DD8 7F0D22A8 4600840D */ trunc.w.s $f16, $f16 +/* 106DDC 7F0D22AC 44168000 */ mfc1 $s6, $f16 +/* 106DE0 7F0D22B0 00000000 */ nop +/* 106DE4 7F0D22B4 26D60032 */ addiu $s6, $s6, 0x32 +/* 106DE8 7F0D22B8 32CF03FF */ andi $t7, $s6, 0x3ff +/* 106DEC 7F0D22BC 000F7380 */ sll $t6, $t7, 0xe +/* 106DF0 7F0D22C0 01D7C025 */ or $t8, $t6, $s7 +/* 106DF4 7F0D22C4 0312C825 */ or $t9, $t8, $s2 +/* 106DF8 7F0D22C8 01D37825 */ or $t7, $t6, $s3 +/* 106DFC 7F0D22CC AE0F0004 */ sw $t7, 4($s0) +/* 106E00 7F0D22D0 AE190000 */ sw $t9, ($s0) +/* 106E04 7F0D22D4 24420007 */ addiu $v0, $v0, 7 +/* 106E08 7F0D22D8 0122082A */ slt $at, $t1, $v0 +/* 106E0C 7F0D22DC 14200003 */ bnez $at, .L7F0D22EC +/* 106E10 7F0D22E0 24630007 */ addiu $v1, $v1, 7 +/* 106E14 7F0D22E4 545FFF4B */ bnel $v0, $ra, .L7F0D2014 +/* 106E18 7F0D22E8 00808025 */ move $s0, $a0 +.L7F0D22EC: +/* 106E1C 7F0D22EC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0D22F0: +/* 106E20 7F0D22F0 8FB00008 */ lw $s0, 8($sp) +/* 106E24 7F0D22F4 8FB1000C */ lw $s1, 0xc($sp) +/* 106E28 7F0D22F8 8FB20010 */ lw $s2, 0x10($sp) +/* 106E2C 7F0D22FC 8FB30014 */ lw $s3, 0x14($sp) +/* 106E30 7F0D2300 8FB40018 */ lw $s4, 0x18($sp) +/* 106E34 7F0D2304 8FB5001C */ lw $s5, 0x1c($sp) +/* 106E38 7F0D2308 8FB60020 */ lw $s6, 0x20($sp) +/* 106E3C 7F0D230C 8FB70024 */ lw $s7, 0x24($sp) +/* 106E40 7F0D2310 8FBE0028 */ lw $fp, 0x28($sp) +/* 106E44 7F0D2314 27BD0030 */ addiu $sp, $sp, 0x30 +/* 106E48 7F0D2318 03E00008 */ jr $ra +/* 106E4C 7F0D231C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0D2320(void) { + // Node 0 + D_8004EAF4 = (f32) (((s32) (D_8004EAF4 / 10.0f) * 0xa) + 0xa); + D_8004EAF0 = (f32) D_8004EAF4; + return; + // (possible return value: (((s32) (D_8004EAF4 / 10.0f) * 0xa) + 0xa)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2320 +/* 106E50 7F0D2320 3C038005 */ lui $v1, %hi(D_8004EAF4) +/* 106E54 7F0D2324 2463EAF4 */ addiu $v1, %lo(D_8004EAF4) # addiu $v1, $v1, -0x150c +/* 106E58 7F0D2328 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 106E5C 7F0D232C 44813000 */ mtc1 $at, $f6 +/* 106E60 7F0D2330 C4640000 */ lwc1 $f4, ($v1) +/* 106E64 7F0D2334 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106E68 7F0D2338 46062203 */ div.s $f8, $f4, $f6 +/* 106E6C 7F0D233C 4600428D */ trunc.w.s $f10, $f8 +/* 106E70 7F0D2340 44025000 */ mfc1 $v0, $f10 +/* 106E74 7F0D2344 00000000 */ nop +/* 106E78 7F0D2348 00027880 */ sll $t7, $v0, 2 +/* 106E7C 7F0D234C 01E27821 */ addu $t7, $t7, $v0 +/* 106E80 7F0D2350 000F7840 */ sll $t7, $t7, 1 +/* 106E84 7F0D2354 25E2000A */ addiu $v0, $t7, 0xa +/* 106E88 7F0D2358 44828000 */ mtc1 $v0, $f16 +/* 106E8C 7F0D235C 00000000 */ nop +/* 106E90 7F0D2360 468084A0 */ cvt.s.w $f18, $f16 +/* 106E94 7F0D2364 E4720000 */ swc1 $f18, ($v1) +/* 106E98 7F0D2368 C4640000 */ lwc1 $f4, ($v1) +/* 106E9C 7F0D236C 03E00008 */ jr $ra +/* 106EA0 7F0D2370 E424EAF0 */ swc1 $f4, %lo(D_8004EAF0)($at) +) +#endif + + + + diff --git a/src/game/viewport.c b/src/game/viewport.c new file mode 100644 index 0000000..fd2a2c5 --- /dev/null +++ b/src/game/viewport.c @@ -0,0 +1,299 @@ +#include "ultra64.h" +#include "game/bond.h" + +// bss +s32 viewport_img_width; +s32 viewport_img_height; + + +// data +s32 viewport_img = 0; + + +void remove_viewport_buffer(void) { + viewport_img = 0; +} + + +#ifdef NONMATCHING +void allocate_viewport_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel allocate_viewport_buffer +/* 106EBC 7F0D238C 3C0E8003 */ lui $t6, %hi(resolution) +/* 106EC0 7F0D2390 8DCE6428 */ lw $t6, %lo(resolution)($t6) +/* 106EC4 7F0D2394 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 106EC8 7F0D2398 AFBF0014 */ sw $ra, 0x14($sp) +/* 106ECC 7F0D239C 11C00008 */ beqz $t6, .L7F0D23C0 +/* 106ED0 7F0D23A0 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106ED4 7F0D23A4 240F01B8 */ li $t7, 440 +/* 106ED8 7F0D23A8 3C018009 */ lui $at, %hi(viewport_img_width) +/* 106EDC 7F0D23AC 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106EE0 7F0D23B0 AC2FE310 */ sw $t7, %lo(viewport_img_width)($at) +/* 106EE4 7F0D23B4 2418014A */ li $t8, 330 +/* 106EE8 7F0D23B8 10000010 */ b .L7F0D23FC +/* 106EEC 7F0D23BC AC580000 */ sw $t8, ($v0) +.L7F0D23C0: +/* 106EF0 7F0D23C0 24190140 */ li $t9, 320 +/* 106EF4 7F0D23C4 3C018009 */ lui $at, %hi(viewport_img_width) +/* 106EF8 7F0D23C8 0FC26919 */ jal get_num_players +/* 106EFC 7F0D23CC AC39E310 */ sw $t9, %lo(viewport_img_width)($at) +/* 106F00 7F0D23D0 24010001 */ li $at, 1 +/* 106F04 7F0D23D4 14410005 */ bne $v0, $at, .L7F0D23EC +/* 106F08 7F0D23D8 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106F0C 7F0D23DC 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106F10 7F0D23E0 240800F0 */ li $t0, 240 +/* 106F14 7F0D23E4 10000005 */ b .L7F0D23FC +/* 106F18 7F0D23E8 AC480000 */ sw $t0, ($v0) +.L7F0D23EC: +/* 106F1C 7F0D23EC 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106F20 7F0D23F0 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106F24 7F0D23F4 24090078 */ li $t1, 120 +/* 106F28 7F0D23F8 AC490000 */ sw $t1, ($v0) +.L7F0D23FC: +/* 106F2C 7F0D23FC 3C0A8009 */ lui $t2, %hi(viewport_img_width) +/* 106F30 7F0D2400 8D4AE310 */ lw $t2, %lo(viewport_img_width)($t2) +/* 106F34 7F0D2404 8C4B0000 */ lw $t3, ($v0) +/* 106F38 7F0D2408 24050004 */ li $a1, 4 +/* 106F3C 7F0D240C 014B0019 */ multu $t2, $t3 +/* 106F40 7F0D2410 00002012 */ mflo $a0 +/* 106F44 7F0D2414 00046040 */ sll $t4, $a0, 1 +/* 106F48 7F0D2418 0C0025C8 */ jal mempAllocBytesInBank +/* 106F4C 7F0D241C 25840040 */ addiu $a0, $t4, 0x40 +/* 106F50 7F0D2420 8FBF0014 */ lw $ra, 0x14($sp) +/* 106F54 7F0D2424 3C038005 */ lui $v1, %hi(viewport_img) +/* 106F58 7F0D2428 2463EB00 */ addiu $v1, %lo(viewport_img) # addiu $v1, $v1, -0x1500 +/* 106F5C 7F0D242C 244E003F */ addiu $t6, $v0, 0x3f +/* 106F60 7F0D2430 2401FFC0 */ li $at, -64 +/* 106F64 7F0D2434 AC620000 */ sw $v0, ($v1) +/* 106F68 7F0D2438 01C17824 */ and $t7, $t6, $at +/* 106F6C 7F0D243C AC6F0000 */ sw $t7, ($v1) +/* 106F70 7F0D2440 03E00008 */ jr $ra +/* 106F74 7F0D2444 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +void sub_GAME_7F0D2448(s32 vp_image, s32 vp_width, s32 vp_height) { + viewport_img = vp_image; + viewport_img_width = vp_width; + viewport_img_height = vp_height; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2464(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2464 +/* 106F94 7F0D2464 3C0E8005 */ lui $t6, %hi(viewport_img) +/* 106F98 7F0D2468 8DCEEB00 */ lw $t6, %lo(viewport_img)($t6) +/* 106F9C 7F0D246C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 106FA0 7F0D2470 AFBF0014 */ sw $ra, 0x14($sp) +/* 106FA4 7F0D2474 15C00004 */ bnez $t6, .L7F0D2488 +/* 106FA8 7F0D2478 00803025 */ move $a2, $a0 +/* 106FAC 7F0D247C 0FC348E3 */ jal allocate_viewport_buffer +/* 106FB0 7F0D2480 AFA40018 */ sw $a0, 0x18($sp) +/* 106FB4 7F0D2484 8FA60018 */ lw $a2, 0x18($sp) +.L7F0D2488: +/* 106FB8 7F0D2488 0FC26C54 */ jal get_cur_playernum +/* 106FBC 7F0D248C AFA60018 */ sw $a2, 0x18($sp) +/* 106FC0 7F0D2490 28410002 */ slti $at, $v0, 2 +/* 106FC4 7F0D2494 1020000B */ beqz $at, .L7F0D24C4 +/* 106FC8 7F0D2498 8FA60018 */ lw $a2, 0x18($sp) +/* 106FCC 7F0D249C 0FC26919 */ jal get_num_players +/* 106FD0 7F0D24A0 AFA60018 */ sw $a2, 0x18($sp) +/* 106FD4 7F0D24A4 24010002 */ li $at, 2 +/* 106FD8 7F0D24A8 14410009 */ bne $v0, $at, .L7F0D24D0 +/* 106FDC 7F0D24AC 8FA60018 */ lw $a2, 0x18($sp) +/* 106FE0 7F0D24B0 0FC26C54 */ jal get_cur_playernum +/* 106FE4 7F0D24B4 AFA60018 */ sw $a2, 0x18($sp) +/* 106FE8 7F0D24B8 24010001 */ li $at, 1 +/* 106FEC 7F0D24BC 14410004 */ bne $v0, $at, .L7F0D24D0 +/* 106FF0 7F0D24C0 8FA60018 */ lw $a2, 0x18($sp) +.L7F0D24C4: +/* 106FF4 7F0D24C4 3C070001 */ lui $a3, (0x00012C00 >> 16) # lui $a3, 1 +/* 106FF8 7F0D24C8 10000002 */ b .L7F0D24D4 +/* 106FFC 7F0D24CC 34E72C00 */ ori $a3, (0x00012C00 & 0xFFFF) # ori $a3, $a3, 0x2c00 +.L7F0D24D0: +/* 107000 7F0D24D0 00003825 */ move $a3, $zero +.L7F0D24D4: +/* 107004 7F0D24D4 3C0F8005 */ lui $t7, %hi(viewport_img) +/* 107008 7F0D24D8 8DEFEB00 */ lw $t7, %lo(viewport_img)($t7) +/* 10700C 7F0D24DC 3C19E700 */ lui $t9, 0xe700 +/* 107010 7F0D24E0 2401FFC0 */ li $at, -64 +/* 107014 7F0D24E4 ACD90000 */ sw $t9, ($a2) +/* 107018 7F0D24E8 ACC00004 */ sw $zero, 4($a2) +/* 10701C 7F0D24EC 24C50008 */ addiu $a1, $a2, 8 +/* 107020 7F0D24F0 01E71823 */ subu $v1, $t7, $a3 +/* 107024 7F0D24F4 0061C024 */ and $t8, $v1, $at +/* 107028 7F0D24F8 3C08FE00 */ lui $t0, 0xfe00 +/* 10702C 7F0D24FC ACA80000 */ sw $t0, ($a1) +/* 107030 7F0D2500 ACB80004 */ sw $t8, 4($a1) +/* 107034 7F0D2504 8FBF0014 */ lw $ra, 0x14($sp) +/* 107038 7F0D2508 24A20008 */ addiu $v0, $a1, 8 +/* 10703C 7F0D250C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107040 7F0D2510 03E00008 */ jr $ra +/* 107044 7F0D2514 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2518(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2518 +/* 107048 7F0D2518 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 10704C 7F0D251C AFB00018 */ sw $s0, 0x18($sp) +/* 107050 7F0D2520 AFBF001C */ sw $ra, 0x1c($sp) +/* 107054 7F0D2524 24900008 */ addiu $s0, $a0, 8 +/* 107058 7F0D2528 3C0EE700 */ lui $t6, 0xe700 +/* 10705C 7F0D252C AC8E0000 */ sw $t6, ($a0) +/* 107060 7F0D2530 AC800004 */ sw $zero, 4($a0) +/* 107064 7F0D2534 02001825 */ move $v1, $s0 +/* 107068 7F0D2538 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 10706C 7F0D253C 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 107070 7F0D2540 AC6F0000 */ sw $t7, ($v1) +/* 107074 7F0D2544 AC600004 */ sw $zero, 4($v1) +/* 107078 7F0D2548 3C188009 */ lui $t8, %hi(viewport_img_width) +/* 10707C 7F0D254C 8F18E310 */ lw $t8, %lo(viewport_img_width)($t8) +/* 107080 7F0D2550 26100008 */ addiu $s0, $s0, 8 +/* 107084 7F0D2554 3C01FF10 */ lui $at, 0xff10 +/* 107088 7F0D2558 2719FFFF */ addiu $t9, $t8, -1 +/* 10708C 7F0D255C 33280FFF */ andi $t0, $t9, 0xfff +/* 107090 7F0D2560 01014825 */ or $t1, $t0, $at +/* 107094 7F0D2564 02002825 */ move $a1, $s0 +/* 107098 7F0D2568 ACA90000 */ sw $t1, ($a1) +/* 10709C 7F0D256C 3C0A8005 */ lui $t2, %hi(viewport_img) +/* 1070A0 7F0D2570 8D4AEB00 */ lw $t2, %lo(viewport_img)($t2) +/* 1070A4 7F0D2574 26100008 */ addiu $s0, $s0, 8 +/* 1070A8 7F0D2578 3C018000 */ lui $at, 0x8000 +/* 1070AC 7F0D257C 02003025 */ move $a2, $s0 +/* 1070B0 7F0D2580 01415821 */ addu $t3, $t2, $at +/* 1070B4 7F0D2584 ACAB0004 */ sw $t3, 4($a1) +/* 1070B8 7F0D2588 26100008 */ addiu $s0, $s0, 8 +/* 1070BC 7F0D258C 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 1070C0 7F0D2590 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 1070C4 7F0D2594 3C0D0030 */ lui $t5, 0x30 +/* 1070C8 7F0D2598 02003825 */ move $a3, $s0 +/* 1070CC 7F0D259C ACCD0004 */ sw $t5, 4($a2) +/* 1070D0 7F0D25A0 ACCC0000 */ sw $t4, ($a2) +/* 1070D4 7F0D25A4 3C0FFFFC */ lui $t7, (0xFFFCFFFC >> 16) # lui $t7, 0xfffc +/* 1070D8 7F0D25A8 35EFFFFC */ ori $t7, (0xFFFCFFFC & 0xFFFF) # ori $t7, $t7, 0xfffc +/* 1070DC 7F0D25AC 26100008 */ addiu $s0, $s0, 8 +/* 1070E0 7F0D25B0 3C0EF700 */ lui $t6, 0xf700 +/* 1070E4 7F0D25B4 ACEE0000 */ sw $t6, ($a3) +/* 1070E8 7F0D25B8 ACEF0004 */ sw $t7, 4($a3) +/* 1070EC 7F0D25BC 02001025 */ move $v0, $s0 +/* 1070F0 7F0D25C0 3C18ED00 */ lui $t8, 0xed00 +/* 1070F4 7F0D25C4 AC580000 */ sw $t8, ($v0) +/* 1070F8 7F0D25C8 AFA20030 */ sw $v0, 0x30($sp) +/* 1070FC 7F0D25CC 0C001107 */ jal get_video2_settings_txtClipW +/* 107100 7F0D25D0 26100008 */ addiu $s0, $s0, 8 +/* 107104 7F0D25D4 0C00110B */ jal get_video2_settings_txtClipH +/* 107108 7F0D25D8 A7A20026 */ sh $v0, 0x26($sp) +/* 10710C 7F0D25DC 44822000 */ mtc1 $v0, $f4 +/* 107110 7F0D25E0 87AA0026 */ lh $t2, 0x26($sp) +/* 107114 7F0D25E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 107118 7F0D25E8 468021A0 */ cvt.s.w $f6, $f4 +/* 10711C 7F0D25EC 448A8000 */ mtc1 $t2, $f16 +/* 107120 7F0D25F0 44810000 */ mtc1 $at, $f0 +/* 107124 7F0D25F4 8FB80030 */ lw $t8, 0x30($sp) +/* 107128 7F0D25F8 468084A0 */ cvt.s.w $f18, $f16 +/* 10712C 7F0D25FC 46003202 */ mul.s $f8, $f6, $f0 +/* 107130 7F0D2600 00000000 */ nop +/* 107134 7F0D2604 46009102 */ mul.s $f4, $f18, $f0 +/* 107138 7F0D2608 4600428D */ trunc.w.s $f10, $f8 +/* 10713C 7F0D260C 4600218D */ trunc.w.s $f6, $f4 +/* 107140 7F0D2610 44085000 */ mfc1 $t0, $f10 +/* 107144 7F0D2614 440C3000 */ mfc1 $t4, $f6 +/* 107148 7F0D2618 31090FFF */ andi $t1, $t0, 0xfff +/* 10714C 7F0D261C 318D0FFF */ andi $t5, $t4, 0xfff +/* 107150 7F0D2620 000D7300 */ sll $t6, $t5, 0xc +/* 107154 7F0D2624 012E7825 */ or $t7, $t1, $t6 +/* 107158 7F0D2628 0FC26919 */ jal get_num_players +/* 10715C 7F0D262C AF0F0004 */ sw $t7, 4($t8) +/* 107160 7F0D2630 28410003 */ slti $at, $v0, 3 +/* 107164 7F0D2634 10200005 */ beqz $at, .L7F0D264C +/* 107168 7F0D2638 00000000 */ nop +/* 10716C 7F0D263C 0C001107 */ jal get_video2_settings_txtClipW +/* 107170 7F0D2640 AFA0004C */ sw $zero, 0x4c($sp) +/* 107174 7F0D2644 1000001B */ b .L7F0D26B4 +/* 107178 7F0D2648 2445FFFF */ addiu $a1, $v0, -1 +.L7F0D264C: +/* 10717C 7F0D264C 0FC26C54 */ jal get_cur_playernum +/* 107180 7F0D2650 00000000 */ nop +/* 107184 7F0D2654 10400006 */ beqz $v0, .L7F0D2670 +/* 107188 7F0D2658 00000000 */ nop +/* 10718C 7F0D265C 0FC26C54 */ jal get_cur_playernum +/* 107190 7F0D2660 00000000 */ nop +/* 107194 7F0D2664 24010002 */ li $at, 2 +/* 107198 7F0D2668 14410009 */ bne $v0, $at, .L7F0D2690 +/* 10719C 7F0D266C 00000000 */ nop +.L7F0D2670: +/* 1071A0 7F0D2670 0C001107 */ jal get_video2_settings_txtClipW +/* 1071A4 7F0D2674 AFA0004C */ sw $zero, 0x4c($sp) +/* 1071A8 7F0D2678 04410003 */ bgez $v0, .L7F0D2688 +/* 1071AC 7F0D267C 00022843 */ sra $a1, $v0, 1 +/* 1071B0 7F0D2680 24410001 */ addiu $at, $v0, 1 +/* 1071B4 7F0D2684 00012843 */ sra $a1, $at, 1 +.L7F0D2688: +/* 1071B8 7F0D2688 1000000A */ b .L7F0D26B4 +/* 1071BC 7F0D268C 24A5FFFF */ addiu $a1, $a1, -1 +.L7F0D2690: +/* 1071C0 7F0D2690 0C001107 */ jal get_video2_settings_txtClipW +/* 1071C4 7F0D2694 00000000 */ nop +/* 1071C8 7F0D2698 04410003 */ bgez $v0, .L7F0D26A8 +/* 1071CC 7F0D269C 0002C843 */ sra $t9, $v0, 1 +/* 1071D0 7F0D26A0 24410001 */ addiu $at, $v0, 1 +/* 1071D4 7F0D26A4 0001C843 */ sra $t9, $at, 1 +.L7F0D26A8: +/* 1071D8 7F0D26A8 0C001107 */ jal get_video2_settings_txtClipW +/* 1071DC 7F0D26AC AFB9004C */ sw $t9, 0x4c($sp) +/* 1071E0 7F0D26B0 2445FFFF */ addiu $a1, $v0, -1 +.L7F0D26B4: +/* 1071E4 7F0D26B4 3C0C8009 */ lui $t4, %hi(viewport_img_height) +/* 1071E8 7F0D26B8 8D8CE314 */ lw $t4, %lo(viewport_img_height)($t4) +/* 1071EC 7F0D26BC 30A803FF */ andi $t0, $a1, 0x3ff +/* 1071F0 7F0D26C0 00085380 */ sll $t2, $t0, 0xe +/* 1071F4 7F0D26C4 258DFFFF */ addiu $t5, $t4, -1 +/* 1071F8 7F0D26C8 31A903FF */ andi $t1, $t5, 0x3ff +/* 1071FC 7F0D26CC 3C01F600 */ lui $at, 0xf600 +/* 107200 7F0D26D0 01415825 */ or $t3, $t2, $at +/* 107204 7F0D26D4 00097080 */ sll $t6, $t1, 2 +/* 107208 7F0D26D8 016E7825 */ or $t7, $t3, $t6 +/* 10720C 7F0D26DC 02001825 */ move $v1, $s0 +/* 107210 7F0D26E0 AC6F0000 */ sw $t7, ($v1) +/* 107214 7F0D26E4 8FB8004C */ lw $t8, 0x4c($sp) +/* 107218 7F0D26E8 26100008 */ addiu $s0, $s0, 8 +/* 10721C 7F0D26EC 02002025 */ move $a0, $s0 +/* 107220 7F0D26F0 331903FF */ andi $t9, $t8, 0x3ff +/* 107224 7F0D26F4 00194380 */ sll $t0, $t9, 0xe +/* 107228 7F0D26F8 AC680004 */ sw $t0, 4($v1) +/* 10722C 7F0D26FC 3C0AE700 */ lui $t2, 0xe700 +/* 107230 7F0D2700 AC8A0000 */ sw $t2, ($a0) +/* 107234 7F0D2704 AC800004 */ sw $zero, 4($a0) +/* 107238 7F0D2708 8FBF001C */ lw $ra, 0x1c($sp) +/* 10723C 7F0D270C 26020008 */ addiu $v0, $s0, 8 +/* 107240 7F0D2710 8FB00018 */ lw $s0, 0x18($sp) +/* 107244 7F0D2714 03E00008 */ jr $ra +/* 107248 7F0D2718 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + diff --git a/src/game/watch.c b/src/game/watch.c new file mode 100644 index 0000000..ad64232 --- /dev/null +++ b/src/game/watch.c @@ -0,0 +1,11487 @@ +#include "ultra64.h" +#include "game/watch.h" +#include "game/unk_093880.h" +#include "game/unk_0A1DA0.h" +#include "game/mainmenu.h" +#include "game/lvl_text.h" +#include "music.h" + +// bss +char dword_CODE_bss_8007B0A0[0x40]; +char dword_CODE_bss_8007B0E0[0x40]; + + +// data +//D:800409A0 +s32 D_800409A0 = 4; +//D:800409A4 +s32 D_800409A4 = 0; +//D:800409A8 +s32 watch_soundrelated_maybe = 0; +//D:800409AC +s32 D_800409AC = 0; +//D:800409B0 +s32 D_800409B0 = 0; +//D:800409B4 +s32 D_800409B4 = 0; +//D:800409B8 +s32 D_800409B8 = 0; +//D:800409BC +f32 D_800409BC = 0.0f; +//D:800409C0 +s32 D_800409C0 = 0; +//D:800409C4 +s32 D_800409C4 = 0; +//D:800409C8 +f32 D_800409C8 = 0.0f; +//D:800409CC +f32 D_800409CC = 0.0f; +//D:800409D0 +s32 D_800409D0 = -1; +//D:800409D4 +f32 D_800409D4 = 0.0f; +//D:800409D8 +s32 D_800409D8 = 8; +//D:800409DC +u16 D_800409DC[] = { + 0xAC09, 0xAC03, 0xAC02, 0xAC00, + 0xAC01, 0xAC01, 0xAC06, 0xAC06, + 0xAC04, 0xAC05, 0xAC0A, 0xAC03, + 0xAC02, 0xAC00, 0xAC01, 0xAC01, + 0xAC05, 0xAC05, 0xAC04, 0xAC06, + 0xAC0B, 0xAC00, 0xAC02, 0xAC01, + 0xAC03, 0xAC03, 0xAC06, 0xAC06, + 0xAC04, 0xAC05, 0xAC0C, 0xAC00, + 0xAC02, 0xAC01, 0xAC03, 0xAC03, + 0xAC05, 0xAC05, 0xAC04, 0xAC06, + 0xAC0D, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC0E, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC0F, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC10, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07 +}; + +//D:80040A7C +u16 D_80040A7C[] = {0xAC11, 0xAC1C, 0xAC1B, 0}; +//D:80040A84 +u32 cur_player_look_vertical_inverted = 0; +//D:80040A88 +u16 D_80040A88[] = {0xAC12, 0xAC1A, 0xAC19, 0}; +//D:80040A90 +u32 cur_player_autoaim_setting = 1; +//D:80040A94 +u16 D_80040A94[] = {0xAC14, 0xAC1E, 0xAC1D, 0}; +//D:80040A9C +u32 cur_player_aim_control = 0; +//D:80040AA0 +u16 D_80040AA0[] = {0xAC15, 0xAC1A, 0xAC19, 0}; +//D:80040AA8 +u32 cur_player_sight_onscreen = 1; +//D:80040AAC +u16 D_80040AAC[] = {0xAC13, 0xAC1A, 0xAC19, 0}; +//D:80040AB4 +u32 cur_player_lookahead_setting = 1; +//D:80040AB8 +u16 D_80040AB8[] = {0xAC16, 0xAC1A, 0xAC19, 0}; +//D:80040AC0 +u32 cur_player_ammo_onscreen_setting = 1; +//D:80040AC4 +u16 D_80040AC4[] = {0xAC17, 0xAC1F, 0xAC20, 0xAC21}; +//D:80040ACC +u32 cur_player_screen_setting = 0; +//D:80040AD0 +u16 D_80040AD0[] = {0xAC18, 0xAC22, 0xAC23, 0}; +//D:80040AD8 +u32 screen_ratio = 0; +//D:80040ADC +u32 controlstick_lr_enabled = 0; +//D:80040AE0 +u32 D_80040AE0 = 0; +//D:80040AE4 +u32 D_80040AE4 = 0; +//D:80040AE8 +f32 D_80040AE8 = 0.0f; +//D:80040AEC +f32 D_80040AEC = 0.0f; +//D:80040AF0 +f32 D_80040AF0 = 45.0f; +//D:80040AF4 +u32 D_80040AF4 = 0xFF00A0; +//D:80040AF8 +u32 D_80040AF8 = 0xA; +//D:80040AFC +u32 D_80040AFC = 0xFF; +//D:80040B00 +u32 D_80040B00 = 0xA; +//D:80040B04 +u32 D_80040B04 = 0xE0; +//D:80040B08 +u32 D_80040B08 = 0; +//D:80040B0C +u32 D_80040B0C = 0xFFA0; +//D:80040B10 +u32 D_80040B10 = 0xF800; +//D:80040B14 +f32 D_80040B14 = 0.0f; +//D:80040B18 +f32 D_80040B18 = 0.0f; +//D:80040B1C +f32 D_80040B1C = 2.5f; +//D:80040B20 +f32 D_80040B20 = 0.0f; +//D:80040B24 +f32 D_80040B24 = 0.0f; +//D:80040B28 +f32 D_80040B28 = 0.0f; +//D:80040B2C +u32 D_80040B2C = 0; +//D:80040B30 +f32 D_80040B30 = 0.0f; +//D:80040B34 +f32 D_80040B34 = 0.0f; +//D:80040B38 +f32 D_80040B38 = 0.0f; +//D:80040B3C +u32 D_80040B3C = 0; +//D:80040B40 +u32 D_80040B40 = 0; +//D:80040B44 +u32 D_80040B44 = 0x10000; +//D:80040B48 +u32 D_80040B48 = 0x32; +//D:80040B4C +u32 D_80040B4C = 0x32; +//D:80040B50 +u32 D_80040B50 = 0x32; +//D:80040B54 +u32 D_80040B54 = 0x32; +//D:80040B58 +u16 mTrack2Vol = 0x7FFF; +//D:80040B5C +u32 D_80040B5C = 0; +//D:80040B60 +u32 D_80040B60 = 0x43480000; +//D:80040B64 +u32 D_80040B64 = 0xC3480000; +//D:80040B68 +u32 D_80040B68 = 0; + +//D:80040B6C +u32 D_80040B6C = 0; +//D:80040B70 +u32 D_80040B70 = 0; +//D:80040B74 +u32 D_80040B74 = 0; +//D:80040B78 +u32 D_80040B78 = 0; +//D:80040B7C +u32 D_80040B7C = 0; +//D:80040B80 +u32 D_80040B80 = 0; +//D:80040B84 +u32 D_80040B84 = 0; +//D:80040B88 +u32 D_80040B88 = 0; +//D:80040B8C +u32 D_80040B8C = 0; +//D:80040B90 +u32 D_80040B90 = 0; +//D:80040B94 +u32 D_80040B94 = 0; +//D:80040B98 +u32 D_80040B98 = 0; +//D:80040B9C +u32 D_80040B9C = 0; +//D:80040BA0 +u32 D_80040BA0 = 0; +//D:80040BA4 +u32 D_80040BA4 = 0; +//D:80040BA8 +u32 D_80040BA8 = 0; +//D:80040BAC +u32 D_80040BAC = 0; +//D:80040BB0 +u32 D_80040BB0 = 0; + +//D:80040BB4 +u32 D_80040BB4[] = { + 0xC4610000, 0x43480000, 0xC2340000, 0x4432C000, 0x43480000, 0x43C48000, + 0xC45AC000, 0x43480000, 0xC3520000, 0x44610000, 0x43480000, 0xC3820000, + 0x44610000, 0x43480000, 0xC3200000, 0x44548000, 0x43480000, 0xC3520000, + 0x446D8000, 0x43480000, 0xC3520000, 0x44610000, 0x43480000, 0x43000000, + 0x44610000, 0x43480000, 0xC2340000, 0xC44D0000, 0x43480000, 0xC3C28000, + 0x444D0000, 0x43480000, 0xC3C28000, 0xC44F8000, 0x43480000, 0x429C0000, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0xC4160000, 0x43480000, 0x43FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0xC4160000, 0x43480000, 0x43700000, 0xC4160000, 0x43480000, + 0x42DC0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0 +}; + +//D:80040D10 +u32 D_80040D10[] = { + 0x44FA0000, 0xC4160000, 0x43480000 +}; + +//D:80040D1C +u32 D_80040D1C = 0x43A00000; + +//D:80040D20 +u32 D_80040D20[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44160000, 0x43480000, 0x43FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44160000, 0x43480000, 0x43700000, 0x44160000, 0x43480000, + 0x42DC0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0 +}; + +//D:80040DEC +u32 D_80040DEC[] = {0x44FA0000, 0x44160000, 0x43480000}; +//D:80040DF8 +u32 D_80040DF8 = 0x43A00000; + +//D:80040DFC +s32 D_80040DFC[] = {0x34, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x25, 0x28, 0x2A, 0x2D, 0x2F, 0x34, 0x37, 0x40, 0xFFFFFFFF}; + +//D:80040E38 +s32 D_80040E38 = 0x4B; +//D:80040E3C +s32 D_80040E3C = 0xFFFFFFFF; + +//D:80040E40 +s32 D_80040E40[] = {0x10E, 0x113, 0x116, 0x119, 0x11A, 0x11B, 0x11B, 0x11A, 0x119, 0x116, 0x113, 0x10E, 0x108, 0xFE, 0xFFFFFFFF}; +//D:80040E7C +s32 D_80040E7C = 0; + + + +// rodata +//D:80057760 +const char aDD[] = "%d, %d\n"; +//D:80057768 +const char aDDDF[] = "%d, %d\n%d %f\n"; +//D:80057778 +const char aA[] = "(A)\n"; +//D:80057780 +const char aB[] = "(B)\n"; +//D:80057788 +const char aZ[] = "(Z)\n"; +//D:80057790 +const char aL[] = "(L)\n"; +//D:80057798 +const char aR[] = "(R)\n"; +//D:800577A0 +const char aC[] = "(C)\n"; +//D:800577A8 +const char D_800577A8[] = "(+)\n"; +//D:800577B0 +const char aS_0[] = "(S)\n"; +//D:800577B8 +const char a3d[] = "(3D)\n"; +//D:800577C0 +const char D_800577C0[] = "\n"; + +//D:800577C4 +const u32 D_800577C4[] = { + 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, 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, 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, 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, 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, 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, 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, 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, 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:80057FC0 +const u32 D_80057FC0[] = { + 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, 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, 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, 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, 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 +}; + +//D:80058440 +const char D_80058440[] = " \n"; +//D:80058444 +const char D_80058444[] = " \n\n"; +//D:80058448 +const char aC_2[] = "%c: "; +//D:80058450 +const char D_80058450[] = " \n"; +//D:80058454 +const char D_80058454[] = " \n\n"; + + + + +void nullsub_7F0A4860(void) { + +} + + + + + + +#ifdef NONMATCHING +void init_watch_at_start_of_stage(void) +{ + watch_screen_index = 0; + D_80040998 = 0; + D_8004099C = 0; + D_800409A0 = 4; + D_800409A4 = 0; + watch_soundrelated_maybe = 0; + D_800409AC = 0; + D_800409B0 = 0; + D_800409B4 = 0; + D_800409B8 = 0; + D_800409BC = 0.0f; + D_800409C0 = 0; + D_800409C4 = 0; + D_800409C8 = 0.0f; + D_800409CC = 0.0f; + D_800409D0 = -1; + D_800409D4 = 0.0f; + if (!j_text_trigger) + {;} + else + { + pPlayer->neg_vspacing_for_control_type_entry = 0; + pPlayer->cur_player_control_type_1 = 0; + pPlayer->cur_player_control_type_0 = 0; + pPlayer->cur_player_control_type_2 = 0.0f; + pPlayer->has_set_control_type_data = 1; + } + + + D_800409D8 = 8; + controlstick_lr_enabled = 0; + D_80040AE0 = 0; + D_80040AE4 = 0; + D_80040AE8 = 0.0f; + D_80040AEC = 0.0f; + D_80040AF0 = 45.0f; + D_80040AF4 = 0xff00a0; + D_80040AF8 = 10; + D_80040AFC = 0xff; + D_80040B00 = 10; + D_80040B04 = 0xe0; + D_80040B08 = 0; + D_80040B0C = 0xffa0; + D_80040B10 = 0xf800; + D_80040B14 = 0.0f; + D_80040B18 = 0.0f; + D_80040B1C = 2.5f; + D_80040B20 = 0.0f; + D_80040B24 = 0.0f; + D_80040B28 = 0.0f; + D_80040B2C = 0; + D_80040B30 = 0.0f; + D_80040B34 = 0.0f; + D_80040B38 = 0.0f; + D_80040B3C = 0; + D_80040B40 = 0; + D_80040B44 = 1; + D_80040B48 = 0x32; + D_80040B4C = 0x32; + D_80040B50 = 0x32; + D_80040B54 = 0x32; + sub_GAME_7F01D500(1,0xa); + mission_failed_or_aborted = FALSE; +} +#else +GLOBAL_ASM( +.text +glabel init_watch_at_start_of_stage +/* 0D9398 7F0A4868 3C018004 */ lui $at, %hi(watch_screen_index) +/* 0D939C 7F0A486C AC200994 */ sw $zero, %lo(watch_screen_index)($at) +/* 0D93A0 7F0A4870 3C018004 */ lui $at, %hi(D_80040998) +/* 0D93A4 7F0A4874 AC200998 */ sw $zero, %lo(D_80040998)($at) +/* 0D93A8 7F0A4878 3C018004 */ lui $at, %hi(D_8004099C) +/* 0D93AC 7F0A487C AC20099C */ sw $zero, %lo(D_8004099C)($at) +/* 0D93B0 7F0A4880 3C018004 */ lui $at, %hi(D_800409A0) +/* 0D93B4 7F0A4884 240E0004 */ li $t6, 4 +/* 0D93B8 7F0A4888 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0D93BC 7F0A488C 3C018004 */ lui $at, %hi(D_800409A4) +/* 0D93C0 7F0A4890 AC2009A4 */ sw $zero, %lo(D_800409A4)($at) +/* 0D93C4 7F0A4894 3C018004 */ lui $at, %hi(watch_soundrelated_maybe) +/* 0D93C8 7F0A4898 AC2009A8 */ sw $zero, %lo(watch_soundrelated_maybe)($at) +/* 0D93CC 7F0A489C 3C018004 */ lui $at, %hi(D_800409AC) +/* 0D93D0 7F0A48A0 AC2009AC */ sw $zero, %lo(D_800409AC)($at) +/* 0D93D4 7F0A48A4 3C018004 */ lui $at, %hi(D_800409B0) +/* 0D93D8 7F0A48A8 AC2009B0 */ sw $zero, %lo(D_800409B0)($at) +/* 0D93DC 7F0A48AC 3C018004 */ lui $at, %hi(D_800409B4) +/* 0D93E0 7F0A48B0 AC2009B4 */ sw $zero, %lo(D_800409B4)($at) +/* 0D93E4 7F0A48B4 44800000 */ mtc1 $zero, $f0 +/* 0D93E8 7F0A48B8 3C018004 */ lui $at, %hi(D_800409B8) +/* 0D93EC 7F0A48BC AC2009B8 */ sw $zero, %lo(D_800409B8)($at) +/* 0D93F0 7F0A48C0 3C018004 */ lui $at, %hi(D_800409BC) +/* 0D93F4 7F0A48C4 E42009BC */ swc1 $f0, %lo(D_800409BC)($at) +/* 0D93F8 7F0A48C8 3C018004 */ lui $at, %hi(D_800409C0) +/* 0D93FC 7F0A48CC AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +/* 0D9400 7F0A48D0 3C018004 */ lui $at, %hi(D_800409C4) +/* 0D9404 7F0A48D4 AC2009C4 */ sw $zero, %lo(D_800409C4)($at) +/* 0D9408 7F0A48D8 3C018004 */ lui $at, %hi(D_800409C8) +/* 0D940C 7F0A48DC E42009C8 */ swc1 $f0, %lo(D_800409C8)($at) +/* 0D9410 7F0A48E0 3C018004 */ lui $at, %hi(D_800409CC) +/* 0D9414 7F0A48E4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0D9418 7F0A48E8 E42009CC */ swc1 $f0, %lo(D_800409CC)($at) +/* 0D941C 7F0A48EC 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0D9420 7F0A48F0 3C018004 */ lui $at, %hi(D_800409D0) +/* 0D9424 7F0A48F4 240FFFFF */ li $t7, -1 +/* 0D9428 7F0A48F8 AC2F09D0 */ sw $t7, %lo(D_800409D0)($at) +/* 0D942C 7F0A48FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D9430 7F0A4900 3C018004 */ lui $at, %hi(D_800409D4) +/* 0D9434 7F0A4904 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D9438 7F0A4908 13000003 */ beqz $t8, .L7F0A4918 +/* 0D943C 7F0A490C E42009D4 */ swc1 $f0, %lo(D_800409D4)($at) +/* 0D9440 7F0A4910 10000001 */ b .L7F0A4918 +/* 0D9444 7F0A4914 00000000 */ nop +.L7F0A4918: +/* 0D9448 7F0A4918 3C028008 */ lui $v0, %hi(pPlayer) +/* 0D944C 7F0A491C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0D9450 7F0A4920 8C590000 */ lw $t9, ($v0) +/* 0D9454 7F0A4924 24050001 */ li $a1, 1 +/* 0D9458 7F0A4928 240C0008 */ li $t4, 8 +/* 0D945C 7F0A492C AF202A64 */ sw $zero, 0x2a64($t9) +/* 0D9460 7F0A4930 8C480000 */ lw $t0, ($v0) +/* 0D9464 7F0A4934 3C018004 */ lui $at, %hi(D_800409D8) +/* 0D9468 7F0A4938 3C0D00FF */ lui $t5, (0x00FF00A0 >> 16) # lui $t5, 0xff +/* 0D946C 7F0A493C AD002A5C */ sw $zero, 0x2a5c($t0) +/* 0D9470 7F0A4940 8C490000 */ lw $t1, ($v0) +/* 0D9474 7F0A4944 35AD00A0 */ ori $t5, (0x00FF00A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0D9478 7F0A4948 2406000A */ li $a2, 10 +/* 0D947C 7F0A494C AD202A58 */ sw $zero, 0x2a58($t1) +/* 0D9480 7F0A4950 8C4A0000 */ lw $t2, ($v0) +/* 0D9484 7F0A4954 240E00FF */ li $t6, 255 +/* 0D9488 7F0A4958 240F00E0 */ li $t7, 224 +/* 0D948C 7F0A495C E5402A60 */ swc1 $f0, 0x2a60($t2) +/* 0D9490 7F0A4960 8C4B0000 */ lw $t3, ($v0) +/* 0D9494 7F0A4964 3418FFA0 */ li $t8, 65440 +/* 0D9498 7F0A4968 3419F800 */ li $t9, 63488 +/* 0D949C 7F0A496C AD652A68 */ sw $a1, 0x2a68($t3) +/* 0D94A0 7F0A4970 AC2C09D8 */ sw $t4, %lo(D_800409D8)($at) +/* 0D94A4 7F0A4974 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0D94A8 7F0A4978 AC200ADC */ sw $zero, %lo(controlstick_lr_enabled)($at) +/* 0D94AC 7F0A497C 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0D94B0 7F0A4980 AC200AE0 */ sw $zero, %lo(D_80040AE0)($at) +/* 0D94B4 7F0A4984 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0D94B8 7F0A4988 AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +/* 0D94BC 7F0A498C 3C018004 */ lui $at, %hi(D_80040AE8) +/* 0D94C0 7F0A4990 E4200AE8 */ swc1 $f0, %lo(D_80040AE8)($at) +/* 0D94C4 7F0A4994 3C018004 */ lui $at, %hi(D_80040AEC) +/* 0D94C8 7F0A4998 E4200AEC */ swc1 $f0, %lo(D_80040AEC)($at) +/* 0D94CC 7F0A499C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0D94D0 7F0A49A0 44812000 */ mtc1 $at, $f4 +/* 0D94D4 7F0A49A4 3C018004 */ lui $at, %hi(D_80040AF0) +/* 0D94D8 7F0A49A8 24030032 */ li $v1, 50 +/* 0D94DC 7F0A49AC E4240AF0 */ swc1 $f4, %lo(D_80040AF0)($at) +/* 0D94E0 7F0A49B0 3C018004 */ lui $at, %hi(D_80040AF4) +/* 0D94E4 7F0A49B4 AC2D0AF4 */ sw $t5, %lo(D_80040AF4)($at) +/* 0D94E8 7F0A49B8 3C018004 */ lui $at, %hi(D_80040AF8) +/* 0D94EC 7F0A49BC AC260AF8 */ sw $a2, %lo(D_80040AF8)($at) +/* 0D94F0 7F0A49C0 3C018004 */ lui $at, %hi(D_80040AFC) +/* 0D94F4 7F0A49C4 AC2E0AFC */ sw $t6, %lo(D_80040AFC)($at) +/* 0D94F8 7F0A49C8 3C018004 */ lui $at, %hi(D_80040B00) +/* 0D94FC 7F0A49CC AC260B00 */ sw $a2, %lo(D_80040B00)($at) +/* 0D9500 7F0A49D0 3C018004 */ lui $at, %hi(D_80040B04) +/* 0D9504 7F0A49D4 AC2F0B04 */ sw $t7, %lo(D_80040B04)($at) +/* 0D9508 7F0A49D8 3C018004 */ lui $at, %hi(D_80040B08) +/* 0D950C 7F0A49DC AC200B08 */ sw $zero, %lo(D_80040B08)($at) +/* 0D9510 7F0A49E0 3C018004 */ lui $at, %hi(D_80040B0C) +/* 0D9514 7F0A49E4 AC380B0C */ sw $t8, %lo(D_80040B0C)($at) +/* 0D9518 7F0A49E8 3C018004 */ lui $at, %hi(D_80040B10) +/* 0D951C 7F0A49EC AC390B10 */ sw $t9, %lo(D_80040B10)($at) +/* 0D9520 7F0A49F0 3C018004 */ lui $at, %hi(D_80040B14) +/* 0D9524 7F0A49F4 E4200B14 */ swc1 $f0, %lo(D_80040B14)($at) +/* 0D9528 7F0A49F8 3C018004 */ lui $at, %hi(D_80040B18) +/* 0D952C 7F0A49FC E4200B18 */ swc1 $f0, %lo(D_80040B18)($at) +/* 0D9530 7F0A4A00 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0D9534 7F0A4A04 44813000 */ mtc1 $at, $f6 +/* 0D9538 7F0A4A08 3C018004 */ lui $at, %hi(D_80040B1C) +/* 0D953C 7F0A4A0C E4260B1C */ swc1 $f6, %lo(D_80040B1C)($at) +/* 0D9540 7F0A4A10 3C018004 */ lui $at, %hi(D_80040B20) +/* 0D9544 7F0A4A14 E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +/* 0D9548 7F0A4A18 3C018004 */ lui $at, %hi(D_80040B24) +/* 0D954C 7F0A4A1C E4200B24 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0D9550 7F0A4A20 3C018004 */ lui $at, %hi(D_80040B28) +/* 0D9554 7F0A4A24 E4200B28 */ swc1 $f0, %lo(D_80040B28)($at) +/* 0D9558 7F0A4A28 3C018004 */ lui $at, %hi(D_80040B2C) +/* 0D955C 7F0A4A2C AC200B2C */ sw $zero, %lo(D_80040B2C)($at) +/* 0D9560 7F0A4A30 3C018004 */ lui $at, %hi(D_80040B30) +/* 0D9564 7F0A4A34 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +/* 0D9568 7F0A4A38 3C018004 */ lui $at, %hi(D_80040B34) +/* 0D956C 7F0A4A3C E4200B34 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0D9570 7F0A4A40 3C018004 */ lui $at, %hi(D_80040B38) +/* 0D9574 7F0A4A44 E4200B38 */ swc1 $f0, %lo(D_80040B38)($at) +/* 0D9578 7F0A4A48 3C018004 */ lui $at, %hi(D_80040B3C) +/* 0D957C 7F0A4A4C AC200B3C */ sw $zero, %lo(D_80040B3C)($at) +/* 0D9580 7F0A4A50 3C018004 */ lui $at, %hi(D_80040B40) +/* 0D9584 7F0A4A54 AC200B40 */ sw $zero, %lo(D_80040B40)($at) +/* 0D9588 7F0A4A58 3C018004 */ lui $at, %hi(D_80040B44) +/* 0D958C 7F0A4A5C A4250B44 */ sh $a1, %lo(D_80040B44)($at) +/* 0D9590 7F0A4A60 3C018004 */ lui $at, %hi(D_80040B48) +/* 0D9594 7F0A4A64 AC230B48 */ sw $v1, %lo(D_80040B48)($at) +/* 0D9598 7F0A4A68 3C018004 */ lui $at, %hi(D_80040B4C) +/* 0D959C 7F0A4A6C AC230B4C */ sw $v1, %lo(D_80040B4C)($at) +/* 0D95A0 7F0A4A70 3C018004 */ lui $at, %hi(D_80040B50) +/* 0D95A4 7F0A4A74 AC230B50 */ sw $v1, %lo(D_80040B50)($at) +/* 0D95A8 7F0A4A78 3C018004 */ lui $at, %hi(D_80040B54) +/* 0D95AC 7F0A4A7C 0FC07540 */ jal sub_GAME_7F01D500 +/* 0D95B0 7F0A4A80 AC230B54 */ sw $v1, %lo(D_80040B54)($at) +/* 0D95B4 7F0A4A84 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D95B8 7F0A4A88 3C018003 */ lui $at, %hi(mission_failed_or_aborted) +/* 0D95BC 7F0A4A8C AC20A924 */ sw $zero, %lo(mission_failed_or_aborted)($at) +/* 0D95C0 7F0A4A90 03E00008 */ jr $ra +/* 0D95C4 7F0A4A94 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +void controller_deadzone_related(void) +{ + if (10 < get_cur_controller_horz_stick_pos('\0')) + { + D_80040B50 = D_80040B50 + 1; + } + if (get_cur_controller_horz_stick_pos('\0') < -10) + { + D_80040B50 = D_80040B50 + -1; + } + if (10 < get_cur_controller_vert_stick_pos('\0')) + { + D_80040B54 = D_80040B54 + -1; + } + if (get_cur_controller_vert_stick_pos('\0') < -10) + { + D_80040B54 = D_80040B54 + 1; + } +} + + + + + +#ifdef NONMATCHING + +void proc_7F0A4B40(undefined4 *param_1) +{ + s32 sVar1; + undefined4 *puVar2; + int iStack52; + int iStack48; + int iStack44; + int *piStack40; + byte abStack36 [36]; + + sVar1 = get_cur_controller_horz_stick_pos('\0'); + if (10 < sVar1) { + D_80040B48 = D_80040B48 + 1; + } + sVar1 = get_cur_controller_horz_stick_pos('\0'); + if (sVar1 < -10) { + D_80040B48 = D_80040B48 - 1; + } + sVar1 = get_cur_controller_vert_stick_pos('\0'); + if (10 < sVar1) { + D_80040B4C = D_80040B4C - 1; + } + sVar1 = get_cur_controller_vert_stick_pos('\0'); + if (sVar1 < -10) { + D_80040B4C = D_80040B4C + 1; + } + *param_1 = 0xb900031d; + param_1[1] = 0x504240; + param_1[2] = 0xfcffffff; + param_1[3] = 0xfffdf6fb; + param_1[4] = 0xfa000000; + param_1[5] = 0xff0000ff; + param_1[6] = (D_80040B48 + 1 & 0x3ff) << 0xe | 0xf6000000 | (D_80040B4C + 1 & 0x3ff) << 2; + param_1[7] = (D_80040B48 & 0x3ff) << 0xe | (D_80040B4C & 0x3ff) << 2; + piStack40 = ptrFirstFontTableSmall; + iStack44 = ptrSecondFontTableSmall; + sprintf((char *)abStack36,"%d, %d\n",D_80040B48,D_80040B4C); + puVar2 = microcode_constructor(param_1 + 8); + proc_7F0AE98C(&iStack52,&iStack48,abStack36,iStack44,piStack40,0); + en_text_write_stuff(puVar2,&D_80040B48,&D_80040B4C,abStack36,iStack44,(int)piStack40,0xff0000ff, + iStack48,iStack52,0,0); + D_80040B4C = (D_80040B4C - *(int *)(iStack44 + 0x890)) + 1; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4B40 +/* 0D9670 7F0A4B40 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0D9674 7F0A4B44 AFB00038 */ sw $s0, 0x38($sp) +/* 0D9678 7F0A4B48 00808025 */ move $s0, $a0 +/* 0D967C 7F0A4B4C AFBF0044 */ sw $ra, 0x44($sp) +/* 0D9680 7F0A4B50 AFB20040 */ sw $s2, 0x40($sp) +/* 0D9684 7F0A4B54 AFB1003C */ sw $s1, 0x3c($sp) +/* 0D9688 7F0A4B58 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D968C 7F0A4B5C 00002025 */ move $a0, $zero +/* 0D9690 7F0A4B60 2841000B */ slti $at, $v0, 0xb +/* 0D9694 7F0A4B64 14200006 */ bnez $at, .L7F0A4B80 +/* 0D9698 7F0A4B68 00002025 */ move $a0, $zero +/* 0D969C 7F0A4B6C 3C128004 */ lui $s2, %hi(D_80040B48) +/* 0D96A0 7F0A4B70 26520B48 */ addiu $s2, %lo(D_80040B48) # addiu $s2, $s2, 0xb48 +/* 0D96A4 7F0A4B74 8E4E0000 */ lw $t6, ($s2) +/* 0D96A8 7F0A4B78 25CF0001 */ addiu $t7, $t6, 1 +/* 0D96AC 7F0A4B7C AE4F0000 */ sw $t7, ($s2) +.L7F0A4B80: +/* 0D96B0 7F0A4B80 3C128004 */ lui $s2, %hi(D_80040B48) +/* 0D96B4 7F0A4B84 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D96B8 7F0A4B88 26520B48 */ addiu $s2, %lo(D_80040B48) # addiu $s2, $s2, 0xb48 +/* 0D96BC 7F0A4B8C 2841FFF6 */ slti $at, $v0, -0xa +/* 0D96C0 7F0A4B90 10200004 */ beqz $at, .L7F0A4BA4 +/* 0D96C4 7F0A4B94 00000000 */ nop +/* 0D96C8 7F0A4B98 8E580000 */ lw $t8, ($s2) +/* 0D96CC 7F0A4B9C 2719FFFF */ addiu $t9, $t8, -1 +/* 0D96D0 7F0A4BA0 AE590000 */ sw $t9, ($s2) +.L7F0A4BA4: +/* 0D96D4 7F0A4BA4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D96D8 7F0A4BA8 00002025 */ move $a0, $zero +/* 0D96DC 7F0A4BAC 2841000B */ slti $at, $v0, 0xb +/* 0D96E0 7F0A4BB0 14200006 */ bnez $at, .L7F0A4BCC +/* 0D96E4 7F0A4BB4 00002025 */ move $a0, $zero +/* 0D96E8 7F0A4BB8 3C118004 */ lui $s1, %hi(D_80040B4C) +/* 0D96EC 7F0A4BBC 26310B4C */ addiu $s1, %lo(D_80040B4C) # addiu $s1, $s1, 0xb4c +/* 0D96F0 7F0A4BC0 8E2A0000 */ lw $t2, ($s1) +/* 0D96F4 7F0A4BC4 254BFFFF */ addiu $t3, $t2, -1 +/* 0D96F8 7F0A4BC8 AE2B0000 */ sw $t3, ($s1) +.L7F0A4BCC: +/* 0D96FC 7F0A4BCC 3C118004 */ lui $s1, %hi(D_80040B4C) +/* 0D9700 7F0A4BD0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D9704 7F0A4BD4 26310B4C */ addiu $s1, %lo(D_80040B4C) # addiu $s1, $s1, 0xb4c +/* 0D9708 7F0A4BD8 2841FFF6 */ slti $at, $v0, -0xa +/* 0D970C 7F0A4BDC 10200004 */ beqz $at, .L7F0A4BF0 +/* 0D9710 7F0A4BE0 02001025 */ move $v0, $s0 +/* 0D9714 7F0A4BE4 8E2C0000 */ lw $t4, ($s1) +/* 0D9718 7F0A4BE8 258D0001 */ addiu $t5, $t4, 1 +/* 0D971C 7F0A4BEC AE2D0000 */ sw $t5, ($s1) +.L7F0A4BF0: +/* 0D9720 7F0A4BF0 26100008 */ addiu $s0, $s0, 8 +/* 0D9724 7F0A4BF4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0D9728 7F0A4BF8 3C0F0050 */ lui $t7, (0x00504240 >> 16) # lui $t7, 0x50 +/* 0D972C 7F0A4BFC 35EF4240 */ ori $t7, (0x00504240 & 0xFFFF) # ori $t7, $t7, 0x4240 +/* 0D9730 7F0A4C00 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0D9734 7F0A4C04 02001825 */ move $v1, $s0 +/* 0D9738 7F0A4C08 AC4E0000 */ sw $t6, ($v0) +/* 0D973C 7F0A4C0C AC4F0004 */ sw $t7, 4($v0) +/* 0D9740 7F0A4C10 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 0D9744 7F0A4C14 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 0D9748 7F0A4C18 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 0D974C 7F0A4C1C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 0D9750 7F0A4C20 26100008 */ addiu $s0, $s0, 8 +/* 0D9754 7F0A4C24 AC780000 */ sw $t8, ($v1) +/* 0D9758 7F0A4C28 AC790004 */ sw $t9, 4($v1) +/* 0D975C 7F0A4C2C 02004025 */ move $t0, $s0 +/* 0D9760 7F0A4C30 3C0BFF00 */ lui $t3, (0xFF0000FF >> 16) # lui $t3, 0xff00 +/* 0D9764 7F0A4C34 356B00FF */ ori $t3, (0xFF0000FF & 0xFFFF) # ori $t3, $t3, 0xff +/* 0D9768 7F0A4C38 3C0AFA00 */ lui $t2, 0xfa00 +/* 0D976C 7F0A4C3C AD0A0000 */ sw $t2, ($t0) +/* 0D9770 7F0A4C40 AD0B0004 */ sw $t3, 4($t0) +/* 0D9774 7F0A4C44 8E4C0000 */ lw $t4, ($s2) +/* 0D9778 7F0A4C48 8E390000 */ lw $t9, ($s1) +/* 0D977C 7F0A4C4C 3C01F600 */ lui $at, 0xf600 +/* 0D9780 7F0A4C50 258D0001 */ addiu $t5, $t4, 1 +/* 0D9784 7F0A4C54 31AE03FF */ andi $t6, $t5, 0x3ff +/* 0D9788 7F0A4C58 272A0001 */ addiu $t2, $t9, 1 +/* 0D978C 7F0A4C5C 314B03FF */ andi $t3, $t2, 0x3ff +/* 0D9790 7F0A4C60 000E7B80 */ sll $t7, $t6, 0xe +/* 0D9794 7F0A4C64 26100008 */ addiu $s0, $s0, 8 +/* 0D9798 7F0A4C68 01E1C025 */ or $t8, $t7, $at +/* 0D979C 7F0A4C6C 000B6080 */ sll $t4, $t3, 2 +/* 0D97A0 7F0A4C70 030C6825 */ or $t5, $t8, $t4 +/* 0D97A4 7F0A4C74 02004825 */ move $t1, $s0 +/* 0D97A8 7F0A4C78 AD2D0000 */ sw $t5, ($t1) +/* 0D97AC 7F0A4C7C 8E2A0000 */ lw $t2, ($s1) +/* 0D97B0 7F0A4C80 8E4E0000 */ lw $t6, ($s2) +/* 0D97B4 7F0A4C84 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0D97B8 7F0A4C88 314B03FF */ andi $t3, $t2, 0x3ff +/* 0D97BC 7F0A4C8C 31CF03FF */ andi $t7, $t6, 0x3ff +/* 0D97C0 7F0A4C90 000FCB80 */ sll $t9, $t7, 0xe +/* 0D97C4 7F0A4C94 000BC080 */ sll $t8, $t3, 2 +/* 0D97C8 7F0A4C98 03386025 */ or $t4, $t9, $t8 +/* 0D97CC 7F0A4C9C AD2C0004 */ sw $t4, 4($t1) +/* 0D97D0 7F0A4CA0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0D97D4 7F0A4CA4 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0D97D8 7F0A4CA8 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0D97DC 7F0A4CAC 3C058005 */ lui $a1, %hi(aDD) +/* 0D97E0 7F0A4CB0 26100008 */ addiu $s0, $s0, 8 +/* 0D97E4 7F0A4CB4 24A57760 */ addiu $a1, %lo(aDD) # addiu $a1, $a1, 0x7760 +/* 0D97E8 7F0A4CB8 8E270000 */ lw $a3, ($s1) +/* 0D97EC 7F0A4CBC 8E460000 */ lw $a2, ($s2) +/* 0D97F0 7F0A4CC0 27A4005C */ addiu $a0, $sp, 0x5c +/* 0D97F4 7F0A4CC4 AFAD0058 */ sw $t5, 0x58($sp) +/* 0D97F8 7F0A4CC8 0C002B25 */ jal sprintf +/* 0D97FC 7F0A4CCC AFAE0054 */ sw $t6, 0x54($sp) +/* 0D9800 7F0A4CD0 0FC2B366 */ jal microcode_constructor +/* 0D9804 7F0A4CD4 02002025 */ move $a0, $s0 +/* 0D9808 7F0A4CD8 8FAF0058 */ lw $t7, 0x58($sp) +/* 0D980C 7F0A4CDC 00408025 */ move $s0, $v0 +/* 0D9810 7F0A4CE0 27A4004C */ addiu $a0, $sp, 0x4c +/* 0D9814 7F0A4CE4 27A50050 */ addiu $a1, $sp, 0x50 +/* 0D9818 7F0A4CE8 27A6005C */ addiu $a2, $sp, 0x5c +/* 0D981C 7F0A4CEC 8FA70054 */ lw $a3, 0x54($sp) +/* 0D9820 7F0A4CF0 AFA00014 */ sw $zero, 0x14($sp) +/* 0D9824 7F0A4CF4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0D9828 7F0A4CF8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0D982C 7F0A4CFC 8FAA0054 */ lw $t2, 0x54($sp) +/* 0D9830 7F0A4D00 8FAB0058 */ lw $t3, 0x58($sp) +/* 0D9834 7F0A4D04 8FB80050 */ lw $t8, 0x50($sp) +/* 0D9838 7F0A4D08 8FAC004C */ lw $t4, 0x4c($sp) +/* 0D983C 7F0A4D0C 3C19FF00 */ lui $t9, (0xFF0000FF >> 16) # lui $t9, 0xff00 +/* 0D9840 7F0A4D10 373900FF */ ori $t9, (0xFF0000FF & 0xFFFF) # ori $t9, $t9, 0xff +/* 0D9844 7F0A4D14 AFB90018 */ sw $t9, 0x18($sp) +/* 0D9848 7F0A4D18 02002025 */ move $a0, $s0 +/* 0D984C 7F0A4D1C 02402825 */ move $a1, $s2 +/* 0D9850 7F0A4D20 02203025 */ move $a2, $s1 +/* 0D9854 7F0A4D24 27A7005C */ addiu $a3, $sp, 0x5c +/* 0D9858 7F0A4D28 AFA00024 */ sw $zero, 0x24($sp) +/* 0D985C 7F0A4D2C AFA00028 */ sw $zero, 0x28($sp) +/* 0D9860 7F0A4D30 AFAA0010 */ sw $t2, 0x10($sp) +/* 0D9864 7F0A4D34 AFAB0014 */ sw $t3, 0x14($sp) +/* 0D9868 7F0A4D38 AFB8001C */ sw $t8, 0x1c($sp) +/* 0D986C 7F0A4D3C 0FC2B6AF */ jal en_text_write_stuff +/* 0D9870 7F0A4D40 AFAC0020 */ sw $t4, 0x20($sp) +/* 0D9874 7F0A4D44 8FAE0054 */ lw $t6, 0x54($sp) +/* 0D9878 7F0A4D48 8E2D0000 */ lw $t5, ($s1) +/* 0D987C 7F0A4D4C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D9880 7F0A4D50 8DCF0890 */ lw $t7, 0x890($t6) +/* 0D9884 7F0A4D54 8FB00038 */ lw $s0, 0x38($sp) +/* 0D9888 7F0A4D58 8FB20040 */ lw $s2, 0x40($sp) +/* 0D988C 7F0A4D5C 01AF5023 */ subu $t2, $t5, $t7 +/* 0D9890 7F0A4D60 254B0001 */ addiu $t3, $t2, 1 +/* 0D9894 7F0A4D64 AE2B0000 */ sw $t3, ($s1) +/* 0D9898 7F0A4D68 8FB1003C */ lw $s1, 0x3c($sp) +/* 0D989C 7F0A4D6C 03E00008 */ jr $ra +/* 0D98A0 7F0A4D70 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + + +u32 controllerCheckDualControllerTypesAllowed(void) +{ + if (get_attached_controller_count() >= 2) + { + if (cur_player_get_control_type() >= 4) + { + return 1; + } + } + return 0; +} + +int cur_player_get_control_type(void){ + return pPlayer->cur_player_control_type_0; +} + + +void cur_player_set_control_type(int type) +{ + int langsize; + + pPlayer->cur_player_control_type_0 = type; + pPlayer->cur_player_control_type_1 = type; + pPlayer->cur_player_control_type_2 = (float)type; + + langsize = j_text_trigger ? 14 : 10; + + pPlayer->neg_vspacing_for_control_type_entry = -(langsize * type); + pPlayer->has_set_control_type_data = 1; + +} + +u32 get_cur_player_look_vertical_inverted(void) {return cur_player_look_vertical_inverted;} +void set_cur_player_look_vertical_inverted(u32 param_1) {cur_player_look_vertical_inverted = param_1;} + +u32 cur_player_get_autoaim(void) {return cur_player_autoaim_setting;} +void cur_player_set_autoaim(u32 uParm1) {cur_player_autoaim_setting = uParm1;} + +u32 cur_player_get_lookahead(void) {return cur_player_lookahead_setting;} +void cur_player_set_lookahead(u32 uParm1) {cur_player_lookahead_setting = uParm1;} + +u32 cur_player_get_aim_control(void) {return cur_player_aim_control;} +void cur_player_set_aim_control(u32 uParm1) {cur_player_aim_control = uParm1;} + +u32 cur_player_get_sight_onscreen_control(void) {return cur_player_sight_onscreen;} +void cur_player_set_sight_onscreen_control(u32 uParm1) {cur_player_sight_onscreen = uParm1;} + +u32 cur_player_get_ammo_onscreen_setting(void) {return cur_player_ammo_onscreen_setting;} +void cur_player_set_ammo_onscreen_setting(u32 uParm1) {cur_player_ammo_onscreen_setting = uParm1;} + +u32 cur_player_get_screen_setting(void) {return cur_player_screen_setting;} +void cur_player_set_screen_setting(u32 uParm1) {cur_player_screen_setting = uParm1;} + +u32 get_screen_ratio(void) {return screen_ratio;} +void set_screen_ratio(u32 uParm1) {screen_ratio = uParm1;} + + +void sub_GAME_7F0A4EF8(void) { + + if (watch_soundrelated_maybe == 1) { + watch_soundrelated_maybe = 0; + + } else { + watch_soundrelated_maybe = 1; + play_sfx_a1(ptr_sfx_buf, 0x9F, 0); + } +} + +void sub_GAME_7F0A4F44(void){ + watch_soundrelated_maybe = 0; +} + +u32 is_holding_greater_than_2E_left_on_stick(void) +{ + return (get_cur_controller_horz_stick_pos('\0') < -0x2d); +} + +u32 is_holding_greater_than_2E_right_on_stick(void) +{ + return ((get_cur_controller_horz_stick_pos('\0') < 0x2e) ^ 1); +} + +u32 get_controlstick_lr_enabled(void) { + return controlstick_lr_enabled; +} + +void set_controlstick_lr_disabled(void) { + controlstick_lr_enabled = 0; +} + +s32 sub_GAME_7F0A4FB0(void) +{ + return is_holding_greater_than_2E_left_on_stick() && get_controlstick_lr_enabled(); +} + +s32 sub_GAME_7F0A4FEC(void) +{ + return is_holding_greater_than_2E_right_on_stick() && get_controlstick_lr_enabled(); +} + +u32 is_holding_greater_than_2E_up_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < 0x2e) ^ 1; +} + +u32 is_holding_greater_than_2E_down_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < -0x2d); +} + +u32 get_D_80040AE0(void) +{ + return D_80040AE0; +} + +void set_D_80040AE0_0(void) +{ + D_80040AE0 = 0; +} + +s32 sub_GAME_7F0A5088(void) +{ + return is_holding_greater_than_2E_up_on_stick() && get_D_80040AE0(); +} + +s32 sub_GAME_7F0A50C4(void) +{ + return is_holding_greater_than_2E_down_on_stick() && get_D_80040AE0(); +} + +u32 is_holding_less_than_10_up_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < 0x10) ^ 1; +} + +u32 is_holding_less_than_10_down_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < -0xf); +} + +u32 get_D_80040AE4(void) { + return D_80040AE4; +} + +void set_D_80040AE4_0(void) { + D_80040AE4 = 0; +} + + +s32 sub_GAME_7F0A5160(void) +{ + return is_holding_less_than_10_up_on_stick() && get_D_80040AE4() == 0; +} + +s32 sub_GAME_7F0A519C(void) +{ + return is_holding_less_than_10_down_on_stick() && get_D_80040AE4() == 0; +} + +void sub_GAME_7F0A51D8(void) +{ + D_80040B04 = 0x80; + play_sfx_a1(ptr_sfx_buf,0xec,NULL); + return; +} + +void sub_GAME_7F0A5210(void) +{ + set_controlstick_lr_disabled(); + play_sfx_a1(ptr_sfx_buf,0x9f,NULL); + if ((D_80040B10 << 0x10) < get_random_value()) { + sub_GAME_7F0A51D8(); + } + return; +} + +void watch_screen0_navigation(void) +{ + s32 goto_watch_screen_index_4; + s32 goto_watch_screen_index_1; + + if (watch_soundrelated_maybe == 0) + { + goto_watch_screen_index_4 = 0; + goto_watch_screen_index_1 = 0; + + if (get_debug_gunwatchpos_flag() == 0) + { + if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + { + goto_watch_screen_index_4 = 1; + } + if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + { + goto_watch_screen_index_1 = 1; + } + } + + if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + goto_watch_screen_index_4 = 1; + } + + if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + goto_watch_screen_index_1 = 1; + } + + if (goto_watch_screen_index_4) + { + watch_screen_index = 4; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + } + + if (goto_watch_screen_index_1) + { + watch_screen_index = 1; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + return; + } + } + else if ((D_800409A4) && (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON))) + { + D_800409A4 = 0; + set_missionstate(0); + run_title_stage(); + mission_failed_or_aborted = 1; + deleteCurrentSelectedFolder(); + } +} + + +void watch_screen1_navigation(void) +{ + s32 goto_watch_screen_index_0; + s32 goto_watch_screen_index_2; + + if (watch_soundrelated_maybe == 0) + { + goto_watch_screen_index_0 = FALSE; + goto_watch_screen_index_2 = FALSE; + + if (get_debug_gunwatchpos_flag() == FALSE) + { + if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + { + goto_watch_screen_index_0 = TRUE; + } + if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + { + goto_watch_screen_index_2 = TRUE; + } + } + + if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + goto_watch_screen_index_0 = TRUE; + } + + if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + goto_watch_screen_index_2 = TRUE; + } + + if (goto_watch_screen_index_0) + { + watch_screen_index = 0; + zero_D_800409A4(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(5.9f, 15.0f); + } + + if (goto_watch_screen_index_2) + { + watch_screen_index = 2; + set_controlstick_lr_disabled(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + } + } +} + + +void unused_watch_screen_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 1; + set_controlstick_lr_disabled(); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 2; + zero_D_80040998(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + } + } +} + + +void watch_screen2_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 1; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 3; + zero_D_8004099C(); + set_controlstick_lr_disabled(); + } + } +} + + +void watch_screen3_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 2; + zero_D_80040998(); + set_controlstick_lr_disabled(); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 4; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + } + } +} + + +void watch_screen4_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 3; + zero_D_8004099C(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 0; + zero_D_800409A4(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(5.9f, 15.0f); + } + } +} + + +void sub_GAME_7F0A5860(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 1; + set_D_80040AE0_0(); + return; + } + } + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 1; + set_D_80040AE0_0(); + } + } +} + +void sub_GAME_7F0A5900(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 0; + set_D_80040AE0_0(); + return; + } + } + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 0; + set_D_80040AE0_0(); + } + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5998(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) != 0) || (sub_GAME_7F0A5088() != 0)) + { + D_8004099C = (s32) (D_8004099C - 1); + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + else + { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) + { + D_8004099C = (s32) (D_8004099C + 1); + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + else + { + + } + } + if (D_8004099C >= 0xa) + { + D_8004099C = 0; + return; + } + if (D_8004099C < 0) + { + D_8004099C = 9; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5998 +/* 0DA4C8 7F0A5998 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA4CC 7F0A599C AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA4D0 7F0A59A0 00002025 */ move $a0, $zero +/* 0DA4D4 7F0A59A4 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA4D8 7F0A59A8 24050808 */ li $a1, 2056 +/* 0DA4DC 7F0A59AC 14400005 */ bnez $v0, .L7F0A59C4 +/* 0DA4E0 7F0A59B0 00000000 */ nop +/* 0DA4E4 7F0A59B4 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA4E8 7F0A59B8 00000000 */ nop +/* 0DA4EC 7F0A59BC 1040000B */ beqz $v0, .L7F0A59EC +/* 0DA4F0 7F0A59C0 00002025 */ move $a0, $zero +.L7F0A59C4: +/* 0DA4F4 7F0A59C4 3C028004 */ lui $v0, %hi(D_8004099C) +/* 0DA4F8 7F0A59C8 2442099C */ addiu $v0, %lo(D_8004099C) # addiu $v0, $v0, 0x99c +/* 0DA4FC 7F0A59CC 8C4E0000 */ lw $t6, ($v0) +/* 0DA500 7F0A59D0 25CFFFFF */ addiu $t7, $t6, -1 +/* 0DA504 7F0A59D4 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA508 7F0A59D8 AC4F0000 */ sw $t7, ($v0) +/* 0DA50C 7F0A59DC 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA510 7F0A59E0 00000000 */ nop +/* 0DA514 7F0A59E4 10000010 */ b .L7F0A5A28 +/* 0DA518 7F0A59E8 00000000 */ nop +.L7F0A59EC: +/* 0DA51C 7F0A59EC 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA520 7F0A59F0 24050404 */ li $a1, 1028 +/* 0DA524 7F0A59F4 14400004 */ bnez $v0, .L7F0A5A08 +/* 0DA528 7F0A59F8 00000000 */ nop +/* 0DA52C 7F0A59FC 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA530 7F0A5A00 00000000 */ nop +/* 0DA534 7F0A5A04 10400008 */ beqz $v0, .L7F0A5A28 +.L7F0A5A08: +/* 0DA538 7F0A5A08 3C188004 */ lui $t8, %hi(D_8004099C) +/* 0DA53C 7F0A5A0C 8F18099C */ lw $t8, %lo(D_8004099C)($t8) +/* 0DA540 7F0A5A10 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA544 7F0A5A14 27190001 */ addiu $t9, $t8, 1 +/* 0DA548 7F0A5A18 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA54C 7F0A5A1C AC39099C */ sw $t9, %lo(D_8004099C)($at) +/* 0DA550 7F0A5A20 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA554 7F0A5A24 00000000 */ nop +.L7F0A5A28: +/* 0DA558 7F0A5A28 3C038004 */ lui $v1, %hi(D_8004099C) +/* 0DA55C 7F0A5A2C 2463099C */ addiu $v1, %lo(D_8004099C) # addiu $v1, $v1, 0x99c +/* 0DA560 7F0A5A30 8C620000 */ lw $v0, ($v1) +/* 0DA564 7F0A5A34 2841000A */ slti $at, $v0, 0xa +/* 0DA568 7F0A5A38 14200003 */ bnez $at, .L7F0A5A48 +/* 0DA56C 7F0A5A3C 00000000 */ nop +/* 0DA570 7F0A5A40 10000004 */ b .L7F0A5A54 +/* 0DA574 7F0A5A44 AC600000 */ sw $zero, ($v1) +.L7F0A5A48: +/* 0DA578 7F0A5A48 04410002 */ bgez $v0, .L7F0A5A54 +/* 0DA57C 7F0A5A4C 24080009 */ li $t0, 9 +/* 0DA580 7F0A5A50 AC680000 */ sw $t0, ($v1) +.L7F0A5A54: +/* 0DA584 7F0A5A54 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DA588 7F0A5A58 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA58C 7F0A5A5C 03E00008 */ jr $ra +/* 0DA590 7F0A5A60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5A64(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) == 0) && (sub_GAME_7F0A5088() == 0)) { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) { + D_8004099C = 1; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + } + else { + D_8004099C = 9; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5A64 +/* 0DA594 7F0A5A64 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA598 7F0A5A68 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA59C 7F0A5A6C 00002025 */ move $a0, $zero +/* 0DA5A0 7F0A5A70 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA5A4 7F0A5A74 24050808 */ li $a1, 2056 +/* 0DA5A8 7F0A5A78 54400006 */ bnezl $v0, .L7F0A5A94 +/* 0DA5AC 7F0A5A7C 240E0009 */ li $t6, 9 +/* 0DA5B0 7F0A5A80 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA5B4 7F0A5A84 00000000 */ nop +/* 0DA5B8 7F0A5A88 10400009 */ beqz $v0, .L7F0A5AB0 +/* 0DA5BC 7F0A5A8C 00002025 */ move $a0, $zero +/* 0DA5C0 7F0A5A90 240E0009 */ li $t6, 9 +.L7F0A5A94: +/* 0DA5C4 7F0A5A94 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA5C8 7F0A5A98 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA5CC 7F0A5A9C AC2E099C */ sw $t6, %lo(D_8004099C)($at) +/* 0DA5D0 7F0A5AA0 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA5D4 7F0A5AA4 00000000 */ nop +/* 0DA5D8 7F0A5AA8 1000000F */ b .L7F0A5AE8 +/* 0DA5DC 7F0A5AAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5AB0: +/* 0DA5E0 7F0A5AB0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA5E4 7F0A5AB4 24050404 */ li $a1, 1028 +/* 0DA5E8 7F0A5AB8 54400005 */ bnezl $v0, .L7F0A5AD0 +/* 0DA5EC 7F0A5ABC 240F0001 */ li $t7, 1 +/* 0DA5F0 7F0A5AC0 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA5F4 7F0A5AC4 00000000 */ nop +/* 0DA5F8 7F0A5AC8 10400006 */ beqz $v0, .L7F0A5AE4 +/* 0DA5FC 7F0A5ACC 240F0001 */ li $t7, 1 +.L7F0A5AD0: +/* 0DA600 7F0A5AD0 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA604 7F0A5AD4 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA608 7F0A5AD8 AC2F099C */ sw $t7, %lo(D_8004099C)($at) +/* 0DA60C 7F0A5ADC 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA610 7F0A5AE0 00000000 */ nop +.L7F0A5AE4: +/* 0DA614 7F0A5AE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5AE8: +/* 0DA618 7F0A5AE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA61C 7F0A5AEC 03E00008 */ jr $ra +/* 0DA620 7F0A5AF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5AF4(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) == 0) && (sub_GAME_7F0A5088() == 0)) { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) { + D_8004099c = 2; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + } + else { + D_8004099c = 0; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5AF4 +/* 0DA624 7F0A5AF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA628 7F0A5AF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA62C 7F0A5AFC 00002025 */ move $a0, $zero +/* 0DA630 7F0A5B00 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA634 7F0A5B04 24050808 */ li $a1, 2056 +/* 0DA638 7F0A5B08 14400005 */ bnez $v0, .L7F0A5B20 +/* 0DA63C 7F0A5B0C 00000000 */ nop +/* 0DA640 7F0A5B10 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA644 7F0A5B14 00000000 */ nop +/* 0DA648 7F0A5B18 10400008 */ beqz $v0, .L7F0A5B3C +/* 0DA64C 7F0A5B1C 00002025 */ move $a0, $zero +.L7F0A5B20: +/* 0DA650 7F0A5B20 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA654 7F0A5B24 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA658 7F0A5B28 AC20099C */ sw $zero, %lo(D_8004099C)($at) +/* 0DA65C 7F0A5B2C 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA660 7F0A5B30 00000000 */ nop +/* 0DA664 7F0A5B34 1000000F */ b .L7F0A5B74 +/* 0DA668 7F0A5B38 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5B3C: +/* 0DA66C 7F0A5B3C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA670 7F0A5B40 24050404 */ li $a1, 1028 +/* 0DA674 7F0A5B44 54400005 */ bnezl $v0, .L7F0A5B5C +/* 0DA678 7F0A5B48 240E0002 */ li $t6, 2 +/* 0DA67C 7F0A5B4C 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA680 7F0A5B50 00000000 */ nop +/* 0DA684 7F0A5B54 10400006 */ beqz $v0, .L7F0A5B70 +/* 0DA688 7F0A5B58 240E0002 */ li $t6, 2 +.L7F0A5B5C: +/* 0DA68C 7F0A5B5C 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA690 7F0A5B60 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA694 7F0A5B64 AC2E099C */ sw $t6, %lo(D_8004099C)($at) +/* 0DA698 7F0A5B68 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA69C 7F0A5B6C 00000000 */ nop +.L7F0A5B70: +/* 0DA6A0 7F0A5B70 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5B74: +/* 0DA6A4 7F0A5B74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA6A8 7F0A5B78 03E00008 */ jr $ra +/* 0DA6AC 7F0A5B7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5B80(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005847C +.word 0x3dcccccd /*0.1*/ +glabel D_80058480 +.word 0x3dcccccd /*0.1*/ +glabel D_80058484 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80058488 +.word 0x3dcccccd /*0.1*/ +glabel D_8005848C +.word 0x3ee66666 /*0.44999999*/ +glabel D_80058490 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F0A5B80 +/* 0DA6B0 7F0A5B80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DA6B4 7F0A5B84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA6B8 7F0A5B88 0FC2340E */ jal count_total_items_in_inventory +/* 0DA6BC 7F0A5B8C 00000000 */ nop +/* 0DA6C0 7F0A5B90 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DA6C4 7F0A5B94 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DA6C8 7F0A5B98 14400067 */ bnez $v0, .L7F0A5D38 +/* 0DA6CC 7F0A5B9C 00002025 */ move $a0, $zero +/* 0DA6D0 7F0A5BA0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA6D4 7F0A5BA4 24050808 */ li $a1, 2056 +/* 0DA6D8 7F0A5BA8 14400005 */ bnez $v0, .L7F0A5BC0 +/* 0DA6DC 7F0A5BAC 00000000 */ nop +/* 0DA6E0 7F0A5BB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA6E4 7F0A5BB4 00002025 */ move $a0, $zero +/* 0DA6E8 7F0A5BB8 28410047 */ slti $at, $v0, 0x47 +/* 0DA6EC 7F0A5BBC 14200012 */ bnez $at, .L7F0A5C08 +.L7F0A5BC0: +/* 0DA6F0 7F0A5BC0 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA6F4 7F0A5BC4 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA6F8 7F0A5BC8 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA6FC 7F0A5BCC 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DA700 7F0A5BD0 4600010D */ trunc.w.s $f4, $f0 +/* 0DA704 7F0A5BD4 440F2000 */ mfc1 $t7, $f4 +/* 0DA708 7F0A5BD8 00000000 */ nop +/* 0DA70C 7F0A5BDC 59E0002B */ blezl $t7, .L7F0A5C8C +/* 0DA710 7F0A5BE0 00002025 */ move $a0, $zero +/* 0DA714 7F0A5BE4 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DA718 7F0A5BE8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA71C 7F0A5BEC 57000027 */ bnezl $t8, .L7F0A5C8C +/* 0DA720 7F0A5BF0 00002025 */ move $a0, $zero +/* 0DA724 7F0A5BF4 44813000 */ mtc1 $at, $f6 +/* 0DA728 7F0A5BF8 00000000 */ nop +/* 0DA72C 7F0A5BFC 46060201 */ sub.s $f8, $f0, $f6 +/* 0DA730 7F0A5C00 10000021 */ b .L7F0A5C88 +/* 0DA734 7F0A5C04 E4C80000 */ swc1 $f8, ($a2) +.L7F0A5C08: +/* 0DA738 7F0A5C08 00002025 */ move $a0, $zero +/* 0DA73C 7F0A5C0C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA740 7F0A5C10 24050404 */ li $a1, 1028 +/* 0DA744 7F0A5C14 14400008 */ bnez $v0, .L7F0A5C38 +/* 0DA748 7F0A5C18 00000000 */ nop +/* 0DA74C 7F0A5C1C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA750 7F0A5C20 00002025 */ move $a0, $zero +/* 0DA754 7F0A5C24 2841FFBA */ slti $at, $v0, -0x46 +/* 0DA758 7F0A5C28 14200003 */ bnez $at, .L7F0A5C38 +/* 0DA75C 7F0A5C2C 00000000 */ nop +/* 0DA760 7F0A5C30 10000016 */ b .L7F0A5C8C +/* 0DA764 7F0A5C34 00002025 */ move $a0, $zero +.L7F0A5C38: +/* 0DA768 7F0A5C38 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA76C 7F0A5C3C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA770 7F0A5C40 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA774 7F0A5C44 8FAB001C */ lw $t3, 0x1c($sp) +/* 0DA778 7F0A5C48 3C0D8004 */ lui $t5, %hi(watch_soundrelated_maybe) +/* 0DA77C 7F0A5C4C 4600028D */ trunc.w.s $f10, $f0 +/* 0DA780 7F0A5C50 256CFFFF */ addiu $t4, $t3, -1 +/* 0DA784 7F0A5C54 440A5000 */ mfc1 $t2, $f10 +/* 0DA788 7F0A5C58 00000000 */ nop +/* 0DA78C 7F0A5C5C 014C082A */ slt $at, $t2, $t4 +/* 0DA790 7F0A5C60 5020000A */ beql $at, $zero, .L7F0A5C8C +/* 0DA794 7F0A5C64 00002025 */ move $a0, $zero +/* 0DA798 7F0A5C68 8DAD09A8 */ lw $t5, %lo(watch_soundrelated_maybe)($t5) +/* 0DA79C 7F0A5C6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA7A0 7F0A5C70 55A00006 */ bnezl $t5, .L7F0A5C8C +/* 0DA7A4 7F0A5C74 00002025 */ move $a0, $zero +/* 0DA7A8 7F0A5C78 44818000 */ mtc1 $at, $f16 +/* 0DA7AC 7F0A5C7C 00000000 */ nop +/* 0DA7B0 7F0A5C80 46100480 */ add.s $f18, $f0, $f16 +/* 0DA7B4 7F0A5C84 E4D20000 */ swc1 $f18, ($a2) +.L7F0A5C88: +/* 0DA7B8 7F0A5C88 00002025 */ move $a0, $zero +.L7F0A5C8C: +/* 0DA7BC 7F0A5C8C 0C0030C3 */ jal get_controller_buttons_held +/* 0DA7C0 7F0A5C90 24050808 */ li $a1, 2056 +/* 0DA7C4 7F0A5C94 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA7C8 7F0A5C98 10400010 */ beqz $v0, .L7F0A5CDC +/* 0DA7CC 7F0A5C9C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA7D0 7F0A5CA0 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA7D4 7F0A5CA4 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DA7D8 7F0A5CA8 4600010D */ trunc.w.s $f4, $f0 +/* 0DA7DC 7F0A5CAC 440F2000 */ mfc1 $t7, $f4 +/* 0DA7E0 7F0A5CB0 00000000 */ nop +/* 0DA7E4 7F0A5CB4 19E00020 */ blez $t7, .L7F0A5D38 +/* 0DA7E8 7F0A5CB8 00000000 */ nop +/* 0DA7EC 7F0A5CBC 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DA7F0 7F0A5CC0 3C018006 */ lui $at, %hi(D_8005847C) +/* 0DA7F4 7F0A5CC4 1700001C */ bnez $t8, .L7F0A5D38 +/* 0DA7F8 7F0A5CC8 00000000 */ nop +/* 0DA7FC 7F0A5CCC C426847C */ lwc1 $f6, %lo(D_8005847C)($at) +/* 0DA800 7F0A5CD0 46060201 */ sub.s $f8, $f0, $f6 +/* 0DA804 7F0A5CD4 10000018 */ b .L7F0A5D38 +/* 0DA808 7F0A5CD8 E4C80000 */ swc1 $f8, ($a2) +.L7F0A5CDC: +/* 0DA80C 7F0A5CDC 00002025 */ move $a0, $zero +/* 0DA810 7F0A5CE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DA814 7F0A5CE4 24050404 */ li $a1, 1028 +/* 0DA818 7F0A5CE8 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA81C 7F0A5CEC 10400012 */ beqz $v0, .L7F0A5D38 +/* 0DA820 7F0A5CF0 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA824 7F0A5CF4 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA828 7F0A5CF8 8FAA001C */ lw $t2, 0x1c($sp) +/* 0DA82C 7F0A5CFC 3C0D8004 */ lui $t5, %hi(watch_soundrelated_maybe) +/* 0DA830 7F0A5D00 4600028D */ trunc.w.s $f10, $f0 +/* 0DA834 7F0A5D04 254CFFFF */ addiu $t4, $t2, -1 +/* 0DA838 7F0A5D08 440B5000 */ mfc1 $t3, $f10 +/* 0DA83C 7F0A5D0C 00000000 */ nop +/* 0DA840 7F0A5D10 016C082A */ slt $at, $t3, $t4 +/* 0DA844 7F0A5D14 10200008 */ beqz $at, .L7F0A5D38 +/* 0DA848 7F0A5D18 00000000 */ nop +/* 0DA84C 7F0A5D1C 8DAD09A8 */ lw $t5, %lo(watch_soundrelated_maybe)($t5) +/* 0DA850 7F0A5D20 3C018006 */ lui $at, %hi(D_80058480) +/* 0DA854 7F0A5D24 15A00004 */ bnez $t5, .L7F0A5D38 +/* 0DA858 7F0A5D28 00000000 */ nop +/* 0DA85C 7F0A5D2C C4308480 */ lwc1 $f16, %lo(D_80058480)($at) +/* 0DA860 7F0A5D30 46100480 */ add.s $f18, $f0, $f16 +/* 0DA864 7F0A5D34 E4D20000 */ swc1 $f18, ($a2) +.L7F0A5D38: +/* 0DA868 7F0A5D38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA86C 7F0A5D3C 00002025 */ move $a0, $zero +/* 0DA870 7F0A5D40 2841001F */ slti $at, $v0, 0x1f +/* 0DA874 7F0A5D44 1420001A */ bnez $at, .L7F0A5DB0 +/* 0DA878 7F0A5D48 00000000 */ nop +/* 0DA87C 7F0A5D4C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA880 7F0A5D50 00002025 */ move $a0, $zero +/* 0DA884 7F0A5D54 28410046 */ slti $at, $v0, 0x46 +/* 0DA888 7F0A5D58 10200015 */ beqz $at, .L7F0A5DB0 +/* 0DA88C 7F0A5D5C 3C0E8004 */ lui $t6, %hi(D_800409B8) +/* 0DA890 7F0A5D60 8DCE09B8 */ lw $t6, %lo(D_800409B8)($t6) +/* 0DA894 7F0A5D64 3C0F8004 */ lui $t7, %hi(watch_soundrelated_maybe) +/* 0DA898 7F0A5D68 19C00011 */ blez $t6, .L7F0A5DB0 +/* 0DA89C 7F0A5D6C 00000000 */ nop +/* 0DA8A0 7F0A5D70 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) +/* 0DA8A4 7F0A5D74 15E0000E */ bnez $t7, .L7F0A5DB0 +/* 0DA8A8 7F0A5D78 00000000 */ nop +/* 0DA8AC 7F0A5D7C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8B0 7F0A5D80 00002025 */ move $a0, $zero +/* 0DA8B4 7F0A5D84 44822000 */ mtc1 $v0, $f4 +/* 0DA8B8 7F0A5D88 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DA8BC 7F0A5D8C 44814000 */ mtc1 $at, $f8 +/* 0DA8C0 7F0A5D90 468021A0 */ cvt.s.w $f6, $f4 +/* 0DA8C4 7F0A5D94 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA8C8 7F0A5D98 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA8CC 7F0A5D9C C4D00000 */ lwc1 $f16, ($a2) +/* 0DA8D0 7F0A5DA0 46083283 */ div.s $f10, $f6, $f8 +/* 0DA8D4 7F0A5DA4 460A8481 */ sub.s $f18, $f16, $f10 +/* 0DA8D8 7F0A5DA8 10000025 */ b .L7F0A5E40 +/* 0DA8DC 7F0A5DAC E4D20000 */ swc1 $f18, ($a2) +.L7F0A5DB0: +/* 0DA8E0 7F0A5DB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8E4 7F0A5DB4 00002025 */ move $a0, $zero +/* 0DA8E8 7F0A5DB8 2841FFE2 */ slti $at, $v0, -0x1e +/* 0DA8EC 7F0A5DBC 10200020 */ beqz $at, .L7F0A5E40 +/* 0DA8F0 7F0A5DC0 00000000 */ nop +/* 0DA8F4 7F0A5DC4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8F8 7F0A5DC8 00002025 */ move $a0, $zero +/* 0DA8FC 7F0A5DCC 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA900 7F0A5DD0 2841FFBB */ slti $at, $v0, -0x45 +/* 0DA904 7F0A5DD4 1420001A */ bnez $at, .L7F0A5E40 +/* 0DA908 7F0A5DD8 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA90C 7F0A5DDC C4C40000 */ lwc1 $f4, ($a2) +/* 0DA910 7F0A5DE0 8FAA001C */ lw $t2, 0x1c($sp) +/* 0DA914 7F0A5DE4 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) +/* 0DA918 7F0A5DE8 4600218D */ trunc.w.s $f6, $f4 +/* 0DA91C 7F0A5DEC 254BFFFF */ addiu $t3, $t2, -1 +/* 0DA920 7F0A5DF0 44193000 */ mfc1 $t9, $f6 +/* 0DA924 7F0A5DF4 00000000 */ nop +/* 0DA928 7F0A5DF8 032B082A */ slt $at, $t9, $t3 +/* 0DA92C 7F0A5DFC 10200010 */ beqz $at, .L7F0A5E40 +/* 0DA930 7F0A5E00 00000000 */ nop +/* 0DA934 7F0A5E04 8D8C09A8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0DA938 7F0A5E08 1580000D */ bnez $t4, .L7F0A5E40 +/* 0DA93C 7F0A5E0C 00000000 */ nop +/* 0DA940 7F0A5E10 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA944 7F0A5E14 00002025 */ move $a0, $zero +/* 0DA948 7F0A5E18 44824000 */ mtc1 $v0, $f8 +/* 0DA94C 7F0A5E1C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DA950 7F0A5E20 44815000 */ mtc1 $at, $f10 +/* 0DA954 7F0A5E24 46804420 */ cvt.s.w $f16, $f8 +/* 0DA958 7F0A5E28 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA95C 7F0A5E2C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA960 7F0A5E30 C4C40000 */ lwc1 $f4, ($a2) +/* 0DA964 7F0A5E34 460A8483 */ div.s $f18, $f16, $f10 +/* 0DA968 7F0A5E38 46122181 */ sub.s $f6, $f4, $f18 +/* 0DA96C 7F0A5E3C E4C60000 */ swc1 $f6, ($a2) +.L7F0A5E40: +/* 0DA970 7F0A5E40 0FC29458 */ jal sub_GAME_7F0A5160 +/* 0DA974 7F0A5E44 00000000 */ nop +/* 0DA978 7F0A5E48 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA97C 7F0A5E4C 10400010 */ beqz $v0, .L7F0A5E90 +/* 0DA980 7F0A5E50 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA984 7F0A5E54 3C0D8004 */ lui $t5, %hi(D_800409B8) +/* 0DA988 7F0A5E58 8DAD09B8 */ lw $t5, %lo(D_800409B8)($t5) +/* 0DA98C 7F0A5E5C 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DA990 7F0A5E60 19A0000B */ blez $t5, .L7F0A5E90 +/* 0DA994 7F0A5E64 00000000 */ nop +/* 0DA998 7F0A5E68 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DA99C 7F0A5E6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA9A0 7F0A5E70 15C00007 */ bnez $t6, .L7F0A5E90 +/* 0DA9A4 7F0A5E74 00000000 */ nop +/* 0DA9A8 7F0A5E78 C4C80000 */ lwc1 $f8, ($a2) +/* 0DA9AC 7F0A5E7C 44818000 */ mtc1 $at, $f16 +/* 0DA9B0 7F0A5E80 00000000 */ nop +/* 0DA9B4 7F0A5E84 46104281 */ sub.s $f10, $f8, $f16 +/* 0DA9B8 7F0A5E88 10000017 */ b .L7F0A5EE8 +/* 0DA9BC 7F0A5E8C E4CA0000 */ swc1 $f10, ($a2) +.L7F0A5E90: +/* 0DA9C0 7F0A5E90 0FC29467 */ jal sub_GAME_7F0A519C +/* 0DA9C4 7F0A5E94 00000000 */ nop +/* 0DA9C8 7F0A5E98 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA9CC 7F0A5E9C 10400012 */ beqz $v0, .L7F0A5EE8 +/* 0DA9D0 7F0A5EA0 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA9D4 7F0A5EA4 8FB8001C */ lw $t8, 0x1c($sp) +/* 0DA9D8 7F0A5EA8 3C0F8004 */ lui $t7, %hi(D_800409B8) +/* 0DA9DC 7F0A5EAC 8DEF09B8 */ lw $t7, %lo(D_800409B8)($t7) +/* 0DA9E0 7F0A5EB0 270AFFFF */ addiu $t2, $t8, -1 +/* 0DA9E4 7F0A5EB4 3C198004 */ lui $t9, %hi(watch_soundrelated_maybe) +/* 0DA9E8 7F0A5EB8 01EA082A */ slt $at, $t7, $t2 +/* 0DA9EC 7F0A5EBC 1020000A */ beqz $at, .L7F0A5EE8 +/* 0DA9F0 7F0A5EC0 00000000 */ nop +/* 0DA9F4 7F0A5EC4 8F3909A8 */ lw $t9, %lo(watch_soundrelated_maybe)($t9) +/* 0DA9F8 7F0A5EC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA9FC 7F0A5ECC 17200006 */ bnez $t9, .L7F0A5EE8 +/* 0DAA00 7F0A5ED0 00000000 */ nop +/* 0DAA04 7F0A5ED4 C4C40000 */ lwc1 $f4, ($a2) +/* 0DAA08 7F0A5ED8 44819000 */ mtc1 $at, $f18 +/* 0DAA0C 7F0A5EDC 00000000 */ nop +/* 0DAA10 7F0A5EE0 46122180 */ add.s $f6, $f4, $f18 +/* 0DAA14 7F0A5EE4 E4C60000 */ swc1 $f6, ($a2) +.L7F0A5EE8: +/* 0DAA18 7F0A5EE8 0FC29440 */ jal is_holding_less_than_10_up_on_stick +/* 0DAA1C 7F0A5EEC 00000000 */ nop +/* 0DAA20 7F0A5EF0 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAA24 7F0A5EF4 14400006 */ bnez $v0, .L7F0A5F10 +/* 0DAA28 7F0A5EF8 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DAA2C 7F0A5EFC 0FC29449 */ jal is_holding_less_than_10_down_on_stick +/* 0DAA30 7F0A5F00 00000000 */ nop +/* 0DAA34 7F0A5F04 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAA38 7F0A5F08 10400005 */ beqz $v0, .L7F0A5F20 +/* 0DAA3C 7F0A5F0C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +.L7F0A5F10: +/* 0DAA40 7F0A5F10 240B0001 */ li $t3, 1 +/* 0DAA44 7F0A5F14 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAA48 7F0A5F18 10000003 */ b .L7F0A5F28 +/* 0DAA4C 7F0A5F1C AC2B0AE4 */ sw $t3, %lo(D_80040AE4)($at) +.L7F0A5F20: +/* 0DAA50 7F0A5F20 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAA54 7F0A5F24 AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +.L7F0A5F28: +/* 0DAA58 7F0A5F28 8FAC001C */ lw $t4, 0x1c($sp) +/* 0DAA5C 7F0A5F2C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DAA60 7F0A5F30 44815000 */ mtc1 $at, $f10 +/* 0DAA64 7F0A5F34 448C4000 */ mtc1 $t4, $f8 +/* 0DAA68 7F0A5F38 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAA6C 7F0A5F3C 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 0DAA70 7F0A5F40 46804420 */ cvt.s.w $f16, $f8 +/* 0DAA74 7F0A5F44 3C058004 */ lui $a1, %hi(D_800409B8) +/* 0DAA78 7F0A5F48 460A8081 */ sub.s $f2, $f16, $f10 +/* 0DAA7C 7F0A5F4C 4600103C */ c.lt.s $f2, $f0 +/* 0DAA80 7F0A5F50 00000000 */ nop +/* 0DAA84 7F0A5F54 45020004 */ bc1fl .L7F0A5F68 +/* 0DAA88 7F0A5F58 44811000 */ mtc1 $at, $f2 +/* 0DAA8C 7F0A5F5C E4C20000 */ swc1 $f2, ($a2) +/* 0DAA90 7F0A5F60 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAA94 7F0A5F64 44811000 */ mtc1 $at, $f2 +.L7F0A5F68: +/* 0DAA98 7F0A5F68 00000000 */ nop +/* 0DAA9C 7F0A5F6C 4602003C */ c.lt.s $f0, $f2 +/* 0DAAA0 7F0A5F70 00000000 */ nop +/* 0DAAA4 7F0A5F74 45020004 */ bc1fl .L7F0A5F88 +/* 0DAAA8 7F0A5F78 4600010D */ trunc.w.s $f4, $f0 +/* 0DAAAC 7F0A5F7C E4C20000 */ swc1 $f2, ($a2) +/* 0DAAB0 7F0A5F80 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAAB4 7F0A5F84 4600010D */ trunc.w.s $f4, $f0 +.L7F0A5F88: +/* 0DAAB8 7F0A5F88 3C028005 */ lui $v0, %hi(j_text_trigger) +/* 0DAABC 7F0A5F8C 8C4284D0 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0DAAC0 7F0A5F90 3C018004 */ lui $at, %hi(D_800409B8) +/* 0DAAC4 7F0A5F94 440E2000 */ mfc1 $t6, $f4 +/* 0DAAC8 7F0A5F98 10400003 */ beqz $v0, .L7F0A5FA8 +/* 0DAACC 7F0A5F9C AC2E09B8 */ sw $t6, %lo(D_800409B8)($at) +/* 0DAAD0 7F0A5FA0 10000002 */ b .L7F0A5FAC +/* 0DAAD4 7F0A5FA4 2407000E */ li $a3, 14 +.L7F0A5FA8: +/* 0DAAD8 7F0A5FA8 2407000C */ li $a3, 12 +.L7F0A5FAC: +/* 0DAADC 7F0A5FAC 50400004 */ beql $v0, $zero, .L7F0A5FC0 +/* 0DAAE0 7F0A5FB0 2404000C */ li $a0, 12 +/* 0DAAE4 7F0A5FB4 10000002 */ b .L7F0A5FC0 +/* 0DAAE8 7F0A5FB8 2404000E */ li $a0, 14 +/* 0DAAEC 7F0A5FBC 2404000C */ li $a0, 12 +.L7F0A5FC0: +/* 0DAAF0 7F0A5FC0 8CA509B8 */ lw $a1, %lo(D_800409B8)($a1) +/* 0DAAF4 7F0A5FC4 3C098004 */ lui $t1, %hi(D_800409B0) +/* 0DAAF8 7F0A5FC8 252909B0 */ addiu $t1, %lo(D_800409B0) # addiu $t1, $t1, 0x9b0 +/* 0DAAFC 7F0A5FCC 00057823 */ negu $t7, $a1 +/* 0DAB00 7F0A5FD0 01E70019 */ multu $t7, $a3 +/* 0DAB04 7F0A5FD4 8D220000 */ lw $v0, ($t1) +/* 0DAB08 7F0A5FD8 0004C040 */ sll $t8, $a0, 1 +/* 0DAB0C 7F0A5FDC 3C088004 */ lui $t0, %hi(D_800409B4) +/* 0DAB10 7F0A5FE0 250809B4 */ addiu $t0, %lo(D_800409B4) # addiu $t0, $t0, 0x9b4 +/* 0DAB14 7F0A5FE4 00005012 */ mflo $t2 +/* 0DAB18 7F0A5FE8 030AC821 */ addu $t9, $t8, $t2 +/* 0DAB1C 7F0A5FEC 0322082A */ slt $at, $t9, $v0 +/* 0DAB20 7F0A5FF0 AD190000 */ sw $t9, ($t0) +/* 0DAB24 7F0A5FF4 1020000B */ beqz $at, .L7F0A6024 +/* 0DAB28 7F0A5FF8 03201825 */ move $v1, $t9 +/* 0DAB2C 7F0A5FFC 00595823 */ subu $t3, $v0, $t9 +/* 0DAB30 7F0A6000 24010003 */ li $at, 3 +/* 0DAB34 7F0A6004 0161001A */ div $zero, $t3, $at +/* 0DAB38 7F0A6008 00006012 */ mflo $t4 +/* 0DAB3C 7F0A600C 004C6823 */ subu $t5, $v0, $t4 +/* 0DAB40 7F0A6010 25AEFFFF */ addiu $t6, $t5, -1 +/* 0DAB44 7F0A6014 AD2E0000 */ sw $t6, ($t1) +/* 0DAB48 7F0A6018 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB4C 7F0A601C 10000010 */ b .L7F0A6060 +/* 0DAB50 7F0A6020 AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +.L7F0A6024: +/* 0DAB54 7F0A6024 0043082A */ slt $at, $v0, $v1 +/* 0DAB58 7F0A6028 1020000A */ beqz $at, .L7F0A6054 +/* 0DAB5C 7F0A602C 00627823 */ subu $t7, $v1, $v0 +/* 0DAB60 7F0A6030 24010003 */ li $at, 3 +/* 0DAB64 7F0A6034 01E1001A */ div $zero, $t7, $at +/* 0DAB68 7F0A6038 0000C012 */ mflo $t8 +/* 0DAB6C 7F0A603C 00585021 */ addu $t2, $v0, $t8 +/* 0DAB70 7F0A6040 25590001 */ addiu $t9, $t2, 1 +/* 0DAB74 7F0A6044 AD390000 */ sw $t9, ($t1) +/* 0DAB78 7F0A6048 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB7C 7F0A604C 10000004 */ b .L7F0A6060 +/* 0DAB80 7F0A6050 AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +.L7F0A6054: +/* 0DAB84 7F0A6054 240B0001 */ li $t3, 1 +/* 0DAB88 7F0A6058 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB8C 7F0A605C AC2B09C0 */ sw $t3, %lo(D_800409C0)($at) +.L7F0A6060: +/* 0DAB90 7F0A6060 44859000 */ mtc1 $a1, $f18 +/* 0DAB94 7F0A6064 3C018006 */ lui $at, %hi(D_80058484) +/* 0DAB98 7F0A6068 C4288484 */ lwc1 $f8, %lo(D_80058484)($at) +/* 0DAB9C 7F0A606C 468091A0 */ cvt.s.w $f6, $f18 +/* 0DABA0 7F0A6070 46083400 */ add.s $f16, $f6, $f8 +/* 0DABA4 7F0A6074 4600803C */ c.lt.s $f16, $f0 +/* 0DABA8 7F0A6078 00000000 */ nop +/* 0DABAC 7F0A607C 4500000C */ bc1f .L7F0A60B0 +/* 0DABB0 7F0A6080 00002025 */ move $a0, $zero +/* 0DABB4 7F0A6084 0C0030C3 */ jal get_controller_buttons_held +/* 0DABB8 7F0A6088 3405FFFF */ li $a1, 65535 +/* 0DABBC 7F0A608C 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DABC0 7F0A6090 14400007 */ bnez $v0, .L7F0A60B0 +/* 0DABC4 7F0A6094 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DABC8 7F0A6098 3C018006 */ lui $at, %hi(D_80058488) +/* 0DABCC 7F0A609C C4248488 */ lwc1 $f4, %lo(D_80058488)($at) +/* 0DABD0 7F0A60A0 C4CA0000 */ lwc1 $f10, ($a2) +/* 0DABD4 7F0A60A4 46045481 */ sub.s $f18, $f10, $f4 +/* 0DABD8 7F0A60A8 10000018 */ b .L7F0A610C +/* 0DABDC 7F0A60AC E4D20000 */ swc1 $f18, ($a2) +.L7F0A60B0: +/* 0DABE0 7F0A60B0 3C0C8004 */ lui $t4, %hi(D_800409B8) +/* 0DABE4 7F0A60B4 8D8C09B8 */ lw $t4, %lo(D_800409B8)($t4) +/* 0DABE8 7F0A60B8 3C018006 */ lui $at, %hi(D_8005848C) +/* 0DABEC 7F0A60BC C430848C */ lwc1 $f16, %lo(D_8005848C)($at) +/* 0DABF0 7F0A60C0 448C3000 */ mtc1 $t4, $f6 +/* 0DABF4 7F0A60C4 C4C40000 */ lwc1 $f4, ($a2) +/* 0DABF8 7F0A60C8 00002025 */ move $a0, $zero +/* 0DABFC 7F0A60CC 46803220 */ cvt.s.w $f8, $f6 +/* 0DAC00 7F0A60D0 46104280 */ add.s $f10, $f8, $f16 +/* 0DAC04 7F0A60D4 460A203E */ c.le.s $f4, $f10 +/* 0DAC08 7F0A60D8 00000000 */ nop +/* 0DAC0C 7F0A60DC 4502000C */ bc1fl .L7F0A6110 +/* 0DAC10 7F0A60E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DAC14 7F0A60E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DAC18 7F0A60E8 3405FFFF */ li $a1, 65535 +/* 0DAC1C 7F0A60EC 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAC20 7F0A60F0 14400006 */ bnez $v0, .L7F0A610C +/* 0DAC24 7F0A60F4 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DAC28 7F0A60F8 3C018006 */ lui $at, %hi(D_80058490) +/* 0DAC2C 7F0A60FC C4268490 */ lwc1 $f6, %lo(D_80058490)($at) +/* 0DAC30 7F0A6100 C4D20000 */ lwc1 $f18, ($a2) +/* 0DAC34 7F0A6104 46069200 */ add.s $f8, $f18, $f6 +/* 0DAC38 7F0A6108 E4C80000 */ swc1 $f8, ($a2) +.L7F0A610C: +/* 0DAC3C 7F0A610C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6110: +/* 0DAC40 7F0A6110 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DAC44 7F0A6114 03E00008 */ jr $ra +/* 0DAC48 7F0A6118 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A611C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058494 +.word 0x3dcccccd /*0.1*/ +glabel D_80058498 +.word 0x3dcccccd /*0.1*/ +glabel D_8005849C +.word 0x3f0ccccd /*0.55000001*/ +glabel D_800584A0 +.word 0x3dcccccd /*0.1*/ +glabel D_800584A4 +.word 0x3ee66666 /*0.44999999*/ +glabel D_800584A8 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F0A611C +/* 0DAC4C 7F0A611C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DAC50 7F0A6120 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DAC54 7F0A6124 AFB00018 */ sw $s0, 0x18($sp) +/* 0DAC58 7F0A6128 00808025 */ move $s0, $a0 +/* 0DAC5C 7F0A612C AFA50024 */ sw $a1, 0x24($sp) +/* 0DAC60 7F0A6130 AFA60028 */ sw $a2, 0x28($sp) +/* 0DAC64 7F0A6134 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DAC68 7F0A6138 AFA7002C */ sw $a3, 0x2c($sp) +/* 0DAC6C 7F0A613C 14400056 */ bnez $v0, .L7F0A6298 +/* 0DAC70 7F0A6140 00002025 */ move $a0, $zero +/* 0DAC74 7F0A6144 0C0030EB */ jal get_controller_buttons_pressed +/* 0DAC78 7F0A6148 24050808 */ li $a1, 2056 +/* 0DAC7C 7F0A614C 54400007 */ bnezl $v0, .L7F0A616C +/* 0DAC80 7F0A6150 C6000000 */ lwc1 $f0, ($s0) +/* 0DAC84 7F0A6154 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAC88 7F0A6158 00002025 */ move $a0, $zero +/* 0DAC8C 7F0A615C 28410047 */ slti $at, $v0, 0x47 +/* 0DAC90 7F0A6160 1420000F */ bnez $at, .L7F0A61A0 +/* 0DAC94 7F0A6164 00002025 */ move $a0, $zero +/* 0DAC98 7F0A6168 C6000000 */ lwc1 $f0, ($s0) +.L7F0A616C: +/* 0DAC9C 7F0A616C 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DACA0 7F0A6170 4600010D */ trunc.w.s $f4, $f0 +/* 0DACA4 7F0A6174 440F2000 */ mfc1 $t7, $f4 +/* 0DACA8 7F0A6178 00000000 */ nop +/* 0DACAC 7F0A617C 59E00022 */ blezl $t7, .L7F0A6208 +/* 0DACB0 7F0A6180 00002025 */ move $a0, $zero +/* 0DACB4 7F0A6184 1300001F */ beqz $t8, .L7F0A6204 +/* 0DACB8 7F0A6188 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DACBC 7F0A618C 44813000 */ mtc1 $at, $f6 +/* 0DACC0 7F0A6190 00000000 */ nop +/* 0DACC4 7F0A6194 46060201 */ sub.s $f8, $f0, $f6 +/* 0DACC8 7F0A6198 1000001A */ b .L7F0A6204 +/* 0DACCC 7F0A619C E6080000 */ swc1 $f8, ($s0) +.L7F0A61A0: +/* 0DACD0 7F0A61A0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DACD4 7F0A61A4 24050404 */ li $a1, 1028 +/* 0DACD8 7F0A61A8 54400007 */ bnezl $v0, .L7F0A61C8 +/* 0DACDC 7F0A61AC C6000000 */ lwc1 $f0, ($s0) +/* 0DACE0 7F0A61B0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DACE4 7F0A61B4 00002025 */ move $a0, $zero +/* 0DACE8 7F0A61B8 2841FFBA */ slti $at, $v0, -0x46 +/* 0DACEC 7F0A61BC 50200012 */ beql $at, $zero, .L7F0A6208 +/* 0DACF0 7F0A61C0 00002025 */ move $a0, $zero +/* 0DACF4 7F0A61C4 C6000000 */ lwc1 $f0, ($s0) +.L7F0A61C8: +/* 0DACF8 7F0A61C8 8FA90028 */ lw $t1, 0x28($sp) +/* 0DACFC 7F0A61CC 8FAB003C */ lw $t3, 0x3c($sp) +/* 0DAD00 7F0A61D0 4600028D */ trunc.w.s $f10, $f0 +/* 0DAD04 7F0A61D4 252AFFFF */ addiu $t2, $t1, -1 +/* 0DAD08 7F0A61D8 44085000 */ mfc1 $t0, $f10 +/* 0DAD0C 7F0A61DC 00000000 */ nop +/* 0DAD10 7F0A61E0 010A082A */ slt $at, $t0, $t2 +/* 0DAD14 7F0A61E4 50200008 */ beql $at, $zero, .L7F0A6208 +/* 0DAD18 7F0A61E8 00002025 */ move $a0, $zero +/* 0DAD1C 7F0A61EC 11600005 */ beqz $t3, .L7F0A6204 +/* 0DAD20 7F0A61F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAD24 7F0A61F4 44818000 */ mtc1 $at, $f16 +/* 0DAD28 7F0A61F8 00000000 */ nop +/* 0DAD2C 7F0A61FC 46100480 */ add.s $f18, $f0, $f16 +/* 0DAD30 7F0A6200 E6120000 */ swc1 $f18, ($s0) +.L7F0A6204: +/* 0DAD34 7F0A6204 00002025 */ move $a0, $zero +.L7F0A6208: +/* 0DAD38 7F0A6208 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD3C 7F0A620C 24050808 */ li $a1, 2056 +/* 0DAD40 7F0A6210 1040000E */ beqz $v0, .L7F0A624C +/* 0DAD44 7F0A6214 00002025 */ move $a0, $zero +/* 0DAD48 7F0A6218 C6000000 */ lwc1 $f0, ($s0) +/* 0DAD4C 7F0A621C 8FAE003C */ lw $t6, 0x3c($sp) +/* 0DAD50 7F0A6220 4600010D */ trunc.w.s $f4, $f0 +/* 0DAD54 7F0A6224 440D2000 */ mfc1 $t5, $f4 +/* 0DAD58 7F0A6228 00000000 */ nop +/* 0DAD5C 7F0A622C 19A0001A */ blez $t5, .L7F0A6298 +/* 0DAD60 7F0A6230 00000000 */ nop +/* 0DAD64 7F0A6234 11C00018 */ beqz $t6, .L7F0A6298 +/* 0DAD68 7F0A6238 3C018006 */ lui $at, %hi(D_80058494) +/* 0DAD6C 7F0A623C C4268494 */ lwc1 $f6, %lo(D_80058494)($at) +/* 0DAD70 7F0A6240 46060201 */ sub.s $f8, $f0, $f6 +/* 0DAD74 7F0A6244 10000014 */ b .L7F0A6298 +/* 0DAD78 7F0A6248 E6080000 */ swc1 $f8, ($s0) +.L7F0A624C: +/* 0DAD7C 7F0A624C 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD80 7F0A6250 24050404 */ li $a1, 1028 +/* 0DAD84 7F0A6254 10400010 */ beqz $v0, .L7F0A6298 +/* 0DAD88 7F0A6258 00000000 */ nop +/* 0DAD8C 7F0A625C C6000000 */ lwc1 $f0, ($s0) +/* 0DAD90 7F0A6260 8FB90028 */ lw $t9, 0x28($sp) +/* 0DAD94 7F0A6264 8FA8003C */ lw $t0, 0x3c($sp) +/* 0DAD98 7F0A6268 4600028D */ trunc.w.s $f10, $f0 +/* 0DAD9C 7F0A626C 2729FFFF */ addiu $t1, $t9, -1 +/* 0DADA0 7F0A6270 44185000 */ mfc1 $t8, $f10 +/* 0DADA4 7F0A6274 00000000 */ nop +/* 0DADA8 7F0A6278 0309082A */ slt $at, $t8, $t1 +/* 0DADAC 7F0A627C 10200006 */ beqz $at, .L7F0A6298 +/* 0DADB0 7F0A6280 00000000 */ nop +/* 0DADB4 7F0A6284 11000004 */ beqz $t0, .L7F0A6298 +/* 0DADB8 7F0A6288 3C018006 */ lui $at, %hi(D_80058498) +/* 0DADBC 7F0A628C C4308498 */ lwc1 $f16, %lo(D_80058498)($at) +/* 0DADC0 7F0A6290 46100480 */ add.s $f18, $f0, $f16 +/* 0DADC4 7F0A6294 E6120000 */ swc1 $f18, ($s0) +.L7F0A6298: +/* 0DADC8 7F0A6298 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADCC 7F0A629C 00002025 */ move $a0, $zero +/* 0DADD0 7F0A62A0 2841001F */ slti $at, $v0, 0x1f +/* 0DADD4 7F0A62A4 14200017 */ bnez $at, .L7F0A6304 +/* 0DADD8 7F0A62A8 00000000 */ nop +/* 0DADDC 7F0A62AC 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADE0 7F0A62B0 00002025 */ move $a0, $zero +/* 0DADE4 7F0A62B4 28410046 */ slti $at, $v0, 0x46 +/* 0DADE8 7F0A62B8 10200012 */ beqz $at, .L7F0A6304 +/* 0DADEC 7F0A62BC 8FAA0024 */ lw $t2, 0x24($sp) +/* 0DADF0 7F0A62C0 8D4B0000 */ lw $t3, ($t2) +/* 0DADF4 7F0A62C4 8FAC003C */ lw $t4, 0x3c($sp) +/* 0DADF8 7F0A62C8 1960000E */ blez $t3, .L7F0A6304 +/* 0DADFC 7F0A62CC 00000000 */ nop +/* 0DAE00 7F0A62D0 1180000C */ beqz $t4, .L7F0A6304 +/* 0DAE04 7F0A62D4 00000000 */ nop +/* 0DAE08 7F0A62D8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE0C 7F0A62DC 00002025 */ move $a0, $zero +/* 0DAE10 7F0A62E0 44822000 */ mtc1 $v0, $f4 +/* 0DAE14 7F0A62E4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DAE18 7F0A62E8 44814000 */ mtc1 $at, $f8 +/* 0DAE1C 7F0A62EC 468021A0 */ cvt.s.w $f6, $f4 +/* 0DAE20 7F0A62F0 C6100000 */ lwc1 $f16, ($s0) +/* 0DAE24 7F0A62F4 46083283 */ div.s $f10, $f6, $f8 +/* 0DAE28 7F0A62F8 460A8481 */ sub.s $f18, $f16, $f10 +/* 0DAE2C 7F0A62FC 10000021 */ b .L7F0A6384 +/* 0DAE30 7F0A6300 E6120000 */ swc1 $f18, ($s0) +.L7F0A6304: +/* 0DAE34 7F0A6304 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE38 7F0A6308 00002025 */ move $a0, $zero +/* 0DAE3C 7F0A630C 2841FFE2 */ slti $at, $v0, -0x1e +/* 0DAE40 7F0A6310 1020001C */ beqz $at, .L7F0A6384 +/* 0DAE44 7F0A6314 00000000 */ nop +/* 0DAE48 7F0A6318 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE4C 7F0A631C 00002025 */ move $a0, $zero +/* 0DAE50 7F0A6320 2841FFBB */ slti $at, $v0, -0x45 +/* 0DAE54 7F0A6324 14200017 */ bnez $at, .L7F0A6384 +/* 0DAE58 7F0A6328 00000000 */ nop +/* 0DAE5C 7F0A632C C6040000 */ lwc1 $f4, ($s0) +/* 0DAE60 7F0A6330 8FAF0028 */ lw $t7, 0x28($sp) +/* 0DAE64 7F0A6334 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DAE68 7F0A6338 4600218D */ trunc.w.s $f6, $f4 +/* 0DAE6C 7F0A633C 25F9FFFF */ addiu $t9, $t7, -1 +/* 0DAE70 7F0A6340 440E3000 */ mfc1 $t6, $f6 +/* 0DAE74 7F0A6344 00000000 */ nop +/* 0DAE78 7F0A6348 01D9082A */ slt $at, $t6, $t9 +/* 0DAE7C 7F0A634C 1020000D */ beqz $at, .L7F0A6384 +/* 0DAE80 7F0A6350 00000000 */ nop +/* 0DAE84 7F0A6354 1300000B */ beqz $t8, .L7F0A6384 +/* 0DAE88 7F0A6358 00000000 */ nop +/* 0DAE8C 7F0A635C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE90 7F0A6360 00002025 */ move $a0, $zero +/* 0DAE94 7F0A6364 44824000 */ mtc1 $v0, $f8 +/* 0DAE98 7F0A6368 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DAE9C 7F0A636C 44815000 */ mtc1 $at, $f10 +/* 0DAEA0 7F0A6370 46804420 */ cvt.s.w $f16, $f8 +/* 0DAEA4 7F0A6374 C6040000 */ lwc1 $f4, ($s0) +/* 0DAEA8 7F0A6378 460A8483 */ div.s $f18, $f16, $f10 +/* 0DAEAC 7F0A637C 46122181 */ sub.s $f6, $f4, $f18 +/* 0DAEB0 7F0A6380 E6060000 */ swc1 $f6, ($s0) +.L7F0A6384: +/* 0DAEB4 7F0A6384 0FC29458 */ jal sub_GAME_7F0A5160 +/* 0DAEB8 7F0A6388 00000000 */ nop +/* 0DAEBC 7F0A638C 1040000D */ beqz $v0, .L7F0A63C4 +/* 0DAEC0 7F0A6390 8FA90024 */ lw $t1, 0x24($sp) +/* 0DAEC4 7F0A6394 8D280000 */ lw $t0, ($t1) +/* 0DAEC8 7F0A6398 8FAA003C */ lw $t2, 0x3c($sp) +/* 0DAECC 7F0A639C 19000009 */ blez $t0, .L7F0A63C4 +/* 0DAED0 7F0A63A0 00000000 */ nop +/* 0DAED4 7F0A63A4 11400007 */ beqz $t2, .L7F0A63C4 +/* 0DAED8 7F0A63A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAEDC 7F0A63AC C6080000 */ lwc1 $f8, ($s0) +/* 0DAEE0 7F0A63B0 44818000 */ mtc1 $at, $f16 +/* 0DAEE4 7F0A63B4 00000000 */ nop +/* 0DAEE8 7F0A63B8 46104281 */ sub.s $f10, $f8, $f16 +/* 0DAEEC 7F0A63BC 10000013 */ b .L7F0A640C +/* 0DAEF0 7F0A63C0 E60A0000 */ swc1 $f10, ($s0) +.L7F0A63C4: +/* 0DAEF4 7F0A63C4 0FC29467 */ jal sub_GAME_7F0A519C +/* 0DAEF8 7F0A63C8 00000000 */ nop +/* 0DAEFC 7F0A63CC 1040000F */ beqz $v0, .L7F0A640C +/* 0DAF00 7F0A63D0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0DAF04 7F0A63D4 8FAD0028 */ lw $t5, 0x28($sp) +/* 0DAF08 7F0A63D8 8D6C0000 */ lw $t4, ($t3) +/* 0DAF0C 7F0A63DC 8FAE003C */ lw $t6, 0x3c($sp) +/* 0DAF10 7F0A63E0 25AFFFFF */ addiu $t7, $t5, -1 +/* 0DAF14 7F0A63E4 018F082A */ slt $at, $t4, $t7 +/* 0DAF18 7F0A63E8 10200008 */ beqz $at, .L7F0A640C +/* 0DAF1C 7F0A63EC 00000000 */ nop +/* 0DAF20 7F0A63F0 11C00006 */ beqz $t6, .L7F0A640C +/* 0DAF24 7F0A63F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAF28 7F0A63F8 C6040000 */ lwc1 $f4, ($s0) +/* 0DAF2C 7F0A63FC 44819000 */ mtc1 $at, $f18 +/* 0DAF30 7F0A6400 00000000 */ nop +/* 0DAF34 7F0A6404 46122180 */ add.s $f6, $f4, $f18 +/* 0DAF38 7F0A6408 E6060000 */ swc1 $f6, ($s0) +.L7F0A640C: +/* 0DAF3C 7F0A640C 0FC29440 */ jal is_holding_less_than_10_up_on_stick +/* 0DAF40 7F0A6410 00000000 */ nop +/* 0DAF44 7F0A6414 54400006 */ bnezl $v0, .L7F0A6430 +/* 0DAF48 7F0A6418 24190001 */ li $t9, 1 +/* 0DAF4C 7F0A641C 0FC29449 */ jal is_holding_less_than_10_down_on_stick +/* 0DAF50 7F0A6420 00000000 */ nop +/* 0DAF54 7F0A6424 10400005 */ beqz $v0, .L7F0A643C +/* 0DAF58 7F0A6428 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAF5C 7F0A642C 24190001 */ li $t9, 1 +.L7F0A6430: +/* 0DAF60 7F0A6430 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAF64 7F0A6434 10000002 */ b .L7F0A6440 +/* 0DAF68 7F0A6438 AC390AE4 */ sw $t9, %lo(D_80040AE4)($at) +.L7F0A643C: +/* 0DAF6C 7F0A643C AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +.L7F0A6440: +/* 0DAF70 7F0A6440 8FB80028 */ lw $t8, 0x28($sp) +/* 0DAF74 7F0A6444 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DAF78 7F0A6448 44815000 */ mtc1 $at, $f10 +/* 0DAF7C 7F0A644C 44984000 */ mtc1 $t8, $f8 +/* 0DAF80 7F0A6450 C6000000 */ lwc1 $f0, ($s0) +/* 0DAF84 7F0A6454 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 0DAF88 7F0A6458 46804420 */ cvt.s.w $f16, $f8 +/* 0DAF8C 7F0A645C 460A8081 */ sub.s $f2, $f16, $f10 +/* 0DAF90 7F0A6460 4600103C */ c.lt.s $f2, $f0 +/* 0DAF94 7F0A6464 00000000 */ nop +/* 0DAF98 7F0A6468 45020004 */ bc1fl .L7F0A647C +/* 0DAF9C 7F0A646C 44811000 */ mtc1 $at, $f2 +/* 0DAFA0 7F0A6470 E6020000 */ swc1 $f2, ($s0) +/* 0DAFA4 7F0A6474 C6000000 */ lwc1 $f0, ($s0) +/* 0DAFA8 7F0A6478 44811000 */ mtc1 $at, $f2 +.L7F0A647C: +/* 0DAFAC 7F0A647C 00000000 */ nop +/* 0DAFB0 7F0A6480 4602003C */ c.lt.s $f0, $f2 +/* 0DAFB4 7F0A6484 00000000 */ nop +/* 0DAFB8 7F0A6488 45020004 */ bc1fl .L7F0A649C +/* 0DAFBC 7F0A648C 4600010D */ trunc.w.s $f4, $f0 +/* 0DAFC0 7F0A6490 E6020000 */ swc1 $f2, ($s0) +/* 0DAFC4 7F0A6494 C6000000 */ lwc1 $f0, ($s0) +/* 0DAFC8 7F0A6498 4600010D */ trunc.w.s $f4, $f0 +.L7F0A649C: +/* 0DAFCC 7F0A649C 8FA50040 */ lw $a1, 0x40($sp) +/* 0DAFD0 7F0A64A0 8FAA0024 */ lw $t2, 0x24($sp) +/* 0DAFD4 7F0A64A4 8FA40030 */ lw $a0, 0x30($sp) +/* 0DAFD8 7F0A64A8 44082000 */ mfc1 $t0, $f4 +/* 0DAFDC 7F0A64AC 8FA6002C */ lw $a2, 0x2c($sp) +/* 0DAFE0 7F0A64B0 00085823 */ negu $t3, $t0 +/* 0DAFE4 7F0A64B4 01650019 */ multu $t3, $a1 +/* 0DAFE8 7F0A64B8 AD480000 */ sw $t0, ($t2) +/* 0DAFEC 7F0A64BC 8FAC0038 */ lw $t4, 0x38($sp) +/* 0DAFF0 7F0A64C0 00006812 */ mflo $t5 +/* 0DAFF4 7F0A64C4 00000000 */ nop +/* 0DAFF8 7F0A64C8 00000000 */ nop +/* 0DAFFC 7F0A64CC 01850019 */ multu $t4, $a1 +/* 0DB000 7F0A64D0 00007812 */ mflo $t7 +/* 0DB004 7F0A64D4 01AF7021 */ addu $t6, $t5, $t7 +/* 0DB008 7F0A64D8 AC8E0000 */ sw $t6, ($a0) +/* 0DB00C 7F0A64DC 8CC20000 */ lw $v0, ($a2) +/* 0DB010 7F0A64E0 01C01825 */ move $v1, $t6 +/* 0DB014 7F0A64E4 00002025 */ move $a0, $zero +/* 0DB018 7F0A64E8 01C2082A */ slt $at, $t6, $v0 +/* 0DB01C 7F0A64EC 1020000A */ beqz $at, .L7F0A6518 +/* 0DB020 7F0A64F0 004EC823 */ subu $t9, $v0, $t6 +/* 0DB024 7F0A64F4 24010003 */ li $at, 3 +/* 0DB028 7F0A64F8 0321001A */ div $zero, $t9, $at +/* 0DB02C 7F0A64FC 0000C012 */ mflo $t8 +/* 0DB030 7F0A6500 00584823 */ subu $t1, $v0, $t8 +/* 0DB034 7F0A6504 252AFFFF */ addiu $t2, $t1, -1 +/* 0DB038 7F0A6508 ACCA0000 */ sw $t2, ($a2) +/* 0DB03C 7F0A650C 8FA80034 */ lw $t0, 0x34($sp) +/* 0DB040 7F0A6510 10000010 */ b .L7F0A6554 +/* 0DB044 7F0A6514 AD000000 */ sw $zero, ($t0) +.L7F0A6518: +/* 0DB048 7F0A6518 0043082A */ slt $at, $v0, $v1 +/* 0DB04C 7F0A651C 1020000B */ beqz $at, .L7F0A654C +/* 0DB050 7F0A6520 8FB80034 */ lw $t8, 0x34($sp) +/* 0DB054 7F0A6524 00625823 */ subu $t3, $v1, $v0 +/* 0DB058 7F0A6528 24010003 */ li $at, 3 +/* 0DB05C 7F0A652C 0161001A */ div $zero, $t3, $at +/* 0DB060 7F0A6530 00006012 */ mflo $t4 +/* 0DB064 7F0A6534 004C6821 */ addu $t5, $v0, $t4 +/* 0DB068 7F0A6538 25AF0001 */ addiu $t7, $t5, 1 +/* 0DB06C 7F0A653C ACCF0000 */ sw $t7, ($a2) +/* 0DB070 7F0A6540 8FAE0034 */ lw $t6, 0x34($sp) +/* 0DB074 7F0A6544 10000003 */ b .L7F0A6554 +/* 0DB078 7F0A6548 ADC00000 */ sw $zero, ($t6) +.L7F0A654C: +/* 0DB07C 7F0A654C 24190001 */ li $t9, 1 +/* 0DB080 7F0A6550 AF190000 */ sw $t9, ($t8) +.L7F0A6554: +/* 0DB084 7F0A6554 8FA90024 */ lw $t1, 0x24($sp) +/* 0DB088 7F0A6558 3C018006 */ lui $at, %hi(D_8005849C) +/* 0DB08C 7F0A655C C428849C */ lwc1 $f8, %lo(D_8005849C)($at) +/* 0DB090 7F0A6560 8D2A0000 */ lw $t2, ($t1) +/* 0DB094 7F0A6564 C60A0000 */ lwc1 $f10, ($s0) +/* 0DB098 7F0A6568 448A9000 */ mtc1 $t2, $f18 +/* 0DB09C 7F0A656C 00000000 */ nop +/* 0DB0A0 7F0A6570 468091A0 */ cvt.s.w $f6, $f18 +/* 0DB0A4 7F0A6574 46083400 */ add.s $f16, $f6, $f8 +/* 0DB0A8 7F0A6578 460A803C */ c.lt.s $f16, $f10 +/* 0DB0AC 7F0A657C 00000000 */ nop +/* 0DB0B0 7F0A6580 4502000B */ bc1fl .L7F0A65B0 +/* 0DB0B4 7F0A6584 8FA80024 */ lw $t0, 0x24($sp) +/* 0DB0B8 7F0A6588 0C0030C3 */ jal get_controller_buttons_held +/* 0DB0BC 7F0A658C 3405FFFF */ li $a1, 65535 +/* 0DB0C0 7F0A6590 14400006 */ bnez $v0, .L7F0A65AC +/* 0DB0C4 7F0A6594 3C018006 */ lui $at, %hi(D_800584A0) +/* 0DB0C8 7F0A6598 C6040000 */ lwc1 $f4, ($s0) +/* 0DB0CC 7F0A659C C43284A0 */ lwc1 $f18, %lo(D_800584A0)($at) +/* 0DB0D0 7F0A65A0 46122181 */ sub.s $f6, $f4, $f18 +/* 0DB0D4 7F0A65A4 10000017 */ b .L7F0A6604 +/* 0DB0D8 7F0A65A8 E6060000 */ swc1 $f6, ($s0) +.L7F0A65AC: +/* 0DB0DC 7F0A65AC 8FA80024 */ lw $t0, 0x24($sp) +.L7F0A65B0: +/* 0DB0E0 7F0A65B0 3C018006 */ lui $at, %hi(D_800584A4) +/* 0DB0E4 7F0A65B4 C42A84A4 */ lwc1 $f10, %lo(D_800584A4)($at) +/* 0DB0E8 7F0A65B8 8D0B0000 */ lw $t3, ($t0) +/* 0DB0EC 7F0A65BC C6120000 */ lwc1 $f18, ($s0) +/* 0DB0F0 7F0A65C0 00002025 */ move $a0, $zero +/* 0DB0F4 7F0A65C4 448B4000 */ mtc1 $t3, $f8 +/* 0DB0F8 7F0A65C8 00000000 */ nop +/* 0DB0FC 7F0A65CC 46804420 */ cvt.s.w $f16, $f8 +/* 0DB100 7F0A65D0 460A8100 */ add.s $f4, $f16, $f10 +/* 0DB104 7F0A65D4 4604903E */ c.le.s $f18, $f4 +/* 0DB108 7F0A65D8 00000000 */ nop +/* 0DB10C 7F0A65DC 4502000A */ bc1fl .L7F0A6608 +/* 0DB110 7F0A65E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DB114 7F0A65E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DB118 7F0A65E8 3405FFFF */ li $a1, 65535 +/* 0DB11C 7F0A65EC 14400005 */ bnez $v0, .L7F0A6604 +/* 0DB120 7F0A65F0 3C018006 */ lui $at, %hi(D_800584A8) +/* 0DB124 7F0A65F4 C6060000 */ lwc1 $f6, ($s0) +/* 0DB128 7F0A65F8 C42884A8 */ lwc1 $f8, %lo(D_800584A8)($at) +/* 0DB12C 7F0A65FC 46083400 */ add.s $f16, $f6, $f8 +/* 0DB130 7F0A6600 E6100000 */ swc1 $f16, ($s0) +.L7F0A6604: +/* 0DB134 7F0A6604 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0A6608: +/* 0DB138 7F0A6608 8FB00018 */ lw $s0, 0x18($sp) +/* 0DB13C 7F0A660C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DB140 7F0A6610 03E00008 */ jr $ra +/* 0DB144 7F0A6614 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0A6618(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + D_800409A0 = 4; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + D_800409A0 = 1; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A66A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A66A0 +/* 0DB1D0 7F0A66A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB1D4 7F0A66A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB1D8 7F0A66A8 00002025 */ move $a0, $zero +/* 0DB1DC 7F0A66AC 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB1E0 7F0A66B0 24050808 */ li $a1, 2056 +/* 0DB1E4 7F0A66B4 14400005 */ bnez $v0, .L7F0A66CC +/* 0DB1E8 7F0A66B8 00000000 */ nop +/* 0DB1EC 7F0A66BC 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB1F0 7F0A66C0 00000000 */ nop +/* 0DB1F4 7F0A66C4 10400008 */ beqz $v0, .L7F0A66E8 +/* 0DB1F8 7F0A66C8 00002025 */ move $a0, $zero +.L7F0A66CC: +/* 0DB1FC 7F0A66CC 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB200 7F0A66D0 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB204 7F0A66D4 AC2009A0 */ sw $zero, %lo(D_800409A0)($at) +/* 0DB208 7F0A66D8 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB20C 7F0A66DC 00000000 */ nop +/* 0DB210 7F0A66E0 1000000F */ b .L7F0A6720 +/* 0DB214 7F0A66E4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A66E8: +/* 0DB218 7F0A66E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB21C 7F0A66EC 24050404 */ li $a1, 1028 +/* 0DB220 7F0A66F0 54400005 */ bnezl $v0, .L7F0A6708 +/* 0DB224 7F0A66F4 240E0002 */ li $t6, 2 +/* 0DB228 7F0A66F8 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB22C 7F0A66FC 00000000 */ nop +/* 0DB230 7F0A6700 10400006 */ beqz $v0, .L7F0A671C +/* 0DB234 7F0A6704 240E0002 */ li $t6, 2 +.L7F0A6708: +/* 0DB238 7F0A6708 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB23C 7F0A670C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB240 7F0A6710 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB244 7F0A6714 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB248 7F0A6718 00000000 */ nop +.L7F0A671C: +/* 0DB24C 7F0A671C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6720: +/* 0DB250 7F0A6720 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB254 7F0A6724 03E00008 */ jr $ra +/* 0DB258 7F0A6728 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A672C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A672C +/* 0DB25C 7F0A672C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB260 7F0A6730 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB264 7F0A6734 00002025 */ move $a0, $zero +/* 0DB268 7F0A6738 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB26C 7F0A673C 24050808 */ li $a1, 2056 +/* 0DB270 7F0A6740 54400006 */ bnezl $v0, .L7F0A675C +/* 0DB274 7F0A6744 240E0001 */ li $t6, 1 +/* 0DB278 7F0A6748 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB27C 7F0A674C 00000000 */ nop +/* 0DB280 7F0A6750 10400009 */ beqz $v0, .L7F0A6778 +/* 0DB284 7F0A6754 00002025 */ move $a0, $zero +/* 0DB288 7F0A6758 240E0001 */ li $t6, 1 +.L7F0A675C: +/* 0DB28C 7F0A675C 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB290 7F0A6760 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB294 7F0A6764 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB298 7F0A6768 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB29C 7F0A676C 00000000 */ nop +/* 0DB2A0 7F0A6770 1000000F */ b .L7F0A67B0 +/* 0DB2A4 7F0A6774 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6778: +/* 0DB2A8 7F0A6778 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB2AC 7F0A677C 24050404 */ li $a1, 1028 +/* 0DB2B0 7F0A6780 54400005 */ bnezl $v0, .L7F0A6798 +/* 0DB2B4 7F0A6784 240F0003 */ li $t7, 3 +/* 0DB2B8 7F0A6788 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB2BC 7F0A678C 00000000 */ nop +/* 0DB2C0 7F0A6790 10400006 */ beqz $v0, .L7F0A67AC +/* 0DB2C4 7F0A6794 240F0003 */ li $t7, 3 +.L7F0A6798: +/* 0DB2C8 7F0A6798 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB2CC 7F0A679C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB2D0 7F0A67A0 AC2F09A0 */ sw $t7, %lo(D_800409A0)($at) +/* 0DB2D4 7F0A67A4 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB2D8 7F0A67A8 00000000 */ nop +.L7F0A67AC: +/* 0DB2DC 7F0A67AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A67B0: +/* 0DB2E0 7F0A67B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB2E4 7F0A67B4 03E00008 */ jr $ra +/* 0DB2E8 7F0A67B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A67BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A67BC +/* 0DB2EC 7F0A67BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB2F0 7F0A67C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB2F4 7F0A67C4 00002025 */ move $a0, $zero +/* 0DB2F8 7F0A67C8 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB2FC 7F0A67CC 24050808 */ li $a1, 2056 +/* 0DB300 7F0A67D0 54400006 */ bnezl $v0, .L7F0A67EC +/* 0DB304 7F0A67D4 240E0002 */ li $t6, 2 +/* 0DB308 7F0A67D8 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB30C 7F0A67DC 00000000 */ nop +/* 0DB310 7F0A67E0 10400009 */ beqz $v0, .L7F0A6808 +/* 0DB314 7F0A67E4 00002025 */ move $a0, $zero +/* 0DB318 7F0A67E8 240E0002 */ li $t6, 2 +.L7F0A67EC: +/* 0DB31C 7F0A67EC 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB320 7F0A67F0 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB324 7F0A67F4 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB328 7F0A67F8 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB32C 7F0A67FC 00000000 */ nop +/* 0DB330 7F0A6800 1000000F */ b .L7F0A6840 +/* 0DB334 7F0A6804 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6808: +/* 0DB338 7F0A6808 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB33C 7F0A680C 24050404 */ li $a1, 1028 +/* 0DB340 7F0A6810 54400005 */ bnezl $v0, .L7F0A6828 +/* 0DB344 7F0A6814 240F0004 */ li $t7, 4 +/* 0DB348 7F0A6818 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB34C 7F0A681C 00000000 */ nop +/* 0DB350 7F0A6820 10400006 */ beqz $v0, .L7F0A683C +/* 0DB354 7F0A6824 240F0004 */ li $t7, 4 +.L7F0A6828: +/* 0DB358 7F0A6828 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB35C 7F0A682C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB360 7F0A6830 AC2F09A0 */ sw $t7, %lo(D_800409A0)($at) +/* 0DB364 7F0A6834 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB368 7F0A6838 00000000 */ nop +.L7F0A683C: +/* 0DB36C 7F0A683C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6840: +/* 0DB370 7F0A6840 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB374 7F0A6844 03E00008 */ jr $ra +/* 0DB378 7F0A6848 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A684C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A684C +/* 0DB37C 7F0A684C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB380 7F0A6850 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB384 7F0A6854 00002025 */ move $a0, $zero +/* 0DB388 7F0A6858 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB38C 7F0A685C 24050808 */ li $a1, 2056 +/* 0DB390 7F0A6860 54400006 */ bnezl $v0, .L7F0A687C +/* 0DB394 7F0A6864 240E0003 */ li $t6, 3 +/* 0DB398 7F0A6868 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB39C 7F0A686C 00000000 */ nop +/* 0DB3A0 7F0A6870 10400009 */ beqz $v0, .L7F0A6898 +/* 0DB3A4 7F0A6874 00002025 */ move $a0, $zero +/* 0DB3A8 7F0A6878 240E0003 */ li $t6, 3 +.L7F0A687C: +/* 0DB3AC 7F0A687C 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB3B0 7F0A6880 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB3B4 7F0A6884 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB3B8 7F0A6888 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB3BC 7F0A688C 00000000 */ nop +/* 0DB3C0 7F0A6890 1000000E */ b .L7F0A68CC +/* 0DB3C4 7F0A6894 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6898: +/* 0DB3C8 7F0A6898 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB3CC 7F0A689C 24050404 */ li $a1, 1028 +/* 0DB3D0 7F0A68A0 14400004 */ bnez $v0, .L7F0A68B4 +/* 0DB3D4 7F0A68A4 00000000 */ nop +/* 0DB3D8 7F0A68A8 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB3DC 7F0A68AC 00000000 */ nop +/* 0DB3E0 7F0A68B0 10400005 */ beqz $v0, .L7F0A68C8 +.L7F0A68B4: +/* 0DB3E4 7F0A68B4 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB3E8 7F0A68B8 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB3EC 7F0A68BC AC2009A0 */ sw $zero, %lo(D_800409A0)($at) +/* 0DB3F0 7F0A68C0 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB3F4 7F0A68C4 00000000 */ nop +.L7F0A68C8: +/* 0DB3F8 7F0A68C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A68CC: +/* 0DB3FC 7F0A68CC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB400 7F0A68D0 03E00008 */ jr $ra +/* 0DB404 7F0A68D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A68D8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800584AC +.word 0x48507100 /*213444.0*/ +.text +glabel sub_GAME_7F0A68D8 +/* 0DB408 7F0A68D8 3C098004 */ lui $t1, %hi(D_80040B40) +/* 0DB40C 7F0A68DC 25290B40 */ addiu $t1, %lo(D_80040B40) # addiu $t1, $t1, 0xb40 +/* 0DB410 7F0A68E0 8D220000 */ lw $v0, ($t1) +/* 0DB414 7F0A68E4 3C018006 */ lui $at, %hi(D_800584AC) +/* 0DB418 7F0A68E8 C42484AC */ lwc1 $f4, %lo(D_800584AC)($at) +/* 0DB41C 7F0A68EC 00420019 */ multu $v0, $v0 +/* 0DB420 7F0A68F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB424 7F0A68F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB428 7F0A68F8 AFA40018 */ sw $a0, 0x18($sp) +/* 0DB42C 7F0A68FC 00007012 */ mflo $t6 +/* 0DB430 7F0A6900 448E3000 */ mtc1 $t6, $f6 +/* 0DB434 7F0A6904 00000000 */ nop +/* 0DB438 7F0A6908 46803220 */ cvt.s.w $f8, $f6 +/* 0DB43C 7F0A690C 0C007DF8 */ jal sqrtf +/* 0DB440 7F0A6910 46082301 */ sub.s $f12, $f4, $f8 +/* 0DB444 7F0A6914 4600028D */ trunc.w.s $f10, $f0 +/* 0DB448 7F0A6918 3C098004 */ lui $t1, %hi(D_80040B40) +/* 0DB44C 7F0A691C 3C078004 */ lui $a3, %hi(D_80040B08) +/* 0DB450 7F0A6920 25290B40 */ addiu $t1, %lo(D_80040B40) # addiu $t1, $t1, 0xb40 +/* 0DB454 7F0A6924 44055000 */ mfc1 $a1, $f10 +/* 0DB458 7F0A6928 8FA40018 */ lw $a0, 0x18($sp) +/* 0DB45C 7F0A692C 24E70B08 */ addiu $a3, %lo(D_80040B08) # addiu $a3, $a3, 0xb08 +/* 0DB460 7F0A6930 00001825 */ move $v1, $zero +/* 0DB464 7F0A6934 240A0008 */ li $t2, 8 +/* 0DB468 7F0A6938 24080003 */ li $t0, 3 +/* 0DB46C 7F0A693C 240600A0 */ li $a2, 160 +/* 0DB470 7F0A6940 2402FFFF */ li $v0, -1 +.L7F0A6944: +/* 0DB474 7F0A6944 00A20019 */ multu $a1, $v0 +/* 0DB478 7F0A6948 A4800002 */ sh $zero, 2($a0) +/* 0DB47C 7F0A694C 24420002 */ addiu $v0, $v0, 2 +/* 0DB480 7F0A6950 24840010 */ addiu $a0, $a0, 0x10 +/* 0DB484 7F0A6954 0000C012 */ mflo $t8 +/* 0DB488 7F0A6958 A498FFF0 */ sh $t8, -0x10($a0) +/* 0DB48C 7F0A695C 8D390000 */ lw $t9, ($t1) +/* 0DB490 7F0A6960 A480FFF6 */ sh $zero, -0xa($a0) +/* 0DB494 7F0A6964 A480FFF8 */ sh $zero, -8($a0) +/* 0DB498 7F0A6968 00795821 */ addu $t3, $v1, $t9 +/* 0DB49C 7F0A696C A48BFFF4 */ sh $t3, -0xc($a0) +/* 0DB4A0 7F0A6970 A480FFFA */ sh $zero, -6($a0) +/* 0DB4A4 7F0A6974 A080FFFC */ sb $zero, -4($a0) +/* 0DB4A8 7F0A6978 A086FFFD */ sb $a2, -3($a0) +/* 0DB4AC 7F0A697C A080FFFE */ sb $zero, -2($a0) +/* 0DB4B0 7F0A6980 8CEC0000 */ lw $t4, ($a3) +/* 0DB4B4 7F0A6984 1448FFEF */ bne $v0, $t0, .L7F0A6944 +/* 0DB4B8 7F0A6988 A08CFFFF */ sb $t4, -1($a0) +/* 0DB4BC 7F0A698C 24630004 */ addiu $v1, $v1, 4 +/* 0DB4C0 7F0A6990 546AFFEC */ bnel $v1, $t2, .L7F0A6944 +/* 0DB4C4 7F0A6994 2402FFFF */ li $v0, -1 +/* 0DB4C8 7F0A6998 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DB4CC 7F0A699C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB4D0 7F0A69A0 03E00008 */ jr $ra +/* 0DB4D4 7F0A69A4 00000000 */ nop +) +#endif + + + +void sub_GAME_7F0A69A8(void) +{ + if (get_attached_controller_count() < 2) + { + D_800409D8 = 4; + } + else + { + D_800409D8 = 8; + } + sub_GAME_7F0A4F44(); + watch_screen_index = 0; + D_800409A0 = 4; + D_800409C8 = 0.999f; + D_800409CC = 0.9999f; + calculate_equip_cur_item(); +} + + +#ifdef NONMATCHING +f32 sub_GAME_7F0A6A2C(f32 arg0) { + f32 phi_f12; + + if (3.1415927f < arg0) { + return arg0 - 6.2831855f; + } + + phi_f12 = arg0; + + if (-3.1415927f > arg0) { + return arg0 + 6.2831855f; + } + return phi_f12; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800584B8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800584BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800584C0 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_800584C4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0A6A2C +/* 0DB55C 7F0A6A2C 3C018006 */ lui $at, %hi(D_800584B8) +/* 0DB560 7F0A6A30 C42484B8 */ lwc1 $f4, %lo(D_800584B8)($at) +/* 0DB564 7F0A6A34 3C018006 */ lui $at, %hi(D_800584C0) +/* 0DB568 7F0A6A38 460C203C */ c.lt.s $f4, $f12 +/* 0DB56C 7F0A6A3C 00000000 */ nop +/* 0DB570 7F0A6A40 45000005 */ bc1f .L7F0A6A58 +/* 0DB574 7F0A6A44 00000000 */ nop +/* 0DB578 7F0A6A48 3C018006 */ lui $at, %hi(D_800584BC) +/* 0DB57C 7F0A6A4C C42684BC */ lwc1 $f6, %lo(D_800584BC)($at) +/* 0DB580 7F0A6A50 03E00008 */ jr $ra +/* 0DB584 7F0A6A54 46066001 */ sub.s $f0, $f12, $f6 + +.L7F0A6A58: +/* 0DB588 7F0A6A58 C42884C0 */ lwc1 $f8, %lo(D_800584C0)($at) +/* 0DB58C 7F0A6A5C 3C018006 */ lui $at, %hi(D_800584C4) +/* 0DB590 7F0A6A60 4608603C */ c.lt.s $f12, $f8 +/* 0DB594 7F0A6A64 00000000 */ nop +/* 0DB598 7F0A6A68 45000003 */ bc1f .L7F0A6A78 +/* 0DB59C 7F0A6A6C 00000000 */ nop +/* 0DB5A0 7F0A6A70 C42A84C4 */ lwc1 $f10, %lo(D_800584C4)($at) +/* 0DB5A4 7F0A6A74 460A6300 */ add.s $f12, $f12, $f10 +.L7F0A6A78: +/* 0DB5A8 7F0A6A78 03E00008 */ jr $ra +/* 0DB5AC 7F0A6A7C 46006006 */ mov.s $f0, $f12 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A6A80(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800584C8 +.word 0x40c90fdb /*6.2831855*/ + +/*D:800584CC*/ +glabel jpt_800584CC +.word .L7F0A6E04 +.word .L7F0A6ED0 +.word .L7F0A6E14 +.word .L7F0A6E60 +.word .L7F0A6EC0 + +/*D:800584E0*/ +glabel jpt_800584E0 +.word .L7F0A6E88 +.word .L7F0A6E98 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 + +.text +glabel sub_GAME_7F0A6A80 +/* 0DB5B0 7F0A6A80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DB5B4 7F0A6A84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB5B8 7F0A6A88 00002025 */ move $a0, $zero +/* 0DB5BC 7F0A6A8C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB5C0 7F0A6A90 24051000 */ li $a1, 4096 +/* 0DB5C4 7F0A6A94 10400003 */ beqz $v0, .L7F0A6AA4 +/* 0DB5C8 7F0A6A98 00000000 */ nop +/* 0DB5CC 7F0A6A9C 0FC1FE18 */ jal set_open_close_solo_watch_menu_to1 +/* 0DB5D0 7F0A6AA0 00000000 */ nop +.L7F0A6AA4: +/* 0DB5D4 7F0A6AA4 3C0E8004 */ lui $t6, %hi(controlstick_lr_enabled) +/* 0DB5D8 7F0A6AA8 8DCE0ADC */ lw $t6, %lo(controlstick_lr_enabled)($t6) +/* 0DB5DC 7F0A6AAC 15C00027 */ bnez $t6, .L7F0A6B4C +/* 0DB5E0 7F0A6AB0 00000000 */ nop +/* 0DB5E4 7F0A6AB4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB5E8 7F0A6AB8 00002025 */ move $a0, $zero +/* 0DB5EC 7F0A6ABC 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB5F0 7F0A6AC0 14200009 */ bnez $at, .L7F0A6AE8 +/* 0DB5F4 7F0A6AC4 00000000 */ nop +/* 0DB5F8 7F0A6AC8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB5FC 7F0A6ACC 00002025 */ move $a0, $zero +/* 0DB600 7F0A6AD0 2841000B */ slti $at, $v0, 0xb +/* 0DB604 7F0A6AD4 10200004 */ beqz $at, .L7F0A6AE8 +/* 0DB608 7F0A6AD8 240F0001 */ li $t7, 1 +/* 0DB60C 7F0A6ADC 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB610 7F0A6AE0 1000001A */ b .L7F0A6B4C +/* 0DB614 7F0A6AE4 AC2F0ADC */ sw $t7, %lo(controlstick_lr_enabled)($at) +.L7F0A6AE8: +/* 0DB618 7F0A6AE8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB61C 7F0A6AEC 00002025 */ move $a0, $zero +/* 0DB620 7F0A6AF0 2841000B */ slti $at, $v0, 0xb +/* 0DB624 7F0A6AF4 10200009 */ beqz $at, .L7F0A6B1C +/* 0DB628 7F0A6AF8 00000000 */ nop +/* 0DB62C 7F0A6AFC 0C00305D */ jal controller_7000C174 +/* 0DB630 7F0A6B00 00002025 */ move $a0, $zero +/* 0DB634 7F0A6B04 2841000B */ slti $at, $v0, 0xb +/* 0DB638 7F0A6B08 14200004 */ bnez $at, .L7F0A6B1C +/* 0DB63C 7F0A6B0C 24180001 */ li $t8, 1 +/* 0DB640 7F0A6B10 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB644 7F0A6B14 1000000D */ b .L7F0A6B4C +/* 0DB648 7F0A6B18 AC380ADC */ sw $t8, %lo(controlstick_lr_enabled)($at) +.L7F0A6B1C: +/* 0DB64C 7F0A6B1C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB650 7F0A6B20 00002025 */ move $a0, $zero +/* 0DB654 7F0A6B24 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB658 7F0A6B28 14200008 */ bnez $at, .L7F0A6B4C +/* 0DB65C 7F0A6B2C 00000000 */ nop +/* 0DB660 7F0A6B30 0C00305D */ jal controller_7000C174 +/* 0DB664 7F0A6B34 00002025 */ move $a0, $zero +/* 0DB668 7F0A6B38 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB66C 7F0A6B3C 10200003 */ beqz $at, .L7F0A6B4C +/* 0DB670 7F0A6B40 24190001 */ li $t9, 1 +/* 0DB674 7F0A6B44 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB678 7F0A6B48 AC390ADC */ sw $t9, %lo(controlstick_lr_enabled)($at) +.L7F0A6B4C: +/* 0DB67C 7F0A6B4C 3C088004 */ lui $t0, %hi(D_80040AE0) +/* 0DB680 7F0A6B50 8D080AE0 */ lw $t0, %lo(D_80040AE0)($t0) +/* 0DB684 7F0A6B54 15000027 */ bnez $t0, .L7F0A6BF4 +/* 0DB688 7F0A6B58 00000000 */ nop +/* 0DB68C 7F0A6B5C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB690 7F0A6B60 00002025 */ move $a0, $zero +/* 0DB694 7F0A6B64 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB698 7F0A6B68 14200009 */ bnez $at, .L7F0A6B90 +/* 0DB69C 7F0A6B6C 00000000 */ nop +/* 0DB6A0 7F0A6B70 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6A4 7F0A6B74 00002025 */ move $a0, $zero +/* 0DB6A8 7F0A6B78 2841000B */ slti $at, $v0, 0xb +/* 0DB6AC 7F0A6B7C 10200004 */ beqz $at, .L7F0A6B90 +/* 0DB6B0 7F0A6B80 24090001 */ li $t1, 1 +/* 0DB6B4 7F0A6B84 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB6B8 7F0A6B88 1000001A */ b .L7F0A6BF4 +/* 0DB6BC 7F0A6B8C AC290AE0 */ sw $t1, %lo(D_80040AE0)($at) +.L7F0A6B90: +/* 0DB6C0 7F0A6B90 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6C4 7F0A6B94 00002025 */ move $a0, $zero +/* 0DB6C8 7F0A6B98 2841000B */ slti $at, $v0, 0xb +/* 0DB6CC 7F0A6B9C 10200009 */ beqz $at, .L7F0A6BC4 +/* 0DB6D0 7F0A6BA0 00000000 */ nop +/* 0DB6D4 7F0A6BA4 0C0030A1 */ jal controller_7000C284 +/* 0DB6D8 7F0A6BA8 00002025 */ move $a0, $zero +/* 0DB6DC 7F0A6BAC 2841000B */ slti $at, $v0, 0xb +/* 0DB6E0 7F0A6BB0 14200004 */ bnez $at, .L7F0A6BC4 +/* 0DB6E4 7F0A6BB4 240A0001 */ li $t2, 1 +/* 0DB6E8 7F0A6BB8 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB6EC 7F0A6BBC 1000000D */ b .L7F0A6BF4 +/* 0DB6F0 7F0A6BC0 AC2A0AE0 */ sw $t2, %lo(D_80040AE0)($at) +.L7F0A6BC4: +/* 0DB6F4 7F0A6BC4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6F8 7F0A6BC8 00002025 */ move $a0, $zero +/* 0DB6FC 7F0A6BCC 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB700 7F0A6BD0 14200008 */ bnez $at, .L7F0A6BF4 +/* 0DB704 7F0A6BD4 00000000 */ nop +/* 0DB708 7F0A6BD8 0C0030A1 */ jal controller_7000C284 +/* 0DB70C 7F0A6BDC 00002025 */ move $a0, $zero +/* 0DB710 7F0A6BE0 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB714 7F0A6BE4 10200003 */ beqz $at, .L7F0A6BF4 +/* 0DB718 7F0A6BE8 240B0001 */ li $t3, 1 +/* 0DB71C 7F0A6BEC 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB720 7F0A6BF0 AC2B0AE0 */ sw $t3, %lo(D_80040AE0)($at) +.L7F0A6BF4: +/* 0DB724 7F0A6BF4 3C038004 */ lui $v1, %hi(D_80040AF8) +/* 0DB728 7F0A6BF8 24630AF8 */ addiu $v1, %lo(D_80040AF8) # addiu $v1, $v1, 0xaf8 +/* 0DB72C 7F0A6BFC 8C620000 */ lw $v0, ($v1) +/* 0DB730 7F0A6C00 04410007 */ bgez $v0, .L7F0A6C20 +/* 0DB734 7F0A6C04 244EFFFF */ addiu $t6, $v0, -1 +/* 0DB738 7F0A6C08 3C048004 */ lui $a0, %hi(D_80040AF4) +/* 0DB73C 7F0A6C0C 24840AF4 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xaf4 +/* 0DB740 7F0A6C10 8C8C0000 */ lw $t4, ($a0) +/* 0DB744 7F0A6C14 3C01FFF0 */ lui $at, 0xfff0 +/* 0DB748 7F0A6C18 01816821 */ addu $t5, $t4, $at +/* 0DB74C 7F0A6C1C AC8D0000 */ sw $t5, ($a0) +.L7F0A6C20: +/* 0DB750 7F0A6C20 3C048004 */ lui $a0, %hi(D_80040AF4) +/* 0DB754 7F0A6C24 24840AF4 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xaf4 +/* 0DB758 7F0A6C28 8C8F0000 */ lw $t7, ($a0) +/* 0DB75C 7F0A6C2C 3C01005F */ lui $at, (0x005F00A1 >> 16) # lui $at, 0x5f +/* 0DB760 7F0A6C30 342100A1 */ ori $at, (0x005F00A1 & 0xFFFF) # ori $at, $at, 0xa1 +/* 0DB764 7F0A6C34 01E1082B */ sltu $at, $t7, $at +/* 0DB768 7F0A6C38 10200006 */ beqz $at, .L7F0A6C54 +/* 0DB76C 7F0A6C3C AC6E0000 */ sw $t6, ($v1) +/* 0DB770 7F0A6C40 3C1800FF */ lui $t8, (0x00FF00A0 >> 16) # lui $t8, 0xff +/* 0DB774 7F0A6C44 371800A0 */ ori $t8, (0x00FF00A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DB778 7F0A6C48 2419000F */ li $t9, 15 +/* 0DB77C 7F0A6C4C AC980000 */ sw $t8, ($a0) +/* 0DB780 7F0A6C50 AC790000 */ sw $t9, ($v1) +.L7F0A6C54: +/* 0DB784 7F0A6C54 3C038004 */ lui $v1, %hi(D_80040B00) +/* 0DB788 7F0A6C58 24630B00 */ addiu $v1, %lo(D_80040B00) # addiu $v1, $v1, 0xb00 +/* 0DB78C 7F0A6C5C 8C620000 */ lw $v0, ($v1) +/* 0DB790 7F0A6C60 3C048004 */ lui $a0, %hi(D_80040AFC) +/* 0DB794 7F0A6C64 24840AFC */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xafc +/* 0DB798 7F0A6C68 04410004 */ bgez $v0, .L7F0A6C7C +/* 0DB79C 7F0A6C6C 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0DB7A0 7F0A6C70 8C880000 */ lw $t0, ($a0) +/* 0DB7A4 7F0A6C74 2509FFF0 */ addiu $t1, $t0, -0x10 +/* 0DB7A8 7F0A6C78 AC890000 */ sw $t1, ($a0) +.L7F0A6C7C: +/* 0DB7AC 7F0A6C7C 3C048004 */ lui $a0, %hi(D_80040AFC) +/* 0DB7B0 7F0A6C80 24840AFC */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xafc +/* 0DB7B4 7F0A6C84 8C8B0000 */ lw $t3, ($a0) +/* 0DB7B8 7F0A6C88 244AFFFF */ addiu $t2, $v0, -1 +/* 0DB7BC 7F0A6C8C AC6A0000 */ sw $t2, ($v1) +/* 0DB7C0 7F0A6C90 2D610060 */ sltiu $at, $t3, 0x60 +/* 0DB7C4 7F0A6C94 10200004 */ beqz $at, .L7F0A6CA8 +/* 0DB7C8 7F0A6C98 240C00FF */ li $t4, 255 +/* 0DB7CC 7F0A6C9C 240D000F */ li $t5, 15 +/* 0DB7D0 7F0A6CA0 AC8C0000 */ sw $t4, ($a0) +/* 0DB7D4 7F0A6CA4 AC6D0000 */ sw $t5, ($v1) +.L7F0A6CA8: +/* 0DB7D8 7F0A6CA8 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0DB7DC 7F0A6CAC 3C018004 */ lui $at, %hi(D_80040B1C) +/* 0DB7E0 7F0A6CB0 C4240B1C */ lwc1 $f4, %lo(D_80040B1C)($at) +/* 0DB7E4 7F0A6CB4 448E3000 */ mtc1 $t6, $f6 +/* 0DB7E8 7F0A6CB8 3C018006 */ lui $at, %hi(D_800584C8) +/* 0DB7EC 7F0A6CBC C43084C8 */ lwc1 $f16, %lo(D_800584C8)($at) +/* 0DB7F0 7F0A6CC0 46803220 */ cvt.s.w $f8, $f6 +/* 0DB7F4 7F0A6CC4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DB7F8 7F0A6CC8 44813000 */ mtc1 $at, $f6 +/* 0DB7FC 7F0A6CCC 3C028004 */ lui $v0, %hi(D_80040B14) +/* 0DB800 7F0A6CD0 24420B14 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb14 +/* 0DB804 7F0A6CD4 46082282 */ mul.s $f10, $f4, $f8 +/* 0DB808 7F0A6CD8 C4480000 */ lwc1 $f8, ($v0) +/* 0DB80C 7F0A6CDC 46105482 */ mul.s $f18, $f10, $f16 +/* 0DB810 7F0A6CE0 46069103 */ div.s $f4, $f18, $f6 +/* 0DB814 7F0A6CE4 46044280 */ add.s $f10, $f8, $f4 +/* 0DB818 7F0A6CE8 E44A0000 */ swc1 $f10, ($v0) +/* 0DB81C 7F0A6CEC 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DB820 7F0A6CF0 C44C0000 */ lwc1 $f12, ($v0) +/* 0DB824 7F0A6CF4 3C028004 */ lui $v0, %hi(D_80040B14) +/* 0DB828 7F0A6CF8 24420B14 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb14 +/* 0DB82C 7F0A6CFC E4400000 */ swc1 $f0, ($v0) +/* 0DB830 7F0A6D00 3C0F8004 */ lui $t7, %hi(D_80040B0C) +/* 0DB834 7F0A6D04 8DEF0B0C */ lw $t7, %lo(D_80040B0C)($t7) +/* 0DB838 7F0A6D08 000FC400 */ sll $t8, $t7, 0x10 +/* 0DB83C 7F0A6D0C 0C002914 */ jal get_random_value +/* 0DB840 7F0A6D10 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DB844 7F0A6D14 8FB9001C */ lw $t9, 0x1c($sp) +/* 0DB848 7F0A6D18 0322082B */ sltu $at, $t9, $v0 +/* 0DB84C 7F0A6D1C 10200003 */ beqz $at, .L7F0A6D2C +/* 0DB850 7F0A6D20 00000000 */ nop +/* 0DB854 7F0A6D24 0FC29476 */ jal sub_GAME_7F0A51D8 +/* 0DB858 7F0A6D28 00000000 */ nop +.L7F0A6D2C: +/* 0DB85C 7F0A6D2C 3C048004 */ lui $a0, %hi(D_80040B04) +/* 0DB860 7F0A6D30 24840B04 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb04 +/* 0DB864 7F0A6D34 8C830000 */ lw $v1, ($a0) +/* 0DB868 7F0A6D38 286100E0 */ slti $at, $v1, 0xe0 +/* 0DB86C 7F0A6D3C 5020000A */ beql $at, $zero, .L7F0A6D68 +/* 0DB870 7F0A6D40 286100E1 */ slti $at, $v1, 0xe1 +/* 0DB874 7F0A6D44 0C002914 */ jal get_random_value +/* 0DB878 7F0A6D48 00000000 */ nop +/* 0DB87C 7F0A6D4C 3C048004 */ lui $a0, %hi(D_80040B04) +/* 0DB880 7F0A6D50 24840B04 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb04 +/* 0DB884 7F0A6D54 8C880000 */ lw $t0, ($a0) +/* 0DB888 7F0A6D58 00024F82 */ srl $t1, $v0, 0x1e +/* 0DB88C 7F0A6D5C 01091821 */ addu $v1, $t0, $t1 +/* 0DB890 7F0A6D60 AC830000 */ sw $v1, ($a0) +/* 0DB894 7F0A6D64 286100E1 */ slti $at, $v1, 0xe1 +.L7F0A6D68: +/* 0DB898 7F0A6D68 14200003 */ bnez $at, .L7F0A6D78 +/* 0DB89C 7F0A6D6C 24080156 */ li $t0, 342 +/* 0DB8A0 7F0A6D70 240300E0 */ li $v1, 224 +/* 0DB8A4 7F0A6D74 AC830000 */ sw $v1, ($a0) +.L7F0A6D78: +/* 0DB8A8 7F0A6D78 00036023 */ negu $t4, $v1 +/* 0DB8AC 7F0A6D7C 000C6880 */ sll $t5, $t4, 2 +/* 0DB8B0 7F0A6D80 3C048004 */ lui $a0, %hi(D_80040B40) +/* 0DB8B4 7F0A6D84 25AE0380 */ addiu $t6, $t5, 0x380 +/* 0DB8B8 7F0A6D88 3C018004 */ lui $at, %hi(D_80040B08) +/* 0DB8BC 7F0A6D8C 24840B40 */ addiu $a0, %lo(D_80040B40) # addiu $a0, $a0, 0xb40 +/* 0DB8C0 7F0A6D90 AC2E0B08 */ sw $t6, %lo(D_80040B08)($at) +/* 0DB8C4 7F0A6D94 8C8F0000 */ lw $t7, ($a0) +/* 0DB8C8 7F0A6D98 25E2FFFC */ addiu $v0, $t7, -4 +/* 0DB8CC 7F0A6D9C 28410157 */ slti $at, $v0, 0x157 +/* 0DB8D0 7F0A6DA0 14200003 */ bnez $at, .L7F0A6DB0 +/* 0DB8D4 7F0A6DA4 AC820000 */ sw $v0, ($a0) +/* 0DB8D8 7F0A6DA8 2402FEAA */ li $v0, -342 +/* 0DB8DC 7F0A6DAC AC820000 */ sw $v0, ($a0) +.L7F0A6DB0: +/* 0DB8E0 7F0A6DB0 2841FEAA */ slti $at, $v0, -0x156 +/* 0DB8E4 7F0A6DB4 10200002 */ beqz $at, .L7F0A6DC0 +/* 0DB8E8 7F0A6DB8 3C028004 */ lui $v0, %hi(D_80040B44) +/* 0DB8EC 7F0A6DBC AC880000 */ sw $t0, ($a0) +.L7F0A6DC0: +/* 0DB8F0 7F0A6DC0 24420B44 */ addiu $v0, %lo(D_80040B44) # addiu $v0, $v0, 0xb44 +/* 0DB8F4 7F0A6DC4 84490000 */ lh $t1, ($v0) +/* 0DB8F8 7F0A6DC8 3C0D8004 */ lui $t5, %hi(watch_screen_index) +/* 0DB8FC 7F0A6DCC 252A0001 */ addiu $t2, $t1, 1 +/* 0DB900 7F0A6DD0 A44A0000 */ sh $t2, ($v0) +/* 0DB904 7F0A6DD4 844B0000 */ lh $t3, ($v0) +/* 0DB908 7F0A6DD8 316C0001 */ andi $t4, $t3, 1 +/* 0DB90C 7F0A6DDC A44C0000 */ sh $t4, ($v0) +/* 0DB910 7F0A6DE0 8DAD0994 */ lw $t5, %lo(watch_screen_index)($t5) +/* 0DB914 7F0A6DE4 2DA10005 */ sltiu $at, $t5, 5 +/* 0DB918 7F0A6DE8 1020003B */ beqz $at, .L7F0A6ED8 +/* 0DB91C 7F0A6DEC 000D6880 */ sll $t5, $t5, 2 +/* 0DB920 7F0A6DF0 3C018006 */ lui $at, %hi(jpt_800584CC) +/* 0DB924 7F0A6DF4 002D0821 */ addu $at, $at, $t5 +/* 0DB928 7F0A6DF8 8C2D84CC */ lw $t5, %lo(jpt_800584CC)($at) +/* 0DB92C 7F0A6DFC 01A00008 */ jr $t5 +/* 0DB930 7F0A6E00 00000000 */ nop +.L7F0A6E04: +/* 0DB934 7F0A6E04 0FC2949B */ jal watch_screen0_navigation +/* 0DB938 7F0A6E08 00000000 */ nop +/* 0DB93C 7F0A6E0C 10000033 */ b .L7F0A6EDC +/* 0DB940 7F0A6E10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6E14: +/* 0DB944 7F0A6E14 3C028004 */ lui $v0, %hi(D_80040998) +/* 0DB948 7F0A6E18 8C420998 */ lw $v0, %lo(D_80040998)($v0) +/* 0DB94C 7F0A6E1C 24010001 */ li $at, 1 +/* 0DB950 7F0A6E20 10400005 */ beqz $v0, .L7F0A6E38 +/* 0DB954 7F0A6E24 00000000 */ nop +/* 0DB958 7F0A6E28 10410007 */ beq $v0, $at, .L7F0A6E48 +/* 0DB95C 7F0A6E2C 00000000 */ nop +/* 0DB960 7F0A6E30 10000007 */ b .L7F0A6E50 +/* 0DB964 7F0A6E34 00000000 */ nop +.L7F0A6E38: +/* 0DB968 7F0A6E38 0FC29618 */ jal sub_GAME_7F0A5860 +/* 0DB96C 7F0A6E3C 00000000 */ nop +/* 0DB970 7F0A6E40 10000003 */ b .L7F0A6E50 +/* 0DB974 7F0A6E44 00000000 */ nop +.L7F0A6E48: +/* 0DB978 7F0A6E48 0FC29640 */ jal sub_GAME_7F0A5900 +/* 0DB97C 7F0A6E4C 00000000 */ nop +.L7F0A6E50: +/* 0DB980 7F0A6E50 0FC29571 */ jal watch_screen2_navigation +/* 0DB984 7F0A6E54 00000000 */ nop +/* 0DB988 7F0A6E58 10000020 */ b .L7F0A6EDC +/* 0DB98C 7F0A6E5C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6E60: +/* 0DB990 7F0A6E60 3C0E8004 */ lui $t6, %hi(D_8004099C) +/* 0DB994 7F0A6E64 8DCE099C */ lw $t6, %lo(D_8004099C)($t6) +/* 0DB998 7F0A6E68 2DC1000A */ sltiu $at, $t6, 0xa +/* 0DB99C 7F0A6E6C 10200010 */ beqz $at, .L7F0A6EB0 +/* 0DB9A0 7F0A6E70 000E7080 */ sll $t6, $t6, 2 +/* 0DB9A4 7F0A6E74 3C018006 */ lui $at, %hi(jpt_800584E0) +/* 0DB9A8 7F0A6E78 002E0821 */ addu $at, $at, $t6 +/* 0DB9AC 7F0A6E7C 8C2E84E0 */ lw $t6, %lo(jpt_800584E0)($at) +/* 0DB9B0 7F0A6E80 01C00008 */ jr $t6 +/* 0DB9B4 7F0A6E84 00000000 */ nop +.L7F0A6E88: +/* 0DB9B8 7F0A6E88 0FC29699 */ jal sub_GAME_7F0A5A64 +/* 0DB9BC 7F0A6E8C 00000000 */ nop +/* 0DB9C0 7F0A6E90 10000007 */ b .L7F0A6EB0 +/* 0DB9C4 7F0A6E94 00000000 */ nop +.L7F0A6E98: +/* 0DB9C8 7F0A6E98 0FC296BD */ jal sub_GAME_7F0A5AF4 +/* 0DB9CC 7F0A6E9C 00000000 */ nop +/* 0DB9D0 7F0A6EA0 10000003 */ b .L7F0A6EB0 +/* 0DB9D4 7F0A6EA4 00000000 */ nop +.L7F0A6EA8: +/* 0DB9D8 7F0A6EA8 0FC29666 */ jal sub_GAME_7F0A5998 +/* 0DB9DC 7F0A6EAC 00000000 */ nop +.L7F0A6EB0: +/* 0DB9E0 7F0A6EB0 0FC295A9 */ jal watch_screen3_navigation +/* 0DB9E4 7F0A6EB4 00000000 */ nop +/* 0DB9E8 7F0A6EB8 10000008 */ b .L7F0A6EDC +/* 0DB9EC 7F0A6EBC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6EC0: +/* 0DB9F0 7F0A6EC0 0FC295E1 */ jal watch_screen4_navigation +/* 0DB9F4 7F0A6EC4 00000000 */ nop +/* 0DB9F8 7F0A6EC8 10000004 */ b .L7F0A6EDC +/* 0DB9FC 7F0A6ECC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6ED0: +/* 0DBA00 7F0A6ED0 0FC294F6 */ jal watch_screen1_navigation +/* 0DBA04 7F0A6ED4 00000000 */ nop +.L7F0A6ED8: +/* 0DBA08 7F0A6ED8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6EDC: +/* 0DBA0C 7F0A6EDC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DBA10 7F0A6EE0 03E00008 */ jr $ra +/* 0DBA14 7F0A6EE4 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800584C8 +.word 0x40c90fdb /*6.2831855*/ + +/*D:800584CC*/ +glabel jpt_800584CC +.word .Ljp7F0A6E04 +.word .Ljp7F0A6ED0 +.word .Ljp7F0A6E14 +.word .Ljp7F0A6E60 +.word .Ljp7F0A6EC0 + +/*D:800584E0*/ +glabel jpt_800584E0 +.word .Ljp7F0A6E88 +.word .Ljp7F0A6E98 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 + +.text +glabel sub_GAME_7F0A6A80 +/* 0DC190 7F0A7620 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DC194 7F0A7624 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DC198 7F0A7628 00002025 */ move $a0, $zero +/* 0DC19C 7F0A762C 0C003104 */ jal get_controller_buttons_pressed +/* 0DC1A0 7F0A7630 24051000 */ li $a1, 4096 +/* 0DC1A4 7F0A7634 10400003 */ beqz $v0, .Ljp7F0A7644 +/* 0DC1A8 7F0A7638 00000000 */ nop +/* 0DC1AC 7F0A763C 0FC1FF9C */ jal set_open_close_solo_watch_menu_to1 +/* 0DC1B0 7F0A7640 00000000 */ nop +.Ljp7F0A7644: +/* 0DC1B4 7F0A7644 3C0E8004 */ lui $t6, %hi(controlstick_lr_enabled) # $t6, 0x8004 +/* 0DC1B8 7F0A7648 8DCE0B0C */ lw $t6, %lo(controlstick_lr_enabled)($t6) +/* 0DC1BC 7F0A764C 15C00027 */ bnez $t6, .Ljp7F0A76EC +/* 0DC1C0 7F0A7650 00000000 */ nop +/* 0DC1C4 7F0A7654 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1C8 7F0A7658 00002025 */ move $a0, $zero +/* 0DC1CC 7F0A765C 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC1D0 7F0A7660 14200009 */ bnez $at, .Ljp7F0A7688 +/* 0DC1D4 7F0A7664 00000000 */ nop +/* 0DC1D8 7F0A7668 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1DC 7F0A766C 00002025 */ move $a0, $zero +/* 0DC1E0 7F0A7670 2841000B */ slti $at, $v0, 0xb +/* 0DC1E4 7F0A7674 10200004 */ beqz $at, .Ljp7F0A7688 +/* 0DC1E8 7F0A7678 240F0001 */ li $t7, 1 +/* 0DC1EC 7F0A767C 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC1F0 7F0A7680 1000001A */ b .Ljp7F0A76EC +/* 0DC1F4 7F0A7684 AC2F0B0C */ sw $t7, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A7688: +/* 0DC1F8 7F0A7688 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1FC 7F0A768C 00002025 */ move $a0, $zero +/* 0DC200 7F0A7690 2841000B */ slti $at, $v0, 0xb +/* 0DC204 7F0A7694 10200009 */ beqz $at, .Ljp7F0A76BC +/* 0DC208 7F0A7698 00000000 */ nop +/* 0DC20C 7F0A769C 0C003076 */ jal controller_7000C174 +/* 0DC210 7F0A76A0 00002025 */ move $a0, $zero +/* 0DC214 7F0A76A4 2841000B */ slti $at, $v0, 0xb +/* 0DC218 7F0A76A8 14200004 */ bnez $at, .Ljp7F0A76BC +/* 0DC21C 7F0A76AC 24180001 */ li $t8, 1 +/* 0DC220 7F0A76B0 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC224 7F0A76B4 1000000D */ b .Ljp7F0A76EC +/* 0DC228 7F0A76B8 AC380B0C */ sw $t8, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A76BC: +/* 0DC22C 7F0A76BC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC230 7F0A76C0 00002025 */ move $a0, $zero +/* 0DC234 7F0A76C4 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC238 7F0A76C8 14200008 */ bnez $at, .Ljp7F0A76EC +/* 0DC23C 7F0A76CC 00000000 */ nop +/* 0DC240 7F0A76D0 0C003076 */ jal controller_7000C174 +/* 0DC244 7F0A76D4 00002025 */ move $a0, $zero +/* 0DC248 7F0A76D8 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC24C 7F0A76DC 10200003 */ beqz $at, .Ljp7F0A76EC +/* 0DC250 7F0A76E0 24190001 */ li $t9, 1 +/* 0DC254 7F0A76E4 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC258 7F0A76E8 AC390B0C */ sw $t9, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A76EC: +/* 0DC25C 7F0A76EC 3C088004 */ lui $t0, %hi(D_80040AE0) # $t0, 0x8004 +/* 0DC260 7F0A76F0 8D080B10 */ lw $t0, %lo(D_80040AE0)($t0) +/* 0DC264 7F0A76F4 15000027 */ bnez $t0, .Ljp7F0A7794 +/* 0DC268 7F0A76F8 00000000 */ nop +/* 0DC26C 7F0A76FC 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC270 7F0A7700 00002025 */ move $a0, $zero +/* 0DC274 7F0A7704 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC278 7F0A7708 14200009 */ bnez $at, .Ljp7F0A7730 +/* 0DC27C 7F0A770C 00000000 */ nop +/* 0DC280 7F0A7710 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC284 7F0A7714 00002025 */ move $a0, $zero +/* 0DC288 7F0A7718 2841000B */ slti $at, $v0, 0xb +/* 0DC28C 7F0A771C 10200004 */ beqz $at, .Ljp7F0A7730 +/* 0DC290 7F0A7720 24090001 */ li $t1, 1 +/* 0DC294 7F0A7724 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC298 7F0A7728 1000001A */ b .Ljp7F0A7794 +/* 0DC29C 7F0A772C AC290B10 */ sw $t1, %lo(D_80040AE0)($at) +.Ljp7F0A7730: +/* 0DC2A0 7F0A7730 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2A4 7F0A7734 00002025 */ move $a0, $zero +/* 0DC2A8 7F0A7738 2841000B */ slti $at, $v0, 0xb +/* 0DC2AC 7F0A773C 10200009 */ beqz $at, .Ljp7F0A7764 +/* 0DC2B0 7F0A7740 00000000 */ nop +/* 0DC2B4 7F0A7744 0C0030BA */ jal controller_7000C284 +/* 0DC2B8 7F0A7748 00002025 */ move $a0, $zero +/* 0DC2BC 7F0A774C 2841000B */ slti $at, $v0, 0xb +/* 0DC2C0 7F0A7750 14200004 */ bnez $at, .Ljp7F0A7764 +/* 0DC2C4 7F0A7754 240A0001 */ li $t2, 1 +/* 0DC2C8 7F0A7758 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC2CC 7F0A775C 1000000D */ b .Ljp7F0A7794 +/* 0DC2D0 7F0A7760 AC2A0B10 */ sw $t2, %lo(D_80040AE0)($at) +.Ljp7F0A7764: +/* 0DC2D4 7F0A7764 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2D8 7F0A7768 00002025 */ move $a0, $zero +/* 0DC2DC 7F0A776C 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC2E0 7F0A7770 14200008 */ bnez $at, .Ljp7F0A7794 +/* 0DC2E4 7F0A7774 00000000 */ nop +/* 0DC2E8 7F0A7778 0C0030BA */ jal controller_7000C284 +/* 0DC2EC 7F0A777C 00002025 */ move $a0, $zero +/* 0DC2F0 7F0A7780 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC2F4 7F0A7784 10200003 */ beqz $at, .Ljp7F0A7794 +/* 0DC2F8 7F0A7788 240B0001 */ li $t3, 1 +/* 0DC2FC 7F0A778C 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC300 7F0A7790 AC2B0B10 */ sw $t3, %lo(D_80040AE0)($at) +.Ljp7F0A7794: +/* 0DC304 7F0A7794 3C038004 */ lui $v1, %hi(D_80040AF8) # $v1, 0x8004 +/* 0DC308 7F0A7798 24630B28 */ addiu $v1, %lo(D_80040AF8) # addiu $v1, $v1, 0xb28 +/* 0DC30C 7F0A779C 8C620000 */ lw $v0, ($v1) +/* 0DC310 7F0A77A0 04410007 */ bgez $v0, .Ljp7F0A77C0 +/* 0DC314 7F0A77A4 244EFFFF */ addiu $t6, $v0, -1 +/* 0DC318 7F0A77A8 3C048004 */ lui $a0, %hi(D_80040AF4) # $a0, 0x8004 +/* 0DC31C 7F0A77AC 24840B24 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xb24 +/* 0DC320 7F0A77B0 8C8C0000 */ lw $t4, ($a0) +/* 0DC324 7F0A77B4 3C01FFF0 */ lui $at, 0xfff0 +/* 0DC328 7F0A77B8 01816821 */ addu $t5, $t4, $at +/* 0DC32C 7F0A77BC AC8D0000 */ sw $t5, ($a0) +.Ljp7F0A77C0: +/* 0DC330 7F0A77C0 3C048004 */ lui $a0, %hi(D_80040AF4) # $a0, 0x8004 +/* 0DC334 7F0A77C4 24840B24 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xb24 +/* 0DC338 7F0A77C8 8C8F0000 */ lw $t7, ($a0) +/* 0DC33C 7F0A77CC 3C01005F */ lui $at, (0x005F00A1 >> 16) # lui $at, 0x5f +/* 0DC340 7F0A77D0 342100A1 */ ori $at, (0x005F00A1 & 0xFFFF) # ori $at, $at, 0xa1 +/* 0DC344 7F0A77D4 01E1082B */ sltu $at, $t7, $at +/* 0DC348 7F0A77D8 10200006 */ beqz $at, .Ljp7F0A77F4 +/* 0DC34C 7F0A77DC AC6E0000 */ sw $t6, ($v1) +/* 0DC350 7F0A77E0 3C1800FF */ lui $t8, (0x00FF00A0 >> 16) # lui $t8, 0xff +/* 0DC354 7F0A77E4 371800A0 */ ori $t8, (0x00FF00A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DC358 7F0A77E8 2419000F */ li $t9, 15 +/* 0DC35C 7F0A77EC AC980000 */ sw $t8, ($a0) +/* 0DC360 7F0A77F0 AC790000 */ sw $t9, ($v1) +.Ljp7F0A77F4: +/* 0DC364 7F0A77F4 3C038004 */ lui $v1, %hi(D_80040B00) # $v1, 0x8004 +/* 0DC368 7F0A77F8 24630B30 */ addiu $v1, %lo(D_80040B00) # addiu $v1, $v1, 0xb30 +/* 0DC36C 7F0A77FC 8C620000 */ lw $v0, ($v1) +/* 0DC370 7F0A7800 3C048004 */ lui $a0, %hi(D_80040AFC) # $a0, 0x8004 +/* 0DC374 7F0A7804 24840B2C */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xb2c +/* 0DC378 7F0A7808 04410004 */ bgez $v0, .Ljp7F0A781C +/* 0DC37C 7F0A780C 240C00FF */ li $t4, 255 +/* 0DC380 7F0A7810 8C880000 */ lw $t0, ($a0) +/* 0DC384 7F0A7814 2509FFF0 */ addiu $t1, $t0, -0x10 +/* 0DC388 7F0A7818 AC890000 */ sw $t1, ($a0) +.Ljp7F0A781C: +/* 0DC38C 7F0A781C 3C048004 */ lui $a0, %hi(D_80040AFC) # $a0, 0x8004 +/* 0DC390 7F0A7820 24840B2C */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xb2c +/* 0DC394 7F0A7824 8C8B0000 */ lw $t3, ($a0) +/* 0DC398 7F0A7828 244AFFFF */ addiu $t2, $v0, -1 +/* 0DC39C 7F0A782C AC6A0000 */ sw $t2, ($v1) +/* 0DC3A0 7F0A7830 2D610060 */ sltiu $at, $t3, 0x60 +/* 0DC3A4 7F0A7834 10200003 */ beqz $at, .Ljp7F0A7844 +/* 0DC3A8 7F0A7838 240D000F */ li $t5, 15 +/* 0DC3AC 7F0A783C AC8C0000 */ sw $t4, ($a0) +/* 0DC3B0 7F0A7840 AC6D0000 */ sw $t5, ($v1) +.Ljp7F0A7844: +/* 0DC3B4 7F0A7844 3C018004 */ lui $at, %hi(D_80040B1C) # $at, 0x8004 +/* 0DC3B8 7F0A7848 C4240B4C */ lwc1 $f4, %lo(D_80040B1C)($at) +/* 0DC3BC 7F0A784C 3C018005 */ lui $at, %hi(0x800484D0) # $at, 0x8005 #JPHARDCODE FIXME +/* 0DC3C0 7F0A7850 C42684D0 */ lwc1 $f6, %lo(0x800484D0)($at) #JPHARDCODE FIXME +/* 0DC3C4 7F0A7854 3C018006 */ lui $at, %hi(D_800584C8) # $at, 0x8006 +/* 0DC3C8 7F0A7858 C42A8508 */ lwc1 $f10, %lo(D_800584C8)($at) +/* 0DC3CC 7F0A785C 46062202 */ mul.s $f8, $f4, $f6 +/* 0DC3D0 7F0A7860 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DC3D4 7F0A7864 44819000 */ mtc1 $at, $f18 +/* 0DC3D8 7F0A7868 3C028004 */ lui $v0, %hi(D_80040B14) # $v0, 0x8004 +/* 0DC3DC 7F0A786C 24420B44 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb44 +/* 0DC3E0 7F0A7870 C4460000 */ lwc1 $f6, ($v0) +/* 0DC3E4 7F0A7874 460A4402 */ mul.s $f16, $f8, $f10 +/* 0DC3E8 7F0A7878 46128103 */ div.s $f4, $f16, $f18 +/* 0DC3EC 7F0A787C 46043200 */ add.s $f8, $f6, $f4 +/* 0DC3F0 7F0A7880 E4480000 */ swc1 $f8, ($v0) +/* 0DC3F4 7F0A7884 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0DC3F8 7F0A7888 C44C0000 */ lwc1 $f12, ($v0) +/* 0DC3FC 7F0A788C 3C028004 */ lui $v0, %hi(D_80040B14) # $v0, 0x8004 +/* 0DC400 7F0A7890 24420B44 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb44 +/* 0DC404 7F0A7894 E4400000 */ swc1 $f0, ($v0) +/* 0DC408 7F0A7898 3C0E8004 */ lui $t6, %hi(D_80040B0C) # $t6, 0x8004 +/* 0DC40C 7F0A789C 8DCE0B3C */ lw $t6, %lo(D_80040B0C)($t6) +/* 0DC410 7F0A78A0 000E7C00 */ sll $t7, $t6, 0x10 +/* 0DC414 7F0A78A4 0C002918 */ jal get_random_value +/* 0DC418 7F0A78A8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DC41C 7F0A78AC 8FB8001C */ lw $t8, 0x1c($sp) +/* 0DC420 7F0A78B0 0302082B */ sltu $at, $t8, $v0 +/* 0DC424 7F0A78B4 10200003 */ beqz $at, .Ljp7F0A78C4 +/* 0DC428 7F0A78B8 00000000 */ nop +/* 0DC42C 7F0A78BC 0FC2975E */ jal sub_GAME_7F0A51D8 +/* 0DC430 7F0A78C0 00000000 */ nop +.Ljp7F0A78C4: +/* 0DC434 7F0A78C4 3C048004 */ lui $a0, %hi(D_80040B04) # $a0, 0x8004 +/* 0DC438 7F0A78C8 24840B34 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb34 +/* 0DC43C 7F0A78CC 8C830000 */ lw $v1, ($a0) +/* 0DC440 7F0A78D0 286100E0 */ slti $at, $v1, 0xe0 +/* 0DC444 7F0A78D4 5020000A */ beql $at, $zero, .Ljp7F0A7900 +/* 0DC448 7F0A78D8 286100E1 */ slti $at, $v1, 0xe1 +/* 0DC44C 7F0A78DC 0C002918 */ jal get_random_value +/* 0DC450 7F0A78E0 00000000 */ nop +/* 0DC454 7F0A78E4 3C048004 */ lui $a0, %hi(D_80040B04) # $a0, 0x8004 +/* 0DC458 7F0A78E8 24840B34 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb34 +/* 0DC45C 7F0A78EC 8C990000 */ lw $t9, ($a0) +/* 0DC460 7F0A78F0 00024782 */ srl $t0, $v0, 0x1e +/* 0DC464 7F0A78F4 03281821 */ addu $v1, $t9, $t0 +/* 0DC468 7F0A78F8 AC830000 */ sw $v1, ($a0) +/* 0DC46C 7F0A78FC 286100E1 */ slti $at, $v1, 0xe1 +.Ljp7F0A7900: +/* 0DC470 7F0A7900 14200003 */ bnez $at, .Ljp7F0A7910 +/* 0DC474 7F0A7904 24190156 */ li $t9, 342 +/* 0DC478 7F0A7908 240300E0 */ li $v1, 224 +/* 0DC47C 7F0A790C AC830000 */ sw $v1, ($a0) +.Ljp7F0A7910: +/* 0DC480 7F0A7910 00035823 */ negu $t3, $v1 +/* 0DC484 7F0A7914 000B6080 */ sll $t4, $t3, 2 +/* 0DC488 7F0A7918 3C048004 */ lui $a0, %hi(D_80040B40) # $a0, 0x8004 +/* 0DC48C 7F0A791C 258D0380 */ addiu $t5, $t4, 0x380 +/* 0DC490 7F0A7920 3C018004 */ lui $at, %hi(D_80040B08) # $at, 0x8004 +/* 0DC494 7F0A7924 24840B70 */ addiu $a0, %lo(D_80040B40) # addiu $a0, $a0, 0xb70 +/* 0DC498 7F0A7928 AC2D0B38 */ sw $t5, %lo(D_80040B08)($at) +/* 0DC49C 7F0A792C 8C8E0000 */ lw $t6, ($a0) +/* 0DC4A0 7F0A7930 25C2FFFC */ addiu $v0, $t6, -4 +/* 0DC4A4 7F0A7934 28410157 */ slti $at, $v0, 0x157 +/* 0DC4A8 7F0A7938 14200003 */ bnez $at, .Ljp7F0A7948 +/* 0DC4AC 7F0A793C AC820000 */ sw $v0, ($a0) +/* 0DC4B0 7F0A7940 2402FEAA */ li $v0, -342 +/* 0DC4B4 7F0A7944 AC820000 */ sw $v0, ($a0) +.Ljp7F0A7948: +/* 0DC4B8 7F0A7948 2841FEAA */ slti $at, $v0, -0x156 +/* 0DC4BC 7F0A794C 10200002 */ beqz $at, .Ljp7F0A7958 +/* 0DC4C0 7F0A7950 3C028004 */ lui $v0, %hi(D_80040B44) # $v0, 0x8004 +/* 0DC4C4 7F0A7954 AC990000 */ sw $t9, ($a0) +.Ljp7F0A7958: +/* 0DC4C8 7F0A7958 24420B74 */ addiu $v0, %lo(D_80040B44) # addiu $v0, $v0, 0xb74 +/* 0DC4CC 7F0A795C 84480000 */ lh $t0, ($v0) +/* 0DC4D0 7F0A7960 3C0C8004 */ lui $t4, %hi(watch_screen_index) # $t4, 0x8004 +/* 0DC4D4 7F0A7964 25090001 */ addiu $t1, $t0, 1 +/* 0DC4D8 7F0A7968 A4490000 */ sh $t1, ($v0) +/* 0DC4DC 7F0A796C 844A0000 */ lh $t2, ($v0) +/* 0DC4E0 7F0A7970 314B0001 */ andi $t3, $t2, 1 +/* 0DC4E4 7F0A7974 A44B0000 */ sh $t3, ($v0) +/* 0DC4E8 7F0A7978 8D8C09C4 */ lw $t4, %lo(watch_screen_index)($t4) +/* 0DC4EC 7F0A797C 2D810005 */ sltiu $at, $t4, 5 +/* 0DC4F0 7F0A7980 1020003B */ beqz $at, .Ljp7F0A7A70 +/* 0DC4F4 7F0A7984 000C6080 */ sll $t4, $t4, 2 +/* 0DC4F8 7F0A7988 3C018006 */ lui $at, %hi(jpt_800584CC) +/* 0DC4FC 7F0A798C 002C0821 */ addu $at, $at, $t4 +/* 0DC500 7F0A7990 8C2C850C */ lw $t4, %lo(jpt_800584CC)($at) +/* 0DC504 7F0A7994 01800008 */ jr $t4 +/* 0DC508 7F0A7998 00000000 */ nop +.Ljp7F0A6E04: +/* 0DC50C 7F0A799C 0FC29783 */ jal watch_screen0_navigation +/* 0DC510 7F0A79A0 00000000 */ nop +/* 0DC514 7F0A79A4 10000033 */ b .Ljp7F0A7A74 +/* 0DC518 7F0A79A8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6E14: +/* 0DC51C 7F0A79AC 3C028004 */ lui $v0, %hi(D_80040998) # $v0, 0x8004 +/* 0DC520 7F0A79B0 8C4209C8 */ lw $v0, %lo(D_80040998)($v0) +/* 0DC524 7F0A79B4 24010001 */ li $at, 1 +/* 0DC528 7F0A79B8 10400005 */ beqz $v0, .Ljp7F0A79D0 +/* 0DC52C 7F0A79BC 00000000 */ nop +/* 0DC530 7F0A79C0 10410007 */ beq $v0, $at, .Ljp7F0A79E0 +/* 0DC534 7F0A79C4 00000000 */ nop +/* 0DC538 7F0A79C8 10000007 */ b .Ljp7F0A79E8 +/* 0DC53C 7F0A79CC 00000000 */ nop +.Ljp7F0A79D0: +/* 0DC540 7F0A79D0 0FC29900 */ jal sub_GAME_7F0A5860 +/* 0DC544 7F0A79D4 00000000 */ nop +/* 0DC548 7F0A79D8 10000003 */ b .Ljp7F0A79E8 +/* 0DC54C 7F0A79DC 00000000 */ nop +.Ljp7F0A79E0: +/* 0DC550 7F0A79E0 0FC29928 */ jal sub_GAME_7F0A5900 +/* 0DC554 7F0A79E4 00000000 */ nop +.Ljp7F0A79E8: +/* 0DC558 7F0A79E8 0FC29859 */ jal watch_screen2_navigation +/* 0DC55C 7F0A79EC 00000000 */ nop +/* 0DC560 7F0A79F0 10000020 */ b .Ljp7F0A7A74 +/* 0DC564 7F0A79F4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6E60: +/* 0DC568 7F0A79F8 3C0D8004 */ lui $t5, %hi(D_8004099C) # $t5, 0x8004 +/* 0DC56C 7F0A79FC 8DAD09CC */ lw $t5, %lo(D_8004099C)($t5) +/* 0DC570 7F0A7A00 2DA1000A */ sltiu $at, $t5, 0xa +/* 0DC574 7F0A7A04 10200010 */ beqz $at, .Ljp7F0A7A48 +/* 0DC578 7F0A7A08 000D6880 */ sll $t5, $t5, 2 +/* 0DC57C 7F0A7A0C 3C018006 */ lui $at, %hi(jpt_800584E0) +/* 0DC580 7F0A7A10 002D0821 */ addu $at, $at, $t5 +/* 0DC584 7F0A7A14 8C2D8520 */ lw $t5, %lo(jpt_800584E0)($at) +/* 0DC588 7F0A7A18 01A00008 */ jr $t5 +/* 0DC58C 7F0A7A1C 00000000 */ nop +.Ljp7F0A6E88: +/* 0DC590 7F0A7A20 0FC29981 */ jal sub_GAME_7F0A5A64 +/* 0DC594 7F0A7A24 00000000 */ nop +/* 0DC598 7F0A7A28 10000007 */ b .Ljp7F0A7A48 +/* 0DC59C 7F0A7A2C 00000000 */ nop +.Ljp7F0A6E98: +/* 0DC5A0 7F0A7A30 0FC299A5 */ jal sub_GAME_7F0A5AF4 +/* 0DC5A4 7F0A7A34 00000000 */ nop +/* 0DC5A8 7F0A7A38 10000003 */ b .Ljp7F0A7A48 +/* 0DC5AC 7F0A7A3C 00000000 */ nop +.Ljp7F0A6EA8: +/* 0DC5B0 7F0A7A40 0FC2994E */ jal sub_GAME_7F0A5998 +/* 0DC5B4 7F0A7A44 00000000 */ nop +.Ljp7F0A7A48: +/* 0DC5B8 7F0A7A48 0FC29891 */ jal watch_screen3_navigation +/* 0DC5BC 7F0A7A4C 00000000 */ nop +/* 0DC5C0 7F0A7A50 10000008 */ b .Ljp7F0A7A74 +/* 0DC5C4 7F0A7A54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6EC0: +/* 0DC5C8 7F0A7A58 0FC298C9 */ jal watch_screen4_navigation +/* 0DC5CC 7F0A7A5C 00000000 */ nop +/* 0DC5D0 7F0A7A60 10000004 */ b .Ljp7F0A7A74 +/* 0DC5D4 7F0A7A64 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6ED0: +/* 0DC5D8 7F0A7A68 0FC297DE */ jal watch_screen1_navigation +/* 0DC5DC 7F0A7A6C 00000000 */ nop +.Ljp7F0A7A70: +/* 0DC5E0 7F0A7A70 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A7A74: +/* 0DC5E4 7F0A7A74 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DC5E8 7F0A7A78 03E00008 */ jr $ra +/* 0DC5EC 7F0A7A7C 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A6EE8(void) { + +} +#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 get_video2_settings_txtClipW +/* 0DBA78 7F0A6F48 AFA60048 */ sw $a2, 0x48($sp) +/* 0DBA7C 7F0A6F4C 0C00110B */ jal get_video2_settings_txtClipH +/* 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 +void sub_GAME_7F0A70AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A70AC +/* 0DBBDC 7F0A70AC 00001025 */ move $v0, $zero +/* 0DBBE0 7F0A70B0 00A01825 */ move $v1, $a1 +/* 0DBBE4 7F0A70B4 24070070 */ li $a3, 112 +/* 0DBBE8 7F0A70B8 24060020 */ li $a2, 32 +.L7F0A70BC: +/* 0DBBEC 7F0A70BC 24420001 */ addiu $v0, $v0, 1 +/* 0DBBF0 7F0A70C0 28410014 */ slti $at, $v0, 0x14 +/* 0DBBF4 7F0A70C4 24630010 */ addiu $v1, $v1, 0x10 +/* 0DBBF8 7F0A70C8 A066FFFC */ sb $a2, -4($v1) +/* 0DBBFC 7F0A70CC A067FFFD */ sb $a3, -3($v1) +/* 0DBC00 7F0A70D0 1420FFFA */ bnez $at, .L7F0A70BC +/* 0DBC04 7F0A70D4 A066FFFE */ sb $a2, -2($v1) +/* 0DBC08 7F0A70D8 00041880 */ sll $v1, $a0, 2 +/* 0DBC0C 7F0A70DC 24660003 */ addiu $a2, $v1, 3 +/* 0DBC10 7F0A70E0 00C3082A */ slt $at, $a2, $v1 +/* 0DBC14 7F0A70E4 14200017 */ bnez $at, .L7F0A7144 +/* 0DBC18 7F0A70E8 00037100 */ sll $t6, $v1, 4 +/* 0DBC1C 7F0A70EC 00067900 */ sll $t7, $a2, 4 +/* 0DBC20 7F0A70F0 01E52021 */ addu $a0, $t7, $a1 +/* 0DBC24 7F0A70F4 3C068004 */ lui $a2, %hi(watch_soundrelated_maybe) +/* 0DBC28 7F0A70F8 00AE1821 */ addu $v1, $a1, $t6 +/* 0DBC2C 7F0A70FC 240500F0 */ li $a1, 240 +/* 0DBC30 7F0A7100 24C609A8 */ addiu $a2, %lo(watch_soundrelated_maybe) # addiu $a2, $a2, 0x9a8 +/* 0DBC34 7F0A7104 240800A0 */ li $t0, 160 +/* 0DBC38 7F0A7108 24070030 */ li $a3, 48 +/* 0DBC3C 7F0A710C 24020050 */ li $v0, 80 +/* 0DBC40 7F0A7110 A062000C */ sb $v0, 0xc($v1) +.L7F0A7114: +/* 0DBC44 7F0A7114 A065000D */ sb $a1, 0xd($v1) +/* 0DBC48 7F0A7118 A062000E */ sb $v0, 0xe($v1) +/* 0DBC4C 7F0A711C 8CD80000 */ lw $t8, ($a2) +/* 0DBC50 7F0A7120 53000005 */ beql $t8, $zero, .L7F0A7138 +/* 0DBC54 7F0A7124 24630010 */ addiu $v1, $v1, 0x10 +/* 0DBC58 7F0A7128 A067000C */ sb $a3, 0xc($v1) +/* 0DBC5C 7F0A712C A068000D */ sb $t0, 0xd($v1) +/* 0DBC60 7F0A7130 A067000E */ sb $a3, 0xe($v1) +/* 0DBC64 7F0A7134 24630010 */ addiu $v1, $v1, 0x10 +.L7F0A7138: +/* 0DBC68 7F0A7138 0083082B */ sltu $at, $a0, $v1 +/* 0DBC6C 7F0A713C 5020FFF5 */ beql $at, $zero, .L7F0A7114 +/* 0DBC70 7F0A7140 A062000C */ sb $v0, 0xc($v1) +.L7F0A7144: +/* 0DBC74 7F0A7144 03E00008 */ jr $ra +/* 0DBC78 7F0A7148 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A714C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058508 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F0A714C +/* 0DBC7C 7F0A714C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0DBC80 7F0A7150 AFB00018 */ sw $s0, 0x18($sp) +/* 0DBC84 7F0A7154 00808025 */ move $s0, $a0 +/* 0DBC88 7F0A7158 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DBC8C 7F0A715C AFA50054 */ sw $a1, 0x54($sp) +/* 0DBC90 7F0A7160 AFA60058 */ sw $a2, 0x58($sp) +/* 0DBC94 7F0A7164 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBC98 7F0A7168 2404001E */ li $a0, 30 +/* 0DBC9C 7F0A716C AFA20048 */ sw $v0, 0x48($sp) +/* 0DBCA0 7F0A7170 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBCA4 7F0A7174 2404001E */ li $a0, 30 +/* 0DBCA8 7F0A7178 AFA20044 */ sw $v0, 0x44($sp) +/* 0DBCAC 7F0A717C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCB0 7F0A7180 240400F8 */ li $a0, 248 +/* 0DBCB4 7F0A7184 AFA20040 */ sw $v0, 0x40($sp) +/* 0DBCB8 7F0A7188 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCBC 7F0A718C 240400F8 */ li $a0, 248 +/* 0DBCC0 7F0A7190 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DBCC4 7F0A7194 02001825 */ move $v1, $s0 +/* 0DBCC8 7F0A7198 26100008 */ addiu $s0, $s0, 8 +/* 0DBCCC 7F0A719C 3C0EE700 */ lui $t6, 0xe700 +/* 0DBCD0 7F0A71A0 AC6E0000 */ sw $t6, ($v1) +/* 0DBCD4 7F0A71A4 02002025 */ move $a0, $s0 +/* 0DBCD8 7F0A71A8 AC600004 */ sw $zero, 4($v1) +/* 0DBCDC 7F0A71AC 26100008 */ addiu $s0, $s0, 8 +/* 0DBCE0 7F0A71B0 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0DBCE4 7F0A71B4 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0DBCE8 7F0A71B8 02002825 */ move $a1, $s0 +/* 0DBCEC 7F0A71BC AC8F0000 */ sw $t7, ($a0) +/* 0DBCF0 7F0A71C0 AC800004 */ sw $zero, 4($a0) +/* 0DBCF4 7F0A71C4 26100008 */ addiu $s0, $s0, 8 +/* 0DBCF8 7F0A71C8 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0DBCFC 7F0A71CC 3C190050 */ lui $t9, (0x005041C8 >> 16) # lui $t9, 0x50 +/* 0DBD00 7F0A71D0 373941C8 */ ori $t9, (0x005041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 +/* 0DBD04 7F0A71D4 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0DBD08 7F0A71D8 02003025 */ move $a2, $s0 +/* 0DBD0C 7F0A71DC ACB80000 */ sw $t8, ($a1) +/* 0DBD10 7F0A71E0 ACB90004 */ sw $t9, 4($a1) +/* 0DBD14 7F0A71E4 26100008 */ addiu $s0, $s0, 8 +/* 0DBD18 7F0A71E8 3C0AFCFF */ lui $t2, (0xFCFFFFFF >> 16) # lui $t2, 0xfcff +/* 0DBD1C 7F0A71EC 3C0BFFFE */ lui $t3, (0xFFFE793C >> 16) # lui $t3, 0xfffe +/* 0DBD20 7F0A71F0 356B793C */ ori $t3, (0xFFFE793C & 0xFFFF) # ori $t3, $t3, 0x793c +/* 0DBD24 7F0A71F4 354AFFFF */ ori $t2, (0xFCFFFFFF & 0xFFFF) # ori $t2, $t2, 0xffff +/* 0DBD28 7F0A71F8 02003825 */ move $a3, $s0 +/* 0DBD2C 7F0A71FC ACCA0000 */ sw $t2, ($a2) +/* 0DBD30 7F0A7200 ACCB0004 */ sw $t3, 4($a2) +/* 0DBD34 7F0A7204 3C0DE6E6 */ lui $t5, (0xE6E6E600 >> 16) # lui $t5, 0xe6e6 +/* 0DBD38 7F0A7208 35ADE600 */ ori $t5, (0xE6E6E600 & 0xFFFF) # ori $t5, $t5, 0xe600 +/* 0DBD3C 7F0A720C 26100008 */ addiu $s0, $s0, 8 +/* 0DBD40 7F0A7210 3C0CFA00 */ lui $t4, 0xfa00 +/* 0DBD44 7F0A7214 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0DBD48 7F0A7218 ACEC0000 */ sw $t4, ($a3) +/* 0DBD4C 7F0A721C ACED0004 */ sw $t5, 4($a3) +/* 0DBD50 7F0A7220 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0DBD54 7F0A7224 02001025 */ move $v0, $s0 +/* 0DBD58 7F0A7228 AC4E0000 */ sw $t6, ($v0) +/* 0DBD5C 7F0A722C 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DBD60 7F0A7230 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBD64 7F0A7234 44811000 */ mtc1 $at, $f2 +/* 0DBD68 7F0A7238 AC4F0004 */ sw $t7, 4($v0) +/* 0DBD6C 7F0A723C 26100008 */ addiu $s0, $s0, 8 +/* 0DBD70 7F0A7240 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DBD74 7F0A7244 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DBD78 7F0A7248 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBD7C 7F0A724C 44816000 */ mtc1 $at, $f12 +/* 0DBD80 7F0A7250 10400017 */ beqz $v0, .L7F0A72B0 +/* 0DBD84 7F0A7254 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0DBD88 7F0A7258 3C028008 */ lui $v0, %hi(pPlayer) +/* 0DBD8C 7F0A725C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0DBD90 7F0A7260 C44411CC */ lwc1 $f4, 0x11cc($v0) +/* 0DBD94 7F0A7264 C44611C8 */ lwc1 $f6, 0x11c8($v0) +/* 0DBD98 7F0A7268 C44A11BC */ lwc1 $f10, 0x11bc($v0) +/* 0DBD9C 7F0A726C C45211C0 */ lwc1 $f18, 0x11c0($v0) +/* 0DBDA0 7F0A7270 46062201 */ sub.s $f8, $f4, $f6 +/* 0DBDA4 7F0A7274 44802000 */ mtc1 $zero, $f4 +/* 0DBDA8 7F0A7278 46085402 */ mul.s $f16, $f10, $f8 +/* 0DBDAC 7F0A727C 46128083 */ div.s $f2, $f16, $f18 +/* 0DBDB0 7F0A7280 4604103C */ c.lt.s $f2, $f4 +/* 0DBDB4 7F0A7284 00000000 */ nop +/* 0DBDB8 7F0A7288 45020003 */ bc1fl .L7F0A7298 +/* 0DBDBC 7F0A728C 4602603C */ c.lt.s $f12, $f2 +/* 0DBDC0 7F0A7290 46001087 */ neg.s $f2, $f2 +/* 0DBDC4 7F0A7294 4602603C */ c.lt.s $f12, $f2 +.L7F0A7298: +/* 0DBDC8 7F0A7298 00000000 */ nop +/* 0DBDCC 7F0A729C 45000002 */ bc1f .L7F0A72A8 +/* 0DBDD0 7F0A72A0 00000000 */ nop +/* 0DBDD4 7F0A72A4 46006086 */ mov.s $f2, $f12 +.L7F0A72A8: +/* 0DBDD8 7F0A72A8 46021082 */ mul.s $f2, $f2, $f2 +/* 0DBDDC 7F0A72AC 00000000 */ nop +.L7F0A72B0: +/* 0DBDE0 7F0A72B0 8FB80058 */ lw $t8, 0x58($sp) +/* 0DBDE4 7F0A72B4 24010001 */ li $at, 1 +/* 0DBDE8 7F0A72B8 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DBDEC 7F0A72BC 17010010 */ bne $t8, $at, .L7F0A7300 +/* 0DBDF0 7F0A72C0 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DBDF4 7F0A72C4 3C018006 */ lui $at, %hi(D_80058508) +/* 0DBDF8 7F0A72C8 C4228508 */ lwc1 $f2, %lo(D_80058508)($at) +/* 0DBDFC 7F0A72CC 241900E0 */ li $t9, 224 +/* 0DBE00 7F0A72D0 AD190000 */ sw $t9, ($t0) +/* 0DBE04 7F0A72D4 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0DBE08 7F0A72D8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0DBE0C 7F0A72DC 24010004 */ li $at, 4 +/* 0DBE10 7F0A72E0 8D4201C8 */ lw $v0, 0x1c8($t2) +/* 0DBE14 7F0A72E4 10410003 */ beq $v0, $at, .L7F0A72F4 +/* 0DBE18 7F0A72E8 24010006 */ li $at, 6 +/* 0DBE1C 7F0A72EC 54410005 */ bnel $v0, $at, .L7F0A7304 +/* 0DBE20 7F0A72F0 3C013E80 */ lui $at, 0x3e80 +.L7F0A72F4: +/* 0DBE24 7F0A72F4 0FC1F9D0 */ jal sub_GAME_7F07E740 +/* 0DBE28 7F0A72F8 00000000 */ nop +/* 0DBE2C 7F0A72FC 46000086 */ mov.s $f2, $f0 +.L7F0A7300: +/* 0DBE30 7F0A7300 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F0A7304: +/* 0DBE34 7F0A7304 44810000 */ mtc1 $at, $f0 +/* 0DBE38 7F0A7308 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007B0A0) +/* 0DBE3C 7F0A730C 2484B0A0 */ addiu $a0, %lo(dword_CODE_bss_8007B0A0) # addiu $a0, $a0, -0x4f60 +/* 0DBE40 7F0A7310 44050000 */ mfc1 $a1, $f0 +/* 0DBE44 7F0A7314 44060000 */ mfc1 $a2, $f0 +/* 0DBE48 7F0A7318 44070000 */ mfc1 $a3, $f0 +/* 0DBE4C 7F0A731C 0C005BB9 */ jal guScale +/* 0DBE50 7F0A7320 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DBE54 7F0A7324 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0DBE58 7F0A7328 02001025 */ move $v0, $s0 +/* 0DBE5C 7F0A732C 3C0B0100 */ lui $t3, (0x01000040 >> 16) # lui $t3, 0x100 +/* 0DBE60 7F0A7330 3C0C8008 */ lui $t4, %hi(dword_CODE_bss_8007B0A0) +/* 0DBE64 7F0A7334 258CB0A0 */ addiu $t4, %lo(dword_CODE_bss_8007B0A0) # addiu $t4, $t4, -0x4f60 +/* 0DBE68 7F0A7338 356B0040 */ ori $t3, (0x01000040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0DBE6C 7F0A733C AC4B0000 */ sw $t3, ($v0) +/* 0DBE70 7F0A7340 AC4C0004 */ sw $t4, 4($v0) +/* 0DBE74 7F0A7344 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DBE78 7F0A7348 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBE7C 7F0A734C 44816000 */ mtc1 $at, $f12 +/* 0DBE80 7F0A7350 15A0001B */ bnez $t5, .L7F0A73C0 +/* 0DBE84 7F0A7354 26100008 */ addiu $s0, $s0, 8 +/* 0DBE88 7F0A7358 02001025 */ move $v0, $s0 +/* 0DBE8C 7F0A735C 26100008 */ addiu $s0, $s0, 8 +/* 0DBE90 7F0A7360 3C0EB600 */ lui $t6, 0xb600 +/* 0DBE94 7F0A7364 240F3000 */ li $t7, 12288 +/* 0DBE98 7F0A7368 AC4F0004 */ sw $t7, 4($v0) +/* 0DBE9C 7F0A736C AC4E0000 */ sw $t6, ($v0) +/* 0DBEA0 7F0A7370 02001825 */ move $v1, $s0 +/* 0DBEA4 7F0A7374 3C180600 */ lui $t8, 0x600 +/* 0DBEA8 7F0A7378 AC780000 */ sw $t8, ($v1) +/* 0DBEAC 7F0A737C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DBEB0 7F0A7380 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DBEB4 7F0A7384 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0DBEB8 7F0A7388 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0DBEBC 7F0A738C 26100008 */ addiu $s0, $s0, 8 +/* 0DBEC0 7F0A7390 03215021 */ addu $t2, $t9, $at +/* 0DBEC4 7F0A7394 AC6A0004 */ sw $t2, 4($v1) +/* 0DBEC8 7F0A7398 02002025 */ move $a0, $s0 +/* 0DBECC 7F0A739C 3C0B0600 */ lui $t3, 0x600 +/* 0DBED0 7F0A73A0 AC8B0000 */ sw $t3, ($a0) +/* 0DBED4 7F0A73A4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DBED8 7F0A73A8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DBEDC 7F0A73AC 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0DBEE0 7F0A73B0 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0DBEE4 7F0A73B4 01816821 */ addu $t5, $t4, $at +/* 0DBEE8 7F0A73B8 AC8D0004 */ sw $t5, 4($a0) +/* 0DBEEC 7F0A73BC 26100008 */ addiu $s0, $s0, 8 +.L7F0A73C0: +/* 0DBEF0 7F0A73C0 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007B0E0) +/* 0DBEF4 7F0A73C4 44056000 */ mfc1 $a1, $f12 +/* 0DBEF8 7F0A73C8 44066000 */ mfc1 $a2, $f12 +/* 0DBEFC 7F0A73CC 44071000 */ mfc1 $a3, $f2 +/* 0DBF00 7F0A73D0 0C005BB9 */ jal guScale +/* 0DBF04 7F0A73D4 2484B0E0 */ addiu $a0, %lo(dword_CODE_bss_8007B0E0) # addiu $a0, $a0, -0x4f20 +/* 0DBF08 7F0A73D8 02001025 */ move $v0, $s0 +/* 0DBF0C 7F0A73DC 3C0E0100 */ lui $t6, (0x01000040 >> 16) # lui $t6, 0x100 +/* 0DBF10 7F0A73E0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007B0E0) +/* 0DBF14 7F0A73E4 25EFB0E0 */ addiu $t7, %lo(dword_CODE_bss_8007B0E0) # addiu $t7, $t7, -0x4f20 +/* 0DBF18 7F0A73E8 35CE0040 */ ori $t6, (0x01000040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0DBF1C 7F0A73EC AC4E0000 */ sw $t6, ($v0) +/* 0DBF20 7F0A73F0 AC4F0004 */ sw $t7, 4($v0) +/* 0DBF24 7F0A73F4 8FB80058 */ lw $t8, 0x58($sp) +/* 0DBF28 7F0A73F8 24010001 */ li $at, 1 +/* 0DBF2C 7F0A73FC 26100008 */ addiu $s0, $s0, 8 +/* 0DBF30 7F0A7400 1701001B */ bne $t8, $at, .L7F0A7470 +/* 0DBF34 7F0A7404 2405001E */ li $a1, 30 +/* 0DBF38 7F0A7408 02001025 */ move $v0, $s0 +/* 0DBF3C 7F0A740C 26100008 */ addiu $s0, $s0, 8 +/* 0DBF40 7F0A7410 3C19B600 */ lui $t9, 0xb600 +/* 0DBF44 7F0A7414 240A3000 */ li $t2, 12288 +/* 0DBF48 7F0A7418 AC4A0004 */ sw $t2, 4($v0) +/* 0DBF4C 7F0A741C AC590000 */ sw $t9, ($v0) +/* 0DBF50 7F0A7420 02001825 */ move $v1, $s0 +/* 0DBF54 7F0A7424 3C0B0600 */ lui $t3, 0x600 +/* 0DBF58 7F0A7428 AC6B0000 */ sw $t3, ($v1) +/* 0DBF5C 7F0A742C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DBF60 7F0A7430 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DBF64 7F0A7434 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0DBF68 7F0A7438 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0DBF6C 7F0A743C 26100008 */ addiu $s0, $s0, 8 +/* 0DBF70 7F0A7440 01816821 */ addu $t5, $t4, $at +/* 0DBF74 7F0A7444 AC6D0004 */ sw $t5, 4($v1) +/* 0DBF78 7F0A7448 02002025 */ move $a0, $s0 +/* 0DBF7C 7F0A744C 3C0E0600 */ lui $t6, 0x600 +/* 0DBF80 7F0A7450 AC8E0000 */ sw $t6, ($a0) +/* 0DBF84 7F0A7454 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DBF88 7F0A7458 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DBF8C 7F0A745C 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0DBF90 7F0A7460 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0DBF94 7F0A7464 01E1C021 */ addu $t8, $t7, $at +/* 0DBF98 7F0A7468 AC980004 */ sw $t8, 4($a0) +/* 0DBF9C 7F0A746C 26100008 */ addiu $s0, $s0, 8 +.L7F0A7470: +/* 0DBFA0 7F0A7470 3C063F6B */ lui $a2, %hi(0x3F6B0004) # $a2, 0x3f6b +/* 0DBFA4 7F0A7474 34C6851F */ ori $a2, (0x3F6B851F & 0xFFFF) # ori $a2, $a2, 0x851f +/* 0DBFA8 7F0A7478 8FA40044 */ lw $a0, 0x44($sp) +/* 0DBFAC 7F0A747C 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DBFB0 7F0A7480 00003825 */ move $a3, $zero +/* 0DBFB4 7F0A7484 8FA50044 */ lw $a1, 0x44($sp) +/* 0DBFB8 7F0A7488 3C018000 */ lui $at, 0x8000 +/* 0DBFBC 7F0A748C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DBFC0 7F0A7490 2406001E */ li $a2, 30 +/* 0DBFC4 7F0A7494 00003825 */ move $a3, $zero +/* 0DBFC8 7F0A7498 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DBFCC 7F0A749C 00A12821 */ addu $a1, $a1, $at +/* 0DBFD0 7F0A74A0 02001825 */ move $v1, $s0 +/* 0DBFD4 7F0A74A4 26100008 */ addiu $s0, $s0, 8 +/* 0DBFD8 7F0A74A8 3C09E700 */ lui $t1, 0xe700 +/* 0DBFDC 7F0A74AC 02002025 */ move $a0, $s0 +/* 0DBFE0 7F0A74B0 AC690000 */ sw $t1, ($v1) +/* 0DBFE4 7F0A74B4 AC600004 */ sw $zero, 4($v1) +/* 0DBFE8 7F0A74B8 26100008 */ addiu $s0, $s0, 8 +/* 0DBFEC 7F0A74BC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DBFF0 7F0A74C0 3C0A0050 */ lui $t2, (0x00504240 >> 16) # lui $t2, 0x50 +/* 0DBFF4 7F0A74C4 354A4240 */ ori $t2, (0x00504240 & 0xFFFF) # ori $t2, $t2, 0x4240 +/* 0DBFF8 7F0A74C8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DBFFC 7F0A74CC 02002825 */ move $a1, $s0 +/* 0DC000 7F0A74D0 AC990000 */ sw $t9, ($a0) +/* 0DC004 7F0A74D4 AC8A0004 */ sw $t2, 4($a0) +/* 0DC008 7F0A74D8 26100008 */ addiu $s0, $s0, 8 +/* 0DC00C 7F0A74DC 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 0DC010 7F0A74E0 3C0CFFFD */ lui $t4, (0xFFFDF6FB >> 16) # lui $t4, 0xfffd +/* 0DC014 7F0A74E4 358CF6FB */ ori $t4, (0xFFFDF6FB & 0xFFFF) # ori $t4, $t4, 0xf6fb +/* 0DC018 7F0A74E8 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 0DC01C 7F0A74EC 02003025 */ move $a2, $s0 +/* 0DC020 7F0A74F0 ACAB0000 */ sw $t3, ($a1) +/* 0DC024 7F0A74F4 ACAC0004 */ sw $t4, 4($a1) +/* 0DC028 7F0A74F8 26100008 */ addiu $s0, $s0, 8 +/* 0DC02C 7F0A74FC 3C0DFA00 */ lui $t5, 0xfa00 +/* 0DC030 7F0A7500 3C0E00FF */ lui $t6, 0xff +/* 0DC034 7F0A7504 ACCE0004 */ sw $t6, %lo(0x3F6B0004)($a2) +/* 0DC038 7F0A7508 ACCD0000 */ sw $t5, ($a2) +/* 0DC03C 7F0A750C 02003825 */ move $a3, $s0 +/* 0DC040 7F0A7510 3C0F0600 */ lui $t7, 0x600 +/* 0DC044 7F0A7514 ACEF0000 */ sw $t7, ($a3) +/* 0DC048 7F0A7518 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DC04C 7F0A751C 3C018000 */ lui $at, 0x8000 +/* 0DC050 7F0A7520 26100008 */ addiu $s0, $s0, 8 +/* 0DC054 7F0A7524 0301C821 */ addu $t9, $t8, $at +/* 0DC058 7F0A7528 ACF90004 */ sw $t9, 4($a3) +/* 0DC05C 7F0A752C 02001025 */ move $v0, $s0 +/* 0DC060 7F0A7530 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC064 7F0A7534 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC068 7F0A7538 AC490000 */ sw $t1, ($v0) +/* 0DC06C 7F0A753C AC400004 */ sw $zero, 4($v0) +/* 0DC070 7F0A7540 8D0A0000 */ lw $t2, ($t0) +/* 0DC074 7F0A7544 26100008 */ addiu $s0, $s0, 8 +/* 0DC078 7F0A7548 8FA40048 */ lw $a0, 0x48($sp) +/* 0DC07C 7F0A754C 294100E0 */ slti $at, $t2, 0xe0 +/* 0DC080 7F0A7550 10200019 */ beqz $at, .L7F0A75B8 +/* 0DC084 7F0A7554 2405001E */ li $a1, 30 +/* 0DC088 7F0A7558 3C063F66 */ lui $a2, (0x3F666666 >> 16) # lui $a2, 0x3f66 +/* 0DC08C 7F0A755C 34C66666 */ ori $a2, (0x3F666666 & 0xFFFF) # ori $a2, $a2, 0x6666 +/* 0DC090 7F0A7560 8FA40048 */ lw $a0, 0x48($sp) +/* 0DC094 7F0A7564 2405001E */ li $a1, 30 +/* 0DC098 7F0A7568 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DC09C 7F0A756C 00003825 */ move $a3, $zero +/* 0DC0A0 7F0A7570 8FA50048 */ lw $a1, 0x48($sp) +/* 0DC0A4 7F0A7574 3C018000 */ lui $at, 0x8000 +/* 0DC0A8 7F0A7578 8FA40040 */ lw $a0, 0x40($sp) +/* 0DC0AC 7F0A757C 2406001E */ li $a2, 30 +/* 0DC0B0 7F0A7580 00003825 */ move $a3, $zero +/* 0DC0B4 7F0A7584 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DC0B8 7F0A7588 00A12821 */ addu $a1, $a1, $at +/* 0DC0BC 7F0A758C 02001825 */ move $v1, $s0 +/* 0DC0C0 7F0A7590 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0DC0C4 7F0A7594 3C0C0050 */ lui $t4, (0x0050004B >> 16) # lui $t4, 0x50 +/* 0DC0C8 7F0A7598 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC0CC 7F0A759C 358C004B */ ori $t4, (0x0050004B & 0xFFFF) # ori $t4, $t4, 0x4b +/* 0DC0D0 7F0A75A0 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0DC0D4 7F0A75A4 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC0D8 7F0A75A8 AC6B0000 */ sw $t3, ($v1) +/* 0DC0DC 7F0A75AC AC6C0004 */ sw $t4, 4($v1) +/* 0DC0E0 7F0A75B0 10000016 */ b .L7F0A760C +/* 0DC0E4 7F0A75B4 26100008 */ addiu $s0, $s0, 8 +.L7F0A75B8: +/* 0DC0E8 7F0A75B8 3C063F66 */ lui $a2, %hi(0x3F660004) # $a2, 0x3f66 +/* 0DC0EC 7F0A75BC 34C66666 */ ori $a2, (0x3F666666 & 0xFFFF) # ori $a2, $a2, 0x6666 +/* 0DC0F0 7F0A75C0 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DC0F4 7F0A75C4 24070001 */ li $a3, 1 +/* 0DC0F8 7F0A75C8 8FA50048 */ lw $a1, 0x48($sp) +/* 0DC0FC 7F0A75CC 3C018000 */ lui $at, 0x8000 +/* 0DC100 7F0A75D0 8FA40040 */ lw $a0, 0x40($sp) +/* 0DC104 7F0A75D4 2406001E */ li $a2, 30 +/* 0DC108 7F0A75D8 24070001 */ li $a3, 1 +/* 0DC10C 7F0A75DC 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DC110 7F0A75E0 00A12821 */ addu $a1, $a1, $at +/* 0DC114 7F0A75E4 02001825 */ move $v1, $s0 +/* 0DC118 7F0A75E8 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0DC11C 7F0A75EC 3C0E0050 */ lui $t6, (0x005041C8 >> 16) # lui $t6, 0x50 +/* 0DC120 7F0A75F0 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC124 7F0A75F4 35CE41C8 */ ori $t6, (0x005041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0DC128 7F0A75F8 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0DC12C 7F0A75FC 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC130 7F0A7600 AC6D0000 */ sw $t5, ($v1) +/* 0DC134 7F0A7604 AC6E0004 */ sw $t6, 4($v1) +/* 0DC138 7F0A7608 26100008 */ addiu $s0, $s0, 8 +.L7F0A760C: +/* 0DC13C 7F0A760C 02001025 */ move $v0, $s0 +/* 0DC140 7F0A7610 3C07FFFE */ lui $a3, (0xFFFE793C >> 16) # lui $a3, 0xfffe +/* 0DC144 7F0A7614 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 0DC148 7F0A7618 34E7793C */ ori $a3, (0xFFFE793C & 0xFFFF) # ori $a3, $a3, 0x793c +/* 0DC14C 7F0A761C 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 0DC150 7F0A7620 26100008 */ addiu $s0, $s0, 8 +/* 0DC154 7F0A7624 AC4F0000 */ sw $t7, ($v0) +/* 0DC158 7F0A7628 AC470004 */ sw $a3, 4($v0) +/* 0DC15C 7F0A762C 02001825 */ move $v1, $s0 +/* 0DC160 7F0A7630 3C180600 */ lui $t8, 0x600 +/* 0DC164 7F0A7634 AC780000 */ sw $t8, ($v1) +/* 0DC168 7F0A7638 8FB90040 */ lw $t9, 0x40($sp) +/* 0DC16C 7F0A763C 26100008 */ addiu $s0, $s0, 8 +/* 0DC170 7F0A7640 3C018000 */ lui $at, (0x80002858 >> 16) +/* 0DC174 7F0A7644 02002025 */ move $a0, $s0 +/* 0DC178 7F0A7648 03215021 */ addu $t2, $t9, $at +/* 0DC17C 7F0A764C AC6A0004 */ sw $t2, 4($v1) +/* 0DC180 7F0A7650 26100008 */ addiu $s0, $s0, 8 +/* 0DC184 7F0A7654 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0DC188 7F0A7658 3C0C0050 */ lui $t4, (0x00504240 >> 16) # lui $t4, 0x50 +/* 0DC18C 7F0A765C 358C4240 */ ori $t4, (0x00504240 & 0xFFFF) # ori $t4, $t4, 0x4240 +/* 0DC190 7F0A7660 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0DC194 7F0A7664 02002825 */ move $a1, $s0 +/* 0DC198 7F0A7668 AC8B0000 */ sw $t3, ($a0) +/* 0DC19C 7F0A766C AC8C0004 */ sw $t4, 4($a0) +/* 0DC1A0 7F0A7670 ACAF0000 */ sw $t7, ($a1) +/* 0DC1A4 7F0A7674 26100008 */ addiu $s0, $s0, 8 +/* 0DC1A8 7F0A7678 ACA70004 */ sw $a3, 4($a1) +/* 0DC1AC 7F0A767C 02003025 */ move $a2, $s0 +/* 0DC1B0 7F0A7680 3C0E0600 */ lui $t6, 0x600 +/* 0DC1B4 7F0A7684 ACCE0000 */ sw $t6, ($a2) +/* 0DC1B8 7F0A7688 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DC1BC 7F0A768C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DC1C0 7F0A7690 34212858 */ ori $at, (0x80002858 & 0xFFFF) # ori $at, $at, 0x2858 +/* 0DC1C4 7F0A7694 26100008 */ addiu $s0, $s0, 8 +/* 0DC1C8 7F0A7698 01E1C021 */ addu $t8, $t7, $at +/* 0DC1CC 7F0A769C ACD80004 */ sw $t8, %lo(0x3F660004)($a2) +/* 0DC1D0 7F0A76A0 8D190000 */ lw $t9, ($t0) +/* 0DC1D4 7F0A76A4 8FA70048 */ lw $a3, 0x48($sp) +/* 0DC1D8 7F0A76A8 2405001E */ li $a1, 30 +/* 0DC1DC 7F0A76AC 24040002 */ li $a0, 2 +/* 0DC1E0 7F0A76B0 A0F9000F */ sb $t9, 0xf($a3) +/* 0DC1E4 7F0A76B4 8FA60044 */ lw $a2, 0x44($sp) +/* 0DC1E8 7F0A76B8 8D0A0000 */ lw $t2, ($t0) +/* 0DC1EC 7F0A76BC 24E20020 */ addiu $v0, $a3, 0x20 +/* 0DC1F0 7F0A76C0 A0CA000F */ sb $t2, 0xf($a2) +/* 0DC1F4 7F0A76C4 8D0B0000 */ lw $t3, ($t0) +/* 0DC1F8 7F0A76C8 A0EB001F */ sb $t3, 0x1f($a3) +/* 0DC1FC 7F0A76CC 8D0C0000 */ lw $t4, ($t0) +/* 0DC200 7F0A76D0 A0CC001F */ sb $t4, 0x1f($a2) +/* 0DC204 7F0A76D4 8FA30044 */ lw $v1, 0x44($sp) +/* 0DC208 7F0A76D8 24630020 */ addiu $v1, $v1, 0x20 +.L7F0A76DC: +/* 0DC20C 7F0A76DC 8D0D0000 */ lw $t5, ($t0) +/* 0DC210 7F0A76E0 24840004 */ addiu $a0, $a0, 4 +/* 0DC214 7F0A76E4 24420040 */ addiu $v0, $v0, 0x40 +/* 0DC218 7F0A76E8 A04DFFCF */ sb $t5, -0x31($v0) +/* 0DC21C 7F0A76EC 8D0E0000 */ lw $t6, ($t0) +/* 0DC220 7F0A76F0 24630040 */ addiu $v1, $v1, 0x40 +/* 0DC224 7F0A76F4 A06EFFCF */ sb $t6, -0x31($v1) +/* 0DC228 7F0A76F8 8D0F0000 */ lw $t7, ($t0) +/* 0DC22C 7F0A76FC A04FFFDF */ sb $t7, -0x21($v0) +/* 0DC230 7F0A7700 8D180000 */ lw $t8, ($t0) +/* 0DC234 7F0A7704 A078FFDF */ sb $t8, -0x21($v1) +/* 0DC238 7F0A7708 8D190000 */ lw $t9, ($t0) +/* 0DC23C 7F0A770C A059FFEF */ sb $t9, -0x11($v0) +/* 0DC240 7F0A7710 8D0A0000 */ lw $t2, ($t0) +/* 0DC244 7F0A7714 A06AFFEF */ sb $t2, -0x11($v1) +/* 0DC248 7F0A7718 8D0B0000 */ lw $t3, ($t0) +/* 0DC24C 7F0A771C A04BFFFF */ sb $t3, -1($v0) +/* 0DC250 7F0A7720 8D0C0000 */ lw $t4, ($t0) +/* 0DC254 7F0A7724 1485FFED */ bne $a0, $a1, .L7F0A76DC +/* 0DC258 7F0A7728 A06CFFFF */ sb $t4, -1($v1) +/* 0DC25C 7F0A772C 8D0D0000 */ lw $t5, ($t0) +/* 0DC260 7F0A7730 3C048008 */ lui $a0, %hi(pPlayer) +/* 0DC264 7F0A7734 29A100E0 */ slti $at, $t5, 0xe0 +/* 0DC268 7F0A7738 50200017 */ beql $at, $zero, .L7F0A7798 +/* 0DC26C 7F0A773C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DC270 7F0A7740 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0DC274 7F0A7744 0FC29A36 */ jal sub_GAME_7F0A68D8 +/* 0DC278 7F0A7748 248419B8 */ addiu $a0, $a0, 0x19b8 +/* 0DC27C 7F0A774C 02001025 */ move $v0, $s0 +/* 0DC280 7F0A7750 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0DC284 7F0A7754 3C0F0050 */ lui $t7, (0x005041C8 >> 16) # lui $t7, 0x50 +/* 0DC288 7F0A7758 35EF41C8 */ ori $t7, (0x005041C8 & 0xFFFF) # ori $t7, $t7, 0x41c8 +/* 0DC28C 7F0A775C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0DC290 7F0A7760 26100008 */ addiu $s0, $s0, 8 +/* 0DC294 7F0A7764 AC4E0000 */ sw $t6, ($v0) +/* 0DC298 7F0A7768 AC4F0004 */ sw $t7, 4($v0) +/* 0DC29C 7F0A776C 02001825 */ move $v1, $s0 +/* 0DC2A0 7F0A7770 3C180600 */ lui $t8, 0x600 +/* 0DC2A4 7F0A7774 AC780000 */ sw $t8, ($v1) +/* 0DC2A8 7F0A7778 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DC2AC 7F0A777C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DC2B0 7F0A7780 3C018000 */ lui $at, (0x80002998 >> 16) +/* 0DC2B4 7F0A7784 34212998 */ ori $at, (0x80002998 & 0xFFFF) # ori $at, $at, 0x2998 +/* 0DC2B8 7F0A7788 03215021 */ addu $t2, $t9, $at +/* 0DC2BC 7F0A778C AC6A0004 */ sw $t2, 4($v1) +/* 0DC2C0 7F0A7790 26100008 */ addiu $s0, $s0, 8 +/* 0DC2C4 7F0A7794 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0A7798: +/* 0DC2C8 7F0A7798 02001025 */ move $v0, $s0 +/* 0DC2CC 7F0A779C 8FB00018 */ lw $s0, 0x18($sp) +/* 0DC2D0 7F0A77A0 03E00008 */ jr $ra +/* 0DC2D4 7F0A77A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +void sub_GAME_7F0A77A8(u32 param_1,u32 param_2) +{ + sub_GAME_7F0A714C(param_1,param_2,1); +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0A77C8(s32 arg0) +{ + ?32 sp7C; + s32 sp78; + s32 sp74; + s32 sp70; + s32 sp6C; + s32 sp68; + s32 sp64; + s32 sp60; + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_v1; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + s32 phi_s0; + + sp5C = (s32) ptrFirstFontTableSmall; + sp58 = (s32) ptrSecondFontTableSmall; + sp54 = get_textptr_for_textID(0xac24); + sp50 = get_textptr_for_textID(0xac25); + sp4C = get_textptr_for_textID(0xac26); + sp7C = 0x51; + if (j_text_trigger != 0) + { + phi_v0 = 0xf; + } + else + { + phi_v0 = 0; + } + sp78 = (s32) (phi_v0 + 0xbd); + if (j_text_trigger != 0) + { + phi_v0_2 = 0xa; + } + else + { + phi_v0_2 = 0; + } + sp74 = (s32) (phi_v0_2 + 0x88); + if (j_text_trigger != 0) + { + phi_v0_3 = 3; + } + else + { + phi_v0_3 = 0; + } + temp_v1 = phi_v0_3 + 0x4c; + sp6C = temp_v1; + sp70 = temp_v1; + sp68 = temp_v1; + if (watch_soundrelated_maybe != 0) + { + if (D_800409A4 == 0) + { + if ((get_cur_controller_horz_stick_pos(0) >= 0x2e) || (get_controller_buttons_held(0, 0x111) != 0)) + { + D_800409A4 = 1; + } + else + { + + } + } + else + { + if (D_800409A4 != 0) + { + if ((get_cur_controller_horz_stick_pos(0) < -0x2d) || (get_controller_buttons_held(0, 0x222) != 0)) + { + D_800409A4 = 0; + } + else + { + + } + } + } + } + if (watch_soundrelated_maybe != 0) + { + sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); + en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0xa0ffa0f0, sp64, sp60, 0, 0); + if (D_800409A4 != 0) + { + jp_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + en_text_write_stuff(temp_s0_2, &sp74, &sp68, sp4C, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + else + { + if (D_800409A4 == 0) + { + en_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + jp_text_write_stuff(temp_s0_3, &sp74, &sp68, sp4C, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + } + } + else + { + sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); + en_text_write_stuff(en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0x800080, sp64, sp60, 0, 0), &sp78, &sp6C, sp50, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + en_text_write_stuff(temp_s0_4, &sp74, &sp68, sp4C, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A77C8 +/* 0DC2F8 7F0A77C8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0DC2FC 7F0A77CC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DC300 7F0A77D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DC304 7F0A77D4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DC308 7F0A77D8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DC30C 7F0A77DC AFB00038 */ sw $s0, 0x38($sp) +/* 0DC310 7F0A77E0 00808025 */ move $s0, $a0 +/* 0DC314 7F0A77E4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DC318 7F0A77E8 3404AC24 */ li $a0, 44068 +/* 0DC31C 7F0A77EC AFAE005C */ sw $t6, 0x5c($sp) +/* 0DC320 7F0A77F0 0FC30776 */ jal get_textptr_for_textID +/* 0DC324 7F0A77F4 AFAF0058 */ sw $t7, 0x58($sp) +/* 0DC328 7F0A77F8 AFA20054 */ sw $v0, 0x54($sp) +/* 0DC32C 7F0A77FC 0FC30776 */ jal get_textptr_for_textID +/* 0DC330 7F0A7800 3404AC25 */ li $a0, 44069 +/* 0DC334 7F0A7804 AFA20050 */ sw $v0, 0x50($sp) +/* 0DC338 7F0A7808 0FC30776 */ jal get_textptr_for_textID +/* 0DC33C 7F0A780C 3404AC26 */ li $a0, 44070 +/* 0DC340 7F0A7810 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DC344 7F0A7814 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DC348 7F0A7818 24180051 */ li $t8, 81 +/* 0DC34C 7F0A781C AFA2004C */ sw $v0, 0x4c($sp) +/* 0DC350 7F0A7820 10600003 */ beqz $v1, .L7F0A7830 +/* 0DC354 7F0A7824 AFB8007C */ sw $t8, 0x7c($sp) +/* 0DC358 7F0A7828 10000002 */ b .L7F0A7834 +/* 0DC35C 7F0A782C 2402000F */ li $v0, 15 +.L7F0A7830: +/* 0DC360 7F0A7830 00001025 */ move $v0, $zero +.L7F0A7834: +/* 0DC364 7F0A7834 245900BD */ addiu $t9, $v0, 0xbd +/* 0DC368 7F0A7838 10600003 */ beqz $v1, .L7F0A7848 +/* 0DC36C 7F0A783C AFB90078 */ sw $t9, 0x78($sp) +/* 0DC370 7F0A7840 10000002 */ b .L7F0A784C +/* 0DC374 7F0A7844 2402000A */ li $v0, 10 +.L7F0A7848: +/* 0DC378 7F0A7848 00001025 */ move $v0, $zero +.L7F0A784C: +/* 0DC37C 7F0A784C 24480088 */ addiu $t0, $v0, 0x88 +/* 0DC380 7F0A7850 10600003 */ beqz $v1, .L7F0A7860 +/* 0DC384 7F0A7854 AFA80074 */ sw $t0, 0x74($sp) +/* 0DC388 7F0A7858 10000002 */ b .L7F0A7864 +/* 0DC38C 7F0A785C 24020003 */ li $v0, 3 +.L7F0A7860: +/* 0DC390 7F0A7860 00001025 */ move $v0, $zero +.L7F0A7864: +/* 0DC394 7F0A7864 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0DC398 7F0A7868 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0DC39C 7F0A786C 2443004C */ addiu $v1, $v0, 0x4c +/* 0DC3A0 7F0A7870 AFA3006C */ sw $v1, 0x6c($sp) +/* 0DC3A4 7F0A7874 AFA30070 */ sw $v1, 0x70($sp) +/* 0DC3A8 7F0A7878 1120001D */ beqz $t1, .L7F0A78F0 +/* 0DC3AC 7F0A787C AFA30068 */ sw $v1, 0x68($sp) +/* 0DC3B0 7F0A7880 3C038004 */ lui $v1, %hi(D_800409A4) +/* 0DC3B4 7F0A7884 8C6309A4 */ lw $v1, %lo(D_800409A4)($v1) +/* 0DC3B8 7F0A7888 1460000D */ bnez $v1, .L7F0A78C0 +/* 0DC3BC 7F0A788C 00000000 */ nop +/* 0DC3C0 7F0A7890 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3C4 7F0A7894 00002025 */ move $a0, $zero +/* 0DC3C8 7F0A7898 2841002E */ slti $at, $v0, 0x2e +/* 0DC3CC 7F0A789C 10200004 */ beqz $at, .L7F0A78B0 +/* 0DC3D0 7F0A78A0 00002025 */ move $a0, $zero +/* 0DC3D4 7F0A78A4 0C0030C3 */ jal get_controller_buttons_held +/* 0DC3D8 7F0A78A8 24050111 */ li $a1, 273 +/* 0DC3DC 7F0A78AC 10400010 */ beqz $v0, .L7F0A78F0 +.L7F0A78B0: +/* 0DC3E0 7F0A78B0 240A0001 */ li $t2, 1 +/* 0DC3E4 7F0A78B4 3C018004 */ lui $at, %hi(D_800409A4) +/* 0DC3E8 7F0A78B8 1000000D */ b .L7F0A78F0 +/* 0DC3EC 7F0A78BC AC2A09A4 */ sw $t2, %lo(D_800409A4)($at) +.L7F0A78C0: +/* 0DC3F0 7F0A78C0 1060000B */ beqz $v1, .L7F0A78F0 +/* 0DC3F4 7F0A78C4 00000000 */ nop +/* 0DC3F8 7F0A78C8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3FC 7F0A78CC 00002025 */ move $a0, $zero +/* 0DC400 7F0A78D0 2841FFD3 */ slti $at, $v0, -0x2d +/* 0DC404 7F0A78D4 14200004 */ bnez $at, .L7F0A78E8 +/* 0DC408 7F0A78D8 00002025 */ move $a0, $zero +/* 0DC40C 7F0A78DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DC410 7F0A78E0 24050222 */ li $a1, 546 +/* 0DC414 7F0A78E4 10400002 */ beqz $v0, .L7F0A78F0 +.L7F0A78E8: +/* 0DC418 7F0A78E8 3C018004 */ lui $at, %hi(D_800409A4) +/* 0DC41C 7F0A78EC AC2009A4 */ sw $zero, %lo(D_800409A4)($at) +.L7F0A78F0: +/* 0DC420 7F0A78F0 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0DC424 7F0A78F4 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0DC428 7F0A78F8 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DC42C 7F0A78FC 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC430 7F0A7900 1160007E */ beqz $t3, .L7F0A7AFC +/* 0DC434 7F0A7904 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC438 7F0A7908 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC43C 7F0A790C 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DC440 7F0A7910 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC444 7F0A7914 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC448 7F0A7918 8FA70058 */ lw $a3, 0x58($sp) +/* 0DC44C 7F0A791C AFA00014 */ sw $zero, 0x14($sp) +/* 0DC450 7F0A7920 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC454 7F0A7924 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DC458 7F0A7928 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC45C 7F0A792C 8FAE005C */ lw $t6, 0x5c($sp) +/* 0DC460 7F0A7930 8FB80064 */ lw $t8, 0x64($sp) +/* 0DC464 7F0A7934 8FB90060 */ lw $t9, 0x60($sp) +/* 0DC468 7F0A7938 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0DC46C 7F0A793C 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0DC470 7F0A7940 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DC474 7F0A7944 02002025 */ move $a0, $s0 +/* 0DC478 7F0A7948 27A5007C */ addiu $a1, $sp, 0x7c +/* 0DC47C 7F0A794C 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DC480 7F0A7950 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC484 7F0A7954 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC488 7F0A7958 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC48C 7F0A795C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DC490 7F0A7960 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DC494 7F0A7964 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DC498 7F0A7968 0FC2B6AF */ jal en_text_write_stuff +/* 0DC49C 7F0A796C AFB90020 */ sw $t9, 0x20($sp) +/* 0DC4A0 7F0A7970 3C038004 */ lui $v1, %hi(D_800409A4) +/* 0DC4A4 7F0A7974 8C6309A4 */ lw $v1, %lo(D_800409A4)($v1) +/* 0DC4A8 7F0A7978 00408025 */ move $s0, $v0 +/* 0DC4AC 7F0A797C 1060002F */ beqz $v1, .L7F0A7A3C +/* 0DC4B0 7F0A7980 00000000 */ nop +/* 0DC4B4 7F0A7984 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC4B8 7F0A7988 00000000 */ nop +/* 0DC4BC 7F0A798C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC4C0 7F0A7990 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC4C4 7F0A7994 8FA80058 */ lw $t0, 0x58($sp) +/* 0DC4C8 7F0A7998 8FA9005C */ lw $t1, 0x5c($sp) +/* 0DC4CC 7F0A799C 87AC0044 */ lh $t4, 0x44($sp) +/* 0DC4D0 7F0A79A0 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DC4D4 7F0A79A4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DC4D8 7F0A79A8 240AFFFF */ li $t2, -1 +/* 0DC4DC 7F0A79AC AFAA0018 */ sw $t2, 0x18($sp) +/* 0DC4E0 7F0A79B0 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DC4E4 7F0A79B4 02002025 */ move $a0, $s0 +/* 0DC4E8 7F0A79B8 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC4EC 7F0A79BC 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC4F0 7F0A79C0 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC4F4 7F0A79C4 AFA20024 */ sw $v0, 0x24($sp) +/* 0DC4F8 7F0A79C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC4FC 7F0A79CC AFA0002C */ sw $zero, 0x2c($sp) +/* 0DC500 7F0A79D0 AFA80010 */ sw $t0, 0x10($sp) +/* 0DC504 7F0A79D4 AFA90014 */ sw $t1, 0x14($sp) +/* 0DC508 7F0A79D8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DC50C 7F0A79DC AFAC0020 */ sw $t4, 0x20($sp) +/* 0DC510 7F0A79E0 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC514 7F0A79E4 00408025 */ move $s0, $v0 +/* 0DC518 7F0A79E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC51C 7F0A79EC A7A20044 */ sh $v0, 0x44($sp) +/* 0DC520 7F0A79F0 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC524 7F0A79F4 8FAE005C */ lw $t6, 0x5c($sp) +/* 0DC528 7F0A79F8 87B80044 */ lh $t8, 0x44($sp) +/* 0DC52C 7F0A79FC 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0DC530 7F0A7A00 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DC534 7F0A7A04 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DC538 7F0A7A08 02002025 */ move $a0, $s0 +/* 0DC53C 7F0A7A0C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC540 7F0A7A10 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC544 7F0A7A14 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC548 7F0A7A18 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC54C 7F0A7A1C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC550 7F0A7A20 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC554 7F0A7A24 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DC558 7F0A7A28 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DC55C 7F0A7A2C 0FC2B6AF */ jal en_text_write_stuff +/* 0DC560 7F0A7A30 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DC564 7F0A7A34 10000073 */ b .L7F0A7C04 +/* 0DC568 7F0A7A38 00408025 */ move $s0, $v0 +.L7F0A7A3C: +/* 0DC56C 7F0A7A3C 54600072 */ bnezl $v1, .L7F0A7C08 +/* 0DC570 7F0A7A40 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DC574 7F0A7A44 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC578 7F0A7A48 00000000 */ nop +/* 0DC57C 7F0A7A4C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC580 7F0A7A50 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC584 7F0A7A54 8FB90058 */ lw $t9, 0x58($sp) +/* 0DC588 7F0A7A58 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC58C 7F0A7A5C 87AA0044 */ lh $t2, 0x44($sp) +/* 0DC590 7F0A7A60 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0DC594 7F0A7A64 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DC598 7F0A7A68 AFA90018 */ sw $t1, 0x18($sp) +/* 0DC59C 7F0A7A6C 02002025 */ move $a0, $s0 +/* 0DC5A0 7F0A7A70 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC5A4 7F0A7A74 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC5A8 7F0A7A78 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC5AC 7F0A7A7C AFA20020 */ sw $v0, 0x20($sp) +/* 0DC5B0 7F0A7A80 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC5B4 7F0A7A84 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC5B8 7F0A7A88 AFB90010 */ sw $t9, 0x10($sp) +/* 0DC5BC 7F0A7A8C AFA80014 */ sw $t0, 0x14($sp) +/* 0DC5C0 7F0A7A90 0FC2B6AF */ jal en_text_write_stuff +/* 0DC5C4 7F0A7A94 AFAA001C */ sw $t2, 0x1c($sp) +/* 0DC5C8 7F0A7A98 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC5CC 7F0A7A9C 00408025 */ move $s0, $v0 +/* 0DC5D0 7F0A7AA0 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC5D4 7F0A7AA4 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC5D8 7F0A7AA8 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DC5DC 7F0A7AAC 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC5E0 7F0A7AB0 87AF0044 */ lh $t7, 0x44($sp) +/* 0DC5E4 7F0A7AB4 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DC5E8 7F0A7AB8 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DC5EC 7F0A7ABC 240DFFFF */ li $t5, -1 +/* 0DC5F0 7F0A7AC0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DC5F4 7F0A7AC4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DC5F8 7F0A7AC8 02002025 */ move $a0, $s0 +/* 0DC5FC 7F0A7ACC 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC600 7F0A7AD0 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC604 7F0A7AD4 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC608 7F0A7AD8 AFA20024 */ sw $v0, 0x24($sp) +/* 0DC60C 7F0A7ADC AFA00028 */ sw $zero, 0x28($sp) +/* 0DC610 7F0A7AE0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0DC614 7F0A7AE4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DC618 7F0A7AE8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DC61C 7F0A7AEC 0FC2B9BB */ jal jp_text_write_stuff +/* 0DC620 7F0A7AF0 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DC624 7F0A7AF4 10000043 */ b .L7F0A7C04 +/* 0DC628 7F0A7AF8 00408025 */ move $s0, $v0 +.L7F0A7AFC: +/* 0DC62C 7F0A7AFC 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DC630 7F0A7B00 8FA70058 */ lw $a3, 0x58($sp) +/* 0DC634 7F0A7B04 AFA00014 */ sw $zero, 0x14($sp) +/* 0DC638 7F0A7B08 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC63C 7F0A7B0C AFB80010 */ sw $t8, 0x10($sp) +/* 0DC640 7F0A7B10 8FB90058 */ lw $t9, 0x58($sp) +/* 0DC644 7F0A7B14 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC648 7F0A7B18 8FAA0064 */ lw $t2, 0x64($sp) +/* 0DC64C 7F0A7B1C 8FAB0060 */ lw $t3, 0x60($sp) +/* 0DC650 7F0A7B20 3C090080 */ lui $t1, (0x00800080 >> 16) # lui $t1, 0x80 +/* 0DC654 7F0A7B24 35290080 */ ori $t1, (0x00800080 & 0xFFFF) # ori $t1, $t1, 0x80 +/* 0DC658 7F0A7B28 AFA90018 */ sw $t1, 0x18($sp) +/* 0DC65C 7F0A7B2C 02002025 */ move $a0, $s0 +/* 0DC660 7F0A7B30 27A5007C */ addiu $a1, $sp, 0x7c +/* 0DC664 7F0A7B34 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DC668 7F0A7B38 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC66C 7F0A7B3C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC670 7F0A7B40 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC674 7F0A7B44 AFB90010 */ sw $t9, 0x10($sp) +/* 0DC678 7F0A7B48 AFA80014 */ sw $t0, 0x14($sp) +/* 0DC67C 7F0A7B4C AFAA001C */ sw $t2, 0x1c($sp) +/* 0DC680 7F0A7B50 0FC2B6AF */ jal en_text_write_stuff +/* 0DC684 7F0A7B54 AFAB0020 */ sw $t3, 0x20($sp) +/* 0DC688 7F0A7B58 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC68C 7F0A7B5C 00408025 */ move $s0, $v0 +/* 0DC690 7F0A7B60 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC694 7F0A7B64 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC698 7F0A7B68 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DC69C 7F0A7B6C 8FAD005C */ lw $t5, 0x5c($sp) +/* 0DC6A0 7F0A7B70 87AF0044 */ lh $t7, 0x44($sp) +/* 0DC6A4 7F0A7B74 3C0E0080 */ lui $t6, (0x00800080 >> 16) # lui $t6, 0x80 +/* 0DC6A8 7F0A7B78 35CE0080 */ ori $t6, (0x00800080 & 0xFFFF) # ori $t6, $t6, 0x80 +/* 0DC6AC 7F0A7B7C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DC6B0 7F0A7B80 02002025 */ move $a0, $s0 +/* 0DC6B4 7F0A7B84 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC6B8 7F0A7B88 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC6BC 7F0A7B8C 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC6C0 7F0A7B90 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC6C4 7F0A7B94 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC6C8 7F0A7B98 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC6CC 7F0A7B9C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DC6D0 7F0A7BA0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DC6D4 7F0A7BA4 0FC2B6AF */ jal en_text_write_stuff +/* 0DC6D8 7F0A7BA8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DC6DC 7F0A7BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC6E0 7F0A7BB0 00408025 */ move $s0, $v0 +/* 0DC6E4 7F0A7BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC6E8 7F0A7BB8 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC6EC 7F0A7BBC 8FB80058 */ lw $t8, 0x58($sp) +/* 0DC6F0 7F0A7BC0 8FB9005C */ lw $t9, 0x5c($sp) +/* 0DC6F4 7F0A7BC4 87A90044 */ lh $t1, 0x44($sp) +/* 0DC6F8 7F0A7BC8 3C080080 */ lui $t0, (0x00800080 >> 16) # lui $t0, 0x80 +/* 0DC6FC 7F0A7BCC 35080080 */ ori $t0, (0x00800080 & 0xFFFF) # ori $t0, $t0, 0x80 +/* 0DC700 7F0A7BD0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DC704 7F0A7BD4 02002025 */ move $a0, $s0 +/* 0DC708 7F0A7BD8 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC70C 7F0A7BDC 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC710 7F0A7BE0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC714 7F0A7BE4 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC718 7F0A7BE8 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC71C 7F0A7BEC AFA00028 */ sw $zero, 0x28($sp) +/* 0DC720 7F0A7BF0 AFB80010 */ sw $t8, 0x10($sp) +/* 0DC724 7F0A7BF4 AFB90014 */ sw $t9, 0x14($sp) +/* 0DC728 7F0A7BF8 0FC2B6AF */ jal en_text_write_stuff +/* 0DC72C 7F0A7BFC AFA9001C */ sw $t1, 0x1c($sp) +/* 0DC730 7F0A7C00 00408025 */ move $s0, $v0 +.L7F0A7C04: +/* 0DC734 7F0A7C04 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A7C08: +/* 0DC738 7F0A7C08 02001025 */ move $v0, $s0 +/* 0DC73C 7F0A7C0C 8FB00038 */ lw $s0, 0x38($sp) +/* 0DC740 7F0A7C10 03E00008 */ jr $ra +/* 0DC744 7F0A7C14 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A7C18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A7C18 +/* 0DC748 7F0A7C18 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0DC74C 7F0A7C1C AFB20040 */ sw $s2, 0x40($sp) +/* 0DC750 7F0A7C20 00809025 */ move $s2, $a0 +/* 0DC754 7F0A7C24 AFBF0044 */ sw $ra, 0x44($sp) +/* 0DC758 7F0A7C28 AFB1003C */ sw $s1, 0x3c($sp) +/* 0DC75C 7F0A7C2C AFB00038 */ sw $s0, 0x38($sp) +/* 0DC760 7F0A7C30 0FC30776 */ jal get_textptr_for_textID +/* 0DC764 7F0A7C34 3404AC27 */ li $a0, 44071 +/* 0DC768 7F0A7C38 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) +/* 0DC76C 7F0A7C3C 3C118004 */ lui $s1, %hi(ptrSecondFontTableSmall) +/* 0DC770 7F0A7C40 AFA2006C */ sw $v0, 0x6c($sp) +/* 0DC774 7F0A7C44 8E100EAC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DC778 7F0A7C48 0FC15D2E */ jal check_objectives_complete +/* 0DC77C 7F0A7C4C 8E310EB0 */ lw $s1, %lo(ptrSecondFontTableSmall)($s1) +/* 0DC780 7F0A7C50 10400008 */ beqz $v0, .L7F0A7C74 +/* 0DC784 7F0A7C54 3C0F8004 */ lui $t7, %hi(D_80040AF4) +/* 0DC788 7F0A7C58 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0DC78C 7F0A7C5C 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DC790 7F0A7C60 AFAE004C */ sw $t6, 0x4c($sp) +/* 0DC794 7F0A7C64 0FC30776 */ jal get_textptr_for_textID +/* 0DC798 7F0A7C68 3404AC28 */ li $a0, 44072 +/* 0DC79C 7F0A7C6C 10000006 */ b .L7F0A7C88 +/* 0DC7A0 7F0A7C70 AFA20068 */ sw $v0, 0x68($sp) +.L7F0A7C74: +/* 0DC7A4 7F0A7C74 8DEF0AF4 */ lw $t7, %lo(D_80040AF4)($t7) +/* 0DC7A8 7F0A7C78 3404AC29 */ li $a0, 44073 +/* 0DC7AC 7F0A7C7C 0FC30776 */ jal get_textptr_for_textID +/* 0DC7B0 7F0A7C80 AFAF004C */ sw $t7, 0x4c($sp) +/* 0DC7B4 7F0A7C84 AFA20068 */ sw $v0, 0x68($sp) +.L7F0A7C88: +/* 0DC7B8 7F0A7C88 0FC2B366 */ jal microcode_constructor +/* 0DC7BC 7F0A7C8C 02402025 */ move $a0, $s2 +/* 0DC7C0 7F0A7C90 00409025 */ move $s2, $v0 +/* 0DC7C4 7F0A7C94 27A4005C */ addiu $a0, $sp, 0x5c +/* 0DC7C8 7F0A7C98 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DC7CC 7F0A7C9C 8FA6006C */ lw $a2, 0x6c($sp) +/* 0DC7D0 7F0A7CA0 02203825 */ move $a3, $s1 +/* 0DC7D4 7F0A7CA4 AFB00010 */ sw $s0, 0x10($sp) +/* 0DC7D8 7F0A7CA8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC7DC 7F0A7CAC AFA00014 */ sw $zero, 0x14($sp) +/* 0DC7E0 7F0A7CB0 8FA90058 */ lw $t1, 0x58($sp) +/* 0DC7E4 7F0A7CB4 8FAA005C */ lw $t2, 0x5c($sp) +/* 0DC7E8 7F0A7CB8 3C0800FF */ lui $t0, (0x00FF00B0 >> 16) # lui $t0, 0xff +/* 0DC7EC 7F0A7CBC 24180051 */ li $t8, 81 +/* 0DC7F0 7F0A7CC0 24190041 */ li $t9, 65 +/* 0DC7F4 7F0A7CC4 350800B0 */ ori $t0, (0x00FF00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DC7F8 7F0A7CC8 AFB80064 */ sw $t8, 0x64($sp) +/* 0DC7FC 7F0A7CCC AFB90060 */ sw $t9, 0x60($sp) +/* 0DC800 7F0A7CD0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DC804 7F0A7CD4 02402025 */ move $a0, $s2 +/* 0DC808 7F0A7CD8 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC80C 7F0A7CDC 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DC810 7F0A7CE0 8FA7006C */ lw $a3, 0x6c($sp) +/* 0DC814 7F0A7CE4 AFB10010 */ sw $s1, 0x10($sp) +/* 0DC818 7F0A7CE8 AFB00014 */ sw $s0, 0x14($sp) +/* 0DC81C 7F0A7CEC AFA00024 */ sw $zero, 0x24($sp) +/* 0DC820 7F0A7CF0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC824 7F0A7CF4 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DC828 7F0A7CF8 0FC2B6AF */ jal en_text_write_stuff +/* 0DC82C 7F0A7CFC AFAA0020 */ sw $t2, 0x20($sp) +/* 0DC830 7F0A7D00 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0DC834 7F0A7D04 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DC838 7F0A7D08 00409025 */ move $s2, $v0 +/* 0DC83C 7F0A7D0C 8FAC0064 */ lw $t4, 0x64($sp) +/* 0DC840 7F0A7D10 11600003 */ beqz $t3, .L7F0A7D20 +/* 0DC844 7F0A7D14 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC848 7F0A7D18 10000002 */ b .L7F0A7D24 +/* 0DC84C 7F0A7D1C 24020022 */ li $v0, 34 +.L7F0A7D20: +/* 0DC850 7F0A7D20 00001025 */ move $v0, $zero +.L7F0A7D24: +/* 0DC854 7F0A7D24 8FB90060 */ lw $t9, 0x60($sp) +/* 0DC858 7F0A7D28 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC85C 7F0A7D2C 018D7021 */ addu $t6, $t4, $t5 +/* 0DC860 7F0A7D30 01C27821 */ addu $t7, $t6, $v0 +/* 0DC864 7F0A7D34 25F80004 */ addiu $t8, $t7, 4 +/* 0DC868 7F0A7D38 03284823 */ subu $t1, $t9, $t0 +/* 0DC86C 7F0A7D3C AFB80064 */ sw $t8, 0x64($sp) +/* 0DC870 7F0A7D40 AFA90060 */ sw $t1, 0x60($sp) +/* 0DC874 7F0A7D44 27A4005C */ addiu $a0, $sp, 0x5c +/* 0DC878 7F0A7D48 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DC87C 7F0A7D4C 8FA60068 */ lw $a2, 0x68($sp) +/* 0DC880 7F0A7D50 02203825 */ move $a3, $s1 +/* 0DC884 7F0A7D54 AFB00010 */ sw $s0, 0x10($sp) +/* 0DC888 7F0A7D58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC88C 7F0A7D5C AFA00014 */ sw $zero, 0x14($sp) +/* 0DC890 7F0A7D60 8FAA004C */ lw $t2, 0x4c($sp) +/* 0DC894 7F0A7D64 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DC898 7F0A7D68 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC89C 7F0A7D6C 02402025 */ move $a0, $s2 +/* 0DC8A0 7F0A7D70 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC8A4 7F0A7D74 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DC8A8 7F0A7D78 8FA70068 */ lw $a3, 0x68($sp) +/* 0DC8AC 7F0A7D7C AFB10010 */ sw $s1, 0x10($sp) +/* 0DC8B0 7F0A7D80 AFB00014 */ sw $s0, 0x14($sp) +/* 0DC8B4 7F0A7D84 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC8B8 7F0A7D88 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC8BC 7F0A7D8C AFAA0018 */ sw $t2, 0x18($sp) +/* 0DC8C0 7F0A7D90 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DC8C4 7F0A7D94 0FC2B6AF */ jal en_text_write_stuff +/* 0DC8C8 7F0A7D98 AFAC0020 */ sw $t4, 0x20($sp) +/* 0DC8CC 7F0A7D9C 0FC29DF2 */ jal sub_GAME_7F0A77C8 +/* 0DC8D0 7F0A7DA0 00402025 */ move $a0, $v0 +/* 0DC8D4 7F0A7DA4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0DC8D8 7F0A7DA8 8FB00038 */ lw $s0, 0x38($sp) +/* 0DC8DC 7F0A7DAC 8FB1003C */ lw $s1, 0x3c($sp) +/* 0DC8E0 7F0A7DB0 8FB20040 */ lw $s2, 0x40($sp) +/* 0DC8E4 7F0A7DB4 03E00008 */ jr $ra +/* 0DC8E8 7F0A7DB8 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +u32 sub_GAME_7F0A7DBC(u32 uParm1) { + return uParm1; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A7DC4(s32 arg0) +{ + s32 txtptr; + s32 sp50; + ?32 sp4C; + s32 sp48; + s32 sp44; + s32 pFirstFontTable; + s32 pSecondFontTable; + s32 joffset; + + txtptr = get_textptr_for_textID(0xac2b); + if (j_text_trigger != 0) + { + joffset = -5; + } + else + { + joffset = 0; + } + sp50 = (s32) (joffset + 0x65); + sp4C = 0x31; + sp48 = 0; + sp44 = 0; + pFirstFontTable = (s32) ptrFirstFontTableSmall; + pSecondFontTable = (s32) ptrSecondFontTableSmall; + arg0 = microcode_constructor(arg0); + sub_GAME_7F0AE98C(&sp48, &sp44, txtptr, pSecondFontTable, pFirstFontTable, 0); + en_text_write_stuff(arg0, &sp50, &sp4C, txtptr, pSecondFontTable, pFirstFontTable, 0xff00b0, sp44, sp48, 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A7DC4 +/* 0DC8F4 7F0A7DC4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0DC8F8 7F0A7DC8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0DC8FC 7F0A7DCC AFA40058 */ sw $a0, 0x58($sp) +/* 0DC900 7F0A7DD0 0FC30776 */ jal get_textptr_for_textID +/* 0DC904 7F0A7DD4 3404AC2B */ li $a0, 44075 +/* 0DC908 7F0A7DD8 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0DC90C 7F0A7DDC 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0DC910 7F0A7DE0 AFA20054 */ sw $v0, 0x54($sp) +/* 0DC914 7F0A7DE4 24180031 */ li $t8, 49 +/* 0DC918 7F0A7DE8 11C00003 */ beqz $t6, .L7F0A7DF8 +/* 0DC91C 7F0A7DEC 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0DC920 7F0A7DF0 10000002 */ b .L7F0A7DFC +/* 0DC924 7F0A7DF4 2402FFFB */ li $v0, -5 +.L7F0A7DF8: +/* 0DC928 7F0A7DF8 00001025 */ move $v0, $zero +.L7F0A7DFC: +/* 0DC92C 7F0A7DFC 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0DC930 7F0A7E00 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0DC934 7F0A7E04 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 0DC938 7F0A7E08 244F0065 */ addiu $t7, $v0, 0x65 +/* 0DC93C 7F0A7E0C AFAF0050 */ sw $t7, 0x50($sp) +/* 0DC940 7F0A7E10 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DC944 7F0A7E14 AFA00048 */ sw $zero, 0x48($sp) +/* 0DC948 7F0A7E18 AFA00044 */ sw $zero, 0x44($sp) +/* 0DC94C 7F0A7E1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0DC950 7F0A7E20 AFB90040 */ sw $t9, 0x40($sp) +/* 0DC954 7F0A7E24 0FC2B366 */ jal microcode_constructor +/* 0DC958 7F0A7E28 AFA8003C */ sw $t0, 0x3c($sp) +/* 0DC95C 7F0A7E2C 8FA90040 */ lw $t1, 0x40($sp) +/* 0DC960 7F0A7E30 AFA20058 */ sw $v0, 0x58($sp) +/* 0DC964 7F0A7E34 27A40048 */ addiu $a0, $sp, 0x48 +/* 0DC968 7F0A7E38 27A50044 */ addiu $a1, $sp, 0x44 +/* 0DC96C 7F0A7E3C 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC970 7F0A7E40 8FA7003C */ lw $a3, 0x3c($sp) +/* 0DC974 7F0A7E44 AFA00014 */ sw $zero, 0x14($sp) +/* 0DC978 7F0A7E48 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC97C 7F0A7E4C AFA90010 */ sw $t1, 0x10($sp) +/* 0DC980 7F0A7E50 8FAA003C */ lw $t2, 0x3c($sp) +/* 0DC984 7F0A7E54 8FAB0040 */ lw $t3, 0x40($sp) +/* 0DC988 7F0A7E58 8FAD0044 */ lw $t5, 0x44($sp) +/* 0DC98C 7F0A7E5C 8FAE0048 */ lw $t6, 0x48($sp) +/* 0DC990 7F0A7E60 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0DC994 7F0A7E64 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DC998 7F0A7E68 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DC99C 7F0A7E6C 8FA40058 */ lw $a0, 0x58($sp) +/* 0DC9A0 7F0A7E70 27A50050 */ addiu $a1, $sp, 0x50 +/* 0DC9A4 7F0A7E74 27A6004C */ addiu $a2, $sp, 0x4c +/* 0DC9A8 7F0A7E78 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC9AC 7F0A7E7C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC9B0 7F0A7E80 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC9B4 7F0A7E84 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DC9B8 7F0A7E88 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DC9BC 7F0A7E8C AFAD001C */ sw $t5, 0x1c($sp) +/* 0DC9C0 7F0A7E90 0FC2B6AF */ jal en_text_write_stuff +/* 0DC9C4 7F0A7E94 AFAE0020 */ sw $t6, 0x20($sp) +/* 0DC9C8 7F0A7E98 8FBF0034 */ lw $ra, 0x34($sp) +/* 0DC9CC 7F0A7E9C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0DC9D0 7F0A7EA0 03E00008 */ jr $ra +/* 0DC9D4 7F0A7EA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void debug_gun_watch_move_related(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005850C +.word 0x3f7ae148 /*0.98000002*/ +glabel D_80058510 +.word 0x3f829cbc /*1.0204082*/ +glabel D_80058514 +.word 0x461c4000 /*10000.0*/ +glabel D_80058518 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005851C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058520 +.word 0x3f7ae148 /*0.98000002*/ +glabel D_80058524 +.word 0x3f829cbc /*1.0204082*/ +glabel D_80058528 +.word 0x461c4000 /*10000.0*/ +glabel D_8005852C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058530 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel debug_gun_watch_move_related +/* 0DC9D8 7F0A7EA8 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0DC9DC 7F0A7EAC AFBF003C */ sw $ra, 0x3c($sp) +/* 0DC9E0 7F0A7EB0 AFB00038 */ sw $s0, 0x38($sp) +/* 0DC9E4 7F0A7EB4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DC9E8 7F0A7EB8 00808025 */ move $s0, $a0 +/* 0DC9EC 7F0A7EBC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DC9F0 7F0A7EC0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DC9F4 7F0A7EC4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DC9F8 7F0A7EC8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DC9FC 7F0A7ECC AFA20114 */ sw $v0, 0x114($sp) +/* 0DCA00 7F0A7ED0 AFA00084 */ sw $zero, 0x84($sp) +/* 0DCA04 7F0A7ED4 AFA00080 */ sw $zero, 0x80($sp) +/* 0DCA08 7F0A7ED8 AFAE007C */ sw $t6, 0x7c($sp) +/* 0DCA0C 7F0A7EDC 0FC23630 */ jal get_BONDdata_equipcuritem +/* 0DCA10 7F0A7EE0 AFAF0078 */ sw $t7, 0x78($sp) +/* 0DCA14 7F0A7EE4 AFA20074 */ sw $v0, 0x74($sp) +/* 0DCA18 7F0A7EE8 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCA1C 7F0A7EEC 00402025 */ move $a0, $v0 +/* 0DCA20 7F0A7EF0 AFA20070 */ sw $v0, 0x70($sp) +/* 0DCA24 7F0A7EF4 0FC235F6 */ jal sub_GAME_7F08D7D8 +/* 0DCA28 7F0A7EF8 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA2C 7F0A7EFC E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0DCA30 7F0A7F00 0FC23600 */ jal sub_GAME_7F08D800 +/* 0DCA34 7F0A7F04 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA38 7F0A7F08 E7A00068 */ swc1 $f0, 0x68($sp) +/* 0DCA3C 7F0A7F0C 0FC2360A */ jal sub_GAME_7F08D828 +/* 0DCA40 7F0A7F10 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA44 7F0A7F14 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0DCA48 7F0A7F18 0FC235EC */ jal sub_GAME_7F08D7B0 +/* 0DCA4C 7F0A7F1C 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA50 7F0A7F20 E7A00060 */ swc1 $f0, 0x60($sp) +/* 0DCA54 7F0A7F24 0FC23614 */ jal sub_GAME_7F08D850 +/* 0DCA58 7F0A7F28 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA5C 7F0A7F2C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 0DCA60 7F0A7F30 0FC2361E */ jal sub_GAME_7F08D878 +/* 0DCA64 7F0A7F34 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA68 7F0A7F38 E7A00058 */ swc1 $f0, 0x58($sp) +/* 0DCA6C 7F0A7F3C 0FC23572 */ jal sub_GAME_7F08D5C8 +/* 0DCA70 7F0A7F40 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA74 7F0A7F44 AFA20054 */ sw $v0, 0x54($sp) +/* 0DCA78 7F0A7F48 0FC235AF */ jal sub_GAME_7F08D6BC +/* 0DCA7C 7F0A7F4C 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA80 7F0A7F50 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DCA84 7F0A7F54 AFA20050 */ sw $v0, 0x50($sp) +/* 0DCA88 7F0A7F58 5040004C */ beql $v0, $zero, .L7F0A808C +/* 0DCA8C 7F0A7F5C 3C014120 */ lui $at, 0x4120 +/* 0DCA90 7F0A7F60 0FC17674 */ jal get_item_in_hand +/* 0DCA94 7F0A7F64 00002025 */ move $a0, $zero +/* 0DCA98 7F0A7F68 0002C0C0 */ sll $t8, $v0, 3 +/* 0DCA9C 7F0A7F6C 0302C023 */ subu $t8, $t8, $v0 +/* 0DCAA0 7F0A7F70 3C198003 */ lui $t9, %hi(gitem_structs) +/* 0DCAA4 7F0A7F74 27393924 */ addiu $t9, %lo(gitem_structs) # addiu $t9, $t9, 0x3924 +/* 0DCAA8 7F0A7F78 0018C0C0 */ sll $t8, $t8, 3 +/* 0DCAAC 7F0A7F7C 03191821 */ addu $v1, $t8, $t9 +/* 0DCAB0 7F0A7F80 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCAB4 7F0A7F84 00002025 */ move $a0, $zero +/* 0DCAB8 7F0A7F88 0C0030C3 */ jal get_controller_buttons_held +/* 0DCABC 7F0A7F8C 24050002 */ li $a1, 2 +/* 0DCAC0 7F0A7F90 10400006 */ beqz $v0, .L7F0A7FAC +/* 0DCAC4 7F0A7F94 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCAC8 7F0A7F98 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCACC 7F0A7F9C 44813000 */ mtc1 $at, $f6 +/* 0DCAD0 7F0A7FA0 C4640018 */ lwc1 $f4, 0x18($v1) +/* 0DCAD4 7F0A7FA4 46062201 */ sub.s $f8, $f4, $f6 +/* 0DCAD8 7F0A7FA8 E4680018 */ swc1 $f8, 0x18($v1) +.L7F0A7FAC: +/* 0DCADC 7F0A7FAC 00002025 */ move $a0, $zero +/* 0DCAE0 7F0A7FB0 24050001 */ li $a1, 1 +/* 0DCAE4 7F0A7FB4 0C0030C3 */ jal get_controller_buttons_held +/* 0DCAE8 7F0A7FB8 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCAEC 7F0A7FBC 10400006 */ beqz $v0, .L7F0A7FD8 +/* 0DCAF0 7F0A7FC0 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCAF4 7F0A7FC4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCAF8 7F0A7FC8 44818000 */ mtc1 $at, $f16 +/* 0DCAFC 7F0A7FCC C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0DCB00 7F0A7FD0 46105480 */ add.s $f18, $f10, $f16 +/* 0DCB04 7F0A7FD4 E4720018 */ swc1 $f18, 0x18($v1) +.L7F0A7FD8: +/* 0DCB08 7F0A7FD8 00002025 */ move $a0, $zero +/* 0DCB0C 7F0A7FDC 24050004 */ li $a1, 4 +/* 0DCB10 7F0A7FE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB14 7F0A7FE4 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB18 7F0A7FE8 10400006 */ beqz $v0, .L7F0A8004 +/* 0DCB1C 7F0A7FEC 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB20 7F0A7FF0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCB24 7F0A7FF4 44813000 */ mtc1 $at, $f6 +/* 0DCB28 7F0A7FF8 C4640014 */ lwc1 $f4, 0x14($v1) +/* 0DCB2C 7F0A7FFC 46062200 */ add.s $f8, $f4, $f6 +/* 0DCB30 7F0A8000 E4680014 */ swc1 $f8, 0x14($v1) +.L7F0A8004: +/* 0DCB34 7F0A8004 00002025 */ move $a0, $zero +/* 0DCB38 7F0A8008 24050008 */ li $a1, 8 +/* 0DCB3C 7F0A800C 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB40 7F0A8010 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB44 7F0A8014 10400006 */ beqz $v0, .L7F0A8030 +/* 0DCB48 7F0A8018 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB4C 7F0A801C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCB50 7F0A8020 44818000 */ mtc1 $at, $f16 +/* 0DCB54 7F0A8024 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 0DCB58 7F0A8028 46105481 */ sub.s $f18, $f10, $f16 +/* 0DCB5C 7F0A802C E4720014 */ swc1 $f18, 0x14($v1) +.L7F0A8030: +/* 0DCB60 7F0A8030 00002025 */ move $a0, $zero +/* 0DCB64 7F0A8034 24050020 */ li $a1, 32 +/* 0DCB68 7F0A8038 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB6C 7F0A803C AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB70 7F0A8040 10400006 */ beqz $v0, .L7F0A805C +/* 0DCB74 7F0A8044 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB78 7F0A8048 3C018006 */ lui $at, %hi(D_8005850C) +/* 0DCB7C 7F0A804C C426850C */ lwc1 $f6, %lo(D_8005850C)($at) +/* 0DCB80 7F0A8050 C464001C */ lwc1 $f4, 0x1c($v1) +/* 0DCB84 7F0A8054 46062202 */ mul.s $f8, $f4, $f6 +/* 0DCB88 7F0A8058 E468001C */ swc1 $f8, 0x1c($v1) +.L7F0A805C: +/* 0DCB8C 7F0A805C 00002025 */ move $a0, $zero +/* 0DCB90 7F0A8060 24050010 */ li $a1, 16 +/* 0DCB94 7F0A8064 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB98 7F0A8068 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB9C 7F0A806C 10400006 */ beqz $v0, .L7F0A8088 +/* 0DCBA0 7F0A8070 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCBA4 7F0A8074 3C018006 */ lui $at, %hi(D_80058510) +/* 0DCBA8 7F0A8078 C4308510 */ lwc1 $f16, %lo(D_80058510)($at) +/* 0DCBAC 7F0A807C C46A001C */ lwc1 $f10, 0x1c($v1) +/* 0DCBB0 7F0A8080 46105482 */ mul.s $f18, $f10, $f16 +/* 0DCBB4 7F0A8084 E472001C */ swc1 $f18, 0x1c($v1) +.L7F0A8088: +/* 0DCBB8 7F0A8088 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0A808C: +/* 0DCBBC 7F0A808C 44812000 */ mtc1 $at, $f4 +/* 0DCBC0 7F0A8090 3C018006 */ lui $at, %hi(D_80058514) +/* 0DCBC4 7F0A8094 C4268514 */ lwc1 $f6, %lo(D_80058514)($at) +/* 0DCBC8 7F0A8098 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DCBCC 7F0A809C 44814000 */ mtc1 $at, $f8 +/* 0DCBD0 7F0A80A0 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DCBD4 7F0A80A4 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DCBD8 7F0A80A8 8FA40114 */ lw $a0, 0x114($sp) +/* 0DCBDC 7F0A80AC 27A50112 */ addiu $a1, $sp, 0x112 +/* 0DCBE0 7F0A80B0 8FA60060 */ lw $a2, 0x60($sp) +/* 0DCBE4 7F0A80B4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DCBE8 7F0A80B8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DCBEC 7F0A80BC 0C003FAC */ jal guPerspective +/* 0DCBF0 7F0A80C0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DCBF4 7F0A80C4 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0DCBF8 7F0A80C8 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0DCBFC 7F0A80CC 02001825 */ move $v1, $s0 +/* 0DCC00 7F0A80D0 AC680000 */ sw $t0, ($v1) +/* 0DCC04 7F0A80D4 AFA30048 */ sw $v1, 0x48($sp) +/* 0DCC08 7F0A80D8 8FA40114 */ lw $a0, 0x114($sp) +/* 0DCC0C 7F0A80DC 0C003A2C */ jal osVirtualToPhysical +/* 0DCC10 7F0A80E0 26100008 */ addiu $s0, $s0, 8 +/* 0DCC14 7F0A80E4 8FA30048 */ lw $v1, 0x48($sp) +/* 0DCC18 7F0A80E8 3C018006 */ lui $at, %hi(D_80058518) +/* 0DCC1C 7F0A80EC 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCC20 7F0A80F0 AC620004 */ sw $v0, 4($v1) +/* 0DCC24 7F0A80F4 C4308518 */ lwc1 $f16, %lo(D_80058518)($at) +/* 0DCC28 7F0A80F8 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0DCC2C 7F0A80FC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DCC30 7F0A8100 44812000 */ mtc1 $at, $f4 +/* 0DCC34 7F0A8104 46105482 */ mul.s $f18, $f10, $f16 +/* 0DCC38 7F0A8108 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0DCC3C 7F0A810C 46049303 */ div.s $f12, $f18, $f4 +/* 0DCC40 7F0A8110 3C018006 */ lui $at, %hi(D_8005851C) +/* 0DCC44 7F0A8114 C420851C */ lwc1 $f0, %lo(D_8005851C)($at) +/* 0DCC48 7F0A8118 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0DCC4C 7F0A811C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DCC50 7F0A8120 44815000 */ mtc1 $at, $f10 +/* 0DCC54 7F0A8124 46003202 */ mul.s $f8, $f6, $f0 +/* 0DCC58 7F0A8128 27A50090 */ addiu $a1, $sp, 0x90 +/* 0DCC5C 7F0A812C 460A4403 */ div.s $f16, $f8, $f10 +/* 0DCC60 7F0A8130 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DCC64 7F0A8134 46100301 */ sub.s $f12, $f0, $f16 +/* 0DCC68 7F0A8138 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCC6C 7F0A813C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DCC70 7F0A8140 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCC74 7F0A8144 44800000 */ mtc1 $zero, $f0 +/* 0DCC78 7F0A8148 C7A20068 */ lwc1 $f2, 0x68($sp) +/* 0DCC7C 7F0A814C C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0DCC80 7F0A8150 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DCC84 7F0A8154 44819000 */ mtc1 $at, $f18 +/* 0DCC88 7F0A8158 44071000 */ mfc1 $a3, $f2 +/* 0DCC8C 7F0A815C 44066000 */ mfc1 $a2, $f12 +/* 0DCC90 7F0A8160 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCC94 7F0A8164 8FA50064 */ lw $a1, 0x64($sp) +/* 0DCC98 7F0A8168 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0DCC9C 7F0A816C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DCCA0 7F0A8170 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0DCCA4 7F0A8174 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0DCCA8 7F0A8178 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DCCAC 7F0A817C 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DCCB0 7F0A8180 E7B20020 */ swc1 $f18, 0x20($sp) +/* 0DCCB4 7F0A8184 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCCB8 7F0A8188 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DCCBC 7F0A818C 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCCC0 7F0A8190 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DCCC4 7F0A8194 02002025 */ move $a0, $s0 +/* 0DCCC8 7F0A8198 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DCCCC 7F0A819C 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DCCD0 7F0A81A0 00408025 */ move $s0, $v0 +/* 0DCCD4 7F0A81A4 02002025 */ move $a0, $s0 +/* 0DCCD8 7F0A81A8 286100E0 */ slti $at, $v1, 0xe0 +/* 0DCCDC 7F0A81AC 1020000B */ beqz $at, .L7F0A81DC +/* 0DCCE0 7F0A81B0 8FA50070 */ lw $a1, 0x70($sp) +/* 0DCCE4 7F0A81B4 3C0964DC */ lui $t1, (0x64DC6428 >> 16) # lui $t1, 0x64dc +/* 0DCCE8 7F0A81B8 35296428 */ ori $t1, (0x64DC6428 & 0xFFFF) # ori $t1, $t1, 0x6428 +/* 0DCCEC 7F0A81BC AFA90010 */ sw $t1, 0x10($sp) +/* 0DCCF0 7F0A81C0 00402025 */ move $a0, $v0 +/* 0DCCF4 7F0A81C4 8FA50070 */ lw $a1, 0x70($sp) +/* 0DCCF8 7F0A81C8 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0DCCFC 7F0A81CC 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DCD00 7F0A81D0 24670001 */ addiu $a3, $v1, 1 +/* 0DCD04 7F0A81D4 10000008 */ b .L7F0A81F8 +/* 0DCD08 7F0A81D8 00408025 */ move $s0, $v0 +.L7F0A81DC: +/* 0DCD0C 7F0A81DC 3C0A64DC */ lui $t2, (0x64DC6428 >> 16) # lui $t2, 0x64dc +/* 0DCD10 7F0A81E0 354A6428 */ ori $t2, (0x64DC6428 & 0xFFFF) # ori $t2, $t2, 0x6428 +/* 0DCD14 7F0A81E4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DCD18 7F0A81E8 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0DCD1C 7F0A81EC 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DCD20 7F0A81F0 240700FF */ li $a3, 255 +/* 0DCD24 7F0A81F4 00408025 */ move $s0, $v0 +.L7F0A81F8: +/* 0DCD28 7F0A81F8 0FC1A8CD */ jal sub_GAME_7F06A334 +/* 0DCD2C 7F0A81FC 02002025 */ move $a0, $s0 +/* 0DCD30 7F0A8200 0FC2B366 */ jal microcode_constructor +/* 0DCD34 7F0A8204 00402025 */ move $a0, $v0 +/* 0DCD38 7F0A8208 8FAD007C */ lw $t5, 0x7c($sp) +/* 0DCD3C 7F0A820C 240B0060 */ li $t3, 96 +/* 0DCD40 7F0A8210 240C00A0 */ li $t4, 160 +/* 0DCD44 7F0A8214 00408025 */ move $s0, $v0 +/* 0DCD48 7F0A8218 AFAB008C */ sw $t3, 0x8c($sp) +/* 0DCD4C 7F0A821C AFAC0088 */ sw $t4, 0x88($sp) +/* 0DCD50 7F0A8220 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DCD54 7F0A8224 27A50080 */ addiu $a1, $sp, 0x80 +/* 0DCD58 7F0A8228 8FA60054 */ lw $a2, 0x54($sp) +/* 0DCD5C 7F0A822C 8FA70078 */ lw $a3, 0x78($sp) +/* 0DCD60 7F0A8230 AFA00014 */ sw $zero, 0x14($sp) +/* 0DCD64 7F0A8234 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DCD68 7F0A8238 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DCD6C 7F0A823C 8FAE0078 */ lw $t6, 0x78($sp) +/* 0DCD70 7F0A8240 8FAF007C */ lw $t7, 0x7c($sp) +/* 0DCD74 7F0A8244 8FB90080 */ lw $t9, 0x80($sp) +/* 0DCD78 7F0A8248 8FA80084 */ lw $t0, 0x84($sp) +/* 0DCD7C 7F0A824C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0DCD80 7F0A8250 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DCD84 7F0A8254 AFB80018 */ sw $t8, 0x18($sp) +/* 0DCD88 7F0A8258 02002025 */ move $a0, $s0 +/* 0DCD8C 7F0A825C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0DCD90 7F0A8260 27A60088 */ addiu $a2, $sp, 0x88 +/* 0DCD94 7F0A8264 8FA70054 */ lw $a3, 0x54($sp) +/* 0DCD98 7F0A8268 AFA00024 */ sw $zero, 0x24($sp) +/* 0DCD9C 7F0A826C AFA00028 */ sw $zero, 0x28($sp) +/* 0DCDA0 7F0A8270 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DCDA4 7F0A8274 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DCDA8 7F0A8278 AFB9001C */ sw $t9, 0x1c($sp) +/* 0DCDAC 7F0A827C 0FC2B6AF */ jal en_text_write_stuff +/* 0DCDB0 7F0A8280 AFA80020 */ sw $t0, 0x20($sp) +/* 0DCDB4 7F0A8284 8FAA007C */ lw $t2, 0x7c($sp) +/* 0DCDB8 7F0A8288 240900AA */ li $t1, 170 +/* 0DCDBC 7F0A828C 00408025 */ move $s0, $v0 +/* 0DCDC0 7F0A8290 AFA90088 */ sw $t1, 0x88($sp) +/* 0DCDC4 7F0A8294 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DCDC8 7F0A8298 27A50080 */ addiu $a1, $sp, 0x80 +/* 0DCDCC 7F0A829C 8FA60050 */ lw $a2, 0x50($sp) +/* 0DCDD0 7F0A82A0 8FA70078 */ lw $a3, 0x78($sp) +/* 0DCDD4 7F0A82A4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DCDD8 7F0A82A8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DCDDC 7F0A82AC AFAA0010 */ sw $t2, 0x10($sp) +/* 0DCDE0 7F0A82B0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0DCDE4 7F0A82B4 8FAC007C */ lw $t4, 0x7c($sp) +/* 0DCDE8 7F0A82B8 8FAE0080 */ lw $t6, 0x80($sp) +/* 0DCDEC 7F0A82BC 8FAF0084 */ lw $t7, 0x84($sp) +/* 0DCDF0 7F0A82C0 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0DCDF4 7F0A82C4 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DCDF8 7F0A82C8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DCDFC 7F0A82CC 02002025 */ move $a0, $s0 +/* 0DCE00 7F0A82D0 27A5008C */ addiu $a1, $sp, 0x8c +/* 0DCE04 7F0A82D4 27A60088 */ addiu $a2, $sp, 0x88 +/* 0DCE08 7F0A82D8 8FA70050 */ lw $a3, 0x50($sp) +/* 0DCE0C 7F0A82DC AFA00024 */ sw $zero, 0x24($sp) +/* 0DCE10 7F0A82E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DCE14 7F0A82E4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DCE18 7F0A82E8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DCE1C 7F0A82EC AFAE001C */ sw $t6, 0x1c($sp) +/* 0DCE20 7F0A82F0 0FC2B6AF */ jal en_text_write_stuff +/* 0DCE24 7F0A82F4 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DCE28 7F0A82F8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DCE2C 7F0A82FC 8FB00038 */ lw $s0, 0x38($sp) +/* 0DCE30 7F0A8300 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0DCE34 7F0A8304 03E00008 */ jr $ra +/* 0DCE38 7F0A8308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0A830C(void) +{ + s32 temp_s0; + s32 phi_s0; + + temp_s0 = sub_GAME_7F0A714C(0); + if (check_watch_page_transistion_running() != 1) + { + phi_s0 = debug_gun_watch_move_related(sub_GAME_7F0A7DBC(sub_GAME_7F0A7C18(sub_GAME_7F0A7DC4(temp_s0)))); + } + else + { + check_watch_page_transistion_running(); + phi_s0 = temp_s0; + } + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A830C +/* 0DCE3C 7F0A830C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DCE40 7F0A8310 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DCE44 7F0A8314 AFB00018 */ sw $s0, 0x18($sp) +/* 0DCE48 7F0A8318 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DCE4C 7F0A831C 00003025 */ move $a2, $zero +/* 0DCE50 7F0A8320 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCE54 7F0A8324 00408025 */ move $s0, $v0 +/* 0DCE58 7F0A8328 24010001 */ li $at, 1 +/* 0DCE5C 7F0A832C 1041000B */ beq $v0, $at, .L7F0A835C +/* 0DCE60 7F0A8330 00000000 */ nop +/* 0DCE64 7F0A8334 0FC29F71 */ jal sub_GAME_7F0A7DC4 +/* 0DCE68 7F0A8338 02002025 */ move $a0, $s0 +/* 0DCE6C 7F0A833C 0FC29F06 */ jal sub_GAME_7F0A7C18 +/* 0DCE70 7F0A8340 00402025 */ move $a0, $v0 +/* 0DCE74 7F0A8344 0FC29F6F */ jal sub_GAME_7F0A7DBC +/* 0DCE78 7F0A8348 00402025 */ move $a0, $v0 +/* 0DCE7C 7F0A834C 0FC29FAA */ jal debug_gun_watch_move_related +/* 0DCE80 7F0A8350 00402025 */ move $a0, $v0 +/* 0DCE84 7F0A8354 10000003 */ b .L7F0A8364 +/* 0DCE88 7F0A8358 00408025 */ move $s0, $v0 +.L7F0A835C: +/* 0DCE8C 7F0A835C 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCE90 7F0A8360 00000000 */ nop +.L7F0A8364: +/* 0DCE94 7F0A8364 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DCE98 7F0A8368 02001025 */ move $v0, $s0 +/* 0DCE9C 7F0A836C 8FB00018 */ lw $s0, 0x18($sp) +/* 0DCEA0 7F0A8370 03E00008 */ jr $ra +/* 0DCEA4 7F0A8374 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8378(void) +{ + s32 sp1C; + + if ((get_controller_buttons_pressed(0, 0xa000) == 0) && (get_controller_buttons_pressed(0, 0x1000) != 0)) + { + sp1C = get_item_in_hand(0); + if (get_weaponnum_by_inv_index(D_800409B8) != sp1C) + { + remove_hands_item(0, get_weaponnum_by_inv_index(D_800409B8)); + remove_hands_item(1, 0); + set_BONDdata_equipcuritem(D_800409B8); + D_800409C4 = 0xa; + play_sfx_a1(ptr_sfx_buf, 0x9f, 0); + } + } + else + { + + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8378 +/* 0DCEA8 7F0A8378 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DCEAC 7F0A837C AFBF0014 */ sw $ra, 0x14($sp) +/* 0DCEB0 7F0A8380 00002025 */ move $a0, $zero +/* 0DCEB4 7F0A8384 0C0030EB */ jal get_controller_buttons_pressed +/* 0DCEB8 7F0A8388 3405A000 */ li $a1, 40960 +/* 0DCEBC 7F0A838C 1440000D */ bnez $v0, .L7F0A83C4 +/* 0DCEC0 7F0A8390 00002025 */ move $a0, $zero +/* 0DCEC4 7F0A8394 0C0030EB */ jal get_controller_buttons_pressed +/* 0DCEC8 7F0A8398 24051000 */ li $a1, 4096 +/* 0DCECC 7F0A839C 5040001E */ beql $v0, $zero, .L7F0A8418 +/* 0DCED0 7F0A83A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DCED4 7F0A83A4 0FC17674 */ jal get_item_in_hand +/* 0DCED8 7F0A83A8 00002025 */ move $a0, $zero +/* 0DCEDC 7F0A83AC 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCEE0 7F0A83B0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCEE4 7F0A83B4 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCEE8 7F0A83B8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DCEEC 7F0A83BC 8FAE001C */ lw $t6, 0x1c($sp) +/* 0DCEF0 7F0A83C0 104E0014 */ beq $v0, $t6, .L7F0A8414 +.L7F0A83C4: +/* 0DCEF4 7F0A83C4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCEF8 7F0A83C8 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCEFC 7F0A83CC 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF00 7F0A83D0 00002025 */ move $a0, $zero +/* 0DCF04 7F0A83D4 0FC176D5 */ jal remove_hands_item +/* 0DCF08 7F0A83D8 00402825 */ move $a1, $v0 +/* 0DCF0C 7F0A83DC 24040001 */ li $a0, 1 +/* 0DCF10 7F0A83E0 0FC176D5 */ jal remove_hands_item +/* 0DCF14 7F0A83E4 00002825 */ move $a1, $zero +/* 0DCF18 7F0A83E8 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF1C 7F0A83EC 0FC23634 */ jal set_BONDdata_equipcuritem +/* 0DCF20 7F0A83F0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF24 7F0A83F4 240F000A */ li $t7, 10 +/* 0DCF28 7F0A83F8 3C018004 */ lui $at, %hi(D_800409C4) +/* 0DCF2C 7F0A83FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0DCF30 7F0A8400 AC2F09C4 */ sw $t7, %lo(D_800409C4)($at) +/* 0DCF34 7F0A8404 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0DCF38 7F0A8408 2405009F */ li $a1, 159 +/* 0DCF3C 7F0A840C 0C002382 */ jal play_sfx_a1 +/* 0DCF40 7F0A8410 00003025 */ move $a2, $zero +.L7F0A8414: +/* 0DCF44 7F0A8414 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A8418: +/* 0DCF48 7F0A8418 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DCF4C 7F0A841C 03E00008 */ jr $ra +/* 0DCF50 7F0A8420 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void debug_gun_watch_move_related2(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel debug_gun_watch_move_related2 +/* 0DCF54 7F0A8424 27BDF6D8 */ addiu $sp, $sp, -0x928 +/* 0DCF58 7F0A8428 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DCF5C 7F0A842C AFB00038 */ sw $s0, 0x38($sp) +/* 0DCF60 7F0A8430 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DCF64 7F0A8434 00003025 */ move $a2, $zero +/* 0DCF68 7F0A8438 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCF6C 7F0A843C AFA20928 */ sw $v0, 0x928($sp) +/* 0DCF70 7F0A8440 24010001 */ li $at, 1 +/* 0DCF74 7F0A8444 504101AE */ beql $v0, $at, .L7F0A8B00 +/* 0DCF78 7F0A8448 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DCF7C 7F0A844C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DCF80 7F0A8450 00000000 */ nop +/* 0DCF84 7F0A8454 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF88 7F0A8458 AFA20924 */ sw $v0, 0x924($sp) +/* 0DCF8C 7F0A845C 0FC2354A */ jal sub_GAME_7F08D528 +/* 0DCF90 7F0A8460 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF94 7F0A8464 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF98 7F0A8468 E7A00894 */ swc1 $f0, 0x894($sp) +/* 0DCF9C 7F0A846C 0FC23554 */ jal sub_GAME_7F08D550 +/* 0DCFA0 7F0A8470 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFA4 7F0A8474 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFA8 7F0A8478 E7A00890 */ swc1 $f0, 0x890($sp) +/* 0DCFAC 7F0A847C 0FC2355E */ jal sub_GAME_7F08D578 +/* 0DCFB0 7F0A8480 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFB4 7F0A8484 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFB8 7F0A8488 E7A0088C */ swc1 $f0, 0x88c($sp) +/* 0DCFBC 7F0A848C 0FC23568 */ jal sub_GAME_7F08D5A0 +/* 0DCFC0 7F0A8490 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFC4 7F0A8494 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFC8 7F0A8498 E7A00888 */ swc1 $f0, 0x888($sp) +/* 0DCFCC 7F0A849C 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCFD0 7F0A84A0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFD4 7F0A84A4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFD8 7F0A84A8 AFA20884 */ sw $v0, 0x884($sp) +/* 0DCFDC 7F0A84AC 0FC23614 */ jal sub_GAME_7F08D850 +/* 0DCFE0 7F0A84B0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFE4 7F0A84B4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFE8 7F0A84B8 E7A00880 */ swc1 $f0, 0x880($sp) +/* 0DCFEC 7F0A84BC 0FC2361E */ jal sub_GAME_7F08D878 +/* 0DCFF0 7F0A84C0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFF4 7F0A84C4 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DCFF8 7F0A84C8 E7A0087C */ swc1 $f0, 0x87c($sp) +/* 0DCFFC 7F0A84CC 50400040 */ beql $v0, $zero, .L7F0A85D0 +/* 0DD000 7F0A84D0 3C014120 */ lui $at, 0x4120 +/* 0DD004 7F0A84D4 0FC17674 */ jal get_item_in_hand +/* 0DD008 7F0A84D8 00002025 */ move $a0, $zero +/* 0DD00C 7F0A84DC 000270C0 */ sll $t6, $v0, 3 +/* 0DD010 7F0A84E0 01C27023 */ subu $t6, $t6, $v0 +/* 0DD014 7F0A84E4 3C0F8003 */ lui $t7, %hi(gitem_structs) +/* 0DD018 7F0A84E8 25EF3924 */ addiu $t7, %lo(gitem_structs) # addiu $t7, $t7, 0x3924 +/* 0DD01C 7F0A84EC 000E70C0 */ sll $t6, $t6, 3 +/* 0DD020 7F0A84F0 01CF8021 */ addu $s0, $t6, $t7 +/* 0DD024 7F0A84F4 00002025 */ move $a0, $zero +/* 0DD028 7F0A84F8 0C0030C3 */ jal get_controller_buttons_held +/* 0DD02C 7F0A84FC 24050002 */ li $a1, 2 +/* 0DD030 7F0A8500 10400006 */ beqz $v0, .L7F0A851C +/* 0DD034 7F0A8504 00002025 */ move $a0, $zero +/* 0DD038 7F0A8508 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD03C 7F0A850C 44813000 */ mtc1 $at, $f6 +/* 0DD040 7F0A8510 C604002C */ lwc1 $f4, 0x2c($s0) +/* 0DD044 7F0A8514 46062201 */ sub.s $f8, $f4, $f6 +/* 0DD048 7F0A8518 E608002C */ swc1 $f8, 0x2c($s0) +.L7F0A851C: +/* 0DD04C 7F0A851C 0C0030C3 */ jal get_controller_buttons_held +/* 0DD050 7F0A8520 24050001 */ li $a1, 1 +/* 0DD054 7F0A8524 10400006 */ beqz $v0, .L7F0A8540 +/* 0DD058 7F0A8528 00002025 */ move $a0, $zero +/* 0DD05C 7F0A852C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD060 7F0A8530 44818000 */ mtc1 $at, $f16 +/* 0DD064 7F0A8534 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 0DD068 7F0A8538 46105480 */ add.s $f18, $f10, $f16 +/* 0DD06C 7F0A853C E612002C */ swc1 $f18, 0x2c($s0) +.L7F0A8540: +/* 0DD070 7F0A8540 0C0030C3 */ jal get_controller_buttons_held +/* 0DD074 7F0A8544 24050004 */ li $a1, 4 +/* 0DD078 7F0A8548 10400006 */ beqz $v0, .L7F0A8564 +/* 0DD07C 7F0A854C 00002025 */ move $a0, $zero +/* 0DD080 7F0A8550 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD084 7F0A8554 44813000 */ mtc1 $at, $f6 +/* 0DD088 7F0A8558 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0DD08C 7F0A855C 46062200 */ add.s $f8, $f4, $f6 +/* 0DD090 7F0A8560 E6080030 */ swc1 $f8, 0x30($s0) +.L7F0A8564: +/* 0DD094 7F0A8564 0C0030C3 */ jal get_controller_buttons_held +/* 0DD098 7F0A8568 24050008 */ li $a1, 8 +/* 0DD09C 7F0A856C 10400006 */ beqz $v0, .L7F0A8588 +/* 0DD0A0 7F0A8570 00002025 */ move $a0, $zero +/* 0DD0A4 7F0A8574 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD0A8 7F0A8578 44818000 */ mtc1 $at, $f16 +/* 0DD0AC 7F0A857C C60A0030 */ lwc1 $f10, 0x30($s0) +/* 0DD0B0 7F0A8580 46105481 */ sub.s $f18, $f10, $f16 +/* 0DD0B4 7F0A8584 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0A8588: +/* 0DD0B8 7F0A8588 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0BC 7F0A858C 24050020 */ li $a1, 32 +/* 0DD0C0 7F0A8590 10400006 */ beqz $v0, .L7F0A85AC +/* 0DD0C4 7F0A8594 00002025 */ move $a0, $zero +/* 0DD0C8 7F0A8598 3C018006 */ lui $at, %hi(D_80058520) +/* 0DD0CC 7F0A859C C4268520 */ lwc1 $f6, %lo(D_80058520)($at) +/* 0DD0D0 7F0A85A0 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0DD0D4 7F0A85A4 46062202 */ mul.s $f8, $f4, $f6 +/* 0DD0D8 7F0A85A8 E6080034 */ swc1 $f8, 0x34($s0) +.L7F0A85AC: +/* 0DD0DC 7F0A85AC 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0E0 7F0A85B0 24050010 */ li $a1, 16 +/* 0DD0E4 7F0A85B4 10400005 */ beqz $v0, .L7F0A85CC +/* 0DD0E8 7F0A85B8 3C018006 */ lui $at, %hi(D_80058524) +/* 0DD0EC 7F0A85BC C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0DD0F0 7F0A85C0 C4308524 */ lwc1 $f16, %lo(D_80058524)($at) +/* 0DD0F4 7F0A85C4 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD0F8 7F0A85C8 E6120034 */ swc1 $f18, 0x34($s0) +.L7F0A85CC: +/* 0DD0FC 7F0A85CC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0A85D0: +/* 0DD100 7F0A85D0 44812000 */ mtc1 $at, $f4 +/* 0DD104 7F0A85D4 3C018006 */ lui $at, %hi(D_80058528) +/* 0DD108 7F0A85D8 C4268528 */ lwc1 $f6, %lo(D_80058528)($at) +/* 0DD10C 7F0A85DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD110 7F0A85E0 44814000 */ mtc1 $at, $f8 +/* 0DD114 7F0A85E4 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DD118 7F0A85E8 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DD11C 7F0A85EC 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD120 7F0A85F0 27A50922 */ addiu $a1, $sp, 0x922 +/* 0DD124 7F0A85F4 8FA60894 */ lw $a2, 0x894($sp) +/* 0DD128 7F0A85F8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DD12C 7F0A85FC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DD130 7F0A8600 0C003FAC */ jal guPerspective +/* 0DD134 7F0A8604 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DD138 7F0A8608 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD13C 7F0A860C 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0DD140 7F0A8610 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0DD144 7F0A8614 00408025 */ move $s0, $v0 +/* 0DD148 7F0A8618 AE180000 */ sw $t8, ($s0) +/* 0DD14C 7F0A861C 24420008 */ addiu $v0, $v0, 8 +/* 0DD150 7F0A8620 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD154 7F0A8624 0C003A2C */ jal osVirtualToPhysical +/* 0DD158 7F0A8628 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD15C 7F0A862C AE020004 */ sw $v0, 4($s0) +/* 0DD160 7F0A8630 3C018006 */ lui $at, %hi(D_8005852C) +/* 0DD164 7F0A8634 C430852C */ lwc1 $f16, %lo(D_8005852C)($at) +/* 0DD168 7F0A8638 C7AA087C */ lwc1 $f10, 0x87c($sp) +/* 0DD16C 7F0A863C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD170 7F0A8640 44812000 */ mtc1 $at, $f4 +/* 0DD174 7F0A8644 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD178 7F0A8648 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD17C 7F0A864C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0DD180 7F0A8650 46049303 */ div.s $f12, $f18, $f4 +/* 0DD184 7F0A8654 3C018006 */ lui $at, %hi(D_80058530) +/* 0DD188 7F0A8658 C4208530 */ lwc1 $f0, %lo(D_80058530)($at) +/* 0DD18C 7F0A865C C7A60880 */ lwc1 $f6, 0x880($sp) +/* 0DD190 7F0A8660 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD194 7F0A8664 44815000 */ mtc1 $at, $f10 +/* 0DD198 7F0A8668 46003202 */ mul.s $f8, $f6, $f0 +/* 0DD19C 7F0A866C 27B008A0 */ addiu $s0, $sp, 0x8a0 +/* 0DD1A0 7F0A8670 02002825 */ move $a1, $s0 +/* 0DD1A4 7F0A8674 460A4403 */ div.s $f16, $f8, $f10 +/* 0DD1A8 7F0A8678 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DD1AC 7F0A867C 46100301 */ sub.s $f12, $f0, $f16 +/* 0DD1B0 7F0A8680 02002025 */ move $a0, $s0 +/* 0DD1B4 7F0A8684 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD1B8 7F0A8688 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD1BC 7F0A868C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1C0 7F0A8690 0FC15FA8 */ jal cosf +/* 0DD1C4 7F0A8694 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1C8 7F0A8698 C7B20888 */ lwc1 $f18, 0x888($sp) +/* 0DD1CC 7F0A869C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1D0 7F0A86A0 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1D4 7F0A86A4 46120102 */ mul.s $f4, $f0, $f18 +/* 0DD1D8 7F0A86A8 0FC15FAB */ jal sinf +/* 0DD1DC 7F0A86AC E7A4089C */ swc1 $f4, 0x89c($sp) +/* 0DD1E0 7F0A86B0 C7A60888 */ lwc1 $f6, 0x888($sp) +/* 0DD1E4 7F0A86B4 C7AE0890 */ lwc1 $f14, 0x890($sp) +/* 0DD1E8 7F0A86B8 44801000 */ mtc1 $zero, $f2 +/* 0DD1EC 7F0A86BC 46060202 */ mul.s $f8, $f0, $f6 +/* 0DD1F0 7F0A86C0 C7AC088C */ lwc1 $f12, 0x88c($sp) +/* 0DD1F4 7F0A86C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD1F8 7F0A86C8 44818000 */ mtc1 $at, $f16 +/* 0DD1FC 7F0A86CC 44066000 */ mfc1 $a2, $f12 +/* 0DD200 7F0A86D0 02002025 */ move $a0, $s0 +/* 0DD204 7F0A86D4 8FA5089C */ lw $a1, 0x89c($sp) +/* 0DD208 7F0A86D8 460E4280 */ add.s $f10, $f8, $f14 +/* 0DD20C 7F0A86DC E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0DD210 7F0A86E0 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0DD214 7F0A86E4 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DD218 7F0A86E8 44075000 */ mfc1 $a3, $f10 +/* 0DD21C 7F0A86EC E7A20024 */ swc1 $f2, 0x24($sp) +/* 0DD220 7F0A86F0 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DD224 7F0A86F4 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DD228 7F0A86F8 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0DD22C 7F0A86FC 02002025 */ move $a0, $s0 +/* 0DD230 7F0A8700 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD234 7F0A8704 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD238 7F0A8708 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DD23C 7F0A870C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD240 7F0A8710 3C19A0FF */ lui $t9, (0xA0FFA03C >> 16) # lui $t9, 0xa0ff +/* 0DD244 7F0A8714 3739A03C */ ori $t9, (0xA0FFA03C & 0xFFFF) # ori $t9, $t9, 0xa03c +/* 0DD248 7F0A8718 AFB90010 */ sw $t9, 0x10($sp) +/* 0DD24C 7F0A871C 00402025 */ move $a0, $v0 +/* 0DD250 7F0A8720 8FA50884 */ lw $a1, 0x884($sp) +/* 0DD254 7F0A8724 27A608E0 */ addiu $a2, $sp, 0x8e0 +/* 0DD258 7F0A8728 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DD25C 7F0A872C 24070040 */ li $a3, 64 +/* 0DD260 7F0A8730 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0DD264 7F0A8734 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0DD268 7F0A8738 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0DD26C 7F0A873C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0DD270 7F0A8740 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD274 7F0A8744 AFA00860 */ sw $zero, 0x860($sp) +/* 0DD278 7F0A8748 AFA0085C */ sw $zero, 0x85c($sp) +/* 0DD27C 7F0A874C A3A00084 */ sb $zero, 0x84($sp) +/* 0DD280 7F0A8750 00008025 */ move $s0, $zero +/* 0DD284 7F0A8754 AFA90858 */ sw $t1, 0x858($sp) +/* 0DD288 7F0A8758 0FC2340E */ jal count_total_items_in_inventory +/* 0DD28C 7F0A875C AFAA0854 */ sw $t2, 0x854($sp) +/* 0DD290 7F0A8760 1840000B */ blez $v0, .L7F0A8790 +/* 0DD294 7F0A8764 00000000 */ nop +.L7F0A8768: +/* 0DD298 7F0A8768 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD29C 7F0A876C 02002025 */ move $a0, $s0 +/* 0DD2A0 7F0A8770 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DD2A4 7F0A8774 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DD2A8 7F0A8778 00402825 */ move $a1, $v0 +/* 0DD2AC 7F0A877C 0FC2340E */ jal count_total_items_in_inventory +/* 0DD2B0 7F0A8780 26100001 */ addiu $s0, $s0, 1 +/* 0DD2B4 7F0A8784 0202082A */ slt $at, $s0, $v0 +/* 0DD2B8 7F0A8788 1420FFF7 */ bnez $at, .L7F0A8768 +/* 0DD2BC 7F0A878C 00000000 */ nop +.L7F0A8790: +/* 0DD2C0 7F0A8790 3C038004 */ lui $v1, %hi(D_800409C4) +/* 0DD2C4 7F0A8794 246309C4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9c4 +/* 0DD2C8 7F0A8798 8C620000 */ lw $v0, ($v1) +/* 0DD2CC 7F0A879C 18400002 */ blez $v0, .L7F0A87A8 +/* 0DD2D0 7F0A87A0 244BFFFF */ addiu $t3, $v0, -1 +/* 0DD2D4 7F0A87A4 AC6B0000 */ sw $t3, ($v1) +.L7F0A87A8: +/* 0DD2D8 7F0A87A8 0FC296E0 */ jal sub_GAME_7F0A5B80 +/* 0DD2DC 7F0A87AC 00000000 */ nop +/* 0DD2E0 7F0A87B0 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0DD2E4 7F0A87B4 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0DD2E8 7F0A87B8 240C004E */ li $t4, 78 +/* 0DD2EC 7F0A87BC 240D008C */ li $t5, 140 +/* 0DD2F0 7F0A87C0 AFAC0870 */ sw $t4, 0x870($sp) +/* 0DD2F4 7F0A87C4 11C00003 */ beqz $t6, .L7F0A87D4 +/* 0DD2F8 7F0A87C8 AFAD086C */ sw $t5, 0x86c($sp) +/* 0DD2FC 7F0A87CC 10000002 */ b .L7F0A87D8 +/* 0DD300 7F0A87D0 2402000E */ li $v0, 14 +.L7F0A87D4: +/* 0DD304 7F0A87D4 2402000C */ li $v0, 12 +.L7F0A87D8: +/* 0DD308 7F0A87D8 00028040 */ sll $s0, $v0, 1 +/* 0DD30C 7F0A87DC 2610008D */ addiu $s0, $s0, 0x8d +/* 0DD310 7F0A87E0 0FC2B366 */ jal microcode_constructor +/* 0DD314 7F0A87E4 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD318 7F0A87E8 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0DD31C 7F0A87EC 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0DD320 7F0A87F0 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD324 7F0A87F4 27A40860 */ addiu $a0, $sp, 0x860 +/* 0DD328 7F0A87F8 11E00003 */ beqz $t7, .L7F0A8808 +/* 0DD32C 7F0A87FC 27A5085C */ addiu $a1, $sp, 0x85c +/* 0DD330 7F0A8800 10000002 */ b .L7F0A880C +/* 0DD334 7F0A8804 2402000E */ li $v0, 14 +.L7F0A8808: +/* 0DD338 7F0A8808 2402000C */ li $v0, 12 +.L7F0A880C: +/* 0DD33C 7F0A880C 8FB80858 */ lw $t8, 0x858($sp) +/* 0DD340 7F0A8810 27A60084 */ addiu $a2, $sp, 0x84 +/* 0DD344 7F0A8814 8FA70854 */ lw $a3, 0x854($sp) +/* 0DD348 7F0A8818 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD34C 7F0A881C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD350 7F0A8820 AFB80010 */ sw $t8, 0x10($sp) +/* 0DD354 7F0A8824 3C198005 */ lui $t9, %hi(j_text_trigger) +/* 0DD358 7F0A8828 8F3984D0 */ lw $t9, %lo(j_text_trigger)($t9) +/* 0DD35C 7F0A882C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD360 7F0A8830 2405004E */ li $a1, 78 +/* 0DD364 7F0A8834 13200003 */ beqz $t9, .L7F0A8844 +/* 0DD368 7F0A8838 2406008C */ li $a2, 140 +/* 0DD36C 7F0A883C 10000002 */ b .L7F0A8848 +/* 0DD370 7F0A8840 2402000E */ li $v0, 14 +.L7F0A8844: +/* 0DD374 7F0A8844 2402000C */ li $v0, 12 +.L7F0A8848: +/* 0DD378 7F0A8848 00024880 */ sll $t1, $v0, 2 +/* 0DD37C 7F0A884C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD380 7F0A8850 01224821 */ addu $t1, $t1, $v0 +/* 0DD384 7F0A8854 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD388 7F0A8858 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DD38C 7F0A885C AFA00014 */ sw $zero, 0x14($sp) +/* 0DD390 7F0A8860 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD394 7F0A8864 24E7004E */ addiu $a3, $a3, 0x4e +/* 0DD398 7F0A8868 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD39C 7F0A886C 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD3A0 7F0A8870 00402025 */ move $a0, $v0 +/* 0DD3A4 7F0A8874 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD3A8 7F0A8878 10600003 */ beqz $v1, .L7F0A8888 +/* 0DD3AC 7F0A887C 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD3B0 7F0A8880 10000002 */ b .L7F0A888C +/* 0DD3B4 7F0A8884 2408000E */ li $t0, 14 +.L7F0A8888: +/* 0DD3B8 7F0A8888 2408000C */ li $t0, 12 +.L7F0A888C: +/* 0DD3BC 7F0A888C 10600003 */ beqz $v1, .L7F0A889C +/* 0DD3C0 7F0A8890 27A70084 */ addiu $a3, $sp, 0x84 +/* 0DD3C4 7F0A8894 10000002 */ b .L7F0A88A0 +/* 0DD3C8 7F0A8898 2402000E */ li $v0, 14 +.L7F0A889C: +/* 0DD3CC 7F0A889C 2402000C */ li $v0, 12 +.L7F0A88A0: +/* 0DD3D0 7F0A88A0 8FAE085C */ lw $t6, 0x85c($sp) +/* 0DD3D4 7F0A88A4 3C198004 */ lui $t9, %hi(D_800409B0) +/* 0DD3D8 7F0A88A8 8F3909B0 */ lw $t9, %lo(D_800409B0)($t9) +/* 0DD3DC 7F0A88AC 8FAB0854 */ lw $t3, 0x854($sp) +/* 0DD3E0 7F0A88B0 8FAC0858 */ lw $t4, 0x858($sp) +/* 0DD3E4 7F0A88B4 3C0D00AA */ lui $t5, (0x00AA00B0 >> 16) # lui $t5, 0xaa +/* 0DD3E8 7F0A88B8 0008C080 */ sll $t8, $t0, 2 +/* 0DD3EC 7F0A88BC 0308C021 */ addu $t8, $t8, $t0 +/* 0DD3F0 7F0A88C0 35AD00B0 */ ori $t5, (0x00AA00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DD3F4 7F0A88C4 25CF0001 */ addiu $t7, $t6, 1 +/* 0DD3F8 7F0A88C8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DD3FC 7F0A88CC AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD400 7F0A88D0 AFB80020 */ sw $t8, 0x20($sp) +/* 0DD404 7F0A88D4 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD408 7F0A88D8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DD40C 7F0A88DC AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD410 7F0A88E0 0FC2B6AF */ jal en_text_write_stuff +/* 0DD414 7F0A88E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD418 7F0A88E8 3C098005 */ lui $t1, %hi(j_text_trigger) +/* 0DD41C 7F0A88EC 8D2984D0 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0DD420 7F0A88F0 00402025 */ move $a0, $v0 +/* 0DD424 7F0A88F4 2405004B */ li $a1, 75 +/* 0DD428 7F0A88F8 11200003 */ beqz $t1, .L7F0A8908 +/* 0DD42C 7F0A88FC 02003025 */ move $a2, $s0 +/* 0DD430 7F0A8900 10000002 */ b .L7F0A890C +/* 0DD434 7F0A8904 2402000E */ li $v0, 14 +.L7F0A8908: +/* 0DD438 7F0A8908 2402000C */ li $v0, 12 +.L7F0A890C: +/* 0DD43C 7F0A890C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD440 7F0A8910 00505021 */ addu $t2, $v0, $s0 +/* 0DD444 7F0A8914 3C0C0080 */ lui $t4, (0x00800050 >> 16) # lui $t4, 0x80 +/* 0DD448 7F0A8918 358C0050 */ ori $t4, (0x00800050 & 0xFFFF) # ori $t4, $t4, 0x50 +/* 0DD44C 7F0A891C 254BFFFE */ addiu $t3, $t2, -2 +/* 0DD450 7F0A8920 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD454 7F0A8924 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD458 7F0A8928 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD45C 7F0A892C 24E70052 */ addiu $a3, $a3, 0x52 +/* 0DD460 7F0A8930 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0DD464 7F0A8934 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0DD468 7F0A8938 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) +/* 0DD46C 7F0A893C 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DD470 7F0A8940 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD474 7F0A8944 8E100EAC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DD478 7F0A8948 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DD47C 7F0A894C 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD480 7F0A8950 AFAD0058 */ sw $t5, 0x58($sp) +/* 0DD484 7F0A8954 3C018004 */ lui $at, %hi(D_800409BC) +/* 0DD488 7F0A8958 C43209BC */ lwc1 $f18, %lo(D_800409BC)($at) +/* 0DD48C 7F0A895C 3C0E8004 */ lui $t6, %hi(D_800409B8) +/* 0DD490 7F0A8960 8DCE09B8 */ lw $t6, %lo(D_800409B8)($t6) +/* 0DD494 7F0A8964 46009121 */ cvt.d.s $f4, $f18 +/* 0DD498 7F0A8968 3C058005 */ lui $a1, %hi(aDDDF) +/* 0DD49C 7F0A896C 3C068004 */ lui $a2, %hi(D_800409B0) +/* 0DD4A0 7F0A8970 3C078004 */ lui $a3, %hi(D_800409B4) +/* 0DD4A4 7F0A8974 AFA2004C */ sw $v0, 0x4c($sp) +/* 0DD4A8 7F0A8978 8CE709B4 */ lw $a3, %lo(D_800409B4)($a3) +/* 0DD4AC 7F0A897C 8CC609B0 */ lw $a2, %lo(D_800409B0)($a2) +/* 0DD4B0 7F0A8980 24A57768 */ addiu $a1, %lo(aDDDF) # addiu $a1, $a1, 0x7768 +/* 0DD4B4 7F0A8984 F7A40018 */ sdc1 $f4, 0x18($sp) +/* 0DD4B8 7F0A8988 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DD4BC 7F0A898C 0C002B25 */ jal sprintf +/* 0DD4C0 7F0A8990 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DD4C4 7F0A8994 0FC2B366 */ jal microcode_constructor +/* 0DD4C8 7F0A8998 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD4CC 7F0A899C AFA20928 */ sw $v0, 0x928($sp) +/* 0DD4D0 7F0A89A0 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4D4 7F0A89A4 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD4D8 7F0A89A8 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DD4DC 7F0A89AC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD4E0 7F0A89B0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD4E4 7F0A89B4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD4E8 7F0A89B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DD4EC 7F0A89BC 3C0F8004 */ lui $t7, %hi(D_800409C0) +/* 0DD4F0 7F0A89C0 8DEF09C0 */ lw $t7, %lo(D_800409C0)($t7) +/* 0DD4F4 7F0A89C4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0DD4F8 7F0A89C8 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4FC 7F0A89CC 11E0004B */ beqz $t7, .L7F0A8AFC +/* 0DD500 7F0A89D0 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD504 7F0A89D4 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0DD508 7F0A89D8 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DD50C 7F0A89DC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD510 7F0A89E0 13000003 */ beqz $t8, .L7F0A89F0 +/* 0DD514 7F0A89E4 2402000C */ li $v0, 12 +/* 0DD518 7F0A89E8 10000001 */ b .L7F0A89F0 +/* 0DD51C 7F0A89EC 2402000E */ li $v0, 14 +.L7F0A89F0: +/* 0DD520 7F0A89F0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD524 7F0A89F4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD528 7F0A89F8 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD52C 7F0A89FC 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD530 7F0A8A00 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD534 7F0A8A04 2419004E */ li $t9, 78 +/* 0DD538 7F0A8A08 AFB90870 */ sw $t9, 0x870($sp) +/* 0DD53C 7F0A8A0C 10600003 */ beqz $v1, .L7F0A8A1C +/* 0DD540 7F0A8A10 3C0B8004 */ lui $t3, %hi(D_800409C4) +/* 0DD544 7F0A8A14 10000002 */ b .L7F0A8A20 +/* 0DD548 7F0A8A18 2402000E */ li $v0, 14 +.L7F0A8A1C: +/* 0DD54C 7F0A8A1C 2402000C */ li $v0, 12 +.L7F0A8A20: +/* 0DD550 7F0A8A20 8D6B09C4 */ lw $t3, %lo(D_800409C4)($t3) +/* 0DD554 7F0A8A24 00024840 */ sll $t1, $v0, 1 +/* 0DD558 7F0A8A28 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD55C 7F0A8A2C 15600018 */ bnez $t3, .L7F0A8A90 +/* 0DD560 7F0A8A30 AFAA086C */ sw $t2, 0x86c($sp) +/* 0DD564 7F0A8A34 10600003 */ beqz $v1, .L7F0A8A44 +/* 0DD568 7F0A8A38 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD56C 7F0A8A3C 10000002 */ b .L7F0A8A48 +/* 0DD570 7F0A8A40 2402000E */ li $v0, 14 +.L7F0A8A44: +/* 0DD574 7F0A8A44 2402000C */ li $v0, 12 +.L7F0A8A48: +/* 0DD578 7F0A8A48 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DD57C 7F0A8A4C 8FAE0054 */ lw $t6, 0x54($sp) +/* 0DD580 7F0A8A50 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0DD584 7F0A8A54 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0DD588 7F0A8A58 240F0064 */ li $t7, 100 +/* 0DD58C 7F0A8A5C AFAF0020 */ sw $t7, 0x20($sp) +/* 0DD590 7F0A8A60 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD594 7F0A8A64 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD598 7F0A8A68 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD59C 7F0A8A6C 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD5A0 7F0A8A70 AFB00014 */ sw $s0, 0x14($sp) +/* 0DD5A4 7F0A8A74 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD5A8 7F0A8A78 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD5AC 7F0A8A7C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DD5B0 7F0A8A80 0FC2B6AF */ jal en_text_write_stuff +/* 0DD5B4 7F0A8A84 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DD5B8 7F0A8A88 1000001A */ b .L7F0A8AF4 +/* 0DD5BC 7F0A8A8C AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8A90: +/* 0DD5C0 7F0A8A90 10600003 */ beqz $v1, .L7F0A8AA0 +/* 0DD5C4 7F0A8A94 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD5C8 7F0A8A98 10000002 */ b .L7F0A8AA4 +/* 0DD5CC 7F0A8A9C 2402000E */ li $v0, 14 +.L7F0A8AA0: +/* 0DD5D0 7F0A8AA0 2402000C */ li $v0, 12 +.L7F0A8AA4: +/* 0DD5D4 7F0A8AA4 8FAA0054 */ lw $t2, 0x54($sp) +/* 0DD5D8 7F0A8AA8 8FB80058 */ lw $t8, 0x58($sp) +/* 0DD5DC 7F0A8AAC 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DD5E0 7F0A8AB0 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DD5E4 7F0A8AB4 2419FFFF */ li $t9, -1 +/* 0DD5E8 7F0A8AB8 240C0064 */ li $t4, 100 +/* 0DD5EC 7F0A8ABC 254B0001 */ addiu $t3, $t2, 1 +/* 0DD5F0 7F0A8AC0 AFAB0020 */ sw $t3, 0x20($sp) +/* 0DD5F4 7F0A8AC4 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DD5F8 7F0A8AC8 AFB90018 */ sw $t9, 0x18($sp) +/* 0DD5FC 7F0A8ACC AFA9001C */ sw $t1, 0x1c($sp) +/* 0DD600 7F0A8AD0 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD604 7F0A8AD4 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD608 7F0A8AD8 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD60C 7F0A8ADC AFB00014 */ sw $s0, 0x14($sp) +/* 0DD610 7F0A8AE0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DD614 7F0A8AE4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0DD618 7F0A8AE8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DD61C 7F0A8AEC AFB80010 */ sw $t8, 0x10($sp) +/* 0DD620 7F0A8AF0 AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8AF4: +/* 0DD624 7F0A8AF4 0FC2A0DE */ jal sub_GAME_7F0A8378 +/* 0DD628 7F0A8AF8 00000000 */ nop +.L7F0A8AFC: +/* 0DD62C 7F0A8AFC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A8B00: +/* 0DD630 7F0A8B00 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD634 7F0A8B04 8FB00038 */ lw $s0, 0x38($sp) +/* 0DD638 7F0A8B08 03E00008 */ jr $ra +/* 0DD63C 7F0A8B0C 27BD0928 */ addiu $sp, $sp, 0x928 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel debug_gun_watch_move_related2 +/* 0DDB2C 7F0A8FBC 27BDF6D0 */ addiu $sp, $sp, -0x930 +/* 0DDB30 7F0A8FC0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DDB34 7F0A8FC4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DDB38 7F0A8FC8 0FC29F39 */ jal sub_GAME_7F0A714C +/* 0DDB3C 7F0A8FCC 00003025 */ move $a2, $zero +/* 0DDB40 7F0A8FD0 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0DDB44 7F0A8FD4 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDB48 7F0A8FD8 24010001 */ li $at, 1 +/* 0DDB4C 7F0A8FDC 504101B8 */ beql $v0, $at, .Ljp7F0A96C0 +/* 0DDB50 7F0A8FE0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DDB54 7F0A8FE4 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0DDB58 7F0A8FE8 00000000 */ nop +/* 0DDB5C 7F0A8FEC 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB60 7F0A8FF0 AFA2092C */ sw $v0, 0x92c($sp) +/* 0DDB64 7F0A8FF4 0FC237E4 */ jal sub_GAME_7F08D528 +/* 0DDB68 7F0A8FF8 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB6C 7F0A8FFC 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB70 7F0A9000 E7A0089C */ swc1 $f0, 0x89c($sp) +/* 0DDB74 7F0A9004 0FC237EE */ jal sub_GAME_7F08D550 +/* 0DDB78 7F0A9008 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB7C 7F0A900C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB80 7F0A9010 E7A00898 */ swc1 $f0, 0x898($sp) +/* 0DDB84 7F0A9014 0FC237F8 */ jal sub_GAME_7F08D578 +/* 0DDB88 7F0A9018 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB8C 7F0A901C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB90 7F0A9020 E7A00894 */ swc1 $f0, 0x894($sp) +/* 0DDB94 7F0A9024 0FC23802 */ jal sub_GAME_7F08D5A0 +/* 0DDB98 7F0A9028 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB9C 7F0A902C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBA0 7F0A9030 E7A00890 */ swc1 $f0, 0x890($sp) +/* 0DDBA4 7F0A9034 0FC23716 */ jal get_weaponnum_by_inv_index +/* 0DDBA8 7F0A9038 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBAC 7F0A903C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBB0 7F0A9040 AFA2088C */ sw $v0, 0x88c($sp) +/* 0DDBB4 7F0A9044 0FC238CE */ jal sub_GAME_7F08D850 +/* 0DDBB8 7F0A9048 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBBC 7F0A904C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBC0 7F0A9050 E7A00888 */ swc1 $f0, 0x888($sp) +/* 0DDBC4 7F0A9054 0FC238D8 */ jal sub_GAME_7F08D878 +/* 0DDBC8 7F0A9058 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBCC 7F0A905C 0FC246CD */ jal get_debug_gunwatchpos_flag +/* 0DDBD0 7F0A9060 E7A00884 */ swc1 $f0, 0x884($sp) +/* 0DDBD4 7F0A9064 50400040 */ beql $v0, $zero, .Ljp7F0A9168 +/* 0DDBD8 7F0A9068 3C014120 */ lui $at, 0x4120 +/* 0DDBDC 7F0A906C 0FC177BC */ jal get_item_in_hand +/* 0DDBE0 7F0A9070 00002025 */ move $a0, $zero +/* 0DDBE4 7F0A9074 000270C0 */ sll $t6, $v0, 3 +/* 0DDBE8 7F0A9078 01C27023 */ subu $t6, $t6, $v0 +/* 0DDBEC 7F0A907C 3C0F8003 */ lui $t7, %hi(gitem_structs) # $t7, 0x8003 +/* 0DDBF0 7F0A9080 25EF3964 */ addiu $t7, %lo(gitem_structs) # addiu $t7, $t7, 0x3964 +/* 0DDBF4 7F0A9084 000E70C0 */ sll $t6, $t6, 3 +/* 0DDBF8 7F0A9088 01CF8021 */ addu $s0, $t6, $t7 +/* 0DDBFC 7F0A908C 00002025 */ move $a0, $zero +/* 0DDC00 7F0A9090 0C0030DC */ jal get_controller_buttons_held +/* 0DDC04 7F0A9094 24050002 */ li $a1, 2 +/* 0DDC08 7F0A9098 10400006 */ beqz $v0, .Ljp7F0A90B4 +/* 0DDC0C 7F0A909C 00002025 */ move $a0, $zero +/* 0DDC10 7F0A90A0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC14 7F0A90A4 44813000 */ mtc1 $at, $f6 +/* 0DDC18 7F0A90A8 C604002C */ lwc1 $f4, 0x2c($s0) +/* 0DDC1C 7F0A90AC 46062201 */ sub.s $f8, $f4, $f6 +/* 0DDC20 7F0A90B0 E608002C */ swc1 $f8, 0x2c($s0) +.Ljp7F0A90B4: +/* 0DDC24 7F0A90B4 0C0030DC */ jal get_controller_buttons_held +/* 0DDC28 7F0A90B8 24050001 */ li $a1, 1 +/* 0DDC2C 7F0A90BC 10400006 */ beqz $v0, .Ljp7F0A90D8 +/* 0DDC30 7F0A90C0 00002025 */ move $a0, $zero +/* 0DDC34 7F0A90C4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC38 7F0A90C8 44818000 */ mtc1 $at, $f16 +/* 0DDC3C 7F0A90CC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 0DDC40 7F0A90D0 46105480 */ add.s $f18, $f10, $f16 +/* 0DDC44 7F0A90D4 E612002C */ swc1 $f18, 0x2c($s0) +.Ljp7F0A90D8: +/* 0DDC48 7F0A90D8 0C0030DC */ jal get_controller_buttons_held +/* 0DDC4C 7F0A90DC 24050004 */ li $a1, 4 +/* 0DDC50 7F0A90E0 10400006 */ beqz $v0, .Ljp7F0A90FC +/* 0DDC54 7F0A90E4 00002025 */ move $a0, $zero +/* 0DDC58 7F0A90E8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC5C 7F0A90EC 44813000 */ mtc1 $at, $f6 +/* 0DDC60 7F0A90F0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0DDC64 7F0A90F4 46062200 */ add.s $f8, $f4, $f6 +/* 0DDC68 7F0A90F8 E6080030 */ swc1 $f8, 0x30($s0) +.Ljp7F0A90FC: +/* 0DDC6C 7F0A90FC 0C0030DC */ jal get_controller_buttons_held +/* 0DDC70 7F0A9100 24050008 */ li $a1, 8 +/* 0DDC74 7F0A9104 10400006 */ beqz $v0, .Ljp7F0A9120 +/* 0DDC78 7F0A9108 00002025 */ move $a0, $zero +/* 0DDC7C 7F0A910C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC80 7F0A9110 44818000 */ mtc1 $at, $f16 +/* 0DDC84 7F0A9114 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 0DDC88 7F0A9118 46105481 */ sub.s $f18, $f10, $f16 +/* 0DDC8C 7F0A911C E6120030 */ swc1 $f18, 0x30($s0) +.Ljp7F0A9120: +/* 0DDC90 7F0A9120 0C0030DC */ jal get_controller_buttons_held +/* 0DDC94 7F0A9124 24050020 */ li $a1, 32 +/* 0DDC98 7F0A9128 10400006 */ beqz $v0, .Ljp7F0A9144 +/* 0DDC9C 7F0A912C 00002025 */ move $a0, $zero +/* 0DDCA0 7F0A9130 3C018006 */ lui $at, %hi(D_80058520) # $at, 0x8006 +/* 0DDCA4 7F0A9134 C4268560 */ lwc1 $f6, %lo(D_80058520)($at) +/* 0DDCA8 7F0A9138 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0DDCAC 7F0A913C 46062202 */ mul.s $f8, $f4, $f6 +/* 0DDCB0 7F0A9140 E6080034 */ swc1 $f8, 0x34($s0) +.Ljp7F0A9144: +/* 0DDCB4 7F0A9144 0C0030DC */ jal get_controller_buttons_held +/* 0DDCB8 7F0A9148 24050010 */ li $a1, 16 +/* 0DDCBC 7F0A914C 10400005 */ beqz $v0, .Ljp7F0A9164 +/* 0DDCC0 7F0A9150 3C018006 */ lui $at, %hi(D_80058524) # $at, 0x8006 +/* 0DDCC4 7F0A9154 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0DDCC8 7F0A9158 C4308564 */ lwc1 $f16, %lo(D_80058524)($at) +/* 0DDCCC 7F0A915C 46105482 */ mul.s $f18, $f10, $f16 +/* 0DDCD0 7F0A9160 E6120034 */ swc1 $f18, 0x34($s0) +.Ljp7F0A9164: +/* 0DDCD4 7F0A9164 3C014120 */ li $at, 0x41200000 # 10.000000 +.Ljp7F0A9168: +/* 0DDCD8 7F0A9168 44812000 */ mtc1 $at, $f4 +/* 0DDCDC 7F0A916C 3C018006 */ lui $at, %hi(D_80058528) # $at, 0x8006 +/* 0DDCE0 7F0A9170 C4268568 */ lwc1 $f6, %lo(D_80058528)($at) +/* 0DDCE4 7F0A9174 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DDCE8 7F0A9178 44814000 */ mtc1 $at, $f8 +/* 0DDCEC 7F0A917C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DDCF0 7F0A9180 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DDCF4 7F0A9184 8FA4092C */ lw $a0, 0x92c($sp) +/* 0DDCF8 7F0A9188 27A5092A */ addiu $a1, $sp, 0x92a +/* 0DDCFC 7F0A918C 8FA6089C */ lw $a2, 0x89c($sp) +/* 0DDD00 7F0A9190 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DDD04 7F0A9194 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DDD08 7F0A9198 0C003FBC */ jal guPerspective +/* 0DDD0C 7F0A919C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DDD10 7F0A91A0 8FA20930 */ lw $v0, 0x930($sp) +/* 0DDD14 7F0A91A4 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0DDD18 7F0A91A8 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0DDD1C 7F0A91AC 00408025 */ move $s0, $v0 +/* 0DDD20 7F0A91B0 AE180000 */ sw $t8, ($s0) +/* 0DDD24 7F0A91B4 24420008 */ addiu $v0, $v0, 8 +/* 0DDD28 7F0A91B8 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDD2C 7F0A91BC 0C003A3C */ jal osVirtualToPhysical +/* 0DDD30 7F0A91C0 8FA4092C */ lw $a0, 0x92c($sp) +/* 0DDD34 7F0A91C4 AE020004 */ sw $v0, 4($s0) +/* 0DDD38 7F0A91C8 3C018006 */ lui $at, %hi(D_8005852C) # $at, 0x8006 +/* 0DDD3C 7F0A91CC C430856C */ lwc1 $f16, %lo(D_8005852C)($at) +/* 0DDD40 7F0A91D0 C7AA0884 */ lwc1 $f10, 0x884($sp) +/* 0DDD44 7F0A91D4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DDD48 7F0A91D8 44812000 */ mtc1 $at, $f4 +/* 0DDD4C 7F0A91DC 46105482 */ mul.s $f18, $f10, $f16 +/* 0DDD50 7F0A91E0 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDD54 7F0A91E4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0DDD58 7F0A91E8 46049303 */ div.s $f12, $f18, $f4 +/* 0DDD5C 7F0A91EC 3C018006 */ lui $at, %hi(D_80058530) # $at, 0x8006 +/* 0DDD60 7F0A91F0 C4208570 */ lwc1 $f0, %lo(D_80058530)($at) +/* 0DDD64 7F0A91F4 C7A60888 */ lwc1 $f6, 0x888($sp) +/* 0DDD68 7F0A91F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DDD6C 7F0A91FC 44815000 */ mtc1 $at, $f10 +/* 0DDD70 7F0A9200 46003202 */ mul.s $f8, $f6, $f0 +/* 0DDD74 7F0A9204 27B008A8 */ addiu $s0, $sp, 0x8a8 +/* 0DDD78 7F0A9208 02002825 */ move $a1, $s0 +/* 0DDD7C 7F0A920C 460A4403 */ div.s $f16, $f8, $f10 +/* 0DDD80 7F0A9210 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0DDD84 7F0A9214 46100301 */ sub.s $f12, $f0, $f16 +/* 0DDD88 7F0A9218 02002025 */ move $a0, $s0 +/* 0DDD8C 7F0A921C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0DDD90 7F0A9220 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDD94 7F0A9224 3C018004 */ lui $at, %hi(D_80040B14) # $at, 0x8004 +/* 0DDD98 7F0A9228 0FC160F0 */ jal cosf +/* 0DDD9C 7F0A922C C42C0B44 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DDDA0 7F0A9230 C7B20890 */ lwc1 $f18, 0x890($sp) +/* 0DDDA4 7F0A9234 3C018004 */ lui $at, %hi(D_80040B14) # $at, 0x8004 +/* 0DDDA8 7F0A9238 C42C0B44 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DDDAC 7F0A923C 46120102 */ mul.s $f4, $f0, $f18 +/* 0DDDB0 7F0A9240 0FC160F3 */ jal sinf +/* 0DDDB4 7F0A9244 E7A408A4 */ swc1 $f4, 0x8a4($sp) +/* 0DDDB8 7F0A9248 C7A60890 */ lwc1 $f6, 0x890($sp) +/* 0DDDBC 7F0A924C C7AE0898 */ lwc1 $f14, 0x898($sp) +/* 0DDDC0 7F0A9250 44801000 */ mtc1 $zero, $f2 +/* 0DDDC4 7F0A9254 46060202 */ mul.s $f8, $f0, $f6 +/* 0DDDC8 7F0A9258 C7AC0894 */ lwc1 $f12, 0x894($sp) +/* 0DDDCC 7F0A925C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DDDD0 7F0A9260 44818000 */ mtc1 $at, $f16 +/* 0DDDD4 7F0A9264 44066000 */ mfc1 $a2, $f12 +/* 0DDDD8 7F0A9268 02002025 */ move $a0, $s0 +/* 0DDDDC 7F0A926C 8FA508A4 */ lw $a1, 0x8a4($sp) +/* 0DDDE0 7F0A9270 460E4280 */ add.s $f10, $f8, $f14 +/* 0DDDE4 7F0A9274 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0DDDE8 7F0A9278 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0DDDEC 7F0A927C E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DDDF0 7F0A9280 44075000 */ mfc1 $a3, $f10 +/* 0DDDF4 7F0A9284 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0DDDF8 7F0A9288 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DDDFC 7F0A928C 0FC166ED */ jal sub_GAME_7F059694 +/* 0DDE00 7F0A9290 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0DDE04 7F0A9294 02002025 */ move $a0, $s0 +/* 0DDE08 7F0A9298 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0DDE0C 7F0A929C 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDE10 7F0A92A0 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0DDE14 7F0A92A4 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDE18 7F0A92A8 3C19A0FF */ lui $t9, (0xA0FFA03C >> 16) # lui $t9, 0xa0ff +/* 0DDE1C 7F0A92AC 3739A03C */ ori $t9, (0xA0FFA03C & 0xFFFF) # ori $t9, $t9, 0xa03c +/* 0DDE20 7F0A92B0 AFB90010 */ sw $t9, 0x10($sp) +/* 0DDE24 7F0A92B4 00402025 */ move $a0, $v0 +/* 0DDE28 7F0A92B8 8FA5088C */ lw $a1, 0x88c($sp) +/* 0DDE2C 7F0A92BC 27A608E8 */ addiu $a2, $sp, 0x8e8 +/* 0DDE30 7F0A92C0 0FC18D4C */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DDE34 7F0A92C4 24070040 */ li $a3, 64 +/* 0DDE38 7F0A92C8 3C0B8005 */ lui $t3, %hi(j_text_trigger) # $t3, 0x8005 +/* 0DDE3C 7F0A92CC 8D6B8500 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DDE40 7F0A92D0 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) # $t1, 0x8004 +/* 0DDE44 7F0A92D4 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) # $t2, 0x8004 +/* 0DDE48 7F0A92D8 8D290EDC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0DDE4C 7F0A92DC 8D4A0EE0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0DDE50 7F0A92E0 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDE54 7F0A92E4 AFA00868 */ sw $zero, 0x868($sp) +/* 0DDE58 7F0A92E8 AFA00864 */ sw $zero, 0x864($sp) +/* 0DDE5C 7F0A92EC AFA90860 */ sw $t1, 0x860($sp) +/* 0DDE60 7F0A92F0 11600004 */ beqz $t3, .Ljp7F0A9304 +/* 0DDE64 7F0A92F4 AFAA085C */ sw $t2, 0x85c($sp) +/* 0DDE68 7F0A92F8 240C0082 */ li $t4, 130 +/* 0DDE6C 7F0A92FC 10000003 */ b .Ljp7F0A930C +/* 0DDE70 7F0A9300 AFAC0084 */ sw $t4, 0x84($sp) +.Ljp7F0A9304: +/* 0DDE74 7F0A9304 240D008C */ li $t5, 140 +/* 0DDE78 7F0A9308 AFAD0084 */ sw $t5, 0x84($sp) +.Ljp7F0A930C: +/* 0DDE7C 7F0A930C A3A0008C */ sb $zero, 0x8c($sp) +/* 0DDE80 7F0A9310 0FC23667 */ jal count_total_items_in_inventory +/* 0DDE84 7F0A9314 00008025 */ move $s0, $zero +/* 0DDE88 7F0A9318 1840000B */ blez $v0, .Ljp7F0A9348 +/* 0DDE8C 7F0A931C 00000000 */ nop +.Ljp7F0A9320: +/* 0DDE90 7F0A9320 0FC2374A */ jal sub_GAME_7F08D340 +/* 0DDE94 7F0A9324 02002025 */ move $a0, $s0 +/* 0DDE98 7F0A9328 27A4008C */ addiu $a0, $sp, 0x8c +/* 0DDE9C 7F0A932C 0C002A03 */ jal string_append_from_obseg_textbank +/* 0DDEA0 7F0A9330 00402825 */ move $a1, $v0 +/* 0DDEA4 7F0A9334 0FC23667 */ jal count_total_items_in_inventory +/* 0DDEA8 7F0A9338 26100001 */ addiu $s0, $s0, 1 +/* 0DDEAC 7F0A933C 0202082A */ slt $at, $s0, $v0 +/* 0DDEB0 7F0A9340 1420FFF7 */ bnez $at, .Ljp7F0A9320 +/* 0DDEB4 7F0A9344 00000000 */ nop +.Ljp7F0A9348: +/* 0DDEB8 7F0A9348 3C038004 */ lui $v1, %hi(D_800409C4) # $v1, 0x8004 +/* 0DDEBC 7F0A934C 246309F4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9f4 +/* 0DDEC0 7F0A9350 8C620000 */ lw $v0, ($v1) +/* 0DDEC4 7F0A9354 18400002 */ blez $v0, .Ljp7F0A9360 +/* 0DDEC8 7F0A9358 244EFFFF */ addiu $t6, $v0, -1 +/* 0DDECC 7F0A935C AC6E0000 */ sw $t6, ($v1) +.Ljp7F0A9360: +/* 0DDED0 7F0A9360 0FC299C8 */ jal sub_GAME_7F0A5B80 +/* 0DDED4 7F0A9364 00000000 */ nop +/* 0DDED8 7F0A9368 3C188005 */ lui $t8, %hi(j_text_trigger) # $t8, 0x8005 +/* 0DDEDC 7F0A936C 8F188500 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0DDEE0 7F0A9370 8FA30084 */ lw $v1, 0x84($sp) +/* 0DDEE4 7F0A9374 240F004E */ li $t7, 78 +/* 0DDEE8 7F0A9378 AFAF0878 */ sw $t7, 0x878($sp) +/* 0DDEEC 7F0A937C 13000003 */ beqz $t8, .Ljp7F0A938C +/* 0DDEF0 7F0A9380 AFA30874 */ sw $v1, 0x874($sp) +/* 0DDEF4 7F0A9384 10000002 */ b .Ljp7F0A9390 +/* 0DDEF8 7F0A9388 2402000E */ li $v0, 14 +.Ljp7F0A938C: +/* 0DDEFC 7F0A938C 2402000C */ li $v0, 12 +.Ljp7F0A9390: +/* 0DDF00 7F0A9390 0002C840 */ sll $t9, $v0, 1 +/* 0DDF04 7F0A9394 03238021 */ addu $s0, $t9, $v1 +/* 0DDF08 7F0A9398 26100001 */ addiu $s0, $s0, 1 +/* 0DDF0C 7F0A939C 0FC2B652 */ jal microcode_constructor +/* 0DDF10 7F0A93A0 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDF14 7F0A93A4 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 0DDF18 7F0A93A8 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0DDF1C 7F0A93AC AFA20930 */ sw $v0, 0x930($sp) +/* 0DDF20 7F0A93B0 27A40868 */ addiu $a0, $sp, 0x868 +/* 0DDF24 7F0A93B4 11200003 */ beqz $t1, .Ljp7F0A93C4 +/* 0DDF28 7F0A93B8 27A50864 */ addiu $a1, $sp, 0x864 +/* 0DDF2C 7F0A93BC 10000002 */ b .Ljp7F0A93C8 +/* 0DDF30 7F0A93C0 2402000E */ li $v0, 14 +.Ljp7F0A93C4: +/* 0DDF34 7F0A93C4 2402000C */ li $v0, 12 +.Ljp7F0A93C8: +/* 0DDF38 7F0A93C8 8FAA0860 */ lw $t2, 0x860($sp) +/* 0DDF3C 7F0A93CC 27A6008C */ addiu $a2, $sp, 0x8c +/* 0DDF40 7F0A93D0 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DDF44 7F0A93D4 AFA20014 */ sw $v0, 0x14($sp) +/* 0DDF48 7F0A93D8 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DDF4C 7F0A93DC AFAA0010 */ sw $t2, 0x10($sp) +/* 0DDF50 7F0A93E0 3C0B8005 */ lui $t3, %hi(j_text_trigger) # $t3, 0x8005 +/* 0DDF54 7F0A93E4 8D6B8500 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DDF58 7F0A93E8 8FA60084 */ lw $a2, 0x84($sp) +/* 0DDF5C 7F0A93EC 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDF60 7F0A93F0 11600003 */ beqz $t3, .Ljp7F0A9400 +/* 0DDF64 7F0A93F4 2405004E */ li $a1, 78 +/* 0DDF68 7F0A93F8 10000002 */ b .Ljp7F0A9404 +/* 0DDF6C 7F0A93FC 2402000E */ li $v0, 14 +.Ljp7F0A9400: +/* 0DDF70 7F0A9400 2402000C */ li $v0, 12 +.Ljp7F0A9404: +/* 0DDF74 7F0A9404 00026080 */ sll $t4, $v0, 2 +/* 0DDF78 7F0A9408 8FA70864 */ lw $a3, 0x864($sp) +/* 0DDF7C 7F0A940C 01826021 */ addu $t4, $t4, $v0 +/* 0DDF80 7F0A9410 01866821 */ addu $t5, $t4, $a2 +/* 0DDF84 7F0A9414 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DDF88 7F0A9418 AFA00014 */ sw $zero, 0x14($sp) +/* 0DDF8C 7F0A941C 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0DDF90 7F0A9420 24E7004E */ addiu $a3, $a3, 0x4e +/* 0DDF94 7F0A9424 3C038005 */ lui $v1, %hi(j_text_trigger) # $v1, 0x8005 +/* 0DDF98 7F0A9428 8C638500 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DDF9C 7F0A942C 00402025 */ move $a0, $v0 +/* 0DDFA0 7F0A9430 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DDFA4 7F0A9434 10600003 */ beqz $v1, .Ljp7F0A9444 +/* 0DDFA8 7F0A9438 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DDFAC 7F0A943C 10000002 */ b .Ljp7F0A9448 +/* 0DDFB0 7F0A9440 2408000E */ li $t0, 14 +.Ljp7F0A9444: +/* 0DDFB4 7F0A9444 2408000C */ li $t0, 12 +.Ljp7F0A9448: +/* 0DDFB8 7F0A9448 10600003 */ beqz $v1, .Ljp7F0A9458 +/* 0DDFBC 7F0A944C 27A7008C */ addiu $a3, $sp, 0x8c +/* 0DDFC0 7F0A9450 10000002 */ b .Ljp7F0A945C +/* 0DDFC4 7F0A9454 2402000E */ li $v0, 14 +.Ljp7F0A9458: +/* 0DDFC8 7F0A9458 2402000C */ li $v0, 12 +.Ljp7F0A945C: +/* 0DDFCC 7F0A945C 8FB90864 */ lw $t9, 0x864($sp) +/* 0DDFD0 7F0A9460 3C0B8004 */ lui $t3, %hi(D_800409B0) # $t3, 0x8004 +/* 0DDFD4 7F0A9464 8D6B09E0 */ lw $t3, %lo(D_800409B0)($t3) +/* 0DDFD8 7F0A9468 8FAE085C */ lw $t6, 0x85c($sp) +/* 0DDFDC 7F0A946C 8FAF0860 */ lw $t7, 0x860($sp) +/* 0DDFE0 7F0A9470 3C1800AA */ lui $t8, (0x00AA00B0 >> 16) # lui $t8, 0xaa +/* 0DDFE4 7F0A9474 00085080 */ sll $t2, $t0, 2 +/* 0DDFE8 7F0A9478 01485021 */ addu $t2, $t2, $t0 +/* 0DDFEC 7F0A947C 371800B0 */ ori $t8, (0x00AA00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DDFF0 7F0A9480 27290001 */ addiu $t1, $t9, 1 +/* 0DDFF4 7F0A9484 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DDFF8 7F0A9488 AFB80018 */ sw $t8, 0x18($sp) +/* 0DDFFC 7F0A948C AFAA0020 */ sw $t2, 0x20($sp) +/* 0DE000 7F0A9490 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE004 7F0A9494 AFAB0024 */ sw $t3, 0x24($sp) +/* 0DE008 7F0A9498 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE00C 7F0A949C 0FC2B99B */ jal en_text_write_stuff +/* 0DE010 7F0A94A0 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DE014 7F0A94A4 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0DE018 7F0A94A8 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0DE01C 7F0A94AC 00402025 */ move $a0, $v0 +/* 0DE020 7F0A94B0 2405004B */ li $a1, 75 +/* 0DE024 7F0A94B4 11800003 */ beqz $t4, .Ljp7F0A94C4 +/* 0DE028 7F0A94B8 02003025 */ move $a2, $s0 +/* 0DE02C 7F0A94BC 10000002 */ b .Ljp7F0A94C8 +/* 0DE030 7F0A94C0 2402000E */ li $v0, 14 +.Ljp7F0A94C4: +/* 0DE034 7F0A94C4 2402000C */ li $v0, 12 +.Ljp7F0A94C8: +/* 0DE038 7F0A94C8 8FA70864 */ lw $a3, 0x864($sp) +/* 0DE03C 7F0A94CC 00506821 */ addu $t5, $v0, $s0 +/* 0DE040 7F0A94D0 3C0F0080 */ lui $t7, (0x00800050 >> 16) # lui $t7, 0x80 +/* 0DE044 7F0A94D4 35EF0050 */ ori $t7, (0x00800050 & 0xFFFF) # ori $t7, $t7, 0x50 +/* 0DE048 7F0A94D8 25AEFFFE */ addiu $t6, $t5, -2 +/* 0DE04C 7F0A94DC AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE050 7F0A94E0 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DE054 7F0A94E4 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0DE058 7F0A94E8 24E70052 */ addiu $a3, $a3, 0x52 +/* 0DE05C 7F0A94EC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0DE060 7F0A94F0 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0DE064 7F0A94F4 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) # $s0, 0x8004 +/* 0DE068 7F0A94F8 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DE06C 7F0A94FC AFA20930 */ sw $v0, 0x930($sp) +/* 0DE070 7F0A9500 8E100EDC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DE074 7F0A9504 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DE078 7F0A9508 0FC2374A */ jal sub_GAME_7F08D340 +/* 0DE07C 7F0A950C AFB8005C */ sw $t8, 0x5c($sp) +/* 0DE080 7F0A9510 3C018004 */ lui $at, %hi(D_800409BC) # $at, 0x8004 +/* 0DE084 7F0A9514 C43209EC */ lwc1 $f18, %lo(D_800409BC)($at) +/* 0DE088 7F0A9518 3C198004 */ lui $t9, %hi(D_800409B8) # $t9, 0x8004 +/* 0DE08C 7F0A951C 8F3909E8 */ lw $t9, %lo(D_800409B8)($t9) +/* 0DE090 7F0A9520 46009121 */ cvt.d.s $f4, $f18 +/* 0DE094 7F0A9524 3C058005 */ lui $a1, %hi(aDDDF) # $a1, 0x8005 +/* 0DE098 7F0A9528 3C068004 */ lui $a2, %hi(D_800409B0) # $a2, 0x8004 +/* 0DE09C 7F0A952C 3C078004 */ lui $a3, %hi(D_800409B4) # $a3, 0x8004 +/* 0DE0A0 7F0A9530 AFA20050 */ sw $v0, 0x50($sp) +/* 0DE0A4 7F0A9534 8CE709E4 */ lw $a3, %lo(D_800409B4)($a3) +/* 0DE0A8 7F0A9538 8CC609E0 */ lw $a2, %lo(D_800409B0)($a2) +/* 0DE0AC 7F0A953C 24A577A8 */ addiu $a1, %lo(aDDDF) # addiu $a1, $a1, 0x77a8 +/* 0DE0B0 7F0A9540 F7A40018 */ sdc1 $f4, 0x18($sp) +/* 0DE0B4 7F0A9544 27A40064 */ addiu $a0, $sp, 0x64 +/* 0DE0B8 7F0A9548 0C002B29 */ jal sprintf +/* 0DE0BC 7F0A954C AFB90010 */ sw $t9, 0x10($sp) +/* 0DE0C0 7F0A9550 0FC2B652 */ jal microcode_constructor +/* 0DE0C4 7F0A9554 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE0C8 7F0A9558 AFA20930 */ sw $v0, 0x930($sp) +/* 0DE0CC 7F0A955C 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DE0D0 7F0A9560 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DE0D4 7F0A9564 27A60064 */ addiu $a2, $sp, 0x64 +/* 0DE0D8 7F0A9568 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DE0DC 7F0A956C AFB00010 */ sw $s0, 0x10($sp) +/* 0DE0E0 7F0A9570 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DE0E4 7F0A9574 AFA00014 */ sw $zero, 0x14($sp) +/* 0DE0E8 7F0A9578 3C098004 */ lui $t1, %hi(D_800409C0) # $t1, 0x8004 +/* 0DE0EC 7F0A957C 8D2909F0 */ lw $t1, %lo(D_800409C0)($t1) +/* 0DE0F0 7F0A9580 3C0A8005 */ lui $t2, %hi(j_text_trigger) # $t2, 0x8005 +/* 0DE0F4 7F0A9584 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DE0F8 7F0A9588 1120004C */ beqz $t1, .Ljp7F0A96BC +/* 0DE0FC 7F0A958C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DE100 7F0A9590 8D4A8500 */ lw $t2, %lo(j_text_trigger)($t2) +/* 0DE104 7F0A9594 8FA60050 */ lw $a2, 0x50($sp) +/* 0DE108 7F0A9598 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DE10C 7F0A959C 11400003 */ beqz $t2, .Ljp7F0A95AC +/* 0DE110 7F0A95A0 2402000C */ li $v0, 12 +/* 0DE114 7F0A95A4 10000001 */ b .Ljp7F0A95AC +/* 0DE118 7F0A95A8 2402000E */ li $v0, 14 +.Ljp7F0A95AC: +/* 0DE11C 7F0A95AC AFB00010 */ sw $s0, 0x10($sp) +/* 0DE120 7F0A95B0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DE124 7F0A95B4 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE128 7F0A95B8 3C038005 */ lui $v1, %hi(j_text_trigger) # $v1, 0x8005 +/* 0DE12C 7F0A95BC 8C638500 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DE130 7F0A95C0 240B004E */ li $t3, 78 +/* 0DE134 7F0A95C4 AFAB0878 */ sw $t3, 0x878($sp) +/* 0DE138 7F0A95C8 10600003 */ beqz $v1, .Ljp7F0A95D8 +/* 0DE13C 7F0A95CC 8FAD0084 */ lw $t5, 0x84($sp) +/* 0DE140 7F0A95D0 10000002 */ b .Ljp7F0A95DC +/* 0DE144 7F0A95D4 2402000E */ li $v0, 14 +.Ljp7F0A95D8: +/* 0DE148 7F0A95D8 2402000C */ li $v0, 12 +.Ljp7F0A95DC: +/* 0DE14C 7F0A95DC 3C0F8004 */ lui $t7, %hi(D_800409C4) # $t7, 0x8004 +/* 0DE150 7F0A95E0 8DEF09F4 */ lw $t7, %lo(D_800409C4)($t7) +/* 0DE154 7F0A95E4 00026040 */ sll $t4, $v0, 1 +/* 0DE158 7F0A95E8 018D7021 */ addu $t6, $t4, $t5 +/* 0DE15C 7F0A95EC 15E00018 */ bnez $t7, .Ljp7F0A9650 +/* 0DE160 7F0A95F0 AFAE0874 */ sw $t6, 0x874($sp) +/* 0DE164 7F0A95F4 10600003 */ beqz $v1, .Ljp7F0A9604 +/* 0DE168 7F0A95F8 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE16C 7F0A95FC 10000002 */ b .Ljp7F0A9608 +/* 0DE170 7F0A9600 2402000E */ li $v0, 14 +.Ljp7F0A9604: +/* 0DE174 7F0A9604 2402000C */ li $v0, 12 +.Ljp7F0A9608: +/* 0DE178 7F0A9608 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DE17C 7F0A960C 8FA90058 */ lw $t1, 0x58($sp) +/* 0DE180 7F0A9610 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0DE184 7F0A9614 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0DE188 7F0A9618 240A0064 */ li $t2, 100 +/* 0DE18C 7F0A961C AFAA0020 */ sw $t2, 0x20($sp) +/* 0DE190 7F0A9620 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE194 7F0A9624 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DE198 7F0A9628 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DE19C 7F0A962C 8FA70050 */ lw $a3, 0x50($sp) +/* 0DE1A0 7F0A9630 AFB00014 */ sw $s0, 0x14($sp) +/* 0DE1A4 7F0A9634 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE1A8 7F0A9638 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE1AC 7F0A963C AFB80010 */ sw $t8, 0x10($sp) +/* 0DE1B0 7F0A9640 0FC2B99B */ jal en_text_write_stuff +/* 0DE1B4 7F0A9644 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DE1B8 7F0A9648 1000001A */ b .Ljp7F0A96B4 +/* 0DE1BC 7F0A964C AFA20930 */ sw $v0, 0x930($sp) +.Ljp7F0A9650: +/* 0DE1C0 7F0A9650 10600003 */ beqz $v1, .Ljp7F0A9660 +/* 0DE1C4 7F0A9654 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE1C8 7F0A9658 10000002 */ b .Ljp7F0A9664 +/* 0DE1CC 7F0A965C 2402000E */ li $v0, 14 +.Ljp7F0A9660: +/* 0DE1D0 7F0A9660 2402000C */ li $v0, 12 +.Ljp7F0A9664: +/* 0DE1D4 7F0A9664 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE1D8 7F0A9668 8FAB005C */ lw $t3, 0x5c($sp) +/* 0DE1DC 7F0A966C 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0DE1E0 7F0A9670 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0DE1E4 7F0A9674 240CFFFF */ li $t4, -1 +/* 0DE1E8 7F0A9678 24180064 */ li $t8, 100 +/* 0DE1EC 7F0A967C 25CF0001 */ addiu $t7, $t6, 1 +/* 0DE1F0 7F0A9680 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DE1F4 7F0A9684 AFB80024 */ sw $t8, 0x24($sp) +/* 0DE1F8 7F0A9688 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DE1FC 7F0A968C AFAD001C */ sw $t5, 0x1c($sp) +/* 0DE200 7F0A9690 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DE204 7F0A9694 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DE208 7F0A9698 8FA70050 */ lw $a3, 0x50($sp) +/* 0DE20C 7F0A969C AFB00014 */ sw $s0, 0x14($sp) +/* 0DE210 7F0A96A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE214 7F0A96A4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0DE218 7F0A96A8 0FC2BCA7 */ jal jp_text_write_stuff +/* 0DE21C 7F0A96AC AFAB0010 */ sw $t3, 0x10($sp) +/* 0DE220 7F0A96B0 AFA20930 */ sw $v0, 0x930($sp) +.Ljp7F0A96B4: +/* 0DE224 7F0A96B4 0FC2A3C4 */ jal sub_GAME_7F0A8378 +/* 0DE228 7F0A96B8 00000000 */ nop +.Ljp7F0A96BC: +/* 0DE22C 7F0A96BC 8FBF003C */ lw $ra, 0x3c($sp) +.Ljp7F0A96C0: +/* 0DE230 7F0A96C0 8FA20930 */ lw $v0, 0x930($sp) +/* 0DE234 7F0A96C4 8FB00038 */ lw $s0, 0x38($sp) +/* 0DE238 7F0A96C8 03E00008 */ jr $ra +/* 0DE23C 7F0A96CC 27BD0930 */ addiu $sp, $sp, 0x930 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8B10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8B10 +/* 0DD640 7F0A8B10 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0DD644 7F0A8B14 AFB00038 */ sw $s0, 0x38($sp) +/* 0DD648 7F0A8B18 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DD64C 7F0A8B1C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DD650 7F0A8B20 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DD654 7F0A8B24 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DD658 7F0A8B28 00808025 */ move $s0, $a0 +/* 0DD65C 7F0A8B2C AFBF003C */ sw $ra, 0x3c($sp) +/* 0DD660 7F0A8B30 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DD664 7F0A8B34 AFA5007C */ sw $a1, 0x7c($sp) +/* 0DD668 7F0A8B38 AFA00058 */ sw $zero, 0x58($sp) +/* 0DD66C 7F0A8B3C AFA00054 */ sw $zero, 0x54($sp) +/* 0DD670 7F0A8B40 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DD674 7F0A8B44 AFAE0050 */ sw $t6, 0x50($sp) +/* 0DD678 7F0A8B48 0FC2350D */ jal sub_GAME_7F08D434 +/* 0DD67C 7F0A8B4C AFAF004C */ sw $t7, 0x4c($sp) +/* 0DD680 7F0A8B50 AFA20048 */ sw $v0, 0x48($sp) +/* 0DD684 7F0A8B54 02002025 */ move $a0, $s0 +/* 0DD688 7F0A8B58 8FA5007C */ lw $a1, 0x7c($sp) +/* 0DD68C 7F0A8B5C 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DD690 7F0A8B60 00003025 */ move $a2, $zero +/* 0DD694 7F0A8B64 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DD698 7F0A8B68 00408025 */ move $s0, $v0 +/* 0DD69C 7F0A8B6C 24010001 */ li $at, 1 +/* 0DD6A0 7F0A8B70 1041006E */ beq $v0, $at, .L7F0A8D2C +/* 0DD6A4 7F0A8B74 3C038004 */ lui $v1, %hi(D_800409C4) +/* 0DD6A8 7F0A8B78 246309C4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9c4 +/* 0DD6AC 7F0A8B7C 8C620000 */ lw $v0, ($v1) +/* 0DD6B0 7F0A8B80 18400002 */ blez $v0, .L7F0A8B8C +/* 0DD6B4 7F0A8B84 2458FFFF */ addiu $t8, $v0, -1 +/* 0DD6B8 7F0A8B88 AC780000 */ sw $t8, ($v1) +.L7F0A8B8C: +/* 0DD6BC 7F0A8B8C 0FC296E0 */ jal sub_GAME_7F0A5B80 +/* 0DD6C0 7F0A8B90 00000000 */ nop +/* 0DD6C4 7F0A8B94 0FC2B366 */ jal microcode_constructor +/* 0DD6C8 7F0A8B98 02002025 */ move $a0, $s0 +/* 0DD6CC 7F0A8B9C 8FB90050 */ lw $t9, 0x50($sp) +/* 0DD6D0 7F0A8BA0 00408025 */ move $s0, $v0 +/* 0DD6D4 7F0A8BA4 27A40058 */ addiu $a0, $sp, 0x58 +/* 0DD6D8 7F0A8BA8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD6DC 7F0A8BAC 8FA60048 */ lw $a2, 0x48($sp) +/* 0DD6E0 7F0A8BB0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD6E4 7F0A8BB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DD6E8 7F0A8BB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD6EC 7F0A8BBC AFB90010 */ sw $t9, 0x10($sp) +/* 0DD6F0 7F0A8BC0 8FA80054 */ lw $t0, 0x54($sp) +/* 0DD6F4 7F0A8BC4 240900AA */ li $t1, 170 +/* 0DD6F8 7F0A8BC8 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DD6FC 7F0A8BCC 01282823 */ subu $a1, $t1, $t0 +/* 0DD700 7F0A8BD0 04A10003 */ bgez $a1, .L7F0A8BE0 +/* 0DD704 7F0A8BD4 00055043 */ sra $t2, $a1, 1 +/* 0DD708 7F0A8BD8 24A10001 */ addiu $at, $a1, 1 +/* 0DD70C 7F0A8BDC 00015043 */ sra $t2, $at, 1 +.L7F0A8BE0: +/* 0DD710 7F0A8BE0 3C0D0080 */ lui $t5, (0x00800050 >> 16) # lui $t5, 0x80 +/* 0DD714 7F0A8BE4 2545004B */ addiu $a1, $t2, 0x4b +/* 0DD718 7F0A8BE8 240B001E */ li $t3, 30 +/* 0DD71C 7F0A8BEC 35AD0050 */ ori $t5, (0x00800050 & 0xFFFF) # ori $t5, $t5, 0x50 +/* 0DD720 7F0A8BF0 AFAB006C */ sw $t3, 0x6c($sp) +/* 0DD724 7F0A8BF4 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DD728 7F0A8BF8 AFA50070 */ sw $a1, 0x70($sp) +/* 0DD72C 7F0A8BFC 02002025 */ move $a0, $s0 +/* 0DD730 7F0A8C00 2406001E */ li $a2, 30 +/* 0DD734 7F0A8C04 8FA70060 */ lw $a3, 0x60($sp) +/* 0DD738 7F0A8C08 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD73C 7F0A8C0C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DD740 7F0A8C10 3C0E8004 */ lui $t6, %hi(D_800409C0) +/* 0DD744 7F0A8C14 8DCE09C0 */ lw $t6, %lo(D_800409C0)($t6) +/* 0DD748 7F0A8C18 00408025 */ move $s0, $v0 +/* 0DD74C 7F0A8C1C 02002025 */ move $a0, $s0 +/* 0DD750 7F0A8C20 11C00031 */ beqz $t6, .L7F0A8CE8 +/* 0DD754 7F0A8C24 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD758 7F0A8C28 0FC2A0DE */ jal sub_GAME_7F0A8378 +/* 0DD75C 7F0A8C2C 00000000 */ nop +/* 0DD760 7F0A8C30 3C0F8004 */ lui $t7, %hi(D_800409C4) +/* 0DD764 7F0A8C34 8DEF09C4 */ lw $t7, %lo(D_800409C4)($t7) +/* 0DD768 7F0A8C38 02002025 */ move $a0, $s0 +/* 0DD76C 7F0A8C3C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD770 7F0A8C40 15E00015 */ bnez $t7, .L7F0A8C98 +/* 0DD774 7F0A8C44 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD778 7F0A8C48 8FB8004C */ lw $t8, 0x4c($sp) +/* 0DD77C 7F0A8C4C 8FB90050 */ lw $t9, 0x50($sp) +/* 0DD780 7F0A8C50 8FA80054 */ lw $t0, 0x54($sp) +/* 0DD784 7F0A8C54 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0DD788 7F0A8C58 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0DD78C 7F0A8C5C 240A0064 */ li $t2, 100 +/* 0DD790 7F0A8C60 AFAA0020 */ sw $t2, 0x20($sp) +/* 0DD794 7F0A8C64 AFA90018 */ sw $t1, 0x18($sp) +/* 0DD798 7F0A8C68 02002025 */ move $a0, $s0 +/* 0DD79C 7F0A8C6C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD7A0 7F0A8C70 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD7A4 7F0A8C74 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD7A8 7F0A8C78 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD7AC 7F0A8C7C AFA00028 */ sw $zero, 0x28($sp) +/* 0DD7B0 7F0A8C80 AFB80010 */ sw $t8, 0x10($sp) +/* 0DD7B4 7F0A8C84 AFB90014 */ sw $t9, 0x14($sp) +/* 0DD7B8 7F0A8C88 0FC2B6AF */ jal en_text_write_stuff +/* 0DD7BC 7F0A8C8C AFA8001C */ sw $t0, 0x1c($sp) +/* 0DD7C0 7F0A8C90 10000026 */ b .L7F0A8D2C +/* 0DD7C4 7F0A8C94 00408025 */ move $s0, $v0 +.L7F0A8C98: +/* 0DD7C8 7F0A8C98 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DD7CC 7F0A8C9C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0DD7D0 7F0A8CA0 8FAC0050 */ lw $t4, 0x50($sp) +/* 0DD7D4 7F0A8CA4 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DD7D8 7F0A8CA8 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DD7DC 7F0A8CAC 240DFFFF */ li $t5, -1 +/* 0DD7E0 7F0A8CB0 24190064 */ li $t9, 100 +/* 0DD7E4 7F0A8CB4 25F80001 */ addiu $t8, $t7, 1 +/* 0DD7E8 7F0A8CB8 AFB80020 */ sw $t8, 0x20($sp) +/* 0DD7EC 7F0A8CBC AFB90024 */ sw $t9, 0x24($sp) +/* 0DD7F0 7F0A8CC0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD7F4 7F0A8CC4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DD7F8 7F0A8CC8 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD7FC 7F0A8CCC AFA00028 */ sw $zero, 0x28($sp) +/* 0DD800 7F0A8CD0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0DD804 7F0A8CD4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD808 7F0A8CD8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DD80C 7F0A8CDC AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD810 7F0A8CE0 10000012 */ b .L7F0A8D2C +/* 0DD814 7F0A8CE4 00408025 */ move $s0, $v0 +.L7F0A8CE8: +/* 0DD818 7F0A8CE8 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DD81C 7F0A8CEC 8FA80050 */ lw $t0, 0x50($sp) +/* 0DD820 7F0A8CF0 8FAB0054 */ lw $t3, 0x54($sp) +/* 0DD824 7F0A8CF4 3C0A00AA */ lui $t2, (0x00AA00B0 >> 16) # lui $t2, 0xaa +/* 0DD828 7F0A8CF8 354A00B0 */ ori $t2, (0x00AA00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DD82C 7F0A8CFC 240C0064 */ li $t4, 100 +/* 0DD830 7F0A8D00 AFAC0020 */ sw $t4, 0x20($sp) +/* 0DD834 7F0A8D04 AFAA0018 */ sw $t2, 0x18($sp) +/* 0DD838 7F0A8D08 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD83C 7F0A8D0C 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD840 7F0A8D10 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD844 7F0A8D14 AFA00028 */ sw $zero, 0x28($sp) +/* 0DD848 7F0A8D18 AFA90010 */ sw $t1, 0x10($sp) +/* 0DD84C 7F0A8D1C AFA80014 */ sw $t0, 0x14($sp) +/* 0DD850 7F0A8D20 0FC2B6AF */ jal en_text_write_stuff +/* 0DD854 7F0A8D24 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DD858 7F0A8D28 00408025 */ move $s0, $v0 +.L7F0A8D2C: +/* 0DD85C 7F0A8D2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DD860 7F0A8D30 02001025 */ move $v0, $s0 +/* 0DD864 7F0A8D34 8FB00038 */ lw $s0, 0x38($sp) +/* 0DD868 7F0A8D38 03E00008 */ jr $ra +/* 0DD86C 7F0A8D3C 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8D40(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058534 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F0A8D40 +/* 0DD870 7F0A8D40 44862000 */ mtc1 $a2, $f4 +/* 0DD874 7F0A8D44 3C018006 */ lui $at, %hi(D_80058534) +/* 0DD878 7F0A8D48 44856000 */ mtc1 $a1, $f12 +/* 0DD87C 7F0A8D4C C4288534 */ lwc1 $f8, %lo(D_80058534)($at) +/* 0DD880 7F0A8D50 468021A0 */ cvt.s.w $f6, $f4 +/* 0DD884 7F0A8D54 848E0020 */ lh $t6, 0x20($a0) +/* 0DD888 7F0A8D58 848F0040 */ lh $t7, 0x40($a0) +/* 0DD88C 7F0A8D5C 00002825 */ move $a1, $zero +/* 0DD890 7F0A8D60 00803825 */ move $a3, $a0 +/* 0DD894 7F0A8D64 460C4281 */ sub.s $f10, $f8, $f12 +/* 0DD898 7F0A8D68 240900E0 */ li $t1, 224 +/* 0DD89C 7F0A8D6C 24080040 */ li $t0, 64 +/* 0DD8A0 7F0A8D70 24030020 */ li $v1, 32 +/* 0DD8A4 7F0A8D74 460A3402 */ mul.s $f16, $f6, $f10 +/* 0DD8A8 7F0A8D78 01CF1023 */ subu $v0, $t6, $t7 +/* 0DD8AC 7F0A8D7C 4600848D */ trunc.w.s $f18, $f16 +/* 0DD8B0 7F0A8D80 44069000 */ mfc1 $a2, $f18 +/* 0DD8B4 7F0A8D84 00000000 */ nop +.L7F0A8D88: +/* 0DD8B8 7F0A8D88 24A50001 */ addiu $a1, $a1, 1 +/* 0DD8BC 7F0A8D8C 28A10004 */ slti $at, $a1, 4 +/* 0DD8C0 7F0A8D90 24E70010 */ addiu $a3, $a3, 0x10 +/* 0DD8C4 7F0A8D94 A0E3FFFC */ sb $v1, -4($a3) +/* 0DD8C8 7F0A8D98 A0E8FFFD */ sb $t0, -3($a3) +/* 0DD8CC 7F0A8D9C A0E3FFFE */ sb $v1, -2($a3) +/* 0DD8D0 7F0A8DA0 1420FFF9 */ bnez $at, .L7F0A8D88 +/* 0DD8D4 7F0A8DA4 A0E9FFFF */ sb $t1, -1($a3) +/* 0DD8D8 7F0A8DA8 3C0142C0 */ li $at, 0x42C00000 # 96.000000 +/* 0DD8DC 7F0A8DAC 44817000 */ mtc1 $at, $f14 +/* 0DD8E0 7F0A8DB0 3C014240 */ li $at, 0x42400000 # 48.000000 +/* 0DD8E4 7F0A8DB4 44811000 */ mtc1 $at, $f2 +/* 0DD8E8 7F0A8DB8 24050004 */ li $a1, 4 +/* 0DD8EC 7F0A8DBC 24870040 */ addiu $a3, $a0, 0x40 +/* 0DD8F0 7F0A8DC0 2408000C */ li $t0, 12 +.L7F0A8DC4: +/* 0DD8F4 7F0A8DC4 28A1000A */ slti $at, $a1, 0xa +/* 0DD8F8 7F0A8DC8 10200024 */ beqz $at, .L7F0A8E5C +/* 0DD8FC 7F0A8DCC 00465021 */ addu $t2, $v0, $a2 +/* 0DD900 7F0A8DD0 460C1102 */ mul.s $f4, $f2, $f12 +/* 0DD904 7F0A8DD4 28A10006 */ slti $at, $a1, 6 +/* 0DD908 7F0A8DD8 460C7182 */ mul.s $f6, $f14, $f12 +/* 0DD90C 7F0A8DDC 4600220D */ trunc.w.s $f8, $f4 +/* 0DD910 7F0A8DE0 4600328D */ trunc.w.s $f10, $f6 +/* 0DD914 7F0A8DE4 44034000 */ mfc1 $v1, $f8 +/* 0DD918 7F0A8DE8 440B5000 */ mfc1 $t3, $f10 +/* 0DD91C 7F0A8DEC 24630040 */ addiu $v1, $v1, 0x40 +/* 0DD920 7F0A8DF0 A0E3000C */ sb $v1, 0xc($a3) +/* 0DD924 7F0A8DF4 256C0080 */ addiu $t4, $t3, 0x80 +/* 0DD928 7F0A8DF8 A0EC000D */ sb $t4, 0xd($a3) +/* 0DD92C 7F0A8DFC 1420002D */ bnez $at, .L7F0A8EB4 +/* 0DD930 7F0A8E00 A0E3000E */ sb $v1, 0xe($a3) +/* 0DD934 7F0A8E04 44868000 */ mtc1 $a2, $f16 +/* 0DD938 7F0A8E08 44824000 */ mtc1 $v0, $f8 +/* 0DD93C 7F0A8E0C 848D0040 */ lh $t5, 0x40($a0) +/* 0DD940 7F0A8E10 46808020 */ cvt.s.w $f0, $f16 +/* 0DD944 7F0A8E14 448D9000 */ mtc1 $t5, $f18 +/* 0DD948 7F0A8E18 468041A0 */ cvt.s.w $f6, $f8 +/* 0DD94C 7F0A8E1C 46809120 */ cvt.s.w $f4, $f18 +/* 0DD950 7F0A8E20 46003280 */ add.s $f10, $f6, $f0 +/* 0DD954 7F0A8E24 460C5402 */ mul.s $f16, $f10, $f12 +/* 0DD958 7F0A8E28 46102480 */ add.s $f18, $f4, $f16 +/* 0DD95C 7F0A8E2C 46009201 */ sub.s $f8, $f18, $f0 +/* 0DD960 7F0A8E30 4600418D */ trunc.w.s $f6, $f8 +/* 0DD964 7F0A8E34 440F3000 */ mfc1 $t7, $f6 +/* 0DD968 7F0A8E38 00000000 */ nop +/* 0DD96C 7F0A8E3C A4EF0000 */ sh $t7, ($a3) +/* 0DD970 7F0A8E40 84F80000 */ lh $t8, ($a3) +/* 0DD974 7F0A8E44 84830040 */ lh $v1, 0x40($a0) +/* 0DD978 7F0A8E48 0303082A */ slt $at, $t8, $v1 +/* 0DD97C 7F0A8E4C 5020001A */ beql $at, $zero, .L7F0A8EB8 +/* 0DD980 7F0A8E50 24A50001 */ addiu $a1, $a1, 1 +/* 0DD984 7F0A8E54 10000017 */ b .L7F0A8EB4 +/* 0DD988 7F0A8E58 A4E30000 */ sh $v1, ($a3) +.L7F0A8E5C: +/* 0DD98C 7F0A8E5C 448A8000 */ mtc1 $t2, $f16 +/* 0DD990 7F0A8E60 84990040 */ lh $t9, 0x40($a0) +/* 0DD994 7F0A8E64 468084A0 */ cvt.s.w $f18, $f16 +/* 0DD998 7F0A8E68 44995000 */ mtc1 $t9, $f10 +/* 0DD99C 7F0A8E6C 00000000 */ nop +/* 0DD9A0 7F0A8E70 46805120 */ cvt.s.w $f4, $f10 +/* 0DD9A4 7F0A8E74 460C9202 */ mul.s $f8, $f18, $f12 +/* 0DD9A8 7F0A8E78 44865000 */ mtc1 $a2, $f10 +/* 0DD9AC 7F0A8E7C 00000000 */ nop +/* 0DD9B0 7F0A8E80 46805420 */ cvt.s.w $f16, $f10 +/* 0DD9B4 7F0A8E84 46082180 */ add.s $f6, $f4, $f8 +/* 0DD9B8 7F0A8E88 46103480 */ add.s $f18, $f6, $f16 +/* 0DD9BC 7F0A8E8C 4600910D */ trunc.w.s $f4, $f18 +/* 0DD9C0 7F0A8E90 440C2000 */ mfc1 $t4, $f4 +/* 0DD9C4 7F0A8E94 00000000 */ nop +/* 0DD9C8 7F0A8E98 A4EC0000 */ sh $t4, ($a3) +/* 0DD9CC 7F0A8E9C 84ED0000 */ lh $t5, ($a3) +/* 0DD9D0 7F0A8EA0 84830020 */ lh $v1, 0x20($a0) +/* 0DD9D4 7F0A8EA4 006D082A */ slt $at, $v1, $t5 +/* 0DD9D8 7F0A8EA8 50200003 */ beql $at, $zero, .L7F0A8EB8 +/* 0DD9DC 7F0A8EAC 24A50001 */ addiu $a1, $a1, 1 +/* 0DD9E0 7F0A8EB0 A4E30000 */ sh $v1, ($a3) +.L7F0A8EB4: +/* 0DD9E4 7F0A8EB4 24A50001 */ addiu $a1, $a1, 1 +.L7F0A8EB8: +/* 0DD9E8 7F0A8EB8 14A8FFC2 */ bne $a1, $t0, .L7F0A8DC4 +/* 0DD9EC 7F0A8EBC 24E70010 */ addiu $a3, $a3, 0x10 +/* 0DD9F0 7F0A8EC0 848200A0 */ lh $v0, 0xa0($a0) +/* 0DD9F4 7F0A8EC4 A4820010 */ sh $v0, 0x10($a0) +/* 0DD9F8 7F0A8EC8 03E00008 */ jr $ra +/* 0DD9FC 7F0A8ECC A4820000 */ sh $v0, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8ED0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8ED0 +/* 0DDA00 7F0A8ED0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DDA04 7F0A8ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDA08 7F0A8ED8 AFA40020 */ sw $a0, 0x20($sp) +/* 0DDA0C 7F0A8EDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DDA10 7F0A8EE0 00002025 */ move $a0, $zero +/* 0DDA14 7F0A8EE4 8FAE0020 */ lw $t6, 0x20($sp) +/* 0DDA18 7F0A8EE8 00002025 */ move $a0, $zero +/* 0DDA1C 7F0A8EEC 24050111 */ li $a1, 273 +/* 0DDA20 7F0A8EF0 95C30000 */ lhu $v1, ($t6) +/* 0DDA24 7F0A8EF4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DDA28 7F0A8EF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA2C 7F0A8EFC AFA30018 */ sw $v1, 0x18($sp) +/* 0DDA30 7F0A8F00 8FA30018 */ lw $v1, 0x18($sp) +/* 0DDA34 7F0A8F04 8FA6001C */ lw $a2, 0x1c($sp) +/* 0DDA38 7F0A8F08 10400003 */ beqz $v0, .L7F0A8F18 +/* 0DDA3C 7F0A8F0C 8FA70020 */ lw $a3, 0x20($sp) +/* 0DDA40 7F0A8F10 1000000B */ b .L7F0A8F40 +/* 0DDA44 7F0A8F14 24630400 */ addiu $v1, $v1, 0x400 +.L7F0A8F18: +/* 0DDA48 7F0A8F18 00002025 */ move $a0, $zero +/* 0DDA4C 7F0A8F1C 24050222 */ li $a1, 546 +/* 0DDA50 7F0A8F20 AFA30018 */ sw $v1, 0x18($sp) +/* 0DDA54 7F0A8F24 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA58 7F0A8F28 AFA6001C */ sw $a2, 0x1c($sp) +/* 0DDA5C 7F0A8F2C 8FA30018 */ lw $v1, 0x18($sp) +/* 0DDA60 7F0A8F30 8FA6001C */ lw $a2, 0x1c($sp) +/* 0DDA64 7F0A8F34 10400002 */ beqz $v0, .L7F0A8F40 +/* 0DDA68 7F0A8F38 8FA70020 */ lw $a3, 0x20($sp) +/* 0DDA6C 7F0A8F3C 2463FC00 */ addiu $v1, $v1, -0x400 +.L7F0A8F40: +/* 0DDA70 7F0A8F40 28C10047 */ slti $at, $a2, 0x47 +/* 0DDA74 7F0A8F44 14200003 */ bnez $at, .L7F0A8F54 +/* 0DDA78 7F0A8F48 240B7FFF */ li $t3, 32767 +/* 0DDA7C 7F0A8F4C 10000005 */ b .L7F0A8F64 +/* 0DDA80 7F0A8F50 24060046 */ li $a2, 70 +.L7F0A8F54: +/* 0DDA84 7F0A8F54 28C1FFBA */ slti $at, $a2, -0x46 +/* 0DDA88 7F0A8F58 50200003 */ beql $at, $zero, .L7F0A8F68 +/* 0DDA8C 7F0A8F5C 28C10008 */ slti $at, $a2, 8 +/* 0DDA90 7F0A8F60 2406FFBA */ li $a2, -70 +.L7F0A8F64: +/* 0DDA94 7F0A8F64 28C10008 */ slti $at, $a2, 8 +.L7F0A8F68: +/* 0DDA98 7F0A8F68 14200008 */ bnez $at, .L7F0A8F8C +/* 0DDA9C 7F0A8F6C 00067AC0 */ sll $t7, $a2, 0xb +/* 0DDAA0 7F0A8F70 25F8C800 */ addiu $t8, $t7, -0x3800 +/* 0DDAA4 7F0A8F74 24010046 */ li $at, 70 +/* 0DDAA8 7F0A8F78 0301001A */ div $zero, $t8, $at +/* 0DDAAC 7F0A8F7C 0000C812 */ mflo $t9 +/* 0DDAB0 7F0A8F80 00791821 */ addu $v1, $v1, $t9 +/* 0DDAB4 7F0A8F84 1000000B */ b .L7F0A8FB4 +/* 0DDAB8 7F0A8F88 34018000 */ li $at, 32768 +.L7F0A8F8C: +/* 0DDABC 7F0A8F8C 28C1FFF9 */ slti $at, $a2, -7 +/* 0DDAC0 7F0A8F90 10200007 */ beqz $at, .L7F0A8FB0 +/* 0DDAC4 7F0A8F94 000642C0 */ sll $t0, $a2, 0xb +/* 0DDAC8 7F0A8F98 25093800 */ addiu $t1, $t0, 0x3800 +/* 0DDACC 7F0A8F9C 24010046 */ li $at, 70 +/* 0DDAD0 7F0A8FA0 0121001A */ div $zero, $t1, $at +/* 0DDAD4 7F0A8FA4 00005012 */ mflo $t2 +/* 0DDAD8 7F0A8FA8 006A1821 */ addu $v1, $v1, $t2 +/* 0DDADC 7F0A8FAC 00000000 */ nop +.L7F0A8FB0: +/* 0DDAE0 7F0A8FB0 34018000 */ li $at, 32768 +.L7F0A8FB4: +/* 0DDAE4 7F0A8FB4 0061082A */ slt $at, $v1, $at +/* 0DDAE8 7F0A8FB8 14200003 */ bnez $at, .L7F0A8FC8 +/* 0DDAEC 7F0A8FBC 00000000 */ nop +/* 0DDAF0 7F0A8FC0 10000006 */ b .L7F0A8FDC +/* 0DDAF4 7F0A8FC4 A4EB0000 */ sh $t3, ($a3) +.L7F0A8FC8: +/* 0DDAF8 7F0A8FC8 04630004 */ bgezl $v1, .L7F0A8FDC +/* 0DDAFC 7F0A8FCC A4E30000 */ sh $v1, ($a3) +/* 0DDB00 7F0A8FD0 10000002 */ b .L7F0A8FDC +/* 0DDB04 7F0A8FD4 A4E00000 */ sh $zero, ($a3) +/* 0DDB08 7F0A8FD8 A4E30000 */ sh $v1, ($a3) +.L7F0A8FDC: +/* 0DDB0C 7F0A8FDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDB10 7F0A8FE0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DDB14 7F0A8FE4 03E00008 */ jr $ra +/* 0DDB18 7F0A8FE8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8FEC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058538 +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F0A8FEC +/* 0DDB1C 7F0A8FEC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DDB20 7F0A8FF0 AFB00028 */ sw $s0, 0x28($sp) +/* 0DDB24 7F0A8FF4 00808025 */ move $s0, $a0 +/* 0DDB28 7F0A8FF8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0DDB2C 7F0A8FFC 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDB30 7F0A9000 2404000C */ li $a0, 12 +/* 0DDB34 7F0A9004 0C002472 */ jal sfx_c_700091C8 +/* 0DDB38 7F0A9008 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DDB3C 7F0A900C 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DDB40 7F0A9010 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DDB44 7F0A9014 A7A20046 */ sh $v0, 0x46($sp) +/* 0DDB48 7F0A9018 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0DDB4C 7F0A901C 51C00008 */ beql $t6, $zero, .L7F0A9040 +/* 0DDB50 7F0A9020 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDB54 7F0A9024 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0DDB58 7F0A9028 24010001 */ li $at, 1 +/* 0DDB5C 7F0A902C 55E10004 */ bnel $t7, $at, .L7F0A9040 +/* 0DDB60 7F0A9030 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDB64 7F0A9034 0FC2A3B4 */ jal sub_GAME_7F0A8ED0 +/* 0DDB68 7F0A9038 27A40046 */ addiu $a0, $sp, 0x46 +/* 0DDB6C 7F0A903C 97B80046 */ lhu $t8, 0x46($sp) +.L7F0A9040: +/* 0DDB70 7F0A9040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0DDB74 7F0A9044 44982000 */ mtc1 $t8, $f4 +/* 0DDB78 7F0A9048 07010004 */ bgez $t8, .L7F0A905C +/* 0DDB7C 7F0A904C 468021A0 */ cvt.s.w $f6, $f4 +/* 0DDB80 7F0A9050 44814000 */ mtc1 $at, $f8 +/* 0DDB84 7F0A9054 00000000 */ nop +/* 0DDB88 7F0A9058 46083180 */ add.s $f6, $f6, $f8 +.L7F0A905C: +/* 0DDB8C 7F0A905C 3C018006 */ lui $at, %hi(D_80058538) +/* 0DDB90 7F0A9060 C42A8538 */ lwc1 $f10, %lo(D_80058538)($at) +/* 0DDB94 7F0A9064 03002025 */ move $a0, $t8 +/* 0DDB98 7F0A9068 460A3403 */ div.s $f16, $f6, $f10 +/* 0DDB9C 7F0A906C 0C00247A */ jal sfx_c_700091E8 +/* 0DDBA0 7F0A9070 E7B00040 */ swc1 $f16, 0x40($sp) +/* 0DDBA4 7F0A9074 02001025 */ move $v0, $s0 +/* 0DDBA8 7F0A9078 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DDBAC 7F0A907C 3C080050 */ lui $t0, (0x00504240 >> 16) # lui $t0, 0x50 +/* 0DDBB0 7F0A9080 35084240 */ ori $t0, (0x00504240 & 0xFFFF) # ori $t0, $t0, 0x4240 +/* 0DDBB4 7F0A9084 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DDBB8 7F0A9088 AC590000 */ sw $t9, ($v0) +/* 0DDBBC 7F0A908C AC480004 */ sw $t0, 4($v0) +/* 0DDBC0 7F0A9090 8FA5003C */ lw $a1, 0x3c($sp) +/* 0DDBC4 7F0A9094 3C018000 */ lui $at, 0x8000 +/* 0DDBC8 7F0A9098 26040008 */ addiu $a0, $s0, 8 +/* 0DDBCC 7F0A909C 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDBD0 7F0A90A0 00A12821 */ addu $a1, $a1, $at +/* 0DDBD4 7F0A90A4 24090014 */ li $t1, 20 +/* 0DDBD8 7F0A90A8 240AFED5 */ li $t2, -299 +/* 0DDBDC 7F0A90AC 240BFF33 */ li $t3, -205 +/* 0DDBE0 7F0A90B0 00408025 */ move $s0, $v0 +/* 0DDBE4 7F0A90B4 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DDBE8 7F0A90B8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DDBEC 7F0A90BC AFA90010 */ sw $t1, 0x10($sp) +/* 0DDBF0 7F0A90C0 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDBF4 7F0A90C4 00002825 */ move $a1, $zero +/* 0DDBF8 7F0A90C8 00003025 */ move $a2, $zero +/* 0DDBFC 7F0A90CC 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC00 7F0A90D0 24070258 */ li $a3, 600 +/* 0DDC04 7F0A90D4 3C018000 */ lui $at, 0x8000 +/* 0DDC08 7F0A90D8 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDC0C 7F0A90DC 00412821 */ addu $a1, $v0, $at +/* 0DDC10 7F0A90E0 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDC14 7F0A90E4 02002025 */ move $a0, $s0 +/* 0DDC18 7F0A90E8 240C0014 */ li $t4, 20 +/* 0DDC1C 7F0A90EC 240DFED5 */ li $t5, -299 +/* 0DDC20 7F0A90F0 240EFF33 */ li $t6, -205 +/* 0DDC24 7F0A90F4 00408025 */ move $s0, $v0 +/* 0DDC28 7F0A90F8 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DDC2C 7F0A90FC AFAD0014 */ sw $t5, 0x14($sp) +/* 0DDC30 7F0A9100 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DDC34 7F0A9104 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDC38 7F0A9108 00002825 */ move $a1, $zero +/* 0DDC3C 7F0A910C 00003025 */ move $a2, $zero +/* 0DDC40 7F0A9110 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC44 7F0A9114 24070258 */ li $a3, 600 +/* 0DDC48 7F0A9118 3C018000 */ lui $at, 0x8000 +/* 0DDC4C 7F0A911C AFA20038 */ sw $v0, 0x38($sp) +/* 0DDC50 7F0A9120 00412821 */ addu $a1, $v0, $at +/* 0DDC54 7F0A9124 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDC58 7F0A9128 02002025 */ move $a0, $s0 +/* 0DDC5C 7F0A912C 240F0014 */ li $t7, 20 +/* 0DDC60 7F0A9130 2418FED5 */ li $t8, -299 +/* 0DDC64 7F0A9134 2419FF33 */ li $t9, -205 +/* 0DDC68 7F0A9138 00408025 */ move $s0, $v0 +/* 0DDC6C 7F0A913C AFB90018 */ sw $t9, 0x18($sp) +/* 0DDC70 7F0A9140 AFB80014 */ sw $t8, 0x14($sp) +/* 0DDC74 7F0A9144 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDC78 7F0A9148 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDC7C 7F0A914C 00002825 */ move $a1, $zero +/* 0DDC80 7F0A9150 00003025 */ move $a2, $zero +/* 0DDC84 7F0A9154 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC88 7F0A9158 24070258 */ li $a3, 600 +/* 0DDC8C 7F0A915C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDC90 7F0A9160 8FA50040 */ lw $a1, 0x40($sp) +/* 0DDC94 7F0A9164 0FC2A350 */ jal sub_GAME_7F0A8D40 +/* 0DDC98 7F0A9168 2406001E */ li $a2, 30 +/* 0DDC9C 7F0A916C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0DDCA0 7F0A9170 02001025 */ move $v0, $s0 +/* 0DDCA4 7F0A9174 8FB00028 */ lw $s0, 0x28($sp) +/* 0DDCA8 7F0A9178 03E00008 */ jr $ra +/* 0DDCAC 7F0A917C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +void call_sfx_c_700091C8(void) { + sfx_c_700091C8(); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A91A0(u16 arg0) +{ + sfx_c_700091E8(0xffff & arg0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A91A0 +/* 0DDCD0 7F0A91A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DDCD4 7F0A91A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDCD8 7F0A91A8 AFA40018 */ sw $a0, 0x18($sp) +/* 0DDCDC 7F0A91AC 308EFFFF */ andi $t6, $a0, 0xffff +/* 0DDCE0 7F0A91B0 0C00247A */ jal sfx_c_700091E8 +/* 0DDCE4 7F0A91B4 01C02025 */ move $a0, $t6 +/* 0DDCE8 7F0A91B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDCEC 7F0A91BC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DDCF0 7F0A91C0 03E00008 */ jr $ra +/* 0DDCF4 7F0A91C4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A91C8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005853C +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F0A91C8 +/* 0DDCF8 7F0A91C8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DDCFC 7F0A91CC AFB00028 */ sw $s0, 0x28($sp) +/* 0DDD00 7F0A91D0 00808025 */ move $s0, $a0 +/* 0DDD04 7F0A91D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0DDD08 7F0A91D8 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDD0C 7F0A91DC 2404000C */ li $a0, 12 +/* 0DDD10 7F0A91E0 0FC2A4D6 */ jal sub_GAME_7F0A9358 +/* 0DDD14 7F0A91E4 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DDD18 7F0A91E8 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DDD1C 7F0A91EC 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DDD20 7F0A91F0 A7A20046 */ sh $v0, 0x46($sp) +/* 0DDD24 7F0A91F4 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0DDD28 7F0A91F8 51C00007 */ beql $t6, $zero, .L7F0A9218 +/* 0DDD2C 7F0A91FC 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDD30 7F0A9200 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0DDD34 7F0A9204 55E00004 */ bnezl $t7, .L7F0A9218 +/* 0DDD38 7F0A9208 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDD3C 7F0A920C 0FC2A3B4 */ jal sub_GAME_7F0A8ED0 +/* 0DDD40 7F0A9210 27A40046 */ addiu $a0, $sp, 0x46 +/* 0DDD44 7F0A9214 97B80046 */ lhu $t8, 0x46($sp) +.L7F0A9218: +/* 0DDD48 7F0A9218 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0DDD4C 7F0A921C 44982000 */ mtc1 $t8, $f4 +/* 0DDD50 7F0A9220 07010004 */ bgez $t8, .L7F0A9234 +/* 0DDD54 7F0A9224 468021A0 */ cvt.s.w $f6, $f4 +/* 0DDD58 7F0A9228 44814000 */ mtc1 $at, $f8 +/* 0DDD5C 7F0A922C 00000000 */ nop +/* 0DDD60 7F0A9230 46083180 */ add.s $f6, $f6, $f8 +.L7F0A9234: +/* 0DDD64 7F0A9234 3C018006 */ lui $at, %hi(D_8005853C) +/* 0DDD68 7F0A9238 C42A853C */ lwc1 $f10, %lo(D_8005853C)($at) +/* 0DDD6C 7F0A923C 03002025 */ move $a0, $t8 +/* 0DDD70 7F0A9240 460A3403 */ div.s $f16, $f6, $f10 +/* 0DDD74 7F0A9244 0FC2A4D9 */ jal sub_GAME_7F0A9364 +/* 0DDD78 7F0A9248 E7B00040 */ swc1 $f16, 0x40($sp) +/* 0DDD7C 7F0A924C 02001025 */ move $v0, $s0 +/* 0DDD80 7F0A9250 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DDD84 7F0A9254 3C080050 */ lui $t0, (0x00504240 >> 16) # lui $t0, 0x50 +/* 0DDD88 7F0A9258 35084240 */ ori $t0, (0x00504240 & 0xFFFF) # ori $t0, $t0, 0x4240 +/* 0DDD8C 7F0A925C 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DDD90 7F0A9260 AC590000 */ sw $t9, ($v0) +/* 0DDD94 7F0A9264 AC480004 */ sw $t0, 4($v0) +/* 0DDD98 7F0A9268 8FA5003C */ lw $a1, 0x3c($sp) +/* 0DDD9C 7F0A926C 3C018000 */ lui $at, 0x8000 +/* 0DDDA0 7F0A9270 26040008 */ addiu $a0, $s0, 8 +/* 0DDDA4 7F0A9274 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDDA8 7F0A9278 00A12821 */ addu $a1, $a1, $at +/* 0DDDAC 7F0A927C 24090014 */ li $t1, 20 +/* 0DDDB0 7F0A9280 240AFED5 */ li $t2, -299 +/* 0DDDB4 7F0A9284 240BFEED */ li $t3, -275 +/* 0DDDB8 7F0A9288 00408025 */ move $s0, $v0 +/* 0DDDBC 7F0A928C AFAB0018 */ sw $t3, 0x18($sp) +/* 0DDDC0 7F0A9290 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DDDC4 7F0A9294 AFA90010 */ sw $t1, 0x10($sp) +/* 0DDDC8 7F0A9298 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDDCC 7F0A929C 00002825 */ move $a1, $zero +/* 0DDDD0 7F0A92A0 00003025 */ move $a2, $zero +/* 0DDDD4 7F0A92A4 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDDD8 7F0A92A8 24070258 */ li $a3, 600 +/* 0DDDDC 7F0A92AC 3C018000 */ lui $at, 0x8000 +/* 0DDDE0 7F0A92B0 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDDE4 7F0A92B4 00412821 */ addu $a1, $v0, $at +/* 0DDDE8 7F0A92B8 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDDEC 7F0A92BC 02002025 */ move $a0, $s0 +/* 0DDDF0 7F0A92C0 240C0014 */ li $t4, 20 +/* 0DDDF4 7F0A92C4 240DFED5 */ li $t5, -299 +/* 0DDDF8 7F0A92C8 240EFEED */ li $t6, -275 +/* 0DDDFC 7F0A92CC 00408025 */ move $s0, $v0 +/* 0DDE00 7F0A92D0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DDE04 7F0A92D4 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DDE08 7F0A92D8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DDE0C 7F0A92DC 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDE10 7F0A92E0 00002825 */ move $a1, $zero +/* 0DDE14 7F0A92E4 00003025 */ move $a2, $zero +/* 0DDE18 7F0A92E8 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDE1C 7F0A92EC 24070258 */ li $a3, 600 +/* 0DDE20 7F0A92F0 3C018000 */ lui $at, 0x8000 +/* 0DDE24 7F0A92F4 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDE28 7F0A92F8 00412821 */ addu $a1, $v0, $at +/* 0DDE2C 7F0A92FC 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDE30 7F0A9300 02002025 */ move $a0, $s0 +/* 0DDE34 7F0A9304 240F0014 */ li $t7, 20 +/* 0DDE38 7F0A9308 2418FED5 */ li $t8, -299 +/* 0DDE3C 7F0A930C 2419FEED */ li $t9, -275 +/* 0DDE40 7F0A9310 00408025 */ move $s0, $v0 +/* 0DDE44 7F0A9314 AFB90018 */ sw $t9, 0x18($sp) +/* 0DDE48 7F0A9318 AFB80014 */ sw $t8, 0x14($sp) +/* 0DDE4C 7F0A931C AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDE50 7F0A9320 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDE54 7F0A9324 00002825 */ move $a1, $zero +/* 0DDE58 7F0A9328 00003025 */ move $a2, $zero +/* 0DDE5C 7F0A932C 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDE60 7F0A9330 24070258 */ li $a3, 600 +/* 0DDE64 7F0A9334 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDE68 7F0A9338 8FA50040 */ lw $a1, 0x40($sp) +/* 0DDE6C 7F0A933C 0FC2A350 */ jal sub_GAME_7F0A8D40 +/* 0DDE70 7F0A9340 2406001E */ li $a2, 30 +/* 0DDE74 7F0A9344 8FBF002C */ lw $ra, 0x2c($sp) +/* 0DDE78 7F0A9348 02001025 */ move $v0, $s0 +/* 0DDE7C 7F0A934C 8FB00028 */ lw $s0, 0x28($sp) +/* 0DDE80 7F0A9350 03E00008 */ jr $ra +/* 0DDE84 7F0A9354 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + +u16 sub_GAME_7F0A9358(void) +{ + return mTrack2Vol; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9364(s16 param_1) + +{ + mTrack2Vol = param_1; + musicTrack2Vol(param_1); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9364 +/* 0DDE94 7F0A9364 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DDE98 7F0A9368 3C028004 */ lui $v0, %hi(mTrack2Vol) +/* 0DDE9C 7F0A936C 24420B58 */ addiu $v0, %lo(mTrack2Vol) # addiu $v0, $v0, 0xb58 +/* 0DDEA0 7F0A9370 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDEA4 7F0A9374 AFA40018 */ sw $a0, 0x18($sp) +/* 0DDEA8 7F0A9378 00802825 */ move $a1, $a0 +/* 0DDEAC 7F0A937C A4450000 */ sh $a1, ($v0) +/* 0DDEB0 7F0A9380 0C001CF1 */ jal musicTrack2Vol +/* 0DDEB4 7F0A9384 30A4FFFF */ andi $a0, $a1, 0xffff +/* 0DDEB8 7F0A9388 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDEBC 7F0A938C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DDEC0 7F0A9390 03E00008 */ jr $ra +/* 0DDEC4 7F0A9394 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9398(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9398 +/* 0DDEC8 7F0A9398 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0DDECC 7F0A939C AFA70074 */ sw $a3, 0x74($sp) +/* 0DDED0 7F0A93A0 3C028004 */ lui $v0, %hi(ptrFirstFontTableSmall) +/* 0DDED4 7F0A93A4 8C420EAC */ lw $v0, %lo(ptrFirstFontTableSmall)($v0) +/* 0DDED8 7F0A93A8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0DDEDC 7F0A93AC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0DDEE0 7F0A93B0 AFB00038 */ sw $s0, 0x38($sp) +/* 0DDEE4 7F0A93B4 00808025 */ move $s0, $a0 +/* 0DDEE8 7F0A93B8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DDEEC 7F0A93BC AFA5006C */ sw $a1, 0x6c($sp) +/* 0DDEF0 7F0A93C0 AFA60070 */ sw $a2, 0x70($sp) +/* 0DDEF4 7F0A93C4 240E000A */ li $t6, 10 +/* 0DDEF8 7F0A93C8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DDEFC 7F0A93CC 8FA60074 */ lw $a2, 0x74($sp) +/* 0DDF00 7F0A93D0 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DDF04 7F0A93D4 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DDF08 7F0A93D8 AFA20010 */ sw $v0, 0x10($sp) +/* 0DDF0C 7F0A93DC AFA20050 */ sw $v0, 0x50($sp) +/* 0DDF10 7F0A93E0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DDF14 7F0A93E4 AFA7004C */ sw $a3, 0x4c($sp) +/* 0DDF18 7F0A93E8 8FAF0084 */ lw $t7, 0x84($sp) +/* 0DDF1C 7F0A93EC 8FA2006C */ lw $v0, 0x6c($sp) +/* 0DDF20 7F0A93F0 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DDF24 7F0A93F4 11E00008 */ beqz $t7, .L7F0A9418 +/* 0DDF28 7F0A93F8 8FAD0070 */ lw $t5, 0x70($sp) +/* 0DDF2C 7F0A93FC 8FB80058 */ lw $t8, 0x58($sp) +/* 0DDF30 7F0A9400 07010003 */ bgez $t8, .L7F0A9410 +/* 0DDF34 7F0A9404 0018C843 */ sra $t9, $t8, 1 +/* 0DDF38 7F0A9408 27010001 */ addiu $at, $t8, 1 +/* 0DDF3C 7F0A940C 0001C843 */ sra $t9, $at, 1 +.L7F0A9410: +/* 0DDF40 7F0A9410 10000008 */ b .L7F0A9434 +/* 0DDF44 7F0A9414 00594823 */ subu $t1, $v0, $t9 +.L7F0A9418: +/* 0DDF48 7F0A9418 8FAA0090 */ lw $t2, 0x90($sp) +/* 0DDF4C 7F0A941C 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DDF50 7F0A9420 00404825 */ move $t1, $v0 +/* 0DDF54 7F0A9424 11400003 */ beqz $t2, .L7F0A9434 +/* 0DDF58 7F0A9428 00000000 */ nop +/* 0DDF5C 7F0A942C 10000001 */ b .L7F0A9434 +/* 0DDF60 7F0A9430 004B4823 */ subu $t1, $v0, $t3 +.L7F0A9434: +/* 0DDF64 7F0A9434 3C0F8004 */ lui $t7, %hi(D_80040B04) +/* 0DDF68 7F0A9438 8DEF0B04 */ lw $t7, %lo(D_80040B04)($t7) +/* 0DDF6C 7F0A943C 8FAE0054 */ lw $t6, 0x54($sp) +/* 0DDF70 7F0A9440 012C1821 */ addu $v1, $t1, $t4 +/* 0DDF74 7F0A9444 29E100E0 */ slti $at, $t7, 0xe0 +/* 0DDF78 7F0A9448 AFA90064 */ sw $t1, 0x64($sp) +/* 0DDF7C 7F0A944C 1020000A */ beqz $at, .L7F0A9478 +/* 0DDF80 7F0A9450 01AE4021 */ addu $t0, $t5, $t6 +/* 0DDF84 7F0A9454 02001025 */ move $v0, $s0 +/* 0DDF88 7F0A9458 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0DDF8C 7F0A945C 3C190050 */ lui $t9, (0x0050004B >> 16) # lui $t9, 0x50 +/* 0DDF90 7F0A9460 3739004B */ ori $t9, (0x0050004B & 0xFFFF) # ori $t9, $t9, 0x4b +/* 0DDF94 7F0A9464 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0DDF98 7F0A9468 AC580000 */ sw $t8, ($v0) +/* 0DDF9C 7F0A946C AC590004 */ sw $t9, 4($v0) +/* 0DDFA0 7F0A9470 10000009 */ b .L7F0A9498 +/* 0DDFA4 7F0A9474 26100008 */ addiu $s0, $s0, 8 +.L7F0A9478: +/* 0DDFA8 7F0A9478 02001025 */ move $v0, $s0 +/* 0DDFAC 7F0A947C 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 +/* 0DDFB0 7F0A9480 3C0B0050 */ lui $t3, (0x005041C8 >> 16) # lui $t3, 0x50 +/* 0DDFB4 7F0A9484 356B41C8 */ ori $t3, (0x005041C8 & 0xFFFF) # ori $t3, $t3, 0x41c8 +/* 0DDFB8 7F0A9488 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d +/* 0DDFBC 7F0A948C AC4A0000 */ sw $t2, ($v0) +/* 0DDFC0 7F0A9490 AC4B0004 */ sw $t3, 4($v0) +/* 0DDFC4 7F0A9494 26100008 */ addiu $s0, $s0, 8 +.L7F0A9498: +/* 0DDFC8 7F0A9498 8FAC0088 */ lw $t4, 0x88($sp) +/* 0DDFCC 7F0A949C 8FA90064 */ lw $t1, 0x64($sp) +/* 0DDFD0 7F0A94A0 02002025 */ move $a0, $s0 +/* 0DDFD4 7F0A94A4 1180000D */ beqz $t4, .L7F0A94DC +/* 0DDFD8 7F0A94A8 2525FFFF */ addiu $a1, $t1, -1 +/* 0DDFDC 7F0A94AC 8FAD0070 */ lw $t5, 0x70($sp) +/* 0DDFE0 7F0A94B0 8FAE007C */ lw $t6, 0x7c($sp) +/* 0DDFE4 7F0A94B4 8FB8008C */ lw $t8, 0x8c($sp) +/* 0DDFE8 7F0A94B8 250F0001 */ addiu $t7, $t0, 1 +/* 0DDFEC 7F0A94BC 01AE3021 */ addu $a2, $t5, $t6 +/* 0DDFF0 7F0A94C0 24C60001 */ addiu $a2, $a2, 1 +/* 0DDFF4 7F0A94C4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDFF8 7F0A94C8 24670001 */ addiu $a3, $v1, 1 +/* 0DDFFC 7F0A94CC AFA90064 */ sw $t1, 0x64($sp) +/* 0DE000 7F0A94D0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DE004 7F0A94D4 AFB80014 */ sw $t8, 0x14($sp) +/* 0DE008 7F0A94D8 00408025 */ move $s0, $v0 +.L7F0A94DC: +/* 0DE00C 7F0A94DC 02001025 */ move $v0, $s0 +/* 0DE010 7F0A94E0 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DE014 7F0A94E4 3C0A0050 */ lui $t2, (0x005041C8 >> 16) # lui $t2, 0x50 +/* 0DE018 7F0A94E8 354A41C8 */ ori $t2, (0x005041C8 & 0xFFFF) # ori $t2, $t2, 0x41c8 +/* 0DE01C 7F0A94EC 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DE020 7F0A94F0 AC590000 */ sw $t9, ($v0) +/* 0DE024 7F0A94F4 AC4A0004 */ sw $t2, 4($v0) +/* 0DE028 7F0A94F8 8FAB007C */ lw $t3, 0x7c($sp) +/* 0DE02C 7F0A94FC 26100008 */ addiu $s0, $s0, 8 +/* 0DE030 7F0A9500 02002025 */ move $a0, $s0 +/* 0DE034 7F0A9504 15600012 */ bnez $t3, .L7F0A9550 +/* 0DE038 7F0A9508 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DE03C 7F0A950C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0DE040 7F0A9510 8FAD0050 */ lw $t5, 0x50($sp) +/* 0DE044 7F0A9514 8FAE0078 */ lw $t6, 0x78($sp) +/* 0DE048 7F0A9518 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE04C 7F0A951C 8FB80054 */ lw $t8, 0x54($sp) +/* 0DE050 7F0A9520 2419000A */ li $t9, 10 +/* 0DE054 7F0A9524 AFB90028 */ sw $t9, 0x28($sp) +/* 0DE058 7F0A9528 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DE05C 7F0A952C 8FA70074 */ lw $a3, 0x74($sp) +/* 0DE060 7F0A9530 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE064 7F0A9534 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DE068 7F0A9538 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DE06C 7F0A953C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DE070 7F0A9540 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DE074 7F0A9544 0FC2B6AF */ jal en_text_write_stuff +/* 0DE078 7F0A9548 AFB80020 */ sw $t8, 0x20($sp) +/* 0DE07C 7F0A954C 00408025 */ move $s0, $v0 +.L7F0A9550: +/* 0DE080 7F0A9550 8FAA007C */ lw $t2, 0x7c($sp) +/* 0DE084 7F0A9554 02002025 */ move $a0, $s0 +/* 0DE088 7F0A9558 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DE08C 7F0A955C 11400014 */ beqz $t2, .L7F0A95B0 +/* 0DE090 7F0A9560 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DE094 7F0A9564 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE098 7F0A9568 8FAB004C */ lw $t3, 0x4c($sp) +/* 0DE09C 7F0A956C 8FAC0050 */ lw $t4, 0x50($sp) +/* 0DE0A0 7F0A9570 8FAD0078 */ lw $t5, 0x78($sp) +/* 0DE0A4 7F0A9574 8FAE0080 */ lw $t6, 0x80($sp) +/* 0DE0A8 7F0A9578 8FB90054 */ lw $t9, 0x54($sp) +/* 0DE0AC 7F0A957C 240A000A */ li $t2, 10 +/* 0DE0B0 7F0A9580 25F80001 */ addiu $t8, $t7, 1 +/* 0DE0B4 7F0A9584 AFB80020 */ sw $t8, 0x20($sp) +/* 0DE0B8 7F0A9588 AFAA002C */ sw $t2, 0x2c($sp) +/* 0DE0BC 7F0A958C 8FA70074 */ lw $a3, 0x74($sp) +/* 0DE0C0 7F0A9590 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE0C4 7F0A9594 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DE0C8 7F0A9598 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DE0CC 7F0A959C AFAD0018 */ sw $t5, 0x18($sp) +/* 0DE0D0 7F0A95A0 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DE0D4 7F0A95A4 0FC2B9BB */ jal jp_text_write_stuff +/* 0DE0D8 7F0A95A8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE0DC 7F0A95AC 00408025 */ move $s0, $v0 +.L7F0A95B0: +/* 0DE0E0 7F0A95B0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DE0E4 7F0A95B4 02001025 */ move $v0, $s0 +/* 0DE0E8 7F0A95B8 8FB00038 */ lw $s0, 0x38($sp) +/* 0DE0EC 7F0A95BC 03E00008 */ jr $ra +/* 0DE0F0 7F0A95C0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0A95C4(f32 param_1,f32 param_2,f32 param_3) +{ + if (param_1 < param_2) { + return param_1 + (param_2 - param_1) / param_3; + } + if (param_2 < param_1) { + return param_1 - (param_1 - param_2) / param_3; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A95C4 +/* 0DE0F4 7F0A95C4 460E603C */ c.lt.s $f12, $f14 +/* 0DE0F8 7F0A95C8 AFA60008 */ sw $a2, 8($sp) +/* 0DE0FC 7F0A95CC 45020007 */ bc1fl .L7F0A95EC +/* 0DE100 7F0A95D0 460C703C */ c.lt.s $f14, $f12 +/* 0DE104 7F0A95D4 460C7101 */ sub.s $f4, $f14, $f12 +/* 0DE108 7F0A95D8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0DE10C 7F0A95DC 46062203 */ div.s $f8, $f4, $f6 +/* 0DE110 7F0A95E0 03E00008 */ jr $ra +/* 0DE114 7F0A95E4 46086000 */ add.s $f0, $f12, $f8 + +/* 0DE118 7F0A95E8 460C703C */ c.lt.s $f14, $f12 +.L7F0A95EC: +/* 0DE11C 7F0A95EC 00000000 */ nop +/* 0DE120 7F0A95F0 45000005 */ bc1f .L7F0A9608 +/* 0DE124 7F0A95F4 00000000 */ nop +/* 0DE128 7F0A95F8 460E6281 */ sub.s $f10, $f12, $f14 +/* 0DE12C 7F0A95FC C7B00008 */ lwc1 $f16, 8($sp) +/* 0DE130 7F0A9600 46105483 */ div.s $f18, $f10, $f16 +/* 0DE134 7F0A9604 46126301 */ sub.s $f12, $f12, $f18 +.L7F0A9608: +/* 0DE138 7F0A9608 03E00008 */ jr $ra +/* 0DE13C 7F0A960C 46006006 */ mov.s $f0, $f12 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9610(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058540 +.word 0x3dcccccd /*0.1*/ +glabel D_80058544 +.word 0xbdcccccd /*-0.1*/ +.text +glabel sub_GAME_7F0A9610 +/* 0DE140 7F0A9610 3C018006 */ lui $at, %hi(D_80058540) +/* 0DE144 7F0A9614 C4228540 */ lwc1 $f2, %lo(D_80058540)($at) +/* 0DE148 7F0A9618 3C018004 */ lui $at, %hi(D_80040B24) +/* 0DE14C 7F0A961C C4200B24 */ lwc1 $f0, %lo(D_80040B24)($at) +/* 0DE150 7F0A9620 3C018006 */ lui $at, %hi(D_80058544) +/* 0DE154 7F0A9624 00001025 */ move $v0, $zero +/* 0DE158 7F0A9628 4602003C */ c.lt.s $f0, $f2 +/* 0DE15C 7F0A962C 00000000 */ nop +/* 0DE160 7F0A9630 45000012 */ bc1f .L7F0A967C +/* 0DE164 7F0A9634 00000000 */ nop +/* 0DE168 7F0A9638 C42C8544 */ lwc1 $f12, %lo(D_80058544)($at) +/* 0DE16C 7F0A963C 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DE170 7F0A9640 4600603C */ c.lt.s $f12, $f0 +/* 0DE174 7F0A9644 00000000 */ nop +/* 0DE178 7F0A9648 4500000C */ bc1f .L7F0A967C +/* 0DE17C 7F0A964C 00000000 */ nop +/* 0DE180 7F0A9650 C4200B20 */ lwc1 $f0, %lo(D_80040B20)($at) +/* 0DE184 7F0A9654 4602003C */ c.lt.s $f0, $f2 +/* 0DE188 7F0A9658 00000000 */ nop +/* 0DE18C 7F0A965C 45000007 */ bc1f .L7F0A967C +/* 0DE190 7F0A9660 00000000 */ nop +/* 0DE194 7F0A9664 4600603C */ c.lt.s $f12, $f0 +/* 0DE198 7F0A9668 00000000 */ nop +/* 0DE19C 7F0A966C 45000003 */ bc1f .L7F0A967C +/* 0DE1A0 7F0A9670 00000000 */ nop +/* 0DE1A4 7F0A9674 03E00008 */ jr $ra +/* 0DE1A8 7F0A9678 24020001 */ li $v0, 1 + +.L7F0A967C: +/* 0DE1AC 7F0A967C 03E00008 */ jr $ra +/* 0DE1B0 7F0A9680 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9684(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058548 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005854C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0A9684 +/* 0DE1B4 7F0A9684 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DE1B8 7F0A9688 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DE1BC 7F0A968C AFA40018 */ sw $a0, 0x18($sp) +/* 0DE1C0 7F0A9690 AFA60020 */ sw $a2, 0x20($sp) +/* 0DE1C4 7F0A9694 AFA70024 */ sw $a3, 0x24($sp) +/* 0DE1C8 7F0A9698 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE1CC 7F0A969C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1D0 7F0A96A0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0DE1D4 7F0A96A4 2841000A */ slti $at, $v0, 0xa +/* 0DE1D8 7F0A96A8 10200007 */ beqz $at, .L7F0A96C8 +/* 0DE1DC 7F0A96AC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0DE1E0 7F0A96B0 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE1E4 7F0A96B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1E8 7F0A96B8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0DE1EC 7F0A96BC 2841FFF7 */ slti $at, $v0, -9 +/* 0DE1F0 7F0A96C0 1020000B */ beqz $at, .L7F0A96F0 +/* 0DE1F4 7F0A96C4 8FA5001C */ lw $a1, 0x1c($sp) +.L7F0A96C8: +/* 0DE1F8 7F0A96C8 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DE1FC 7F0A96CC 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DE200 7F0A96D0 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0DE204 7F0A96D4 51C00007 */ beql $t6, $zero, .L7F0A96F4 +/* 0DE208 7F0A96D8 8CA20000 */ lw $v0, ($a1) +/* 0DE20C 7F0A96DC 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0DE210 7F0A96E0 24010001 */ li $at, 1 +/* 0DE214 7F0A96E4 00001025 */ move $v0, $zero +/* 0DE218 7F0A96E8 51E10009 */ beql $t7, $at, .L7F0A9710 +/* 0DE21C 7F0A96EC ACA00000 */ sw $zero, ($a1) +.L7F0A96F0: +/* 0DE220 7F0A96F0 8CA20000 */ lw $v0, ($a1) +.L7F0A96F4: +/* 0DE224 7F0A96F4 28410064 */ slti $at, $v0, 0x64 +/* 0DE228 7F0A96F8 10200005 */ beqz $at, .L7F0A9710 +/* 0DE22C 7F0A96FC 24580001 */ addiu $t8, $v0, 1 +/* 0DE230 7F0A9700 ACB80000 */ sw $t8, ($a1) +/* 0DE234 7F0A9704 10000002 */ b .L7F0A9710 +/* 0DE238 7F0A9708 03001025 */ move $v0, $t8 +/* 0DE23C 7F0A970C ACA00000 */ sw $zero, ($a1) +.L7F0A9710: +/* 0DE240 7F0A9710 28410064 */ slti $at, $v0, 0x64 +/* 0DE244 7F0A9714 1420000E */ bnez $at, .L7F0A9750 +/* 0DE248 7F0A9718 3C0A8004 */ lui $t2, %hi(watch_soundrelated_maybe) +/* 0DE24C 7F0A971C 8FA80024 */ lw $t0, 0x24($sp) +/* 0DE250 7F0A9720 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0DE254 7F0A9724 44814000 */ mtc1 $at, $f8 +/* 0DE258 7F0A9728 C5040000 */ lwc1 $f4, ($t0) +/* 0DE25C 7F0A972C 8FB90020 */ lw $t9, 0x20($sp) +/* 0DE260 7F0A9730 3C064080 */ lui $a2, 0x4080 +/* 0DE264 7F0A9734 46002187 */ neg.s $f6, $f4 +/* 0DE268 7F0A9738 C72C0000 */ lwc1 $f12, ($t9) +/* 0DE26C 7F0A973C 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DE270 7F0A9740 46083383 */ div.s $f14, $f6, $f8 +/* 0DE274 7F0A9744 8FA90020 */ lw $t1, 0x20($sp) +/* 0DE278 7F0A9748 1000001D */ b .L7F0A97C0 +/* 0DE27C 7F0A974C E5200000 */ swc1 $f0, ($t1) +.L7F0A9750: +/* 0DE280 7F0A9750 8D4A09A8 */ lw $t2, %lo(watch_soundrelated_maybe)($t2) +/* 0DE284 7F0A9754 3C0B8004 */ lui $t3, %hi(D_80040998) +/* 0DE288 7F0A9758 5140001A */ beql $t2, $zero, .L7F0A97C4 +/* 0DE28C 7F0A975C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DE290 7F0A9760 8D6B0998 */ lw $t3, %lo(D_80040998)($t3) +/* 0DE294 7F0A9764 24010001 */ li $at, 1 +/* 0DE298 7F0A9768 55610016 */ bnel $t3, $at, .L7F0A97C4 +/* 0DE29C 7F0A976C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DE2A0 7F0A9770 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE2A4 7F0A9774 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE2A8 7F0A9778 44825000 */ mtc1 $v0, $f10 +/* 0DE2AC 7F0A977C 3C018006 */ lui $at, %hi(D_80058548) +/* 0DE2B0 7F0A9780 C4248548 */ lwc1 $f4, %lo(D_80058548)($at) +/* 0DE2B4 7F0A9784 46805420 */ cvt.s.w $f16, $f10 +/* 0DE2B8 7F0A9788 3C018006 */ lui $at, %hi(D_8005854C) +/* 0DE2BC 7F0A978C C428854C */ lwc1 $f8, %lo(D_8005854C)($at) +/* 0DE2C0 7F0A9790 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DE2C4 7F0A9794 8FAC0020 */ lw $t4, 0x20($sp) +/* 0DE2C8 7F0A9798 3C064080 */ lui $a2, 0x4080 +/* 0DE2CC 7F0A979C 46008487 */ neg.s $f18, $f16 +/* 0DE2D0 7F0A97A0 44818000 */ mtc1 $at, $f16 +/* 0DE2D4 7F0A97A4 46049182 */ mul.s $f6, $f18, $f4 +/* 0DE2D8 7F0A97A8 C58C0000 */ lwc1 $f12, ($t4) +/* 0DE2DC 7F0A97AC 46083282 */ mul.s $f10, $f6, $f8 +/* 0DE2E0 7F0A97B0 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DE2E4 7F0A97B4 46105383 */ div.s $f14, $f10, $f16 +/* 0DE2E8 7F0A97B8 8FAD0020 */ lw $t5, 0x20($sp) +/* 0DE2EC 7F0A97BC E5A00000 */ swc1 $f0, ($t5) +.L7F0A97C0: +/* 0DE2F0 7F0A97C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A97C4: +/* 0DE2F4 7F0A97C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DE2F8 7F0A97C8 03E00008 */ jr $ra +/* 0DE2FC 7F0A97CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A97D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A97D0 +/* 0DE300 7F0A97D0 27BDF7B0 */ addiu $sp, $sp, -0x850 +/* 0DE304 7F0A97D4 3C068004 */ lui $a2, %hi(D_800409D8) +/* 0DE308 7F0A97D8 8CC609D8 */ lw $a2, %lo(D_800409D8)($a2) +/* 0DE30C 7F0A97DC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DE310 7F0A97E0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DE314 7F0A97E4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DE318 7F0A97E8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DE31C 7F0A97EC AFB00034 */ sw $s0, 0x34($sp) +/* 0DE320 7F0A97F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DE324 7F0A97F4 AFB10038 */ sw $s1, 0x38($sp) +/* 0DE328 7F0A97F8 AFA40850 */ sw $a0, 0x850($sp) +/* 0DE32C 7F0A97FC AFA00060 */ sw $zero, 0x60($sp) +/* 0DE330 7F0A9800 AFA0005C */ sw $zero, 0x5c($sp) +/* 0DE334 7F0A9804 A3A00074 */ sb $zero, 0x74($sp) +/* 0DE338 7F0A9808 00008025 */ move $s0, $zero +/* 0DE33C 7F0A980C AFAE0058 */ sw $t6, 0x58($sp) +/* 0DE340 7F0A9810 18C0000F */ blez $a2, .L7F0A9850 +/* 0DE344 7F0A9814 AFAF0054 */ sw $t7, 0x54($sp) +/* 0DE348 7F0A9818 3C118004 */ lui $s1, %hi(D_800409DC) +/* 0DE34C 7F0A981C 263109DC */ addiu $s1, %lo(D_800409DC) # addiu $s1, $s1, 0x9dc +.L7F0A9820: +/* 0DE350 7F0A9820 0FC30776 */ jal get_textptr_for_textID +/* 0DE354 7F0A9824 96240000 */ lhu $a0, ($s1) +/* 0DE358 7F0A9828 27A40074 */ addiu $a0, $sp, 0x74 +/* 0DE35C 7F0A982C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DE360 7F0A9830 00402825 */ move $a1, $v0 +/* 0DE364 7F0A9834 3C068004 */ lui $a2, %hi(D_800409D8) +/* 0DE368 7F0A9838 8CC609D8 */ lw $a2, %lo(D_800409D8)($a2) +/* 0DE36C 7F0A983C 26100001 */ addiu $s0, $s0, 1 +/* 0DE370 7F0A9840 26310014 */ addiu $s1, $s1, 0x14 +/* 0DE374 7F0A9844 0206082A */ slt $at, $s0, $a2 +/* 0DE378 7F0A9848 1420FFF5 */ bnez $at, .L7F0A9820 +/* 0DE37C 7F0A984C 00000000 */ nop +.L7F0A9850: +/* 0DE380 7F0A9850 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DE384 7F0A9854 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DE388 7F0A9858 3C198004 */ lui $t9, %hi(D_80040998) +/* 0DE38C 7F0A985C 13000019 */ beqz $t8, .L7F0A98C4 +/* 0DE390 7F0A9860 00000000 */ nop +/* 0DE394 7F0A9864 8F390998 */ lw $t9, %lo(D_80040998)($t9) +/* 0DE398 7F0A9868 3C118005 */ lui $s1, %hi(j_text_trigger) +/* 0DE39C 7F0A986C 263184D0 */ addiu $s1, %lo(j_text_trigger) # addiu $s1, $s1, -0x7b30 +/* 0DE3A0 7F0A9870 17200014 */ bnez $t9, .L7F0A98C4 +/* 0DE3A4 7F0A9874 3C038008 */ lui $v1, %hi(pPlayer) +/* 0DE3A8 7F0A9878 8E280000 */ lw $t0, ($s1) +/* 0DE3AC 7F0A987C 240B0001 */ li $t3, 1 +/* 0DE3B0 7F0A9880 2402000A */ li $v0, 10 +/* 0DE3B4 7F0A9884 11000003 */ beqz $t0, .L7F0A9894 +/* 0DE3B8 7F0A9888 00000000 */ nop +/* 0DE3BC 7F0A988C 10000001 */ b .L7F0A9894 +/* 0DE3C0 7F0A9890 2402000E */ li $v0, 14 +.L7F0A9894: +/* 0DE3C4 7F0A9894 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0DE3C8 7F0A9898 AFA00018 */ sw $zero, 0x18($sp) +/* 0DE3CC 7F0A989C AFAB001C */ sw $t3, 0x1c($sp) +/* 0DE3D0 7F0A98A0 24692A5C */ addiu $t1, $v1, 0x2a5c +/* 0DE3D4 7F0A98A4 246A2A68 */ addiu $t2, $v1, 0x2a68 +/* 0DE3D8 7F0A98A8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DE3DC 7F0A98AC AFA90010 */ sw $t1, 0x10($sp) +/* 0DE3E0 7F0A98B0 AFA20020 */ sw $v0, 0x20($sp) +/* 0DE3E4 7F0A98B4 24642A60 */ addiu $a0, $v1, 0x2a60 +/* 0DE3E8 7F0A98B8 24652A58 */ addiu $a1, $v1, 0x2a58 +/* 0DE3EC 7F0A98BC 0FC29847 */ jal sub_GAME_7F0A611C +/* 0DE3F0 7F0A98C0 24672A64 */ addiu $a3, $v1, 0x2a64 +.L7F0A98C4: +/* 0DE3F4 7F0A98C4 3C118005 */ lui $s1, %hi(j_text_trigger) +/* 0DE3F8 7F0A98C8 263184D0 */ addiu $s1, %lo(j_text_trigger) # addiu $s1, $s1, -0x7b30 +/* 0DE3FC 7F0A98CC 8E220000 */ lw $v0, ($s1) +/* 0DE400 7F0A98D0 240C00AA */ li $t4, 170 +/* 0DE404 7F0A98D4 240D001A */ li $t5, 26 +/* 0DE408 7F0A98D8 AFAC0070 */ sw $t4, 0x70($sp) +/* 0DE40C 7F0A98DC 10400003 */ beqz $v0, .L7F0A98EC +/* 0DE410 7F0A98E0 AFAD006C */ sw $t5, 0x6c($sp) +/* 0DE414 7F0A98E4 10000002 */ b .L7F0A98F0 +/* 0DE418 7F0A98E8 2402000E */ li $v0, 14 +.L7F0A98EC: +/* 0DE41C 7F0A98EC 2402000A */ li $v0, 10 +.L7F0A98F0: +/* 0DE420 7F0A98F0 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE424 7F0A98F4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DE428 7F0A98F8 27A5005C */ addiu $a1, $sp, 0x5c +/* 0DE42C 7F0A98FC 27A60074 */ addiu $a2, $sp, 0x74 +/* 0DE430 7F0A9900 8FA70054 */ lw $a3, 0x54($sp) +/* 0DE434 7F0A9904 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE438 7F0A9908 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DE43C 7F0A990C AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE440 7F0A9910 8E220000 */ lw $v0, ($s1) +/* 0DE444 7F0A9914 8FA40850 */ lw $a0, 0x850($sp) +/* 0DE448 7F0A9918 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DE44C 7F0A991C 10400003 */ beqz $v0, .L7F0A992C +/* 0DE450 7F0A9920 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DE454 7F0A9924 10000002 */ b .L7F0A9930 +/* 0DE458 7F0A9928 2410000E */ li $s0, 14 +.L7F0A992C: +/* 0DE45C 7F0A992C 2410000A */ li $s0, 10 +.L7F0A9930: +/* 0DE460 7F0A9930 10400003 */ beqz $v0, .L7F0A9940 +/* 0DE464 7F0A9934 27A70074 */ addiu $a3, $sp, 0x74 +/* 0DE468 7F0A9938 10000002 */ b .L7F0A9944 +/* 0DE46C 7F0A993C 2402000E */ li $v0, 14 +.L7F0A9940: +/* 0DE470 7F0A9940 2402000A */ li $v0, 10 +.L7F0A9944: +/* 0DE474 7F0A9944 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DE478 7F0A9948 8FB80058 */ lw $t8, 0x58($sp) +/* 0DE47C 7F0A994C 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DE480 7F0A9950 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DE484 7F0A9954 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DE488 7F0A9958 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DE48C 7F0A995C 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE490 7F0A9960 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE494 7F0A9964 AFB00020 */ sw $s0, 0x20($sp) +/* 0DE498 7F0A9968 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DE49C 7F0A996C AFB80014 */ sw $t8, 0x14($sp) +/* 0DE4A0 7F0A9970 AFA8001C */ sw $t0, 0x1c($sp) +/* 0DE4A4 7F0A9974 8D2A2A64 */ lw $t2, 0x2a64($t1) +/* 0DE4A8 7F0A9978 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE4AC 7F0A997C 0FC2B6AF */ jal en_text_write_stuff +/* 0DE4B0 7F0A9980 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DE4B4 7F0A9984 3C038008 */ lui $v1, %hi(pPlayer) +/* 0DE4B8 7F0A9988 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0DE4BC 7F0A998C AFA20850 */ sw $v0, 0x850($sp) +/* 0DE4C0 7F0A9990 8C6B2A68 */ lw $t3, 0x2a68($v1) +/* 0DE4C4 7F0A9994 51600043 */ beql $t3, $zero, .L7F0A9AA4 +/* 0DE4C8 7F0A9998 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DE4CC 7F0A999C 8C6C2A58 */ lw $t4, 0x2a58($v1) +/* 0DE4D0 7F0A99A0 3C048004 */ lui $a0, %hi(D_800409DC) +/* 0DE4D4 7F0A99A4 000C6880 */ sll $t5, $t4, 2 +/* 0DE4D8 7F0A99A8 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE4DC 7F0A99AC 000D6880 */ sll $t5, $t5, 2 +/* 0DE4E0 7F0A99B0 008D2021 */ addu $a0, $a0, $t5 +/* 0DE4E4 7F0A99B4 0FC30776 */ jal get_textptr_for_textID +/* 0DE4E8 7F0A99B8 948409DC */ lhu $a0, %lo(D_800409DC)($a0) +/* 0DE4EC 7F0A99BC 8E2E0000 */ lw $t6, ($s1) +/* 0DE4F0 7F0A99C0 00408025 */ move $s0, $v0 +/* 0DE4F4 7F0A99C4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DE4F8 7F0A99C8 11C00003 */ beqz $t6, .L7F0A99D8 +/* 0DE4FC 7F0A99CC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0DE500 7F0A99D0 10000002 */ b .L7F0A99DC +/* 0DE504 7F0A99D4 2402000E */ li $v0, 14 +.L7F0A99D8: +/* 0DE508 7F0A99D8 2402000A */ li $v0, 10 +.L7F0A99DC: +/* 0DE50C 7F0A99DC 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE510 7F0A99E0 02003025 */ move $a2, $s0 +/* 0DE514 7F0A99E4 8FA70054 */ lw $a3, 0x54($sp) +/* 0DE518 7F0A99E8 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE51C 7F0A99EC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DE520 7F0A99F0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DE524 7F0A99F4 8E390000 */ lw $t9, ($s1) +/* 0DE528 7F0A99F8 241800AA */ li $t8, 170 +/* 0DE52C 7F0A99FC AFB80070 */ sw $t8, 0x70($sp) +/* 0DE530 7F0A9A00 13200003 */ beqz $t9, .L7F0A9A10 +/* 0DE534 7F0A9A04 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DE538 7F0A9A08 10000001 */ b .L7F0A9A10 +/* 0DE53C 7F0A9A0C 00000000 */ nop +.L7F0A9A10: +/* 0DE540 7F0A9A10 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DE544 7F0A9A14 2408001A */ li $t0, 26 +/* 0DE548 7F0A9A18 AFA8006C */ sw $t0, 0x6c($sp) +/* 0DE54C 7F0A9A1C 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DE550 7F0A9A20 3C048004 */ lui $a0, %hi(D_800409DC) +/* 0DE554 7F0A9A24 000A5880 */ sll $t3, $t2, 2 +/* 0DE558 7F0A9A28 016A5821 */ addu $t3, $t3, $t2 +/* 0DE55C 7F0A9A2C 000B5880 */ sll $t3, $t3, 2 +/* 0DE560 7F0A9A30 008B2021 */ addu $a0, $a0, $t3 +/* 0DE564 7F0A9A34 0FC30776 */ jal get_textptr_for_textID +/* 0DE568 7F0A9A38 948409DC */ lhu $a0, %lo(D_800409DC)($a0) +/* 0DE56C 7F0A9A3C 8E2C0000 */ lw $t4, ($s1) +/* 0DE570 7F0A9A40 00408025 */ move $s0, $v0 +/* 0DE574 7F0A9A44 8FA40850 */ lw $a0, 0x850($sp) +/* 0DE578 7F0A9A48 11800003 */ beqz $t4, .L7F0A9A58 +/* 0DE57C 7F0A9A4C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DE580 7F0A9A50 10000002 */ b .L7F0A9A5C +/* 0DE584 7F0A9A54 2402000E */ li $v0, 14 +.L7F0A9A58: +/* 0DE588 7F0A9A58 2402000A */ li $v0, 10 +.L7F0A9A5C: +/* 0DE58C 7F0A9A5C 8FAD0054 */ lw $t5, 0x54($sp) +/* 0DE590 7F0A9A60 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE594 7F0A9A64 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DE598 7F0A9A68 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0DE59C 7F0A9A6C 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0DE5A0 7F0A9A70 24190064 */ li $t9, 100 +/* 0DE5A4 7F0A9A74 AFB90020 */ sw $t9, 0x20($sp) +/* 0DE5A8 7F0A9A78 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DE5AC 7F0A9A7C 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DE5B0 7F0A9A80 02003825 */ move $a3, $s0 +/* 0DE5B4 7F0A9A84 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE5B8 7F0A9A88 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE5BC 7F0A9A8C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DE5C0 7F0A9A90 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DE5C4 7F0A9A94 0FC2B6AF */ jal en_text_write_stuff +/* 0DE5C8 7F0A9A98 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DE5CC 7F0A9A9C AFA20850 */ sw $v0, 0x850($sp) +/* 0DE5D0 7F0A9AA0 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A9AA4: +/* 0DE5D4 7F0A9AA4 8FA20850 */ lw $v0, 0x850($sp) +/* 0DE5D8 7F0A9AA8 8FB00034 */ lw $s0, 0x34($sp) +/* 0DE5DC 7F0A9AAC 8FB10038 */ lw $s1, 0x38($sp) +/* 0DE5E0 7F0A9AB0 03E00008 */ jr $ra +/* 0DE5E4 7F0A9AB4 27BD0850 */ addiu $sp, $sp, 0x850 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9AB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9AB8 +/* 0DE5E8 7F0A9AB8 3C0E8004 */ lui $t6, %hi(cur_player_look_vertical_inverted) +/* 0DE5EC 7F0A9ABC 8DCE0A84 */ lw $t6, %lo(cur_player_look_vertical_inverted)($t6) +/* 0DE5F0 7F0A9AC0 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0DE5F4 7F0A9AC4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DE5F8 7F0A9AC8 24010001 */ li $at, 1 +/* 0DE5FC 7F0A9ACC 00808025 */ move $s0, $a0 +/* 0DE600 7F0A9AD0 15C10008 */ bne $t6, $at, .L7F0A9AF4 +/* 0DE604 7F0A9AD4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DE608 7F0A9AD8 0FC30776 */ jal get_textptr_for_textID +/* 0DE60C 7F0A9ADC 3404AC2D */ li $a0, 44077 +/* 0DE610 7F0A9AE0 AFA200AC */ sw $v0, 0xac($sp) +/* 0DE614 7F0A9AE4 0FC30776 */ jal get_textptr_for_textID +/* 0DE618 7F0A9AE8 3404AC2C */ li $a0, 44076 +/* 0DE61C 7F0A9AEC 10000007 */ b .L7F0A9B0C +/* 0DE620 7F0A9AF0 AFA200A8 */ sw $v0, 0xa8($sp) +.L7F0A9AF4: +/* 0DE624 7F0A9AF4 0FC30776 */ jal get_textptr_for_textID +/* 0DE628 7F0A9AF8 3404AC2C */ li $a0, 44076 +/* 0DE62C 7F0A9AFC AFA200AC */ sw $v0, 0xac($sp) +/* 0DE630 7F0A9B00 0FC30776 */ jal get_textptr_for_textID +/* 0DE634 7F0A9B04 3404AC2D */ li $a0, 44077 +/* 0DE638 7F0A9B08 AFA200A8 */ sw $v0, 0xa8($sp) +.L7F0A9B0C: +/* 0DE63C 7F0A9B0C 3C188005 */ lui $t8, %hi(aA) +/* 0DE640 7F0A9B10 27187778 */ addiu $t8, %lo(aA) # addiu $t8, $t8, 0x7778 +/* 0DE644 7F0A9B14 8F010000 */ lw $at, ($t8) +/* 0DE648 7F0A9B18 27AF00A0 */ addiu $t7, $sp, 0xa0 +/* 0DE64C 7F0A9B1C 3C0B8005 */ lui $t3, %hi(aB) +/* 0DE650 7F0A9B20 ADE10000 */ sw $at, ($t7) +/* 0DE654 7F0A9B24 93010004 */ lbu $at, 4($t8) +/* 0DE658 7F0A9B28 256B7780 */ addiu $t3, %lo(aB) # addiu $t3, $t3, 0x7780 +/* 0DE65C 7F0A9B2C 27AA0098 */ addiu $t2, $sp, 0x98 +/* 0DE660 7F0A9B30 A1E10004 */ sb $at, 4($t7) +/* 0DE664 7F0A9B34 8D610000 */ lw $at, ($t3) +/* 0DE668 7F0A9B38 3C198005 */ lui $t9, %hi(aZ) +/* 0DE66C 7F0A9B3C 27397788 */ addiu $t9, %lo(aZ) # addiu $t9, $t9, 0x7788 +/* 0DE670 7F0A9B40 AD410000 */ sw $at, ($t2) +/* 0DE674 7F0A9B44 91610004 */ lbu $at, 4($t3) +/* 0DE678 7F0A9B48 27A80090 */ addiu $t0, $sp, 0x90 +/* 0DE67C 7F0A9B4C 3C0C8005 */ lui $t4, %hi(aL) +/* 0DE680 7F0A9B50 A1410004 */ sb $at, 4($t2) +/* 0DE684 7F0A9B54 8F210000 */ lw $at, ($t9) +/* 0DE688 7F0A9B58 258C7790 */ addiu $t4, %lo(aL) # addiu $t4, $t4, 0x7790 +/* 0DE68C 7F0A9B5C 27AD0088 */ addiu $t5, $sp, 0x88 +/* 0DE690 7F0A9B60 AD010000 */ sw $at, ($t0) +/* 0DE694 7F0A9B64 93210004 */ lbu $at, 4($t9) +/* 0DE698 7F0A9B68 3C0F8005 */ lui $t7, %hi(aR) +/* 0DE69C 7F0A9B6C 25EF7798 */ addiu $t7, %lo(aR) # addiu $t7, $t7, 0x7798 +/* 0DE6A0 7F0A9B70 A1010004 */ sb $at, 4($t0) +/* 0DE6A4 7F0A9B74 8D810000 */ lw $at, ($t4) +/* 0DE6A8 7F0A9B78 27B80080 */ addiu $t8, $sp, 0x80 +/* 0DE6AC 7F0A9B7C 3C0A8005 */ lui $t2, %hi(aC) +/* 0DE6B0 7F0A9B80 ADA10000 */ sw $at, ($t5) +/* 0DE6B4 7F0A9B84 91810004 */ lbu $at, 4($t4) +/* 0DE6B8 7F0A9B88 254A77A0 */ addiu $t2, %lo(aC) # addiu $t2, $t2, 0x77a0 +/* 0DE6BC 7F0A9B8C 27AB0078 */ addiu $t3, $sp, 0x78 +/* 0DE6C0 7F0A9B90 A1A10004 */ sb $at, 4($t5) +/* 0DE6C4 7F0A9B94 8DE10000 */ lw $at, ($t7) +/* 0DE6C8 7F0A9B98 3C088005 */ lui $t0, %hi(D_800577A8) +/* 0DE6CC 7F0A9B9C 250877A8 */ addiu $t0, %lo(D_800577A8) # addiu $t0, $t0, 0x77a8 +/* 0DE6D0 7F0A9BA0 AF010000 */ sw $at, ($t8) +/* 0DE6D4 7F0A9BA4 91E10004 */ lbu $at, 4($t7) +/* 0DE6D8 7F0A9BA8 27B90070 */ addiu $t9, $sp, 0x70 +/* 0DE6DC 7F0A9BAC 3C0D8005 */ lui $t5, %hi(aS_0) +/* 0DE6E0 7F0A9BB0 A3010004 */ sb $at, 4($t8) +/* 0DE6E4 7F0A9BB4 8D410000 */ lw $at, ($t2) +/* 0DE6E8 7F0A9BB8 25AD77B0 */ addiu $t5, %lo(aS_0) # addiu $t5, $t5, 0x77b0 +/* 0DE6EC 7F0A9BBC 27AC0068 */ addiu $t4, $sp, 0x68 +/* 0DE6F0 7F0A9BC0 AD610000 */ sw $at, ($t3) +/* 0DE6F4 7F0A9BC4 91410004 */ lbu $at, 4($t2) +/* 0DE6F8 7F0A9BC8 3C188005 */ lui $t8, %hi(a3d) +/* 0DE6FC 7F0A9BCC 271877B8 */ addiu $t8, %lo(a3d) # addiu $t8, $t8, 0x77b8 +/* 0DE700 7F0A9BD0 A1610004 */ sb $at, 4($t3) +/* 0DE704 7F0A9BD4 8D010000 */ lw $at, ($t0) +/* 0DE708 7F0A9BD8 27AF0060 */ addiu $t7, $sp, 0x60 +/* 0DE70C 7F0A9BDC 02002025 */ move $a0, $s0 +/* 0DE710 7F0A9BE0 AF210000 */ sw $at, ($t9) +/* 0DE714 7F0A9BE4 91010004 */ lbu $at, 4($t0) +/* 0DE718 7F0A9BE8 A3210004 */ sb $at, 4($t9) +/* 0DE71C 7F0A9BEC 8DA10000 */ lw $at, ($t5) +/* 0DE720 7F0A9BF0 AD810000 */ sw $at, ($t4) +/* 0DE724 7F0A9BF4 91A10004 */ lbu $at, 4($t5) +/* 0DE728 7F0A9BF8 A1810004 */ sb $at, 4($t4) +/* 0DE72C 7F0A9BFC 8F010000 */ lw $at, ($t8) +/* 0DE730 7F0A9C00 ADE10000 */ sw $at, ($t7) +/* 0DE734 7F0A9C04 97010004 */ lhu $at, 4($t8) +/* 0DE738 7F0A9C08 A5E10004 */ sh $at, 4($t7) +/* 0DE73C 7F0A9C0C 0FC2B366 */ jal microcode_constructor +/* 0DE740 7F0A9C10 AFA00050 */ sw $zero, 0x50($sp) +/* 0DE744 7F0A9C14 00408025 */ move $s0, $v0 +/* 0DE748 7F0A9C18 00002025 */ move $a0, $zero +/* 0DE74C 7F0A9C1C 0C0030C3 */ jal get_controller_buttons_held +/* 0DE750 7F0A9C20 24050020 */ li $a1, 32 +/* 0DE754 7F0A9C24 1040002C */ beqz $v0, .L7F0A9CD8 +/* 0DE758 7F0A9C28 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0DE75C 7F0A9C2C 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0DE760 7F0A9C30 3C048004 */ lui $a0, %hi(D_800409DC+8) +/* 0DE764 7F0A9C34 8D4B2A58 */ lw $t3, 0x2a58($t2) +/* 0DE768 7F0A9C38 000B6080 */ sll $t4, $t3, 2 +/* 0DE76C 7F0A9C3C 018B6021 */ addu $t4, $t4, $t3 +/* 0DE770 7F0A9C40 000C6080 */ sll $t4, $t4, 2 +/* 0DE774 7F0A9C44 008C2021 */ addu $a0, $a0, $t4 +/* 0DE778 7F0A9C48 0FC30776 */ jal get_textptr_for_textID +/* 0DE77C 7F0A9C4C 948409E4 */ lhu $a0, %lo(D_800409DC+8)($a0) +/* 0DE780 7F0A9C50 3C080070 */ lui $t0, (0x007000A0 >> 16) # lui $t0, 0x70 +/* 0DE784 7F0A9C54 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DE788 7F0A9C58 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE78C 7F0A9C5C 350800A0 */ ori $t0, (0x007000A0 & 0xFFFF) # ori $t0, $t0, 0xa0 +/* 0DE790 7F0A9C60 240DFFFF */ li $t5, -1 +/* 0DE794 7F0A9C64 240E0001 */ li $t6, 1 +/* 0DE798 7F0A9C68 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DE79C 7F0A9C6C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DE7A0 7F0A9C70 AFA80018 */ sw $t0, 0x18($sp) +/* 0DE7A4 7F0A9C74 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE7A8 7F0A9C78 02002025 */ move $a0, $s0 +/* 0DE7AC 7F0A9C7C 24050032 */ li $a1, 50 +/* 0DE7B0 7F0A9C80 24060052 */ li $a2, 82 +/* 0DE7B4 7F0A9C84 00403825 */ move $a3, $v0 +/* 0DE7B8 7F0A9C88 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE7BC 7F0A9C8C AFA00020 */ sw $zero, 0x20($sp) +/* 0DE7C0 7F0A9C90 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE7C4 7F0A9C94 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE7C8 7F0A9C98 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DE7CC 7F0A9C9C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DE7D0 7F0A9CA0 3C0A8004 */ lui $t2, %hi(D_800409DC+9) +/* 0DE7D4 7F0A9CA4 3401AC01 */ li $at, 44033 +/* 0DE7D8 7F0A9CA8 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DE7DC 7F0A9CAC 00408025 */ move $s0, $v0 +/* 0DE7E0 7F0A9CB0 240B0001 */ li $t3, 1 +/* 0DE7E4 7F0A9CB4 00184880 */ sll $t1, $t8, 2 +/* 0DE7E8 7F0A9CB8 01384821 */ addu $t1, $t1, $t8 +/* 0DE7EC 7F0A9CBC 00094880 */ sll $t1, $t1, 2 +/* 0DE7F0 7F0A9CC0 01495021 */ addu $t2, $t2, $t1 +/* 0DE7F4 7F0A9CC4 954A09E4 */ lhu $t2, %lo(D_800409DC+8)($t2) +/* 0DE7F8 7F0A9CC8 1541001F */ bne $t2, $at, .L7F0A9D48 +/* 0DE7FC 7F0A9CCC 00000000 */ nop +/* 0DE800 7F0A9CD0 1000001D */ b .L7F0A9D48 +/* 0DE804 7F0A9CD4 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0A9CD8: +/* 0DE808 7F0A9CD8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DE80C 7F0A9CDC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DE810 7F0A9CE0 3C048004 */ lui $a0, %hi(D_800409DC+8) +/* 0DE814 7F0A9CE4 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DE818 7F0A9CE8 000D7080 */ sll $t6, $t5, 2 +/* 0DE81C 7F0A9CEC 01CD7021 */ addu $t6, $t6, $t5 +/* 0DE820 7F0A9CF0 000E7080 */ sll $t6, $t6, 2 +/* 0DE824 7F0A9CF4 008E2021 */ addu $a0, $a0, $t6 +/* 0DE828 7F0A9CF8 0FC30776 */ jal get_textptr_for_textID +/* 0DE82C 7F0A9CFC 948409E4 */ lhu $a0, %lo(D_800409DC+8)($a0) +/* 0DE830 7F0A9D00 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DE834 7F0A9D04 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DE838 7F0A9D08 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DE83C 7F0A9D0C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DE840 7F0A9D10 2419FFFF */ li $t9, -1 +/* 0DE844 7F0A9D14 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE848 7F0A9D18 AFA80010 */ sw $t0, 0x10($sp) +/* 0DE84C 7F0A9D1C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DE850 7F0A9D20 02002025 */ move $a0, $s0 +/* 0DE854 7F0A9D24 24050032 */ li $a1, 50 +/* 0DE858 7F0A9D28 24060052 */ li $a2, 82 +/* 0DE85C 7F0A9D2C 00403825 */ move $a3, $v0 +/* 0DE860 7F0A9D30 AFA00014 */ sw $zero, 0x14($sp) +/* 0DE864 7F0A9D34 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE868 7F0A9D38 AFA00020 */ sw $zero, 0x20($sp) +/* 0DE86C 7F0A9D3C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE870 7F0A9D40 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE874 7F0A9D44 00408025 */ move $s0, $v0 +.L7F0A9D48: +/* 0DE878 7F0A9D48 3C098004 */ lui $t1, %hi(D_80040998) +/* 0DE87C 7F0A9D4C 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0DE880 7F0A9D50 2418006B */ li $t8, 107 +/* 0DE884 7F0A9D54 24010001 */ li $at, 1 +/* 0DE888 7F0A9D58 1521000A */ bne $t1, $at, .L7F0A9D84 +/* 0DE88C 7F0A9D5C AFB8004C */ sw $t8, 0x4c($sp) +/* 0DE890 7F0A9D60 3C0A8004 */ lui $t2, %hi(watch_soundrelated_maybe) +/* 0DE894 7F0A9D64 8D4A09A8 */ lw $t2, %lo(watch_soundrelated_maybe)($t2) +/* 0DE898 7F0A9D68 00002025 */ move $a0, $zero +/* 0DE89C 7F0A9D6C 11400005 */ beqz $t2, .L7F0A9D84 +/* 0DE8A0 7F0A9D70 00000000 */ nop +/* 0DE8A4 7F0A9D74 0C0030C3 */ jal get_controller_buttons_held +/* 0DE8A8 7F0A9D78 24050F00 */ li $a1, 3840 +/* 0DE8AC 7F0A9D7C 1440001E */ bnez $v0, .L7F0A9DF8 +/* 0DE8B0 7F0A9D80 00002025 */ move $a0, $zero +.L7F0A9D84: +/* 0DE8B4 7F0A9D84 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DE8B8 7F0A9D88 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DE8BC 7F0A9D8C 3C048004 */ lui $a0, %hi(D_800409DC+14) +/* 0DE8C0 7F0A9D90 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DE8C4 7F0A9D94 000C6880 */ sll $t5, $t4, 2 +/* 0DE8C8 7F0A9D98 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE8CC 7F0A9D9C 000D6880 */ sll $t5, $t5, 2 +/* 0DE8D0 7F0A9DA0 008D2021 */ addu $a0, $a0, $t5 +/* 0DE8D4 7F0A9DA4 0FC30776 */ jal get_textptr_for_textID +/* 0DE8D8 7F0A9DA8 948409EA */ lhu $a0, %lo(D_800409DC+14)($a0) +/* 0DE8DC 7F0A9DAC 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DE8E0 7F0A9DB0 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DE8E4 7F0A9DB4 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE8E8 7F0A9DB8 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DE8EC 7F0A9DBC 2408FFFF */ li $t0, -1 +/* 0DE8F0 7F0A9DC0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DE8F4 7F0A9DC4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE8F8 7F0A9DC8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE8FC 7F0A9DCC 02002025 */ move $a0, $s0 +/* 0DE900 7F0A9DD0 24050032 */ li $a1, 50 +/* 0DE904 7F0A9DD4 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DE908 7F0A9DD8 00403825 */ move $a3, $v0 +/* 0DE90C 7F0A9DDC AFA00014 */ sw $zero, 0x14($sp) +/* 0DE910 7F0A9DE0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE914 7F0A9DE4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DE918 7F0A9DE8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE91C 7F0A9DEC AFA00028 */ sw $zero, 0x28($sp) +/* 0DE920 7F0A9DF0 10000051 */ b .L7F0A9F38 +/* 0DE924 7F0A9DF4 00408025 */ move $s0, $v0 +.L7F0A9DF8: +/* 0DE928 7F0A9DF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DE92C 7F0A9DFC 24050800 */ li $a1, 2048 +/* 0DE930 7F0A9E00 10400014 */ beqz $v0, .L7F0A9E54 +/* 0DE934 7F0A9E04 00002025 */ move $a0, $zero +/* 0DE938 7F0A9E08 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DE93C 7F0A9E0C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DE940 7F0A9E10 3C0A8004 */ lui $t2, %hi(D_800409DC+14) +/* 0DE944 7F0A9E14 3401AC05 */ li $at, 44037 +/* 0DE948 7F0A9E18 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DE94C 7F0A9E1C 8FA700AC */ lw $a3, 0xac($sp) +/* 0DE950 7F0A9E20 00184880 */ sll $t1, $t8, 2 +/* 0DE954 7F0A9E24 01384821 */ addu $t1, $t1, $t8 +/* 0DE958 7F0A9E28 00094880 */ sll $t1, $t1, 2 +/* 0DE95C 7F0A9E2C 01495021 */ addu $t2, $t2, $t1 +/* 0DE960 7F0A9E30 954A09EA */ lhu $t2, %lo(D_800409DC+14)($t2) +/* 0DE964 7F0A9E34 15410005 */ bne $t2, $at, .L7F0A9E4C +/* 0DE968 7F0A9E38 00000000 */ nop +/* 0DE96C 7F0A9E3C 0FC30776 */ jal get_textptr_for_textID +/* 0DE970 7F0A9E40 3404AC30 */ li $a0, 44080 +/* 0DE974 7F0A9E44 10000001 */ b .L7F0A9E4C +/* 0DE978 7F0A9E48 00403825 */ move $a3, $v0 +.L7F0A9E4C: +/* 0DE97C 7F0A9E4C 10000027 */ b .L7F0A9EEC +/* 0DE980 7F0A9E50 AFA70058 */ sw $a3, 0x58($sp) +.L7F0A9E54: +/* 0DE984 7F0A9E54 0C0030C3 */ jal get_controller_buttons_held +/* 0DE988 7F0A9E58 24050400 */ li $a1, 1024 +/* 0DE98C 7F0A9E5C 10400014 */ beqz $v0, .L7F0A9EB0 +/* 0DE990 7F0A9E60 00002025 */ move $a0, $zero +/* 0DE994 7F0A9E64 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DE998 7F0A9E68 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DE99C 7F0A9E6C 3C0E8004 */ lui $t6, %hi(D_800409DC+14) +/* 0DE9A0 7F0A9E70 3401AC05 */ li $at, 44037 +/* 0DE9A4 7F0A9E74 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DE9A8 7F0A9E78 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0DE9AC 7F0A9E7C 000C6880 */ sll $t5, $t4, 2 +/* 0DE9B0 7F0A9E80 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE9B4 7F0A9E84 000D6880 */ sll $t5, $t5, 2 +/* 0DE9B8 7F0A9E88 01CD7021 */ addu $t6, $t6, $t5 +/* 0DE9BC 7F0A9E8C 95CE09EA */ lhu $t6, %lo(D_800409DC+14)($t6) +/* 0DE9C0 7F0A9E90 15C10005 */ bne $t6, $at, .L7F0A9EA8 +/* 0DE9C4 7F0A9E94 00000000 */ nop +/* 0DE9C8 7F0A9E98 0FC30776 */ jal get_textptr_for_textID +/* 0DE9CC 7F0A9E9C 3404AC31 */ li $a0, 44081 +/* 0DE9D0 7F0A9EA0 10000001 */ b .L7F0A9EA8 +/* 0DE9D4 7F0A9EA4 00403825 */ move $a3, $v0 +.L7F0A9EA8: +/* 0DE9D8 7F0A9EA8 10000010 */ b .L7F0A9EEC +/* 0DE9DC 7F0A9EAC AFA70058 */ sw $a3, 0x58($sp) +.L7F0A9EB0: +/* 0DE9E0 7F0A9EB0 0C0030C3 */ jal get_controller_buttons_held +/* 0DE9E4 7F0A9EB4 24050200 */ li $a1, 512 +/* 0DE9E8 7F0A9EB8 10400005 */ beqz $v0, .L7F0A9ED0 +/* 0DE9EC 7F0A9EBC 00002025 */ move $a0, $zero +/* 0DE9F0 7F0A9EC0 0FC30776 */ jal get_textptr_for_textID +/* 0DE9F4 7F0A9EC4 3404AC2F */ li $a0, 44079 +/* 0DE9F8 7F0A9EC8 10000008 */ b .L7F0A9EEC +/* 0DE9FC 7F0A9ECC AFA20058 */ sw $v0, 0x58($sp) +.L7F0A9ED0: +/* 0DEA00 7F0A9ED0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEA04 7F0A9ED4 24050100 */ li $a1, 256 +/* 0DEA08 7F0A9ED8 50400005 */ beql $v0, $zero, .L7F0A9EF0 +/* 0DEA0C 7F0A9EDC 3C0F0070 */ lui $t7, 0x70 +/* 0DEA10 7F0A9EE0 0FC30776 */ jal get_textptr_for_textID +/* 0DEA14 7F0A9EE4 3404AC2E */ li $a0, 44078 +/* 0DEA18 7F0A9EE8 AFA20058 */ sw $v0, 0x58($sp) +.L7F0A9EEC: +/* 0DEA1C 7F0A9EEC 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +.L7F0A9EF0: +/* 0DEA20 7F0A9EF0 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DEA24 7F0A9EF4 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEA28 7F0A9EF8 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0DEA2C 7F0A9EFC 2408FFFF */ li $t0, -1 +/* 0DEA30 7F0A9F00 24190001 */ li $t9, 1 +/* 0DEA34 7F0A9F04 8FA70058 */ lw $a3, 0x58($sp) +/* 0DEA38 7F0A9F08 AFB90014 */ sw $t9, 0x14($sp) +/* 0DEA3C 7F0A9F0C AFA80010 */ sw $t0, 0x10($sp) +/* 0DEA40 7F0A9F10 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DEA44 7F0A9F14 AFB80024 */ sw $t8, 0x24($sp) +/* 0DEA48 7F0A9F18 02002025 */ move $a0, $s0 +/* 0DEA4C 7F0A9F1C 24050032 */ li $a1, 50 +/* 0DEA50 7F0A9F20 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEA54 7F0A9F24 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEA58 7F0A9F28 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEA5C 7F0A9F2C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEA60 7F0A9F30 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEA64 7F0A9F34 00408025 */ move $s0, $v0 +.L7F0A9F38: +/* 0DEA68 7F0A9F38 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DEA6C 7F0A9F3C 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DEA70 7F0A9F40 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DEA74 7F0A9F44 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DEA78 7F0A9F48 AFAA004C */ sw $t2, 0x4c($sp) +/* 0DEA7C 7F0A9F4C 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DEA80 7F0A9F50 3C048004 */ lui $a0, %hi(D_800409DC+16) +/* 0DEA84 7F0A9F54 000C6880 */ sll $t5, $t4, 2 +/* 0DEA88 7F0A9F58 01AC6821 */ addu $t5, $t5, $t4 +/* 0DEA8C 7F0A9F5C 000D6880 */ sll $t5, $t5, 2 +/* 0DEA90 7F0A9F60 008D2021 */ addu $a0, $a0, $t5 +/* 0DEA94 7F0A9F64 0FC30776 */ jal get_textptr_for_textID +/* 0DEA98 7F0A9F68 948409EC */ lhu $a0, %lo(D_800409DC+16)($a0) +/* 0DEA9C 7F0A9F6C 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DEAA0 7F0A9F70 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DEAA4 7F0A9F74 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEAA8 7F0A9F78 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DEAAC 7F0A9F7C 2408FFFF */ li $t0, -1 +/* 0DEAB0 7F0A9F80 AFA80018 */ sw $t0, 0x18($sp) +/* 0DEAB4 7F0A9F84 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DEAB8 7F0A9F88 AFB90024 */ sw $t9, 0x24($sp) +/* 0DEABC 7F0A9F8C 02002025 */ move $a0, $s0 +/* 0DEAC0 7F0A9F90 24050032 */ li $a1, 50 +/* 0DEAC4 7F0A9F94 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEAC8 7F0A9F98 00403825 */ move $a3, $v0 +/* 0DEACC 7F0A9F9C AFA00014 */ sw $zero, 0x14($sp) +/* 0DEAD0 7F0A9FA0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEAD4 7F0A9FA4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEAD8 7F0A9FA8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEADC 7F0A9FAC AFA00028 */ sw $zero, 0x28($sp) +/* 0DEAE0 7F0A9FB0 8FAF004C */ lw $t7, 0x4c($sp) +/* 0DEAE4 7F0A9FB4 00408025 */ move $s0, $v0 +/* 0DEAE8 7F0A9FB8 00002025 */ move $a0, $zero +/* 0DEAEC 7F0A9FBC 25F80019 */ addiu $t8, $t7, 0x19 +/* 0DEAF0 7F0A9FC0 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DEAF4 7F0A9FC4 0C0030C3 */ jal get_controller_buttons_held +/* 0DEAF8 7F0A9FC8 24052000 */ li $a1, 8192 +/* 0DEAFC 7F0A9FCC 1040002D */ beqz $v0, .L7F0AA084 +/* 0DEB00 7F0A9FD0 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DEB04 7F0A9FD4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DEB08 7F0A9FD8 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DEB0C 7F0A9FDC 3C048004 */ lui $a0, %hi(D_800409DC+0x6) +/* 0DEB10 7F0A9FE0 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DEB14 7F0A9FE4 000A5880 */ sll $t3, $t2, 2 +/* 0DEB18 7F0A9FE8 016A5821 */ addu $t3, $t3, $t2 +/* 0DEB1C 7F0A9FEC 000B5880 */ sll $t3, $t3, 2 +/* 0DEB20 7F0A9FF0 008B2021 */ addu $a0, $a0, $t3 +/* 0DEB24 7F0A9FF4 0FC30776 */ jal get_textptr_for_textID +/* 0DEB28 7F0A9FF8 948409E2 */ lhu $a0, %lo(D_800409DC+0x6)($a0) +/* 0DEB2C 7F0A9FFC 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DEB30 7F0AA000 3C080030 */ lui $t0, (0x003000B0 >> 16) # lui $t0, 0x30 +/* 0DEB34 7F0AA004 350800B0 */ ori $t0, (0x003000B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DEB38 7F0AA008 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DEB3C 7F0AA00C 240CFFFF */ li $t4, -1 +/* 0DEB40 7F0AA010 240D0001 */ li $t5, 1 +/* 0DEB44 7F0AA014 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DEB48 7F0AA018 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DEB4C 7F0AA01C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DEB50 7F0AA020 AFA80024 */ sw $t0, 0x24($sp) +/* 0DEB54 7F0AA024 02002025 */ move $a0, $s0 +/* 0DEB58 7F0AA028 24050032 */ li $a1, 50 +/* 0DEB5C 7F0AA02C 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEB60 7F0AA030 00403825 */ move $a3, $v0 +/* 0DEB64 7F0AA034 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEB68 7F0AA038 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEB6C 7F0AA03C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEB70 7F0AA040 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEB74 7F0AA044 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DEB78 7F0AA048 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DEB7C 7F0AA04C 3C098004 */ lui $t1, %hi(D_800409DC+6) +/* 0DEB80 7F0AA050 3401AC01 */ li $at, 44033 +/* 0DEB84 7F0AA054 8F2F2A58 */ lw $t7, 0x2a58($t9) +/* 0DEB88 7F0AA058 00408025 */ move $s0, $v0 +/* 0DEB8C 7F0AA05C 240A0001 */ li $t2, 1 +/* 0DEB90 7F0AA060 000FC080 */ sll $t8, $t7, 2 +/* 0DEB94 7F0AA064 030FC021 */ addu $t8, $t8, $t7 +/* 0DEB98 7F0AA068 0018C080 */ sll $t8, $t8, 2 +/* 0DEB9C 7F0AA06C 01384821 */ addu $t1, $t1, $t8 +/* 0DEBA0 7F0AA070 952909E2 */ lhu $t1, %lo(D_800409DC+6)($t1) +/* 0DEBA4 7F0AA074 5521001F */ bnel $t1, $at, .L7F0AA0F4 +/* 0DEBA8 7F0AA078 8FAF004C */ lw $t7, 0x4c($sp) +/* 0DEBAC 7F0AA07C 1000001C */ b .L7F0AA0F0 +/* 0DEBB0 7F0AA080 AFAA0050 */ sw $t2, 0x50($sp) +.L7F0AA084: +/* 0DEBB4 7F0AA084 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DEBB8 7F0AA088 3C048004 */ lui $a0, %hi(D_800409DC+6) +/* 0DEBBC 7F0AA08C 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DEBC0 7F0AA090 000C6880 */ sll $t5, $t4, 2 +/* 0DEBC4 7F0AA094 01AC6821 */ addu $t5, $t5, $t4 +/* 0DEBC8 7F0AA098 000D6880 */ sll $t5, $t5, 2 +/* 0DEBCC 7F0AA09C 008D2021 */ addu $a0, $a0, $t5 +/* 0DEBD0 7F0AA0A0 0FC30776 */ jal get_textptr_for_textID +/* 0DEBD4 7F0AA0A4 948409E2 */ lhu $a0, %lo(D_800409DC+6)($a0) +/* 0DEBD8 7F0AA0A8 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DEBDC 7F0AA0AC 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DEBE0 7F0AA0B0 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEBE4 7F0AA0B4 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DEBE8 7F0AA0B8 2408FFFF */ li $t0, -1 +/* 0DEBEC 7F0AA0BC AFA80018 */ sw $t0, 0x18($sp) +/* 0DEBF0 7F0AA0C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DEBF4 7F0AA0C4 AFB90024 */ sw $t9, 0x24($sp) +/* 0DEBF8 7F0AA0C8 02002025 */ move $a0, $s0 +/* 0DEBFC 7F0AA0CC 24050032 */ li $a1, 50 +/* 0DEC00 7F0AA0D0 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEC04 7F0AA0D4 00403825 */ move $a3, $v0 +/* 0DEC08 7F0AA0D8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DEC0C 7F0AA0DC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEC10 7F0AA0E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEC14 7F0AA0E4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEC18 7F0AA0E8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEC1C 7F0AA0EC 00408025 */ move $s0, $v0 +.L7F0AA0F0: +/* 0DEC20 7F0AA0F0 8FAF004C */ lw $t7, 0x4c($sp) +.L7F0AA0F4: +/* 0DEC24 7F0AA0F4 00002025 */ move $a0, $zero +/* 0DEC28 7F0AA0F8 24050010 */ li $a1, 16 +/* 0DEC2C 7F0AA0FC 25F8FFB5 */ addiu $t8, $t7, -0x4b +/* 0DEC30 7F0AA100 0C0030C3 */ jal get_controller_buttons_held +/* 0DEC34 7F0AA104 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DEC38 7F0AA108 1040002E */ beqz $v0, .L7F0AA1C4 +/* 0DEC3C 7F0AA10C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DEC40 7F0AA110 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DEC44 7F0AA114 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DEC48 7F0AA118 3C048004 */ lui $a0, %hi(D_800409DC+10) +/* 0DEC4C 7F0AA11C 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DEC50 7F0AA120 000A5880 */ sll $t3, $t2, 2 +/* 0DEC54 7F0AA124 016A5821 */ addu $t3, $t3, $t2 +/* 0DEC58 7F0AA128 000B5880 */ sll $t3, $t3, 2 +/* 0DEC5C 7F0AA12C 008B2021 */ addu $a0, $a0, $t3 +/* 0DEC60 7F0AA130 0FC30776 */ jal get_textptr_for_textID +/* 0DEC64 7F0AA134 948409E6 */ lhu $a0, %lo(D_800409DC+10)($a0) +/* 0DEC68 7F0AA138 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DEC6C 7F0AA13C 3C080030 */ lui $t0, (0x003000B0 >> 16) # lui $t0, 0x30 +/* 0DEC70 7F0AA140 350800B0 */ ori $t0, (0x003000B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DEC74 7F0AA144 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DEC78 7F0AA148 240CFFFF */ li $t4, -1 +/* 0DEC7C 7F0AA14C 240D0001 */ li $t5, 1 +/* 0DEC80 7F0AA150 24190001 */ li $t9, 1 +/* 0DEC84 7F0AA154 AFB90028 */ sw $t9, 0x28($sp) +/* 0DEC88 7F0AA158 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DEC8C 7F0AA15C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DEC90 7F0AA160 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DEC94 7F0AA164 AFA80024 */ sw $t0, 0x24($sp) +/* 0DEC98 7F0AA168 02002025 */ move $a0, $s0 +/* 0DEC9C 7F0AA16C 2405010E */ li $a1, 270 +/* 0DECA0 7F0AA170 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DECA4 7F0AA174 00403825 */ move $a3, $v0 +/* 0DECA8 7F0AA178 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DECAC 7F0AA17C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DECB0 7F0AA180 AFA00020 */ sw $zero, 0x20($sp) +/* 0DECB4 7F0AA184 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DECB8 7F0AA188 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DECBC 7F0AA18C 3C0A8004 */ lui $t2, %hi(D_800409DC+10) +/* 0DECC0 7F0AA190 3401AC01 */ li $at, 44033 +/* 0DECC4 7F0AA194 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DECC8 7F0AA198 00408025 */ move $s0, $v0 +/* 0DECCC 7F0AA19C 240B0001 */ li $t3, 1 +/* 0DECD0 7F0AA1A0 00184880 */ sll $t1, $t8, 2 +/* 0DECD4 7F0AA1A4 01384821 */ addu $t1, $t1, $t8 +/* 0DECD8 7F0AA1A8 00094880 */ sll $t1, $t1, 2 +/* 0DECDC 7F0AA1AC 01495021 */ addu $t2, $t2, $t1 +/* 0DECE0 7F0AA1B0 954A09E6 */ lhu $t2, %lo(D_800409DC+10)($t2) +/* 0DECE4 7F0AA1B4 55410020 */ bnel $t2, $at, .L7F0AA238 +/* 0DECE8 7F0AA1B8 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DECEC 7F0AA1BC 1000001D */ b .L7F0AA234 +/* 0DECF0 7F0AA1C0 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0AA1C4: +/* 0DECF4 7F0AA1C4 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DECF8 7F0AA1C8 3C048004 */ lui $a0, %hi(D_800409DC+10) +/* 0DECFC 7F0AA1CC 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DED00 7F0AA1D0 000D7080 */ sll $t6, $t5, 2 +/* 0DED04 7F0AA1D4 01CD7021 */ addu $t6, $t6, $t5 +/* 0DED08 7F0AA1D8 000E7080 */ sll $t6, $t6, 2 +/* 0DED0C 7F0AA1DC 008E2021 */ addu $a0, $a0, $t6 +/* 0DED10 7F0AA1E0 0FC30776 */ jal get_textptr_for_textID +/* 0DED14 7F0AA1E4 948409E6 */ lhu $a0, %lo(D_800409DC+10)($a0) +/* 0DED18 7F0AA1E8 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DED1C 7F0AA1EC 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DED20 7F0AA1F0 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DED24 7F0AA1F4 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DED28 7F0AA1F8 2419FFFF */ li $t9, -1 +/* 0DED2C 7F0AA1FC 24180001 */ li $t8, 1 +/* 0DED30 7F0AA200 AFB80028 */ sw $t8, 0x28($sp) +/* 0DED34 7F0AA204 AFB90018 */ sw $t9, 0x18($sp) +/* 0DED38 7F0AA208 AFA80010 */ sw $t0, 0x10($sp) +/* 0DED3C 7F0AA20C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DED40 7F0AA210 02002025 */ move $a0, $s0 +/* 0DED44 7F0AA214 2405010E */ li $a1, 270 +/* 0DED48 7F0AA218 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DED4C 7F0AA21C 00403825 */ move $a3, $v0 +/* 0DED50 7F0AA220 AFA00014 */ sw $zero, 0x14($sp) +/* 0DED54 7F0AA224 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DED58 7F0AA228 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DED5C 7F0AA22C AFA00020 */ sw $zero, 0x20($sp) +/* 0DED60 7F0AA230 00408025 */ move $s0, $v0 +.L7F0AA234: +/* 0DED64 7F0AA234 8FA9004C */ lw $t1, 0x4c($sp) +.L7F0AA238: +/* 0DED68 7F0AA238 3C0B8004 */ lui $t3, %hi(D_80040998) +/* 0DED6C 7F0AA23C 8D6B0998 */ lw $t3, %lo(D_80040998)($t3) +/* 0DED70 7F0AA240 24010001 */ li $at, 1 +/* 0DED74 7F0AA244 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DED78 7F0AA248 1561000A */ bne $t3, $at, .L7F0AA274 +/* 0DED7C 7F0AA24C AFAA004C */ sw $t2, 0x4c($sp) +/* 0DED80 7F0AA250 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) +/* 0DED84 7F0AA254 8D8C09A8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0DED88 7F0AA258 00002025 */ move $a0, $zero +/* 0DED8C 7F0AA25C 11800005 */ beqz $t4, .L7F0AA274 +/* 0DED90 7F0AA260 00000000 */ nop +/* 0DED94 7F0AA264 0C0030C3 */ jal get_controller_buttons_held +/* 0DED98 7F0AA268 2405000F */ li $a1, 15 +/* 0DED9C 7F0AA26C 1440001F */ bnez $v0, .L7F0AA2EC +/* 0DEDA0 7F0AA270 00002025 */ move $a0, $zero +.L7F0AA274: +/* 0DEDA4 7F0AA274 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0DEDA8 7F0AA278 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0DEDAC 7F0AA27C 3C048004 */ lui $a0, %hi(D_800409DC+12) +/* 0DEDB0 7F0AA280 8DAE2A58 */ lw $t6, 0x2a58($t5) +/* 0DEDB4 7F0AA284 000E4080 */ sll $t0, $t6, 2 +/* 0DEDB8 7F0AA288 010E4021 */ addu $t0, $t0, $t6 +/* 0DEDBC 7F0AA28C 00084080 */ sll $t0, $t0, 2 +/* 0DEDC0 7F0AA290 00882021 */ addu $a0, $a0, $t0 +/* 0DEDC4 7F0AA294 0FC30776 */ jal get_textptr_for_textID +/* 0DEDC8 7F0AA298 948409E8 */ lhu $a0, %lo(D_800409DC+12)($a0) +/* 0DEDCC 7F0AA29C 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DEDD0 7F0AA2A0 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DEDD4 7F0AA2A4 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEDD8 7F0AA2A8 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEDDC 7F0AA2AC 240FFFFF */ li $t7, -1 +/* 0DEDE0 7F0AA2B0 24090001 */ li $t1, 1 +/* 0DEDE4 7F0AA2B4 AFA90028 */ sw $t1, 0x28($sp) +/* 0DEDE8 7F0AA2B8 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DEDEC 7F0AA2BC AFB90010 */ sw $t9, 0x10($sp) +/* 0DEDF0 7F0AA2C0 AFB80024 */ sw $t8, 0x24($sp) +/* 0DEDF4 7F0AA2C4 02002025 */ move $a0, $s0 +/* 0DEDF8 7F0AA2C8 2405010E */ li $a1, 270 +/* 0DEDFC 7F0AA2CC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEE00 7F0AA2D0 00403825 */ move $a3, $v0 +/* 0DEE04 7F0AA2D4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DEE08 7F0AA2D8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEE0C 7F0AA2DC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEE10 7F0AA2E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEE14 7F0AA2E4 10000076 */ b .L7F0AA4C0 +/* 0DEE18 7F0AA2E8 00408025 */ move $s0, $v0 +.L7F0AA2EC: +/* 0DEE1C 7F0AA2EC 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE20 7F0AA2F0 2405000F */ li $a1, 15 +/* 0DEE24 7F0AA2F4 244AFFFF */ addiu $t2, $v0, -1 +/* 0DEE28 7F0AA2F8 004A5824 */ and $t3, $v0, $t2 +/* 0DEE2C 7F0AA2FC 15600054 */ bnez $t3, .L7F0AA450 +/* 0DEE30 7F0AA300 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DEE34 7F0AA304 00002025 */ move $a0, $zero +/* 0DEE38 7F0AA308 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE3C 7F0AA30C 24050008 */ li $a1, 8 +/* 0DEE40 7F0AA310 10400014 */ beqz $v0, .L7F0AA364 +/* 0DEE44 7F0AA314 00002025 */ move $a0, $zero +/* 0DEE48 7F0AA318 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DEE4C 7F0AA31C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DEE50 7F0AA320 3C088004 */ lui $t0, %hi(D_800409DC+12) +/* 0DEE54 7F0AA324 3401AC05 */ li $at, 44037 +/* 0DEE58 7F0AA328 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DEE5C 7F0AA32C 8FA700AC */ lw $a3, 0xac($sp) +/* 0DEE60 7F0AA330 000D7080 */ sll $t6, $t5, 2 +/* 0DEE64 7F0AA334 01CD7021 */ addu $t6, $t6, $t5 +/* 0DEE68 7F0AA338 000E7080 */ sll $t6, $t6, 2 +/* 0DEE6C 7F0AA33C 010E4021 */ addu $t0, $t0, $t6 +/* 0DEE70 7F0AA340 950809E8 */ lhu $t0, %lo(D_800409DC+12)($t0) +/* 0DEE74 7F0AA344 15010005 */ bne $t0, $at, .L7F0AA35C +/* 0DEE78 7F0AA348 00000000 */ nop +/* 0DEE7C 7F0AA34C 0FC30776 */ jal get_textptr_for_textID +/* 0DEE80 7F0AA350 3404AC30 */ li $a0, 44080 +/* 0DEE84 7F0AA354 10000001 */ b .L7F0AA35C +/* 0DEE88 7F0AA358 00403825 */ move $a3, $v0 +.L7F0AA35C: +/* 0DEE8C 7F0AA35C 10000027 */ b .L7F0AA3FC +/* 0DEE90 7F0AA360 AFA7005C */ sw $a3, 0x5c($sp) +.L7F0AA364: +/* 0DEE94 7F0AA364 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE98 7F0AA368 24050004 */ li $a1, 4 +/* 0DEE9C 7F0AA36C 10400014 */ beqz $v0, .L7F0AA3C0 +/* 0DEEA0 7F0AA370 00002025 */ move $a0, $zero +/* 0DEEA4 7F0AA374 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DEEA8 7F0AA378 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DEEAC 7F0AA37C 3C098004 */ lui $t1, %hi(D_800409DC+12) +/* 0DEEB0 7F0AA380 3401AC05 */ li $at, 44037 +/* 0DEEB4 7F0AA384 8F2F2A58 */ lw $t7, 0x2a58($t9) +/* 0DEEB8 7F0AA388 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0DEEBC 7F0AA38C 000FC080 */ sll $t8, $t7, 2 +/* 0DEEC0 7F0AA390 030FC021 */ addu $t8, $t8, $t7 +/* 0DEEC4 7F0AA394 0018C080 */ sll $t8, $t8, 2 +/* 0DEEC8 7F0AA398 01384821 */ addu $t1, $t1, $t8 +/* 0DEECC 7F0AA39C 952909E8 */ lhu $t1, %lo(D_800409DC+12)($t1) +/* 0DEED0 7F0AA3A0 15210005 */ bne $t1, $at, .L7F0AA3B8 +/* 0DEED4 7F0AA3A4 00000000 */ nop +/* 0DEED8 7F0AA3A8 0FC30776 */ jal get_textptr_for_textID +/* 0DEEDC 7F0AA3AC 3404AC31 */ li $a0, 44081 +/* 0DEEE0 7F0AA3B0 10000001 */ b .L7F0AA3B8 +/* 0DEEE4 7F0AA3B4 00403825 */ move $a3, $v0 +.L7F0AA3B8: +/* 0DEEE8 7F0AA3B8 10000010 */ b .L7F0AA3FC +/* 0DEEEC 7F0AA3BC AFA7005C */ sw $a3, 0x5c($sp) +.L7F0AA3C0: +/* 0DEEF0 7F0AA3C0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEEF4 7F0AA3C4 24050002 */ li $a1, 2 +/* 0DEEF8 7F0AA3C8 10400005 */ beqz $v0, .L7F0AA3E0 +/* 0DEEFC 7F0AA3CC 00002025 */ move $a0, $zero +/* 0DEF00 7F0AA3D0 0FC30776 */ jal get_textptr_for_textID +/* 0DEF04 7F0AA3D4 3404AC2F */ li $a0, 44079 +/* 0DEF08 7F0AA3D8 10000008 */ b .L7F0AA3FC +/* 0DEF0C 7F0AA3DC AFA2005C */ sw $v0, 0x5c($sp) +.L7F0AA3E0: +/* 0DEF10 7F0AA3E0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEF14 7F0AA3E4 24050001 */ li $a1, 1 +/* 0DEF18 7F0AA3E8 50400005 */ beql $v0, $zero, .L7F0AA400 +/* 0DEF1C 7F0AA3EC 3C0C0070 */ lui $t4, 0x70 +/* 0DEF20 7F0AA3F0 0FC30776 */ jal get_textptr_for_textID +/* 0DEF24 7F0AA3F4 3404AC2E */ li $a0, 44078 +/* 0DEF28 7F0AA3F8 AFA2005C */ sw $v0, 0x5c($sp) +.L7F0AA3FC: +/* 0DEF2C 7F0AA3FC 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +.L7F0AA400: +/* 0DEF30 7F0AA400 3C0D0030 */ lui $t5, (0x003000B0 >> 16) # lui $t5, 0x30 +/* 0DEF34 7F0AA404 35AD00B0 */ ori $t5, (0x003000B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DEF38 7F0AA408 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0DEF3C 7F0AA40C 240AFFFF */ li $t2, -1 +/* 0DEF40 7F0AA410 240B0001 */ li $t3, 1 +/* 0DEF44 7F0AA414 240E0001 */ li $t6, 1 +/* 0DEF48 7F0AA418 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DEF4C 7F0AA41C AFAE0028 */ sw $t6, 0x28($sp) +/* 0DEF50 7F0AA420 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DEF54 7F0AA424 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DEF58 7F0AA428 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DEF5C 7F0AA42C AFAD0024 */ sw $t5, 0x24($sp) +/* 0DEF60 7F0AA430 02002025 */ move $a0, $s0 +/* 0DEF64 7F0AA434 2405010E */ li $a1, 270 +/* 0DEF68 7F0AA438 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEF6C 7F0AA43C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEF70 7F0AA440 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEF74 7F0AA444 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEF78 7F0AA448 1000001D */ b .L7F0AA4C0 +/* 0DEF7C 7F0AA44C 00408025 */ move $s0, $v0 +.L7F0AA450: +/* 0DEF80 7F0AA450 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DEF84 7F0AA454 3C048004 */ lui $a0, %hi(D_800409DC+12) +/* 0DEF88 7F0AA458 8D192A58 */ lw $t9, 0x2a58($t0) +/* 0DEF8C 7F0AA45C 00197880 */ sll $t7, $t9, 2 +/* 0DEF90 7F0AA460 01F97821 */ addu $t7, $t7, $t9 +/* 0DEF94 7F0AA464 000F7880 */ sll $t7, $t7, 2 +/* 0DEF98 7F0AA468 008F2021 */ addu $a0, $a0, $t7 +/* 0DEF9C 7F0AA46C 0FC30776 */ jal get_textptr_for_textID +/* 0DEFA0 7F0AA470 948409E8 */ lhu $a0, %lo(D_800409DC+12)($a0) +/* 0DEFA4 7F0AA474 3C1800AA */ lui $t8, (0x00AA00B0 >> 16) # lui $t8, 0xaa +/* 0DEFA8 7F0AA478 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DEFAC 7F0AA47C 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DEFB0 7F0AA480 371800B0 */ ori $t8, (0x00AA00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEFB4 7F0AA484 2409FFFF */ li $t1, -1 +/* 0DEFB8 7F0AA488 240B0001 */ li $t3, 1 +/* 0DEFBC 7F0AA48C AFAB0028 */ sw $t3, 0x28($sp) +/* 0DEFC0 7F0AA490 AFA90018 */ sw $t1, 0x18($sp) +/* 0DEFC4 7F0AA494 AFB80010 */ sw $t8, 0x10($sp) +/* 0DEFC8 7F0AA498 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DEFCC 7F0AA49C 02002025 */ move $a0, $s0 +/* 0DEFD0 7F0AA4A0 2405010E */ li $a1, 270 +/* 0DEFD4 7F0AA4A4 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEFD8 7F0AA4A8 00403825 */ move $a3, $v0 +/* 0DEFDC 7F0AA4AC AFA00014 */ sw $zero, 0x14($sp) +/* 0DEFE0 7F0AA4B0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEFE4 7F0AA4B4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEFE8 7F0AA4B8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEFEC 7F0AA4BC 00408025 */ move $s0, $v0 +.L7F0AA4C0: +/* 0DEFF0 7F0AA4C0 8FAC004C */ lw $t4, 0x4c($sp) +/* 0DEFF4 7F0AA4C4 00002025 */ move $a0, $zero +/* 0DEFF8 7F0AA4C8 24054000 */ li $a1, 16384 +/* 0DEFFC 7F0AA4CC 258D0019 */ addiu $t5, $t4, 0x19 +/* 0DF000 7F0AA4D0 0C0030C3 */ jal get_controller_buttons_held +/* 0DF004 7F0AA4D4 AFAD004C */ sw $t5, 0x4c($sp) +/* 0DF008 7F0AA4D8 10400020 */ beqz $v0, .L7F0AA55C +/* 0DF00C 7F0AA4DC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DF010 7F0AA4E0 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0DF014 7F0AA4E4 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0DF018 7F0AA4E8 3C048004 */ lui $a0, %hi(D_800409DC+4) +/* 0DF01C 7F0AA4EC 8DC82A58 */ lw $t0, 0x2a58($t6) +/* 0DF020 7F0AA4F0 0008C880 */ sll $t9, $t0, 2 +/* 0DF024 7F0AA4F4 0328C821 */ addu $t9, $t9, $t0 +/* 0DF028 7F0AA4F8 0019C880 */ sll $t9, $t9, 2 +/* 0DF02C 7F0AA4FC 00992021 */ addu $a0, $a0, $t9 +/* 0DF030 7F0AA500 0FC30776 */ jal get_textptr_for_textID +/* 0DF034 7F0AA504 948409E0 */ lhu $a0, %lo(D_800409DC+4)($a0) +/* 0DF038 7F0AA508 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DF03C 7F0AA50C 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF040 7F0AA510 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF044 7F0AA514 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DF048 7F0AA518 240FFFFF */ li $t7, -1 +/* 0DF04C 7F0AA51C 24180001 */ li $t8, 1 +/* 0DF050 7F0AA520 240B0001 */ li $t3, 1 +/* 0DF054 7F0AA524 AFAB0028 */ sw $t3, 0x28($sp) +/* 0DF058 7F0AA528 AFB80014 */ sw $t8, 0x14($sp) +/* 0DF05C 7F0AA52C AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF060 7F0AA530 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF064 7F0AA534 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF068 7F0AA538 02002025 */ move $a0, $s0 +/* 0DF06C 7F0AA53C 2405010E */ li $a1, 270 +/* 0DF070 7F0AA540 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF074 7F0AA544 00403825 */ move $a3, $v0 +/* 0DF078 7F0AA548 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF07C 7F0AA54C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF080 7F0AA550 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF084 7F0AA554 1000001D */ b .L7F0AA5CC +/* 0DF088 7F0AA558 00408025 */ move $s0, $v0 +.L7F0AA55C: +/* 0DF08C 7F0AA55C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DF090 7F0AA560 3C048004 */ lui $a0, %hi(D_800409DC+4) +/* 0DF094 7F0AA564 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DF098 7F0AA568 000D7080 */ sll $t6, $t5, 2 +/* 0DF09C 7F0AA56C 01CD7021 */ addu $t6, $t6, $t5 +/* 0DF0A0 7F0AA570 000E7080 */ sll $t6, $t6, 2 +/* 0DF0A4 7F0AA574 008E2021 */ addu $a0, $a0, $t6 +/* 0DF0A8 7F0AA578 0FC30776 */ jal get_textptr_for_textID +/* 0DF0AC 7F0AA57C 948409E0 */ lhu $a0, %lo(D_800409DC+4)($a0) +/* 0DF0B0 7F0AA580 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF0B4 7F0AA584 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF0B8 7F0AA588 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF0BC 7F0AA58C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF0C0 7F0AA590 2419FFFF */ li $t9, -1 +/* 0DF0C4 7F0AA594 24180001 */ li $t8, 1 +/* 0DF0C8 7F0AA598 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF0CC 7F0AA59C AFB90018 */ sw $t9, 0x18($sp) +/* 0DF0D0 7F0AA5A0 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF0D4 7F0AA5A4 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF0D8 7F0AA5A8 02002025 */ move $a0, $s0 +/* 0DF0DC 7F0AA5AC 2405010E */ li $a1, 270 +/* 0DF0E0 7F0AA5B0 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF0E4 7F0AA5B4 00403825 */ move $a3, $v0 +/* 0DF0E8 7F0AA5B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF0EC 7F0AA5BC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF0F0 7F0AA5C0 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF0F4 7F0AA5C4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF0F8 7F0AA5C8 00408025 */ move $s0, $v0 +.L7F0AA5CC: +/* 0DF0FC 7F0AA5CC 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DF100 7F0AA5D0 00002025 */ move $a0, $zero +/* 0DF104 7F0AA5D4 34058000 */ li $a1, 32768 +/* 0DF108 7F0AA5D8 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DF10C 7F0AA5DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DF110 7F0AA5E0 AFAA004C */ sw $t2, 0x4c($sp) +/* 0DF114 7F0AA5E4 10400020 */ beqz $v0, .L7F0AA668 +/* 0DF118 7F0AA5E8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DF11C 7F0AA5EC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DF120 7F0AA5F0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DF124 7F0AA5F4 3C048004 */ lui $a0, %hi(D_800409DC+2) +/* 0DF128 7F0AA5F8 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DF12C 7F0AA5FC 000C6880 */ sll $t5, $t4, 2 +/* 0DF130 7F0AA600 01AC6821 */ addu $t5, $t5, $t4 +/* 0DF134 7F0AA604 000D6880 */ sll $t5, $t5, 2 +/* 0DF138 7F0AA608 008D2021 */ addu $a0, $a0, $t5 +/* 0DF13C 7F0AA60C 0FC30776 */ jal get_textptr_for_textID +/* 0DF140 7F0AA610 948409DE */ lhu $a0, %lo(D_800409DC+2)($a0) +/* 0DF144 7F0AA614 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0DF148 7F0AA618 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF14C 7F0AA61C 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF150 7F0AA620 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0DF154 7F0AA624 240EFFFF */ li $t6, -1 +/* 0DF158 7F0AA628 24080001 */ li $t0, 1 +/* 0DF15C 7F0AA62C 24180001 */ li $t8, 1 +/* 0DF160 7F0AA630 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF164 7F0AA634 AFA80014 */ sw $t0, 0x14($sp) +/* 0DF168 7F0AA638 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF16C 7F0AA63C AFB90018 */ sw $t9, 0x18($sp) +/* 0DF170 7F0AA640 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF174 7F0AA644 02002025 */ move $a0, $s0 +/* 0DF178 7F0AA648 2405010E */ li $a1, 270 +/* 0DF17C 7F0AA64C 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF180 7F0AA650 00403825 */ move $a3, $v0 +/* 0DF184 7F0AA654 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF188 7F0AA658 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF18C 7F0AA65C AFA00020 */ sw $zero, 0x20($sp) +/* 0DF190 7F0AA660 1000001D */ b .L7F0AA6D8 +/* 0DF194 7F0AA664 00408025 */ move $s0, $v0 +.L7F0AA668: +/* 0DF198 7F0AA668 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DF19C 7F0AA66C 3C048004 */ lui $a0, %hi(D_800409DC+2) +/* 0DF1A0 7F0AA670 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DF1A4 7F0AA674 000A5880 */ sll $t3, $t2, 2 +/* 0DF1A8 7F0AA678 016A5821 */ addu $t3, $t3, $t2 +/* 0DF1AC 7F0AA67C 000B5880 */ sll $t3, $t3, 2 +/* 0DF1B0 7F0AA680 008B2021 */ addu $a0, $a0, $t3 +/* 0DF1B4 7F0AA684 0FC30776 */ jal get_textptr_for_textID +/* 0DF1B8 7F0AA688 948409DE */ lhu $a0, %lo(D_800409DC+2)($a0) +/* 0DF1BC 7F0AA68C 3C0C00AA */ lui $t4, (0x00AA00B0 >> 16) # lui $t4, 0xaa +/* 0DF1C0 7F0AA690 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0DF1C4 7F0AA694 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF1C8 7F0AA698 358C00B0 */ ori $t4, (0x00AA00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF1CC 7F0AA69C 240DFFFF */ li $t5, -1 +/* 0DF1D0 7F0AA6A0 24080001 */ li $t0, 1 +/* 0DF1D4 7F0AA6A4 AFA80028 */ sw $t0, 0x28($sp) +/* 0DF1D8 7F0AA6A8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DF1DC 7F0AA6AC AFAC0010 */ sw $t4, 0x10($sp) +/* 0DF1E0 7F0AA6B0 AFAE0024 */ sw $t6, 0x24($sp) +/* 0DF1E4 7F0AA6B4 02002025 */ move $a0, $s0 +/* 0DF1E8 7F0AA6B8 2405010E */ li $a1, 270 +/* 0DF1EC 7F0AA6BC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF1F0 7F0AA6C0 00403825 */ move $a3, $v0 +/* 0DF1F4 7F0AA6C4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF1F8 7F0AA6C8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF1FC 7F0AA6CC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF200 7F0AA6D0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF204 7F0AA6D4 00408025 */ move $s0, $v0 +.L7F0AA6D8: +/* 0DF208 7F0AA6D8 8FB90050 */ lw $t9, 0x50($sp) +/* 0DF20C 7F0AA6DC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DF210 7F0AA6E0 13200018 */ beqz $t9, .L7F0AA744 +/* 0DF214 7F0AA6E4 00000000 */ nop +/* 0DF218 7F0AA6E8 0FC30776 */ jal get_textptr_for_textID +/* 0DF21C 7F0AA6EC 3404AC08 */ li $a0, 44040 +/* 0DF220 7F0AA6F0 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DF224 7F0AA6F4 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF228 7F0AA6F8 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF22C 7F0AA6FC 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DF230 7F0AA700 240FFFFF */ li $t7, -1 +/* 0DF234 7F0AA704 24180001 */ li $t8, 1 +/* 0DF238 7F0AA708 240B0001 */ li $t3, 1 +/* 0DF23C 7F0AA70C AFAB0028 */ sw $t3, 0x28($sp) +/* 0DF240 7F0AA710 AFB80014 */ sw $t8, 0x14($sp) +/* 0DF244 7F0AA714 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF248 7F0AA718 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF24C 7F0AA71C AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF250 7F0AA720 02002025 */ move $a0, $s0 +/* 0DF254 7F0AA724 240500FA */ li $a1, 250 +/* 0DF258 7F0AA728 240600C3 */ li $a2, 195 +/* 0DF25C 7F0AA72C 00403825 */ move $a3, $v0 +/* 0DF260 7F0AA730 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF264 7F0AA734 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF268 7F0AA738 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF26C 7F0AA73C 1000001D */ b .L7F0AA7B4 +/* 0DF270 7F0AA740 00408025 */ move $s0, $v0 +.L7F0AA744: +/* 0DF274 7F0AA744 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DF278 7F0AA748 3C048004 */ lui $a0, %hi(D_800409DC+18) +/* 0DF27C 7F0AA74C 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DF280 7F0AA750 000D7080 */ sll $t6, $t5, 2 +/* 0DF284 7F0AA754 01CD7021 */ addu $t6, $t6, $t5 +/* 0DF288 7F0AA758 000E7080 */ sll $t6, $t6, 2 +/* 0DF28C 7F0AA75C 008E2021 */ addu $a0, $a0, $t6 +/* 0DF290 7F0AA760 0FC30776 */ jal get_textptr_for_textID +/* 0DF294 7F0AA764 948409EE */ lhu $a0, %lo(D_800409DC+18)($a0) +/* 0DF298 7F0AA768 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF29C 7F0AA76C 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF2A0 7F0AA770 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF2A4 7F0AA774 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF2A8 7F0AA778 2419FFFF */ li $t9, -1 +/* 0DF2AC 7F0AA77C 24180001 */ li $t8, 1 +/* 0DF2B0 7F0AA780 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF2B4 7F0AA784 AFB90018 */ sw $t9, 0x18($sp) +/* 0DF2B8 7F0AA788 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF2BC 7F0AA78C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF2C0 7F0AA790 02002025 */ move $a0, $s0 +/* 0DF2C4 7F0AA794 240500FA */ li $a1, 250 +/* 0DF2C8 7F0AA798 240600C3 */ li $a2, 195 +/* 0DF2CC 7F0AA79C 00403825 */ move $a3, $v0 +/* 0DF2D0 7F0AA7A0 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF2D4 7F0AA7A4 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF2D8 7F0AA7A8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF2DC 7F0AA7AC AFA00020 */ sw $zero, 0x20($sp) +/* 0DF2E0 7F0AA7B0 00408025 */ move $s0, $v0 +.L7F0AA7B4: +/* 0DF2E4 7F0AA7B4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DF2E8 7F0AA7B8 02001025 */ move $v0, $s0 +/* 0DF2EC 7F0AA7BC 8FB00038 */ lw $s0, 0x38($sp) +/* 0DF2F0 7F0AA7C0 03E00008 */ jr $ra +/* 0DF2F4 7F0AA7C4 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AA7C8(u32 * displayList) +{ + u32 * DL; + u8 * txtptr; + + DL = microcode_constructor(displayList); + if (get_controller_buttons_held('\0',A_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0xa7, get_textptr_for_textID(0xac03), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0xa7, get_textptr_for_textID(0xac03), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + if (get_controller_buttons_held('\0',B_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0x95, get_textptr_for_textID(0xac02), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0x95, get_textptr_for_textID(0xac02), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) + { + txtptr = get_textptr_for_textID(0xac00); + } else { + txtptr = get_textptr_for_textID(0xac01); + } + + if (get_controller_buttons_held('\0',Z_TRIG) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0xb9, txtptr, -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0xb9, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) + { + txtptr = get_textptr_for_textID(0xac05); + } else { + txtptr = get_textptr_for_textID(0xac06); + } + + sub_GAME_7F0A9398(DL, 0x5a, 0xcb, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + if (get_controller_buttons_held('\x01',A_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0xa7, get_textptr_for_textID(0xac03), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0xa7, get_textptr_for_textID(0xac03), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + if (get_controller_buttons_held('\x01',B_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0x95, get_textptr_for_textID(0xac02), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0x95, get_textptr_for_textID(0xac02), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) + { + txtptr = get_textptr_for_textID(0xac01); + } else { + txtptr = get_textptr_for_textID(0xac00); + } + + if (get_controller_buttons_held('\x01',Z_TRIG) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0xb9, txtptr, -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0xb9, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) + { + txtptr = get_textptr_for_textID(0xac06); + } else { + txtptr = get_textptr_for_textID(0xac05); + } + + sub_GAME_7F0A9398(DL, 0xe6, 0xcb, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AA7C8 +/* 0DF2F8 7F0AA7C8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DF2FC 7F0AA7CC AFBF003C */ sw $ra, 0x3c($sp) +/* 0DF300 7F0AA7D0 0FC2B366 */ jal microcode_constructor +/* 0DF304 7F0AA7D4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DF308 7F0AA7D8 00408025 */ move $s0, $v0 +/* 0DF30C 7F0AA7DC 00002025 */ move $a0, $zero +/* 0DF310 7F0AA7E0 0C0030C3 */ jal get_controller_buttons_held +/* 0DF314 7F0AA7E4 34058000 */ li $a1, 32768 +/* 0DF318 7F0AA7E8 10400017 */ beqz $v0, .L7F0AA848 +/* 0DF31C 7F0AA7EC 00000000 */ nop +/* 0DF320 7F0AA7F0 0FC30776 */ jal get_textptr_for_textID +/* 0DF324 7F0AA7F4 3404AC03 */ li $a0, 44035 +/* 0DF328 7F0AA7F8 3C180070 */ lui $t8, (0x007000A0 >> 16) # lui $t8, 0x70 +/* 0DF32C 7F0AA7FC 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF330 7F0AA800 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF334 7F0AA804 371800A0 */ ori $t8, (0x007000A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DF338 7F0AA808 240EFFFF */ li $t6, -1 +/* 0DF33C 7F0AA80C 240F0001 */ li $t7, 1 +/* 0DF340 7F0AA810 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DF344 7F0AA814 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF348 7F0AA818 AFB80018 */ sw $t8, 0x18($sp) +/* 0DF34C 7F0AA81C AFB90024 */ sw $t9, 0x24($sp) +/* 0DF350 7F0AA820 02002025 */ move $a0, $s0 +/* 0DF354 7F0AA824 2405005A */ li $a1, 90 +/* 0DF358 7F0AA828 240600A7 */ li $a2, 167 +/* 0DF35C 7F0AA82C 00403825 */ move $a3, $v0 +/* 0DF360 7F0AA830 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF364 7F0AA834 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF368 7F0AA838 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF36C 7F0AA83C AFA00028 */ sw $zero, 0x28($sp) +/* 0DF370 7F0AA840 10000015 */ b .L7F0AA898 +/* 0DF374 7F0AA844 00408025 */ move $s0, $v0 +.L7F0AA848: +/* 0DF378 7F0AA848 0FC30776 */ jal get_textptr_for_textID +/* 0DF37C 7F0AA84C 3404AC03 */ li $a0, 44035 +/* 0DF380 7F0AA850 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF384 7F0AA854 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF388 7F0AA858 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF38C 7F0AA85C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF390 7F0AA860 2409FFFF */ li $t1, -1 +/* 0DF394 7F0AA864 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF398 7F0AA868 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF39C 7F0AA86C AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF3A0 7F0AA870 02002025 */ move $a0, $s0 +/* 0DF3A4 7F0AA874 2405005A */ li $a1, 90 +/* 0DF3A8 7F0AA878 240600A7 */ li $a2, 167 +/* 0DF3AC 7F0AA87C 00403825 */ move $a3, $v0 +/* 0DF3B0 7F0AA880 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF3B4 7F0AA884 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF3B8 7F0AA888 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF3BC 7F0AA88C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF3C0 7F0AA890 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF3C4 7F0AA894 00408025 */ move $s0, $v0 +.L7F0AA898: +/* 0DF3C8 7F0AA898 00002025 */ move $a0, $zero +/* 0DF3CC 7F0AA89C 0C0030C3 */ jal get_controller_buttons_held +/* 0DF3D0 7F0AA8A0 24054000 */ li $a1, 16384 +/* 0DF3D4 7F0AA8A4 10400017 */ beqz $v0, .L7F0AA904 +/* 0DF3D8 7F0AA8A8 00000000 */ nop +/* 0DF3DC 7F0AA8AC 0FC30776 */ jal get_textptr_for_textID +/* 0DF3E0 7F0AA8B0 3404AC02 */ li $a0, 44034 +/* 0DF3E4 7F0AA8B4 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0DF3E8 7F0AA8B8 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0DF3EC 7F0AA8BC 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF3F0 7F0AA8C0 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0DF3F4 7F0AA8C4 240BFFFF */ li $t3, -1 +/* 0DF3F8 7F0AA8C8 240C0001 */ li $t4, 1 +/* 0DF3FC 7F0AA8CC AFAC0014 */ sw $t4, 0x14($sp) +/* 0DF400 7F0AA8D0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DF404 7F0AA8D4 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DF408 7F0AA8D8 AFAE0024 */ sw $t6, 0x24($sp) +/* 0DF40C 7F0AA8DC 02002025 */ move $a0, $s0 +/* 0DF410 7F0AA8E0 2405005A */ li $a1, 90 +/* 0DF414 7F0AA8E4 24060095 */ li $a2, 149 +/* 0DF418 7F0AA8E8 00403825 */ move $a3, $v0 +/* 0DF41C 7F0AA8EC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF420 7F0AA8F0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF424 7F0AA8F4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF428 7F0AA8F8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF42C 7F0AA8FC 10000015 */ b .L7F0AA954 +/* 0DF430 7F0AA900 00408025 */ move $s0, $v0 +.L7F0AA904: +/* 0DF434 7F0AA904 0FC30776 */ jal get_textptr_for_textID +/* 0DF438 7F0AA908 3404AC02 */ li $a0, 44034 +/* 0DF43C 7F0AA90C 3C0F00AA */ lui $t7, (0x00AA00B0 >> 16) # lui $t7, 0xaa +/* 0DF440 7F0AA910 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF444 7F0AA914 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF448 7F0AA918 35EF00B0 */ ori $t7, (0x00AA00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF44C 7F0AA91C 2418FFFF */ li $t8, -1 +/* 0DF450 7F0AA920 AFB80018 */ sw $t8, 0x18($sp) +/* 0DF454 7F0AA924 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF458 7F0AA928 AFB90024 */ sw $t9, 0x24($sp) +/* 0DF45C 7F0AA92C 02002025 */ move $a0, $s0 +/* 0DF460 7F0AA930 2405005A */ li $a1, 90 +/* 0DF464 7F0AA934 24060095 */ li $a2, 149 +/* 0DF468 7F0AA938 00403825 */ move $a3, $v0 +/* 0DF46C 7F0AA93C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF470 7F0AA940 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF474 7F0AA944 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF478 7F0AA948 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF47C 7F0AA94C AFA00028 */ sw $zero, 0x28($sp) +/* 0DF480 7F0AA950 00408025 */ move $s0, $v0 +.L7F0AA954: +/* 0DF484 7F0AA954 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF488 7F0AA958 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF48C 7F0AA95C 24010004 */ li $at, 4 +/* 0DF490 7F0AA960 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF494 7F0AA964 10410003 */ beq $v0, $at, .L7F0AA974 +/* 0DF498 7F0AA968 24010005 */ li $at, 5 +/* 0DF49C 7F0AA96C 14410005 */ bne $v0, $at, .L7F0AA984 +/* 0DF4A0 7F0AA970 00000000 */ nop +.L7F0AA974: +/* 0DF4A4 7F0AA974 0FC30776 */ jal get_textptr_for_textID +/* 0DF4A8 7F0AA978 3404AC00 */ li $a0, 44032 +/* 0DF4AC 7F0AA97C 10000004 */ b .L7F0AA990 +/* 0DF4B0 7F0AA980 00403825 */ move $a3, $v0 +.L7F0AA984: +/* 0DF4B4 7F0AA984 0FC30776 */ jal get_textptr_for_textID +/* 0DF4B8 7F0AA988 3404AC01 */ li $a0, 44033 +/* 0DF4BC 7F0AA98C 00403825 */ move $a3, $v0 +.L7F0AA990: +/* 0DF4C0 7F0AA990 00002025 */ move $a0, $zero +/* 0DF4C4 7F0AA994 24052000 */ li $a1, 8192 +/* 0DF4C8 7F0AA998 0C0030C3 */ jal get_controller_buttons_held +/* 0DF4CC 7F0AA99C AFA70044 */ sw $a3, 0x44($sp) +/* 0DF4D0 7F0AA9A0 10400014 */ beqz $v0, .L7F0AA9F4 +/* 0DF4D4 7F0AA9A4 8FA70044 */ lw $a3, 0x44($sp) +/* 0DF4D8 7F0AA9A8 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF4DC 7F0AA9AC 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF4E0 7F0AA9B0 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF4E4 7F0AA9B4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF4E8 7F0AA9B8 2409FFFF */ li $t1, -1 +/* 0DF4EC 7F0AA9BC 240A0001 */ li $t2, 1 +/* 0DF4F0 7F0AA9C0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF4F4 7F0AA9C4 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF4F8 7F0AA9C8 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF4FC 7F0AA9CC AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF500 7F0AA9D0 02002025 */ move $a0, $s0 +/* 0DF504 7F0AA9D4 2405005A */ li $a1, 90 +/* 0DF508 7F0AA9D8 240600B9 */ li $a2, 185 +/* 0DF50C 7F0AA9DC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF510 7F0AA9E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF514 7F0AA9E4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF518 7F0AA9E8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF51C 7F0AA9EC 10000012 */ b .L7F0AAA38 +/* 0DF520 7F0AA9F0 00408025 */ move $s0, $v0 +.L7F0AA9F4: +/* 0DF524 7F0AA9F4 3C0D00AA */ lui $t5, (0x00AA00B0 >> 16) # lui $t5, 0xaa +/* 0DF528 7F0AA9F8 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF52C 7F0AA9FC 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF530 7F0AAA00 35AD00B0 */ ori $t5, (0x00AA00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DF534 7F0AAA04 240EFFFF */ li $t6, -1 +/* 0DF538 7F0AAA08 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DF53C 7F0AAA0C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DF540 7F0AAA10 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF544 7F0AAA14 02002025 */ move $a0, $s0 +/* 0DF548 7F0AAA18 2405005A */ li $a1, 90 +/* 0DF54C 7F0AAA1C 240600B9 */ li $a2, 185 +/* 0DF550 7F0AAA20 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF554 7F0AAA24 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF558 7F0AAA28 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF55C 7F0AAA2C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF560 7F0AAA30 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF564 7F0AAA34 00408025 */ move $s0, $v0 +.L7F0AAA38: +/* 0DF568 7F0AAA38 3C188008 */ lui $t8, %hi(pPlayer) +/* 0DF56C 7F0AAA3C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0DF570 7F0AAA40 24010004 */ li $at, 4 +/* 0DF574 7F0AAA44 8F022A58 */ lw $v0, 0x2a58($t8) +/* 0DF578 7F0AAA48 10410003 */ beq $v0, $at, .L7F0AAA58 +/* 0DF57C 7F0AAA4C 24010006 */ li $at, 6 +/* 0DF580 7F0AAA50 14410005 */ bne $v0, $at, .L7F0AAA68 +/* 0DF584 7F0AAA54 00000000 */ nop +.L7F0AAA58: +/* 0DF588 7F0AAA58 0FC30776 */ jal get_textptr_for_textID +/* 0DF58C 7F0AAA5C 3404AC05 */ li $a0, 44037 +/* 0DF590 7F0AAA60 10000004 */ b .L7F0AAA74 +/* 0DF594 7F0AAA64 00403825 */ move $a3, $v0 +.L7F0AAA68: +/* 0DF598 7F0AAA68 0FC30776 */ jal get_textptr_for_textID +/* 0DF59C 7F0AAA6C 3404AC06 */ li $a0, 44038 +/* 0DF5A0 7F0AAA70 00403825 */ move $a3, $v0 +.L7F0AAA74: +/* 0DF5A4 7F0AAA74 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DF5A8 7F0AAA78 3C090030 */ lui $t1, (0x003000B0 >> 16) # lui $t1, 0x30 +/* 0DF5AC 7F0AAA7C 352900B0 */ ori $t1, (0x003000B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DF5B0 7F0AAA80 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF5B4 7F0AAA84 2408FFFF */ li $t0, -1 +/* 0DF5B8 7F0AAA88 AFA80018 */ sw $t0, 0x18($sp) +/* 0DF5BC 7F0AAA8C AFB90010 */ sw $t9, 0x10($sp) +/* 0DF5C0 7F0AAA90 AFA90024 */ sw $t1, 0x24($sp) +/* 0DF5C4 7F0AAA94 02002025 */ move $a0, $s0 +/* 0DF5C8 7F0AAA98 2405005A */ li $a1, 90 +/* 0DF5CC 7F0AAA9C 240600CB */ li $a2, 203 +/* 0DF5D0 7F0AAAA0 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF5D4 7F0AAAA4 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF5D8 7F0AAAA8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF5DC 7F0AAAAC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF5E0 7F0AAAB0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF5E4 7F0AAAB4 00408025 */ move $s0, $v0 +/* 0DF5E8 7F0AAAB8 24040001 */ li $a0, 1 +/* 0DF5EC 7F0AAABC 0C0030C3 */ jal get_controller_buttons_held +/* 0DF5F0 7F0AAAC0 34058000 */ li $a1, 32768 +/* 0DF5F4 7F0AAAC4 10400018 */ beqz $v0, .L7F0AAB28 +/* 0DF5F8 7F0AAAC8 00000000 */ nop +/* 0DF5FC 7F0AAACC 0FC30776 */ jal get_textptr_for_textID +/* 0DF600 7F0AAAD0 3404AC03 */ li $a0, 44035 +/* 0DF604 7F0AAAD4 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0DF608 7F0AAAD8 3C0D0030 */ lui $t5, (0x003000B0 >> 16) # lui $t5, 0x30 +/* 0DF60C 7F0AAADC 35AD00B0 */ ori $t5, (0x003000B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DF610 7F0AAAE0 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0DF614 7F0AAAE4 240AFFFF */ li $t2, -1 +/* 0DF618 7F0AAAE8 240B0001 */ li $t3, 1 +/* 0DF61C 7F0AAAEC 240E0001 */ li $t6, 1 +/* 0DF620 7F0AAAF0 AFAE0028 */ sw $t6, 0x28($sp) +/* 0DF624 7F0AAAF4 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DF628 7F0AAAF8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DF62C 7F0AAAFC AFAC0018 */ sw $t4, 0x18($sp) +/* 0DF630 7F0AAB00 AFAD0024 */ sw $t5, 0x24($sp) +/* 0DF634 7F0AAB04 02002025 */ move $a0, $s0 +/* 0DF638 7F0AAB08 240500E6 */ li $a1, 230 +/* 0DF63C 7F0AAB0C 240600A7 */ li $a2, 167 +/* 0DF640 7F0AAB10 00403825 */ move $a3, $v0 +/* 0DF644 7F0AAB14 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF648 7F0AAB18 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF64C 7F0AAB1C AFA00020 */ sw $zero, 0x20($sp) +/* 0DF650 7F0AAB20 10000016 */ b .L7F0AAB7C +/* 0DF654 7F0AAB24 00408025 */ move $s0, $v0 +.L7F0AAB28: +/* 0DF658 7F0AAB28 0FC30776 */ jal get_textptr_for_textID +/* 0DF65C 7F0AAB2C 3404AC03 */ li $a0, 44035 +/* 0DF660 7F0AAB30 3C0F00AA */ lui $t7, (0x00AA00B0 >> 16) # lui $t7, 0xaa +/* 0DF664 7F0AAB34 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF668 7F0AAB38 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF66C 7F0AAB3C 35EF00B0 */ ori $t7, (0x00AA00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF670 7F0AAB40 2418FFFF */ li $t8, -1 +/* 0DF674 7F0AAB44 24080001 */ li $t0, 1 +/* 0DF678 7F0AAB48 AFA80028 */ sw $t0, 0x28($sp) +/* 0DF67C 7F0AAB4C AFB80018 */ sw $t8, 0x18($sp) +/* 0DF680 7F0AAB50 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF684 7F0AAB54 AFB90024 */ sw $t9, 0x24($sp) +/* 0DF688 7F0AAB58 02002025 */ move $a0, $s0 +/* 0DF68C 7F0AAB5C 240500E6 */ li $a1, 230 +/* 0DF690 7F0AAB60 240600A7 */ li $a2, 167 +/* 0DF694 7F0AAB64 00403825 */ move $a3, $v0 +/* 0DF698 7F0AAB68 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF69C 7F0AAB6C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF6A0 7F0AAB70 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF6A4 7F0AAB74 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF6A8 7F0AAB78 00408025 */ move $s0, $v0 +.L7F0AAB7C: +/* 0DF6AC 7F0AAB7C 24040001 */ li $a0, 1 +/* 0DF6B0 7F0AAB80 0C0030C3 */ jal get_controller_buttons_held +/* 0DF6B4 7F0AAB84 24054000 */ li $a1, 16384 +/* 0DF6B8 7F0AAB88 10400018 */ beqz $v0, .L7F0AABEC +/* 0DF6BC 7F0AAB8C 00000000 */ nop +/* 0DF6C0 7F0AAB90 0FC30776 */ jal get_textptr_for_textID +/* 0DF6C4 7F0AAB94 3404AC02 */ li $a0, 44034 +/* 0DF6C8 7F0AAB98 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF6CC 7F0AAB9C 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF6D0 7F0AABA0 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF6D4 7F0AABA4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF6D8 7F0AABA8 2409FFFF */ li $t1, -1 +/* 0DF6DC 7F0AABAC 240A0001 */ li $t2, 1 +/* 0DF6E0 7F0AABB0 240D0001 */ li $t5, 1 +/* 0DF6E4 7F0AABB4 AFAD0028 */ sw $t5, 0x28($sp) +/* 0DF6E8 7F0AABB8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF6EC 7F0AABBC AFA90010 */ sw $t1, 0x10($sp) +/* 0DF6F0 7F0AABC0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF6F4 7F0AABC4 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF6F8 7F0AABC8 02002025 */ move $a0, $s0 +/* 0DF6FC 7F0AABCC 240500E6 */ li $a1, 230 +/* 0DF700 7F0AABD0 24060095 */ li $a2, 149 +/* 0DF704 7F0AABD4 00403825 */ move $a3, $v0 +/* 0DF708 7F0AABD8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF70C 7F0AABDC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF710 7F0AABE0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF714 7F0AABE4 10000016 */ b .L7F0AAC40 +/* 0DF718 7F0AABE8 00408025 */ move $s0, $v0 +.L7F0AABEC: +/* 0DF71C 7F0AABEC 0FC30776 */ jal get_textptr_for_textID +/* 0DF720 7F0AABF0 3404AC02 */ li $a0, 44034 +/* 0DF724 7F0AABF4 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DF728 7F0AABF8 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DF72C 7F0AABFC 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DF730 7F0AAC00 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF734 7F0AAC04 240FFFFF */ li $t7, -1 +/* 0DF738 7F0AAC08 24190001 */ li $t9, 1 +/* 0DF73C 7F0AAC0C AFB90028 */ sw $t9, 0x28($sp) +/* 0DF740 7F0AAC10 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DF744 7F0AAC14 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF748 7F0AAC18 AFB80024 */ sw $t8, 0x24($sp) +/* 0DF74C 7F0AAC1C 02002025 */ move $a0, $s0 +/* 0DF750 7F0AAC20 240500E6 */ li $a1, 230 +/* 0DF754 7F0AAC24 24060095 */ li $a2, 149 +/* 0DF758 7F0AAC28 00403825 */ move $a3, $v0 +/* 0DF75C 7F0AAC2C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF760 7F0AAC30 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF764 7F0AAC34 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF768 7F0AAC38 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF76C 7F0AAC3C 00408025 */ move $s0, $v0 +.L7F0AAC40: +/* 0DF770 7F0AAC40 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF774 7F0AAC44 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF778 7F0AAC48 24010004 */ li $at, 4 +/* 0DF77C 7F0AAC4C 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF780 7F0AAC50 10410003 */ beq $v0, $at, .L7F0AAC60 +/* 0DF784 7F0AAC54 24010005 */ li $at, 5 +/* 0DF788 7F0AAC58 14410005 */ bne $v0, $at, .L7F0AAC70 +/* 0DF78C 7F0AAC5C 00000000 */ nop +.L7F0AAC60: +/* 0DF790 7F0AAC60 0FC30776 */ jal get_textptr_for_textID +/* 0DF794 7F0AAC64 3404AC01 */ li $a0, 44033 +/* 0DF798 7F0AAC68 10000004 */ b .L7F0AAC7C +/* 0DF79C 7F0AAC6C 00403825 */ move $a3, $v0 +.L7F0AAC70: +/* 0DF7A0 7F0AAC70 0FC30776 */ jal get_textptr_for_textID +/* 0DF7A4 7F0AAC74 3404AC00 */ li $a0, 44032 +/* 0DF7A8 7F0AAC78 00403825 */ move $a3, $v0 +.L7F0AAC7C: +/* 0DF7AC 7F0AAC7C 24040001 */ li $a0, 1 +/* 0DF7B0 7F0AAC80 24052000 */ li $a1, 8192 +/* 0DF7B4 7F0AAC84 0C0030C3 */ jal get_controller_buttons_held +/* 0DF7B8 7F0AAC88 AFA70044 */ sw $a3, 0x44($sp) +/* 0DF7BC 7F0AAC8C 10400015 */ beqz $v0, .L7F0AACE4 +/* 0DF7C0 7F0AAC90 8FA70044 */ lw $a3, 0x44($sp) +/* 0DF7C4 7F0AAC94 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF7C8 7F0AAC98 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF7CC 7F0AAC9C 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF7D0 7F0AACA0 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF7D4 7F0AACA4 2409FFFF */ li $t1, -1 +/* 0DF7D8 7F0AACA8 240A0001 */ li $t2, 1 +/* 0DF7DC 7F0AACAC 240D0001 */ li $t5, 1 +/* 0DF7E0 7F0AACB0 AFAD0028 */ sw $t5, 0x28($sp) +/* 0DF7E4 7F0AACB4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF7E8 7F0AACB8 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF7EC 7F0AACBC AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF7F0 7F0AACC0 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF7F4 7F0AACC4 02002025 */ move $a0, $s0 +/* 0DF7F8 7F0AACC8 240500E6 */ li $a1, 230 +/* 0DF7FC 7F0AACCC 240600B9 */ li $a2, 185 +/* 0DF800 7F0AACD0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF804 7F0AACD4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF808 7F0AACD8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF80C 7F0AACDC 10000013 */ b .L7F0AAD2C +/* 0DF810 7F0AACE0 00408025 */ move $s0, $v0 +.L7F0AACE4: +/* 0DF814 7F0AACE4 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DF818 7F0AACE8 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DF81C 7F0AACEC 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DF820 7F0AACF0 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF824 7F0AACF4 240FFFFF */ li $t7, -1 +/* 0DF828 7F0AACF8 24190001 */ li $t9, 1 +/* 0DF82C 7F0AACFC AFB90028 */ sw $t9, 0x28($sp) +/* 0DF830 7F0AAD00 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DF834 7F0AAD04 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF838 7F0AAD08 AFB80024 */ sw $t8, 0x24($sp) +/* 0DF83C 7F0AAD0C 02002025 */ move $a0, $s0 +/* 0DF840 7F0AAD10 240500E6 */ li $a1, 230 +/* 0DF844 7F0AAD14 240600B9 */ li $a2, 185 +/* 0DF848 7F0AAD18 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF84C 7F0AAD1C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF850 7F0AAD20 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF854 7F0AAD24 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF858 7F0AAD28 00408025 */ move $s0, $v0 +.L7F0AAD2C: +/* 0DF85C 7F0AAD2C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF860 7F0AAD30 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF864 7F0AAD34 24010004 */ li $at, 4 +/* 0DF868 7F0AAD38 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF86C 7F0AAD3C 10410003 */ beq $v0, $at, .L7F0AAD4C +/* 0DF870 7F0AAD40 24010006 */ li $at, 6 +/* 0DF874 7F0AAD44 14410005 */ bne $v0, $at, .L7F0AAD5C +/* 0DF878 7F0AAD48 00000000 */ nop +.L7F0AAD4C: +/* 0DF87C 7F0AAD4C 0FC30776 */ jal get_textptr_for_textID +/* 0DF880 7F0AAD50 3404AC06 */ li $a0, 44038 +/* 0DF884 7F0AAD54 10000004 */ b .L7F0AAD68 +/* 0DF888 7F0AAD58 00403825 */ move $a3, $v0 +.L7F0AAD5C: +/* 0DF88C 7F0AAD5C 0FC30776 */ jal get_textptr_for_textID +/* 0DF890 7F0AAD60 3404AC05 */ li $a0, 44037 +/* 0DF894 7F0AAD64 00403825 */ move $a3, $v0 +.L7F0AAD68: +/* 0DF898 7F0AAD68 3C0900AA */ lui $t1, (0x00AA00B0 >> 16) # lui $t1, 0xaa +/* 0DF89C 7F0AAD6C 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0DF8A0 7F0AAD70 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0DF8A4 7F0AAD74 352900B0 */ ori $t1, (0x00AA00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DF8A8 7F0AAD78 240AFFFF */ li $t2, -1 +/* 0DF8AC 7F0AAD7C 240C0001 */ li $t4, 1 +/* 0DF8B0 7F0AAD80 AFAC0028 */ sw $t4, 0x28($sp) +/* 0DF8B4 7F0AAD84 AFAA0018 */ sw $t2, 0x18($sp) +/* 0DF8B8 7F0AAD88 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF8BC 7F0AAD8C AFAB0024 */ sw $t3, 0x24($sp) +/* 0DF8C0 7F0AAD90 02002025 */ move $a0, $s0 +/* 0DF8C4 7F0AAD94 240500E6 */ li $a1, 230 +/* 0DF8C8 7F0AAD98 240600CB */ li $a2, 203 +/* 0DF8CC 7F0AAD9C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF8D0 7F0AADA0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF8D4 7F0AADA4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF8D8 7F0AADA8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF8DC 7F0AADAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DF8E0 7F0AADB0 8FB00038 */ lw $s0, 0x38($sp) +/* 0DF8E4 7F0AADB4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0DF8E8 7F0AADB8 03E00008 */ jr $ra +/* 0DF8EC 7F0AADBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AADC0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80058550 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058554 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058558 +.word 0x43f78000 /*495.0*/ +glabel D_8005855C +.word 0x453b8000 /*3000.0*/ +glabel D_80058560 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058564 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058568 +.word 0xc3fc8000 /*-505.0*/ +glabel D_8005856C +.word 0x453b8000 /*3000.0*/ +.text +glabel sub_GAME_7F0AADC0 +/* 0DF8F0 7F0AADC0 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 0DF8F4 7F0AADC4 AFBF0034 */ sw $ra, 0x34($sp) +/* 0DF8F8 7F0AADC8 AFB00030 */ sw $s0, 0x30($sp) +/* 0DF8FC 7F0AADCC 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DF900 7F0AADD0 00808025 */ move $s0, $a0 +/* 0DF904 7F0AADD4 3C0F8004 */ lui $t7, %hi(D_80040B5C) +/* 0DF908 7F0AADD8 AFA2053C */ sw $v0, 0x53c($sp) +/* 0DF90C 7F0AADDC 25EF0B5C */ addiu $t7, %lo(D_80040B5C) # addiu $t7, $t7, 0xb5c +/* 0DF910 7F0AADE0 8DE10000 */ lw $at, ($t7) +/* 0DF914 7F0AADE4 27AE0370 */ addiu $t6, $sp, 0x370 +/* 0DF918 7F0AADE8 8DE80004 */ lw $t0, 4($t7) +/* 0DF91C 7F0AADEC ADC10000 */ sw $at, ($t6) +/* 0DF920 7F0AADF0 8DE10008 */ lw $at, 8($t7) +/* 0DF924 7F0AADF4 3C0B8004 */ lui $t3, %hi(D_80040B68) +/* 0DF928 7F0AADF8 ADC80004 */ sw $t0, 4($t6) +/* 0DF92C 7F0AADFC ADC10008 */ sw $at, 8($t6) +/* 0DF930 7F0AAE00 24090001 */ li $t1, 1 +/* 0DF934 7F0AAE04 256B0B68 */ addiu $t3, %lo(D_80040B68) # addiu $t3, $t3, 0xb68 +/* 0DF938 7F0AAE08 A3A002E3 */ sb $zero, 0x2e3($sp) +/* 0DF93C 7F0AAE0C A3A902E2 */ sb $t1, 0x2e2($sp) +/* 0DF940 7F0AAE10 257900D8 */ addiu $t9, $t3, 0xd8 +/* 0DF944 7F0AAE14 27AA0204 */ addiu $t2, $sp, 0x204 +.L7F0AAE18: +/* 0DF948 7F0AAE18 8D610000 */ lw $at, ($t3) +/* 0DF94C 7F0AAE1C 256B000C */ addiu $t3, $t3, 0xc +/* 0DF950 7F0AAE20 254A000C */ addiu $t2, $t2, 0xc +/* 0DF954 7F0AAE24 AD41FFF4 */ sw $at, -0xc($t2) +/* 0DF958 7F0AAE28 8D61FFF8 */ lw $at, -8($t3) +/* 0DF95C 7F0AAE2C AD41FFF8 */ sw $at, -8($t2) +/* 0DF960 7F0AAE30 8D61FFFC */ lw $at, -4($t3) +/* 0DF964 7F0AAE34 1579FFF8 */ bne $t3, $t9, .L7F0AAE18 +/* 0DF968 7F0AAE38 AD41FFFC */ sw $at, -4($t2) +/* 0DF96C 7F0AAE3C 8D610000 */ lw $at, ($t3) +/* 0DF970 7F0AAE40 3C0E8004 */ lui $t6, %hi(D_80040BB4+0x90) +/* 0DF974 7F0AAE44 25CE0C44 */ addiu $t6, %lo(D_80040BB4+0x90) # addiu $t6, $t6, 0xc44 +/* 0DF978 7F0AAE48 25C900D8 */ addiu $t1, $t6, 0xd8 +/* 0DF97C 7F0AAE4C 27B80128 */ addiu $t8, $sp, 0x128 +/* 0DF980 7F0AAE50 AD410000 */ sw $at, ($t2) +.L7F0AAE54: +/* 0DF984 7F0AAE54 8DC10000 */ lw $at, ($t6) +/* 0DF988 7F0AAE58 25CE000C */ addiu $t6, $t6, 0xc +/* 0DF98C 7F0AAE5C 2718000C */ addiu $t8, $t8, 0xc +/* 0DF990 7F0AAE60 AF01FFF4 */ sw $at, -0xc($t8) +/* 0DF994 7F0AAE64 8DC1FFF8 */ lw $at, -8($t6) +/* 0DF998 7F0AAE68 AF01FFF8 */ sw $at, -8($t8) +/* 0DF99C 7F0AAE6C 8DC1FFFC */ lw $at, -4($t6) +/* 0DF9A0 7F0AAE70 15C9FFF8 */ bne $t6, $t1, .L7F0AAE54 +/* 0DF9A4 7F0AAE74 AF01FFFC */ sw $at, -4($t8) +/* 0DF9A8 7F0AAE78 8DC10000 */ lw $at, ($t6) +/* 0DF9AC 7F0AAE7C 3C0C8004 */ lui $t4, %hi(D_80040D20) +/* 0DF9B0 7F0AAE80 258C0D20 */ addiu $t4, %lo(D_80040D20) # addiu $t4, $t4, 0xd20 +/* 0DF9B4 7F0AAE84 258A00D8 */ addiu $t2, $t4, 0xd8 +/* 0DF9B8 7F0AAE88 27AD004C */ addiu $t5, $sp, 0x4c +/* 0DF9BC 7F0AAE8C AF010000 */ sw $at, ($t8) +.L7F0AAE90: +/* 0DF9C0 7F0AAE90 8D810000 */ lw $at, ($t4) +/* 0DF9C4 7F0AAE94 258C000C */ addiu $t4, $t4, 0xc +/* 0DF9C8 7F0AAE98 25AD000C */ addiu $t5, $t5, 0xc +/* 0DF9CC 7F0AAE9C ADA1FFF4 */ sw $at, -0xc($t5) +/* 0DF9D0 7F0AAEA0 8D81FFF8 */ lw $at, -8($t4) +/* 0DF9D4 7F0AAEA4 ADA1FFF8 */ sw $at, -8($t5) +/* 0DF9D8 7F0AAEA8 8D81FFFC */ lw $at, -4($t4) +/* 0DF9DC 7F0AAEAC 158AFFF8 */ bne $t4, $t2, .L7F0AAE90 +/* 0DF9E0 7F0AAEB0 ADA1FFFC */ sw $at, -4($t5) +/* 0DF9E4 7F0AAEB4 8D810000 */ lw $at, ($t4) +/* 0DF9E8 7F0AAEB8 3C058004 */ lui $a1, %hi(D_80040B2C) +/* 0DF9EC 7F0AAEBC 3C068004 */ lui $a2, %hi(D_80040B28) +/* 0DF9F0 7F0AAEC0 3C078004 */ lui $a3, %hi(D_80040B24) +/* 0DF9F4 7F0AAEC4 24E70B24 */ addiu $a3, %lo(D_80040B24) # addiu $a3, $a3, 0xb24 +/* 0DF9F8 7F0AAEC8 24C60B28 */ addiu $a2, %lo(D_80040B28) # addiu $a2, $a2, 0xb28 +/* 0DF9FC 7F0AAECC 24A50B2C */ addiu $a1, %lo(D_80040B2C) # addiu $a1, $a1, 0xb2c +/* 0DFA00 7F0AAED0 00002025 */ move $a0, $zero +/* 0DFA04 7F0AAED4 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFA08 7F0AAED8 ADA10000 */ sw $at, ($t5) +/* 0DFA0C 7F0AAEDC 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFA10 7F0AAEE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFA14 7F0AAEE4 3C088005 */ lui $t0, %hi(D_80048498) +/* 0DFA18 7F0AAEE8 8D088498 */ lw $t0, %lo(D_80048498)($t0) +/* 0DFA1C 7F0AAEEC 3C018004 */ lui $at, %hi(D_80040B28) +/* 0DFA20 7F0AAEF0 C4240B28 */ lwc1 $f4, %lo(D_80040B28)($at) +/* 0DFA24 7F0AAEF4 44883000 */ mtc1 $t0, $f6 +/* 0DFA28 7F0AAEF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFA2C 7F0AAEFC 44818000 */ mtc1 $at, $f16 +/* 0DFA30 7F0AAF00 46803220 */ cvt.s.w $f8, $f6 +/* 0DFA34 7F0AAF04 3C028004 */ lui $v0, %hi(D_80040B24) +/* 0DFA38 7F0AAF08 24420B24 */ addiu $v0, %lo(D_80040B24) # addiu $v0, $v0, 0xb24 +/* 0DFA3C 7F0AAF0C C4460000 */ lwc1 $f6, ($v0) +/* 0DFA40 7F0AAF10 46082282 */ mul.s $f10, $f4, $f8 +/* 0DFA44 7F0AAF14 00000000 */ nop +/* 0DFA48 7F0AAF18 46105482 */ mul.s $f18, $f10, $f16 +/* 0DFA4C 7F0AAF1C 46123100 */ add.s $f4, $f6, $f18 +/* 0DFA50 7F0AAF20 E4440000 */ swc1 $f4, ($v0) +/* 0DFA54 7F0AAF24 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFA58 7F0AAF28 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFA5C 7F0AAF2C 3C018004 */ lui $at, %hi(D_80040B24) +/* 0DFA60 7F0AAF30 E4200B24 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0DFA64 7F0AAF34 C42C0B24 */ lwc1 $f12, %lo(D_80040B24)($at) +/* 0DFA68 7F0AAF38 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFA6C 7F0AAF3C 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFA70 7F0AAF40 3C0F8004 */ lui $t7, %hi(watch_soundrelated_maybe) +/* 0DFA74 7F0AAF44 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) +/* 0DFA78 7F0AAF48 11E00016 */ beqz $t7, .L7F0AAFA4 +/* 0DFA7C 7F0AAF4C 3C098004 */ lui $t1, %hi(D_80040998) +/* 0DFA80 7F0AAF50 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0DFA84 7F0AAF54 24010001 */ li $at, 1 +/* 0DFA88 7F0AAF58 15210012 */ bne $t1, $at, .L7F0AAFA4 +/* 0DFA8C 7F0AAF5C 00000000 */ nop +/* 0DFA90 7F0AAF60 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFA94 7F0AAF64 00002025 */ move $a0, $zero +/* 0DFA98 7F0AAF68 44824000 */ mtc1 $v0, $f8 +/* 0DFA9C 7F0AAF6C 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAA0 7F0AAF70 C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAA4 7F0AAF74 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFAA8 7F0AAF78 3C018006 */ lui $at, %hi(D_80058550) +/* 0DFAAC 7F0AAF7C C4308550 */ lwc1 $f16, %lo(D_80058550)($at) +/* 0DFAB0 7F0AAF80 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFAB4 7F0AAF84 44819000 */ mtc1 $at, $f18 +/* 0DFAB8 7F0AAF88 3C064080 */ lui $a2, 0x4080 +/* 0DFABC 7F0AAF8C 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFAC0 7F0AAF90 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAC4 7F0AAF94 46123383 */ div.s $f14, $f6, $f18 +/* 0DFAC8 7F0AAF98 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFACC 7F0AAF9C 10000008 */ b .L7F0AAFC0 +/* 0DFAD0 7F0AAFA0 E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFA4: +/* 0DFAD4 7F0AAFA4 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAD8 7F0AAFA8 44807000 */ mtc1 $zero, $f14 +/* 0DFADC 7F0AAFAC C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAE0 7F0AAFB0 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAE4 7F0AAFB4 3C064080 */ lui $a2, 0x4080 +/* 0DFAE8 7F0AAFB8 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAEC 7F0AAFBC E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFC0: +/* 0DFAF0 7F0AAFC0 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAF4 7F0AAFC4 C4240B20 */ lwc1 $f4, %lo(D_80040B20)($at) +/* 0DFAF8 7F0AAFC8 3C018006 */ lui $at, %hi(D_80058554) +/* 0DFAFC 7F0AAFCC C42A8554 */ lwc1 $f10, %lo(D_80058554)($at) +/* 0DFB00 7F0AAFD0 46002207 */ neg.s $f8, $f4 +/* 0DFB04 7F0AAFD4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB08 7F0AAFD8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFB0C 7F0AAFDC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFB10 7F0AAFE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFB14 7F0AAFE4 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFB18 7F0AAFE8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB1C 7F0AAFEC 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFB20 7F0AAFF0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB24 7F0AAFF4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB28 7F0AAFF8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB2C 7F0AAFFC 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFB30 7F0AB000 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFB34 7F0AB004 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFB38 7F0AB008 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFB3C 7F0AB00C 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB40 7F0AB010 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFB44 7F0AB014 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB48 7F0AB018 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFB4C 7F0AB01C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFB50 7F0AB020 00000000 */ nop +/* 0DFB54 7F0AB024 10400018 */ beqz $v0, .L7F0AB088 +/* 0DFB58 7F0AB028 3C01C0A0 */ lui $at, 0xc0a0 +/* 0DFB5C 7F0AB02C 3C018006 */ lui $at, %hi(D_80058558) +/* 0DFB60 7F0AB030 C4208558 */ lwc1 $f0, %lo(D_80058558)($at) +/* 0DFB64 7F0AB034 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFB68 7F0AB038 44816000 */ mtc1 $at, $f12 +/* 0DFB6C 7F0AB03C 44801000 */ mtc1 $zero, $f2 +/* 0DFB70 7F0AB040 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFB74 7F0AB044 44818000 */ mtc1 $at, $f16 +/* 0DFB78 7F0AB048 27AE0128 */ addiu $t6, $sp, 0x128 +/* 0DFB7C 7F0AB04C 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFB80 7F0AB050 44050000 */ mfc1 $a1, $f0 +/* 0DFB84 7F0AB054 44076000 */ mfc1 $a3, $f12 +/* 0DFB88 7F0AB058 AFAE02E8 */ sw $t6, 0x2e8($sp) +/* 0DFB8C 7F0AB05C 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFB90 7F0AB060 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFB94 7F0AB064 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFB98 7F0AB068 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0DFB9C 7F0AB06C E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFBA0 7F0AB070 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFBA4 7F0AB074 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFBA8 7F0AB078 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFBAC 7F0AB07C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0DFBB0 7F0AB080 10000017 */ b .L7F0AB0E0 +/* 0DFBB4 7F0AB084 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB088: +/* 0DFBB8 7F0AB088 44810000 */ mtc1 $at, $f0 +/* 0DFBBC 7F0AB08C 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 0DFBC0 7F0AB090 44811000 */ mtc1 $at, $f2 +/* 0DFBC4 7F0AB094 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFBC8 7F0AB098 44814000 */ mtc1 $at, $f8 +/* 0DFBCC 7F0AB09C 44803000 */ mtc1 $zero, $f6 +/* 0DFBD0 7F0AB0A0 44809000 */ mtc1 $zero, $f18 +/* 0DFBD4 7F0AB0A4 44802000 */ mtc1 $zero, $f4 +/* 0DFBD8 7F0AB0A8 27B80204 */ addiu $t8, $sp, 0x204 +/* 0DFBDC 7F0AB0AC 44050000 */ mfc1 $a1, $f0 +/* 0DFBE0 7F0AB0B0 44071000 */ mfc1 $a3, $f2 +/* 0DFBE4 7F0AB0B4 AFB802E8 */ sw $t8, 0x2e8($sp) +/* 0DFBE8 7F0AB0B8 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFBEC 7F0AB0BC 3C0644FA */ lui $a2, 0x44fa +/* 0DFBF0 7F0AB0C0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFBF4 7F0AB0C4 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0DFBF8 7F0AB0C8 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0DFBFC 7F0AB0CC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DFC00 7F0AB0D0 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0DFC04 7F0AB0D4 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFC08 7F0AB0D8 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0DFC0C 7F0AB0DC 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB0E0: +/* 0DFC10 7F0AB0E0 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFC14 7F0AB0E4 0FC16032 */ jal matrix_4x4_multiply +/* 0DFC18 7F0AB0E8 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFC1C 7F0AB0EC 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFC20 7F0AB0F0 44815000 */ mtc1 $at, $f10 +/* 0DFC24 7F0AB0F4 3C018006 */ lui $at, %hi(D_8005855C) +/* 0DFC28 7F0AB0F8 C430855C */ lwc1 $f16, %lo(D_8005855C)($at) +/* 0DFC2C 7F0AB0FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFC30 7F0AB100 44813000 */ mtc1 $at, $f6 +/* 0DFC34 7F0AB104 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFC38 7F0AB108 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFC3C 7F0AB10C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC40 7F0AB110 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFC44 7F0AB114 3C06424A */ lui $a2, 0x424a +/* 0DFC48 7F0AB118 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0DFC4C 7F0AB11C E7B00014 */ swc1 $f16, 0x14($sp) +/* 0DFC50 7F0AB120 0C003FAC */ jal guPerspective +/* 0DFC54 7F0AB124 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0DFC58 7F0AB128 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0DFC5C 7F0AB12C 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0DFC60 7F0AB130 02001825 */ move $v1, $s0 +/* 0DFC64 7F0AB134 AC6B0000 */ sw $t3, ($v1) +/* 0DFC68 7F0AB138 AFA30048 */ sw $v1, 0x48($sp) +/* 0DFC6C 7F0AB13C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC70 7F0AB140 0C003A2C */ jal osVirtualToPhysical +/* 0DFC74 7F0AB144 26100008 */ addiu $s0, $s0, 8 +/* 0DFC78 7F0AB148 8FA30048 */ lw $v1, 0x48($sp) +/* 0DFC7C 7F0AB14C 02002025 */ move $a0, $s0 +/* 0DFC80 7F0AB150 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFC84 7F0AB154 AC620004 */ sw $v0, 4($v1) +/* 0DFC88 7F0AB158 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFC8C 7F0AB15C 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFC90 7F0AB160 00408025 */ move $s0, $v0 +/* 0DFC94 7F0AB164 02002025 */ move $a0, $s0 +/* 0DFC98 7F0AB168 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFC9C 7F0AB16C 1020000C */ beqz $at, .L7F0AB1A0 +/* 0DFCA0 7F0AB170 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCA4 7F0AB174 8FB902E8 */ lw $t9, 0x2e8($sp) +/* 0DFCA8 7F0AB178 27AA02E3 */ addiu $t2, $sp, 0x2e3 +/* 0DFCAC 7F0AB17C AFAA0014 */ sw $t2, 0x14($sp) +/* 0DFCB0 7F0AB180 00402025 */ move $a0, $v0 +/* 0DFCB4 7F0AB184 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCB8 7F0AB188 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFCBC 7F0AB18C 24070001 */ li $a3, 1 +/* 0DFCC0 7F0AB190 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFCC4 7F0AB194 AFB90010 */ sw $t9, 0x10($sp) +/* 0DFCC8 7F0AB198 10000007 */ b .L7F0AB1B8 +/* 0DFCCC 7F0AB19C 00408025 */ move $s0, $v0 +.L7F0AB1A0: +/* 0DFCD0 7F0AB1A0 27AC02E3 */ addiu $t4, $sp, 0x2e3 +/* 0DFCD4 7F0AB1A4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DFCD8 7F0AB1A8 24060001 */ li $a2, 1 +/* 0DFCDC 7F0AB1AC 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFCE0 7F0AB1B0 8FA702E8 */ lw $a3, 0x2e8($sp) +/* 0DFCE4 7F0AB1B4 00408025 */ move $s0, $v0 +.L7F0AB1B8: +/* 0DFCE8 7F0AB1B8 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFCEC 7F0AB1BC 00000000 */ nop +/* 0DFCF0 7F0AB1C0 104000A2 */ beqz $v0, .L7F0AB44C +/* 0DFCF4 7F0AB1C4 24040001 */ li $a0, 1 +/* 0DFCF8 7F0AB1C8 3C058004 */ lui $a1, %hi(D_80040B3C) +/* 0DFCFC 7F0AB1CC 3C068004 */ lui $a2, %hi(D_80040B38) +/* 0DFD00 7F0AB1D0 3C078004 */ lui $a3, %hi(D_80040B34) +/* 0DFD04 7F0AB1D4 24E70B34 */ addiu $a3, %lo(D_80040B34) # addiu $a3, $a3, 0xb34 +/* 0DFD08 7F0AB1D8 24C60B38 */ addiu $a2, %lo(D_80040B38) # addiu $a2, $a2, 0xb38 +/* 0DFD0C 7F0AB1DC 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFD10 7F0AB1E0 24A50B3C */ addiu $a1, %lo(D_80040B3C) # addiu $a1, $a1, 0xb3c +/* 0DFD14 7F0AB1E4 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFD18 7F0AB1E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFD1C 7F0AB1EC 3C0D8005 */ lui $t5, %hi(D_80048498) +/* 0DFD20 7F0AB1F0 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) +/* 0DFD24 7F0AB1F4 3C018004 */ lui $at, %hi(D_80040B38) +/* 0DFD28 7F0AB1F8 C4320B38 */ lwc1 $f18, %lo(D_80040B38)($at) +/* 0DFD2C 7F0AB1FC 448D2000 */ mtc1 $t5, $f4 +/* 0DFD30 7F0AB200 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFD34 7F0AB204 44818000 */ mtc1 $at, $f16 +/* 0DFD38 7F0AB208 46802220 */ cvt.s.w $f8, $f4 +/* 0DFD3C 7F0AB20C 3C028004 */ lui $v0, %hi(D_80040B34) +/* 0DFD40 7F0AB210 24420B34 */ addiu $v0, %lo(D_80040B34) # addiu $v0, $v0, 0xb34 +/* 0DFD44 7F0AB214 C4440000 */ lwc1 $f4, ($v0) +/* 0DFD48 7F0AB218 46089282 */ mul.s $f10, $f18, $f8 +/* 0DFD4C 7F0AB21C 00000000 */ nop +/* 0DFD50 7F0AB220 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFD54 7F0AB224 46062480 */ add.s $f18, $f4, $f6 +/* 0DFD58 7F0AB228 E4520000 */ swc1 $f18, ($v0) +/* 0DFD5C 7F0AB22C 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFD60 7F0AB230 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFD64 7F0AB234 3C018004 */ lui $at, %hi(D_80040B34) +/* 0DFD68 7F0AB238 E4200B34 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0DFD6C 7F0AB23C C42C0B34 */ lwc1 $f12, %lo(D_80040B34)($at) +/* 0DFD70 7F0AB240 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFD74 7F0AB244 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFD78 7F0AB248 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0DFD7C 7F0AB24C 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0DFD80 7F0AB250 11000016 */ beqz $t0, .L7F0AB2AC +/* 0DFD84 7F0AB254 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0DFD88 7F0AB258 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0DFD8C 7F0AB25C 24010001 */ li $at, 1 +/* 0DFD90 7F0AB260 15E10012 */ bne $t7, $at, .L7F0AB2AC +/* 0DFD94 7F0AB264 00000000 */ nop +/* 0DFD98 7F0AB268 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFD9C 7F0AB26C 24040001 */ li $a0, 1 +/* 0DFDA0 7F0AB270 44824000 */ mtc1 $v0, $f8 +/* 0DFDA4 7F0AB274 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDA8 7F0AB278 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDAC 7F0AB27C 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFDB0 7F0AB280 3C018006 */ lui $at, %hi(D_80058560) +/* 0DFDB4 7F0AB284 C4308560 */ lwc1 $f16, %lo(D_80058560)($at) +/* 0DFDB8 7F0AB288 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFDBC 7F0AB28C 44813000 */ mtc1 $at, $f6 +/* 0DFDC0 7F0AB290 3C064080 */ lui $a2, 0x4080 +/* 0DFDC4 7F0AB294 46105102 */ mul.s $f4, $f10, $f16 +/* 0DFDC8 7F0AB298 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDCC 7F0AB29C 46062383 */ div.s $f14, $f4, $f6 +/* 0DFDD0 7F0AB2A0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDD4 7F0AB2A4 10000008 */ b .L7F0AB2C8 +/* 0DFDD8 7F0AB2A8 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2AC: +/* 0DFDDC 7F0AB2AC 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDE0 7F0AB2B0 44807000 */ mtc1 $zero, $f14 +/* 0DFDE4 7F0AB2B4 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDE8 7F0AB2B8 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDEC 7F0AB2BC 3C064080 */ lui $a2, 0x4080 +/* 0DFDF0 7F0AB2C0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDF4 7F0AB2C4 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2C8: +/* 0DFDF8 7F0AB2C8 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDFC 7F0AB2CC C4320B30 */ lwc1 $f18, %lo(D_80040B30)($at) +/* 0DFE00 7F0AB2D0 3C018006 */ lui $at, %hi(D_80058564) +/* 0DFE04 7F0AB2D4 C42A8564 */ lwc1 $f10, %lo(D_80058564)($at) +/* 0DFE08 7F0AB2D8 46009207 */ neg.s $f8, $f18 +/* 0DFE0C 7F0AB2DC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE10 7F0AB2E0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFE14 7F0AB2E4 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFE18 7F0AB2E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFE1C 7F0AB2EC 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFE20 7F0AB2F0 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE24 7F0AB2F4 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFE28 7F0AB2F8 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE2C 7F0AB2FC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE30 7F0AB300 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE34 7F0AB304 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFE38 7F0AB308 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFE3C 7F0AB30C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFE40 7F0AB310 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFE44 7F0AB314 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE48 7F0AB318 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFE4C 7F0AB31C 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE50 7F0AB320 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFE54 7F0AB324 3C018006 */ lui $at, %hi(D_80058568) +/* 0DFE58 7F0AB328 C4208568 */ lwc1 $f0, %lo(D_80058568)($at) +/* 0DFE5C 7F0AB32C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFE60 7F0AB330 44801000 */ mtc1 $zero, $f2 +/* 0DFE64 7F0AB334 44818000 */ mtc1 $at, $f16 +/* 0DFE68 7F0AB338 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFE6C 7F0AB33C 44812000 */ mtc1 $at, $f4 +/* 0DFE70 7F0AB340 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFE74 7F0AB344 44050000 */ mfc1 $a1, $f0 +/* 0DFE78 7F0AB348 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFE7C 7F0AB34C 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFE80 7F0AB350 3C074200 */ lui $a3, 0x4200 +/* 0DFE84 7F0AB354 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFE88 7F0AB358 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFE8C 7F0AB35C E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFE90 7F0AB360 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFE94 7F0AB364 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0DFE98 7F0AB368 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFE9C 7F0AB36C E7A40024 */ swc1 $f4, 0x24($sp) +/* 0DFEA0 7F0AB370 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFEA4 7F0AB374 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFEA8 7F0AB378 0FC16032 */ jal matrix_4x4_multiply +/* 0DFEAC 7F0AB37C 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFEB0 7F0AB380 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFEB4 7F0AB384 44813000 */ mtc1 $at, $f6 +/* 0DFEB8 7F0AB388 3C018006 */ lui $at, %hi(D_8005856C) +/* 0DFEBC 7F0AB38C C432856C */ lwc1 $f18, %lo(D_8005856C)($at) +/* 0DFEC0 7F0AB390 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFEC4 7F0AB394 44814000 */ mtc1 $at, $f8 +/* 0DFEC8 7F0AB398 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFECC 7F0AB39C 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFED0 7F0AB3A0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFED4 7F0AB3A4 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFED8 7F0AB3A8 3C06424A */ lui $a2, 0x424a +/* 0DFEDC 7F0AB3AC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0DFEE0 7F0AB3B0 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0DFEE4 7F0AB3B4 0C003FAC */ jal guPerspective +/* 0DFEE8 7F0AB3B8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DFEEC 7F0AB3BC 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 +/* 0DFEF0 7F0AB3C0 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0DFEF4 7F0AB3C4 02001825 */ move $v1, $s0 +/* 0DFEF8 7F0AB3C8 AC690000 */ sw $t1, ($v1) +/* 0DFEFC 7F0AB3CC AFA30044 */ sw $v1, 0x44($sp) +/* 0DFF00 7F0AB3D0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFF04 7F0AB3D4 0C003A2C */ jal osVirtualToPhysical +/* 0DFF08 7F0AB3D8 26100008 */ addiu $s0, $s0, 8 +/* 0DFF0C 7F0AB3DC 8FA30044 */ lw $v1, 0x44($sp) +/* 0DFF10 7F0AB3E0 02002025 */ move $a0, $s0 +/* 0DFF14 7F0AB3E4 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFF18 7F0AB3E8 AC620004 */ sw $v0, 4($v1) +/* 0DFF1C 7F0AB3EC 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFF20 7F0AB3F0 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFF24 7F0AB3F4 00408025 */ move $s0, $v0 +/* 0DFF28 7F0AB3F8 02002025 */ move $a0, $s0 +/* 0DFF2C 7F0AB3FC 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFF30 7F0AB400 1020000C */ beqz $at, .L7F0AB434 +/* 0DFF34 7F0AB404 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF38 7F0AB408 27AE004C */ addiu $t6, $sp, 0x4c +/* 0DFF3C 7F0AB40C 27B802E2 */ addiu $t8, $sp, 0x2e2 +/* 0DFF40 7F0AB410 AFB80014 */ sw $t8, 0x14($sp) +/* 0DFF44 7F0AB414 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DFF48 7F0AB418 00402025 */ move $a0, $v0 +/* 0DFF4C 7F0AB41C 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF50 7F0AB420 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFF54 7F0AB424 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFF58 7F0AB428 24070001 */ li $a3, 1 +/* 0DFF5C 7F0AB42C 10000007 */ b .L7F0AB44C +/* 0DFF60 7F0AB430 00408025 */ move $s0, $v0 +.L7F0AB434: +/* 0DFF64 7F0AB434 27AB02E2 */ addiu $t3, $sp, 0x2e2 +/* 0DFF68 7F0AB438 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DFF6C 7F0AB43C 24060001 */ li $a2, 1 +/* 0DFF70 7F0AB440 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFF74 7F0AB444 27A7004C */ addiu $a3, $sp, 0x4c +/* 0DFF78 7F0AB448 00408025 */ move $s0, $v0 +.L7F0AB44C: +/* 0DFF7C 7F0AB44C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFF80 7F0AB450 00000000 */ nop +/* 0DFF84 7F0AB454 10400005 */ beqz $v0, .L7F0AB46C +/* 0DFF88 7F0AB458 00000000 */ nop +/* 0DFF8C 7F0AB45C 0FC2A9F2 */ jal sub_GAME_7F0AA7C8 +/* 0DFF90 7F0AB460 02002025 */ move $a0, $s0 +/* 0DFF94 7F0AB464 10000004 */ b .L7F0AB478 +/* 0DFF98 7F0AB468 00408025 */ move $s0, $v0 +.L7F0AB46C: +/* 0DFF9C 7F0AB46C 0FC2A6AE */ jal sub_GAME_7F0A9AB8 +/* 0DFFA0 7F0AB470 02002025 */ move $a0, $s0 +/* 0DFFA4 7F0AB474 00408025 */ move $s0, $v0 +.L7F0AB478: +/* 0DFFA8 7F0AB478 8FBF0034 */ lw $ra, 0x34($sp) +/* 0DFFAC 7F0AB47C 02001025 */ move $v0, $s0 +/* 0DFFB0 7F0AB480 8FB00030 */ lw $s0, 0x30($sp) +/* 0DFFB4 7F0AB484 03E00008 */ jr $ra +/* 0DFFB8 7F0AB488 27BD0540 */ addiu $sp, $sp, 0x540 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80058550 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058554 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058558 +.word 0x43f78000 /*495.0*/ +glabel D_8005855C +.word 0x453b8000 /*3000.0*/ +glabel D_80058560 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058564 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058568 +.word 0xc3fc8000 /*-505.0*/ +glabel D_8005856C +.word 0x453b8000 /*3000.0*/ +.text +glabel sub_GAME_7F0AADC0 +/* 0E04F0 7F0AB980 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 0E04F4 7F0AB984 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E04F8 7F0AB988 AFB00030 */ sw $s0, 0x30($sp) +/* 0E04FC 7F0AB98C 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0E0500 7F0AB990 00808025 */ move $s0, $a0 +/* 0E0504 7F0AB994 3C0F8004 */ lui $t7, %hi(D_80040B5C) # $t7, 0x8004 +/* 0E0508 7F0AB998 AFA2053C */ sw $v0, 0x53c($sp) +/* 0E050C 7F0AB99C 25EF0B8C */ addiu $t7, %lo(D_80040B5C) # addiu $t7, $t7, 0xb8c +/* 0E0510 7F0AB9A0 8DE10000 */ lw $at, ($t7) +/* 0E0514 7F0AB9A4 27AE0370 */ addiu $t6, $sp, 0x370 +/* 0E0518 7F0AB9A8 8DE80004 */ lw $t0, 4($t7) +/* 0E051C 7F0AB9AC ADC10000 */ sw $at, ($t6) +/* 0E0520 7F0AB9B0 8DE10008 */ lw $at, 8($t7) +/* 0E0524 7F0AB9B4 3C0B8004 */ lui $t3, %hi(D_80040B68) # $t3, 0x8004 +/* 0E0528 7F0AB9B8 ADC80004 */ sw $t0, 4($t6) +/* 0E052C 7F0AB9BC ADC10008 */ sw $at, 8($t6) +/* 0E0530 7F0AB9C0 24090001 */ li $t1, 1 +/* 0E0534 7F0AB9C4 256B0B98 */ addiu $t3, %lo(D_80040B68) # addiu $t3, $t3, 0xb98 +/* 0E0538 7F0AB9C8 A3A002E3 */ sb $zero, 0x2e3($sp) +/* 0E053C 7F0AB9CC A3A902E2 */ sb $t1, 0x2e2($sp) +/* 0E0540 7F0AB9D0 257900D8 */ addiu $t9, $t3, 0xd8 +/* 0E0544 7F0AB9D4 27AA0204 */ addiu $t2, $sp, 0x204 +.Ljp7F0AB9D8: +/* 0E0548 7F0AB9D8 8D610000 */ lw $at, ($t3) +/* 0E054C 7F0AB9DC 256B000C */ addiu $t3, $t3, 0xc +/* 0E0550 7F0AB9E0 254A000C */ addiu $t2, $t2, 0xc +/* 0E0554 7F0AB9E4 AD41FFF4 */ sw $at, -0xc($t2) +/* 0E0558 7F0AB9E8 8D61FFF8 */ lw $at, -8($t3) +/* 0E055C 7F0AB9EC AD41FFF8 */ sw $at, -8($t2) +/* 0E0560 7F0AB9F0 8D61FFFC */ lw $at, -4($t3) +/* 0E0564 7F0AB9F4 1579FFF8 */ bne $t3, $t9, .Ljp7F0AB9D8 +/* 0E0568 7F0AB9F8 AD41FFFC */ sw $at, -4($t2) +/* 0E056C 7F0AB9FC 8D610000 */ lw $at, ($t3) +/* 0E0570 7F0ABA00 3C0E8004 */ lui $t6, %hi(D_80040BB4+0x90) # $t6, 0x8004 +/* 0E0574 7F0ABA04 25CE0C74 */ addiu $t6, %lo(D_80040BB4+0x90) # addiu $t6, $t6, 0xc74 +/* 0E0578 7F0ABA08 25C900D8 */ addiu $t1, $t6, 0xd8 +/* 0E057C 7F0ABA0C 27B80128 */ addiu $t8, $sp, 0x128 +/* 0E0580 7F0ABA10 AD410000 */ sw $at, ($t2) +.Ljp7F0ABA14: +/* 0E0584 7F0ABA14 8DC10000 */ lw $at, ($t6) +/* 0E0588 7F0ABA18 25CE000C */ addiu $t6, $t6, 0xc +/* 0E058C 7F0ABA1C 2718000C */ addiu $t8, $t8, 0xc +/* 0E0590 7F0ABA20 AF01FFF4 */ sw $at, -0xc($t8) +/* 0E0594 7F0ABA24 8DC1FFF8 */ lw $at, -8($t6) +/* 0E0598 7F0ABA28 AF01FFF8 */ sw $at, -8($t8) +/* 0E059C 7F0ABA2C 8DC1FFFC */ lw $at, -4($t6) +/* 0E05A0 7F0ABA30 15C9FFF8 */ bne $t6, $t1, .Ljp7F0ABA14 +/* 0E05A4 7F0ABA34 AF01FFFC */ sw $at, -4($t8) +/* 0E05A8 7F0ABA38 8DC10000 */ lw $at, ($t6) +/* 0E05AC 7F0ABA3C 3C0C8004 */ lui $t4, %hi(D_80040D20) # $t4, 0x8004 +/* 0E05B0 7F0ABA40 258C0D50 */ addiu $t4, %lo(D_80040D20) # addiu $t4, $t4, 0xd50 +/* 0E05B4 7F0ABA44 258A00D8 */ addiu $t2, $t4, 0xd8 +/* 0E05B8 7F0ABA48 27AD004C */ addiu $t5, $sp, 0x4c +/* 0E05BC 7F0ABA4C AF010000 */ sw $at, ($t8) +.Ljp7F0ABA50: +/* 0E05C0 7F0ABA50 8D810000 */ lw $at, ($t4) +/* 0E05C4 7F0ABA54 258C000C */ addiu $t4, $t4, 0xc +/* 0E05C8 7F0ABA58 25AD000C */ addiu $t5, $t5, 0xc +/* 0E05CC 7F0ABA5C ADA1FFF4 */ sw $at, -0xc($t5) +/* 0E05D0 7F0ABA60 8D81FFF8 */ lw $at, -8($t4) +/* 0E05D4 7F0ABA64 ADA1FFF8 */ sw $at, -8($t5) +/* 0E05D8 7F0ABA68 8D81FFFC */ lw $at, -4($t4) +/* 0E05DC 7F0ABA6C 158AFFF8 */ bne $t4, $t2, .Ljp7F0ABA50 +/* 0E05E0 7F0ABA70 ADA1FFFC */ sw $at, -4($t5) +/* 0E05E4 7F0ABA74 8D810000 */ lw $at, ($t4) +/* 0E05E8 7F0ABA78 3C058004 */ lui $a1, %hi(D_80040B2C) # $a1, 0x8004 +/* 0E05EC 7F0ABA7C 3C068004 */ lui $a2, %hi(D_80040B28) # $a2, 0x8004 +/* 0E05F0 7F0ABA80 3C078004 */ lui $a3, %hi(D_80040B24) # $a3, 0x8004 +/* 0E05F4 7F0ABA84 24E70B54 */ addiu $a3, %lo(D_80040B24) # addiu $a3, $a3, 0xb54 +/* 0E05F8 7F0ABA88 24C60B58 */ addiu $a2, %lo(D_80040B28) # addiu $a2, $a2, 0xb58 +/* 0E05FC 7F0ABA8C 24A50B5C */ addiu $a1, %lo(D_80040B2C) # addiu $a1, $a1, 0xb5c +/* 0E0600 7F0ABA90 00002025 */ move $a0, $zero +/* 0E0604 7F0ABA94 0FC2A891 */ jal sub_GAME_7F0A9684 +/* 0E0608 7F0ABA98 ADA10000 */ sw $at, ($t5) +/* 0E060C 7F0ABA9C 0FC1613C */ jal matrix_4x4_set_identity +/* 0E0610 7F0ABAA0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0614 7F0ABAA4 3C018004 */ lui $at, %hi(D_80040B28) # $at, 0x8004 +/* 0E0618 7F0ABAA8 C4240B58 */ lwc1 $f4, %lo(D_80040B28)($at) +/* 0E061C 7F0ABAAC 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0E0620 7F0ABAB0 C42684D0 */ lwc1 $f6, %lo(jpD_800484D0)($at) +/* 0E0624 7F0ABAB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0E0628 7F0ABAB8 44815000 */ mtc1 $at, $f10 +/* 0E062C 7F0ABABC 46062202 */ mul.s $f8, $f4, $f6 +/* 0E0630 7F0ABAC0 3C028004 */ lui $v0, %hi(D_80040B24) # $v0, 0x8004 +/* 0E0634 7F0ABAC4 24420B54 */ addiu $v0, %lo(D_80040B24) # addiu $v0, $v0, 0xb54 +/* 0E0638 7F0ABAC8 C4520000 */ lwc1 $f18, ($v0) +/* 0E063C 7F0ABACC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0E0640 7F0ABAD0 46109100 */ add.s $f4, $f18, $f16 +/* 0E0644 7F0ABAD4 E4440000 */ swc1 $f4, ($v0) +/* 0E0648 7F0ABAD8 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0E064C 7F0ABADC C44C0000 */ lwc1 $f12, ($v0) +/* 0E0650 7F0ABAE0 3C018004 */ lui $at, %hi(D_80040B24) # $at, 0x8004 +/* 0E0654 7F0ABAE4 E4200B54 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0E0658 7F0ABAE8 C42C0B54 */ lwc1 $f12, %lo(D_80040B24)($at) +/* 0E065C 7F0ABAEC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0E0660 7F0ABAF0 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0664 7F0ABAF4 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) # $t0, 0x8004 +/* 0E0668 7F0ABAF8 8D0809D8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E066C 7F0ABAFC 11000016 */ beqz $t0, .Ljp7F0ABB58 +/* 0E0670 7F0ABB00 3C0F8004 */ lui $t7, %hi(D_80040998) # $t7, 0x8004 +/* 0E0674 7F0ABB04 8DEF09C8 */ lw $t7, %lo(D_80040998)($t7) +/* 0E0678 7F0ABB08 24010001 */ li $at, 1 +/* 0E067C 7F0ABB0C 15E10012 */ bne $t7, $at, .Ljp7F0ABB58 +/* 0E0680 7F0ABB10 00000000 */ nop +/* 0E0684 7F0ABB14 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0688 7F0ABB18 00002025 */ move $a0, $zero +/* 0E068C 7F0ABB1C 44823000 */ mtc1 $v0, $f6 +/* 0E0690 7F0ABB20 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E0694 7F0ABB24 C42C0B50 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0E0698 7F0ABB28 46803220 */ cvt.s.w $f8, $f6 +/* 0E069C 7F0ABB2C 3C018006 */ lui $at, %hi(D_80058550) # $at, 0x8006 +/* 0E06A0 7F0ABB30 C42A8590 */ lwc1 $f10, %lo(D_80058550)($at) +/* 0E06A4 7F0ABB34 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0E06A8 7F0ABB38 44818000 */ mtc1 $at, $f16 +/* 0E06AC 7F0ABB3C 3C064080 */ lui $a2, 0x4080 +/* 0E06B0 7F0ABB40 460A4482 */ mul.s $f18, $f8, $f10 +/* 0E06B4 7F0ABB44 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E06B8 7F0ABB48 46109383 */ div.s $f14, $f18, $f16 +/* 0E06BC 7F0ABB4C 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06C0 7F0ABB50 10000008 */ b .Ljp7F0ABB74 +/* 0E06C4 7F0ABB54 E4200B50 */ swc1 $f0, %lo(D_80040B20)($at) +.Ljp7F0ABB58: +/* 0E06C8 7F0ABB58 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06CC 7F0ABB5C 44807000 */ mtc1 $zero, $f14 +/* 0E06D0 7F0ABB60 C42C0B50 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0E06D4 7F0ABB64 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E06D8 7F0ABB68 3C064080 */ lui $a2, 0x4080 +/* 0E06DC 7F0ABB6C 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06E0 7F0ABB70 E4200B50 */ swc1 $f0, %lo(D_80040B20)($at) +.Ljp7F0ABB74: +/* 0E06E4 7F0ABB74 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06E8 7F0ABB78 C4240B50 */ lwc1 $f4, %lo(D_80040B20)($at) +/* 0E06EC 7F0ABB7C 3C018006 */ lui $at, %hi(D_80058554) # $at, 0x8006 +/* 0E06F0 7F0ABB80 C4288594 */ lwc1 $f8, %lo(D_80058554)($at) +/* 0E06F4 7F0ABB84 46002187 */ neg.s $f6, $f4 +/* 0E06F8 7F0ABB88 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E06FC 7F0ABB8C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 0E0700 7F0ABB90 46083301 */ sub.s $f12, $f6, $f8 +/* 0E0704 7F0ABB94 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0708 7F0ABB98 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E070C 7F0ABB9C 0FC1617A */ jal matrix_4x4_multiply +/* 0E0710 7F0ABBA0 27A6043C */ addiu $a2, $sp, 0x43c +/* 0E0714 7F0ABBA4 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0718 7F0ABBA8 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E071C 7F0ABBAC 0FC1617A */ jal matrix_4x4_multiply +/* 0E0720 7F0ABBB0 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0E0724 7F0ABBB4 27A40370 */ addiu $a0, $sp, 0x370 +/* 0E0728 7F0ABBB8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0E072C 7F0ABBBC 27A5043C */ addiu $a1, $sp, 0x43c +/* 0E0730 7F0ABBC0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0734 7F0ABBC4 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0E0738 7F0ABBC8 0FC1617A */ jal matrix_4x4_multiply +/* 0E073C 7F0ABBCC 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0E0740 7F0ABBD0 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E0744 7F0ABBD4 00000000 */ nop +/* 0E0748 7F0ABBD8 10400018 */ beqz $v0, .Ljp7F0ABC3C +/* 0E074C 7F0ABBDC 3C01C0A0 */ lui $at, 0xc0a0 +/* 0E0750 7F0ABBE0 3C018006 */ lui $at, %hi(D_80058558) +/* 0E0754 7F0ABBE4 C4208598 */ lwc1 $f0, %lo(D_80058558)($at) +/* 0E0758 7F0ABBE8 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0E075C 7F0ABBEC 44816000 */ mtc1 $at, $f12 +/* 0E0760 7F0ABBF0 44801000 */ mtc1 $zero, $f2 +/* 0E0764 7F0ABBF4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E0768 7F0ABBF8 44815000 */ mtc1 $at, $f10 +/* 0E076C 7F0ABBFC 27A90128 */ addiu $t1, $sp, 0x128 +/* 0E0770 7F0ABC00 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0E0774 7F0ABC04 44050000 */ mfc1 $a1, $f0 +/* 0E0778 7F0ABC08 44076000 */ mfc1 $a3, $f12 +/* 0E077C 7F0ABC0C AFA902E8 */ sw $t1, 0x2e8($sp) +/* 0E0780 7F0ABC10 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0E0784 7F0ABC14 27A4032C */ addiu $a0, $sp, 0x32c +/* 0E0788 7F0ABC18 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E078C 7F0ABC1C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0E0790 7F0ABC20 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0E0794 7F0ABC24 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0E0798 7F0ABC28 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E079C 7F0ABC2C 0FC166ED */ jal sub_GAME_7F059694 +/* 0E07A0 7F0ABC30 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0E07A4 7F0ABC34 10000017 */ b .Ljp7F0ABC94 +/* 0E07A8 7F0ABC38 27A4032C */ addiu $a0, $sp, 0x32c +.Ljp7F0ABC3C: +/* 0E07AC 7F0ABC3C 44810000 */ mtc1 $at, $f0 +/* 0E07B0 7F0ABC40 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 0E07B4 7F0ABC44 44811000 */ mtc1 $at, $f2 +/* 0E07B8 7F0ABC48 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E07BC 7F0ABC4C 44813000 */ mtc1 $at, $f6 +/* 0E07C0 7F0ABC50 44809000 */ mtc1 $zero, $f18 +/* 0E07C4 7F0ABC54 44808000 */ mtc1 $zero, $f16 +/* 0E07C8 7F0ABC58 44802000 */ mtc1 $zero, $f4 +/* 0E07CC 7F0ABC5C 27AE0204 */ addiu $t6, $sp, 0x204 +/* 0E07D0 7F0ABC60 44050000 */ mfc1 $a1, $f0 +/* 0E07D4 7F0ABC64 44071000 */ mfc1 $a3, $f2 +/* 0E07D8 7F0ABC68 AFAE02E8 */ sw $t6, 0x2e8($sp) +/* 0E07DC 7F0ABC6C 27A4032C */ addiu $a0, $sp, 0x32c +/* 0E07E0 7F0ABC70 3C0644FA */ lui $a2, 0x44fa +/* 0E07E4 7F0ABC74 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E07E8 7F0ABC78 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0E07EC 7F0ABC7C E7A60024 */ swc1 $f6, 0x24($sp) +/* 0E07F0 7F0ABC80 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0E07F4 7F0ABC84 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0E07F8 7F0ABC88 0FC166ED */ jal sub_GAME_7F059694 +/* 0E07FC 7F0ABC8C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0E0800 7F0ABC90 27A4032C */ addiu $a0, $sp, 0x32c +.Ljp7F0ABC94: +/* 0E0804 7F0ABC94 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0E0808 7F0ABC98 0FC1617A */ jal matrix_4x4_multiply +/* 0E080C 7F0ABC9C 27A6037C */ addiu $a2, $sp, 0x37c +/* 0E0810 7F0ABCA0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0E0814 7F0ABCA4 44814000 */ mtc1 $at, $f8 +/* 0E0818 7F0ABCA8 3C018006 */ lui $at, %hi(D_8005855C) # $at, 0x8006 +/* 0E081C 7F0ABCAC C42A859C */ lwc1 $f10, %lo(D_8005855C)($at) +/* 0E0820 7F0ABCB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E0824 7F0ABCB4 44819000 */ mtc1 $at, $f18 +/* 0E0828 7F0ABCB8 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0E082C 7F0ABCBC 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0E0830 7F0ABCC0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0834 7F0ABCC4 27A5036E */ addiu $a1, $sp, 0x36e +/* 0E0838 7F0ABCC8 3C06424A */ lui $a2, 0x424a +/* 0E083C 7F0ABCCC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0E0840 7F0ABCD0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0E0844 7F0ABCD4 0C003FBC */ jal guPerspective +/* 0E0848 7F0ABCD8 E7B20018 */ swc1 $f18, 0x18($sp) +/* 0E084C 7F0ABCDC 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0E0850 7F0ABCE0 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0E0854 7F0ABCE4 02001825 */ move $v1, $s0 +/* 0E0858 7F0ABCE8 AC780000 */ sw $t8, ($v1) +/* 0E085C 7F0ABCEC AFA30048 */ sw $v1, 0x48($sp) +/* 0E0860 7F0ABCF0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0864 7F0ABCF4 0C003A3C */ jal osVirtualToPhysical +/* 0E0868 7F0ABCF8 26100008 */ addiu $s0, $s0, 8 +/* 0E086C 7F0ABCFC 8FA30048 */ lw $v1, 0x48($sp) +/* 0E0870 7F0ABD00 02002025 */ move $a0, $s0 +/* 0E0874 7F0ABD04 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0E0878 7F0ABD08 AC620004 */ sw $v0, 4($v1) +/* 0E087C 7F0ABD0C 3C038004 */ lui $v1, %hi(D_80040B04) # $v1, 0x8004 +/* 0E0880 7F0ABD10 8C630B34 */ lw $v1, %lo(D_80040B04)($v1) +/* 0E0884 7F0ABD14 00408025 */ move $s0, $v0 +/* 0E0888 7F0ABD18 02002025 */ move $a0, $s0 +/* 0E088C 7F0ABD1C 286100E0 */ slti $at, $v1, 0xe0 +/* 0E0890 7F0ABD20 1020000C */ beqz $at, .Ljp7F0ABD54 +/* 0E0894 7F0ABD24 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0898 7F0ABD28 8FAB02E8 */ lw $t3, 0x2e8($sp) +/* 0E089C 7F0ABD2C 27B902E3 */ addiu $t9, $sp, 0x2e3 +/* 0E08A0 7F0ABD30 AFB90014 */ sw $t9, 0x14($sp) +/* 0E08A4 7F0ABD34 00402025 */ move $a0, $v0 +/* 0E08A8 7F0ABD38 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E08AC 7F0ABD3C 2466FFFA */ addiu $a2, $v1, -6 +/* 0E08B0 7F0ABD40 24070001 */ li $a3, 1 +/* 0E08B4 7F0ABD44 0FC18EB2 */ jal sub_GAME_7F06359C +/* 0E08B8 7F0ABD48 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E08BC 7F0ABD4C 10000007 */ b .Ljp7F0ABD6C +/* 0E08C0 7F0ABD50 00408025 */ move $s0, $v0 +.Ljp7F0ABD54: +/* 0E08C4 7F0ABD54 27AA02E3 */ addiu $t2, $sp, 0x2e3 +/* 0E08C8 7F0ABD58 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E08CC 7F0ABD5C 24060001 */ li $a2, 1 +/* 0E08D0 7F0ABD60 0FC19224 */ jal sub_GAME_7F064364 +/* 0E08D4 7F0ABD64 8FA702E8 */ lw $a3, 0x2e8($sp) +/* 0E08D8 7F0ABD68 00408025 */ move $s0, $v0 +.Ljp7F0ABD6C: +/* 0E08DC 7F0ABD6C 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E08E0 7F0ABD70 00000000 */ nop +/* 0E08E4 7F0ABD74 1040009F */ beqz $v0, .Ljp7F0ABFF4 +/* 0E08E8 7F0ABD78 24040001 */ li $a0, 1 +/* 0E08EC 7F0ABD7C 3C058004 */ lui $a1, %hi(D_80040B3C) # $a1, 0x8004 +/* 0E08F0 7F0ABD80 3C068004 */ lui $a2, %hi(D_80040B38) # $a2, 0x8004 +/* 0E08F4 7F0ABD84 3C078004 */ lui $a3, %hi(D_80040B34) # $a3, 0x8004 +/* 0E08F8 7F0ABD88 24E70B64 */ addiu $a3, %lo(D_80040B34) # addiu $a3, $a3, 0xb64 +/* 0E08FC 7F0ABD8C 24C60B68 */ addiu $a2, %lo(D_80040B38) # addiu $a2, $a2, 0xb68 +/* 0E0900 7F0ABD90 0FC2A891 */ jal sub_GAME_7F0A9684 +/* 0E0904 7F0ABD94 24A50B6C */ addiu $a1, %lo(D_80040B3C) # addiu $a1, $a1, 0xb6c +/* 0E0908 7F0ABD98 0FC1613C */ jal matrix_4x4_set_identity +/* 0E090C 7F0ABD9C 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0910 7F0ABDA0 3C018004 */ lui $at, %hi(D_80040B38) # $at, 0x8004 +/* 0E0914 7F0ABDA4 C4300B68 */ lwc1 $f16, %lo(D_80040B38)($at) +/* 0E0918 7F0ABDA8 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0E091C 7F0ABDAC C42484D0 */ lwc1 $f4, %lo(jpD_800484D0)($at) +/* 0E0920 7F0ABDB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0E0924 7F0ABDB4 44814000 */ mtc1 $at, $f8 +/* 0E0928 7F0ABDB8 46048182 */ mul.s $f6, $f16, $f4 +/* 0E092C 7F0ABDBC 3C028004 */ lui $v0, %hi(D_80040B34) # $v0, 0x8004 +/* 0E0930 7F0ABDC0 24420B64 */ addiu $v0, %lo(D_80040B34) # addiu $v0, $v0, 0xb64 +/* 0E0934 7F0ABDC4 C4520000 */ lwc1 $f18, ($v0) +/* 0E0938 7F0ABDC8 46083282 */ mul.s $f10, $f6, $f8 +/* 0E093C 7F0ABDCC 460A9400 */ add.s $f16, $f18, $f10 +/* 0E0940 7F0ABDD0 E4500000 */ swc1 $f16, ($v0) +/* 0E0944 7F0ABDD4 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0E0948 7F0ABDD8 C44C0000 */ lwc1 $f12, ($v0) +/* 0E094C 7F0ABDDC 3C018004 */ lui $at, %hi(D_80040B34) # $at, 0x8004 +/* 0E0950 7F0ABDE0 E4200B64 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0E0954 7F0ABDE4 C42C0B64 */ lwc1 $f12, %lo(D_80040B34)($at) +/* 0E0958 7F0ABDE8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0E095C 7F0ABDEC 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0960 7F0ABDF0 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) # $t4, 0x8004 +/* 0E0964 7F0ABDF4 8D8C09D8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0E0968 7F0ABDF8 11800016 */ beqz $t4, .Ljp7F0ABE54 +/* 0E096C 7F0ABDFC 3C0D8004 */ lui $t5, %hi(D_80040998) # $t5, 0x8004 +/* 0E0970 7F0ABE00 8DAD09C8 */ lw $t5, %lo(D_80040998)($t5) +/* 0E0974 7F0ABE04 24010001 */ li $at, 1 +/* 0E0978 7F0ABE08 15A10012 */ bne $t5, $at, .Ljp7F0ABE54 +/* 0E097C 7F0ABE0C 00000000 */ nop +/* 0E0980 7F0ABE10 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0984 7F0ABE14 24040001 */ li $a0, 1 +/* 0E0988 7F0ABE18 44822000 */ mtc1 $v0, $f4 +/* 0E098C 7F0ABE1C 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E0990 7F0ABE20 C42C0B60 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0E0994 7F0ABE24 468021A0 */ cvt.s.w $f6, $f4 +/* 0E0998 7F0ABE28 3C018006 */ lui $at, %hi(D_80058560) # $at, 0x8006 +/* 0E099C 7F0ABE2C C42885A0 */ lwc1 $f8, %lo(D_80058560)($at) +/* 0E09A0 7F0ABE30 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0E09A4 7F0ABE34 44815000 */ mtc1 $at, $f10 +/* 0E09A8 7F0ABE38 3C064080 */ lui $a2, 0x4080 +/* 0E09AC 7F0ABE3C 46083482 */ mul.s $f18, $f6, $f8 +/* 0E09B0 7F0ABE40 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E09B4 7F0ABE44 460A9383 */ div.s $f14, $f18, $f10 +/* 0E09B8 7F0ABE48 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09BC 7F0ABE4C 10000008 */ b .Ljp7F0ABE70 +/* 0E09C0 7F0ABE50 E4200B60 */ swc1 $f0, %lo(D_80040B30)($at) +.Ljp7F0ABE54: +/* 0E09C4 7F0ABE54 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09C8 7F0ABE58 44807000 */ mtc1 $zero, $f14 +/* 0E09CC 7F0ABE5C C42C0B60 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0E09D0 7F0ABE60 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E09D4 7F0ABE64 3C064080 */ lui $a2, 0x4080 +/* 0E09D8 7F0ABE68 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09DC 7F0ABE6C E4200B60 */ swc1 $f0, %lo(D_80040B30)($at) +.Ljp7F0ABE70: +/* 0E09E0 7F0ABE70 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09E4 7F0ABE74 C4300B60 */ lwc1 $f16, %lo(D_80040B30)($at) +/* 0E09E8 7F0ABE78 3C018006 */ lui $at, %hi(D_80058564) # $at, 0x8006 +/* 0E09EC 7F0ABE7C C42685A4 */ lwc1 $f6, %lo(D_80058564)($at) +/* 0E09F0 7F0ABE80 46008107 */ neg.s $f4, $f16 +/* 0E09F4 7F0ABE84 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E09F8 7F0ABE88 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 0E09FC 7F0ABE8C 46062301 */ sub.s $f12, $f4, $f6 +/* 0E0A00 7F0ABE90 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0A04 7F0ABE94 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0A08 7F0ABE98 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A0C 7F0ABE9C 27A6043C */ addiu $a2, $sp, 0x43c +/* 0E0A10 7F0ABEA0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0A14 7F0ABEA4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E0A18 7F0ABEA8 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A1C 7F0ABEAC 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0E0A20 7F0ABEB0 27A40370 */ addiu $a0, $sp, 0x370 +/* 0E0A24 7F0ABEB4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0E0A28 7F0ABEB8 27A5043C */ addiu $a1, $sp, 0x43c +/* 0E0A2C 7F0ABEBC 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0A30 7F0ABEC0 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0E0A34 7F0ABEC4 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A38 7F0ABEC8 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0E0A3C 7F0ABECC 3C018006 */ lui $at, %hi(D_80058568) # $at, 0x8006 +/* 0E0A40 7F0ABED0 C42085A8 */ lwc1 $f0, %lo(D_80058568)($at) +/* 0E0A44 7F0ABED4 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0E0A48 7F0ABED8 44801000 */ mtc1 $zero, $f2 +/* 0E0A4C 7F0ABEDC 44814000 */ mtc1 $at, $f8 +/* 0E0A50 7F0ABEE0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E0A54 7F0ABEE4 44819000 */ mtc1 $at, $f18 +/* 0E0A58 7F0ABEE8 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0E0A5C 7F0ABEEC 44050000 */ mfc1 $a1, $f0 +/* 0E0A60 7F0ABEF0 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0E0A64 7F0ABEF4 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0E0A68 7F0ABEF8 3C074200 */ lui $a3, 0x4200 +/* 0E0A6C 7F0ABEFC E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E0A70 7F0ABF00 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0E0A74 7F0ABF04 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0E0A78 7F0ABF08 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E0A7C 7F0ABF0C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E0A80 7F0ABF10 0FC166ED */ jal sub_GAME_7F059694 +/* 0E0A84 7F0ABF14 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0E0A88 7F0ABF18 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0E0A8C 7F0ABF1C 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0E0A90 7F0ABF20 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A94 7F0ABF24 27A6037C */ addiu $a2, $sp, 0x37c +/* 0E0A98 7F0ABF28 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0E0A9C 7F0ABF2C 44815000 */ mtc1 $at, $f10 +/* 0E0AA0 7F0ABF30 3C018006 */ lui $at, %hi(D_8005856C) # $at, 0x8006 +/* 0E0AA4 7F0ABF34 C43085AC */ lwc1 $f16, %lo(D_8005856C)($at) +/* 0E0AA8 7F0ABF38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E0AAC 7F0ABF3C 44812000 */ mtc1 $at, $f4 +/* 0E0AB0 7F0ABF40 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0E0AB4 7F0ABF44 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0E0AB8 7F0ABF48 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0ABC 7F0ABF4C 27A5036E */ addiu $a1, $sp, 0x36e +/* 0E0AC0 7F0ABF50 3C06424A */ lui $a2, 0x424a +/* 0E0AC4 7F0ABF54 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0E0AC8 7F0ABF58 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0E0ACC 7F0ABF5C 0C003FBC */ jal guPerspective +/* 0E0AD0 7F0ABF60 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0E0AD4 7F0ABF64 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0E0AD8 7F0ABF68 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0E0ADC 7F0ABF6C 02001825 */ move $v1, $s0 +/* 0E0AE0 7F0ABF70 AC680000 */ sw $t0, ($v1) +/* 0E0AE4 7F0ABF74 AFA30044 */ sw $v1, 0x44($sp) +/* 0E0AE8 7F0ABF78 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0AEC 7F0ABF7C 0C003A3C */ jal osVirtualToPhysical +/* 0E0AF0 7F0ABF80 26100008 */ addiu $s0, $s0, 8 +/* 0E0AF4 7F0ABF84 8FA30044 */ lw $v1, 0x44($sp) +/* 0E0AF8 7F0ABF88 02002025 */ move $a0, $s0 +/* 0E0AFC 7F0ABF8C 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0E0B00 7F0ABF90 AC620004 */ sw $v0, 4($v1) +/* 0E0B04 7F0ABF94 3C038004 */ lui $v1, %hi(D_80040B04) # $v1, 0x8004 +/* 0E0B08 7F0ABF98 8C630B34 */ lw $v1, %lo(D_80040B04)($v1) +/* 0E0B0C 7F0ABF9C 00408025 */ move $s0, $v0 +/* 0E0B10 7F0ABFA0 02002025 */ move $a0, $s0 +/* 0E0B14 7F0ABFA4 286100E0 */ slti $at, $v1, 0xe0 +/* 0E0B18 7F0ABFA8 1020000C */ beqz $at, .Ljp7F0ABFDC +/* 0E0B1C 7F0ABFAC 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0B20 7F0ABFB0 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E0B24 7F0ABFB4 27A902E2 */ addiu $t1, $sp, 0x2e2 +/* 0E0B28 7F0ABFB8 AFA90014 */ sw $t1, 0x14($sp) +/* 0E0B2C 7F0ABFBC AFAF0010 */ sw $t7, 0x10($sp) +/* 0E0B30 7F0ABFC0 00402025 */ move $a0, $v0 +/* 0E0B34 7F0ABFC4 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0B38 7F0ABFC8 2466FFFA */ addiu $a2, $v1, -6 +/* 0E0B3C 7F0ABFCC 0FC18EB2 */ jal sub_GAME_7F06359C +/* 0E0B40 7F0ABFD0 24070001 */ li $a3, 1 +/* 0E0B44 7F0ABFD4 10000007 */ b .Ljp7F0ABFF4 +/* 0E0B48 7F0ABFD8 00408025 */ move $s0, $v0 +.Ljp7F0ABFDC: +/* 0E0B4C 7F0ABFDC 27AE02E2 */ addiu $t6, $sp, 0x2e2 +/* 0E0B50 7F0ABFE0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E0B54 7F0ABFE4 24060001 */ li $a2, 1 +/* 0E0B58 7F0ABFE8 0FC19224 */ jal sub_GAME_7F064364 +/* 0E0B5C 7F0ABFEC 27A7004C */ addiu $a3, $sp, 0x4c +/* 0E0B60 7F0ABFF0 00408025 */ move $s0, $v0 +.Ljp7F0ABFF4: +/* 0E0B64 7F0ABFF4 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E0B68 7F0ABFF8 00000000 */ nop +/* 0E0B6C 7F0ABFFC 10400005 */ beqz $v0, .Ljp7F0AC014 +/* 0E0B70 7F0AC000 00000000 */ nop +/* 0E0B74 7F0AC004 0FC2ACE2 */ jal sub_GAME_7F0AA7C8 +/* 0E0B78 7F0AC008 02002025 */ move $a0, $s0 +/* 0E0B7C 7F0AC00C 10000004 */ b .Ljp7F0AC020 +/* 0E0B80 7F0AC010 00408025 */ move $s0, $v0 +.Ljp7F0AC014: +/* 0E0B84 7F0AC014 0FC2A99E */ jal sub_GAME_7F0A9AB8 +/* 0E0B88 7F0AC018 02002025 */ move $a0, $s0 +/* 0E0B8C 7F0AC01C 00408025 */ move $s0, $v0 +.Ljp7F0AC020: +/* 0E0B90 7F0AC020 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E0B94 7F0AC024 02001025 */ move $v0, $s0 +/* 0E0B98 7F0AC028 8FB00030 */ lw $s0, 0x30($sp) +/* 0E0B9C 7F0AC02C 03E00008 */ jr $ra +/* 0E0BA0 7F0AC030 27BD0540 */ addiu $sp, $sp, 0x540 +) +#endif + +#endif + + + + + +void zero_D_80040998(void) { + D_80040998 = 0; +} + +void zero_D_8004099C(void) { + D_8004099C = 0; +} + +void zero_D_800409A4(void) { + D_800409A4 = 0; +} + +u32 return_arg0_7F0AB4B0(u32 uParm1) { + return uParm1; +} + + + + + +#ifdef NONMATCHING +void proc_7F0AB4B8(u32 param_1,u32 param_2) +{ + ?32 sp5C; + ?32 sp58; + s32 sp54; + s32 sp50; + s32 pFirstFontTableSmall; + s32 pSecondFontTableSmall; + s32 DL; + s32 txtptr; + ?32 phi_s1; + ?32 phi_s1_2; + + + DL = sub_GAME_7F0A714C(param_1, param_2, 0); + if (check_watch_page_transistion_running() != 1) + { + pFirstFontTableSmall = (s32) ptrFirstFontTableSmall; + pSecondFontTableSmall = (s32) ptrSecondFontTableSmall; + microcode_constructor(sub_GAME_7F0AADC0(DL)); + txtptr = get_textptr_for_textID(0xac32); + sp5C = 0x40; + sp58 = 0x1a; + phi_s1 = 0xff00b0; + if (D_80040998 == 0) + { + phi_s1 = 0xa0ffa0f0; + if (watch_soundrelated_maybe != 0) + { + phi_s1 = -1; + } + } + sub_GAME_7F0AE98C(&sp50, &sp54, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, 0); + if ((watch_soundrelated_maybe != 0) && (D_80040998 == 0)) + { + jp_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1, 0x7000a0, (s32) (sp54 + 1), sp50, 0, 0); + } + else + { + en_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1, sp54, sp50, 0, 0); + } + sub_GAME_7F0A97D0(DL); + txtptr = get_textptr_for_textID(0xac33); + if (controllerCheckDualControllerTypesAllowed() != 0) + { + txtptr = get_textptr_for_textID(0xac34); + } + sp5C = 0x40; + sp58 = 0x2b; + if (D_80040998 == 1) + { + phi_s1_2 = 0xa0ffa0f0; + if (watch_soundrelated_maybe != 0) + { + phi_s1_2 = -1; + } + } + sub_GAME_7F0AE98C(&sp50, &sp54, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, 0); + if ((watch_soundrelated_maybe != 0) && (D_80040998 == 1)) + { + jp_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1_2, 0x7000a0, (s32) (sp54 + 1), sp50, 0, 0); + } + else + { + en_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1_2, sp54, sp50, 0, 0); + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB4B8 +/* 0DFFE8 7F0AB4B8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0DFFEC 7F0AB4BC AFBF0044 */ sw $ra, 0x44($sp) +/* 0DFFF0 7F0AB4C0 AFB20040 */ sw $s2, 0x40($sp) +/* 0DFFF4 7F0AB4C4 AFB1003C */ sw $s1, 0x3c($sp) +/* 0DFFF8 7F0AB4C8 AFB00038 */ sw $s0, 0x38($sp) +/* 0DFFFC 7F0AB4CC 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E0000 7F0AB4D0 00003025 */ move $a2, $zero +/* 0E0004 7F0AB4D4 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0008 7F0AB4D8 00408025 */ move $s0, $v0 +/* 0E000C 7F0AB4DC 24010001 */ li $at, 1 +/* 0E0010 7F0AB4E0 504100AA */ beql $v0, $at, .L7F0AB78C +/* 0E0014 7F0AB4E4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0E0018 7F0AB4E8 0FC2AB70 */ jal sub_GAME_7F0AADC0 +/* 0E001C 7F0AB4EC 02002025 */ move $a0, $s0 +/* 0E0020 7F0AB4F0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0E0024 7F0AB4F4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0E0028 7F0AB4F8 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0E002C 7F0AB4FC 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0E0030 7F0AB500 00402025 */ move $a0, $v0 +/* 0E0034 7F0AB504 AFAE004C */ sw $t6, 0x4c($sp) +/* 0E0038 7F0AB508 0FC2B366 */ jal microcode_constructor +/* 0E003C 7F0AB50C AFAF0048 */ sw $t7, 0x48($sp) +/* 0E0040 7F0AB510 00408025 */ move $s0, $v0 +/* 0E0044 7F0AB514 0FC30776 */ jal get_textptr_for_textID +/* 0E0048 7F0AB518 3404AC32 */ li $a0, 44082 +/* 0E004C 7F0AB51C 3C088004 */ lui $t0, %hi(D_80040998) +/* 0E0050 7F0AB520 8D080998 */ lw $t0, %lo(D_80040998)($t0) +/* 0E0054 7F0AB524 24180040 */ li $t8, 64 +/* 0E0058 7F0AB528 2419001A */ li $t9, 26 +/* 0E005C 7F0AB52C 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E0060 7F0AB530 00409025 */ move $s2, $v0 +/* 0E0064 7F0AB534 AFB8005C */ sw $t8, 0x5c($sp) +/* 0E0068 7F0AB538 AFB90058 */ sw $t9, 0x58($sp) +/* 0E006C 7F0AB53C 15000008 */ bnez $t0, .L7F0AB560 +/* 0E0070 7F0AB540 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E0074 7F0AB544 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0E0078 7F0AB548 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0E007C 7F0AB54C 3C11A0FF */ lui $s1, (0xA0FFA0F0 >> 16) # lui $s1, 0xa0ff +/* 0E0080 7F0AB550 3631A0F0 */ ori $s1, (0xA0FFA0F0 & 0xFFFF) # ori $s1, $s1, 0xa0f0 +/* 0E0084 7F0AB554 51200003 */ beql $t1, $zero, .L7F0AB564 +/* 0E0088 7F0AB558 8FAA004C */ lw $t2, 0x4c($sp) +/* 0E008C 7F0AB55C 2411FFFF */ li $s1, -1 +.L7F0AB560: +/* 0E0090 7F0AB560 8FAA004C */ lw $t2, 0x4c($sp) +.L7F0AB564: +/* 0E0094 7F0AB564 27A40050 */ addiu $a0, $sp, 0x50 +/* 0E0098 7F0AB568 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E009C 7F0AB56C 02403025 */ move $a2, $s2 +/* 0E00A0 7F0AB570 8FA70048 */ lw $a3, 0x48($sp) +/* 0E00A4 7F0AB574 AFA00014 */ sw $zero, 0x14($sp) +/* 0E00A8 7F0AB578 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E00AC 7F0AB57C AFAA0010 */ sw $t2, 0x10($sp) +/* 0E00B0 7F0AB580 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0E00B4 7F0AB584 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0E00B8 7F0AB588 3C0C8004 */ lui $t4, %hi(D_80040998) +/* 0E00BC 7F0AB58C 02002025 */ move $a0, $s0 +/* 0E00C0 7F0AB590 1160001B */ beqz $t3, .L7F0AB600 +/* 0E00C4 7F0AB594 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E00C8 7F0AB598 8D8C0998 */ lw $t4, %lo(D_80040998)($t4) +/* 0E00CC 7F0AB59C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E00D0 7F0AB5A0 02403825 */ move $a3, $s2 +/* 0E00D4 7F0AB5A4 15800016 */ bnez $t4, .L7F0AB600 +/* 0E00D8 7F0AB5A8 8FAD0048 */ lw $t5, 0x48($sp) +/* 0E00DC 7F0AB5AC 8FB80054 */ lw $t8, 0x54($sp) +/* 0E00E0 7F0AB5B0 8FAE004C */ lw $t6, 0x4c($sp) +/* 0E00E4 7F0AB5B4 8FA80050 */ lw $t0, 0x50($sp) +/* 0E00E8 7F0AB5B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0E00EC 7F0AB5BC 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0E00F0 7F0AB5C0 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0E00F4 7F0AB5C4 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E00F8 7F0AB5C8 27190001 */ addiu $t9, $t8, 1 +/* 0E00FC 7F0AB5CC AFB90020 */ sw $t9, 0x20($sp) +/* 0E0100 7F0AB5D0 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E0104 7F0AB5D4 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E0108 7F0AB5D8 02002025 */ move $a0, $s0 +/* 0E010C 7F0AB5DC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0110 7F0AB5E0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0E0114 7F0AB5E4 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0118 7F0AB5E8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0E011C 7F0AB5EC AFAE0014 */ sw $t6, 0x14($sp) +/* 0E0120 7F0AB5F0 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0124 7F0AB5F4 AFA80024 */ sw $t0, 0x24($sp) +/* 0E0128 7F0AB5F8 10000012 */ b .L7F0AB644 +/* 0E012C 7F0AB5FC 00408025 */ move $s0, $v0 +.L7F0AB600: +/* 0E0130 7F0AB600 8FA90048 */ lw $t1, 0x48($sp) +/* 0E0134 7F0AB604 8FAA004C */ lw $t2, 0x4c($sp) +/* 0E0138 7F0AB608 8FAB0054 */ lw $t3, 0x54($sp) +/* 0E013C 7F0AB60C 8FAC0050 */ lw $t4, 0x50($sp) +/* 0E0140 7F0AB610 AFB10018 */ sw $s1, 0x18($sp) +/* 0E0144 7F0AB614 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E0148 7F0AB618 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E014C 7F0AB61C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0150 7F0AB620 02403825 */ move $a3, $s2 +/* 0E0154 7F0AB624 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0158 7F0AB628 AFA00028 */ sw $zero, 0x28($sp) +/* 0E015C 7F0AB62C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0160 7F0AB630 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0164 7F0AB634 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E0168 7F0AB638 0FC2B6AF */ jal en_text_write_stuff +/* 0E016C 7F0AB63C AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0170 7F0AB640 00408025 */ move $s0, $v0 +.L7F0AB644: +/* 0E0174 7F0AB644 0FC2A5F4 */ jal sub_GAME_7F0A97D0 +/* 0E0178 7F0AB648 02002025 */ move $a0, $s0 +/* 0E017C 7F0AB64C 00408025 */ move $s0, $v0 +/* 0E0180 7F0AB650 0FC30776 */ jal get_textptr_for_textID +/* 0E0184 7F0AB654 3404AC33 */ li $a0, 44083 +/* 0E0188 7F0AB658 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0E018C 7F0AB65C 00409025 */ move $s2, $v0 +/* 0E0190 7F0AB660 10400004 */ beqz $v0, .L7F0AB674 +/* 0E0194 7F0AB664 00000000 */ nop +/* 0E0198 7F0AB668 0FC30776 */ jal get_textptr_for_textID +/* 0E019C 7F0AB66C 3404AC34 */ li $a0, 44084 +/* 0E01A0 7F0AB670 00409025 */ move $s2, $v0 +.L7F0AB674: +/* 0E01A4 7F0AB674 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0E01A8 7F0AB678 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0E01AC 7F0AB67C 240D0040 */ li $t5, 64 +/* 0E01B0 7F0AB680 240E002B */ li $t6, 43 +/* 0E01B4 7F0AB684 24010001 */ li $at, 1 +/* 0E01B8 7F0AB688 AFAD005C */ sw $t5, 0x5c($sp) +/* 0E01BC 7F0AB68C 15E10008 */ bne $t7, $at, .L7F0AB6B0 +/* 0E01C0 7F0AB690 AFAE0058 */ sw $t6, 0x58($sp) +/* 0E01C4 7F0AB694 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0E01C8 7F0AB698 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0E01CC 7F0AB69C 3C11A0FF */ lui $s1, (0xA0FFA0F0 >> 16) # lui $s1, 0xa0ff +/* 0E01D0 7F0AB6A0 3631A0F0 */ ori $s1, (0xA0FFA0F0 & 0xFFFF) # ori $s1, $s1, 0xa0f0 +/* 0E01D4 7F0AB6A4 53000003 */ beql $t8, $zero, .L7F0AB6B4 +/* 0E01D8 7F0AB6A8 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E01DC 7F0AB6AC 2411FFFF */ li $s1, -1 +.L7F0AB6B0: +/* 0E01E0 7F0AB6B0 8FB9004C */ lw $t9, 0x4c($sp) +.L7F0AB6B4: +/* 0E01E4 7F0AB6B4 27A40050 */ addiu $a0, $sp, 0x50 +/* 0E01E8 7F0AB6B8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E01EC 7F0AB6BC 02403025 */ move $a2, $s2 +/* 0E01F0 7F0AB6C0 8FA70048 */ lw $a3, 0x48($sp) +/* 0E01F4 7F0AB6C4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E01F8 7F0AB6C8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E01FC 7F0AB6CC AFB90010 */ sw $t9, 0x10($sp) +/* 0E0200 7F0AB6D0 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E0204 7F0AB6D4 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E0208 7F0AB6D8 3C098004 */ lui $t1, %hi(D_80040998) +/* 0E020C 7F0AB6DC 02002025 */ move $a0, $s0 +/* 0E0210 7F0AB6E0 1100001A */ beqz $t0, .L7F0AB74C +/* 0E0214 7F0AB6E4 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0218 7F0AB6E8 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0E021C 7F0AB6EC 24010001 */ li $at, 1 +/* 0E0220 7F0AB6F0 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0224 7F0AB6F4 15210015 */ bne $t1, $at, .L7F0AB74C +/* 0E0228 7F0AB6F8 02403825 */ move $a3, $s2 +/* 0E022C 7F0AB6FC 8FAD0054 */ lw $t5, 0x54($sp) +/* 0E0230 7F0AB700 8FAA0048 */ lw $t2, 0x48($sp) +/* 0E0234 7F0AB704 8FAB004C */ lw $t3, 0x4c($sp) +/* 0E0238 7F0AB708 8FAF0050 */ lw $t7, 0x50($sp) +/* 0E023C 7F0AB70C 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0E0240 7F0AB710 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0E0244 7F0AB714 25AE0001 */ addiu $t6, $t5, 1 +/* 0E0248 7F0AB718 AFAE0020 */ sw $t6, 0x20($sp) +/* 0E024C 7F0AB71C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E0250 7F0AB720 02002025 */ move $a0, $s0 +/* 0E0254 7F0AB724 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0258 7F0AB728 AFB10018 */ sw $s1, 0x18($sp) +/* 0E025C 7F0AB72C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0260 7F0AB730 AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0264 7F0AB734 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E0268 7F0AB738 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E026C 7F0AB73C 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0270 7F0AB740 AFAF0024 */ sw $t7, 0x24($sp) +/* 0E0274 7F0AB744 10000010 */ b .L7F0AB788 +/* 0E0278 7F0AB748 00408025 */ move $s0, $v0 +.L7F0AB74C: +/* 0E027C 7F0AB74C 8FB80048 */ lw $t8, 0x48($sp) +/* 0E0280 7F0AB750 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E0284 7F0AB754 8FA80054 */ lw $t0, 0x54($sp) +/* 0E0288 7F0AB758 8FA90050 */ lw $t1, 0x50($sp) +/* 0E028C 7F0AB75C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0290 7F0AB760 02403825 */ move $a3, $s2 +/* 0E0294 7F0AB764 AFB10018 */ sw $s1, 0x18($sp) +/* 0E0298 7F0AB768 AFA00024 */ sw $zero, 0x24($sp) +/* 0E029C 7F0AB76C AFA00028 */ sw $zero, 0x28($sp) +/* 0E02A0 7F0AB770 AFB80010 */ sw $t8, 0x10($sp) +/* 0E02A4 7F0AB774 AFB90014 */ sw $t9, 0x14($sp) +/* 0E02A8 7F0AB778 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E02AC 7F0AB77C 0FC2B6AF */ jal en_text_write_stuff +/* 0E02B0 7F0AB780 AFA90020 */ sw $t1, 0x20($sp) +/* 0E02B4 7F0AB784 00408025 */ move $s0, $v0 +.L7F0AB788: +/* 0E02B8 7F0AB788 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0AB78C: +/* 0E02BC 7F0AB78C 02001025 */ move $v0, $s0 +/* 0E02C0 7F0AB790 8FB00038 */ lw $s0, 0x38($sp) +/* 0E02C4 7F0AB794 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E02C8 7F0AB798 8FB20040 */ lw $s2, 0x40($sp) +/* 0E02CC 7F0AB79C 03E00008 */ jr $ra +/* 0E02D0 7F0AB7A0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + + +void set_pparam1toparam2_disablejoylr_playsfx(u32 *param_1,u32 param_2) +{ + *param_1 = param_2; + set_controlstick_lr_disabled(); + play_sfx_a1(ptr_sfx_buf,0x2b,NULL); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AB7D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB7D8 +/* 0E0308 7F0AB7D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E030C 7F0AB7DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0E0310 7F0AB7E0 AFA40018 */ sw $a0, 0x18($sp) +/* 0E0314 7F0AB7E4 00002025 */ move $a0, $zero +/* 0E0318 7F0AB7E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0E031C 7F0AB7EC 24050222 */ li $a1, 546 +/* 0E0320 7F0AB7F0 14400004 */ bnez $v0, .L7F0AB804 +/* 0E0324 7F0AB7F4 00000000 */ nop +/* 0E0328 7F0AB7F8 0FC293EC */ jal sub_GAME_7F0A4FB0 +/* 0E032C 7F0AB7FC 00000000 */ nop +/* 0E0330 7F0AB800 1040001A */ beqz $v0, .L7F0AB86C +.L7F0AB804: +/* 0E0334 7F0AB804 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0E0338 7F0AB808 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0E033C 7F0AB80C 8FAF0018 */ lw $t7, 0x18($sp) +/* 0E0340 7F0AB810 3C198004 */ lui $t9, %hi(D_80040A7C) +/* 0E0344 7F0AB814 11C00015 */ beqz $t6, .L7F0AB86C +/* 0E0348 7F0AB818 000FC080 */ sll $t8, $t7, 2 +/* 0E034C 7F0AB81C 030FC023 */ subu $t8, $t8, $t7 +/* 0E0350 7F0AB820 0018C080 */ sll $t8, $t8, 2 +/* 0E0354 7F0AB824 27390A7C */ addiu $t9, %lo(D_80040A7C) # addiu $t9, $t9, 0xa7c +/* 0E0358 7F0AB828 03191021 */ addu $v0, $t8, $t9 +/* 0E035C 7F0AB82C 8C430008 */ lw $v1, 8($v0) +/* 0E0360 7F0AB830 24010001 */ li $at, 1 +/* 0E0364 7F0AB834 24440008 */ addiu $a0, $v0, 8 +/* 0E0368 7F0AB838 54610006 */ bnel $v1, $at, .L7F0AB854 +/* 0E036C 7F0AB83C 24010002 */ li $at, 2 +/* 0E0370 7F0AB840 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0374 7F0AB844 00002825 */ move $a1, $zero +/* 0E0378 7F0AB848 1000002C */ b .L7F0AB8FC +/* 0E037C 7F0AB84C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0380 7F0AB850 24010002 */ li $at, 2 +.L7F0AB854: +/* 0E0384 7F0AB854 14610028 */ bne $v1, $at, .L7F0AB8F8 +/* 0E0388 7F0AB858 24440008 */ addiu $a0, $v0, 8 +/* 0E038C 7F0AB85C 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0390 7F0AB860 24050001 */ li $a1, 1 +/* 0E0394 7F0AB864 10000025 */ b .L7F0AB8FC +/* 0E0398 7F0AB868 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB86C: +/* 0E039C 7F0AB86C 00002025 */ move $a0, $zero +/* 0E03A0 7F0AB870 0C0030EB */ jal get_controller_buttons_pressed +/* 0E03A4 7F0AB874 24050111 */ li $a1, 273 +/* 0E03A8 7F0AB878 14400004 */ bnez $v0, .L7F0AB88C +/* 0E03AC 7F0AB87C 00000000 */ nop +/* 0E03B0 7F0AB880 0FC293FB */ jal sub_GAME_7F0A4FEC +/* 0E03B4 7F0AB884 00000000 */ nop +/* 0E03B8 7F0AB888 1040001B */ beqz $v0, .L7F0AB8F8 +.L7F0AB88C: +/* 0E03BC 7F0AB88C 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E03C0 7F0AB890 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E03C4 7F0AB894 8FA90018 */ lw $t1, 0x18($sp) +/* 0E03C8 7F0AB898 3C0B8004 */ lui $t3, %hi(D_80040A7C) +/* 0E03CC 7F0AB89C 11000016 */ beqz $t0, .L7F0AB8F8 +/* 0E03D0 7F0AB8A0 00095080 */ sll $t2, $t1, 2 +/* 0E03D4 7F0AB8A4 01495023 */ subu $t2, $t2, $t1 +/* 0E03D8 7F0AB8A8 000A5080 */ sll $t2, $t2, 2 +/* 0E03DC 7F0AB8AC 256B0A7C */ addiu $t3, %lo(D_80040A7C) # addiu $t3, $t3, 0xa7c +/* 0E03E0 7F0AB8B0 014B1021 */ addu $v0, $t2, $t3 +/* 0E03E4 7F0AB8B4 8C430008 */ lw $v1, 8($v0) +/* 0E03E8 7F0AB8B8 24440008 */ addiu $a0, $v0, 8 +/* 0E03EC 7F0AB8BC 24010001 */ li $at, 1 +/* 0E03F0 7F0AB8C0 14600005 */ bnez $v1, .L7F0AB8D8 +/* 0E03F4 7F0AB8C4 00000000 */ nop +/* 0E03F8 7F0AB8C8 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E03FC 7F0AB8CC 24050001 */ li $a1, 1 +/* 0E0400 7F0AB8D0 1000000A */ b .L7F0AB8FC +/* 0E0404 7F0AB8D4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB8D8: +/* 0E0408 7F0AB8D8 54610008 */ bnel $v1, $at, .L7F0AB8FC +/* 0E040C 7F0AB8DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0410 7F0AB8E0 944C0006 */ lhu $t4, 6($v0) +/* 0E0414 7F0AB8E4 24440008 */ addiu $a0, $v0, 8 +/* 0E0418 7F0AB8E8 51800004 */ beql $t4, $zero, .L7F0AB8FC +/* 0E041C 7F0AB8EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0420 7F0AB8F0 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0424 7F0AB8F4 24050002 */ li $a1, 2 +.L7F0AB8F8: +/* 0E0428 7F0AB8F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB8FC: +/* 0E042C 7F0AB8FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E0430 7F0AB900 03E00008 */ jr $ra +/* 0E0434 7F0AB904 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AB908(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB908 +/* 0E0438 7F0AB908 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0E043C 7F0AB90C 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0E0440 7F0AB910 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0444 7F0AB914 3C020080 */ lui $v0, 0x80 +/* 0E0448 7F0AB918 344A0080 */ ori $t2, $v0, 0x80 +/* 0E044C 7F0AB91C AFBF0034 */ sw $ra, 0x34($sp) +/* 0E0450 7F0AB920 AFA40060 */ sw $a0, 0x60($sp) +/* 0E0454 7F0AB924 AFA50064 */ sw $a1, 0x64($sp) +/* 0E0458 7F0AB928 01404825 */ move $t1, $t2 +/* 0E045C 7F0AB92C 10600003 */ beqz $v1, .L7F0AB93C +/* 0E0460 7F0AB930 AFAA0054 */ sw $t2, 0x54($sp) +/* 0E0464 7F0AB934 10000002 */ b .L7F0AB940 +/* 0E0468 7F0AB938 240500AA */ li $a1, 170 +.L7F0AB93C: +/* 0E046C 7F0AB93C 240500B4 */ li $a1, 180 +.L7F0AB940: +/* 0E0470 7F0AB940 10600004 */ beqz $v1, .L7F0AB954 +/* 0E0474 7F0AB944 240F00E1 */ li $t7, 225 +/* 0E0478 7F0AB948 240E00DC */ li $t6, 220 +/* 0E047C 7F0AB94C 10000002 */ b .L7F0AB958 +/* 0E0480 7F0AB950 AFAE004C */ sw $t6, 0x4c($sp) +.L7F0AB954: +/* 0E0484 7F0AB954 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0AB958: +/* 0E0488 7F0AB958 10E0000D */ beqz $a3, .L7F0AB990 +/* 0E048C 7F0AB95C 00065880 */ sll $t3, $a2, 2 +/* 0E0490 7F0AB960 24030001 */ li $v1, 1 +/* 0E0494 7F0AB964 10E30020 */ beq $a3, $v1, .L7F0AB9E8 +/* 0E0498 7F0AB968 00067080 */ sll $t6, $a2, 2 +/* 0E049C 7F0AB96C 24010002 */ li $at, 2 +/* 0E04A0 7F0AB970 10E10032 */ beq $a3, $at, .L7F0ABA3C +/* 0E04A4 7F0AB974 0006C080 */ sll $t8, $a2, 2 +/* 0E04A8 7F0AB978 0306C023 */ subu $t8, $t8, $a2 +/* 0E04AC 7F0AB97C 3C198004 */ lui $t9, %hi(D_80040A7C) +/* 0E04B0 7F0AB980 27390A7C */ addiu $t9, %lo(D_80040A7C) # addiu $t9, $t9, 0xa7c +/* 0E04B4 7F0AB984 0018C080 */ sll $t8, $t8, 2 +/* 0E04B8 7F0AB988 1000004B */ b .L7F0ABAB8 +/* 0E04BC 7F0AB98C 03194021 */ addu $t0, $t8, $t9 +.L7F0AB990: +/* 0E04C0 7F0AB990 01665823 */ subu $t3, $t3, $a2 +/* 0E04C4 7F0AB994 3C0C8004 */ lui $t4, %hi(D_80040A7C) +/* 0E04C8 7F0AB998 258C0A7C */ addiu $t4, %lo(D_80040A7C) # addiu $t4, $t4, 0xa7c +/* 0E04CC 7F0AB99C 000B5880 */ sll $t3, $t3, 2 +/* 0E04D0 7F0AB9A0 016C4021 */ addu $t0, $t3, $t4 +/* 0E04D4 7F0AB9A4 8D020008 */ lw $v0, 8($t0) +/* 0E04D8 7F0AB9A8 24030001 */ li $v1, 1 +/* 0E04DC 7F0AB9AC 14400004 */ bnez $v0, .L7F0AB9C0 +/* 0E04E0 7F0AB9B0 00000000 */ nop +/* 0E04E4 7F0AB9B4 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0E04E8 7F0AB9B8 1000003F */ b .L7F0ABAB8 +/* 0E04EC 7F0AB9BC 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +.L7F0AB9C0: +/* 0E04F0 7F0AB9C0 14620004 */ bne $v1, $v0, .L7F0AB9D4 +/* 0E04F4 7F0AB9C4 24010002 */ li $at, 2 +/* 0E04F8 7F0AB9C8 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0E04FC 7F0AB9CC 1000003A */ b .L7F0ABAB8 +/* 0E0500 7F0AB9D0 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +.L7F0AB9D4: +/* 0E0504 7F0AB9D4 14410038 */ bne $v0, $at, .L7F0ABAB8 +/* 0E0508 7F0AB9D8 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0E050C 7F0AB9DC 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0E0510 7F0AB9E0 10000035 */ b .L7F0ABAB8 +/* 0E0514 7F0AB9E4 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0AB9E8: +/* 0E0518 7F0AB9E8 01C67023 */ subu $t6, $t6, $a2 +/* 0E051C 7F0AB9EC 3C0F8004 */ lui $t7, %hi(D_80040A7C) +/* 0E0520 7F0AB9F0 25EF0A7C */ addiu $t7, %lo(D_80040A7C) # addiu $t7, $t7, 0xa7c +/* 0E0524 7F0AB9F4 000E7080 */ sll $t6, $t6, 2 +/* 0E0528 7F0AB9F8 01CF4021 */ addu $t0, $t6, $t7 +/* 0E052C 7F0AB9FC 8D020008 */ lw $v0, 8($t0) +/* 0E0530 7F0ABA00 14400004 */ bnez $v0, .L7F0ABA14 +/* 0E0534 7F0ABA04 00000000 */ nop +/* 0E0538 7F0ABA08 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0E053C 7F0ABA0C 1000002A */ b .L7F0ABAB8 +/* 0E0540 7F0ABA10 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +.L7F0ABA14: +/* 0E0544 7F0ABA14 14620004 */ bne $v1, $v0, .L7F0ABA28 +/* 0E0548 7F0ABA18 24010002 */ li $at, 2 +/* 0E054C 7F0ABA1C 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0E0550 7F0ABA20 10000025 */ b .L7F0ABAB8 +/* 0E0554 7F0ABA24 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +.L7F0ABA28: +/* 0E0558 7F0ABA28 14410023 */ bne $v0, $at, .L7F0ABAB8 +/* 0E055C 7F0ABA2C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0E0560 7F0ABA30 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0E0564 7F0ABA34 10000020 */ b .L7F0ABAB8 +/* 0E0568 7F0ABA38 AFB80054 */ sw $t8, 0x54($sp) +.L7F0ABA3C: +/* 0E056C 7F0ABA3C 00C02025 */ move $a0, $a2 +/* 0E0570 7F0ABA40 AFA50050 */ sw $a1, 0x50($sp) +/* 0E0574 7F0ABA44 AFA60068 */ sw $a2, 0x68($sp) +/* 0E0578 7F0ABA48 AFA9005C */ sw $t1, 0x5c($sp) +/* 0E057C 7F0ABA4C 0FC2ADF6 */ jal sub_GAME_7F0AB7D8 +/* 0E0580 7F0ABA50 AFAA0058 */ sw $t2, 0x58($sp) +/* 0E0584 7F0ABA54 8FA60068 */ lw $a2, 0x68($sp) +/* 0E0588 7F0ABA58 3C0B8004 */ lui $t3, %hi(D_80040A7C) +/* 0E058C 7F0ABA5C 256B0A7C */ addiu $t3, %lo(D_80040A7C) # addiu $t3, $t3, 0xa7c +/* 0E0590 7F0ABA60 0006C880 */ sll $t9, $a2, 2 +/* 0E0594 7F0ABA64 0326C823 */ subu $t9, $t9, $a2 +/* 0E0598 7F0ABA68 0019C880 */ sll $t9, $t9, 2 +/* 0E059C 7F0ABA6C 032B4021 */ addu $t0, $t9, $t3 +/* 0E05A0 7F0ABA70 8D020008 */ lw $v0, 8($t0) +/* 0E05A4 7F0ABA74 24030001 */ li $v1, 1 +/* 0E05A8 7F0ABA78 8FA50050 */ lw $a1, 0x50($sp) +/* 0E05AC 7F0ABA7C 8FA9005C */ lw $t1, 0x5c($sp) +/* 0E05B0 7F0ABA80 14400004 */ bnez $v0, .L7F0ABA94 +/* 0E05B4 7F0ABA84 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E05B8 7F0ABA88 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0E05BC 7F0ABA8C 1000000A */ b .L7F0ABAB8 +/* 0E05C0 7F0ABA90 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +.L7F0ABA94: +/* 0E05C4 7F0ABA94 14620004 */ bne $v1, $v0, .L7F0ABAA8 +/* 0E05C8 7F0ABA98 24010002 */ li $at, 2 +/* 0E05CC 7F0ABA9C 3C0AA0FF */ lui $t2, (0xA0FFA0F0 >> 16) # lui $t2, 0xa0ff +/* 0E05D0 7F0ABAA0 10000005 */ b .L7F0ABAB8 +/* 0E05D4 7F0ABAA4 354AA0F0 */ ori $t2, (0xA0FFA0F0 & 0xFFFF) # ori $t2, $t2, 0xa0f0 +.L7F0ABAA8: +/* 0E05D8 7F0ABAA8 14410003 */ bne $v0, $at, .L7F0ABAB8 +/* 0E05DC 7F0ABAAC 3C0CA0FF */ lui $t4, (0xA0FFA0F0 >> 16) # lui $t4, 0xa0ff +/* 0E05E0 7F0ABAB0 358CA0F0 */ ori $t4, (0xA0FFA0F0 & 0xFFFF) # ori $t4, $t4, 0xa0f0 +/* 0E05E4 7F0ABAB4 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0ABAB8: +/* 0E05E8 7F0ABAB8 950D0006 */ lhu $t5, 6($t0) +/* 0E05EC 7F0ABABC 15A0000D */ bnez $t5, .L7F0ABAF4 +/* 0E05F0 7F0ABAC0 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0E05F4 7F0ABAC4 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0E05F8 7F0ABAC8 240500C8 */ li $a1, 200 +/* 0E05FC 7F0ABACC 240F00FA */ li $t7, 250 +/* 0E0600 7F0ABAD0 10600003 */ beqz $v1, .L7F0ABAE0 +/* 0E0604 7F0ABAD4 240E00FA */ li $t6, 250 +/* 0E0608 7F0ABAD8 10000001 */ b .L7F0ABAE0 +/* 0E060C 7F0ABADC 240500BE */ li $a1, 190 +.L7F0ABAE0: +/* 0E0610 7F0ABAE0 50600004 */ beql $v1, $zero, .L7F0ABAF4 +/* 0E0614 7F0ABAE4 AFAF004C */ sw $t7, 0x4c($sp) +/* 0E0618 7F0ABAE8 10000002 */ b .L7F0ABAF4 +/* 0E061C 7F0ABAEC AFAE004C */ sw $t6, 0x4c($sp) +/* 0E0620 7F0ABAF0 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0ABAF4: +/* 0E0624 7F0ABAF4 95040002 */ lhu $a0, 2($t0) +/* 0E0628 7F0ABAF8 AFA50050 */ sw $a1, 0x50($sp) +/* 0E062C 7F0ABAFC AFA8003C */ sw $t0, 0x3c($sp) +/* 0E0630 7F0ABB00 AFA9005C */ sw $t1, 0x5c($sp) +/* 0E0634 7F0ABB04 0FC30776 */ jal get_textptr_for_textID +/* 0E0638 7F0ABB08 AFAA0058 */ sw $t2, 0x58($sp) +/* 0E063C 7F0ABB0C 8FA9005C */ lw $t1, 0x5c($sp) +/* 0E0640 7F0ABB10 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0E0644 7F0ABB14 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E0648 7F0ABB18 2418FFFF */ li $t8, -1 +/* 0E064C 7F0ABB1C 24190001 */ li $t9, 1 +/* 0E0650 7F0ABB20 AFB9001C */ sw $t9, 0x1c($sp) +/* 0E0654 7F0ABB24 AFB80018 */ sw $t8, 0x18($sp) +/* 0E0658 7F0ABB28 AFAB0024 */ sw $t3, 0x24($sp) +/* 0E065C 7F0ABB2C 8FA50050 */ lw $a1, 0x50($sp) +/* 0E0660 7F0ABB30 8FA40060 */ lw $a0, 0x60($sp) +/* 0E0664 7F0ABB34 8FA60064 */ lw $a2, 0x64($sp) +/* 0E0668 7F0ABB38 00403825 */ move $a3, $v0 +/* 0E066C 7F0ABB3C AFA00014 */ sw $zero, 0x14($sp) +/* 0E0670 7F0ABB40 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0674 7F0ABB44 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0678 7F0ABB48 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E067C 7F0ABB4C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0680 7F0ABB50 8FA8003C */ lw $t0, 0x3c($sp) +/* 0E0684 7F0ABB54 AFA20060 */ sw $v0, 0x60($sp) +/* 0E0688 7F0ABB58 0FC30776 */ jal get_textptr_for_textID +/* 0E068C 7F0ABB5C 95040004 */ lhu $a0, 4($t0) +/* 0E0690 7F0ABB60 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E0694 7F0ABB64 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0E0698 7F0ABB68 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E069C 7F0ABB6C 240CFFFF */ li $t4, -1 +/* 0E06A0 7F0ABB70 240D0001 */ li $t5, 1 +/* 0E06A4 7F0ABB74 AFAD001C */ sw $t5, 0x1c($sp) +/* 0E06A8 7F0ABB78 AFAC0018 */ sw $t4, 0x18($sp) +/* 0E06AC 7F0ABB7C AFAE0024 */ sw $t6, 0x24($sp) +/* 0E06B0 7F0ABB80 8FA40060 */ lw $a0, 0x60($sp) +/* 0E06B4 7F0ABB84 8FA5004C */ lw $a1, 0x4c($sp) +/* 0E06B8 7F0ABB88 8FA60064 */ lw $a2, 0x64($sp) +/* 0E06BC 7F0ABB8C 00403825 */ move $a3, $v0 +/* 0E06C0 7F0ABB90 AFA00014 */ sw $zero, 0x14($sp) +/* 0E06C4 7F0ABB94 AFA00020 */ sw $zero, 0x20($sp) +/* 0E06C8 7F0ABB98 AFA00028 */ sw $zero, 0x28($sp) +/* 0E06CC 7F0ABB9C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E06D0 7F0ABBA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E06D4 7F0ABBA4 8FA8003C */ lw $t0, 0x3c($sp) +/* 0E06D8 7F0ABBA8 AFA20060 */ sw $v0, 0x60($sp) +/* 0E06DC 7F0ABBAC 95030006 */ lhu $v1, 6($t0) +/* 0E06E0 7F0ABBB0 50600016 */ beql $v1, $zero, .L7F0ABC0C +/* 0E06E4 7F0ABBB4 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E06E8 7F0ABBB8 0FC30776 */ jal get_textptr_for_textID +/* 0E06EC 7F0ABBBC 00602025 */ move $a0, $v1 +/* 0E06F0 7F0ABBC0 8FAF0054 */ lw $t7, 0x54($sp) +/* 0E06F4 7F0ABBC4 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0E06F8 7F0ABBC8 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E06FC 7F0ABBCC 2418FFFF */ li $t8, -1 +/* 0E0700 7F0ABBD0 24190001 */ li $t9, 1 +/* 0E0704 7F0ABBD4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0E0708 7F0ABBD8 AFB80018 */ sw $t8, 0x18($sp) +/* 0E070C 7F0ABBDC AFAB0024 */ sw $t3, 0x24($sp) +/* 0E0710 7F0ABBE0 8FA40060 */ lw $a0, 0x60($sp) +/* 0E0714 7F0ABBE4 2405010E */ li $a1, 270 +/* 0E0718 7F0ABBE8 8FA60064 */ lw $a2, 0x64($sp) +/* 0E071C 7F0ABBEC 00403825 */ move $a3, $v0 +/* 0E0720 7F0ABBF0 AFA00014 */ sw $zero, 0x14($sp) +/* 0E0724 7F0ABBF4 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0728 7F0ABBF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0E072C 7F0ABBFC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E0730 7F0ABC00 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E0734 7F0ABC04 AFA20060 */ sw $v0, 0x60($sp) +/* 0E0738 7F0ABC08 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0ABC0C: +/* 0E073C 7F0ABC0C 8FA20060 */ lw $v0, 0x60($sp) +/* 0E0740 7F0ABC10 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0E0744 7F0ABC14 03E00008 */ jr $ra +/* 0E0748 7F0ABC18 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ABC1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ABC1C +/* 0E074C 7F0ABC1C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0750 7F0ABC20 AFBF005C */ sw $ra, 0x5c($sp) +/* 0E0754 7F0ABC24 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E0758 7F0ABC28 AFB70054 */ sw $s7, 0x54($sp) +/* 0E075C 7F0ABC2C AFB60050 */ sw $s6, 0x50($sp) +/* 0E0760 7F0ABC30 AFB5004C */ sw $s5, 0x4c($sp) +/* 0E0764 7F0ABC34 AFB40048 */ sw $s4, 0x48($sp) +/* 0E0768 7F0ABC38 AFB30044 */ sw $s3, 0x44($sp) +/* 0E076C 7F0ABC3C AFB20040 */ sw $s2, 0x40($sp) +/* 0E0770 7F0ABC40 AFB1003C */ sw $s1, 0x3c($sp) +/* 0E0774 7F0ABC44 0FC2B366 */ jal microcode_constructor +/* 0E0778 7F0ABC48 AFB00038 */ sw $s0, 0x38($sp) +/* 0E077C 7F0ABC4C 3C138004 */ lui $s3, %hi(D_80040A7C) +/* 0E0780 7F0ABC50 3C170070 */ lui $s7, (0x007000A0 >> 16) # lui $s7, 0x70 +/* 0E0784 7F0ABC54 3C168004 */ lui $s6, %hi(watch_soundrelated_maybe) +/* 0E0788 7F0ABC58 3C158004 */ lui $s5, %hi(D_8004099C) +/* 0E078C 7F0ABC5C 3C140030 */ lui $s4, (0x003000B0 >> 16) # lui $s4, 0x30 +/* 0E0790 7F0ABC60 00409025 */ move $s2, $v0 +/* 0E0794 7F0ABC64 369400B0 */ ori $s4, (0x003000B0 & 0xFFFF) # ori $s4, $s4, 0xb0 +/* 0E0798 7F0ABC68 26B5099C */ addiu $s5, %lo(D_8004099C) # addiu $s5, $s5, 0x99c +/* 0E079C 7F0ABC6C 26D609A8 */ addiu $s6, %lo(watch_soundrelated_maybe) # addiu $s6, $s6, 0x9a8 +/* 0E07A0 7F0ABC70 36F700A0 */ ori $s7, (0x007000A0 & 0xFFFF) # ori $s7, $s7, 0xa0 +/* 0E07A4 7F0ABC74 26730A7C */ addiu $s3, %lo(D_80040A7C) # addiu $s3, $s3, 0xa7c +/* 0E07A8 7F0ABC78 00008825 */ move $s1, $zero +/* 0E07AC 7F0ABC7C 24100050 */ li $s0, 80 +/* 0E07B0 7F0ABC80 241E0008 */ li $fp, 8 +.L7F0ABC84: +/* 0E07B4 7F0ABC84 8EAF0000 */ lw $t7, ($s5) +/* 0E07B8 7F0ABC88 262E0002 */ addiu $t6, $s1, 2 +/* 0E07BC 7F0ABC8C 15CF0033 */ bne $t6, $t7, .L7F0ABD5C +/* 0E07C0 7F0ABC90 00000000 */ nop +/* 0E07C4 7F0ABC94 8ED80000 */ lw $t8, ($s6) +/* 0E07C8 7F0ABC98 13000018 */ beqz $t8, .L7F0ABCFC +/* 0E07CC 7F0ABC9C 00000000 */ nop +/* 0E07D0 7F0ABCA0 0FC30776 */ jal get_textptr_for_textID +/* 0E07D4 7F0ABCA4 96640000 */ lhu $a0, ($s3) +/* 0E07D8 7F0ABCA8 2419FFFF */ li $t9, -1 +/* 0E07DC 7F0ABCAC 24080001 */ li $t0, 1 +/* 0E07E0 7F0ABCB0 AFA80014 */ sw $t0, 0x14($sp) +/* 0E07E4 7F0ABCB4 AFB90010 */ sw $t9, 0x10($sp) +/* 0E07E8 7F0ABCB8 02402025 */ move $a0, $s2 +/* 0E07EC 7F0ABCBC 24050040 */ li $a1, 64 +/* 0E07F0 7F0ABCC0 02003025 */ move $a2, $s0 +/* 0E07F4 7F0ABCC4 00403825 */ move $a3, $v0 +/* 0E07F8 7F0ABCC8 AFB70018 */ sw $s7, 0x18($sp) +/* 0E07FC 7F0ABCCC AFA0001C */ sw $zero, 0x1c($sp) +/* 0E0800 7F0ABCD0 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0804 7F0ABCD4 AFB40024 */ sw $s4, 0x24($sp) +/* 0E0808 7F0ABCD8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E080C 7F0ABCDC AFA00028 */ sw $zero, 0x28($sp) +/* 0E0810 7F0ABCE0 00402025 */ move $a0, $v0 +/* 0E0814 7F0ABCE4 02002825 */ move $a1, $s0 +/* 0E0818 7F0ABCE8 02203025 */ move $a2, $s1 +/* 0E081C 7F0ABCEC 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E0820 7F0ABCF0 24070002 */ li $a3, 2 +/* 0E0824 7F0ABCF4 10000030 */ b .L7F0ABDB8 +/* 0E0828 7F0ABCF8 00409025 */ move $s2, $v0 +.L7F0ABCFC: +/* 0E082C 7F0ABCFC 0FC30776 */ jal get_textptr_for_textID +/* 0E0830 7F0ABD00 96640000 */ lhu $a0, ($s3) +/* 0E0834 7F0ABD04 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0E0838 7F0ABD08 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0E083C 7F0ABD0C 240AFFFF */ li $t2, -1 +/* 0E0840 7F0ABD10 AFAA0018 */ sw $t2, 0x18($sp) +/* 0E0844 7F0ABD14 AFA90010 */ sw $t1, 0x10($sp) +/* 0E0848 7F0ABD18 02402025 */ move $a0, $s2 +/* 0E084C 7F0ABD1C 24050040 */ li $a1, 64 +/* 0E0850 7F0ABD20 02003025 */ move $a2, $s0 +/* 0E0854 7F0ABD24 00403825 */ move $a3, $v0 +/* 0E0858 7F0ABD28 AFA00014 */ sw $zero, 0x14($sp) +/* 0E085C 7F0ABD2C AFA0001C */ sw $zero, 0x1c($sp) +/* 0E0860 7F0ABD30 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0864 7F0ABD34 AFB40024 */ sw $s4, 0x24($sp) +/* 0E0868 7F0ABD38 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E086C 7F0ABD3C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0870 7F0ABD40 00402025 */ move $a0, $v0 +/* 0E0874 7F0ABD44 02002825 */ move $a1, $s0 +/* 0E0878 7F0ABD48 02203025 */ move $a2, $s1 +/* 0E087C 7F0ABD4C 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E0880 7F0ABD50 24070001 */ li $a3, 1 +/* 0E0884 7F0ABD54 10000018 */ b .L7F0ABDB8 +/* 0E0888 7F0ABD58 00409025 */ move $s2, $v0 +.L7F0ABD5C: +/* 0E088C 7F0ABD5C 0FC30776 */ jal get_textptr_for_textID +/* 0E0890 7F0ABD60 96640000 */ lhu $a0, ($s3) +/* 0E0894 7F0ABD64 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0E0898 7F0ABD68 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E089C 7F0ABD6C 240CFFFF */ li $t4, -1 +/* 0E08A0 7F0ABD70 AFAC0018 */ sw $t4, 0x18($sp) +/* 0E08A4 7F0ABD74 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E08A8 7F0ABD78 02402025 */ move $a0, $s2 +/* 0E08AC 7F0ABD7C 24050040 */ li $a1, 64 +/* 0E08B0 7F0ABD80 02003025 */ move $a2, $s0 +/* 0E08B4 7F0ABD84 00403825 */ move $a3, $v0 +/* 0E08B8 7F0ABD88 AFA00014 */ sw $zero, 0x14($sp) +/* 0E08BC 7F0ABD8C AFA0001C */ sw $zero, 0x1c($sp) +/* 0E08C0 7F0ABD90 AFA00020 */ sw $zero, 0x20($sp) +/* 0E08C4 7F0ABD94 AFB40024 */ sw $s4, 0x24($sp) +/* 0E08C8 7F0ABD98 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E08CC 7F0ABD9C AFA00028 */ sw $zero, 0x28($sp) +/* 0E08D0 7F0ABDA0 00402025 */ move $a0, $v0 +/* 0E08D4 7F0ABDA4 02002825 */ move $a1, $s0 +/* 0E08D8 7F0ABDA8 02203025 */ move $a2, $s1 +/* 0E08DC 7F0ABDAC 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E08E0 7F0ABDB0 00003825 */ move $a3, $zero +/* 0E08E4 7F0ABDB4 00409025 */ move $s2, $v0 +.L7F0ABDB8: +/* 0E08E8 7F0ABDB8 26310001 */ addiu $s1, $s1, 1 +/* 0E08EC 7F0ABDBC 2673000C */ addiu $s3, $s3, 0xc +/* 0E08F0 7F0ABDC0 163EFFB0 */ bne $s1, $fp, .L7F0ABC84 +/* 0E08F4 7F0ABDC4 2610000F */ addiu $s0, $s0, 0xf +/* 0E08F8 7F0ABDC8 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E08FC 7F0ABDCC 02401025 */ move $v0, $s2 +/* 0E0900 7F0ABDD0 8FB20040 */ lw $s2, 0x40($sp) +/* 0E0904 7F0ABDD4 8FB00038 */ lw $s0, 0x38($sp) +/* 0E0908 7F0ABDD8 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E090C 7F0ABDDC 8FB30044 */ lw $s3, 0x44($sp) +/* 0E0910 7F0ABDE0 8FB40048 */ lw $s4, 0x48($sp) +/* 0E0914 7F0ABDE4 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E0918 7F0ABDE8 8FB60050 */ lw $s6, 0x50($sp) +/* 0E091C 7F0ABDEC 8FB70054 */ lw $s7, 0x54($sp) +/* 0E0920 7F0ABDF0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E0924 7F0ABDF4 03E00008 */ jr $ra +/* 0E0928 7F0ABDF8 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ABDFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ABDFC +/* 0E092C 7F0ABDFC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0930 7F0ABE00 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E0934 7F0ABE04 AFB00038 */ sw $s0, 0x38($sp) +/* 0E0938 7F0ABE08 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E093C 7F0ABE0C 00003025 */ move $a2, $zero +/* 0E0940 7F0ABE10 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0944 7F0ABE14 00408025 */ move $s0, $v0 +/* 0E0948 7F0ABE18 24010001 */ li $at, 1 +/* 0E094C 7F0ABE1C 504100AE */ beql $v0, $at, .L7F0AC0D8 +/* 0E0950 7F0ABE20 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E0954 7F0ABE24 0FC2A472 */ jal sub_GAME_7F0A91C8 +/* 0E0958 7F0ABE28 02002025 */ move $a0, $s0 +/* 0E095C 7F0ABE2C 0FC2A3FB */ jal sub_GAME_7F0A8FEC +/* 0E0960 7F0ABE30 00402025 */ move $a0, $v0 +/* 0E0964 7F0ABE34 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0E0968 7F0ABE38 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0E096C 7F0ABE3C 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0E0970 7F0ABE40 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0E0974 7F0ABE44 00402025 */ move $a0, $v0 +/* 0E0978 7F0ABE48 AFAE0044 */ sw $t6, 0x44($sp) +/* 0E097C 7F0ABE4C 0FC2B366 */ jal microcode_constructor +/* 0E0980 7F0ABE50 AFAF0040 */ sw $t7, 0x40($sp) +/* 0E0984 7F0ABE54 00408025 */ move $s0, $v0 +/* 0E0988 7F0ABE58 0FC30776 */ jal get_textptr_for_textID +/* 0E098C 7F0ABE5C 3404AC35 */ li $a0, 44085 +/* 0E0990 7F0ABE60 3C088004 */ lui $t0, %hi(D_8004099C) +/* 0E0994 7F0ABE64 8D08099C */ lw $t0, %lo(D_8004099C)($t0) +/* 0E0998 7F0ABE68 24180040 */ li $t8, 64 +/* 0E099C 7F0ABE6C 24190025 */ li $t9, 37 +/* 0E09A0 7F0ABE70 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E09A4 7F0ABE74 00403025 */ move $a2, $v0 +/* 0E09A8 7F0ABE78 AFB80054 */ sw $t8, 0x54($sp) +/* 0E09AC 7F0ABE7C AFB90050 */ sw $t9, 0x50($sp) +/* 0E09B0 7F0ABE80 15000008 */ bnez $t0, .L7F0ABEA4 +/* 0E09B4 7F0ABE84 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E09B8 7F0ABE88 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0E09BC 7F0ABE8C 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0E09C0 7F0ABE90 3C03A0FF */ lui $v1, (0xA0FFA0F0 >> 16) # lui $v1, 0xa0ff +/* 0E09C4 7F0ABE94 3463A0F0 */ ori $v1, (0xA0FFA0F0 & 0xFFFF) # ori $v1, $v1, 0xa0f0 +/* 0E09C8 7F0ABE98 51200003 */ beql $t1, $zero, .L7F0ABEA8 +/* 0E09CC 7F0ABE9C 8FAA0044 */ lw $t2, 0x44($sp) +/* 0E09D0 7F0ABEA0 2403FFFF */ li $v1, -1 +.L7F0ABEA4: +/* 0E09D4 7F0ABEA4 8FAA0044 */ lw $t2, 0x44($sp) +.L7F0ABEA8: +/* 0E09D8 7F0ABEA8 27A40048 */ addiu $a0, $sp, 0x48 +/* 0E09DC 7F0ABEAC 27A5004C */ addiu $a1, $sp, 0x4c +/* 0E09E0 7F0ABEB0 8FA70040 */ lw $a3, 0x40($sp) +/* 0E09E4 7F0ABEB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E09E8 7F0ABEB8 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E09EC 7F0ABEBC AFA60058 */ sw $a2, 0x58($sp) +/* 0E09F0 7F0ABEC0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E09F4 7F0ABEC4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E09F8 7F0ABEC8 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0E09FC 7F0ABECC 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0E0A00 7F0ABED0 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0A04 7F0ABED4 8FA70058 */ lw $a3, 0x58($sp) +/* 0E0A08 7F0ABED8 1160001C */ beqz $t3, .L7F0ABF4C +/* 0E0A0C 7F0ABEDC 3C0C8004 */ lui $t4, %hi(D_8004099C) +/* 0E0A10 7F0ABEE0 8D8C099C */ lw $t4, %lo(D_8004099C)($t4) +/* 0E0A14 7F0ABEE4 02002025 */ move $a0, $s0 +/* 0E0A18 7F0ABEE8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0A1C 7F0ABEEC 15800017 */ bnez $t4, .L7F0ABF4C +/* 0E0A20 7F0ABEF0 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0A24 7F0ABEF4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0E0A28 7F0ABEF8 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0A2C 7F0ABEFC 8FAD0040 */ lw $t5, 0x40($sp) +/* 0E0A30 7F0ABF00 8FAE0044 */ lw $t6, 0x44($sp) +/* 0E0A34 7F0ABF04 8FA80048 */ lw $t0, 0x48($sp) +/* 0E0A38 7F0ABF08 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E0A3C 7F0ABF0C 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0E0A40 7F0ABF10 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0E0A44 7F0ABF14 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E0A48 7F0ABF18 27190001 */ addiu $t9, $t8, 1 +/* 0E0A4C 7F0ABF1C AFB90020 */ sw $t9, 0x20($sp) +/* 0E0A50 7F0ABF20 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0A54 7F0ABF24 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E0A58 7F0ABF28 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0A5C 7F0ABF2C AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0A60 7F0ABF30 AFAD0010 */ sw $t5, 0x10($sp) +/* 0E0A64 7F0ABF34 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E0A68 7F0ABF38 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0A6C 7F0ABF3C AFA80024 */ sw $t0, 0x24($sp) +/* 0E0A70 7F0ABF40 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0A74 7F0ABF44 10000015 */ b .L7F0ABF9C +/* 0E0A78 7F0ABF48 00408025 */ move $s0, $v0 +.L7F0ABF4C: +/* 0E0A7C 7F0ABF4C AFA30018 */ sw $v1, 0x18($sp) +/* 0E0A80 7F0ABF50 8FA90040 */ lw $t1, 0x40($sp) +/* 0E0A84 7F0ABF54 8FAA0044 */ lw $t2, 0x44($sp) +/* 0E0A88 7F0ABF58 8FAB004C */ lw $t3, 0x4c($sp) +/* 0E0A8C 7F0ABF5C 8FAC0048 */ lw $t4, 0x48($sp) +/* 0E0A90 7F0ABF60 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E0A94 7F0ABF64 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E0A98 7F0ABF68 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0A9C 7F0ABF6C 02002025 */ move $a0, $s0 +/* 0E0AA0 7F0ABF70 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0AA4 7F0ABF74 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0AA8 7F0ABF78 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0AAC 7F0ABF7C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0AB0 7F0ABF80 AFA90010 */ sw $t1, 0x10($sp) +/* 0E0AB4 7F0ABF84 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0AB8 7F0ABF88 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E0ABC 7F0ABF8C 0FC2B6AF */ jal en_text_write_stuff +/* 0E0AC0 7F0ABF90 AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0AC4 7F0ABF94 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0AC8 7F0ABF98 00408025 */ move $s0, $v0 +.L7F0ABF9C: +/* 0E0ACC 7F0ABF9C 3404AC36 */ li $a0, 44086 +/* 0E0AD0 7F0ABFA0 0FC30776 */ jal get_textptr_for_textID +/* 0E0AD4 7F0ABFA4 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0AD8 7F0ABFA8 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0E0ADC 7F0ABFAC 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0E0AE0 7F0ABFB0 240D0040 */ li $t5, 64 +/* 0E0AE4 7F0ABFB4 240E003B */ li $t6, 59 +/* 0E0AE8 7F0ABFB8 24010001 */ li $at, 1 +/* 0E0AEC 7F0ABFBC 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0AF0 7F0ABFC0 00403025 */ move $a2, $v0 +/* 0E0AF4 7F0ABFC4 AFAD0054 */ sw $t5, 0x54($sp) +/* 0E0AF8 7F0ABFC8 15E10008 */ bne $t7, $at, .L7F0ABFEC +/* 0E0AFC 7F0ABFCC AFAE0050 */ sw $t6, 0x50($sp) +/* 0E0B00 7F0ABFD0 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0E0B04 7F0ABFD4 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0E0B08 7F0ABFD8 3C03A0FF */ lui $v1, (0xA0FFA0F0 >> 16) # lui $v1, 0xa0ff +/* 0E0B0C 7F0ABFDC 3463A0F0 */ ori $v1, (0xA0FFA0F0 & 0xFFFF) # ori $v1, $v1, 0xa0f0 +/* 0E0B10 7F0ABFE0 53000003 */ beql $t8, $zero, .L7F0ABFF0 +/* 0E0B14 7F0ABFE4 8FB90044 */ lw $t9, 0x44($sp) +/* 0E0B18 7F0ABFE8 2403FFFF */ li $v1, -1 +.L7F0ABFEC: +/* 0E0B1C 7F0ABFEC 8FB90044 */ lw $t9, 0x44($sp) +.L7F0ABFF0: +/* 0E0B20 7F0ABFF0 27A40048 */ addiu $a0, $sp, 0x48 +/* 0E0B24 7F0ABFF4 27A5004C */ addiu $a1, $sp, 0x4c +/* 0E0B28 7F0ABFF8 8FA70040 */ lw $a3, 0x40($sp) +/* 0E0B2C 7F0ABFFC AFA00014 */ sw $zero, 0x14($sp) +/* 0E0B30 7F0AC000 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0B34 7F0AC004 AFA60058 */ sw $a2, 0x58($sp) +/* 0E0B38 7F0AC008 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E0B3C 7F0AC00C AFB90010 */ sw $t9, 0x10($sp) +/* 0E0B40 7F0AC010 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E0B44 7F0AC014 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E0B48 7F0AC018 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0B4C 7F0AC01C 8FA70058 */ lw $a3, 0x58($sp) +/* 0E0B50 7F0AC020 11000019 */ beqz $t0, .L7F0AC088 +/* 0E0B54 7F0AC024 3C098004 */ lui $t1, %hi(D_8004099C) +/* 0E0B58 7F0AC028 8D29099C */ lw $t1, %lo(D_8004099C)($t1) +/* 0E0B5C 7F0AC02C 24010001 */ li $at, 1 +/* 0E0B60 7F0AC030 02002025 */ move $a0, $s0 +/* 0E0B64 7F0AC034 15210014 */ bne $t1, $at, .L7F0AC088 +/* 0E0B68 7F0AC038 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0B6C 7F0AC03C 8FAD004C */ lw $t5, 0x4c($sp) +/* 0E0B70 7F0AC040 8FAA0040 */ lw $t2, 0x40($sp) +/* 0E0B74 7F0AC044 8FAB0044 */ lw $t3, 0x44($sp) +/* 0E0B78 7F0AC048 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E0B7C 7F0AC04C 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0E0B80 7F0AC050 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0E0B84 7F0AC054 25AE0001 */ addiu $t6, $t5, 1 +/* 0E0B88 7F0AC058 AFAE0020 */ sw $t6, 0x20($sp) +/* 0E0B8C 7F0AC05C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E0B90 7F0AC060 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0B94 7F0AC064 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0B98 7F0AC068 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0B9C 7F0AC06C AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0BA0 7F0AC070 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E0BA4 7F0AC074 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E0BA8 7F0AC078 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0BAC 7F0AC07C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E0BB0 7F0AC080 10000011 */ b .L7F0AC0C8 +/* 0E0BB4 7F0AC084 00408025 */ move $s0, $v0 +.L7F0AC088: +/* 0E0BB8 7F0AC088 8FB80040 */ lw $t8, 0x40($sp) +/* 0E0BBC 7F0AC08C 8FB90044 */ lw $t9, 0x44($sp) +/* 0E0BC0 7F0AC090 8FA8004C */ lw $t0, 0x4c($sp) +/* 0E0BC4 7F0AC094 8FA90048 */ lw $t1, 0x48($sp) +/* 0E0BC8 7F0AC098 02002025 */ move $a0, $s0 +/* 0E0BCC 7F0AC09C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0BD0 7F0AC0A0 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0BD4 7F0AC0A4 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0BD8 7F0AC0A8 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0BDC 7F0AC0AC AFA00028 */ sw $zero, 0x28($sp) +/* 0E0BE0 7F0AC0B0 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0BE4 7F0AC0B4 AFB90014 */ sw $t9, 0x14($sp) +/* 0E0BE8 7F0AC0B8 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E0BEC 7F0AC0BC 0FC2B6AF */ jal en_text_write_stuff +/* 0E0BF0 7F0AC0C0 AFA90020 */ sw $t1, 0x20($sp) +/* 0E0BF4 7F0AC0C4 00408025 */ move $s0, $v0 +.L7F0AC0C8: +/* 0E0BF8 7F0AC0C8 0FC2AF07 */ jal sub_GAME_7F0ABC1C +/* 0E0BFC 7F0AC0CC 02002025 */ move $a0, $s0 +/* 0E0C00 7F0AC0D0 00408025 */ move $s0, $v0 +/* 0E0C04 7F0AC0D4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0AC0D8: +/* 0E0C08 7F0AC0D8 02001025 */ move $v0, $s0 +/* 0E0C0C 7F0AC0DC 8FB00038 */ lw $s0, 0x38($sp) +/* 0E0C10 7F0AC0E0 03E00008 */ jr $ra +/* 0E0C14 7F0AC0E4 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC0E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AC0E8 +/* 0E0C18 7F0AC0E8 90820000 */ lbu $v0, ($a0) +/* 0E0C1C 7F0AC0EC 00001825 */ move $v1, $zero +/* 0E0C20 7F0AC0F0 2405000A */ li $a1, 10 +/* 0E0C24 7F0AC0F4 10400008 */ beqz $v0, .L7F0AC118 +/* 0E0C28 7F0AC0F8 00000000 */ nop +.L7F0AC0FC: +/* 0E0C2C 7F0AC0FC 54A20003 */ bnel $a1, $v0, .L7F0AC10C +/* 0E0C30 7F0AC100 90820001 */ lbu $v0, 1($a0) +/* 0E0C34 7F0AC104 24630001 */ addiu $v1, $v1, 1 +/* 0E0C38 7F0AC108 90820001 */ lbu $v0, 1($a0) +.L7F0AC10C: +/* 0E0C3C 7F0AC10C 24840001 */ addiu $a0, $a0, 1 +/* 0E0C40 7F0AC110 1440FFFA */ bnez $v0, .L7F0AC0FC +/* 0E0C44 7F0AC114 00000000 */ nop +.L7F0AC118: +/* 0E0C48 7F0AC118 03E00008 */ jr $ra +/* 0E0C4C 7F0AC11C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC120(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AC120 +/* 0E0C50 7F0AC120 90820000 */ lbu $v0, ($a0) +/* 0E0C54 7F0AC124 00801825 */ move $v1, $a0 +/* 0E0C58 7F0AC128 2405000A */ li $a1, 10 +/* 0E0C5C 7F0AC12C 1040000C */ beqz $v0, .L7F0AC160 +/* 0E0C60 7F0AC130 00000000 */ nop +.L7F0AC134: +/* 0E0C64 7F0AC134 54A20007 */ bnel $a1, $v0, .L7F0AC154 +/* 0E0C68 7F0AC138 90820001 */ lbu $v0, 1($a0) +/* 0E0C6C 7F0AC13C 908E0001 */ lbu $t6, 1($a0) +/* 0E0C70 7F0AC140 24840001 */ addiu $a0, $a0, 1 +/* 0E0C74 7F0AC144 51C00003 */ beql $t6, $zero, .L7F0AC154 +/* 0E0C78 7F0AC148 90820001 */ lbu $v0, 1($a0) +/* 0E0C7C 7F0AC14C 00801825 */ move $v1, $a0 +/* 0E0C80 7F0AC150 90820001 */ lbu $v0, 1($a0) +.L7F0AC154: +/* 0E0C84 7F0AC154 24840001 */ addiu $a0, $a0, 1 +/* 0E0C88 7F0AC158 1440FFF6 */ bnez $v0, .L7F0AC134 +/* 0E0C8C 7F0AC15C 00000000 */ nop +.L7F0AC160: +/* 0E0C90 7F0AC160 03E00008 */ jr $ra +/* 0E0C94 7F0AC164 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC168(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058570*/ +glabel jpt_80058570 +.word .L7F0AC3B8 +.word .L7F0AC400 +.word .L7F0AC448 +.word .L7F0AC490 +.word .L7F0AC4D8 + +.text +glabel sub_GAME_7F0AC168 +/* 0E0C98 7F0AC168 27BDF218 */ addiu $sp, $sp, -0xde8 +/* 0E0C9C 7F0AC16C AFBF005C */ sw $ra, 0x5c($sp) +/* 0E0CA0 7F0AC170 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E0CA4 7F0AC174 AFB70054 */ sw $s7, 0x54($sp) +/* 0E0CA8 7F0AC178 AFB60050 */ sw $s6, 0x50($sp) +/* 0E0CAC 7F0AC17C AFB5004C */ sw $s5, 0x4c($sp) +/* 0E0CB0 7F0AC180 AFB40048 */ sw $s4, 0x48($sp) +/* 0E0CB4 7F0AC184 AFB30044 */ sw $s3, 0x44($sp) +/* 0E0CB8 7F0AC188 AFB20040 */ sw $s2, 0x40($sp) +/* 0E0CBC 7F0AC18C AFB1003C */ sw $s1, 0x3c($sp) +/* 0E0CC0 7F0AC190 AFB00038 */ sw $s0, 0x38($sp) +/* 0E0CC4 7F0AC194 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E0CC8 7F0AC198 00003025 */ move $a2, $zero +/* 0E0CCC 7F0AC19C 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0CD0 7F0AC1A0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0CD4 7F0AC1A4 24010001 */ li $at, 1 +/* 0E0CD8 7F0AC1A8 10410212 */ beq $v0, $at, .L7F0AC9F4 +/* 0E0CDC 7F0AC1AC 27AE0DAC */ addiu $t6, $sp, 0xdac +/* 0E0CE0 7F0AC1B0 3C0F8004 */ lui $t7, %hi(D_80040DFC) +/* 0E0CE4 7F0AC1B4 25EF0DFC */ addiu $t7, %lo(D_80040DFC) # addiu $t7, $t7, 0xdfc +/* 0E0CE8 7F0AC1B8 25F9003C */ addiu $t9, $t7, 0x3c +.L7F0AC1BC: +/* 0E0CEC 7F0AC1BC 8DE10000 */ lw $at, ($t7) +/* 0E0CF0 7F0AC1C0 25EF000C */ addiu $t7, $t7, 0xc +/* 0E0CF4 7F0AC1C4 25CE000C */ addiu $t6, $t6, 0xc +/* 0E0CF8 7F0AC1C8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 0E0CFC 7F0AC1CC 8DE1FFF8 */ lw $at, -8($t7) +/* 0E0D00 7F0AC1D0 ADC1FFF8 */ sw $at, -8($t6) +/* 0E0D04 7F0AC1D4 8DE1FFFC */ lw $at, -4($t7) +/* 0E0D08 7F0AC1D8 15F9FFF8 */ bne $t7, $t9, .L7F0AC1BC +/* 0E0D0C 7F0AC1DC ADC1FFFC */ sw $at, -4($t6) +/* 0E0D10 7F0AC1E0 3C098004 */ lui $t1, %hi(D_80040E38) +/* 0E0D14 7F0AC1E4 25290E38 */ addiu $t1, %lo(D_80040E38) # addiu $t1, $t1, 0xe38 +/* 0E0D18 7F0AC1E8 8D210000 */ lw $at, ($t1) +/* 0E0D1C 7F0AC1EC 8D2B0004 */ lw $t3, 4($t1) +/* 0E0D20 7F0AC1F0 27A80DA4 */ addiu $t0, $sp, 0xda4 +/* 0E0D24 7F0AC1F4 3C0D8004 */ lui $t5, %hi(D_80040E40) +/* 0E0D28 7F0AC1F8 25AD0E40 */ addiu $t5, %lo(D_80040E40) # addiu $t5, $t5, 0xe40 +/* 0E0D2C 7F0AC1FC 25B9003C */ addiu $t9, $t5, 0x3c +/* 0E0D30 7F0AC200 27AC0D68 */ addiu $t4, $sp, 0xd68 +/* 0E0D34 7F0AC204 AD010000 */ sw $at, ($t0) +/* 0E0D38 7F0AC208 AD0B0004 */ sw $t3, 4($t0) +.L7F0AC20C: +/* 0E0D3C 7F0AC20C 8DA10000 */ lw $at, ($t5) +/* 0E0D40 7F0AC210 25AD000C */ addiu $t5, $t5, 0xc +/* 0E0D44 7F0AC214 258C000C */ addiu $t4, $t4, 0xc +/* 0E0D48 7F0AC218 AD81FFF4 */ sw $at, -0xc($t4) +/* 0E0D4C 7F0AC21C 8DA1FFF8 */ lw $at, -8($t5) +/* 0E0D50 7F0AC220 AD81FFF8 */ sw $at, -8($t4) +/* 0E0D54 7F0AC224 8DA1FFFC */ lw $at, -4($t5) +/* 0E0D58 7F0AC228 15B9FFF8 */ bne $t5, $t9, .L7F0AC20C +/* 0E0D5C 7F0AC22C AD81FFFC */ sw $at, -4($t4) +/* 0E0D60 7F0AC230 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0E0D64 7F0AC234 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0E0D68 7F0AC238 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0E0D6C 7F0AC23C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0E0D70 7F0AC240 3C088005 */ lui $t0, %hi(D_800577C0) +/* 0E0D74 7F0AC244 250877C0 */ addiu $t0, %lo(D_800577C0) # addiu $t0, $t0, 0x77c0 +/* 0E0D78 7F0AC248 AFA00D54 */ sw $zero, 0xd54($sp) +/* 0E0D7C 7F0AC24C AFA00D50 */ sw $zero, 0xd50($sp) +/* 0E0D80 7F0AC250 25180BB8 */ addiu $t8, $t0, 0xbb8 +/* 0E0D84 7F0AC254 27AA0190 */ addiu $t2, $sp, 0x190 +/* 0E0D88 7F0AC258 AFAF0D4C */ sw $t7, 0xd4c($sp) +/* 0E0D8C 7F0AC25C AFAE0D48 */ sw $t6, 0xd48($sp) +.L7F0AC260: +/* 0E0D90 7F0AC260 8D010000 */ lw $at, ($t0) +/* 0E0D94 7F0AC264 2508000C */ addiu $t0, $t0, 0xc +/* 0E0D98 7F0AC268 254A000C */ addiu $t2, $t2, 0xc +/* 0E0D9C 7F0AC26C AD41FFF4 */ sw $at, -0xc($t2) +/* 0E0DA0 7F0AC270 8D01FFF8 */ lw $at, -8($t0) +/* 0E0DA4 7F0AC274 AD41FFF8 */ sw $at, -8($t2) +/* 0E0DA8 7F0AC278 8D01FFFC */ lw $at, -4($t0) +/* 0E0DAC 7F0AC27C 1518FFF8 */ bne $t0, $t8, .L7F0AC260 +/* 0E0DB0 7F0AC280 AD41FFFC */ sw $at, -4($t2) +/* 0E0DB4 7F0AC284 0FC30776 */ jal get_textptr_for_textID +/* 0E0DB8 7F0AC288 3404AC28 */ li $a0, 44072 +/* 0E0DBC 7F0AC28C AFA2016C */ sw $v0, 0x16c($sp) +/* 0E0DC0 7F0AC290 0FC30776 */ jal get_textptr_for_textID +/* 0E0DC4 7F0AC294 3404AC29 */ li $a0, 44073 +/* 0E0DC8 7F0AC298 AFA20168 */ sw $v0, 0x168($sp) +/* 0E0DCC 7F0AC29C 0FC30776 */ jal get_textptr_for_textID +/* 0E0DD0 7F0AC2A0 3404AC37 */ li $a0, 44087 +/* 0E0DD4 7F0AC2A4 AFA20164 */ sw $v0, 0x164($sp) +/* 0E0DD8 7F0AC2A8 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0DDC 7F0AC2AC 00002025 */ move $a0, $zero +/* 0E0DE0 7F0AC2B0 00408025 */ move $s0, $v0 +/* 0E0DE4 7F0AC2B4 0FC2B366 */ jal microcode_constructor +/* 0E0DE8 7F0AC2B8 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E0DEC 7F0AC2BC 8FB90D4C */ lw $t9, 0xd4c($sp) +/* 0E0DF0 7F0AC2C0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0DF4 7F0AC2C4 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E0DF8 7F0AC2C8 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E0DFC 7F0AC2CC 02003025 */ move $a2, $s0 +/* 0E0E00 7F0AC2D0 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0E04 7F0AC2D4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E0E08 7F0AC2D8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E0E0C 7F0AC2DC AFB90010 */ sw $t9, 0x10($sp) +/* 0E0E10 7F0AC2E0 8FA20D50 */ lw $v0, 0xd50($sp) +/* 0E0E14 7F0AC2E4 240D00AA */ li $t5, 170 +/* 0E0E18 7F0AC2E8 8FAB0D54 */ lw $t3, 0xd54($sp) +/* 0E0E1C 7F0AC2EC 01A21823 */ subu $v1, $t5, $v0 +/* 0E0E20 7F0AC2F0 04610003 */ bgez $v1, .L7F0AC300 +/* 0E0E24 7F0AC2F4 00036043 */ sra $t4, $v1, 1 +/* 0E0E28 7F0AC2F8 24610001 */ addiu $at, $v1, 1 +/* 0E0E2C 7F0AC2FC 00016043 */ sra $t4, $at, 1 +.L7F0AC300: +/* 0E0E30 7F0AC300 2583004B */ addiu $v1, $t4, 0x4b +/* 0E0E34 7F0AC304 240F001E */ li $t7, 30 +/* 0E0E38 7F0AC308 27B80D58 */ addiu $t8, $sp, 0xd58 +/* 0E0E3C 7F0AC30C 00627021 */ addu $t6, $v1, $v0 +/* 0E0E40 7F0AC310 2569001E */ addiu $t1, $t3, 0x1e +/* 0E0E44 7F0AC314 AFAF0D60 */ sw $t7, 0xd60($sp) +/* 0E0E48 7F0AC318 AFAE0D5C */ sw $t6, 0xd5c($sp) +/* 0E0E4C 7F0AC31C AFA90D58 */ sw $t1, 0xd58($sp) +/* 0E0E50 7F0AC320 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0E54 7F0AC324 AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E0E58 7F0AC328 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E0E5C 7F0AC32C 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E0E60 7F0AC330 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E0E64 7F0AC334 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 0E0E68 7F0AC338 27A70D5C */ addiu $a3, $sp, 0xd5c +/* 0E0E6C 7F0AC33C 8FA80D48 */ lw $t0, 0xd48($sp) +/* 0E0E70 7F0AC340 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E0E74 7F0AC344 8FAD0D50 */ lw $t5, 0xd50($sp) +/* 0E0E78 7F0AC348 8FAC0D54 */ lw $t4, 0xd54($sp) +/* 0E0E7C 7F0AC34C 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0E0E80 7F0AC350 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0E0E84 7F0AC354 AFB90018 */ sw $t9, 0x18($sp) +/* 0E0E88 7F0AC358 00402025 */ move $a0, $v0 +/* 0E0E8C 7F0AC35C 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E0E90 7F0AC360 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E0E94 7F0AC364 02003825 */ move $a3, $s0 +/* 0E0E98 7F0AC368 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0E9C 7F0AC36C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0EA0 7F0AC370 AFA80010 */ sw $t0, 0x10($sp) +/* 0E0EA4 7F0AC374 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0EA8 7F0AC378 AFAD001C */ sw $t5, 0x1c($sp) +/* 0E0EAC 7F0AC37C 0FC2B6AF */ jal en_text_write_stuff +/* 0E0EB0 7F0AC380 AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0EB4 7F0AC384 3C0F8004 */ lui $t7, %hi(D_800409A0) +/* 0E0EB8 7F0AC388 8DEF09A0 */ lw $t7, %lo(D_800409A0)($t7) +/* 0E0EBC 7F0AC38C 24030041 */ li $v1, 65 +/* 0E0EC0 7F0AC390 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0EC4 7F0AC394 2DE10005 */ sltiu $at, $t7, 5 +/* 0E0EC8 7F0AC398 10200154 */ beqz $at, .L7F0AC8EC +/* 0E0ECC 7F0AC39C AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E0ED0 7F0AC3A0 000F7880 */ sll $t7, $t7, 2 +/* 0E0ED4 7F0AC3A4 3C018006 */ lui $at, %hi(jpt_80058570) +/* 0E0ED8 7F0AC3A8 002F0821 */ addu $at, $at, $t7 +/* 0E0EDC 7F0AC3AC 8C2F8570 */ lw $t7, %lo(jpt_80058570)($at) +/* 0E0EE0 7F0AC3B0 01E00008 */ jr $t7 +/* 0E0EE4 7F0AC3B4 00000000 */ nop +.L7F0AC3B8: +/* 0E0EE8 7F0AC3B8 0FC30776 */ jal get_textptr_for_textID +/* 0E0EEC 7F0AC3BC 3404AC38 */ li $a0, 44088 +/* 0E0EF0 7F0AC3C0 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0EF4 7F0AC3C4 0C002B25 */ jal sprintf +/* 0E0EF8 7F0AC3C8 00402825 */ move $a1, $v0 +/* 0E0EFC 7F0AC3CC 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F00 7F0AC3D0 24040001 */ li $a0, 1 +/* 0E0F04 7F0AC3D4 8FAE0D4C */ lw $t6, 0xd4c($sp) +/* 0E0F08 7F0AC3D8 240400D2 */ li $a0, 210 +/* 0E0F0C 7F0AC3DC 00402825 */ move $a1, $v0 +/* 0E0F10 7F0AC3E0 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0F14 7F0AC3E4 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0F18 7F0AC3E8 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0F1C 7F0AC3EC AFAE0010 */ sw $t6, 0x10($sp) +/* 0E0F20 7F0AC3F0 0FC29986 */ jal sub_GAME_7F0A6618 +/* 0E0F24 7F0AC3F4 00000000 */ nop +/* 0E0F28 7F0AC3F8 1000013D */ b .L7F0AC8F0 +/* 0E0F2C 7F0AC3FC 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC400: +/* 0E0F30 7F0AC400 0FC30776 */ jal get_textptr_for_textID +/* 0E0F34 7F0AC404 3404AC39 */ li $a0, 44089 +/* 0E0F38 7F0AC408 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0F3C 7F0AC40C 0C002B25 */ jal sprintf +/* 0E0F40 7F0AC410 00402825 */ move $a1, $v0 +/* 0E0F44 7F0AC414 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F48 7F0AC418 24040002 */ li $a0, 2 +/* 0E0F4C 7F0AC41C 8FAB0D4C */ lw $t3, 0xd4c($sp) +/* 0E0F50 7F0AC420 240400D2 */ li $a0, 210 +/* 0E0F54 7F0AC424 00402825 */ move $a1, $v0 +/* 0E0F58 7F0AC428 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0F5C 7F0AC42C 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0F60 7F0AC430 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0F64 7F0AC434 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E0F68 7F0AC438 0FC299A8 */ jal sub_GAME_7F0A66A0 +/* 0E0F6C 7F0AC43C 00000000 */ nop +/* 0E0F70 7F0AC440 1000012B */ b .L7F0AC8F0 +/* 0E0F74 7F0AC444 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC448: +/* 0E0F78 7F0AC448 0FC30776 */ jal get_textptr_for_textID +/* 0E0F7C 7F0AC44C 3404AC3A */ li $a0, 44090 +/* 0E0F80 7F0AC450 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0F84 7F0AC454 0C002B25 */ jal sprintf +/* 0E0F88 7F0AC458 00402825 */ move $a1, $v0 +/* 0E0F8C 7F0AC45C 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F90 7F0AC460 24040003 */ li $a0, 3 +/* 0E0F94 7F0AC464 8FA90D4C */ lw $t1, 0xd4c($sp) +/* 0E0F98 7F0AC468 240400D2 */ li $a0, 210 +/* 0E0F9C 7F0AC46C 00402825 */ move $a1, $v0 +/* 0E0FA0 7F0AC470 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0FA4 7F0AC474 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0FA8 7F0AC478 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0FAC 7F0AC47C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0FB0 7F0AC480 0FC299CB */ jal sub_GAME_7F0A672C +/* 0E0FB4 7F0AC484 00000000 */ nop +/* 0E0FB8 7F0AC488 10000119 */ b .L7F0AC8F0 +/* 0E0FBC 7F0AC48C 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC490: +/* 0E0FC0 7F0AC490 0FC30776 */ jal get_textptr_for_textID +/* 0E0FC4 7F0AC494 3404AC3B */ li $a0, 44091 +/* 0E0FC8 7F0AC498 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0FCC 7F0AC49C 0C002B25 */ jal sprintf +/* 0E0FD0 7F0AC4A0 00402825 */ move $a1, $v0 +/* 0E0FD4 7F0AC4A4 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0FD8 7F0AC4A8 24040004 */ li $a0, 4 +/* 0E0FDC 7F0AC4AC 8FB80D4C */ lw $t8, 0xd4c($sp) +/* 0E0FE0 7F0AC4B0 240400D2 */ li $a0, 210 +/* 0E0FE4 7F0AC4B4 00402825 */ move $a1, $v0 +/* 0E0FE8 7F0AC4B8 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0FEC 7F0AC4BC 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0FF0 7F0AC4C0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0FF4 7F0AC4C4 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0FF8 7F0AC4C8 0FC299EF */ jal sub_GAME_7F0A67BC +/* 0E0FFC 7F0AC4CC 00000000 */ nop +/* 0E1000 7F0AC4D0 10000107 */ b .L7F0AC8F0 +/* 0E1004 7F0AC4D4 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC4D8: +/* 0E1008 7F0AC4D8 3C088006 */ lui $t0, %hi(D_80057FC0+0x3B8) +/* 0E100C 7F0AC4DC 27B10088 */ addiu $s1, $sp, 0x88 +/* 0E1010 7F0AC4E0 25088378 */ addiu $t0, %lo(D_80057FC0+0x3B8) # addiu $t0, $t0, -0x7c88 +/* 0E1014 7F0AC4E4 250D00C0 */ addiu $t5, $t0, 0xc0 +/* 0E1018 7F0AC4E8 02206025 */ move $t4, $s1 +.L7F0AC4EC: +/* 0E101C 7F0AC4EC 8D010000 */ lw $at, ($t0) +/* 0E1020 7F0AC4F0 2508000C */ addiu $t0, $t0, 0xc +/* 0E1024 7F0AC4F4 258C000C */ addiu $t4, $t4, 0xc +/* 0E1028 7F0AC4F8 AD81FFF4 */ sw $at, -0xc($t4) +/* 0E102C 7F0AC4FC 8D01FFF8 */ lw $at, -8($t0) +/* 0E1030 7F0AC500 AD81FFF8 */ sw $at, -8($t4) +/* 0E1034 7F0AC504 8D01FFFC */ lw $at, -4($t0) +/* 0E1038 7F0AC508 150DFFF8 */ bne $t0, $t5, .L7F0AC4EC +/* 0E103C 7F0AC50C AD81FFFC */ sw $at, -4($t4) +/* 0E1040 7F0AC510 8D010000 */ lw $at, ($t0) +/* 0E1044 7F0AC514 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0E1048 7F0AC518 24120001 */ li $s2, 1 +/* 0E104C 7F0AC51C AD810000 */ sw $at, ($t4) +/* 0E1050 7F0AC520 8D0D0004 */ lw $t5, 4($t0) +/* 0E1054 7F0AC524 00009825 */ move $s3, $zero +/* 0E1058 7F0AC528 24040005 */ li $a0, 5 +/* 0E105C 7F0AC52C AD8D0004 */ sw $t5, 4($t4) +/* 0E1060 7F0AC530 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0E1064 7F0AC534 AFA00074 */ sw $zero, 0x74($sp) +/* 0E1068 7F0AC538 11E00003 */ beqz $t7, .L7F0AC548 +/* 0E106C 7F0AC53C 00000000 */ nop +/* 0E1070 7F0AC540 10000001 */ b .L7F0AC548 +/* 0E1074 7F0AC544 24040001 */ li $a0, 1 +.L7F0AC548: +/* 0E1078 7F0AC548 0FC2B2E8 */ jal setTextOverlapCorrection +/* 0E107C 7F0AC54C 00000000 */ nop +/* 0E1080 7F0AC550 0FC30776 */ jal get_textptr_for_textID +/* 0E1084 7F0AC554 3404AC3C */ li $a0, 44092 +/* 0E1088 7F0AC558 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E108C 7F0AC55C 0C002B25 */ jal sprintf +/* 0E1090 7F0AC560 00402825 */ move $a1, $v0 +/* 0E1094 7F0AC564 0FC15C6A */ jal add_objective +/* 0E1098 7F0AC568 0000F025 */ move $fp, $zero +/* 0E109C 7F0AC56C 184000DB */ blez $v0, .L7F0AC8DC +/* 0E10A0 7F0AC570 3C178006 */ lui $s7, %hi(D_80058454) +/* 0E10A4 7F0AC574 3C168006 */ lui $s6, %hi(D_80058450) +/* 0E10A8 7F0AC578 3C158006 */ lui $s5, %hi(D_80058444) +/* 0E10AC 7F0AC57C 3C148006 */ lui $s4, %hi(D_80058440) +/* 0E10B0 7F0AC580 26948440 */ addiu $s4, %lo(D_80058440) # addiu $s4, $s4, -0x7bc0 +/* 0E10B4 7F0AC584 26B58444 */ addiu $s5, %lo(D_80058444) # addiu $s5, $s5, -0x7bbc +/* 0E10B8 7F0AC588 26D68450 */ addiu $s6, %lo(D_80058450) # addiu $s6, $s6, -0x7bb0 +/* 0E10BC 7F0AC58C 26F78454 */ addiu $s7, %lo(D_80058454) # addiu $s7, $s7, -0x7bac +.L7F0AC590: +/* 0E10C0 7F0AC590 0FC15C81 */ jal get_difficulty_for_objective +/* 0E10C4 7F0AC594 03C02025 */ move $a0, $fp +/* 0E10C8 7F0AC598 0FC2FF04 */ jal get_current_difficulty +/* 0E10CC 7F0AC59C AFA20068 */ sw $v0, 0x68($sp) +/* 0E10D0 7F0AC5A0 8FA40068 */ lw $a0, 0x68($sp) +/* 0E10D4 7F0AC5A4 0044082A */ slt $at, $v0, $a0 +/* 0E10D8 7F0AC5A8 142000C7 */ bnez $at, .L7F0AC8C8 +/* 0E10DC 7F0AC5AC 03C02025 */ move $a0, $fp +/* 0E10E0 7F0AC5B0 0FC15C6E */ jal get_text_for_objective +/* 0E10E4 7F0AC5B4 00008025 */ move $s0, $zero +/* 0E10E8 7F0AC5B8 AFA20078 */ sw $v0, 0x78($sp) +/* 0E10EC 7F0AC5BC 1A400008 */ blez $s2, .L7F0AC5E0 +/* 0E10F0 7F0AC5C0 A3A00088 */ sb $zero, 0x88($sp) +/* 0E10F4 7F0AC5C4 02202025 */ move $a0, $s1 +.L7F0AC5C8: +/* 0E10F8 7F0AC5C8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E10FC 7F0AC5CC 02802825 */ move $a1, $s4 +/* 0E1100 7F0AC5D0 26100001 */ addiu $s0, $s0, 1 +/* 0E1104 7F0AC5D4 5612FFFC */ bnel $s0, $s2, .L7F0AC5C8 +/* 0E1108 7F0AC5D8 02202025 */ move $a0, $s1 +/* 0E110C 7F0AC5DC 00008025 */ move $s0, $zero +.L7F0AC5E0: +/* 0E1110 7F0AC5E0 1A600007 */ blez $s3, .L7F0AC600 +/* 0E1114 7F0AC5E4 02202025 */ move $a0, $s1 +.L7F0AC5E8: +/* 0E1118 7F0AC5E8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E111C 7F0AC5EC 02A02825 */ move $a1, $s5 +/* 0E1120 7F0AC5F0 26100001 */ addiu $s0, $s0, 1 +/* 0E1124 7F0AC5F4 5613FFFC */ bnel $s0, $s3, .L7F0AC5E8 +/* 0E1128 7F0AC5F8 02202025 */ move $a0, $s1 +/* 0E112C 7F0AC5FC 00008025 */ move $s0, $zero +.L7F0AC600: +/* 0E1130 7F0AC600 0C004E1F */ jal strlen +/* 0E1134 7F0AC604 02202025 */ move $a0, $s1 +/* 0E1138 7F0AC608 8FA60074 */ lw $a2, 0x74($sp) +/* 0E113C 7F0AC60C 00512021 */ addu $a0, $v0, $s1 +/* 0E1140 7F0AC610 3C058006 */ lui $a1, %hi(aC_2) +/* 0E1144 7F0AC614 AFA4006C */ sw $a0, 0x6c($sp) +/* 0E1148 7F0AC618 24A58448 */ addiu $a1, %lo(aC_2) # addiu $a1, $a1, -0x7bb8 +/* 0E114C 7F0AC61C 0C002B25 */ jal sprintf +/* 0E1150 7F0AC620 24C60061 */ addiu $a2, $a2, 0x61 +/* 0E1154 7F0AC624 02202025 */ move $a0, $s1 +/* 0E1158 7F0AC628 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E115C 7F0AC62C 8FA50078 */ lw $a1, 0x78($sp) +/* 0E1160 7F0AC630 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0E1164 7F0AC634 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0E1168 7F0AC638 8FAB0D60 */ lw $t3, 0xd60($sp) +/* 0E116C 7F0AC63C 24040005 */ li $a0, 5 +/* 0E1170 7F0AC640 11C00003 */ beqz $t6, .L7F0AC650 +/* 0E1174 7F0AC644 2418003C */ li $t8, 60 +/* 0E1178 7F0AC648 10000001 */ b .L7F0AC650 +/* 0E117C 7F0AC64C 24040001 */ li $a0, 1 +.L7F0AC650: +/* 0E1180 7F0AC650 008B4821 */ addu $t1, $a0, $t3 +/* 0E1184 7F0AC654 AFA90154 */ sw $t1, 0x154($sp) +/* 0E1188 7F0AC658 0C001107 */ jal get_video2_settings_txtClipW +/* 0E118C 7F0AC65C AFB80150 */ sw $t8, 0x150($sp) +/* 0E1190 7F0AC660 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1194 7F0AC664 A7A20064 */ sh $v0, 0x64($sp) +/* 0E1198 7F0AC668 8FB90D48 */ lw $t9, 0xd48($sp) +/* 0E119C 7F0AC66C 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E11A0 7F0AC670 87A80064 */ lh $t0, 0x64($sp) +/* 0E11A4 7F0AC674 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0E11A8 7F0AC678 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0E11AC 7F0AC67C 240C000A */ li $t4, 10 +/* 0E11B0 7F0AC680 AFAC0028 */ sw $t4, 0x28($sp) +/* 0E11B4 7F0AC684 AFAD0018 */ sw $t5, 0x18($sp) +/* 0E11B8 7F0AC688 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E11BC 7F0AC68C 27A50150 */ addiu $a1, $sp, 0x150 +/* 0E11C0 7F0AC690 27A60154 */ addiu $a2, $sp, 0x154 +/* 0E11C4 7F0AC694 02203825 */ move $a3, $s1 +/* 0E11C8 7F0AC698 AFA20020 */ sw $v0, 0x20($sp) +/* 0E11CC 7F0AC69C AFA00024 */ sw $zero, 0x24($sp) +/* 0E11D0 7F0AC6A0 AFB90010 */ sw $t9, 0x10($sp) +/* 0E11D4 7F0AC6A4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E11D8 7F0AC6A8 0FC2B6AF */ jal en_text_write_stuff +/* 0E11DC 7F0AC6AC AFA8001C */ sw $t0, 0x1c($sp) +/* 0E11E0 7F0AC6B0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E11E4 7F0AC6B4 0FC2B03A */ jal sub_GAME_7F0AC0E8 +/* 0E11E8 7F0AC6B8 8FA4006C */ lw $a0, 0x6c($sp) +/* 0E11EC 7F0AC6BC 02429021 */ addu $s2, $s2, $v0 +/* 0E11F0 7F0AC6C0 0FC2B048 */ jal sub_GAME_7F0AC120 +/* 0E11F4 7F0AC6C4 8FA4006C */ lw $a0, 0x6c($sp) +/* 0E11F8 7F0AC6C8 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E11FC 7F0AC6CC 240E000A */ li $t6, 10 +/* 0E1200 7F0AC6D0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E1204 7F0AC6D4 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E1208 7F0AC6D8 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E120C 7F0AC6DC 00403025 */ move $a2, $v0 +/* 0E1210 7F0AC6E0 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E1214 7F0AC6E4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E1218 7F0AC6E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E121C 7F0AC6EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1220 7F0AC6F0 00000000 */ nop +/* 0E1224 7F0AC6F4 8FA90D50 */ lw $t1, 0xd50($sp) +/* 0E1228 7F0AC6F8 04410003 */ bgez $v0, .L7F0AC708 +/* 0E122C 7F0AC6FC 00025843 */ sra $t3, $v0, 1 +/* 0E1230 7F0AC700 24410001 */ addiu $at, $v0, 1 +/* 0E1234 7F0AC704 00015843 */ sra $t3, $at, 1 +.L7F0AC708: +/* 0E1238 7F0AC708 2538003C */ addiu $t8, $t1, 0x3c +/* 0E123C 7F0AC70C 030B082A */ slt $at, $t8, $t3 +/* 0E1240 7F0AC710 10200002 */ beqz $at, .L7F0AC71C +/* 0E1244 7F0AC714 00000000 */ nop +/* 0E1248 7F0AC718 2652FFFF */ addiu $s2, $s2, -1 +.L7F0AC71C: +/* 0E124C 7F0AC71C 1A400008 */ blez $s2, .L7F0AC740 +/* 0E1250 7F0AC720 A3A00088 */ sb $zero, 0x88($sp) +/* 0E1254 7F0AC724 02202025 */ move $a0, $s1 +.L7F0AC728: +/* 0E1258 7F0AC728 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E125C 7F0AC72C 02C02825 */ move $a1, $s6 +/* 0E1260 7F0AC730 26100001 */ addiu $s0, $s0, 1 +/* 0E1264 7F0AC734 5612FFFC */ bnel $s0, $s2, .L7F0AC728 +/* 0E1268 7F0AC738 02202025 */ move $a0, $s1 +/* 0E126C 7F0AC73C 00008025 */ move $s0, $zero +.L7F0AC740: +/* 0E1270 7F0AC740 1A600006 */ blez $s3, .L7F0AC75C +/* 0E1274 7F0AC744 02202025 */ move $a0, $s1 +.L7F0AC748: +/* 0E1278 7F0AC748 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E127C 7F0AC74C 02E02825 */ move $a1, $s7 +/* 0E1280 7F0AC750 26100001 */ addiu $s0, $s0, 1 +/* 0E1284 7F0AC754 5613FFFC */ bnel $s0, $s3, .L7F0AC748 +/* 0E1288 7F0AC758 02202025 */ move $a0, $s1 +.L7F0AC75C: +/* 0E128C 7F0AC75C 0FC15C8E */ jal get_status_of_objective +/* 0E1290 7F0AC760 03C02025 */ move $a0, $fp +/* 0E1294 7F0AC764 10400009 */ beqz $v0, .L7F0AC78C +/* 0E1298 7F0AC768 02202025 */ move $a0, $s1 +/* 0E129C 7F0AC76C 24010001 */ li $at, 1 +/* 0E12A0 7F0AC770 10410010 */ beq $v0, $at, .L7F0AC7B4 +/* 0E12A4 7F0AC774 02202025 */ move $a0, $s1 +/* 0E12A8 7F0AC778 24010002 */ li $at, 2 +/* 0E12AC 7F0AC77C 10410014 */ beq $v0, $at, .L7F0AC7D0 +/* 0E12B0 7F0AC780 02202025 */ move $a0, $s1 +/* 0E12B4 7F0AC784 1000001F */ b .L7F0AC804 +/* 0E12B8 7F0AC788 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC78C: +/* 0E12BC 7F0AC78C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12C0 7F0AC790 8FA50168 */ lw $a1, 0x168($sp) +/* 0E12C4 7F0AC794 3C198004 */ lui $t9, %hi(D_80040AFC) +/* 0E12C8 7F0AC798 8F390AFC */ lw $t9, %lo(D_80040AFC)($t9) +/* 0E12CC 7F0AC79C 3C014000 */ lui $at, (0x400040FF >> 16) # lui $at, 0x4000 +/* 0E12D0 7F0AC7A0 342140FF */ ori $at, (0x400040FF & 0xFFFF) # ori $at, $at, 0x40ff +/* 0E12D4 7F0AC7A4 00195400 */ sll $t2, $t9, 0x10 +/* 0E12D8 7F0AC7A8 01416825 */ or $t5, $t2, $at +/* 0E12DC 7F0AC7AC 10000014 */ b .L7F0AC800 +/* 0E12E0 7F0AC7B0 AFAD0084 */ sw $t5, 0x84($sp) +.L7F0AC7B4: +/* 0E12E4 7F0AC7B4 3C08A0FF */ lui $t0, (0xA0FFA0F0 >> 16) # lui $t0, 0xa0ff +/* 0E12E8 7F0AC7B8 3508A0F0 */ ori $t0, (0xA0FFA0F0 & 0xFFFF) # ori $t0, $t0, 0xa0f0 +/* 0E12EC 7F0AC7BC AFA80084 */ sw $t0, 0x84($sp) +/* 0E12F0 7F0AC7C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12F4 7F0AC7C4 8FA5016C */ lw $a1, 0x16c($sp) +/* 0E12F8 7F0AC7C8 1000000E */ b .L7F0AC804 +/* 0E12FC 7F0AC7CC 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC7D0: +/* 0E1300 7F0AC7D0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1304 7F0AC7D4 8FA50164 */ lw $a1, 0x164($sp) +/* 0E1308 7F0AC7D8 3C0C8005 */ lui $t4, %hi(j_text_trigger) +/* 0E130C 7F0AC7DC 8D8C84D0 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0E1310 7F0AC7E0 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0E1314 7F0AC7E4 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0E1318 7F0AC7E8 11800004 */ beqz $t4, .L7F0AC7FC +/* 0E131C 7F0AC7EC 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E1320 7F0AC7F0 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0E1324 7F0AC7F4 10000002 */ b .L7F0AC800 +/* 0E1328 7F0AC7F8 AFAF0084 */ sw $t7, 0x84($sp) +.L7F0AC7FC: +/* 0E132C 7F0AC7FC AFAE0084 */ sw $t6, 0x84($sp) +.L7F0AC800: +/* 0E1330 7F0AC800 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC804: +/* 0E1334 7F0AC804 240B000A */ li $t3, 10 +/* 0E1338 7F0AC808 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E133C 7F0AC80C 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E1340 7F0AC810 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E1344 7F0AC814 02203025 */ move $a2, $s1 +/* 0E1348 7F0AC818 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E134C 7F0AC81C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E1350 7F0AC820 AFA90010 */ sw $t1, 0x10($sp) +/* 0E1354 7F0AC824 3C028005 */ lui $v0, %hi(j_text_trigger) +/* 0E1358 7F0AC828 8C4284D0 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0E135C 7F0AC82C 8FB80D60 */ lw $t8, 0xd60($sp) +/* 0E1360 7F0AC830 24040005 */ li $a0, 5 +/* 0E1364 7F0AC834 10400003 */ beqz $v0, .L7F0AC844 +/* 0E1368 7F0AC838 240C00AF */ li $t4, 175 +/* 0E136C 7F0AC83C 10000001 */ b .L7F0AC844 +/* 0E1370 7F0AC840 24040001 */ li $a0, 1 +.L7F0AC844: +/* 0E1374 7F0AC844 0098C821 */ addu $t9, $a0, $t8 +/* 0E1378 7F0AC848 10400006 */ beqz $v0, .L7F0AC864 +/* 0E137C 7F0AC84C AFB90154 */ sw $t9, 0x154($sp) +/* 0E1380 7F0AC850 8FAA0D50 */ lw $t2, 0xd50($sp) +/* 0E1384 7F0AC854 240D00F5 */ li $t5, 245 +/* 0E1388 7F0AC858 01AA4023 */ subu $t0, $t5, $t2 +/* 0E138C 7F0AC85C 10000002 */ b .L7F0AC868 +/* 0E1390 7F0AC860 AFA80150 */ sw $t0, 0x150($sp) +.L7F0AC864: +/* 0E1394 7F0AC864 AFAC0150 */ sw $t4, 0x150($sp) +.L7F0AC868: +/* 0E1398 7F0AC868 0C00110B */ jal get_video2_settings_txtClipH +/* 0E139C 7F0AC86C 00000000 */ nop +/* 0E13A0 7F0AC870 8FAF0D48 */ lw $t7, 0xd48($sp) +/* 0E13A4 7F0AC874 8FAE0D4C */ lw $t6, 0xd4c($sp) +/* 0E13A8 7F0AC878 8FA90084 */ lw $t1, 0x84($sp) +/* 0E13AC 7F0AC87C 240B00D2 */ li $t3, 210 +/* 0E13B0 7F0AC880 2418000A */ li $t8, 10 +/* 0E13B4 7F0AC884 AFB80028 */ sw $t8, 0x28($sp) +/* 0E13B8 7F0AC888 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E13BC 7F0AC88C 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E13C0 7F0AC890 27A50150 */ addiu $a1, $sp, 0x150 +/* 0E13C4 7F0AC894 27A60154 */ addiu $a2, $sp, 0x154 +/* 0E13C8 7F0AC898 02203825 */ move $a3, $s1 +/* 0E13CC 7F0AC89C AFA20020 */ sw $v0, 0x20($sp) +/* 0E13D0 7F0AC8A0 AFA00024 */ sw $zero, 0x24($sp) +/* 0E13D4 7F0AC8A4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E13D8 7F0AC8A8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E13DC 7F0AC8AC 0FC2B6AF */ jal en_text_write_stuff +/* 0E13E0 7F0AC8B0 AFA90018 */ sw $t1, 0x18($sp) +/* 0E13E4 7F0AC8B4 8FB90074 */ lw $t9, 0x74($sp) +/* 0E13E8 7F0AC8B8 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E13EC 7F0AC8BC 26730001 */ addiu $s3, $s3, 1 +/* 0E13F0 7F0AC8C0 272D0001 */ addiu $t5, $t9, 1 +/* 0E13F4 7F0AC8C4 AFAD0074 */ sw $t5, 0x74($sp) +.L7F0AC8C8: +/* 0E13F8 7F0AC8C8 0FC15C6A */ jal add_objective +/* 0E13FC 7F0AC8CC 27DE0001 */ addiu $fp, $fp, 1 +/* 0E1400 7F0AC8D0 03C2082A */ slt $at, $fp, $v0 +/* 0E1404 7F0AC8D4 1420FF2E */ bnez $at, .L7F0AC590 +/* 0E1408 7F0AC8D8 00000000 */ nop +.L7F0AC8DC: +/* 0E140C 7F0AC8DC 0FC2B2E8 */ jal setTextOverlapCorrection +/* 0E1410 7F0AC8E0 2404FFFF */ li $a0, -1 +/* 0E1414 7F0AC8E4 0FC29A13 */ jal sub_GAME_7F0A684C +/* 0E1418 7F0AC8E8 00000000 */ nop +.L7F0AC8EC: +/* 0E141C 7F0AC8EC 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC8F0: +/* 0E1420 7F0AC8F0 2408000A */ li $t0, 10 +/* 0E1424 7F0AC8F4 AFA80014 */ sw $t0, 0x14($sp) +/* 0E1428 7F0AC8F8 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E142C 7F0AC8FC 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E1430 7F0AC900 27A60170 */ addiu $a2, $sp, 0x170 +/* 0E1434 7F0AC904 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E1438 7F0AC908 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E143C 7F0AC90C AFAA0010 */ sw $t2, 0x10($sp) +/* 0E1440 7F0AC910 8FAC0D48 */ lw $t4, 0xd48($sp) +/* 0E1444 7F0AC914 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E1448 7F0AC918 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0E144C 7F0AC91C 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0E1450 7F0AC920 240900D2 */ li $t1, 210 +/* 0E1454 7F0AC924 240B0082 */ li $t3, 130 +/* 0E1458 7F0AC928 2418000A */ li $t8, 10 +/* 0E145C 7F0AC92C AFB80028 */ sw $t8, 0x28($sp) +/* 0E1460 7F0AC930 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E1464 7F0AC934 AFA9001C */ sw $t1, 0x1c($sp) +/* 0E1468 7F0AC938 AFAE0018 */ sw $t6, 0x18($sp) +/* 0E146C 7F0AC93C 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E1470 7F0AC940 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E1474 7F0AC944 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E1478 7F0AC948 27A70170 */ addiu $a3, $sp, 0x170 +/* 0E147C 7F0AC94C AFA00024 */ sw $zero, 0x24($sp) +/* 0E1480 7F0AC950 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E1484 7F0AC954 0FC2B6AF */ jal en_text_write_stuff +/* 0E1488 7F0AC958 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E148C 7F0AC95C 8FB90D60 */ lw $t9, 0xd60($sp) +/* 0E1490 7F0AC960 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E1494 7F0AC964 2403003C */ li $v1, 60 +/* 0E1498 7F0AC968 2408000A */ li $t0, 10 +/* 0E149C 7F0AC96C 272D0005 */ addiu $t5, $t9, 5 +/* 0E14A0 7F0AC970 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E14A4 7F0AC974 AFAD0D60 */ sw $t5, 0xd60($sp) +/* 0E14A8 7F0AC978 AFA80014 */ sw $t0, 0x14($sp) +/* 0E14AC 7F0AC97C AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E14B0 7F0AC980 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E14B4 7F0AC984 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E14B8 7F0AC988 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E14BC 7F0AC98C 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E14C0 7F0AC990 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E14C4 7F0AC994 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E14C8 7F0AC998 0C001107 */ jal get_video2_settings_txtClipW +/* 0E14CC 7F0AC99C 00000000 */ nop +/* 0E14D0 7F0AC9A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0E14D4 7F0AC9A4 A7A20064 */ sh $v0, 0x64($sp) +/* 0E14D8 7F0AC9A8 8FAC0D48 */ lw $t4, 0xd48($sp) +/* 0E14DC 7F0AC9AC 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E14E0 7F0AC9B0 87A90064 */ lh $t1, 0x64($sp) +/* 0E14E4 7F0AC9B4 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0E14E8 7F0AC9B8 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E14EC 7F0AC9BC 240B000A */ li $t3, 10 +/* 0E14F0 7F0AC9C0 AFAB0028 */ sw $t3, 0x28($sp) +/* 0E14F4 7F0AC9C4 AFAE0018 */ sw $t6, 0x18($sp) +/* 0E14F8 7F0AC9C8 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E14FC 7F0AC9CC 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E1500 7F0AC9D0 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E1504 7F0AC9D4 27A70190 */ addiu $a3, $sp, 0x190 +/* 0E1508 7F0AC9D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0E150C 7F0AC9DC AFA00024 */ sw $zero, 0x24($sp) +/* 0E1510 7F0AC9E0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E1514 7F0AC9E4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E1518 7F0AC9E8 0FC2B6AF */ jal en_text_write_stuff +/* 0E151C 7F0AC9EC AFA9001C */ sw $t1, 0x1c($sp) +/* 0E1520 7F0AC9F0 AFA20DE8 */ sw $v0, 0xde8($sp) +.L7F0AC9F4: +/* 0E1524 7F0AC9F4 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E1528 7F0AC9F8 8FA20DE8 */ lw $v0, 0xde8($sp) +/* 0E152C 7F0AC9FC 8FB00038 */ lw $s0, 0x38($sp) +/* 0E1530 7F0ACA00 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E1534 7F0ACA04 8FB20040 */ lw $s2, 0x40($sp) +/* 0E1538 7F0ACA08 8FB30044 */ lw $s3, 0x44($sp) +/* 0E153C 7F0ACA0C 8FB40048 */ lw $s4, 0x48($sp) +/* 0E1540 7F0ACA10 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E1544 7F0ACA14 8FB60050 */ lw $s6, 0x50($sp) +/* 0E1548 7F0ACA18 8FB70054 */ lw $s7, 0x54($sp) +/* 0E154C 7F0ACA1C 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E1550 7F0ACA20 03E00008 */ jr $ra +/* 0E1554 7F0ACA24 27BD0DE8 */ addiu $sp, $sp, 0xde8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ACA28(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058584*/ +glabel jpt_80058584 +.word .L7F0ACAD0 +.word .L7F0ACAE4 +.word .L7F0ACAF8 +.word .L7F0ACB0C +.word .L7F0ACB20 +.text +glabel sub_GAME_7F0ACA28 +/* 0E1558 7F0ACA28 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E155C 7F0ACA2C AFA50024 */ sw $a1, 0x24($sp) +/* 0E1560 7F0ACA30 AFB00018 */ sw $s0, 0x18($sp) +/* 0E1564 7F0ACA34 3C058008 */ lui $a1, %hi(pPlayer) +/* 0E1568 7F0ACA38 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0E156C 7F0ACA3C 00808025 */ move $s0, $a0 +/* 0E1570 7F0ACA40 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E1574 7F0ACA44 3C048004 */ lui $a0, %hi(watch_screen_index) +/* 0E1578 7F0ACA48 AFA60028 */ sw $a2, 0x28($sp) +/* 0E157C 7F0ACA4C 8C840994 */ lw $a0, %lo(watch_screen_index)($a0) +/* 0E1580 7F0ACA50 0FC29C2B */ jal sub_GAME_7F0A70AC +/* 0E1584 7F0ACA54 24A51878 */ addiu $a1, $a1, 0x1878 +/* 0E1588 7F0ACA58 8FA20028 */ lw $v0, 0x28($sp) +/* 0E158C 7F0ACA5C 24010001 */ li $at, 1 +/* 0E1590 7F0ACA60 14410034 */ bne $v0, $at, .L7F0ACB34 +/* 0E1594 7F0ACA64 00000000 */ nop +/* 0E1598 7F0ACA68 0FC1FAB4 */ jal set_BONDdata_paused_flag +/* 0E159C 7F0ACA6C 00002025 */ move $a0, $zero +/* 0E15A0 7F0ACA70 0FC2F63F */ jal sub_GAME_7F0BD8FC +/* 0E15A4 7F0ACA74 00002025 */ move $a0, $zero +/* 0E15A8 7F0ACA78 3C0E8004 */ lui $t6, %hi(watch_screen_index) +/* 0E15AC 7F0ACA7C 8DCE0994 */ lw $t6, %lo(watch_screen_index)($t6) +/* 0E15B0 7F0ACA80 24010001 */ li $at, 1 +/* 0E15B4 7F0ACA84 00002025 */ move $a0, $zero +/* 0E15B8 7F0ACA88 11C10007 */ beq $t6, $at, .L7F0ACAA8 +/* 0E15BC 7F0ACA8C 00000000 */ nop +/* 0E15C0 7F0ACA90 0C0030EB */ jal get_controller_buttons_pressed +/* 0E15C4 7F0ACA94 3405A000 */ li $a1, 40960 +/* 0E15C8 7F0ACA98 10400003 */ beqz $v0, .L7F0ACAA8 +/* 0E15CC 7F0ACA9C 00000000 */ nop +/* 0E15D0 7F0ACAA0 0FC293BE */ jal sub_GAME_7F0A4EF8 +/* 0E15D4 7F0ACAA4 00000000 */ nop +.L7F0ACAA8: +/* 0E15D8 7F0ACAA8 3C0F8004 */ lui $t7, %hi(watch_screen_index) +/* 0E15DC 7F0ACAAC 8DEF0994 */ lw $t7, %lo(watch_screen_index)($t7) +/* 0E15E0 7F0ACAB0 2DE10005 */ sltiu $at, $t7, 5 +/* 0E15E4 7F0ACAB4 10200029 */ beqz $at, .L7F0ACB5C +/* 0E15E8 7F0ACAB8 000F7880 */ sll $t7, $t7, 2 +/* 0E15EC 7F0ACABC 3C018006 */ lui $at, %hi(jpt_80058584) +/* 0E15F0 7F0ACAC0 002F0821 */ addu $at, $at, $t7 +/* 0E15F4 7F0ACAC4 8C2F8584 */ lw $t7, %lo(jpt_80058584)($at) +/* 0E15F8 7F0ACAC8 01E00008 */ jr $t7 +/* 0E15FC 7F0ACACC 00000000 */ nop +.L7F0ACAD0: +/* 0E1600 7F0ACAD0 02002025 */ move $a0, $s0 +/* 0E1604 7F0ACAD4 0FC2A0C3 */ jal sub_GAME_7F0A830C +/* 0E1608 7F0ACAD8 8FA50024 */ lw $a1, 0x24($sp) +/* 0E160C 7F0ACADC 1000001F */ b .L7F0ACB5C +/* 0E1610 7F0ACAE0 00408025 */ move $s0, $v0 +.L7F0ACAE4: +/* 0E1614 7F0ACAE4 02002025 */ move $a0, $s0 +/* 0E1618 7F0ACAE8 0FC2A109 */ jal debug_gun_watch_move_related2 +/* 0E161C 7F0ACAEC 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1620 7F0ACAF0 1000001A */ b .L7F0ACB5C +/* 0E1624 7F0ACAF4 00408025 */ move $s0, $v0 +.L7F0ACAF8: +/* 0E1628 7F0ACAF8 02002025 */ move $a0, $s0 +/* 0E162C 7F0ACAFC 0FC2AD2E */ jal sub_GAME_7F0AB4B8 +/* 0E1630 7F0ACB00 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1634 7F0ACB04 10000015 */ b .L7F0ACB5C +/* 0E1638 7F0ACB08 00408025 */ move $s0, $v0 +.L7F0ACB0C: +/* 0E163C 7F0ACB0C 02002025 */ move $a0, $s0 +/* 0E1640 7F0ACB10 0FC2AF7F */ jal sub_GAME_7F0ABDFC +/* 0E1644 7F0ACB14 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1648 7F0ACB18 10000010 */ b .L7F0ACB5C +/* 0E164C 7F0ACB1C 00408025 */ move $s0, $v0 +.L7F0ACB20: +/* 0E1650 7F0ACB20 02002025 */ move $a0, $s0 +/* 0E1654 7F0ACB24 0FC2B05A */ jal sub_GAME_7F0AC168 +/* 0E1658 7F0ACB28 8FA50024 */ lw $a1, 0x24($sp) +/* 0E165C 7F0ACB2C 1000000B */ b .L7F0ACB5C +/* 0E1660 7F0ACB30 00408025 */ move $s0, $v0 +.L7F0ACB34: +/* 0E1664 7F0ACB34 5440000A */ bnezl $v0, .L7F0ACB60 +/* 0E1668 7F0ACB38 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E166C 7F0ACB3C 0FC2F63F */ jal sub_GAME_7F0BD8FC +/* 0E1670 7F0ACB40 24040001 */ li $a0, 1 +/* 0E1674 7F0ACB44 0FC1FAB4 */ jal set_BONDdata_paused_flag +/* 0E1678 7F0ACB48 24040001 */ li $a0, 1 +/* 0E167C 7F0ACB4C 02002025 */ move $a0, $s0 +/* 0E1680 7F0ACB50 0FC29DEA */ jal sub_GAME_7F0A77A8 +/* 0E1684 7F0ACB54 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1688 7F0ACB58 00408025 */ move $s0, $v0 +.L7F0ACB5C: +/* 0E168C 7F0ACB5C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0ACB60: +/* 0E1690 7F0ACB60 02001025 */ move $v0, $s0 +/* 0E1694 7F0ACB64 8FB00018 */ lw $s0, 0x18($sp) +/* 0E1698 7F0ACB68 03E00008 */ jr $ra +/* 0E169C 7F0ACB6C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + diff --git a/src/game/watch.h b/src/game/watch.h new file mode 100644 index 0000000..40254df --- /dev/null +++ b/src/game/watch.h @@ -0,0 +1,13 @@ +#ifndef _WATCH_H_ +#define _WATCH_H_ +#include "ultra64.h" + +void zero_D_80040998(); + +void zero_D_8004099C(); + +void zero_D_800409A4(); + +#endif + + diff --git a/src/game/zlib.c b/src/game/zlib.c new file mode 100644 index 0000000..1bca04e --- /dev/null +++ b/src/game/zlib.c @@ -0,0 +1,1854 @@ +#include "ultra64.h" +#include "zlib.h" +//.bss + +//bss:8008D350 +s32 dword_CODE_bss_8008D350; +//bss:8008D354 +s32 dword_CODE_bss_8008D354; +//bss:8008D358 +s32 dword_CODE_bss_8008D358; +//bss:8008D35C +s32 dword_CODE_bss_8008D35C; +//bss:8008D360 +s32 dword_CODE_bss_8008D360; +//bss:8008D364 +s32 dword_CODE_bss_8008D364; +//bss:8008D368 +s32 dword_CODE_bss_8008D368; +//bss:8008D36C +s32 dword_CODE_bss_8008D36C; + + +//.data +u8 D_8004E8E0[] = { + 0x10,0x11,0x12, 0, 8, 7, 9, 6, 0xA, 5, 0xB, 4, 0xC, 3, + 0xD, 2, 0xE, 1, 0xF, 0 +}; + +s16 D_8004E8F4[] = { + 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xD, + 0xF, 0x11, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x2B, 0x33, 0x3B, + 0x43, 0x53, 0x63, 0x73, 0x83, 0xA3, 0xC3, 0xE3, 0x102, 0, + 0, 0 +}; + +u32 D_8004E934[] = { + 0, 0, 0x1010101, 0x2020202, 0x3030303, 0x4040404, 0x5050505, 0x636300 +}; + +s16 D_8004E954[] = { + 1 , 2, 3, 4, 5, 7, 9, 0xD, 0x11, 0x19, 0x21, 0x31, 0x41, 0x61, + 0x81, 0xC1, 0x101, 0x181, 0x201, 0x301, 0x401, 0x601, 0x801, + 0xC01, 0x1001, 0x1801, 0x2001, 0x3001, 0x4001, 0x6001 +}; + +u16 D_8004E990[] = { + 0, 0, 0x101, 0x202, 0x303, 0x404, 0x505, 0x606, + 0x707, 0x808, 0x909, 0xA0A, 0xB0B, 0xC0C, 0xD0D, 0 +}; + +u16 D_8004E9B0[] = { + 0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0 +}; + +s32 D_8004E9D4 = 9; +s32 D_8004E9D8 = 6; + +//.rodata + + +#ifdef NONMATCHING +void sub_GAME_7F0CE8B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE8B0 +/* 1033E0 7F0CE8B0 27BDFA08 */ addiu $sp, $sp, -0x5f8 +/* 1033E4 7F0CE8B4 AFB20020 */ sw $s2, 0x20($sp) +/* 1033E8 7F0CE8B8 AFB1001C */ sw $s1, 0x1c($sp) +/* 1033EC 7F0CE8BC 27B105B0 */ addiu $s1, $sp, 0x5b0 +/* 1033F0 7F0CE8C0 00809025 */ move $s2, $a0 +/* 1033F4 7F0CE8C4 AFBF003C */ sw $ra, 0x3c($sp) +/* 1033F8 7F0CE8C8 AFA505FC */ sw $a1, 0x5fc($sp) +/* 1033FC 7F0CE8CC AFBE0038 */ sw $fp, 0x38($sp) +/* 103400 7F0CE8D0 AFB70034 */ sw $s7, 0x34($sp) +/* 103404 7F0CE8D4 AFB60030 */ sw $s6, 0x30($sp) +/* 103408 7F0CE8D8 AFB5002C */ sw $s5, 0x2c($sp) +/* 10340C 7F0CE8DC AFB40028 */ sw $s4, 0x28($sp) +/* 103410 7F0CE8E0 AFB30024 */ sw $s3, 0x24($sp) +/* 103414 7F0CE8E4 AFB00018 */ sw $s0, 0x18($sp) +/* 103418 7F0CE8E8 AFA60600 */ sw $a2, 0x600($sp) +/* 10341C 7F0CE8EC AFA70604 */ sw $a3, 0x604($sp) +/* 103420 7F0CE8F0 24050044 */ li $a1, 68 +/* 103424 7F0CE8F4 0C005F10 */ jal bzero +/* 103428 7F0CE8F8 02202025 */ move $a0, $s1 +/* 10342C 7F0CE8FC 8FAE05FC */ lw $t6, 0x5fc($sp) +/* 103430 7F0CE900 0240F025 */ move $fp, $s2 +/* 103434 7F0CE904 24070001 */ li $a3, 1 +/* 103438 7F0CE908 31C20003 */ andi $v0, $t6, 3 +/* 10343C 7F0CE90C 00021023 */ negu $v0, $v0 +/* 103440 7F0CE910 1040000D */ beqz $v0, .L7F0CE948 +/* 103444 7F0CE914 01C0F825 */ move $ra, $t6 +/* 103448 7F0CE918 004E1821 */ addu $v1, $v0, $t6 +.L7F0CE91C: +/* 10344C 7F0CE91C 8FCF0000 */ lw $t7, ($fp) +/* 103450 7F0CE920 27FFFFFF */ addiu $ra, $ra, -1 +/* 103454 7F0CE924 27DE0004 */ addiu $fp, $fp, 4 +/* 103458 7F0CE928 000FC080 */ sll $t8, $t7, 2 +/* 10345C 7F0CE92C 02381021 */ addu $v0, $s1, $t8 +/* 103460 7F0CE930 8C590000 */ lw $t9, ($v0) +/* 103464 7F0CE934 272E0001 */ addiu $t6, $t9, 1 +/* 103468 7F0CE938 147FFFF8 */ bne $v1, $ra, .L7F0CE91C +/* 10346C 7F0CE93C AC4E0000 */ sw $t6, ($v0) +/* 103470 7F0CE940 53E0001D */ beql $ra, $zero, .L7F0CE9B8 +/* 103474 7F0CE944 8FAF05FC */ lw $t7, 0x5fc($sp) +.L7F0CE948: +/* 103478 7F0CE948 8FCF0000 */ lw $t7, ($fp) +/* 10347C 7F0CE94C 27FFFFFC */ addiu $ra, $ra, -4 +/* 103480 7F0CE950 27DE0010 */ addiu $fp, $fp, 0x10 +/* 103484 7F0CE954 000FC080 */ sll $t8, $t7, 2 +/* 103488 7F0CE958 02381021 */ addu $v0, $s1, $t8 +/* 10348C 7F0CE95C 8C590000 */ lw $t9, ($v0) +/* 103490 7F0CE960 272E0001 */ addiu $t6, $t9, 1 +/* 103494 7F0CE964 AC4E0000 */ sw $t6, ($v0) +/* 103498 7F0CE968 8FCFFFF4 */ lw $t7, -0xc($fp) +/* 10349C 7F0CE96C 000FC080 */ sll $t8, $t7, 2 +/* 1034A0 7F0CE970 02381021 */ addu $v0, $s1, $t8 +/* 1034A4 7F0CE974 8C590000 */ lw $t9, ($v0) +/* 1034A8 7F0CE978 272E0001 */ addiu $t6, $t9, 1 +/* 1034AC 7F0CE97C AC4E0000 */ sw $t6, ($v0) +/* 1034B0 7F0CE980 8FCFFFF8 */ lw $t7, -8($fp) +/* 1034B4 7F0CE984 000FC080 */ sll $t8, $t7, 2 +/* 1034B8 7F0CE988 02381021 */ addu $v0, $s1, $t8 +/* 1034BC 7F0CE98C 8C590000 */ lw $t9, ($v0) +/* 1034C0 7F0CE990 272E0001 */ addiu $t6, $t9, 1 +/* 1034C4 7F0CE994 AC4E0000 */ sw $t6, ($v0) +/* 1034C8 7F0CE998 8FCFFFFC */ lw $t7, -4($fp) +/* 1034CC 7F0CE99C 000FC080 */ sll $t8, $t7, 2 +/* 1034D0 7F0CE9A0 02381021 */ addu $v0, $s1, $t8 +/* 1034D4 7F0CE9A4 8C590000 */ lw $t9, ($v0) +/* 1034D8 7F0CE9A8 272E0001 */ addiu $t6, $t9, 1 +/* 1034DC 7F0CE9AC 17E0FFE6 */ bnez $ra, .L7F0CE948 +/* 1034E0 7F0CE9B0 AC4E0000 */ sw $t6, ($v0) +/* 1034E4 7F0CE9B4 8FAF05FC */ lw $t7, 0x5fc($sp) +.L7F0CE9B8: +/* 1034E8 7F0CE9B8 8FB805B0 */ lw $t8, 0x5b0($sp) +/* 1034EC 7F0CE9BC 8FA50610 */ lw $a1, 0x610($sp) +/* 1034F0 7F0CE9C0 27A305B4 */ addiu $v1, $sp, 0x5b4 +/* 1034F4 7F0CE9C4 15F80007 */ bne $t7, $t8, .L7F0CE9E4 +/* 1034F8 7F0CE9C8 24020011 */ li $v0, 17 +/* 1034FC 7F0CE9CC 8FB5060C */ lw $s5, 0x60c($sp) +/* 103500 7F0CE9D0 8FA50610 */ lw $a1, 0x610($sp) +/* 103504 7F0CE9D4 00001025 */ move $v0, $zero +/* 103508 7F0CE9D8 AEA00000 */ sw $zero, ($s5) +/* 10350C 7F0CE9DC 10000138 */ b .L7F0CEEC0 +/* 103510 7F0CE9E0 ACA00000 */ sw $zero, ($a1) +.L7F0CE9E4: +/* 103514 7F0CE9E4 8CB00000 */ lw $s0, ($a1) +.L7F0CE9E8: +/* 103518 7F0CE9E8 8C790000 */ lw $t9, ($v1) +/* 10351C 7F0CE9EC 57200005 */ bnezl $t9, .L7F0CEA04 +/* 103520 7F0CE9F0 0207082B */ sltu $at, $s0, $a3 +/* 103524 7F0CE9F4 24E70001 */ addiu $a3, $a3, 1 +/* 103528 7F0CE9F8 14E2FFFB */ bne $a3, $v0, .L7F0CE9E8 +/* 10352C 7F0CE9FC 24630004 */ addiu $v1, $v1, 4 +/* 103530 7F0CEA00 0207082B */ sltu $at, $s0, $a3 +.L7F0CEA04: +/* 103534 7F0CEA04 10200002 */ beqz $at, .L7F0CEA10 +/* 103538 7F0CEA08 00E0A025 */ move $s4, $a3 +/* 10353C 7F0CEA0C 00E08025 */ move $s0, $a3 +.L7F0CEA10: +/* 103540 7F0CEA10 241F0010 */ li $ra, 16 +/* 103544 7F0CEA14 27A205F0 */ addiu $v0, $sp, 0x5f0 +.L7F0CEA18: +/* 103548 7F0CEA18 8C4E0000 */ lw $t6, ($v0) +/* 10354C 7F0CEA1C 55C00005 */ bnezl $t6, .L7F0CEA34 +/* 103550 7F0CEA20 03F0082B */ sltu $at, $ra, $s0 +/* 103554 7F0CEA24 27FFFFFF */ addiu $ra, $ra, -1 +/* 103558 7F0CEA28 17E0FFFB */ bnez $ra, .L7F0CEA18 +/* 10355C 7F0CEA2C 2442FFFC */ addiu $v0, $v0, -4 +/* 103560 7F0CEA30 03F0082B */ sltu $at, $ra, $s0 +.L7F0CEA34: +/* 103564 7F0CEA34 10200002 */ beqz $at, .L7F0CEA40 +/* 103568 7F0CEA38 AFBF05A8 */ sw $ra, 0x5a8($sp) +/* 10356C 7F0CEA3C 03E08025 */ move $s0, $ra +.L7F0CEA40: +/* 103570 7F0CEA40 240F0001 */ li $t7, 1 +/* 103574 7F0CEA44 00FF082B */ sltu $at, $a3, $ra +/* 103578 7F0CEA48 ACB00000 */ sw $s0, ($a1) +/* 10357C 7F0CEA4C 1020000B */ beqz $at, .L7F0CEA7C +/* 103580 7F0CEA50 00EF2004 */ sllv $a0, $t7, $a3 +/* 103584 7F0CEA54 001FC080 */ sll $t8, $ra, 2 +/* 103588 7F0CEA58 27B905B0 */ addiu $t9, $sp, 0x5b0 +/* 10358C 7F0CEA5C 03192821 */ addu $a1, $t8, $t9 +.L7F0CEA60: +/* 103590 7F0CEA60 8C6E0000 */ lw $t6, ($v1) +/* 103594 7F0CEA64 24630004 */ addiu $v1, $v1, 4 +/* 103598 7F0CEA68 0065082B */ sltu $at, $v1, $a1 +/* 10359C 7F0CEA6C 008E2023 */ subu $a0, $a0, $t6 +/* 1035A0 7F0CEA70 00047840 */ sll $t7, $a0, 1 +/* 1035A4 7F0CEA74 1420FFFA */ bnez $at, .L7F0CEA60 +/* 1035A8 7F0CEA78 01E02025 */ move $a0, $t7 +.L7F0CEA7C: +/* 1035AC 7F0CEA7C 8C430000 */ lw $v1, ($v0) +/* 1035B0 7F0CEA80 27FFFFFF */ addiu $ra, $ra, -1 +/* 1035B4 7F0CEA84 00003825 */ move $a3, $zero +/* 1035B8 7F0CEA88 00832023 */ subu $a0, $a0, $v1 +/* 1035BC 7F0CEA8C 0064C021 */ addu $t8, $v1, $a0 +/* 1035C0 7F0CEA90 AC580000 */ sw $t8, ($v0) +/* 1035C4 7F0CEA94 AFA00080 */ sw $zero, 0x80($sp) +/* 1035C8 7F0CEA98 27BE05B4 */ addiu $fp, $sp, 0x5b4 +/* 1035CC 7F0CEA9C 27A60084 */ addiu $a2, $sp, 0x84 +/* 1035D0 7F0CEAA0 13E00022 */ beqz $ra, .L7F0CEB2C +/* 1035D4 7F0CEAA4 2442FFFC */ addiu $v0, $v0, -4 +/* 1035D8 7F0CEAA8 33E80003 */ andi $t0, $ra, 3 +/* 1035DC 7F0CEAAC 00084023 */ negu $t0, $t0 +/* 1035E0 7F0CEAB0 1100000D */ beqz $t0, .L7F0CEAE8 +/* 1035E4 7F0CEAB4 011F1821 */ addu $v1, $t0, $ra +/* 1035E8 7F0CEAB8 0003C880 */ sll $t9, $v1, 2 +/* 1035EC 7F0CEABC 27AE05B0 */ addiu $t6, $sp, 0x5b0 +/* 1035F0 7F0CEAC0 032E2821 */ addu $a1, $t9, $t6 +.L7F0CEAC4: +/* 1035F4 7F0CEAC4 8FCF0000 */ lw $t7, ($fp) +/* 1035F8 7F0CEAC8 2442FFFC */ addiu $v0, $v0, -4 +/* 1035FC 7F0CEACC 24C60004 */ addiu $a2, $a2, 4 +/* 103600 7F0CEAD0 00EF3821 */ addu $a3, $a3, $t7 +/* 103604 7F0CEAD4 ACC7FFFC */ sw $a3, -4($a2) +/* 103608 7F0CEAD8 14A2FFFA */ bne $a1, $v0, .L7F0CEAC4 +/* 10360C 7F0CEADC 27DE0004 */ addiu $fp, $fp, 4 +/* 103610 7F0CEAE0 27B805B0 */ addiu $t8, $sp, 0x5b0 +/* 103614 7F0CEAE4 10580011 */ beq $v0, $t8, .L7F0CEB2C +.L7F0CEAE8: +/* 103618 7F0CEAE8 27A305B0 */ addiu $v1, $sp, 0x5b0 +.L7F0CEAEC: +/* 10361C 7F0CEAEC 8FD90000 */ lw $t9, ($fp) +/* 103620 7F0CEAF0 2442FFF0 */ addiu $v0, $v0, -0x10 +/* 103624 7F0CEAF4 24C60010 */ addiu $a2, $a2, 0x10 +/* 103628 7F0CEAF8 00F93821 */ addu $a3, $a3, $t9 +/* 10362C 7F0CEAFC ACC7FFF0 */ sw $a3, -0x10($a2) +/* 103630 7F0CEB00 8FCE0004 */ lw $t6, 4($fp) +/* 103634 7F0CEB04 27DE0010 */ addiu $fp, $fp, 0x10 +/* 103638 7F0CEB08 00EE3821 */ addu $a3, $a3, $t6 +/* 10363C 7F0CEB0C ACC7FFF4 */ sw $a3, -0xc($a2) +/* 103640 7F0CEB10 8FCFFFF8 */ lw $t7, -8($fp) +/* 103644 7F0CEB14 00EF3821 */ addu $a3, $a3, $t7 +/* 103648 7F0CEB18 ACC7FFF8 */ sw $a3, -8($a2) +/* 10364C 7F0CEB1C 8FD8FFFC */ lw $t8, -4($fp) +/* 103650 7F0CEB20 00F83821 */ addu $a3, $a3, $t8 +/* 103654 7F0CEB24 1443FFF1 */ bne $v0, $v1, .L7F0CEAEC +/* 103658 7F0CEB28 ACC7FFFC */ sw $a3, -4($a2) +.L7F0CEB2C: +/* 10365C 7F0CEB2C 0240F025 */ move $fp, $s2 +/* 103660 7F0CEB30 0000F825 */ move $ra, $zero +/* 103664 7F0CEB34 27A6007C */ addiu $a2, $sp, 0x7c +/* 103668 7F0CEB38 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 10366C 7F0CEB3C 8FC70000 */ lw $a3, ($fp) +.L7F0CEB40: +/* 103670 7F0CEB40 27DE0004 */ addiu $fp, $fp, 4 +/* 103674 7F0CEB44 10E00008 */ beqz $a3, .L7F0CEB68 +/* 103678 7F0CEB48 0007C880 */ sll $t9, $a3, 2 +/* 10367C 7F0CEB4C 00D91021 */ addu $v0, $a2, $t9 +/* 103680 7F0CEB50 8C430000 */ lw $v1, ($v0) +/* 103684 7F0CEB54 00037080 */ sll $t6, $v1, 2 +/* 103688 7F0CEB58 00AE7821 */ addu $t7, $a1, $t6 +/* 10368C 7F0CEB5C ADFF0000 */ sw $ra, ($t7) +/* 103690 7F0CEB60 24780001 */ addiu $t8, $v1, 1 +/* 103694 7F0CEB64 AC580000 */ sw $t8, ($v0) +.L7F0CEB68: +/* 103698 7F0CEB68 8FB905FC */ lw $t9, 0x5fc($sp) +/* 10369C 7F0CEB6C 27FF0001 */ addiu $ra, $ra, 1 +/* 1036A0 7F0CEB70 03F9082B */ sltu $at, $ra, $t9 +/* 1036A4 7F0CEB74 5420FFF2 */ bnezl $at, .L7F0CEB40 +/* 1036A8 7F0CEB78 8FC70000 */ lw $a3, ($fp) +/* 1036AC 7F0CEB7C 8FAE05A8 */ lw $t6, 0x5a8($sp) +/* 1036B0 7F0CEB80 AFA40074 */ sw $a0, 0x74($sp) +/* 1036B4 7F0CEB84 0000F825 */ move $ra, $zero +/* 1036B8 7F0CEB88 01D4082A */ slt $at, $t6, $s4 +/* 1036BC 7F0CEB8C AFA0007C */ sw $zero, 0x7c($sp) +/* 1036C0 7F0CEB90 00A0F025 */ move $fp, $a1 +/* 1036C4 7F0CEB94 240CFFFF */ li $t4, -1 +/* 1036C8 7F0CEB98 00105023 */ negu $t2, $s0 +/* 1036CC 7F0CEB9C AFA00544 */ sw $zero, 0x544($sp) +/* 1036D0 7F0CEBA0 00003025 */ move $a2, $zero +/* 1036D4 7F0CEBA4 142000BF */ bnez $at, .L7F0CEEA4 +/* 1036D8 7F0CEBA8 00004025 */ move $t0, $zero +/* 1036DC 7F0CEBAC 00147880 */ sll $t7, $s4, 2 +/* 1036E0 7F0CEBB0 27B805B0 */ addiu $t8, $sp, 0x5b0 +/* 1036E4 7F0CEBB4 01F8C821 */ addu $t9, $t7, $t8 +/* 1036E8 7F0CEBB8 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D360) +/* 1036EC 7F0CEBBC 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D36C) +/* 1036F0 7F0CEBC0 2652D36C */ addiu $s2, %lo(dword_CODE_bss_8008D36C) # addiu $s2, $s2, -0x2c94 +/* 1036F4 7F0CEBC4 26F7D360 */ addiu $s7, %lo(dword_CODE_bss_8008D360) # addiu $s7, $s7, -0x2ca0 +/* 1036F8 7F0CEBC8 AFB9005C */ sw $t9, 0x5c($sp) +/* 1036FC 7F0CEBCC 8FB5060C */ lw $s5, 0x60c($sp) +/* 103700 7F0CEBD0 27B30584 */ addiu $s3, $sp, 0x584 +.L7F0CEBD4: +/* 103704 7F0CEBD4 8FAE005C */ lw $t6, 0x5c($sp) +/* 103708 7F0CEBD8 8FB805FC */ lw $t8, 0x5fc($sp) +/* 10370C 7F0CEBDC 000C6880 */ sll $t5, $t4, 2 +/* 103710 7F0CEBE0 8DD60000 */ lw $s6, ($t6) +/* 103714 7F0CEBE4 27AF007C */ addiu $t7, $sp, 0x7c +/* 103718 7F0CEBE8 0018C880 */ sll $t9, $t8, 2 +/* 10371C 7F0CEBEC 02C02825 */ move $a1, $s6 +/* 103720 7F0CEBF0 12C000A4 */ beqz $s6, .L7F0CEE84 +/* 103724 7F0CEBF4 26D6FFFF */ addiu $s6, $s6, -1 +/* 103728 7F0CEBF8 01AF5821 */ addu $t3, $t5, $t7 +/* 10372C 7F0CEBFC 27AE00C4 */ addiu $t6, $sp, 0xc4 +/* 103730 7F0CEC00 032E7821 */ addu $t7, $t9, $t6 +/* 103734 7F0CEC04 24190001 */ li $t9, 1 +/* 103738 7F0CEC08 2698001F */ addiu $t8, $s4, 0x1f +/* 10373C 7F0CEC0C 03197004 */ sllv $t6, $t9, $t8 +/* 103740 7F0CEC10 AFAE0040 */ sw $t6, 0x40($sp) +/* 103744 7F0CEC14 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0CEC18: +/* 103748 7F0CEC18 01501821 */ addu $v1, $t2, $s0 +/* 10374C 7F0CEC1C 0074082A */ slt $at, $v1, $s4 +/* 103750 7F0CEC20 10200047 */ beqz $at, .L7F0CED40 +/* 103754 7F0CEC24 26D10001 */ addiu $s1, $s6, 1 +/* 103758 7F0CEC28 27AF0544 */ addiu $t7, $sp, 0x544 +/* 10375C 7F0CEC2C 01AF4821 */ addu $t1, $t5, $t7 +/* 103760 7F0CEC30 8FB905A8 */ lw $t9, 0x5a8($sp) +.L7F0CEC34: +/* 103764 7F0CEC34 258C0001 */ addiu $t4, $t4, 1 +/* 103768 7F0CEC38 25AD0004 */ addiu $t5, $t5, 4 +/* 10376C 7F0CEC3C 03234023 */ subu $t0, $t9, $v1 +/* 103770 7F0CEC40 0208082B */ sltu $at, $s0, $t0 +/* 103774 7F0CEC44 25290004 */ addiu $t1, $t1, 4 +/* 103778 7F0CEC48 256B0004 */ addiu $t3, $t3, 4 +/* 10377C 7F0CEC4C 10200002 */ beqz $at, .L7F0CEC58 +/* 103780 7F0CEC50 00605025 */ move $t2, $v1 +/* 103784 7F0CEC54 02004025 */ move $t0, $s0 +.L7F0CEC58: +/* 103788 7F0CEC58 028A1023 */ subu $v0, $s4, $t2 +/* 10378C 7F0CEC5C 24180001 */ li $t8, 1 +/* 103790 7F0CEC60 00582004 */ sllv $a0, $t8, $v0 +/* 103794 7F0CEC64 0224082B */ sltu $at, $s1, $a0 +/* 103798 7F0CEC68 10200013 */ beqz $at, .L7F0CECB8 +/* 10379C 7F0CEC6C 00403825 */ move $a3, $v0 +/* 1037A0 7F0CEC70 24470001 */ addiu $a3, $v0, 1 +/* 1037A4 7F0CEC74 00961823 */ subu $v1, $a0, $s6 +/* 1037A8 7F0CEC78 00147080 */ sll $t6, $s4, 2 +/* 1037AC 7F0CEC7C 27AF05B0 */ addiu $t7, $sp, 0x5b0 +/* 1037B0 7F0CEC80 00E8082B */ sltu $at, $a3, $t0 +/* 1037B4 7F0CEC84 2463FFFF */ addiu $v1, $v1, -1 +/* 1037B8 7F0CEC88 1020000B */ beqz $at, .L7F0CECB8 +/* 1037BC 7F0CEC8C 01CF3021 */ addu $a2, $t6, $t7 +.L7F0CEC90: +/* 1037C0 7F0CEC90 8CC40004 */ lw $a0, 4($a2) +/* 1037C4 7F0CEC94 00031040 */ sll $v0, $v1, 1 +/* 1037C8 7F0CEC98 24C60004 */ addiu $a2, $a2, 4 +/* 1037CC 7F0CEC9C 0082082B */ sltu $at, $a0, $v0 +/* 1037D0 7F0CECA0 50200006 */ beql $at, $zero, .L7F0CECBC +/* 1037D4 7F0CECA4 8E430000 */ lw $v1, ($s2) +/* 1037D8 7F0CECA8 24E70001 */ addiu $a3, $a3, 1 +/* 1037DC 7F0CECAC 00E8082B */ sltu $at, $a3, $t0 +/* 1037E0 7F0CECB0 1420FFF7 */ bnez $at, .L7F0CEC90 +/* 1037E4 7F0CECB4 00441823 */ subu $v1, $v0, $a0 +.L7F0CECB8: +/* 1037E8 7F0CECB8 8E430000 */ lw $v1, ($s2) +.L7F0CECBC: +/* 1037EC 7F0CECBC 8EEE0000 */ lw $t6, ($s7) +/* 1037F0 7F0CECC0 24190001 */ li $t9, 1 +/* 1037F4 7F0CECC4 00F94004 */ sllv $t0, $t9, $a3 +/* 1037F8 7F0CECC8 0003C0C0 */ sll $t8, $v1, 3 +/* 1037FC 7F0CECCC 00687821 */ addu $t7, $v1, $t0 +/* 103800 7F0CECD0 25F90001 */ addiu $t9, $t7, 1 +/* 103804 7F0CECD4 030E3021 */ addu $a2, $t8, $t6 +/* 103808 7F0CECD8 AE590000 */ sw $t9, ($s2) +/* 10380C 7F0CECDC 24C40008 */ addiu $a0, $a2, 8 +/* 103810 7F0CECE0 AEA40000 */ sw $a0, ($s5) +/* 103814 7F0CECE4 ACC00004 */ sw $zero, 4($a2) +/* 103818 7F0CECE8 24D50004 */ addiu $s5, $a2, 4 +/* 10381C 7F0CECEC 00803025 */ move $a2, $a0 +/* 103820 7F0CECF0 1180000F */ beqz $t4, .L7F0CED30 +/* 103824 7F0CECF4 AD240000 */ sw $a0, ($t1) +/* 103828 7F0CECF8 AD7F0000 */ sw $ra, ($t3) +/* 10382C 7F0CECFC 24F80010 */ addiu $t8, $a3, 0x10 +/* 103830 7F0CED00 A3B00585 */ sb $s0, 0x585($sp) +/* 103834 7F0CED04 A3B80584 */ sb $t8, 0x584($sp) +/* 103838 7F0CED08 AFA40588 */ sw $a0, 0x588($sp) +/* 10383C 7F0CED0C 8D2EFFFC */ lw $t6, -4($t1) +/* 103840 7F0CED10 01507823 */ subu $t7, $t2, $s0 +/* 103844 7F0CED14 8E610000 */ lw $at, ($s3) +/* 103848 7F0CED18 01FFC806 */ srlv $t9, $ra, $t7 +/* 10384C 7F0CED1C 0019C0C0 */ sll $t8, $t9, 3 +/* 103850 7F0CED20 01D87821 */ addu $t7, $t6, $t8 +/* 103854 7F0CED24 ADE10000 */ sw $at, ($t7) +/* 103858 7F0CED28 8E780004 */ lw $t8, 4($s3) +/* 10385C 7F0CED2C ADF80004 */ sw $t8, 4($t7) +.L7F0CED30: +/* 103860 7F0CED30 01501821 */ addu $v1, $t2, $s0 +/* 103864 7F0CED34 0074082A */ slt $at, $v1, $s4 +/* 103868 7F0CED38 5420FFBE */ bnezl $at, .L7F0CEC34 +/* 10386C 7F0CED3C 8FB905A8 */ lw $t9, 0x5a8($sp) +.L7F0CED40: +/* 103870 7F0CED40 8FB90044 */ lw $t9, 0x44($sp) +/* 103874 7F0CED44 240E0001 */ li $t6, 1 +/* 103878 7F0CED48 028A1823 */ subu $v1, $s4, $t2 +/* 10387C 7F0CED4C 014E2804 */ sllv $a1, $t6, $t2 +/* 103880 7F0CED50 03D9082B */ sltu $at, $fp, $t9 +/* 103884 7F0CED54 A3A30585 */ sb $v1, 0x585($sp) +/* 103888 7F0CED58 14200004 */ bnez $at, .L7F0CED6C +/* 10388C 7F0CED5C 24A5FFFF */ addiu $a1, $a1, -1 +/* 103890 7F0CED60 240F0063 */ li $t7, 99 +/* 103894 7F0CED64 10000020 */ b .L7F0CEDE8 +/* 103898 7F0CED68 A3AF0584 */ sb $t7, 0x584($sp) +.L7F0CED6C: +/* 10389C 7F0CED6C 8FC20000 */ lw $v0, ($fp) +/* 1038A0 7F0CED70 8FB80600 */ lw $t8, 0x600($sp) +/* 1038A4 7F0CED74 8FA40600 */ lw $a0, 0x600($sp) +/* 1038A8 7F0CED78 8FAE0608 */ lw $t6, 0x608($sp) +/* 1038AC 7F0CED7C 0058082B */ sltu $at, $v0, $t8 +/* 1038B0 7F0CED80 1020000B */ beqz $at, .L7F0CEDB0 +/* 1038B4 7F0CED84 2C410100 */ sltiu $at, $v0, 0x100 +/* 1038B8 7F0CED88 10200004 */ beqz $at, .L7F0CED9C +/* 1038BC 7F0CED8C 2419000F */ li $t9, 15 +/* 1038C0 7F0CED90 240E0010 */ li $t6, 16 +/* 1038C4 7F0CED94 10000002 */ b .L7F0CEDA0 +/* 1038C8 7F0CED98 A3AE0584 */ sb $t6, 0x584($sp) +.L7F0CED9C: +/* 1038CC 7F0CED9C A3B90584 */ sb $t9, 0x584($sp) +.L7F0CEDA0: +/* 1038D0 7F0CEDA0 8FCF0000 */ lw $t7, ($fp) +/* 1038D4 7F0CEDA4 27DE0004 */ addiu $fp, $fp, 4 +/* 1038D8 7F0CEDA8 1000000F */ b .L7F0CEDE8 +/* 1038DC 7F0CEDAC A7AF0588 */ sh $t7, 0x588($sp) +.L7F0CEDB0: +/* 1038E0 7F0CEDB0 0044C023 */ subu $t8, $v0, $a0 +/* 1038E4 7F0CEDB4 030EC821 */ addu $t9, $t8, $t6 +/* 1038E8 7F0CEDB8 932F0000 */ lbu $t7, ($t9) +/* 1038EC 7F0CEDBC 8FB80604 */ lw $t8, 0x604($sp) +/* 1038F0 7F0CEDC0 27DE0004 */ addiu $fp, $fp, 4 +/* 1038F4 7F0CEDC4 A3AF0584 */ sb $t7, 0x584($sp) +/* 1038F8 7F0CEDC8 8FCEFFFC */ lw $t6, -4($fp) +/* 1038FC 7F0CEDCC 000EC840 */ sll $t9, $t6, 1 +/* 103900 7F0CEDD0 00047040 */ sll $t6, $a0, 1 +/* 103904 7F0CEDD4 03197821 */ addu $t7, $t8, $t9 +/* 103908 7F0CEDD8 000EC023 */ negu $t8, $t6 +/* 10390C 7F0CEDDC 01F8C821 */ addu $t9, $t7, $t8 +/* 103910 7F0CEDE0 972E0000 */ lhu $t6, ($t9) +/* 103914 7F0CEDE4 A7AE0588 */ sh $t6, 0x588($sp) +.L7F0CEDE8: +/* 103918 7F0CEDE8 015F3806 */ srlv $a3, $ra, $t2 +/* 10391C 7F0CEDEC 00E8082B */ sltu $at, $a3, $t0 +/* 103920 7F0CEDF0 1020000B */ beqz $at, .L7F0CEE20 +/* 103924 7F0CEDF4 240F0001 */ li $t7, 1 +/* 103928 7F0CEDF8 006F1004 */ sllv $v0, $t7, $v1 +.L7F0CEDFC: +/* 10392C 7F0CEDFC 8E610000 */ lw $at, ($s3) +/* 103930 7F0CEE00 0007C0C0 */ sll $t8, $a3, 3 +/* 103934 7F0CEE04 00D8C821 */ addu $t9, $a2, $t8 +/* 103938 7F0CEE08 AF210000 */ sw $at, ($t9) +/* 10393C 7F0CEE0C 8E6F0004 */ lw $t7, 4($s3) +/* 103940 7F0CEE10 00E23821 */ addu $a3, $a3, $v0 +/* 103944 7F0CEE14 00E8082B */ sltu $at, $a3, $t0 +/* 103948 7F0CEE18 1420FFF8 */ bnez $at, .L7F0CEDFC +/* 10394C 7F0CEE1C AF2F0004 */ sw $t7, 4($t9) +.L7F0CEE20: +/* 103950 7F0CEE20 8FA70040 */ lw $a3, 0x40($sp) +/* 103954 7F0CEE24 8D620000 */ lw $v0, ($t3) +/* 103958 7F0CEE28 03E7C024 */ and $t8, $ra, $a3 +/* 10395C 7F0CEE2C 13000005 */ beqz $t8, .L7F0CEE44 +.L7F0CEE30: +/* 103960 7F0CEE30 00077042 */ srl $t6, $a3, 1 +/* 103964 7F0CEE34 03E7F826 */ xor $ra, $ra, $a3 +/* 103968 7F0CEE38 03EEC824 */ and $t9, $ra, $t6 +/* 10396C 7F0CEE3C 1720FFFC */ bnez $t9, .L7F0CEE30 +/* 103970 7F0CEE40 01C03825 */ move $a3, $t6 +.L7F0CEE44: +/* 103974 7F0CEE44 03E7F826 */ xor $ra, $ra, $a3 +/* 103978 7F0CEE48 03E57824 */ and $t7, $ra, $a1 +/* 10397C 7F0CEE4C 11E2000B */ beq $t7, $v0, .L7F0CEE7C +/* 103980 7F0CEE50 02C02825 */ move $a1, $s6 +.L7F0CEE54: +/* 103984 7F0CEE54 01505023 */ subu $t2, $t2, $s0 +/* 103988 7F0CEE58 24180001 */ li $t8, 1 +/* 10398C 7F0CEE5C 01587004 */ sllv $t6, $t8, $t2 +/* 103990 7F0CEE60 8D78FFFC */ lw $t8, -4($t3) +/* 103994 7F0CEE64 25D9FFFF */ addiu $t9, $t6, -1 +/* 103998 7F0CEE68 03F97824 */ and $t7, $ra, $t9 +/* 10399C 7F0CEE6C 258CFFFF */ addiu $t4, $t4, -1 +/* 1039A0 7F0CEE70 25ADFFFC */ addiu $t5, $t5, -4 +/* 1039A4 7F0CEE74 15F8FFF7 */ bne $t7, $t8, .L7F0CEE54 +/* 1039A8 7F0CEE78 256BFFFC */ addiu $t3, $t3, -4 +.L7F0CEE7C: +/* 1039AC 7F0CEE7C 16C0FF66 */ bnez $s6, .L7F0CEC18 +/* 1039B0 7F0CEE80 26D6FFFF */ addiu $s6, $s6, -1 +.L7F0CEE84: +/* 1039B4 7F0CEE84 8FAE005C */ lw $t6, 0x5c($sp) +/* 1039B8 7F0CEE88 8FAF05A8 */ lw $t7, 0x5a8($sp) +/* 1039BC 7F0CEE8C 26940001 */ addiu $s4, $s4, 1 +/* 1039C0 7F0CEE90 25D90004 */ addiu $t9, $t6, 4 +/* 1039C4 7F0CEE94 01F4082A */ slt $at, $t7, $s4 +/* 1039C8 7F0CEE98 1020FF4E */ beqz $at, .L7F0CEBD4 +/* 1039CC 7F0CEE9C AFB9005C */ sw $t9, 0x5c($sp) +/* 1039D0 7F0CEEA0 AFB5060C */ sw $s5, 0x60c($sp) +.L7F0CEEA4: +/* 1039D4 7F0CEEA4 8FA20074 */ lw $v0, 0x74($sp) +/* 1039D8 7F0CEEA8 0002C02B */ sltu $t8, $zero, $v0 +/* 1039DC 7F0CEEAC 13000004 */ beqz $t8, .L7F0CEEC0 +/* 1039E0 7F0CEEB0 03001025 */ move $v0, $t8 +/* 1039E4 7F0CEEB4 8FA205A8 */ lw $v0, 0x5a8($sp) +/* 1039E8 7F0CEEB8 384E0001 */ xori $t6, $v0, 1 +/* 1039EC 7F0CEEBC 000E102B */ sltu $v0, $zero, $t6 +.L7F0CEEC0: +/* 1039F0 7F0CEEC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 1039F4 7F0CEEC4 8FB00018 */ lw $s0, 0x18($sp) +/* 1039F8 7F0CEEC8 8FB1001C */ lw $s1, 0x1c($sp) +/* 1039FC 7F0CEECC 8FB20020 */ lw $s2, 0x20($sp) +/* 103A00 7F0CEED0 8FB30024 */ lw $s3, 0x24($sp) +/* 103A04 7F0CEED4 8FB40028 */ lw $s4, 0x28($sp) +/* 103A08 7F0CEED8 8FB5002C */ lw $s5, 0x2c($sp) +/* 103A0C 7F0CEEDC 8FB60030 */ lw $s6, 0x30($sp) +/* 103A10 7F0CEEE0 8FB70034 */ lw $s7, 0x34($sp) +/* 103A14 7F0CEEE4 8FBE0038 */ lw $fp, 0x38($sp) +/* 103A18 7F0CEEE8 03E00008 */ jr $ra +/* 103A1C 7F0CEEEC 27BD05F8 */ addiu $sp, $sp, 0x5f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CEEF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CEEF0 +/* 103A20 7F0CEEF0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 103A24 7F0CEEF4 3C098005 */ lui $t1, %hi(D_8004E9B0) +/* 103A28 7F0CEEF8 2529E9B0 */ addiu $t1, %lo(D_8004E9B0) # addiu $t1, $t1, -0x1650 +/* 103A2C 7F0CEEFC AFBE0038 */ sw $fp, 0x38($sp) +/* 103A30 7F0CEF00 AFB70034 */ sw $s7, 0x34($sp) +/* 103A34 7F0CEF04 AFB5002C */ sw $s5, 0x2c($sp) +/* 103A38 7F0CEF08 AFB40028 */ sw $s4, 0x28($sp) +/* 103A3C 7F0CEF0C AFB30024 */ sw $s3, 0x24($sp) +/* 103A40 7F0CEF10 AFB1001C */ sw $s1, 0x1c($sp) +/* 103A44 7F0CEF14 00067840 */ sll $t7, $a2, 1 +/* 103A48 7F0CEF18 0007C840 */ sll $t9, $a3, 1 +/* 103A4C 7F0CEF1C AFBF003C */ sw $ra, 0x3c($sp) +/* 103A50 7F0CEF20 AFA7007C */ sw $a3, 0x7c($sp) +/* 103A54 7F0CEF24 3C148009 */ lui $s4, %hi(dword_CODE_bss_8008D364) +/* 103A58 7F0CEF28 3C118009 */ lui $s1, %hi(dword_CODE_bss_8008D368) +/* 103A5C 7F0CEF2C 3C158009 */ lui $s5, %hi(dword_CODE_bss_8008D35C) +/* 103A60 7F0CEF30 012F6021 */ addu $t4, $t1, $t7 +/* 103A64 7F0CEF34 01396821 */ addu $t5, $t1, $t9 +/* 103A68 7F0CEF38 3C138009 */ lui $s3, %hi(dword_CODE_bss_8008D358) +/* 103A6C 7F0CEF3C 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D354) +/* 103A70 7F0CEF40 3C1E8009 */ lui $fp, %hi(dword_CODE_bss_8008D350) +/* 103A74 7F0CEF44 AFB60030 */ sw $s6, 0x30($sp) +/* 103A78 7F0CEF48 AFB20020 */ sw $s2, 0x20($sp) +/* 103A7C 7F0CEF4C AFB00018 */ sw $s0, 0x18($sp) +/* 103A80 7F0CEF50 AFA40070 */ sw $a0, 0x70($sp) +/* 103A84 7F0CEF54 AFA50074 */ sw $a1, 0x74($sp) +/* 103A88 7F0CEF58 AFA60078 */ sw $a2, 0x78($sp) +/* 103A8C 7F0CEF5C 8E94D364 */ lw $s4, %lo(dword_CODE_bss_8008D364)($s4) +/* 103A90 7F0CEF60 8E31D368 */ lw $s1, %lo(dword_CODE_bss_8008D368)($s1) +/* 103A94 7F0CEF64 8EB5D35C */ lw $s5, %lo(dword_CODE_bss_8008D35C)($s5) +/* 103A98 7F0CEF68 958A0000 */ lhu $t2, ($t4) +/* 103A9C 7F0CEF6C 95AB0000 */ lhu $t3, ($t5) +/* 103AA0 7F0CEF70 27DED350 */ addiu $fp, %lo(dword_CODE_bss_8008D350) # addiu $fp, $fp, -0x2cb0 +/* 103AA4 7F0CEF74 26F7D354 */ addiu $s7, %lo(dword_CODE_bss_8008D354) # addiu $s7, $s7, -0x2cac +/* 103AA8 7F0CEF78 2673D358 */ addiu $s3, %lo(dword_CODE_bss_8008D358) # addiu $s3, $s3, -0x2ca8 +/* 103AAC 7F0CEF7C 34078000 */ li $a3, 32768 +/* 103AB0 7F0CEF80 00C0F825 */ move $ra, $a2 +.L7F0CEF84: +/* 103AB4 7F0CEF84 023F082B */ sltu $at, $s1, $ra +.L7F0CEF88: +/* 103AB8 7F0CEF88 5020000D */ beql $at, $zero, .L7F0CEFC0 +/* 103ABC 7F0CEF8C 8FB90070 */ lw $t9, 0x70($sp) +/* 103AC0 7F0CEF90 8FC30000 */ lw $v1, ($fp) +.L7F0CEF94: +/* 103AC4 7F0CEF94 8E620000 */ lw $v0, ($s3) +/* 103AC8 7F0CEF98 00627821 */ addu $t7, $v1, $v0 +/* 103ACC 7F0CEF9C 91F80000 */ lbu $t8, ($t7) +/* 103AD0 7F0CEFA0 244E0001 */ addiu $t6, $v0, 1 +/* 103AD4 7F0CEFA4 AE6E0000 */ sw $t6, ($s3) +/* 103AD8 7F0CEFA8 0238C804 */ sllv $t9, $t8, $s1 +/* 103ADC 7F0CEFAC 26310008 */ addiu $s1, $s1, 8 +/* 103AE0 7F0CEFB0 023F082B */ sltu $at, $s1, $ra +/* 103AE4 7F0CEFB4 1420FFF7 */ bnez $at, .L7F0CEF94 +/* 103AE8 7F0CEFB8 0299A025 */ or $s4, $s4, $t9 +/* 103AEC 7F0CEFBC 8FB90070 */ lw $t9, 0x70($sp) +.L7F0CEFC0: +/* 103AF0 7F0CEFC0 028A7824 */ and $t7, $s4, $t2 +/* 103AF4 7F0CEFC4 000FC0C0 */ sll $t8, $t7, 3 +/* 103AF8 7F0CEFC8 03193021 */ addu $a2, $t8, $t9 +/* 103AFC 7F0CEFCC 90D20000 */ lbu $s2, ($a2) +/* 103B00 7F0CEFD0 2E410011 */ sltiu $at, $s2, 0x11 +/* 103B04 7F0CEFD4 5420001E */ bnezl $at, .L7F0CF050 +/* 103B08 7F0CEFD8 90C20001 */ lbu $v0, 1($a2) +/* 103B0C 7F0CEFDC 90C20001 */ lbu $v0, 1($a2) +.L7F0CEFE0: +/* 103B10 7F0CEFE0 2652FFF0 */ addiu $s2, $s2, -0x10 +/* 103B14 7F0CEFE4 02228823 */ subu $s1, $s1, $v0 +/* 103B18 7F0CEFE8 0232082B */ sltu $at, $s1, $s2 +/* 103B1C 7F0CEFEC 1020000C */ beqz $at, .L7F0CF020 +/* 103B20 7F0CEFF0 0054A006 */ srlv $s4, $s4, $v0 +/* 103B24 7F0CEFF4 8FC30000 */ lw $v1, ($fp) +.L7F0CEFF8: +/* 103B28 7F0CEFF8 8E620000 */ lw $v0, ($s3) +/* 103B2C 7F0CEFFC 00627021 */ addu $t6, $v1, $v0 +/* 103B30 7F0CF000 91CF0000 */ lbu $t7, ($t6) +/* 103B34 7F0CF004 24590001 */ addiu $t9, $v0, 1 +/* 103B38 7F0CF008 AE790000 */ sw $t9, ($s3) +/* 103B3C 7F0CF00C 022FC004 */ sllv $t8, $t7, $s1 +/* 103B40 7F0CF010 26310008 */ addiu $s1, $s1, 8 +/* 103B44 7F0CF014 0232082B */ sltu $at, $s1, $s2 +/* 103B48 7F0CF018 1420FFF7 */ bnez $at, .L7F0CEFF8 +/* 103B4C 7F0CF01C 0298A025 */ or $s4, $s4, $t8 +.L7F0CF020: +/* 103B50 7F0CF020 00127040 */ sll $t6, $s2, 1 +/* 103B54 7F0CF024 012E7821 */ addu $t7, $t1, $t6 +/* 103B58 7F0CF028 95F80000 */ lhu $t8, ($t7) +/* 103B5C 7F0CF02C 8CCF0004 */ lw $t7, 4($a2) +/* 103B60 7F0CF030 0314C824 */ and $t9, $t8, $s4 +/* 103B64 7F0CF034 001970C0 */ sll $t6, $t9, 3 +/* 103B68 7F0CF038 01CF3021 */ addu $a2, $t6, $t7 +/* 103B6C 7F0CF03C 90D20000 */ lbu $s2, ($a2) +/* 103B70 7F0CF040 2E410011 */ sltiu $at, $s2, 0x11 +/* 103B74 7F0CF044 5020FFE6 */ beql $at, $zero, .L7F0CEFE0 +/* 103B78 7F0CF048 90C20001 */ lbu $v0, 1($a2) +/* 103B7C 7F0CF04C 90C20001 */ lbu $v0, 1($a2) +.L7F0CF050: +/* 103B80 7F0CF050 24010010 */ li $at, 16 +/* 103B84 7F0CF054 0054A006 */ srlv $s4, $s4, $v0 +/* 103B88 7F0CF058 16410013 */ bne $s2, $at, .L7F0CF0A8 +/* 103B8C 7F0CF05C 02228823 */ subu $s1, $s1, $v0 +/* 103B90 7F0CF060 8EF80000 */ lw $t8, ($s7) +/* 103B94 7F0CF064 8FD90000 */ lw $t9, ($fp) +/* 103B98 7F0CF068 8E6E0000 */ lw $t6, ($s3) +/* 103B9C 7F0CF06C 03152821 */ addu $a1, $t8, $s5 +/* 103BA0 7F0CF070 00A01025 */ move $v0, $a1 +/* 103BA4 7F0CF074 032E2021 */ addu $a0, $t9, $t6 +/* 103BA8 7F0CF078 00A4082B */ sltu $at, $a1, $a0 +/* 103BAC 7F0CF07C 14200006 */ bnez $at, .L7F0CF098 +/* 103BB0 7F0CF080 00447823 */ subu $t7, $v0, $a0 +/* 103BB4 7F0CF084 01E7082B */ sltu $at, $t7, $a3 +/* 103BB8 7F0CF088 50200004 */ beql $at, $zero, .L7F0CF09C +/* 103BBC 7F0CF08C 94D80004 */ lhu $t8, 4($a2) +.L7F0CF090: +/* 103BC0 7F0CF090 1000FFFF */ b .L7F0CF090 +/* 103BC4 7F0CF094 00000000 */ nop +.L7F0CF098: +/* 103BC8 7F0CF098 94D80004 */ lhu $t8, 4($a2) +.L7F0CF09C: +/* 103BCC 7F0CF09C 26B50001 */ addiu $s5, $s5, 1 +/* 103BD0 7F0CF0A0 1000FFB8 */ b .L7F0CEF84 +/* 103BD4 7F0CF0A4 A0B80000 */ sb $t8, ($a1) +.L7F0CF0A8: +/* 103BD8 7F0CF0A8 2401000F */ li $at, 15 +/* 103BDC 7F0CF0AC 124100A4 */ beq $s2, $at, .L7F0CF340 +/* 103BE0 7F0CF0B0 0232082B */ sltu $at, $s1, $s2 +/* 103BE4 7F0CF0B4 5020000D */ beql $at, $zero, .L7F0CF0EC +/* 103BE8 7F0CF0B8 0012C840 */ sll $t9, $s2, 1 +/* 103BEC 7F0CF0BC 8FC30000 */ lw $v1, ($fp) +.L7F0CF0C0: +/* 103BF0 7F0CF0C0 8E620000 */ lw $v0, ($s3) +/* 103BF4 7F0CF0C4 0062C821 */ addu $t9, $v1, $v0 +/* 103BF8 7F0CF0C8 932E0000 */ lbu $t6, ($t9) +/* 103BFC 7F0CF0CC 24580001 */ addiu $t8, $v0, 1 +/* 103C00 7F0CF0D0 AE780000 */ sw $t8, ($s3) +/* 103C04 7F0CF0D4 022E7804 */ sllv $t7, $t6, $s1 +/* 103C08 7F0CF0D8 26310008 */ addiu $s1, $s1, 8 +/* 103C0C 7F0CF0DC 0232082B */ sltu $at, $s1, $s2 +/* 103C10 7F0CF0E0 1420FFF7 */ bnez $at, .L7F0CF0C0 +/* 103C14 7F0CF0E4 028FA025 */ or $s4, $s4, $t7 +/* 103C18 7F0CF0E8 0012C840 */ sll $t9, $s2, 1 +.L7F0CF0EC: +/* 103C1C 7F0CF0EC 01397021 */ addu $t6, $t1, $t9 +/* 103C20 7F0CF0F0 95CF0000 */ lhu $t7, ($t6) +/* 103C24 7F0CF0F4 8FAE007C */ lw $t6, 0x7c($sp) +/* 103C28 7F0CF0F8 94D90004 */ lhu $t9, 4($a2) +/* 103C2C 7F0CF0FC 02328823 */ subu $s1, $s1, $s2 +/* 103C30 7F0CF100 01F4C024 */ and $t8, $t7, $s4 +/* 103C34 7F0CF104 022E082B */ sltu $at, $s1, $t6 +/* 103C38 7F0CF108 0254A006 */ srlv $s4, $s4, $s2 +/* 103C3C 7F0CF10C 1020000D */ beqz $at, .L7F0CF144 +/* 103C40 7F0CF110 03194021 */ addu $t0, $t8, $t9 +/* 103C44 7F0CF114 8FC30000 */ lw $v1, ($fp) +/* 103C48 7F0CF118 01C02025 */ move $a0, $t6 +.L7F0CF11C: +/* 103C4C 7F0CF11C 8E620000 */ lw $v0, ($s3) +/* 103C50 7F0CF120 00627821 */ addu $t7, $v1, $v0 +/* 103C54 7F0CF124 91F80000 */ lbu $t8, ($t7) +/* 103C58 7F0CF128 244E0001 */ addiu $t6, $v0, 1 +/* 103C5C 7F0CF12C AE6E0000 */ sw $t6, ($s3) +/* 103C60 7F0CF130 0238C804 */ sllv $t9, $t8, $s1 +/* 103C64 7F0CF134 26310008 */ addiu $s1, $s1, 8 +/* 103C68 7F0CF138 0224082B */ sltu $at, $s1, $a0 +/* 103C6C 7F0CF13C 1420FFF7 */ bnez $at, .L7F0CF11C +/* 103C70 7F0CF140 0299A025 */ or $s4, $s4, $t9 +.L7F0CF144: +/* 103C74 7F0CF144 8FB90074 */ lw $t9, 0x74($sp) +/* 103C78 7F0CF148 028B7824 */ and $t7, $s4, $t3 +/* 103C7C 7F0CF14C 000FC0C0 */ sll $t8, $t7, 3 +/* 103C80 7F0CF150 03193021 */ addu $a2, $t8, $t9 +/* 103C84 7F0CF154 90D20000 */ lbu $s2, ($a2) +/* 103C88 7F0CF158 2E410011 */ sltiu $at, $s2, 0x11 +/* 103C8C 7F0CF15C 5420001E */ bnezl $at, .L7F0CF1D8 +/* 103C90 7F0CF160 90C20001 */ lbu $v0, 1($a2) +/* 103C94 7F0CF164 90C20001 */ lbu $v0, 1($a2) +.L7F0CF168: +/* 103C98 7F0CF168 2652FFF0 */ addiu $s2, $s2, -0x10 +/* 103C9C 7F0CF16C 02228823 */ subu $s1, $s1, $v0 +/* 103CA0 7F0CF170 0232082B */ sltu $at, $s1, $s2 +/* 103CA4 7F0CF174 1020000C */ beqz $at, .L7F0CF1A8 +/* 103CA8 7F0CF178 0054A006 */ srlv $s4, $s4, $v0 +/* 103CAC 7F0CF17C 8FC30000 */ lw $v1, ($fp) +.L7F0CF180: +/* 103CB0 7F0CF180 8E620000 */ lw $v0, ($s3) +/* 103CB4 7F0CF184 00627021 */ addu $t6, $v1, $v0 +/* 103CB8 7F0CF188 91CF0000 */ lbu $t7, ($t6) +/* 103CBC 7F0CF18C 24590001 */ addiu $t9, $v0, 1 +/* 103CC0 7F0CF190 AE790000 */ sw $t9, ($s3) +/* 103CC4 7F0CF194 022FC004 */ sllv $t8, $t7, $s1 +/* 103CC8 7F0CF198 26310008 */ addiu $s1, $s1, 8 +/* 103CCC 7F0CF19C 0232082B */ sltu $at, $s1, $s2 +/* 103CD0 7F0CF1A0 1420FFF7 */ bnez $at, .L7F0CF180 +/* 103CD4 7F0CF1A4 0298A025 */ or $s4, $s4, $t8 +.L7F0CF1A8: +/* 103CD8 7F0CF1A8 00127040 */ sll $t6, $s2, 1 +/* 103CDC 7F0CF1AC 012E7821 */ addu $t7, $t1, $t6 +/* 103CE0 7F0CF1B0 95F80000 */ lhu $t8, ($t7) +/* 103CE4 7F0CF1B4 8CCF0004 */ lw $t7, 4($a2) +/* 103CE8 7F0CF1B8 0314C824 */ and $t9, $t8, $s4 +/* 103CEC 7F0CF1BC 001970C0 */ sll $t6, $t9, 3 +/* 103CF0 7F0CF1C0 01CF3021 */ addu $a2, $t6, $t7 +/* 103CF4 7F0CF1C4 90D20000 */ lbu $s2, ($a2) +/* 103CF8 7F0CF1C8 2E410011 */ sltiu $at, $s2, 0x11 +/* 103CFC 7F0CF1CC 5020FFE6 */ beql $at, $zero, .L7F0CF168 +/* 103D00 7F0CF1D0 90C20001 */ lbu $v0, 1($a2) +/* 103D04 7F0CF1D4 90C20001 */ lbu $v0, 1($a2) +.L7F0CF1D8: +/* 103D08 7F0CF1D8 02228823 */ subu $s1, $s1, $v0 +/* 103D0C 7F0CF1DC 0232082B */ sltu $at, $s1, $s2 +/* 103D10 7F0CF1E0 1020000C */ beqz $at, .L7F0CF214 +/* 103D14 7F0CF1E4 0054A006 */ srlv $s4, $s4, $v0 +/* 103D18 7F0CF1E8 8FC30000 */ lw $v1, ($fp) +.L7F0CF1EC: +/* 103D1C 7F0CF1EC 8E620000 */ lw $v0, ($s3) +/* 103D20 7F0CF1F0 0062C021 */ addu $t8, $v1, $v0 +/* 103D24 7F0CF1F4 93190000 */ lbu $t9, ($t8) +/* 103D28 7F0CF1F8 244F0001 */ addiu $t7, $v0, 1 +/* 103D2C 7F0CF1FC AE6F0000 */ sw $t7, ($s3) +/* 103D30 7F0CF200 02397004 */ sllv $t6, $t9, $s1 +/* 103D34 7F0CF204 26310008 */ addiu $s1, $s1, 8 +/* 103D38 7F0CF208 0232082B */ sltu $at, $s1, $s2 +/* 103D3C 7F0CF20C 1420FFF7 */ bnez $at, .L7F0CF1EC +/* 103D40 7F0CF210 028EA025 */ or $s4, $s4, $t6 +.L7F0CF214: +/* 103D44 7F0CF214 94D80004 */ lhu $t8, 4($a2) +/* 103D48 7F0CF218 00127040 */ sll $t6, $s2, 1 +/* 103D4C 7F0CF21C 012E7821 */ addu $t7, $t1, $t6 +/* 103D50 7F0CF220 02B8C823 */ subu $t9, $s5, $t8 +/* 103D54 7F0CF224 95F80000 */ lhu $t8, ($t7) +/* 103D58 7F0CF228 02328823 */ subu $s1, $s1, $s2 +/* 103D5C 7F0CF22C 03147024 */ and $t6, $t8, $s4 +/* 103D60 7F0CF230 032E8023 */ subu $s0, $t9, $t6 +/* 103D64 7F0CF234 0254A006 */ srlv $s4, $s4, $s2 +/* 103D68 7F0CF238 01009025 */ move $s2, $t0 +.L7F0CF23C: +/* 103D6C 7F0CF23C 02B07823 */ subu $t7, $s5, $s0 +/* 103D70 7F0CF240 01F2082B */ sltu $at, $t7, $s2 +/* 103D74 7F0CF244 14200025 */ bnez $at, .L7F0CF2DC +/* 103D78 7F0CF248 00004025 */ move $t0, $zero +/* 103D7C 7F0CF24C 8EE30000 */ lw $v1, ($s7) +/* 103D80 7F0CF250 8FD80000 */ lw $t8, ($fp) +/* 103D84 7F0CF254 8E790000 */ lw $t9, ($s3) +/* 103D88 7F0CF258 02B2B021 */ addu $s6, $s5, $s2 +/* 103D8C 7F0CF25C 02C31021 */ addu $v0, $s6, $v1 +/* 103D90 7F0CF260 2442FFFF */ addiu $v0, $v0, -1 +/* 103D94 7F0CF264 03192021 */ addu $a0, $t8, $t9 +/* 103D98 7F0CF268 0044082B */ sltu $at, $v0, $a0 +/* 103D9C 7F0CF26C 14200006 */ bnez $at, .L7F0CF288 +/* 103DA0 7F0CF270 00447023 */ subu $t6, $v0, $a0 +/* 103DA4 7F0CF274 01C7082B */ sltu $at, $t6, $a3 +/* 103DA8 7F0CF278 50200004 */ beql $at, $zero, .L7F0CF28C +/* 103DAC 7F0CF27C 00752021 */ addu $a0, $v1, $s5 +.L7F0CF280: +/* 103DB0 7F0CF280 1000FFFF */ b .L7F0CF280 +/* 103DB4 7F0CF284 00000000 */ nop +.L7F0CF288: +/* 103DB8 7F0CF288 00752021 */ addu $a0, $v1, $s5 +.L7F0CF28C: +/* 103DBC 7F0CF28C 00702821 */ addu $a1, $v1, $s0 +/* 103DC0 7F0CF290 02403025 */ move $a2, $s2 +/* 103DC4 7F0CF294 AFA80068 */ sw $t0, 0x68($sp) +/* 103DC8 7F0CF298 AFAA0058 */ sw $t2, 0x58($sp) +/* 103DCC 7F0CF29C AFAB0054 */ sw $t3, 0x54($sp) +/* 103DD0 7F0CF2A0 AFAC0044 */ sw $t4, 0x44($sp) +/* 103DD4 7F0CF2A4 0C004E14 */ jal memcpy +/* 103DD8 7F0CF2A8 AFAD0040 */ sw $t5, 0x40($sp) +/* 103DDC 7F0CF2AC 3C098005 */ lui $t1, %hi(D_8004E9B0) +/* 103DE0 7F0CF2B0 2529E9B0 */ addiu $t1, %lo(D_8004E9B0) # addiu $t1, $t1, -0x1650 +/* 103DE4 7F0CF2B4 34078000 */ li $a3, 32768 +/* 103DE8 7F0CF2B8 8FA80068 */ lw $t0, 0x68($sp) +/* 103DEC 7F0CF2BC 8FAA0058 */ lw $t2, 0x58($sp) +/* 103DF0 7F0CF2C0 8FAB0054 */ lw $t3, 0x54($sp) +/* 103DF4 7F0CF2C4 8FAC0044 */ lw $t4, 0x44($sp) +/* 103DF8 7F0CF2C8 8FAD0040 */ lw $t5, 0x40($sp) +/* 103DFC 7F0CF2CC 8FBF0078 */ lw $ra, 0x78($sp) +/* 103E00 7F0CF2D0 02C0A825 */ move $s5, $s6 +/* 103E04 7F0CF2D4 10000016 */ b .L7F0CF330 +/* 103E08 7F0CF2D8 02128021 */ addu $s0, $s0, $s2 +.L7F0CF2DC: +/* 103E0C 7F0CF2DC 8EE30000 */ lw $v1, ($s7) +/* 103E10 7F0CF2E0 8FCF0000 */ lw $t7, ($fp) +/* 103E14 7F0CF2E4 8E780000 */ lw $t8, ($s3) +/* 103E18 7F0CF2E8 00752821 */ addu $a1, $v1, $s5 +/* 103E1C 7F0CF2EC 00A01025 */ move $v0, $a1 +/* 103E20 7F0CF2F0 01F82021 */ addu $a0, $t7, $t8 +/* 103E24 7F0CF2F4 00A4082B */ sltu $at, $a1, $a0 +/* 103E28 7F0CF2F8 14200006 */ bnez $at, .L7F0CF314 +/* 103E2C 7F0CF2FC 0044C823 */ subu $t9, $v0, $a0 +/* 103E30 7F0CF300 0327082B */ sltu $at, $t9, $a3 +/* 103E34 7F0CF304 50200004 */ beql $at, $zero, .L7F0CF318 +/* 103E38 7F0CF308 02037021 */ addu $t6, $s0, $v1 +.L7F0CF30C: +/* 103E3C 7F0CF30C 1000FFFF */ b .L7F0CF30C +/* 103E40 7F0CF310 00000000 */ nop +.L7F0CF314: +/* 103E44 7F0CF314 02037021 */ addu $t6, $s0, $v1 +.L7F0CF318: +/* 103E48 7F0CF318 91CF0000 */ lbu $t7, ($t6) +/* 103E4C 7F0CF31C 2652FFFF */ addiu $s2, $s2, -1 +/* 103E50 7F0CF320 26100001 */ addiu $s0, $s0, 1 +/* 103E54 7F0CF324 26B50001 */ addiu $s5, $s5, 1 +/* 103E58 7F0CF328 1640FFEC */ bnez $s2, .L7F0CF2DC +/* 103E5C 7F0CF32C A0AF0000 */ sb $t7, ($a1) +.L7F0CF330: +/* 103E60 7F0CF330 5500FFC2 */ bnezl $t0, .L7F0CF23C +/* 103E64 7F0CF334 01009025 */ move $s2, $t0 +/* 103E68 7F0CF338 1000FF13 */ b .L7F0CEF88 +/* 103E6C 7F0CF33C 023F082B */ sltu $at, $s1, $ra +.L7F0CF340: +/* 103E70 7F0CF340 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 103E74 7F0CF344 AC35D35C */ sw $s5, %lo(dword_CODE_bss_8008D35C)($at) +/* 103E78 7F0CF348 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 103E7C 7F0CF34C AC34D364 */ sw $s4, %lo(dword_CODE_bss_8008D364)($at) +/* 103E80 7F0CF350 8FBF003C */ lw $ra, 0x3c($sp) +/* 103E84 7F0CF354 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D368) +/* 103E88 7F0CF358 AC31D368 */ sw $s1, %lo(dword_CODE_bss_8008D368)($at) +/* 103E8C 7F0CF35C 8FB1001C */ lw $s1, 0x1c($sp) +/* 103E90 7F0CF360 8FB40028 */ lw $s4, 0x28($sp) +/* 103E94 7F0CF364 8FB5002C */ lw $s5, 0x2c($sp) +/* 103E98 7F0CF368 8FB00018 */ lw $s0, 0x18($sp) +/* 103E9C 7F0CF36C 8FB20020 */ lw $s2, 0x20($sp) +/* 103EA0 7F0CF370 8FB30024 */ lw $s3, 0x24($sp) +/* 103EA4 7F0CF374 8FB60030 */ lw $s6, 0x30($sp) +/* 103EA8 7F0CF378 8FB70034 */ lw $s7, 0x34($sp) +/* 103EAC 7F0CF37C 8FBE0038 */ lw $fp, 0x38($sp) +/* 103EB0 7F0CF380 27BD0070 */ addiu $sp, $sp, 0x70 +/* 103EB4 7F0CF384 03E00008 */ jr $ra +/* 103EB8 7F0CF388 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type0 +/* 103EBC 7F0CF38C 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008D368) +/* 103EC0 7F0CF390 256BD368 */ addiu $t3, %lo(dword_CODE_bss_8008D368) # addiu $t3, $t3, -0x2c98 +/* 103EC4 7F0CF394 8D640000 */ lw $a0, ($t3) +/* 103EC8 7F0CF398 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D364) +/* 103ECC 7F0CF39C 254AD364 */ addiu $t2, %lo(dword_CODE_bss_8008D364) # addiu $t2, $t2, -0x2c9c +/* 103ED0 7F0CF3A0 30820007 */ andi $v0, $a0, 7 +/* 103ED4 7F0CF3A4 8D430000 */ lw $v1, ($t2) +/* 103ED8 7F0CF3A8 3C0C8009 */ lui $t4, %hi(dword_CODE_bss_8008D35C) +/* 103EDC 7F0CF3AC 00822023 */ subu $a0, $a0, $v0 +/* 103EE0 7F0CF3B0 258CD35C */ addiu $t4, %lo(dword_CODE_bss_8008D35C) # addiu $t4, $t4, -0x2ca4 +/* 103EE4 7F0CF3B4 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 103EE8 7F0CF3B8 2C810010 */ sltiu $at, $a0, 0x10 +/* 103EEC 7F0CF3BC AFB1000C */ sw $s1, 0xc($sp) +/* 103EF0 7F0CF3C0 AFB00008 */ sw $s0, 8($sp) +/* 103EF4 7F0CF3C4 8D850000 */ lw $a1, ($t4) +/* 103EF8 7F0CF3C8 1020000F */ beqz $at, .L7F0CF408 +/* 103EFC 7F0CF3CC 00431806 */ srlv $v1, $v1, $v0 +/* 103F00 7F0CF3D0 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103F04 7F0CF3D4 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) +/* 103F08 7F0CF3D8 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 +/* 103F0C 7F0CF3DC 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF3E0: +/* 103F10 7F0CF3E0 8DA70000 */ lw $a3, ($t5) +/* 103F14 7F0CF3E4 00C77021 */ addu $t6, $a2, $a3 +/* 103F18 7F0CF3E8 91CF0000 */ lbu $t7, ($t6) +/* 103F1C 7F0CF3EC 24F90001 */ addiu $t9, $a3, 1 +/* 103F20 7F0CF3F0 ADB90000 */ sw $t9, ($t5) +/* 103F24 7F0CF3F4 008FC004 */ sllv $t8, $t7, $a0 +/* 103F28 7F0CF3F8 24840008 */ addiu $a0, $a0, 8 +/* 103F2C 7F0CF3FC 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F30 7F0CF400 1420FFF7 */ bnez $at, .L7F0CF3E0 +/* 103F34 7F0CF404 00781825 */ or $v1, $v1, $t8 +.L7F0CF408: +/* 103F38 7F0CF408 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 103F3C 7F0CF40C 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) +/* 103F40 7F0CF410 3062FFFF */ andi $v0, $v1, 0xffff +/* 103F44 7F0CF414 00037402 */ srl $t6, $v1, 0x10 +/* 103F48 7F0CF418 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F4C 7F0CF41C 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 +/* 103F50 7F0CF420 1020000D */ beqz $at, .L7F0CF458 +/* 103F54 7F0CF424 01C01825 */ move $v1, $t6 +/* 103F58 7F0CF428 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103F5C 7F0CF42C 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF430: +/* 103F60 7F0CF430 8DA70000 */ lw $a3, ($t5) +/* 103F64 7F0CF434 00C77821 */ addu $t7, $a2, $a3 +/* 103F68 7F0CF438 91F80000 */ lbu $t8, ($t7) +/* 103F6C 7F0CF43C 24EE0001 */ addiu $t6, $a3, 1 +/* 103F70 7F0CF440 ADAE0000 */ sw $t6, ($t5) +/* 103F74 7F0CF444 0098C804 */ sllv $t9, $t8, $a0 +/* 103F78 7F0CF448 24840008 */ addiu $a0, $a0, 8 +/* 103F7C 7F0CF44C 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F80 7F0CF450 1420FFF7 */ bnez $at, .L7F0CF430 +/* 103F84 7F0CF454 00791825 */ or $v1, $v1, $t9 +.L7F0CF458: +/* 103F88 7F0CF458 00403025 */ move $a2, $v0 +/* 103F8C 7F0CF45C 00037C02 */ srl $t7, $v1, 0x10 +/* 103F90 7F0CF460 01E01825 */ move $v1, $t7 +/* 103F94 7F0CF464 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 103F98 7F0CF468 10400027 */ beqz $v0, .L7F0CF508 +/* 103F9C 7F0CF46C 2442FFFF */ addiu $v0, $v0, -1 +/* 103FA0 7F0CF470 3C108009 */ lui $s0, %hi(dword_CODE_bss_8008D354) +/* 103FA4 7F0CF474 2610D354 */ addiu $s0, %lo(dword_CODE_bss_8008D354) # addiu $s0, $s0, -0x2cac +/* 103FA8 7F0CF478 34118000 */ li $s1, 32768 +.L7F0CF47C: +/* 103FAC 7F0CF47C 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103FB0 7F0CF480 2C810008 */ sltiu $at, $a0, 8 +/* 103FB4 7F0CF484 1020000B */ beqz $at, .L7F0CF4B4 +/* 103FB8 7F0CF488 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF48C: +/* 103FBC 7F0CF48C 8DA70000 */ lw $a3, ($t5) +/* 103FC0 7F0CF490 00C7C021 */ addu $t8, $a2, $a3 +/* 103FC4 7F0CF494 93190000 */ lbu $t9, ($t8) +/* 103FC8 7F0CF498 24EF0001 */ addiu $t7, $a3, 1 +/* 103FCC 7F0CF49C ADAF0000 */ sw $t7, ($t5) +/* 103FD0 7F0CF4A0 00997004 */ sllv $t6, $t9, $a0 +/* 103FD4 7F0CF4A4 24840008 */ addiu $a0, $a0, 8 +/* 103FD8 7F0CF4A8 2C810008 */ sltiu $at, $a0, 8 +/* 103FDC 7F0CF4AC 1420FFF7 */ bnez $at, .L7F0CF48C +/* 103FE0 7F0CF4B0 006E1825 */ or $v1, $v1, $t6 +.L7F0CF4B4: +/* 103FE4 7F0CF4B4 8E180000 */ lw $t8, ($s0) +/* 103FE8 7F0CF4B8 8DB90000 */ lw $t9, ($t5) +/* 103FEC 7F0CF4BC 00037A02 */ srl $t7, $v1, 8 +/* 103FF0 7F0CF4C0 03053821 */ addu $a3, $t8, $a1 +/* 103FF4 7F0CF4C4 00D94821 */ addu $t1, $a2, $t9 +/* 103FF8 7F0CF4C8 00E9082B */ sltu $at, $a3, $t1 +/* 103FFC 7F0CF4CC 14200007 */ bnez $at, .L7F0CF4EC +/* 104000 7F0CF4D0 00E04025 */ move $t0, $a3 +/* 104004 7F0CF4D4 01097023 */ subu $t6, $t0, $t1 +/* 104008 7F0CF4D8 01D1082B */ sltu $at, $t6, $s1 +/* 10400C 7F0CF4DC 50200004 */ beql $at, $zero, .L7F0CF4F0 +/* 104010 7F0CF4E0 00403025 */ move $a2, $v0 +.L7F0CF4E4: +/* 104014 7F0CF4E4 1000FFFF */ b .L7F0CF4E4 +/* 104018 7F0CF4E8 00000000 */ nop +.L7F0CF4EC: +/* 10401C 7F0CF4EC 00403025 */ move $a2, $v0 +.L7F0CF4F0: +/* 104020 7F0CF4F0 A0E30000 */ sb $v1, ($a3) +/* 104024 7F0CF4F4 24A50001 */ addiu $a1, $a1, 1 +/* 104028 7F0CF4F8 01E01825 */ move $v1, $t7 +/* 10402C 7F0CF4FC 2484FFF8 */ addiu $a0, $a0, -8 +/* 104030 7F0CF500 1440FFDE */ bnez $v0, .L7F0CF47C +/* 104034 7F0CF504 2442FFFF */ addiu $v0, $v0, -1 +.L7F0CF508: +/* 104038 7F0CF508 8FB00008 */ lw $s0, 8($sp) +/* 10403C 7F0CF50C 8FB1000C */ lw $s1, 0xc($sp) +/* 104040 7F0CF510 AD850000 */ sw $a1, ($t4) +/* 104044 7F0CF514 AD430000 */ sw $v1, ($t2) +/* 104048 7F0CF518 AD640000 */ sw $a0, ($t3) +/* 10404C 7F0CF51C 27BD0010 */ addiu $sp, $sp, 0x10 +/* 104050 7F0CF520 03E00008 */ jr $ra +/* 104054 7F0CF524 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type1(void) +{ + ? sp4B8; + ? sp4B4; + ?32 sp4B0; + ?32 sp4AC; + ? sp48C; + ? sp42C; + ? sp26C; + ? spA4; + ? sp34; + ?32 sp30; + ?32 sp2C; + void *temp_v0; + u32 temp_v0_2; + u32 temp_v0_3; + u32 temp_v0_4; + void *temp_v0_5; + void *phi_v0; + u32 phi_v0_2; + u32 phi_v0_3; + u32 phi_v0_4; + u32 phi_v0_5; + u32 phi_v0_6; + void *phi_v0_7; + + phi_v0 = &sp2C; +block_1: + temp_v0 = (phi_v0 + 0x10); + temp_v0->unk-C = 8; + temp_v0->unk-8 = 8; + temp_v0->unk-4 = 8; + temp_v0->unk-10 = 8; + phi_v0 = temp_v0; + if (temp_v0 != &sp26C) + { + goto block_1; + } + phi_v0_3 = temp_v0; + if (temp_v0 < &sp42C) + { + phi_v0_2 = temp_v0; +block_4: + temp_v0_2 = (phi_v0_2 + 4); + temp_v0_2->unk-4 = 9; + phi_v0_2 = temp_v0_2; + phi_v0_3 = temp_v0_2; + if (temp_v0_2 < &sp42C) + { + goto block_4; + } + } + phi_v0_5 = phi_v0_3; + if ((u32) phi_v0_3 < &sp48C) + { + phi_v0_4 = phi_v0_3; +block_7: + temp_v0_3 = (phi_v0_4 + 4); + temp_v0_3->unk-4 = 7; + phi_v0_4 = temp_v0_3; + phi_v0_5 = temp_v0_3; + if (temp_v0_3 < &sp48C) + { + goto block_7; + } + } + if ((u32) phi_v0_5 < &sp4AC) + { + phi_v0_6 = phi_v0_5; +block_10: + temp_v0_4 = (phi_v0_6 + 4); + temp_v0_4->unk-4 = 8; + phi_v0_6 = temp_v0_4; + if (temp_v0_4 < &sp4AC) + { + goto block_10; + } + } + sp4B0 = 7; + sub_GAME_7F0CE8B0(&sp2C, 0x120, 0x101, &D_8004E8F4, &D_8004E934, &sp4B8, &sp4B0); + sp30 = 5; + sp2C = 5; + phi_v0_7 = &sp34; +block_12: + temp_v0_5 = (phi_v0_7 + 0x10); + temp_v0_5->unk-C = 5; + temp_v0_5->unk-8 = 5; + temp_v0_5->unk-4 = 5; + temp_v0_5->unk-10 = 5; + phi_v0_7 = temp_v0_5; + if (temp_v0_5 != &spA4) + { + goto block_12; + } + sp4AC = 5; + sub_GAME_7F0CE8B0(&sp2C, 0x1e, 0, &D_8004E954, &D_8004E990, &sp4B4, &sp4AC); + sub_GAME_7F0CEEF0(sp4B8, sp4B4, sp4B0, sp4AC); + return 0; +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type1 +/* 104058 7F0CF528 27BDFB40 */ addiu $sp, $sp, -0x4c0 +/* 10405C 7F0CF52C AFBF0024 */ sw $ra, 0x24($sp) +/* 104060 7F0CF530 27A2002C */ addiu $v0, $sp, 0x2c +/* 104064 7F0CF534 27A4026C */ addiu $a0, $sp, 0x26c +/* 104068 7F0CF538 24030008 */ li $v1, 8 +.L7F0CF53C: +/* 10406C 7F0CF53C 24420010 */ addiu $v0, $v0, 0x10 +/* 104070 7F0CF540 AC43FFF4 */ sw $v1, -0xc($v0) +/* 104074 7F0CF544 AC43FFF8 */ sw $v1, -8($v0) +/* 104078 7F0CF548 AC43FFFC */ sw $v1, -4($v0) +/* 10407C 7F0CF54C 1444FFFB */ bne $v0, $a0, .L7F0CF53C +/* 104080 7F0CF550 AC43FFF0 */ sw $v1, -0x10($v0) +/* 104084 7F0CF554 27AE042C */ addiu $t6, $sp, 0x42c +/* 104088 7F0CF558 004E082B */ sltu $at, $v0, $t6 +/* 10408C 7F0CF55C 10200007 */ beqz $at, .L7F0CF57C +/* 104090 7F0CF560 27AF048C */ addiu $t7, $sp, 0x48c +/* 104094 7F0CF564 27A5042C */ addiu $a1, $sp, 0x42c +/* 104098 7F0CF568 24040009 */ li $a0, 9 +.L7F0CF56C: +/* 10409C 7F0CF56C 24420004 */ addiu $v0, $v0, 4 +/* 1040A0 7F0CF570 0045082B */ sltu $at, $v0, $a1 +/* 1040A4 7F0CF574 1420FFFD */ bnez $at, .L7F0CF56C +/* 1040A8 7F0CF578 AC44FFFC */ sw $a0, -4($v0) +.L7F0CF57C: +/* 1040AC 7F0CF57C 004F082B */ sltu $at, $v0, $t7 +/* 1040B0 7F0CF580 10200007 */ beqz $at, .L7F0CF5A0 +/* 1040B4 7F0CF584 27B804AC */ addiu $t8, $sp, 0x4ac +/* 1040B8 7F0CF588 27A5048C */ addiu $a1, $sp, 0x48c +/* 1040BC 7F0CF58C 24040007 */ li $a0, 7 +.L7F0CF590: +/* 1040C0 7F0CF590 24420004 */ addiu $v0, $v0, 4 +/* 1040C4 7F0CF594 0045082B */ sltu $at, $v0, $a1 +/* 1040C8 7F0CF598 1420FFFD */ bnez $at, .L7F0CF590 +/* 1040CC 7F0CF59C AC44FFFC */ sw $a0, -4($v0) +.L7F0CF5A0: +/* 1040D0 7F0CF5A0 0058082B */ sltu $at, $v0, $t8 +/* 1040D4 7F0CF5A4 10200006 */ beqz $at, .L7F0CF5C0 +/* 1040D8 7F0CF5A8 24190007 */ li $t9, 7 +/* 1040DC 7F0CF5AC 27A404AC */ addiu $a0, $sp, 0x4ac +.L7F0CF5B0: +/* 1040E0 7F0CF5B0 24420004 */ addiu $v0, $v0, 4 +/* 1040E4 7F0CF5B4 0044082B */ sltu $at, $v0, $a0 +/* 1040E8 7F0CF5B8 1420FFFD */ bnez $at, .L7F0CF5B0 +/* 1040EC 7F0CF5BC AC43FFFC */ sw $v1, -4($v0) +.L7F0CF5C0: +/* 1040F0 7F0CF5C0 3C088005 */ lui $t0, %hi(D_8004E934) +/* 1040F4 7F0CF5C4 2508E934 */ addiu $t0, %lo(D_8004E934) # addiu $t0, $t0, -0x16cc +/* 1040F8 7F0CF5C8 3C078005 */ lui $a3, %hi(D_8004E8F4) +/* 1040FC 7F0CF5CC 27A904B8 */ addiu $t1, $sp, 0x4b8 +/* 104100 7F0CF5D0 27AA04B0 */ addiu $t2, $sp, 0x4b0 +/* 104104 7F0CF5D4 AFB904B0 */ sw $t9, 0x4b0($sp) +/* 104108 7F0CF5D8 AFAA0018 */ sw $t2, 0x18($sp) +/* 10410C 7F0CF5DC AFA90014 */ sw $t1, 0x14($sp) +/* 104110 7F0CF5E0 24E7E8F4 */ addiu $a3, %lo(D_8004E8F4) # addiu $a3, $a3, -0x170c +/* 104114 7F0CF5E4 AFA80010 */ sw $t0, 0x10($sp) +/* 104118 7F0CF5E8 27A4002C */ addiu $a0, $sp, 0x2c +/* 10411C 7F0CF5EC 24050120 */ li $a1, 288 +/* 104120 7F0CF5F0 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104124 7F0CF5F4 24060101 */ li $a2, 257 +/* 104128 7F0CF5F8 240B0005 */ li $t3, 5 +/* 10412C 7F0CF5FC 240C0005 */ li $t4, 5 +/* 104130 7F0CF600 AFAC0030 */ sw $t4, 0x30($sp) +/* 104134 7F0CF604 AFAB002C */ sw $t3, 0x2c($sp) +/* 104138 7F0CF608 27A20034 */ addiu $v0, $sp, 0x34 +/* 10413C 7F0CF60C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 104140 7F0CF610 24030005 */ li $v1, 5 +.L7F0CF614: +/* 104144 7F0CF614 24420010 */ addiu $v0, $v0, 0x10 +/* 104148 7F0CF618 AC43FFF4 */ sw $v1, -0xc($v0) +/* 10414C 7F0CF61C AC43FFF8 */ sw $v1, -8($v0) +/* 104150 7F0CF620 AC43FFFC */ sw $v1, -4($v0) +/* 104154 7F0CF624 1444FFFB */ bne $v0, $a0, .L7F0CF614 +/* 104158 7F0CF628 AC43FFF0 */ sw $v1, -0x10($v0) +/* 10415C 7F0CF62C 3C0E8005 */ lui $t6, %hi(D_8004E990) +/* 104160 7F0CF630 240D0005 */ li $t5, 5 +/* 104164 7F0CF634 25CEE990 */ addiu $t6, %lo(D_8004E990) # addiu $t6, $t6, -0x1670 +/* 104168 7F0CF638 3C078005 */ lui $a3, %hi(D_8004E954) +/* 10416C 7F0CF63C 27AF04B4 */ addiu $t7, $sp, 0x4b4 +/* 104170 7F0CF640 27B804AC */ addiu $t8, $sp, 0x4ac +/* 104174 7F0CF644 AFAD04AC */ sw $t5, 0x4ac($sp) +/* 104178 7F0CF648 AFB80018 */ sw $t8, 0x18($sp) +/* 10417C 7F0CF64C AFAF0014 */ sw $t7, 0x14($sp) +/* 104180 7F0CF650 24E7E954 */ addiu $a3, %lo(D_8004E954) # addiu $a3, $a3, -0x16ac +/* 104184 7F0CF654 AFAE0010 */ sw $t6, 0x10($sp) +/* 104188 7F0CF658 27A4002C */ addiu $a0, $sp, 0x2c +/* 10418C 7F0CF65C 2405001E */ li $a1, 30 +/* 104190 7F0CF660 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104194 7F0CF664 00003025 */ move $a2, $zero +/* 104198 7F0CF668 8FA404B8 */ lw $a0, 0x4b8($sp) +/* 10419C 7F0CF66C 8FA504B4 */ lw $a1, 0x4b4($sp) +/* 1041A0 7F0CF670 8FA604B0 */ lw $a2, 0x4b0($sp) +/* 1041A4 7F0CF674 0FC33BBC */ jal sub_GAME_7F0CEEF0 +/* 1041A8 7F0CF678 8FA704AC */ lw $a3, 0x4ac($sp) +/* 1041AC 7F0CF67C 8FBF0024 */ lw $ra, 0x24($sp) +/* 1041B0 7F0CF680 27BD04C0 */ addiu $sp, $sp, 0x4c0 +/* 1041B4 7F0CF684 00001025 */ move $v0, $zero +/* 1041B8 7F0CF688 03E00008 */ jr $ra +/* 1041BC 7F0CF68C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type2(void) { + +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type2 +/* 1041C0 7F0CF690 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D368) +/* 1041C4 7F0CF694 8D08D368 */ lw $t0, %lo(dword_CODE_bss_8008D368)($t0) +/* 1041C8 7F0CF698 27BDFA98 */ addiu $sp, $sp, -0x568 +/* 1041CC 7F0CF69C 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D364) +/* 1041D0 7F0CF6A0 2D010005 */ sltiu $at, $t0, 5 +/* 1041D4 7F0CF6A4 AFBF002C */ sw $ra, 0x2c($sp) +/* 1041D8 7F0CF6A8 AFB00028 */ sw $s0, 0x28($sp) +/* 1041DC 7F0CF6AC 1020000F */ beqz $at, .L7F0CF6EC +/* 1041E0 7F0CF6B0 8D29D364 */ lw $t1, %lo(dword_CODE_bss_8008D364)($t1) +/* 1041E4 7F0CF6B4 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1041E8 7F0CF6B8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 1041EC 7F0CF6BC 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 1041F0 7F0CF6C0 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF6C4: +/* 1041F4 7F0CF6C4 8D420000 */ lw $v0, ($t2) +/* 1041F8 7F0CF6C8 00627021 */ addu $t6, $v1, $v0 +/* 1041FC 7F0CF6CC 91CF0000 */ lbu $t7, ($t6) +/* 104200 7F0CF6D0 24590001 */ addiu $t9, $v0, 1 +/* 104204 7F0CF6D4 AD590000 */ sw $t9, ($t2) +/* 104208 7F0CF6D8 010FC004 */ sllv $t8, $t7, $t0 +/* 10420C 7F0CF6DC 25080008 */ addiu $t0, $t0, 8 +/* 104210 7F0CF6E0 2D010005 */ sltiu $at, $t0, 5 +/* 104214 7F0CF6E4 1420FFF7 */ bnez $at, .L7F0CF6C4 +/* 104218 7F0CF6E8 01384825 */ or $t1, $t1, $t8 +.L7F0CF6EC: +/* 10421C 7F0CF6EC 312E001F */ andi $t6, $t1, 0x1f +/* 104220 7F0CF6F0 2508FFFB */ addiu $t0, $t0, -5 +/* 104224 7F0CF6F4 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 104228 7F0CF6F8 25CF0101 */ addiu $t7, $t6, 0x101 +/* 10422C 7F0CF6FC 0009C142 */ srl $t8, $t1, 5 +/* 104230 7F0CF700 2D010005 */ sltiu $at, $t0, 5 +/* 104234 7F0CF704 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 104238 7F0CF708 AFAF053C */ sw $t7, 0x53c($sp) +/* 10423C 7F0CF70C 1020000D */ beqz $at, .L7F0CF744 +/* 104240 7F0CF710 03004825 */ move $t1, $t8 +/* 104244 7F0CF714 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104248 7F0CF718 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF71C: +/* 10424C 7F0CF71C 8D420000 */ lw $v0, ($t2) +/* 104250 7F0CF720 0062C821 */ addu $t9, $v1, $v0 +/* 104254 7F0CF724 932E0000 */ lbu $t6, ($t9) +/* 104258 7F0CF728 24580001 */ addiu $t8, $v0, 1 +/* 10425C 7F0CF72C AD580000 */ sw $t8, ($t2) +/* 104260 7F0CF730 010E7804 */ sllv $t7, $t6, $t0 +/* 104264 7F0CF734 25080008 */ addiu $t0, $t0, 8 +/* 104268 7F0CF738 2D010005 */ sltiu $at, $t0, 5 +/* 10426C 7F0CF73C 1420FFF7 */ bnez $at, .L7F0CF71C +/* 104270 7F0CF740 012F4825 */ or $t1, $t1, $t7 +.L7F0CF744: +/* 104274 7F0CF744 3139001F */ andi $t9, $t1, 0x1f +/* 104278 7F0CF748 2508FFFB */ addiu $t0, $t0, -5 +/* 10427C 7F0CF74C 272E0001 */ addiu $t6, $t9, 1 +/* 104280 7F0CF750 00097942 */ srl $t7, $t1, 5 +/* 104284 7F0CF754 2D010004 */ sltiu $at, $t0, 4 +/* 104288 7F0CF758 AFAE0538 */ sw $t6, 0x538($sp) +/* 10428C 7F0CF75C 1020000D */ beqz $at, .L7F0CF794 +/* 104290 7F0CF760 01E04825 */ move $t1, $t7 +/* 104294 7F0CF764 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104298 7F0CF768 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF76C: +/* 10429C 7F0CF76C 8D420000 */ lw $v0, ($t2) +/* 1042A0 7F0CF770 0062C021 */ addu $t8, $v1, $v0 +/* 1042A4 7F0CF774 93190000 */ lbu $t9, ($t8) +/* 1042A8 7F0CF778 244F0001 */ addiu $t7, $v0, 1 +/* 1042AC 7F0CF77C AD4F0000 */ sw $t7, ($t2) +/* 1042B0 7F0CF780 01197004 */ sllv $t6, $t9, $t0 +/* 1042B4 7F0CF784 25080008 */ addiu $t0, $t0, 8 +/* 1042B8 7F0CF788 2D010004 */ sltiu $at, $t0, 4 +/* 1042BC 7F0CF78C 1420FFF7 */ bnez $at, .L7F0CF76C +/* 1042C0 7F0CF790 012E4825 */ or $t1, $t1, $t6 +.L7F0CF794: +/* 1042C4 7F0CF794 3126000F */ andi $a2, $t1, 0xf +/* 1042C8 7F0CF798 24C60004 */ addiu $a2, $a2, 4 +/* 1042CC 7F0CF79C 0009C102 */ srl $t8, $t1, 4 +/* 1042D0 7F0CF7A0 03004825 */ move $t1, $t8 +/* 1042D4 7F0CF7A4 2508FFFC */ addiu $t0, $t0, -4 +/* 1042D8 7F0CF7A8 10C0001D */ beqz $a2, .L7F0CF820 +/* 1042DC 7F0CF7AC 00002025 */ move $a0, $zero +/* 1042E0 7F0CF7B0 3C058005 */ lui $a1, %hi(D_8004E8E0) +/* 1042E4 7F0CF7B4 24A5E8E0 */ addiu $a1, %lo(D_8004E8E0) # addiu $a1, $a1, -0x1720 +/* 1042E8 7F0CF7B8 27B00040 */ addiu $s0, $sp, 0x40 +.L7F0CF7BC: +/* 1042EC 7F0CF7BC 2D010003 */ sltiu $at, $t0, 3 +/* 1042F0 7F0CF7C0 1020000D */ beqz $at, .L7F0CF7F8 +/* 1042F4 7F0CF7C4 24840001 */ addiu $a0, $a0, 1 +/* 1042F8 7F0CF7C8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1042FC 7F0CF7CC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF7D0: +/* 104300 7F0CF7D0 8D420000 */ lw $v0, ($t2) +/* 104304 7F0CF7D4 0062C821 */ addu $t9, $v1, $v0 +/* 104308 7F0CF7D8 932E0000 */ lbu $t6, ($t9) +/* 10430C 7F0CF7DC 24580001 */ addiu $t8, $v0, 1 +/* 104310 7F0CF7E0 AD580000 */ sw $t8, ($t2) +/* 104314 7F0CF7E4 010E7804 */ sllv $t7, $t6, $t0 +/* 104318 7F0CF7E8 25080008 */ addiu $t0, $t0, 8 +/* 10431C 7F0CF7EC 2D010003 */ sltiu $at, $t0, 3 +/* 104320 7F0CF7F0 1420FFF7 */ bnez $at, .L7F0CF7D0 +/* 104324 7F0CF7F4 012F4825 */ or $t1, $t1, $t7 +.L7F0CF7F8: +/* 104328 7F0CF7F8 90AE0000 */ lbu $t6, ($a1) +/* 10432C 7F0CF7FC 31390007 */ andi $t9, $t1, 7 +/* 104330 7F0CF800 24A50001 */ addiu $a1, $a1, 1 +/* 104334 7F0CF804 000E7880 */ sll $t7, $t6, 2 +/* 104338 7F0CF808 020FC021 */ addu $t8, $s0, $t7 +/* 10433C 7F0CF80C 000970C2 */ srl $t6, $t1, 3 +/* 104340 7F0CF810 AF190000 */ sw $t9, ($t8) +/* 104344 7F0CF814 01C04825 */ move $t1, $t6 +/* 104348 7F0CF818 1486FFE8 */ bne $a0, $a2, .L7F0CF7BC +/* 10434C 7F0CF81C 2508FFFD */ addiu $t0, $t0, -3 +.L7F0CF820: +/* 104350 7F0CF820 2C810013 */ sltiu $at, $a0, 0x13 +/* 104354 7F0CF824 1020000D */ beqz $at, .L7F0CF85C +/* 104358 7F0CF828 27B00040 */ addiu $s0, $sp, 0x40 +/* 10435C 7F0CF82C 3C0F8005 */ lui $t7, %hi(D_8004E8E0) +/* 104360 7F0CF830 25EFE8E0 */ addiu $t7, %lo(D_8004E8E0) # addiu $t7, $t7, -0x1720 +/* 104364 7F0CF834 3C028005 */ lui $v0, %hi(D_8004E8E0+0x13) +/* 104368 7F0CF838 2442E8F3 */ addiu $v0, %lo(D_8004E8E0+0x13) # addiu $v0, $v0, -0x170d +/* 10436C 7F0CF83C 008F2821 */ addu $a1, $a0, $t7 +.L7F0CF840: +/* 104370 7F0CF840 90B90000 */ lbu $t9, ($a1) +/* 104374 7F0CF844 24A50001 */ addiu $a1, $a1, 1 +/* 104378 7F0CF848 00A2082B */ sltu $at, $a1, $v0 +/* 10437C 7F0CF84C 0019C080 */ sll $t8, $t9, 2 +/* 104380 7F0CF850 02187021 */ addu $t6, $s0, $t8 +/* 104384 7F0CF854 1420FFFA */ bnez $at, .L7F0CF840 +/* 104388 7F0CF858 ADC00000 */ sw $zero, ($t6) +.L7F0CF85C: +/* 10438C 7F0CF85C 240F0007 */ li $t7, 7 +/* 104390 7F0CF860 27B90550 */ addiu $t9, $sp, 0x550 +/* 104394 7F0CF864 27B80548 */ addiu $t8, $sp, 0x548 +/* 104398 7F0CF868 AFAF0548 */ sw $t7, 0x548($sp) +/* 10439C 7F0CF86C AFB80018 */ sw $t8, 0x18($sp) +/* 1043A0 7F0CF870 AFB90014 */ sw $t9, 0x14($sp) +/* 1043A4 7F0CF874 02002025 */ move $a0, $s0 +/* 1043A8 7F0CF878 24050013 */ li $a1, 19 +/* 1043AC 7F0CF87C 24060013 */ li $a2, 19 +/* 1043B0 7F0CF880 00003825 */ move $a3, $zero +/* 1043B4 7F0CF884 AFA00010 */ sw $zero, 0x10($sp) +/* 1043B8 7F0CF888 AFA80534 */ sw $t0, 0x534($sp) +/* 1043BC 7F0CF88C 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 1043C0 7F0CF890 AFA90530 */ sw $t1, 0x530($sp) +/* 1043C4 7F0CF894 8FB90548 */ lw $t9, 0x548($sp) +/* 1043C8 7F0CF898 8FAE053C */ lw $t6, 0x53c($sp) +/* 1043CC 7F0CF89C 8FAF0538 */ lw $t7, 0x538($sp) +/* 1043D0 7F0CF8A0 3C0B8005 */ lui $t3, %hi(D_8004E9B0) +/* 1043D4 7F0CF8A4 0019C040 */ sll $t8, $t9, 1 +/* 1043D8 7F0CF8A8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 1043DC 7F0CF8AC 01785821 */ addu $t3, $t3, $t8 +/* 1043E0 7F0CF8B0 01CF3821 */ addu $a3, $t6, $t7 +/* 1043E4 7F0CF8B4 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 1043E8 7F0CF8B8 8FA80534 */ lw $t0, 0x534($sp) +/* 1043EC 7F0CF8BC 8FA90530 */ lw $t1, 0x530($sp) +/* 1043F0 7F0CF8C0 956BE9B0 */ lhu $t3, %lo(D_8004E9B0)($t3) +/* 1043F4 7F0CF8C4 00003025 */ move $a2, $zero +/* 1043F8 7F0CF8C8 10E0008A */ beqz $a3, .L7F0CFAF4 +/* 1043FC 7F0CF8CC 00002825 */ move $a1, $zero +/* 104400 7F0CF8D0 240D0011 */ li $t5, 17 +/* 104404 7F0CF8D4 240C0010 */ li $t4, 16 +/* 104408 7F0CF8D8 8FAE0548 */ lw $t6, 0x548($sp) +.L7F0CF8DC: +/* 10440C 7F0CF8DC 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104410 7F0CF8E0 010E082B */ sltu $at, $t0, $t6 +/* 104414 7F0CF8E4 5020000E */ beql $at, $zero, .L7F0CF920 +/* 104418 7F0CF8E8 8FAE0550 */ lw $t6, 0x550($sp) +/* 10441C 7F0CF8EC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF8F0: +/* 104420 7F0CF8F0 8D420000 */ lw $v0, ($t2) +/* 104424 7F0CF8F4 00627821 */ addu $t7, $v1, $v0 +/* 104428 7F0CF8F8 91F90000 */ lbu $t9, ($t7) +/* 10442C 7F0CF8FC 8FAF0548 */ lw $t7, 0x548($sp) +/* 104430 7F0CF900 244E0001 */ addiu $t6, $v0, 1 +/* 104434 7F0CF904 0119C004 */ sllv $t8, $t9, $t0 +/* 104438 7F0CF908 25080008 */ addiu $t0, $t0, 8 +/* 10443C 7F0CF90C 010F082B */ sltu $at, $t0, $t7 +/* 104440 7F0CF910 01384825 */ or $t1, $t1, $t8 +/* 104444 7F0CF914 1420FFF6 */ bnez $at, .L7F0CF8F0 +/* 104448 7F0CF918 AD4E0000 */ sw $t6, ($t2) +/* 10444C 7F0CF91C 8FAE0550 */ lw $t6, 0x550($sp) +.L7F0CF920: +/* 104450 7F0CF920 012BC824 */ and $t9, $t1, $t3 +/* 104454 7F0CF924 0019C0C0 */ sll $t8, $t9, 3 +/* 104458 7F0CF928 030E7821 */ addu $t7, $t8, $t6 +/* 10445C 7F0CF92C AFAF054C */ sw $t7, 0x54c($sp) +/* 104460 7F0CF930 91E40001 */ lbu $a0, 1($t7) +/* 104464 7F0CF934 0005C880 */ sll $t9, $a1, 2 +/* 104468 7F0CF938 0219C021 */ addu $t8, $s0, $t9 +/* 10446C 7F0CF93C 00894806 */ srlv $t1, $t1, $a0 +/* 104470 7F0CF940 01044023 */ subu $t0, $t0, $a0 +/* 104474 7F0CF944 95E40004 */ lhu $a0, 4($t7) +/* 104478 7F0CF948 2C810010 */ sltiu $at, $a0, 0x10 +/* 10447C 7F0CF94C 10200005 */ beqz $at, .L7F0CF964 +/* 104480 7F0CF950 00000000 */ nop +/* 104484 7F0CF954 00803025 */ move $a2, $a0 +/* 104488 7F0CF958 AF040000 */ sw $a0, ($t8) +/* 10448C 7F0CF95C 10000062 */ b .L7F0CFAE8 +/* 104490 7F0CF960 24A50001 */ addiu $a1, $a1, 1 +.L7F0CF964: +/* 104494 7F0CF964 148C0020 */ bne $a0, $t4, .L7F0CF9E8 +/* 104498 7F0CF968 2D010002 */ sltiu $at, $t0, 2 +/* 10449C 7F0CF96C 1020000C */ beqz $at, .L7F0CF9A0 +/* 1044A0 7F0CF970 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1044A4 7F0CF974 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF978: +/* 1044A8 7F0CF978 8D420000 */ lw $v0, ($t2) +/* 1044AC 7F0CF97C 00627021 */ addu $t6, $v1, $v0 +/* 1044B0 7F0CF980 91CF0000 */ lbu $t7, ($t6) +/* 1044B4 7F0CF984 24580001 */ addiu $t8, $v0, 1 +/* 1044B8 7F0CF988 AD580000 */ sw $t8, ($t2) +/* 1044BC 7F0CF98C 010FC804 */ sllv $t9, $t7, $t0 +/* 1044C0 7F0CF990 25080008 */ addiu $t0, $t0, 8 +/* 1044C4 7F0CF994 2D010002 */ sltiu $at, $t0, 2 +/* 1044C8 7F0CF998 1420FFF7 */ bnez $at, .L7F0CF978 +/* 1044CC 7F0CF99C 01394825 */ or $t1, $t1, $t9 +.L7F0CF9A0: +/* 1044D0 7F0CF9A0 31240003 */ andi $a0, $t1, 3 +/* 1044D4 7F0CF9A4 24840003 */ addiu $a0, $a0, 3 +/* 1044D8 7F0CF9A8 00801825 */ move $v1, $a0 +/* 1044DC 7F0CF9AC 00097082 */ srl $t6, $t1, 2 +/* 1044E0 7F0CF9B0 01C04825 */ move $t1, $t6 +/* 1044E4 7F0CF9B4 2508FFFE */ addiu $t0, $t0, -2 +/* 1044E8 7F0CF9B8 1080004B */ beqz $a0, .L7F0CFAE8 +/* 1044EC 7F0CF9BC 2484FFFF */ addiu $a0, $a0, -1 +/* 1044F0 7F0CF9C0 00057880 */ sll $t7, $a1, 2 +/* 1044F4 7F0CF9C4 020F1021 */ addu $v0, $s0, $t7 +.L7F0CF9C8: +/* 1044F8 7F0CF9C8 00801825 */ move $v1, $a0 +/* 1044FC 7F0CF9CC AC460000 */ sw $a2, ($v0) +/* 104500 7F0CF9D0 24A50001 */ addiu $a1, $a1, 1 +/* 104504 7F0CF9D4 24420004 */ addiu $v0, $v0, 4 +/* 104508 7F0CF9D8 1480FFFB */ bnez $a0, .L7F0CF9C8 +/* 10450C 7F0CF9DC 2484FFFF */ addiu $a0, $a0, -1 +/* 104510 7F0CF9E0 10000042 */ b .L7F0CFAEC +/* 104514 7F0CF9E4 00A7082B */ sltu $at, $a1, $a3 +.L7F0CF9E8: +/* 104518 7F0CF9E8 148D0021 */ bne $a0, $t5, .L7F0CFA70 +/* 10451C 7F0CF9EC 00003025 */ move $a2, $zero +/* 104520 7F0CF9F0 2D010003 */ sltiu $at, $t0, 3 +/* 104524 7F0CF9F4 1020000C */ beqz $at, .L7F0CFA28 +/* 104528 7F0CF9F8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 10452C 7F0CF9FC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CFA00: +/* 104530 7F0CFA00 8D420000 */ lw $v0, ($t2) +/* 104534 7F0CFA04 0062C821 */ addu $t9, $v1, $v0 +/* 104538 7F0CFA08 93380000 */ lbu $t8, ($t9) +/* 10453C 7F0CFA0C 244F0001 */ addiu $t7, $v0, 1 +/* 104540 7F0CFA10 AD4F0000 */ sw $t7, ($t2) +/* 104544 7F0CFA14 01187004 */ sllv $t6, $t8, $t0 +/* 104548 7F0CFA18 25080008 */ addiu $t0, $t0, 8 +/* 10454C 7F0CFA1C 2D010003 */ sltiu $at, $t0, 3 +/* 104550 7F0CFA20 1420FFF7 */ bnez $at, .L7F0CFA00 +/* 104554 7F0CFA24 012E4825 */ or $t1, $t1, $t6 +.L7F0CFA28: +/* 104558 7F0CFA28 31240007 */ andi $a0, $t1, 7 +/* 10455C 7F0CFA2C 24840003 */ addiu $a0, $a0, 3 +/* 104560 7F0CFA30 00801825 */ move $v1, $a0 +/* 104564 7F0CFA34 0009C8C2 */ srl $t9, $t1, 3 +/* 104568 7F0CFA38 03204825 */ move $t1, $t9 +/* 10456C 7F0CFA3C 2508FFFD */ addiu $t0, $t0, -3 +/* 104570 7F0CFA40 10800029 */ beqz $a0, .L7F0CFAE8 +/* 104574 7F0CFA44 2484FFFF */ addiu $a0, $a0, -1 +/* 104578 7F0CFA48 0005C080 */ sll $t8, $a1, 2 +/* 10457C 7F0CFA4C 02181021 */ addu $v0, $s0, $t8 +.L7F0CFA50: +/* 104580 7F0CFA50 00801825 */ move $v1, $a0 +/* 104584 7F0CFA54 AC400000 */ sw $zero, ($v0) +/* 104588 7F0CFA58 24A50001 */ addiu $a1, $a1, 1 +/* 10458C 7F0CFA5C 24420004 */ addiu $v0, $v0, 4 +/* 104590 7F0CFA60 1480FFFB */ bnez $a0, .L7F0CFA50 +/* 104594 7F0CFA64 2484FFFF */ addiu $a0, $a0, -1 +/* 104598 7F0CFA68 10000020 */ b .L7F0CFAEC +/* 10459C 7F0CFA6C 00A7082B */ sltu $at, $a1, $a3 +.L7F0CFA70: +/* 1045A0 7F0CFA70 2D010007 */ sltiu $at, $t0, 7 +/* 1045A4 7F0CFA74 1020000C */ beqz $at, .L7F0CFAA8 +/* 1045A8 7F0CFA78 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1045AC 7F0CFA7C 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CFA80: +/* 1045B0 7F0CFA80 8D420000 */ lw $v0, ($t2) +/* 1045B4 7F0CFA84 00627021 */ addu $t6, $v1, $v0 +/* 1045B8 7F0CFA88 91CF0000 */ lbu $t7, ($t6) +/* 1045BC 7F0CFA8C 24580001 */ addiu $t8, $v0, 1 +/* 1045C0 7F0CFA90 AD580000 */ sw $t8, ($t2) +/* 1045C4 7F0CFA94 010FC804 */ sllv $t9, $t7, $t0 +/* 1045C8 7F0CFA98 25080008 */ addiu $t0, $t0, 8 +/* 1045CC 7F0CFA9C 2D010007 */ sltiu $at, $t0, 7 +/* 1045D0 7F0CFAA0 1420FFF7 */ bnez $at, .L7F0CFA80 +/* 1045D4 7F0CFAA4 01394825 */ or $t1, $t1, $t9 +.L7F0CFAA8: +/* 1045D8 7F0CFAA8 3124007F */ andi $a0, $t1, 0x7f +/* 1045DC 7F0CFAAC 2484000B */ addiu $a0, $a0, 0xb +/* 1045E0 7F0CFAB0 00801825 */ move $v1, $a0 +/* 1045E4 7F0CFAB4 000971C2 */ srl $t6, $t1, 7 +/* 1045E8 7F0CFAB8 01C04825 */ move $t1, $t6 +/* 1045EC 7F0CFABC 2508FFF9 */ addiu $t0, $t0, -7 +/* 1045F0 7F0CFAC0 10800009 */ beqz $a0, .L7F0CFAE8 +/* 1045F4 7F0CFAC4 2484FFFF */ addiu $a0, $a0, -1 +/* 1045F8 7F0CFAC8 00057880 */ sll $t7, $a1, 2 +/* 1045FC 7F0CFACC 020F1021 */ addu $v0, $s0, $t7 +.L7F0CFAD0: +/* 104600 7F0CFAD0 00801825 */ move $v1, $a0 +/* 104604 7F0CFAD4 AC400000 */ sw $zero, ($v0) +/* 104608 7F0CFAD8 24A50001 */ addiu $a1, $a1, 1 +/* 10460C 7F0CFADC 24420004 */ addiu $v0, $v0, 4 +/* 104610 7F0CFAE0 1480FFFB */ bnez $a0, .L7F0CFAD0 +/* 104614 7F0CFAE4 2484FFFF */ addiu $a0, $a0, -1 +.L7F0CFAE8: +/* 104618 7F0CFAE8 00A7082B */ sltu $at, $a1, $a3 +.L7F0CFAEC: +/* 10461C 7F0CFAEC 5420FF7B */ bnezl $at, .L7F0CF8DC +/* 104620 7F0CFAF0 8FAE0548 */ lw $t6, 0x548($sp) +.L7F0CFAF4: +/* 104624 7F0CFAF4 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 104628 7F0CFAF8 3C198005 */ lui $t9, %hi(D_8004E9D4) +/* 10462C 7F0CFAFC 8F39E9D4 */ lw $t9, %lo(D_8004E9D4)($t9) +/* 104630 7F0CFB00 AC29D364 */ sw $t1, %lo(dword_CODE_bss_8008D364)($at) +/* 104634 7F0CFB04 3C188005 */ lui $t8, %hi(D_8004E934) +/* 104638 7F0CFB08 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D368) +/* 10463C 7F0CFB0C 2718E934 */ addiu $t8, %lo(D_8004E934) # addiu $t8, $t8, -0x16cc +/* 104640 7F0CFB10 3C078005 */ lui $a3, %hi(D_8004E8F4) +/* 104644 7F0CFB14 27AE0550 */ addiu $t6, $sp, 0x550 +/* 104648 7F0CFB18 27AF0548 */ addiu $t7, $sp, 0x548 +/* 10464C 7F0CFB1C AC28D368 */ sw $t0, %lo(dword_CODE_bss_8008D368)($at) +/* 104650 7F0CFB20 AFAF0018 */ sw $t7, 0x18($sp) +/* 104654 7F0CFB24 AFAE0014 */ sw $t6, 0x14($sp) +/* 104658 7F0CFB28 24E7E8F4 */ addiu $a3, %lo(D_8004E8F4) # addiu $a3, $a3, -0x170c +/* 10465C 7F0CFB2C AFB80010 */ sw $t8, 0x10($sp) +/* 104660 7F0CFB30 02002025 */ move $a0, $s0 +/* 104664 7F0CFB34 8FA5053C */ lw $a1, 0x53c($sp) +/* 104668 7F0CFB38 24060101 */ li $a2, 257 +/* 10466C 7F0CFB3C 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104670 7F0CFB40 AFB90548 */ sw $t9, 0x548($sp) +/* 104674 7F0CFB44 3C198005 */ lui $t9, %hi(D_8004E9D8) +/* 104678 7F0CFB48 8F39E9D8 */ lw $t9, %lo(D_8004E9D8)($t9) +/* 10467C 7F0CFB4C 8FB8053C */ lw $t8, 0x53c($sp) +/* 104680 7F0CFB50 3C0F8005 */ lui $t7, %hi(D_8004E990) +/* 104684 7F0CFB54 AFB90544 */ sw $t9, 0x544($sp) +/* 104688 7F0CFB58 00187080 */ sll $t6, $t8, 2 +/* 10468C 7F0CFB5C 27B80544 */ addiu $t8, $sp, 0x544 +/* 104690 7F0CFB60 27B9054C */ addiu $t9, $sp, 0x54c +/* 104694 7F0CFB64 25EFE990 */ addiu $t7, %lo(D_8004E990) # addiu $t7, $t7, -0x1670 +/* 104698 7F0CFB68 3C078005 */ lui $a3, %hi(D_8004E954) +/* 10469C 7F0CFB6C 24E7E954 */ addiu $a3, %lo(D_8004E954) # addiu $a3, $a3, -0x16ac +/* 1046A0 7F0CFB70 AFAF0010 */ sw $t7, 0x10($sp) +/* 1046A4 7F0CFB74 AFB90014 */ sw $t9, 0x14($sp) +/* 1046A8 7F0CFB78 AFB80018 */ sw $t8, 0x18($sp) +/* 1046AC 7F0CFB7C 020E2021 */ addu $a0, $s0, $t6 +/* 1046B0 7F0CFB80 8FA50538 */ lw $a1, 0x538($sp) +/* 1046B4 7F0CFB84 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 1046B8 7F0CFB88 00003025 */ move $a2, $zero +/* 1046BC 7F0CFB8C 8FA40550 */ lw $a0, 0x550($sp) +/* 1046C0 7F0CFB90 8FA5054C */ lw $a1, 0x54c($sp) +/* 1046C4 7F0CFB94 8FA60548 */ lw $a2, 0x548($sp) +/* 1046C8 7F0CFB98 0FC33BBC */ jal sub_GAME_7F0CEEF0 +/* 1046CC 7F0CFB9C 8FA70544 */ lw $a3, 0x544($sp) +/* 1046D0 7F0CFBA0 8FBF002C */ lw $ra, 0x2c($sp) +/* 1046D4 7F0CFBA4 8FB00028 */ lw $s0, 0x28($sp) +/* 1046D8 7F0CFBA8 27BD0568 */ addiu $sp, $sp, 0x568 +/* 1046DC 7F0CFBAC 03E00008 */ jr $ra +/* 1046E0 7F0CFBB0 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void select_zlib_decompression_routine(void *arg0, s32 arg2) +{ + s32 temp_v1; + u32 temp_a1; + u32 temp_v1_2; + u32 temp_t3; + u32 temp_v1_3; + u32 temp_a1_2; + s32 temp_v0; + s32 phi_v1; + u32 phi_a1; + s32 phi_v1_2; + u32 phi_v1_3; + u32 phi_a1_2; + u32 phi_v1_4; + s32 phi_a2; + u32 phi_a1_3; + u32 phi_a1_4; + + phi_a1 = dword_CODE_bss_8008D364; + phi_v1_2 = dword_CODE_bss_8008D368; + phi_a2 = arg2; + if (dword_CODE_bss_8008D368 == 0) + { + phi_v1 = dword_CODE_bss_8008D368; + phi_a1_3 = dword_CODE_bss_8008D364; +block_2: + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + temp_v1 = (phi_v1 + 8); + temp_a1 = (phi_a1_3 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1)); + phi_v1 = temp_v1; + phi_a1 = temp_a1; + phi_v1_2 = temp_v1; + phi_a1_3 = temp_a1; + phi_a2 = dword_CODE_bss_8008D350; + if (temp_v1 == 0) + { + goto block_2; + } + } + temp_v1_2 = (phi_v1_2 + -1); + temp_t3 = ((u32) phi_a1 >> 1); + *arg0 = (s32) (phi_a1 & 1); + phi_a1_2 = temp_t3; + phi_v1_4 = temp_v1_2; + if (temp_v1_2 < 2U) + { + phi_v1_3 = temp_v1_2; + phi_a1_4 = temp_t3; +block_5: + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + temp_v1_3 = (phi_v1_3 + 8); + temp_a1_2 = (phi_a1_4 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1_3)); + phi_v1_3 = temp_v1_3; + phi_a1_2 = temp_a1_2; + phi_v1_4 = temp_v1_3; + phi_a2 = dword_CODE_bss_8008D350; + phi_a1_4 = temp_a1_2; + if (temp_v1_3 < 2U) + { + goto block_5; + } + } + temp_v0 = (phi_a1_2 & 3); + dword_CODE_bss_8008D364 = (u32) ((u32) phi_a1_2 >> 2); + dword_CODE_bss_8008D368 = (s32) (phi_v1_4 + -2); + if (temp_v0 == 2) + { + return zlib_decompressor_type2(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + if (temp_v0 == 0) + { + return zlib_decompressor_type0(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + if (temp_v0 == 1) + { + return zlib_decompressor_type1(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + return 2; +} +#else +GLOBAL_ASM( +.text +glabel select_zlib_decompression_routine +/* 1046E4 7F0CFBB4 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D368) +/* 1046E8 7F0CFBB8 2529D368 */ addiu $t1, %lo(dword_CODE_bss_8008D368) # addiu $t1, $t1, -0x2c98 +/* 1046EC 7F0CFBBC 8D230000 */ lw $v1, ($t1) +/* 1046F0 7F0CFBC0 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D364) +/* 1046F4 7F0CFBC4 2508D364 */ addiu $t0, %lo(dword_CODE_bss_8008D364) # addiu $t0, $t0, -0x2c9c +/* 1046F8 7F0CFBC8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 1046FC 7F0CFBCC AFBF0014 */ sw $ra, 0x14($sp) +/* 104700 7F0CFBD0 00803825 */ move $a3, $a0 +/* 104704 7F0CFBD4 1460000E */ bnez $v1, .L7F0CFC10 +/* 104708 7F0CFBD8 8D050000 */ lw $a1, ($t0) +/* 10470C 7F0CFBDC 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 104710 7F0CFBE0 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) +/* 104714 7F0CFBE4 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 +/* 104718 7F0CFBE8 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CFBEC: +/* 10471C 7F0CFBEC 8C820000 */ lw $v0, ($a0) +/* 104720 7F0CFBF0 00C27021 */ addu $t6, $a2, $v0 +/* 104724 7F0CFBF4 91CF0000 */ lbu $t7, ($t6) +/* 104728 7F0CFBF8 24590001 */ addiu $t9, $v0, 1 +/* 10472C 7F0CFBFC AC990000 */ sw $t9, ($a0) +/* 104730 7F0CFC00 006FC004 */ sllv $t8, $t7, $v1 +/* 104734 7F0CFC04 24630008 */ addiu $v1, $v1, 8 +/* 104738 7F0CFC08 1060FFF8 */ beqz $v1, .L7F0CFBEC +/* 10473C 7F0CFC0C 00B82825 */ or $a1, $a1, $t8 +.L7F0CFC10: +/* 104740 7F0CFC10 2463FFFF */ addiu $v1, $v1, -1 +/* 104744 7F0CFC14 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) +/* 104748 7F0CFC18 30AA0001 */ andi $t2, $a1, 1 +/* 10474C 7F0CFC1C 00055842 */ srl $t3, $a1, 1 +/* 104750 7F0CFC20 2C610002 */ sltiu $at, $v1, 2 +/* 104754 7F0CFC24 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 +/* 104758 7F0CFC28 ACEA0000 */ sw $t2, ($a3) +/* 10475C 7F0CFC2C 1020000D */ beqz $at, .L7F0CFC64 +/* 104760 7F0CFC30 01602825 */ move $a1, $t3 +/* 104764 7F0CFC34 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 104768 7F0CFC38 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CFC3C: +/* 10476C 7F0CFC3C 8C820000 */ lw $v0, ($a0) +/* 104770 7F0CFC40 00C26021 */ addu $t4, $a2, $v0 +/* 104774 7F0CFC44 918D0000 */ lbu $t5, ($t4) +/* 104778 7F0CFC48 244F0001 */ addiu $t7, $v0, 1 +/* 10477C 7F0CFC4C AC8F0000 */ sw $t7, ($a0) +/* 104780 7F0CFC50 006D7004 */ sllv $t6, $t5, $v1 +/* 104784 7F0CFC54 24630008 */ addiu $v1, $v1, 8 +/* 104788 7F0CFC58 2C610002 */ sltiu $at, $v1, 2 +/* 10478C 7F0CFC5C 1420FFF7 */ bnez $at, .L7F0CFC3C +/* 104790 7F0CFC60 00AE2825 */ or $a1, $a1, $t6 +.L7F0CFC64: +/* 104794 7F0CFC64 30A20003 */ andi $v0, $a1, 3 +/* 104798 7F0CFC68 0005C082 */ srl $t8, $a1, 2 +/* 10479C 7F0CFC6C 2463FFFE */ addiu $v1, $v1, -2 +/* 1047A0 7F0CFC70 24010002 */ li $at, 2 +/* 1047A4 7F0CFC74 AD180000 */ sw $t8, ($t0) +/* 1047A8 7F0CFC78 14410005 */ bne $v0, $at, .L7F0CFC90 +/* 1047AC 7F0CFC7C AD230000 */ sw $v1, ($t1) +/* 1047B0 7F0CFC80 0FC33DA4 */ jal zlib_decompressor_type2 +/* 1047B4 7F0CFC84 00000000 */ nop +/* 1047B8 7F0CFC88 1000000F */ b .L7F0CFCC8 +/* 1047BC 7F0CFC8C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFC90: +/* 1047C0 7F0CFC90 14400005 */ bnez $v0, .L7F0CFCA8 +/* 1047C4 7F0CFC94 24010001 */ li $at, 1 +/* 1047C8 7F0CFC98 0FC33CE3 */ jal zlib_decompressor_type0 +/* 1047CC 7F0CFC9C 00000000 */ nop +/* 1047D0 7F0CFCA0 10000009 */ b .L7F0CFCC8 +/* 1047D4 7F0CFCA4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFCA8: +/* 1047D8 7F0CFCA8 54410006 */ bnel $v0, $at, .L7F0CFCC4 +/* 1047DC 7F0CFCAC 24020002 */ li $v0, 2 +/* 1047E0 7F0CFCB0 0FC33D4A */ jal zlib_decompressor_type1 +/* 1047E4 7F0CFCB4 00000000 */ nop +/* 1047E8 7F0CFCB8 10000003 */ b .L7F0CFCC8 +/* 1047EC 7F0CFCBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 1047F0 7F0CFCC0 24020002 */ li $v0, 2 +.L7F0CFCC4: +/* 1047F4 7F0CFCC4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFCC8: +/* 1047F8 7F0CFCC8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 1047FC 7F0CFCCC 03E00008 */ jr $ra +/* 104800 7F0CFCD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void loop_to_decompress_entire_file(void) +{ + s32 sp34; + ? temp_ret; + u32 temp_t7; + u32 phi_s1; + u32 phi_v1; + + dword_CODE_bss_8008D35C = 0; + dword_CODE_bss_8008D368 = 0U; + dword_CODE_bss_8008D364 = 0; + phi_s1 = 0U; +block_1: + dword_CODE_bss_8008D36C = 0U; + temp_ret = select_zlib_decompression_routine(&sp34); + if (temp_ret != 0) + { + return temp_ret; + } + phi_s1 = phi_s1; + if ((u32) phi_s1 < (u32) dword_CODE_bss_8008D36C) + { + phi_s1 = dword_CODE_bss_8008D36C; + } + if (sp34 == 0) + { + goto block_1; + } + phi_v1 = dword_CODE_bss_8008D368; + if ((u32) dword_CODE_bss_8008D368 >= 8U) + { +block_7: + temp_t7 = (phi_v1 + -8); + dword_CODE_bss_8008D368 = temp_t7; + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + -1); + phi_v1 = temp_t7; + if (temp_t7 >= 8U) + { + goto block_7; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel loop_to_decompress_entire_file +/* 104804 7F0CFCD4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 104808 7F0CFCD8 AFB2001C */ sw $s2, 0x1c($sp) +/* 10480C 7F0CFCDC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 104810 7F0CFCE0 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D368) +/* 104814 7F0CFCE4 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) +/* 104818 7F0CFCE8 2652D368 */ addiu $s2, %lo(dword_CODE_bss_8008D368) # addiu $s2, $s2, -0x2c98 +/* 10481C 7F0CFCEC AFB00014 */ sw $s0, 0x14($sp) +/* 104820 7F0CFCF0 AFB30020 */ sw $s3, 0x20($sp) +/* 104824 7F0CFCF4 AFB10018 */ sw $s1, 0x18($sp) +/* 104828 7F0CFCF8 AE400000 */ sw $zero, ($s2) +/* 10482C 7F0CFCFC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 104830 7F0CFD00 3C108009 */ lui $s0, %hi(dword_CODE_bss_8008D36C) +/* 104834 7F0CFD04 AFBF0024 */ sw $ra, 0x24($sp) +/* 104838 7F0CFD08 AC20D364 */ sw $zero, %lo(dword_CODE_bss_8008D364)($at) +/* 10483C 7F0CFD0C 00008825 */ move $s1, $zero +/* 104840 7F0CFD10 2610D36C */ addiu $s0, %lo(dword_CODE_bss_8008D36C) # addiu $s0, $s0, -0x2c94 +/* 104844 7F0CFD14 27B30034 */ addiu $s3, $sp, 0x34 +/* 104848 7F0CFD18 AE000000 */ sw $zero, ($s0) +.L7F0CFD1C: +/* 10484C 7F0CFD1C 0FC33EED */ jal select_zlib_decompression_routine +/* 104850 7F0CFD20 02602025 */ move $a0, $s3 +/* 104854 7F0CFD24 10400003 */ beqz $v0, .L7F0CFD34 +/* 104858 7F0CFD28 8FAE0034 */ lw $t6, 0x34($sp) +/* 10485C 7F0CFD2C 10000018 */ b .L7F0CFD90 +/* 104860 7F0CFD30 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0CFD34: +/* 104864 7F0CFD34 8E020000 */ lw $v0, ($s0) +/* 104868 7F0CFD38 0222082B */ sltu $at, $s1, $v0 +/* 10486C 7F0CFD3C 10200002 */ beqz $at, .L7F0CFD48 +/* 104870 7F0CFD40 00000000 */ nop +/* 104874 7F0CFD44 00408825 */ move $s1, $v0 +.L7F0CFD48: +/* 104878 7F0CFD48 51C0FFF4 */ beql $t6, $zero, .L7F0CFD1C +/* 10487C 7F0CFD4C AE000000 */ sw $zero, ($s0) +/* 104880 7F0CFD50 8E430000 */ lw $v1, ($s2) +/* 104884 7F0CFD54 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D358) +/* 104888 7F0CFD58 2442D358 */ addiu $v0, %lo(dword_CODE_bss_8008D358) # addiu $v0, $v0, -0x2ca8 +/* 10488C 7F0CFD5C 2C610008 */ sltiu $at, $v1, 8 +/* 104890 7F0CFD60 5420000A */ bnezl $at, .L7F0CFD8C +/* 104894 7F0CFD64 00001025 */ move $v0, $zero +.L7F0CFD68: +/* 104898 7F0CFD68 8C580000 */ lw $t8, ($v0) +/* 10489C 7F0CFD6C 246FFFF8 */ addiu $t7, $v1, -8 +/* 1048A0 7F0CFD70 2DE10008 */ sltiu $at, $t7, 8 +/* 1048A4 7F0CFD74 2719FFFF */ addiu $t9, $t8, -1 +/* 1048A8 7F0CFD78 AE4F0000 */ sw $t7, ($s2) +/* 1048AC 7F0CFD7C AC590000 */ sw $t9, ($v0) +/* 1048B0 7F0CFD80 1020FFF9 */ beqz $at, .L7F0CFD68 +/* 1048B4 7F0CFD84 01E01825 */ move $v1, $t7 +/* 1048B8 7F0CFD88 00001025 */ move $v0, $zero +.L7F0CFD8C: +/* 1048BC 7F0CFD8C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0CFD90: +/* 1048C0 7F0CFD90 8FB00014 */ lw $s0, 0x14($sp) +/* 1048C4 7F0CFD94 8FB10018 */ lw $s1, 0x18($sp) +/* 1048C8 7F0CFD98 8FB2001C */ lw $s2, 0x1c($sp) +/* 1048CC 7F0CFD9C 8FB30020 */ lw $s3, 0x20($sp) +/* 1048D0 7F0CFDA0 03E00008 */ jr $ra +/* 1048D4 7F0CFDA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + diff --git a/src/game/zlib.h b/src/game/zlib.h new file mode 100644 index 0000000..6aa11c2 --- /dev/null +++ b/src/game/zlib.h @@ -0,0 +1,5 @@ +#ifndef _ZLIB_H_ +#define _ZLIB_H_ +#include "ultra64.h" + +#endif diff --git a/src/gspboot.s b/src/gspboot.s new file mode 100644 index 0000000..5b1f65e --- /dev/null +++ b/src/gspboot.s @@ -0,0 +1,21 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel gsp3DTextStart +.incbin "/bin/gspboot.text.bin" +glabel gsp3DTextEnd + +.section .data +glabel gsp3DDataStart +.incbin "/bin/gspboot.data.bin" +glabel gsp3DDataEnd +.section .rodata +.section .bss diff --git a/src/inflate/inflate.c b/src/inflate/inflate.c new file mode 100644 index 0000000..6cd0e1c --- /dev/null +++ b/src/inflate/inflate.c @@ -0,0 +1,1178 @@ +#include "ultra64.h" +#include "inflate/inflate.h" + +#define GETBYTE() (inbuf[inptr++]) +#define NEXTBYTE() (u8)GETBYTE() +#define NEEDBITS(n) {while(k<(n)){b|=((u32)NEXTBYTE())<>=(n);k-=(n);} + +#define BMAX 16 +#define N_MAX 288 + +//this file is modified from inflate.c found in gzip... +//does this create a license conflict in rare's original source tree? + +u8 *inbuf = 0; +u8 *outbuf = 0; + +u32 inptr = 0; +u32 wp = 0; + +struct huft *huftlist = NULL; +u8 border[0x14] = { + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +u16 cplens[0x20] = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + +u8 cplext[0x20] = { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99}; + +u16 cpdist[0x1E] = { + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577}; + +u8 cpdext[0x20] = { + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13}; + +u32 bb = 0; +u32 bk = 0; + +u16 mask_bits[0x12] = { + 0x0000, 0x0001, 0x0003, 0x0007, + 0x000F, 0x001F, 0x003F, 0x007F, + 0x00FF, 0x01FF, 0x03FF, 0x07FF, + 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, + 0xFFFF, +}; + +u32 lbits = 9; +u32 dbits = 6; +u32 hufts = 0; + + +GLOBAL_ASM( +glabel huft_build +/* 033590 70200000 27BDFA10 */ addiu $sp, $sp, -0x5f0 +/* 033594 70200004 AFB20010 */ sw $s2, 0x10($sp) +/* 033598 70200008 00809025 */ move $s2, $a0 +/* 03359C 7020000C AFBF002C */ sw $ra, 0x2c($sp) +/* 0335A0 70200010 AFBE0028 */ sw $fp, 0x28($sp) +/* 0335A4 70200014 AFB70024 */ sw $s7, 0x24($sp) +/* 0335A8 70200018 AFB60020 */ sw $s6, 0x20($sp) +/* 0335AC 7020001C AFB5001C */ sw $s5, 0x1c($sp) +/* 0335B0 70200020 AFB40018 */ sw $s4, 0x18($sp) +/* 0335B4 70200024 AFB30014 */ sw $s3, 0x14($sp) +/* 0335B8 70200028 AFB1000C */ sw $s1, 0xc($sp) +/* 0335BC 7020002C AFB00008 */ sw $s0, 8($sp) +/* 0335C0 70200030 AFA605F8 */ sw $a2, 0x5f8($sp) +/* 0335C4 70200034 AFA705FC */ sw $a3, 0x5fc($sp) +/* 0335C8 70200038 AFA005A8 */ sw $zero, 0x5a8($sp) +/* 0335CC 7020003C 27A305AC */ addiu $v1, $sp, 0x5ac +/* 0335D0 70200040 27A205EC */ addiu $v0, $sp, 0x5ec +.L70200044: +/* 0335D4 70200044 24630010 */ addiu $v1, $v1, 0x10 +/* 0335D8 70200048 AC60FFF4 */ sw $zero, -0xc($v1) +/* 0335DC 7020004C AC60FFF8 */ sw $zero, -8($v1) +/* 0335E0 70200050 AC60FFFC */ sw $zero, -4($v1) +/* 0335E4 70200054 1462FFFB */ bne $v1, $v0, .L70200044 +/* 0335E8 70200058 AC60FFF0 */ sw $zero, -0x10($v1) +/* 0335EC 7020005C 30A20003 */ andi $v0, $a1, 3 +/* 0335F0 70200060 00021023 */ negu $v0, $v0 +/* 0335F4 70200064 0240F825 */ move $ra, $s2 +/* 0335F8 70200068 1040000D */ beqz $v0, .L702000A0 +/* 0335FC 7020006C 00A08025 */ move $s0, $a1 +/* 033600 70200070 00451821 */ addu $v1, $v0, $a1 +/* 033604 70200074 27A405A8 */ addiu $a0, $sp, 0x5a8 +.L70200078: +/* 033608 70200078 8FEE0000 */ lw $t6, ($ra) +/* 03360C 7020007C 2610FFFF */ addiu $s0, $s0, -1 +/* 033610 70200080 27FF0004 */ addiu $ra, $ra, 4 +/* 033614 70200084 000E7880 */ sll $t7, $t6, 2 +/* 033618 70200088 008F1021 */ addu $v0, $a0, $t7 +/* 03361C 7020008C 8C580000 */ lw $t8, ($v0) +/* 033620 70200090 27190001 */ addiu $t9, $t8, 1 +/* 033624 70200094 1470FFF8 */ bne $v1, $s0, .L70200078 +/* 033628 70200098 AC590000 */ sw $t9, ($v0) +/* 03362C 7020009C 1200001C */ beqz $s0, .L70200110 +.L702000A0: +/* 033630 702000A0 27A405A8 */ addiu $a0, $sp, 0x5a8 +.L702000A4: +/* 033634 702000A4 8FEE0000 */ lw $t6, ($ra) +/* 033638 702000A8 2610FFFC */ addiu $s0, $s0, -4 +/* 03363C 702000AC 27FF0010 */ addiu $ra, $ra, 0x10 +/* 033640 702000B0 000E7880 */ sll $t7, $t6, 2 +/* 033644 702000B4 008F1021 */ addu $v0, $a0, $t7 +/* 033648 702000B8 8C580000 */ lw $t8, ($v0) +/* 03364C 702000BC 27190001 */ addiu $t9, $t8, 1 +/* 033650 702000C0 AC590000 */ sw $t9, ($v0) +/* 033654 702000C4 8FEEFFF4 */ lw $t6, -0xc($ra) +/* 033658 702000C8 000E7880 */ sll $t7, $t6, 2 +/* 03365C 702000CC 008F1021 */ addu $v0, $a0, $t7 +/* 033660 702000D0 8C580000 */ lw $t8, ($v0) +/* 033664 702000D4 27190001 */ addiu $t9, $t8, 1 +/* 033668 702000D8 AC590000 */ sw $t9, ($v0) +/* 03366C 702000DC 8FEEFFF8 */ lw $t6, -8($ra) +/* 033670 702000E0 000E7880 */ sll $t7, $t6, 2 +/* 033674 702000E4 008F1021 */ addu $v0, $a0, $t7 +/* 033678 702000E8 8C580000 */ lw $t8, ($v0) +/* 03367C 702000EC 27190001 */ addiu $t9, $t8, 1 +/* 033680 702000F0 AC590000 */ sw $t9, ($v0) +/* 033684 702000F4 8FEEFFFC */ lw $t6, -4($ra) +/* 033688 702000F8 000E7880 */ sll $t7, $t6, 2 +/* 03368C 702000FC 008F1021 */ addu $v0, $a0, $t7 +/* 033690 70200100 8C580000 */ lw $t8, ($v0) +/* 033694 70200104 27190001 */ addiu $t9, $t8, 1 +/* 033698 70200108 1600FFE6 */ bnez $s0, .L702000A4 +/* 03369C 7020010C AC590000 */ sw $t9, ($v0) +.L70200110: +/* 0336A0 70200110 8FAE05A8 */ lw $t6, 0x5a8($sp) +/* 0336A4 70200114 8FA60608 */ lw $a2, 0x608($sp) +/* 0336A8 70200118 24070001 */ li $a3, 1 +/* 0336AC 7020011C 14AE0007 */ bne $a1, $t6, .L7020013C +/* 0336B0 70200120 27A805AC */ addiu $t0, $sp, 0x5ac +/* 0336B4 70200124 8FB60604 */ lw $s6, 0x604($sp) +/* 0336B8 70200128 8FA60608 */ lw $a2, 0x608($sp) +/* 0336BC 7020012C 00001025 */ move $v0, $zero +/* 0336C0 70200130 AEC00000 */ sw $zero, ($s6) +/* 0336C4 70200134 1000013B */ b .L70200624 +/* 0336C8 70200138 ACC00000 */ sw $zero, ($a2) +.L7020013C: +/* 0336CC 7020013C 8CD10000 */ lw $s1, ($a2) +/* 0336D0 70200140 24020011 */ li $v0, 17 +.L70200144: +/* 0336D4 70200144 8D0F0000 */ lw $t7, ($t0) +/* 0336D8 70200148 55E00005 */ bnezl $t7, .L70200160 +/* 0336DC 7020014C 0227082B */ sltu $at, $s1, $a3 +/* 0336E0 70200150 24E70001 */ addiu $a3, $a3, 1 +/* 0336E4 70200154 14E2FFFB */ bne $a3, $v0, .L70200144 +/* 0336E8 70200158 25080004 */ addiu $t0, $t0, 4 +/* 0336EC 7020015C 0227082B */ sltu $at, $s1, $a3 +.L70200160: +/* 0336F0 70200160 10200002 */ beqz $at, .L7020016C +/* 0336F4 70200164 00E0A825 */ move $s5, $a3 +/* 0336F8 70200168 00E08825 */ move $s1, $a3 +.L7020016C: +/* 0336FC 7020016C 24100010 */ li $s0, 16 +/* 033700 70200170 27A205E8 */ addiu $v0, $sp, 0x5e8 +.L70200174: +/* 033704 70200174 8C580000 */ lw $t8, ($v0) +/* 033708 70200178 57000005 */ bnezl $t8, .L70200190 +/* 03370C 7020017C 0211082B */ sltu $at, $s0, $s1 +/* 033710 70200180 2610FFFF */ addiu $s0, $s0, -1 +/* 033714 70200184 1600FFFB */ bnez $s0, .L70200174 +/* 033718 70200188 2442FFFC */ addiu $v0, $v0, -4 +/* 03371C 7020018C 0211082B */ sltu $at, $s0, $s1 +.L70200190: +/* 033720 70200190 10200002 */ beqz $at, .L7020019C +/* 033724 70200194 AFB005A0 */ sw $s0, 0x5a0($sp) +/* 033728 70200198 02008825 */ move $s1, $s0 +.L7020019C: +/* 03372C 7020019C 24190001 */ li $t9, 1 +/* 033730 702001A0 00F0082B */ sltu $at, $a3, $s0 +/* 033734 702001A4 ACD10000 */ sw $s1, ($a2) +/* 033738 702001A8 1020000B */ beqz $at, .L702001D8 +/* 03373C 702001AC 00F91804 */ sllv $v1, $t9, $a3 +/* 033740 702001B0 00107080 */ sll $t6, $s0, 2 +/* 033744 702001B4 27AF05A8 */ addiu $t7, $sp, 0x5a8 +/* 033748 702001B8 01CF3021 */ addu $a2, $t6, $t7 +.L702001BC: +/* 03374C 702001BC 8D180000 */ lw $t8, ($t0) +/* 033750 702001C0 25080004 */ addiu $t0, $t0, 4 +/* 033754 702001C4 0106082B */ sltu $at, $t0, $a2 +/* 033758 702001C8 00781823 */ subu $v1, $v1, $t8 +/* 03375C 702001CC 0003C840 */ sll $t9, $v1, 1 +/* 033760 702001D0 1420FFFA */ bnez $at, .L702001BC +/* 033764 702001D4 03201825 */ move $v1, $t9 +.L702001D8: +/* 033768 702001D8 8C480000 */ lw $t0, ($v0) +/* 03376C 702001DC 2610FFFF */ addiu $s0, $s0, -1 +/* 033770 702001E0 00003825 */ move $a3, $zero +/* 033774 702001E4 00681823 */ subu $v1, $v1, $t0 +/* 033778 702001E8 01037021 */ addu $t6, $t0, $v1 +/* 03377C 702001EC AC4E0000 */ sw $t6, ($v0) +/* 033780 702001F0 AFA00078 */ sw $zero, 0x78($sp) +/* 033784 702001F4 27BF05AC */ addiu $ra, $sp, 0x5ac +/* 033788 702001F8 27A6007C */ addiu $a2, $sp, 0x7c +/* 03378C 702001FC AFA505F4 */ sw $a1, 0x5f4($sp) +/* 033790 70200200 12000023 */ beqz $s0, .L70200290 +/* 033794 70200204 2442FFFC */ addiu $v0, $v0, -4 +/* 033798 70200208 32080003 */ andi $t0, $s0, 3 +/* 03379C 7020020C 00084023 */ negu $t0, $t0 +/* 0337A0 70200210 1100000E */ beqz $t0, .L7020024C +/* 0337A4 70200214 AFA505F4 */ sw $a1, 0x5f4($sp) +/* 0337A8 70200218 01104821 */ addu $t1, $t0, $s0 +/* 0337AC 7020021C 00097880 */ sll $t7, $t1, 2 +/* 0337B0 70200220 27B805A8 */ addiu $t8, $sp, 0x5a8 +/* 0337B4 70200224 01F82821 */ addu $a1, $t7, $t8 +.L70200228: +/* 0337B8 70200228 8FF90000 */ lw $t9, ($ra) +/* 0337BC 7020022C 2442FFFC */ addiu $v0, $v0, -4 +/* 0337C0 70200230 24C60004 */ addiu $a2, $a2, 4 +/* 0337C4 70200234 00F93821 */ addu $a3, $a3, $t9 +/* 0337C8 70200238 ACC7FFFC */ sw $a3, -4($a2) +/* 0337CC 7020023C 14A2FFFA */ bne $a1, $v0, .L70200228 +/* 0337D0 70200240 27FF0004 */ addiu $ra, $ra, 4 +/* 0337D4 70200244 27AE05A8 */ addiu $t6, $sp, 0x5a8 +/* 0337D8 70200248 104E0011 */ beq $v0, $t6, .L70200290 +.L7020024C: +/* 0337DC 7020024C 27A505A8 */ addiu $a1, $sp, 0x5a8 +.L70200250: +/* 0337E0 70200250 8FF80000 */ lw $t8, ($ra) +/* 0337E4 70200254 2442FFF0 */ addiu $v0, $v0, -0x10 +/* 0337E8 70200258 24C60010 */ addiu $a2, $a2, 0x10 +/* 0337EC 7020025C 00F83821 */ addu $a3, $a3, $t8 +/* 0337F0 70200260 ACC7FFF0 */ sw $a3, -0x10($a2) +/* 0337F4 70200264 8FF90004 */ lw $t9, 4($ra) +/* 0337F8 70200268 27FF0010 */ addiu $ra, $ra, 0x10 +/* 0337FC 7020026C 00F93821 */ addu $a3, $a3, $t9 +/* 033800 70200270 ACC7FFF4 */ sw $a3, -0xc($a2) +/* 033804 70200274 8FEEFFF8 */ lw $t6, -8($ra) +/* 033808 70200278 00EE3821 */ addu $a3, $a3, $t6 +/* 03380C 7020027C ACC7FFF8 */ sw $a3, -8($a2) +/* 033810 70200280 8FEFFFFC */ lw $t7, -4($ra) +/* 033814 70200284 00EF3821 */ addu $a3, $a3, $t7 +/* 033818 70200288 1445FFF1 */ bne $v0, $a1, .L70200250 +/* 03381C 7020028C ACC7FFFC */ sw $a3, -4($a2) +.L70200290: +/* 033820 70200290 8FAB05F4 */ lw $t3, 0x5f4($sp) +/* 033824 70200294 0240F825 */ move $ra, $s2 +/* 033828 70200298 00008025 */ move $s0, $zero +/* 03382C 7020029C 27A900BC */ addiu $t1, $sp, 0xbc +/* 033830 702002A0 27A60074 */ addiu $a2, $sp, 0x74 +/* 033834 702002A4 8FE70000 */ lw $a3, ($ra) +.L702002A8: +/* 033838 702002A8 27FF0004 */ addiu $ra, $ra, 4 +/* 03383C 702002AC 10E00008 */ beqz $a3, .L702002D0 +/* 033840 702002B0 0007C880 */ sll $t9, $a3, 2 +/* 033844 702002B4 00D91021 */ addu $v0, $a2, $t9 +/* 033848 702002B8 8C450000 */ lw $a1, ($v0) +/* 03384C 702002BC 00057080 */ sll $t6, $a1, 2 +/* 033850 702002C0 012E7821 */ addu $t7, $t1, $t6 +/* 033854 702002C4 ADF00000 */ sw $s0, ($t7) +/* 033858 702002C8 24B80001 */ addiu $t8, $a1, 1 +/* 03385C 702002CC AC580000 */ sw $t8, ($v0) +.L702002D0: +/* 033860 702002D0 26100001 */ addiu $s0, $s0, 1 +/* 033864 702002D4 020B082B */ sltu $at, $s0, $t3 +/* 033868 702002D8 5420FFF3 */ bnezl $at, .L702002A8 +/* 03386C 702002DC 8FE70000 */ lw $a3, ($ra) +/* 033870 702002E0 8FB905A0 */ lw $t9, 0x5a0($sp) +/* 033874 702002E4 AFA3006C */ sw $v1, 0x6c($sp) +/* 033878 702002E8 00008025 */ move $s0, $zero +/* 03387C 702002EC 0335082A */ slt $at, $t9, $s5 +/* 033880 702002F0 AFA00074 */ sw $zero, 0x74($sp) +/* 033884 702002F4 0120F825 */ move $ra, $t1 +/* 033888 702002F8 240CFFFF */ li $t4, -1 +/* 03388C 702002FC 00115023 */ negu $t2, $s1 +/* 033890 70200300 AFA0053C */ sw $zero, 0x53c($sp) +/* 033894 70200304 00003025 */ move $a2, $zero +/* 033898 70200308 142000BF */ bnez $at, .L70200608 +/* 03389C 7020030C 00004025 */ move $t0, $zero +/* 0338A0 70200310 00157080 */ sll $t6, $s5, 2 +/* 0338A4 70200314 27AF05A8 */ addiu $t7, $sp, 0x5a8 +/* 0338A8 70200318 01CFC021 */ addu $t8, $t6, $t7 +/* 0338AC 7020031C 3C1E7020 */ lui $fp, %hi(huftlist) # $fp, 0x7020 +/* 0338B0 70200320 3C137020 */ lui $s3, %hi(hufts) # $s3, 0x7020 +/* 0338B4 70200324 26731598 */ addiu $s3, %lo(hufts) # addiu $s3, $s3, 0x1598 +/* 0338B8 70200328 27DE1490 */ addiu $fp, %lo(huftlist) # addiu $fp, $fp, 0x1490 +/* 0338BC 7020032C AFB80050 */ sw $t8, 0x50($sp) +/* 0338C0 70200330 8FB60604 */ lw $s6, 0x604($sp) +/* 0338C4 70200334 27B4057C */ addiu $s4, $sp, 0x57c +.L70200338: +/* 0338C8 70200338 8FB90050 */ lw $t9, 0x50($sp) +/* 0338CC 7020033C 8FAF05F4 */ lw $t7, 0x5f4($sp) +/* 0338D0 70200340 000C6880 */ sll $t5, $t4, 2 +/* 0338D4 70200344 8F370000 */ lw $s7, ($t9) +/* 0338D8 70200348 27AE0074 */ addiu $t6, $sp, 0x74 +/* 0338DC 7020034C 000FC080 */ sll $t8, $t7, 2 +/* 0338E0 70200350 02E02825 */ move $a1, $s7 +/* 0338E4 70200354 12E000A4 */ beqz $s7, .L702005E8 +/* 0338E8 70200358 26F7FFFF */ addiu $s7, $s7, -1 +/* 0338EC 7020035C 01AE5821 */ addu $t3, $t5, $t6 +/* 0338F0 70200360 27B900BC */ addiu $t9, $sp, 0xbc +/* 0338F4 70200364 03197021 */ addu $t6, $t8, $t9 +/* 0338F8 70200368 24180001 */ li $t8, 1 +/* 0338FC 7020036C 26AF001F */ addiu $t7, $s5, 0x1f +/* 033900 70200370 01F8C804 */ sllv $t9, $t8, $t7 +/* 033904 70200374 AFB90034 */ sw $t9, 0x34($sp) +/* 033908 70200378 AFAE0038 */ sw $t6, 0x38($sp) +.L7020037C: +/* 03390C 7020037C 01511821 */ addu $v1, $t2, $s1 +/* 033910 70200380 0075082A */ slt $at, $v1, $s5 +/* 033914 70200384 10200047 */ beqz $at, .L702004A4 +/* 033918 70200388 26F20001 */ addiu $s2, $s7, 1 +/* 03391C 7020038C 27AE053C */ addiu $t6, $sp, 0x53c +/* 033920 70200390 01AE4821 */ addu $t1, $t5, $t6 +/* 033924 70200394 8FB805A0 */ lw $t8, 0x5a0($sp) +.L70200398: +/* 033928 70200398 258C0001 */ addiu $t4, $t4, 1 +/* 03392C 7020039C 25AD0004 */ addiu $t5, $t5, 4 +/* 033930 702003A0 03034023 */ subu $t0, $t8, $v1 +/* 033934 702003A4 0228082B */ sltu $at, $s1, $t0 +/* 033938 702003A8 25290004 */ addiu $t1, $t1, 4 +/* 03393C 702003AC 256B0004 */ addiu $t3, $t3, 4 +/* 033940 702003B0 10200002 */ beqz $at, .L702003BC +/* 033944 702003B4 00605025 */ move $t2, $v1 +/* 033948 702003B8 02204025 */ move $t0, $s1 +.L702003BC: +/* 03394C 702003BC 02AA1023 */ subu $v0, $s5, $t2 +/* 033950 702003C0 240F0001 */ li $t7, 1 +/* 033954 702003C4 004F2004 */ sllv $a0, $t7, $v0 +/* 033958 702003C8 0244082B */ sltu $at, $s2, $a0 +/* 03395C 702003CC 10200013 */ beqz $at, .L7020041C +/* 033960 702003D0 00403825 */ move $a3, $v0 +/* 033964 702003D4 24470001 */ addiu $a3, $v0, 1 +/* 033968 702003D8 00971823 */ subu $v1, $a0, $s7 +/* 03396C 702003DC 0015C880 */ sll $t9, $s5, 2 +/* 033970 702003E0 27AE05A8 */ addiu $t6, $sp, 0x5a8 +/* 033974 702003E4 00E8082B */ sltu $at, $a3, $t0 +/* 033978 702003E8 2463FFFF */ addiu $v1, $v1, -1 +/* 03397C 702003EC 1020000B */ beqz $at, .L7020041C +/* 033980 702003F0 032E3021 */ addu $a2, $t9, $t6 +.L702003F4: +/* 033984 702003F4 8CC40004 */ lw $a0, 4($a2) +/* 033988 702003F8 00031040 */ sll $v0, $v1, 1 +/* 03398C 702003FC 24C60004 */ addiu $a2, $a2, 4 +/* 033990 70200400 0082082B */ sltu $at, $a0, $v0 +/* 033994 70200404 50200006 */ beql $at, $zero, .L70200420 +/* 033998 70200408 8E630000 */ lw $v1, ($s3) +/* 03399C 7020040C 24E70001 */ addiu $a3, $a3, 1 +/* 0339A0 70200410 00E8082B */ sltu $at, $a3, $t0 +/* 0339A4 70200414 1420FFF7 */ bnez $at, .L702003F4 +/* 0339A8 70200418 00441823 */ subu $v1, $v0, $a0 +.L7020041C: +/* 0339AC 7020041C 8E630000 */ lw $v1, ($s3) +.L70200420: +/* 0339B0 70200420 8FD90000 */ lw $t9, ($fp) +/* 0339B4 70200424 24180001 */ li $t8, 1 +/* 0339B8 70200428 00F84004 */ sllv $t0, $t8, $a3 +/* 0339BC 7020042C 000378C0 */ sll $t7, $v1, 3 +/* 0339C0 70200430 00687021 */ addu $t6, $v1, $t0 +/* 0339C4 70200434 25D80001 */ addiu $t8, $t6, 1 +/* 0339C8 70200438 01F93021 */ addu $a2, $t7, $t9 +/* 0339CC 7020043C AE780000 */ sw $t8, ($s3) +/* 0339D0 70200440 24C40008 */ addiu $a0, $a2, 8 +/* 0339D4 70200444 AEC40000 */ sw $a0, ($s6) +/* 0339D8 70200448 ACC00004 */ sw $zero, 4($a2) +/* 0339DC 7020044C 24D60004 */ addiu $s6, $a2, 4 +/* 0339E0 70200450 00803025 */ move $a2, $a0 +/* 0339E4 70200454 1180000F */ beqz $t4, .L70200494 +/* 0339E8 70200458 AD240000 */ sw $a0, ($t1) +/* 0339EC 7020045C AD700000 */ sw $s0, ($t3) +/* 0339F0 70200460 24EF0010 */ addiu $t7, $a3, 0x10 +/* 0339F4 70200464 A3B1057D */ sb $s1, 0x57d($sp) +/* 0339F8 70200468 A3AF057C */ sb $t7, 0x57c($sp) +/* 0339FC 7020046C AFA40580 */ sw $a0, 0x580($sp) +/* 033A00 70200470 8D39FFFC */ lw $t9, -4($t1) +/* 033A04 70200474 01517023 */ subu $t6, $t2, $s1 +/* 033A08 70200478 8E810000 */ lw $at, ($s4) +/* 033A0C 7020047C 01D0C006 */ srlv $t8, $s0, $t6 +/* 033A10 70200480 001878C0 */ sll $t7, $t8, 3 +/* 033A14 70200484 032F7021 */ addu $t6, $t9, $t7 +/* 033A18 70200488 ADC10000 */ sw $at, ($t6) +/* 033A1C 7020048C 8E8F0004 */ lw $t7, 4($s4) +/* 033A20 70200490 ADCF0004 */ sw $t7, 4($t6) +.L70200494: +/* 033A24 70200494 01511821 */ addu $v1, $t2, $s1 +/* 033A28 70200498 0075082A */ slt $at, $v1, $s5 +/* 033A2C 7020049C 5420FFBE */ bnezl $at, .L70200398 +/* 033A30 702004A0 8FB805A0 */ lw $t8, 0x5a0($sp) +.L702004A4: +/* 033A34 702004A4 8FB80038 */ lw $t8, 0x38($sp) +/* 033A38 702004A8 24190001 */ li $t9, 1 +/* 033A3C 702004AC 02AA1823 */ subu $v1, $s5, $t2 +/* 033A40 702004B0 01592804 */ sllv $a1, $t9, $t2 +/* 033A44 702004B4 03F8082B */ sltu $at, $ra, $t8 +/* 033A48 702004B8 A3A3057D */ sb $v1, 0x57d($sp) +/* 033A4C 702004BC 14200004 */ bnez $at, .L702004D0 +/* 033A50 702004C0 24A5FFFF */ addiu $a1, $a1, -1 +/* 033A54 702004C4 240E0063 */ li $t6, 99 +/* 033A58 702004C8 10000020 */ b .L7020054C +/* 033A5C 702004CC A3AE057C */ sb $t6, 0x57c($sp) +.L702004D0: +/* 033A60 702004D0 8FE20000 */ lw $v0, ($ra) +/* 033A64 702004D4 8FAF05F8 */ lw $t7, 0x5f8($sp) +/* 033A68 702004D8 8FA405F8 */ lw $a0, 0x5f8($sp) +/* 033A6C 702004DC 8FB90600 */ lw $t9, 0x600($sp) +/* 033A70 702004E0 004F082B */ sltu $at, $v0, $t7 +/* 033A74 702004E4 1020000B */ beqz $at, .L70200514 +/* 033A78 702004E8 2C410100 */ sltiu $at, $v0, 0x100 +/* 033A7C 702004EC 10200004 */ beqz $at, .L70200500 +/* 033A80 702004F0 2418000F */ li $t8, 15 +/* 033A84 702004F4 24190010 */ li $t9, 16 +/* 033A88 702004F8 10000002 */ b .L70200504 +/* 033A8C 702004FC A3B9057C */ sb $t9, 0x57c($sp) +.L70200500: +/* 033A90 70200500 A3B8057C */ sb $t8, 0x57c($sp) +.L70200504: +/* 033A94 70200504 8FEE0000 */ lw $t6, ($ra) +/* 033A98 70200508 27FF0004 */ addiu $ra, $ra, 4 +/* 033A9C 7020050C 1000000F */ b .L7020054C +/* 033AA0 70200510 A7AE0580 */ sh $t6, 0x580($sp) +.L70200514: +/* 033AA4 70200514 00447823 */ subu $t7, $v0, $a0 +/* 033AA8 70200518 01F9C021 */ addu $t8, $t7, $t9 +/* 033AAC 7020051C 930E0000 */ lbu $t6, ($t8) +/* 033AB0 70200520 8FAF05FC */ lw $t7, 0x5fc($sp) +/* 033AB4 70200524 27FF0004 */ addiu $ra, $ra, 4 +/* 033AB8 70200528 A3AE057C */ sb $t6, 0x57c($sp) +/* 033ABC 7020052C 8FF9FFFC */ lw $t9, -4($ra) +/* 033AC0 70200530 0019C040 */ sll $t8, $t9, 1 +/* 033AC4 70200534 0004C840 */ sll $t9, $a0, 1 +/* 033AC8 70200538 01F87021 */ addu $t6, $t7, $t8 +/* 033ACC 7020053C 00197823 */ negu $t7, $t9 +/* 033AD0 70200540 01CFC021 */ addu $t8, $t6, $t7 +/* 033AD4 70200544 97190000 */ lhu $t9, ($t8) +/* 033AD8 70200548 A7B90580 */ sh $t9, 0x580($sp) +.L7020054C: +/* 033ADC 7020054C 01503806 */ srlv $a3, $s0, $t2 +/* 033AE0 70200550 00E8082B */ sltu $at, $a3, $t0 +/* 033AE4 70200554 1020000B */ beqz $at, .L70200584 +/* 033AE8 70200558 240E0001 */ li $t6, 1 +/* 033AEC 7020055C 006E1004 */ sllv $v0, $t6, $v1 +.L70200560: +/* 033AF0 70200560 8E810000 */ lw $at, ($s4) +/* 033AF4 70200564 000778C0 */ sll $t7, $a3, 3 +/* 033AF8 70200568 00CFC021 */ addu $t8, $a2, $t7 +/* 033AFC 7020056C AF010000 */ sw $at, ($t8) +/* 033B00 70200570 8E8E0004 */ lw $t6, 4($s4) +/* 033B04 70200574 00E23821 */ addu $a3, $a3, $v0 +/* 033B08 70200578 00E8082B */ sltu $at, $a3, $t0 +/* 033B0C 7020057C 1420FFF8 */ bnez $at, .L70200560 +/* 033B10 70200580 AF0E0004 */ sw $t6, 4($t8) +.L70200584: +/* 033B14 70200584 8FA70034 */ lw $a3, 0x34($sp) +/* 033B18 70200588 8D620000 */ lw $v0, ($t3) +/* 033B1C 7020058C 02077824 */ and $t7, $s0, $a3 +/* 033B20 70200590 11E00005 */ beqz $t7, .L702005A8 +.L70200594: +/* 033B24 70200594 0007C842 */ srl $t9, $a3, 1 +/* 033B28 70200598 02078026 */ xor $s0, $s0, $a3 +/* 033B2C 7020059C 0219C024 */ and $t8, $s0, $t9 +/* 033B30 702005A0 1700FFFC */ bnez $t8, .L70200594 +/* 033B34 702005A4 03203825 */ move $a3, $t9 +.L702005A8: +/* 033B38 702005A8 02078026 */ xor $s0, $s0, $a3 +/* 033B3C 702005AC 02057024 */ and $t6, $s0, $a1 +/* 033B40 702005B0 11C2000B */ beq $t6, $v0, .L702005E0 +/* 033B44 702005B4 02E02825 */ move $a1, $s7 +.L702005B8: +/* 033B48 702005B8 01515023 */ subu $t2, $t2, $s1 +/* 033B4C 702005BC 240F0001 */ li $t7, 1 +/* 033B50 702005C0 014FC804 */ sllv $t9, $t7, $t2 +/* 033B54 702005C4 8D6FFFFC */ lw $t7, -4($t3) +/* 033B58 702005C8 2738FFFF */ addiu $t8, $t9, -1 +/* 033B5C 702005CC 02187024 */ and $t6, $s0, $t8 +/* 033B60 702005D0 258CFFFF */ addiu $t4, $t4, -1 +/* 033B64 702005D4 25ADFFFC */ addiu $t5, $t5, -4 +/* 033B68 702005D8 15CFFFF7 */ bne $t6, $t7, .L702005B8 +/* 033B6C 702005DC 256BFFFC */ addiu $t3, $t3, -4 +.L702005E0: +/* 033B70 702005E0 16E0FF66 */ bnez $s7, .L7020037C +/* 033B74 702005E4 26F7FFFF */ addiu $s7, $s7, -1 +.L702005E8: +/* 033B78 702005E8 8FB90050 */ lw $t9, 0x50($sp) +/* 033B7C 702005EC 8FAE05A0 */ lw $t6, 0x5a0($sp) +/* 033B80 702005F0 26B50001 */ addiu $s5, $s5, 1 +/* 033B84 702005F4 27380004 */ addiu $t8, $t9, 4 +/* 033B88 702005F8 01D5082A */ slt $at, $t6, $s5 +/* 033B8C 702005FC 1020FF4E */ beqz $at, .L70200338 +/* 033B90 70200600 AFB80050 */ sw $t8, 0x50($sp) +/* 033B94 70200604 AFB60604 */ sw $s6, 0x604($sp) +.L70200608: +/* 033B98 70200608 8FA2006C */ lw $v0, 0x6c($sp) +/* 033B9C 7020060C 0002782B */ sltu $t7, $zero, $v0 +/* 033BA0 70200610 11E00004 */ beqz $t7, .L70200624 +/* 033BA4 70200614 01E01025 */ move $v0, $t7 +/* 033BA8 70200618 8FA205A0 */ lw $v0, 0x5a0($sp) +/* 033BAC 7020061C 38590001 */ xori $t9, $v0, 1 +/* 033BB0 70200620 0019102B */ sltu $v0, $zero, $t9 +.L70200624: +/* 033BB4 70200624 8FBF002C */ lw $ra, 0x2c($sp) +/* 033BB8 70200628 8FB00008 */ lw $s0, 8($sp) +/* 033BBC 7020062C 8FB1000C */ lw $s1, 0xc($sp) +/* 033BC0 70200630 8FB20010 */ lw $s2, 0x10($sp) +/* 033BC4 70200634 8FB30014 */ lw $s3, 0x14($sp) +/* 033BC8 70200638 8FB40018 */ lw $s4, 0x18($sp) +/* 033BCC 7020063C 8FB5001C */ lw $s5, 0x1c($sp) +/* 033BD0 70200640 8FB60020 */ lw $s6, 0x20($sp) +/* 033BD4 70200644 8FB70024 */ lw $s7, 0x24($sp) +/* 033BD8 70200648 8FBE0028 */ lw $fp, 0x28($sp) +/* 033BDC 7020064C 03E00008 */ jr $ra +/* 033BE0 70200650 27BD05F0 */ addiu $sp, $sp, 0x5f0 +) + +GLOBAL_ASM( +glabel inflate_codes +/* 033BE4 70200654 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 033BE8 70200658 3C0B7020 */ lui $t3, %hi(mask_bits) # $t3, 0x7020 +/* 033BEC 7020065C 256B156C */ addiu $t3, %lo(mask_bits) # addiu $t3, $t3, 0x156c +/* 033BF0 70200660 AFB10008 */ sw $s1, 8($sp) +/* 033BF4 70200664 AFB00004 */ sw $s0, 4($sp) +/* 033BF8 70200668 00067040 */ sll $t6, $a2, 1 +/* 033BFC 7020066C 0007C040 */ sll $t8, $a3, 1 +/* 033C00 70200670 00C08025 */ move $s0, $a2 +/* 033C04 70200674 00E08825 */ move $s1, $a3 +/* 033C08 70200678 3C097020 */ lui $t1, %hi(bb) # $t1, 0x7020 +/* 033C0C 7020067C 3C087020 */ lui $t0, %hi(bk) # $t0, 0x7020 +/* 033C10 70200680 3C037020 */ lui $v1, %hi(wp) # $v1, 0x7020 +/* 033C14 70200684 016E7821 */ addu $t7, $t3, $t6 +/* 033C18 70200688 0178C821 */ addu $t9, $t3, $t8 +/* 033C1C 7020068C 3C077020 */ lui $a3, %hi(inptr) # $a3, 0x7020 +/* 033C20 70200690 3C067020 */ lui $a2, %hi(outbuf) # $a2, 0x7020 +/* 033C24 70200694 AFB2000C */ sw $s2, 0xc($sp) +/* 033C28 70200698 AFA40010 */ sw $a0, 0x10($sp) +/* 033C2C 7020069C AFA50014 */ sw $a1, 0x14($sp) +/* 033C30 702006A0 8D291564 */ lw $t1, %lo(bb)($t1) +/* 033C34 702006A4 8D081568 */ lw $t0, %lo(bk)($t0) +/* 033C38 702006A8 8C63148C */ lw $v1, %lo(wp)($v1) +/* 033C3C 702006AC 95EC0000 */ lhu $t4, ($t7) +/* 033C40 702006B0 972D0000 */ lhu $t5, ($t9) +/* 033C44 702006B4 24C61484 */ addiu $a2, %lo(outbuf) # addiu $a2, $a2, 0x1484 +/* 033C48 702006B8 24E71488 */ addiu $a3, %lo(inptr) # addiu $a3, $a3, 0x1488 +.L702006BC: +/* 033C4C 702006BC 0110082B */ sltu $at, $t0, $s0 +.L702006C0: +/* 033C50 702006C0 1020000C */ beqz $at, .L702006F4 +/* 033C54 702006C4 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033C58 702006C8 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L702006CC: +/* 033C5C 702006CC 8CF20000 */ lw $s2, ($a3) +/* 033C60 702006D0 00527021 */ addu $t6, $v0, $s2 +/* 033C64 702006D4 91CF0000 */ lbu $t7, ($t6) +/* 033C68 702006D8 26590001 */ addiu $t9, $s2, 1 +/* 033C6C 702006DC ACF90000 */ sw $t9, ($a3) +/* 033C70 702006E0 010FC004 */ sllv $t8, $t7, $t0 +/* 033C74 702006E4 25080008 */ addiu $t0, $t0, 8 +/* 033C78 702006E8 0110082B */ sltu $at, $t0, $s0 +/* 033C7C 702006EC 1420FFF7 */ bnez $at, .L702006CC +/* 033C80 702006F0 01384825 */ or $t1, $t1, $t8 +.L702006F4: +/* 033C84 702006F4 8FB80010 */ lw $t8, 0x10($sp) +/* 033C88 702006F8 012C7024 */ and $t6, $t1, $t4 +/* 033C8C 702006FC 000E78C0 */ sll $t7, $t6, 3 +/* 033C90 70200700 01F82821 */ addu $a1, $t7, $t8 +/* 033C94 70200704 90A40000 */ lbu $a0, ($a1) +/* 033C98 70200708 2C810011 */ sltiu $at, $a0, 0x11 +/* 033C9C 7020070C 5420001F */ bnezl $at, .L7020078C +/* 033CA0 70200710 90A20001 */ lbu $v0, 1($a1) +/* 033CA4 70200714 90A20001 */ lbu $v0, 1($a1) +.L70200718: +/* 033CA8 70200718 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 033CAC 7020071C 01024023 */ subu $t0, $t0, $v0 +/* 033CB0 70200720 0104082B */ sltu $at, $t0, $a0 +/* 033CB4 70200724 1020000D */ beqz $at, .L7020075C +/* 033CB8 70200728 00494806 */ srlv $t1, $t1, $v0 +/* 033CBC 7020072C 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033CC0 70200730 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200734: +/* 033CC4 70200734 8CF20000 */ lw $s2, ($a3) +/* 033CC8 70200738 0052C821 */ addu $t9, $v0, $s2 +/* 033CCC 7020073C 932E0000 */ lbu $t6, ($t9) +/* 033CD0 70200740 26580001 */ addiu $t8, $s2, 1 +/* 033CD4 70200744 ACF80000 */ sw $t8, ($a3) +/* 033CD8 70200748 010E7804 */ sllv $t7, $t6, $t0 +/* 033CDC 7020074C 25080008 */ addiu $t0, $t0, 8 +/* 033CE0 70200750 0104082B */ sltu $at, $t0, $a0 +/* 033CE4 70200754 1420FFF7 */ bnez $at, .L70200734 +/* 033CE8 70200758 012F4825 */ or $t1, $t1, $t7 +.L7020075C: +/* 033CEC 7020075C 0004C840 */ sll $t9, $a0, 1 +/* 033CF0 70200760 01797021 */ addu $t6, $t3, $t9 +/* 033CF4 70200764 95CF0000 */ lhu $t7, ($t6) +/* 033CF8 70200768 8CAE0004 */ lw $t6, 4($a1) +/* 033CFC 7020076C 01E9C024 */ and $t8, $t7, $t1 +/* 033D00 70200770 0018C8C0 */ sll $t9, $t8, 3 +/* 033D04 70200774 032E2821 */ addu $a1, $t9, $t6 +/* 033D08 70200778 90A40000 */ lbu $a0, ($a1) +/* 033D0C 7020077C 2C810011 */ sltiu $at, $a0, 0x11 +/* 033D10 70200780 5020FFE5 */ beql $at, $zero, .L70200718 +/* 033D14 70200784 90A20001 */ lbu $v0, 1($a1) +/* 033D18 70200788 90A20001 */ lbu $v0, 1($a1) +.L7020078C: +/* 033D1C 7020078C 24010010 */ li $at, 16 +/* 033D20 70200790 00494806 */ srlv $t1, $t1, $v0 +/* 033D24 70200794 14810007 */ bne $a0, $at, .L702007B4 +/* 033D28 70200798 01024023 */ subu $t0, $t0, $v0 +/* 033D2C 7020079C 8CD80000 */ lw $t8, ($a2) +/* 033D30 702007A0 94AF0004 */ lhu $t7, 4($a1) +/* 033D34 702007A4 0303C821 */ addu $t9, $t8, $v1 +/* 033D38 702007A8 24630001 */ addiu $v1, $v1, 1 +/* 033D3C 702007AC 1000FFC3 */ b .L702006BC +/* 033D40 702007B0 A32F0000 */ sb $t7, ($t9) +.L702007B4: +/* 033D44 702007B4 2401000F */ li $at, 15 +/* 033D48 702007B8 10810097 */ beq $a0, $at, .L70200A18 +/* 033D4C 702007BC 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033D50 702007C0 0104082B */ sltu $at, $t0, $a0 +/* 033D54 702007C4 5020000D */ beql $at, $zero, .L702007FC +/* 033D58 702007C8 00047040 */ sll $t6, $a0, 1 +/* 033D5C 702007CC 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L702007D0: +/* 033D60 702007D0 8CF20000 */ lw $s2, ($a3) +/* 033D64 702007D4 00527021 */ addu $t6, $v0, $s2 +/* 033D68 702007D8 91D80000 */ lbu $t8, ($t6) +/* 033D6C 702007DC 26590001 */ addiu $t9, $s2, 1 +/* 033D70 702007E0 ACF90000 */ sw $t9, ($a3) +/* 033D74 702007E4 01187804 */ sllv $t7, $t8, $t0 +/* 033D78 702007E8 25080008 */ addiu $t0, $t0, 8 +/* 033D7C 702007EC 0104082B */ sltu $at, $t0, $a0 +/* 033D80 702007F0 1420FFF7 */ bnez $at, .L702007D0 +/* 033D84 702007F4 012F4825 */ or $t1, $t1, $t7 +/* 033D88 702007F8 00047040 */ sll $t6, $a0, 1 +.L702007FC: +/* 033D8C 702007FC 016EC021 */ addu $t8, $t3, $t6 +/* 033D90 70200800 970F0000 */ lhu $t7, ($t8) +/* 033D94 70200804 94AE0004 */ lhu $t6, 4($a1) +/* 033D98 70200808 01044023 */ subu $t0, $t0, $a0 +/* 033D9C 7020080C 0111082B */ sltu $at, $t0, $s1 +/* 033DA0 70200810 01E9C824 */ and $t9, $t7, $t1 +/* 033DA4 70200814 00894806 */ srlv $t1, $t1, $a0 +/* 033DA8 70200818 1020000D */ beqz $at, .L70200850 +/* 033DAC 7020081C 032E5021 */ addu $t2, $t9, $t6 +/* 033DB0 70200820 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033DB4 70200824 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200828: +/* 033DB8 70200828 8CF20000 */ lw $s2, ($a3) +/* 033DBC 7020082C 0052C021 */ addu $t8, $v0, $s2 +/* 033DC0 70200830 930F0000 */ lbu $t7, ($t8) +/* 033DC4 70200834 264E0001 */ addiu $t6, $s2, 1 +/* 033DC8 70200838 ACEE0000 */ sw $t6, ($a3) +/* 033DCC 7020083C 010FC804 */ sllv $t9, $t7, $t0 +/* 033DD0 70200840 25080008 */ addiu $t0, $t0, 8 +/* 033DD4 70200844 0111082B */ sltu $at, $t0, $s1 +/* 033DD8 70200848 1420FFF7 */ bnez $at, .L70200828 +/* 033DDC 7020084C 01394825 */ or $t1, $t1, $t9 +.L70200850: +/* 033DE0 70200850 8FB90014 */ lw $t9, 0x14($sp) +/* 033DE4 70200854 012DC024 */ and $t8, $t1, $t5 +/* 033DE8 70200858 001878C0 */ sll $t7, $t8, 3 +/* 033DEC 7020085C 01F92821 */ addu $a1, $t7, $t9 +/* 033DF0 70200860 90A40000 */ lbu $a0, ($a1) +/* 033DF4 70200864 2C810011 */ sltiu $at, $a0, 0x11 +/* 033DF8 70200868 5420001F */ bnezl $at, .L702008E8 +/* 033DFC 7020086C 90A20001 */ lbu $v0, 1($a1) +/* 033E00 70200870 90A20001 */ lbu $v0, 1($a1) +.L70200874: +/* 033E04 70200874 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 033E08 70200878 01024023 */ subu $t0, $t0, $v0 +/* 033E0C 7020087C 0104082B */ sltu $at, $t0, $a0 +/* 033E10 70200880 1020000D */ beqz $at, .L702008B8 +/* 033E14 70200884 00494806 */ srlv $t1, $t1, $v0 +/* 033E18 70200888 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033E1C 7020088C 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200890: +/* 033E20 70200890 8CF20000 */ lw $s2, ($a3) +/* 033E24 70200894 00527021 */ addu $t6, $v0, $s2 +/* 033E28 70200898 91D80000 */ lbu $t8, ($t6) +/* 033E2C 7020089C 26590001 */ addiu $t9, $s2, 1 +/* 033E30 702008A0 ACF90000 */ sw $t9, ($a3) +/* 033E34 702008A4 01187804 */ sllv $t7, $t8, $t0 +/* 033E38 702008A8 25080008 */ addiu $t0, $t0, 8 +/* 033E3C 702008AC 0104082B */ sltu $at, $t0, $a0 +/* 033E40 702008B0 1420FFF7 */ bnez $at, .L70200890 +/* 033E44 702008B4 012F4825 */ or $t1, $t1, $t7 +.L702008B8: +/* 033E48 702008B8 00047040 */ sll $t6, $a0, 1 +/* 033E4C 702008BC 016EC021 */ addu $t8, $t3, $t6 +/* 033E50 702008C0 970F0000 */ lhu $t7, ($t8) +/* 033E54 702008C4 8CB80004 */ lw $t8, 4($a1) +/* 033E58 702008C8 01E9C824 */ and $t9, $t7, $t1 +/* 033E5C 702008CC 001970C0 */ sll $t6, $t9, 3 +/* 033E60 702008D0 01D82821 */ addu $a1, $t6, $t8 +/* 033E64 702008D4 90A40000 */ lbu $a0, ($a1) +/* 033E68 702008D8 2C810011 */ sltiu $at, $a0, 0x11 +/* 033E6C 702008DC 5020FFE5 */ beql $at, $zero, .L70200874 +/* 033E70 702008E0 90A20001 */ lbu $v0, 1($a1) +/* 033E74 702008E4 90A20001 */ lbu $v0, 1($a1) +.L702008E8: +/* 033E78 702008E8 01024023 */ subu $t0, $t0, $v0 +/* 033E7C 702008EC 0104082B */ sltu $at, $t0, $a0 +/* 033E80 702008F0 1020000D */ beqz $at, .L70200928 +/* 033E84 702008F4 00494806 */ srlv $t1, $t1, $v0 +/* 033E88 702008F8 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033E8C 702008FC 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200900: +/* 033E90 70200900 8CF20000 */ lw $s2, ($a3) +/* 033E94 70200904 00527821 */ addu $t7, $v0, $s2 +/* 033E98 70200908 91F90000 */ lbu $t9, ($t7) +/* 033E9C 7020090C 26580001 */ addiu $t8, $s2, 1 +/* 033EA0 70200910 ACF80000 */ sw $t8, ($a3) +/* 033EA4 70200914 01197004 */ sllv $t6, $t9, $t0 +/* 033EA8 70200918 25080008 */ addiu $t0, $t0, 8 +/* 033EAC 7020091C 0104082B */ sltu $at, $t0, $a0 +/* 033EB0 70200920 1420FFF7 */ bnez $at, .L70200900 +/* 033EB4 70200924 012E4825 */ or $t1, $t1, $t6 +.L70200928: +/* 033EB8 70200928 94AF0004 */ lhu $t7, 4($a1) +/* 033EBC 7020092C 00047040 */ sll $t6, $a0, 1 +/* 033EC0 70200930 016EC021 */ addu $t8, $t3, $t6 +/* 033EC4 70200934 006FC823 */ subu $t9, $v1, $t7 +/* 033EC8 70200938 970F0000 */ lhu $t7, ($t8) +/* 033ECC 7020093C 01044023 */ subu $t0, $t0, $a0 +/* 033ED0 70200940 01E97024 */ and $t6, $t7, $t1 +/* 033ED4 70200944 032E1023 */ subu $v0, $t9, $t6 +/* 033ED8 70200948 00894806 */ srlv $t1, $t1, $a0 +/* 033EDC 7020094C 01402025 */ move $a0, $t2 +.L70200950: +/* 033EE0 70200950 30920003 */ andi $s2, $a0, 3 +/* 033EE4 70200954 00129023 */ negu $s2, $s2 +/* 033EE8 70200958 1240000D */ beqz $s2, .L70200990 +/* 033EEC 7020095C 00005025 */ move $t2, $zero +/* 033EF0 70200960 02442821 */ addu $a1, $s2, $a0 +.L70200964: +/* 033EF4 70200964 8CD20000 */ lw $s2, ($a2) +/* 033EF8 70200968 2484FFFF */ addiu $a0, $a0, -1 +/* 033EFC 7020096C 0052C021 */ addu $t8, $v0, $s2 +/* 033F00 70200970 930F0000 */ lbu $t7, ($t8) +/* 033F04 70200974 0243C821 */ addu $t9, $s2, $v1 +/* 033F08 70200978 24630001 */ addiu $v1, $v1, 1 +/* 033F0C 7020097C 24420001 */ addiu $v0, $v0, 1 +/* 033F10 70200980 14A4FFF8 */ bne $a1, $a0, .L70200964 +/* 033F14 70200984 A32F0000 */ sb $t7, ($t9) +/* 033F18 70200988 1080001F */ beqz $a0, .L70200A08 +/* 033F1C 7020098C 00000000 */ nop +.L70200990: +/* 033F20 70200990 8CD20000 */ lw $s2, ($a2) +/* 033F24 70200994 2484FFFC */ addiu $a0, $a0, -4 +/* 033F28 70200998 00527021 */ addu $t6, $v0, $s2 +/* 033F2C 7020099C 91D80000 */ lbu $t8, ($t6) +/* 033F30 702009A0 02437821 */ addu $t7, $s2, $v1 +/* 033F34 702009A4 24420001 */ addiu $v0, $v0, 1 +/* 033F38 702009A8 A1F80000 */ sb $t8, ($t7) +/* 033F3C 702009AC 8CD20000 */ lw $s2, ($a2) +/* 033F40 702009B0 24630001 */ addiu $v1, $v1, 1 +/* 033F44 702009B4 0052C821 */ addu $t9, $v0, $s2 +/* 033F48 702009B8 932E0000 */ lbu $t6, ($t9) +/* 033F4C 702009BC 0243C021 */ addu $t8, $s2, $v1 +/* 033F50 702009C0 24420001 */ addiu $v0, $v0, 1 +/* 033F54 702009C4 A30E0000 */ sb $t6, ($t8) +/* 033F58 702009C8 8CD20000 */ lw $s2, ($a2) +/* 033F5C 702009CC 24630001 */ addiu $v1, $v1, 1 +/* 033F60 702009D0 00527821 */ addu $t7, $v0, $s2 +/* 033F64 702009D4 91F90000 */ lbu $t9, ($t7) +/* 033F68 702009D8 02437021 */ addu $t6, $s2, $v1 +/* 033F6C 702009DC 24420001 */ addiu $v0, $v0, 1 +/* 033F70 702009E0 A1D90000 */ sb $t9, ($t6) +/* 033F74 702009E4 8CD20000 */ lw $s2, ($a2) +/* 033F78 702009E8 24630001 */ addiu $v1, $v1, 1 +/* 033F7C 702009EC 0052C021 */ addu $t8, $v0, $s2 +/* 033F80 702009F0 930F0000 */ lbu $t7, ($t8) +/* 033F84 702009F4 0243C821 */ addu $t9, $s2, $v1 +/* 033F88 702009F8 24630001 */ addiu $v1, $v1, 1 +/* 033F8C 702009FC 24420001 */ addiu $v0, $v0, 1 +/* 033F90 70200A00 1480FFE3 */ bnez $a0, .L70200990 +/* 033F94 70200A04 A32F0000 */ sb $t7, ($t9) +.L70200A08: +/* 033F98 70200A08 5540FFD1 */ bnezl $t2, .L70200950 +/* 033F9C 70200A0C 01402025 */ move $a0, $t2 +/* 033FA0 70200A10 1000FF2B */ b .L702006C0 +/* 033FA4 70200A14 0110082B */ sltu $at, $t0, $s0 +.L70200A18: +/* 033FA8 70200A18 3C017020 */ lui $at, %hi(wp) # $at, 0x7020 +/* 033FAC 70200A1C AC23148C */ sw $v1, %lo(wp)($at) +/* 033FB0 70200A20 3C017020 */ lui $at, %hi(bb) # $at, 0x7020 +/* 033FB4 70200A24 AC291564 */ sw $t1, %lo(bb)($at) +/* 033FB8 70200A28 3C017020 */ lui $at, %hi(bk) # $at, 0x7020 +/* 033FBC 70200A2C 8FB00004 */ lw $s0, 4($sp) +/* 033FC0 70200A30 8FB10008 */ lw $s1, 8($sp) +/* 033FC4 70200A34 8FB2000C */ lw $s2, 0xc($sp) +/* 033FC8 70200A38 AC281568 */ sw $t0, %lo(bk)($at) +/* 033FCC 70200A3C 27BD0010 */ addiu $sp, $sp, 0x10 +/* 033FD0 70200A40 03E00008 */ jr $ra +/* 033FD4 70200A44 00001025 */ move $v0, $zero +) + + + +s32 inflate_stored(void) +{ + s32 n; /* number of bytes in block */ + s32 w; /* current window position */ + register u32 b; /* bit buffer */ + register u32 k; /* number of bits in bit buffer */ + + /* make local copies of globals */ + b = bb; /* initialize bit buffer */ + k = bk; + w = wp; /* initialize window position */ + + /* go to byte boundary */ + n = k & 7; + DUMPBITS(n); + + /* get the length and its complement */ + NEEDBITS(16) + n = (b & 0xffff); + DUMPBITS(16) + + NEEDBITS(16) + DUMPBITS(16) + + /* read and output the compressed data */ + while (n--) { + NEEDBITS(8) + outbuf[w++] = (u8)b; + + DUMPBITS(8) + } + + /* restore the globals from the locals */ + wp = w; /* restore global window pointer */ + bb = b; /* restore global bit buffer */ + bk = k; + return 0; +} + + +#ifdef NONMATCHING +s32 inflate_fixed(void) +{ + s32 i; /* temporary variable */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + s32 bl; /* lookup bits for tl */ + s32 bd; /* lookup bits for td */ + u32 l[288]; /* length list for huft_build */ + + /* set up literal table */ + for (i = 0; i < 144; i++) { + l[i] = 8; + } + for (; i < 256; i++) { + l[i] = 9; + } + for (; i < 280; i++) { + l[i] = 7; + } + for (; i < 288; i++) { + l[i] = 8; + } + + bl = 7; + + huft_build(l, 288, 257, cplens, cplext, &tl, &bl); + + /* set up distance table */ + for (i = 0; i < 30; i++) { + l[i] = 5; + } + + bd = 5; + + /* decompress until an end-of-block code */ + huft_build(l, 30, 0, cpdist, cpdext, &td, &bd); + + inflate_codes(tl, td, bl, bd); + + return 0; +} +#else +GLOBAL_ASM( +glabel inflate_fixed +/* 03412C 70200B9C 27BDFB40 */ addiu $sp, $sp, -0x4c0 +/* 034130 70200BA0 AFBF0024 */ sw $ra, 0x24($sp) +/* 034134 70200BA4 27A2002C */ addiu $v0, $sp, 0x2c +/* 034138 70200BA8 27A4026C */ addiu $a0, $sp, 0x26c +/* 03413C 70200BAC 24030008 */ li $v1, 8 +.L70200BB0: +/* 034140 70200BB0 24420010 */ addiu $v0, $v0, 0x10 +/* 034144 70200BB4 AC43FFF4 */ sw $v1, -0xc($v0) +/* 034148 70200BB8 AC43FFF8 */ sw $v1, -8($v0) +/* 03414C 70200BBC AC43FFFC */ sw $v1, -4($v0) +/* 034150 70200BC0 1444FFFB */ bne $v0, $a0, .L70200BB0 +/* 034154 70200BC4 AC43FFF0 */ sw $v1, -0x10($v0) +/* 034158 70200BC8 27AE042C */ addiu $t6, $sp, 0x42c +/* 03415C 70200BCC 004E082B */ sltu $at, $v0, $t6 +/* 034160 70200BD0 10200007 */ beqz $at, .L70200BF0 +/* 034164 70200BD4 27AF048C */ addiu $t7, $sp, 0x48c +/* 034168 70200BD8 27A5042C */ addiu $a1, $sp, 0x42c +/* 03416C 70200BDC 24040009 */ li $a0, 9 +.L70200BE0: +/* 034170 70200BE0 24420004 */ addiu $v0, $v0, 4 +/* 034174 70200BE4 0045082B */ sltu $at, $v0, $a1 +/* 034178 70200BE8 1420FFFD */ bnez $at, .L70200BE0 +/* 03417C 70200BEC AC44FFFC */ sw $a0, -4($v0) +.L70200BF0: +/* 034180 70200BF0 004F082B */ sltu $at, $v0, $t7 +/* 034184 70200BF4 10200007 */ beqz $at, .L70200C14 +/* 034188 70200BF8 27B804AC */ addiu $t8, $sp, 0x4ac +/* 03418C 70200BFC 27A5048C */ addiu $a1, $sp, 0x48c +/* 034190 70200C00 24040007 */ li $a0, 7 +.L70200C04: +/* 034194 70200C04 24420004 */ addiu $v0, $v0, 4 +/* 034198 70200C08 0045082B */ sltu $at, $v0, $a1 +/* 03419C 70200C0C 1420FFFD */ bnez $at, .L70200C04 +/* 0341A0 70200C10 AC44FFFC */ sw $a0, -4($v0) +.L70200C14: +/* 0341A4 70200C14 0058082B */ sltu $at, $v0, $t8 +/* 0341A8 70200C18 10200006 */ beqz $at, .L70200C34 +/* 0341AC 70200C1C 24190007 */ li $t9, 7 +/* 0341B0 70200C20 27A404AC */ addiu $a0, $sp, 0x4ac +.L70200C24: +/* 0341B4 70200C24 24420004 */ addiu $v0, $v0, 4 +/* 0341B8 70200C28 0044082B */ sltu $at, $v0, $a0 +/* 0341BC 70200C2C 1420FFFD */ bnez $at, .L70200C24 +/* 0341C0 70200C30 AC43FFFC */ sw $v1, -4($v0) +.L70200C34: +/* 0341C4 70200C34 3C087020 */ lui $t0, %hi(cplext) # $t0, 0x7020 +/* 0341C8 70200C38 250814E8 */ addiu $t0, %lo(cplext) # addiu $t0, $t0, 0x14e8 +/* 0341CC 70200C3C 3C077020 */ lui $a3, %hi(cplens) # $a3, 0x7020 +/* 0341D0 70200C40 27A904B8 */ addiu $t1, $sp, 0x4b8 +/* 0341D4 70200C44 27AA04B0 */ addiu $t2, $sp, 0x4b0 +/* 0341D8 70200C48 AFB904B0 */ sw $t9, 0x4b0($sp) +/* 0341DC 70200C4C AFAA0018 */ sw $t2, 0x18($sp) +/* 0341E0 70200C50 AFA90014 */ sw $t1, 0x14($sp) +/* 0341E4 70200C54 24E714A8 */ addiu $a3, %lo(cplens) # addiu $a3, $a3, 0x14a8 +/* 0341E8 70200C58 AFA80010 */ sw $t0, 0x10($sp) +/* 0341EC 70200C5C 27A4002C */ addiu $a0, $sp, 0x2c +/* 0341F0 70200C60 24050120 */ li $a1, 288 +/* 0341F4 70200C64 0C080000 */ jal huft_build +/* 0341F8 70200C68 24060101 */ li $a2, 257 +/* 0341FC 70200C6C 240B0005 */ li $t3, 5 +/* 034200 70200C70 240C0005 */ li $t4, 5 +/* 034204 70200C74 AFAC0030 */ sw $t4, 0x30($sp) +/* 034208 70200C78 AFAB002C */ sw $t3, 0x2c($sp) +/* 03420C 70200C7C 27A20034 */ addiu $v0, $sp, 0x34 +/* 034210 70200C80 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 034214 70200C84 24030005 */ li $v1, 5 +.L70200C88: +/* 034218 70200C88 24420010 */ addiu $v0, $v0, 0x10 +/* 03421C 70200C8C AC43FFF4 */ sw $v1, -0xc($v0) +/* 034220 70200C90 AC43FFF8 */ sw $v1, -8($v0) +/* 034224 70200C94 AC43FFFC */ sw $v1, -4($v0) +/* 034228 70200C98 1444FFFB */ bne $v0, $a0, .L70200C88 +/* 03422C 70200C9C AC43FFF0 */ sw $v1, -0x10($v0) +/* 034230 70200CA0 3C0E7020 */ lui $t6, %hi(cpdext) # $t6, 0x7020 +/* 034234 70200CA4 240D0005 */ li $t5, 5 +/* 034238 70200CA8 25CE1544 */ addiu $t6, %lo(cpdext) # addiu $t6, $t6, 0x1544 +/* 03423C 70200CAC 3C077020 */ lui $a3, %hi(cpdist) # $a3, 0x7020 +/* 034240 70200CB0 27AF04B4 */ addiu $t7, $sp, 0x4b4 +/* 034244 70200CB4 27B804AC */ addiu $t8, $sp, 0x4ac +/* 034248 70200CB8 AFAD04AC */ sw $t5, 0x4ac($sp) +/* 03424C 70200CBC AFB80018 */ sw $t8, 0x18($sp) +/* 034250 70200CC0 AFAF0014 */ sw $t7, 0x14($sp) +/* 034254 70200CC4 24E71508 */ addiu $a3, %lo(cpdist) # addiu $a3, $a3, 0x1508 +/* 034258 70200CC8 AFAE0010 */ sw $t6, 0x10($sp) +/* 03425C 70200CCC 27A4002C */ addiu $a0, $sp, 0x2c +/* 034260 70200CD0 2405001E */ li $a1, 30 +/* 034264 70200CD4 0C080000 */ jal huft_build +/* 034268 70200CD8 00003025 */ move $a2, $zero +/* 03426C 70200CDC 8FA404B8 */ lw $a0, 0x4b8($sp) +/* 034270 70200CE0 8FA504B4 */ lw $a1, 0x4b4($sp) +/* 034274 70200CE4 8FA604B0 */ lw $a2, 0x4b0($sp) +/* 034278 70200CE8 0C080195 */ jal inflate_codes +/* 03427C 70200CEC 8FA704AC */ lw $a3, 0x4ac($sp) +/* 034280 70200CF0 8FBF0024 */ lw $ra, 0x24($sp) +/* 034284 70200CF4 27BD04C0 */ addiu $sp, $sp, 0x4c0 +/* 034288 70200CF8 00001025 */ move $v0, $zero +/* 03428C 70200CFC 03E00008 */ jr $ra +/* 034290 70200D00 00000000 */ nop +) +#endif + +s32 inflate_dynamic(void) +{ + s32 i; /* temporary variables */ + u32 j; + u32 l; /* last length */ + u32 m; /* mask for bit lengths table */ + u32 n; /* number of lengths to get */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + s32 bl; /* lookup bits for tl */ + s32 bd; /* lookup bits for td */ + u32 nb; /* number of bit length codes */ + u32 nl; /* number of literal/length codes */ + u32 nd; /* number of distance codes */ + register u32 k; /* number of bits in bit buffer */ + register u32 b; /* bit buffer */ + u32 ll[286+30]; /* literal/length and distance code lengths */ + + /* make local bit buffer */ + b = bb; + k = bk; + + /* read in table lengths */ + NEEDBITS(5) + nl = 257 + (b & 0x1f); /* number of literal/length codes */ + DUMPBITS(5) + NEEDBITS(5) + nd = 1 + (b & 0x1f); /* number of distance codes */ + DUMPBITS(5) + NEEDBITS(4) + nb = 4 + (b & 0xf); /* number of bit length codes */ + DUMPBITS(4) + + /* read in bit-length-code lengths */ + for (j = 0; j < nb; j++) { + NEEDBITS(3) + ll[border[j]] = b & 7; + DUMPBITS(3) + } + + for (; j < 19; j++) { + ll[border[j]] = 0; + } + + /* build decoding table for trees--single level, 7 bit lookup */ + bl = 7; + + huft_build(ll, 19, 19, NULL, NULL, &tl, &bl); + + /* read in literal and distance code lengths */ + n = nl + nd; + m = mask_bits[bl]; + i = l = 0; + + while (i < n) { + NEEDBITS(bl) + j = (td = tl + (b & m))->b; + DUMPBITS(j) + + j = td->v.n; + + if (j < 16) { /* length of code in bits (0..15) */ + ll[i++] = l = j; /* save last length in l */ + } else if (j == 16) { /* repeat last length 3 to 6 times */ + NEEDBITS(2) + j = 3 + (b & 3); + DUMPBITS(2) + + while (j--) { + ll[i++] = l; + } + } else if (j == 17) { /* 3 to 10 zero length codes */ + NEEDBITS(3) + j = 3 + (b & 7); + DUMPBITS(3) + + while (j--) { + ll[i++] = 0; + } + + l = 0; + } else { /* j == 18: 11 to 138 zero length codes */ + NEEDBITS(7) + j = 11 + (b & 0x7f); + DUMPBITS(7) + + while (j--) { + ll[i++] = 0; + } + + l = 0; + } + } + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* build the decoding tables for literal/length and distance codes */ + bl = lbits; + + huft_build(ll, nl, 257, cplens, cplext, &tl, &bl); + + bd = dbits; + + huft_build(ll + nl, nd, 0, cpdist, cpdext, &td, &bd); + + /* decompress until an end-of-block code */ + inflate_codes(tl, td, bl, bd); + + return 0; +} + + + +s32 inflate_block(s32 *e) +{ + u32 t; /* block type */ + register u32 b = bb; /* bit buffer */ + register u32 k = bk; /* number of bits in bit buffer */ + + /* make local bit buffer */ + b = bb; + k = bk; + + /* read in last block bit */ + NEEDBITS(1) + *e = b & 1; + DUMPBITS(1) + + /* read in last block type */ + NEEDBITS(2) + t = b & 3; + DUMPBITS(2) + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* inflate that block type */ + if (t == 2) { + return inflate_dynamic(); + } + + if (t == 0) { + return inflate_stored(); + } + + if (t == 1) { + return inflate_fixed(); + } + + /* bad block type */ + return 2; +} + + +int inflate(void) { + int e; + int r; + unsigned h; + + wp = 0; + bk = 0; + bb = 0; + + h = 0; + + do { + hufts = 0; + + if ((r = inflate_block(&e)) != 0) + return r; + if (hufts > h) + h = hufts; + } while (!e); + + while (bk >= 8) { + bk -= 8; + inptr--; + } + + return 0; +} + +u32 decompress_entry(void *src, void *dst, struct huft *hlist) +{ + + inbuf = src; + outbuf = dst; + huftlist = hlist; + inbuf = (s32) (inbuf + 2); + wp = 0; + inptr = 0; + inflate(); + return wp; +} + + diff --git a/src/inflate/inflate.h b/src/inflate/inflate.h new file mode 100644 index 0000000..bfc1ec7 --- /dev/null +++ b/src/inflate/inflate.h @@ -0,0 +1,14 @@ +#ifndef _RAREZIP_H_ +#define _RAREZIP_H_ +struct huft { + u8 e; /* number of extra bits or operation */ + u8 b; /* number of bits in this code or subcode */ + union { + u16 n; /* literal, length base, or distance base */ + struct huft *t; /* pointer to next level of table */ + } v; +}; + +u32 decompress_entry(void *src, void *dst, struct huft *hlist); + +#endif diff --git a/src/init.c b/src/init.c new file mode 100644 index 0000000..2706577 --- /dev/null +++ b/src/init.c @@ -0,0 +1,407 @@ +#include +#include "bondgame.h" +#include "boot.h" +#include "sched.h" +#include "rmon.h" +#include "tlb_resolve.h" +#include "tlb_hardwire.h" +#include "init.h" + +/** + * @file init.c + * This file contains the initial non bootstrap code ran. + * + * In particular, it: + * - unpacks main data payload + * - starts idle and rmon loops + * - starts main loop + */ + +#define NUM_FIELDS 1 + +u32 unknown_val_80023040 = 0; +/*D:80023044*/ +u32 unknown_init_val = 2; + +u32 cart_hw_address = 0x10000000; + +struct debug_handler_entry debug_handler_table[] = +{ + {sp_boot, "boot"}, + {sp_rmon, "rmon"}, + {sp_idle, "idle"}, + {sp_shed, "shed"}, + {sp_main, "main"}, + {sp_audi, "audi"}, + {0, 0}, + {0, 0}, +}; + +OSThread rmonThread; +OSThread idleThread; +OSThread mainThread; +OSThread shedThread; +OSMesgQueue gfxFrameMsgQ; +OSMesg gfxFrameMsgBuf[32]; +OSMesgQueue *sched_cmdQ; + +void mainproc(void *args); + +extern u8 * _rarezipSegmentStart; +/** + * 1110 70000510 + * ??? initializes TLB index... + * copies compressed 21990 to virtual address 701EE400, using 70200000 to decompress + */ +#ifdef NONMATCHING +void init(void) +{ + s32 *cdata_vaddr_start; + s32 cdata_rom_size; + s32 datapos; + u32 *dest; + u32 *source; + u32 i; + + cdata_vaddr_start = get_csegmentSegmentStart(); + cdata_rom_size = (get_cdataSegmentRomEnd() - get_cdataSegmentRomStart()); + + for (datapos = ((cdata_rom_size + (get_rarezipSegmentRomEnd() - get_rarezipSegmentRomStart())) + -1); datapos >= 0; datapos--) + { + _rarezipSegmentStart[-cdata_rom_size + datapos] = &cdata_vaddr_start[datapos]; + } + + jump_decompressfile((_rarezipSegmentStart - cdata_rom_size), cdata_vaddr_start, 0x80300000); + + if ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) >= 0xfffb1) + { + osPiRawStartDma(0, 0x101000, 0x70100400, ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) + 0xfff00050)); + while ((osPiGetStatus() & 1) != 0) {} + } + + osInitialize(); + set_hardwire_TLB_to_2(); + + + //IM BROKEN FIX ME!!!!!!! + source = (u32 *)resolve_TLBaddress_for_InvalidHit; + //UT_VEC + dest = (u32 *)0x80000000; + //XUT_VEC + while ( (u32)dest != (u32)dest + 0x80 ) { *dest = *source; dest++; source++;} + //TO HERE + + osWritebackDCacheAll(); + osInvalICache(0x80000000, 0x4000); + + for (i=2; i<32; i++) + { + osUnmapTLB(i); + } + + __osSetFpcCsr((__osGetFpcCsr() | 0xe80)); + osCreateThread(&mainThread, 3, &mainproc, 0, set_stack_entry(&sp_main, 0x8000), 0xa); + osStartThread(&mainThread); +} +#else +GLOBAL_ASM( +.section .text +glabel init +/* 001110 70000510 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 001114 70000514 AFBF0024 */ sw $ra, 0x24($sp) +/* 001118 70000518 AFB10020 */ sw $s1, 0x20($sp) +/* 00111C 7000051C 0C00012F */ jal get_csegmentSegmentStart +/* 001120 70000520 AFB0001C */ sw $s0, 0x1c($sp) +/* 001124 70000524 0C000132 */ jal get_cdataSegmentRomStart +/* 001128 70000528 00408025 */ move $s0, $v0 +/* 00112C 7000052C 0C000135 */ jal get_cdataSegmentRomEnd +/* 001130 70000530 AFA20034 */ sw $v0, 0x34($sp) +/* 001134 70000534 8FAE0034 */ lw $t6, 0x34($sp) +/* 001138 70000538 0C000138 */ jal get_rarezipSegmentRomStart +/* 00113C 7000053C 004E8823 */ subu $s1, $v0, $t6 +/* 001140 70000540 0C00013B */ jal get_rarezipSegmentRomEnd +/* 001144 70000544 AFA20028 */ sw $v0, 0x28($sp) +/* 001148 70000548 8FAF0028 */ lw $t7, 0x28($sp) +/* 00114C 7000054C 3C0A7020 */ lui $t2, 0x7020 +/* 001150 70000550 02002825 */ move $a1, $s0 +/* 001154 70000554 004FC023 */ subu $t8, $v0, $t7 +/* 001158 70000558 02382021 */ addu $a0, $s1, $t8 +/* 00115C 7000055C 2483FFFF */ addiu $v1, $a0, -1 +/* 001160 70000560 0460000A */ bltz $v1, .L7000058C +/* 001164 70000564 3C068030 */ lui $a2, 0x8030 +/* 001168 70000568 3C197020 */ lui $t9, 0x7020 +/* 00116C 7000056C 03312023 */ subu $a0, $t9, $s1 +/* 001170 70000570 02031021 */ addu $v0, $s0, $v1 +.L70000574: +/* 001174 70000574 90480000 */ lbu $t0, ($v0) +/* 001178 70000578 00834821 */ addu $t1, $a0, $v1 +/* 00117C 7000057C 2463FFFF */ addiu $v1, $v1, -1 +/* 001180 70000580 2442FFFF */ addiu $v0, $v0, -1 +/* 001184 70000584 0461FFFB */ bgez $v1, .L70000574 +/* 001188 70000588 A1280000 */ sb $t0, ($t1) +.L7000058C: +/* 00118C 7000058C 0C00013E */ jal jump_decompressfile +/* 001190 70000590 01512023 */ subu $a0, $t2, $s1 +/* 001194 70000594 3C0B0003 */ lui $t3, %hi(_rarezipSegmentRomStart) # $t3, 3 +/* 001198 70000598 3C0C0000 */ lui $t4, %hi(_codeSegmentRomStart) # $t4, 0 +/* 00119C 7000059C 258C1050 */ addiu $t4, %lo(_codeSegmentRomStart) # addiu $t4, $t4, 0x1050 +/* 0011A0 700005A0 256B3590 */ addiu $t3, %lo(_rarezipSegmentRomStart) # addiu $t3, $t3, 0x3590 +/* 0011A4 700005A4 3C01000F */ lui $at, (0x000FFFB1 >> 16) # lui $at, 0xf +/* 0011A8 700005A8 3421FFB1 */ ori $at, (0x000FFFB1 & 0xFFFF) # ori $at, $at, 0xffb1 +/* 0011AC 700005AC 016C1023 */ subu $v0, $t3, $t4 +/* 0011B0 700005B0 0041082A */ slt $at, $v0, $at +/* 0011B4 700005B4 14200013 */ bnez $at, .L70000604 +/* 0011B8 700005B8 3C01FFF0 */ lui $at, (0xFFF00050 >> 16) # lui $at, 0xfff0 +/* 0011BC 700005BC 34210050 */ ori $at, (0xFFF00050 & 0xFFFF) # ori $at, $at, 0x50 +/* 0011C0 700005C0 3C050010 */ lui $a1, %hi(0x00101000) # $a1, 0x10 +/* 0011C4 700005C4 3C067010 */ lui $a2, %hi(0x70100400) # $a2, 0x7010 +/* 0011C8 700005C8 24C60400 */ addiu $a2, %lo(0x70100400) # addiu $a2, $a2, 0x400 +/* 0011CC 700005CC 24A51000 */ addiu $a1, %lo(0x00101000) # addiu $a1, $a1, 0x1000 +/* 0011D0 700005D0 00413821 */ addu $a3, $v0, $at +/* 0011D4 700005D4 0C0033E4 */ jal osPiRawStartDma +/* 0011D8 700005D8 00002025 */ move $a0, $zero +/* 0011DC 700005DC 0C00341C */ jal osPiGetStatus +/* 0011E0 700005E0 00000000 */ nop +/* 0011E4 700005E4 304D0001 */ andi $t5, $v0, 1 +/* 0011E8 700005E8 11A00006 */ beqz $t5, .L70000604 +/* 0011EC 700005EC 00000000 */ nop +.L700005F0: +/* 0011F0 700005F0 0C00341C */ jal osPiGetStatus +/* 0011F4 700005F4 00000000 */ nop +/* 0011F8 700005F8 304E0001 */ andi $t6, $v0, 1 +/* 0011FC 700005FC 15C0FFFC */ bnez $t6, .L700005F0 +/* 001200 70000600 00000000 */ nop +.L70000604: +/* 001204 70000604 0C003420 */ jal osInitialize +/* 001208 70000608 00000000 */ nop +/* 00120C 7000060C 0C0006EC */ jal set_hardwire_TLB_to_2 +/* 001210 70000610 00000000 */ nop + + +/* 001214 70000614 3C108000 */ lui $s0, %hi(0x80000000) +/* 001218 70000618 3C027000 */ lui $v0, %hi(resolve_TLBaddress_for_InvalidHit) # $v0, 0x7000 +/* 00121C 7000061C 3C048000 */ lui $a0, (0x80000080 >> 16) # lui $a0, 0x8000 +/* 001220 70000620 24421B60 */ addiu $v0, %lo(resolve_TLBaddress_for_InvalidHit) # addiu $v0, $v0, 0x1b60 +/* 001224 70000624 02001825 */ move $v1, $s0 +/* 001228 70000628 34840080 */ ori $a0, (0x80000080 & 0xFFFF) # ori $a0, $a0, 0x80 +.L7000062C: +/* 00122C 7000062C 8C4F0000 */ lw $t7, ($v0) +/* 001230 70000630 24630010 */ addiu $v1, $v1, 0x10 +/* 001234 70000634 24420010 */ addiu $v0, $v0, 0x10 +/* 001238 70000638 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 00123C 7000063C 8C58FFF4 */ lw $t8, -0xc($v0) +/* 001240 70000640 AC78FFF4 */ sw $t8, -0xc($v1) +/* 001244 70000644 8C59FFF8 */ lw $t9, -8($v0) +/* 001248 70000648 AC79FFF8 */ sw $t9, -8($v1) +/* 00124C 7000064C 8C48FFFC */ lw $t0, -4($v0) +/* 001250 70000650 1464FFF6 */ bne $v1, $a0, .L7000062C +/* 001254 70000654 AC68FFFC */ sw $t0, -4($v1) + + +/* 001258 70000658 0C0034C8 */ jal osWritebackDCacheAll +/* 00125C 7000065C 00000000 */ nop +/* 001260 70000660 02002025 */ move $a0, $s0 +/* 001264 70000664 0C0034D4 */ jal osInvalICache +/* 001268 70000668 24054000 */ li $a1, 16384 +/* 00126C 7000066C 24100002 */ li $s0, 2 +/* 001270 70000670 24110020 */ li $s1, 32 +.L70000674: +/* 001274 70000674 0C0034F4 */ jal osUnmapTLB +/* 001278 70000678 02002025 */ move $a0, $s0 +/* 00127C 7000067C 26100001 */ addiu $s0, 1 # addiu $s0, $s0, 1 +/* 001280 70000680 1611FFFC */ bne $s0, $s1, .L70000674 +/* 001284 70000684 00000000 */ nop +/* 001288 70000688 0C003504 */ jal __osGetFpcCsr +/* 00128C 7000068C 00000000 */ nop +/* 001290 70000690 0C003508 */ jal __osSetFpcCsr +/* 001294 70000694 34440E80 */ ori $a0, $v0, 0xe80 +/* 001298 70000698 3C04803B */ lui $a0, %hi(sp_main) # $a0, 0x803b +/* 00129C 7000069C 2484B950 */ addiu $a0, %lo(sp_main) # addiu $a0, $a0, -0x46b0 +/* 0012A0 700006A0 0C0001BC */ jal set_stack_entry +/* 0012A4 700006A4 34058000 */ li $a1, 32768 +/* 0012A8 700006A8 3C108006 */ lui $s0, %hi(mainThread) +/* 0012AC 700006AC 2610D640 */ addiu $s0, %lo(mainThread) # addiu $s0, $s0, -0x29c0 +/* 0012B0 700006B0 3C067000 */ lui $a2, %hi(mainproc) # $a2, 0x7000 +/* 0012B4 700006B4 240C000A */ li $t4, 10 +/* 0012B8 700006B8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0012BC 700006BC 24C6089C */ addiu $a2, %lo(mainproc) # addiu $a2, $a2, 0x89c +/* 0012C0 700006C0 02002025 */ move $a0, $s0 +/* 0012C4 700006C4 24050003 */ li $a1, 3 +/* 0012C8 700006C8 00003825 */ move $a3, $zero +/* 0012CC 700006CC 0C00350C */ jal osCreateThread +/* 0012D0 700006D0 AFA20010 */ sw $v0, 0x10($sp) +/* 0012D4 700006D4 0C003560 */ jal osStartThread +/* 0012D8 700006D8 02002025 */ move $a0, $s0 +/* 0012DC 700006DC 8FBF0024 */ lw $ra, 0x24($sp) +/* 0012E0 700006E0 8FB0001C */ lw $s0, 0x1c($sp) +/* 0012E4 700006E4 8FB10020 */ lw $s1, 0x20($sp) +/* 0012E8 700006E8 03E00008 */ jr $ra +/* 0012EC 700006EC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 12F0 700006F0 + * V0= new stack pointer; A0+A1-8 + * accepts: A0=base address, A1=size + */ +void *set_stack_entry(u8 *stack, u32 size) +{ + return stack+size-8; +} + +/** + * 12FC 700006FC + * 1->80023044, 10000000->80023048 + */ +void set_hw_address_and_unknown(void) +{ + unknown_init_val = 1; + cart_hw_address = 0x10000000; +} + +/** + * 1318 70000718 + * A0->SP+0, infinite loop + */ +void idleproc(void *arg) +{ + for (;;); +} + +/** + * 1338 70000738 + * Null thread; executes 70000718 + */ +void idleCreateThread(void) +{ + osCreateThread(&idleThread, (OSId)1, idleproc, 0, set_stack_entry(&sp_idle, 0x40), (OSPri)0); + osStartThread(&idleThread); +} + +/** + * 1390 70000790 + * Indi board detection thread; now forcably returns INDI_NOT_DETECTED (1) + */ +void rmonCreateThread(void) +{ + osCreateThread(&rmonThread, (OSId)0, rmonproc, 0, set_stack_entry(&sp_rmon, 0x300), (OSPri)250); + osStartThread(&rmonThread); +} + +/** + * 13EC 700007EC + */ +void schedulerInitThread(void) +{ + osCreateMesgQueue(&gfxFrameMsgQ, &gfxFrameMsgBuf, 32); + if (osTvType == 2) //OS_TV_MPAL + { + osCreateScheduler(&sc, &shedThread, OS_VI_MPAL_LAN1, NUM_FIELDS); + } + else + { + osCreateScheduler(&sc, &shedThread, OS_VI_NTSC_LAN1, NUM_FIELDS); + } + + osScAddClient(&sc, &gfxClient, &gfxFrameMsgQ, 0); + sched_cmdQ = osScGetCmdQ(&sc); +} + +/** + * 149C 7000089C start main game setup and loop + * calls command line parser, debug console setup, etc. + * called by 70000510, using 7000D430: A0=8005D640, A1=3, A2=7000089C, A3=0, SP+10=[803B3948], SP+14=0xA + * never returns; 7000601C is an infinite loop + */ +void mainproc(void *args) +{ + idleCreateThread(); + viDebugRemoved(); + piCreateManager(); + rmonCreateThread(); + if (check_boot_switches() != 0) + { + osStopThread(0); + } + + osSetThreadPri(0, 0xa); + schedulerInitThread(); + bossEntry(); +} + +/** + * 1508 70000908 V0= p->last entry in copy of debug handler code/name table; fries AT,V1,T0,T1,T6,T9 + * copies table from 8002304C-80023084 to stack + */ +#ifdef NONMATCHING +void *setuplastentryofdebughandler(void) +{ + ? sp8; + void *temp_t6; + void *temp_t0; + void *temp_v0; + void *phi_t6; + void *phi_t0; + void *phi_v0; + + phi_t6 = &debug_handler_table; + phi_t0 = &sp8; +loop_1: + temp_t6 = (phi_t6 + 0xc); + temp_t0 = (phi_t0 + 0xc); + temp_t0->unk-C = (?32) *phi_t6; + temp_t0->unk-8 = (?32) temp_t6->unk-8; + temp_t0->unk-4 = (?32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&debug_handler_table + 0x30)) + { + goto loop_1; + } + *temp_t0 = (?32) *temp_t6; + temp_t0->unk4 = (?32) temp_t6->unk4; + phi_v0 = &sp8; +loop_3: + temp_v0 = (phi_v0 + 8); + phi_v0 = temp_v0; + if (phi_v0->unk8 != 0) + { + goto loop_3; + } + return temp_v0; +} +#else +GLOBAL_ASM( +.section .text +glabel setuplastentryofdebughandler +/* 001508 70000908 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00150C 7000090C 3C0E8002 */ lui $t6, %hi(debug_handler_table) +/* 001510 70000910 27A30008 */ addiu $v1, $sp, 8 +/* 001514 70000914 25CE304C */ addiu $t6, %lo(debug_handler_table) # addiu $t6, $t6, 0x304c +/* 001518 70000918 25D90030 */ addiu $t9, $t6, 0x30 +/* 00151C 7000091C 00604025 */ move $t0, $v1 +.L70000920: +/* 001520 70000920 8DC10000 */ lw $at, ($t6) +/* 001524 70000924 25CE000C */ addiu $t6, $t6, 0xc +/* 001528 70000928 2508000C */ addiu $t0, $t0, 0xc +/* 00152C 7000092C AD01FFF4 */ sw $at, -0xc($t0) +/* 001530 70000930 8DC1FFF8 */ lw $at, -8($t6) +/* 001534 70000934 AD01FFF8 */ sw $at, -8($t0) +/* 001538 70000938 8DC1FFFC */ lw $at, -4($t6) +/* 00153C 7000093C 15D9FFF8 */ bne $t6, $t9, .L70000920 +/* 001540 70000940 AD01FFFC */ sw $at, -4($t0) +/* 001544 70000944 8DC10000 */ lw $at, ($t6) +/* 001548 70000948 00601025 */ move $v0, $v1 +/* 00154C 7000094C AD010000 */ sw $at, ($t0) +/* 001550 70000950 8DD90004 */ lw $t9, 4($t6) +/* 001554 70000954 AD190004 */ sw $t9, 4($t0) +/* 001558 70000958 8C490008 */ lw $t1, 8($v0) +.L7000095C: +/* 00155C 7000095C 24420008 */ addiu $v0, $v0, 8 +/* 001560 70000960 5520FFFE */ bnezl $t1, .L7000095C +/* 001564 70000964 8C490008 */ lw $t1, 8($v0) +/* 001568 70000968 03E00008 */ jr $ra +/* 00156C 7000096C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif diff --git a/src/init.h b/src/init.h new file mode 100644 index 0000000..1a2e598 --- /dev/null +++ b/src/init.h @@ -0,0 +1,27 @@ +#ifndef _INIT_H_ +#define _INIT_H_ +#include + +extern OSThread rmonThread; +extern OSThread idleThread; +extern OSThread mainThread; +extern OSThread shedThread; +extern OSMesgQueue gfxFrameMsgQ; +extern OSMesg gfxFrameMsgBuf[32]; +extern OSMesgQueue *sched_cmdQ; + +extern u32 unknown_init_val; +extern u32 cart_hw_address; + +struct debug_handler_entry +{ + void *address; + char *ptr_name; +}; + +void init(void); +void *set_stack_entry(u8 *stack, u32 size); +void set_hw_address_and_unknown(void); +void setuplastentryofdebughandler(void); + +#endif diff --git a/src/joy.c b/src/joy.c new file mode 100644 index 0000000..6f8661a --- /dev/null +++ b/src/joy.c @@ -0,0 +1,2766 @@ +#include "ultra64.h" +#include "joy.h" +const char aJoy_c_debug[] = "joy_c_debug"; + + +char controller_input_index[0x1E0]; +s32 dword_CODE_bss_80065110; +s32 dword_CODE_bss_80065114; +s32 dword_CODE_bss_80065118; +s32 dword_CODE_bss_8006511C; +s32 dword_CODE_bss_80065120; +s32 dword_CODE_bss_80065124; +s32 dword_CODE_bss_80065128; +s32 dword_CODE_bss_8006512C; +s32 dword_code_bss_80065130[0x76]; +s32 dword_CODE_bss_80065308; +s32 dword_CODE_bss_8006530C; +s32 dword_CODE_bss_80065310; +s32 dword_CODE_bss_80065314; +s32 dword_CODE_bss_80065318; +s32 dword_CODE_bss_8006531C; +s32 dword_CODE_bss_80065320; +s32 dword_CODE_bss_80065324; +//80065328 +char contdemoMesg[0x28]; +//80065350 +OSMesgQueue contdemoMesgMQ; + +//80065368 +OSMesg cont1Mesg; +OSMesgQueue cont1MesgMQ; + +//80065388 +OSMesg cont2Mesg; +OSMesgQueue cont2MesgMQ; + +//800653a8 +OSMesg cont3Mesg; +OSMesgQueue cont3MesgMQ; + +//800653c8 +OSMesg cont4Mesg; +OSMesgQueue cont4MesgMQ; + +//800653e8 +s32 player1_controllerstatus; +s32 player2_controllerstatus; +s32 player3_controllerstatus; +s32 player4_controllerstatus; + +char player1_controller_packet[0x1A8]; + + +s32 D_800268C0 = 0; +void *ptr_current_point_in_controller_input_index = controller_input_index; +s32 D_800268C8 = 0; +s32 D_800268CC = 0; +u8 num_controller_plugged_in_flags = 0; +s32 num_controller_plugged_in_flags_0 = 0; +s32 controller_1_rumble_inserted = 0; +s32 controller_2_rumble_inserted = 0; +s32 controller_3_rumble_inserted = 0; +s32 controller_4_rumble_inserted = 0; +s32 controller_1_rumble_state = 0; +s32 controller_2_rumble_state = 0; +s32 controller_3_rumble_state = 0; +s32 controller_4_rumble_state = 0; +s32 controller_1_rumble_duration = 0; +s32 controller_2_rumble_duration = 0; +s32 controller_3_rumble_duration = 0; +s32 controller_4_rumble_duration = 0; +s32 controller_1_rumble_pulse = 0; +s32 controller_2_rumble_pulse = 0; +s32 controller_3_rumble_pulse = 0; +s32 controller_4_rumble_pulse = 0; +s32 enableControllers = 0; +s32 D_8002691C = 0; +s32 D_80026920 = 0; +s32 disable_all_rumble = 0; +s32 ptr_to_tlb_ramrom_record = 0; +s32 D_8002692C = 1; +s32 pl1_controller_failure_lr = 0; +s32 pl2_controller_failure_lr = 0; +s32 pl3_controller_failure_lr = 0; +s32 pl4_controller_failure_lr = 0; +s32 pl1_controller_failure_ud = 0; +s32 pl2_controller_failure_ud = 0; +s32 pl3_controller_failure_ud = 0; +s32 pl4_controller_failure_ud = 0; +s32 pl1_controller_failure_held = 0; +s32 pl2_controller_failure_held = 0; +s32 pl3_controller_failure_held = 0; +s32 pl4_controller_failure_held = 0; +s32 pl1_controller_failure_pressed = 0; +s32 pl2_controller_failure_pressed = 0; +s32 pl3_controller_failure_pressed = 0; +s32 pl4_controller_failure_pressed = 0; +s32 D_80026970 = 0; + + + + + + + + +#ifdef NONMATCHING +void *joyInitDebugNoticeList(void) { + void *temp_v0; + void *temp_v0_2; + + // Node 0 + debCheckAddDebugNoticeListEntry(&D_800268C0, &aJoy_c_debug); + osCreateMesgQueue(&cont1MesgMQ, &cont1Mesg, 1); + osCreateMesgQueue(&cont2MesgMQ, &cont2Mesg, 1); + osCreateMesgQueue(&cont3MesgMQ, &cont3Mesg, 1); + osCreateMesgQueue(&cont4MesgMQ, &cont4Mesg, 1); + osCreateMesgQueue(&contdemoMesgMQ, &contdemoMesg, 0xa); + osSetEventMesg(5, &contdemoMesgMQ, 0); + enableControllers = 1; + disable_all_rumble = 0; + temp_v0 = (0x80060000 + 0x4f30); + ptr_to_tlb_ramrom_record = 0; + // Node 1 + temp_v0->unk1E0 = 0; + temp_v0->unk1E4 = 0; + temp_v0->unk1E8 = 0; + temp_v0->unk1EC = 0; + temp_v0->unk1F8 = -1; + temp_v0_2 = (temp_v0 + 0x1fc); + temp_v0_2->unk-1E6 = (u8)0; + temp_v0_2->unk-1E7 = (u8)0; + temp_v0_2->unk-1E8 = (u8)0; + temp_v0_2->unk-1EA = (u16)0; + temp_v0_2->unk-1EC = (u8)0; + temp_v0_2->unk-1ED = (u8)0; + temp_v0_2->unk-1EE = (u8)0; + temp_v0_2->unk-1F0 = (u16)0; + temp_v0_2->unk-1F2 = (u8)0; + temp_v0_2->unk-1F3 = (u8)0; + temp_v0_2->unk-1F4 = (u8)0; + temp_v0_2->unk-1F6 = (u16)0; + temp_v0_2->unk-1FC = (u16)0; + temp_v0_2->unk-1FA = (u8)0; + temp_v0_2->unk-1F9 = (u8)0; + temp_v0_2->unk-1F8 = (u8)0; + if (temp_v0_2 != &contdemoMesg) + { + goto loop_1; + } + // (possible return value: temp_v0_2) +} +#else +GLOBAL_ASM( +.text +glabel joyInitDebugNoticeList +/* 00C160 7000B560 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00C164 7000B564 AFBF0014 */ sw $ra, 0x14($sp) +/* 00C168 7000B568 3C048002 */ lui $a0, %hi(D_800268C0) +/* 00C16C 7000B56C 3C058003 */ lui $a1, %hi(aJoy_c_debug) +/* 00C170 7000B570 24A59390 */ addiu $a1, %lo(aJoy_c_debug) # addiu $a1, $a1, -0x6c70 +/* 00C174 7000B574 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 00C178 7000B578 248468C0 */ addiu $a0, %lo(D_800268C0) # addiu $a0, $a0, 0x68c0 +/* 00C17C 7000B57C 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00C180 7000B580 3C058006 */ lui $a1, %hi(cont1Mesg) +/* 00C184 7000B584 24A55368 */ addiu $a1, %lo(cont1Mesg) # addiu $a1, $a1, 0x5368 +/* 00C188 7000B588 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00C18C 7000B58C 0C0035B4 */ jal osCreateMesgQueue +/* 00C190 7000B590 24060001 */ li $a2, 1 +/* 00C194 7000B594 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00C198 7000B598 3C058006 */ lui $a1, %hi(cont2Mesg) +/* 00C19C 7000B59C 24A55388 */ addiu $a1, %lo(cont2Mesg) # addiu $a1, $a1, 0x5388 +/* 00C1A0 7000B5A0 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C1A4 7000B5A4 0C0035B4 */ jal osCreateMesgQueue +/* 00C1A8 7000B5A8 24060001 */ li $a2, 1 +/* 00C1AC 7000B5AC 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00C1B0 7000B5B0 3C058006 */ lui $a1, %hi(cont3Mesg) +/* 00C1B4 7000B5B4 24A553A8 */ addiu $a1, %lo(cont3Mesg) # addiu $a1, $a1, 0x53a8 +/* 00C1B8 7000B5B8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00C1BC 7000B5BC 0C0035B4 */ jal osCreateMesgQueue +/* 00C1C0 7000B5C0 24060001 */ li $a2, 1 +/* 00C1C4 7000B5C4 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00C1C8 7000B5C8 3C058006 */ lui $a1, %hi(cont4Mesg) +/* 00C1CC 7000B5CC 24A553C8 */ addiu $a1, %lo(cont4Mesg) # addiu $a1, $a1, 0x53c8 +/* 00C1D0 7000B5D0 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00C1D4 7000B5D4 0C0035B4 */ jal osCreateMesgQueue +/* 00C1D8 7000B5D8 24060001 */ li $a2, 1 +/* 00C1DC 7000B5DC 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C1E0 7000B5E0 3C058006 */ lui $a1, %hi(contdemoMesg) +/* 00C1E4 7000B5E4 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 +/* 00C1E8 7000B5E8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C1EC 7000B5EC 0C0035B4 */ jal osCreateMesgQueue +/* 00C1F0 7000B5F0 2406000A */ li $a2, 10 +/* 00C1F4 7000B5F4 3C058006 */ lui $a1, %hi(contdemoMesgMQ) +/* 00C1F8 7000B5F8 24A55350 */ addiu $a1, %lo(contdemoMesgMQ) # addiu $a1, $a1, 0x5350 +/* 00C1FC 7000B5FC 24040005 */ li $a0, 5 +/* 00C200 7000B600 0C003714 */ jal osSetEventMesg +/* 00C204 7000B604 00003025 */ move $a2, $zero +/* 00C208 7000B608 240E0001 */ li $t6, 1 +/* 00C20C 7000B60C 3C018002 */ lui $at, %hi(enableControllers) +/* 00C210 7000B610 AC2E6918 */ sw $t6, %lo(enableControllers)($at) +/* 00C214 7000B614 3C018002 */ lui $at, %hi(disable_all_rumble) +/* 00C218 7000B618 AC206924 */ sw $zero, %lo(disable_all_rumble)($at) +/* 00C21C 7000B61C 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00C220 7000B620 3C018002 */ lui $at, %hi(ptr_to_tlb_ramrom_record) +/* 00C224 7000B624 25E24F30 */ addiu $v0, $t7, %lo(controller_input_index) +/* 00C228 7000B628 3C058006 */ lui $a1, %hi(contdemoMesg) +/* 00C22C 7000B62C AC206928 */ sw $zero, %lo(ptr_to_tlb_ramrom_record)($at) +/* 00C230 7000B630 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 +/* 00C234 7000B634 00401825 */ move $v1, $v0 +/* 00C238 7000B638 2404FFFF */ li $a0, -1 +.L7000B63C: +/* 00C23C 7000B63C AC6001E0 */ sw $zero, 0x1e0($v1) +/* 00C240 7000B640 AC6001E4 */ sw $zero, 0x1e4($v1) +/* 00C244 7000B644 AC6001E8 */ sw $zero, 0x1e8($v1) +/* 00C248 7000B648 AC6001EC */ sw $zero, 0x1ec($v1) +/* 00C24C 7000B64C AC6401F8 */ sw $a0, 0x1f8($v1) +/* 00C250 7000B650 244201FC */ addiu $v0, $v0, 0x1fc +/* 00C254 7000B654 246301FC */ addiu $v1, $v1, 0x1fc +/* 00C258 7000B658 A040FE1A */ sb $zero, -0x1e6($v0) +/* 00C25C 7000B65C A040FE19 */ sb $zero, -0x1e7($v0) +/* 00C260 7000B660 A040FE18 */ sb $zero, -0x1e8($v0) +/* 00C264 7000B664 A440FE16 */ sh $zero, -0x1ea($v0) +/* 00C268 7000B668 A040FE14 */ sb $zero, -0x1ec($v0) +/* 00C26C 7000B66C A040FE13 */ sb $zero, -0x1ed($v0) +/* 00C270 7000B670 A040FE12 */ sb $zero, -0x1ee($v0) +/* 00C274 7000B674 A440FE10 */ sh $zero, -0x1f0($v0) +/* 00C278 7000B678 A040FE0E */ sb $zero, -0x1f2($v0) +/* 00C27C 7000B67C A040FE0D */ sb $zero, -0x1f3($v0) +/* 00C280 7000B680 A040FE0C */ sb $zero, -0x1f4($v0) +/* 00C284 7000B684 A440FE0A */ sh $zero, -0x1f6($v0) +/* 00C288 7000B688 A440FE04 */ sh $zero, -0x1fc($v0) +/* 00C28C 7000B68C A040FE06 */ sb $zero, -0x1fa($v0) +/* 00C290 7000B690 A040FE07 */ sb $zero, -0x1f9($v0) +/* 00C294 7000B694 1445FFE9 */ bne $v0, $a1, .L7000B63C +/* 00C298 7000B698 A040FE08 */ sb $zero, -0x1f8($v0) +/* 00C29C 7000B69C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C2A0 7000B6A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00C2A4 7000B6A4 03E00008 */ jr $ra +/* 00C2A8 7000B6A8 00000000 */ nop +) +#endif + + + + +void test_controller_presence(void) +{ + OSMesg sp1C; + + if (enableControllers != 0) + { + osSendMesg(&cont1MesgMQ, &sp1C, 0); + osRecvMesg(&cont2MesgMQ, &sp1C, 1); + controller_check_for_rumble_maybe(); + osSendMesg(&cont3MesgMQ, &sp1C, 0); + osRecvMesg(&cont4MesgMQ, &sp1C, 1); + } +} + +s32 osPfsChecker(u32 *param_1) //OSPfs *param_1 +{ + return 3; +} + + + + + + +#ifdef NONMATCHING +s32 controller_7000B734(s32 arg0) +{ + s32 temp_ret; + s32 temp_ret_2; + s32 temp_v0; + void *temp_a3; + void *temp_v1; + s32 phi_return; + + temp_v0 = arg0 * 4; + temp_a3 = temp_v0 + &controller_1_rumble_inserted; + phi_return = temp_v0; + if (*temp_a3 >= 0) + { + temp_v1 = temp_v0 + &player1_controllerstatus; + phi_return = temp_v0; + if ((temp_v1->unk0 & 4) != 0) + { + phi_return = temp_v0; + if ((temp_v1->unk2 & 1) != 0) + { + temp_ret = osPfsInit(&contdemoMesgMQ, (arg0 * 0x68) + &player1_controller_packet, arg0, temp_a3); + if ((temp_ret == 0xa) || (temp_ret == 0xb)) + { + temp_ret_2 = osMotorInit(&contdemoMesgMQ, sp20, arg0, sp1C); + if (temp_ret_2 == 0) + { + *sp1C = 1; + return temp_ret_2; + } + *sp1C = -1; + phi_return = temp_ret_2; + } + else + { + + } + } + } + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel controller_7000B734 +/* 00C334 7000B734 3C0E8002 */ lui $t6, %hi(controller_1_rumble_inserted) +/* 00C338 7000B738 25CE68D8 */ addiu $t6, %lo(controller_1_rumble_inserted) # addiu $t6, $t6, 0x68d8 +/* 00C33C 7000B73C 00041080 */ sll $v0, $a0, 2 +/* 00C340 7000B740 004E3821 */ addu $a3, $v0, $t6 +/* 00C344 7000B744 8CEF0000 */ lw $t7, ($a3) +/* 00C348 7000B748 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00C34C 7000B74C AFBF0014 */ sw $ra, 0x14($sp) +/* 00C350 7000B750 05E0002B */ bltz $t7, .L7000B800 +/* 00C354 7000B754 00803025 */ move $a2, $a0 +/* 00C358 7000B758 3C188006 */ lui $t8, %hi(player1_controllerstatus) +/* 00C35C 7000B75C 271853E8 */ addiu $t8, %lo(player1_controllerstatus) # addiu $t8, $t8, 0x53e8 +/* 00C360 7000B760 00581821 */ addu $v1, $v0, $t8 +/* 00C364 7000B764 94790000 */ lhu $t9, ($v1) +/* 00C368 7000B768 33280004 */ andi $t0, $t9, 4 +/* 00C36C 7000B76C 51000025 */ beql $t0, $zero, .L7000B804 +/* 00C370 7000B770 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C374 7000B774 90690002 */ lbu $t1, 2($v1) +/* 00C378 7000B778 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C37C 7000B77C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C380 7000B780 312A0001 */ andi $t2, $t1, 1 +/* 00C384 7000B784 1140001E */ beqz $t2, .L7000B800 +/* 00C388 7000B788 00065880 */ sll $t3, $a2, 2 +/* 00C38C 7000B78C 01665823 */ subu $t3, $t3, $a2 +/* 00C390 7000B790 000B5880 */ sll $t3, $t3, 2 +/* 00C394 7000B794 01665821 */ addu $t3, $t3, $a2 +/* 00C398 7000B798 3C0C8006 */ lui $t4, %hi(player1_controller_packet) +/* 00C39C 7000B79C 258C53F8 */ addiu $t4, %lo(player1_controller_packet) # addiu $t4, $t4, 0x53f8 +/* 00C3A0 7000B7A0 000B58C0 */ sll $t3, $t3, 3 +/* 00C3A4 7000B7A4 016C2821 */ addu $a1, $t3, $t4 +/* 00C3A8 7000B7A8 AFA50020 */ sw $a1, 0x20($sp) +/* 00C3AC 7000B7AC AFA60028 */ sw $a2, 0x28($sp) +/* 00C3B0 7000B7B0 0C0051D0 */ jal osPfsInit +/* 00C3B4 7000B7B4 AFA7001C */ sw $a3, 0x1c($sp) +/* 00C3B8 7000B7B8 2401000A */ li $at, 10 +/* 00C3BC 7000B7BC 8FA50020 */ lw $a1, 0x20($sp) +/* 00C3C0 7000B7C0 8FA60028 */ lw $a2, 0x28($sp) +/* 00C3C4 7000B7C4 10410003 */ beq $v0, $at, .L7000B7D4 +/* 00C3C8 7000B7C8 8FA7001C */ lw $a3, 0x1c($sp) +/* 00C3CC 7000B7CC 2401000B */ li $at, 11 +/* 00C3D0 7000B7D0 1441000B */ bne $v0, $at, .L7000B800 +.L7000B7D4: +/* 00C3D4 7000B7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C3D8 7000B7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C3DC 7000B7DC 0C00334E */ jal osMotorInit +/* 00C3E0 7000B7E0 AFA7001C */ sw $a3, 0x1c($sp) +/* 00C3E4 7000B7E4 14400004 */ bnez $v0, .L7000B7F8 +/* 00C3E8 7000B7E8 8FA7001C */ lw $a3, 0x1c($sp) +/* 00C3EC 7000B7EC 240D0001 */ li $t5, 1 +/* 00C3F0 7000B7F0 10000003 */ b .L7000B800 +/* 00C3F4 7000B7F4 ACED0000 */ sw $t5, ($a3) +.L7000B7F8: +/* 00C3F8 7000B7F8 240EFFFF */ li $t6, -1 +/* 00C3FC 7000B7FC ACEE0000 */ sw $t6, ($a3) +.L7000B800: +/* 00C400 7000B800 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B804: +/* 00C404 7000B804 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00C408 7000B808 03E00008 */ jr $ra +/* 00C40C 7000B80C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 controller_check_for_rumble_maybe(void) +{ + s32 temp_a0; + s32 temp_a1; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_v0_2; + u32 temp_v1; + void *temp_v0; + s8 phi_s0; + s32 phi_s0_2; + s32 phi_s0_3; + void *phi_a3; + void *phi_a2; + u32 phi_v1; + s32 phi_a1; + void *phi_a3_2; + s32 phi_return; + s8 phi_s0_4; + s32 phi_return_2; + s8 phi_s0_5; + s8 phi_s0_6; + + if (D_8002692C != 0) + { + D_8002692C = 0; + D_8002691C = 1; + phi_return_2 = osContInit(&contdemoMesgMQ, &num_controller_plugged_in_flags, &player1_controllerstatus); + } + else + { + osContStartQuery(&contdemoMesgMQ); + osRecvMesg(&contdemoMesgMQ, 0, 1); + phi_s0_6 = (u8)0xf; + if ((*(player1_controllerstatus + 3) & 8) != 0) + { + phi_s0_6 = (u8)0xe; + } + phi_s0_5 = phi_s0_6; + if ((*(player2_controllerstatus + 3) & 8) != 0) + { + phi_s0_5 = phi_s0_6 + -2; + } + phi_s0_4 = phi_s0_5; + if ((*(player3_controllerstatus + 3) & 8) != 0) + { + phi_s0_4 = phi_s0_5 + -4; + } + phi_s0 = phi_s0_4; + if ((*(player4_controllerstatus + 3) & 8) != 0) + { + phi_s0 = phi_s0_4 + -8; + } + num_controller_plugged_in_flags = (s8) phi_s0; + phi_return_2 = osContGetQuery(&player1_controllerstatus); + } + phi_s0_2 = 0; +loop_12: + temp_s0 = (s32) ((phi_s0_2 + 1) << 0x18) >> 0x18; + phi_s0_2 = temp_s0; + if (temp_s0 < 4) + { + goto loop_12; + } + phi_s0_3 = 0; + phi_a3 = &num_controller_plugged_in_flags_0; + phi_a2 = &controller_1_rumble_inserted; +loop_14: + temp_a1 = 1 << phi_s0_3; + temp_v1 = *phi_a3; + if ((((num_controller_plugged_in_flags & temp_a1) != 0) && ((temp_v0->unk0 & 3) != 0)) && (temp_v0->unk3 == 0)) + { + if (((temp_v0_2 & temp_a1) != 0) || (*(phi_a2 + temp_a0) <= 0)) + { + phi_v1 = num_controller_plugged_in_flags_0; + phi_a1 = sp24; + phi_a3_2 = &num_controller_plugged_in_flags_0; + phi_return = controller_7000B734(phi_s0_3, temp_a1, phi_a2, phi_a3); + phi_a2 = &controller_1_rumble_inserted; + } + else + { + + } + *phi_a3_2 = (s8) (phi_v1 | phi_a1); + phi_a3 = phi_a3_2; + } + else + { + phi_return = phi_return_2; + phi_a3 = phi_a3; + phi_a2 = phi_a2; + if ((temp_v1 & temp_a1) != 0) + { + *phi_a3 = (s8) (temp_v1 ^ temp_a1); + *(phi_a2 + (phi_s0_3 * 4)) = 0; + phi_return = phi_return_2; + phi_a3 = phi_a3; + phi_a2 = phi_a2; + } + } + temp_s0_2 = (s32) ((phi_s0_3 + 1) << 0x18) >> 0x18; + phi_s0_3 = temp_s0_2; + phi_return_2 = phi_return; + if (temp_s0_2 < 4) + { + goto loop_14; + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel controller_check_for_rumble_maybe +/* 00C410 7000B810 3C028002 */ lui $v0, %hi(D_8002692C) +/* 00C414 7000B814 2442692C */ addiu $v0, %lo(D_8002692C) # addiu $v0, $v0, 0x692c +/* 00C418 7000B818 8C4E0000 */ lw $t6, ($v0) +/* 00C41C 7000B81C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00C420 7000B820 AFBF001C */ sw $ra, 0x1c($sp) +/* 00C424 7000B824 11C0000D */ beqz $t6, .L7000B85C +/* 00C428 7000B828 AFB00018 */ sw $s0, 0x18($sp) +/* 00C42C 7000B82C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C430 7000B830 3C058002 */ lui $a1, %hi(num_controller_plugged_in_flags) +/* 00C434 7000B834 3C068006 */ lui $a2, %hi(player1_controllerstatus) +/* 00C438 7000B838 AC400000 */ sw $zero, ($v0) +/* 00C43C 7000B83C 24C653E8 */ addiu $a2, %lo(player1_controllerstatus) # addiu $a2, $a2, 0x53e8 +/* 00C440 7000B840 24A568D0 */ addiu $a1, %lo(num_controller_plugged_in_flags) # addiu $a1, $a1, 0x68d0 +/* 00C444 7000B844 0C005240 */ jal osContInit +/* 00C448 7000B848 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C44C 7000B84C 240F0001 */ li $t7, 1 +/* 00C450 7000B850 3C018002 */ lui $at, %hi(D_8002691C) +/* 00C454 7000B854 10000026 */ b .L7000B8F0 +/* 00C458 7000B858 AC2F691C */ sw $t7, %lo(D_8002691C)($at) +.L7000B85C: +/* 00C45C 7000B85C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C460 7000B860 2410000F */ li $s0, 15 +/* 00C464 7000B864 0C005330 */ jal osContStartQuery +/* 00C468 7000B868 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C46C 7000B86C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C470 7000B870 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C474 7000B874 00002825 */ move $a1, $zero +/* 00C478 7000B878 0C003774 */ jal osRecvMesg +/* 00C47C 7000B87C 24060001 */ li $a2, 1 +/* 00C480 7000B880 3C048006 */ lui $a0, %hi(player1_controllerstatus) +/* 00C484 7000B884 0C005351 */ jal osContGetQuery +/* 00C488 7000B888 248453E8 */ addiu $a0, %lo(player1_controllerstatus) # addiu $a0, $a0, 0x53e8 +/* 00C48C 7000B88C 3C188006 */ lui $t8, %hi(player1_controllerstatus+3) +/* 00C490 7000B890 931853EB */ lbu $t8, %lo(player1_controllerstatus+3)($t8) +/* 00C494 7000B894 3C088006 */ lui $t0, %hi(player2_controllerstatus+3) +/* 00C498 7000B898 3C0A8006 */ lui $t2, %hi(player3_controllerstatus+3) +/* 00C49C 7000B89C 33190008 */ andi $t9, $t8, 8 +/* 00C4A0 7000B8A0 13200002 */ beqz $t9, .L7000B8AC +/* 00C4A4 7000B8A4 3C0C8006 */ lui $t4, %hi(player4_controllerstatus+3) +/* 00C4A8 7000B8A8 2410000E */ li $s0, 14 +.L7000B8AC: +/* 00C4AC 7000B8AC 910853EF */ lbu $t0, %lo(player2_controllerstatus+3)($t0) +/* 00C4B0 7000B8B0 3C018002 */ lui $at, %hi(num_controller_plugged_in_flags) +/* 00C4B4 7000B8B4 31090008 */ andi $t1, $t0, 8 +/* 00C4B8 7000B8B8 11200002 */ beqz $t1, .L7000B8C4 +/* 00C4BC 7000B8BC 00000000 */ nop +/* 00C4C0 7000B8C0 2610FFFE */ addiu $s0, $s0, -2 +.L7000B8C4: +/* 00C4C4 7000B8C4 914A53F3 */ lbu $t2, %lo(player3_controllerstatus+3)($t2) +/* 00C4C8 7000B8C8 314B0008 */ andi $t3, $t2, 8 +/* 00C4CC 7000B8CC 11600002 */ beqz $t3, .L7000B8D8 +/* 00C4D0 7000B8D0 00000000 */ nop +/* 00C4D4 7000B8D4 2610FFFC */ addiu $s0, $s0, -4 +.L7000B8D8: +/* 00C4D8 7000B8D8 918C53F7 */ lbu $t4, %lo(player4_controllerstatus+3)($t4) +/* 00C4DC 7000B8DC 318D0008 */ andi $t5, $t4, 8 +/* 00C4E0 7000B8E0 11A00002 */ beqz $t5, .L7000B8EC +/* 00C4E4 7000B8E4 00000000 */ nop +/* 00C4E8 7000B8E8 2610FFF8 */ addiu $s0, $s0, -8 +.L7000B8EC: +/* 00C4EC 7000B8EC A03068D0 */ sb $s0, %lo(num_controller_plugged_in_flags)($at) +.L7000B8F0: +/* 00C4F0 7000B8F0 00008025 */ move $s0, $zero +/* 00C4F4 7000B8F4 26100001 */ addiu $s0, $s0, 1 +.L7000B8F8: +/* 00C4F8 7000B8F8 00107600 */ sll $t6, $s0, 0x18 +/* 00C4FC 7000B8FC 000E8603 */ sra $s0, $t6, 0x18 +/* 00C500 7000B900 2A010004 */ slti $at, $s0, 4 +/* 00C504 7000B904 5420FFFC */ bnezl $at, .L7000B8F8 +/* 00C508 7000B908 26100001 */ addiu $s0, $s0, 1 +/* 00C50C 7000B90C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) +/* 00C510 7000B910 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) +/* 00C514 7000B914 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 +/* 00C518 7000B918 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 +/* 00C51C 7000B91C 00008025 */ move $s0, $zero +.L7000B920: +/* 00C520 7000B920 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00C524 7000B924 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00C528 7000B928 24180001 */ li $t8, 1 +/* 00C52C 7000B92C 02182804 */ sllv $a1, $t8, $s0 +/* 00C530 7000B930 03254024 */ and $t0, $t9, $a1 +/* 00C534 7000B934 1100001E */ beqz $t0, .L7000B9B0 +/* 00C538 7000B938 90E30000 */ lbu $v1, ($a3) +/* 00C53C 7000B93C 3C098006 */ lui $t1, %hi(player1_controllerstatus) +/* 00C540 7000B940 252953E8 */ addiu $t1, %lo(player1_controllerstatus) # addiu $t1, $t1, 0x53e8 +/* 00C544 7000B944 00102080 */ sll $a0, $s0, 2 +/* 00C548 7000B948 00891021 */ addu $v0, $a0, $t1 +/* 00C54C 7000B94C 944A0000 */ lhu $t2, ($v0) +/* 00C550 7000B950 314B0003 */ andi $t3, $t2, 3 +/* 00C554 7000B954 51600017 */ beql $t3, $zero, .L7000B9B4 +/* 00C558 7000B958 0065C824 */ and $t9, $v1, $a1 +/* 00C55C 7000B95C 904C0003 */ lbu $t4, 3($v0) +/* 00C560 7000B960 2C620001 */ sltiu $v0, $v1, 1 +/* 00C564 7000B964 00456824 */ and $t5, $v0, $a1 +/* 00C568 7000B968 55800012 */ bnezl $t4, .L7000B9B4 +/* 00C56C 7000B96C 0065C824 */ and $t9, $v1, $a1 +/* 00C570 7000B970 15A00003 */ bnez $t5, .L7000B980 +/* 00C574 7000B974 00C47021 */ addu $t6, $a2, $a0 +/* 00C578 7000B978 8DCF0000 */ lw $t7, ($t6) +/* 00C57C 7000B97C 1DE00009 */ bgtz $t7, .L7000B9A4 +.L7000B980: +/* 00C580 7000B980 02002025 */ move $a0, $s0 +/* 00C584 7000B984 0C002DCD */ jal controller_7000B734 +/* 00C588 7000B988 AFA50024 */ sw $a1, 0x24($sp) +/* 00C58C 7000B98C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) +/* 00C590 7000B990 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 +/* 00C594 7000B994 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) +/* 00C598 7000B998 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 +/* 00C59C 7000B99C 90E30000 */ lbu $v1, ($a3) +/* 00C5A0 7000B9A0 8FA50024 */ lw $a1, 0x24($sp) +.L7000B9A4: +/* 00C5A4 7000B9A4 0065C025 */ or $t8, $v1, $a1 +/* 00C5A8 7000B9A8 10000008 */ b .L7000B9CC +/* 00C5AC 7000B9AC A0F80000 */ sb $t8, ($a3) +.L7000B9B0: +/* 00C5B0 7000B9B0 0065C824 */ and $t9, $v1, $a1 +.L7000B9B4: +/* 00C5B4 7000B9B4 13200005 */ beqz $t9, .L7000B9CC +/* 00C5B8 7000B9B8 00654026 */ xor $t0, $v1, $a1 +/* 00C5BC 7000B9BC 00104880 */ sll $t1, $s0, 2 +/* 00C5C0 7000B9C0 00C95021 */ addu $t2, $a2, $t1 +/* 00C5C4 7000B9C4 A0E80000 */ sb $t0, ($a3) +/* 00C5C8 7000B9C8 AD400000 */ sw $zero, ($t2) +.L7000B9CC: +/* 00C5CC 7000B9CC 26100001 */ addiu $s0, $s0, 1 +/* 00C5D0 7000B9D0 00105E00 */ sll $t3, $s0, 0x18 +/* 00C5D4 7000B9D4 000B8603 */ sra $s0, $t3, 0x18 +/* 00C5D8 7000B9D8 2A010004 */ slti $at, $s0, 4 +/* 00C5DC 7000B9DC 1420FFD0 */ bnez $at, .L7000B920 +/* 00C5E0 7000B9E0 00000000 */ nop +/* 00C5E4 7000B9E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00C5E8 7000B9E8 8FB00018 */ lw $s0, 0x18($sp) +/* 00C5EC 7000B9EC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00C5F0 7000B9F0 03E00008 */ jr $ra +/* 00C5F4 7000B9F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_attached_controller_count(void) +{ + if (ptr_current_point_in_controller_input_index->unk1F8 >= 0) + { + return (s32) (ptr_current_point_in_controller_input_index->unk1F8 << 0x18) >> 0x18; + } + if (((void *)0x80020000->unk68D0 & 1) == 0) + { + return 0; + } + if (((void *)0x80020000->unk68D0 & 2) == 0) + { + return 1; + } + if (((void *)0x80020000->unk68D0 & 4) == 0) + { + return 2; + } + if (((void *)0x80020000->unk68D0 & 8) == 0) + { + return 3; + } + return 4; +} +#else +GLOBAL_ASM( +.text +glabel get_attached_controller_count +/* 00C5F8 7000B9F8 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) +/* 00C5FC 7000B9FC 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) +/* 00C600 7000BA00 3C028002 */ lui $v0, %hi(num_controller_plugged_in_flags) +/* 00C604 7000BA04 8DC301F8 */ lw $v1, 0x1f8($t6) +/* 00C608 7000BA08 04600005 */ bltz $v1, .L7000BA20 +/* 00C60C 7000BA0C 00000000 */ nop +/* 00C610 7000BA10 00031600 */ sll $v0, $v1, 0x18 +/* 00C614 7000BA14 00027E03 */ sra $t7, $v0, 0x18 +/* 00C618 7000BA18 03E00008 */ jr $ra +/* 00C61C 7000BA1C 01E01025 */ move $v0, $t7 + +.L7000BA20: +/* 00C620 7000BA20 904268D0 */ lbu $v0, %lo(num_controller_plugged_in_flags)($v0) +/* 00C624 7000BA24 30580001 */ andi $t8, $v0, 1 +/* 00C628 7000BA28 17000003 */ bnez $t8, .L7000BA38 +/* 00C62C 7000BA2C 30590002 */ andi $t9, $v0, 2 +/* 00C630 7000BA30 03E00008 */ jr $ra +/* 00C634 7000BA34 00001025 */ move $v0, $zero + +.L7000BA38: +/* 00C638 7000BA38 17200003 */ bnez $t9, .L7000BA48 +/* 00C63C 7000BA3C 30480004 */ andi $t0, $v0, 4 +/* 00C640 7000BA40 03E00008 */ jr $ra +/* 00C644 7000BA44 24020001 */ li $v0, 1 + +.L7000BA48: +/* 00C648 7000BA48 15000003 */ bnez $t0, .L7000BA58 +/* 00C64C 7000BA4C 30490008 */ andi $t1, $v0, 8 +/* 00C650 7000BA50 03E00008 */ jr $ra +/* 00C654 7000BA54 24020002 */ li $v0, 2 + +.L7000BA58: +/* 00C658 7000BA58 15200003 */ bnez $t1, .L7000BA68 +/* 00C65C 7000BA5C 24020004 */ li $v0, 4 +/* 00C660 7000BA60 03E00008 */ jr $ra +/* 00C664 7000BA64 24020003 */ li $v0, 3 + +.L7000BA68: +/* 00C668 7000BA68 03E00008 */ jr $ra +/* 00C66C 7000BA6C 00000000 */ nop +) +#endif + + + + + + +u8 get_num_controllers_plugged_in(void) +{ + return num_controller_plugged_in_flags; +} + + + + + + + +#ifdef NONMATCHING +s32 controller_rumble_related(void) { + s32 temp_t1; + s32 temp_a0; + + // Node 0 + // Node 1 + if (controller_1_rumble_state != controller_1_rumble_pulse) + { + // Node 2 + temp_a0 = ((0 * 0x68) + &player1_controller_packet); + if (1 == controller_1_rumble_pulse) + { + // Node 3 + if (osMotorStart(temp_a0) == 0) + { + // Node 4 + controller_1_rumble_state = 1; + } + else + { + // Node 5 + *(0 + &controller_1_rumble_inserted) = 0; + } + } + else + { + // Node 6 + if (osMotorStop(temp_a0) == 0) + { + // Node 7 + controller_1_rumble_state = 0; + } + else + { + // Node 8 + *(0 + &controller_1_rumble_inserted) = 0; + } + } + } + // Node 9 + if (controller_1_rumble_duration <= 0) + { + // Node 10 + controller_1_rumble_duration = 0; + } + else + { + // Node 11 + temp_t1 = (controller_1_rumble_duration + -1); + controller_1_rumble_duration = temp_t1; + if (temp_t1 <= 0) + { + // Node 12 + controller_1_rumble_duration = 0; + controller_1_rumble_pulse = 0; + } + } + // Node 13 + if ((0 + 1) != 4) + { + goto loop_1; + } + // (possible return value: controller_1_rumble_duration) +} +#endif + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel controller_rumble_related +/* 00C67C 7000BA7C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00C680 7000BA80 AFB40028 */ sw $s4, 0x28($sp) +/* 00C684 7000BA84 AFB1001C */ sw $s1, 0x1c($sp) +/* 00C688 7000BA88 AFB00018 */ sw $s0, 0x18($sp) +/* 00C68C 7000BA8C AFB60030 */ sw $s6, 0x30($sp) +/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) +/* 00C694 7000BA94 AFB30024 */ sw $s3, 0x24($sp) +/* 00C698 7000BA98 AFB20020 */ sw $s2, 0x20($sp) +/* 00C69C 7000BA9C 3C108002 */ lui $s0, %hi(controller_1_rumble_duration) +/* 00C6A0 7000BAA0 3C118002 */ lui $s1, %hi(controller_1_rumble_state) +/* 00C6A4 7000BAA4 3C148002 */ lui $s4, %hi(controller_1_rumble_pulse) +/* 00C6A8 7000BAA8 AFBF0034 */ sw $ra, 0x34($sp) +/* 00C6AC 7000BAAC 26946908 */ addiu $s4, %lo(controller_1_rumble_pulse) # addiu $s4, $s4, 0x6908 +/* 00C6B0 7000BAB0 263168E8 */ addiu $s1, %lo(controller_1_rumble_state) # addiu $s1, $s1, 0x68e8 +/* 00C6B4 7000BAB4 261068F8 */ addiu $s0, %lo(controller_1_rumble_duration) # addiu $s0, $s0, 0x68f8 +/* 00C6B8 7000BAB8 00009025 */ move $s2, $zero +/* 00C6BC 7000BABC 00009825 */ move $s3, $zero +/* 00C6C0 7000BAC0 24150001 */ li $s5, 1 +/* 00C6C4 7000BAC4 24160004 */ li $s6, 4 +.L7000BAC8: +/* 00C6C8 7000BAC8 8E820000 */ lw $v0, ($s4) +/* 00C6CC 7000BACC 8E2E0000 */ lw $t6, ($s1) +/* 00C6D0 7000BAD0 00127880 */ sll $t7, $s2, 2 +/* 00C6D4 7000BAD4 01F27823 */ subu $t7, $t7, $s2 +/* 00C6D8 7000BAD8 11C2001A */ beq $t6, $v0, .L7000BB44 +/* 00C6DC 7000BADC 000F7880 */ sll $t7, $t7, 2 +/* 00C6E0 7000BAE0 01F27821 */ addu $t7, $t7, $s2 +/* 00C6E4 7000BAE4 3C188006 */ lui $t8, %hi(player1_controller_packet) +/* 00C6E8 7000BAE8 271853F8 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x53f8 +/* 00C6EC 7000BAEC 000F78C0 */ sll $t7, $t7, 3 +/* 00C6F0 7000BAF0 16A2000B */ bne $s5, $v0, .L7000BB20 +/* 00C6F4 7000BAF4 01F82021 */ addu $a0, $t7, $t8 +/* 00C6F8 7000BAF8 0C0032AB */ jal osMotorStart +/* 00C6FC 7000BAFC 00000000 */ nop +/* 00C700 7000BB00 14400003 */ bnez $v0, .L7000BB10 +/* 00C704 7000BB04 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) +/* 00C708 7000BB08 1000000E */ b .L7000BB44 +/* 00C70C 7000BB0C AE350000 */ sw $s5, ($s1) +.L7000BB10: +/* 00C710 7000BB10 273968D8 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x68d8 +/* 00C714 7000BB14 02791021 */ addu $v0, $s3, $t9 +/* 00C718 7000BB18 1000000A */ b .L7000BB44 +/* 00C71C 7000BB1C AC400000 */ sw $zero, ($v0) +.L7000BB20: +/* 00C720 7000BB20 0C003260 */ jal osMotorStop +/* 00C724 7000BB24 00000000 */ nop +/* 00C728 7000BB28 14400003 */ bnez $v0, .L7000BB38 +/* 00C72C 7000BB2C 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) +/* 00C730 7000BB30 10000004 */ b .L7000BB44 +/* 00C734 7000BB34 AE200000 */ sw $zero, ($s1) +.L7000BB38: +/* 00C738 7000BB38 250868D8 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x68d8 +/* 00C73C 7000BB3C 02681021 */ addu $v0, $s3, $t0 +/* 00C740 7000BB40 AC400000 */ sw $zero, ($v0) +.L7000BB44: +/* 00C744 7000BB44 8E020000 */ lw $v0, ($s0) +/* 00C748 7000BB48 26520001 */ addiu $s2, $s2, 1 +/* 00C74C 7000BB4C 26730004 */ addiu $s3, $s3, 4 +/* 00C750 7000BB50 1C400003 */ bgtz $v0, .L7000BB60 +/* 00C754 7000BB54 26310004 */ addiu $s1, $s1, 4 +/* 00C758 7000BB58 10000006 */ b .L7000BB74 +/* 00C75C 7000BB5C AE000000 */ sw $zero, ($s0) +.L7000BB60: +/* 00C760 7000BB60 2449FFFF */ addiu $t1, $v0, -1 +/* 00C764 7000BB64 1D200003 */ bgtz $t1, .L7000BB74 +/* 00C768 7000BB68 AE090000 */ sw $t1, ($s0) +/* 00C76C 7000BB6C AE000000 */ sw $zero, ($s0) +/* 00C770 7000BB70 AE800000 */ sw $zero, ($s4) +.L7000BB74: +/* 00C774 7000BB74 26940004 */ addiu $s4, $s4, 4 +/* 00C778 7000BB78 1656FFD3 */ bne $s2, $s6, .L7000BAC8 +/* 00C77C 7000BB7C 26100004 */ addiu $s0, $s0, 4 +/* 00C780 7000BB80 8FBF0034 */ lw $ra, 0x34($sp) +/* 00C784 7000BB84 8FB00018 */ lw $s0, 0x18($sp) +/* 00C788 7000BB88 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C78C 7000BB8C 8FB20020 */ lw $s2, 0x20($sp) +/* 00C790 7000BB90 8FB30024 */ lw $s3, 0x24($sp) +/* 00C794 7000BB94 8FB40028 */ lw $s4, 0x28($sp) +/* 00C798 7000BB98 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C79C 7000BB9C 8FB60030 */ lw $s6, 0x30($sp) +/* 00C7A0 7000BBA0 03E00008 */ jr $ra +/* 00C7A4 7000BBA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel controller_rumble_related +/* 00C68C 7000BA8C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) +/* 00C694 7000BA94 AFB20020 */ sw $s2, 0x20($sp) +/* 00C698 7000BA98 AFB1001C */ sw $s1, 0x1c($sp) +/* 00C69C 7000BA9C AFBE0038 */ sw $fp, 0x38($sp) +/* 00C6A0 7000BAA0 AFB70034 */ sw $s7, 0x34($sp) +/* 00C6A4 7000BAA4 AFB60030 */ sw $s6, 0x30($sp) +/* 00C6A8 7000BAA8 AFB40028 */ sw $s4, 0x28($sp) +/* 00C6AC 7000BAAC AFB30024 */ sw $s3, 0x24($sp) +/* 00C6B0 7000BAB0 3C118002 */ lui $s1, %hi(controller_1_rumble_duration) # $s1, 0x8002 +/* 00C6B4 7000BAB4 3C128002 */ lui $s2, %hi(controller_1_rumble_state) # $s2, 0x8002 +/* 00C6B8 7000BAB8 3C158002 */ lui $s5, %hi(controller_1_rumble_pulse) # $s5, 0x8002 +/* 00C6BC 7000BABC AFBF003C */ sw $ra, 0x3c($sp) +/* 00C6C0 7000BAC0 AFB00018 */ sw $s0, 0x18($sp) +/* 00C6C4 7000BAC4 26B56948 */ addiu $s5, %lo(controller_1_rumble_pulse) # addiu $s5, $s5, 0x6948 +/* 00C6C8 7000BAC8 26526928 */ addiu $s2, %lo(controller_1_rumble_state) # addiu $s2, $s2, 0x6928 +/* 00C6CC 7000BACC 26316938 */ addiu $s1, %lo(controller_1_rumble_duration) # addiu $s1, $s1, 0x6938 +/* 00C6D0 7000BAD0 00009825 */ move $s3, $zero +/* 00C6D4 7000BAD4 0000A025 */ move $s4, $zero +/* 00C6D8 7000BAD8 24160001 */ li $s6, 1 +/* 00C6DC 7000BADC 24170004 */ li $s7, 4 +/* 00C6E0 7000BAE0 241E0002 */ li $fp, 2 +.Ljp7000BAE4: +/* 00C6E4 7000BAE4 8EA20000 */ lw $v0, ($s5) +/* 00C6E8 7000BAE8 8E4E0000 */ lw $t6, ($s2) +/* 00C6EC 7000BAEC 00137880 */ sll $t7, $s3, 2 +/* 00C6F0 7000BAF0 01F37823 */ subu $t7, $t7, $s3 +/* 00C6F4 7000BAF4 11C2002A */ beq $t6, $v0, .Ljp7000BBA0 +/* 00C6F8 7000BAF8 000F7880 */ sll $t7, $t7, 2 +/* 00C6FC 7000BAFC 01F37821 */ addu $t7, $t7, $s3 +/* 00C700 7000BB00 3C188006 */ lui $t8, %hi(player1_controller_packet) # $t8, 0x8006 +/* 00C704 7000BB04 27185438 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x5438 +/* 00C708 7000BB08 000F78C0 */ sll $t7, $t7, 3 +/* 00C70C 7000BB0C 16C2000B */ bne $s6, $v0, .Ljp7000BB3C +/* 00C710 7000BB10 01F88021 */ addu $s0, $t7, $t8 +/* 00C714 7000BB14 0C0032BB */ jal osMotorStart +/* 00C718 7000BB18 02002025 */ move $a0, $s0 +/* 00C71C 7000BB1C 14400003 */ bnez $v0, .Ljp7000BB2C +/* 00C720 7000BB20 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) # $t9, 0x8002 +/* 00C724 7000BB24 1000001E */ b .Ljp7000BBA0 +/* 00C728 7000BB28 AE560000 */ sw $s6, ($s2) +.Ljp7000BB2C: +/* 00C72C 7000BB2C 27396918 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x6918 +/* 00C730 7000BB30 02991021 */ addu $v0, $s4, $t9 +/* 00C734 7000BB34 1000001A */ b .Ljp7000BBA0 +/* 00C738 7000BB38 AC400000 */ sw $zero, ($v0) +.Ljp7000BB3C: +/* 00C73C 7000BB3C 17C2000F */ bne $fp, $v0, .Ljp7000BB7C +/* 00C740 7000BB40 3C048006 */ lui $a0, %hi(contdemoMesgMQ) # $a0, 0x8006 +/* 00C744 7000BB44 24845390 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C748 7000BB48 02002825 */ move $a1, $s0 +/* 00C74C 7000BB4C 0C00335E */ jal osMotorInit +/* 00C750 7000BB50 02603025 */ move $a2, $s3 +/* 00C754 7000BB54 10400004 */ beqz $v0, .Ljp7000BB68 +/* 00C758 7000BB58 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) # $t0, 0x8002 +/* 00C75C 7000BB5C 25086918 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x6918 +/* 00C760 7000BB60 02881021 */ addu $v0, $s4, $t0 +/* 00C764 7000BB64 AC400000 */ sw $zero, ($v0) +.Ljp7000BB68: +/* 00C768 7000BB68 0C003270 */ jal osMotorStop +/* 00C76C 7000BB6C 02002025 */ move $a0, $s0 +/* 00C770 7000BB70 AE400000 */ sw $zero, ($s2) +/* 00C774 7000BB74 1000000A */ b .Ljp7000BBA0 +/* 00C778 7000BB78 AEA00000 */ sw $zero, ($s5) +.Ljp7000BB7C: +/* 00C77C 7000BB7C 0C003270 */ jal osMotorStop +/* 00C780 7000BB80 02002025 */ move $a0, $s0 +/* 00C784 7000BB84 14400003 */ bnez $v0, .Ljp7000BB94 +/* 00C788 7000BB88 3C098002 */ lui $t1, %hi(controller_1_rumble_inserted) # $t1, 0x8002 +/* 00C78C 7000BB8C 10000004 */ b .Ljp7000BBA0 +/* 00C790 7000BB90 AE400000 */ sw $zero, ($s2) +.Ljp7000BB94: +/* 00C794 7000BB94 25296918 */ addiu $t1, %lo(controller_1_rumble_inserted) # addiu $t1, $t1, 0x6918 +/* 00C798 7000BB98 02891021 */ addu $v0, $s4, $t1 +/* 00C79C 7000BB9C AC400000 */ sw $zero, ($v0) +.Ljp7000BBA0: +/* 00C7A0 7000BBA0 8E220000 */ lw $v0, ($s1) +/* 00C7A4 7000BBA4 26730001 */ addiu $s3, $s3, 1 +/* 00C7A8 7000BBA8 26940004 */ addiu $s4, $s4, 4 +/* 00C7AC 7000BBAC 1C400003 */ bgtz $v0, .Ljp7000BBBC +/* 00C7B0 7000BBB0 26520004 */ addiu $s2, $s2, 4 +/* 00C7B4 7000BBB4 10000006 */ b .Ljp7000BBD0 +/* 00C7B8 7000BBB8 AE200000 */ sw $zero, ($s1) +.Ljp7000BBBC: +/* 00C7BC 7000BBBC 244AFFFF */ addiu $t2, $v0, -1 +/* 00C7C0 7000BBC0 1D400003 */ bgtz $t2, .Ljp7000BBD0 +/* 00C7C4 7000BBC4 AE2A0000 */ sw $t2, ($s1) +/* 00C7C8 7000BBC8 AE200000 */ sw $zero, ($s1) +/* 00C7CC 7000BBCC AEA00000 */ sw $zero, ($s5) +.Ljp7000BBD0: +/* 00C7D0 7000BBD0 26B50004 */ addiu $s5, $s5, 4 +/* 00C7D4 7000BBD4 1677FFC3 */ bne $s3, $s7, .Ljp7000BAE4 +/* 00C7D8 7000BBD8 26310004 */ addiu $s1, $s1, 4 +/* 00C7DC 7000BBDC 8FBF003C */ lw $ra, 0x3c($sp) +/* 00C7E0 7000BBE0 8FB00018 */ lw $s0, 0x18($sp) +/* 00C7E4 7000BBE4 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C7E8 7000BBE8 8FB20020 */ lw $s2, 0x20($sp) +/* 00C7EC 7000BBEC 8FB30024 */ lw $s3, 0x24($sp) +/* 00C7F0 7000BBF0 8FB40028 */ lw $s4, 0x28($sp) +/* 00C7F4 7000BBF4 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C7F8 7000BBF8 8FB60030 */ lw $s6, 0x30($sp) +/* 00C7FC 7000BBFC 8FB70034 */ lw $s7, 0x34($sp) +/* 00C800 7000BC00 8FBE0038 */ lw $fp, 0x38($sp) +/* 00C804 7000BC04 03E00008 */ jr $ra +/* 00C808 7000BC08 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +void set_disable_all_rumble_and_something(s32 arg0, s32 arg1) { + disable_all_rumble = arg0; + dword_CODE_bss_80065324 = arg1; +} + +void set_ptr_tlb_ramrom_record(s32 arg0) +{ + ptr_to_tlb_ramrom_record = arg0; +} + + + + + + +#ifdef NONMATCHING +void probably_ramrom_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel probably_ramrom_related +/* 00C7C8 7000BBC8 8C8E01E0 */ lw $t6, 0x1e0($a0) +/* 00C7CC 7000BBCC 8C8F01E8 */ lw $t7, 0x1e8($a0) +/* 00C7D0 7000BBD0 00001025 */ move $v0, $zero +/* 00C7D4 7000BBD4 24090014 */ li $t1, 20 +/* 00C7D8 7000BBD8 AC8E01E4 */ sw $t6, 0x1e4($a0) +/* 00C7DC 7000BBDC AC8F01E0 */ sw $t7, 0x1e0($a0) +/* 00C7E0 7000BBE0 0002C040 */ sll $t8, $v0, 1 +.L7000BBE4: +/* 00C7E4 7000BBE4 00981821 */ addu $v1, $a0, $t8 +/* 00C7E8 7000BBE8 A46001F0 */ sh $zero, 0x1f0($v1) +/* 00C7EC 7000BBEC 8C9901E0 */ lw $t9, 0x1e0($a0) +/* 00C7F0 7000BBF0 8C8501E4 */ lw $a1, 0x1e4($a0) +/* 00C7F4 7000BBF4 10B9003D */ beq $a1, $t9, .L7000BCEC +/* 00C7F8 7000BBF8 24AA0001 */ addiu $t2, $a1, 1 +/* 00C7FC 7000BBFC 0149001A */ div $zero, $t2, $t1 +/* 00C800 7000BC00 00023880 */ sll $a3, $v0, 2 +/* 00C804 7000BC04 00003010 */ mfhi $a2 +/* 00C808 7000BC08 00E23823 */ subu $a3, $a3, $v0 +/* 00C80C 7000BC0C 00073840 */ sll $a3, $a3, 1 +/* 00C810 7000BC10 15200002 */ bnez $t1, .L7000BC1C +/* 00C814 7000BC14 00000000 */ nop +/* 00C818 7000BC18 0007000D */ break 7 +.L7000BC1C: +/* 00C81C 7000BC1C 2401FFFF */ li $at, -1 +/* 00C820 7000BC20 15210004 */ bne $t1, $at, .L7000BC34 +/* 00C824 7000BC24 3C018000 */ lui $at, 0x8000 +/* 00C828 7000BC28 15410002 */ bne $t2, $at, .L7000BC34 +/* 00C82C 7000BC2C 00000000 */ nop +/* 00C830 7000BC30 0006000D */ break 6 +.L7000BC34: +/* 00C834 7000BC34 24CE0013 */ addiu $t6, $a2, 0x13 +.L7000BC38: +/* 00C838 7000BC38 01C9001A */ div $zero, $t6, $t1 +/* 00C83C 7000BC3C 00007810 */ mfhi $t7 +/* 00C840 7000BC40 000FC080 */ sll $t8, $t7, 2 +/* 00C844 7000BC44 00065880 */ sll $t3, $a2, 2 +/* 00C848 7000BC48 030FC023 */ subu $t8, $t8, $t7 +/* 00C84C 7000BC4C 01665823 */ subu $t3, $t3, $a2 +/* 00C850 7000BC50 0018C0C0 */ sll $t8, $t8, 3 +/* 00C854 7000BC54 000B58C0 */ sll $t3, $t3, 3 +/* 00C858 7000BC58 0098C821 */ addu $t9, $a0, $t8 +/* 00C85C 7000BC5C 008B6021 */ addu $t4, $a0, $t3 +/* 00C860 7000BC60 03275021 */ addu $t2, $t9, $a3 +/* 00C864 7000BC64 95480000 */ lhu $t0, ($t2) +/* 00C868 7000BC68 01876821 */ addu $t5, $t4, $a3 +/* 00C86C 7000BC6C 95A50000 */ lhu $a1, ($t5) +/* 00C870 7000BC70 946B01F0 */ lhu $t3, 0x1f0($v1) +/* 00C874 7000BC74 01006027 */ not $t4, $t0 +/* 00C878 7000BC78 15200002 */ bnez $t1, .L7000BC84 +/* 00C87C 7000BC7C 00000000 */ nop +/* 00C880 7000BC80 0007000D */ break 7 +.L7000BC84: +/* 00C884 7000BC84 2401FFFF */ li $at, -1 +/* 00C888 7000BC88 15210004 */ bne $t1, $at, .L7000BC9C +/* 00C88C 7000BC8C 3C018000 */ lui $at, 0x8000 +/* 00C890 7000BC90 15C10002 */ bne $t6, $at, .L7000BC9C +/* 00C894 7000BC94 00000000 */ nop +/* 00C898 7000BC98 0006000D */ break 6 +.L7000BC9C: +/* 00C89C 7000BC9C 00AC6824 */ and $t5, $a1, $t4 +/* 00C8A0 7000BCA0 016D7025 */ or $t6, $t3, $t5 +/* 00C8A4 7000BCA4 A46E01F0 */ sh $t6, 0x1f0($v1) +/* 00C8A8 7000BCA8 8C8F01E0 */ lw $t7, 0x1e0($a0) +/* 00C8AC 7000BCAC 24D80001 */ addiu $t8, $a2, 1 +/* 00C8B0 7000BCB0 50CF000F */ beql $a2, $t7, .L7000BCF0 +/* 00C8B4 7000BCB4 24420001 */ addiu $v0, $v0, 1 +/* 00C8B8 7000BCB8 0309001A */ div $zero, $t8, $t1 +/* 00C8BC 7000BCBC 00003010 */ mfhi $a2 +/* 00C8C0 7000BCC0 15200002 */ bnez $t1, .L7000BCCC +/* 00C8C4 7000BCC4 00000000 */ nop +/* 00C8C8 7000BCC8 0007000D */ break 7 +.L7000BCCC: +/* 00C8CC 7000BCCC 2401FFFF */ li $at, -1 +/* 00C8D0 7000BCD0 15210004 */ bne $t1, $at, .L7000BCE4 +/* 00C8D4 7000BCD4 3C018000 */ lui $at, 0x8000 +/* 00C8D8 7000BCD8 17010002 */ bne $t8, $at, .L7000BCE4 +/* 00C8DC 7000BCDC 00000000 */ nop +/* 00C8E0 7000BCE0 0006000D */ break 6 +.L7000BCE4: +/* 00C8E4 7000BCE4 1000FFD4 */ b .L7000BC38 +/* 00C8E8 7000BCE8 24CE0013 */ addiu $t6, $a2, 0x13 +.L7000BCEC: +/* 00C8EC 7000BCEC 24420001 */ addiu $v0, $v0, 1 +.L7000BCF0: +/* 00C8F0 7000BCF0 0002CE00 */ sll $t9, $v0, 0x18 +/* 00C8F4 7000BCF4 00191603 */ sra $v0, $t9, 0x18 +/* 00C8F8 7000BCF8 28410004 */ slti $at, $v0, 4 +/* 00C8FC 7000BCFC 5420FFB9 */ bnezl $at, .L7000BBE4 +/* 00C900 7000BD00 0002C040 */ sll $t8, $v0, 1 +/* 00C904 7000BD04 03E00008 */ jr $ra +/* 00C908 7000BD08 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 redirect_to_ramrom_replay_and_record_handlers_if_set(void) { + // Node 0 + if (disable_all_rumble != 0) + { + // Node 1 + // Error: I don't know how to handle jalr! + } + // Node 2 + probably_ramrom_related(&controller_input_index); + if (ptr_to_tlb_ramrom_record != 0) + { + // Node 3 + // Error: I don't know how to handle jalr! + return; + // (function likely void) + } + // (possible return value: ptr_to_tlb_ramrom_record) +} +#else +GLOBAL_ASM( +.text +glabel redirect_to_ramrom_replay_and_record_handlers_if_set +/* 00C90C 7000BD0C 3C028002 */ lui $v0, %hi(disable_all_rumble) +/* 00C910 7000BD10 8C426924 */ lw $v0, %lo(disable_all_rumble)($v0) +/* 00C914 7000BD14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00C918 7000BD18 AFBF0014 */ sw $ra, 0x14($sp) +/* 00C91C 7000BD1C 1040000A */ beqz $v0, .L7000BD48 +/* 00C920 7000BD20 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) +/* 00C924 7000BD24 3C058006 */ lui $a1, %hi(dword_CODE_bss_8006530C) +/* 00C928 7000BD28 8CA5530C */ lw $a1, %lo(dword_CODE_bss_8006530C)($a1) +/* 00C92C 7000BD2C 0040F809 */ jalr $v0 +/* 00C930 7000BD30 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c +/* 00C934 7000BD34 3C018006 */ lui $at, %hi(dword_CODE_bss_80065314) +/* 00C938 7000BD38 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) +/* 00C93C 7000BD3C AC225314 */ sw $v0, %lo(dword_CODE_bss_80065314)($at) +/* 00C940 7000BD40 0C002EF2 */ jal probably_ramrom_related +/* 00C944 7000BD44 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c +.L7000BD48: +/* 00C948 7000BD48 3C048006 */ lui $a0, %hi(controller_input_index) +/* 00C94C 7000BD4C 0C002EF2 */ jal probably_ramrom_related +/* 00C950 7000BD50 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 +/* 00C954 7000BD54 3C028002 */ lui $v0, %hi(ptr_to_tlb_ramrom_record) +/* 00C958 7000BD58 8C426928 */ lw $v0, %lo(ptr_to_tlb_ramrom_record)($v0) +/* 00C95C 7000BD5C 3C048006 */ lui $a0, %hi(controller_input_index) +/* 00C960 7000BD60 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 +/* 00C964 7000BD64 50400005 */ beql $v0, $zero, .L7000BD7C +/* 00C968 7000BD68 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C96C 7000BD6C 8C8501E4 */ lw $a1, 0x1e4($a0) +/* 00C970 7000BD70 0040F809 */ jalr $v0 +/* 00C974 7000BD74 8C8601E0 */ lw $a2, 0x1e0($a0) +/* 00C978 7000BD78 8FBF0014 */ lw $ra, 0x14($sp) +.L7000BD7C: +/* 00C97C 7000BD7C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00C980 7000BD80 03E00008 */ jr $ra +/* 00C984 7000BD84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controllerSchedulerRelated(void) +{ + ? sp4C; + s32 sp40; + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a2; + s32 temp_hi; + s32 temp_lo; + s32 temp_t6; + s32 temp_t8; + s32 temp_v1; + void *temp_t3; + void *temp_v1_2; + s32 phi_v1; + s32 phi_v0; + s32 phi_a0; + s32 phi_a0_2; + void *phi_t1; + void *phi_a0_3; + void *phi_a1; + void *phi_v1_2; + + if (osRecvMesg(&cont1MesgMQ, &sp4C, 0) == 0) + { + if (D_800268C8 != 0) + { + osRecvMesg(&contdemoMesgMQ, &sp4C, 1); + D_800268C8 = 0; + } + osSendMesg(&cont2MesgMQ, &sp4C, 0); + D_800268CC = (s32) (D_800268CC + 1); + return; + } + if (osRecvMesg(&cont3MesgMQ, &sp4C, 0) == 0) + { + osContStartReadData(&contdemoMesgMQ); + D_800268C8 = 1; + osSendMesg(&cont4MesgMQ, &sp4C, 0); + D_800268CC = (s32) (D_800268CC + -1); + return; + } + if (D_800268CC == 0) + { + if (D_8002691C != 0) + { + if (osRecvMesg(&contdemoMesgMQ, &sp4C, 0) == 0) + { + D_800268C8 = 0; + temp_hi = (s32) (controller_input_index.unk1E8 + 1) % 0x14; + phi_v1 = temp_hi; + if (temp_hi == controller_input_index.unk1E4) + { + phi_v1 = controller_input_index.unk1E8; + } + sp40 = (s32) phi_v1; + osContGetReadData(&controller_input_index + (((phi_v1 * 4) - phi_v1) * 8), &controller_input_index); + temp_t6 = D_80026920 + 1; + temp_t8 = temp_t6 % 0x78; + controller_input_index.unk1EC = (s32) ((s32) (sp40 + 0x13) % 0x14); + D_80026920 = temp_t6; + controller_input_index.unk1E8 = sp40; + phi_v0 = sp40; + if (temp_t8 == 0) + { + controller_check_for_rumble_maybe(&D_80026920, &controller_input_index); + phi_v0 = controller_input_index.unk1E8; + } + temp_a2 = &controller_input_index + (((phi_v0 * 4) - phi_v0) * 8); + phi_a0 = 0; +loop_14: + temp_lo = phi_a0 * 6; + temp_t3 = temp_a2 + temp_lo; + if ((temp_t3->unk4 != 0) || (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) + { + temp_a0 = phi_a0 + 1; + if ((temp_t3->unk4 != 0) && (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) + { +block_18: + controller_check_for_rumble_maybe(phi_a0_2, &controller_input_index, temp_a2, 6); + } + else + { + temp_a0_2 = (s32) (temp_a0 << 0x18) >> 0x18; + phi_a0 = temp_a0_2; + if (temp_a0_2 < 4) + { + goto loop_14; + } + } + } + else + { + goto block_18; + } + controller_rumble_related(); + osContStartReadData(&contdemoMesgMQ); + D_800268C8 = 1; + temp_v1 = D_80026970 + 1; + D_80026970 = temp_v1; + if (temp_v1 >= 0x3c) + { + phi_t1 = &pl1_controller_failure_lr; + phi_a0_3 = &pl1_controller_failure_ud; + phi_a1 = &pl1_controller_failure_held; + phi_v1_2 = &pl1_controller_failure_pressed; +loop_22: + if ((((phi_t1->unk0 != 0) || (phi_a0_3->unk0 != 0)) || (phi_a1->unk0 != 0)) || (phi_v1_2->unk0 != 0)) + { + phi_t1->unk0 = 0; + phi_a0_3->unk0 = 0; + phi_a1->unk0 = 0; + phi_v1_2->unk0 = 0; + } + else + { + + } + if ((((phi_t1->unk4 != 0) || (phi_a0_3->unk4 != 0)) || (phi_a1->unk4 != 0)) || (phi_v1_2->unk4 != 0)) + { + phi_t1->unk4 = 0; + phi_a0_3->unk4 = 0; + phi_a1->unk4 = 0; + phi_v1_2->unk4 = 0; + } + else + { + + } + temp_v1_2 = phi_v1_2 + 8; + phi_t1 = phi_t1 + 8; + phi_a0_3 = phi_a0_3 + 8; + phi_a1 = phi_a1 + 8; + phi_v1_2 = temp_v1_2; + if (temp_v1_2 != &D_80026970) + { + goto loop_22; + } + D_80026970 = 0; + } + } + } + } +} +#else +GLOBAL_ASM( +.text +glabel controllerSchedulerRelated +/* 00C988 7000BD88 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00C98C 7000BD8C AFBF0014 */ sw $ra, 0x14($sp) +/* 00C990 7000BD90 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00C994 7000BD94 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00C998 7000BD98 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C99C 7000BD9C 0C003774 */ jal osRecvMesg +/* 00C9A0 7000BDA0 00003025 */ move $a2, $zero +/* 00C9A4 7000BDA4 14400015 */ bnez $v0, .L7000BDFC +/* 00C9A8 7000BDA8 3C0E8002 */ lui $t6, %hi(D_800268C8) +/* 00C9AC 7000BDAC 8DCE68C8 */ lw $t6, %lo(D_800268C8)($t6) +/* 00C9B0 7000BDB0 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C9B4 7000BDB4 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C9B8 7000BDB8 11C00005 */ beqz $t6, .L7000BDD0 +/* 00C9BC 7000BDBC 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C9C0 7000BDC0 0C003774 */ jal osRecvMesg +/* 00C9C4 7000BDC4 24060001 */ li $a2, 1 +/* 00C9C8 7000BDC8 3C018002 */ lui $at, %hi(D_800268C8) +/* 00C9CC 7000BDCC AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +.L7000BDD0: +/* 00C9D0 7000BDD0 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00C9D4 7000BDD4 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C9D8 7000BDD8 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C9DC 7000BDDC 0C0037C4 */ jal osSendMesg +/* 00C9E0 7000BDE0 00003025 */ move $a2, $zero +/* 00C9E4 7000BDE4 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00C9E8 7000BDE8 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00C9EC 7000BDEC 8C6F0000 */ lw $t7, ($v1) +/* 00C9F0 7000BDF0 25F80001 */ addiu $t8, $t7, 1 +/* 00C9F4 7000BDF4 100000B9 */ b .L7000C0DC +/* 00C9F8 7000BDF8 AC780000 */ sw $t8, ($v1) +.L7000BDFC: +/* 00C9FC 7000BDFC 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00CA00 7000BE00 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00CA04 7000BE04 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA08 7000BE08 0C003774 */ jal osRecvMesg +/* 00CA0C 7000BE0C 00003025 */ move $a2, $zero +/* 00CA10 7000BE10 14400011 */ bnez $v0, .L7000BE58 +/* 00CA14 7000BE14 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CA18 7000BE18 0C00535C */ jal osContStartReadData +/* 00CA1C 7000BE1C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA20 7000BE20 24190001 */ li $t9, 1 +/* 00CA24 7000BE24 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CA28 7000BE28 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00CA2C 7000BE2C AC3968C8 */ sw $t9, %lo(D_800268C8)($at) +/* 00CA30 7000BE30 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00CA34 7000BE34 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA38 7000BE38 0C0037C4 */ jal osSendMesg +/* 00CA3C 7000BE3C 00003025 */ move $a2, $zero +/* 00CA40 7000BE40 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00CA44 7000BE44 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA48 7000BE48 8C6B0000 */ lw $t3, ($v1) +/* 00CA4C 7000BE4C 256CFFFF */ addiu $t4, $t3, -1 +/* 00CA50 7000BE50 100000A2 */ b .L7000C0DC +/* 00CA54 7000BE54 AC6C0000 */ sw $t4, ($v1) +.L7000BE58: +/* 00CA58 7000BE58 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00CA5C 7000BE5C 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA60 7000BE60 8C6D0000 */ lw $t5, ($v1) +/* 00CA64 7000BE64 3C0E8002 */ lui $t6, %hi(D_8002691C) +/* 00CA68 7000BE68 55A0009D */ bnezl $t5, .L7000C0E0 +/* 00CA6C 7000BE6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00CA70 7000BE70 8DCE691C */ lw $t6, %lo(D_8002691C)($t6) +/* 00CA74 7000BE74 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CA78 7000BE78 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA7C 7000BE7C 11C00097 */ beqz $t6, .L7000C0DC +/* 00CA80 7000BE80 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA84 7000BE84 0C003774 */ jal osRecvMesg +/* 00CA88 7000BE88 00003025 */ move $a2, $zero +/* 00CA8C 7000BE8C 14400093 */ bnez $v0, .L7000C0DC +/* 00CA90 7000BE90 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CA94 7000BE94 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CA98 7000BE98 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CA9C 7000BE9C AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +/* 00CAA0 7000BEA0 8CA201E8 */ lw $v0, 0x1e8($a1) +/* 00CAA4 7000BEA4 24010014 */ li $at, 20 +/* 00CAA8 7000BEA8 8CB801E4 */ lw $t8, 0x1e4($a1) +/* 00CAAC 7000BEAC 24430001 */ addiu $v1, $v0, 1 +/* 00CAB0 7000BEB0 0061001A */ div $zero, $v1, $at +/* 00CAB4 7000BEB4 00001810 */ mfhi $v1 +/* 00CAB8 7000BEB8 54780003 */ bnel $v1, $t8, .L7000BEC8 +/* 00CABC 7000BEBC 0003C880 */ sll $t9, $v1, 2 +/* 00CAC0 7000BEC0 00401825 */ move $v1, $v0 +/* 00CAC4 7000BEC4 0003C880 */ sll $t9, $v1, 2 +.L7000BEC8: +/* 00CAC8 7000BEC8 0323C823 */ subu $t9, $t9, $v1 +/* 00CACC 7000BECC 0019C8C0 */ sll $t9, $t9, 3 +/* 00CAD0 7000BED0 00B92021 */ addu $a0, $a1, $t9 +/* 00CAD4 7000BED4 0C00538D */ jal osContGetReadData +/* 00CAD8 7000BED8 AFA30040 */ sw $v1, 0x40($sp) +/* 00CADC 7000BEDC 8FA20040 */ lw $v0, 0x40($sp) +/* 00CAE0 7000BEE0 24010014 */ li $at, 20 +/* 00CAE4 7000BEE4 3C048002 */ lui $a0, %hi(D_80026920) +/* 00CAE8 7000BEE8 244B0013 */ addiu $t3, $v0, 0x13 +/* 00CAEC 7000BEEC 0161001A */ div $zero, $t3, $at +/* 00CAF0 7000BEF0 24846920 */ addiu $a0, %lo(D_80026920) # addiu $a0, $a0, 0x6920 +/* 00CAF4 7000BEF4 8C8D0000 */ lw $t5, ($a0) +/* 00CAF8 7000BEF8 00006010 */ mfhi $t4 +/* 00CAFC 7000BEFC 24010078 */ li $at, 120 +/* 00CB00 7000BF00 25AE0001 */ addiu $t6, $t5, 1 +/* 00CB04 7000BF04 01C1001A */ div $zero, $t6, $at +/* 00CB08 7000BF08 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CB0C 7000BF0C 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB10 7000BF10 0000C010 */ mfhi $t8 +/* 00CB14 7000BF14 ACAC01EC */ sw $t4, 0x1ec($a1) +/* 00CB18 7000BF18 AC8E0000 */ sw $t6, ($a0) +/* 00CB1C 7000BF1C 17000006 */ bnez $t8, .L7000BF38 +/* 00CB20 7000BF20 ACA201E8 */ sw $v0, 0x1e8($a1) +/* 00CB24 7000BF24 0C002E04 */ jal controller_check_for_rumble_maybe +/* 00CB28 7000BF28 00000000 */ nop +/* 00CB2C 7000BF2C 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CB30 7000BF30 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB34 7000BF34 8CA201E8 */ lw $v0, 0x1e8($a1) +.L7000BF38: +/* 00CB38 7000BF38 0002C880 */ sll $t9, $v0, 2 +/* 00CB3C 7000BF3C 0322C823 */ subu $t9, $t9, $v0 +/* 00CB40 7000BF40 0019C8C0 */ sll $t9, $t9, 3 +/* 00CB44 7000BF44 00B93021 */ addu $a2, $a1, $t9 +/* 00CB48 7000BF48 00002025 */ move $a0, $zero +/* 00CB4C 7000BF4C 24070006 */ li $a3, 6 +.L7000BF50: +/* 00CB50 7000BF50 00870019 */ multu $a0, $a3 +/* 00CB54 7000BF54 00001012 */ mflo $v0 +/* 00CB58 7000BF58 00C25821 */ addu $t3, $a2, $v0 +/* 00CB5C 7000BF5C 91630004 */ lbu $v1, 4($t3) +/* 00CB60 7000BF60 1460000A */ bnez $v1, .L7000BF8C +/* 00CB64 7000BF64 00000000 */ nop +/* 00CB68 7000BF68 8CAC01EC */ lw $t4, 0x1ec($a1) +/* 00CB6C 7000BF6C 000C6880 */ sll $t5, $t4, 2 +/* 00CB70 7000BF70 01AC6823 */ subu $t5, $t5, $t4 +/* 00CB74 7000BF74 000D68C0 */ sll $t5, $t5, 3 +/* 00CB78 7000BF78 00AD7021 */ addu $t6, $a1, $t5 +/* 00CB7C 7000BF7C 01C27821 */ addu $t7, $t6, $v0 +/* 00CB80 7000BF80 91F80004 */ lbu $t8, 4($t7) +/* 00CB84 7000BF84 1700000C */ bnez $t8, .L7000BFB8 +/* 00CB88 7000BF88 00000000 */ nop +.L7000BF8C: +/* 00CB8C 7000BF8C 1060000E */ beqz $v1, .L7000BFC8 +/* 00CB90 7000BF90 24840001 */ addiu $a0, $a0, 1 +/* 00CB94 7000BF94 8CB901EC */ lw $t9, 0x1ec($a1) +/* 00CB98 7000BF98 00195880 */ sll $t3, $t9, 2 +/* 00CB9C 7000BF9C 01795823 */ subu $t3, $t3, $t9 +/* 00CBA0 7000BFA0 000B58C0 */ sll $t3, $t3, 3 +/* 00CBA4 7000BFA4 00AB6021 */ addu $t4, $a1, $t3 +/* 00CBA8 7000BFA8 01826821 */ addu $t5, $t4, $v0 +/* 00CBAC 7000BFAC 91AE0004 */ lbu $t6, 4($t5) +/* 00CBB0 7000BFB0 55C00006 */ bnezl $t6, .L7000BFCC +/* 00CBB4 7000BFB4 00047E00 */ sll $t7, $a0, 0x18 +.L7000BFB8: +/* 00CBB8 7000BFB8 0C002E04 */ jal controller_check_for_rumble_maybe +/* 00CBBC 7000BFBC 00000000 */ nop +/* 00CBC0 7000BFC0 10000006 */ b .L7000BFDC +/* 00CBC4 7000BFC4 00000000 */ nop +.L7000BFC8: +/* 00CBC8 7000BFC8 00047E00 */ sll $t7, $a0, 0x18 +.L7000BFCC: +/* 00CBCC 7000BFCC 000F2603 */ sra $a0, $t7, 0x18 +/* 00CBD0 7000BFD0 28810004 */ slti $at, $a0, 4 +/* 00CBD4 7000BFD4 1420FFDE */ bnez $at, .L7000BF50 +/* 00CBD8 7000BFD8 00000000 */ nop +.L7000BFDC: +/* 00CBDC 7000BFDC 0C002E9F */ jal controller_rumble_related +/* 00CBE0 7000BFE0 00000000 */ nop +/* 00CBE4 7000BFE4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CBE8 7000BFE8 0C00535C */ jal osContStartReadData +/* 00CBEC 7000BFEC 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CBF0 7000BFF0 3C038002 */ lui $v1, %hi(D_80026970) +/* 00CBF4 7000BFF4 8C636970 */ lw $v1, %lo(D_80026970)($v1) +/* 00CBF8 7000BFF8 24190001 */ li $t9, 1 +/* 00CBFC 7000BFFC 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CC00 7000C000 AC3968C8 */ sw $t9, %lo(D_800268C8)($at) +/* 00CC04 7000C004 3C018002 */ lui $at, %hi(D_80026970) +/* 00CC08 7000C008 24630001 */ addiu $v1, $v1, 1 +/* 00CC0C 7000C00C AC236970 */ sw $v1, %lo(D_80026970)($at) +/* 00CC10 7000C010 2861003C */ slti $at, $v1, 0x3c +/* 00CC14 7000C014 14200031 */ bnez $at, .L7000C0DC +/* 00CC18 7000C018 3C098002 */ lui $t1, %hi(pl1_controller_failure_lr) +/* 00CC1C 7000C01C 3C048002 */ lui $a0, %hi(pl1_controller_failure_ud) +/* 00CC20 7000C020 3C058002 */ lui $a1, %hi(pl1_controller_failure_held) +/* 00CC24 7000C024 3C038002 */ lui $v1, %hi(pl1_controller_failure_pressed) +/* 00CC28 7000C028 3C0A8002 */ lui $t2, %hi(D_80026970) +/* 00CC2C 7000C02C 254A6970 */ addiu $t2, %lo(D_80026970) # addiu $t2, $t2, 0x6970 +/* 00CC30 7000C030 24636960 */ addiu $v1, %lo(pl1_controller_failure_pressed) # addiu $v1, $v1, 0x6960 +/* 00CC34 7000C034 24A56950 */ addiu $a1, %lo(pl1_controller_failure_held) # addiu $a1, $a1, 0x6950 +/* 00CC38 7000C038 24846940 */ addiu $a0, %lo(pl1_controller_failure_ud) # addiu $a0, $a0, 0x6940 +/* 00CC3C 7000C03C 25296930 */ addiu $t1, %lo(pl1_controller_failure_lr) # addiu $t1, $t1, 0x6930 +.L7000C040: +/* 00CC40 7000C040 8D220000 */ lw $v0, ($t1) +/* 00CC44 7000C044 5440000B */ bnezl $v0, .L7000C074 +/* 00CC48 7000C048 AD200000 */ sw $zero, ($t1) +/* 00CC4C 7000C04C 8C8B0000 */ lw $t3, ($a0) +/* 00CC50 7000C050 55600008 */ bnezl $t3, .L7000C074 +/* 00CC54 7000C054 AD200000 */ sw $zero, ($t1) +/* 00CC58 7000C058 8CAC0000 */ lw $t4, ($a1) +/* 00CC5C 7000C05C 55800005 */ bnezl $t4, .L7000C074 +/* 00CC60 7000C060 AD200000 */ sw $zero, ($t1) +/* 00CC64 7000C064 8C6D0000 */ lw $t5, ($v1) +/* 00CC68 7000C068 51A00006 */ beql $t5, $zero, .L7000C084 +/* 00CC6C 7000C06C 8D220004 */ lw $v0, 4($t1) +/* 00CC70 7000C070 AD200000 */ sw $zero, ($t1) +.L7000C074: +/* 00CC74 7000C074 AC800000 */ sw $zero, ($a0) +/* 00CC78 7000C078 ACA00000 */ sw $zero, ($a1) +/* 00CC7C 7000C07C AC600000 */ sw $zero, ($v1) +/* 00CC80 7000C080 8D220004 */ lw $v0, 4($t1) +.L7000C084: +/* 00CC84 7000C084 5440000B */ bnezl $v0, .L7000C0B4 +/* 00CC88 7000C088 AD200004 */ sw $zero, 4($t1) +/* 00CC8C 7000C08C 8C8E0004 */ lw $t6, 4($a0) +/* 00CC90 7000C090 55C00008 */ bnezl $t6, .L7000C0B4 +/* 00CC94 7000C094 AD200004 */ sw $zero, 4($t1) +/* 00CC98 7000C098 8CAF0004 */ lw $t7, 4($a1) +/* 00CC9C 7000C09C 55E00005 */ bnezl $t7, .L7000C0B4 +/* 00CCA0 7000C0A0 AD200004 */ sw $zero, 4($t1) +/* 00CCA4 7000C0A4 8C780004 */ lw $t8, 4($v1) +/* 00CCA8 7000C0A8 53000006 */ beql $t8, $zero, .L7000C0C4 +/* 00CCAC 7000C0AC 24630008 */ addiu $v1, $v1, 8 +/* 00CCB0 7000C0B0 AD200004 */ sw $zero, 4($t1) +.L7000C0B4: +/* 00CCB4 7000C0B4 AC800004 */ sw $zero, 4($a0) +/* 00CCB8 7000C0B8 ACA00004 */ sw $zero, 4($a1) +/* 00CCBC 7000C0BC AC600004 */ sw $zero, 4($v1) +/* 00CCC0 7000C0C0 24630008 */ addiu $v1, $v1, 8 +.L7000C0C4: +/* 00CCC4 7000C0C4 25290008 */ addiu $t1, $t1, 8 +/* 00CCC8 7000C0C8 24840008 */ addiu $a0, $a0, 8 +/* 00CCCC 7000C0CC 146AFFDC */ bne $v1, $t2, .L7000C040 +/* 00CCD0 7000C0D0 24A50008 */ addiu $a1, $a1, 8 +/* 00CCD4 7000C0D4 3C018002 */ lui $at, %hi(D_80026970) +/* 00CCD8 7000C0D8 AC206970 */ sw $zero, %lo(D_80026970)($at) +.L7000C0DC: +/* 00CCDC 7000C0DC 8FBF0014 */ lw $ra, 0x14($sp) +.L7000C0E0: +/* 00CCE0 7000C0E0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00CCE4 7000C0E4 03E00008 */ jr $ra +/* 00CCE8 7000C0E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? get_cur_controller_horz_stick_pos(s32 arg0) +{ + s32 temp_t7; + void *temp_v1; + + temp_t7 = (s32) (arg0 << 0x18) >> 0x18; + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + temp_v1 = (temp_t7 * 4) + &pl1_controller_failure_lr; + *temp_v1 = (s32) (*temp_v1 + 1); + return 0; + } + } + return ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk2; +} +#else +GLOBAL_ASM( +.text +glabel get_cur_controller_horz_stick_pos +/* 00CCEC 7000C0EC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CCF0 7000C0F0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CCF4 7000C0F4 AFA40000 */ sw $a0, ($sp) +/* 00CCF8 7000C0F8 00047600 */ sll $t6, $a0, 0x18 +/* 00CCFC 7000C0FC 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CD00 7000C100 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CD04 7000C104 01E02025 */ move $a0, $t7 +/* 00CD08 7000C108 0701000E */ bgez $t8, .L7000C144 +/* 00CD0C 7000C10C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CD10 7000C110 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CD14 7000C114 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) +/* 00CD18 7000C118 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 +/* 00CD1C 7000C11C 01F94007 */ srav $t0, $t9, $t7 +/* 00CD20 7000C120 31090001 */ andi $t1, $t0, 1 +/* 00CD24 7000C124 15200007 */ bnez $t1, .L7000C144 +/* 00CD28 7000C128 000F5080 */ sll $t2, $t7, 2 +/* 00CD2C 7000C12C 014B1821 */ addu $v1, $t2, $t3 +/* 00CD30 7000C130 8C6C0000 */ lw $t4, ($v1) +/* 00CD34 7000C134 00001025 */ move $v0, $zero +/* 00CD38 7000C138 258D0001 */ addiu $t5, $t4, 1 +/* 00CD3C 7000C13C 03E00008 */ jr $ra +/* 00CD40 7000C140 AC6D0000 */ sw $t5, ($v1) + +.L7000C144: +/* 00CD44 7000C144 8C6E01E0 */ lw $t6, 0x1e0($v1) +/* 00CD48 7000C148 0004C880 */ sll $t9, $a0, 2 +/* 00CD4C 7000C14C 0324C823 */ subu $t9, $t9, $a0 +/* 00CD50 7000C150 000E7880 */ sll $t7, $t6, 2 +/* 00CD54 7000C154 01EE7823 */ subu $t7, $t7, $t6 +/* 00CD58 7000C158 000F78C0 */ sll $t7, $t7, 3 +/* 00CD5C 7000C15C 006FC021 */ addu $t8, $v1, $t7 +/* 00CD60 7000C160 0019C840 */ sll $t9, $t9, 1 +/* 00CD64 7000C164 03194021 */ addu $t0, $t8, $t9 +/* 00CD68 7000C168 81020002 */ lb $v0, 2($t0) +/* 00CD6C 7000C16C 03E00008 */ jr $ra +/* 00CD70 7000C170 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C174(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_lr); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C174 +/* 00CD74 7000C174 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CD78 7000C178 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CD7C 7000C17C AFA40000 */ sw $a0, ($sp) +/* 00CD80 7000C180 00047600 */ sll $t6, $a0, 0x18 +/* 00CD84 7000C184 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CD88 7000C188 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CD8C 7000C18C 01E02025 */ move $a0, $t7 +/* 00CD90 7000C190 0701000E */ bgez $t8, .L7000C1CC +/* 00CD94 7000C194 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CD98 7000C198 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CD9C 7000C19C 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) +/* 00CDA0 7000C1A0 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 +/* 00CDA4 7000C1A4 01F94007 */ srav $t0, $t9, $t7 +/* 00CDA8 7000C1A8 31090001 */ andi $t1, $t0, 1 +/* 00CDAC 7000C1AC 15200007 */ bnez $t1, .L7000C1CC +/* 00CDB0 7000C1B0 000F5080 */ sll $t2, $t7, 2 +/* 00CDB4 7000C1B4 014B1821 */ addu $v1, $t2, $t3 +/* 00CDB8 7000C1B8 8C6C0000 */ lw $t4, ($v1) +/* 00CDBC 7000C1BC 00001025 */ move $v0, $zero +/* 00CDC0 7000C1C0 258D0001 */ addiu $t5, $t4, 1 +/* 00CDC4 7000C1C4 03E00008 */ jr $ra +/* 00CDC8 7000C1C8 AC6D0000 */ sw $t5, ($v1) + +.L7000C1CC: +/* 00CDCC 7000C1CC 8C6E01E4 */ lw $t6, 0x1e4($v1) +/* 00CDD0 7000C1D0 0004C880 */ sll $t9, $a0, 2 +/* 00CDD4 7000C1D4 0324C823 */ subu $t9, $t9, $a0 +/* 00CDD8 7000C1D8 000E7880 */ sll $t7, $t6, 2 +/* 00CDDC 7000C1DC 01EE7823 */ subu $t7, $t7, $t6 +/* 00CDE0 7000C1E0 000F78C0 */ sll $t7, $t7, 3 +/* 00CDE4 7000C1E4 006FC021 */ addu $t8, $v1, $t7 +/* 00CDE8 7000C1E8 0019C840 */ sll $t9, $t9, 1 +/* 00CDEC 7000C1EC 03194021 */ addu $t0, $t8, $t9 +/* 00CDF0 7000C1F0 81020002 */ lb $v0, 2($t0) +/* 00CDF4 7000C1F4 03E00008 */ jr $ra +/* 00CDF8 7000C1F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_cur_controller_vert_stick_pos(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) +} +#else +GLOBAL_ASM( +.text +glabel get_cur_controller_vert_stick_pos +/* 00CDFC 7000C1FC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CE00 7000C200 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CE04 7000C204 AFA40000 */ sw $a0, ($sp) +/* 00CE08 7000C208 00047600 */ sll $t6, $a0, 0x18 +/* 00CE0C 7000C20C 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CE10 7000C210 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CE14 7000C214 01E02025 */ move $a0, $t7 +/* 00CE18 7000C218 0701000E */ bgez $t8, .L7000C254 +/* 00CE1C 7000C21C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CE20 7000C220 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CE24 7000C224 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) +/* 00CE28 7000C228 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 +/* 00CE2C 7000C22C 01F94007 */ srav $t0, $t9, $t7 +/* 00CE30 7000C230 31090001 */ andi $t1, $t0, 1 +/* 00CE34 7000C234 15200007 */ bnez $t1, .L7000C254 +/* 00CE38 7000C238 000F5080 */ sll $t2, $t7, 2 +/* 00CE3C 7000C23C 014B1821 */ addu $v1, $t2, $t3 +/* 00CE40 7000C240 8C6C0000 */ lw $t4, ($v1) +/* 00CE44 7000C244 00001025 */ move $v0, $zero +/* 00CE48 7000C248 258D0001 */ addiu $t5, $t4, 1 +/* 00CE4C 7000C24C 03E00008 */ jr $ra +/* 00CE50 7000C250 AC6D0000 */ sw $t5, ($v1) + +.L7000C254: +/* 00CE54 7000C254 8C6E01E0 */ lw $t6, 0x1e0($v1) +/* 00CE58 7000C258 0004C880 */ sll $t9, $a0, 2 +/* 00CE5C 7000C25C 0324C823 */ subu $t9, $t9, $a0 +/* 00CE60 7000C260 000E7880 */ sll $t7, $t6, 2 +/* 00CE64 7000C264 01EE7823 */ subu $t7, $t7, $t6 +/* 00CE68 7000C268 000F78C0 */ sll $t7, $t7, 3 +/* 00CE6C 7000C26C 006FC021 */ addu $t8, $v1, $t7 +/* 00CE70 7000C270 0019C840 */ sll $t9, $t9, 1 +/* 00CE74 7000C274 03194021 */ addu $t0, $t8, $t9 +/* 00CE78 7000C278 81020003 */ lb $v0, 3($t0) +/* 00CE7C 7000C27C 03E00008 */ jr $ra +/* 00CE80 7000C280 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C284(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C284 +/* 00CE84 7000C284 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CE88 7000C288 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CE8C 7000C28C AFA40000 */ sw $a0, ($sp) +/* 00CE90 7000C290 00047600 */ sll $t6, $a0, 0x18 +/* 00CE94 7000C294 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CE98 7000C298 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CE9C 7000C29C 01E02025 */ move $a0, $t7 +/* 00CEA0 7000C2A0 0701000E */ bgez $t8, .L7000C2DC +/* 00CEA4 7000C2A4 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CEA8 7000C2A8 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CEAC 7000C2AC 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) +/* 00CEB0 7000C2B0 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 +/* 00CEB4 7000C2B4 01F94007 */ srav $t0, $t9, $t7 +/* 00CEB8 7000C2B8 31090001 */ andi $t1, $t0, 1 +/* 00CEBC 7000C2BC 15200007 */ bnez $t1, .L7000C2DC +/* 00CEC0 7000C2C0 000F5080 */ sll $t2, $t7, 2 +/* 00CEC4 7000C2C4 014B1821 */ addu $v1, $t2, $t3 +/* 00CEC8 7000C2C8 8C6C0000 */ lw $t4, ($v1) +/* 00CECC 7000C2CC 00001025 */ move $v0, $zero +/* 00CED0 7000C2D0 258D0001 */ addiu $t5, $t4, 1 +/* 00CED4 7000C2D4 03E00008 */ jr $ra +/* 00CED8 7000C2D8 AC6D0000 */ sw $t5, ($v1) + +.L7000C2DC: +/* 00CEDC 7000C2DC 8C6E01E4 */ lw $t6, 0x1e4($v1) +/* 00CEE0 7000C2E0 0004C880 */ sll $t9, $a0, 2 +/* 00CEE4 7000C2E4 0324C823 */ subu $t9, $t9, $a0 +/* 00CEE8 7000C2E8 000E7880 */ sll $t7, $t6, 2 +/* 00CEEC 7000C2EC 01EE7823 */ subu $t7, $t7, $t6 +/* 00CEF0 7000C2F0 000F78C0 */ sll $t7, $t7, 3 +/* 00CEF4 7000C2F4 006FC021 */ addu $t8, $v1, $t7 +/* 00CEF8 7000C2F8 0019C840 */ sll $t9, $t9, 1 +/* 00CEFC 7000C2FC 03194021 */ addu $t0, $t8, $t9 +/* 00CF00 7000C300 81020003 */ lb $v0, 3($t0) +/* 00CF04 7000C304 03E00008 */ jr $ra +/* 00CF08 7000C308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_buttons_held(s32 arg0, s32 arg1) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_held); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) + } + } + // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_buttons_held +/* 00CF0C 7000C30C 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CF10 7000C310 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CF14 7000C314 AFA40000 */ sw $a0, ($sp) +/* 00CF18 7000C318 AFA50004 */ sw $a1, 4($sp) +/* 00CF1C 7000C31C 8C7901F8 */ lw $t9, 0x1f8($v1) +/* 00CF20 7000C320 00047600 */ sll $t6, $a0, 0x18 +/* 00CF24 7000C324 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CF28 7000C328 30B8FFFF */ andi $t8, $a1, 0xffff +/* 00CF2C 7000C32C 03002825 */ move $a1, $t8 +/* 00CF30 7000C330 0721000F */ bgez $t9, .L7000C370 +/* 00CF34 7000C334 01E02025 */ move $a0, $t7 +/* 00CF38 7000C338 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) +/* 00CF3C 7000C33C 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) +/* 00CF40 7000C340 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_held) +/* 00CF44 7000C344 258C6950 */ addiu $t4, %lo(pl1_controller_failure_held) # addiu $t4, $t4, 0x6950 +/* 00CF48 7000C348 01E84807 */ srav $t1, $t0, $t7 +/* 00CF4C 7000C34C 312A0001 */ andi $t2, $t1, 1 +/* 00CF50 7000C350 15400007 */ bnez $t2, .L7000C370 +/* 00CF54 7000C354 000F5880 */ sll $t3, $t7, 2 +/* 00CF58 7000C358 016C1821 */ addu $v1, $t3, $t4 +/* 00CF5C 7000C35C 8C6D0000 */ lw $t5, ($v1) +/* 00CF60 7000C360 00001025 */ move $v0, $zero +/* 00CF64 7000C364 25AE0001 */ addiu $t6, $t5, 1 +/* 00CF68 7000C368 03E00008 */ jr $ra +/* 00CF6C 7000C36C AC6E0000 */ sw $t6, ($v1) + +.L7000C370: +/* 00CF70 7000C370 8C6F01E0 */ lw $t7, 0x1e0($v1) +/* 00CF74 7000C374 00044080 */ sll $t0, $a0, 2 +/* 00CF78 7000C378 01044023 */ subu $t0, $t0, $a0 +/* 00CF7C 7000C37C 000FC080 */ sll $t8, $t7, 2 +/* 00CF80 7000C380 030FC023 */ subu $t8, $t8, $t7 +/* 00CF84 7000C384 0018C0C0 */ sll $t8, $t8, 3 +/* 00CF88 7000C388 0078C821 */ addu $t9, $v1, $t8 +/* 00CF8C 7000C38C 00084040 */ sll $t0, $t0, 1 +/* 00CF90 7000C390 03284821 */ addu $t1, $t9, $t0 +/* 00CF94 7000C394 952A0000 */ lhu $t2, ($t1) +/* 00CF98 7000C398 01451024 */ and $v0, $t2, $a1 +/* 00CF9C 7000C39C 304BFFFF */ andi $t3, $v0, 0xffff +/* 00CFA0 7000C3A0 01601025 */ move $v0, $t3 +/* 00CFA4 7000C3A4 03E00008 */ jr $ra +/* 00CFA8 7000C3A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_buttons_pressed(s32 arg0, s32 arg1) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_pressed); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) + } + } + // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_buttons_pressed +/* 00CFAC 7000C3AC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CFB0 7000C3B0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CFB4 7000C3B4 AFA40000 */ sw $a0, ($sp) +/* 00CFB8 7000C3B8 AFA50004 */ sw $a1, 4($sp) +/* 00CFBC 7000C3BC 8C7901F8 */ lw $t9, 0x1f8($v1) +/* 00CFC0 7000C3C0 00047600 */ sll $t6, $a0, 0x18 +/* 00CFC4 7000C3C4 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CFC8 7000C3C8 30B8FFFF */ andi $t8, $a1, 0xffff +/* 00CFCC 7000C3CC 03002825 */ move $a1, $t8 +/* 00CFD0 7000C3D0 0721000F */ bgez $t9, .L7000C410 +/* 00CFD4 7000C3D4 01E02025 */ move $a0, $t7 +/* 00CFD8 7000C3D8 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) +/* 00CFDC 7000C3DC 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) +/* 00CFE0 7000C3E0 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_pressed) +/* 00CFE4 7000C3E4 258C6960 */ addiu $t4, %lo(pl1_controller_failure_pressed) # addiu $t4, $t4, 0x6960 +/* 00CFE8 7000C3E8 01E84807 */ srav $t1, $t0, $t7 +/* 00CFEC 7000C3EC 312A0001 */ andi $t2, $t1, 1 +/* 00CFF0 7000C3F0 15400007 */ bnez $t2, .L7000C410 +/* 00CFF4 7000C3F4 000F5880 */ sll $t3, $t7, 2 +/* 00CFF8 7000C3F8 016C1821 */ addu $v1, $t3, $t4 +/* 00CFFC 7000C3FC 8C6D0000 */ lw $t5, ($v1) +/* 00D000 7000C400 00001025 */ move $v0, $zero +/* 00D004 7000C404 25AE0001 */ addiu $t6, $t5, 1 +/* 00D008 7000C408 03E00008 */ jr $ra +/* 00D00C 7000C40C AC6E0000 */ sw $t6, ($v1) + +.L7000C410: +/* 00D010 7000C410 00047840 */ sll $t7, $a0, 1 +/* 00D014 7000C414 006FC021 */ addu $t8, $v1, $t7 +/* 00D018 7000C418 971901F0 */ lhu $t9, 0x1f0($t8) +/* 00D01C 7000C41C 03251024 */ and $v0, $t9, $a1 +/* 00D020 7000C420 3048FFFF */ andi $t0, $v0, 0xffff +/* 00D024 7000C424 01001025 */ move $v0, $t0 +/* 00D028 7000C428 03E00008 */ jr $ra +/* 00D02C 7000C42C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C430(s32 arg0, s32 arg1) { + // Node 0 + // Node 1 + (arg0 + 1)->unk-1 = (s8) (((0 < (((s32) (arg1 & 0xffff) >> 0xf) & 1)) * 0x11) + 0x20); + if ((0xf + -1) >= 0) + { + goto loop_1; + } + // (possible return value: (0xf + -1)) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C430 +/* 00D030 7000C430 AFA50004 */ sw $a1, 4($sp) +/* 00D034 7000C434 30A3FFFF */ andi $v1, $a1, 0xffff +/* 00D038 7000C438 24050011 */ li $a1, 17 +/* 00D03C 7000C43C 2402000F */ li $v0, 15 +.L7000C440: +/* 00D040 7000C440 00437807 */ srav $t7, $v1, $v0 +/* 00D044 7000C444 31F80001 */ andi $t8, $t7, 1 +/* 00D048 7000C448 0018C82A */ slt $t9, $zero, $t8 +/* 00D04C 7000C44C 03250019 */ multu $t9, $a1 +/* 00D050 7000C450 2442FFFF */ addiu $v0, $v0, -1 +/* 00D054 7000C454 24840001 */ addiu $a0, $a0, 1 +/* 00D058 7000C458 00004012 */ mflo $t0 +/* 00D05C 7000C45C 25090020 */ addiu $t1, $t0, 0x20 +/* 00D060 7000C460 0441FFF7 */ bgez $v0, .L7000C440 +/* 00D064 7000C464 A089FFFF */ sb $t1, -1($a0) +/* 00D068 7000C468 03E00008 */ jr $ra +/* 00D06C 7000C46C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void controller_7000C470(void) { + // Node 0 + if (get_attached_controller_count() > 0) + { + loop_1: + // Node 1 + if ((0 + 1) < get_attached_controller_count()) + { + goto loop_1; + } + } + // (possible return value: get_attached_controller_count()) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C470 +/* 00D070 7000C470 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D074 7000C474 AFBF001C */ sw $ra, 0x1c($sp) +/* 00D078 7000C478 AFB00018 */ sw $s0, 0x18($sp) +/* 00D07C 7000C47C 0C002E7E */ jal get_attached_controller_count +/* 00D080 7000C480 00008025 */ move $s0, $zero +/* 00D084 7000C484 58400007 */ blezl $v0, .L7000C4A4 +/* 00D088 7000C488 8FBF001C */ lw $ra, 0x1c($sp) +.L7000C48C: +/* 00D08C 7000C48C 0C002E7E */ jal get_attached_controller_count +/* 00D090 7000C490 26100001 */ addiu $s0, $s0, 1 +/* 00D094 7000C494 0202082A */ slt $at, $s0, $v0 +/* 00D098 7000C498 1420FFFC */ bnez $at, .L7000C48C +/* 00D09C 7000C49C 00000000 */ nop +/* 00D0A0 7000C4A0 8FBF001C */ lw $ra, 0x1c($sp) +.L7000C4A4: +/* 00D0A4 7000C4A4 8FB00018 */ lw $s0, 0x18($sp) +/* 00D0A8 7000C4A8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D0AC 7000C4AC 03E00008 */ jr $ra +/* 00D0B0 7000C4B0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_controller_3dstick_L_R(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) + } + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_3dstick_L_R +/* 00D0B4 7000C4B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D0B8 7000C4B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D0BC 7000C4BC AFA40018 */ sw $a0, 0x18($sp) +/* 00D0C0 7000C4C0 00047600 */ sll $t6, $a0, 0x18 +/* 00D0C4 7000C4C4 000E2603 */ sra $a0, $t6, 0x18 +/* 00D0C8 7000C4C8 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D0CC 7000C4CC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 00D0D0 7000C4D0 AFA60020 */ sw $a2, 0x20($sp) +/* 00D0D4 7000C4D4 2444003C */ addiu $a0, $v0, 0x3c +/* 00D0D8 7000C4D8 28810079 */ slti $at, $a0, 0x79 +/* 00D0DC 7000C4DC 14200002 */ bnez $at, .L7000C4E8 +/* 00D0E0 7000C4E0 8FA5001C */ lw $a1, 0x1c($sp) +/* 00D0E4 7000C4E4 24040078 */ li $a0, 120 +.L7000C4E8: +/* 00D0E8 7000C4E8 04810002 */ bgez $a0, .L7000C4F4 +/* 00D0EC 7000C4EC 8FB80020 */ lw $t8, 0x20($sp) +/* 00D0F0 7000C4F0 00002025 */ move $a0, $zero +.L7000C4F4: +/* 00D0F4 7000C4F4 0305C823 */ subu $t9, $t8, $a1 +/* 00D0F8 7000C4F8 00990019 */ multu $a0, $t9 +/* 00D0FC 7000C4FC 24010078 */ li $at, 120 +/* 00D100 7000C500 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D104 7000C504 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D108 7000C508 00004012 */ mflo $t0 +/* 00D10C 7000C50C 00000000 */ nop +/* 00D110 7000C510 00000000 */ nop +/* 00D114 7000C514 0101001A */ div $zero, $t0, $at +/* 00D118 7000C518 00004812 */ mflo $t1 +/* 00D11C 7000C51C 01251021 */ addu $v0, $t1, $a1 +/* 00D120 7000C520 03E00008 */ jr $ra +/* 00D124 7000C524 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_3dstick_U_D(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) + } + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_3dstick_U_D +/* 00D128 7000C528 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D12C 7000C52C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D130 7000C530 AFA40018 */ sw $a0, 0x18($sp) +/* 00D134 7000C534 00047600 */ sll $t6, $a0, 0x18 +/* 00D138 7000C538 000E2603 */ sra $a0, $t6, 0x18 +/* 00D13C 7000C53C AFA5001C */ sw $a1, 0x1c($sp) +/* 00D140 7000C540 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 00D144 7000C544 AFA60020 */ sw $a2, 0x20($sp) +/* 00D148 7000C548 2444003C */ addiu $a0, $v0, 0x3c +/* 00D14C 7000C54C 28810079 */ slti $at, $a0, 0x79 +/* 00D150 7000C550 14200002 */ bnez $at, .L7000C55C +/* 00D154 7000C554 8FA5001C */ lw $a1, 0x1c($sp) +/* 00D158 7000C558 24040078 */ li $a0, 120 +.L7000C55C: +/* 00D15C 7000C55C 04810002 */ bgez $a0, .L7000C568 +/* 00D160 7000C560 8FB80020 */ lw $t8, 0x20($sp) +/* 00D164 7000C564 00002025 */ move $a0, $zero +.L7000C568: +/* 00D168 7000C568 0305C823 */ subu $t9, $t8, $a1 +/* 00D16C 7000C56C 00990019 */ multu $a0, $t9 +/* 00D170 7000C570 24010078 */ li $at, 120 +/* 00D174 7000C574 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D178 7000C578 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D17C 7000C57C 00004012 */ mflo $t0 +/* 00D180 7000C580 00000000 */ nop +/* 00D184 7000C584 00000000 */ nop +/* 00D188 7000C588 0101001A */ div $zero, $t0, $at +/* 00D18C 7000C58C 00004812 */ mflo $t1 +/* 00D190 7000C590 01251021 */ addu $v0, $t1, $a1 +/* 00D194 7000C594 03E00008 */ jr $ra +/* 00D198 7000C598 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 controller_7000C59C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) + } + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C59C +/* 00D19C 7000C59C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D1A0 7000C5A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D1A4 7000C5A4 AFA40018 */ sw $a0, 0x18($sp) +/* 00D1A8 7000C5A8 00047600 */ sll $t6, $a0, 0x18 +/* 00D1AC 7000C5AC 000E2603 */ sra $a0, $t6, 0x18 +/* 00D1B0 7000C5B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D1B4 7000C5B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 00D1B8 7000C5B8 AFA60020 */ sw $a2, 0x20($sp) +/* 00D1BC 7000C5BC 2444003C */ addiu $a0, $v0, 0x3c +/* 00D1C0 7000C5C0 28810079 */ slti $at, $a0, 0x79 +/* 00D1C4 7000C5C4 14200002 */ bnez $at, .L7000C5D0 +/* 00D1C8 7000C5C8 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 00D1CC 7000C5CC 24040078 */ li $a0, 120 +.L7000C5D0: +/* 00D1D0 7000C5D0 04830003 */ bgezl $a0, .L7000C5E0 +/* 00D1D4 7000C5D4 44842000 */ mtc1 $a0, $f4 +/* 00D1D8 7000C5D8 00002025 */ move $a0, $zero +/* 00D1DC 7000C5DC 44842000 */ mtc1 $a0, $f4 +.L7000C5E0: +/* 00D1E0 7000C5E0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 00D1E4 7000C5E4 44814000 */ mtc1 $at, $f8 +/* 00D1E8 7000C5E8 468021A0 */ cvt.s.w $f6, $f4 +/* 00D1EC 7000C5EC C7B00020 */ lwc1 $f16, 0x20($sp) +/* 00D1F0 7000C5F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D1F4 7000C5F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D1F8 7000C5F8 46028481 */ sub.s $f18, $f16, $f2 +/* 00D1FC 7000C5FC 46083283 */ div.s $f10, $f6, $f8 +/* 00D200 7000C600 46125102 */ mul.s $f4, $f10, $f18 +/* 00D204 7000C604 03E00008 */ jr $ra +/* 00D208 7000C608 46022000 */ add.s $f0, $f4, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +f32 controller_7000C60C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) + } + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C60C +/* 00D20C 7000C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D210 7000C610 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D214 7000C614 AFA40018 */ sw $a0, 0x18($sp) +/* 00D218 7000C618 00047600 */ sll $t6, $a0, 0x18 +/* 00D21C 7000C61C 000E2603 */ sra $a0, $t6, 0x18 +/* 00D220 7000C620 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D224 7000C624 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 00D228 7000C628 AFA60020 */ sw $a2, 0x20($sp) +/* 00D22C 7000C62C 2444003C */ addiu $a0, $v0, 0x3c +/* 00D230 7000C630 28810079 */ slti $at, $a0, 0x79 +/* 00D234 7000C634 14200002 */ bnez $at, .L7000C640 +/* 00D238 7000C638 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 00D23C 7000C63C 24040078 */ li $a0, 120 +.L7000C640: +/* 00D240 7000C640 04830003 */ bgezl $a0, .L7000C650 +/* 00D244 7000C644 44842000 */ mtc1 $a0, $f4 +/* 00D248 7000C648 00002025 */ move $a0, $zero +/* 00D24C 7000C64C 44842000 */ mtc1 $a0, $f4 +.L7000C650: +/* 00D250 7000C650 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 00D254 7000C654 44814000 */ mtc1 $at, $f8 +/* 00D258 7000C658 468021A0 */ cvt.s.w $f6, $f4 +/* 00D25C 7000C65C C7B00020 */ lwc1 $f16, 0x20($sp) +/* 00D260 7000C660 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D264 7000C664 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D268 7000C668 46028481 */ sub.s $f18, $f16, $f2 +/* 00D26C 7000C66C 46083283 */ div.s $f10, $f6, $f8 +/* 00D270 7000C670 46125102 */ mul.s $f4, $f10, $f18 +/* 00D274 7000C674 03E00008 */ jr $ra +/* 00D278 7000C678 46022000 */ add.s $f0, $f4, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C67C(void) { + ? sp1C; + + // Node 0 + osSendMesg(&cont1MesgMQ, &sp1C, 0); + osRecvMesg(&cont2MesgMQ, &sp1C, 1); + return; + // (possible return value: osRecvMesg(&cont2MesgMQ, &sp1C, 1)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C67C +/* 00D27C 7000C67C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D280 7000C680 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D284 7000C684 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00D288 7000C688 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00D28C 7000C68C 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D290 7000C690 0C0037C4 */ jal osSendMesg +/* 00D294 7000C694 00003025 */ move $a2, $zero +/* 00D298 7000C698 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00D29C 7000C69C 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00D2A0 7000C6A0 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2A4 7000C6A4 0C003774 */ jal osRecvMesg +/* 00D2A8 7000C6A8 24060001 */ li $a2, 1 +/* 00D2AC 7000C6AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D2B0 7000C6B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D2B4 7000C6B4 03E00008 */ jr $ra +/* 00D2B8 7000C6B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C6BC(void) { + ? sp1C; + + // Node 0 + osSendMesg(&cont3MesgMQ, &sp1C, 0); + osRecvMesg(&cont4MesgMQ, &sp1C, 1); + return; + // (possible return value: osRecvMesg(&cont4MesgMQ, &sp1C, 1)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C6BC +/* 00D2BC 7000C6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D2C0 7000C6C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D2C4 7000C6C4 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00D2C8 7000C6C8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00D2CC 7000C6CC 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2D0 7000C6D0 0C0037C4 */ jal osSendMesg +/* 00D2D4 7000C6D4 00003025 */ move $a2, $zero +/* 00D2D8 7000C6D8 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00D2DC 7000C6DC 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00D2E0 7000C6E0 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2E4 7000C6E4 0C003774 */ jal osRecvMesg +/* 00D2E8 7000C6E8 24060001 */ li $a2, 1 +/* 00D2EC 7000C6EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D2F0 7000C6F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D2F4 7000C6F4 03E00008 */ jr $ra +/* 00D2F8 7000C6F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C6FC(void) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromProbe(&contdemoMesgMQ); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C6FC +/* 00D2FC 7000C6FC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D300 7000C700 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D304 7000C704 0C00319F */ jal controller_7000C67C +/* 00D308 7000C708 00000000 */ nop +/* 00D30C 7000C70C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D310 7000C710 0C0053F4 */ jal osEepromProbe +/* 00D314 7000C714 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D318 7000C718 0C0031AF */ jal controller_7000C6BC +/* 00D31C 7000C71C AFA2001C */ sw $v0, 0x1c($sp) +/* 00D320 7000C720 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D324 7000C724 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D328 7000C728 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D32C 7000C72C 03E00008 */ jr $ra +/* 00D330 7000C730 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C734(s32 arg0, s32 arg1, ? arg8, ? arg9) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromRead(&contdemoMesgMQ, arg8, arg9); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C734 +/* 00D334 7000C734 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D338 7000C738 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D33C 7000C73C AFA40020 */ sw $a0, 0x20($sp) +/* 00D340 7000C740 0C00319F */ jal controller_7000C67C +/* 00D344 7000C744 AFA50024 */ sw $a1, 0x24($sp) +/* 00D348 7000C748 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D34C 7000C74C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D350 7000C750 93A50023 */ lbu $a1, 0x23($sp) +/* 00D354 7000C754 0C005410 */ jal osEepromRead +/* 00D358 7000C758 8FA60024 */ lw $a2, 0x24($sp) +/* 00D35C 7000C75C 0C0031AF */ jal controller_7000C6BC +/* 00D360 7000C760 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D364 7000C764 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D368 7000C768 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D36C 7000C76C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D370 7000C770 03E00008 */ jr $ra +/* 00D374 7000C774 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C778(s32 arg0, s32 arg1, ? arg8, ? arg9) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromWrite(&contdemoMesgMQ, arg8, arg9); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C778 +/* 00D378 7000C778 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D37C 7000C77C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D380 7000C780 AFA40020 */ sw $a0, 0x20($sp) +/* 00D384 7000C784 0C00319F */ jal controller_7000C67C +/* 00D388 7000C788 AFA50024 */ sw $a1, 0x24($sp) +/* 00D38C 7000C78C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D390 7000C790 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D394 7000C794 93A50023 */ lbu $a1, 0x23($sp) +/* 00D398 7000C798 0C0054D0 */ jal osEepromWrite +/* 00D39C 7000C79C 8FA60024 */ lw $a2, 0x24($sp) +/* 00D3A0 7000C7A0 0C0031AF */ jal controller_7000C6BC +/* 00D3A4 7000C7A4 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D3A8 7000C7A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D3AC 7000C7AC 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D3B0 7000C7B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D3B4 7000C7B4 03E00008 */ jr $ra +/* 00D3B8 7000C7B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C7BC(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromLongRead(&contdemoMesgMQ, arg8, arg9, argA); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C7BC +/* 00D3BC 7000C7BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D3C0 7000C7C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D3C4 7000C7C4 AFA40020 */ sw $a0, 0x20($sp) +/* 00D3C8 7000C7C8 AFA50024 */ sw $a1, 0x24($sp) +/* 00D3CC 7000C7CC 0C00319F */ jal controller_7000C67C +/* 00D3D0 7000C7D0 AFA60028 */ sw $a2, 0x28($sp) +/* 00D3D4 7000C7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D3D8 7000C7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D3DC 7000C7DC 93A50023 */ lbu $a1, 0x23($sp) +/* 00D3E0 7000C7E0 8FA60024 */ lw $a2, 0x24($sp) +/* 00D3E4 7000C7E4 0C005608 */ jal osEepromLongRead +/* 00D3E8 7000C7E8 8FA70028 */ lw $a3, 0x28($sp) +/* 00D3EC 7000C7EC 0C0031AF */ jal controller_7000C6BC +/* 00D3F0 7000C7F0 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D3F4 7000C7F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D3F8 7000C7F8 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D3FC 7000C7FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D400 7000C800 03E00008 */ jr $ra +/* 00D404 7000C804 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C808(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromLongWrite(&contdemoMesgMQ, arg8, arg9, argA); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C808 +/* 00D408 7000C808 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D40C 7000C80C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D410 7000C810 AFA40020 */ sw $a0, 0x20($sp) +/* 00D414 7000C814 AFA50024 */ sw $a1, 0x24($sp) +/* 00D418 7000C818 0C00319F */ jal controller_7000C67C +/* 00D41C 7000C81C AFA60028 */ sw $a2, 0x28($sp) +/* 00D420 7000C820 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D424 7000C824 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D428 7000C828 93A50023 */ lbu $a1, 0x23($sp) +/* 00D42C 7000C82C 8FA60024 */ lw $a2, 0x24($sp) +/* 00D430 7000C830 0C005658 */ jal osEepromLongWrite +/* 00D434 7000C834 8FA70028 */ lw $a3, 0x28($sp) +/* 00D438 7000C838 0C0031AF */ jal controller_7000C6BC +/* 00D43C 7000C83C AFA2001C */ sw $v0, 0x1c($sp) +/* 00D440 7000C840 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D444 7000C844 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D448 7000C848 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D44C 7000C84C 03E00008 */ jr $ra +/* 00D450 7000C850 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C854(s32 arg0, s32 arg1) { + s32 temp_v1; + void *temp_a0; + s32 temp_f8; + + // Node 0 + temp_v1 = (arg0 * 4); + if (disable_all_rumble == 0) + { + // Node 1 + if (*(&controller_1_rumble_inserted + temp_v1) > 0) + { + // Node 2 + temp_a0 = (temp_v1 + &controller_1_rumble_duration); + temp_f8 = (s32) (arg1 * 60.0f); + if (*temp_a0 < temp_f8) + { + // Node 3 + *temp_a0 = temp_f8; + } + // Node 4 + if (*(&controller_1_rumble_state + temp_v1) == 0) + { + // Node 5 + *(&controller_1_rumble_pulse + temp_v1) = 1; + return; + // (possible return value: temp_f8) + } + } + } + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C854 +/* 00D454 7000C854 3C0E8002 */ lui $t6, %hi(disable_all_rumble) +/* 00D458 7000C858 8DCE6924 */ lw $t6, %lo(disable_all_rumble)($t6) +/* 00D45C 7000C85C 44856000 */ mtc1 $a1, $f12 +/* 00D460 7000C860 00041880 */ sll $v1, $a0, 2 +/* 00D464 7000C864 15C0001B */ bnez $t6, .L7000C8D4 +/* 00D468 7000C868 3C0F8002 */ lui $t7, %hi(controller_1_rumble_inserted) +/* 00D46C 7000C86C 01E37821 */ addu $t7, $t7, $v1 +/* 00D470 7000C870 8DEF68D8 */ lw $t7, %lo(controller_1_rumble_inserted)($t7) +/* 00D474 7000C874 3C098002 */ lui $t1, %hi(controller_1_rumble_state) +/* 00D478 7000C878 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 00D47C 7000C87C 19E00015 */ blez $t7, .L7000C8D4 +/* 00D480 7000C880 01234821 */ addu $t1, $t1, $v1 +/* 00D484 7000C884 44812000 */ mtc1 $at, $f4 +/* 00D488 7000C888 3C188002 */ lui $t8, %hi(controller_1_rumble_duration) +/* 00D48C 7000C88C 271868F8 */ addiu $t8, %lo(controller_1_rumble_duration) # addiu $t8, $t8, 0x68f8 +/* 00D490 7000C890 46046182 */ mul.s $f6, $f12, $f4 +/* 00D494 7000C894 00782021 */ addu $a0, $v1, $t8 +/* 00D498 7000C898 8C880000 */ lw $t0, ($a0) +/* 00D49C 7000C89C 240A0001 */ li $t2, 1 +/* 00D4A0 7000C8A0 4600320D */ trunc.w.s $f8, $f6 +/* 00D4A4 7000C8A4 44024000 */ mfc1 $v0, $f8 +/* 00D4A8 7000C8A8 00000000 */ nop +/* 00D4AC 7000C8AC 0102082A */ slt $at, $t0, $v0 +/* 00D4B0 7000C8B0 10200002 */ beqz $at, .L7000C8BC +/* 00D4B4 7000C8B4 00000000 */ nop +/* 00D4B8 7000C8B8 AC820000 */ sw $v0, ($a0) +.L7000C8BC: +/* 00D4BC 7000C8BC 8D2968E8 */ lw $t1, %lo(controller_1_rumble_state)($t1) +/* 00D4C0 7000C8C0 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4C4 7000C8C4 00230821 */ addu $at, $at, $v1 +/* 00D4C8 7000C8C8 15200002 */ bnez $t1, .L7000C8D4 +/* 00D4CC 7000C8CC 00000000 */ nop +/* 00D4D0 7000C8D0 AC2A6908 */ sw $t2, %lo(controller_1_rumble_pulse)($at) +.L7000C8D4: +/* 00D4D4 7000C8D4 03E00008 */ jr $ra +/* 00D4D8 7000C8D8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void reset_cont_rumble_detect(void) { + controller_1_rumble_state = 1; + controller_1_rumble_pulse = 0; + controller_2_rumble_state = 1; + controller_2_rumble_pulse = 0; + controller_3_rumble_state = 1; + controller_3_rumble_pulse = 0; + controller_4_rumble_state = 1; + controller_4_rumble_pulse = 0; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel reset_cont_rumble_detect +/* 00D4DC 7000C8DC 240E0001 */ li $t6, 1 +/* 00D4E0 7000C8E0 3C018002 */ lui $at, %hi(controller_1_rumble_state) +/* 00D4E4 7000C8E4 AC2E68E8 */ sw $t6, %lo(controller_1_rumble_state)($at) +/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4EC 7000C8EC AC206908 */ sw $zero, %lo(controller_1_rumble_pulse)($at) +/* 00D4F0 7000C8F0 3C018002 */ lui $at, %hi(controller_2_rumble_state) +/* 00D4F4 7000C8F4 240F0001 */ li $t7, 1 +/* 00D4F8 7000C8F8 AC2F68EC */ sw $t7, %lo(controller_2_rumble_state)($at) +/* 00D4FC 7000C8FC 3C018002 */ lui $at, %hi(controller_2_rumble_pulse) +/* 00D500 7000C900 AC20690C */ sw $zero, %lo(controller_2_rumble_pulse)($at) +/* 00D504 7000C904 3C018002 */ lui $at, %hi(controller_3_rumble_state) +/* 00D508 7000C908 24180001 */ li $t8, 1 +/* 00D50C 7000C90C AC3868F0 */ sw $t8, %lo(controller_3_rumble_state)($at) +/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) +/* 00D514 7000C914 AC206910 */ sw $zero, %lo(controller_3_rumble_pulse)($at) +/* 00D518 7000C918 3C018002 */ lui $at, %hi(controller_4_rumble_state) +/* 00D51C 7000C91C 24190001 */ li $t9, 1 +/* 00D520 7000C920 AC3968F4 */ sw $t9, %lo(controller_4_rumble_state)($at) +/* 00D524 7000C924 3C018002 */ lui $at, %hi( controller_4_rumble_pulse) +/* 00D528 7000C928 03E00008 */ jr $ra +/* 00D52C 7000C92C AC206914 */ sw $zero, %lo( controller_4_rumble_pulse)($at) +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel reset_cont_rumble_detect +/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4F4 7000C8F4 240F0001 */ li $t7, 2 +/* 00D4DC 7000C8DC 240E0001 */ li $t6, 2 +/* 00D500 7000C900 AC20690C */ sw $t7, %lo(controller_2_rumble_pulse)($at) +/* 00D4EC 7000C8EC AC206908 */ sw $t6, %lo(controller_1_rumble_pulse)($at) +/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) +/* 00D508 7000C908 24180001 */ li $t8, 2 +/* 00D51C 7000C91C 24190001 */ li $t9, 2 +/* 00D514 7000C914 AC206910 */ sw $t9, %lo(controller_4_rumble_pulse)($at) +/* 00D528 7000C928 03E00008 */ jr $ra +/* 00D52C 7000C92C AC206914 */ sw $t8, %lo( controller_3_rumble_pulse)($at) +) +#endif + +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C930(s32 arg0) { + // Node 0 + (void *)0x80020000->unk68C4 = (s32) ((arg0 * 0x1fc) + &controller_input_index); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C930 +/* 00D530 7000C930 000471C0 */ sll $t6, $a0, 7 +/* 00D534 7000C934 01C47023 */ subu $t6, $t6, $a0 +/* 00D538 7000C938 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00D53C 7000C93C 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 +/* 00D540 7000C940 000E7080 */ sll $t6, $t6, 2 +/* 00D544 7000C944 01CFC021 */ addu $t8, $t6, $t7 +/* 00D548 7000C948 3C018002 */ lui $at, %hi(ptr_current_point_in_controller_input_index) +/* 00D54C 7000C94C 03E00008 */ jr $ra +/* 00D550 7000C950 AC3868C4 */ sw $t8, %lo(ptr_current_point_in_controller_input_index)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C954(void) { + // (possible return value: ((s32) (ptr_current_point_in_controller_input_index - &controller_input_index) / 0x1fc)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C954 +/* 00D554 7000C954 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) +/* 00D558 7000C958 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) +/* 00D55C 7000C95C 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00D560 7000C960 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 +/* 00D564 7000C964 240101FC */ li $at, 508 +/* 00D568 7000C968 01CF1023 */ subu $v0, $t6, $t7 +/* 00D56C 7000C96C 0041001A */ div $zero, $v0, $at +/* 00D570 7000C970 00001012 */ mflo $v0 +/* 00D574 7000C974 03E00008 */ jr $ra +/* 00D578 7000C978 00000000 */ nop +) +#endif + + + + diff --git a/src/joy.h b/src/joy.h new file mode 100644 index 0000000..69dfef8 --- /dev/null +++ b/src/joy.h @@ -0,0 +1,9 @@ +#ifndef _JOY_H_ +#define _JOY_H_ + +#include "ultra64.h" +void *joyInitDebugNoticeList(void); +s32 get_attached_controller_count(void); +s32 get_controller_buttons_pressed(s32 arg0, s32 arg1); + +#endif diff --git a/src/libultra/ai.s b/src/libultra/ai.s new file mode 100644 index 0000000..792456e --- /dev/null +++ b/src/libultra/ai.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osAiDeviceBusy +/* 019CF0 700190F0 3C0EA450 */ lui $t6, %hi(AI_STATUS_REG) # $t6, 0xa450 +/* 019CF4 700190F4 8DC4000C */ lw $a0, %lo(AI_STATUS_REG)($t6) +/* 019CF8 700190F8 3C018000 */ lui $at, 0x8000 +/* 019CFC 700190FC 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019D00 70019100 00817824 */ and $t7, $a0, $at +/* 019D04 70019104 11E00003 */ beqz $t7, .L70019114 +/* 019D08 70019108 00000000 */ nop +/* 019D0C 7001910C 10000002 */ b .L70019118 +/* 019D10 70019110 24020001 */ li $v0, 1 +.L70019114: +/* 019D14 70019114 00001025 */ move $v0, $zero +.L70019118: +/* 019D18 70019118 03E00008 */ jr $ra +/* 019D1C 7001911C 27BD0008 */ addiu $sp, $sp, 8 diff --git a/src/libultra/aigetlen.s b/src/libultra/aigetlen.s new file mode 100644 index 0000000..f363dab --- /dev/null +++ b/src/libultra/aigetlen.s @@ -0,0 +1,15 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osAiGetLength +/* 00FBB0 7000EFB0 3C0EA450 */ lui $t6, 0xa450 +/* 00FBB4 7000EFB4 03E00008 */ jr $ra +/* 00FBB8 7000EFB8 8DC20004 */ lw $v0, 4($t6) + diff --git a/src/libultra/aisetfreq.s b/src/libultra/aisetfreq.s new file mode 100644 index 0000000..bd786cc --- /dev/null +++ b/src/libultra/aisetfreq.s @@ -0,0 +1,106 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osAiSetFrequency +/* 00F530 7000E930 3C0E8003 */ lui $t6, %hi(osViClock)#%hi(osViClock) +/* 00F534 7000E934 8DCE804C */ lw $t6, %lo(osViClock)($t6)#%lo(osViClock)($t6) +/* 00F538 7000E938 44844000 */ mtc1 $a0, $f8 +/* 00F53C 7000E93C 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 00F540 7000E940 448E2000 */ mtc1 $t6, $f4 +/* 00F544 7000E944 468042A0 */ cvt.s.w $f10, $f8 +/* 00F548 7000E948 04810005 */ bgez $a0, .L7000E960 +/* 00F54C 7000E94C 468021A0 */ cvt.s.w $f6, $f4 +/* 00F550 7000E950 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00F554 7000E954 44818000 */ mtc1 $at, $f16 +/* 00F558 7000E958 00000000 */ nop +/* 00F55C 7000E95C 46105280 */ add.s $f10, $f10, $f16 +.L7000E960: +/* 00F560 7000E960 460A3483 */ div.s $f18, $f6, $f10 +/* 00F564 7000E964 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 00F568 7000E968 44812000 */ mtc1 $at, $f4 +/* 00F56C 7000E96C 24050001 */ li $a1, 1 +/* 00F570 7000E970 46049300 */ add.s $f12, $f18, $f4 +/* 00F574 7000E974 444FF800 */ cfc1 $t7, $31 +/* 00F578 7000E978 44C5F800 */ ctc1 $a1, $31 +/* 00F57C 7000E97C 00000000 */ nop +/* 00F580 7000E980 46006224 */ cvt.w.s $f8, $f12 +/* 00F584 7000E984 4445F800 */ cfc1 $a1, $31 +/* 00F588 7000E988 00000000 */ nop +/* 00F58C 7000E98C 30A10004 */ andi $at, $a1, 4 +/* 00F590 7000E990 30A50078 */ andi $a1, $a1, 0x78 +/* 00F594 7000E994 10A00013 */ beqz $a1, .L7000E9E4 +/* 00F598 7000E998 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 00F59C 7000E99C 44814000 */ mtc1 $at, $f8 +/* 00F5A0 7000E9A0 24050001 */ li $a1, 1 +/* 00F5A4 7000E9A4 46086201 */ sub.s $f8, $f12, $f8 +/* 00F5A8 7000E9A8 44C5F800 */ ctc1 $a1, $31 +/* 00F5AC 7000E9AC 00000000 */ nop +/* 00F5B0 7000E9B0 46004224 */ cvt.w.s $f8, $f8 +/* 00F5B4 7000E9B4 4445F800 */ cfc1 $a1, $31 +/* 00F5B8 7000E9B8 00000000 */ nop +/* 00F5BC 7000E9BC 30A10004 */ andi $at, $a1, 4 +/* 00F5C0 7000E9C0 30A50078 */ andi $a1, $a1, 0x78 +/* 00F5C4 7000E9C4 14A00005 */ bnez $a1, .L7000E9DC +/* 00F5C8 7000E9C8 00000000 */ nop +/* 00F5CC 7000E9CC 44054000 */ mfc1 $a1, $f8 +/* 00F5D0 7000E9D0 3C018000 */ lui $at, 0x8000 +/* 00F5D4 7000E9D4 10000007 */ b .L7000E9F4 +/* 00F5D8 7000E9D8 00A12825 */ or $a1, $a1, $at +.L7000E9DC: +/* 00F5DC 7000E9DC 10000005 */ b .L7000E9F4 +/* 00F5E0 7000E9E0 2405FFFF */ li $a1, -1 +.L7000E9E4: +/* 00F5E4 7000E9E4 44054000 */ mfc1 $a1, $f8 +/* 00F5E8 7000E9E8 00000000 */ nop +/* 00F5EC 7000E9EC 04A0FFFB */ bltz $a1, .L7000E9DC +/* 00F5F0 7000E9F0 00000000 */ nop +.L7000E9F4: +/* 00F5F4 7000E9F4 44CFF800 */ ctc1 $t7, $31 +/* 00F5F8 7000E9F8 2CA10084 */ sltiu $at, $a1, 0x84 +/* 00F5FC 7000E9FC 10200003 */ beqz $at, .L7000EA0C +/* 00F600 7000EA00 00000000 */ nop +/* 00F604 7000EA04 10000020 */ b .L7000EA88 +/* 00F608 7000EA08 2402FFFF */ li $v0, -1 +.L7000EA0C: +/* 00F60C 7000EA0C 24010042 */ li $at, 66 +/* 00F610 7000EA10 00A1001B */ divu $zero, $a1, $at +/* 00F614 7000EA14 00003012 */ mflo $a2 +/* 00F618 7000EA18 30D800FF */ andi $t8, $a2, 0xff +/* 00F61C 7000EA1C 03003025 */ move $a2, $t8 +/* 00F620 7000EA20 28C10011 */ slti $at, $a2, 0x11 +/* 00F624 7000EA24 14200002 */ bnez $at, .L7000EA30 +/* 00F628 7000EA28 00000000 */ nop +/* 00F62C 7000EA2C 24060010 */ li $a2, 16 +.L7000EA30: +/* 00F630 7000EA30 24B9FFFF */ addiu $t9, $a1, -1 +/* 00F634 7000EA34 3C08A450 */ lui $t0, %hi(AI_DACRATE_REG) # $t0, 0xa450 +/* 00F638 7000EA38 AD190010 */ sw $t9, %lo(AI_DACRATE_REG)($t0) +/* 00F63C 7000EA3C 24C9FFFF */ addiu $t1, $a2, -1 +/* 00F640 7000EA40 3C0AA450 */ lui $t2, %hi(AI_BITRATE_REG) # $t2, 0xa450 +/* 00F644 7000EA44 AD490014 */ sw $t1, %lo(AI_BITRATE_REG)($t2) +/* 00F648 7000EA48 240B0001 */ li $t3, 1 +/* 00F64C 7000EA4C 3C0CA450 */ lui $t4, %hi(AI_CONTROL_REG) # $t4, 0xa450 +/* 00F650 7000EA50 AD8B0008 */ sw $t3, %lo(AI_CONTROL_REG)($t4) +/* 00F654 7000EA54 3C0D8003 */ lui $t5, %hi(osViClock) #osViClock +/* 00F658 7000EA58 8DAD804C */ lw $t5, %lo(osViClock)($t5) #osViClock +/* 00F65C 7000EA5C 01A5001A */ div $zero, $t5, $a1 +/* 00F660 7000EA60 00001012 */ mflo $v0 +/* 00F664 7000EA64 14A00002 */ bnez $a1, .L7000EA70 +/* 00F668 7000EA68 00000000 */ nop +/* 00F66C 7000EA6C 0007000D */ break 7 +.L7000EA70: +/* 00F670 7000EA70 2401FFFF */ li $at, -1 +/* 00F674 7000EA74 14A10004 */ bne $a1, $at, .L7000EA88 +/* 00F678 7000EA78 3C018000 */ lui $at, 0x8000 +/* 00F67C 7000EA7C 15A10002 */ bne $t5, $at, .L7000EA88 +/* 00F680 7000EA80 00000000 */ nop +/* 00F684 7000EA84 0006000D */ break 6 +.L7000EA88: +/* 00F688 7000EA88 03E00008 */ jr $ra +/* 00F68C 7000EA8C 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/aisetnextbuf.s b/src/libultra/aisetnextbuf.s new file mode 100644 index 0000000..53492e4 --- /dev/null +++ b/src/libultra/aisetnextbuf.s @@ -0,0 +1,63 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osAiSetNextBuffer +/* 00FB00 7000EF00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00FB04 7000EF04 3C0F8002 */ lui $t7, %hi(B_800276F0) +/* 00FB08 7000EF08 91EF76F0 */ lbu $t7, %lo(B_800276F0)($t7) +/* 00FB0C 7000EF0C AFA40020 */ sw $a0, 0x20($sp) +/* 00FB10 7000EF10 8FAE0020 */ lw $t6, 0x20($sp) +/* 00FB14 7000EF14 AFBF0014 */ sw $ra, 0x14($sp) +/* 00FB18 7000EF18 AFA50024 */ sw $a1, 0x24($sp) +/* 00FB1C 7000EF1C 11E00003 */ beqz $t7, .L7000EF2C +/* 00FB20 7000EF20 AFAE001C */ sw $t6, 0x1c($sp) +/* 00FB24 7000EF24 25D8E000 */ addiu $t8, $t6, -0x2000 +/* 00FB28 7000EF28 AFB8001C */ sw $t8, 0x1c($sp) +.L7000EF2C: +/* 00FB2C 7000EF2C 8FB90020 */ lw $t9, 0x20($sp) +/* 00FB30 7000EF30 8FA80024 */ lw $t0, 0x24($sp) +/* 00FB34 7000EF34 24012000 */ li $at, 8192 +/* 00FB38 7000EF38 03284821 */ addu $t1, $t9, $t0 +/* 00FB3C 7000EF3C 312A3FFF */ andi $t2, $t1, 0x3fff +/* 00FB40 7000EF40 15410005 */ bne $t2, $at, .L7000EF58 +/* 00FB44 7000EF44 00000000 */ nop +/* 00FB48 7000EF48 240B0001 */ li $t3, 1 +/* 00FB4C 7000EF4C 3C018002 */ lui $at, %hi(B_800276F0) +/* 00FB50 7000EF50 10000003 */ b .L7000EF60 +/* 00FB54 7000EF54 A02B76F0 */ sb $t3, %lo(B_800276F0)($at) +.L7000EF58: +/* 00FB58 7000EF58 3C018002 */ lui $at, %hi(B_800276F0) +/* 00FB5C 7000EF5C A02076F0 */ sb $zero, %lo(B_800276F0)($at) +.L7000EF60: +/* 00FB60 7000EF60 0C00643C */ jal __osAiDeviceBusy +/* 00FB64 7000EF64 00000000 */ nop +/* 00FB68 7000EF68 10400003 */ beqz $v0, .L7000EF78 +/* 00FB6C 7000EF6C 00000000 */ nop +/* 00FB70 7000EF70 10000009 */ b .L7000EF98 +/* 00FB74 7000EF74 2402FFFF */ li $v0, -1 +.L7000EF78: +/* 00FB78 7000EF78 0C003A2C */ jal osVirtualToPhysical +/* 00FB7C 7000EF7C 8FA4001C */ lw $a0, 0x1c($sp) +/* 00FB80 7000EF80 3C0CA450 */ lui $t4, 0xa450 +/* 00FB84 7000EF84 AD820000 */ sw $v0, ($t4) +/* 00FB88 7000EF88 8FAD0024 */ lw $t5, 0x24($sp) +/* 00FB8C 7000EF8C 3C0FA450 */ lui $t7, %hi(AI_LEN_REG) # $t7, 0xa450 +/* 00FB90 7000EF90 00001025 */ move $v0, $zero +/* 00FB94 7000EF94 ADED0004 */ sw $t5, %lo(AI_LEN_REG)($t7) +.L7000EF98: +/* 00FB98 7000EF98 8FBF0014 */ lw $ra, 0x14($sp) +/* 00FB9C 7000EF9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00FBA0 7000EFA0 03E00008 */ jr $ra +/* 00FBA4 7000EFA4 00000000 */ nop + +/* 00FBA8 7000EFA8 00000000 */ nop +/* 00FBAC 7000EFAC 00000000 */ nop +.section .data +glabel B_800276F0 +.byte 0 diff --git a/src/libultra/align.s b/src/libultra/align.s new file mode 100644 index 0000000..a77500f --- /dev/null +++ b/src/libultra/align.s @@ -0,0 +1,159 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guAlignF +/* 017460 70016860 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 017464 70016864 3C018003 */ lui $at, %hi(F32_800297F0) +/* 017468 70016868 C42497F0 */ lwc1 $f4, %lo(F32_800297F0)($at) +/* 01746C 7001686C AFB00018 */ sw $s0, 0x18($sp) +/* 017470 70016870 00808025 */ move $s0, $a0 +/* 017474 70016874 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DD0) +/* 017478 70016878 AFBF001C */ sw $ra, 0x1c($sp) +/* 01747C 7001687C AFA50034 */ sw $a1, 0x34($sp) +/* 017480 70016880 AFA60038 */ sw $a2, 0x38($sp) +/* 017484 70016884 AFA7003C */ sw $a3, 0x3c($sp) +/* 017488 70016888 27A60040 */ addiu $a2, $sp, 0x40 +/* 01748C 7001688C 27A5003C */ addiu $a1, $sp, 0x3c +/* 017490 70016890 27A40038 */ addiu $a0, $sp, 0x38 +/* 017494 70016894 0C007DD4 */ jal guNormalize +/* 017498 70016898 E4247DD0 */ swc1 $f4, %lo(flt_CODE_bss_80067DD0)($at) +/* 01749C 7001689C 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DD0) +/* 0174A0 700168A0 C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0174A4 700168A4 C4267DD0 */ lwc1 $f6, %lo(flt_CODE_bss_80067DD0)($at) +/* 0174A8 700168A8 46066302 */ mul.s $f12, $f12, $f6 +/* 0174AC 700168AC 0FC15FAB */ jal sinf +/* 0174B0 700168B0 E7AC0034 */ swc1 $f12, 0x34($sp) +/* 0174B4 700168B4 C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0174B8 700168B8 0FC15FA8 */ jal cosf +/* 0174BC 700168BC E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0174C0 700168C0 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0174C4 700168C4 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0174C8 700168C8 E7A00028 */ swc1 $f0, 0x28($sp) +/* 0174CC 700168CC 460E7202 */ mul.s $f8, $f14, $f14 +/* 0174D0 700168D0 00000000 */ nop +/* 0174D4 700168D4 46129282 */ mul.s $f10, $f18, $f18 +/* 0174D8 700168D8 0C007DF8 */ jal sqrtf +/* 0174DC 700168DC 460A4300 */ add.s $f12, $f8, $f10 +/* 0174E0 700168E0 02002025 */ move $a0, $s0 +/* 0174E4 700168E4 0C004004 */ jal guMtxIdentF +/* 0174E8 700168E8 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0174EC 700168EC 44806000 */ mtc1 $zero, $f12 +/* 0174F0 700168F0 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0174F4 700168F4 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 0174F8 700168F8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0174FC 700168FC 460C7032 */ c.eq.s $f14, $f12 +/* 017500 70016900 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017504 70016904 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 017508 70016908 45030041 */ bc1tl .L70016A10 +/* 01750C 7001690C 8FBF001C */ lw $ra, 0x1c($sp) +/* 017510 70016910 44812000 */ mtc1 $at, $f4 +/* 017514 70016914 46068202 */ mul.s $f8, $f16, $f6 +/* 017518 70016918 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 01751C 7001691C C7A60040 */ lwc1 $f6, 0x40($sp) +/* 017520 70016920 460E2003 */ div.s $f0, $f4, $f14 +/* 017524 70016924 460A4102 */ mul.s $f4, $f8, $f10 +/* 017528 70016928 46003207 */ neg.s $f8, $f6 +/* 01752C 7001692C 46024282 */ mul.s $f10, $f8, $f2 +/* 017530 70016930 46045181 */ sub.s $f6, $f10, $f4 +/* 017534 70016934 46003202 */ mul.s $f8, $f6, $f0 +/* 017538 70016938 E6080000 */ swc1 $f8, ($s0) +/* 01753C 7001693C C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 017540 70016940 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 017544 70016944 460A1102 */ mul.s $f4, $f2, $f10 +/* 017548 70016948 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 01754C 7001694C 46062202 */ mul.s $f8, $f4, $f6 +/* 017550 70016950 00000000 */ nop +/* 017554 70016954 46105102 */ mul.s $f4, $f10, $f16 +/* 017558 70016958 46082181 */ sub.s $f6, $f4, $f8 +/* 01755C 7001695C 46003282 */ mul.s $f10, $f6, $f0 +/* 017560 70016960 E60A0010 */ swc1 $f10, 0x10($s0) +/* 017564 70016964 460E8182 */ mul.s $f6, $f16, $f14 +/* 017568 70016968 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 01756C 7001696C E60C0030 */ swc1 $f12, 0x30($s0) +/* 017570 70016970 460E1282 */ mul.s $f10, $f2, $f14 +/* 017574 70016974 46002207 */ neg.s $f8, $f4 +/* 017578 70016978 E6080020 */ swc1 $f8, 0x20($s0) +/* 01757C 7001697C E6060004 */ swc1 $f6, 4($s0) +/* 017580 70016980 E60A0014 */ swc1 $f10, 0x14($s0) +/* 017584 70016984 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 017588 70016988 E60C0034 */ swc1 $f12, 0x34($s0) +/* 01758C 7001698C 46002207 */ neg.s $f8, $f4 +/* 017590 70016990 E6080024 */ swc1 $f8, 0x24($s0) +/* 017594 70016994 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 017598 70016998 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 01759C 7001699C 46068282 */ mul.s $f10, $f16, $f6 +/* 0175A0 700169A0 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0175A4 700169A4 46045202 */ mul.s $f8, $f10, $f4 +/* 0175A8 700169A8 00000000 */ nop +/* 0175AC 700169AC 46061282 */ mul.s $f10, $f2, $f6 +/* 0175B0 700169B0 46085101 */ sub.s $f4, $f10, $f8 +/* 0175B4 700169B4 46008287 */ neg.s $f10, $f16 +/* 0175B8 700169B8 46002182 */ mul.s $f6, $f4, $f0 +/* 0175BC 700169BC E6060008 */ swc1 $f6, 8($s0) +/* 0175C0 700169C0 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0175C4 700169C4 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0175C8 700169C8 46085102 */ mul.s $f4, $f10, $f8 +/* 0175CC 700169CC C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0175D0 700169D0 46061282 */ mul.s $f10, $f2, $f6 +/* 0175D4 700169D4 00000000 */ nop +/* 0175D8 700169D8 46085182 */ mul.s $f6, $f10, $f8 +/* 0175DC 700169DC 46062281 */ sub.s $f10, $f4, $f6 +/* 0175E0 700169E0 46005202 */ mul.s $f8, $f10, $f0 +/* 0175E4 700169E4 44815000 */ mtc1 $at, $f10 +/* 0175E8 700169E8 E6080018 */ swc1 $f8, 0x18($s0) +/* 0175EC 700169EC C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0175F0 700169F0 E60C0038 */ swc1 $f12, 0x38($s0) +/* 0175F4 700169F4 E60C000C */ swc1 $f12, 0xc($s0) +/* 0175F8 700169F8 46002187 */ neg.s $f6, $f4 +/* 0175FC 700169FC E60C001C */ swc1 $f12, 0x1c($s0) +/* 017600 70016A00 E6060028 */ swc1 $f6, 0x28($s0) +/* 017604 70016A04 E60C002C */ swc1 $f12, 0x2c($s0) +/* 017608 70016A08 E60A003C */ swc1 $f10, 0x3c($s0) +/* 01760C 70016A0C 8FBF001C */ lw $ra, 0x1c($sp) +.L70016A10: +/* 017610 70016A10 8FB00018 */ lw $s0, 0x18($sp) +/* 017614 70016A14 27BD0030 */ addiu $sp, $sp, 0x30 +/* 017618 70016A18 03E00008 */ jr $ra +/* 01761C 70016A1C 00000000 */ nop + +glabel guAlign +/* 017620 70016A20 44856000 */ mtc1 $a1, $f12 +/* 017624 70016A24 44867000 */ mtc1 $a2, $f14 +/* 017628 70016A28 44878000 */ mtc1 $a3, $f16 +/* 01762C 70016A2C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 017630 70016A30 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 017634 70016A34 AFBF001C */ sw $ra, 0x1c($sp) +/* 017638 70016A38 AFA40060 */ sw $a0, 0x60($sp) +/* 01763C 70016A3C 44056000 */ mfc1 $a1, $f12 +/* 017640 70016A40 44067000 */ mfc1 $a2, $f14 +/* 017644 70016A44 44078000 */ mfc1 $a3, $f16 +/* 017648 70016A48 27A40020 */ addiu $a0, $sp, 0x20 +/* 01764C 70016A4C 0C005A18 */ jal guAlignF +/* 017650 70016A50 E7A40010 */ swc1 $f4, 0x10($sp) +/* 017654 70016A54 27A40020 */ addiu $a0, $sp, 0x20 +/* 017658 70016A58 0C003FC4 */ jal guMtxF2L +/* 01765C 70016A5C 8FA50060 */ lw $a1, 0x60($sp) +/* 017660 70016A60 8FBF001C */ lw $ra, 0x1c($sp) +/* 017664 70016A64 27BD0060 */ addiu $sp, $sp, 0x60 +/* 017668 70016A68 03E00008 */ jr $ra +/* 01766C 70016A6C 00000000 */ nop + +.section .rodata +glabel F32_800297F0 +.float 0.017453292 +.align 4 + +.section .bss +glabel flt_CODE_bss_80067DD0 +.word 0 +.word 0,0,0 diff --git a/src/libultra/auxbus.s b/src/libultra/auxbus.s new file mode 100644 index 0000000..a64b1e7 --- /dev/null +++ b/src/libultra/auxbus.s @@ -0,0 +1,86 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alAuxBusParam +/* 01C0E0 7001B4E0 24010002 */ li $at, 2 +/* 01C0E4 7001B4E4 14A10008 */ bne $a1, $at, .L7001B508 +/* 01C0E8 7001B4E8 8C82001C */ lw $v0, 0x1c($a0) +/* 01C0EC 7001B4EC 8C8E0014 */ lw $t6, 0x14($a0) +/* 01C0F0 7001B4F0 000E7880 */ sll $t7, $t6, 2 +/* 01C0F4 7001B4F4 004FC021 */ addu $t8, $v0, $t7 +/* 01C0F8 7001B4F8 AF060000 */ sw $a2, ($t8) +/* 01C0FC 7001B4FC 8C990014 */ lw $t9, 0x14($a0) +/* 01C100 7001B500 27280001 */ addiu $t0, $t9, 1 +/* 01C104 7001B504 AC880014 */ sw $t0, 0x14($a0) +.L7001B508: +/* 01C108 7001B508 03E00008 */ jr $ra +/* 01C10C 7001B50C 00001025 */ move $v0, $zero + +glabel alAuxBusPull +/* 01C110 7001B510 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01C114 7001B514 8FA80050 */ lw $t0, 0x50($sp) +/* 01C118 7001B518 AFBF003C */ sw $ra, 0x3c($sp) +/* 01C11C 7001B51C AFB60038 */ sw $s6, 0x38($sp) +/* 01C120 7001B520 AFB50034 */ sw $s5, 0x34($sp) +/* 01C124 7001B524 AFB40030 */ sw $s4, 0x30($sp) +/* 01C128 7001B528 AFB3002C */ sw $s3, 0x2c($sp) +/* 01C12C 7001B52C AFB20028 */ sw $s2, 0x28($sp) +/* 01C130 7001B530 AFB10024 */ sw $s1, 0x24($sp) +/* 01C134 7001B534 AFB00020 */ sw $s0, 0x20($sp) +/* 01C138 7001B538 8C83001C */ lw $v1, 0x1c($a0) +/* 01C13C 7001B53C 3C0E0200 */ lui $t6, (0x020006C0 >> 16) # lui $t6, 0x200 +/* 01C140 7001B540 00061040 */ sll $v0, $a2, 1 +/* 01C144 7001B544 3C0F0200 */ lui $t7, (0x02000800 >> 16) # lui $t7, 0x200 +/* 01C148 7001B548 35CE06C0 */ ori $t6, (0x020006C0 & 0xFFFF) # ori $t6, $t6, 0x6c0 +/* 01C14C 7001B54C 35EF0800 */ ori $t7, (0x02000800 & 0xFFFF) # ori $t7, $t7, 0x800 +/* 01C150 7001B550 AD0E0000 */ sw $t6, ($t0) +/* 01C154 7001B554 AD020004 */ sw $v0, 4($t0) +/* 01C158 7001B558 AD0F0008 */ sw $t7, 8($t0) +/* 01C15C 7001B55C AD02000C */ sw $v0, 0xc($t0) +/* 01C160 7001B560 8C980014 */ lw $t8, 0x14($a0) +/* 01C164 7001B564 00C0A025 */ move $s4, $a2 +/* 01C168 7001B568 00A0A825 */ move $s5, $a1 +/* 01C16C 7001B56C 00E0B025 */ move $s6, $a3 +/* 01C170 7001B570 00809825 */ move $s3, $a0 +/* 01C174 7001B574 00008025 */ move $s0, $zero +/* 01C178 7001B578 1B000010 */ blez $t8, .L7001B5BC +/* 01C17C 7001B57C 25120010 */ addiu $s2, $t0, 0x10 +/* 01C180 7001B580 00608825 */ move $s1, $v1 +.L7001B584: +/* 01C184 7001B584 8E240000 */ lw $a0, ($s1) +/* 01C188 7001B588 AFB20010 */ sw $s2, 0x10($sp) +/* 01C18C 7001B58C 02A02825 */ move $a1, $s5 +/* 01C190 7001B590 8C990004 */ lw $t9, 4($a0) +/* 01C194 7001B594 02803025 */ move $a2, $s4 +/* 01C198 7001B598 02C03825 */ move $a3, $s6 +/* 01C19C 7001B59C 0320F809 */ jalr $t9 +/* 01C1A0 7001B5A0 00000000 */ nop +/* 01C1A4 7001B5A4 8E690014 */ lw $t1, 0x14($s3) +/* 01C1A8 7001B5A8 26100001 */ addiu $s0, $s0, 1 +/* 01C1AC 7001B5AC 26310004 */ addiu $s1, $s1, 4 +/* 01C1B0 7001B5B0 0209082A */ slt $at, $s0, $t1 +/* 01C1B4 7001B5B4 1420FFF3 */ bnez $at, .L7001B584 +/* 01C1B8 7001B5B8 00409025 */ move $s2, $v0 +.L7001B5BC: +/* 01C1BC 7001B5BC 8FBF003C */ lw $ra, 0x3c($sp) +/* 01C1C0 7001B5C0 02401025 */ move $v0, $s2 +/* 01C1C4 7001B5C4 8FB20028 */ lw $s2, 0x28($sp) +/* 01C1C8 7001B5C8 8FB00020 */ lw $s0, 0x20($sp) +/* 01C1CC 7001B5CC 8FB10024 */ lw $s1, 0x24($sp) +/* 01C1D0 7001B5D0 8FB3002C */ lw $s3, 0x2c($sp) +/* 01C1D4 7001B5D4 8FB40030 */ lw $s4, 0x30($sp) +/* 01C1D8 7001B5D8 8FB50034 */ lw $s5, 0x34($sp) +/* 01C1DC 7001B5DC 8FB60038 */ lw $s6, 0x38($sp) +/* 01C1E0 7001B5E0 03E00008 */ jr $ra +/* 01C1E4 7001B5E4 27BD0040 */ addiu $sp, $sp, 0x40 + diff --git a/src/libultra/bcmp.s b/src/libultra/bcmp.s new file mode 100644 index 0000000..48c9cf5 --- /dev/null +++ b/src/libultra/bcmp.s @@ -0,0 +1,97 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _bcmp +/* 017970 70016D70 28C10010 */ slti $at, $a2, 0x10 +/* 017974 70016D74 14200037 */ bnez $at, .L70016E54 +/* 017978 70016D78 00851026 */ xor $v0, $a0, $a1 +/* 01797C 70016D7C 30420003 */ andi $v0, $v0, 3 +/* 017980 70016D80 14400019 */ bnez $v0, .L70016DE8 +/* 017984 70016D84 0004C023 */ negu $t8, $a0 +/* 017988 70016D88 33180003 */ andi $t8, $t8, 3 +/* 01798C 70016D8C 13000007 */ beqz $t8, .L70016DAC +/* 017990 70016D90 00D83023 */ subu $a2, $a2, $t8 +/* 017994 70016D94 00601025 */ move $v0, $v1 +/* 017998 70016D98 88820000 */ lwl $v0, ($a0) +/* 01799C 70016D9C 88A30000 */ lwl $v1, ($a1) +/* 0179A0 70016DA0 00982021 */ addu $a0, $a0, $t8 +/* 0179A4 70016DA4 00B82821 */ addu $a1, $a1, $t8 +/* 0179A8 70016DA8 14430036 */ bne $v0, $v1, .L70016E84 +.L70016DAC: +/* 0179AC 70016DAC 2401FFFC */ li $at, -4 +/* 0179B0 70016DB0 00C13824 */ and $a3, $a2, $at +/* 0179B4 70016DB4 10E00027 */ beqz $a3, .L70016E54 +/* 0179B8 70016DB8 00C73023 */ subu $a2, $a2, $a3 +/* 0179BC 70016DBC 00E43821 */ addu $a3, $a3, $a0 +/* 0179C0 70016DC0 8C820000 */ lw $v0, ($a0) +.L70016DC4: +/* 0179C4 70016DC4 8CA30000 */ lw $v1, ($a1) +/* 0179C8 70016DC8 24840004 */ addiu $a0, $a0, 4 +/* 0179CC 70016DCC 24A50004 */ addiu $a1, $a1, 4 +/* 0179D0 70016DD0 1443002C */ bne $v0, $v1, .L70016E84 +/* 0179D4 70016DD4 00000000 */ nop +/* 0179D8 70016DD8 5487FFFA */ bnel $a0, $a3, .L70016DC4 +/* 0179DC 70016DDC 8C820000 */ lw $v0, ($a0) +/* 0179E0 70016DE0 1000001C */ b .L70016E54 +/* 0179E4 70016DE4 00000000 */ nop +.L70016DE8: +/* 0179E8 70016DE8 00053823 */ negu $a3, $a1 +/* 0179EC 70016DEC 30E70003 */ andi $a3, $a3, 3 +/* 0179F0 70016DF0 10E0000A */ beqz $a3, .L70016E1C +/* 0179F4 70016DF4 00C73023 */ subu $a2, $a2, $a3 +/* 0179F8 70016DF8 00E43821 */ addu $a3, $a3, $a0 +/* 0179FC 70016DFC 90820000 */ lbu $v0, ($a0) +.L70016E00: +/* 017A00 70016E00 90A30000 */ lbu $v1, ($a1) +/* 017A04 70016E04 24840001 */ addiu $a0, $a0, 1 +/* 017A08 70016E08 24A50001 */ addiu $a1, $a1, 1 +/* 017A0C 70016E0C 1443001D */ bne $v0, $v1, .L70016E84 +/* 017A10 70016E10 00000000 */ nop +/* 017A14 70016E14 5487FFFA */ bnel $a0, $a3, .L70016E00 +/* 017A18 70016E18 90820000 */ lbu $v0, ($a0) +.L70016E1C: +/* 017A1C 70016E1C 2401FFFC */ li $at, -4 +/* 017A20 70016E20 00C13824 */ and $a3, $a2, $at +/* 017A24 70016E24 10E0000B */ beqz $a3, .L70016E54 +/* 017A28 70016E28 00C73023 */ subu $a2, $a2, $a3 +/* 017A2C 70016E2C 00E43821 */ addu $a3, $a3, $a0 +/* 017A30 70016E30 88820000 */ lwl $v0, ($a0) +.L70016E34: +/* 017A34 70016E34 8CA30000 */ lw $v1, ($a1) +/* 017A38 70016E38 98820003 */ lwr $v0, 3($a0) +/* 017A3C 70016E3C 24840004 */ addiu $a0, $a0, 4 +/* 017A40 70016E40 24A50004 */ addiu $a1, $a1, 4 +/* 017A44 70016E44 1443000F */ bne $v0, $v1, .L70016E84 +/* 017A48 70016E48 00000000 */ nop +/* 017A4C 70016E4C 5487FFF9 */ bnel $a0, $a3, .L70016E34 +/* 017A50 70016E50 88820000 */ lwl $v0, ($a0) +.L70016E54: +/* 017A54 70016E54 18C00009 */ blez $a2, .L70016E7C +/* 017A58 70016E58 00C43821 */ addu $a3, $a2, $a0 +/* 017A5C 70016E5C 90820000 */ lbu $v0, ($a0) +.L70016E60: +/* 017A60 70016E60 90A30000 */ lbu $v1, ($a1) +/* 017A64 70016E64 24840001 */ addiu $a0, $a0, 1 +/* 017A68 70016E68 24A50001 */ addiu $a1, $a1, 1 +/* 017A6C 70016E6C 14430005 */ bne $v0, $v1, .L70016E84 +/* 017A70 70016E70 00000000 */ nop +/* 017A74 70016E74 5487FFFA */ bnel $a0, $a3, .L70016E60 +/* 017A78 70016E78 90820000 */ lbu $v0, ($a0) +.L70016E7C: +/* 017A7C 70016E7C 03E00008 */ jr $ra +/* 017A80 70016E80 00001025 */ move $v0, $zero + +.L70016E84: +/* 017A84 70016E84 03E00008 */ jr $ra +/* 017A88 70016E88 24020001 */ li $v0, 1 + diff --git a/src/libultra/bcopy.s b/src/libultra/bcopy.s new file mode 100644 index 0000000..98246dd --- /dev/null +++ b/src/libultra/bcopy.s @@ -0,0 +1,229 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel bcopy +/* 010570 7000F970 10C0001A */ beqz $a2, .L7000F9DC +/* 010574 7000F974 00A03825 */ move $a3, $a1 +/* 010578 7000F978 10850018 */ beq $a0, $a1, .L7000F9DC +/* 01057C 7000F97C 00A4082A */ slt $at, $a1, $a0 +/* 010580 7000F980 54200008 */ bnezl $at, .L7000F9A4 +/* 010584 7000F984 28C10010 */ slti $at, $a2, 0x10 +/* 010588 7000F988 00861020 */ add $v0, $a0, $a2 +/* 01058C 7000F98C 00A2082A */ slt $at, $a1, $v0 +/* 010590 7000F990 50200004 */ beql $at, $zero, .L7000F9A4 +/* 010594 7000F994 28C10010 */ slti $at, $a2, 0x10 +/* 010598 7000F998 1000005B */ b .L7000FB08 +/* 01059C 7000F99C 28C10010 */ slti $at, $a2, 0x10 +/* 0105A0 7000F9A0 28C10010 */ slti $at, $a2, 0x10 +.L7000F9A4: +/* 0105A4 7000F9A4 14200005 */ bnez $at, .L7000F9BC +/* 0105A8 7000F9A8 00000000 */ nop +/* 0105AC 7000F9AC 30820003 */ andi $v0, $a0, 3 +/* 0105B0 7000F9B0 30A30003 */ andi $v1, $a1, 3 +/* 0105B4 7000F9B4 1043000B */ beq $v0, $v1, .L7000F9E4 +/* 0105B8 7000F9B8 00000000 */ nop +.L7000F9BC: +/* 0105BC 7000F9BC 10C00007 */ beqz $a2, .L7000F9DC +/* 0105C0 7000F9C0 00000000 */ nop +/* 0105C4 7000F9C4 00861821 */ addu $v1, $a0, $a2 +.L7000F9C8: +/* 0105C8 7000F9C8 80820000 */ lb $v0, ($a0) +/* 0105CC 7000F9CC 24840001 */ addiu $a0, $a0, 1 +/* 0105D0 7000F9D0 24A50001 */ addiu $a1, $a1, 1 +/* 0105D4 7000F9D4 1483FFFC */ bne $a0, $v1, .L7000F9C8 +/* 0105D8 7000F9D8 A0A2FFFF */ sb $v0, -1($a1) +.L7000F9DC: +/* 0105DC 7000F9DC 03E00008 */ jr $ra +/* 0105E0 7000F9E0 00E01025 */ move $v0, $a3 + +.L7000F9E4: +/* 0105E4 7000F9E4 10400018 */ beqz $v0, .L7000FA48 +/* 0105E8 7000F9E8 24010001 */ li $at, 1 +/* 0105EC 7000F9EC 1041000F */ beq $v0, $at, .L7000FA2C +/* 0105F0 7000F9F0 24010002 */ li $at, 2 +/* 0105F4 7000F9F4 50410008 */ beql $v0, $at, .L7000FA18 +/* 0105F8 7000F9F8 84820000 */ lh $v0, ($a0) +/* 0105FC 7000F9FC 80820000 */ lb $v0, ($a0) +/* 010600 7000FA00 24840001 */ addiu $a0, $a0, 1 +/* 010604 7000FA04 24A50001 */ addiu $a1, $a1, 1 +/* 010608 7000FA08 24C6FFFF */ addiu $a2, $a2, -1 +/* 01060C 7000FA0C 1000000E */ b .L7000FA48 +/* 010610 7000FA10 A0A2FFFF */ sb $v0, -1($a1) +/* 010614 7000FA14 84820000 */ lh $v0, ($a0) +.L7000FA18: +/* 010618 7000FA18 24840002 */ addiu $a0, $a0, 2 +/* 01061C 7000FA1C 24A50002 */ addiu $a1, $a1, 2 +/* 010620 7000FA20 24C6FFFE */ addiu $a2, $a2, -2 +/* 010624 7000FA24 10000008 */ b .L7000FA48 +/* 010628 7000FA28 A4A2FFFE */ sh $v0, -2($a1) +.L7000FA2C: +/* 01062C 7000FA2C 80820000 */ lb $v0, ($a0) +/* 010630 7000FA30 84830001 */ lh $v1, 1($a0) +/* 010634 7000FA34 24840003 */ addiu $a0, $a0, 3 +/* 010638 7000FA38 24A50003 */ addiu $a1, $a1, 3 +/* 01063C 7000FA3C 24C6FFFD */ addiu $a2, $a2, -3 +/* 010640 7000FA40 A0A2FFFD */ sb $v0, -3($a1) +/* 010644 7000FA44 A4A3FFFE */ sh $v1, -2($a1) +.L7000FA48: +/* 010648 7000FA48 28C10020 */ slti $at, $a2, 0x20 +/* 01064C 7000FA4C 54200016 */ bnezl $at, .L7000FAA8 +/* 010650 7000FA50 28C10010 */ slti $at, $a2, 0x10 +/* 010654 7000FA54 8C820000 */ lw $v0, ($a0) +/* 010658 7000FA58 8C830004 */ lw $v1, 4($a0) +/* 01065C 7000FA5C 8C880008 */ lw $t0, 8($a0) +/* 010660 7000FA60 8C89000C */ lw $t1, 0xc($a0) +/* 010664 7000FA64 8C8A0010 */ lw $t2, 0x10($a0) +/* 010668 7000FA68 8C8B0014 */ lw $t3, 0x14($a0) +/* 01066C 7000FA6C 8C8C0018 */ lw $t4, 0x18($a0) +/* 010670 7000FA70 8C8D001C */ lw $t5, 0x1c($a0) +/* 010674 7000FA74 24840020 */ addiu $a0, $a0, 0x20 +/* 010678 7000FA78 24A50020 */ addiu $a1, $a1, 0x20 +/* 01067C 7000FA7C 24C6FFE0 */ addiu $a2, $a2, -0x20 +/* 010680 7000FA80 ACA2FFE0 */ sw $v0, -0x20($a1) +/* 010684 7000FA84 ACA3FFE4 */ sw $v1, -0x1c($a1) +/* 010688 7000FA88 ACA8FFE8 */ sw $t0, -0x18($a1) +/* 01068C 7000FA8C ACA9FFEC */ sw $t1, -0x14($a1) +/* 010690 7000FA90 ACAAFFF0 */ sw $t2, -0x10($a1) +/* 010694 7000FA94 ACABFFF4 */ sw $t3, -0xc($a1) +/* 010698 7000FA98 ACACFFF8 */ sw $t4, -8($a1) +/* 01069C 7000FA9C 1000FFEA */ b .L7000FA48 +/* 0106A0 7000FAA0 ACADFFFC */ sw $t5, -4($a1) +.L7000FAA4: +/* 0106A4 7000FAA4 28C10010 */ slti $at, $a2, 0x10 +.L7000FAA8: +/* 0106A8 7000FAA8 5420000E */ bnezl $at, .L7000FAE4 +/* 0106AC 7000FAAC 28C10004 */ slti $at, $a2, 4 +/* 0106B0 7000FAB0 8C820000 */ lw $v0, ($a0) +/* 0106B4 7000FAB4 8C830004 */ lw $v1, 4($a0) +/* 0106B8 7000FAB8 8C880008 */ lw $t0, 8($a0) +/* 0106BC 7000FABC 8C89000C */ lw $t1, 0xc($a0) +/* 0106C0 7000FAC0 24840010 */ addiu $a0, $a0, 0x10 +/* 0106C4 7000FAC4 24A50010 */ addiu $a1, $a1, 0x10 +/* 0106C8 7000FAC8 24C6FFF0 */ addiu $a2, $a2, -0x10 +/* 0106CC 7000FACC ACA2FFF0 */ sw $v0, -0x10($a1) +/* 0106D0 7000FAD0 ACA3FFF4 */ sw $v1, -0xc($a1) +/* 0106D4 7000FAD4 ACA8FFF8 */ sw $t0, -8($a1) +/* 0106D8 7000FAD8 1000FFF2 */ b .L7000FAA4 +/* 0106DC 7000FADC ACA9FFFC */ sw $t1, -4($a1) +.L7000FAE0: +/* 0106E0 7000FAE0 28C10004 */ slti $at, $a2, 4 +.L7000FAE4: +/* 0106E4 7000FAE4 1420FFB5 */ bnez $at, .L7000F9BC +/* 0106E8 7000FAE8 00000000 */ nop +/* 0106EC 7000FAEC 8C820000 */ lw $v0, ($a0) +/* 0106F0 7000FAF0 24840004 */ addiu $a0, $a0, 4 +/* 0106F4 7000FAF4 24A50004 */ addiu $a1, $a1, 4 +/* 0106F8 7000FAF8 24C6FFFC */ addiu $a2, $a2, -4 +/* 0106FC 7000FAFC 1000FFF8 */ b .L7000FAE0 +/* 010700 7000FB00 ACA2FFFC */ sw $v0, -4($a1) +/* 010704 7000FB04 28C10010 */ slti $at, $a2, 0x10 +.L7000FB08: +/* 010708 7000FB08 00862020 */ add $a0, $a0, $a2 +/* 01070C 7000FB0C 14200005 */ bnez $at, .L7000FB24 +/* 010710 7000FB10 00A62820 */ add $a1, $a1, $a2 +/* 010714 7000FB14 30820003 */ andi $v0, $a0, 3 +/* 010718 7000FB18 30A30003 */ andi $v1, $a1, 3 +/* 01071C 7000FB1C 1043000D */ beq $v0, $v1, .L7000FB54 +/* 010720 7000FB20 00000000 */ nop +.L7000FB24: +/* 010724 7000FB24 10C0FFAD */ beqz $a2, .L7000F9DC +/* 010728 7000FB28 00000000 */ nop +/* 01072C 7000FB2C 2484FFFF */ addiu $a0, $a0, -1 +/* 010730 7000FB30 24A5FFFF */ addiu $a1, $a1, -1 +/* 010734 7000FB34 00861823 */ subu $v1, $a0, $a2 +.L7000FB38: +/* 010738 7000FB38 80820000 */ lb $v0, ($a0) +/* 01073C 7000FB3C 2484FFFF */ addiu $a0, $a0, -1 +/* 010740 7000FB40 24A5FFFF */ addiu $a1, $a1, -1 +/* 010744 7000FB44 1483FFFC */ bne $a0, $v1, .L7000FB38 +/* 010748 7000FB48 A0A20001 */ sb $v0, 1($a1) +/* 01074C 7000FB4C 03E00008 */ jr $ra +/* 010750 7000FB50 00E01025 */ move $v0, $a3 + +.L7000FB54: +/* 010754 7000FB54 10400018 */ beqz $v0, .L7000FBB8 +/* 010758 7000FB58 24010003 */ li $at, 3 +/* 01075C 7000FB5C 1041000F */ beq $v0, $at, .L7000FB9C +/* 010760 7000FB60 24010002 */ li $at, 2 +/* 010764 7000FB64 50410008 */ beql $v0, $at, .L7000FB88 +/* 010768 7000FB68 8482FFFE */ lh $v0, -2($a0) +/* 01076C 7000FB6C 8082FFFF */ lb $v0, -1($a0) +/* 010770 7000FB70 2484FFFF */ addiu $a0, $a0, -1 +/* 010774 7000FB74 24A5FFFF */ addiu $a1, $a1, -1 +/* 010778 7000FB78 24C6FFFF */ addiu $a2, $a2, -1 +/* 01077C 7000FB7C 1000000E */ b .L7000FBB8 +/* 010780 7000FB80 A0A20000 */ sb $v0, ($a1) +/* 010784 7000FB84 8482FFFE */ lh $v0, -2($a0) +.L7000FB88: +/* 010788 7000FB88 2484FFFE */ addiu $a0, $a0, -2 +/* 01078C 7000FB8C 24A5FFFE */ addiu $a1, $a1, -2 +/* 010790 7000FB90 24C6FFFE */ addiu $a2, $a2, -2 +/* 010794 7000FB94 10000008 */ b .L7000FBB8 +/* 010798 7000FB98 A4A20000 */ sh $v0, ($a1) +.L7000FB9C: +/* 01079C 7000FB9C 8082FFFF */ lb $v0, -1($a0) +/* 0107A0 7000FBA0 8483FFFD */ lh $v1, -3($a0) +/* 0107A4 7000FBA4 2484FFFD */ addiu $a0, $a0, -3 +/* 0107A8 7000FBA8 24A5FFFD */ addiu $a1, $a1, -3 +/* 0107AC 7000FBAC 24C6FFFD */ addiu $a2, $a2, -3 +/* 0107B0 7000FBB0 A0A20002 */ sb $v0, 2($a1) +/* 0107B4 7000FBB4 A4A30000 */ sh $v1, ($a1) +.L7000FBB8: +/* 0107B8 7000FBB8 28C10020 */ slti $at, $a2, 0x20 +/* 0107BC 7000FBBC 54200016 */ bnezl $at, .L7000FC18 +/* 0107C0 7000FBC0 28C10010 */ slti $at, $a2, 0x10 +/* 0107C4 7000FBC4 8C82FFFC */ lw $v0, -4($a0) +/* 0107C8 7000FBC8 8C83FFF8 */ lw $v1, -8($a0) +/* 0107CC 7000FBCC 8C88FFF4 */ lw $t0, -0xc($a0) +/* 0107D0 7000FBD0 8C89FFF0 */ lw $t1, -0x10($a0) +/* 0107D4 7000FBD4 8C8AFFEC */ lw $t2, -0x14($a0) +/* 0107D8 7000FBD8 8C8BFFE8 */ lw $t3, -0x18($a0) +/* 0107DC 7000FBDC 8C8CFFE4 */ lw $t4, -0x1c($a0) +/* 0107E0 7000FBE0 8C8DFFE0 */ lw $t5, -0x20($a0) +/* 0107E4 7000FBE4 2484FFE0 */ addiu $a0, $a0, -0x20 +/* 0107E8 7000FBE8 24A5FFE0 */ addiu $a1, $a1, -0x20 +/* 0107EC 7000FBEC 24C6FFE0 */ addiu $a2, $a2, -0x20 +/* 0107F0 7000FBF0 ACA2001C */ sw $v0, 0x1c($a1) +/* 0107F4 7000FBF4 ACA30018 */ sw $v1, 0x18($a1) +/* 0107F8 7000FBF8 ACA80014 */ sw $t0, 0x14($a1) +/* 0107FC 7000FBFC ACA90010 */ sw $t1, 0x10($a1) +/* 010800 7000FC00 ACAA000C */ sw $t2, 0xc($a1) +/* 010804 7000FC04 ACAB0008 */ sw $t3, 8($a1) +/* 010808 7000FC08 ACAC0004 */ sw $t4, 4($a1) +/* 01080C 7000FC0C 1000FFEA */ b .L7000FBB8 +/* 010810 7000FC10 ACAD0000 */ sw $t5, ($a1) +.L7000FC14: +/* 010814 7000FC14 28C10010 */ slti $at, $a2, 0x10 +.L7000FC18: +/* 010818 7000FC18 5420000E */ bnezl $at, .L7000FC54 +/* 01081C 7000FC1C 28C10004 */ slti $at, $a2, 4 +/* 010820 7000FC20 8C82FFFC */ lw $v0, -4($a0) +/* 010824 7000FC24 8C83FFF8 */ lw $v1, -8($a0) +/* 010828 7000FC28 8C88FFF4 */ lw $t0, -0xc($a0) +/* 01082C 7000FC2C 8C89FFF0 */ lw $t1, -0x10($a0) +/* 010830 7000FC30 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 010834 7000FC34 24A5FFF0 */ addiu $a1, $a1, -0x10 +/* 010838 7000FC38 24C6FFF0 */ addiu $a2, $a2, -0x10 +/* 01083C 7000FC3C ACA2000C */ sw $v0, 0xc($a1) +/* 010840 7000FC40 ACA30008 */ sw $v1, 8($a1) +/* 010844 7000FC44 ACA80004 */ sw $t0, 4($a1) +/* 010848 7000FC48 1000FFF2 */ b .L7000FC14 +/* 01084C 7000FC4C ACA90000 */ sw $t1, ($a1) +.L7000FC50: +/* 010850 7000FC50 28C10004 */ slti $at, $a2, 4 +.L7000FC54: +/* 010854 7000FC54 1420FFB3 */ bnez $at, .L7000FB24 +/* 010858 7000FC58 00000000 */ nop +/* 01085C 7000FC5C 8C82FFFC */ lw $v0, -4($a0) +/* 010860 7000FC60 2484FFFC */ addiu $a0, $a0, -4 +/* 010864 7000FC64 24A5FFFC */ addiu $a1, $a1, -4 +/* 010868 7000FC68 24C6FFFC */ addiu $a2, $a2, -4 +/* 01086C 7000FC6C 1000FFF8 */ b .L7000FC50 +/* 010870 7000FC70 ACA20000 */ sw $v0, ($a1) + diff --git a/src/libultra/bnkf.s b/src/libultra/bnkf.s new file mode 100644 index 0000000..73eefc0 --- /dev/null +++ b/src/libultra/bnkf.s @@ -0,0 +1,177 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +/* 011970 70010D70 03E00008 */ jr $ra +/* 011974 70010D74 00000000 */ nop + +/* 011978 70010D78 03E00008 */ jr $ra +/* 01197C 70010D7C 00000000 */ nop + +glabel ultra_70010D80 +/* 011980 70010D80 908E0003 */ lbu $t6, 3($a0) +/* 011984 70010D84 15C00037 */ bnez $t6, .L70010E64 +/* 011988 70010D88 00000000 */ nop +/* 01198C 70010D8C 848F000E */ lh $t7, 0xe($a0) +/* 011990 70010D90 24090001 */ li $t1, 1 +/* 011994 70010D94 A0890003 */ sb $t1, 3($a0) +/* 011998 70010D98 19E00032 */ blez $t7, .L70010E64 +/* 01199C 70010D9C 00001025 */ move $v0, $zero +/* 0119A0 70010DA0 00801825 */ move $v1, $a0 +/* 0119A4 70010DA4 240A0001 */ li $t2, 1 +/* 0119A8 70010DA8 8C780010 */ lw $t8, 0x10($v1) +.L70010DAC: +/* 0119AC 70010DAC 0305C821 */ addu $t9, $t8, $a1 +/* 0119B0 70010DB0 AC790010 */ sw $t9, 0x10($v1) +/* 0119B4 70010DB4 932E000E */ lbu $t6, 0xe($t9) +/* 0119B8 70010DB8 03203025 */ move $a2, $t9 +/* 0119BC 70010DBC 55C00024 */ bnezl $t6, .L70010E50 +/* 0119C0 70010DC0 8498000E */ lh $t8, 0xe($a0) +/* 0119C4 70010DC4 8F2F0000 */ lw $t7, ($t9) +/* 0119C8 70010DC8 A329000E */ sb $t1, 0xe($t9) +/* 0119CC 70010DCC 01E5C021 */ addu $t8, $t7, $a1 +/* 0119D0 70010DD0 AF380000 */ sw $t8, ($t9) +/* 0119D4 70010DD4 8F390004 */ lw $t9, 4($t9) +/* 0119D8 70010DD8 8CCF0008 */ lw $t7, 8($a2) +/* 0119DC 70010DDC 03257021 */ addu $t6, $t9, $a1 +/* 0119E0 70010DE0 01E5C021 */ addu $t8, $t7, $a1 +/* 0119E4 70010DE4 ACCE0004 */ sw $t6, 4($a2) +/* 0119E8 70010DE8 ACD80008 */ sw $t8, 8($a2) +/* 0119EC 70010DEC 93190009 */ lbu $t9, 9($t8) +/* 0119F0 70010DF0 03004025 */ move $t0, $t8 +/* 0119F4 70010DF4 57200016 */ bnezl $t9, .L70010E50 +/* 0119F8 70010DF8 8498000E */ lh $t8, 0xe($a0) +/* 0119FC 70010DFC 8F0E0000 */ lw $t6, ($t8) +/* 011A00 70010E00 93060008 */ lbu $a2, 8($t8) +/* 011A04 70010E04 A3090009 */ sb $t1, 9($t8) +/* 011A08 70010E08 01C77821 */ addu $t7, $t6, $a3 +/* 011A0C 70010E0C 14C00009 */ bnez $a2, .L70010E34 +/* 011A10 70010E10 AF0F0000 */ sw $t7, ($t8) +/* 011A14 70010E14 8F180010 */ lw $t8, 0x10($t8) +/* 011A18 70010E18 8D06000C */ lw $a2, 0xc($t0) +/* 011A1C 70010E1C 0305C821 */ addu $t9, $t8, $a1 +/* 011A20 70010E20 10C0000A */ beqz $a2, .L70010E4C +/* 011A24 70010E24 AD190010 */ sw $t9, 0x10($t0) +/* 011A28 70010E28 00C57021 */ addu $t6, $a2, $a1 +/* 011A2C 70010E2C 10000007 */ b .L70010E4C +/* 011A30 70010E30 AD0E000C */ sw $t6, 0xc($t0) +.L70010E34: +/* 011A34 70010E34 55460006 */ bnel $t2, $a2, .L70010E50 +/* 011A38 70010E38 8498000E */ lh $t8, 0xe($a0) +/* 011A3C 70010E3C 8D06000C */ lw $a2, 0xc($t0) +/* 011A40 70010E40 10C00002 */ beqz $a2, .L70010E4C +/* 011A44 70010E44 00C57821 */ addu $t7, $a2, $a1 +/* 011A48 70010E48 AD0F000C */ sw $t7, 0xc($t0) +.L70010E4C: +/* 011A4C 70010E4C 8498000E */ lh $t8, 0xe($a0) +.L70010E50: +/* 011A50 70010E50 24420001 */ addiu $v0, $v0, 1 +/* 011A54 70010E54 24630004 */ addiu $v1, $v1, 4 +/* 011A58 70010E58 0058082A */ slt $at, $v0, $t8 +/* 011A5C 70010E5C 5420FFD3 */ bnezl $at, .L70010DAC +/* 011A60 70010E60 8C780010 */ lw $t8, 0x10($v1) +.L70010E64: +/* 011A64 70010E64 03E00008 */ jr $ra +/* 011A68 70010E68 00000000 */ nop + +/* 011A6C 70010E6C 03E00008 */ jr $ra +/* 011A70 70010E70 00000000 */ nop + +glabel alBnkfNew +/* 011A74 70010E74 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 011A78 70010E78 AFBF002C */ sw $ra, 0x2c($sp) +/* 011A7C 70010E7C AFB40028 */ sw $s4, 0x28($sp) +/* 011A80 70010E80 AFB30024 */ sw $s3, 0x24($sp) +/* 011A84 70010E84 AFB20020 */ sw $s2, 0x20($sp) +/* 011A88 70010E88 AFB1001C */ sw $s1, 0x1c($sp) +/* 011A8C 70010E8C AFB00018 */ sw $s0, 0x18($sp) +/* 011A90 70010E90 848E0000 */ lh $t6, ($a0) +/* 011A94 70010E94 24014231 */ li $at, 16945 +/* 011A98 70010E98 00808025 */ move $s0, $a0 +/* 011A9C 70010E9C 15C1002E */ bne $t6, $at, .L70010F58 +/* 011AA0 70010EA0 00A08825 */ move $s1, $a1 +/* 011AA4 70010EA4 848F0002 */ lh $t7, 2($a0) +/* 011AA8 70010EA8 00009825 */ move $s3, $zero +/* 011AAC 70010EAC 00809025 */ move $s2, $a0 +/* 011AB0 70010EB0 19E00029 */ blez $t7, .L70010F58 +/* 011AB4 70010EB4 24140001 */ li $s4, 1 +/* 011AB8 70010EB8 8E580004 */ lw $t8, 4($s2) +.L70010EBC: +/* 011ABC 70010EBC 0310C821 */ addu $t9, $t8, $s0 +/* 011AC0 70010EC0 1320001F */ beqz $t9, .L70010F40 +/* 011AC4 70010EC4 AE590004 */ sw $t9, 4($s2) +/* 011AC8 70010EC8 932E0002 */ lbu $t6, 2($t9) +/* 011ACC 70010ECC 03206825 */ move $t5, $t9 +/* 011AD0 70010ED0 55C0001C */ bnezl $t6, .L70010F44 +/* 011AD4 70010ED4 86180002 */ lh $t8, 2($s0) +/* 011AD8 70010ED8 8F220008 */ lw $v0, 8($t9) +/* 011ADC 70010EDC A3340002 */ sb $s4, 2($t9) +/* 011AE0 70010EE0 00006025 */ move $t4, $zero +/* 011AE4 70010EE4 10400005 */ beqz $v0, .L70010EFC +/* 011AE8 70010EE8 00502021 */ addu $a0, $v0, $s0 +/* 011AEC 70010EEC AF240008 */ sw $a0, 8($t9) +/* 011AF0 70010EF0 02002825 */ move $a1, $s0 +/* 011AF4 70010EF4 0C004360 */ jal ultra_70010D80 +/* 011AF8 70010EF8 02203825 */ move $a3, $s1 +.L70010EFC: +/* 011AFC 70010EFC 85B80000 */ lh $t8, ($t5) +/* 011B00 70010F00 01A05825 */ move $t3, $t5 +/* 011B04 70010F04 5B00000F */ blezl $t8, .L70010F44 +/* 011B08 70010F08 86180002 */ lh $t8, 2($s0) +/* 011B0C 70010F0C 8D79000C */ lw $t9, 0xc($t3) +.L70010F10: +/* 011B10 70010F10 02002825 */ move $a1, $s0 +/* 011B14 70010F14 03302021 */ addu $a0, $t9, $s0 +/* 011B18 70010F18 10800003 */ beqz $a0, .L70010F28 +/* 011B1C 70010F1C AD64000C */ sw $a0, 0xc($t3) +/* 011B20 70010F20 0C004360 */ jal ultra_70010D80 +/* 011B24 70010F24 02203825 */ move $a3, $s1 +.L70010F28: +/* 011B28 70010F28 85AF0000 */ lh $t7, ($t5) +/* 011B2C 70010F2C 258C0001 */ addiu $t4, $t4, 1 +/* 011B30 70010F30 256B0004 */ addiu $t3, $t3, 4 +/* 011B34 70010F34 018F082A */ slt $at, $t4, $t7 +/* 011B38 70010F38 5420FFF5 */ bnezl $at, .L70010F10 +/* 011B3C 70010F3C 8D79000C */ lw $t9, 0xc($t3) +.L70010F40: +/* 011B40 70010F40 86180002 */ lh $t8, 2($s0) +.L70010F44: +/* 011B44 70010F44 26730001 */ addiu $s3, $s3, 1 +/* 011B48 70010F48 26520004 */ addiu $s2, $s2, 4 +/* 011B4C 70010F4C 0278082A */ slt $at, $s3, $t8 +/* 011B50 70010F50 5420FFDA */ bnezl $at, .L70010EBC +/* 011B54 70010F54 8E580004 */ lw $t8, 4($s2) +.L70010F58: +/* 011B58 70010F58 8FBF002C */ lw $ra, 0x2c($sp) +/* 011B5C 70010F5C 8FB00018 */ lw $s0, 0x18($sp) +/* 011B60 70010F60 8FB1001C */ lw $s1, 0x1c($sp) +/* 011B64 70010F64 8FB20020 */ lw $s2, 0x20($sp) +/* 011B68 70010F68 8FB30024 */ lw $s3, 0x24($sp) +/* 011B6C 70010F6C 8FB40028 */ lw $s4, 0x28($sp) +/* 011B70 70010F70 03E00008 */ jr $ra +/* 011B74 70010F74 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alSeqFileNew +/* 011B78 70010F78 848E0002 */ lh $t6, 2($a0) +/* 011B7C 70010F7C 00001025 */ move $v0, $zero +/* 011B80 70010F80 00801825 */ move $v1, $a0 +/* 011B84 70010F84 19C0000A */ blez $t6, .L70010FB0 +/* 011B88 70010F88 00000000 */ nop +/* 011B8C 70010F8C 8C6F0004 */ lw $t7, 4($v1) +.L70010F90: +/* 011B90 70010F90 24420001 */ addiu $v0, $v0, 1 +/* 011B94 70010F94 24630008 */ addiu $v1, $v1, 8 +/* 011B98 70010F98 01E5C021 */ addu $t8, $t7, $a1 +/* 011B9C 70010F9C AC78FFFC */ sw $t8, -4($v1) +/* 011BA0 70010FA0 84990002 */ lh $t9, 2($a0) +/* 011BA4 70010FA4 0059082A */ slt $at, $v0, $t9 +/* 011BA8 70010FA8 5420FFF9 */ bnezl $at, .L70010F90 +/* 011BAC 70010FAC 8C6F0004 */ lw $t7, 4($v1) +.L70010FB0: +/* 011BB0 70010FB0 03E00008 */ jr $ra +/* 011BB4 70010FB4 00000000 */ nop diff --git a/src/libultra/bzero.s b/src/libultra/bzero.s new file mode 100644 index 0000000..86b7f90 --- /dev/null +++ b/src/libultra/bzero.s @@ -0,0 +1,63 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel bzero +/* 018840 70017C40 28A1000C */ slti $at, $a1, 0xc +/* 018844 70017C44 1420001D */ bnez $at, .L70017CBC +/* 018848 70017C48 00041823 */ negu $v1, $a0 +/* 01884C 70017C4C 30630003 */ andi $v1, $v1, 3 +/* 018850 70017C50 10600003 */ beqz $v1, .L70017C60 +/* 018854 70017C54 00A32823 */ subu $a1, $a1, $v1 +/* 018858 70017C58 A8800000 */ swl $zero, ($a0) +/* 01885C 70017C5C 00832021 */ addu $a0, $a0, $v1 +.L70017C60: +/* 018860 70017C60 2401FFE0 */ li $at, -32 +/* 018864 70017C64 00A13824 */ and $a3, $a1, $at +/* 018868 70017C68 10E0000C */ beqz $a3, .L70017C9C +/* 01886C 70017C6C 00A72823 */ subu $a1, $a1, $a3 +/* 018870 70017C70 00E43821 */ addu $a3, $a3, $a0 +.L70017C74: +/* 018874 70017C74 24840020 */ addiu $a0, $a0, 0x20 +/* 018878 70017C78 AC80FFE0 */ sw $zero, -0x20($a0) +/* 01887C 70017C7C AC80FFE4 */ sw $zero, -0x1c($a0) +/* 018880 70017C80 AC80FFE8 */ sw $zero, -0x18($a0) +/* 018884 70017C84 AC80FFEC */ sw $zero, -0x14($a0) +/* 018888 70017C88 AC80FFF0 */ sw $zero, -0x10($a0) +/* 01888C 70017C8C AC80FFF4 */ sw $zero, -0xc($a0) +/* 018890 70017C90 AC80FFF8 */ sw $zero, -8($a0) +/* 018894 70017C94 1487FFF7 */ bne $a0, $a3, .L70017C74 +/* 018898 70017C98 AC80FFFC */ sw $zero, -4($a0) +.L70017C9C: +/* 01889C 70017C9C 2401FFFC */ li $at, -4 +/* 0188A0 70017CA0 00A13824 */ and $a3, $a1, $at +/* 0188A4 70017CA4 10E00005 */ beqz $a3, .L70017CBC +/* 0188A8 70017CA8 00A72823 */ subu $a1, $a1, $a3 +/* 0188AC 70017CAC 00E43821 */ addu $a3, $a3, $a0 +.L70017CB0: +/* 0188B0 70017CB0 24840004 */ addiu $a0, $a0, 4 +/* 0188B4 70017CB4 1487FFFE */ bne $a0, $a3, .L70017CB0 +/* 0188B8 70017CB8 AC80FFFC */ sw $zero, -4($a0) +.L70017CBC: +/* 0188BC 70017CBC 18A00005 */ blez $a1, .L70017CD4 +/* 0188C0 70017CC0 00000000 */ nop +/* 0188C4 70017CC4 00A42821 */ addu $a1, $a1, $a0 +.L70017CC8: +/* 0188C8 70017CC8 24840001 */ addiu $a0, $a0, 1 +/* 0188CC 70017CCC 1485FFFE */ bne $a0, $a1, .L70017CC8 +/* 0188D0 70017CD0 A080FFFF */ sb $zero, -1($a0) +.L70017CD4: +/* 0188D4 70017CD4 03E00008 */ jr $ra +/* 0188D8 70017CD8 00000000 */ nop + +/* 0188DC 70017CDC 00000000 */ nop + diff --git a/src/libultra/cents2ratio.s b/src/libultra/cents2ratio.s new file mode 100644 index 0000000..652d3fc --- /dev/null +++ b/src/libultra/cents2ratio.s @@ -0,0 +1,42 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCents2Ratio +/* 0143C0 700137C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0143C4 700137C4 44811000 */ mtc1 $at, $f2 +/* 0143C8 700137C8 04800004 */ bltz $a0, .L700137DC +/* 0143CC 700137CC 3C018003 */ lui $at, %hi(F32_800296E4) +/* 0143D0 700137D0 3C018003 */ lui $at, %hi(F32_800296E0) +/* 0143D4 700137D4 10000003 */ b .L700137E4 +/* 0143D8 700137D8 C42096E0 */ lwc1 $f0, %lo(F32_800296E0)($at) +.L700137DC: +/* 0143DC 700137DC C42096E4 */ lwc1 $f0, %lo(F32_800296E4)($at) +/* 0143E0 700137E0 00042023 */ negu $a0, $a0 +.L700137E4: +/* 0143E4 700137E4 10800008 */ beqz $a0, .L70013808 +.L700137E8: +/* 0143E8 700137E8 308E0001 */ andi $t6, $a0, 1 +/* 0143EC 700137EC 11C00003 */ beqz $t6, .L700137FC +/* 0143F0 700137F0 00047843 */ sra $t7, $a0, 1 +/* 0143F4 700137F4 46001082 */ mul.s $f2, $f2, $f0 +/* 0143F8 700137F8 00000000 */ nop +.L700137FC: +/* 0143FC 700137FC 46000002 */ mul.s $f0, $f0, $f0 +/* 014400 70013800 15E0FFF9 */ bnez $t7, .L700137E8 +/* 014404 70013804 01E02025 */ move $a0, $t7 +.L70013808: +/* 014408 70013808 03E00008 */ jr $ra +/* 01440C 7001380C 46001006 */ mov.s $f0, $f2 + +.section .rodata +glabel F32_800296E0 +.float 1.0005778 +glabel F32_800296E4 +.float 0.99942255 + diff --git a/src/libultra/conteeplongread.s b/src/libultra/conteeplongread.s new file mode 100644 index 0000000..94bcecf --- /dev/null +++ b/src/libultra/conteeplongread.s @@ -0,0 +1,100 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromLongRead +/* 016420 70015820 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 016424 70015824 AFA50044 */ sw $a1, 0x44($sp) +/* 016428 70015828 93AE0047 */ lbu $t6, 0x47($sp) +/* 01642C 7001582C AFBF0024 */ sw $ra, 0x24($sp) +/* 016430 70015830 AFA40040 */ sw $a0, 0x40($sp) +/* 016434 70015834 29C10041 */ slti $at, $t6, 0x41 +/* 016438 70015838 AFA60048 */ sw $a2, 0x48($sp) +/* 01643C 7001583C AFA7004C */ sw $a3, 0x4c($sp) +/* 016440 70015840 14200003 */ bnez $at, .L70015850 +/* 016444 70015844 AFA0003C */ sw $zero, 0x3c($sp) +/* 016448 70015848 10000040 */ b .L7001594C +/* 01644C 7001584C 2402FFFF */ li $v0, -1 +.L70015850: +/* 016450 70015850 8FAF004C */ lw $t7, 0x4c($sp) +/* 016454 70015854 19E0003C */ blez $t7, .L70015948 +/* 016458 70015858 00000000 */ nop +.L7001585C: +/* 01645C 7001585C 8FA40040 */ lw $a0, 0x40($sp) +/* 016460 70015860 93A50047 */ lbu $a1, 0x47($sp) +/* 016464 70015864 0C005410 */ jal osEepromRead +/* 016468 70015868 8FA60048 */ lw $a2, 0x48($sp) +/* 01646C 7001586C AFA2003C */ sw $v0, 0x3c($sp) +/* 016470 70015870 8FB8003C */ lw $t8, 0x3c($sp) +/* 016474 70015874 13000003 */ beqz $t8, .L70015884 +/* 016478 70015878 00000000 */ nop +/* 01647C 7001587C 10000033 */ b .L7001594C +/* 016480 70015880 03001025 */ move $v0, $t8 +.L70015884: +/* 016484 70015884 8FB9004C */ lw $t9, 0x4c($sp) +/* 016488 70015888 93A90047 */ lbu $t1, 0x47($sp) +/* 01648C 7001588C 8FAB0048 */ lw $t3, 0x48($sp) +/* 016490 70015890 3C068002 */ lui $a2, %hi(osClockRate) +/* 016494 70015894 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 016498 70015898 2728FFF8 */ addiu $t0, $t9, -8 +/* 01649C 7001589C 252A0001 */ addiu $t2, $t1, 1 +/* 0164A0 700158A0 256C0008 */ addiu $t4, $t3, 8 +/* 0164A4 700158A4 AFA8004C */ sw $t0, 0x4c($sp) +/* 0164A8 700158A8 A3AA0047 */ sb $t2, 0x47($sp) +/* 0164AC 700158AC AFAC0048 */ sw $t4, 0x48($sp) +/* 0164B0 700158B0 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0164B4 700158B4 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0164B8 700158B8 24040000 */ li $a0, 0 +/* 0164BC 700158BC 0C003B6A */ jal __ll_mul +/* 0164C0 700158C0 24052EE0 */ li $a1, 12000 +/* 0164C4 700158C4 AFA20028 */ sw $v0, 0x28($sp) +/* 0164C8 700158C8 AFA3002C */ sw $v1, 0x2c($sp) +/* 0164CC 700158CC 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 0164D0 700158D0 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 0164D4 700158D4 8FA5002C */ lw $a1, 0x2c($sp) +/* 0164D8 700158D8 8FA40028 */ lw $a0, 0x28($sp) +/* 0164DC 700158DC 0C003B2A */ jal __ull_div +/* 0164E0 700158E0 24060000 */ li $a2, 0 +/* 0164E4 700158E4 3C0D8006 */ lui $t5, %hi(__osEepromTimerQ) +/* 0164E8 700158E8 3C188006 */ lui $t8, %hi(__osEepromTimerMsg) +/* 0164EC 700158EC 27187D20 */ addiu $t8, %lo(__osEepromTimerMsg) # addiu $t8, $t8, 0x7d20 +/* 0164F0 700158F0 25AD7D08 */ addiu $t5, %lo(__osEepromTimerQ) # addiu $t5, $t5, 0x7d08 +/* 0164F4 700158F4 AFA20030 */ sw $v0, 0x30($sp) +/* 0164F8 700158F8 AFA30034 */ sw $v1, 0x34($sp) +/* 0164FC 700158FC 3C048006 */ lui $a0, %hi(__osEepromTimer) +/* 016500 70015900 240E0000 */ li $t6, 0 +/* 016504 70015904 240F0000 */ li $t7, 0 +/* 016508 70015908 AFAF0014 */ sw $t7, 0x14($sp) +/* 01650C 7001590C AFAE0010 */ sw $t6, 0x10($sp) +/* 016510 70015910 24847CE8 */ addiu $a0, %lo(__osEepromTimer) # addiu $a0, $a0, 0x7ce8 +/* 016514 70015914 8FA70034 */ lw $a3, 0x34($sp) +/* 016518 70015918 8FA60030 */ lw $a2, 0x30($sp) +/* 01651C 7001591C AFAD0018 */ sw $t5, 0x18($sp) +/* 016520 70015920 0C004314 */ jal osSetTimer +/* 016524 70015924 AFB8001C */ sw $t8, 0x1c($sp) +/* 016528 70015928 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 01652C 7001592C 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 016530 70015930 00002825 */ move $a1, $zero +/* 016534 70015934 0C003774 */ jal osRecvMesg +/* 016538 70015938 24060001 */ li $a2, 1 +/* 01653C 7001593C 8FB9004C */ lw $t9, 0x4c($sp) +/* 016540 70015940 1F20FFC6 */ bgtz $t9, .L7001585C +/* 016544 70015944 00000000 */ nop +.L70015948: +/* 016548 70015948 8FA2003C */ lw $v0, 0x3c($sp) +.L7001594C: +/* 01654C 7001594C 8FBF0024 */ lw $ra, 0x24($sp) +/* 016550 70015950 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016554 70015954 03E00008 */ jr $ra +/* 016558 70015958 00000000 */ nop + +/* 01655C 7001595C 00000000 */ nop diff --git a/src/libultra/conteeplongwrite.s b/src/libultra/conteeplongwrite.s new file mode 100644 index 0000000..fd5ef0d --- /dev/null +++ b/src/libultra/conteeplongwrite.s @@ -0,0 +1,100 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromLongWrite +/* 016560 70015960 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 016564 70015964 AFA50044 */ sw $a1, 0x44($sp) +/* 016568 70015968 93AE0047 */ lbu $t6, 0x47($sp) +/* 01656C 7001596C AFBF0024 */ sw $ra, 0x24($sp) +/* 016570 70015970 AFA40040 */ sw $a0, 0x40($sp) +/* 016574 70015974 29C10041 */ slti $at, $t6, 0x41 +/* 016578 70015978 AFA60048 */ sw $a2, 0x48($sp) +/* 01657C 7001597C AFA7004C */ sw $a3, 0x4c($sp) +/* 016580 70015980 14200003 */ bnez $at, .L70015990 +/* 016584 70015984 AFA0003C */ sw $zero, 0x3c($sp) +/* 016588 70015988 10000040 */ b .L70015A8C +/* 01658C 7001598C 2402FFFF */ li $v0, -1 +.L70015990: +/* 016590 70015990 8FAF004C */ lw $t7, 0x4c($sp) +/* 016594 70015994 19E0003C */ blez $t7, .L70015A88 +/* 016598 70015998 00000000 */ nop +.L7001599C: +/* 01659C 7001599C 8FA40040 */ lw $a0, 0x40($sp) +/* 0165A0 700159A0 93A50047 */ lbu $a1, 0x47($sp) +/* 0165A4 700159A4 0C0054D0 */ jal osEepromWrite +/* 0165A8 700159A8 8FA60048 */ lw $a2, 0x48($sp) +/* 0165AC 700159AC AFA2003C */ sw $v0, 0x3c($sp) +/* 0165B0 700159B0 8FB8003C */ lw $t8, 0x3c($sp) +/* 0165B4 700159B4 13000003 */ beqz $t8, .L700159C4 +/* 0165B8 700159B8 00000000 */ nop +/* 0165BC 700159BC 10000033 */ b .L70015A8C +/* 0165C0 700159C0 03001025 */ move $v0, $t8 +.L700159C4: +/* 0165C4 700159C4 8FB9004C */ lw $t9, 0x4c($sp) +/* 0165C8 700159C8 93A90047 */ lbu $t1, 0x47($sp) +/* 0165CC 700159CC 8FAB0048 */ lw $t3, 0x48($sp) +/* 0165D0 700159D0 3C068002 */ lui $a2, %hi(osClockRate) +/* 0165D4 700159D4 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 0165D8 700159D8 2728FFF8 */ addiu $t0, $t9, -8 +/* 0165DC 700159DC 252A0001 */ addiu $t2, $t1, 1 +/* 0165E0 700159E0 256C0008 */ addiu $t4, $t3, 8 +/* 0165E4 700159E4 AFA8004C */ sw $t0, 0x4c($sp) +/* 0165E8 700159E8 A3AA0047 */ sb $t2, 0x47($sp) +/* 0165EC 700159EC AFAC0048 */ sw $t4, 0x48($sp) +/* 0165F0 700159F0 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0165F4 700159F4 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0165F8 700159F8 24040000 */ li $a0, 0 +/* 0165FC 700159FC 0C003B6A */ jal __ll_mul +/* 016600 70015A00 24052EE0 */ li $a1, 12000 +/* 016604 70015A04 AFA20028 */ sw $v0, 0x28($sp) +/* 016608 70015A08 AFA3002C */ sw $v1, 0x2c($sp) +/* 01660C 70015A0C 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 016610 70015A10 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 016614 70015A14 8FA5002C */ lw $a1, 0x2c($sp) +/* 016618 70015A18 8FA40028 */ lw $a0, 0x28($sp) +/* 01661C 70015A1C 0C003B2A */ jal __ull_div +/* 016620 70015A20 24060000 */ li $a2, 0 +/* 016624 70015A24 3C0D8006 */ lui $t5, %hi(__osEepromTimerQ) +/* 016628 70015A28 3C188006 */ lui $t8, %hi(__osEepromTimerMsg) +/* 01662C 70015A2C 27187D20 */ addiu $t8, %lo(__osEepromTimerMsg) # addiu $t8, $t8, 0x7d20 +/* 016630 70015A30 25AD7D08 */ addiu $t5, %lo(__osEepromTimerQ) # addiu $t5, $t5, 0x7d08 +/* 016634 70015A34 AFA20030 */ sw $v0, 0x30($sp) +/* 016638 70015A38 AFA30034 */ sw $v1, 0x34($sp) +/* 01663C 70015A3C 3C048006 */ lui $a0, %hi(__osEepromTimer) +/* 016640 70015A40 240E0000 */ li $t6, 0 +/* 016644 70015A44 240F0000 */ li $t7, 0 +/* 016648 70015A48 AFAF0014 */ sw $t7, 0x14($sp) +/* 01664C 70015A4C AFAE0010 */ sw $t6, 0x10($sp) +/* 016650 70015A50 24847CE8 */ addiu $a0, %lo(__osEepromTimer) # addiu $a0, $a0, 0x7ce8 +/* 016654 70015A54 8FA70034 */ lw $a3, 0x34($sp) +/* 016658 70015A58 8FA60030 */ lw $a2, 0x30($sp) +/* 01665C 70015A5C AFAD0018 */ sw $t5, 0x18($sp) +/* 016660 70015A60 0C004314 */ jal osSetTimer +/* 016664 70015A64 AFB8001C */ sw $t8, 0x1c($sp) +/* 016668 70015A68 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 01666C 70015A6C 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 016670 70015A70 00002825 */ move $a1, $zero +/* 016674 70015A74 0C003774 */ jal osRecvMesg +/* 016678 70015A78 24060001 */ li $a2, 1 +/* 01667C 70015A7C 8FB9004C */ lw $t9, 0x4c($sp) +/* 016680 70015A80 1F20FFC6 */ bgtz $t9, .L7001599C +/* 016684 70015A84 00000000 */ nop +.L70015A88: +/* 016688 70015A88 8FA2003C */ lw $v0, 0x3c($sp) +.L70015A8C: +/* 01668C 70015A8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 016690 70015A90 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016694 70015A94 03E00008 */ jr $ra +/* 016698 70015A98 00000000 */ nop + +/* 01669C 70015A9C 00000000 */ nop diff --git a/src/libultra/conteepprobe.s b/src/libultra/conteepprobe.s new file mode 100644 index 0000000..a654940 --- /dev/null +++ b/src/libultra/conteepprobe.s @@ -0,0 +1,45 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromProbe +/* 015BD0 70014FD0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015BD4 70014FD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 015BD8 70014FD8 AFA40020 */ sw $a0, 0x20($sp) +/* 015BDC 70014FDC 0C005798 */ jal __osSiGetAccess +/* 015BE0 70014FE0 AFA0001C */ sw $zero, 0x1c($sp) +/* 015BE4 70014FE4 8FA40020 */ lw $a0, 0x20($sp) +/* 015BE8 70014FE8 0C00557F */ jal __osEepStatus +/* 015BEC 70014FEC 27A50018 */ addiu $a1, $sp, 0x18 +/* 015BF0 70014FF0 AFA2001C */ sw $v0, 0x1c($sp) +/* 015BF4 70014FF4 8FAE001C */ lw $t6, 0x1c($sp) +/* 015BF8 70014FF8 15C00008 */ bnez $t6, .L7001501C +/* 015BFC 70014FFC 00000000 */ nop +/* 015C00 70015000 97AF0018 */ lhu $t7, 0x18($sp) +/* 015C04 70015004 31F88000 */ andi $t8, $t7, 0x8000 +/* 015C08 70015008 13000004 */ beqz $t8, .L7001501C +/* 015C0C 7001500C 00000000 */ nop +/* 015C10 70015010 24190001 */ li $t9, 1 +/* 015C14 70015014 10000002 */ b .L70015020 +/* 015C18 70015018 AFB9001C */ sw $t9, 0x1c($sp) +.L7001501C: +/* 015C1C 7001501C AFA0001C */ sw $zero, 0x1c($sp) +.L70015020: +/* 015C20 70015020 0C0057A9 */ jal __osSiRelAccess +/* 015C24 70015024 00000000 */ nop +/* 015C28 70015028 8FBF0014 */ lw $ra, 0x14($sp) +/* 015C2C 7001502C 8FA2001C */ lw $v0, 0x1c($sp) +/* 015C30 70015030 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015C34 70015034 03E00008 */ jr $ra +/* 015C38 70015038 00000000 */ nop + +/* 015C3C 7001503C 00000000 */ nop diff --git a/src/libultra/conteepread.s b/src/libultra/conteepread.s new file mode 100644 index 0000000..80e9ce7 --- /dev/null +++ b/src/libultra/conteepread.s @@ -0,0 +1,289 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromRead +/* 015C40 70015040 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 015C44 70015044 AFA5003C */ sw $a1, 0x3c($sp) +/* 015C48 70015048 93AF003F */ lbu $t7, 0x3f($sp) +/* 015C4C 7001504C 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015C50 70015050 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015C54 70015054 29E10041 */ slti $at, $t7, 0x41 +/* 015C58 70015058 AFBF0014 */ sw $ra, 0x14($sp) +/* 015C5C 7001505C AFA40038 */ sw $a0, 0x38($sp) +/* 015C60 70015060 AFA60040 */ sw $a2, 0x40($sp) +/* 015C64 70015064 AFA00034 */ sw $zero, 0x34($sp) +/* 015C68 70015068 AFA00030 */ sw $zero, 0x30($sp) +/* 015C6C 7001506C 14200003 */ bnez $at, .L7001507C +/* 015C70 70015070 AFAE002C */ sw $t6, 0x2c($sp) +/* 015C74 70015074 1000006A */ b .L70015220 +/* 015C78 70015078 2402FFFF */ li $v0, -1 +.L7001507C: +/* 015C7C 7001507C 0C005798 */ jal __osSiGetAccess +/* 015C80 70015080 00000000 */ nop +/* 015C84 70015084 8FA40038 */ lw $a0, 0x38($sp) +/* 015C88 70015088 0C00557F */ jal __osEepStatus +/* 015C8C 7001508C 27A50028 */ addiu $a1, $sp, 0x28 +/* 015C90 70015090 AFA20034 */ sw $v0, 0x34($sp) +/* 015C94 70015094 8FB80034 */ lw $t8, 0x34($sp) +/* 015C98 70015098 17000005 */ bnez $t8, .L700150B0 +/* 015C9C 7001509C 00000000 */ nop +/* 015CA0 700150A0 97B90028 */ lhu $t9, 0x28($sp) +/* 015CA4 700150A4 34018000 */ li $at, 32768 +/* 015CA8 700150A8 13210003 */ beq $t9, $at, .L700150B8 +/* 015CAC 700150AC 00000000 */ nop +.L700150B0: +/* 015CB0 700150B0 1000005B */ b .L70015220 +/* 015CB4 700150B4 24020008 */ li $v0, 8 +.L700150B8: +/* 015CB8 700150B8 93A8002A */ lbu $t0, 0x2a($sp) +/* 015CBC 700150BC 31090080 */ andi $t1, $t0, 0x80 +/* 015CC0 700150C0 11200008 */ beqz $t1, .L700150E4 +/* 015CC4 700150C4 00000000 */ nop +.L700150C8: +/* 015CC8 700150C8 8FA40038 */ lw $a0, 0x38($sp) +/* 015CCC 700150CC 0C00557F */ jal __osEepStatus +/* 015CD0 700150D0 27A50028 */ addiu $a1, $sp, 0x28 +/* 015CD4 700150D4 93AA002A */ lbu $t2, 0x2a($sp) +/* 015CD8 700150D8 314B0080 */ andi $t3, $t2, 0x80 +/* 015CDC 700150DC 1560FFFA */ bnez $t3, .L700150C8 +/* 015CE0 700150E0 00000000 */ nop +.L700150E4: +/* 015CE4 700150E4 0C00548C */ jal osEepromRead_sub +/* 015CE8 700150E8 93A4003F */ lbu $a0, 0x3f($sp) +/* 015CEC 700150EC 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015CF0 700150F0 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015CF4 700150F4 0C0057B4 */ jal __osSiRawStartDma +/* 015CF8 700150F8 24040001 */ li $a0, 1 +/* 015CFC 700150FC AFA20034 */ sw $v0, 0x34($sp) +/* 015D00 70015100 8FA40038 */ lw $a0, 0x38($sp) +/* 015D04 70015104 00002825 */ move $a1, $zero +/* 015D08 70015108 0C003774 */ jal osRecvMesg +/* 015D0C 7001510C 24060001 */ li $a2, 1 +/* 015D10 70015110 AFA00030 */ sw $zero, 0x30($sp) +.L70015114: +/* 015D14 70015114 8FAD0030 */ lw $t5, 0x30($sp) +/* 015D18 70015118 8FAF0030 */ lw $t7, 0x30($sp) +/* 015D1C 7001511C 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 015D20 70015120 000D7080 */ sll $t6, $t5, 2 +/* 015D24 70015124 002E0821 */ addu $at, $at, $t6 +/* 015D28 70015128 240C00FF */ li $t4, 255 +/* 015D2C 7001512C AC2C7D30 */ sw $t4, %lo(__osEepPifRam)($at) +/* 015D30 70015130 25F80001 */ addiu $t8, $t7, 1 +/* 015D34 70015134 2B010010 */ slti $at, $t8, 0x10 +/* 015D38 70015138 1420FFF6 */ bnez $at, .L70015114 +/* 015D3C 7001513C AFB80030 */ sw $t8, 0x30($sp) +/* 015D40 70015140 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 015D44 70015144 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015D48 70015148 AC207D6C */ sw $zero, %lo(__osEepPifRam+0x3C)($at) +/* 015D4C 7001514C 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015D50 70015150 0C0057B4 */ jal __osSiRawStartDma +/* 015D54 70015154 00002025 */ move $a0, $zero +/* 015D58 70015158 24190004 */ li $t9, 4 +/* 015D5C 7001515C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015D60 70015160 AFA20034 */ sw $v0, 0x34($sp) +/* 015D64 70015164 A0397CE0 */ sb $t9, %lo(__osContLastCmd)($at) +/* 015D68 70015168 8FA40038 */ lw $a0, 0x38($sp) +/* 015D6C 7001516C 00002825 */ move $a1, $zero +/* 015D70 70015170 0C003774 */ jal osRecvMesg +/* 015D74 70015174 24060001 */ li $a2, 1 +/* 015D78 70015178 AFA00030 */ sw $zero, 0x30($sp) +.L7001517C: +/* 015D7C 7001517C 8FAA0030 */ lw $t2, 0x30($sp) +/* 015D80 70015180 8FA8002C */ lw $t0, 0x2c($sp) +/* 015D84 70015184 254B0001 */ addiu $t3, $t2, 1 +/* 015D88 70015188 29610004 */ slti $at, $t3, 4 +/* 015D8C 7001518C 25090001 */ addiu $t1, $t0, 1 +/* 015D90 70015190 AFAB0030 */ sw $t3, 0x30($sp) +/* 015D94 70015194 1420FFF9 */ bnez $at, .L7001517C +/* 015D98 70015198 AFA9002C */ sw $t1, 0x2c($sp) +/* 015D9C 7001519C 8FAC002C */ lw $t4, 0x2c($sp) +/* 015DA0 700151A0 27AD001C */ addiu $t5, $sp, 0x1c +/* 015DA4 700151A4 89810000 */ lwl $at, ($t4) +/* 015DA8 700151A8 99810003 */ lwr $at, 3($t4) +/* 015DAC 700151AC ADA10000 */ sw $at, ($t5) +/* 015DB0 700151B0 898F0004 */ lwl $t7, 4($t4) +/* 015DB4 700151B4 998F0007 */ lwr $t7, 7($t4) +/* 015DB8 700151B8 ADAF0004 */ sw $t7, 4($t5) +/* 015DBC 700151BC 89810008 */ lwl $at, 8($t4) +/* 015DC0 700151C0 9981000B */ lwr $at, 0xb($t4) +/* 015DC4 700151C4 ADA10008 */ sw $at, 8($t5) +/* 015DC8 700151C8 93B8001D */ lbu $t8, 0x1d($sp) +/* 015DCC 700151CC 331900C0 */ andi $t9, $t8, 0xc0 +/* 015DD0 700151D0 00194103 */ sra $t0, $t9, 4 +/* 015DD4 700151D4 1500000F */ bnez $t0, .L70015214 +/* 015DD8 700151D8 AFA80034 */ sw $t0, 0x34($sp) +/* 015DDC 700151DC AFA00030 */ sw $zero, 0x30($sp) +.L700151E0: +/* 015DE0 700151E0 8FA90030 */ lw $t1, 0x30($sp) +/* 015DE4 700151E4 8FAB0040 */ lw $t3, 0x40($sp) +/* 015DE8 700151E8 03A95021 */ addu $t2, $sp, $t1 +/* 015DEC 700151EC 914A0020 */ lbu $t2, 0x20($t2) +/* 015DF0 700151F0 A16A0000 */ sb $t2, ($t3) +/* 015DF4 700151F4 8FAC0030 */ lw $t4, 0x30($sp) +/* 015DF8 700151F8 8FAE0040 */ lw $t6, 0x40($sp) +/* 015DFC 700151FC 258F0001 */ addiu $t7, $t4, 1 +/* 015E00 70015200 29E10008 */ slti $at, $t7, 8 +/* 015E04 70015204 25CD0001 */ addiu $t5, $t6, 1 +/* 015E08 70015208 AFAF0030 */ sw $t7, 0x30($sp) +/* 015E0C 7001520C 1420FFF4 */ bnez $at, .L700151E0 +/* 015E10 70015210 AFAD0040 */ sw $t5, 0x40($sp) +.L70015214: +/* 015E14 70015214 0C0057A9 */ jal __osSiRelAccess +/* 015E18 70015218 00000000 */ nop +/* 015E1C 7001521C 8FA20034 */ lw $v0, 0x34($sp) +.L70015220: +/* 015E20 70015220 8FBF0014 */ lw $ra, 0x14($sp) +/* 015E24 70015224 27BD0038 */ addiu $sp, $sp, 0x38 +/* 015E28 70015228 03E00008 */ jr $ra +/* 015E2C 7001522C 00000000 */ nop + +glabel osEepromRead_sub +/* 015E30 70015230 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 015E34 70015234 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015E38 70015238 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015E3C 7001523C 308400FF */ andi $a0, $a0, 0xff +/* 015E40 70015240 AFAE0014 */ sw $t6, 0x14($sp) +/* 015E44 70015244 AFA00004 */ sw $zero, 4($sp) +.L70015248: +/* 015E48 70015248 8FB80004 */ lw $t8, 4($sp) +/* 015E4C 7001524C 8FA80004 */ lw $t0, 4($sp) +/* 015E50 70015250 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 015E54 70015254 0018C880 */ sll $t9, $t8, 2 +/* 015E58 70015258 00390821 */ addu $at, $at, $t9 +/* 015E5C 7001525C 240F00FF */ li $t7, 255 +/* 015E60 70015260 AC2F7D30 */ sw $t7, %lo(__osEepPifRam)($at) +/* 015E64 70015264 25090001 */ addiu $t1, $t0, 1 +/* 015E68 70015268 29210010 */ slti $at, $t1, 0x10 +/* 015E6C 7001526C 1420FFF6 */ bnez $at, .L70015248 +/* 015E70 70015270 AFA90004 */ sw $t1, 4($sp) +/* 015E74 70015274 240A0001 */ li $t2, 1 +/* 015E78 70015278 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 015E7C 7001527C 240B0002 */ li $t3, 2 +/* 015E80 70015280 240C0008 */ li $t4, 8 +/* 015E84 70015284 240D0004 */ li $t5, 4 +/* 015E88 70015288 AC2A7D6C */ sw $t2, %lo(__osEepPifRam+0x3C)($at) +/* 015E8C 7001528C A3AB0008 */ sb $t3, 8($sp) +/* 015E90 70015290 A3AC0009 */ sb $t4, 9($sp) +/* 015E94 70015294 A3AD000A */ sb $t5, 0xa($sp) +/* 015E98 70015298 A3A4000B */ sb $a0, 0xb($sp) +/* 015E9C 7001529C AFA00004 */ sw $zero, 4($sp) +.L700152A0: +/* 015EA0 700152A0 8FAE0004 */ lw $t6, 4($sp) +/* 015EA4 700152A4 03AEC021 */ addu $t8, $sp, $t6 +/* 015EA8 700152A8 A300000C */ sb $zero, 0xc($t8) +/* 015EAC 700152AC 8FAF0004 */ lw $t7, 4($sp) +/* 015EB0 700152B0 25F90001 */ addiu $t9, $t7, 1 +/* 015EB4 700152B4 2B210008 */ slti $at, $t9, 8 +/* 015EB8 700152B8 1420FFF9 */ bnez $at, .L700152A0 +/* 015EBC 700152BC AFB90004 */ sw $t9, 4($sp) +/* 015EC0 700152C0 AFA00004 */ sw $zero, 4($sp) +.L700152C4: +/* 015EC4 700152C4 8FA80014 */ lw $t0, 0x14($sp) +/* 015EC8 700152C8 A1000000 */ sb $zero, ($t0) +/* 015ECC 700152CC 8FAB0004 */ lw $t3, 4($sp) +/* 015ED0 700152D0 8FA90014 */ lw $t1, 0x14($sp) +/* 015ED4 700152D4 256C0001 */ addiu $t4, $t3, 1 +/* 015ED8 700152D8 29810004 */ slti $at, $t4, 4 +/* 015EDC 700152DC 252A0001 */ addiu $t2, $t1, 1 +/* 015EE0 700152E0 AFAC0004 */ sw $t4, 4($sp) +/* 015EE4 700152E4 1420FFF7 */ bnez $at, .L700152C4 +/* 015EE8 700152E8 AFAA0014 */ sw $t2, 0x14($sp) +/* 015EEC 700152EC 27AE0008 */ addiu $t6, $sp, 8 +/* 015EF0 700152F0 8DC10000 */ lw $at, ($t6) +/* 015EF4 700152F4 8FAD0014 */ lw $t5, 0x14($sp) +/* 015EF8 700152F8 240900FE */ li $t1, 254 +/* 015EFC 700152FC A9A10000 */ swl $at, ($t5) +/* 015F00 70015300 B9A10003 */ swr $at, 3($t5) +/* 015F04 70015304 8DCF0004 */ lw $t7, 4($t6) +/* 015F08 70015308 A9AF0004 */ swl $t7, 4($t5) +/* 015F0C 7001530C B9AF0007 */ swr $t7, 7($t5) +/* 015F10 70015310 8DC10008 */ lw $at, 8($t6) +/* 015F14 70015314 A9A10008 */ swl $at, 8($t5) +/* 015F18 70015318 B9A1000B */ swr $at, 0xb($t5) +/* 015F1C 7001531C 8FB90014 */ lw $t9, 0x14($sp) +/* 015F20 70015320 2728000C */ addiu $t0, $t9, 0xc +/* 015F24 70015324 AFA80014 */ sw $t0, 0x14($sp) +/* 015F28 70015328 A1090000 */ sb $t1, ($t0) +/* 015F2C 7001532C 03E00008 */ jr $ra +/* 015F30 70015330 27BD0018 */ addiu $sp, $sp, 0x18 + +/* 015F34 70015334 00000000 */ nop +/* 015F38 70015338 00000000 */ nop +/* 015F3C 7001533C 00000000 */ nop + +.section .bss +glabel __osEepPifRam +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 diff --git a/src/libultra/conteepwrite.s b/src/libultra/conteepwrite.s new file mode 100644 index 0000000..8e67cf5 --- /dev/null +++ b/src/libultra/conteepwrite.s @@ -0,0 +1,348 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromWrite +/* 015F40 70015340 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 015F44 70015344 AFA5003C */ sw $a1, 0x3c($sp) +/* 015F48 70015348 93AF003F */ lbu $t7, 0x3f($sp) +/* 015F4C 7001534C 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015F50 70015350 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015F54 70015354 29E10041 */ slti $at, $t7, 0x41 +/* 015F58 70015358 AFBF0014 */ sw $ra, 0x14($sp) +/* 015F5C 7001535C AFA40038 */ sw $a0, 0x38($sp) +/* 015F60 70015360 AFA60040 */ sw $a2, 0x40($sp) +/* 015F64 70015364 AFA00034 */ sw $zero, 0x34($sp) +/* 015F68 70015368 14200003 */ bnez $at, .L70015378 +/* 015F6C 7001536C AFAE002C */ sw $t6, 0x2c($sp) +/* 015F70 70015370 1000005B */ b .L700154E0 +/* 015F74 70015374 2402FFFF */ li $v0, -1 +.L70015378: +/* 015F78 70015378 0C005798 */ jal __osSiGetAccess +/* 015F7C 7001537C 00000000 */ nop +/* 015F80 70015380 8FA40038 */ lw $a0, 0x38($sp) +/* 015F84 70015384 0C00557F */ jal __osEepStatus +/* 015F88 70015388 27A5001C */ addiu $a1, $sp, 0x1c +/* 015F8C 7001538C AFA20034 */ sw $v0, 0x34($sp) +/* 015F90 70015390 8FB80034 */ lw $t8, 0x34($sp) +/* 015F94 70015394 17000005 */ bnez $t8, .L700153AC +/* 015F98 70015398 00000000 */ nop +/* 015F9C 7001539C 97B9001C */ lhu $t9, 0x1c($sp) +/* 015FA0 700153A0 34018000 */ li $at, 32768 +/* 015FA4 700153A4 13210003 */ beq $t9, $at, .L700153B4 +/* 015FA8 700153A8 00000000 */ nop +.L700153AC: +/* 015FAC 700153AC 1000004C */ b .L700154E0 +/* 015FB0 700153B0 24020008 */ li $v0, 8 +.L700153B4: +/* 015FB4 700153B4 93A8001E */ lbu $t0, 0x1e($sp) +/* 015FB8 700153B8 31090080 */ andi $t1, $t0, 0x80 +/* 015FBC 700153BC 11200008 */ beqz $t1, .L700153E0 +/* 015FC0 700153C0 00000000 */ nop +.L700153C4: +/* 015FC4 700153C4 8FA40038 */ lw $a0, 0x38($sp) +/* 015FC8 700153C8 0C00557F */ jal __osEepStatus +/* 015FCC 700153CC 27A5001C */ addiu $a1, $sp, 0x1c +/* 015FD0 700153D0 93AA001E */ lbu $t2, 0x1e($sp) +/* 015FD4 700153D4 314B0080 */ andi $t3, $t2, 0x80 +/* 015FD8 700153D8 1560FFFA */ bnez $t3, .L700153C4 +/* 015FDC 700153DC 00000000 */ nop +.L700153E0: +/* 015FE0 700153E0 93A4003F */ lbu $a0, 0x3f($sp) +/* 015FE4 700153E4 0C00553C */ jal osEepromWrite_sub +/* 015FE8 700153E8 8FA50040 */ lw $a1, 0x40($sp) +/* 015FEC 700153EC 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015FF0 700153F0 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015FF4 700153F4 0C0057B4 */ jal __osSiRawStartDma +/* 015FF8 700153F8 24040001 */ li $a0, 1 +/* 015FFC 700153FC AFA20034 */ sw $v0, 0x34($sp) +/* 016000 70015400 8FA40038 */ lw $a0, 0x38($sp) +/* 016004 70015404 00002825 */ move $a1, $zero +/* 016008 70015408 0C003774 */ jal osRecvMesg +/* 01600C 7001540C 24060001 */ li $a2, 1 +/* 016010 70015410 AFA00030 */ sw $zero, 0x30($sp) +.L70015414: +/* 016014 70015414 8FAD0030 */ lw $t5, 0x30($sp) +/* 016018 70015418 8FAF0030 */ lw $t7, 0x30($sp) +/* 01601C 7001541C 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 016020 70015420 000D7080 */ sll $t6, $t5, 2 +/* 016024 70015424 002E0821 */ addu $at, $at, $t6 +/* 016028 70015428 240C00FF */ li $t4, 255 +/* 01602C 7001542C AC2C7D30 */ sw $t4, %lo(__osEepPifRam)($at) +/* 016030 70015430 25F80001 */ addiu $t8, $t7, 1 +/* 016034 70015434 2B010010 */ slti $at, $t8, 0x10 +/* 016038 70015438 1420FFF6 */ bnez $at, .L70015414 +/* 01603C 7001543C AFB80030 */ sw $t8, 0x30($sp) +/* 016040 70015440 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 016044 70015444 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 016048 70015448 AC207D6C */ sw $zero, %lo(__osEepPifRam+0x3C)($at) +/* 01604C 7001544C 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 016050 70015450 0C0057B4 */ jal __osSiRawStartDma +/* 016054 70015454 00002025 */ move $a0, $zero +/* 016058 70015458 24190005 */ li $t9, 5 +/* 01605C 7001545C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016060 70015460 AFA20034 */ sw $v0, 0x34($sp) +/* 016064 70015464 A0397CE0 */ sb $t9, %lo(__osContLastCmd)($at) +/* 016068 70015468 8FA40038 */ lw $a0, 0x38($sp) +/* 01606C 7001546C 00002825 */ move $a1, $zero +/* 016070 70015470 0C003774 */ jal osRecvMesg +/* 016074 70015474 24060001 */ li $a2, 1 +/* 016078 70015478 AFA00030 */ sw $zero, 0x30($sp) +.L7001547C: +/* 01607C 7001547C 8FAA0030 */ lw $t2, 0x30($sp) +/* 016080 70015480 8FA8002C */ lw $t0, 0x2c($sp) +/* 016084 70015484 254B0001 */ addiu $t3, $t2, 1 +/* 016088 70015488 29610004 */ slti $at, $t3, 4 +/* 01608C 7001548C 25090001 */ addiu $t1, $t0, 1 +/* 016090 70015490 AFAB0030 */ sw $t3, 0x30($sp) +/* 016094 70015494 1420FFF9 */ bnez $at, .L7001547C +/* 016098 70015498 AFA9002C */ sw $t1, 0x2c($sp) +/* 01609C 7001549C 8FAC002C */ lw $t4, 0x2c($sp) +/* 0160A0 700154A0 27AD0020 */ addiu $t5, $sp, 0x20 +/* 0160A4 700154A4 89810000 */ lwl $at, ($t4) +/* 0160A8 700154A8 99810003 */ lwr $at, 3($t4) +/* 0160AC 700154AC ADA10000 */ sw $at, ($t5) +/* 0160B0 700154B0 898F0004 */ lwl $t7, 4($t4) +/* 0160B4 700154B4 998F0007 */ lwr $t7, 7($t4) +/* 0160B8 700154B8 ADAF0004 */ sw $t7, 4($t5) +/* 0160BC 700154BC 89810008 */ lwl $at, 8($t4) +/* 0160C0 700154C0 9981000B */ lwr $at, 0xb($t4) +/* 0160C4 700154C4 ADA10008 */ sw $at, 8($t5) +/* 0160C8 700154C8 93B80021 */ lbu $t8, 0x21($sp) +/* 0160CC 700154CC 331900C0 */ andi $t9, $t8, 0xc0 +/* 0160D0 700154D0 00194103 */ sra $t0, $t9, 4 +/* 0160D4 700154D4 0C0057A9 */ jal __osSiRelAccess +/* 0160D8 700154D8 AFA80034 */ sw $t0, 0x34($sp) +/* 0160DC 700154DC 8FA20034 */ lw $v0, 0x34($sp) +.L700154E0: +/* 0160E0 700154E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0160E4 700154E4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0160E8 700154E8 03E00008 */ jr $ra +/* 0160EC 700154EC 00000000 */ nop + +glabel osEepromWrite_sub +/* 0160F0 700154F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0160F4 700154F4 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 0160F8 700154F8 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 0160FC 700154FC 308400FF */ andi $a0, $a0, 0xff +/* 016100 70015500 AFAE0014 */ sw $t6, 0x14($sp) +/* 016104 70015504 AFA00004 */ sw $zero, 4($sp) +.L70015508: +/* 016108 70015508 8FB80004 */ lw $t8, 4($sp) +/* 01610C 7001550C 8FA80004 */ lw $t0, 4($sp) +/* 016110 70015510 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 016114 70015514 0018C880 */ sll $t9, $t8, 2 +/* 016118 70015518 00390821 */ addu $at, $at, $t9 +/* 01611C 7001551C 240F00FF */ li $t7, 255 +/* 016120 70015520 AC2F7D30 */ sw $t7, %lo(__osEepPifRam)($at) +/* 016124 70015524 25090001 */ addiu $t1, $t0, 1 +/* 016128 70015528 29210010 */ slti $at, $t1, 0x10 +/* 01612C 7001552C 1420FFF6 */ bnez $at, .L70015508 +/* 016130 70015530 AFA90004 */ sw $t1, 4($sp) +/* 016134 70015534 240A0001 */ li $t2, 1 +/* 016138 70015538 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 01613C 7001553C 240B000A */ li $t3, 10 +/* 016140 70015540 240C0001 */ li $t4, 1 +/* 016144 70015544 240D0005 */ li $t5, 5 +/* 016148 70015548 AC2A7D6C */ sw $t2, %lo(__osEepPifRam+0x3C)($at) +/* 01614C 7001554C A3AB0008 */ sb $t3, 8($sp) +/* 016150 70015550 A3AC0009 */ sb $t4, 9($sp) +/* 016154 70015554 A3AD000A */ sb $t5, 0xa($sp) +/* 016158 70015558 A3A4000B */ sb $a0, 0xb($sp) +/* 01615C 7001555C AFA00004 */ sw $zero, 4($sp) +.L70015560: +/* 016160 70015560 8FB80004 */ lw $t8, 4($sp) +/* 016164 70015564 90AE0000 */ lbu $t6, ($a1) +/* 016168 70015568 24A50001 */ addiu $a1, $a1, 1 +/* 01616C 7001556C 03B87821 */ addu $t7, $sp, $t8 +/* 016170 70015570 A1EE000C */ sb $t6, 0xc($t7) +/* 016174 70015574 8FB90004 */ lw $t9, 4($sp) +/* 016178 70015578 27280001 */ addiu $t0, $t9, 1 +/* 01617C 7001557C 29010008 */ slti $at, $t0, 8 +/* 016180 70015580 1420FFF7 */ bnez $at, .L70015560 +/* 016184 70015584 AFA80004 */ sw $t0, 4($sp) +/* 016188 70015588 AFA00004 */ sw $zero, 4($sp) +.L7001558C: +/* 01618C 7001558C 8FA90014 */ lw $t1, 0x14($sp) +/* 016190 70015590 A1200000 */ sb $zero, ($t1) +/* 016194 70015594 8FAC0004 */ lw $t4, 4($sp) +/* 016198 70015598 8FAA0014 */ lw $t2, 0x14($sp) +/* 01619C 7001559C 258D0001 */ addiu $t5, $t4, 1 +/* 0161A0 700155A0 29A10004 */ slti $at, $t5, 4 +/* 0161A4 700155A4 254B0001 */ addiu $t3, $t2, 1 +/* 0161A8 700155A8 AFAD0004 */ sw $t5, 4($sp) +/* 0161AC 700155AC 1420FFF7 */ bnez $at, .L7001558C +/* 0161B0 700155B0 AFAB0014 */ sw $t3, 0x14($sp) +/* 0161B4 700155B4 27B80008 */ addiu $t8, $sp, 8 +/* 0161B8 700155B8 8F010000 */ lw $at, ($t8) +/* 0161BC 700155BC 8FAE0014 */ lw $t6, 0x14($sp) +/* 0161C0 700155C0 240A00FE */ li $t2, 254 +/* 0161C4 700155C4 A9C10000 */ swl $at, ($t6) +/* 0161C8 700155C8 B9C10003 */ swr $at, 3($t6) +/* 0161CC 700155CC 8F190004 */ lw $t9, 4($t8) +/* 0161D0 700155D0 A9D90004 */ swl $t9, 4($t6) +/* 0161D4 700155D4 B9D90007 */ swr $t9, 7($t6) +/* 0161D8 700155D8 8F010008 */ lw $at, 8($t8) +/* 0161DC 700155DC A9C10008 */ swl $at, 8($t6) +/* 0161E0 700155E0 B9C1000B */ swr $at, 0xb($t6) +/* 0161E4 700155E4 8FA80014 */ lw $t0, 0x14($sp) +/* 0161E8 700155E8 2509000C */ addiu $t1, $t0, 0xc +/* 0161EC 700155EC AFA90014 */ sw $t1, 0x14($sp) +/* 0161F0 700155F0 A12A0000 */ sb $t2, ($t1) +/* 0161F4 700155F4 03E00008 */ jr $ra +/* 0161F8 700155F8 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel __osEepStatus +/* 0161FC 700155FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 016200 70015600 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 016204 70015604 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 016208 70015608 AFBF0014 */ sw $ra, 0x14($sp) +/* 01620C 7001560C AFA40030 */ sw $a0, 0x30($sp) +/* 016210 70015610 AFA50034 */ sw $a1, 0x34($sp) +/* 016214 70015614 AFA0002C */ sw $zero, 0x2c($sp) +/* 016218 70015618 AFAE0024 */ sw $t6, 0x24($sp) +/* 01621C 7001561C AFA00028 */ sw $zero, 0x28($sp) +.L70015620: +/* 016220 70015620 8FAF0028 */ lw $t7, 0x28($sp) +/* 016224 70015624 8FB90028 */ lw $t9, 0x28($sp) +/* 016228 70015628 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 01622C 7001562C 000FC080 */ sll $t8, $t7, 2 +/* 016230 70015630 00380821 */ addu $at, $at, $t8 +/* 016234 70015634 AC207D30 */ sw $zero, %lo(__osEepPifRam)($at) +/* 016238 70015638 27280001 */ addiu $t0, $t9, 1 +/* 01623C 7001563C 29010010 */ slti $at, $t0, 0x10 +/* 016240 70015640 1420FFF7 */ bnez $at, .L70015620 +/* 016244 70015644 AFA80028 */ sw $t0, 0x28($sp) +/* 016248 70015648 3C0A8006 */ lui $t2, %hi(__osEepPifRam) +/* 01624C 7001564C 24090001 */ li $t1, 1 +/* 016250 70015650 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 016254 70015654 254A7D30 */ addiu $t2, %lo(__osEepPifRam) # addiu $t2, $t2, 0x7d30 +/* 016258 70015658 AC297D6C */ sw $t1, %lo(__osEepPifRam+0x3C)($at) +/* 01625C 7001565C AFAA0024 */ sw $t2, 0x24($sp) +/* 016260 70015660 AFA00028 */ sw $zero, 0x28($sp) +.L70015664: +/* 016264 70015664 8FAB0024 */ lw $t3, 0x24($sp) +/* 016268 70015668 A1600000 */ sb $zero, ($t3) +/* 01626C 7001566C 8FAE0028 */ lw $t6, 0x28($sp) +/* 016270 70015670 8FAC0024 */ lw $t4, 0x24($sp) +/* 016274 70015674 25CF0001 */ addiu $t7, $t6, 1 +/* 016278 70015678 29E10004 */ slti $at, $t7, 4 +/* 01627C 7001567C 258D0001 */ addiu $t5, $t4, 1 +/* 016280 70015680 AFAF0028 */ sw $t7, 0x28($sp) +/* 016284 70015684 1420FFF7 */ bnez $at, .L70015664 +/* 016288 70015688 AFAD0024 */ sw $t5, 0x24($sp) +/* 01628C 7001568C 241800FF */ li $t8, 255 +/* 016290 70015690 24190001 */ li $t9, 1 +/* 016294 70015694 24080003 */ li $t0, 3 +/* 016298 70015698 240900FF */ li $t1, 255 +/* 01629C 7001569C 240A00FF */ li $t2, 255 +/* 0162A0 700156A0 240B00FF */ li $t3, 255 +/* 0162A4 700156A4 240C00FF */ li $t4, 255 +/* 0162A8 700156A8 A3B8001C */ sb $t8, 0x1c($sp) +/* 0162AC 700156AC A3B9001D */ sb $t9, 0x1d($sp) +/* 0162B0 700156B0 A3A8001E */ sb $t0, 0x1e($sp) +/* 0162B4 700156B4 A3A0001F */ sb $zero, 0x1f($sp) +/* 0162B8 700156B8 A3A90020 */ sb $t1, 0x20($sp) +/* 0162BC 700156BC A3AA0021 */ sb $t2, 0x21($sp) +/* 0162C0 700156C0 A3AB0022 */ sb $t3, 0x22($sp) +/* 0162C4 700156C4 A3AC0023 */ sb $t4, 0x23($sp) +/* 0162C8 700156C8 27AE001C */ addiu $t6, $sp, 0x1c +/* 0162CC 700156CC 8DC10000 */ lw $at, ($t6) +/* 0162D0 700156D0 8FAD0024 */ lw $t5, 0x24($sp) +/* 0162D4 700156D4 240A00FE */ li $t2, 254 +/* 0162D8 700156D8 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 0162DC 700156DC A9A10000 */ swl $at, ($t5) +/* 0162E0 700156E0 B9A10003 */ swr $at, 3($t5) +/* 0162E4 700156E4 8DD90004 */ lw $t9, 4($t6) +/* 0162E8 700156E8 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 0162EC 700156EC 24040001 */ li $a0, 1 +/* 0162F0 700156F0 A9B90004 */ swl $t9, 4($t5) +/* 0162F4 700156F4 B9B90007 */ swr $t9, 7($t5) +/* 0162F8 700156F8 8FA80024 */ lw $t0, 0x24($sp) +/* 0162FC 700156FC 25090008 */ addiu $t1, $t0, 8 +/* 016300 70015700 AFA90024 */ sw $t1, 0x24($sp) +/* 016304 70015704 0C0057B4 */ jal __osSiRawStartDma +/* 016308 70015708 A12A0000 */ sb $t2, ($t1) +/* 01630C 7001570C AFA2002C */ sw $v0, 0x2c($sp) +/* 016310 70015710 8FA40030 */ lw $a0, 0x30($sp) +/* 016314 70015714 00002825 */ move $a1, $zero +/* 016318 70015718 0C003774 */ jal osRecvMesg +/* 01631C 7001571C 24060001 */ li $a2, 1 +/* 016320 70015720 240B0005 */ li $t3, 5 +/* 016324 70015724 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016328 70015728 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 01632C 7001572C A02B7CE0 */ sb $t3, %lo(__osContLastCmd)($at) +/* 016330 70015730 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 016334 70015734 0C0057B4 */ jal __osSiRawStartDma +/* 016338 70015738 00002025 */ move $a0, $zero +/* 01633C 7001573C AFA2002C */ sw $v0, 0x2c($sp) +/* 016340 70015740 8FA40030 */ lw $a0, 0x30($sp) +/* 016344 70015744 00002825 */ move $a1, $zero +/* 016348 70015748 0C003774 */ jal osRecvMesg +/* 01634C 7001574C 24060001 */ li $a2, 1 +/* 016350 70015750 8FAC002C */ lw $t4, 0x2c($sp) +/* 016354 70015754 11800003 */ beqz $t4, .L70015764 +/* 016358 70015758 00000000 */ nop +/* 01635C 7001575C 1000002C */ b .L70015810 +/* 016360 70015760 01801025 */ move $v0, $t4 +.L70015764: +/* 016364 70015764 3C188006 */ lui $t8, %hi(__osEepPifRam) +/* 016368 70015768 27187D30 */ addiu $t8, %lo(__osEepPifRam) # addiu $t8, $t8, 0x7d30 +/* 01636C 7001576C AFB80024 */ sw $t8, 0x24($sp) +/* 016370 70015770 AFA00028 */ sw $zero, 0x28($sp) +.L70015774: +/* 016374 70015774 8FAF0024 */ lw $t7, 0x24($sp) +/* 016378 70015778 A1E00000 */ sb $zero, ($t7) +/* 01637C 7001577C 8FB90028 */ lw $t9, 0x28($sp) +/* 016380 70015780 8FAD0024 */ lw $t5, 0x24($sp) +/* 016384 70015784 27280001 */ addiu $t0, $t9, 1 +/* 016388 70015788 29010004 */ slti $at, $t0, 4 +/* 01638C 7001578C 25AE0001 */ addiu $t6, $t5, 1 +/* 016390 70015790 AFA80028 */ sw $t0, 0x28($sp) +/* 016394 70015794 1420FFF7 */ bnez $at, .L70015774 +/* 016398 70015798 AFAE0024 */ sw $t6, 0x24($sp) +/* 01639C 7001579C 8FA90024 */ lw $t1, 0x24($sp) +/* 0163A0 700157A0 27AA001C */ addiu $t2, $sp, 0x1c +/* 0163A4 700157A4 89210000 */ lwl $at, ($t1) +/* 0163A8 700157A8 99210003 */ lwr $at, 3($t1) +/* 0163AC 700157AC AD410000 */ sw $at, ($t2) +/* 0163B0 700157B0 892C0004 */ lwl $t4, 4($t1) +/* 0163B4 700157B4 992C0007 */ lwr $t4, 7($t1) +/* 0163B8 700157B8 AD4C0004 */ sw $t4, 4($t2) +/* 0163BC 700157BC 93B8001E */ lbu $t8, 0x1e($sp) +/* 0163C0 700157C0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0163C4 700157C4 330F00C0 */ andi $t7, $t8, 0xc0 +/* 0163C8 700157C8 000F6903 */ sra $t5, $t7, 4 +/* 0163CC 700157CC A1CD0003 */ sb $t5, 3($t6) +/* 0163D0 700157D0 93B90021 */ lbu $t9, 0x21($sp) +/* 0163D4 700157D4 93AB0020 */ lbu $t3, 0x20($sp) +/* 0163D8 700157D8 8FA90034 */ lw $t1, 0x34($sp) +/* 0163DC 700157DC 00194200 */ sll $t0, $t9, 8 +/* 0163E0 700157E0 010B5025 */ or $t2, $t0, $t3 +/* 0163E4 700157E4 A52A0000 */ sh $t2, ($t1) +/* 0163E8 700157E8 8FB80034 */ lw $t8, 0x34($sp) +/* 0163EC 700157EC 93AC0022 */ lbu $t4, 0x22($sp) +/* 0163F0 700157F0 A30C0002 */ sb $t4, 2($t8) +/* 0163F4 700157F4 8FAF0034 */ lw $t7, 0x34($sp) +/* 0163F8 700157F8 91ED0003 */ lbu $t5, 3($t7) +/* 0163FC 700157FC 11A00003 */ beqz $t5, .L7001580C +/* 016400 70015800 00000000 */ nop +/* 016404 70015804 10000002 */ b .L70015810 +/* 016408 70015808 01A01025 */ move $v0, $t5 +.L7001580C: +/* 01640C 7001580C 00001025 */ move $v0, $zero +.L70015810: +/* 016410 70015810 8FBF0014 */ lw $ra, 0x14($sp) +/* 016414 70015814 27BD0030 */ addiu $sp, $sp, 0x30 +/* 016418 70015818 03E00008 */ jr $ra +/* 01641C 7001581C 00000000 */ nop + diff --git a/src/libultra/contpfs.s b/src/libultra/contpfs.s new file mode 100644 index 0000000..5ea9b00 --- /dev/null +++ b/src/libultra/contpfs.s @@ -0,0 +1,950 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSumcalc +/* 01F5C0 7001E9C0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 01F5C4 7001E9C4 AFA00008 */ sw $zero, 8($sp) +/* 01F5C8 7001E9C8 AFA40004 */ sw $a0, 4($sp) +/* 01F5CC 7001E9CC 18A00010 */ blez $a1, .L7001EA10 +/* 01F5D0 7001E9D0 AFA0000C */ sw $zero, 0xc($sp) +.L7001E9D4: +/* 01F5D4 7001E9D4 8FAF0004 */ lw $t7, 4($sp) +/* 01F5D8 7001E9D8 8FAE0008 */ lw $t6, 8($sp) +/* 01F5DC 7001E9DC 8FAB000C */ lw $t3, 0xc($sp) +/* 01F5E0 7001E9E0 91F80000 */ lbu $t8, ($t7) +/* 01F5E4 7001E9E4 25E80001 */ addiu $t0, $t7, 1 +/* 01F5E8 7001E9E8 256C0001 */ addiu $t4, $t3, 1 +/* 01F5EC 7001E9EC 01D8C821 */ addu $t9, $t6, $t8 +/* 01F5F0 7001E9F0 AFB90008 */ sw $t9, 8($sp) +/* 01F5F4 7001E9F4 8FA90008 */ lw $t1, 8($sp) +/* 01F5F8 7001E9F8 0185082A */ slt $at, $t4, $a1 +/* 01F5FC 7001E9FC AFAC000C */ sw $t4, 0xc($sp) +/* 01F600 7001EA00 312AFFFF */ andi $t2, $t1, 0xffff +/* 01F604 7001EA04 AFA80004 */ sw $t0, 4($sp) +/* 01F608 7001EA08 1420FFF2 */ bnez $at, .L7001E9D4 +/* 01F60C 7001EA0C AFAA0008 */ sw $t2, 8($sp) +.L7001EA10: +/* 01F610 7001EA10 97A2000A */ lhu $v0, 0xa($sp) +/* 01F614 7001EA14 03E00008 */ jr $ra +/* 01F618 7001EA18 27BD0010 */ addiu $sp, $sp, 0x10 + +glabel __osIdCheckSum +/* 01F61C 7001EA1C 27BDFFF8 */ addiu $sp, $sp, -8 +/* 01F620 7001EA20 A7A00006 */ sh $zero, 6($sp) +/* 01F624 7001EA24 A4C00000 */ sh $zero, ($a2) +/* 01F628 7001EA28 94CE0000 */ lhu $t6, ($a2) +/* 01F62C 7001EA2C A4AE0000 */ sh $t6, ($a1) +/* 01F630 7001EA30 AFA00000 */ sw $zero, ($sp) +.L7001EA34: +/* 01F634 7001EA34 8FAF0000 */ lw $t7, ($sp) +/* 01F638 7001EA38 008FC021 */ addu $t8, $a0, $t7 +/* 01F63C 7001EA3C 97190000 */ lhu $t9, ($t8) +/* 01F640 7001EA40 A7B90006 */ sh $t9, 6($sp) +/* 01F644 7001EA44 94A80000 */ lhu $t0, ($a1) +/* 01F648 7001EA48 01194821 */ addu $t1, $t0, $t9 +/* 01F64C 7001EA4C A4A90000 */ sh $t1, ($a1) +/* 01F650 7001EA50 97AB0006 */ lhu $t3, 6($sp) +/* 01F654 7001EA54 94CA0000 */ lhu $t2, ($a2) +/* 01F658 7001EA58 01606027 */ not $t4, $t3 +/* 01F65C 7001EA5C 014C6821 */ addu $t5, $t2, $t4 +/* 01F660 7001EA60 A4CD0000 */ sh $t5, ($a2) +/* 01F664 7001EA64 8FAE0000 */ lw $t6, ($sp) +/* 01F668 7001EA68 25CF0002 */ addiu $t7, $t6, 2 +/* 01F66C 7001EA6C 2DE1001C */ sltiu $at, $t7, 0x1c +/* 01F670 7001EA70 1420FFF0 */ bnez $at, .L7001EA34 +/* 01F674 7001EA74 AFAF0000 */ sw $t7, ($sp) +/* 01F678 7001EA78 00001025 */ move $v0, $zero +/* 01F67C 7001EA7C 03E00008 */ jr $ra +/* 01F680 7001EA80 27BD0008 */ addiu $sp, $sp, 8 + +glabel __osRepairPackId +/* 01F684 7001EA84 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 01F688 7001EA88 AFA40078 */ sw $a0, 0x78($sp) +/* 01F68C 7001EA8C 8FAE0078 */ lw $t6, 0x78($sp) +/* 01F690 7001EA90 AFBF001C */ sw $ra, 0x1c($sp) +/* 01F694 7001EA94 AFA5007C */ sw $a1, 0x7c($sp) +/* 01F698 7001EA98 AFA60080 */ sw $a2, 0x80($sp) +/* 01F69C 7001EA9C AFA00074 */ sw $zero, 0x74($sp) +/* 01F6A0 7001EAA0 A3A00033 */ sb $zero, 0x33($sp) +/* 01F6A4 7001EAA4 91CF0065 */ lbu $t7, 0x65($t6) +/* 01F6A8 7001EAA8 11E0000A */ beqz $t7, .L7001EAD4 +/* 01F6AC 7001EAAC 00000000 */ nop +/* 01F6B0 7001EAB0 A1C00065 */ sb $zero, 0x65($t6) +/* 01F6B4 7001EAB4 0C007DAB */ jal __osPfsSelectBank +/* 01F6B8 7001EAB8 8FA40078 */ lw $a0, 0x78($sp) +/* 01F6BC 7001EABC AFA20074 */ sw $v0, 0x74($sp) +/* 01F6C0 7001EAC0 8FB80074 */ lw $t8, 0x74($sp) +/* 01F6C4 7001EAC4 13000003 */ beqz $t8, .L7001EAD4 +/* 01F6C8 7001EAC8 00000000 */ nop +/* 01F6CC 7001EACC 100000EF */ b .L7001EE8C +/* 01F6D0 7001EAD0 03001025 */ move $v0, $t8 +.L7001EAD4: +/* 01F6D4 7001EAD4 8FA80080 */ lw $t0, 0x80($sp) +/* 01F6D8 7001EAD8 2419FFFF */ li $t9, -1 +/* 01F6DC 7001EADC 0C003638 */ jal osGetCount +/* 01F6E0 7001EAE0 AD190000 */ sw $t9, ($t0) +/* 01F6E4 7001EAE4 8FA90080 */ lw $t1, 0x80($sp) +/* 01F6E8 7001EAE8 AD220004 */ sw $v0, 4($t1) +/* 01F6EC 7001EAEC 8FAA007C */ lw $t2, 0x7c($sp) +/* 01F6F0 7001EAF0 8FAB0080 */ lw $t3, 0x80($sp) +/* 01F6F4 7001EAF4 8D4C0008 */ lw $t4, 8($t2) +/* 01F6F8 7001EAF8 8D4D000C */ lw $t5, 0xc($t2) +/* 01F6FC 7001EAFC AD6C0008 */ sw $t4, 8($t3) +/* 01F700 7001EB00 AD6D000C */ sw $t5, 0xc($t3) +/* 01F704 7001EB04 8FAF007C */ lw $t7, 0x7c($sp) +/* 01F708 7001EB08 8FB80080 */ lw $t8, 0x80($sp) +/* 01F70C 7001EB0C 8DEE0010 */ lw $t6, 0x10($t7) +/* 01F710 7001EB10 8DEF0014 */ lw $t7, 0x14($t7) +/* 01F714 7001EB14 AF0E0010 */ sw $t6, 0x10($t8) +/* 01F718 7001EB18 AF0F0014 */ sw $t7, 0x14($t8) +/* 01F71C 7001EB1C AFA00028 */ sw $zero, 0x28($sp) +.L7001EB20: +/* 01F720 7001EB20 8FB90028 */ lw $t9, 0x28($sp) +/* 01F724 7001EB24 8FA80078 */ lw $t0, 0x78($sp) +/* 01F728 7001EB28 A1190065 */ sb $t9, 0x65($t0) +/* 01F72C 7001EB2C 0C007DAB */ jal __osPfsSelectBank +/* 01F730 7001EB30 8FA40078 */ lw $a0, 0x78($sp) +/* 01F734 7001EB34 AFA20074 */ sw $v0, 0x74($sp) +/* 01F738 7001EB38 8FA90074 */ lw $t1, 0x74($sp) +/* 01F73C 7001EB3C 11200003 */ beqz $t1, .L7001EB4C +/* 01F740 7001EB40 00000000 */ nop +/* 01F744 7001EB44 100000D1 */ b .L7001EE8C +/* 01F748 7001EB48 01201025 */ move $v0, $t1 +.L7001EB4C: +/* 01F74C 7001EB4C 8FAA0078 */ lw $t2, 0x78($sp) +/* 01F750 7001EB50 00003025 */ move $a2, $zero +/* 01F754 7001EB54 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F758 7001EB58 8D440004 */ lw $a0, 4($t2) +/* 01F75C 7001EB5C 0C00592C */ jal __osContRamRead +/* 01F760 7001EB60 8D450008 */ lw $a1, 8($t2) +/* 01F764 7001EB64 AFA20074 */ sw $v0, 0x74($sp) +/* 01F768 7001EB68 8FAC0074 */ lw $t4, 0x74($sp) +/* 01F76C 7001EB6C 11800003 */ beqz $t4, .L7001EB7C +/* 01F770 7001EB70 00000000 */ nop +/* 01F774 7001EB74 100000C5 */ b .L7001EE8C +/* 01F778 7001EB78 01801025 */ move $v0, $t4 +.L7001EB7C: +/* 01F77C 7001EB7C 8FAD0028 */ lw $t5, 0x28($sp) +/* 01F780 7001EB80 27AE0054 */ addiu $t6, $sp, 0x54 +/* 01F784 7001EB84 240F0001 */ li $t7, 1 +/* 01F788 7001EB88 35AB0080 */ ori $t3, $t5, 0x80 +/* 01F78C 7001EB8C A1CB0000 */ sb $t3, ($t6) +/* 01F790 7001EB90 AFAF002C */ sw $t7, 0x2c($sp) +.L7001EB94: +/* 01F794 7001EB94 8FB8002C */ lw $t8, 0x2c($sp) +/* 01F798 7001EB98 27B90054 */ addiu $t9, $sp, 0x54 +/* 01F79C 7001EB9C 03194021 */ addu $t0, $t8, $t9 +/* 01F7A0 7001EBA0 91090000 */ lbu $t1, ($t0) +/* 01F7A4 7001EBA4 01205027 */ not $t2, $t1 +/* 01F7A8 7001EBA8 A10A0000 */ sb $t2, ($t0) +/* 01F7AC 7001EBAC 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F7B0 7001EBB0 258D0001 */ addiu $t5, $t4, 1 +/* 01F7B4 7001EBB4 29A10020 */ slti $at, $t5, 0x20 +/* 01F7B8 7001EBB8 1420FFF6 */ bnez $at, .L7001EB94 +/* 01F7BC 7001EBBC AFAD002C */ sw $t5, 0x2c($sp) +/* 01F7C0 7001EBC0 8FAB0078 */ lw $t3, 0x78($sp) +/* 01F7C4 7001EBC4 00003025 */ move $a2, $zero +/* 01F7C8 7001EBC8 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F7CC 7001EBCC 8D640004 */ lw $a0, 4($t3) +/* 01F7D0 7001EBD0 8D650008 */ lw $a1, 8($t3) +/* 01F7D4 7001EBD4 0C005840 */ jal __osContRamWrite +/* 01F7D8 7001EBD8 AFA00010 */ sw $zero, 0x10($sp) +/* 01F7DC 7001EBDC AFA20074 */ sw $v0, 0x74($sp) +/* 01F7E0 7001EBE0 8FAE0074 */ lw $t6, 0x74($sp) +/* 01F7E4 7001EBE4 11C00003 */ beqz $t6, .L7001EBF4 +/* 01F7E8 7001EBE8 00000000 */ nop +/* 01F7EC 7001EBEC 100000A7 */ b .L7001EE8C +/* 01F7F0 7001EBF0 01C01025 */ move $v0, $t6 +.L7001EBF4: +/* 01F7F4 7001EBF4 8FAF0078 */ lw $t7, 0x78($sp) +/* 01F7F8 7001EBF8 00003025 */ move $a2, $zero +/* 01F7FC 7001EBFC 27A70034 */ addiu $a3, $sp, 0x34 +/* 01F800 7001EC00 8DE40004 */ lw $a0, 4($t7) +/* 01F804 7001EC04 0C00592C */ jal __osContRamRead +/* 01F808 7001EC08 8DE50008 */ lw $a1, 8($t7) +/* 01F80C 7001EC0C AFA20074 */ sw $v0, 0x74($sp) +/* 01F810 7001EC10 8FB80074 */ lw $t8, 0x74($sp) +/* 01F814 7001EC14 13000003 */ beqz $t8, .L7001EC24 +/* 01F818 7001EC18 00000000 */ nop +/* 01F81C 7001EC1C 1000009B */ b .L7001EE8C +/* 01F820 7001EC20 03001025 */ move $v0, $t8 +.L7001EC24: +/* 01F824 7001EC24 AFA0002C */ sw $zero, 0x2c($sp) +.L7001EC28: +/* 01F828 7001EC28 8FB9002C */ lw $t9, 0x2c($sp) +/* 01F82C 7001EC2C 03B94821 */ addu $t1, $sp, $t9 +/* 01F830 7001EC30 03B95021 */ addu $t2, $sp, $t9 +/* 01F834 7001EC34 914A0034 */ lbu $t2, 0x34($t2) +/* 01F838 7001EC38 91290054 */ lbu $t1, 0x54($t1) +/* 01F83C 7001EC3C 152A0006 */ bne $t1, $t2, .L7001EC58 +/* 01F840 7001EC40 00000000 */ nop +/* 01F844 7001EC44 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F848 7001EC48 250C0001 */ addiu $t4, $t0, 1 +/* 01F84C 7001EC4C 29810020 */ slti $at, $t4, 0x20 +/* 01F850 7001EC50 1420FFF5 */ bnez $at, .L7001EC28 +/* 01F854 7001EC54 AFAC002C */ sw $t4, 0x2c($sp) +.L7001EC58: +/* 01F858 7001EC58 8FAD002C */ lw $t5, 0x2c($sp) +/* 01F85C 7001EC5C 24010020 */ li $at, 32 +/* 01F860 7001EC60 15A10026 */ bne $t5, $at, .L7001ECFC +/* 01F864 7001EC64 00000000 */ nop +/* 01F868 7001EC68 8FAB0028 */ lw $t3, 0x28($sp) +/* 01F86C 7001EC6C 1960001C */ blez $t3, .L7001ECE0 +/* 01F870 7001EC70 00000000 */ nop +/* 01F874 7001EC74 8FAE0078 */ lw $t6, 0x78($sp) +/* 01F878 7001EC78 A1C00065 */ sb $zero, 0x65($t6) +/* 01F87C 7001EC7C 0C007DAB */ jal __osPfsSelectBank +/* 01F880 7001EC80 8FA40078 */ lw $a0, 0x78($sp) +/* 01F884 7001EC84 AFA20074 */ sw $v0, 0x74($sp) +/* 01F888 7001EC88 8FAF0074 */ lw $t7, 0x74($sp) +/* 01F88C 7001EC8C 11E00003 */ beqz $t7, .L7001EC9C +/* 01F890 7001EC90 00000000 */ nop +/* 01F894 7001EC94 1000007D */ b .L7001EE8C +/* 01F898 7001EC98 01E01025 */ move $v0, $t7 +.L7001EC9C: +/* 01F89C 7001EC9C 8FB80078 */ lw $t8, 0x78($sp) +/* 01F8A0 7001ECA0 00003025 */ move $a2, $zero +/* 01F8A4 7001ECA4 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F8A8 7001ECA8 8F040004 */ lw $a0, 4($t8) +/* 01F8AC 7001ECAC 0C00592C */ jal __osContRamRead +/* 01F8B0 7001ECB0 8F050008 */ lw $a1, 8($t8) +/* 01F8B4 7001ECB4 AFA20074 */ sw $v0, 0x74($sp) +/* 01F8B8 7001ECB8 8FB90074 */ lw $t9, 0x74($sp) +/* 01F8BC 7001ECBC 13200003 */ beqz $t9, .L7001ECCC +/* 01F8C0 7001ECC0 00000000 */ nop +/* 01F8C4 7001ECC4 10000071 */ b .L7001EE8C +/* 01F8C8 7001ECC8 03201025 */ move $v0, $t9 +.L7001ECCC: +/* 01F8CC 7001ECCC 27A90054 */ addiu $t1, $sp, 0x54 +/* 01F8D0 7001ECD0 912A0000 */ lbu $t2, ($t1) +/* 01F8D4 7001ECD4 24010080 */ li $at, 128 +/* 01F8D8 7001ECD8 15410008 */ bne $t2, $at, .L7001ECFC +/* 01F8DC 7001ECDC 00000000 */ nop +.L7001ECE0: +/* 01F8E0 7001ECE0 8FA80028 */ lw $t0, 0x28($sp) +/* 01F8E4 7001ECE4 250C0001 */ addiu $t4, $t0, 1 +/* 01F8E8 7001ECE8 AFAC0028 */ sw $t4, 0x28($sp) +/* 01F8EC 7001ECEC 8FAD0028 */ lw $t5, 0x28($sp) +/* 01F8F0 7001ECF0 29A1003E */ slti $at, $t5, 0x3e +/* 01F8F4 7001ECF4 1420FF8A */ bnez $at, .L7001EB20 +/* 01F8F8 7001ECF8 00000000 */ nop +.L7001ECFC: +/* 01F8FC 7001ECFC 8FAB0078 */ lw $t3, 0x78($sp) +/* 01F900 7001ED00 A1600065 */ sb $zero, 0x65($t3) +/* 01F904 7001ED04 0C007DAB */ jal __osPfsSelectBank +/* 01F908 7001ED08 8FA40078 */ lw $a0, 0x78($sp) +/* 01F90C 7001ED0C AFA20074 */ sw $v0, 0x74($sp) +/* 01F910 7001ED10 8FAE0074 */ lw $t6, 0x74($sp) +/* 01F914 7001ED14 11C00003 */ beqz $t6, .L7001ED24 +/* 01F918 7001ED18 00000000 */ nop +/* 01F91C 7001ED1C 1000005B */ b .L7001EE8C +/* 01F920 7001ED20 01C01025 */ move $v0, $t6 +.L7001ED24: +/* 01F924 7001ED24 8FAF0028 */ lw $t7, 0x28($sp) +/* 01F928 7001ED28 19E00004 */ blez $t7, .L7001ED3C +/* 01F92C 7001ED2C 00000000 */ nop +/* 01F930 7001ED30 24180001 */ li $t8, 1 +/* 01F934 7001ED34 10000002 */ b .L7001ED40 +/* 01F938 7001ED38 A3B80033 */ sb $t8, 0x33($sp) +.L7001ED3C: +/* 01F93C 7001ED3C A3A00033 */ sb $zero, 0x33($sp) +.L7001ED40: +/* 01F940 7001ED40 8FB9007C */ lw $t9, 0x7c($sp) +/* 01F944 7001ED44 93A80033 */ lbu $t0, 0x33($sp) +/* 01F948 7001ED48 8FAD0080 */ lw $t5, 0x80($sp) +/* 01F94C 7001ED4C 97290018 */ lhu $t1, 0x18($t9) +/* 01F950 7001ED50 312AFFFE */ andi $t2, $t1, 0xfffe +/* 01F954 7001ED54 01486025 */ or $t4, $t2, $t0 +/* 01F958 7001ED58 A5AC0018 */ sh $t4, 0x18($t5) +/* 01F95C 7001ED5C 8FAE0080 */ lw $t6, 0x80($sp) +/* 01F960 7001ED60 8FAB0028 */ lw $t3, 0x28($sp) +/* 01F964 7001ED64 A1CB001A */ sb $t3, 0x1a($t6) +/* 01F968 7001ED68 8FAF007C */ lw $t7, 0x7c($sp) +/* 01F96C 7001ED6C 8FB90080 */ lw $t9, 0x80($sp) +/* 01F970 7001ED70 91F8001B */ lbu $t8, 0x1b($t7) +/* 01F974 7001ED74 A338001B */ sb $t8, 0x1b($t9) +/* 01F978 7001ED78 8FA90080 */ lw $t1, 0x80($sp) +/* 01F97C 7001ED7C 01202025 */ move $a0, $t1 +/* 01F980 7001ED80 2525001C */ addiu $a1, $t1, 0x1c +/* 01F984 7001ED84 0C007A87 */ jal __osIdCheckSum +/* 01F988 7001ED88 2526001E */ addiu $a2, $t1, 0x1e +/* 01F98C 7001ED8C 240A0001 */ li $t2, 1 +/* 01F990 7001ED90 27A80020 */ addiu $t0, $sp, 0x20 +/* 01F994 7001ED94 A50A0000 */ sh $t2, ($t0) +/* 01F998 7001ED98 240C0003 */ li $t4, 3 +/* 01F99C 7001ED9C 27AD0020 */ addiu $t5, $sp, 0x20 +/* 01F9A0 7001EDA0 A5AC0002 */ sh $t4, 2($t5) +/* 01F9A4 7001EDA4 240B0004 */ li $t3, 4 +/* 01F9A8 7001EDA8 27AE0020 */ addiu $t6, $sp, 0x20 +/* 01F9AC 7001EDAC A5CB0004 */ sh $t3, 4($t6) +/* 01F9B0 7001EDB0 240F0006 */ li $t7, 6 +/* 01F9B4 7001EDB4 27B80020 */ addiu $t8, $sp, 0x20 +/* 01F9B8 7001EDB8 A70F0006 */ sh $t7, 6($t8) +/* 01F9BC 7001EDBC AFA0002C */ sw $zero, 0x2c($sp) +.L7001EDC0: +/* 01F9C0 7001EDC0 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F9C4 7001EDC4 8FB90078 */ lw $t9, 0x78($sp) +/* 01F9C8 7001EDC8 24080001 */ li $t0, 1 +/* 01F9CC 7001EDCC 00095040 */ sll $t2, $t1, 1 +/* 01F9D0 7001EDD0 03AA3021 */ addu $a2, $sp, $t2 +/* 01F9D4 7001EDD4 94C60020 */ lhu $a2, 0x20($a2) +/* 01F9D8 7001EDD8 8F240004 */ lw $a0, 4($t9) +/* 01F9DC 7001EDDC 8F250008 */ lw $a1, 8($t9) +/* 01F9E0 7001EDE0 AFA80010 */ sw $t0, 0x10($sp) +/* 01F9E4 7001EDE4 0C005840 */ jal __osContRamWrite +/* 01F9E8 7001EDE8 8FA70080 */ lw $a3, 0x80($sp) +/* 01F9EC 7001EDEC AFA20074 */ sw $v0, 0x74($sp) +/* 01F9F0 7001EDF0 8FAC0074 */ lw $t4, 0x74($sp) +/* 01F9F4 7001EDF4 11800003 */ beqz $t4, .L7001EE04 +/* 01F9F8 7001EDF8 00000000 */ nop +/* 01F9FC 7001EDFC 10000023 */ b .L7001EE8C +/* 01FA00 7001EE00 01801025 */ move $v0, $t4 +.L7001EE04: +/* 01FA04 7001EE04 8FAD002C */ lw $t5, 0x2c($sp) +/* 01FA08 7001EE08 25AB0001 */ addiu $t3, $t5, 1 +/* 01FA0C 7001EE0C 29610004 */ slti $at, $t3, 4 +/* 01FA10 7001EE10 1420FFEB */ bnez $at, .L7001EDC0 +/* 01FA14 7001EE14 AFAB002C */ sw $t3, 0x2c($sp) +/* 01FA18 7001EE18 8FAE0078 */ lw $t6, 0x78($sp) +/* 01FA1C 7001EE1C 24060001 */ li $a2, 1 +/* 01FA20 7001EE20 27A70054 */ addiu $a3, $sp, 0x54 +/* 01FA24 7001EE24 8DC40004 */ lw $a0, 4($t6) +/* 01FA28 7001EE28 0C00592C */ jal __osContRamRead +/* 01FA2C 7001EE2C 8DC50008 */ lw $a1, 8($t6) +/* 01FA30 7001EE30 AFA20074 */ sw $v0, 0x74($sp) +/* 01FA34 7001EE34 8FAF0074 */ lw $t7, 0x74($sp) +/* 01FA38 7001EE38 11E00003 */ beqz $t7, .L7001EE48 +/* 01FA3C 7001EE3C 00000000 */ nop +/* 01FA40 7001EE40 10000012 */ b .L7001EE8C +/* 01FA44 7001EE44 01E01025 */ move $v0, $t7 +.L7001EE48: +/* 01FA48 7001EE48 AFA0002C */ sw $zero, 0x2c($sp) +.L7001EE4C: +/* 01FA4C 7001EE4C 8FB9002C */ lw $t9, 0x2c($sp) +/* 01FA50 7001EE50 8FB80080 */ lw $t8, 0x80($sp) +/* 01FA54 7001EE54 03B94021 */ addu $t0, $sp, $t9 +/* 01FA58 7001EE58 03194821 */ addu $t1, $t8, $t9 +/* 01FA5C 7001EE5C 912A0000 */ lbu $t2, ($t1) +/* 01FA60 7001EE60 91080054 */ lbu $t0, 0x54($t0) +/* 01FA64 7001EE64 11480003 */ beq $t2, $t0, .L7001EE74 +/* 01FA68 7001EE68 00000000 */ nop +/* 01FA6C 7001EE6C 10000007 */ b .L7001EE8C +/* 01FA70 7001EE70 2402000A */ li $v0, 10 +.L7001EE74: +/* 01FA74 7001EE74 8FAC002C */ lw $t4, 0x2c($sp) +/* 01FA78 7001EE78 258D0001 */ addiu $t5, $t4, 1 +/* 01FA7C 7001EE7C 29A10020 */ slti $at, $t5, 0x20 +/* 01FA80 7001EE80 1420FFF2 */ bnez $at, .L7001EE4C +/* 01FA84 7001EE84 AFAD002C */ sw $t5, 0x2c($sp) +/* 01FA88 7001EE88 00001025 */ move $v0, $zero +.L7001EE8C: +/* 01FA8C 7001EE8C 8FBF001C */ lw $ra, 0x1c($sp) +/* 01FA90 7001EE90 27BD0078 */ addiu $sp, $sp, 0x78 +/* 01FA94 7001EE94 03E00008 */ jr $ra +/* 01FA98 7001EE98 00000000 */ nop + +glabel __osCheckPackId +/* 01FA9C 7001EE9C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01FAA0 7001EEA0 AFA40038 */ sw $a0, 0x38($sp) +/* 01FAA4 7001EEA4 8FAE0038 */ lw $t6, 0x38($sp) +/* 01FAA8 7001EEA8 AFBF001C */ sw $ra, 0x1c($sp) +/* 01FAAC 7001EEAC AFA5003C */ sw $a1, 0x3c($sp) +/* 01FAB0 7001EEB0 AFA0002C */ sw $zero, 0x2c($sp) +/* 01FAB4 7001EEB4 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FAB8 7001EEB8 11E0000A */ beqz $t7, .L7001EEE4 +/* 01FABC 7001EEBC 00000000 */ nop +/* 01FAC0 7001EEC0 A1C00065 */ sb $zero, 0x65($t6) +/* 01FAC4 7001EEC4 0C007DAB */ jal __osPfsSelectBank +/* 01FAC8 7001EEC8 8FA40038 */ lw $a0, 0x38($sp) +/* 01FACC 7001EECC AFA2002C */ sw $v0, 0x2c($sp) +/* 01FAD0 7001EED0 8FB8002C */ lw $t8, 0x2c($sp) +/* 01FAD4 7001EED4 13000003 */ beqz $t8, .L7001EEE4 +/* 01FAD8 7001EED8 00000000 */ nop +/* 01FADC 7001EEDC 10000051 */ b .L7001F024 +/* 01FAE0 7001EEE0 03001025 */ move $v0, $t8 +.L7001EEE4: +/* 01FAE4 7001EEE4 24190001 */ li $t9, 1 +/* 01FAE8 7001EEE8 27A80030 */ addiu $t0, $sp, 0x30 +/* 01FAEC 7001EEEC A5190000 */ sh $t9, ($t0) +/* 01FAF0 7001EEF0 24090003 */ li $t1, 3 +/* 01FAF4 7001EEF4 27AA0030 */ addiu $t2, $sp, 0x30 +/* 01FAF8 7001EEF8 A5490002 */ sh $t1, 2($t2) +/* 01FAFC 7001EEFC 240B0004 */ li $t3, 4 +/* 01FB00 7001EF00 27AC0030 */ addiu $t4, $sp, 0x30 +/* 01FB04 7001EF04 A58B0004 */ sh $t3, 4($t4) +/* 01FB08 7001EF08 240D0006 */ li $t5, 6 +/* 01FB0C 7001EF0C 27AF0030 */ addiu $t7, $sp, 0x30 +/* 01FB10 7001EF10 A5ED0006 */ sh $t5, 6($t7) +/* 01FB14 7001EF14 240E0001 */ li $t6, 1 +/* 01FB18 7001EF18 AFAE0024 */ sw $t6, 0x24($sp) +.L7001EF1C: +/* 01FB1C 7001EF1C 8FB90024 */ lw $t9, 0x24($sp) +/* 01FB20 7001EF20 8FB80038 */ lw $t8, 0x38($sp) +/* 01FB24 7001EF24 8FA7003C */ lw $a3, 0x3c($sp) +/* 01FB28 7001EF28 00194040 */ sll $t0, $t9, 1 +/* 01FB2C 7001EF2C 03A83021 */ addu $a2, $sp, $t0 +/* 01FB30 7001EF30 94C60030 */ lhu $a2, 0x30($a2) +/* 01FB34 7001EF34 8F040004 */ lw $a0, 4($t8) +/* 01FB38 7001EF38 0C00592C */ jal __osContRamRead +/* 01FB3C 7001EF3C 8F050008 */ lw $a1, 8($t8) +/* 01FB40 7001EF40 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FB44 7001EF44 8FA9002C */ lw $t1, 0x2c($sp) +/* 01FB48 7001EF48 11200003 */ beqz $t1, .L7001EF58 +/* 01FB4C 7001EF4C 00000000 */ nop +/* 01FB50 7001EF50 10000034 */ b .L7001F024 +/* 01FB54 7001EF54 01201025 */ move $v0, $t1 +.L7001EF58: +/* 01FB58 7001EF58 8FA4003C */ lw $a0, 0x3c($sp) +/* 01FB5C 7001EF5C 27A5002A */ addiu $a1, $sp, 0x2a +/* 01FB60 7001EF60 0C007A87 */ jal __osIdCheckSum +/* 01FB64 7001EF64 27A60028 */ addiu $a2, $sp, 0x28 +/* 01FB68 7001EF68 8FAA003C */ lw $t2, 0x3c($sp) +/* 01FB6C 7001EF6C 97AC002A */ lhu $t4, 0x2a($sp) +/* 01FB70 7001EF70 954B001C */ lhu $t3, 0x1c($t2) +/* 01FB74 7001EF74 156C0005 */ bne $t3, $t4, .L7001EF8C +/* 01FB78 7001EF78 00000000 */ nop +/* 01FB7C 7001EF7C 954D001E */ lhu $t5, 0x1e($t2) +/* 01FB80 7001EF80 97AF0028 */ lhu $t7, 0x28($sp) +/* 01FB84 7001EF84 11AF0006 */ beq $t5, $t7, .L7001EFA0 +/* 01FB88 7001EF88 00000000 */ nop +.L7001EF8C: +/* 01FB8C 7001EF8C 8FAE0024 */ lw $t6, 0x24($sp) +/* 01FB90 7001EF90 25D80001 */ addiu $t8, $t6, 1 +/* 01FB94 7001EF94 2B010004 */ slti $at, $t8, 4 +/* 01FB98 7001EF98 1420FFE0 */ bnez $at, .L7001EF1C +/* 01FB9C 7001EF9C AFB80024 */ sw $t8, 0x24($sp) +.L7001EFA0: +/* 01FBA0 7001EFA0 8FB90024 */ lw $t9, 0x24($sp) +/* 01FBA4 7001EFA4 24010004 */ li $at, 4 +/* 01FBA8 7001EFA8 17210003 */ bne $t9, $at, .L7001EFB8 +/* 01FBAC 7001EFAC 00000000 */ nop +/* 01FBB0 7001EFB0 1000001C */ b .L7001F024 +/* 01FBB4 7001EFB4 2402000A */ li $v0, 10 +.L7001EFB8: +/* 01FBB8 7001EFB8 AFA00020 */ sw $zero, 0x20($sp) +.L7001EFBC: +/* 01FBBC 7001EFBC 8FA80020 */ lw $t0, 0x20($sp) +/* 01FBC0 7001EFC0 8FA90024 */ lw $t1, 0x24($sp) +/* 01FBC4 7001EFC4 11090011 */ beq $t0, $t1, .L7001F00C +/* 01FBC8 7001EFC8 00000000 */ nop +/* 01FBCC 7001EFCC 8FAB0038 */ lw $t3, 0x38($sp) +/* 01FBD0 7001EFD0 00086040 */ sll $t4, $t0, 1 +/* 01FBD4 7001EFD4 03AC3021 */ addu $a2, $sp, $t4 +/* 01FBD8 7001EFD8 94C60030 */ lhu $a2, 0x30($a2) +/* 01FBDC 7001EFDC 240A0001 */ li $t2, 1 +/* 01FBE0 7001EFE0 8D640004 */ lw $a0, 4($t3) +/* 01FBE4 7001EFE4 8D650008 */ lw $a1, 8($t3) +/* 01FBE8 7001EFE8 AFAA0010 */ sw $t2, 0x10($sp) +/* 01FBEC 7001EFEC 0C005840 */ jal __osContRamWrite +/* 01FBF0 7001EFF0 8FA7003C */ lw $a3, 0x3c($sp) +/* 01FBF4 7001EFF4 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FBF8 7001EFF8 8FAD002C */ lw $t5, 0x2c($sp) +/* 01FBFC 7001EFFC 11A00003 */ beqz $t5, .L7001F00C +/* 01FC00 7001F000 00000000 */ nop +/* 01FC04 7001F004 10000007 */ b .L7001F024 +/* 01FC08 7001F008 01A01025 */ move $v0, $t5 +.L7001F00C: +/* 01FC0C 7001F00C 8FAF0020 */ lw $t7, 0x20($sp) +/* 01FC10 7001F010 25EE0001 */ addiu $t6, $t7, 1 +/* 01FC14 7001F014 29C10004 */ slti $at, $t6, 4 +/* 01FC18 7001F018 1420FFE8 */ bnez $at, .L7001EFBC +/* 01FC1C 7001F01C AFAE0020 */ sw $t6, 0x20($sp) +/* 01FC20 7001F020 00001025 */ move $v0, $zero +.L7001F024: +/* 01FC24 7001F024 8FBF001C */ lw $ra, 0x1c($sp) +/* 01FC28 7001F028 27BD0038 */ addiu $sp, $sp, 0x38 +/* 01FC2C 7001F02C 03E00008 */ jr $ra +/* 01FC30 7001F030 00000000 */ nop + +glabel __osGetId +/* 01FC34 7001F034 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01FC38 7001F038 AFA40068 */ sw $a0, 0x68($sp) +/* 01FC3C 7001F03C 8FAE0068 */ lw $t6, 0x68($sp) +/* 01FC40 7001F040 AFBF0014 */ sw $ra, 0x14($sp) +/* 01FC44 7001F044 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FC48 7001F048 11E0000A */ beqz $t7, .L7001F074 +/* 01FC4C 7001F04C 00000000 */ nop +/* 01FC50 7001F050 A1C00065 */ sb $zero, 0x65($t6) +/* 01FC54 7001F054 0C007DAB */ jal __osPfsSelectBank +/* 01FC58 7001F058 8FA40068 */ lw $a0, 0x68($sp) +/* 01FC5C 7001F05C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FC60 7001F060 8FB8001C */ lw $t8, 0x1c($sp) +/* 01FC64 7001F064 13000003 */ beqz $t8, .L7001F074 +/* 01FC68 7001F068 00000000 */ nop +/* 01FC6C 7001F06C 10000084 */ b .L7001F280 +/* 01FC70 7001F070 03001025 */ move $v0, $t8 +.L7001F074: +/* 01FC74 7001F074 8FB90068 */ lw $t9, 0x68($sp) +/* 01FC78 7001F078 24060001 */ li $a2, 1 +/* 01FC7C 7001F07C 27A70040 */ addiu $a3, $sp, 0x40 +/* 01FC80 7001F080 8F240004 */ lw $a0, 4($t9) +/* 01FC84 7001F084 0C00592C */ jal __osContRamRead +/* 01FC88 7001F088 8F250008 */ lw $a1, 8($t9) +/* 01FC8C 7001F08C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FC90 7001F090 8FA8001C */ lw $t0, 0x1c($sp) +/* 01FC94 7001F094 11000003 */ beqz $t0, .L7001F0A4 +/* 01FC98 7001F098 00000000 */ nop +/* 01FC9C 7001F09C 10000078 */ b .L7001F280 +/* 01FCA0 7001F0A0 01001025 */ move $v0, $t0 +.L7001F0A4: +/* 01FCA4 7001F0A4 27A40040 */ addiu $a0, $sp, 0x40 +/* 01FCA8 7001F0A8 27A50062 */ addiu $a1, $sp, 0x62 +/* 01FCAC 7001F0AC 0C007A87 */ jal __osIdCheckSum +/* 01FCB0 7001F0B0 27A60060 */ addiu $a2, $sp, 0x60 +/* 01FCB4 7001F0B4 27A90040 */ addiu $t1, $sp, 0x40 +/* 01FCB8 7001F0B8 AFA90018 */ sw $t1, 0x18($sp) +/* 01FCBC 7001F0BC 952A001C */ lhu $t2, 0x1c($t1) +/* 01FCC0 7001F0C0 97AB0062 */ lhu $t3, 0x62($sp) +/* 01FCC4 7001F0C4 154B0005 */ bne $t2, $t3, .L7001F0DC +/* 01FCC8 7001F0C8 00000000 */ nop +/* 01FCCC 7001F0CC 952C001E */ lhu $t4, 0x1e($t1) +/* 01FCD0 7001F0D0 97AD0060 */ lhu $t5, 0x60($sp) +/* 01FCD4 7001F0D4 118D001B */ beq $t4, $t5, .L7001F144 +/* 01FCD8 7001F0D8 00000000 */ nop +.L7001F0DC: +/* 01FCDC 7001F0DC 8FA40068 */ lw $a0, 0x68($sp) +/* 01FCE0 7001F0E0 0C007BA7 */ jal __osCheckPackId +/* 01FCE4 7001F0E4 8FA50018 */ lw $a1, 0x18($sp) +/* 01FCE8 7001F0E8 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FCEC 7001F0EC 8FAF001C */ lw $t7, 0x1c($sp) +/* 01FCF0 7001F0F0 2401000A */ li $at, 10 +/* 01FCF4 7001F0F4 15E1000E */ bne $t7, $at, .L7001F130 +/* 01FCF8 7001F0F8 00000000 */ nop +/* 01FCFC 7001F0FC 8FA40068 */ lw $a0, 0x68($sp) +/* 01FD00 7001F100 8FA50018 */ lw $a1, 0x18($sp) +/* 01FD04 7001F104 0C007AA1 */ jal __osRepairPackId +/* 01FD08 7001F108 27A60020 */ addiu $a2, $sp, 0x20 +/* 01FD0C 7001F10C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FD10 7001F110 8FAE001C */ lw $t6, 0x1c($sp) +/* 01FD14 7001F114 11C00003 */ beqz $t6, .L7001F124 +/* 01FD18 7001F118 00000000 */ nop +/* 01FD1C 7001F11C 10000058 */ b .L7001F280 +/* 01FD20 7001F120 01C01025 */ move $v0, $t6 +.L7001F124: +/* 01FD24 7001F124 27B80020 */ addiu $t8, $sp, 0x20 +/* 01FD28 7001F128 10000006 */ b .L7001F144 +/* 01FD2C 7001F12C AFB80018 */ sw $t8, 0x18($sp) +.L7001F130: +/* 01FD30 7001F130 8FB9001C */ lw $t9, 0x1c($sp) +/* 01FD34 7001F134 13200003 */ beqz $t9, .L7001F144 +/* 01FD38 7001F138 00000000 */ nop +/* 01FD3C 7001F13C 10000050 */ b .L7001F280 +/* 01FD40 7001F140 03201025 */ move $v0, $t9 +.L7001F144: +/* 01FD44 7001F144 8FA80018 */ lw $t0, 0x18($sp) +/* 01FD48 7001F148 950A0018 */ lhu $t2, 0x18($t0) +/* 01FD4C 7001F14C 314B0001 */ andi $t3, $t2, 1 +/* 01FD50 7001F150 15600013 */ bnez $t3, .L7001F1A0 +/* 01FD54 7001F154 00000000 */ nop +/* 01FD58 7001F158 8FA40068 */ lw $a0, 0x68($sp) +/* 01FD5C 7001F15C 01002825 */ move $a1, $t0 +/* 01FD60 7001F160 0C007AA1 */ jal __osRepairPackId +/* 01FD64 7001F164 27A60020 */ addiu $a2, $sp, 0x20 +/* 01FD68 7001F168 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FD6C 7001F16C 8FA9001C */ lw $t1, 0x1c($sp) +/* 01FD70 7001F170 11200003 */ beqz $t1, .L7001F180 +/* 01FD74 7001F174 00000000 */ nop +/* 01FD78 7001F178 10000041 */ b .L7001F280 +/* 01FD7C 7001F17C 01201025 */ move $v0, $t1 +.L7001F180: +/* 01FD80 7001F180 27AC0020 */ addiu $t4, $sp, 0x20 +/* 01FD84 7001F184 AFAC0018 */ sw $t4, 0x18($sp) +/* 01FD88 7001F188 958D0018 */ lhu $t5, 0x18($t4) +/* 01FD8C 7001F18C 31AF0001 */ andi $t7, $t5, 1 +/* 01FD90 7001F190 15E00003 */ bnez $t7, .L7001F1A0 +/* 01FD94 7001F194 00000000 */ nop +/* 01FD98 7001F198 10000039 */ b .L7001F280 +/* 01FD9C 7001F19C 2402000B */ li $v0, 11 +.L7001F1A0: +/* 01FDA0 7001F1A0 AFA00064 */ sw $zero, 0x64($sp) +.L7001F1A4: +/* 01FDA4 7001F1A4 8FAE0018 */ lw $t6, 0x18($sp) +/* 01FDA8 7001F1A8 8FB80064 */ lw $t8, 0x64($sp) +/* 01FDAC 7001F1AC 8FAB0068 */ lw $t3, 0x68($sp) +/* 01FDB0 7001F1B0 01D8C821 */ addu $t9, $t6, $t8 +/* 01FDB4 7001F1B4 932A0000 */ lbu $t2, ($t9) +/* 01FDB8 7001F1B8 01784021 */ addu $t0, $t3, $t8 +/* 01FDBC 7001F1BC A10A000C */ sb $t2, 0xc($t0) +/* 01FDC0 7001F1C0 8FA90064 */ lw $t1, 0x64($sp) +/* 01FDC4 7001F1C4 252C0001 */ addiu $t4, $t1, 1 +/* 01FDC8 7001F1C8 29810020 */ slti $at, $t4, 0x20 +/* 01FDCC 7001F1CC 1420FFF5 */ bnez $at, .L7001F1A4 +/* 01FDD0 7001F1D0 AFAC0064 */ sw $t4, 0x64($sp) +/* 01FDD4 7001F1D4 8FAD0018 */ lw $t5, 0x18($sp) +/* 01FDD8 7001F1D8 8FAE0068 */ lw $t6, 0x68($sp) +/* 01FDDC 7001F1DC 24060007 */ li $a2, 7 +/* 01FDE0 7001F1E0 91AF001B */ lbu $t7, 0x1b($t5) +/* 01FDE4 7001F1E4 240D0010 */ li $t5, 16 +/* 01FDE8 7001F1E8 ADCF004C */ sw $t7, 0x4c($t6) +/* 01FDEC 7001F1EC 8FB90018 */ lw $t9, 0x18($sp) +/* 01FDF0 7001F1F0 8FB80068 */ lw $t8, 0x68($sp) +/* 01FDF4 7001F1F4 240E0008 */ li $t6, 8 +/* 01FDF8 7001F1F8 932B001A */ lbu $t3, 0x1a($t9) +/* 01FDFC 7001F1FC A30B0064 */ sb $t3, 0x64($t8) +/* 01FE00 7001F200 8FAA0068 */ lw $t2, 0x68($sp) +/* 01FE04 7001F204 91480064 */ lbu $t0, 0x64($t2) +/* 01FE08 7001F208 00084840 */ sll $t1, $t0, 1 +/* 01FE0C 7001F20C 252C0003 */ addiu $t4, $t1, 3 +/* 01FE10 7001F210 AD4C0060 */ sw $t4, 0x60($t2) +/* 01FE14 7001F214 8FAF0068 */ lw $t7, 0x68($sp) +/* 01FE18 7001F218 ADED0050 */ sw $t5, 0x50($t7) +/* 01FE1C 7001F21C 8FB90068 */ lw $t9, 0x68($sp) +/* 01FE20 7001F220 AF2E0054 */ sw $t6, 0x54($t9) +/* 01FE24 7001F224 8FAB0068 */ lw $t3, 0x68($sp) +/* 01FE28 7001F228 91780064 */ lbu $t8, 0x64($t3) +/* 01FE2C 7001F22C 001840C0 */ sll $t0, $t8, 3 +/* 01FE30 7001F230 25090008 */ addiu $t1, $t0, 8 +/* 01FE34 7001F234 AD690058 */ sw $t1, 0x58($t3) +/* 01FE38 7001F238 8FAC0068 */ lw $t4, 0x68($sp) +/* 01FE3C 7001F23C 918D0064 */ lbu $t5, 0x64($t4) +/* 01FE40 7001F240 8D8A0058 */ lw $t2, 0x58($t4) +/* 01FE44 7001F244 000D78C0 */ sll $t7, $t5, 3 +/* 01FE48 7001F248 014F7021 */ addu $t6, $t2, $t7 +/* 01FE4C 7001F24C AD8E005C */ sw $t6, 0x5c($t4) +/* 01FE50 7001F250 8FB90068 */ lw $t9, 0x68($sp) +/* 01FE54 7001F254 8F240004 */ lw $a0, 4($t9) +/* 01FE58 7001F258 8F250008 */ lw $a1, 8($t9) +/* 01FE5C 7001F25C 0C00592C */ jal __osContRamRead +/* 01FE60 7001F260 2727002C */ addiu $a3, $t9, 0x2c +/* 01FE64 7001F264 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FE68 7001F268 8FB8001C */ lw $t8, 0x1c($sp) +/* 01FE6C 7001F26C 13000003 */ beqz $t8, .L7001F27C +/* 01FE70 7001F270 00000000 */ nop +/* 01FE74 7001F274 10000002 */ b .L7001F280 +/* 01FE78 7001F278 03001025 */ move $v0, $t8 +.L7001F27C: +/* 01FE7C 7001F27C 00001025 */ move $v0, $zero +.L7001F280: +/* 01FE80 7001F280 8FBF0014 */ lw $ra, 0x14($sp) +/* 01FE84 7001F284 27BD0068 */ addiu $sp, $sp, 0x68 +/* 01FE88 7001F288 03E00008 */ jr $ra +/* 01FE8C 7001F28C 00000000 */ nop + +glabel __osCheckId +/* 01FE90 7001F290 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01FE94 7001F294 AFA40040 */ sw $a0, 0x40($sp) +/* 01FE98 7001F298 8FAE0040 */ lw $t6, 0x40($sp) +/* 01FE9C 7001F29C AFBF0014 */ sw $ra, 0x14($sp) +/* 01FEA0 7001F2A0 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FEA4 7001F2A4 11E0000A */ beqz $t7, .L7001F2D0 +/* 01FEA8 7001F2A8 00000000 */ nop +/* 01FEAC 7001F2AC A1C00065 */ sb $zero, 0x65($t6) +/* 01FEB0 7001F2B0 0C007DAB */ jal __osPfsSelectBank +/* 01FEB4 7001F2B4 8FA40040 */ lw $a0, 0x40($sp) +/* 01FEB8 7001F2B8 AFA20018 */ sw $v0, 0x18($sp) +/* 01FEBC 7001F2BC 8FB80018 */ lw $t8, 0x18($sp) +/* 01FEC0 7001F2C0 13000003 */ beqz $t8, .L7001F2D0 +/* 01FEC4 7001F2C4 00000000 */ nop +/* 01FEC8 7001F2C8 1000002C */ b .L7001F37C +/* 01FECC 7001F2CC 03001025 */ move $v0, $t8 +.L7001F2D0: +/* 01FED0 7001F2D0 8FB90040 */ lw $t9, 0x40($sp) +/* 01FED4 7001F2D4 24060001 */ li $a2, 1 +/* 01FED8 7001F2D8 27A7001C */ addiu $a3, $sp, 0x1c +/* 01FEDC 7001F2DC 8F240004 */ lw $a0, 4($t9) +/* 01FEE0 7001F2E0 0C00592C */ jal __osContRamRead +/* 01FEE4 7001F2E4 8F250008 */ lw $a1, 8($t9) +/* 01FEE8 7001F2E8 AFA20018 */ sw $v0, 0x18($sp) +/* 01FEEC 7001F2EC 8FA80018 */ lw $t0, 0x18($sp) +/* 01FEF0 7001F2F0 11000011 */ beqz $t0, .L7001F338 +/* 01FEF4 7001F2F4 24010002 */ li $at, 2 +/* 01FEF8 7001F2F8 11010003 */ beq $t0, $at, .L7001F308 +/* 01FEFC 7001F2FC 00000000 */ nop +/* 01FF00 7001F300 1000001E */ b .L7001F37C +/* 01FF04 7001F304 01001025 */ move $v0, $t0 +.L7001F308: +/* 01FF08 7001F308 8FA90040 */ lw $t1, 0x40($sp) +/* 01FF0C 7001F30C 24060001 */ li $a2, 1 +/* 01FF10 7001F310 27A7001C */ addiu $a3, $sp, 0x1c +/* 01FF14 7001F314 8D240004 */ lw $a0, 4($t1) +/* 01FF18 7001F318 0C00592C */ jal __osContRamRead +/* 01FF1C 7001F31C 8D250008 */ lw $a1, 8($t1) +/* 01FF20 7001F320 AFA20018 */ sw $v0, 0x18($sp) +/* 01FF24 7001F324 8FAA0018 */ lw $t2, 0x18($sp) +/* 01FF28 7001F328 11400003 */ beqz $t2, .L7001F338 +/* 01FF2C 7001F32C 00000000 */ nop +/* 01FF30 7001F330 10000012 */ b .L7001F37C +/* 01FF34 7001F334 01401025 */ move $v0, $t2 +.L7001F338: +/* 01FF38 7001F338 AFA0003C */ sw $zero, 0x3c($sp) +.L7001F33C: +/* 01FF3C 7001F33C 8FAB003C */ lw $t3, 0x3c($sp) +/* 01FF40 7001F340 8FAD0040 */ lw $t5, 0x40($sp) +/* 01FF44 7001F344 03AB6021 */ addu $t4, $sp, $t3 +/* 01FF48 7001F348 01AB7821 */ addu $t7, $t5, $t3 +/* 01FF4C 7001F34C 91EE000C */ lbu $t6, 0xc($t7) +/* 01FF50 7001F350 918C001C */ lbu $t4, 0x1c($t4) +/* 01FF54 7001F354 118E0003 */ beq $t4, $t6, .L7001F364 +/* 01FF58 7001F358 00000000 */ nop +/* 01FF5C 7001F35C 10000007 */ b .L7001F37C +/* 01FF60 7001F360 24020002 */ li $v0, 2 +.L7001F364: +/* 01FF64 7001F364 8FB8003C */ lw $t8, 0x3c($sp) +/* 01FF68 7001F368 27190001 */ addiu $t9, $t8, 1 +/* 01FF6C 7001F36C 2B210020 */ slti $at, $t9, 0x20 +/* 01FF70 7001F370 1420FFF2 */ bnez $at, .L7001F33C +/* 01FF74 7001F374 AFB9003C */ sw $t9, 0x3c($sp) +/* 01FF78 7001F378 00001025 */ move $v0, $zero +.L7001F37C: +/* 01FF7C 7001F37C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01FF80 7001F380 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01FF84 7001F384 03E00008 */ jr $ra +/* 01FF88 7001F388 00000000 */ nop + +glabel __osPfsRWInode +/* 01FF8C 7001F38C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01FF90 7001F390 AFA40038 */ sw $a0, 0x38($sp) +/* 01FF94 7001F394 8FAE0038 */ lw $t6, 0x38($sp) +/* 01FF98 7001F398 AFBF001C */ sw $ra, 0x1c($sp) +/* 01FF9C 7001F39C AFA5003C */ sw $a1, 0x3c($sp) +/* 01FFA0 7001F3A0 AFA60040 */ sw $a2, 0x40($sp) +/* 01FFA4 7001F3A4 AFA70044 */ sw $a3, 0x44($sp) +/* 01FFA8 7001F3A8 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FFAC 7001F3AC 11E0000A */ beqz $t7, .L7001F3D8 +/* 01FFB0 7001F3B0 00000000 */ nop +/* 01FFB4 7001F3B4 A1C00065 */ sb $zero, 0x65($t6) +/* 01FFB8 7001F3B8 0C007DAB */ jal __osPfsSelectBank +/* 01FFBC 7001F3BC 8FA40038 */ lw $a0, 0x38($sp) +/* 01FFC0 7001F3C0 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FFC4 7001F3C4 8FB8002C */ lw $t8, 0x2c($sp) +/* 01FFC8 7001F3C8 13000003 */ beqz $t8, .L7001F3D8 +/* 01FFCC 7001F3CC 00000000 */ nop +/* 01FFD0 7001F3D0 100000B2 */ b .L7001F69C +/* 01FFD4 7001F3D4 03001025 */ move $v0, $t8 +.L7001F3D8: +/* 01FFD8 7001F3D8 93B90047 */ lbu $t9, 0x47($sp) +/* 01FFDC 7001F3DC 1B200004 */ blez $t9, .L7001F3F0 +/* 01FFE0 7001F3E0 00000000 */ nop +/* 01FFE4 7001F3E4 24080001 */ li $t0, 1 +/* 01FFE8 7001F3E8 10000004 */ b .L7001F3FC +/* 01FFEC 7001F3EC AFA80028 */ sw $t0, 0x28($sp) +.L7001F3F0: +/* 01FFF0 7001F3F0 8FA90038 */ lw $t1, 0x38($sp) +/* 01FFF4 7001F3F4 8D2A0060 */ lw $t2, 0x60($t1) +/* 01FFF8 7001F3F8 AFAA0028 */ sw $t2, 0x28($sp) +.L7001F3FC: +/* 01FFFC 7001F3FC 93AB0043 */ lbu $t3, 0x43($sp) +/* 020000 7001F400 24010001 */ li $at, 1 +/* 020004 7001F404 1561000C */ bne $t3, $at, .L7001F438 +/* 020008 7001F408 00000000 */ nop +/* 02000C 7001F40C 8FAD0028 */ lw $t5, 0x28($sp) +/* 020010 7001F410 8FAC003C */ lw $t4, 0x3c($sp) +/* 020014 7001F414 000D2823 */ negu $a1, $t5 +/* 020018 7001F418 00057040 */ sll $t6, $a1, 1 +/* 02001C 7001F41C 01C02825 */ move $a1, $t6 +/* 020020 7001F420 000D7840 */ sll $t7, $t5, 1 +/* 020024 7001F424 24A50100 */ addiu $a1, $a1, 0x100 +/* 020028 7001F428 0C007A70 */ jal __osSumcalc +/* 02002C 7001F42C 018F2021 */ addu $a0, $t4, $t7 +/* 020030 7001F430 8FB8003C */ lw $t8, 0x3c($sp) +/* 020034 7001F434 A3020001 */ sb $v0, 1($t8) +.L7001F438: +/* 020038 7001F438 AFA00030 */ sw $zero, 0x30($sp) +.L7001F43C: +/* 02003C 7001F43C 8FA80030 */ lw $t0, 0x30($sp) +/* 020040 7001F440 8FB9003C */ lw $t9, 0x3c($sp) +/* 020044 7001F444 93AB0043 */ lbu $t3, 0x43($sp) +/* 020048 7001F448 00084940 */ sll $t1, $t0, 5 +/* 02004C 7001F44C 24010001 */ li $at, 1 +/* 020050 7001F450 03295021 */ addu $t2, $t9, $t1 +/* 020054 7001F454 1561001B */ bne $t3, $at, .L7001F4C4 +/* 020058 7001F458 AFAA0024 */ sw $t2, 0x24($sp) +/* 02005C 7001F45C 8FAC0038 */ lw $t4, 0x38($sp) +/* 020060 7001F460 93AD0047 */ lbu $t5, 0x47($sp) +/* 020064 7001F464 01403825 */ move $a3, $t2 +/* 020068 7001F468 8D8F0054 */ lw $t7, 0x54($t4) +/* 02006C 7001F46C 000D70C0 */ sll $t6, $t5, 3 +/* 020070 7001F470 8D840004 */ lw $a0, 4($t4) +/* 020074 7001F474 8D850008 */ lw $a1, 8($t4) +/* 020078 7001F478 01EEC021 */ addu $t8, $t7, $t6 +/* 02007C 7001F47C 03083021 */ addu $a2, $t8, $t0 +/* 020080 7001F480 0C005840 */ jal __osContRamWrite +/* 020084 7001F484 AFA00010 */ sw $zero, 0x10($sp) +/* 020088 7001F488 8FB90038 */ lw $t9, 0x38($sp) +/* 02008C 7001F48C 93AB0047 */ lbu $t3, 0x47($sp) +/* 020090 7001F490 AFA2002C */ sw $v0, 0x2c($sp) +/* 020094 7001F494 8F290058 */ lw $t1, 0x58($t9) +/* 020098 7001F498 8FAF0030 */ lw $t7, 0x30($sp) +/* 02009C 7001F49C 000B60C0 */ sll $t4, $t3, 3 +/* 0200A0 7001F4A0 8F250008 */ lw $a1, 8($t9) +/* 0200A4 7001F4A4 8F240004 */ lw $a0, 4($t9) +/* 0200A8 7001F4A8 012C6821 */ addu $t5, $t1, $t4 +/* 0200AC 7001F4AC AFA00010 */ sw $zero, 0x10($sp) +/* 0200B0 7001F4B0 8FA70024 */ lw $a3, 0x24($sp) +/* 0200B4 7001F4B4 0C005840 */ jal __osContRamWrite +/* 0200B8 7001F4B8 01AF3021 */ addu $a2, $t5, $t7 +/* 0200BC 7001F4BC 1000000D */ b .L7001F4F4 +/* 0200C0 7001F4C0 AFA2002C */ sw $v0, 0x2c($sp) +.L7001F4C4: +/* 0200C4 7001F4C4 8FAE0038 */ lw $t6, 0x38($sp) +/* 0200C8 7001F4C8 93A80047 */ lbu $t0, 0x47($sp) +/* 0200CC 7001F4CC 8FAB0030 */ lw $t3, 0x30($sp) +/* 0200D0 7001F4D0 8DD80054 */ lw $t8, 0x54($t6) +/* 0200D4 7001F4D4 000850C0 */ sll $t2, $t0, 3 +/* 0200D8 7001F4D8 8FA70024 */ lw $a3, 0x24($sp) +/* 0200DC 7001F4DC 030AC821 */ addu $t9, $t8, $t2 +/* 0200E0 7001F4E0 8DC40004 */ lw $a0, 4($t6) +/* 0200E4 7001F4E4 8DC50008 */ lw $a1, 8($t6) +/* 0200E8 7001F4E8 0C00592C */ jal __osContRamRead +/* 0200EC 7001F4EC 032B3021 */ addu $a2, $t9, $t3 +/* 0200F0 7001F4F0 AFA2002C */ sw $v0, 0x2c($sp) +.L7001F4F4: +/* 0200F4 7001F4F4 8FA9002C */ lw $t1, 0x2c($sp) +/* 0200F8 7001F4F8 11200003 */ beqz $t1, .L7001F508 +/* 0200FC 7001F4FC 00000000 */ nop +/* 020100 7001F500 10000066 */ b .L7001F69C +/* 020104 7001F504 01201025 */ move $v0, $t1 +.L7001F508: +/* 020108 7001F508 8FAC0030 */ lw $t4, 0x30($sp) +/* 02010C 7001F50C 258D0001 */ addiu $t5, $t4, 1 +/* 020110 7001F510 29A10008 */ slti $at, $t5, 8 +/* 020114 7001F514 1420FFC9 */ bnez $at, .L7001F43C +/* 020118 7001F518 AFAD0030 */ sw $t5, 0x30($sp) +/* 02011C 7001F51C 93AF0043 */ lbu $t7, 0x43($sp) +/* 020120 7001F520 15E0005D */ bnez $t7, .L7001F698 +/* 020124 7001F524 00000000 */ nop +/* 020128 7001F528 8FA80028 */ lw $t0, 0x28($sp) +/* 02012C 7001F52C 8FAE003C */ lw $t6, 0x3c($sp) +/* 020130 7001F530 00082823 */ negu $a1, $t0 +/* 020134 7001F534 00055040 */ sll $t2, $a1, 1 +/* 020138 7001F538 01402825 */ move $a1, $t2 +/* 02013C 7001F53C 0008C040 */ sll $t8, $t0, 1 +/* 020140 7001F540 24A50100 */ addiu $a1, $a1, 0x100 +/* 020144 7001F544 0C007A70 */ jal __osSumcalc +/* 020148 7001F548 01D82021 */ addu $a0, $t6, $t8 +/* 02014C 7001F54C 8FB9003C */ lw $t9, 0x3c($sp) +/* 020150 7001F550 A3A20037 */ sb $v0, 0x37($sp) +/* 020154 7001F554 93A90037 */ lbu $t1, 0x37($sp) +/* 020158 7001F558 932B0001 */ lbu $t3, 1($t9) +/* 02015C 7001F55C 11690037 */ beq $t3, $t1, .L7001F63C +/* 020160 7001F560 00000000 */ nop +/* 020164 7001F564 AFA00030 */ sw $zero, 0x30($sp) +.L7001F568: +/* 020168 7001F568 8FAD0030 */ lw $t5, 0x30($sp) +/* 02016C 7001F56C 8FAC003C */ lw $t4, 0x3c($sp) +/* 020170 7001F570 8FB80038 */ lw $t8, 0x38($sp) +/* 020174 7001F574 000D7940 */ sll $t7, $t5, 5 +/* 020178 7001F578 018F7021 */ addu $t6, $t4, $t7 +/* 02017C 7001F57C 93AA0047 */ lbu $t2, 0x47($sp) +/* 020180 7001F580 AFAE0024 */ sw $t6, 0x24($sp) +/* 020184 7001F584 8F080058 */ lw $t0, 0x58($t8) +/* 020188 7001F588 000AC8C0 */ sll $t9, $t2, 3 +/* 02018C 7001F58C 01C03825 */ move $a3, $t6 +/* 020190 7001F590 01195821 */ addu $t3, $t0, $t9 +/* 020194 7001F594 016D3021 */ addu $a2, $t3, $t5 +/* 020198 7001F598 8F050008 */ lw $a1, 8($t8) +/* 02019C 7001F59C 0C00592C */ jal __osContRamRead +/* 0201A0 7001F5A0 8F040004 */ lw $a0, 4($t8) +/* 0201A4 7001F5A4 8FA90030 */ lw $t1, 0x30($sp) +/* 0201A8 7001F5A8 AFA2002C */ sw $v0, 0x2c($sp) +/* 0201AC 7001F5AC 252C0001 */ addiu $t4, $t1, 1 +/* 0201B0 7001F5B0 29810008 */ slti $at, $t4, 8 +/* 0201B4 7001F5B4 1420FFEC */ bnez $at, .L7001F568 +/* 0201B8 7001F5B8 AFAC0030 */ sw $t4, 0x30($sp) +/* 0201BC 7001F5BC 8FAF003C */ lw $t7, 0x3c($sp) +/* 0201C0 7001F5C0 93AA0037 */ lbu $t2, 0x37($sp) +/* 0201C4 7001F5C4 91F80001 */ lbu $t8, 1($t7) +/* 0201C8 7001F5C8 130A0003 */ beq $t8, $t2, .L7001F5D8 +/* 0201CC 7001F5CC 00000000 */ nop +/* 0201D0 7001F5D0 10000032 */ b .L7001F69C +/* 0201D4 7001F5D4 24020003 */ li $v0, 3 +.L7001F5D8: +/* 0201D8 7001F5D8 AFA00030 */ sw $zero, 0x30($sp) +.L7001F5DC: +/* 0201DC 7001F5DC 8FB90030 */ lw $t9, 0x30($sp) +/* 0201E0 7001F5E0 8FA8003C */ lw $t0, 0x3c($sp) +/* 0201E4 7001F5E4 8FAE0038 */ lw $t6, 0x38($sp) +/* 0201E8 7001F5E8 00195940 */ sll $t3, $t9, 5 +/* 0201EC 7001F5EC 010B6821 */ addu $t5, $t0, $t3 +/* 0201F0 7001F5F0 93AC0047 */ lbu $t4, 0x47($sp) +/* 0201F4 7001F5F4 AFAD0024 */ sw $t5, 0x24($sp) +/* 0201F8 7001F5F8 8DC90054 */ lw $t1, 0x54($t6) +/* 0201FC 7001F5FC 000C78C0 */ sll $t7, $t4, 3 +/* 020200 7001F600 8DC50008 */ lw $a1, 8($t6) +/* 020204 7001F604 8DC40004 */ lw $a0, 4($t6) +/* 020208 7001F608 012FC021 */ addu $t8, $t1, $t7 +/* 02020C 7001F60C AFA00010 */ sw $zero, 0x10($sp) +/* 020210 7001F610 01A03825 */ move $a3, $t5 +/* 020214 7001F614 0C005840 */ jal __osContRamWrite +/* 020218 7001F618 03193021 */ addu $a2, $t8, $t9 +/* 02021C 7001F61C 8FAA0030 */ lw $t2, 0x30($sp) +/* 020220 7001F620 AFA2002C */ sw $v0, 0x2c($sp) +/* 020224 7001F624 25480001 */ addiu $t0, $t2, 1 +/* 020228 7001F628 29010008 */ slti $at, $t0, 8 +/* 02022C 7001F62C 1420FFEB */ bnez $at, .L7001F5DC +/* 020230 7001F630 AFA80030 */ sw $t0, 0x30($sp) +/* 020234 7001F634 10000018 */ b .L7001F698 +/* 020238 7001F638 00000000 */ nop +.L7001F63C: +/* 02023C 7001F63C AFA00030 */ sw $zero, 0x30($sp) +.L7001F640: +/* 020240 7001F640 8FAE0030 */ lw $t6, 0x30($sp) +/* 020244 7001F644 8FAB003C */ lw $t3, 0x3c($sp) +/* 020248 7001F648 8FAF0038 */ lw $t7, 0x38($sp) +/* 02024C 7001F64C 000E6140 */ sll $t4, $t6, 5 +/* 020250 7001F650 016C4821 */ addu $t1, $t3, $t4 +/* 020254 7001F654 93B90047 */ lbu $t9, 0x47($sp) +/* 020258 7001F658 AFA90024 */ sw $t1, 0x24($sp) +/* 02025C 7001F65C 8DF80058 */ lw $t8, 0x58($t7) +/* 020260 7001F660 001968C0 */ sll $t5, $t9, 3 +/* 020264 7001F664 8DE50008 */ lw $a1, 8($t7) +/* 020268 7001F668 8DE40004 */ lw $a0, 4($t7) +/* 02026C 7001F66C 030D5021 */ addu $t2, $t8, $t5 +/* 020270 7001F670 AFA00010 */ sw $zero, 0x10($sp) +/* 020274 7001F674 01203825 */ move $a3, $t1 +/* 020278 7001F678 0C005840 */ jal __osContRamWrite +/* 02027C 7001F67C 014E3021 */ addu $a2, $t2, $t6 +/* 020280 7001F680 8FA80030 */ lw $t0, 0x30($sp) +/* 020284 7001F684 AFA2002C */ sw $v0, 0x2c($sp) +/* 020288 7001F688 250B0001 */ addiu $t3, $t0, 1 +/* 02028C 7001F68C 29610008 */ slti $at, $t3, 8 +/* 020290 7001F690 1420FFEB */ bnez $at, .L7001F640 +/* 020294 7001F694 AFAB0030 */ sw $t3, 0x30($sp) +.L7001F698: +/* 020298 7001F698 00001025 */ move $v0, $zero +.L7001F69C: +/* 02029C 7001F69C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0202A0 7001F6A0 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0202A4 7001F6A4 03E00008 */ jr $ra +/* 0202A8 7001F6A8 00000000 */ nop + +glabel __osPfsSelectBank +/* 0202AC 7001F6AC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0202B0 7001F6B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0202B4 7001F6B4 AFA40048 */ sw $a0, 0x48($sp) +/* 0202B8 7001F6B8 AFA00020 */ sw $zero, 0x20($sp) +/* 0202BC 7001F6BC AFA00024 */ sw $zero, 0x24($sp) +.L7001F6C0: +/* 0202C0 7001F6C0 8FAE0048 */ lw $t6, 0x48($sp) +/* 0202C4 7001F6C4 8FB80024 */ lw $t8, 0x24($sp) +/* 0202C8 7001F6C8 91CF0065 */ lbu $t7, 0x65($t6) +/* 0202CC 7001F6CC 03B8C821 */ addu $t9, $sp, $t8 +/* 0202D0 7001F6D0 A32F0028 */ sb $t7, 0x28($t9) +/* 0202D4 7001F6D4 8FA80024 */ lw $t0, 0x24($sp) +/* 0202D8 7001F6D8 25090001 */ addiu $t1, $t0, 1 +/* 0202DC 7001F6DC 29210020 */ slti $at, $t1, 0x20 +/* 0202E0 7001F6E0 1420FFF7 */ bnez $at, .L7001F6C0 +/* 0202E4 7001F6E4 AFA90024 */ sw $t1, 0x24($sp) +/* 0202E8 7001F6E8 8FAA0048 */ lw $t2, 0x48($sp) +/* 0202EC 7001F6EC 24060400 */ li $a2, 1024 +/* 0202F0 7001F6F0 27A70028 */ addiu $a3, $sp, 0x28 +/* 0202F4 7001F6F4 8D440004 */ lw $a0, 4($t2) +/* 0202F8 7001F6F8 8D450008 */ lw $a1, 8($t2) +/* 0202FC 7001F6FC 0C005840 */ jal __osContRamWrite +/* 020300 7001F700 AFA00010 */ sw $zero, 0x10($sp) +/* 020304 7001F704 8FBF001C */ lw $ra, 0x1c($sp) +/* 020308 7001F708 AFA20020 */ sw $v0, 0x20($sp) +/* 02030C 7001F70C 8FA20020 */ lw $v0, 0x20($sp) +/* 020310 7001F710 03E00008 */ jr $ra +/* 020314 7001F714 27BD0048 */ addiu $sp, $sp, 0x48 + diff --git a/src/libultra/contquery.s b/src/libultra/contquery.s new file mode 100644 index 0000000..125d8f6 --- /dev/null +++ b/src/libultra/contquery.s @@ -0,0 +1,63 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContStartQuery +/* 0158C0 70014CC0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0158C4 70014CC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0158C8 70014CC8 AFA40020 */ sw $a0, 0x20($sp) +/* 0158CC 70014CCC 0C005798 */ jal __osSiGetAccess +/* 0158D0 70014CD0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0158D4 70014CD4 3C0E8006 */ lui $t6, %hi(__osContLastCmd) +/* 0158D8 70014CD8 91CE7CE0 */ lbu $t6, %lo(__osContLastCmd)($t6) +/* 0158DC 70014CDC 11C0000C */ beqz $t6, .L70014D10 +/* 0158E0 70014CE0 00000000 */ nop +/* 0158E4 70014CE4 0C0052F2 */ jal __osPackRequestData +/* 0158E8 70014CE8 00002025 */ move $a0, $zero +/* 0158EC 70014CEC 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0158F0 70014CF0 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 0158F4 70014CF4 0C0057B4 */ jal __osSiRawStartDma +/* 0158F8 70014CF8 24040001 */ li $a0, 1 +/* 0158FC 70014CFC AFA2001C */ sw $v0, 0x1c($sp) +/* 015900 70014D00 8FA40020 */ lw $a0, 0x20($sp) +/* 015904 70014D04 00002825 */ move $a1, $zero +/* 015908 70014D08 0C003774 */ jal osRecvMesg +/* 01590C 70014D0C 24060001 */ li $a2, 1 +.L70014D10: +/* 015910 70014D10 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015914 70014D14 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015918 70014D18 0C0057B4 */ jal __osSiRawStartDma +/* 01591C 70014D1C 00002025 */ move $a0, $zero +/* 015920 70014D20 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015924 70014D24 AFA2001C */ sw $v0, 0x1c($sp) +/* 015928 70014D28 0C0057A9 */ jal __osSiRelAccess +/* 01592C 70014D2C A0207CE0 */ sb $zero, %lo(__osContLastCmd)($at) +/* 015930 70014D30 8FBF0014 */ lw $ra, 0x14($sp) +/* 015934 70014D34 8FA2001C */ lw $v0, 0x1c($sp) +/* 015938 70014D38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01593C 70014D3C 03E00008 */ jr $ra +/* 015940 70014D40 00000000 */ nop + +glabel osContGetQuery +/* 015944 70014D44 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015948 70014D48 AFBF0014 */ sw $ra, 0x14($sp) +/* 01594C 70014D4C AFA40020 */ sw $a0, 0x20($sp) +/* 015950 70014D50 8FA50020 */ lw $a1, 0x20($sp) +/* 015954 70014D54 0C0052BE */ jal __osContGetInitData +/* 015958 70014D58 27A4001F */ addiu $a0, $sp, 0x1f +/* 01595C 70014D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 015960 70014D60 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015964 70014D64 03E00008 */ jr $ra +/* 015968 70014D68 00000000 */ nop + + + diff --git a/src/libultra/contramread.s b/src/libultra/contramread.s new file mode 100644 index 0000000..7decb8f --- /dev/null +++ b/src/libultra/contramread.s @@ -0,0 +1,268 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContRamRead +/* 0170B0 700164B0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0170B4 700164B4 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 0170B8 700164B8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0170BC 700164BC 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 0170C0 700164C0 240F0002 */ li $t7, 2 +/* 0170C4 700164C4 AFA40060 */ sw $a0, 0x60($sp) +/* 0170C8 700164C8 AFA50064 */ sw $a1, 0x64($sp) +/* 0170CC 700164CC AFA60068 */ sw $a2, 0x68($sp) +/* 0170D0 700164D0 AFA7006C */ sw $a3, 0x6c($sp) +/* 0170D4 700164D4 AFB00018 */ sw $s0, 0x18($sp) +/* 0170D8 700164D8 AFA0005C */ sw $zero, 0x5c($sp) +/* 0170DC 700164DC AFAE0054 */ sw $t6, 0x54($sp) +/* 0170E0 700164E0 0C005798 */ jal __osSiGetAccess +/* 0170E4 700164E4 AFAF0028 */ sw $t7, 0x28($sp) +/* 0170E8 700164E8 24180002 */ li $t8, 2 +/* 0170EC 700164EC 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 0170F0 700164F0 A0387CE0 */ sb $t8, %lo(__osContLastCmd)($at) +/* 0170F4 700164F4 8FA40064 */ lw $a0, 0x64($sp) +/* 0170F8 700164F8 0C0059BD */ jal __osContRamRead_sub +/* 0170FC 700164FC 97A5006A */ lhu $a1, 0x6a($sp) +/* 017100 70016500 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 017104 70016504 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 017108 70016508 0C0057B4 */ jal __osSiRawStartDma +/* 01710C 7001650C 24040001 */ li $a0, 1 +/* 017110 70016510 AFA2005C */ sw $v0, 0x5c($sp) +/* 017114 70016514 8FA40060 */ lw $a0, 0x60($sp) +/* 017118 70016518 00002825 */ move $a1, $zero +/* 01711C 7001651C 0C003774 */ jal osRecvMesg +/* 017120 70016520 24060001 */ li $a2, 1 +.L70016524: +/* 017124 70016524 AFA00058 */ sw $zero, 0x58($sp) +.L70016528: +/* 017128 70016528 8FA80058 */ lw $t0, 0x58($sp) +/* 01712C 7001652C 8FAA0058 */ lw $t2, 0x58($sp) +/* 017130 70016530 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 017134 70016534 00084880 */ sll $t1, $t0, 2 +/* 017138 70016538 00290821 */ addu $at, $at, $t1 +/* 01713C 7001653C 241900FF */ li $t9, 255 +/* 017140 70016540 AC397D70 */ sw $t9, %lo(__osPfsPifRam)($at) +/* 017144 70016544 254B0001 */ addiu $t3, $t2, 1 +/* 017148 70016548 29610010 */ slti $at, $t3, 0x10 +/* 01714C 7001654C 1420FFF6 */ bnez $at, .L70016528 +/* 017150 70016550 AFAB0058 */ sw $t3, 0x58($sp) +/* 017154 70016554 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 017158 70016558 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 01715C 7001655C AC207DAC */ sw $zero, %lo(__osPfsPifRam+0x3c)($at) +/* 017160 70016560 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 017164 70016564 0C0057B4 */ jal __osSiRawStartDma +/* 017168 70016568 00002025 */ move $a0, $zero +/* 01716C 7001656C AFA2005C */ sw $v0, 0x5c($sp) +/* 017170 70016570 8FA40060 */ lw $a0, 0x60($sp) +/* 017174 70016574 00002825 */ move $a1, $zero +/* 017178 70016578 0C003774 */ jal osRecvMesg +/* 01717C 7001657C 24060001 */ li $a2, 1 +/* 017180 70016580 8FAD0064 */ lw $t5, 0x64($sp) +/* 017184 70016584 3C0C8006 */ lui $t4, %hi(__osPfsPifRam) +/* 017188 70016588 258C7D70 */ addiu $t4, %lo(__osPfsPifRam) # addiu $t4, $t4, 0x7d70 +/* 01718C 7001658C 11A0000C */ beqz $t5, .L700165C0 +/* 017190 70016590 AFAC0054 */ sw $t4, 0x54($sp) +/* 017194 70016594 19A0000A */ blez $t5, .L700165C0 +/* 017198 70016598 AFA00058 */ sw $zero, 0x58($sp) +.L7001659C: +/* 01719C 7001659C 8FB80058 */ lw $t8, 0x58($sp) +/* 0171A0 700165A0 8FB90064 */ lw $t9, 0x64($sp) +/* 0171A4 700165A4 8FAE0054 */ lw $t6, 0x54($sp) +/* 0171A8 700165A8 27080001 */ addiu $t0, $t8, 1 +/* 0171AC 700165AC 0119082A */ slt $at, $t0, $t9 +/* 0171B0 700165B0 25CF0001 */ addiu $t7, $t6, 1 +/* 0171B4 700165B4 AFA80058 */ sw $t0, 0x58($sp) +/* 0171B8 700165B8 1420FFF8 */ bnez $at, .L7001659C +/* 0171BC 700165BC AFAF0054 */ sw $t7, 0x54($sp) +.L700165C0: +/* 0171C0 700165C0 8FAA0054 */ lw $t2, 0x54($sp) +/* 0171C4 700165C4 27A9002C */ addiu $t1, $sp, 0x2c +/* 0171C8 700165C8 254C0024 */ addiu $t4, $t2, 0x24 +.L700165CC: +/* 0171CC 700165CC 89410000 */ lwl $at, ($t2) +/* 0171D0 700165D0 99410003 */ lwr $at, 3($t2) +/* 0171D4 700165D4 254A000C */ addiu $t2, $t2, 0xc +/* 0171D8 700165D8 2529000C */ addiu $t1, $t1, 0xc +/* 0171DC 700165DC AD21FFF4 */ sw $at, -0xc($t1) +/* 0171E0 700165E0 8941FFF8 */ lwl $at, -8($t2) +/* 0171E4 700165E4 9941FFFB */ lwr $at, -5($t2) +/* 0171E8 700165E8 AD21FFF8 */ sw $at, -8($t1) +/* 0171EC 700165EC 8941FFFC */ lwl $at, -4($t2) +/* 0171F0 700165F0 9941FFFF */ lwr $at, -1($t2) +/* 0171F4 700165F4 154CFFF5 */ bne $t2, $t4, .L700165CC +/* 0171F8 700165F8 AD21FFFC */ sw $at, -4($t1) +/* 0171FC 700165FC 89410000 */ lwl $at, ($t2) +/* 017200 70016600 99410003 */ lwr $at, 3($t2) +/* 017204 70016604 AD210000 */ sw $at, ($t1) +/* 017208 70016608 93AD002E */ lbu $t5, 0x2e($sp) +/* 01720C 7001660C 31AE00C0 */ andi $t6, $t5, 0xc0 +/* 017210 70016610 000E7903 */ sra $t7, $t6, 4 +/* 017214 70016614 15E00025 */ bnez $t7, .L700166AC +/* 017218 70016618 AFAF005C */ sw $t7, 0x5c($sp) +/* 01721C 7001661C 27A4002C */ addiu $a0, $sp, 0x2c +/* 017220 70016620 0C00580C */ jal __osContDataCrc +/* 017224 70016624 24840006 */ addiu $a0, $a0, 6 +/* 017228 70016628 A3A20027 */ sb $v0, 0x27($sp) +/* 01722C 7001662C 93B80027 */ lbu $t8, 0x27($sp) +/* 017230 70016630 93A80052 */ lbu $t0, 0x52($sp) +/* 017234 70016634 1308000F */ beq $t8, $t0, .L70016674 +/* 017238 70016638 00000000 */ nop +/* 01723C 7001663C 8FA40060 */ lw $a0, 0x60($sp) +/* 017240 70016640 0C0051FD */ jal __osPfsGetStatus +/* 017244 70016644 8FA50064 */ lw $a1, 0x64($sp) +/* 017248 70016648 AFA2005C */ sw $v0, 0x5c($sp) +/* 01724C 7001664C 8FB9005C */ lw $t9, 0x5c($sp) +/* 017250 70016650 13200005 */ beqz $t9, .L70016668 +/* 017254 70016654 00000000 */ nop +/* 017258 70016658 0C0057A9 */ jal __osSiRelAccess +/* 01725C 7001665C 00000000 */ nop +/* 017260 70016660 1000001F */ b .L700166E0 +/* 017264 70016664 8FA2005C */ lw $v0, 0x5c($sp) +.L70016668: +/* 017268 70016668 240B0004 */ li $t3, 4 +/* 01726C 7001666C 1000000F */ b .L700166AC +/* 017270 70016670 AFAB005C */ sw $t3, 0x5c($sp) +.L70016674: +/* 017274 70016674 AFA00058 */ sw $zero, 0x58($sp) +.L70016678: +/* 017278 70016678 8FAC0058 */ lw $t4, 0x58($sp) +/* 01727C 7001667C 8FA9006C */ lw $t1, 0x6c($sp) +/* 017280 70016680 03AC5021 */ addu $t2, $sp, $t4 +/* 017284 70016684 914A0032 */ lbu $t2, 0x32($t2) +/* 017288 70016688 A12A0000 */ sb $t2, ($t1) +/* 01728C 7001668C 8FAF0058 */ lw $t7, 0x58($sp) +/* 017290 70016690 8FAD006C */ lw $t5, 0x6c($sp) +/* 017294 70016694 25F80001 */ addiu $t8, $t7, 1 +/* 017298 70016698 2B010020 */ slti $at, $t8, 0x20 +/* 01729C 7001669C 25AE0001 */ addiu $t6, $t5, 1 +/* 0172A0 700166A0 AFB80058 */ sw $t8, 0x58($sp) +/* 0172A4 700166A4 1420FFF4 */ bnez $at, .L70016678 +/* 0172A8 700166A8 AFAE006C */ sw $t6, 0x6c($sp) +.L700166AC: +/* 0172AC 700166AC 8FA8005C */ lw $t0, 0x5c($sp) +/* 0172B0 700166B0 24010004 */ li $at, 4 +/* 0172B4 700166B4 15010007 */ bne $t0, $at, .L700166D4 +/* 0172B8 700166B8 00000000 */ nop +/* 0172BC 700166BC 8FB90028 */ lw $t9, 0x28($sp) +/* 0172C0 700166C0 2B300000 */ slti $s0, $t9, 0 +/* 0172C4 700166C4 3A100001 */ xori $s0, $s0, 1 +/* 0172C8 700166C8 272BFFFF */ addiu $t3, $t9, -1 +/* 0172CC 700166CC 1600FF95 */ bnez $s0, .L70016524 +/* 0172D0 700166D0 AFAB0028 */ sw $t3, 0x28($sp) +.L700166D4: +/* 0172D4 700166D4 0C0057A9 */ jal __osSiRelAccess +/* 0172D8 700166D8 00000000 */ nop +/* 0172DC 700166DC 8FA2005C */ lw $v0, 0x5c($sp) +.L700166E0: +/* 0172E0 700166E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0172E4 700166E4 8FB00018 */ lw $s0, 0x18($sp) +/* 0172E8 700166E8 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0172EC 700166EC 03E00008 */ jr $ra +/* 0172F0 700166F0 00000000 */ nop + +glabel __osContRamRead_sub +/* 0172F4 700166F4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0172F8 700166F8 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 0172FC 700166FC 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 017300 70016700 AFBF0014 */ sw $ra, 0x14($sp) +/* 017304 70016704 AFA40048 */ sw $a0, 0x48($sp) +/* 017308 70016708 AFA5004C */ sw $a1, 0x4c($sp) +/* 01730C 7001670C AFAE0044 */ sw $t6, 0x44($sp) +/* 017310 70016710 AFA00018 */ sw $zero, 0x18($sp) +.L70016714: +/* 017314 70016714 8FAF0018 */ lw $t7, 0x18($sp) +/* 017318 70016718 8FB90018 */ lw $t9, 0x18($sp) +/* 01731C 7001671C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 017320 70016720 000FC080 */ sll $t8, $t7, 2 +/* 017324 70016724 00380821 */ addu $at, $at, $t8 +/* 017328 70016728 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 01732C 7001672C 27280001 */ addiu $t0, $t9, 1 +/* 017330 70016730 29010010 */ slti $at, $t0, 0x10 +/* 017334 70016734 1420FFF7 */ bnez $at, .L70016714 +/* 017338 70016738 AFA80018 */ sw $t0, 0x18($sp) +/* 01733C 7001673C 24090001 */ li $t1, 1 +/* 017340 70016740 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 017344 70016744 240A00FF */ li $t2, 255 +/* 017348 70016748 240B0003 */ li $t3, 3 +/* 01734C 7001674C 240C0021 */ li $t4, 33 +/* 017350 70016750 240D0002 */ li $t5, 2 +/* 017354 70016754 AC297DAC */ sw $t1, %lo(__osPfsPifRam+0x3c)($at) +/* 017358 70016758 A3AA001C */ sb $t2, 0x1c($sp) +/* 01735C 7001675C A3AB001D */ sb $t3, 0x1d($sp) +/* 017360 70016760 A3AC001E */ sb $t4, 0x1e($sp) +/* 017364 70016764 A3AD001F */ sb $t5, 0x1f($sp) +/* 017368 70016768 0C0057E0 */ jal __osContAddressCrc +/* 01736C 7001676C 97A4004E */ lhu $a0, 0x4e($sp) +/* 017370 70016770 97AE004E */ lhu $t6, 0x4e($sp) +/* 017374 70016774 241900FF */ li $t9, 255 +/* 017378 70016778 A3B90042 */ sb $t9, 0x42($sp) +/* 01737C 7001677C 000E7940 */ sll $t7, $t6, 5 +/* 017380 70016780 004FC025 */ or $t8, $v0, $t7 +/* 017384 70016784 A7B80020 */ sh $t8, 0x20($sp) +/* 017388 70016788 AFA00018 */ sw $zero, 0x18($sp) +.L7001678C: +/* 01738C 7001678C 8FA90018 */ lw $t1, 0x18($sp) +/* 017390 70016790 240800FF */ li $t0, 255 +/* 017394 70016794 03A95021 */ addu $t2, $sp, $t1 +/* 017398 70016798 A1480022 */ sb $t0, 0x22($t2) +/* 01739C 7001679C 8FAB0018 */ lw $t3, 0x18($sp) +/* 0173A0 700167A0 256C0001 */ addiu $t4, $t3, 1 +/* 0173A4 700167A4 29810020 */ slti $at, $t4, 0x20 +/* 0173A8 700167A8 1420FFF8 */ bnez $at, .L7001678C +/* 0173AC 700167AC AFAC0018 */ sw $t4, 0x18($sp) +/* 0173B0 700167B0 8FAD0048 */ lw $t5, 0x48($sp) +/* 0173B4 700167B4 11A0000E */ beqz $t5, .L700167F0 +/* 0173B8 700167B8 00000000 */ nop +/* 0173BC 700167BC 19A0000C */ blez $t5, .L700167F0 +/* 0173C0 700167C0 AFA00018 */ sw $zero, 0x18($sp) +.L700167C4: +/* 0173C4 700167C4 8FAE0044 */ lw $t6, 0x44($sp) +/* 0173C8 700167C8 A1C00000 */ sb $zero, ($t6) +/* 0173CC 700167CC 8FB90018 */ lw $t9, 0x18($sp) +/* 0173D0 700167D0 8FA90048 */ lw $t1, 0x48($sp) +/* 0173D4 700167D4 8FAF0044 */ lw $t7, 0x44($sp) +/* 0173D8 700167D8 27280001 */ addiu $t0, $t9, 1 +/* 0173DC 700167DC 0109082A */ slt $at, $t0, $t1 +/* 0173E0 700167E0 25F80001 */ addiu $t8, $t7, 1 +/* 0173E4 700167E4 AFA80018 */ sw $t0, 0x18($sp) +/* 0173E8 700167E8 1420FFF6 */ bnez $at, .L700167C4 +/* 0173EC 700167EC AFB80044 */ sw $t8, 0x44($sp) +.L700167F0: +/* 0173F0 700167F0 27AB001C */ addiu $t3, $sp, 0x1c +/* 0173F4 700167F4 256D0024 */ addiu $t5, $t3, 0x24 +/* 0173F8 700167F8 8FAA0044 */ lw $t2, 0x44($sp) +.L700167FC: +/* 0173FC 700167FC 8D610000 */ lw $at, ($t3) +/* 017400 70016800 256B000C */ addiu $t3, $t3, 0xc +/* 017404 70016804 254A000C */ addiu $t2, $t2, 0xc +/* 017408 70016808 A941FFF4 */ swl $at, -0xc($t2) +/* 01740C 7001680C B941FFF7 */ swr $at, -9($t2) +/* 017410 70016810 8D61FFF8 */ lw $at, -8($t3) +/* 017414 70016814 A941FFF8 */ swl $at, -8($t2) +/* 017418 70016818 B941FFFB */ swr $at, -5($t2) +/* 01741C 7001681C 8D61FFFC */ lw $at, -4($t3) +/* 017420 70016820 A941FFFC */ swl $at, -4($t2) +/* 017424 70016824 156DFFF5 */ bne $t3, $t5, .L700167FC +/* 017428 70016828 B941FFFF */ swr $at, -1($t2) +/* 01742C 7001682C 8D610000 */ lw $at, ($t3) +/* 017430 70016830 241800FE */ li $t8, 254 +/* 017434 70016834 A9410000 */ swl $at, ($t2) +/* 017438 70016838 B9410003 */ swr $at, 3($t2) +/* 01743C 7001683C 8FAE0044 */ lw $t6, 0x44($sp) +/* 017440 70016840 25CF0028 */ addiu $t7, $t6, 0x28 +/* 017444 70016844 AFAF0044 */ sw $t7, 0x44($sp) +/* 017448 70016848 A1F80000 */ sb $t8, ($t7) +/* 01744C 7001684C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017450 70016850 27BD0048 */ addiu $sp, $sp, 0x48 +/* 017454 70016854 03E00008 */ jr $ra +/* 017458 70016858 00000000 */ nop + diff --git a/src/libultra/contramwrite.s b/src/libultra/contramwrite.s new file mode 100644 index 0000000..e3bc2d8 --- /dev/null +++ b/src/libultra/contramwrite.s @@ -0,0 +1,267 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContRamWrite +/* 016D00 70016100 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 016D04 70016104 8FB80070 */ lw $t8, 0x70($sp) +/* 016D08 70016108 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016D0C 7001610C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016D10 70016110 240F0002 */ li $t7, 2 +/* 016D14 70016114 24010001 */ li $at, 1 +/* 016D18 70016118 AFBF001C */ sw $ra, 0x1c($sp) +/* 016D1C 7001611C AFA40060 */ sw $a0, 0x60($sp) +/* 016D20 70016120 AFA50064 */ sw $a1, 0x64($sp) +/* 016D24 70016124 AFA60068 */ sw $a2, 0x68($sp) +/* 016D28 70016128 AFA7006C */ sw $a3, 0x6c($sp) +/* 016D2C 7001612C AFB00018 */ sw $s0, 0x18($sp) +/* 016D30 70016130 AFA0005C */ sw $zero, 0x5c($sp) +/* 016D34 70016134 AFAE0054 */ sw $t6, 0x54($sp) +/* 016D38 70016138 13010009 */ beq $t8, $at, .L70016160 +/* 016D3C 7001613C AFAF0028 */ sw $t7, 0x28($sp) +/* 016D40 70016140 97B9006A */ lhu $t9, 0x6a($sp) +/* 016D44 70016144 2B210007 */ slti $at, $t9, 7 +/* 016D48 70016148 10200005 */ beqz $at, .L70016160 +/* 016D4C 7001614C 00000000 */ nop +/* 016D50 70016150 13200003 */ beqz $t9, .L70016160 +/* 016D54 70016154 00000000 */ nop +/* 016D58 70016158 10000070 */ b .L7001631C +/* 016D5C 7001615C 00001025 */ move $v0, $zero +.L70016160: +/* 016D60 70016160 0C005798 */ jal __osSiGetAccess +/* 016D64 70016164 00000000 */ nop +/* 016D68 70016168 24080003 */ li $t0, 3 +/* 016D6C 7001616C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016D70 70016170 A0287CE0 */ sb $t0, %lo(__osContLastCmd)($at) +/* 016D74 70016174 8FA40064 */ lw $a0, 0x64($sp) +/* 016D78 70016178 97A5006A */ lhu $a1, 0x6a($sp) +/* 016D7C 7001617C 0C0058CC */ jal __osContRamWrite_sub +/* 016D80 70016180 8FA6006C */ lw $a2, 0x6c($sp) +/* 016D84 70016184 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 016D88 70016188 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 016D8C 7001618C 0C0057B4 */ jal __osSiRawStartDma +/* 016D90 70016190 24040001 */ li $a0, 1 +/* 016D94 70016194 AFA2005C */ sw $v0, 0x5c($sp) +/* 016D98 70016198 8FA40060 */ lw $a0, 0x60($sp) +/* 016D9C 7001619C 00002825 */ move $a1, $zero +/* 016DA0 700161A0 0C003774 */ jal osRecvMesg +/* 016DA4 700161A4 24060001 */ li $a2, 1 +.L700161A8: +/* 016DA8 700161A8 AFA00058 */ sw $zero, 0x58($sp) +.L700161AC: +/* 016DAC 700161AC 8FAA0058 */ lw $t2, 0x58($sp) +/* 016DB0 700161B0 8FAC0058 */ lw $t4, 0x58($sp) +/* 016DB4 700161B4 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016DB8 700161B8 000A5880 */ sll $t3, $t2, 2 +/* 016DBC 700161BC 002B0821 */ addu $at, $at, $t3 +/* 016DC0 700161C0 240900FF */ li $t1, 255 +/* 016DC4 700161C4 AC297D70 */ sw $t1, %lo(__osPfsPifRam)($at) +/* 016DC8 700161C8 258D0001 */ addiu $t5, $t4, 1 +/* 016DCC 700161CC 29A10010 */ slti $at, $t5, 0x10 +/* 016DD0 700161D0 1420FFF6 */ bnez $at, .L700161AC +/* 016DD4 700161D4 AFAD0058 */ sw $t5, 0x58($sp) +/* 016DD8 700161D8 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016DDC 700161DC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 016DE0 700161E0 AC207DAC */ sw $zero, %lo(__osPfsPifRam+0x3c)($at) +/* 016DE4 700161E4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 016DE8 700161E8 0C0057B4 */ jal __osSiRawStartDma +/* 016DEC 700161EC 00002025 */ move $a0, $zero +/* 016DF0 700161F0 AFA2005C */ sw $v0, 0x5c($sp) +/* 016DF4 700161F4 8FA40060 */ lw $a0, 0x60($sp) +/* 016DF8 700161F8 00002825 */ move $a1, $zero +/* 016DFC 700161FC 0C003774 */ jal osRecvMesg +/* 016E00 70016200 24060001 */ li $a2, 1 +/* 016E04 70016204 8FAF0064 */ lw $t7, 0x64($sp) +/* 016E08 70016208 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016E0C 7001620C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016E10 70016210 11E0000C */ beqz $t7, .L70016244 +/* 016E14 70016214 AFAE0054 */ sw $t6, 0x54($sp) +/* 016E18 70016218 19E0000A */ blez $t7, .L70016244 +/* 016E1C 7001621C AFA00058 */ sw $zero, 0x58($sp) +.L70016220: +/* 016E20 70016220 8FA80058 */ lw $t0, 0x58($sp) +/* 016E24 70016224 8FA90064 */ lw $t1, 0x64($sp) +/* 016E28 70016228 8FB80054 */ lw $t8, 0x54($sp) +/* 016E2C 7001622C 250A0001 */ addiu $t2, $t0, 1 +/* 016E30 70016230 0149082A */ slt $at, $t2, $t1 +/* 016E34 70016234 27190001 */ addiu $t9, $t8, 1 +/* 016E38 70016238 AFAA0058 */ sw $t2, 0x58($sp) +/* 016E3C 7001623C 1420FFF8 */ bnez $at, .L70016220 +/* 016E40 70016240 AFB90054 */ sw $t9, 0x54($sp) +.L70016244: +/* 016E44 70016244 8FAC0054 */ lw $t4, 0x54($sp) +/* 016E48 70016248 27AB002C */ addiu $t3, $sp, 0x2c +/* 016E4C 7001624C 258E0024 */ addiu $t6, $t4, 0x24 +.L70016250: +/* 016E50 70016250 89810000 */ lwl $at, ($t4) +/* 016E54 70016254 99810003 */ lwr $at, 3($t4) +/* 016E58 70016258 258C000C */ addiu $t4, $t4, 0xc +/* 016E5C 7001625C 256B000C */ addiu $t3, $t3, 0xc +/* 016E60 70016260 AD61FFF4 */ sw $at, -0xc($t3) +/* 016E64 70016264 8981FFF8 */ lwl $at, -8($t4) +/* 016E68 70016268 9981FFFB */ lwr $at, -5($t4) +/* 016E6C 7001626C AD61FFF8 */ sw $at, -8($t3) +/* 016E70 70016270 8981FFFC */ lwl $at, -4($t4) +/* 016E74 70016274 9981FFFF */ lwr $at, -1($t4) +/* 016E78 70016278 158EFFF5 */ bne $t4, $t6, .L70016250 +/* 016E7C 7001627C AD61FFFC */ sw $at, -4($t3) +/* 016E80 70016280 89810000 */ lwl $at, ($t4) +/* 016E84 70016284 99810003 */ lwr $at, 3($t4) +/* 016E88 70016288 AD610000 */ sw $at, ($t3) +/* 016E8C 7001628C 93AF002E */ lbu $t7, 0x2e($sp) +/* 016E90 70016290 31F800C0 */ andi $t8, $t7, 0xc0 +/* 016E94 70016294 0018C903 */ sra $t9, $t8, 4 +/* 016E98 70016298 17200013 */ bnez $t9, .L700162E8 +/* 016E9C 7001629C AFB9005C */ sw $t9, 0x5c($sp) +/* 016EA0 700162A0 0C00580C */ jal __osContDataCrc +/* 016EA4 700162A4 8FA4006C */ lw $a0, 0x6c($sp) +/* 016EA8 700162A8 93A80052 */ lbu $t0, 0x52($sp) +/* 016EAC 700162AC 1048000E */ beq $v0, $t0, .L700162E8 +/* 016EB0 700162B0 00000000 */ nop +/* 016EB4 700162B4 8FA40060 */ lw $a0, 0x60($sp) +/* 016EB8 700162B8 0C0051FD */ jal __osPfsGetStatus +/* 016EBC 700162BC 8FA50064 */ lw $a1, 0x64($sp) +/* 016EC0 700162C0 AFA2005C */ sw $v0, 0x5c($sp) +/* 016EC4 700162C4 8FAA005C */ lw $t2, 0x5c($sp) +/* 016EC8 700162C8 11400005 */ beqz $t2, .L700162E0 +/* 016ECC 700162CC 00000000 */ nop +/* 016ED0 700162D0 0C0057A9 */ jal __osSiRelAccess +/* 016ED4 700162D4 00000000 */ nop +/* 016ED8 700162D8 10000010 */ b .L7001631C +/* 016EDC 700162DC 8FA2005C */ lw $v0, 0x5c($sp) +.L700162E0: +/* 016EE0 700162E0 24090004 */ li $t1, 4 +/* 016EE4 700162E4 AFA9005C */ sw $t1, 0x5c($sp) +.L700162E8: +/* 016EE8 700162E8 8FAD005C */ lw $t5, 0x5c($sp) +/* 016EEC 700162EC 24010004 */ li $at, 4 +/* 016EF0 700162F0 15A10007 */ bne $t5, $at, .L70016310 +/* 016EF4 700162F4 00000000 */ nop +/* 016EF8 700162F8 8FAE0028 */ lw $t6, 0x28($sp) +/* 016EFC 700162FC 29D00000 */ slti $s0, $t6, 0 +/* 016F00 70016300 3A100001 */ xori $s0, $s0, 1 +/* 016F04 70016304 25CCFFFF */ addiu $t4, $t6, -1 +/* 016F08 70016308 1600FFA7 */ bnez $s0, .L700161A8 +/* 016F0C 7001630C AFAC0028 */ sw $t4, 0x28($sp) +.L70016310: +/* 016F10 70016310 0C0057A9 */ jal __osSiRelAccess +/* 016F14 70016314 00000000 */ nop +/* 016F18 70016318 8FA2005C */ lw $v0, 0x5c($sp) +.L7001631C: +/* 016F1C 7001631C 8FBF001C */ lw $ra, 0x1c($sp) +/* 016F20 70016320 8FB00018 */ lw $s0, 0x18($sp) +/* 016F24 70016324 27BD0060 */ addiu $sp, $sp, 0x60 +/* 016F28 70016328 03E00008 */ jr $ra +/* 016F2C 7001632C 00000000 */ nop + +glabel __osContRamWrite_sub +/* 016F30 70016330 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 016F34 70016334 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016F38 70016338 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016F3C 7001633C AFBF0014 */ sw $ra, 0x14($sp) +/* 016F40 70016340 AFA40048 */ sw $a0, 0x48($sp) +/* 016F44 70016344 AFA5004C */ sw $a1, 0x4c($sp) +/* 016F48 70016348 AFA60050 */ sw $a2, 0x50($sp) +/* 016F4C 7001634C AFAE0044 */ sw $t6, 0x44($sp) +/* 016F50 70016350 AFA00018 */ sw $zero, 0x18($sp) +.L70016354: +/* 016F54 70016354 8FAF0018 */ lw $t7, 0x18($sp) +/* 016F58 70016358 8FB90018 */ lw $t9, 0x18($sp) +/* 016F5C 7001635C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016F60 70016360 000FC080 */ sll $t8, $t7, 2 +/* 016F64 70016364 00380821 */ addu $at, $at, $t8 +/* 016F68 70016368 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 016F6C 7001636C 27280001 */ addiu $t0, $t9, 1 +/* 016F70 70016370 29010010 */ slti $at, $t0, 0x10 +/* 016F74 70016374 1420FFF7 */ bnez $at, .L70016354 +/* 016F78 70016378 AFA80018 */ sw $t0, 0x18($sp) +/* 016F7C 7001637C 24090001 */ li $t1, 1 +/* 016F80 70016380 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016F84 70016384 240A00FF */ li $t2, 255 +/* 016F88 70016388 240B0023 */ li $t3, 35 +/* 016F8C 7001638C 240C0001 */ li $t4, 1 +/* 016F90 70016390 240D0003 */ li $t5, 3 +/* 016F94 70016394 AC297DAC */ sw $t1, %lo(__osPfsPifRam+0x3c)($at) +/* 016F98 70016398 A3AA001C */ sb $t2, 0x1c($sp) +/* 016F9C 7001639C A3AB001D */ sb $t3, 0x1d($sp) +/* 016FA0 700163A0 A3AC001E */ sb $t4, 0x1e($sp) +/* 016FA4 700163A4 A3AD001F */ sb $t5, 0x1f($sp) +/* 016FA8 700163A8 0C0057E0 */ jal __osContAddressCrc +/* 016FAC 700163AC 97A4004E */ lhu $a0, 0x4e($sp) +/* 016FB0 700163B0 97AE004E */ lhu $t6, 0x4e($sp) +/* 016FB4 700163B4 241900FF */ li $t9, 255 +/* 016FB8 700163B8 A3B90042 */ sb $t9, 0x42($sp) +/* 016FBC 700163BC 000E7940 */ sll $t7, $t6, 5 +/* 016FC0 700163C0 004FC025 */ or $t8, $v0, $t7 +/* 016FC4 700163C4 A7B80020 */ sh $t8, 0x20($sp) +/* 016FC8 700163C8 AFA00018 */ sw $zero, 0x18($sp) +.L700163CC: +/* 016FCC 700163CC 8FA80050 */ lw $t0, 0x50($sp) +/* 016FD0 700163D0 8FAA0018 */ lw $t2, 0x18($sp) +/* 016FD4 700163D4 91090000 */ lbu $t1, ($t0) +/* 016FD8 700163D8 03AA5821 */ addu $t3, $sp, $t2 +/* 016FDC 700163DC A1690022 */ sb $t1, 0x22($t3) +/* 016FE0 700163E0 8FAE0018 */ lw $t6, 0x18($sp) +/* 016FE4 700163E4 8FAC0050 */ lw $t4, 0x50($sp) +/* 016FE8 700163E8 25CF0001 */ addiu $t7, $t6, 1 +/* 016FEC 700163EC 29E10020 */ slti $at, $t7, 0x20 +/* 016FF0 700163F0 258D0001 */ addiu $t5, $t4, 1 +/* 016FF4 700163F4 AFAF0018 */ sw $t7, 0x18($sp) +/* 016FF8 700163F8 1420FFF4 */ bnez $at, .L700163CC +/* 016FFC 700163FC AFAD0050 */ sw $t5, 0x50($sp) +/* 017000 70016400 8FB80048 */ lw $t8, 0x48($sp) +/* 017004 70016404 1300000E */ beqz $t8, .L70016440 +/* 017008 70016408 00000000 */ nop +/* 01700C 7001640C 1B00000C */ blez $t8, .L70016440 +/* 017010 70016410 AFA00018 */ sw $zero, 0x18($sp) +.L70016414: +/* 017014 70016414 8FB90044 */ lw $t9, 0x44($sp) +/* 017018 70016418 A3200000 */ sb $zero, ($t9) +/* 01701C 7001641C 8FAA0018 */ lw $t2, 0x18($sp) +/* 017020 70016420 8FAC0048 */ lw $t4, 0x48($sp) +/* 017024 70016424 8FA80044 */ lw $t0, 0x44($sp) +/* 017028 70016428 254B0001 */ addiu $t3, $t2, 1 +/* 01702C 7001642C 016C082A */ slt $at, $t3, $t4 +/* 017030 70016430 25090001 */ addiu $t1, $t0, 1 +/* 017034 70016434 AFAB0018 */ sw $t3, 0x18($sp) +/* 017038 70016438 1420FFF6 */ bnez $at, .L70016414 +/* 01703C 7001643C AFA90044 */ sw $t1, 0x44($sp) +.L70016440: +/* 017040 70016440 27AE001C */ addiu $t6, $sp, 0x1c +/* 017044 70016444 25D80024 */ addiu $t8, $t6, 0x24 +/* 017048 70016448 8FAD0044 */ lw $t5, 0x44($sp) +.L7001644C: +/* 01704C 7001644C 8DC10000 */ lw $at, ($t6) +/* 017050 70016450 25CE000C */ addiu $t6, $t6, 0xc +/* 017054 70016454 25AD000C */ addiu $t5, $t5, 0xc +/* 017058 70016458 A9A1FFF4 */ swl $at, -0xc($t5) +/* 01705C 7001645C B9A1FFF7 */ swr $at, -9($t5) +/* 017060 70016460 8DC1FFF8 */ lw $at, -8($t6) +/* 017064 70016464 A9A1FFF8 */ swl $at, -8($t5) +/* 017068 70016468 B9A1FFFB */ swr $at, -5($t5) +/* 01706C 7001646C 8DC1FFFC */ lw $at, -4($t6) +/* 017070 70016470 A9A1FFFC */ swl $at, -4($t5) +/* 017074 70016474 15D8FFF5 */ bne $t6, $t8, .L7001644C +/* 017078 70016478 B9A1FFFF */ swr $at, -1($t5) +/* 01707C 7001647C 8DC10000 */ lw $at, ($t6) +/* 017080 70016480 240900FE */ li $t1, 254 +/* 017084 70016484 A9A10000 */ swl $at, ($t5) +/* 017088 70016488 B9A10003 */ swr $at, 3($t5) +/* 01708C 7001648C 8FB90044 */ lw $t9, 0x44($sp) +/* 017090 70016490 27280028 */ addiu $t0, $t9, 0x28 +/* 017094 70016494 AFA80044 */ sw $t0, 0x44($sp) +/* 017098 70016498 A1090000 */ sb $t1, ($t0) +/* 01709C 7001649C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0170A0 700164A0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0170A4 700164A4 03E00008 */ jr $ra +/* 0170A8 700164A8 00000000 */ nop + diff --git a/src/libultra/contreaddata.s b/src/libultra/contreaddata.s new file mode 100644 index 0000000..86ccf79 --- /dev/null +++ b/src/libultra/contreaddata.s @@ -0,0 +1,180 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContStartReadData +/* 015970 70014D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015974 70014D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 015978 70014D78 AFA40020 */ sw $a0, 0x20($sp) +/* 01597C 70014D7C 0C005798 */ jal __osSiGetAccess +/* 015980 70014D80 AFA0001C */ sw $zero, 0x1c($sp) +/* 015984 70014D84 3C0E8006 */ lui $t6, %hi(__osContLastCmd) +/* 015988 70014D88 91CE7CE0 */ lbu $t6, %lo(__osContLastCmd)($t6) +/* 01598C 70014D8C 24010001 */ li $at, 1 +/* 015990 70014D90 11C1000C */ beq $t6, $at, .L70014DC4 +/* 015994 70014D94 00000000 */ nop +/* 015998 70014D98 0C0053B7 */ jal osContReadData_sub +/* 01599C 70014D9C 00000000 */ nop +/* 0159A0 70014DA0 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0159A4 70014DA4 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 0159A8 70014DA8 0C0057B4 */ jal __osSiRawStartDma +/* 0159AC 70014DAC 24040001 */ li $a0, 1 +/* 0159B0 70014DB0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0159B4 70014DB4 8FA40020 */ lw $a0, 0x20($sp) +/* 0159B8 70014DB8 00002825 */ move $a1, $zero +/* 0159BC 70014DBC 0C003774 */ jal osRecvMesg +/* 0159C0 70014DC0 24060001 */ li $a2, 1 +.L70014DC4: +/* 0159C4 70014DC4 AFA00018 */ sw $zero, 0x18($sp) +.L70014DC8: +/* 0159C8 70014DC8 8FB80018 */ lw $t8, 0x18($sp) +/* 0159CC 70014DCC 8FA80018 */ lw $t0, 0x18($sp) +/* 0159D0 70014DD0 3C018006 */ lui $at, %hi(__osContPifRam) +/* 0159D4 70014DD4 0018C880 */ sll $t9, $t8, 2 +/* 0159D8 70014DD8 00390821 */ addu $at, $at, $t9 +/* 0159DC 70014DDC 240F00FF */ li $t7, 255 +/* 0159E0 70014DE0 AC2F7CA0 */ sw $t7, %lo(__osContPifRam)($at) +/* 0159E4 70014DE4 25090001 */ addiu $t1, $t0, 1 +/* 0159E8 70014DE8 29210010 */ slti $at, $t1, 0x10 +/* 0159EC 70014DEC 1420FFF6 */ bnez $at, .L70014DC8 +/* 0159F0 70014DF0 AFA90018 */ sw $t1, 0x18($sp) +/* 0159F4 70014DF4 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 0159F8 70014DF8 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0159FC 70014DFC AC207CDC */ sw $zero, %lo(__osContPifRam+0x3c)($at) +/* 015A00 70014E00 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015A04 70014E04 0C0057B4 */ jal __osSiRawStartDma +/* 015A08 70014E08 00002025 */ move $a0, $zero +/* 015A0C 70014E0C 240A0001 */ li $t2, 1 +/* 015A10 70014E10 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015A14 70014E14 AFA2001C */ sw $v0, 0x1c($sp) +/* 015A18 70014E18 0C0057A9 */ jal __osSiRelAccess +/* 015A1C 70014E1C A02A7CE0 */ sb $t2, %lo(__osContLastCmd)($at) +/* 015A20 70014E20 8FBF0014 */ lw $ra, 0x14($sp) +/* 015A24 70014E24 8FA2001C */ lw $v0, 0x1c($sp) +/* 015A28 70014E28 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015A2C 70014E2C 03E00008 */ jr $ra +/* 015A30 70014E30 00000000 */ nop + +glabel osContGetReadData +/* 015A34 70014E34 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 015A38 70014E38 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 015A3C 70014E3C 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015A40 70014E40 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 015A44 70014E44 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 015A48 70014E48 AFAE000C */ sw $t6, 0xc($sp) +/* 015A4C 70014E4C 19E00021 */ blez $t7, .L70014ED4 +/* 015A50 70014E50 AFA00000 */ sw $zero, ($sp) +.L70014E54: +/* 015A54 70014E54 8FB9000C */ lw $t9, 0xc($sp) +/* 015A58 70014E58 27B80004 */ addiu $t8, $sp, 4 +/* 015A5C 70014E5C 8B210000 */ lwl $at, ($t9) +/* 015A60 70014E60 9B210003 */ lwr $at, 3($t9) +/* 015A64 70014E64 AF010000 */ sw $at, ($t8) +/* 015A68 70014E68 8B290004 */ lwl $t1, 4($t9) +/* 015A6C 70014E6C 9B290007 */ lwr $t1, 7($t9) +/* 015A70 70014E70 AF090004 */ sw $t1, 4($t8) +/* 015A74 70014E74 93AA0006 */ lbu $t2, 6($sp) +/* 015A78 70014E78 314B00C0 */ andi $t3, $t2, 0xc0 +/* 015A7C 70014E7C 000B6103 */ sra $t4, $t3, 4 +/* 015A80 70014E80 A08C0004 */ sb $t4, 4($a0) +/* 015A84 70014E84 908D0004 */ lbu $t5, 4($a0) +/* 015A88 70014E88 15A00007 */ bnez $t5, .L70014EA8 +/* 015A8C 70014E8C 00000000 */ nop +/* 015A90 70014E90 97AE0008 */ lhu $t6, 8($sp) +/* 015A94 70014E94 A48E0000 */ sh $t6, ($a0) +/* 015A98 70014E98 83AF000A */ lb $t7, 0xa($sp) +/* 015A9C 70014E9C A08F0002 */ sb $t7, 2($a0) +/* 015AA0 70014EA0 83A8000B */ lb $t0, 0xb($sp) +/* 015AA4 70014EA4 A0880003 */ sb $t0, 3($a0) +.L70014EA8: +/* 015AA8 70014EA8 8FB80000 */ lw $t8, ($sp) +/* 015AAC 70014EAC 3C0B8006 */ lui $t3, %hi(__osMaxControllers) +/* 015AB0 70014EB0 916B7CE1 */ lbu $t3, %lo(__osMaxControllers)($t3) +/* 015AB4 70014EB4 8FA9000C */ lw $t1, 0xc($sp) +/* 015AB8 70014EB8 27190001 */ addiu $t9, $t8, 1 +/* 015ABC 70014EBC 032B082A */ slt $at, $t9, $t3 +/* 015AC0 70014EC0 252A0008 */ addiu $t2, $t1, 8 +/* 015AC4 70014EC4 AFAA000C */ sw $t2, 0xc($sp) +/* 015AC8 70014EC8 AFB90000 */ sw $t9, ($sp) +/* 015ACC 70014ECC 1420FFE1 */ bnez $at, .L70014E54 +/* 015AD0 70014ED0 24840006 */ addiu $a0, $a0, 6 +.L70014ED4: +/* 015AD4 70014ED4 03E00008 */ jr $ra +/* 015AD8 70014ED8 27BD0010 */ addiu $sp, $sp, 0x10 + +glabel osContReadData_sub +/* 015ADC 70014EDC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 015AE0 70014EE0 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015AE4 70014EE4 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 015AE8 70014EE8 AFAE000C */ sw $t6, 0xc($sp) +/* 015AEC 70014EEC AFA00000 */ sw $zero, ($sp) +.L70014EF0: +/* 015AF0 70014EF0 8FAF0000 */ lw $t7, ($sp) +/* 015AF4 70014EF4 8FB90000 */ lw $t9, ($sp) +/* 015AF8 70014EF8 3C018006 */ lui $at, %hi(__osContPifRam) +/* 015AFC 70014EFC 000FC080 */ sll $t8, $t7, 2 +/* 015B00 70014F00 00380821 */ addu $at, $at, $t8 +/* 015B04 70014F04 AC207CA0 */ sw $zero, %lo(__osContPifRam)($at) +/* 015B08 70014F08 27280001 */ addiu $t0, $t9, 1 +/* 015B0C 70014F0C 29010010 */ slti $at, $t0, 0x10 +/* 015B10 70014F10 1420FFF7 */ bnez $at, .L70014EF0 +/* 015B14 70014F14 AFA80000 */ sw $t0, ($sp) +/* 015B18 70014F18 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015B1C 70014F1C 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015B20 70014F20 24090001 */ li $t1, 1 +/* 015B24 70014F24 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 015B28 70014F28 240A00FF */ li $t2, 255 +/* 015B2C 70014F2C 240B0001 */ li $t3, 1 +/* 015B30 70014F30 240C0004 */ li $t4, 4 +/* 015B34 70014F34 240D0001 */ li $t5, 1 +/* 015B38 70014F38 340EFFFF */ li $t6, 65535 +/* 015B3C 70014F3C 240FFFFF */ li $t7, -1 +/* 015B40 70014F40 2418FFFF */ li $t8, -1 +/* 015B44 70014F44 AC297CDC */ sw $t1, %lo(__osContPifRam+0x3c)($at) +/* 015B48 70014F48 A3AA0004 */ sb $t2, 4($sp) +/* 015B4C 70014F4C A3AB0005 */ sb $t3, 5($sp) +/* 015B50 70014F50 A3AC0006 */ sb $t4, 6($sp) +/* 015B54 70014F54 A3AD0007 */ sb $t5, 7($sp) +/* 015B58 70014F58 A7AE0008 */ sh $t6, 8($sp) +/* 015B5C 70014F5C A3AF000A */ sb $t7, 0xa($sp) +/* 015B60 70014F60 A3B8000B */ sb $t8, 0xb($sp) +/* 015B64 70014F64 1B200013 */ blez $t9, .L70014FB4 +/* 015B68 70014F68 AFA00000 */ sw $zero, ($sp) +.L70014F6C: +/* 015B6C 70014F6C 27A90004 */ addiu $t1, $sp, 4 +/* 015B70 70014F70 8D210000 */ lw $at, ($t1) +/* 015B74 70014F74 8FA8000C */ lw $t0, 0xc($sp) +/* 015B78 70014F78 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 015B7C 70014F7C A9010000 */ swl $at, ($t0) +/* 015B80 70014F80 B9010003 */ swr $at, 3($t0) +/* 015B84 70014F84 8D2B0004 */ lw $t3, 4($t1) +/* 015B88 70014F88 A90B0004 */ swl $t3, 4($t0) +/* 015B8C 70014F8C B90B0007 */ swr $t3, 7($t0) +/* 015B90 70014F90 8FAE0000 */ lw $t6, ($sp) +/* 015B94 70014F94 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 015B98 70014F98 8FAC000C */ lw $t4, 0xc($sp) +/* 015B9C 70014F9C 25CF0001 */ addiu $t7, $t6, 1 +/* 015BA0 70014FA0 01F8082A */ slt $at, $t7, $t8 +/* 015BA4 70014FA4 258D0008 */ addiu $t5, $t4, 8 +/* 015BA8 70014FA8 AFAF0000 */ sw $t7, ($sp) +/* 015BAC 70014FAC 1420FFEF */ bnez $at, .L70014F6C +/* 015BB0 70014FB0 AFAD000C */ sw $t5, 0xc($sp) +.L70014FB4: +/* 015BB4 70014FB4 8FAA000C */ lw $t2, 0xc($sp) +/* 015BB8 70014FB8 241900FE */ li $t9, 254 +/* 015BBC 70014FBC 27BD0010 */ addiu $sp, $sp, 0x10 +/* 015BC0 70014FC0 03E00008 */ jr $ra +/* 015BC4 70014FC4 A1590000 */ sb $t9, ($t2) + + + + diff --git a/src/libultra/controller.s b/src/libultra/controller.s new file mode 100644 index 0000000..a20f465 --- /dev/null +++ b/src/libultra/controller.s @@ -0,0 +1,420 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContInit +/* 015500 70014900 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 015504 70014904 3C0E8002 */ lui $t6, %hi(__osContinitialized) +/* 015508 70014908 8DCE77B0 */ lw $t6, %lo(__osContinitialized)($t6) +/* 01550C 7001490C AFBF0024 */ sw $ra, 0x24($sp) +/* 015510 70014910 AFA40080 */ sw $a0, 0x80($sp) +/* 015514 70014914 AFA50084 */ sw $a1, 0x84($sp) +/* 015518 70014918 AFA60088 */ sw $a2, 0x88($sp) +/* 01551C 7001491C 11C00003 */ beqz $t6, .L7001492C +/* 015520 70014920 AFA00078 */ sw $zero, 0x78($sp) +/* 015524 70014924 10000070 */ b .L70014AE8 +/* 015528 70014928 00001025 */ move $v0, $zero +.L7001492C: +/* 01552C 7001492C 240F0001 */ li $t7, 1 +/* 015530 70014930 3C018002 */ lui $at, %hi(__osContinitialized) +/* 015534 70014934 0C003AEC */ jal osGetTime +/* 015538 70014938 AC2F77B0 */ sw $t7, %lo(__osContinitialized)($at) +/* 01553C 7001493C 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 +/* 015540 70014940 3C068002 */ lui $a2, %hi(osClockRate) +/* 015544 70014944 3C078002 */ lui $a3, %hi(osClockRate+0x4) +/* 015548 70014948 AFA20070 */ sw $v0, 0x70($sp) +/* 01554C 7001494C AFA30074 */ sw $v1, 0x74($sp) +/* 015550 70014950 8CE76984 */ lw $a3, %lo(osClockRate+0x4)($a3) +/* 015554 70014954 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 015558 70014958 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 +/* 01555C 7001495C 0C003B6A */ jal __ll_mul +/* 015560 70014960 24040000 */ li $a0, 0 +/* 015564 70014964 AFA20030 */ sw $v0, 0x30($sp) +/* 015568 70014968 AFA30034 */ sw $v1, 0x34($sp) +/* 01556C 7001496C 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 015570 70014970 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 015574 70014974 8FA50034 */ lw $a1, 0x34($sp) +/* 015578 70014978 8FA40030 */ lw $a0, 0x30($sp) +/* 01557C 7001497C 0C003B2A */ jal __ull_div +/* 015580 70014980 24060000 */ li $a2, 0 +/* 015584 70014984 8FB80070 */ lw $t8, 0x70($sp) +/* 015588 70014988 8FB90074 */ lw $t9, 0x74($sp) +/* 01558C 7001498C 0058082B */ sltu $at, $v0, $t8 +/* 015590 70014990 14200031 */ bnez $at, .L70014A58 +/* 015594 70014994 0302082B */ sltu $at, $t8, $v0 +/* 015598 70014998 14200003 */ bnez $at, .L700149A8 +/* 01559C 7001499C 0323082B */ sltu $at, $t9, $v1 +/* 0155A0 700149A0 1020002D */ beqz $at, .L70014A58 +/* 0155A4 700149A4 00000000 */ nop +.L700149A8: +/* 0155A8 700149A8 27A40038 */ addiu $a0, $sp, 0x38 +/* 0155AC 700149AC 27A5007C */ addiu $a1, $sp, 0x7c +/* 0155B0 700149B0 0C0035B4 */ jal osCreateMesgQueue +/* 0155B4 700149B4 24060001 */ li $a2, 1 +/* 0155B8 700149B8 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 +/* 0155BC 700149BC 3C068002 */ lui $a2, %hi(osClockRate) +/* 0155C0 700149C0 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 0155C4 700149C4 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0155C8 700149C8 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0155CC 700149CC 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 +/* 0155D0 700149D0 0C003B6A */ jal __ll_mul +/* 0155D4 700149D4 24040000 */ li $a0, 0 +/* 0155D8 700149D8 AFA20028 */ sw $v0, 0x28($sp) +/* 0155DC 700149DC AFA3002C */ sw $v1, 0x2c($sp) +/* 0155E0 700149E0 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 0155E4 700149E4 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 0155E8 700149E8 8FA5002C */ lw $a1, 0x2c($sp) +/* 0155EC 700149EC 8FA40028 */ lw $a0, 0x28($sp) +/* 0155F0 700149F0 0C003B2A */ jal __ull_div +/* 0155F4 700149F4 24060000 */ li $a2, 0 +/* 0155F8 700149F8 AFA20030 */ sw $v0, 0x30($sp) +/* 0155FC 700149FC AFA30034 */ sw $v1, 0x34($sp) +/* 015600 70014A00 8FA90034 */ lw $t1, 0x34($sp) +/* 015604 70014A04 8FA80030 */ lw $t0, 0x30($sp) +/* 015608 70014A08 8FAA0070 */ lw $t2, 0x70($sp) +/* 01560C 70014A0C 8FAB0074 */ lw $t3, 0x74($sp) +/* 015610 70014A10 240C0000 */ li $t4, 0 +/* 015614 70014A14 240D0000 */ li $t5, 0 +/* 015618 70014A18 27AE0038 */ addiu $t6, $sp, 0x38 +/* 01561C 70014A1C 27AF007C */ addiu $t7, $sp, 0x7c +/* 015620 70014A20 010A3023 */ subu $a2, $t0, $t2 +/* 015624 70014A24 012B082B */ sltu $at, $t1, $t3 +/* 015628 70014A28 00C13023 */ subu $a2, $a2, $at +/* 01562C 70014A2C AFAF001C */ sw $t7, 0x1c($sp) +/* 015630 70014A30 AFAE0018 */ sw $t6, 0x18($sp) +/* 015634 70014A34 AFAD0014 */ sw $t5, 0x14($sp) +/* 015638 70014A38 AFAC0010 */ sw $t4, 0x10($sp) +/* 01563C 70014A3C 27A40050 */ addiu $a0, $sp, 0x50 +/* 015640 70014A40 0C004314 */ jal osSetTimer +/* 015644 70014A44 012B3823 */ subu $a3, $t1, $t3 +/* 015648 70014A48 27A40038 */ addiu $a0, $sp, 0x38 +/* 01564C 70014A4C 27A5007C */ addiu $a1, $sp, 0x7c +/* 015650 70014A50 0C003774 */ jal osRecvMesg +/* 015654 70014A54 24060001 */ li $a2, 1 +.L70014A58: +/* 015658 70014A58 24180004 */ li $t8, 4 +/* 01565C 70014A5C 3C018006 */ lui $at, %hi(__osMaxControllers) +/* 015660 70014A60 A0387CE1 */ sb $t8, %lo(__osMaxControllers)($at) +/* 015664 70014A64 0C0052F2 */ jal __osPackRequestData +/* 015668 70014A68 00002025 */ move $a0, $zero +/* 01566C 70014A6C 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015670 70014A70 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015674 70014A74 0C0057B4 */ jal __osSiRawStartDma +/* 015678 70014A78 24040001 */ li $a0, 1 +/* 01567C 70014A7C AFA20078 */ sw $v0, 0x78($sp) +/* 015680 70014A80 8FA40080 */ lw $a0, 0x80($sp) +/* 015684 70014A84 27A5007C */ addiu $a1, $sp, 0x7c +/* 015688 70014A88 0C003774 */ jal osRecvMesg +/* 01568C 70014A8C 24060001 */ li $a2, 1 +/* 015690 70014A90 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015694 70014A94 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015698 70014A98 0C0057B4 */ jal __osSiRawStartDma +/* 01569C 70014A9C 00002025 */ move $a0, $zero +/* 0156A0 70014AA0 AFA20078 */ sw $v0, 0x78($sp) +/* 0156A4 70014AA4 8FA40080 */ lw $a0, 0x80($sp) +/* 0156A8 70014AA8 27A5007C */ addiu $a1, $sp, 0x7c +/* 0156AC 70014AAC 0C003774 */ jal osRecvMesg +/* 0156B0 70014AB0 24060001 */ li $a2, 1 +/* 0156B4 70014AB4 8FA40084 */ lw $a0, 0x84($sp) +/* 0156B8 70014AB8 0C0052BE */ jal __osContGetInitData +/* 0156BC 70014ABC 8FA50088 */ lw $a1, 0x88($sp) +/* 0156C0 70014AC0 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 0156C4 70014AC4 0C005784 */ jal __osSiCreateAccessQueue +/* 0156C8 70014AC8 A0207CE0 */ sb $zero, %lo(__osContLastCmd)($at) +/* 0156CC 70014ACC 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 0156D0 70014AD0 3C058006 */ lui $a1, %hi(__osEepromTimerMsg) +/* 0156D4 70014AD4 24A57D20 */ addiu $a1, %lo(__osEepromTimerMsg) # addiu $a1, $a1, 0x7d20 +/* 0156D8 70014AD8 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 0156DC 70014ADC 0C0035B4 */ jal osCreateMesgQueue +/* 0156E0 70014AE0 24060001 */ li $a2, 1 +/* 0156E4 70014AE4 8FA20078 */ lw $v0, 0x78($sp) +.L70014AE8: +/* 0156E8 70014AE8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0156EC 70014AEC 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0156F0 70014AF0 03E00008 */ jr $ra +/* 0156F4 70014AF4 00000000 */ nop + +glabel __osContGetInitData +/* 0156F8 70014AF8 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 0156FC 70014AFC 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 015700 70014B00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 015704 70014B04 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015708 70014B08 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 01570C 70014B0C A3A00007 */ sb $zero, 7($sp) +/* 015710 70014B10 AFAE0014 */ sw $t6, 0x14($sp) +/* 015714 70014B14 19E00028 */ blez $t7, .L70014BB8 +/* 015718 70014B18 AFA00008 */ sw $zero, 8($sp) +.L70014B1C: +/* 01571C 70014B1C 8FB90014 */ lw $t9, 0x14($sp) +/* 015720 70014B20 27B8000C */ addiu $t8, $sp, 0xc +/* 015724 70014B24 8B210000 */ lwl $at, ($t9) +/* 015728 70014B28 9B210003 */ lwr $at, 3($t9) +/* 01572C 70014B2C AF010000 */ sw $at, ($t8) +/* 015730 70014B30 8B290004 */ lwl $t1, 4($t9) +/* 015734 70014B34 9B290007 */ lwr $t1, 7($t9) +/* 015738 70014B38 AF090004 */ sw $t1, 4($t8) +/* 01573C 70014B3C 93AA000E */ lbu $t2, 0xe($sp) +/* 015740 70014B40 314B00C0 */ andi $t3, $t2, 0xc0 +/* 015744 70014B44 000B6103 */ sra $t4, $t3, 4 +/* 015748 70014B48 A0AC0003 */ sb $t4, 3($a1) +/* 01574C 70014B4C 90AD0003 */ lbu $t5, 3($a1) +/* 015750 70014B50 15A0000E */ bnez $t5, .L70014B8C +/* 015754 70014B54 00000000 */ nop +/* 015758 70014B58 93AE0011 */ lbu $t6, 0x11($sp) +/* 01575C 70014B5C 93A80010 */ lbu $t0, 0x10($sp) +/* 015760 70014B60 240B0001 */ li $t3, 1 +/* 015764 70014B64 000E7A00 */ sll $t7, $t6, 8 +/* 015768 70014B68 01E8C025 */ or $t8, $t7, $t0 +/* 01576C 70014B6C A4B80000 */ sh $t8, ($a1) +/* 015770 70014B70 93B90012 */ lbu $t9, 0x12($sp) +/* 015774 70014B74 A0B90002 */ sb $t9, 2($a1) +/* 015778 70014B78 8FAA0008 */ lw $t2, 8($sp) +/* 01577C 70014B7C 93A90007 */ lbu $t1, 7($sp) +/* 015780 70014B80 014B6004 */ sllv $t4, $t3, $t2 +/* 015784 70014B84 012C6825 */ or $t5, $t1, $t4 +/* 015788 70014B88 A3AD0007 */ sb $t5, 7($sp) +.L70014B8C: +/* 01578C 70014B8C 8FAE0008 */ lw $t6, 8($sp) +/* 015790 70014B90 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015794 70014B94 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015798 70014B98 8FA80014 */ lw $t0, 0x14($sp) +/* 01579C 70014B9C 25CF0001 */ addiu $t7, $t6, 1 +/* 0157A0 70014BA0 01F9082A */ slt $at, $t7, $t9 +/* 0157A4 70014BA4 25180008 */ addiu $t8, $t0, 8 +/* 0157A8 70014BA8 AFB80014 */ sw $t8, 0x14($sp) +/* 0157AC 70014BAC AFAF0008 */ sw $t7, 8($sp) +/* 0157B0 70014BB0 1420FFDA */ bnez $at, .L70014B1C +/* 0157B4 70014BB4 24A50004 */ addiu $a1, $a1, 4 +.L70014BB8: +/* 0157B8 70014BB8 93AB0007 */ lbu $t3, 7($sp) +/* 0157BC 70014BBC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0157C0 70014BC0 03E00008 */ jr $ra +/* 0157C4 70014BC4 A08B0000 */ sb $t3, ($a0) + +glabel __osPackRequestData +/* 0157C8 70014BC8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0157CC 70014BCC 308400FF */ andi $a0, $a0, 0xff +/* 0157D0 70014BD0 AFA00000 */ sw $zero, ($sp) +.L70014BD4: +/* 0157D4 70014BD4 8FAE0000 */ lw $t6, ($sp) +/* 0157D8 70014BD8 8FB80000 */ lw $t8, ($sp) +/* 0157DC 70014BDC 3C018006 */ lui $at, %hi(__osContPifRam) +/* 0157E0 70014BE0 000E7880 */ sll $t7, $t6, 2 +/* 0157E4 70014BE4 002F0821 */ addu $at, $at, $t7 +/* 0157E8 70014BE8 AC207CA0 */ sw $zero, %lo(__osContPifRam)($at) +/* 0157EC 70014BEC 27190001 */ addiu $t9, $t8, 1 +/* 0157F0 70014BF0 2B210010 */ slti $at, $t9, 0x10 +/* 0157F4 70014BF4 1420FFF7 */ bnez $at, .L70014BD4 +/* 0157F8 70014BF8 AFB90000 */ sw $t9, ($sp) +/* 0157FC 70014BFC 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015800 70014C00 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015804 70014C04 3C098006 */ lui $t1, %hi(__osContPifRam) +/* 015808 70014C08 24080001 */ li $t0, 1 +/* 01580C 70014C0C 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 015810 70014C10 25297CA0 */ addiu $t1, %lo(__osContPifRam) # addiu $t1, $t1, 0x7ca0 +/* 015814 70014C14 240A00FF */ li $t2, 255 +/* 015818 70014C18 240B0001 */ li $t3, 1 +/* 01581C 70014C1C 240C0003 */ li $t4, 3 +/* 015820 70014C20 240D00FF */ li $t5, 255 +/* 015824 70014C24 240E00FF */ li $t6, 255 +/* 015828 70014C28 240F00FF */ li $t7, 255 +/* 01582C 70014C2C 241800FF */ li $t8, 255 +/* 015830 70014C30 AC287CDC */ sw $t0, %lo(__osContPifRam+0x3c)($at) +/* 015834 70014C34 AFA9000C */ sw $t1, 0xc($sp) +/* 015838 70014C38 A3AA0004 */ sb $t2, 4($sp) +/* 01583C 70014C3C A3AB0005 */ sb $t3, 5($sp) +/* 015840 70014C40 A3AC0006 */ sb $t4, 6($sp) +/* 015844 70014C44 A3A40007 */ sb $a0, 7($sp) +/* 015848 70014C48 A3AD0008 */ sb $t5, 8($sp) +/* 01584C 70014C4C A3AE0009 */ sb $t6, 9($sp) +/* 015850 70014C50 A3AF000A */ sb $t7, 0xa($sp) +/* 015854 70014C54 A3B8000B */ sb $t8, 0xb($sp) +/* 015858 70014C58 1B200013 */ blez $t9, .L70014CA8 +/* 01585C 70014C5C AFA00000 */ sw $zero, ($sp) +.L70014C60: +/* 015860 70014C60 27A90004 */ addiu $t1, $sp, 4 +/* 015864 70014C64 8D210000 */ lw $at, ($t1) +/* 015868 70014C68 8FA8000C */ lw $t0, 0xc($sp) +/* 01586C 70014C6C 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 015870 70014C70 A9010000 */ swl $at, ($t0) +/* 015874 70014C74 B9010003 */ swr $at, 3($t0) +/* 015878 70014C78 8D2B0004 */ lw $t3, 4($t1) +/* 01587C 70014C7C A90B0004 */ swl $t3, 4($t0) +/* 015880 70014C80 B90B0007 */ swr $t3, 7($t0) +/* 015884 70014C84 8FAE0000 */ lw $t6, ($sp) +/* 015888 70014C88 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 01588C 70014C8C 8FAC000C */ lw $t4, 0xc($sp) +/* 015890 70014C90 25CF0001 */ addiu $t7, $t6, 1 +/* 015894 70014C94 01F8082A */ slt $at, $t7, $t8 +/* 015898 70014C98 258D0008 */ addiu $t5, $t4, 8 +/* 01589C 70014C9C AFAF0000 */ sw $t7, ($sp) +/* 0158A0 70014CA0 1420FFEF */ bnez $at, .L70014C60 +/* 0158A4 70014CA4 AFAD000C */ sw $t5, 0xc($sp) +.L70014CA8: +/* 0158A8 70014CA8 8FAA000C */ lw $t2, 0xc($sp) +/* 0158AC 70014CAC 241900FE */ li $t9, 254 +/* 0158B0 70014CB0 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0158B4 70014CB4 03E00008 */ jr $ra +/* 0158B8 70014CB8 A1590000 */ sb $t9, ($t2) + +/* 0158BC 70014CBC 00000000 */ nop + +.section .data +glabel __osContinitialized +.word 0 +.align 4 + +.section .bss +glabel __osContPifRam +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osContLastCmd +.byte 0 + +glabel __osMaxControllers +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimer +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimerQ +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimerMsg +.word 0 +glabel padding_80067d24 +.word 0, 0, 0 + + diff --git a/src/libultra/copy.s b/src/libultra/copy.s new file mode 100644 index 0000000..f9da824 --- /dev/null +++ b/src/libultra/copy.s @@ -0,0 +1,46 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alCopy +/* 01E290 7001D690 00801025 */ move $v0, $a0 +/* 01E294 7001D694 00A01825 */ move $v1, $a1 +/* 01E298 7001D698 18C00018 */ blez $a2, .L7001D6FC +/* 01E29C 7001D69C 00003825 */ move $a3, $zero +/* 01E2A0 7001D6A0 30C50003 */ andi $a1, $a2, 3 +/* 01E2A4 7001D6A4 10A00009 */ beqz $a1, .L7001D6CC +/* 01E2A8 7001D6A8 00A02025 */ move $a0, $a1 +.L7001D6AC: +/* 01E2AC 7001D6AC 904E0000 */ lbu $t6, ($v0) +/* 01E2B0 7001D6B0 24E70001 */ addiu $a3, $a3, 1 +/* 01E2B4 7001D6B4 24630001 */ addiu $v1, $v1, 1 +/* 01E2B8 7001D6B8 24420001 */ addiu $v0, $v0, 1 +/* 01E2BC 7001D6BC 1487FFFB */ bne $a0, $a3, .L7001D6AC +/* 01E2C0 7001D6C0 A06EFFFF */ sb $t6, -1($v1) +/* 01E2C4 7001D6C4 10E6000D */ beq $a3, $a2, .L7001D6FC +/* 01E2C8 7001D6C8 00000000 */ nop +.L7001D6CC: +/* 01E2CC 7001D6CC 904F0000 */ lbu $t7, ($v0) +/* 01E2D0 7001D6D0 24E70004 */ addiu $a3, $a3, 4 +/* 01E2D4 7001D6D4 24630004 */ addiu $v1, $v1, 4 +/* 01E2D8 7001D6D8 A06FFFFC */ sb $t7, -4($v1) +/* 01E2DC 7001D6DC 90580001 */ lbu $t8, 1($v0) +/* 01E2E0 7001D6E0 24420004 */ addiu $v0, $v0, 4 +/* 01E2E4 7001D6E4 A078FFFD */ sb $t8, -3($v1) +/* 01E2E8 7001D6E8 9059FFFE */ lbu $t9, -2($v0) +/* 01E2EC 7001D6EC A079FFFE */ sb $t9, -2($v1) +/* 01E2F0 7001D6F0 9048FFFF */ lbu $t0, -1($v0) +/* 01E2F4 7001D6F4 14E6FFF5 */ bne $a3, $a2, .L7001D6CC +/* 01E2F8 7001D6F8 A068FFFF */ sb $t0, -1($v1) +.L7001D6FC: +/* 01E2FC 7001D6FC 03E00008 */ jr $ra +/* 01E300 7001D700 00000000 */ nop diff --git a/src/libultra/coss.s b/src/libultra/coss.s new file mode 100644 index 0000000..22e14a6 --- /dev/null +++ b/src/libultra/coss.s @@ -0,0 +1,26 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel coss +/* 017830 70016C30 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017834 70016C34 AFA40018 */ sw $a0, 0x18($sp) +/* 017838 70016C38 00802825 */ move $a1, $a0 +/* 01783C 70016C3C 24A44000 */ addiu $a0, $a1, 0x4000 +/* 017840 70016C40 AFBF0014 */ sw $ra, 0x14($sp) +/* 017844 70016C44 308EFFFF */ andi $t6, $a0, 0xffff +/* 017848 70016C48 0C005B18 */ jal sins +/* 01784C 70016C4C 01C02025 */ move $a0, $t6 +/* 017850 70016C50 8FBF0014 */ lw $ra, 0x14($sp) +/* 017854 70016C54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017858 70016C58 03E00008 */ jr $ra +/* 01785C 70016C5C 00000000 */ nop diff --git a/src/libultra/crc.s b/src/libultra/crc.s new file mode 100644 index 0000000..0efbad2 --- /dev/null +++ b/src/libultra/crc.s @@ -0,0 +1,125 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContAddressCrc +/* 016B80 70015F80 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016B84 70015F84 3084FFFF */ andi $a0, $a0, 0xffff +/* 016B88 70015F88 A3A0000F */ sb $zero, 0xf($sp) +/* 016B8C 70015F8C AFA00008 */ sw $zero, 8($sp) +.L70015F90: +/* 016B90 70015F90 93AE000F */ lbu $t6, 0xf($sp) +/* 016B94 70015F94 31CF0010 */ andi $t7, $t6, 0x10 +/* 016B98 70015F98 11E00004 */ beqz $t7, .L70015FAC +/* 016B9C 70015F9C 00000000 */ nop +/* 016BA0 70015FA0 24180015 */ li $t8, 21 +/* 016BA4 70015FA4 10000002 */ b .L70015FB0 +/* 016BA8 70015FA8 A3B8000E */ sb $t8, 0xe($sp) +.L70015FAC: +/* 016BAC 70015FAC A3A0000E */ sb $zero, 0xe($sp) +.L70015FB0: +/* 016BB0 70015FB0 93B9000F */ lbu $t9, 0xf($sp) +/* 016BB4 70015FB4 30890400 */ andi $t1, $a0, 0x400 +/* 016BB8 70015FB8 00194040 */ sll $t0, $t9, 1 +/* 016BBC 70015FBC 11200003 */ beqz $t1, .L70015FCC +/* 016BC0 70015FC0 A3A8000F */ sb $t0, 0xf($sp) +/* 016BC4 70015FC4 10000002 */ b .L70015FD0 +/* 016BC8 70015FC8 24050001 */ li $a1, 1 +.L70015FCC: +/* 016BCC 70015FCC 00002825 */ move $a1, $zero +.L70015FD0: +/* 016BD0 70015FD0 93AA000F */ lbu $t2, 0xf($sp) +/* 016BD4 70015FD4 8FA80008 */ lw $t0, 8($sp) +/* 016BD8 70015FD8 93AF000E */ lbu $t7, 0xe($sp) +/* 016BDC 70015FDC 30AB00FF */ andi $t3, $a1, 0xff +/* 016BE0 70015FE0 00046840 */ sll $t5, $a0, 1 +/* 016BE4 70015FE4 014B6025 */ or $t4, $t2, $t3 +/* 016BE8 70015FE8 01A02025 */ move $a0, $t5 +/* 016BEC 70015FEC 319800FF */ andi $t8, $t4, 0xff +/* 016BF0 70015FF0 25090001 */ addiu $t1, $t0, 1 +/* 016BF4 70015FF4 29210010 */ slti $at, $t1, 0x10 +/* 016BF8 70015FF8 A3AC000F */ sb $t4, 0xf($sp) +/* 016BFC 70015FFC 308EFFFF */ andi $t6, $a0, 0xffff +/* 016C00 70016000 030FC826 */ xor $t9, $t8, $t7 +/* 016C04 70016004 AFA90008 */ sw $t1, 8($sp) +/* 016C08 70016008 01C02025 */ move $a0, $t6 +/* 016C0C 7001600C 1420FFE0 */ bnez $at, .L70015F90 +/* 016C10 70016010 A3B9000F */ sb $t9, 0xf($sp) +/* 016C14 70016014 93A2000F */ lbu $v0, 0xf($sp) +/* 016C18 70016018 27BD0010 */ addiu $sp, $sp, 0x10 +/* 016C1C 7001601C 304A001F */ andi $t2, $v0, 0x1f +/* 016C20 70016020 01401025 */ move $v0, $t2 +/* 016C24 70016024 304B00FF */ andi $t3, $v0, 0xff +/* 016C28 70016028 03E00008 */ jr $ra +/* 016C2C 7001602C 01601025 */ move $v0, $t3 + +glabel __osContDataCrc +/* 016C30 70016030 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016C34 70016034 A3A0000F */ sb $zero, 0xf($sp) +/* 016C38 70016038 AFA00008 */ sw $zero, 8($sp) +.L7001603C: +/* 016C3C 7001603C 240E0007 */ li $t6, 7 +/* 016C40 70016040 AFAE0004 */ sw $t6, 4($sp) +.L70016044: +/* 016C44 70016044 93AF000F */ lbu $t7, 0xf($sp) +/* 016C48 70016048 31F80080 */ andi $t8, $t7, 0x80 +/* 016C4C 7001604C 13000004 */ beqz $t8, .L70016060 +/* 016C50 70016050 00000000 */ nop +/* 016C54 70016054 24190085 */ li $t9, 133 +/* 016C58 70016058 10000002 */ b .L70016064 +/* 016C5C 7001605C A3B9000E */ sb $t9, 0xe($sp) +.L70016060: +/* 016C60 70016060 A3A0000E */ sb $zero, 0xe($sp) +.L70016064: +/* 016C64 70016064 93A8000F */ lbu $t0, 0xf($sp) +/* 016C68 70016068 8FAA0008 */ lw $t2, 8($sp) +/* 016C6C 7001606C 24010020 */ li $at, 32 +/* 016C70 70016070 00084840 */ sll $t1, $t0, 1 +/* 016C74 70016074 15410004 */ bne $t2, $at, .L70016088 +/* 016C78 70016078 A3A9000F */ sb $t1, 0xf($sp) +/* 016C7C 7001607C 312B00FF */ andi $t3, $t1, 0xff +/* 016C80 70016080 1000000E */ b .L700160BC +/* 016C84 70016084 A3AB000F */ sb $t3, 0xf($sp) +.L70016088: +/* 016C88 70016088 8FAD0004 */ lw $t5, 4($sp) +/* 016C8C 7001608C 908C0000 */ lbu $t4, ($a0) +/* 016C90 70016090 240E0001 */ li $t6, 1 +/* 016C94 70016094 01AE7804 */ sllv $t7, $t6, $t5 +/* 016C98 70016098 018FC024 */ and $t8, $t4, $t7 +/* 016C9C 7001609C 13000003 */ beqz $t8, .L700160AC +/* 016CA0 700160A0 00000000 */ nop +/* 016CA4 700160A4 10000002 */ b .L700160B0 +/* 016CA8 700160A8 24050001 */ li $a1, 1 +.L700160AC: +/* 016CAC 700160AC 00002825 */ move $a1, $zero +.L700160B0: +/* 016CB0 700160B0 93B9000F */ lbu $t9, 0xf($sp) +/* 016CB4 700160B4 03254025 */ or $t0, $t9, $a1 +/* 016CB8 700160B8 A3A8000F */ sb $t0, 0xf($sp) +.L700160BC: +/* 016CBC 700160BC 8FAE0004 */ lw $t6, 4($sp) +/* 016CC0 700160C0 93AA000F */ lbu $t2, 0xf($sp) +/* 016CC4 700160C4 93A9000E */ lbu $t1, 0xe($sp) +/* 016CC8 700160C8 25CDFFFF */ addiu $t5, $t6, -1 +/* 016CCC 700160CC AFAD0004 */ sw $t5, 4($sp) +/* 016CD0 700160D0 01495826 */ xor $t3, $t2, $t1 +/* 016CD4 700160D4 05A1FFDB */ bgez $t5, .L70016044 +/* 016CD8 700160D8 A3AB000F */ sb $t3, 0xf($sp) +/* 016CDC 700160DC 8FAC0008 */ lw $t4, 8($sp) +/* 016CE0 700160E0 24840001 */ addiu $a0, $a0, 1 +/* 016CE4 700160E4 258F0001 */ addiu $t7, $t4, 1 +/* 016CE8 700160E8 29E10021 */ slti $at, $t7, 0x21 +/* 016CEC 700160EC 1420FFD3 */ bnez $at, .L7001603C +/* 016CF0 700160F0 AFAF0008 */ sw $t7, 8($sp) +/* 016CF4 700160F4 93A2000F */ lbu $v0, 0xf($sp) +/* 016CF8 700160F8 03E00008 */ jr $ra +/* 016CFC 700160FC 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/createmesgqueue.s b/src/libultra/createmesgqueue.s new file mode 100644 index 0000000..e96968b --- /dev/null +++ b/src/libultra/createmesgqueue.s @@ -0,0 +1,24 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osCreateMesgQueue +/* 00E2D0 7000D6D0 3C0E8002 */ lui $t6, %hi(__osThreadTail) +/* 00E2D4 7000D6D4 3C0F8002 */ lui $t7, %hi(__osThreadTail) +/* 00E2D8 7000D6D8 25CE7720 */ addiu $t6, %lo(__osThreadTail) # addiu $t6, $t6, 0x7720 +/* 00E2DC 7000D6DC 25EF7720 */ addiu $t7, %lo(__osThreadTail) # addiu $t7, $t7, 0x7720 +/* 00E2E0 7000D6E0 AC8E0000 */ sw $t6, ($a0) +/* 00E2E4 7000D6E4 AC8F0004 */ sw $t7, 4($a0) +/* 00E2E8 7000D6E8 AC800008 */ sw $zero, 8($a0) +/* 00E2EC 7000D6EC AC80000C */ sw $zero, 0xc($a0) +/* 00E2F0 7000D6F0 AC860010 */ sw $a2, 0x10($a0) +/* 00E2F4 7000D6F4 03E00008 */ jr $ra +/* 00E2F8 7000D6F8 AC850014 */ sw $a1, 0x14($a0) + +#wtf why do these exist, figure out diff --git a/src/libultra/createthread.s b/src/libultra/createthread.s new file mode 100644 index 0000000..ec21813 --- /dev/null +++ b/src/libultra/createthread.s @@ -0,0 +1,92 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osCreateThread +/* 00E030 7000D430 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E034 7000D434 AFA40028 */ sw $a0, 0x28($sp) +/* 00E038 7000D438 AFA5002C */ sw $a1, 0x2c($sp) +/* 00E03C 7000D43C 8FAE002C */ lw $t6, 0x2c($sp) +/* 00E040 7000D440 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E044 7000D444 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E048 7000D448 AFA60030 */ sw $a2, 0x30($sp) +/* 00E04C 7000D44C AFA70034 */ sw $a3, 0x34($sp) +/* 00E050 7000D450 AFB00018 */ sw $s0, 0x18($sp) +/* 00E054 7000D454 ADEE0014 */ sw $t6, 0x14($t7) +/* 00E058 7000D458 8FB90028 */ lw $t9, 0x28($sp) +/* 00E05C 7000D45C 8FB8003C */ lw $t8, 0x3c($sp) +/* 00E060 7000D460 AF380004 */ sw $t8, 4($t9) +/* 00E064 7000D464 8FA80028 */ lw $t0, 0x28($sp) +/* 00E068 7000D468 AD000000 */ sw $zero, ($t0) +/* 00E06C 7000D46C 8FA90028 */ lw $t1, 0x28($sp) +/* 00E070 7000D470 AD200008 */ sw $zero, 8($t1) +/* 00E074 7000D474 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E078 7000D478 8FAA0030 */ lw $t2, 0x30($sp) +/* 00E07C 7000D47C AD6A011C */ sw $t2, 0x11c($t3) +/* 00E080 7000D480 8FAC0034 */ lw $t4, 0x34($sp) +/* 00E084 7000D484 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E088 7000D488 01807825 */ move $t7, $t4 +/* 00E08C 7000D48C 000C77C3 */ sra $t6, $t4, 0x1f +/* 00E090 7000D490 ADAE0038 */ sw $t6, 0x38($t5) +/* 00E094 7000D494 ADAF003C */ sw $t7, 0x3c($t5) +/* 00E098 7000D498 8FB80038 */ lw $t8, 0x38($sp) +/* 00E09C 7000D49C 8FB90028 */ lw $t9, 0x28($sp) +/* 00E0A0 7000D4A0 3C0C7001 */ lui $t4, %hi(__osCleanupThread) # $t4, 0x7001 +/* 00E0A4 7000D4A4 03004825 */ move $t1, $t8 +/* 00E0A8 7000D4A8 2D210010 */ sltiu $at, $t1, 0x10 +/* 00E0AC 7000D4AC 001847C3 */ sra $t0, $t8, 0x1f +/* 00E0B0 7000D4B0 01015023 */ subu $t2, $t0, $at +/* 00E0B4 7000D4B4 252BFFF0 */ addiu $t3, $t1, -0x10 +/* 00E0B8 7000D4B8 AF2B00F4 */ sw $t3, 0xf4($t9) +/* 00E0BC 7000D4BC AF2A00F0 */ sw $t2, 0xf0($t9) +/* 00E0C0 7000D4C0 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E0C4 7000D4C4 258C0A80 */ addiu $t4, %lo(__osCleanupThread) # addiu $t4, $t4, 0xa80 +/* 00E0C8 7000D4C8 01807825 */ move $t7, $t4 +/* 00E0CC 7000D4CC 000C77C3 */ sra $t6, $t4, 0x1f +/* 00E0D0 7000D4D0 ADAE0100 */ sw $t6, 0x100($t5) +/* 00E0D4 7000D4D4 ADAF0104 */ sw $t7, 0x104($t5) +/* 00E0D8 7000D4D8 8FA90028 */ lw $t1, 0x28($sp) +/* 00E0DC 7000D4DC 3C18003F */ lui $t8, (0x003FFF01 >> 16) # lui $t8, 0x3f +/* 00E0E0 7000D4E0 3718FF01 */ ori $t8, (0x003FFF01 & 0xFFFF) # ori $t8, $t8, 0xff01 +/* 00E0E4 7000D4E4 AFB80020 */ sw $t8, 0x20($sp) +/* 00E0E8 7000D4E8 3408FF03 */ li $t0, 65283 +/* 00E0EC 7000D4EC AD280118 */ sw $t0, 0x118($t1) +/* 00E0F0 7000D4F0 8FAA0020 */ lw $t2, 0x20($sp) +/* 00E0F4 7000D4F4 8FAC0028 */ lw $t4, 0x28($sp) +/* 00E0F8 7000D4F8 3C01003F */ lui $at, 0x3f +/* 00E0FC 7000D4FC 01415824 */ and $t3, $t2, $at +/* 00E100 7000D500 000BCC02 */ srl $t9, $t3, 0x10 +/* 00E104 7000D504 AD990128 */ sw $t9, 0x128($t4) +/* 00E108 7000D508 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E10C 7000D50C 3C0E0100 */ lui $t6, (0x01000800 >> 16) # lui $t6, 0x100 +/* 00E110 7000D510 35CE0800 */ ori $t6, (0x01000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 00E114 7000D514 ADEE012C */ sw $t6, 0x12c($t7) +/* 00E118 7000D518 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E11C 7000D51C 24180001 */ li $t8, 1 +/* 00E120 7000D520 ADA00018 */ sw $zero, 0x18($t5) +/* 00E124 7000D524 8FA80028 */ lw $t0, 0x28($sp) +/* 00E128 7000D528 A5180010 */ sh $t8, 0x10($t0) +/* 00E12C 7000D52C 8FA90028 */ lw $t1, 0x28($sp) +/* 00E130 7000D530 0C00617C */ jal __osDisableInt +/* 00E134 7000D534 A5200012 */ sh $zero, 0x12($t1) +/* 00E138 7000D538 3C0A8002 */ lui $t2, %hi(__osActiveQueue) +/* 00E13C 7000D53C 8D4A772C */ lw $t2, %lo(__osActiveQueue)($t2) +/* 00E140 7000D540 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E144 7000D544 00408025 */ move $s0, $v0 +/* 00E148 7000D548 3C018002 */ lui $at, %hi(__osActiveQueue) +/* 00E14C 7000D54C AD6A000C */ sw $t2, 0xc($t3) +/* 00E150 7000D550 8FB90028 */ lw $t9, 0x28($sp) +/* 00E154 7000D554 02002025 */ move $a0, $s0 +/* 00E158 7000D558 0C006184 */ jal __osRestoreInt +/* 00E15C 7000D55C AC39772C */ sw $t9, %lo(__osActiveQueue)($at) +/* 00E160 7000D560 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E164 7000D564 8FB00018 */ lw $s0, 0x18($sp) +/* 00E168 7000D568 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E16C 7000D56C 03E00008 */ jr $ra +/* 00E170 7000D570 00000000 */ nop diff --git a/src/libultra/cseq.s b/src/libultra/cseq.s new file mode 100644 index 0000000..daf7a70 --- /dev/null +++ b/src/libultra/cseq.s @@ -0,0 +1,774 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSeqGetLoc +/* 012E40 70012240 8C8E0004 */ lw $t6, 4($a0) +/* 012E44 70012244 00803025 */ move $a2, $a0 +/* 012E48 70012248 00804025 */ move $t0, $a0 +/* 012E4C 7001224C ACAE0000 */ sw $t6, ($a1) +/* 012E50 70012250 8C8F000C */ lw $t7, 0xc($a0) +/* 012E54 70012254 00001025 */ move $v0, $zero +/* 012E58 70012258 00A01825 */ move $v1, $a1 +/* 012E5C 7001225C ACAF0004 */ sw $t7, 4($a1) +/* 012E60 70012260 8C980010 */ lw $t8, 0x10($a0) +/* 012E64 70012264 24040010 */ li $a0, 16 +/* 012E68 70012268 00A03825 */ move $a3, $a1 +/* 012E6C 7001226C ACB80008 */ sw $t8, 8($a1) +.L70012270: +/* 012E70 70012270 8CD90018 */ lw $t9, 0x18($a2) +/* 012E74 70012274 24420002 */ addiu $v0, $v0, 2 +/* 012E78 70012278 24630008 */ addiu $v1, $v1, 8 +/* 012E7C 7001227C AC790004 */ sw $t9, 4($v1) +/* 012E80 70012280 8CC90058 */ lw $t1, 0x58($a2) +/* 012E84 70012284 24C60008 */ addiu $a2, $a2, 8 +/* 012E88 70012288 24E70002 */ addiu $a3, $a3, 2 +/* 012E8C 7001228C AC690044 */ sw $t1, 0x44($v1) +/* 012E90 70012290 910A0098 */ lbu $t2, 0x98($t0) +/* 012E94 70012294 25080002 */ addiu $t0, $t0, 2 +/* 012E98 70012298 A0EA008A */ sb $t2, 0x8a($a3) +/* 012E9C 7001229C 910B00A6 */ lbu $t3, 0xa6($t0) +/* 012EA0 700122A0 A0EB009A */ sb $t3, 0x9a($a3) +/* 012EA4 700122A4 8CCC00B0 */ lw $t4, 0xb0($a2) +/* 012EA8 700122A8 AC6C00A4 */ sw $t4, 0xa4($v1) +/* 012EAC 700122AC 8CCD0014 */ lw $t5, 0x14($a2) +/* 012EB0 700122B0 AC6D0008 */ sw $t5, 8($v1) +/* 012EB4 700122B4 8CCE0054 */ lw $t6, 0x54($a2) +/* 012EB8 700122B8 AC6E0048 */ sw $t6, 0x48($v1) +/* 012EBC 700122BC 910F0097 */ lbu $t7, 0x97($t0) +/* 012EC0 700122C0 A0EF008B */ sb $t7, 0x8b($a3) +/* 012EC4 700122C4 911800A7 */ lbu $t8, 0xa7($t0) +/* 012EC8 700122C8 A0F8009B */ sb $t8, 0x9b($a3) +/* 012ECC 700122CC 8CD900B4 */ lw $t9, 0xb4($a2) +/* 012ED0 700122D0 1444FFE7 */ bne $v0, $a0, .L70012270 +/* 012ED4 700122D4 AC7900A8 */ sw $t9, 0xa8($v1) +/* 012ED8 700122D8 03E00008 */ jr $ra +/* 012EDC 700122DC 00000000 */ nop + +glabel alCSeqSetLoc +/* 012EE0 700122E0 8CAE0000 */ lw $t6, ($a1) +/* 012EE4 700122E4 00801825 */ move $v1, $a0 +/* 012EE8 700122E8 00803825 */ move $a3, $a0 +/* 012EEC 700122EC AC8E0004 */ sw $t6, 4($a0) +/* 012EF0 700122F0 8CAF0004 */ lw $t7, 4($a1) +/* 012EF4 700122F4 00001025 */ move $v0, $zero +/* 012EF8 700122F8 00A03025 */ move $a2, $a1 +/* 012EFC 700122FC AC8F000C */ sw $t7, 0xc($a0) +/* 012F00 70012300 8CB80008 */ lw $t8, 8($a1) +/* 012F04 70012304 00A04025 */ move $t0, $a1 +/* 012F08 70012308 AC980010 */ sw $t8, 0x10($a0) +/* 012F0C 7001230C 24040010 */ li $a0, 16 +.L70012310: +/* 012F10 70012310 8CD9000C */ lw $t9, 0xc($a2) +/* 012F14 70012314 24420002 */ addiu $v0, $v0, 2 +/* 012F18 70012318 24630008 */ addiu $v1, $v1, 8 +/* 012F1C 7001231C AC790010 */ sw $t9, 0x10($v1) +/* 012F20 70012320 8CC9004C */ lw $t1, 0x4c($a2) +/* 012F24 70012324 24C60008 */ addiu $a2, $a2, 8 +/* 012F28 70012328 24E70002 */ addiu $a3, $a3, 2 +/* 012F2C 7001232C AC690050 */ sw $t1, 0x50($v1) +/* 012F30 70012330 910A008C */ lbu $t2, 0x8c($t0) +/* 012F34 70012334 25080002 */ addiu $t0, $t0, 2 +/* 012F38 70012338 A0EA0096 */ sb $t2, 0x96($a3) +/* 012F3C 7001233C 910B009A */ lbu $t3, 0x9a($t0) +/* 012F40 70012340 A0EB00A6 */ sb $t3, 0xa6($a3) +/* 012F44 70012344 8CCC00A4 */ lw $t4, 0xa4($a2) +/* 012F48 70012348 AC6C00B0 */ sw $t4, 0xb0($v1) +/* 012F4C 7001234C 8CCD0008 */ lw $t5, 8($a2) +/* 012F50 70012350 AC6D0014 */ sw $t5, 0x14($v1) +/* 012F54 70012354 8CCE0048 */ lw $t6, 0x48($a2) +/* 012F58 70012358 AC6E0054 */ sw $t6, 0x54($v1) +/* 012F5C 7001235C 910F008B */ lbu $t7, 0x8b($t0) +/* 012F60 70012360 A0EF0097 */ sb $t7, 0x97($a3) +/* 012F64 70012364 9118009B */ lbu $t8, 0x9b($t0) +/* 012F68 70012368 A0F800A7 */ sb $t8, 0xa7($a3) +/* 012F6C 7001236C 8CD900A8 */ lw $t9, 0xa8($a2) +/* 012F70 70012370 1444FFE7 */ bne $v0, $a0, .L70012310 +/* 012F74 70012374 AC7900B4 */ sw $t9, 0xb4($v1) +/* 012F78 70012378 03E00008 */ jr $ra +/* 012F7C 7001237C 00000000 */ nop + +glabel ultra_70012380 +/* 012F80 70012380 00851021 */ addu $v0, $a0, $a1 +/* 012F84 70012384 904E0098 */ lbu $t6, 0x98($v0) +/* 012F88 70012388 00057880 */ sll $t7, $a1, 2 +/* 012F8C 7001238C 008F3021 */ addu $a2, $a0, $t7 +/* 012F90 70012390 51C0000D */ beql $t6, $zero, .L700123C8 +/* 012F94 70012394 8CC70018 */ lw $a3, 0x18($a2) +/* 012F98 70012398 00057880 */ sll $t7, $a1, 2 +/* 012F9C 7001239C 008F3021 */ addu $a2, $a0, $t7 +/* 012FA0 700123A0 8CC70058 */ lw $a3, 0x58($a2) +/* 012FA4 700123A4 90E30000 */ lbu $v1, ($a3) +/* 012FA8 700123A8 24F80001 */ addiu $t8, $a3, 1 +/* 012FAC 700123AC ACD80058 */ sw $t8, 0x58($a2) +/* 012FB0 700123B0 90590098 */ lbu $t9, 0x98($v0) +/* 012FB4 700123B4 272EFFFF */ addiu $t6, $t9, -1 +/* 012FB8 700123B8 A04E0098 */ sb $t6, 0x98($v0) +/* 012FBC 700123BC 03E00008 */ jr $ra +/* 012FC0 700123C0 00601025 */ move $v0, $v1 + +/* 012FC4 700123C4 8CC70018 */ lw $a3, 0x18($a2) +.L700123C8: +/* 012FC8 700123C8 240800FE */ li $t0, 254 +/* 012FCC 700123CC 90E30000 */ lbu $v1, ($a3) +/* 012FD0 700123D0 24F80001 */ addiu $t8, $a3, 1 +/* 012FD4 700123D4 ACD80018 */ sw $t8, 0x18($a2) +/* 012FD8 700123D8 15030018 */ bne $t0, $v1, .L7001243C +/* 012FDC 700123DC 00000000 */ nop +/* 012FE0 700123E0 93040000 */ lbu $a0, ($t8) +/* 012FE4 700123E4 27190001 */ addiu $t9, $t8, 1 +/* 012FE8 700123E8 ACD90018 */ sw $t9, 0x18($a2) +/* 012FEC 700123EC 11040013 */ beq $t0, $a0, .L7001243C +/* 012FF0 700123F0 272E0001 */ addiu $t6, $t9, 1 +/* 012FF4 700123F4 93230000 */ lbu $v1, ($t9) +/* 012FF8 700123F8 ACCE0018 */ sw $t6, 0x18($a2) +/* 012FFC 700123FC 91C50000 */ lbu $a1, ($t6) +/* 013000 70012400 25CF0001 */ addiu $t7, $t6, 1 +/* 013004 70012404 0004CA00 */ sll $t9, $a0, 8 +/* 013008 70012408 ACCF0018 */ sw $t7, 0x18($a2) +/* 01300C 7001240C 03237021 */ addu $t6, $t9, $v1 +/* 013010 70012410 01EE7823 */ subu $t7, $t7, $t6 +/* 013014 70012414 25F9FFFC */ addiu $t9, $t7, -4 +/* 013018 70012418 ACD90058 */ sw $t9, 0x58($a2) +/* 01301C 7001241C A0450098 */ sb $a1, 0x98($v0) +/* 013020 70012420 8CC70058 */ lw $a3, 0x58($a2) +/* 013024 70012424 90E30000 */ lbu $v1, ($a3) +/* 013028 70012428 24F80001 */ addiu $t8, $a3, 1 +/* 01302C 7001242C ACD80058 */ sw $t8, 0x58($a2) +/* 013030 70012430 904E0098 */ lbu $t6, 0x98($v0) +/* 013034 70012434 25CFFFFF */ addiu $t7, $t6, -1 +/* 013038 70012438 A04F0098 */ sb $t7, 0x98($v0) +.L7001243C: +/* 01303C 7001243C 03E00008 */ jr $ra +/* 013040 70012440 00601025 */ move $v0, $v1 + +glabel ultra_70012444 +/* 013044 70012444 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 013048 70012448 AFBF0014 */ sw $ra, 0x14($sp) +/* 01304C 7001244C 01402025 */ move $a0, $t2 +/* 013050 70012450 0C0048E0 */ jal ultra_70012380 +/* 013054 70012454 01602825 */ move $a1, $t3 +/* 013058 70012458 304E0080 */ andi $t6, $v0, 0x80 +/* 01305C 7001245C 11C0000A */ beqz $t6, .L70012488 +/* 013060 70012460 00404825 */ move $t1, $v0 +/* 013064 70012464 3049007F */ andi $t1, $v0, 0x7f +.L70012468: +/* 013068 70012468 01402025 */ move $a0, $t2 +/* 01306C 7001246C 0C0048E0 */ jal ultra_70012380 +/* 013070 70012470 01602825 */ move $a1, $t3 +/* 013074 70012474 000979C0 */ sll $t7, $t1, 7 +/* 013078 70012478 3058007F */ andi $t8, $v0, 0x7f +/* 01307C 7001247C 30590080 */ andi $t9, $v0, 0x80 +/* 013080 70012480 1720FFF9 */ bnez $t9, .L70012468 +/* 013084 70012484 01F84821 */ addu $t1, $t7, $t8 +.L70012488: +/* 013088 70012488 8FBF0014 */ lw $ra, 0x14($sp) +/* 01308C 7001248C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 013090 70012490 01201025 */ move $v0, $t1 +/* 013094 70012494 03E00008 */ jr $ra +/* 013098 70012498 00000000 */ nop + +/* 01309C 7001249C 03E00008 */ jr $ra +/* 0130A0 700124A0 00000000 */ nop + +glabel alCSeqNextEvent +/* 0130A4 700124A4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0130A8 700124A8 AFB00018 */ sw $s0, 0x18($sp) +/* 0130AC 700124AC 00A08025 */ move $s0, $a1 +/* 0130B0 700124B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0130B4 700124B4 00806025 */ move $t4, $a0 +/* 0130B8 700124B8 2409FFFF */ li $t1, -1 +/* 0130BC 700124BC 8C860010 */ lw $a2, 0x10($a0) +/* 0130C0 700124C0 24050010 */ li $a1, 16 +/* 0130C4 700124C4 8FAB0024 */ lw $t3, 0x24($sp) +/* 0130C8 700124C8 00001025 */ move $v0, $zero +/* 0130CC 700124CC 8D8E0004 */ lw $t6, 4($t4) +.L700124D0: +/* 0130D0 700124D0 004E7806 */ srlv $t7, $t6, $v0 +/* 0130D4 700124D4 31F80001 */ andi $t8, $t7, 1 +/* 0130D8 700124D8 53000010 */ beql $t8, $zero, .L7001251C +/* 0130DC 700124DC 24420001 */ addiu $v0, $v0, 1 +/* 0130E0 700124E0 8D8E0014 */ lw $t6, 0x14($t4) +/* 0130E4 700124E4 0002C880 */ sll $t9, $v0, 2 +/* 0130E8 700124E8 01991821 */ addu $v1, $t4, $t9 +/* 0130EC 700124EC 51C00005 */ beql $t6, $zero, .L70012504 +/* 0130F0 700124F0 8C6400B8 */ lw $a0, 0xb8($v1) +/* 0130F4 700124F4 8C6F00B8 */ lw $t7, 0xb8($v1) +/* 0130F8 700124F8 01E6C023 */ subu $t8, $t7, $a2 +/* 0130FC 700124FC AC7800B8 */ sw $t8, 0xb8($v1) +/* 013100 70012500 8C6400B8 */ lw $a0, 0xb8($v1) +.L70012504: +/* 013104 70012504 0089082B */ sltu $at, $a0, $t1 +/* 013108 70012508 50200004 */ beql $at, $zero, .L7001251C +/* 01310C 7001250C 24420001 */ addiu $v0, $v0, 1 +/* 013110 70012510 00804825 */ move $t1, $a0 +/* 013114 70012514 00405825 */ move $t3, $v0 +/* 013118 70012518 24420001 */ addiu $v0, $v0, 1 +.L7001251C: +/* 01311C 7001251C 5445FFEC */ bnel $v0, $a1, .L700124D0 +/* 013120 70012520 8D8E0004 */ lw $t6, 4($t4) +/* 013124 70012524 01802025 */ move $a0, $t4 +/* 013128 70012528 0C0048E0 */ jal ultra_70012380 +/* 01312C 7001252C 01602825 */ move $a1, $t3 +/* 013130 70012530 240100FF */ li $at, 255 +/* 013134 70012534 304A00FF */ andi $t2, $v0, 0xff +/* 013138 70012538 1441005A */ bne $v0, $at, .L700126A4 +/* 01313C 7001253C 00401825 */ move $v1, $v0 +/* 013140 70012540 01802025 */ move $a0, $t4 +/* 013144 70012544 0C0048E0 */ jal ultra_70012380 +/* 013148 70012548 01602825 */ move $a1, $t3 +/* 01314C 7001254C 24010051 */ li $at, 81 +/* 013150 70012550 304600FF */ andi $a2, $v0, 0xff +/* 013154 70012554 14410014 */ bne $v0, $at, .L700125A8 +/* 013158 70012558 00401825 */ move $v1, $v0 +/* 01315C 7001255C 24190003 */ li $t9, 3 +/* 013160 70012560 A6190000 */ sh $t9, ($s0) +/* 013164 70012564 A20A0008 */ sb $t2, 8($s0) +/* 013168 70012568 A2060009 */ sb $a2, 9($s0) +/* 01316C 7001256C 01802025 */ move $a0, $t4 +/* 013170 70012570 0C0048E0 */ jal ultra_70012380 +/* 013174 70012574 01602825 */ move $a1, $t3 +/* 013178 70012578 A202000B */ sb $v0, 0xb($s0) +/* 01317C 7001257C 01802025 */ move $a0, $t4 +/* 013180 70012580 0C0048E0 */ jal ultra_70012380 +/* 013184 70012584 01602825 */ move $a1, $t3 +/* 013188 70012588 A202000C */ sb $v0, 0xc($s0) +/* 01318C 7001258C 01802025 */ move $a0, $t4 +/* 013190 70012590 0C0048E0 */ jal ultra_70012380 +/* 013194 70012594 01602825 */ move $a1, $t3 +/* 013198 70012598 A202000D */ sb $v0, 0xd($s0) +/* 01319C 7001259C 018B7021 */ addu $t6, $t4, $t3 +/* 0131A0 700125A0 10000067 */ b .L70012740 +/* 0131A4 700125A4 A1C000A8 */ sb $zero, 0xa8($t6) +.L700125A8: +/* 0131A8 700125A8 2401002F */ li $at, 47 +/* 0131AC 700125AC 5461000E */ bnel $v1, $at, .L700125E8 +/* 0131B0 700125B0 2401002E */ li $at, 46 +/* 0131B4 700125B4 8D8F0004 */ lw $t7, 4($t4) +/* 0131B8 700125B8 24180001 */ li $t8, 1 +/* 0131BC 700125BC 0178C804 */ sllv $t9, $t8, $t3 +/* 0131C0 700125C0 01F97026 */ xor $t6, $t7, $t9 +/* 0131C4 700125C4 11C00004 */ beqz $t6, .L700125D8 +/* 0131C8 700125C8 AD8E0004 */ sw $t6, 4($t4) +/* 0131CC 700125CC 240F0012 */ li $t7, 18 +/* 0131D0 700125D0 1000005B */ b .L70012740 +/* 0131D4 700125D4 A60F0000 */ sh $t7, ($s0) +.L700125D8: +/* 0131D8 700125D8 24190004 */ li $t9, 4 +/* 0131DC 700125DC 10000058 */ b .L70012740 +/* 0131E0 700125E0 A6190000 */ sh $t9, ($s0) +/* 0131E4 700125E4 2401002E */ li $at, 46 +.L700125E8: +/* 0131E8 700125E8 1461000B */ bne $v1, $at, .L70012618 +/* 0131EC 700125EC 01802025 */ move $a0, $t4 +/* 0131F0 700125F0 0C0048E0 */ jal ultra_70012380 +/* 0131F4 700125F4 01602825 */ move $a1, $t3 +/* 0131F8 700125F8 01802025 */ move $a0, $t4 +/* 0131FC 700125FC 0C0048E0 */ jal ultra_70012380 +/* 013200 70012600 01602825 */ move $a1, $t3 +/* 013204 70012604 018B7021 */ addu $t6, $t4, $t3 +/* 013208 70012608 A1C000A8 */ sb $zero, 0xa8($t6) +/* 01320C 7001260C 24180013 */ li $t8, 19 +/* 013210 70012610 1000004B */ b .L70012740 +/* 013214 70012614 A6180000 */ sh $t8, ($s0) +.L70012618: +/* 013218 70012618 2401002D */ li $at, 45 +/* 01321C 7001261C 14610048 */ bne $v1, $at, .L70012740 +/* 013220 70012620 000B7880 */ sll $t7, $t3, 2 +/* 013224 70012624 018F6821 */ addu $t5, $t4, $t7 +/* 013228 70012628 8DA20018 */ lw $v0, 0x18($t5) +/* 01322C 7001262C 240100FF */ li $at, 255 +/* 013230 70012630 90440001 */ lbu $a0, 1($v0) +/* 013234 70012634 24420001 */ addiu $v0, $v0, 1 +/* 013238 70012638 24590005 */ addiu $t9, $v0, 5 +/* 01323C 7001263C 14800004 */ bnez $a0, .L70012650 +/* 013240 70012640 9045FFFF */ lbu $a1, -1($v0) +/* 013244 70012644 A0450000 */ sb $a1, ($v0) +/* 013248 70012648 10000011 */ b .L70012690 +/* 01324C 7001264C ADB90018 */ sw $t9, 0x18($t5) +.L70012650: +/* 013250 70012650 10810002 */ beq $a0, $at, .L7001265C +/* 013254 70012654 248EFFFF */ addiu $t6, $a0, -1 +/* 013258 70012658 A04E0000 */ sb $t6, ($v0) +.L7001265C: +/* 01325C 7001265C 904F0002 */ lbu $t7, 2($v0) +/* 013260 70012660 90430001 */ lbu $v1, 1($v0) +/* 013264 70012664 904E0003 */ lbu $t6, 3($v0) +/* 013268 70012668 000FCC00 */ sll $t9, $t7, 0x10 +/* 01326C 7001266C 0003C600 */ sll $t8, $v1, 0x18 +/* 013270 70012670 904F0004 */ lbu $t7, 4($v0) +/* 013274 70012674 03191821 */ addu $v1, $t8, $t9 +/* 013278 70012678 000EC200 */ sll $t8, $t6, 8 +/* 01327C 7001267C 00781821 */ addu $v1, $v1, $t8 +/* 013280 70012680 24420005 */ addiu $v0, $v0, 5 +/* 013284 70012684 006F1821 */ addu $v1, $v1, $t7 +/* 013288 70012688 0043C823 */ subu $t9, $v0, $v1 +/* 01328C 7001268C ADB90018 */ sw $t9, 0x18($t5) +.L70012690: +/* 013290 70012690 018B7021 */ addu $t6, $t4, $t3 +/* 013294 70012694 A1C000A8 */ sb $zero, 0xa8($t6) +/* 013298 70012698 24180014 */ li $t8, 20 +/* 01329C 7001269C 10000028 */ b .L70012740 +/* 0132A0 700126A0 A6180000 */ sh $t8, ($s0) +.L700126A4: +/* 0132A4 700126A4 240F0001 */ li $t7, 1 +/* 0132A8 700126A8 30790080 */ andi $t9, $v1, 0x80 +/* 0132AC 700126AC 13200009 */ beqz $t9, .L700126D4 +/* 0132B0 700126B0 A60F0000 */ sh $t7, ($s0) +/* 0132B4 700126B4 A20A0008 */ sb $t2, 8($s0) +/* 0132B8 700126B8 01802025 */ move $a0, $t4 +/* 0132BC 700126BC 0C0048E0 */ jal ultra_70012380 +/* 0132C0 700126C0 01602825 */ move $a1, $t3 +/* 0132C4 700126C4 A2020009 */ sb $v0, 9($s0) +/* 0132C8 700126C8 018B7021 */ addu $t6, $t4, $t3 +/* 0132CC 700126CC 10000005 */ b .L700126E4 +/* 0132D0 700126D0 A1CA00A8 */ sb $t2, 0xa8($t6) +.L700126D4: +/* 0132D4 700126D4 018BC021 */ addu $t8, $t4, $t3 +/* 0132D8 700126D8 930F00A8 */ lbu $t7, 0xa8($t8) +/* 0132DC 700126DC A2020009 */ sb $v0, 9($s0) +/* 0132E0 700126E0 A20F0008 */ sb $t7, 8($s0) +.L700126E4: +/* 0132E4 700126E4 92020008 */ lbu $v0, 8($s0) +/* 0132E8 700126E8 240100C0 */ li $at, 192 +/* 0132EC 700126EC 305900F0 */ andi $t9, $v0, 0xf0 +/* 0132F0 700126F0 13210012 */ beq $t9, $at, .L7001273C +/* 0132F4 700126F4 240100D0 */ li $at, 208 +/* 0132F8 700126F8 13210010 */ beq $t9, $at, .L7001273C +/* 0132FC 700126FC 01802025 */ move $a0, $t4 +/* 013300 70012700 0C0048E0 */ jal ultra_70012380 +/* 013304 70012704 01602825 */ move $a1, $t3 +/* 013308 70012708 920E0008 */ lbu $t6, 8($s0) +/* 01330C 7001270C 24010090 */ li $at, 144 +/* 013310 70012710 A202000A */ sb $v0, 0xa($s0) +/* 013314 70012714 31D800F0 */ andi $t8, $t6, 0xf0 +/* 013318 70012718 17010009 */ bne $t8, $at, .L70012740 +/* 01331C 7001271C 01805025 */ move $t2, $t4 +/* 013320 70012720 AFA90028 */ sw $t1, 0x28($sp) +/* 013324 70012724 0C004911 */ jal ultra_70012444 +/* 013328 70012728 AFAB0024 */ sw $t3, 0x24($sp) +/* 01332C 7001272C 8FA90028 */ lw $t1, 0x28($sp) +/* 013330 70012730 8FAB0024 */ lw $t3, 0x24($sp) +/* 013334 70012734 10000002 */ b .L70012740 +/* 013338 70012738 AE02000C */ sw $v0, 0xc($s0) +.L7001273C: +/* 01333C 7001273C A200000A */ sb $zero, 0xa($s0) +.L70012740: +/* 013340 70012740 AE090004 */ sw $t1, 4($s0) +/* 013344 70012744 8D8F000C */ lw $t7, 0xc($t4) +/* 013348 70012748 AD890010 */ sw $t1, 0x10($t4) +/* 01334C 7001274C 24010012 */ li $at, 18 +/* 013350 70012750 01E9C821 */ addu $t9, $t7, $t1 +/* 013354 70012754 AD99000C */ sw $t9, 0xc($t4) +/* 013358 70012758 860E0000 */ lh $t6, ($s0) +/* 01335C 7001275C 01805025 */ move $t2, $t4 +/* 013360 70012760 000BC080 */ sll $t8, $t3, 2 +/* 013364 70012764 51C10007 */ beql $t6, $at, .L70012784 +/* 013368 70012768 240E0001 */ li $t6, 1 +/* 01336C 7001276C 0C004911 */ jal ultra_70012444 +/* 013370 70012770 01986821 */ addu $t5, $t4, $t8 +/* 013374 70012774 8DAF00B8 */ lw $t7, 0xb8($t5) +/* 013378 70012778 01E2C821 */ addu $t9, $t7, $v0 +/* 01337C 7001277C ADB900B8 */ sw $t9, 0xb8($t5) +/* 013380 70012780 240E0001 */ li $t6, 1 +.L70012784: +/* 013384 70012784 AD8E0014 */ sw $t6, 0x14($t4) +/* 013388 70012788 8FBF001C */ lw $ra, 0x1c($sp) +/* 01338C 7001278C 8FB00018 */ lw $s0, 0x18($sp) +/* 013390 70012790 27BD0030 */ addiu $sp, $sp, 0x30 +/* 013394 70012794 03E00008 */ jr $ra +/* 013398 70012798 00000000 */ nop + +glabel alCSeqNew +/* 01339C 7001279C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0133A0 700127A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0133A4 700127A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0133A8 700127A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0133AC 700127AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0133B0 700127B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0133B4 700127B4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0133B8 700127B8 240E0001 */ li $t6, 1 +/* 0133BC 700127BC 00808025 */ move $s0, $a0 +/* 0133C0 700127C0 00A0A025 */ move $s4, $a1 +/* 0133C4 700127C4 AC850000 */ sw $a1, ($a0) +/* 0133C8 700127C8 AC800004 */ sw $zero, 4($a0) +/* 0133CC 700127CC AC800010 */ sw $zero, 0x10($a0) +/* 0133D0 700127D0 AC80000C */ sw $zero, 0xc($a0) +/* 0133D4 700127D4 AC8E0014 */ sw $t6, 0x14($a0) +/* 0133D8 700127D8 00808825 */ move $s1, $a0 +/* 0133DC 700127DC 00009025 */ move $s2, $zero +/* 0133E0 700127E0 24130010 */ li $s3, 16 +/* 0133E4 700127E4 00006825 */ move $t5, $zero +/* 0133E8 700127E8 00806025 */ move $t4, $a0 +.L700127EC: +/* 0133EC 700127EC A22000A8 */ sb $zero, 0xa8($s1) +/* 0133F0 700127F0 AD800058 */ sw $zero, 0x58($t4) +/* 0133F4 700127F4 A2200098 */ sb $zero, 0x98($s1) +/* 0133F8 700127F8 8E0F0000 */ lw $t7, ($s0) +/* 0133FC 700127FC 240E0001 */ li $t6, 1 +/* 013400 70012800 01F2C021 */ addu $t8, $t7, $s2 +/* 013404 70012804 8F020000 */ lw $v0, ($t8) +/* 013408 70012808 01AE7804 */ sllv $t7, $t6, $t5 +/* 01340C 7001280C 1040000A */ beqz $v0, .L70012838 +/* 013410 70012810 02827021 */ addu $t6, $s4, $v0 +/* 013414 70012814 8E190004 */ lw $t9, 4($s0) +/* 013418 70012818 02005025 */ move $t2, $s0 +/* 01341C 7001281C 01A05825 */ move $t3, $t5 +/* 013420 70012820 032FC025 */ or $t8, $t9, $t7 +/* 013424 70012824 AE180004 */ sw $t8, 4($s0) +/* 013428 70012828 0C004911 */ jal ultra_70012444 +/* 01342C 7001282C AD8E0018 */ sw $t6, 0x18($t4) +/* 013430 70012830 10000002 */ b .L7001283C +/* 013434 70012834 AD8200B8 */ sw $v0, 0xb8($t4) +.L70012838: +/* 013438 70012838 AD800018 */ sw $zero, 0x18($t4) +.L7001283C: +/* 01343C 7001283C 25AD0001 */ addiu $t5, $t5, 1 +/* 013440 70012840 26310001 */ addiu $s1, $s1, 1 +/* 013444 70012844 26520004 */ addiu $s2, $s2, 4 +/* 013448 70012848 15B3FFE8 */ bne $t5, $s3, .L700127EC +/* 01344C 7001284C 258C0004 */ addiu $t4, $t4, 4 +/* 013450 70012850 8E190000 */ lw $t9, ($s0) +/* 013454 70012854 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 013458 70012858 44812800 */ mtc1 $at, $f5 +/* 01345C 7001285C 8F2F0040 */ lw $t7, 0x40($t9) +/* 013460 70012860 44802000 */ mtc1 $zero, $f4 +/* 013464 70012864 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 013468 70012868 448F3000 */ mtc1 $t7, $f6 +/* 01346C 7001286C 05E10004 */ bgez $t7, .L70012880 +/* 013470 70012870 46803220 */ cvt.s.w $f8, $f6 +/* 013474 70012874 44815000 */ mtc1 $at, $f10 +/* 013478 70012878 00000000 */ nop +/* 01347C 7001287C 460A4200 */ add.s $f8, $f8, $f10 +.L70012880: +/* 013480 70012880 460041A1 */ cvt.d.s $f6, $f8 +/* 013484 70012884 46262283 */ div.d $f10, $f4, $f6 +/* 013488 70012888 46205220 */ cvt.s.d $f8, $f10 +/* 01348C 7001288C E6080008 */ swc1 $f8, 8($s0) +/* 013490 70012890 8FBF002C */ lw $ra, 0x2c($sp) +/* 013494 70012894 8FB40028 */ lw $s4, 0x28($sp) +/* 013498 70012898 8FB30024 */ lw $s3, 0x24($sp) +/* 01349C 7001289C 8FB20020 */ lw $s2, 0x20($sp) +/* 0134A0 700128A0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0134A4 700128A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0134A8 700128A8 03E00008 */ jr $ra +/* 0134AC 700128AC 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alCSeqNewMarker +/* 0134B0 700128B0 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 0134B4 700128B4 AFB30020 */ sw $s3, 0x20($sp) +/* 0134B8 700128B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0134BC 700128BC 00A08825 */ move $s1, $a1 +/* 0134C0 700128C0 27B30048 */ addiu $s3, $sp, 0x48 +/* 0134C4 700128C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0134C8 700128C8 AFB50028 */ sw $s5, 0x28($sp) +/* 0134CC 700128CC AFB40024 */ sw $s4, 0x24($sp) +/* 0134D0 700128D0 AFB2001C */ sw $s2, 0x1c($sp) +/* 0134D4 700128D4 AFB00014 */ sw $s0, 0x14($sp) +/* 0134D8 700128D8 00803825 */ move $a3, $a0 +/* 0134DC 700128DC 00C09025 */ move $s2, $a2 +/* 0134E0 700128E0 8CE50000 */ lw $a1, ($a3) +/* 0134E4 700128E4 0C0049E7 */ jal alCSeqNew +/* 0134E8 700128E8 02602025 */ move $a0, $s3 +/* 0134EC 700128EC 24150004 */ li $s5, 4 +/* 0134F0 700128F0 27B40140 */ addiu $s4, $sp, 0x140 +/* 0134F4 700128F4 27B00058 */ addiu $s0, $sp, 0x58 +/* 0134F8 700128F8 8FAE004C */ lw $t6, 0x4c($sp) +.L700128FC: +/* 0134FC 700128FC 27A40048 */ addiu $a0, $sp, 0x48 +/* 013500 70012900 00801825 */ move $v1, $a0 +/* 013504 70012904 AE2E0000 */ sw $t6, ($s1) +/* 013508 70012908 8FAF0054 */ lw $t7, 0x54($sp) +/* 01350C 7001290C 02201025 */ move $v0, $s1 +/* 013510 70012910 02202825 */ move $a1, $s1 +/* 013514 70012914 AE2F0004 */ sw $t7, 4($s1) +/* 013518 70012918 8FB80058 */ lw $t8, 0x58($sp) +/* 01351C 7001291C AE380008 */ sw $t8, 8($s1) +.L70012920: +/* 013520 70012920 8C680018 */ lw $t0, 0x18($v1) +/* 013524 70012924 24840004 */ addiu $a0, $a0, 4 +/* 013528 70012928 24420010 */ addiu $v0, $v0, 0x10 +/* 01352C 7001292C AC48FFFC */ sw $t0, -4($v0) +/* 013530 70012930 8C690058 */ lw $t1, 0x58($v1) +/* 013534 70012934 24630010 */ addiu $v1, $v1, 0x10 +/* 013538 70012938 24A50004 */ addiu $a1, $a1, 4 +/* 01353C 7001293C AC49003C */ sw $t1, 0x3c($v0) +/* 013540 70012940 908A0094 */ lbu $t2, 0x94($a0) +/* 013544 70012944 A0AA0088 */ sb $t2, 0x88($a1) +/* 013548 70012948 908B00A4 */ lbu $t3, 0xa4($a0) +/* 01354C 7001294C A0AB0098 */ sb $t3, 0x98($a1) +/* 013550 70012950 8C6C00A8 */ lw $t4, 0xa8($v1) +/* 013554 70012954 AC4C009C */ sw $t4, 0x9c($v0) +/* 013558 70012958 8C6D000C */ lw $t5, 0xc($v1) +/* 01355C 7001295C AC4D0000 */ sw $t5, ($v0) +/* 013560 70012960 8C6E004C */ lw $t6, 0x4c($v1) +/* 013564 70012964 AC4E0040 */ sw $t6, 0x40($v0) +/* 013568 70012968 908F0095 */ lbu $t7, 0x95($a0) +/* 01356C 7001296C A0AF0089 */ sb $t7, 0x89($a1) +/* 013570 70012970 909800A5 */ lbu $t8, 0xa5($a0) +/* 013574 70012974 A0B80099 */ sb $t8, 0x99($a1) +/* 013578 70012978 8C7900AC */ lw $t9, 0xac($v1) +/* 01357C 7001297C AC5900A0 */ sw $t9, 0xa0($v0) +/* 013580 70012980 8C680010 */ lw $t0, 0x10($v1) +/* 013584 70012984 AC480004 */ sw $t0, 4($v0) +/* 013588 70012988 8C690050 */ lw $t1, 0x50($v1) +/* 01358C 7001298C AC490044 */ sw $t1, 0x44($v0) +/* 013590 70012990 908A0096 */ lbu $t2, 0x96($a0) +/* 013594 70012994 A0AA008A */ sb $t2, 0x8a($a1) +/* 013598 70012998 908B00A6 */ lbu $t3, 0xa6($a0) +/* 01359C 7001299C A0AB009A */ sb $t3, 0x9a($a1) +/* 0135A0 700129A0 8C6C00B0 */ lw $t4, 0xb0($v1) +/* 0135A4 700129A4 AC4C00A4 */ sw $t4, 0xa4($v0) +/* 0135A8 700129A8 8C6D0014 */ lw $t5, 0x14($v1) +/* 0135AC 700129AC AC4D0008 */ sw $t5, 8($v0) +/* 0135B0 700129B0 8C6E0054 */ lw $t6, 0x54($v1) +/* 0135B4 700129B4 AC4E0048 */ sw $t6, 0x48($v0) +/* 0135B8 700129B8 908F0097 */ lbu $t7, 0x97($a0) +/* 0135BC 700129BC A0AF008B */ sb $t7, 0x8b($a1) +/* 0135C0 700129C0 909800A7 */ lbu $t8, 0xa7($a0) +/* 0135C4 700129C4 A0B8009B */ sb $t8, 0x9b($a1) +/* 0135C8 700129C8 8C7900B4 */ lw $t9, 0xb4($v1) +/* 0135CC 700129CC 1490FFD4 */ bne $a0, $s0, .L70012920 +/* 0135D0 700129D0 AC5900A8 */ sw $t9, 0xa8($v0) +/* 0135D4 700129D4 02602025 */ move $a0, $s3 +/* 0135D8 700129D8 0C004929 */ jal alCSeqNextEvent +/* 0135DC 700129DC 02802825 */ move $a1, $s4 +/* 0135E0 700129E0 87A80140 */ lh $t0, 0x140($sp) +/* 0135E4 700129E4 8FA90054 */ lw $t1, 0x54($sp) +/* 0135E8 700129E8 11150003 */ beq $t0, $s5, .L700129F8 +/* 0135EC 700129EC 0132082B */ sltu $at, $t1, $s2 +/* 0135F0 700129F0 5420FFC2 */ bnezl $at, .L700128FC +/* 0135F4 700129F4 8FAE004C */ lw $t6, 0x4c($sp) +.L700129F8: +/* 0135F8 700129F8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0135FC 700129FC 8FB00014 */ lw $s0, 0x14($sp) +/* 013600 70012A00 8FB10018 */ lw $s1, 0x18($sp) +/* 013604 70012A04 8FB2001C */ lw $s2, 0x1c($sp) +/* 013608 70012A08 8FB30020 */ lw $s3, 0x20($sp) +/* 01360C 70012A0C 8FB40024 */ lw $s4, 0x24($sp) +/* 013610 70012A10 8FB50028 */ lw $s5, 0x28($sp) +/* 013614 70012A14 03E00008 */ jr $ra +/* 013618 70012A18 27BD0150 */ addiu $sp, $sp, 0x150 + +glabel alCSeqGetTicks +/* 01361C 70012A1C 03E00008 */ jr $ra +/* 013620 70012A20 8C82000C */ lw $v0, 0xc($a0) + +glabel alCSeqSecToTicks +/* 013624 70012A24 8C8E0000 */ lw $t6, ($a0) +/* 013628 70012A28 44856000 */ mtc1 $a1, $f12 +/* 01362C 70012A2C 3C018003 */ lui $at, %hi(F64_800296D0) +/* 013630 70012A30 8DCF0040 */ lw $t7, 0x40($t6) +/* 013634 70012A34 D42696D0 */ ldc1 $f6, %lo(F64_800296D0)($at) +/* 013638 70012A38 46006121 */ cvt.d.s $f4, $f12 +/* 01363C 70012A3C 448F5000 */ mtc1 $t7, $f10 +/* 013640 70012A40 46262202 */ mul.d $f8, $f4, $f6 +/* 013644 70012A44 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 013648 70012A48 05E10005 */ bgez $t7, .L70012A60 +/* 01364C 70012A4C 46805421 */ cvt.d.w $f16, $f10 +/* 013650 70012A50 44819800 */ mtc1 $at, $f19 +/* 013654 70012A54 44809000 */ mtc1 $zero, $f18 +/* 013658 70012A58 00000000 */ nop +/* 01365C 70012A5C 46328400 */ add.d $f16, $f16, $f18 +.L70012A60: +/* 013660 70012A60 44863000 */ mtc1 $a2, $f6 +/* 013664 70012A64 46304102 */ mul.d $f4, $f8, $f16 +/* 013668 70012A68 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 01366C 70012A6C 04C10005 */ bgez $a2, .L70012A84 +/* 013670 70012A70 468032A1 */ cvt.d.w $f10, $f6 +/* 013674 70012A74 44819800 */ mtc1 $at, $f19 +/* 013678 70012A78 44809000 */ mtc1 $zero, $f18 +/* 01367C 70012A7C 00000000 */ nop +/* 013680 70012A80 46325280 */ add.d $f10, $f10, $f18 +.L70012A84: +/* 013684 70012A84 462A2203 */ div.d $f8, $f4, $f10 +/* 013688 70012A88 24020001 */ li $v0, 1 +/* 01368C 70012A8C 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 013690 70012A90 4458F800 */ cfc1 $t8, $31 +/* 013694 70012A94 44C2F800 */ ctc1 $v0, $31 +/* 013698 70012A98 00000000 */ nop +/* 01369C 70012A9C 46204424 */ cvt.w.d $f16, $f8 +/* 0136A0 70012AA0 4442F800 */ cfc1 $v0, $31 +/* 0136A4 70012AA4 00000000 */ nop +/* 0136A8 70012AA8 30420078 */ andi $v0, $v0, 0x78 +/* 0136AC 70012AAC 50400016 */ beql $v0, $zero, .L70012B08 +/* 0136B0 70012AB0 44028000 */ mfc1 $v0, $f16 +/* 0136B4 70012AB4 44818800 */ mtc1 $at, $f17 +/* 0136B8 70012AB8 44808000 */ mtc1 $zero, $f16 +/* 0136BC 70012ABC 24020001 */ li $v0, 1 +/* 0136C0 70012AC0 3C018000 */ lui $at, 0x8000 +/* 0136C4 70012AC4 46304401 */ sub.d $f16, $f8, $f16 +/* 0136C8 70012AC8 44C2F800 */ ctc1 $v0, $31 +/* 0136CC 70012ACC 00000000 */ nop +/* 0136D0 70012AD0 46208424 */ cvt.w.d $f16, $f16 +/* 0136D4 70012AD4 4442F800 */ cfc1 $v0, $31 +/* 0136D8 70012AD8 00000000 */ nop +/* 0136DC 70012ADC 30420078 */ andi $v0, $v0, 0x78 +/* 0136E0 70012AE0 54400006 */ bnezl $v0, .L70012AFC +/* 0136E4 70012AE4 44D8F800 */ ctc1 $t8, $31 +/* 0136E8 70012AE8 44028000 */ mfc1 $v0, $f16 +/* 0136EC 70012AEC 44D8F800 */ ctc1 $t8, $31 +/* 0136F0 70012AF0 03E00008 */ jr $ra +/* 0136F4 70012AF4 00411025 */ or $v0, $v0, $at + +/* 0136F8 70012AF8 44D8F800 */ ctc1 $t8, $31 +.L70012AFC: +/* 0136FC 70012AFC 03E00008 */ jr $ra +/* 013700 70012B00 2402FFFF */ li $v0, -1 + +/* 013704 70012B04 44028000 */ mfc1 $v0, $f16 +.L70012B08: +/* 013708 70012B08 00000000 */ nop +/* 01370C 70012B0C 0442FFFB */ bltzl $v0, .L70012AFC +/* 013710 70012B10 44D8F800 */ ctc1 $t8, $31 +/* 013714 70012B14 44D8F800 */ ctc1 $t8, $31 +/* 013718 70012B18 03E00008 */ jr $ra +/* 01371C 70012B1C 00000000 */ nop + +glabel alCSeqTicksToSec +/* 013720 70012B20 44852000 */ mtc1 $a1, $f4 +/* 013724 70012B24 44864000 */ mtc1 $a2, $f8 +/* 013728 70012B28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01372C 70012B2C 468021A0 */ cvt.s.w $f6, $f4 +/* 013730 70012B30 04C10004 */ bgez $a2, .L70012B44 +/* 013734 70012B34 468042A0 */ cvt.s.w $f10, $f8 +/* 013738 70012B38 44818000 */ mtc1 $at, $f16 +/* 01373C 70012B3C 00000000 */ nop +/* 013740 70012B40 46105280 */ add.s $f10, $f10, $f16 +.L70012B44: +/* 013744 70012B44 8C8E0000 */ lw $t6, ($a0) +/* 013748 70012B48 460A3482 */ mul.s $f18, $f6, $f10 +/* 01374C 70012B4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 013750 70012B50 8DCF0040 */ lw $t7, 0x40($t6) +/* 013754 70012B54 448F4000 */ mtc1 $t7, $f8 +/* 013758 70012B58 46009121 */ cvt.d.s $f4, $f18 +/* 01375C 70012B5C 05E10004 */ bgez $t7, .L70012B70 +/* 013760 70012B60 46804420 */ cvt.s.w $f16, $f8 +/* 013764 70012B64 44813000 */ mtc1 $at, $f6 +/* 013768 70012B68 00000000 */ nop +/* 01376C 70012B6C 46068400 */ add.s $f16, $f16, $f6 +.L70012B70: +/* 013770 70012B70 3C018003 */ lui $at, %hi(F64_800296D8) +/* 013774 70012B74 D43296D8 */ ldc1 $f18, %lo(F64_800296D8)($at) +/* 013778 70012B78 460082A1 */ cvt.d.s $f10, $f16 +/* 01377C 70012B7C 46325202 */ mul.d $f8, $f10, $f18 +/* 013780 70012B80 46282183 */ div.d $f6, $f4, $f8 +/* 013784 70012B84 03E00008 */ jr $ra +/* 013788 70012B88 46203020 */ cvt.s.d $f0, $f6 + +glabel __alCSeqNextDelta +/* 01378C 70012B8C 8C8E0004 */ lw $t6, 4($a0) +/* 013790 70012B90 00A04825 */ move $t1, $a1 +/* 013794 70012B94 2403FFFF */ li $v1, -1 +/* 013798 70012B98 15C00003 */ bnez $t6, .L70012BA8 +/* 01379C 70012B9C 8C820010 */ lw $v0, 0x10($a0) +/* 0137A0 70012BA0 03E00008 */ jr $ra +/* 0137A4 70012BA4 00001025 */ move $v0, $zero + +.L70012BA8: +/* 0137A8 70012BA8 00003025 */ move $a2, $zero +/* 0137AC 70012BAC 240A0010 */ li $t2, 16 +/* 0137B0 70012BB0 8C850004 */ lw $a1, 4($a0) +.L70012BB4: +/* 0137B4 70012BB4 24CE0001 */ addiu $t6, $a2, 1 +/* 0137B8 70012BB8 00C57806 */ srlv $t7, $a1, $a2 +/* 0137BC 70012BBC 31F80001 */ andi $t8, $t7, 1 +/* 0137C0 70012BC0 53000010 */ beql $t8, $zero, .L70012C04 +/* 0137C4 70012BC4 01C57806 */ srlv $t7, $a1, $t6 +/* 0137C8 70012BC8 8C8B0014 */ lw $t3, 0x14($a0) +/* 0137CC 70012BCC 0006C880 */ sll $t9, $a2, 2 +/* 0137D0 70012BD0 00993821 */ addu $a3, $a0, $t9 +/* 0137D4 70012BD4 51600006 */ beql $t3, $zero, .L70012BF0 +/* 0137D8 70012BD8 8CE800B8 */ lw $t0, 0xb8($a3) +/* 0137DC 70012BDC 8CEC00B8 */ lw $t4, 0xb8($a3) +/* 0137E0 70012BE0 01826823 */ subu $t5, $t4, $v0 +/* 0137E4 70012BE4 ACED00B8 */ sw $t5, 0xb8($a3) +/* 0137E8 70012BE8 8C850004 */ lw $a1, 4($a0) +/* 0137EC 70012BEC 8CE800B8 */ lw $t0, 0xb8($a3) +.L70012BF0: +/* 0137F0 70012BF0 0103082B */ sltu $at, $t0, $v1 +/* 0137F4 70012BF4 50200003 */ beql $at, $zero, .L70012C04 +/* 0137F8 70012BF8 01C57806 */ srlv $t7, $a1, $t6 +/* 0137FC 70012BFC 01001825 */ move $v1, $t0 +/* 013800 70012C00 01C57806 */ srlv $t7, $a1, $t6 +.L70012C04: +/* 013804 70012C04 31F80001 */ andi $t8, $t7, 1 +/* 013808 70012C08 1300000F */ beqz $t8, .L70012C48 +/* 01380C 70012C0C 24CE0002 */ addiu $t6, $a2, 2 +/* 013810 70012C10 8C8B0014 */ lw $t3, 0x14($a0) +/* 013814 70012C14 0006C880 */ sll $t9, $a2, 2 +/* 013818 70012C18 00993821 */ addu $a3, $a0, $t9 +/* 01381C 70012C1C 51600006 */ beql $t3, $zero, .L70012C38 +/* 013820 70012C20 8CE800BC */ lw $t0, 0xbc($a3) +/* 013824 70012C24 8CEC00BC */ lw $t4, 0xbc($a3) +/* 013828 70012C28 01826823 */ subu $t5, $t4, $v0 +/* 01382C 70012C2C ACED00BC */ sw $t5, 0xbc($a3) +/* 013830 70012C30 8C850004 */ lw $a1, 4($a0) +/* 013834 70012C34 8CE800BC */ lw $t0, 0xbc($a3) +.L70012C38: +/* 013838 70012C38 0103082B */ sltu $at, $t0, $v1 +/* 01383C 70012C3C 50200003 */ beql $at, $zero, .L70012C4C +/* 013840 70012C40 01C57806 */ srlv $t7, $a1, $t6 +/* 013844 70012C44 01001825 */ move $v1, $t0 +.L70012C48: +/* 013848 70012C48 01C57806 */ srlv $t7, $a1, $t6 +.L70012C4C: +/* 01384C 70012C4C 31F80001 */ andi $t8, $t7, 1 +/* 013850 70012C50 1300000F */ beqz $t8, .L70012C90 +/* 013854 70012C54 24CE0003 */ addiu $t6, $a2, 3 +/* 013858 70012C58 8C8B0014 */ lw $t3, 0x14($a0) +/* 01385C 70012C5C 0006C880 */ sll $t9, $a2, 2 +/* 013860 70012C60 00993821 */ addu $a3, $a0, $t9 +/* 013864 70012C64 51600006 */ beql $t3, $zero, .L70012C80 +/* 013868 70012C68 8CE800C0 */ lw $t0, 0xc0($a3) +/* 01386C 70012C6C 8CEC00C0 */ lw $t4, 0xc0($a3) +/* 013870 70012C70 01826823 */ subu $t5, $t4, $v0 +/* 013874 70012C74 ACED00C0 */ sw $t5, 0xc0($a3) +/* 013878 70012C78 8C850004 */ lw $a1, 4($a0) +/* 01387C 70012C7C 8CE800C0 */ lw $t0, 0xc0($a3) +.L70012C80: +/* 013880 70012C80 0103082B */ sltu $at, $t0, $v1 +/* 013884 70012C84 50200003 */ beql $at, $zero, .L70012C94 +/* 013888 70012C88 01C57806 */ srlv $t7, $a1, $t6 +/* 01388C 70012C8C 01001825 */ move $v1, $t0 +.L70012C90: +/* 013890 70012C90 01C57806 */ srlv $t7, $a1, $t6 +.L70012C94: +/* 013894 70012C94 31F80001 */ andi $t8, $t7, 1 +/* 013898 70012C98 5300000F */ beql $t8, $zero, .L70012CD8 +/* 01389C 70012C9C 24C60004 */ addiu $a2, $a2, 4 +/* 0138A0 70012CA0 8C8B0014 */ lw $t3, 0x14($a0) +/* 0138A4 70012CA4 0006C880 */ sll $t9, $a2, 2 +/* 0138A8 70012CA8 00993821 */ addu $a3, $a0, $t9 +/* 0138AC 70012CAC 51600005 */ beql $t3, $zero, .L70012CC4 +/* 0138B0 70012CB0 8CE500C4 */ lw $a1, 0xc4($a3) +/* 0138B4 70012CB4 8CEC00C4 */ lw $t4, 0xc4($a3) +/* 0138B8 70012CB8 01826823 */ subu $t5, $t4, $v0 +/* 0138BC 70012CBC ACED00C4 */ sw $t5, 0xc4($a3) +/* 0138C0 70012CC0 8CE500C4 */ lw $a1, 0xc4($a3) +.L70012CC4: +/* 0138C4 70012CC4 00A3082B */ sltu $at, $a1, $v1 +/* 0138C8 70012CC8 50200003 */ beql $at, $zero, .L70012CD8 +/* 0138CC 70012CCC 24C60004 */ addiu $a2, $a2, 4 +/* 0138D0 70012CD0 00A01825 */ move $v1, $a1 +/* 0138D4 70012CD4 24C60004 */ addiu $a2, $a2, 4 +.L70012CD8: +/* 0138D8 70012CD8 54CAFFB6 */ bnel $a2, $t2, .L70012BB4 +/* 0138DC 70012CDC 8C850004 */ lw $a1, 4($a0) +/* 0138E0 70012CE0 AC800014 */ sw $zero, 0x14($a0) +/* 0138E4 70012CE4 AD230000 */ sw $v1, ($t1) +/* 0138E8 70012CE8 24020001 */ li $v0, 1 +/* 0138EC 70012CEC 03E00008 */ jr $ra +/* 0138F0 70012CF0 00000000 */ nop + + +.section .rodata +glabel F64_800296D0 +.double 1000000.0 +glabel F64_800296D8 +.double 1000000.0 diff --git a/src/libultra/cspgetstate.s b/src/libultra/cspgetstate.s new file mode 100644 index 0000000..0f380ae --- /dev/null +++ b/src/libultra/cspgetstate.s @@ -0,0 +1,12 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPGetState +/* 012E30 70012230 03E00008 */ jr $ra +/* 012E34 70012234 8C82002C */ lw $v0, 0x2c($a0) diff --git a/src/libultra/csplayer.s b/src/libultra/csplayer.s new file mode 100644 index 0000000..9fa282a --- /dev/null +++ b/src/libultra/csplayer.s @@ -0,0 +1,1359 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __CSPPostNextSeqEvent +/* 011BC0 70010FC0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 011BC4 70010FC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 011BC8 70010FC8 8C8E002C */ lw $t6, 0x2c($a0) +/* 011BCC 70010FCC 24010001 */ li $at, 1 +/* 011BD0 70010FD0 00803825 */ move $a3, $a0 +/* 011BD4 70010FD4 55C10013 */ bnel $t6, $at, .L70011024 +/* 011BD8 70010FD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 011BDC 70010FDC 8C840018 */ lw $a0, 0x18($a0) +/* 011BE0 70010FE0 27A5001C */ addiu $a1, $sp, 0x1c +/* 011BE4 70010FE4 5080000F */ beql $a0, $zero, .L70011024 +/* 011BE8 70010FE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 011BEC 70010FEC 0C004AE3 */ jal __alCSeqNextDelta +/* 011BF0 70010FF0 AFA70030 */ sw $a3, 0x30($sp) +/* 011BF4 70010FF4 1040000A */ beqz $v0, .L70011020 +/* 011BF8 70010FF8 8FA70030 */ lw $a3, 0x30($sp) +/* 011BFC 70010FFC A7A00020 */ sh $zero, 0x20($sp) +/* 011C00 70011000 8CEF0024 */ lw $t7, 0x24($a3) +/* 011C04 70011004 8FB8001C */ lw $t8, 0x1c($sp) +/* 011C08 70011008 24E40048 */ addiu $a0, $a3, 0x48 +/* 011C0C 7001100C 27A50020 */ addiu $a1, $sp, 0x20 +/* 011C10 70011010 01F80019 */ multu $t7, $t8 +/* 011C14 70011014 00003012 */ mflo $a2 +/* 011C18 70011018 0C004BBF */ jal alEvtqPostEvent +/* 011C1C 7001101C 00000000 */ nop +.L70011020: +/* 011C20 70011020 8FBF0014 */ lw $ra, 0x14($sp) +.L70011024: +/* 011C24 70011024 27BD0030 */ addiu $sp, $sp, 0x30 +/* 011C28 70011028 03E00008 */ jr $ra +/* 011C2C 7001102C 00000000 */ nop + +glabel ultra_70011030 +/* 011C30 70011030 8C820018 */ lw $v0, 0x18($a0) +/* 011C34 70011034 241801E8 */ li $t8, 488 +/* 011C38 70011038 50400008 */ beql $v0, $zero, .L7001105C +/* 011C3C 7001103C AC980024 */ sw $t8, 0x24($a0) +/* 011C40 70011040 C4440008 */ lwc1 $f4, 8($v0) +/* 011C44 70011044 46046182 */ mul.s $f6, $f12, $f4 +/* 011C48 70011048 4600320D */ trunc.w.s $f8, $f6 +/* 011C4C 7001104C 440F4000 */ mfc1 $t7, $f8 +/* 011C50 70011050 03E00008 */ jr $ra +/* 011C54 70011054 AC8F0024 */ sw $t7, 0x24($a0) + +/* 011C58 70011058 AC980024 */ sw $t8, 0x24($a0) +.L7001105C: +/* 011C5C 7001105C 03E00008 */ jr $ra +/* 011C60 70011060 00000000 */ nop + +/* 011C64 70011064 03E00008 */ jr $ra +/* 011C68 70011068 00000000 */ nop + +glabel ultra_7001106C +/* 011C6C 7001106C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 011C70 70011070 AFBF0014 */ sw $ra, 0x14($sp) +/* 011C74 70011074 90AE0008 */ lbu $t6, 8($a1) +/* 011C78 70011078 240100FF */ li $at, 255 +/* 011C7C 7001107C 00008025 */ move $s0, $zero +/* 011C80 70011080 15C1006A */ bne $t6, $at, .L7001122C +/* 011C84 70011084 00009825 */ move $s3, $zero +/* 011C88 70011088 90AF0009 */ lbu $t7, 9($a1) +/* 011C8C 7001108C 24010051 */ li $at, 81 +/* 011C90 70011090 24A20004 */ addiu $v0, $a1, 4 +/* 011C94 70011094 55E10066 */ bnel $t7, $at, .L70011230 +/* 011C98 70011098 8FBF0014 */ lw $ra, 0x14($sp) +/* 011C9C 7001109C 904E0008 */ lbu $t6, 8($v0) +/* 011CA0 700110A0 90580007 */ lbu $t8, 7($v0) +/* 011CA4 700110A4 8EFE0024 */ lw $fp, 0x24($s7) +/* 011CA8 700110A8 000E7A00 */ sll $t7, $t6, 8 +/* 011CAC 700110AC 904E0009 */ lbu $t6, 9($v0) +/* 011CB0 700110B0 0018CC00 */ sll $t9, $t8, 0x10 +/* 011CB4 700110B4 032FC025 */ or $t8, $t9, $t7 +/* 011CB8 700110B8 030E1825 */ or $v1, $t8, $t6 +/* 011CBC 700110BC 44832000 */ mtc1 $v1, $f4 +/* 011CC0 700110C0 02E02025 */ move $a0, $s7 +/* 011CC4 700110C4 0C00440C */ jal ultra_70011030 +/* 011CC8 700110C8 46802320 */ cvt.s.w $f12, $f4 +/* 011CCC 700110CC 8EF10050 */ lw $s1, 0x50($s7) +/* 011CD0 700110D0 1220001D */ beqz $s1, .L70011148 +/* 011CD4 700110D4 00000000 */ nop +/* 011CD8 700110D8 24140015 */ li $s4, 21 +.L700110DC: +/* 011CDC 700110DC 862F000C */ lh $t7, 0xc($s1) +/* 011CE0 700110E0 8E390008 */ lw $t9, 8($s1) +/* 011CE4 700110E4 8E320000 */ lw $s2, ($s1) +/* 011CE8 700110E8 168F0015 */ bne $s4, $t7, .L70011140 +/* 011CEC 700110EC 02198021 */ addu $s0, $s0, $t9 +/* 011CF0 700110F0 0C003AA4 */ jal alUnlink +/* 011CF4 700110F4 02202025 */ move $a0, $s1 +/* 011CF8 700110F8 52600007 */ beql $s3, $zero, .L70011118 +/* 011CFC 700110FC AE200000 */ sw $zero, ($s1) +/* 011D00 70011100 02202025 */ move $a0, $s1 +/* 011D04 70011104 0C003AB0 */ jal alLink +/* 011D08 70011108 02602825 */ move $a1, $s3 +/* 011D0C 7001110C 10000004 */ b .L70011120 +/* 011D10 70011110 00000000 */ nop +/* 011D14 70011114 AE200000 */ sw $zero, ($s1) +.L70011118: +/* 011D18 70011118 AE200004 */ sw $zero, 4($s1) +/* 011D1C 7001111C 02209825 */ move $s3, $s1 +.L70011120: +/* 011D20 70011120 12400006 */ beqz $s2, .L7001113C +/* 011D24 70011124 02001825 */ move $v1, $s0 +/* 011D28 70011128 8E220008 */ lw $v0, 8($s1) +/* 011D2C 7001112C 8E580008 */ lw $t8, 8($s2) +/* 011D30 70011130 02028023 */ subu $s0, $s0, $v0 +/* 011D34 70011134 03027021 */ addu $t6, $t8, $v0 +/* 011D38 70011138 AE4E0008 */ sw $t6, 8($s2) +.L7001113C: +/* 011D3C 7001113C AE230008 */ sw $v1, 8($s1) +.L70011140: +/* 011D40 70011140 1640FFE6 */ bnez $s2, .L700110DC +/* 011D44 70011144 02408825 */ move $s1, $s2 +.L70011148: +/* 011D48 70011148 12600038 */ beqz $s3, .L7001122C +/* 011D4C 7001114C 02608825 */ move $s1, $s3 +/* 011D50 70011150 26F40048 */ addiu $s4, $s7, 0x48 +/* 011D54 70011154 26950008 */ addiu $s5, $s4, 8 +/* 011D58 70011158 2416FFF8 */ li $s6, -8 +.L7001115C: +/* 011D5C 7001115C 8E390008 */ lw $t9, 8($s1) +/* 011D60 70011160 8EEF0024 */ lw $t7, 0x24($s7) +/* 011D64 70011164 8E320000 */ lw $s2, ($s1) +/* 011D68 70011168 033E001A */ div $zero, $t9, $fp +/* 011D6C 7001116C 00001012 */ mflo $v0 +/* 011D70 70011170 24040001 */ li $a0, 1 +/* 011D74 70011174 17C00002 */ bnez $fp, .L70011180 +/* 011D78 70011178 00000000 */ nop +/* 011D7C 7001117C 0007000D */ break 7 +.L70011180: +/* 011D80 70011180 2401FFFF */ li $at, -1 +/* 011D84 70011184 17C10004 */ bne $fp, $at, .L70011198 +/* 011D88 70011188 3C018000 */ lui $at, 0x8000 +/* 011D8C 7001118C 17210002 */ bne $t9, $at, .L70011198 +/* 011D90 70011190 00000000 */ nop +/* 011D94 70011194 0006000D */ break 6 +.L70011198: +/* 011D98 70011198 01E20019 */ multu $t7, $v0 +/* 011D9C 7001119C 02A08025 */ move $s0, $s5 +/* 011DA0 700111A0 0000C012 */ mflo $t8 +/* 011DA4 700111A4 AE380008 */ sw $t8, 8($s1) +/* 011DA8 700111A8 0C00374C */ jal osSetIntMask +/* 011DAC 700111AC 00000000 */ nop +/* 011DB0 700111B0 1296001A */ beq $s4, $s6, .L7001121C +/* 011DB4 700111B4 00409825 */ move $s3, $v0 +/* 011DB8 700111B8 8E040000 */ lw $a0, ($s0) +.L700111BC: +/* 011DBC 700111BC 54800007 */ bnezl $a0, .L700111DC +/* 011DC0 700111C0 8E220008 */ lw $v0, 8($s1) +/* 011DC4 700111C4 02202025 */ move $a0, $s1 +/* 011DC8 700111C8 0C003AB0 */ jal alLink +/* 011DCC 700111CC 02002825 */ move $a1, $s0 +/* 011DD0 700111D0 10000012 */ b .L7001121C +/* 011DD4 700111D4 00000000 */ nop +/* 011DD8 700111D8 8E220008 */ lw $v0, 8($s1) +.L700111DC: +/* 011DDC 700111DC 8C830008 */ lw $v1, 8($a0) +/* 011DE0 700111E0 00803025 */ move $a2, $a0 +/* 011DE4 700111E4 0043082A */ slt $at, $v0, $v1 +/* 011DE8 700111E8 10200008 */ beqz $at, .L7001120C +/* 011DEC 700111EC 0043C823 */ subu $t9, $v0, $v1 +/* 011DF0 700111F0 00627023 */ subu $t6, $v1, $v0 +/* 011DF4 700111F4 AC8E0008 */ sw $t6, 8($a0) +/* 011DF8 700111F8 02202025 */ move $a0, $s1 +/* 011DFC 700111FC 0C003AB0 */ jal alLink +/* 011E00 70011200 02002825 */ move $a1, $s0 +/* 011E04 70011204 10000005 */ b .L7001121C +/* 011E08 70011208 00000000 */ nop +.L7001120C: +/* 011E0C 7001120C AE390008 */ sw $t9, 8($s1) +/* 011E10 70011210 8E100000 */ lw $s0, ($s0) +/* 011E14 70011214 5600FFE9 */ bnezl $s0, .L700111BC +/* 011E18 70011218 8E040000 */ lw $a0, ($s0) +.L7001121C: +/* 011E1C 7001121C 0C00374C */ jal osSetIntMask +/* 011E20 70011220 02602025 */ move $a0, $s3 +/* 011E24 70011224 1640FFCD */ bnez $s2, .L7001115C +/* 011E28 70011228 02408825 */ move $s1, $s2 +.L7001122C: +/* 011E2C 7001122C 8FBF0014 */ lw $ra, 0x14($sp) +.L70011230: +/* 011E30 70011230 27BD0018 */ addiu $sp, $sp, 0x18 +/* 011E34 70011234 03E00008 */ jr $ra +/* 011E38 70011238 00000000 */ nop + +glabel __CSPHandleMIDIMsg +/* 011E3C 7001123C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 011E40 70011240 AFBF0024 */ sw $ra, 0x24($sp) +/* 011E44 70011244 91160008 */ lbu $s6, 8($t0) +/* 011E48 70011248 91140009 */ lbu $s4, 9($t0) +/* 011E4C 7001124C 9111000A */ lbu $s1, 0xa($t0) +/* 011E50 70011250 32C300F0 */ andi $v1, $s6, 0xf0 +/* 011E54 70011254 246FFF80 */ addiu $t7, $v1, -0x80 +/* 011E58 70011258 2DE10061 */ sltiu $at, $t7, 0x61 +/* 011E5C 7001125C 32CE000F */ andi $t6, $s6, 0xf +/* 011E60 70011260 102001FC */ beqz $at, .L70011A54 +/* 011E64 70011264 01C0B025 */ move $s6, $t6 +/* 011E68 70011268 000F7880 */ sll $t7, $t7, 2 +/* 011E6C 7001126C 3C018003 */ lui $at, %hi(audio_related_jump_table_0) # 0x8003 +/* 011E70 70011270 002F0821 */ addu $at, $at, $t7 +/* 011E74 70011274 8C2F9490 */ lw $t7, %lo(audio_related_jump_table_0)($at) # -0x6b70 +/* 011E78 70011278 01E00008 */ jr $t7 +/* 011E7C 7001127C 00000000 */ nop +.L70011280: +/* 011E80 70011280 522000E8 */ beql $s1, $zero, .L70011624 +/* 011E84 70011284 02402025 */ move $a0, $s2 +/* 011E88 70011288 8E58002C */ lw $t8, 0x2c($s2) +/* 011E8C 7001128C 24010001 */ li $at, 1 +/* 011E90 70011290 02402025 */ move $a0, $s2 +/* 011E94 70011294 170101EF */ bne $t8, $at, .L70011A54 +/* 011E98 70011298 328500FF */ andi $a1, $s4, 0xff +/* 011E9C 7001129C 322600FF */ andi $a2, $s1, 0xff +/* 011EA0 700112A0 32C700FF */ andi $a3, $s6, 0xff +/* 011EA4 700112A4 0C0070D8 */ jal __lookupSoundQuick +/* 011EA8 700112A8 AFA800BC */ sw $t0, 0xbc($sp) +/* 011EAC 700112AC 104001E9 */ beqz $v0, .L70011A54 +/* 011EB0 700112B0 0040B825 */ move $s7, $v0 +/* 011EB4 700112B4 8E590060 */ lw $t9, 0x60($s2) +/* 011EB8 700112B8 0016F100 */ sll $fp, $s6, 4 +/* 011EBC 700112BC 02402025 */ move $a0, $s2 +/* 011EC0 700112C0 033E7021 */ addu $t6, $t9, $fp +/* 011EC4 700112C4 91CF0008 */ lbu $t7, 8($t6) +/* 011EC8 700112C8 A7A00076 */ sh $zero, 0x76($sp) +/* 011ECC 700112CC A3A00078 */ sb $zero, 0x78($sp) +/* 011ED0 700112D0 328500FF */ andi $a1, $s4, 0xff +/* 011ED4 700112D4 322600FF */ andi $a2, $s1, 0xff +/* 011ED8 700112D8 32C700FF */ andi $a3, $s6, 0xff +/* 011EDC 700112DC 0C0070BC */ jal __mapVoice +/* 011EE0 700112E0 A7AF0074 */ sh $t7, 0x74($sp) +/* 011EE4 700112E4 104001DB */ beqz $v0, .L70011A54 +/* 011EE8 700112E8 00408025 */ move $s0, $v0 +/* 011EEC 700112EC 8E440014 */ lw $a0, 0x14($s2) +/* 011EF0 700112F0 24450004 */ addiu $a1, $v0, 4 +/* 011EF4 700112F4 AFA50038 */ sw $a1, 0x38($sp) +/* 011EF8 700112F8 0C004C96 */ jal alSynAllocVoice +/* 011EFC 700112FC 27A60074 */ addiu $a2, $sp, 0x74 +/* 011F00 70011300 AE170020 */ sw $s7, 0x20($s0) +/* 011F04 70011304 A2000034 */ sb $zero, 0x34($s0) +/* 011F08 70011308 8E580060 */ lw $t8, 0x60($s2) +/* 011F0C 7001130C 24150002 */ li $s5, 2 +/* 011F10 70011310 031EC821 */ addu $t9, $t8, $fp +/* 011F14 70011314 932E000B */ lbu $t6, 0xb($t9) +/* 011F18 70011318 29C10040 */ slti $at, $t6, 0x40 +/* 011F1C 7001131C 54200004 */ bnezl $at, .L70011330 +/* 011F20 70011320 A2000035 */ sb $zero, 0x35($s0) +/* 011F24 70011324 10000002 */ b .L70011330 +/* 011F28 70011328 A2150035 */ sb $s5, 0x35($s0) +/* 011F2C 7001132C A2000035 */ sb $zero, 0x35($s0) +.L70011330: +/* 011F30 70011330 8EE20004 */ lw $v0, 4($s7) +/* 011F34 70011334 904F0004 */ lbu $t7, 4($v0) +/* 011F38 70011338 804E0005 */ lb $t6, 5($v0) +/* 011F3C 7001133C 028FC023 */ subu $t8, $s4, $t7 +/* 011F40 70011340 0018C880 */ sll $t9, $t8, 2 +/* 011F44 70011344 0338C823 */ subu $t9, $t9, $t8 +/* 011F48 70011348 0019C8C0 */ sll $t9, $t9, 3 +/* 011F4C 7001134C 0338C821 */ addu $t9, $t9, $t8 +/* 011F50 70011350 0019C880 */ sll $t9, $t9, 2 +/* 011F54 70011354 032E2021 */ addu $a0, $t9, $t6 +/* 011F58 70011358 00047C00 */ sll $t7, $a0, 0x10 +/* 011F5C 7001135C 0C004DF0 */ jal alCents2Ratio +/* 011F60 70011360 000F2403 */ sra $a0, $t7, 0x10 +/* 011F64 70011364 E6000028 */ swc1 $f0, 0x28($s0) +/* 011F68 70011368 8EF90000 */ lw $t9, ($s7) +/* 011F6C 7001136C 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 011F70 70011370 44812000 */ mtc1 $at, $f4 +/* 011F74 70011374 932E000C */ lbu $t6, 0xc($t9) +/* 011F78 70011378 A20E0030 */ sb $t6, 0x30($s0) +/* 011F7C 7001137C 8EF80000 */ lw $t8, ($s7) +/* 011F80 70011380 8E4F001C */ lw $t7, 0x1c($s2) +/* 011F84 70011384 8F190000 */ lw $t9, ($t8) +/* 011F88 70011388 A2000037 */ sb $zero, 0x37($s0) +/* 011F8C 7001138C 01F97021 */ addu $t6, $t7, $t9 +/* 011F90 70011390 AE0E0024 */ sw $t6, 0x24($s0) +/* 011F94 70011394 8E580060 */ lw $t8, 0x60($s2) +/* 011F98 70011398 031E7821 */ addu $t7, $t8, $fp +/* 011F9C 7001139C 8DF10000 */ lw $s1, ($t7) +/* 011FA0 700113A0 E7A40064 */ swc1 $f4, 0x64($sp) +/* 011FA4 700113A4 92260004 */ lbu $a2, 4($s1) +/* 011FA8 700113A8 50C0001A */ beql $a2, $zero, .L70011414 +/* 011FAC 700113AC 4458F800 */ cfc1 $t8, $31 +/* 011FB0 700113B0 8E420070 */ lw $v0, 0x70($s2) +/* 011FB4 700113B4 50400017 */ beql $v0, $zero, .L70011414 +/* 011FB8 700113B8 4458F800 */ cfc1 $t8, $31 +/* 011FBC 700113BC 92390006 */ lbu $t9, 6($s1) +/* 011FC0 700113C0 92270005 */ lbu $a3, 5($s1) +/* 011FC4 700113C4 27A4005C */ addiu $a0, $sp, 0x5c +/* 011FC8 700113C8 AFB90010 */ sw $t9, 0x10($sp) +/* 011FCC 700113CC 922E0007 */ lbu $t6, 7($s1) +/* 011FD0 700113D0 27A50064 */ addiu $a1, $sp, 0x64 +/* 011FD4 700113D4 0040F809 */ jalr $v0 +/* 011FD8 700113D8 AFAE0014 */ sw $t6, 0x14($sp) +/* 011FDC 700113DC 1040000C */ beqz $v0, .L70011410 +/* 011FE0 700113E0 24180016 */ li $t8, 22 +/* 011FE4 700113E4 8FAF005C */ lw $t7, 0x5c($sp) +/* 011FE8 700113E8 A7B8008C */ sh $t8, 0x8c($sp) +/* 011FEC 700113EC AFB00090 */ sw $s0, 0x90($sp) +/* 011FF0 700113F0 26440048 */ addiu $a0, $s2, 0x48 +/* 011FF4 700113F4 27A5008C */ addiu $a1, $sp, 0x8c +/* 011FF8 700113F8 00403025 */ move $a2, $v0 +/* 011FFC 700113FC 0C004BBF */ jal alEvtqPostEvent +/* 012000 70011400 AFAF0094 */ sw $t7, 0x94($sp) +/* 012004 70011404 92190037 */ lbu $t9, 0x37($s0) +/* 012008 70011408 372E0001 */ ori $t6, $t9, 1 +/* 01200C 7001140C A20E0037 */ sb $t6, 0x37($s0) +.L70011410: +/* 012010 70011410 4458F800 */ cfc1 $t8, $31 +.L70011414: +/* 012014 70011414 240F0001 */ li $t7, 1 +/* 012018 70011418 44CFF800 */ ctc1 $t7, $31 +/* 01201C 7001141C C7A60064 */ lwc1 $f6, 0x64($sp) +/* 012020 70011420 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 012024 70011424 46003224 */ cvt.w.s $f8, $f6 +/* 012028 70011428 444FF800 */ cfc1 $t7, $31 +/* 01202C 7001142C 00000000 */ nop +/* 012030 70011430 31EF0078 */ andi $t7, $t7, 0x78 +/* 012034 70011434 51E00013 */ beql $t7, $zero, .L70011484 +/* 012038 70011438 440F4000 */ mfc1 $t7, $f8 +/* 01203C 7001143C 44814000 */ mtc1 $at, $f8 +/* 012040 70011440 240F0001 */ li $t7, 1 +/* 012044 70011444 46083201 */ sub.s $f8, $f6, $f8 +/* 012048 70011448 44CFF800 */ ctc1 $t7, $31 +/* 01204C 7001144C 00000000 */ nop +/* 012050 70011450 46004224 */ cvt.w.s $f8, $f8 +/* 012054 70011454 444FF800 */ cfc1 $t7, $31 +/* 012058 70011458 00000000 */ nop +/* 01205C 7001145C 31EF0078 */ andi $t7, $t7, 0x78 +/* 012060 70011460 15E00005 */ bnez $t7, .L70011478 +/* 012064 70011464 00000000 */ nop +/* 012068 70011468 440F4000 */ mfc1 $t7, $f8 +/* 01206C 7001146C 3C018000 */ lui $at, 0x8000 +/* 012070 70011470 10000007 */ b .L70011490 +/* 012074 70011474 01E17825 */ or $t7, $t7, $at +.L70011478: +/* 012078 70011478 10000005 */ b .L70011490 +/* 01207C 7001147C 240FFFFF */ li $t7, -1 +/* 012080 70011480 440F4000 */ mfc1 $t7, $f8 +.L70011484: +/* 012084 70011484 00000000 */ nop +/* 012088 70011488 05E0FFFB */ bltz $t7, .L70011478 +/* 01208C 7001148C 00000000 */ nop +.L70011490: +/* 012090 70011490 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 012094 70011494 44815000 */ mtc1 $at, $f10 +/* 012098 70011498 A20F0036 */ sb $t7, 0x36($s0) +/* 01209C 7001149C 44D8F800 */ ctc1 $t8, $31 +/* 0120A0 700114A0 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 0120A4 700114A4 92260008 */ lbu $a2, 8($s1) +/* 0120A8 700114A8 26550048 */ addiu $s5, $s2, 0x48 +/* 0120AC 700114AC 50C0001B */ beql $a2, $zero, .L7001151C +/* 0120B0 700114B0 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0120B4 700114B4 8E420070 */ lw $v0, 0x70($s2) +/* 0120B8 700114B8 50400018 */ beql $v0, $zero, .L7001151C +/* 0120BC 700114BC C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0120C0 700114C0 9239000A */ lbu $t9, 0xa($s1) +/* 0120C4 700114C4 92270009 */ lbu $a3, 9($s1) +/* 0120C8 700114C8 27A4005C */ addiu $a0, $sp, 0x5c +/* 0120CC 700114CC AFB90010 */ sw $t9, 0x10($sp) +/* 0120D0 700114D0 922E000B */ lbu $t6, 0xb($s1) +/* 0120D4 700114D4 27A50064 */ addiu $a1, $sp, 0x64 +/* 0120D8 700114D8 0040F809 */ jalr $v0 +/* 0120DC 700114DC AFAE0014 */ sw $t6, 0x14($sp) +/* 0120E0 700114E0 1040000D */ beqz $v0, .L70011518 +/* 0120E4 700114E4 24180017 */ li $t8, 23 +/* 0120E8 700114E8 8FAF005C */ lw $t7, 0x5c($sp) +/* 0120EC 700114EC A7B8008C */ sh $t8, 0x8c($sp) +/* 0120F0 700114F0 AFB00090 */ sw $s0, 0x90($sp) +/* 0120F4 700114F4 A3B60098 */ sb $s6, 0x98($sp) +/* 0120F8 700114F8 02A02025 */ move $a0, $s5 +/* 0120FC 700114FC 27A5008C */ addiu $a1, $sp, 0x8c +/* 012100 70011500 00403025 */ move $a2, $v0 +/* 012104 70011504 0C004BBF */ jal alEvtqPostEvent +/* 012108 70011508 AFAF0094 */ sw $t7, 0x94($sp) +/* 01210C 7001150C 92190037 */ lbu $t9, 0x37($s0) +/* 012110 70011510 372E0002 */ ori $t6, $t9, 2 +/* 012114 70011514 A20E0037 */ sb $t6, 0x37($s0) +.L70011518: +/* 012118 70011518 C7A40064 */ lwc1 $f4, 0x64($sp) +.L7001151C: +/* 01211C 7001151C C6080028 */ lwc1 $f8, 0x28($s0) +/* 012120 70011520 02002025 */ move $a0, $s0 +/* 012124 70011524 E604002C */ swc1 $f4, 0x2c($s0) +/* 012128 70011528 8E580060 */ lw $t8, 0x60($s2) +/* 01212C 7001152C C604002C */ lwc1 $f4, 0x2c($s0) +/* 012130 70011530 02402825 */ move $a1, $s2 +/* 012134 70011534 031E1021 */ addu $v0, $t8, $fp +/* 012138 70011538 C446000C */ lwc1 $f6, 0xc($v0) +/* 01213C 7001153C 9051000A */ lbu $s1, 0xa($v0) +/* 012140 70011540 46083282 */ mul.s $f10, $f6, $f8 +/* 012144 70011544 00000000 */ nop +/* 012148 70011548 46045502 */ mul.s $f20, $f10, $f4 +/* 01214C 7001154C 0C00708D */ jal __vsPan +/* 012150 70011550 00000000 */ nop +/* 012154 70011554 305E00FF */ andi $fp, $v0, 0xff +/* 012158 70011558 02002025 */ move $a0, $s0 +/* 01215C 7001155C 0C006F85 */ jal __vsVol +/* 012160 70011560 02402825 */ move $a1, $s2 +/* 012164 70011564 8EEF0000 */ lw $t7, ($s7) +/* 012168 70011568 8E440014 */ lw $a0, 0x14($s2) +/* 01216C 7001156C 8EE60008 */ lw $a2, 8($s7) +/* 012170 70011570 8DF30000 */ lw $s3, ($t7) +/* 012174 70011574 4407A000 */ mfc1 $a3, $f20 +/* 012178 70011578 AFB10018 */ sw $s1, 0x18($sp) +/* 01217C 7001157C AFBE0014 */ sw $fp, 0x14($sp) +/* 012180 70011580 AFA20010 */ sw $v0, 0x10($sp) +/* 012184 70011584 8FA50038 */ lw $a1, 0x38($sp) +/* 012188 70011588 0C007568 */ jal alSynStartVoiceParams +/* 01218C 7001158C AFB3001C */ sw $s3, 0x1c($sp) +/* 012190 70011590 8FAE0038 */ lw $t6, 0x38($sp) +/* 012194 70011594 24190006 */ li $t9, 6 +/* 012198 70011598 A7B9008C */ sh $t9, 0x8c($sp) +/* 01219C 7001159C AFAE0090 */ sw $t6, 0x90($sp) +/* 0121A0 700115A0 8EF80000 */ lw $t8, ($s7) +/* 0121A4 700115A4 02A02025 */ move $a0, $s5 +/* 0121A8 700115A8 27A5008C */ addiu $a1, $sp, 0x8c +/* 0121AC 700115AC 930F000D */ lbu $t7, 0xd($t8) +/* 0121B0 700115B0 02603025 */ move $a2, $s3 +/* 0121B4 700115B4 A3AF0098 */ sb $t7, 0x98($sp) +/* 0121B8 700115B8 8EF90000 */ lw $t9, ($s7) +/* 0121BC 700115BC 8F2E0004 */ lw $t6, 4($t9) +/* 0121C0 700115C0 0C004BBF */ jal alEvtqPostEvent +/* 0121C4 700115C4 AFAE0094 */ sw $t6, 0x94($sp) +/* 0121C8 700115C8 8FA200BC */ lw $v0, 0xbc($sp) +/* 0121CC 700115CC 240F0015 */ li $t7, 21 +/* 0121D0 700115D0 36D90080 */ ori $t9, $s6, 0x80 +/* 0121D4 700115D4 8C58000C */ lw $t8, 0xc($v0) +/* 0121D8 700115D8 24420004 */ addiu $v0, $v0, 4 +/* 0121DC 700115DC 5300011E */ beql $t8, $zero, .L70011A58 +/* 0121E0 700115E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0121E4 700115E4 A7AF008C */ sh $t7, 0x8c($sp) +/* 0121E8 700115E8 A3B90094 */ sb $t9, 0x94($sp) +/* 0121EC 700115EC A3B40095 */ sb $s4, 0x95($sp) +/* 0121F0 700115F0 A3A00096 */ sb $zero, 0x96($sp) +/* 0121F4 700115F4 8C580008 */ lw $t8, 8($v0) +/* 0121F8 700115F8 8E4E0024 */ lw $t6, 0x24($s2) +/* 0121FC 700115FC 02A02025 */ move $a0, $s5 +/* 012200 70011600 27A5008C */ addiu $a1, $sp, 0x8c +/* 012204 70011604 01D80019 */ multu $t6, $t8 +/* 012208 70011608 00009812 */ mflo $s3 +/* 01220C 7001160C 02603025 */ move $a2, $s3 +/* 012210 70011610 0C004BBF */ jal alEvtqPostEvent +/* 012214 70011614 00000000 */ nop +/* 012218 70011618 1000010F */ b .L70011A58 +/* 01221C 7001161C 8FBF0024 */ lw $ra, 0x24($sp) +.L70011620: +/* 012220 70011620 02402025 */ move $a0, $s2 +.L70011624: +/* 012224 70011624 328500FF */ andi $a1, $s4, 0xff +/* 012228 70011628 0C00709F */ jal __lookupVoice +/* 01222C 7001162C 32C600FF */ andi $a2, $s6, 0xff +/* 012230 70011630 10400108 */ beqz $v0, .L70011A54 +/* 012234 70011634 00408025 */ move $s0, $v0 +/* 012238 70011638 904F0035 */ lbu $t7, 0x35($v0) +/* 01223C 7001163C 24160002 */ li $s6, 2 +/* 012240 70011640 24190004 */ li $t9, 4 +/* 012244 70011644 16CF0003 */ bne $s6, $t7, .L70011654 +/* 012248 70011648 02402025 */ move $a0, $s2 +/* 01224C 7001164C 10000101 */ b .L70011A54 +/* 012250 70011650 A0590035 */ sb $t9, 0x35($v0) +.L70011654: +/* 012254 70011654 8E0E0020 */ lw $t6, 0x20($s0) +/* 012258 70011658 241E0003 */ li $fp, 3 +/* 01225C 7001165C A21E0035 */ sb $fp, 0x35($s0) +/* 012260 70011660 8DD80000 */ lw $t8, ($t6) +/* 012264 70011664 26050004 */ addiu $a1, $s0, 4 +/* 012268 70011668 0C006FA7 */ jal __seqpReleaseVoice +/* 01226C 7001166C 8F060008 */ lw $a2, 8($t8) +/* 012270 70011670 100000F9 */ b .L70011A58 +/* 012274 70011674 8FBF0024 */ lw $ra, 0x24($sp) +.L70011678: +/* 012278 70011678 02402025 */ move $a0, $s2 +/* 01227C 7001167C 328500FF */ andi $a1, $s4, 0xff +/* 012280 70011680 0C00709F */ jal __lookupVoice +/* 012284 70011684 32C600FF */ andi $a2, $s6, 0xff +/* 012288 70011688 104000F2 */ beqz $v0, .L70011A54 +/* 01228C 7001168C 00408025 */ move $s0, $v0 +/* 012290 70011690 A0510033 */ sb $s1, 0x33($v0) +/* 012294 70011694 00402025 */ move $a0, $v0 +/* 012298 70011698 0C006F85 */ jal __vsVol +/* 01229C 7001169C 02402825 */ move $a1, $s2 +/* 0122A0 700116A0 00028C00 */ sll $s1, $v0, 0x10 +/* 0122A4 700116A4 00117C03 */ sra $t7, $s1, 0x10 +/* 0122A8 700116A8 01E08825 */ move $s1, $t7 +/* 0122AC 700116AC 02002025 */ move $a0, $s0 +/* 0122B0 700116B0 0C006F7C */ jal __vsDelta +/* 0122B4 700116B4 8E45001C */ lw $a1, 0x1c($s2) +/* 0122B8 700116B8 00113400 */ sll $a2, $s1, 0x10 +/* 0122BC 700116BC 0006CC03 */ sra $t9, $a2, 0x10 +/* 0122C0 700116C0 03203025 */ move $a2, $t9 +/* 0122C4 700116C4 8E440014 */ lw $a0, 0x14($s2) +/* 0122C8 700116C8 26050004 */ addiu $a1, $s0, 4 +/* 0122CC 700116CC 0C004CE8 */ jal alSynSetVol +/* 0122D0 700116D0 00403825 */ move $a3, $v0 +/* 0122D4 700116D4 100000E0 */ b .L70011A58 +/* 0122D8 700116D8 8FBF0024 */ lw $ra, 0x24($sp) +.L700116DC: +/* 0122DC 700116DC 8E500064 */ lw $s0, 0x64($s2) +/* 0122E0 700116E0 520000DD */ beql $s0, $zero, .L70011A58 +/* 0122E4 700116E4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0122E8 700116E8 02C09825 */ move $s3, $s6 +/* 0122EC 700116EC 920E0031 */ lbu $t6, 0x31($s0) +.L700116F0: +/* 0122F0 700116F0 02002025 */ move $a0, $s0 +/* 0122F4 700116F4 02402825 */ move $a1, $s2 +/* 0122F8 700116F8 566E0011 */ bnel $s3, $t6, .L70011740 +/* 0122FC 700116FC 8E100000 */ lw $s0, ($s0) +/* 012300 70011700 0C006F85 */ jal __vsVol +/* 012304 70011704 A2140033 */ sb $s4, 0x33($s0) +/* 012308 70011708 00028C00 */ sll $s1, $v0, 0x10 +/* 01230C 7001170C 0011C403 */ sra $t8, $s1, 0x10 +/* 012310 70011710 03008825 */ move $s1, $t8 +/* 012314 70011714 02002025 */ move $a0, $s0 +/* 012318 70011718 0C006F7C */ jal __vsDelta +/* 01231C 7001171C 8E45001C */ lw $a1, 0x1c($s2) +/* 012320 70011720 00113400 */ sll $a2, $s1, 0x10 +/* 012324 70011724 00067C03 */ sra $t7, $a2, 0x10 +/* 012328 70011728 01E03025 */ move $a2, $t7 +/* 01232C 7001172C 8E440014 */ lw $a0, 0x14($s2) +/* 012330 70011730 26050004 */ addiu $a1, $s0, 4 +/* 012334 70011734 0C004CE8 */ jal alSynSetVol +/* 012338 70011738 00403825 */ move $a3, $v0 +/* 01233C 7001173C 8E100000 */ lw $s0, ($s0) +.L70011740: +/* 012340 70011740 5600FFEB */ bnezl $s0, .L700116F0 +/* 012344 70011744 920E0031 */ lbu $t6, 0x31($s0) +/* 012348 70011748 100000C3 */ b .L70011A58 +/* 01234C 7001174C 8FBF0024 */ lw $ra, 0x24($sp) +.L70011750: +/* 012350 70011750 24010007 */ li $at, 7 +/* 012354 70011754 12810023 */ beq $s4, $at, .L700117E4 +/* 012358 70011758 02801025 */ move $v0, $s4 +/* 01235C 7001175C 2401000A */ li $at, 10 +/* 012360 70011760 10410009 */ beq $v0, $at, .L70011788 +/* 012364 70011764 24010010 */ li $at, 16 +/* 012368 70011768 10410042 */ beq $v0, $at, .L70011874 +/* 01236C 7001176C 24010040 */ li $at, 64 +/* 012370 70011770 10410045 */ beq $v0, $at, .L70011888 +/* 012374 70011774 2401005B */ li $at, 91 +/* 012378 70011778 50410070 */ beql $v0, $at, .L7001193C +/* 01237C 7001177C 8E590060 */ lw $t9, 0x60($s2) +/* 012380 70011780 100000B5 */ b .L70011A58 +/* 012384 70011784 8FBF0024 */ lw $ra, 0x24($sp) +.L70011788: +/* 012388 70011788 8E590060 */ lw $t9, 0x60($s2) +/* 01238C 7001178C 00167100 */ sll $t6, $s6, 4 +/* 012390 70011790 032EC021 */ addu $t8, $t9, $t6 +/* 012394 70011794 A3110007 */ sb $s1, 7($t8) +/* 012398 70011798 8E500064 */ lw $s0, 0x64($s2) +/* 01239C 7001179C 520000AE */ beql $s0, $zero, .L70011A58 +/* 0123A0 700117A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0123A4 700117A4 02C09825 */ move $s3, $s6 +/* 0123A8 700117A8 920F0031 */ lbu $t7, 0x31($s0) +.L700117AC: +/* 0123AC 700117AC 02002025 */ move $a0, $s0 +/* 0123B0 700117B0 566F0008 */ bnel $s3, $t7, .L700117D4 +/* 0123B4 700117B4 8E100000 */ lw $s0, ($s0) +/* 0123B8 700117B8 0C00708D */ jal __vsPan +/* 0123BC 700117BC 02402825 */ move $a1, $s2 +/* 0123C0 700117C0 8E440014 */ lw $a0, 0x14($s2) +/* 0123C4 700117C4 26050004 */ addiu $a1, $s0, 4 +/* 0123C8 700117C8 0C004D34 */ jal alSynSetPan +/* 0123CC 700117CC 304600FF */ andi $a2, $v0, 0xff +/* 0123D0 700117D0 8E100000 */ lw $s0, ($s0) +.L700117D4: +/* 0123D4 700117D4 5600FFF5 */ bnezl $s0, .L700117AC +/* 0123D8 700117D8 920F0031 */ lbu $t7, 0x31($s0) +/* 0123DC 700117DC 1000009E */ b .L70011A58 +/* 0123E0 700117E0 8FBF0024 */ lw $ra, 0x24($sp) +.L700117E4: +/* 0123E4 700117E4 8E590060 */ lw $t9, 0x60($s2) +/* 0123E8 700117E8 00167100 */ sll $t6, $s6, 4 +/* 0123EC 700117EC 032EC021 */ addu $t8, $t9, $t6 +/* 0123F0 700117F0 A3110009 */ sb $s1, 9($t8) +/* 0123F4 700117F4 8E500064 */ lw $s0, 0x64($s2) +/* 0123F8 700117F8 52000097 */ beql $s0, $zero, .L70011A58 +/* 0123FC 700117FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 012400 70011800 02C09825 */ move $s3, $s6 +/* 012404 70011804 24140003 */ li $s4, 3 +/* 012408 70011808 920F0031 */ lbu $t7, 0x31($s0) +.L7001180C: +/* 01240C 7001180C 566F0015 */ bnel $s3, $t7, .L70011864 +/* 012410 70011810 8E100000 */ lw $s0, ($s0) +/* 012414 70011814 92190034 */ lbu $t9, 0x34($s0) +/* 012418 70011818 02002025 */ move $a0, $s0 +/* 01241C 7001181C 52990011 */ beql $s4, $t9, .L70011864 +/* 012420 70011820 8E100000 */ lw $s0, ($s0) +/* 012424 70011824 0C006F85 */ jal __vsVol +/* 012428 70011828 02402825 */ move $a1, $s2 +/* 01242C 7001182C 00028C00 */ sll $s1, $v0, 0x10 +/* 012430 70011830 00117403 */ sra $t6, $s1, 0x10 +/* 012434 70011834 01C08825 */ move $s1, $t6 +/* 012438 70011838 02002025 */ move $a0, $s0 +/* 01243C 7001183C 0C006F7C */ jal __vsDelta +/* 012440 70011840 8E45001C */ lw $a1, 0x1c($s2) +/* 012444 70011844 00113400 */ sll $a2, $s1, 0x10 +/* 012448 70011848 0006C403 */ sra $t8, $a2, 0x10 +/* 01244C 7001184C 03003025 */ move $a2, $t8 +/* 012450 70011850 8E440014 */ lw $a0, 0x14($s2) +/* 012454 70011854 26050004 */ addiu $a1, $s0, 4 +/* 012458 70011858 0C004CE8 */ jal alSynSetVol +/* 01245C 7001185C 00403825 */ move $a3, $v0 +/* 012460 70011860 8E100000 */ lw $s0, ($s0) +.L70011864: +/* 012464 70011864 5600FFE9 */ bnezl $s0, .L7001180C +/* 012468 70011868 920F0031 */ lbu $t7, 0x31($s0) +/* 01246C 7001186C 1000007A */ b .L70011A58 +/* 012470 70011870 8FBF0024 */ lw $ra, 0x24($sp) +.L70011874: +/* 012474 70011874 8E4F0060 */ lw $t7, 0x60($s2) +/* 012478 70011878 0016C900 */ sll $t9, $s6, 4 +/* 01247C 7001187C 01F97021 */ addu $t6, $t7, $t9 +/* 012480 70011880 10000074 */ b .L70011A54 +/* 012484 70011884 A1D10008 */ sb $s1, 8($t6) +.L70011888: +/* 012488 70011888 8E580060 */ lw $t8, 0x60($s2) +/* 01248C 7001188C 00167900 */ sll $t7, $s6, 4 +/* 012490 70011890 030FC821 */ addu $t9, $t8, $t7 +/* 012494 70011894 A331000B */ sb $s1, 0xb($t9) +/* 012498 70011898 8E500064 */ lw $s0, 0x64($s2) +/* 01249C 7001189C 5200006E */ beql $s0, $zero, .L70011A58 +/* 0124A0 700118A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0124A4 700118A4 02C09825 */ move $s3, $s6 +/* 0124A8 700118A8 24160002 */ li $s6, 2 +/* 0124AC 700118AC 241E0003 */ li $fp, 3 +/* 0124B0 700118B0 24170004 */ li $s7, 4 +/* 0124B4 700118B4 24150002 */ li $s5, 2 +/* 0124B8 700118B8 24140003 */ li $s4, 3 +/* 0124BC 700118BC 920E0031 */ lbu $t6, 0x31($s0) +.L700118C0: +/* 0124C0 700118C0 566E0019 */ bnel $s3, $t6, .L70011928 +/* 0124C4 700118C4 8E100000 */ lw $s0, ($s0) +/* 0124C8 700118C8 92020035 */ lbu $v0, 0x35($s0) +/* 0124CC 700118CC 2A210040 */ slti $at, $s1, 0x40 +/* 0124D0 700118D0 52820015 */ beql $s4, $v0, .L70011928 +/* 0124D4 700118D4 8E100000 */ lw $s0, ($s0) +/* 0124D8 700118D8 14200005 */ bnez $at, .L700118F0 +/* 0124DC 700118DC 00000000 */ nop +/* 0124E0 700118E0 54400011 */ bnezl $v0, .L70011928 +/* 0124E4 700118E4 8E100000 */ lw $s0, ($s0) +/* 0124E8 700118E8 1000000E */ b .L70011924 +/* 0124EC 700118EC A2150035 */ sb $s5, 0x35($s0) +.L700118F0: +/* 0124F0 700118F0 16C20003 */ bne $s6, $v0, .L70011900 +/* 0124F4 700118F4 00000000 */ nop +/* 0124F8 700118F8 1000000A */ b .L70011924 +/* 0124FC 700118FC A2000035 */ sb $zero, 0x35($s0) +.L70011900: +/* 012500 70011900 56E20009 */ bnel $s7, $v0, .L70011928 +/* 012504 70011904 8E100000 */ lw $s0, ($s0) +/* 012508 70011908 8E180020 */ lw $t8, 0x20($s0) +/* 01250C 7001190C A21E0035 */ sb $fp, 0x35($s0) +/* 012510 70011910 02402025 */ move $a0, $s2 +/* 012514 70011914 8F0F0000 */ lw $t7, ($t8) +/* 012518 70011918 26050004 */ addiu $a1, $s0, 4 +/* 01251C 7001191C 0C006FA7 */ jal __seqpReleaseVoice +/* 012520 70011920 8DE60008 */ lw $a2, 8($t7) +.L70011924: +/* 012524 70011924 8E100000 */ lw $s0, ($s0) +.L70011928: +/* 012528 70011928 5600FFE5 */ bnezl $s0, .L700118C0 +/* 01252C 7001192C 920E0031 */ lbu $t6, 0x31($s0) +/* 012530 70011930 10000049 */ b .L70011A58 +/* 012534 70011934 8FBF0024 */ lw $ra, 0x24($sp) +/* 012538 70011938 8E590060 */ lw $t9, 0x60($s2) +.L7001193C: +/* 01253C 7001193C 00167100 */ sll $t6, $s6, 4 +/* 012540 70011940 032EC021 */ addu $t8, $t9, $t6 +/* 012544 70011944 A311000A */ sb $s1, 0xa($t8) +/* 012548 70011948 8E500064 */ lw $s0, 0x64($s2) +/* 01254C 7001194C 52000042 */ beql $s0, $zero, .L70011A58 +/* 012550 70011950 8FBF0024 */ lw $ra, 0x24($sp) +/* 012554 70011954 02C09825 */ move $s3, $s6 +/* 012558 70011958 920F0031 */ lbu $t7, 0x31($s0) +.L7001195C: +/* 01255C 7001195C 26050004 */ addiu $a1, $s0, 4 +/* 012560 70011960 322600FF */ andi $a2, $s1, 0xff +/* 012564 70011964 566F0004 */ bnel $s3, $t7, .L70011978 +/* 012568 70011968 8E100000 */ lw $s0, ($s0) +/* 01256C 7001196C 0C004D7C */ jal alSynSetFXMix +/* 012570 70011970 8E440014 */ lw $a0, 0x14($s2) +/* 012574 70011974 8E100000 */ lw $s0, ($s0) +.L70011978: +/* 012578 70011978 5600FFF8 */ bnezl $s0, .L7001195C +/* 01257C 7001197C 920F0031 */ lbu $t7, 0x31($s0) +/* 012580 70011980 10000035 */ b .L70011A58 +/* 012584 70011984 8FBF0024 */ lw $ra, 0x24($sp) +.L70011988: +/* 012588 70011988 8E420020 */ lw $v0, 0x20($s2) +/* 01258C 7001198C 00147080 */ sll $t6, $s4, 2 +/* 012590 70011990 02402025 */ move $a0, $s2 +/* 012594 70011994 84590000 */ lh $t9, ($v0) +/* 012598 70011998 02C03025 */ move $a2, $s6 +/* 01259C 7001199C 004EC021 */ addu $t8, $v0, $t6 +/* 0125A0 700119A0 0299082A */ slt $at, $s4, $t9 +/* 0125A4 700119A4 5020002C */ beql $at, $zero, .L70011A58 +/* 0125A8 700119A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0125AC 700119AC 0C006F18 */ jal __setInstChanState +/* 0125B0 700119B0 8F05000C */ lw $a1, 0xc($t8) +/* 0125B4 700119B4 10000028 */ b .L70011A58 +/* 0125B8 700119B8 8FBF0024 */ lw $ra, 0x24($sp) +.L700119BC: +/* 0125BC 700119BC 8E4F0060 */ lw $t7, 0x60($s2) +/* 0125C0 700119C0 0016F100 */ sll $fp, $s6, 4 +/* 0125C4 700119C4 0011C1C0 */ sll $t8, $s1, 7 +/* 0125C8 700119C8 01FEC821 */ addu $t9, $t7, $fp +/* 0125CC 700119CC 872E0004 */ lh $t6, 4($t9) +/* 0125D0 700119D0 03147821 */ addu $t7, $t8, $s4 +/* 0125D4 700119D4 25F9E000 */ addiu $t9, $t7, -0x2000 +/* 0125D8 700119D8 01D90019 */ multu $t6, $t9 +/* 0125DC 700119DC 00002012 */ mflo $a0 +/* 0125E0 700119E0 04810003 */ bgez $a0, .L700119F0 +/* 0125E4 700119E4 0004C343 */ sra $t8, $a0, 0xd +/* 0125E8 700119E8 24811FFF */ addiu $at, $a0, 0x1fff +/* 0125EC 700119EC 0001C343 */ sra $t8, $at, 0xd +.L700119F0: +/* 0125F0 700119F0 0C004DF0 */ jal alCents2Ratio +/* 0125F4 700119F4 03002025 */ move $a0, $t8 +/* 0125F8 700119F8 8E4F0060 */ lw $t7, 0x60($s2) +/* 0125FC 700119FC 46000506 */ mov.s $f20, $f0 +/* 012600 70011A00 01FE7021 */ addu $t6, $t7, $fp +/* 012604 70011A04 E5C0000C */ swc1 $f0, 0xc($t6) +/* 012608 70011A08 8E500064 */ lw $s0, 0x64($s2) +/* 01260C 70011A0C 52000012 */ beql $s0, $zero, .L70011A58 +/* 012610 70011A10 8FBF0024 */ lw $ra, 0x24($sp) +/* 012614 70011A14 02C09825 */ move $s3, $s6 +/* 012618 70011A18 92190031 */ lbu $t9, 0x31($s0) +.L70011A1C: +/* 01261C 70011A1C 5679000B */ bnel $s3, $t9, .L70011A4C +/* 012620 70011A20 8E100000 */ lw $s0, ($s0) +/* 012624 70011A24 C6060028 */ lwc1 $f6, 0x28($s0) +/* 012628 70011A28 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 01262C 70011A2C 8E440014 */ lw $a0, 0x14($s2) +/* 012630 70011A30 46143202 */ mul.s $f8, $f6, $f20 +/* 012634 70011A34 26050004 */ addiu $a1, $s0, 4 +/* 012638 70011A38 460A4102 */ mul.s $f4, $f8, $f10 +/* 01263C 70011A3C 44062000 */ mfc1 $a2, $f4 +/* 012640 70011A40 0C004D58 */ jal alSynSetPitch +/* 012644 70011A44 00000000 */ nop +/* 012648 70011A48 8E100000 */ lw $s0, ($s0) +.L70011A4C: +/* 01264C 70011A4C 5600FFF3 */ bnezl $s0, .L70011A1C +/* 012650 70011A50 92190031 */ lbu $t9, 0x31($s0) +.L70011A54: +/* 012654 70011A54 8FBF0024 */ lw $ra, 0x24($sp) +.L70011A58: +/* 012658 70011A58 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 01265C 70011A5C 03E00008 */ jr $ra +/* 012660 70011A60 00000000 */ nop + +/* 012664 70011A64 03E00008 */ jr $ra +/* 012668 70011A68 00000000 */ nop + +glabel ultra_70011A6C +/* 01266C 70011A6C 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 012670 70011A70 AFB50034 */ sw $s5, 0x34($sp) +/* 012674 70011A74 AFB20028 */ sw $s2, 0x28($sp) +/* 012678 70011A78 248E0038 */ addiu $t6, $a0, 0x38 +/* 01267C 70011A7C 00809025 */ move $s2, $a0 +/* 012680 70011A80 AFBF0044 */ sw $ra, 0x44($sp) +/* 012684 70011A84 AFBE0040 */ sw $fp, 0x40($sp) +/* 012688 70011A88 AFB7003C */ sw $s7, 0x3c($sp) +/* 01268C 70011A8C AFB60038 */ sw $s6, 0x38($sp) +/* 012690 70011A90 AFB40030 */ sw $s4, 0x30($sp) +/* 012694 70011A94 AFB3002C */ sw $s3, 0x2c($sp) +/* 012698 70011A98 AFB10024 */ sw $s1, 0x24($sp) +/* 01269C 70011A9C AFB00020 */ sw $s0, 0x20($sp) +/* 0126A0 70011AA0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0126A4 70011AA4 AFAE0050 */ sw $t6, 0x50($sp) +/* 0126A8 70011AA8 24950048 */ addiu $s5, $a0, 0x48 +.L70011AAC: +/* 0126AC 70011AAC 964F0038 */ lhu $t7, 0x38($s2) +/* 0126B0 70011AB0 2DE10018 */ sltiu $at, $t7, 0x18 +/* 0126B4 70011AB4 1020015D */ beqz $at, .L7001202C +/* 0126B8 70011AB8 000F7880 */ sll $t7, $t7, 2 +/* 0126BC 70011ABC 3C018003 */ lui $at, %hi(audio_related_jump_table_1) # 0x8003 +/* 0126C0 70011AC0 002F0821 */ addu $at, $at, $t7 +/* 0126C4 70011AC4 8C2F9614 */ lw $t7, %lo(audio_related_jump_table_1)($at) # -0x69ec +/* 0126C8 70011AC8 01E00008 */ jr $t7 +/* 0126CC 70011ACC 00000000 */ nop +.L70011AD0: +/* 0126D0 70011AD0 8E440018 */ lw $a0, 0x18($s2) +/* 0126D4 70011AD4 50800156 */ beql $a0, $zero, .L70012030 +/* 0126D8 70011AD8 02A02025 */ move $a0, $s5 +/* 0126DC 70011ADC 0C004929 */ jal alCSeqNextEvent +/* 0126E0 70011AE0 27A50058 */ addiu $a1, $sp, 0x58 +/* 0126E4 70011AE4 87B80058 */ lh $t8, 0x58($sp) +/* 0126E8 70011AE8 2719FFFF */ addiu $t9, $t8, -1 +/* 0126EC 70011AEC 2F210014 */ sltiu $at, $t9, 0x14 +/* 0126F0 70011AF0 1020014E */ beqz $at, .L7001202C +/* 0126F4 70011AF4 0019C880 */ sll $t9, $t9, 2 +/* 0126F8 70011AF8 3C018003 */ lui $at, %hi(audio_related_jump_table_2) # 0x8003 +/* 0126FC 70011AFC 00390821 */ addu $at, $at, $t9 +/* 012700 70011B00 8C399674 */ lw $t9, %lo(audio_related_jump_table_2)($at) # -0x698c +/* 012704 70011B04 03200008 */ jr $t9 +/* 012708 70011B08 00000000 */ nop +.L70011B0C: +/* 01270C 70011B0C 27A80058 */ addiu $t0, $sp, 0x58 +/* 012710 70011B10 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012714 70011B14 0C00448F */ jal __CSPHandleMIDIMsg +/* 012718 70011B18 AFB5004C */ sw $s5, 0x4c($sp) +/* 01271C 70011B1C 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012720 70011B20 8FB5004C */ lw $s5, 0x4c($sp) +/* 012724 70011B24 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012728 70011B28 02402025 */ move $a0, $s2 +/* 01272C 70011B2C 10000140 */ b .L70012030 +/* 012730 70011B30 02A02025 */ move $a0, $s5 +.L70011B34: +/* 012734 70011B34 0240B825 */ move $s7, $s2 +/* 012738 70011B38 27A50058 */ addiu $a1, $sp, 0x58 +/* 01273C 70011B3C AFB200A0 */ sw $s2, 0xa0($sp) +/* 012740 70011B40 0C00441B */ jal ultra_7001106C +/* 012744 70011B44 AFB5004C */ sw $s5, 0x4c($sp) +/* 012748 70011B48 8FB200A0 */ lw $s2, 0xa0($sp) +/* 01274C 70011B4C 8FB5004C */ lw $s5, 0x4c($sp) +/* 012750 70011B50 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012754 70011B54 02402025 */ move $a0, $s2 +/* 012758 70011B58 10000135 */ b .L70012030 +/* 01275C 70011B5C 02A02025 */ move $a0, $s5 +.L70011B60: +/* 012760 70011B60 240E0002 */ li $t6, 2 +/* 012764 70011B64 AE4E002C */ sw $t6, 0x2c($s2) +/* 012768 70011B68 240F0010 */ li $t7, 16 +/* 01276C 70011B6C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 012770 70011B70 A7AF0058 */ sh $t7, 0x58($sp) +/* 012774 70011B74 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 012778 70011B78 02A02025 */ move $a0, $s5 +/* 01277C 70011B7C 0C004BBF */ jal alEvtqPostEvent +/* 012780 70011B80 27A50058 */ addiu $a1, $sp, 0x58 +/* 012784 70011B84 1000012A */ b .L70012030 +/* 012788 70011B88 02A02025 */ move $a0, $s5 +.L70011B8C: +/* 01278C 70011B8C 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012790 70011B90 02402025 */ move $a0, $s2 +/* 012794 70011B94 10000126 */ b .L70012030 +/* 012798 70011B98 02A02025 */ move $a0, $s5 +.L70011B9C: +/* 01279C 70011B9C 24180009 */ li $t8, 9 +/* 0127A0 70011BA0 A7B8008C */ sh $t8, 0x8c($sp) +/* 0127A4 70011BA4 8E46005C */ lw $a2, 0x5c($s2) +/* 0127A8 70011BA8 02A02025 */ move $a0, $s5 +/* 0127AC 70011BAC 0C004BBF */ jal alEvtqPostEvent +/* 0127B0 70011BB0 27A5008C */ addiu $a1, $sp, 0x8c +/* 0127B4 70011BB4 1000011E */ b .L70012030 +/* 0127B8 70011BB8 02A02025 */ move $a0, $s5 +.L70011BBC: +/* 0127BC 70011BBC 8E50003C */ lw $s0, 0x3c($s2) +/* 0127C0 70011BC0 8E440014 */ lw $a0, 0x14($s2) +/* 0127C4 70011BC4 0C004DA4 */ jal alSynStopVoice +/* 0127C8 70011BC8 02002825 */ move $a1, $s0 +/* 0127CC 70011BCC 8E440014 */ lw $a0, 0x14($s2) +/* 0127D0 70011BD0 0C004DC4 */ jal alSynFreeVoice +/* 0127D4 70011BD4 02002825 */ move $a1, $s0 +/* 0127D8 70011BD8 8E110010 */ lw $s1, 0x10($s0) +/* 0127DC 70011BDC 02402025 */ move $a0, $s2 +/* 0127E0 70011BE0 92390037 */ lbu $t9, 0x37($s1) +/* 0127E4 70011BE4 53200004 */ beql $t9, $zero, .L70011BF8 +/* 0127E8 70011BE8 02402025 */ move $a0, $s2 +/* 0127EC 70011BEC 0C0074A8 */ jal __seqpStopOsc +/* 0127F0 70011BF0 02202825 */ move $a1, $s1 +/* 0127F4 70011BF4 02402025 */ move $a0, $s2 +.L70011BF8: +/* 0127F8 70011BF8 0C00701C */ jal __unmapVoice +/* 0127FC 70011BFC 02002825 */ move $a1, $s0 +/* 012800 70011C00 1000010B */ b .L70012030 +/* 012804 70011C04 02A02025 */ move $a0, $s5 +.L70011C08: +/* 012808 70011C08 8E50003C */ lw $s0, 0x3c($s2) +/* 01280C 70011C0C 240F0001 */ li $t7, 1 +/* 012810 70011C10 8E110010 */ lw $s1, 0x10($s0) +/* 012814 70011C14 922E0034 */ lbu $t6, 0x34($s1) +/* 012818 70011C18 55C00003 */ bnezl $t6, .L70011C28 +/* 01281C 70011C1C 8E530040 */ lw $s3, 0x40($s2) +/* 012820 70011C20 A22F0034 */ sb $t7, 0x34($s1) +/* 012824 70011C24 8E530040 */ lw $s3, 0x40($s2) +.L70011C28: +/* 012828 70011C28 8E58001C */ lw $t8, 0x1c($s2) +/* 01282C 70011C2C 02202025 */ move $a0, $s1 +/* 012830 70011C30 02402825 */ move $a1, $s2 +/* 012834 70011C34 0313C821 */ addu $t9, $t8, $s3 +/* 012838 70011C38 AE390024 */ sw $t9, 0x24($s1) +/* 01283C 70011C3C 924E0044 */ lbu $t6, 0x44($s2) +/* 012840 70011C40 0C006F85 */ jal __vsVol +/* 012844 70011C44 A22E0030 */ sb $t6, 0x30($s1) +/* 012848 70011C48 00023400 */ sll $a2, $v0, 0x10 +/* 01284C 70011C4C 00067C03 */ sra $t7, $a2, 0x10 +/* 012850 70011C50 01E03025 */ move $a2, $t7 +/* 012854 70011C54 8E440014 */ lw $a0, 0x14($s2) +/* 012858 70011C58 02002825 */ move $a1, $s0 +/* 01285C 70011C5C 0C004CE8 */ jal alSynSetVol +/* 012860 70011C60 02603825 */ move $a3, $s3 +/* 012864 70011C64 100000F2 */ b .L70012030 +/* 012868 70011C68 02A02025 */ move $a0, $s5 +.L70011C6C: +/* 01286C 70011C6C 8E590074 */ lw $t9, 0x74($s2) +/* 012870 70011C70 8E540040 */ lw $s4, 0x40($s2) +/* 012874 70011C74 8E51003C */ lw $s1, 0x3c($s2) +/* 012878 70011C78 27A50078 */ addiu $a1, $sp, 0x78 +/* 01287C 70011C7C 0320F809 */ jalr $t9 +/* 012880 70011C80 02802025 */ move $a0, $s4 +/* 012884 70011C84 4458F800 */ cfc1 $t8, $31 +/* 012888 70011C88 240E0001 */ li $t6, 1 +/* 01288C 70011C8C 44CEF800 */ ctc1 $t6, $31 +/* 012890 70011C90 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 012894 70011C94 00409825 */ move $s3, $v0 +/* 012898 70011C98 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01289C 70011C9C 460021A4 */ cvt.w.s $f6, $f4 +/* 0128A0 70011CA0 02202025 */ move $a0, $s1 +/* 0128A4 70011CA4 02402825 */ move $a1, $s2 +/* 0128A8 70011CA8 444EF800 */ cfc1 $t6, $31 +/* 0128AC 70011CAC 00000000 */ nop +/* 0128B0 70011CB0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0128B4 70011CB4 51C00013 */ beql $t6, $zero, .L70011D04 +/* 0128B8 70011CB8 440E3000 */ mfc1 $t6, $f6 +/* 0128BC 70011CBC 44813000 */ mtc1 $at, $f6 +/* 0128C0 70011CC0 240E0001 */ li $t6, 1 +/* 0128C4 70011CC4 46062181 */ sub.s $f6, $f4, $f6 +/* 0128C8 70011CC8 44CEF800 */ ctc1 $t6, $31 +/* 0128CC 70011CCC 00000000 */ nop +/* 0128D0 70011CD0 460031A4 */ cvt.w.s $f6, $f6 +/* 0128D4 70011CD4 444EF800 */ cfc1 $t6, $31 +/* 0128D8 70011CD8 00000000 */ nop +/* 0128DC 70011CDC 31CE0078 */ andi $t6, $t6, 0x78 +/* 0128E0 70011CE0 15C00005 */ bnez $t6, .L70011CF8 +/* 0128E4 70011CE4 00000000 */ nop +/* 0128E8 70011CE8 440E3000 */ mfc1 $t6, $f6 +/* 0128EC 70011CEC 3C018000 */ lui $at, 0x8000 +/* 0128F0 70011CF0 10000007 */ b .L70011D10 +/* 0128F4 70011CF4 01C17025 */ or $t6, $t6, $at +.L70011CF8: +/* 0128F8 70011CF8 10000005 */ b .L70011D10 +/* 0128FC 70011CFC 240EFFFF */ li $t6, -1 +/* 012900 70011D00 440E3000 */ mfc1 $t6, $f6 +.L70011D04: +/* 012904 70011D04 00000000 */ nop +/* 012908 70011D08 05C0FFFB */ bltz $t6, .L70011CF8 +/* 01290C 70011D0C 00000000 */ nop +.L70011D10: +/* 012910 70011D10 44D8F800 */ ctc1 $t8, $31 +/* 012914 70011D14 0C006F85 */ jal __vsVol +/* 012918 70011D18 A22E0036 */ sb $t6, 0x36($s1) +/* 01291C 70011D1C 00028400 */ sll $s0, $v0, 0x10 +/* 012920 70011D20 00107C03 */ sra $t7, $s0, 0x10 +/* 012924 70011D24 01E08025 */ move $s0, $t7 +/* 012928 70011D28 02202025 */ move $a0, $s1 +/* 01292C 70011D2C 0C006F7C */ jal __vsDelta +/* 012930 70011D30 8E45001C */ lw $a1, 0x1c($s2) +/* 012934 70011D34 00103400 */ sll $a2, $s0, 0x10 +/* 012938 70011D38 0006CC03 */ sra $t9, $a2, 0x10 +/* 01293C 70011D3C 03203025 */ move $a2, $t9 +/* 012940 70011D40 8E440014 */ lw $a0, 0x14($s2) +/* 012944 70011D44 26250004 */ addiu $a1, $s1, 4 +/* 012948 70011D48 0C004CE8 */ jal alSynSetVol +/* 01294C 70011D4C 00403825 */ move $a3, $v0 +/* 012950 70011D50 24180016 */ li $t8, 22 +/* 012954 70011D54 A7B8008C */ sh $t8, 0x8c($sp) +/* 012958 70011D58 AFB10090 */ sw $s1, 0x90($sp) +/* 01295C 70011D5C AFB40094 */ sw $s4, 0x94($sp) +/* 012960 70011D60 02A02025 */ move $a0, $s5 +/* 012964 70011D64 27A5008C */ addiu $a1, $sp, 0x8c +/* 012968 70011D68 0C004BBF */ jal alEvtqPostEvent +/* 01296C 70011D6C 02603025 */ move $a2, $s3 +/* 012970 70011D70 100000AF */ b .L70012030 +/* 012974 70011D74 02A02025 */ move $a0, $s5 +.L70011D78: +/* 012978 70011D78 8E590074 */ lw $t9, 0x74($s2) +/* 01297C 70011D7C 8E540040 */ lw $s4, 0x40($s2) +/* 012980 70011D80 8E51003C */ lw $s1, 0x3c($s2) +/* 012984 70011D84 92500044 */ lbu $s0, 0x44($s2) +/* 012988 70011D88 27A50078 */ addiu $a1, $sp, 0x78 +/* 01298C 70011D8C 0320F809 */ jalr $t9 +/* 012990 70011D90 02802025 */ move $a0, $s4 +/* 012994 70011D94 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 012998 70011D98 C6240028 */ lwc1 $f4, 0x28($s1) +/* 01299C 70011D9C 00107900 */ sll $t7, $s0, 4 +/* 0129A0 70011DA0 E628002C */ swc1 $f8, 0x2c($s1) +/* 0129A4 70011DA4 C626002C */ lwc1 $f6, 0x2c($s1) +/* 0129A8 70011DA8 8E4E0060 */ lw $t6, 0x60($s2) +/* 0129AC 70011DAC 00409825 */ move $s3, $v0 +/* 0129B0 70011DB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0129B4 70011DB4 01CFC021 */ addu $t8, $t6, $t7 +/* 0129B8 70011DB8 C70A000C */ lwc1 $f10, 0xc($t8) +/* 0129BC 70011DBC 8E440014 */ lw $a0, 0x14($s2) +/* 0129C0 70011DC0 26250004 */ addiu $a1, $s1, 4 +/* 0129C4 70011DC4 46085102 */ mul.s $f4, $f10, $f8 +/* 0129C8 70011DC8 44062000 */ mfc1 $a2, $f4 +/* 0129CC 70011DCC 0C004D58 */ jal alSynSetPitch +/* 0129D0 70011DD0 00000000 */ nop +/* 0129D4 70011DD4 24190017 */ li $t9, 23 +/* 0129D8 70011DD8 A7B9008C */ sh $t9, 0x8c($sp) +/* 0129DC 70011DDC AFB10090 */ sw $s1, 0x90($sp) +/* 0129E0 70011DE0 AFB40094 */ sw $s4, 0x94($sp) +/* 0129E4 70011DE4 A3B00098 */ sb $s0, 0x98($sp) +/* 0129E8 70011DE8 02A02025 */ move $a0, $s5 +/* 0129EC 70011DEC 27A5008C */ addiu $a1, $sp, 0x8c +/* 0129F0 70011DF0 0C004BBF */ jal alEvtqPostEvent +/* 0129F4 70011DF4 02603025 */ move $a2, $s3 +/* 0129F8 70011DF8 1000008D */ b .L70012030 +/* 0129FC 70011DFC 02A02025 */ move $a0, $s5 +.L70011E00: +/* 012A00 70011E00 8FA80050 */ lw $t0, 0x50($sp) +/* 012A04 70011E04 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012A08 70011E08 0C00448F */ jal __CSPHandleMIDIMsg +/* 012A0C 70011E0C AFB5004C */ sw $s5, 0x4c($sp) +/* 012A10 70011E10 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012A14 70011E14 10000085 */ b .L7001202C +/* 012A18 70011E18 8FB5004C */ lw $s5, 0x4c($sp) +.L70011E1C: +/* 012A1C 70011E1C 0240B825 */ move $s7, $s2 +/* 012A20 70011E20 8FA50050 */ lw $a1, 0x50($sp) +/* 012A24 70011E24 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012A28 70011E28 0C00441B */ jal ultra_7001106C +/* 012A2C 70011E2C AFB5004C */ sw $s5, 0x4c($sp) +/* 012A30 70011E30 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012A34 70011E34 1000007D */ b .L7001202C +/* 012A38 70011E38 8FB5004C */ lw $s5, 0x4c($sp) +.L70011E3C: +/* 012A3C 70011E3C 8E510064 */ lw $s1, 0x64($s2) +/* 012A40 70011E40 864E003C */ lh $t6, 0x3c($s2) +/* 012A44 70011E44 12200079 */ beqz $s1, .L7001202C +/* 012A48 70011E48 A64E0032 */ sh $t6, 0x32($s2) +/* 012A4C 70011E4C 02202025 */ move $a0, $s1 +.L70011E50: +/* 012A50 70011E50 0C006F85 */ jal __vsVol +/* 012A54 70011E54 02402825 */ move $a1, $s2 +/* 012A58 70011E58 00028400 */ sll $s0, $v0, 0x10 +/* 012A5C 70011E5C 00107C03 */ sra $t7, $s0, 0x10 +/* 012A60 70011E60 01E08025 */ move $s0, $t7 +/* 012A64 70011E64 02202025 */ move $a0, $s1 +/* 012A68 70011E68 0C006F7C */ jal __vsDelta +/* 012A6C 70011E6C 8E45001C */ lw $a1, 0x1c($s2) +/* 012A70 70011E70 00103400 */ sll $a2, $s0, 0x10 +/* 012A74 70011E74 0006C403 */ sra $t8, $a2, 0x10 +/* 012A78 70011E78 03003025 */ move $a2, $t8 +/* 012A7C 70011E7C 8E440014 */ lw $a0, 0x14($s2) +/* 012A80 70011E80 26250004 */ addiu $a1, $s1, 4 +/* 012A84 70011E84 0C004CE8 */ jal alSynSetVol +/* 012A88 70011E88 00403825 */ move $a3, $v0 +/* 012A8C 70011E8C 8E310000 */ lw $s1, ($s1) +/* 012A90 70011E90 5620FFEF */ bnezl $s1, .L70011E50 +/* 012A94 70011E94 02202025 */ move $a0, $s1 +/* 012A98 70011E98 10000065 */ b .L70012030 +/* 012A9C 70011E9C 02A02025 */ move $a0, $s5 +.L70011EA0: +/* 012AA0 70011EA0 8E59002C */ lw $t9, 0x2c($s2) +/* 012AA4 70011EA4 24010001 */ li $at, 1 +/* 012AA8 70011EA8 240E0001 */ li $t6, 1 +/* 012AAC 70011EAC 1321005F */ beq $t9, $at, .L7001202C +/* 012AB0 70011EB0 02402025 */ move $a0, $s2 +/* 012AB4 70011EB4 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012AB8 70011EB8 AE4E002C */ sw $t6, 0x2c($s2) +/* 012ABC 70011EBC 1000005C */ b .L70012030 +/* 012AC0 70011EC0 02A02025 */ move $a0, $s5 +.L70011EC4: +/* 012AC4 70011EC4 8E4F002C */ lw $t7, 0x2c($s2) +/* 012AC8 70011EC8 24010002 */ li $at, 2 +/* 012ACC 70011ECC 55E10058 */ bnel $t7, $at, .L70012030 +/* 012AD0 70011ED0 02A02025 */ move $a0, $s5 +/* 012AD4 70011ED4 8E510064 */ lw $s1, 0x64($s2) +/* 012AD8 70011ED8 12200013 */ beqz $s1, .L70011F28 +/* 012ADC 70011EDC 26300004 */ addiu $s0, $s1, 4 +.L70011EE0: +/* 012AE0 70011EE0 02002825 */ move $a1, $s0 +/* 012AE4 70011EE4 0C004DA4 */ jal alSynStopVoice +/* 012AE8 70011EE8 8E440014 */ lw $a0, 0x14($s2) +/* 012AEC 70011EEC 8E440014 */ lw $a0, 0x14($s2) +/* 012AF0 70011EF0 0C004DC4 */ jal alSynFreeVoice +/* 012AF4 70011EF4 02002825 */ move $a1, $s0 +/* 012AF8 70011EF8 92380037 */ lbu $t8, 0x37($s1) +/* 012AFC 70011EFC 02402025 */ move $a0, $s2 +/* 012B00 70011F00 53000004 */ beql $t8, $zero, .L70011F14 +/* 012B04 70011F04 02402025 */ move $a0, $s2 +/* 012B08 70011F08 0C0074A8 */ jal __seqpStopOsc +/* 012B0C 70011F0C 02202825 */ move $a1, $s1 +/* 012B10 70011F10 02402025 */ move $a0, $s2 +.L70011F14: +/* 012B14 70011F14 0C00701C */ jal __unmapVoice +/* 012B18 70011F18 02002825 */ move $a1, $s0 +/* 012B1C 70011F1C 8E510064 */ lw $s1, 0x64($s2) +/* 012B20 70011F20 5620FFEF */ bnezl $s1, .L70011EE0 +/* 012B24 70011F24 26300004 */ addiu $s0, $s1, 4 +.L70011F28: +/* 012B28 70011F28 10000040 */ b .L7001202C +/* 012B2C 70011F2C AE40002C */ sw $zero, 0x2c($s2) +.L70011F30: +/* 012B30 70011F30 8E59002C */ lw $t9, 0x2c($s2) +/* 012B34 70011F34 24010001 */ li $at, 1 +/* 012B38 70011F38 02A02025 */ move $a0, $s5 +/* 012B3C 70011F3C 5721003C */ bnel $t9, $at, .L70012030 +/* 012B40 70011F40 02A02025 */ move $a0, $s5 +/* 012B44 70011F44 0C004B78 */ jal alEvtqFlushType +/* 012B48 70011F48 00002825 */ move $a1, $zero +/* 012B4C 70011F4C 02A02025 */ move $a0, $s5 +/* 012B50 70011F50 0C004B78 */ jal alEvtqFlushType +/* 012B54 70011F54 24050015 */ li $a1, 21 +/* 012B58 70011F58 02A02025 */ move $a0, $s5 +/* 012B5C 70011F5C 0C004B78 */ jal alEvtqFlushType +/* 012B60 70011F60 24050002 */ li $a1, 2 +/* 012B64 70011F64 8E510064 */ lw $s1, 0x64($s2) +/* 012B68 70011F68 1220000D */ beqz $s1, .L70011FA0 +/* 012B6C 70011F6C 26300004 */ addiu $s0, $s1, 4 +.L70011F70: +/* 012B70 70011F70 02002825 */ move $a1, $s0 +/* 012B74 70011F74 02402025 */ move $a0, $s2 +/* 012B78 70011F78 0C006FF2 */ jal __voiceNeedsNoteKill +/* 012B7C 70011F7C 3406C350 */ li $a2, 50000 +/* 012B80 70011F80 10400004 */ beqz $v0, .L70011F94 +/* 012B84 70011F84 02402025 */ move $a0, $s2 +/* 012B88 70011F88 02002825 */ move $a1, $s0 +/* 012B8C 70011F8C 0C006FA7 */ jal __seqpReleaseVoice +/* 012B90 70011F90 3406C350 */ li $a2, 50000 +.L70011F94: +/* 012B94 70011F94 8E310000 */ lw $s1, ($s1) +/* 012B98 70011F98 5620FFF5 */ bnezl $s1, .L70011F70 +/* 012B9C 70011F9C 26300004 */ addiu $s0, $s1, 4 +.L70011FA0: +/* 012BA0 70011FA0 240E0002 */ li $t6, 2 +/* 012BA4 70011FA4 AE4E002C */ sw $t6, 0x2c($s2) +/* 012BA8 70011FA8 240F0010 */ li $t7, 16 +/* 012BAC 70011FAC 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 012BB0 70011FB0 A7AF008C */ sh $t7, 0x8c($sp) +/* 012BB4 70011FB4 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 012BB8 70011FB8 02A02025 */ move $a0, $s5 +/* 012BBC 70011FBC 0C004BBF */ jal alEvtqPostEvent +/* 012BC0 70011FC0 27A5008C */ addiu $a1, $sp, 0x8c +/* 012BC4 70011FC4 1000001A */ b .L70012030 +/* 012BC8 70011FC8 02A02025 */ move $a0, $s5 +.L70011FCC: +/* 012BCC 70011FCC 9250003C */ lbu $s0, 0x3c($s2) +/* 012BD0 70011FD0 8E590060 */ lw $t9, 0x60($s2) +/* 012BD4 70011FD4 9258003D */ lbu $t8, 0x3d($s2) +/* 012BD8 70011FD8 00107100 */ sll $t6, $s0, 4 +/* 012BDC 70011FDC 032E7821 */ addu $t7, $t9, $t6 +/* 012BE0 70011FE0 10000012 */ b .L7001202C +/* 012BE4 70011FE4 A1F80008 */ sb $t8, 8($t7) +.L70011FE8: +/* 012BE8 70011FE8 8E59003C */ lw $t9, 0x3c($s2) +/* 012BEC 70011FEC 3C018003 */ lui $at, %hi(F32_800296C4) +/* 012BF0 70011FF0 02402025 */ move $a0, $s2 +/* 012BF4 70011FF4 AE590018 */ sw $t9, 0x18($s2) +/* 012BF8 70011FF8 0C00440C */ jal ultra_70011030 +/* 012BFC 70011FFC C42C96C4 */ lwc1 $f12, %lo(F32_800296C4)($at) +/* 012C00 70012000 8E450020 */ lw $a1, 0x20($s2) +/* 012C04 70012004 50A0000A */ beql $a1, $zero, .L70012030 +/* 012C08 70012008 02A02025 */ move $a0, $s5 +/* 012C0C 7001200C 0C006F4D */ jal __initFromBank +/* 012C10 70012010 02402025 */ move $a0, $s2 +/* 012C14 70012014 10000006 */ b .L70012030 +/* 012C18 70012018 02A02025 */ move $a0, $s5 +.L7001201C: +/* 012C1C 7001201C 8E45003C */ lw $a1, 0x3c($s2) +/* 012C20 70012020 02402025 */ move $a0, $s2 +/* 012C24 70012024 0C006F4D */ jal __initFromBank +/* 012C28 70012028 AE450020 */ sw $a1, 0x20($s2) +.L7001202C: +/* 012C2C 7001202C 02A02025 */ move $a0, $s5 +.L70012030: +/* 012C30 70012030 0C004C08 */ jal alEvtqNextEvent +/* 012C34 70012034 8FA50050 */ lw $a1, 0x50($sp) +/* 012C38 70012038 1040FE9C */ beqz $v0, .L70011AAC +/* 012C3C 7001203C AE420028 */ sw $v0, 0x28($s2) +/* 012C40 70012040 8E4E001C */ lw $t6, 0x1c($s2) +/* 012C44 70012044 01C2C021 */ addu $t8, $t6, $v0 +/* 012C48 70012048 AE58001C */ sw $t8, 0x1c($s2) +/* 012C4C 7001204C 8FBF0044 */ lw $ra, 0x44($sp) +/* 012C50 70012050 8FBE0040 */ lw $fp, 0x40($sp) +/* 012C54 70012054 8FB7003C */ lw $s7, 0x3c($sp) +/* 012C58 70012058 8FB60038 */ lw $s6, 0x38($sp) +/* 012C5C 7001205C 8FB50034 */ lw $s5, 0x34($sp) +/* 012C60 70012060 8FB40030 */ lw $s4, 0x30($sp) +/* 012C64 70012064 8FB3002C */ lw $s3, 0x2c($sp) +/* 012C68 70012068 8FB20028 */ lw $s2, 0x28($sp) +/* 012C6C 7001206C 8FB10024 */ lw $s1, 0x24($sp) +/* 012C70 70012070 8FB00020 */ lw $s0, 0x20($sp) +/* 012C74 70012074 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 012C78 70012078 03E00008 */ jr $ra +/* 012C7C 7001207C 27BD00A0 */ addiu $sp, $sp, 0xa0 + +glabel alCSPNew +/* 012C80 70012080 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 012C84 70012084 AFBF0024 */ sw $ra, 0x24($sp) +/* 012C88 70012088 AFB10020 */ sw $s1, 0x20($sp) +/* 012C8C 7001208C AFB0001C */ sw $s0, 0x1c($sp) +/* 012C90 70012090 8CA6000C */ lw $a2, 0xc($a1) +/* 012C94 70012094 AC800020 */ sw $zero, 0x20($a0) +/* 012C98 70012098 AC800018 */ sw $zero, 0x18($a0) +/* 012C9C 7001209C 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 012CA0 700120A0 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 012CA4 700120A4 240F00FF */ li $t7, 255 +/* 012CA8 700120A8 241801E8 */ li $t8, 488 +/* 012CAC 700120AC 24197FFF */ li $t9, 32767 +/* 012CB0 700120B0 24083E80 */ li $t0, 16000 +/* 012CB4 700120B4 A48F0030 */ sh $t7, 0x30($a0) +/* 012CB8 700120B8 AC980024 */ sw $t8, 0x24($a0) +/* 012CBC 700120BC AC800028 */ sw $zero, 0x28($a0) +/* 012CC0 700120C0 AC80002C */ sw $zero, 0x2c($a0) +/* 012CC4 700120C4 A4990032 */ sh $t9, 0x32($a0) +/* 012CC8 700120C8 AC88005C */ sw $t0, 0x5c($a0) +/* 012CCC 700120CC AC80001C */ sw $zero, 0x1c($a0) +/* 012CD0 700120D0 AC8E0014 */ sw $t6, 0x14($a0) +/* 012CD4 700120D4 8CA90010 */ lw $t1, 0x10($a1) +/* 012CD8 700120D8 240C0009 */ li $t4, 9 +/* 012CDC 700120DC 00A08825 */ move $s1, $a1 +/* 012CE0 700120E0 AC890070 */ sw $t1, 0x70($a0) +/* 012CE4 700120E4 8CAA0014 */ lw $t2, 0x14($a1) +/* 012CE8 700120E8 00808025 */ move $s0, $a0 +/* 012CEC 700120EC 240E0010 */ li $t6, 16 +/* 012CF0 700120F0 AC8A0074 */ sw $t2, 0x74($a0) +/* 012CF4 700120F4 8CAB0018 */ lw $t3, 0x18($a1) +/* 012CF8 700120F8 A48C0038 */ sh $t4, 0x38($a0) +/* 012CFC 700120FC AC8B0078 */ sw $t3, 0x78($a0) +/* 012D00 70012100 90AD0008 */ lbu $t5, 8($a1) +/* 012D04 70012104 00002825 */ move $a1, $zero +/* 012D08 70012108 A08D0034 */ sb $t5, 0x34($a0) +/* 012D0C 7001210C 92270008 */ lbu $a3, 8($s1) +/* 012D10 70012110 AFAE0010 */ sw $t6, 0x10($sp) +/* 012D14 70012114 00002025 */ move $a0, $zero +/* 012D18 70012118 0C003AD4 */ jal alHeapDBAlloc +/* 012D1C 7001211C AFA6002C */ sw $a2, 0x2c($sp) +/* 012D20 70012120 AE020060 */ sw $v0, 0x60($s0) +/* 012D24 70012124 0C0074E9 */ jal __initChanState +/* 012D28 70012128 02002025 */ move $a0, $s0 +/* 012D2C 7001212C 8E270000 */ lw $a3, ($s1) +/* 012D30 70012130 240F0038 */ li $t7, 56 +/* 012D34 70012134 AFAF0010 */ sw $t7, 0x10($sp) +/* 012D38 70012138 00002025 */ move $a0, $zero +/* 012D3C 7001213C 00002825 */ move $a1, $zero +/* 012D40 70012140 0C003AD4 */ jal alHeapDBAlloc +/* 012D44 70012144 8FA6002C */ lw $a2, 0x2c($sp) +/* 012D48 70012148 AE00006C */ sw $zero, 0x6c($s0) +/* 012D4C 7001214C 8E380000 */ lw $t8, ($s1) +/* 012D50 70012150 00002025 */ move $a0, $zero +/* 012D54 70012154 00002825 */ move $a1, $zero +/* 012D58 70012158 1B00000B */ blez $t8, .L70012188 +/* 012D5C 7001215C 2409001C */ li $t1, 28 +/* 012D60 70012160 00401825 */ move $v1, $v0 +/* 012D64 70012164 8E19006C */ lw $t9, 0x6c($s0) +.L70012168: +/* 012D68 70012168 24840001 */ addiu $a0, $a0, 1 +/* 012D6C 7001216C AC790000 */ sw $t9, ($v1) +/* 012D70 70012170 AE03006C */ sw $v1, 0x6c($s0) +/* 012D74 70012174 8E280000 */ lw $t0, ($s1) +/* 012D78 70012178 24630038 */ addiu $v1, $v1, 0x38 +/* 012D7C 7001217C 0088082A */ slt $at, $a0, $t0 +/* 012D80 70012180 5420FFF9 */ bnezl $at, .L70012168 +/* 012D84 70012184 8E19006C */ lw $t9, 0x6c($s0) +.L70012188: +/* 012D88 70012188 AE000064 */ sw $zero, 0x64($s0) +/* 012D8C 7001218C AE000068 */ sw $zero, 0x68($s0) +/* 012D90 70012190 8E270004 */ lw $a3, 4($s1) +/* 012D94 70012194 AFA90010 */ sw $t1, 0x10($sp) +/* 012D98 70012198 8FA6002C */ lw $a2, 0x2c($sp) +/* 012D9C 7001219C 0C003AD4 */ jal alHeapDBAlloc +/* 012DA0 700121A0 00002025 */ move $a0, $zero +/* 012DA4 700121A4 26040048 */ addiu $a0, $s0, 0x48 +/* 012DA8 700121A8 00402825 */ move $a1, $v0 +/* 012DAC 700121AC 0C004C2B */ jal alEvtqNew +/* 012DB0 700121B0 8E260004 */ lw $a2, 4($s1) +/* 012DB4 700121B4 3C0A7001 */ lui $t2, %hi(ultra_70011A6C) # $t2, 0x7001 +/* 012DB8 700121B8 254A1A6C */ addiu $t2, %lo(ultra_70011A6C) # addiu $t2, $t2, 0x1a6c +/* 012DBC 700121BC AE000000 */ sw $zero, ($s0) +/* 012DC0 700121C0 AE0A0008 */ sw $t2, 8($s0) +/* 012DC4 700121C4 AE100004 */ sw $s0, 4($s0) +/* 012DC8 700121C8 3C048002 */ lui $a0, %hi(alGlobals) +/* 012DCC 700121CC 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 012DD0 700121D0 0C004C48 */ jal alSynAddPlayer +/* 012DD4 700121D4 02002825 */ move $a1, $s0 +/* 012DD8 700121D8 8FBF0024 */ lw $ra, 0x24($sp) +/* 012DDC 700121DC 8FB0001C */ lw $s0, 0x1c($sp) +/* 012DE0 700121E0 8FB10020 */ lw $s1, 0x20($sp) +/* 012DE4 700121E4 03E00008 */ jr $ra +/* 012DE8 700121E8 27BD0040 */ addiu $sp, $sp, 0x40 + + + +.section .rodata +glabel audio_related_jump_table_0 +.word .L70011620, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011280, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011678, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011750, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011988, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L700116DC, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L700119BC +glabel audio_related_jump_table_1 +.word .L70011AD0 +.word .L7001202C +.word .L70011E00 +.word .L7001202C +.word .L7001202C +.word .L70011BBC +.word .L70011C08 +.word .L70011E1C +.word .L7001202C +.word .L70011B9C +.word .L70011E3C +.word .L7001202C +.word .L70011FCC +.word .L70011FE8 +.word .L7001201C +.word .L70011EA0 +.word .L70011EC4 +.word .L70011F30 +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L70011E00 +.word .L70011C6C +.word .L70011D78 +glabel audio_related_jump_table_2 +.word .L70011B0C +.word .L7001202C +.word .L70011B34 +.word .L70011B60 +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L70011B8C +.word .L70011B8C +.word .L70011B8C +glabel F32_800296C4 + .float 500000.0 +.align 4 diff --git a/src/libultra/cspplay.s b/src/libultra/cspplay.s new file mode 100644 index 0000000..a1baa7a --- /dev/null +++ b/src/libultra/cspplay.s @@ -0,0 +1,22 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPPlay +/* 013940 70012D40 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013944 70012D44 AFBF0014 */ sw $ra, 0x14($sp) +/* 013948 70012D48 240E000F */ li $t6, 15 +/* 01394C 70012D4C A7AE0018 */ sh $t6, 0x18($sp) +/* 013950 70012D50 27A50018 */ addiu $a1, $sp, 0x18 +/* 013954 70012D54 24840048 */ addiu $a0, $a0, 0x48 +/* 013958 70012D58 0C004BBF */ jal alEvtqPostEvent +/* 01395C 70012D5C 00003025 */ move $a2, $zero +/* 013960 70012D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 013964 70012D64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013968 70012D68 03E00008 */ jr $ra +/* 01396C 70012D6C 00000000 */ nop diff --git a/src/libultra/cspsetseq.s b/src/libultra/cspsetseq.s new file mode 100644 index 0000000..d028e49 --- /dev/null +++ b/src/libultra/cspsetseq.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPSetSeq +/* 013900 70012D00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013904 70012D04 AFBF0014 */ sw $ra, 0x14($sp) +/* 013908 70012D08 240E000D */ li $t6, 13 +/* 01390C 70012D0C AFA5001C */ sw $a1, 0x1c($sp) +/* 013910 70012D10 A7AE0018 */ sh $t6, 0x18($sp) +/* 013914 70012D14 27A50018 */ addiu $a1, $sp, 0x18 +/* 013918 70012D18 24840048 */ addiu $a0, $a0, 0x48 +/* 01391C 70012D1C 0C004BBF */ jal alEvtqPostEvent +/* 013920 70012D20 00003025 */ move $a2, $zero +/* 013924 70012D24 8FBF0014 */ lw $ra, 0x14($sp) +/* 013928 70012D28 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01392C 70012D2C 03E00008 */ jr $ra +/* 013930 70012D30 00000000 */ nop diff --git a/src/libultra/cspsetvol.s b/src/libultra/cspsetvol.s new file mode 100644 index 0000000..b921c28 --- /dev/null +++ b/src/libultra/cspsetvol.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alCSPSetVol +/* 0139A0 70012DA0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0139A4 70012DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0139A8 70012DA8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0139AC 70012DAC 00A07025 */ move $t6, $a1 +/* 0139B0 70012DB0 240F000A */ li $t7, 10 +/* 0139B4 70012DB4 A7AF0018 */ sh $t7, 0x18($sp) +/* 0139B8 70012DB8 A7AE001C */ sh $t6, 0x1c($sp) +/* 0139BC 70012DBC 27A50018 */ addiu $a1, $sp, 0x18 +/* 0139C0 70012DC0 24840048 */ addiu $a0, $a0, 0x48 +/* 0139C4 70012DC4 0C004BBF */ jal alEvtqPostEvent +/* 0139C8 70012DC8 00003025 */ move $a2, $zero +/* 0139CC 70012DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0139D0 70012DD0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0139D4 70012DD4 03E00008 */ jr $ra +/* 0139D8 70012DD8 00000000 */ nop diff --git a/src/libultra/cspstop.s b/src/libultra/cspstop.s new file mode 100644 index 0000000..e3664ab --- /dev/null +++ b/src/libultra/cspstop.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alCSPStop +/* 013970 70012D70 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013974 70012D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 013978 70012D78 240E0011 */ li $t6, 17 +/* 01397C 70012D7C A7AE0018 */ sh $t6, 0x18($sp) +/* 013980 70012D80 27A50018 */ addiu $a1, $sp, 0x18 +/* 013984 70012D84 24840048 */ addiu $a0, $a0, 0x48 +/* 013988 70012D88 0C004BBF */ jal alEvtqPostEvent +/* 01398C 70012D8C 00003025 */ move $a2, $zero +/* 013990 70012D90 8FBF0014 */ lw $ra, 0x14($sp) +/* 013994 70012D94 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013998 70012D98 03E00008 */ jr $ra +/* 01399C 70012D9C 00000000 */ nop diff --git a/src/libultra/destroythread.s b/src/libultra/destroythread.s new file mode 100644 index 0000000..98d094b --- /dev/null +++ b/src/libultra/destroythread.s @@ -0,0 +1,84 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osDestroyThread +/* 01C760 7001BB60 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01C764 7001BB64 AFBF0024 */ sw $ra, 0x24($sp) +/* 01C768 7001BB68 AFA40038 */ sw $a0, 0x38($sp) +/* 01C76C 7001BB6C AFB20020 */ sw $s2, 0x20($sp) +/* 01C770 7001BB70 AFB1001C */ sw $s1, 0x1c($sp) +/* 01C774 7001BB74 0C00617C */ jal __osDisableInt +/* 01C778 7001BB78 AFB00018 */ sw $s0, 0x18($sp) +/* 01C77C 7001BB7C 8FAE0038 */ lw $t6, 0x38($sp) +/* 01C780 7001BB80 00408025 */ move $s0, $v0 +/* 01C784 7001BB84 15C00005 */ bnez $t6, .L7001BB9C +/* 01C788 7001BB88 00000000 */ nop +/* 01C78C 7001BB8C 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 01C790 7001BB90 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 01C794 7001BB94 10000009 */ b .L7001BBBC +/* 01C798 7001BB98 AFAF0038 */ sw $t7, 0x38($sp) +.L7001BB9C: +/* 01C79C 7001BB9C 8FB80038 */ lw $t8, 0x38($sp) +/* 01C7A0 7001BBA0 24010001 */ li $at, 1 +/* 01C7A4 7001BBA4 97190010 */ lhu $t9, 0x10($t8) +/* 01C7A8 7001BBA8 13210004 */ beq $t9, $at, .L7001BBBC +/* 01C7AC 7001BBAC 00000000 */ nop +/* 01C7B0 7001BBB0 8F040008 */ lw $a0, 8($t8) +/* 01C7B4 7001BBB4 0C0042A4 */ jal __osDequeueThread +/* 01C7B8 7001BBB8 03002825 */ move $a1, $t8 +.L7001BBBC: +/* 01C7BC 7001BBBC 3C088002 */ lui $t0, %hi(__osActiveQueue) +/* 01C7C0 7001BBC0 8D08772C */ lw $t0, %lo(__osActiveQueue)($t0) +/* 01C7C4 7001BBC4 8FA90038 */ lw $t1, 0x38($sp) +/* 01C7C8 7001BBC8 15090005 */ bne $t0, $t1, .L7001BBE0 +/* 01C7CC 7001BBCC 00000000 */ nop +/* 01C7D0 7001BBD0 8D0A000C */ lw $t2, 0xc($t0) +/* 01C7D4 7001BBD4 3C018002 */ lui $at, %hi(__osActiveQueue) +/* 01C7D8 7001BBD8 10000010 */ b .L7001BC1C +/* 01C7DC 7001BBDC AC2A772C */ sw $t2, %lo(__osActiveQueue)($at) +.L7001BBE0: +/* 01C7E0 7001BBE0 3C118002 */ lui $s1, %hi(__osActiveQueue) +/* 01C7E4 7001BBE4 8E31772C */ lw $s1, %lo(__osActiveQueue)($s1) +/* 01C7E8 7001BBE8 8E32000C */ lw $s2, 0xc($s1) +/* 01C7EC 7001BBEC 1240000B */ beqz $s2, .L7001BC1C +/* 01C7F0 7001BBF0 00000000 */ nop +.L7001BBF4: +/* 01C7F4 7001BBF4 8FAB0038 */ lw $t3, 0x38($sp) +/* 01C7F8 7001BBF8 164B0004 */ bne $s2, $t3, .L7001BC0C +/* 01C7FC 7001BBFC 00000000 */ nop +/* 01C800 7001BC00 8D6C000C */ lw $t4, 0xc($t3) +/* 01C804 7001BC04 10000005 */ b .L7001BC1C +/* 01C808 7001BC08 AE2C000C */ sw $t4, 0xc($s1) +.L7001BC0C: +/* 01C80C 7001BC0C 02408825 */ move $s1, $s2 +/* 01C810 7001BC10 8E32000C */ lw $s2, 0xc($s1) +/* 01C814 7001BC14 1640FFF7 */ bnez $s2, .L7001BBF4 +/* 01C818 7001BC18 00000000 */ nop +.L7001BC1C: +/* 01C81C 7001BC1C 3C0E8002 */ lui $t6, %hi(__osRunningThread) +/* 01C820 7001BC20 8DCE7730 */ lw $t6, %lo(__osRunningThread)($t6) +/* 01C824 7001BC24 8FAD0038 */ lw $t5, 0x38($sp) +/* 01C828 7001BC28 15AE0003 */ bne $t5, $t6, .L7001BC38 +/* 01C82C 7001BC2C 00000000 */ nop +/* 01C830 7001BC30 0C004241 */ jal __osDispatchThread +/* 01C834 7001BC34 00000000 */ nop +.L7001BC38: +/* 01C838 7001BC38 0C006184 */ jal __osRestoreInt +/* 01C83C 7001BC3C 02002025 */ move $a0, $s0 +/* 01C840 7001BC40 8FBF0024 */ lw $ra, 0x24($sp) +/* 01C844 7001BC44 8FB00018 */ lw $s0, 0x18($sp) +/* 01C848 7001BC48 8FB1001C */ lw $s1, 0x1c($sp) +/* 01C84C 7001BC4C 8FB20020 */ lw $s2, 0x20($sp) +/* 01C850 7001BC50 03E00008 */ jr $ra +/* 01C854 7001BC54 27BD0038 */ addiu $sp, $sp, 0x38 + diff --git a/src/libultra/devmgr.s b/src/libultra/devmgr.s new file mode 100644 index 0000000..07efeca --- /dev/null +++ b/src/libultra/devmgr.s @@ -0,0 +1,275 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osDevMgrMain +/* 01F210 7001E610 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01F214 7001E614 AFA40040 */ sw $a0, 0x40($sp) +/* 01F218 7001E618 8FAE0040 */ lw $t6, 0x40($sp) +/* 01F21C 7001E61C AFBF001C */ sw $ra, 0x1c($sp) +/* 01F220 7001E620 AFA00028 */ sw $zero, 0x28($sp) +/* 01F224 7001E624 AFA0003C */ sw $zero, 0x3c($sp) +/* 01F228 7001E628 AFA00030 */ sw $zero, 0x30($sp) +/* 01F22C 7001E62C AFAE002C */ sw $t6, 0x2c($sp) +.L7001E630: +/* 01F230 7001E630 8FAF002C */ lw $t7, 0x2c($sp) +/* 01F234 7001E634 27A5003C */ addiu $a1, $sp, 0x3c +/* 01F238 7001E638 24060001 */ li $a2, 1 +/* 01F23C 7001E63C 0C003774 */ jal osRecvMesg +/* 01F240 7001E640 8DE40008 */ lw $a0, 8($t7) +/* 01F244 7001E644 8FB8003C */ lw $t8, 0x3c($sp) +/* 01F248 7001E648 8F190014 */ lw $t9, 0x14($t8) +/* 01F24C 7001E64C 13200065 */ beqz $t9, .L7001E7E4 +/* 01F250 7001E650 00000000 */ nop +/* 01F254 7001E654 93280004 */ lbu $t0, 4($t9) +/* 01F258 7001E658 24010002 */ li $at, 2 +/* 01F25C 7001E65C 15010061 */ bne $t0, $at, .L7001E7E4 +/* 01F260 7001E660 00000000 */ nop +/* 01F264 7001E664 8F290014 */ lw $t1, 0x14($t9) +/* 01F268 7001E668 11200003 */ beqz $t1, .L7001E678 +/* 01F26C 7001E66C 24010001 */ li $at, 1 +/* 01F270 7001E670 1521005C */ bne $t1, $at, .L7001E7E4 +/* 01F274 7001E674 00000000 */ nop +.L7001E678: +/* 01F278 7001E678 8FAA003C */ lw $t2, 0x3c($sp) +/* 01F27C 7001E67C 2408FFFF */ li $t0, -1 +/* 01F280 7001E680 24010003 */ li $at, 3 +/* 01F284 7001E684 8D4B0014 */ lw $t3, 0x14($t2) +/* 01F288 7001E688 256C0014 */ addiu $t4, $t3, 0x14 +/* 01F28C 7001E68C AFAC0020 */ sw $t4, 0x20($sp) +/* 01F290 7001E690 958D0006 */ lhu $t5, 6($t4) +/* 01F294 7001E694 000D70C0 */ sll $t6, $t5, 3 +/* 01F298 7001E698 01CD7021 */ addu $t6, $t6, $t5 +/* 01F29C 7001E69C 000E7080 */ sll $t6, $t6, 2 +/* 01F2A0 7001E6A0 018E7821 */ addu $t7, $t4, $t6 +/* 01F2A4 7001E6A4 25F80018 */ addiu $t8, $t7, 0x18 +/* 01F2A8 7001E6A8 AFB80024 */ sw $t8, 0x24($sp) +/* 01F2AC 7001E6AC AD880008 */ sw $t0, 8($t4) +/* 01F2B0 7001E6B0 8FB90020 */ lw $t9, 0x20($sp) +/* 01F2B4 7001E6B4 97290004 */ lhu $t1, 4($t9) +/* 01F2B8 7001E6B8 11210006 */ beq $t1, $at, .L7001E6D4 +/* 01F2BC 7001E6BC 00000000 */ nop +/* 01F2C0 7001E6C0 8FAA0024 */ lw $t2, 0x24($sp) +/* 01F2C4 7001E6C4 8D4B0004 */ lw $t3, 4($t2) +/* 01F2C8 7001E6C8 8D4D000C */ lw $t5, 0xc($t2) +/* 01F2CC 7001E6CC 016D7023 */ subu $t6, $t3, $t5 +/* 01F2D0 7001E6D0 AD4E0004 */ sw $t6, 4($t2) +.L7001E6D4: +/* 01F2D4 7001E6D4 8FAF0020 */ lw $t7, 0x20($sp) +/* 01F2D8 7001E6D8 24010002 */ li $at, 2 +/* 01F2DC 7001E6DC 95F80004 */ lhu $t8, 4($t7) +/* 01F2E0 7001E6E0 17010009 */ bne $t8, $at, .L7001E708 +/* 01F2E4 7001E6E4 00000000 */ nop +/* 01F2E8 7001E6E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 01F2EC 7001E6EC 8D0C0014 */ lw $t4, 0x14($t0) +/* 01F2F0 7001E6F0 8D990014 */ lw $t9, 0x14($t4) +/* 01F2F4 7001E6F4 17200004 */ bnez $t9, .L7001E708 +/* 01F2F8 7001E6F8 00000000 */ nop +/* 01F2FC 7001E6FC 24090001 */ li $t1, 1 +/* 01F300 7001E700 10000002 */ b .L7001E70C +/* 01F304 7001E704 AFA90028 */ sw $t1, 0x28($sp) +.L7001E708: +/* 01F308 7001E708 AFA00028 */ sw $zero, 0x28($sp) +.L7001E70C: +/* 01F30C 7001E70C 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F310 7001E710 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F314 7001E714 24060001 */ li $a2, 1 +/* 01F318 7001E718 0C003774 */ jal osRecvMesg +/* 01F31C 7001E71C 8D640010 */ lw $a0, 0x10($t3) +/* 01F320 7001E720 3C040010 */ lui $a0, (0x00100401 >> 16) # lui $a0, 0x10 +/* 01F324 7001E724 0C008338 */ jal __osResetGlobalIntMask +/* 01F328 7001E728 34840401 */ ori $a0, (0x00100401 & 0xFFFF) # ori $a0, $a0, 0x401 +/* 01F32C 7001E72C 8FAE0020 */ lw $t6, 0x20($sp) +/* 01F330 7001E730 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F334 7001E734 3C018000 */ lui $at, 0x8000 +/* 01F338 7001E738 8DC60010 */ lw $a2, 0x10($t6) +/* 01F33C 7001E73C 3C050500 */ lui $a1, (0x05000510 >> 16) # lui $a1, 0x500 +/* 01F340 7001E740 34A50510 */ ori $a1, (0x05000510 & 0xFFFF) # ori $a1, $a1, 0x510 +/* 01F344 7001E744 00C15025 */ or $t2, $a2, $at +/* 01F348 7001E748 01403025 */ move $a2, $t2 +/* 01F34C 7001E74C 0C008350 */ jal osEPiRawWriteIo +/* 01F350 7001E750 8DA40014 */ lw $a0, 0x14($t5) +.L7001E754: +/* 01F354 7001E754 8FAF002C */ lw $t7, 0x2c($sp) +/* 01F358 7001E758 27A50038 */ addiu $a1, $sp, 0x38 +/* 01F35C 7001E75C 24060001 */ li $a2, 1 +/* 01F360 7001E760 0C003774 */ jal osRecvMesg +/* 01F364 7001E764 8DE4000C */ lw $a0, 0xc($t7) +/* 01F368 7001E768 8FB8003C */ lw $t8, 0x3c($sp) +/* 01F36C 7001E76C 00003025 */ move $a2, $zero +/* 01F370 7001E770 8F040004 */ lw $a0, 4($t8) +/* 01F374 7001E774 0C0037C4 */ jal osSendMesg +/* 01F378 7001E778 03002825 */ move $a1, $t8 +/* 01F37C 7001E77C 8FA80028 */ lw $t0, 0x28($sp) +/* 01F380 7001E780 24010001 */ li $at, 1 +/* 01F384 7001E784 15010008 */ bne $t0, $at, .L7001E7A8 +/* 01F388 7001E788 00000000 */ nop +/* 01F38C 7001E78C 8FAC003C */ lw $t4, 0x3c($sp) +/* 01F390 7001E790 8D990014 */ lw $t9, 0x14($t4) +/* 01F394 7001E794 8F29002C */ lw $t1, 0x2c($t9) +/* 01F398 7001E798 15200003 */ bnez $t1, .L7001E7A8 +/* 01F39C 7001E79C 00000000 */ nop +/* 01F3A0 7001E7A0 1000FFEC */ b .L7001E754 +/* 01F3A4 7001E7A4 AFA00028 */ sw $zero, 0x28($sp) +.L7001E7A8: +/* 01F3A8 7001E7A8 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F3AC 7001E7AC 00002825 */ move $a1, $zero +/* 01F3B0 7001E7B0 00003025 */ move $a2, $zero +/* 01F3B4 7001E7B4 0C0037C4 */ jal osSendMesg +/* 01F3B8 7001E7B8 8D640010 */ lw $a0, 0x10($t3) +/* 01F3BC 7001E7BC 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F3C0 7001E7C0 24010001 */ li $at, 1 +/* 01F3C4 7001E7C4 8DAE0014 */ lw $t6, 0x14($t5) +/* 01F3C8 7001E7C8 95CA001A */ lhu $t2, 0x1a($t6) +/* 01F3CC 7001E7CC 1541FF98 */ bne $t2, $at, .L7001E630 +/* 01F3D0 7001E7D0 00000000 */ nop +/* 01F3D4 7001E7D4 0C0042B4 */ jal osYieldThread +/* 01F3D8 7001E7D8 00000000 */ nop +/* 01F3DC 7001E7DC 1000FF94 */ b .L7001E630 +/* 01F3E0 7001E7E0 00000000 */ nop +.L7001E7E4: +/* 01F3E4 7001E7E4 8FAF003C */ lw $t7, 0x3c($sp) +/* 01F3E8 7001E7E8 95F80000 */ lhu $t8, ($t7) +/* 01F3EC 7001E7EC 2708FFF6 */ addiu $t0, $t8, -0xa +/* 01F3F0 7001E7F0 2D010007 */ sltiu $at, $t0, 7 +/* 01F3F4 7001E7F4 10200052 */ beqz $at, .L7001E940 +/* 01F3F8 7001E7F8 00000000 */ nop +/* 01F3FC 7001E7FC 00084080 */ sll $t0, $t0, 2 +/* 01F400 7001E800 3C018003 */ lui $at, %hi(jpt_80029CF0) +/* 01F404 7001E804 00280821 */ addu $at, $at, $t0 +/* 01F408 7001E808 8C289CF0 */ lw $t0, %lo(jpt_80029CF0)($at) +/* 01F40C 7001E80C 01000008 */ jr $t0 +/* 01F410 7001E810 00000000 */ nop +.L7001E814: +/* 01F414 7001E814 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F418 7001E818 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F41C 7001E81C 24060001 */ li $a2, 1 +/* 01F420 7001E820 0C003774 */ jal osRecvMesg +/* 01F424 7001E824 8D840010 */ lw $a0, 0x10($t4) +/* 01F428 7001E828 8FB9003C */ lw $t9, 0x3c($sp) +/* 01F42C 7001E82C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F430 7001E830 00002025 */ move $a0, $zero +/* 01F434 7001E834 8F25000C */ lw $a1, 0xc($t9) +/* 01F438 7001E838 8F260008 */ lw $a2, 8($t9) +/* 01F43C 7001E83C 8F270010 */ lw $a3, 0x10($t9) +/* 01F440 7001E840 8D390014 */ lw $t9, 0x14($t1) +/* 01F444 7001E844 0320F809 */ jalr $t9 +/* 01F448 7001E848 00000000 */ nop +/* 01F44C 7001E84C 1000003E */ b .L7001E948 +/* 01F450 7001E850 AFA20030 */ sw $v0, 0x30($sp) +.L7001E854: +/* 01F454 7001E854 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F458 7001E858 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F45C 7001E85C 24060001 */ li $a2, 1 +/* 01F460 7001E860 0C003774 */ jal osRecvMesg +/* 01F464 7001E864 8D640010 */ lw $a0, 0x10($t3) +/* 01F468 7001E868 8FAE002C */ lw $t6, 0x2c($sp) +/* 01F46C 7001E86C 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F470 7001E870 24040001 */ li $a0, 1 +/* 01F474 7001E874 8DD90014 */ lw $t9, 0x14($t6) +/* 01F478 7001E878 8DA5000C */ lw $a1, 0xc($t5) +/* 01F47C 7001E87C 8DA60008 */ lw $a2, 8($t5) +/* 01F480 7001E880 0320F809 */ jalr $t9 +/* 01F484 7001E884 8DA70010 */ lw $a3, 0x10($t5) +/* 01F488 7001E888 1000002F */ b .L7001E948 +/* 01F48C 7001E88C AFA20030 */ sw $v0, 0x30($sp) +.L7001E890: +/* 01F490 7001E890 8FAA002C */ lw $t2, 0x2c($sp) +/* 01F494 7001E894 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F498 7001E898 24060001 */ li $a2, 1 +/* 01F49C 7001E89C 0C003774 */ jal osRecvMesg +/* 01F4A0 7001E8A0 8D440010 */ lw $a0, 0x10($t2) +/* 01F4A4 7001E8A4 8FAF003C */ lw $t7, 0x3c($sp) +/* 01F4A8 7001E8A8 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F4AC 7001E8AC 00002825 */ move $a1, $zero +/* 01F4B0 7001E8B0 8DF80010 */ lw $t8, 0x10($t7) +/* 01F4B4 7001E8B4 8DE40014 */ lw $a0, 0x14($t7) +/* 01F4B8 7001E8B8 8DE6000C */ lw $a2, 0xc($t7) +/* 01F4BC 7001E8BC 8DE70008 */ lw $a3, 8($t7) +/* 01F4C0 7001E8C0 AFB80010 */ sw $t8, 0x10($sp) +/* 01F4C4 7001E8C4 8D190018 */ lw $t9, 0x18($t0) +/* 01F4C8 7001E8C8 0320F809 */ jalr $t9 +/* 01F4CC 7001E8CC 00000000 */ nop +/* 01F4D0 7001E8D0 1000001D */ b .L7001E948 +/* 01F4D4 7001E8D4 AFA20030 */ sw $v0, 0x30($sp) +.L7001E8D8: +/* 01F4D8 7001E8D8 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F4DC 7001E8DC 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F4E0 7001E8E0 24060001 */ li $a2, 1 +/* 01F4E4 7001E8E4 0C003774 */ jal osRecvMesg +/* 01F4E8 7001E8E8 8D840010 */ lw $a0, 0x10($t4) +/* 01F4EC 7001E8EC 8FA9003C */ lw $t1, 0x3c($sp) +/* 01F4F0 7001E8F0 8FAD002C */ lw $t5, 0x2c($sp) +/* 01F4F4 7001E8F4 24050001 */ li $a1, 1 +/* 01F4F8 7001E8F8 8D2B0010 */ lw $t3, 0x10($t1) +/* 01F4FC 7001E8FC 8D240014 */ lw $a0, 0x14($t1) +/* 01F500 7001E900 8D26000C */ lw $a2, 0xc($t1) +/* 01F504 7001E904 8D270008 */ lw $a3, 8($t1) +/* 01F508 7001E908 AFAB0010 */ sw $t3, 0x10($sp) +/* 01F50C 7001E90C 8DB90018 */ lw $t9, 0x18($t5) +/* 01F510 7001E910 0320F809 */ jalr $t9 +/* 01F514 7001E914 00000000 */ nop +/* 01F518 7001E918 1000000B */ b .L7001E948 +/* 01F51C 7001E91C AFA20030 */ sw $v0, 0x30($sp) +.L7001E920: +/* 01F520 7001E920 8FAE003C */ lw $t6, 0x3c($sp) +/* 01F524 7001E924 00003025 */ move $a2, $zero +/* 01F528 7001E928 8DC40004 */ lw $a0, 4($t6) +/* 01F52C 7001E92C 0C0037C4 */ jal osSendMesg +/* 01F530 7001E930 01C02825 */ move $a1, $t6 +/* 01F534 7001E934 240AFFFF */ li $t2, -1 +/* 01F538 7001E938 10000003 */ b .L7001E948 +/* 01F53C 7001E93C AFAA0030 */ sw $t2, 0x30($sp) +.L7001E940: +/* 01F540 7001E940 240FFFFF */ li $t7, -1 +/* 01F544 7001E944 AFAF0030 */ sw $t7, 0x30($sp) +.L7001E948: +/* 01F548 7001E948 8FB80030 */ lw $t8, 0x30($sp) +/* 01F54C 7001E94C 1700FF38 */ bnez $t8, .L7001E630 +/* 01F550 7001E950 00000000 */ nop +/* 01F554 7001E954 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F558 7001E958 27A50038 */ addiu $a1, $sp, 0x38 +/* 01F55C 7001E95C 24060001 */ li $a2, 1 +/* 01F560 7001E960 0C003774 */ jal osRecvMesg +/* 01F564 7001E964 8D04000C */ lw $a0, 0xc($t0) +/* 01F568 7001E968 8FAC003C */ lw $t4, 0x3c($sp) +/* 01F56C 7001E96C 00003025 */ move $a2, $zero +/* 01F570 7001E970 8D840004 */ lw $a0, 4($t4) +/* 01F574 7001E974 0C0037C4 */ jal osSendMesg +/* 01F578 7001E978 01802825 */ move $a1, $t4 +/* 01F57C 7001E97C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F580 7001E980 00002825 */ move $a1, $zero +/* 01F584 7001E984 00003025 */ move $a2, $zero +/* 01F588 7001E988 0C0037C4 */ jal osSendMesg +/* 01F58C 7001E98C 8D240010 */ lw $a0, 0x10($t1) +/* 01F590 7001E990 1000FF27 */ b .L7001E630 +/* 01F594 7001E994 00000000 */ nop +/* 01F598 7001E998 00000000 */ nop +/* 01F59C 7001E99C 00000000 */ nop +/* 01F5A0 7001E9A0 00000000 */ nop +/* 01F5A4 7001E9A4 00000000 */ nop +/* 01F5A8 7001E9A8 00000000 */ nop +/* 01F5AC 7001E9AC 00000000 */ nop +/* 01F5B0 7001E9B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 01F5B4 7001E9B4 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01F5B8 7001E9B8 03E00008 */ jr $ra +/* 01F5BC 7001E9BC 00000000 */ nop +.section .rodata +glabel jpt_80029CF0 + .word .L7001E920 + .word .L7001E814 + .word .L7001E854 + .word .L7001E940 + .word .L7001E940 + .word .L7001E890 + .word .L7001E8D8 +.align 4 diff --git a/src/libultra/dp.s b/src/libultra/dp.s new file mode 100644 index 0000000..547dab2 --- /dev/null +++ b/src/libultra/dp.s @@ -0,0 +1,29 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .text +glabel __osDpDeviceBusy +/* 019BF0 70018FF0 3C0EA410 */ lui $t6, %hi(DPC_STATUS_REG) # $t6, 0xa410 +/* 019BF4 70018FF4 8DC4000C */ lw $a0, %lo(DPC_STATUS_REG)($t6) +/* 019BF8 70018FF8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019BFC 70018FFC 308F0100 */ andi $t7, $a0, 0x100 +/* 019C00 70019000 11E00003 */ beqz $t7, .L70019010 +/* 019C04 70019004 00000000 */ nop +/* 019C08 70019008 10000002 */ b .L70019014 +/* 019C0C 7001900C 24020001 */ li $v0, 1 +.L70019010: +/* 019C10 70019010 00001025 */ move $v0, $zero +.L70019014: +/* 019C14 70019014 03E00008 */ jr $ra +/* 019C18 70019018 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/dpctr.s b/src/libultra/dpctr.s new file mode 100644 index 0000000..577721d --- /dev/null +++ b/src/libultra/dpctr.s @@ -0,0 +1,29 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osDpGetCounters +/* 00EFC0 7000E3C0 3C0EA410 */ lui $t6, %hi(DPC_CLOCK_REG) # $t6, 0xa410 +/* 00EFC4 7000E3C4 8DCF0010 */ lw $t7, %lo(DPC_CLOCK_REG)($t6) +/* 00EFC8 7000E3C8 3C18A410 */ lui $t8, %hi(DPC_BUFBUSY_REG) # $t8, 0xa410 +/* 00EFCC 7000E3CC 3C08A410 */ lui $t0, %hi(DPC_PIPEBUSY_REG) # $t0, 0xa410 +/* 00EFD0 7000E3D0 AC8F0000 */ sw $t7, ($a0) +/* 00EFD4 7000E3D4 8F190014 */ lw $t9, %lo(DPC_BUFBUSY_REG)($t8) +/* 00EFD8 7000E3D8 24840004 */ addiu $a0, $a0, 4 +/* 00EFDC 7000E3DC 3C0AA410 */ lui $t2, %hi(DPC_TMEM_REG) # $t2, 0xa410 +/* 00EFE0 7000E3E0 AC990000 */ sw $t9, ($a0) +/* 00EFE4 7000E3E4 8D090018 */ lw $t1, %lo(DPC_PIPEBUSY_REG)($t0) +/* 00EFE8 7000E3E8 24840004 */ addiu $a0, $a0, 4 +/* 00EFEC 7000E3EC 24840004 */ addiu $a0, $a0, 4 +/* 00EFF0 7000E3F0 AC89FFFC */ sw $t1, -4($a0) +/* 00EFF4 7000E3F4 8D4B001C */ lw $t3, %lo(DPC_TMEM_REG)($t2) +/* 00EFF8 7000E3F8 24840004 */ addiu $a0, $a0, 4 +/* 00EFFC 7000E3FC 03E00008 */ jr $ra +/* 00F000 7000E400 AC8BFFFC */ sw $t3, -4($a0) + diff --git a/src/libultra/dpsetnextbuf.s b/src/libultra/dpsetnextbuf.s new file mode 100644 index 0000000..56e2b62 --- /dev/null +++ b/src/libultra/dpsetnextbuf.s @@ -0,0 +1,55 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osDpSetNextBuffer +/* 00F3B0 7000E7B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F3B4 7000E7B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F3B8 7000E7B8 AFA40028 */ sw $a0, 0x28($sp) +/* 00F3BC 7000E7BC AFA60030 */ sw $a2, 0x30($sp) +/* 00F3C0 7000E7C0 AFA70034 */ sw $a3, 0x34($sp) +/* 00F3C4 7000E7C4 0C0063FC */ jal __osDpDeviceBusy +/* 00F3C8 7000E7C8 AFB00018 */ sw $s0, 0x18($sp) +/* 00F3CC 7000E7CC 10400003 */ beqz $v0, .L7000E7DC +/* 00F3D0 7000E7D0 00000000 */ nop +/* 00F3D4 7000E7D4 1000001B */ b .L7000E844 +/* 00F3D8 7000E7D8 2402FFFF */ li $v0, -1 +.L7000E7DC: +/* 00F3DC 7000E7DC 240E0001 */ li $t6, 1 +/* 00F3E0 7000E7E0 3C0FA410 */ lui $t7, %hi(DPC_STATUS_REG) # $t7, 0xa410 +/* 00F3E4 7000E7E4 ADEE000C */ sw $t6, %lo(DPC_STATUS_REG)($t7) +.L7000E7E8: +/* 00F3E8 7000E7E8 3C18A410 */ lui $t8, %hi(DPC_STATUS_REG) # $t8, 0xa410 +/* 00F3EC 7000E7EC 8F10000C */ lw $s0, %lo(DPC_STATUS_REG)($t8) +/* 00F3F0 7000E7F0 32190001 */ andi $t9, $s0, 1 +/* 00F3F4 7000E7F4 1720FFFC */ bnez $t9, .L7000E7E8 +/* 00F3F8 7000E7F8 00000000 */ nop +/* 00F3FC 7000E7FC 0C003A2C */ jal osVirtualToPhysical +/* 00F400 7000E800 8FA40028 */ lw $a0, 0x28($sp) +/* 00F404 7000E804 3C08A410 */ lui $t0, 0xa410 +/* 00F408 7000E808 AD020000 */ sw $v0, ($t0) +/* 00F40C 7000E80C 0C003A2C */ jal osVirtualToPhysical +/* 00F410 7000E810 8FA40028 */ lw $a0, 0x28($sp) +/* 00F414 7000E814 8FAD0034 */ lw $t5, 0x34($sp) +/* 00F418 7000E818 00405825 */ move $t3, $v0 +/* 00F41C 7000E81C 8FAC0030 */ lw $t4, 0x30($sp) +/* 00F420 7000E820 016D7821 */ addu $t7, $t3, $t5 +/* 00F424 7000E824 240A0000 */ li $t2, 0 +/* 00F428 7000E828 01ED082B */ sltu $at, $t7, $t5 +/* 00F42C 7000E82C 002A7021 */ addu $t6, $at, $t2 +/* 00F430 7000E830 01E04825 */ move $t1, $t7 +/* 00F434 7000E834 3C18A410 */ lui $t8, %hi(DPC_END_REG) # $t8, 0xa410 +/* 00F438 7000E838 AF090004 */ sw $t1, %lo(DPC_END_REG)($t8) +/* 00F43C 7000E83C 00001025 */ move $v0, $zero +/* 00F440 7000E840 01CC7021 */ addu $t6, $t6, $t4 +.L7000E844: +/* 00F444 7000E844 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F448 7000E848 8FB00018 */ lw $s0, 0x18($sp) +/* 00F44C 7000E84C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00F450 7000E850 03E00008 */ jr $ra +/* 00F454 7000E854 00000000 */ nop diff --git a/src/libultra/dpsetstat.s b/src/libultra/dpsetstat.s new file mode 100644 index 0000000..d898e0d --- /dev/null +++ b/src/libultra/dpsetstat.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osDpSetStatus +/* 00F0E0 7000E4E0 3C0EA410 */ lui $t6, 0xa410 +/* 00F0E4 7000E4E4 03E00008 */ jr $ra +/* 00F0E8 7000E4E8 ADC4000C */ sw $a0, 0xc($t6) diff --git a/src/libultra/drvrNew.s b/src/libultra/drvrNew.s new file mode 100644 index 0000000..ccf7724 --- /dev/null +++ b/src/libultra/drvrNew.s @@ -0,0 +1,571 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSaveNew +/* 019D20 70019120 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019D24 70019124 AFBF0014 */ sw $ra, 0x14($sp) +/* 019D28 70019128 3C057002 */ lui $a1, %hi(alSavePull) # $a1, 0x7002 +/* 019D2C 7001912C 3C067002 */ lui $a2, %hi(alSaveParam) # $a2, 0x7002 +/* 019D30 70019130 24C6B5F0 */ addiu $a2, %lo(alSaveParam) # addiu $a2, $a2, -0x4a10 +/* 019D34 70019134 24A5B624 */ addiu $a1, %lo(alSavePull) # addiu $a1, $a1, -0x49dc +/* 019D38 70019138 AFA40018 */ sw $a0, 0x18($sp) +/* 019D3C 7001913C 0C007E3C */ jal alFilterNew +/* 019D40 70019140 24070003 */ li $a3, 3 +/* 019D44 70019144 8FA40018 */ lw $a0, 0x18($sp) +/* 019D48 70019148 240E0001 */ li $t6, 1 +/* 019D4C 7001914C AC800014 */ sw $zero, 0x14($a0) +/* 019D50 70019150 AC8E0018 */ sw $t6, 0x18($a0) +/* 019D54 70019154 8FBF0014 */ lw $ra, 0x14($sp) +/* 019D58 70019158 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019D5C 7001915C 03E00008 */ jr $ra +/* 019D60 70019160 00000000 */ nop + +glabel alMainBusNew +/* 019D64 70019164 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019D68 70019168 AFA5001C */ sw $a1, 0x1c($sp) +/* 019D6C 7001916C AFA60020 */ sw $a2, 0x20($sp) +/* 019D70 70019170 AFBF0014 */ sw $ra, 0x14($sp) +/* 019D74 70019174 3C067002 */ lui $a2, %hi(alMainBusParam) # $a2, 0x7002 +/* 019D78 70019178 3C057002 */ lui $a1, %hi(alMainBusPull) # $a1, 0x7002 +/* 019D7C 7001917C 24A59990 */ addiu $a1, %lo(alMainBusPull) # addiu $a1, $a1, -0x6670 +/* 019D80 70019180 24C69960 */ addiu $a2, %lo(alMainBusParam) # addiu $a2, $a2, -0x66a0 +/* 019D84 70019184 AFA40018 */ sw $a0, 0x18($sp) +/* 019D88 70019188 0C007E3C */ jal alFilterNew +/* 019D8C 7001918C 24070007 */ li $a3, 7 +/* 019D90 70019190 8FA40018 */ lw $a0, 0x18($sp) +/* 019D94 70019194 AC800014 */ sw $zero, 0x14($a0) +/* 019D98 70019198 8FAE0020 */ lw $t6, 0x20($sp) +/* 019D9C 7001919C AC8E0018 */ sw $t6, 0x18($a0) +/* 019DA0 700191A0 8FAF001C */ lw $t7, 0x1c($sp) +/* 019DA4 700191A4 AC8F001C */ sw $t7, 0x1c($a0) +/* 019DA8 700191A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 019DAC 700191AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019DB0 700191B0 03E00008 */ jr $ra +/* 019DB4 700191B4 00000000 */ nop + +glabel alAuxBusNew +/* 019DB8 700191B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019DBC 700191BC AFA5001C */ sw $a1, 0x1c($sp) +/* 019DC0 700191C0 AFA60020 */ sw $a2, 0x20($sp) +/* 019DC4 700191C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 019DC8 700191C8 3C067002 */ lui $a2, %hi(alAuxBusParam) # $a2, 0x7002 +/* 019DCC 700191CC 3C057002 */ lui $a1, %hi(alAuxBusPull) # $a1, 0x7002 +/* 019DD0 700191D0 24A5B510 */ addiu $a1, %lo(alAuxBusPull) # addiu $a1, $a1, -0x4af0 +/* 019DD4 700191D4 24C6B4E0 */ addiu $a2, %lo(alAuxBusParam) # addiu $a2, $a2, -0x4b20 +/* 019DD8 700191D8 AFA40018 */ sw $a0, 0x18($sp) +/* 019DDC 700191DC 0C007E3C */ jal alFilterNew +/* 019DE0 700191E0 24070006 */ li $a3, 6 +/* 019DE4 700191E4 8FA40018 */ lw $a0, 0x18($sp) +/* 019DE8 700191E8 AC800014 */ sw $zero, 0x14($a0) +/* 019DEC 700191EC 8FAE0020 */ lw $t6, 0x20($sp) +/* 019DF0 700191F0 AC8E0018 */ sw $t6, 0x18($a0) +/* 019DF4 700191F4 8FAF001C */ lw $t7, 0x1c($sp) +/* 019DF8 700191F8 AC8F001C */ sw $t7, 0x1c($a0) +/* 019DFC 700191FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 019E00 70019200 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019E04 70019204 03E00008 */ jr $ra +/* 019E08 70019208 00000000 */ nop + +glabel alResampleNew +/* 019E0C 7001920C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019E10 70019210 AFA50024 */ sw $a1, 0x24($sp) +/* 019E14 70019214 AFBF001C */ sw $ra, 0x1c($sp) +/* 019E18 70019218 3C057002 */ lui $a1, %hi(alResamplePull) # $a1, 0x7002 +/* 019E1C 7001921C 3C067002 */ lui $a2, %hi(alResampleParam) # $a2, 0x7002 +/* 019E20 70019220 24C6A600 */ addiu $a2, %lo(alResampleParam) # addiu $a2, $a2, -0x5a00 +/* 019E24 70019224 24A5A6EC */ addiu $a1, %lo(alResamplePull) # addiu $a1, $a1, -0x5914 +/* 019E28 70019228 AFA40020 */ sw $a0, 0x20($sp) +/* 019E2C 7001922C 0C007E3C */ jal alFilterNew +/* 019E30 70019230 24070001 */ li $a3, 1 +/* 019E34 70019234 240E0020 */ li $t6, 32 +/* 019E38 70019238 AFAE0010 */ sw $t6, 0x10($sp) +/* 019E3C 7001923C 00002025 */ move $a0, $zero +/* 019E40 70019240 00002825 */ move $a1, $zero +/* 019E44 70019244 8FA60024 */ lw $a2, 0x24($sp) +/* 019E48 70019248 0C003AD4 */ jal alHeapDBAlloc +/* 019E4C 7001924C 24070001 */ li $a3, 1 +/* 019E50 70019250 8FA80020 */ lw $t0, 0x20($sp) +/* 019E54 70019254 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 019E58 70019258 44802000 */ mtc1 $zero, $f4 +/* 019E5C 7001925C 44813000 */ mtc1 $at, $f6 +/* 019E60 70019260 240F0001 */ li $t7, 1 +/* 019E64 70019264 AD020014 */ sw $v0, 0x14($t0) +/* 019E68 70019268 AD0F0024 */ sw $t7, 0x24($t0) +/* 019E6C 7001926C AD000030 */ sw $zero, 0x30($t0) +/* 019E70 70019270 AD00001C */ sw $zero, 0x1c($t0) +/* 019E74 70019274 AD000028 */ sw $zero, 0x28($t0) +/* 019E78 70019278 AD00002C */ sw $zero, 0x2c($t0) +/* 019E7C 7001927C E5040020 */ swc1 $f4, 0x20($t0) +/* 019E80 70019280 E5060018 */ swc1 $f6, 0x18($t0) +/* 019E84 70019284 8FBF001C */ lw $ra, 0x1c($sp) +/* 019E88 70019288 27BD0020 */ addiu $sp, $sp, 0x20 +/* 019E8C 7001928C 03E00008 */ jr $ra +/* 019E90 70019290 00000000 */ nop + +glabel alLoadNew +/* 019E94 70019294 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 019E98 70019298 AFA5002C */ sw $a1, 0x2c($sp) +/* 019E9C 7001929C AFA60030 */ sw $a2, 0x30($sp) +/* 019EA0 700192A0 AFBF0024 */ sw $ra, 0x24($sp) +/* 019EA4 700192A4 AFB00020 */ sw $s0, 0x20($sp) +/* 019EA8 700192A8 3C067002 */ lui $a2, %hi(alLoadParam) # $a2, 0x7002 +/* 019EAC 700192AC 3C057002 */ lui $a1, %hi(alAdpcmPull) # $a1, 0x7002 +/* 019EB0 700192B0 00808025 */ move $s0, $a0 +/* 019EB4 700192B4 24A5A15C */ addiu $a1, %lo(alAdpcmPull) # addiu $a1, $a1, -0x5ea4 +/* 019EB8 700192B8 24C69AB0 */ addiu $a2, %lo(alLoadParam) # addiu $a2, $a2, -0x6550 +/* 019EBC 700192BC 0C007E3C */ jal alFilterNew +/* 019EC0 700192C0 00003825 */ move $a3, $zero +/* 019EC4 700192C4 240E0020 */ li $t6, 32 +/* 019EC8 700192C8 AFAE0010 */ sw $t6, 0x10($sp) +/* 019ECC 700192CC 00002025 */ move $a0, $zero +/* 019ED0 700192D0 00002825 */ move $a1, $zero +/* 019ED4 700192D4 8FA60030 */ lw $a2, 0x30($sp) +/* 019ED8 700192D8 0C003AD4 */ jal alHeapDBAlloc +/* 019EDC 700192DC 24070001 */ li $a3, 1 +/* 019EE0 700192E0 AE020014 */ sw $v0, 0x14($s0) +/* 019EE4 700192E4 240F0020 */ li $t7, 32 +/* 019EE8 700192E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 019EEC 700192EC 8FA60030 */ lw $a2, 0x30($sp) +/* 019EF0 700192F0 00002025 */ move $a0, $zero +/* 019EF4 700192F4 00002825 */ move $a1, $zero +/* 019EF8 700192F8 0C003AD4 */ jal alHeapDBAlloc +/* 019EFC 700192FC 24070001 */ li $a3, 1 +/* 019F00 70019300 AE020018 */ sw $v0, 0x18($s0) +/* 019F04 70019304 8FB9002C */ lw $t9, 0x2c($sp) +/* 019F08 70019308 26040034 */ addiu $a0, $s0, 0x34 +/* 019F0C 7001930C 0320F809 */ jalr $t9 +/* 019F10 70019310 00000000 */ nop +/* 019F14 70019314 24180001 */ li $t8, 1 +/* 019F18 70019318 AE020030 */ sw $v0, 0x30($s0) +/* 019F1C 7001931C AE00003C */ sw $zero, 0x3c($s0) +/* 019F20 70019320 AE180040 */ sw $t8, 0x40($s0) +/* 019F24 70019324 AE000044 */ sw $zero, 0x44($s0) +/* 019F28 70019328 8FBF0024 */ lw $ra, 0x24($sp) +/* 019F2C 7001932C 8FB00020 */ lw $s0, 0x20($sp) +/* 019F30 70019330 27BD0028 */ addiu $sp, $sp, 0x28 +/* 019F34 70019334 03E00008 */ jr $ra +/* 019F38 70019338 00000000 */ nop + +glabel alEnvmixerNew +/* 019F3C 7001933C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019F40 70019340 AFA50024 */ sw $a1, 0x24($sp) +/* 019F44 70019344 AFBF001C */ sw $ra, 0x1c($sp) +/* 019F48 70019348 3C057002 */ lui $a1, %hi(alEnvmixerPull) # $a1, 0x7002 +/* 019F4C 7001934C 3C067002 */ lui $a2, %hi(alEnvmixerParam) # $a2, 0x7002 +/* 019F50 70019350 24C6AA14 */ addiu $a2, %lo(alEnvmixerParam) # addiu $a2, $a2, -0x55ec +/* 019F54 70019354 24A5AE5C */ addiu $a1, %lo(alEnvmixerPull) # addiu $a1, $a1, -0x51a4 +/* 019F58 70019358 AFA40020 */ sw $a0, 0x20($sp) +/* 019F5C 7001935C 0C007E3C */ jal alFilterNew +/* 019F60 70019360 24070004 */ li $a3, 4 +/* 019F64 70019364 240E0050 */ li $t6, 80 +/* 019F68 70019368 AFAE0010 */ sw $t6, 0x10($sp) +/* 019F6C 7001936C 00002025 */ move $a0, $zero +/* 019F70 70019370 00002825 */ move $a1, $zero +/* 019F74 70019374 8FA60024 */ lw $a2, 0x24($sp) +/* 019F78 70019378 0C003AD4 */ jal alHeapDBAlloc +/* 019F7C 7001937C 24070001 */ li $a3, 1 +/* 019F80 70019380 8FA80020 */ lw $t0, 0x20($sp) +/* 019F84 70019384 24030001 */ li $v1, 1 +/* 019F88 70019388 AD020014 */ sw $v0, 0x14($t0) +/* 019F8C 7001938C AD030038 */ sw $v1, 0x38($t0) +/* 019F90 70019390 AD000048 */ sw $zero, 0x48($t0) +/* 019F94 70019394 A503001A */ sh $v1, 0x1a($t0) +/* 019F98 70019398 A5030028 */ sh $v1, 0x28($t0) +/* 019F9C 7001939C A503002E */ sh $v1, 0x2e($t0) +/* 019FA0 700193A0 A503001C */ sh $v1, 0x1c($t0) +/* 019FA4 700193A4 A503001E */ sh $v1, 0x1e($t0) +/* 019FA8 700193A8 A5000020 */ sh $zero, 0x20($t0) +/* 019FAC 700193AC A5000022 */ sh $zero, 0x22($t0) +/* 019FB0 700193B0 A5030026 */ sh $v1, 0x26($t0) +/* 019FB4 700193B4 A5000024 */ sh $zero, 0x24($t0) +/* 019FB8 700193B8 AD000030 */ sw $zero, 0x30($t0) +/* 019FBC 700193BC AD000034 */ sw $zero, 0x34($t0) +/* 019FC0 700193C0 A5000018 */ sh $zero, 0x18($t0) +/* 019FC4 700193C4 AD00003C */ sw $zero, 0x3c($t0) +/* 019FC8 700193C8 AD000040 */ sw $zero, 0x40($t0) +/* 019FCC 700193CC AD000044 */ sw $zero, 0x44($t0) +/* 019FD0 700193D0 8FBF001C */ lw $ra, 0x1c($sp) +/* 019FD4 700193D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 019FD8 700193D8 03E00008 */ jr $ra +/* 019FDC 700193DC 00000000 */ nop + +glabel init_lpfilter +/* 019FE0 700193E0 84820000 */ lh $v0, ($a0) +/* 019FE4 700193E4 24194000 */ li $t9, 16384 +/* 019FE8 700193E8 24090001 */ li $t1, 1 +/* 019FEC 700193EC 00027380 */ sll $t6, $v0, 0xe +/* 019FF0 700193F0 000E1BC3 */ sra $v1, $t6, 0xf +/* 019FF4 700193F4 00037C00 */ sll $t7, $v1, 0x10 +/* 019FF8 700193F8 000F1C03 */ sra $v1, $t7, 0x10 +/* 019FFC 700193FC 03234023 */ subu $t0, $t9, $v1 +/* 01A000 70019400 A4880002 */ sh $t0, 2($a0) +/* 01A004 70019404 AC89002C */ sw $t1, 0x2c($a0) +/* 01A008 70019408 00002825 */ move $a1, $zero +/* 01A00C 7001940C 00803025 */ move $a2, $a0 +.L70019410: +/* 01A010 70019410 24A50001 */ addiu $a1, $a1, 1 +/* 01A014 70019414 28A10008 */ slti $at, $a1, 8 +/* 01A018 70019418 24C60002 */ addiu $a2, $a2, 2 +/* 01A01C 7001941C 1420FFFC */ bnez $at, .L70019410 +/* 01A020 70019420 A4C00006 */ sh $zero, 6($a2) +/* 01A024 70019424 44832000 */ mtc1 $v1, $f4 +/* 01A028 70019428 3C0140D0 */ li $at, 0x40D00000 # 6.500000 +/* 01A02C 7001942C 44816800 */ mtc1 $at, $f13 +/* 01A030 70019430 468021A1 */ cvt.d.w $f6, $f4 +/* 01A034 70019434 44806000 */ mtc1 $zero, $f12 +/* 01A038 70019438 24A50001 */ addiu $a1, $a1, 1 +/* 01A03C 7001943C 28A10010 */ slti $at, $a1, 0x10 +/* 01A040 70019440 A4C30008 */ sh $v1, 8($a2) +/* 01A044 70019444 462C3083 */ div.d $f2, $f6, $f12 +/* 01A048 70019448 24C60002 */ addiu $a2, $a2, 2 +/* 01A04C 7001944C 1020000A */ beqz $at, .L70019478 +/* 01A050 70019450 46201006 */ mov.d $f0, $f2 +.L70019454: +/* 01A054 70019454 46220002 */ mul.d $f0, $f0, $f2 +/* 01A058 70019458 24A50001 */ addiu $a1, $a1, 1 +/* 01A05C 7001945C 28A10010 */ slti $at, $a1, 0x10 +/* 01A060 70019460 24C60002 */ addiu $a2, $a2, 2 +/* 01A064 70019464 462C0202 */ mul.d $f8, $f0, $f12 +/* 01A068 70019468 4620428D */ trunc.w.d $f10, $f8 +/* 01A06C 7001946C 440B5000 */ mfc1 $t3, $f10 +/* 01A070 70019470 1420FFF8 */ bnez $at, .L70019454 +/* 01A074 70019474 A4CB0006 */ sh $t3, 6($a2) +.L70019478: +/* 01A078 70019478 03E00008 */ jr $ra +/* 01A07C 7001947C 00000000 */ nop + +glabel alFxNew +/* 01A080 70019480 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01A084 70019484 AFB60058 */ sw $s6, 0x58($sp) +/* 01A088 70019488 00C0B025 */ move $s6, $a2 +/* 01A08C 7001948C AFBF0064 */ sw $ra, 0x64($sp) +/* 01A090 70019490 AFB50054 */ sw $s5, 0x54($sp) +/* 01A094 70019494 AFA5006C */ sw $a1, 0x6c($sp) +/* 01A098 70019498 3C067002 */ lui $a2, %hi(alFxParam) # $a2, 0x7002 +/* 01A09C 7001949C 0080A825 */ move $s5, $a0 +/* 01A0A0 700194A0 AFBE0060 */ sw $fp, 0x60($sp) +/* 01A0A4 700194A4 AFB7005C */ sw $s7, 0x5c($sp) +/* 01A0A8 700194A8 AFB40050 */ sw $s4, 0x50($sp) +/* 01A0AC 700194AC AFB3004C */ sw $s3, 0x4c($sp) +/* 01A0B0 700194B0 AFB20048 */ sw $s2, 0x48($sp) +/* 01A0B4 700194B4 AFB10044 */ sw $s1, 0x44($sp) +/* 01A0B8 700194B8 AFB00040 */ sw $s0, 0x40($sp) +/* 01A0BC 700194BC F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 01A0C0 700194C0 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 01A0C4 700194C4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 01A0C8 700194C8 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 01A0CC 700194CC 24C601C0 */ addiu $a2, %lo(alFxParam) # addiu $a2, $a2, 0x1c0 +/* 01A0D0 700194D0 00002825 */ move $a1, $zero +/* 01A0D4 700194D4 0C007E3C */ jal alFilterNew +/* 01A0D8 700194D8 24070005 */ li $a3, 5 +/* 01A0DC 700194DC 8FA2006C */ lw $v0, 0x6c($sp) +/* 01A0E0 700194E0 3C0E7002 */ lui $t6, %hi(alFxPull) # $t6, 0x7002 +/* 01A0E4 700194E4 3C0F7002 */ lui $t7, %hi(alFxParamHdl) # $t7, 0x7002 +/* 01A0E8 700194E8 25CE01D8 */ addiu $t6, %lo(alFxPull) # addiu $t6, $t6, 0x1d8 +/* 01A0EC 700194EC 25EFFFA8 */ addiu $t7, %lo(alFxParamHdl) # addiu $t7, $t7, -0x58 +/* 01A0F0 700194F0 AEAE0004 */ sw $t6, 4($s5) +/* 01A0F4 700194F4 AEAF0028 */ sw $t7, 0x28($s5) +/* 01A0F8 700194F8 9058001C */ lbu $t8, 0x1c($v0) +/* 01A0FC 700194FC 3C138003 */ lui $s3, %hi(NULL_PARAMS) +/* 01A100 70019500 267381B8 */ addiu $s3, %lo(NULL_PARAMS) # addiu $s3, $s3, -0x7e48 +/* 01A104 70019504 2719FFFF */ addiu $t9, $t8, -1 +/* 01A108 70019508 2F210006 */ sltiu $at, $t9, 6 +/* 01A10C 7001950C 10200017 */ beqz $at, .L7001956C +/* 01A110 70019510 0019C880 */ sll $t9, $t9, 2 +/* 01A114 70019514 3C018003 */ lui $at, %hi(jpt_80029830) +/* 01A118 70019518 00390821 */ addu $at, $at, $t9 +/* 01A11C 7001951C 8C399830 */ lw $t9, %lo(jpt_80029830)($at) +/* 01A120 70019520 03200008 */ jr $t9 +/* 01A124 70019524 00000000 */ nop +.L70019528: +/* 01A128 70019528 3C138003 */ lui $s3, %hi(SMALLROOM_PARAMS) +/* 01A12C 7001952C 1000000F */ b .L7001956C +/* 01A130 70019530 26738050 */ addiu $s3, %lo(SMALLROOM_PARAMS) # addiu $s3, $s3, -0x7fb0 +.L70019534: +/* 01A134 70019534 3C138003 */ lui $s3, %hi(BIGROOM_PARAMS) +/* 01A138 70019538 1000000C */ b .L7001956C +/* 01A13C 7001953C 267380B8 */ addiu $s3, %lo(BIGROOM_PARAMS) # addiu $s3, $s3, -0x7f48 +.L70019540: +/* 01A140 70019540 3C138003 */ lui $s3, %hi(ECHO_PARAMS) +/* 01A144 70019544 10000009 */ b .L7001956C +/* 01A148 70019548 26738140 */ addiu $s3, %lo(ECHO_PARAMS) # addiu $s3, $s3, -0x7ec0 +.L7001954C: +/* 01A14C 7001954C 3C138003 */ lui $s3, %hi(CHORUS_PARAMS) +/* 01A150 70019550 10000006 */ b .L7001956C +/* 01A154 70019554 26738168 */ addiu $s3, %lo(CHORUS_PARAMS) # addiu $s3, $s3, -0x7e98 +.L70019558: +/* 01A158 70019558 3C138003 */ lui $s3, %hi(FLANGE_PARAMS) +/* 01A15C 7001955C 10000003 */ b .L7001956C +/* 01A160 70019560 26738190 */ addiu $s3, %lo(FLANGE_PARAMS) # addiu $s3, $s3, -0x7e70 +.L70019564: +/* 01A164 70019564 10000001 */ b .L7001956C +/* 01A168 70019568 8C530020 */ lw $s3, 0x20($v0) +.L7001956C: +/* 01A16C 7001956C 8E680000 */ lw $t0, ($s3) +/* 01A170 70019570 240A0028 */ li $t2, 40 +/* 01A174 70019574 24110002 */ li $s1, 2 +/* 01A178 70019578 A2A80024 */ sb $t0, 0x24($s5) +/* 01A17C 7001957C 8E690004 */ lw $t1, 4($s3) +/* 01A180 70019580 00002025 */ move $a0, $zero +/* 01A184 70019584 00002825 */ move $a1, $zero +/* 01A188 70019588 AEA9001C */ sw $t1, 0x1c($s5) +/* 01A18C 7001958C AFAA0010 */ sw $t2, 0x10($sp) +/* 01A190 70019590 02C03025 */ move $a2, $s6 +/* 01A194 70019594 0C003AD4 */ jal alHeapDBAlloc +/* 01A198 70019598 310700FF */ andi $a3, $t0, 0xff +/* 01A19C 7001959C AEA20020 */ sw $v0, 0x20($s5) +/* 01A1A0 700195A0 8EA7001C */ lw $a3, 0x1c($s5) +/* 01A1A4 700195A4 240B0002 */ li $t3, 2 +/* 01A1A8 700195A8 AFAB0010 */ sw $t3, 0x10($sp) +/* 01A1AC 700195AC 00002025 */ move $a0, $zero +/* 01A1B0 700195B0 00002825 */ move $a1, $zero +/* 01A1B4 700195B4 0C003AD4 */ jal alHeapDBAlloc +/* 01A1B8 700195B8 02C03025 */ move $a2, $s6 +/* 01A1BC 700195BC 8EAC001C */ lw $t4, 0x1c($s5) +/* 01A1C0 700195C0 AEA20014 */ sw $v0, 0x14($s5) +/* 01A1C4 700195C4 AEA20018 */ sw $v0, 0x18($s5) +/* 01A1C8 700195C8 1180000C */ beqz $t4, .L700195FC +/* 01A1CC 700195CC 00001825 */ move $v1, $zero +/* 01A1D0 700195D0 8EAD0014 */ lw $t5, 0x14($s5) +.L700195D4: +/* 01A1D4 700195D4 00037040 */ sll $t6, $v1, 1 +/* 01A1D8 700195D8 24630001 */ addiu $v1, $v1, 1 +/* 01A1DC 700195DC 01AE7821 */ addu $t7, $t5, $t6 +/* 01A1E0 700195E0 A5E00000 */ sh $zero, ($t7) +/* 01A1E4 700195E4 8EB9001C */ lw $t9, 0x1c($s5) +/* 01A1E8 700195E8 3078FFFF */ andi $t8, $v1, 0xffff +/* 01A1EC 700195EC 03001825 */ move $v1, $t8 +/* 01A1F0 700195F0 0319082B */ sltu $at, $t8, $t9 +/* 01A1F4 700195F4 5420FFF7 */ bnezl $at, .L700195D4 +/* 01A1F8 700195F8 8EAD0014 */ lw $t5, 0x14($s5) +.L700195FC: +/* 01A1FC 700195FC 92A80024 */ lbu $t0, 0x24($s5) +/* 01A200 70019600 0000A025 */ move $s4, $zero +/* 01A204 70019604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01A208 70019608 1900009C */ blez $t0, .L7001987C +/* 01A20C 7001960C 241E0001 */ li $fp, 1 +/* 01A210 70019610 4481C000 */ mtc1 $at, $f24 +/* 01A214 70019614 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 01A218 70019618 4481B000 */ mtc1 $at, $f22 +/* 01A21C 7001961C 3C018003 */ lui $at, %hi(F64_80029848) +/* 01A220 70019620 4480D000 */ mtc1 $zero, $f26 +/* 01A224 70019624 D4349848 */ ldc1 $f20, %lo(F64_80029848)($at) +/* 01A228 70019628 24170028 */ li $s7, 40 +.L7001962C: +/* 01A22C 7001962C 02970019 */ multu $s4, $s7 +/* 01A230 70019630 00115880 */ sll $t3, $s1, 2 +/* 01A234 70019634 8EA90020 */ lw $t1, 0x20($s5) +/* 01A238 70019638 026B6021 */ addu $t4, $s3, $t3 +/* 01A23C 7001963C 8D8D0000 */ lw $t5, ($t4) +/* 01A240 70019640 26310001 */ addiu $s1, $s1, 1 +/* 01A244 70019644 322EFFFF */ andi $t6, $s1, 0xffff +/* 01A248 70019648 000E7880 */ sll $t7, $t6, 2 +/* 01A24C 7001964C 026FC021 */ addu $t8, $s3, $t7 +/* 01A250 70019650 25D10001 */ addiu $s1, $t6, 1 +/* 01A254 70019654 00005012 */ mflo $t2 +/* 01A258 70019658 012A8021 */ addu $s0, $t1, $t2 +/* 01A25C 7001965C AE0D0000 */ sw $t5, ($s0) +/* 01A260 70019660 8F190000 */ lw $t9, ($t8) +/* 01A264 70019664 3228FFFF */ andi $t0, $s1, 0xffff +/* 01A268 70019668 00084880 */ sll $t1, $t0, 2 +/* 01A26C 7001966C 02695021 */ addu $t2, $s3, $t1 +/* 01A270 70019670 AE190004 */ sw $t9, 4($s0) +/* 01A274 70019674 8D4B0000 */ lw $t3, ($t2) +/* 01A278 70019678 25110001 */ addiu $s1, $t0, 1 +/* 01A27C 7001967C 322CFFFF */ andi $t4, $s1, 0xffff +/* 01A280 70019680 000C6880 */ sll $t5, $t4, 2 +/* 01A284 70019684 026D7021 */ addu $t6, $s3, $t5 +/* 01A288 70019688 A60B000A */ sh $t3, 0xa($s0) +/* 01A28C 7001968C 8DCF0000 */ lw $t7, ($t6) +/* 01A290 70019690 25910001 */ addiu $s1, $t4, 1 +/* 01A294 70019694 3238FFFF */ andi $t8, $s1, 0xffff +/* 01A298 70019698 0018C880 */ sll $t9, $t8, 2 +/* 01A29C 7001969C 02794021 */ addu $t0, $s3, $t9 +/* 01A2A0 700196A0 A60F0008 */ sh $t7, 8($s0) +/* 01A2A4 700196A4 8D090000 */ lw $t1, ($t0) +/* 01A2A8 700196A8 27110001 */ addiu $s1, $t8, 1 +/* 01A2AC 700196AC 322AFFFF */ andi $t2, $s1, 0xffff +/* 01A2B0 700196B0 000A5880 */ sll $t3, $t2, 2 +/* 01A2B4 700196B4 026B6021 */ addu $t4, $s3, $t3 +/* 01A2B8 700196B8 A609000C */ sh $t1, 0xc($s0) +/* 01A2BC 700196BC 8D820000 */ lw $v0, ($t4) +/* 01A2C0 700196C0 01408825 */ move $s1, $t2 +/* 01A2C4 700196C4 02204025 */ move $t0, $s1 +/* 01A2C8 700196C8 10400040 */ beqz $v0, .L700197CC +/* 01A2CC 700196CC 25110002 */ addiu $s1, $t0, 2 +/* 01A2D0 700196D0 44822000 */ mtc1 $v0, $f4 +/* 01A2D4 700196D4 8FAD006C */ lw $t5, 0x6c($sp) +/* 01A2D8 700196D8 8E180004 */ lw $t8, 4($s0) +/* 01A2DC 700196DC 468021A0 */ cvt.s.w $f6, $f4 +/* 01A2E0 700196E0 8DAE0018 */ lw $t6, 0x18($t5) +/* 01A2E4 700196E4 8E190000 */ lw $t9, ($s0) +/* 01A2E8 700196E8 25510001 */ addiu $s1, $t2, 1 +/* 01A2EC 700196EC 448E8000 */ mtc1 $t6, $f16 +/* 01A2F0 700196F0 322FFFFF */ andi $t7, $s1, 0xffff +/* 01A2F4 700196F4 46163203 */ div.s $f8, $f6, $f22 +/* 01A2F8 700196F8 03194023 */ subu $t0, $t8, $t9 +/* 01A2FC 700196FC 01E08825 */ move $s1, $t7 +/* 01A300 70019700 00114880 */ sll $t1, $s1, 2 +/* 01A304 70019704 468084A1 */ cvt.d.w $f18, $f16 +/* 01A308 70019708 02695021 */ addu $t2, $s3, $t1 +/* 01A30C 7001970C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 01A310 70019710 46004021 */ cvt.d.s $f0, $f8 +/* 01A314 70019714 44884000 */ mtc1 $t0, $f8 +/* 01A318 70019718 46200280 */ add.d $f10, $f0, $f0 +/* 01A31C 7001971C 46804421 */ cvt.d.w $f16, $f8 +/* 01A320 70019720 46325103 */ div.d $f4, $f10, $f18 +/* 01A324 70019724 462021A0 */ cvt.s.d $f6, $f4 +/* 01A328 70019728 05010005 */ bgez $t0, .L70019740 +/* 01A32C 7001972C E6060010 */ swc1 $f6, 0x10($s0) +/* 01A330 70019730 44815800 */ mtc1 $at, $f11 +/* 01A334 70019734 44805000 */ mtc1 $zero, $f10 +/* 01A338 70019738 00000000 */ nop +/* 01A33C 7001973C 462A8400 */ add.d $f16, $f16, $f10 +.L70019740: +/* 01A340 70019740 8D4B0000 */ lw $t3, ($t2) +/* 01A344 70019744 26310001 */ addiu $s1, $s1, 1 +/* 01A348 70019748 322CFFFF */ andi $t4, $s1, 0xffff +/* 01A34C 7001974C 448B9000 */ mtc1 $t3, $f18 +/* 01A350 70019750 E6180014 */ swc1 $f24, 0x14($s0) +/* 01A354 70019754 AE000018 */ sw $zero, 0x18($s0) +/* 01A358 70019758 46809120 */ cvt.s.w $f4, $f18 +/* 01A35C 7001975C 240D0034 */ li $t5, 52 +/* 01A360 70019760 01808825 */ move $s1, $t4 +/* 01A364 70019764 00002025 */ move $a0, $zero +/* 01A368 70019768 00002825 */ move $a1, $zero +/* 01A36C 7001976C 02C03025 */ move $a2, $s6 +/* 01A370 70019770 460021A1 */ cvt.d.s $f6, $f4 +/* 01A374 70019774 03C03825 */ move $a3, $fp +/* 01A378 70019778 46343203 */ div.d $f8, $f6, $f20 +/* 01A37C 7001977C 46304282 */ mul.d $f10, $f8, $f16 +/* 01A380 70019780 462054A0 */ cvt.s.d $f18, $f10 +/* 01A384 70019784 E612001C */ swc1 $f18, 0x1c($s0) +/* 01A388 70019788 0C003AD4 */ jal alHeapDBAlloc +/* 01A38C 7001978C AFAD0010 */ sw $t5, 0x10($sp) +/* 01A390 70019790 AE020024 */ sw $v0, 0x24($s0) +/* 01A394 70019794 240E0020 */ li $t6, 32 +/* 01A398 70019798 AFAE0010 */ sw $t6, 0x10($sp) +/* 01A39C 7001979C 00002025 */ move $a0, $zero +/* 01A3A0 700197A0 00002825 */ move $a1, $zero +/* 01A3A4 700197A4 02C03025 */ move $a2, $s6 +/* 01A3A8 700197A8 0C003AD4 */ jal alHeapDBAlloc +/* 01A3AC 700197AC 03C03825 */ move $a3, $fp +/* 01A3B0 700197B0 8E0F0024 */ lw $t7, 0x24($s0) +/* 01A3B4 700197B4 ADE20014 */ sw $v0, 0x14($t7) +/* 01A3B8 700197B8 8E180024 */ lw $t8, 0x24($s0) +/* 01A3BC 700197BC E71A0020 */ swc1 $f26, 0x20($t8) +/* 01A3C0 700197C0 8E190024 */ lw $t9, 0x24($s0) +/* 01A3C4 700197C4 10000004 */ b .L700197D8 +/* 01A3C8 700197C8 AF3E0024 */ sw $fp, 0x24($t9) +.L700197CC: +/* 01A3CC 700197CC 3229FFFF */ andi $t1, $s1, 0xffff +/* 01A3D0 700197D0 AE000024 */ sw $zero, 0x24($s0) +/* 01A3D4 700197D4 01208825 */ move $s1, $t1 +.L700197D8: +/* 01A3D8 700197D8 00115080 */ sll $t2, $s1, 2 +/* 01A3DC 700197DC 026A9021 */ addu $s2, $s3, $t2 +/* 01A3E0 700197E0 8E4B0000 */ lw $t3, ($s2) +/* 01A3E4 700197E4 00002025 */ move $a0, $zero +/* 01A3E8 700197E8 00002825 */ move $a1, $zero +/* 01A3EC 700197EC 11600019 */ beqz $t3, .L70019854 +/* 01A3F0 700197F0 02C03025 */ move $a2, $s6 +/* 01A3F4 700197F4 240C0030 */ li $t4, 48 +/* 01A3F8 700197F8 AFAC0010 */ sw $t4, 0x10($sp) +/* 01A3FC 700197FC 0C003AD4 */ jal alHeapDBAlloc +/* 01A400 70019800 03C03825 */ move $a3, $fp +/* 01A404 70019804 AE020020 */ sw $v0, 0x20($s0) +/* 01A408 70019808 240D0008 */ li $t5, 8 +/* 01A40C 7001980C AFAD0010 */ sw $t5, 0x10($sp) +/* 01A410 70019810 00002025 */ move $a0, $zero +/* 01A414 70019814 00002825 */ move $a1, $zero +/* 01A418 70019818 02C03025 */ move $a2, $s6 +/* 01A41C 7001981C 0C003AD4 */ jal alHeapDBAlloc +/* 01A420 70019820 03C03825 */ move $a3, $fp +/* 01A424 70019824 8E0E0020 */ lw $t6, 0x20($s0) +/* 01A428 70019828 26310001 */ addiu $s1, $s1, 1 +/* 01A42C 7001982C 3239FFFF */ andi $t9, $s1, 0xffff +/* 01A430 70019830 ADC20028 */ sw $v0, 0x28($t6) +/* 01A434 70019834 8E180020 */ lw $t8, 0x20($s0) +/* 01A438 70019838 8E4F0000 */ lw $t7, ($s2) +/* 01A43C 7001983C 03208825 */ move $s1, $t9 +/* 01A440 70019840 A70F0000 */ sh $t7, ($t8) +/* 01A444 70019844 0C0064F8 */ jal init_lpfilter +/* 01A448 70019848 8E040020 */ lw $a0, 0x20($s0) +/* 01A44C 7001984C 10000006 */ b .L70019868 +/* 01A450 70019850 92AA0024 */ lbu $t2, 0x24($s5) +.L70019854: +/* 01A454 70019854 26310001 */ addiu $s1, $s1, 1 +/* 01A458 70019858 3228FFFF */ andi $t0, $s1, 0xffff +/* 01A45C 7001985C AE000020 */ sw $zero, 0x20($s0) +/* 01A460 70019860 01008825 */ move $s1, $t0 +/* 01A464 70019864 92AA0024 */ lbu $t2, 0x24($s5) +.L70019868: +/* 01A468 70019868 26940001 */ addiu $s4, $s4, 1 +/* 01A46C 7001986C 3289FFFF */ andi $t1, $s4, 0xffff +/* 01A470 70019870 012A082A */ slt $at, $t1, $t2 +/* 01A474 70019874 1420FF6D */ bnez $at, .L7001962C +/* 01A478 70019878 0120A025 */ move $s4, $t1 +.L7001987C: +/* 01A47C 7001987C 8FBF0064 */ lw $ra, 0x64($sp) +/* 01A480 70019880 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 01A484 70019884 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 01A488 70019888 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 01A48C 7001988C D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 01A490 70019890 8FB00040 */ lw $s0, 0x40($sp) +/* 01A494 70019894 8FB10044 */ lw $s1, 0x44($sp) +/* 01A498 70019898 8FB20048 */ lw $s2, 0x48($sp) +/* 01A49C 7001989C 8FB3004C */ lw $s3, 0x4c($sp) +/* 01A4A0 700198A0 8FB40050 */ lw $s4, 0x50($sp) +/* 01A4A4 700198A4 8FB50054 */ lw $s5, 0x54($sp) +/* 01A4A8 700198A8 8FB60058 */ lw $s6, 0x58($sp) +/* 01A4AC 700198AC 8FB7005C */ lw $s7, 0x5c($sp) +/* 01A4B0 700198B0 8FBE0060 */ lw $fp, 0x60($sp) +/* 01A4B4 700198B4 03E00008 */ jr $ra +/* 01A4B8 700198B8 27BD0068 */ addiu $sp, $sp, 0x68 + + + +.section .data +glabel SMALLROOM_PARAMS +.word 3, 0xFA0, 0, 0x870, 0x2666,0xFFFFD99A, 0, 0 +.word 0, 0, 0x2F8, 0x5F0, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0, 0x960, 0x1388, 0, 0, 0 +.word 0, 0x5000 +glabel BIGROOM_PARAMS +.word 4, 0xFA0, 0, 0xA50, 0x2666,0xFFFFD99A, 0, 0 +.word 0, 0, 0x370, 0x870, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0xA50, 0xE38, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0, 0xEB0, 0x1F40, 0, 0, 0 +.word 0, 0x5000 +glabel ECHO_PARAMS +.word 1, 0x1F40, 0, 0x1BF8, 0x2EE0, 0, 0x7FFF, 0 +.word 0, 0 +glabel CHORUS_PARAMS +.word 1, 0x320, 0, 0xC8, 0x4000, 0, 0x7FFF, 0x1DB0 +.word 0x2BC, 0 +glabel FLANGE_PARAMS +.word 1, 0x320, 0, 0xC8, 0, 0x5FFF, 0x7FFF, 0x17C +.word 0x1F4, 0 +glabel NULL_PARAMS +.word 0, 0, 0, 0, 0, 0, 0, 0 +.word 0, 0 +.section .rodata +glabel jpt_80029830 +.word .L70019528 +.word .L70019534 +.word .L7001954C +.word .L70019558 +.word .L70019540 +.word .L70019564 +glabel F64_80029848 +.double 173123.404906676 diff --git a/src/libultra/env.s b/src/libultra/env.s new file mode 100644 index 0000000..15d6b6f --- /dev/null +++ b/src/libultra/env.s @@ -0,0 +1,911 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _ldexpf +/* 01B500 7001A900 10C00007 */ beqz $a2, .L7001A920 +/* 01B504 7001A904 240E0001 */ li $t6, 1 +/* 01B508 7001A908 00CE7804 */ sllv $t7, $t6, $a2 +/* 01B50C 7001A90C 448F2000 */ mtc1 $t7, $f4 +/* 01B510 7001A910 00000000 */ nop +/* 01B514 7001A914 468021A1 */ cvt.d.w $f6, $f4 +/* 01B518 7001A918 46266302 */ mul.d $f12, $f12, $f6 +/* 01B51C 7001A91C 00000000 */ nop +.L7001A920: +/* 01B520 7001A920 03E00008 */ jr $ra +/* 01B524 7001A924 46206006 */ mov.d $f0, $f12 + +glabel _frexpf +/* 01B528 7001A928 44801800 */ mtc1 $zero, $f3 +/* 01B52C 7001A92C 44801000 */ mtc1 $zero, $f2 +/* 01B530 7001A930 ACC00000 */ sw $zero, ($a2) +/* 01B534 7001A934 3C013FF0 */ lui $at, 0x3ff0 +/* 01B538 7001A938 46226032 */ c.eq.d $f12, $f2 +/* 01B53C 7001A93C 00000000 */ nop +/* 01B540 7001A940 45020004 */ bc1fl .L7001A954 +/* 01B544 7001A944 462C103C */ c.lt.d $f2, $f12 +/* 01B548 7001A948 03E00008 */ jr $ra +/* 01B54C 7001A94C 46206006 */ mov.d $f0, $f12 + +/* 01B550 7001A950 462C103C */ c.lt.d $f2, $f12 +.L7001A954: +/* 01B554 7001A954 44817800 */ mtc1 $at, $f15 +/* 01B558 7001A958 44807000 */ mtc1 $zero, $f14 +/* 01B55C 7001A95C 3C013FE0 */ lui $at, 0x3fe0 +/* 01B560 7001A960 45020004 */ bc1fl .L7001A974 +/* 01B564 7001A964 46206007 */ neg.d $f0, $f12 +/* 01B568 7001A968 10000002 */ b .L7001A974 +/* 01B56C 7001A96C 46206006 */ mov.d $f0, $f12 +/* 01B570 7001A970 46206007 */ neg.d $f0, $f12 +.L7001A974: +/* 01B574 7001A974 4620703E */ c.le.d $f14, $f0 +/* 01B578 7001A978 00000000 */ nop +/* 01B57C 7001A97C 4502000D */ bc1fl .L7001A9B4 +/* 01B580 7001A980 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01B584 7001A984 44818800 */ mtc1 $at, $f17 +/* 01B588 7001A988 44808000 */ mtc1 $zero, $f16 +/* 01B58C 7001A98C 00000000 */ nop +.L7001A990: +/* 01B590 7001A990 46300002 */ mul.d $f0, $f0, $f16 +/* 01B594 7001A994 8CCE0000 */ lw $t6, ($a2) +/* 01B598 7001A998 25CF0001 */ addiu $t7, $t6, 1 +/* 01B59C 7001A99C ACCF0000 */ sw $t7, ($a2) +/* 01B5A0 7001A9A0 4620703E */ c.le.d $f14, $f0 +/* 01B5A4 7001A9A4 00000000 */ nop +/* 01B5A8 7001A9A8 4501FFF9 */ bc1t .L7001A990 +/* 01B5AC 7001A9AC 00000000 */ nop +/* 01B5B0 7001A9B0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +.L7001A9B4: +/* 01B5B4 7001A9B4 44818800 */ mtc1 $at, $f17 +/* 01B5B8 7001A9B8 44808000 */ mtc1 $zero, $f16 +/* 01B5BC 7001A9BC 00000000 */ nop +/* 01B5C0 7001A9C0 4630003C */ c.lt.d $f0, $f16 +/* 01B5C4 7001A9C4 00000000 */ nop +/* 01B5C8 7001A9C8 45020009 */ bc1fl .L7001A9F0 +/* 01B5CC 7001A9CC 462C103C */ c.lt.d $f2, $f12 +/* 01B5D0 7001A9D0 46200000 */ add.d $f0, $f0, $f0 +.L7001A9D4: +/* 01B5D4 7001A9D4 8CD80000 */ lw $t8, ($a2) +/* 01B5D8 7001A9D8 4630003C */ c.lt.d $f0, $f16 +/* 01B5DC 7001A9DC 2719FFFF */ addiu $t9, $t8, -1 +/* 01B5E0 7001A9E0 ACD90000 */ sw $t9, ($a2) +/* 01B5E4 7001A9E4 4503FFFB */ bc1tl .L7001A9D4 +/* 01B5E8 7001A9E8 46200000 */ add.d $f0, $f0, $f0 +/* 01B5EC 7001A9EC 462C103C */ c.lt.d $f2, $f12 +.L7001A9F0: +/* 01B5F0 7001A9F0 00000000 */ nop +/* 01B5F4 7001A9F4 45020004 */ bc1fl .L7001AA08 +/* 01B5F8 7001A9F8 46200087 */ neg.d $f2, $f0 +/* 01B5FC 7001A9FC 10000002 */ b .L7001AA08 +/* 01B600 7001AA00 46200086 */ mov.d $f2, $f0 +/* 01B604 7001AA04 46200087 */ neg.d $f2, $f0 +.L7001AA08: +/* 01B608 7001AA08 46201006 */ mov.d $f0, $f2 +/* 01B60C 7001AA0C 03E00008 */ jr $ra +/* 01B610 7001AA10 00000000 */ nop + +glabel alEnvmixerParam +/* 01B614 7001AA14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01B618 7001AA18 24020001 */ li $v0, 1 +/* 01B61C 7001AA1C AFBF0014 */ sw $ra, 0x14($sp) +/* 01B620 7001AA20 10A20027 */ beq $a1, $v0, .L7001AAC0 +/* 01B624 7001AA24 00803825 */ move $a3, $a0 +/* 01B628 7001AA28 24010003 */ li $at, 3 +/* 01B62C 7001AA2C 10A10007 */ beq $a1, $at, .L7001AA4C +/* 01B630 7001AA30 24010004 */ li $at, 4 +/* 01B634 7001AA34 10A1000D */ beq $a1, $at, .L7001AA6C +/* 01B638 7001AA38 24010009 */ li $at, 9 +/* 01B63C 7001AA3C 50A10017 */ beql $a1, $at, .L7001AA9C +/* 01B640 7001AA40 8CE40000 */ lw $a0, ($a3) +/* 01B644 7001AA44 10000021 */ b .L7001AACC +/* 01B648 7001AA48 8CE40000 */ lw $a0, ($a3) +.L7001AA4C: +/* 01B64C 7001AA4C 8CE20040 */ lw $v0, 0x40($a3) +/* 01B650 7001AA50 50400004 */ beql $v0, $zero, .L7001AA64 +/* 01B654 7001AA54 ACE6003C */ sw $a2, 0x3c($a3) +/* 01B658 7001AA58 10000002 */ b .L7001AA64 +/* 01B65C 7001AA5C AC460000 */ sw $a2, ($v0) +/* 01B660 7001AA60 ACE6003C */ sw $a2, 0x3c($a3) +.L7001AA64: +/* 01B664 7001AA64 1000001E */ b .L7001AAE0 +/* 01B668 7001AA68 ACE60040 */ sw $a2, 0x40($a3) +.L7001AA6C: +/* 01B66C 7001AA6C 8CE40000 */ lw $a0, ($a3) +/* 01B670 7001AA70 ACE20038 */ sw $v0, 0x38($a3) +/* 01B674 7001AA74 ACE00048 */ sw $zero, 0x48($a3) +/* 01B678 7001AA78 10800019 */ beqz $a0, .L7001AAE0 +/* 01B67C 7001AA7C A4E2001A */ sh $v0, 0x1a($a3) +/* 01B680 7001AA80 8C990008 */ lw $t9, 8($a0) +/* 01B684 7001AA84 24050004 */ li $a1, 4 +/* 01B688 7001AA88 0320F809 */ jalr $t9 +/* 01B68C 7001AA8C 00000000 */ nop +/* 01B690 7001AA90 10000014 */ b .L7001AAE4 +/* 01B694 7001AA94 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B698 7001AA98 8CE40000 */ lw $a0, ($a3) +.L7001AA9C: +/* 01B69C 7001AA9C ACE20048 */ sw $v0, 0x48($a3) +/* 01B6A0 7001AAA0 50800010 */ beql $a0, $zero, .L7001AAE4 +/* 01B6A4 7001AAA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B6A8 7001AAA8 8C990008 */ lw $t9, 8($a0) +/* 01B6AC 7001AAAC 24050009 */ li $a1, 9 +/* 01B6B0 7001AAB0 0320F809 */ jalr $t9 +/* 01B6B4 7001AAB4 00000000 */ nop +/* 01B6B8 7001AAB8 1000000A */ b .L7001AAE4 +/* 01B6BC 7001AABC 8FBF0014 */ lw $ra, 0x14($sp) +.L7001AAC0: +/* 01B6C0 7001AAC0 10000007 */ b .L7001AAE0 +/* 01B6C4 7001AAC4 ACE60000 */ sw $a2, ($a3) +/* 01B6C8 7001AAC8 8CE40000 */ lw $a0, ($a3) +.L7001AACC: +/* 01B6CC 7001AACC 50800005 */ beql $a0, $zero, .L7001AAE4 +/* 01B6D0 7001AAD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B6D4 7001AAD4 8C990008 */ lw $t9, 8($a0) +/* 01B6D8 7001AAD8 0320F809 */ jalr $t9 +/* 01B6DC 7001AADC 00000000 */ nop +.L7001AAE0: +/* 01B6E0 7001AAE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7001AAE4: +/* 01B6E4 7001AAE4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01B6E8 7001AAE8 00001025 */ move $v0, $zero +/* 01B6EC 7001AAEC 03E00008 */ jr $ra +/* 01B6F0 7001AAF0 00000000 */ nop + +glabel ultra_7001AAF4 +/* 01B6F4 7001AAF4 5480000C */ bnezl $a0, .L7001AB28 +/* 01B6F8 7001AAF8 44843000 */ mtc1 $a0, $f6 +/* 01B6FC 7001AAFC 460C703E */ c.le.s $f14, $f12 +/* 01B700 7001AB00 340EFFFF */ li $t6, 65535 +/* 01B704 7001AB04 24028000 */ li $v0, -32768 +/* 01B708 7001AB08 45000004 */ bc1f .L7001AB1C +/* 01B70C 7001AB0C 00000000 */ nop +/* 01B710 7001AB10 A4AE0000 */ sh $t6, ($a1) +/* 01B714 7001AB14 03E00008 */ jr $ra +/* 01B718 7001AB18 24027FFF */ li $v0, 32767 + +.L7001AB1C: +/* 01B71C 7001AB1C 03E00008 */ jr $ra +/* 01B720 7001AB20 A4A00000 */ sh $zero, ($a1) + +/* 01B724 7001AB24 44843000 */ mtc1 $a0, $f6 +.L7001AB28: +/* 01B728 7001AB28 460E6101 */ sub.s $f4, $f12, $f14 +/* 01B72C 7001AB2C 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 01B730 7001AB30 44812800 */ mtc1 $at, $f5 +/* 01B734 7001AB34 46803220 */ cvt.s.w $f8, $f6 +/* 01B738 7001AB38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01B73C 7001AB3C 46082283 */ div.s $f10, $f4, $f8 +/* 01B740 7001AB40 44802000 */ mtc1 $zero, $f4 +/* 01B744 7001AB44 460051A1 */ cvt.d.s $f6, $f10 +/* 01B748 7001AB48 44805000 */ mtc1 $zero, $f10 +/* 01B74C 7001AB4C 46243202 */ mul.d $f8, $f6, $f4 +/* 01B750 7001AB50 462040A0 */ cvt.s.d $f2, $f8 +/* 01B754 7001AB54 460A103C */ c.lt.s $f2, $f10 +/* 01B758 7001AB58 46001006 */ mov.s $f0, $f2 +/* 01B75C 7001AB5C 45020005 */ bc1fl .L7001AB74 +/* 01B760 7001AB60 4600010D */ trunc.w.s $f4, $f0 +/* 01B764 7001AB64 44813000 */ mtc1 $at, $f6 +/* 01B768 7001AB68 00000000 */ nop +/* 01B76C 7001AB6C 46061001 */ sub.s $f0, $f2, $f6 +/* 01B770 7001AB70 4600010D */ trunc.w.s $f4, $f0 +.L7001AB74: +/* 01B774 7001AB74 3C018003 */ lui $at, %hi(F32_80029964) +/* 01B778 7001AB78 44032000 */ mfc1 $v1, $f4 +/* 01B77C 7001AB7C C4249964 */ lwc1 $f4, %lo(F32_80029964)($at) +/* 01B780 7001AB80 0003C400 */ sll $t8, $v1, 0x10 +/* 01B784 7001AB84 00181403 */ sra $v0, $t8, 0x10 +/* 01B788 7001AB88 44824000 */ mtc1 $v0, $f8 +/* 01B78C 7001AB8C 00000000 */ nop +/* 01B790 7001AB90 468042A0 */ cvt.s.w $f10, $f8 +/* 01B794 7001AB94 460A0181 */ sub.s $f6, $f0, $f10 +/* 01B798 7001AB98 46043202 */ mul.s $f8, $f6, $f4 +/* 01B79C 7001AB9C 4600428D */ trunc.w.s $f10, $f8 +/* 01B7A0 7001ABA0 440F5000 */ mfc1 $t7, $f10 +/* 01B7A4 7001ABA4 00000000 */ nop +/* 01B7A8 7001ABA8 A4AF0000 */ sh $t7, ($a1) +/* 01B7AC 7001ABAC 03E00008 */ jr $ra +/* 01B7B0 7001ABB0 00000000 */ nop + +glabel ultra_7001ABB4 +/* 01B7B4 7001ABB4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01B7B8 7001ABB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 01B7BC 7001ABBC 16400003 */ bnez $s2, .L7001ABCC +/* 01B7C0 7001ABC0 8E110000 */ lw $s1, ($s0) +/* 01B7C4 7001ABC4 1000009F */ b .L7001AE44 +/* 01B7C8 7001ABC8 02801025 */ move $v0, $s4 +.L7001ABCC: +/* 01B7CC 7001ABCC 16200008 */ bnez $s1, .L7001ABF0 +/* 01B7D0 7001ABD0 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD_1) +/* 01B7D4 7001ABD4 3C058003 */ lui $a1, %hi(aSource) +/* 01B7D8 7001ABD8 3C068003 */ lui $a2, %hi(aEnv_c_1) +/* 01B7DC 7001ABDC 24C6995C */ addiu $a2, %lo(aEnv_c_1) # addiu $a2, $a2, -0x66a4 +/* 01B7E0 7001ABE0 24A59954 */ addiu $a1, %lo(aSource) # addiu $a1, $a1, -0x66ac +/* 01B7E4 7001ABE4 24849928 */ addiu $a0, %lo(aAssertionFaultSSLineD_1) # addiu $a0, $a0, -0x66d8 +/* 01B7E8 7001ABE8 0C0033D1 */ jal osSyncPrintf +/* 01B7EC 7001ABEC 24070175 */ li $a3, 373 +.L7001ABF0: +/* 01B7F0 7001ABF0 AFB40010 */ sw $s4, 0x10($sp) +/* 01B7F4 7001ABF4 8E390004 */ lw $t9, 4($s1) +/* 01B7F8 7001ABF8 02202025 */ move $a0, $s1 +/* 01B7FC 7001ABFC 02A02825 */ move $a1, $s5 +/* 01B800 7001AC00 02403025 */ move $a2, $s2 +/* 01B804 7001AC04 0320F809 */ jalr $t9 +/* 01B808 7001AC08 02C03825 */ move $a3, $s6 +/* 01B80C 7001AC0C 86AE0000 */ lh $t6, ($s5) +/* 01B810 7001AC10 3C010800 */ lui $at, 0x800 +/* 01B814 7001AC14 0012A040 */ sll $s4, $s2, 1 +/* 01B818 7001AC18 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01B81C 7001AC1C 01E1C025 */ or $t8, $t7, $at +/* 01B820 7001AC20 AC580000 */ sw $t8, ($v0) +/* 01B824 7001AC24 86790000 */ lh $t9, ($s3) +/* 01B828 7001AC28 3C010808 */ lui $at, 0x808 +/* 01B82C 7001AC2C 24510010 */ addiu $s1, $v0, 0x10 +/* 01B830 7001AC30 272F0440 */ addiu $t7, $t9, 0x440 +/* 01B834 7001AC34 000FC400 */ sll $t8, $t7, 0x10 +/* 01B838 7001AC38 3299FFFF */ andi $t9, $s4, 0xffff +/* 01B83C 7001AC3C 03197025 */ or $t6, $t8, $t9 +/* 01B840 7001AC40 AC4E0004 */ sw $t6, 4($v0) +/* 01B844 7001AC44 866F0000 */ lh $t7, ($s3) +/* 01B848 7001AC48 02209025 */ move $s2, $s1 +/* 01B84C 7001AC4C 25F80580 */ addiu $t8, $t7, 0x580 +/* 01B850 7001AC50 3319FFFF */ andi $t9, $t8, 0xffff +/* 01B854 7001AC54 03217025 */ or $t6, $t9, $at +/* 01B858 7001AC58 AC4E0008 */ sw $t6, 8($v0) +/* 01B85C 7001AC5C 86630000 */ lh $v1, ($s3) +/* 01B860 7001AC60 246F0800 */ addiu $t7, $v1, 0x800 +/* 01B864 7001AC64 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01B868 7001AC68 246E06C0 */ addiu $t6, $v1, 0x6c0 +/* 01B86C 7001AC6C 000E7C00 */ sll $t7, $t6, 0x10 +/* 01B870 7001AC70 030FC825 */ or $t9, $t8, $t7 +/* 01B874 7001AC74 AC59000C */ sw $t9, 0xc($v0) +/* 01B878 7001AC78 8E0E0038 */ lw $t6, 0x38($s0) +/* 01B87C 7001AC7C 3C198003 */ lui $t9, %hi(eqpower) +/* 01B880 7001AC80 51C00067 */ beql $t6, $zero, .L7001AE20 +/* 01B884 7001AC84 3C0E0308 */ lui $t6, 0x308 +/* 01B888 7001AC88 86180018 */ lh $t8, 0x18($s0) +/* 01B88C 7001AC8C AE000038 */ sw $zero, 0x38($s0) +/* 01B890 7001AC90 860E001A */ lh $t6, 0x1a($s0) +/* 01B894 7001AC94 00187840 */ sll $t7, $t8, 1 +/* 01B898 7001AC98 032FC821 */ addu $t9, $t9, $t7 +/* 01B89C 7001AC9C 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01B8A0 7001ACA0 8E040034 */ lw $a0, 0x34($s0) +/* 01B8A4 7001ACA4 26050024 */ addiu $a1, $s0, 0x24 +/* 01B8A8 7001ACA8 032E0019 */ multu $t9, $t6 +/* 01B8AC 7001ACAC 8619001C */ lh $t9, 0x1c($s0) +/* 01B8B0 7001ACB0 44992000 */ mtc1 $t9, $f4 +/* 01B8B4 7001ACB4 00000000 */ nop +/* 01B8B8 7001ACB8 468023A0 */ cvt.s.w $f14, $f4 +/* 01B8BC 7001ACBC 0000C012 */ mflo $t8 +/* 01B8C0 7001ACC0 00187BC3 */ sra $t7, $t8, 0xf +/* 01B8C4 7001ACC4 A60F0028 */ sh $t7, 0x28($s0) +/* 01B8C8 7001ACC8 860E0028 */ lh $t6, 0x28($s0) +/* 01B8CC 7001ACCC 448E3000 */ mtc1 $t6, $f6 +/* 01B8D0 7001ACD0 0C006ABD */ jal ultra_7001AAF4 +/* 01B8D4 7001ACD4 46803320 */ cvt.s.w $f12, $f6 +/* 01B8D8 7001ACD8 86180018 */ lh $t8, 0x18($s0) +/* 01B8DC 7001ACDC 3C0E8003 */ lui $t6, %hi(eqpower+0xFE) +/* 01B8E0 7001ACE0 A6020026 */ sh $v0, 0x26($s0) +/* 01B8E4 7001ACE4 00187840 */ sll $t7, $t8, 1 +/* 01B8E8 7001ACE8 000FC823 */ negu $t9, $t7 +/* 01B8EC 7001ACEC 01D97021 */ addu $t6, $t6, $t9 +/* 01B8F0 7001ACF0 85CE82DE */ lh $t6, %lo(eqpower+0xFE)($t6) +/* 01B8F4 7001ACF4 8618001A */ lh $t8, 0x1a($s0) +/* 01B8F8 7001ACF8 8E040034 */ lw $a0, 0x34($s0) +/* 01B8FC 7001ACFC 2605002A */ addiu $a1, $s0, 0x2a +/* 01B900 7001AD00 01D80019 */ multu $t6, $t8 +/* 01B904 7001AD04 860E001E */ lh $t6, 0x1e($s0) +/* 01B908 7001AD08 448E4000 */ mtc1 $t6, $f8 +/* 01B90C 7001AD0C 00000000 */ nop +/* 01B910 7001AD10 468043A0 */ cvt.s.w $f14, $f8 +/* 01B914 7001AD14 00007812 */ mflo $t7 +/* 01B918 7001AD18 000FCBC3 */ sra $t9, $t7, 0xf +/* 01B91C 7001AD1C A619002E */ sh $t9, 0x2e($s0) +/* 01B920 7001AD20 8618002E */ lh $t8, 0x2e($s0) +/* 01B924 7001AD24 44985000 */ mtc1 $t8, $f10 +/* 01B928 7001AD28 0C006ABD */ jal ultra_7001AAF4 +/* 01B92C 7001AD2C 46805320 */ cvt.s.w $f12, $f10 +/* 01B930 7001AD30 860F001C */ lh $t7, 0x1c($s0) +/* 01B934 7001AD34 A602002C */ sh $v0, 0x2c($s0) +/* 01B938 7001AD38 02201825 */ move $v1, $s1 +/* 01B93C 7001AD3C 3C010906 */ lui $at, 0x906 +/* 01B940 7001AD40 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01B944 7001AD44 03217025 */ or $t6, $t9, $at +/* 01B948 7001AD48 AC6E0000 */ sw $t6, ($v1) +/* 01B94C 7001AD4C AC600004 */ sw $zero, 4($v1) +/* 01B950 7001AD50 8618001E */ lh $t8, 0x1e($s0) +/* 01B954 7001AD54 26310008 */ addiu $s1, $s1, 8 +/* 01B958 7001AD58 02202025 */ move $a0, $s1 +/* 01B95C 7001AD5C 3C010904 */ lui $at, 0x904 +/* 01B960 7001AD60 330FFFFF */ andi $t7, $t8, 0xffff +/* 01B964 7001AD64 01E1C825 */ or $t9, $t7, $at +/* 01B968 7001AD68 AC990000 */ sw $t9, ($a0) +/* 01B96C 7001AD6C AC800004 */ sw $zero, 4($a0) +/* 01B970 7001AD70 860E0028 */ lh $t6, 0x28($s0) +/* 01B974 7001AD74 26310008 */ addiu $s1, $s1, 8 +/* 01B978 7001AD78 3C010902 */ lui $at, 0x902 +/* 01B97C 7001AD7C 31D8FFFF */ andi $t8, $t6, 0xffff +/* 01B980 7001AD80 03017825 */ or $t7, $t8, $at +/* 01B984 7001AD84 02202825 */ move $a1, $s1 +/* 01B988 7001AD88 ACAF0000 */ sw $t7, ($a1) +/* 01B98C 7001AD8C 860E0026 */ lh $t6, 0x26($s0) +/* 01B990 7001AD90 96190024 */ lhu $t9, 0x24($s0) +/* 01B994 7001AD94 26310008 */ addiu $s1, $s1, 8 +/* 01B998 7001AD98 000EC400 */ sll $t8, $t6, 0x10 +/* 01B99C 7001AD9C 03197025 */ or $t6, $t8, $t9 +/* 01B9A0 7001ADA0 ACAE0004 */ sw $t6, 4($a1) +/* 01B9A4 7001ADA4 860F002E */ lh $t7, 0x2e($s0) +/* 01B9A8 7001ADA8 3C010900 */ lui $at, 0x900 +/* 01B9AC 7001ADAC 02203025 */ move $a2, $s1 +/* 01B9B0 7001ADB0 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01B9B4 7001ADB4 0301C825 */ or $t9, $t8, $at +/* 01B9B8 7001ADB8 ACD90000 */ sw $t9, ($a2) +/* 01B9BC 7001ADBC 860F002C */ lh $t7, 0x2c($s0) +/* 01B9C0 7001ADC0 960E002A */ lhu $t6, 0x2a($s0) +/* 01B9C4 7001ADC4 26310008 */ addiu $s1, $s1, 8 +/* 01B9C8 7001ADC8 000FC400 */ sll $t8, $t7, 0x10 +/* 01B9CC 7001ADCC 030E7825 */ or $t7, $t8, $t6 +/* 01B9D0 7001ADD0 ACCF0004 */ sw $t7, 4($a2) +/* 01B9D4 7001ADD4 86190020 */ lh $t9, 0x20($s0) +/* 01B9D8 7001ADD8 3C010908 */ lui $at, 0x908 +/* 01B9DC 7001ADDC 02201025 */ move $v0, $s1 +/* 01B9E0 7001ADE0 3338FFFF */ andi $t8, $t9, 0xffff +/* 01B9E4 7001ADE4 03017025 */ or $t6, $t8, $at +/* 01B9E8 7001ADE8 AC4E0000 */ sw $t6, ($v0) +/* 01B9EC 7001ADEC 860F0022 */ lh $t7, 0x22($s0) +/* 01B9F0 7001ADF0 26310008 */ addiu $s1, $s1, 8 +/* 01B9F4 7001ADF4 02209025 */ move $s2, $s1 +/* 01B9F8 7001ADF8 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01B9FC 7001ADFC AC590004 */ sw $t9, 4($v0) +/* 01BA00 7001AE00 3C180309 */ lui $t8, 0x309 +/* 01BA04 7001AE04 AE580000 */ sw $t8, ($s2) +/* 01BA08 7001AE08 8E040014 */ lw $a0, 0x14($s0) +/* 01BA0C 7001AE0C 0C003A2C */ jal osVirtualToPhysical +/* 01BA10 7001AE10 26310008 */ addiu $s1, $s1, 8 +/* 01BA14 7001AE14 10000007 */ b .L7001AE34 +/* 01BA18 7001AE18 AE420004 */ sw $v0, 4($s2) +/* 01BA1C 7001AE1C 3C0E0308 */ lui $t6, 0x308 +.L7001AE20: +/* 01BA20 7001AE20 AE4E0000 */ sw $t6, ($s2) +/* 01BA24 7001AE24 8E040014 */ lw $a0, 0x14($s0) +/* 01BA28 7001AE28 0C003A2C */ jal osVirtualToPhysical +/* 01BA2C 7001AE2C 26310008 */ addiu $s1, $s1, 8 +/* 01BA30 7001AE30 AE420004 */ sw $v0, 4($s2) +.L7001AE34: +/* 01BA34 7001AE34 86AF0000 */ lh $t7, ($s5) +/* 01BA38 7001AE38 02201025 */ move $v0, $s1 +/* 01BA3C 7001AE3C 01F4C821 */ addu $t9, $t7, $s4 +/* 01BA40 7001AE40 A6B90000 */ sh $t9, ($s5) +.L7001AE44: +/* 01BA44 7001AE44 8FBF001C */ lw $ra, 0x1c($sp) +/* 01BA48 7001AE48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01BA4C 7001AE4C 03E00008 */ jr $ra +/* 01BA50 7001AE50 00000000 */ nop + +/* 01BA54 7001AE54 03E00008 */ jr $ra +/* 01BA58 7001AE58 00000000 */ nop + +glabel alEnvmixerPull +/* 01BA5C 7001AE5C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 01BA60 7001AE60 8FAE00E8 */ lw $t6, 0xe8($sp) +/* 01BA64 7001AE64 AFBF0054 */ sw $ra, 0x54($sp) +/* 01BA68 7001AE68 AFBE0050 */ sw $fp, 0x50($sp) +/* 01BA6C 7001AE6C AFB7004C */ sw $s7, 0x4c($sp) +/* 01BA70 7001AE70 AFB60048 */ sw $s6, 0x48($sp) +/* 01BA74 7001AE74 AFB50044 */ sw $s5, 0x44($sp) +/* 01BA78 7001AE78 AFB40040 */ sw $s4, 0x40($sp) +/* 01BA7C 7001AE7C AFB3003C */ sw $s3, 0x3c($sp) +/* 01BA80 7001AE80 AFB20038 */ sw $s2, 0x38($sp) +/* 01BA84 7001AE84 AFB10034 */ sw $s1, 0x34($sp) +/* 01BA88 7001AE88 AFB00030 */ sw $s0, 0x30($sp) +/* 01BA8C 7001AE8C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 01BA90 7001AE90 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 01BA94 7001AE94 AFA500DC */ sw $a1, 0xdc($sp) +/* 01BA98 7001AE98 AFA600E0 */ sw $a2, 0xe0($sp) +/* 01BA9C 7001AE9C AFA700E4 */ sw $a3, 0xe4($sp) +/* 01BAA0 7001AEA0 AFA400D0 */ sw $a0, 0xd0($sp) +/* 01BAA4 7001AEA4 AFA700C4 */ sw $a3, 0xc4($sp) +/* 01BAA8 7001AEA8 A7A000BE */ sh $zero, 0xbe($sp) +/* 01BAAC 7001AEAC A7A000CE */ sh $zero, 0xce($sp) +/* 01BAB0 7001AEB0 AFAE00D4 */ sw $t6, 0xd4($sp) +/* 01BAB4 7001AEB4 8C98003C */ lw $t8, 0x3c($a0) +/* 01BAB8 7001AEB8 0080B825 */ move $s7, $a0 +/* 01BABC 7001AEBC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 01BAC0 7001AEC0 53000162 */ beql $t8, $zero, .L7001B44C +/* 01BAC4 7001AEC4 8EEE0048 */ lw $t6, 0x48($s7) +/* 01BAC8 7001AEC8 4481B800 */ mtc1 $at, $f23 +/* 01BACC 7001AECC 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 01BAD0 7001AED0 4481A800 */ mtc1 $at, $f21 +/* 01BAD4 7001AED4 4480B000 */ mtc1 $zero, $f22 +/* 01BAD8 7001AED8 4480A000 */ mtc1 $zero, $f20 +/* 01BADC 7001AEDC 24110001 */ li $s1, 1 +/* 01BAE0 7001AEE0 8EF9003C */ lw $t9, 0x3c($s7) +.L7001AEE4: +/* 01BAE4 7001AEE4 8FA200C4 */ lw $v0, 0xc4($sp) +/* 01BAE8 7001AEE8 8FB800E0 */ lw $t8, 0xe0($sp) +/* 01BAEC 7001AEEC 8F2E0004 */ lw $t6, 4($t9) +/* 01BAF0 7001AEF0 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD) +/* 01BAF4 7001AEF4 24849890 */ addiu $a0, %lo(aAssertionFaultSSLineD) # addiu $a0, $a0, -0x6770 +/* 01BAF8 7001AEF8 01C2F023 */ subu $fp, $t6, $v0 +/* 01BAFC 7001AEFC 031E082A */ slt $at, $t8, $fp +/* 01BB00 7001AF00 14200151 */ bnez $at, .L7001B448 +/* 01BB04 7001AF04 AFAE00C4 */ sw $t6, 0xc4($sp) +/* 01BB08 7001AF08 07C10006 */ bgez $fp, .L7001AF24 +/* 01BB0C 7001AF0C 3C058003 */ lui $a1, %hi(aSamples0) +/* 01BB10 7001AF10 3C068003 */ lui $a2, %hi(aEnv_c) +/* 01BB14 7001AF14 24C698CC */ addiu $a2, %lo(aEnv_c) # addiu $a2, $a2, -0x6734 +/* 01BB18 7001AF18 24A598BC */ addiu $a1, %lo(aSamples0) # addiu $a1, $a1, -0x6744 +/* 01BB1C 7001AF1C 0C0033D1 */ jal osSyncPrintf +/* 01BB20 7001AF20 24070068 */ li $a3, 104 +.L7001AF24: +/* 01BB24 7001AF24 2BC100A1 */ slti $at, $fp, 0xa1 +/* 01BB28 7001AF28 14200008 */ bnez $at, .L7001AF4C +/* 01BB2C 7001AF2C 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD_0) +/* 01BB30 7001AF30 3C058003 */ lui $a1, %hi(aSamplesAl_max_rsp_samples) +/* 01BB34 7001AF34 3C068003 */ lui $a2, %hi(aEnv_c_0) +/* 01BB38 7001AF38 24C69920 */ addiu $a2, %lo(aEnv_c_0) # addiu $a2, $a2, -0x66e0 +/* 01BB3C 7001AF3C 24A59900 */ addiu $a1, %lo(aSamplesAl_max_rsp_samples) # addiu $a1, $a1, -0x6700 +/* 01BB40 7001AF40 248498D4 */ addiu $a0, %lo(aAssertionFaultSSLineD_0) # addiu $a0, $a0, -0x672c +/* 01BB44 7001AF44 0C0033D1 */ jal osSyncPrintf +/* 01BB48 7001AF48 24070069 */ li $a3, 105 +.L7001AF4C: +/* 01BB4C 7001AF4C 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BB50 7001AF50 94790008 */ lhu $t9, 8($v1) +/* 01BB54 7001AF54 2F210011 */ sltiu $at, $t9, 0x11 +/* 01BB58 7001AF58 10200117 */ beqz $at, .L7001B3B8 +/* 01BB5C 7001AF5C 0019C880 */ sll $t9, $t9, 2 +/* 01BB60 7001AF60 3C018003 */ lui $at, %hi(jpt_80029968) +/* 01BB64 7001AF64 00390821 */ addu $at, $at, $t9 +/* 01BB68 7001AF68 8C399968 */ lw $t9, %lo(jpt_80029968)($at) +/* 01BB6C 7001AF6C 03200008 */ jr $t9 +/* 01BB70 7001AF70 00000000 */ nop +.L7001AF74: +/* 01BB74 7001AF74 846E000A */ lh $t6, 0xa($v1) +/* 01BB78 7001AF78 00608025 */ move $s0, $v1 +/* 01BB7C 7001AF7C 51C00007 */ beql $t6, $zero, .L7001AF9C +/* 01BB80 7001AF80 8EF90008 */ lw $t9, 8($s7) +/* 01BB84 7001AF84 8EF90008 */ lw $t9, 8($s7) +/* 01BB88 7001AF88 02E02025 */ move $a0, $s7 +/* 01BB8C 7001AF8C 24050008 */ li $a1, 8 +/* 01BB90 7001AF90 0320F809 */ jalr $t9 +/* 01BB94 7001AF94 00003025 */ move $a2, $zero +/* 01BB98 7001AF98 8EF90008 */ lw $t9, 8($s7) +.L7001AF9C: +/* 01BB9C 7001AF9C 02E02025 */ move $a0, $s7 +/* 01BBA0 7001AFA0 24050005 */ li $a1, 5 +/* 01BBA4 7001AFA4 0320F809 */ jalr $t9 +/* 01BBA8 7001AFA8 8E060018 */ lw $a2, 0x18($s0) +/* 01BBAC 7001AFAC 8EF90008 */ lw $t9, 8($s7) +/* 01BBB0 7001AFB0 02E02025 */ move $a0, $s7 +/* 01BBB4 7001AFB4 24050009 */ li $a1, 9 +/* 01BBB8 7001AFB8 0320F809 */ jalr $t9 +/* 01BBBC 7001AFBC 00003025 */ move $a2, $zero +/* 01BBC0 7001AFC0 AEF10038 */ sw $s1, 0x38($s7) +/* 01BBC4 7001AFC4 AEE00030 */ sw $zero, 0x30($s7) +/* 01BBC8 7001AFC8 8E0F0014 */ lw $t7, 0x14($s0) +/* 01BBCC 7001AFCC AEEF0034 */ sw $t7, 0x34($s7) +/* 01BBD0 7001AFD0 86030010 */ lh $v1, 0x10($s0) +/* 01BBD4 7001AFD4 00630019 */ multu $v1, $v1 +/* 01BBD8 7001AFD8 00002012 */ mflo $a0 +/* 01BBDC 7001AFDC 0004C3C3 */ sra $t8, $a0, 0xf +/* 01BBE0 7001AFE0 A6F8001A */ sh $t8, 0x1a($s7) +/* 01BBE4 7001AFE4 920E0012 */ lbu $t6, 0x12($s0) +/* 01BBE8 7001AFE8 3C188003 */ lui $t8, %hi(eqpower) +/* 01BBEC 7001AFEC A6EE0018 */ sh $t6, 0x18($s7) +/* 01BBF0 7001AFF0 92190013 */ lbu $t9, 0x13($s0) +/* 01BBF4 7001AFF4 00197840 */ sll $t7, $t9, 1 +/* 01BBF8 7001AFF8 030FC021 */ addu $t8, $t8, $t7 +/* 01BBFC 7001AFFC 871881E0 */ lh $t8, %lo(eqpower)($t8) +/* 01BC00 7001B000 A6F80020 */ sh $t8, 0x20($s7) +/* 01BC04 7001B004 920E0013 */ lbu $t6, 0x13($s0) +/* 01BC08 7001B008 3C188003 */ lui $t8, %hi(eqpower+0xFE) +/* 01BC0C 7001B00C 000EC840 */ sll $t9, $t6, 1 +/* 01BC10 7001B010 00197823 */ negu $t7, $t9 +/* 01BC14 7001B014 030FC021 */ addu $t8, $t8, $t7 +/* 01BC18 7001B018 871882DE */ lh $t8, %lo(eqpower+0xFE)($t8) +/* 01BC1C 7001B01C A6F80022 */ sh $t8, 0x22($s7) +/* 01BC20 7001B020 8E0E0014 */ lw $t6, 0x14($s0) +/* 01BC24 7001B024 51C00005 */ beql $t6, $zero, .L7001B03C +/* 01BC28 7001B028 86E20018 */ lh $v0, 0x18($s7) +/* 01BC2C 7001B02C A6F1001C */ sh $s1, 0x1c($s7) +/* 01BC30 7001B030 10000013 */ b .L7001B080 +/* 01BC34 7001B034 A6F1001E */ sh $s1, 0x1e($s7) +/* 01BC38 7001B038 86E20018 */ lh $v0, 0x18($s7) +.L7001B03C: +/* 01BC3C 7001B03C 3C0F8003 */ lui $t7, %hi(eqpower) +/* 01BC40 7001B040 86E3001A */ lh $v1, 0x1a($s7) +/* 01BC44 7001B044 0002C840 */ sll $t9, $v0, 1 +/* 01BC48 7001B048 01F97821 */ addu $t7, $t7, $t9 +/* 01BC4C 7001B04C 85EF81E0 */ lh $t7, %lo(eqpower)($t7) +/* 01BC50 7001B050 0019C823 */ negu $t9, $t9 +/* 01BC54 7001B054 01E30019 */ multu $t7, $v1 +/* 01BC58 7001B058 3C0F8003 */ lui $t7, %hi(eqpower+0xFE) +/* 01BC5C 7001B05C 01F97821 */ addu $t7, $t7, $t9 +/* 01BC60 7001B060 0000C012 */ mflo $t8 +/* 01BC64 7001B064 001873C3 */ sra $t6, $t8, 0xf +/* 01BC68 7001B068 A6EE001C */ sh $t6, 0x1c($s7) +/* 01BC6C 7001B06C 85EF82DE */ lh $t7, %lo(eqpower+0xFE)($t7) +/* 01BC70 7001B070 01E30019 */ multu $t7, $v1 +/* 01BC74 7001B074 0000C012 */ mflo $t8 +/* 01BC78 7001B078 001873C3 */ sra $t6, $t8, 0xf +/* 01BC7C 7001B07C A6EE001E */ sh $t6, 0x1e($s7) +.L7001B080: +/* 01BC80 7001B080 8EF90000 */ lw $t9, ($s7) +/* 01BC84 7001B084 532000DF */ beql $t9, $zero, .L7001B404 +/* 01BC88 7001B088 87B800BE */ lh $t8, 0xbe($sp) +/* 01BC8C 7001B08C C604000C */ lwc1 $f4, 0xc($s0) +/* 01BC90 7001B090 24050007 */ li $a1, 7 +/* 01BC94 7001B094 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 01BC98 7001B098 8EE40000 */ lw $a0, ($s7) +/* 01BC9C 7001B09C 8FA600A4 */ lw $a2, 0xa4($sp) +/* 01BCA0 7001B0A0 8C990008 */ lw $t9, 8($a0) +/* 01BCA4 7001B0A4 0320F809 */ jalr $t9 +/* 01BCA8 7001B0A8 00000000 */ nop +/* 01BCAC 7001B0AC 100000D5 */ b .L7001B404 +/* 01BCB0 7001B0B0 87B800BE */ lh $t8, 0xbe($sp) +.L7001B0B4: +/* 01BCB4 7001B0B4 02E08025 */ move $s0, $s7 +/* 01BCB8 7001B0B8 27B500CE */ addiu $s5, $sp, 0xce +/* 01BCBC 7001B0BC 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BCC0 7001B0C0 03C09025 */ move $s2, $fp +/* 01BCC4 7001B0C4 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BCC8 7001B0C8 0C006AED */ jal ultra_7001ABB4 +/* 01BCCC 7001B0CC 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BCD0 7001B0D0 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BCD4 7001B0D4 8EEF0030 */ lw $t7, 0x30($s7) +/* 01BCD8 7001B0D8 8EE40034 */ lw $a0, 0x34($s7) +/* 01BCDC 7001B0DC 24110001 */ li $s1, 1 +/* 01BCE0 7001B0E0 01FE2821 */ addu $a1, $t7, $fp +/* 01BCE4 7001B0E4 00A4082A */ slt $at, $a1, $a0 +/* 01BCE8 7001B0E8 14200019 */ bnez $at, .L7001B150 +/* 01BCEC 7001B0EC AEE50030 */ sw $a1, 0x30($s7) +/* 01BCF0 7001B0F0 86E20018 */ lh $v0, 0x18($s7) +/* 01BCF4 7001B0F4 3C198003 */ lui $t9, %hi(eqpower) +/* 01BCF8 7001B0F8 86E3001A */ lh $v1, 0x1a($s7) +/* 01BCFC 7001B0FC 00027040 */ sll $t6, $v0, 1 +/* 01BD00 7001B100 032EC821 */ addu $t9, $t9, $t6 +/* 01BD04 7001B104 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01BD08 7001B108 000E7023 */ negu $t6, $t6 +/* 01BD0C 7001B10C 03230019 */ multu $t9, $v1 +/* 01BD10 7001B110 3C198003 */ lui $t9, %hi(eqpower+0xFE) +/* 01BD14 7001B114 032EC821 */ addu $t9, $t9, $t6 +/* 01BD18 7001B118 00007812 */ mflo $t7 +/* 01BD1C 7001B11C 000FC3C3 */ sra $t8, $t7, 0xf +/* 01BD20 7001B120 A6F80028 */ sh $t8, 0x28($s7) +/* 01BD24 7001B124 873982DE */ lh $t9, %lo(eqpower+0xFE)($t9) +/* 01BD28 7001B128 86EE0028 */ lh $t6, 0x28($s7) +/* 01BD2C 7001B12C AEE40030 */ sw $a0, 0x30($s7) +/* 01BD30 7001B130 03230019 */ multu $t9, $v1 +/* 01BD34 7001B134 A6EE001C */ sh $t6, 0x1c($s7) +/* 01BD38 7001B138 00007812 */ mflo $t7 +/* 01BD3C 7001B13C 000FC3C3 */ sra $t8, $t7, 0xf +/* 01BD40 7001B140 A6F8002E */ sh $t8, 0x2e($s7) +/* 01BD44 7001B144 86F9002E */ lh $t9, 0x2e($s7) +/* 01BD48 7001B148 10000040 */ b .L7001B24C +/* 01BD4C 7001B14C A6F9001E */ sh $t9, 0x1e($s7) +.L7001B150: +/* 01BD50 7001B150 86EF001C */ lh $t7, 0x1c($s7) +/* 01BD54 7001B154 86E30026 */ lh $v1, 0x26($s7) +/* 01BD58 7001B158 96E40024 */ lhu $a0, 0x24($s7) +/* 01BD5C 7001B15C 448F3000 */ mtc1 $t7, $f6 +/* 01BD60 7001B160 0003C400 */ sll $t8, $v1, 0x10 +/* 01BD64 7001B164 44984000 */ mtc1 $t8, $f8 +/* 01BD68 7001B168 44842000 */ mtc1 $a0, $f4 +/* 01BD6C 7001B16C 46803320 */ cvt.s.w $f12, $f6 +/* 01BD70 7001B170 00A01025 */ move $v0, $a1 +/* 01BD74 7001B174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01BD78 7001B178 468042A0 */ cvt.s.w $f10, $f8 +/* 01BD7C 7001B17C 04810004 */ bgez $a0, .L7001B190 +/* 01BD80 7001B180 468021A0 */ cvt.s.w $f6, $f4 +/* 01BD84 7001B184 44814000 */ mtc1 $at, $f8 +/* 01BD88 7001B188 00000000 */ nop +/* 01BD8C 7001B18C 46083180 */ add.s $f6, $f6, $f8 +.L7001B190: +/* 01BD90 7001B190 46065100 */ add.s $f4, $f10, $f6 +/* 01BD94 7001B194 86EF001E */ lh $t7, 0x1e($s7) +/* 01BD98 7001B198 86E3002C */ lh $v1, 0x2c($s7) +/* 01BD9C 7001B19C 96E4002A */ lhu $a0, 0x2a($s7) +/* 01BDA0 7001B1A0 46002221 */ cvt.d.s $f8, $f4 +/* 01BDA4 7001B1A4 44822000 */ mtc1 $v0, $f4 +/* 01BDA8 7001B1A8 46344283 */ div.d $f10, $f8, $f20 +/* 01BDAC 7001B1AC 0003C400 */ sll $t8, $v1, 0x10 +/* 01BDB0 7001B1B0 00A01025 */ move $v0, $a1 +/* 01BDB4 7001B1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01BDB8 7001B1B8 46802220 */ cvt.s.w $f8, $f4 +/* 01BDBC 7001B1BC 462051A0 */ cvt.s.d $f6, $f10 +/* 01BDC0 7001B1C0 46083282 */ mul.s $f10, $f6, $f8 +/* 01BDC4 7001B1C4 46006221 */ cvt.d.s $f8, $f12 +/* 01BDC8 7001B1C8 46005121 */ cvt.d.s $f4, $f10 +/* 01BDCC 7001B1CC 46362182 */ mul.d $f6, $f4, $f22 +/* 01BDD0 7001B1D0 46264280 */ add.d $f10, $f8, $f6 +/* 01BDD4 7001B1D4 448F4000 */ mtc1 $t7, $f8 +/* 01BDD8 7001B1D8 44983000 */ mtc1 $t8, $f6 +/* 01BDDC 7001B1DC 46205320 */ cvt.s.d $f12, $f10 +/* 01BDE0 7001B1E0 468040A0 */ cvt.s.w $f2, $f8 +/* 01BDE4 7001B1E4 4600610D */ trunc.w.s $f4, $f12 +/* 01BDE8 7001B1E8 468032A0 */ cvt.s.w $f10, $f6 +/* 01BDEC 7001B1EC 44192000 */ mfc1 $t9, $f4 +/* 01BDF0 7001B1F0 44842000 */ mtc1 $a0, $f4 +/* 01BDF4 7001B1F4 A6F9001C */ sh $t9, 0x1c($s7) +/* 01BDF8 7001B1F8 04810004 */ bgez $a0, .L7001B20C +/* 01BDFC 7001B1FC 46802220 */ cvt.s.w $f8, $f4 +/* 01BE00 7001B200 44813000 */ mtc1 $at, $f6 +/* 01BE04 7001B204 00000000 */ nop +/* 01BE08 7001B208 46064200 */ add.s $f8, $f8, $f6 +.L7001B20C: +/* 01BE0C 7001B20C 46085100 */ add.s $f4, $f10, $f8 +/* 01BE10 7001B210 460021A1 */ cvt.d.s $f6, $f4 +/* 01BE14 7001B214 44822000 */ mtc1 $v0, $f4 +/* 01BE18 7001B218 46343283 */ div.d $f10, $f6, $f20 +/* 01BE1C 7001B21C 468021A0 */ cvt.s.w $f6, $f4 +/* 01BE20 7001B220 46205220 */ cvt.s.d $f8, $f10 +/* 01BE24 7001B224 46064282 */ mul.s $f10, $f8, $f6 +/* 01BE28 7001B228 460011A1 */ cvt.d.s $f6, $f2 +/* 01BE2C 7001B22C 46005121 */ cvt.d.s $f4, $f10 +/* 01BE30 7001B230 46362202 */ mul.d $f8, $f4, $f22 +/* 01BE34 7001B234 46283280 */ add.d $f10, $f6, $f8 +/* 01BE38 7001B238 462050A0 */ cvt.s.d $f2, $f10 +/* 01BE3C 7001B23C 4600110D */ trunc.w.s $f4, $f2 +/* 01BE40 7001B240 44192000 */ mfc1 $t9, $f4 +/* 01BE44 7001B244 00000000 */ nop +/* 01BE48 7001B248 A6F9001E */ sh $t9, 0x1e($s7) +.L7001B24C: +/* 01BE4C 7001B24C 86EF001C */ lh $t7, 0x1c($s7) +/* 01BE50 7001B250 55E00003 */ bnezl $t7, .L7001B260 +/* 01BE54 7001B254 86F8001E */ lh $t8, 0x1e($s7) +/* 01BE58 7001B258 A6F1001C */ sh $s1, 0x1c($s7) +/* 01BE5C 7001B25C 86F8001E */ lh $t8, 0x1e($s7) +.L7001B260: +/* 01BE60 7001B260 57000003 */ bnezl $t8, .L7001B270 +/* 01BE64 7001B264 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BE68 7001B268 A6F1001E */ sh $s1, 0x1e($s7) +/* 01BE6C 7001B26C 8EE3003C */ lw $v1, 0x3c($s7) +.L7001B270: +/* 01BE70 7001B270 2401000C */ li $at, 12 +/* 01BE74 7001B274 84640008 */ lh $a0, 8($v1) +/* 01BE78 7001B278 54810005 */ bnel $a0, $at, .L7001B290 +/* 01BE7C 7001B27C 2401000B */ li $at, 11 +/* 01BE80 7001B280 8C6E000C */ lw $t6, 0xc($v1) +/* 01BE84 7001B284 A6EE0018 */ sh $t6, 0x18($s7) +/* 01BE88 7001B288 84640008 */ lh $a0, 8($v1) +/* 01BE8C 7001B28C 2401000B */ li $at, 11 +.L7001B290: +/* 01BE90 7001B290 5481000B */ bnel $a0, $at, .L7001B2C0 +/* 01BE94 7001B294 24010010 */ li $at, 16 +/* 01BE98 7001B298 AEE00030 */ sw $zero, 0x30($s7) +/* 01BE9C 7001B29C 8C62000C */ lw $v0, 0xc($v1) +/* 01BEA0 7001B2A0 00420019 */ multu $v0, $v0 +/* 01BEA4 7001B2A4 00001012 */ mflo $v0 +/* 01BEA8 7001B2A8 0002CBC3 */ sra $t9, $v0, 0xf +/* 01BEAC 7001B2AC A6F9001A */ sh $t9, 0x1a($s7) +/* 01BEB0 7001B2B0 8C6F0010 */ lw $t7, 0x10($v1) +/* 01BEB4 7001B2B4 AEEF0034 */ sw $t7, 0x34($s7) +/* 01BEB8 7001B2B8 84640008 */ lh $a0, 8($v1) +/* 01BEBC 7001B2BC 24010010 */ li $at, 16 +.L7001B2C0: +/* 01BEC0 7001B2C0 1481000E */ bne $a0, $at, .L7001B2FC +/* 01BEC4 7001B2C4 00000000 */ nop +/* 01BEC8 7001B2C8 8C78000C */ lw $t8, 0xc($v1) +/* 01BECC 7001B2CC 3C198003 */ lui $t9, %hi(eqpower) +/* 01BED0 7001B2D0 00187040 */ sll $t6, $t8, 1 +/* 01BED4 7001B2D4 032EC821 */ addu $t9, $t9, $t6 +/* 01BED8 7001B2D8 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01BEDC 7001B2DC A6F90020 */ sh $t9, 0x20($s7) +/* 01BEE0 7001B2E0 8C6F000C */ lw $t7, 0xc($v1) +/* 01BEE4 7001B2E4 3C198003 */ lui $t9, %hi(eqpower+0xFE) +/* 01BEE8 7001B2E8 000FC040 */ sll $t8, $t7, 1 +/* 01BEEC 7001B2EC 00187023 */ negu $t6, $t8 +/* 01BEF0 7001B2F0 032EC821 */ addu $t9, $t9, $t6 +/* 01BEF4 7001B2F4 873982DE */ lh $t9, %lo(eqpower+0xFE)($t9) +/* 01BEF8 7001B2F8 A6F90022 */ sh $t9, 0x22($s7) +.L7001B2FC: +/* 01BEFC 7001B2FC 10000040 */ b .L7001B400 +/* 01BF00 7001B300 AEF10038 */ sw $s1, 0x38($s7) +.L7001B304: +/* 01BF04 7001B304 846F000A */ lh $t7, 0xa($v1) +/* 01BF08 7001B308 00608025 */ move $s0, $v1 +/* 01BF0C 7001B30C 51E00007 */ beql $t7, $zero, .L7001B32C +/* 01BF10 7001B310 8EF90008 */ lw $t9, 8($s7) +/* 01BF14 7001B314 8EF90008 */ lw $t9, 8($s7) +/* 01BF18 7001B318 02E02025 */ move $a0, $s7 +/* 01BF1C 7001B31C 24050008 */ li $a1, 8 +/* 01BF20 7001B320 0320F809 */ jalr $t9 +/* 01BF24 7001B324 00003025 */ move $a2, $zero +/* 01BF28 7001B328 8EF90008 */ lw $t9, 8($s7) +.L7001B32C: +/* 01BF2C 7001B32C 02E02025 */ move $a0, $s7 +/* 01BF30 7001B330 24050005 */ li $a1, 5 +/* 01BF34 7001B334 0320F809 */ jalr $t9 +/* 01BF38 7001B338 8E06000C */ lw $a2, 0xc($s0) +/* 01BF3C 7001B33C 8EF90008 */ lw $t9, 8($s7) +/* 01BF40 7001B340 02E02025 */ move $a0, $s7 +/* 01BF44 7001B344 24050009 */ li $a1, 9 +/* 01BF48 7001B348 0320F809 */ jalr $t9 +/* 01BF4C 7001B34C 00003025 */ move $a2, $zero +/* 01BF50 7001B350 1000002C */ b .L7001B404 +/* 01BF54 7001B354 87B800BE */ lh $t8, 0xbe($sp) +.L7001B358: +/* 01BF58 7001B358 02E08025 */ move $s0, $s7 +/* 01BF5C 7001B35C 27B500CE */ addiu $s5, $sp, 0xce +/* 01BF60 7001B360 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BF64 7001B364 03C09025 */ move $s2, $fp +/* 01BF68 7001B368 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BF6C 7001B36C 0C006AED */ jal ultra_7001ABB4 +/* 01BF70 7001B370 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BF74 7001B374 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BF78 7001B378 8EF90008 */ lw $t9, 8($s7) +/* 01BF7C 7001B37C 24110001 */ li $s1, 1 +/* 01BF80 7001B380 02E02025 */ move $a0, $s7 +/* 01BF84 7001B384 24050004 */ li $a1, 4 +/* 01BF88 7001B388 0320F809 */ jalr $t9 +/* 01BF8C 7001B38C 00003025 */ move $a2, $zero +/* 01BF90 7001B390 1000001C */ b .L7001B404 +/* 01BF94 7001B394 87B800BE */ lh $t8, 0xbe($sp) +.L7001B398: +/* 01BF98 7001B398 8C78000C */ lw $t8, 0xc($v1) +/* 01BF9C 7001B39C 3C048002 */ lui $a0, %hi(alGlobals) +/* 01BFA0 7001B3A0 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 01BFA4 7001B3A4 AF0000D8 */ sw $zero, 0xd8($t8) +/* 01BFA8 7001B3A8 0C003C08 */ jal _freePVoice +/* 01BFAC 7001B3AC 8C65000C */ lw $a1, 0xc($v1) +/* 01BFB0 7001B3B0 10000014 */ b .L7001B404 +/* 01BFB4 7001B3B4 87B800BE */ lh $t8, 0xbe($sp) +.L7001B3B8: +/* 01BFB8 7001B3B8 02E08025 */ move $s0, $s7 +/* 01BFBC 7001B3BC 27B500CE */ addiu $s5, $sp, 0xce +/* 01BFC0 7001B3C0 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BFC4 7001B3C4 03C09025 */ move $s2, $fp +/* 01BFC8 7001B3C8 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BFCC 7001B3CC 0C006AED */ jal ultra_7001ABB4 +/* 01BFD0 7001B3D0 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BFD4 7001B3D4 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BFD8 7001B3D8 8EEE0030 */ lw $t6, 0x30($s7) +/* 01BFDC 7001B3DC 8EF90008 */ lw $t9, 8($s7) +/* 01BFE0 7001B3E0 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BFE4 7001B3E4 01DE7821 */ addu $t7, $t6, $fp +/* 01BFE8 7001B3E8 AEEF0030 */ sw $t7, 0x30($s7) +/* 01BFEC 7001B3EC 24110001 */ li $s1, 1 +/* 01BFF0 7001B3F0 02E02025 */ move $a0, $s7 +/* 01BFF4 7001B3F4 8C66000C */ lw $a2, 0xc($v1) +/* 01BFF8 7001B3F8 0320F809 */ jalr $t9 +/* 01BFFC 7001B3FC 84650008 */ lh $a1, 8($v1) +.L7001B400: +/* 01C000 7001B400 87B800BE */ lh $t8, 0xbe($sp) +.L7001B404: +/* 01C004 7001B404 8FB900E0 */ lw $t9, 0xe0($sp) +/* 01C008 7001B408 001E7040 */ sll $t6, $fp, 1 +/* 01C00C 7001B40C 030E7821 */ addu $t7, $t8, $t6 +/* 01C010 7001B410 033EC023 */ subu $t8, $t9, $fp +/* 01C014 7001B414 A7AF00BE */ sh $t7, 0xbe($sp) +/* 01C018 7001B418 AFB800E0 */ sw $t8, 0xe0($sp) +/* 01C01C 7001B41C 8EE4003C */ lw $a0, 0x3c($s7) +/* 01C020 7001B420 8C8E0000 */ lw $t6, ($a0) +/* 01C024 7001B424 15C00002 */ bnez $t6, .L7001B430 +/* 01C028 7001B428 AEEE003C */ sw $t6, 0x3c($s7) +/* 01C02C 7001B42C AEE00040 */ sw $zero, 0x40($s7) +.L7001B430: +/* 01C030 7001B430 0C003C2E */ jal __freeParam +/* 01C034 7001B434 00000000 */ nop +/* 01C038 7001B438 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01C03C 7001B43C 8F38003C */ lw $t8, 0x3c($t9) +/* 01C040 7001B440 5700FEA8 */ bnezl $t8, .L7001AEE4 +/* 01C044 7001B444 8EF9003C */ lw $t9, 0x3c($s7) +.L7001B448: +/* 01C048 7001B448 8EEE0048 */ lw $t6, 0x48($s7) +.L7001B44C: +/* 01C04C 7001B44C 24110001 */ li $s1, 1 +/* 01C050 7001B450 02E08025 */ move $s0, $s7 +/* 01C054 7001B454 162E000B */ bne $s1, $t6, .L7001B484 +/* 01C058 7001B458 27B500CE */ addiu $s5, $sp, 0xce +/* 01C05C 7001B45C 27B300BE */ addiu $s3, $sp, 0xbe +/* 01C060 7001B460 8FB200E0 */ lw $s2, 0xe0($sp) +/* 01C064 7001B464 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01C068 7001B468 0C006AED */ jal ultra_7001ABB4 +/* 01C06C 7001B46C 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01C070 7001B470 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01C074 7001B474 8EEF0030 */ lw $t7, 0x30($s7) +/* 01C078 7001B478 8FB900E0 */ lw $t9, 0xe0($sp) +/* 01C07C 7001B47C 01F9C021 */ addu $t8, $t7, $t9 +/* 01C080 7001B480 AEF80030 */ sw $t8, 0x30($s7) +.L7001B484: +/* 01C084 7001B484 8EE40034 */ lw $a0, 0x34($s7) +/* 01C088 7001B488 8EEE0030 */ lw $t6, 0x30($s7) +/* 01C08C 7001B48C 008E082A */ slt $at, $a0, $t6 +/* 01C090 7001B490 50200003 */ beql $at, $zero, .L7001B4A0 +/* 01C094 7001B494 8FBF0054 */ lw $ra, 0x54($sp) +/* 01C098 7001B498 AEE40030 */ sw $a0, 0x30($s7) +/* 01C09C 7001B49C 8FBF0054 */ lw $ra, 0x54($sp) +.L7001B4A0: +/* 01C0A0 7001B4A0 8FA200D4 */ lw $v0, 0xd4($sp) +/* 01C0A4 7001B4A4 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 01C0A8 7001B4A8 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 01C0AC 7001B4AC 8FB00030 */ lw $s0, 0x30($sp) +/* 01C0B0 7001B4B0 8FB10034 */ lw $s1, 0x34($sp) +/* 01C0B4 7001B4B4 8FB20038 */ lw $s2, 0x38($sp) +/* 01C0B8 7001B4B8 8FB3003C */ lw $s3, 0x3c($sp) +/* 01C0BC 7001B4BC 8FB40040 */ lw $s4, 0x40($sp) +/* 01C0C0 7001B4C0 8FB50044 */ lw $s5, 0x44($sp) +/* 01C0C4 7001B4C4 8FB60048 */ lw $s6, 0x48($sp) +/* 01C0C8 7001B4C8 8FB7004C */ lw $s7, 0x4c($sp) +/* 01C0CC 7001B4CC 8FBE0050 */ lw $fp, 0x50($sp) +/* 01C0D0 7001B4D0 03E00008 */ jr $ra +/* 01C0D4 7001B4D4 27BD00D8 */ addiu $sp, $sp, 0xd8 + +/* 01C0D8 7001B4D8 00000000 */ nop +/* 01C0DC 7001B4DC 00000000 */ nop + +.section .data +glabel eqpower +.half 32767,32764,32757,32744,32727,32704,32677,32644 +.half 32607,32564,32517,32464,32407,32344,32277,32205 +.half 32127,32045,31958,31866,31770,31668,31561,31450 +.half 31334,31213,31087,30957,30822,30682,30537,30388 +.half 30234,30075,29912,29744,29572,29395,29214,29028 +.half 28838,28643,28444,28241,28033,27821,27605,27385 +.half 27160,26931,26698,26461,26220,25975,25726,25473 +.half 25216,24956,24691,24423,24151,23875,23596,23313 +.half 23026,22736,22442,22145,21845,21541,21234,20924 +.half 20610,20294,19974,19651,19325,18997,18665,18331 +.half 17993,17653,17310,16965,16617,16266,15913,15558 +.half 15200,14840,14477,14113,13746,13377,13006,12633 +.half 12258,11881,11503,11122,10740,10357, 9971, 9584 +.half 9196, 8806, 8415, 8023, 7630, 7235, 6839, 6442 +.half 6044, 5646, 5246, 4845, 4444, 4042, 3640, 3237 +.half 2833, 2429, 2025, 1620, 1216, 810, 405, 0 + +.section .rodata +glabel aAssertionFaultSSLineD +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 2 +glabel aSamples0 +.asciiz "samples >= 0" +.align 2 +glabel aEnv_c +.asciiz "env.c" +.align 2 +glabel aAssertionFaultSSLineD_0 +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 4 +glabel aSamplesAl_max_rsp_samples +.asciiz "samples <= AL_MAX_RSP_SAMPLES" +.align 4 +glabel aEnv_c_0 +.asciiz "env.c" +.align 2 +glabel aAssertionFaultSSLineD_1 +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 2 +glabel aSource +.asciiz "source" +.align 2 +glabel aEnv_c_1 +.asciiz "env.c" +.align 2 +glabel F32_80029964 +.float 65535.0 +glabel jpt_80029968 +.word .L7001B398 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B0B4 +.word .L7001B0B4 +.word .L7001AF74 +.word .L7001B304 +.word .L7001B358 +.word .L7001B0B4 +.align 4 diff --git a/src/libultra/epirawdma.s b/src/libultra/epirawdma.s new file mode 100644 index 0000000..6d6567c --- /dev/null +++ b/src/libultra/epirawdma.s @@ -0,0 +1,77 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEPiRawStartDma +/* 01F130 7001E530 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01F134 7001E534 AFBF001C */ sw $ra, 0x1c($sp) +/* 01F138 7001E538 AFA40028 */ sw $a0, 0x28($sp) +/* 01F13C 7001E53C AFA5002C */ sw $a1, 0x2c($sp) +/* 01F140 7001E540 AFA60030 */ sw $a2, 0x30($sp) +/* 01F144 7001E544 AFA70034 */ sw $a3, 0x34($sp) +/* 01F148 7001E548 AFB10018 */ sw $s1, 0x18($sp) +/* 01F14C 7001E54C AFB00014 */ sw $s0, 0x14($sp) +/* 01F150 7001E550 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 01F154 7001E554 8DD00010 */ lw $s0, %lo(PI_STATUS_REG)($t6) +/* 01F158 7001E558 320F0003 */ andi $t7, $s0, 3 +/* 01F15C 7001E55C 11E00006 */ beqz $t7, .L7001E578 +/* 01F160 7001E560 00000000 */ nop +.L7001E564: +/* 01F164 7001E564 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 01F168 7001E568 8F100010 */ lw $s0, %lo(PI_STATUS_REG)($t8) +/* 01F16C 7001E56C 32190003 */ andi $t9, $s0, 3 +/* 01F170 7001E570 1720FFFC */ bnez $t9, .L7001E564 +/* 01F174 7001E574 00000000 */ nop +.L7001E578: +/* 01F178 7001E578 0C003A2C */ jal osVirtualToPhysical +/* 01F17C 7001E57C 8FA40034 */ lw $a0, 0x34($sp) +/* 01F180 7001E580 3C08A460 */ lui $t0, 0xa460 +/* 01F184 7001E584 AD020000 */ sw $v0, ($t0) +/* 01F188 7001E588 8FA90028 */ lw $t1, 0x28($sp) +/* 01F18C 7001E58C 8FAB0030 */ lw $t3, 0x30($sp) +/* 01F190 7001E590 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01F194 7001E594 8D2A000C */ lw $t2, 0xc($t1) +/* 01F198 7001E598 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01F19C 7001E59C 3C0EA460 */ lui $t6, %hi(PI_CART_ADDR_REG) # $t6, 0xa460 +/* 01F1A0 7001E5A0 014B6025 */ or $t4, $t2, $t3 +/* 01F1A4 7001E5A4 01816824 */ and $t5, $t4, $at +/* 01F1A8 7001E5A8 ADCD0004 */ sw $t5, %lo(PI_CART_ADDR_REG)($t6) +/* 01F1AC 7001E5AC 8FB1002C */ lw $s1, 0x2c($sp) +/* 01F1B0 7001E5B0 12200005 */ beqz $s1, .L7001E5C8 +/* 01F1B4 7001E5B4 24010001 */ li $at, 1 +/* 01F1B8 7001E5B8 12210008 */ beq $s1, $at, .L7001E5DC +/* 01F1BC 7001E5BC 00000000 */ nop +/* 01F1C0 7001E5C0 1000000B */ b .L7001E5F0 +/* 01F1C4 7001E5C4 00000000 */ nop +.L7001E5C8: +/* 01F1C8 7001E5C8 8FAF0038 */ lw $t7, 0x38($sp) +/* 01F1CC 7001E5CC 3C19A460 */ lui $t9, %hi(PI_WR_LEN_REG) # $t9, 0xa460 +/* 01F1D0 7001E5D0 25F8FFFF */ addiu $t8, $t7, -1 +/* 01F1D4 7001E5D4 10000008 */ b .L7001E5F8 +/* 01F1D8 7001E5D8 AF38000C */ sw $t8, %lo(PI_WR_LEN_REG)($t9) +.L7001E5DC: +/* 01F1DC 7001E5DC 8FA80038 */ lw $t0, 0x38($sp) +/* 01F1E0 7001E5E0 3C0AA460 */ lui $t2, %hi(PI_RD_LEN_REG) # $t2, 0xa460 +/* 01F1E4 7001E5E4 2509FFFF */ addiu $t1, $t0, -1 +/* 01F1E8 7001E5E8 10000003 */ b .L7001E5F8 +/* 01F1EC 7001E5EC AD490008 */ sw $t1, %lo(PI_RD_LEN_REG)($t2) +.L7001E5F0: +/* 01F1F0 7001E5F0 10000002 */ b .L7001E5FC +/* 01F1F4 7001E5F4 2402FFFF */ li $v0, -1 +.L7001E5F8: +/* 01F1F8 7001E5F8 00001025 */ move $v0, $zero +.L7001E5FC: +/* 01F1FC 7001E5FC 8FBF001C */ lw $ra, 0x1c($sp) +/* 01F200 7001E600 8FB00014 */ lw $s0, 0x14($sp) +/* 01F204 7001E604 8FB10018 */ lw $s1, 0x18($sp) +/* 01F208 7001E608 03E00008 */ jr $ra +/* 01F20C 7001E60C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/epirawwrite.s b/src/libultra/epirawwrite.s new file mode 100644 index 0000000..9bf099a --- /dev/null +++ b/src/libultra/epirawwrite.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEPiRawWriteIo +/* 021940 70020D40 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 021944 70020D44 8DC70010 */ lw $a3, %lo(PI_STATUS_REG)($t6) +/* 021948 70020D48 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02194C 70020D4C 30EF0003 */ andi $t7, $a3, 3 +/* 021950 70020D50 11E00006 */ beqz $t7, .L70020D6C +/* 021954 70020D54 00000000 */ nop +.L70020D58: +/* 021958 70020D58 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 02195C 70020D5C 8F070010 */ lw $a3, %lo(PI_STATUS_REG)($t8) +/* 021960 70020D60 30F90003 */ andi $t9, $a3, 3 +/* 021964 70020D64 1720FFFC */ bnez $t9, .L70020D58 +/* 021968 70020D68 00000000 */ nop +.L70020D6C: +/* 02196C 70020D6C 8C88000C */ lw $t0, 0xc($a0) +/* 021970 70020D70 3C01A000 */ lui $at, 0xa000 +/* 021974 70020D74 27BD0008 */ addiu $sp, $sp, 8 +/* 021978 70020D78 01054825 */ or $t1, $t0, $a1 +/* 02197C 70020D7C 01215025 */ or $t2, $t1, $at +/* 021980 70020D80 AD460000 */ sw $a2, ($t2) +/* 021984 70020D84 03E00008 */ jr $ra +/* 021988 70020D88 00001025 */ move $v0, $zero + diff --git a/src/libultra/event.s b/src/libultra/event.s new file mode 100644 index 0000000..af9e72b --- /dev/null +++ b/src/libultra/event.s @@ -0,0 +1,244 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alEvtqFlushType +/* 0139E0 70012DE0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0139E4 70012DE4 AFB30020 */ sw $s3, 0x20($sp) +/* 0139E8 70012DE8 00059C00 */ sll $s3, $a1, 0x10 +/* 0139EC 70012DEC AFB2001C */ sw $s2, 0x1c($sp) +/* 0139F0 70012DF0 00809025 */ move $s2, $a0 +/* 0139F4 70012DF4 00137403 */ sra $t6, $s3, 0x10 +/* 0139F8 70012DF8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0139FC 70012DFC 01C09825 */ move $s3, $t6 +/* 013A00 70012E00 AFB10018 */ sw $s1, 0x18($sp) +/* 013A04 70012E04 AFB00014 */ sw $s0, 0x14($sp) +/* 013A08 70012E08 AFA50044 */ sw $a1, 0x44($sp) +/* 013A0C 70012E0C 0C00374C */ jal osSetIntMask +/* 013A10 70012E10 24040001 */ li $a0, 1 +/* 013A14 70012E14 AFA2002C */ sw $v0, 0x2c($sp) +/* 013A18 70012E18 8E500008 */ lw $s0, 8($s2) +/* 013A1C 70012E1C 12000012 */ beqz $s0, .L70012E68 +/* 013A20 70012E20 00000000 */ nop +.L70012E24: +/* 013A24 70012E24 860F000C */ lh $t7, 0xc($s0) +/* 013A28 70012E28 8E110000 */ lw $s1, ($s0) +/* 013A2C 70012E2C 166F000C */ bne $s3, $t7, .L70012E60 +/* 013A30 70012E30 00000000 */ nop +/* 013A34 70012E34 12200005 */ beqz $s1, .L70012E4C +/* 013A38 70012E38 00000000 */ nop +/* 013A3C 70012E3C 8E380008 */ lw $t8, 8($s1) +/* 013A40 70012E40 8E190008 */ lw $t9, 8($s0) +/* 013A44 70012E44 03194021 */ addu $t0, $t8, $t9 +/* 013A48 70012E48 AE280008 */ sw $t0, 8($s1) +.L70012E4C: +/* 013A4C 70012E4C 0C003AA4 */ jal alUnlink +/* 013A50 70012E50 02002025 */ move $a0, $s0 +/* 013A54 70012E54 02002025 */ move $a0, $s0 +/* 013A58 70012E58 0C003AB0 */ jal alLink +/* 013A5C 70012E5C 02402825 */ move $a1, $s2 +.L70012E60: +/* 013A60 70012E60 1620FFF0 */ bnez $s1, .L70012E24 +/* 013A64 70012E64 02208025 */ move $s0, $s1 +.L70012E68: +/* 013A68 70012E68 0C00374C */ jal osSetIntMask +/* 013A6C 70012E6C 8FA4002C */ lw $a0, 0x2c($sp) +/* 013A70 70012E70 8FBF0024 */ lw $ra, 0x24($sp) +/* 013A74 70012E74 8FB00014 */ lw $s0, 0x14($sp) +/* 013A78 70012E78 8FB10018 */ lw $s1, 0x18($sp) +/* 013A7C 70012E7C 8FB2001C */ lw $s2, 0x1c($sp) +/* 013A80 70012E80 8FB30020 */ lw $s3, 0x20($sp) +/* 013A84 70012E84 03E00008 */ jr $ra +/* 013A88 70012E88 27BD0040 */ addiu $sp, $sp, 0x40 + +glabel alEvtqFlush +/* 013A8C 70012E8C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 013A90 70012E90 AFB20020 */ sw $s2, 0x20($sp) +/* 013A94 70012E94 00809025 */ move $s2, $a0 +/* 013A98 70012E98 AFBF0024 */ sw $ra, 0x24($sp) +/* 013A9C 70012E9C AFB1001C */ sw $s1, 0x1c($sp) +/* 013AA0 70012EA0 AFB00018 */ sw $s0, 0x18($sp) +/* 013AA4 70012EA4 0C00374C */ jal osSetIntMask +/* 013AA8 70012EA8 24040001 */ li $a0, 1 +/* 013AAC 70012EAC AFA2002C */ sw $v0, 0x2c($sp) +/* 013AB0 70012EB0 8E500008 */ lw $s0, 8($s2) +/* 013AB4 70012EB4 12000009 */ beqz $s0, .L70012EDC +/* 013AB8 70012EB8 00000000 */ nop +.L70012EBC: +/* 013ABC 70012EBC 8E110000 */ lw $s1, ($s0) +/* 013AC0 70012EC0 0C003AA4 */ jal alUnlink +/* 013AC4 70012EC4 02002025 */ move $a0, $s0 +/* 013AC8 70012EC8 02002025 */ move $a0, $s0 +/* 013ACC 70012ECC 0C003AB0 */ jal alLink +/* 013AD0 70012ED0 02402825 */ move $a1, $s2 +/* 013AD4 70012ED4 1620FFF9 */ bnez $s1, .L70012EBC +/* 013AD8 70012ED8 02208025 */ move $s0, $s1 +.L70012EDC: +/* 013ADC 70012EDC 0C00374C */ jal osSetIntMask +/* 013AE0 70012EE0 8FA4002C */ lw $a0, 0x2c($sp) +/* 013AE4 70012EE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 013AE8 70012EE8 8FB00018 */ lw $s0, 0x18($sp) +/* 013AEC 70012EEC 8FB1001C */ lw $s1, 0x1c($sp) +/* 013AF0 70012EF0 8FB20020 */ lw $s2, 0x20($sp) +/* 013AF4 70012EF4 03E00008 */ jr $ra +/* 013AF8 70012EF8 27BD0038 */ addiu $sp, $sp, 0x38 + +glabel alEvtqPostEvent +/* 013AFC 70012EFC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013B00 70012F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 013B04 70012F04 AFA40030 */ sw $a0, 0x30($sp) +/* 013B08 70012F08 AFA50034 */ sw $a1, 0x34($sp) +/* 013B0C 70012F0C AFA00020 */ sw $zero, 0x20($sp) +/* 013B10 70012F10 24040001 */ li $a0, 1 +/* 013B14 70012F14 0C00374C */ jal osSetIntMask +/* 013B18 70012F18 AFA60038 */ sw $a2, 0x38($sp) +/* 013B1C 70012F1C 8FAE0030 */ lw $t6, 0x30($sp) +/* 013B20 70012F20 8FA70038 */ lw $a3, 0x38($sp) +/* 013B24 70012F24 00402825 */ move $a1, $v0 +/* 013B28 70012F28 8DC80000 */ lw $t0, ($t6) +/* 013B2C 70012F2C 15000005 */ bnez $t0, .L70012F44 +/* 013B30 70012F30 01002025 */ move $a0, $t0 +/* 013B34 70012F34 0C00374C */ jal osSetIntMask +/* 013B38 70012F38 00402025 */ move $a0, $v0 +/* 013B3C 70012F3C 10000035 */ b .L70013014 +/* 013B40 70012F40 8FBF0014 */ lw $ra, 0x14($sp) +.L70012F44: +/* 013B44 70012F44 AFA5001C */ sw $a1, 0x1c($sp) +/* 013B48 70012F48 AFA70038 */ sw $a3, 0x38($sp) +/* 013B4C 70012F4C 0C003AA4 */ jal alUnlink +/* 013B50 70012F50 AFA8002C */ sw $t0, 0x2c($sp) +/* 013B54 70012F54 8FA8002C */ lw $t0, 0x2c($sp) +/* 013B58 70012F58 8FA40034 */ lw $a0, 0x34($sp) +/* 013B5C 70012F5C 24060010 */ li $a2, 16 +/* 013B60 70012F60 0C0075A4 */ jal alCopy +/* 013B64 70012F64 2505000C */ addiu $a1, $t0, 0xc +/* 013B68 70012F68 8FA70038 */ lw $a3, 0x38($sp) +/* 013B6C 70012F6C 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff +/* 013B70 70012F70 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 013B74 70012F74 14E10003 */ bne $a3, $at, .L70012F84 +/* 013B78 70012F78 8FA8002C */ lw $t0, 0x2c($sp) +/* 013B7C 70012F7C 240FFFFF */ li $t7, -1 +/* 013B80 70012F80 AFAF0020 */ sw $t7, 0x20($sp) +.L70012F84: +/* 013B84 70012F84 8FA20030 */ lw $v0, 0x30($sp) +/* 013B88 70012F88 2401FFF8 */ li $at, -8 +/* 013B8C 70012F8C 8FB80020 */ lw $t8, 0x20($sp) +/* 013B90 70012F90 1041001D */ beq $v0, $at, .L70013008 +/* 013B94 70012F94 24450008 */ addiu $a1, $v0, 8 +.L70012F98: +/* 013B98 70012F98 8CA20000 */ lw $v0, ($a1) +/* 013B9C 70012F9C 5440000B */ bnezl $v0, .L70012FCC +/* 013BA0 70012FA0 8C430008 */ lw $v1, 8($v0) +/* 013BA4 70012FA4 53000004 */ beql $t8, $zero, .L70012FB8 +/* 013BA8 70012FA8 AD070008 */ sw $a3, 8($t0) +/* 013BAC 70012FAC 10000002 */ b .L70012FB8 +/* 013BB0 70012FB0 AD000008 */ sw $zero, 8($t0) +/* 013BB4 70012FB4 AD070008 */ sw $a3, 8($t0) +.L70012FB8: +/* 013BB8 70012FB8 0C003AB0 */ jal alLink +/* 013BBC 70012FBC 01002025 */ move $a0, $t0 +/* 013BC0 70012FC0 10000011 */ b .L70013008 +/* 013BC4 70012FC4 00000000 */ nop +/* 013BC8 70012FC8 8C430008 */ lw $v1, 8($v0) +.L70012FCC: +/* 013BCC 70012FCC 00403025 */ move $a2, $v0 +/* 013BD0 70012FD0 00E3082A */ slt $at, $a3, $v1 +/* 013BD4 70012FD4 5020000A */ beql $at, $zero, .L70013000 +/* 013BD8 70012FD8 00402825 */ move $a1, $v0 +/* 013BDC 70012FDC AD070008 */ sw $a3, 8($t0) +/* 013BE0 70012FE0 8CD90008 */ lw $t9, 8($a2) +/* 013BE4 70012FE4 01002025 */ move $a0, $t0 +/* 013BE8 70012FE8 03274823 */ subu $t1, $t9, $a3 +/* 013BEC 70012FEC 0C003AB0 */ jal alLink +/* 013BF0 70012FF0 ACC90008 */ sw $t1, 8($a2) +/* 013BF4 70012FF4 10000004 */ b .L70013008 +/* 013BF8 70012FF8 00000000 */ nop +/* 013BFC 70012FFC 00402825 */ move $a1, $v0 +.L70013000: +/* 013C00 70013000 1440FFE5 */ bnez $v0, .L70012F98 +/* 013C04 70013004 00E33823 */ subu $a3, $a3, $v1 +.L70013008: +/* 013C08 70013008 0C00374C */ jal osSetIntMask +/* 013C0C 7001300C 8FA4001C */ lw $a0, 0x1c($sp) +/* 013C10 70013010 8FBF0014 */ lw $ra, 0x14($sp) +.L70013014: +/* 013C14 70013014 27BD0030 */ addiu $sp, $sp, 0x30 +/* 013C18 70013018 03E00008 */ jr $ra +/* 013C1C 7001301C 00000000 */ nop + +glabel alEvtqNextEvent +/* 013C20 70013020 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013C24 70013024 AFBF001C */ sw $ra, 0x1c($sp) +/* 013C28 70013028 AFA40030 */ sw $a0, 0x30($sp) +/* 013C2C 7001302C AFB00018 */ sw $s0, 0x18($sp) +/* 013C30 70013030 AFA50034 */ sw $a1, 0x34($sp) +/* 013C34 70013034 0C00374C */ jal osSetIntMask +/* 013C38 70013038 24040001 */ li $a0, 1 +/* 013C3C 7001303C 8FAE0030 */ lw $t6, 0x30($sp) +/* 013C40 70013040 AFA20024 */ sw $v0, 0x24($sp) +/* 013C44 70013044 8FB80034 */ lw $t8, 0x34($sp) +/* 013C48 70013048 8DD00008 */ lw $s0, 8($t6) +/* 013C4C 7001304C 00001825 */ move $v1, $zero +/* 013C50 70013050 5200000D */ beql $s0, $zero, .L70013088 +/* 013C54 70013054 240FFFFF */ li $t7, -1 +/* 013C58 70013058 0C003AA4 */ jal alUnlink +/* 013C5C 7001305C 02002025 */ move $a0, $s0 +/* 013C60 70013060 2604000C */ addiu $a0, $s0, 0xc +/* 013C64 70013064 8FA50034 */ lw $a1, 0x34($sp) +/* 013C68 70013068 0C0075A4 */ jal alCopy +/* 013C6C 7001306C 24060010 */ li $a2, 16 +/* 013C70 70013070 02002025 */ move $a0, $s0 +/* 013C74 70013074 0C003AB0 */ jal alLink +/* 013C78 70013078 8FA50030 */ lw $a1, 0x30($sp) +/* 013C7C 7001307C 10000003 */ b .L7001308C +/* 013C80 70013080 8E030008 */ lw $v1, 8($s0) +/* 013C84 70013084 240FFFFF */ li $t7, -1 +.L70013088: +/* 013C88 70013088 A70F0000 */ sh $t7, ($t8) +.L7001308C: +/* 013C8C 7001308C 8FA40024 */ lw $a0, 0x24($sp) +/* 013C90 70013090 0C00374C */ jal osSetIntMask +/* 013C94 70013094 AFA30028 */ sw $v1, 0x28($sp) +/* 013C98 70013098 8FBF001C */ lw $ra, 0x1c($sp) +/* 013C9C 7001309C 8FA20028 */ lw $v0, 0x28($sp) +/* 013CA0 700130A0 8FB00018 */ lw $s0, 0x18($sp) +/* 013CA4 700130A4 03E00008 */ jr $ra +/* 013CA8 700130A8 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alEvtqNew +/* 013CAC 700130AC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013CB0 700130B0 AFB30020 */ sw $s3, 0x20($sp) +/* 013CB4 700130B4 AFB2001C */ sw $s2, 0x1c($sp) +/* 013CB8 700130B8 AFB00014 */ sw $s0, 0x14($sp) +/* 013CBC 700130BC AFBF0024 */ sw $ra, 0x24($sp) +/* 013CC0 700130C0 AFB10018 */ sw $s1, 0x18($sp) +/* 013CC4 700130C4 00809025 */ move $s2, $a0 +/* 013CC8 700130C8 00C09825 */ move $s3, $a2 +/* 013CCC 700130CC AC800010 */ sw $zero, 0x10($a0) +/* 013CD0 700130D0 AC800008 */ sw $zero, 8($a0) +/* 013CD4 700130D4 AC80000C */ sw $zero, 0xc($a0) +/* 013CD8 700130D8 AC800000 */ sw $zero, ($a0) +/* 013CDC 700130DC AC800004 */ sw $zero, 4($a0) +/* 013CE0 700130E0 18C00008 */ blez $a2, .L70013104 +/* 013CE4 700130E4 00008025 */ move $s0, $zero +/* 013CE8 700130E8 00A08825 */ move $s1, $a1 +.L700130EC: +/* 013CEC 700130EC 02202025 */ move $a0, $s1 +/* 013CF0 700130F0 0C003AB0 */ jal alLink +/* 013CF4 700130F4 02402825 */ move $a1, $s2 +/* 013CF8 700130F8 26100001 */ addiu $s0, $s0, 1 +/* 013CFC 700130FC 1613FFFB */ bne $s0, $s3, .L700130EC +/* 013D00 70013100 2631001C */ addiu $s1, $s1, 0x1c +.L70013104: +/* 013D04 70013104 8FBF0024 */ lw $ra, 0x24($sp) +/* 013D08 70013108 8FB00014 */ lw $s0, 0x14($sp) +/* 013D0C 7001310C 8FB10018 */ lw $s1, 0x18($sp) +/* 013D10 70013110 8FB2001C */ lw $s2, 0x1c($sp) +/* 013D14 70013114 8FB30020 */ lw $s3, 0x20($sp) +/* 013D18 70013118 03E00008 */ jr $ra +/* 013D1C 7001311C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/exception.s b/src/libultra/exception.s new file mode 100644 index 0000000..de436cf --- /dev/null +++ b/src/libultra/exception.s @@ -0,0 +1,666 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osExceptionPreamble +/* 010D90 70010190 3C1A7001 */ lui $k0, %hi(__osException) # $k0, 0x7001 +/* 010D94 70010194 275A01A0 */ addiu $k0, %lo(__osException) # addiu $k0, $k0, 0x1a0 +/* 010D98 70010198 03400008 */ jr $k0 +/* 010D9C 7001019C 00000000 */ nop +glabel __osException +/* 010DA0 700101A0 3C1A8007 */ lui $k0, %hi(__osThreadSave) # $k0, 0x8007 +/* 010DA4 700101A4 275A8E30 */ addiu $k0, %lo(__osThreadSave) # addiu $k0, $k0, -0x71d0 +/* 010DA8 700101A8 FF410020 */ sd $at, 0x20($k0) +/* 010DAC 700101AC 401B6000 */ mfc0 $k1, $12 +/* 010DB0 700101B0 AF5B0118 */ sw $k1, 0x118($k0) +/* 010DB4 700101B4 2401FFFC */ li $at, -4 +/* 010DB8 700101B8 0361D824 */ and $k1, $k1, $at +/* 010DBC 700101BC 409B6000 */ mtc0 $k1, $12 +/* 010DC0 700101C0 FF480058 */ sd $t0, 0x58($k0) +/* 010DC4 700101C4 FF490060 */ sd $t1, 0x60($k0) +/* 010DC8 700101C8 FF4A0068 */ sd $t2, 0x68($k0) +/* 010DCC 700101CC AF400018 */ sw $zero, 0x18($k0) +/* 010DD0 700101D0 40086800 */ mfc0 $t0, $13 +/* 010DD4 700101D4 03404025 */ move $t0, $k0 +/* 010DD8 700101D8 3C1A8002 */ lui $k0, %hi(__osRunningThread) # $k0, 0x8002 +/* 010DDC 700101DC 8F5A7730 */ lw $k0, %lo(__osRunningThread)($k0) +/* 010DE0 700101E0 DD090020 */ ld $t1, 0x20($t0) +/* 010DE4 700101E4 FF490020 */ sd $t1, 0x20($k0) +/* 010DE8 700101E8 DD090118 */ ld $t1, 0x118($t0) +/* 010DEC 700101EC FF490118 */ sd $t1, 0x118($k0) +/* 010DF0 700101F0 DD090058 */ ld $t1, 0x58($t0) +/* 010DF4 700101F4 FF490058 */ sd $t1, 0x58($k0) +/* 010DF8 700101F8 DD090060 */ ld $t1, 0x60($t0) +/* 010DFC 700101FC FF490060 */ sd $t1, 0x60($k0) +/* 010E00 70010200 DD090068 */ ld $t1, 0x68($t0) +/* 010E04 70010204 FF490068 */ sd $t1, 0x68($k0) +/* 010E08 70010208 8F5B0118 */ lw $k1, 0x118($k0) +/* 010E0C 7001020C 00004012 */ mflo $t0 +/* 010E10 70010210 FF480108 */ sd $t0, 0x108($k0) +/* 010E14 70010214 00004010 */ mfhi $t0 +/* 010E18 70010218 3369FF00 */ andi $t1, $k1, 0xff00 +/* 010E1C 7001021C FF420028 */ sd $v0, 0x28($k0) +/* 010E20 70010220 FF430030 */ sd $v1, 0x30($k0) +/* 010E24 70010224 FF440038 */ sd $a0, 0x38($k0) +/* 010E28 70010228 FF450040 */ sd $a1, 0x40($k0) +/* 010E2C 7001022C FF460048 */ sd $a2, 0x48($k0) +/* 010E30 70010230 FF470050 */ sd $a3, 0x50($k0) +/* 010E34 70010234 FF4B0070 */ sd $t3, 0x70($k0) +/* 010E38 70010238 FF4C0078 */ sd $t4, 0x78($k0) +/* 010E3C 7001023C FF4D0080 */ sd $t5, 0x80($k0) +/* 010E40 70010240 FF4E0088 */ sd $t6, 0x88($k0) +/* 010E44 70010244 FF4F0090 */ sd $t7, 0x90($k0) +/* 010E48 70010248 FF500098 */ sd $s0, 0x98($k0) +/* 010E4C 7001024C FF5100A0 */ sd $s1, 0xa0($k0) +/* 010E50 70010250 FF5200A8 */ sd $s2, 0xa8($k0) +/* 010E54 70010254 FF5300B0 */ sd $s3, 0xb0($k0) +/* 010E58 70010258 FF5400B8 */ sd $s4, 0xb8($k0) +/* 010E5C 7001025C FF5500C0 */ sd $s5, 0xc0($k0) +/* 010E60 70010260 FF5600C8 */ sd $s6, 0xc8($k0) +/* 010E64 70010264 FF5700D0 */ sd $s7, 0xd0($k0) +/* 010E68 70010268 FF5800D8 */ sd $t8, 0xd8($k0) +/* 010E6C 7001026C FF5900E0 */ sd $t9, 0xe0($k0) +/* 010E70 70010270 FF5C00E8 */ sd $gp, 0xe8($k0) +/* 010E74 70010274 FF5D00F0 */ sd $sp, 0xf0($k0) +/* 010E78 70010278 FF5E00F8 */ sd $fp, 0xf8($k0) +/* 010E7C 7001027C FF5F0100 */ sd $ra, 0x100($k0) +/* 010E80 70010280 1120000D */ beqz $t1, .L700102B8 +/* 010E84 70010284 FF480110 */ sd $t0, 0x110($k0) +/* 010E88 70010288 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 010E8C 7001028C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 010E90 70010290 8D080000 */ lw $t0, ($t0) +/* 010E94 70010294 2401FFFF */ li $at, -1 +/* 010E98 70010298 01014026 */ xor $t0, $t0, $at +/* 010E9C 7001029C 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 010EA0 700102A0 3108FF00 */ andi $t0, $t0, 0xff00 +/* 010EA4 700102A4 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 010EA8 700102A8 01284825 */ or $t1, $t1, $t0 +/* 010EAC 700102AC 0361D824 */ and $k1, $k1, $at +/* 010EB0 700102B0 0369D825 */ or $k1, $k1, $t1 +/* 010EB4 700102B4 AF5B0118 */ sw $k1, 0x118($k0) +.L700102B8: +/* 010EB8 700102B8 3C09A430 */ lui $t1, %hi(MI_INTR_MASK_REG) # $t1, 0xa430 +/* 010EBC 700102BC 8D29000C */ lw $t1, %lo(MI_INTR_MASK_REG)($t1) +/* 010EC0 700102C0 1120000B */ beqz $t1, .L700102F0 +/* 010EC4 700102C4 00000000 */ nop +/* 010EC8 700102C8 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 010ECC 700102CC 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 010ED0 700102D0 8D080000 */ lw $t0, ($t0) +/* 010ED4 700102D4 8F4C0128 */ lw $t4, 0x128($k0) +/* 010ED8 700102D8 2401FFFF */ li $at, -1 +/* 010EDC 700102DC 00084402 */ srl $t0, $t0, 0x10 +/* 010EE0 700102E0 01014026 */ xor $t0, $t0, $at +/* 010EE4 700102E4 3108003F */ andi $t0, $t0, 0x3f +/* 010EE8 700102E8 010C4024 */ and $t0, $t0, $t4 +/* 010EEC 700102EC 01284825 */ or $t1, $t1, $t0 +.L700102F0: +/* 010EF0 700102F0 AF490128 */ sw $t1, 0x128($k0) +/* 010EF4 700102F4 40087000 */ mfc0 $t0, $14 +/* 010EF8 700102F8 AF48011C */ sw $t0, 0x11c($k0) +/* 010EFC 700102FC 8F480018 */ lw $t0, 0x18($k0) +/* 010F00 70010300 11000014 */ beqz $t0, .L70010354 +/* 010F04 70010304 00000000 */ nop +/* 010F08 70010308 4448F800 */ cfc1 $t0, $31 +/* 010F0C 7001030C 00000000 */ nop +/* 010F10 70010310 AF48012C */ sw $t0, 0x12c($k0) +/* 010F14 70010314 F7400130 */ sdc1 $f0, 0x130($k0) +/* 010F18 70010318 F7420138 */ sdc1 $f2, 0x138($k0) +/* 010F1C 7001031C F7440140 */ sdc1 $f4, 0x140($k0) +/* 010F20 70010320 F7460148 */ sdc1 $f6, 0x148($k0) +/* 010F24 70010324 F7480150 */ sdc1 $f8, 0x150($k0) +/* 010F28 70010328 F74A0158 */ sdc1 $f10, 0x158($k0) +/* 010F2C 7001032C F74C0160 */ sdc1 $f12, 0x160($k0) +/* 010F30 70010330 F74E0168 */ sdc1 $f14, 0x168($k0) +/* 010F34 70010334 F7500170 */ sdc1 $f16, 0x170($k0) +/* 010F38 70010338 F7520178 */ sdc1 $f18, 0x178($k0) +/* 010F3C 7001033C F7540180 */ sdc1 $f20, 0x180($k0) +/* 010F40 70010340 F7560188 */ sdc1 $f22, 0x188($k0) +/* 010F44 70010344 F7580190 */ sdc1 $f24, 0x190($k0) +/* 010F48 70010348 F75A0198 */ sdc1 $f26, 0x198($k0) +/* 010F4C 7001034C F75C01A0 */ sdc1 $f28, 0x1a0($k0) +/* 010F50 70010350 F75E01A8 */ sdc1 $f30, 0x1a8($k0) +.L70010354: +/* 010F54 70010354 40086800 */ mfc0 $t0, $13 +/* 010F58 70010358 AF480120 */ sw $t0, 0x120($k0) +/* 010F5C 7001035C 24090002 */ li $t1, 2 +/* 010F60 70010360 A7490010 */ sh $t1, 0x10($k0) +/* 010F64 70010364 3109007C */ andi $t1, $t0, 0x7c +/* 010F68 70010368 240A0024 */ li $t2, 36 +/* 010F6C 7001036C 112A00B0 */ beq $t1, $t2, .L70010630 +/* 010F70 70010370 00000000 */ nop +/* 010F74 70010374 240A002C */ li $t2, 44 +/* 010F78 70010378 112A00FF */ beq $t1, $t2, .L70010778 +/* 010F7C 7001037C 00000000 */ nop +/* 010F80 70010380 240A0000 */ li $t2, 0 +/* 010F84 70010384 152A00C3 */ bne $t1, $t2, .L70010694 +/* 010F88 70010388 00000000 */ nop +/* 010F8C 7001038C 03688024 */ and $s0, $k1, $t0 +glabel next_interrupt +.L70010390: +/* 010F90 70010390 3209FF00 */ andi $t1, $s0, 0xff00 +/* 010F94 70010394 00095302 */ srl $t2, $t1, 0xc +/* 010F98 70010398 15400003 */ bnez $t2, .L700103A8 +/* 010F9C 7001039C 00000000 */ nop +/* 010FA0 700103A0 00095202 */ srl $t2, $t1, 8 +/* 010FA4 700103A4 214A0010 */ addi $t2, $t2, 0x10 +.L700103A8: +/* 010FA8 700103A8 3C018003 */ lui $at, %hi(__osIntOffTable) +/* 010FAC 700103AC 002A0821 */ addu $at, $at, $t2 +/* 010FB0 700103B0 902A9440 */ lbu $t2, %lo(__osIntOffTable)($at) +/* 010FB4 700103B4 3C018003 */ lui $at, %hi(__osIntTable) +/* 010FB8 700103B8 002A0821 */ addu $at, $at, $t2 +/* 010FBC 700103BC 8C2A9460 */ lw $t2, %lo(__osIntTable)($at) +/* 010FC0 700103C0 01400008 */ jr $t2 +/* 010FC4 700103C4 00000000 */ nop +glabel IP6_Hdlr +/* 010FC8 700103C8 2401DFFF */ li $at, -8193 +/* 010FCC 700103CC 1000FFF0 */ b .L70010390 +/* 010FD0 700103D0 02018024 */ and $s0, $s0, $at +glabel IP7_Hdlr +/* 010FD4 700103D4 2401BFFF */ li $at, -16385 +/* 010FD8 700103D8 1000FFED */ b .L70010390 +/* 010FDC 700103DC 02018024 */ and $s0, $s0, $at +glabel counter +/* 010FE0 700103E0 40095800 */ mfc0 $t1, $11 +/* 010FE4 700103E4 40895800 */ mtc0 $t1, $11 +/* 010FE8 700103E8 0C0041B1 */ jal send_mesg +/* 010FEC 700103EC 24040018 */ li $a0, 24 +/* 010FF0 700103F0 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff +/* 010FF4 700103F4 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff +/* 010FF8 700103F8 1000FFE5 */ b .L70010390 +/* 010FFC 700103FC 02018024 */ and $s0, $s0, $at +glabel cart +/* 011000 70010400 2401F7FF */ li $at, -2049 +/* 011004 70010404 02018024 */ and $s0, $s0, $at +/* 011008 70010408 240A0004 */ li $t2, 4 +/* 01100C 7001040C 3C018002 */ lui $at, %hi(__osHwIntTable) +/* 011010 70010410 002A0821 */ addu $at, $at, $t2 +/* 011014 70010414 8C2A7700 */ lw $t2, %lo(__osHwIntTable)($at) +/* 011018 70010418 3C1D8006 */ lui $sp, %hi(leoDiskStack) # $sp, 0x8006 +/* 01101C 7001041C 27BD7DF0 */ addiu $sp, %lo(leoDiskStack) # addiu $sp, $sp, 0x7df0 +/* 011020 70010420 24040010 */ li $a0, 16 +/* 011024 70010424 11400007 */ beqz $t2, .L70010444 +/* 011028 70010428 27BD0FF0 */ addiu $sp, $sp, 0xff0 +/* 01102C 7001042C 0140F809 */ jalr $t2 +/* 011030 70010430 00000000 */ nop +/* 011034 70010434 10400003 */ beqz $v0, .L70010444 +/* 011038 70010438 00000000 */ nop +/* 01103C 7001043C 10000082 */ b .L70010648 +/* 011040 70010440 00000000 */ nop +.L70010444: +/* 011044 70010444 0C0041B1 */ jal send_mesg +/* 011048 70010448 00000000 */ nop +/* 01104C 7001044C 1000FFD0 */ b .L70010390 +/* 011050 70010450 00000000 */ nop +glabel rcp +/* 011054 70010454 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011058 70010458 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 01105C 7001045C 8D080000 */ lw $t0, ($t0) +/* 011060 70010460 3C11A430 */ lui $s1, %hi(MI_INTR_REG) # $s1, 0xa430 +/* 011064 70010464 8E310008 */ lw $s1, %lo(MI_INTR_REG)($s1) +/* 011068 70010468 00084402 */ srl $t0, $t0, 0x10 +/* 01106C 7001046C 02288824 */ and $s1, $s1, $t0 +/* 011070 70010470 32290001 */ andi $t1, $s1, 1 +/* 011074 70010474 11200013 */ beqz $t1, .L700104C4 +/* 011078 70010478 00000000 */ nop +/* 01107C 7001047C 3C0CA404 */ lui $t4, %hi(SP_STATUS_REG) # $t4, 0xa404 +/* 011080 70010480 8D8C0010 */ lw $t4, %lo(SP_STATUS_REG)($t4) +/* 011084 70010484 24090008 */ li $t1, 8 +/* 011088 70010488 3C01A404 */ lui $at, %hi(SP_STATUS_REG) # $at, 0xa404 +/* 01108C 7001048C 318C0300 */ andi $t4, $t4, 0x300 +/* 011090 70010490 3231003E */ andi $s1, $s1, 0x3e +/* 011094 70010494 11800007 */ beqz $t4, .L700104B4 +/* 011098 70010498 AC290010 */ sw $t1, %lo(SP_STATUS_REG)($at) +/* 01109C 7001049C 0C0041B1 */ jal send_mesg +/* 0110A0 700104A0 24040020 */ li $a0, 32 +/* 0110A4 700104A4 12200038 */ beqz $s1, .L70010588 +/* 0110A8 700104A8 00000000 */ nop +/* 0110AC 700104AC 10000005 */ b .L700104C4 +/* 0110B0 700104B0 00000000 */ nop +.L700104B4: +/* 0110B4 700104B4 0C0041B1 */ jal send_mesg +/* 0110B8 700104B8 24040058 */ li $a0, 88 +/* 0110BC 700104BC 12200032 */ beqz $s1, .L70010588 +/* 0110C0 700104C0 00000000 */ nop +.L700104C4: +/* 0110C4 700104C4 32290008 */ andi $t1, $s1, 8 +/* 0110C8 700104C8 11200007 */ beqz $t1, .L700104E8 +/* 0110CC 700104CC 3C01A440 */ lui $at, %hi(VI_CURRENT_REG) # $at, 0xa440 +/* 0110D0 700104D0 32310037 */ andi $s1, $s1, 0x37 +/* 0110D4 700104D4 AC200010 */ sw $zero, %lo(VI_CURRENT_REG)($at) +/* 0110D8 700104D8 0C0041B1 */ jal send_mesg +/* 0110DC 700104DC 24040038 */ li $a0, 56 +/* 0110E0 700104E0 12200029 */ beqz $s1, .L70010588 +/* 0110E4 700104E4 00000000 */ nop +.L700104E8: +/* 0110E8 700104E8 32290004 */ andi $t1, $s1, 4 +/* 0110EC 700104EC 11200009 */ beqz $t1, .L70010514 +/* 0110F0 700104F0 00000000 */ nop +/* 0110F4 700104F4 24090001 */ li $t1, 1 +/* 0110F8 700104F8 3C01A450 */ lui $at, %hi(AI_STATUS_REG) # $at, 0xa450 +/* 0110FC 700104FC 3231003B */ andi $s1, $s1, 0x3b +/* 011100 70010500 AC29000C */ sw $t1, %lo(AI_STATUS_REG)($at) +/* 011104 70010504 0C0041B1 */ jal send_mesg +/* 011108 70010508 24040030 */ li $a0, 48 +/* 01110C 7001050C 1220001E */ beqz $s1, .L70010588 +/* 011110 70010510 00000000 */ nop +.L70010514: +/* 011114 70010514 32290002 */ andi $t1, $s1, 2 +/* 011118 70010518 11200007 */ beqz $t1, .L70010538 +/* 01111C 7001051C 3C01A480 */ lui $at, %hi(SI_STATUS_REG) # $at, 0xa480 +/* 011120 70010520 3231003D */ andi $s1, $s1, 0x3d +/* 011124 70010524 AC200018 */ sw $zero, %lo(SI_STATUS_REG)($at) +/* 011128 70010528 0C0041B1 */ jal send_mesg +/* 01112C 7001052C 24040028 */ li $a0, 40 +/* 011130 70010530 12200015 */ beqz $s1, .L70010588 +/* 011134 70010534 00000000 */ nop +.L70010538: +/* 011138 70010538 32290010 */ andi $t1, $s1, 0x10 +/* 01113C 7001053C 11200009 */ beqz $t1, .L70010564 +/* 011140 70010540 00000000 */ nop +/* 011144 70010544 24090002 */ li $t1, 2 +/* 011148 70010548 3C01A460 */ lui $at, %hi(PI_STATUS_REG) # $at, 0xa460 +/* 01114C 7001054C 3231002F */ andi $s1, $s1, 0x2f +/* 011150 70010550 AC290010 */ sw $t1, %lo(PI_STATUS_REG)($at) +/* 011154 70010554 0C0041B1 */ jal send_mesg +/* 011158 70010558 24040040 */ li $a0, 64 +/* 01115C 7001055C 1220000A */ beqz $s1, .L70010588 +/* 011160 70010560 00000000 */ nop +.L70010564: +/* 011164 70010564 32290020 */ andi $t1, $s1, 0x20 +/* 011168 70010568 11200007 */ beqz $t1, .L70010588 +/* 01116C 7001056C 00000000 */ nop +/* 011170 70010570 24090800 */ li $t1, 2048 +/* 011174 70010574 3C01A430 */ lui $at, 0xa430 +/* 011178 70010578 3231001F */ andi $s1, $s1, 0x1f +/* 01117C 7001057C AC290000 */ sw $t1, ($at) +/* 011180 70010580 0C0041B1 */ jal send_mesg +/* 011184 70010584 24040048 */ li $a0, 72 +.L70010588: +/* 011188 70010588 2401FBFF */ li $at, -1025 +/* 01118C 7001058C 1000FF80 */ b .L70010390 +/* 011190 70010590 02018024 */ and $s0, $s0, $at +glabel prenmi +/* 011194 70010594 8F5B0118 */ lw $k1, 0x118($k0) +/* 011198 70010598 2401EFFF */ li $at, -4097 +/* 01119C 7001059C 3C098002 */ lui $t1, %hi(__osShutdown) +/* 0111A0 700105A0 0361D824 */ and $k1, $k1, $at +/* 0111A4 700105A4 AF5B0118 */ sw $k1, 0x118($k0) +/* 0111A8 700105A8 25296988 */ addiu $t1, %lo(__osShutdown) # addiu $t1, $t1, 0x6988 +/* 0111AC 700105AC 8D2A0000 */ lw $t2, ($t1) +/* 0111B0 700105B0 11400003 */ beqz $t2, .L700105C0 +/* 0111B4 700105B4 2401EFFF */ li $at, -4097 +/* 0111B8 700105B8 10000023 */ b .L70010648 +/* 0111BC 700105BC 02018024 */ and $s0, $s0, $at +.L700105C0: +/* 0111C0 700105C0 240A0001 */ li $t2, 1 +/* 0111C4 700105C4 AD2A0000 */ sw $t2, ($t1) +/* 0111C8 700105C8 0C0041B1 */ jal send_mesg +/* 0111CC 700105CC 24040070 */ li $a0, 112 +/* 0111D0 700105D0 3C0A8002 */ lui $t2, %hi(__osRunQueue) +/* 0111D4 700105D4 8D4A7728 */ lw $t2, %lo(__osRunQueue)($t2) +/* 0111D8 700105D8 2401EFFF */ li $at, -4097 +/* 0111DC 700105DC 02018024 */ and $s0, $s0, $at +/* 0111E0 700105E0 8D5B0118 */ lw $k1, 0x118($t2) +/* 0111E4 700105E4 0361D824 */ and $k1, $k1, $at +/* 0111E8 700105E8 10000017 */ b .L70010648 +/* 0111EC 700105EC AD5B0118 */ sw $k1, 0x118($t2) +glabel sw2 +/* 0111F0 700105F0 2401FDFF */ li $at, -513 +/* 0111F4 700105F4 01014024 */ and $t0, $t0, $at +/* 0111F8 700105F8 40886800 */ mtc0 $t0, $13 +/* 0111FC 700105FC 0C0041B1 */ jal send_mesg +/* 011200 70010600 24040008 */ li $a0, 8 +/* 011204 70010604 2401FDFF */ li $at, -513 +/* 011208 70010608 1000FF61 */ b .L70010390 +/* 01120C 7001060C 02018024 */ and $s0, $s0, $at +glabel swl +/* 011210 70010610 2401FEFF */ li $at, -257 +/* 011214 70010614 01014024 */ and $t0, $t0, $at +/* 011218 70010618 40886800 */ mtc0 $t0, $13 +/* 01121C 7001061C 0C0041B1 */ jal send_mesg +/* 011220 70010620 24040000 */ li $a0, 0 +/* 011224 70010624 2401FEFF */ li $at, -257 +/* 011228 70010628 1000FF59 */ b .L70010390 +/* 01122C 7001062C 02018024 */ and $s0, $s0, $at +.L70010630: +/* 011230 70010630 24090001 */ li $t1, 1 +/* 011234 70010634 A7490012 */ sh $t1, 0x12($k0) +/* 011238 70010638 0C0041B1 */ jal send_mesg +/* 01123C 7001063C 24040050 */ li $a0, 80 +/* 011240 70010640 10000001 */ b .L70010648 +/* 011244 70010644 00000000 */ nop +glabel redispatch +.L70010648: +/* 011248 70010648 3C0A8002 */ lui $t2, %hi(__osRunQueue) +/* 01124C 7001064C 8D4A7728 */ lw $t2, %lo(__osRunQueue)($t2) +/* 011250 70010650 8F490004 */ lw $t1, 4($k0) +/* 011254 70010654 8D4B0004 */ lw $t3, 4($t2) +/* 011258 70010658 012B082A */ slt $at, $t1, $t3 +/* 01125C 7001065C 10200007 */ beqz $at, .L7001067C +/* 011260 70010660 00000000 */ nop +/* 011264 70010664 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011268 70010668 03402825 */ move $a1, $k0 +/* 01126C 7001066C 0C00422B */ jal __osEnqueueThread +/* 011270 70010670 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 011274 70010674 08004241 */ j __osDispatchThread +/* 011278 70010678 00000000 */ nop + +glabel enqueueRunning +.L7001067C: +/* 01127C 7001067C 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 011280 70010680 25297728 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, 0x7728 +/* 011284 70010684 8D2A0000 */ lw $t2, ($t1) +/* 011288 70010688 AF4A0000 */ sw $t2, ($k0) +/* 01128C 7001068C 08004241 */ j __osDispatchThread +/* 011290 70010690 AD3A0000 */ sw $k0, ($t1) + +.L70010694: +/* 011294 70010694 3C018002 */ lui $at, %hi(__osFaultedThread) +/* 011298 70010698 AC3A7734 */ sw $k0, %lo(__osFaultedThread)($at) +/* 01129C 7001069C 24090001 */ li $t1, 1 +/* 0112A0 700106A0 A7490010 */ sh $t1, 0x10($k0) +/* 0112A4 700106A4 24090002 */ li $t1, 2 +/* 0112A8 700106A8 A7490012 */ sh $t1, 0x12($k0) +/* 0112AC 700106AC 400A4000 */ mfc0 $t2, $8 +/* 0112B0 700106B0 AF4A0124 */ sw $t2, 0x124($k0) +/* 0112B4 700106B4 0C0041B1 */ jal send_mesg +/* 0112B8 700106B8 24040060 */ li $a0, 96 +/* 0112BC 700106BC 08004241 */ j __osDispatchThread +/* 0112C0 700106C0 00000000 */ nop + +glabel send_mesg +/* 0112C4 700106C4 3C0A8006 */ lui $t2, %hi(__osEventStateTab) +/* 0112C8 700106C8 254A6A10 */ addiu $t2, %lo(__osEventStateTab) # addiu $t2, $t2, 0x6a10 +/* 0112CC 700106CC 01445021 */ addu $t2, $t2, $a0 +/* 0112D0 700106D0 8D490000 */ lw $t1, ($t2) +/* 0112D4 700106D4 03E09025 */ move $s2, $ra +/* 0112D8 700106D8 11200025 */ beqz $t1, .L70010770 +/* 0112DC 700106DC 00000000 */ nop +/* 0112E0 700106E0 8D2B0008 */ lw $t3, 8($t1) +/* 0112E4 700106E4 8D2C0010 */ lw $t4, 0x10($t1) +/* 0112E8 700106E8 016C082A */ slt $at, $t3, $t4 +/* 0112EC 700106EC 10200020 */ beqz $at, .L70010770 +/* 0112F0 700106F0 00000000 */ nop +/* 0112F4 700106F4 8D2D000C */ lw $t5, 0xc($t1) +/* 0112F8 700106F8 01AB6821 */ addu $t5, $t5, $t3 +/* 0112FC 700106FC 01AC001A */ div $zero, $t5, $t4 +/* 011300 70010700 15800002 */ bnez $t4, .L7001070C +/* 011304 70010704 00000000 */ nop +/* 011308 70010708 0007000D */ break 7 +.L7001070C: +/* 01130C 7001070C 2401FFFF */ li $at, -1 +/* 011310 70010710 15810004 */ bne $t4, $at, .L70010724 +/* 011314 70010714 3C018000 */ lui $at, 0x8000 +/* 011318 70010718 15A10002 */ bne $t5, $at, .L70010724 +/* 01131C 7001071C 00000000 */ nop +/* 011320 70010720 0006000D */ break 6 +.L70010724: +/* 011324 70010724 8D2C0014 */ lw $t4, 0x14($t1) +/* 011328 70010728 00006810 */ mfhi $t5 +/* 01132C 7001072C 000D6880 */ sll $t5, $t5, 2 +/* 011330 70010730 018D6021 */ addu $t4, $t4, $t5 +/* 011334 70010734 8D4D0004 */ lw $t5, 4($t2) +/* 011338 70010738 256A0001 */ addiu $t2, $t3, 1 +/* 01133C 7001073C AD8D0000 */ sw $t5, ($t4) +/* 011340 70010740 AD2A0008 */ sw $t2, 8($t1) +/* 011344 70010744 8D2A0000 */ lw $t2, ($t1) +/* 011348 70010748 8D4B0000 */ lw $t3, ($t2) +/* 01134C 7001074C 11600008 */ beqz $t3, .L70010770 +/* 011350 70010750 00000000 */ nop +/* 011354 70010754 0C00423D */ jal __osPopThread +/* 011358 70010758 01202025 */ move $a0, $t1 +/* 01135C 7001075C 00405025 */ move $t2, $v0 +/* 011360 70010760 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011364 70010764 01402825 */ move $a1, $t2 +/* 011368 70010768 0C00422B */ jal __osEnqueueThread +/* 01136C 7001076C 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L70010770: +/* 011370 70010770 02400008 */ jr $s2 +/* 011374 70010774 00000000 */ nop +glabel handle_CpU +.L70010778: +/* 011378 70010778 3C013000 */ lui $at, 0x3000 +/* 01137C 7001077C 01014824 */ and $t1, $t0, $at +/* 011380 70010780 00094F02 */ srl $t1, $t1, 0x1c +/* 011384 70010784 240A0001 */ li $t2, 1 +/* 011388 70010788 152AFFC2 */ bne $t1, $t2, .L70010694 +/* 01138C 7001078C 00000000 */ nop +/* 011390 70010790 8F5B0118 */ lw $k1, 0x118($k0) +/* 011394 70010794 3C012000 */ lui $at, 0x2000 +/* 011398 70010798 24090001 */ li $t1, 1 +/* 01139C 7001079C 0361D825 */ or $k1, $k1, $at +/* 0113A0 700107A0 AF490018 */ sw $t1, 0x18($k0) +/* 0113A4 700107A4 1000FFB5 */ b .L7001067C +/* 0113A8 700107A8 AF5B0118 */ sw $k1, 0x118($k0) +glabel __osEnqueueAndYield +/* 0113AC 700107AC 3C058002 */ lui $a1, %hi(__osRunningThread) +/* 0113B0 700107B0 8CA57730 */ lw $a1, %lo(__osRunningThread)($a1) +/* 0113B4 700107B4 40086000 */ mfc0 $t0, $12 +/* 0113B8 700107B8 8CBB0018 */ lw $k1, 0x18($a1) +/* 0113BC 700107BC 35080002 */ ori $t0, $t0, 2 +/* 0113C0 700107C0 ACA80118 */ sw $t0, 0x118($a1) +/* 0113C4 700107C4 FCB00098 */ sd $s0, 0x98($a1) +/* 0113C8 700107C8 FCB100A0 */ sd $s1, 0xa0($a1) +/* 0113CC 700107CC FCB200A8 */ sd $s2, 0xa8($a1) +/* 0113D0 700107D0 FCB300B0 */ sd $s3, 0xb0($a1) +/* 0113D4 700107D4 FCB400B8 */ sd $s4, 0xb8($a1) +/* 0113D8 700107D8 FCB500C0 */ sd $s5, 0xc0($a1) +/* 0113DC 700107DC FCB600C8 */ sd $s6, 0xc8($a1) +/* 0113E0 700107E0 FCB700D0 */ sd $s7, 0xd0($a1) +/* 0113E4 700107E4 FCBC00E8 */ sd $gp, 0xe8($a1) +/* 0113E8 700107E8 FCBD00F0 */ sd $sp, 0xf0($a1) +/* 0113EC 700107EC FCBE00F8 */ sd $fp, 0xf8($a1) +/* 0113F0 700107F0 FCBF0100 */ sd $ra, 0x100($a1) +/* 0113F4 700107F4 13600009 */ beqz $k1, .L7001081C +/* 0113F8 700107F8 ACBF011C */ sw $ra, 0x11c($a1) +/* 0113FC 700107FC 445BF800 */ cfc1 $k1, $31 +/* 011400 70010800 F4B40180 */ sdc1 $f20, 0x180($a1) +/* 011404 70010804 F4B60188 */ sdc1 $f22, 0x188($a1) +/* 011408 70010808 F4B80190 */ sdc1 $f24, 0x190($a1) +/* 01140C 7001080C F4BA0198 */ sdc1 $f26, 0x198($a1) +/* 011410 70010810 F4BC01A0 */ sdc1 $f28, 0x1a0($a1) +/* 011414 70010814 F4BE01A8 */ sdc1 $f30, 0x1a8($a1) +/* 011418 70010818 ACBB012C */ sw $k1, 0x12c($a1) +.L7001081C: +/* 01141C 7001081C 8CBB0118 */ lw $k1, 0x118($a1) +/* 011420 70010820 3369FF00 */ andi $t1, $k1, 0xff00 +/* 011424 70010824 1120000D */ beqz $t1, .L7001085C +/* 011428 70010828 00000000 */ nop +/* 01142C 7001082C 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011430 70010830 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 011434 70010834 8D080000 */ lw $t0, ($t0) +/* 011438 70010838 2401FFFF */ li $at, -1 +/* 01143C 7001083C 01014026 */ xor $t0, $t0, $at +/* 011440 70010840 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 011444 70010844 3108FF00 */ andi $t0, $t0, 0xff00 +/* 011448 70010848 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 01144C 7001084C 01284825 */ or $t1, $t1, $t0 +/* 011450 70010850 0361D824 */ and $k1, $k1, $at +/* 011454 70010854 0369D825 */ or $k1, $k1, $t1 +/* 011458 70010858 ACBB0118 */ sw $k1, 0x118($a1) +.L7001085C: +/* 01145C 7001085C 3C1BA430 */ lui $k1, %hi(MI_INTR_MASK_REG) # $k1, 0xa430 +/* 011460 70010860 8F7B000C */ lw $k1, %lo(MI_INTR_MASK_REG)($k1) +/* 011464 70010864 1360000B */ beqz $k1, .L70010894 +/* 011468 70010868 00000000 */ nop +/* 01146C 7001086C 3C1A8002 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8002 +/* 011470 70010870 275A698C */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x698c +/* 011474 70010874 8F5A0000 */ lw $k0, ($k0) +/* 011478 70010878 8CA80128 */ lw $t0, 0x128($a1) +/* 01147C 7001087C 2401FFFF */ li $at, -1 +/* 011480 70010880 001AD402 */ srl $k0, $k0, 0x10 +/* 011484 70010884 0341D026 */ xor $k0, $k0, $at +/* 011488 70010888 335A003F */ andi $k0, $k0, 0x3f +/* 01148C 7001088C 0348D024 */ and $k0, $k0, $t0 +/* 011490 70010890 037AD825 */ or $k1, $k1, $k0 +.L70010894: +/* 011494 70010894 10800003 */ beqz $a0, .L700108A4 +/* 011498 70010898 ACBB0128 */ sw $k1, 0x128($a1) +/* 01149C 7001089C 0C00422B */ jal __osEnqueueThread +/* 0114A0 700108A0 00000000 */ nop +.L700108A4: +/* 0114A4 700108A4 08004241 */ j __osDispatchThread +/* 0114A8 700108A8 00000000 */ nop + +glabel __osEnqueueThread +/* 0114AC 700108AC 8C980000 */ lw $t8, ($a0) +/* 0114B0 700108B0 8CAF0004 */ lw $t7, 4($a1) +/* 0114B4 700108B4 0080C825 */ move $t9, $a0 +/* 0114B8 700108B8 8F0E0004 */ lw $t6, 4($t8) +/* 0114BC 700108BC 01CF082A */ slt $at, $t6, $t7 +/* 0114C0 700108C0 14200007 */ bnez $at, .L700108E0 +/* 0114C4 700108C4 00000000 */ nop +.L700108C8: +/* 0114C8 700108C8 0300C825 */ move $t9, $t8 +/* 0114CC 700108CC 8F180000 */ lw $t8, ($t8) +/* 0114D0 700108D0 8F0E0004 */ lw $t6, 4($t8) +/* 0114D4 700108D4 01CF082A */ slt $at, $t6, $t7 +/* 0114D8 700108D8 1020FFFB */ beqz $at, .L700108C8 +/* 0114DC 700108DC 00000000 */ nop +.L700108E0: +/* 0114E0 700108E0 8F380000 */ lw $t8, ($t9) +/* 0114E4 700108E4 ACB80000 */ sw $t8, ($a1) +/* 0114E8 700108E8 AF250000 */ sw $a1, ($t9) +/* 0114EC 700108EC 03E00008 */ jr $ra +/* 0114F0 700108F0 ACA40008 */ sw $a0, 8($a1) + +glabel __osPopThread +/* 0114F4 700108F4 8C820000 */ lw $v0, ($a0) +/* 0114F8 700108F8 8C590000 */ lw $t9, ($v0) +/* 0114FC 700108FC 03E00008 */ jr $ra +/* 011500 70010900 AC990000 */ sw $t9, ($a0) + +glabel __osDispatchThread +/* 011504 70010904 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011508 70010908 0C00423D */ jal __osPopThread +/* 01150C 7001090C 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 011510 70010910 3C018002 */ lui $at, %hi(__osRunningThread) +/* 011514 70010914 AC227730 */ sw $v0, %lo(__osRunningThread)($at) +/* 011518 70010918 24080004 */ li $t0, 4 +/* 01151C 7001091C A4480010 */ sh $t0, 0x10($v0) +/* 011520 70010920 0040D025 */ move $k0, $v0 +glabel __osDispatchThreadSave +/* 011524 70010924 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011528 70010928 8F5B0118 */ lw $k1, 0x118($k0) +/* 01152C 7001092C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 011530 70010930 8D080000 */ lw $t0, ($t0) +/* 011534 70010934 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 011538 70010938 3369FF00 */ andi $t1, $k1, 0xff00 +/* 01153C 7001093C 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 011540 70010940 3108FF00 */ andi $t0, $t0, 0xff00 +/* 011544 70010944 01284824 */ and $t1, $t1, $t0 +/* 011548 70010948 0361D824 */ and $k1, $k1, $at +/* 01154C 7001094C 0369D825 */ or $k1, $k1, $t1 +/* 011550 70010950 409B6000 */ mtc0 $k1, $12 +/* 011554 70010954 DF5B0108 */ ld $k1, 0x108($k0) +/* 011558 70010958 DF410020 */ ld $at, 0x20($k0) +/* 01155C 7001095C DF420028 */ ld $v0, 0x28($k0) +/* 011560 70010960 03600013 */ mtlo $k1 +/* 011564 70010964 DF5B0110 */ ld $k1, 0x110($k0) +/* 011568 70010968 DF430030 */ ld $v1, 0x30($k0) +/* 01156C 7001096C DF440038 */ ld $a0, 0x38($k0) +/* 011570 70010970 DF450040 */ ld $a1, 0x40($k0) +/* 011574 70010974 DF460048 */ ld $a2, 0x48($k0) +/* 011578 70010978 DF470050 */ ld $a3, 0x50($k0) +/* 01157C 7001097C DF480058 */ ld $t0, 0x58($k0) +/* 011580 70010980 DF490060 */ ld $t1, 0x60($k0) +/* 011584 70010984 DF4A0068 */ ld $t2, 0x68($k0) +/* 011588 70010988 DF4B0070 */ ld $t3, 0x70($k0) +/* 01158C 7001098C DF4C0078 */ ld $t4, 0x78($k0) +/* 011590 70010990 DF4D0080 */ ld $t5, 0x80($k0) +/* 011594 70010994 DF4E0088 */ ld $t6, 0x88($k0) +/* 011598 70010998 DF4F0090 */ ld $t7, 0x90($k0) +/* 01159C 7001099C DF500098 */ ld $s0, 0x98($k0) +/* 0115A0 700109A0 DF5100A0 */ ld $s1, 0xa0($k0) +/* 0115A4 700109A4 DF5200A8 */ ld $s2, 0xa8($k0) +/* 0115A8 700109A8 DF5300B0 */ ld $s3, 0xb0($k0) +/* 0115AC 700109AC DF5400B8 */ ld $s4, 0xb8($k0) +/* 0115B0 700109B0 DF5500C0 */ ld $s5, 0xc0($k0) +/* 0115B4 700109B4 DF5600C8 */ ld $s6, 0xc8($k0) +/* 0115B8 700109B8 DF5700D0 */ ld $s7, 0xd0($k0) +/* 0115BC 700109BC DF5800D8 */ ld $t8, 0xd8($k0) +/* 0115C0 700109C0 DF5900E0 */ ld $t9, 0xe0($k0) +/* 0115C4 700109C4 DF5C00E8 */ ld $gp, 0xe8($k0) +/* 0115C8 700109C8 03600011 */ mthi $k1 +/* 0115CC 700109CC DF5D00F0 */ ld $sp, 0xf0($k0) +/* 0115D0 700109D0 DF5E00F8 */ ld $fp, 0xf8($k0) +/* 0115D4 700109D4 DF5F0100 */ ld $ra, 0x100($k0) +/* 0115D8 700109D8 8F5B011C */ lw $k1, 0x11c($k0) +/* 0115DC 700109DC 409B7000 */ mtc0 $k1, $14 +/* 0115E0 700109E0 8F5B0018 */ lw $k1, 0x18($k0) +/* 0115E4 700109E4 13600013 */ beqz $k1, .L70010A34 +/* 0115E8 700109E8 00000000 */ nop +/* 0115EC 700109EC 8F5B012C */ lw $k1, 0x12c($k0) +/* 0115F0 700109F0 44DBF800 */ ctc1 $k1, $31 +/* 0115F4 700109F4 D7400130 */ ldc1 $f0, 0x130($k0) +/* 0115F8 700109F8 D7420138 */ ldc1 $f2, 0x138($k0) +/* 0115FC 700109FC D7440140 */ ldc1 $f4, 0x140($k0) +/* 011600 70010A00 D7460148 */ ldc1 $f6, 0x148($k0) +/* 011604 70010A04 D7480150 */ ldc1 $f8, 0x150($k0) +/* 011608 70010A08 D74A0158 */ ldc1 $f10, 0x158($k0) +/* 01160C 70010A0C D74C0160 */ ldc1 $f12, 0x160($k0) +/* 011610 70010A10 D74E0168 */ ldc1 $f14, 0x168($k0) +/* 011614 70010A14 D7500170 */ ldc1 $f16, 0x170($k0) +/* 011618 70010A18 D7520178 */ ldc1 $f18, 0x178($k0) +/* 01161C 70010A1C D7540180 */ ldc1 $f20, 0x180($k0) +/* 011620 70010A20 D7560188 */ ldc1 $f22, 0x188($k0) +/* 011624 70010A24 D7580190 */ ldc1 $f24, 0x190($k0) +/* 011628 70010A28 D75A0198 */ ldc1 $f26, 0x198($k0) +/* 01162C 70010A2C D75C01A0 */ ldc1 $f28, 0x1a0($k0) +/* 011630 70010A30 D75E01A8 */ ldc1 $f30, 0x1a8($k0) +.L70010A34: +/* 011634 70010A34 8F5B0128 */ lw $k1, 0x128($k0) +/* 011638 70010A38 3C1A8002 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8002 +/* 01163C 70010A3C 275A698C */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x698c +/* 011640 70010A40 8F5A0000 */ lw $k0, ($k0) +/* 011644 70010A44 001AD402 */ srl $k0, $k0, 0x10 +/* 011648 70010A48 037AD824 */ and $k1, $k1, $k0 +/* 01164C 70010A4C 001BD840 */ sll $k1, $k1, 1 +/* 011650 70010A50 3C1A8003 */ lui $k0, %hi(__osRcpImTable) # $k0, 0x8003 +/* 011654 70010A54 275A93A0 */ addiu $k0, %lo(__osRcpImTable) # addiu $k0, $k0, -0x6c60 +/* 011658 70010A58 037AD821 */ addu $k1, $k1, $k0 +/* 01165C 70010A5C 977B0000 */ lhu $k1, ($k1) +/* 011660 70010A60 3C1AA430 */ lui $k0, %hi(MI_INTR_MASK_REG) # $k0, 0xa430 +/* 011664 70010A64 275A000C */ addiu $k0, %lo(MI_INTR_MASK_REG) # addiu $k0, $k0, 0xc +/* 011668 70010A68 AF5B0000 */ sw $k1, ($k0) +/* 01166C 70010A6C 00000000 */ nop +/* 011670 70010A70 00000000 */ nop +/* 011674 70010A74 00000000 */ nop +/* 011678 70010A78 00000000 */ nop +/* 01167C 70010A7C 42000018 */ eret +glabel __osCleanupThread +/* 011680 70010A80 0C006ED8 */ jal osDestroyThread +/* 011684 70010A84 00002025 */ move $a0, $zero + + +.section .data +/*80027704*/ +glabel __osHwIntTable +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 + +.section .rodata +/*80029440*/ +glabel __osIntOffTable +.byte 0,0x14,0x18,0x18,0x1C,0x1C,0x1C,0x1C +.byte 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +.byte 0, 4, 8, 8, 0xC, 0xC, 0xC, 0xC +.byte 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 + +/*80029460*/ +glabel __osIntTable +.word redispatch +.word swl +.word sw2 +.word rcp +.word cart +.word prenmi +.word IP6_Hdlr +.word IP7_Hdlr +.word counter diff --git a/src/libultra/filter.s b/src/libultra/filter.s new file mode 100644 index 0000000..c7cf94f --- /dev/null +++ b/src/libultra/filter.s @@ -0,0 +1,23 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alFilterNew +/* 0204F0 7001F8F0 AC800000 */ sw $zero, ($a0) +/* 0204F4 7001F8F4 AC850004 */ sw $a1, 4($a0) +/* 0204F8 7001F8F8 AC860008 */ sw $a2, 8($a0) +/* 0204FC 7001F8FC A480000C */ sh $zero, 0xc($a0) +/* 020500 7001F900 A480000E */ sh $zero, 0xe($a0) +/* 020504 7001F904 03E00008 */ jr $ra +/* 020508 7001F908 AC870010 */ sw $a3, 0x10($a0) + + diff --git a/src/libultra/getcount.s b/src/libultra/getcount.s new file mode 100644 index 0000000..0798a2e --- /dev/null +++ b/src/libultra/getcount.s @@ -0,0 +1,13 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osGetCount +/* 00E4E0 7000D8E0 40024800 */ mfc0 $v0, $9 +/* 00E4E4 7000D8E4 03E00008 */ jr $ra +/* 00E4E8 7000D8E8 00000000 */ nop diff --git a/src/libultra/getcurrfaultthread.s b/src/libultra/getcurrfaultthread.s new file mode 100644 index 0000000..d5f44e8 --- /dev/null +++ b/src/libultra/getcurrfaultthread.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osGetCurrFaultedThread +/* 010D80 70010180 3C028002 */ lui $v0, %hi(__osFaultedThread) +/* 010D84 70010184 03E00008 */ jr $ra +/* 010D88 70010188 8C427734 */ lw $v0, %lo(__osFaultedThread)($v0) + diff --git a/src/libultra/getfpccsr.s b/src/libultra/getfpccsr.s new file mode 100644 index 0000000..91e1883 --- /dev/null +++ b/src/libultra/getfpccsr.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osGetFpcCsr +/* 00E010 7000D410 4442F800 */ cfc1 $v0, $31 +/* 00E014 7000D414 03E00008 */ jr $ra +/* 00E018 7000D418 00000000 */ nop + \ No newline at end of file diff --git a/src/libultra/getsr.s b/src/libultra/getsr.s new file mode 100644 index 0000000..fe7e2d5 --- /dev/null +++ b/src/libultra/getsr.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osGetSR +/* 018730 70017B30 40026000 */ mfc0 $v0, $12 +/* 018734 70017B34 03E00008 */ jr $ra +/* 018738 70017B38 00000000 */ nop + +/* 01873C 70017B3C 00000000 */ nop diff --git a/src/libultra/getthreadpri.s b/src/libultra/getthreadpri.s new file mode 100644 index 0000000..bd8c5db --- /dev/null +++ b/src/libultra/getthreadpri.s @@ -0,0 +1,24 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osGetThreadPri +/* 019630 70018A30 14800003 */ bnez $a0, .L70018A40 +/* 019634 70018A34 00000000 */ nop +/* 019638 70018A38 3C048002 */ lui $a0, %hi(__osRunningThread) +/* 01963C 70018A3C 8C847730 */ lw $a0, %lo(__osRunningThread)($a0) +.L70018A40: +/* 019640 70018A40 03E00008 */ jr $ra +/* 019644 70018A44 8C820004 */ lw $v0, 4($a0) + +/* 019648 70018A48 00000000 */ nop +/* 01964C 70018A4C 00000000 */ nop diff --git a/src/libultra/gettime.s b/src/libultra/gettime.s new file mode 100644 index 0000000..a50e133 --- /dev/null +++ b/src/libultra/gettime.s @@ -0,0 +1,43 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osGetTime +/* 00F7B0 7000EBB0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00F7B4 7000EBB4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F7B8 7000EBB8 0C00617C */ jal __osDisableInt +/* 00F7BC 7000EBBC AFB00018 */ sw $s0, 0x18($sp) +/* 00F7C0 7000EBC0 0C003638 */ jal osGetCount +/* 00F7C4 7000EBC4 00408025 */ move $s0, $v0 +/* 00F7C8 7000EBC8 AFA20034 */ sw $v0, 0x34($sp) +/* 00F7CC 7000EBCC 3C0F8007 */ lui $t7, %hi(__osBaseCounter) +/* 00F7D0 7000EBD0 8DEF8E18 */ lw $t7, %lo(__osBaseCounter)($t7) +/* 00F7D4 7000EBD4 8FAE0034 */ lw $t6, 0x34($sp) +/* 00F7D8 7000EBD8 3C088007 */ lui $t0, %hi(__osCurrentTime) +/* 00F7DC 7000EBDC 3C098007 */ lui $t1, %hi(__osCurrentTime+4) +/* 00F7E0 7000EBE0 8D298E14 */ lw $t1, %lo(__osCurrentTime+4)($t1) +/* 00F7E4 7000EBE4 8D088E10 */ lw $t0, %lo(__osCurrentTime)($t0) +/* 00F7E8 7000EBE8 01CFC023 */ subu $t8, $t6, $t7 +/* 00F7EC 7000EBEC AFB80030 */ sw $t8, 0x30($sp) +/* 00F7F0 7000EBF0 02002025 */ move $a0, $s0 +/* 00F7F4 7000EBF4 AFA9002C */ sw $t1, 0x2c($sp) +/* 00F7F8 7000EBF8 0C006184 */ jal __osRestoreInt +/* 00F7FC 7000EBFC AFA80028 */ sw $t0, 0x28($sp) +/* 00F800 7000EC00 8FB90030 */ lw $t9, 0x30($sp) +/* 00F804 7000EC04 8FAD002C */ lw $t5, 0x2c($sp) +/* 00F808 7000EC08 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F80C 7000EC0C 03205825 */ move $t3, $t9 +/* 00F810 7000EC10 016D1821 */ addu $v1, $t3, $t5 +/* 00F814 7000EC14 8FAC0028 */ lw $t4, 0x28($sp) +/* 00F818 7000EC18 240A0000 */ li $t2, 0 +/* 00F81C 7000EC1C 006D082B */ sltu $at, $v1, $t5 +/* 00F820 7000EC20 002A1021 */ addu $v0, $at, $t2 +/* 00F824 7000EC24 8FB00018 */ lw $s0, 0x18($sp) +/* 00F828 7000EC28 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00F82C 7000EC2C 03E00008 */ jr $ra +/* 00F830 7000EC30 004C1021 */ addu $v0, $v0, $t4 diff --git a/src/libultra/gettlbhi.s b/src/libultra/gettlbhi.s new file mode 100644 index 0000000..0beac9a --- /dev/null +++ b/src/libultra/gettlbhi.s @@ -0,0 +1,21 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel __osGetTLBHi +/* 00F480 7000E880 40840000 */ mtc0 $a0, $0 +/* 00F484 7000E884 00000000 */ nop +/* 00F488 7000E888 42000001 */ tlbr +/* 00F48C 7000E88C 00000000 */ nop +/* 00F490 7000E890 00000000 */ nop +/* 00F494 7000E894 00000000 */ nop +/* 00F498 7000E898 40025000 */ mfc0 $v0, $10 +/* 00F49C 7000E89C 03E00008 */ jr $ra +/* 00F4A0 7000E8A0 00000000 */ nop + diff --git a/src/libultra/heapalloc.s b/src/libultra/heapalloc.s new file mode 100644 index 0000000..e74a0b2 --- /dev/null +++ b/src/libultra/heapalloc.s @@ -0,0 +1,32 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alHeapDBAlloc +/* 00F750 7000EB50 8FAE0010 */ lw $t6, 0x10($sp) +/* 00F754 7000EB54 AFA40000 */ sw $a0, ($sp) +/* 00F758 7000EB58 AFA50004 */ sw $a1, 4($sp) +/* 00F75C 7000EB5C 00EE0019 */ multu $a3, $t6 +/* 00F760 7000EB60 8CD90008 */ lw $t9, 8($a2) +/* 00F764 7000EB64 8CD80000 */ lw $t8, ($a2) +/* 00F768 7000EB68 8CC40004 */ lw $a0, 4($a2) +/* 00F76C 7000EB6C 2401FFF0 */ li $at, -16 +/* 00F770 7000EB70 03194021 */ addu $t0, $t8, $t9 +/* 00F774 7000EB74 00001825 */ move $v1, $zero +/* 00F778 7000EB78 00001012 */ mflo $v0 +/* 00F77C 7000EB7C 2442000F */ addiu $v0, $v0, 0xf +/* 00F780 7000EB80 00417824 */ and $t7, $v0, $at +/* 00F784 7000EB84 008F4821 */ addu $t1, $a0, $t7 +/* 00F788 7000EB88 0109082B */ sltu $at, $t0, $t1 +/* 00F78C 7000EB8C 14200003 */ bnez $at, .L7000EB9C +/* 00F790 7000EB90 008F5021 */ addu $t2, $a0, $t7 +/* 00F794 7000EB94 00801825 */ move $v1, $a0 +/* 00F798 7000EB98 ACCA0004 */ sw $t2, 4($a2) +.L7000EB9C: +/* 00F79C 7000EB9C 03E00008 */ jr $ra +/* 00F7A0 7000EBA0 00601025 */ move $v0, $v1 diff --git a/src/libultra/heapinit.s b/src/libultra/heapinit.s new file mode 100644 index 0000000..4902b32 --- /dev/null +++ b/src/libultra/heapinit.s @@ -0,0 +1,25 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alHeapInit +/* 011930 70010D30 24030010 */ li $v1, 16 +/* 011934 70010D34 30AE000F */ andi $t6, $a1, 0xf +/* 011938 70010D38 006E1023 */ subu $v0, $v1, $t6 +/* 01193C 70010D3C 10620003 */ beq $v1, $v0, .L70010D4C +/* 011940 70010D40 00A27821 */ addu $t7, $a1, $v0 +/* 011944 70010D44 10000002 */ b .L70010D50 +/* 011948 70010D48 AC8F0000 */ sw $t7, ($a0) +.L70010D4C: +/* 01194C 70010D4C AC850000 */ sw $a1, ($a0) +.L70010D50: +/* 011950 70010D50 8C980000 */ lw $t8, ($a0) +/* 011954 70010D54 AC860008 */ sw $a2, 8($a0) +/* 011958 70010D58 AC80000C */ sw $zero, 0xc($a0) +/* 01195C 70010D5C 03E00008 */ jr $ra +/* 011960 70010D60 AC980004 */ sw $t8, 4($a0) diff --git a/src/libultra/initialize.s b/src/libultra/initialize.s new file mode 100644 index 0000000..fb5fdba --- /dev/null +++ b/src/libultra/initialize.s @@ -0,0 +1,207 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .data +glabel osClockRate +.dword 62500000 +glabel __osShutdown + .word 0 +glabel __OSGlobalIntMask + .word 0x3FFF01 +glabel osDiskExist + .word 0 +.align 4 +.section .rodata +.section .bss +glabel __osFinalRom +.word 0 + +.section .text, "ax" +glabel osInitialize +/* 00DC80 7000D080 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00DC84 7000D084 AFBF001C */ sw $ra, 0x1c($sp) +/* 00DC88 7000D088 240E0001 */ li $t6, 1 +/* 00DC8C 7000D08C 3C018006 */ lui $at, %hi(__osFinalRom) +/* 00DC90 7000D090 AFB00018 */ sw $s0, 0x18($sp) +/* 00DC94 7000D094 AFA00038 */ sw $zero, 0x38($sp) +/* 00DC98 7000D098 0C005ECC */ jal __osGetSR +/* 00DC9C 7000D09C AC2E57E0 */ sw $t6, %lo(__osFinalRom)($at) +/* 00DCA0 7000D0A0 00408025 */ move $s0, $v0 +/* 00DCA4 7000D0A4 3C012000 */ lui $at, 0x2000 +/* 00DCA8 7000D0A8 0C005EC8 */ jal __osSetSR +/* 00DCAC 7000D0AC 02012025 */ or $a0, $s0, $at +/* 00DCB0 7000D0B0 3C040100 */ lui $a0, (0x01000800 >> 16) # lui $a0, 0x100 +/* 00DCB4 7000D0B4 0C003508 */ jal __osSetFpcCsr +/* 00DCB8 7000D0B8 34840800 */ ori $a0, (0x01000800 & 0xFFFF) # ori $a0, $a0, 0x800 +/* 00DCBC 7000D0BC 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCC0 7000D0C0 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCC4 7000D0C4 0C005ED0 */ jal __osSiRawReadIo +/* 00DCC8 7000D0C8 27A5003C */ addiu $a1, $sp, 0x3c +/* 00DCCC 7000D0CC 10400007 */ beqz $v0, .L7000D0EC +/* 00DCD0 7000D0D0 00000000 */ nop +.L7000D0D4: +/* 00DCD4 7000D0D4 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCD8 7000D0D8 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCDC 7000D0DC 0C005ED0 */ jal __osSiRawReadIo +/* 00DCE0 7000D0E0 27A5003C */ addiu $a1, $sp, 0x3c +/* 00DCE4 7000D0E4 1440FFFB */ bnez $v0, .L7000D0D4 +/* 00DCE8 7000D0E8 00000000 */ nop +.L7000D0EC: +/* 00DCEC 7000D0EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 00DCF0 7000D0F0 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCF4 7000D0F4 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCF8 7000D0F8 34AF0008 */ ori $t7, $a1, 8 +/* 00DCFC 7000D0FC 0C005EE4 */ jal __osSiRawWriteIo +/* 00DD00 7000D100 01E02825 */ move $a1, $t7 +/* 00DD04 7000D104 10400009 */ beqz $v0, .L7000D12C +/* 00DD08 7000D108 00000000 */ nop +.L7000D10C: +/* 00DD0C 7000D10C 8FA5003C */ lw $a1, 0x3c($sp) +/* 00DD10 7000D110 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DD14 7000D114 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DD18 7000D118 34B80008 */ ori $t8, $a1, 8 +/* 00DD1C 7000D11C 0C005EE4 */ jal __osSiRawWriteIo +/* 00DD20 7000D120 03002825 */ move $a1, $t8 +/* 00DD24 7000D124 1440FFF9 */ bnez $v0, .L7000D10C +/* 00DD28 7000D128 00000000 */ nop +.L7000D12C: +/* 00DD2C 7000D12C 3C087001 */ lui $t0, %hi(__osExceptionPreamble) # $t0, 0x7001 +/* 00DD30 7000D130 25080190 */ addiu $t0, %lo(__osExceptionPreamble) # addiu $t0, $t0, 0x190 +/* 00DD34 7000D134 8D010000 */ lw $at, ($t0) +/* 00DD38 7000D138 3C198000 */ lui $t9, 0x8000 +/* 00DD3C 7000D13C 3C0D7001 */ lui $t5, %hi(__osExceptionPreamble) # $t5, 0x7001 +/* 00DD40 7000D140 AF210000 */ sw $at, ($t9) +/* 00DD44 7000D144 8D0B0004 */ lw $t3, 4($t0) +/* 00DD48 7000D148 25AD0190 */ addiu $t5, %lo(__osExceptionPreamble) # addiu $t5, $t5, 0x190 +/* 00DD4C 7000D14C 3C0C8000 */ lui $t4, 0x8000 +/* 00DD50 7000D150 AF2B0004 */ sw $t3, 4($t9) +/* 00DD54 7000D154 8D010008 */ lw $at, 8($t0) +/* 00DD58 7000D158 358C0080 */ ori $t4, (0x80000080 & 0xFFFF) # ori $t4, $t4, 0x80 +/* 00DD5C 7000D15C 3C097001 */ lui $t1, %hi(__osExceptionPreamble) # $t1, 0x7001 +/* 00DD60 7000D160 AF210008 */ sw $at, 8($t9) +/* 00DD64 7000D164 8D0B000C */ lw $t3, 0xc($t0) +/* 00DD68 7000D168 25290190 */ addiu $t1, %lo(__osExceptionPreamble) # addiu $t1, $t1, 0x190 +/* 00DD6C 7000D16C 3C0A8000 */ lui $t2, 0x8000 +/* 00DD70 7000D170 AF2B000C */ sw $t3, 0xC($t9) +/* 00DD74 7000D174 8DA10000 */ lw $at, 0($t5) +/* 00DD78 7000D178 354A0100 */ ori $t2, (0x80000100 & 0xFFFF) # ori $t2, $t2, 0x100 +/* 00DD7C 7000D17C 3C0E7001 */ lui $t6, %hi(__osExceptionPreamble) # $t6, 0x7001 +/* 00DD80 7000D180 AD810000 */ sw $at, 0($t4) +/* 00DD84 7000D184 8DB80004 */ lw $t8, 4($t5) +/* 00DD88 7000D188 25CE0190 */ addiu $t6, %lo(__osExceptionPreamble) # addiu $t6, $t6, 0x190 +/* 00DD8C 7000D18C 3C0F8000 */ lui $t7, 0x8000 +/* 00DD90 7000D190 AD980004 */ sw $t8, 4($t4) +/* 00DD94 7000D194 8DA10008 */ lw $at, 8($t5) +/* 00DD98 7000D198 35EF0180 */ ori $t7, (0x80000180 & 0xFFFF) # ori $t7, $t7, 0x180 +/* 00DD9C 7000D19C 3C048000 */ lui $a0, 0x8000 +/* 00DDA0 7000D1A0 AD810008 */ sw $at, 8($t4) +/* 00DDA4 7000D1A4 8DB8000C */ lw $t8, 0xc($t5) +/* 00DDA8 7000D1A8 24050190 */ li $a1, 400 +/* 00DDAC 7000D1AC AD98000C */ sw $t8, 0xC($t4) +/* 00DDB0 7000D1B0 8D210000 */ lw $at, 0($t1) +/* 00DDB4 7000D1B4 AD410000 */ sw $at, 0($t2) +/* 00DDB8 7000D1B8 8D2B0004 */ lw $t3, 4($t1) +/* 00DDBC 7000D1BC AD4B0004 */ sw $t3, 4($t2) +/* 00DDC0 7000D1C0 8D210008 */ lw $at, 8($t1) +/* 00DDC4 7000D1C4 AD410008 */ sw $at, 8($t2) +/* 00DDC8 7000D1C8 8D2B000C */ lw $t3, 0xc($t1) +/* 00DDCC 7000D1CC AD4B000C */ sw $t3, 0xC($t2) +/* 00DDD0 7000D1D0 8DC10000 */ lw $at, 0($t6) +/* 00DDD4 7000D1D4 ADE10000 */ sw $at, 0($t7) +/* 00DDD8 7000D1D8 8DD80004 */ lw $t8, 4($t6) +/* 00DDDC 7000D1DC ADF80004 */ sw $t8, 4($t7) +/* 00DDE0 7000D1E0 8DC10008 */ lw $at, 8($t6) +/* 00DDE4 7000D1E4 ADE10008 */ sw $at, 8($t7) +/* 00DDE8 7000D1E8 8DD8000C */ lw $t8, 0xc($t6) +/* 00DDEC 7000D1EC 0C0042F4 */ jal osWritebackDCache +/* 00DDF0 7000D1F0 ADF8000C */ sw $t8, 0xC($t7) +/* 00DDF4 7000D1F4 3C048000 */ lui $a0, 0x8000 +/* 00DDF8 7000D1F8 0C0034D4 */ jal osInvalICache +/* 00DDFC 7000D1FC 24050190 */ li $a1, 400 +/* 00DE00 7000D200 0C0005E0 */ jal osMapTLBRdb +/* 00DE04 7000D204 00000000 */ nop +/* 00DE08 7000D208 24040004 */ li $a0, 4 +/* 00DE0C 7000D20C 0C005EF8 */ jal osPiRawReadIo +/* 00DE10 7000D210 27A50038 */ addiu $a1, $sp, 0x38 +/* 00DE14 7000D214 8FA80038 */ lw $t0, 0x38($sp) +/* 00DE18 7000D218 2401FFF0 */ li $at, -16 +/* 00DE1C 7000D21C 0101C824 */ and $t9, $t0, $at +/* 00DE20 7000D220 13200006 */ beqz $t9, .L7000D23C +/* 00DE24 7000D224 AFB90038 */ sw $t9, 0x38($sp) +/* 00DE28 7000D228 3C018002 */ lui $at, %hi(osClockRate) +/* 00DE2C 7000D22C 03205825 */ move $t3, $t9 +/* 00DE30 7000D230 240A0000 */ li $t2, 0 +/* 00DE34 7000D234 AC2A6980 */ sw $t2, %lo(osClockRate)($at) +/* 00DE38 7000D238 AC2B6984 */ sw $t3, %lo(osClockRate+4)($at) +.L7000D23C: +/* 00DE3C 7000D23C 3C048002 */ lui $a0, %hi(osClockRate) +/* 00DE40 7000D240 3C058002 */ lui $a1, %hi(osClockRate) +/* 00DE44 7000D244 8CA56984 */ lw $a1, %lo(osClockRate+4)($a1) +/* 00DE48 7000D248 8C846980 */ lw $a0, %lo(osClockRate)($a0) +/* 00DE4C 7000D24C 24060000 */ li $a2, 0 +/* 00DE50 7000D250 0C003B6A */ jal __ll_mul +/* 00DE54 7000D254 24070003 */ li $a3, 3 +/* 00DE58 7000D258 AFA20020 */ sw $v0, 0x20($sp) +/* 00DE5C 7000D25C AFA30024 */ sw $v1, 0x24($sp) +/* 00DE60 7000D260 8FA50024 */ lw $a1, 0x24($sp) +/* 00DE64 7000D264 8FA40020 */ lw $a0, 0x20($sp) +/* 00DE68 7000D268 24060000 */ li $a2, 0 +/* 00DE6C 7000D26C 0C003B2A */ jal __ull_div +/* 00DE70 7000D270 24070004 */ li $a3, 4 +/* 00DE74 7000D274 3C098000 */ lui $t1, %hi(osResetType) +/* 00DE78 7000D278 8D29030C */ lw $t1, %lo(osResetType)($t1) +/* 00DE7C 7000D27C 3C018002 */ lui $at, %hi(osClockRate) +/* 00DE80 7000D280 AC226980 */ sw $v0, %lo(osClockRate)($at) +/* 00DE84 7000D284 15200005 */ bnez $t1, .L7000D29C +/* 00DE88 7000D288 AC236984 */ sw $v1, %lo(osClockRate+4)($at) +/* 00DE8C 7000D28C 3C048000 */ lui $a0, %hi(osAppNMIBuffer) +/* 00DE90 7000D290 2484031C */ addiu $a0, %lo(osAppNMIBuffer) # addiu $a0, $a0, 0x31c +/* 00DE94 7000D294 0C005F10 */ jal bzero +/* 00DE98 7000D298 24050040 */ li $a1, 64 +.L7000D29C: +/* 00DE9C 7000D29C 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 00DEA0 7000D2A0 8DAC0010 */ lw $t4, %lo(PI_STATUS_REG)($t5) +/* 00DEA4 7000D2A4 318F0003 */ andi $t7, $t4, 3 +/* 00DEA8 7000D2A8 11E00008 */ beqz $t7, .L7000D2CC +/* 00DEAC 7000D2AC AFAC0030 */ sw $t4, 0x30($sp) +.L7000D2B0: +/* 00DEB0 7000D2B0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 00DEB4 7000D2B4 8DD80010 */ lw $t8, %lo(PI_STATUS_REG)($t6) +/* 00DEB8 7000D2B8 AFB80030 */ sw $t8, 0x30($sp) +/* 00DEBC 7000D2BC 8FA80030 */ lw $t0, 0x30($sp) +/* 00DEC0 7000D2C0 31190003 */ andi $t9, $t0, 3 +/* 00DEC4 7000D2C4 1720FFFA */ bnez $t9, .L7000D2B0 +/* 00DEC8 7000D2C8 00000000 */ nop +.L7000D2CC: +/* 00DECC 7000D2CC 3C0AA500 */ lui $t2, %hi(ASIC_STATUS) # $t2, 0xa500 +/* 00DED0 7000D2D0 8D4B0508 */ lw $t3, %lo(ASIC_STATUS)($t2) +/* 00DED4 7000D2D4 3169FFFF */ andi $t1, $t3, 0xffff +/* 00DED8 7000D2D8 1520000A */ bnez $t1, .L7000D304 +/* 00DEDC 7000D2DC AFAB0034 */ sw $t3, 0x34($sp) +/* 00DEE0 7000D2E0 240D0001 */ li $t5, 1 +/* 00DEE4 7000D2E4 3C018002 */ lui $at, %hi(osDiskExist) +/* 00DEE8 7000D2E8 3C057001 */ lui $a1, %hi(__osLeoInterrupt) # $a1, 0x7001 +/* 00DEEC 7000D2EC AC2D6990 */ sw $t5, %lo(osDiskExist)($at) +/* 00DEF0 7000D2F0 24A57D30 */ addiu $a1, %lo(__osLeoInterrupt) # addiu $a1, $a1, 0x7d30 +/* 00DEF4 7000D2F4 0C005F38 */ jal __osSetHWIntrRoutine +/* 00DEF8 7000D2F8 24040001 */ li $a0, 1 +/* 00DEFC 7000D2FC 10000003 */ b .L7000D30C +/* 00DF00 7000D300 00000000 */ nop +.L7000D304: +/* 00DF04 7000D304 3C018002 */ lui $at, %hi(osDiskExist) +/* 00DF08 7000D308 AC206990 */ sw $zero, %lo(osDiskExist)($at) +.L7000D30C: +/* 00DF0C 7000D30C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00DF10 7000D310 8FB00018 */ lw $s0, 0x18($sp) +/* 00DF14 7000D314 27BD0040 */ addiu $sp, $sp, 0x40 +/* 00DF18 7000D318 03E00008 */ jr $ra +/* 00DF1C 7000D31C 00000000 */ nop + + + + + diff --git a/src/libultra/interrupt.s b/src/libultra/interrupt.s new file mode 100644 index 0000000..28ade9b --- /dev/null +++ b/src/libultra/interrupt.s @@ -0,0 +1,32 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osDisableInt +/* 0191F0 700185F0 40086000 */ mfc0 $t0, $12 +/* 0191F4 700185F4 2401FFFE */ li $at, -2 +/* 0191F8 700185F8 01014824 */ and $t1, $t0, $at +/* 0191FC 700185FC 40896000 */ mtc0 $t1, $12 +/* 019200 70018600 31020001 */ andi $v0, $t0, 1 +/* 019204 70018604 00000000 */ nop +/* 019208 70018608 03E00008 */ jr $ra +/* 01920C 7001860C 00000000 */ nop + +glabel __osRestoreInt +/* 019210 70018610 40086000 */ mfc0 $t0, $12 +/* 019214 70018614 01044025 */ or $t0, $t0, $a0 +/* 019218 70018618 40886000 */ mtc0 $t0, $12 +/* 01921C 7001861C 00000000 */ nop +/* 019220 70018620 00000000 */ nop +/* 019224 70018624 03E00008 */ jr $ra +/* 019228 70018628 00000000 */ nop + diff --git a/src/libultra/invaldcache.s b/src/libultra/invaldcache.s new file mode 100644 index 0000000..57a8301 --- /dev/null +++ b/src/libultra/invaldcache.s @@ -0,0 +1,59 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osInvalDCache +/* 011720 70010B20 18A0001F */ blez $a1, .L70010BA0 +/* 011724 70010B24 00000000 */ nop +/* 011728 70010B28 240B2000 */ li $t3, 8192 +/* 01172C 70010B2C 00AB082B */ sltu $at, $a1, $t3 +/* 011730 70010B30 1020001D */ beqz $at, .L70010BA8 +/* 011734 70010B34 00000000 */ nop +/* 011738 70010B38 00804025 */ move $t0, $a0 +/* 01173C 70010B3C 00854821 */ addu $t1, $a0, $a1 +/* 011740 70010B40 0109082B */ sltu $at, $t0, $t1 +/* 011744 70010B44 10200016 */ beqz $at, .L70010BA0 +/* 011748 70010B48 00000000 */ nop +/* 01174C 70010B4C 310A000F */ andi $t2, $t0, 0xf +/* 011750 70010B50 11400007 */ beqz $t2, .L70010B70 +/* 011754 70010B54 2529FFF0 */ addiu $t1, $t1, -0x10 +/* 011758 70010B58 010A4023 */ subu $t0, $t0, $t2 +/* 01175C 70010B5C BD150000 */ cache 0x15, ($t0) +/* 011760 70010B60 0109082B */ sltu $at, $t0, $t1 +/* 011764 70010B64 1020000E */ beqz $at, .L70010BA0 +/* 011768 70010B68 00000000 */ nop +/* 01176C 70010B6C 25080010 */ addiu $t0, $t0, 0x10 +.L70010B70: +/* 011770 70010B70 312A000F */ andi $t2, $t1, 0xf +/* 011774 70010B74 11400006 */ beqz $t2, .L70010B90 +/* 011778 70010B78 00000000 */ nop +/* 01177C 70010B7C 012A4823 */ subu $t1, $t1, $t2 +/* 011780 70010B80 BD350010 */ cache 0x15, 0x10($t1) +/* 011784 70010B84 0128082B */ sltu $at, $t1, $t0 +/* 011788 70010B88 14200005 */ bnez $at, .L70010BA0 +/* 01178C 70010B8C 00000000 */ nop +.L70010B90: +/* 011790 70010B90 BD110000 */ cache 0x11, ($t0) +/* 011794 70010B94 0109082B */ sltu $at, $t0, $t1 +/* 011798 70010B98 1420FFFD */ bnez $at, .L70010B90 +/* 01179C 70010B9C 25080010 */ addiu $t0, $t0, 0x10 +.L70010BA0: +/* 0117A0 70010BA0 03E00008 */ jr $ra +/* 0117A4 70010BA4 00000000 */ nop + +.L70010BA8: +/* 0117A8 70010BA8 3C088000 */ lui $t0, 0x8000 +/* 0117AC 70010BAC 010B4821 */ addu $t1, $t0, $t3 +/* 0117B0 70010BB0 2529FFF0 */ addiu $t1, $t1, -0x10 +.L70010BB4: +/* 0117B4 70010BB4 BD010000 */ cache 1, ($t0) +/* 0117B8 70010BB8 0109082B */ sltu $at, $t0, $t1 +/* 0117BC 70010BBC 1420FFFD */ bnez $at, .L70010BB4 +/* 0117C0 70010BC0 25080010 */ addiu $t0, $t0, 0x10 +/* 0117C4 70010BC4 03E00008 */ jr $ra +/* 0117C8 70010BC8 00000000 */ nop diff --git a/src/libultra/invalicache.s b/src/libultra/invalicache.s new file mode 100644 index 0000000..2bac877 --- /dev/null +++ b/src/libultra/invalicache.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osInvalICache +/* 00DF50 7000D350 18A00011 */ blez $a1, .L7000D398 +/* 00DF54 7000D354 00000000 */ nop +/* 00DF58 7000D358 240B4000 */ li $t3, 16384 +/* 00DF5C 7000D35C 00AB082B */ sltu $at, $a1, $t3 +/* 00DF60 7000D360 1020000F */ beqz $at, .L7000D3A0 +/* 00DF64 7000D364 00000000 */ nop +/* 00DF68 7000D368 00804025 */ move $t0, $a0 +/* 00DF6C 7000D36C 00854821 */ addu $t1, $a0, $a1 +/* 00DF70 7000D370 0109082B */ sltu $at, $t0, $t1 +/* 00DF74 7000D374 10200008 */ beqz $at, .L7000D398 +/* 00DF78 7000D378 00000000 */ nop +/* 00DF7C 7000D37C 310A001F */ andi $t2, $t0, 0x1f +/* 00DF80 7000D380 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 00DF84 7000D384 010A4023 */ subu $t0, $t0, $t2 +.L7000D388: +/* 00DF88 7000D388 BD100000 */ cache 0x10, ($t0) +/* 00DF8C 7000D38C 0109082B */ sltu $at, $t0, $t1 +/* 00DF90 7000D390 1420FFFD */ bnez $at, .L7000D388 +/* 00DF94 7000D394 25080020 */ addiu $t0, $t0, 0x20 +.L7000D398: +/* 00DF98 7000D398 03E00008 */ jr $ra +/* 00DF9C 7000D39C 00000000 */ nop + +.L7000D3A0: +/* 00DFA0 7000D3A0 3C088000 */ lui $t0, 0x8000 +/* 00DFA4 7000D3A4 010B4821 */ addu $t1, $t0, $t3 +/* 00DFA8 7000D3A8 2529FFE0 */ addiu $t1, $t1, -0x20 +.L7000D3AC: +/* 00DFAC 7000D3AC BD000000 */ cache 0, ($t0) +/* 00DFB0 7000D3B0 0109082B */ sltu $at, $t0, $t1 +/* 00DFB4 7000D3B4 1420FFFD */ bnez $at, .L7000D3AC +/* 00DFB8 7000D3B8 25080020 */ addiu $t0, $t0, 0x20 +/* 00DFBC 7000D3BC 03E00008 */ jr $ra +/* 00DFC0 7000D3C0 00000000 */ nop diff --git a/src/libultra/jammesg.s b/src/libultra/jammesg.s new file mode 100644 index 0000000..b459386 --- /dev/null +++ b/src/libultra/jammesg.s @@ -0,0 +1,106 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osJamMesg +/* 01C2B0 7001B6B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01C2B4 7001B6B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 01C2B8 7001B6B8 AFA40028 */ sw $a0, 0x28($sp) +/* 01C2BC 7001B6BC AFA5002C */ sw $a1, 0x2c($sp) +/* 01C2C0 7001B6C0 AFA60030 */ sw $a2, 0x30($sp) +/* 01C2C4 7001B6C4 AFB10018 */ sw $s1, 0x18($sp) +/* 01C2C8 7001B6C8 0C00617C */ jal __osDisableInt +/* 01C2CC 7001B6CC AFB00014 */ sw $s0, 0x14($sp) +/* 01C2D0 7001B6D0 8FAE0028 */ lw $t6, 0x28($sp) +/* 01C2D4 7001B6D4 00408025 */ move $s0, $v0 +/* 01C2D8 7001B6D8 8DCF0008 */ lw $t7, 8($t6) +/* 01C2DC 7001B6DC 8DD80010 */ lw $t8, 0x10($t6) +/* 01C2E0 7001B6E0 01F8082A */ slt $at, $t7, $t8 +/* 01C2E4 7001B6E4 14200018 */ bnez $at, .L7001B748 +/* 01C2E8 7001B6E8 00000000 */ nop +.L7001B6EC: +/* 01C2EC 7001B6EC 8FB90030 */ lw $t9, 0x30($sp) +/* 01C2F0 7001B6F0 24010001 */ li $at, 1 +/* 01C2F4 7001B6F4 1721000A */ bne $t9, $at, .L7001B720 +/* 01C2F8 7001B6F8 00000000 */ nop +/* 01C2FC 7001B6FC 3C098002 */ lui $t1, %hi(__osRunningThread) +/* 01C300 7001B700 8D297730 */ lw $t1, %lo(__osRunningThread)($t1) +/* 01C304 7001B704 24080008 */ li $t0, 8 +/* 01C308 7001B708 A5280010 */ sh $t0, 0x10($t1) +/* 01C30C 7001B70C 8FA40028 */ lw $a0, 0x28($sp) +/* 01C310 7001B710 0C0041EB */ jal __osEnqueueAndYield +/* 01C314 7001B714 24840004 */ addiu $a0, $a0, 4 +/* 01C318 7001B718 10000005 */ b .L7001B730 +/* 01C31C 7001B71C 00000000 */ nop +.L7001B720: +/* 01C320 7001B720 0C006184 */ jal __osRestoreInt +/* 01C324 7001B724 02002025 */ move $a0, $s0 +/* 01C328 7001B728 10000030 */ b .L7001B7EC +/* 01C32C 7001B72C 2402FFFF */ li $v0, -1 +.L7001B730: +/* 01C330 7001B730 8FAA0028 */ lw $t2, 0x28($sp) +/* 01C334 7001B734 8D4B0008 */ lw $t3, 8($t2) +/* 01C338 7001B738 8D4C0010 */ lw $t4, 0x10($t2) +/* 01C33C 7001B73C 016C082A */ slt $at, $t3, $t4 +/* 01C340 7001B740 1020FFEA */ beqz $at, .L7001B6EC +/* 01C344 7001B744 00000000 */ nop +.L7001B748: +/* 01C348 7001B748 8FAD0028 */ lw $t5, 0x28($sp) +/* 01C34C 7001B74C 8DAE000C */ lw $t6, 0xc($t5) +/* 01C350 7001B750 8DAF0010 */ lw $t7, 0x10($t5) +/* 01C354 7001B754 01CFC021 */ addu $t8, $t6, $t7 +/* 01C358 7001B758 2719FFFF */ addiu $t9, $t8, -1 +/* 01C35C 7001B75C 032F001A */ div $zero, $t9, $t7 +/* 01C360 7001B760 00004010 */ mfhi $t0 +/* 01C364 7001B764 ADA8000C */ sw $t0, 0xc($t5) +/* 01C368 7001B768 8FAA0028 */ lw $t2, 0x28($sp) +/* 01C36C 7001B76C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01C370 7001B770 15E00002 */ bnez $t7, .L7001B77C +/* 01C374 7001B774 00000000 */ nop +/* 01C378 7001B778 0007000D */ break 7 +.L7001B77C: +/* 01C37C 7001B77C 2401FFFF */ li $at, -1 +/* 01C380 7001B780 15E10004 */ bne $t7, $at, .L7001B794 +/* 01C384 7001B784 3C018000 */ lui $at, 0x8000 +/* 01C388 7001B788 17210002 */ bne $t9, $at, .L7001B794 +/* 01C38C 7001B78C 00000000 */ nop +/* 01C390 7001B790 0006000D */ break 6 +.L7001B794: +/* 01C394 7001B794 8D4C000C */ lw $t4, 0xc($t2) +/* 01C398 7001B798 8D4B0014 */ lw $t3, 0x14($t2) +/* 01C39C 7001B79C 000C7080 */ sll $t6, $t4, 2 +/* 01C3A0 7001B7A0 016EC021 */ addu $t8, $t3, $t6 +/* 01C3A4 7001B7A4 AF090000 */ sw $t1, ($t8) +/* 01C3A8 7001B7A8 8FB90028 */ lw $t9, 0x28($sp) +/* 01C3AC 7001B7AC 8F2F0008 */ lw $t7, 8($t9) +/* 01C3B0 7001B7B0 25E80001 */ addiu $t0, $t7, 1 +/* 01C3B4 7001B7B4 AF280008 */ sw $t0, 8($t9) +/* 01C3B8 7001B7B8 8FAD0028 */ lw $t5, 0x28($sp) +/* 01C3BC 7001B7BC 8DAA0000 */ lw $t2, ($t5) +/* 01C3C0 7001B7C0 8D4C0000 */ lw $t4, ($t2) +/* 01C3C4 7001B7C4 11800006 */ beqz $t4, .L7001B7E0 +/* 01C3C8 7001B7C8 00000000 */ nop +/* 01C3CC 7001B7CC 0C00423D */ jal __osPopThread +/* 01C3D0 7001B7D0 01A02025 */ move $a0, $t5 +/* 01C3D4 7001B7D4 00408825 */ move $s1, $v0 +/* 01C3D8 7001B7D8 0C003560 */ jal osStartThread +/* 01C3DC 7001B7DC 02202025 */ move $a0, $s1 +.L7001B7E0: +/* 01C3E0 7001B7E0 0C006184 */ jal __osRestoreInt +/* 01C3E4 7001B7E4 02002025 */ move $a0, $s0 +/* 01C3E8 7001B7E8 00001025 */ move $v0, $zero +.L7001B7EC: +/* 01C3EC 7001B7EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 01C3F0 7001B7F0 8FB00014 */ lw $s0, 0x14($sp) +/* 01C3F4 7001B7F4 8FB10018 */ lw $s1, 0x18($sp) +/* 01C3F8 7001B7F8 03E00008 */ jr $ra +/* 01C3FC 7001B7FC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/kdebugserver.s b/src/libultra/kdebugserver.s new file mode 100644 index 0000000..39b34ae --- /dev/null +++ b/src/libultra/kdebugserver.s @@ -0,0 +1,448 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +#needs a proper home but works +.section .bss +glabel __osThreadSave +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 diff --git a/src/libultra/ldiv.s b/src/libultra/ldiv.s new file mode 100644 index 0000000..8f6f41f --- /dev/null +++ b/src/libultra/ldiv.s @@ -0,0 +1,121 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel lldiv +/* 021750 70020B50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 021754 70020B54 AFA40030 */ sw $a0, 0x30($sp) +/* 021758 70020B58 AFBF0014 */ sw $ra, 0x14($sp) +/* 02175C 70020B5C AFA60038 */ sw $a2, 0x38($sp) +/* 021760 70020B60 AFA7003C */ sw $a3, 0x3c($sp) +/* 021764 70020B64 00C02025 */ move $a0, $a2 +/* 021768 70020B68 00E02825 */ move $a1, $a3 +/* 02176C 70020B6C 8FA70044 */ lw $a3, 0x44($sp) +/* 021770 70020B70 0C003B53 */ jal __ll_div +/* 021774 70020B74 8FA60040 */ lw $a2, 0x40($sp) +/* 021778 70020B78 AFA20020 */ sw $v0, 0x20($sp) +/* 02177C 70020B7C AFA30024 */ sw $v1, 0x24($sp) +/* 021780 70020B80 8FA40040 */ lw $a0, 0x40($sp) +/* 021784 70020B84 8FA50044 */ lw $a1, 0x44($sp) +/* 021788 70020B88 00403025 */ move $a2, $v0 +/* 02178C 70020B8C 0C003B6A */ jal __ll_mul +/* 021790 70020B90 00603825 */ move $a3, $v1 +/* 021794 70020B94 8FAE0038 */ lw $t6, 0x38($sp) +/* 021798 70020B98 8FAF003C */ lw $t7, 0x3c($sp) +/* 02179C 70020B9C 8FA80020 */ lw $t0, 0x20($sp) +/* 0217A0 70020BA0 01C2C023 */ subu $t8, $t6, $v0 +/* 0217A4 70020BA4 01E3082B */ sltu $at, $t7, $v1 +/* 0217A8 70020BA8 0301C023 */ subu $t8, $t8, $at +/* 0217AC 70020BAC 01E3C823 */ subu $t9, $t7, $v1 +/* 0217B0 70020BB0 AFB9002C */ sw $t9, 0x2c($sp) +/* 0217B4 70020BB4 AFB80028 */ sw $t8, 0x28($sp) +/* 0217B8 70020BB8 1D000017 */ bgtz $t0, .L70020C18 +/* 0217BC 70020BBC 8FA90024 */ lw $t1, 0x24($sp) +/* 0217C0 70020BC0 05000003 */ bltz $t0, .L70020BD0 +/* 0217C4 70020BC4 00000000 */ nop +/* 0217C8 70020BC8 10000014 */ b .L70020C1C +/* 0217CC 70020BCC 27A80020 */ addiu $t0, $sp, 0x20 +.L70020BD0: +/* 0217D0 70020BD0 07020012 */ bltzl $t8, .L70020C1C +/* 0217D4 70020BD4 27A80020 */ addiu $t0, $sp, 0x20 +/* 0217D8 70020BD8 1F000003 */ bgtz $t8, .L70020BE8 +/* 0217DC 70020BDC 252B0001 */ addiu $t3, $t1, 1 +/* 0217E0 70020BE0 5320000E */ beql $t9, $zero, .L70020C1C +/* 0217E4 70020BE4 27A80020 */ addiu $t0, $sp, 0x20 +.L70020BE8: +/* 0217E8 70020BE8 8FAC0040 */ lw $t4, 0x40($sp) +/* 0217EC 70020BEC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0217F0 70020BF0 2D610001 */ sltiu $at, $t3, 1 +/* 0217F4 70020BF4 01015021 */ addu $t2, $t0, $at +/* 0217F8 70020BF8 030C7023 */ subu $t6, $t8, $t4 +/* 0217FC 70020BFC 032D082B */ sltu $at, $t9, $t5 +/* 021800 70020C00 01C17023 */ subu $t6, $t6, $at +/* 021804 70020C04 032D7823 */ subu $t7, $t9, $t5 +/* 021808 70020C08 AFAA0020 */ sw $t2, 0x20($sp) +/* 02180C 70020C0C AFAB0024 */ sw $t3, 0x24($sp) +/* 021810 70020C10 AFAF002C */ sw $t7, 0x2c($sp) +/* 021814 70020C14 AFAE0028 */ sw $t6, 0x28($sp) +.L70020C18: +/* 021818 70020C18 27A80020 */ addiu $t0, $sp, 0x20 +.L70020C1C: +/* 02181C 70020C1C 8FA20030 */ lw $v0, 0x30($sp) +/* 021820 70020C20 8D010000 */ lw $at, ($t0) +/* 021824 70020C24 AC410000 */ sw $at, ($v0) +/* 021828 70020C28 8D0B0004 */ lw $t3, 4($t0) +/* 02182C 70020C2C AC4B0004 */ sw $t3, 4($v0) +/* 021830 70020C30 8D010008 */ lw $at, 8($t0) +/* 021834 70020C34 AC410008 */ sw $at, 8($v0) +/* 021838 70020C38 8D0B000C */ lw $t3, 0xc($t0) +/* 02183C 70020C3C AC4B000C */ sw $t3, 0xc($v0) +/* 021840 70020C40 8FBF0014 */ lw $ra, 0x14($sp) +/* 021844 70020C44 27BD0030 */ addiu $sp, $sp, 0x30 +/* 021848 70020C48 03E00008 */ jr $ra +/* 02184C 70020C4C 00000000 */ nop + +glabel ldiv +/* 021850 70020C50 00A6001A */ div $zero, $a1, $a2 +/* 021854 70020C54 00001012 */ mflo $v0 +/* 021858 70020C58 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02185C 70020C5C 14C00002 */ bnez $a2, .L70020C68 +/* 021860 70020C60 00000000 */ nop +/* 021864 70020C64 0007000D */ break 7 +.L70020C68: +/* 021868 70020C68 2401FFFF */ li $at, -1 +/* 02186C 70020C6C 14C10004 */ bne $a2, $at, .L70020C80 +/* 021870 70020C70 3C018000 */ lui $at, 0x8000 +/* 021874 70020C74 14A10002 */ bne $a1, $at, .L70020C80 +/* 021878 70020C78 00000000 */ nop +/* 02187C 70020C7C 0006000D */ break 6 +.L70020C80: +/* 021880 70020C80 00C20019 */ multu $a2, $v0 +/* 021884 70020C84 AFA20000 */ sw $v0, ($sp) +/* 021888 70020C88 27AF0000 */ addiu $t7, $sp, 0 +/* 02188C 70020C8C 00007012 */ mflo $t6 +/* 021890 70020C90 00AE1823 */ subu $v1, $a1, $t6 +/* 021894 70020C94 04410008 */ bgez $v0, .L70020CB8 +/* 021898 70020C98 AFA30004 */ sw $v1, 4($sp) +/* 02189C 70020C9C AFA20000 */ sw $v0, ($sp) +/* 0218A0 70020CA0 18600005 */ blez $v1, .L70020CB8 +/* 0218A4 70020CA4 AFA30004 */ sw $v1, 4($sp) +/* 0218A8 70020CA8 24420001 */ addiu $v0, $v0, 1 +/* 0218AC 70020CAC 00661823 */ subu $v1, $v1, $a2 +/* 0218B0 70020CB0 AFA30004 */ sw $v1, 4($sp) +/* 0218B4 70020CB4 AFA20000 */ sw $v0, ($sp) +.L70020CB8: +/* 0218B8 70020CB8 8DE10000 */ lw $at, ($t7) +/* 0218BC 70020CBC 00801025 */ move $v0, $a0 +/* 0218C0 70020CC0 AC810000 */ sw $at, ($a0) +/* 0218C4 70020CC4 8DE80004 */ lw $t0, 4($t7) +/* 0218C8 70020CC8 27BD0008 */ addiu $sp, $sp, 8 +/* 0218CC 70020CCC 03E00008 */ jr $ra +/* 0218D0 70020CD0 AC880004 */ sw $t0, 4($a0) + diff --git a/src/libultra/leodiskinit.s b/src/libultra/leodiskinit.s new file mode 100644 index 0000000..3315cdc --- /dev/null +++ b/src/libultra/leodiskinit.s @@ -0,0 +1,198 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osLeoDiskInit +/* 0203F0 7001F7F0 240E0002 */ li $t6, 2 +/* 0203F4 7001F7F4 3C018007 */ lui $at, %hi(LeoDiskHandle+0x4) +/* 0203F8 7001F7F8 A02E9004 */ sb $t6, %lo(LeoDiskHandle+0x4)($at) +/* 0203FC 7001F7FC 3C018007 */ lui $at, %hi(LeoDiskHandle+0xC) +/* 020400 7001F800 3C0FA500 */ lui $t7, 0xa500 +/* 020404 7001F804 AC2F900C */ sw $t7, %lo(LeoDiskHandle+0xC)($at) +/* 020408 7001F808 3C018007 */ lui $at, %hi(LeoDiskHandle+0x5) +/* 02040C 7001F80C 24180003 */ li $t8, 3 +/* 020410 7001F810 A0389005 */ sb $t8, %lo(LeoDiskHandle+0x5)($at) +/* 020414 7001F814 3C018007 */ lui $at, %hi(LeoDiskHandle+0x8) +/* 020418 7001F818 24190006 */ li $t9, 6 +/* 02041C 7001F81C A0399008 */ sb $t9, %lo(LeoDiskHandle+0x8)($at) +/* 020420 7001F820 3C018007 */ lui $at, %hi(LeoDiskHandle+0x7) +/* 020424 7001F824 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 020428 7001F828 24080006 */ li $t0, 6 +/* 02042C 7001F82C 24090002 */ li $t1, 2 +/* 020430 7001F830 AFBF0014 */ sw $ra, 0x14($sp) +/* 020434 7001F834 A0289006 */ sb $t0, %lo(LeoDiskHandle+0x6)($at) +/* 020438 7001F838 A0299007 */ sb $t1, %lo(LeoDiskHandle+0x7)($at) +/* 02043C 7001F83C 240A0003 */ li $t2, 3 +/* 020440 7001F840 3C0BA460 */ lui $t3, %hi(PI_BSD_DOM2_LAT_REG) # $t3, 0xa460 +/* 020444 7001F844 AD6A0024 */ sw $t2, %lo(PI_BSD_DOM2_LAT_REG)($t3) +/* 020448 7001F848 3C0C8007 */ lui $t4, %hi(LeoDiskHandle+0x8) +/* 02044C 7001F84C 918C9008 */ lbu $t4, %lo(LeoDiskHandle+0x8)($t4) +/* 020450 7001F850 3C0DA460 */ lui $t5, %hi(PI_BSD_DOM2_PWD_REG) # $t5, 0xa460 +/* 020454 7001F854 3C0E8007 */ lui $t6, %hi(LeoDiskHandle+0x6) +/* 020458 7001F858 ADAC0028 */ sw $t4, %lo(PI_BSD_DOM2_PWD_REG)($t5) +/* 02045C 7001F85C 91CE9006 */ lbu $t6, %lo(LeoDiskHandle+0x6)($t6) +/* 020460 7001F860 3C0FA460 */ lui $t7, %hi(PI_BSD_DOM2_PGS_REG) # $t7, 0xa460 +/* 020464 7001F864 3C188007 */ lui $t8, %hi(LeoDiskHandle+0x7) +/* 020468 7001F868 ADEE002C */ sw $t6, %lo(PI_BSD_DOM2_PGS_REG)($t7) +/* 02046C 7001F86C 93189007 */ lbu $t8, %lo(LeoDiskHandle+0x7)($t8) +/* 020470 7001F870 3C048007 */ lui $a0, %hi(LeoDiskHandle) +/* 020474 7001F874 3C19A460 */ lui $t9, %hi(PI_BSD_DOM2_RLS_REG) # $t9, 0xa460 +/* 020478 7001F878 24849000 */ addiu $a0, %lo(LeoDiskHandle) # addiu $a0, $a0, -0x7000 +/* 02047C 7001F87C 24840014 */ addiu $a0, $a0, 0x14 +/* 020480 7001F880 24050060 */ li $a1, 96 +/* 020484 7001F884 0C005F10 */ jal bzero +/* 020488 7001F888 AF380030 */ sw $t8, %lo(PI_BSD_DOM2_RLS_REG)($t9) +/* 02048C 7001F88C 0C00617C */ jal __osDisableInt +/* 020490 7001F890 00000000 */ nop +/* 020494 7001F894 3C088002 */ lui $t0, %hi(__osPiTable) +/* 020498 7001F898 8D0877AC */ lw $t0, %lo(__osPiTable)($t0) +/* 02049C 7001F89C 3C018007 */ lui $at, %hi(LeoDiskHandle) +/* 0204A0 7001F8A0 3C098007 */ lui $t1, %hi(LeoDiskHandle) +/* 0204A4 7001F8A4 AC289000 */ sw $t0, %lo(LeoDiskHandle)($at) +/* 0204A8 7001F8A8 3C018002 */ lui $at, %hi(__osPiTable) +/* 0204AC 7001F8AC 25299000 */ addiu $t1, %lo(LeoDiskHandle) # addiu $t1, $t1, -0x7000 +/* 0204B0 7001F8B0 AC2977AC */ sw $t1, %lo(__osPiTable)($at) +/* 0204B4 7001F8B4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0204B8 7001F8B8 3C018007 */ lui $at, %hi(__osDiskHandle) +/* 0204BC 7001F8BC AC299074 */ sw $t1, %lo(__osDiskHandle)($at) +/* 0204C0 7001F8C0 0C006184 */ jal __osRestoreInt +/* 0204C4 7001F8C4 8FA4001C */ lw $a0, 0x1c($sp) +/* 0204C8 7001F8C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0204CC 7001F8CC 3C028007 */ lui $v0, %hi(LeoDiskHandle) +/* 0204D0 7001F8D0 24429000 */ addiu $v0, %lo(LeoDiskHandle) # addiu $v0, $v0, -0x7000 +/* 0204D4 7001F8D4 03E00008 */ jr $ra +/* 0204D8 7001F8D8 27BD0020 */ addiu $sp, $sp, 0x20 + +/* 0204DC 7001F8DC 00000000 */ nop +.section .bss +glabel LeoDiskHandle +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osDiskHandle +.word 0 +.word 0, 0 + diff --git a/src/libultra/leointerrupt.s b/src/libultra/leointerrupt.s new file mode 100644 index 0000000..7799080 --- /dev/null +++ b/src/libultra/leointerrupt.s @@ -0,0 +1,4722 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .bss +glabel leoDiskStack +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + + +.section .text +glabel __osLeoInterrupt +/* 018930 70017D30 3C0E8002 */ lui $t6, %hi(osDiskExist) +/* 018934 70017D34 8DCE6990 */ lw $t6, %lo(osDiskExist)($t6) +/* 018938 70017D38 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01893C 70017D3C AFBF001C */ sw $ra, 0x1c($sp) +/* 018940 70017D40 15C00003 */ bnez $t6, .L70017D50 +/* 018944 70017D44 00000000 */ nop +/* 018948 70017D48 100001AE */ b .L70018404 +/* 01894C 70017D4C 00001025 */ move $v0, $zero +.L70017D50: +/* 018950 70017D50 3C0F8007 */ lui $t7, %hi(__osDiskHandle) +/* 018954 70017D54 8DEF9074 */ lw $t7, %lo(__osDiskHandle)($t7) +/* 018958 70017D58 3C0BA460 */ lui $t3, %hi(PI_STATUS_REG) # $t3, 0xa460 +/* 01895C 70017D5C 25F80014 */ addiu $t8, $t7, 0x14 +/* 018960 70017D60 AFB80030 */ sw $t8, 0x30($sp) +/* 018964 70017D64 95F9001A */ lhu $t9, 0x1a($t7) +/* 018968 70017D68 001940C0 */ sll $t0, $t9, 3 +/* 01896C 70017D6C 01194021 */ addu $t0, $t0, $t9 +/* 018970 70017D70 00084080 */ sll $t0, $t0, 2 +/* 018974 70017D74 03084821 */ addu $t1, $t8, $t0 +/* 018978 70017D78 252A0018 */ addiu $t2, $t1, 0x18 +/* 01897C 70017D7C AFAA002C */ sw $t2, 0x2c($sp) +/* 018980 70017D80 8D6C0010 */ lw $t4, %lo(PI_STATUS_REG)($t3) +/* 018984 70017D84 AFAC0038 */ sw $t4, 0x38($sp) +/* 018988 70017D88 8FAD0038 */ lw $t5, 0x38($sp) +/* 01898C 70017D8C 31AE0001 */ andi $t6, $t5, 1 +/* 018990 70017D90 11C00034 */ beqz $t6, .L70017E64 +/* 018994 70017D94 00000000 */ nop +/* 018998 70017D98 240F0003 */ li $t7, 3 +/* 01899C 70017D9C 3C19A460 */ lui $t9, %hi(PI_STATUS_REG) # $t9, 0xa460 +/* 0189A0 70017DA0 AF2F0010 */ sw $t7, %lo(PI_STATUS_REG)($t9) +/* 0189A4 70017DA4 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 0189A8 70017DA8 8F080010 */ lw $t0, %lo(PI_STATUS_REG)($t8) +/* 0189AC 70017DAC AFA80038 */ sw $t0, 0x38($sp) +/* 0189B0 70017DB0 8FA90038 */ lw $t1, 0x38($sp) +/* 0189B4 70017DB4 312A0002 */ andi $t2, $t1, 2 +/* 0189B8 70017DB8 11400008 */ beqz $t2, .L70017DDC +/* 0189BC 70017DBC 00000000 */ nop +.L70017DC0: +/* 0189C0 70017DC0 3C0BA460 */ lui $t3, %hi(PI_STATUS_REG) # $t3, 0xa460 +/* 0189C4 70017DC4 8D6C0010 */ lw $t4, %lo(PI_STATUS_REG)($t3) +/* 0189C8 70017DC8 AFAC0038 */ sw $t4, 0x38($sp) +/* 0189CC 70017DCC 8FAD0038 */ lw $t5, 0x38($sp) +/* 0189D0 70017DD0 31AE0002 */ andi $t6, $t5, 2 +/* 0189D4 70017DD4 15C0FFFA */ bnez $t6, .L70017DC0 +/* 0189D8 70017DD8 00000000 */ nop +.L70017DDC: +/* 0189DC 70017DDC 3C0FA500 */ lui $t7, %hi(ASIC_STATUS) # $t7, 0xa500 +/* 0189E0 70017DE0 8DF90508 */ lw $t9, %lo(ASIC_STATUS)($t7) +/* 0189E4 70017DE4 3C010200 */ lui $at, 0x200 +/* 0189E8 70017DE8 AFB9003C */ sw $t9, 0x3c($sp) +/* 0189EC 70017DEC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0189F0 70017DF0 03014024 */ and $t0, $t8, $at +/* 0189F4 70017DF4 11000015 */ beqz $t0, .L70017E4C +/* 0189F8 70017DF8 00000000 */ nop +/* 0189FC 70017DFC 3C09A460 */ lui $t1, %hi(PI_STATUS_REG) # $t1, 0xa460 +/* 018A00 70017E00 8D2A0010 */ lw $t2, %lo(PI_STATUS_REG)($t1) +/* 018A04 70017E04 AFAA0038 */ sw $t2, 0x38($sp) +/* 018A08 70017E08 8FAB0038 */ lw $t3, 0x38($sp) +/* 018A0C 70017E0C 316C0002 */ andi $t4, $t3, 2 +/* 018A10 70017E10 11800008 */ beqz $t4, .L70017E34 +/* 018A14 70017E14 00000000 */ nop +.L70017E18: +/* 018A18 70017E18 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018A1C 70017E1C 8DAE0010 */ lw $t6, %lo(PI_STATUS_REG)($t5) +/* 018A20 70017E20 AFAE0038 */ sw $t6, 0x38($sp) +/* 018A24 70017E24 8FAF0038 */ lw $t7, 0x38($sp) +/* 018A28 70017E28 31F90002 */ andi $t9, $t7, 2 +/* 018A2C 70017E2C 1720FFFA */ bnez $t9, .L70017E18 +/* 018A30 70017E30 00000000 */ nop +.L70017E34: +/* 018A34 70017E34 8FB80030 */ lw $t8, 0x30($sp) +/* 018A38 70017E38 3C010100 */ lui $at, 0x100 +/* 018A3C 70017E3C 3C0AA500 */ lui $t2, %hi(ASIC_BM_STATUS) # $t2, 0xa500 +/* 018A40 70017E40 8F080010 */ lw $t0, 0x10($t8) +/* 018A44 70017E44 01014825 */ or $t1, $t0, $at +/* 018A48 70017E48 AD490510 */ sw $t1, %lo(ASIC_BM_STATUS)($t2) +.L70017E4C: +/* 018A4C 70017E4C 8FAC002C */ lw $t4, 0x2c($sp) +/* 018A50 70017E50 240B004B */ li $t3, 75 +/* 018A54 70017E54 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018A58 70017E58 AD8B0000 */ sw $t3, ($t4) +/* 018A5C 70017E5C 10000169 */ b .L70018404 +/* 018A60 70017E60 24020001 */ li $v0, 1 +.L70017E64: +/* 018A64 70017E64 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018A68 70017E68 8DAE0010 */ lw $t6, %lo(PI_STATUS_REG)($t5) +/* 018A6C 70017E6C AFAE0038 */ sw $t6, 0x38($sp) +/* 018A70 70017E70 8FAF0038 */ lw $t7, 0x38($sp) +/* 018A74 70017E74 31F90002 */ andi $t9, $t7, 2 +/* 018A78 70017E78 13200008 */ beqz $t9, .L70017E9C +/* 018A7C 70017E7C 00000000 */ nop +.L70017E80: +/* 018A80 70017E80 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 018A84 70017E84 8F080010 */ lw $t0, %lo(PI_STATUS_REG)($t8) +/* 018A88 70017E88 AFA80038 */ sw $t0, 0x38($sp) +/* 018A8C 70017E8C 8FA90038 */ lw $t1, 0x38($sp) +/* 018A90 70017E90 312A0002 */ andi $t2, $t1, 2 +/* 018A94 70017E94 1540FFFA */ bnez $t2, .L70017E80 +/* 018A98 70017E98 00000000 */ nop +.L70017E9C: +/* 018A9C 70017E9C 3C0BA500 */ lui $t3, %hi(ASIC_STATUS) # $t3, 0xa500 +/* 018AA0 70017EA0 8D6C0508 */ lw $t4, %lo(ASIC_STATUS)($t3) +/* 018AA4 70017EA4 3C010200 */ lui $at, 0x200 +/* 018AA8 70017EA8 AFAC003C */ sw $t4, 0x3c($sp) +/* 018AAC 70017EAC 8FAD003C */ lw $t5, 0x3c($sp) +/* 018AB0 70017EB0 01A17024 */ and $t6, $t5, $at +/* 018AB4 70017EB4 11C00019 */ beqz $t6, .L70017F1C +/* 018AB8 70017EB8 00000000 */ nop +/* 018ABC 70017EBC 3C0FA460 */ lui $t7, %hi(PI_STATUS_REG) # $t7, 0xa460 +/* 018AC0 70017EC0 8DF90010 */ lw $t9, %lo(PI_STATUS_REG)($t7) +/* 018AC4 70017EC4 AFB90038 */ sw $t9, 0x38($sp) +/* 018AC8 70017EC8 8FB80038 */ lw $t8, 0x38($sp) +/* 018ACC 70017ECC 33080002 */ andi $t0, $t8, 2 +/* 018AD0 70017ED0 11000008 */ beqz $t0, .L70017EF4 +/* 018AD4 70017ED4 00000000 */ nop +.L70017ED8: +/* 018AD8 70017ED8 3C09A460 */ lui $t1, %hi(PI_STATUS_REG) # $t1, 0xa460 +/* 018ADC 70017EDC 8D2A0010 */ lw $t2, %lo(PI_STATUS_REG)($t1) +/* 018AE0 70017EE0 AFAA0038 */ sw $t2, 0x38($sp) +/* 018AE4 70017EE4 8FAB0038 */ lw $t3, 0x38($sp) +/* 018AE8 70017EE8 316C0002 */ andi $t4, $t3, 2 +/* 018AEC 70017EEC 1580FFFA */ bnez $t4, .L70017ED8 +/* 018AF0 70017EF0 00000000 */ nop +.L70017EF4: +/* 018AF4 70017EF4 8FAD0030 */ lw $t5, 0x30($sp) +/* 018AF8 70017EF8 3C010100 */ lui $at, 0x100 +/* 018AFC 70017EFC 3C19A500 */ lui $t9, %hi(ASIC_BM_STATUS) # $t9, 0xa500 +/* 018B00 70017F00 8DAE0010 */ lw $t6, 0x10($t5) +/* 018B04 70017F04 00001025 */ move $v0, $zero +/* 018B08 70017F08 01C17825 */ or $t7, $t6, $at +/* 018B0C 70017F0C AF2F0510 */ sw $t7, %lo(ASIC_BM_STATUS)($t9) +/* 018B10 70017F10 8FB8002C */ lw $t8, 0x2c($sp) +/* 018B14 70017F14 1000013B */ b .L70018404 +/* 018B18 70017F18 AF000000 */ sw $zero, ($t8) +.L70017F1C: +/* 018B1C 70017F1C 8FA8003C */ lw $t0, 0x3c($sp) +/* 018B20 70017F20 3C010800 */ lui $at, 0x800 +/* 018B24 70017F24 01014824 */ and $t1, $t0, $at +/* 018B28 70017F28 11200011 */ beqz $t1, .L70017F70 +/* 018B2C 70017F2C 00000000 */ nop +/* 018B30 70017F30 8FAB002C */ lw $t3, 0x2c($sp) +/* 018B34 70017F34 240A0003 */ li $t2, 3 +/* 018B38 70017F38 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018B3C 70017F3C AD6A0000 */ sw $t2, ($t3) +/* 018B40 70017F40 240C0002 */ li $t4, 2 +/* 018B44 70017F44 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018B48 70017F48 ADAC0010 */ sw $t4, %lo(PI_STATUS_REG)($t5) +/* 018B4C 70017F4C 3C0E8002 */ lui $t6, %hi(__OSGlobalIntMask) +/* 018B50 70017F50 8DCE698C */ lw $t6, %lo(__OSGlobalIntMask)($t6) +/* 018B54 70017F54 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018B58 70017F58 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018B5C 70017F5C 01C17825 */ or $t7, $t6, $at +/* 018B60 70017F60 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018B64 70017F64 AC2F698C */ sw $t7, %lo(__OSGlobalIntMask)($at) +/* 018B68 70017F68 10000126 */ b .L70018404 +/* 018B6C 70017F6C 24020001 */ li $v0, 1 +.L70017F70: +/* 018B70 70017F70 8FB90030 */ lw $t9, 0x30($sp) +/* 018B74 70017F74 24010001 */ li $at, 1 +/* 018B78 70017F78 8F380000 */ lw $t8, ($t9) +/* 018B7C 70017F7C 1701003B */ bne $t8, $at, .L7001806C +/* 018B80 70017F80 00000000 */ nop +/* 018B84 70017F84 8FA8003C */ lw $t0, 0x3c($sp) +/* 018B88 70017F88 3C014000 */ lui $at, 0x4000 +/* 018B8C 70017F8C 01014824 */ and $t1, $t0, $at +/* 018B90 70017F90 15200021 */ bnez $t1, .L70018018 +/* 018B94 70017F94 00000000 */ nop +/* 018B98 70017F98 972C0004 */ lhu $t4, 4($t9) +/* 018B9C 70017F9C 8F2A0008 */ lw $t2, 8($t9) +/* 018BA0 70017FA0 000C6880 */ sll $t5, $t4, 2 +/* 018BA4 70017FA4 01AC6821 */ addu $t5, $t5, $t4 +/* 018BA8 70017FA8 000D6880 */ sll $t5, $t5, 2 +/* 018BAC 70017FAC 01AC6821 */ addu $t5, $t5, $t4 +/* 018BB0 70017FB0 000D6880 */ sll $t5, $t5, 2 +/* 018BB4 70017FB4 01AC6821 */ addu $t5, $t5, $t4 +/* 018BB8 70017FB8 254B0001 */ addiu $t3, $t2, 1 +/* 018BBC 70017FBC 116D0007 */ beq $t3, $t5, .L70017FDC +/* 018BC0 70017FC0 00000000 */ nop +/* 018BC4 70017FC4 8FAF002C */ lw $t7, 0x2c($sp) +/* 018BC8 70017FC8 240E0006 */ li $t6, 6 +/* 018BCC 70017FCC 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018BD0 70017FD0 ADEE0000 */ sw $t6, ($t7) +/* 018BD4 70017FD4 1000010B */ b .L70018404 +/* 018BD8 70017FD8 24020001 */ li $v0, 1 +.L70017FDC: +/* 018BDC 70017FDC 24180002 */ li $t8, 2 +/* 018BE0 70017FE0 3C08A460 */ lui $t0, %hi(PI_STATUS_REG) # $t0, 0xa460 +/* 018BE4 70017FE4 AD180010 */ sw $t8, %lo(PI_STATUS_REG)($t0) +/* 018BE8 70017FE8 3C098002 */ lui $t1, %hi(__OSGlobalIntMask) +/* 018BEC 70017FEC 8D29698C */ lw $t1, %lo(__OSGlobalIntMask)($t1) +/* 018BF0 70017FF0 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018BF4 70017FF4 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018BF8 70017FF8 01215025 */ or $t2, $t1, $at +/* 018BFC 70017FFC 8FB9002C */ lw $t9, 0x2c($sp) +/* 018C00 70018000 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018C04 70018004 AC2A698C */ sw $t2, %lo(__OSGlobalIntMask)($at) +/* 018C08 70018008 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018C0C 7001800C AF200000 */ sw $zero, ($t9) +/* 018C10 70018010 100000FC */ b .L70018404 +/* 018C14 70018014 24020001 */ li $v0, 1 +.L70018018: +/* 018C18 70018018 8FAC002C */ lw $t4, 0x2c($sp) +/* 018C1C 7001801C 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018C20 70018020 3C060500 */ lui $a2, (0x05000400 >> 16) # lui $a2, 0x500 +/* 018C24 70018024 8D8B0004 */ lw $t3, 4($t4) +/* 018C28 70018028 8D8D000C */ lw $t5, 0xc($t4) +/* 018C2C 7001802C 34C60400 */ ori $a2, (0x05000400 & 0xFFFF) # ori $a2, $a2, 0x400 +/* 018C30 70018030 24050001 */ li $a1, 1 +/* 018C34 70018034 016D7021 */ addu $t6, $t3, $t5 +/* 018C38 70018038 AD8E0004 */ sw $t6, 4($t4) +/* 018C3C 7001803C 8FAF0030 */ lw $t7, 0x30($sp) +/* 018C40 70018040 8DF80008 */ lw $t8, 8($t7) +/* 018C44 70018044 27080001 */ addiu $t0, $t8, 1 +/* 018C48 70018048 ADE80008 */ sw $t0, 8($t7) +/* 018C4C 7001804C 8FA9002C */ lw $t1, 0x2c($sp) +/* 018C50 70018050 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018C54 70018054 8D2A000C */ lw $t2, 0xc($t1) +/* 018C58 70018058 8D270004 */ lw $a3, 4($t1) +/* 018C5C 7001805C 0C00794C */ jal osEPiRawStartDma +/* 018C60 70018060 AFAA0010 */ sw $t2, 0x10($sp) +/* 018C64 70018064 100000E7 */ b .L70018404 +/* 018C68 70018068 24020001 */ li $v0, 1 +.L7001806C: +/* 018C6C 7001806C 8FB90030 */ lw $t9, 0x30($sp) +/* 018C70 70018070 8F2B0000 */ lw $t3, ($t9) +/* 018C74 70018074 156000DE */ bnez $t3, .L700183F0 +/* 018C78 70018078 00000000 */ nop +/* 018C7C 7001807C 972D0004 */ lhu $t5, 4($t9) +/* 018C80 70018080 24010003 */ li $at, 3 +/* 018C84 70018084 15A10017 */ bne $t5, $at, .L700180E4 +/* 018C88 70018088 00000000 */ nop +/* 018C8C 7001808C 8FAC002C */ lw $t4, 0x2c($sp) +/* 018C90 70018090 8F2E0008 */ lw $t6, 8($t9) +/* 018C94 70018094 8D980010 */ lw $t8, 0x10($t4) +/* 018C98 70018098 27080011 */ addiu $t0, $t8, 0x11 +/* 018C9C 7001809C 010E082A */ slt $at, $t0, $t6 +/* 018CA0 700180A0 10200005 */ beqz $at, .L700180B8 +/* 018CA4 700180A4 00000000 */ nop +/* 018CA8 700180A8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018CAC 700180AC AD800000 */ sw $zero, ($t4) +/* 018CB0 700180B0 100000D4 */ b .L70018404 +/* 018CB4 700180B4 24020001 */ li $v0, 1 +.L700180B8: +/* 018CB8 700180B8 8FAF003C */ lw $t7, 0x3c($sp) +/* 018CBC 700180BC 3C014000 */ lui $at, 0x4000 +/* 018CC0 700180C0 01E14824 */ and $t1, $t7, $at +/* 018CC4 700180C4 1520000C */ bnez $t1, .L700180F8 +/* 018CC8 700180C8 00000000 */ nop +/* 018CCC 700180CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 018CD0 700180D0 240A0011 */ li $t2, 17 +/* 018CD4 700180D4 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018CD8 700180D8 AD6A0000 */ sw $t2, ($t3) +/* 018CDC 700180DC 100000C9 */ b .L70018404 +/* 018CE0 700180E0 24020001 */ li $v0, 1 +.L700180E4: +/* 018CE4 700180E4 8FAD002C */ lw $t5, 0x2c($sp) +/* 018CE8 700180E8 8DB90004 */ lw $t9, 4($t5) +/* 018CEC 700180EC 8DB8000C */ lw $t8, 0xc($t5) +/* 018CF0 700180F0 03387021 */ addu $t6, $t9, $t8 +/* 018CF4 700180F4 ADAE0004 */ sw $t6, 4($t5) +.L700180F8: +/* 018CF8 700180F8 3C08A500 */ lui $t0, %hi(ASIC_BM_STATUS) # $t0, 0xa500 +/* 018CFC 700180FC 8D0C0510 */ lw $t4, %lo(ASIC_BM_STATUS)($t0) +/* 018D00 70018100 3C010020 */ lui $at, 0x20 +/* 018D04 70018104 AFAC0034 */ sw $t4, 0x34($sp) +/* 018D08 70018108 8FAF0034 */ lw $t7, 0x34($sp) +/* 018D0C 7001810C 01E14824 */ and $t1, $t7, $at +/* 018D10 70018110 11200004 */ beqz $t1, .L70018124 +/* 018D14 70018114 3C010040 */ lui $at, 0x40 +/* 018D18 70018118 01E15024 */ and $t2, $t7, $at +/* 018D1C 7001811C 15400006 */ bnez $t2, .L70018138 +/* 018D20 70018120 00000000 */ nop +.L70018124: +/* 018D24 70018124 8FAB0034 */ lw $t3, 0x34($sp) +/* 018D28 70018128 3C010200 */ lui $at, 0x200 +/* 018D2C 7001812C 0161C824 */ and $t9, $t3, $at +/* 018D30 70018130 13200022 */ beqz $t9, .L700181BC +/* 018D34 70018134 00000000 */ nop +.L70018138: +/* 018D38 70018138 8FB8002C */ lw $t8, 0x2c($sp) +/* 018D3C 7001813C 8F0E0010 */ lw $t6, 0x10($t8) +/* 018D40 70018140 2DC10004 */ sltiu $at, $t6, 4 +/* 018D44 70018144 14200010 */ bnez $at, .L70018188 +/* 018D48 70018148 00000000 */ nop +/* 018D4C 7001814C 8FAD0030 */ lw $t5, 0x30($sp) +/* 018D50 70018150 24010003 */ li $at, 3 +/* 018D54 70018154 95A80004 */ lhu $t0, 4($t5) +/* 018D58 70018158 15010005 */ bne $t0, $at, .L70018170 +/* 018D5C 7001815C 00000000 */ nop +/* 018D60 70018160 8DAC0008 */ lw $t4, 8($t5) +/* 018D64 70018164 29810053 */ slti $at, $t4, 0x53 +/* 018D68 70018168 14200010 */ bnez $at, .L700181AC +/* 018D6C 7001816C 00000000 */ nop +.L70018170: +/* 018D70 70018170 8FAF002C */ lw $t7, 0x2c($sp) +/* 018D74 70018174 24090011 */ li $t1, 17 +/* 018D78 70018178 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018D7C 7001817C ADE90000 */ sw $t1, ($t7) +/* 018D80 70018180 100000A0 */ b .L70018404 +/* 018D84 70018184 24020001 */ li $v0, 1 +.L70018188: +/* 018D88 70018188 8FAA002C */ lw $t2, 0x2c($sp) +/* 018D8C 7001818C 8FB90030 */ lw $t9, 0x30($sp) +/* 018D90 70018190 8D4B0010 */ lw $t3, 0x10($t2) +/* 018D94 70018194 AFAB0028 */ sw $t3, 0x28($sp) +/* 018D98 70018198 8F380008 */ lw $t8, 8($t9) +/* 018D9C 7001819C 000B4080 */ sll $t0, $t3, 2 +/* 018DA0 700181A0 01486821 */ addu $t5, $t2, $t0 +/* 018DA4 700181A4 270E0001 */ addiu $t6, $t8, 1 +/* 018DA8 700181A8 ADAE0014 */ sw $t6, 0x14($t5) +.L700181AC: +/* 018DAC 700181AC 8FAC002C */ lw $t4, 0x2c($sp) +/* 018DB0 700181B0 8D890010 */ lw $t1, 0x10($t4) +/* 018DB4 700181B4 252F0001 */ addiu $t7, $t1, 1 +/* 018DB8 700181B8 AD8F0010 */ sw $t7, 0x10($t4) +.L700181BC: +/* 018DBC 700181BC 8FB9003C */ lw $t9, 0x3c($sp) +/* 018DC0 700181C0 3C011000 */ lui $at, 0x1000 +/* 018DC4 700181C4 0321C024 */ and $t8, $t9, $at +/* 018DC8 700181C8 13000035 */ beqz $t8, .L700182A0 +/* 018DCC 700181CC 00000000 */ nop +/* 018DD0 700181D0 8FAB0030 */ lw $t3, 0x30($sp) +/* 018DD4 700181D4 24010057 */ li $at, 87 +/* 018DD8 700181D8 8D6A0008 */ lw $t2, 8($t3) +/* 018DDC 700181DC 11410005 */ beq $t2, $at, .L700181F4 +/* 018DE0 700181E0 00000000 */ nop +/* 018DE4 700181E4 8FAE002C */ lw $t6, 0x2c($sp) +/* 018DE8 700181E8 24080006 */ li $t0, 6 +/* 018DEC 700181EC 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018DF0 700181F0 ADC80000 */ sw $t0, ($t6) +.L700181F4: +/* 018DF4 700181F4 8FAD0030 */ lw $t5, 0x30($sp) +/* 018DF8 700181F8 24010002 */ li $at, 2 +/* 018DFC 700181FC 95A90004 */ lhu $t1, 4($t5) +/* 018E00 70018200 1521000F */ bne $t1, $at, .L70018240 +/* 018E04 70018204 00000000 */ nop +/* 018E08 70018208 95AF0006 */ lhu $t7, 6($t5) +/* 018E0C 7001820C 15E0000C */ bnez $t7, .L70018240 +/* 018E10 70018210 00000000 */ nop +/* 018E14 70018214 240C0001 */ li $t4, 1 +/* 018E18 70018218 A5AC0006 */ sh $t4, 6($t5) +/* 018E1C 7001821C 8FB80030 */ lw $t8, 0x30($sp) +/* 018E20 70018220 2419FFFF */ li $t9, -1 +/* 018E24 70018224 AF190008 */ sw $t9, 8($t8) +/* 018E28 70018228 8FAB0030 */ lw $t3, 0x30($sp) +/* 018E2C 7001822C 8D6A0040 */ lw $t2, 0x40($t3) +/* 018E30 70018230 8D680048 */ lw $t0, 0x48($t3) +/* 018E34 70018234 01487023 */ subu $t6, $t2, $t0 +/* 018E38 70018238 1000000B */ b .L70018268 +/* 018E3C 7001823C AD6E0040 */ sw $t6, 0x40($t3) +.L70018240: +/* 018E40 70018240 24090002 */ li $t1, 2 +/* 018E44 70018244 3C0FA460 */ lui $t7, %hi(PI_STATUS_REG) # $t7, 0xa460 +/* 018E48 70018248 ADE90010 */ sw $t1, %lo(PI_STATUS_REG)($t7) +/* 018E4C 7001824C 3C0C8002 */ lui $t4, %hi(__OSGlobalIntMask) +/* 018E50 70018250 8D8C698C */ lw $t4, %lo(__OSGlobalIntMask)($t4) +/* 018E54 70018254 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018E58 70018258 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018E5C 7001825C 01816825 */ or $t5, $t4, $at +/* 018E60 70018260 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018E64 70018264 AC2D698C */ sw $t5, %lo(__OSGlobalIntMask)($at) +.L70018268: +/* 018E68 70018268 8FB9002C */ lw $t9, 0x2c($sp) +/* 018E6C 7001826C 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018E70 70018270 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018E74 70018274 8F38000C */ lw $t8, 0xc($t9) +/* 018E78 70018278 8F270008 */ lw $a3, 8($t9) +/* 018E7C 7001827C 00002825 */ move $a1, $zero +/* 018E80 70018280 00185080 */ sll $t2, $t8, 2 +/* 018E84 70018284 AFAA0010 */ sw $t2, 0x10($sp) +/* 018E88 70018288 0C00794C */ jal osEPiRawStartDma +/* 018E8C 7001828C 3C060500 */ lui $a2, 0x500 +/* 018E90 70018290 8FA8002C */ lw $t0, 0x2c($sp) +/* 018E94 70018294 24020001 */ li $v0, 1 +/* 018E98 70018298 1000005A */ b .L70018404 +/* 018E9C 7001829C AD000000 */ sw $zero, ($t0) +.L700182A0: +/* 018EA0 700182A0 8FAE0030 */ lw $t6, 0x30($sp) +/* 018EA4 700182A4 2401FFFF */ li $at, -1 +/* 018EA8 700182A8 8DCB0008 */ lw $t3, 8($t6) +/* 018EAC 700182AC 15610021 */ bne $t3, $at, .L70018334 +/* 018EB0 700182B0 00000000 */ nop +/* 018EB4 700182B4 95C90004 */ lhu $t1, 4($t6) +/* 018EB8 700182B8 24010002 */ li $at, 2 +/* 018EBC 700182BC 1521001D */ bne $t1, $at, .L70018334 +/* 018EC0 700182C0 00000000 */ nop +/* 018EC4 700182C4 95CF0006 */ lhu $t7, 6($t6) +/* 018EC8 700182C8 24010001 */ li $at, 1 +/* 018ECC 700182CC 15E10019 */ bne $t7, $at, .L70018334 +/* 018ED0 700182D0 00000000 */ nop +/* 018ED4 700182D4 25CC0018 */ addiu $t4, $t6, 0x18 +/* 018ED8 700182D8 AFAC0024 */ sw $t4, 0x24($sp) +/* 018EDC 700182DC 8DCD0028 */ lw $t5, 0x28($t6) +/* 018EE0 700182E0 15A00011 */ bnez $t5, .L70018328 +/* 018EE4 700182E4 00000000 */ nop +/* 018EE8 700182E8 8DD90020 */ lw $t9, 0x20($t6) +/* 018EEC 700182EC 8F380000 */ lw $t8, ($t9) +/* 018EF0 700182F0 8F2A0004 */ lw $t2, 4($t9) +/* 018EF4 700182F4 8F2B0008 */ lw $t3, 8($t9) +/* 018EF8 700182F8 8F2F000C */ lw $t7, 0xc($t9) +/* 018EFC 700182FC 030A4025 */ or $t0, $t8, $t2 +/* 018F00 70018300 010B4825 */ or $t1, $t0, $t3 +/* 018F04 70018304 01E96025 */ or $t4, $t7, $t1 +/* 018F08 70018308 11800007 */ beqz $t4, .L70018328 +/* 018F0C 7001830C 00000000 */ nop +/* 018F10 70018310 8FAE002C */ lw $t6, 0x2c($sp) +/* 018F14 70018314 240D0006 */ li $t5, 6 +/* 018F18 70018318 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018F1C 7001831C ADCD0000 */ sw $t5, ($t6) +/* 018F20 70018320 10000038 */ b .L70018404 +/* 018F24 70018324 24020001 */ li $v0, 1 +.L70018328: +/* 018F28 70018328 8FB8002C */ lw $t8, 0x2c($sp) +/* 018F2C 7001832C 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018F30 70018330 AF000000 */ sw $zero, ($t8) +.L70018334: +/* 018F34 70018334 8FAA0030 */ lw $t2, 0x30($sp) +/* 018F38 70018338 3C014000 */ lui $at, 0x4000 +/* 018F3C 7001833C 8D480008 */ lw $t0, 8($t2) +/* 018F40 70018340 250B0001 */ addiu $t3, $t0, 1 +/* 018F44 70018344 AD4B0008 */ sw $t3, 8($t2) +/* 018F48 70018348 8FB9003C */ lw $t9, 0x3c($sp) +/* 018F4C 7001834C 03217824 */ and $t7, $t9, $at +/* 018F50 70018350 11E0001A */ beqz $t7, .L700183BC +/* 018F54 70018354 00000000 */ nop +/* 018F58 70018358 8FA90030 */ lw $t1, 0x30($sp) +/* 018F5C 7001835C 8D2C0008 */ lw $t4, 8($t1) +/* 018F60 70018360 29810055 */ slti $at, $t4, 0x55 +/* 018F64 70018364 14200007 */ bnez $at, .L70018384 +/* 018F68 70018368 00000000 */ nop +/* 018F6C 7001836C 8FAE002C */ lw $t6, 0x2c($sp) +/* 018F70 70018370 240D0006 */ li $t5, 6 +/* 018F74 70018374 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018F78 70018378 ADCD0000 */ sw $t5, ($t6) +/* 018F7C 7001837C 10000021 */ b .L70018404 +/* 018F80 70018380 24020001 */ li $v0, 1 +.L70018384: +/* 018F84 70018384 8FB8002C */ lw $t8, 0x2c($sp) +/* 018F88 70018388 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018F8C 7001838C 3C060500 */ lui $a2, (0x05000400 >> 16) # lui $a2, 0x500 +/* 018F90 70018390 8F08000C */ lw $t0, 0xc($t8) +/* 018F94 70018394 8F070004 */ lw $a3, 4($t8) +/* 018F98 70018398 34C60400 */ ori $a2, (0x05000400 & 0xFFFF) # ori $a2, $a2, 0x400 +/* 018F9C 7001839C 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018FA0 700183A0 00002825 */ move $a1, $zero +/* 018FA4 700183A4 0C00794C */ jal osEPiRawStartDma +/* 018FA8 700183A8 AFA80010 */ sw $t0, 0x10($sp) +/* 018FAC 700183AC 8FAB002C */ lw $t3, 0x2c($sp) +/* 018FB0 700183B0 24020001 */ li $v0, 1 +/* 018FB4 700183B4 10000013 */ b .L70018404 +/* 018FB8 700183B8 AD600000 */ sw $zero, ($t3) +.L700183BC: +/* 018FBC 700183BC 8FAA0030 */ lw $t2, 0x30($sp) +/* 018FC0 700183C0 8D590008 */ lw $t9, 8($t2) +/* 018FC4 700183C4 2B210055 */ slti $at, $t9, 0x55 +/* 018FC8 700183C8 10200007 */ beqz $at, .L700183E8 +/* 018FCC 700183CC 00000000 */ nop +/* 018FD0 700183D0 8FA9002C */ lw $t1, 0x2c($sp) +/* 018FD4 700183D4 240F0006 */ li $t7, 6 +/* 018FD8 700183D8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018FDC 700183DC AD2F0000 */ sw $t7, ($t1) +/* 018FE0 700183E0 10000008 */ b .L70018404 +/* 018FE4 700183E4 24020001 */ li $v0, 1 +.L700183E8: +/* 018FE8 700183E8 10000006 */ b .L70018404 +/* 018FEC 700183EC 24020001 */ li $v0, 1 +.L700183F0: +/* 018FF0 700183F0 8FAD002C */ lw $t5, 0x2c($sp) +/* 018FF4 700183F4 240C004B */ li $t4, 75 +/* 018FF8 700183F8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018FFC 700183FC ADAC0000 */ sw $t4, ($t5) +/* 019000 70018400 24020001 */ li $v0, 1 +.L70018404: +/* 019004 70018404 8FBF001C */ lw $ra, 0x1c($sp) +/* 019008 70018408 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01900C 7001840C 03E00008 */ jr $ra +/* 019010 70018410 00000000 */ nop + +glabel __osLeoInterrupt_sub1 +/* 019014 70018414 3C0E8007 */ lui $t6, %hi(__osDiskHandle) +/* 019018 70018418 8DCE9074 */ lw $t6, %lo(__osDiskHandle)($t6) +/* 01901C 7001841C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019020 70018420 AFBF0014 */ sw $ra, 0x14($sp) +/* 019024 70018424 25CF0014 */ addiu $t7, $t6, 0x14 +/* 019028 70018428 AFAF001C */ sw $t7, 0x1c($sp) +/* 01902C 7001842C 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 019030 70018430 8F190010 */ lw $t9, %lo(PI_STATUS_REG)($t8) +/* 019034 70018434 AFB90018 */ sw $t9, 0x18($sp) +/* 019038 70018438 8FA80018 */ lw $t0, 0x18($sp) +/* 01903C 7001843C 31090002 */ andi $t1, $t0, 2 +/* 019040 70018440 11200008 */ beqz $t1, .L70018464 +/* 019044 70018444 00000000 */ nop +.L70018448: +/* 019048 70018448 3C0AA460 */ lui $t2, %hi(PI_STATUS_REG) # $t2, 0xa460 +/* 01904C 7001844C 8D4B0010 */ lw $t3, %lo(PI_STATUS_REG)($t2) +/* 019050 70018450 AFAB0018 */ sw $t3, 0x18($sp) +/* 019054 70018454 8FAC0018 */ lw $t4, 0x18($sp) +/* 019058 70018458 318D0002 */ andi $t5, $t4, 2 +/* 01905C 7001845C 15A0FFFA */ bnez $t5, .L70018448 +/* 019060 70018460 00000000 */ nop +.L70018464: +/* 019064 70018464 8FAE001C */ lw $t6, 0x1c($sp) +/* 019068 70018468 3C011000 */ lui $at, 0x1000 +/* 01906C 7001846C 3C19A500 */ lui $t9, %hi(ASIC_BM_STATUS) # $t9, 0xa500 +/* 019070 70018470 8DCF0010 */ lw $t7, 0x10($t6) +/* 019074 70018474 3C08A460 */ lui $t0, %hi(PI_STATUS_REG) # $t0, 0xa460 +/* 019078 70018478 01E1C025 */ or $t8, $t7, $at +/* 01907C 7001847C AF380510 */ sw $t8, %lo(ASIC_BM_STATUS)($t9) +/* 019080 70018480 8D090010 */ lw $t1, %lo(PI_STATUS_REG)($t0) +/* 019084 70018484 AFA90018 */ sw $t1, 0x18($sp) +/* 019088 70018488 8FAA0018 */ lw $t2, 0x18($sp) +/* 01908C 7001848C 314B0002 */ andi $t3, $t2, 2 +/* 019090 70018490 11600008 */ beqz $t3, .L700184B4 +/* 019094 70018494 00000000 */ nop +.L70018498: +/* 019098 70018498 3C0CA460 */ lui $t4, %hi(PI_STATUS_REG) # $t4, 0xa460 +/* 01909C 7001849C 8D8D0010 */ lw $t5, %lo(PI_STATUS_REG)($t4) +/* 0190A0 700184A0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0190A4 700184A4 8FAE0018 */ lw $t6, 0x18($sp) +/* 0190A8 700184A8 31CF0002 */ andi $t7, $t6, 2 +/* 0190AC 700184AC 15E0FFFA */ bnez $t7, .L70018498 +/* 0190B0 700184B0 00000000 */ nop +.L700184B4: +/* 0190B4 700184B4 8FB8001C */ lw $t8, 0x1c($sp) +/* 0190B8 700184B8 3C08A500 */ lui $t0, %hi(ASIC_BM_STATUS) # $t0, 0xa500 +/* 0190BC 700184BC 8F190010 */ lw $t9, 0x10($t8) +/* 0190C0 700184C0 0C00613F */ jal __osLeoInterrupt_sub2 +/* 0190C4 700184C4 AD190510 */ sw $t9, %lo(ASIC_BM_STATUS)($t0) +/* 0190C8 700184C8 24090002 */ li $t1, 2 +/* 0190CC 700184CC 3C0AA460 */ lui $t2, %hi(PI_STATUS_REG) # $t2, 0xa460 +/* 0190D0 700184D0 AD490010 */ sw $t1, %lo(PI_STATUS_REG)($t2) +/* 0190D4 700184D4 3C0B8002 */ lui $t3, %hi(__OSGlobalIntMask) +/* 0190D8 700184D8 8D6B698C */ lw $t3, %lo(__OSGlobalIntMask)($t3) +/* 0190DC 700184DC 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 0190E0 700184E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0190E4 700184E4 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 0190E8 700184E8 01616025 */ or $t4, $t3, $at +/* 0190EC 700184EC 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 0190F0 700184F0 AC2C698C */ sw $t4, %lo(__OSGlobalIntMask)($at) +/* 0190F4 700184F4 03E00008 */ jr $ra +/* 0190F8 700184F8 27BD0020 */ addiu $sp, $sp, 0x20 + +glabel __osLeoInterrupt_sub2 +/* 0190FC 700184FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 019100 70018500 3C0E8006 */ lui $t6, %hi(__osEventStateTab) +/* 019104 70018504 25CE6A10 */ addiu $t6, %lo(__osEventStateTab) # addiu $t6, $t6, 0x6a10 +/* 019108 70018508 25CF0040 */ addiu $t7, $t6, 0x40 +/* 01910C 7001850C AFBF001C */ sw $ra, 0x1c($sp) +/* 019110 70018510 AFB00018 */ sw $s0, 0x18($sp) +/* 019114 70018514 AFAF002C */ sw $t7, 0x2c($sp) +/* 019118 70018518 8DD80040 */ lw $t8, 0x40($t6) +/* 01911C 7001851C 1300002D */ beqz $t8, .L700185D4 +/* 019120 70018520 AFB80028 */ sw $t8, 0x28($sp) +/* 019124 70018524 8F190008 */ lw $t9, 8($t8) +/* 019128 70018528 8F080010 */ lw $t0, 0x10($t8) +/* 01912C 7001852C 0328082A */ slt $at, $t9, $t0 +/* 019130 70018530 10200028 */ beqz $at, .L700185D4 +/* 019134 70018534 00000000 */ nop +/* 019138 70018538 8FA90028 */ lw $t1, 0x28($sp) +/* 01913C 7001853C 8FAE002C */ lw $t6, 0x2c($sp) +/* 019140 70018540 8D2A000C */ lw $t2, 0xc($t1) +/* 019144 70018544 8D2B0008 */ lw $t3, 8($t1) +/* 019148 70018548 8D2D0010 */ lw $t5, 0x10($t1) +/* 01914C 7001854C 014B6021 */ addu $t4, $t2, $t3 +/* 019150 70018550 018D001A */ div $zero, $t4, $t5 +/* 019154 70018554 00007810 */ mfhi $t7 +/* 019158 70018558 AFAF0024 */ sw $t7, 0x24($sp) +/* 01915C 7001855C 8D280014 */ lw $t0, 0x14($t1) +/* 019160 70018560 8DD80004 */ lw $t8, 4($t6) +/* 019164 70018564 000FC880 */ sll $t9, $t7, 2 +/* 019168 70018568 01195021 */ addu $t2, $t0, $t9 +/* 01916C 7001856C AD580000 */ sw $t8, ($t2) +/* 019170 70018570 8FAB0028 */ lw $t3, 0x28($sp) +/* 019174 70018574 15A00002 */ bnez $t5, .L70018580 +/* 019178 70018578 00000000 */ nop +/* 01917C 7001857C 0007000D */ break 7 +.L70018580: +/* 019180 70018580 2401FFFF */ li $at, -1 +/* 019184 70018584 15A10004 */ bne $t5, $at, .L70018598 +/* 019188 70018588 3C018000 */ lui $at, 0x8000 +/* 01918C 7001858C 15810002 */ bne $t4, $at, .L70018598 +/* 019190 70018590 00000000 */ nop +/* 019194 70018594 0006000D */ break 6 +.L70018598: +/* 019198 70018598 8D6C0008 */ lw $t4, 8($t3) +/* 01919C 7001859C 258D0001 */ addiu $t5, $t4, 1 +/* 0191A0 700185A0 AD6D0008 */ sw $t5, 8($t3) +/* 0191A4 700185A4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0191A8 700185A8 8DCF0000 */ lw $t7, ($t6) +/* 0191AC 700185AC 8DE90000 */ lw $t1, ($t7) +/* 0191B0 700185B0 11200008 */ beqz $t1, .L700185D4 +/* 0191B4 700185B4 00000000 */ nop +/* 0191B8 700185B8 0C00423D */ jal __osPopThread +/* 0191BC 700185BC 01C02025 */ move $a0, $t6 +/* 0191C0 700185C0 00408025 */ move $s0, $v0 +/* 0191C4 700185C4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 0191C8 700185C8 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 0191CC 700185CC 0C00422B */ jal __osEnqueueThread +/* 0191D0 700185D0 02002825 */ move $a1, $s0 +.L700185D4: +/* 0191D4 700185D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0191D8 700185D8 8FB00018 */ lw $s0, 0x18($sp) +/* 0191DC 700185DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0191E0 700185E0 03E00008 */ jr $ra +/* 0191E4 700185E4 00000000 */ nop + +/* 0191E8 700185E8 00000000 */ nop +/* 0191EC 700185EC 00000000 */ nop diff --git a/src/libultra/libm_vals.s b/src/libultra/libm_vals.s new file mode 100644 index 0000000..ef08bed --- /dev/null +++ b/src/libultra/libm_vals.s @@ -0,0 +1,16 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .rodata +glabel __libm_qnan_f +.word 0x7F810000, 0 +.word 0 + diff --git a/src/libultra/ll.s b/src/libultra/ll.s new file mode 100644 index 0000000..979325c --- /dev/null +++ b/src/libultra/ll.s @@ -0,0 +1,218 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __ull_rshift +/* 00F840 7000EC40 AFA40000 */ sw $a0, ($sp) +/* 00F844 7000EC44 AFA50004 */ sw $a1, 4($sp) +/* 00F848 7000EC48 AFA60008 */ sw $a2, 8($sp) +/* 00F84C 7000EC4C AFA7000C */ sw $a3, 0xc($sp) +/* 00F850 7000EC50 DFAF0008 */ ld $t7, 8($sp) +/* 00F854 7000EC54 DFAE0000 */ ld $t6, ($sp) +/* 00F858 7000EC58 01EE1016 */ dsrlv $v0, $t6, $t7 +/* 00F85C 7000EC5C 0002183C */ dsll32 $v1, $v0, 0 +/* 00F860 7000EC60 0003183F */ dsra32 $v1, $v1, 0 +/* 00F864 7000EC64 03E00008 */ jr $ra +/* 00F868 7000EC68 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_rem +/* 00F86C 7000EC6C AFA40000 */ sw $a0, ($sp) +/* 00F870 7000EC70 AFA50004 */ sw $a1, 4($sp) +/* 00F874 7000EC74 AFA60008 */ sw $a2, 8($sp) +/* 00F878 7000EC78 AFA7000C */ sw $a3, 0xc($sp) +/* 00F87C 7000EC7C DFAF0008 */ ld $t7, 8($sp) +/* 00F880 7000EC80 DFAE0000 */ ld $t6, ($sp) +/* 00F884 7000EC84 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F888 7000EC88 15E00002 */ bnez $t7, .L7000EC94 +/* 00F88C 7000EC8C 00000000 */ nop +/* 00F890 7000EC90 0007000D */ break 7 +.L7000EC94: +/* 00F894 7000EC94 00001010 */ mfhi $v0 +/* 00F898 7000EC98 0002183C */ dsll32 $v1, $v0, 0 +/* 00F89C 7000EC9C 0003183F */ dsra32 $v1, $v1, 0 +/* 00F8A0 7000ECA0 03E00008 */ jr $ra +/* 00F8A4 7000ECA4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_div +/* 00F8A8 7000ECA8 AFA40000 */ sw $a0, ($sp) +/* 00F8AC 7000ECAC AFA50004 */ sw $a1, 4($sp) +/* 00F8B0 7000ECB0 AFA60008 */ sw $a2, 8($sp) +/* 00F8B4 7000ECB4 AFA7000C */ sw $a3, 0xc($sp) +/* 00F8B8 7000ECB8 DFAF0008 */ ld $t7, 8($sp) +/* 00F8BC 7000ECBC DFAE0000 */ ld $t6, ($sp) +/* 00F8C0 7000ECC0 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F8C4 7000ECC4 15E00002 */ bnez $t7, .L7000ECD0 +/* 00F8C8 7000ECC8 00000000 */ nop +/* 00F8CC 7000ECCC 0007000D */ break 7 +.L7000ECD0: +/* 00F8D0 7000ECD0 00001012 */ mflo $v0 +/* 00F8D4 7000ECD4 0002183C */ dsll32 $v1, $v0, 0 +/* 00F8D8 7000ECD8 0003183F */ dsra32 $v1, $v1, 0 +/* 00F8DC 7000ECDC 03E00008 */ jr $ra +/* 00F8E0 7000ECE0 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_lshift +/* 00F8E4 7000ECE4 AFA40000 */ sw $a0, ($sp) +/* 00F8E8 7000ECE8 AFA50004 */ sw $a1, 4($sp) +/* 00F8EC 7000ECEC AFA60008 */ sw $a2, 8($sp) +/* 00F8F0 7000ECF0 AFA7000C */ sw $a3, 0xc($sp) +/* 00F8F4 7000ECF4 DFAF0008 */ ld $t7, 8($sp) +/* 00F8F8 7000ECF8 DFAE0000 */ ld $t6, ($sp) +/* 00F8FC 7000ECFC 01EE1014 */ dsllv $v0, $t6, $t7 +/* 00F900 7000ED00 0002183C */ dsll32 $v1, $v0, 0 +/* 00F904 7000ED04 0003183F */ dsra32 $v1, $v1, 0 +/* 00F908 7000ED08 03E00008 */ jr $ra +/* 00F90C 7000ED0C 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_rem +/* 00F910 7000ED10 AFA40000 */ sw $a0, ($sp) +/* 00F914 7000ED14 AFA50004 */ sw $a1, 4($sp) +/* 00F918 7000ED18 AFA60008 */ sw $a2, 8($sp) +/* 00F91C 7000ED1C AFA7000C */ sw $a3, 0xc($sp) +/* 00F920 7000ED20 DFAF0008 */ ld $t7, 8($sp) +/* 00F924 7000ED24 DFAE0000 */ ld $t6, ($sp) +/* 00F928 7000ED28 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F92C 7000ED2C 15E00002 */ bnez $t7, .L7000ED38 +/* 00F930 7000ED30 00000000 */ nop +/* 00F934 7000ED34 0007000D */ break 7 +.L7000ED38: +/* 00F938 7000ED38 00001010 */ mfhi $v0 +/* 00F93C 7000ED3C 0002183C */ dsll32 $v1, $v0, 0 +/* 00F940 7000ED40 0003183F */ dsra32 $v1, $v1, 0 +/* 00F944 7000ED44 03E00008 */ jr $ra +/* 00F948 7000ED48 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_div +/* 00F94C 7000ED4C AFA40000 */ sw $a0, ($sp) +/* 00F950 7000ED50 AFA50004 */ sw $a1, 4($sp) +/* 00F954 7000ED54 AFA60008 */ sw $a2, 8($sp) +/* 00F958 7000ED58 AFA7000C */ sw $a3, 0xc($sp) +/* 00F95C 7000ED5C DFAF0008 */ ld $t7, 8($sp) +/* 00F960 7000ED60 DFAE0000 */ ld $t6, ($sp) +/* 00F964 7000ED64 01CF001E */ ddiv $zero, $t6, $t7 +/* 00F968 7000ED68 00000000 */ nop +/* 00F96C 7000ED6C 15E00002 */ bnez $t7, .L7000ED78 +/* 00F970 7000ED70 00000000 */ nop +/* 00F974 7000ED74 0007000D */ break 7 +.L7000ED78: +/* 00F978 7000ED78 6401FFFF */ daddiu $at, $zero, -1 +/* 00F97C 7000ED7C 15E10005 */ bne $t7, $at, .L7000ED94 +/* 00F980 7000ED80 64010001 */ daddiu $at, $zero, 1 +/* 00F984 7000ED84 00010FFC */ dsll32 $at, $at, 0x1f +/* 00F988 7000ED88 15C10002 */ bne $t6, $at, .L7000ED94 +/* 00F98C 7000ED8C 00000000 */ nop +/* 00F990 7000ED90 0006000D */ break 6 +.L7000ED94: +/* 00F994 7000ED94 00001012 */ mflo $v0 +/* 00F998 7000ED98 0002183C */ dsll32 $v1, $v0, 0 +/* 00F99C 7000ED9C 0003183F */ dsra32 $v1, $v1, 0 +/* 00F9A0 7000EDA0 03E00008 */ jr $ra +/* 00F9A4 7000EDA4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_mul +/* 00F9A8 7000EDA8 AFA40000 */ sw $a0, ($sp) +/* 00F9AC 7000EDAC AFA50004 */ sw $a1, 4($sp) +/* 00F9B0 7000EDB0 AFA60008 */ sw $a2, 8($sp) +/* 00F9B4 7000EDB4 AFA7000C */ sw $a3, 0xc($sp) +/* 00F9B8 7000EDB8 DFAF0008 */ ld $t7, 8($sp) +/* 00F9BC 7000EDBC DFAE0000 */ ld $t6, ($sp) +/* 00F9C0 7000EDC0 01CF001D */ dmultu $t6, $t7 +/* 00F9C4 7000EDC4 00001012 */ mflo $v0 +/* 00F9C8 7000EDC8 0002183C */ dsll32 $v1, $v0, 0 +/* 00F9CC 7000EDCC 0003183F */ dsra32 $v1, $v1, 0 +/* 00F9D0 7000EDD0 03E00008 */ jr $ra +/* 00F9D4 7000EDD4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_divremi +/* 00F9D8 7000EDD8 87AF0012 */ lh $t7, 0x12($sp) +/* 00F9DC 7000EDDC AFA60008 */ sw $a2, 8($sp) +/* 00F9E0 7000EDE0 AFA7000C */ sw $a3, 0xc($sp) +/* 00F9E4 7000EDE4 DFAE0008 */ ld $t6, 8($sp) +/* 00F9E8 7000EDE8 01E0C025 */ move $t8, $t7 +/* 00F9EC 7000EDEC 0300C825 */ move $t9, $t8 +/* 00F9F0 7000EDF0 01D9001F */ ddivu $zero, $t6, $t9 +/* 00F9F4 7000EDF4 17200002 */ bnez $t9, .L7000EE00 +/* 00F9F8 7000EDF8 00000000 */ nop +/* 00F9FC 7000EDFC 0007000D */ break 7 +.L7000EE00: +/* 00FA00 7000EE00 00004012 */ mflo $t0 +/* 00FA04 7000EE04 FC880000 */ sd $t0, ($a0) +/* 00FA08 7000EE08 87AA0012 */ lh $t2, 0x12($sp) +/* 00FA0C 7000EE0C DFA90008 */ ld $t1, 8($sp) +/* 00FA10 7000EE10 01405825 */ move $t3, $t2 +/* 00FA14 7000EE14 01606025 */ move $t4, $t3 +/* 00FA18 7000EE18 012C001F */ ddivu $zero, $t1, $t4 +/* 00FA1C 7000EE1C 15800002 */ bnez $t4, .L7000EE28 +/* 00FA20 7000EE20 00000000 */ nop +/* 00FA24 7000EE24 0007000D */ break 7 +.L7000EE28: +/* 00FA28 7000EE28 00006810 */ mfhi $t5 +/* 00FA2C 7000EE2C FCAD0000 */ sd $t5, ($a1) +/* 00FA30 7000EE30 03E00008 */ jr $ra +/* 00FA34 7000EE34 00000000 */ nop + +glabel __ll_mod +/* 00FA38 7000EE38 27BDFFF8 */ addiu $sp, $sp, -8 +/* 00FA3C 7000EE3C AFA40008 */ sw $a0, 8($sp) +/* 00FA40 7000EE40 AFA5000C */ sw $a1, 0xc($sp) +/* 00FA44 7000EE44 AFA60010 */ sw $a2, 0x10($sp) +/* 00FA48 7000EE48 AFA70014 */ sw $a3, 0x14($sp) +/* 00FA4C 7000EE4C DFAF0010 */ ld $t7, 0x10($sp) +/* 00FA50 7000EE50 DFAE0008 */ ld $t6, 8($sp) +/* 00FA54 7000EE54 01CF001E */ ddiv $zero, $t6, $t7 +/* 00FA58 7000EE58 00000000 */ nop +/* 00FA5C 7000EE5C 15E00002 */ bnez $t7, .L7000EE68 +/* 00FA60 7000EE60 00000000 */ nop +/* 00FA64 7000EE64 0007000D */ break 7 +.L7000EE68: +/* 00FA68 7000EE68 6401FFFF */ daddiu $at, $zero, -1 +/* 00FA6C 7000EE6C 15E10005 */ bne $t7, $at, .L7000EE84 +/* 00FA70 7000EE70 64010001 */ daddiu $at, $zero, 1 +/* 00FA74 7000EE74 00010FFC */ dsll32 $at, $at, 0x1f +/* 00FA78 7000EE78 15C10002 */ bne $t6, $at, .L7000EE84 +/* 00FA7C 7000EE7C 00000000 */ nop +/* 00FA80 7000EE80 0006000D */ break 6 +.L7000EE84: +/* 00FA84 7000EE84 0000C010 */ mfhi $t8 +/* 00FA88 7000EE88 FFB80000 */ sd $t8, ($sp) +/* 00FA8C 7000EE8C 07010003 */ bgez $t8, .L7000EE9C +/* 00FA90 7000EE90 00000000 */ nop +/* 00FA94 7000EE94 1DE00007 */ bgtz $t7, .L7000EEB4 +/* 00FA98 7000EE98 00000000 */ nop +.L7000EE9C: +/* 00FA9C 7000EE9C DFB90000 */ ld $t9, ($sp) +/* 00FAA0 7000EEA0 1B200008 */ blez $t9, .L7000EEC4 +/* 00FAA4 7000EEA4 00000000 */ nop +/* 00FAA8 7000EEA8 DFA80010 */ ld $t0, 0x10($sp) +/* 00FAAC 7000EEAC 05010005 */ bgez $t0, .L7000EEC4 +/* 00FAB0 7000EEB0 00000000 */ nop +.L7000EEB4: +/* 00FAB4 7000EEB4 DFA90000 */ ld $t1, ($sp) +/* 00FAB8 7000EEB8 DFAA0010 */ ld $t2, 0x10($sp) +/* 00FABC 7000EEBC 012A582D */ daddu $t3, $t1, $t2 +/* 00FAC0 7000EEC0 FFAB0000 */ sd $t3, ($sp) +.L7000EEC4: +/* 00FAC4 7000EEC4 8FA20000 */ lw $v0, ($sp) +/* 00FAC8 7000EEC8 8FA30004 */ lw $v1, 4($sp) +/* 00FACC 7000EECC 03E00008 */ jr $ra +/* 00FAD0 7000EED0 27BD0008 */ addiu $sp, $sp, 8 + +glabel __ll_rshift +/* 00FAD4 7000EED4 AFA40000 */ sw $a0, ($sp) +/* 00FAD8 7000EED8 AFA50004 */ sw $a1, 4($sp) +/* 00FADC 7000EEDC AFA60008 */ sw $a2, 8($sp) +/* 00FAE0 7000EEE0 AFA7000C */ sw $a3, 0xc($sp) +/* 00FAE4 7000EEE4 DFAF0008 */ ld $t7, 8($sp) +/* 00FAE8 7000EEE8 DFAE0000 */ ld $t6, ($sp) +/* 00FAEC 7000EEEC 01EE1017 */ dsrav $v0, $t6, $t7 +/* 00FAF0 7000EEF0 0002183C */ dsll32 $v1, $v0, 0 +/* 00FAF4 7000EEF4 0003183F */ dsra32 $v1, $v1, 0 +/* 00FAF8 7000EEF8 03E00008 */ jr $ra +/* 00FAFC 7000EEFC 0002103F */ dsra32 $v0, $v0, 0 + + diff --git a/src/libultra/llcvt.s b/src/libultra/llcvt.s new file mode 100644 index 0000000..71f6b9d --- /dev/null +++ b/src/libultra/llcvt.s @@ -0,0 +1,172 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __d_to_ll +/* 018510 70017910 46206109 */ trunc.l.d $f4, $f12 +/* 018514 70017914 44222000 */ dmfc1 $v0, $f4 +/* 018518 70017918 00000000 */ nop +/* 01851C 7001791C 0002183C */ dsll32 $v1, $v0, 0 +/* 018520 70017920 0003183F */ dsra32 $v1, $v1, 0 +/* 018524 70017924 03E00008 */ jr $ra +/* 018528 70017928 0002103F */ dsra32 $v0, $v0, 0 + +glabel __f_to_ll +/* 01852C 7001792C 46006109 */ trunc.l.s $f4, $f12 +/* 018530 70017930 44222000 */ dmfc1 $v0, $f4 +/* 018534 70017934 00000000 */ nop +/* 018538 70017938 0002183C */ dsll32 $v1, $v0, 0 +/* 01853C 7001793C 0003183F */ dsra32 $v1, $v1, 0 +/* 018540 70017940 03E00008 */ jr $ra +/* 018544 70017944 0002103F */ dsra32 $v0, $v0, 0 + +glabel __d_to_ull +/* 018548 70017948 444EF800 */ cfc1 $t6, $31 +/* 01854C 7001794C 24020001 */ li $v0, 1 +/* 018550 70017950 44C2F800 */ ctc1 $v0, $31 +/* 018554 70017954 00000000 */ nop +/* 018558 70017958 46206125 */ cvt.l.d $f4, $f12 +/* 01855C 7001795C 4442F800 */ cfc1 $v0, $31 +/* 018560 70017960 00000000 */ nop +/* 018564 70017964 30410004 */ andi $at, $v0, 4 +/* 018568 70017968 30420078 */ andi $v0, $v0, 0x78 +/* 01856C 7001796C 10400015 */ beqz $v0, .L700179C4 +/* 018570 70017970 3C0143E0 */ li $at, 0x43E00000 # 448.000000 +/* 018574 70017974 44812800 */ mtc1 $at, $f5 +/* 018578 70017978 44802000 */ mtc1 $zero, $f4 +/* 01857C 7001797C 24020001 */ li $v0, 1 +/* 018580 70017980 46246101 */ sub.d $f4, $f12, $f4 +/* 018584 70017984 44C2F800 */ ctc1 $v0, $31 +/* 018588 70017988 00000000 */ nop +/* 01858C 7001798C 46202125 */ cvt.l.d $f4, $f4 +/* 018590 70017990 4442F800 */ cfc1 $v0, $31 +/* 018594 70017994 00000000 */ nop +/* 018598 70017998 30410004 */ andi $at, $v0, 4 +/* 01859C 7001799C 30420078 */ andi $v0, $v0, 0x78 +/* 0185A0 700179A0 14400006 */ bnez $v0, .L700179BC +/* 0185A4 700179A4 00000000 */ nop +/* 0185A8 700179A8 3C0F8003 */ lui $t7, %hi(D_80029820) +/* 0185AC 700179AC DDEF9820 */ ld $t7, %lo(D_80029820)($t7) +/* 0185B0 700179B0 44222000 */ dmfc1 $v0, $f4 +/* 0185B4 700179B4 10000007 */ b .L700179D4 +/* 0185B8 700179B8 004F1025 */ or $v0, $v0, $t7 +.L700179BC: +/* 0185BC 700179BC 10000005 */ b .L700179D4 +/* 0185C0 700179C0 2402FFFF */ li $v0, -1 +.L700179C4: +/* 0185C4 700179C4 44222000 */ dmfc1 $v0, $f4 +/* 0185C8 700179C8 00000000 */ nop +/* 0185CC 700179CC 0440FFFB */ bltz $v0, .L700179BC +/* 0185D0 700179D0 00000000 */ nop +.L700179D4: +/* 0185D4 700179D4 44CEF800 */ ctc1 $t6, $31 +/* 0185D8 700179D8 0002183C */ dsll32 $v1, $v0, 0 +/* 0185DC 700179DC 0003183F */ dsra32 $v1, $v1, 0 +/* 0185E0 700179E0 03E00008 */ jr $ra +/* 0185E4 700179E4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __f_to_ull +/* 0185E8 700179E8 444EF800 */ cfc1 $t6, $31 +/* 0185EC 700179EC 24020001 */ li $v0, 1 +/* 0185F0 700179F0 44C2F800 */ ctc1 $v0, $31 +/* 0185F4 700179F4 00000000 */ nop +/* 0185F8 700179F8 46006125 */ cvt.l.s $f4, $f12 +/* 0185FC 700179FC 4442F800 */ cfc1 $v0, $31 +/* 018600 70017A00 00000000 */ nop +/* 018604 70017A04 30410004 */ andi $at, $v0, 4 +/* 018608 70017A08 30420078 */ andi $v0, $v0, 0x78 +/* 01860C 70017A0C 10400014 */ beqz $v0, .L70017A60 +/* 018610 70017A10 3C015F00 */ li $at, 0x5F000000 # 9223372036854775808.000000 +/* 018614 70017A14 44812000 */ mtc1 $at, $f4 +/* 018618 70017A18 24020001 */ li $v0, 1 +/* 01861C 70017A1C 46046101 */ sub.s $f4, $f12, $f4 +/* 018620 70017A20 44C2F800 */ ctc1 $v0, $31 +/* 018624 70017A24 00000000 */ nop +/* 018628 70017A28 46002125 */ cvt.l.s $f4, $f4 +/* 01862C 70017A2C 4442F800 */ cfc1 $v0, $31 +/* 018630 70017A30 00000000 */ nop +/* 018634 70017A34 30410004 */ andi $at, $v0, 4 +/* 018638 70017A38 30420078 */ andi $v0, $v0, 0x78 +/* 01863C 70017A3C 14400006 */ bnez $v0, .L70017A58 +/* 018640 70017A40 00000000 */ nop +/* 018644 70017A44 3C0F8003 */ lui $t7, %hi(D_80029828) +/* 018648 70017A48 DDEF9828 */ ld $t7, %lo(D_80029828)($t7) +/* 01864C 70017A4C 44222000 */ dmfc1 $v0, $f4 +/* 018650 70017A50 10000007 */ b .L70017A70 +/* 018654 70017A54 004F1025 */ or $v0, $v0, $t7 +.L70017A58: +/* 018658 70017A58 10000005 */ b .L70017A70 +/* 01865C 70017A5C 2402FFFF */ li $v0, -1 +.L70017A60: +/* 018660 70017A60 44222000 */ dmfc1 $v0, $f4 +/* 018664 70017A64 00000000 */ nop +/* 018668 70017A68 0440FFFB */ bltz $v0, .L70017A58 +/* 01866C 70017A6C 00000000 */ nop +.L70017A70: +/* 018670 70017A70 44CEF800 */ ctc1 $t6, $31 +/* 018674 70017A74 0002183C */ dsll32 $v1, $v0, 0 +/* 018678 70017A78 0003183F */ dsra32 $v1, $v1, 0 +/* 01867C 70017A7C 03E00008 */ jr $ra +/* 018680 70017A80 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_to_d +/* 018684 70017A84 AFA40000 */ sw $a0, ($sp) +/* 018688 70017A88 AFA50004 */ sw $a1, 4($sp) +/* 01868C 70017A8C DFAE0000 */ ld $t6, ($sp) +/* 018690 70017A90 44AE2000 */ dmtc1 $t6, $f4 +/* 018694 70017A94 03E00008 */ jr $ra +/* 018698 70017A98 46A02021 */ cvt.d.l $f0, $f4 + +glabel __ll_to_f +/* 01869C 70017A9C AFA40000 */ sw $a0, ($sp) +/* 0186A0 70017AA0 AFA50004 */ sw $a1, 4($sp) +/* 0186A4 70017AA4 DFAE0000 */ ld $t6, ($sp) +/* 0186A8 70017AA8 44AE2000 */ dmtc1 $t6, $f4 +/* 0186AC 70017AAC 03E00008 */ jr $ra +/* 0186B0 70017AB0 46A02020 */ cvt.s.l $f0, $f4 + +glabel __ull_to_d +/* 0186B4 70017AB4 AFA40000 */ sw $a0, ($sp) +/* 0186B8 70017AB8 AFA50004 */ sw $a1, 4($sp) +/* 0186BC 70017ABC DFAE0000 */ ld $t6, ($sp) +/* 0186C0 70017AC0 44AE2000 */ dmtc1 $t6, $f4 +/* 0186C4 70017AC4 05C10006 */ bgez $t6, .L70017AE0 +/* 0186C8 70017AC8 46A02021 */ cvt.d.l $f0, $f4 +/* 0186CC 70017ACC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0186D0 70017AD0 44813800 */ mtc1 $at, $f7 +/* 0186D4 70017AD4 44803000 */ mtc1 $zero, $f6 +/* 0186D8 70017AD8 00000000 */ nop +/* 0186DC 70017ADC 46260000 */ add.d $f0, $f0, $f6 +.L70017AE0: +/* 0186E0 70017AE0 03E00008 */ jr $ra +/* 0186E4 70017AE4 00000000 */ nop + +glabel __ull_to_f +/* 0186E8 70017AE8 AFA40000 */ sw $a0, ($sp) +/* 0186EC 70017AEC AFA50004 */ sw $a1, 4($sp) +/* 0186F0 70017AF0 DFAE0000 */ ld $t6, ($sp) +/* 0186F4 70017AF4 44AE2000 */ dmtc1 $t6, $f4 +/* 0186F8 70017AF8 05C10005 */ bgez $t6, .L70017B10 +/* 0186FC 70017AFC 46A02020 */ cvt.s.l $f0, $f4 +/* 018700 70017B00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 018704 70017B04 44813000 */ mtc1 $at, $f6 +/* 018708 70017B08 00000000 */ nop +/* 01870C 70017B0C 46060000 */ add.s $f0, $f0, $f6 +.L70017B10: +/* 018710 70017B10 03E00008 */ jr $ra +/* 018714 70017B14 00000000 */ nop +.align 4 +.section .rodata +glabel D_80029820 +.word 0x80000000, 0 +glabel D_80029828 +.word 0x80000000, 0 diff --git a/src/libultra/load.s b/src/libultra/load.s new file mode 100644 index 0000000..02837aa --- /dev/null +++ b/src/libultra/load.s @@ -0,0 +1,800 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alLoadParam +/* 01A6B0 70019AB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01A6B4 70019AB4 24010004 */ li $at, 4 +/* 01A6B8 70019AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 01A6BC 70019ABC 10A10055 */ beq $a1, $at, .L70019C14 +/* 01A6C0 70019AC0 00803825 */ move $a3, $a0 +/* 01A6C4 70019AC4 24010005 */ li $at, 5 +/* 01A6C8 70019AC8 54A1006B */ bnel $a1, $at, .L70019C78 +/* 01A6CC 70019ACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A6D0 70019AD0 AC860028 */ sw $a2, 0x28($a0) +/* 01A6D4 70019AD4 8CCE0000 */ lw $t6, ($a2) +/* 01A6D8 70019AD8 AC800038 */ sw $zero, 0x38($a0) +/* 01A6DC 70019ADC 3C0F7002 */ lui $t7, %hi(alAdpcmPull) # $t7, 0x7002 +/* 01A6E0 70019AE0 AC8E0044 */ sw $t6, 0x44($a0) +/* 01A6E4 70019AE4 90C20008 */ lbu $v0, 8($a2) +/* 01A6E8 70019AE8 50400007 */ beql $v0, $zero, .L70019B08 +/* 01A6EC 70019AEC 8CE20028 */ lw $v0, 0x28($a3) +/* 01A6F0 70019AF0 24040001 */ li $a0, 1 +/* 01A6F4 70019AF4 10440034 */ beq $v0, $a0, .L70019BC8 +/* 01A6F8 70019AF8 3C087002 */ lui $t0, %hi(alRaw16Pull) # $t0, 0x7002 +/* 01A6FC 70019AFC 1000005E */ b .L70019C78 +/* 01A700 70019B00 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A704 70019B04 8CE20028 */ lw $v0, 0x28($a3) +.L70019B08: +/* 01A708 70019B08 25EFA15C */ addiu $t7, %lo(alAdpcmPull) # addiu $t7, $t7, -0x5ea4 +/* 01A70C 70019B0C ACEF0004 */ sw $t7, 4($a3) +/* 01A710 70019B10 8C580004 */ lw $t8, 4($v0) +/* 01A714 70019B14 24050009 */ li $a1, 9 +/* 01A718 70019B18 0305001A */ div $zero, $t8, $a1 +/* 01A71C 70019B1C 0000C812 */ mflo $t9 +/* 01A720 70019B20 14A00002 */ bnez $a1, .L70019B2C +/* 01A724 70019B24 00000000 */ nop +/* 01A728 70019B28 0007000D */ break 7 +.L70019B2C: +/* 01A72C 70019B2C 2401FFFF */ li $at, -1 +/* 01A730 70019B30 14A10004 */ bne $a1, $at, .L70019B44 +/* 01A734 70019B34 3C018000 */ lui $at, 0x8000 +/* 01A738 70019B38 17010002 */ bne $t8, $at, .L70019B44 +/* 01A73C 70019B3C 00000000 */ nop +/* 01A740 70019B40 0006000D */ break 6 +.L70019B44: +/* 01A744 70019B44 03250019 */ multu $t9, $a1 +/* 01A748 70019B48 00004012 */ mflo $t0 +/* 01A74C 70019B4C AC480004 */ sw $t0, 4($v0) +/* 01A750 70019B50 8CE20028 */ lw $v0, 0x28($a3) +/* 01A754 70019B54 8C440010 */ lw $a0, 0x10($v0) +/* 01A758 70019B58 8C890000 */ lw $t1, ($a0) +/* 01A75C 70019B5C 8C8B0004 */ lw $t3, 4($a0) +/* 01A760 70019B60 00095100 */ sll $t2, $t1, 4 +/* 01A764 70019B64 014B0019 */ multu $t2, $t3 +/* 01A768 70019B68 00006012 */ mflo $t4 +/* 01A76C 70019B6C ACEC002C */ sw $t4, 0x2c($a3) +/* 01A770 70019B70 8C43000C */ lw $v1, 0xc($v0) +/* 01A774 70019B74 50600011 */ beql $v1, $zero, .L70019BBC +/* 01A778 70019B78 ACE00024 */ sw $zero, 0x24($a3) +/* 01A77C 70019B7C 8C6D0000 */ lw $t5, ($v1) +/* 01A780 70019B80 8CE50018 */ lw $a1, 0x18($a3) +/* 01A784 70019B84 24060020 */ li $a2, 32 +/* 01A788 70019B88 ACED001C */ sw $t5, 0x1c($a3) +/* 01A78C 70019B8C 8C4E000C */ lw $t6, 0xc($v0) +/* 01A790 70019B90 8DCF0004 */ lw $t7, 4($t6) +/* 01A794 70019B94 ACEF0020 */ sw $t7, 0x20($a3) +/* 01A798 70019B98 8C58000C */ lw $t8, 0xc($v0) +/* 01A79C 70019B9C 8F190008 */ lw $t9, 8($t8) +/* 01A7A0 70019BA0 ACF90024 */ sw $t9, 0x24($a3) +/* 01A7A4 70019BA4 8C44000C */ lw $a0, 0xc($v0) +/* 01A7A8 70019BA8 0C0075A4 */ jal alCopy +/* 01A7AC 70019BAC 2484000C */ addiu $a0, $a0, 0xc +/* 01A7B0 70019BB0 10000031 */ b .L70019C78 +/* 01A7B4 70019BB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A7B8 70019BB8 ACE00024 */ sw $zero, 0x24($a3) +.L70019BBC: +/* 01A7BC 70019BBC ACE00020 */ sw $zero, 0x20($a3) +/* 01A7C0 70019BC0 1000002C */ b .L70019C74 +/* 01A7C4 70019BC4 ACE0001C */ sw $zero, 0x1c($a3) +.L70019BC8: +/* 01A7C8 70019BC8 8CE20028 */ lw $v0, 0x28($a3) +/* 01A7CC 70019BCC 25089C84 */ addiu $t0, %lo(alRaw16Pull) # addiu $t0, $t0, -0x637c +/* 01A7D0 70019BD0 ACE80004 */ sw $t0, 4($a3) +/* 01A7D4 70019BD4 8C43000C */ lw $v1, 0xc($v0) +/* 01A7D8 70019BD8 5060000B */ beql $v1, $zero, .L70019C08 +/* 01A7DC 70019BDC ACE00024 */ sw $zero, 0x24($a3) +/* 01A7E0 70019BE0 8C690000 */ lw $t1, ($v1) +/* 01A7E4 70019BE4 ACE9001C */ sw $t1, 0x1c($a3) +/* 01A7E8 70019BE8 8C4A000C */ lw $t2, 0xc($v0) +/* 01A7EC 70019BEC 8D4B0004 */ lw $t3, 4($t2) +/* 01A7F0 70019BF0 ACEB0020 */ sw $t3, 0x20($a3) +/* 01A7F4 70019BF4 8C4C000C */ lw $t4, 0xc($v0) +/* 01A7F8 70019BF8 8D8D0008 */ lw $t5, 8($t4) +/* 01A7FC 70019BFC 1000001D */ b .L70019C74 +/* 01A800 70019C00 ACED0024 */ sw $t5, 0x24($a3) +/* 01A804 70019C04 ACE00024 */ sw $zero, 0x24($a3) +.L70019C08: +/* 01A808 70019C08 ACE00020 */ sw $zero, 0x20($a3) +/* 01A80C 70019C0C 10000019 */ b .L70019C74 +/* 01A810 70019C10 ACE0001C */ sw $zero, 0x1c($a3) +.L70019C14: +/* 01A814 70019C14 8CE20028 */ lw $v0, 0x28($a3) +/* 01A818 70019C18 24040001 */ li $a0, 1 +/* 01A81C 70019C1C ACE0003C */ sw $zero, 0x3c($a3) +/* 01A820 70019C20 ACE40040 */ sw $a0, 0x40($a3) +/* 01A824 70019C24 10400013 */ beqz $v0, .L70019C74 +/* 01A828 70019C28 ACE00038 */ sw $zero, 0x38($a3) +/* 01A82C 70019C2C 8C4E0000 */ lw $t6, ($v0) +/* 01A830 70019C30 ACEE0044 */ sw $t6, 0x44($a3) +/* 01A834 70019C34 90430008 */ lbu $v1, 8($v0) +/* 01A838 70019C38 14600007 */ bnez $v1, .L70019C58 +/* 01A83C 70019C3C 00000000 */ nop +/* 01A840 70019C40 8C43000C */ lw $v1, 0xc($v0) +/* 01A844 70019C44 5060000C */ beql $v1, $zero, .L70019C78 +/* 01A848 70019C48 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A84C 70019C4C 8C6F0008 */ lw $t7, 8($v1) +/* 01A850 70019C50 10000008 */ b .L70019C74 +/* 01A854 70019C54 ACEF0024 */ sw $t7, 0x24($a3) +.L70019C58: +/* 01A858 70019C58 54830007 */ bnel $a0, $v1, .L70019C78 +/* 01A85C 70019C5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A860 70019C60 8C43000C */ lw $v1, 0xc($v0) +/* 01A864 70019C64 50600004 */ beql $v1, $zero, .L70019C78 +/* 01A868 70019C68 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A86C 70019C6C 8C780008 */ lw $t8, 8($v1) +/* 01A870 70019C70 ACF80024 */ sw $t8, 0x24($a3) +.L70019C74: +/* 01A874 70019C74 8FBF0014 */ lw $ra, 0x14($sp) +.L70019C78: +/* 01A878 70019C78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01A87C 70019C7C 03E00008 */ jr $ra +/* 01A880 70019C80 00000000 */ nop + +glabel alRaw16Pull +/* 01A884 70019C84 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 01A888 70019C88 8FA80060 */ lw $t0, 0x60($sp) +/* 01A88C 70019C8C AFB30020 */ sw $s3, 0x20($sp) +/* 01A890 70019C90 AFB00014 */ sw $s0, 0x14($sp) +/* 01A894 70019C94 00808025 */ move $s0, $a0 +/* 01A898 70019C98 00C09825 */ move $s3, $a2 +/* 01A89C 70019C9C AFBF0024 */ sw $ra, 0x24($sp) +/* 01A8A0 70019CA0 AFB2001C */ sw $s2, 0x1c($sp) +/* 01A8A4 70019CA4 AFB10018 */ sw $s1, 0x18($sp) +/* 01A8A8 70019CA8 AFA7005C */ sw $a3, 0x5c($sp) +/* 01A8AC 70019CAC 00A05025 */ move $t2, $a1 +/* 01A8B0 70019CB0 14C00003 */ bnez $a2, .L70019CC0 +/* 01A8B4 70019CB4 01004825 */ move $t1, $t0 +/* 01A8B8 70019CB8 100000D6 */ b .L7001A014 +/* 01A8BC 70019CBC 01001025 */ move $v0, $t0 +.L70019CC0: +/* 01A8C0 70019CC0 8E020038 */ lw $v0, 0x38($s0) +/* 01A8C4 70019CC4 8E030020 */ lw $v1, 0x20($s0) +/* 01A8C8 70019CC8 00537021 */ addu $t6, $v0, $s3 +/* 01A8CC 70019CCC 006E082B */ sltu $at, $v1, $t6 +/* 01A8D0 70019CD0 50200084 */ beql $at, $zero, .L70019EE4 +/* 01A8D4 70019CD4 8E020028 */ lw $v0, 0x28($s0) +/* 01A8D8 70019CD8 8E0F0024 */ lw $t7, 0x24($s0) +/* 01A8DC 70019CDC 00629023 */ subu $s2, $v1, $v0 +/* 01A8E0 70019CE0 51E00080 */ beql $t7, $zero, .L70019EE4 +/* 01A8E4 70019CE4 8E020028 */ lw $v0, 0x28($s0) +/* 01A8E8 70019CE8 1A40001E */ blez $s2, .L70019D64 +/* 01A8EC 70019CEC 00128840 */ sll $s1, $s2, 1 +/* 01A8F0 70019CF0 8E040044 */ lw $a0, 0x44($s0) +/* 01A8F4 70019CF4 8E060034 */ lw $a2, 0x34($s0) +/* 01A8F8 70019CF8 AFAA0054 */ sw $t2, 0x54($sp) +/* 01A8FC 70019CFC 8E190030 */ lw $t9, 0x30($s0) +/* 01A900 70019D00 02202825 */ move $a1, $s1 +/* 01A904 70019D04 0320F809 */ jalr $t9 +/* 01A908 70019D08 00000000 */ nop +/* 01A90C 70019D0C 8FAA0054 */ lw $t2, 0x54($sp) +/* 01A910 70019D10 30460007 */ andi $a2, $v0, 7 +/* 01A914 70019D14 8FA80060 */ lw $t0, 0x60($sp) +/* 01A918 70019D18 85580000 */ lh $t8, ($t2) +/* 01A91C 70019D1C 02263821 */ addu $a3, $s1, $a2 +/* 01A920 70019D20 30ED0007 */ andi $t5, $a3, 7 +/* 01A924 70019D24 00ED7023 */ subu $t6, $a3, $t5 +/* 01A928 70019D28 3C010800 */ lui $at, 0x800 +/* 01A92C 70019D2C 330BFFFF */ andi $t3, $t8, 0xffff +/* 01A930 70019D30 01616025 */ or $t4, $t3, $at +/* 01A934 70019D34 25CF0008 */ addiu $t7, $t6, 8 +/* 01A938 70019D38 25090008 */ addiu $t1, $t0, 8 +/* 01A93C 70019D3C 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01A940 70019D40 01202025 */ move $a0, $t1 +/* 01A944 70019D44 00465823 */ subu $t3, $v0, $a2 +/* 01A948 70019D48 3C180400 */ lui $t8, 0x400 +/* 01A94C 70019D4C AD190004 */ sw $t9, 4($t0) +/* 01A950 70019D50 AD0C0000 */ sw $t4, ($t0) +/* 01A954 70019D54 AC8B0004 */ sw $t3, 4($a0) +/* 01A958 70019D58 AC980000 */ sw $t8, ($a0) +/* 01A95C 70019D5C 10000002 */ b .L70019D68 +/* 01A960 70019D60 25290008 */ addiu $t1, $t1, 8 +.L70019D64: +/* 01A964 70019D64 00003025 */ move $a2, $zero +.L70019D68: +/* 01A968 70019D68 854C0000 */ lh $t4, ($t2) +/* 01A96C 70019D6C 0253082A */ slt $at, $s2, $s3 +/* 01A970 70019D70 01866821 */ addu $t5, $t4, $a2 +/* 01A974 70019D74 A54D0000 */ sh $t5, ($t2) +/* 01A978 70019D78 8E0E0028 */ lw $t6, 0x28($s0) +/* 01A97C 70019D7C 8E02001C */ lw $v0, 0x1c($s0) +/* 01A980 70019D80 8DCF0000 */ lw $t7, ($t6) +/* 01A984 70019D84 0002C840 */ sll $t9, $v0, 1 +/* 01A988 70019D88 AE020038 */ sw $v0, 0x38($s0) +/* 01A98C 70019D8C 01F9C021 */ addu $t8, $t7, $t9 +/* 01A990 70019D90 AE180044 */ sw $t8, 0x44($s0) +/* 01A994 70019D94 10200049 */ beqz $at, .L70019EBC +/* 01A998 70019D98 85480000 */ lh $t0, ($t2) +/* 01A99C 70019D9C 8E020024 */ lw $v0, 0x24($s0) +.L70019DA0: +/* 01A9A0 70019DA0 2401FFFF */ li $at, -1 +/* 01A9A4 70019DA4 01114021 */ addu $t0, $t0, $s1 +/* 01A9A8 70019DA8 10410004 */ beq $v0, $at, .L70019DBC +/* 01A9AC 70019DAC 02729823 */ subu $s3, $s3, $s2 +/* 01A9B0 70019DB0 10400002 */ beqz $v0, .L70019DBC +/* 01A9B4 70019DB4 244BFFFF */ addiu $t3, $v0, -1 +/* 01A9B8 70019DB8 AE0B0024 */ sw $t3, 0x24($s0) +.L70019DBC: +/* 01A9BC 70019DBC 8E0C0020 */ lw $t4, 0x20($s0) +/* 01A9C0 70019DC0 8E0D001C */ lw $t5, 0x1c($s0) +/* 01A9C4 70019DC4 018D1023 */ subu $v0, $t4, $t5 +/* 01A9C8 70019DC8 0262082B */ sltu $at, $s3, $v0 +/* 01A9CC 70019DCC 10200003 */ beqz $at, .L70019DDC +/* 01A9D0 70019DD0 00409025 */ move $s2, $v0 +/* 01A9D4 70019DD4 10000001 */ b .L70019DDC +/* 01A9D8 70019DD8 02609025 */ move $s2, $s3 +.L70019DDC: +/* 01A9DC 70019DDC 8E040044 */ lw $a0, 0x44($s0) +/* 01A9E0 70019DE0 8E060034 */ lw $a2, 0x34($s0) +/* 01A9E4 70019DE4 AFA9004C */ sw $t1, 0x4c($sp) +/* 01A9E8 70019DE8 AFA8002C */ sw $t0, 0x2c($sp) +/* 01A9EC 70019DEC 8E190030 */ lw $t9, 0x30($s0) +/* 01A9F0 70019DF0 00128840 */ sll $s1, $s2, 1 +/* 01A9F4 70019DF4 02202825 */ move $a1, $s1 +/* 01A9F8 70019DF8 0320F809 */ jalr $t9 +/* 01A9FC 70019DFC 00000000 */ nop +/* 01AA00 70019E00 8FA8002C */ lw $t0, 0x2c($sp) +/* 01AA04 70019E04 30450007 */ andi $a1, $v0, 7 +/* 01AA08 70019E08 8FA9004C */ lw $t1, 0x4c($sp) +/* 01AA0C 70019E0C 31030007 */ andi $v1, $t0, 7 +/* 01AA10 70019E10 10600004 */ beqz $v1, .L70019E24 +/* 01AA14 70019E14 02253821 */ addu $a3, $s1, $a1 +/* 01AA18 70019E18 240E0008 */ li $t6, 8 +/* 01AA1C 70019E1C 10000002 */ b .L70019E28 +/* 01AA20 70019E20 01C33023 */ subu $a2, $t6, $v1 +.L70019E24: +/* 01AA24 70019E24 00003025 */ move $a2, $zero +.L70019E28: +/* 01AA28 70019E28 01067821 */ addu $t7, $t0, $a2 +/* 01AA2C 70019E2C 30EC0007 */ andi $t4, $a3, 7 +/* 01AA30 70019E30 00EC6823 */ subu $t5, $a3, $t4 +/* 01AA34 70019E34 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01AA38 70019E38 01201825 */ move $v1, $t1 +/* 01AA3C 70019E3C 3C010800 */ lui $at, 0x800 +/* 01AA40 70019E40 03015825 */ or $t3, $t8, $at +/* 01AA44 70019E44 25290008 */ addiu $t1, $t1, 8 +/* 01AA48 70019E48 25B90008 */ addiu $t9, $t5, 8 +/* 01AA4C 70019E4C 332EFFFF */ andi $t6, $t9, 0xffff +/* 01AA50 70019E50 01202025 */ move $a0, $t1 +/* 01AA54 70019E54 AC6E0004 */ sw $t6, 4($v1) +/* 01AA58 70019E58 AC6B0000 */ sw $t3, ($v1) +/* 01AA5C 70019E5C 0045C023 */ subu $t8, $v0, $a1 +/* 01AA60 70019E60 3C0F0400 */ lui $t7, 0x400 +/* 01AA64 70019E64 AC8F0000 */ sw $t7, ($a0) +/* 01AA68 70019E68 AC980004 */ sw $t8, 4($a0) +/* 01AA6C 70019E6C 14A00002 */ bnez $a1, .L70019E78 +/* 01AA70 70019E70 25290008 */ addiu $t1, $t1, 8 +/* 01AA74 70019E74 10C0000E */ beqz $a2, .L70019EB0 +.L70019E78: +/* 01AA78 70019E78 01055821 */ addu $t3, $t0, $a1 +/* 01AA7C 70019E7C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01AA80 70019E80 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AA84 70019E84 01666021 */ addu $t4, $t3, $a2 +/* 01AA88 70019E88 01816824 */ and $t5, $t4, $at +/* 01AA8C 70019E8C 01201025 */ move $v0, $t1 +/* 01AA90 70019E90 3C010A00 */ lui $at, 0xa00 +/* 01AA94 70019E94 00087C00 */ sll $t7, $t0, 0x10 +/* 01AA98 70019E98 3238FFFF */ andi $t8, $s1, 0xffff +/* 01AA9C 70019E9C 01F85825 */ or $t3, $t7, $t8 +/* 01AAA0 70019EA0 01A1C825 */ or $t9, $t5, $at +/* 01AAA4 70019EA4 AC590000 */ sw $t9, ($v0) +/* 01AAA8 70019EA8 AC4B0004 */ sw $t3, 4($v0) +/* 01AAAC 70019EAC 25290008 */ addiu $t1, $t1, 8 +.L70019EB0: +/* 01AAB0 70019EB0 0253082A */ slt $at, $s2, $s3 +/* 01AAB4 70019EB4 5420FFBA */ bnezl $at, .L70019DA0 +/* 01AAB8 70019EB8 8E020024 */ lw $v0, 0x24($s0) +.L70019EBC: +/* 01AABC 70019EBC 8E0C0038 */ lw $t4, 0x38($s0) +/* 01AAC0 70019EC0 8E190044 */ lw $t9, 0x44($s0) +/* 01AAC4 70019EC4 00137040 */ sll $t6, $s3, 1 +/* 01AAC8 70019EC8 01936821 */ addu $t5, $t4, $s3 +/* 01AACC 70019ECC 032E7821 */ addu $t7, $t9, $t6 +/* 01AAD0 70019ED0 AE0D0038 */ sw $t5, 0x38($s0) +/* 01AAD4 70019ED4 AE0F0044 */ sw $t7, 0x44($s0) +/* 01AAD8 70019ED8 1000004E */ b .L7001A014 +/* 01AADC 70019EDC 01201025 */ move $v0, $t1 +/* 01AAE0 70019EE0 8E020028 */ lw $v0, 0x28($s0) +.L70019EE4: +/* 01AAE4 70019EE4 8E040044 */ lw $a0, 0x44($s0) +/* 01AAE8 70019EE8 00138840 */ sll $s1, $s3, 1 +/* 01AAEC 70019EEC 8C580000 */ lw $t8, ($v0) +/* 01AAF0 70019EF0 8C4C0004 */ lw $t4, 4($v0) +/* 01AAF4 70019EF4 00911821 */ addu $v1, $a0, $s1 +/* 01AAF8 70019EF8 00785823 */ subu $t3, $v1, $t8 +/* 01AAFC 70019EFC 016C9023 */ subu $s2, $t3, $t4 +/* 01AB00 70019F00 06430003 */ bgezl $s2, .L70019F10 +/* 01AB04 70019F04 0232082A */ slt $at, $s1, $s2 +/* 01AB08 70019F08 00009025 */ move $s2, $zero +/* 01AB0C 70019F0C 0232082A */ slt $at, $s1, $s2 +.L70019F10: +/* 01AB10 70019F10 50200003 */ beql $at, $zero, .L70019F20 +/* 01AB14 70019F14 0251082A */ slt $at, $s2, $s1 +/* 01AB18 70019F18 02209025 */ move $s2, $s1 +/* 01AB1C 70019F1C 0251082A */ slt $at, $s2, $s1 +.L70019F20: +/* 01AB20 70019F20 5020002C */ beql $at, $zero, .L70019FD4 +/* 01AB24 70019F24 AE030044 */ sw $v1, 0x44($s0) +/* 01AB28 70019F28 1A60001F */ blez $s3, .L70019FA8 +/* 01AB2C 70019F2C 00003025 */ move $a2, $zero +/* 01AB30 70019F30 8E060034 */ lw $a2, 0x34($s0) +/* 01AB34 70019F34 02322823 */ subu $a1, $s1, $s2 +/* 01AB38 70019F38 AFA50048 */ sw $a1, 0x48($sp) +/* 01AB3C 70019F3C AFAA0054 */ sw $t2, 0x54($sp) +/* 01AB40 70019F40 8E190030 */ lw $t9, 0x30($s0) +/* 01AB44 70019F44 0320F809 */ jalr $t9 +/* 01AB48 70019F48 00000000 */ nop +/* 01AB4C 70019F4C 8FAA0054 */ lw $t2, 0x54($sp) +/* 01AB50 70019F50 8FA70048 */ lw $a3, 0x48($sp) +/* 01AB54 70019F54 30460007 */ andi $a2, $v0, 7 +/* 01AB58 70019F58 854D0000 */ lh $t5, ($t2) +/* 01AB5C 70019F5C 8FA80060 */ lw $t0, 0x60($sp) +/* 01AB60 70019F60 00E63821 */ addu $a3, $a3, $a2 +/* 01AB64 70019F64 30F80007 */ andi $t8, $a3, 7 +/* 01AB68 70019F68 00F85823 */ subu $t3, $a3, $t8 +/* 01AB6C 70019F6C 3C010800 */ lui $at, 0x800 +/* 01AB70 70019F70 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01AB74 70019F74 01C17825 */ or $t7, $t6, $at +/* 01AB78 70019F78 256C0008 */ addiu $t4, $t3, 8 +/* 01AB7C 70019F7C 25090008 */ addiu $t1, $t0, 8 +/* 01AB80 70019F80 3199FFFF */ andi $t9, $t4, 0xffff +/* 01AB84 70019F84 01202025 */ move $a0, $t1 +/* 01AB88 70019F88 00467023 */ subu $t6, $v0, $a2 +/* 01AB8C 70019F8C 3C0D0400 */ lui $t5, 0x400 +/* 01AB90 70019F90 AD190004 */ sw $t9, 4($t0) +/* 01AB94 70019F94 AD0F0000 */ sw $t7, ($t0) +/* 01AB98 70019F98 AC8E0004 */ sw $t6, 4($a0) +/* 01AB9C 70019F9C AC8D0000 */ sw $t5, ($a0) +/* 01ABA0 70019FA0 10000001 */ b .L70019FA8 +/* 01ABA4 70019FA4 25290008 */ addiu $t1, $t1, 8 +.L70019FA8: +/* 01ABA8 70019FA8 854F0000 */ lh $t7, ($t2) +/* 01ABAC 70019FAC 01E6C021 */ addu $t8, $t7, $a2 +/* 01ABB0 70019FB0 A5580000 */ sh $t8, ($t2) +/* 01ABB4 70019FB4 8E0B0038 */ lw $t3, 0x38($s0) +/* 01ABB8 70019FB8 8E190044 */ lw $t9, 0x44($s0) +/* 01ABBC 70019FBC 01736021 */ addu $t4, $t3, $s3 +/* 01ABC0 70019FC0 03316821 */ addu $t5, $t9, $s1 +/* 01ABC4 70019FC4 AE0C0038 */ sw $t4, 0x38($s0) +/* 01ABC8 70019FC8 10000002 */ b .L70019FD4 +/* 01ABCC 70019FCC AE0D0044 */ sw $t5, 0x44($s0) +/* 01ABD0 70019FD0 AE030044 */ sw $v1, 0x44($s0) +.L70019FD4: +/* 01ABD4 70019FD4 1240000E */ beqz $s2, .L7001A010 +/* 01ABD8 70019FD8 02321823 */ subu $v1, $s1, $s2 +/* 01ABDC 70019FDC 04610002 */ bgez $v1, .L70019FE8 +/* 01ABE0 70019FE0 01201025 */ move $v0, $t1 +/* 01ABE4 70019FE4 00001825 */ move $v1, $zero +.L70019FE8: +/* 01ABE8 70019FE8 854E0000 */ lh $t6, ($t2) +/* 01ABEC 70019FEC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01ABF0 70019FF0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ABF4 70019FF4 01C37821 */ addu $t7, $t6, $v1 +/* 01ABF8 70019FF8 01E1C024 */ and $t8, $t7, $at +/* 01ABFC 70019FFC 3C010200 */ lui $at, 0x200 +/* 01AC00 7001A000 03015825 */ or $t3, $t8, $at +/* 01AC04 7001A004 AC4B0000 */ sw $t3, ($v0) +/* 01AC08 7001A008 AC520004 */ sw $s2, 4($v0) +/* 01AC0C 7001A00C 25290008 */ addiu $t1, $t1, 8 +.L7001A010: +/* 01AC10 7001A010 01201025 */ move $v0, $t1 +.L7001A014: +/* 01AC14 7001A014 8FBF0024 */ lw $ra, 0x24($sp) +/* 01AC18 7001A018 8FB00014 */ lw $s0, 0x14($sp) +/* 01AC1C 7001A01C 8FB10018 */ lw $s1, 0x18($sp) +/* 01AC20 7001A020 8FB2001C */ lw $s2, 0x1c($sp) +/* 01AC24 7001A024 8FB30020 */ lw $s3, 0x20($sp) +/* 01AC28 7001A028 03E00008 */ jr $ra +/* 01AC2C 7001A02C 27BD0050 */ addiu $sp, $sp, 0x50 + +glabel ultra_7001A030 +/* 01AC30 7001A030 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01AC34 7001A034 AFB3002C */ sw $s3, 0x2c($sp) +/* 01AC38 7001A038 AFB50028 */ sw $s5, 0x28($sp) +/* 01AC3C 7001A03C 00137400 */ sll $t6, $s3, 0x10 +/* 01AC40 7001A040 0015C400 */ sll $t8, $s5, 0x10 +/* 01AC44 7001A044 0018AC03 */ sra $s5, $t8, 0x10 +/* 01AC48 7001A048 000E9C03 */ sra $s3, $t6, 0x10 +/* 01AC4C 7001A04C 1A20001A */ blez $s1, .L7001A0B8 +/* 01AC50 7001A050 AFBF0014 */ sw $ra, 0x14($sp) +/* 01AC54 7001A054 8E590030 */ lw $t9, 0x30($s2) +/* 01AC58 7001A058 8E440044 */ lw $a0, 0x44($s2) +/* 01AC5C 7001A05C 02202825 */ move $a1, $s1 +/* 01AC60 7001A060 0320F809 */ jalr $t9 +/* 01AC64 7001A064 8E460034 */ lw $a2, 0x34($s2) +/* 01AC68 7001A068 30460007 */ andi $a2, $v0, 7 +/* 01AC6C 7001A06C 02268821 */ addu $s1, $s1, $a2 +/* 01AC70 7001A070 326EFFFF */ andi $t6, $s3, 0xffff +/* 01AC74 7001A074 3C010800 */ lui $at, 0x800 +/* 01AC78 7001A078 01C17825 */ or $t7, $t6, $at +/* 01AC7C 7001A07C 32380007 */ andi $t8, $s1, 7 +/* 01AC80 7001A080 02002025 */ move $a0, $s0 +/* 01AC84 7001A084 0238C823 */ subu $t9, $s1, $t8 +/* 01AC88 7001A088 272E0008 */ addiu $t6, $t9, 8 +/* 01AC8C 7001A08C AC8F0000 */ sw $t7, ($a0) +/* 01AC90 7001A090 26100008 */ addiu $s0, $s0, 8 +/* 01AC94 7001A094 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01AC98 7001A098 02002825 */ move $a1, $s0 +/* 01AC9C 7001A09C AC8F0004 */ sw $t7, 4($a0) +/* 01ACA0 7001A0A0 0046C823 */ subu $t9, $v0, $a2 +/* 01ACA4 7001A0A4 3C180400 */ lui $t8, 0x400 +/* 01ACA8 7001A0A8 ACB80000 */ sw $t8, ($a1) +/* 01ACAC 7001A0AC ACB90004 */ sw $t9, 4($a1) +/* 01ACB0 7001A0B0 10000002 */ b .L7001A0BC +/* 01ACB4 7001A0B4 26100008 */ addiu $s0, $s0, 8 +.L7001A0B8: +/* 01ACB8 7001A0B8 00003025 */ move $a2, $zero +.L7001A0BC: +/* 01ACBC 7001A0BC 328E0002 */ andi $t6, $s4, 2 +/* 01ACC0 7001A0C0 11C00009 */ beqz $t6, .L7001A0E8 +/* 01ACC4 7001A0C4 02001025 */ move $v0, $s0 +/* 01ACC8 7001A0C8 3C0F0F00 */ lui $t7, 0xf00 +/* 01ACCC 7001A0CC AC4F0000 */ sw $t7, ($v0) +/* 01ACD0 7001A0D0 8E580018 */ lw $t8, 0x18($s2) +/* 01ACD4 7001A0D4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01ACD8 7001A0D8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ACDC 7001A0DC 0301C824 */ and $t9, $t8, $at +/* 01ACE0 7001A0E0 AC590004 */ sw $t9, 4($v0) +/* 01ACE4 7001A0E4 26100008 */ addiu $s0, $s0, 8 +.L7001A0E8: +/* 01ACE8 7001A0E8 02667021 */ addu $t6, $s3, $a2 +/* 01ACEC 7001A0EC 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01ACF0 7001A0F0 3C010800 */ lui $at, 0x800 +/* 01ACF4 7001A0F4 01E1C025 */ or $t8, $t7, $at +/* 01ACF8 7001A0F8 02001825 */ move $v1, $s0 +/* 01ACFC 7001A0FC AC780000 */ sw $t8, ($v1) +/* 01AD00 7001A100 00167840 */ sll $t7, $s6, 1 +/* 01AD04 7001A104 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01AD08 7001A108 00157400 */ sll $t6, $s5, 0x10 +/* 01AD0C 7001A10C 01D8C825 */ or $t9, $t6, $t8 +/* 01AD10 7001A110 328F00FF */ andi $t7, $s4, 0xff +/* 01AD14 7001A114 26100008 */ addiu $s0, $s0, 8 +/* 01AD18 7001A118 000F7400 */ sll $t6, $t7, 0x10 +/* 01AD1C 7001A11C 3C010100 */ lui $at, 0x100 +/* 01AD20 7001A120 AC790004 */ sw $t9, 4($v1) +/* 01AD24 7001A124 01C1C025 */ or $t8, $t6, $at +/* 01AD28 7001A128 02002025 */ move $a0, $s0 +/* 01AD2C 7001A12C AC980000 */ sw $t8, ($a0) +/* 01AD30 7001A130 8E590014 */ lw $t9, 0x14($s2) +/* 01AD34 7001A134 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01AD38 7001A138 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AD3C 7001A13C 03217824 */ and $t7, $t9, $at +/* 01AD40 7001A140 AC8F0004 */ sw $t7, 4($a0) +/* 01AD44 7001A144 AE400040 */ sw $zero, 0x40($s2) +/* 01AD48 7001A148 8FBF0014 */ lw $ra, 0x14($sp) +/* 01AD4C 7001A14C 26100008 */ addiu $s0, $s0, 8 +/* 01AD50 7001A150 02001025 */ move $v0, $s0 +/* 01AD54 7001A154 03E00008 */ jr $ra +/* 01AD58 7001A158 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel alAdpcmPull +/* 01AD5C 7001A15C 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 01AD60 7001A160 AFB70044 */ sw $s7, 0x44($sp) +/* 01AD64 7001A164 AFA700BC */ sw $a3, 0xbc($sp) +/* 01AD68 7001A168 00A03825 */ move $a3, $a1 +/* 01AD6C 7001A16C 0080B825 */ move $s7, $a0 +/* 01AD70 7001A170 AFBF004C */ sw $ra, 0x4c($sp) +/* 01AD74 7001A174 AFBE0048 */ sw $fp, 0x48($sp) +/* 01AD78 7001A178 AFB60040 */ sw $s6, 0x40($sp) +/* 01AD7C 7001A17C AFB5003C */ sw $s5, 0x3c($sp) +/* 01AD80 7001A180 AFB40038 */ sw $s4, 0x38($sp) +/* 01AD84 7001A184 AFB30034 */ sw $s3, 0x34($sp) +/* 01AD88 7001A188 AFB20030 */ sw $s2, 0x30($sp) +/* 01AD8C 7001A18C AFB1002C */ sw $s1, 0x2c($sp) +/* 01AD90 7001A190 AFB00028 */ sw $s0, 0x28($sp) +/* 01AD94 7001A194 AFA500B4 */ sw $a1, 0xb4($sp) +/* 01AD98 7001A198 00C04025 */ move $t0, $a2 +/* 01AD9C 7001A19C 14C00003 */ bnez $a2, .L7001A1AC +/* 01ADA0 7001A1A0 00006825 */ move $t5, $zero +/* 01ADA4 7001A1A4 10000109 */ b .L7001A5CC +/* 01ADA8 7001A1A8 8FA200C0 */ lw $v0, 0xc0($sp) +.L7001A1AC: +/* 01ADAC 7001A1AC 8EEE002C */ lw $t6, 0x2c($s7) +/* 01ADB0 7001A1B0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01ADB4 7001A1B4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ADB8 7001A1B8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 01ADBC 7001A1BC 01C17824 */ and $t7, $t6, $at +/* 01ADC0 7001A1C0 3C010B00 */ lui $at, 0xb00 +/* 01ADC4 7001A1C4 01E1C025 */ or $t8, $t7, $at +/* 01ADC8 7001A1C8 ACB80000 */ sw $t8, ($a1) +/* 01ADCC 7001A1CC 8EF90028 */ lw $t9, 0x28($s7) +/* 01ADD0 7001A1D0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01ADD4 7001A1D4 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ADD8 7001A1D8 8F2E0010 */ lw $t6, 0x10($t9) +/* 01ADDC 7001A1DC 24AA0008 */ addiu $t2, $a1, 8 +/* 01ADE0 7001A1E0 00003025 */ move $a2, $zero +/* 01ADE4 7001A1E4 25CF0008 */ addiu $t7, $t6, 8 +/* 01ADE8 7001A1E8 01E1C024 */ and $t8, $t7, $at +/* 01ADEC 7001A1EC ACB80004 */ sw $t8, 4($a1) +/* 01ADF0 7001A1F0 8EE30038 */ lw $v1, 0x38($s7) +/* 01ADF4 7001A1F4 8EE40020 */ lw $a0, 0x20($s7) +/* 01ADF8 7001A1F8 01002825 */ move $a1, $t0 +/* 01ADFC 7001A1FC 0068C821 */ addu $t9, $v1, $t0 +/* 01AE00 7001A200 0099482B */ sltu $t1, $a0, $t9 +/* 01AE04 7001A204 11200004 */ beqz $t1, .L7001A218 +/* 01AE08 7001A208 240F0010 */ li $t7, 16 +/* 01AE0C 7001A20C 8EE90024 */ lw $t1, 0x24($s7) +/* 01AE10 7001A210 0009702B */ sltu $t6, $zero, $t1 +/* 01AE14 7001A214 01C04825 */ move $t1, $t6 +.L7001A218: +/* 01AE18 7001A218 11200003 */ beqz $t1, .L7001A228 +/* 01AE1C 7001A21C 24010009 */ li $at, 9 +/* 01AE20 7001A220 10000001 */ b .L7001A228 +/* 01AE24 7001A224 00832823 */ subu $a1, $a0, $v1 +.L7001A228: +/* 01AE28 7001A228 8EE3003C */ lw $v1, 0x3c($s7) +/* 01AE2C 7001A22C 01408025 */ move $s0, $t2 +/* 01AE30 7001A230 02E09025 */ move $s2, $s7 +/* 01AE34 7001A234 10600003 */ beqz $v1, .L7001A244 +/* 01AE38 7001A238 00009825 */ move $s3, $zero +/* 01AE3C 7001A23C 10000001 */ b .L7001A244 +/* 01AE40 7001A240 01E33023 */ subu $a2, $t7, $v1 +.L7001A244: +/* 01AE44 7001A244 00A62023 */ subu $a0, $a1, $a2 +/* 01AE48 7001A248 04810002 */ bgez $a0, .L7001A254 +/* 01AE4C 7001A24C 00000000 */ nop +/* 01AE50 7001A250 00002025 */ move $a0, $zero +.L7001A254: +/* 01AE54 7001A254 11200081 */ beqz $t1, .L7001A45C +/* 01AE58 7001A258 249E000F */ addiu $fp, $a0, 0xf +/* 01AE5C 7001A25C 249E000F */ addiu $fp, $a0, 0xf +/* 01AE60 7001A260 001EC103 */ sra $t8, $fp, 4 +/* 01AE64 7001A264 84F50000 */ lh $s5, ($a3) +/* 01AE68 7001A268 8EF40040 */ lw $s4, 0x40($s7) +/* 01AE6C 7001A26C 001848C0 */ sll $t1, $t8, 3 +/* 01AE70 7001A270 01384821 */ addu $t1, $t1, $t8 +/* 01AE74 7001A274 01208825 */ move $s1, $t1 +/* 01AE78 7001A278 AFA9005C */ sw $t1, 0x5c($sp) +/* 01AE7C 7001A27C AFA800B8 */ sw $t0, 0xb8($sp) +/* 01AE80 7001A280 AFA700B4 */ sw $a3, 0xb4($sp) +/* 01AE84 7001A284 AFA5008C */ sw $a1, 0x8c($sp) +/* 01AE88 7001A288 0300F025 */ move $fp, $t8 +/* 01AE8C 7001A28C 0C00680C */ jal ultra_7001A030 +/* 01AE90 7001A290 0080B025 */ move $s6, $a0 +/* 01AE94 7001A294 8EE3003C */ lw $v1, 0x3c($s7) +/* 01AE98 7001A298 8FA5008C */ lw $a1, 0x8c($sp) +/* 01AE9C 7001A29C 8FA700B4 */ lw $a3, 0xb4($sp) +/* 01AEA0 7001A2A0 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01AEA4 7001A2A4 8FA9005C */ lw $t1, 0x5c($sp) +/* 01AEA8 7001A2A8 10600006 */ beqz $v1, .L7001A2C4 +/* 01AEAC 7001A2AC 00405025 */ move $t2, $v0 +/* 01AEB0 7001A2B0 84F90000 */ lh $t9, ($a3) +/* 01AEB4 7001A2B4 00037040 */ sll $t6, $v1, 1 +/* 01AEB8 7001A2B8 032E7821 */ addu $t7, $t9, $t6 +/* 01AEBC 7001A2BC 10000004 */ b .L7001A2D0 +/* 01AEC0 7001A2C0 A4EF0000 */ sh $t7, ($a3) +.L7001A2C4: +/* 01AEC4 7001A2C4 84F80000 */ lh $t8, ($a3) +/* 01AEC8 7001A2C8 27190020 */ addiu $t9, $t8, 0x20 +/* 01AECC 7001A2CC A4F90000 */ sh $t9, ($a3) +.L7001A2D0: +/* 01AED0 7001A2D0 8EE2001C */ lw $v0, 0x1c($s7) +/* 01AED4 7001A2D4 8EEF0028 */ lw $t7, 0x28($s7) +/* 01AED8 7001A2D8 00A8082A */ slt $at, $a1, $t0 +/* 01AEDC 7001A2DC 304E000F */ andi $t6, $v0, 0xf +/* 01AEE0 7001A2E0 AEEE003C */ sw $t6, 0x3c($s7) +/* 01AEE4 7001A2E4 8DF80000 */ lw $t8, ($t7) +/* 01AEE8 7001A2E8 0002C902 */ srl $t9, $v0, 4 +/* 01AEEC 7001A2EC 001970C0 */ sll $t6, $t9, 3 +/* 01AEF0 7001A2F0 01D97021 */ addu $t6, $t6, $t9 +/* 01AEF4 7001A2F4 030E7821 */ addu $t7, $t8, $t6 +/* 01AEF8 7001A2F8 25F90009 */ addiu $t9, $t7, 9 +/* 01AEFC 7001A2FC AEF90044 */ sw $t9, 0x44($s7) +/* 01AF00 7001A300 AEE20038 */ sw $v0, 0x38($s7) +/* 01AF04 7001A304 10200049 */ beqz $at, .L7001A42C +/* 01AF08 7001A308 84E60000 */ lh $a2, ($a3) +/* 01AF0C 7001A30C 00051840 */ sll $v1, $a1, 1 +.L7001A310: +/* 01AF10 7001A310 27D80001 */ addiu $t8, $fp, 1 +/* 01AF14 7001A314 00187140 */ sll $t6, $t8, 5 +/* 01AF18 7001A318 8EE20024 */ lw $v0, 0x24($s7) +/* 01AF1C 7001A31C 01C63821 */ addu $a3, $t6, $a2 +/* 01AF20 7001A320 2401FFE0 */ li $at, -32 +/* 01AF24 7001A324 00E17824 */ and $t7, $a3, $at +/* 01AF28 7001A328 2401FFFF */ li $at, -1 +/* 01AF2C 7001A32C 01054023 */ subu $t0, $t0, $a1 +/* 01AF30 7001A330 01E03825 */ move $a3, $t7 +/* 01AF34 7001A334 10410004 */ beq $v0, $at, .L7001A348 +/* 01AF38 7001A338 00C33021 */ addu $a2, $a2, $v1 +/* 01AF3C 7001A33C 10400002 */ beqz $v0, .L7001A348 +/* 01AF40 7001A340 2459FFFF */ addiu $t9, $v0, -1 +/* 01AF44 7001A344 AEF90024 */ sw $t9, 0x24($s7) +.L7001A348: +/* 01AF48 7001A348 8EF80020 */ lw $t8, 0x20($s7) +/* 01AF4C 7001A34C 8EEE001C */ lw $t6, 0x1c($s7) +/* 01AF50 7001A350 01408025 */ move $s0, $t2 +/* 01AF54 7001A354 02E09025 */ move $s2, $s7 +/* 01AF58 7001A358 030E1023 */ subu $v0, $t8, $t6 +/* 01AF5C 7001A35C 0102082B */ sltu $at, $t0, $v0 +/* 01AF60 7001A360 10200003 */ beqz $at, .L7001A370 +/* 01AF64 7001A364 0007AC00 */ sll $s5, $a3, 0x10 +/* 01AF68 7001A368 10000002 */ b .L7001A374 +/* 01AF6C 7001A36C 01002825 */ move $a1, $t0 +.L7001A370: +/* 01AF70 7001A370 00402825 */ move $a1, $v0 +.L7001A374: +/* 01AF74 7001A374 8EEF003C */ lw $t7, 0x3c($s7) +/* 01AF78 7001A378 0015C403 */ sra $t8, $s5, 0x10 +/* 01AF7C 7001A37C 0300A825 */ move $s5, $t8 +/* 01AF80 7001A380 00AF2021 */ addu $a0, $a1, $t7 +/* 01AF84 7001A384 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 01AF88 7001A388 04810002 */ bgez $a0, .L7001A394 +/* 01AF8C 7001A38C 00009825 */ move $s3, $zero +/* 01AF90 7001A390 00002025 */ move $a0, $zero +.L7001A394: +/* 01AF94 7001A394 8EF40040 */ lw $s4, 0x40($s7) +/* 01AF98 7001A398 249E000F */ addiu $fp, $a0, 0xf +/* 01AF9C 7001A39C 001EC903 */ sra $t9, $fp, 4 +/* 01AFA0 7001A3A0 001948C0 */ sll $t1, $t9, 3 +/* 01AFA4 7001A3A4 01394821 */ addu $t1, $t1, $t9 +/* 01AFA8 7001A3A8 368E0002 */ ori $t6, $s4, 2 +/* 01AFAC 7001A3AC 01C0A025 */ move $s4, $t6 +/* 01AFB0 7001A3B0 01208825 */ move $s1, $t1 +/* 01AFB4 7001A3B4 AFA9005C */ sw $t1, 0x5c($sp) +/* 01AFB8 7001A3B8 0320F025 */ move $fp, $t9 +/* 01AFBC 7001A3BC AFA800B8 */ sw $t0, 0xb8($sp) +/* 01AFC0 7001A3C0 AFA70088 */ sw $a3, 0x88($sp) +/* 01AFC4 7001A3C4 AFA60080 */ sw $a2, 0x80($sp) +/* 01AFC8 7001A3C8 AFA5008C */ sw $a1, 0x8c($sp) +/* 01AFCC 7001A3CC 0C00680C */ jal ultra_7001A030 +/* 01AFD0 7001A3D0 0080B025 */ move $s6, $a0 +/* 01AFD4 7001A3D4 8EEF003C */ lw $t7, 0x3c($s7) +/* 01AFD8 7001A3D8 8FA70088 */ lw $a3, 0x88($sp) +/* 01AFDC 7001A3DC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01AFE0 7001A3E0 000FC840 */ sll $t9, $t7, 1 +/* 01AFE4 7001A3E4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AFE8 7001A3E8 0327C021 */ addu $t8, $t9, $a3 +/* 01AFEC 7001A3EC 03017024 */ and $t6, $t8, $at +/* 01AFF0 7001A3F0 8FA5008C */ lw $a1, 0x8c($sp) +/* 01AFF4 7001A3F4 3C010A00 */ lui $at, 0xa00 +/* 01AFF8 7001A3F8 8FA60080 */ lw $a2, 0x80($sp) +/* 01AFFC 7001A3FC 01C17825 */ or $t7, $t6, $at +/* 01B000 7001A400 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01B004 7001A404 8FA9005C */ lw $t1, 0x5c($sp) +/* 01B008 7001A408 00051840 */ sll $v1, $a1, 1 +/* 01B00C 7001A40C 306EFFFF */ andi $t6, $v1, 0xffff +/* 01B010 7001A410 AC4F0000 */ sw $t7, ($v0) +/* 01B014 7001A414 0006C400 */ sll $t8, $a2, 0x10 +/* 01B018 7001A418 030E7825 */ or $t7, $t8, $t6 +/* 01B01C 7001A41C 00A8082A */ slt $at, $a1, $t0 +/* 01B020 7001A420 AC4F0004 */ sw $t7, 4($v0) +/* 01B024 7001A424 1420FFBA */ bnez $at, .L7001A310 +/* 01B028 7001A428 244A0008 */ addiu $t2, $v0, 8 +.L7001A42C: +/* 01B02C 7001A42C 8EF9003C */ lw $t9, 0x3c($s7) +/* 01B030 7001A430 8EEF0038 */ lw $t7, 0x38($s7) +/* 01B034 7001A434 01401025 */ move $v0, $t2 +/* 01B038 7001A438 0328C021 */ addu $t8, $t9, $t0 +/* 01B03C 7001A43C 330E000F */ andi $t6, $t8, 0xf +/* 01B040 7001A440 8EF80044 */ lw $t8, 0x44($s7) +/* 01B044 7001A444 AEEE003C */ sw $t6, 0x3c($s7) +/* 01B048 7001A448 01E8C821 */ addu $t9, $t7, $t0 +/* 01B04C 7001A44C 03097021 */ addu $t6, $t8, $t1 +/* 01B050 7001A450 AEF90038 */ sw $t9, 0x38($s7) +/* 01B054 7001A454 1000005D */ b .L7001A5CC +/* 01B058 7001A458 AEEE0044 */ sw $t6, 0x44($s7) +.L7001A45C: +/* 01B05C 7001A45C 8EE20028 */ lw $v0, 0x28($s7) +/* 01B060 7001A460 001E7903 */ sra $t7, $fp, 4 +/* 01B064 7001A464 8EF90044 */ lw $t9, 0x44($s7) +/* 01B068 7001A468 000F48C0 */ sll $t1, $t7, 3 +/* 01B06C 7001A46C 8C580000 */ lw $t8, ($v0) +/* 01B070 7001A470 012F4821 */ addu $t1, $t1, $t7 +/* 01B074 7001A474 01E0F025 */ move $fp, $t7 +/* 01B078 7001A478 8C4F0004 */ lw $t7, 4($v0) +/* 01B07C 7001A47C 03295821 */ addu $t3, $t9, $t1 +/* 01B080 7001A480 01787023 */ subu $t6, $t3, $t8 +/* 01B084 7001A484 01CF1823 */ subu $v1, $t6, $t7 +/* 01B088 7001A488 04610002 */ bgez $v1, .L7001A494 +/* 01B08C 7001A48C 001E2900 */ sll $a1, $fp, 4 +/* 01B090 7001A490 00001825 */ move $v1, $zero +.L7001A494: +/* 01B094 7001A494 0061001A */ div $zero, $v1, $at +/* 01B098 7001A498 00001012 */ mflo $v0 +/* 01B09C 7001A49C 00022100 */ sll $a0, $v0, 4 +/* 01B0A0 7001A4A0 00A66021 */ addu $t4, $a1, $a2 +/* 01B0A4 7001A4A4 0184082A */ slt $at, $t4, $a0 +/* 01B0A8 7001A4A8 10200002 */ beqz $at, .L7001A4B4 +/* 01B0AC 7001A4AC 01408025 */ move $s0, $t2 +/* 01B0B0 7001A4B0 01802025 */ move $a0, $t4 +.L7001A4B4: +/* 01B0B4 7001A4B4 3098000F */ andi $t8, $a0, 0xf +/* 01B0B8 7001A4B8 00987023 */ subu $t6, $a0, $t8 +/* 01B0BC 7001A4BC 01C8082A */ slt $at, $t6, $t0 +/* 01B0C0 7001A4C0 1020002B */ beqz $at, .L7001A570 +/* 01B0C4 7001A4C4 01233023 */ subu $a2, $t1, $v1 +/* 01B0C8 7001A4C8 84F50000 */ lh $s5, ($a3) +/* 01B0CC 7001A4CC 8EF40040 */ lw $s4, 0x40($s7) +/* 01B0D0 7001A4D0 240D0001 */ li $t5, 1 +/* 01B0D4 7001A4D4 AFAD007C */ sw $t5, 0x7c($sp) +/* 01B0D8 7001A4D8 AFAC0050 */ sw $t4, 0x50($sp) +/* 01B0DC 7001A4DC AFA9005C */ sw $t1, 0x5c($sp) +/* 01B0E0 7001A4E0 AFA800B8 */ sw $t0, 0xb8($sp) +/* 01B0E4 7001A4E4 AFA700B4 */ sw $a3, 0xb4($sp) +/* 01B0E8 7001A4E8 AFA40090 */ sw $a0, 0x90($sp) +/* 01B0EC 7001A4EC 02E09025 */ move $s2, $s7 +/* 01B0F0 7001A4F0 00A4B023 */ subu $s6, $a1, $a0 +/* 01B0F4 7001A4F4 00C08825 */ move $s1, $a2 +/* 01B0F8 7001A4F8 0C00680C */ jal ultra_7001A030 +/* 01B0FC 7001A4FC 00009825 */ move $s3, $zero +/* 01B100 7001A500 8EE3003C */ lw $v1, 0x3c($s7) +/* 01B104 7001A504 8FA40090 */ lw $a0, 0x90($sp) +/* 01B108 7001A508 8FA700B4 */ lw $a3, 0xb4($sp) +/* 01B10C 7001A50C 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01B110 7001A510 8FA9005C */ lw $t1, 0x5c($sp) +/* 01B114 7001A514 8FAC0050 */ lw $t4, 0x50($sp) +/* 01B118 7001A518 8FAD007C */ lw $t5, 0x7c($sp) +/* 01B11C 7001A51C 10600006 */ beqz $v1, .L7001A538 +/* 01B120 7001A520 00405025 */ move $t2, $v0 +/* 01B124 7001A524 84EF0000 */ lh $t7, ($a3) +/* 01B128 7001A528 0003C840 */ sll $t9, $v1, 1 +/* 01B12C 7001A52C 01F9C021 */ addu $t8, $t7, $t9 +/* 01B130 7001A530 10000004 */ b .L7001A544 +/* 01B134 7001A534 A4F80000 */ sh $t8, ($a3) +.L7001A538: +/* 01B138 7001A538 84EE0000 */ lh $t6, ($a3) +/* 01B13C 7001A53C 25CF0020 */ addiu $t7, $t6, 0x20 +/* 01B140 7001A540 A4EF0000 */ sh $t7, ($a3) +.L7001A544: +/* 01B144 7001A544 8EF9003C */ lw $t9, 0x3c($s7) +/* 01B148 7001A548 8EEF0038 */ lw $t7, 0x38($s7) +/* 01B14C 7001A54C 0328C021 */ addu $t8, $t9, $t0 +/* 01B150 7001A550 330E000F */ andi $t6, $t8, 0xf +/* 01B154 7001A554 8EF80044 */ lw $t8, 0x44($s7) +/* 01B158 7001A558 AEEE003C */ sw $t6, 0x3c($s7) +/* 01B15C 7001A55C 01E8C821 */ addu $t9, $t7, $t0 +/* 01B160 7001A560 03097021 */ addu $t6, $t8, $t1 +/* 01B164 7001A564 AEF90038 */ sw $t9, 0x38($s7) +/* 01B168 7001A568 10000003 */ b .L7001A578 +/* 01B16C 7001A56C AEEE0044 */ sw $t6, 0x44($s7) +.L7001A570: +/* 01B170 7001A570 AEE0003C */ sw $zero, 0x3c($s7) +/* 01B174 7001A574 AEEB0044 */ sw $t3, 0x44($s7) +.L7001A578: +/* 01B178 7001A578 10800013 */ beqz $a0, .L7001A5C8 +/* 01B17C 7001A57C 01401025 */ move $v0, $t2 +/* 01B180 7001A580 11A00005 */ beqz $t5, .L7001A598 +/* 01B184 7001A584 AEE0003C */ sw $zero, 0x3c($s7) +/* 01B188 7001A588 01841823 */ subu $v1, $t4, $a0 +/* 01B18C 7001A58C 00037840 */ sll $t7, $v1, 1 +/* 01B190 7001A590 10000002 */ b .L7001A59C +/* 01B194 7001A594 01E01825 */ move $v1, $t7 +.L7001A598: +/* 01B198 7001A598 00001825 */ move $v1, $zero +.L7001A59C: +/* 01B19C 7001A59C 84F90000 */ lh $t9, ($a3) +/* 01B1A0 7001A5A0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01B1A4 7001A5A4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01B1A8 7001A5A8 0323C021 */ addu $t8, $t9, $v1 +/* 01B1AC 7001A5AC 03017024 */ and $t6, $t8, $at +/* 01B1B0 7001A5B0 3C010200 */ lui $at, 0x200 +/* 01B1B4 7001A5B4 01C17825 */ or $t7, $t6, $at +/* 01B1B8 7001A5B8 0004C840 */ sll $t9, $a0, 1 +/* 01B1BC 7001A5BC AC590004 */ sw $t9, 4($v0) +/* 01B1C0 7001A5C0 AC4F0000 */ sw $t7, ($v0) +/* 01B1C4 7001A5C4 254A0008 */ addiu $t2, $t2, 8 +.L7001A5C8: +/* 01B1C8 7001A5C8 01401025 */ move $v0, $t2 +.L7001A5CC: +/* 01B1CC 7001A5CC 8FBF004C */ lw $ra, 0x4c($sp) +/* 01B1D0 7001A5D0 8FB00028 */ lw $s0, 0x28($sp) +/* 01B1D4 7001A5D4 8FB1002C */ lw $s1, 0x2c($sp) +/* 01B1D8 7001A5D8 8FB20030 */ lw $s2, 0x30($sp) +/* 01B1DC 7001A5DC 8FB30034 */ lw $s3, 0x34($sp) +/* 01B1E0 7001A5E0 8FB40038 */ lw $s4, 0x38($sp) +/* 01B1E4 7001A5E4 8FB5003C */ lw $s5, 0x3c($sp) +/* 01B1E8 7001A5E8 8FB60040 */ lw $s6, 0x40($sp) +/* 01B1EC 7001A5EC 8FB70044 */ lw $s7, 0x44($sp) +/* 01B1F0 7001A5F0 8FBE0048 */ lw $fp, 0x48($sp) +/* 01B1F4 7001A5F4 03E00008 */ jr $ra +/* 01B1F8 7001A5F8 27BD00B0 */ addiu $sp, $sp, 0xb0 + diff --git a/src/libultra/lookat.s b/src/libultra/lookat.s new file mode 100644 index 0000000..a4a1220 --- /dev/null +++ b/src/libultra/lookat.s @@ -0,0 +1,220 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guLookAtF +/* 017FF0 700173F0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 017FF4 700173F4 AFBF004C */ sw $ra, 0x4c($sp) +/* 017FF8 700173F8 AFB00048 */ sw $s0, 0x48($sp) +/* 017FFC 700173FC 00808025 */ move $s0, $a0 +/* 018000 70017400 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 018004 70017404 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 018008 70017408 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 01800C 7001740C F7B80028 */ sdc1 $f24, 0x28($sp) +/* 018010 70017410 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 018014 70017414 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 018018 70017418 AFA50054 */ sw $a1, 0x54($sp) +/* 01801C 7001741C AFA60058 */ sw $a2, 0x58($sp) +/* 018020 70017420 0C004004 */ jal guMtxIdentF +/* 018024 70017424 AFA7005C */ sw $a3, 0x5c($sp) +/* 018028 70017428 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 01802C 7001742C C7A60054 */ lwc1 $f6, 0x54($sp) +/* 018030 70017430 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 018034 70017434 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 018038 70017438 46062001 */ sub.s $f0, $f4, $f6 +/* 01803C 7001743C C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 018040 70017440 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 018044 70017444 460A4581 */ sub.s $f22, $f8, $f10 +/* 018048 70017448 46000202 */ mul.s $f8, $f0, $f0 +/* 01804C 7001744C 46000506 */ mov.s $f20, $f0 +/* 018050 70017450 46062601 */ sub.s $f24, $f4, $f6 +/* 018054 70017454 4616B282 */ mul.s $f10, $f22, $f22 +/* 018058 70017458 460A4100 */ add.s $f4, $f8, $f10 +/* 01805C 7001745C 4618C182 */ mul.s $f6, $f24, $f24 +/* 018060 70017460 0C007DF8 */ jal sqrtf +/* 018064 70017464 46062300 */ add.s $f12, $f4, $f6 +/* 018068 70017468 3C01BFF0 */ li $at, 0xBFF00000 # -1.875000 +/* 01806C 7001746C 44814800 */ mtc1 $at, $f9 +/* 018070 70017470 44804000 */ mtc1 $zero, $f8 +/* 018074 70017474 460002A1 */ cvt.d.s $f10, $f0 +/* 018078 70017478 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 01807C 7001747C 462A4103 */ div.d $f4, $f8, $f10 +/* 018080 70017480 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 018084 70017484 462020A0 */ cvt.s.d $f2, $f4 +/* 018088 70017488 4602A502 */ mul.s $f20, $f20, $f2 +/* 01808C 7001748C 00000000 */ nop +/* 018090 70017490 4602B582 */ mul.s $f22, $f22, $f2 +/* 018094 70017494 00000000 */ nop +/* 018098 70017498 4602C602 */ mul.s $f24, $f24, $f2 +/* 01809C 7001749C 00000000 */ nop +/* 0180A0 700174A0 46183202 */ mul.s $f8, $f6, $f24 +/* 0180A4 700174A4 00000000 */ nop +/* 0180A8 700174A8 46165102 */ mul.s $f4, $f10, $f22 +/* 0180AC 700174AC 46044681 */ sub.s $f26, $f8, $f4 +/* 0180B0 700174B0 46145202 */ mul.s $f8, $f10, $f20 +/* 0180B4 700174B4 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0180B8 700174B8 46182282 */ mul.s $f10, $f4, $f24 +/* 0180BC 700174BC 460A4701 */ sub.s $f28, $f8, $f10 +/* 0180C0 700174C0 46162202 */ mul.s $f8, $f4, $f22 +/* 0180C4 700174C4 00000000 */ nop +/* 0180C8 700174C8 46143282 */ mul.s $f10, $f6, $f20 +/* 0180CC 700174CC 460A4781 */ sub.s $f30, $f8, $f10 +/* 0180D0 700174D0 461AD102 */ mul.s $f4, $f26, $f26 +/* 0180D4 700174D4 00000000 */ nop +/* 0180D8 700174D8 461CE182 */ mul.s $f6, $f28, $f28 +/* 0180DC 700174DC 46062200 */ add.s $f8, $f4, $f6 +/* 0180E0 700174E0 461EF282 */ mul.s $f10, $f30, $f30 +/* 0180E4 700174E4 0C007DF8 */ jal sqrtf +/* 0180E8 700174E8 460A4300 */ add.s $f12, $f8, $f10 +/* 0180EC 700174EC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0180F0 700174F0 44812800 */ mtc1 $at, $f5 +/* 0180F4 700174F4 44802000 */ mtc1 $zero, $f4 +/* 0180F8 700174F8 460001A1 */ cvt.d.s $f6, $f0 +/* 0180FC 700174FC 46262203 */ div.d $f8, $f4, $f6 +/* 018100 70017500 462040A0 */ cvt.s.d $f2, $f8 +/* 018104 70017504 4602D682 */ mul.s $f26, $f26, $f2 +/* 018108 70017508 00000000 */ nop +/* 01810C 7001750C 4602E702 */ mul.s $f28, $f28, $f2 +/* 018110 70017510 00000000 */ nop +/* 018114 70017514 4602F782 */ mul.s $f30, $f30, $f2 +/* 018118 70017518 00000000 */ nop +/* 01811C 7001751C 461EB282 */ mul.s $f10, $f22, $f30 +/* 018120 70017520 00000000 */ nop +/* 018124 70017524 461CC102 */ mul.s $f4, $f24, $f28 +/* 018128 70017528 00000000 */ nop +/* 01812C 7001752C 461AC182 */ mul.s $f6, $f24, $f26 +/* 018130 70017530 00000000 */ nop +/* 018134 70017534 461EA202 */ mul.s $f8, $f20, $f30 +/* 018138 70017538 46045381 */ sub.s $f14, $f10, $f4 +/* 01813C 7001753C 461CA282 */ mul.s $f10, $f20, $f28 +/* 018140 70017540 00000000 */ nop +/* 018144 70017544 461AB102 */ mul.s $f4, $f22, $f26 +/* 018148 70017548 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 01814C 7001754C 46083401 */ sub.s $f16, $f6, $f8 +/* 018150 70017550 460E7182 */ mul.s $f6, $f14, $f14 +/* 018154 70017554 00000000 */ nop +/* 018158 70017558 46108202 */ mul.s $f8, $f16, $f16 +/* 01815C 7001755C E7B00070 */ swc1 $f16, 0x70($sp) +/* 018160 70017560 46045481 */ sub.s $f18, $f10, $f4 +/* 018164 70017564 46129102 */ mul.s $f4, $f18, $f18 +/* 018168 70017568 46083280 */ add.s $f10, $f6, $f8 +/* 01816C 7001756C E7B20074 */ swc1 $f18, 0x74($sp) +/* 018170 70017570 0C007DF8 */ jal sqrtf +/* 018174 70017574 46045300 */ add.s $f12, $f10, $f4 +/* 018178 70017578 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 01817C 7001757C 44813800 */ mtc1 $at, $f7 +/* 018180 70017580 44803000 */ mtc1 $zero, $f6 +/* 018184 70017584 46000221 */ cvt.d.s $f8, $f0 +/* 018188 70017588 C7AE006C */ lwc1 $f14, 0x6c($sp) +/* 01818C 7001758C 46283283 */ div.d $f10, $f6, $f8 +/* 018190 70017590 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 018194 70017594 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 018198 70017598 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01819C 7001759C 462050A0 */ cvt.s.d $f2, $f10 +/* 0181A0 700175A0 46027382 */ mul.s $f14, $f14, $f2 +/* 0181A4 700175A4 00000000 */ nop +/* 0181A8 700175A8 46026302 */ mul.s $f12, $f12, $f2 +/* 0181AC 700175AC 00000000 */ nop +/* 0181B0 700175B0 46022182 */ mul.s $f6, $f4, $f2 +/* 0181B4 700175B4 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0181B8 700175B8 E61A0000 */ swc1 $f26, ($s0) +/* 0181BC 700175BC E61C0010 */ swc1 $f28, 0x10($s0) +/* 0181C0 700175C0 E61E0020 */ swc1 $f30, 0x20($s0) +/* 0181C4 700175C4 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0181C8 700175C8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0181CC 700175CC 461A4282 */ mul.s $f10, $f8, $f26 +/* 0181D0 700175D0 00000000 */ nop +/* 0181D4 700175D4 461C2182 */ mul.s $f6, $f4, $f28 +/* 0181D8 700175D8 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0181DC 700175DC E60E0004 */ swc1 $f14, 4($s0) +/* 0181E0 700175E0 E60C0014 */ swc1 $f12, 0x14($s0) +/* 0181E4 700175E4 46065200 */ add.s $f8, $f10, $f6 +/* 0181E8 700175E8 461E2282 */ mul.s $f10, $f4, $f30 +/* 0181EC 700175EC 460A4180 */ add.s $f6, $f8, $f10 +/* 0181F0 700175F0 46003107 */ neg.s $f4, $f6 +/* 0181F4 700175F4 E6040030 */ swc1 $f4, 0x30($s0) +/* 0181F8 700175F8 C7A00074 */ lwc1 $f0, 0x74($sp) +/* 0181FC 700175FC E7AC0070 */ swc1 $f12, 0x70($sp) +/* 018200 70017600 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 018204 70017604 C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 018208 70017608 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 01820C 7001760C C7A2005C */ lwc1 $f2, 0x5c($sp) +/* 018210 70017610 E6000024 */ swc1 $f0, 0x24($s0) +/* 018214 70017614 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 018218 70017618 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 01821C 7001761C E6140008 */ swc1 $f20, 8($s0) +/* 018220 70017620 46087282 */ mul.s $f10, $f14, $f8 +/* 018224 70017624 E6160018 */ swc1 $f22, 0x18($s0) +/* 018228 70017628 E6180028 */ swc1 $f24, 0x28($s0) +/* 01822C 7001762C 46066102 */ mul.s $f4, $f12, $f6 +/* 018230 70017630 46045200 */ add.s $f8, $f10, $f4 +/* 018234 70017634 46001182 */ mul.s $f6, $f2, $f0 +/* 018238 70017638 44800000 */ mtc1 $zero, $f0 +/* 01823C 7001763C 00000000 */ nop +/* 018240 70017640 E600000C */ swc1 $f0, 0xc($s0) +/* 018244 70017644 E600001C */ swc1 $f0, 0x1c($s0) +/* 018248 70017648 E600002C */ swc1 $f0, 0x2c($s0) +/* 01824C 7001764C 46064280 */ add.s $f10, $f8, $f6 +/* 018250 70017650 46147202 */ mul.s $f8, $f14, $f20 +/* 018254 70017654 00000000 */ nop +/* 018258 70017658 46166182 */ mul.s $f6, $f12, $f22 +/* 01825C 7001765C 46005107 */ neg.s $f4, $f10 +/* 018260 70017660 E6040034 */ swc1 $f4, 0x34($s0) +/* 018264 70017664 46181102 */ mul.s $f4, $f2, $f24 +/* 018268 70017668 46064280 */ add.s $f10, $f8, $f6 +/* 01826C 7001766C 46045200 */ add.s $f8, $f10, $f4 +/* 018270 70017670 44815000 */ mtc1 $at, $f10 +/* 018274 70017674 46004187 */ neg.s $f6, $f8 +/* 018278 70017678 E60A003C */ swc1 $f10, 0x3c($s0) +/* 01827C 7001767C E6060038 */ swc1 $f6, 0x38($s0) +/* 018280 70017680 8FBF004C */ lw $ra, 0x4c($sp) +/* 018284 70017684 8FB00048 */ lw $s0, 0x48($sp) +/* 018288 70017688 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 01828C 7001768C D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 018290 70017690 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 018294 70017694 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 018298 70017698 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 01829C 7001769C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0182A0 700176A0 03E00008 */ jr $ra +/* 0182A4 700176A4 27BD0050 */ addiu $sp, $sp, 0x50 + +glabel guLookAt +/* 0182A8 700176A8 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0182AC 700176AC C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0182B0 700176B0 44856000 */ mtc1 $a1, $f12 +/* 0182B4 700176B4 44867000 */ mtc1 $a2, $f14 +/* 0182B8 700176B8 44878000 */ mtc1 $a3, $f16 +/* 0182BC 700176BC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0182C0 700176C0 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0182C4 700176C4 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0182C8 700176C8 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0182CC 700176CC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0182D0 700176D0 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0182D4 700176D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0182D8 700176D8 AFA40070 */ sw $a0, 0x70($sp) +/* 0182DC 700176DC 44056000 */ mfc1 $a1, $f12 +/* 0182E0 700176E0 44067000 */ mfc1 $a2, $f14 +/* 0182E4 700176E4 44078000 */ mfc1 $a3, $f16 +/* 0182E8 700176E8 27A40030 */ addiu $a0, $sp, 0x30 +/* 0182EC 700176EC E7A40024 */ swc1 $f4, 0x24($sp) +/* 0182F0 700176F0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0182F4 700176F4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0182F8 700176F8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0182FC 700176FC 0C005CFC */ jal guLookAtF +/* 018300 70017700 E7B20020 */ swc1 $f18, 0x20($sp) +/* 018304 70017704 27A40030 */ addiu $a0, $sp, 0x30 +/* 018308 70017708 0C003FC4 */ jal guMtxF2L +/* 01830C 7001770C 8FA50070 */ lw $a1, 0x70($sp) +/* 018310 70017710 8FBF002C */ lw $ra, 0x2c($sp) +/* 018314 70017714 27BD0070 */ addiu $sp, $sp, 0x70 +/* 018318 70017718 03E00008 */ jr $ra +/* 01831C 7001771C 00000000 */ nop diff --git a/src/libultra/lookatref.s b/src/libultra/lookatref.s new file mode 100644 index 0000000..1d0cc6c --- /dev/null +++ b/src/libultra/lookatref.s @@ -0,0 +1,331 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guLookAtReflectF +/* 017B30 70016F30 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 017B34 70016F34 AFBF0044 */ sw $ra, 0x44($sp) +/* 017B38 70016F38 F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 017B3C 70016F3C F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 017B40 70016F40 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 017B44 70016F44 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 017B48 70016F48 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 017B4C 70016F4C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 017B50 70016F50 AFA60050 */ sw $a2, 0x50($sp) +/* 017B54 70016F54 AFA70054 */ sw $a3, 0x54($sp) +/* 017B58 70016F58 AFA40048 */ sw $a0, 0x48($sp) +/* 017B5C 70016F5C 0C004004 */ jal guMtxIdentF +/* 017B60 70016F60 AFA5004C */ sw $a1, 0x4c($sp) +/* 017B64 70016F64 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 017B68 70016F68 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 017B6C 70016F6C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 017B70 70016F70 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 017B74 70016F74 46062001 */ sub.s $f0, $f4, $f6 +/* 017B78 70016F78 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 017B7C 70016F7C C7A40064 */ lwc1 $f4, 0x64($sp) +/* 017B80 70016F80 460A4581 */ sub.s $f22, $f8, $f10 +/* 017B84 70016F84 46000202 */ mul.s $f8, $f0, $f0 +/* 017B88 70016F88 46000506 */ mov.s $f20, $f0 +/* 017B8C 70016F8C 46062601 */ sub.s $f24, $f4, $f6 +/* 017B90 70016F90 4616B282 */ mul.s $f10, $f22, $f22 +/* 017B94 70016F94 460A4100 */ add.s $f4, $f8, $f10 +/* 017B98 70016F98 4618C182 */ mul.s $f6, $f24, $f24 +/* 017B9C 70016F9C 0C007DF8 */ jal sqrtf +/* 017BA0 70016FA0 46062300 */ add.s $f12, $f4, $f6 +/* 017BA4 70016FA4 3C01BFF0 */ li $at, 0xBFF00000 # -1.875000 +/* 017BA8 70016FA8 44814800 */ mtc1 $at, $f9 +/* 017BAC 70016FAC 44804000 */ mtc1 $zero, $f8 +/* 017BB0 70016FB0 460002A1 */ cvt.d.s $f10, $f0 +/* 017BB4 70016FB4 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 017BB8 70016FB8 462A4103 */ div.d $f4, $f8, $f10 +/* 017BBC 70016FBC C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 017BC0 70016FC0 462020A0 */ cvt.s.d $f2, $f4 +/* 017BC4 70016FC4 4602A502 */ mul.s $f20, $f20, $f2 +/* 017BC8 70016FC8 00000000 */ nop +/* 017BCC 70016FCC 4602B582 */ mul.s $f22, $f22, $f2 +/* 017BD0 70016FD0 00000000 */ nop +/* 017BD4 70016FD4 4602C602 */ mul.s $f24, $f24, $f2 +/* 017BD8 70016FD8 00000000 */ nop +/* 017BDC 70016FDC 46183202 */ mul.s $f8, $f6, $f24 +/* 017BE0 70016FE0 00000000 */ nop +/* 017BE4 70016FE4 46165102 */ mul.s $f4, $f10, $f22 +/* 017BE8 70016FE8 46044681 */ sub.s $f26, $f8, $f4 +/* 017BEC 70016FEC 46145202 */ mul.s $f8, $f10, $f20 +/* 017BF0 70016FF0 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017BF4 70016FF4 46182282 */ mul.s $f10, $f4, $f24 +/* 017BF8 70016FF8 460A4701 */ sub.s $f28, $f8, $f10 +/* 017BFC 70016FFC 46162202 */ mul.s $f8, $f4, $f22 +/* 017C00 70017000 00000000 */ nop +/* 017C04 70017004 46143282 */ mul.s $f10, $f6, $f20 +/* 017C08 70017008 460A4781 */ sub.s $f30, $f8, $f10 +/* 017C0C 7001700C 461AD102 */ mul.s $f4, $f26, $f26 +/* 017C10 70017010 00000000 */ nop +/* 017C14 70017014 461CE182 */ mul.s $f6, $f28, $f28 +/* 017C18 70017018 46062200 */ add.s $f8, $f4, $f6 +/* 017C1C 7001701C 461EF282 */ mul.s $f10, $f30, $f30 +/* 017C20 70017020 0C007DF8 */ jal sqrtf +/* 017C24 70017024 460A4300 */ add.s $f12, $f8, $f10 +/* 017C28 70017028 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 017C2C 7001702C 44812800 */ mtc1 $at, $f5 +/* 017C30 70017030 44802000 */ mtc1 $zero, $f4 +/* 017C34 70017034 460001A1 */ cvt.d.s $f6, $f0 +/* 017C38 70017038 46262203 */ div.d $f8, $f4, $f6 +/* 017C3C 7001703C 462043A0 */ cvt.s.d $f14, $f8 +/* 017C40 70017040 460ED682 */ mul.s $f26, $f26, $f14 +/* 017C44 70017044 00000000 */ nop +/* 017C48 70017048 460EE702 */ mul.s $f28, $f28, $f14 +/* 017C4C 7001704C 00000000 */ nop +/* 017C50 70017050 460EF782 */ mul.s $f30, $f30, $f14 +/* 017C54 70017054 00000000 */ nop +/* 017C58 70017058 461EB282 */ mul.s $f10, $f22, $f30 +/* 017C5C 7001705C 00000000 */ nop +/* 017C60 70017060 461CC102 */ mul.s $f4, $f24, $f28 +/* 017C64 70017064 00000000 */ nop +/* 017C68 70017068 461AC182 */ mul.s $f6, $f24, $f26 +/* 017C6C 7001706C 00000000 */ nop +/* 017C70 70017070 461EA202 */ mul.s $f8, $f20, $f30 +/* 017C74 70017074 46045081 */ sub.s $f2, $f10, $f4 +/* 017C78 70017078 461CA282 */ mul.s $f10, $f20, $f28 +/* 017C7C 7001707C 00000000 */ nop +/* 017C80 70017080 461AB102 */ mul.s $f4, $f22, $f26 +/* 017C84 70017084 E7A20068 */ swc1 $f2, 0x68($sp) +/* 017C88 70017088 46083401 */ sub.s $f16, $f6, $f8 +/* 017C8C 7001708C 46021182 */ mul.s $f6, $f2, $f2 +/* 017C90 70017090 00000000 */ nop +/* 017C94 70017094 46108202 */ mul.s $f8, $f16, $f16 +/* 017C98 70017098 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 017C9C 7001709C 46045481 */ sub.s $f18, $f10, $f4 +/* 017CA0 700170A0 46129102 */ mul.s $f4, $f18, $f18 +/* 017CA4 700170A4 46083280 */ add.s $f10, $f6, $f8 +/* 017CA8 700170A8 E7B20070 */ swc1 $f18, 0x70($sp) +/* 017CAC 700170AC 0C007DF8 */ jal sqrtf +/* 017CB0 700170B0 46045300 */ add.s $f12, $f10, $f4 +/* 017CB4 700170B4 3C018003 */ lui $at, %hi(F64_80029800) # 0x8003 +/* 017CB8 700170B8 D4229800 */ ldc1 $f2, %lo(F64_80029800)($at) # -0x6800 +/* 017CBC 700170BC 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 017CC0 700170C0 44818800 */ mtc1 $at, $f17 +/* 017CC4 700170C4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 017CC8 700170C8 44813800 */ mtc1 $at, $f7 +/* 017CCC 700170CC 44803000 */ mtc1 $zero, $f6 +/* 017CD0 700170D0 46000221 */ cvt.d.s $f8, $f0 +/* 017CD4 700170D4 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017CD8 700170D8 46283283 */ div.d $f10, $f6, $f8 +/* 017CDC 700170DC C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 017CE0 700170E0 44808000 */ mtc1 $zero, $f16 +/* 017CE4 700170E4 8FA40048 */ lw $a0, 0x48($sp) +/* 017CE8 700170E8 8FA5004C */ lw $a1, 0x4c($sp) +/* 017CEC 700170EC 24020080 */ li $v0, 128 +/* 017CF0 700170F0 462053A0 */ cvt.s.d $f14, $f10 +/* 017CF4 700170F4 460E2182 */ mul.s $f6, $f4, $f14 +/* 017CF8 700170F8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 017CFC 700170FC 460E4282 */ mul.s $f10, $f8, $f14 +/* 017D00 70017100 4600D221 */ cvt.d.s $f8, $f26 +/* 017D04 70017104 E7A60068 */ swc1 $f6, 0x68($sp) +/* 017D08 70017108 460E2182 */ mul.s $f6, $f4, $f14 +/* 017D0C 7001710C E7AA006C */ swc1 $f10, 0x6c($sp) +/* 017D10 70017110 46304302 */ mul.d $f12, $f8, $f16 +/* 017D14 70017114 E7A60070 */ swc1 $f6, 0x70($sp) +/* 017D18 70017118 4622603C */ c.lt.d $f12, $f2 +/* 017D1C 7001711C 00000000 */ nop +/* 017D20 70017120 45020004 */ bc1fl .L70017134 +/* 017D24 70017124 46201006 */ mov.d $f0, $f2 +/* 017D28 70017128 10000002 */ b .L70017134 +/* 017D2C 7001712C 46206006 */ mov.d $f0, $f12 +/* 017D30 70017130 46201006 */ mov.d $f0, $f2 +.L70017134: +/* 017D34 70017134 4600E121 */ cvt.d.s $f4, $f28 +/* 017D38 70017138 4620028D */ trunc.w.d $f10, $f0 +/* 017D3C 7001713C 46302302 */ mul.d $f12, $f4, $f16 +/* 017D40 70017140 44185000 */ mfc1 $t8, $f10 +/* 017D44 70017144 00000000 */ nop +/* 017D48 70017148 A0B80008 */ sb $t8, 8($a1) +/* 017D4C 7001714C 4622603C */ c.lt.d $f12, $f2 +/* 017D50 70017150 00000000 */ nop +/* 017D54 70017154 45020004 */ bc1fl .L70017168 +/* 017D58 70017158 46201006 */ mov.d $f0, $f2 +/* 017D5C 7001715C 10000002 */ b .L70017168 +/* 017D60 70017160 46206006 */ mov.d $f0, $f12 +/* 017D64 70017164 46201006 */ mov.d $f0, $f2 +.L70017168: +/* 017D68 70017168 4600F221 */ cvt.d.s $f8, $f30 +/* 017D6C 7001716C 4620018D */ trunc.w.d $f6, $f0 +/* 017D70 70017170 46304302 */ mul.d $f12, $f8, $f16 +/* 017D74 70017174 44093000 */ mfc1 $t1, $f6 +/* 017D78 70017178 00000000 */ nop +/* 017D7C 7001717C A0A90009 */ sb $t1, 9($a1) +/* 017D80 70017180 4622603C */ c.lt.d $f12, $f2 +/* 017D84 70017184 00000000 */ nop +/* 017D88 70017188 45020004 */ bc1fl .L7001719C +/* 017D8C 7001718C 46201006 */ mov.d $f0, $f2 +/* 017D90 70017190 10000002 */ b .L7001719C +/* 017D94 70017194 46206006 */ mov.d $f0, $f12 +/* 017D98 70017198 46201006 */ mov.d $f0, $f2 +.L7001719C: +/* 017D9C 7001719C 4620028D */ trunc.w.d $f10, $f0 +/* 017DA0 700171A0 440C5000 */ mfc1 $t4, $f10 +/* 017DA4 700171A4 00000000 */ nop +/* 017DA8 700171A8 A0AC000A */ sb $t4, 0xa($a1) +/* 017DAC 700171AC C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017DB0 700171B0 460021A1 */ cvt.d.s $f6, $f4 +/* 017DB4 700171B4 46303302 */ mul.d $f12, $f6, $f16 +/* 017DB8 700171B8 4622603C */ c.lt.d $f12, $f2 +/* 017DBC 700171BC 00000000 */ nop +/* 017DC0 700171C0 45020004 */ bc1fl .L700171D4 +/* 017DC4 700171C4 46201006 */ mov.d $f0, $f2 +/* 017DC8 700171C8 10000002 */ b .L700171D4 +/* 017DCC 700171CC 46206006 */ mov.d $f0, $f12 +/* 017DD0 700171D0 46201006 */ mov.d $f0, $f2 +.L700171D4: +/* 017DD4 700171D4 4620020D */ trunc.w.d $f8, $f0 +/* 017DD8 700171D8 440F4000 */ mfc1 $t7, $f8 +/* 017DDC 700171DC 00000000 */ nop +/* 017DE0 700171E0 A0AF0018 */ sb $t7, 0x18($a1) +/* 017DE4 700171E4 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 017DE8 700171E8 46005121 */ cvt.d.s $f4, $f10 +/* 017DEC 700171EC 46302302 */ mul.d $f12, $f4, $f16 +/* 017DF0 700171F0 4622603C */ c.lt.d $f12, $f2 +/* 017DF4 700171F4 00000000 */ nop +/* 017DF8 700171F8 45020004 */ bc1fl .L7001720C +/* 017DFC 700171FC 46201006 */ mov.d $f0, $f2 +/* 017E00 70017200 10000002 */ b .L7001720C +/* 017E04 70017204 46206006 */ mov.d $f0, $f12 +/* 017E08 70017208 46201006 */ mov.d $f0, $f2 +.L7001720C: +/* 017E0C 7001720C 4620018D */ trunc.w.d $f6, $f0 +/* 017E10 70017210 44083000 */ mfc1 $t0, $f6 +/* 017E14 70017214 00000000 */ nop +/* 017E18 70017218 A0A80019 */ sb $t0, 0x19($a1) +/* 017E1C 7001721C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 017E20 70017220 460042A1 */ cvt.d.s $f10, $f8 +/* 017E24 70017224 46305302 */ mul.d $f12, $f10, $f16 +/* 017E28 70017228 4622603C */ c.lt.d $f12, $f2 +/* 017E2C 7001722C 00000000 */ nop +/* 017E30 70017230 45020004 */ bc1fl .L70017244 +/* 017E34 70017234 46201006 */ mov.d $f0, $f2 +/* 017E38 70017238 10000002 */ b .L70017244 +/* 017E3C 7001723C 46206006 */ mov.d $f0, $f12 +/* 017E40 70017240 46201006 */ mov.d $f0, $f2 +.L70017244: +/* 017E44 70017244 4620010D */ trunc.w.d $f4, $f0 +/* 017E48 70017248 A0A00000 */ sb $zero, ($a1) +/* 017E4C 7001724C A0A00001 */ sb $zero, 1($a1) +/* 017E50 70017250 A0A00002 */ sb $zero, 2($a1) +/* 017E54 70017254 440B2000 */ mfc1 $t3, $f4 +/* 017E58 70017258 A0A00003 */ sb $zero, 3($a1) +/* 017E5C 7001725C A0A00004 */ sb $zero, 4($a1) +/* 017E60 70017260 A0A00005 */ sb $zero, 5($a1) +/* 017E64 70017264 A0A00006 */ sb $zero, 6($a1) +/* 017E68 70017268 A0A00007 */ sb $zero, 7($a1) +/* 017E6C 7001726C A0A00010 */ sb $zero, 0x10($a1) +/* 017E70 70017270 A0A20011 */ sb $v0, 0x11($a1) +/* 017E74 70017274 A0A00012 */ sb $zero, 0x12($a1) +/* 017E78 70017278 A0A00013 */ sb $zero, 0x13($a1) +/* 017E7C 7001727C A0A00014 */ sb $zero, 0x14($a1) +/* 017E80 70017280 A0A20015 */ sb $v0, 0x15($a1) +/* 017E84 70017284 A0A00016 */ sb $zero, 0x16($a1) +/* 017E88 70017288 A0A00017 */ sb $zero, 0x17($a1) +/* 017E8C 7001728C A0AB001A */ sb $t3, 0x1a($a1) +/* 017E90 70017290 E49A0000 */ swc1 $f26, ($a0) +/* 017E94 70017294 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 017E98 70017298 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 017E9C 7001729C C7AE0058 */ lwc1 $f14, 0x58($sp) +/* 017EA0 700172A0 461A9182 */ mul.s $f6, $f18, $f26 +/* 017EA4 700172A4 C7A00068 */ lwc1 $f0, 0x68($sp) +/* 017EA8 700172A8 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 017EAC 700172AC 461C8202 */ mul.s $f8, $f16, $f28 +/* 017EB0 700172B0 C7A20070 */ lwc1 $f2, 0x70($sp) +/* 017EB4 700172B4 E49C0010 */ swc1 $f28, 0x10($a0) +/* 017EB8 700172B8 461E7102 */ mul.s $f4, $f14, $f30 +/* 017EBC 700172BC E49E0020 */ swc1 $f30, 0x20($a0) +/* 017EC0 700172C0 E4940008 */ swc1 $f20, 8($a0) +/* 017EC4 700172C4 E4960018 */ swc1 $f22, 0x18($a0) +/* 017EC8 700172C8 E4980028 */ swc1 $f24, 0x28($a0) +/* 017ECC 700172CC 46083280 */ add.s $f10, $f6, $f8 +/* 017ED0 700172D0 E4800004 */ swc1 $f0, 4($a0) +/* 017ED4 700172D4 E48C0014 */ swc1 $f12, 0x14($a0) +/* 017ED8 700172D8 E4820024 */ swc1 $f2, 0x24($a0) +/* 017EDC 700172DC 46045180 */ add.s $f6, $f10, $f4 +/* 017EE0 700172E0 46009282 */ mul.s $f10, $f18, $f0 +/* 017EE4 700172E4 44800000 */ mtc1 $zero, $f0 +/* 017EE8 700172E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017EEC 700172EC 460C8102 */ mul.s $f4, $f16, $f12 +/* 017EF0 700172F0 46003207 */ neg.s $f8, $f6 +/* 017EF4 700172F4 E4880030 */ swc1 $f8, 0x30($a0) +/* 017EF8 700172F8 46027202 */ mul.s $f8, $f14, $f2 +/* 017EFC 700172FC 46045180 */ add.s $f6, $f10, $f4 +/* 017F00 70017300 46083280 */ add.s $f10, $f6, $f8 +/* 017F04 70017304 46005107 */ neg.s $f4, $f10 +/* 017F08 70017308 E4840034 */ swc1 $f4, 0x34($a0) +/* 017F0C 7001730C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 017F10 70017310 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 017F14 70017314 46143202 */ mul.s $f8, $f6, $f20 +/* 017F18 70017318 00000000 */ nop +/* 017F1C 7001731C 46165102 */ mul.s $f4, $f10, $f22 +/* 017F20 70017320 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 017F24 70017324 E480000C */ swc1 $f0, 0xc($a0) +/* 017F28 70017328 E480001C */ swc1 $f0, 0x1c($a0) +/* 017F2C 7001732C E480002C */ swc1 $f0, 0x2c($a0) +/* 017F30 70017330 46044180 */ add.s $f6, $f8, $f4 +/* 017F34 70017334 46185202 */ mul.s $f8, $f10, $f24 +/* 017F38 70017338 46083100 */ add.s $f4, $f6, $f8 +/* 017F3C 7001733C 44813000 */ mtc1 $at, $f6 +/* 017F40 70017340 46002287 */ neg.s $f10, $f4 +/* 017F44 70017344 E486003C */ swc1 $f6, 0x3c($a0) +/* 017F48 70017348 E48A0038 */ swc1 $f10, 0x38($a0) +/* 017F4C 7001734C 8FBF0044 */ lw $ra, 0x44($sp) +/* 017F50 70017350 D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 017F54 70017354 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 017F58 70017358 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 017F5C 7001735C D7B80020 */ ldc1 $f24, 0x20($sp) +/* 017F60 70017360 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 017F64 70017364 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 017F68 70017368 03E00008 */ jr $ra +/* 017F6C 7001736C 27BD0048 */ addiu $sp, $sp, 0x48 + +glabel guLookAtReflect +/* 017F70 70017370 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 017F74 70017374 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 017F78 70017378 44866000 */ mtc1 $a2, $f12 +/* 017F7C 7001737C 44877000 */ mtc1 $a3, $f14 +/* 017F80 70017380 E7A40010 */ swc1 $f4, 0x10($sp) +/* 017F84 70017384 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 017F88 70017388 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 017F8C 7001738C C7A80090 */ lwc1 $f8, 0x90($sp) +/* 017F90 70017390 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 017F94 70017394 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 017F98 70017398 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 017F9C 7001739C AFBF0034 */ sw $ra, 0x34($sp) +/* 017FA0 700173A0 AFA40078 */ sw $a0, 0x78($sp) +/* 017FA4 700173A4 44066000 */ mfc1 $a2, $f12 +/* 017FA8 700173A8 44077000 */ mfc1 $a3, $f14 +/* 017FAC 700173AC 27A40038 */ addiu $a0, $sp, 0x38 +/* 017FB0 700173B0 E7A40028 */ swc1 $f4, 0x28($sp) +/* 017FB4 700173B4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 017FB8 700173B8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 017FBC 700173BC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 017FC0 700173C0 E7B00020 */ swc1 $f16, 0x20($sp) +/* 017FC4 700173C4 0C005BCC */ jal guLookAtReflectF +/* 017FC8 700173C8 E7B20024 */ swc1 $f18, 0x24($sp) +/* 017FCC 700173CC 27A40038 */ addiu $a0, $sp, 0x38 +/* 017FD0 700173D0 0C003FC4 */ jal guMtxF2L +/* 017FD4 700173D4 8FA50078 */ lw $a1, 0x78($sp) +/* 017FD8 700173D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 017FDC 700173DC 27BD0078 */ addiu $sp, $sp, 0x78 +/* 017FE0 700173E0 03E00008 */ jr $ra +/* 017FE4 700173E4 00000000 */ nop + +.align 4 + +.section .rodata +glabel F64_80029800 +.double 127.0 +.align 4 diff --git a/src/libultra/mainbus.s b/src/libultra/mainbus.s new file mode 100644 index 0000000..767cc79 --- /dev/null +++ b/src/libultra/mainbus.s @@ -0,0 +1,103 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alMainBusParam +/* 01A560 70019960 24010002 */ li $at, 2 +/* 01A564 70019964 14A10008 */ bne $a1, $at, .L70019988 +/* 01A568 70019968 8C82001C */ lw $v0, 0x1c($a0) +/* 01A56C 7001996C 8C8E0014 */ lw $t6, 0x14($a0) +/* 01A570 70019970 000E7880 */ sll $t7, $t6, 2 +/* 01A574 70019974 004FC021 */ addu $t8, $v0, $t7 +/* 01A578 70019978 AF060000 */ sw $a2, ($t8) +/* 01A57C 7001997C 8C990014 */ lw $t9, 0x14($a0) +/* 01A580 70019980 27280001 */ addiu $t0, $t9, 1 +/* 01A584 70019984 AC880014 */ sw $t0, 0x14($a0) +.L70019988: +/* 01A588 70019988 03E00008 */ jr $ra +/* 01A58C 7001998C 00001025 */ move $v0, $zero + +glabel alMainBusPull +/* 01A590 70019990 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 01A594 70019994 8FA80058 */ lw $t0, 0x58($sp) +/* 01A598 70019998 AFBF0044 */ sw $ra, 0x44($sp) +/* 01A59C 7001999C AFBE0040 */ sw $fp, 0x40($sp) +/* 01A5A0 700199A0 AFB7003C */ sw $s7, 0x3c($sp) +/* 01A5A4 700199A4 AFB60038 */ sw $s6, 0x38($sp) +/* 01A5A8 700199A8 AFB50034 */ sw $s5, 0x34($sp) +/* 01A5AC 700199AC AFB40030 */ sw $s4, 0x30($sp) +/* 01A5B0 700199B0 AFB3002C */ sw $s3, 0x2c($sp) +/* 01A5B4 700199B4 AFB20028 */ sw $s2, 0x28($sp) +/* 01A5B8 700199B8 AFB10024 */ sw $s1, 0x24($sp) +/* 01A5BC 700199BC AFB00020 */ sw $s0, 0x20($sp) +/* 01A5C0 700199C0 8C83001C */ lw $v1, 0x1c($a0) +/* 01A5C4 700199C4 3C0E0200 */ lui $t6, (0x02000440 >> 16) # lui $t6, 0x200 +/* 01A5C8 700199C8 00061040 */ sll $v0, $a2, 1 +/* 01A5CC 700199CC 3C0F0200 */ lui $t7, (0x02000580 >> 16) # lui $t7, 0x200 +/* 01A5D0 700199D0 35CE0440 */ ori $t6, (0x02000440 & 0xFFFF) # ori $t6, $t6, 0x440 +/* 01A5D4 700199D4 35EF0580 */ ori $t7, (0x02000580 & 0xFFFF) # ori $t7, $t7, 0x580 +/* 01A5D8 700199D8 AD0E0000 */ sw $t6, ($t0) +/* 01A5DC 700199DC AD020004 */ sw $v0, 4($t0) +/* 01A5E0 700199E0 AD0F0008 */ sw $t7, 8($t0) +/* 01A5E4 700199E4 AD02000C */ sw $v0, 0xc($t0) +/* 01A5E8 700199E8 8C980014 */ lw $t8, 0x14($a0) +/* 01A5EC 700199EC 00C0A825 */ move $s5, $a2 +/* 01A5F0 700199F0 00A0B825 */ move $s7, $a1 +/* 01A5F4 700199F4 00E0F025 */ move $fp, $a3 +/* 01A5F8 700199F8 0080A025 */ move $s4, $a0 +/* 01A5FC 700199FC 00008025 */ move $s0, $zero +/* 01A600 70019A00 1B00001E */ blez $t8, .L70019A7C +/* 01A604 70019A04 25130010 */ addiu $s3, $t0, 0x10 +/* 01A608 70019A08 3C120C00 */ lui $s2, (0x0C007FFF >> 16) # lui $s2, 0xc00 +/* 01A60C 70019A0C 36527FFF */ ori $s2, (0x0C007FFF & 0xFFFF) # ori $s2, $s2, 0x7fff +/* 01A610 70019A10 00608825 */ move $s1, $v1 +/* 01A614 70019A14 3056FFFF */ andi $s6, $v0, 0xffff +.L70019A18: +/* 01A618 70019A18 8E240000 */ lw $a0, ($s1) +/* 01A61C 70019A1C AFB30010 */ sw $s3, 0x10($sp) +/* 01A620 70019A20 02E02825 */ move $a1, $s7 +/* 01A624 70019A24 8C990004 */ lw $t9, 4($a0) +/* 01A628 70019A28 02A03025 */ move $a2, $s5 +/* 01A62C 70019A2C 03C03825 */ move $a3, $fp +/* 01A630 70019A30 0320F809 */ jalr $t9 +/* 01A634 70019A34 00000000 */ nop +/* 01A638 70019A38 3C0A06C0 */ lui $t2, (0x06C00440 >> 16) # lui $t2, 0x6c0 +/* 01A63C 70019A3C 3C0B0800 */ lui $t3, (0x08000580 >> 16) # lui $t3, 0x800 +/* 01A640 70019A40 3C090800 */ lui $t1, 0x800 +/* 01A644 70019A44 354A0440 */ ori $t2, (0x06C00440 & 0xFFFF) # ori $t2, $t2, 0x440 +/* 01A648 70019A48 356B0580 */ ori $t3, (0x08000580 & 0xFFFF) # ori $t3, $t3, 0x580 +/* 01A64C 70019A4C AC490000 */ sw $t1, ($v0) +/* 01A650 70019A50 AC560004 */ sw $s6, 4($v0) +/* 01A654 70019A54 AC4A000C */ sw $t2, 0xc($v0) +/* 01A658 70019A58 AC520008 */ sw $s2, 8($v0) +/* 01A65C 70019A5C AC4B0014 */ sw $t3, 0x14($v0) +/* 01A660 70019A60 AC520010 */ sw $s2, 0x10($v0) +/* 01A664 70019A64 8E8C0014 */ lw $t4, 0x14($s4) +/* 01A668 70019A68 26100001 */ addiu $s0, $s0, 1 +/* 01A66C 70019A6C 26310004 */ addiu $s1, $s1, 4 +/* 01A670 70019A70 020C082A */ slt $at, $s0, $t4 +/* 01A674 70019A74 1420FFE8 */ bnez $at, .L70019A18 +/* 01A678 70019A78 24530018 */ addiu $s3, $v0, 0x18 +.L70019A7C: +/* 01A67C 70019A7C 8FBF0044 */ lw $ra, 0x44($sp) +/* 01A680 70019A80 02601025 */ move $v0, $s3 +/* 01A684 70019A84 8FB3002C */ lw $s3, 0x2c($sp) +/* 01A688 70019A88 8FB00020 */ lw $s0, 0x20($sp) +/* 01A68C 70019A8C 8FB10024 */ lw $s1, 0x24($sp) +/* 01A690 70019A90 8FB20028 */ lw $s2, 0x28($sp) +/* 01A694 70019A94 8FB40030 */ lw $s4, 0x30($sp) +/* 01A698 70019A98 8FB50034 */ lw $s5, 0x34($sp) +/* 01A69C 70019A9C 8FB60038 */ lw $s6, 0x38($sp) +/* 01A6A0 70019AA0 8FB7003C */ lw $s7, 0x3c($sp) +/* 01A6A4 70019AA4 8FBE0040 */ lw $fp, 0x40($sp) +/* 01A6A8 70019AA8 03E00008 */ jr $ra +/* 01A6AC 70019AAC 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/src/libultra/mtxutil.s b/src/libultra/mtxutil.s new file mode 100644 index 0000000..243c791 --- /dev/null +++ b/src/libultra/mtxutil.s @@ -0,0 +1,183 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel guMtxF2L +/* 010B10 7000FF10 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 010B14 7000FF14 44810000 */ mtc1 $at, $f0 +/* 010B18 7000FF18 00A01025 */ move $v0, $a1 +/* 010B1C 7000FF1C 24A30020 */ addiu $v1, $a1, 0x20 +/* 010B20 7000FF20 00003025 */ move $a2, $zero +/* 010B24 7000FF24 00803825 */ move $a3, $a0 +/* 010B28 7000FF28 240C0004 */ li $t4, 4 +/* 010B2C 7000FF2C 240B0002 */ li $t3, 2 +/* 010B30 7000FF30 3C0AFFFF */ lui $t2, 0xffff +.L7000FF34: +/* 010B34 7000FF34 00002025 */ move $a0, $zero +/* 010B38 7000FF38 00E04025 */ move $t0, $a3 +/* 010B3C 7000FF3C C50E0004 */ lwc1 $f14, 4($t0) +/* 010B40 7000FF40 24840001 */ addiu $a0, $a0, 1 +/* 010B44 7000FF44 C5120000 */ lwc1 $f18, ($t0) +/* 010B48 7000FF48 46007402 */ mul.s $f16, $f14, $f0 +/* 010B4C 7000FF4C 108B0019 */ beq $a0, $t3, .L7000FFB4 +/* 010B50 7000FF50 00000000 */ nop +.L7000FF54: +/* 010B54 7000FF54 46009382 */ mul.s $f14, $f18, $f0 +/* 010B58 7000FF58 24840001 */ addiu $a0, $a0, 1 +/* 010B5C 7000FF5C 24420004 */ addiu $v0, $v0, 4 +/* 010B60 7000FF60 24630004 */ addiu $v1, $v1, 4 +/* 010B64 7000FF64 25080008 */ addiu $t0, $t0, 8 +/* 010B68 7000FF68 4600830D */ trunc.w.s $f12, $f16 +/* 010B6C 7000FF6C 4600738D */ trunc.w.s $f14, $f14 +/* 010B70 7000FF70 44096000 */ mfc1 $t1, $f12 +/* 010B74 7000FF74 44057000 */ mfc1 $a1, $f14 +/* 010B78 7000FF78 0009CC03 */ sra $t9, $t1, 0x10 +/* 010B7C 7000FF7C 332DFFFF */ andi $t5, $t9, 0xffff +/* 010B80 7000FF80 00AAC024 */ and $t8, $a1, $t2 +/* 010B84 7000FF84 030D7025 */ or $t6, $t8, $t5 +/* 010B88 7000FF88 00057C00 */ sll $t7, $a1, 0x10 +/* 010B8C 7000FF8C 01EAC824 */ and $t9, $t7, $t2 +/* 010B90 7000FF90 AC4EFFFC */ sw $t6, -4($v0) +/* 010B94 7000FF94 3138FFFF */ andi $t8, $t1, 0xffff +/* 010B98 7000FF98 03386825 */ or $t5, $t9, $t8 +/* 010B9C 7000FF9C AC6DFFFC */ sw $t5, -4($v1) +/* 010BA0 7000FFA0 C50E0004 */ lwc1 $f14, 4($t0) +/* 010BA4 7000FFA4 C5120000 */ lwc1 $f18, ($t0) +/* 010BA8 7000FFA8 46007402 */ mul.s $f16, $f14, $f0 +/* 010BAC 7000FFAC 148BFFE9 */ bne $a0, $t3, .L7000FF54 +/* 010BB0 7000FFB0 00000000 */ nop +.L7000FFB4: +/* 010BB4 7000FFB4 46009382 */ mul.s $f14, $f18, $f0 +/* 010BB8 7000FFB8 25080008 */ addiu $t0, $t0, 8 +/* 010BBC 7000FFBC 24420004 */ addiu $v0, $v0, 4 +/* 010BC0 7000FFC0 24630004 */ addiu $v1, $v1, 4 +/* 010BC4 7000FFC4 4600830D */ trunc.w.s $f12, $f16 +/* 010BC8 7000FFC8 4600738D */ trunc.w.s $f14, $f14 +/* 010BCC 7000FFCC 44096000 */ mfc1 $t1, $f12 +/* 010BD0 7000FFD0 44057000 */ mfc1 $a1, $f14 +/* 010BD4 7000FFD4 0009CC03 */ sra $t9, $t1, 0x10 +/* 010BD8 7000FFD8 332DFFFF */ andi $t5, $t9, 0xffff +/* 010BDC 7000FFDC 00AAC024 */ and $t8, $a1, $t2 +/* 010BE0 7000FFE0 030D7025 */ or $t6, $t8, $t5 +/* 010BE4 7000FFE4 00057C00 */ sll $t7, $a1, 0x10 +/* 010BE8 7000FFE8 01EAC824 */ and $t9, $t7, $t2 +/* 010BEC 7000FFEC 3138FFFF */ andi $t8, $t1, 0xffff +/* 010BF0 7000FFF0 AC4EFFFC */ sw $t6, -4($v0) +/* 010BF4 7000FFF4 03386825 */ or $t5, $t9, $t8 +/* 010BF8 7000FFF8 AC6DFFFC */ sw $t5, -4($v1) +/* 010BFC 7000FFFC 24C60001 */ addiu $a2, $a2, 1 +/* 010C00 70010000 14CCFFCC */ bne $a2, $t4, .L7000FF34 +/* 010C04 70010004 24E70010 */ addiu $a3, $a3, 0x10 +/* 010C08 70010008 03E00008 */ jr $ra +/* 010C0C 7001000C 00000000 */ nop + + +.section .text +glabel guMtxIdentF +/* 010C10 70010010 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 010C14 70010014 00801825 */ move $v1, $a0 +/* 010C18 70010018 44810000 */ mtc1 $at, $f0 +/* 010C1C 7001001C 44801000 */ mtc1 $zero, $f2 +/* 010C20 70010020 24040001 */ li $a0, 1 +/* 010C24 70010024 00001025 */ move $v0, $zero +/* 010C28 70010028 24070004 */ li $a3, 4 +/* 010C2C 7001002C 24060003 */ li $a2, 3 +/* 010C30 70010030 24050002 */ li $a1, 2 +.L70010034: +/* 010C34 70010034 54400004 */ bnezl $v0, .L70010048 +/* 010C38 70010038 E4620000 */ swc1 $f2, ($v1) +/* 010C3C 7001003C 10000002 */ b .L70010048 +/* 010C40 70010040 E4600000 */ swc1 $f0, ($v1) +/* 010C44 70010044 E4620000 */ swc1 $f2, ($v1) +.L70010048: +/* 010C48 70010048 54440004 */ bnel $v0, $a0, .L7001005C +/* 010C4C 7001004C E4620004 */ swc1 $f2, 4($v1) +/* 010C50 70010050 10000002 */ b .L7001005C +/* 010C54 70010054 E4600004 */ swc1 $f0, 4($v1) +/* 010C58 70010058 E4620004 */ swc1 $f2, 4($v1) +.L7001005C: +/* 010C5C 7001005C 54450004 */ bnel $v0, $a1, .L70010070 +/* 010C60 70010060 E4620008 */ swc1 $f2, 8($v1) +/* 010C64 70010064 10000002 */ b .L70010070 +/* 010C68 70010068 E4600008 */ swc1 $f0, 8($v1) +/* 010C6C 7001006C E4620008 */ swc1 $f2, 8($v1) +.L70010070: +/* 010C70 70010070 54460004 */ bnel $v0, $a2, .L70010084 +/* 010C74 70010074 E462000C */ swc1 $f2, 0xc($v1) +/* 010C78 70010078 10000002 */ b .L70010084 +/* 010C7C 7001007C E460000C */ swc1 $f0, 0xc($v1) +/* 010C80 70010080 E462000C */ swc1 $f2, 0xc($v1) +.L70010084: +/* 010C84 70010084 24420001 */ addiu $v0, $v0, 1 +/* 010C88 70010088 1447FFEA */ bne $v0, $a3, .L70010034 +/* 010C8C 7001008C 24630010 */ addiu $v1, $v1, 0x10 +/* 010C90 70010090 03E00008 */ jr $ra +/* 010C94 70010094 00000000 */ nop + +glabel guMtxIdent +/* 010C98 70010098 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 010C9C 7001009C AFBF0014 */ sw $ra, 0x14($sp) +/* 010CA0 700100A0 AFA40058 */ sw $a0, 0x58($sp) +/* 010CA4 700100A4 0C004004 */ jal guMtxIdentF +/* 010CA8 700100A8 27A40018 */ addiu $a0, $sp, 0x18 +/* 010CAC 700100AC 27A40018 */ addiu $a0, $sp, 0x18 +/* 010CB0 700100B0 0C003FC4 */ jal guMtxF2L +/* 010CB4 700100B4 8FA50058 */ lw $a1, 0x58($sp) +/* 010CB8 700100B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 010CBC 700100BC 27BD0058 */ addiu $sp, $sp, 0x58 +/* 010CC0 700100C0 03E00008 */ jr $ra +/* 010CC4 700100C4 00000000 */ nop + +glabel guMtxL2F +/* 010CC8 700100C8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 010CCC 700100CC 44810000 */ mtc1 $at, $f0 +/* 010CD0 700100D0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 010CD4 700100D4 00A01025 */ move $v0, $a1 +/* 010CD8 700100D8 24A30020 */ addiu $v1, $a1, 0x20 +/* 010CDC 700100DC 00003025 */ move $a2, $zero +/* 010CE0 700100E0 00804025 */ move $t0, $a0 +/* 010CE4 700100E4 240C0004 */ li $t4, 4 +/* 010CE8 700100E8 240B0002 */ li $t3, 2 +/* 010CEC 700100EC 3C0AFFFF */ lui $t2, 0xffff +.L700100F0: +/* 010CF0 700100F0 00002025 */ move $a0, $zero +/* 010CF4 700100F4 01004825 */ move $t1, $t0 +.L700100F8: +/* 010CF8 700100F8 8C6E0000 */ lw $t6, ($v1) +/* 010CFC 700100FC 8C590000 */ lw $t9, ($v0) +/* 010D00 70010100 24840001 */ addiu $a0, $a0, 1 +/* 010D04 70010104 000E7C02 */ srl $t7, $t6, 0x10 +/* 010D08 70010108 31F8FFFF */ andi $t8, $t7, 0xffff +/* 010D0C 7001010C 032A6824 */ and $t5, $t9, $t2 +/* 010D10 70010110 030D7025 */ or $t6, $t8, $t5 +/* 010D14 70010114 AFAE0004 */ sw $t6, 4($sp) +/* 010D18 70010118 8C6F0000 */ lw $t7, ($v1) +/* 010D1C 7001011C 8C580000 */ lw $t8, ($v0) +/* 010D20 70010120 8FA50004 */ lw $a1, 4($sp) +/* 010D24 70010124 31F9FFFF */ andi $t9, $t7, 0xffff +/* 010D28 70010128 00186C00 */ sll $t5, $t8, 0x10 +/* 010D2C 7001012C 44859000 */ mtc1 $a1, $f18 +/* 010D30 70010130 01AA7024 */ and $t6, $t5, $t2 +/* 010D34 70010134 032E3825 */ or $a3, $t9, $t6 +/* 010D38 70010138 468094A0 */ cvt.s.w $f18, $f18 +/* 010D3C 7001013C 44878000 */ mtc1 $a3, $f16 +/* 010D40 70010140 AFA70000 */ sw $a3, ($sp) +/* 010D44 70010144 24420004 */ addiu $v0, $v0, 4 +/* 010D48 70010148 24630004 */ addiu $v1, $v1, 4 +/* 010D4C 7001014C 46808420 */ cvt.s.w $f16, $f16 +/* 010D50 70010150 25290008 */ addiu $t1, $t1, 8 +/* 010D54 70010154 46009483 */ div.s $f18, $f18, $f0 +/* 010D58 70010158 46008403 */ div.s $f16, $f16, $f0 +/* 010D5C 7001015C E532FFF8 */ swc1 $f18, -8($t1) +/* 010D60 70010160 148BFFE5 */ bne $a0, $t3, .L700100F8 +/* 010D64 70010164 E530FFFC */ swc1 $f16, -4($t1) +/* 010D68 70010168 24C60001 */ addiu $a2, $a2, 1 +/* 010D6C 7001016C 14CCFFE0 */ bne $a2, $t4, .L700100F0 +/* 010D70 70010170 25080010 */ addiu $t0, $t0, 0x10 +/* 010D74 70010174 03E00008 */ jr $ra +/* 010D78 70010178 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/normalize.s b/src/libultra/normalize.s new file mode 100644 index 0000000..632ad5c --- /dev/null +++ b/src/libultra/normalize.s @@ -0,0 +1,47 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guNormalize +/* 020350 7001F750 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 020354 7001F754 AFBF0014 */ sw $ra, 0x14($sp) +/* 020358 7001F758 C4820000 */ lwc1 $f2, ($a0) +/* 02035C 7001F75C C4AE0000 */ lwc1 $f14, ($a1) +/* 020360 7001F760 C4C00000 */ lwc1 $f0, ($a2) +/* 020364 7001F764 46021102 */ mul.s $f4, $f2, $f2 +/* 020368 7001F768 AFA60020 */ sw $a2, 0x20($sp) +/* 02036C 7001F76C AFA5001C */ sw $a1, 0x1c($sp) +/* 020370 7001F770 460E7182 */ mul.s $f6, $f14, $f14 +/* 020374 7001F774 AFA40018 */ sw $a0, 0x18($sp) +/* 020378 7001F778 46000282 */ mul.s $f10, $f0, $f0 +/* 02037C 7001F77C 46062200 */ add.s $f8, $f4, $f6 +/* 020380 7001F780 0C007DF8 */ jal sqrtf +/* 020384 7001F784 46085300 */ add.s $f12, $f10, $f8 +/* 020388 7001F788 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 02038C 7001F78C 44818000 */ mtc1 $at, $f16 +/* 020390 7001F790 8FA40018 */ lw $a0, 0x18($sp) +/* 020394 7001F794 8FA5001C */ lw $a1, 0x1c($sp) +/* 020398 7001F798 46008083 */ div.s $f2, $f16, $f0 +/* 02039C 7001F79C C4920000 */ lwc1 $f18, ($a0) +/* 0203A0 7001F7A0 8FA60020 */ lw $a2, 0x20($sp) +/* 0203A4 7001F7A4 46029102 */ mul.s $f4, $f18, $f2 +/* 0203A8 7001F7A8 E4840000 */ swc1 $f4, ($a0) +/* 0203AC 7001F7AC C4A60000 */ lwc1 $f6, ($a1) +/* 0203B0 7001F7B0 46023282 */ mul.s $f10, $f6, $f2 +/* 0203B4 7001F7B4 E4AA0000 */ swc1 $f10, ($a1) +/* 0203B8 7001F7B8 C4C80000 */ lwc1 $f8, ($a2) +/* 0203BC 7001F7BC 46024402 */ mul.s $f16, $f8, $f2 +/* 0203C0 7001F7C0 E4D00000 */ swc1 $f16, ($a2) +/* 0203C4 7001F7C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0203C8 7001F7C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0203CC 7001F7CC 03E00008 */ jr $ra +/* 0203D0 7001F7D0 00000000 */ nop diff --git a/src/libultra/ortho.s b/src/libultra/ortho.s new file mode 100644 index 0000000..4ef27f6 --- /dev/null +++ b/src/libultra/ortho.s @@ -0,0 +1,130 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guOrthoF +/* 017670 70016A70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017674 70016A74 AFBF0014 */ sw $ra, 0x14($sp) +/* 017678 70016A78 AFA5001C */ sw $a1, 0x1c($sp) +/* 01767C 70016A7C AFA60020 */ sw $a2, 0x20($sp) +/* 017680 70016A80 AFA70024 */ sw $a3, 0x24($sp) +/* 017684 70016A84 0C004004 */ jal guMtxIdentF +/* 017688 70016A88 AFA40018 */ sw $a0, 0x18($sp) +/* 01768C 70016A8C C7A40020 */ lwc1 $f4, 0x20($sp) +/* 017690 70016A90 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 017694 70016A94 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 017698 70016A98 44814000 */ mtc1 $at, $f8 +/* 01769C 70016A9C 46062001 */ sub.s $f0, $f4, $f6 +/* 0176A0 70016AA0 8FA20018 */ lw $v0, 0x18($sp) +/* 0176A4 70016AA4 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0176A8 70016AA8 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0176AC 70016AAC 46004283 */ div.s $f10, $f8, $f0 +/* 0176B0 70016AB0 C7B2002C */ lwc1 $f18, 0x2c($sp) +/* 0176B4 70016AB4 44813000 */ mtc1 $at, $f6 +/* 0176B8 70016AB8 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0176BC 70016ABC 46128301 */ sub.s $f12, $f16, $f18 +/* 0176C0 70016AC0 00001825 */ move $v1, $zero +/* 0176C4 70016AC4 24040004 */ li $a0, 4 +/* 0176C8 70016AC8 E44A0000 */ swc1 $f10, ($v0) +/* 0176CC 70016ACC C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0176D0 70016AD0 44815000 */ mtc1 $at, $f10 +/* 0176D4 70016AD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0176D8 70016AD8 46047081 */ sub.s $f2, $f14, $f4 +/* 0176DC 70016ADC 460C5103 */ div.s $f4, $f10, $f12 +/* 0176E0 70016AE0 46023203 */ div.s $f8, $f6, $f2 +/* 0176E4 70016AE4 E4440028 */ swc1 $f4, 0x28($v0) +/* 0176E8 70016AE8 E4480014 */ swc1 $f8, 0x14($v0) +/* 0176EC 70016AEC C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0176F0 70016AF0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0176F4 70016AF4 46083280 */ add.s $f10, $f6, $f8 +/* 0176F8 70016AF8 46005107 */ neg.s $f4, $f10 +/* 0176FC 70016AFC 46002183 */ div.s $f6, $f4, $f0 +/* 017700 70016B00 E4460030 */ swc1 $f6, 0x30($v0) +/* 017704 70016B04 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017708 70016B08 46087280 */ add.s $f10, $f14, $f8 +/* 01770C 70016B0C 46128200 */ add.s $f8, $f16, $f18 +/* 017710 70016B10 46005107 */ neg.s $f4, $f10 +/* 017714 70016B14 46004287 */ neg.s $f10, $f8 +/* 017718 70016B18 46022183 */ div.s $f6, $f4, $f2 +/* 01771C 70016B1C 460C5103 */ div.s $f4, $f10, $f12 +/* 017720 70016B20 E4460034 */ swc1 $f6, 0x34($v0) +/* 017724 70016B24 44813000 */ mtc1 $at, $f6 +/* 017728 70016B28 00000000 */ nop +/* 01772C 70016B2C E446003C */ swc1 $f6, 0x3c($v0) +/* 017730 70016B30 E4440038 */ swc1 $f4, 0x38($v0) +/* 017734 70016B34 C7A00034 */ lwc1 $f0, 0x34($sp) +/* 017738 70016B38 C4480000 */ lwc1 $f8, ($v0) +/* 01773C 70016B3C 24630001 */ addiu $v1, $v1, 1 +/* 017740 70016B40 C4520004 */ lwc1 $f18, 4($v0) +/* 017744 70016B44 46004302 */ mul.s $f12, $f8, $f0 +/* 017748 70016B48 C44E0008 */ lwc1 $f14, 8($v0) +/* 01774C 70016B4C 10640010 */ beq $v1, $a0, .L70016B90 +/* 017750 70016B50 C450000C */ lwc1 $f16, 0xc($v0) +.L70016B54: +/* 017754 70016B54 46009282 */ mul.s $f10, $f18, $f0 +/* 017758 70016B58 C4480010 */ lwc1 $f8, 0x10($v0) +/* 01775C 70016B5C C4520014 */ lwc1 $f18, 0x14($v0) +/* 017760 70016B60 46007182 */ mul.s $f6, $f14, $f0 +/* 017764 70016B64 C44E0018 */ lwc1 $f14, 0x18($v0) +/* 017768 70016B68 24630001 */ addiu $v1, $v1, 1 +/* 01776C 70016B6C 46008102 */ mul.s $f4, $f16, $f0 +/* 017770 70016B70 C450001C */ lwc1 $f16, 0x1c($v0) +/* 017774 70016B74 E44C0000 */ swc1 $f12, ($v0) +/* 017778 70016B78 46004302 */ mul.s $f12, $f8, $f0 +/* 01777C 70016B7C E44A0004 */ swc1 $f10, 4($v0) +/* 017780 70016B80 E4460008 */ swc1 $f6, 8($v0) +/* 017784 70016B84 24420010 */ addiu $v0, $v0, 0x10 +/* 017788 70016B88 1464FFF2 */ bne $v1, $a0, .L70016B54 +/* 01778C 70016B8C E444FFFC */ swc1 $f4, -4($v0) +.L70016B90: +/* 017790 70016B90 46009282 */ mul.s $f10, $f18, $f0 +/* 017794 70016B94 24420010 */ addiu $v0, $v0, 0x10 +/* 017798 70016B98 E44CFFF0 */ swc1 $f12, -0x10($v0) +/* 01779C 70016B9C 46007182 */ mul.s $f6, $f14, $f0 +/* 0177A0 70016BA0 00000000 */ nop +/* 0177A4 70016BA4 46008102 */ mul.s $f4, $f16, $f0 +/* 0177A8 70016BA8 E44AFFF4 */ swc1 $f10, -0xc($v0) +/* 0177AC 70016BAC E446FFF8 */ swc1 $f6, -8($v0) +/* 0177B0 70016BB0 E444FFFC */ swc1 $f4, -4($v0) +/* 0177B4 70016BB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0177B8 70016BB8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0177BC 70016BBC 03E00008 */ jr $ra +/* 0177C0 70016BC0 00000000 */ nop + +glabel guOrtho +/* 0177C4 70016BC4 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0177C8 70016BC8 44856000 */ mtc1 $a1, $f12 +/* 0177CC 70016BCC 44867000 */ mtc1 $a2, $f14 +/* 0177D0 70016BD0 44878000 */ mtc1 $a3, $f16 +/* 0177D4 70016BD4 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0177D8 70016BD8 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0177DC 70016BDC C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0177E0 70016BE0 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0177E4 70016BE4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0177E8 70016BE8 AFA40068 */ sw $a0, 0x68($sp) +/* 0177EC 70016BEC 44056000 */ mfc1 $a1, $f12 +/* 0177F0 70016BF0 44067000 */ mfc1 $a2, $f14 +/* 0177F4 70016BF4 44078000 */ mfc1 $a3, $f16 +/* 0177F8 70016BF8 27A40028 */ addiu $a0, $sp, 0x28 +/* 0177FC 70016BFC E7A40010 */ swc1 $f4, 0x10($sp) +/* 017800 70016C00 E7A60014 */ swc1 $f6, 0x14($sp) +/* 017804 70016C04 E7A80018 */ swc1 $f8, 0x18($sp) +/* 017808 70016C08 0C005A9C */ jal guOrthoF +/* 01780C 70016C0C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 017810 70016C10 27A40028 */ addiu $a0, $sp, 0x28 +/* 017814 70016C14 0C003FC4 */ jal guMtxF2L +/* 017818 70016C18 8FA50068 */ lw $a1, 0x68($sp) +/* 01781C 70016C1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 017820 70016C20 27BD0068 */ addiu $sp, $sp, 0x68 +/* 017824 70016C24 03E00008 */ jr $ra +/* 017828 70016C28 00000000 */ nop + diff --git a/src/libultra/parameters.s b/src/libultra/parameters.s new file mode 100644 index 0000000..fcfbcd3 --- /dev/null +++ b/src/libultra/parameters.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +#wtf why do these exist, figure out +#/* 00E2FC 7000D6FC 00000000 */ nop +/* 00E300 7000D700 00000000 */ nop +/* 00E304 7000D704 00000000 */ nop +/* 00E308 7000D708 00000000 */ nop +/* 00E30C 7000D70C 00000000 */ nop +/* 00E310 7000D710 00000000 */ nop +/* 00E314 7000D714 00000000 */ nop +/* 00E318 7000D718 00000000 */ nop +/* 00E31C 7000D71C 00000000 */ nop +/* 00E320 7000D720 00000000 */ nop +/* 00E324 7000D724 00000000 */ nop +/* 00E328 7000D728 00000000 */ nop +/* 00E32C 7000D72C 00000000 */ nop +/* 00E330 7000D730 00000000 */ nop +/* 00E334 7000D734 00000000 */ nop +/* 00E338 7000D738 00000000 */ nop +/* 00E33C 7000D73C 00000000 */ nop diff --git a/src/libultra/perspective.s b/src/libultra/perspective.s new file mode 100644 index 0000000..903468f --- /dev/null +++ b/src/libultra/perspective.s @@ -0,0 +1,186 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .rodata +glabel F64_80029430 +.word 0x3f91df46, 0x9d353918 +.align 4 + +.section .text, "ax" +glabel guPerspectiveF +/* 010880 7000FC80 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 010884 7000FC84 44867000 */ mtc1 $a2, $f14 +/* 010888 7000FC88 AFBF0014 */ sw $ra, 0x14($sp) +/* 01088C 7000FC8C AFA7003C */ sw $a3, 0x3c($sp) +/* 010890 7000FC90 AFA40030 */ sw $a0, 0x30($sp) +/* 010894 7000FC94 AFA50034 */ sw $a1, 0x34($sp) +/* 010898 7000FC98 0C004004 */ jal guMtxIdentF +/* 01089C 7000FC9C E7AE0038 */ swc1 $f14, 0x38($sp) +/* 0108A0 7000FCA0 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0108A4 7000FCA4 3C018003 */ lui $at, %hi(F64_80029430) #0x80030000 +/* 0108A8 7000FCA8 D4269430 */ ldc1 $f6, %lo(F64_80029430)($at) # -0x6bd0($at) +/* 0108AC 7000FCAC 46007121 */ cvt.d.s $f4, $f14 +/* 0108B0 7000FCB0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0108B4 7000FCB4 46262202 */ mul.d $f8, $f4, $f6 +/* 0108B8 7000FCB8 44815000 */ mtc1 $at, $f10 +/* 0108BC 7000FCBC 462043A0 */ cvt.s.d $f14, $f8 +/* 0108C0 7000FCC0 460A7303 */ div.s $f12, $f14, $f10 +/* 0108C4 7000FCC4 0FC15FA8 */ jal cosf +/* 0108C8 7000FCC8 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0108CC 7000FCCC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0108D0 7000FCD0 0FC15FAB */ jal sinf +/* 0108D4 7000FCD4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0108D8 7000FCD8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0108DC 7000FCDC C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0108E0 7000FCE0 C7AE0040 */ lwc1 $f14, 0x40($sp) +/* 0108E4 7000FCE4 46002083 */ div.s $f2, $f4, $f0 +/* 0108E8 7000FCE8 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 0108EC 7000FCEC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0108F0 7000FCF0 44812000 */ mtc1 $at, $f4 +/* 0108F4 7000FCF4 46107480 */ add.s $f18, $f14, $f16 +/* 0108F8 7000FCF8 8FA20030 */ lw $v0, 0x30($sp) +/* 0108FC 7000FCFC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 010900 7000FD00 46107301 */ sub.s $f12, $f14, $f16 +/* 010904 7000FD04 8FA50034 */ lw $a1, 0x34($sp) +/* 010908 7000FD08 E444002C */ swc1 $f4, 0x2c($v0) +/* 01090C 7000FD0C 00001825 */ move $v1, $zero +/* 010910 7000FD10 24040004 */ li $a0, 4 +/* 010914 7000FD14 460C9283 */ div.s $f10, $f18, $f12 +/* 010918 7000FD18 E4420014 */ swc1 $f2, 0x14($v0) +/* 01091C 7000FD1C 46061203 */ div.s $f8, $f2, $f6 +/* 010920 7000FD20 44813000 */ mtc1 $at, $f6 +/* 010924 7000FD24 E44A0028 */ swc1 $f10, 0x28($v0) +/* 010928 7000FD28 E4480000 */ swc1 $f8, ($v0) +/* 01092C 7000FD2C 460E3202 */ mul.s $f8, $f6, $f14 +/* 010930 7000FD30 44803000 */ mtc1 $zero, $f6 +/* 010934 7000FD34 00000000 */ nop +/* 010938 7000FD38 E446003C */ swc1 $f6, 0x3c($v0) +/* 01093C 7000FD3C 46104282 */ mul.s $f10, $f8, $f16 +/* 010940 7000FD40 460C5103 */ div.s $f4, $f10, $f12 +/* 010944 7000FD44 E4440038 */ swc1 $f4, 0x38($v0) +/* 010948 7000FD48 C7A00048 */ lwc1 $f0, 0x48($sp) +/* 01094C 7000FD4C C4460000 */ lwc1 $f6, ($v0) +/* 010950 7000FD50 24630001 */ addiu $v1, $v1, 1 +/* 010954 7000FD54 C4500004 */ lwc1 $f16, 4($v0) +/* 010958 7000FD58 46003282 */ mul.s $f10, $f6, $f0 +/* 01095C 7000FD5C C44C0008 */ lwc1 $f12, 8($v0) +/* 010960 7000FD60 10640010 */ beq $v1, $a0, .L7000FDA4 +/* 010964 7000FD64 C44E000C */ lwc1 $f14, 0xc($v0) +.L7000FD68: +/* 010968 7000FD68 46008202 */ mul.s $f8, $f16, $f0 +/* 01096C 7000FD6C C4460010 */ lwc1 $f6, 0x10($v0) +/* 010970 7000FD70 C4500014 */ lwc1 $f16, 0x14($v0) +/* 010974 7000FD74 46006102 */ mul.s $f4, $f12, $f0 +/* 010978 7000FD78 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 01097C 7000FD7C 24630001 */ addiu $v1, $v1, 1 +/* 010980 7000FD80 46007082 */ mul.s $f2, $f14, $f0 +/* 010984 7000FD84 C44E001C */ lwc1 $f14, 0x1c($v0) +/* 010988 7000FD88 E44A0000 */ swc1 $f10, ($v0) +/* 01098C 7000FD8C 46003282 */ mul.s $f10, $f6, $f0 +/* 010990 7000FD90 E4480004 */ swc1 $f8, 4($v0) +/* 010994 7000FD94 E4440008 */ swc1 $f4, 8($v0) +/* 010998 7000FD98 24420010 */ addiu $v0, $v0, 0x10 +/* 01099C 7000FD9C 1464FFF2 */ bne $v1, $a0, .L7000FD68 +/* 0109A0 7000FDA0 E442FFFC */ swc1 $f2, -4($v0) +.L7000FDA4: +/* 0109A4 7000FDA4 46008202 */ mul.s $f8, $f16, $f0 +/* 0109A8 7000FDA8 24420010 */ addiu $v0, $v0, 0x10 +/* 0109AC 7000FDAC E44AFFF0 */ swc1 $f10, -0x10($v0) +/* 0109B0 7000FDB0 46006102 */ mul.s $f4, $f12, $f0 +/* 0109B4 7000FDB4 00000000 */ nop +/* 0109B8 7000FDB8 46007082 */ mul.s $f2, $f14, $f0 +/* 0109BC 7000FDBC E448FFF4 */ swc1 $f8, -0xc($v0) +/* 0109C0 7000FDC0 E444FFF8 */ swc1 $f4, -8($v0) +/* 0109C4 7000FDC4 E442FFFC */ swc1 $f2, -4($v0) +/* 0109C8 7000FDC8 10A00035 */ beqz $a1, .L7000FEA0 +/* 0109CC 7000FDCC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0109D0 7000FDD0 44814800 */ mtc1 $at, $f9 +/* 0109D4 7000FDD4 44804000 */ mtc1 $zero, $f8 +/* 0109D8 7000FDD8 46009021 */ cvt.d.s $f0, $f18 +/* 0109DC 7000FDDC 340EFFFF */ li $t6, 65535 +/* 0109E0 7000FDE0 4628003E */ c.le.d $f0, $f8 +/* 0109E4 7000FDE4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0109E8 7000FDE8 45020004 */ bc1fl .L7000FDFC +/* 0109EC 7000FDEC 44815800 */ mtc1 $at, $f11 +/* 0109F0 7000FDF0 1000002B */ b .L7000FEA0 +/* 0109F4 7000FDF4 A4AE0000 */ sh $t6, ($a1) +/* 0109F8 7000FDF8 44815800 */ mtc1 $at, $f11 +.L7000FDFC: +/* 0109FC 7000FDFC 44805000 */ mtc1 $zero, $f10 +/* 010A00 7000FE00 24180001 */ li $t8, 1 +/* 010A04 7000FE04 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 010A08 7000FE08 46205103 */ div.d $f4, $f10, $f0 +/* 010A0C 7000FE0C 24080001 */ li $t0, 1 +/* 010A10 7000FE10 444FF800 */ cfc1 $t7, $31 +/* 010A14 7000FE14 44D8F800 */ ctc1 $t8, $31 +/* 010A18 7000FE18 00000000 */ nop +/* 010A1C 7000FE1C 462021A4 */ cvt.w.d $f6, $f4 +/* 010A20 7000FE20 4458F800 */ cfc1 $t8, $31 +/* 010A24 7000FE24 00000000 */ nop +/* 010A28 7000FE28 33180078 */ andi $t8, $t8, 0x78 +/* 010A2C 7000FE2C 53000014 */ beql $t8, $zero, .L7000FE80 +/* 010A30 7000FE30 44183000 */ mfc1 $t8, $f6 +/* 010A34 7000FE34 44813800 */ mtc1 $at, $f7 +/* 010A38 7000FE38 44803000 */ mtc1 $zero, $f6 +/* 010A3C 7000FE3C 24180001 */ li $t8, 1 +/* 010A40 7000FE40 46262181 */ sub.d $f6, $f4, $f6 +/* 010A44 7000FE44 44D8F800 */ ctc1 $t8, $31 +/* 010A48 7000FE48 00000000 */ nop +/* 010A4C 7000FE4C 462031A4 */ cvt.w.d $f6, $f6 +/* 010A50 7000FE50 4458F800 */ cfc1 $t8, $31 +/* 010A54 7000FE54 00000000 */ nop +/* 010A58 7000FE58 33180078 */ andi $t8, $t8, 0x78 +/* 010A5C 7000FE5C 17000005 */ bnez $t8, .L7000FE74 +/* 010A60 7000FE60 00000000 */ nop +/* 010A64 7000FE64 44183000 */ mfc1 $t8, $f6 +/* 010A68 7000FE68 3C018000 */ lui $at, 0x8000 +/* 010A6C 7000FE6C 10000007 */ b .L7000FE8C +/* 010A70 7000FE70 0301C025 */ or $t8, $t8, $at +.L7000FE74: +/* 010A74 7000FE74 10000005 */ b .L7000FE8C +/* 010A78 7000FE78 2418FFFF */ li $t8, -1 +/* 010A7C 7000FE7C 44183000 */ mfc1 $t8, $f6 +.L7000FE80: +/* 010A80 7000FE80 00000000 */ nop +/* 010A84 7000FE84 0700FFFB */ bltz $t8, .L7000FE74 +/* 010A88 7000FE88 00000000 */ nop +.L7000FE8C: +/* 010A8C 7000FE8C 44CFF800 */ ctc1 $t7, $31 +/* 010A90 7000FE90 3319FFFF */ andi $t9, $t8, 0xffff +/* 010A94 7000FE94 1F200002 */ bgtz $t9, .L7000FEA0 +/* 010A98 7000FE98 A4B80000 */ sh $t8, ($a1) +/* 010A9C 7000FE9C A4A80000 */ sh $t0, ($a1) +.L7000FEA0: +/* 010AA0 7000FEA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 010AA4 7000FEA4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 010AA8 7000FEA8 03E00008 */ jr $ra +/* 010AAC 7000FEAC 00000000 */ nop + +glabel guPerspective +/* 010AB0 7000FEB0 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 010AB4 7000FEB4 44866000 */ mtc1 $a2, $f12 +/* 010AB8 7000FEB8 44877000 */ mtc1 $a3, $f14 +/* 010ABC 7000FEBC C7A40078 */ lwc1 $f4, 0x78($sp) +/* 010AC0 7000FEC0 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 010AC4 7000FEC4 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 010AC8 7000FEC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 010ACC 7000FECC AFA40068 */ sw $a0, 0x68($sp) +/* 010AD0 7000FED0 44066000 */ mfc1 $a2, $f12 +/* 010AD4 7000FED4 44077000 */ mfc1 $a3, $f14 +/* 010AD8 7000FED8 27A40028 */ addiu $a0, $sp, 0x28 +/* 010ADC 7000FEDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 010AE0 7000FEE0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 010AE4 7000FEE4 0C003F20 */ jal guPerspectiveF +/* 010AE8 7000FEE8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 010AEC 7000FEEC 27A40028 */ addiu $a0, $sp, 0x28 +/* 010AF0 7000FEF0 0C003FC4 */ jal guMtxF2L +/* 010AF4 7000FEF4 8FA50068 */ lw $a1, 0x68($sp) +/* 010AF8 7000FEF8 8FBF0024 */ lw $ra, 0x24($sp) +/* 010AFC 7000FEFC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 010B00 7000FF00 03E00008 */ jr $ra +/* 010B04 7000FF04 00000000 */ nop + diff --git a/src/libultra/pfsinit.s b/src/libultra/pfsinit.s new file mode 100644 index 0000000..a1b6e59 --- /dev/null +++ b/src/libultra/pfsinit.s @@ -0,0 +1,136 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPfsInit +/* 015340 70014740 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015344 70014744 AFBF0014 */ sw $ra, 0x14($sp) +/* 015348 70014748 AFA40020 */ sw $a0, 0x20($sp) +/* 01534C 7001474C AFA50024 */ sw $a1, 0x24($sp) +/* 015350 70014750 AFA60028 */ sw $a2, 0x28($sp) +/* 015354 70014754 0C005798 */ jal __osSiGetAccess +/* 015358 70014758 AFA0001C */ sw $zero, 0x1c($sp) +/* 01535C 7001475C 8FA40020 */ lw $a0, 0x20($sp) +/* 015360 70014760 0C0051FD */ jal __osPfsGetStatus +/* 015364 70014764 8FA50028 */ lw $a1, 0x28($sp) +/* 015368 70014768 0C0057A9 */ jal __osSiRelAccess +/* 01536C 7001476C AFA2001C */ sw $v0, 0x1c($sp) +/* 015370 70014770 8FAE001C */ lw $t6, 0x1c($sp) +/* 015374 70014774 11C00003 */ beqz $t6, .L70014784 +/* 015378 70014778 00000000 */ nop +/* 01537C 7001477C 10000019 */ b .L700147E4 +/* 015380 70014780 01C01025 */ move $v0, $t6 +.L70014784: +/* 015384 70014784 8FAF0020 */ lw $t7, 0x20($sp) +/* 015388 70014788 8FB80024 */ lw $t8, 0x24($sp) +/* 01538C 7001478C AF0F0004 */ sw $t7, 4($t8) +/* 015390 70014790 8FA80024 */ lw $t0, 0x24($sp) +/* 015394 70014794 8FB90028 */ lw $t9, 0x28($sp) +/* 015398 70014798 AD190008 */ sw $t9, 8($t0) +/* 01539C 7001479C 8FA90024 */ lw $t1, 0x24($sp) +/* 0153A0 700147A0 AD200000 */ sw $zero, ($t1) +/* 0153A4 700147A4 0C007C0D */ jal __osGetId +/* 0153A8 700147A8 8FA40024 */ lw $a0, 0x24($sp) +/* 0153AC 700147AC AFA2001C */ sw $v0, 0x1c($sp) +/* 0153B0 700147B0 8FAA001C */ lw $t2, 0x1c($sp) +/* 0153B4 700147B4 11400003 */ beqz $t2, .L700147C4 +/* 0153B8 700147B8 00000000 */ nop +/* 0153BC 700147BC 10000009 */ b .L700147E4 +/* 0153C0 700147C0 01401025 */ move $v0, $t2 +.L700147C4: +/* 0153C4 700147C4 0C002DCA */ jal osPfsChecker +/* 0153C8 700147C8 8FA40024 */ lw $a0, 0x24($sp) +/* 0153CC 700147CC 8FAB0024 */ lw $t3, 0x24($sp) +/* 0153D0 700147D0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0153D4 700147D4 8D6C0000 */ lw $t4, ($t3) +/* 0153D8 700147D8 358D0001 */ ori $t5, $t4, 1 +/* 0153DC 700147DC AD6D0000 */ sw $t5, ($t3) +/* 0153E0 700147E0 8FA2001C */ lw $v0, 0x1c($sp) +.L700147E4: +/* 0153E4 700147E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0153E8 700147E8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0153EC 700147EC 03E00008 */ jr $ra +/* 0153F0 700147F0 00000000 */ nop + +glabel __osPfsGetStatus +/* 0153F4 700147F4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0153F8 700147F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0153FC 700147FC AFA40038 */ sw $a0, 0x38($sp) +/* 015400 70014800 AFA5003C */ sw $a1, 0x3c($sp) +/* 015404 70014804 AFA00034 */ sw $zero, 0x34($sp) +/* 015408 70014808 0C005710 */ jal __osPfsRequestData +/* 01540C 7001480C 00002025 */ move $a0, $zero +/* 015410 70014810 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 015414 70014814 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 015418 70014818 0C0057B4 */ jal __osSiRawStartDma +/* 01541C 7001481C 24040001 */ li $a0, 1 +/* 015420 70014820 AFA20034 */ sw $v0, 0x34($sp) +/* 015424 70014824 8FA40038 */ lw $a0, 0x38($sp) +/* 015428 70014828 27A50030 */ addiu $a1, $sp, 0x30 +/* 01542C 7001482C 0C003774 */ jal osRecvMesg +/* 015430 70014830 24060001 */ li $a2, 1 +/* 015434 70014834 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 015438 70014838 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 01543C 7001483C 0C0057B4 */ jal __osSiRawStartDma +/* 015440 70014840 00002025 */ move $a0, $zero +/* 015444 70014844 AFA20034 */ sw $v0, 0x34($sp) +/* 015448 70014848 8FA40038 */ lw $a0, 0x38($sp) +/* 01544C 7001484C 27A50030 */ addiu $a1, $sp, 0x30 +/* 015450 70014850 0C003774 */ jal osRecvMesg +/* 015454 70014854 24060001 */ li $a2, 1 +/* 015458 70014858 27A4002F */ addiu $a0, $sp, 0x2f +/* 01545C 7001485C 0C00574F */ jal __osPfsGetInitData +/* 015460 70014860 27A5001C */ addiu $a1, $sp, 0x1c +/* 015464 70014864 8FAE003C */ lw $t6, 0x3c($sp) +/* 015468 70014868 000E7880 */ sll $t7, $t6, 2 +/* 01546C 7001486C 03AFC021 */ addu $t8, $sp, $t7 +/* 015470 70014870 9318001E */ lbu $t8, 0x1e($t8) +/* 015474 70014874 33190001 */ andi $t9, $t8, 1 +/* 015478 70014878 13200006 */ beqz $t9, .L70014894 +/* 01547C 7001487C 00000000 */ nop +/* 015480 70014880 33080002 */ andi $t0, $t8, 2 +/* 015484 70014884 11000003 */ beqz $t0, .L70014894 +/* 015488 70014888 00000000 */ nop +/* 01548C 7001488C 10000018 */ b .L700148F0 +/* 015490 70014890 24020002 */ li $v0, 2 +.L70014894: +/* 015494 70014894 8FA9003C */ lw $t1, 0x3c($sp) +/* 015498 70014898 27AB001C */ addiu $t3, $sp, 0x1c +/* 01549C 7001489C 00095080 */ sll $t2, $t1, 2 +/* 0154A0 700148A0 014B6021 */ addu $t4, $t2, $t3 +/* 0154A4 700148A4 918D0003 */ lbu $t5, 3($t4) +/* 0154A8 700148A8 15A00005 */ bnez $t5, .L700148C0 +/* 0154AC 700148AC 00000000 */ nop +/* 0154B0 700148B0 918E0002 */ lbu $t6, 2($t4) +/* 0154B4 700148B4 31CF0001 */ andi $t7, $t6, 1 +/* 0154B8 700148B8 15E00003 */ bnez $t7, .L700148C8 +/* 0154BC 700148BC 00000000 */ nop +.L700148C0: +/* 0154C0 700148C0 1000000B */ b .L700148F0 +/* 0154C4 700148C4 24020001 */ li $v0, 1 +.L700148C8: +/* 0154C8 700148C8 8FB9003C */ lw $t9, 0x3c($sp) +/* 0154CC 700148CC 0019C080 */ sll $t8, $t9, 2 +/* 0154D0 700148D0 03B84021 */ addu $t0, $sp, $t8 +/* 0154D4 700148D4 9108001E */ lbu $t0, 0x1e($t0) +/* 0154D8 700148D8 31090004 */ andi $t1, $t0, 4 +/* 0154DC 700148DC 11200003 */ beqz $t1, .L700148EC +/* 0154E0 700148E0 00000000 */ nop +/* 0154E4 700148E4 10000002 */ b .L700148F0 +/* 0154E8 700148E8 24020004 */ li $v0, 4 +.L700148EC: +/* 0154EC 700148EC 8FA20034 */ lw $v0, 0x34($sp) +.L700148F0: +/* 0154F0 700148F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0154F4 700148F4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0154F8 700148F8 03E00008 */ jr $ra +/* 0154FC 700148FC 00000000 */ nop diff --git a/src/libultra/pfsisplug.s b/src/libultra/pfsisplug.s new file mode 100644 index 0000000..3d7822a --- /dev/null +++ b/src/libultra/pfsisplug.s @@ -0,0 +1,273 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPfsIsPlug +/* 0166A0 70015AA0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0166A4 70015AA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0166A8 70015AA8 240E0003 */ li $t6, 3 +/* 0166AC 70015AAC AFA40040 */ sw $a0, 0x40($sp) +/* 0166B0 70015AB0 AFA50044 */ sw $a1, 0x44($sp) +/* 0166B4 70015AB4 AFA0003C */ sw $zero, 0x3c($sp) +/* 0166B8 70015AB8 A3A0001F */ sb $zero, 0x1f($sp) +/* 0166BC 70015ABC 0C005798 */ jal __osSiGetAccess +/* 0166C0 70015AC0 AFAE0018 */ sw $t6, 0x18($sp) +.L70015AC4: +/* 0166C4 70015AC4 0C005710 */ jal __osPfsRequestData +/* 0166C8 70015AC8 00002025 */ move $a0, $zero +/* 0166CC 70015ACC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 0166D0 70015AD0 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 0166D4 70015AD4 0C0057B4 */ jal __osSiRawStartDma +/* 0166D8 70015AD8 24040001 */ li $a0, 1 +/* 0166DC 70015ADC AFA2003C */ sw $v0, 0x3c($sp) +/* 0166E0 70015AE0 8FA40040 */ lw $a0, 0x40($sp) +/* 0166E4 70015AE4 27A50038 */ addiu $a1, $sp, 0x38 +/* 0166E8 70015AE8 0C003774 */ jal osRecvMesg +/* 0166EC 70015AEC 24060001 */ li $a2, 1 +/* 0166F0 70015AF0 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 0166F4 70015AF4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 0166F8 70015AF8 0C0057B4 */ jal __osSiRawStartDma +/* 0166FC 70015AFC 00002025 */ move $a0, $zero +/* 016700 70015B00 AFA2003C */ sw $v0, 0x3c($sp) +/* 016704 70015B04 8FA40040 */ lw $a0, 0x40($sp) +/* 016708 70015B08 27A50038 */ addiu $a1, $sp, 0x38 +/* 01670C 70015B0C 0C003774 */ jal osRecvMesg +/* 016710 70015B10 24060001 */ li $a2, 1 +/* 016714 70015B14 27A40037 */ addiu $a0, $sp, 0x37 +/* 016718 70015B18 0C00574F */ jal __osPfsGetInitData +/* 01671C 70015B1C 27A50024 */ addiu $a1, $sp, 0x24 +/* 016720 70015B20 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016724 70015B24 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016728 70015B28 AFA00020 */ sw $zero, 0x20($sp) +/* 01672C 70015B2C 19E00014 */ blez $t7, .L70015B80 +/* 016730 70015B30 00000000 */ nop +.L70015B34: +/* 016734 70015B34 8FB80020 */ lw $t8, 0x20($sp) +/* 016738 70015B38 0018C880 */ sll $t9, $t8, 2 +/* 01673C 70015B3C 03B94021 */ addu $t0, $sp, $t9 +/* 016740 70015B40 91080026 */ lbu $t0, 0x26($t0) +/* 016744 70015B44 31090004 */ andi $t1, $t0, 4 +/* 016748 70015B48 15200005 */ bnez $t1, .L70015B60 +/* 01674C 70015B4C 00000000 */ nop +/* 016750 70015B50 8FAA0018 */ lw $t2, 0x18($sp) +/* 016754 70015B54 254BFFFF */ addiu $t3, $t2, -1 +/* 016758 70015B58 10000009 */ b .L70015B80 +/* 01675C 70015B5C AFAB0018 */ sw $t3, 0x18($sp) +.L70015B60: +/* 016760 70015B60 8FAC0020 */ lw $t4, 0x20($sp) +/* 016764 70015B64 3C0E8006 */ lui $t6, %hi(__osMaxControllers) +/* 016768 70015B68 91CE7CE1 */ lbu $t6, %lo(__osMaxControllers)($t6) +/* 01676C 70015B6C 258D0001 */ addiu $t5, $t4, 1 +/* 016770 70015B70 AFAD0020 */ sw $t5, 0x20($sp) +/* 016774 70015B74 01AE082A */ slt $at, $t5, $t6 +/* 016778 70015B78 1420FFEE */ bnez $at, .L70015B34 +/* 01677C 70015B7C 00000000 */ nop +.L70015B80: +/* 016780 70015B80 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016784 70015B84 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016788 70015B88 8FB80020 */ lw $t8, 0x20($sp) +/* 01678C 70015B8C 15F80002 */ bne $t7, $t8, .L70015B98 +/* 016790 70015B90 00000000 */ nop +/* 016794 70015B94 AFA00018 */ sw $zero, 0x18($sp) +.L70015B98: +/* 016798 70015B98 8FB90018 */ lw $t9, 0x18($sp) +/* 01679C 70015B9C 1F20FFC9 */ bgtz $t9, .L70015AC4 +/* 0167A0 70015BA0 00000000 */ nop +/* 0167A4 70015BA4 3C088006 */ lui $t0, %hi(__osMaxControllers) +/* 0167A8 70015BA8 91087CE1 */ lbu $t0, %lo(__osMaxControllers)($t0) +/* 0167AC 70015BAC AFA00020 */ sw $zero, 0x20($sp) +/* 0167B0 70015BB0 19000019 */ blez $t0, .L70015C18 +/* 0167B4 70015BB4 00000000 */ nop +.L70015BB8: +/* 0167B8 70015BB8 8FA90020 */ lw $t1, 0x20($sp) +/* 0167BC 70015BBC 27AB0024 */ addiu $t3, $sp, 0x24 +/* 0167C0 70015BC0 00095080 */ sll $t2, $t1, 2 +/* 0167C4 70015BC4 014B6021 */ addu $t4, $t2, $t3 +/* 0167C8 70015BC8 918D0003 */ lbu $t5, 3($t4) +/* 0167CC 70015BCC 15A0000A */ bnez $t5, .L70015BF8 +/* 0167D0 70015BD0 00000000 */ nop +/* 0167D4 70015BD4 918E0002 */ lbu $t6, 2($t4) +/* 0167D8 70015BD8 31CF0001 */ andi $t7, $t6, 1 +/* 0167DC 70015BDC 11E00006 */ beqz $t7, .L70015BF8 +/* 0167E0 70015BE0 00000000 */ nop +/* 0167E4 70015BE4 93B8001F */ lbu $t8, 0x1f($sp) +/* 0167E8 70015BE8 24190001 */ li $t9, 1 +/* 0167EC 70015BEC 01394004 */ sllv $t0, $t9, $t1 +/* 0167F0 70015BF0 03085025 */ or $t2, $t8, $t0 +/* 0167F4 70015BF4 A3AA001F */ sb $t2, 0x1f($sp) +.L70015BF8: +/* 0167F8 70015BF8 8FAB0020 */ lw $t3, 0x20($sp) +/* 0167FC 70015BFC 3C0C8006 */ lui $t4, %hi(__osMaxControllers) +/* 016800 70015C00 918C7CE1 */ lbu $t4, %lo(__osMaxControllers)($t4) +/* 016804 70015C04 256D0001 */ addiu $t5, $t3, 1 +/* 016808 70015C08 AFAD0020 */ sw $t5, 0x20($sp) +/* 01680C 70015C0C 01AC082A */ slt $at, $t5, $t4 +/* 016810 70015C10 1420FFE9 */ bnez $at, .L70015BB8 +/* 016814 70015C14 00000000 */ nop +.L70015C18: +/* 016818 70015C18 0C0057A9 */ jal __osSiRelAccess +/* 01681C 70015C1C 00000000 */ nop +/* 016820 70015C20 93AE001F */ lbu $t6, 0x1f($sp) +/* 016824 70015C24 8FAF0044 */ lw $t7, 0x44($sp) +/* 016828 70015C28 A1EE0000 */ sb $t6, ($t7) +/* 01682C 70015C2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 016830 70015C30 8FA2003C */ lw $v0, 0x3c($sp) +/* 016834 70015C34 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016838 70015C38 03E00008 */ jr $ra +/* 01683C 70015C3C 00000000 */ nop + +glabel __osPfsRequestData +/* 016840 70015C40 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016844 70015C44 308400FF */ andi $a0, $a0, 0xff +/* 016848 70015C48 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 01684C 70015C4C A0247CE0 */ sb $a0, %lo(__osContLastCmd)($at) +/* 016850 70015C50 AFA00000 */ sw $zero, ($sp) +.L70015C54: +/* 016854 70015C54 8FAE0000 */ lw $t6, ($sp) +/* 016858 70015C58 8FB80000 */ lw $t8, ($sp) +/* 01685C 70015C5C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016860 70015C60 000E7880 */ sll $t7, $t6, 2 +/* 016864 70015C64 002F0821 */ addu $at, $at, $t7 +/* 016868 70015C68 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 01686C 70015C6C 27190001 */ addiu $t9, $t8, 1 +/* 016870 70015C70 2B210010 */ slti $at, $t9, 0x10 +/* 016874 70015C74 1420FFF7 */ bnez $at, .L70015C54 +/* 016878 70015C78 AFB90000 */ sw $t9, ($sp) +/* 01687C 70015C7C 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 016880 70015C80 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 016884 70015C84 3C098006 */ lui $t1, %hi(__osPfsPifRam) +/* 016888 70015C88 24080001 */ li $t0, 1 +/* 01688C 70015C8C 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016890 70015C90 25297D70 */ addiu $t1, %lo(__osPfsPifRam) # addiu $t1, $t1, 0x7d70 +/* 016894 70015C94 240A00FF */ li $t2, 255 +/* 016898 70015C98 240B0001 */ li $t3, 1 +/* 01689C 70015C9C 240C0003 */ li $t4, 3 +/* 0168A0 70015CA0 240D00FF */ li $t5, 255 +/* 0168A4 70015CA4 240E00FF */ li $t6, 255 +/* 0168A8 70015CA8 240F00FF */ li $t7, 255 +/* 0168AC 70015CAC 241800FF */ li $t8, 255 +/* 0168B0 70015CB0 AC287DAC */ sw $t0, %lo(__osPfsPifRam+0x3c)($at) +/* 0168B4 70015CB4 AFA9000C */ sw $t1, 0xc($sp) +/* 0168B8 70015CB8 A3AA0004 */ sb $t2, 4($sp) +/* 0168BC 70015CBC A3AB0005 */ sb $t3, 5($sp) +/* 0168C0 70015CC0 A3AC0006 */ sb $t4, 6($sp) +/* 0168C4 70015CC4 A3A40007 */ sb $a0, 7($sp) +/* 0168C8 70015CC8 A3AD0008 */ sb $t5, 8($sp) +/* 0168CC 70015CCC A3AE0009 */ sb $t6, 9($sp) +/* 0168D0 70015CD0 A3AF000A */ sb $t7, 0xa($sp) +/* 0168D4 70015CD4 A3B8000B */ sb $t8, 0xb($sp) +/* 0168D8 70015CD8 1B200013 */ blez $t9, .L70015D28 +/* 0168DC 70015CDC AFA00000 */ sw $zero, ($sp) +.L70015CE0: +/* 0168E0 70015CE0 27A90004 */ addiu $t1, $sp, 4 +/* 0168E4 70015CE4 8D210000 */ lw $at, ($t1) +/* 0168E8 70015CE8 8FA8000C */ lw $t0, 0xc($sp) +/* 0168EC 70015CEC 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 0168F0 70015CF0 A9010000 */ swl $at, ($t0) +/* 0168F4 70015CF4 B9010003 */ swr $at, 3($t0) +/* 0168F8 70015CF8 8D2B0004 */ lw $t3, 4($t1) +/* 0168FC 70015CFC A90B0004 */ swl $t3, 4($t0) +/* 016900 70015D00 B90B0007 */ swr $t3, 7($t0) +/* 016904 70015D04 8FAE0000 */ lw $t6, ($sp) +/* 016908 70015D08 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 01690C 70015D0C 8FAC000C */ lw $t4, 0xc($sp) +/* 016910 70015D10 25CF0001 */ addiu $t7, $t6, 1 +/* 016914 70015D14 01F8082A */ slt $at, $t7, $t8 +/* 016918 70015D18 258D0008 */ addiu $t5, $t4, 8 +/* 01691C 70015D1C AFAF0000 */ sw $t7, ($sp) +/* 016920 70015D20 1420FFEF */ bnez $at, .L70015CE0 +/* 016924 70015D24 AFAD000C */ sw $t5, 0xc($sp) +.L70015D28: +/* 016928 70015D28 8FAA000C */ lw $t2, 0xc($sp) +/* 01692C 70015D2C 241900FE */ li $t9, 254 +/* 016930 70015D30 27BD0010 */ addiu $sp, $sp, 0x10 +/* 016934 70015D34 03E00008 */ jr $ra +/* 016938 70015D38 A1590000 */ sb $t9, ($t2) + +glabel __osPfsGetInitData +/* 01693C 70015D3C 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016940 70015D40 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016944 70015D44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016948 70015D48 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 01694C 70015D4C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016950 70015D50 A3A00007 */ sb $zero, 7($sp) +/* 016954 70015D54 AFAE0014 */ sw $t6, 0x14($sp) +/* 016958 70015D58 19E00028 */ blez $t7, .L70015DFC +/* 01695C 70015D5C AFA00008 */ sw $zero, 8($sp) +.L70015D60: +/* 016960 70015D60 8FB90014 */ lw $t9, 0x14($sp) +/* 016964 70015D64 27B8000C */ addiu $t8, $sp, 0xc +/* 016968 70015D68 8B210000 */ lwl $at, ($t9) +/* 01696C 70015D6C 9B210003 */ lwr $at, 3($t9) +/* 016970 70015D70 AF010000 */ sw $at, ($t8) +/* 016974 70015D74 8B290004 */ lwl $t1, 4($t9) +/* 016978 70015D78 9B290007 */ lwr $t1, 7($t9) +/* 01697C 70015D7C AF090004 */ sw $t1, 4($t8) +/* 016980 70015D80 93AA000E */ lbu $t2, 0xe($sp) +/* 016984 70015D84 314B00C0 */ andi $t3, $t2, 0xc0 +/* 016988 70015D88 000B6103 */ sra $t4, $t3, 4 +/* 01698C 70015D8C A0AC0003 */ sb $t4, 3($a1) +/* 016990 70015D90 90AD0003 */ lbu $t5, 3($a1) +/* 016994 70015D94 15A0000E */ bnez $t5, .L70015DD0 +/* 016998 70015D98 00000000 */ nop +/* 01699C 70015D9C 93AE0011 */ lbu $t6, 0x11($sp) +/* 0169A0 70015DA0 93A80010 */ lbu $t0, 0x10($sp) +/* 0169A4 70015DA4 240B0001 */ li $t3, 1 +/* 0169A8 70015DA8 000E7A00 */ sll $t7, $t6, 8 +/* 0169AC 70015DAC 01E8C025 */ or $t8, $t7, $t0 +/* 0169B0 70015DB0 A4B80000 */ sh $t8, ($a1) +/* 0169B4 70015DB4 93B90012 */ lbu $t9, 0x12($sp) +/* 0169B8 70015DB8 A0B90002 */ sb $t9, 2($a1) +/* 0169BC 70015DBC 8FAA0008 */ lw $t2, 8($sp) +/* 0169C0 70015DC0 93A90007 */ lbu $t1, 7($sp) +/* 0169C4 70015DC4 014B6004 */ sllv $t4, $t3, $t2 +/* 0169C8 70015DC8 012C6825 */ or $t5, $t1, $t4 +/* 0169CC 70015DCC A3AD0007 */ sb $t5, 7($sp) +.L70015DD0: +/* 0169D0 70015DD0 8FAE0008 */ lw $t6, 8($sp) +/* 0169D4 70015DD4 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 0169D8 70015DD8 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 0169DC 70015DDC 8FA80014 */ lw $t0, 0x14($sp) +/* 0169E0 70015DE0 25CF0001 */ addiu $t7, $t6, 1 +/* 0169E4 70015DE4 01F9082A */ slt $at, $t7, $t9 +/* 0169E8 70015DE8 25180008 */ addiu $t8, $t0, 8 +/* 0169EC 70015DEC AFB80014 */ sw $t8, 0x14($sp) +/* 0169F0 70015DF0 AFAF0008 */ sw $t7, 8($sp) +/* 0169F4 70015DF4 1420FFDA */ bnez $at, .L70015D60 +/* 0169F8 70015DF8 24A50004 */ addiu $a1, $a1, 4 +.L70015DFC: +/* 0169FC 70015DFC 93AB0007 */ lbu $t3, 7($sp) +/* 016A00 70015E00 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016A04 70015E04 03E00008 */ jr $ra +/* 016A08 70015E08 A08B0000 */ sb $t3, ($a0) + +/* 016A0C 70015E0C 00000000 */ nop +.section .bss +glabel __osPfsPifRam +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 + + diff --git a/src/libultra/piacs.s b/src/libultra/piacs.s new file mode 100644 index 0000000..b19efd8 --- /dev/null +++ b/src/libultra/piacs.s @@ -0,0 +1,84 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osPiCreateAccessQueue +/* 01E310 7001D710 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E314 7001D714 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E318 7001D718 240E0001 */ li $t6, 1 +/* 01E31C 7001D71C 3C018003 */ lui $at, %hi(__osPiAccessQueueEnabled) +/* 01E320 7001D720 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E324 7001D724 3C058007 */ lui $a1, %hi(piAccessBuf) +/* 01E328 7001D728 AC2E82E0 */ sw $t6, %lo(__osPiAccessQueueEnabled)($at) +/* 01E32C 7001D72C 24A58FE0 */ addiu $a1, %lo(piAccessBuf) # addiu $a1, $a1, -0x7020 +/* 01E330 7001D730 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E334 7001D734 0C0035B4 */ jal osCreateMesgQueue +/* 01E338 7001D738 24060001 */ li $a2, 1 +/* 01E33C 7001D73C 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E340 7001D740 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E344 7001D744 00002825 */ move $a1, $zero +/* 01E348 7001D748 0C0037C4 */ jal osSendMesg +/* 01E34C 7001D74C 00003025 */ move $a2, $zero +/* 01E350 7001D750 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E354 7001D754 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01E358 7001D758 03E00008 */ jr $ra +/* 01E35C 7001D75C 00000000 */ nop + +glabel __osPiGetAccess +/* 01E360 7001D760 3C0E8003 */ lui $t6, %hi(__osPiAccessQueueEnabled) +/* 01E364 7001D764 8DCE82E0 */ lw $t6, %lo(__osPiAccessQueueEnabled)($t6) +/* 01E368 7001D768 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01E36C 7001D76C AFBF0014 */ sw $ra, 0x14($sp) +/* 01E370 7001D770 15C00003 */ bnez $t6, .L7001D780 +/* 01E374 7001D774 00000000 */ nop +/* 01E378 7001D778 0C0075C4 */ jal __osPiCreateAccessQueue +/* 01E37C 7001D77C 00000000 */ nop +.L7001D780: +/* 01E380 7001D780 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E384 7001D784 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E388 7001D788 27A5001C */ addiu $a1, $sp, 0x1c +/* 01E38C 7001D78C 0C003774 */ jal osRecvMesg +/* 01E390 7001D790 24060001 */ li $a2, 1 +/* 01E394 7001D794 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E398 7001D798 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01E39C 7001D79C 03E00008 */ jr $ra +/* 01E3A0 7001D7A0 00000000 */ nop + +glabel __osPiRelAccess +/* 01E3A4 7001D7A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E3A8 7001D7A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E3AC 7001D7AC 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E3B0 7001D7B0 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E3B4 7001D7B4 00002825 */ move $a1, $zero +/* 01E3B8 7001D7B8 0C0037C4 */ jal osSendMesg +/* 01E3BC 7001D7BC 00003025 */ move $a2, $zero +/* 01E3C0 7001D7C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E3C4 7001D7C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01E3C8 7001D7C8 03E00008 */ jr $ra +/* 01E3CC 7001D7CC 00000000 */ nop + +.section .data +glabel __osPiAccessQueueEnabled +.word 0 +.align 4 + +.section .bss +glabel piAccessBuf +.word 0 +.word 0 +glabel __osPiAccessQueue +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 diff --git a/src/libultra/pidma.s b/src/libultra/pidma.s new file mode 100644 index 0000000..f0a0a54 --- /dev/null +++ b/src/libultra/pidma.s @@ -0,0 +1,83 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osPiStartDma +/* 0102A0 7000F6A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0102A4 7000F6A4 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 0102A8 7000F6A8 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 0102AC 7000F6AC AFBF001C */ sw $ra, 0x1c($sp) +/* 0102B0 7000F6B0 AFA40028 */ sw $a0, 0x28($sp) +/* 0102B4 7000F6B4 AFA5002C */ sw $a1, 0x2c($sp) +/* 0102B8 7000F6B8 AFA60030 */ sw $a2, 0x30($sp) +/* 0102BC 7000F6BC AFA70034 */ sw $a3, 0x34($sp) +/* 0102C0 7000F6C0 AFB10018 */ sw $s1, 0x18($sp) +/* 0102C4 7000F6C4 15C00003 */ bnez $t6, .L7000F6D4 +/* 0102C8 7000F6C8 AFB00014 */ sw $s0, 0x14($sp) +/* 0102CC 7000F6CC 10000032 */ b .L7000F798 +/* 0102D0 7000F6D0 2402FFFF */ li $v0, -1 +.L7000F6D4: +/* 0102D4 7000F6D4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0102D8 7000F6D8 15E00005 */ bnez $t7, .L7000F6F0 +/* 0102DC 7000F6DC 00000000 */ nop +/* 0102E0 7000F6E0 8FB90028 */ lw $t9, 0x28($sp) +/* 0102E4 7000F6E4 2418000B */ li $t8, 11 +/* 0102E8 7000F6E8 10000004 */ b .L7000F6FC +/* 0102EC 7000F6EC A7380000 */ sh $t8, ($t9) +.L7000F6F0: +/* 0102F0 7000F6F0 8FA90028 */ lw $t1, 0x28($sp) +/* 0102F4 7000F6F4 2408000C */ li $t0, 12 +/* 0102F8 7000F6F8 A5280000 */ sh $t0, ($t1) +.L7000F6FC: +/* 0102FC 7000F6FC 8FAA002C */ lw $t2, 0x2c($sp) +/* 010300 7000F700 8FAB0028 */ lw $t3, 0x28($sp) +/* 010304 7000F704 24010001 */ li $at, 1 +/* 010308 7000F708 A16A0002 */ sb $t2, 2($t3) +/* 01030C 7000F70C 8FAD0028 */ lw $t5, 0x28($sp) +/* 010310 7000F710 8FAC0040 */ lw $t4, 0x40($sp) +/* 010314 7000F714 ADAC0004 */ sw $t4, 4($t5) +/* 010318 7000F718 8FAF0028 */ lw $t7, 0x28($sp) +/* 01031C 7000F71C 8FAE0038 */ lw $t6, 0x38($sp) +/* 010320 7000F720 ADEE0008 */ sw $t6, 8($t7) +/* 010324 7000F724 8FB90028 */ lw $t9, 0x28($sp) +/* 010328 7000F728 8FB80034 */ lw $t8, 0x34($sp) +/* 01032C 7000F72C AF38000C */ sw $t8, 0xc($t9) +/* 010330 7000F730 8FA90028 */ lw $t1, 0x28($sp) +/* 010334 7000F734 8FA8003C */ lw $t0, 0x3c($sp) +/* 010338 7000F738 AD280010 */ sw $t0, 0x10($t1) +/* 01033C 7000F73C 8FAA0028 */ lw $t2, 0x28($sp) +/* 010340 7000F740 AD400014 */ sw $zero, 0x14($t2) +/* 010344 7000F744 8FAB002C */ lw $t3, 0x2c($sp) +/* 010348 7000F748 1561000A */ bne $t3, $at, .L7000F774 +/* 01034C 7000F74C 00000000 */ nop +/* 010350 7000F750 0C006E00 */ jal osPiGetCmdQueue +/* 010354 7000F754 00000000 */ nop +/* 010358 7000F758 00408825 */ move $s1, $v0 +/* 01035C 7000F75C 02202025 */ move $a0, $s1 +/* 010360 7000F760 8FA50028 */ lw $a1, 0x28($sp) +/* 010364 7000F764 0C006DAC */ jal osJamMesg +/* 010368 7000F768 00003025 */ move $a2, $zero +/* 01036C 7000F76C 10000009 */ b .L7000F794 +/* 010370 7000F770 00408025 */ move $s0, $v0 +.L7000F774: +/* 010374 7000F774 0C006E00 */ jal osPiGetCmdQueue +/* 010378 7000F778 00000000 */ nop +/* 01037C 7000F77C 00408825 */ move $s1, $v0 +/* 010380 7000F780 02202025 */ move $a0, $s1 +/* 010384 7000F784 8FA50028 */ lw $a1, 0x28($sp) +/* 010388 7000F788 0C0037C4 */ jal osSendMesg +/* 01038C 7000F78C 00003025 */ move $a2, $zero +/* 010390 7000F790 00408025 */ move $s0, $v0 +.L7000F794: +/* 010394 7000F794 02001025 */ move $v0, $s0 +.L7000F798: +/* 010398 7000F798 8FBF001C */ lw $ra, 0x1c($sp) +/* 01039C 7000F79C 8FB00014 */ lw $s0, 0x14($sp) +/* 0103A0 7000F7A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0103A4 7000F7A4 03E00008 */ jr $ra +/* 0103A8 7000F7A8 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/pigetcmdq.s b/src/libultra/pigetcmdq.s new file mode 100644 index 0000000..d710670 --- /dev/null +++ b/src/libultra/pigetcmdq.s @@ -0,0 +1,27 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPiGetCmdQueue +/* 01C400 7001B800 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 01C404 7001B804 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 01C408 7001B808 15C00003 */ bnez $t6, .L7001B818 +/* 01C40C 7001B80C 00000000 */ nop +/* 01C410 7001B810 03E00008 */ jr $ra +/* 01C414 7001B814 00001025 */ move $v0, $zero + +.L7001B818: +/* 01C418 7001B818 3C028002 */ lui $v0, %hi(__osPiDevMgr+0x8) +/* 01C41C 7001B81C 8C427798 */ lw $v0, %lo(__osPiDevMgr+0x8)($v0) +/* 01C420 7001B820 03E00008 */ jr $ra +/* 01C424 7001B824 00000000 */ nop + diff --git a/src/libultra/pigetstat.s b/src/libultra/pigetstat.s new file mode 100644 index 0000000..d39850f --- /dev/null +++ b/src/libultra/pigetstat.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osPiGetStatus +/* 00DC70 7000D070 3C0EA460 */ lui $t6, 0xa460 +/* 00DC74 7000D074 03E00008 */ jr $ra +/* 00DC78 7000D078 8DC20010 */ lw $v0, 0x10($t6) diff --git a/src/libultra/pimgr.s b/src/libultra/pimgr.s new file mode 100644 index 0000000..6e3d608 --- /dev/null +++ b/src/libultra/pimgr.s @@ -0,0 +1,528 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.ifndef VERSION_EU +glabel osCreatePiManager +/* 0151B0 700145B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0151B4 700145B4 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 0151B8 700145B8 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 0151BC 700145BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0151C0 700145C0 AFA40030 */ sw $a0, 0x30($sp) +/* 0151C4 700145C4 AFA50034 */ sw $a1, 0x34($sp) +/* 0151C8 700145C8 AFA60038 */ sw $a2, 0x38($sp) +/* 0151CC 700145CC 15C00056 */ bnez $t6, .L70014728 +/* 0151D0 700145D0 AFA7003C */ sw $a3, 0x3c($sp) +/* 0151D4 700145D4 8FA40034 */ lw $a0, 0x34($sp) +/* 0151D8 700145D8 8FA50038 */ lw $a1, 0x38($sp) +/* 0151DC 700145DC 0C0035B4 */ jal osCreateMesgQueue +/* 0151E0 700145E0 8FA6003C */ lw $a2, 0x3c($sp) +/* 0151E4 700145E4 3C048006 */ lui $a0, %hi(pieventQueue) +/* 0151E8 700145E8 3C058006 */ lui $a1, %hi(piEventBuf) +/* 0151EC 700145EC 24A57C98 */ addiu $a1, %lo(piEventBuf) # addiu $a1, $a1, 0x7c98 +/* 0151F0 700145F0 24847C80 */ addiu $a0, %lo(pieventQueue) # addiu $a0, $a0, 0x7c80 +/* 0151F4 700145F4 0C0035B4 */ jal osCreateMesgQueue +/* 0151F8 700145F8 24060001 */ li $a2, 1 +/* 0151FC 700145FC 3C0F8003 */ lui $t7, %hi(__osPiAccessQueueEnabled) +/* 015200 70014600 8DEF82E0 */ lw $t7, %lo(__osPiAccessQueueEnabled)($t7) +/* 015204 70014604 15E00003 */ bnez $t7, .L70014614 +/* 015208 70014608 00000000 */ nop +/* 01520C 7001460C 0C0075C4 */ jal __osPiCreateAccessQueue +/* 015210 70014610 00000000 */ nop +.L70014614: +/* 015214 70014614 3C058006 */ lui $a1, %hi(pieventQueue) +/* 015218 70014618 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222 +/* 01521C 7001461C 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222 +/* 015220 70014620 24A57C80 */ addiu $a1, %lo(pieventQueue) # addiu $a1, $a1, 0x7c80 +/* 015224 70014624 0C003714 */ jal osSetEventMesg +/* 015228 70014628 24040008 */ li $a0, 8 +/* 01522C 7001462C 2418FFFF */ li $t8, -1 +/* 015230 70014630 AFB80028 */ sw $t8, 0x28($sp) +/* 015234 70014634 0C00628C */ jal osGetThreadPri +/* 015238 70014638 00002025 */ move $a0, $zero +/* 01523C 7001463C AFA20024 */ sw $v0, 0x24($sp) +/* 015240 70014640 8FB90024 */ lw $t9, 0x24($sp) +/* 015244 70014644 8FA80030 */ lw $t0, 0x30($sp) +/* 015248 70014648 0328082A */ slt $at, $t9, $t0 +/* 01524C 7001464C 10200005 */ beqz $at, .L70014664 +/* 015250 70014650 00000000 */ nop +/* 015254 70014654 AFB90028 */ sw $t9, 0x28($sp) +/* 015258 70014658 00002025 */ move $a0, $zero +/* 01525C 7001465C 0C003600 */ jal osSetThreadPri +/* 015260 70014660 01002825 */ move $a1, $t0 +.L70014664: +/* 015264 70014664 0C00617C */ jal __osDisableInt +/* 015268 70014668 00000000 */ nop +/* 01526C 7001466C 3C018002 */ lui $at, %hi(__osPiDevMgr.cmdQueue) +/* 015270 70014670 8FAB0034 */ lw $t3, 0x34($sp) +/* 015274 70014674 3C0A8006 */ lui $t2, %hi(piThread) +/* 015278 70014678 3C0C8006 */ lui $t4, %hi(pieventQueue) +/* 01527C 7001467C 24090001 */ li $t1, 1 +/* 015280 70014680 254A6AD0 */ addiu $t2, %lo(piThread) # addiu $t2, $t2, 0x6ad0 +/* 015284 70014684 258C7C80 */ addiu $t4, %lo(pieventQueue) # addiu $t4, $t4, 0x7c80 +/* 015288 70014688 AC297790 */ sw $t1, %lo(__osPiDevMgr)($at) +/* 01528C 7001468C AC2A7794 */ sw $t2, %lo(__osPiDevMgr.thread)($at) +/* 015290 70014690 AC2C779C */ sw $t4, %lo(__osPiDevMgr.evtQueue)($at) +/* 015294 70014694 3C188006 */ lui $t8, %hi(piThreadStack) +/* 015298 70014698 AC2B7798 */ sw $t3, %lo(__osPiDevMgr.cmdQueue)($at) +/* 01529C 7001469C 8FA80030 */ lw $t0, 0x30($sp) +/* 0152A0 700146A0 3C018002 */ lui $at, %hi(__osPiDevMgr.edma) +/* 0152A4 700146A4 3C0D8007 */ lui $t5, %hi(__osPiAccessQueue) +/* 0152A8 700146A8 3C0E7001 */ lui $t6, %hi(osPiRawStartDma) # $t6, 0x7001 +/* 0152AC 700146AC 3C0F7002 */ lui $t7, %hi(osEPiRawStartDma) # $t7, 0x7002 +/* 0152B0 700146B0 27186C80 */ addiu $t8, $t8, %lo(piThreadStack) +/* 0152B4 700146B4 25AD8FE8 */ addiu $t5, %lo(__osPiAccessQueue) # addiu $t5, $t5, -0x7018 +/* 0152B8 700146B8 25CECF90 */ addiu $t6, %lo(osPiRawStartDma) # addiu $t6, $t6, -0x3070 +/* 0152BC 700146BC 25EFE530 */ addiu $t7, %lo(osEPiRawStartDma) # addiu $t7, $t7, -0x1ad0 +/* 0152C0 700146C0 27191000 */ addiu $t9, $t8, 0x1000 +/* 0152C4 700146C4 3C067002 */ lui $a2, %hi(__osDevMgrMain) # $a2, 0x7002 +/* 0152C8 700146C8 3C078002 */ lui $a3, %hi(__osPiDevMgr) +/* 0152CC 700146CC AFA2002C */ sw $v0, 0x2c($sp) +/* 0152D0 700146D0 AC2D77A0 */ sw $t5, %lo(__osPiDevMgr.acsQueue)($at) +/* 0152D4 700146D4 AC2E77A4 */ sw $t6, %lo(__osPiDevMgr.dma)($at) +/* 0152D8 700146D8 AC2F77A8 */ sw $t7, %lo(__osPiDevMgr.edma)($at) +/* 0152DC 700146DC 24E77790 */ addiu $a3, %lo(__osPiDevMgr) # addiu $a3, $a3, 0x7790 +/* 0152E0 700146E0 24C6E610 */ addiu $a2, %lo(__osDevMgrMain) # addiu $a2, $a2, -0x19f0 +/* 0152E4 700146E4 AFB90010 */ sw $t9, 0x10($sp) +/* 0152E8 700146E8 01402025 */ move $a0, $t2 +/* 0152EC 700146EC 00002825 */ move $a1, $zero +/* 0152F0 700146F0 0C00350C */ jal osCreateThread +/* 0152F4 700146F4 AFA80014 */ sw $t0, 0x14($sp) +/* 0152F8 700146F8 3C048006 */ lui $a0, %hi(piThread) +/* 0152FC 700146FC 0C003560 */ jal osStartThread +/* 015300 70014700 24846AD0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x6ad0 +/* 015304 70014704 0C006184 */ jal __osRestoreInt +/* 015308 70014708 8FA4002C */ lw $a0, 0x2c($sp) +/* 01530C 7001470C 8FA90028 */ lw $t1, 0x28($sp) +/* 015310 70014710 2401FFFF */ li $at, -1 +/* 015314 70014714 11210004 */ beq $t1, $at, .L70014728 +/* 015318 70014718 00000000 */ nop +/* 01531C 7001471C 00002025 */ move $a0, $zero +/* 015320 70014720 0C003600 */ jal osSetThreadPri +/* 015324 70014724 01202825 */ move $a1, $t1 +.L70014728: +/* 015328 70014728 8FBF001C */ lw $ra, 0x1c($sp) +/* 01532C 7001472C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 015330 70014730 03E00008 */ jr $ra +/* 015334 70014734 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel osCreatePiManager +/* 0026F0 70001AF0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0026F4 70001AF4 AFB00020 */ sw $s0, 0x20($sp) +/* 0026F8 70001AF8 3C108002 */ lui $s0, %hi(__osPiDevMgr) # $s0, 0x8002 +/* 0026FC 70001AFC 26100FB0 */ addiu $s0, %lo(__osPiDevMgr) # addiu $s0, $s0, 0xfb0 +/* 002700 70001B00 8E0E0000 */ lw $t6, ($s0) +/* 002704 70001B04 AFBF0024 */ sw $ra, 0x24($sp) +/* 002708 70001B08 AFA40030 */ sw $a0, 0x30($sp) +/* 00270C 70001B0C AFA50034 */ sw $a1, 0x34($sp) +/* 002710 70001B10 15C0004E */ bnez $t6, .L70001C4C +/* 002714 70001B14 AFA60038 */ sw $a2, 0x38($sp) +/* 002718 70001B18 00A02025 */ move $a0, $a1 +/* 00271C 70001B1C 00C02825 */ move $a1, $a2 +/* 002720 70001B20 0C00310C */ jal osCreateMesgQueue +/* 002724 70001B24 00E03025 */ move $a2, $a3 +/* 002728 70001B28 3C048005 */ lui $a0, %hi(pieventQueue) # $a0, 0x8005 +/* 00272C 70001B2C 3C058005 */ lui $a1, %hi(piEventBuf) # $a1, 0x8005 +/* 002730 70001B30 24A52598 */ addiu $a1, %lo(piEventBuf) # addiu $a1, $a1, 0x2598 +/* 002734 70001B34 24842580 */ addiu $a0, %lo(pieventQueue) # addiu $a0, $a0, 0x2580 +/* 002738 70001B38 0C00310C */ jal osCreateMesgQueue +/* 00273C 70001B3C 24060001 */ li $a2, 1 +/* 002740 70001B40 3C0F8002 */ lui $t7, %hi(__osPiAccessQueueEnabled) # $t7, 0x8002 +/* 002744 70001B44 8DEF31D0 */ lw $t7, %lo(__osPiAccessQueueEnabled)($t7) +/* 002748 70001B48 15E00003 */ bnez $t7, .L70001B58 +/* 00274C 70001B4C 00000000 */ nop +/* 002750 70001B50 0C0036D8 */ jal __osPiCreateAccessQueue +/* 002754 70001B54 00000000 */ nop +.L70001B58: +/* 002758 70001B58 3C058005 */ lui $a1, %hi(pieventQueue) # $a1, 0x8005 +/* 00275C 70001B5C 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222 +/* 002760 70001B60 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222 +/* 002764 70001B64 24A52580 */ addiu $a1, %lo(pieventQueue) # addiu $a1, $a1, 0x2580 +/* 002768 70001B68 0C003194 */ jal osSetEventMesg +/* 00276C 70001B6C 24040008 */ li $a0, 8 +/* 002770 70001B70 2418FFFF */ li $t8, -1 +/* 002774 70001B74 AFB80028 */ sw $t8, 0x28($sp) +/* 002778 70001B78 0C0035A0 */ jal osGetThreadPri +/* 00277C 70001B7C 00002025 */ move $a0, $zero +/* 002780 70001B80 8FB90030 */ lw $t9, 0x30($sp) +/* 002784 70001B84 00002025 */ move $a0, $zero +/* 002788 70001B88 0059082A */ slt $at, $v0, $t9 +/* 00278C 70001B8C 10200003 */ beqz $at, .L70001B9C +/* 002790 70001B90 03202825 */ move $a1, $t9 +/* 002794 70001B94 0C003158 */ jal osSetThreadPri +/* 002798 70001B98 AFA20028 */ sw $v0, 0x28($sp) +.L70001B9C: +/* 00279C 70001B9C 0C0035A8 */ jal __osDisableInt +/* 0027A0 70001BA0 00000000 */ nop +/* 0027A4 70001BA4 8FA90034 */ lw $t1, 0x34($sp) +/* 0027A8 70001BA8 8FAF0030 */ lw $t7, 0x30($sp) +/* 0027AC 70001BAC 3C048005 */ lui $a0, %hi(piThread) # $a0, 0x8005 +/* 0027B0 70001BB0 3C0A8005 */ lui $t2, %hi(pieventQueue) # $t2, 0x8005 +/* 0027B4 70001BB4 3C0B8005 */ lui $t3, %hi(__osPiAccessQueue) # $t3, 0x8005 +/* 0027B8 70001BB8 3C0C7001 */ lui $t4, %hi(osPiRawStartDma) # $t4, 0x7001 +/* 0027BC 70001BBC 3C0D7001 */ lui $t5, %hi(osEPiRawStartDma) # $t5, 0x7001 +/* 0027C0 70001BC0 3C0E8005 */ lui $t6, %hi(pieventQueue) # $t6, 0x8005 +/* 0027C4 70001BC4 248422D0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x22d0 +/* 0027C8 70001BC8 24080001 */ li $t0, 1 +/* 0027CC 70001BCC 254A2580 */ addiu $t2, %lo(pieventQueue) # addiu $t2, $t2, 0x2580 +/* 0027D0 70001BD0 256B7CA8 */ addiu $t3, %lo(__osPiAccessQueue) # addiu $t3, $t3, 0x7ca8 +/* 0027D4 70001BD4 258CBCF0 */ addiu $t4, %lo(osPiRawStartDma) # addiu $t4, $t4, -0x4310 +/* 0027D8 70001BD8 25ADDC20 */ addiu $t5, %lo(osEPiRawStartDma) # addiu $t5, $t5, -0x23e0 +/* 0027DC 70001BDC 25CE2580 */ addiu $t6, %lo(pieventQueue) # addiu $t6, $t6, 0x2580 +/* 0027E0 70001BE0 3C067001 */ lui $a2, %hi(__osDevMgrMain) # $a2, 0x7001 +/* 0027E4 70001BE4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0027E8 70001BE8 AE080000 */ sw $t0, ($s0) +/* 0027EC 70001BEC AE040004 */ sw $a0, 4($s0) +/* 0027F0 70001BF0 AE0A000C */ sw $t2, 0xc($s0) +/* 0027F4 70001BF4 AE0B0010 */ sw $t3, 0x10($s0) +/* 0027F8 70001BF8 AE0C0014 */ sw $t4, 0x14($s0) +/* 0027FC 70001BFC AE0D0018 */ sw $t5, 0x18($s0) +/* 002800 70001C00 24C6DD00 */ addiu $a2, %lo(__osDevMgrMain) # addiu $a2, $a2, -0x2300 +/* 002804 70001C04 AFAE0010 */ sw $t6, 0x10($sp) +/* 002808 70001C08 00002825 */ move $a1, $zero +/* 00280C 70001C0C 02003825 */ move $a3, $s0 +/* 002810 70001C10 AE090008 */ sw $t1, 8($s0) +/* 002814 70001C14 0C003064 */ jal osCreateThread +/* 002818 70001C18 AFAF0014 */ sw $t7, 0x14($sp) +/* 00281C 70001C1C 3C048005 */ lui $a0, %hi(piThread) # $a0, 0x8005 +/* 002820 70001C20 0C0030B8 */ jal osStartThread +/* 002824 70001C24 248422D0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x22d0 +/* 002828 70001C28 0C0035B0 */ jal __osRestoreInt +/* 00282C 70001C2C 8FA4002C */ lw $a0, 0x2c($sp) +/* 002830 70001C30 8FB80028 */ lw $t8, 0x28($sp) +/* 002834 70001C34 2401FFFF */ li $at, -1 +/* 002838 70001C38 00002025 */ move $a0, $zero +/* 00283C 70001C3C 53010004 */ beql $t8, $at, .L70001C50 +/* 002840 70001C40 8FBF0024 */ lw $ra, 0x24($sp) +/* 002844 70001C44 0C003158 */ jal osSetThreadPri +/* 002848 70001C48 03002825 */ move $a1, $t8 +.L70001C4C: +/* 00284C 70001C4C 8FBF0024 */ lw $ra, 0x24($sp) +.L70001C50: +/* 002850 70001C50 8FB00020 */ lw $s0, 0x20($sp) +/* 002854 70001C54 27BD0030 */ addiu $sp, $sp, 0x30 +/* 002858 70001C58 03E00008 */ jr $ra +/* 00285C 70001C5C 00000000 */ nop +.endif + + +.section .data +glabel __osPiDevMgr +glabel __osPiDevMgr.active +.word 0 +glabel __osPiDevMgr.thread +.word 0 +glabel __osPiDevMgr.cmdQueue +.word 0 +glabel __osPiDevMgr.evtQueue +.word 0 +glabel __osPiDevMgr.acsQueue +.word 0 +glabel __osPiDevMgr.dma +.word 0 +glabel __osPiDevMgr.edma +.word 0 + + +glabel __osPiTable +.word 0 + +.section .bss +glabel piThread +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 + +glabel piThreadStack +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 + +glabel pieventQueue +.word 0, 0, 0, 0, 0, 0 + +glabel piEventBuf +.word 0, 0 diff --git a/src/libultra/pirawdma.s b/src/libultra/pirawdma.s new file mode 100644 index 0000000..24d5732 --- /dev/null +++ b/src/libultra/pirawdma.s @@ -0,0 +1,75 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + + +glabel osPiRawStartDma +/* 00DB90 7000CF90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00DB94 7000CF94 AFBF001C */ sw $ra, 0x1c($sp) +/* 00DB98 7000CF98 AFA40028 */ sw $a0, 0x28($sp) +/* 00DB9C 7000CF9C AFA5002C */ sw $a1, 0x2c($sp) +/* 00DBA0 7000CFA0 AFA60030 */ sw $a2, 0x30($sp) +/* 00DBA4 7000CFA4 AFA70034 */ sw $a3, 0x34($sp) +/* 00DBA8 7000CFA8 AFB10018 */ sw $s1, 0x18($sp) +/* 00DBAC 7000CFAC AFB00014 */ sw $s0, 0x14($sp) +/* 00DBB0 7000CFB0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 00DBB4 7000CFB4 8DD00010 */ lw $s0, %lo(PI_STATUS_REG)($t6) +/* 00DBB8 7000CFB8 320F0003 */ andi $t7, $s0, 3 +/* 00DBBC 7000CFBC 11E00006 */ beqz $t7, .L7000CFD8 +/* 00DBC0 7000CFC0 00000000 */ nop +.L7000CFC4: +/* 00DBC4 7000CFC4 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 00DBC8 7000CFC8 8F100010 */ lw $s0, %lo(PI_STATUS_REG)($t8) +/* 00DBCC 7000CFCC 32190003 */ andi $t9, $s0, 3 +/* 00DBD0 7000CFD0 1720FFFC */ bnez $t9, .L7000CFC4 +/* 00DBD4 7000CFD4 00000000 */ nop +.L7000CFD8: +/* 00DBD8 7000CFD8 0C003A2C */ jal osVirtualToPhysical +/* 00DBDC 7000CFDC 8FA40030 */ lw $a0, 0x30($sp) +/* 00DBE0 7000CFE0 3C08A460 */ lui $t0, 0xa460 +/* 00DBE4 7000CFE4 AD020000 */ sw $v0, ($t0) +/* 00DBE8 7000CFE8 3C098000 */ lui $t1, %hi(osRomBase) +/* 00DBEC 7000CFEC 8D290308 */ lw $t1, %lo(osRomBase)($t1) +/* 00DBF0 7000CFF0 8FAA002C */ lw $t2, 0x2c($sp) +/* 00DBF4 7000CFF4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00DBF8 7000CFF8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00DBFC 7000CFFC 012A5825 */ or $t3, $t1, $t2 +/* 00DC00 7000D000 01616024 */ and $t4, $t3, $at +/* 00DC04 7000D004 3C0DA460 */ lui $t5, %hi(PI_CART_ADDR_REG) # $t5, 0xa460 +/* 00DC08 7000D008 ADAC0004 */ sw $t4, %lo(PI_CART_ADDR_REG)($t5) +/* 00DC0C 7000D00C 8FB10028 */ lw $s1, 0x28($sp) +/* 00DC10 7000D010 12200005 */ beqz $s1, .L7000D028 +/* 00DC14 7000D014 24010001 */ li $at, 1 +/* 00DC18 7000D018 12210008 */ beq $s1, $at, .L7000D03C +/* 00DC1C 7000D01C 00000000 */ nop +/* 00DC20 7000D020 1000000B */ b .L7000D050 +/* 00DC24 7000D024 00000000 */ nop +.L7000D028: +/* 00DC28 7000D028 8FAE0034 */ lw $t6, 0x34($sp) +/* 00DC2C 7000D02C 3C18A460 */ lui $t8, %hi(PI_WR_LEN_REG) # $t8, 0xa460 +/* 00DC30 7000D030 25CFFFFF */ addiu $t7, $t6, -1 +/* 00DC34 7000D034 10000008 */ b .L7000D058 +/* 00DC38 7000D038 AF0F000C */ sw $t7, %lo(PI_WR_LEN_REG)($t8) +.L7000D03C: +/* 00DC3C 7000D03C 8FB90034 */ lw $t9, 0x34($sp) +/* 00DC40 7000D040 3C09A460 */ lui $t1, %hi(PI_RD_LEN_REG) # $t1, 0xa460 +/* 00DC44 7000D044 2728FFFF */ addiu $t0, $t9, -1 +/* 00DC48 7000D048 10000003 */ b .L7000D058 +/* 00DC4C 7000D04C AD280008 */ sw $t0, %lo(PI_RD_LEN_REG)($t1) +.L7000D050: +/* 00DC50 7000D050 10000002 */ b .L7000D05C +/* 00DC54 7000D054 2402FFFF */ li $v0, -1 +.L7000D058: +/* 00DC58 7000D058 00001025 */ move $v0, $zero +.L7000D05C: +/* 00DC5C 7000D05C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00DC60 7000D060 8FB00014 */ lw $s0, 0x14($sp) +/* 00DC64 7000D064 8FB10018 */ lw $s1, 0x18($sp) +/* 00DC68 7000D068 03E00008 */ jr $ra +/* 00DC6C 7000D06C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/pirawread.s b/src/libultra/pirawread.s new file mode 100644 index 0000000..c423d2d --- /dev/null +++ b/src/libultra/pirawread.s @@ -0,0 +1,41 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPiRawReadIo +/* 0187E0 70017BE0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 0187E4 70017BE4 8DC60010 */ lw $a2, %lo(PI_STATUS_REG)($t6) +/* 0187E8 70017BE8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0187EC 70017BEC 30CF0003 */ andi $t7, $a2, 3 +/* 0187F0 70017BF0 11E00006 */ beqz $t7, .L70017C0C +/* 0187F4 70017BF4 00000000 */ nop +.L70017BF8: +/* 0187F8 70017BF8 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 0187FC 70017BFC 8F060010 */ lw $a2, %lo(PI_STATUS_REG)($t8) +/* 018800 70017C00 30D90003 */ andi $t9, $a2, 3 +/* 018804 70017C04 1720FFFC */ bnez $t9, .L70017BF8 +/* 018808 70017C08 00000000 */ nop +.L70017C0C: +/* 01880C 70017C0C 3C088000 */ lui $t0, %hi(osRomBase) +/* 018810 70017C10 8D080308 */ lw $t0, %lo(osRomBase)($t0) +/* 018814 70017C14 3C01A000 */ lui $at, 0xa000 +/* 018818 70017C18 00001025 */ move $v0, $zero +/* 01881C 70017C1C 01044825 */ or $t1, $t0, $a0 +/* 018820 70017C20 01215025 */ or $t2, $t1, $at +/* 018824 70017C24 8D4B0000 */ lw $t3, ($t2) +/* 018828 70017C28 27BD0008 */ addiu $sp, $sp, 8 +/* 01882C 70017C2C 03E00008 */ jr $ra +/* 018830 70017C30 ACAB0000 */ sw $t3, ($a1) + +/* 018834 70017C34 00000000 */ nop +/* 018838 70017C38 00000000 */ nop +/* 01883C 70017C3C 00000000 */ nop diff --git a/src/libultra/piread.s b/src/libultra/piread.s new file mode 100644 index 0000000..75545a1 --- /dev/null +++ b/src/libultra/piread.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osPiReadIo +/* 014410 70013810 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 014414 70013814 AFBF001C */ sw $ra, 0x1c($sp) +/* 014418 70013818 AFA40028 */ sw $a0, 0x28($sp) +/* 01441C 7001381C AFA5002C */ sw $a1, 0x2c($sp) +/* 014420 70013820 0C0075D8 */ jal __osPiGetAccess +/* 014424 70013824 AFB00018 */ sw $s0, 0x18($sp) +/* 014428 70013828 8FA40028 */ lw $a0, 0x28($sp) +/* 01442C 7001382C 0C005EF8 */ jal osPiRawReadIo +/* 014430 70013830 8FA5002C */ lw $a1, 0x2c($sp) +/* 014434 70013834 0C0075E9 */ jal __osPiRelAccess +/* 014438 70013838 00408025 */ move $s0, $v0 +/* 01443C 7001383C 8FBF001C */ lw $ra, 0x1c($sp) +/* 014440 70013840 02001025 */ move $v0, $s0 +/* 014444 70013844 8FB00018 */ lw $s0, 0x18($sp) +/* 014448 70013848 03E00008 */ jr $ra +/* 01444C 7001384C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/probetlb.s b/src/libultra/probetlb.s new file mode 100644 index 0000000..5c32573 --- /dev/null +++ b/src/libultra/probetlb.s @@ -0,0 +1,67 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osProbeTLB +/* 019C20 70019020 40085000 */ mfc0 $t0, $10 +/* 019C24 70019024 310900FF */ andi $t1, $t0, 0xff +/* 019C28 70019028 2401E000 */ li $at, -8192 +/* 019C2C 7001902C 00815024 */ and $t2, $a0, $at +/* 019C30 70019030 012A4825 */ or $t1, $t1, $t2 +/* 019C34 70019034 40895000 */ mtc0 $t1, $10 +/* 019C38 70019038 00000000 */ nop +/* 019C3C 7001903C 00000000 */ nop +/* 019C40 70019040 00000000 */ nop +/* 019C44 70019044 42000008 */ tlbp +/* 019C48 70019048 00000000 */ nop +/* 019C4C 7001904C 00000000 */ nop +/* 019C50 70019050 400B0000 */ mfc0 $t3, $0 +/* 019C54 70019054 3C018000 */ lui $at, 0x8000 +/* 019C58 70019058 01615824 */ and $t3, $t3, $at +/* 019C5C 7001905C 1560001A */ bnez $t3, .L700190C8 +/* 019C60 70019060 00000000 */ nop +/* 019C64 70019064 42000001 */ tlbr +/* 019C68 70019068 00000000 */ nop +/* 019C6C 7001906C 00000000 */ nop +/* 019C70 70019070 00000000 */ nop +/* 019C74 70019074 400B2800 */ mfc0 $t3, $5 +/* 019C78 70019078 216B2000 */ addi $t3, $t3, 0x2000 +/* 019C7C 7001907C 000B5842 */ srl $t3, $t3, 1 +/* 019C80 70019080 01646024 */ and $t4, $t3, $a0 +/* 019C84 70019084 15800004 */ bnez $t4, .L70019098 +/* 019C88 70019088 216BFFFF */ addi $t3, $t3, -1 +/* 019C8C 7001908C 40021000 */ mfc0 $v0, $2 +/* 019C90 70019090 10000002 */ b .L7001909C +/* 019C94 70019094 00000000 */ nop +.L70019098: +/* 019C98 70019098 40021800 */ mfc0 $v0, $3 +.L7001909C: +/* 019C9C 7001909C 304D0002 */ andi $t5, $v0, 2 +/* 019CA0 700190A0 11A00009 */ beqz $t5, .L700190C8 +/* 019CA4 700190A4 00000000 */ nop +/* 019CA8 700190A8 3C013FFF */ lui $at, (0x3FFFFFC0 >> 16) # lui $at, 0x3fff +/* 019CAC 700190AC 3421FFC0 */ ori $at, (0x3FFFFFC0 & 0xFFFF) # ori $at, $at, 0xffc0 +/* 019CB0 700190B0 00411024 */ and $v0, $v0, $at +/* 019CB4 700190B4 00021180 */ sll $v0, $v0, 6 +/* 019CB8 700190B8 008B6824 */ and $t5, $a0, $t3 +/* 019CBC 700190BC 004D1020 */ add $v0, $v0, $t5 +/* 019CC0 700190C0 10000002 */ b .L700190CC +/* 019CC4 700190C4 00000000 */ nop +.L700190C8: +/* 019CC8 700190C8 2402FFFF */ li $v0, -1 +.L700190CC: +/* 019CCC 700190CC 40885000 */ mtc0 $t0, $10 +/* 019CD0 700190D0 03E00008 */ jr $ra +/* 019CD4 700190D4 00000000 */ nop + + + diff --git a/src/libultra/recvmesg.s b/src/libultra/recvmesg.s new file mode 100644 index 0000000..2506b75 --- /dev/null +++ b/src/libultra/recvmesg.s @@ -0,0 +1,96 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osRecvMesg +/* 00E9D0 7000DDD0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E9D4 7000DDD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E9D8 7000DDD8 AFA40028 */ sw $a0, 0x28($sp) +/* 00E9DC 7000DDDC AFA5002C */ sw $a1, 0x2c($sp) +/* 00E9E0 7000DDE0 AFA60030 */ sw $a2, 0x30($sp) +/* 00E9E4 7000DDE4 AFB10018 */ sw $s1, 0x18($sp) +/* 00E9E8 7000DDE8 0C00617C */ jal __osDisableInt +/* 00E9EC 7000DDEC AFB00014 */ sw $s0, 0x14($sp) +/* 00E9F0 7000DDF0 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E9F4 7000DDF4 00408025 */ move $s0, $v0 +/* 00E9F8 7000DDF8 8DCF0008 */ lw $t7, 8($t6) +/* 00E9FC 7000DDFC 15E00012 */ bnez $t7, .L7000DE48 +/* 00EA00 7000DE00 00000000 */ nop +.L7000DE04: +/* 00EA04 7000DE04 8FB80030 */ lw $t8, 0x30($sp) +/* 00EA08 7000DE08 17000005 */ bnez $t8, .L7000DE20 +/* 00EA0C 7000DE0C 00000000 */ nop +/* 00EA10 7000DE10 0C006184 */ jal __osRestoreInt +/* 00EA14 7000DE14 02002025 */ move $a0, $s0 +/* 00EA18 7000DE18 10000036 */ b .L7000DEF4 +/* 00EA1C 7000DE1C 2402FFFF */ li $v0, -1 +.L7000DE20: +/* 00EA20 7000DE20 3C088002 */ lui $t0, %hi(__osRunningThread) +/* 00EA24 7000DE24 8D087730 */ lw $t0, %lo(__osRunningThread)($t0) +/* 00EA28 7000DE28 24190008 */ li $t9, 8 +/* 00EA2C 7000DE2C A5190010 */ sh $t9, 0x10($t0) +/* 00EA30 7000DE30 0C0041EB */ jal __osEnqueueAndYield +/* 00EA34 7000DE34 8FA40028 */ lw $a0, 0x28($sp) +/* 00EA38 7000DE38 8FA90028 */ lw $t1, 0x28($sp) +/* 00EA3C 7000DE3C 8D2A0008 */ lw $t2, 8($t1) +/* 00EA40 7000DE40 1140FFF0 */ beqz $t2, .L7000DE04 +/* 00EA44 7000DE44 00000000 */ nop +.L7000DE48: +/* 00EA48 7000DE48 8FAB002C */ lw $t3, 0x2c($sp) +/* 00EA4C 7000DE4C 11600008 */ beqz $t3, .L7000DE70 +/* 00EA50 7000DE50 00000000 */ nop +/* 00EA54 7000DE54 8FAC0028 */ lw $t4, 0x28($sp) +/* 00EA58 7000DE58 8D8E000C */ lw $t6, 0xc($t4) +/* 00EA5C 7000DE5C 8D8D0014 */ lw $t5, 0x14($t4) +/* 00EA60 7000DE60 000E7880 */ sll $t7, $t6, 2 +/* 00EA64 7000DE64 01AFC021 */ addu $t8, $t5, $t7 +/* 00EA68 7000DE68 8F190000 */ lw $t9, ($t8) +/* 00EA6C 7000DE6C AD790000 */ sw $t9, ($t3) +.L7000DE70: +/* 00EA70 7000DE70 8FA80028 */ lw $t0, 0x28($sp) +/* 00EA74 7000DE74 8D09000C */ lw $t1, 0xc($t0) +/* 00EA78 7000DE78 8D0C0010 */ lw $t4, 0x10($t0) +/* 00EA7C 7000DE7C 252A0001 */ addiu $t2, $t1, 1 +/* 00EA80 7000DE80 014C001A */ div $zero, $t2, $t4 +/* 00EA84 7000DE84 00007010 */ mfhi $t6 +/* 00EA88 7000DE88 AD0E000C */ sw $t6, 0xc($t0) +/* 00EA8C 7000DE8C 8FAD0028 */ lw $t5, 0x28($sp) +/* 00EA90 7000DE90 15800002 */ bnez $t4, .L7000DE9C +/* 00EA94 7000DE94 00000000 */ nop +/* 00EA98 7000DE98 0007000D */ break 7 +.L7000DE9C: +/* 00EA9C 7000DE9C 2401FFFF */ li $at, -1 +/* 00EAA0 7000DEA0 15810004 */ bne $t4, $at, .L7000DEB4 +/* 00EAA4 7000DEA4 3C018000 */ lui $at, 0x8000 +/* 00EAA8 7000DEA8 15410002 */ bne $t2, $at, .L7000DEB4 +/* 00EAAC 7000DEAC 00000000 */ nop +/* 00EAB0 7000DEB0 0006000D */ break 6 +.L7000DEB4: +/* 00EAB4 7000DEB4 8DAF0008 */ lw $t7, 8($t5) +/* 00EAB8 7000DEB8 25F8FFFF */ addiu $t8, $t7, -1 +/* 00EABC 7000DEBC ADB80008 */ sw $t8, 8($t5) +/* 00EAC0 7000DEC0 8FB90028 */ lw $t9, 0x28($sp) +/* 00EAC4 7000DEC4 8F2B0004 */ lw $t3, 4($t9) +/* 00EAC8 7000DEC8 8D690000 */ lw $t1, ($t3) +/* 00EACC 7000DECC 11200006 */ beqz $t1, .L7000DEE8 +/* 00EAD0 7000DED0 00000000 */ nop +/* 00EAD4 7000DED4 0C00423D */ jal __osPopThread +/* 00EAD8 7000DED8 27240004 */ addiu $a0, $t9, 4 +/* 00EADC 7000DEDC 00408825 */ move $s1, $v0 +/* 00EAE0 7000DEE0 0C003560 */ jal osStartThread +/* 00EAE4 7000DEE4 02202025 */ move $a0, $s1 +.L7000DEE8: +/* 00EAE8 7000DEE8 0C006184 */ jal __osRestoreInt +/* 00EAEC 7000DEEC 02002025 */ move $a0, $s0 +/* 00EAF0 7000DEF0 00001025 */ move $v0, $zero +.L7000DEF4: +/* 00EAF4 7000DEF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EAF8 7000DEF8 8FB00014 */ lw $s0, 0x14($sp) +/* 00EAFC 7000DEFC 8FB10018 */ lw $s1, 0x18($sp) +/* 00EB00 7000DF00 03E00008 */ jr $ra +/* 00EB04 7000DF04 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/resample.s b/src/libultra/resample.s new file mode 100644 index 0000000..1729d58 --- /dev/null +++ b/src/libultra/resample.s @@ -0,0 +1,239 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alResampleParam +/* 01B200 7001A600 24AEFFFF */ addiu $t6, $a1, -1 +/* 01B204 7001A604 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01B208 7001A608 2DC10009 */ sltiu $at, $t6, 9 +/* 01B20C 7001A60C AFBF0014 */ sw $ra, 0x14($sp) +/* 01B210 7001A610 1020002B */ beqz $at, .L7001A6C0 +/* 01B214 7001A614 00803825 */ move $a3, $a0 +/* 01B218 7001A618 000E7080 */ sll $t6, $t6, 2 +/* 01B21C 7001A61C 3C018003 */ lui $at, %hi(jpt_80029850) +/* 01B220 7001A620 002E0821 */ addu $at, $at, $t6 +/* 01B224 7001A624 8C2E9850 */ lw $t6, %lo(jpt_80029850)($at) +/* 01B228 7001A628 01C00008 */ jr $t6 +/* 01B22C 7001A62C 00000000 */ nop +.L7001A630: +/* 01B230 7001A630 10000029 */ b .L7001A6D8 +/* 01B234 7001A634 ACE60000 */ sw $a2, ($a3) +.L7001A638: +/* 01B238 7001A638 8CE40000 */ lw $a0, ($a3) +/* 01B23C 7001A63C 44802000 */ mtc1 $zero, $f4 +/* 01B240 7001A640 240F0001 */ li $t7, 1 +/* 01B244 7001A644 ACEF0024 */ sw $t7, 0x24($a3) +/* 01B248 7001A648 ACE00030 */ sw $zero, 0x30($a3) +/* 01B24C 7001A64C ACE0001C */ sw $zero, 0x1c($a3) +/* 01B250 7001A650 10800021 */ beqz $a0, .L7001A6D8 +/* 01B254 7001A654 E4E40020 */ swc1 $f4, 0x20($a3) +/* 01B258 7001A658 8C990008 */ lw $t9, 8($a0) +/* 01B25C 7001A65C 24050004 */ li $a1, 4 +/* 01B260 7001A660 00003025 */ move $a2, $zero +/* 01B264 7001A664 0320F809 */ jalr $t9 +/* 01B268 7001A668 00000000 */ nop +/* 01B26C 7001A66C 1000001B */ b .L7001A6DC +/* 01B270 7001A670 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A674: +/* 01B274 7001A674 8CE40000 */ lw $a0, ($a3) +/* 01B278 7001A678 24180001 */ li $t8, 1 +/* 01B27C 7001A67C ACF80030 */ sw $t8, 0x30($a3) +/* 01B280 7001A680 50800016 */ beql $a0, $zero, .L7001A6DC +/* 01B284 7001A684 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B288 7001A688 8C990008 */ lw $t9, 8($a0) +/* 01B28C 7001A68C 24050009 */ li $a1, 9 +/* 01B290 7001A690 00003025 */ move $a2, $zero +/* 01B294 7001A694 0320F809 */ jalr $t9 +/* 01B298 7001A698 00000000 */ nop +/* 01B29C 7001A69C 1000000F */ b .L7001A6DC +/* 01B2A0 7001A6A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A6A4: +/* 01B2A4 7001A6A4 AFA6001C */ sw $a2, 0x1c($sp) +/* 01B2A8 7001A6A8 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 01B2AC 7001A6AC 1000000A */ b .L7001A6D8 +/* 01B2B0 7001A6B0 E4E60018 */ swc1 $f6, 0x18($a3) +.L7001A6B4: +/* 01B2B4 7001A6B4 24080001 */ li $t0, 1 +/* 01B2B8 7001A6B8 10000007 */ b .L7001A6D8 +/* 01B2BC 7001A6BC ACE8001C */ sw $t0, 0x1c($a3) +.L7001A6C0: +/* 01B2C0 7001A6C0 8CE40000 */ lw $a0, ($a3) +/* 01B2C4 7001A6C4 50800005 */ beql $a0, $zero, .L7001A6DC +/* 01B2C8 7001A6C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B2CC 7001A6CC 8C990008 */ lw $t9, 8($a0) +/* 01B2D0 7001A6D0 0320F809 */ jalr $t9 +/* 01B2D4 7001A6D4 00000000 */ nop +.L7001A6D8: +/* 01B2D8 7001A6D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A6DC: +/* 01B2DC 7001A6DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01B2E0 7001A6E0 00001025 */ move $v0, $zero +/* 01B2E4 7001A6E4 03E00008 */ jr $ra +/* 01B2E8 7001A6E8 00000000 */ nop + +glabel alResamplePull +/* 01B2EC 7001A6EC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 01B2F0 7001A6F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 01B2F4 7001A6F4 AFA50054 */ sw $a1, 0x54($sp) +/* 01B2F8 7001A6F8 8C890000 */ lw $t1, ($a0) +/* 01B2FC 7001A6FC 240E0140 */ li $t6, 320 +/* 01B300 7001A700 00804025 */ move $t0, $a0 +/* 01B304 7001A704 00C05025 */ move $t2, $a2 +/* 01B308 7001A708 14C00003 */ bnez $a2, .L7001A718 +/* 01B30C 7001A70C A7AE0046 */ sh $t6, 0x46($sp) +/* 01B310 7001A710 10000074 */ b .L7001A8E4 +/* 01B314 7001A714 8FA20060 */ lw $v0, 0x60($sp) +.L7001A718: +/* 01B318 7001A718 8D0F001C */ lw $t7, 0x1c($t0) +/* 01B31C 7001A71C 8FB80060 */ lw $t8, 0x60($sp) +/* 01B320 7001A720 51E0001A */ beql $t7, $zero, .L7001A78C +/* 01B324 7001A724 C5020018 */ lwc1 $f2, 0x18($t0) +/* 01B328 7001A728 AFB80010 */ sw $t8, 0x10($sp) +/* 01B32C 7001A72C AFAA0058 */ sw $t2, 0x58($sp) +/* 01B330 7001A730 8D390004 */ lw $t9, 4($t1) +/* 01B334 7001A734 01202025 */ move $a0, $t1 +/* 01B338 7001A738 27A50046 */ addiu $a1, $sp, 0x46 +/* 01B33C 7001A73C 0320F809 */ jalr $t9 +/* 01B340 7001A740 01403025 */ move $a2, $t2 +/* 01B344 7001A744 87AB0046 */ lh $t3, 0x46($sp) +/* 01B348 7001A748 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01B34C 7001A74C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01B350 7001A750 01616024 */ and $t4, $t3, $at +/* 01B354 7001A754 3C010A00 */ lui $at, 0xa00 +/* 01B358 7001A758 8FAA0058 */ lw $t2, 0x58($sp) +/* 01B35C 7001A75C 01816825 */ or $t5, $t4, $at +/* 01B360 7001A760 AC4D0000 */ sw $t5, ($v0) +/* 01B364 7001A764 8FAE0054 */ lw $t6, 0x54($sp) +/* 01B368 7001A768 000A5840 */ sll $t3, $t2, 1 +/* 01B36C 7001A76C 316CFFFF */ andi $t4, $t3, 0xffff +/* 01B370 7001A770 85D80000 */ lh $t8, ($t6) +/* 01B374 7001A774 24450008 */ addiu $a1, $v0, 8 +/* 01B378 7001A778 0018CC00 */ sll $t9, $t8, 0x10 +/* 01B37C 7001A77C 032C6825 */ or $t5, $t9, $t4 +/* 01B380 7001A780 10000057 */ b .L7001A8E0 +/* 01B384 7001A784 AC4D0004 */ sw $t5, 4($v0) +/* 01B388 7001A788 C5020018 */ lwc1 $f2, 0x18($t0) +.L7001A78C: +/* 01B38C 7001A78C 3C018003 */ lui $at, %hi(F64_80029878) +/* 01B390 7001A790 D4249878 */ ldc1 $f4, %lo(F64_80029878)($at) +/* 01B394 7001A794 460011A1 */ cvt.d.s $f6, $f2 +/* 01B398 7001A798 3C018003 */ lui $at, %hi(F64_80029880) +/* 01B39C 7001A79C 4626203C */ c.lt.d $f4, $f6 +/* 01B3A0 7001A7A0 00000000 */ nop +/* 01B3A4 7001A7A4 45020005 */ bc1fl .L7001A7BC +/* 01B3A8 7001A7A8 3C014700 */ lui $at, 0x4700 +/* 01B3AC 7001A7AC C4289880 */ lwc1 $f8, %lo(F64_80029880)($at) +/* 01B3B0 7001A7B0 E5080018 */ swc1 $f8, 0x18($t0) +/* 01B3B4 7001A7B4 C5020018 */ lwc1 $f2, 0x18($t0) +/* 01B3B8 7001A7B8 3C014700 */ li $at, 0x47000000 # 32768.000000 +.L7001A7BC: +/* 01B3BC 7001A7BC 44816000 */ mtc1 $at, $f12 +/* 01B3C0 7001A7C0 01202025 */ move $a0, $t1 +/* 01B3C4 7001A7C4 27A50046 */ addiu $a1, $sp, 0x46 +/* 01B3C8 7001A7C8 460C1282 */ mul.s $f10, $f2, $f12 +/* 01B3CC 7001A7CC 4600540D */ trunc.w.s $f16, $f10 +/* 01B3D0 7001A7D0 440F8000 */ mfc1 $t7, $f16 +/* 01B3D4 7001A7D4 448A8000 */ mtc1 $t2, $f16 +/* 01B3D8 7001A7D8 448F9000 */ mtc1 $t7, $f18 +/* 01B3DC 7001A7DC 00000000 */ nop +/* 01B3E0 7001A7E0 46809120 */ cvt.s.w $f4, $f18 +/* 01B3E4 7001A7E4 468084A0 */ cvt.s.w $f18, $f16 +/* 01B3E8 7001A7E8 E5040018 */ swc1 $f4, 0x18($t0) +/* 01B3EC 7001A7EC C5060018 */ lwc1 $f6, 0x18($t0) +/* 01B3F0 7001A7F0 460C3203 */ div.s $f8, $f6, $f12 +/* 01B3F4 7001A7F4 C5060020 */ lwc1 $f6, 0x20($t0) +/* 01B3F8 7001A7F8 E5080018 */ swc1 $f8, 0x18($t0) +/* 01B3FC 7001A7FC C50A0018 */ lwc1 $f10, 0x18($t0) +/* 01B400 7001A800 46125102 */ mul.s $f4, $f10, $f18 +/* 01B404 7001A804 46043000 */ add.s $f0, $f6, $f4 +/* 01B408 7001A808 4600020D */ trunc.w.s $f8, $f0 +/* 01B40C 7001A80C 44064000 */ mfc1 $a2, $f8 +/* 01B410 7001A810 00000000 */ nop +/* 01B414 7001A814 44868000 */ mtc1 $a2, $f16 +/* 01B418 7001A818 00000000 */ nop +/* 01B41C 7001A81C 468082A0 */ cvt.s.w $f10, $f16 +/* 01B420 7001A820 460A0481 */ sub.s $f18, $f0, $f10 +/* 01B424 7001A824 E5120020 */ swc1 $f18, 0x20($t0) +/* 01B428 7001A828 8FAB0060 */ lw $t3, 0x60($sp) +/* 01B42C 7001A82C AFAA0058 */ sw $t2, 0x58($sp) +/* 01B430 7001A830 AFA80050 */ sw $t0, 0x50($sp) +/* 01B434 7001A834 AFAB0010 */ sw $t3, 0x10($sp) +/* 01B438 7001A838 8D390004 */ lw $t9, 4($t1) +/* 01B43C 7001A83C 0320F809 */ jalr $t9 +/* 01B440 7001A840 00000000 */ nop +/* 01B444 7001A844 8FA80050 */ lw $t0, 0x50($sp) +/* 01B448 7001A848 87AD0046 */ lh $t5, 0x46($sp) +/* 01B44C 7001A84C 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 01B450 7001A850 44812000 */ mtc1 $at, $f4 +/* 01B454 7001A854 C5060018 */ lwc1 $f6, 0x18($t0) +/* 01B458 7001A858 3C010800 */ lui $at, 0x800 +/* 01B45C 7001A85C 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01B460 7001A860 8FAA0058 */ lw $t2, 0x58($sp) +/* 01B464 7001A864 01C17825 */ or $t7, $t6, $at +/* 01B468 7001A868 AC4F0000 */ sw $t7, ($v0) +/* 01B46C 7001A86C 8FB80054 */ lw $t8, 0x54($sp) +/* 01B470 7001A870 46043202 */ mul.s $f8, $f6, $f4 +/* 01B474 7001A874 000A6840 */ sll $t5, $t2, 1 +/* 01B478 7001A878 87190000 */ lh $t9, ($t8) +/* 01B47C 7001A87C 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01B480 7001A880 24580008 */ addiu $t8, $v0, 8 +/* 01B484 7001A884 00196400 */ sll $t4, $t9, 0x10 +/* 01B488 7001A888 018E7825 */ or $t7, $t4, $t6 +/* 01B48C 7001A88C 4600440D */ trunc.w.s $f16, $f8 +/* 01B490 7001A890 AC4F0004 */ sw $t7, 4($v0) +/* 01B494 7001A894 AFB80028 */ sw $t8, 0x28($sp) +/* 01B498 7001A898 8D0B0024 */ lw $t3, 0x24($t0) +/* 01B49C 7001A89C 44038000 */ mfc1 $v1, $f16 +/* 01B4A0 7001A8A0 3C010500 */ lui $at, 0x500 +/* 01B4A4 7001A8A4 317900FF */ andi $t9, $t3, 0xff +/* 01B4A8 7001A8A8 00196C00 */ sll $t5, $t9, 0x10 +/* 01B4AC 7001A8AC 01A16025 */ or $t4, $t5, $at +/* 01B4B0 7001A8B0 306EFFFF */ andi $t6, $v1, 0xffff +/* 01B4B4 7001A8B4 018E7825 */ or $t7, $t4, $t6 +/* 01B4B8 7001A8B8 AC4F0008 */ sw $t7, 8($v0) +/* 01B4BC 7001A8BC 24450010 */ addiu $a1, $v0, 0x10 +/* 01B4C0 7001A8C0 8D040014 */ lw $a0, 0x14($t0) +/* 01B4C4 7001A8C4 0C003A2C */ jal osVirtualToPhysical +/* 01B4C8 7001A8C8 AFA50048 */ sw $a1, 0x48($sp) +/* 01B4CC 7001A8CC 8FB80028 */ lw $t8, 0x28($sp) +/* 01B4D0 7001A8D0 8FA80050 */ lw $t0, 0x50($sp) +/* 01B4D4 7001A8D4 8FA50048 */ lw $a1, 0x48($sp) +/* 01B4D8 7001A8D8 AF020004 */ sw $v0, 4($t8) +/* 01B4DC 7001A8DC AD000024 */ sw $zero, 0x24($t0) +.L7001A8E0: +/* 01B4E0 7001A8E0 00A01025 */ move $v0, $a1 +.L7001A8E4: +/* 01B4E4 7001A8E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 01B4E8 7001A8E8 27BD0050 */ addiu $sp, $sp, 0x50 +/* 01B4EC 7001A8EC 03E00008 */ jr $ra +/* 01B4F0 7001A8F0 00000000 */ nop +.align 4 + +.section .rodata +glabel jpt_80029850 +.word .L7001A630 +.word .L7001A6C0 +.word .L7001A6C0 +.word .L7001A638 +.word .L7001A6C0 +.word .L7001A6C0 +.word .L7001A6A4 +.word .L7001A6B4 +.word .L7001A674 +.align 3 +glabel F64_80029878 +.double 1.99996 +glabel F64_80029880 +.float 1.9999599 +.word 0 +.word 0 +.word 0 diff --git a/src/libultra/resetglobalintmask.s b/src/libultra/resetglobalintmask.s new file mode 100644 index 0000000..25d73a4 --- /dev/null +++ b/src/libultra/resetglobalintmask.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osResetGlobalIntMask +/* 0218E0 70020CE0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0218E4 70020CE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0218E8 70020CE8 AFA40028 */ sw $a0, 0x28($sp) +/* 0218EC 70020CEC 0C00617C */ jal __osDisableInt +/* 0218F0 70020CF0 AFB00018 */ sw $s0, 0x18($sp) +/* 0218F4 70020CF4 8FAF0028 */ lw $t7, 0x28($sp) +/* 0218F8 70020CF8 3C0E8002 */ lui $t6, %hi(__OSGlobalIntMask) +/* 0218FC 70020CFC 8DCE698C */ lw $t6, %lo(__OSGlobalIntMask)($t6) +/* 021900 70020D00 2401FBFE */ li $at, -1026 +/* 021904 70020D04 01E1C024 */ and $t8, $t7, $at +/* 021908 70020D08 0300C827 */ not $t9, $t8 +/* 02190C 70020D0C 00408025 */ move $s0, $v0 +/* 021910 70020D10 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 021914 70020D14 01D94024 */ and $t0, $t6, $t9 +/* 021918 70020D18 AC28698C */ sw $t0, %lo(__OSGlobalIntMask)($at) +/* 02191C 70020D1C 0C006184 */ jal __osRestoreInt +/* 021920 70020D20 02002025 */ move $a0, $s0 +/* 021924 70020D24 8FBF001C */ lw $ra, 0x1c($sp) +/* 021928 70020D28 8FB00018 */ lw $s0, 0x18($sp) +/* 02192C 70020D2C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 021930 70020D30 03E00008 */ jr $ra +/* 021934 70020D34 00000000 */ nop diff --git a/src/libultra/reverb.s b/src/libultra/reverb.s new file mode 100644 index 0000000..4d0b2d4 --- /dev/null +++ b/src/libultra/reverb.s @@ -0,0 +1,855 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _doModFunc +/* 020510 7001F910 44853000 */ mtc1 $a1, $f6 +/* 020514 7001F914 C4840010 */ lwc1 $f4, 0x10($a0) +/* 020518 7001F918 C4900014 */ lwc1 $f16, 0x14($a0) +/* 02051C 7001F91C 46803220 */ cvt.s.w $f8, $f6 +/* 020520 7001F920 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 020524 7001F924 44812800 */ mtc1 $at, $f5 +/* 020528 7001F928 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 02052C 7001F92C 46082282 */ mul.s $f10, $f4, $f8 +/* 020530 7001F930 44802000 */ mtc1 $zero, $f4 +/* 020534 7001F934 460A8480 */ add.s $f18, $f16, $f10 +/* 020538 7001F938 E4920014 */ swc1 $f18, 0x14($a0) +/* 02053C 7001F93C C4860014 */ lwc1 $f6, 0x14($a0) +/* 020540 7001F940 46003021 */ cvt.d.s $f0, $f6 +/* 020544 7001F944 44803000 */ mtc1 $zero, $f6 +/* 020548 7001F948 4620203C */ c.lt.d $f4, $f0 +/* 02054C 7001F94C 00000000 */ nop +/* 020550 7001F950 45020009 */ bc1fl .L7001F978 +/* 020554 7001F954 462004A0 */ cvt.s.d $f18, $f0 +/* 020558 7001F958 44814800 */ mtc1 $at, $f9 +/* 02055C 7001F95C 44804000 */ mtc1 $zero, $f8 +/* 020560 7001F960 00000000 */ nop +/* 020564 7001F964 46280401 */ sub.d $f16, $f0, $f8 +/* 020568 7001F968 462082A0 */ cvt.s.d $f10, $f16 +/* 02056C 7001F96C 10000003 */ b .L7001F97C +/* 020570 7001F970 E48A0014 */ swc1 $f10, 0x14($a0) +/* 020574 7001F974 462004A0 */ cvt.s.d $f18, $f0 +.L7001F978: +/* 020578 7001F978 E4920014 */ swc1 $f18, 0x14($a0) +.L7001F97C: +/* 02057C 7001F97C C4820014 */ lwc1 $f2, 0x14($a0) +/* 020580 7001F980 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 020584 7001F984 44814800 */ mtc1 $at, $f9 +/* 020588 7001F988 4606103C */ c.lt.s $f2, $f6 +/* 02058C 7001F98C 44804000 */ mtc1 $zero, $f8 +/* 020590 7001F990 45020003 */ bc1fl .L7001F9A0 +/* 020594 7001F994 46001121 */ cvt.d.s $f4, $f2 +/* 020598 7001F998 46001087 */ neg.s $f2, $f2 +/* 02059C 7001F99C 46001121 */ cvt.d.s $f4, $f2 +.L7001F9A0: +/* 0205A0 7001F9A0 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0205A4 7001F9A4 46282401 */ sub.d $f16, $f4, $f8 +/* 0205A8 7001F9A8 462080A0 */ cvt.s.d $f2, $f16 +/* 0205AC 7001F9AC 46025002 */ mul.s $f0, $f10, $f2 +/* 0205B0 7001F9B0 03E00008 */ jr $ra +/* 0205B4 7001F9B4 00000000 */ nop + +glabel _filterBuffer +/* 0205B8 7001F9B8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0205BC 7001F9BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0205C0 7001F9C0 30A2FFFF */ andi $v0, $a1, 0xffff +/* 0205C4 7001F9C4 0006C040 */ sll $t8, $a2, 1 +/* 0205C8 7001F9C8 3319FFFF */ andi $t9, $t8, 0xffff +/* 0205CC 7001F9CC 00027C00 */ sll $t7, $v0, 0x10 +/* 0205D0 7001F9D0 3C010800 */ lui $at, 0x800 +/* 0205D4 7001F9D4 3C0A0B00 */ lui $t2, (0x0B000020 >> 16) # lui $t2, 0xb00 +/* 0205D8 7001F9D8 00417025 */ or $t6, $v0, $at +/* 0205DC 7001F9DC 01F94825 */ or $t1, $t7, $t9 +/* 0205E0 7001F9E0 354A0020 */ ori $t2, (0x0B000020 & 0xFFFF) # ori $t2, $t2, 0x20 +/* 0205E4 7001F9E4 00804025 */ move $t0, $a0 +/* 0205E8 7001F9E8 ACE90004 */ sw $t1, 4($a3) +/* 0205EC 7001F9EC ACEE0000 */ sw $t6, ($a3) +/* 0205F0 7001F9F0 ACEA0008 */ sw $t2, 8($a3) +/* 0205F4 7001F9F4 AFA80028 */ sw $t0, 0x28($sp) +/* 0205F8 7001F9F8 AFA70034 */ sw $a3, 0x34($sp) +/* 0205FC 7001F9FC 0C003A2C */ jal osVirtualToPhysical +/* 020600 7001FA00 24840008 */ addiu $a0, $a0, 8 +/* 020604 7001FA04 8FA70034 */ lw $a3, 0x34($sp) +/* 020608 7001FA08 8FA80028 */ lw $t0, 0x28($sp) +/* 02060C 7001FA0C 3C010E00 */ lui $at, 0xe00 +/* 020610 7001FA10 24E30010 */ addiu $v1, $a3, 0x10 +/* 020614 7001FA14 246B0008 */ addiu $t3, $v1, 8 +/* 020618 7001FA18 ACE2000C */ sw $v0, 0xc($a3) +/* 02061C 7001FA1C AFAB0024 */ sw $t3, 0x24($sp) +/* 020620 7001FA20 8D0C002C */ lw $t4, 0x2c($t0) +/* 020624 7001FA24 850F0002 */ lh $t7, 2($t0) +/* 020628 7001FA28 318D00FF */ andi $t5, $t4, 0xff +/* 02062C 7001FA2C 000D7400 */ sll $t6, $t5, 0x10 +/* 020630 7001FA30 01C1C025 */ or $t8, $t6, $at +/* 020634 7001FA34 31F9FFFF */ andi $t9, $t7, 0xffff +/* 020638 7001FA38 03194825 */ or $t1, $t8, $t9 +/* 02063C 7001FA3C AC690000 */ sw $t1, ($v1) +/* 020640 7001FA40 8D040028 */ lw $a0, 0x28($t0) +/* 020644 7001FA44 0C003A2C */ jal osVirtualToPhysical +/* 020648 7001FA48 AFA30018 */ sw $v1, 0x18($sp) +/* 02064C 7001FA4C 8FA50018 */ lw $a1, 0x18($sp) +/* 020650 7001FA50 8FA80028 */ lw $t0, 0x28($sp) +/* 020654 7001FA54 ACA20004 */ sw $v0, 4($a1) +/* 020658 7001FA58 AD00002C */ sw $zero, 0x2c($t0) +/* 02065C 7001FA5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 020660 7001FA60 8FA20024 */ lw $v0, 0x24($sp) +/* 020664 7001FA64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 020668 7001FA68 03E00008 */ jr $ra +/* 02066C 7001FA6C 00000000 */ nop + +glabel _saveBuffer +/* 020670 7001FA70 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 020674 7001FA74 AFBF001C */ sw $ra, 0x1c($sp) +/* 020678 7001FA78 AFB00018 */ sw $s0, 0x18($sp) +/* 02067C 7001FA7C 8C83001C */ lw $v1, 0x1c($a0) +/* 020680 7001FA80 8C820014 */ lw $v0, 0x14($a0) +/* 020684 7001FA84 8FA80070 */ lw $t0, 0x70($sp) +/* 020688 7001FA88 00037040 */ sll $t6, $v1, 1 +/* 02068C 7001FA8C 00A2082B */ sltu $at, $a1, $v0 +/* 020690 7001FA90 00805025 */ move $t2, $a0 +/* 020694 7001FA94 00C06825 */ move $t5, $a2 +/* 020698 7001FA98 00E05825 */ move $t3, $a3 +/* 02069C 7001FA9C 10200002 */ beqz $at, .L7001FAA8 +/* 0206A0 7001FAA0 004E4821 */ addu $t1, $v0, $t6 +/* 0206A4 7001FAA4 00AE2821 */ addu $a1, $a1, $t6 +.L7001FAA8: +/* 0206A8 7001FAA8 000B3040 */ sll $a2, $t3, 1 +/* 0206AC 7001FAAC 00C53821 */ addu $a3, $a2, $a1 +/* 0206B0 7001FAB0 0127082B */ sltu $at, $t1, $a3 +/* 0206B4 7001FAB4 1020003C */ beqz $at, .L7001FBA8 +/* 0206B8 7001FAB8 25100008 */ addiu $s0, $t0, 8 +/* 0206BC 7001FABC 01255823 */ subu $t3, $t1, $a1 +/* 0206C0 7001FAC0 000BC043 */ sra $t8, $t3, 1 +/* 0206C4 7001FAC4 3C0F0800 */ lui $t7, 0x800 +/* 0206C8 7001FAC8 AD0F0000 */ sw $t7, ($t0) +/* 0206CC 7001FACC 00185840 */ sll $t3, $t8, 1 +/* 0206D0 7001FAD0 3178FFFF */ andi $t8, $t3, 0xffff +/* 0206D4 7001FAD4 000D7C00 */ sll $t7, $t5, 0x10 +/* 0206D8 7001FAD8 01F8C825 */ or $t9, $t7, $t8 +/* 0206DC 7001FADC 25100008 */ addiu $s0, $t0, 8 +/* 0206E0 7001FAE0 AD190004 */ sw $t9, 4($t0) +/* 0206E4 7001FAE4 02006025 */ move $t4, $s0 +/* 0206E8 7001FAE8 3C0E0600 */ lui $t6, 0x600 +/* 0206EC 7001FAEC AD8E0000 */ sw $t6, ($t4) +/* 0206F0 7001FAF0 AFAD0068 */ sw $t5, 0x68($sp) +/* 0206F4 7001FAF4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0206F8 7001FAF8 AFAB0024 */ sw $t3, 0x24($sp) +/* 0206FC 7001FAFC AFAA0060 */ sw $t2, 0x60($sp) +/* 020700 7001FB00 AFA9004C */ sw $t1, 0x4c($sp) +/* 020704 7001FB04 AFA70028 */ sw $a3, 0x28($sp) +/* 020708 7001FB08 AFA6002C */ sw $a2, 0x2c($sp) +/* 02070C 7001FB0C 26100008 */ addiu $s0, $s0, 8 +/* 020710 7001FB10 0C003A2C */ jal osVirtualToPhysical +/* 020714 7001FB14 00A02025 */ move $a0, $a1 +/* 020718 7001FB18 8FAC0044 */ lw $t4, 0x44($sp) +/* 02071C 7001FB1C 8FA70028 */ lw $a3, 0x28($sp) +/* 020720 7001FB20 8FA9004C */ lw $t1, 0x4c($sp) +/* 020724 7001FB24 8FAB0024 */ lw $t3, 0x24($sp) +/* 020728 7001FB28 8FAD0068 */ lw $t5, 0x68($sp) +/* 02072C 7001FB2C 8FAA0060 */ lw $t2, 0x60($sp) +/* 020730 7001FB30 02001825 */ move $v1, $s0 +/* 020734 7001FB34 3C0F0800 */ lui $t7, 0x800 +/* 020738 7001FB38 AD820004 */ sw $v0, 4($t4) +/* 02073C 7001FB3C AC6F0000 */ sw $t7, ($v1) +/* 020740 7001FB40 00E97823 */ subu $t7, $a3, $t1 +/* 020744 7001FB44 016DC821 */ addu $t9, $t3, $t5 +/* 020748 7001FB48 00197400 */ sll $t6, $t9, 0x10 +/* 02074C 7001FB4C 000FC043 */ sra $t8, $t7, 1 +/* 020750 7001FB50 0018C840 */ sll $t9, $t8, 1 +/* 020754 7001FB54 332FFFFF */ andi $t7, $t9, 0xffff +/* 020758 7001FB58 01CFC025 */ or $t8, $t6, $t7 +/* 02075C 7001FB5C 26100008 */ addiu $s0, $s0, 8 +/* 020760 7001FB60 AC780004 */ sw $t8, 4($v1) +/* 020764 7001FB64 02002825 */ move $a1, $s0 +/* 020768 7001FB68 3C190600 */ lui $t9, 0x600 +/* 02076C 7001FB6C ACB90000 */ sw $t9, ($a1) +/* 020770 7001FB70 8D440014 */ lw $a0, 0x14($t2) +/* 020774 7001FB74 AFA5003C */ sw $a1, 0x3c($sp) +/* 020778 7001FB78 0C003A2C */ jal osVirtualToPhysical +/* 02077C 7001FB7C 26100008 */ addiu $s0, $s0, 8 +/* 020780 7001FB80 8FA5003C */ lw $a1, 0x3c($sp) +/* 020784 7001FB84 8FA6002C */ lw $a2, 0x2c($sp) +/* 020788 7001FB88 02001825 */ move $v1, $s0 +/* 02078C 7001FB8C 3C0E0800 */ lui $t6, 0x800 +/* 020790 7001FB90 ACA20004 */ sw $v0, 4($a1) +/* 020794 7001FB94 30CFFFFF */ andi $t7, $a2, 0xffff +/* 020798 7001FB98 AC6F0004 */ sw $t7, 4($v1) +/* 02079C 7001FB9C AC6E0000 */ sw $t6, ($v1) +/* 0207A0 7001FBA0 10000010 */ b .L7001FBE4 +/* 0207A4 7001FBA4 26100008 */ addiu $s0, $s0, 8 +.L7001FBA8: +/* 0207A8 7001FBA8 3C180800 */ lui $t8, 0x800 +/* 0207AC 7001FBAC AD180000 */ sw $t8, ($t0) +/* 0207B0 7001FBB0 000D7400 */ sll $t6, $t5, 0x10 +/* 0207B4 7001FBB4 30CFFFFF */ andi $t7, $a2, 0xffff +/* 0207B8 7001FBB8 01CFC025 */ or $t8, $t6, $t7 +/* 0207BC 7001FBBC AD180004 */ sw $t8, 4($t0) +/* 0207C0 7001FBC0 02001825 */ move $v1, $s0 +/* 0207C4 7001FBC4 3C190600 */ lui $t9, 0x600 +/* 0207C8 7001FBC8 AC790000 */ sw $t9, ($v1) +/* 0207CC 7001FBCC AFA30030 */ sw $v1, 0x30($sp) +/* 0207D0 7001FBD0 26100008 */ addiu $s0, $s0, 8 +/* 0207D4 7001FBD4 0C003A2C */ jal osVirtualToPhysical +/* 0207D8 7001FBD8 00A02025 */ move $a0, $a1 +/* 0207DC 7001FBDC 8FA30030 */ lw $v1, 0x30($sp) +/* 0207E0 7001FBE0 AC620004 */ sw $v0, 4($v1) +.L7001FBE4: +/* 0207E4 7001FBE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0207E8 7001FBE8 02001025 */ move $v0, $s0 +/* 0207EC 7001FBEC 8FB00018 */ lw $s0, 0x18($sp) +/* 0207F0 7001FBF0 03E00008 */ jr $ra +/* 0207F4 7001FBF4 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel _loadBuffer +/* 0207F8 7001FBF8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0207FC 7001FBFC AFBF001C */ sw $ra, 0x1c($sp) +/* 020800 7001FC00 AFB00018 */ sw $s0, 0x18($sp) +/* 020804 7001FC04 8C83001C */ lw $v1, 0x1c($a0) +/* 020808 7001FC08 8C820014 */ lw $v0, 0x14($a0) +/* 02080C 7001FC0C 8FA80070 */ lw $t0, 0x70($sp) +/* 020810 7001FC10 00037040 */ sll $t6, $v1, 1 +/* 020814 7001FC14 00A2082B */ sltu $at, $a1, $v0 +/* 020818 7001FC18 00805025 */ move $t2, $a0 +/* 02081C 7001FC1C 00C06825 */ move $t5, $a2 +/* 020820 7001FC20 00E05825 */ move $t3, $a3 +/* 020824 7001FC24 10200002 */ beqz $at, .L7001FC30 +/* 020828 7001FC28 004E4821 */ addu $t1, $v0, $t6 +/* 02082C 7001FC2C 00AE2821 */ addu $a1, $a1, $t6 +.L7001FC30: +/* 020830 7001FC30 000B3040 */ sll $a2, $t3, 1 +/* 020834 7001FC34 00C53821 */ addu $a3, $a2, $a1 +/* 020838 7001FC38 0127082B */ sltu $at, $t1, $a3 +/* 02083C 7001FC3C 10200037 */ beqz $at, .L7001FD1C +/* 020840 7001FC40 25100008 */ addiu $s0, $t0, 8 +/* 020844 7001FC44 31AFFFFF */ andi $t7, $t5, 0xffff +/* 020848 7001FC48 3C010800 */ lui $at, 0x800 +/* 02084C 7001FC4C 01255823 */ subu $t3, $t1, $a1 +/* 020850 7001FC50 000BC843 */ sra $t9, $t3, 1 +/* 020854 7001FC54 01E1C025 */ or $t8, $t7, $at +/* 020858 7001FC58 00197040 */ sll $t6, $t9, 1 +/* 02085C 7001FC5C 31CFFFFF */ andi $t7, $t6, 0xffff +/* 020860 7001FC60 AD180000 */ sw $t8, ($t0) +/* 020864 7001FC64 25100008 */ addiu $s0, $t0, 8 +/* 020868 7001FC68 AD0F0004 */ sw $t7, 4($t0) +/* 02086C 7001FC6C 02006025 */ move $t4, $s0 +/* 020870 7001FC70 3C180400 */ lui $t8, 0x400 +/* 020874 7001FC74 AD980000 */ sw $t8, ($t4) +/* 020878 7001FC78 AFAD0068 */ sw $t5, 0x68($sp) +/* 02087C 7001FC7C AFAC0044 */ sw $t4, 0x44($sp) +/* 020880 7001FC80 AFAE0024 */ sw $t6, 0x24($sp) +/* 020884 7001FC84 AFAA0060 */ sw $t2, 0x60($sp) +/* 020888 7001FC88 AFA9004C */ sw $t1, 0x4c($sp) +/* 02088C 7001FC8C AFA70028 */ sw $a3, 0x28($sp) +/* 020890 7001FC90 AFA6002C */ sw $a2, 0x2c($sp) +/* 020894 7001FC94 26100008 */ addiu $s0, $s0, 8 +/* 020898 7001FC98 0C003A2C */ jal osVirtualToPhysical +/* 02089C 7001FC9C 00A02025 */ move $a0, $a1 +/* 0208A0 7001FCA0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0208A4 7001FCA4 8FAD0068 */ lw $t5, 0x68($sp) +/* 0208A8 7001FCA8 8FA70028 */ lw $a3, 0x28($sp) +/* 0208AC 7001FCAC 8FA9004C */ lw $t1, 0x4c($sp) +/* 0208B0 7001FCB0 8FAC0044 */ lw $t4, 0x44($sp) +/* 0208B4 7001FCB4 016DC821 */ addu $t9, $t3, $t5 +/* 0208B8 7001FCB8 332EFFFF */ andi $t6, $t9, 0xffff +/* 0208BC 7001FCBC 3C010800 */ lui $at, 0x800 +/* 0208C0 7001FCC0 8FAA0060 */ lw $t2, 0x60($sp) +/* 0208C4 7001FCC4 01C17825 */ or $t7, $t6, $at +/* 0208C8 7001FCC8 00E9C023 */ subu $t8, $a3, $t1 +/* 0208CC 7001FCCC 0018C843 */ sra $t9, $t8, 1 +/* 0208D0 7001FCD0 02001825 */ move $v1, $s0 +/* 0208D4 7001FCD4 AD820004 */ sw $v0, 4($t4) +/* 0208D8 7001FCD8 AC6F0000 */ sw $t7, ($v1) +/* 0208DC 7001FCDC 00197040 */ sll $t6, $t9, 1 +/* 0208E0 7001FCE0 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0208E4 7001FCE4 26100008 */ addiu $s0, $s0, 8 +/* 0208E8 7001FCE8 AC6F0004 */ sw $t7, 4($v1) +/* 0208EC 7001FCEC 02002825 */ move $a1, $s0 +/* 0208F0 7001FCF0 3C180400 */ lui $t8, 0x400 +/* 0208F4 7001FCF4 ACB80000 */ sw $t8, ($a1) +/* 0208F8 7001FCF8 8D440014 */ lw $a0, 0x14($t2) +/* 0208FC 7001FCFC AFA5003C */ sw $a1, 0x3c($sp) +/* 020900 7001FD00 0C003A2C */ jal osVirtualToPhysical +/* 020904 7001FD04 26100008 */ addiu $s0, $s0, 8 +/* 020908 7001FD08 8FA5003C */ lw $a1, 0x3c($sp) +/* 02090C 7001FD0C 8FA6002C */ lw $a2, 0x2c($sp) +/* 020910 7001FD10 ACA20004 */ sw $v0, 4($a1) +/* 020914 7001FD14 10000012 */ b .L7001FD60 +/* 020918 7001FD18 30C7FFFF */ andi $a3, $a2, 0xffff +.L7001FD1C: +/* 02091C 7001FD1C 31B9FFFF */ andi $t9, $t5, 0xffff +/* 020920 7001FD20 3C010800 */ lui $at, 0x800 +/* 020924 7001FD24 03217025 */ or $t6, $t9, $at +/* 020928 7001FD28 30C7FFFF */ andi $a3, $a2, 0xffff +/* 02092C 7001FD2C AD070004 */ sw $a3, 4($t0) +/* 020930 7001FD30 AD0E0000 */ sw $t6, ($t0) +/* 020934 7001FD34 02001825 */ move $v1, $s0 +/* 020938 7001FD38 3C0F0400 */ lui $t7, 0x400 +/* 02093C 7001FD3C AC6F0000 */ sw $t7, ($v1) +/* 020940 7001FD40 AFA70028 */ sw $a3, 0x28($sp) +/* 020944 7001FD44 AFA30034 */ sw $v1, 0x34($sp) +/* 020948 7001FD48 26100008 */ addiu $s0, $s0, 8 +/* 02094C 7001FD4C 0C003A2C */ jal osVirtualToPhysical +/* 020950 7001FD50 00A02025 */ move $a0, $a1 +/* 020954 7001FD54 8FA30034 */ lw $v1, 0x34($sp) +/* 020958 7001FD58 8FA70028 */ lw $a3, 0x28($sp) +/* 02095C 7001FD5C AC620004 */ sw $v0, 4($v1) +.L7001FD60: +/* 020960 7001FD60 02001825 */ move $v1, $s0 +/* 020964 7001FD64 3C180800 */ lui $t8, 0x800 +/* 020968 7001FD68 AC780000 */ sw $t8, ($v1) +/* 02096C 7001FD6C AC670004 */ sw $a3, 4($v1) +/* 020970 7001FD70 8FBF001C */ lw $ra, 0x1c($sp) +/* 020974 7001FD74 26020008 */ addiu $v0, $s0, 8 +/* 020978 7001FD78 8FB00018 */ lw $s0, 0x18($sp) +/* 02097C 7001FD7C 03E00008 */ jr $ra +/* 020980 7001FD80 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel _loadOutputBuffer +/* 020984 7001FD84 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 020988 7001FD88 AFBF0024 */ sw $ra, 0x24($sp) +/* 02098C 7001FD8C AFB10020 */ sw $s1, 0x20($sp) +/* 020990 7001FD90 AFB0001C */ sw $s0, 0x1c($sp) +/* 020994 7001FD94 AFA60068 */ sw $a2, 0x68($sp) +/* 020998 7001FD98 8CAE0024 */ lw $t6, 0x24($a1) +/* 02099C 7001FD9C 00A08025 */ move $s0, $a1 +/* 0209A0 7001FDA0 00E08825 */ move $s1, $a3 +/* 0209A4 7001FDA4 11C0006E */ beqz $t6, .L7001FF60 +/* 0209A8 7001FDA8 00805025 */ move $t2, $a0 +/* 0209AC 7001FDAC 8CAF0004 */ lw $t7, 4($a1) +/* 0209B0 7001FDB0 8CB80000 */ lw $t8, ($a1) +/* 0209B4 7001FDB4 00A02025 */ move $a0, $a1 +/* 0209B8 7001FDB8 00E02825 */ move $a1, $a3 +/* 0209BC 7001FDBC 01F8C823 */ subu $t9, $t7, $t8 +/* 0209C0 7001FDC0 AFB90038 */ sw $t9, 0x38($sp) +/* 0209C4 7001FDC4 0C007E44 */ jal _doModFunc +/* 0209C8 7001FDC8 AFAA0060 */ sw $t2, 0x60($sp) +/* 0209CC 7001FDCC 8FAC0038 */ lw $t4, 0x38($sp) +/* 0209D0 7001FDD0 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 0209D4 7001FDD4 44817000 */ mtc1 $at, $f14 +/* 0209D8 7001FDD8 448C3000 */ mtc1 $t4, $f6 +/* 0209DC 7001FDDC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0209E0 7001FDE0 44812800 */ mtc1 $at, $f5 +/* 0209E4 7001FDE4 46803220 */ cvt.s.w $f8, $f6 +/* 0209E8 7001FDE8 44802000 */ mtc1 $zero, $f4 +/* 0209EC 7001FDEC 8FA40060 */ lw $a0, 0x60($sp) +/* 0209F0 7001FDF0 24060280 */ li $a2, 640 +/* 0209F4 7001FDF4 46080283 */ div.s $f10, $f0, $f8 +/* 0209F8 7001FDF8 460E5402 */ mul.s $f16, $f10, $f14 +/* 0209FC 7001FDFC 4600848D */ trunc.w.s $f18, $f16 +/* 020A00 7001FE00 440E9000 */ mfc1 $t6, $f18 +/* 020A04 7001FE04 00000000 */ nop +/* 020A08 7001FE08 448E3000 */ mtc1 $t6, $f6 +/* 020A0C 7001FE0C 00000000 */ nop +/* 020A10 7001FE10 46803220 */ cvt.s.w $f8, $f6 +/* 020A14 7001FE14 460E4283 */ div.s $f10, $f8, $f14 +/* 020A18 7001FE18 44914000 */ mtc1 $s1, $f8 +/* 020A1C 7001FE1C 46005421 */ cvt.d.s $f16, $f10 +/* 020A20 7001FE20 468042A0 */ cvt.s.w $f10, $f8 +/* 020A24 7001FE24 46302481 */ sub.d $f18, $f4, $f16 +/* 020A28 7001FE28 462090A0 */ cvt.s.d $f2, $f18 +/* 020A2C 7001FE2C 460A1102 */ mul.s $f4, $f2, $f10 +/* 020A30 7001FE30 E7A20044 */ swc1 $f2, 0x44($sp) +/* 020A34 7001FE34 8E020024 */ lw $v0, 0x24($s0) +/* 020A38 7001FE38 C4460020 */ lwc1 $f6, 0x20($v0) +/* 020A3C 7001FE3C 46043300 */ add.s $f12, $f6, $f4 +/* 020A40 7001FE40 4600640D */ trunc.w.s $f16, $f12 +/* 020A44 7001FE44 44098000 */ mfc1 $t1, $f16 +/* 020A48 7001FE48 00000000 */ nop +/* 020A4C 7001FE4C 44899000 */ mtc1 $t1, $f18 +/* 020A50 7001FE50 00000000 */ nop +/* 020A54 7001FE54 46809220 */ cvt.s.w $f8, $f18 +/* 020A58 7001FE58 46086281 */ sub.s $f10, $f12, $f8 +/* 020A5C 7001FE5C E44A0020 */ swc1 $f10, 0x20($v0) +/* 020A60 7001FE60 8E190018 */ lw $t9, 0x18($s0) +/* 020A64 7001FE64 8E180004 */ lw $t8, 4($s0) +/* 020A68 7001FE68 8C8F0018 */ lw $t7, 0x18($a0) +/* 020A6C 7001FE6C AFA9002C */ sw $t1, 0x2c($sp) +/* 020A70 7001FE70 03196023 */ subu $t4, $t8, $t9 +/* 020A74 7001FE74 000C6823 */ negu $t5, $t4 +/* 020A78 7001FE78 000D7040 */ sll $t6, $t5, 1 +/* 020A7C 7001FE7C 01EE4021 */ addu $t0, $t7, $t6 +/* 020A80 7001FE80 31030007 */ andi $v1, $t0, 7 +/* 020A84 7001FE84 8FB90070 */ lw $t9, 0x70($sp) +/* 020A88 7001FE88 0003C043 */ sra $t8, $v1, 1 +/* 020A8C 7001FE8C 00185840 */ sll $t3, $t8, 1 +/* 020A90 7001FE90 010B2823 */ subu $a1, $t0, $t3 +/* 020A94 7001FE94 AFAB0028 */ sw $t3, 0x28($sp) +/* 020A98 7001FE98 03001825 */ move $v1, $t8 +/* 020A9C 7001FE9C 01383821 */ addu $a3, $t1, $t8 +/* 020AA0 7001FEA0 0C007EFE */ jal _loadBuffer +/* 020AA4 7001FEA4 AFB90010 */ sw $t9, 0x10($sp) +/* 020AA8 7001FEA8 8FAB0028 */ lw $t3, 0x28($sp) +/* 020AAC 7001FEAC 3C010800 */ lui $at, 0x800 +/* 020AB0 7001FEB0 244E0008 */ addiu $t6, $v0, 8 +/* 020AB4 7001FEB4 256C0280 */ addiu $t4, $t3, 0x280 +/* 020AB8 7001FEB8 318DFFFF */ andi $t5, $t4, 0xffff +/* 020ABC 7001FEBC 01A17825 */ or $t7, $t5, $at +/* 020AC0 7001FEC0 AC4F0000 */ sw $t7, ($v0) +/* 020AC4 7001FEC4 8FB80068 */ lw $t8, 0x68($sp) +/* 020AC8 7001FEC8 00116040 */ sll $t4, $s1, 1 +/* 020ACC 7001FECC 318DFFFF */ andi $t5, $t4, 0xffff +/* 020AD0 7001FED0 0018CC00 */ sll $t9, $t8, 0x10 +/* 020AD4 7001FED4 032D7825 */ or $t7, $t9, $t5 +/* 020AD8 7001FED8 AC4F0004 */ sw $t7, 4($v0) +/* 020ADC 7001FEDC 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 020AE0 7001FEE0 44812000 */ mtc1 $at, $f4 +/* 020AE4 7001FEE4 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 020AE8 7001FEE8 AFAE0030 */ sw $t6, 0x30($sp) +/* 020AEC 7001FEEC 8E0D0024 */ lw $t5, 0x24($s0) +/* 020AF0 7001FEF0 46043402 */ mul.s $f16, $f6, $f4 +/* 020AF4 7001FEF4 3C010500 */ lui $at, 0x500 +/* 020AF8 7001FEF8 8DAF0024 */ lw $t7, 0x24($t5) +/* 020AFC 7001FEFC 24430010 */ addiu $v1, $v0, 0x10 +/* 020B00 7001FF00 31EE00FF */ andi $t6, $t7, 0xff +/* 020B04 7001FF04 000EC400 */ sll $t8, $t6, 0x10 +/* 020B08 7001FF08 4600848D */ trunc.w.s $f18, $f16 +/* 020B0C 7001FF0C 440C9000 */ mfc1 $t4, $f18 +/* 020B10 7001FF10 00000000 */ nop +/* 020B14 7001FF14 3199FFFF */ andi $t9, $t4, 0xffff +/* 020B18 7001FF18 03016025 */ or $t4, $t8, $at +/* 020B1C 7001FF1C 01996825 */ or $t5, $t4, $t9 +/* 020B20 7001FF20 AC4D0008 */ sw $t5, 8($v0) +/* 020B24 7001FF24 8E0F0024 */ lw $t7, 0x24($s0) +/* 020B28 7001FF28 8DE40014 */ lw $a0, 0x14($t7) +/* 020B2C 7001FF2C 0C003A2C */ jal osVirtualToPhysical +/* 020B30 7001FF30 AFA3005C */ sw $v1, 0x5c($sp) +/* 020B34 7001FF34 8FAE0030 */ lw $t6, 0x30($sp) +/* 020B38 7001FF38 8FA9002C */ lw $t1, 0x2c($sp) +/* 020B3C 7001FF3C 8FA3005C */ lw $v1, 0x5c($sp) +/* 020B40 7001FF40 ADC20004 */ sw $v0, 4($t6) +/* 020B44 7001FF44 8E180024 */ lw $t8, 0x24($s0) +/* 020B48 7001FF48 AF000024 */ sw $zero, 0x24($t8) +/* 020B4C 7001FF4C 8E0C0018 */ lw $t4, 0x18($s0) +/* 020B50 7001FF50 0189C821 */ addu $t9, $t4, $t1 +/* 020B54 7001FF54 03316823 */ subu $t5, $t9, $s1 +/* 020B58 7001FF58 1000000D */ b .L7001FF90 +/* 020B5C 7001FF5C AE0D0018 */ sw $t5, 0x18($s0) +.L7001FF60: +/* 020B60 7001FF60 8E0E0004 */ lw $t6, 4($s0) +/* 020B64 7001FF64 8D4F0018 */ lw $t7, 0x18($t2) +/* 020B68 7001FF68 8FB90070 */ lw $t9, 0x70($sp) +/* 020B6C 7001FF6C 000EC023 */ negu $t8, $t6 +/* 020B70 7001FF70 00186040 */ sll $t4, $t8, 1 +/* 020B74 7001FF74 01402025 */ move $a0, $t2 +/* 020B78 7001FF78 8FA60068 */ lw $a2, 0x68($sp) +/* 020B7C 7001FF7C 02203825 */ move $a3, $s1 +/* 020B80 7001FF80 01EC2821 */ addu $a1, $t7, $t4 +/* 020B84 7001FF84 0C007EFE */ jal _loadBuffer +/* 020B88 7001FF88 AFB90010 */ sw $t9, 0x10($sp) +/* 020B8C 7001FF8C 00401825 */ move $v1, $v0 +.L7001FF90: +/* 020B90 7001FF90 8FBF0024 */ lw $ra, 0x24($sp) +/* 020B94 7001FF94 8FB0001C */ lw $s0, 0x1c($sp) +/* 020B98 7001FF98 8FB10020 */ lw $s1, 0x20($sp) +/* 020B9C 7001FF9C 27BD0060 */ addiu $sp, $sp, 0x60 +/* 020BA0 7001FFA0 03E00008 */ jr $ra +/* 020BA4 7001FFA4 00601025 */ move $v0, $v1 + +glabel alFxParamHdl +/* 020BA8 7001FFA8 24A2FFFE */ addiu $v0, $a1, -2 +/* 020BAC 7001FFAC 304E0007 */ andi $t6, $v0, 7 +/* 020BB0 7001FFB0 2DC10008 */ sltiu $at, $t6, 8 +/* 020BB4 7001FFB4 10200080 */ beqz $at, .L700201B8 +/* 020BB8 7001FFB8 8CC30000 */ lw $v1, ($a2) +/* 020BBC 7001FFBC 000E7080 */ sll $t6, $t6, 2 +/* 020BC0 7001FFC0 3C018003 */ lui $at, %hi(jpt_80029D10) +/* 020BC4 7001FFC4 002E0821 */ addu $at, $at, $t6 +/* 020BC8 7001FFC8 8C2E9D10 */ lw $t6, %lo(jpt_80029D10)($at) +/* 020BCC 7001FFCC 01C00008 */ jr $t6 +/* 020BD0 7001FFD0 00000000 */ nop +.L7001FFD4: +/* 020BD4 7001FFD4 8C8F0020 */ lw $t7, 0x20($a0) +/* 020BD8 7001FFD8 04410003 */ bgez $v0, .L7001FFE8 +/* 020BDC 7001FFDC 0002C0C3 */ sra $t8, $v0, 3 +/* 020BE0 7001FFE0 24410007 */ addiu $at, $v0, 7 +/* 020BE4 7001FFE4 0001C0C3 */ sra $t8, $at, 3 +.L7001FFE8: +/* 020BE8 7001FFE8 0018C880 */ sll $t9, $t8, 2 +/* 020BEC 7001FFEC 0338C821 */ addu $t9, $t9, $t8 +/* 020BF0 7001FFF0 0019C8C0 */ sll $t9, $t9, 3 +/* 020BF4 7001FFF4 01F94021 */ addu $t0, $t7, $t9 +/* 020BF8 7001FFF8 AD030000 */ sw $v1, ($t0) +/* 020BFC 7001FFFC 03E00008 */ jr $ra +/* 020C00 70020000 00001025 */ move $v0, $zero +.L70020004: +/* 020C04 70020004 8C890020 */ lw $t1, 0x20($a0) +/* 020C08 70020008 04410003 */ bgez $v0, .L70020018 +/* 020C0C 7002000C 000250C3 */ sra $t2, $v0, 3 +/* 020C10 70020010 24410007 */ addiu $at, $v0, 7 +/* 020C14 70020014 000150C3 */ sra $t2, $at, 3 +.L70020018: +/* 020C18 70020018 000A5880 */ sll $t3, $t2, 2 +/* 020C1C 7002001C 016A5821 */ addu $t3, $t3, $t2 +/* 020C20 70020020 000B58C0 */ sll $t3, $t3, 3 +/* 020C24 70020024 012B6021 */ addu $t4, $t1, $t3 +/* 020C28 70020028 AD830004 */ sw $v1, 4($t4) +/* 020C2C 7002002C 03E00008 */ jr $ra +/* 020C30 70020030 00001025 */ move $v0, $zero +.L70020034: +/* 020C34 70020034 8C8D0020 */ lw $t5, 0x20($a0) +/* 020C38 70020038 04410003 */ bgez $v0, .L70020048 +/* 020C3C 7002003C 000270C3 */ sra $t6, $v0, 3 +/* 020C40 70020040 24410007 */ addiu $at, $v0, 7 +/* 020C44 70020044 000170C3 */ sra $t6, $at, 3 +.L70020048: +/* 020C48 70020048 000EC080 */ sll $t8, $t6, 2 +/* 020C4C 7002004C 030EC021 */ addu $t8, $t8, $t6 +/* 020C50 70020050 0018C0C0 */ sll $t8, $t8, 3 +/* 020C54 70020054 01B87821 */ addu $t7, $t5, $t8 +/* 020C58 70020058 A5E30008 */ sh $v1, 8($t7) +/* 020C5C 7002005C 03E00008 */ jr $ra +/* 020C60 70020060 00001025 */ move $v0, $zero +.L70020064: +/* 020C64 70020064 8C990020 */ lw $t9, 0x20($a0) +/* 020C68 70020068 04410003 */ bgez $v0, .L70020078 +/* 020C6C 7002006C 000240C3 */ sra $t0, $v0, 3 +/* 020C70 70020070 24410007 */ addiu $at, $v0, 7 +/* 020C74 70020074 000140C3 */ sra $t0, $at, 3 +.L70020078: +/* 020C78 70020078 00085080 */ sll $t2, $t0, 2 +/* 020C7C 7002007C 01485021 */ addu $t2, $t2, $t0 +/* 020C80 70020080 000A50C0 */ sll $t2, $t2, 3 +/* 020C84 70020084 032A4821 */ addu $t1, $t9, $t2 +/* 020C88 70020088 A523000A */ sh $v1, 0xa($t1) +/* 020C8C 7002008C 03E00008 */ jr $ra +/* 020C90 70020090 00001025 */ move $v0, $zero +.L70020094: +/* 020C94 70020094 8C8B0020 */ lw $t3, 0x20($a0) +/* 020C98 70020098 04410003 */ bgez $v0, .L700200A8 +/* 020C9C 7002009C 000260C3 */ sra $t4, $v0, 3 +/* 020CA0 700200A0 24410007 */ addiu $at, $v0, 7 +/* 020CA4 700200A4 000160C3 */ sra $t4, $at, 3 +.L700200A8: +/* 020CA8 700200A8 000C7080 */ sll $t6, $t4, 2 +/* 020CAC 700200AC 01CC7021 */ addu $t6, $t6, $t4 +/* 020CB0 700200B0 000E70C0 */ sll $t6, $t6, 3 +/* 020CB4 700200B4 016E6821 */ addu $t5, $t3, $t6 +/* 020CB8 700200B8 A5A3000C */ sh $v1, 0xc($t5) +/* 020CBC 700200BC 03E00008 */ jr $ra +/* 020CC0 700200C0 00001025 */ move $v0, $zero +.L700200C4: +/* 020CC4 700200C4 44832000 */ mtc1 $v1, $f4 +/* 020CC8 700200C8 3C018003 */ lui $at, %hi(F64_80029D30) +/* 020CCC 700200CC C4289D30 */ lwc1 $f8, %lo(F64_80029D30)($at) +/* 020CD0 700200D0 468021A0 */ cvt.s.w $f6, $f4 +/* 020CD4 700200D4 8C980020 */ lw $t8, 0x20($a0) +/* 020CD8 700200D8 46083283 */ div.s $f10, $f6, $f8 +/* 020CDC 700200DC 04410003 */ bgez $v0, .L700200EC +/* 020CE0 700200E0 000278C3 */ sra $t7, $v0, 3 +/* 020CE4 700200E4 24410007 */ addiu $at, $v0, 7 +/* 020CE8 700200E8 000178C3 */ sra $t7, $at, 3 +.L700200EC: +/* 020CEC 700200EC 000F4080 */ sll $t0, $t7, 2 +/* 020CF0 700200F0 010F4021 */ addu $t0, $t0, $t7 +/* 020CF4 700200F4 000840C0 */ sll $t0, $t0, 3 +/* 020CF8 700200F8 0308C821 */ addu $t9, $t8, $t0 +/* 020CFC 700200FC 00001025 */ move $v0, $zero +/* 020D00 70020100 03E00008 */ jr $ra +/* 020D04 70020104 E72A0010 */ swc1 $f10, 0x10($t9) +.L70020108: +/* 020D08 70020108 8C8A0020 */ lw $t2, 0x20($a0) +/* 020D0C 7002010C 04410003 */ bgez $v0, .L7002011C +/* 020D10 70020110 000248C3 */ sra $t1, $v0, 3 +/* 020D14 70020114 24410007 */ addiu $at, $v0, 7 +/* 020D18 70020118 000148C3 */ sra $t1, $at, 3 +.L7002011C: +/* 020D1C 7002011C 00096080 */ sll $t4, $t1, 2 +/* 020D20 70020120 01896021 */ addu $t4, $t4, $t1 +/* 020D24 70020124 000C60C0 */ sll $t4, $t4, 3 +/* 020D28 70020128 014C2821 */ addu $a1, $t2, $t4 +/* 020D2C 7002012C 8CAB0004 */ lw $t3, 4($a1) +/* 020D30 70020130 8CAE0000 */ lw $t6, ($a1) +/* 020D34 70020134 44833000 */ mtc1 $v1, $f6 +/* 020D38 70020138 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 020D3C 7002013C 016E6823 */ subu $t5, $t3, $t6 +/* 020D40 70020140 448D8000 */ mtc1 $t5, $f16 +/* 020D44 70020144 46803220 */ cvt.s.w $f8, $f6 +/* 020D48 70020148 05A10005 */ bgez $t5, .L70020160 +/* 020D4C 7002014C 468084A1 */ cvt.d.w $f18, $f16 +/* 020D50 70020150 44812800 */ mtc1 $at, $f5 +/* 020D54 70020154 44802000 */ mtc1 $zero, $f4 +/* 020D58 70020158 00000000 */ nop +/* 020D5C 7002015C 46249480 */ add.d $f18, $f18, $f4 +.L70020160: +/* 020D60 70020160 3C018003 */ lui $at, %hi(F64_80029D38) +/* 020D64 70020164 D4309D38 */ ldc1 $f16, %lo(F64_80029D38)($at) +/* 020D68 70020168 460042A1 */ cvt.d.s $f10, $f8 +/* 020D6C 7002016C 00001025 */ move $v0, $zero +/* 020D70 70020170 46305103 */ div.d $f4, $f10, $f16 +/* 020D74 70020174 46249182 */ mul.d $f6, $f18, $f4 +/* 020D78 70020178 46203220 */ cvt.s.d $f8, $f6 +/* 020D7C 7002017C 03E00008 */ jr $ra +/* 020D80 70020180 E4A8001C */ swc1 $f8, 0x1c($a1) +.L70020184: +/* 020D84 70020184 8C8F0020 */ lw $t7, 0x20($a0) +/* 020D88 70020188 04410003 */ bgez $v0, .L70020198 +/* 020D8C 7002018C 0002C0C3 */ sra $t8, $v0, 3 +/* 020D90 70020190 24410007 */ addiu $at, $v0, 7 +/* 020D94 70020194 0001C0C3 */ sra $t8, $at, 3 +.L70020198: +/* 020D98 70020198 00184080 */ sll $t0, $t8, 2 +/* 020D9C 7002019C 01184021 */ addu $t0, $t0, $t8 +/* 020DA0 700201A0 000840C0 */ sll $t0, $t0, 3 +/* 020DA4 700201A4 01E8C821 */ addu $t9, $t7, $t0 +/* 020DA8 700201A8 8F250020 */ lw $a1, 0x20($t9) +/* 020DAC 700201AC 10A00002 */ beqz $a1, .L700201B8 +/* 020DB0 700201B0 00000000 */ nop +/* 020DB4 700201B4 A4A30000 */ sh $v1, ($a1) +.L700201B8: +/* 020DB8 700201B8 03E00008 */ jr $ra +/* 020DBC 700201BC 00001025 */ move $v0, $zero + +glabel alFxParam +/* 020DC0 700201C0 24010001 */ li $at, 1 +/* 020DC4 700201C4 14A10002 */ bne $a1, $at, .L700201D0 +/* 020DC8 700201C8 00000000 */ nop +/* 020DCC 700201CC AC860000 */ sw $a2, ($a0) +.L700201D0: +/* 020DD0 700201D0 03E00008 */ jr $ra +/* 020DD4 700201D4 00001025 */ move $v0, $zero + +glabel alFxPull +/* 020DD8 700201D8 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 020DDC 700201DC AFB3002C */ sw $s3, 0x2c($sp) +/* 020DE0 700201E0 00809825 */ move $s3, $a0 +/* 020DE4 700201E4 AFBF0044 */ sw $ra, 0x44($sp) +/* 020DE8 700201E8 AFBE0040 */ sw $fp, 0x40($sp) +/* 020DEC 700201EC AFB7003C */ sw $s7, 0x3c($sp) +/* 020DF0 700201F0 AFB60038 */ sw $s6, 0x38($sp) +/* 020DF4 700201F4 AFB50034 */ sw $s5, 0x34($sp) +/* 020DF8 700201F8 AFB40030 */ sw $s4, 0x30($sp) +/* 020DFC 700201FC AFB20028 */ sw $s2, 0x28($sp) +/* 020E00 70020200 AFB10024 */ sw $s1, 0x24($sp) +/* 020E04 70020204 AFB00020 */ sw $s0, 0x20($sp) +/* 020E08 70020208 8C840000 */ lw $a0, ($a0) +/* 020E0C 7002020C 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 020E10 70020210 AFA00080 */ sw $zero, 0x80($sp) +/* 020E14 70020214 00C0B025 */ move $s6, $a2 +/* 020E18 70020218 AFAE0010 */ sw $t6, 0x10($sp) +/* 020E1C 7002021C 8C990004 */ lw $t9, 4($a0) +/* 020E20 70020220 0320F809 */ jalr $t9 +/* 020E24 70020224 00000000 */ nop +/* 020E28 70020228 00168840 */ sll $s1, $s6, 1 +/* 020E2C 7002022C 3C180C00 */ lui $t8, (0x0C00DA83 >> 16) # lui $t8, 0xc00 +/* 020E30 70020230 3C0A06C0 */ lui $t2, (0x06C006C0 >> 16) # lui $t2, 0x6c0 +/* 020E34 70020234 3C0B0C00 */ lui $t3, (0x0C005A82 >> 16) # lui $t3, 0xc00 +/* 020E38 70020238 3C0C0800 */ lui $t4, (0x080006C0 >> 16) # lui $t4, 0x800 +/* 020E3C 7002023C 3229FFFF */ andi $t1, $s1, 0xffff +/* 020E40 70020240 3C0F0800 */ lui $t7, 0x800 +/* 020E44 70020244 354A06C0 */ ori $t2, (0x06C006C0 & 0xFFFF) # ori $t2, $t2, 0x6c0 +/* 020E48 70020248 3718DA83 */ ori $t8, (0x0C00DA83 & 0xFFFF) # ori $t8, $t8, 0xda83 +/* 020E4C 7002024C 358C06C0 */ ori $t4, (0x080006C0 & 0xFFFF) # ori $t4, $t4, 0x6c0 +/* 020E50 70020250 356B5A82 */ ori $t3, (0x0C005A82 & 0xFFFF) # ori $t3, $t3, 0x5a82 +/* 020E54 70020254 AC4F0000 */ sw $t7, ($v0) +/* 020E58 70020258 AC490004 */ sw $t1, 4($v0) +/* 020E5C 7002025C AC580008 */ sw $t8, 8($v0) +/* 020E60 70020260 AC4A000C */ sw $t2, 0xc($v0) +/* 020E64 70020264 AC4B0010 */ sw $t3, 0x10($v0) +/* 020E68 70020268 AC4C0014 */ sw $t4, 0x14($v0) +/* 020E6C 7002026C 8E650018 */ lw $a1, 0x18($s3) +/* 020E70 70020270 244D0018 */ addiu $t5, $v0, 0x18 +/* 020E74 70020274 0000A825 */ move $s5, $zero +/* 020E78 70020278 24120140 */ li $s2, 320 +/* 020E7C 7002027C AFAD0010 */ sw $t5, 0x10($sp) +/* 020E80 70020280 AFA90048 */ sw $t1, 0x48($sp) +/* 020E84 70020284 AFB10050 */ sw $s1, 0x50($sp) +/* 020E88 70020288 02602025 */ move $a0, $s3 +/* 020E8C 7002028C 240606C0 */ li $a2, 1728 +/* 020E90 70020290 0C007E9C */ jal _saveBuffer +/* 020E94 70020294 02C03825 */ move $a3, $s6 +/* 020E98 70020298 8FA30080 */ lw $v1, 0x80($sp) +/* 020E9C 7002029C 3C0E0200 */ lui $t6, (0x02000800 >> 16) # lui $t6, 0x200 +/* 020EA0 700202A0 35CE0800 */ ori $t6, (0x02000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 020EA4 700202A4 AC4E0000 */ sw $t6, ($v0) +/* 020EA8 700202A8 AC510004 */ sw $s1, 4($v0) +/* 020EAC 700202AC 92790024 */ lbu $t9, 0x24($s3) +/* 020EB0 700202B0 24500008 */ addiu $s0, $v0, 8 +/* 020EB4 700202B4 0000B825 */ move $s7, $zero +/* 020EB8 700202B8 5B200077 */ blezl $t9, .L70020498 +/* 020EBC 700202BC 8E63001C */ lw $v1, 0x1c($s3) +/* 020EC0 700202C0 8E620018 */ lw $v0, 0x18($s3) +.L700202C4: +/* 020EC4 700202C4 8E6F0020 */ lw $t7, 0x20($s3) +/* 020EC8 700202C8 0017C080 */ sll $t8, $s7, 2 +/* 020ECC 700202CC 0317C021 */ addu $t8, $t8, $s7 +/* 020ED0 700202D0 0018C0C0 */ sll $t8, $t8, 3 +/* 020ED4 700202D4 01F88821 */ addu $s1, $t7, $t8 +/* 020ED8 700202D8 8E2A0000 */ lw $t2, ($s1) +/* 020EDC 700202DC 8E2D0004 */ lw $t5, 4($s1) +/* 020EE0 700202E0 02602025 */ move $a0, $s3 +/* 020EE4 700202E4 000A5823 */ negu $t3, $t2 +/* 020EE8 700202E8 000B6040 */ sll $t4, $t3, 1 +/* 020EEC 700202EC 000D7023 */ negu $t6, $t5 +/* 020EF0 700202F0 004CA021 */ addu $s4, $v0, $t4 +/* 020EF4 700202F4 000EC840 */ sll $t9, $t6, 1 +/* 020EF8 700202F8 16830009 */ bne $s4, $v1, .L70020320 +/* 020EFC 700202FC 0059F021 */ addu $fp, $v0, $t9 +/* 020F00 70020300 02407825 */ move $t7, $s2 +/* 020F04 70020304 00159400 */ sll $s2, $s5, 0x10 +/* 020F08 70020308 000FAC00 */ sll $s5, $t7, 0x10 +/* 020F0C 7002030C 00155403 */ sra $t2, $s5, 0x10 +/* 020F10 70020310 0012C403 */ sra $t8, $s2, 0x10 +/* 020F14 70020314 03009025 */ move $s2, $t8 +/* 020F18 70020318 10000007 */ b .L70020338 +/* 020F1C 7002031C 0140A825 */ move $s5, $t2 +.L70020320: +/* 020F20 70020320 02802825 */ move $a1, $s4 +/* 020F24 70020324 02A03025 */ move $a2, $s5 +/* 020F28 70020328 02C03825 */ move $a3, $s6 +/* 020F2C 7002032C 0C007EFE */ jal _loadBuffer +/* 020F30 70020330 AFB00010 */ sw $s0, 0x10($sp) +/* 020F34 70020334 00408025 */ move $s0, $v0 +.L70020338: +/* 020F38 70020338 02602025 */ move $a0, $s3 +/* 020F3C 7002033C 02202825 */ move $a1, $s1 +/* 020F40 70020340 02403025 */ move $a2, $s2 +/* 020F44 70020344 02C03825 */ move $a3, $s6 +/* 020F48 70020348 0C007F61 */ jal _loadOutputBuffer +/* 020F4C 7002034C AFB00010 */ sw $s0, 0x10($sp) +/* 020F50 70020350 86240008 */ lh $a0, 8($s1) +/* 020F54 70020354 00408025 */ move $s0, $v0 +/* 020F58 70020358 3C010C00 */ lui $at, 0xc00 +/* 020F5C 7002035C 10800014 */ beqz $a0, .L700203B0 +/* 020F60 70020360 308CFFFF */ andi $t4, $a0, 0xffff +/* 020F64 70020364 0015CC00 */ sll $t9, $s5, 0x10 +/* 020F68 70020368 324FFFFF */ andi $t7, $s2, 0xffff +/* 020F6C 7002036C 032FC025 */ or $t8, $t9, $t7 +/* 020F70 70020370 01816825 */ or $t5, $t4, $at +/* 020F74 70020374 AC4D0000 */ sw $t5, ($v0) +/* 020F78 70020378 AC580004 */ sw $t8, 4($v0) +/* 020F7C 7002037C 8E2A0024 */ lw $t2, 0x24($s1) +/* 020F80 70020380 24500008 */ addiu $s0, $v0, 8 +/* 020F84 70020384 5540000B */ bnezl $t2, .L700203B4 +/* 020F88 70020388 8623000A */ lh $v1, 0xa($s1) +/* 020F8C 7002038C 8E2B0020 */ lw $t3, 0x20($s1) +/* 020F90 70020390 02602025 */ move $a0, $s3 +/* 020F94 70020394 03C02825 */ move $a1, $fp +/* 020F98 70020398 15600005 */ bnez $t3, .L700203B0 +/* 020F9C 7002039C 02403025 */ move $a2, $s2 +/* 020FA0 700203A0 02C03825 */ move $a3, $s6 +/* 020FA4 700203A4 0C007E9C */ jal _saveBuffer +/* 020FA8 700203A8 AFB00010 */ sw $s0, 0x10($sp) +/* 020FAC 700203AC 00408025 */ move $s0, $v0 +.L700203B0: +/* 020FB0 700203B0 8623000A */ lh $v1, 0xa($s1) +.L700203B4: +/* 020FB4 700203B4 02001025 */ move $v0, $s0 +/* 020FB8 700203B8 3C010C00 */ lui $at, 0xc00 +/* 020FBC 700203BC 1060000F */ beqz $v1, .L700203FC +/* 020FC0 700203C0 306DFFFF */ andi $t5, $v1, 0xffff +/* 020FC4 700203C4 00127C00 */ sll $t7, $s2, 0x10 +/* 020FC8 700203C8 32B8FFFF */ andi $t8, $s5, 0xffff +/* 020FCC 700203CC 01F85025 */ or $t2, $t7, $t8 +/* 020FD0 700203D0 01A17025 */ or $t6, $t5, $at +/* 020FD4 700203D4 AC4E0000 */ sw $t6, ($v0) +/* 020FD8 700203D8 AC4A0004 */ sw $t2, 4($v0) +/* 020FDC 700203DC 26100008 */ addiu $s0, $s0, 8 +/* 020FE0 700203E0 AFB00010 */ sw $s0, 0x10($sp) +/* 020FE4 700203E4 02602025 */ move $a0, $s3 +/* 020FE8 700203E8 02802825 */ move $a1, $s4 +/* 020FEC 700203EC 02A03025 */ move $a2, $s5 +/* 020FF0 700203F0 0C007E9C */ jal _saveBuffer +/* 020FF4 700203F4 02C03825 */ move $a3, $s6 +/* 020FF8 700203F8 00408025 */ move $s0, $v0 +.L700203FC: +/* 020FFC 700203FC 8E240020 */ lw $a0, 0x20($s1) +/* 021000 70020400 02402825 */ move $a1, $s2 +/* 021004 70020404 02C03025 */ move $a2, $s6 +/* 021008 70020408 50800005 */ beql $a0, $zero, .L70020420 +/* 02100C 7002040C 8E2B0024 */ lw $t3, 0x24($s1) +/* 021010 70020410 0C007E6E */ jal _filterBuffer +/* 021014 70020414 02003825 */ move $a3, $s0 +/* 021018 70020418 00408025 */ move $s0, $v0 +/* 02101C 7002041C 8E2B0024 */ lw $t3, 0x24($s1) +.L70020420: +/* 021020 70020420 02602025 */ move $a0, $s3 +/* 021024 70020424 03C02825 */ move $a1, $fp +/* 021028 70020428 15600005 */ bnez $t3, .L70020440 +/* 02102C 7002042C 02403025 */ move $a2, $s2 +/* 021030 70020430 02C03825 */ move $a3, $s6 +/* 021034 70020434 0C007E9C */ jal _saveBuffer +/* 021038 70020438 AFB00010 */ sw $s0, 0x10($sp) +/* 02103C 7002043C 00408025 */ move $s0, $v0 +.L70020440: +/* 021040 70020440 8623000C */ lh $v1, 0xc($s1) +/* 021044 70020444 26F70001 */ addiu $s7, $s7, 1 +/* 021048 70020448 00176400 */ sll $t4, $s7, 0x10 +/* 02104C 7002044C 1060000A */ beqz $v1, .L70020478 +/* 021050 70020450 000CBC03 */ sra $s7, $t4, 0x10 +/* 021054 70020454 02001025 */ move $v0, $s0 +/* 021058 70020458 306DFFFF */ andi $t5, $v1, 0xffff +/* 02105C 7002045C 3C010C00 */ lui $at, 0xc00 +/* 021060 70020460 00127C00 */ sll $t7, $s2, 0x10 +/* 021064 70020464 35F80800 */ ori $t8, $t7, 0x800 +/* 021068 70020468 01A17025 */ or $t6, $t5, $at +/* 02106C 7002046C AC4E0000 */ sw $t6, ($v0) +/* 021070 70020470 AC580004 */ sw $t8, 4($v0) +/* 021074 70020474 26100008 */ addiu $s0, $s0, 8 +.L70020478: +/* 021078 70020478 926E0024 */ lbu $t6, 0x24($s3) +/* 02107C 7002047C 8E2A0004 */ lw $t2, 4($s1) +/* 021080 70020480 8E620018 */ lw $v0, 0x18($s3) +/* 021084 70020484 02EE082A */ slt $at, $s7, $t6 +/* 021088 70020488 000A5840 */ sll $t3, $t2, 1 +/* 02108C 7002048C 1420FF8D */ bnez $at, .L700202C4 +/* 021090 70020490 004B1821 */ addu $v1, $v0, $t3 +/* 021094 70020494 8E63001C */ lw $v1, 0x1c($s3) +.L70020498: +/* 021098 70020498 8E790018 */ lw $t9, 0x18($s3) +/* 02109C 7002049C 8FAF0050 */ lw $t7, 0x50($sp) +/* 0210A0 700204A0 8E6B0014 */ lw $t3, 0x14($s3) +/* 0210A4 700204A4 00035040 */ sll $t2, $v1, 1 +/* 0210A8 700204A8 032FC021 */ addu $t8, $t9, $t7 +/* 0210AC 700204AC 016A6021 */ addu $t4, $t3, $t2 +/* 0210B0 700204B0 0198082B */ sltu $at, $t4, $t8 +/* 0210B4 700204B4 10200003 */ beqz $at, .L700204C4 +/* 0210B8 700204B8 AE780018 */ sw $t8, 0x18($s3) +/* 0210BC 700204BC 030A6823 */ subu $t5, $t8, $t2 +/* 0210C0 700204C0 AE6D0018 */ sw $t5, 0x18($s3) +.L700204C4: +/* 0210C4 700204C4 3C0E0A00 */ lui $t6, (0x0A000800 >> 16) # lui $t6, 0xa00 +/* 0210C8 700204C8 35CE0800 */ ori $t6, (0x0A000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 0210CC 700204CC 02001825 */ move $v1, $s0 +/* 0210D0 700204D0 AC6E0000 */ sw $t6, ($v1) +/* 0210D4 700204D4 8FB90048 */ lw $t9, 0x48($sp) +/* 0210D8 700204D8 3C0106C0 */ lui $at, 0x6c0 +/* 0210DC 700204DC 26020008 */ addiu $v0, $s0, 8 +/* 0210E0 700204E0 03217825 */ or $t7, $t9, $at +/* 0210E4 700204E4 AC6F0004 */ sw $t7, 4($v1) +/* 0210E8 700204E8 8FBF0044 */ lw $ra, 0x44($sp) +/* 0210EC 700204EC 8FBE0040 */ lw $fp, 0x40($sp) +/* 0210F0 700204F0 8FB7003C */ lw $s7, 0x3c($sp) +/* 0210F4 700204F4 8FB60038 */ lw $s6, 0x38($sp) +/* 0210F8 700204F8 8FB50034 */ lw $s5, 0x34($sp) +/* 0210FC 700204FC 8FB40030 */ lw $s4, 0x30($sp) +/* 021100 70020500 8FB3002C */ lw $s3, 0x2c($sp) +/* 021104 70020504 8FB20028 */ lw $s2, 0x28($sp) +/* 021108 70020508 8FB10024 */ lw $s1, 0x24($sp) +/* 02110C 7002050C 8FB00020 */ lw $s0, 0x20($sp) +/* 021110 70020510 03E00008 */ jr $ra +/* 021114 70020514 27BD00A8 */ addiu $sp, $sp, 0xa8 + +.section .rodata +glabel jpt_80029D10 + .word .L7001FFD4 + .word .L70020004 + .word .L70020064 + .word .L70020034 + .word .L70020094 + .word .L700200C4 + .word .L70020108 + .word .L70020184 +glabel F64_80029D30 + .double 4.9039833923682246e55 +glabel F64_80029D38 + .double 173123.404906676 + diff --git a/src/libultra/rotate.s b/src/libultra/rotate.s new file mode 100644 index 0000000..dcbe14a --- /dev/null +++ b/src/libultra/rotate.s @@ -0,0 +1,148 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guRotateF +/* 018320 70017720 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 018324 70017724 3C018003 */ lui $at, %hi(F32_80029810) +/* 018328 70017728 C4249810 */ lwc1 $f4, %lo(F32_80029810)($at) +/* 01832C 7001772C AFB00018 */ sw $s0, 0x18($sp) +/* 018330 70017730 00808025 */ move $s0, $a0 +/* 018334 70017734 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DE0) +/* 018338 70017738 AFBF001C */ sw $ra, 0x1c($sp) +/* 01833C 7001773C AFA5003C */ sw $a1, 0x3c($sp) +/* 018340 70017740 AFA60040 */ sw $a2, 0x40($sp) +/* 018344 70017744 AFA70044 */ sw $a3, 0x44($sp) +/* 018348 70017748 27A60048 */ addiu $a2, $sp, 0x48 +/* 01834C 7001774C 27A50044 */ addiu $a1, $sp, 0x44 +/* 018350 70017750 27A40040 */ addiu $a0, $sp, 0x40 +/* 018354 70017754 0C007DD4 */ jal guNormalize +/* 018358 70017758 E4247DE0 */ swc1 $f4, %lo(flt_CODE_bss_80067DE0)($at) +/* 01835C 7001775C 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DE0) +/* 018360 70017760 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 018364 70017764 C4267DE0 */ lwc1 $f6, %lo(flt_CODE_bss_80067DE0)($at) +/* 018368 70017768 46066302 */ mul.s $f12, $f12, $f6 +/* 01836C 7001776C 0FC15FAB */ jal sinf +/* 018370 70017770 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 018374 70017774 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 018378 70017778 0FC15FA8 */ jal cosf +/* 01837C 7001777C E7A00034 */ swc1 $f0, 0x34($sp) +/* 018380 70017780 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 018384 70017784 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 018388 70017788 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01838C 7001778C 44814000 */ mtc1 $at, $f8 +/* 018390 70017790 46045182 */ mul.s $f6, $f10, $f4 +/* 018394 70017794 02002025 */ move $a0, $s0 +/* 018398 70017798 46004081 */ sub.s $f2, $f8, $f0 +/* 01839C 7001779C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0183A0 700177A0 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0183A4 700177A4 46023402 */ mul.s $f16, $f6, $f2 +/* 0183A8 700177A8 00000000 */ nop +/* 0183AC 700177AC 46082182 */ mul.s $f6, $f4, $f8 +/* 0183B0 700177B0 E7B0002C */ swc1 $f16, 0x2c($sp) +/* 0183B4 700177B4 46023482 */ mul.s $f18, $f6, $f2 +/* 0183B8 700177B8 00000000 */ nop +/* 0183BC 700177BC 460A4102 */ mul.s $f4, $f8, $f10 +/* 0183C0 700177C0 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0183C4 700177C4 46022182 */ mul.s $f6, $f4, $f2 +/* 0183C8 700177C8 0C004004 */ jal guMtxIdentF +/* 0183CC 700177CC E7A60024 */ swc1 $f6, 0x24($sp) +/* 0183D0 700177D0 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0183D4 700177D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0183D8 700177D8 44815000 */ mtc1 $at, $f10 +/* 0183DC 700177DC 46084002 */ mul.s $f0, $f8, $f8 +/* 0183E0 700177E0 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0183E4 700177E4 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0183E8 700177E8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0183EC 700177EC C7B20028 */ lwc1 $f18, 0x28($sp) +/* 0183F0 700177F0 46005101 */ sub.s $f4, $f10, $f0 +/* 0183F4 700177F4 460C2182 */ mul.s $f6, $f4, $f12 +/* 0183F8 700177F8 46003200 */ add.s $f8, $f6, $f0 +/* 0183FC 700177FC E6080000 */ swc1 $f8, ($s0) +/* 018400 70017800 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 018404 70017804 460E5102 */ mul.s $f4, $f10, $f14 +/* 018408 70017808 46049181 */ sub.s $f6, $f18, $f4 +/* 01840C 7001780C E6060024 */ swc1 $f6, 0x24($s0) +/* 018410 70017810 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 018414 70017814 460E4282 */ mul.s $f10, $f8, $f14 +/* 018418 70017818 44814000 */ mtc1 $at, $f8 +/* 01841C 7001781C 46125100 */ add.s $f4, $f10, $f18 +/* 018420 70017820 E6040018 */ swc1 $f4, 0x18($s0) +/* 018424 70017824 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 018428 70017828 46063082 */ mul.s $f2, $f6, $f6 +/* 01842C 7001782C 46024281 */ sub.s $f10, $f8, $f2 +/* 018430 70017830 460C5102 */ mul.s $f4, $f10, $f12 +/* 018434 70017834 46022180 */ add.s $f6, $f4, $f2 +/* 018438 70017838 E6060014 */ swc1 $f6, 0x14($s0) +/* 01843C 7001783C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 018440 70017840 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 018444 70017844 460E4282 */ mul.s $f10, $f8, $f14 +/* 018448 70017848 46045180 */ add.s $f6, $f10, $f4 +/* 01844C 7001784C E6060020 */ swc1 $f6, 0x20($s0) +/* 018450 70017850 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 018454 70017854 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 018458 70017858 460E5102 */ mul.s $f4, $f10, $f14 +/* 01845C 7001785C 46044181 */ sub.s $f6, $f8, $f4 +/* 018460 70017860 44814000 */ mtc1 $at, $f8 +/* 018464 70017864 E6060008 */ swc1 $f6, 8($s0) +/* 018468 70017868 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 01846C 7001786C 460A5002 */ mul.s $f0, $f10, $f10 +/* 018470 70017870 46004101 */ sub.s $f4, $f8, $f0 +/* 018474 70017874 460C2182 */ mul.s $f6, $f4, $f12 +/* 018478 70017878 46003280 */ add.s $f10, $f6, $f0 +/* 01847C 7001787C E60A0028 */ swc1 $f10, 0x28($s0) +/* 018480 70017880 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 018484 70017884 460E4102 */ mul.s $f4, $f8, $f14 +/* 018488 70017888 46048181 */ sub.s $f6, $f16, $f4 +/* 01848C 7001788C E6060010 */ swc1 $f6, 0x10($s0) +/* 018490 70017890 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 018494 70017894 460E5202 */ mul.s $f8, $f10, $f14 +/* 018498 70017898 46104100 */ add.s $f4, $f8, $f16 +/* 01849C 7001789C E6040004 */ swc1 $f4, 4($s0) +/* 0184A0 700178A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0184A4 700178A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0184A8 700178A8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0184AC 700178AC 03E00008 */ jr $ra +/* 0184B0 700178B0 00000000 */ nop + +glabel guRotate +/* 0184B4 700178B4 44856000 */ mtc1 $a1, $f12 +/* 0184B8 700178B8 44867000 */ mtc1 $a2, $f14 +/* 0184BC 700178BC 44878000 */ mtc1 $a3, $f16 +/* 0184C0 700178C0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0184C4 700178C4 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0184C8 700178C8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0184CC 700178CC AFA40060 */ sw $a0, 0x60($sp) +/* 0184D0 700178D0 44056000 */ mfc1 $a1, $f12 +/* 0184D4 700178D4 44067000 */ mfc1 $a2, $f14 +/* 0184D8 700178D8 44078000 */ mfc1 $a3, $f16 +/* 0184DC 700178DC 27A40020 */ addiu $a0, $sp, 0x20 +/* 0184E0 700178E0 0C005DC8 */ jal guRotateF +/* 0184E4 700178E4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0184E8 700178E8 27A40020 */ addiu $a0, $sp, 0x20 +/* 0184EC 700178EC 0C003FC4 */ jal guMtxF2L +/* 0184F0 700178F0 8FA50060 */ lw $a1, 0x60($sp) +/* 0184F4 700178F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0184F8 700178F8 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0184FC 700178FC 03E00008 */ jr $ra +/* 018500 70017900 00000000 */ nop +.align 4 + +.section .rodata +glabel F32_80029810 +.float 0.017453292 +.align 4 + +.section .bss +glabel flt_CODE_bss_80067DE0 +.word 0 +.word 0,0,0 diff --git a/src/libultra/save.s b/src/libultra/save.s new file mode 100644 index 0000000..c61e488 --- /dev/null +++ b/src/libultra/save.s @@ -0,0 +1,68 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSaveParam +/* 01C1F0 7001B5F0 24010001 */ li $at, 1 +/* 01C1F4 7001B5F4 10A10006 */ beq $a1, $at, .L7001B610 +/* 01C1F8 7001B5F8 00001025 */ move $v0, $zero +/* 01C1FC 7001B5FC 24010006 */ li $at, 6 +/* 01C200 7001B600 50A10006 */ beql $a1, $at, .L7001B61C +/* 01C204 7001B604 AC860014 */ sw $a2, 0x14($a0) +/* 01C208 7001B608 03E00008 */ jr $ra +/* 01C20C 7001B60C 00001025 */ move $v0, $zero + +.L7001B610: +/* 01C210 7001B610 03E00008 */ jr $ra +/* 01C214 7001B614 AC860000 */ sw $a2, ($a0) + +/* 01C218 7001B618 AC860014 */ sw $a2, 0x14($a0) +.L7001B61C: +/* 01C21C 7001B61C 03E00008 */ jr $ra +/* 01C220 7001B620 00001025 */ move $v0, $zero + +glabel alSavePull +/* 01C224 7001B624 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01C228 7001B628 AFBF001C */ sw $ra, 0x1c($sp) +/* 01C22C 7001B62C AFA40020 */ sw $a0, 0x20($sp) +/* 01C230 7001B630 8C840000 */ lw $a0, ($a0) +/* 01C234 7001B634 8FAF0030 */ lw $t7, 0x30($sp) +/* 01C238 7001B638 AFA60028 */ sw $a2, 0x28($sp) +/* 01C23C 7001B63C AFAF0010 */ sw $t7, 0x10($sp) +/* 01C240 7001B640 8C990004 */ lw $t9, 4($a0) +/* 01C244 7001B644 0320F809 */ jalr $t9 +/* 01C248 7001B648 00000000 */ nop +/* 01C24C 7001B64C 8FA60028 */ lw $a2, 0x28($sp) +/* 01C250 7001B650 3C030800 */ lui $v1, 0x800 +/* 01C254 7001B654 3C0A0440 */ lui $t2, (0x04400580 >> 16) # lui $t2, 0x440 +/* 01C258 7001B658 0006C040 */ sll $t8, $a2, 1 +/* 01C25C 7001B65C 00065880 */ sll $t3, $a2, 2 +/* 01C260 7001B660 3308FFFF */ andi $t0, $t8, 0xffff +/* 01C264 7001B664 354A0580 */ ori $t2, (0x04400580 & 0xFFFF) # ori $t2, $t2, 0x580 +/* 01C268 7001B668 3C090D00 */ lui $t1, 0xd00 +/* 01C26C 7001B66C 316CFFFF */ andi $t4, $t3, 0xffff +/* 01C270 7001B670 3C0D0600 */ lui $t5, 0x600 +/* 01C274 7001B674 AC480004 */ sw $t0, 4($v0) +/* 01C278 7001B678 AC430000 */ sw $v1, ($v0) +/* 01C27C 7001B67C AC490008 */ sw $t1, 8($v0) +/* 01C280 7001B680 AC4A000C */ sw $t2, 0xc($v0) +/* 01C284 7001B684 AC4C0014 */ sw $t4, 0x14($v0) +/* 01C288 7001B688 AC430010 */ sw $v1, 0x10($v0) +/* 01C28C 7001B68C AC4D0018 */ sw $t5, 0x18($v0) +/* 01C290 7001B690 8FAE0020 */ lw $t6, 0x20($sp) +/* 01C294 7001B694 24420020 */ addiu $v0, $v0, 0x20 +/* 01C298 7001B698 8DCF0014 */ lw $t7, 0x14($t6) +/* 01C29C 7001B69C AC4FFFFC */ sw $t7, -4($v0) +/* 01C2A0 7001B6A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 01C2A4 7001B6A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01C2A8 7001B6A8 03E00008 */ jr $ra +/* 01C2AC 7001B6AC 00000000 */ nop diff --git a/src/libultra/scale.s b/src/libultra/scale.s new file mode 100644 index 0000000..47f7e8b --- /dev/null +++ b/src/libultra/scale.s @@ -0,0 +1,56 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guScaleF +/* 017A90 70016E90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017A94 70016E94 AFBF0014 */ sw $ra, 0x14($sp) +/* 017A98 70016E98 AFA5001C */ sw $a1, 0x1c($sp) +/* 017A9C 70016E9C AFA60020 */ sw $a2, 0x20($sp) +/* 017AA0 70016EA0 AFA70024 */ sw $a3, 0x24($sp) +/* 017AA4 70016EA4 0C004004 */ jal guMtxIdentF +/* 017AA8 70016EA8 AFA40018 */ sw $a0, 0x18($sp) +/* 017AAC 70016EAC 8FA40018 */ lw $a0, 0x18($sp) +/* 017AB0 70016EB0 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 017AB4 70016EB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017AB8 70016EB8 44815000 */ mtc1 $at, $f10 +/* 017ABC 70016EBC E4840000 */ swc1 $f4, ($a0) +/* 017AC0 70016EC0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 017AC4 70016EC4 E4860014 */ swc1 $f6, 0x14($a0) +/* 017AC8 70016EC8 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017ACC 70016ECC E48A003C */ swc1 $f10, 0x3c($a0) +/* 017AD0 70016ED0 E4880028 */ swc1 $f8, 0x28($a0) +/* 017AD4 70016ED4 8FBF0014 */ lw $ra, 0x14($sp) +/* 017AD8 70016ED8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017ADC 70016EDC 03E00008 */ jr $ra +/* 017AE0 70016EE0 00000000 */ nop + +glabel guScale +/* 017AE4 70016EE4 44856000 */ mtc1 $a1, $f12 +/* 017AE8 70016EE8 44867000 */ mtc1 $a2, $f14 +/* 017AEC 70016EEC 44878000 */ mtc1 $a3, $f16 +/* 017AF0 70016EF0 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 017AF4 70016EF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 017AF8 70016EF8 AFA40058 */ sw $a0, 0x58($sp) +/* 017AFC 70016EFC 44056000 */ mfc1 $a1, $f12 +/* 017B00 70016F00 44067000 */ mfc1 $a2, $f14 +/* 017B04 70016F04 44078000 */ mfc1 $a3, $f16 +/* 017B08 70016F08 0C005BA4 */ jal guScaleF +/* 017B0C 70016F0C 27A40018 */ addiu $a0, $sp, 0x18 +/* 017B10 70016F10 27A40018 */ addiu $a0, $sp, 0x18 +/* 017B14 70016F14 0C003FC4 */ jal guMtxF2L +/* 017B18 70016F18 8FA50058 */ lw $a1, 0x58($sp) +/* 017B1C 70016F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017B20 70016F20 27BD0058 */ addiu $sp, $sp, 0x58 +/* 017B24 70016F24 03E00008 */ jr $ra +/* 017B28 70016F28 00000000 */ nop + diff --git a/src/libultra/sendmesg.s b/src/libultra/sendmesg.s new file mode 100644 index 0000000..8446501 --- /dev/null +++ b/src/libultra/sendmesg.s @@ -0,0 +1,101 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSendMesg +/* 00EB10 7000DF10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00EB14 7000DF14 AFBF0024 */ sw $ra, 0x24($sp) +/* 00EB18 7000DF18 AFA40038 */ sw $a0, 0x38($sp) +/* 00EB1C 7000DF1C AFA5003C */ sw $a1, 0x3c($sp) +/* 00EB20 7000DF20 AFA60040 */ sw $a2, 0x40($sp) +/* 00EB24 7000DF24 AFB20020 */ sw $s2, 0x20($sp) +/* 00EB28 7000DF28 AFB1001C */ sw $s1, 0x1c($sp) +/* 00EB2C 7000DF2C 0C00617C */ jal __osDisableInt +/* 00EB30 7000DF30 AFB00018 */ sw $s0, 0x18($sp) +/* 00EB34 7000DF34 8FAE0038 */ lw $t6, 0x38($sp) +/* 00EB38 7000DF38 00408025 */ move $s0, $v0 +/* 00EB3C 7000DF3C 8DCF0008 */ lw $t7, 8($t6) +/* 00EB40 7000DF40 8DD80010 */ lw $t8, 0x10($t6) +/* 00EB44 7000DF44 01F8082A */ slt $at, $t7, $t8 +/* 00EB48 7000DF48 14200018 */ bnez $at, .L7000DFAC +/* 00EB4C 7000DF4C 00000000 */ nop +.L7000DF50: +/* 00EB50 7000DF50 8FB90040 */ lw $t9, 0x40($sp) +/* 00EB54 7000DF54 24010001 */ li $at, 1 +/* 00EB58 7000DF58 1721000A */ bne $t9, $at, .L7000DF84 +/* 00EB5C 7000DF5C 00000000 */ nop +/* 00EB60 7000DF60 3C098002 */ lui $t1, %hi(__osRunningThread) +/* 00EB64 7000DF64 8D297730 */ lw $t1, %lo(__osRunningThread)($t1) +/* 00EB68 7000DF68 24080008 */ li $t0, 8 +/* 00EB6C 7000DF6C A5280010 */ sh $t0, 0x10($t1) +/* 00EB70 7000DF70 8FA40038 */ lw $a0, 0x38($sp) +/* 00EB74 7000DF74 0C0041EB */ jal __osEnqueueAndYield +/* 00EB78 7000DF78 24840004 */ addiu $a0, $a0, 4 +/* 00EB7C 7000DF7C 10000005 */ b .L7000DF94 +/* 00EB80 7000DF80 00000000 */ nop +.L7000DF84: +/* 00EB84 7000DF84 0C006184 */ jal __osRestoreInt +/* 00EB88 7000DF88 02002025 */ move $a0, $s0 +/* 00EB8C 7000DF8C 1000002D */ b .L7000E044 +/* 00EB90 7000DF90 2402FFFF */ li $v0, -1 +.L7000DF94: +/* 00EB94 7000DF94 8FAA0038 */ lw $t2, 0x38($sp) +/* 00EB98 7000DF98 8D4B0008 */ lw $t3, 8($t2) +/* 00EB9C 7000DF9C 8D4C0010 */ lw $t4, 0x10($t2) +/* 00EBA0 7000DFA0 016C082A */ slt $at, $t3, $t4 +/* 00EBA4 7000DFA4 1020FFEA */ beqz $at, .L7000DF50 +/* 00EBA8 7000DFA8 00000000 */ nop +.L7000DFAC: +/* 00EBAC 7000DFAC 8FAD0038 */ lw $t5, 0x38($sp) +/* 00EBB0 7000DFB0 8FA8003C */ lw $t0, 0x3c($sp) +/* 00EBB4 7000DFB4 8DAE000C */ lw $t6, 0xc($t5) +/* 00EBB8 7000DFB8 8DAF0008 */ lw $t7, 8($t5) +/* 00EBBC 7000DFBC 8DB90010 */ lw $t9, 0x10($t5) +/* 00EBC0 7000DFC0 8DA90014 */ lw $t1, 0x14($t5) +/* 00EBC4 7000DFC4 01CFC021 */ addu $t8, $t6, $t7 +/* 00EBC8 7000DFC8 0319001A */ div $zero, $t8, $t9 +/* 00EBCC 7000DFCC 00008810 */ mfhi $s1 +/* 00EBD0 7000DFD0 00115080 */ sll $t2, $s1, 2 +/* 00EBD4 7000DFD4 012A5821 */ addu $t3, $t1, $t2 +/* 00EBD8 7000DFD8 AD680000 */ sw $t0, ($t3) +/* 00EBDC 7000DFDC 8FAC0038 */ lw $t4, 0x38($sp) +/* 00EBE0 7000DFE0 17200002 */ bnez $t9, .L7000DFEC +/* 00EBE4 7000DFE4 00000000 */ nop +/* 00EBE8 7000DFE8 0007000D */ break 7 +.L7000DFEC: +/* 00EBEC 7000DFEC 2401FFFF */ li $at, -1 +/* 00EBF0 7000DFF0 17210004 */ bne $t9, $at, .L7000E004 +/* 00EBF4 7000DFF4 3C018000 */ lui $at, 0x8000 +/* 00EBF8 7000DFF8 17010002 */ bne $t8, $at, .L7000E004 +/* 00EBFC 7000DFFC 00000000 */ nop +/* 00EC00 7000E000 0006000D */ break 6 +.L7000E004: +/* 00EC04 7000E004 8D8E0008 */ lw $t6, 8($t4) +/* 00EC08 7000E008 25CF0001 */ addiu $t7, $t6, 1 +/* 00EC0C 7000E00C AD8F0008 */ sw $t7, 8($t4) +/* 00EC10 7000E010 8FB80038 */ lw $t8, 0x38($sp) +/* 00EC14 7000E014 8F190000 */ lw $t9, ($t8) +/* 00EC18 7000E018 8F2D0000 */ lw $t5, ($t9) +/* 00EC1C 7000E01C 11A00006 */ beqz $t5, .L7000E038 +/* 00EC20 7000E020 00000000 */ nop +/* 00EC24 7000E024 0C00423D */ jal __osPopThread +/* 00EC28 7000E028 03002025 */ move $a0, $t8 +/* 00EC2C 7000E02C 00409025 */ move $s2, $v0 +/* 00EC30 7000E030 0C003560 */ jal osStartThread +/* 00EC34 7000E034 02402025 */ move $a0, $s2 +.L7000E038: +/* 00EC38 7000E038 0C006184 */ jal __osRestoreInt +/* 00EC3C 7000E03C 02002025 */ move $a0, $s0 +/* 00EC40 7000E040 00001025 */ move $v0, $zero +.L7000E044: +/* 00EC44 7000E044 8FBF0024 */ lw $ra, 0x24($sp) +/* 00EC48 7000E048 8FB00018 */ lw $s0, 0x18($sp) +/* 00EC4C 7000E04C 8FB1001C */ lw $s1, 0x1c($sp) +/* 00EC50 7000E050 8FB20020 */ lw $s2, 0x20($sp) +/* 00EC54 7000E054 03E00008 */ jr $ra +/* 00EC58 7000E058 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/libultra/seq.s b/src/libultra/seq.s new file mode 100644 index 0000000..c17d9b8 --- /dev/null +++ b/src/libultra/seq.s @@ -0,0 +1,458 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSeqGetLoc +/* 021120 70020520 8C8E0008 */ lw $t6, 8($a0) +/* 021124 70020524 ACAE0000 */ sw $t6, ($a1) +/* 021128 70020528 848F001A */ lh $t7, 0x1a($a0) +/* 02112C 7002052C A4AF000C */ sh $t7, 0xc($a1) +/* 021130 70020530 8C98000C */ lw $t8, 0xc($a0) +/* 021134 70020534 03E00008 */ jr $ra +/* 021138 70020538 ACB80004 */ sw $t8, 4($a1) + +glabel alSeqSetLoc +/* 02113C 7002053C 8CAE0000 */ lw $t6, ($a1) +/* 021140 70020540 AC8E0008 */ sw $t6, 8($a0) +/* 021144 70020544 84AF000C */ lh $t7, 0xc($a1) +/* 021148 70020548 A48F001A */ sh $t7, 0x1a($a0) +/* 02114C 7002054C 8CB80004 */ lw $t8, 4($a1) +/* 021150 70020550 03E00008 */ jr $ra +/* 021154 70020554 AC98000C */ sw $t8, 0xc($a0) + +glabel alSeqGetTicks +/* 021158 70020558 03E00008 */ jr $ra +/* 02115C 7002055C 8C82000C */ lw $v0, 0xc($a0) + +/* 021160 70020560 03E00008 */ jr $ra +/* 021164 70020564 00000000 */ nop + +glabel readVarLen +/* 021168 70020568 8C830008 */ lw $v1, 8($a0) +/* 02116C 7002056C 90620000 */ lbu $v0, ($v1) +/* 021170 70020570 246E0001 */ addiu $t6, $v1, 1 +/* 021174 70020574 AC8E0008 */ sw $t6, 8($a0) +/* 021178 70020578 304F0080 */ andi $t7, $v0, 0x80 +/* 02117C 7002057C 11E0000B */ beqz $t7, .L700205AC +/* 021180 70020580 00402825 */ move $a1, $v0 +/* 021184 70020584 3045007F */ andi $a1, $v0, 0x7f +.L70020588: +/* 021188 70020588 8C830008 */ lw $v1, 8($a0) +/* 02118C 7002058C 0005C9C0 */ sll $t9, $a1, 7 +/* 021190 70020590 90620000 */ lbu $v0, ($v1) +/* 021194 70020594 24780001 */ addiu $t8, $v1, 1 +/* 021198 70020598 AC980008 */ sw $t8, 8($a0) +/* 02119C 7002059C 304E007F */ andi $t6, $v0, 0x7f +/* 0211A0 700205A0 304F0080 */ andi $t7, $v0, 0x80 +/* 0211A4 700205A4 15E0FFF8 */ bnez $t7, .L70020588 +/* 0211A8 700205A8 032E2821 */ addu $a1, $t9, $t6 +.L700205AC: +/* 0211AC 700205AC 03E00008 */ jr $ra +/* 0211B0 700205B0 00A01025 */ move $v0, $a1 + +glabel alSeqNextEvent +/* 0211B4 700205B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0211B8 700205B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0211BC 700205BC 00803025 */ move $a2, $a0 +/* 0211C0 700205C0 0C00815A */ jal readVarLen +/* 0211C4 700205C4 00A03825 */ move $a3, $a1 +/* 0211C8 700205C8 8CCE000C */ lw $t6, 0xc($a2) +/* 0211CC 700205CC 8CC30008 */ lw $v1, 8($a2) +/* 0211D0 700205D0 00404825 */ move $t1, $v0 +/* 0211D4 700205D4 01C27821 */ addu $t7, $t6, $v0 +/* 0211D8 700205D8 ACCF000C */ sw $t7, 0xc($a2) +/* 0211DC 700205DC 90640000 */ lbu $a0, ($v1) +/* 0211E0 700205E0 240100FF */ li $at, 255 +/* 0211E4 700205E4 24780001 */ addiu $t8, $v1, 1 +/* 0211E8 700205E8 ACD80008 */ sw $t8, 8($a2) +/* 0211EC 700205EC 00801025 */ move $v0, $a0 +/* 0211F0 700205F0 1481002F */ bne $a0, $at, .L700206B0 +/* 0211F4 700205F4 308500FF */ andi $a1, $a0, 0xff +/* 0211F8 700205F8 93020000 */ lbu $v0, ($t8) +/* 0211FC 700205FC 27190001 */ addiu $t9, $t8, 1 +/* 021200 70020600 24010051 */ li $at, 81 +/* 021204 70020604 ACD90008 */ sw $t9, 8($a2) +/* 021208 70020608 1441001B */ bne $v0, $at, .L70020678 +/* 02120C 7002060C 00404025 */ move $t0, $v0 +/* 021210 70020610 240E0003 */ li $t6, 3 +/* 021214 70020614 A4EE0000 */ sh $t6, ($a3) +/* 021218 70020618 ACE90004 */ sw $t1, 4($a3) +/* 02121C 7002061C A0E50008 */ sb $a1, 8($a3) +/* 021220 70020620 A0E80009 */ sb $t0, 9($a3) +/* 021224 70020624 8CC30008 */ lw $v1, 8($a2) +/* 021228 70020628 90620000 */ lbu $v0, ($v1) +/* 02122C 7002062C 246F0001 */ addiu $t7, $v1, 1 +/* 021230 70020630 ACCF0008 */ sw $t7, 8($a2) +/* 021234 70020634 A0E2000A */ sb $v0, 0xa($a3) +/* 021238 70020638 8CC30008 */ lw $v1, 8($a2) +/* 02123C 7002063C 90640000 */ lbu $a0, ($v1) +/* 021240 70020640 24780001 */ addiu $t8, $v1, 1 +/* 021244 70020644 ACD80008 */ sw $t8, 8($a2) +/* 021248 70020648 A0E4000B */ sb $a0, 0xb($a3) +/* 02124C 7002064C 8CC30008 */ lw $v1, 8($a2) +/* 021250 70020650 90650000 */ lbu $a1, ($v1) +/* 021254 70020654 24790001 */ addiu $t9, $v1, 1 +/* 021258 70020658 ACD90008 */ sw $t9, 8($a2) +/* 02125C 7002065C A0E5000C */ sb $a1, 0xc($a3) +/* 021260 70020660 8CC30008 */ lw $v1, 8($a2) +/* 021264 70020664 90640000 */ lbu $a0, ($v1) +/* 021268 70020668 246E0001 */ addiu $t6, $v1, 1 +/* 02126C 7002066C ACCE0008 */ sw $t6, 8($a2) +/* 021270 70020670 1000000D */ b .L700206A8 +/* 021274 70020674 A0E4000D */ sb $a0, 0xd($a3) +.L70020678: +/* 021278 70020678 2401002F */ li $at, 47 +/* 02127C 7002067C 1441000A */ bne $v0, $at, .L700206A8 +/* 021280 70020680 240F0004 */ li $t7, 4 +/* 021284 70020684 A4EF0000 */ sh $t7, ($a3) +/* 021288 70020688 ACE90004 */ sw $t1, 4($a3) +/* 02128C 7002068C A0E50008 */ sb $a1, 8($a3) +/* 021290 70020690 A0E80009 */ sb $t0, 9($a3) +/* 021294 70020694 8CC30008 */ lw $v1, 8($a2) +/* 021298 70020698 90640000 */ lbu $a0, ($v1) +/* 02129C 7002069C 24780001 */ addiu $t8, $v1, 1 +/* 0212A0 700206A0 ACD80008 */ sw $t8, 8($a2) +/* 0212A4 700206A4 A0E4000A */ sb $a0, 0xa($a3) +.L700206A8: +/* 0212A8 700206A8 1000001F */ b .L70020728 +/* 0212AC 700206AC A4C0001A */ sh $zero, 0x1a($a2) +.L700206B0: +/* 0212B0 700206B0 24190001 */ li $t9, 1 +/* 0212B4 700206B4 304E0080 */ andi $t6, $v0, 0x80 +/* 0212B8 700206B8 A4F90000 */ sh $t9, ($a3) +/* 0212BC 700206BC 11C00009 */ beqz $t6, .L700206E4 +/* 0212C0 700206C0 ACE90004 */ sw $t1, 4($a3) +/* 0212C4 700206C4 A0E50008 */ sb $a1, 8($a3) +/* 0212C8 700206C8 8CC30008 */ lw $v1, 8($a2) +/* 0212CC 700206CC 90640000 */ lbu $a0, ($v1) +/* 0212D0 700206D0 246F0001 */ addiu $t7, $v1, 1 +/* 0212D4 700206D4 ACCF0008 */ sw $t7, 8($a2) +/* 0212D8 700206D8 A0E40009 */ sb $a0, 9($a3) +/* 0212DC 700206DC 10000004 */ b .L700206F0 +/* 0212E0 700206E0 A4C5001A */ sh $a1, 0x1a($a2) +.L700206E4: +/* 0212E4 700206E4 84D8001A */ lh $t8, 0x1a($a2) +/* 0212E8 700206E8 A0E40009 */ sb $a0, 9($a3) +/* 0212EC 700206EC A0F80008 */ sb $t8, 8($a3) +.L700206F0: +/* 0212F0 700206F0 90E20008 */ lbu $v0, 8($a3) +/* 0212F4 700206F4 240100C0 */ li $at, 192 +/* 0212F8 700206F8 305900F0 */ andi $t9, $v0, 0xf0 +/* 0212FC 700206FC 13210009 */ beq $t9, $at, .L70020724 +/* 021300 70020700 240100D0 */ li $at, 208 +/* 021304 70020704 53210008 */ beql $t9, $at, .L70020728 +/* 021308 70020708 A0E0000A */ sb $zero, 0xa($a3) +/* 02130C 7002070C 8CC30008 */ lw $v1, 8($a2) +/* 021310 70020710 90640000 */ lbu $a0, ($v1) +/* 021314 70020714 246E0001 */ addiu $t6, $v1, 1 +/* 021318 70020718 ACCE0008 */ sw $t6, 8($a2) +/* 02131C 7002071C 10000002 */ b .L70020728 +/* 021320 70020720 A0E4000A */ sb $a0, 0xa($a3) +.L70020724: +/* 021324 70020724 A0E0000A */ sb $zero, 0xa($a3) +.L70020728: +/* 021328 70020728 8FBF0014 */ lw $ra, 0x14($sp) +/* 02132C 7002072C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 021330 70020730 03E00008 */ jr $ra +/* 021334 70020734 00000000 */ nop + +glabel alSeqNewMarker +/* 021338 70020738 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 02133C 7002073C AFB70030 */ sw $s7, 0x30($sp) +/* 021340 70020740 AFB10018 */ sw $s1, 0x18($sp) +/* 021344 70020744 AFB00014 */ sw $s0, 0x14($sp) +/* 021348 70020748 00808025 */ move $s0, $a0 +/* 02134C 7002074C 00C08825 */ move $s1, $a2 +/* 021350 70020750 00A0B825 */ move $s7, $a1 +/* 021354 70020754 AFBF0034 */ sw $ra, 0x34($sp) +/* 021358 70020758 AFB6002C */ sw $s6, 0x2c($sp) +/* 02135C 7002075C AFB50028 */ sw $s5, 0x28($sp) +/* 021360 70020760 AFB40024 */ sw $s4, 0x24($sp) +/* 021364 70020764 AFB30020 */ sw $s3, 0x20($sp) +/* 021368 70020768 14C00007 */ bnez $a2, .L70020788 +/* 02136C 7002076C AFB2001C */ sw $s2, 0x1c($sp) +/* 021370 70020770 8C8E0004 */ lw $t6, 4($a0) +/* 021374 70020774 A4A0000C */ sh $zero, 0xc($a1) +/* 021378 70020778 ACA00004 */ sw $zero, 4($a1) +/* 02137C 7002077C ACA00008 */ sw $zero, 8($a1) +/* 021380 70020780 1000002A */ b .L7002082C +/* 021384 70020784 ACAE0000 */ sw $t6, ($a1) +.L70020788: +/* 021388 70020788 8E0F0008 */ lw $t7, 8($s0) +/* 02138C 7002078C 00001025 */ move $v0, $zero +/* 021390 70020790 24130004 */ li $s3, 4 +/* 021394 70020794 AFAF004C */ sw $t7, 0x4c($sp) +/* 021398 70020798 8618001A */ lh $t8, 0x1a($s0) +/* 02139C 7002079C 27B20050 */ addiu $s2, $sp, 0x50 +/* 0213A0 700207A0 A7B8003E */ sh $t8, 0x3e($sp) +/* 0213A4 700207A4 8E19000C */ lw $t9, 0xc($s0) +/* 0213A8 700207A8 AFB90044 */ sw $t9, 0x44($sp) +/* 0213AC 700207AC 8E080004 */ lw $t0, 4($s0) +/* 0213B0 700207B0 A600001A */ sh $zero, 0x1a($s0) +/* 0213B4 700207B4 AE00000C */ sw $zero, 0xc($s0) +/* 0213B8 700207B8 AE080008 */ sw $t0, 8($s0) +/* 0213BC 700207BC 8E140008 */ lw $s4, 8($s0) +.L700207C0: +/* 0213C0 700207C0 8615001A */ lh $s5, 0x1a($s0) +/* 0213C4 700207C4 0040B025 */ move $s6, $v0 +/* 0213C8 700207C8 02002025 */ move $a0, $s0 +/* 0213CC 700207CC 0C00816D */ jal alSeqNextEvent +/* 0213D0 700207D0 02402825 */ move $a1, $s2 +/* 0213D4 700207D4 87A90050 */ lh $t1, 0x50($sp) +/* 0213D8 700207D8 55330006 */ bnel $t1, $s3, .L700207F4 +/* 0213DC 700207DC 8E02000C */ lw $v0, 0xc($s0) +/* 0213E0 700207E0 8E140008 */ lw $s4, 8($s0) +/* 0213E4 700207E4 8615001A */ lh $s5, 0x1a($s0) +/* 0213E8 700207E8 10000005 */ b .L70020800 +/* 0213EC 700207EC 8E16000C */ lw $s6, 0xc($s0) +/* 0213F0 700207F0 8E02000C */ lw $v0, 0xc($s0) +.L700207F4: +/* 0213F4 700207F4 0051082B */ sltu $at, $v0, $s1 +/* 0213F8 700207F8 5420FFF1 */ bnezl $at, .L700207C0 +/* 0213FC 700207FC 8E140008 */ lw $s4, 8($s0) +.L70020800: +/* 021400 70020800 AEF40000 */ sw $s4, ($s7) +/* 021404 70020804 A6F5000C */ sh $s5, 0xc($s7) +/* 021408 70020808 AEF60004 */ sw $s6, 4($s7) +/* 02140C 7002080C 8E0A000C */ lw $t2, 0xc($s0) +/* 021410 70020810 AEEA0008 */ sw $t2, 8($s7) +/* 021414 70020814 8FAB004C */ lw $t3, 0x4c($sp) +/* 021418 70020818 AE0B0008 */ sw $t3, 8($s0) +/* 02141C 7002081C 87AC003E */ lh $t4, 0x3e($sp) +/* 021420 70020820 A60C001A */ sh $t4, 0x1a($s0) +/* 021424 70020824 8FAD0044 */ lw $t5, 0x44($sp) +/* 021428 70020828 AE0D000C */ sw $t5, 0xc($s0) +.L7002082C: +/* 02142C 7002082C 8FBF0034 */ lw $ra, 0x34($sp) +/* 021430 70020830 8FB00014 */ lw $s0, 0x14($sp) +/* 021434 70020834 8FB10018 */ lw $s1, 0x18($sp) +/* 021438 70020838 8FB2001C */ lw $s2, 0x1c($sp) +/* 02143C 7002083C 8FB30020 */ lw $s3, 0x20($sp) +/* 021440 70020840 8FB40024 */ lw $s4, 0x24($sp) +/* 021444 70020844 8FB50028 */ lw $s5, 0x28($sp) +/* 021448 70020848 8FB6002C */ lw $s6, 0x2c($sp) +/* 02144C 7002084C 8FB70030 */ lw $s7, 0x30($sp) +/* 021450 70020850 03E00008 */ jr $ra +/* 021454 70020854 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel alSeqSecToTicks +/* 021458 70020858 44856000 */ mtc1 $a1, $f12 +/* 02145C 7002085C 3C018003 */ lui $at, %hi(F64_80029D50) +/* 021460 70020860 D4269D50 */ ldc1 $f6, %lo(F64_80029D50)($at) +/* 021464 70020864 848E0018 */ lh $t6, 0x18($a0) +/* 021468 70020868 46006121 */ cvt.d.s $f4, $f12 +/* 02146C 7002086C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 021470 70020870 46262202 */ mul.d $f8, $f4, $f6 +/* 021474 70020874 448E5000 */ mtc1 $t6, $f10 +/* 021478 70020878 44862000 */ mtc1 $a2, $f4 +/* 02147C 7002087C 46805421 */ cvt.d.w $f16, $f10 +/* 021480 70020880 468021A1 */ cvt.d.w $f6, $f4 +/* 021484 70020884 46304482 */ mul.d $f18, $f8, $f16 +/* 021488 70020888 04C30006 */ bgezl $a2, .L700208A4 +/* 02148C 7002088C 46269203 */ div.d $f8, $f18, $f6 +/* 021490 70020890 44815800 */ mtc1 $at, $f11 +/* 021494 70020894 44805000 */ mtc1 $zero, $f10 +/* 021498 70020898 00000000 */ nop +/* 02149C 7002089C 462A3180 */ add.d $f6, $f6, $f10 +/* 0214A0 700208A0 46269203 */ div.d $f8, $f18, $f6 +.L700208A4: +/* 0214A4 700208A4 24020001 */ li $v0, 1 +/* 0214A8 700208A8 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 0214AC 700208AC 444FF800 */ cfc1 $t7, $31 +/* 0214B0 700208B0 44C2F800 */ ctc1 $v0, $31 +/* 0214B4 700208B4 00000000 */ nop +/* 0214B8 700208B8 46204424 */ cvt.w.d $f16, $f8 +/* 0214BC 700208BC 4442F800 */ cfc1 $v0, $31 +/* 0214C0 700208C0 00000000 */ nop +/* 0214C4 700208C4 30420078 */ andi $v0, $v0, 0x78 +/* 0214C8 700208C8 50400016 */ beql $v0, $zero, .L70020924 +/* 0214CC 700208CC 44028000 */ mfc1 $v0, $f16 +/* 0214D0 700208D0 44818800 */ mtc1 $at, $f17 +/* 0214D4 700208D4 44808000 */ mtc1 $zero, $f16 +/* 0214D8 700208D8 24020001 */ li $v0, 1 +/* 0214DC 700208DC 3C018000 */ lui $at, 0x8000 +/* 0214E0 700208E0 46304401 */ sub.d $f16, $f8, $f16 +/* 0214E4 700208E4 44C2F800 */ ctc1 $v0, $31 +/* 0214E8 700208E8 00000000 */ nop +/* 0214EC 700208EC 46208424 */ cvt.w.d $f16, $f16 +/* 0214F0 700208F0 4442F800 */ cfc1 $v0, $31 +/* 0214F4 700208F4 00000000 */ nop +/* 0214F8 700208F8 30420078 */ andi $v0, $v0, 0x78 +/* 0214FC 700208FC 54400006 */ bnezl $v0, .L70020918 +/* 021500 70020900 44CFF800 */ ctc1 $t7, $31 +/* 021504 70020904 44028000 */ mfc1 $v0, $f16 +/* 021508 70020908 44CFF800 */ ctc1 $t7, $31 +/* 02150C 7002090C 03E00008 */ jr $ra +/* 021510 70020910 00411025 */ or $v0, $v0, $at + +/* 021514 70020914 44CFF800 */ ctc1 $t7, $31 +.L70020918: +/* 021518 70020918 03E00008 */ jr $ra +/* 02151C 7002091C 2402FFFF */ li $v0, -1 + +/* 021520 70020920 44028000 */ mfc1 $v0, $f16 +.L70020924: +/* 021524 70020924 00000000 */ nop +/* 021528 70020928 0442FFFB */ bltzl $v0, .L70020918 +/* 02152C 7002092C 44CFF800 */ ctc1 $t7, $31 +/* 021530 70020930 44CFF800 */ ctc1 $t7, $31 +/* 021534 70020934 03E00008 */ jr $ra +/* 021538 70020938 00000000 */ nop + +glabel alSeqTicksToSec +/* 02153C 7002093C 44852000 */ mtc1 $a1, $f4 +/* 021540 70020940 44864000 */ mtc1 $a2, $f8 +/* 021544 70020944 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 021548 70020948 468021A0 */ cvt.s.w $f6, $f4 +/* 02154C 7002094C 04C10004 */ bgez $a2, .L70020960 +/* 021550 70020950 468042A0 */ cvt.s.w $f10, $f8 +/* 021554 70020954 44818000 */ mtc1 $at, $f16 +/* 021558 70020958 00000000 */ nop +/* 02155C 7002095C 46105280 */ add.s $f10, $f10, $f16 +.L70020960: +/* 021560 70020960 848E0018 */ lh $t6, 0x18($a0) +/* 021564 70020964 460A3482 */ mul.s $f18, $f6, $f10 +/* 021568 70020968 3C018003 */ lui $at, %hi(F64_80029D58) +/* 02156C 7002096C 448E4000 */ mtc1 $t6, $f8 +/* 021570 70020970 D42A9D58 */ ldc1 $f10, %lo(F64_80029D58)($at) +/* 021574 70020974 46804420 */ cvt.s.w $f16, $f8 +/* 021578 70020978 46009121 */ cvt.d.s $f4, $f18 +/* 02157C 7002097C 460081A1 */ cvt.d.s $f6, $f16 +/* 021580 70020980 462A3482 */ mul.d $f18, $f6, $f10 +/* 021584 70020984 46322203 */ div.d $f8, $f4, $f18 +/* 021588 70020988 03E00008 */ jr $ra +/* 02158C 7002098C 46204020 */ cvt.s.d $f0, $f8 +.section .rodata +glabel F64_80029D50 + .double 1000000.0 +glabel F64_80029D58 + .double 1000000.0 + +.section .text +glabel __alSeqNextDelta +/* 021590 70020990 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 021594 70020994 AFBF0014 */ sw $ra, 0x14($sp) +/* 021598 70020998 8C8F0010 */ lw $t7, 0x10($a0) +/* 02159C 7002099C 8C8E0000 */ lw $t6, ($a0) +/* 0215A0 700209A0 8C820008 */ lw $v0, 8($a0) +/* 0215A4 700209A4 00803025 */ move $a2, $a0 +/* 0215A8 700209A8 01CFC021 */ addu $t8, $t6, $t7 +/* 0215AC 700209AC 0058082B */ sltu $at, $v0, $t8 +/* 0215B0 700209B0 14200003 */ bnez $at, .L700209C0 +/* 0215B4 700209B4 00A04025 */ move $t0, $a1 +/* 0215B8 700209B8 10000007 */ b .L700209D8 +/* 0215BC 700209BC 00001025 */ move $v0, $zero +.L700209C0: +/* 0215C0 700209C0 00403825 */ move $a3, $v0 +/* 0215C4 700209C4 0C00815A */ jal readVarLen +/* 0215C8 700209C8 00C02025 */ move $a0, $a2 +/* 0215CC 700209CC AD020000 */ sw $v0, ($t0) +/* 0215D0 700209D0 ACC70008 */ sw $a3, 8($a2) +/* 0215D4 700209D4 24020001 */ li $v0, 1 +.L700209D8: +/* 0215D8 700209D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0215DC 700209DC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0215E0 700209E0 03E00008 */ jr $ra +/* 0215E4 700209E4 00000000 */ nop + +glabel read32 +/* 0215E8 700209E8 8C850008 */ lw $a1, 8($a0) +/* 0215EC 700209EC 90A30000 */ lbu $v1, ($a1) +/* 0215F0 700209F0 24AF0001 */ addiu $t7, $a1, 1 +/* 0215F4 700209F4 AC8F0008 */ sw $t7, 8($a0) +/* 0215F8 700209F8 91F80000 */ lbu $t8, ($t7) +/* 0215FC 700209FC 00037600 */ sll $t6, $v1, 0x18 +/* 021600 70020A00 0018CC00 */ sll $t9, $t8, 0x10 +/* 021604 70020A04 01D91825 */ or $v1, $t6, $t9 +/* 021608 70020A08 25EE0001 */ addiu $t6, $t7, 1 +/* 02160C 70020A0C AC8E0008 */ sw $t6, 8($a0) +/* 021610 70020A10 91CF0000 */ lbu $t7, ($t6) +/* 021614 70020A14 25D90001 */ addiu $t9, $t6, 1 +/* 021618 70020A18 AC990008 */ sw $t9, 8($a0) +/* 02161C 70020A1C 000FC200 */ sll $t8, $t7, 8 +/* 021620 70020A20 932E0000 */ lbu $t6, ($t9) +/* 021624 70020A24 00781825 */ or $v1, $v1, $t8 +/* 021628 70020A28 272F0001 */ addiu $t7, $t9, 1 +/* 02162C 70020A2C AC8F0008 */ sw $t7, 8($a0) +/* 021630 70020A30 03E00008 */ jr $ra +/* 021634 70020A34 006E1025 */ or $v0, $v1, $t6 + +glabel read16 +/* 021638 70020A38 8C850008 */ lw $a1, 8($a0) +/* 02163C 70020A3C 90A30000 */ lbu $v1, ($a1) +/* 021640 70020A40 24B90001 */ addiu $t9, $a1, 1 +/* 021644 70020A44 AC990008 */ sw $t9, 8($a0) +/* 021648 70020A48 932E0000 */ lbu $t6, ($t9) +/* 02164C 70020A4C 0003C200 */ sll $t8, $v1, 8 +/* 021650 70020A50 27390001 */ addiu $t9, $t9, 1 +/* 021654 70020A54 030E1825 */ or $v1, $t8, $t6 +/* 021658 70020A58 00037C00 */ sll $t7, $v1, 0x10 +/* 02165C 70020A5C 000F1403 */ sra $v0, $t7, 0x10 +/* 021660 70020A60 03E00008 */ jr $ra +/* 021664 70020A64 AC990008 */ sw $t9, 8($a0) + +glabel alSeqNew +/* 021668 70020A68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 02166C 70020A6C AFBF0014 */ sw $ra, 0x14($sp) +/* 021670 70020A70 00803825 */ move $a3, $a0 +/* 021674 70020A74 AC850000 */ sw $a1, ($a0) +/* 021678 70020A78 AC860010 */ sw $a2, 0x10($a0) +/* 02167C 70020A7C A480001A */ sh $zero, 0x1a($a0) +/* 021680 70020A80 AC80000C */ sw $zero, 0xc($a0) +/* 021684 70020A84 0C00827A */ jal read32 +/* 021688 70020A88 AC850008 */ sw $a1, 8($a0) +/* 02168C 70020A8C 3C014D54 */ lui $at, (0x4D546864 >> 16) # lui $at, 0x4d54 +/* 021690 70020A90 34216864 */ ori $at, (0x4D546864 & 0xFFFF) # ori $at, $at, 0x6864 +/* 021694 70020A94 54410027 */ bnel $v0, $at, .L70020B34 +/* 021698 70020A98 8FBF0014 */ lw $ra, 0x14($sp) +/* 02169C 70020A9C 0C00827A */ jal read32 +/* 0216A0 70020AA0 00E02025 */ move $a0, $a3 +/* 0216A4 70020AA4 0C00828E */ jal read16 +/* 0216A8 70020AA8 00E02025 */ move $a0, $a3 +/* 0216AC 70020AAC 54400021 */ bnezl $v0, .L70020B34 +/* 0216B0 70020AB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216B4 70020AB4 0C00828E */ jal read16 +/* 0216B8 70020AB8 00E02025 */ move $a0, $a3 +/* 0216BC 70020ABC 24010001 */ li $at, 1 +/* 0216C0 70020AC0 5441001C */ bnel $v0, $at, .L70020B34 +/* 0216C4 70020AC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216C8 70020AC8 0C00828E */ jal read16 +/* 0216CC 70020ACC 00E02025 */ move $a0, $a3 +/* 0216D0 70020AD0 A4E20018 */ sh $v0, 0x18($a3) +/* 0216D4 70020AD4 84E30018 */ lh $v1, 0x18($a3) +/* 0216D8 70020AD8 306E8000 */ andi $t6, $v1, 0x8000 +/* 0216DC 70020ADC 55C00015 */ bnezl $t6, .L70020B34 +/* 0216E0 70020AE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216E4 70020AE4 44833000 */ mtc1 $v1, $f6 +/* 0216E8 70020AE8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0216EC 70020AEC 44812800 */ mtc1 $at, $f5 +/* 0216F0 70020AF0 46803220 */ cvt.s.w $f8, $f6 +/* 0216F4 70020AF4 44802000 */ mtc1 $zero, $f4 +/* 0216F8 70020AF8 00E02025 */ move $a0, $a3 +/* 0216FC 70020AFC 460042A1 */ cvt.d.s $f10, $f8 +/* 021700 70020B00 462A2183 */ div.d $f6, $f4, $f10 +/* 021704 70020B04 46203220 */ cvt.s.d $f8, $f6 +/* 021708 70020B08 0C00827A */ jal read32 +/* 02170C 70020B0C E4E80014 */ swc1 $f8, 0x14($a3) +/* 021710 70020B10 3C014D54 */ lui $at, (0x4D54726B >> 16) # lui $at, 0x4d54 +/* 021714 70020B14 3421726B */ ori $at, (0x4D54726B & 0xFFFF) # ori $at, $at, 0x726b +/* 021718 70020B18 54410006 */ bnel $v0, $at, .L70020B34 +/* 02171C 70020B1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 021720 70020B20 0C00827A */ jal read32 +/* 021724 70020B24 00E02025 */ move $a0, $a3 +/* 021728 70020B28 8CEF0008 */ lw $t7, 8($a3) +/* 02172C 70020B2C ACEF0004 */ sw $t7, 4($a3) +/* 021730 70020B30 8FBF0014 */ lw $ra, 0x14($sp) +.L70020B34: +/* 021734 70020B34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 021738 70020B38 03E00008 */ jr $ra +/* 02173C 70020B3C 00000000 */ nop diff --git a/src/libultra/seqplayer.s b/src/libultra/seqplayer.s new file mode 100644 index 0000000..fcf4ca3 --- /dev/null +++ b/src/libultra/seqplayer.s @@ -0,0 +1,1864 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __setInstChanState +/* 01C860 7001BC60 8C8E0060 */ lw $t6, 0x60($a0) +/* 01C864 7001BC64 00061100 */ sll $v0, $a2, 4 +/* 01C868 7001BC68 01C27821 */ addu $t7, $t6, $v0 +/* 01C86C 7001BC6C ADE50000 */ sw $a1, ($t7) +/* 01C870 7001BC70 8C990060 */ lw $t9, 0x60($a0) +/* 01C874 7001BC74 90B80001 */ lbu $t8, 1($a1) +/* 01C878 7001BC78 03224021 */ addu $t0, $t9, $v0 +/* 01C87C 7001BC7C A1180007 */ sb $t8, 7($t0) +/* 01C880 7001BC80 8C8A0060 */ lw $t2, 0x60($a0) +/* 01C884 7001BC84 90A90000 */ lbu $t1, ($a1) +/* 01C888 7001BC88 01425821 */ addu $t3, $t2, $v0 +/* 01C88C 7001BC8C A1690009 */ sb $t1, 9($t3) +/* 01C890 7001BC90 8C8D0060 */ lw $t5, 0x60($a0) +/* 01C894 7001BC94 90AC0002 */ lbu $t4, 2($a1) +/* 01C898 7001BC98 01A27021 */ addu $t6, $t5, $v0 +/* 01C89C 7001BC9C A1CC0008 */ sb $t4, 8($t6) +/* 01C8A0 7001BCA0 8C990060 */ lw $t9, 0x60($a0) +/* 01C8A4 7001BCA4 84AF000C */ lh $t7, 0xc($a1) +/* 01C8A8 7001BCA8 0322C021 */ addu $t8, $t9, $v0 +/* 01C8AC 7001BCAC 03E00008 */ jr $ra +/* 01C8B0 7001BCB0 A70F0004 */ sh $t7, 4($t8) + +glabel __resetPerfChanState +/* 01C8B4 7001BCB4 8C8E0060 */ lw $t6, 0x60($a0) +/* 01C8B8 7001BCB8 00051100 */ sll $v0, $a1, 4 +/* 01C8BC 7001BCBC 24080040 */ li $t0, 64 +/* 01C8C0 7001BCC0 01C27821 */ addu $t7, $t6, $v0 +/* 01C8C4 7001BCC4 A1E00006 */ sb $zero, 6($t7) +/* 01C8C8 7001BCC8 8C980060 */ lw $t8, 0x60($a0) +/* 01C8CC 7001BCCC 240B007F */ li $t3, 127 +/* 01C8D0 7001BCD0 240E0005 */ li $t6, 5 +/* 01C8D4 7001BCD4 0302C821 */ addu $t9, $t8, $v0 +/* 01C8D8 7001BCD8 A320000A */ sb $zero, 0xa($t9) +/* 01C8DC 7001BCDC 8C890060 */ lw $t1, 0x60($a0) +/* 01C8E0 7001BCE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01C8E4 7001BCE4 44812000 */ mtc1 $at, $f4 +/* 01C8E8 7001BCE8 01225021 */ addu $t2, $t1, $v0 +/* 01C8EC 7001BCEC A1480007 */ sb $t0, 7($t2) +/* 01C8F0 7001BCF0 8C8C0060 */ lw $t4, 0x60($a0) +/* 01C8F4 7001BCF4 240800C8 */ li $t0, 200 +/* 01C8F8 7001BCF8 01826821 */ addu $t5, $t4, $v0 +/* 01C8FC 7001BCFC A1AB0009 */ sb $t3, 9($t5) +/* 01C900 7001BD00 8C8F0060 */ lw $t7, 0x60($a0) +/* 01C904 7001BD04 01E2C021 */ addu $t8, $t7, $v0 +/* 01C908 7001BD08 A30E0008 */ sb $t6, 8($t8) +/* 01C90C 7001BD0C 8C990060 */ lw $t9, 0x60($a0) +/* 01C910 7001BD10 03224821 */ addu $t1, $t9, $v0 +/* 01C914 7001BD14 A120000B */ sb $zero, 0xb($t1) +/* 01C918 7001BD18 8C8A0060 */ lw $t2, 0x60($a0) +/* 01C91C 7001BD1C 01426021 */ addu $t4, $t2, $v0 +/* 01C920 7001BD20 A5880004 */ sh $t0, 4($t4) +/* 01C924 7001BD24 8C8B0060 */ lw $t3, 0x60($a0) +/* 01C928 7001BD28 01626821 */ addu $t5, $t3, $v0 +/* 01C92C 7001BD2C 03E00008 */ jr $ra +/* 01C930 7001BD30 E5A4000C */ swc1 $f4, 0xc($t5) + +glabel __initFromBank +/* 01C934 7001BD34 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01C938 7001BD38 AFB20020 */ sw $s2, 0x20($sp) +/* 01C93C 7001BD3C 00809025 */ move $s2, $a0 +/* 01C940 7001BD40 AFBF0024 */ sw $ra, 0x24($sp) +/* 01C944 7001BD44 AFB1001C */ sw $s1, 0x1c($sp) +/* 01C948 7001BD48 AFB00018 */ sw $s0, 0x18($sp) +/* 01C94C 7001BD4C AFA5002C */ sw $a1, 0x2c($sp) +/* 01C950 7001BD50 00A01025 */ move $v0, $a1 +/* 01C954 7001BD54 8C51000C */ lw $s1, 0xc($v0) +.L7001BD58: +/* 01C958 7001BD58 24420004 */ addiu $v0, $v0, 4 +/* 01C95C 7001BD5C 5220FFFE */ beql $s1, $zero, .L7001BD58 +/* 01C960 7001BD60 8C51000C */ lw $s1, 0xc($v0) +/* 01C964 7001BD64 924E0034 */ lbu $t6, 0x34($s2) +/* 01C968 7001BD68 00008025 */ move $s0, $zero +/* 01C96C 7001BD6C 19C0000C */ blez $t6, .L7001BDA0 +/* 01C970 7001BD70 02402025 */ move $a0, $s2 +.L7001BD74: +/* 01C974 7001BD74 0C006F2D */ jal __resetPerfChanState +/* 01C978 7001BD78 02002825 */ move $a1, $s0 +/* 01C97C 7001BD7C 02402025 */ move $a0, $s2 +/* 01C980 7001BD80 02202825 */ move $a1, $s1 +/* 01C984 7001BD84 0C006F18 */ jal __setInstChanState +/* 01C988 7001BD88 02003025 */ move $a2, $s0 +/* 01C98C 7001BD8C 924F0034 */ lbu $t7, 0x34($s2) +/* 01C990 7001BD90 26100001 */ addiu $s0, $s0, 1 +/* 01C994 7001BD94 020F082A */ slt $at, $s0, $t7 +/* 01C998 7001BD98 5420FFF6 */ bnezl $at, .L7001BD74 +/* 01C99C 7001BD9C 02402025 */ move $a0, $s2 +.L7001BDA0: +/* 01C9A0 7001BDA0 8FB8002C */ lw $t8, 0x2c($sp) +/* 01C9A4 7001BDA4 02402025 */ move $a0, $s2 +/* 01C9A8 7001BDA8 8F190008 */ lw $t9, 8($t8) +/* 01C9AC 7001BDAC 53200009 */ beql $t9, $zero, .L7001BDD4 +/* 01C9B0 7001BDB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 01C9B4 7001BDB4 0C006F2D */ jal __resetPerfChanState +/* 01C9B8 7001BDB8 02002825 */ move $a1, $s0 +/* 01C9BC 7001BDBC 8FA8002C */ lw $t0, 0x2c($sp) +/* 01C9C0 7001BDC0 02402025 */ move $a0, $s2 +/* 01C9C4 7001BDC4 24060009 */ li $a2, 9 +/* 01C9C8 7001BDC8 0C006F18 */ jal __setInstChanState +/* 01C9CC 7001BDCC 8D050008 */ lw $a1, 8($t0) +/* 01C9D0 7001BDD0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001BDD4: +/* 01C9D4 7001BDD4 8FB00018 */ lw $s0, 0x18($sp) +/* 01C9D8 7001BDD8 8FB1001C */ lw $s1, 0x1c($sp) +/* 01C9DC 7001BDDC 8FB20020 */ lw $s2, 0x20($sp) +/* 01C9E0 7001BDE0 03E00008 */ jr $ra +/* 01C9E4 7001BDE4 27BD0028 */ addiu $sp, $sp, 0x28 + +/* 01C9E8 7001BDE8 03E00008 */ jr $ra +/* 01C9EC 7001BDEC 00000000 */ nop + +glabel __vsDelta +/* 01C9F0 7001BDF0 8C8E0024 */ lw $t6, 0x24($a0) +/* 01C9F4 7001BDF4 240203E8 */ li $v0, 1000 +/* 01C9F8 7001BDF8 01C51823 */ subu $v1, $t6, $a1 +/* 01C9FC 7001BDFC 04600003 */ bltz $v1, .L7001BE0C +/* 01CA00 7001BE00 00000000 */ nop +/* 01CA04 7001BE04 03E00008 */ jr $ra +/* 01CA08 7001BE08 00601025 */ move $v0, $v1 + +.L7001BE0C: +/* 01CA0C 7001BE0C 03E00008 */ jr $ra +/* 01CA10 7001BE10 00000000 */ nop + +glabel __vsVol +/* 01CA14 7001BE14 908E0036 */ lbu $t6, 0x36($a0) +/* 01CA18 7001BE18 908F0033 */ lbu $t7, 0x33($a0) +/* 01CA1C 7001BE1C 90990030 */ lbu $t9, 0x30($a0) +/* 01CA20 7001BE20 908A0031 */ lbu $t2, 0x31($a0) +/* 01CA24 7001BE24 01CF0019 */ multu $t6, $t7 +/* 01CA28 7001BE28 8CA90060 */ lw $t1, 0x60($a1) +/* 01CA2C 7001BE2C 8C8E0020 */ lw $t6, 0x20($a0) +/* 01CA30 7001BE30 000A5900 */ sll $t3, $t2, 4 +/* 01CA34 7001BE34 012B6021 */ addu $t4, $t1, $t3 +/* 01CA38 7001BE38 918D0009 */ lbu $t5, 9($t4) +/* 01CA3C 7001BE3C 91CF000D */ lbu $t7, 0xd($t6) +/* 01CA40 7001BE40 0000C012 */ mflo $t8 +/* 01CA44 7001BE44 00000000 */ nop +/* 01CA48 7001BE48 00000000 */ nop +/* 01CA4C 7001BE4C 03190019 */ multu $t8, $t9 +/* 01CA50 7001BE50 84B90032 */ lh $t9, 0x32($a1) +/* 01CA54 7001BE54 00001812 */ mflo $v1 +/* 01CA58 7001BE58 00034183 */ sra $t0, $v1, 6 +/* 01CA5C 7001BE5C 01001825 */ move $v1, $t0 +/* 01CA60 7001BE60 01AF0019 */ multu $t5, $t7 +/* 01CA64 7001BE64 0000C012 */ mflo $t8 +/* 01CA68 7001BE68 00000000 */ nop +/* 01CA6C 7001BE6C 00000000 */ nop +/* 01CA70 7001BE70 03190019 */ multu $t8, $t9 +/* 01CA74 7001BE74 00003012 */ mflo $a2 +/* 01CA78 7001BE78 00064383 */ sra $t0, $a2, 0xe +/* 01CA7C 7001BE7C 00000000 */ nop +/* 01CA80 7001BE80 00680019 */ multu $v1, $t0 +/* 01CA84 7001BE84 00001812 */ mflo $v1 +/* 01CA88 7001BE88 000353C2 */ srl $t2, $v1, 0xf +/* 01CA8C 7001BE8C 000A1400 */ sll $v0, $t2, 0x10 +/* 01CA90 7001BE90 00024C03 */ sra $t1, $v0, 0x10 +/* 01CA94 7001BE94 03E00008 */ jr $ra +/* 01CA98 7001BE98 01201025 */ move $v0, $t1 + +glabel __seqpReleaseVoice +/* 01CA9C 7001BE9C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 01CAA0 7001BEA0 AFBF0034 */ sw $ra, 0x34($sp) +/* 01CAA4 7001BEA4 AFB60030 */ sw $s6, 0x30($sp) +/* 01CAA8 7001BEA8 AFB5002C */ sw $s5, 0x2c($sp) +/* 01CAAC 7001BEAC AFB40028 */ sw $s4, 0x28($sp) +/* 01CAB0 7001BEB0 AFB30024 */ sw $s3, 0x24($sp) +/* 01CAB4 7001BEB4 AFB20020 */ sw $s2, 0x20($sp) +/* 01CAB8 7001BEB8 AFB1001C */ sw $s1, 0x1c($sp) +/* 01CABC 7001BEBC AFB00018 */ sw $s0, 0x18($sp) +/* 01CAC0 7001BEC0 AFA60068 */ sw $a2, 0x68($sp) +/* 01CAC4 7001BEC4 8CB60010 */ lw $s6, 0x10($a1) +/* 01CAC8 7001BEC8 0080A025 */ move $s4, $a0 +/* 01CACC 7001BECC 00A0A825 */ move $s5, $a1 +/* 01CAD0 7001BED0 92CE0034 */ lbu $t6, 0x34($s6) +/* 01CAD4 7001BED4 55C0001A */ bnezl $t6, .L7001BF40 +/* 01CAD8 7001BED8 240A0003 */ li $t2, 3 +/* 01CADC 7001BEDC 8C900050 */ lw $s0, 0x50($a0) +/* 01CAE0 7001BEE0 24130006 */ li $s3, 6 +/* 01CAE4 7001BEE4 52000016 */ beql $s0, $zero, .L7001BF40 +/* 01CAE8 7001BEE8 240A0003 */ li $t2, 3 +.L7001BEEC: +/* 01CAEC 7001BEEC 860F000C */ lh $t7, 0xc($s0) +/* 01CAF0 7001BEF0 8E110000 */ lw $s1, ($s0) +/* 01CAF4 7001BEF4 166F000F */ bne $s3, $t7, .L7001BF34 +/* 01CAF8 7001BEF8 00000000 */ nop +/* 01CAFC 7001BEFC 8E180010 */ lw $t8, 0x10($s0) +/* 01CB00 7001BF00 16B8000C */ bne $s5, $t8, .L7001BF34 +/* 01CB04 7001BF04 00000000 */ nop +/* 01CB08 7001BF08 12200005 */ beqz $s1, .L7001BF20 +/* 01CB0C 7001BF0C 26920048 */ addiu $s2, $s4, 0x48 +/* 01CB10 7001BF10 8E390008 */ lw $t9, 8($s1) +/* 01CB14 7001BF14 8E080008 */ lw $t0, 8($s0) +/* 01CB18 7001BF18 03284821 */ addu $t1, $t9, $t0 +/* 01CB1C 7001BF1C AE290008 */ sw $t1, 8($s1) +.L7001BF20: +/* 01CB20 7001BF20 0C003AA4 */ jal alUnlink +/* 01CB24 7001BF24 02002025 */ move $a0, $s0 +/* 01CB28 7001BF28 02002025 */ move $a0, $s0 +/* 01CB2C 7001BF2C 0C003AB0 */ jal alLink +/* 01CB30 7001BF30 02402825 */ move $a1, $s2 +.L7001BF34: +/* 01CB34 7001BF34 1620FFED */ bnez $s1, .L7001BEEC +/* 01CB38 7001BF38 02208025 */ move $s0, $s1 +/* 01CB3C 7001BF3C 240A0003 */ li $t2, 3 +.L7001BF40: +/* 01CB40 7001BF40 A2C00033 */ sb $zero, 0x33($s6) +/* 01CB44 7001BF44 A2CA0034 */ sb $t2, 0x34($s6) +/* 01CB48 7001BF48 A2C00030 */ sb $zero, 0x30($s6) +/* 01CB4C 7001BF4C 8FAC0068 */ lw $t4, 0x68($sp) +/* 01CB50 7001BF50 8E8B001C */ lw $t3, 0x1c($s4) +/* 01CB54 7001BF54 02A02825 */ move $a1, $s5 +/* 01CB58 7001BF58 00003025 */ move $a2, $zero +/* 01CB5C 7001BF5C 016C6821 */ addu $t5, $t3, $t4 +/* 01CB60 7001BF60 AECD0024 */ sw $t5, 0x24($s6) +/* 01CB64 7001BF64 8E840014 */ lw $a0, 0x14($s4) +/* 01CB68 7001BF68 0C0082D0 */ jal alSynSetPriority +/* 01CB6C 7001BF6C 26920048 */ addiu $s2, $s4, 0x48 +/* 01CB70 7001BF70 8E840014 */ lw $a0, 0x14($s4) +/* 01CB74 7001BF74 02A02825 */ move $a1, $s5 +/* 01CB78 7001BF78 00003025 */ move $a2, $zero +/* 01CB7C 7001BF7C 0C004CE8 */ jal alSynSetVol +/* 01CB80 7001BF80 8FA70068 */ lw $a3, 0x68($sp) +/* 01CB84 7001BF84 240E0005 */ li $t6, 5 +/* 01CB88 7001BF88 A7AE0050 */ sh $t6, 0x50($sp) +/* 01CB8C 7001BF8C AFB50054 */ sw $s5, 0x54($sp) +/* 01CB90 7001BF90 02402025 */ move $a0, $s2 +/* 01CB94 7001BF94 27A50050 */ addiu $a1, $sp, 0x50 +/* 01CB98 7001BF98 0C004BBF */ jal alEvtqPostEvent +/* 01CB9C 7001BF9C 8FA60068 */ lw $a2, 0x68($sp) +/* 01CBA0 7001BFA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 01CBA4 7001BFA4 8FB00018 */ lw $s0, 0x18($sp) +/* 01CBA8 7001BFA8 8FB1001C */ lw $s1, 0x1c($sp) +/* 01CBAC 7001BFAC 8FB20020 */ lw $s2, 0x20($sp) +/* 01CBB0 7001BFB0 8FB30024 */ lw $s3, 0x24($sp) +/* 01CBB4 7001BFB4 8FB40028 */ lw $s4, 0x28($sp) +/* 01CBB8 7001BFB8 8FB5002C */ lw $s5, 0x2c($sp) +/* 01CBBC 7001BFBC 8FB60030 */ lw $s6, 0x30($sp) +/* 01CBC0 7001BFC0 03E00008 */ jr $ra +/* 01CBC4 7001BFC4 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel __voiceNeedsNoteKill +/* 01CBC8 7001BFC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 01CBCC 7001BFCC AFBF0014 */ sw $ra, 0x14($sp) +/* 01CBD0 7001BFD0 8C870050 */ lw $a3, 0x50($a0) +/* 01CBD4 7001BFD4 00805025 */ move $t2, $a0 +/* 01CBD8 7001BFD8 00004025 */ move $t0, $zero +/* 01CBDC 7001BFDC 10E0001F */ beqz $a3, .L7001C05C +/* 01CBE0 7001BFE0 24090001 */ li $t1, 1 +/* 01CBE4 7001BFE4 24040005 */ li $a0, 5 +.L7001BFE8: +/* 01CBE8 7001BFE8 84EE000C */ lh $t6, 0xc($a3) +/* 01CBEC 7001BFEC 8CE30008 */ lw $v1, 8($a3) +/* 01CBF0 7001BFF0 8CE20000 */ lw $v0, ($a3) +/* 01CBF4 7001BFF4 148E0017 */ bne $a0, $t6, .L7001C054 +/* 01CBF8 7001BFF8 01034021 */ addu $t0, $t0, $v1 +/* 01CBFC 7001BFFC 8CEF0010 */ lw $t7, 0x10($a3) +/* 01CC00 7001C000 14AF0014 */ bne $a1, $t7, .L7001C054 +/* 01CC04 7001C004 00C8082A */ slt $at, $a2, $t0 +/* 01CC08 7001C008 10200010 */ beqz $at, .L7001C04C +/* 01CC0C 7001C00C 00E02025 */ move $a0, $a3 +/* 01CC10 7001C010 50400005 */ beql $v0, $zero, .L7001C028 +/* 01CC14 7001C014 AFA7002C */ sw $a3, 0x2c($sp) +/* 01CC18 7001C018 8C580008 */ lw $t8, 8($v0) +/* 01CC1C 7001C01C 0303C821 */ addu $t9, $t8, $v1 +/* 01CC20 7001C020 AC590008 */ sw $t9, 8($v0) +/* 01CC24 7001C024 AFA7002C */ sw $a3, 0x2c($sp) +.L7001C028: +/* 01CC28 7001C028 A3A9001F */ sb $t1, 0x1f($sp) +/* 01CC2C 7001C02C 0C003AA4 */ jal alUnlink +/* 01CC30 7001C030 AFAA0030 */ sw $t2, 0x30($sp) +/* 01CC34 7001C034 8FAA0030 */ lw $t2, 0x30($sp) +/* 01CC38 7001C038 8FA4002C */ lw $a0, 0x2c($sp) +/* 01CC3C 7001C03C 0C003AB0 */ jal alLink +/* 01CC40 7001C040 25450048 */ addiu $a1, $t2, 0x48 +/* 01CC44 7001C044 10000005 */ b .L7001C05C +/* 01CC48 7001C048 93A9001F */ lbu $t1, 0x1f($sp) +.L7001C04C: +/* 01CC4C 7001C04C 10000003 */ b .L7001C05C +/* 01CC50 7001C050 00004825 */ move $t1, $zero +.L7001C054: +/* 01CC54 7001C054 1440FFE4 */ bnez $v0, .L7001BFE8 +/* 01CC58 7001C058 00403825 */ move $a3, $v0 +.L7001C05C: +/* 01CC5C 7001C05C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01CC60 7001C060 27BD0030 */ addiu $sp, $sp, 0x30 +/* 01CC64 7001C064 01201025 */ move $v0, $t1 +/* 01CC68 7001C068 03E00008 */ jr $ra +/* 01CC6C 7001C06C 00000000 */ nop + +glabel __unmapVoice +/* 01CC70 7001C070 8C830064 */ lw $v1, 0x64($a0) +/* 01CC74 7001C074 00001025 */ move $v0, $zero +/* 01CC78 7001C078 24A6FFFC */ addiu $a2, $a1, -4 +/* 01CC7C 7001C07C 10600016 */ beqz $v1, .L7001C0D8 +/* 01CC80 7001C080 00000000 */ nop +.L7001C084: +/* 01CC84 7001C084 54660011 */ bnel $v1, $a2, .L7001C0CC +/* 01CC88 7001C088 00601025 */ move $v0, $v1 +/* 01CC8C 7001C08C 50400005 */ beql $v0, $zero, .L7001C0A4 +/* 01CC90 7001C090 8C6F0000 */ lw $t7, ($v1) +/* 01CC94 7001C094 8C6E0000 */ lw $t6, ($v1) +/* 01CC98 7001C098 10000003 */ b .L7001C0A8 +/* 01CC9C 7001C09C AC4E0000 */ sw $t6, ($v0) +/* 01CCA0 7001C0A0 8C6F0000 */ lw $t7, ($v1) +.L7001C0A4: +/* 01CCA4 7001C0A4 AC8F0064 */ sw $t7, 0x64($a0) +.L7001C0A8: +/* 01CCA8 7001C0A8 8C980068 */ lw $t8, 0x68($a0) +/* 01CCAC 7001C0AC 54780003 */ bnel $v1, $t8, .L7001C0BC +/* 01CCB0 7001C0B0 8C99006C */ lw $t9, 0x6c($a0) +/* 01CCB4 7001C0B4 AC820068 */ sw $v0, 0x68($a0) +/* 01CCB8 7001C0B8 8C99006C */ lw $t9, 0x6c($a0) +.L7001C0BC: +/* 01CCBC 7001C0BC AC790000 */ sw $t9, ($v1) +/* 01CCC0 7001C0C0 03E00008 */ jr $ra +/* 01CCC4 7001C0C4 AC83006C */ sw $v1, 0x6c($a0) + +/* 01CCC8 7001C0C8 00601025 */ move $v0, $v1 +.L7001C0CC: +/* 01CCCC 7001C0CC 8C630000 */ lw $v1, ($v1) +/* 01CCD0 7001C0D0 1460FFEC */ bnez $v1, .L7001C084 +/* 01CCD4 7001C0D4 00000000 */ nop +.L7001C0D8: +/* 01CCD8 7001C0D8 03E00008 */ jr $ra +/* 01CCDC 7001C0DC 00000000 */ nop + +glabel __postNextSeqEvent +/* 01CCE0 7001C0E0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01CCE4 7001C0E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 01CCE8 7001C0E8 8C8E002C */ lw $t6, 0x2c($a0) +/* 01CCEC 7001C0EC 24010001 */ li $at, 1 +/* 01CCF0 7001C0F0 00803825 */ move $a3, $a0 +/* 01CCF4 7001C0F4 15C1002D */ bne $t6, $at, .L7001C1AC +/* 01CCF8 7001C0F8 8C860018 */ lw $a2, 0x18($a0) +/* 01CCFC 7001C0FC 10C0002B */ beqz $a2, .L7001C1AC +/* 01CD00 7001C100 00C02025 */ move $a0, $a2 +/* 01CD04 7001C104 27A50024 */ addiu $a1, $sp, 0x24 +/* 01CD08 7001C108 AFA60020 */ sw $a2, 0x20($sp) +/* 01CD0C 7001C10C 0C008264 */ jal __alSeqNextDelta +/* 01CD10 7001C110 AFA70038 */ sw $a3, 0x38($sp) +/* 01CD14 7001C114 8FA60020 */ lw $a2, 0x20($sp) +/* 01CD18 7001C118 10400024 */ beqz $v0, .L7001C1AC +/* 01CD1C 7001C11C 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD20 7001C120 8CEF0084 */ lw $t7, 0x84($a3) +/* 01CD24 7001C124 00C02025 */ move $a0, $a2 +/* 01CD28 7001C128 51E00018 */ beql $t7, $zero, .L7001C18C +/* 01CD2C 7001C12C A7A00028 */ sh $zero, 0x28($sp) +/* 01CD30 7001C130 AFA60020 */ sw $a2, 0x20($sp) +/* 01CD34 7001C134 0C008156 */ jal alSeqGetTicks +/* 01CD38 7001C138 AFA70038 */ sw $a3, 0x38($sp) +/* 01CD3C 7001C13C 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD40 7001C140 8FB80024 */ lw $t8, 0x24($sp) +/* 01CD44 7001C144 8FA60020 */ lw $a2, 0x20($sp) +/* 01CD48 7001C148 8CE80080 */ lw $t0, 0x80($a3) +/* 01CD4C 7001C14C 0058C821 */ addu $t9, $v0, $t8 +/* 01CD50 7001C150 00C02025 */ move $a0, $a2 +/* 01CD54 7001C154 8D090008 */ lw $t1, 8($t0) +/* 01CD58 7001C158 0329082A */ slt $at, $t9, $t1 +/* 01CD5C 7001C15C 5420000B */ bnezl $at, .L7001C18C +/* 01CD60 7001C160 A7A00028 */ sh $zero, 0x28($sp) +/* 01CD64 7001C164 8CE5007C */ lw $a1, 0x7c($a3) +/* 01CD68 7001C168 0C00814F */ jal alSeqSetLoc +/* 01CD6C 7001C16C AFA70038 */ sw $a3, 0x38($sp) +/* 01CD70 7001C170 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD74 7001C174 2401FFFF */ li $at, -1 +/* 01CD78 7001C178 8CE20084 */ lw $v0, 0x84($a3) +/* 01CD7C 7001C17C 10410002 */ beq $v0, $at, .L7001C188 +/* 01CD80 7001C180 244AFFFF */ addiu $t2, $v0, -1 +/* 01CD84 7001C184 ACEA0084 */ sw $t2, 0x84($a3) +.L7001C188: +/* 01CD88 7001C188 A7A00028 */ sh $zero, 0x28($sp) +.L7001C18C: +/* 01CD8C 7001C18C 8CEB0024 */ lw $t3, 0x24($a3) +/* 01CD90 7001C190 8FAC0024 */ lw $t4, 0x24($sp) +/* 01CD94 7001C194 24E40048 */ addiu $a0, $a3, 0x48 +/* 01CD98 7001C198 27A50028 */ addiu $a1, $sp, 0x28 +/* 01CD9C 7001C19C 016C0019 */ multu $t3, $t4 +/* 01CDA0 7001C1A0 00003012 */ mflo $a2 +/* 01CDA4 7001C1A4 0C004BBF */ jal alEvtqPostEvent +/* 01CDA8 7001C1A8 00000000 */ nop +.L7001C1AC: +/* 01CDAC 7001C1AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01CDB0 7001C1B0 27BD0038 */ addiu $sp, $sp, 0x38 +/* 01CDB4 7001C1B4 03E00008 */ jr $ra +/* 01CDB8 7001C1B8 00000000 */ nop + +glabel __handleMetaMsg +/* 01CDBC 7001C1BC 908E0008 */ lbu $t6, 8($a0) +/* 01CDC0 7001C1C0 240100FF */ li $at, 255 +/* 01CDC4 7001C1C4 15C10019 */ bne $t6, $at, .L7001C22C +/* 01CDC8 7001C1C8 00000000 */ nop +/* 01CDCC 7001C1CC 908F0009 */ lbu $t7, 9($a0) +/* 01CDD0 7001C1D0 24010051 */ li $at, 81 +/* 01CDD4 7001C1D4 24820004 */ addiu $v0, $a0, 4 +/* 01CDD8 7001C1D8 15E10014 */ bne $t7, $at, .L7001C22C +/* 01CDDC 7001C1DC 00000000 */ nop +/* 01CDE0 7001C1E0 904E0008 */ lbu $t6, 8($v0) +/* 01CDE4 7001C1E4 90580007 */ lbu $t8, 7($v0) +/* 01CDE8 7001C1E8 8CA60018 */ lw $a2, 0x18($a1) +/* 01CDEC 7001C1EC 000E7A00 */ sll $t7, $t6, 8 +/* 01CDF0 7001C1F0 904E0009 */ lbu $t6, 9($v0) +/* 01CDF4 7001C1F4 0018CC00 */ sll $t9, $t8, 0x10 +/* 01CDF8 7001C1F8 032FC025 */ or $t8, $t9, $t7 +/* 01CDFC 7001C1FC 030E1825 */ or $v1, $t8, $t6 +/* 01CE00 7001C200 44832000 */ mtc1 $v1, $f4 +/* 01CE04 7001C204 241801E8 */ li $t8, 488 +/* 01CE08 7001C208 10C00007 */ beqz $a2, .L7001C228 +/* 01CE0C 7001C20C 46802020 */ cvt.s.w $f0, $f4 +/* 01CE10 7001C210 C4C60014 */ lwc1 $f6, 0x14($a2) +/* 01CE14 7001C214 46060202 */ mul.s $f8, $f0, $f6 +/* 01CE18 7001C218 4600428D */ trunc.w.s $f10, $f8 +/* 01CE1C 7001C21C 440F5000 */ mfc1 $t7, $f10 +/* 01CE20 7001C220 03E00008 */ jr $ra +/* 01CE24 7001C224 ACAF0024 */ sw $t7, 0x24($a1) + +.L7001C228: +/* 01CE28 7001C228 ACB80024 */ sw $t8, 0x24($a1) +.L7001C22C: +/* 01CE2C 7001C22C 03E00008 */ jr $ra +/* 01CE30 7001C230 00000000 */ nop + +glabel __vsPan +/* 01CE34 7001C234 908F0031 */ lbu $t7, 0x31($a0) +/* 01CE38 7001C238 8CAE0060 */ lw $t6, 0x60($a1) +/* 01CE3C 7001C23C 8C890020 */ lw $t1, 0x20($a0) +/* 01CE40 7001C240 000FC100 */ sll $t8, $t7, 4 +/* 01CE44 7001C244 01D8C821 */ addu $t9, $t6, $t8 +/* 01CE48 7001C248 93280007 */ lbu $t0, 7($t9) +/* 01CE4C 7001C24C 912A000C */ lbu $t2, 0xc($t1) +/* 01CE50 7001C250 010A1821 */ addu $v1, $t0, $t2 +/* 01CE54 7001C254 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 01CE58 7001C258 5C600003 */ bgtzl $v1, .L7001C268 +/* 01CE5C 7001C25C 2861007F */ slti $at, $v1, 0x7f +/* 01CE60 7001C260 00001825 */ move $v1, $zero +/* 01CE64 7001C264 2861007F */ slti $at, $v1, 0x7f +.L7001C268: +/* 01CE68 7001C268 14200002 */ bnez $at, .L7001C274 +/* 01CE6C 7001C26C 00000000 */ nop +/* 01CE70 7001C270 2403007F */ li $v1, 127 +.L7001C274: +/* 01CE74 7001C274 03E00008 */ jr $ra +/* 01CE78 7001C278 306200FF */ andi $v0, $v1, 0xff + +glabel __lookupVoice +/* 01CE7C 7001C27C AFA50004 */ sw $a1, 4($sp) +/* 01CE80 7001C280 AFA60008 */ sw $a2, 8($sp) +/* 01CE84 7001C284 8C830064 */ lw $v1, 0x64($a0) +/* 01CE88 7001C288 30CF00FF */ andi $t7, $a2, 0xff +/* 01CE8C 7001C28C 01E03025 */ move $a2, $t7 +/* 01CE90 7001C290 10600014 */ beqz $v1, .L7001C2E4 +/* 01CE94 7001C294 30AE00FF */ andi $t6, $a1, 0xff +/* 01CE98 7001C298 01C01025 */ move $v0, $t6 +/* 01CE9C 7001C29C 24070004 */ li $a3, 4 +/* 01CEA0 7001C2A0 24050003 */ li $a1, 3 +/* 01CEA4 7001C2A4 90780032 */ lbu $t8, 0x32($v1) +.L7001C2A8: +/* 01CEA8 7001C2A8 5458000C */ bnel $v0, $t8, .L7001C2DC +/* 01CEAC 7001C2AC 8C630000 */ lw $v1, ($v1) +/* 01CEB0 7001C2B0 90790031 */ lbu $t9, 0x31($v1) +/* 01CEB4 7001C2B4 54D90009 */ bnel $a2, $t9, .L7001C2DC +/* 01CEB8 7001C2B8 8C630000 */ lw $v1, ($v1) +/* 01CEBC 7001C2BC 90640035 */ lbu $a0, 0x35($v1) +/* 01CEC0 7001C2C0 50A40006 */ beql $a1, $a0, .L7001C2DC +/* 01CEC4 7001C2C4 8C630000 */ lw $v1, ($v1) +/* 01CEC8 7001C2C8 50E40004 */ beql $a3, $a0, .L7001C2DC +/* 01CECC 7001C2CC 8C630000 */ lw $v1, ($v1) +/* 01CED0 7001C2D0 03E00008 */ jr $ra +/* 01CED4 7001C2D4 00601025 */ move $v0, $v1 + +/* 01CED8 7001C2D8 8C630000 */ lw $v1, ($v1) +.L7001C2DC: +/* 01CEDC 7001C2DC 5460FFF2 */ bnezl $v1, .L7001C2A8 +/* 01CEE0 7001C2E0 90780032 */ lbu $t8, 0x32($v1) +.L7001C2E4: +/* 01CEE4 7001C2E4 00001025 */ move $v0, $zero +/* 01CEE8 7001C2E8 03E00008 */ jr $ra +/* 01CEEC 7001C2EC 00000000 */ nop + +glabel __mapVoice +/* 01CEF0 7001C2F0 AFA50004 */ sw $a1, 4($sp) +/* 01CEF4 7001C2F4 AFA60008 */ sw $a2, 8($sp) +/* 01CEF8 7001C2F8 AFA7000C */ sw $a3, 0xc($sp) +/* 01CEFC 7001C2FC 8C83006C */ lw $v1, 0x6c($a0) +/* 01CF00 7001C300 30AE00FF */ andi $t6, $a1, 0xff +/* 01CF04 7001C304 30CF00FF */ andi $t7, $a2, 0xff +/* 01CF08 7001C308 30F800FF */ andi $t8, $a3, 0xff +/* 01CF0C 7001C30C 03003825 */ move $a3, $t8 +/* 01CF10 7001C310 01E03025 */ move $a2, $t7 +/* 01CF14 7001C314 10600010 */ beqz $v1, .L7001C358 +/* 01CF18 7001C318 01C02825 */ move $a1, $t6 +/* 01CF1C 7001C31C 8C790000 */ lw $t9, ($v1) +/* 01CF20 7001C320 AC99006C */ sw $t9, 0x6c($a0) +/* 01CF24 7001C324 AC600000 */ sw $zero, ($v1) +/* 01CF28 7001C328 8C880064 */ lw $t0, 0x64($a0) +/* 01CF2C 7001C32C 55000004 */ bnezl $t0, .L7001C340 +/* 01CF30 7001C330 8C890068 */ lw $t1, 0x68($a0) +/* 01CF34 7001C334 10000003 */ b .L7001C344 +/* 01CF38 7001C338 AC830064 */ sw $v1, 0x64($a0) +/* 01CF3C 7001C33C 8C890068 */ lw $t1, 0x68($a0) +.L7001C340: +/* 01CF40 7001C340 AD230000 */ sw $v1, ($t1) +.L7001C344: +/* 01CF44 7001C344 AC830068 */ sw $v1, 0x68($a0) +/* 01CF48 7001C348 A0670031 */ sb $a3, 0x31($v1) +/* 01CF4C 7001C34C A0650032 */ sb $a1, 0x32($v1) +/* 01CF50 7001C350 A0660033 */ sb $a2, 0x33($v1) +/* 01CF54 7001C354 AC630014 */ sw $v1, 0x14($v1) +.L7001C358: +/* 01CF58 7001C358 03E00008 */ jr $ra +/* 01CF5C 7001C35C 00601025 */ move $v0, $v1 + +glabel __lookupSoundQuick +/* 01CF60 7001C360 AFA50004 */ sw $a1, 4($sp) +/* 01CF64 7001C364 AFA60008 */ sw $a2, 8($sp) +/* 01CF68 7001C368 AFA7000C */ sw $a3, 0xc($sp) +/* 01CF6C 7001C36C 8C980060 */ lw $t8, 0x60($a0) +/* 01CF70 7001C370 30EF00FF */ andi $t7, $a3, 0xff +/* 01CF74 7001C374 000FC900 */ sll $t9, $t7, 4 +/* 01CF78 7001C378 03196021 */ addu $t4, $t8, $t9 +/* 01CF7C 7001C37C 8D820000 */ lw $v0, ($t4) +/* 01CF80 7001C380 30AE00FF */ andi $t6, $a1, 0xff +/* 01CF84 7001C384 30CB00FF */ andi $t3, $a2, 0xff +/* 01CF88 7001C388 8448000E */ lh $t0, 0xe($v0) +/* 01CF8C 7001C38C 24030001 */ li $v1, 1 +/* 01CF90 7001C390 01C04825 */ move $t1, $t6 +/* 01CF94 7001C394 1900002E */ blez $t0, .L7001C450 +/* 01CF98 7001C398 00682821 */ addu $a1, $v1, $t0 +.L7001C39C: +/* 01CF9C 7001C39C 04A10003 */ bgez $a1, .L7001C3AC +/* 01CFA0 7001C3A0 00056843 */ sra $t5, $a1, 1 +/* 01CFA4 7001C3A4 24A10001 */ addiu $at, $a1, 1 +/* 01CFA8 7001C3A8 00016843 */ sra $t5, $at, 1 +.L7001C3AC: +/* 01CFAC 7001C3AC 000D7080 */ sll $t6, $t5, 2 +/* 01CFB0 7001C3B0 004E7821 */ addu $t7, $v0, $t6 +/* 01CFB4 7001C3B4 8DE7000C */ lw $a3, 0xc($t7) +/* 01CFB8 7001C3B8 01A02025 */ move $a0, $t5 +/* 01CFBC 7001C3BC 8CE60004 */ lw $a2, 4($a3) +/* 01CFC0 7001C3C0 90CA0002 */ lbu $t2, 2($a2) +/* 01CFC4 7001C3C4 012A082A */ slt $at, $t1, $t2 +/* 01CFC8 7001C3C8 54200011 */ bnezl $at, .L7001C410 +/* 01CFCC 7001C3CC 012A082A */ slt $at, $t1, $t2 +/* 01CFD0 7001C3D0 90D80003 */ lbu $t8, 3($a2) +/* 01CFD4 7001C3D4 0309082A */ slt $at, $t8, $t1 +/* 01CFD8 7001C3D8 5420000D */ bnezl $at, .L7001C410 +/* 01CFDC 7001C3DC 012A082A */ slt $at, $t1, $t2 +/* 01CFE0 7001C3E0 90D90000 */ lbu $t9, ($a2) +/* 01CFE4 7001C3E4 01602825 */ move $a1, $t3 +/* 01CFE8 7001C3E8 0179082A */ slt $at, $t3, $t9 +/* 01CFEC 7001C3EC 54200008 */ bnezl $at, .L7001C410 +/* 01CFF0 7001C3F0 012A082A */ slt $at, $t1, $t2 +/* 01CFF4 7001C3F4 90CC0001 */ lbu $t4, 1($a2) +/* 01CFF8 7001C3F8 0185082A */ slt $at, $t4, $a1 +/* 01CFFC 7001C3FC 54200004 */ bnezl $at, .L7001C410 +/* 01D000 7001C400 012A082A */ slt $at, $t1, $t2 +/* 01D004 7001C404 03E00008 */ jr $ra +/* 01D008 7001C408 00E01025 */ move $v0, $a3 + +/* 01D00C 7001C40C 012A082A */ slt $at, $t1, $t2 +.L7001C410: +/* 01D010 7001C410 14200009 */ bnez $at, .L7001C438 +/* 01D014 7001C414 00000000 */ nop +/* 01D018 7001C418 90CD0000 */ lbu $t5, ($a2) +/* 01D01C 7001C41C 016D082A */ slt $at, $t3, $t5 +/* 01D020 7001C420 50200008 */ beql $at, $zero, .L7001C444 +/* 01D024 7001C424 24830001 */ addiu $v1, $a0, 1 +/* 01D028 7001C428 90CE0003 */ lbu $t6, 3($a2) +/* 01D02C 7001C42C 01C9082A */ slt $at, $t6, $t1 +/* 01D030 7001C430 54200004 */ bnezl $at, .L7001C444 +/* 01D034 7001C434 24830001 */ addiu $v1, $a0, 1 +.L7001C438: +/* 01D038 7001C438 10000002 */ b .L7001C444 +/* 01D03C 7001C43C 2488FFFF */ addiu $t0, $a0, -1 +/* 01D040 7001C440 24830001 */ addiu $v1, $a0, 1 +.L7001C444: +/* 01D044 7001C444 0103082A */ slt $at, $t0, $v1 +/* 01D048 7001C448 5020FFD4 */ beql $at, $zero, .L7001C39C +/* 01D04C 7001C44C 00682821 */ addu $a1, $v1, $t0 +.L7001C450: +/* 01D050 7001C450 00001025 */ move $v0, $zero +/* 01D054 7001C454 03E00008 */ jr $ra +/* 01D058 7001C458 00000000 */ nop + +glabel __handleMIDIMsg +/* 01D05C 7001C45C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 01D060 7001C460 AFBF0024 */ sw $ra, 0x24($sp) +/* 01D064 7001C464 90960008 */ lbu $s6, 8($a0) +/* 01D068 7001C468 90930009 */ lbu $s3, 9($a0) +/* 01D06C 7001C46C 9094000A */ lbu $s4, 0xa($a0) +/* 01D070 7001C470 32C300F0 */ andi $v1, $s6, 0xf0 +/* 01D074 7001C474 246FFF80 */ addiu $t7, $v1, -0x80 +/* 01D078 7001C478 2DE10061 */ sltiu $at, $t7, 0x61 +/* 01D07C 7001C47C 32CE000F */ andi $t6, $s6, 0xf +/* 01D080 7001C480 102001F8 */ beqz $at, .L7001CC64 +/* 01D084 7001C484 01C0B025 */ move $s6, $t6 +/* 01D088 7001C488 000F7880 */ sll $t7, $t7, 2 +/* 01D08C 7001C48C 3C018003 */ lui $at, %hi(jpt_80029A50) +/* 01D090 7001C490 002F0821 */ addu $at, $at, $t7 +/* 01D094 7001C494 8C2F9A50 */ lw $t7, %lo(jpt_80029A50)($at) +/* 01D098 7001C498 01E00008 */ jr $t7 +/* 01D09C 7001C49C 00000000 */ nop +.L7001C4A0: +/* 01D0A0 7001C4A0 528000D5 */ beql $s4, $zero, .L7001C7F8 +/* 01D0A4 7001C4A4 02202025 */ move $a0, $s1 +/* 01D0A8 7001C4A8 8E38002C */ lw $t8, 0x2c($s1) +/* 01D0AC 7001C4AC 24010001 */ li $at, 1 +/* 01D0B0 7001C4B0 02202025 */ move $a0, $s1 +/* 01D0B4 7001C4B4 170101EB */ bne $t8, $at, .L7001CC64 +/* 01D0B8 7001C4B8 326500FF */ andi $a1, $s3, 0xff +/* 01D0BC 7001C4BC 328600FF */ andi $a2, $s4, 0xff +/* 01D0C0 7001C4C0 0C0070D8 */ jal __lookupSoundQuick +/* 01D0C4 7001C4C4 32C700FF */ andi $a3, $s6, 0xff +/* 01D0C8 7001C4C8 104001E6 */ beqz $v0, .L7001CC64 +/* 01D0CC 7001C4CC 0040B825 */ move $s7, $v0 +/* 01D0D0 7001C4D0 8E390060 */ lw $t9, 0x60($s1) +/* 01D0D4 7001C4D4 0016F100 */ sll $fp, $s6, 4 +/* 01D0D8 7001C4D8 02202025 */ move $a0, $s1 +/* 01D0DC 7001C4DC 033E7021 */ addu $t6, $t9, $fp +/* 01D0E0 7001C4E0 91CF0008 */ lbu $t7, 8($t6) +/* 01D0E4 7001C4E4 A7A0009E */ sh $zero, 0x9e($sp) +/* 01D0E8 7001C4E8 A3A000A0 */ sb $zero, 0xa0($sp) +/* 01D0EC 7001C4EC 326500FF */ andi $a1, $s3, 0xff +/* 01D0F0 7001C4F0 328600FF */ andi $a2, $s4, 0xff +/* 01D0F4 7001C4F4 32C700FF */ andi $a3, $s6, 0xff +/* 01D0F8 7001C4F8 0C0070BC */ jal __mapVoice +/* 01D0FC 7001C4FC A7AF009C */ sh $t7, 0x9c($sp) +/* 01D100 7001C500 104001D8 */ beqz $v0, .L7001CC64 +/* 01D104 7001C504 00408025 */ move $s0, $v0 +/* 01D108 7001C508 8E240014 */ lw $a0, 0x14($s1) +/* 01D10C 7001C50C 24450004 */ addiu $a1, $v0, 4 +/* 01D110 7001C510 AFA50034 */ sw $a1, 0x34($sp) +/* 01D114 7001C514 0C004C96 */ jal alSynAllocVoice +/* 01D118 7001C518 27A6009C */ addiu $a2, $sp, 0x9c +/* 01D11C 7001C51C AE170020 */ sw $s7, 0x20($s0) +/* 01D120 7001C520 A2000034 */ sb $zero, 0x34($s0) +/* 01D124 7001C524 8E380060 */ lw $t8, 0x60($s1) +/* 01D128 7001C528 24150002 */ li $s5, 2 +/* 01D12C 7001C52C 031EC821 */ addu $t9, $t8, $fp +/* 01D130 7001C530 932E000B */ lbu $t6, 0xb($t9) +/* 01D134 7001C534 29C10040 */ slti $at, $t6, 0x40 +/* 01D138 7001C538 54200004 */ bnezl $at, .L7001C54C +/* 01D13C 7001C53C A2000035 */ sb $zero, 0x35($s0) +/* 01D140 7001C540 10000002 */ b .L7001C54C +/* 01D144 7001C544 A2150035 */ sb $s5, 0x35($s0) +/* 01D148 7001C548 A2000035 */ sb $zero, 0x35($s0) +.L7001C54C: +/* 01D14C 7001C54C 8EE20004 */ lw $v0, 4($s7) +/* 01D150 7001C550 904F0004 */ lbu $t7, 4($v0) +/* 01D154 7001C554 804E0005 */ lb $t6, 5($v0) +/* 01D158 7001C558 026FC023 */ subu $t8, $s3, $t7 +/* 01D15C 7001C55C 0018C880 */ sll $t9, $t8, 2 +/* 01D160 7001C560 0338C823 */ subu $t9, $t9, $t8 +/* 01D164 7001C564 0019C8C0 */ sll $t9, $t9, 3 +/* 01D168 7001C568 0338C821 */ addu $t9, $t9, $t8 +/* 01D16C 7001C56C 0019C880 */ sll $t9, $t9, 2 +/* 01D170 7001C570 032E2021 */ addu $a0, $t9, $t6 +/* 01D174 7001C574 00047C00 */ sll $t7, $a0, 0x10 +/* 01D178 7001C578 0C004DF0 */ jal alCents2Ratio +/* 01D17C 7001C57C 000F2403 */ sra $a0, $t7, 0x10 +/* 01D180 7001C580 E6000028 */ swc1 $f0, 0x28($s0) +/* 01D184 7001C584 8EF90000 */ lw $t9, ($s7) +/* 01D188 7001C588 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 01D18C 7001C58C 44812000 */ mtc1 $at, $f4 +/* 01D190 7001C590 932E000C */ lbu $t6, 0xc($t9) +/* 01D194 7001C594 A20E0030 */ sb $t6, 0x30($s0) +/* 01D198 7001C598 8EF80000 */ lw $t8, ($s7) +/* 01D19C 7001C59C 8E2F001C */ lw $t7, 0x1c($s1) +/* 01D1A0 7001C5A0 8F190000 */ lw $t9, ($t8) +/* 01D1A4 7001C5A4 A2000037 */ sb $zero, 0x37($s0) +/* 01D1A8 7001C5A8 01F97021 */ addu $t6, $t7, $t9 +/* 01D1AC 7001C5AC AE0E0024 */ sw $t6, 0x24($s0) +/* 01D1B0 7001C5B0 8E380060 */ lw $t8, 0x60($s1) +/* 01D1B4 7001C5B4 031E7821 */ addu $t7, $t8, $fp +/* 01D1B8 7001C5B8 8DF20000 */ lw $s2, ($t7) +/* 01D1BC 7001C5BC E7A4008C */ swc1 $f4, 0x8c($sp) +/* 01D1C0 7001C5C0 92460004 */ lbu $a2, 4($s2) +/* 01D1C4 7001C5C4 50C0001A */ beql $a2, $zero, .L7001C630 +/* 01D1C8 7001C5C8 4458F800 */ cfc1 $t8, $31 +/* 01D1CC 7001C5CC 8E220070 */ lw $v0, 0x70($s1) +/* 01D1D0 7001C5D0 50400017 */ beql $v0, $zero, .L7001C630 +/* 01D1D4 7001C5D4 4458F800 */ cfc1 $t8, $31 +/* 01D1D8 7001C5D8 92590006 */ lbu $t9, 6($s2) +/* 01D1DC 7001C5DC 92470005 */ lbu $a3, 5($s2) +/* 01D1E0 7001C5E0 27A40084 */ addiu $a0, $sp, 0x84 +/* 01D1E4 7001C5E4 AFB90010 */ sw $t9, 0x10($sp) +/* 01D1E8 7001C5E8 924E0007 */ lbu $t6, 7($s2) +/* 01D1EC 7001C5EC 27A5008C */ addiu $a1, $sp, 0x8c +/* 01D1F0 7001C5F0 0040F809 */ jalr $v0 +/* 01D1F4 7001C5F4 AFAE0014 */ sw $t6, 0x14($sp) +/* 01D1F8 7001C5F8 1040000C */ beqz $v0, .L7001C62C +/* 01D1FC 7001C5FC 24180016 */ li $t8, 22 +/* 01D200 7001C600 8FAF0084 */ lw $t7, 0x84($sp) +/* 01D204 7001C604 A7B800B4 */ sh $t8, 0xb4($sp) +/* 01D208 7001C608 AFB000B8 */ sw $s0, 0xb8($sp) +/* 01D20C 7001C60C 26240048 */ addiu $a0, $s1, 0x48 +/* 01D210 7001C610 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D214 7001C614 00403025 */ move $a2, $v0 +/* 01D218 7001C618 0C004BBF */ jal alEvtqPostEvent +/* 01D21C 7001C61C AFAF00BC */ sw $t7, 0xbc($sp) +/* 01D220 7001C620 92190037 */ lbu $t9, 0x37($s0) +/* 01D224 7001C624 372E0001 */ ori $t6, $t9, 1 +/* 01D228 7001C628 A20E0037 */ sb $t6, 0x37($s0) +.L7001C62C: +/* 01D22C 7001C62C 4458F800 */ cfc1 $t8, $31 +.L7001C630: +/* 01D230 7001C630 240F0001 */ li $t7, 1 +/* 01D234 7001C634 44CFF800 */ ctc1 $t7, $31 +/* 01D238 7001C638 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 01D23C 7001C63C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01D240 7001C640 46003224 */ cvt.w.s $f8, $f6 +/* 01D244 7001C644 444FF800 */ cfc1 $t7, $31 +/* 01D248 7001C648 00000000 */ nop +/* 01D24C 7001C64C 31EF0078 */ andi $t7, $t7, 0x78 +/* 01D250 7001C650 51E00013 */ beql $t7, $zero, .L7001C6A0 +/* 01D254 7001C654 440F4000 */ mfc1 $t7, $f8 +/* 01D258 7001C658 44814000 */ mtc1 $at, $f8 +/* 01D25C 7001C65C 240F0001 */ li $t7, 1 +/* 01D260 7001C660 46083201 */ sub.s $f8, $f6, $f8 +/* 01D264 7001C664 44CFF800 */ ctc1 $t7, $31 +/* 01D268 7001C668 00000000 */ nop +/* 01D26C 7001C66C 46004224 */ cvt.w.s $f8, $f8 +/* 01D270 7001C670 444FF800 */ cfc1 $t7, $31 +/* 01D274 7001C674 00000000 */ nop +/* 01D278 7001C678 31EF0078 */ andi $t7, $t7, 0x78 +/* 01D27C 7001C67C 15E00005 */ bnez $t7, .L7001C694 +/* 01D280 7001C680 00000000 */ nop +/* 01D284 7001C684 440F4000 */ mfc1 $t7, $f8 +/* 01D288 7001C688 3C018000 */ lui $at, 0x8000 +/* 01D28C 7001C68C 10000007 */ b .L7001C6AC +/* 01D290 7001C690 01E17825 */ or $t7, $t7, $at +.L7001C694: +/* 01D294 7001C694 10000005 */ b .L7001C6AC +/* 01D298 7001C698 240FFFFF */ li $t7, -1 +/* 01D29C 7001C69C 440F4000 */ mfc1 $t7, $f8 +.L7001C6A0: +/* 01D2A0 7001C6A0 00000000 */ nop +/* 01D2A4 7001C6A4 05E0FFFB */ bltz $t7, .L7001C694 +/* 01D2A8 7001C6A8 00000000 */ nop +.L7001C6AC: +/* 01D2AC 7001C6AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01D2B0 7001C6B0 44815000 */ mtc1 $at, $f10 +/* 01D2B4 7001C6B4 A20F0036 */ sb $t7, 0x36($s0) +/* 01D2B8 7001C6B8 44D8F800 */ ctc1 $t8, $31 +/* 01D2BC 7001C6BC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 01D2C0 7001C6C0 92460008 */ lbu $a2, 8($s2) +/* 01D2C4 7001C6C4 26350048 */ addiu $s5, $s1, 0x48 +/* 01D2C8 7001C6C8 50C0001B */ beql $a2, $zero, .L7001C738 +/* 01D2CC 7001C6CC C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 01D2D0 7001C6D0 8E220070 */ lw $v0, 0x70($s1) +/* 01D2D4 7001C6D4 50400018 */ beql $v0, $zero, .L7001C738 +/* 01D2D8 7001C6D8 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 01D2DC 7001C6DC 9259000A */ lbu $t9, 0xa($s2) +/* 01D2E0 7001C6E0 92470009 */ lbu $a3, 9($s2) +/* 01D2E4 7001C6E4 27A40084 */ addiu $a0, $sp, 0x84 +/* 01D2E8 7001C6E8 AFB90010 */ sw $t9, 0x10($sp) +/* 01D2EC 7001C6EC 924E000B */ lbu $t6, 0xb($s2) +/* 01D2F0 7001C6F0 27A5008C */ addiu $a1, $sp, 0x8c +/* 01D2F4 7001C6F4 0040F809 */ jalr $v0 +/* 01D2F8 7001C6F8 AFAE0014 */ sw $t6, 0x14($sp) +/* 01D2FC 7001C6FC 1040000D */ beqz $v0, .L7001C734 +/* 01D300 7001C700 24180017 */ li $t8, 23 +/* 01D304 7001C704 8FAF0084 */ lw $t7, 0x84($sp) +/* 01D308 7001C708 A7B800B4 */ sh $t8, 0xb4($sp) +/* 01D30C 7001C70C AFB000B8 */ sw $s0, 0xb8($sp) +/* 01D310 7001C710 A3B600C0 */ sb $s6, 0xc0($sp) +/* 01D314 7001C714 02A02025 */ move $a0, $s5 +/* 01D318 7001C718 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D31C 7001C71C 00403025 */ move $a2, $v0 +/* 01D320 7001C720 0C004BBF */ jal alEvtqPostEvent +/* 01D324 7001C724 AFAF00BC */ sw $t7, 0xbc($sp) +/* 01D328 7001C728 92190037 */ lbu $t9, 0x37($s0) +/* 01D32C 7001C72C 372E0002 */ ori $t6, $t9, 2 +/* 01D330 7001C730 A20E0037 */ sb $t6, 0x37($s0) +.L7001C734: +/* 01D334 7001C734 C7A4008C */ lwc1 $f4, 0x8c($sp) +.L7001C738: +/* 01D338 7001C738 C6080028 */ lwc1 $f8, 0x28($s0) +/* 01D33C 7001C73C 02002025 */ move $a0, $s0 +/* 01D340 7001C740 E604002C */ swc1 $f4, 0x2c($s0) +/* 01D344 7001C744 8E380060 */ lw $t8, 0x60($s1) +/* 01D348 7001C748 C604002C */ lwc1 $f4, 0x2c($s0) +/* 01D34C 7001C74C 02202825 */ move $a1, $s1 +/* 01D350 7001C750 031E1021 */ addu $v0, $t8, $fp +/* 01D354 7001C754 C446000C */ lwc1 $f6, 0xc($v0) +/* 01D358 7001C758 9052000A */ lbu $s2, 0xa($v0) +/* 01D35C 7001C75C 46083282 */ mul.s $f10, $f6, $f8 +/* 01D360 7001C760 00000000 */ nop +/* 01D364 7001C764 46045502 */ mul.s $f20, $f10, $f4 +/* 01D368 7001C768 0C00708D */ jal __vsPan +/* 01D36C 7001C76C 00000000 */ nop +/* 01D370 7001C770 305400FF */ andi $s4, $v0, 0xff +/* 01D374 7001C774 02002025 */ move $a0, $s0 +/* 01D378 7001C778 0C006F85 */ jal __vsVol +/* 01D37C 7001C77C 02202825 */ move $a1, $s1 +/* 01D380 7001C780 8EEF0000 */ lw $t7, ($s7) +/* 01D384 7001C784 8E240014 */ lw $a0, 0x14($s1) +/* 01D388 7001C788 8EE60008 */ lw $a2, 8($s7) +/* 01D38C 7001C78C 8DF30000 */ lw $s3, ($t7) +/* 01D390 7001C790 4407A000 */ mfc1 $a3, $f20 +/* 01D394 7001C794 AFB20018 */ sw $s2, 0x18($sp) +/* 01D398 7001C798 AFB40014 */ sw $s4, 0x14($sp) +/* 01D39C 7001C79C AFA20010 */ sw $v0, 0x10($sp) +/* 01D3A0 7001C7A0 8FA50034 */ lw $a1, 0x34($sp) +/* 01D3A4 7001C7A4 0C007568 */ jal alSynStartVoiceParams +/* 01D3A8 7001C7A8 AFB3001C */ sw $s3, 0x1c($sp) +/* 01D3AC 7001C7AC 8FAE0034 */ lw $t6, 0x34($sp) +/* 01D3B0 7001C7B0 24190006 */ li $t9, 6 +/* 01D3B4 7001C7B4 A7B900B4 */ sh $t9, 0xb4($sp) +/* 01D3B8 7001C7B8 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 01D3BC 7001C7BC 8EF80000 */ lw $t8, ($s7) +/* 01D3C0 7001C7C0 02A02025 */ move $a0, $s5 +/* 01D3C4 7001C7C4 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D3C8 7001C7C8 930F000D */ lbu $t7, 0xd($t8) +/* 01D3CC 7001C7CC A3AF00C0 */ sb $t7, 0xc0($sp) +/* 01D3D0 7001C7D0 8EF90000 */ lw $t9, ($s7) +/* 01D3D4 7001C7D4 8F2E0004 */ lw $t6, 4($t9) +/* 01D3D8 7001C7D8 AFAE00BC */ sw $t6, 0xbc($sp) +/* 01D3DC 7001C7DC 8EF80000 */ lw $t8, ($s7) +/* 01D3E0 7001C7E0 8F130000 */ lw $s3, ($t8) +/* 01D3E4 7001C7E4 0C004BBF */ jal alEvtqPostEvent +/* 01D3E8 7001C7E8 02603025 */ move $a2, $s3 +/* 01D3EC 7001C7EC 1000011E */ b .L7001CC68 +/* 01D3F0 7001C7F0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C7F4: +/* 01D3F4 7001C7F4 02202025 */ move $a0, $s1 +.L7001C7F8: +/* 01D3F8 7001C7F8 326500FF */ andi $a1, $s3, 0xff +/* 01D3FC 7001C7FC 0C00709F */ jal __lookupVoice +/* 01D400 7001C800 32C600FF */ andi $a2, $s6, 0xff +/* 01D404 7001C804 10400117 */ beqz $v0, .L7001CC64 +/* 01D408 7001C808 00408025 */ move $s0, $v0 +/* 01D40C 7001C80C 904F0035 */ lbu $t7, 0x35($v0) +/* 01D410 7001C810 24160002 */ li $s6, 2 +/* 01D414 7001C814 24190004 */ li $t9, 4 +/* 01D418 7001C818 16CF0003 */ bne $s6, $t7, .L7001C828 +/* 01D41C 7001C81C 02202025 */ move $a0, $s1 +/* 01D420 7001C820 10000110 */ b .L7001CC64 +/* 01D424 7001C824 A0590035 */ sb $t9, 0x35($v0) +.L7001C828: +/* 01D428 7001C828 8E0E0020 */ lw $t6, 0x20($s0) +/* 01D42C 7001C82C 241E0003 */ li $fp, 3 +/* 01D430 7001C830 A21E0035 */ sb $fp, 0x35($s0) +/* 01D434 7001C834 8DD80000 */ lw $t8, ($t6) +/* 01D438 7001C838 26050004 */ addiu $a1, $s0, 4 +/* 01D43C 7001C83C 0C006FA7 */ jal __seqpReleaseVoice +/* 01D440 7001C840 8F060008 */ lw $a2, 8($t8) +/* 01D444 7001C844 10000108 */ b .L7001CC68 +/* 01D448 7001C848 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C84C: +/* 01D44C 7001C84C 02202025 */ move $a0, $s1 +/* 01D450 7001C850 326500FF */ andi $a1, $s3, 0xff +/* 01D454 7001C854 0C00709F */ jal __lookupVoice +/* 01D458 7001C858 32C600FF */ andi $a2, $s6, 0xff +/* 01D45C 7001C85C 10400101 */ beqz $v0, .L7001CC64 +/* 01D460 7001C860 00408025 */ move $s0, $v0 +/* 01D464 7001C864 A0540033 */ sb $s4, 0x33($v0) +/* 01D468 7001C868 00402025 */ move $a0, $v0 +/* 01D46C 7001C86C 0C006F85 */ jal __vsVol +/* 01D470 7001C870 02202825 */ move $a1, $s1 +/* 01D474 7001C874 8E23001C */ lw $v1, 0x1c($s1) +/* 01D478 7001C878 8E190024 */ lw $t9, 0x24($s0) +/* 01D47C 7001C87C 00023400 */ sll $a2, $v0, 0x10 +/* 01D480 7001C880 00067C03 */ sra $t7, $a2, 0x10 +/* 01D484 7001C884 03232023 */ subu $a0, $t9, $v1 +/* 01D488 7001C888 04800003 */ bltz $a0, .L7001C898 +/* 01D48C 7001C88C 01E03025 */ move $a2, $t7 +/* 01D490 7001C890 10000002 */ b .L7001C89C +/* 01D494 7001C894 00801025 */ move $v0, $a0 +.L7001C898: +/* 01D498 7001C898 240203E8 */ li $v0, 1000 +.L7001C89C: +/* 01D49C 7001C89C 8E240014 */ lw $a0, 0x14($s1) +/* 01D4A0 7001C8A0 26050004 */ addiu $a1, $s0, 4 +/* 01D4A4 7001C8A4 0C004CE8 */ jal alSynSetVol +/* 01D4A8 7001C8A8 00403825 */ move $a3, $v0 +/* 01D4AC 7001C8AC 100000EE */ b .L7001CC68 +/* 01D4B0 7001C8B0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C8B4: +/* 01D4B4 7001C8B4 8E300064 */ lw $s0, 0x64($s1) +/* 01D4B8 7001C8B8 520000EB */ beql $s0, $zero, .L7001CC68 +/* 01D4BC 7001C8BC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D4C0 7001C8C0 02C09025 */ move $s2, $s6 +/* 01D4C4 7001C8C4 920E0031 */ lbu $t6, 0x31($s0) +.L7001C8C8: +/* 01D4C8 7001C8C8 02002025 */ move $a0, $s0 +/* 01D4CC 7001C8CC 02202825 */ move $a1, $s1 +/* 01D4D0 7001C8D0 564E0012 */ bnel $s2, $t6, .L7001C91C +/* 01D4D4 7001C8D4 8E100000 */ lw $s0, ($s0) +/* 01D4D8 7001C8D8 0C006F85 */ jal __vsVol +/* 01D4DC 7001C8DC A2130033 */ sb $s3, 0x33($s0) +/* 01D4E0 7001C8E0 8E23001C */ lw $v1, 0x1c($s1) +/* 01D4E4 7001C8E4 8E0F0024 */ lw $t7, 0x24($s0) +/* 01D4E8 7001C8E8 00023400 */ sll $a2, $v0, 0x10 +/* 01D4EC 7001C8EC 0006C403 */ sra $t8, $a2, 0x10 +/* 01D4F0 7001C8F0 01E32023 */ subu $a0, $t7, $v1 +/* 01D4F4 7001C8F4 04800003 */ bltz $a0, .L7001C904 +/* 01D4F8 7001C8F8 03003025 */ move $a2, $t8 +/* 01D4FC 7001C8FC 10000002 */ b .L7001C908 +/* 01D500 7001C900 00801025 */ move $v0, $a0 +.L7001C904: +/* 01D504 7001C904 240203E8 */ li $v0, 1000 +.L7001C908: +/* 01D508 7001C908 8E240014 */ lw $a0, 0x14($s1) +/* 01D50C 7001C90C 26050004 */ addiu $a1, $s0, 4 +/* 01D510 7001C910 0C004CE8 */ jal alSynSetVol +/* 01D514 7001C914 00403825 */ move $a3, $v0 +/* 01D518 7001C918 8E100000 */ lw $s0, ($s0) +.L7001C91C: +/* 01D51C 7001C91C 5600FFEA */ bnezl $s0, .L7001C8C8 +/* 01D520 7001C920 920E0031 */ lbu $t6, 0x31($s0) +/* 01D524 7001C924 100000D0 */ b .L7001CC68 +/* 01D528 7001C928 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C92C: +/* 01D52C 7001C92C 2A610041 */ slti $at, $s3, 0x41 +/* 01D530 7001C930 14200008 */ bnez $at, .L7001C954 +/* 01D534 7001C934 02601025 */ move $v0, $s3 +/* 01D538 7001C938 2401005B */ li $at, 91 +/* 01D53C 7001C93C 10410082 */ beq $v0, $at, .L7001CB48 +/* 01D540 7001C940 2401005D */ li $at, 93 +/* 01D544 7001C944 504100C8 */ beql $v0, $at, .L7001CC68 +/* 01D548 7001C948 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D54C 7001C94C 100000C6 */ b .L7001CC68 +/* 01D550 7001C950 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C954: +/* 01D554 7001C954 2841001C */ slti $at, $v0, 0x1c +/* 01D558 7001C958 14200006 */ bnez $at, .L7001C974 +/* 01D55C 7001C95C 2459FFF9 */ addiu $t9, $v0, -7 +/* 01D560 7001C960 24010040 */ li $at, 64 +/* 01D564 7001C964 5041004D */ beql $v0, $at, .L7001CA9C +/* 01D568 7001C968 8E2F0060 */ lw $t7, 0x60($s1) +/* 01D56C 7001C96C 100000BE */ b .L7001CC68 +/* 01D570 7001C970 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C974: +/* 01D574 7001C974 2F210015 */ sltiu $at, $t9, 0x15 +/* 01D578 7001C978 102000BA */ beqz $at, .L7001CC64 +/* 01D57C 7001C97C 0019C880 */ sll $t9, $t9, 2 +/* 01D580 7001C980 3C018003 */ lui $at, %hi(jpt_80029BD4) +/* 01D584 7001C984 00390821 */ addu $at, $at, $t9 +/* 01D588 7001C988 8C399BD4 */ lw $t9, %lo(jpt_80029BD4)($at) +/* 01D58C 7001C98C 03200008 */ jr $t9 +/* 01D590 7001C990 00000000 */ nop +.L7001C994: +/* 01D594 7001C994 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D598 7001C998 0016C100 */ sll $t8, $s6, 4 +/* 01D59C 7001C99C 01D87821 */ addu $t7, $t6, $t8 +/* 01D5A0 7001C9A0 A1F40007 */ sb $s4, 7($t7) +/* 01D5A4 7001C9A4 8E300064 */ lw $s0, 0x64($s1) +/* 01D5A8 7001C9A8 520000AF */ beql $s0, $zero, .L7001CC68 +/* 01D5AC 7001C9AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D5B0 7001C9B0 02C09025 */ move $s2, $s6 +/* 01D5B4 7001C9B4 92190031 */ lbu $t9, 0x31($s0) +.L7001C9B8: +/* 01D5B8 7001C9B8 02002025 */ move $a0, $s0 +/* 01D5BC 7001C9BC 56590008 */ bnel $s2, $t9, .L7001C9E0 +/* 01D5C0 7001C9C0 8E100000 */ lw $s0, ($s0) +/* 01D5C4 7001C9C4 0C00708D */ jal __vsPan +/* 01D5C8 7001C9C8 02202825 */ move $a1, $s1 +/* 01D5CC 7001C9CC 8E240014 */ lw $a0, 0x14($s1) +/* 01D5D0 7001C9D0 26050004 */ addiu $a1, $s0, 4 +/* 01D5D4 7001C9D4 0C004D34 */ jal alSynSetPan +/* 01D5D8 7001C9D8 304600FF */ andi $a2, $v0, 0xff +/* 01D5DC 7001C9DC 8E100000 */ lw $s0, ($s0) +.L7001C9E0: +/* 01D5E0 7001C9E0 5600FFF5 */ bnezl $s0, .L7001C9B8 +/* 01D5E4 7001C9E4 92190031 */ lbu $t9, 0x31($s0) +/* 01D5E8 7001C9E8 1000009F */ b .L7001CC68 +/* 01D5EC 7001C9EC 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C9F0: +/* 01D5F0 7001C9F0 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D5F4 7001C9F4 0016C100 */ sll $t8, $s6, 4 +/* 01D5F8 7001C9F8 01D87821 */ addu $t7, $t6, $t8 +/* 01D5FC 7001C9FC A1F40009 */ sb $s4, 9($t7) +/* 01D600 7001CA00 8E300064 */ lw $s0, 0x64($s1) +/* 01D604 7001CA04 52000098 */ beql $s0, $zero, .L7001CC68 +/* 01D608 7001CA08 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D60C 7001CA0C 02C09025 */ move $s2, $s6 +/* 01D610 7001CA10 24130003 */ li $s3, 3 +/* 01D614 7001CA14 92190031 */ lbu $t9, 0x31($s0) +.L7001CA18: +/* 01D618 7001CA18 56590016 */ bnel $s2, $t9, .L7001CA74 +/* 01D61C 7001CA1C 8E100000 */ lw $s0, ($s0) +/* 01D620 7001CA20 920E0034 */ lbu $t6, 0x34($s0) +/* 01D624 7001CA24 02002025 */ move $a0, $s0 +/* 01D628 7001CA28 526E0012 */ beql $s3, $t6, .L7001CA74 +/* 01D62C 7001CA2C 8E100000 */ lw $s0, ($s0) +/* 01D630 7001CA30 0C006F85 */ jal __vsVol +/* 01D634 7001CA34 02202825 */ move $a1, $s1 +/* 01D638 7001CA38 8E23001C */ lw $v1, 0x1c($s1) +/* 01D63C 7001CA3C 8E0F0024 */ lw $t7, 0x24($s0) +/* 01D640 7001CA40 00023400 */ sll $a2, $v0, 0x10 +/* 01D644 7001CA44 0006C403 */ sra $t8, $a2, 0x10 +/* 01D648 7001CA48 01E32023 */ subu $a0, $t7, $v1 +/* 01D64C 7001CA4C 04800003 */ bltz $a0, .L7001CA5C +/* 01D650 7001CA50 03003025 */ move $a2, $t8 +/* 01D654 7001CA54 10000002 */ b .L7001CA60 +/* 01D658 7001CA58 00801025 */ move $v0, $a0 +.L7001CA5C: +/* 01D65C 7001CA5C 240203E8 */ li $v0, 1000 +.L7001CA60: +/* 01D660 7001CA60 8E240014 */ lw $a0, 0x14($s1) +/* 01D664 7001CA64 26050004 */ addiu $a1, $s0, 4 +/* 01D668 7001CA68 0C004CE8 */ jal alSynSetVol +/* 01D66C 7001CA6C 00403825 */ move $a3, $v0 +/* 01D670 7001CA70 8E100000 */ lw $s0, ($s0) +.L7001CA74: +/* 01D674 7001CA74 5600FFE8 */ bnezl $s0, .L7001CA18 +/* 01D678 7001CA78 92190031 */ lbu $t9, 0x31($s0) +/* 01D67C 7001CA7C 1000007A */ b .L7001CC68 +/* 01D680 7001CA80 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CA84: +/* 01D684 7001CA84 8E390060 */ lw $t9, 0x60($s1) +/* 01D688 7001CA88 00167100 */ sll $t6, $s6, 4 +/* 01D68C 7001CA8C 032EC021 */ addu $t8, $t9, $t6 +/* 01D690 7001CA90 10000074 */ b .L7001CC64 +/* 01D694 7001CA94 A3140008 */ sb $s4, 8($t8) +/* 01D698 7001CA98 8E2F0060 */ lw $t7, 0x60($s1) +.L7001CA9C: +/* 01D69C 7001CA9C 0016C900 */ sll $t9, $s6, 4 +/* 01D6A0 7001CAA0 01F97021 */ addu $t6, $t7, $t9 +/* 01D6A4 7001CAA4 A1D4000B */ sb $s4, 0xb($t6) +/* 01D6A8 7001CAA8 8E300064 */ lw $s0, 0x64($s1) +/* 01D6AC 7001CAAC 5200006E */ beql $s0, $zero, .L7001CC68 +/* 01D6B0 7001CAB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D6B4 7001CAB4 02C09025 */ move $s2, $s6 +/* 01D6B8 7001CAB8 24160002 */ li $s6, 2 +/* 01D6BC 7001CABC 241E0003 */ li $fp, 3 +/* 01D6C0 7001CAC0 24170004 */ li $s7, 4 +/* 01D6C4 7001CAC4 24150002 */ li $s5, 2 +/* 01D6C8 7001CAC8 24130003 */ li $s3, 3 +/* 01D6CC 7001CACC 92180031 */ lbu $t8, 0x31($s0) +.L7001CAD0: +/* 01D6D0 7001CAD0 56580019 */ bnel $s2, $t8, .L7001CB38 +/* 01D6D4 7001CAD4 8E100000 */ lw $s0, ($s0) +/* 01D6D8 7001CAD8 92020035 */ lbu $v0, 0x35($s0) +/* 01D6DC 7001CADC 2A810040 */ slti $at, $s4, 0x40 +/* 01D6E0 7001CAE0 52620015 */ beql $s3, $v0, .L7001CB38 +/* 01D6E4 7001CAE4 8E100000 */ lw $s0, ($s0) +/* 01D6E8 7001CAE8 14200005 */ bnez $at, .L7001CB00 +/* 01D6EC 7001CAEC 00000000 */ nop +/* 01D6F0 7001CAF0 54400011 */ bnezl $v0, .L7001CB38 +/* 01D6F4 7001CAF4 8E100000 */ lw $s0, ($s0) +/* 01D6F8 7001CAF8 1000000E */ b .L7001CB34 +/* 01D6FC 7001CAFC A2150035 */ sb $s5, 0x35($s0) +.L7001CB00: +/* 01D700 7001CB00 16C20003 */ bne $s6, $v0, .L7001CB10 +/* 01D704 7001CB04 00000000 */ nop +/* 01D708 7001CB08 1000000A */ b .L7001CB34 +/* 01D70C 7001CB0C A2000035 */ sb $zero, 0x35($s0) +.L7001CB10: +/* 01D710 7001CB10 56E20009 */ bnel $s7, $v0, .L7001CB38 +/* 01D714 7001CB14 8E100000 */ lw $s0, ($s0) +/* 01D718 7001CB18 8E0F0020 */ lw $t7, 0x20($s0) +/* 01D71C 7001CB1C A21E0035 */ sb $fp, 0x35($s0) +/* 01D720 7001CB20 02202025 */ move $a0, $s1 +/* 01D724 7001CB24 8DF90000 */ lw $t9, ($t7) +/* 01D728 7001CB28 26050004 */ addiu $a1, $s0, 4 +/* 01D72C 7001CB2C 0C006FA7 */ jal __seqpReleaseVoice +/* 01D730 7001CB30 8F260008 */ lw $a2, 8($t9) +.L7001CB34: +/* 01D734 7001CB34 8E100000 */ lw $s0, ($s0) +.L7001CB38: +/* 01D738 7001CB38 5600FFE5 */ bnezl $s0, .L7001CAD0 +/* 01D73C 7001CB3C 92180031 */ lbu $t8, 0x31($s0) +/* 01D740 7001CB40 10000049 */ b .L7001CC68 +/* 01D744 7001CB44 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CB48: +/* 01D748 7001CB48 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D74C 7001CB4C 0016C100 */ sll $t8, $s6, 4 +/* 01D750 7001CB50 01D87821 */ addu $t7, $t6, $t8 +/* 01D754 7001CB54 A1F4000A */ sb $s4, 0xa($t7) +/* 01D758 7001CB58 8E300064 */ lw $s0, 0x64($s1) +/* 01D75C 7001CB5C 52000042 */ beql $s0, $zero, .L7001CC68 +/* 01D760 7001CB60 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D764 7001CB64 02C09025 */ move $s2, $s6 +/* 01D768 7001CB68 92190031 */ lbu $t9, 0x31($s0) +.L7001CB6C: +/* 01D76C 7001CB6C 26050004 */ addiu $a1, $s0, 4 +/* 01D770 7001CB70 328600FF */ andi $a2, $s4, 0xff +/* 01D774 7001CB74 56590004 */ bnel $s2, $t9, .L7001CB88 +/* 01D778 7001CB78 8E100000 */ lw $s0, ($s0) +/* 01D77C 7001CB7C 0C004D7C */ jal alSynSetFXMix +/* 01D780 7001CB80 8E240014 */ lw $a0, 0x14($s1) +/* 01D784 7001CB84 8E100000 */ lw $s0, ($s0) +.L7001CB88: +/* 01D788 7001CB88 5600FFF8 */ bnezl $s0, .L7001CB6C +/* 01D78C 7001CB8C 92190031 */ lbu $t9, 0x31($s0) +/* 01D790 7001CB90 10000035 */ b .L7001CC68 +/* 01D794 7001CB94 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CB98: +/* 01D798 7001CB98 8E220020 */ lw $v0, 0x20($s1) +/* 01D79C 7001CB9C 0013C080 */ sll $t8, $s3, 2 +/* 01D7A0 7001CBA0 02202025 */ move $a0, $s1 +/* 01D7A4 7001CBA4 844E0000 */ lh $t6, ($v0) +/* 01D7A8 7001CBA8 02C03025 */ move $a2, $s6 +/* 01D7AC 7001CBAC 00587821 */ addu $t7, $v0, $t8 +/* 01D7B0 7001CBB0 026E082A */ slt $at, $s3, $t6 +/* 01D7B4 7001CBB4 5020002C */ beql $at, $zero, .L7001CC68 +/* 01D7B8 7001CBB8 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D7BC 7001CBBC 0C006F18 */ jal __setInstChanState +/* 01D7C0 7001CBC0 8DE5000C */ lw $a1, 0xc($t7) +/* 01D7C4 7001CBC4 10000028 */ b .L7001CC68 +/* 01D7C8 7001CBC8 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CBCC: +/* 01D7CC 7001CBCC 8E390060 */ lw $t9, 0x60($s1) +/* 01D7D0 7001CBD0 0016F100 */ sll $fp, $s6, 4 +/* 01D7D4 7001CBD4 001479C0 */ sll $t7, $s4, 7 +/* 01D7D8 7001CBD8 033E7021 */ addu $t6, $t9, $fp +/* 01D7DC 7001CBDC 85D80004 */ lh $t8, 4($t6) +/* 01D7E0 7001CBE0 01F3C821 */ addu $t9, $t7, $s3 +/* 01D7E4 7001CBE4 272EE000 */ addiu $t6, $t9, -0x2000 +/* 01D7E8 7001CBE8 030E0019 */ multu $t8, $t6 +/* 01D7EC 7001CBEC 00002012 */ mflo $a0 +/* 01D7F0 7001CBF0 04810003 */ bgez $a0, .L7001CC00 +/* 01D7F4 7001CBF4 00047B43 */ sra $t7, $a0, 0xd +/* 01D7F8 7001CBF8 24811FFF */ addiu $at, $a0, 0x1fff +/* 01D7FC 7001CBFC 00017B43 */ sra $t7, $at, 0xd +.L7001CC00: +/* 01D800 7001CC00 0C004DF0 */ jal alCents2Ratio +/* 01D804 7001CC04 01E02025 */ move $a0, $t7 +/* 01D808 7001CC08 8E390060 */ lw $t9, 0x60($s1) +/* 01D80C 7001CC0C 46000506 */ mov.s $f20, $f0 +/* 01D810 7001CC10 033EC021 */ addu $t8, $t9, $fp +/* 01D814 7001CC14 E700000C */ swc1 $f0, 0xc($t8) +/* 01D818 7001CC18 8E300064 */ lw $s0, 0x64($s1) +/* 01D81C 7001CC1C 52000012 */ beql $s0, $zero, .L7001CC68 +/* 01D820 7001CC20 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D824 7001CC24 02C09025 */ move $s2, $s6 +/* 01D828 7001CC28 920E0031 */ lbu $t6, 0x31($s0) +.L7001CC2C: +/* 01D82C 7001CC2C 564E000B */ bnel $s2, $t6, .L7001CC5C +/* 01D830 7001CC30 8E100000 */ lw $s0, ($s0) +/* 01D834 7001CC34 C6060028 */ lwc1 $f6, 0x28($s0) +/* 01D838 7001CC38 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 01D83C 7001CC3C 8E240014 */ lw $a0, 0x14($s1) +/* 01D840 7001CC40 46143202 */ mul.s $f8, $f6, $f20 +/* 01D844 7001CC44 26050004 */ addiu $a1, $s0, 4 +/* 01D848 7001CC48 460A4102 */ mul.s $f4, $f8, $f10 +/* 01D84C 7001CC4C 44062000 */ mfc1 $a2, $f4 +/* 01D850 7001CC50 0C004D58 */ jal alSynSetPitch +/* 01D854 7001CC54 00000000 */ nop +/* 01D858 7001CC58 8E100000 */ lw $s0, ($s0) +.L7001CC5C: +/* 01D85C 7001CC5C 5600FFF3 */ bnezl $s0, .L7001CC2C +/* 01D860 7001CC60 920E0031 */ lbu $t6, 0x31($s0) +.L7001CC64: +/* 01D864 7001CC64 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CC68: +/* 01D868 7001CC68 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 01D86C 7001CC6C 03E00008 */ jr $ra +/* 01D870 7001CC70 00000000 */ nop + +/* 01D874 7001CC74 03E00008 */ jr $ra +/* 01D878 7001CC78 00000000 */ nop + +glabel __seqpVoiceHandler +/* 01D87C 7001CC7C 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 01D880 7001CC80 AFB50034 */ sw $s5, 0x34($sp) +/* 01D884 7001CC84 AFB20028 */ sw $s2, 0x28($sp) +/* 01D888 7001CC88 248E0038 */ addiu $t6, $a0, 0x38 +/* 01D88C 7001CC8C 00809025 */ move $s2, $a0 +/* 01D890 7001CC90 AFBF0044 */ sw $ra, 0x44($sp) +/* 01D894 7001CC94 AFBE0040 */ sw $fp, 0x40($sp) +/* 01D898 7001CC98 AFB7003C */ sw $s7, 0x3c($sp) +/* 01D89C 7001CC9C AFB60038 */ sw $s6, 0x38($sp) +/* 01D8A0 7001CCA0 AFB40030 */ sw $s4, 0x30($sp) +/* 01D8A4 7001CCA4 AFB3002C */ sw $s3, 0x2c($sp) +/* 01D8A8 7001CCA8 AFB10024 */ sw $s1, 0x24($sp) +/* 01D8AC 7001CCAC AFB00020 */ sw $s0, 0x20($sp) +/* 01D8B0 7001CCB0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 01D8B4 7001CCB4 AFAE0050 */ sw $t6, 0x50($sp) +/* 01D8B8 7001CCB8 24950048 */ addiu $s5, $a0, 0x48 +.L7001CCBC: +/* 01D8BC 7001CCBC 964F0038 */ lhu $t7, 0x38($s2) +/* 01D8C0 7001CCC0 2DE10018 */ sltiu $at, $t7, 0x18 +/* 01D8C4 7001CCC4 10200161 */ beqz $at, .L7001D24C +/* 01D8C8 7001CCC8 000F7880 */ sll $t7, $t7, 2 +/* 01D8CC 7001CCCC 3C018003 */ lui $at, %hi(jpt_80029C28) +/* 01D8D0 7001CCD0 002F0821 */ addu $at, $at, $t7 +/* 01D8D4 7001CCD4 8C2F9C28 */ lw $t7, %lo(jpt_80029C28)($at) +/* 01D8D8 7001CCD8 01E00008 */ jr $t7 +/* 01D8DC 7001CCDC 00000000 */ nop +.L7001CCE0: +/* 01D8E0 7001CCE0 8E440018 */ lw $a0, 0x18($s2) +/* 01D8E4 7001CCE4 5080015A */ beql $a0, $zero, .L7001D250 +/* 01D8E8 7001CCE8 02A02025 */ move $a0, $s5 +/* 01D8EC 7001CCEC 0C00816D */ jal alSeqNextEvent +/* 01D8F0 7001CCF0 27A50088 */ addiu $a1, $sp, 0x88 +/* 01D8F4 7001CCF4 87A20088 */ lh $v0, 0x88($sp) +/* 01D8F8 7001CCF8 24010001 */ li $at, 1 +/* 01D8FC 7001CCFC 02408825 */ move $s1, $s2 +/* 01D900 7001CD00 10410009 */ beq $v0, $at, .L7001CD28 +/* 01D904 7001CD04 27A40088 */ addiu $a0, $sp, 0x88 +/* 01D908 7001CD08 24010003 */ li $at, 3 +/* 01D90C 7001CD0C 1041000F */ beq $v0, $at, .L7001CD4C +/* 01D910 7001CD10 02402825 */ move $a1, $s2 +/* 01D914 7001CD14 24010004 */ li $at, 4 +/* 01D918 7001CD18 10410012 */ beq $v0, $at, .L7001CD64 +/* 01D91C 7001CD1C 24180002 */ li $t8, 2 +/* 01D920 7001CD20 1000014B */ b .L7001D250 +/* 01D924 7001CD24 02A02025 */ move $a0, $s5 +.L7001CD28: +/* 01D928 7001CD28 AFB200D0 */ sw $s2, 0xd0($sp) +/* 01D92C 7001CD2C 0C007117 */ jal __handleMIDIMsg +/* 01D930 7001CD30 AFB5004C */ sw $s5, 0x4c($sp) +/* 01D934 7001CD34 8FB200D0 */ lw $s2, 0xd0($sp) +/* 01D938 7001CD38 8FB5004C */ lw $s5, 0x4c($sp) +/* 01D93C 7001CD3C 0C007038 */ jal __postNextSeqEvent +/* 01D940 7001CD40 02402025 */ move $a0, $s2 +/* 01D944 7001CD44 10000142 */ b .L7001D250 +/* 01D948 7001CD48 02A02025 */ move $a0, $s5 +.L7001CD4C: +/* 01D94C 7001CD4C 0C00706F */ jal __handleMetaMsg +/* 01D950 7001CD50 27A40088 */ addiu $a0, $sp, 0x88 +/* 01D954 7001CD54 0C007038 */ jal __postNextSeqEvent +/* 01D958 7001CD58 02402025 */ move $a0, $s2 +/* 01D95C 7001CD5C 1000013C */ b .L7001D250 +/* 01D960 7001CD60 02A02025 */ move $a0, $s5 +.L7001CD64: +/* 01D964 7001CD64 AE58002C */ sw $t8, 0x2c($s2) +/* 01D968 7001CD68 24190010 */ li $t9, 16 +/* 01D96C 7001CD6C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 01D970 7001CD70 A7B90088 */ sh $t9, 0x88($sp) +/* 01D974 7001CD74 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 01D978 7001CD78 02A02025 */ move $a0, $s5 +/* 01D97C 7001CD7C 0C004BBF */ jal alEvtqPostEvent +/* 01D980 7001CD80 27A50088 */ addiu $a1, $sp, 0x88 +/* 01D984 7001CD84 10000132 */ b .L7001D250 +/* 01D988 7001CD88 02A02025 */ move $a0, $s5 +.L7001CD8C: +/* 01D98C 7001CD8C 240E0009 */ li $t6, 9 +/* 01D990 7001CD90 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01D994 7001CD94 8E46005C */ lw $a2, 0x5c($s2) +/* 01D998 7001CD98 02A02025 */ move $a0, $s5 +/* 01D99C 7001CD9C 0C004BBF */ jal alEvtqPostEvent +/* 01D9A0 7001CDA0 27A500BC */ addiu $a1, $sp, 0xbc +/* 01D9A4 7001CDA4 1000012A */ b .L7001D250 +/* 01D9A8 7001CDA8 02A02025 */ move $a0, $s5 +.L7001CDAC: +/* 01D9AC 7001CDAC 8E50003C */ lw $s0, 0x3c($s2) +/* 01D9B0 7001CDB0 8E440014 */ lw $a0, 0x14($s2) +/* 01D9B4 7001CDB4 0C004DA4 */ jal alSynStopVoice +/* 01D9B8 7001CDB8 02002825 */ move $a1, $s0 +/* 01D9BC 7001CDBC 8E440014 */ lw $a0, 0x14($s2) +/* 01D9C0 7001CDC0 0C004DC4 */ jal alSynFreeVoice +/* 01D9C4 7001CDC4 02002825 */ move $a1, $s0 +/* 01D9C8 7001CDC8 8E110010 */ lw $s1, 0x10($s0) +/* 01D9CC 7001CDCC 02402025 */ move $a0, $s2 +/* 01D9D0 7001CDD0 922F0037 */ lbu $t7, 0x37($s1) +/* 01D9D4 7001CDD4 51E00004 */ beql $t7, $zero, .L7001CDE8 +/* 01D9D8 7001CDD8 02402025 */ move $a0, $s2 +/* 01D9DC 7001CDDC 0C0074A8 */ jal __seqpStopOsc +/* 01D9E0 7001CDE0 02202825 */ move $a1, $s1 +/* 01D9E4 7001CDE4 02402025 */ move $a0, $s2 +.L7001CDE8: +/* 01D9E8 7001CDE8 0C00701C */ jal __unmapVoice +/* 01D9EC 7001CDEC 02002825 */ move $a1, $s0 +/* 01D9F0 7001CDF0 10000117 */ b .L7001D250 +/* 01D9F4 7001CDF4 02A02025 */ move $a0, $s5 +.L7001CDF8: +/* 01D9F8 7001CDF8 8E50003C */ lw $s0, 0x3c($s2) +/* 01D9FC 7001CDFC 24190001 */ li $t9, 1 +/* 01DA00 7001CE00 8E110010 */ lw $s1, 0x10($s0) +/* 01DA04 7001CE04 92380034 */ lbu $t8, 0x34($s1) +/* 01DA08 7001CE08 57000003 */ bnezl $t8, .L7001CE18 +/* 01DA0C 7001CE0C 924E0044 */ lbu $t6, 0x44($s2) +/* 01DA10 7001CE10 A2390034 */ sb $t9, 0x34($s1) +/* 01DA14 7001CE14 924E0044 */ lbu $t6, 0x44($s2) +.L7001CE18: +/* 01DA18 7001CE18 8E530040 */ lw $s3, 0x40($s2) +/* 01DA1C 7001CE1C 02202025 */ move $a0, $s1 +/* 01DA20 7001CE20 A22E0030 */ sb $t6, 0x30($s1) +/* 01DA24 7001CE24 8E4F001C */ lw $t7, 0x1c($s2) +/* 01DA28 7001CE28 02402825 */ move $a1, $s2 +/* 01DA2C 7001CE2C 01F3C021 */ addu $t8, $t7, $s3 +/* 01DA30 7001CE30 0C006F85 */ jal __vsVol +/* 01DA34 7001CE34 AE380024 */ sw $t8, 0x24($s1) +/* 01DA38 7001CE38 00023400 */ sll $a2, $v0, 0x10 +/* 01DA3C 7001CE3C 0006CC03 */ sra $t9, $a2, 0x10 +/* 01DA40 7001CE40 03203025 */ move $a2, $t9 +/* 01DA44 7001CE44 8E440014 */ lw $a0, 0x14($s2) +/* 01DA48 7001CE48 02002825 */ move $a1, $s0 +/* 01DA4C 7001CE4C 0C004CE8 */ jal alSynSetVol +/* 01DA50 7001CE50 02603825 */ move $a3, $s3 +/* 01DA54 7001CE54 100000FE */ b .L7001D250 +/* 01DA58 7001CE58 02A02025 */ move $a0, $s5 +.L7001CE5C: +/* 01DA5C 7001CE5C 8E590074 */ lw $t9, 0x74($s2) +/* 01DA60 7001CE60 8E540040 */ lw $s4, 0x40($s2) +/* 01DA64 7001CE64 8E51003C */ lw $s1, 0x3c($s2) +/* 01DA68 7001CE68 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 01DA6C 7001CE6C 0320F809 */ jalr $t9 +/* 01DA70 7001CE70 02802025 */ move $a0, $s4 +/* 01DA74 7001CE74 444EF800 */ cfc1 $t6, $31 +/* 01DA78 7001CE78 240F0001 */ li $t7, 1 +/* 01DA7C 7001CE7C 44CFF800 */ ctc1 $t7, $31 +/* 01DA80 7001CE80 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 01DA84 7001CE84 00409825 */ move $s3, $v0 +/* 01DA88 7001CE88 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01DA8C 7001CE8C 460021A4 */ cvt.w.s $f6, $f4 +/* 01DA90 7001CE90 02202025 */ move $a0, $s1 +/* 01DA94 7001CE94 02402825 */ move $a1, $s2 +/* 01DA98 7001CE98 444FF800 */ cfc1 $t7, $31 +/* 01DA9C 7001CE9C 00000000 */ nop +/* 01DAA0 7001CEA0 31EF0078 */ andi $t7, $t7, 0x78 +/* 01DAA4 7001CEA4 51E00013 */ beql $t7, $zero, .L7001CEF4 +/* 01DAA8 7001CEA8 440F3000 */ mfc1 $t7, $f6 +/* 01DAAC 7001CEAC 44813000 */ mtc1 $at, $f6 +/* 01DAB0 7001CEB0 240F0001 */ li $t7, 1 +/* 01DAB4 7001CEB4 46062181 */ sub.s $f6, $f4, $f6 +/* 01DAB8 7001CEB8 44CFF800 */ ctc1 $t7, $31 +/* 01DABC 7001CEBC 00000000 */ nop +/* 01DAC0 7001CEC0 460031A4 */ cvt.w.s $f6, $f6 +/* 01DAC4 7001CEC4 444FF800 */ cfc1 $t7, $31 +/* 01DAC8 7001CEC8 00000000 */ nop +/* 01DACC 7001CECC 31EF0078 */ andi $t7, $t7, 0x78 +/* 01DAD0 7001CED0 15E00005 */ bnez $t7, .L7001CEE8 +/* 01DAD4 7001CED4 00000000 */ nop +/* 01DAD8 7001CED8 440F3000 */ mfc1 $t7, $f6 +/* 01DADC 7001CEDC 3C018000 */ lui $at, 0x8000 +/* 01DAE0 7001CEE0 10000007 */ b .L7001CF00 +/* 01DAE4 7001CEE4 01E17825 */ or $t7, $t7, $at +.L7001CEE8: +/* 01DAE8 7001CEE8 10000005 */ b .L7001CF00 +/* 01DAEC 7001CEEC 240FFFFF */ li $t7, -1 +/* 01DAF0 7001CEF0 440F3000 */ mfc1 $t7, $f6 +.L7001CEF4: +/* 01DAF4 7001CEF4 00000000 */ nop +/* 01DAF8 7001CEF8 05E0FFFB */ bltz $t7, .L7001CEE8 +/* 01DAFC 7001CEFC 00000000 */ nop +.L7001CF00: +/* 01DB00 7001CF00 44CEF800 */ ctc1 $t6, $31 +/* 01DB04 7001CF04 0C006F85 */ jal __vsVol +/* 01DB08 7001CF08 A22F0036 */ sb $t7, 0x36($s1) +/* 01DB0C 7001CF0C 8E43001C */ lw $v1, 0x1c($s2) +/* 01DB10 7001CF10 8E390024 */ lw $t9, 0x24($s1) +/* 01DB14 7001CF14 00023400 */ sll $a2, $v0, 0x10 +/* 01DB18 7001CF18 0006C403 */ sra $t8, $a2, 0x10 +/* 01DB1C 7001CF1C 03232023 */ subu $a0, $t9, $v1 +/* 01DB20 7001CF20 04800003 */ bltz $a0, .L7001CF30 +/* 01DB24 7001CF24 03003025 */ move $a2, $t8 +/* 01DB28 7001CF28 10000002 */ b .L7001CF34 +/* 01DB2C 7001CF2C 00801025 */ move $v0, $a0 +.L7001CF30: +/* 01DB30 7001CF30 240203E8 */ li $v0, 1000 +.L7001CF34: +/* 01DB34 7001CF34 8E440014 */ lw $a0, 0x14($s2) +/* 01DB38 7001CF38 26250004 */ addiu $a1, $s1, 4 +/* 01DB3C 7001CF3C 0C004CE8 */ jal alSynSetVol +/* 01DB40 7001CF40 00403825 */ move $a3, $v0 +/* 01DB44 7001CF44 240E0016 */ li $t6, 22 +/* 01DB48 7001CF48 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01DB4C 7001CF4C AFB100C0 */ sw $s1, 0xc0($sp) +/* 01DB50 7001CF50 AFB400C4 */ sw $s4, 0xc4($sp) +/* 01DB54 7001CF54 02A02025 */ move $a0, $s5 +/* 01DB58 7001CF58 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DB5C 7001CF5C 0C004BBF */ jal alEvtqPostEvent +/* 01DB60 7001CF60 02603025 */ move $a2, $s3 +/* 01DB64 7001CF64 100000BA */ b .L7001D250 +/* 01DB68 7001CF68 02A02025 */ move $a0, $s5 +.L7001CF6C: +/* 01DB6C 7001CF6C 8E590074 */ lw $t9, 0x74($s2) +/* 01DB70 7001CF70 8E540040 */ lw $s4, 0x40($s2) +/* 01DB74 7001CF74 8E51003C */ lw $s1, 0x3c($s2) +/* 01DB78 7001CF78 92500044 */ lbu $s0, 0x44($s2) +/* 01DB7C 7001CF7C 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 01DB80 7001CF80 0320F809 */ jalr $t9 +/* 01DB84 7001CF84 02802025 */ move $a0, $s4 +/* 01DB88 7001CF88 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 01DB8C 7001CF8C C6240028 */ lwc1 $f4, 0x28($s1) +/* 01DB90 7001CF90 0010C100 */ sll $t8, $s0, 4 +/* 01DB94 7001CF94 E628002C */ swc1 $f8, 0x2c($s1) +/* 01DB98 7001CF98 C626002C */ lwc1 $f6, 0x2c($s1) +/* 01DB9C 7001CF9C 8E4F0060 */ lw $t7, 0x60($s2) +/* 01DBA0 7001CFA0 00409825 */ move $s3, $v0 +/* 01DBA4 7001CFA4 46062202 */ mul.s $f8, $f4, $f6 +/* 01DBA8 7001CFA8 01F87021 */ addu $t6, $t7, $t8 +/* 01DBAC 7001CFAC C5CA000C */ lwc1 $f10, 0xc($t6) +/* 01DBB0 7001CFB0 8E440014 */ lw $a0, 0x14($s2) +/* 01DBB4 7001CFB4 26250004 */ addiu $a1, $s1, 4 +/* 01DBB8 7001CFB8 46085102 */ mul.s $f4, $f10, $f8 +/* 01DBBC 7001CFBC 44062000 */ mfc1 $a2, $f4 +/* 01DBC0 7001CFC0 0C004D58 */ jal alSynSetPitch +/* 01DBC4 7001CFC4 00000000 */ nop +/* 01DBC8 7001CFC8 24190017 */ li $t9, 23 +/* 01DBCC 7001CFCC A7B900BC */ sh $t9, 0xbc($sp) +/* 01DBD0 7001CFD0 AFB100C0 */ sw $s1, 0xc0($sp) +/* 01DBD4 7001CFD4 AFB400C4 */ sw $s4, 0xc4($sp) +/* 01DBD8 7001CFD8 A3B000C8 */ sb $s0, 0xc8($sp) +/* 01DBDC 7001CFDC 02A02025 */ move $a0, $s5 +/* 01DBE0 7001CFE0 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DBE4 7001CFE4 0C004BBF */ jal alEvtqPostEvent +/* 01DBE8 7001CFE8 02603025 */ move $a2, $s3 +/* 01DBEC 7001CFEC 10000098 */ b .L7001D250 +/* 01DBF0 7001CFF0 02A02025 */ move $a0, $s5 +.L7001CFF4: +/* 01DBF4 7001CFF4 02408825 */ move $s1, $s2 +/* 01DBF8 7001CFF8 8FA40050 */ lw $a0, 0x50($sp) +/* 01DBFC 7001CFFC AFB200D0 */ sw $s2, 0xd0($sp) +/* 01DC00 7001D000 0C007117 */ jal __handleMIDIMsg +/* 01DC04 7001D004 AFB5004C */ sw $s5, 0x4c($sp) +/* 01DC08 7001D008 8FB200D0 */ lw $s2, 0xd0($sp) +/* 01DC0C 7001D00C 1000008F */ b .L7001D24C +/* 01DC10 7001D010 8FB5004C */ lw $s5, 0x4c($sp) +.L7001D014: +/* 01DC14 7001D014 02402825 */ move $a1, $s2 +/* 01DC18 7001D018 0C00706F */ jal __handleMetaMsg +/* 01DC1C 7001D01C 8FA40050 */ lw $a0, 0x50($sp) +/* 01DC20 7001D020 1000008B */ b .L7001D250 +/* 01DC24 7001D024 02A02025 */ move $a0, $s5 +.L7001D028: +/* 01DC28 7001D028 8E4F002C */ lw $t7, 0x2c($s2) +/* 01DC2C 7001D02C 24010001 */ li $at, 1 +/* 01DC30 7001D030 24180001 */ li $t8, 1 +/* 01DC34 7001D034 11E10085 */ beq $t7, $at, .L7001D24C +/* 01DC38 7001D038 02402025 */ move $a0, $s2 +/* 01DC3C 7001D03C 0C007038 */ jal __postNextSeqEvent +/* 01DC40 7001D040 AE58002C */ sw $t8, 0x2c($s2) +/* 01DC44 7001D044 10000082 */ b .L7001D250 +/* 01DC48 7001D048 02A02025 */ move $a0, $s5 +.L7001D04C: +/* 01DC4C 7001D04C 8E4E002C */ lw $t6, 0x2c($s2) +/* 01DC50 7001D050 24010002 */ li $at, 2 +/* 01DC54 7001D054 55C1007E */ bnel $t6, $at, .L7001D250 +/* 01DC58 7001D058 02A02025 */ move $a0, $s5 +/* 01DC5C 7001D05C 8E510064 */ lw $s1, 0x64($s2) +/* 01DC60 7001D060 12200013 */ beqz $s1, .L7001D0B0 +/* 01DC64 7001D064 26300004 */ addiu $s0, $s1, 4 +.L7001D068: +/* 01DC68 7001D068 02002825 */ move $a1, $s0 +/* 01DC6C 7001D06C 0C004DA4 */ jal alSynStopVoice +/* 01DC70 7001D070 8E440014 */ lw $a0, 0x14($s2) +/* 01DC74 7001D074 8E440014 */ lw $a0, 0x14($s2) +/* 01DC78 7001D078 0C004DC4 */ jal alSynFreeVoice +/* 01DC7C 7001D07C 02002825 */ move $a1, $s0 +/* 01DC80 7001D080 92390037 */ lbu $t9, 0x37($s1) +/* 01DC84 7001D084 02402025 */ move $a0, $s2 +/* 01DC88 7001D088 53200004 */ beql $t9, $zero, .L7001D09C +/* 01DC8C 7001D08C 02402025 */ move $a0, $s2 +/* 01DC90 7001D090 0C0074A8 */ jal __seqpStopOsc +/* 01DC94 7001D094 02202825 */ move $a1, $s1 +/* 01DC98 7001D098 02402025 */ move $a0, $s2 +.L7001D09C: +/* 01DC9C 7001D09C 0C00701C */ jal __unmapVoice +/* 01DCA0 7001D0A0 02002825 */ move $a1, $s0 +/* 01DCA4 7001D0A4 8E510064 */ lw $s1, 0x64($s2) +/* 01DCA8 7001D0A8 5620FFEF */ bnezl $s1, .L7001D068 +/* 01DCAC 7001D0AC 26300004 */ addiu $s0, $s1, 4 +.L7001D0B0: +/* 01DCB0 7001D0B0 AE40001C */ sw $zero, 0x1c($s2) +/* 01DCB4 7001D0B4 10000065 */ b .L7001D24C +/* 01DCB8 7001D0B8 AE40002C */ sw $zero, 0x2c($s2) +.L7001D0BC: +/* 01DCBC 7001D0BC 8E4F002C */ lw $t7, 0x2c($s2) +/* 01DCC0 7001D0C0 24010001 */ li $at, 1 +/* 01DCC4 7001D0C4 02A02025 */ move $a0, $s5 +/* 01DCC8 7001D0C8 55E10061 */ bnel $t7, $at, .L7001D250 +/* 01DCCC 7001D0CC 02A02025 */ move $a0, $s5 +/* 01DCD0 7001D0D0 0C004B78 */ jal alEvtqFlushType +/* 01DCD4 7001D0D4 00002825 */ move $a1, $zero +/* 01DCD8 7001D0D8 02A02025 */ move $a0, $s5 +/* 01DCDC 7001D0DC 0C004B78 */ jal alEvtqFlushType +/* 01DCE0 7001D0E0 24050002 */ li $a1, 2 +/* 01DCE4 7001D0E4 8E510064 */ lw $s1, 0x64($s2) +/* 01DCE8 7001D0E8 1220000D */ beqz $s1, .L7001D120 +/* 01DCEC 7001D0EC 26300004 */ addiu $s0, $s1, 4 +.L7001D0F0: +/* 01DCF0 7001D0F0 02002825 */ move $a1, $s0 +/* 01DCF4 7001D0F4 02402025 */ move $a0, $s2 +/* 01DCF8 7001D0F8 0C006FF2 */ jal __voiceNeedsNoteKill +/* 01DCFC 7001D0FC 3406C350 */ li $a2, 50000 +/* 01DD00 7001D100 10400004 */ beqz $v0, .L7001D114 +/* 01DD04 7001D104 02402025 */ move $a0, $s2 +/* 01DD08 7001D108 02002825 */ move $a1, $s0 +/* 01DD0C 7001D10C 0C006FA7 */ jal __seqpReleaseVoice +/* 01DD10 7001D110 3406C350 */ li $a2, 50000 +.L7001D114: +/* 01DD14 7001D114 8E310000 */ lw $s1, ($s1) +/* 01DD18 7001D118 5620FFF5 */ bnezl $s1, .L7001D0F0 +/* 01DD1C 7001D11C 26300004 */ addiu $s0, $s1, 4 +.L7001D120: +/* 01DD20 7001D120 24180002 */ li $t8, 2 +/* 01DD24 7001D124 AE58002C */ sw $t8, 0x2c($s2) +/* 01DD28 7001D128 240E0010 */ li $t6, 16 +/* 01DD2C 7001D12C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 01DD30 7001D130 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01DD34 7001D134 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 01DD38 7001D138 02A02025 */ move $a0, $s5 +/* 01DD3C 7001D13C 0C004BBF */ jal alEvtqPostEvent +/* 01DD40 7001D140 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DD44 7001D144 10000042 */ b .L7001D250 +/* 01DD48 7001D148 02A02025 */ move $a0, $s5 +.L7001D14C: +/* 01DD4C 7001D14C 8E510064 */ lw $s1, 0x64($s2) +/* 01DD50 7001D150 8659003C */ lh $t9, 0x3c($s2) +/* 01DD54 7001D154 1220003D */ beqz $s1, .L7001D24C +/* 01DD58 7001D158 A6590032 */ sh $t9, 0x32($s2) +/* 01DD5C 7001D15C 02202025 */ move $a0, $s1 +.L7001D160: +/* 01DD60 7001D160 0C006F85 */ jal __vsVol +/* 01DD64 7001D164 02402825 */ move $a1, $s2 +/* 01DD68 7001D168 8E43001C */ lw $v1, 0x1c($s2) +/* 01DD6C 7001D16C 8E380024 */ lw $t8, 0x24($s1) +/* 01DD70 7001D170 00023400 */ sll $a2, $v0, 0x10 +/* 01DD74 7001D174 00067C03 */ sra $t7, $a2, 0x10 +/* 01DD78 7001D178 03032023 */ subu $a0, $t8, $v1 +/* 01DD7C 7001D17C 04800003 */ bltz $a0, .L7001D18C +/* 01DD80 7001D180 01E03025 */ move $a2, $t7 +/* 01DD84 7001D184 10000002 */ b .L7001D190 +/* 01DD88 7001D188 00801025 */ move $v0, $a0 +.L7001D18C: +/* 01DD8C 7001D18C 240203E8 */ li $v0, 1000 +.L7001D190: +/* 01DD90 7001D190 8E440014 */ lw $a0, 0x14($s2) +/* 01DD94 7001D194 26250004 */ addiu $a1, $s1, 4 +/* 01DD98 7001D198 0C004CE8 */ jal alSynSetVol +/* 01DD9C 7001D19C 00403825 */ move $a3, $v0 +/* 01DDA0 7001D1A0 8E310000 */ lw $s1, ($s1) +/* 01DDA4 7001D1A4 5620FFEE */ bnezl $s1, .L7001D160 +/* 01DDA8 7001D1A8 02202025 */ move $a0, $s1 +/* 01DDAC 7001D1AC 10000028 */ b .L7001D250 +/* 01DDB0 7001D1B0 02A02025 */ move $a0, $s5 +.L7001D1B4: +/* 01DDB4 7001D1B4 8E4E003C */ lw $t6, 0x3c($s2) +/* 01DDB8 7001D1B8 8E590040 */ lw $t9, 0x40($s2) +/* 01DDBC 7001D1BC 8E4F0044 */ lw $t7, 0x44($s2) +/* 01DDC0 7001D1C0 AE4E007C */ sw $t6, 0x7c($s2) +/* 01DDC4 7001D1C4 AE590080 */ sw $t9, 0x80($s2) +/* 01DDC8 7001D1C8 10000020 */ b .L7001D24C +/* 01DDCC 7001D1CC AE4F0084 */ sw $t7, 0x84($s2) +.L7001D1D0: +/* 01DDD0 7001D1D0 9250003C */ lbu $s0, 0x3c($s2) +/* 01DDD4 7001D1D4 8E4E0060 */ lw $t6, 0x60($s2) +/* 01DDD8 7001D1D8 9258003D */ lbu $t8, 0x3d($s2) +/* 01DDDC 7001D1DC 0010C900 */ sll $t9, $s0, 4 +/* 01DDE0 7001D1E0 01D97821 */ addu $t7, $t6, $t9 +/* 01DDE4 7001D1E4 10000019 */ b .L7001D24C +/* 01DDE8 7001D1E8 A1F80008 */ sb $t8, 8($t7) +.L7001D1EC: +/* 01DDEC 7001D1EC 8E45003C */ lw $a1, 0x3c($s2) +/* 01DDF0 7001D1F0 240F01E8 */ li $t7, 488 +/* 01DDF4 7001D1F4 3C018003 */ lui $at, %hi(F32_80029C88) +/* 01DDF8 7001D1F8 10A00008 */ beqz $a1, .L7001D21C +/* 01DDFC 7001D1FC AE450018 */ sw $a1, 0x18($s2) +/* 01DE00 7001D200 C4269C88 */ lwc1 $f6, %lo(F32_80029C88)($at) +/* 01DE04 7001D204 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 01DE08 7001D208 460A3202 */ mul.s $f8, $f6, $f10 +/* 01DE0C 7001D20C 4600410D */ trunc.w.s $f4, $f8 +/* 01DE10 7001D210 44182000 */ mfc1 $t8, $f4 +/* 01DE14 7001D214 10000002 */ b .L7001D220 +/* 01DE18 7001D218 AE580024 */ sw $t8, 0x24($s2) +.L7001D21C: +/* 01DE1C 7001D21C AE4F0024 */ sw $t7, 0x24($s2) +.L7001D220: +/* 01DE20 7001D220 8E450020 */ lw $a1, 0x20($s2) +/* 01DE24 7001D224 50A0000A */ beql $a1, $zero, .L7001D250 +/* 01DE28 7001D228 02A02025 */ move $a0, $s5 +/* 01DE2C 7001D22C 0C006F4D */ jal __initFromBank +/* 01DE30 7001D230 02402025 */ move $a0, $s2 +/* 01DE34 7001D234 10000006 */ b .L7001D250 +/* 01DE38 7001D238 02A02025 */ move $a0, $s5 +.L7001D23C: +/* 01DE3C 7001D23C 8E45003C */ lw $a1, 0x3c($s2) +/* 01DE40 7001D240 02402025 */ move $a0, $s2 +/* 01DE44 7001D244 0C006F4D */ jal __initFromBank +/* 01DE48 7001D248 AE450020 */ sw $a1, 0x20($s2) +.L7001D24C: +/* 01DE4C 7001D24C 02A02025 */ move $a0, $s5 +.L7001D250: +/* 01DE50 7001D250 0C004C08 */ jal alEvtqNextEvent +/* 01DE54 7001D254 8FA50050 */ lw $a1, 0x50($sp) +/* 01DE58 7001D258 1040FE98 */ beqz $v0, .L7001CCBC +/* 01DE5C 7001D25C AE420028 */ sw $v0, 0x28($s2) +/* 01DE60 7001D260 8E4E001C */ lw $t6, 0x1c($s2) +/* 01DE64 7001D264 01C2C821 */ addu $t9, $t6, $v0 +/* 01DE68 7001D268 AE59001C */ sw $t9, 0x1c($s2) +/* 01DE6C 7001D26C 8FBF0044 */ lw $ra, 0x44($sp) +/* 01DE70 7001D270 8FBE0040 */ lw $fp, 0x40($sp) +/* 01DE74 7001D274 8FB7003C */ lw $s7, 0x3c($sp) +/* 01DE78 7001D278 8FB60038 */ lw $s6, 0x38($sp) +/* 01DE7C 7001D27C 8FB50034 */ lw $s5, 0x34($sp) +/* 01DE80 7001D280 8FB40030 */ lw $s4, 0x30($sp) +/* 01DE84 7001D284 8FB3002C */ lw $s3, 0x2c($sp) +/* 01DE88 7001D288 8FB20028 */ lw $s2, 0x28($sp) +/* 01DE8C 7001D28C 8FB10024 */ lw $s1, 0x24($sp) +/* 01DE90 7001D290 8FB00020 */ lw $s0, 0x20($sp) +/* 01DE94 7001D294 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 01DE98 7001D298 03E00008 */ jr $ra +/* 01DE9C 7001D29C 27BD00D0 */ addiu $sp, $sp, 0xd0 + +glabel __seqpStopOsc +/* 01DEA0 7001D2A0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01DEA4 7001D2A4 AFBF0034 */ sw $ra, 0x34($sp) +/* 01DEA8 7001D2A8 AFB70030 */ sw $s7, 0x30($sp) +/* 01DEAC 7001D2AC AFB6002C */ sw $s6, 0x2c($sp) +/* 01DEB0 7001D2B0 AFB50028 */ sw $s5, 0x28($sp) +/* 01DEB4 7001D2B4 AFB40024 */ sw $s4, 0x24($sp) +/* 01DEB8 7001D2B8 AFB30020 */ sw $s3, 0x20($sp) +/* 01DEBC 7001D2BC AFB2001C */ sw $s2, 0x1c($sp) +/* 01DEC0 7001D2C0 AFB10018 */ sw $s1, 0x18($sp) +/* 01DEC4 7001D2C4 AFB00014 */ sw $s0, 0x14($sp) +/* 01DEC8 7001D2C8 8C900050 */ lw $s0, 0x50($a0) +/* 01DECC 7001D2CC 00A09025 */ move $s2, $a1 +/* 01DED0 7001D2D0 0080A825 */ move $s5, $a0 +/* 01DED4 7001D2D4 12000028 */ beqz $s0, .L7001D378 +/* 01DED8 7001D2D8 24170017 */ li $s7, 23 +/* 01DEDC 7001D2DC 24160016 */ li $s6, 22 +.L7001D2E0: +/* 01DEE0 7001D2E0 8613000C */ lh $s3, 0xc($s0) +/* 01DEE4 7001D2E4 8E110000 */ lw $s1, ($s0) +/* 01DEE8 7001D2E8 52760004 */ beql $s3, $s6, .L7001D2FC +/* 01DEEC 7001D2EC 8E0E0010 */ lw $t6, 0x10($s0) +/* 01DEF0 7001D2F0 1677001F */ bne $s3, $s7, .L7001D370 +/* 01DEF4 7001D2F4 00000000 */ nop +/* 01DEF8 7001D2F8 8E0E0010 */ lw $t6, 0x10($s0) +.L7001D2FC: +/* 01DEFC 7001D2FC 164E001C */ bne $s2, $t6, .L7001D370 +glabel unknown_libname_37 +/* 01DF00 7001D300 00000000 */ nop +/* 01DF04 7001D304 8EB90078 */ lw $t9, 0x78($s5) +/* 01DF08 7001D308 8E040014 */ lw $a0, 0x14($s0) +/* 01DF0C 7001D30C 26B40048 */ addiu $s4, $s5, 0x48 +/* 01DF10 7001D310 0320F809 */ jalr $t9 +/* 01DF14 7001D314 00000000 */ nop +/* 01DF18 7001D318 0C003AA4 */ jal alUnlink +/* 01DF1C 7001D31C 02002025 */ move $a0, $s0 +/* 01DF20 7001D320 12200005 */ beqz $s1, .L7001D338 +/* 01DF24 7001D324 02002025 */ move $a0, $s0 +/* 01DF28 7001D328 8E2F0008 */ lw $t7, 8($s1) +glabel unknown_libname_38 +/* 01DF2C 7001D32C 8E180008 */ lw $t8, 8($s0) +/* 01DF30 7001D330 01F84021 */ addu $t0, $t7, $t8 +/* 01DF34 7001D334 AE280008 */ sw $t0, 8($s1) +glabel unknown_libname_39 +.L7001D338: +/* 01DF38 7001D338 0C003AB0 */ jal alLink +/* 01DF3C 7001D33C 02802825 */ move $a1, $s4 +/* 01DF40 7001D340 56760006 */ bnel $s3, $s6, .L7001D35C +/* 01DF44 7001D344 924B0037 */ lbu $t3, 0x37($s2) +/* 01DF48 7001D348 92490037 */ lbu $t1, 0x37($s2) +/* 01DF4C 7001D34C 312A00FE */ andi $t2, $t1, 0xfe +/* 01DF50 7001D350 10000004 */ b .L7001D364 +/* 01DF54 7001D354 A24A0037 */ sb $t2, 0x37($s2) +/* 01DF58 7001D358 924B0037 */ lbu $t3, 0x37($s2) +glabel unknown_libname_40 +.L7001D35C: +/* 01DF5C 7001D35C 316C00FD */ andi $t4, $t3, 0xfd +/* 01DF60 7001D360 A24C0037 */ sb $t4, 0x37($s2) +.L7001D364: +/* 01DF64 7001D364 924D0037 */ lbu $t5, 0x37($s2) +/* 01DF68 7001D368 51A00004 */ beql $t5, $zero, .L7001D37C +/* 01DF6C 7001D36C 8FBF0034 */ lw $ra, 0x34($sp) +.L7001D370: +/* 01DF70 7001D370 1620FFDB */ bnez $s1, .L7001D2E0 +/* 01DF74 7001D374 02208025 */ move $s0, $s1 +.L7001D378: +/* 01DF78 7001D378 8FBF0034 */ lw $ra, 0x34($sp) +.L7001D37C: +/* 01DF7C 7001D37C 8FB00014 */ lw $s0, 0x14($sp) +/* 01DF80 7001D380 8FB10018 */ lw $s1, 0x18($sp) +/* 01DF84 7001D384 8FB2001C */ lw $s2, 0x1c($sp) +/* 01DF88 7001D388 8FB30020 */ lw $s3, 0x20($sp) +glabel unknown_libname_41 +/* 01DF8C 7001D38C 8FB40024 */ lw $s4, 0x24($sp) +/* 01DF90 7001D390 8FB50028 */ lw $s5, 0x28($sp) +/* 01DF94 7001D394 8FB6002C */ lw $s6, 0x2c($sp) +/* 01DF98 7001D398 8FB70030 */ lw $s7, 0x30($sp) +/* 01DF9C 7001D39C 03E00008 */ jr $ra +glabel unknown_libname_42 +/* 01DFA0 7001D3A0 27BD0038 */ addiu $sp, $sp, 0x38 + +glabel __initChanState +/* 01DFA4 7001D3A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01DFA8 7001D3A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 01DFAC 7001D3AC AFB20020 */ sw $s2, 0x20($sp) +/* 01DFB0 7001D3B0 AFB1001C */ sw $s1, 0x1c($sp) +/* 01DFB4 7001D3B4 AFB00018 */ sw $s0, 0x18($sp) +/* 01DFB8 7001D3B8 908E0034 */ lbu $t6, 0x34($a0) +/* 01DFBC 7001D3BC 00808825 */ move $s1, $a0 +/* 01DFC0 7001D3C0 00008025 */ move $s0, $zero +/* 01DFC4 7001D3C4 19C0000D */ blez $t6, .L7001D3FC +/* 01DFC8 7001D3C8 00009025 */ move $s2, $zero +/* 01DFCC 7001D3CC 8E2F0060 */ lw $t7, 0x60($s1) +.L7001D3D0: +/* 01DFD0 7001D3D0 02202025 */ move $a0, $s1 +/* 01DFD4 7001D3D4 02002825 */ move $a1, $s0 +/* 01DFD8 7001D3D8 01F2C021 */ addu $t8, $t7, $s2 +/* 01DFDC 7001D3DC 0C006F2D */ jal __resetPerfChanState +/* 01DFE0 7001D3E0 AF000000 */ sw $zero, ($t8) +/* 01DFE4 7001D3E4 92390034 */ lbu $t9, 0x34($s1) +/* 01DFE8 7001D3E8 26100001 */ addiu $s0, $s0, 1 +/* 01DFEC 7001D3EC 26520010 */ addiu $s2, $s2, 0x10 +/* 01DFF0 7001D3F0 0219082A */ slt $at, $s0, $t9 +/* 01DFF4 7001D3F4 5420FFF6 */ bnezl $at, .L7001D3D0 +/* 01DFF8 7001D3F8 8E2F0060 */ lw $t7, 0x60($s1) +.L7001D3FC: +/* 01DFFC 7001D3FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01E000 7001D400 8FB00018 */ lw $s0, 0x18($sp) +/* 01E004 7001D404 8FB1001C */ lw $s1, 0x1c($sp) +/* 01E008 7001D408 8FB20020 */ lw $s2, 0x20($sp) +/* 01E00C 7001D40C 03E00008 */ jr $ra +/* 01E010 7001D410 27BD0028 */ addiu $sp, $sp, 0x28 + +glabel alSeqpNew +/* 01E014 7001D414 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01E018 7001D418 AFBF0024 */ sw $ra, 0x24($sp) +/* 01E01C 7001D41C AFB10020 */ sw $s1, 0x20($sp) +/* 01E020 7001D420 AFB0001C */ sw $s0, 0x1c($sp) +/* 01E024 7001D424 8CA6000C */ lw $a2, 0xc($a1) +/* 01E028 7001D428 AC800020 */ sw $zero, 0x20($a0) +/* 01E02C 7001D42C AC800018 */ sw $zero, 0x18($a0) +/* 01E030 7001D430 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 01E034 7001D434 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 01E038 7001D438 240F00FF */ li $t7, 255 +/* 01E03C 7001D43C 241801E8 */ li $t8, 488 +/* 01E040 7001D440 24197FFF */ li $t9, 32767 +/* 01E044 7001D444 A48F0030 */ sh $t7, 0x30($a0) +/* 01E048 7001D448 AC980024 */ sw $t8, 0x24($a0) +/* 01E04C 7001D44C AC800028 */ sw $zero, 0x28($a0) +/* 01E050 7001D450 AC80002C */ sw $zero, 0x2c($a0) +/* 01E054 7001D454 A4990032 */ sh $t9, 0x32($a0) +/* 01E058 7001D458 AC8E0014 */ sw $t6, 0x14($a0) +/* 01E05C 7001D45C 90A80009 */ lbu $t0, 9($a1) +/* 01E060 7001D460 24093E80 */ li $t1, 16000 +/* 01E064 7001D464 AC89005C */ sw $t1, 0x5c($a0) +/* 01E068 7001D468 AC80001C */ sw $zero, 0x1c($a0) +/* 01E06C 7001D46C A0880035 */ sb $t0, 0x35($a0) +/* 01E070 7001D470 8CAA0010 */ lw $t2, 0x10($a1) +/* 01E074 7001D474 240D0009 */ li $t5, 9 +/* 01E078 7001D478 00A08825 */ move $s1, $a1 +/* 01E07C 7001D47C AC8A0070 */ sw $t2, 0x70($a0) +/* 01E080 7001D480 8CAB0014 */ lw $t3, 0x14($a1) +/* 01E084 7001D484 00808025 */ move $s0, $a0 +/* 01E088 7001D488 240F0010 */ li $t7, 16 +/* 01E08C 7001D48C AC8B0074 */ sw $t3, 0x74($a0) +/* 01E090 7001D490 8CAC0018 */ lw $t4, 0x18($a1) +/* 01E094 7001D494 AC80007C */ sw $zero, 0x7c($a0) +/* 01E098 7001D498 AC800080 */ sw $zero, 0x80($a0) +/* 01E09C 7001D49C AC800084 */ sw $zero, 0x84($a0) +/* 01E0A0 7001D4A0 A48D0038 */ sh $t5, 0x38($a0) +/* 01E0A4 7001D4A4 AC8C0078 */ sw $t4, 0x78($a0) +/* 01E0A8 7001D4A8 90AE0008 */ lbu $t6, 8($a1) +/* 01E0AC 7001D4AC 00002825 */ move $a1, $zero +/* 01E0B0 7001D4B0 A08E0034 */ sb $t6, 0x34($a0) +/* 01E0B4 7001D4B4 92270008 */ lbu $a3, 8($s1) +/* 01E0B8 7001D4B8 AFAF0010 */ sw $t7, 0x10($sp) +/* 01E0BC 7001D4BC 00002025 */ move $a0, $zero +/* 01E0C0 7001D4C0 0C003AD4 */ jal alHeapDBAlloc +/* 01E0C4 7001D4C4 AFA6002C */ sw $a2, 0x2c($sp) +/* 01E0C8 7001D4C8 AE020060 */ sw $v0, 0x60($s0) +/* 01E0CC 7001D4CC 0C0074E9 */ jal __initChanState +/* 01E0D0 7001D4D0 02002025 */ move $a0, $s0 +/* 01E0D4 7001D4D4 8E270000 */ lw $a3, ($s1) +/* 01E0D8 7001D4D8 24180038 */ li $t8, 56 +/* 01E0DC 7001D4DC AFB80010 */ sw $t8, 0x10($sp) +/* 01E0E0 7001D4E0 00002025 */ move $a0, $zero +/* 01E0E4 7001D4E4 00002825 */ move $a1, $zero +/* 01E0E8 7001D4E8 0C003AD4 */ jal alHeapDBAlloc +/* 01E0EC 7001D4EC 8FA6002C */ lw $a2, 0x2c($sp) +/* 01E0F0 7001D4F0 AE00006C */ sw $zero, 0x6c($s0) +/* 01E0F4 7001D4F4 8E390000 */ lw $t9, ($s1) +/* 01E0F8 7001D4F8 00002025 */ move $a0, $zero +/* 01E0FC 7001D4FC 00002825 */ move $a1, $zero +/* 01E100 7001D500 1B20000B */ blez $t9, .L7001D530 +/* 01E104 7001D504 240A001C */ li $t2, 28 +/* 01E108 7001D508 00401825 */ move $v1, $v0 +/* 01E10C 7001D50C 8E08006C */ lw $t0, 0x6c($s0) +.L7001D510: +/* 01E110 7001D510 24840001 */ addiu $a0, $a0, 1 +/* 01E114 7001D514 AC680000 */ sw $t0, ($v1) +/* 01E118 7001D518 AE03006C */ sw $v1, 0x6c($s0) +/* 01E11C 7001D51C 8E290000 */ lw $t1, ($s1) +/* 01E120 7001D520 24630038 */ addiu $v1, $v1, 0x38 +/* 01E124 7001D524 0089082A */ slt $at, $a0, $t1 +/* 01E128 7001D528 5420FFF9 */ bnezl $at, .L7001D510 +/* 01E12C 7001D52C 8E08006C */ lw $t0, 0x6c($s0) +.L7001D530: +/* 01E130 7001D530 AE000064 */ sw $zero, 0x64($s0) +/* 01E134 7001D534 AE000068 */ sw $zero, 0x68($s0) +/* 01E138 7001D538 8E270004 */ lw $a3, 4($s1) +/* 01E13C 7001D53C AFAA0010 */ sw $t2, 0x10($sp) +/* 01E140 7001D540 8FA6002C */ lw $a2, 0x2c($sp) +/* 01E144 7001D544 0C003AD4 */ jal alHeapDBAlloc +/* 01E148 7001D548 00002025 */ move $a0, $zero +/* 01E14C 7001D54C 26040048 */ addiu $a0, $s0, 0x48 +/* 01E150 7001D550 00402825 */ move $a1, $v0 +/* 01E154 7001D554 0C004C2B */ jal alEvtqNew +/* 01E158 7001D558 8E260004 */ lw $a2, 4($s1) +/* 01E15C 7001D55C 3C0B7002 */ lui $t3, %hi(__seqpVoiceHandler) # $t3, 0x7002 +/* 01E160 7001D560 256BCC7C */ addiu $t3, %lo(__seqpVoiceHandler) # addiu $t3, $t3, -0x3384 +/* 01E164 7001D564 AE000000 */ sw $zero, ($s0) +/* 01E168 7001D568 AE0B0008 */ sw $t3, 8($s0) +/* 01E16C 7001D56C AE100004 */ sw $s0, 4($s0) +/* 01E170 7001D570 3C048002 */ lui $a0, %hi(alGlobals) +/* 01E174 7001D574 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 01E178 7001D578 0C004C48 */ jal alSynAddPlayer +/* 01E17C 7001D57C 02002825 */ move $a1, $s0 +/* 01E180 7001D580 8FBF0024 */ lw $ra, 0x24($sp) +/* 01E184 7001D584 8FB0001C */ lw $s0, 0x1c($sp) +/* 01E188 7001D588 8FB10020 */ lw $s1, 0x20($sp) +/* 01E18C 7001D58C 03E00008 */ jr $ra +/* 01E190 7001D590 27BD0040 */ addiu $sp, $sp, 0x40 + + +.section .rodata + + +.section .rodata +glabel jpt_80029A50 + .word .L7001C7F4, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C4A0, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C84C, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C92C, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CB98, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C8B4, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CBCC +glabel jpt_80029BD4 + .word .L7001C9F0, .L7001CC64, .L7001CC64, .L7001C994 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CA84, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64 +glabel jpt_80029C28 + .word .L7001CCE0, .L7001D24C, .L7001CFF4, .L7001D24C + .word .L7001D24C, .L7001CDAC, .L7001CDF8, .L7001D014 + .word .L7001D24C, .L7001CD8C, .L7001D14C, .L7001D1B4 + .word .L7001D1D0, .L7001D1EC, .L7001D23C, .L7001D028 + .word .L7001D04C, .L7001D0BC, .L7001D24C, .L7001D24C + .word .L7001D24C, .L7001D24C, .L7001CE5C, .L7001CF6C +glabel F32_80029C88 +.float 500000.0 + .align 4 diff --git a/src/libultra/seqpsetbank.s b/src/libultra/seqpsetbank.s new file mode 100644 index 0000000..d01eba0 --- /dev/null +++ b/src/libultra/seqpsetbank.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSeqpSetBank +/* 012DF0 700121F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 012DF4 700121F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 012DF8 700121F8 240E000E */ li $t6, 14 +/* 012DFC 700121FC AFA5001C */ sw $a1, 0x1c($sp) +/* 012E00 70012200 A7AE0018 */ sh $t6, 0x18($sp) +/* 012E04 70012204 27A50018 */ addiu $a1, $sp, 0x18 +/* 012E08 70012208 24840048 */ addiu $a0, $a0, 0x48 +/* 012E0C 7001220C 0C004BBF */ jal alEvtqPostEvent +/* 012E10 70012210 00003025 */ move $a2, $zero +/* 012E14 70012214 8FBF0014 */ lw $ra, 0x14($sp) +/* 012E18 70012218 27BD0028 */ addiu $sp, $sp, 0x28 +/* 012E1C 7001221C 03E00008 */ jr $ra +/* 012E20 70012220 00000000 */ nop diff --git a/src/libultra/setcompare.s b/src/libultra/setcompare.s new file mode 100644 index 0000000..907af67 --- /dev/null +++ b/src/libultra/setcompare.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetCompare +/* 0204E0 7001F8E0 40845800 */ mtc0 $a0, $11 +/* 0204E4 7001F8E4 03E00008 */ jr $ra +/* 0204E8 7001F8E8 00000000 */ nop + diff --git a/src/libultra/seteventmesg.s b/src/libultra/seteventmesg.s new file mode 100644 index 0000000..ad7ad44 --- /dev/null +++ b/src/libultra/seteventmesg.s @@ -0,0 +1,162 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetEventMesg +/* 00E850 7000DC50 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E854 7000DC54 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E858 7000DC58 AFA40028 */ sw $a0, 0x28($sp) +/* 00E85C 7000DC5C AFA5002C */ sw $a1, 0x2c($sp) +/* 00E860 7000DC60 AFA60030 */ sw $a2, 0x30($sp) +/* 00E864 7000DC64 0C00617C */ jal __osDisableInt +/* 00E868 7000DC68 AFB00018 */ sw $s0, 0x18($sp) +/* 00E86C 7000DC6C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E870 7000DC70 3C188006 */ lui $t8, %hi(__osEventStateTab) +/* 00E874 7000DC74 8FA8002C */ lw $t0, 0x2c($sp) +/* 00E878 7000DC78 27186A10 */ addiu $t8, %lo(__osEventStateTab) # addiu $t8, $t8, 0x6a10 +/* 00E87C 7000DC7C 000E78C0 */ sll $t7, $t6, 3 +/* 00E880 7000DC80 01F8C821 */ addu $t9, $t7, $t8 +/* 00E884 7000DC84 AFB90020 */ sw $t9, 0x20($sp) +/* 00E888 7000DC88 AF280000 */ sw $t0, ($t9) +/* 00E88C 7000DC8C 8FAA0020 */ lw $t2, 0x20($sp) +/* 00E890 7000DC90 8FA90030 */ lw $t1, 0x30($sp) +/* 00E894 7000DC94 00408025 */ move $s0, $v0 +/* 00E898 7000DC98 02002025 */ move $a0, $s0 +/* 00E89C 7000DC9C 0C006184 */ jal __osRestoreInt +/* 00E8A0 7000DCA0 AD490004 */ sw $t1, 4($t2) +/* 00E8A4 7000DCA4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E8A8 7000DCA8 8FB00018 */ lw $s0, 0x18($sp) +/* 00E8AC 7000DCAC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E8B0 7000DCB0 03E00008 */ jr $ra +/* 00E8B4 7000DCB4 00000000 */ nop + +.section .bss +glabel __osEventStateTab +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + + + diff --git a/src/libultra/setfpccsr.s b/src/libultra/setfpccsr.s new file mode 100644 index 0000000..5dff282 --- /dev/null +++ b/src/libultra/setfpccsr.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osSetFpcCsr +/* 00E020 7000D420 4442F800 */ cfc1 $v0, $31 +/* 00E024 7000D424 44C4F800 */ ctc1 $a0, $31 +/* 00E028 7000D428 03E00008 */ jr $ra +/* 00E02C 7000D42C 00000000 */ nop diff --git a/src/libultra/sethwinterrupt.s b/src/libultra/sethwinterrupt.s new file mode 100644 index 0000000..6df9f6f --- /dev/null +++ b/src/libultra/sethwinterrupt.s @@ -0,0 +1,34 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetHWIntrRoutine +/* 0188E0 70017CE0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0188E4 70017CE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0188E8 70017CE8 AFA40028 */ sw $a0, 0x28($sp) +/* 0188EC 70017CEC AFA5002C */ sw $a1, 0x2c($sp) +/* 0188F0 70017CF0 0C00617C */ jal __osDisableInt +/* 0188F4 70017CF4 AFB00018 */ sw $s0, 0x18($sp) +/* 0188F8 70017CF8 8FAF0028 */ lw $t7, 0x28($sp) +/* 0188FC 70017CFC 8FAE002C */ lw $t6, 0x2c($sp) +/* 018900 70017D00 3C018002 */ lui $at, %hi(__osHwIntTable) +/* 018904 70017D04 000FC080 */ sll $t8, $t7, 2 +/* 018908 70017D08 00408025 */ move $s0, $v0 +/* 01890C 70017D0C 00380821 */ addu $at, $at, $t8 +/* 018910 70017D10 02002025 */ move $a0, $s0 +/* 018914 70017D14 0C006184 */ jal __osRestoreInt +/* 018918 70017D18 AC2E7700 */ sw $t6, %lo(__osHwIntTable)($at) +/* 01891C 70017D1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 018920 70017D20 8FB00018 */ lw $s0, 0x18($sp) +/* 018924 70017D24 27BD0028 */ addiu $sp, $sp, 0x28 +/* 018928 70017D28 03E00008 */ jr $ra +/* 01892C 70017D2C 00000000 */ nop diff --git a/src/libultra/setintmask.s b/src/libultra/setintmask.s new file mode 100644 index 0000000..9b73eb9 --- /dev/null +++ b/src/libultra/setintmask.s @@ -0,0 +1,62 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetIntMask +/* 00E930 7000DD30 400C6000 */ mfc0 $t4, $12 +/* 00E934 7000DD34 3182FF01 */ andi $v0, $t4, 0xff01 +/* 00E938 7000DD38 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 00E93C 7000DD3C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 00E940 7000DD40 8D0B0000 */ lw $t3, ($t0) +/* 00E944 7000DD44 2401FFFF */ li $at, -1 +/* 00E948 7000DD48 01614026 */ xor $t0, $t3, $at +/* 00E94C 7000DD4C 3108FF00 */ andi $t0, $t0, 0xff00 +/* 00E950 7000DD50 00481025 */ or $v0, $v0, $t0 +/* 00E954 7000DD54 3C0AA430 */ lui $t2, %hi(MI_INTR_MASK_REG) # $t2, 0xa430 +/* 00E958 7000DD58 8D4A000C */ lw $t2, %lo(MI_INTR_MASK_REG)($t2) +/* 00E95C 7000DD5C 11400005 */ beqz $t2, .L7000DD74 +/* 00E960 7000DD60 000B4C02 */ srl $t1, $t3, 0x10 +/* 00E964 7000DD64 2401FFFF */ li $at, -1 +/* 00E968 7000DD68 01214826 */ xor $t1, $t1, $at +/* 00E96C 7000DD6C 3129003F */ andi $t1, $t1, 0x3f +/* 00E970 7000DD70 01495025 */ or $t2, $t2, $t1 +.L7000DD74: +/* 00E974 7000DD74 000A5400 */ sll $t2, $t2, 0x10 +/* 00E978 7000DD78 004A1025 */ or $v0, $v0, $t2 +/* 00E97C 7000DD7C 3C01003F */ lui $at, 0x3f +/* 00E980 7000DD80 00814024 */ and $t0, $a0, $at +/* 00E984 7000DD84 010B4024 */ and $t0, $t0, $t3 +/* 00E988 7000DD88 000843C2 */ srl $t0, $t0, 0xf +/* 00E98C 7000DD8C 3C0A8003 */ lui $t2, %hi(__osRcpImTable) +/* 00E990 7000DD90 01485021 */ addu $t2, $t2, $t0 +/* 00E994 7000DD94 954A93A0 */ lhu $t2, %lo(__osRcpImTable)($t2) +/* 00E998 7000DD98 3C01A430 */ lui $at, %hi(MI_INTR_MASK_REG) # $at, 0xa430 +/* 00E99C 7000DD9C AC2A000C */ sw $t2, %lo(MI_INTR_MASK_REG)($at) +/* 00E9A0 7000DDA0 3088FF01 */ andi $t0, $a0, 0xff01 +/* 00E9A4 7000DDA4 3169FF00 */ andi $t1, $t3, 0xff00 +/* 00E9A8 7000DDA8 01094024 */ and $t0, $t0, $t1 +/* 00E9AC 7000DDAC 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 00E9B0 7000DDB0 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 00E9B4 7000DDB4 01816024 */ and $t4, $t4, $at +/* 00E9B8 7000DDB8 01886025 */ or $t4, $t4, $t0 +/* 00E9BC 7000DDBC 408C6000 */ mtc0 $t4, $12 +/* 00E9C0 7000DDC0 00000000 */ nop +/* 00E9C4 7000DDC4 00000000 */ nop +/* 00E9C8 7000DDC8 03E00008 */ jr $ra +/* 00E9CC 7000DDCC 00000000 */ nop + +.section .rodata +glabel __osRcpImTable + .half 0x555, 0x556, 0x559, 0x55a, 0x565, 0x566, 0x569, 0x56a + .half 0x595, 0x596, 0x599, 0x59a, 0x5a5, 0x5a6, 0x5a9, 0x5aa + .half 0x655, 0x656, 0x659, 0x65a, 0x665, 0x666, 0x669, 0x66a + .half 0x695, 0x696, 0x699, 0x69a, 0x6a5, 0x6a6, 0x6a9, 0x6aa + .half 0x955, 0x956, 0x959, 0x95a, 0x965, 0x966, 0x969, 0x96a + .half 0x995, 0x996, 0x999, 0x99a, 0x9a5, 0x9a6, 0x9a9, 0x9aa + .half 0xa55, 0xa56, 0xa59, 0xa5a, 0xa65, 0xa66, 0xa69, 0xa6a + .half 0xa95, 0xa96, 0xa99, 0xa9a, 0xaa5, 0xaa6, 0xaa9, 0xaaa diff --git a/src/libultra/setsr.s b/src/libultra/setsr.s new file mode 100644 index 0000000..78d6b38 --- /dev/null +++ b/src/libultra/setsr.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetSR +/* 018720 70017B20 40846000 */ mtc0 $a0, $12 +/* 018724 70017B24 00000000 */ nop +/* 018728 70017B28 03E00008 */ jr $ra +/* 01872C 70017B2C 00000000 */ nop diff --git a/src/libultra/setthreadpri.s b/src/libultra/setthreadpri.s new file mode 100644 index 0000000..e015c47 --- /dev/null +++ b/src/libultra/setthreadpri.s @@ -0,0 +1,70 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osSetThreadPri +/* 00E400 7000D800 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E404 7000D804 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E408 7000D808 AFA40028 */ sw $a0, 0x28($sp) +/* 00E40C 7000D80C AFA5002C */ sw $a1, 0x2c($sp) +/* 00E410 7000D810 0C00617C */ jal __osDisableInt +/* 00E414 7000D814 AFB00018 */ sw $s0, 0x18($sp) +/* 00E418 7000D818 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E41C 7000D81C 00408025 */ move $s0, $v0 +/* 00E420 7000D820 15C00004 */ bnez $t6, .L7000D834 +/* 00E424 7000D824 00000000 */ nop +/* 00E428 7000D828 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 00E42C 7000D82C 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 00E430 7000D830 AFAF0028 */ sw $t7, 0x28($sp) +.L7000D834: +/* 00E434 7000D834 8FB80028 */ lw $t8, 0x28($sp) +/* 00E438 7000D838 8FA8002C */ lw $t0, 0x2c($sp) +/* 00E43C 7000D83C 8F190004 */ lw $t9, 4($t8) +/* 00E440 7000D840 13280020 */ beq $t9, $t0, .L7000D8C4 +/* 00E444 7000D844 00000000 */ nop +/* 00E448 7000D848 AF080004 */ sw $t0, 4($t8) +/* 00E44C 7000D84C 3C0A8002 */ lui $t2, %hi(__osRunningThread) +/* 00E450 7000D850 8D4A7730 */ lw $t2, %lo(__osRunningThread)($t2) +/* 00E454 7000D854 8FA90028 */ lw $t1, 0x28($sp) +/* 00E458 7000D858 112A000C */ beq $t1, $t2, .L7000D88C +/* 00E45C 7000D85C 00000000 */ nop +/* 00E460 7000D860 952B0010 */ lhu $t3, 0x10($t1) +/* 00E464 7000D864 24010001 */ li $at, 1 +/* 00E468 7000D868 11610008 */ beq $t3, $at, .L7000D88C +/* 00E46C 7000D86C 00000000 */ nop +/* 00E470 7000D870 8D240008 */ lw $a0, 8($t1) +/* 00E474 7000D874 0C0042A4 */ jal __osDequeueThread +/* 00E478 7000D878 01202825 */ move $a1, $t1 +/* 00E47C 7000D87C 8FAC0028 */ lw $t4, 0x28($sp) +/* 00E480 7000D880 8D840008 */ lw $a0, 8($t4) +/* 00E484 7000D884 0C00422B */ jal __osEnqueueThread +/* 00E488 7000D888 01802825 */ move $a1, $t4 +.L7000D88C: +/* 00E48C 7000D88C 3C0D8002 */ lui $t5, %hi(__osRunningThread) +/* 00E490 7000D890 3C0F8002 */ lui $t7, %hi(__osRunQueue) +/* 00E494 7000D894 8DEF7728 */ lw $t7, %lo(__osRunQueue)($t7) +/* 00E498 7000D898 8DAD7730 */ lw $t5, %lo(__osRunningThread)($t5) +/* 00E49C 7000D89C 8DF90004 */ lw $t9, 4($t7) +/* 00E4A0 7000D8A0 8DAE0004 */ lw $t6, 4($t5) +/* 00E4A4 7000D8A4 01D9082A */ slt $at, $t6, $t9 +/* 00E4A8 7000D8A8 10200006 */ beqz $at, .L7000D8C4 +/* 00E4AC 7000D8AC 00000000 */ nop +/* 00E4B0 7000D8B0 24080002 */ li $t0, 2 +/* 00E4B4 7000D8B4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E4B8 7000D8B8 A5A80010 */ sh $t0, 0x10($t5) +/* 00E4BC 7000D8BC 0C0041EB */ jal __osEnqueueAndYield +/* 00E4C0 7000D8C0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L7000D8C4: +/* 00E4C4 7000D8C4 0C006184 */ jal __osRestoreInt +/* 00E4C8 7000D8C8 02002025 */ move $a0, $s0 +/* 00E4CC 7000D8CC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E4D0 7000D8D0 8FB00018 */ lw $s0, 0x18($sp) +/* 00E4D4 7000D8D4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E4D8 7000D8D8 03E00008 */ jr $ra +/* 00E4DC 7000D8DC 00000000 */ nop diff --git a/src/libultra/settimer.s b/src/libultra/settimer.s new file mode 100644 index 0000000..5b04978 --- /dev/null +++ b/src/libultra/settimer.s @@ -0,0 +1,67 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetTimer +/* 011850 70010C50 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 011854 70010C54 AFA40020 */ sw $a0, 0x20($sp) +/* 011858 70010C58 8FAE0020 */ lw $t6, 0x20($sp) +/* 01185C 70010C5C AFBF0014 */ sw $ra, 0x14($sp) +/* 011860 70010C60 AFA60028 */ sw $a2, 0x28($sp) +/* 011864 70010C64 AFA7002C */ sw $a3, 0x2c($sp) +/* 011868 70010C68 ADC00000 */ sw $zero, ($t6) +/* 01186C 70010C6C 8FAF0020 */ lw $t7, 0x20($sp) +/* 011870 70010C70 ADE00004 */ sw $zero, 4($t7) +/* 011874 70010C74 8FA80020 */ lw $t0, 0x20($sp) +/* 011878 70010C78 8FB90034 */ lw $t9, 0x34($sp) +/* 01187C 70010C7C 8FB80030 */ lw $t8, 0x30($sp) +/* 011880 70010C80 AD19000C */ sw $t9, 0xc($t0) +/* 011884 70010C84 AD180008 */ sw $t8, 8($t0) +/* 011888 70010C88 8FAA0028 */ lw $t2, 0x28($sp) +/* 01188C 70010C8C 8FAB002C */ lw $t3, 0x2c($sp) +/* 011890 70010C90 15400003 */ bnez $t2, .L70010CA0 +/* 011894 70010C94 00000000 */ nop +/* 011898 70010C98 11600005 */ beqz $t3, .L70010CB0 +/* 01189C 70010C9C 00000000 */ nop +.L70010CA0: +/* 0118A0 70010CA0 8FA90020 */ lw $t1, 0x20($sp) +/* 0118A4 70010CA4 AD2A0010 */ sw $t2, 0x10($t1) +/* 0118A8 70010CA8 10000006 */ b .L70010CC4 +/* 0118AC 70010CAC AD2B0014 */ sw $t3, 0x14($t1) +.L70010CB0: +/* 0118B0 70010CB0 8FAE0020 */ lw $t6, 0x20($sp) +/* 0118B4 70010CB4 8FAC0030 */ lw $t4, 0x30($sp) +/* 0118B8 70010CB8 8FAD0034 */ lw $t5, 0x34($sp) +/* 0118BC 70010CBC ADCC0010 */ sw $t4, 0x10($t6) +/* 0118C0 70010CC0 ADCD0014 */ sw $t5, 0x14($t6) +.L70010CC4: +/* 0118C4 70010CC4 8FAF0038 */ lw $t7, 0x38($sp) +/* 0118C8 70010CC8 8FB80020 */ lw $t8, 0x20($sp) +/* 0118CC 70010CCC AF0F0018 */ sw $t7, 0x18($t8) +/* 0118D0 70010CD0 8FA80020 */ lw $t0, 0x20($sp) +/* 0118D4 70010CD4 8FB9003C */ lw $t9, 0x3c($sp) +/* 0118D8 70010CD8 AD19001C */ sw $t9, 0x1c($t0) +/* 0118DC 70010CDC 0C00622A */ jal __osInsertTimer +/* 0118E0 70010CE0 8FA40020 */ lw $a0, 0x20($sp) +/* 0118E4 70010CE4 3C0A8002 */ lui $t2, %hi(__osTimerList) +/* 0118E8 70010CE8 8D4A7FD0 */ lw $t2, %lo(__osTimerList)($t2) +/* 0118EC 70010CEC AFA20018 */ sw $v0, 0x18($sp) +/* 0118F0 70010CF0 AFA3001C */ sw $v1, 0x1c($sp) +/* 0118F4 70010CF4 8FA90020 */ lw $t1, 0x20($sp) +/* 0118F8 70010CF8 8D4B0000 */ lw $t3, ($t2) +/* 0118FC 70010CFC 15690004 */ bne $t3, $t1, .L70010D10 +/* 011900 70010D00 00000000 */ nop +/* 011904 70010D04 8FA40018 */ lw $a0, 0x18($sp) +/* 011908 70010D08 0C00620D */ jal __osSetTimerIntr +/* 01190C 70010D0C 8FA5001C */ lw $a1, 0x1c($sp) +.L70010D10: +/* 011910 70010D10 8FBF0014 */ lw $ra, 0x14($sp) +/* 011914 70010D14 27BD0020 */ addiu $sp, $sp, 0x20 +/* 011918 70010D18 00001025 */ move $v0, $zero +/* 01191C 70010D1C 03E00008 */ jr $ra +/* 011920 70010D20 00000000 */ nop diff --git a/src/libultra/si.s b/src/libultra/si.s new file mode 100644 index 0000000..c0ad602 --- /dev/null +++ b/src/libultra/si.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiDeviceBusy +/* 020320 7001F720 3C0EA480 */ lui $t6, %hi(SI_STATUS_REG) # $t6, 0xa480 +/* 020324 7001F724 8DC40018 */ lw $a0, %lo(SI_STATUS_REG)($t6) +/* 020328 7001F728 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02032C 7001F72C 308F0003 */ andi $t7, $a0, 3 +/* 020330 7001F730 11E00003 */ beqz $t7, .L7001F740 +/* 020334 7001F734 00000000 */ nop +/* 020338 7001F738 10000002 */ b .L7001F744 +/* 02033C 7001F73C 24020001 */ li $v0, 1 +.L7001F740: +/* 020340 7001F740 00001025 */ move $v0, $zero +.L7001F744: +/* 020344 7001F744 03E00008 */ jr $ra +/* 020348 7001F748 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/siacs.s b/src/libultra/siacs.s new file mode 100644 index 0000000..03e5128 --- /dev/null +++ b/src/libultra/siacs.s @@ -0,0 +1,85 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiCreateAccessQueue +/* 016A10 70015E10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016A14 70015E14 AFBF0014 */ sw $ra, 0x14($sp) +/* 016A18 70015E18 240E0001 */ li $t6, 1 +/* 016A1C 70015E1C 3C018002 */ lui $at, %hi(__osSiAccessQueueEnabled) +/* 016A20 70015E20 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A24 70015E24 3C058006 */ lui $a1, %hi(__osSiAccessBuf) +/* 016A28 70015E28 AC2E77C0 */ sw $t6, %lo(__osSiAccessQueueEnabled)($at) +/* 016A2C 70015E2C 24A57DB0 */ addiu $a1, %lo(__osSiAccessBuf) # addiu $a1, $a1, 0x7db0 +/* 016A30 70015E30 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A34 70015E34 0C0035B4 */ jal osCreateMesgQueue +/* 016A38 70015E38 24060001 */ li $a2, 1 +/* 016A3C 70015E3C 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A40 70015E40 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A44 70015E44 00002825 */ move $a1, $zero +/* 016A48 70015E48 0C0037C4 */ jal osSendMesg +/* 016A4C 70015E4C 00003025 */ move $a2, $zero +/* 016A50 70015E50 8FBF0014 */ lw $ra, 0x14($sp) +/* 016A54 70015E54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016A58 70015E58 03E00008 */ jr $ra +/* 016A5C 70015E5C 00000000 */ nop + +glabel __osSiGetAccess +/* 016A60 70015E60 3C0E8002 */ lui $t6, %hi(__osSiAccessQueueEnabled) +/* 016A64 70015E64 8DCE77C0 */ lw $t6, %lo(__osSiAccessQueueEnabled)($t6) +/* 016A68 70015E68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 016A6C 70015E6C AFBF0014 */ sw $ra, 0x14($sp) +/* 016A70 70015E70 15C00003 */ bnez $t6, .L70015E80 +/* 016A74 70015E74 00000000 */ nop +/* 016A78 70015E78 0C005784 */ jal __osSiCreateAccessQueue +/* 016A7C 70015E7C 00000000 */ nop +.L70015E80: +/* 016A80 70015E80 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A84 70015E84 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A88 70015E88 27A5001C */ addiu $a1, $sp, 0x1c +/* 016A8C 70015E8C 0C003774 */ jal osRecvMesg +/* 016A90 70015E90 24060001 */ li $a2, 1 +/* 016A94 70015E94 8FBF0014 */ lw $ra, 0x14($sp) +/* 016A98 70015E98 27BD0020 */ addiu $sp, $sp, 0x20 +/* 016A9C 70015E9C 03E00008 */ jr $ra +/* 016AA0 70015EA0 00000000 */ nop + +glabel __osSiRelAccess +/* 016AA4 70015EA4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016AA8 70015EA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 016AAC 70015EAC 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016AB0 70015EB0 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016AB4 70015EB4 00002825 */ move $a1, $zero +/* 016AB8 70015EB8 0C0037C4 */ jal osSendMesg +/* 016ABC 70015EBC 00003025 */ move $a2, $zero +/* 016AC0 70015EC0 8FBF0014 */ lw $ra, 0x14($sp) +/* 016AC4 70015EC4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016AC8 70015EC8 03E00008 */ jr $ra +/* 016ACC 70015ECC 00000000 */ nop + +.section .data +__osSiAccessQueueEnabled: +glabel __osSiAccessQueueEnabled +.word 0 + +.align 4 +.section .bss +glabel __osSiAccessBuf +.word 0, 0 +glabel __osSiAccessQueue +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 + diff --git a/src/libultra/sins.s b/src/libultra/sins.s new file mode 100644 index 0000000..6e50e2d --- /dev/null +++ b/src/libultra/sins.s @@ -0,0 +1,305 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel sins +/* 017860 70016C60 308EFFFF */ andi $t6, $a0, 0xffff +/* 017864 70016C64 000E7902 */ srl $t7, $t6, 4 +/* 017868 70016C68 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01786C 70016C6C 33190400 */ andi $t9, $t8, 0x400 +/* 017870 70016C70 AFA40000 */ sw $a0, ($sp) +/* 017874 70016C74 13200008 */ beqz $t9, .L70016C98 +/* 017878 70016C78 03001025 */ move $v0, $t8 +/* 01787C 70016C7C 330803FF */ andi $t0, $t8, 0x3ff +/* 017880 70016C80 00084840 */ sll $t1, $t0, 1 +/* 017884 70016C84 00095023 */ negu $t2, $t1 +/* 017888 70016C88 3C038002 */ lui $v1, %hi(sin_table + 0x7FE) # 0x8002 +/* 01788C 70016C8C 006A1821 */ addu $v1, $v1, $t2 +/* 017890 70016C90 10000006 */ b .L70016CAC +/* 017894 70016C94 84637FCE */ lh $v1, %lo(sin_table + 0x7FE)($v1) # 0x7fce($v1) +.L70016C98: +/* 017898 70016C98 304B03FF */ andi $t3, $v0, 0x3ff +/* 01789C 70016C9C 000B6040 */ sll $t4, $t3, 1 +/* 0178A0 70016CA0 3C038002 */ lui $v1, %hi(sin_table) # 0x8002 +/* 0178A4 70016CA4 006C1821 */ addu $v1, $v1, $t4 +/* 0178A8 70016CA8 846377D0 */ lh $v1, %lo(sin_table)($v1) # 0x77d0($v1) +.L70016CAC: +/* 0178AC 70016CAC 304D0800 */ andi $t5, $v0, 0x800 +/* 0178B0 70016CB0 11A00005 */ beqz $t5, .L70016CC8 +/* 0178B4 70016CB4 00601025 */ move $v0, $v1 +/* 0178B8 70016CB8 00031023 */ negu $v0, $v1 +/* 0178BC 70016CBC 00027400 */ sll $t6, $v0, 0x10 +/* 0178C0 70016CC0 03E00008 */ jr $ra +/* 0178C4 70016CC4 000E1403 */ sra $v0, $t6, 0x10 + +.L70016CC8: +/* 0178C8 70016CC8 03E00008 */ jr $ra +/* 0178CC 70016CCC 00000000 */ nop + + .section .data +glabel sin_table +.half 0, 0x32, 0x64, 0x96 +.half 0xC9, 0xFB, 0x12D, 0x160 +.half 0x192, 0x1C4, 0x1F7, 0x229 +.half 0x25B, 0x28E, 0x2C0, 0x2F2 +.half 0x324, 0x357, 0x389, 0x3BB +.half 0x3EE, 0x420, 0x452, 0x484 +.half 0x4B7, 0x4E9, 0x51B, 0x54E +.half 0x580, 0x5B2, 0x5E4, 0x617 +.half 0x649, 0x67B, 0x6AD, 0x6E0 +.half 0x712, 0x744, 0x776, 0x7A9 +.half 0x7DB, 0x80D, 0x83F, 0x871 +.half 0x8A4, 0x8D6, 0x908, 0x93A +.half 0x96C, 0x99F, 0x9D1, 0xA03 +.half 0xA35, 0xA67, 0xA99, 0xACB +.half 0xAFE, 0xB30, 0xB62, 0xB94 +.half 0xBC6, 0xBF8, 0xC2A, 0xC5C +.half 0xC8E, 0xCC0, 0xCF2, 0xD25 +.half 0xD57, 0xD89, 0xDBB, 0xDED +.half 0xE1F, 0xE51, 0xE83, 0xEB5 +.half 0xEE7, 0xF19, 0xF4B, 0xF7C +.half 0xFAE, 0xFE0,0x1012,0x1044 +.half 0x1076,0x10A8,0x10DA,0x110C +.half 0x113E,0x116F,0x11A1,0x11D3 +.half 0x1205,0x1237,0x1269,0x129A +.half 0x12CC,0x12FE,0x1330,0x1361 +.half 0x1393,0x13C5,0x13F6,0x1428 +.half 0x145A,0x148C,0x14BD,0x14EF +.half 0x1520,0x1552,0x1584,0x15B5 +.half 0x15E7,0x1618,0x164A,0x167B +.half 0x16AD,0x16DF,0x1710,0x1741 +.half 0x1773,0x17A4,0x17D6,0x1807 +.half 0x1839,0x186A,0x189B,0x18CD +.half 0x18FE,0x1930,0x1961,0x1992 +.half 0x19C3,0x19F5,0x1A26,0x1A57 +.half 0x1A88,0x1ABA,0x1AEB,0x1B1C +.half 0x1B4D,0x1B7E,0x1BAF,0x1BE1 +.half 0x1C12,0x1C43,0x1C74,0x1CA5 +.half 0x1CD6,0x1D07,0x1D38,0x1D69 +.half 0x1D9A,0x1DCB,0x1DFC,0x1E2D +.half 0x1E5D,0x1E8E,0x1EBF,0x1EF0 +.half 0x1F21,0x1F52,0x1F82,0x1FB3 +.half 0x1FE4,0x2015,0x2045,0x2076 +.half 0x20A7,0x20D7,0x2108,0x2139 +.half 0x2169,0x219A,0x21CA,0x21FB +.half 0x222B,0x225C,0x228C,0x22BD +.half 0x22ED,0x231D,0x234E,0x237E +.half 0x23AE,0x23DF,0x240F,0x243F +.half 0x2470,0x24A0,0x24D0,0x2500 +.half 0x2530,0x2560,0x2591,0x25C1 +.half 0x25F1,0x2621,0x2651,0x2681 +.half 0x26B1,0x26E1,0x2711,0x2740 +.half 0x2770,0x27A0,0x27D0,0x2800 +.half 0x2830,0x285F,0x288F,0x28BF +.half 0x28EE,0x291E,0x294E,0x297D +.half 0x29AD,0x29DD,0x2A0C,0x2A3C +.half 0x2A6B,0x2A9B,0x2ACA,0x2AF9 +.half 0x2B29,0x2B58,0x2B87,0x2BB7 +.half 0x2BE6,0x2C15,0x2C44,0x2C74 +.half 0x2CA3,0x2CD2,0x2D01,0x2D30 +.half 0x2D5F,0x2D8E,0x2DBD,0x2DEC +.half 0x2E1B,0x2E4A,0x2E79,0x2EA8 +.half 0x2ED7,0x2F06,0x2F34,0x2F63 +.half 0x2F92,0x2FC0,0x2FEF,0x301E +.half 0x304C,0x307B,0x30A9,0x30D8 +.half 0x3107,0x3135,0x3163,0x3192 +.half 0x31C0,0x31EF,0x321D,0x324B +.half 0x3279,0x32A8,0x32D6,0x3304 +.half 0x3332,0x3360,0x338E,0x33BC +.half 0x33EA,0x3418,0x3446,0x3474 +.half 0x34A2,0x34D0,0x34FE,0x352B +.half 0x3559,0x3587,0x35B5,0x35E2 +.half 0x3610,0x363D,0x366B,0x3698 +.half 0x36C6,0x36F3,0x3721,0x374E +.half 0x377C,0x37A9,0x37D6,0x3803 +.half 0x3831,0x385E,0x388B,0x38B8 +.half 0x38E5,0x3912,0x393F,0x396C +.half 0x3999,0x39C6,0x39F3,0x3A20 +.half 0x3A4D,0x3A79,0x3AA6,0x3AD3 +.half 0x3B00,0x3B2C,0x3B59,0x3B85 +.half 0x3BB2,0x3BDE,0x3C0B,0x3C37 +.half 0x3C64,0x3C90,0x3CBC,0x3CE9 +.half 0x3D15,0x3D41,0x3D6D,0x3D99 +.half 0x3DC5,0x3DF1,0x3E1D,0x3E49 +.half 0x3E75,0x3EA1,0x3ECD,0x3EF9 +.half 0x3F25,0x3F50,0x3F7C,0x3FA8 +.half 0x3FD3,0x3FFF,0x402B,0x4056 +.half 0x4082,0x40AD,0x40D8,0x4104 +.half 0x412F,0x415A,0x4186,0x41B1 +.half 0x41DC,0x4207,0x4232,0x425D +.half 0x4288,0x42B3,0x42DE,0x4309 +.half 0x4334,0x435F,0x4389,0x43B4 +.half 0x43DF,0x4409,0x4434,0x445F +.half 0x4489,0x44B4,0x44DE,0x4508 +.half 0x4533,0x455D,0x4587,0x45B1 +.half 0x45DC,0x4606,0x4630,0x465A +.half 0x4684,0x46AE,0x46D8,0x4702 +.half 0x472C,0x4755,0x477F,0x47A9 +.half 0x47D2,0x47FC,0x4826,0x484F +.half 0x4879,0x48A2,0x48CC,0x48F5 +.half 0x491E,0x4948,0x4971,0x499A +.half 0x49C3,0x49EC,0x4A15,0x4A3E +.half 0x4A67,0x4A90,0x4AB9,0x4AE2 +.half 0x4B0B,0x4B33,0x4B5C,0x4B85 +.half 0x4BAD,0x4BD6,0x4BFE,0x4C27 +.half 0x4C4F,0x4C78,0x4CA0,0x4CC8 +.half 0x4CF0,0x4D19,0x4D41,0x4D69 +.half 0x4D91,0x4DB9,0x4DE1,0x4E09 +.half 0x4E31,0x4E58,0x4E80,0x4EA8 +.half 0x4ED0,0x4EF7,0x4F1F,0x4F46 +.half 0x4F6E,0x4F95,0x4FBD,0x4FE4 +.half 0x500B,0x5032,0x505A,0x5081 +.half 0x50A8,0x50CF,0x50F6,0x511D +.half 0x5144,0x516B,0x5191,0x51B8 +.half 0x51DF,0x5205,0x522C,0x5253 +.half 0x5279,0x52A0,0x52C6,0x52EC +.half 0x5313,0x5339,0x535F,0x5385 +.half 0x53AB,0x53D1,0x53F7,0x541D +.half 0x5443,0x5469,0x548F,0x54B5 +.half 0x54DA,0x5500,0x5525,0x554B +.half 0x5571,0x5596,0x55BB,0x55E1 +.half 0x5606,0x562B,0x5650,0x5675 +.half 0x569B,0x56C0,0x56E5,0x5709 +.half 0x572E,0x5753,0x5778,0x579D +.half 0x57C1,0x57E6,0x580A,0x582F +.half 0x5853,0x5878,0x589C,0x58C0 +.half 0x58E5,0x5909,0x592D,0x5951 +.half 0x5975,0x5999,0x59BD,0x59E1 +.half 0x5A04,0x5A28,0x5A4C,0x5A6F +.half 0x5A93,0x5AB7,0x5ADA,0x5AFD +.half 0x5B21,0x5B44,0x5B67,0x5B8B +.half 0x5BAE,0x5BD1,0x5BF4,0x5C17 +.half 0x5C3A,0x5C5D,0x5C7F,0x5CA2 +.half 0x5CC5,0x5CE7,0x5D0A,0x5D2D +.half 0x5D4F,0x5D71,0x5D94,0x5DB6 +.half 0x5DD8,0x5DFA,0x5E1D,0x5E3F +.half 0x5E61,0x5E83,0x5EA5,0x5EC6 +.half 0x5EE8,0x5F0A,0x5F2C,0x5F4D +.half 0x5F6F,0x5F90,0x5FB2,0x5FD3 +.half 0x5FF4,0x6016,0x6037,0x6058 +.half 0x6079,0x609A,0x60BB,0x60DC +.half 0x60FD,0x611E,0x613E,0x615F +.half 0x6180,0x61A0,0x61C1,0x61E1 +.half 0x6202,0x6222,0x6242,0x6263 +.half 0x6283,0x62A3,0x62C3,0x62E3 +.half 0x6303,0x6323,0x6342,0x6362 +.half 0x6382,0x63A1,0x63C1,0x63E0 +.half 0x6400,0x641F,0x643F,0x645E +.half 0x647D,0x649C,0x64BB,0x64DA +.half 0x64F9,0x6518,0x6537,0x6556 +.half 0x6574,0x6593,0x65B2,0x65D0 +.half 0x65EF,0x660D,0x662B,0x664A +.half 0x6668,0x6686,0x66A4,0x66C2 +.half 0x66E0,0x66FE,0x671C,0x673A +.half 0x6757,0x6775,0x6792,0x67B0 +.half 0x67CD,0x67EB,0x6808,0x6825 +.half 0x6843,0x6860,0x687D,0x689A +.half 0x68B7,0x68D4,0x68F1,0x690D +.half 0x692A,0x6947,0x6963,0x6980 +.half 0x699C,0x69B9,0x69D5,0x69F1 +.half 0x6A0E,0x6A2A,0x6A46,0x6A62 +.half 0x6A7E,0x6A9A,0x6AB5,0x6AD1 +.half 0x6AED,0x6B08,0x6B24,0x6B40 +.half 0x6B5B,0x6B76,0x6B92,0x6BAD +.half 0x6BC8,0x6BE3,0x6BFE,0x6C19 +.half 0x6C34,0x6C4F,0x6C6A,0x6C84 +.half 0x6C9F,0x6CBA,0x6CD4,0x6CEF +.half 0x6D09,0x6D23,0x6D3E,0x6D58 +.half 0x6D72,0x6D8C,0x6DA6,0x6DC0 +.half 0x6DDA,0x6DF3,0x6E0D,0x6E27 +.half 0x6E40,0x6E5A,0x6E73,0x6E8D +.half 0x6EA6,0x6EBF,0x6ED9,0x6EF2 +.half 0x6F0B,0x6F24,0x6F3D,0x6F55 +.half 0x6F6E,0x6F87,0x6FA0,0x6FB8 +.half 0x6FD1,0x6FE9,0x7002,0x701A +.half 0x7032,0x704A,0x7062,0x707A +.half 0x7092,0x70AA,0x70C2,0x70DA +.half 0x70F2,0x7109,0x7121,0x7138 +.half 0x7150,0x7167,0x717E,0x7196 +.half 0x71AD,0x71C4,0x71DB,0x71F2 +.half 0x7209,0x7220,0x7236,0x724D +.half 0x7264,0x727A,0x7291,0x72A7 +.half 0x72BD,0x72D4,0x72EA,0x7300 +.half 0x7316,0x732C,0x7342,0x7358 +.half 0x736E,0x7383,0x7399,0x73AE +.half 0x73C4,0x73D9,0x73EF,0x7404 +.half 0x7419,0x742E,0x7443,0x7458 +.half 0x746D,0x7482,0x7497,0x74AC +.half 0x74C0,0x74D5,0x74EA,0x74FE +.half 0x7512,0x7527,0x753B,0x754F +.half 0x7563,0x7577,0x758B,0x759F +.half 0x75B3,0x75C7,0x75DA,0x75EE +.half 0x7601,0x7615,0x7628,0x763B +.half 0x764F,0x7662,0x7675,0x7688 +.half 0x769B,0x76AE,0x76C1,0x76D3 +.half 0x76E6,0x76F9,0x770B,0x771E +.half 0x7730,0x7742,0x7754,0x7767 +.half 0x7779,0x778B,0x779D,0x77AF +.half 0x77C0,0x77D2,0x77E4,0x77F5 +.half 0x7807,0x7818,0x782A,0x783B +.half 0x784C,0x785D,0x786E,0x787F +.half 0x7890,0x78A1,0x78B2,0x78C3 +.half 0x78D3,0x78E4,0x78F4,0x7905 +.half 0x7915,0x7925,0x7936,0x7946 +.half 0x7956,0x7966,0x7976,0x7985 +.half 0x7995,0x79A5,0x79B5,0x79C4 +.half 0x79D4,0x79E3,0x79F2,0x7A02 +.half 0x7A11,0x7A20,0x7A2F,0x7A3E +.half 0x7A4D,0x7A5B,0x7A6A,0x7A79 +.half 0x7A87,0x7A96,0x7AA4,0x7AB3 +.half 0x7AC1,0x7ACF,0x7ADD,0x7AEB +.half 0x7AF9,0x7B07,0x7B15,0x7B23 +.half 0x7B31,0x7B3E,0x7B4C,0x7B59 +.half 0x7B67,0x7B74,0x7B81,0x7B8E +.half 0x7B9B,0x7BA8,0x7BB5,0x7BC2 +.half 0x7BCF,0x7BDC,0x7BE8,0x7BF5 +.half 0x7C02,0x7C0E,0x7C1A,0x7C27 +.half 0x7C33,0x7C3F,0x7C4B,0x7C57 +.half 0x7C63,0x7C6F,0x7C7A,0x7C86 +.half 0x7C92,0x7C9D,0x7CA9,0x7CB4 +.half 0x7CBF,0x7CCB,0x7CD6,0x7CE1 +.half 0x7CEC,0x7CF7,0x7D02,0x7D0C +.half 0x7D17,0x7D22,0x7D2C,0x7D37 +.half 0x7D41,0x7D4B,0x7D56,0x7D60 +.half 0x7D6A,0x7D74,0x7D7E,0x7D88 +.half 0x7D91,0x7D9B,0x7DA5,0x7DAE +.half 0x7DB8,0x7DC1,0x7DCB,0x7DD4 +.half 0x7DDD,0x7DE6,0x7DEF,0x7DF8 +.half 0x7E01,0x7E0A,0x7E13,0x7E1B +.half 0x7E24,0x7E2C,0x7E35,0x7E3D +.half 0x7E45,0x7E4D,0x7E56,0x7E5E +.half 0x7E66,0x7E6D,0x7E75,0x7E7D +.half 0x7E85,0x7E8C,0x7E94,0x7E9B +.half 0x7EA3,0x7EAA,0x7EB1,0x7EB8 +.half 0x7EBF,0x7EC6,0x7ECD,0x7ED4 +.half 0x7EDB,0x7EE1,0x7EE8,0x7EEE +.half 0x7EF5,0x7EFB,0x7F01,0x7F08 +.half 0x7F0E,0x7F14,0x7F1A,0x7F20 +.half 0x7F25,0x7F2B,0x7F31,0x7F36 +.half 0x7F3C,0x7F41,0x7F47,0x7F4C +.half 0x7F51,0x7F56,0x7F5B,0x7F60 +.half 0x7F65,0x7F6A,0x7F6F,0x7F74 +.half 0x7F78,0x7F7D,0x7F81,0x7F85 +.half 0x7F8A,0x7F8E,0x7F92,0x7F96 +.half 0x7F9A,0x7F9E,0x7FA2,0x7FA6 +.half 0x7FA9,0x7FAD,0x7FB0,0x7FB4 +.half 0x7FB7,0x7FBA,0x7FBE,0x7FC1 +.half 0x7FC4,0x7FC7,0x7FCA,0x7FCC +.half 0x7FCF,0x7FD2,0x7FD4,0x7FD7 +.half 0x7FD9,0x7FDC,0x7FDE,0x7FE0 +.half 0x7FE2,0x7FE4,0x7FE6,0x7FE8 +.half 0x7FEA,0x7FEC,0x7FED,0x7FEF +.half 0x7FF1,0x7FF2,0x7FF3,0x7FF5 +.half 0x7FF6,0x7FF7,0x7FF8,0x7FF9 +.half 0x7FFA,0x7FFB,0x7FFB,0x7FFC +.half 0x7FFD,0x7FFD,0x7FFE,0x7FFE +.half 0x7FFE,0x7FFE,0x7FFE,0x7FFF diff --git a/src/libultra/sirawdma.s b/src/libultra/sirawdma.s new file mode 100644 index 0000000..2c1df0a --- /dev/null +++ b/src/libultra/sirawdma.s @@ -0,0 +1,65 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawStartDma +/* 016AD0 70015ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016AD4 70015ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 016AD8 70015ED8 AFA40018 */ sw $a0, 0x18($sp) +/* 016ADC 70015EDC 0C007DC8 */ jal __osSiDeviceBusy +/* 016AE0 70015EE0 AFA5001C */ sw $a1, 0x1c($sp) +/* 016AE4 70015EE4 10400003 */ beqz $v0, .L70015EF4 +/* 016AE8 70015EE8 00000000 */ nop +/* 016AEC 70015EEC 1000001F */ b .L70015F6C +/* 016AF0 70015EF0 2402FFFF */ li $v0, -1 +.L70015EF4: +/* 016AF4 70015EF4 8FAE0018 */ lw $t6, 0x18($sp) +/* 016AF8 70015EF8 24010001 */ li $at, 1 +/* 016AFC 70015EFC 15C10004 */ bne $t6, $at, .L70015F10 +/* 016B00 70015F00 00000000 */ nop +/* 016B04 70015F04 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B08 70015F08 0C0042F4 */ jal osWritebackDCache +/* 016B0C 70015F0C 24050040 */ li $a1, 64 +.L70015F10: +/* 016B10 70015F10 0C003A2C */ jal osVirtualToPhysical +/* 016B14 70015F14 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B18 70015F18 3C0FA480 */ lui $t7, 0xa480 +/* 016B1C 70015F1C ADE20000 */ sw $v0, ($t7) +/* 016B20 70015F20 8FB80018 */ lw $t8, 0x18($sp) +/* 016B24 70015F24 17000006 */ bnez $t8, .L70015F40 +/* 016B28 70015F28 00000000 */ nop +/* 016B2C 70015F2C 3C191FC0 */ lui $t9, (0x1FC007C0 >> 16) # lui $t9, 0x1fc0 +/* 016B30 70015F30 373907C0 */ ori $t9, (0x1FC007C0 & 0xFFFF) # ori $t9, $t9, 0x7c0 +/* 016B34 70015F34 3C08A480 */ lui $t0, %hi(SI_PIF_ADDR_RD64B_REG) # $t0, 0xa480 +/* 016B38 70015F38 10000005 */ b .L70015F50 +/* 016B3C 70015F3C AD190004 */ sw $t9, %lo(SI_PIF_ADDR_RD64B_REG)($t0) +.L70015F40: +/* 016B40 70015F40 3C091FC0 */ lui $t1, (0x1FC007C0 >> 16) # lui $t1, 0x1fc0 +/* 016B44 70015F44 352907C0 */ ori $t1, (0x1FC007C0 & 0xFFFF) # ori $t1, $t1, 0x7c0 +/* 016B48 70015F48 3C0AA480 */ lui $t2, %hi(SI_PIF_ADDR_WR64B_REG) # $t2, 0xa480 +/* 016B4C 70015F4C AD490010 */ sw $t1, %lo(SI_PIF_ADDR_WR64B_REG)($t2) +.L70015F50: +/* 016B50 70015F50 8FAB0018 */ lw $t3, 0x18($sp) +/* 016B54 70015F54 15600004 */ bnez $t3, .L70015F68 +/* 016B58 70015F58 00000000 */ nop +/* 016B5C 70015F5C 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B60 70015F60 0C0042C8 */ jal osInvalDCache +/* 016B64 70015F64 24050040 */ li $a1, 64 +.L70015F68: +/* 016B68 70015F68 00001025 */ move $v0, $zero +.L70015F6C: +/* 016B6C 70015F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 016B70 70015F70 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016B74 70015F74 03E00008 */ jr $ra +/* 016B78 70015F78 00000000 */ nop + +/* 016B7C 70015F7C 00000000 */ nop diff --git a/src/libultra/sirawread.s b/src/libultra/sirawread.s new file mode 100644 index 0000000..ab7a7e2 --- /dev/null +++ b/src/libultra/sirawread.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawReadIo +/* 018740 70017B40 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 018744 70017B44 AFBF0014 */ sw $ra, 0x14($sp) +/* 018748 70017B48 AFA40018 */ sw $a0, 0x18($sp) +/* 01874C 70017B4C 0C007DC8 */ jal __osSiDeviceBusy +/* 018750 70017B50 AFA5001C */ sw $a1, 0x1c($sp) +/* 018754 70017B54 10400003 */ beqz $v0, .L70017B64 +/* 018758 70017B58 00000000 */ nop +/* 01875C 70017B5C 10000008 */ b .L70017B80 +/* 018760 70017B60 2402FFFF */ li $v0, -1 +.L70017B64: +/* 018764 70017B64 8FAE0018 */ lw $t6, 0x18($sp) +/* 018768 70017B68 3C01A000 */ lui $at, 0xa000 +/* 01876C 70017B6C 8FB9001C */ lw $t9, 0x1c($sp) +/* 018770 70017B70 01C17825 */ or $t7, $t6, $at +/* 018774 70017B74 8DF80000 */ lw $t8, ($t7) +/* 018778 70017B78 00001025 */ move $v0, $zero +/* 01877C 70017B7C AF380000 */ sw $t8, ($t9) +.L70017B80: +/* 018780 70017B80 8FBF0014 */ lw $ra, 0x14($sp) +/* 018784 70017B84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 018788 70017B88 03E00008 */ jr $ra +/* 01878C 70017B8C 00000000 */ nop diff --git a/src/libultra/sirawwrite.s b/src/libultra/sirawwrite.s new file mode 100644 index 0000000..447701b --- /dev/null +++ b/src/libultra/sirawwrite.s @@ -0,0 +1,37 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawWriteIo +/* 018790 70017B90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 018794 70017B94 AFBF0014 */ sw $ra, 0x14($sp) +/* 018798 70017B98 AFA40018 */ sw $a0, 0x18($sp) +/* 01879C 70017B9C 0C007DC8 */ jal __osSiDeviceBusy +/* 0187A0 70017BA0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0187A4 70017BA4 10400003 */ beqz $v0, .L70017BB4 +/* 0187A8 70017BA8 00000000 */ nop +/* 0187AC 70017BAC 10000007 */ b .L70017BCC +/* 0187B0 70017BB0 2402FFFF */ li $v0, -1 +.L70017BB4: +/* 0187B4 70017BB4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0187B8 70017BB8 8FAE001C */ lw $t6, 0x1c($sp) +/* 0187BC 70017BBC 3C01A000 */ lui $at, 0xa000 +/* 0187C0 70017BC0 01E1C025 */ or $t8, $t7, $at +/* 0187C4 70017BC4 00001025 */ move $v0, $zero +/* 0187C8 70017BC8 AF0E0000 */ sw $t6, ($t8) +.L70017BCC: +/* 0187CC 70017BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0187D0 70017BD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0187D4 70017BD4 03E00008 */ jr $ra +/* 0187D8 70017BD8 00000000 */ nop + +/* 0187DC 70017BDC 00000000 */ nop diff --git a/src/libultra/sl.s b/src/libultra/sl.s new file mode 100644 index 0000000..e7fe731 --- /dev/null +++ b/src/libultra/sl.s @@ -0,0 +1,78 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alUnlink +/* 00F690 7000EA90 8C820000 */ lw $v0, ($a0) +/* 00F694 7000EA94 50400004 */ beql $v0, $zero, .L7000EAA8 +/* 00F698 7000EA98 8C820004 */ lw $v0, 4($a0) +/* 00F69C 7000EA9C 8C8E0004 */ lw $t6, 4($a0) +/* 00F6A0 7000EAA0 AC4E0004 */ sw $t6, 4($v0) +/* 00F6A4 7000EAA4 8C820004 */ lw $v0, 4($a0) +.L7000EAA8: +/* 00F6A8 7000EAA8 10400003 */ beqz $v0, .L7000EAB8 +/* 00F6AC 7000EAAC 00000000 */ nop +/* 00F6B0 7000EAB0 8C8F0000 */ lw $t7, ($a0) +/* 00F6B4 7000EAB4 AC4F0000 */ sw $t7, ($v0) +.L7000EAB8: +/* 00F6B8 7000EAB8 03E00008 */ jr $ra +/* 00F6BC 7000EABC 00000000 */ nop + +glabel alLink +/* 00F6C0 7000EAC0 8CAE0000 */ lw $t6, ($a1) +/* 00F6C4 7000EAC4 AC850004 */ sw $a1, 4($a0) +/* 00F6C8 7000EAC8 AC8E0000 */ sw $t6, ($a0) +/* 00F6CC 7000EACC 8CA20000 */ lw $v0, ($a1) +/* 00F6D0 7000EAD0 10400002 */ beqz $v0, .L7000EADC +/* 00F6D4 7000EAD4 00000000 */ nop +/* 00F6D8 7000EAD8 AC440004 */ sw $a0, 4($v0) +.L7000EADC: +/* 00F6DC 7000EADC 03E00008 */ jr $ra +/* 00F6E0 7000EAE0 ACA40000 */ sw $a0, ($a1) + +glabel alClose +/* 00F6E4 7000EAE4 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 00F6E8 7000EAE8 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 00F6EC 7000EAEC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F6F0 7000EAF0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F6F4 7000EAF4 51C00006 */ beql $t6, $zero, .L7000EB10 +/* 00F6F8 7000EAF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F6FC 7000EAFC 0C006438 */ jal alSynDelete +/* 00F700 7000EB00 00000000 */ nop +/* 00F704 7000EB04 3C018002 */ lui $at, %hi(alGlobals) +/* 00F708 7000EB08 AC2076E0 */ sw $zero, %lo(alGlobals)($at) +/* 00F70C 7000EB0C 8FBF0014 */ lw $ra, 0x14($sp) +.L7000EB10: +/* 00F710 7000EB10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F714 7000EB14 03E00008 */ jr $ra +/* 00F718 7000EB18 00000000 */ nop + +glabel alInit +/* 00F71C 7000EB1C 3C028002 */ lui $v0, %hi(alGlobals) +/* 00F720 7000EB20 244276E0 */ addiu $v0, %lo(alGlobals) # addiu $v0, $v0, 0x76e0 +/* 00F724 7000EB24 8C4E0000 */ lw $t6, ($v0) +/* 00F728 7000EB28 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F72C 7000EB2C AFBF0014 */ sw $ra, 0x14($sp) +/* 00F730 7000EB30 55C00004 */ bnezl $t6, .L7000EB44 +/* 00F734 7000EB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F738 7000EB38 0C003CE8 */ jal alSynNew +/* 00F73C 7000EB3C AC440000 */ sw $a0, ($v0) +/* 00F740 7000EB40 8FBF0014 */ lw $ra, 0x14($sp) +.L7000EB44: +/* 00F744 7000EB44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F748 7000EB48 03E00008 */ jr $ra +/* 00F74C 7000EB4C 00000000 */ nop + +.section .data +glabel alGlobals + .word 0 +.align 4 + + + diff --git a/src/libultra/sp.s b/src/libultra/sp.s new file mode 100644 index 0000000..048a37d --- /dev/null +++ b/src/libultra/sp.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpDeviceBusy +/* 019BC0 70018FC0 3C0EA404 */ lui $t6, %hi(SP_STATUS_REG) # $t6, 0xa404 +/* 019BC4 70018FC4 8DC40010 */ lw $a0, %lo(SP_STATUS_REG)($t6) +/* 019BC8 70018FC8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019BCC 70018FCC 308F001C */ andi $t7, $a0, 0x1c +/* 019BD0 70018FD0 11E00003 */ beqz $t7, .L70018FE0 +/* 019BD4 70018FD4 00000000 */ nop +/* 019BD8 70018FD8 10000002 */ b .L70018FE4 +/* 019BDC 70018FDC 24020001 */ li $v0, 1 +.L70018FE0: +/* 019BE0 70018FE0 00001025 */ move $v0, $zero +.L70018FE4: +/* 019BE4 70018FE4 03E00008 */ jr $ra +/* 019BE8 70018FE8 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/spgetstat.s b/src/libultra/spgetstat.s new file mode 100644 index 0000000..91534ab --- /dev/null +++ b/src/libultra/spgetstat.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpGetStatus +/* 019AD0 70018ED0 3C0EA404 */ lui $t6, 0xa404 +/* 019AD4 70018ED4 03E00008 */ jr $ra +/* 019AD8 70018ED8 8DC20010 */ lw $v0, 0x10($t6) + + diff --git a/src/libultra/sprawdma.s b/src/libultra/sprawdma.s new file mode 100644 index 0000000..f7fe54e --- /dev/null +++ b/src/libultra/sprawdma.s @@ -0,0 +1,54 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpRawStartDma +/* 019B30 70018F30 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019B34 70018F34 AFBF0014 */ sw $ra, 0x14($sp) +/* 019B38 70018F38 AFA40018 */ sw $a0, 0x18($sp) +/* 019B3C 70018F3C AFA5001C */ sw $a1, 0x1c($sp) +/* 019B40 70018F40 AFA60020 */ sw $a2, 0x20($sp) +/* 019B44 70018F44 0C0063F0 */ jal __osSpDeviceBusy +/* 019B48 70018F48 AFA70024 */ sw $a3, 0x24($sp) +/* 019B4C 70018F4C 10400003 */ beqz $v0, .L70018F5C +/* 019B50 70018F50 00000000 */ nop +/* 019B54 70018F54 10000015 */ b .L70018FAC +/* 019B58 70018F58 2402FFFF */ li $v0, -1 +.L70018F5C: +/* 019B5C 70018F5C 8FAE001C */ lw $t6, 0x1c($sp) +/* 019B60 70018F60 3C0FA404 */ lui $t7, 0xa404 +/* 019B64 70018F64 ADEE0000 */ sw $t6, ($t7) +/* 019B68 70018F68 0C003A2C */ jal osVirtualToPhysical +/* 019B6C 70018F6C 8FA40020 */ lw $a0, 0x20($sp) +/* 019B70 70018F70 3C18A404 */ lui $t8, %hi(SP_DRAM_ADDR_REG) # $t8, 0xa404 +/* 019B74 70018F74 AF020004 */ sw $v0, %lo(SP_DRAM_ADDR_REG)($t8) +/* 019B78 70018F78 8FB90018 */ lw $t9, 0x18($sp) +/* 019B7C 70018F7C 17200006 */ bnez $t9, .L70018F98 +/* 019B80 70018F80 00000000 */ nop +/* 019B84 70018F84 8FA80024 */ lw $t0, 0x24($sp) +/* 019B88 70018F88 3C0AA404 */ lui $t2, %hi(SP_WR_LEN_REG) # $t2, 0xa404 +/* 019B8C 70018F8C 2509FFFF */ addiu $t1, $t0, -1 +/* 019B90 70018F90 10000005 */ b .L70018FA8 +/* 019B94 70018F94 AD49000C */ sw $t1, %lo(SP_WR_LEN_REG)($t2) +.L70018F98: +/* 019B98 70018F98 8FAB0024 */ lw $t3, 0x24($sp) +/* 019B9C 70018F9C 3C0DA404 */ lui $t5, %hi(SP_RD_LEN_REG) # $t5, 0xa404 +/* 019BA0 70018FA0 256CFFFF */ addiu $t4, $t3, -1 +/* 019BA4 70018FA4 ADAC0008 */ sw $t4, %lo(SP_RD_LEN_REG)($t5) +.L70018FA8: +/* 019BA8 70018FA8 00001025 */ move $v0, $zero +.L70018FAC: +/* 019BAC 70018FAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 019BB0 70018FB0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019BB4 70018FB4 03E00008 */ jr $ra +/* 019BB8 70018FB8 00000000 */ nop + diff --git a/src/libultra/spsetpc.s b/src/libultra/spsetpc.s new file mode 100644 index 0000000..3f2fd56 --- /dev/null +++ b/src/libultra/spsetpc.s @@ -0,0 +1,30 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpSetPc +/* 019AF0 70018EF0 3C0EA404 */ lui $t6, %hi(SP_STATUS_REG) # $t6, 0xa404 +/* 019AF4 70018EF4 8DC50010 */ lw $a1, %lo(SP_STATUS_REG)($t6) +/* 019AF8 70018EF8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019AFC 70018EFC 30AF0001 */ andi $t7, $a1, 1 +/* 019B00 70018F00 15E00003 */ bnez $t7, .L70018F10 +/* 019B04 70018F04 00000000 */ nop +/* 019B08 70018F08 10000004 */ b .L70018F1C +/* 019B0C 70018F0C 2402FFFF */ li $v0, -1 +.L70018F10: +/* 019B10 70018F10 3C18A408 */ lui $t8, 0xa408 +/* 019B14 70018F14 AF040000 */ sw $a0, ($t8) +/* 019B18 70018F18 00001025 */ move $v0, $zero +.L70018F1C: +/* 019B1C 70018F1C 03E00008 */ jr $ra +/* 019B20 70018F20 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/spsetstat.s b/src/libultra/spsetstat.s new file mode 100644 index 0000000..bcad11d --- /dev/null +++ b/src/libultra/spsetstat.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpSetStatus +/* 019AE0 70018EE0 3C0EA404 */ lui $t6, 0xa404 +/* 019AE4 70018EE4 03E00008 */ jr $ra +/* 019AE8 70018EE8 ADC40010 */ sw $a0, 0x10($t6) + diff --git a/src/libultra/sptask.s b/src/libultra/sptask.s new file mode 100644 index 0000000..a780917 --- /dev/null +++ b/src/libultra/sptask.s @@ -0,0 +1,248 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .bss + +glabel tp +glabel type +.word 0 +glabel flags +.word 0 +glabel t_ucode_boot +.word 0 +glabel t_ucode_boot_size +.word 0 +glabel t_ucode +.word 0 +glabel t_ucode_size +.word 0 +glabel t_ucode_data +.word 0 +glabel t_ucode_data_size +.word 0 +glabel t_dram_stack +.word 0 +glabel t_dram_stack_size +.word 0 +glabel t_output_buff +.word 0 +glabel t_output_buff_size +.word 0 +glabel t_data_ptr +.word 0 +glabel t_data_size +.word 0 +glabel t_yield_data_ptr +.word 0 +glabel t_yield_data_size +.word 0 + + + + +.section .text +glabel _VirtualToPhysicalTask +/* 00F0F0 7000E4F0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F0F4 7000E4F4 3C0E8006 */ lui $t6, %hi(tp) +/* 00F0F8 7000E4F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F0FC 7000E4FC AFA40020 */ sw $a0, 0x20($sp) +/* 00F100 7000E500 25CE6A90 */ addiu $t6, %lo(tp) # addiu $t6, $t6, 0x6a90 +/* 00F104 7000E504 AFAE001C */ sw $t6, 0x1c($sp) +/* 00F108 7000E508 01C02825 */ move $a1, $t6 +/* 00F10C 7000E50C 8FA40020 */ lw $a0, 0x20($sp) +/* 00F110 7000E510 0C003E5C */ jal bcopy +/* 00F114 7000E514 24060040 */ li $a2, 64 +/* 00F118 7000E518 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F11C 7000E51C 8DF80010 */ lw $t8, 0x10($t7) +/* 00F120 7000E520 13000005 */ beqz $t8, .L7000E538 +/* 00F124 7000E524 00000000 */ nop +/* 00F128 7000E528 0C003A2C */ jal osVirtualToPhysical +/* 00F12C 7000E52C 03002025 */ move $a0, $t8 +/* 00F130 7000E530 8FB9001C */ lw $t9, 0x1c($sp) +/* 00F134 7000E534 AF220010 */ sw $v0, 0x10($t9) +.L7000E538: +/* 00F138 7000E538 8FA8001C */ lw $t0, 0x1c($sp) +/* 00F13C 7000E53C 8D090018 */ lw $t1, 0x18($t0) +/* 00F140 7000E540 11200005 */ beqz $t1, .L7000E558 +/* 00F144 7000E544 00000000 */ nop +/* 00F148 7000E548 0C003A2C */ jal osVirtualToPhysical +/* 00F14C 7000E54C 01202025 */ move $a0, $t1 +/* 00F150 7000E550 8FAA001C */ lw $t2, 0x1c($sp) +/* 00F154 7000E554 AD420018 */ sw $v0, 0x18($t2) +.L7000E558: +/* 00F158 7000E558 8FAB001C */ lw $t3, 0x1c($sp) +/* 00F15C 7000E55C 8D6C0020 */ lw $t4, 0x20($t3) +/* 00F160 7000E560 11800005 */ beqz $t4, .L7000E578 +/* 00F164 7000E564 00000000 */ nop +/* 00F168 7000E568 0C003A2C */ jal osVirtualToPhysical +/* 00F16C 7000E56C 01802025 */ move $a0, $t4 +/* 00F170 7000E570 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F174 7000E574 ADA20020 */ sw $v0, 0x20($t5) +.L7000E578: +/* 00F178 7000E578 8FAE001C */ lw $t6, 0x1c($sp) +/* 00F17C 7000E57C 8DCF0028 */ lw $t7, 0x28($t6) +/* 00F180 7000E580 11E00005 */ beqz $t7, .L7000E598 +/* 00F184 7000E584 00000000 */ nop +/* 00F188 7000E588 0C003A2C */ jal osVirtualToPhysical +/* 00F18C 7000E58C 01E02025 */ move $a0, $t7 +/* 00F190 7000E590 8FB8001C */ lw $t8, 0x1c($sp) +/* 00F194 7000E594 AF020028 */ sw $v0, 0x28($t8) +.L7000E598: +/* 00F198 7000E598 8FB9001C */ lw $t9, 0x1c($sp) +/* 00F19C 7000E59C 8F28002C */ lw $t0, 0x2c($t9) +/* 00F1A0 7000E5A0 11000005 */ beqz $t0, .L7000E5B8 +/* 00F1A4 7000E5A4 00000000 */ nop +/* 00F1A8 7000E5A8 0C003A2C */ jal osVirtualToPhysical +/* 00F1AC 7000E5AC 01002025 */ move $a0, $t0 +/* 00F1B0 7000E5B0 8FA9001C */ lw $t1, 0x1c($sp) +/* 00F1B4 7000E5B4 AD22002C */ sw $v0, 0x2c($t1) +.L7000E5B8: +/* 00F1B8 7000E5B8 8FAA001C */ lw $t2, 0x1c($sp) +/* 00F1BC 7000E5BC 8D4B0030 */ lw $t3, 0x30($t2) +/* 00F1C0 7000E5C0 11600005 */ beqz $t3, .L7000E5D8 +/* 00F1C4 7000E5C4 00000000 */ nop +/* 00F1C8 7000E5C8 0C003A2C */ jal osVirtualToPhysical +/* 00F1CC 7000E5CC 01602025 */ move $a0, $t3 +/* 00F1D0 7000E5D0 8FAC001C */ lw $t4, 0x1c($sp) +/* 00F1D4 7000E5D4 AD820030 */ sw $v0, 0x30($t4) +.L7000E5D8: +/* 00F1D8 7000E5D8 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F1DC 7000E5DC 8DAE0038 */ lw $t6, 0x38($t5) +/* 00F1E0 7000E5E0 11C00005 */ beqz $t6, .L7000E5F8 +/* 00F1E4 7000E5E4 00000000 */ nop +/* 00F1E8 7000E5E8 0C003A2C */ jal osVirtualToPhysical +/* 00F1EC 7000E5EC 01C02025 */ move $a0, $t6 +/* 00F1F0 7000E5F0 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F1F4 7000E5F4 ADE20038 */ sw $v0, 0x38($t7) +.L7000E5F8: +/* 00F1F8 7000E5F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F1FC 7000E5FC 8FA2001C */ lw $v0, 0x1c($sp) +/* 00F200 7000E600 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F204 7000E604 03E00008 */ jr $ra +/* 00F208 7000E608 00000000 */ nop + +glabel osSpTaskLoad +/* 00F20C 7000E60C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F210 7000E610 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F214 7000E614 AFA40020 */ sw $a0, 0x20($sp) +/* 00F218 7000E618 0C00393C */ jal _VirtualToPhysicalTask +/* 00F21C 7000E61C 8FA40020 */ lw $a0, 0x20($sp) +/* 00F220 7000E620 AFA2001C */ sw $v0, 0x1c($sp) +/* 00F224 7000E624 8FAE001C */ lw $t6, 0x1c($sp) +/* 00F228 7000E628 8DCF0004 */ lw $t7, 4($t6) +/* 00F22C 7000E62C 31F80001 */ andi $t8, $t7, 1 +/* 00F230 7000E630 1300000B */ beqz $t8, .L7000E660 +/* 00F234 7000E634 00000000 */ nop +/* 00F238 7000E638 8DD90038 */ lw $t9, 0x38($t6) +/* 00F23C 7000E63C 2401FFFE */ li $at, -2 +/* 00F240 7000E640 ADD90018 */ sw $t9, 0x18($t6) +/* 00F244 7000E644 8FA8001C */ lw $t0, 0x1c($sp) +/* 00F248 7000E648 8D09003C */ lw $t1, 0x3c($t0) +/* 00F24C 7000E64C AD09001C */ sw $t1, 0x1c($t0) +/* 00F250 7000E650 8FAA0020 */ lw $t2, 0x20($sp) +/* 00F254 7000E654 8D4B0004 */ lw $t3, 4($t2) +/* 00F258 7000E658 01616024 */ and $t4, $t3, $at +/* 00F25C 7000E65C AD4C0004 */ sw $t4, 4($t2) +.L7000E660: +/* 00F260 7000E660 8FA4001C */ lw $a0, 0x1c($sp) +/* 00F264 7000E664 0C0042F4 */ jal osWritebackDCache +/* 00F268 7000E668 24050040 */ li $a1, 64 +/* 00F26C 7000E66C 0C0063B8 */ jal __osSpSetStatus +/* 00F270 7000E670 24042B00 */ li $a0, 11008 +/* 00F274 7000E674 3C040400 */ lui $a0, (0x04001000 >> 16) # lui $a0, 0x400 +/* 00F278 7000E678 0C0063BC */ jal __osSpSetPc +/* 00F27C 7000E67C 34841000 */ ori $a0, (0x04001000 & 0xFFFF) # ori $a0, $a0, 0x1000 +/* 00F280 7000E680 2401FFFF */ li $at, -1 +/* 00F284 7000E684 14410007 */ bne $v0, $at, .L7000E6A4 +/* 00F288 7000E688 00000000 */ nop +.L7000E68C: +/* 00F28C 7000E68C 3C040400 */ lui $a0, (0x04001000 >> 16) # lui $a0, 0x400 +/* 00F290 7000E690 0C0063BC */ jal __osSpSetPc +/* 00F294 7000E694 34841000 */ ori $a0, (0x04001000 & 0xFFFF) # ori $a0, $a0, 0x1000 +/* 00F298 7000E698 2401FFFF */ li $at, -1 +/* 00F29C 7000E69C 1041FFFB */ beq $v0, $at, .L7000E68C +/* 00F2A0 7000E6A0 00000000 */ nop +.L7000E6A4: +/* 00F2A4 7000E6A4 3C050400 */ lui $a1, (0x04000FC0 >> 16) # lui $a1, 0x400 +/* 00F2A8 7000E6A8 34A50FC0 */ ori $a1, (0x04000FC0 & 0xFFFF) # ori $a1, $a1, 0xfc0 +/* 00F2AC 7000E6AC 24040001 */ li $a0, 1 +/* 00F2B0 7000E6B0 8FA6001C */ lw $a2, 0x1c($sp) +/* 00F2B4 7000E6B4 0C0063CC */ jal __osSpRawStartDma +/* 00F2B8 7000E6B8 24070040 */ li $a3, 64 +/* 00F2BC 7000E6BC 2401FFFF */ li $at, -1 +/* 00F2C0 7000E6C0 1441000A */ bne $v0, $at, .L7000E6EC +/* 00F2C4 7000E6C4 00000000 */ nop +.L7000E6C8: +/* 00F2C8 7000E6C8 3C050400 */ lui $a1, (0x04000FC0 >> 16) # lui $a1, 0x400 +/* 00F2CC 7000E6CC 34A50FC0 */ ori $a1, (0x04000FC0 & 0xFFFF) # ori $a1, $a1, 0xfc0 +/* 00F2D0 7000E6D0 24040001 */ li $a0, 1 +/* 00F2D4 7000E6D4 8FA6001C */ lw $a2, 0x1c($sp) +/* 00F2D8 7000E6D8 0C0063CC */ jal __osSpRawStartDma +/* 00F2DC 7000E6DC 24070040 */ li $a3, 64 +/* 00F2E0 7000E6E0 2401FFFF */ li $at, -1 +/* 00F2E4 7000E6E4 1041FFF8 */ beq $v0, $at, .L7000E6C8 +/* 00F2E8 7000E6E8 00000000 */ nop +.L7000E6EC: +/* 00F2EC 7000E6EC 0C0063F0 */ jal __osSpDeviceBusy +/* 00F2F0 7000E6F0 00000000 */ nop +/* 00F2F4 7000E6F4 10400005 */ beqz $v0, .L7000E70C +/* 00F2F8 7000E6F8 00000000 */ nop +.L7000E6FC: +/* 00F2FC 7000E6FC 0C0063F0 */ jal __osSpDeviceBusy +/* 00F300 7000E700 00000000 */ nop +/* 00F304 7000E704 1440FFFD */ bnez $v0, .L7000E6FC +/* 00F308 7000E708 00000000 */ nop +.L7000E70C: +/* 00F30C 7000E70C 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F310 7000E710 3C050400 */ lui $a1, (0x04001000 >> 16) # lui $a1, 0x400 +/* 00F314 7000E714 34A51000 */ ori $a1, (0x04001000 & 0xFFFF) # ori $a1, $a1, 0x1000 +/* 00F318 7000E718 24040001 */ li $a0, 1 +/* 00F31C 7000E71C 8DA60008 */ lw $a2, 8($t5) +/* 00F320 7000E720 0C0063CC */ jal __osSpRawStartDma +/* 00F324 7000E724 8DA7000C */ lw $a3, 0xc($t5) +/* 00F328 7000E728 2401FFFF */ li $at, -1 +/* 00F32C 7000E72C 1441000B */ bne $v0, $at, .L7000E75C +/* 00F330 7000E730 00000000 */ nop +.L7000E734: +/* 00F334 7000E734 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F338 7000E738 3C050400 */ lui $a1, (0x04001000 >> 16) # lui $a1, 0x400 +/* 00F33C 7000E73C 34A51000 */ ori $a1, (0x04001000 & 0xFFFF) # ori $a1, $a1, 0x1000 +/* 00F340 7000E740 24040001 */ li $a0, 1 +/* 00F344 7000E744 8DE60008 */ lw $a2, 8($t7) +/* 00F348 7000E748 0C0063CC */ jal __osSpRawStartDma +/* 00F34C 7000E74C 8DE7000C */ lw $a3, 0xc($t7) +/* 00F350 7000E750 2401FFFF */ li $at, -1 +/* 00F354 7000E754 1041FFF7 */ beq $v0, $at, .L7000E734 +/* 00F358 7000E758 00000000 */ nop +.L7000E75C: +/* 00F35C 7000E75C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F360 7000E760 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F364 7000E764 03E00008 */ jr $ra +/* 00F368 7000E768 00000000 */ nop + +glabel osSpTaskStartGo +/* 00F36C 7000E76C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F370 7000E770 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F374 7000E774 0C0063F0 */ jal __osSpDeviceBusy +/* 00F378 7000E778 AFA40018 */ sw $a0, 0x18($sp) +/* 00F37C 7000E77C 10400005 */ beqz $v0, .L7000E794 +/* 00F380 7000E780 00000000 */ nop +.L7000E784: +/* 00F384 7000E784 0C0063F0 */ jal __osSpDeviceBusy +/* 00F388 7000E788 00000000 */ nop +/* 00F38C 7000E78C 1440FFFD */ bnez $v0, .L7000E784 +/* 00F390 7000E790 00000000 */ nop +.L7000E794: +/* 00F394 7000E794 0C0063B8 */ jal __osSpSetStatus +/* 00F398 7000E798 24040125 */ li $a0, 293 +/* 00F39C 7000E79C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F3A0 7000E7A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F3A4 7000E7A4 03E00008 */ jr $ra +/* 00F3A8 7000E7A8 00000000 */ nop diff --git a/src/libultra/sptaskyield.s b/src/libultra/sptaskyield.s new file mode 100644 index 0000000..1721c3c --- /dev/null +++ b/src/libultra/sptaskyield.s @@ -0,0 +1,18 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSpTaskYield +/* 00F460 7000E860 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F464 7000E864 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F468 7000E868 0C0063B8 */ jal __osSpSetStatus +/* 00F46C 7000E86C 24040400 */ li $a0, 1024 +/* 00F470 7000E870 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F474 7000E874 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F478 7000E878 03E00008 */ jr $ra +/* 00F47C 7000E87C 00000000 */ nop diff --git a/src/libultra/sptaskyielded.s b/src/libultra/sptaskyielded.s new file mode 100644 index 0000000..7ba8d94 --- /dev/null +++ b/src/libultra/sptaskyielded.s @@ -0,0 +1,46 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osSpTaskYielded +/* 00EF40 7000E340 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00EF44 7000E344 AFBF0014 */ sw $ra, 0x14($sp) +/* 00EF48 7000E348 0C0063B4 */ jal __osSpGetStatus +/* 00EF4C 7000E34C AFA40020 */ sw $a0, 0x20($sp) +/* 00EF50 7000E350 AFA2001C */ sw $v0, 0x1c($sp) +/* 00EF54 7000E354 8FAE001C */ lw $t6, 0x1c($sp) +/* 00EF58 7000E358 31CF0100 */ andi $t7, $t6, 0x100 +/* 00EF5C 7000E35C 11E00004 */ beqz $t7, .L7000E370 +/* 00EF60 7000E360 00000000 */ nop +/* 00EF64 7000E364 24180001 */ li $t8, 1 +/* 00EF68 7000E368 10000002 */ b .L7000E374 +/* 00EF6C 7000E36C AFB80018 */ sw $t8, 0x18($sp) +.L7000E370: +/* 00EF70 7000E370 AFA00018 */ sw $zero, 0x18($sp) +.L7000E374: +/* 00EF74 7000E374 8FB9001C */ lw $t9, 0x1c($sp) +/* 00EF78 7000E378 33280080 */ andi $t0, $t9, 0x80 +/* 00EF7C 7000E37C 1100000B */ beqz $t0, .L7000E3AC +/* 00EF80 7000E380 00000000 */ nop +/* 00EF84 7000E384 8FA90020 */ lw $t1, 0x20($sp) +/* 00EF88 7000E388 8FAB0018 */ lw $t3, 0x18($sp) +/* 00EF8C 7000E38C 2401FFFD */ li $at, -3 +/* 00EF90 7000E390 8D2A0004 */ lw $t2, 4($t1) +/* 00EF94 7000E394 014B6025 */ or $t4, $t2, $t3 +/* 00EF98 7000E398 AD2C0004 */ sw $t4, 4($t1) +/* 00EF9C 7000E39C 8FAD0020 */ lw $t5, 0x20($sp) +/* 00EFA0 7000E3A0 8DAE0004 */ lw $t6, 4($t5) +/* 00EFA4 7000E3A4 01C17824 */ and $t7, $t6, $at +/* 00EFA8 7000E3A8 ADAF0004 */ sw $t7, 4($t5) +.L7000E3AC: +/* 00EFAC 7000E3AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00EFB0 7000E3B0 8FA20018 */ lw $v0, 0x18($sp) +/* 00EFB4 7000E3B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00EFB8 7000E3B8 03E00008 */ jr $ra +/* 00EFBC 7000E3BC 00000000 */ nop diff --git a/src/libultra/sqrtf.s b/src/libultra/sqrtf.s new file mode 100644 index 0000000..61ce882 --- /dev/null +++ b/src/libultra/sqrtf.s @@ -0,0 +1,17 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel sqrtf +/* 0203E0 7001F7E0 03E00008 */ jr $ra +/* 0203E4 7001F7E4 46006004 */ sqrt.s $f0, $f12 + diff --git a/src/libultra/startthread.s b/src/libultra/startthread.s new file mode 100644 index 0000000..0cc8be4 --- /dev/null +++ b/src/libultra/startthread.s @@ -0,0 +1,100 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osStartThread +/* 00E180 7000D580 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E184 7000D584 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E188 7000D588 AFA40028 */ sw $a0, 0x28($sp) +/* 00E18C 7000D58C AFB10018 */ sw $s1, 0x18($sp) +/* 00E190 7000D590 0C00617C */ jal __osDisableInt +/* 00E194 7000D594 AFB00014 */ sw $s0, 0x14($sp) +/* 00E198 7000D598 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E19C 7000D59C 24010001 */ li $at, 1 +/* 00E1A0 7000D5A0 00408025 */ move $s0, $v0 +/* 00E1A4 7000D5A4 95D10010 */ lhu $s1, 0x10($t6) +/* 00E1A8 7000D5A8 1221000C */ beq $s1, $at, .L7000D5DC +/* 00E1AC 7000D5AC 24010008 */ li $at, 8 +/* 00E1B0 7000D5B0 1621002A */ bne $s1, $at, .L7000D65C +/* 00E1B4 7000D5B4 00000000 */ nop +/* 00E1B8 7000D5B8 8FB80028 */ lw $t8, 0x28($sp) +/* 00E1BC 7000D5BC 240F0002 */ li $t7, 2 +/* 00E1C0 7000D5C0 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E1C4 7000D5C4 A70F0010 */ sh $t7, 0x10($t8) +/* 00E1C8 7000D5C8 8FA50028 */ lw $a1, 0x28($sp) +/* 00E1CC 7000D5CC 0C00422B */ jal __osEnqueueThread +/* 00E1D0 7000D5D0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E1D4 7000D5D4 10000021 */ b .L7000D65C +/* 00E1D8 7000D5D8 00000000 */ nop +.L7000D5DC: +/* 00E1DC 7000D5DC 8FB90028 */ lw $t9, 0x28($sp) +/* 00E1E0 7000D5E0 8F280008 */ lw $t0, 8($t9) +/* 00E1E4 7000D5E4 11000005 */ beqz $t0, .L7000D5FC +/* 00E1E8 7000D5E8 00000000 */ nop +/* 00E1EC 7000D5EC 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 00E1F0 7000D5F0 25297728 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, 0x7728 +/* 00E1F4 7000D5F4 1509000A */ bne $t0, $t1, .L7000D620 +/* 00E1F8 7000D5F8 00000000 */ nop +.L7000D5FC: +/* 00E1FC 7000D5FC 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E200 7000D600 240A0002 */ li $t2, 2 +/* 00E204 7000D604 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E208 7000D608 A56A0010 */ sh $t2, 0x10($t3) +/* 00E20C 7000D60C 8FA50028 */ lw $a1, 0x28($sp) +/* 00E210 7000D610 0C00422B */ jal __osEnqueueThread +/* 00E214 7000D614 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E218 7000D618 10000010 */ b .L7000D65C +/* 00E21C 7000D61C 00000000 */ nop +.L7000D620: +/* 00E220 7000D620 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E224 7000D624 240C0008 */ li $t4, 8 +/* 00E228 7000D628 A5AC0010 */ sh $t4, 0x10($t5) +/* 00E22C 7000D62C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E230 7000D630 8DC40008 */ lw $a0, 8($t6) +/* 00E234 7000D634 0C00422B */ jal __osEnqueueThread +/* 00E238 7000D638 01C02825 */ move $a1, $t6 +/* 00E23C 7000D63C 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E240 7000D640 0C00423D */ jal __osPopThread +/* 00E244 7000D644 8DE40008 */ lw $a0, 8($t7) +/* 00E248 7000D648 00408825 */ move $s1, $v0 +/* 00E24C 7000D64C 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E250 7000D650 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E254 7000D654 0C00422B */ jal __osEnqueueThread +/* 00E258 7000D658 02202825 */ move $a1, $s1 +.L7000D65C: +/* 00E25C 7000D65C 3C188002 */ lui $t8, %hi(__osRunningThread) +/* 00E260 7000D660 8F187730 */ lw $t8, %lo(__osRunningThread)($t8) +/* 00E264 7000D664 17000005 */ bnez $t8, .L7000D67C +/* 00E268 7000D668 00000000 */ nop +/* 00E26C 7000D66C 0C004241 */ jal __osDispatchThread +/* 00E270 7000D670 00000000 */ nop +/* 00E274 7000D674 1000000F */ b .L7000D6B4 +/* 00E278 7000D678 00000000 */ nop +.L7000D67C: +/* 00E27C 7000D67C 3C198002 */ lui $t9, %hi(__osRunningThread) +/* 00E280 7000D680 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 00E284 7000D684 8D297728 */ lw $t1, %lo(__osRunQueue)($t1) +/* 00E288 7000D688 8F397730 */ lw $t9, %lo(__osRunningThread)($t9) +/* 00E28C 7000D68C 8D2A0004 */ lw $t2, 4($t1) +/* 00E290 7000D690 8F280004 */ lw $t0, 4($t9) +/* 00E294 7000D694 010A082A */ slt $at, $t0, $t2 +/* 00E298 7000D698 10200006 */ beqz $at, .L7000D6B4 +/* 00E29C 7000D69C 00000000 */ nop +/* 00E2A0 7000D6A0 240B0002 */ li $t3, 2 +/* 00E2A4 7000D6A4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E2A8 7000D6A8 A72B0010 */ sh $t3, 0x10($t9) +/* 00E2AC 7000D6AC 0C0041EB */ jal __osEnqueueAndYield +/* 00E2B0 7000D6B0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L7000D6B4: +/* 00E2B4 7000D6B4 0C006184 */ jal __osRestoreInt +/* 00E2B8 7000D6B8 02002025 */ move $a0, $s0 +/* 00E2BC 7000D6BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E2C0 7000D6C0 8FB00014 */ lw $s0, 0x14($sp) +/* 00E2C4 7000D6C4 8FB10018 */ lw $s1, 0x18($sp) +/* 00E2C8 7000D6C8 03E00008 */ jr $ra +/* 00E2CC 7000D6CC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/stopthread.s b/src/libultra/stopthread.s new file mode 100644 index 0000000..e2ac2eb --- /dev/null +++ b/src/libultra/stopthread.s @@ -0,0 +1,63 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osStopThread +/* 00E340 7000D740 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00E344 7000D744 AFBF0024 */ sw $ra, 0x24($sp) +/* 00E348 7000D748 AFA40038 */ sw $a0, 0x38($sp) +/* 00E34C 7000D74C AFB20020 */ sw $s2, 0x20($sp) +/* 00E350 7000D750 AFB1001C */ sw $s1, 0x1c($sp) +/* 00E354 7000D754 0C00617C */ jal __osDisableInt +/* 00E358 7000D758 AFB00018 */ sw $s0, 0x18($sp) +/* 00E35C 7000D75C 8FAE0038 */ lw $t6, 0x38($sp) +/* 00E360 7000D760 00408025 */ move $s0, $v0 +/* 00E364 7000D764 15C00003 */ bnez $t6, .L7000D774 +/* 00E368 7000D768 00000000 */ nop +/* 00E36C 7000D76C 10000003 */ b .L7000D77C +/* 00E370 7000D770 24110004 */ li $s1, 4 +.L7000D774: +/* 00E374 7000D774 8FAF0038 */ lw $t7, 0x38($sp) +/* 00E378 7000D778 95F10010 */ lhu $s1, 0x10($t7) +.L7000D77C: +/* 00E37C 7000D77C 02209025 */ move $s2, $s1 +/* 00E380 7000D780 24010002 */ li $at, 2 +/* 00E384 7000D784 1241000F */ beq $s2, $at, .L7000D7C4 +/* 00E388 7000D788 24010004 */ li $at, 4 +/* 00E38C 7000D78C 12410005 */ beq $s2, $at, .L7000D7A4 +/* 00E390 7000D790 24010008 */ li $at, 8 +/* 00E394 7000D794 1241000B */ beq $s2, $at, .L7000D7C4 +/* 00E398 7000D798 00000000 */ nop +/* 00E39C 7000D79C 10000010 */ b .L7000D7E0 +/* 00E3A0 7000D7A0 00000000 */ nop +.L7000D7A4: +/* 00E3A4 7000D7A4 3C198002 */ lui $t9, %hi(__osRunningThread) +/* 00E3A8 7000D7A8 8F397730 */ lw $t9, %lo(__osRunningThread)($t9) +/* 00E3AC 7000D7AC 24180001 */ li $t8, 1 +/* 00E3B0 7000D7B0 00002025 */ move $a0, $zero +/* 00E3B4 7000D7B4 0C0041EB */ jal __osEnqueueAndYield +/* 00E3B8 7000D7B8 A7380010 */ sh $t8, 0x10($t9) +/* 00E3BC 7000D7BC 10000008 */ b .L7000D7E0 +/* 00E3C0 7000D7C0 00000000 */ nop +.L7000D7C4: +/* 00E3C4 7000D7C4 8FA90038 */ lw $t1, 0x38($sp) +/* 00E3C8 7000D7C8 24080001 */ li $t0, 1 +/* 00E3CC 7000D7CC A5280010 */ sh $t0, 0x10($t1) +/* 00E3D0 7000D7D0 8FAA0038 */ lw $t2, 0x38($sp) +/* 00E3D4 7000D7D4 8D440008 */ lw $a0, 8($t2) +/* 00E3D8 7000D7D8 0C0042A4 */ jal __osDequeueThread +/* 00E3DC 7000D7DC 01402825 */ move $a1, $t2 +.L7000D7E0: +/* 00E3E0 7000D7E0 0C006184 */ jal __osRestoreInt +/* 00E3E4 7000D7E4 02002025 */ move $a0, $s0 +/* 00E3E8 7000D7E8 8FBF0024 */ lw $ra, 0x24($sp) +/* 00E3EC 7000D7EC 8FB00018 */ lw $s0, 0x18($sp) +/* 00E3F0 7000D7F0 8FB1001C */ lw $s1, 0x1c($sp) +/* 00E3F4 7000D7F4 8FB20020 */ lw $s2, 0x20($sp) +/* 00E3F8 7000D7F8 03E00008 */ jr $ra +/* 00E3FC 7000D7FC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/libultra/string.s b/src/libultra/string.s new file mode 100644 index 0000000..bef06d1 --- /dev/null +++ b/src/libultra/string.s @@ -0,0 +1,59 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel memcpy +/* 014450 70013850 00801025 */ move $v0, $a0 +/* 014454 70013854 10C00007 */ beqz $a2, .L70013874 +/* 014458 70013858 00A01825 */ move $v1, $a1 +.L7001385C: +/* 01445C 7001385C 906E0000 */ lbu $t6, ($v1) +/* 014460 70013860 24C6FFFF */ addiu $a2, $a2, -1 +/* 014464 70013864 24420001 */ addiu $v0, $v0, 1 +/* 014468 70013868 24630001 */ addiu $v1, $v1, 1 +/* 01446C 7001386C 14C0FFFB */ bnez $a2, .L7001385C +/* 014470 70013870 A04EFFFF */ sb $t6, -1($v0) +.L70013874: +/* 014474 70013874 03E00008 */ jr $ra +/* 014478 70013878 00801025 */ move $v0, $a0 + +glabel strlen +/* 01447C 7001387C 908E0000 */ lbu $t6, ($a0) +/* 014480 70013880 00801825 */ move $v1, $a0 +/* 014484 70013884 11C00005 */ beqz $t6, .L7001389C +/* 014488 70013888 00000000 */ nop +/* 01448C 7001388C 906F0001 */ lbu $t7, 1($v1) +.L70013890: +/* 014490 70013890 24630001 */ addiu $v1, $v1, 1 +/* 014494 70013894 55E0FFFE */ bnezl $t7, .L70013890 +/* 014498 70013898 906F0001 */ lbu $t7, 1($v1) +.L7001389C: +/* 01449C 7001389C 03E00008 */ jr $ra +/* 0144A0 700138A0 00641023 */ subu $v0, $v1, $a0 + +glabel strchr +/* 0144A4 700138A4 90830000 */ lbu $v1, ($a0) +/* 0144A8 700138A8 30AE00FF */ andi $t6, $a1, 0xff +/* 0144AC 700138AC 30A200FF */ andi $v0, $a1, 0xff +/* 0144B0 700138B0 51C3000A */ beql $t6, $v1, .L700138DC +/* 0144B4 700138B4 00801025 */ move $v0, $a0 +.L700138B8: +/* 0144B8 700138B8 54600004 */ bnezl $v1, .L700138CC +/* 0144BC 700138BC 90830001 */ lbu $v1, 1($a0) +/* 0144C0 700138C0 03E00008 */ jr $ra +/* 0144C4 700138C4 00001025 */ move $v0, $zero + +/* 0144C8 700138C8 90830001 */ lbu $v1, 1($a0) +.L700138CC: +/* 0144CC 700138CC 24840001 */ addiu $a0, $a0, 1 +/* 0144D0 700138D0 1443FFF9 */ bne $v0, $v1, .L700138B8 +/* 0144D4 700138D4 00000000 */ nop +/* 0144D8 700138D8 00801025 */ move $v0, $a0 +.L700138DC: +/* 0144DC 700138DC 03E00008 */ jr $ra +/* 0144E0 700138E0 00000000 */ nop diff --git a/src/libultra/synaddplayer.s b/src/libultra/synaddplayer.s new file mode 100644 index 0000000..f385877 --- /dev/null +++ b/src/libultra/synaddplayer.s @@ -0,0 +1,30 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynAddPlayer +/* 013D20 70013120 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 013D24 70013124 AFBF0014 */ sw $ra, 0x14($sp) +/* 013D28 70013128 00803025 */ move $a2, $a0 +/* 013D2C 7001312C AFA60018 */ sw $a2, 0x18($sp) +/* 013D30 70013130 24040001 */ li $a0, 1 +/* 013D34 70013134 0C00374C */ jal osSetIntMask +/* 013D38 70013138 AFA5001C */ sw $a1, 0x1c($sp) +/* 013D3C 7001313C 8FA60018 */ lw $a2, 0x18($sp) +/* 013D40 70013140 8FA5001C */ lw $a1, 0x1c($sp) +/* 013D44 70013144 00402025 */ move $a0, $v0 +/* 013D48 70013148 8CCE0020 */ lw $t6, 0x20($a2) +/* 013D4C 7001314C ACAE0010 */ sw $t6, 0x10($a1) +/* 013D50 70013150 8CCF0000 */ lw $t7, ($a2) +/* 013D54 70013154 ACAF0000 */ sw $t7, ($a1) +/* 013D58 70013158 0C00374C */ jal osSetIntMask +/* 013D5C 7001315C ACC50000 */ sw $a1, ($a2) +/* 013D60 70013160 8FBF0014 */ lw $ra, 0x14($sp) +/* 013D64 70013164 27BD0018 */ addiu $sp, $sp, 0x18 +/* 013D68 70013168 03E00008 */ jr $ra +/* 013D6C 7001316C 00000000 */ nop diff --git a/src/libultra/synallocfx.s b/src/libultra/synallocfx.s new file mode 100644 index 0000000..d7b7cef --- /dev/null +++ b/src/libultra/synallocfx.s @@ -0,0 +1,53 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynAllocFX +/* 01A4C0 700198C0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01A4C4 700198C4 00054400 */ sll $t0, $a1, 0x10 +/* 01A4C8 700198C8 00087403 */ sra $t6, $t0, 0x10 +/* 01A4CC 700198CC AFB10018 */ sw $s1, 0x18($sp) +/* 01A4D0 700198D0 000E8880 */ sll $s1, $t6, 2 +/* 01A4D4 700198D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 01A4D8 700198D8 AFB00014 */ sw $s0, 0x14($sp) +/* 01A4DC 700198DC AFA50024 */ sw $a1, 0x24($sp) +/* 01A4E0 700198E0 022E8821 */ addu $s1, $s1, $t6 +/* 01A4E4 700198E4 8C8F0034 */ lw $t7, 0x34($a0) +/* 01A4E8 700198E8 00118880 */ sll $s1, $s1, 2 +/* 01A4EC 700198EC 022E8823 */ subu $s1, $s1, $t6 +/* 01A4F0 700198F0 00808025 */ move $s0, $a0 +/* 01A4F4 700198F4 00118880 */ sll $s1, $s1, 2 +/* 01A4F8 700198F8 00C02825 */ move $a1, $a2 +/* 01A4FC 700198FC 01F12021 */ addu $a0, $t7, $s1 +/* 01A500 70019900 24840020 */ addiu $a0, $a0, 0x20 +/* 01A504 70019904 0C006520 */ jal alFxNew +/* 01A508 70019908 00E03025 */ move $a2, $a3 +/* 01A50C 7001990C 8E180034 */ lw $t8, 0x34($s0) +/* 01A510 70019910 24050001 */ li $a1, 1 +/* 01A514 70019914 03113021 */ addu $a2, $t8, $s1 +/* 01A518 70019918 0C008070 */ jal alFxParam +/* 01A51C 7001991C 24C40020 */ addiu $a0, $a2, 0x20 +/* 01A520 70019920 8E190034 */ lw $t9, 0x34($s0) +/* 01A524 70019924 8E040030 */ lw $a0, 0x30($s0) +/* 01A528 70019928 24050002 */ li $a1, 2 +/* 01A52C 7001992C 03313021 */ addu $a2, $t9, $s1 +/* 01A530 70019930 0C006658 */ jal alMainBusParam +/* 01A534 70019934 24C60020 */ addiu $a2, $a2, 0x20 +/* 01A538 70019938 8E0A0034 */ lw $t2, 0x34($s0) +/* 01A53C 7001993C 8FBF001C */ lw $ra, 0x1c($sp) +/* 01A540 70019940 8FB00014 */ lw $s0, 0x14($sp) +/* 01A544 70019944 01511021 */ addu $v0, $t2, $s1 +/* 01A548 70019948 8FB10018 */ lw $s1, 0x18($sp) +/* 01A54C 7001994C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01A550 70019950 03E00008 */ jr $ra +/* 01A554 70019954 24420020 */ addiu $v0, $v0, 0x20 + diff --git a/src/libultra/synallocvoice.s b/src/libultra/synallocvoice.s new file mode 100644 index 0000000..2a27082 --- /dev/null +++ b/src/libultra/synallocvoice.s @@ -0,0 +1,160 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel _allocatePVoice +/* 013D70 70013170 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013D74 70013174 AFBF0014 */ sw $ra, 0x14($sp) +/* 013D78 70013178 AFA60030 */ sw $a2, 0x30($sp) +/* 013D7C 7001317C 8C870014 */ lw $a3, 0x14($a0) +/* 013D80 70013180 00067400 */ sll $t6, $a2, 0x10 +/* 013D84 70013184 000E3403 */ sra $a2, $t6, 0x10 +/* 013D88 70013188 00804025 */ move $t0, $a0 +/* 013D8C 7001318C 10E0000D */ beqz $a3, .L700131C4 +/* 013D90 70013190 00001825 */ move $v1, $zero +/* 013D94 70013194 ACA70000 */ sw $a3, ($a1) +/* 013D98 70013198 AFA80028 */ sw $t0, 0x28($sp) +/* 013D9C 7001319C AFA70024 */ sw $a3, 0x24($sp) +/* 013DA0 700131A0 AFA0001C */ sw $zero, 0x1c($sp) +/* 013DA4 700131A4 0C003AA4 */ jal alUnlink +/* 013DA8 700131A8 00E02025 */ move $a0, $a3 +/* 013DAC 700131AC 8FA80028 */ lw $t0, 0x28($sp) +/* 013DB0 700131B0 8FA40024 */ lw $a0, 0x24($sp) +/* 013DB4 700131B4 0C003AB0 */ jal alLink +/* 013DB8 700131B8 2505000C */ addiu $a1, $t0, 0xc +/* 013DBC 700131BC 10000021 */ b .L70013244 +/* 013DC0 700131C0 8FA3001C */ lw $v1, 0x1c($sp) +.L700131C4: +/* 013DC4 700131C4 8D070004 */ lw $a3, 4($t0) +/* 013DC8 700131C8 10E0000C */ beqz $a3, .L700131FC +/* 013DCC 700131CC 00E02025 */ move $a0, $a3 +/* 013DD0 700131D0 ACA70000 */ sw $a3, ($a1) +/* 013DD4 700131D4 AFA80028 */ sw $t0, 0x28($sp) +/* 013DD8 700131D8 AFA70024 */ sw $a3, 0x24($sp) +/* 013DDC 700131DC 0C003AA4 */ jal alUnlink +/* 013DE0 700131E0 AFA3001C */ sw $v1, 0x1c($sp) +/* 013DE4 700131E4 8FA80028 */ lw $t0, 0x28($sp) +/* 013DE8 700131E8 8FA40024 */ lw $a0, 0x24($sp) +/* 013DEC 700131EC 0C003AB0 */ jal alLink +/* 013DF0 700131F0 2505000C */ addiu $a1, $t0, 0xc +/* 013DF4 700131F4 10000013 */ b .L70013244 +/* 013DF8 700131F8 8FA3001C */ lw $v1, 0x1c($sp) +.L700131FC: +/* 013DFC 700131FC 8D07000C */ lw $a3, 0xc($t0) +/* 013E00 70013200 50E00011 */ beql $a3, $zero, .L70013248 +/* 013E04 70013204 8FBF0014 */ lw $ra, 0x14($sp) +/* 013E08 70013208 8CF80008 */ lw $t8, 8($a3) +.L7001320C: +/* 013E0C 7001320C 87190016 */ lh $t9, 0x16($t8) +/* 013E10 70013210 00D9082A */ slt $at, $a2, $t9 +/* 013E14 70013214 54200009 */ bnezl $at, .L7001323C +/* 013E18 70013218 8CE70000 */ lw $a3, ($a3) +/* 013E1C 7001321C 8CE900D8 */ lw $t1, 0xd8($a3) +/* 013E20 70013220 55200006 */ bnezl $t1, .L7001323C +/* 013E24 70013224 8CE70000 */ lw $a3, ($a3) +/* 013E28 70013228 ACA70000 */ sw $a3, ($a1) +/* 013E2C 7001322C 8CEA0008 */ lw $t2, 8($a3) +/* 013E30 70013230 24030001 */ li $v1, 1 +/* 013E34 70013234 85460016 */ lh $a2, 0x16($t2) +/* 013E38 70013238 8CE70000 */ lw $a3, ($a3) +.L7001323C: +/* 013E3C 7001323C 54E0FFF3 */ bnezl $a3, .L7001320C +/* 013E40 70013240 8CF80008 */ lw $t8, 8($a3) +.L70013244: +/* 013E44 70013244 8FBF0014 */ lw $ra, 0x14($sp) +.L70013248: +/* 013E48 70013248 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013E4C 7001324C 00601025 */ move $v0, $v1 +/* 013E50 70013250 03E00008 */ jr $ra +/* 013E54 70013254 00000000 */ nop + +glabel alSynAllocVoice +/* 013E58 70013258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013E5C 7001325C AFBF001C */ sw $ra, 0x1c($sp) +/* 013E60 70013260 AFB00018 */ sw $s0, 0x18($sp) +/* 013E64 70013264 AFA40030 */ sw $a0, 0x30($sp) +/* 013E68 70013268 AFA0002C */ sw $zero, 0x2c($sp) +/* 013E6C 7001326C 84CE0000 */ lh $t6, ($a2) +/* 013E70 70013270 00A08025 */ move $s0, $a1 +/* 013E74 70013274 A4AE0016 */ sh $t6, 0x16($a1) +/* 013E78 70013278 90CF0004 */ lbu $t7, 4($a2) +/* 013E7C 7001327C ACA0000C */ sw $zero, 0xc($a1) +/* 013E80 70013280 A4AF001A */ sh $t7, 0x1a($a1) +/* 013E84 70013284 84D80002 */ lh $t8, 2($a2) +/* 013E88 70013288 A4A00014 */ sh $zero, 0x14($a1) +/* 013E8C 7001328C ACA00008 */ sw $zero, 8($a1) +/* 013E90 70013290 A4B80018 */ sh $t8, 0x18($a1) +/* 013E94 70013294 84C60000 */ lh $a2, ($a2) +/* 013E98 70013298 8FA40030 */ lw $a0, 0x30($sp) +/* 013E9C 7001329C 0C004C5C */ jal _allocatePVoice +/* 013EA0 700132A0 27A5002C */ addiu $a1, $sp, 0x2c +/* 013EA4 700132A4 8FB9002C */ lw $t9, 0x2c($sp) +/* 013EA8 700132A8 53200035 */ beql $t9, $zero, .L70013380 +/* 013EAC 700132AC 8FA2002C */ lw $v0, 0x2c($sp) +/* 013EB0 700132B0 1040002C */ beqz $v0, .L70013364 +/* 013EB4 700132B4 8F24000C */ lw $a0, 0xc($t9) +/* 013EB8 700132B8 24080200 */ li $t0, 512 +/* 013EBC 700132BC AF2800D8 */ sw $t0, 0xd8($t9) +/* 013EC0 700132C0 8FA9002C */ lw $t1, 0x2c($sp) +/* 013EC4 700132C4 8D2A0008 */ lw $t2, 8($t1) +/* 013EC8 700132C8 AD400008 */ sw $zero, 8($t2) +/* 013ECC 700132CC 0C003C34 */ jal __allocParam +/* 013ED0 700132D0 AFA40028 */ sw $a0, 0x28($sp) +/* 013ED4 700132D4 8FAB0030 */ lw $t3, 0x30($sp) +/* 013ED8 700132D8 8FA40028 */ lw $a0, 0x28($sp) +/* 013EDC 700132DC 240D000B */ li $t5, 11 +/* 013EE0 700132E0 8D6C001C */ lw $t4, 0x1c($t3) +/* 013EE4 700132E4 A44D0008 */ sh $t5, 8($v0) +/* 013EE8 700132E8 AC40000C */ sw $zero, 0xc($v0) +/* 013EEC 700132EC AC4C0004 */ sw $t4, 4($v0) +/* 013EF0 700132F0 8FAE002C */ lw $t6, 0x2c($sp) +/* 013EF4 700132F4 24050003 */ li $a1, 3 +/* 013EF8 700132F8 00403025 */ move $a2, $v0 +/* 013EFC 700132FC 8DCF00D8 */ lw $t7, 0xd8($t6) +/* 013F00 70013300 25F8FFC0 */ addiu $t8, $t7, -0x40 +/* 013F04 70013304 AC580010 */ sw $t8, 0x10($v0) +/* 013F08 70013308 8C990008 */ lw $t9, 8($a0) +/* 013F0C 7001330C 0320F809 */ jalr $t9 +/* 013F10 70013310 00000000 */ nop +/* 013F14 70013314 0C003C34 */ jal __allocParam +/* 013F18 70013318 00000000 */ nop +/* 013F1C 7001331C 8FA40028 */ lw $a0, 0x28($sp) +/* 013F20 70013320 10400012 */ beqz $v0, .L7001336C +/* 013F24 70013324 00403025 */ move $a2, $v0 +/* 013F28 70013328 8FA80030 */ lw $t0, 0x30($sp) +/* 013F2C 7001332C 8FAA002C */ lw $t2, 0x2c($sp) +/* 013F30 70013330 240D000F */ li $t5, 15 +/* 013F34 70013334 8D09001C */ lw $t1, 0x1c($t0) +/* 013F38 70013338 8D4B00D8 */ lw $t3, 0xd8($t2) +/* 013F3C 7001333C A44D0008 */ sh $t5, 8($v0) +/* 013F40 70013340 AC400000 */ sw $zero, ($v0) +/* 013F44 70013344 012B6021 */ addu $t4, $t1, $t3 +/* 013F48 70013348 AC4C0004 */ sw $t4, 4($v0) +/* 013F4C 7001334C 8C990008 */ lw $t9, 8($a0) +/* 013F50 70013350 24050003 */ li $a1, 3 +/* 013F54 70013354 0320F809 */ jalr $t9 +/* 013F58 70013358 00000000 */ nop +/* 013F5C 7001335C 10000004 */ b .L70013370 +/* 013F60 70013360 8FAF002C */ lw $t7, 0x2c($sp) +.L70013364: +/* 013F64 70013364 8FAE002C */ lw $t6, 0x2c($sp) +/* 013F68 70013368 ADC000D8 */ sw $zero, 0xd8($t6) +.L7001336C: +/* 013F6C 7001336C 8FAF002C */ lw $t7, 0x2c($sp) +.L70013370: +/* 013F70 70013370 ADF00008 */ sw $s0, 8($t7) +/* 013F74 70013374 8FB8002C */ lw $t8, 0x2c($sp) +/* 013F78 70013378 AE180008 */ sw $t8, 8($s0) +/* 013F7C 7001337C 8FA2002C */ lw $v0, 0x2c($sp) +.L70013380: +/* 013F80 70013380 8FBF001C */ lw $ra, 0x1c($sp) +/* 013F84 70013384 8FB00018 */ lw $s0, 0x18($sp) +/* 013F88 70013388 0002402B */ sltu $t0, $zero, $v0 +/* 013F8C 7001338C 01001025 */ move $v0, $t0 +/* 013F90 70013390 03E00008 */ jr $ra +/* 013F94 70013394 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/src/libultra/syndelete.s b/src/libultra/syndelete.s new file mode 100644 index 0000000..275755d --- /dev/null +++ b/src/libultra/syndelete.s @@ -0,0 +1,17 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynDelete +/* 019CE0 700190E0 03E00008 */ jr $ra +/* 019CE4 700190E4 AC800000 */ sw $zero, ($a0) + diff --git a/src/libultra/synfreevoice.s b/src/libultra/synfreevoice.s new file mode 100644 index 0000000..40b7d92 --- /dev/null +++ b/src/libultra/synfreevoice.s @@ -0,0 +1,58 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynFreeVoice +/* 014310 70013710 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014314 70013714 AFBF0014 */ sw $ra, 0x14($sp) +/* 014318 70013718 8CA60008 */ lw $a2, 8($a1) +/* 01431C 7001371C 00804025 */ move $t0, $a0 +/* 014320 70013720 00A03825 */ move $a3, $a1 +/* 014324 70013724 50C00023 */ beql $a2, $zero, .L700137B4 +/* 014328 70013728 8FBF0014 */ lw $ra, 0x14($sp) +/* 01432C 7001372C 8CCE00D8 */ lw $t6, 0xd8($a2) +/* 014330 70013730 51C0001A */ beql $t6, $zero, .L7001379C +/* 014334 70013734 01002025 */ move $a0, $t0 +/* 014338 70013738 AFA5001C */ sw $a1, 0x1c($sp) +/* 01433C 7001373C 0C003C34 */ jal __allocParam +/* 014340 70013740 AFA40018 */ sw $a0, 0x18($sp) +/* 014344 70013744 8FA7001C */ lw $a3, 0x1c($sp) +/* 014348 70013748 8FA80018 */ lw $t0, 0x18($sp) +/* 01434C 7001374C 10400018 */ beqz $v0, .L700137B0 +/* 014350 70013750 00403025 */ move $a2, $v0 +/* 014354 70013754 8CF80008 */ lw $t8, 8($a3) +/* 014358 70013758 8D0F001C */ lw $t7, 0x1c($t0) +/* 01435C 7001375C 24050003 */ li $a1, 3 +/* 014360 70013760 8F1900D8 */ lw $t9, 0xd8($t8) +/* 014364 70013764 A4400008 */ sh $zero, 8($v0) +/* 014368 70013768 01F94821 */ addu $t1, $t7, $t9 +/* 01436C 7001376C AC490004 */ sw $t1, 4($v0) +/* 014370 70013770 8CEA0008 */ lw $t2, 8($a3) +/* 014374 70013774 AC4A000C */ sw $t2, 0xc($v0) +/* 014378 70013778 8CEB0008 */ lw $t3, 8($a3) +/* 01437C 7001377C 8D64000C */ lw $a0, 0xc($t3) +/* 014380 70013780 AFA7001C */ sw $a3, 0x1c($sp) +/* 014384 70013784 8C990008 */ lw $t9, 8($a0) +/* 014388 70013788 0320F809 */ jalr $t9 +/* 01438C 7001378C 00000000 */ nop +/* 014390 70013790 10000006 */ b .L700137AC +/* 014394 70013794 8FA7001C */ lw $a3, 0x1c($sp) +/* 014398 70013798 01002025 */ move $a0, $t0 +.L7001379C: +/* 01439C 7001379C 00C02825 */ move $a1, $a2 +/* 0143A0 700137A0 0C003C08 */ jal _freePVoice +/* 0143A4 700137A4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0143A8 700137A8 8FA7001C */ lw $a3, 0x1c($sp) +.L700137AC: +/* 0143AC 700137AC ACE00008 */ sw $zero, 8($a3) +.L700137B0: +/* 0143B0 700137B0 8FBF0014 */ lw $ra, 0x14($sp) +.L700137B4: +/* 0143B4 700137B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0143B8 700137B8 03E00008 */ jr $ra +/* 0143BC 700137BC 00000000 */ nop diff --git a/src/libultra/synsetfxmix.s b/src/libultra/synsetfxmix.s new file mode 100644 index 0000000..66b9f1b --- /dev/null +++ b/src/libultra/synsetfxmix.s @@ -0,0 +1,51 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetFXMix +/* 0141F0 700135F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0141F4 700135F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0141F8 700135F8 AFA40018 */ sw $a0, 0x18($sp) +/* 0141FC 700135FC AFA60020 */ sw $a2, 0x20($sp) +/* 014200 70013600 8CAE0008 */ lw $t6, 8($a1) +/* 014204 70013604 51C0001C */ beql $t6, $zero, .L70013678 +/* 014208 70013608 8FBF0014 */ lw $ra, 0x14($sp) +/* 01420C 7001360C 0C003C34 */ jal __allocParam +/* 014210 70013610 AFA5001C */ sw $a1, 0x1c($sp) +/* 014214 70013614 8FA7001C */ lw $a3, 0x1c($sp) +/* 014218 70013618 10400016 */ beqz $v0, .L70013674 +/* 01421C 7001361C 00403025 */ move $a2, $v0 +/* 014220 70013620 8FAF0018 */ lw $t7, 0x18($sp) +/* 014224 70013624 8CF90008 */ lw $t9, 8($a3) +/* 014228 70013628 240A0010 */ li $t2, 16 +/* 01422C 7001362C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014230 70013630 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014234 70013634 A44A0008 */ sh $t2, 8($v0) +/* 014238 70013638 03084821 */ addu $t1, $t8, $t0 +/* 01423C 7001363C AC490004 */ sw $t1, 4($v0) +/* 014240 70013640 93A30023 */ lbu $v1, 0x23($sp) +/* 014244 70013644 04610003 */ bgez $v1, .L70013654 +/* 014248 70013648 00035823 */ negu $t3, $v1 +/* 01424C 7001364C 10000002 */ b .L70013658 +/* 014250 70013650 AC4B000C */ sw $t3, 0xc($v0) +.L70013654: +/* 014254 70013654 AC43000C */ sw $v1, 0xc($v0) +.L70013658: +/* 014258 70013658 ACC00000 */ sw $zero, ($a2) +/* 01425C 7001365C 8CEC0008 */ lw $t4, 8($a3) +/* 014260 70013660 24050003 */ li $a1, 3 +/* 014264 70013664 8D84000C */ lw $a0, 0xc($t4) +/* 014268 70013668 8C990008 */ lw $t9, 8($a0) +/* 01426C 7001366C 0320F809 */ jalr $t9 +/* 014270 70013670 00000000 */ nop +.L70013674: +/* 014274 70013674 8FBF0014 */ lw $ra, 0x14($sp) +.L70013678: +/* 014278 70013678 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01427C 7001367C 03E00008 */ jr $ra +/* 014280 70013680 00000000 */ nop diff --git a/src/libultra/synsetpan.s b/src/libultra/synsetpan.s new file mode 100644 index 0000000..11b2318 --- /dev/null +++ b/src/libultra/synsetpan.s @@ -0,0 +1,45 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetPan +/* 0140D0 700134D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0140D4 700134D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0140D8 700134D8 AFA40018 */ sw $a0, 0x18($sp) +/* 0140DC 700134DC AFA60020 */ sw $a2, 0x20($sp) +/* 0140E0 700134E0 8CAE0008 */ lw $t6, 8($a1) +/* 0140E4 700134E4 51C00018 */ beql $t6, $zero, .L70013548 +/* 0140E8 700134E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0140EC 700134EC 0C003C34 */ jal __allocParam +/* 0140F0 700134F0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0140F4 700134F4 8FA7001C */ lw $a3, 0x1c($sp) +/* 0140F8 700134F8 10400012 */ beqz $v0, .L70013544 +/* 0140FC 700134FC 00403025 */ move $a2, $v0 +/* 014100 70013500 8FAF0018 */ lw $t7, 0x18($sp) +/* 014104 70013504 8CF90008 */ lw $t9, 8($a3) +/* 014108 70013508 240A000C */ li $t2, 12 +/* 01410C 7001350C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014110 70013510 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014114 70013514 A44A0008 */ sh $t2, 8($v0) +/* 014118 70013518 24050003 */ li $a1, 3 +/* 01411C 7001351C 03084821 */ addu $t1, $t8, $t0 +/* 014120 70013520 AC490004 */ sw $t1, 4($v0) +/* 014124 70013524 93AB0023 */ lbu $t3, 0x23($sp) +/* 014128 70013528 AC400000 */ sw $zero, ($v0) +/* 01412C 7001352C AC4B000C */ sw $t3, 0xc($v0) +/* 014130 70013530 8CEC0008 */ lw $t4, 8($a3) +/* 014134 70013534 8D84000C */ lw $a0, 0xc($t4) +/* 014138 70013538 8C990008 */ lw $t9, 8($a0) +/* 01413C 7001353C 0320F809 */ jalr $t9 +/* 014140 70013540 00000000 */ nop +.L70013544: +/* 014144 70013544 8FBF0014 */ lw $ra, 0x14($sp) +.L70013548: +/* 014148 70013548 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01414C 7001354C 03E00008 */ jr $ra +/* 014150 70013550 00000000 */ nop diff --git a/src/libultra/synsetpitch.s b/src/libultra/synsetpitch.s new file mode 100644 index 0000000..4c2a977 --- /dev/null +++ b/src/libultra/synsetpitch.s @@ -0,0 +1,45 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetPitch +/* 014160 70013560 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014164 70013564 AFBF0014 */ sw $ra, 0x14($sp) +/* 014168 70013568 AFA40018 */ sw $a0, 0x18($sp) +/* 01416C 7001356C AFA60020 */ sw $a2, 0x20($sp) +/* 014170 70013570 8CAE0008 */ lw $t6, 8($a1) +/* 014174 70013574 51C00018 */ beql $t6, $zero, .L700135D8 +/* 014178 70013578 8FBF0014 */ lw $ra, 0x14($sp) +/* 01417C 7001357C 0C003C34 */ jal __allocParam +/* 014180 70013580 AFA5001C */ sw $a1, 0x1c($sp) +/* 014184 70013584 8FA7001C */ lw $a3, 0x1c($sp) +/* 014188 70013588 10400012 */ beqz $v0, .L700135D4 +/* 01418C 7001358C 00403025 */ move $a2, $v0 +/* 014190 70013590 8FAF0018 */ lw $t7, 0x18($sp) +/* 014194 70013594 8CF90008 */ lw $t9, 8($a3) +/* 014198 70013598 240A0007 */ li $t2, 7 +/* 01419C 7001359C 8DF8001C */ lw $t8, 0x1c($t7) +/* 0141A0 700135A0 8F2800D8 */ lw $t0, 0xd8($t9) +/* 0141A4 700135A4 A44A0008 */ sh $t2, 8($v0) +/* 0141A8 700135A8 24050003 */ li $a1, 3 +/* 0141AC 700135AC 03084821 */ addu $t1, $t8, $t0 +/* 0141B0 700135B0 AC490004 */ sw $t1, 4($v0) +/* 0141B4 700135B4 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0141B8 700135B8 AC400000 */ sw $zero, ($v0) +/* 0141BC 700135BC E444000C */ swc1 $f4, 0xc($v0) +/* 0141C0 700135C0 8CEB0008 */ lw $t3, 8($a3) +/* 0141C4 700135C4 8D64000C */ lw $a0, 0xc($t3) +/* 0141C8 700135C8 8C990008 */ lw $t9, 8($a0) +/* 0141CC 700135CC 0320F809 */ jalr $t9 +/* 0141D0 700135D0 00000000 */ nop +.L700135D4: +/* 0141D4 700135D4 8FBF0014 */ lw $ra, 0x14($sp) +.L700135D8: +/* 0141D8 700135D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0141DC 700135DC 03E00008 */ jr $ra +/* 0141E0 700135E0 00000000 */ nop diff --git a/src/libultra/synsetpriority.s b/src/libultra/synsetpriority.s new file mode 100644 index 0000000..238dced --- /dev/null +++ b/src/libultra/synsetpriority.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynSetPriority +/* 021740 70020B40 AFA40000 */ sw $a0, ($sp) +/* 021744 70020B44 AFA60008 */ sw $a2, 8($sp) +/* 021748 70020B48 03E00008 */ jr $ra +/* 02174C 70020B4C A4A60016 */ sh $a2, 0x16($a1) diff --git a/src/libultra/synsetvol.s b/src/libultra/synsetvol.s new file mode 100644 index 0000000..2f53d51 --- /dev/null +++ b/src/libultra/synsetvol.s @@ -0,0 +1,51 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetVol +/* 013FA0 700133A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 013FA4 700133A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 013FA8 700133A8 AFA50024 */ sw $a1, 0x24($sp) +/* 013FAC 700133AC AFA60028 */ sw $a2, 0x28($sp) +/* 013FB0 700133B0 AFA7002C */ sw $a3, 0x2c($sp) +/* 013FB4 700133B4 8CAF0008 */ lw $t7, 8($a1) +/* 013FB8 700133B8 51E0001D */ beql $t7, $zero, .L70013430 +/* 013FBC 700133BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 013FC0 700133C0 0C003C34 */ jal __allocParam +/* 013FC4 700133C4 AFA40020 */ sw $a0, 0x20($sp) +/* 013FC8 700133C8 10400018 */ beqz $v0, .L7001342C +/* 013FCC 700133CC 8FA40020 */ lw $a0, 0x20($sp) +/* 013FD0 700133D0 8FB90024 */ lw $t9, 0x24($sp) +/* 013FD4 700133D4 8C98001C */ lw $t8, 0x1c($a0) +/* 013FD8 700133D8 240B000B */ li $t3, 11 +/* 013FDC 700133DC 8F280008 */ lw $t0, 8($t9) +/* 013FE0 700133E0 8D0900D8 */ lw $t1, 0xd8($t0) +/* 013FE4 700133E4 A44B0008 */ sh $t3, 8($v0) +/* 013FE8 700133E8 03095021 */ addu $t2, $t8, $t1 +/* 013FEC 700133EC AC4A0004 */ sw $t2, 4($v0) +/* 013FF0 700133F0 87AC002A */ lh $t4, 0x2a($sp) +/* 013FF4 700133F4 AC4C000C */ sw $t4, 0xc($v0) +/* 013FF8 700133F8 AFA2001C */ sw $v0, 0x1c($sp) +/* 013FFC 700133FC 0C003BF2 */ jal _timeToSamples +/* 014000 70013400 8FA5002C */ lw $a1, 0x2c($sp) +/* 014004 70013404 8FA6001C */ lw $a2, 0x1c($sp) +/* 014008 70013408 24050003 */ li $a1, 3 +/* 01400C 7001340C ACC20010 */ sw $v0, 0x10($a2) +/* 014010 70013410 ACC00000 */ sw $zero, ($a2) +/* 014014 70013414 8FAD0024 */ lw $t5, 0x24($sp) +/* 014018 70013418 8DAE0008 */ lw $t6, 8($t5) +/* 01401C 7001341C 8DC4000C */ lw $a0, 0xc($t6) +/* 014020 70013420 8C990008 */ lw $t9, 8($a0) +/* 014024 70013424 0320F809 */ jalr $t9 +/* 014028 70013428 00000000 */ nop +.L7001342C: +/* 01402C 7001342C 8FBF0014 */ lw $ra, 0x14($sp) +.L70013430: +/* 014030 70013430 27BD0020 */ addiu $sp, $sp, 0x20 +/* 014034 70013434 03E00008 */ jr $ra +/* 014038 70013438 00000000 */ nop diff --git a/src/libultra/synstartvoice.s b/src/libultra/synstartvoice.s new file mode 100644 index 0000000..9922f3b --- /dev/null +++ b/src/libultra/synstartvoice.s @@ -0,0 +1,47 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynStartVoice +/* 014040 70013440 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014044 70013444 AFBF0014 */ sw $ra, 0x14($sp) +/* 014048 70013448 AFA40018 */ sw $a0, 0x18($sp) +/* 01404C 7001344C AFA60020 */ sw $a2, 0x20($sp) +/* 014050 70013450 8CAE0008 */ lw $t6, 8($a1) +/* 014054 70013454 51C0001A */ beql $t6, $zero, .L700134C0 +/* 014058 70013458 8FBF0014 */ lw $ra, 0x14($sp) +/* 01405C 7001345C 0C003C34 */ jal __allocParam +/* 014060 70013460 AFA5001C */ sw $a1, 0x1c($sp) +/* 014064 70013464 8FA7001C */ lw $a3, 0x1c($sp) +/* 014068 70013468 10400014 */ beqz $v0, .L700134BC +/* 01406C 7001346C 00403025 */ move $a2, $v0 +/* 014070 70013470 8FAF0018 */ lw $t7, 0x18($sp) +/* 014074 70013474 8CF90008 */ lw $t9, 8($a3) +/* 014078 70013478 240A000E */ li $t2, 14 +/* 01407C 7001347C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014080 70013480 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014084 70013484 A44A0008 */ sh $t2, 8($v0) +/* 014088 70013488 24050003 */ li $a1, 3 +/* 01408C 7001348C 03084821 */ addu $t1, $t8, $t0 +/* 014090 70013490 AC490004 */ sw $t1, 4($v0) +/* 014094 70013494 8FAB0020 */ lw $t3, 0x20($sp) +/* 014098 70013498 AC400000 */ sw $zero, ($v0) +/* 01409C 7001349C AC4B000C */ sw $t3, 0xc($v0) +/* 0140A0 700134A0 84EC001A */ lh $t4, 0x1a($a3) +/* 0140A4 700134A4 A44C000A */ sh $t4, 0xa($v0) +/* 0140A8 700134A8 8CED0008 */ lw $t5, 8($a3) +/* 0140AC 700134AC 8DA4000C */ lw $a0, 0xc($t5) +/* 0140B0 700134B0 8C990008 */ lw $t9, 8($a0) +/* 0140B4 700134B4 0320F809 */ jalr $t9 +/* 0140B8 700134B8 00000000 */ nop +.L700134BC: +/* 0140BC 700134BC 8FBF0014 */ lw $ra, 0x14($sp) +.L700134C0: +/* 0140C0 700134C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0140C4 700134C4 03E00008 */ jr $ra +/* 0140C8 700134C8 00000000 */ nop diff --git a/src/libultra/synstartvoiceparam.s b/src/libultra/synstartvoiceparam.s new file mode 100644 index 0000000..94461d4 --- /dev/null +++ b/src/libultra/synstartvoiceparam.s @@ -0,0 +1,75 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynStartVoiceParams +/* 01E1A0 7001D5A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01E1A4 7001D5A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E1A8 7001D5A8 AFA50024 */ sw $a1, 0x24($sp) +/* 01E1AC 7001D5AC AFA60028 */ sw $a2, 0x28($sp) +/* 01E1B0 7001D5B0 AFA7002C */ sw $a3, 0x2c($sp) +/* 01E1B4 7001D5B4 8CAE0008 */ lw $t6, 8($a1) +/* 01E1B8 7001D5B8 51C0002F */ beql $t6, $zero, .L7001D678 +/* 01E1BC 7001D5BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E1C0 7001D5C0 AFA40020 */ sw $a0, 0x20($sp) +/* 01E1C4 7001D5C4 0C003C34 */ jal __allocParam +/* 01E1C8 7001D5C8 AFA50024 */ sw $a1, 0x24($sp) +/* 01E1CC 7001D5CC 8FA40020 */ lw $a0, 0x20($sp) +/* 01E1D0 7001D5D0 8FA70024 */ lw $a3, 0x24($sp) +/* 01E1D4 7001D5D4 10400027 */ beqz $v0, .L7001D674 +/* 01E1D8 7001D5D8 00403025 */ move $a2, $v0 +/* 01E1DC 7001D5DC 93A3003B */ lbu $v1, 0x3b($sp) +/* 01E1E0 7001D5E0 04610004 */ bgez $v1, .L7001D5F4 +/* 01E1E4 7001D5E4 00601025 */ move $v0, $v1 +/* 01E1E8 7001D5E8 00021823 */ negu $v1, $v0 +/* 01E1EC 7001D5EC 306F00FF */ andi $t7, $v1, 0xff +/* 01E1F0 7001D5F0 01E01825 */ move $v1, $t7 +.L7001D5F4: +/* 01E1F4 7001D5F4 8CF90008 */ lw $t9, 8($a3) +/* 01E1F8 7001D5F8 8C98001C */ lw $t8, 0x1c($a0) +/* 01E1FC 7001D5FC 240A000D */ li $t2, 13 +/* 01E200 7001D600 8F2800D8 */ lw $t0, 0xd8($t9) +/* 01E204 7001D604 ACC00000 */ sw $zero, ($a2) +/* 01E208 7001D608 A4CA0008 */ sh $t2, 8($a2) +/* 01E20C 7001D60C 03084821 */ addu $t1, $t8, $t0 +/* 01E210 7001D610 ACC90004 */ sw $t1, 4($a2) +/* 01E214 7001D614 84EB001A */ lh $t3, 0x1a($a3) +/* 01E218 7001D618 A4CB000A */ sh $t3, 0xa($a2) +/* 01E21C 7001D61C 93AC0037 */ lbu $t4, 0x37($sp) +/* 01E220 7001D620 A0CC0012 */ sb $t4, 0x12($a2) +/* 01E224 7001D624 87AD0032 */ lh $t5, 0x32($sp) +/* 01E228 7001D628 A0C30013 */ sb $v1, 0x13($a2) +/* 01E22C 7001D62C A4CD0010 */ sh $t5, 0x10($a2) +/* 01E230 7001D630 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 01E234 7001D634 E4C4000C */ swc1 $f4, 0xc($a2) +/* 01E238 7001D638 AFA70024 */ sw $a3, 0x24($sp) +/* 01E23C 7001D63C AFA6001C */ sw $a2, 0x1c($sp) +/* 01E240 7001D640 0C003BF2 */ jal _timeToSamples +/* 01E244 7001D644 8FA5003C */ lw $a1, 0x3c($sp) +/* 01E248 7001D648 8FA6001C */ lw $a2, 0x1c($sp) +/* 01E24C 7001D64C 8FA70024 */ lw $a3, 0x24($sp) +/* 01E250 7001D650 24050003 */ li $a1, 3 +/* 01E254 7001D654 ACC20014 */ sw $v0, 0x14($a2) +/* 01E258 7001D658 8FAE0028 */ lw $t6, 0x28($sp) +/* 01E25C 7001D65C ACCE0018 */ sw $t6, 0x18($a2) +/* 01E260 7001D660 8CEF0008 */ lw $t7, 8($a3) +/* 01E264 7001D664 8DE4000C */ lw $a0, 0xc($t7) +/* 01E268 7001D668 8C990008 */ lw $t9, 8($a0) +/* 01E26C 7001D66C 0320F809 */ jalr $t9 +/* 01E270 7001D670 00000000 */ nop +.L7001D674: +/* 01E274 7001D674 8FBF0014 */ lw $ra, 0x14($sp) +.L7001D678: +/* 01E278 7001D678 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01E27C 7001D67C 03E00008 */ jr $ra +/* 01E280 7001D680 00000000 */ nop + diff --git a/src/libultra/synstopvoice.s b/src/libultra/synstopvoice.s new file mode 100644 index 0000000..f0e8d19 --- /dev/null +++ b/src/libultra/synstopvoice.s @@ -0,0 +1,42 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynStopVoice +/* 014290 70013690 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014294 70013694 AFBF0014 */ sw $ra, 0x14($sp) +/* 014298 70013698 AFA40018 */ sw $a0, 0x18($sp) +/* 01429C 7001369C 8CAE0008 */ lw $t6, 8($a1) +/* 0142A0 700136A0 51C00016 */ beql $t6, $zero, .L700136FC +/* 0142A4 700136A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0142A8 700136A8 0C003C34 */ jal __allocParam +/* 0142AC 700136AC AFA5001C */ sw $a1, 0x1c($sp) +/* 0142B0 700136B0 8FA7001C */ lw $a3, 0x1c($sp) +/* 0142B4 700136B4 10400010 */ beqz $v0, .L700136F8 +/* 0142B8 700136B8 00403025 */ move $a2, $v0 +/* 0142BC 700136BC 8FAF0018 */ lw $t7, 0x18($sp) +/* 0142C0 700136C0 8CF90008 */ lw $t9, 8($a3) +/* 0142C4 700136C4 240A000F */ li $t2, 15 +/* 0142C8 700136C8 8DF8001C */ lw $t8, 0x1c($t7) +/* 0142CC 700136CC 8F2800D8 */ lw $t0, 0xd8($t9) +/* 0142D0 700136D0 A44A0008 */ sh $t2, 8($v0) +/* 0142D4 700136D4 AC400000 */ sw $zero, ($v0) +/* 0142D8 700136D8 03084821 */ addu $t1, $t8, $t0 +/* 0142DC 700136DC AC490004 */ sw $t1, 4($v0) +/* 0142E0 700136E0 8CEB0008 */ lw $t3, 8($a3) +/* 0142E4 700136E4 24050003 */ li $a1, 3 +/* 0142E8 700136E8 8D64000C */ lw $a0, 0xc($t3) +/* 0142EC 700136EC 8C990008 */ lw $t9, 8($a0) +/* 0142F0 700136F0 0320F809 */ jalr $t9 +/* 0142F4 700136F4 00000000 */ nop +.L700136F8: +/* 0142F8 700136F8 8FBF0014 */ lw $ra, 0x14($sp) +.L700136FC: +/* 0142FC 700136FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 014300 70013700 03E00008 */ jr $ra +/* 014304 70013704 00000000 */ nop diff --git a/src/libultra/synthesizer.s b/src/libultra/synthesizer.s new file mode 100644 index 0000000..ddce156 --- /dev/null +++ b/src/libultra/synthesizer.s @@ -0,0 +1,493 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +/* 00FBC0 7000EFC0 03E00008 */ jr $ra +/* 00FBC4 7000EFC4 00000000 */ nop + +glabel _timeToSamples +/* 00FBC8 7000EFC8 8C8E0044 */ lw $t6, 0x44($a0) +/* 00FBCC 7000EFCC 44852000 */ mtc1 $a1, $f4 +/* 00FBD0 7000EFD0 3C018003 */ lui $at, %hi(F64_80029420) +/* 00FBD4 7000EFD4 448E4000 */ mtc1 $t6, $f8 +/* 00FBD8 7000EFD8 468021A0 */ cvt.s.w $f6, $f4 +/* 00FBDC 7000EFDC D4249420 */ ldc1 $f4, %lo(F64_80029420)($at) +/* 00FBE0 7000EFE0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 00FBE4 7000EFE4 44813800 */ mtc1 $at, $f7 +/* 00FBE8 7000EFE8 2401FFF0 */ li $at, -16 +/* 00FBEC 7000EFEC 468042A0 */ cvt.s.w $f10, $f8 +/* 00FBF0 7000EFF0 460A3402 */ mul.s $f16, $f6, $f10 +/* 00FBF4 7000EFF4 44803000 */ mtc1 $zero, $f6 +/* 00FBF8 7000EFF8 460084A1 */ cvt.d.s $f18, $f16 +/* 00FBFC 7000EFFC 46249203 */ div.d $f8, $f18, $f4 +/* 00FC00 7000F000 46264280 */ add.d $f10, $f8, $f6 +/* 00FC04 7000F004 46205020 */ cvt.s.d $f0, $f10 +/* 00FC08 7000F008 4600040D */ trunc.w.s $f16, $f0 +/* 00FC0C 7000F00C 44028000 */ mfc1 $v0, $f16 +/* 00FC10 7000F010 00000000 */ nop +/* 00FC14 7000F014 0041C024 */ and $t8, $v0, $at +/* 00FC18 7000F018 03E00008 */ jr $ra +/* 00FC1C 7000F01C 03001025 */ move $v0, $t8 + +glabel _freePVoice +/* 00FC20 7000F020 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00FC24 7000F024 AFBF0014 */ sw $ra, 0x14($sp) +/* 00FC28 7000F028 AFA40018 */ sw $a0, 0x18($sp) +/* 00FC2C 7000F02C AFA5001C */ sw $a1, 0x1c($sp) +/* 00FC30 7000F030 0C003AA4 */ jal alUnlink +/* 00FC34 7000F034 00A02025 */ move $a0, $a1 +/* 00FC38 7000F038 8FA50018 */ lw $a1, 0x18($sp) +/* 00FC3C 7000F03C 8FA4001C */ lw $a0, 0x1c($sp) +/* 00FC40 7000F040 0C003AB0 */ jal alLink +/* 00FC44 7000F044 24A50014 */ addiu $a1, $a1, 0x14 +/* 00FC48 7000F048 8FBF0014 */ lw $ra, 0x14($sp) +/* 00FC4C 7000F04C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00FC50 7000F050 03E00008 */ jr $ra +/* 00FC54 7000F054 00000000 */ nop + +glabel _collectPVoices +/* 00FC58 7000F058 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00FC5C 7000F05C AFBF0024 */ sw $ra, 0x24($sp) +/* 00FC60 7000F060 AFB20020 */ sw $s2, 0x20($sp) +/* 00FC64 7000F064 AFB1001C */ sw $s1, 0x1c($sp) +/* 00FC68 7000F068 AFB00018 */ sw $s0, 0x18($sp) +/* 00FC6C 7000F06C 8C900014 */ lw $s0, 0x14($a0) +/* 00FC70 7000F070 00808825 */ move $s1, $a0 +/* 00FC74 7000F074 24920004 */ addiu $s2, $a0, 4 +/* 00FC78 7000F078 5200000A */ beql $s0, $zero, .L7000F0A4 +/* 00FC7C 7000F07C 8FBF0024 */ lw $ra, 0x24($sp) +.L7000F080: +/* 00FC80 7000F080 0C003AA4 */ jal alUnlink +/* 00FC84 7000F084 02002025 */ move $a0, $s0 +/* 00FC88 7000F088 02002025 */ move $a0, $s0 +/* 00FC8C 7000F08C 0C003AB0 */ jal alLink +/* 00FC90 7000F090 02402825 */ move $a1, $s2 +/* 00FC94 7000F094 8E300014 */ lw $s0, 0x14($s1) +/* 00FC98 7000F098 1600FFF9 */ bnez $s0, .L7000F080 +/* 00FC9C 7000F09C 00000000 */ nop +/* 00FCA0 7000F0A0 8FBF0024 */ lw $ra, 0x24($sp) +.L7000F0A4: +/* 00FCA4 7000F0A4 8FB00018 */ lw $s0, 0x18($sp) +/* 00FCA8 7000F0A8 8FB1001C */ lw $s1, 0x1c($sp) +/* 00FCAC 7000F0AC 8FB20020 */ lw $s2, 0x20($sp) +/* 00FCB0 7000F0B0 03E00008 */ jr $ra +/* 00FCB4 7000F0B4 27BD0028 */ addiu $sp, $sp, 0x28 + +glabel __freeParam +/* 00FCB8 7000F0B8 3C028002 */ lui $v0, %hi(alGlobals) +/* 00FCBC 7000F0BC 8C4276E0 */ lw $v0, %lo(alGlobals)($v0) +/* 00FCC0 7000F0C0 8C4E002C */ lw $t6, 0x2c($v0) +/* 00FCC4 7000F0C4 AC8E0000 */ sw $t6, ($a0) +/* 00FCC8 7000F0C8 03E00008 */ jr $ra +/* 00FCCC 7000F0CC AC44002C */ sw $a0, 0x2c($v0) + +glabel __allocParam +/* 00FCD0 7000F0D0 3C028002 */ lui $v0, %hi(alGlobals) +/* 00FCD4 7000F0D4 8C4276E0 */ lw $v0, %lo(alGlobals)($v0) +/* 00FCD8 7000F0D8 00001825 */ move $v1, $zero +/* 00FCDC 7000F0DC 8C44002C */ lw $a0, 0x2c($v0) +/* 00FCE0 7000F0E0 10800005 */ beqz $a0, .L7000F0F8 +/* 00FCE4 7000F0E4 00000000 */ nop +/* 00FCE8 7000F0E8 8C8E0000 */ lw $t6, ($a0) +/* 00FCEC 7000F0EC 00801825 */ move $v1, $a0 +/* 00FCF0 7000F0F0 AC4E002C */ sw $t6, 0x2c($v0) +/* 00FCF4 7000F0F4 AC800000 */ sw $zero, ($a0) +.L7000F0F8: +/* 00FCF8 7000F0F8 03E00008 */ jr $ra +/* 00FCFC 7000F0FC 00601025 */ move $v0, $v1 + +/* 00FD00 7000F100 03E00008 */ jr $ra +/* 00FD04 7000F104 00000000 */ nop + +glabel alAudioFrame +/* 00FD08 7000F108 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 00FD0C 7000F10C AFB10030 */ sw $s1, 0x30($sp) +/* 00FD10 7000F110 3C118002 */ lui $s1, %hi(alGlobals) +/* 00FD14 7000F114 8E3176E0 */ lw $s1, %lo(alGlobals)($s1) +/* 00FD18 7000F118 AFBF004C */ sw $ra, 0x4c($sp) +/* 00FD1C 7000F11C AFB70048 */ sw $s7, 0x48($sp) +/* 00FD20 7000F120 AFB60044 */ sw $s6, 0x44($sp) +/* 00FD24 7000F124 AFB50040 */ sw $s5, 0x40($sp) +/* 00FD28 7000F128 AFB4003C */ sw $s4, 0x3c($sp) +/* 00FD2C 7000F12C AFB30038 */ sw $s3, 0x38($sp) +/* 00FD30 7000F130 AFB20034 */ sw $s2, 0x34($sp) +/* 00FD34 7000F134 AFB0002C */ sw $s0, 0x2c($sp) +/* 00FD38 7000F138 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 00FD3C 7000F13C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 00FD40 7000F140 AFA400B8 */ sw $a0, 0xb8($sp) +/* 00FD44 7000F144 AFA500BC */ sw $a1, 0xbc($sp) +/* 00FD48 7000F148 A7A000AA */ sh $zero, 0xaa($sp) +/* 00FD4C 7000F14C 8E2F0000 */ lw $t7, ($s1) +/* 00FD50 7000F150 00E09825 */ move $s3, $a3 +/* 00FD54 7000F154 0080A025 */ move $s4, $a0 +/* 00FD58 7000F158 15E00004 */ bnez $t7, .L7000F16C +/* 00FD5C 7000F15C 00C0A825 */ move $s5, $a2 +/* 00FD60 7000F160 ACA00000 */ sw $zero, ($a1) +/* 00FD64 7000F164 10000081 */ b .L7000F36C +/* 00FD68 7000F168 00801025 */ move $v0, $a0 +.L7000F16C: +/* 00FD6C 7000F16C AFA000B4 */ sw $zero, 0xb4($sp) +/* 00FD70 7000F170 8E220000 */ lw $v0, ($s1) +/* 00FD74 7000F174 3C037FFF */ lui $v1, (0x7FFFFFFF >> 16) # lui $v1, 0x7fff +/* 00FD78 7000F178 3463FFFF */ ori $v1, (0x7FFFFFFF & 0xFFFF) # ori $v1, $v1, 0xffff +/* 00FD7C 7000F17C 1040000E */ beqz $v0, .L7000F1B8 +/* 00FD80 7000F180 2412FFF0 */ li $s2, -16 +/* 00FD84 7000F184 8E240020 */ lw $a0, 0x20($s1) +/* 00FD88 7000F188 8C590010 */ lw $t9, 0x10($v0) +.L7000F18C: +/* 00FD8C 7000F18C 03244023 */ subu $t0, $t9, $a0 +/* 00FD90 7000F190 0103082A */ slt $at, $t0, $v1 +/* 00FD94 7000F194 50200006 */ beql $at, $zero, .L7000F1B0 +/* 00FD98 7000F198 8C420000 */ lw $v0, ($v0) +/* 00FD9C 7000F19C AFA200B4 */ sw $v0, 0xb4($sp) +/* 00FDA0 7000F1A0 8C490010 */ lw $t1, 0x10($v0) +/* 00FDA4 7000F1A4 8E240020 */ lw $a0, 0x20($s1) +/* 00FDA8 7000F1A8 01241823 */ subu $v1, $t1, $a0 +/* 00FDAC 7000F1AC 8C420000 */ lw $v0, ($v0) +.L7000F1B0: +/* 00FDB0 7000F1B0 5440FFF6 */ bnezl $v0, .L7000F18C +/* 00FDB4 7000F1B4 8C590010 */ lw $t9, 0x10($v0) +.L7000F1B8: +/* 00FDB8 7000F1B8 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 00FDBC 7000F1BC 8E240020 */ lw $a0, 0x20($s1) +/* 00FDC0 7000F1C0 8D420010 */ lw $v0, 0x10($t2) +/* 00FDC4 7000F1C4 00445823 */ subu $t3, $v0, $a0 +/* 00FDC8 7000F1C8 0173082A */ slt $at, $t3, $s3 +/* 00FDCC 7000F1CC 10200038 */ beqz $at, .L7000F2B0 +/* 00FDD0 7000F1D0 AE22001C */ sw $v0, 0x1c($s1) +/* 00FDD4 7000F1D4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 00FDD8 7000F1D8 4481B800 */ mtc1 $at, $f23 +/* 00FDDC 7000F1DC 3C018003 */ lui $at, %hi(F64_80029428) +/* 00FDE0 7000F1E0 4480B000 */ mtc1 $zero, $f22 +/* 00FDE4 7000F1E4 D4349428 */ ldc1 $f20, %lo(F64_80029428)($at) +.L7000F1E8: +/* 00FDE8 7000F1E8 8E2C001C */ lw $t4, 0x1c($s1) +/* 00FDEC 7000F1EC 3C107FFF */ lui $s0, (0x7FFFFFFF >> 16) # lui $s0, 0x7fff +/* 00FDF0 7000F1F0 3610FFFF */ ori $s0, (0x7FFFFFFF & 0xFFFF) # ori $s0, $s0, 0xffff +/* 00FDF4 7000F1F4 01926824 */ and $t5, $t4, $s2 +/* 00FDF8 7000F1F8 AE2D001C */ sw $t5, 0x1c($s1) +/* 00FDFC 7000F1FC 8FA400B4 */ lw $a0, 0xb4($sp) +/* 00FE00 7000F200 8C990008 */ lw $t9, 8($a0) +/* 00FE04 7000F204 0320F809 */ jalr $t9 +/* 00FE08 7000F208 00000000 */ nop +/* 00FE0C 7000F20C 8E380044 */ lw $t8, 0x44($s1) +/* 00FE10 7000F210 44822000 */ mtc1 $v0, $f4 +/* 00FE14 7000F214 8FA800B4 */ lw $t0, 0xb4($sp) +/* 00FE18 7000F218 44984000 */ mtc1 $t8, $f8 +/* 00FE1C 7000F21C 468021A0 */ cvt.s.w $f6, $f4 +/* 00FE20 7000F220 8D090010 */ lw $t1, 0x10($t0) +/* 00FE24 7000F224 468042A0 */ cvt.s.w $f10, $f8 +/* 00FE28 7000F228 460A3402 */ mul.s $f16, $f6, $f10 +/* 00FE2C 7000F22C 460084A1 */ cvt.d.s $f18, $f16 +/* 00FE30 7000F230 46349103 */ div.d $f4, $f18, $f20 +/* 00FE34 7000F234 46362200 */ add.d $f8, $f4, $f22 +/* 00FE38 7000F238 46204020 */ cvt.s.d $f0, $f8 +/* 00FE3C 7000F23C 4600018D */ trunc.w.s $f6, $f0 +/* 00FE40 7000F240 44023000 */ mfc1 $v0, $f6 +/* 00FE44 7000F244 00000000 */ nop +/* 00FE48 7000F248 01225021 */ addu $t2, $t1, $v0 +/* 00FE4C 7000F24C AD0A0010 */ sw $t2, 0x10($t0) +/* 00FE50 7000F250 AFA000B4 */ sw $zero, 0xb4($sp) +/* 00FE54 7000F254 8E230000 */ lw $v1, ($s1) +/* 00FE58 7000F258 5060000F */ beql $v1, $zero, .L7000F298 +/* 00FE5C 7000F25C 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 00FE60 7000F260 8E240020 */ lw $a0, 0x20($s1) +/* 00FE64 7000F264 8C6B0010 */ lw $t3, 0x10($v1) +.L7000F268: +/* 00FE68 7000F268 01646023 */ subu $t4, $t3, $a0 +/* 00FE6C 7000F26C 0190082A */ slt $at, $t4, $s0 +/* 00FE70 7000F270 50200006 */ beql $at, $zero, .L7000F28C +/* 00FE74 7000F274 8C630000 */ lw $v1, ($v1) +/* 00FE78 7000F278 AFA300B4 */ sw $v1, 0xb4($sp) +/* 00FE7C 7000F27C 8C6D0010 */ lw $t5, 0x10($v1) +/* 00FE80 7000F280 8E240020 */ lw $a0, 0x20($s1) +/* 00FE84 7000F284 01A48023 */ subu $s0, $t5, $a0 +/* 00FE88 7000F288 8C630000 */ lw $v1, ($v1) +.L7000F28C: +/* 00FE8C 7000F28C 5460FFF6 */ bnezl $v1, .L7000F268 +/* 00FE90 7000F290 8C6B0010 */ lw $t3, 0x10($v1) +/* 00FE94 7000F294 8FAF00B4 */ lw $t7, 0xb4($sp) +.L7000F298: +/* 00FE98 7000F298 8E240020 */ lw $a0, 0x20($s1) +/* 00FE9C 7000F29C 8DE20010 */ lw $v0, 0x10($t7) +/* 00FEA0 7000F2A0 0044C823 */ subu $t9, $v0, $a0 +/* 00FEA4 7000F2A4 0333082A */ slt $at, $t9, $s3 +/* 00FEA8 7000F2A8 1420FFCF */ bnez $at, .L7000F1E8 +/* 00FEAC 7000F2AC AE22001C */ sw $v0, 0x1c($s1) +.L7000F2B0: +/* 00FEB0 7000F2B0 8E38001C */ lw $t8, 0x1c($s1) +/* 00FEB4 7000F2B4 2412FFF0 */ li $s2, -16 +/* 00FEB8 7000F2B8 27B700AA */ addiu $s7, $sp, 0xaa +/* 00FEBC 7000F2BC 03127024 */ and $t6, $t8, $s2 +/* 00FEC0 7000F2C0 1A600022 */ blez $s3, .L7000F34C +/* 00FEC4 7000F2C4 AE2E001C */ sw $t6, 0x1c($s1) +/* 00FEC8 7000F2C8 3C160700 */ lui $s6, 0x700 +.L7000F2CC: +/* 00FECC 7000F2CC 8E220048 */ lw $v0, 0x48($s1) +/* 00FED0 7000F2D0 02608025 */ move $s0, $s3 +/* 00FED4 7000F2D4 0053082A */ slt $at, $v0, $s3 +/* 00FED8 7000F2D8 10200003 */ beqz $at, .L7000F2E8 +/* 00FEDC 7000F2DC 00000000 */ nop +/* 00FEE0 7000F2E0 10000001 */ b .L7000F2E8 +/* 00FEE4 7000F2E4 00408025 */ move $s0, $v0 +.L7000F2E8: +/* 00FEE8 7000F2E8 AE960000 */ sw $s6, ($s4) +/* 00FEEC 7000F2EC AE800004 */ sw $zero, 4($s4) +/* 00FEF0 7000F2F0 8E320038 */ lw $s2, 0x38($s1) +/* 00FEF4 7000F2F4 24050006 */ li $a1, 6 +/* 00FEF8 7000F2F8 02A03025 */ move $a2, $s5 +/* 00FEFC 7000F2FC 8E590008 */ lw $t9, 8($s2) +/* 00FF00 7000F300 02402025 */ move $a0, $s2 +/* 00FF04 7000F304 0320F809 */ jalr $t9 +/* 00FF08 7000F308 00000000 */ nop +/* 00FF0C 7000F30C 8E270020 */ lw $a3, 0x20($s1) +/* 00FF10 7000F310 26890008 */ addiu $t1, $s4, 8 +/* 00FF14 7000F314 AFA90010 */ sw $t1, 0x10($sp) +/* 00FF18 7000F318 8E590004 */ lw $t9, 4($s2) +/* 00FF1C 7000F31C 02402025 */ move $a0, $s2 +/* 00FF20 7000F320 02E02825 */ move $a1, $s7 +/* 00FF24 7000F324 0320F809 */ jalr $t9 +/* 00FF28 7000F328 02003025 */ move $a2, $s0 +/* 00FF2C 7000F32C 8E2B0020 */ lw $t3, 0x20($s1) +/* 00FF30 7000F330 02709823 */ subu $s3, $s3, $s0 +/* 00FF34 7000F334 00104080 */ sll $t0, $s0, 2 +/* 00FF38 7000F338 01706021 */ addu $t4, $t3, $s0 +/* 00FF3C 7000F33C 0040A025 */ move $s4, $v0 +/* 00FF40 7000F340 02A8A821 */ addu $s5, $s5, $t0 +/* 00FF44 7000F344 1E60FFE1 */ bgtz $s3, .L7000F2CC +/* 00FF48 7000F348 AE2C0020 */ sw $t4, 0x20($s1) +.L7000F34C: +/* 00FF4C 7000F34C 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 00FF50 7000F350 8FAE00BC */ lw $t6, 0xbc($sp) +/* 00FF54 7000F354 02202025 */ move $a0, $s1 +/* 00FF58 7000F358 028D7823 */ subu $t7, $s4, $t5 +/* 00FF5C 7000F35C 000FC0C3 */ sra $t8, $t7, 3 +/* 00FF60 7000F360 0C003C16 */ jal _collectPVoices +/* 00FF64 7000F364 ADD80000 */ sw $t8, ($t6) +/* 00FF68 7000F368 02801025 */ move $v0, $s4 +.L7000F36C: +/* 00FF6C 7000F36C 8FBF004C */ lw $ra, 0x4c($sp) +/* 00FF70 7000F370 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 00FF74 7000F374 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 00FF78 7000F378 8FB0002C */ lw $s0, 0x2c($sp) +/* 00FF7C 7000F37C 8FB10030 */ lw $s1, 0x30($sp) +/* 00FF80 7000F380 8FB20034 */ lw $s2, 0x34($sp) +/* 00FF84 7000F384 8FB30038 */ lw $s3, 0x38($sp) +/* 00FF88 7000F388 8FB4003C */ lw $s4, 0x3c($sp) +/* 00FF8C 7000F38C 8FB50040 */ lw $s5, 0x40($sp) +/* 00FF90 7000F390 8FB60044 */ lw $s6, 0x44($sp) +/* 00FF94 7000F394 8FB70048 */ lw $s7, 0x48($sp) +/* 00FF98 7000F398 03E00008 */ jr $ra +/* 00FF9C 7000F39C 27BD00B8 */ addiu $sp, $sp, 0xb8 + +glabel alSynNew +/* 00FFA0 7000F3A0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 00FFA4 7000F3A4 AFBF0044 */ sw $ra, 0x44($sp) +/* 00FFA8 7000F3A8 AFBE0040 */ sw $fp, 0x40($sp) +/* 00FFAC 7000F3AC AFB7003C */ sw $s7, 0x3c($sp) +/* 00FFB0 7000F3B0 AFB60038 */ sw $s6, 0x38($sp) +/* 00FFB4 7000F3B4 AFB50034 */ sw $s5, 0x34($sp) +/* 00FFB8 7000F3B8 AFB40030 */ sw $s4, 0x30($sp) +/* 00FFBC 7000F3BC AFB3002C */ sw $s3, 0x2c($sp) +/* 00FFC0 7000F3C0 AFB20028 */ sw $s2, 0x28($sp) +/* 00FFC4 7000F3C4 AFB10024 */ sw $s1, 0x24($sp) +/* 00FFC8 7000F3C8 AFB00020 */ sw $s0, 0x20($sp) +/* 00FFCC 7000F3CC 8CB70014 */ lw $s7, 0x14($a1) +/* 00FFD0 7000F3D0 AC800000 */ sw $zero, ($a0) +/* 00FFD4 7000F3D4 8CAE0004 */ lw $t6, 4($a1) +/* 00FFD8 7000F3D8 AC800020 */ sw $zero, 0x20($a0) +/* 00FFDC 7000F3DC AC80001C */ sw $zero, 0x1c($a0) +/* 00FFE0 7000F3E0 AC8E003C */ sw $t6, 0x3c($a0) +/* 00FFE4 7000F3E4 8CAF0018 */ lw $t7, 0x18($a1) +/* 00FFE8 7000F3E8 241800A0 */ li $t8, 160 +/* 00FFEC 7000F3EC AC980048 */ sw $t8, 0x48($a0) +/* 00FFF0 7000F3F0 AC8F0044 */ sw $t7, 0x44($a0) +/* 00FFF4 7000F3F4 8CB90010 */ lw $t9, 0x10($a1) +/* 00FFF8 7000F3F8 0080B025 */ move $s6, $a0 +/* 00FFFC 7000F3FC 00A0F025 */ move $fp, $a1 +/* 010000 7000F400 2408001C */ li $t0, 28 +/* 010004 7000F404 AC990024 */ sw $t9, 0x24($a0) +/* 010008 7000F408 AFA80010 */ sw $t0, 0x10($sp) +/* 01000C 7000F40C 00002025 */ move $a0, $zero +/* 010010 7000F410 00002825 */ move $a1, $zero +/* 010014 7000F414 24070001 */ li $a3, 1 +/* 010018 7000F418 0C003AD4 */ jal alHeapDBAlloc +/* 01001C 7000F41C 02E03025 */ move $a2, $s7 +/* 010020 7000F420 AFA2005C */ sw $v0, 0x5c($sp) +/* 010024 7000F424 0C006448 */ jal alSaveNew +/* 010028 7000F428 00402025 */ move $a0, $v0 +/* 01002C 7000F42C 8FA9005C */ lw $t1, 0x5c($sp) +/* 010030 7000F430 240A004C */ li $t2, 76 +/* 010034 7000F434 00002025 */ move $a0, $zero +/* 010038 7000F438 AEC90038 */ sw $t1, 0x38($s6) +/* 01003C 7000F43C AFAA0010 */ sw $t2, 0x10($sp) +/* 010040 7000F440 00002825 */ move $a1, $zero +/* 010044 7000F444 02E03025 */ move $a2, $s7 +/* 010048 7000F448 0C003AD4 */ jal alHeapDBAlloc +/* 01004C 7000F44C 24070001 */ li $a3, 1 +/* 010050 7000F450 240B0001 */ li $t3, 1 +/* 010054 7000F454 AEC20034 */ sw $v0, 0x34($s6) +/* 010058 7000F458 AECB0040 */ sw $t3, 0x40($s6) +/* 01005C 7000F45C 8FC70004 */ lw $a3, 4($fp) +/* 010060 7000F460 240C0004 */ li $t4, 4 +/* 010064 7000F464 AFAC0010 */ sw $t4, 0x10($sp) +/* 010068 7000F468 00002025 */ move $a0, $zero +/* 01006C 7000F46C 00002825 */ move $a1, $zero +/* 010070 7000F470 0C003AD4 */ jal alHeapDBAlloc +/* 010074 7000F474 02E03025 */ move $a2, $s7 +/* 010078 7000F478 8EC40034 */ lw $a0, 0x34($s6) +/* 01007C 7000F47C 00402825 */ move $a1, $v0 +/* 010080 7000F480 0C00646E */ jal alAuxBusNew +/* 010084 7000F484 8FC60004 */ lw $a2, 4($fp) +/* 010088 7000F488 240D0020 */ li $t5, 32 +/* 01008C 7000F48C AFAD0010 */ sw $t5, 0x10($sp) +/* 010090 7000F490 00002025 */ move $a0, $zero +/* 010094 7000F494 00002825 */ move $a1, $zero +/* 010098 7000F498 02E03025 */ move $a2, $s7 +/* 01009C 7000F49C 0C003AD4 */ jal alHeapDBAlloc +/* 0100A0 7000F4A0 24070001 */ li $a3, 1 +/* 0100A4 7000F4A4 AEC20030 */ sw $v0, 0x30($s6) +/* 0100A8 7000F4A8 8FC70004 */ lw $a3, 4($fp) +/* 0100AC 7000F4AC 240E0004 */ li $t6, 4 +/* 0100B0 7000F4B0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0100B4 7000F4B4 00002025 */ move $a0, $zero +/* 0100B8 7000F4B8 00002825 */ move $a1, $zero +/* 0100BC 7000F4BC 0C003AD4 */ jal alHeapDBAlloc +/* 0100C0 7000F4C0 02E03025 */ move $a2, $s7 +/* 0100C4 7000F4C4 8EC40030 */ lw $a0, 0x30($s6) +/* 0100C8 7000F4C8 00402825 */ move $a1, $v0 +/* 0100CC 7000F4CC 0C006459 */ jal alMainBusNew +/* 0100D0 7000F4D0 8FC60004 */ lw $a2, 4($fp) +/* 0100D4 7000F4D4 93CF001C */ lbu $t7, 0x1c($fp) +/* 0100D8 7000F4D8 02C02025 */ move $a0, $s6 +/* 0100DC 7000F4DC 03C03025 */ move $a2, $fp +/* 0100E0 7000F4E0 11E00006 */ beqz $t7, .L7000F4FC +/* 0100E4 7000F4E4 24050002 */ li $a1, 2 +/* 0100E8 7000F4E8 00002825 */ move $a1, $zero +/* 0100EC 7000F4EC 0C006630 */ jal alSynAllocFX +/* 0100F0 7000F4F0 02E03825 */ move $a3, $s7 +/* 0100F4 7000F4F4 10000005 */ b .L7000F50C +/* 0100F8 7000F4F8 AEC00004 */ sw $zero, 4($s6) +.L7000F4FC: +/* 0100FC 7000F4FC 8EC40030 */ lw $a0, 0x30($s6) +/* 010100 7000F500 0C006658 */ jal alMainBusParam +/* 010104 7000F504 8EC60034 */ lw $a2, 0x34($s6) +/* 010108 7000F508 AEC00004 */ sw $zero, 4($s6) +.L7000F50C: +/* 01010C 7000F50C AEC00008 */ sw $zero, 8($s6) +/* 010110 7000F510 AEC00014 */ sw $zero, 0x14($s6) +/* 010114 7000F514 AEC00018 */ sw $zero, 0x18($s6) +/* 010118 7000F518 AEC0000C */ sw $zero, 0xc($s6) +/* 01011C 7000F51C AEC00010 */ sw $zero, 0x10($s6) +/* 010120 7000F520 8FC70004 */ lw $a3, 4($fp) +/* 010124 7000F524 241800DC */ li $t8, 220 +/* 010128 7000F528 AFB80010 */ sw $t8, 0x10($sp) +/* 01012C 7000F52C 00002025 */ move $a0, $zero +/* 010130 7000F530 00002825 */ move $a1, $zero +/* 010134 7000F534 0C003AD4 */ jal alHeapDBAlloc +/* 010138 7000F538 02E03025 */ move $a2, $s7 +/* 01013C 7000F53C 8FD90004 */ lw $t9, 4($fp) +/* 010140 7000F540 0000A025 */ move $s4, $zero +/* 010144 7000F544 00408025 */ move $s0, $v0 +/* 010148 7000F548 1B20002F */ blez $t9, .L7000F608 +/* 01014C 7000F54C 26C50004 */ addiu $a1, $s6, 4 +/* 010150 7000F550 2451008C */ addiu $s1, $v0, 0x8c +/* 010154 7000F554 24520058 */ addiu $s2, $v0, 0x58 +/* 010158 7000F558 24530010 */ addiu $s3, $v0, 0x10 +/* 01015C 7000F55C AFA50048 */ sw $a1, 0x48($sp) +.L7000F560: +/* 010160 7000F560 8FA50048 */ lw $a1, 0x48($sp) +/* 010164 7000F564 0200A825 */ move $s5, $s0 +/* 010168 7000F568 0C003AB0 */ jal alLink +/* 01016C 7000F56C 02002025 */ move $a0, $s0 +/* 010170 7000F570 AE000008 */ sw $zero, 8($s0) +/* 010174 7000F574 8EC50024 */ lw $a1, 0x24($s6) +/* 010178 7000F578 02602025 */ move $a0, $s3 +/* 01017C 7000F57C 0C0064A5 */ jal alLoadNew +/* 010180 7000F580 02E03025 */ move $a2, $s7 +/* 010184 7000F584 02602025 */ move $a0, $s3 +/* 010188 7000F588 24050001 */ li $a1, 1 +/* 01018C 7000F58C 0C0066AC */ jal alLoadParam +/* 010190 7000F590 00003025 */ move $a2, $zero +/* 010194 7000F594 02402025 */ move $a0, $s2 +/* 010198 7000F598 0C006483 */ jal alResampleNew +/* 01019C 7000F59C 02E02825 */ move $a1, $s7 +/* 0101A0 7000F5A0 02402025 */ move $a0, $s2 +/* 0101A4 7000F5A4 24050001 */ li $a1, 1 +/* 0101A8 7000F5A8 0C006980 */ jal alResampleParam +/* 0101AC 7000F5AC 02603025 */ move $a2, $s3 +/* 0101B0 7000F5B0 02202025 */ move $a0, $s1 +/* 0101B4 7000F5B4 0C0064CF */ jal alEnvmixerNew +/* 0101B8 7000F5B8 02E02825 */ move $a1, $s7 +/* 0101BC 7000F5BC 02202025 */ move $a0, $s1 +/* 0101C0 7000F5C0 24050001 */ li $a1, 1 +/* 0101C4 7000F5C4 0C006A85 */ jal alEnvmixerParam +/* 0101C8 7000F5C8 02403025 */ move $a2, $s2 +/* 0101CC 7000F5CC 8EC40034 */ lw $a0, 0x34($s6) +/* 0101D0 7000F5D0 24050002 */ li $a1, 2 +/* 0101D4 7000F5D4 0C006D38 */ jal alAuxBusParam +/* 0101D8 7000F5D8 02203025 */ move $a2, $s1 +/* 0101DC 7000F5DC 26A8008C */ addiu $t0, $s5, 0x8c +/* 0101E0 7000F5E0 AEA8000C */ sw $t0, 0xc($s5) +/* 0101E4 7000F5E4 8FC90004 */ lw $t1, 4($fp) +/* 0101E8 7000F5E8 26940001 */ addiu $s4, $s4, 1 +/* 0101EC 7000F5EC 261000DC */ addiu $s0, $s0, 0xdc +/* 0101F0 7000F5F0 0289082A */ slt $at, $s4, $t1 +/* 0101F4 7000F5F4 263100DC */ addiu $s1, $s1, 0xdc +/* 0101F8 7000F5F8 265200DC */ addiu $s2, $s2, 0xdc +/* 0101FC 7000F5FC 1420FFD8 */ bnez $at, .L7000F560 +/* 010200 7000F600 267300DC */ addiu $s3, $s3, 0xdc +/* 010204 7000F604 0000A025 */ move $s4, $zero +.L7000F608: +/* 010208 7000F608 8FA4005C */ lw $a0, 0x5c($sp) +/* 01020C 7000F60C 24050001 */ li $a1, 1 +/* 010210 7000F610 0C006D7C */ jal alSaveParam +/* 010214 7000F614 8EC60030 */ lw $a2, 0x30($s6) +/* 010218 7000F618 8FC70008 */ lw $a3, 8($fp) +/* 01021C 7000F61C 240A001C */ li $t2, 28 +/* 010220 7000F620 AFAA0010 */ sw $t2, 0x10($sp) +/* 010224 7000F624 00002025 */ move $a0, $zero +/* 010228 7000F628 00002825 */ move $a1, $zero +/* 01022C 7000F62C 0C003AD4 */ jal alHeapDBAlloc +/* 010230 7000F630 02E03025 */ move $a2, $s7 +/* 010234 7000F634 AEC0002C */ sw $zero, 0x2c($s6) +/* 010238 7000F638 8FCB0008 */ lw $t3, 8($fp) +/* 01023C 7000F63C 00401825 */ move $v1, $v0 +/* 010240 7000F640 5960000B */ blezl $t3, .L7000F670 +/* 010244 7000F644 AED70028 */ sw $s7, 0x28($s6) +/* 010248 7000F648 8ECC002C */ lw $t4, 0x2c($s6) +.L7000F64C: +/* 01024C 7000F64C 26940001 */ addiu $s4, $s4, 1 +/* 010250 7000F650 AC6C0000 */ sw $t4, ($v1) +/* 010254 7000F654 AEC3002C */ sw $v1, 0x2c($s6) +/* 010258 7000F658 8FCD0008 */ lw $t5, 8($fp) +/* 01025C 7000F65C 2463001C */ addiu $v1, $v1, 0x1c +/* 010260 7000F660 028D082A */ slt $at, $s4, $t5 +/* 010264 7000F664 5420FFF9 */ bnezl $at, .L7000F64C +/* 010268 7000F668 8ECC002C */ lw $t4, 0x2c($s6) +/* 01026C 7000F66C AED70028 */ sw $s7, 0x28($s6) +.L7000F670: +/* 010270 7000F670 8FBF0044 */ lw $ra, 0x44($sp) +/* 010274 7000F674 8FBE0040 */ lw $fp, 0x40($sp) +/* 010278 7000F678 8FB7003C */ lw $s7, 0x3c($sp) +/* 01027C 7000F67C 8FB60038 */ lw $s6, 0x38($sp) +/* 010280 7000F680 8FB50034 */ lw $s5, 0x34($sp) +/* 010284 7000F684 8FB40030 */ lw $s4, 0x30($sp) +/* 010288 7000F688 8FB3002C */ lw $s3, 0x2c($sp) +/* 01028C 7000F68C 8FB20028 */ lw $s2, 0x28($sp) +/* 010290 7000F690 8FB10024 */ lw $s1, 0x24($sp) +/* 010294 7000F694 8FB00020 */ lw $s0, 0x20($sp) +/* 010298 7000F698 03E00008 */ jr $ra +/* 01029C 7000F69C 27BD0078 */ addiu $sp, $sp, 0x78 + +.section .rodata +glabel F64_80029420 +.double 1000000.0 +glabel F64_80029428 +.double 1000000.0 diff --git a/src/libultra/thread.s b/src/libultra/thread.s new file mode 100644 index 0000000..5efe1de --- /dev/null +++ b/src/libultra/thread.s @@ -0,0 +1,41 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osDequeueThread +/* 011690 70010A90 00803025 */ move $a2, $a0 +/* 011694 70010A94 8CC70000 */ lw $a3, ($a2) +/* 011698 70010A98 27BDFFF8 */ addiu $sp, $sp, -8 +/* 01169C 70010A9C 10E0000A */ beqz $a3, .L70010AC8 +/* 0116A0 70010AA0 00000000 */ nop +.L70010AA4: +/* 0116A4 70010AA4 14E50004 */ bne $a3, $a1, .L70010AB8 +/* 0116A8 70010AA8 00000000 */ nop +/* 0116AC 70010AAC 8CAE0000 */ lw $t6, ($a1) +/* 0116B0 70010AB0 10000005 */ b .L70010AC8 +/* 0116B4 70010AB4 ACCE0000 */ sw $t6, ($a2) +.L70010AB8: +/* 0116B8 70010AB8 00E03025 */ move $a2, $a3 +/* 0116BC 70010ABC 8CC70000 */ lw $a3, ($a2) +/* 0116C0 70010AC0 14E0FFF8 */ bnez $a3, .L70010AA4 +/* 0116C4 70010AC4 00000000 */ nop +.L70010AC8: +/* 0116C8 70010AC8 03E00008 */ jr $ra +/* 0116CC 70010ACC 27BD0008 */ addiu $sp, $sp, 8 + +.section .data +glabel __osThreadTail +.word 0, 0xFFFFFFFF +glabel __osRunQueue + .word __osThreadTail +glabel __osActiveQueue +.word __osThreadTail +glabel __osRunningThread +.word 0 +glabel __osFaultedThread +.word 0 diff --git a/src/libultra/timerintr.s b/src/libultra/timerintr.s new file mode 100644 index 0000000..0a75a34 --- /dev/null +++ b/src/libultra/timerintr.s @@ -0,0 +1,334 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osTimerServicesInit +/* 019230 70018630 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 019234 70018634 240E0000 */ li $t6, 0 +/* 019238 70018638 240F0000 */ li $t7, 0 +/* 01923C 7001863C AC2F8E14 */ sw $t7, %lo(__osCurrentTime+4)($at) +/* 019240 70018640 AC2E8E10 */ sw $t6, %lo(__osCurrentTime)($at) +/* 019244 70018644 3C018007 */ lui $at, %hi(__osBaseCounter) +/* 019248 70018648 3C188002 */ lui $t8, %hi(__osTimerList) +/* 01924C 7001864C 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 019250 70018650 AC208E18 */ sw $zero, %lo(__osBaseCounter)($at) +/* 019254 70018654 3C018007 */ lui $at, %hi(__osViIntrCount) +/* 019258 70018658 AC208E1C */ sw $zero, %lo(__osViIntrCount)($at) +/* 01925C 7001865C 3C198002 */ lui $t9, %hi(__osTimerList) +/* 019260 70018660 AF180004 */ sw $t8, 4($t8) +/* 019264 70018664 8F397FD0 */ lw $t9, %lo(__osTimerList)($t9) +/* 019268 70018668 3C098002 */ lui $t1, %hi(__osTimerList) +/* 01926C 7001866C 240A0000 */ li $t2, 0 +/* 019270 70018670 8F280004 */ lw $t0, 4($t9) +/* 019274 70018674 240B0000 */ li $t3, 0 +/* 019278 70018678 3C0C8002 */ lui $t4, %hi(__osTimerList) +/* 01927C 7001867C AF280000 */ sw $t0, ($t9) +/* 019280 70018680 8D297FD0 */ lw $t1, %lo(__osTimerList)($t1) +/* 019284 70018684 3C0D8002 */ lui $t5, %hi(__osTimerList) +/* 019288 70018688 3C188002 */ lui $t8, %hi(__osTimerList) +/* 01928C 7001868C AD2A0010 */ sw $t2, 0x10($t1) +/* 019290 70018690 AD2B0014 */ sw $t3, 0x14($t1) +/* 019294 70018694 8D8C7FD0 */ lw $t4, %lo(__osTimerList)($t4) +/* 019298 70018698 8D8E0010 */ lw $t6, 0x10($t4) +/* 01929C 7001869C 8D8F0014 */ lw $t7, 0x14($t4) +/* 0192A0 700186A0 AD8E0008 */ sw $t6, 8($t4) +/* 0192A4 700186A4 AD8F000C */ sw $t7, 0xc($t4) +/* 0192A8 700186A8 8DAD7FD0 */ lw $t5, %lo(__osTimerList)($t5) +/* 0192AC 700186AC ADA00018 */ sw $zero, 0x18($t5) +/* 0192B0 700186B0 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0192B4 700186B4 03E00008 */ jr $ra +/* 0192B8 700186B8 AF00001C */ sw $zero, 0x1c($t8) + +glabel __osTimerInterrupt +/* 0192BC 700186BC 3C0E8002 */ lui $t6, %hi(__osTimerList) +/* 0192C0 700186C0 8DCE7FD0 */ lw $t6, %lo(__osTimerList)($t6) +/* 0192C4 700186C4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0192C8 700186C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0192CC 700186CC 8DCF0000 */ lw $t7, ($t6) +/* 0192D0 700186D0 11EE0054 */ beq $t7, $t6, .L70018824 +/* 0192D4 700186D4 00000000 */ nop +.L700186D8: +/* 0192D8 700186D8 3C188002 */ lui $t8, %hi(__osTimerList) +/* 0192DC 700186DC 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0192E0 700186E0 8F190000 */ lw $t9, ($t8) +/* 0192E4 700186E4 17380006 */ bne $t9, $t8, .L70018700 +/* 0192E8 700186E8 AFB90024 */ sw $t9, 0x24($sp) +/* 0192EC 700186EC 0C007E38 */ jal __osSetCompare +/* 0192F0 700186F0 00002025 */ move $a0, $zero +/* 0192F4 700186F4 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 0192F8 700186F8 1000004A */ b .L70018824 +/* 0192FC 700186FC AC208E20 */ sw $zero, %lo(__osTimerCounter)($at) +.L70018700: +/* 019300 70018700 0C003638 */ jal osGetCount +/* 019304 70018704 00000000 */ nop +/* 019308 70018708 AFA20020 */ sw $v0, 0x20($sp) +/* 01930C 7001870C 3C098007 */ lui $t1, %hi(__osTimerCounter) +/* 019310 70018710 8D298E20 */ lw $t1, %lo(__osTimerCounter)($t1) +/* 019314 70018714 8FA80020 */ lw $t0, 0x20($sp) +/* 019318 70018718 8FAF0024 */ lw $t7, 0x24($sp) +/* 01931C 7001871C 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 019320 70018720 01095023 */ subu $t2, $t0, $t1 +/* 019324 70018724 AFAA001C */ sw $t2, 0x1c($sp) +/* 019328 70018728 AC288E20 */ sw $t0, %lo(__osTimerCounter)($at) +/* 01932C 7001872C 8DEE0010 */ lw $t6, 0x10($t7) +/* 019330 70018730 8FAB001C */ lw $t3, 0x1c($sp) +/* 019334 70018734 240C0000 */ li $t4, 0 +/* 019338 70018738 01E0C825 */ move $t9, $t7 +/* 01933C 7001873C 01CC082B */ sltu $at, $t6, $t4 +/* 019340 70018740 8DEF0014 */ lw $t7, 0x14($t7) +/* 019344 70018744 14200016 */ bnez $at, .L700187A0 +/* 019348 70018748 01606825 */ move $t5, $t3 +/* 01934C 7001874C 018E082B */ sltu $at, $t4, $t6 +/* 019350 70018750 14200003 */ bnez $at, .L70018760 +/* 019354 70018754 01AF082B */ sltu $at, $t5, $t7 +/* 019358 70018758 10200011 */ beqz $at, .L700187A0 +/* 01935C 7001875C 00000000 */ nop +.L70018760: +/* 019360 70018760 27380010 */ addiu $t8, $t9, 0x10 +/* 019364 70018764 AFB80018 */ sw $t8, 0x18($sp) +/* 019368 70018768 8F2B0014 */ lw $t3, 0x14($t9) +/* 01936C 7001876C 8F2A0010 */ lw $t2, 0x10($t9) +/* 019370 70018770 016D082B */ sltu $at, $t3, $t5 +/* 019374 70018774 014C4023 */ subu $t0, $t2, $t4 +/* 019378 70018778 01014023 */ subu $t0, $t0, $at +/* 01937C 7001877C 016D4823 */ subu $t1, $t3, $t5 +/* 019380 70018780 AF290014 */ sw $t1, 0x14($t9) +/* 019384 70018784 AF280010 */ sw $t0, 0x10($t9) +/* 019388 70018788 8FAE0024 */ lw $t6, 0x24($sp) +/* 01938C 7001878C 8DC40010 */ lw $a0, 0x10($t6) +/* 019390 70018790 0C00620D */ jal __osSetTimerIntr +/* 019394 70018794 8DC50014 */ lw $a1, 0x14($t6) +/* 019398 70018798 10000022 */ b .L70018824 +/* 01939C 7001879C 00000000 */ nop +.L700187A0: +/* 0193A0 700187A0 8FAF0024 */ lw $t7, 0x24($sp) +/* 0193A4 700187A4 8DF80000 */ lw $t8, ($t7) +/* 0193A8 700187A8 8DEA0004 */ lw $t2, 4($t7) +/* 0193AC 700187AC AD580000 */ sw $t8, ($t2) +/* 0193B0 700187B0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0193B4 700187B4 8D6C0004 */ lw $t4, 4($t3) +/* 0193B8 700187B8 8D6D0000 */ lw $t5, ($t3) +/* 0193BC 700187BC ADAC0004 */ sw $t4, 4($t5) +/* 0193C0 700187C0 8FA80024 */ lw $t0, 0x24($sp) +/* 0193C4 700187C4 AD000000 */ sw $zero, ($t0) +/* 0193C8 700187C8 8FA90024 */ lw $t1, 0x24($sp) +/* 0193CC 700187CC AD200004 */ sw $zero, 4($t1) +/* 0193D0 700187D0 8FB90024 */ lw $t9, 0x24($sp) +/* 0193D4 700187D4 8F2E0018 */ lw $t6, 0x18($t9) +/* 0193D8 700187D8 11C00005 */ beqz $t6, .L700187F0 +/* 0193DC 700187DC 00000000 */ nop +/* 0193E0 700187E0 01C02025 */ move $a0, $t6 +/* 0193E4 700187E4 8F25001C */ lw $a1, 0x1c($t9) +/* 0193E8 700187E8 0C0037C4 */ jal osSendMesg +/* 0193EC 700187EC 00003025 */ move $a2, $zero +.L700187F0: +/* 0193F0 700187F0 8FAF0024 */ lw $t7, 0x24($sp) +/* 0193F4 700187F4 8DF80008 */ lw $t8, 8($t7) +/* 0193F8 700187F8 8DF9000C */ lw $t9, 0xc($t7) +/* 0193FC 700187FC 17000003 */ bnez $t8, .L7001880C +/* 019400 70018800 00000000 */ nop +/* 019404 70018804 1320FFB4 */ beqz $t9, .L700186D8 +/* 019408 70018808 00000000 */ nop +.L7001880C: +/* 01940C 7001880C ADF80010 */ sw $t8, 0x10($t7) +/* 019410 70018810 ADF90014 */ sw $t9, 0x14($t7) +/* 019414 70018814 0C00622A */ jal __osInsertTimer +/* 019418 70018818 8FA40024 */ lw $a0, 0x24($sp) +/* 01941C 7001881C 1000FFAE */ b .L700186D8 +/* 019420 70018820 00000000 */ nop +.L70018824: +/* 019424 70018824 8FBF0014 */ lw $ra, 0x14($sp) +/* 019428 70018828 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01942C 7001882C 03E00008 */ jr $ra +/* 019430 70018830 00000000 */ nop + +glabel __osSetTimerIntr +/* 019434 70018834 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 019438 70018838 AFBF0014 */ sw $ra, 0x14($sp) +/* 01943C 7001883C AFA40028 */ sw $a0, 0x28($sp) +/* 019440 70018840 0C00617C */ jal __osDisableInt +/* 019444 70018844 AFA5002C */ sw $a1, 0x2c($sp) +/* 019448 70018848 0C003638 */ jal osGetCount +/* 01944C 7001884C AFA2001C */ sw $v0, 0x1c($sp) +/* 019450 70018850 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 019454 70018854 AC228E20 */ sw $v0, %lo(__osTimerCounter)($at) +/* 019458 70018858 3C0E8007 */ lui $t6, %hi(__osTimerCounter) +/* 01945C 7001885C 8DCE8E20 */ lw $t6, %lo(__osTimerCounter)($t6) +/* 019460 70018860 8FA9002C */ lw $t1, 0x2c($sp) +/* 019464 70018864 8FA80028 */ lw $t0, 0x28($sp) +/* 019468 70018868 01C0C825 */ move $t9, $t6 +/* 01946C 7001886C 03295821 */ addu $t3, $t9, $t1 +/* 019470 70018870 24180000 */ li $t8, 0 +/* 019474 70018874 0169082B */ sltu $at, $t3, $t1 +/* 019478 70018878 00385021 */ addu $t2, $at, $t8 +/* 01947C 7001887C 01485021 */ addu $t2, $t2, $t0 +/* 019480 70018880 AFAA0020 */ sw $t2, 0x20($sp) +/* 019484 70018884 AFAB0024 */ sw $t3, 0x24($sp) +/* 019488 70018888 0C007E38 */ jal __osSetCompare +/* 01948C 7001888C 01602025 */ move $a0, $t3 +/* 019490 70018890 0C006184 */ jal __osRestoreInt +/* 019494 70018894 8FA4001C */ lw $a0, 0x1c($sp) +/* 019498 70018898 8FBF0014 */ lw $ra, 0x14($sp) +/* 01949C 7001889C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0194A0 700188A0 03E00008 */ jr $ra +/* 0194A4 700188A4 00000000 */ nop + +glabel __osInsertTimer +/* 0194A8 700188A8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0194AC 700188AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0194B0 700188B0 0C00617C */ jal __osDisableInt +/* 0194B4 700188B4 AFA40038 */ sw $a0, 0x38($sp) +/* 0194B8 700188B8 3C0E8002 */ lui $t6, %hi(__osTimerList) +/* 0194BC 700188BC 8DCE7FD0 */ lw $t6, %lo(__osTimerList)($t6) +/* 0194C0 700188C0 AFA20024 */ sw $v0, 0x24($sp) +/* 0194C4 700188C4 8FB80038 */ lw $t8, 0x38($sp) +/* 0194C8 700188C8 8DCF0000 */ lw $t7, ($t6) +/* 0194CC 700188CC AFAF0034 */ sw $t7, 0x34($sp) +/* 0194D0 700188D0 8F090014 */ lw $t1, 0x14($t8) +/* 0194D4 700188D4 8F080010 */ lw $t0, 0x10($t8) +/* 0194D8 700188D8 AFA9002C */ sw $t1, 0x2c($sp) +/* 0194DC 700188DC 11EE0029 */ beq $t7, $t6, .L70018984 +/* 0194E0 700188E0 AFA80028 */ sw $t0, 0x28($sp) +/* 0194E4 700188E4 8DEA0010 */ lw $t2, 0x10($t7) +/* 0194E8 700188E8 8DEB0014 */ lw $t3, 0x14($t7) +/* 0194EC 700188EC 010A082B */ sltu $at, $t0, $t2 +/* 0194F0 700188F0 14200024 */ bnez $at, .L70018984 +/* 0194F4 700188F4 0148082B */ sltu $at, $t2, $t0 +/* 0194F8 700188F8 14200003 */ bnez $at, .L70018908 +/* 0194FC 700188FC 0169082B */ sltu $at, $t3, $t1 +/* 019500 70018900 10200020 */ beqz $at, .L70018984 +/* 019504 70018904 00000000 */ nop +.L70018908: +/* 019508 70018908 27B90028 */ addiu $t9, $sp, 0x28 +/* 01950C 7001890C 8FB80034 */ lw $t8, 0x34($sp) +/* 019510 70018910 AFB90020 */ sw $t9, 0x20($sp) +/* 019514 70018914 8F2D0004 */ lw $t5, 4($t9) +/* 019518 70018918 8F2C0000 */ lw $t4, ($t9) +/* 01951C 7001891C 8F0F0014 */ lw $t7, 0x14($t8) +/* 019520 70018920 8F0E0010 */ lw $t6, 0x10($t8) +/* 019524 70018924 3C188002 */ lui $t8, %hi(__osTimerList) +/* 019528 70018928 01AF082B */ sltu $at, $t5, $t7 +/* 01952C 7001892C 018E4023 */ subu $t0, $t4, $t6 +/* 019530 70018930 01014023 */ subu $t0, $t0, $at +/* 019534 70018934 01AF4823 */ subu $t1, $t5, $t7 +/* 019538 70018938 AF290004 */ sw $t1, 4($t9) +/* 01953C 7001893C AF280000 */ sw $t0, ($t9) +/* 019540 70018940 8FAA0034 */ lw $t2, 0x34($sp) +/* 019544 70018944 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 019548 70018948 8D4B0000 */ lw $t3, ($t2) +/* 01954C 7001894C 1178000D */ beq $t3, $t8, .L70018984 +/* 019550 70018950 AFAB0034 */ sw $t3, 0x34($sp) +/* 019554 70018954 8FAC0028 */ lw $t4, 0x28($sp) +/* 019558 70018958 8D6E0010 */ lw $t6, 0x10($t3) +/* 01955C 7001895C 8FAD002C */ lw $t5, 0x2c($sp) +/* 019560 70018960 8D6F0014 */ lw $t7, 0x14($t3) +/* 019564 70018964 01CC082B */ sltu $at, $t6, $t4 +/* 019568 70018968 1420FFE7 */ bnez $at, .L70018908 +/* 01956C 7001896C 00000000 */ nop +/* 019570 70018970 018E082B */ sltu $at, $t4, $t6 +/* 019574 70018974 14200003 */ bnez $at, .L70018984 +/* 019578 70018978 01ED082B */ sltu $at, $t7, $t5 +/* 01957C 7001897C 1420FFE2 */ bnez $at, .L70018908 +/* 019580 70018980 00000000 */ nop +.L70018984: +/* 019584 70018984 8FB90038 */ lw $t9, 0x38($sp) +/* 019588 70018988 8FA80028 */ lw $t0, 0x28($sp) +/* 01958C 7001898C 8FA9002C */ lw $t1, 0x2c($sp) +/* 019590 70018990 3C188002 */ lui $t8, %hi(__osTimerList) +/* 019594 70018994 AF280010 */ sw $t0, 0x10($t9) +/* 019598 70018998 AF290014 */ sw $t1, 0x14($t9) +/* 01959C 7001899C 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0195A0 700189A0 8FAA0034 */ lw $t2, 0x34($sp) +/* 0195A4 700189A4 1158000D */ beq $t2, $t8, .L700189DC +/* 0195A8 700189A8 00000000 */ nop +/* 0195AC 700189AC 254B0010 */ addiu $t3, $t2, 0x10 +/* 0195B0 700189B0 AFAB001C */ sw $t3, 0x1c($sp) +/* 0195B4 700189B4 8D4D0014 */ lw $t5, 0x14($t2) +/* 0195B8 700189B8 8D4C0010 */ lw $t4, 0x10($t2) +/* 0195BC 700189BC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0195C0 700189C0 8FAF002C */ lw $t7, 0x2c($sp) +/* 0195C4 700189C4 018E4023 */ subu $t0, $t4, $t6 +/* 0195C8 700189C8 01AF082B */ sltu $at, $t5, $t7 +/* 0195CC 700189CC 01014023 */ subu $t0, $t0, $at +/* 0195D0 700189D0 01AF4823 */ subu $t1, $t5, $t7 +/* 0195D4 700189D4 AD490014 */ sw $t1, 0x14($t2) +/* 0195D8 700189D8 AD480010 */ sw $t0, 0x10($t2) +.L700189DC: +/* 0195DC 700189DC 8FB90034 */ lw $t9, 0x34($sp) +/* 0195E0 700189E0 8FB80038 */ lw $t8, 0x38($sp) +/* 0195E4 700189E4 AF190000 */ sw $t9, ($t8) +/* 0195E8 700189E8 8FAB0034 */ lw $t3, 0x34($sp) +/* 0195EC 700189EC 8FAD0038 */ lw $t5, 0x38($sp) +/* 0195F0 700189F0 8D6C0004 */ lw $t4, 4($t3) +/* 0195F4 700189F4 ADAC0004 */ sw $t4, 4($t5) +/* 0195F8 700189F8 8FAF0034 */ lw $t7, 0x34($sp) +/* 0195FC 700189FC 8FAE0038 */ lw $t6, 0x38($sp) +/* 019600 70018A00 8DE80004 */ lw $t0, 4($t7) +/* 019604 70018A04 AD0E0000 */ sw $t6, ($t0) +/* 019608 70018A08 8FAA0034 */ lw $t2, 0x34($sp) +/* 01960C 70018A0C 8FA90038 */ lw $t1, 0x38($sp) +/* 019610 70018A10 AD490004 */ sw $t1, 4($t2) +/* 019614 70018A14 0C006184 */ jal __osRestoreInt +/* 019618 70018A18 8FA40024 */ lw $a0, 0x24($sp) +/* 01961C 70018A1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 019620 70018A20 8FA20028 */ lw $v0, 0x28($sp) +/* 019624 70018A24 8FA3002C */ lw $v1, 0x2c($sp) +/* 019628 70018A28 03E00008 */ jr $ra +/* 01962C 70018A2C 27BD0038 */ addiu $sp, $sp, 0x38 + +.section .data +glabel __osTimerList +.word __osBaseTimer +.align 4 +.section .bss +glabel __osBaseTimer +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +glabel __osCurrentTime +.word 0,0 +glabel __osBaseCounter +.word 0 +glabel __osViIntrCount +.word 0 +glabel __osTimerCounter +.word 0 +.word 0,0,0 diff --git a/src/libultra/translate.s b/src/libultra/translate.s new file mode 100644 index 0000000..6679807 --- /dev/null +++ b/src/libultra/translate.s @@ -0,0 +1,56 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guTranslateF +/* 0178D0 70016CD0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0178D4 70016CD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0178D8 70016CD8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0178DC 70016CDC AFA60020 */ sw $a2, 0x20($sp) +/* 0178E0 70016CE0 AFA70024 */ sw $a3, 0x24($sp) +/* 0178E4 70016CE4 0C004004 */ jal guMtxIdentF +/* 0178E8 70016CE8 AFA40018 */ sw $a0, 0x18($sp) +/* 0178EC 70016CEC 8FA40018 */ lw $a0, 0x18($sp) +/* 0178F0 70016CF0 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0178F4 70016CF4 E4840030 */ swc1 $f4, 0x30($a0) +/* 0178F8 70016CF8 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0178FC 70016CFC E4860034 */ swc1 $f6, 0x34($a0) +/* 017900 70016D00 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017904 70016D04 E4880038 */ swc1 $f8, 0x38($a0) +/* 017908 70016D08 8FBF0014 */ lw $ra, 0x14($sp) +/* 01790C 70016D0C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017910 70016D10 03E00008 */ jr $ra +/* 017914 70016D14 00000000 */ nop + +glabel guTranslate +/* 017918 70016D18 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01791C 70016D1C AFBF0014 */ sw $ra, 0x14($sp) +/* 017920 70016D20 AFA40068 */ sw $a0, 0x68($sp) +/* 017924 70016D24 AFA5006C */ sw $a1, 0x6c($sp) +/* 017928 70016D28 AFA60070 */ sw $a2, 0x70($sp) +/* 01792C 70016D2C AFA70074 */ sw $a3, 0x74($sp) +/* 017930 70016D30 0C004004 */ jal guMtxIdentF +/* 017934 70016D34 27A40028 */ addiu $a0, $sp, 0x28 +/* 017938 70016D38 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 01793C 70016D3C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 017940 70016D40 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 017944 70016D44 27A40028 */ addiu $a0, $sp, 0x28 +/* 017948 70016D48 8FA50068 */ lw $a1, 0x68($sp) +/* 01794C 70016D4C E7A40058 */ swc1 $f4, 0x58($sp) +/* 017950 70016D50 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 017954 70016D54 0C003FC4 */ jal guMtxF2L +/* 017958 70016D58 E7A80060 */ swc1 $f8, 0x60($sp) +/* 01795C 70016D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017960 70016D60 27BD0068 */ addiu $sp, $sp, 0x68 +/* 017964 70016D64 03E00008 */ jr $ra +/* 017968 70016D68 00000000 */ nop + diff --git a/src/libultra/ultra7001B830.s b/src/libultra/ultra7001B830.s new file mode 100644 index 0000000..de7c131 --- /dev/null +++ b/src/libultra/ultra7001B830.s @@ -0,0 +1,139 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +#float cosf(float) +.section .text, "ax" +.section .text +glabel __cosf +/* 01C430 7001B830 E7AC0000 */ swc1 $f12, ($sp) +/* 01C434 7001B834 8FA20000 */ lw $v0, ($sp) +/* 01C438 7001B838 C7A60000 */ lwc1 $f6, ($sp) +/* 01C43C 7001B83C C7AA0000 */ lwc1 $f10, ($sp) +/* 01C440 7001B840 00027583 */ sra $t6, $v0, 0x16 +/* 01C444 7001B844 31CF01FF */ andi $t7, $t6, 0x1ff +/* 01C448 7001B848 29E10136 */ slti $at, $t7, 0x136 +/* 01C44C 7001B84C 50200049 */ beql $at, $zero, .L7001B974 +/* 01C450 7001B850 460A5032 */ c.eq.s $f10, $f10 +/* 01C454 7001B854 44802000 */ mtc1 $zero, $f4 +/* 01C458 7001B858 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C45C 7001B85C 44819800 */ mtc1 $at, $f19 +/* 01C460 7001B860 4606203C */ c.lt.s $f4, $f6 +/* 01C464 7001B864 C7A00000 */ lwc1 $f0, ($sp) +/* 01C468 7001B868 3C018003 */ lui $at, %hi(F64_800299D8) +/* 01C46C 7001B86C 45020004 */ bc1fl .L7001B880 +/* 01C470 7001B870 46000007 */ neg.s $f0, $f0 +/* 01C474 7001B874 10000002 */ b .L7001B880 +/* 01C478 7001B878 46003006 */ mov.s $f0, $f6 +/* 01C47C 7001B87C 46000007 */ neg.s $f0, $f0 +.L7001B880: +/* 01C480 7001B880 D42899D8 */ ldc1 $f8, %lo(F64_800299D8)($at) +/* 01C484 7001B884 46000321 */ cvt.d.s $f12, $f0 +/* 01C488 7001B888 44809000 */ mtc1 $zero, $f18 +/* 01C48C 7001B88C 46286282 */ mul.d $f10, $f12, $f8 +/* 01C490 7001B890 44802800 */ mtc1 $zero, $f5 +/* 01C494 7001B894 44802000 */ mtc1 $zero, $f4 +/* 01C498 7001B898 46325380 */ add.d $f14, $f10, $f18 +/* 01C49C 7001B89C 462E203E */ c.le.d $f4, $f14 +/* 01C4A0 7001B8A0 00000000 */ nop +/* 01C4A4 7001B8A4 45020007 */ bc1fl .L7001B8C4 +/* 01C4A8 7001B8A8 46327281 */ sub.d $f10, $f14, $f18 +/* 01C4AC 7001B8AC 46327180 */ add.d $f6, $f14, $f18 +/* 01C4B0 7001B8B0 4620320D */ trunc.w.d $f8, $f6 +/* 01C4B4 7001B8B4 44024000 */ mfc1 $v0, $f8 +/* 01C4B8 7001B8B8 10000006 */ b .L7001B8D4 +/* 01C4BC 7001B8BC 44823000 */ mtc1 $v0, $f6 +/* 01C4C0 7001B8C0 46327281 */ sub.d $f10, $f14, $f18 +.L7001B8C4: +/* 01C4C4 7001B8C4 4620510D */ trunc.w.d $f4, $f10 +/* 01C4C8 7001B8C8 44022000 */ mfc1 $v0, $f4 +/* 01C4CC 7001B8CC 00000000 */ nop +/* 01C4D0 7001B8D0 44823000 */ mtc1 $v0, $f6 +.L7001B8D4: +/* 01C4D4 7001B8D4 3C018003 */ lui $at, %hi(F64_800299E0) +/* 01C4D8 7001B8D8 D42A99E0 */ ldc1 $f10, %lo(F64_800299E0)($at) +/* 01C4DC 7001B8DC 46803221 */ cvt.d.w $f8, $f6 +/* 01C4E0 7001B8E0 3C018003 */ lui $at, %hi(F64_800299E8) +/* 01C4E4 7001B8E4 D42699E8 */ ldc1 $f6, %lo(F64_800299E8)($at) +/* 01C4E8 7001B8E8 3C038003 */ lui $v1, %hi(F64_800299B0) +/* 01C4EC 7001B8EC 246399B0 */ addiu $v1, %lo(F64_800299B0) # addiu $v1, $v1, -0x6650 +/* 01C4F0 7001B8F0 46324001 */ sub.d $f0, $f8, $f18 +/* 01C4F4 7001B8F4 30480001 */ andi $t0, $v0, 1 +/* 01C4F8 7001B8F8 462A0102 */ mul.d $f4, $f0, $f10 +/* 01C4FC 7001B8FC D46A0020 */ ldc1 $f10, 0x20($v1) +/* 01C500 7001B900 46260202 */ mul.d $f8, $f0, $f6 +/* 01C504 7001B904 D4660018 */ ldc1 $f6, 0x18($v1) +/* 01C508 7001B908 46246081 */ sub.d $f2, $f12, $f4 +/* 01C50C 7001B90C 46281081 */ sub.d $f2, $f2, $f8 +/* 01C510 7001B910 46221382 */ mul.d $f14, $f2, $f2 +/* 01C514 7001B914 00000000 */ nop +/* 01C518 7001B918 462E5102 */ mul.d $f4, $f10, $f14 +/* 01C51C 7001B91C 46262200 */ add.d $f8, $f4, $f6 +/* 01C520 7001B920 D4640010 */ ldc1 $f4, 0x10($v1) +/* 01C524 7001B924 462E4282 */ mul.d $f10, $f8, $f14 +/* 01C528 7001B928 46245180 */ add.d $f6, $f10, $f4 +/* 01C52C 7001B92C D46A0008 */ ldc1 $f10, 8($v1) +/* 01C530 7001B930 462E3202 */ mul.d $f8, $f6, $f14 +/* 01C534 7001B934 15000007 */ bnez $t0, .L7001B954 +/* 01C538 7001B938 46285400 */ add.d $f16, $f10, $f8 +/* 01C53C 7001B93C 462E1102 */ mul.d $f4, $f2, $f14 +/* 01C540 7001B940 00000000 */ nop +/* 01C544 7001B944 46302182 */ mul.d $f6, $f4, $f16 +/* 01C548 7001B948 46223280 */ add.d $f10, $f6, $f2 +/* 01C54C 7001B94C 03E00008 */ jr $ra +/* 01C550 7001B950 46205020 */ cvt.s.d $f0, $f10 + +.L7001B954: +/* 01C554 7001B954 462E1202 */ mul.d $f8, $f2, $f14 +/* 01C558 7001B958 00000000 */ nop +/* 01C55C 7001B95C 46304102 */ mul.d $f4, $f8, $f16 +/* 01C560 7001B960 46222180 */ add.d $f6, $f4, $f2 +/* 01C564 7001B964 46203020 */ cvt.s.d $f0, $f6 +/* 01C568 7001B968 03E00008 */ jr $ra +/* 01C56C 7001B96C 46000007 */ neg.s $f0, $f0 + +/* 01C570 7001B970 460A5032 */ c.eq.s $f10, $f10 +.L7001B974: +/* 01C574 7001B974 3C018003 */ lui $at, %hi(F64_800299F0) +/* 01C578 7001B978 45010004 */ bc1t .L7001B98C +/* 01C57C 7001B97C 00000000 */ nop +/* 01C580 7001B980 3C018003 */ lui $at, %hi(__libm_qnan_f) +/* 01C584 7001B984 03E00008 */ jr $ra +/* 01C588 7001B988 C4209D40 */ lwc1 $f0, %lo(__libm_qnan_f)($at) + +.L7001B98C: +/* 01C58C 7001B98C C42099F0 */ lwc1 $f0, %lo(F64_800299F0)($at) +/* 01C590 7001B990 03E00008 */ jr $ra +/* 01C594 7001B994 00000000 */ nop + +/* 01C598 7001B998 00000000 */ nop +/* 01C59C 7001B99C 00000000 */ nop + +.section .rodata +glabel F64_800299B0 +.double 1.0 +glabel F64_800299B8 +.word 0xbfc55554, 0xbc83656d #-0.16666659550427756 +glabel F64_800299C0 +.double 0.008333066246082155 +glabel F64_800299C8 +.double -0.0001980960290193795 +glabel F64_800299D0 +.double 0.000002605780637968037 +glabel F64_800299D8 +.double 0.3183098861837907 +glabel F64_800299E0 +.double 3.1415926218032837 +glabel F64_800299E8 +.double 3.178650954705639e-8 +glabel F64_800299F0 +.double 0.0 + .word 0 + .word 0 + diff --git a/src/libultra/ultra7001B9A0.s b/src/libultra/ultra7001B9A0.s new file mode 100644 index 0000000..54026b2 --- /dev/null +++ b/src/libultra/ultra7001B9A0.s @@ -0,0 +1,161 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __sinf +/* 01C5A0 7001B9A0 E7AC0000 */ swc1 $f12, ($sp) +/* 01C5A4 7001B9A4 8FA20000 */ lw $v0, ($sp) +/* 01C5A8 7001B9A8 C7A40000 */ lwc1 $f4, ($sp) +/* 01C5AC 7001B9AC 00021D83 */ sra $v1, $v0, 0x16 +/* 01C5B0 7001B9B0 306E01FF */ andi $t6, $v1, 0x1ff +/* 01C5B4 7001B9B4 29C100FF */ slti $at, $t6, 0xff +/* 01C5B8 7001B9B8 10200019 */ beqz $at, .L7001BA20 +/* 01C5BC 7001B9BC 01C01825 */ move $v1, $t6 +/* 01C5C0 7001B9C0 29C100E6 */ slti $at, $t6, 0xe6 +/* 01C5C4 7001B9C4 14200014 */ bnez $at, .L7001BA18 +/* 01C5C8 7001B9C8 460020A1 */ cvt.d.s $f2, $f4 +/* 01C5CC 7001B9CC 46221302 */ mul.d $f12, $f2, $f2 +/* 01C5D0 7001B9D0 3C038003 */ lui $v1, %hi(F64_80029A00) +/* 01C5D4 7001B9D4 24639A00 */ addiu $v1, %lo(F64_80029A00) # addiu $v1, $v1, -0x6600 +/* 01C5D8 7001B9D8 D4660020 */ ldc1 $f6, 0x20($v1) +/* 01C5DC 7001B9DC D46A0018 */ ldc1 $f10, 0x18($v1) +/* 01C5E0 7001B9E0 D4640010 */ ldc1 $f4, 0x10($v1) +/* 01C5E4 7001B9E4 462C3202 */ mul.d $f8, $f6, $f12 +/* 01C5E8 7001B9E8 462A4400 */ add.d $f16, $f8, $f10 +/* 01C5EC 7001B9EC D46A0008 */ ldc1 $f10, 8($v1) +/* 01C5F0 7001B9F0 462C8482 */ mul.d $f18, $f16, $f12 +/* 01C5F4 7001B9F4 46249180 */ add.d $f6, $f18, $f4 +/* 01C5F8 7001B9F8 462C3202 */ mul.d $f8, $f6, $f12 +/* 01C5FC 7001B9FC 46285380 */ add.d $f14, $f10, $f8 +/* 01C600 7001BA00 462C1402 */ mul.d $f16, $f2, $f12 +/* 01C604 7001BA04 00000000 */ nop +/* 01C608 7001BA08 462E8482 */ mul.d $f18, $f16, $f14 +/* 01C60C 7001BA0C 46229100 */ add.d $f4, $f18, $f2 +/* 01C610 7001BA10 03E00008 */ jr $ra +/* 01C614 7001BA14 46202020 */ cvt.s.d $f0, $f4 + +.L7001BA18: +/* 01C618 7001BA18 03E00008 */ jr $ra +/* 01C61C 7001BA1C C7A00000 */ lwc1 $f0, ($sp) + +.L7001BA20: +/* 01C620 7001BA20 28610136 */ slti $at, $v1, 0x136 +/* 01C624 7001BA24 10200044 */ beqz $at, .L7001BB38 +/* 01C628 7001BA28 C7A40000 */ lwc1 $f4, ($sp) +/* 01C62C 7001BA2C C7A60000 */ lwc1 $f6, ($sp) +/* 01C630 7001BA30 3C018003 */ lui $at, %hi(F64_80029A28) +/* 01C634 7001BA34 D42A9A28 */ ldc1 $f10, %lo(F64_80029A28)($at) +/* 01C638 7001BA38 460030A1 */ cvt.d.s $f2, $f6 +/* 01C63C 7001BA3C 44804800 */ mtc1 $zero, $f9 +/* 01C640 7001BA40 462A1002 */ mul.d $f0, $f2, $f10 +/* 01C644 7001BA44 44804000 */ mtc1 $zero, $f8 +/* 01C648 7001BA48 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C64C 7001BA4C 4620403E */ c.le.d $f8, $f0 +/* 01C650 7001BA50 00000000 */ nop +/* 01C654 7001BA54 4502000B */ bc1fl .L7001BA84 +/* 01C658 7001BA58 44813800 */ mtc1 $at, $f7 +/* 01C65C 7001BA5C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C660 7001BA60 44818800 */ mtc1 $at, $f17 +/* 01C664 7001BA64 44808000 */ mtc1 $zero, $f16 +/* 01C668 7001BA68 00000000 */ nop +/* 01C66C 7001BA6C 46300480 */ add.d $f18, $f0, $f16 +/* 01C670 7001BA70 4620910D */ trunc.w.d $f4, $f18 +/* 01C674 7001BA74 44022000 */ mfc1 $v0, $f4 +/* 01C678 7001BA78 10000009 */ b .L7001BAA0 +/* 01C67C 7001BA7C 44828000 */ mtc1 $v0, $f16 +/* 01C680 7001BA80 44813800 */ mtc1 $at, $f7 +.L7001BA84: +/* 01C684 7001BA84 44803000 */ mtc1 $zero, $f6 +/* 01C688 7001BA88 00000000 */ nop +/* 01C68C 7001BA8C 46260281 */ sub.d $f10, $f0, $f6 +/* 01C690 7001BA90 4620520D */ trunc.w.d $f8, $f10 +/* 01C694 7001BA94 44024000 */ mfc1 $v0, $f8 +/* 01C698 7001BA98 00000000 */ nop +/* 01C69C 7001BA9C 44828000 */ mtc1 $v0, $f16 +.L7001BAA0: +/* 01C6A0 7001BAA0 3C018003 */ lui $at, %hi(F64_80029A30) +/* 01C6A4 7001BAA4 D4329A30 */ ldc1 $f18, %lo(F64_80029A30)($at) +/* 01C6A8 7001BAA8 46808021 */ cvt.d.w $f0, $f16 +/* 01C6AC 7001BAAC 3C018003 */ lui $at, %hi(F64_80029A38) +/* 01C6B0 7001BAB0 D4269A38 */ ldc1 $f6, %lo(F64_80029A38)($at) +/* 01C6B4 7001BAB4 3C038003 */ lui $v1, %hi(F64_80029A00) +/* 01C6B8 7001BAB8 24639A00 */ addiu $v1, %lo(F64_80029A00) # addiu $v1, $v1, -0x6600 +/* 01C6BC 7001BABC 46320102 */ mul.d $f4, $f0, $f18 +/* 01C6C0 7001BAC0 D4680020 */ ldc1 $f8, 0x20($v1) +/* 01C6C4 7001BAC4 D4720018 */ ldc1 $f18, 0x18($v1) +/* 01C6C8 7001BAC8 30590001 */ andi $t9, $v0, 1 +/* 01C6CC 7001BACC 46260282 */ mul.d $f10, $f0, $f6 +/* 01C6D0 7001BAD0 46241081 */ sub.d $f2, $f2, $f4 +/* 01C6D4 7001BAD4 462A1081 */ sub.d $f2, $f2, $f10 +/* 01C6D8 7001BAD8 D46A0010 */ ldc1 $f10, 0x10($v1) +/* 01C6DC 7001BADC 46221302 */ mul.d $f12, $f2, $f2 +/* 01C6E0 7001BAE0 00000000 */ nop +/* 01C6E4 7001BAE4 462C4402 */ mul.d $f16, $f8, $f12 +/* 01C6E8 7001BAE8 46328100 */ add.d $f4, $f16, $f18 +/* 01C6EC 7001BAEC D4720008 */ ldc1 $f18, 8($v1) +/* 01C6F0 7001BAF0 462C2182 */ mul.d $f6, $f4, $f12 +/* 01C6F4 7001BAF4 462A3200 */ add.d $f8, $f6, $f10 +/* 01C6F8 7001BAF8 462C4402 */ mul.d $f16, $f8, $f12 +/* 01C6FC 7001BAFC 17200007 */ bnez $t9, .L7001BB1C +/* 01C700 7001BB00 46309380 */ add.d $f14, $f18, $f16 +/* 01C704 7001BB04 462C1102 */ mul.d $f4, $f2, $f12 +/* 01C708 7001BB08 00000000 */ nop +/* 01C70C 7001BB0C 462E2182 */ mul.d $f6, $f4, $f14 +/* 01C710 7001BB10 46223280 */ add.d $f10, $f6, $f2 +/* 01C714 7001BB14 03E00008 */ jr $ra +/* 01C718 7001BB18 46205020 */ cvt.s.d $f0, $f10 + +.L7001BB1C: +/* 01C71C 7001BB1C 462C1202 */ mul.d $f8, $f2, $f12 +/* 01C720 7001BB20 00000000 */ nop +/* 01C724 7001BB24 462E4482 */ mul.d $f18, $f8, $f14 +/* 01C728 7001BB28 46229400 */ add.d $f16, $f18, $f2 +/* 01C72C 7001BB2C 46208020 */ cvt.s.d $f0, $f16 +/* 01C730 7001BB30 03E00008 */ jr $ra +/* 01C734 7001BB34 46000007 */ neg.s $f0, $f0 + +.L7001BB38: +/* 01C738 7001BB38 46042032 */ c.eq.s $f4, $f4 +/* 01C73C 7001BB3C 3C018003 */ lui $at, %hi(F64_80029A40) +/* 01C740 7001BB40 45010004 */ bc1t .L7001BB54 +/* 01C744 7001BB44 00000000 */ nop +/* 01C748 7001BB48 3C018003 */ lui $at, %hi(__libm_qnan_f) +/* 01C74C 7001BB4C 03E00008 */ jr $ra +/* 01C750 7001BB50 C4209D40 */ lwc1 $f0, %lo(__libm_qnan_f)($at) + +.L7001BB54: +/* 01C754 7001BB54 C4209A40 */ lwc1 $f0, %lo(F64_80029A40)($at) +/* 01C758 7001BB58 03E00008 */ jr $ra +/* 01C75C 7001BB5C 00000000 */ nop + +.section .rodata +glabel F64_80029A00 +.double 1.0 +glabel F64_80029A08 +.double -0.16666659550427756 +glabel F64_80029A10 +.double 0.008333066246082155 +glabel F64_80029A18 +.double -0.0001980960290193795 +glabel F64_80029A20 +.double 0.000002605780637968037 +glabel F64_80029A28 +.double 0.3183098861837907 +glabel F64_80029A30 +.double 3.1415926218032837 +glabel F64_80029A38 +.double 3.178650954705639e-8 +glabel F64_80029A40 +.double 0.0 + .word 0 + .word 0 + diff --git a/src/libultra/ultra80069080.s b/src/libultra/ultra80069080.s new file mode 100644 index 0000000..dc1ef96 --- /dev/null +++ b/src/libultra/ultra80069080.s @@ -0,0 +1,117 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + + +.include "macros.inc" +.section .data +.word 0x10,0x10,0x20,0 + +.section .bss +glabel D_80069080 +.word 0 +glabel D_80069084 +.word 0 +glabel D_80069088 +.word 0 +glabel D_8006908C +.word 0 +glabel D_80069090 +.word 0 +glabel D_80069094 +.word 0 +glabel D_80069098 +.word 0 +glabel D_8006909C +.word 0 +glabel D_800690a0 +.word 0 +glabel D_800690a4 +.word 0 +glabel D_800690a8 +.word 0 +glabel D_800690ac +.word 0 +glabel D_800690b0 +.word 0 +glabel D_800690b4 +.word 0 +glabel D_800690b8 +.word 0 +glabel D_800690BC +.word 0 +glabel D_800690c0 +.word 0 +glabel D_800690C4 +.word 0 +glabel D_800690c8 +.word 0 +glabel D_800690cc +.word 0 +glabel D_800690D0 +.word 0 +glabel D_800690D4 +.word 0 +glabel D_800690D8 +.word 0 +glabel D_800690DC +.word 0 +glabel D_800690E0 +.word 0 +.word 0 +glabel D_800690E8 +.word 0 +glabel D_800690EC +.word 0 +glabel D_800690F0 +.word 0 +glabel D_800690F4 +.word 0 +glabel D_800690F8 +.word 0 +glabel D_800690FC +.word 0 +glabel D_80069100 +.word 0 +glabel D_80069104 +.word 0 +glabel D_80069108 +.word 0 +glabel D_8006910C +.word 0 +glabel D_80069110 +.word 0 +glabel D_80069114 +.word 0 +glabel D_80069118 +.word 0 +glabel D_8006911C +.word 0 +glabel D_80069120 +.word 0 +glabel D_80069124 +.word 0 +glabel D_80069128 +.word 0 +.word 0 +glabel D_80069130 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 diff --git a/src/libultra/unmaptlb.s b/src/libultra/unmaptlb.s new file mode 100644 index 0000000..9eb7696 --- /dev/null +++ b/src/libultra/unmaptlb.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osUnmapTLB +/* 00DFD0 7000D3D0 40085000 */ mfc0 $t0, $10 +/* 00DFD4 7000D3D4 40840000 */ mtc0 $a0, $0 +/* 00DFD8 7000D3D8 3C098000 */ lui $t1, 0x8000 +/* 00DFDC 7000D3DC 40895000 */ mtc0 $t1, $10 +/* 00DFE0 7000D3E0 40801000 */ mtc0 $zero, $2 +/* 00DFE4 7000D3E4 40801800 */ mtc0 $zero, $3 +/* 00DFE8 7000D3E8 00000000 */ nop +/* 00DFEC 7000D3EC 42000002 */ tlbwi +/* 00DFF0 7000D3F0 00000000 */ nop +/* 00DFF4 7000D3F4 00000000 */ nop +/* 00DFF8 7000D3F8 00000000 */ nop +/* 00DFFC 7000D3FC 00000000 */ nop +/* 00E000 7000D400 40885000 */ mtc0 $t0, $10 +/* 00E004 7000D404 03E00008 */ jr $ra +/* 00E008 7000D408 00000000 */ nop + diff --git a/src/libultra/vi.s b/src/libultra/vi.s new file mode 100644 index 0000000..601dd51 --- /dev/null +++ b/src/libultra/vi.s @@ -0,0 +1,122 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViInit +/* 019650 70018A50 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019654 70018A54 AFBF0014 */ sw $ra, 0x14($sp) +/* 019658 70018A58 3C048002 */ lui $a0, %hi(vi) +/* 01965C 70018A5C 24847FE0 */ addiu $a0, %lo(vi) # addiu $a0, $a0, 0x7fe0 +/* 019660 70018A60 0C005F10 */ jal bzero +/* 019664 70018A64 24050060 */ li $a1, 96 +/* 019668 70018A68 3C0E8002 */ lui $t6, %hi(vi) +/* 01966C 70018A6C 25CE7FE0 */ addiu $t6, %lo(vi) # addiu $t6, $t6, 0x7fe0 +/* 019670 70018A70 3C018003 */ lui $at, %hi(__osViCurr) +/* 019674 70018A74 AC2E8040 */ sw $t6, %lo(__osViCurr)($at) +/* 019678 70018A78 3C018003 */ lui $at, %hi(__osViNext) +/* 01967C 70018A7C 25CF0030 */ addiu $t7, $t6, 0x30 +/* 019680 70018A80 AC2F8044 */ sw $t7, %lo(__osViNext)($at) +/* 019684 70018A84 24180001 */ li $t8, 1 +/* 019688 70018A88 A5D80032 */ sh $t8, 0x32($t6) +/* 01968C 70018A8C 3C088003 */ lui $t0, %hi(__osViCurr) +/* 019690 70018A90 8D088040 */ lw $t0, %lo(__osViCurr)($t0) +/* 019694 70018A94 24190001 */ li $t9, 1 +/* 019698 70018A98 3C098003 */ lui $t1, %hi(copy_osTvType) +/* 01969C 70018A9C A5190002 */ sh $t9, 2($t0) +/* 0196A0 70018AA0 8D298048 */ lw $t1, %lo(copy_osTvType)($t1) +/* 0196A4 70018AA4 1120000B */ beqz $t1, .L70018AD4 +/* 0196A8 70018AA8 00000000 */ nop +/* 0196AC 70018AAC 3C0B8003 */ lui $t3, %hi(__osViNext) +/* 0196B0 70018AB0 8D6B8044 */ lw $t3, %lo(__osViNext)($t3) +/* 0196B4 70018AB4 3C0A8003 */ lui $t2, %hi(osViModeNtscLan1) +/* 0196B8 70018AB8 254A8320 */ addiu $t2, %lo(osViModeNtscLan1) # addiu $t2, $t2, -0x7ce0 +/* 0196BC 70018ABC 3C0C02E6 */ lui $t4, (0x02E6D354 >> 16) # lui $t4, 0x2e6 +/* 0196C0 70018AC0 358CD354 */ ori $t4, (0x02E6D354 & 0xFFFF) # ori $t4, $t4, 0xd354 +/* 0196C4 70018AC4 3C018003 */ lui $at, %hi(osViClock) +/* 0196C8 70018AC8 AD6A0008 */ sw $t2, 8($t3) +/* 0196CC 70018ACC 1000000A */ b .L70018AF8 +/* 0196D0 70018AD0 AC2C804C */ sw $t4, %lo(osViClock)($at) +.L70018AD4: +/* 0196D4 70018AD4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 0196D8 70018AD8 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 0196DC 70018ADC 3C0D8003 */ lui $t5, %hi(osViModePalLan1) +/* 0196E0 70018AE0 25AD8370 */ addiu $t5, %lo(osViModePalLan1) # addiu $t5, $t5, -0x7c90 +/* 0196E4 70018AE4 3C1802F5 */ lui $t8, (0x02F5B2D2 >> 16) # lui $t8, 0x2f5 +/* 0196E8 70018AE8 3718B2D2 */ ori $t8, (0x02F5B2D2 & 0xFFFF) # ori $t8, $t8, 0xb2d2 +/* 0196EC 70018AEC 3C018003 */ lui $at, %hi(osViClock) +/* 0196F0 70018AF0 ADED0008 */ sw $t5, 8($t7) +/* 0196F4 70018AF4 AC38804C */ sw $t8, %lo(osViClock)($at) +.L70018AF8: +/* 0196F8 70018AF8 3C198003 */ lui $t9, %hi(__osViNext) +/* 0196FC 70018AFC 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 019700 70018B00 240E0020 */ li $t6, 32 +/* 019704 70018B04 3C088003 */ lui $t0, %hi(__osViNext) +/* 019708 70018B08 A72E0000 */ sh $t6, ($t9) +/* 01970C 70018B0C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 019710 70018B10 3C0BA440 */ lui $t3, %hi(VI_CURRENT_REG) # $t3, 0xa440 +/* 019714 70018B14 8D090008 */ lw $t1, 8($t0) +/* 019718 70018B18 8D2A0004 */ lw $t2, 4($t1) +/* 01971C 70018B1C AD0A000C */ sw $t2, 0xc($t0) +/* 019720 70018B20 8D6C0010 */ lw $t4, %lo(VI_CURRENT_REG)($t3) +/* 019724 70018B24 2D81000B */ sltiu $at, $t4, 0xb +/* 019728 70018B28 14200006 */ bnez $at, .L70018B44 +/* 01972C 70018B2C 00000000 */ nop +.L70018B30: +/* 019730 70018B30 3C0DA440 */ lui $t5, %hi(VI_CURRENT_REG) # $t5, 0xa440 +/* 019734 70018B34 8DAF0010 */ lw $t7, %lo(VI_CURRENT_REG)($t5) +/* 019738 70018B38 2DE1000B */ sltiu $at, $t7, 0xb +/* 01973C 70018B3C 1020FFFC */ beqz $at, .L70018B30 +/* 019740 70018B40 00000000 */ nop +.L70018B44: +/* 019744 70018B44 3C18A440 */ lui $t8, 0xa440 +/* 019748 70018B48 0C0062DC */ jal __osViSwapContext +/* 01974C 70018B4C AF000000 */ sw $zero, ($t8) +/* 019750 70018B50 8FBF0014 */ lw $ra, 0x14($sp) +/* 019754 70018B54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019758 70018B58 03E00008 */ jr $ra +/* 01975C 70018B5C 00000000 */ nop + + +.section .data +glabel _libultraosviSegmentDataStart + +glabel vi +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 + +glabel vi_buffer_next +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 + +glabel __osViCurr +.word vi + +glabel __osViNext +.word vi_buffer_next + +glabel copy_osTvType +.word 1 + +glabel osViClock +.word 48681812 + +glabel _libultraosviSegmentDataEnd +.align 4 + diff --git a/src/libultra/viblack.s b/src/libultra/viblack.s new file mode 100644 index 0000000..c3c1a99 --- /dev/null +++ b/src/libultra/viblack.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViBlack +/* 00EED0 7000E2D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EED4 7000E2D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EED8 7000E2D8 AFA40028 */ sw $a0, 0x28($sp) +/* 00EEDC 7000E2DC 0C00617C */ jal __osDisableInt +/* 00EEE0 7000E2E0 AFB00018 */ sw $s0, 0x18($sp) +/* 00EEE4 7000E2E4 93AE002B */ lbu $t6, 0x2b($sp) +/* 00EEE8 7000E2E8 00408025 */ move $s0, $v0 +/* 00EEEC 7000E2EC 11C00007 */ beqz $t6, .L7000E30C +/* 00EEF0 7000E2F0 00000000 */ nop +/* 00EEF4 7000E2F4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EEF8 7000E2F8 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EEFC 7000E2FC 95F80000 */ lhu $t8, ($t7) +/* 00EF00 7000E300 37190020 */ ori $t9, $t8, 0x20 +/* 00EF04 7000E304 10000007 */ b .L7000E324 +/* 00EF08 7000E308 A5F90000 */ sh $t9, ($t7) +.L7000E30C: +/* 00EF0C 7000E30C 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EF10 7000E310 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00EF14 7000E314 2401FFDF */ li $at, -33 +/* 00EF18 7000E318 95090000 */ lhu $t1, ($t0) +/* 00EF1C 7000E31C 01215024 */ and $t2, $t1, $at +/* 00EF20 7000E320 A50A0000 */ sh $t2, ($t0) +.L7000E324: +/* 00EF24 7000E324 0C006184 */ jal __osRestoreInt +/* 00EF28 7000E328 02002025 */ move $a0, $s0 +/* 00EF2C 7000E32C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EF30 7000E330 8FB00018 */ lw $s0, 0x18($sp) +/* 00EF34 7000E334 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EF38 7000E338 03E00008 */ jr $ra +/* 00EF3C 7000E33C 00000000 */ nop diff --git a/src/libultra/vigetcurrcontext.s b/src/libultra/vigetcurrcontext.s new file mode 100644 index 0000000..39c715f --- /dev/null +++ b/src/libultra/vigetcurrcontext.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViGetCurrentContext +/* 019760 70018B60 3C028003 */ lui $v0, %hi(__osViCurr) +/* 019764 70018B64 03E00008 */ jr $ra +/* 019768 70018B68 8C428040 */ lw $v0, %lo(__osViCurr)($v0) + diff --git a/src/libultra/vigetcurrframebuf.s b/src/libultra/vigetcurrframebuf.s new file mode 100644 index 0000000..8c23b8f --- /dev/null +++ b/src/libultra/vigetcurrframebuf.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViGetCurrentFramebuffer +/* 00F010 7000E410 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F014 7000E414 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F018 7000E418 0C00617C */ jal __osDisableInt +/* 00F01C 7000E41C AFB00018 */ sw $s0, 0x18($sp) +/* 00F020 7000E420 3C0E8003 */ lui $t6, %hi(__osViCurr) +/* 00F024 7000E424 8DCE8040 */ lw $t6, %lo(__osViCurr)($t6) +/* 00F028 7000E428 00408025 */ move $s0, $v0 +/* 00F02C 7000E42C 02002025 */ move $a0, $s0 +/* 00F030 7000E430 8DCF0004 */ lw $t7, 4($t6) +/* 00F034 7000E434 0C006184 */ jal __osRestoreInt +/* 00F038 7000E438 AFAF0020 */ sw $t7, 0x20($sp) +/* 00F03C 7000E43C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F040 7000E440 8FA20020 */ lw $v0, 0x20($sp) +/* 00F044 7000E444 8FB00018 */ lw $s0, 0x18($sp) +/* 00F048 7000E448 03E00008 */ jr $ra +/* 00F04C 7000E44C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/vigetnextframebuf.s b/src/libultra/vigetnextframebuf.s new file mode 100644 index 0000000..1b339c2 --- /dev/null +++ b/src/libultra/vigetnextframebuf.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViGetNextFramebuffer +/* 00F050 7000E450 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F054 7000E454 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F058 7000E458 0C00617C */ jal __osDisableInt +/* 00F05C 7000E45C AFB00018 */ sw $s0, 0x18($sp) +/* 00F060 7000E460 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00F064 7000E464 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00F068 7000E468 00408025 */ move $s0, $v0 +/* 00F06C 7000E46C 02002025 */ move $a0, $s0 +/* 00F070 7000E470 8DCF0004 */ lw $t7, 4($t6) +/* 00F074 7000E474 0C006184 */ jal __osRestoreInt +/* 00F078 7000E478 AFAF0020 */ sw $t7, 0x20($sp) +/* 00F07C 7000E47C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F080 7000E480 8FA20020 */ lw $v0, 0x20($sp) +/* 00F084 7000E484 8FB00018 */ lw $s0, 0x18($sp) +/* 00F088 7000E488 03E00008 */ jr $ra +/* 00F08C 7000E48C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/vimgr.s b/src/libultra/vimgr.s new file mode 100644 index 0000000..8573492 --- /dev/null +++ b/src/libultra/vimgr.s @@ -0,0 +1,1625 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.ifndef VERSION_EU +glabel osCreateViManager +/* 00E4F0 7000D8F0 3C0E8002 */ lui $t6, %hi(__osViDevMgr) +/* 00E4F4 7000D8F4 8DCE69A0 */ lw $t6, %lo(__osViDevMgr)($t6) +/* 00E4F8 7000D8F8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00E4FC 7000D8FC AFBF001C */ sw $ra, 0x1c($sp) +/* 00E500 7000D900 15C00059 */ bnez $t6, .L7000DA68 +/* 00E504 7000D904 AFA40030 */ sw $a0, 0x30($sp) +/* 00E508 7000D908 0C00618C */ jal __osTimerServicesInit +/* 00E50C 7000D90C 00000000 */ nop +/* 00E510 7000D910 3C048006 */ lui $a0, %hi(viEventQueue) +/* 00E514 7000D914 3C058006 */ lui $a1, %hi(viEventBuf) +/* 00E518 7000D918 24A569B8 */ addiu $a1, %lo(viEventBuf) # addiu $a1, $a1, 0x69b8 +/* 00E51C 7000D91C 248469A0 */ addiu $a0, %lo(viEventQueue) # addiu $a0, $a0, 0x69a0 +/* 00E520 7000D920 0C0035B4 */ jal osCreateMesgQueue +/* 00E524 7000D924 24060005 */ li $a2, 5 +/* 00E528 7000D928 3C018006 */ lui $at, %hi(viRetraceMsg+0x4) +/* 00E52C 7000D92C 240F000D */ li $t7, 13 +/* 00E530 7000D930 A42F69D0 */ sh $t7, %lo(viRetraceMsg)($at) +/* 00E534 7000D934 A02069D2 */ sb $zero, %lo(viRetraceMsg+0x2)($at) +/* 00E538 7000D938 AC2069D4 */ sw $zero, %lo(viRetraceMsg+0x4)($at) +/* 00E53C 7000D93C 3C018006 */ lui $at, %hi(viCounterMsg+0x4) +/* 00E540 7000D940 2418000E */ li $t8, 14 +/* 00E544 7000D944 3C058006 */ lui $a1, %hi(viEventQueue) +/* 00E548 7000D948 3C068006 */ lui $a2, %hi(viRetraceMsg) +/* 00E54C 7000D94C A43869E8 */ sh $t8, %lo(viCounterMsg)($at) +/* 00E550 7000D950 A02069EA */ sb $zero, %lo(viCounterMsg+0x2)($at) +/* 00E554 7000D954 AC2069EC */ sw $zero, %lo(viCounterMsg+0x4)($at) +/* 00E558 7000D958 24C669D0 */ addiu $a2, %lo(viRetraceMsg) # addiu $a2, $a2, 0x69d0 +/* 00E55C 7000D95C 24A569A0 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x69a0 +/* 00E560 7000D960 0C003714 */ jal osSetEventMesg +/* 00E564 7000D964 24040007 */ li $a0, 7 +/* 00E568 7000D968 3C058006 */ lui $a1, %hi(viEventQueue) +/* 00E56C 7000D96C 3C068006 */ lui $a2, %hi(viCounterMsg) +/* 00E570 7000D970 24C669E8 */ addiu $a2, %lo(viCounterMsg) # addiu $a2, $a2, 0x69e8 +/* 00E574 7000D974 24A569A0 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x69a0 +/* 00E578 7000D978 0C003714 */ jal osSetEventMesg +/* 00E57C 7000D97C 24040003 */ li $a0, 3 +/* 00E580 7000D980 2419FFFF */ li $t9, -1 +/* 00E584 7000D984 AFB90028 */ sw $t9, 0x28($sp) +/* 00E588 7000D988 0C00628C */ jal osGetThreadPri +/* 00E58C 7000D98C 00002025 */ move $a0, $zero +/* 00E590 7000D990 AFA20024 */ sw $v0, 0x24($sp) +/* 00E594 7000D994 8FA80024 */ lw $t0, 0x24($sp) +/* 00E598 7000D998 8FA90030 */ lw $t1, 0x30($sp) +/* 00E59C 7000D99C 0109082A */ slt $at, $t0, $t1 +/* 00E5A0 7000D9A0 10200005 */ beqz $at, .L7000D9B8 +/* 00E5A4 7000D9A4 00000000 */ nop +/* 00E5A8 7000D9A8 AFA80028 */ sw $t0, 0x28($sp) +/* 00E5AC 7000D9AC 00002025 */ move $a0, $zero +/* 00E5B0 7000D9B0 0C003600 */ jal osSetThreadPri +/* 00E5B4 7000D9B4 01202825 */ move $a1, $t1 +.L7000D9B8: +/* 00E5B8 7000D9B8 0C00617C */ jal __osDisableInt +/* 00E5BC 7000D9BC 00000000 */ nop +/* 00E5C0 7000D9C0 3C018002 */ lui $at, %hi(D_800269AC) +/* 00E5C4 7000D9C4 3C0C8006 */ lui $t4, %hi(viEventQueue) +/* 00E5C8 7000D9C8 3C0B8006 */ lui $t3, %hi(viThread) +/* 00E5CC 7000D9CC 258C69A0 */ addiu $t4, %lo(viEventQueue) # addiu $t4, $t4, 0x69a0 +/* 00E5D0 7000D9D0 240A0001 */ li $t2, 1 +/* 00E5D4 7000D9D4 256B57F0 */ addiu $t3, %lo(viThread) # addiu $t3, $t3, 0x57f0 +/* 00E5D8 7000D9D8 AC2A69A0 */ sw $t2, %lo(__osViDevMgr)($at) +/* 00E5DC 7000D9DC AC2B69A4 */ sw $t3, %lo(D_800269A4)($at) +/* 00E5E0 7000D9E0 AC2C69A8 */ sw $t4, %lo(D_800269A8)($at) +/* 00E5E4 7000D9E4 AC2C69AC */ sw $t4, %lo(D_800269AC)($at) +/* 00E5E8 7000D9E8 3C0D8006 */ lui $t5, %hi(viThreadStack) +/* 00E5EC 7000D9EC 8FAF0030 */ lw $t7, 0x30($sp) +/* 00E5F0 7000D9F0 3C018002 */ lui $at, %hi(D_800269B8) +/* 00E5F4 7000D9F4 25AD59A0 */ addiu $t5, %lo(viThreadStack) # addiu $t5, $t5, 0x59a0 +/* 00E5F8 7000D9F8 25AE1000 */ addiu $t6, $t5, 0x1000 +/* 00E5FC 7000D9FC 3C067001 */ lui $a2, %hi(viMgrMain) # $a2, 0x7001 +/* 00E600 7000DA00 3C078002 */ lui $a3, %hi(__osViDevMgr) +/* 00E604 7000DA04 AFA2002C */ sw $v0, 0x2c($sp) +/* 00E608 7000DA08 AC2069B0 */ sw $zero, %lo(D_800269B0)($at) +/* 00E60C 7000DA0C AC2069B4 */ sw $zero, %lo(D_800269B4)($at) +/* 00E610 7000DA10 AC2069B8 */ sw $zero, %lo(D_800269B8)($at) +/* 00E614 7000DA14 24E769A0 */ addiu $a3, %lo(__osViDevMgr) # addiu $a3, $a3, 0x69a0 +/* 00E618 7000DA18 24C6DA78 */ addiu $a2, %lo(viMgrMain) # addiu $a2, $a2, -0x2588 +/* 00E61C 7000DA1C AFAE0010 */ sw $t6, 0x10($sp) +/* 00E620 7000DA20 01602025 */ move $a0, $t3 +/* 00E624 7000DA24 00002825 */ move $a1, $zero +/* 00E628 7000DA28 0C00350C */ jal osCreateThread +/* 00E62C 7000DA2C AFAF0014 */ sw $t7, 0x14($sp) +/* 00E630 7000DA30 0C006294 */ jal __osViInit +/* 00E634 7000DA34 00000000 */ nop +/* 00E638 7000DA38 3C048006 */ lui $a0, %hi(viThread) +/* 00E63C 7000DA3C 0C003560 */ jal osStartThread +/* 00E640 7000DA40 248457F0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x57f0 +/* 00E644 7000DA44 0C006184 */ jal __osRestoreInt +/* 00E648 7000DA48 8FA4002C */ lw $a0, 0x2c($sp) +/* 00E64C 7000DA4C 8FB80028 */ lw $t8, 0x28($sp) +/* 00E650 7000DA50 2401FFFF */ li $at, -1 +/* 00E654 7000DA54 13010004 */ beq $t8, $at, .L7000DA68 +/* 00E658 7000DA58 00000000 */ nop +/* 00E65C 7000DA5C 00002025 */ move $a0, $zero +/* 00E660 7000DA60 0C003600 */ jal osSetThreadPri +/* 00E664 7000DA64 03002825 */ move $a1, $t8 +.L7000DA68: +/* 00E668 7000DA68 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E66C 7000DA6C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 00E670 7000DA70 03E00008 */ jr $ra +/* 00E674 7000DA74 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel osCreateViManager +/* 0023E0 700017E0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0023E4 700017E4 AFB00020 */ sw $s0, 0x20($sp) +/* 0023E8 700017E8 3C108002 */ lui $s0, %hi(__osViDevMgr) # $s0, 0x8002 +/* 0023EC 700017EC 26100F90 */ addiu $s0, %lo(__osViDevMgr) # addiu $s0, $s0, 0xf90 +/* 0023F0 700017F0 8E0E0000 */ lw $t6, ($s0) +/* 0023F4 700017F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0023F8 700017F8 AFA40030 */ sw $a0, 0x30($sp) +/* 0023FC 700017FC 55C00052 */ bnezl $t6, .L70001948 +/* 002400 70001800 8FBF0024 */ lw $ra, 0x24($sp) +/* 002404 70001804 0C0034A0 */ jal __osTimerServicesInit +/* 002408 70001808 00000000 */ nop +/* 00240C 7000180C 3C048005 */ lui $a0, %hi(viEventQueue) # $a0, 0x8005 +/* 002410 70001810 3C058005 */ lui $a1, %hi(viEventBuf) # $a1, 0x8005 +/* 002414 70001814 24A52278 */ addiu $a1, %lo(viEventBuf) # addiu $a1, $a1, 0x2278 +/* 002418 70001818 24842260 */ addiu $a0, %lo(viEventQueue) # addiu $a0, $a0, 0x2260 +/* 00241C 7000181C 0C00310C */ jal osCreateMesgQueue +/* 002420 70001820 24060005 */ li $a2, 5 +/* 002424 70001824 3C068005 */ lui $a2, %hi(viRetraceMsg) # $a2, 0x8005 +/* 002428 70001828 3C078005 */ lui $a3, %hi(viCounterMsg) # $a3, 0x8005 +/* 00242C 7000182C 24E722A8 */ addiu $a3, %lo(viCounterMsg) # addiu $a3, $a3, 0x22a8 +/* 002430 70001830 24C62290 */ addiu $a2, %lo(viRetraceMsg) # addiu $a2, $a2, 0x2290 +/* 002434 70001834 240F000D */ li $t7, 13 +/* 002438 70001838 2418000E */ li $t8, 14 +/* 00243C 7000183C 3C058005 */ lui $a1, %hi(viEventQueue) # $a1, 0x8005 +/* 002440 70001840 A4CF0000 */ sh $t7, ($a2) +/* 002444 70001844 A0C00002 */ sb $zero, 2($a2) +/* 002448 70001848 ACC00004 */ sw $zero, 4($a2) +/* 00244C 7000184C A4F80000 */ sh $t8, ($a3) +/* 002450 70001850 A0E00002 */ sb $zero, 2($a3) +/* 002454 70001854 ACE00004 */ sw $zero, 4($a3) +/* 002458 70001858 24A52260 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x2260 +/* 00245C 7000185C 0C003194 */ jal osSetEventMesg +/* 002460 70001860 24040007 */ li $a0, 7 +/* 002464 70001864 3C078005 */ lui $a3, %hi(viCounterMsg) +/* 002468 70001868 3C058005 */ lui $a1, %hi(viEventQueue) # $a1, 0x8005 +/* 00246C 7000186C 24E622A8 */ addiu $a2, $a3, %lo(viCounterMsg) +/* 002470 70001870 24A52260 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x2260 +/* 002474 70001874 0C003194 */ jal osSetEventMesg +/* 002478 70001878 24040003 */ li $a0, 3 +/* 00247C 7000187C 2419FFFF */ li $t9, -1 +/* 002480 70001880 AFB90028 */ sw $t9, 0x28($sp) +/* 002484 70001884 0C0035A0 */ jal osGetThreadPri +/* 002488 70001888 00002025 */ move $a0, $zero +/* 00248C 7000188C 8FA80030 */ lw $t0, 0x30($sp) +/* 002490 70001890 00002025 */ move $a0, $zero +/* 002494 70001894 0048082A */ slt $at, $v0, $t0 +/* 002498 70001898 10200003 */ beqz $at, .L700018A8 +/* 00249C 7000189C 01002825 */ move $a1, $t0 +/* 0024A0 700018A0 0C003158 */ jal osSetThreadPri +/* 0024A4 700018A4 AFA20028 */ sw $v0, 0x28($sp) +.L700018A8: +/* 0024A8 700018A8 0C0035A8 */ jal __osDisableInt +/* 0024AC 700018AC 00000000 */ nop +/* 0024B0 700018B0 8FAB0030 */ lw $t3, 0x30($sp) +/* 0024B4 700018B4 3C038005 */ lui $v1, %hi(viEventQueue) # $v1, 0x8005 +/* 0024B8 700018B8 3C048005 */ lui $a0, %hi(viThread) # $a0, 0x8005 +/* 0024BC 700018BC 3C0A8005 */ lui $t2, %hi(viEventQueue) # $t2, 0x8005 +/* 0024C0 700018C0 24841FB0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x1fb0 +/* 0024C4 700018C4 24632260 */ addiu $v1, %lo(viEventQueue) # addiu $v1, $v1, 0x2260 +/* 0024C8 700018C8 24090001 */ li $t1, 1 +/* 0024CC 700018CC 254A2260 */ addiu $t2, %lo(viEventQueue) # addiu $t2, $t2, 0x2260 +/* 0024D0 700018D0 3C067000 */ lui $a2, %hi(viMgrMain) # $a2, 0x7000 +/* 0024D4 700018D4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0024D8 700018D8 AE090000 */ sw $t1, ($s0) +/* 0024DC 700018DC AE040004 */ sw $a0, 4($s0) +/* 0024E0 700018E0 AE030008 */ sw $v1, 8($s0) +/* 0024E4 700018E4 AE03000C */ sw $v1, 0xc($s0) +/* 0024E8 700018E8 AE000010 */ sw $zero, 0x10($s0) +/* 0024EC 700018EC AE000014 */ sw $zero, 0x14($s0) +/* 0024F0 700018F0 AE000018 */ sw $zero, 0x18($s0) +/* 0024F4 700018F4 24C61958 */ addiu $a2, %lo(viMgrMain) # addiu $a2, $a2, 0x1958 +/* 0024F8 700018F8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0024FC 700018FC 00002825 */ move $a1, $zero +/* 002500 70001900 02003825 */ move $a3, $s0 +/* 002504 70001904 0C003064 */ jal osCreateThread +/* 002508 70001908 AFAB0014 */ sw $t3, 0x14($sp) +/* 00250C 7000190C 0C0035B8 */ jal __osViInit +/* 002510 70001910 00000000 */ nop +/* 002514 70001914 3C048005 */ lui $a0, %hi(viThread) # $a0, 0x8005 +/* 002518 70001918 0C0030B8 */ jal osStartThread +/* 00251C 7000191C 24841FB0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x1fb0 +/* 002520 70001920 0C0035B0 */ jal __osRestoreInt +/* 002524 70001924 8FA4002C */ lw $a0, 0x2c($sp) +/* 002528 70001928 8FAC0028 */ lw $t4, 0x28($sp) +/* 00252C 7000192C 2401FFFF */ li $at, -1 +/* 002530 70001930 00002025 */ move $a0, $zero +/* 002534 70001934 51810004 */ beql $t4, $at, .L70001948 +/* 002538 70001938 8FBF0024 */ lw $ra, 0x24($sp) +/* 00253C 7000193C 0C003158 */ jal osSetThreadPri +/* 002540 70001940 01802825 */ move $a1, $t4 +/* 002544 70001944 8FBF0024 */ lw $ra, 0x24($sp) +.L70001948: +/* 002548 70001948 8FB00020 */ lw $s0, 0x20($sp) +/* 00254C 7000194C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 002550 70001950 03E00008 */ jr $ra +/* 002554 70001954 00000000 */ nop +.endif + +.ifndef VERSION_EU +glabel viMgrMain +/* 00E678 7000DA78 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00E67C 7000DA7C AFBF001C */ sw $ra, 0x1c($sp) +/* 00E680 7000DA80 AFA40038 */ sw $a0, 0x38($sp) +/* 00E684 7000DA84 AFB00018 */ sw $s0, 0x18($sp) +/* 00E688 7000DA88 AFA0002C */ sw $zero, 0x2c($sp) +/* 00E68C 7000DA8C 0C0062D8 */ jal __osViGetCurrentContext +/* 00E690 7000DA90 AFA00028 */ sw $zero, 0x28($sp) +/* 00E694 7000DA94 AFA20034 */ sw $v0, 0x34($sp) +/* 00E698 7000DA98 8FAE0034 */ lw $t6, 0x34($sp) +/* 00E69C 7000DA9C 3C018006 */ lui $at, %hi(retrace) +/* 00E6A0 7000DAA0 95CF0002 */ lhu $t7, 2($t6) +/* 00E6A4 7000DAA4 15E00004 */ bnez $t7, .L7000DAB8 +/* 00E6A8 7000DAA8 A42F6A00 */ sh $t7, %lo(retrace)($at) +/* 00E6AC 7000DAAC 24180001 */ li $t8, 1 +/* 00E6B0 7000DAB0 3C018006 */ lui $at, %hi(retrace) +/* 00E6B4 7000DAB4 A4386A00 */ sh $t8, %lo(retrace)($at) +.L7000DAB8: +/* 00E6B8 7000DAB8 8FB90038 */ lw $t9, 0x38($sp) +/* 00E6BC 7000DABC AFB90030 */ sw $t9, 0x30($sp) +.L7000DAC0: +/* 00E6C0 7000DAC0 8FA80030 */ lw $t0, 0x30($sp) +/* 00E6C4 7000DAC4 27A5002C */ addiu $a1, $sp, 0x2c +/* 00E6C8 7000DAC8 24060001 */ li $a2, 1 +/* 00E6CC 7000DACC 0C003774 */ jal osRecvMesg +/* 00E6D0 7000DAD0 8D04000C */ lw $a0, 0xc($t0) +/* 00E6D4 7000DAD4 8FA9002C */ lw $t1, 0x2c($sp) +/* 00E6D8 7000DAD8 2401000D */ li $at, 13 +/* 00E6DC 7000DADC 95300000 */ lhu $s0, ($t1) +/* 00E6E0 7000DAE0 12010005 */ beq $s0, $at, .L7000DAF8 +/* 00E6E4 7000DAE4 2401000E */ li $at, 14 +/* 00E6E8 7000DAE8 12010047 */ beq $s0, $at, .L7000DC08 +/* 00E6EC 7000DAEC 00000000 */ nop +/* 00E6F0 7000DAF0 1000FFF3 */ b .L7000DAC0 +/* 00E6F4 7000DAF4 00000000 */ nop +.L7000DAF8: +/* 00E6F8 7000DAF8 0C0062DC */ jal __osViSwapContext +/* 00E6FC 7000DAFC 00000000 */ nop +/* 00E700 7000DB00 3C0A8006 */ lui $t2, %hi(retrace) +/* 00E704 7000DB04 954A6A00 */ lhu $t2, %lo(retrace)($t2) +/* 00E708 7000DB08 3C018006 */ lui $at, %hi(retrace) +/* 00E70C 7000DB0C 254BFFFF */ addiu $t3, $t2, -1 +/* 00E710 7000DB10 316CFFFF */ andi $t4, $t3, 0xffff +/* 00E714 7000DB14 15800010 */ bnez $t4, .L7000DB58 +/* 00E718 7000DB18 A42B6A00 */ sh $t3, %lo(retrace)($at) +/* 00E71C 7000DB1C 0C0062D8 */ jal __osViGetCurrentContext +/* 00E720 7000DB20 00000000 */ nop +/* 00E724 7000DB24 AFA20034 */ sw $v0, 0x34($sp) +/* 00E728 7000DB28 8FAD0034 */ lw $t5, 0x34($sp) +/* 00E72C 7000DB2C 8DAE0010 */ lw $t6, 0x10($t5) +/* 00E730 7000DB30 11C00005 */ beqz $t6, .L7000DB48 +/* 00E734 7000DB34 00000000 */ nop +/* 00E738 7000DB38 01C02025 */ move $a0, $t6 +/* 00E73C 7000DB3C 8DA50014 */ lw $a1, 0x14($t5) +/* 00E740 7000DB40 0C0037C4 */ jal osSendMesg +/* 00E744 7000DB44 00003025 */ move $a2, $zero +.L7000DB48: +/* 00E748 7000DB48 8FAF0034 */ lw $t7, 0x34($sp) +/* 00E74C 7000DB4C 3C018006 */ lui $at, %hi(retrace) +/* 00E750 7000DB50 95F80002 */ lhu $t8, 2($t7) +/* 00E754 7000DB54 A4386A00 */ sh $t8, %lo(retrace)($at) +.L7000DB58: +/* 00E758 7000DB58 3C198007 */ lui $t9, %hi(__osViIntrCount) +/* 00E75C 7000DB5C 8F398E1C */ lw $t9, %lo(__osViIntrCount)($t9) +/* 00E760 7000DB60 8FA90028 */ lw $t1, 0x28($sp) +/* 00E764 7000DB64 3C018007 */ lui $at, %hi(__osViIntrCount) +/* 00E768 7000DB68 27280001 */ addiu $t0, $t9, 1 +/* 00E76C 7000DB6C 1120000C */ beqz $t1, .L7000DBA0 +/* 00E770 7000DB70 AC288E1C */ sw $t0, %lo(__osViIntrCount)($at) +/* 00E774 7000DB74 0C003638 */ jal osGetCount +/* 00E778 7000DB78 00000000 */ nop +/* 00E77C 7000DB7C AFA20024 */ sw $v0, 0x24($sp) +/* 00E780 7000DB80 8FAA0024 */ lw $t2, 0x24($sp) +/* 00E784 7000DB84 240C0000 */ li $t4, 0 +/* 00E788 7000DB88 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 00E78C 7000DB8C AC2C8E10 */ sw $t4, %lo(__osCurrentTime)($at) +/* 00E790 7000DB90 3C018007 */ lui $at, %hi(__osCurrentTime+4) +/* 00E794 7000DB94 01406825 */ move $t5, $t2 +/* 00E798 7000DB98 AC2D8E14 */ sw $t5, %lo(__osCurrentTime+4)($at) +/* 00E79C 7000DB9C AFA00028 */ sw $zero, 0x28($sp) +.L7000DBA0: +/* 00E7A0 7000DBA0 3C0B8007 */ lui $t3, %hi(__osBaseCounter) +/* 00E7A4 7000DBA4 8D6B8E18 */ lw $t3, %lo(__osBaseCounter)($t3) +/* 00E7A8 7000DBA8 0C003638 */ jal osGetCount +/* 00E7AC 7000DBAC AFAB0024 */ sw $t3, 0x24($sp) +/* 00E7B0 7000DBB0 3C018007 */ lui $at, %hi(__osBaseCounter) +/* 00E7B4 7000DBB4 AC228E18 */ sw $v0, %lo(__osBaseCounter)($at) +/* 00E7B8 7000DBB8 3C0E8007 */ lui $t6, %hi(__osBaseCounter) +/* 00E7BC 7000DBBC 8DCE8E18 */ lw $t6, %lo(__osBaseCounter)($t6) +/* 00E7C0 7000DBC0 8FAF0024 */ lw $t7, 0x24($sp) +/* 00E7C4 7000DBC4 3C0B8007 */ lui $t3, %hi(__osCurrentTime+4) +/* 00E7C8 7000DBC8 8D6B8E14 */ lw $t3, %lo(__osCurrentTime+4)($t3) +/* 00E7CC 7000DBCC 01CFC023 */ subu $t8, $t6, $t7 +/* 00E7D0 7000DBD0 03004825 */ move $t1, $t8 +/* 00E7D4 7000DBD4 3C0A8007 */ lui $t2, %hi(__osCurrentTime) +/* 00E7D8 7000DBD8 012B6821 */ addu $t5, $t1, $t3 +/* 00E7DC 7000DBDC 8D4A8E10 */ lw $t2, %lo(__osCurrentTime)($t2) +/* 00E7E0 7000DBE0 24080000 */ li $t0, 0 +/* 00E7E4 7000DBE4 01AB082B */ sltu $at, $t5, $t3 +/* 00E7E8 7000DBE8 00286021 */ addu $t4, $at, $t0 +/* 00E7EC 7000DBEC 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 00E7F0 7000DBF0 018A6021 */ addu $t4, $t4, $t2 +/* 00E7F4 7000DBF4 AC2C8E10 */ sw $t4, %lo(__osCurrentTime)($at) +/* 00E7F8 7000DBF8 3C018007 */ lui $at, %hi(__osCurrentTime+4) +/* 00E7FC 7000DBFC AFB80024 */ sw $t8, 0x24($sp) +/* 00E800 7000DC00 1000FFAF */ b .L7000DAC0 +/* 00E804 7000DC04 AC2D8E14 */ sw $t5, %lo(__osCurrentTime+4)($at) +.L7000DC08: +/* 00E808 7000DC08 0C0061AF */ jal __osTimerInterrupt +/* 00E80C 7000DC0C 00000000 */ nop +/* 00E810 7000DC10 1000FFAB */ b .L7000DAC0 +/* 00E814 7000DC14 00000000 */ nop +/* 00E818 7000DC18 00000000 */ nop +/* 00E81C 7000DC1C 00000000 */ nop +/* 00E820 7000DC20 00000000 */ nop +/* 00E824 7000DC24 00000000 */ nop +/* 00E828 7000DC28 00000000 */ nop +/* 00E82C 7000DC2C 00000000 */ nop +/* 00E830 7000DC30 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E834 7000DC34 8FB00018 */ lw $s0, 0x18($sp) +/* 00E838 7000DC38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00E83C 7000DC3C 03E00008 */ jr $ra +/* 00E840 7000DC40 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel viMgrMain +/* 002558 70001958 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00255C 7000195C AFBF0034 */ sw $ra, 0x34($sp) +/* 002560 70001960 AFB70030 */ sw $s7, 0x30($sp) +/* 002564 70001964 0080B825 */ move $s7, $a0 +/* 002568 70001968 AFB6002C */ sw $s6, 0x2c($sp) +/* 00256C 7000196C AFB50028 */ sw $s5, 0x28($sp) +/* 002570 70001970 AFB40024 */ sw $s4, 0x24($sp) +/* 002574 70001974 AFB30020 */ sw $s3, 0x20($sp) +/* 002578 70001978 AFB2001C */ sw $s2, 0x1c($sp) +/* 00257C 7000197C AFB10018 */ sw $s1, 0x18($sp) +/* 002580 70001980 AFB00014 */ sw $s0, 0x14($sp) +/* 002584 70001984 0C0035FC */ jal __osViGetCurrentContext +/* 002588 70001988 AFA00044 */ sw $zero, 0x44($sp) +/* 00258C 7000198C 94430002 */ lhu $v1, 2($v0) +/* 002590 70001990 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002594 70001994 2416000E */ li $s6, 14 +/* 002598 70001998 14600004 */ bnez $v1, .L700019AC +/* 00259C 7000199C A42322C0 */ sh $v1, %lo(retrace)($at) +/* 0025A0 700019A0 24030001 */ li $v1, 1 +/* 0025A4 700019A4 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 0025A8 700019A8 A42322C0 */ sh $v1, %lo(retrace)($at) +.L700019AC: +/* 0025AC 700019AC 3C138005 */ lui $s3, %hi(__osViIntrCount) # $s3, 0x8005 +/* 0025B0 700019B0 3C128005 */ lui $s2, %hi(__osBaseCounter) # $s2, 0x8005 +/* 0025B4 700019B4 3C118005 */ lui $s1, %hi(__osCurrentTime) # $s1, 0x8005 +/* 0025B8 700019B8 26317C80 */ addiu $s1, %lo(__osCurrentTime) # addiu $s1, $s1, 0x7c80 +/* 0025BC 700019BC 26527C88 */ addiu $s2, %lo(__osBaseCounter) # addiu $s2, $s2, 0x7c88 +/* 0025C0 700019C0 26737C8C */ addiu $s3, %lo(__osViIntrCount) # addiu $s3, $s3, 0x7c8c +/* 0025C4 700019C4 2415000D */ li $s5, 13 +/* 0025C8 700019C8 27B40044 */ addiu $s4, $sp, 0x44 +.L700019CC: +/* 0025CC 700019CC 8EE4000C */ lw $a0, 0xc($s7) +.L700019D0: +/* 0025D0 700019D0 02802825 */ move $a1, $s4 +/* 0025D4 700019D4 0C0031F4 */ jal osRecvMesg +/* 0025D8 700019D8 24060001 */ li $a2, 1 +/* 0025DC 700019DC 8FAE0044 */ lw $t6, 0x44($sp) +/* 0025E0 700019E0 95C30000 */ lhu $v1, ($t6) +/* 0025E4 700019E4 10750005 */ beq $v1, $s5, .L700019FC +/* 0025E8 700019E8 00000000 */ nop +/* 0025EC 700019EC 1076002A */ beq $v1, $s6, .L70001A98 +/* 0025F0 700019F0 00000000 */ nop +/* 0025F4 700019F4 1000FFF6 */ b .L700019D0 +/* 0025F8 700019F8 8EE4000C */ lw $a0, 0xc($s7) +.L700019FC: +/* 0025FC 700019FC 0C003600 */ jal __osViSwapContext +/* 002600 70001A00 00000000 */ nop +/* 002604 70001A04 3C038005 */ lui $v1, %hi(retrace) # $v1, 0x8005 +/* 002608 70001A08 946322C0 */ lhu $v1, %lo(retrace)($v1) +/* 00260C 70001A0C 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002610 70001A10 2463FFFF */ addiu $v1, $v1, -1 +/* 002614 70001A14 306FFFFF */ andi $t7, $v1, 0xffff +/* 002618 70001A18 15E0000E */ bnez $t7, .L70001A54 +/* 00261C 70001A1C A42F22C0 */ sh $t7, %lo(retrace)($at) +/* 002620 70001A20 0C0035FC */ jal __osViGetCurrentContext +/* 002624 70001A24 00000000 */ nop +/* 002628 70001A28 8C580010 */ lw $t8, 0x10($v0) +/* 00262C 70001A2C 00408025 */ move $s0, $v0 +/* 002630 70001A30 00003025 */ move $a2, $zero +/* 002634 70001A34 53000005 */ beql $t8, $zero, .L70001A4C +/* 002638 70001A38 96030002 */ lhu $v1, 2($s0) +/* 00263C 70001A3C 8C440010 */ lw $a0, 0x10($v0) +/* 002640 70001A40 0C003244 */ jal osSendMesg +/* 002644 70001A44 8C450014 */ lw $a1, 0x14($v0) +/* 002648 70001A48 96030002 */ lhu $v1, 2($s0) +.L70001A4C: +/* 00264C 70001A4C 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002650 70001A50 A42322C0 */ sh $v1, %lo(retrace)($at) +.L70001A54: +/* 002654 70001A54 8E790000 */ lw $t9, ($s3) +/* 002658 70001A58 8E500000 */ lw $s0, ($s2) +/* 00265C 70001A5C 27280001 */ addiu $t0, $t9, 1 +/* 002660 70001A60 0C003190 */ jal osGetCount +/* 002664 70001A64 AE680000 */ sw $t0, ($s3) +/* 002668 70001A68 8E2D0004 */ lw $t5, 4($s1) +/* 00266C 70001A6C 00508023 */ subu $s0, $v0, $s0 +/* 002670 70001A70 8E2C0000 */ lw $t4, ($s1) +/* 002674 70001A74 020D7821 */ addu $t7, $s0, $t5 +/* 002678 70001A78 240A0000 */ li $t2, 0 +/* 00267C 70001A7C 01ED082B */ sltu $at, $t7, $t5 +/* 002680 70001A80 002A7021 */ addu $t6, $at, $t2 +/* 002684 70001A84 01CC7021 */ addu $t6, $t6, $t4 +/* 002688 70001A88 AE420000 */ sw $v0, ($s2) +/* 00268C 70001A8C AE2E0000 */ sw $t6, ($s1) +/* 002690 70001A90 1000FFCE */ b .L700019CC +/* 002694 70001A94 AE2F0004 */ sw $t7, 4($s1) +.L70001A98: +/* 002698 70001A98 0C0034C3 */ jal __osTimerInterrupt +/* 00269C 70001A9C 00000000 */ nop +/* 0026A0 70001AA0 1000FFCB */ b .L700019D0 +/* 0026A4 70001AA4 8EE4000C */ lw $a0, 0xc($s7) +/* 0026A8 70001AA8 00000000 */ nop +/* 0026AC 70001AAC 00000000 */ nop +/* 0026B0 70001AB0 00000000 */ nop +/* 0026B4 70001AB4 00000000 */ nop +/* 0026B8 70001AB8 00000000 */ nop +/* 0026BC 70001ABC 00000000 */ nop +/* 0026C0 70001AC0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0026C4 70001AC4 8FB00014 */ lw $s0, 0x14($sp) +/* 0026C8 70001AC8 8FB10018 */ lw $s1, 0x18($sp) +/* 0026CC 70001ACC 8FB2001C */ lw $s2, 0x1c($sp) +/* 0026D0 70001AD0 8FB30020 */ lw $s3, 0x20($sp) +/* 0026D4 70001AD4 8FB40024 */ lw $s4, 0x24($sp) +/* 0026D8 70001AD8 8FB50028 */ lw $s5, 0x28($sp) +/* 0026DC 70001ADC 8FB6002C */ lw $s6, 0x2c($sp) +/* 0026E0 70001AE0 8FB70030 */ lw $s7, 0x30($sp) +/* 0026E4 70001AE4 03E00008 */ jr $ra +/* 0026E8 70001AE8 27BD0050 */ addiu $sp, $sp, 0x50 +.endif + +.section .data +glabel __osViDevMgr +.word 0 +glabel D_800269A4 +.word 0 +glabel D_800269A8 +.word 0 +glabel D_800269AC +.word 0 +glabel D_800269B0 +.word 0 +glabel D_800269B4 +.word 0 +glabel D_800269B8 +.word 0 + + + + +.section .rodata + + +.section .bss +glabel viThread +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 + +glabel viThreadStack + #[4096] +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.section .bss +glabel viEventQueue +.word 0, 0, 0, 0, 0, 0 + +glabel viEventBuf +.word 0, 0, 0, 0, 0, 0 + +glabel viRetraceMsg +.word 0, 0, 0, 0, 0, 0 + +glabel viCounterMsg +.word 0, 0, 0, 0, 0, 0 + +glabel retrace +.half 0 + diff --git a/src/libultra/vimodentsclan1.s b/src/libultra/vimodentsclan1.s new file mode 100644 index 0000000..e5c96ed --- /dev/null +++ b/src/libultra/vimodentsclan1.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .data +glabel osViModeNtscLan1 +.word 0x2000000, 0x311E, 0x140, 0x3E52239 +.word 0x20D, 0xC15, 0xC150C15, 0x6C02EC +.word 0x200, 0, 0x280, 0x400 +.word 0x2501FF, 0xE0204, 2, 0x280 +.word 0x400, 0x2501FF, 0xE0204, 2 diff --git a/src/libultra/vimodepallan1.s b/src/libultra/vimodepallan1.s new file mode 100644 index 0000000..a88a4a6 --- /dev/null +++ b/src/libultra/vimodepallan1.s @@ -0,0 +1,21 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .data +glabel osViModePalLan1 +.word 0x10000000, 0x311E, 0x140, 0x404233A +.word 0x271, 0x150C69, 0xC6F0C6E, 0x800300 +.word 0x200, 0, 0x280, 0x400 +.word 0x5F0239, 0x9026B, 2, 0x280 +.word 0x400, 0x5F0239, 0x9026B, 2 + + diff --git a/src/libultra/virepeatline.s b/src/libultra/virepeatline.s new file mode 100644 index 0000000..7bea1f4 --- /dev/null +++ b/src/libultra/virepeatline.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViRepeatLine +/* 00EE60 7000E260 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EE64 7000E264 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EE68 7000E268 AFA40028 */ sw $a0, 0x28($sp) +/* 00EE6C 7000E26C 0C00617C */ jal __osDisableInt +/* 00EE70 7000E270 AFB00018 */ sw $s0, 0x18($sp) +/* 00EE74 7000E274 93AE002B */ lbu $t6, 0x2b($sp) +/* 00EE78 7000E278 00408025 */ move $s0, $v0 +/* 00EE7C 7000E27C 11C00007 */ beqz $t6, .L7000E29C +/* 00EE80 7000E280 00000000 */ nop +/* 00EE84 7000E284 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EE88 7000E288 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EE8C 7000E28C 95F80000 */ lhu $t8, ($t7) +/* 00EE90 7000E290 37190040 */ ori $t9, $t8, 0x40 +/* 00EE94 7000E294 10000007 */ b .L7000E2B4 +/* 00EE98 7000E298 A5F90000 */ sh $t9, ($t7) +.L7000E29C: +/* 00EE9C 7000E29C 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EEA0 7000E2A0 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00EEA4 7000E2A4 2401FFBF */ li $at, -65 +/* 00EEA8 7000E2A8 95090000 */ lhu $t1, ($t0) +/* 00EEAC 7000E2AC 01215024 */ and $t2, $t1, $at +/* 00EEB0 7000E2B0 A50A0000 */ sh $t2, ($t0) +.L7000E2B4: +/* 00EEB4 7000E2B4 0C006184 */ jal __osRestoreInt +/* 00EEB8 7000E2B8 02002025 */ move $a0, $s0 +/* 00EEBC 7000E2BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EEC0 7000E2C0 8FB00018 */ lw $s0, 0x18($sp) +/* 00EEC4 7000E2C4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EEC8 7000E2C8 03E00008 */ jr $ra +/* 00EECC 7000E2CC 00000000 */ nop diff --git a/src/libultra/virtualtophysical.s b/src/libultra/virtualtophysical.s new file mode 100644 index 0000000..f558646 --- /dev/null +++ b/src/libultra/virtualtophysical.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osVirtualToPhysical +/* 00F4B0 7000E8B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F4B4 7000E8B4 AFA40018 */ sw $a0, 0x18($sp) +/* 00F4B8 7000E8B8 8FAE0018 */ lw $t6, 0x18($sp) +/* 00F4BC 7000E8BC 3C018000 */ lui $at, 0x8000 +/* 00F4C0 7000E8C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F4C4 7000E8C4 01C1082B */ sltu $at, $t6, $at +/* 00F4C8 7000E8C8 14200007 */ bnez $at, .L7000E8E8 +/* 00F4CC 7000E8CC 3C01A000 */ lui $at, 0xa000 +/* 00F4D0 7000E8D0 01C1082B */ sltu $at, $t6, $at +/* 00F4D4 7000E8D4 10200004 */ beqz $at, .L7000E8E8 +/* 00F4D8 7000E8D8 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00F4DC 7000E8DC 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00F4E0 7000E8E0 1000000E */ b .L7000E91C +/* 00F4E4 7000E8E4 01C11024 */ and $v0, $t6, $at +.L7000E8E8: +/* 00F4E8 7000E8E8 8FAF0018 */ lw $t7, 0x18($sp) +/* 00F4EC 7000E8EC 3C01A000 */ lui $at, 0xa000 +/* 00F4F0 7000E8F0 01E1082B */ sltu $at, $t7, $at +/* 00F4F4 7000E8F4 14200007 */ bnez $at, .L7000E914 +/* 00F4F8 7000E8F8 3C01C000 */ lui $at, 0xc000 +/* 00F4FC 7000E8FC 01E1082B */ sltu $at, $t7, $at +/* 00F500 7000E900 10200004 */ beqz $at, .L7000E914 +/* 00F504 7000E904 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00F508 7000E908 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00F50C 7000E90C 10000003 */ b .L7000E91C +/* 00F510 7000E910 01E11024 */ and $v0, $t7, $at +.L7000E914: +/* 00F514 7000E914 0C006408 */ jal __osProbeTLB +/* 00F518 7000E918 8FA40018 */ lw $a0, 0x18($sp) +.L7000E91C: +/* 00F51C 7000E91C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F520 7000E920 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F524 7000E924 03E00008 */ jr $ra +/* 00F528 7000E928 00000000 */ nop diff --git a/src/libultra/visetevent.s b/src/libultra/visetevent.s new file mode 100644 index 0000000..e0ae7cd --- /dev/null +++ b/src/libultra/visetevent.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViSetEvent +/* 00E8C0 7000DCC0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E8C4 7000DCC4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E8C8 7000DCC8 AFA40028 */ sw $a0, 0x28($sp) +/* 00E8CC 7000DCCC AFA5002C */ sw $a1, 0x2c($sp) +/* 00E8D0 7000DCD0 AFA60030 */ sw $a2, 0x30($sp) +/* 00E8D4 7000DCD4 0C00617C */ jal __osDisableInt +/* 00E8D8 7000DCD8 AFB00018 */ sw $s0, 0x18($sp) +/* 00E8DC 7000DCDC 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00E8E0 7000DCE0 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00E8E4 7000DCE4 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E8E8 7000DCE8 3C198003 */ lui $t9, %hi(__osViNext) +/* 00E8EC 7000DCEC 3C098003 */ lui $t1, %hi(__osViNext) +/* 00E8F0 7000DCF0 ADEE0010 */ sw $t6, 0x10($t7) +/* 00E8F4 7000DCF4 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 00E8F8 7000DCF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 00E8FC 7000DCFC 00408025 */ move $s0, $v0 +/* 00E900 7000DD00 02002025 */ move $a0, $s0 +/* 00E904 7000DD04 AF380014 */ sw $t8, 0x14($t9) +/* 00E908 7000DD08 8D298044 */ lw $t1, %lo(__osViNext)($t1) +/* 00E90C 7000DD0C 8FA80030 */ lw $t0, 0x30($sp) +/* 00E910 7000DD10 0C006184 */ jal __osRestoreInt +/* 00E914 7000DD14 A5280002 */ sh $t0, 2($t1) +/* 00E918 7000DD18 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E91C 7000DD1C 8FB00018 */ lw $s0, 0x18($sp) +/* 00E920 7000DD20 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E924 7000DD24 03E00008 */ jr $ra +/* 00E928 7000DD28 00000000 */ nop + + \ No newline at end of file diff --git a/src/libultra/visetmode.s b/src/libultra/visetmode.s new file mode 100644 index 0000000..86ab2bf --- /dev/null +++ b/src/libultra/visetmode.s @@ -0,0 +1,36 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetMode +/* 00EC60 7000E060 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EC64 7000E064 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EC68 7000E068 AFA40028 */ sw $a0, 0x28($sp) +/* 00EC6C 7000E06C 0C00617C */ jal __osDisableInt +/* 00EC70 7000E070 AFB00018 */ sw $s0, 0x18($sp) +/* 00EC74 7000E074 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EC78 7000E078 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EC7C 7000E07C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00EC80 7000E080 3C198003 */ lui $t9, %hi(__osViNext) +/* 00EC84 7000E084 24180001 */ li $t8, 1 +/* 00EC88 7000E088 ADEE0008 */ sw $t6, 8($t7) +/* 00EC8C 7000E08C 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 00EC90 7000E090 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EC94 7000E094 00408025 */ move $s0, $v0 +/* 00EC98 7000E098 A7380000 */ sh $t8, ($t9) +/* 00EC9C 7000E09C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00ECA0 7000E0A0 02002025 */ move $a0, $s0 +/* 00ECA4 7000E0A4 8D090008 */ lw $t1, 8($t0) +/* 00ECA8 7000E0A8 8D2A0004 */ lw $t2, 4($t1) +/* 00ECAC 7000E0AC 0C006184 */ jal __osRestoreInt +/* 00ECB0 7000E0B0 AD0A000C */ sw $t2, 0xc($t0) +/* 00ECB4 7000E0B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00ECB8 7000E0B8 8FB00018 */ lw $s0, 0x18($sp) +/* 00ECBC 7000E0BC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00ECC0 7000E0C0 03E00008 */ jr $ra +/* 00ECC4 7000E0C4 00000000 */ nop diff --git a/src/libultra/visetspecial.s b/src/libultra/visetspecial.s new file mode 100644 index 0000000..712198d --- /dev/null +++ b/src/libultra/visetspecial.s @@ -0,0 +1,128 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetSpecialFeatures +/* 0103B0 7000F7B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0103B4 7000F7B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0103B8 7000F7B8 AFA40028 */ sw $a0, 0x28($sp) +/* 0103BC 7000F7BC 0C00617C */ jal __osDisableInt +/* 0103C0 7000F7C0 AFB00018 */ sw $s0, 0x18($sp) +/* 0103C4 7000F7C4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0103C8 7000F7C8 00408025 */ move $s0, $v0 +/* 0103CC 7000F7CC 31CF0001 */ andi $t7, $t6, 1 +/* 0103D0 7000F7D0 11E00006 */ beqz $t7, .L7000F7EC +/* 0103D4 7000F7D4 00000000 */ nop +/* 0103D8 7000F7D8 3C188003 */ lui $t8, %hi(__osViNext) +/* 0103DC 7000F7DC 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 0103E0 7000F7E0 8F19000C */ lw $t9, 0xc($t8) +/* 0103E4 7000F7E4 37280008 */ ori $t0, $t9, 8 +/* 0103E8 7000F7E8 AF08000C */ sw $t0, 0xc($t8) +.L7000F7EC: +/* 0103EC 7000F7EC 8FA90028 */ lw $t1, 0x28($sp) +/* 0103F0 7000F7F0 312A0002 */ andi $t2, $t1, 2 +/* 0103F4 7000F7F4 11400007 */ beqz $t2, .L7000F814 +/* 0103F8 7000F7F8 00000000 */ nop +/* 0103FC 7000F7FC 3C0B8003 */ lui $t3, %hi(__osViNext) +/* 010400 7000F800 8D6B8044 */ lw $t3, %lo(__osViNext)($t3) +/* 010404 7000F804 2401FFF7 */ li $at, -9 +/* 010408 7000F808 8D6C000C */ lw $t4, 0xc($t3) +/* 01040C 7000F80C 01816824 */ and $t5, $t4, $at +/* 010410 7000F810 AD6D000C */ sw $t5, 0xc($t3) +.L7000F814: +/* 010414 7000F814 8FAE0028 */ lw $t6, 0x28($sp) +/* 010418 7000F818 31CF0004 */ andi $t7, $t6, 4 +/* 01041C 7000F81C 11E00006 */ beqz $t7, .L7000F838 +/* 010420 7000F820 00000000 */ nop +/* 010424 7000F824 3C198003 */ lui $t9, %hi(__osViNext) +/* 010428 7000F828 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 01042C 7000F82C 8F28000C */ lw $t0, 0xc($t9) +/* 010430 7000F830 35180004 */ ori $t8, $t0, 4 +/* 010434 7000F834 AF38000C */ sw $t8, 0xc($t9) +.L7000F838: +/* 010438 7000F838 8FA90028 */ lw $t1, 0x28($sp) +/* 01043C 7000F83C 312A0008 */ andi $t2, $t1, 8 +/* 010440 7000F840 11400007 */ beqz $t2, .L7000F860 +/* 010444 7000F844 00000000 */ nop +/* 010448 7000F848 3C0C8003 */ lui $t4, %hi(__osViNext) +/* 01044C 7000F84C 8D8C8044 */ lw $t4, %lo(__osViNext)($t4) +/* 010450 7000F850 2401FFFB */ li $at, -5 +/* 010454 7000F854 8D8D000C */ lw $t5, 0xc($t4) +/* 010458 7000F858 01A15824 */ and $t3, $t5, $at +/* 01045C 7000F85C AD8B000C */ sw $t3, 0xc($t4) +.L7000F860: +/* 010460 7000F860 8FAE0028 */ lw $t6, 0x28($sp) +/* 010464 7000F864 31CF0010 */ andi $t7, $t6, 0x10 +/* 010468 7000F868 11E00006 */ beqz $t7, .L7000F884 +/* 01046C 7000F86C 00000000 */ nop +/* 010470 7000F870 3C088003 */ lui $t0, %hi(__osViNext) +/* 010474 7000F874 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 010478 7000F878 8D18000C */ lw $t8, 0xc($t0) +/* 01047C 7000F87C 37190010 */ ori $t9, $t8, 0x10 +/* 010480 7000F880 AD19000C */ sw $t9, 0xc($t0) +.L7000F884: +/* 010484 7000F884 8FA90028 */ lw $t1, 0x28($sp) +/* 010488 7000F888 312A0020 */ andi $t2, $t1, 0x20 +/* 01048C 7000F88C 11400007 */ beqz $t2, .L7000F8AC +/* 010490 7000F890 00000000 */ nop +/* 010494 7000F894 3C0D8003 */ lui $t5, %hi(__osViNext) +/* 010498 7000F898 8DAD8044 */ lw $t5, %lo(__osViNext)($t5) +/* 01049C 7000F89C 2401FFEF */ li $at, -17 +/* 0104A0 7000F8A0 8DAB000C */ lw $t3, 0xc($t5) +/* 0104A4 7000F8A4 01616024 */ and $t4, $t3, $at +/* 0104A8 7000F8A8 ADAC000C */ sw $t4, 0xc($t5) +.L7000F8AC: +/* 0104AC 7000F8AC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0104B0 7000F8B0 31CF0040 */ andi $t7, $t6, 0x40 +/* 0104B4 7000F8B4 11E0000D */ beqz $t7, .L7000F8EC +/* 0104B8 7000F8B8 00000000 */ nop +/* 0104BC 7000F8BC 3C188003 */ lui $t8, %hi(__osViNext) +/* 0104C0 7000F8C0 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 0104C4 7000F8C4 3C010001 */ lui $at, 1 +/* 0104C8 7000F8C8 3C098003 */ lui $t1, %hi(__osViNext) +/* 0104CC 7000F8CC 8F19000C */ lw $t9, 0xc($t8) +/* 0104D0 7000F8D0 03214025 */ or $t0, $t9, $at +/* 0104D4 7000F8D4 AF08000C */ sw $t0, 0xc($t8) +/* 0104D8 7000F8D8 8D298044 */ lw $t1, %lo(__osViNext)($t1) +/* 0104DC 7000F8DC 2401FCFF */ li $at, -769 +/* 0104E0 7000F8E0 8D2A000C */ lw $t2, 0xc($t1) +/* 0104E4 7000F8E4 01415824 */ and $t3, $t2, $at +/* 0104E8 7000F8E8 AD2B000C */ sw $t3, 0xc($t1) +.L7000F8EC: +/* 0104EC 7000F8EC 8FAC0028 */ lw $t4, 0x28($sp) +/* 0104F0 7000F8F0 318D0080 */ andi $t5, $t4, 0x80 +/* 0104F4 7000F8F4 11A00010 */ beqz $t5, .L7000F938 +/* 0104F8 7000F8F8 00000000 */ nop +/* 0104FC 7000F8FC 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 010500 7000F900 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 010504 7000F904 3C01FFFE */ lui $at, (0xFFFEFFFF >> 16) # lui $at, 0xfffe +/* 010508 7000F908 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01050C 7000F90C 8DCF000C */ lw $t7, 0xc($t6) +/* 010510 7000F910 3C088003 */ lui $t0, %hi(__osViNext) +/* 010514 7000F914 01E1C824 */ and $t9, $t7, $at +/* 010518 7000F918 ADD9000C */ sw $t9, 0xc($t6) +/* 01051C 7000F91C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 010520 7000F920 8D0A0008 */ lw $t2, 8($t0) +/* 010524 7000F924 8D18000C */ lw $t8, 0xc($t0) +/* 010528 7000F928 8D4B0004 */ lw $t3, 4($t2) +/* 01052C 7000F92C 31690300 */ andi $t1, $t3, 0x300 +/* 010530 7000F930 03096025 */ or $t4, $t8, $t1 +/* 010534 7000F934 AD0C000C */ sw $t4, 0xc($t0) +.L7000F938: +/* 010538 7000F938 3C0D8003 */ lui $t5, %hi(__osViNext) +/* 01053C 7000F93C 8DAD8044 */ lw $t5, %lo(__osViNext)($t5) +/* 010540 7000F940 02002025 */ move $a0, $s0 +/* 010544 7000F944 95AF0000 */ lhu $t7, ($t5) +/* 010548 7000F948 35F90008 */ ori $t9, $t7, 8 +/* 01054C 7000F94C 0C006184 */ jal __osRestoreInt +/* 010550 7000F950 A5B90000 */ sh $t9, ($t5) +/* 010554 7000F954 8FBF001C */ lw $ra, 0x1c($sp) +/* 010558 7000F958 8FB00018 */ lw $s0, 0x18($sp) +/* 01055C 7000F95C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 010560 7000F960 03E00008 */ jr $ra +/* 010564 7000F964 00000000 */ nop diff --git a/src/libultra/visetxscale.s b/src/libultra/visetxscale.s new file mode 100644 index 0000000..9b21623 --- /dev/null +++ b/src/libultra/visetxscale.s @@ -0,0 +1,88 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetXScale +/* 00ECD0 7000E0D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00ECD4 7000E0D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00ECD8 7000E0D8 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 00ECDC 7000E0DC AFB10018 */ sw $s1, 0x18($sp) +/* 00ECE0 7000E0E0 0C00617C */ jal __osDisableInt +/* 00ECE4 7000E0E4 AFB00014 */ sw $s0, 0x14($sp) +/* 00ECE8 7000E0E8 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00ECEC 7000E0EC 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00ECF0 7000E0F0 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 00ECF4 7000E0F4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00ECF8 7000E0F8 3C088003 */ lui $t0, %hi(__osViNext) +/* 00ECFC 7000E0FC E5C40018 */ swc1 $f4, 0x18($t6) +/* 00ED00 7000E100 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00ED04 7000E104 00408825 */ move $s1, $v0 +/* 00ED08 7000E108 95F80000 */ lhu $t8, ($t7) +/* 00ED0C 7000E10C 37190002 */ ori $t9, $t8, 2 +/* 00ED10 7000E110 A5F90000 */ sh $t9, ($t7) +/* 00ED14 7000E114 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00ED18 7000E118 8D090008 */ lw $t1, 8($t0) +/* 00ED1C 7000E11C C5060018 */ lwc1 $f6, 0x18($t0) +/* 00ED20 7000E120 8D300020 */ lw $s0, 0x20($t1) +/* 00ED24 7000E124 320A0FFF */ andi $t2, $s0, 0xfff +/* 00ED28 7000E128 01408025 */ move $s0, $t2 +/* 00ED2C 7000E12C 44904000 */ mtc1 $s0, $f8 +/* 00ED30 7000E130 06010005 */ bgez $s0, .L7000E148 +/* 00ED34 7000E134 468042A0 */ cvt.s.w $f10, $f8 +/* 00ED38 7000E138 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ED3C 7000E13C 44818000 */ mtc1 $at, $f16 +/* 00ED40 7000E140 00000000 */ nop +/* 00ED44 7000E144 46105280 */ add.s $f10, $f10, $f16 +.L7000E148: +/* 00ED48 7000E148 460A3482 */ mul.s $f18, $f6, $f10 +/* 00ED4C 7000E14C 240C0001 */ li $t4, 1 +/* 00ED50 7000E150 444BF800 */ cfc1 $t3, $31 +/* 00ED54 7000E154 44CCF800 */ ctc1 $t4, $31 +/* 00ED58 7000E158 00000000 */ nop +/* 00ED5C 7000E15C 46009124 */ cvt.w.s $f4, $f18 +/* 00ED60 7000E160 444CF800 */ cfc1 $t4, $31 +/* 00ED64 7000E164 00000000 */ nop +/* 00ED68 7000E168 31810004 */ andi $at, $t4, 4 +/* 00ED6C 7000E16C 318C0078 */ andi $t4, $t4, 0x78 +/* 00ED70 7000E170 11800013 */ beqz $t4, .L7000E1C0 +/* 00ED74 7000E174 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 00ED78 7000E178 44812000 */ mtc1 $at, $f4 +/* 00ED7C 7000E17C 240C0001 */ li $t4, 1 +/* 00ED80 7000E180 46049101 */ sub.s $f4, $f18, $f4 +/* 00ED84 7000E184 44CCF800 */ ctc1 $t4, $31 +/* 00ED88 7000E188 00000000 */ nop +/* 00ED8C 7000E18C 46002124 */ cvt.w.s $f4, $f4 +/* 00ED90 7000E190 444CF800 */ cfc1 $t4, $31 +/* 00ED94 7000E194 00000000 */ nop +/* 00ED98 7000E198 31810004 */ andi $at, $t4, 4 +/* 00ED9C 7000E19C 318C0078 */ andi $t4, $t4, 0x78 +/* 00EDA0 7000E1A0 15800005 */ bnez $t4, .L7000E1B8 +/* 00EDA4 7000E1A4 00000000 */ nop +/* 00EDA8 7000E1A8 440C2000 */ mfc1 $t4, $f4 +/* 00EDAC 7000E1AC 3C018000 */ lui $at, 0x8000 +/* 00EDB0 7000E1B0 10000007 */ b .L7000E1D0 +/* 00EDB4 7000E1B4 01816025 */ or $t4, $t4, $at +.L7000E1B8: +/* 00EDB8 7000E1B8 10000005 */ b .L7000E1D0 +/* 00EDBC 7000E1BC 240CFFFF */ li $t4, -1 +.L7000E1C0: +/* 00EDC0 7000E1C0 440C2000 */ mfc1 $t4, $f4 +/* 00EDC4 7000E1C4 00000000 */ nop +/* 00EDC8 7000E1C8 0580FFFB */ bltz $t4, .L7000E1B8 +/* 00EDCC 7000E1CC 00000000 */ nop +.L7000E1D0: +/* 00EDD0 7000E1D0 44CBF800 */ ctc1 $t3, $31 +/* 00EDD4 7000E1D4 318D0FFF */ andi $t5, $t4, 0xfff +/* 00EDD8 7000E1D8 AD0D0020 */ sw $t5, 0x20($t0) +/* 00EDDC 7000E1DC 0C006184 */ jal __osRestoreInt +/* 00EDE0 7000E1E0 02202025 */ move $a0, $s1 +/* 00EDE4 7000E1E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EDE8 7000E1E8 8FB00014 */ lw $s0, 0x14($sp) +/* 00EDEC 7000E1EC 8FB10018 */ lw $s1, 0x18($sp) +/* 00EDF0 7000E1F0 03E00008 */ jr $ra +/* 00EDF4 7000E1F4 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/visetyscale.s b/src/libultra/visetyscale.s new file mode 100644 index 0000000..dada628 --- /dev/null +++ b/src/libultra/visetyscale.s @@ -0,0 +1,32 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetYScale +/* 00EE00 7000E200 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EE04 7000E204 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EE08 7000E208 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 00EE0C 7000E20C 0C00617C */ jal __osDisableInt +/* 00EE10 7000E210 AFB00018 */ sw $s0, 0x18($sp) +/* 00EE14 7000E214 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00EE18 7000E218 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00EE1C 7000E21C C7A40028 */ lwc1 $f4, 0x28($sp) +/* 00EE20 7000E220 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EE24 7000E224 00408025 */ move $s0, $v0 +/* 00EE28 7000E228 E5C40024 */ swc1 $f4, 0x24($t6) +/* 00EE2C 7000E22C 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EE30 7000E230 02002025 */ move $a0, $s0 +/* 00EE34 7000E234 95F80000 */ lhu $t8, ($t7) +/* 00EE38 7000E238 37190004 */ ori $t9, $t8, 4 +/* 00EE3C 7000E23C 0C006184 */ jal __osRestoreInt +/* 00EE40 7000E240 A5F90000 */ sh $t9, ($t7) +/* 00EE44 7000E244 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EE48 7000E248 8FB00018 */ lw $s0, 0x18($sp) +/* 00EE4C 7000E24C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EE50 7000E250 03E00008 */ jr $ra +/* 00EE54 7000E254 00000000 */ nop diff --git a/src/libultra/viswapbuf.s b/src/libultra/viswapbuf.s new file mode 100644 index 0000000..46b439b --- /dev/null +++ b/src/libultra/viswapbuf.s @@ -0,0 +1,31 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViSwapBuffer +/* 00F090 7000E490 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F094 7000E494 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F098 7000E498 0C00617C */ jal __osDisableInt +/* 00F09C 7000E49C AFA40020 */ sw $a0, 0x20($sp) +/* 00F0A0 7000E4A0 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00F0A4 7000E4A4 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00F0A8 7000E4A8 8FAE0020 */ lw $t6, 0x20($sp) +/* 00F0AC 7000E4AC AFA2001C */ sw $v0, 0x1c($sp) +/* 00F0B0 7000E4B0 3C188003 */ lui $t8, %hi(__osViNext) +/* 00F0B4 7000E4B4 ADEE0004 */ sw $t6, 4($t7) +/* 00F0B8 7000E4B8 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 00F0BC 7000E4BC 97190000 */ lhu $t9, ($t8) +/* 00F0C0 7000E4C0 37280010 */ ori $t0, $t9, 0x10 +/* 00F0C4 7000E4C4 A7080000 */ sh $t0, ($t8) +/* 00F0C8 7000E4C8 0C006184 */ jal __osRestoreInt +/* 00F0CC 7000E4CC 8FA4001C */ lw $a0, 0x1c($sp) +/* 00F0D0 7000E4D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F0D4 7000E4D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F0D8 7000E4D8 03E00008 */ jr $ra +/* 00F0DC 7000E4DC 00000000 */ nop diff --git a/src/libultra/viswapcontext.s b/src/libultra/viswapcontext.s new file mode 100644 index 0000000..1902863 --- /dev/null +++ b/src/libultra/viswapcontext.s @@ -0,0 +1,243 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViSwapContext +/* 019770 70018B70 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 019774 70018B74 AFB1001C */ sw $s1, 0x1c($sp) +/* 019778 70018B78 AFBF0024 */ sw $ra, 0x24($sp) +/* 01977C 70018B7C AFB20020 */ sw $s2, 0x20($sp) +/* 019780 70018B80 AFB00018 */ sw $s0, 0x18($sp) +/* 019784 70018B84 AFA00030 */ sw $zero, 0x30($sp) +/* 019788 70018B88 3C118003 */ lui $s1, %hi(__osViNext) +/* 01978C 70018B8C 3C0EA440 */ lui $t6, %hi(VI_CURRENT_REG) # $t6, 0xa440 +/* 019790 70018B90 8E318044 */ lw $s1, %lo(__osViNext)($s1) +/* 019794 70018B94 8DCF0010 */ lw $t7, %lo(VI_CURRENT_REG)($t6) +/* 019798 70018B98 8E300008 */ lw $s0, 8($s1) +/* 01979C 70018B9C 31F80001 */ andi $t8, $t7, 1 +/* 0197A0 70018BA0 AFB80030 */ sw $t8, 0x30($sp) +/* 0197A4 70018BA4 0C003A2C */ jal osVirtualToPhysical +/* 0197A8 70018BA8 8E240004 */ lw $a0, 4($s1) +/* 0197AC 70018BAC 8FB90030 */ lw $t9, 0x30($sp) +/* 0197B0 70018BB0 00409025 */ move $s2, $v0 +/* 0197B4 70018BB4 00194080 */ sll $t0, $t9, 2 +/* 0197B8 70018BB8 01194021 */ addu $t0, $t0, $t9 +/* 0197BC 70018BBC 00084080 */ sll $t0, $t0, 2 +/* 0197C0 70018BC0 02084821 */ addu $t1, $s0, $t0 +/* 0197C4 70018BC4 8D2A0028 */ lw $t2, 0x28($t1) +/* 0197C8 70018BC8 01525821 */ addu $t3, $t2, $s2 +/* 0197CC 70018BCC AFAB003C */ sw $t3, 0x3c($sp) +/* 0197D0 70018BD0 962C0000 */ lhu $t4, ($s1) +/* 0197D4 70018BD4 318D0002 */ andi $t5, $t4, 2 +/* 0197D8 70018BD8 11A00008 */ beqz $t5, .L70018BFC +/* 0197DC 70018BDC 00000000 */ nop +/* 0197E0 70018BE0 8E0F0020 */ lw $t7, 0x20($s0) +/* 0197E4 70018BE4 8E2E0020 */ lw $t6, 0x20($s1) +/* 0197E8 70018BE8 2401F000 */ li $at, -4096 +/* 0197EC 70018BEC 01E1C024 */ and $t8, $t7, $at +/* 0197F0 70018BF0 01D8C825 */ or $t9, $t6, $t8 +/* 0197F4 70018BF4 10000003 */ b .L70018C04 +/* 0197F8 70018BF8 AE390020 */ sw $t9, 0x20($s1) +.L70018BFC: +/* 0197FC 70018BFC 8E080020 */ lw $t0, 0x20($s0) +/* 019800 70018C00 AE280020 */ sw $t0, 0x20($s1) +.L70018C04: +/* 019804 70018C04 96290000 */ lhu $t1, ($s1) +/* 019808 70018C08 312A0004 */ andi $t2, $t1, 4 +/* 01980C 70018C0C 11400041 */ beqz $t2, .L70018D14 +/* 019810 70018C10 00000000 */ nop +/* 019814 70018C14 8FAB0030 */ lw $t3, 0x30($sp) +/* 019818 70018C18 000B6080 */ sll $t4, $t3, 2 +/* 01981C 70018C1C 018B6021 */ addu $t4, $t4, $t3 +/* 019820 70018C20 000C6080 */ sll $t4, $t4, 2 +/* 019824 70018C24 020C6821 */ addu $t5, $s0, $t4 +/* 019828 70018C28 8DAF002C */ lw $t7, 0x2c($t5) +/* 01982C 70018C2C 31EE0FFF */ andi $t6, $t7, 0xfff +/* 019830 70018C30 448E3000 */ mtc1 $t6, $f6 +/* 019834 70018C34 AFAE0034 */ sw $t6, 0x34($sp) +/* 019838 70018C38 C6240024 */ lwc1 $f4, 0x24($s1) +/* 01983C 70018C3C 05C10005 */ bgez $t6, .L70018C54 +/* 019840 70018C40 46803220 */ cvt.s.w $f8, $f6 +/* 019844 70018C44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019848 70018C48 44815000 */ mtc1 $at, $f10 +/* 01984C 70018C4C 00000000 */ nop +/* 019850 70018C50 460A4200 */ add.s $f8, $f8, $f10 +.L70018C54: +/* 019854 70018C54 46082402 */ mul.s $f16, $f4, $f8 +/* 019858 70018C58 24190001 */ li $t9, 1 +/* 01985C 70018C5C 4458F800 */ cfc1 $t8, $31 +/* 019860 70018C60 44D9F800 */ ctc1 $t9, $31 +/* 019864 70018C64 00000000 */ nop +/* 019868 70018C68 460084A4 */ cvt.w.s $f18, $f16 +/* 01986C 70018C6C 4459F800 */ cfc1 $t9, $31 +/* 019870 70018C70 00000000 */ nop +/* 019874 70018C74 33210004 */ andi $at, $t9, 4 +/* 019878 70018C78 33390078 */ andi $t9, $t9, 0x78 +/* 01987C 70018C7C 13200013 */ beqz $t9, .L70018CCC +/* 019880 70018C80 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 019884 70018C84 44819000 */ mtc1 $at, $f18 +/* 019888 70018C88 24190001 */ li $t9, 1 +/* 01988C 70018C8C 46128481 */ sub.s $f18, $f16, $f18 +/* 019890 70018C90 44D9F800 */ ctc1 $t9, $31 +/* 019894 70018C94 00000000 */ nop +/* 019898 70018C98 460094A4 */ cvt.w.s $f18, $f18 +/* 01989C 70018C9C 4459F800 */ cfc1 $t9, $31 +/* 0198A0 70018CA0 00000000 */ nop +/* 0198A4 70018CA4 33210004 */ andi $at, $t9, 4 +/* 0198A8 70018CA8 33390078 */ andi $t9, $t9, 0x78 +/* 0198AC 70018CAC 17200005 */ bnez $t9, .L70018CC4 +/* 0198B0 70018CB0 00000000 */ nop +/* 0198B4 70018CB4 44199000 */ mfc1 $t9, $f18 +/* 0198B8 70018CB8 3C018000 */ lui $at, 0x8000 +/* 0198BC 70018CBC 10000007 */ b .L70018CDC +/* 0198C0 70018CC0 0321C825 */ or $t9, $t9, $at +.L70018CC4: +/* 0198C4 70018CC4 10000005 */ b .L70018CDC +/* 0198C8 70018CC8 2419FFFF */ li $t9, -1 +.L70018CCC: +/* 0198CC 70018CCC 44199000 */ mfc1 $t9, $f18 +/* 0198D0 70018CD0 00000000 */ nop +/* 0198D4 70018CD4 0720FFFB */ bltz $t9, .L70018CC4 +/* 0198D8 70018CD8 00000000 */ nop +.L70018CDC: +/* 0198DC 70018CDC AE39002C */ sw $t9, 0x2c($s1) +/* 0198E0 70018CE0 8FA90030 */ lw $t1, 0x30($sp) +/* 0198E4 70018CE4 8E28002C */ lw $t0, 0x2c($s1) +/* 0198E8 70018CE8 2401F000 */ li $at, -4096 +/* 0198EC 70018CEC 00095080 */ sll $t2, $t1, 2 +/* 0198F0 70018CF0 01495021 */ addu $t2, $t2, $t1 +/* 0198F4 70018CF4 000A5080 */ sll $t2, $t2, 2 +/* 0198F8 70018CF8 020A5821 */ addu $t3, $s0, $t2 +/* 0198FC 70018CFC 8D6C002C */ lw $t4, 0x2c($t3) +/* 019900 70018D00 44D8F800 */ ctc1 $t8, $31 +/* 019904 70018D04 01816824 */ and $t5, $t4, $at +/* 019908 70018D08 010D7825 */ or $t7, $t0, $t5 +/* 01990C 70018D0C 10000008 */ b .L70018D30 +/* 019910 70018D10 AE2F002C */ sw $t7, 0x2c($s1) +.L70018D14: +/* 019914 70018D14 8FAE0030 */ lw $t6, 0x30($sp) +/* 019918 70018D18 000EC080 */ sll $t8, $t6, 2 +/* 01991C 70018D1C 030EC021 */ addu $t8, $t8, $t6 +/* 019920 70018D20 0018C080 */ sll $t8, $t8, 2 +/* 019924 70018D24 0218C821 */ addu $t9, $s0, $t8 +/* 019928 70018D28 8F29002C */ lw $t1, 0x2c($t9) +/* 01992C 70018D2C AE29002C */ sw $t1, 0x2c($s1) +.L70018D30: +/* 019930 70018D30 8E0A001C */ lw $t2, 0x1c($s0) +/* 019934 70018D34 AFAA0038 */ sw $t2, 0x38($sp) +/* 019938 70018D38 962B0000 */ lhu $t3, ($s1) +/* 01993C 70018D3C 316C0020 */ andi $t4, $t3, 0x20 +/* 019940 70018D40 11800002 */ beqz $t4, .L70018D4C +/* 019944 70018D44 00000000 */ nop +/* 019948 70018D48 AFA00038 */ sw $zero, 0x38($sp) +.L70018D4C: +/* 01994C 70018D4C 96280000 */ lhu $t0, ($s1) +/* 019950 70018D50 310D0040 */ andi $t5, $t0, 0x40 +/* 019954 70018D54 11A00005 */ beqz $t5, .L70018D6C +/* 019958 70018D58 00000000 */ nop +/* 01995C 70018D5C AE20002C */ sw $zero, 0x2c($s1) +/* 019960 70018D60 0C003A2C */ jal osVirtualToPhysical +/* 019964 70018D64 8E240004 */ lw $a0, 4($s1) +/* 019968 70018D68 AFA2003C */ sw $v0, 0x3c($sp) +.L70018D6C: +/* 01996C 70018D6C 962F0000 */ lhu $t7, ($s1) +/* 019970 70018D70 31EE0080 */ andi $t6, $t7, 0x80 +/* 019974 70018D74 11C00009 */ beqz $t6, .L70018D9C +/* 019978 70018D78 00000000 */ nop +/* 01997C 70018D7C 96380028 */ lhu $t8, 0x28($s1) +/* 019980 70018D80 3C0103FF */ lui $at, 0x3ff +/* 019984 70018D84 8E240004 */ lw $a0, 4($s1) +/* 019988 70018D88 0018CC00 */ sll $t9, $t8, 0x10 +/* 01998C 70018D8C 03214824 */ and $t1, $t9, $at +/* 019990 70018D90 0C003A2C */ jal osVirtualToPhysical +/* 019994 70018D94 AE29002C */ sw $t1, 0x2c($s1) +/* 019998 70018D98 AFA2003C */ sw $v0, 0x3c($sp) +.L70018D9C: +/* 01999C 70018D9C 8FAA003C */ lw $t2, 0x3c($sp) +/* 0199A0 70018DA0 3C0BA440 */ lui $t3, %hi(VI_LEAP_REG) # $t3, 0xa440 +/* 0199A4 70018DA4 3C08A440 */ lui $t0, %hi(VI_V_BURST_REG) # $t0, 0xa440 +/* 0199A8 70018DA8 AD6A0004 */ sw $t2, %lo(VI_ORIGIN_REG)($t3) +/* 0199AC 70018DAC 8E0C0008 */ lw $t4, 8($s0) +/* 0199B0 70018DB0 3C0FA440 */ lui $t7, %hi(VI_BURST_REG) # $t7, 0xa440 +/* 0199B4 70018DB4 3C18A440 */ lui $t8, %hi(VI_V_SYNC_REG) # $t8, 0xa440 +/* 0199B8 70018DB8 AD0C0008 */ sw $t4, %lo(VI_WIDTH_REG)($t0) +/* 0199BC 70018DBC 8E0D000C */ lw $t5, 0xc($s0) +/* 0199C0 70018DC0 3C09A440 */ lui $t1, %hi(VI_H_SYNC_REG) # $t1, 0xa440 +/* 0199C4 70018DC4 3C018003 */ lui $at, %hi(__osViNext) +/* 0199C8 70018DC8 ADED0014 */ sw $t5, %lo(VI_BURST_REG)($t7) +/* 0199CC 70018DCC 8E0E0010 */ lw $t6, 0x10($s0) +/* 0199D0 70018DD0 AF0E0018 */ sw $t6, %lo(VI_V_SYNC_REG)($t8) +/* 0199D4 70018DD4 8E190014 */ lw $t9, 0x14($s0) +/* 0199D8 70018DD8 AD39001C */ sw $t9, %lo(VI_H_SYNC_REG)($t1) +/* 0199DC 70018DDC 8E0A0018 */ lw $t2, 0x18($s0) +/* 0199E0 70018DE0 3C19A440 */ lui $t9, %hi(VI_INTR_REG) # $t9, 0xa440 +/* 0199E4 70018DE4 AD6A0020 */ sw $t2, %lo(VI_LEAP_REG)($t3) +/* 0199E8 70018DE8 8FAC0038 */ lw $t4, 0x38($sp) +/* 0199EC 70018DEC AD0C0024 */ sw $t4, %lo(VI_H_START_REG)($t0) +/* 0199F0 70018DF0 8FAD0030 */ lw $t5, 0x30($sp) +/* 0199F4 70018DF4 000D7880 */ sll $t7, $t5, 2 +/* 0199F8 70018DF8 01ED7821 */ addu $t7, $t7, $t5 +/* 0199FC 70018DFC 000F7880 */ sll $t7, $t7, 2 +/* 019A00 70018E00 020F7021 */ addu $t6, $s0, $t7 +/* 019A04 70018E04 8DD80030 */ lw $t8, 0x30($t6) +/* 019A08 70018E08 AF380028 */ sw $t8, %lo(VI_V_START_REG)($t9) +/* 019A0C 70018E0C 8FA90030 */ lw $t1, 0x30($sp) +/* 019A10 70018E10 00095080 */ sll $t2, $t1, 2 +/* 019A14 70018E14 01495021 */ addu $t2, $t2, $t1 +/* 019A18 70018E18 000A5080 */ sll $t2, $t2, 2 +/* 019A1C 70018E1C 020A5821 */ addu $t3, $s0, $t2 +/* 019A20 70018E20 8D6C0034 */ lw $t4, 0x34($t3) +/* 019A24 70018E24 3C0AA440 */ lui $t2, %hi(VI_X_SCALE_REG) # $t2, 0xa440 +/* 019A28 70018E28 AD0C002C */ sw $t4, %lo(VI_V_BURST_REG)($t0) +/* 019A2C 70018E2C 8FAD0030 */ lw $t5, 0x30($sp) +/* 019A30 70018E30 3C0CA440 */ lui $t4, %hi(VI_Y_SCALE_REG) # $t4, 0xa440 +/* 019A34 70018E34 000D7880 */ sll $t7, $t5, 2 +/* 019A38 70018E38 01ED7821 */ addu $t7, $t7, $t5 +/* 019A3C 70018E3C 000F7880 */ sll $t7, $t7, 2 +/* 019A40 70018E40 020F7021 */ addu $t6, $s0, $t7 +/* 019A44 70018E44 8DD80038 */ lw $t8, 0x38($t6) +/* 019A48 70018E48 3C0DA440 */ lui $t5, 0xa440 +/* 019A4C 70018E4C 3C0F8003 */ lui $t7, %hi(__osViCurr) +/* 019A50 70018E50 AF38000C */ sw $t8, %lo(VI_INTR_REG)($t9) +/* 019A54 70018E54 8E290020 */ lw $t1, 0x20($s1) +/* 019A58 70018E58 3C188003 */ lui $t8, %hi(__osViCurr) +/* 019A5C 70018E5C 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 019A60 70018E60 AD490030 */ sw $t1, %lo(VI_X_SCALE_REG)($t2) +/* 019A64 70018E64 8E2B002C */ lw $t3, 0x2c($s1) +/* 019A68 70018E68 AD8B0034 */ sw $t3, %lo(VI_Y_SCALE_REG)($t4) +/* 019A6C 70018E6C 8E28000C */ lw $t0, 0xc($s1) +/* 019A70 70018E70 ADA80000 */ sw $t0, ($t5) +/* 019A74 70018E74 8DEF8040 */ lw $t7, %lo(__osViCurr)($t7) +/* 019A78 70018E78 AC2F8044 */ sw $t7, %lo(__osViNext)($at) +/* 019A7C 70018E7C 3C018003 */ lui $at, %hi(__osViCurr) +/* 019A80 70018E80 AC318040 */ sw $s1, %lo(__osViCurr)($at) +/* 019A84 70018E84 8F188040 */ lw $t8, %lo(__osViCurr)($t8) +/* 019A88 70018E88 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 019A8C 70018E8C 270A0030 */ addiu $t2, $t8, 0x30 +.L70018E90: +/* 019A90 70018E90 8F010000 */ lw $at, ($t8) +/* 019A94 70018E94 2718000C */ addiu $t8, $t8, 0xc +/* 019A98 70018E98 25CE000C */ addiu $t6, $t6, 0xc +/* 019A9C 70018E9C ADC1FFF4 */ sw $at, -0xc($t6) +/* 019AA0 70018EA0 8F01FFF8 */ lw $at, -8($t8) +/* 019AA4 70018EA4 ADC1FFF8 */ sw $at, -8($t6) +/* 019AA8 70018EA8 8F01FFFC */ lw $at, -4($t8) +/* 019AAC 70018EAC 170AFFF8 */ bne $t8, $t2, .L70018E90 +/* 019AB0 70018EB0 ADC1FFFC */ sw $at, -4($t6) +/* 019AB4 70018EB4 8FBF0024 */ lw $ra, 0x24($sp) +/* 019AB8 70018EB8 8FB00018 */ lw $s0, 0x18($sp) +/* 019ABC 70018EBC 8FB1001C */ lw $s1, 0x1c($sp) +/* 019AC0 70018EC0 8FB20020 */ lw $s2, 0x20($sp) +/* 019AC4 70018EC4 03E00008 */ jr $ra +/* 019AC8 70018EC8 27BD0048 */ addiu $sp, $sp, 0x48 + +/* 019ACC 70018ECC 00000000 */ nop diff --git a/src/libultra/vitbl.s b/src/libultra/vitbl.s new file mode 100644 index 0000000..17862fc --- /dev/null +++ b/src/libultra/vitbl.s @@ -0,0 +1,224 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .data +glabel osViModeTable +D_800269C0: +glabel osViModeTable_osViModeNtscLpn1 +.word 0, 0x320E, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpf1 +.word 0x1000000, 0x324E, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLan1 +.word 0x2000000, 0x311E, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLaf1 +.word 0x3000000, 0x305E, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpn2 +.word 0x4000000, 0x330F, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpf2 +.word 0x5000000, 0x324F, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLan2 +.word 0x6000000, 0x301F, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLaf2 +.word 0x7000000, 0x305F, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpn1 +.word 0x8000000, 0x324E, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpf1 +.word 0x9000000, 0x324E, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHan1 +.word 0xA000000, 0x305E, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHaf1 +.word 0xB000000, 0x305E, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpn2 +.word 0xC000000, 0x334F, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x400, 0x2301FD, 0xE0204, 2 +.word 0x1400, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpf2 +.word 0xD000000, 0x324F, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0x1400, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModePalLpn1 +.word 0xE000000, 0x320E, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLpf1 +.word 0xF000000, 0x324E, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x280, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLan1 +.word 0x10000000, 0x311E, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLaf1 +.word 0x11000000, 0x305E, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x280, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLpn2 +.word 0x12000000, 0x330F, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLpf2 +.word 0x13000000, 0x324F, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x500, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLan2 +.word 0x14000000, 0x301F, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLaf2 +.word 0x15000000, 0x305F, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x500, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpn1 +.word 0x16000000, 0x324E, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x400, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpf1 +.word 0x17000000, 0x324E, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHan1 +.word 0x18000000, 0x305E, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x400, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHaf1 +.word 0x19000000, 0x305E, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpn2 +.word 0x1A000000, 0x334F, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0xA00, 0x400, 0x5D0237, 0x9026B, 2 +.word 0x1400, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpf2 +.word 0x1B000000, 0x324F, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0xA00, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0x1400, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModeMpalLpn1 +.word 0x1C000000, 0x320E, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpf1 +.word 0x1D000000, 0x324E, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLan1 +.word 0x1E000000, 0x311E, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLaf1 +.word 0x1F000000, 0x305E, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpn2 +.word 0x20000000, 0x330F, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpf2 +.word 0x21000000, 0x324F, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLan2 +.word 0x22000000, 0x301F, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLaf2 +.word 0x23000000, 0x305F, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpn1 +.word 0x24000000, 0x324E, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpf1 +.word 0x25000000, 0x324E, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHan1 +.word 0x26000000, 0x305E, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHaf1 +.word 0x27000000, 0x305E, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpn2 +.word 0x28000000, 0x334F, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x400, 0x2301FD, 0xB0202, 2 +.word 0x1400, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpf2 +.word 0x29000000, 0x324F, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0x1400, 0x2000800, 0x2501FF, 0xE0204, 2 + diff --git a/src/libultra/writebackdcache.s b/src/libultra/writebackdcache.s new file mode 100644 index 0000000..3cba7d8 --- /dev/null +++ b/src/libultra/writebackdcache.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osWritebackDCache +/* 0117D0 70010BD0 18A00011 */ blez $a1, .L70010C18 +/* 0117D4 70010BD4 00000000 */ nop +/* 0117D8 70010BD8 240B2000 */ li $t3, 8192 +/* 0117DC 70010BDC 00AB082B */ sltu $at, $a1, $t3 +/* 0117E0 70010BE0 1020000F */ beqz $at, .L70010C20 +/* 0117E4 70010BE4 00000000 */ nop +/* 0117E8 70010BE8 00804025 */ move $t0, $a0 +/* 0117EC 70010BEC 00854821 */ addu $t1, $a0, $a1 +/* 0117F0 70010BF0 0109082B */ sltu $at, $t0, $t1 +/* 0117F4 70010BF4 10200008 */ beqz $at, .L70010C18 +/* 0117F8 70010BF8 00000000 */ nop +/* 0117FC 70010BFC 310A000F */ andi $t2, $t0, 0xf +/* 011800 70010C00 2529FFF0 */ addiu $t1, $t1, -0x10 +/* 011804 70010C04 010A4023 */ subu $t0, $t0, $t2 +.L70010C08: +/* 011808 70010C08 BD190000 */ cache 0x19, ($t0) +/* 01180C 70010C0C 0109082B */ sltu $at, $t0, $t1 +/* 011810 70010C10 1420FFFD */ bnez $at, .L70010C08 +/* 011814 70010C14 25080010 */ addiu $t0, $t0, 0x10 +.L70010C18: +/* 011818 70010C18 03E00008 */ jr $ra +/* 01181C 70010C1C 00000000 */ nop + +.L70010C20: +/* 011820 70010C20 3C088000 */ lui $t0, 0x8000 +/* 011824 70010C24 010B4821 */ addu $t1, $t0, $t3 +/* 011828 70010C28 2529FFF0 */ addiu $t1, $t1, -0x10 +.L70010C2C: +/* 01182C 70010C2C BD010000 */ cache 1, ($t0) +/* 011830 70010C30 0109082B */ sltu $at, $t0, $t1 +/* 011834 70010C34 1420FFFD */ bnez $at, .L70010C2C +/* 011838 70010C38 25080010 */ addiu $t0, $t0, 0x10 +/* 01183C 70010C3C 03E00008 */ jr $ra +/* 011840 70010C40 00000000 */ nop diff --git a/src/libultra/writebackdcacheall.s b/src/libultra/writebackdcacheall.s new file mode 100644 index 0000000..14aafbb --- /dev/null +++ b/src/libultra/writebackdcacheall.s @@ -0,0 +1,21 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osWritebackDCacheAll +/* 00DF20 7000D320 3C088000 */ lui $t0, 0x8000 +/* 00DF24 7000D324 240A2000 */ li $t2, 8192 +/* 00DF28 7000D328 010A4821 */ addu $t1, $t0, $t2 +/* 00DF2C 7000D32C 2529FFF0 */ addiu $t1, $t1, -0x10 +.L7000D330: +/* 00DF30 7000D330 BD010000 */ cache 1, ($t0) +/* 00DF34 7000D334 0109082B */ sltu $at, $t0, $t1 +/* 00DF38 7000D338 1420FFFD */ bnez $at, .L7000D330 +/* 00DF3C 7000D33C 25080010 */ addiu $t0, $t0, 0x10 +/* 00DF40 7000D340 03E00008 */ jr $ra +/* 00DF44 7000D344 00000000 */ nop diff --git a/src/libultra/xldtob.s b/src/libultra/xldtob.s new file mode 100644 index 0000000..f5ab0c7 --- /dev/null +++ b/src/libultra/xldtob.s @@ -0,0 +1,817 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .rodata +glabel digits + .double 10.0 + .double 100.0 + .double 10000.0 + .double 1.0e8 + .double 1.0e16 + .double 1.0e32 + .double 1.0e64 + .double 1.0e128 + .double 1.0e256 +glabel aNan + .asciiz "NaN" +glabel aInf + .asciiz "Inf" + +.section .text +glabel xldtob_sub0 +/* 01E670 7001DA70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E674 7001DA74 AFB20028 */ sw $s2, 0x28($sp) +/* 01E678 7001DA78 00127400 */ sll $t6, $s2, 0x10 +/* 01E67C 7001DA7C 000E9403 */ sra $s2, $t6, 0x10 +/* 01E680 7001DA80 AFB30024 */ sw $s3, 0x24($sp) +/* 01E684 7001DA84 0013C400 */ sll $t8, $s3, 0x10 +/* 01E688 7001DA88 00189C03 */ sra $s3, $t8, 0x10 +/* 01E68C 7001DA8C 328E00FF */ andi $t6, $s4, 0xff +/* 01E690 7001DA90 AFB4001C */ sw $s4, 0x1c($sp) +/* 01E694 7001DA94 01C0A025 */ move $s4, $t6 +/* 01E698 7001DA98 1E600004 */ bgtz $s3, .L7001DAAC +/* 01E69C 7001DA9C AFBF0014 */ sw $ra, 0x14($sp) +/* 01E6A0 7001DAA0 3C118003 */ lui $s1, %hi(asc_D_80029CE0) +/* 01E6A4 7001DAA4 26319CE0 */ addiu $s1, %lo(asc_D_80029CE0) # addiu $s1, $s1, -0x6320 +/* 01E6A8 7001DAA8 24130001 */ li $s3, 1 +.L7001DAAC: +/* 01E6AC 7001DAAC 24020066 */ li $v0, 102 +/* 01E6B0 7001DAB0 1054000C */ beq $v0, $s4, .L7001DAE4 +/* 01E6B4 7001DAB4 02801825 */ move $v1, $s4 +/* 01E6B8 7001DAB8 24040067 */ li $a0, 103 +/* 01E6BC 7001DABC 10830002 */ beq $a0, $v1, .L7001DAC8 +/* 01E6C0 7001DAC0 24010047 */ li $at, 71 +/* 01E6C4 7001DAC4 14610096 */ bne $v1, $at, .L7001DD20 +.L7001DAC8: +/* 01E6C8 7001DAC8 2A41FFFC */ slti $at, $s2, -4 +/* 01E6CC 7001DACC 14200094 */ bnez $at, .L7001DD20 +/* 01E6D0 7001DAD0 00000000 */ nop +/* 01E6D4 7001DAD4 8E0F0024 */ lw $t7, 0x24($s0) +/* 01E6D8 7001DAD8 024F082A */ slt $at, $s2, $t7 +/* 01E6DC 7001DADC 10200090 */ beqz $at, .L7001DD20 +/* 01E6E0 7001DAE0 00000000 */ nop +.L7001DAE4: +/* 01E6E4 7001DAE4 26520001 */ addiu $s2, $s2, 1 +/* 01E6E8 7001DAE8 0012C400 */ sll $t8, $s2, 0x10 +/* 01E6EC 7001DAEC 1043000E */ beq $v0, $v1, .L7001DB28 +/* 01E6F0 7001DAF0 00189403 */ sra $s2, $t8, 0x10 +/* 01E6F4 7001DAF4 8E0E0030 */ lw $t6, 0x30($s0) +/* 01E6F8 7001DAF8 8E020024 */ lw $v0, 0x24($s0) +/* 01E6FC 7001DAFC 31CF0008 */ andi $t7, $t6, 8 +/* 01E700 7001DB00 15E00005 */ bnez $t7, .L7001DB18 +/* 01E704 7001DB04 0262082A */ slt $at, $s3, $v0 +/* 01E708 7001DB08 50200004 */ beql $at, $zero, .L7001DB1C +/* 01E70C 7001DB0C 0052C023 */ subu $t8, $v0, $s2 +/* 01E710 7001DB10 AE130024 */ sw $s3, 0x24($s0) +/* 01E714 7001DB14 02601025 */ move $v0, $s3 +.L7001DB18: +/* 01E718 7001DB18 0052C023 */ subu $t8, $v0, $s2 +.L7001DB1C: +/* 01E71C 7001DB1C 07010002 */ bgez $t8, .L7001DB28 +/* 01E720 7001DB20 AE180024 */ sw $t8, 0x24($s0) +/* 01E724 7001DB24 AE000024 */ sw $zero, 0x24($s0) +.L7001DB28: +/* 01E728 7001DB28 1E400033 */ bgtz $s2, .L7001DBF8 +/* 01E72C 7001DB2C 0272082A */ slt $at, $s3, $s2 +/* 01E730 7001DB30 8E0F0008 */ lw $t7, 8($s0) +/* 01E734 7001DB34 8E180014 */ lw $t8, 0x14($s0) +/* 01E738 7001DB38 240E0030 */ li $t6, 48 +/* 01E73C 7001DB3C 00121823 */ negu $v1, $s2 +/* 01E740 7001DB40 01F8C821 */ addu $t9, $t7, $t8 +/* 01E744 7001DB44 A32E0000 */ sb $t6, ($t9) +/* 01E748 7001DB48 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E74C 7001DB4C 8E020024 */ lw $v0, 0x24($s0) +/* 01E750 7001DB50 02202825 */ move $a1, $s1 +/* 01E754 7001DB54 25F80001 */ addiu $t8, $t7, 1 +/* 01E758 7001DB58 1C400005 */ bgtz $v0, .L7001DB70 +/* 01E75C 7001DB5C AE180014 */ sw $t8, 0x14($s0) +/* 01E760 7001DB60 8E0E0030 */ lw $t6, 0x30($s0) +/* 01E764 7001DB64 31D90008 */ andi $t9, $t6, 8 +/* 01E768 7001DB68 5320000B */ beql $t9, $zero, .L7001DB98 +/* 01E76C 7001DB6C 0043082A */ slt $at, $v0, $v1 +.L7001DB70: +/* 01E770 7001DB70 8E180008 */ lw $t8, 8($s0) +/* 01E774 7001DB74 8E0E0014 */ lw $t6, 0x14($s0) +/* 01E778 7001DB78 240F002E */ li $t7, 46 +/* 01E77C 7001DB7C 030EC821 */ addu $t9, $t8, $t6 +/* 01E780 7001DB80 A32F0000 */ sb $t7, ($t9) +/* 01E784 7001DB84 8E180014 */ lw $t8, 0x14($s0) +/* 01E788 7001DB88 8E020024 */ lw $v0, 0x24($s0) +/* 01E78C 7001DB8C 270E0001 */ addiu $t6, $t8, 1 +/* 01E790 7001DB90 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E794 7001DB94 0043082A */ slt $at, $v0, $v1 +.L7001DB98: +/* 01E798 7001DB98 50200006 */ beql $at, $zero, .L7001DBB4 +/* 01E79C 7001DB9C 0052C021 */ addu $t8, $v0, $s2 +/* 01E7A0 7001DBA0 00029023 */ negu $s2, $v0 +/* 01E7A4 7001DBA4 00127C00 */ sll $t7, $s2, 0x10 +/* 01E7A8 7001DBA8 000F9403 */ sra $s2, $t7, 0x10 +/* 01E7AC 7001DBAC 00121823 */ negu $v1, $s2 +/* 01E7B0 7001DBB0 0052C021 */ addu $t8, $v0, $s2 +.L7001DBB4: +/* 01E7B4 7001DBB4 0313082A */ slt $at, $t8, $s3 +/* 01E7B8 7001DBB8 AE030018 */ sw $v1, 0x18($s0) +/* 01E7BC 7001DBBC 10200004 */ beqz $at, .L7001DBD0 +/* 01E7C0 7001DBC0 AE180024 */ sw $t8, 0x24($s0) +/* 01E7C4 7001DBC4 00189C00 */ sll $s3, $t8, 0x10 +/* 01E7C8 7001DBC8 00137403 */ sra $t6, $s3, 0x10 +/* 01E7CC 7001DBCC 01C09825 */ move $s3, $t6 +.L7001DBD0: +/* 01E7D0 7001DBD0 8E0F0008 */ lw $t7, 8($s0) +/* 01E7D4 7001DBD4 8E190014 */ lw $t9, 0x14($s0) +/* 01E7D8 7001DBD8 AE13001C */ sw $s3, 0x1c($s0) +/* 01E7DC 7001DBDC 02603025 */ move $a2, $s3 +/* 01E7E0 7001DBE0 0C004E14 */ jal memcpy +/* 01E7E4 7001DBE4 01F92021 */ addu $a0, $t7, $t9 +/* 01E7E8 7001DBE8 8E180024 */ lw $t8, 0x24($s0) +/* 01E7EC 7001DBEC 03137023 */ subu $t6, $t8, $s3 +/* 01E7F0 7001DBF0 100000E2 */ b .L7001DF7C +/* 01E7F4 7001DBF4 AE0E0020 */ sw $t6, 0x20($s0) +.L7001DBF8: +/* 01E7F8 7001DBF8 1020001D */ beqz $at, .L7001DC70 +/* 01E7FC 7001DBFC 02202825 */ move $a1, $s1 +/* 01E800 7001DC00 8E0F0008 */ lw $t7, 8($s0) +/* 01E804 7001DC04 8E190014 */ lw $t9, 0x14($s0) +/* 01E808 7001DC08 02202825 */ move $a1, $s1 +/* 01E80C 7001DC0C 02603025 */ move $a2, $s3 +/* 01E810 7001DC10 0C004E14 */ jal memcpy +/* 01E814 7001DC14 01F92021 */ addu $a0, $t7, $t9 +/* 01E818 7001DC18 8E180014 */ lw $t8, 0x14($s0) +/* 01E81C 7001DC1C 8E020024 */ lw $v0, 0x24($s0) +/* 01E820 7001DC20 02537823 */ subu $t7, $s2, $s3 +/* 01E824 7001DC24 03137021 */ addu $t6, $t8, $s3 +/* 01E828 7001DC28 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E82C 7001DC2C 1C400005 */ bgtz $v0, .L7001DC44 +/* 01E830 7001DC30 AE0F0018 */ sw $t7, 0x18($s0) +/* 01E834 7001DC34 8E190030 */ lw $t9, 0x30($s0) +/* 01E838 7001DC38 33380008 */ andi $t8, $t9, 8 +/* 01E83C 7001DC3C 1300000A */ beqz $t8, .L7001DC68 +/* 01E840 7001DC40 00000000 */ nop +.L7001DC44: +/* 01E844 7001DC44 8E0F0008 */ lw $t7, 8($s0) +/* 01E848 7001DC48 8E190014 */ lw $t9, 0x14($s0) +/* 01E84C 7001DC4C 240E002E */ li $t6, 46 +/* 01E850 7001DC50 01F9C021 */ addu $t8, $t7, $t9 +/* 01E854 7001DC54 A30E0000 */ sb $t6, ($t8) +/* 01E858 7001DC58 8E0F001C */ lw $t7, 0x1c($s0) +/* 01E85C 7001DC5C 8E020024 */ lw $v0, 0x24($s0) +/* 01E860 7001DC60 25F90001 */ addiu $t9, $t7, 1 +/* 01E864 7001DC64 AE19001C */ sw $t9, 0x1c($s0) +.L7001DC68: +/* 01E868 7001DC68 100000C4 */ b .L7001DF7C +/* 01E86C 7001DC6C AE020020 */ sw $v0, 0x20($s0) +.L7001DC70: +/* 01E870 7001DC70 8E0E0008 */ lw $t6, 8($s0) +/* 01E874 7001DC74 8E180014 */ lw $t8, 0x14($s0) +/* 01E878 7001DC78 02403025 */ move $a2, $s2 +/* 01E87C 7001DC7C 0C004E14 */ jal memcpy +/* 01E880 7001DC80 01D82021 */ addu $a0, $t6, $t8 +/* 01E884 7001DC84 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E888 7001DC88 8E020024 */ lw $v0, 0x24($s0) +/* 01E88C 7001DC8C 02729823 */ subu $s3, $s3, $s2 +/* 01E890 7001DC90 00137400 */ sll $t6, $s3, 0x10 +/* 01E894 7001DC94 01F2C821 */ addu $t9, $t7, $s2 +/* 01E898 7001DC98 AE190014 */ sw $t9, 0x14($s0) +/* 01E89C 7001DC9C 1C400005 */ bgtz $v0, .L7001DCB4 +/* 01E8A0 7001DCA0 000E9C03 */ sra $s3, $t6, 0x10 +/* 01E8A4 7001DCA4 8E0F0030 */ lw $t7, 0x30($s0) +/* 01E8A8 7001DCA8 31F90008 */ andi $t9, $t7, 8 +/* 01E8AC 7001DCAC 5320000B */ beql $t9, $zero, .L7001DCDC +/* 01E8B0 7001DCB0 0053082A */ slt $at, $v0, $s3 +.L7001DCB4: +/* 01E8B4 7001DCB4 8E180008 */ lw $t8, 8($s0) +/* 01E8B8 7001DCB8 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E8BC 7001DCBC 240E002E */ li $t6, 46 +/* 01E8C0 7001DCC0 030FC821 */ addu $t9, $t8, $t7 +/* 01E8C4 7001DCC4 A32E0000 */ sb $t6, ($t9) +/* 01E8C8 7001DCC8 8E180014 */ lw $t8, 0x14($s0) +/* 01E8CC 7001DCCC 8E020024 */ lw $v0, 0x24($s0) +/* 01E8D0 7001DCD0 270F0001 */ addiu $t7, $t8, 1 +/* 01E8D4 7001DCD4 AE0F0014 */ sw $t7, 0x14($s0) +/* 01E8D8 7001DCD8 0053082A */ slt $at, $v0, $s3 +.L7001DCDC: +/* 01E8DC 7001DCDC 10200004 */ beqz $at, .L7001DCF0 +/* 01E8E0 7001DCE0 02512821 */ addu $a1, $s2, $s1 +/* 01E8E4 7001DCE4 00029C00 */ sll $s3, $v0, 0x10 +/* 01E8E8 7001DCE8 00137403 */ sra $t6, $s3, 0x10 +/* 01E8EC 7001DCEC 01C09825 */ move $s3, $t6 +.L7001DCF0: +/* 01E8F0 7001DCF0 8E190008 */ lw $t9, 8($s0) +/* 01E8F4 7001DCF4 8E180014 */ lw $t8, 0x14($s0) +/* 01E8F8 7001DCF8 02603025 */ move $a2, $s3 +/* 01E8FC 7001DCFC 0C004E14 */ jal memcpy +/* 01E900 7001DD00 03382021 */ addu $a0, $t9, $t8 +/* 01E904 7001DD04 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E908 7001DD08 8E190024 */ lw $t9, 0x24($s0) +/* 01E90C 7001DD0C 01F37021 */ addu $t6, $t7, $s3 +/* 01E910 7001DD10 0333C023 */ subu $t8, $t9, $s3 +/* 01E914 7001DD14 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E918 7001DD18 10000098 */ b .L7001DF7C +/* 01E91C 7001DD1C AE180018 */ sw $t8, 0x18($s0) +.L7001DD20: +/* 01E920 7001DD20 10830003 */ beq $a0, $v1, .L7001DD30 +/* 01E924 7001DD24 24010047 */ li $at, 71 +/* 01E928 7001DD28 54610011 */ bnel $v1, $at, .L7001DD70 +/* 01E92C 7001DD2C 8E180008 */ lw $t8, 8($s0) +.L7001DD30: +/* 01E930 7001DD30 8E020024 */ lw $v0, 0x24($s0) +/* 01E934 7001DD34 24140045 */ li $s4, 69 +/* 01E938 7001DD38 0262082A */ slt $at, $s3, $v0 +/* 01E93C 7001DD3C 50200004 */ beql $at, $zero, .L7001DD50 +/* 01E940 7001DD40 244FFFFF */ addiu $t7, $v0, -1 +/* 01E944 7001DD44 AE130024 */ sw $s3, 0x24($s0) +/* 01E948 7001DD48 02601025 */ move $v0, $s3 +/* 01E94C 7001DD4C 244FFFFF */ addiu $t7, $v0, -1 +.L7001DD50: +/* 01E950 7001DD50 05E10002 */ bgez $t7, .L7001DD5C +/* 01E954 7001DD54 AE0F0024 */ sw $t7, 0x24($s0) +/* 01E958 7001DD58 AE000024 */ sw $zero, 0x24($s0) +.L7001DD5C: +/* 01E95C 7001DD5C 14830003 */ bne $a0, $v1, .L7001DD6C +/* 01E960 7001DD60 00000000 */ nop +/* 01E964 7001DD64 10000001 */ b .L7001DD6C +/* 01E968 7001DD68 24140065 */ li $s4, 101 +.L7001DD6C: +/* 01E96C 7001DD6C 8E180008 */ lw $t8, 8($s0) +.L7001DD70: +/* 01E970 7001DD70 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E974 7001DD74 92390000 */ lbu $t9, ($s1) +/* 01E978 7001DD78 26310001 */ addiu $s1, $s1, 1 +/* 01E97C 7001DD7C 030F7021 */ addu $t6, $t8, $t7 +/* 01E980 7001DD80 A1D90000 */ sb $t9, ($t6) +/* 01E984 7001DD84 8E180014 */ lw $t8, 0x14($s0) +/* 01E988 7001DD88 8E020024 */ lw $v0, 0x24($s0) +/* 01E98C 7001DD8C 270F0001 */ addiu $t7, $t8, 1 +/* 01E990 7001DD90 1C400005 */ bgtz $v0, .L7001DDA8 +/* 01E994 7001DD94 AE0F0014 */ sw $t7, 0x14($s0) +/* 01E998 7001DD98 8E190030 */ lw $t9, 0x30($s0) +/* 01E99C 7001DD9C 332E0008 */ andi $t6, $t9, 8 +/* 01E9A0 7001DDA0 11C0000A */ beqz $t6, .L7001DDCC +/* 01E9A4 7001DDA4 00000000 */ nop +.L7001DDA8: +/* 01E9A8 7001DDA8 8E0F0008 */ lw $t7, 8($s0) +/* 01E9AC 7001DDAC 8E190014 */ lw $t9, 0x14($s0) +/* 01E9B0 7001DDB0 2418002E */ li $t8, 46 +/* 01E9B4 7001DDB4 01F97021 */ addu $t6, $t7, $t9 +/* 01E9B8 7001DDB8 A1D80000 */ sb $t8, ($t6) +/* 01E9BC 7001DDBC 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E9C0 7001DDC0 8E020024 */ lw $v0, 0x24($s0) +/* 01E9C4 7001DDC4 25F90001 */ addiu $t9, $t7, 1 +/* 01E9C8 7001DDC8 AE190014 */ sw $t9, 0x14($s0) +.L7001DDCC: +/* 01E9CC 7001DDCC 58400016 */ blezl $v0, .L7001DE28 +/* 01E9D0 7001DDD0 8E0E0008 */ lw $t6, 8($s0) +/* 01E9D4 7001DDD4 2673FFFF */ addiu $s3, $s3, -1 +/* 01E9D8 7001DDD8 0013C400 */ sll $t8, $s3, 0x10 +/* 01E9DC 7001DDDC 00189C03 */ sra $s3, $t8, 0x10 +/* 01E9E0 7001DDE0 0053082A */ slt $at, $v0, $s3 +/* 01E9E4 7001DDE4 10200004 */ beqz $at, .L7001DDF8 +/* 01E9E8 7001DDE8 02202825 */ move $a1, $s1 +/* 01E9EC 7001DDEC 00029C00 */ sll $s3, $v0, 0x10 +/* 01E9F0 7001DDF0 00137C03 */ sra $t7, $s3, 0x10 +/* 01E9F4 7001DDF4 01E09825 */ move $s3, $t7 +.L7001DDF8: +/* 01E9F8 7001DDF8 8E190008 */ lw $t9, 8($s0) +/* 01E9FC 7001DDFC 8E180014 */ lw $t8, 0x14($s0) +/* 01EA00 7001DE00 02603025 */ move $a2, $s3 +/* 01EA04 7001DE04 0C004E14 */ jal memcpy +/* 01EA08 7001DE08 03382021 */ addu $a0, $t9, $t8 +/* 01EA0C 7001DE0C 8E0E0014 */ lw $t6, 0x14($s0) +/* 01EA10 7001DE10 8E190024 */ lw $t9, 0x24($s0) +/* 01EA14 7001DE14 01D37821 */ addu $t7, $t6, $s3 +/* 01EA18 7001DE18 0333C023 */ subu $t8, $t9, $s3 +/* 01EA1C 7001DE1C AE0F0014 */ sw $t7, 0x14($s0) +/* 01EA20 7001DE20 AE180018 */ sw $t8, 0x18($s0) +/* 01EA24 7001DE24 8E0E0008 */ lw $t6, 8($s0) +.L7001DE28: +/* 01EA28 7001DE28 8E0F0014 */ lw $t7, 0x14($s0) +/* 01EA2C 7001DE2C 01CF8821 */ addu $s1, $t6, $t7 +/* 01EA30 7001DE30 26310001 */ addiu $s1, $s1, 1 +/* 01EA34 7001DE34 06400005 */ bltz $s2, .L7001DE4C +/* 01EA38 7001DE38 A234FFFF */ sb $s4, -1($s1) +/* 01EA3C 7001DE3C 2419002B */ li $t9, 43 +/* 01EA40 7001DE40 A2390000 */ sb $t9, ($s1) +/* 01EA44 7001DE44 10000008 */ b .L7001DE68 +/* 01EA48 7001DE48 26310001 */ addiu $s1, $s1, 1 +.L7001DE4C: +/* 01EA4C 7001DE4C 00129023 */ negu $s2, $s2 +/* 01EA50 7001DE50 00127400 */ sll $t6, $s2, 0x10 +/* 01EA54 7001DE54 2418002D */ li $t8, 45 +/* 01EA58 7001DE58 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EA5C 7001DE5C A2380000 */ sb $t8, ($s1) +/* 01EA60 7001DE60 26310001 */ addiu $s1, $s1, 1 +/* 01EA64 7001DE64 01E09025 */ move $s2, $t7 +.L7001DE68: +/* 01EA68 7001DE68 2A410064 */ slti $at, $s2, 0x64 +/* 01EA6C 7001DE6C 5420002A */ bnezl $at, .L7001DF18 +/* 01EA70 7001DE70 2402000A */ li $v0, 10 +/* 01EA74 7001DE74 2A4103E8 */ slti $at, $s2, 0x3e8 +/* 01EA78 7001DE78 14200013 */ bnez $at, .L7001DEC8 +/* 01EA7C 7001DE7C 240203E8 */ li $v0, 1000 +/* 01EA80 7001DE80 0242001A */ div $zero, $s2, $v0 +/* 01EA84 7001DE84 14400002 */ bnez $v0, .L7001DE90 +/* 01EA88 7001DE88 00000000 */ nop +/* 01EA8C 7001DE8C 0007000D */ break 7 +.L7001DE90: +/* 01EA90 7001DE90 2401FFFF */ li $at, -1 +/* 01EA94 7001DE94 14410004 */ bne $v0, $at, .L7001DEA8 +/* 01EA98 7001DE98 3C018000 */ lui $at, 0x8000 +/* 01EA9C 7001DE9C 16410002 */ bne $s2, $at, .L7001DEA8 +/* 01EAA0 7001DEA0 00000000 */ nop +/* 01EAA4 7001DEA4 0006000D */ break 6 +.L7001DEA8: +/* 01EAA8 7001DEA8 00009010 */ mfhi $s2 +/* 01EAAC 7001DEAC 00127400 */ sll $t6, $s2, 0x10 +/* 01EAB0 7001DEB0 0000C812 */ mflo $t9 +/* 01EAB4 7001DEB4 27380030 */ addiu $t8, $t9, 0x30 +/* 01EAB8 7001DEB8 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EABC 7001DEBC 01E09025 */ move $s2, $t7 +/* 01EAC0 7001DEC0 A2380000 */ sb $t8, ($s1) +/* 01EAC4 7001DEC4 26310001 */ addiu $s1, $s1, 1 +.L7001DEC8: +/* 01EAC8 7001DEC8 24020064 */ li $v0, 100 +/* 01EACC 7001DECC 0242001A */ div $zero, $s2, $v0 +/* 01EAD0 7001DED0 14400002 */ bnez $v0, .L7001DEDC +/* 01EAD4 7001DED4 00000000 */ nop +/* 01EAD8 7001DED8 0007000D */ break 7 +.L7001DEDC: +/* 01EADC 7001DEDC 2401FFFF */ li $at, -1 +/* 01EAE0 7001DEE0 14410004 */ bne $v0, $at, .L7001DEF4 +/* 01EAE4 7001DEE4 3C018000 */ lui $at, 0x8000 +/* 01EAE8 7001DEE8 16410002 */ bne $s2, $at, .L7001DEF4 +/* 01EAEC 7001DEEC 00000000 */ nop +/* 01EAF0 7001DEF0 0006000D */ break 6 +.L7001DEF4: +/* 01EAF4 7001DEF4 00009010 */ mfhi $s2 +/* 01EAF8 7001DEF8 00127400 */ sll $t6, $s2, 0x10 +/* 01EAFC 7001DEFC 0000C812 */ mflo $t9 +/* 01EB00 7001DF00 27380030 */ addiu $t8, $t9, 0x30 +/* 01EB04 7001DF04 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EB08 7001DF08 01E09025 */ move $s2, $t7 +/* 01EB0C 7001DF0C A2380000 */ sb $t8, ($s1) +/* 01EB10 7001DF10 26310001 */ addiu $s1, $s1, 1 +/* 01EB14 7001DF14 2402000A */ li $v0, 10 +.L7001DF18: +/* 01EB18 7001DF18 0242001A */ div $zero, $s2, $v0 +/* 01EB1C 7001DF1C 14400002 */ bnez $v0, .L7001DF28 +/* 01EB20 7001DF20 00000000 */ nop +/* 01EB24 7001DF24 0007000D */ break 7 +.L7001DF28: +/* 01EB28 7001DF28 2401FFFF */ li $at, -1 +/* 01EB2C 7001DF2C 14410004 */ bne $v0, $at, .L7001DF40 +/* 01EB30 7001DF30 3C018000 */ lui $at, 0x8000 +/* 01EB34 7001DF34 16410002 */ bne $s2, $at, .L7001DF40 +/* 01EB38 7001DF38 00000000 */ nop +/* 01EB3C 7001DF3C 0006000D */ break 6 +.L7001DF40: +/* 01EB40 7001DF40 00009010 */ mfhi $s2 +/* 01EB44 7001DF44 00127400 */ sll $t6, $s2, 0x10 +/* 01EB48 7001DF48 0000C812 */ mflo $t9 +/* 01EB4C 7001DF4C 27380030 */ addiu $t8, $t9, 0x30 +/* 01EB50 7001DF50 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EB54 7001DF54 25F90030 */ addiu $t9, $t7, 0x30 +/* 01EB58 7001DF58 A2380000 */ sb $t8, ($s1) +/* 01EB5C 7001DF5C A2390001 */ sb $t9, 1($s1) +/* 01EB60 7001DF60 8E180008 */ lw $t8, 8($s0) +/* 01EB64 7001DF64 01E09025 */ move $s2, $t7 +/* 01EB68 7001DF68 8E0F0014 */ lw $t7, 0x14($s0) +/* 01EB6C 7001DF6C 26310002 */ addiu $s1, $s1, 2 +/* 01EB70 7001DF70 02387023 */ subu $t6, $s1, $t8 +/* 01EB74 7001DF74 01CFC823 */ subu $t9, $t6, $t7 +/* 01EB78 7001DF78 AE19001C */ sw $t9, 0x1c($s0) +.L7001DF7C: +/* 01EB7C 7001DF7C 8E180030 */ lw $t8, 0x30($s0) +/* 01EB80 7001DF80 24010010 */ li $at, 16 +/* 01EB84 7001DF84 330E0014 */ andi $t6, $t8, 0x14 +/* 01EB88 7001DF88 55C10010 */ bnel $t6, $at, .L7001DFCC +/* 01EB8C 7001DF8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01EB90 7001DF90 8E0F000C */ lw $t7, 0xc($s0) +/* 01EB94 7001DF94 8E190014 */ lw $t9, 0x14($s0) +/* 01EB98 7001DF98 8E0E0018 */ lw $t6, 0x18($s0) +/* 01EB9C 7001DF9C 8E030028 */ lw $v1, 0x28($s0) +/* 01EBA0 7001DFA0 01F9C021 */ addu $t8, $t7, $t9 +/* 01EBA4 7001DFA4 8E19001C */ lw $t9, 0x1c($s0) +/* 01EBA8 7001DFA8 030E7821 */ addu $t7, $t8, $t6 +/* 01EBAC 7001DFAC 8E0E0020 */ lw $t6, 0x20($s0) +/* 01EBB0 7001DFB0 01F9C021 */ addu $t8, $t7, $t9 +/* 01EBB4 7001DFB4 030E1021 */ addu $v0, $t8, $t6 +/* 01EBB8 7001DFB8 0043082A */ slt $at, $v0, $v1 +/* 01EBBC 7001DFBC 10200002 */ beqz $at, .L7001DFC8 +/* 01EBC0 7001DFC0 00627823 */ subu $t7, $v1, $v0 +/* 01EBC4 7001DFC4 AE0F0010 */ sw $t7, 0x10($s0) +.L7001DFC8: +/* 01EBC8 7001DFC8 8FBF0014 */ lw $ra, 0x14($sp) +.L7001DFCC: +/* 01EBCC 7001DFCC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01EBD0 7001DFD0 03E00008 */ jr $ra +/* 01EBD4 7001DFD4 00000000 */ nop + +/* 01EBD8 7001DFD8 03E00008 */ jr $ra +/* 01EBDC 7001DFDC 00000000 */ nop + +glabel _Ldtob +/* 01EBE0 7001DFE0 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 01EBE4 7001DFE4 AFBF003C */ sw $ra, 0x3c($sp) +/* 01EBE8 7001DFE8 AFB50038 */ sw $s5, 0x38($sp) +/* 01EBEC 7001DFEC AFB40034 */ sw $s4, 0x34($sp) +/* 01EBF0 7001DFF0 AFB30030 */ sw $s3, 0x30($sp) +/* 01EBF4 7001DFF4 AFB2002C */ sw $s2, 0x2c($sp) +/* 01EBF8 7001DFF8 AFB10028 */ sw $s1, 0x28($sp) +/* 01EBFC 7001DFFC AFB00024 */ sw $s0, 0x24($sp) +/* 01EC00 7001E000 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 01EC04 7001E004 AFA400D0 */ sw $a0, 0xd0($sp) +/* 01EC08 7001E008 AFA500D4 */ sw $a1, 0xd4($sp) +/* 01EC0C 7001E00C 8C820024 */ lw $v0, 0x24($a0) +/* 01EC10 7001E010 27B500B0 */ addiu $s5, $sp, 0xb0 +/* 01EC14 7001E014 D4940000 */ ldc1 $f20, ($a0) +/* 01EC18 7001E018 04410003 */ bgez $v0, .L7001E028 +/* 01EC1C 7001E01C 240F0006 */ li $t7, 6 +/* 01EC20 7001E020 1000000C */ b .L7001E054 +/* 01EC24 7001E024 AC8F0024 */ sw $t7, 0x24($a0) +.L7001E028: +/* 01EC28 7001E028 1440000A */ bnez $v0, .L7001E054 +/* 01EC2C 7001E02C 93B800D7 */ lbu $t8, 0xd7($sp) +/* 01EC30 7001E030 24010067 */ li $at, 103 +/* 01EC34 7001E034 13010004 */ beq $t8, $at, .L7001E048 +/* 01EC38 7001E038 AFB80048 */ sw $t8, 0x48($sp) +/* 01EC3C 7001E03C 24010047 */ li $at, 71 +/* 01EC40 7001E040 57010005 */ bnel $t8, $at, .L7001E058 +/* 01EC44 7001E044 8FAE00D0 */ lw $t6, 0xd0($sp) +.L7001E048: +/* 01EC48 7001E048 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 01EC4C 7001E04C 24190001 */ li $t9, 1 +/* 01EC50 7001E050 ADF90024 */ sw $t9, 0x24($t7) +.L7001E054: +/* 01EC54 7001E054 8FAE00D0 */ lw $t6, 0xd0($sp) +.L7001E058: +/* 01EC58 7001E058 240107FF */ li $at, 2047 +/* 01EC5C 7001E05C 95C40000 */ lhu $a0, ($t6) +/* 01EC60 7001E060 30837FF0 */ andi $v1, $a0, 0x7ff0 +/* 01EC64 7001E064 0003C103 */ sra $t8, $v1, 4 +/* 01EC68 7001E068 0018CC00 */ sll $t9, $t8, 0x10 +/* 01EC6C 7001E06C 00191C03 */ sra $v1, $t9, 0x10 +/* 01EC70 7001E070 14610018 */ bne $v1, $at, .L7001E0D4 +/* 01EC74 7001E074 00000000 */ nop +/* 01EC78 7001E078 A7A0009A */ sh $zero, 0x9a($sp) +/* 01EC7C 7001E07C 95D80000 */ lhu $t8, ($t6) +/* 01EC80 7001E080 24030002 */ li $v1, 2 +/* 01EC84 7001E084 00031400 */ sll $v0, $v1, 0x10 +/* 01EC88 7001E088 3319000F */ andi $t9, $t8, 0xf +/* 01EC8C 7001E08C 5720000A */ bnezl $t9, .L7001E0B8 +/* 01EC90 7001E090 00027C03 */ sra $t7, $v0, 0x10 +/* 01EC94 7001E094 95CF0002 */ lhu $t7, 2($t6) +/* 01EC98 7001E098 55E00007 */ bnezl $t7, .L7001E0B8 +/* 01EC9C 7001E09C 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECA0 7001E0A0 95D80004 */ lhu $t8, 4($t6) +/* 01ECA4 7001E0A4 57000004 */ bnezl $t8, .L7001E0B8 +/* 01ECA8 7001E0A8 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECAC 7001E0AC 95D90006 */ lhu $t9, 6($t6) +/* 01ECB0 7001E0B0 13200003 */ beqz $t9, .L7001E0C0 +/* 01ECB4 7001E0B4 00027C03 */ sra $t7, $v0, 0x10 +.L7001E0B8: +/* 01ECB8 7001E0B8 10000014 */ b .L7001E10C +/* 01ECBC 7001E0BC 01E01025 */ move $v0, $t7 +.L7001E0C0: +/* 01ECC0 7001E0C0 24030001 */ li $v1, 1 +/* 01ECC4 7001E0C4 00031400 */ sll $v0, $v1, 0x10 +/* 01ECC8 7001E0C8 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECCC 7001E0CC 1000000F */ b .L7001E10C +/* 01ECD0 7001E0D0 01E01025 */ move $v0, $t7 +.L7001E0D4: +/* 01ECD4 7001E0D4 18600008 */ blez $v1, .L7001E0F8 +/* 01ECD8 7001E0D8 3098800F */ andi $t8, $a0, 0x800f +/* 01ECDC 7001E0DC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01ECE0 7001E0E0 370E3FF0 */ ori $t6, $t8, 0x3ff0 +/* 01ECE4 7001E0E4 246FFC02 */ addiu $t7, $v1, -0x3fe +/* 01ECE8 7001E0E8 A72E0000 */ sh $t6, ($t9) +/* 01ECEC 7001E0EC A7AF009A */ sh $t7, 0x9a($sp) +/* 01ECF0 7001E0F0 10000006 */ b .L7001E10C +/* 01ECF4 7001E0F4 2402FFFF */ li $v0, -1 +.L7001E0F8: +/* 01ECF8 7001E0F8 04610003 */ bgez $v1, .L7001E108 +/* 01ECFC 7001E0FC 00001025 */ move $v0, $zero +/* 01ED00 7001E100 10000002 */ b .L7001E10C +/* 01ED04 7001E104 24020002 */ li $v0, 2 +.L7001E108: +/* 01ED08 7001E108 A7A0009A */ sh $zero, 0x9a($sp) +.L7001E10C: +/* 01ED0C 7001E10C 18400012 */ blez $v0, .L7001E158 +/* 01ED10 7001E110 0002C400 */ sll $t8, $v0, 0x10 +/* 01ED14 7001E114 0002C400 */ sll $t8, $v0, 0x10 +/* 01ED18 7001E118 00187403 */ sra $t6, $t8, 0x10 +/* 01ED1C 7001E11C 24010002 */ li $at, 2 +/* 01ED20 7001E120 15C10004 */ bne $t6, $at, .L7001E134 +/* 01ED24 7001E124 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01ED28 7001E128 3C058003 */ lui $a1, %hi(aNan) +/* 01ED2C 7001E12C 10000003 */ b .L7001E13C +/* 01ED30 7001E130 24A59CD8 */ addiu $a1, %lo(aNan) # addiu $a1, $a1, -0x6328 +.L7001E134: +/* 01ED34 7001E134 3C058003 */ lui $a1, %hi(aInf) +/* 01ED38 7001E138 24A59CDC */ addiu $a1, %lo(aInf) # addiu $a1, $a1, -0x6324 +.L7001E13C: +/* 01ED3C 7001E13C 240F0003 */ li $t7, 3 +/* 01ED40 7001E140 AF2F0014 */ sw $t7, 0x14($t9) +/* 01ED44 7001E144 8F240008 */ lw $a0, 8($t9) +/* 01ED48 7001E148 0C004E14 */ jal memcpy +/* 01ED4C 7001E14C 24060003 */ li $a2, 3 +/* 01ED50 7001E150 100000ED */ b .L7001E508 +/* 01ED54 7001E154 8FBF003C */ lw $ra, 0x3c($sp) +.L7001E158: +/* 01ED58 7001E158 00187403 */ sra $t6, $t8, 0x10 +/* 01ED5C 7001E15C 15C00003 */ bnez $t6, .L7001E16C +/* 01ED60 7001E160 00009825 */ move $s3, $zero +/* 01ED64 7001E164 100000E2 */ b .L7001E4F0 +/* 01ED68 7001E168 A7A0009A */ sh $zero, 0x9a($sp) +.L7001E16C: +/* 01ED6C 7001E16C 44801800 */ mtc1 $zero, $f3 +/* 01ED70 7001E170 44801000 */ mtc1 $zero, $f2 +/* 01ED74 7001E174 93AF00D7 */ lbu $t7, 0xd7($sp) +/* 01ED78 7001E178 87B9009A */ lh $t9, 0x9a($sp) +/* 01ED7C 7001E17C 4622A03C */ c.lt.d $f20, $f2 +/* 01ED80 7001E180 24017597 */ li $at, 30103 +/* 01ED84 7001E184 00001825 */ move $v1, $zero +/* 01ED88 7001E188 27B500B1 */ addiu $s5, $sp, 0xb1 +/* 01ED8C 7001E18C 45000002 */ bc1f .L7001E198 +/* 01ED90 7001E190 AFAF0048 */ sw $t7, 0x48($sp) +/* 01ED94 7001E194 4620A507 */ neg.d $f20, $f20 +.L7001E198: +/* 01ED98 7001E198 03210019 */ multu $t9, $at +/* 01ED9C 7001E19C 3C010001 */ lui $at, (0x000186A0 >> 16) # lui $at, 1 +/* 01EDA0 7001E1A0 342186A0 */ ori $at, (0x000186A0 & 0xFFFF) # ori $at, $at, 0x86a0 +/* 01EDA4 7001E1A4 24050006 */ li $a1, 6 +/* 01EDA8 7001E1A8 0000C012 */ mflo $t8 +/* 01EDAC 7001E1AC 00000000 */ nop +/* 01EDB0 7001E1B0 00000000 */ nop +/* 01EDB4 7001E1B4 0301001A */ div $zero, $t8, $at +/* 01EDB8 7001E1B8 00007012 */ mflo $t6 +/* 01EDBC 7001E1BC 25CFFFFC */ addiu $t7, $t6, -4 +/* 01EDC0 7001E1C0 000FCC00 */ sll $t9, $t7, 0x10 +/* 01EDC4 7001E1C4 0019C403 */ sra $t8, $t9, 0x10 +/* 01EDC8 7001E1C8 07010019 */ bgez $t8, .L7001E230 +/* 01EDCC 7001E1CC A7AF009A */ sh $t7, 0x9a($sp) +/* 01EDD0 7001E1D0 000FCC00 */ sll $t9, $t7, 0x10 +/* 01EDD4 7001E1D4 0019C403 */ sra $t8, $t9, 0x10 +/* 01EDD8 7001E1D8 240E0003 */ li $t6, 3 +/* 01EDDC 7001E1DC 01D82023 */ subu $a0, $t6, $t8 +/* 01EDE0 7001E1E0 2401FFFC */ li $at, -4 +/* 01EDE4 7001E1E4 00811024 */ and $v0, $a0, $at +/* 01EDE8 7001E1E8 0002C823 */ negu $t9, $v0 +/* 01EDEC 7001E1EC 1840002C */ blez $v0, .L7001E2A0 +/* 01EDF0 7001E1F0 A7B9009A */ sh $t9, 0x9a($sp) +/* 01EDF4 7001E1F4 3C048003 */ lui $a0, %hi(digits) +/* 01EDF8 7001E1F8 24849C90 */ addiu $a0, %lo(digits) # addiu $a0, $a0, -0x6370 +.L7001E1FC: +/* 01EDFC 7001E1FC 304E0001 */ andi $t6, $v0, 1 +/* 01EE00 7001E200 11C00006 */ beqz $t6, .L7001E21C +/* 01EE04 7001E204 0002C843 */ sra $t9, $v0, 1 +/* 01EE08 7001E208 0003C0C0 */ sll $t8, $v1, 3 +/* 01EE0C 7001E20C 00987821 */ addu $t7, $a0, $t8 +/* 01EE10 7001E210 D5E40000 */ ldc1 $f4, ($t7) +/* 01EE14 7001E214 4624A502 */ mul.d $f20, $f20, $f4 +/* 01EE18 7001E218 00000000 */ nop +.L7001E21C: +/* 01EE1C 7001E21C 03201025 */ move $v0, $t9 +/* 01EE20 7001E220 1F20FFF6 */ bgtz $t9, .L7001E1FC +/* 01EE24 7001E224 24630001 */ addiu $v1, $v1, 1 +/* 01EE28 7001E228 1000001E */ b .L7001E2A4 +/* 01EE2C 7001E22C 8FAF0048 */ lw $t7, 0x48($sp) +.L7001E230: +/* 01EE30 7001E230 87AE009A */ lh $t6, 0x9a($sp) +/* 01EE34 7001E234 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 01EE38 7001E238 00001825 */ move $v1, $zero +/* 01EE3C 7001E23C 19C00018 */ blez $t6, .L7001E2A0 +/* 01EE40 7001E240 31D8FFFC */ andi $t8, $t6, 0xfffc +/* 01EE44 7001E244 00181400 */ sll $v0, $t8, 0x10 +/* 01EE48 7001E248 0018CC00 */ sll $t9, $t8, 0x10 +/* 01EE4C 7001E24C 44810800 */ mtc1 $at, $f1 +/* 01EE50 7001E250 44800000 */ mtc1 $zero, $f0 +/* 01EE54 7001E254 00197403 */ sra $t6, $t9, 0x10 +/* 01EE58 7001E258 00027C03 */ sra $t7, $v0, 0x10 +/* 01EE5C 7001E25C A7B8009A */ sh $t8, 0x9a($sp) +/* 01EE60 7001E260 19C0000E */ blez $t6, .L7001E29C +/* 01EE64 7001E264 01E01025 */ move $v0, $t7 +/* 01EE68 7001E268 3C048003 */ lui $a0, %hi(digits) +/* 01EE6C 7001E26C 24849C90 */ addiu $a0, %lo(digits) # addiu $a0, $a0, -0x6370 +.L7001E270: +/* 01EE70 7001E270 304F0001 */ andi $t7, $v0, 1 +/* 01EE74 7001E274 11E00006 */ beqz $t7, .L7001E290 +/* 01EE78 7001E278 00027043 */ sra $t6, $v0, 1 +/* 01EE7C 7001E27C 0003C0C0 */ sll $t8, $v1, 3 +/* 01EE80 7001E280 0098C821 */ addu $t9, $a0, $t8 +/* 01EE84 7001E284 D7260000 */ ldc1 $f6, ($t9) +/* 01EE88 7001E288 46260002 */ mul.d $f0, $f0, $f6 +/* 01EE8C 7001E28C 00000000 */ nop +.L7001E290: +/* 01EE90 7001E290 01C01025 */ move $v0, $t6 +/* 01EE94 7001E294 1DC0FFF6 */ bgtz $t6, .L7001E270 +/* 01EE98 7001E298 24630001 */ addiu $v1, $v1, 1 +.L7001E29C: +/* 01EE9C 7001E29C 4620A503 */ div.d $f20, $f20, $f0 +.L7001E2A0: +/* 01EEA0 7001E2A0 8FAF0048 */ lw $t7, 0x48($sp) +.L7001E2A4: +/* 01EEA4 7001E2A4 24010066 */ li $at, 102 +/* 01EEA8 7001E2A8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 01EEAC 7001E2AC 15E10004 */ bne $t7, $at, .L7001E2C0 +/* 01EEB0 7001E2B0 240E0030 */ li $t6, 48 +/* 01EEB4 7001E2B4 87A5009A */ lh $a1, 0x9a($sp) +/* 01EEB8 7001E2B8 10000001 */ b .L7001E2C0 +/* 01EEBC 7001E2BC 24A5000A */ addiu $a1, $a1, 0xa +.L7001E2C0: +/* 01EEC0 7001E2C0 8F190024 */ lw $t9, 0x24($t8) +/* 01EEC4 7001E2C4 00B9A021 */ addu $s4, $a1, $t9 +/* 01EEC8 7001E2C8 2A810014 */ slti $at, $s4, 0x14 +/* 01EECC 7001E2CC 14200002 */ bnez $at, .L7001E2D8 +/* 01EED0 7001E2D0 00000000 */ nop +/* 01EED4 7001E2D4 24140013 */ li $s4, 19 +.L7001E2D8: +/* 01EED8 7001E2D8 1A800033 */ blez $s4, .L7001E3A8 +/* 01EEDC 7001E2DC A3AE00B0 */ sb $t6, 0xb0($sp) +/* 01EEE0 7001E2E0 4634103C */ c.lt.d $f2, $f20 +/* 01EEE4 7001E2E4 24130030 */ li $s3, 48 +/* 01EEE8 7001E2E8 27B20074 */ addiu $s2, $sp, 0x74 +/* 01EEEC 7001E2EC 4502002F */ bc1fl .L7001E3AC +/* 01EEF0 7001E2F0 87B8009A */ lh $t8, 0x9a($sp) +/* 01EEF4 7001E2F4 4620A20D */ trunc.w.d $f8, $f20 +.L7001E2F8: +/* 01EEF8 7001E2F8 2694FFF8 */ addiu $s4, $s4, -8 +/* 01EEFC 7001E2FC 26B50008 */ addiu $s5, $s5, 8 +/* 01EF00 7001E300 44114000 */ mfc1 $s1, $f8 +/* 01EF04 7001E304 1A800008 */ blez $s4, .L7001E328 +/* 01EF08 7001E308 00000000 */ nop +/* 01EF0C 7001E30C 44915000 */ mtc1 $s1, $f10 +/* 01EF10 7001E310 3C018003 */ lui $at, %hi(F64_80029CE8) +/* 01EF14 7001E314 D4289CE8 */ ldc1 $f8, %lo(F64_80029CE8)($at) +/* 01EF18 7001E318 46805121 */ cvt.d.w $f4, $f10 +/* 01EF1C 7001E31C 4624A181 */ sub.d $f6, $f20, $f4 +/* 01EF20 7001E320 46283502 */ mul.d $f20, $f6, $f8 +/* 01EF24 7001E324 00000000 */ nop +.L7001E328: +/* 01EF28 7001E328 1A200011 */ blez $s1, .L7001E370 +/* 01EF2C 7001E32C 24100008 */ li $s0, 8 +/* 01EF30 7001E330 24100007 */ li $s0, 7 +/* 01EF34 7001E334 0600000E */ bltz $s0, .L7001E370 +/* 01EF38 7001E338 02402025 */ move $a0, $s2 +.L7001E33C: +/* 01EF3C 7001E33C 02202825 */ move $a1, $s1 +/* 01EF40 7001E340 0C008314 */ jal ldiv +/* 01EF44 7001E344 2406000A */ li $a2, 10 +/* 01EF48 7001E348 8FB80078 */ lw $t8, 0x78($sp) +/* 01EF4C 7001E34C 26B5FFFF */ addiu $s5, $s5, -1 +/* 01EF50 7001E350 27190030 */ addiu $t9, $t8, 0x30 +/* 01EF54 7001E354 A2B90000 */ sb $t9, ($s5) +/* 01EF58 7001E358 8FB10074 */ lw $s1, 0x74($sp) +/* 01EF5C 7001E35C 5A200005 */ blezl $s1, .L7001E374 +/* 01EF60 7001E360 44801800 */ mtc1 $zero, $f3 +/* 01EF64 7001E364 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF68 7001E368 0603FFF4 */ bgezl $s0, .L7001E33C +/* 01EF6C 7001E36C 02402025 */ move $a0, $s2 +.L7001E370: +/* 01EF70 7001E370 44801800 */ mtc1 $zero, $f3 +.L7001E374: +/* 01EF74 7001E374 44801000 */ mtc1 $zero, $f2 +/* 01EF78 7001E378 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF7C 7001E37C 06000004 */ bltz $s0, .L7001E390 +.L7001E380: +/* 01EF80 7001E380 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF84 7001E384 26B5FFFF */ addiu $s5, $s5, -1 +/* 01EF88 7001E388 0601FFFD */ bgez $s0, .L7001E380 +/* 01EF8C 7001E38C A2B30000 */ sb $s3, ($s5) +.L7001E390: +/* 01EF90 7001E390 1A800005 */ blez $s4, .L7001E3A8 +/* 01EF94 7001E394 26B50008 */ addiu $s5, $s5, 8 +/* 01EF98 7001E398 4634103C */ c.lt.d $f2, $f20 +/* 01EF9C 7001E39C 00000000 */ nop +/* 01EFA0 7001E3A0 4503FFD5 */ bc1tl .L7001E2F8 +/* 01EFA4 7001E3A4 4620A20D */ trunc.w.d $f8, $f20 +.L7001E3A8: +/* 01EFA8 7001E3A8 87B8009A */ lh $t8, 0x9a($sp) +.L7001E3AC: +/* 01EFAC 7001E3AC 93AE00B1 */ lbu $t6, 0xb1($sp) +/* 01EFB0 7001E3B0 27AF00B0 */ addiu $t7, $sp, 0xb0 +/* 01EFB4 7001E3B4 24020030 */ li $v0, 48 +/* 01EFB8 7001E3B8 02AFA023 */ subu $s4, $s5, $t7 +/* 01EFBC 7001E3BC 27190007 */ addiu $t9, $t8, 7 +/* 01EFC0 7001E3C0 2694FFFF */ addiu $s4, $s4, -1 +/* 01EFC4 7001E3C4 A7B9009A */ sh $t9, 0x9a($sp) +/* 01EFC8 7001E3C8 144E0009 */ bne $v0, $t6, .L7001E3F0 +/* 01EFCC 7001E3CC 27B500B1 */ addiu $s5, $sp, 0xb1 +/* 01EFD0 7001E3D0 87AF009A */ lh $t7, 0x9a($sp) +.L7001E3D4: +/* 01EFD4 7001E3D4 26B50001 */ addiu $s5, $s5, 1 +/* 01EFD8 7001E3D8 2694FFFF */ addiu $s4, $s4, -1 +/* 01EFDC 7001E3DC 25F8FFFF */ addiu $t8, $t7, -1 +/* 01EFE0 7001E3E0 A7B8009A */ sh $t8, 0x9a($sp) +/* 01EFE4 7001E3E4 92B90000 */ lbu $t9, ($s5) +/* 01EFE8 7001E3E8 5059FFFA */ beql $v0, $t9, .L7001E3D4 +/* 01EFEC 7001E3EC 87AF009A */ lh $t7, 0x9a($sp) +.L7001E3F0: +/* 01EFF0 7001E3F0 8FAE0048 */ lw $t6, 0x48($sp) +/* 01EFF4 7001E3F4 24010066 */ li $at, 102 +/* 01EFF8 7001E3F8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 01EFFC 7001E3FC 15C10004 */ bne $t6, $at, .L7001E410 +/* 01F000 7001E400 8FAF0048 */ lw $t7, 0x48($sp) +/* 01F004 7001E404 87A5009A */ lh $a1, 0x9a($sp) +/* 01F008 7001E408 10000009 */ b .L7001E430 +/* 01F00C 7001E40C 24A50001 */ addiu $a1, $a1, 1 +.L7001E410: +/* 01F010 7001E410 24010065 */ li $at, 101 +/* 01F014 7001E414 11E10003 */ beq $t7, $at, .L7001E424 +/* 01F018 7001E418 24010045 */ li $at, 69 +/* 01F01C 7001E41C 15E10003 */ bne $t7, $at, .L7001E42C +/* 01F020 7001E420 00001025 */ move $v0, $zero +.L7001E424: +/* 01F024 7001E424 10000001 */ b .L7001E42C +/* 01F028 7001E428 24020001 */ li $v0, 1 +.L7001E42C: +/* 01F02C 7001E42C 00402825 */ move $a1, $v0 +.L7001E430: +/* 01F030 7001E430 8F190024 */ lw $t9, 0x24($t8) +/* 01F034 7001E434 00B99821 */ addu $s3, $a1, $t9 +/* 01F038 7001E438 00137400 */ sll $t6, $s3, 0x10 +/* 01F03C 7001E43C 000E9C03 */ sra $s3, $t6, 0x10 +/* 01F040 7001E440 0293082A */ slt $at, $s4, $s3 +/* 01F044 7001E444 10200004 */ beqz $at, .L7001E458 +/* 01F048 7001E448 00000000 */ nop +/* 01F04C 7001E44C 00149C00 */ sll $s3, $s4, 0x10 +/* 01F050 7001E450 0013C403 */ sra $t8, $s3, 0x10 +/* 01F054 7001E454 03009825 */ move $s3, $t8 +.L7001E458: +/* 01F058 7001E458 1A600025 */ blez $s3, .L7001E4F0 +/* 01F05C 7001E45C 0274082A */ slt $at, $s3, $s4 +/* 01F060 7001E460 10200007 */ beqz $at, .L7001E480 +/* 01F064 7001E464 02751021 */ addu $v0, $s3, $s5 +/* 01F068 7001E468 90590000 */ lbu $t9, ($v0) +/* 01F06C 7001E46C 2B210035 */ slti $at, $t9, 0x35 +/* 01F070 7001E470 54200004 */ bnezl $at, .L7001E484 +/* 01F074 7001E474 24050030 */ li $a1, 48 +/* 01F078 7001E478 10000003 */ b .L7001E488 +/* 01F07C 7001E47C 24050039 */ li $a1, 57 +.L7001E480: +/* 01F080 7001E480 24050030 */ li $a1, 48 +.L7001E484: +/* 01F084 7001E484 02751021 */ addu $v0, $s3, $s5 +.L7001E488: +/* 01F088 7001E488 904EFFFF */ lbu $t6, -1($v0) +/* 01F08C 7001E48C 2663FFFF */ addiu $v1, $s3, -1 +/* 01F090 7001E490 00A02025 */ move $a0, $a1 +/* 01F094 7001E494 14AE0009 */ bne $a1, $t6, .L7001E4BC +/* 01F098 7001E498 24010039 */ li $at, 57 +/* 01F09C 7001E49C 00751021 */ addu $v0, $v1, $s5 +.L7001E4A0: +/* 01F0A0 7001E4A0 9059FFFF */ lbu $t9, -1($v0) +/* 01F0A4 7001E4A4 2673FFFF */ addiu $s3, $s3, -1 +/* 01F0A8 7001E4A8 00137C00 */ sll $t7, $s3, 0x10 +/* 01F0AC 7001E4AC 2463FFFF */ addiu $v1, $v1, -1 +/* 01F0B0 7001E4B0 2442FFFF */ addiu $v0, $v0, -1 +/* 01F0B4 7001E4B4 1099FFFA */ beq $a0, $t9, .L7001E4A0 +/* 01F0B8 7001E4B8 000F9C03 */ sra $s3, $t7, 0x10 +.L7001E4BC: +/* 01F0BC 7001E4BC 14810004 */ bne $a0, $at, .L7001E4D0 +/* 01F0C0 7001E4C0 02A31021 */ addu $v0, $s5, $v1 +/* 01F0C4 7001E4C4 904E0000 */ lbu $t6, ($v0) +/* 01F0C8 7001E4C8 25CF0001 */ addiu $t7, $t6, 1 +/* 01F0CC 7001E4CC A04F0000 */ sb $t7, ($v0) +.L7001E4D0: +/* 01F0D0 7001E4D0 04610007 */ bgez $v1, .L7001E4F0 +/* 01F0D4 7001E4D4 87AE009A */ lh $t6, 0x9a($sp) +/* 01F0D8 7001E4D8 26730001 */ addiu $s3, $s3, 1 +/* 01F0DC 7001E4DC 0013C400 */ sll $t8, $s3, 0x10 +/* 01F0E0 7001E4E0 25CF0001 */ addiu $t7, $t6, 1 +/* 01F0E4 7001E4E4 A7AF009A */ sh $t7, 0x9a($sp) +/* 01F0E8 7001E4E8 00189C03 */ sra $s3, $t8, 0x10 +/* 01F0EC 7001E4EC 26B5FFFF */ addiu $s5, $s5, -1 +.L7001E4F0: +/* 01F0F0 7001E4F0 8FB000D0 */ lw $s0, 0xd0($sp) +/* 01F0F4 7001E4F4 93B400D7 */ lbu $s4, 0xd7($sp) +/* 01F0F8 7001E4F8 02A08825 */ move $s1, $s5 +/* 01F0FC 7001E4FC 0C00769C */ jal xldtob_sub0 +/* 01F100 7001E500 87B2009A */ lh $s2, 0x9a($sp) +/* 01F104 7001E504 8FBF003C */ lw $ra, 0x3c($sp) +.L7001E508: +/* 01F108 7001E508 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 01F10C 7001E50C 8FB00024 */ lw $s0, 0x24($sp) +/* 01F110 7001E510 8FB10028 */ lw $s1, 0x28($sp) +/* 01F114 7001E514 8FB2002C */ lw $s2, 0x2c($sp) +/* 01F118 7001E518 8FB30030 */ lw $s3, 0x30($sp) +/* 01F11C 7001E51C 8FB40034 */ lw $s4, 0x34($sp) +/* 01F120 7001E520 8FB50038 */ lw $s5, 0x38($sp) +/* 01F124 7001E524 03E00008 */ jr $ra +/* 01F128 7001E528 27BD00D0 */ addiu $sp, $sp, 0xd0 + +.section .rodata +glabel asc_D_80029CE0 + .ascii "0"<0> + .align 3 +glabel F64_80029CE8 + .double 1.0e8 + \ No newline at end of file diff --git a/src/libultra/xlitob.s b/src/libultra/xlitob.s new file mode 100644 index 0000000..f1a6ab6 --- /dev/null +++ b/src/libultra/xlitob.s @@ -0,0 +1,208 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _Litob +/* 01E3D0 7001D7D0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 01E3D4 7001D7D4 AFB10020 */ sw $s1, 0x20($sp) +/* 01E3D8 7001D7D8 30A200FF */ andi $v0, $a1, 0xff +/* 01E3DC 7001D7DC 24030058 */ li $v1, 88 +/* 01E3E0 7001D7E0 00808825 */ move $s1, $a0 +/* 01E3E4 7001D7E4 AFBF002C */ sw $ra, 0x2c($sp) +/* 01E3E8 7001D7E8 AFB30028 */ sw $s3, 0x28($sp) +/* 01E3EC 7001D7EC AFB20024 */ sw $s2, 0x24($sp) +/* 01E3F0 7001D7F0 AFB0001C */ sw $s0, 0x1c($sp) +/* 01E3F4 7001D7F4 14620004 */ bne $v1, $v0, .L7001D808 +/* 01E3F8 7001D7F8 AFA50094 */ sw $a1, 0x94($sp) +/* 01E3FC 7001D7FC 3C138003 */ lui $s3, %hi(auppercase_hex_char) +/* 01E400 7001D800 10000003 */ b .L7001D810 +/* 01E404 7001D804 26738304 */ addiu $s3, %lo(auppercase_hex_char) # addiu $s3, $s3, -0x7cfc +.L7001D808: +/* 01E408 7001D808 3C138003 */ lui $s3, %hi(alowercase_hex_char) +/* 01E40C 7001D80C 267382F0 */ addiu $s3, %lo(alowercase_hex_char) # addiu $s3, $s3, -0x7d10 +.L7001D810: +/* 01E410 7001D810 2401006F */ li $at, 111 +/* 01E414 7001D814 14410003 */ bne $v0, $at, .L7001D824 +/* 01E418 7001D818 24100018 */ li $s0, 24 +/* 01E41C 7001D81C 10000009 */ b .L7001D844 +/* 01E420 7001D820 24090008 */ li $t1, 8 +.L7001D824: +/* 01E424 7001D824 24010078 */ li $at, 120 +/* 01E428 7001D828 10410005 */ beq $v0, $at, .L7001D840 +/* 01E42C 7001D82C 24080010 */ li $t0, 16 +/* 01E430 7001D830 10620003 */ beq $v1, $v0, .L7001D840 +/* 01E434 7001D834 00000000 */ nop +/* 01E438 7001D838 10000001 */ b .L7001D840 +/* 01E43C 7001D83C 2408000A */ li $t0, 10 +.L7001D840: +/* 01E440 7001D840 01004825 */ move $t1, $t0 +.L7001D844: +/* 01E444 7001D844 8E380000 */ lw $t8, ($s1) +/* 01E448 7001D848 8E390004 */ lw $t9, 4($s1) +/* 01E44C 7001D84C 24010064 */ li $at, 100 +/* 01E450 7001D850 AFB80060 */ sw $t8, 0x60($sp) +/* 01E454 7001D854 AFB80040 */ sw $t8, 0x40($sp) +/* 01E458 7001D858 AFB90044 */ sw $t9, 0x44($sp) +/* 01E45C 7001D85C 10410004 */ beq $v0, $at, .L7001D870 +/* 01E460 7001D860 AFB90064 */ sw $t9, 0x64($sp) +/* 01E464 7001D864 24010069 */ li $at, 105 +/* 01E468 7001D868 54410010 */ bnel $v0, $at, .L7001D8AC +/* 01E46C 7001D86C 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D870: +/* 01E470 7001D870 8FAC0040 */ lw $t4, 0x40($sp) +/* 01E474 7001D874 5D80000D */ bgtzl $t4, .L7001D8AC +/* 01E478 7001D878 8FAA0060 */ lw $t2, 0x60($sp) +/* 01E47C 7001D87C 05800003 */ bltz $t4, .L7001D88C +/* 01E480 7001D880 8FAE0060 */ lw $t6, 0x60($sp) +/* 01E484 7001D884 10000009 */ b .L7001D8AC +/* 01E488 7001D888 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D88C: +/* 01E48C 7001D88C 8FAF0064 */ lw $t7, 0x64($sp) +/* 01E490 7001D890 01C0C027 */ not $t8, $t6 +/* 01E494 7001D894 2DE10001 */ sltiu $at, $t7, 1 +/* 01E498 7001D898 0301C021 */ addu $t8, $t8, $at +/* 01E49C 7001D89C 000FC823 */ negu $t9, $t7 +/* 01E4A0 7001D8A0 AFB90064 */ sw $t9, 0x64($sp) +/* 01E4A4 7001D8A4 AFB80060 */ sw $t8, 0x60($sp) +/* 01E4A8 7001D8A8 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D8AC: +/* 01E4AC 7001D8AC 8FAB0064 */ lw $t3, 0x64($sp) +/* 01E4B0 7001D8B0 24080017 */ li $t0, 23 +/* 01E4B4 7001D8B4 15400006 */ bnez $t2, .L7001D8D0 +/* 01E4B8 7001D8B8 8FA40060 */ lw $a0, 0x60($sp) +/* 01E4BC 7001D8BC 55600005 */ bnezl $t3, .L7001D8D4 +/* 01E4C0 7001D8C0 24100017 */ li $s0, 23 +/* 01E4C4 7001D8C4 8E2C0024 */ lw $t4, 0x24($s1) +/* 01E4C8 7001D8C8 51800010 */ beql $t4, $zero, .L7001D90C +/* 01E4CC 7001D8CC 27B20078 */ addiu $s2, $sp, 0x78 +.L7001D8D0: +/* 01E4D0 7001D8D0 24100017 */ li $s0, 23 +.L7001D8D4: +/* 01E4D4 7001D8D4 8FA50064 */ lw $a1, 0x64($sp) +/* 01E4D8 7001D8D8 01203825 */ move $a3, $t1 +/* 01E4DC 7001D8DC 000937C3 */ sra $a2, $t1, 0x1f +/* 01E4E0 7001D8E0 AFA8004C */ sw $t0, 0x4c($sp) +/* 01E4E4 7001D8E4 0C003B1B */ jal __ull_rem +/* 01E4E8 7001D8E8 AFA90070 */ sw $t1, 0x70($sp) +/* 01E4EC 7001D8EC 8FA8004C */ lw $t0, 0x4c($sp) +/* 01E4F0 7001D8F0 00737021 */ addu $t6, $v1, $s3 +/* 01E4F4 7001D8F4 91CF0000 */ lbu $t7, ($t6) +/* 01E4F8 7001D8F8 27B20078 */ addiu $s2, $sp, 0x78 +/* 01E4FC 7001D8FC 8FA90070 */ lw $t1, 0x70($sp) +/* 01E500 7001D900 0248C021 */ addu $t8, $s2, $t0 +/* 01E504 7001D904 A30F0000 */ sb $t7, ($t8) +/* 01E508 7001D908 27B20078 */ addiu $s2, $sp, 0x78 +.L7001D90C: +/* 01E50C 7001D90C 8FA40060 */ lw $a0, 0x60($sp) +/* 01E510 7001D910 8FA50064 */ lw $a1, 0x64($sp) +/* 01E514 7001D914 01203825 */ move $a3, $t1 +/* 01E518 7001D918 000937C3 */ sra $a2, $t1, 0x1f +/* 01E51C 7001D91C 0C003B2A */ jal __ull_div +/* 01E520 7001D920 AFA90070 */ sw $t1, 0x70($sp) +/* 01E524 7001D924 8FA90070 */ lw $t1, 0x70($sp) +/* 01E528 7001D928 AE230004 */ sw $v1, 4($s1) +/* 01E52C 7001D92C 0440002B */ bltz $v0, .L7001D9DC +/* 01E530 7001D930 AE220000 */ sw $v0, ($s1) +/* 01E534 7001D934 1C400003 */ bgtz $v0, .L7001D944 +/* 01E538 7001D938 00000000 */ nop +/* 01E53C 7001D93C 50600028 */ beql $v1, $zero, .L7001D9E0 +/* 01E540 7001D940 240C0018 */ li $t4, 24 +.L7001D944: +/* 01E544 7001D944 1A000025 */ blez $s0, .L7001D9DC +/* 01E548 7001D948 000967C3 */ sra $t4, $t1, 0x1f +/* 01E54C 7001D94C 8E2A0000 */ lw $t2, ($s1) +/* 01E550 7001D950 8E2B0004 */ lw $t3, 4($s1) +/* 01E554 7001D954 AFA9003C */ sw $t1, 0x3c($sp) +/* 01E558 7001D958 AFAC0038 */ sw $t4, 0x38($sp) +/* 01E55C 7001D95C AFAA0040 */ sw $t2, 0x40($sp) +/* 01E560 7001D960 AFAB0044 */ sw $t3, 0x44($sp) +/* 01E564 7001D964 8FAE0038 */ lw $t6, 0x38($sp) +.L7001D968: +/* 01E568 7001D968 8FAF003C */ lw $t7, 0x3c($sp) +/* 01E56C 7001D96C 27A40050 */ addiu $a0, $sp, 0x50 +/* 01E570 7001D970 8FA60040 */ lw $a2, 0x40($sp) +/* 01E574 7001D974 8FA70044 */ lw $a3, 0x44($sp) +/* 01E578 7001D978 AFAE0010 */ sw $t6, 0x10($sp) +/* 01E57C 7001D97C 0C0082D4 */ jal lldiv +/* 01E580 7001D980 AFAF0014 */ sw $t7, 0x14($sp) +/* 01E584 7001D984 8FB80050 */ lw $t8, 0x50($sp) +/* 01E588 7001D988 8FB90054 */ lw $t9, 0x54($sp) +/* 01E58C 7001D98C 2604FFFF */ addiu $a0, $s0, -1 +/* 01E590 7001D990 AE380000 */ sw $t8, ($s1) +/* 01E594 7001D994 AE390004 */ sw $t9, 4($s1) +/* 01E598 7001D998 8FAB005C */ lw $t3, 0x5c($sp) +/* 01E59C 7001D99C 02447821 */ addu $t7, $s2, $a0 +/* 01E5A0 7001D9A0 00808025 */ move $s0, $a0 +/* 01E5A4 7001D9A4 01736821 */ addu $t5, $t3, $s3 +/* 01E5A8 7001D9A8 91AE0000 */ lbu $t6, ($t5) +/* 01E5AC 7001D9AC A1EE0000 */ sb $t6, ($t7) +/* 01E5B0 7001D9B0 8E380000 */ lw $t8, ($s1) +/* 01E5B4 7001D9B4 8E390004 */ lw $t9, 4($s1) +/* 01E5B8 7001D9B8 AFB80040 */ sw $t8, 0x40($sp) +/* 01E5BC 7001D9BC 07000007 */ bltz $t8, .L7001D9DC +/* 01E5C0 7001D9C0 AFB90044 */ sw $t9, 0x44($sp) +/* 01E5C4 7001D9C4 1F000003 */ bgtz $t8, .L7001D9D4 +/* 01E5C8 7001D9C8 00000000 */ nop +/* 01E5CC 7001D9CC 53200004 */ beql $t9, $zero, .L7001D9E0 +/* 01E5D0 7001D9D0 240C0018 */ li $t4, 24 +.L7001D9D4: +/* 01E5D4 7001D9D4 5E00FFE4 */ bgtzl $s0, .L7001D968 +/* 01E5D8 7001D9D8 8FAE0038 */ lw $t6, 0x38($sp) +.L7001D9DC: +/* 01E5DC 7001D9DC 240C0018 */ li $t4, 24 +.L7001D9E0: +/* 01E5E0 7001D9E0 01903023 */ subu $a2, $t4, $s0 +/* 01E5E4 7001D9E4 AE260014 */ sw $a2, 0x14($s1) +/* 01E5E8 7001D9E8 8E240008 */ lw $a0, 8($s1) +/* 01E5EC 7001D9EC 0C004E14 */ jal memcpy +/* 01E5F0 7001D9F0 02502821 */ addu $a1, $s2, $s0 +/* 01E5F4 7001D9F4 8E250014 */ lw $a1, 0x14($s1) +/* 01E5F8 7001D9F8 8E240024 */ lw $a0, 0x24($s1) +/* 01E5FC 7001D9FC 00A4082A */ slt $at, $a1, $a0 +/* 01E600 7001DA00 10200002 */ beqz $at, .L7001DA0C +/* 01E604 7001DA04 00856823 */ subu $t5, $a0, $a1 +/* 01E608 7001DA08 AE2D0010 */ sw $t5, 0x10($s1) +.L7001DA0C: +/* 01E60C 7001DA0C 04830010 */ bgezl $a0, .L7001DA50 +/* 01E610 7001DA10 8FBF002C */ lw $ra, 0x2c($sp) +/* 01E614 7001DA14 8E2E0030 */ lw $t6, 0x30($s1) +/* 01E618 7001DA18 24010010 */ li $at, 16 +/* 01E61C 7001DA1C 31CF0014 */ andi $t7, $t6, 0x14 +/* 01E620 7001DA20 55E1000B */ bnel $t7, $at, .L7001DA50 +/* 01E624 7001DA24 8FBF002C */ lw $ra, 0x2c($sp) +/* 01E628 7001DA28 8E380028 */ lw $t8, 0x28($s1) +/* 01E62C 7001DA2C 8E39000C */ lw $t9, 0xc($s1) +/* 01E630 7001DA30 8E220010 */ lw $v0, 0x10($s1) +/* 01E634 7001DA34 03195023 */ subu $t2, $t8, $t9 +/* 01E638 7001DA38 01425823 */ subu $t3, $t2, $v0 +/* 01E63C 7001DA3C 01658023 */ subu $s0, $t3, $a1 +/* 01E640 7001DA40 1A000002 */ blez $s0, .L7001DA4C +/* 01E644 7001DA44 00506021 */ addu $t4, $v0, $s0 +/* 01E648 7001DA48 AE2C0010 */ sw $t4, 0x10($s1) +.L7001DA4C: +/* 01E64C 7001DA4C 8FBF002C */ lw $ra, 0x2c($sp) +.L7001DA50: +/* 01E650 7001DA50 8FB0001C */ lw $s0, 0x1c($sp) +/* 01E654 7001DA54 8FB10020 */ lw $s1, 0x20($sp) +/* 01E658 7001DA58 8FB20024 */ lw $s2, 0x24($sp) +/* 01E65C 7001DA5C 8FB30028 */ lw $s3, 0x28($sp) +/* 01E660 7001DA60 03E00008 */ jr $ra +/* 01E664 7001DA64 27BD0090 */ addiu $sp, $sp, 0x90 + + +.section .data +glabel alowercase_hex_char +.asciiz "0123456789abcdef" +.align 2 +glabel auppercase_hex_char +.asciiz "0123456789ABCDEF" +.align 4 diff --git a/src/libultra/xprintf.s b/src/libultra/xprintf.s new file mode 100644 index 0000000..0f7ac68 --- /dev/null +++ b/src/libultra/xprintf.s @@ -0,0 +1,966 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel _Putfld +/* 0144F0 700138F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0144F4 700138F4 AFA50020 */ sw $a1, 0x20($sp) +/* 0144F8 700138F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0144FC 700138FC 30AE00FF */ andi $t6, $a1, 0xff +/* 014500 70013900 29C10026 */ slti $at, $t6, 0x26 +/* 014504 70013904 01C02825 */ move $a1, $t6 +/* 014508 70013908 AE00000C */ sw $zero, 0xc($s0) +/* 01450C 7001390C AE000010 */ sw $zero, 0x10($s0) +/* 014510 70013910 AE000014 */ sw $zero, 0x14($s0) +/* 014514 70013914 AE000018 */ sw $zero, 0x18($s0) +/* 014518 70013918 AE00001C */ sw $zero, 0x1c($s0) +/* 01451C 7001391C AE000020 */ sw $zero, 0x20($s0) +/* 014520 70013920 1420000A */ bnez $at, .L7001394C +/* 014524 70013924 01C01825 */ move $v1, $t6 +/* 014528 70013928 25CFFFBB */ addiu $t7, $t6, -0x45 +/* 01452C 7001392C 2DE10034 */ sltiu $at, $t7, 0x34 +/* 014530 70013930 10200181 */ beqz $at, .L70013F38 +/* 014534 70013934 000F7880 */ sll $t7, $t7, 2 +/* 014538 70013938 3C018003 */ lui $at, %hi(jpt_80029714) +/* 01453C 7001393C 002F0821 */ addu $at, $at, $t7 +/* 014540 70013940 8C2F9714 */ lw $t7, %lo(jpt_80029714)($at) +/* 014544 70013944 01E00008 */ jr $t7 +/* 014548 70013948 00000000 */ nop +.L7001394C: +/* 01454C 7001394C 24010025 */ li $at, 37 +/* 014550 70013950 50610172 */ beql $v1, $at, .L70013F1C +/* 014554 70013954 8E18000C */ lw $t8, 0xc($s0) +/* 014558 70013958 10000178 */ b .L70013F3C +/* 01455C 7001395C 8E0E000C */ lw $t6, 0xc($s0) +.L70013960: +/* 014560 70013960 8CD80000 */ lw $t8, ($a2) +/* 014564 70013964 2401FFFC */ li $at, -4 +/* 014568 70013968 27190003 */ addiu $t9, $t8, 3 +/* 01456C 7001396C 03217024 */ and $t6, $t9, $at +/* 014570 70013970 25CF0004 */ addiu $t7, $t6, 4 +/* 014574 70013974 ACCF0000 */ sw $t7, ($a2) +/* 014578 70013978 8E0E000C */ lw $t6, 0xc($s0) +/* 01457C 7001397C 8DF9FFFC */ lw $t9, -4($t7) +/* 014580 70013980 00EE7821 */ addu $t7, $a3, $t6 +/* 014584 70013984 A1F90000 */ sb $t9, ($t7) +/* 014588 70013988 8E18000C */ lw $t8, 0xc($s0) +/* 01458C 7001398C 270E0001 */ addiu $t6, $t8, 1 +/* 014590 70013990 1000016F */ b .L70013F50 +/* 014594 70013994 AE0E000C */ sw $t6, 0xc($s0) +.L70013998: +/* 014598 70013998 92020034 */ lbu $v0, 0x34($s0) +/* 01459C 7001399C 2401006C */ li $at, 108 +/* 0145A0 700139A0 5441000D */ bnel $v0, $at, .L700139D8 +/* 0145A4 700139A4 2401004C */ li $at, 76 +/* 0145A8 700139A8 8CD90000 */ lw $t9, ($a2) +/* 0145AC 700139AC 2401FFFC */ li $at, -4 +/* 0145B0 700139B0 272F0003 */ addiu $t7, $t9, 3 +/* 0145B4 700139B4 01E1C024 */ and $t8, $t7, $at +/* 0145B8 700139B8 270E0004 */ addiu $t6, $t8, 4 +/* 0145BC 700139BC ACCE0000 */ sw $t6, ($a2) +/* 0145C0 700139C0 8DCFFFFC */ lw $t7, -4($t6) +/* 0145C4 700139C4 000FC7C3 */ sra $t8, $t7, 0x1f +/* 0145C8 700139C8 AE180000 */ sw $t8, ($s0) +/* 0145CC 700139CC 10000019 */ b .L70013A34 +/* 0145D0 700139D0 AE0F0004 */ sw $t7, 4($s0) +/* 0145D4 700139D4 2401004C */ li $at, 76 +.L700139D8: +/* 0145D8 700139D8 5441000D */ bnel $v0, $at, .L70013A10 +/* 0145DC 700139DC 8CCF0000 */ lw $t7, ($a2) +/* 0145E0 700139E0 8CCE0000 */ lw $t6, ($a2) +/* 0145E4 700139E4 2401FFF8 */ li $at, -8 +/* 0145E8 700139E8 25CF0007 */ addiu $t7, $t6, 7 +/* 0145EC 700139EC 01E1C024 */ and $t8, $t7, $at +/* 0145F0 700139F0 27190008 */ addiu $t9, $t8, 8 +/* 0145F4 700139F4 ACD90000 */ sw $t9, ($a2) +/* 0145F8 700139F8 8F38FFF8 */ lw $t8, -8($t9) +/* 0145FC 700139FC 8F39FFFC */ lw $t9, -4($t9) +/* 014600 70013A00 AE180000 */ sw $t8, ($s0) +/* 014604 70013A04 1000000B */ b .L70013A34 +/* 014608 70013A08 AE190004 */ sw $t9, 4($s0) +/* 01460C 70013A0C 8CCF0000 */ lw $t7, ($a2) +.L70013A10: +/* 014610 70013A10 2401FFFC */ li $at, -4 +/* 014614 70013A14 25EE0003 */ addiu $t6, $t7, 3 +/* 014618 70013A18 01C1C024 */ and $t8, $t6, $at +/* 01461C 70013A1C 27190004 */ addiu $t9, $t8, 4 +/* 014620 70013A20 ACD90000 */ sw $t9, ($a2) +/* 014624 70013A24 8F2EFFFC */ lw $t6, -4($t9) +/* 014628 70013A28 000EC7C3 */ sra $t8, $t6, 0x1f +/* 01462C 70013A2C AE180000 */ sw $t8, ($s0) +/* 014630 70013A30 AE0E0004 */ sw $t6, 4($s0) +.L70013A34: +/* 014634 70013A34 920F0034 */ lbu $t7, 0x34($s0) +/* 014638 70013A38 24010068 */ li $at, 104 +/* 01463C 70013A3C 55E10008 */ bnel $t7, $at, .L70013A60 +/* 014640 70013A40 8E0E0000 */ lw $t6, ($s0) +/* 014644 70013A44 8E0F0004 */ lw $t7, 4($s0) +/* 014648 70013A48 000FCC00 */ sll $t9, $t7, 0x10 +/* 01464C 70013A4C 00197403 */ sra $t6, $t9, 0x10 +/* 014650 70013A50 000EC7C3 */ sra $t8, $t6, 0x1f +/* 014654 70013A54 AE180000 */ sw $t8, ($s0) +/* 014658 70013A58 AE0E0004 */ sw $t6, 4($s0) +/* 01465C 70013A5C 8E0E0000 */ lw $t6, ($s0) +.L70013A60: +/* 014660 70013A60 5DC0000E */ bgtzl $t6, .L70013A9C +/* 014664 70013A64 8E020030 */ lw $v0, 0x30($s0) +/* 014668 70013A68 05C20004 */ bltzl $t6, .L70013A7C +/* 01466C 70013A6C 8E19000C */ lw $t9, 0xc($s0) +/* 014670 70013A70 1000000A */ b .L70013A9C +/* 014674 70013A74 8E020030 */ lw $v0, 0x30($s0) +/* 014678 70013A78 8E19000C */ lw $t9, 0xc($s0) +.L70013A7C: +/* 01467C 70013A7C 2418002D */ li $t8, 45 +/* 014680 70013A80 00F97021 */ addu $t6, $a3, $t9 +/* 014684 70013A84 A1D80000 */ sb $t8, ($t6) +/* 014688 70013A88 8E0F000C */ lw $t7, 0xc($s0) +/* 01468C 70013A8C 25F90001 */ addiu $t9, $t7, 1 +/* 014690 70013A90 10000016 */ b .L70013AEC +/* 014694 70013A94 AE19000C */ sw $t9, 0xc($s0) +/* 014698 70013A98 8E020030 */ lw $v0, 0x30($s0) +.L70013A9C: +/* 01469C 70013A9C 30580002 */ andi $t8, $v0, 2 +/* 0146A0 70013AA0 13000009 */ beqz $t8, .L70013AC8 +/* 0146A4 70013AA4 304E0001 */ andi $t6, $v0, 1 +/* 0146A8 70013AA8 8E0F000C */ lw $t7, 0xc($s0) +/* 0146AC 70013AAC 240E002B */ li $t6, 43 +/* 0146B0 70013AB0 00EFC821 */ addu $t9, $a3, $t7 +/* 0146B4 70013AB4 A32E0000 */ sb $t6, ($t9) +/* 0146B8 70013AB8 8E18000C */ lw $t8, 0xc($s0) +/* 0146BC 70013ABC 270F0001 */ addiu $t7, $t8, 1 +/* 0146C0 70013AC0 1000000A */ b .L70013AEC +/* 0146C4 70013AC4 AE0F000C */ sw $t7, 0xc($s0) +.L70013AC8: +/* 0146C8 70013AC8 51C00009 */ beql $t6, $zero, .L70013AF0 +/* 0146CC 70013ACC 8E19000C */ lw $t9, 0xc($s0) +/* 0146D0 70013AD0 8E18000C */ lw $t8, 0xc($s0) +/* 0146D4 70013AD4 24190020 */ li $t9, 32 +/* 0146D8 70013AD8 00F87821 */ addu $t7, $a3, $t8 +/* 0146DC 70013ADC A1F90000 */ sb $t9, ($t7) +/* 0146E0 70013AE0 8E0E000C */ lw $t6, 0xc($s0) +/* 0146E4 70013AE4 25D80001 */ addiu $t8, $t6, 1 +/* 0146E8 70013AE8 AE18000C */ sw $t8, 0xc($s0) +.L70013AEC: +/* 0146EC 70013AEC 8E19000C */ lw $t9, 0xc($s0) +.L70013AF0: +/* 0146F0 70013AF0 02002025 */ move $a0, $s0 +/* 0146F4 70013AF4 03277821 */ addu $t7, $t9, $a3 +/* 0146F8 70013AF8 0C0075F4 */ jal _Litob +/* 0146FC 70013AFC AE0F0008 */ sw $t7, 8($s0) +/* 014700 70013B00 10000114 */ b .L70013F54 +/* 014704 70013B04 8FBF0014 */ lw $ra, 0x14($sp) +.L70013B08: +/* 014708 70013B08 92020034 */ lbu $v0, 0x34($s0) +/* 01470C 70013B0C 2401006C */ li $at, 108 +/* 014710 70013B10 5441000D */ bnel $v0, $at, .L70013B48 +/* 014714 70013B14 2401004C */ li $at, 76 +/* 014718 70013B18 8CCE0000 */ lw $t6, ($a2) +/* 01471C 70013B1C 2401FFFC */ li $at, -4 +/* 014720 70013B20 25D80003 */ addiu $t8, $t6, 3 +/* 014724 70013B24 0301C824 */ and $t9, $t8, $at +/* 014728 70013B28 272F0004 */ addiu $t7, $t9, 4 +/* 01472C 70013B2C ACCF0000 */ sw $t7, ($a2) +/* 014730 70013B30 8DF8FFFC */ lw $t8, -4($t7) +/* 014734 70013B34 001877C3 */ sra $t6, $t8, 0x1f +/* 014738 70013B38 AE0E0000 */ sw $t6, ($s0) +/* 01473C 70013B3C 10000019 */ b .L70013BA4 +/* 014740 70013B40 AE180004 */ sw $t8, 4($s0) +/* 014744 70013B44 2401004C */ li $at, 76 +.L70013B48: +/* 014748 70013B48 5441000D */ bnel $v0, $at, .L70013B80 +/* 01474C 70013B4C 8CCE0000 */ lw $t6, ($a2) +/* 014750 70013B50 8CD90000 */ lw $t9, ($a2) +/* 014754 70013B54 2401FFF8 */ li $at, -8 +/* 014758 70013B58 27380007 */ addiu $t8, $t9, 7 +/* 01475C 70013B5C 03017024 */ and $t6, $t8, $at +/* 014760 70013B60 25CF0008 */ addiu $t7, $t6, 8 +/* 014764 70013B64 ACCF0000 */ sw $t7, ($a2) +/* 014768 70013B68 8DF9FFFC */ lw $t9, -4($t7) +/* 01476C 70013B6C 8DF8FFF8 */ lw $t8, -8($t7) +/* 014770 70013B70 AE190004 */ sw $t9, 4($s0) +/* 014774 70013B74 1000000B */ b .L70013BA4 +/* 014778 70013B78 AE180000 */ sw $t8, ($s0) +/* 01477C 70013B7C 8CCE0000 */ lw $t6, ($a2) +.L70013B80: +/* 014780 70013B80 2401FFFC */ li $at, -4 +/* 014784 70013B84 25CF0003 */ addiu $t7, $t6, 3 +/* 014788 70013B88 01E1C024 */ and $t8, $t7, $at +/* 01478C 70013B8C 27190004 */ addiu $t9, $t8, 4 +/* 014790 70013B90 ACD90000 */ sw $t9, ($a2) +/* 014794 70013B94 8F2FFFFC */ lw $t7, -4($t9) +/* 014798 70013B98 000FC7C3 */ sra $t8, $t7, 0x1f +/* 01479C 70013B9C AE180000 */ sw $t8, ($s0) +/* 0147A0 70013BA0 AE0F0004 */ sw $t7, 4($s0) +.L70013BA4: +/* 0147A4 70013BA4 92020034 */ lbu $v0, 0x34($s0) +/* 0147A8 70013BA8 24010068 */ li $at, 104 +/* 0147AC 70013BAC 14410007 */ bne $v0, $at, .L70013BCC +/* 0147B0 70013BB0 00000000 */ nop +/* 0147B4 70013BB4 8E0F0004 */ lw $t7, 4($s0) +/* 0147B8 70013BB8 240E0000 */ li $t6, 0 +/* 0147BC 70013BBC AE0E0000 */ sw $t6, ($s0) +/* 0147C0 70013BC0 31F9FFFF */ andi $t9, $t7, 0xffff +/* 0147C4 70013BC4 10000007 */ b .L70013BE4 +/* 0147C8 70013BC8 AE190004 */ sw $t9, 4($s0) +.L70013BCC: +/* 0147CC 70013BCC 54400006 */ bnezl $v0, .L70013BE8 +/* 0147D0 70013BD0 8E0F0030 */ lw $t7, 0x30($s0) +/* 0147D4 70013BD4 8E190004 */ lw $t9, 4($s0) +/* 0147D8 70013BD8 24180000 */ li $t8, 0 +/* 0147DC 70013BDC AE180000 */ sw $t8, ($s0) +/* 0147E0 70013BE0 AE190004 */ sw $t9, 4($s0) +.L70013BE4: +/* 0147E4 70013BE4 8E0F0030 */ lw $t7, 0x30($s0) +.L70013BE8: +/* 0147E8 70013BE8 31EE0008 */ andi $t6, $t7, 8 +/* 0147EC 70013BEC 51C00014 */ beql $t6, $zero, .L70013C40 +/* 0147F0 70013BF0 8E18000C */ lw $t8, 0xc($s0) +/* 0147F4 70013BF4 8E19000C */ lw $t9, 0xc($s0) +/* 0147F8 70013BF8 24180030 */ li $t8, 48 +/* 0147FC 70013BFC 24010078 */ li $at, 120 +/* 014800 70013C00 00F97821 */ addu $t7, $a3, $t9 +/* 014804 70013C04 A1F80000 */ sb $t8, ($t7) +/* 014808 70013C08 8E0E000C */ lw $t6, 0xc($s0) +/* 01480C 70013C0C 25D90001 */ addiu $t9, $t6, 1 +/* 014810 70013C10 10610004 */ beq $v1, $at, .L70013C24 +/* 014814 70013C14 AE19000C */ sw $t9, 0xc($s0) +/* 014818 70013C18 24010058 */ li $at, 88 +/* 01481C 70013C1C 54610008 */ bnel $v1, $at, .L70013C40 +/* 014820 70013C20 8E18000C */ lw $t8, 0xc($s0) +.L70013C24: +/* 014824 70013C24 8E18000C */ lw $t8, 0xc($s0) +/* 014828 70013C28 00F87821 */ addu $t7, $a3, $t8 +/* 01482C 70013C2C A1E50000 */ sb $a1, ($t7) +/* 014830 70013C30 8E0E000C */ lw $t6, 0xc($s0) +/* 014834 70013C34 25D90001 */ addiu $t9, $t6, 1 +/* 014838 70013C38 AE19000C */ sw $t9, 0xc($s0) +/* 01483C 70013C3C 8E18000C */ lw $t8, 0xc($s0) +.L70013C40: +/* 014840 70013C40 02002025 */ move $a0, $s0 +/* 014844 70013C44 03077821 */ addu $t7, $t8, $a3 +/* 014848 70013C48 0C0075F4 */ jal _Litob +/* 01484C 70013C4C AE0F0008 */ sw $t7, 8($s0) +/* 014850 70013C50 100000C0 */ b .L70013F54 +/* 014854 70013C54 8FBF0014 */ lw $ra, 0x14($sp) +.L70013C58: +/* 014858 70013C58 920E0034 */ lbu $t6, 0x34($s0) +/* 01485C 70013C5C 2401004C */ li $at, 76 +/* 014860 70013C60 55C10019 */ bnel $t6, $at, .L70013CC8 +/* 014864 70013C64 8CC20000 */ lw $v0, ($a2) +/* 014868 70013C68 8CC20000 */ lw $v0, ($a2) +/* 01486C 70013C6C 30590001 */ andi $t9, $v0, 1 +/* 014870 70013C70 13200005 */ beqz $t9, .L70013C88 +/* 014874 70013C74 00401825 */ move $v1, $v0 +/* 014878 70013C78 24780007 */ addiu $t8, $v1, 7 +/* 01487C 70013C7C ACD80000 */ sw $t8, ($a2) +/* 014880 70013C80 1000000D */ b .L70013CB8 +/* 014884 70013C84 2702FFEA */ addiu $v0, $t8, -0x16 +.L70013C88: +/* 014888 70013C88 306F0002 */ andi $t7, $v1, 2 +/* 01488C 70013C8C 11E00005 */ beqz $t7, .L70013CA4 +/* 014890 70013C90 24590007 */ addiu $t9, $v0, 7 +/* 014894 70013C94 246E000A */ addiu $t6, $v1, 0xa +/* 014898 70013C98 ACCE0000 */ sw $t6, ($a2) +/* 01489C 70013C9C 10000005 */ b .L70013CB4 +/* 0148A0 70013CA0 25C4FFD8 */ addiu $a0, $t6, -0x28 +.L70013CA4: +/* 0148A4 70013CA4 2401FFF8 */ li $at, -8 +/* 0148A8 70013CA8 0321C024 */ and $t8, $t9, $at +/* 0148AC 70013CAC 27040008 */ addiu $a0, $t8, 8 +/* 0148B0 70013CB0 ACC40000 */ sw $a0, ($a2) +.L70013CB4: +/* 0148B4 70013CB4 00801025 */ move $v0, $a0 +.L70013CB8: +/* 0148B8 70013CB8 D444FFF8 */ ldc1 $f4, -8($v0) +/* 0148BC 70013CBC 10000017 */ b .L70013D1C +/* 0148C0 70013CC0 F6040000 */ sdc1 $f4, ($s0) +/* 0148C4 70013CC4 8CC20000 */ lw $v0, ($a2) +.L70013CC8: +/* 0148C8 70013CC8 304E0001 */ andi $t6, $v0, 1 +/* 0148CC 70013CCC 11C00005 */ beqz $t6, .L70013CE4 +/* 0148D0 70013CD0 00401825 */ move $v1, $v0 +/* 0148D4 70013CD4 24790007 */ addiu $t9, $v1, 7 +/* 0148D8 70013CD8 ACD90000 */ sw $t9, ($a2) +/* 0148DC 70013CDC 1000000D */ b .L70013D14 +/* 0148E0 70013CE0 2722FFEA */ addiu $v0, $t9, -0x16 +.L70013CE4: +/* 0148E4 70013CE4 30780002 */ andi $t8, $v1, 2 +/* 0148E8 70013CE8 13000005 */ beqz $t8, .L70013D00 +/* 0148EC 70013CEC 244E0007 */ addiu $t6, $v0, 7 +/* 0148F0 70013CF0 246F000A */ addiu $t7, $v1, 0xa +/* 0148F4 70013CF4 ACCF0000 */ sw $t7, ($a2) +/* 0148F8 70013CF8 10000005 */ b .L70013D10 +/* 0148FC 70013CFC 25E4FFD8 */ addiu $a0, $t7, -0x28 +.L70013D00: +/* 014900 70013D00 2401FFF8 */ li $at, -8 +/* 014904 70013D04 01C1C824 */ and $t9, $t6, $at +/* 014908 70013D08 27240008 */ addiu $a0, $t9, 8 +/* 01490C 70013D0C ACC40000 */ sw $a0, ($a2) +.L70013D10: +/* 014910 70013D10 00801025 */ move $v0, $a0 +.L70013D14: +/* 014914 70013D14 D446FFF8 */ ldc1 $f6, -8($v0) +/* 014918 70013D18 F6060000 */ sdc1 $f6, ($s0) +.L70013D1C: +/* 01491C 70013D1C 960F0000 */ lhu $t7, ($s0) +/* 014920 70013D20 31EE8000 */ andi $t6, $t7, 0x8000 +/* 014924 70013D24 51C0000A */ beql $t6, $zero, .L70013D50 +/* 014928 70013D28 8E020030 */ lw $v0, 0x30($s0) +/* 01492C 70013D2C 8E18000C */ lw $t8, 0xc($s0) +/* 014930 70013D30 2419002D */ li $t9, 45 +/* 014934 70013D34 00F87821 */ addu $t7, $a3, $t8 +/* 014938 70013D38 A1F90000 */ sb $t9, ($t7) +/* 01493C 70013D3C 8E0E000C */ lw $t6, 0xc($s0) +/* 014940 70013D40 25D80001 */ addiu $t8, $t6, 1 +/* 014944 70013D44 10000016 */ b .L70013DA0 +/* 014948 70013D48 AE18000C */ sw $t8, 0xc($s0) +/* 01494C 70013D4C 8E020030 */ lw $v0, 0x30($s0) +.L70013D50: +/* 014950 70013D50 30590002 */ andi $t9, $v0, 2 +/* 014954 70013D54 13200009 */ beqz $t9, .L70013D7C +/* 014958 70013D58 304F0001 */ andi $t7, $v0, 1 +/* 01495C 70013D5C 8E0E000C */ lw $t6, 0xc($s0) +/* 014960 70013D60 240F002B */ li $t7, 43 +/* 014964 70013D64 00EEC021 */ addu $t8, $a3, $t6 +/* 014968 70013D68 A30F0000 */ sb $t7, ($t8) +/* 01496C 70013D6C 8E19000C */ lw $t9, 0xc($s0) +/* 014970 70013D70 272E0001 */ addiu $t6, $t9, 1 +/* 014974 70013D74 1000000A */ b .L70013DA0 +/* 014978 70013D78 AE0E000C */ sw $t6, 0xc($s0) +.L70013D7C: +/* 01497C 70013D7C 51E00009 */ beql $t7, $zero, .L70013DA4 +/* 014980 70013D80 8E18000C */ lw $t8, 0xc($s0) +/* 014984 70013D84 8E19000C */ lw $t9, 0xc($s0) +/* 014988 70013D88 24180020 */ li $t8, 32 +/* 01498C 70013D8C 00F97021 */ addu $t6, $a3, $t9 +/* 014990 70013D90 A1D80000 */ sb $t8, ($t6) +/* 014994 70013D94 8E0F000C */ lw $t7, 0xc($s0) +/* 014998 70013D98 25F90001 */ addiu $t9, $t7, 1 +/* 01499C 70013D9C AE19000C */ sw $t9, 0xc($s0) +.L70013DA0: +/* 0149A0 70013DA0 8E18000C */ lw $t8, 0xc($s0) +.L70013DA4: +/* 0149A4 70013DA4 02002025 */ move $a0, $s0 +/* 0149A8 70013DA8 03077021 */ addu $t6, $t8, $a3 +/* 0149AC 70013DAC 0C0077F8 */ jal _Ldtob +/* 0149B0 70013DB0 AE0E0008 */ sw $t6, 8($s0) +/* 0149B4 70013DB4 10000067 */ b .L70013F54 +/* 0149B8 70013DB8 8FBF0014 */ lw $ra, 0x14($sp) +.L70013DBC: +/* 0149BC 70013DBC 92020034 */ lbu $v0, 0x34($s0) +/* 0149C0 70013DC0 24010068 */ li $at, 104 +/* 0149C4 70013DC4 5441000C */ bnel $v0, $at, .L70013DF8 +/* 0149C8 70013DC8 2401006C */ li $at, 108 +/* 0149CC 70013DCC 8CCF0000 */ lw $t7, ($a2) +/* 0149D0 70013DD0 2401FFFC */ li $at, -4 +/* 0149D4 70013DD4 25F90003 */ addiu $t9, $t7, 3 +/* 0149D8 70013DD8 0321C024 */ and $t8, $t9, $at +/* 0149DC 70013DDC 270E0004 */ addiu $t6, $t8, 4 +/* 0149E0 70013DE0 ACCE0000 */ sw $t6, ($a2) +/* 0149E4 70013DE4 8DD9FFFC */ lw $t9, -4($t6) +/* 0149E8 70013DE8 8E0F002C */ lw $t7, 0x2c($s0) +/* 0149EC 70013DEC 10000058 */ b .L70013F50 +/* 0149F0 70013DF0 A72F0000 */ sh $t7, ($t9) +/* 0149F4 70013DF4 2401006C */ li $at, 108 +.L70013DF8: +/* 0149F8 70013DF8 5441000C */ bnel $v0, $at, .L70013E2C +/* 0149FC 70013DFC 2401004C */ li $at, 76 +/* 014A00 70013E00 8CD80000 */ lw $t8, ($a2) +/* 014A04 70013E04 2401FFFC */ li $at, -4 +/* 014A08 70013E08 270E0003 */ addiu $t6, $t8, 3 +/* 014A0C 70013E0C 01C17824 */ and $t7, $t6, $at +/* 014A10 70013E10 25F90004 */ addiu $t9, $t7, 4 +/* 014A14 70013E14 ACD90000 */ sw $t9, ($a2) +/* 014A18 70013E18 8F2EFFFC */ lw $t6, -4($t9) +/* 014A1C 70013E1C 8E18002C */ lw $t8, 0x2c($s0) +/* 014A20 70013E20 1000004B */ b .L70013F50 +/* 014A24 70013E24 ADD80000 */ sw $t8, ($t6) +/* 014A28 70013E28 2401004C */ li $at, 76 +.L70013E2C: +/* 014A2C 70013E2C 5441000E */ bnel $v0, $at, .L70013E68 +/* 014A30 70013E30 8CCF0000 */ lw $t7, ($a2) +/* 014A34 70013E34 8CCF0000 */ lw $t7, ($a2) +/* 014A38 70013E38 2401FFFC */ li $at, -4 +/* 014A3C 70013E3C 25F90003 */ addiu $t9, $t7, 3 +/* 014A40 70013E40 0321C024 */ and $t8, $t9, $at +/* 014A44 70013E44 270E0004 */ addiu $t6, $t8, 4 +/* 014A48 70013E48 ACCE0000 */ sw $t6, ($a2) +/* 014A4C 70013E4C 8DCEFFFC */ lw $t6, -4($t6) +/* 014A50 70013E50 8E0F002C */ lw $t7, 0x2c($s0) +/* 014A54 70013E54 24180000 */ li $t8, 0 +/* 014A58 70013E58 ADD80000 */ sw $t8, ($t6) +/* 014A5C 70013E5C 1000003C */ b .L70013F50 +/* 014A60 70013E60 ADCF0004 */ sw $t7, 4($t6) +/* 014A64 70013E64 8CCF0000 */ lw $t7, ($a2) +.L70013E68: +/* 014A68 70013E68 2401FFFC */ li $at, -4 +/* 014A6C 70013E6C 25F80003 */ addiu $t8, $t7, 3 +/* 014A70 70013E70 0301C824 */ and $t9, $t8, $at +/* 014A74 70013E74 272E0004 */ addiu $t6, $t9, 4 +/* 014A78 70013E78 ACCE0000 */ sw $t6, ($a2) +/* 014A7C 70013E7C 8DD8FFFC */ lw $t8, -4($t6) +/* 014A80 70013E80 8E0F002C */ lw $t7, 0x2c($s0) +/* 014A84 70013E84 10000032 */ b .L70013F50 +/* 014A88 70013E88 AF0F0000 */ sw $t7, ($t8) +.L70013E8C: +/* 014A8C 70013E8C 8CD90000 */ lw $t9, ($a2) +/* 014A90 70013E90 2401FFFC */ li $at, -4 +/* 014A94 70013E94 02002025 */ move $a0, $s0 +/* 014A98 70013E98 272E0003 */ addiu $t6, $t9, 3 +/* 014A9C 70013E9C 01C17824 */ and $t7, $t6, $at +/* 014AA0 70013EA0 25F80004 */ addiu $t8, $t7, 4 +/* 014AA4 70013EA4 ACD80000 */ sw $t8, ($a2) +/* 014AA8 70013EA8 8F0EFFFC */ lw $t6, -4($t8) +/* 014AAC 70013EAC 8E0F000C */ lw $t7, 0xc($s0) +/* 014AB0 70013EB0 24050078 */ li $a1, 120 +/* 014AB4 70013EB4 000EC7C3 */ sra $t8, $t6, 0x1f +/* 014AB8 70013EB8 AE0E0004 */ sw $t6, 4($s0) +/* 014ABC 70013EBC 01E77021 */ addu $t6, $t7, $a3 +/* 014AC0 70013EC0 AE180000 */ sw $t8, ($s0) +/* 014AC4 70013EC4 0C0075F4 */ jal _Litob +/* 014AC8 70013EC8 AE0E0008 */ sw $t6, 8($s0) +/* 014ACC 70013ECC 10000021 */ b .L70013F54 +/* 014AD0 70013ED0 8FBF0014 */ lw $ra, 0x14($sp) +.L70013ED4: +/* 014AD4 70013ED4 8CD80000 */ lw $t8, ($a2) +/* 014AD8 70013ED8 2401FFFC */ li $at, -4 +/* 014ADC 70013EDC 27190003 */ addiu $t9, $t8, 3 +/* 014AE0 70013EE0 03217824 */ and $t7, $t9, $at +/* 014AE4 70013EE4 25EE0004 */ addiu $t6, $t7, 4 +/* 014AE8 70013EE8 ACCE0000 */ sw $t6, ($a2) +/* 014AEC 70013EEC 8DC4FFFC */ lw $a0, -4($t6) +/* 014AF0 70013EF0 0C004E1F */ jal strlen +/* 014AF4 70013EF4 AE040008 */ sw $a0, 8($s0) +/* 014AF8 70013EF8 8E030024 */ lw $v1, 0x24($s0) +/* 014AFC 70013EFC AE020014 */ sw $v0, 0x14($s0) +/* 014B00 70013F00 04600013 */ bltz $v1, .L70013F50 +/* 014B04 70013F04 0062082A */ slt $at, $v1, $v0 +/* 014B08 70013F08 50200012 */ beql $at, $zero, .L70013F54 +/* 014B0C 70013F0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 014B10 70013F10 1000000F */ b .L70013F50 +/* 014B14 70013F14 AE030014 */ sw $v1, 0x14($s0) +/* 014B18 70013F18 8E18000C */ lw $t8, 0xc($s0) +.L70013F1C: +/* 014B1C 70013F1C 240E0025 */ li $t6, 37 +/* 014B20 70013F20 00F8C821 */ addu $t9, $a3, $t8 +/* 014B24 70013F24 A32E0000 */ sb $t6, ($t9) +/* 014B28 70013F28 8E0F000C */ lw $t7, 0xc($s0) +/* 014B2C 70013F2C 25F80001 */ addiu $t8, $t7, 1 +/* 014B30 70013F30 10000007 */ b .L70013F50 +/* 014B34 70013F34 AE18000C */ sw $t8, 0xc($s0) +.L70013F38: +/* 014B38 70013F38 8E0E000C */ lw $t6, 0xc($s0) +.L70013F3C: +/* 014B3C 70013F3C 00EEC821 */ addu $t9, $a3, $t6 +/* 014B40 70013F40 A3250000 */ sb $a1, ($t9) +/* 014B44 70013F44 8E0F000C */ lw $t7, 0xc($s0) +/* 014B48 70013F48 25F80001 */ addiu $t8, $t7, 1 +/* 014B4C 70013F4C AE18000C */ sw $t8, 0xc($s0) +.L70013F50: +/* 014B50 70013F50 8FBF0014 */ lw $ra, 0x14($sp) +.L70013F54: +/* 014B54 70013F54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 014B58 70013F58 03E00008 */ jr $ra +/* 014B5C 70013F5C 00000000 */ nop + +glabel _Printf +/* 014B60 70013F60 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 014B64 70013F64 AFB70034 */ sw $s7, 0x34($sp) +/* 014B68 70013F68 AFB60030 */ sw $s6, 0x30($sp) +/* 014B6C 70013F6C AFB5002C */ sw $s5, 0x2c($sp) +/* 014B70 70013F70 AFBE0038 */ sw $fp, 0x38($sp) +/* 014B74 70013F74 AFB40028 */ sw $s4, 0x28($sp) +/* 014B78 70013F78 AFB30024 */ sw $s3, 0x24($sp) +/* 014B7C 70013F7C AFA700EC */ sw $a3, 0xec($sp) +/* 014B80 70013F80 3C158002 */ lui $s5, %hi(zeros) +/* 014B84 70013F84 3C168003 */ lui $s6, %hi(printf_symbols) +/* 014B88 70013F88 3C178002 */ lui $s7, %hi(spaces) +/* 014B8C 70013F8C 00C03825 */ move $a3, $a2 +/* 014B90 70013F90 00A09825 */ move $s3, $a1 +/* 014B94 70013F94 0080A025 */ move $s4, $a0 +/* 014B98 70013F98 AFBF003C */ sw $ra, 0x3c($sp) +/* 014B9C 70013F9C AFB20020 */ sw $s2, 0x20($sp) +/* 014BA0 70013FA0 AFB1001C */ sw $s1, 0x1c($sp) +/* 014BA4 70013FA4 AFB00018 */ sw $s0, 0x18($sp) +/* 014BA8 70013FA8 AFA600E8 */ sw $a2, 0xe8($sp) +/* 014BAC 70013FAC AFA000D4 */ sw $zero, 0xd4($sp) +/* 014BB0 70013FB0 26F77740 */ addiu $s7, %lo(spaces) # addiu $s7, $s7, 0x7740 +/* 014BB4 70013FB4 26D696F4 */ addiu $s6, %lo(printf_symbols) # addiu $s6, $s6, -0x690c +/* 014BB8 70013FB8 26B57764 */ addiu $s5, %lo(zeros) # addiu $s5, $s5, 0x7764 +/* 014BBC 70013FBC 241E000A */ li $fp, 10 +.L70013FC0: +/* 014BC0 70013FC0 90F00000 */ lbu $s0, ($a3) +/* 014BC4 70013FC4 24F20001 */ addiu $s2, $a3, 1 +/* 014BC8 70013FC8 24030025 */ li $v1, 37 +/* 014BCC 70013FCC 1A000009 */ blez $s0, .L70013FF4 +/* 014BD0 70013FD0 02602025 */ move $a0, $s3 +.L70013FD4: +/* 014BD4 70013FD4 54700004 */ bnel $v1, $s0, .L70013FE8 +/* 014BD8 70013FD8 92500000 */ lbu $s0, ($s2) +/* 014BDC 70013FDC 10000005 */ b .L70013FF4 +/* 014BE0 70013FE0 2652FFFF */ addiu $s2, $s2, -1 +/* 014BE4 70013FE4 92500000 */ lbu $s0, ($s2) +.L70013FE8: +/* 014BE8 70013FE8 26520001 */ addiu $s2, $s2, 1 +/* 014BEC 70013FEC 1E00FFF9 */ bgtz $s0, .L70013FD4 +/* 014BF0 70013FF0 00000000 */ nop +.L70013FF4: +/* 014BF4 70013FF4 02471023 */ subu $v0, $s2, $a3 +/* 014BF8 70013FF8 1840000C */ blez $v0, .L7001402C +/* 014BFC 70013FFC 00E02825 */ move $a1, $a3 +/* 014C00 70014000 00408825 */ move $s1, $v0 +/* 014C04 70014004 0280F809 */ jalr $s4 +/* 014C08 70014008 00403025 */ move $a2, $v0 +/* 014C0C 7001400C 10400005 */ beqz $v0, .L70014024 +/* 014C10 70014010 00409825 */ move $s3, $v0 +/* 014C14 70014014 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014C18 70014018 01D17821 */ addu $t7, $t6, $s1 +/* 014C1C 7001401C 10000003 */ b .L7001402C +/* 014C20 70014020 AFAF00D4 */ sw $t7, 0xd4($sp) +.L70014024: +/* 014C24 70014024 10000153 */ b .L70014574 +/* 014C28 70014028 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001402C: +/* 014C2C 7001402C 16000003 */ bnez $s0, .L7001403C +/* 014C30 70014030 26520001 */ addiu $s2, $s2, 1 +/* 014C34 70014034 1000014F */ b .L70014574 +/* 014C38 70014038 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001403C: +/* 014C3C 7001403C AFA000D8 */ sw $zero, 0xd8($sp) +/* 014C40 70014040 92450000 */ lbu $a1, ($s2) +/* 014C44 70014044 0C004E29 */ jal strchr +/* 014C48 70014048 02C02025 */ move $a0, $s6 +/* 014C4C 7001404C 1040000F */ beqz $v0, .L7001408C +/* 014C50 70014050 00408025 */ move $s0, $v0 +.L70014054: +/* 014C54 70014054 0216C823 */ subu $t9, $s0, $s6 +/* 014C58 70014058 00197080 */ sll $t6, $t9, 2 +/* 014C5C 7001405C 3C0F8003 */ lui $t7, %hi(byteshiftleft_lookup) +/* 014C60 70014060 01EE7821 */ addu $t7, $t7, $t6 +/* 014C64 70014064 8DEF96FC */ lw $t7, %lo(byteshiftleft_lookup)($t7) +/* 014C68 70014068 8FB800D8 */ lw $t8, 0xd8($sp) +/* 014C6C 7001406C 26520001 */ addiu $s2, $s2, 1 +/* 014C70 70014070 02C02025 */ move $a0, $s6 +/* 014C74 70014074 030FC825 */ or $t9, $t8, $t7 +/* 014C78 70014078 AFB900D8 */ sw $t9, 0xd8($sp) +/* 014C7C 7001407C 0C004E29 */ jal strchr +/* 014C80 70014080 92450000 */ lbu $a1, ($s2) +/* 014C84 70014084 1440FFF3 */ bnez $v0, .L70014054 +/* 014C88 70014088 00408025 */ move $s0, $v0 +.L7001408C: +/* 014C8C 7001408C 924E0000 */ lbu $t6, ($s2) +/* 014C90 70014090 2402002A */ li $v0, 42 +/* 014C94 70014094 8FB800EC */ lw $t8, 0xec($sp) +/* 014C98 70014098 144E0011 */ bne $v0, $t6, .L700140E0 +/* 014C9C 7001409C 3C048003 */ lui $a0, %hi(aHll) +/* 014CA0 700140A0 270F0003 */ addiu $t7, $t8, 3 +/* 014CA4 700140A4 2401FFFC */ li $at, -4 +/* 014CA8 700140A8 01E1C824 */ and $t9, $t7, $at +/* 014CAC 700140AC 272E0004 */ addiu $t6, $t9, 4 +/* 014CB0 700140B0 AFAE00EC */ sw $t6, 0xec($sp) +/* 014CB4 700140B4 8F380000 */ lw $t8, ($t9) +/* 014CB8 700140B8 26520001 */ addiu $s2, $s2, 1 +/* 014CBC 700140BC 07010006 */ bgez $t8, .L700140D8 +/* 014CC0 700140C0 AFB800D0 */ sw $t8, 0xd0($sp) +/* 014CC4 700140C4 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 014CC8 700140C8 00187823 */ negu $t7, $t8 +/* 014CCC 700140CC AFAF00D0 */ sw $t7, 0xd0($sp) +/* 014CD0 700140D0 35D90004 */ ori $t9, $t6, 4 +/* 014CD4 700140D4 AFB900D8 */ sw $t9, 0xd8($sp) +.L700140D8: +/* 014CD8 700140D8 10000018 */ b .L7001413C +/* 014CDC 700140DC 92450000 */ lbu $a1, ($s2) +.L700140E0: +/* 014CE0 700140E0 AFA000D0 */ sw $zero, 0xd0($sp) +/* 014CE4 700140E4 92450000 */ lbu $a1, ($s2) +/* 014CE8 700140E8 28A10030 */ slti $at, $a1, 0x30 +/* 014CEC 700140EC 14200013 */ bnez $at, .L7001413C +/* 014CF0 700140F0 28A1003A */ slti $at, $a1, 0x3a +/* 014CF4 700140F4 50200012 */ beql $at, $zero, .L70014140 +/* 014CF8 700140F8 2401002E */ li $at, 46 +/* 014CFC 700140FC 8FB800D0 */ lw $t8, 0xd0($sp) +.L70014100: +/* 014D00 70014100 2B0103E7 */ slti $at, $t8, 0x3e7 +/* 014D04 70014104 50200007 */ beql $at, $zero, .L70014124 +/* 014D08 70014108 92450001 */ lbu $a1, 1($s2) +/* 014D0C 7001410C 031E0019 */ multu $t8, $fp +/* 014D10 70014110 00007812 */ mflo $t7 +/* 014D14 70014114 00AF7021 */ addu $t6, $a1, $t7 +/* 014D18 70014118 25D9FFD0 */ addiu $t9, $t6, -0x30 +/* 014D1C 7001411C AFB900D0 */ sw $t9, 0xd0($sp) +/* 014D20 70014120 92450001 */ lbu $a1, 1($s2) +.L70014124: +/* 014D24 70014124 26520001 */ addiu $s2, $s2, 1 +/* 014D28 70014128 28A10030 */ slti $at, $a1, 0x30 +/* 014D2C 7001412C 14200003 */ bnez $at, .L7001413C +/* 014D30 70014130 28A1003A */ slti $at, $a1, 0x3a +/* 014D34 70014134 5420FFF2 */ bnezl $at, .L70014100 +/* 014D38 70014138 8FB800D0 */ lw $t8, 0xd0($sp) +.L7001413C: +/* 014D3C 7001413C 2401002E */ li $at, 46 +.L70014140: +/* 014D40 70014140 10A10004 */ beq $a1, $at, .L70014154 +/* 014D44 70014144 2418FFFF */ li $t8, -1 +/* 014D48 70014148 AFB800CC */ sw $t8, 0xcc($sp) +/* 014D4C 7001414C 10000026 */ b .L700141E8 +/* 014D50 70014150 92450000 */ lbu $a1, ($s2) +.L70014154: +/* 014D54 70014154 924F0001 */ lbu $t7, 1($s2) +/* 014D58 70014158 8FAE00EC */ lw $t6, 0xec($sp) +/* 014D5C 7001415C 26520001 */ addiu $s2, $s2, 1 +/* 014D60 70014160 144F000A */ bne $v0, $t7, .L7001418C +/* 014D64 70014164 25D90003 */ addiu $t9, $t6, 3 +/* 014D68 70014168 2401FFFC */ li $at, -4 +/* 014D6C 7001416C 0321C024 */ and $t8, $t9, $at +/* 014D70 70014170 270F0004 */ addiu $t7, $t8, 4 +/* 014D74 70014174 AFAF00EC */ sw $t7, 0xec($sp) +/* 014D78 70014178 8F0E0000 */ lw $t6, ($t8) +/* 014D7C 7001417C 26520001 */ addiu $s2, $s2, 1 +/* 014D80 70014180 AFAE00CC */ sw $t6, 0xcc($sp) +/* 014D84 70014184 10000018 */ b .L700141E8 +/* 014D88 70014188 92450000 */ lbu $a1, ($s2) +.L7001418C: +/* 014D8C 7001418C AFA000CC */ sw $zero, 0xcc($sp) +/* 014D90 70014190 92450000 */ lbu $a1, ($s2) +/* 014D94 70014194 28A10030 */ slti $at, $a1, 0x30 +/* 014D98 70014198 14200013 */ bnez $at, .L700141E8 +/* 014D9C 7001419C 28A1003A */ slti $at, $a1, 0x3a +/* 014DA0 700141A0 10200011 */ beqz $at, .L700141E8 +/* 014DA4 700141A4 00000000 */ nop +/* 014DA8 700141A8 8FB900CC */ lw $t9, 0xcc($sp) +.L700141AC: +/* 014DAC 700141AC 2B2103E7 */ slti $at, $t9, 0x3e7 +/* 014DB0 700141B0 50200007 */ beql $at, $zero, .L700141D0 +/* 014DB4 700141B4 92450001 */ lbu $a1, 1($s2) +/* 014DB8 700141B8 033E0019 */ multu $t9, $fp +/* 014DBC 700141BC 00007812 */ mflo $t7 +/* 014DC0 700141C0 00AFC021 */ addu $t8, $a1, $t7 +/* 014DC4 700141C4 270EFFD0 */ addiu $t6, $t8, -0x30 +/* 014DC8 700141C8 AFAE00CC */ sw $t6, 0xcc($sp) +/* 014DCC 700141CC 92450001 */ lbu $a1, 1($s2) +.L700141D0: +/* 014DD0 700141D0 26520001 */ addiu $s2, $s2, 1 +/* 014DD4 700141D4 28A10030 */ slti $at, $a1, 0x30 +/* 014DD8 700141D8 14200003 */ bnez $at, .L700141E8 +/* 014DDC 700141DC 28A1003A */ slti $at, $a1, 0x3a +/* 014DE0 700141E0 5420FFF2 */ bnezl $at, .L700141AC +/* 014DE4 700141E4 8FB900CC */ lw $t9, 0xcc($sp) +.L700141E8: +/* 014DE8 700141E8 0C004E29 */ jal strchr +/* 014DEC 700141EC 248496F0 */ addiu $a0, %lo(aHll) # addiu $a0, $a0, -0x6910 +/* 014DF0 700141F0 10400005 */ beqz $v0, .L70014208 +/* 014DF4 700141F4 27B000A8 */ addiu $s0, $sp, 0xa8 +/* 014DF8 700141F8 92590000 */ lbu $t9, ($s2) +/* 014DFC 700141FC 26520001 */ addiu $s2, $s2, 1 +/* 014E00 70014200 10000002 */ b .L7001420C +/* 014E04 70014204 A3B900DC */ sb $t9, 0xdc($sp) +.L70014208: +/* 014E08 70014208 A3A000DC */ sb $zero, 0xdc($sp) +.L7001420C: +/* 014E0C 7001420C 93AF00DC */ lbu $t7, 0xdc($sp) +/* 014E10 70014210 2402006C */ li $v0, 108 +/* 014E14 70014214 27A600EC */ addiu $a2, $sp, 0xec +/* 014E18 70014218 144F0007 */ bne $v0, $t7, .L70014238 +/* 014E1C 7001421C 27A7007C */ addiu $a3, $sp, 0x7c +/* 014E20 70014220 92580000 */ lbu $t8, ($s2) +/* 014E24 70014224 240E004C */ li $t6, 76 +/* 014E28 70014228 14580003 */ bne $v0, $t8, .L70014238 +/* 014E2C 7001422C 00000000 */ nop +/* 014E30 70014230 A3AE00DC */ sb $t6, 0xdc($sp) +/* 014E34 70014234 26520001 */ addiu $s2, $s2, 1 +.L70014238: +/* 014E38 70014238 0C004E3C */ jal _Putfld +/* 014E3C 7001423C 92450000 */ lbu $a1, ($s2) +/* 014E40 70014240 8FB900D0 */ lw $t9, 0xd0($sp) +/* 014E44 70014244 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 014E48 70014248 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 014E4C 7001424C 032FC023 */ subu $t8, $t9, $t7 +/* 014E50 70014250 8FAF00BC */ lw $t7, 0xbc($sp) +/* 014E54 70014254 030EC823 */ subu $t9, $t8, $t6 +/* 014E58 70014258 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 014E5C 7001425C 032FC023 */ subu $t8, $t9, $t7 +/* 014E60 70014260 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 014E64 70014264 030EC823 */ subu $t9, $t8, $t6 +/* 014E68 70014268 8FAE00C8 */ lw $t6, 0xc8($sp) +/* 014E6C 7001426C 032FC023 */ subu $t8, $t9, $t7 +/* 014E70 70014270 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 014E74 70014274 030EC823 */ subu $t9, $t8, $t6 +/* 014E78 70014278 AFB900D0 */ sw $t9, 0xd0($sp) +/* 014E7C 7001427C 31F80004 */ andi $t8, $t7, 4 +/* 014E80 70014280 1700001A */ bnez $t8, .L700142EC +/* 014E84 70014284 0019702A */ slt $t6, $zero, $t9 +/* 014E88 70014288 51C00019 */ beql $t6, $zero, .L700142F0 +/* 014E8C 7001428C 8FB900B4 */ lw $t9, 0xb4($sp) +/* 014E90 70014290 11C00016 */ beqz $t6, .L700142EC +/* 014E94 70014294 03208825 */ move $s1, $t9 +/* 014E98 70014298 2E210021 */ sltiu $at, $s1, 0x21 +.L7001429C: +/* 014E9C 7001429C 14200003 */ bnez $at, .L700142AC +/* 014EA0 700142A0 02208025 */ move $s0, $s1 +/* 014EA4 700142A4 10000001 */ b .L700142AC +/* 014EA8 700142A8 24100020 */ li $s0, 32 +.L700142AC: +/* 014EAC 700142AC 1A00000C */ blez $s0, .L700142E0 +/* 014EB0 700142B0 02602025 */ move $a0, $s3 +/* 014EB4 700142B4 02E02825 */ move $a1, $s7 +/* 014EB8 700142B8 0280F809 */ jalr $s4 +/* 014EBC 700142BC 02003025 */ move $a2, $s0 +/* 014EC0 700142C0 10400005 */ beqz $v0, .L700142D8 +/* 014EC4 700142C4 00409825 */ move $s3, $v0 +/* 014EC8 700142C8 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 014ECC 700142CC 01F0C021 */ addu $t8, $t7, $s0 +/* 014ED0 700142D0 10000003 */ b .L700142E0 +/* 014ED4 700142D4 AFB800D4 */ sw $t8, 0xd4($sp) +.L700142D8: +/* 014ED8 700142D8 100000A6 */ b .L70014574 +/* 014EDC 700142DC 8FA200D4 */ lw $v0, 0xd4($sp) +.L700142E0: +/* 014EE0 700142E0 02308823 */ subu $s1, $s1, $s0 +/* 014EE4 700142E4 5E20FFED */ bgtzl $s1, .L7001429C +/* 014EE8 700142E8 2E210021 */ sltiu $at, $s1, 0x21 +.L700142EC: +/* 014EEC 700142EC 8FB900B4 */ lw $t9, 0xb4($sp) +.L700142F0: +/* 014EF0 700142F0 02602025 */ move $a0, $s3 +/* 014EF4 700142F4 27A5007C */ addiu $a1, $sp, 0x7c +/* 014EF8 700142F8 5B20000D */ blezl $t9, .L70014330 +/* 014EFC 700142FC 8FB900B8 */ lw $t9, 0xb8($sp) +/* 014F00 70014300 0280F809 */ jalr $s4 +/* 014F04 70014304 03203025 */ move $a2, $t9 +/* 014F08 70014308 10400006 */ beqz $v0, .L70014324 +/* 014F0C 7001430C 00409825 */ move $s3, $v0 +/* 014F10 70014310 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014F14 70014314 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 014F18 70014318 01CFC021 */ addu $t8, $t6, $t7 +/* 014F1C 7001431C 10000003 */ b .L7001432C +/* 014F20 70014320 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014324: +/* 014F24 70014324 10000093 */ b .L70014574 +/* 014F28 70014328 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001432C: +/* 014F2C 7001432C 8FB900B8 */ lw $t9, 0xb8($sp) +.L70014330: +/* 014F30 70014330 0019702A */ slt $t6, $zero, $t9 +/* 014F34 70014334 51C00019 */ beql $t6, $zero, .L7001439C +/* 014F38 70014338 8FB900BC */ lw $t9, 0xbc($sp) +/* 014F3C 7001433C 11C00016 */ beqz $t6, .L70014398 +/* 014F40 70014340 03208825 */ move $s1, $t9 +/* 014F44 70014344 2E210021 */ sltiu $at, $s1, 0x21 +.L70014348: +/* 014F48 70014348 14200003 */ bnez $at, .L70014358 +/* 014F4C 7001434C 02208025 */ move $s0, $s1 +/* 014F50 70014350 10000001 */ b .L70014358 +/* 014F54 70014354 24100020 */ li $s0, 32 +.L70014358: +/* 014F58 70014358 1A00000C */ blez $s0, .L7001438C +/* 014F5C 7001435C 02602025 */ move $a0, $s3 +/* 014F60 70014360 02A02825 */ move $a1, $s5 +/* 014F64 70014364 0280F809 */ jalr $s4 +/* 014F68 70014368 02003025 */ move $a2, $s0 +/* 014F6C 7001436C 10400005 */ beqz $v0, .L70014384 +/* 014F70 70014370 00409825 */ move $s3, $v0 +/* 014F74 70014374 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 014F78 70014378 01F0C021 */ addu $t8, $t7, $s0 +/* 014F7C 7001437C 10000003 */ b .L7001438C +/* 014F80 70014380 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014384: +/* 014F84 70014384 1000007B */ b .L70014574 +/* 014F88 70014388 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001438C: +/* 014F8C 7001438C 02308823 */ subu $s1, $s1, $s0 +/* 014F90 70014390 5E20FFED */ bgtzl $s1, .L70014348 +/* 014F94 70014394 2E210021 */ sltiu $at, $s1, 0x21 +.L70014398: +/* 014F98 70014398 8FB900BC */ lw $t9, 0xbc($sp) +.L7001439C: +/* 014F9C 7001439C 02602025 */ move $a0, $s3 +/* 014FA0 700143A0 8FA500B0 */ lw $a1, 0xb0($sp) +/* 014FA4 700143A4 5B20000D */ blezl $t9, .L700143DC +/* 014FA8 700143A8 8FB900C0 */ lw $t9, 0xc0($sp) +/* 014FAC 700143AC 0280F809 */ jalr $s4 +/* 014FB0 700143B0 03203025 */ move $a2, $t9 +/* 014FB4 700143B4 10400006 */ beqz $v0, .L700143D0 +/* 014FB8 700143B8 00409825 */ move $s3, $v0 +/* 014FBC 700143BC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014FC0 700143C0 8FAF00BC */ lw $t7, 0xbc($sp) +/* 014FC4 700143C4 01CFC021 */ addu $t8, $t6, $t7 +/* 014FC8 700143C8 10000003 */ b .L700143D8 +/* 014FCC 700143CC AFB800D4 */ sw $t8, 0xd4($sp) +.L700143D0: +/* 014FD0 700143D0 10000068 */ b .L70014574 +/* 014FD4 700143D4 8FA200D4 */ lw $v0, 0xd4($sp) +.L700143D8: +/* 014FD8 700143D8 8FB900C0 */ lw $t9, 0xc0($sp) +.L700143DC: +/* 014FDC 700143DC 0019702A */ slt $t6, $zero, $t9 +/* 014FE0 700143E0 51C00019 */ beql $t6, $zero, .L70014448 +/* 014FE4 700143E4 8FB900C4 */ lw $t9, 0xc4($sp) +/* 014FE8 700143E8 11C00016 */ beqz $t6, .L70014444 +/* 014FEC 700143EC 03208825 */ move $s1, $t9 +/* 014FF0 700143F0 2E210021 */ sltiu $at, $s1, 0x21 +.L700143F4: +/* 014FF4 700143F4 14200003 */ bnez $at, .L70014404 +/* 014FF8 700143F8 02208025 */ move $s0, $s1 +/* 014FFC 700143FC 10000001 */ b .L70014404 +/* 015000 70014400 24100020 */ li $s0, 32 +.L70014404: +/* 015004 70014404 1A00000C */ blez $s0, .L70014438 +/* 015008 70014408 02602025 */ move $a0, $s3 +/* 01500C 7001440C 02A02825 */ move $a1, $s5 +/* 015010 70014410 0280F809 */ jalr $s4 +/* 015014 70014414 02003025 */ move $a2, $s0 +/* 015018 70014418 10400005 */ beqz $v0, .L70014430 +/* 01501C 7001441C 00409825 */ move $s3, $v0 +/* 015020 70014420 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 015024 70014424 01F0C021 */ addu $t8, $t7, $s0 +/* 015028 70014428 10000003 */ b .L70014438 +/* 01502C 7001442C AFB800D4 */ sw $t8, 0xd4($sp) +.L70014430: +/* 015030 70014430 10000050 */ b .L70014574 +/* 015034 70014434 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014438: +/* 015038 70014438 02308823 */ subu $s1, $s1, $s0 +/* 01503C 7001443C 5E20FFED */ bgtzl $s1, .L700143F4 +/* 015040 70014440 2E210021 */ sltiu $at, $s1, 0x21 +.L70014444: +/* 015044 70014444 8FB900C4 */ lw $t9, 0xc4($sp) +.L70014448: +/* 015048 70014448 02602025 */ move $a0, $s3 +/* 01504C 7001444C 8FAE00B0 */ lw $t6, 0xb0($sp) +/* 015050 70014450 1B20000D */ blez $t9, .L70014488 +/* 015054 70014454 8FAF00BC */ lw $t7, 0xbc($sp) +/* 015058 70014458 01CF2821 */ addu $a1, $t6, $t7 +/* 01505C 7001445C 0280F809 */ jalr $s4 +/* 015060 70014460 03203025 */ move $a2, $t9 +/* 015064 70014464 10400006 */ beqz $v0, .L70014480 +/* 015068 70014468 00409825 */ move $s3, $v0 +/* 01506C 7001446C 8FB800D4 */ lw $t8, 0xd4($sp) +/* 015070 70014470 8FAE00C4 */ lw $t6, 0xc4($sp) +/* 015074 70014474 030E7821 */ addu $t7, $t8, $t6 +/* 015078 70014478 10000003 */ b .L70014488 +/* 01507C 7001447C AFAF00D4 */ sw $t7, 0xd4($sp) +.L70014480: +/* 015080 70014480 1000003C */ b .L70014574 +/* 015084 70014484 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014488: +/* 015088 70014488 8FB900C8 */ lw $t9, 0xc8($sp) +/* 01508C 7001448C 0019C02A */ slt $t8, $zero, $t9 +/* 015090 70014490 53000019 */ beql $t8, $zero, .L700144F8 +/* 015094 70014494 8FB900D8 */ lw $t9, 0xd8($sp) +/* 015098 70014498 13000016 */ beqz $t8, .L700144F4 +/* 01509C 7001449C 03208825 */ move $s1, $t9 +/* 0150A0 700144A0 2E210021 */ sltiu $at, $s1, 0x21 +.L700144A4: +/* 0150A4 700144A4 14200003 */ bnez $at, .L700144B4 +/* 0150A8 700144A8 02208025 */ move $s0, $s1 +/* 0150AC 700144AC 10000001 */ b .L700144B4 +/* 0150B0 700144B0 24100020 */ li $s0, 32 +.L700144B4: +/* 0150B4 700144B4 1A00000C */ blez $s0, .L700144E8 +/* 0150B8 700144B8 02602025 */ move $a0, $s3 +/* 0150BC 700144BC 02A02825 */ move $a1, $s5 +/* 0150C0 700144C0 0280F809 */ jalr $s4 +/* 0150C4 700144C4 02003025 */ move $a2, $s0 +/* 0150C8 700144C8 10400005 */ beqz $v0, .L700144E0 +/* 0150CC 700144CC 00409825 */ move $s3, $v0 +/* 0150D0 700144D0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0150D4 700144D4 01D07821 */ addu $t7, $t6, $s0 +/* 0150D8 700144D8 10000003 */ b .L700144E8 +/* 0150DC 700144DC AFAF00D4 */ sw $t7, 0xd4($sp) +.L700144E0: +/* 0150E0 700144E0 10000024 */ b .L70014574 +/* 0150E4 700144E4 8FA200D4 */ lw $v0, 0xd4($sp) +.L700144E8: +/* 0150E8 700144E8 02308823 */ subu $s1, $s1, $s0 +/* 0150EC 700144EC 5E20FFED */ bgtzl $s1, .L700144A4 +/* 0150F0 700144F0 2E210021 */ sltiu $at, $s1, 0x21 +.L700144F4: +/* 0150F4 700144F4 8FB900D8 */ lw $t9, 0xd8($sp) +.L700144F8: +/* 0150F8 700144F8 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0150FC 700144FC 33380004 */ andi $t8, $t9, 4 +/* 015100 70014500 1300001A */ beqz $t8, .L7001456C +/* 015104 70014504 000E782A */ slt $t7, $zero, $t6 +/* 015108 70014508 11E00018 */ beqz $t7, .L7001456C +/* 01510C 7001450C 00000000 */ nop +/* 015110 70014510 11E00016 */ beqz $t7, .L7001456C +/* 015114 70014514 01C08825 */ move $s1, $t6 +/* 015118 70014518 2E210021 */ sltiu $at, $s1, 0x21 +.L7001451C: +/* 01511C 7001451C 14200003 */ bnez $at, .L7001452C +/* 015120 70014520 02208025 */ move $s0, $s1 +/* 015124 70014524 10000001 */ b .L7001452C +/* 015128 70014528 24100020 */ li $s0, 32 +.L7001452C: +/* 01512C 7001452C 1A00000C */ blez $s0, .L70014560 +/* 015130 70014530 02602025 */ move $a0, $s3 +/* 015134 70014534 02E02825 */ move $a1, $s7 +/* 015138 70014538 0280F809 */ jalr $s4 +/* 01513C 7001453C 02003025 */ move $a2, $s0 +/* 015140 70014540 10400005 */ beqz $v0, .L70014558 +/* 015144 70014544 00409825 */ move $s3, $v0 +/* 015148 70014548 8FB900D4 */ lw $t9, 0xd4($sp) +/* 01514C 7001454C 0330C021 */ addu $t8, $t9, $s0 +/* 015150 70014550 10000003 */ b .L70014560 +/* 015154 70014554 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014558: +/* 015158 70014558 10000006 */ b .L70014574 +/* 01515C 7001455C 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014560: +/* 015160 70014560 02308823 */ subu $s1, $s1, $s0 +/* 015164 70014564 5E20FFED */ bgtzl $s1, .L7001451C +/* 015168 70014568 2E210021 */ sltiu $at, $s1, 0x21 +.L7001456C: +/* 01516C 7001456C 1000FE94 */ b .L70013FC0 +/* 015170 70014570 26470001 */ addiu $a3, $s2, 1 +.L70014574: +/* 015174 70014574 8FBF003C */ lw $ra, 0x3c($sp) +/* 015178 70014578 8FB00018 */ lw $s0, 0x18($sp) +/* 01517C 7001457C 8FB1001C */ lw $s1, 0x1c($sp) +/* 015180 70014580 8FB20020 */ lw $s2, 0x20($sp) +/* 015184 70014584 8FB30024 */ lw $s3, 0x24($sp) +/* 015188 70014588 8FB40028 */ lw $s4, 0x28($sp) +/* 01518C 7001458C 8FB5002C */ lw $s5, 0x2c($sp) +/* 015190 70014590 8FB60030 */ lw $s6, 0x30($sp) +/* 015194 70014594 8FB70034 */ lw $s7, 0x34($sp) +/* 015198 70014598 8FBE0038 */ lw $fp, 0x38($sp) +/* 01519C 7001459C 03E00008 */ jr $ra +/* 0151A0 700145A0 27BD00E0 */ addiu $sp, $sp, 0xe0 + +.section .data +glabel spaces +.asciiz " " +.align 2 +glabel zeros +.asciiz "00000000000000000000000000000000" +.align 2 + +.section .rodata +glabel aHll +.ascii "hlL"<0> +glabel printf_symbols +.ascii " +-#0"<0> +.align 2 +glabel byteshiftleft_lookup +.word 1, 2, 4, 8, 0x10, 0 + +glabel jpt_80029714 +.word .L70013C58, .L70013F38, .L70013C58, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013B08 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013960, .L70013998 +.word .L70013C58, .L70013C58, .L70013C58, .L70013F38 +.word .L70013998, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013DBC, .L70013B08, .L70013E8C +.word .L70013F38, .L70013F38, .L70013ED4, .L70013F38 +.word .L70013B08, .L70013F38, .L70013F38, .L70013B08 +.align 4 diff --git a/src/libultra/yieldthread.s b/src/libultra/yieldthread.s new file mode 100644 index 0000000..55e4616 --- /dev/null +++ b/src/libultra/yieldthread.s @@ -0,0 +1,29 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osYieldThread +/* 0116D0 70010AD0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0116D4 70010AD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0116D8 70010AD8 0C00617C */ jal __osDisableInt +/* 0116DC 70010ADC AFB00018 */ sw $s0, 0x18($sp) +/* 0116E0 70010AE0 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 0116E4 70010AE4 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 0116E8 70010AE8 240E0002 */ li $t6, 2 +/* 0116EC 70010AEC 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 0116F0 70010AF0 00408025 */ move $s0, $v0 +/* 0116F4 70010AF4 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 0116F8 70010AF8 0C0041EB */ jal __osEnqueueAndYield +/* 0116FC 70010AFC A5EE0010 */ sh $t6, 0x10($t7) +/* 011700 70010B00 0C006184 */ jal __osRestoreInt +/* 011704 70010B04 02002025 */ move $a0, $s0 +/* 011708 70010B08 8FBF001C */ lw $ra, 0x1c($sp) +/* 01170C 70010B0C 8FB00018 */ lw $s0, 0x18($sp) +/* 011710 70010B10 27BD0028 */ addiu $sp, $sp, 0x28 +/* 011714 70010B14 03E00008 */ jr $ra +/* 011718 70010B18 00000000 */ nop diff --git a/src/mema.c b/src/mema.c new file mode 100644 index 0000000..8bb4b3d --- /dev/null +++ b/src/mema.c @@ -0,0 +1,1288 @@ +#include "ultra64.h" +#include "mema.h" +#include "deb.h" + +/** + * @file mema.c + * This file contains memory allocation code. + * + */ + +//bss +void *ptr_model_room_buf_secondary; +u32 size_modelroom_buf; +struct s_mem_alloc_table ptr_table_allocated_mem_blocks; + +//data +void *ptr_mema_c_debug_notice_list = 0; + + + + + + +void memaSwap(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { + s32 temp_v0; + s32 temp_v1; + + temp_v0 = a->addr; + temp_v1 = a->size; + a->addr = (s32) b->addr; + a->size = (s32) b->size; + b->addr = temp_v0; + b->size = temp_v1; +} + +void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { + a->size = (s32) (a->size + b->size); + b->addr = 0; + b->size = 0; +} + + + + + + +#ifdef NONMATCHING +u32 memaSortMergeEntries(s_mem_alloc_table *param_1) +{ + u32 temp_s0; + u32 temp_s0_2; + u32 temp_s4; + void *phi_s0; + u32 phi_s2; + void *phi_s1; + void *phi_s0_2; + ? phi_s3; + void *phi_s0_3; + ? phi_s3_2; + u32 phi_v0; + ? phi_s3_3; + + temp_s0 = arg0 + 0x10; + temp_s4 = arg0 + 0xfe8; + phi_s0 = temp_s0; + phi_s2 = 0U; + phi_s1 = arg0 + 8; + phi_s3 = 0; + phi_s3_3 = 0; + if (temp_s4 >= temp_s0) + { +loop_1: + phi_s0_2 = phi_s0; + phi_s2 = phi_s2; + phi_s1 = phi_s1; + phi_s3_2 = phi_s3_3; + if (phi_s0->unk4 != 0) + { + if ((u32) phi_s0->unk0 < (u32) phi_s2) + { + memaSwap(phi_s0, phi_s1); + } + phi_s0_3 = phi_s0; + phi_v0 = phi_s0->unk0; + phi_s3_2 = phi_s3_3; + if (phi_s0->unk0 == (phi_s1->unk4 + phi_s2)) + { + memaMerge(phi_s1, phi_s0); + phi_s0_3 = phi_s1; + phi_v0 = phi_s1->unk0; + phi_s3_2 = 1; + } + phi_s0_2 = phi_s0_3; + phi_s2 = phi_v0; + phi_s1 = phi_s0_3; + } + temp_s0_2 = phi_s0_2 + 8; + phi_s0 = temp_s0_2; + phi_s3 = phi_s3_2; + phi_s3_3 = phi_s3_2; + if (temp_s4 >= temp_s0_2) + { + goto loop_1; + } + } + return phi_s3; +} +#else +GLOBAL_ASM( +.text +glabel memaSortMergeEntries +/* 00A650 70009A50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00A654 70009A54 AFB40028 */ sw $s4, 0x28($sp) +/* 00A658 70009A58 AFB00018 */ sw $s0, 0x18($sp) +/* 00A65C 70009A5C 24900010 */ addiu $s0, $a0, 0x10 +/* 00A660 70009A60 24940FE8 */ addiu $s4, $a0, 0xfe8 +/* 00A664 70009A64 AFB30024 */ sw $s3, 0x24($sp) +/* 00A668 70009A68 AFB20020 */ sw $s2, 0x20($sp) +/* 00A66C 70009A6C AFB1001C */ sw $s1, 0x1c($sp) +/* 00A670 70009A70 0290082B */ sltu $at, $s4, $s0 +/* 00A674 70009A74 AFBF002C */ sw $ra, 0x2c($sp) +/* 00A678 70009A78 00009825 */ move $s3, $zero +/* 00A67C 70009A7C 24910008 */ addiu $s1, $a0, 8 +/* 00A680 70009A80 1420001C */ bnez $at, .L70009AF4 +/* 00A684 70009A84 00009025 */ move $s2, $zero +/* 00A688 70009A88 8E0E0004 */ lw $t6, 4($s0) +.L70009A8C: +/* 00A68C 70009A8C 51C00016 */ beql $t6, $zero, .L70009AE8 +/* 00A690 70009A90 26100008 */ addiu $s0, $s0, 8 +/* 00A694 70009A94 8E020000 */ lw $v0, ($s0) +/* 00A698 70009A98 02002025 */ move $a0, $s0 +/* 00A69C 70009A9C 0052082B */ sltu $at, $v0, $s2 +/* 00A6A0 70009AA0 50200005 */ beql $at, $zero, .L70009AB8 +/* 00A6A4 70009AA4 8E2F0004 */ lw $t7, 4($s1) +/* 00A6A8 70009AA8 0C002684 */ jal memaSwap +/* 00A6AC 70009AAC 02202825 */ move $a1, $s1 +/* 00A6B0 70009AB0 8E020000 */ lw $v0, ($s0) +/* 00A6B4 70009AB4 8E2F0004 */ lw $t7, 4($s1) +.L70009AB8: +/* 00A6B8 70009AB8 02202025 */ move $a0, $s1 +/* 00A6BC 70009ABC 02002825 */ move $a1, $s0 +/* 00A6C0 70009AC0 01F2C021 */ addu $t8, $t7, $s2 +/* 00A6C4 70009AC4 54580006 */ bnel $v0, $t8, .L70009AE0 +/* 00A6C8 70009AC8 02008825 */ move $s1, $s0 +/* 00A6CC 70009ACC 0C00268D */ jal memaMerge +/* 00A6D0 70009AD0 24130001 */ li $s3, 1 +/* 00A6D4 70009AD4 02208025 */ move $s0, $s1 +/* 00A6D8 70009AD8 8E220000 */ lw $v0, ($s1) +/* 00A6DC 70009ADC 02008825 */ move $s1, $s0 +.L70009AE0: +/* 00A6E0 70009AE0 00409025 */ move $s2, $v0 +/* 00A6E4 70009AE4 26100008 */ addiu $s0, $s0, 8 +.L70009AE8: +/* 00A6E8 70009AE8 0290082B */ sltu $at, $s4, $s0 +/* 00A6EC 70009AEC 5020FFE7 */ beql $at, $zero, .L70009A8C +/* 00A6F0 70009AF0 8E0E0004 */ lw $t6, 4($s0) +.L70009AF4: +/* 00A6F4 70009AF4 8FBF002C */ lw $ra, 0x2c($sp) +/* 00A6F8 70009AF8 02601025 */ move $v0, $s3 +/* 00A6FC 70009AFC 8FB30024 */ lw $s3, 0x24($sp) +/* 00A700 70009B00 8FB00018 */ lw $s0, 0x18($sp) +/* 00A704 70009B04 8FB1001C */ lw $s1, 0x1c($sp) +/* 00A708 70009B08 8FB20020 */ lw $s2, 0x20($sp) +/* 00A70C 70009B0C 8FB40028 */ lw $s4, 0x28($sp) +/* 00A710 70009B10 03E00008 */ jr $ra +/* 00A714 70009B14 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + +void memaSortMergeAllEntries(void) +{ + while (memaSortMergeEntries(&ptr_table_allocated_mem_blocks) != 0) { + ; + } +} + + + +#ifdef NONMATCHING +s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1) +{ + u32 entrySize; + s_mem_alloc_entry *pAStart; + s_mem_alloc_entry *a; + int iVar1; + u32 invalidSize; + s_mem_alloc_entry *pStart; + s_mem_alloc_entry *pEnd; + int count; + + pStart = param_1->entries + 2; + pEnd = param_1->entries + 0x1fd; + count = 0; + pAStart = pStart; + while( 1 ) { + while (a = pAStart, pEnd < a) { + count = count + 1; + pAStart = pStart; + if (0x1fb < count) { + if (pEnd < pStart) { + return pStart; + } + invalidSize = 0xffffffff; + entrySize = param_1->entries[2].size; + while( 1 ) { + a = pStart; + if (invalidSize <= entrySize) { + entrySize = invalidSize; + a = pAStart; + } + if (pEnd < pStart + 1) break; + invalidSize = entrySize; + entrySize = pStart[1].size; + pStart = pStart + 1; + pAStart = a; + } + return a; + } + } + iVar1 = a->size; + if (iVar1 == 0) break; + entrySize = a[1].addr; + if (entrySize < (u32)a->addr) { + memaSwap((u8 *)a,(u8 *)(a + 1)); + iVar1 = a->size; + entrySize = a[1].addr; + invalidSize = a->addr + iVar1; + } + else { + invalidSize = a->addr + iVar1; + } + pAStart = a + 1; + if (entrySize == invalidSize) { + count = a[1].size; + a[1].addr = 0; + a[1].size = 0; + a->size = iVar1 + count; + return a + 1; + } + } + return a; +} +#else +GLOBAL_ASM( +.text +glabel memaFindOpening +/* 00A760 70009B60 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00A764 70009B64 AFB2001C */ sw $s2, 0x1c($sp) +/* 00A768 70009B68 AFB30020 */ sw $s3, 0x20($sp) +/* 00A76C 70009B6C AFB10018 */ sw $s1, 0x18($sp) +/* 00A770 70009B70 AFB00014 */ sw $s0, 0x14($sp) +/* 00A774 70009B74 24920010 */ addiu $s2, $a0, 0x10 +/* 00A778 70009B78 AFBF0024 */ sw $ra, 0x24($sp) +/* 00A77C 70009B7C 02408025 */ move $s0, $s2 +/* 00A780 70009B80 24910FE8 */ addiu $s1, $a0, 0xfe8 +/* 00A784 70009B84 00009825 */ move $s3, $zero +/* 00A788 70009B88 0232082B */ sltu $at, $s1, $s2 +.L70009B8C: +/* 00A78C 70009B8C 54200020 */ bnezl $at, .L70009C10 +/* 00A790 70009B90 26730001 */ addiu $s3, $s3, 1 +.L70009B94: +/* 00A794 70009B94 8E040004 */ lw $a0, 4($s0) +/* 00A798 70009B98 26050008 */ addiu $a1, $s0, 8 +/* 00A79C 70009B9C 54800004 */ bnezl $a0, .L70009BB0 +/* 00A7A0 70009BA0 8E020008 */ lw $v0, 8($s0) +/* 00A7A4 70009BA4 1000002C */ b .L70009C58 +/* 00A7A8 70009BA8 02001025 */ move $v0, $s0 +/* 00A7AC 70009BAC 8E020008 */ lw $v0, 8($s0) +.L70009BB0: +/* 00A7B0 70009BB0 8E030000 */ lw $v1, ($s0) +/* 00A7B4 70009BB4 0043082B */ sltu $at, $v0, $v1 +/* 00A7B8 70009BB8 50200007 */ beql $at, $zero, .L70009BD8 +/* 00A7BC 70009BBC 00647021 */ addu $t6, $v1, $a0 +/* 00A7C0 70009BC0 0C002684 */ jal memaSwap +/* 00A7C4 70009BC4 02002025 */ move $a0, $s0 +/* 00A7C8 70009BC8 8E040004 */ lw $a0, 4($s0) +/* 00A7CC 70009BCC 8E020008 */ lw $v0, 8($s0) +/* 00A7D0 70009BD0 8E030000 */ lw $v1, ($s0) +/* 00A7D4 70009BD4 00647021 */ addu $t6, $v1, $a0 +.L70009BD8: +/* 00A7D8 70009BD8 144E0008 */ bne $v0, $t6, .L70009BFC +/* 00A7DC 70009BDC 26050008 */ addiu $a1, $s0, 8 +/* 00A7E0 70009BE0 8E0F000C */ lw $t7, 0xc($s0) +/* 00A7E4 70009BE4 AE000008 */ sw $zero, 8($s0) +/* 00A7E8 70009BE8 AE00000C */ sw $zero, 0xc($s0) +/* 00A7EC 70009BEC 008FC021 */ addu $t8, $a0, $t7 +/* 00A7F0 70009BF0 AE180004 */ sw $t8, 4($s0) +/* 00A7F4 70009BF4 10000018 */ b .L70009C58 +/* 00A7F8 70009BF8 00A01025 */ move $v0, $a1 +.L70009BFC: +/* 00A7FC 70009BFC 0225082B */ sltu $at, $s1, $a1 +/* 00A800 70009C00 1020FFE4 */ beqz $at, .L70009B94 +/* 00A804 70009C04 00A08025 */ move $s0, $a1 +/* 00A808 70009C08 02408025 */ move $s0, $s2 +/* 00A80C 70009C0C 26730001 */ addiu $s3, $s3, 1 +.L70009C10: +/* 00A810 70009C10 2A6101FC */ slti $at, $s3, 0x1fc +/* 00A814 70009C14 5420FFDD */ bnezl $at, .L70009B8C +/* 00A818 70009C18 0232082B */ sltu $at, $s1, $s2 +/* 00A81C 70009C1C 0232082B */ sltu $at, $s1, $s2 +/* 00A820 70009C20 2402FFFF */ li $v0, -1 +/* 00A824 70009C24 1420000B */ bnez $at, .L70009C54 +/* 00A828 70009C28 02401825 */ move $v1, $s2 +/* 00A82C 70009C2C 8E040004 */ lw $a0, 4($s0) +.L70009C30: +/* 00A830 70009C30 0082082B */ sltu $at, $a0, $v0 +/* 00A834 70009C34 50200004 */ beql $at, $zero, .L70009C48 +/* 00A838 70009C38 26100008 */ addiu $s0, $s0, 8 +/* 00A83C 70009C3C 02001825 */ move $v1, $s0 +/* 00A840 70009C40 00801025 */ move $v0, $a0 +/* 00A844 70009C44 26100008 */ addiu $s0, $s0, 8 +.L70009C48: +/* 00A848 70009C48 0230082B */ sltu $at, $s1, $s0 +/* 00A84C 70009C4C 5020FFF8 */ beql $at, $zero, .L70009C30 +/* 00A850 70009C50 8E040004 */ lw $a0, 4($s0) +.L70009C54: +/* 00A854 70009C54 00601025 */ move $v0, $v1 +.L70009C58: +/* 00A858 70009C58 8FBF0024 */ lw $ra, 0x24($sp) +/* 00A85C 70009C5C 8FB00014 */ lw $s0, 0x14($sp) +/* 00A860 70009C60 8FB10018 */ lw $s1, 0x18($sp) +/* 00A864 70009C64 8FB2001C */ lw $s2, 0x1c($sp) +/* 00A868 70009C68 8FB30020 */ lw $s3, 0x20($sp) +/* 00A86C 70009C6C 03E00008 */ jr $ra +/* 00A870 70009C70 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void memaAllocRoomBuffer(uint addr,uint size) +{ + int iVar1; + int iVar2; + s_mem_alloc_entry *psVar3; + s_mem_alloc_entry *psVar4; + s_mem_alloc_entry *psVar5; + s32 sVar6; + int iVar7; + + iVar7 = (addr - ptr_model_room_buf_secondary) * 0x1fc; + iVar2 = iVar7 / size_modelroom_buf; + iVar1 = ptr_table_allocated_mem_blocks.entries[iVar2 + 2].size; + psVar4 = ptr_table_allocated_mem_blocks.entries + iVar2 + 2; + if (size_modelroom_buf == 0) { + trap(0x1c00); + } + if ((size_modelroom_buf == -1) && (iVar7 == -0x80000000)) { + trap(0x1800); + } + if (iVar1 == 0) { + sVar6 = psVar4->addr; + psVar5 = psVar4; + } + else { + sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 3].size; + psVar3 = psVar4; + while (psVar5 = psVar3 + 1, sVar6 != 0) { + sVar6 = psVar3[2].size; + psVar3 = psVar5; + } + sVar6 = psVar5->addr; + } + if (sVar6 == -1) { + psVar5 = psVar4; + if (iVar1 != 0) { + sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 1].size; + while (psVar5 = psVar4 + -1, sVar6 != 0) { + sVar6 = psVar4[-2].size; + psVar4 = psVar5; + } + } + if (psVar5->addr == 0) { + psVar5 = (s_mem_alloc_entry *)memaFindOpening(&ptr_table_allocated_mem_blocks); + } + } + psVar5->addr = addr; + psVar5->size = size; + return; +} +#else +GLOBAL_ASM( +.text +glabel memaAllocRoomBuffer +/* 00A874 70009C74 3C0F8006 */ lui $t7, %hi(ptr_model_room_buf_secondary) +/* 00A878 70009C78 8DEF3C20 */ lw $t7, %lo(ptr_model_room_buf_secondary)($t7) +/* 00A87C 70009C7C 3C098006 */ lui $t1, %hi(size_modelroom_buf) +/* 00A880 70009C80 8D293C24 */ lw $t1, %lo(size_modelroom_buf)($t1) +/* 00A884 70009C84 008FC023 */ subu $t8, $a0, $t7 +/* 00A888 70009C88 0018C9C0 */ sll $t9, $t8, 7 +/* 00A88C 70009C8C 0338C823 */ subu $t9, $t9, $t8 +/* 00A890 70009C90 0019C880 */ sll $t9, $t9, 2 +/* 00A894 70009C94 0329001A */ div $zero, $t9, $t1 +/* 00A898 70009C98 00003012 */ mflo $a2 +/* 00A89C 70009C9C 3C0B8006 */ lui $t3, %hi(ptr_table_allocated_mem_blocks) +/* 00A8A0 70009CA0 256B3C28 */ addiu $t3, %lo(ptr_table_allocated_mem_blocks) # addiu $t3, $t3, 0x3c28 +/* 00A8A4 70009CA4 000650C0 */ sll $t2, $a2, 3 +/* 00A8A8 70009CA8 014B1021 */ addu $v0, $t2, $t3 +/* 00A8AC 70009CAC 8C480014 */ lw $t0, 0x14($v0) +/* 00A8B0 70009CB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00A8B4 70009CB4 24470010 */ addiu $a3, $v0, 0x10 +/* 00A8B8 70009CB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00A8BC 70009CBC AFA40018 */ sw $a0, 0x18($sp) +/* 00A8C0 70009CC0 AFA5001C */ sw $a1, 0x1c($sp) +/* 00A8C4 70009CC4 00807025 */ move $t6, $a0 +/* 00A8C8 70009CC8 15200002 */ bnez $t1, .L70009CD4 +/* 00A8CC 70009CCC 00000000 */ nop +/* 00A8D0 70009CD0 0007000D */ break 7 +.L70009CD4: +/* 00A8D4 70009CD4 2401FFFF */ li $at, -1 +/* 00A8D8 70009CD8 15210004 */ bne $t1, $at, .L70009CEC +/* 00A8DC 70009CDC 3C018000 */ lui $at, 0x8000 +/* 00A8E0 70009CE0 17210002 */ bne $t9, $at, .L70009CEC +/* 00A8E4 70009CE4 00000000 */ nop +/* 00A8E8 70009CE8 0006000D */ break 6 +.L70009CEC: +/* 00A8EC 70009CEC 00E01825 */ move $v1, $a3 +/* 00A8F0 70009CF0 51000006 */ beql $t0, $zero, .L70009D0C +/* 00A8F4 70009CF4 8C6D0000 */ lw $t5, ($v1) +/* 00A8F8 70009CF8 8C6C000C */ lw $t4, 0xc($v1) +.L70009CFC: +/* 00A8FC 70009CFC 24630008 */ addiu $v1, $v1, 8 +/* 00A900 70009D00 5580FFFE */ bnezl $t4, .L70009CFC +/* 00A904 70009D04 8C6C000C */ lw $t4, 0xc($v1) +/* 00A908 70009D08 8C6D0000 */ lw $t5, ($v1) +.L70009D0C: +/* 00A90C 70009D0C 2401FFFF */ li $at, -1 +/* 00A910 70009D10 55A1000F */ bnel $t5, $at, .L70009D50 +/* 00A914 70009D14 8FB80018 */ lw $t8, 0x18($sp) +/* 00A918 70009D18 11000005 */ beqz $t0, .L70009D30 +/* 00A91C 70009D1C 00E01825 */ move $v1, $a3 +/* 00A920 70009D20 8C6EFFFC */ lw $t6, -4($v1) +.L70009D24: +/* 00A924 70009D24 2463FFF8 */ addiu $v1, $v1, -8 +/* 00A928 70009D28 55C0FFFE */ bnezl $t6, .L70009D24 +/* 00A92C 70009D2C 8C6EFFFC */ lw $t6, -4($v1) +.L70009D30: +/* 00A930 70009D30 8C6F0000 */ lw $t7, ($v1) +/* 00A934 70009D34 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks) +/* 00A938 70009D38 55E00005 */ bnezl $t7, .L70009D50 +/* 00A93C 70009D3C 8FB80018 */ lw $t8, 0x18($sp) +/* 00A940 70009D40 0C0026D8 */ jal memaFindOpening +/* 00A944 70009D44 24843C28 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks) # addiu $a0, $a0, 0x3c28 +/* 00A948 70009D48 00401825 */ move $v1, $v0 +/* 00A94C 70009D4C 8FB80018 */ lw $t8, 0x18($sp) +.L70009D50: +/* 00A950 70009D50 AC780000 */ sw $t8, ($v1) +/* 00A954 70009D54 8FB9001C */ lw $t9, 0x1c($sp) +/* 00A958 70009D58 AC790004 */ sw $t9, 4($v1) +/* 00A95C 70009D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A960 70009D60 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A964 70009D64 03E00008 */ jr $ra +/* 00A968 70009D68 00000000 */ nop +) +#endif + + + +void memaInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&ptr_mema_c_debug_notice_list, "mema_c_debug"); +} + + + + +#ifdef NONMATCHING +void mempInitMallocTable(void *ptr_allocmem,u32 size) +{ + s_mem_alloc_entry *entry; + + ptr_table_allocated_mem_blocks.entries[510].addr = -1; + ptr_table_allocated_mem_blocks.entries[511].addr = -1; + ptr_table_allocated_mem_blocks.entries[0].addr = 0; + ptr_table_allocated_mem_blocks.entries[0].size = 0; + ptr_table_allocated_mem_blocks.entries[1].addr = 0; + ptr_table_allocated_mem_blocks.entries[1].size = 0; + ptr_table_allocated_mem_blocks.entries[510].size = 0; + ptr_table_allocated_mem_blocks.entries[511].size = -1; + for (entry = ptr_table_allocated_mem_blocks.entries[2]; (entry < (s_mem_alloc_entry *)(&ptr_table_allocated_mem_blocks.entries[0x1fd].addr+1)); ++entry) + { + entry->addr = 0; + entry->size = 0; + }; + ptr_model_room_buf_secondary = ptr_allocmem; + size_modelroom_buf = size; + ptr_table_allocated_mem_blocks.entries[2].addr = (s32)ptr_allocmem; + ptr_table_allocated_mem_blocks.entries[2].size = size; +} +#else +GLOBAL_ASM( +.text +glabel mempInitMallocTable +/* 00A998 70009D98 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) +/* 00A99C 70009D9C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 +/* 00A9A0 70009DA0 2406FFFF */ li $a2, -1 +/* 00A9A4 70009DA4 AC660FF0 */ sw $a2, 0xff0($v1) +/* 00A9A8 70009DA8 AC660FF8 */ sw $a2, 0xff8($v1) +/* 00A9AC 70009DAC 240EFFFF */ li $t6, -1 +/* 00A9B0 70009DB0 3C068006 */ lui $a2, %hi(ptr_table_allocated_mem_blocks + 0xFE8) +/* 00A9B4 70009DB4 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00A9B8 70009DB8 AC600000 */ sw $zero, ($v1) +/* 00A9BC 70009DBC AC600004 */ sw $zero, 4($v1) +/* 00A9C0 70009DC0 AC600008 */ sw $zero, 8($v1) +/* 00A9C4 70009DC4 AC60000C */ sw $zero, 0xc($v1) +/* 00A9C8 70009DC8 AC600FF4 */ sw $zero, 0xff4($v1) +/* 00A9CC 70009DCC AC6E0FFC */ sw $t6, 0xffc($v1) +/* 00A9D0 70009DD0 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 +/* 00A9D4 70009DD4 24C64C10 */ addiu $a2, %lo(ptr_table_allocated_mem_blocks + 0xFE8) # addiu $a2, $a2, 0x4c10 +.L70009DD8: +/* 00A9D8 70009DD8 24420008 */ addiu $v0, $v0, 8 +/* 00A9DC 70009DDC 00C2082B */ sltu $at, $a2, $v0 +/* 00A9E0 70009DE0 AC40FFF8 */ sw $zero, -8($v0) +/* 00A9E4 70009DE4 1020FFFC */ beqz $at, .L70009DD8 +/* 00A9E8 70009DE8 AC40FFFC */ sw $zero, -4($v0) +/* 00A9EC 70009DEC 3C028006 */ lui $v0, %hi(ptr_model_room_buf_secondary) +/* 00A9F0 70009DF0 3C068006 */ lui $a2, %hi(size_modelroom_buf) +/* 00A9F4 70009DF4 24C63C24 */ addiu $a2, %lo(size_modelroom_buf) # addiu $a2, $a2, 0x3c24 +/* 00A9F8 70009DF8 24423C20 */ addiu $v0, %lo(ptr_model_room_buf_secondary) # addiu $v0, $v0, 0x3c20 +/* 00A9FC 70009DFC AC440000 */ sw $a0, ($v0) +/* 00AA00 70009E00 AC640010 */ sw $a0, 0x10($v1) +/* 00AA04 70009E04 ACC50000 */ sw $a1, ($a2) +/* 00AA08 70009E08 03E00008 */ jr $ra +/* 00AA0C 70009E0C AC650014 */ sw $a1, 0x14($v1) +) +#endif + + +void mem_related_calls_sort_merge_entries(void) { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); +} + + + +#ifdef NONMATCHING +int mem_related_something_find_first(uint size) + +{ + uint uVar1; + s_mem_alloc_entry *psVar2; + uint uVar3; + s32 sVar4; + int iVar5; + int iVar6; + s_mem_alloc_entry *psVar7; + + psVar7 = ptr_table_allocated_mem_blocks.entries + 2; + uVar3 = 0xffffffff; + psVar2 = (s_mem_alloc_entry *)0x0; + iVar6 = 0; + do { + iVar6 = iVar6 + 1; + uVar1 = psVar7->size - size; + if (size <= (uint)psVar7->size) { + if ((psVar7->addr == -1) || + ((uVar1 < uVar3 && ((psVar2 = psVar7, uVar1 < 0x40 || (uVar3 = uVar1, uVar1 < size >> 2)))) + )) break; + } + psVar7 = psVar7 + 1; + } while (iVar6 != 0x10); + if (psVar2 == (s_mem_alloc_entry *)0x0) { + iVar6 = 0; + psVar2 = psVar7; + if ((uint)psVar7->size < size) { + uVar3 = psVar7[1].size; + while (psVar2 = psVar7 + 1, uVar3 < size) { + uVar3 = psVar7[2].size; + psVar7 = psVar2; + } + } + if (psVar2->addr == -1) { + psVar2 = ptr_table_allocated_mem_blocks.entries + 2; + do { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); + iVar6 = iVar6 + 1; + } while (iVar6 != 8); + uVar3 = ptr_table_allocated_mem_blocks.entries[3].size; + sVar4 = ptr_table_allocated_mem_blocks.entries[2].addr; + psVar7 = psVar2; + if ((uint)ptr_table_allocated_mem_blocks.entries[2].size < size) { + while (psVar2 = psVar7 + 1, uVar3 < size) { + uVar3 = psVar7[2].size; + psVar7 = psVar2; + } + sVar4 = psVar2->addr; + } + if (sVar4 == -1) { + return 0; + } + } + iVar6 = psVar2->addr; + } + else { + iVar6 = psVar2->addr; + } + iVar5 = psVar2->size - size; + psVar2->addr = iVar6 + size; + psVar2->size = iVar5; + if (iVar5 == 0) { + psVar2->addr = 0; + } + return iVar6; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_find_first +/* 00AA34 70009E34 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00AA38 70009E38 AFB2001C */ sw $s2, 0x1c($sp) +/* 00AA3C 70009E3C AFB10018 */ sw $s1, 0x18($sp) +/* 00AA40 70009E40 00809025 */ move $s2, $a0 +/* 00AA44 70009E44 AFB50028 */ sw $s5, 0x28($sp) +/* 00AA48 70009E48 AFB00014 */ sw $s0, 0x14($sp) +/* 00AA4C 70009E4C 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AA50 70009E50 AFBF002C */ sw $ra, 0x2c($sp) +/* 00AA54 70009E54 AFB40024 */ sw $s4, 0x24($sp) +/* 00AA58 70009E58 AFB30020 */ sw $s3, 0x20($sp) +/* 00AA5C 70009E5C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +/* 00AA60 70009E60 2404FFFF */ li $a0, -1 +/* 00AA64 70009E64 00002825 */ move $a1, $zero +/* 00AA68 70009E68 00008025 */ move $s0, $zero +/* 00AA6C 70009E6C 2415FFFF */ li $s5, -1 +/* 00AA70 70009E70 24060010 */ li $a2, 16 +.L70009E74: +/* 00AA74 70009E74 8E230004 */ lw $v1, 4($s1) +/* 00AA78 70009E78 26100001 */ addiu $s0, $s0, 1 +/* 00AA7C 70009E7C 0072082B */ sltu $at, $v1, $s2 +/* 00AA80 70009E80 1420000E */ bnez $at, .L70009EBC +/* 00AA84 70009E84 00721023 */ subu $v0, $v1, $s2 +/* 00AA88 70009E88 8E2E0000 */ lw $t6, ($s1) +/* 00AA8C 70009E8C 0044082B */ sltu $at, $v0, $a0 +/* 00AA90 70009E90 00127882 */ srl $t7, $s2, 2 +/* 00AA94 70009E94 12AE000B */ beq $s5, $t6, .L70009EC4 +/* 00AA98 70009E98 00000000 */ nop +/* 00AA9C 70009E9C 10200007 */ beqz $at, .L70009EBC +/* 00AAA0 70009EA0 2C410040 */ sltiu $at, $v0, 0x40 +/* 00AAA4 70009EA4 00402025 */ move $a0, $v0 +/* 00AAA8 70009EA8 14200006 */ bnez $at, .L70009EC4 +/* 00AAAC 70009EAC 02202825 */ move $a1, $s1 +/* 00AAB0 70009EB0 004F082B */ sltu $at, $v0, $t7 +/* 00AAB4 70009EB4 14200003 */ bnez $at, .L70009EC4 +/* 00AAB8 70009EB8 00000000 */ nop +.L70009EBC: +/* 00AABC 70009EBC 1606FFED */ bne $s0, $a2, .L70009E74 +/* 00AAC0 70009EC0 26310008 */ addiu $s1, $s1, 8 +.L70009EC4: +/* 00AAC4 70009EC4 54A00027 */ bnezl $a1, .L70009F64 +/* 00AAC8 70009EC8 8CA30000 */ lw $v1, ($a1) +/* 00AACC 70009ECC 8E380004 */ lw $t8, 4($s1) +/* 00AAD0 70009ED0 00008025 */ move $s0, $zero +/* 00AAD4 70009ED4 24140008 */ li $s4, 8 +/* 00AAD8 70009ED8 0312082B */ sltu $at, $t8, $s2 +/* 00AADC 70009EDC 10200006 */ beqz $at, .L70009EF8 +/* 00AAE0 70009EE0 3C138006 */ lui $s3, %hi(ptr_table_allocated_mem_blocks) +/* 00AAE4 70009EE4 8E39000C */ lw $t9, 0xc($s1) +.L70009EE8: +/* 00AAE8 70009EE8 26310008 */ addiu $s1, $s1, 8 +/* 00AAEC 70009EEC 0332082B */ sltu $at, $t9, $s2 +/* 00AAF0 70009EF0 5420FFFD */ bnezl $at, .L70009EE8 +/* 00AAF4 70009EF4 8E39000C */ lw $t9, 0xc($s1) +.L70009EF8: +/* 00AAF8 70009EF8 8E280000 */ lw $t0, ($s1) +/* 00AAFC 70009EFC 26733C28 */ addiu $s3, %lo(ptr_table_allocated_mem_blocks) # addiu $s3, $s3, 0x3c28 +/* 00AB00 70009F00 56A80017 */ bnel $s5, $t0, .L70009F60 +/* 00AB04 70009F04 02202825 */ move $a1, $s1 +/* 00AB08 70009F08 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AB0C 70009F0C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +.L70009F10: +/* 00AB10 70009F10 0C002694 */ jal memaSortMergeEntries +/* 00AB14 70009F14 02602025 */ move $a0, $s3 +/* 00AB18 70009F18 26100001 */ addiu $s0, $s0, 1 +/* 00AB1C 70009F1C 1614FFFC */ bne $s0, $s4, .L70009F10 +/* 00AB20 70009F20 00000000 */ nop +/* 00AB24 70009F24 8E690014 */ lw $t1, 0x14($s3) +/* 00AB28 70009F28 0132082B */ sltu $at, $t1, $s2 +/* 00AB2C 70009F2C 50200007 */ beql $at, $zero, .L70009F4C +/* 00AB30 70009F30 8E2B0000 */ lw $t3, ($s1) +/* 00AB34 70009F34 8E2A000C */ lw $t2, 0xc($s1) +.L70009F38: +/* 00AB38 70009F38 26310008 */ addiu $s1, $s1, 8 +/* 00AB3C 70009F3C 0152082B */ sltu $at, $t2, $s2 +/* 00AB40 70009F40 5420FFFD */ bnezl $at, .L70009F38 +/* 00AB44 70009F44 8E2A000C */ lw $t2, 0xc($s1) +/* 00AB48 70009F48 8E2B0000 */ lw $t3, ($s1) +.L70009F4C: +/* 00AB4C 70009F4C 56AB0004 */ bnel $s5, $t3, .L70009F60 +/* 00AB50 70009F50 02202825 */ move $a1, $s1 +/* 00AB54 70009F54 1000000B */ b .L70009F84 +/* 00AB58 70009F58 00001025 */ move $v0, $zero +/* 00AB5C 70009F5C 02202825 */ move $a1, $s1 +.L70009F60: +/* 00AB60 70009F60 8CA30000 */ lw $v1, ($a1) +.L70009F64: +/* 00AB64 70009F64 8CAD0004 */ lw $t5, 4($a1) +/* 00AB68 70009F68 00726021 */ addu $t4, $v1, $s2 +/* 00AB6C 70009F6C 01B27023 */ subu $t6, $t5, $s2 +/* 00AB70 70009F70 ACAC0000 */ sw $t4, ($a1) +/* 00AB74 70009F74 15C00002 */ bnez $t6, .L70009F80 +/* 00AB78 70009F78 ACAE0004 */ sw $t6, 4($a1) +/* 00AB7C 70009F7C ACA00000 */ sw $zero, ($a1) +.L70009F80: +/* 00AB80 70009F80 00601025 */ move $v0, $v1 +.L70009F84: +/* 00AB84 70009F84 8FBF002C */ lw $ra, 0x2c($sp) +/* 00AB88 70009F88 8FB00014 */ lw $s0, 0x14($sp) +/* 00AB8C 70009F8C 8FB10018 */ lw $s1, 0x18($sp) +/* 00AB90 70009F90 8FB2001C */ lw $s2, 0x1c($sp) +/* 00AB94 70009F94 8FB30020 */ lw $s3, 0x20($sp) +/* 00AB98 70009F98 8FB40024 */ lw $s4, 0x24($sp) +/* 00AB9C 70009F9C 8FB50028 */ lw $s5, 0x28($sp) +/* 00ABA0 70009FA0 03E00008 */ jr $ra +/* 00ABA4 70009FA4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +s32 mem_related_something_find_first_0(s32 arg0, u32 arg1) +{ + s32 temp_a1; + u32 temp_a2; + u32 temp_t4; + s32 phi_a1; + void *phi_v1; + + if (-1 == ptr_table_allocated_mem_blocks + 0x10) + { + return 0; + } + phi_a1 = ptr_table_allocated_mem_blocks + 0x10; + phi_v1 = &ptr_table_allocated_mem_blocks + 0x10; +loop_2: + if (arg0 != phi_a1) + { +block_4: + temp_a1 = phi_v1->unk8; + phi_a1 = temp_a1; + phi_v1 = phi_v1 + 8; + if (-1 != temp_a1) + { + goto loop_2; + } + return 0; + } + temp_a2 = phi_v1->unk4; + if (temp_a2 < arg1) + { + goto block_4; + } + temp_t4 = temp_a2 - arg1; + phi_v1->unk0 = (s32) (phi_a1 + arg1); + phi_v1->unk4 = temp_t4; + if (temp_t4 == 0) + { + phi_v1->unk0 = 0; + } + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_find_first_0 +/* 00ABA8 70009FA8 3C198006 */ lui $t9, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ABAC 70009FAC 8F393C38 */ lw $t9, %lo(ptr_table_allocated_mem_blocks + 0x10)($t9) +/* 00ABB0 70009FB0 3C188006 */ lui $t8, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ABB4 70009FB4 240AFFFF */ li $t2, -1 +/* 00ABB8 70009FB8 27183C38 */ addiu $t8, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t8, $t8, 0x3c38 +/* 00ABBC 70009FBC 00A03825 */ move $a3, $a1 +/* 00ABC0 70009FC0 1159000C */ beq $t2, $t9, .L70009FF4 +/* 00ABC4 70009FC4 03001825 */ move $v1, $t8 +/* 00ABC8 70009FC8 8F050000 */ lw $a1, ($t8) +.L70009FCC: +/* 00ABCC 70009FCC 54850006 */ bnel $a0, $a1, .L70009FE8 +/* 00ABD0 70009FD0 8C650008 */ lw $a1, 8($v1) +/* 00ABD4 70009FD4 8C660004 */ lw $a2, 4($v1) +/* 00ABD8 70009FD8 00C7082B */ sltu $at, $a2, $a3 +/* 00ABDC 70009FDC 50200008 */ beql $at, $zero, .L7000A000 +/* 00ABE0 70009FE0 00A75821 */ addu $t3, $a1, $a3 +/* 00ABE4 70009FE4 8C650008 */ lw $a1, 8($v1) +.L70009FE8: +/* 00ABE8 70009FE8 24630008 */ addiu $v1, $v1, 8 +/* 00ABEC 70009FEC 1545FFF7 */ bne $t2, $a1, .L70009FCC +/* 00ABF0 70009FF0 00000000 */ nop +.L70009FF4: +/* 00ABF4 70009FF4 03E00008 */ jr $ra +/* 00ABF8 70009FF8 00001025 */ move $v0, $zero + +/* 00ABFC 70009FFC 00A75821 */ addu $t3, $a1, $a3 +.L7000A000: +/* 00AC00 7000A000 00C76023 */ subu $t4, $a2, $a3 +/* 00AC04 7000A004 AC6B0000 */ sw $t3, ($v1) +/* 00AC08 7000A008 15800002 */ bnez $t4, .L7000A014 +/* 00AC0C 7000A00C AC6C0004 */ sw $t4, 4($v1) +/* 00AC10 7000A010 AC600000 */ sw $zero, ($v1) +.L7000A014: +/* 00AC14 7000A014 00801025 */ move $v0, $a0 +/* 00AC18 7000A018 03E00008 */ jr $ra +/* 00AC1C 7000A01C 00000000 */ nop +) +#endif + + + + +void mem_related_model_room_buffers_0(u32 addr,u32 size) { + memaAllocRoomBuffer(addr, size); +} + + + + + +#ifdef NONMATCHING +void *mem_related_allocated_table_related(void) +{ + void *temp_v1; + void *phi_v1; + + phi_v1 = &ptr_table_allocated_mem_blocks; +loop_1: + temp_v1 = phi_v1 + 0x20; + phi_v1 = temp_v1; + if (temp_v1 != &ptr_table_allocated_mem_blocks + 0xFE0) + { + goto loop_1; + } + return &ptr_table_allocated_mem_blocks + 0xFE0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_allocated_table_related +/* 00AC40 7000A040 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) +/* 00AC44 7000A044 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0xFE0) +/* 00AC48 7000A048 24424C08 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0xFE0) # addiu $v0, $v0, 0x4c08 +/* 00AC4C 7000A04C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 +/* 00AC50 7000A050 24630020 */ addiu $v1, $v1, 0x20 +.L7000A054: +/* 00AC54 7000A054 5462FFFF */ bnel $v1, $v0, .L7000A054 +/* 00AC58 7000A058 24630020 */ addiu $v1, $v1, 0x20 +/* 00AC5C 7000A05C 03E00008 */ jr $ra +/* 00AC60 7000A060 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +f32 mem_related_something_first_related(void) +{ + u32 temp_a1; + u32 temp_v0; + u32 phi_v1; + void *phi_a0; + u32 phi_v0; + u32 phi_v1_2; + u32 phi_v1_3; + u32 phi_v0_2; + + phi_v1 = 0U; + phi_a0 = &ptr_table_allocated_mem_blocks + 0x10; + phi_v0 = 0U; + phi_v1_2 = 0U; + phi_v0_2 = 0U; + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { +loop_1: + temp_a1 = phi_a0->unk4; + temp_v0 = phi_v0_2 + temp_a1; + phi_v1_3 = phi_v1; + if ((u32) phi_v1 < temp_a1) + { + phi_v1_3 = temp_a1; + } + phi_v1 = phi_v1_3; + phi_a0 = phi_a0 + 8; + phi_v0 = temp_v0; + phi_v1_2 = phi_v1_3; + phi_v0_2 = temp_v0; + if (-1 != phi_a0->unk8) + { + goto loop_1; + } + } + if (phi_v0 == 0) + { + return 0; + } + return (f32) (u32) (phi_v0 - phi_v1_2) / (f32) (u32) phi_v0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_first_related +/* 00AC64 7000A064 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AC68 7000A068 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) +/* 00AC6C 7000A06C 2406FFFF */ li $a2, -1 +/* 00AC70 7000A070 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AC74 7000A074 00001025 */ move $v0, $zero +/* 00AC78 7000A078 00001825 */ move $v1, $zero +/* 00AC7C 7000A07C 10CE000A */ beq $a2, $t6, .L7000A0A8 +/* 00AC80 7000A080 24843C38 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $a0, $a0, 0x3c38 +/* 00AC84 7000A084 8C850004 */ lw $a1, 4($a0) +.L7000A088: +/* 00AC88 7000A088 0065082B */ sltu $at, $v1, $a1 +/* 00AC8C 7000A08C 10200002 */ beqz $at, .L7000A098 +/* 00AC90 7000A090 00451021 */ addu $v0, $v0, $a1 +/* 00AC94 7000A094 00A01825 */ move $v1, $a1 +.L7000A098: +/* 00AC98 7000A098 8C8F0008 */ lw $t7, 8($a0) +/* 00AC9C 7000A09C 24840008 */ addiu $a0, $a0, 8 +/* 00ACA0 7000A0A0 54CFFFF9 */ bnel $a2, $t7, .L7000A088 +/* 00ACA4 7000A0A4 8C850004 */ lw $a1, 4($a0) +.L7000A0A8: +/* 00ACA8 7000A0A8 14400004 */ bnez $v0, .L7000A0BC +/* 00ACAC 7000A0AC 0043C023 */ subu $t8, $v0, $v1 +/* 00ACB0 7000A0B0 44800000 */ mtc1 $zero, $f0 +/* 00ACB4 7000A0B4 03E00008 */ jr $ra +/* 00ACB8 7000A0B8 00000000 */ nop + +.L7000A0BC: +/* 00ACBC 7000A0BC 44982000 */ mtc1 $t8, $f4 +/* 00ACC0 7000A0C0 44825000 */ mtc1 $v0, $f10 +/* 00ACC4 7000A0C4 07010005 */ bgez $t8, .L7000A0DC +/* 00ACC8 7000A0C8 468021A0 */ cvt.s.w $f6, $f4 +/* 00ACCC 7000A0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ACD0 7000A0D0 44814000 */ mtc1 $at, $f8 +/* 00ACD4 7000A0D4 00000000 */ nop +/* 00ACD8 7000A0D8 46083180 */ add.s $f6, $f6, $f8 +.L7000A0DC: +/* 00ACDC 7000A0DC 04410005 */ bgez $v0, .L7000A0F4 +/* 00ACE0 7000A0E0 46805420 */ cvt.s.w $f16, $f10 +/* 00ACE4 7000A0E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ACE8 7000A0E8 44819000 */ mtc1 $at, $f18 +/* 00ACEC 7000A0EC 00000000 */ nop +/* 00ACF0 7000A0F0 46128400 */ add.s $f16, $f16, $f18 +.L7000A0F4: +/* 00ACF4 7000A0F4 46103003 */ div.s $f0, $f6, $f16 +/* 00ACF8 7000A0F8 03E00008 */ jr $ra +/* 00ACFC 7000A0FC 00000000 */ nop +) +#endif + +const char aD_3[] = "%d "; +const char a___[] = "..."; +const char aD_5[] = "[%d]"; + +#ifdef NONMATCHING +void generate_list_alloc_mem(void) { + +} +#else +GLOBAL_ASM( +.text +glabel generate_list_alloc_mem +/* 00AD00 7000A100 27BDEF98 */ addiu $sp, $sp, -0x1068 +/* 00AD04 7000A104 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD08 7000A108 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) +/* 00AD0C 7000A10C AFB5002C */ sw $s5, 0x2c($sp) +/* 00AD10 7000A110 AFB00018 */ sw $s0, 0x18($sp) +/* 00AD14 7000A114 2415FFFF */ li $s5, -1 +/* 00AD18 7000A118 AFB20020 */ sw $s2, 0x20($sp) +/* 00AD1C 7000A11C 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD20 7000A120 AFBF003C */ sw $ra, 0x3c($sp) +/* 00AD24 7000A124 AFBE0038 */ sw $fp, 0x38($sp) +/* 00AD28 7000A128 AFB70034 */ sw $s7, 0x34($sp) +/* 00AD2C 7000A12C AFB60030 */ sw $s6, 0x30($sp) +/* 00AD30 7000A130 AFB40028 */ sw $s4, 0x28($sp) +/* 00AD34 7000A134 AFB30024 */ sw $s3, 0x24($sp) +/* 00AD38 7000A138 AFB1001C */ sw $s1, 0x1c($sp) +/* 00AD3C 7000A13C 3C038000 */ lui $v1, 0x8000 +/* 00AD40 7000A140 00009025 */ move $s2, $zero +/* 00AD44 7000A144 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00AD48 7000A148 12A40008 */ beq $s5, $a0, .L7000A16C +/* 00AD4C 7000A14C 00001025 */ move $v0, $zero +.L7000A150: +/* 00AD50 7000A150 8E0F0008 */ lw $t7, 8($s0) +/* 00AD54 7000A154 8E0E0004 */ lw $t6, 4($s0) +/* 00AD58 7000A158 26100008 */ addiu $s0, $s0, 8 +/* 00AD5C 7000A15C 16AFFFFC */ bne $s5, $t7, .L7000A150 +/* 00AD60 7000A160 004E1021 */ addu $v0, $v0, $t6 +/* 00AD64 7000A164 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD68 7000A168 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +.L7000A16C: +/* 00AD6C 7000A16C 3C1E8003 */ lui $fp, %hi(a___) +/* 00AD70 7000A170 3C168003 */ lui $s6, %hi(aD_3) +/* 00AD74 7000A174 27B10054 */ addiu $s1, $sp, 0x54 +/* 00AD78 7000A178 26D691E0 */ addiu $s6, %lo(aD_3) # addiu $s6, $s6, -0x6e20 +/* 00AD7C 7000A17C 27DE91E4 */ addiu $fp, %lo(a___) # addiu $fp, $fp, -0x6e1c +/* 00AD80 7000A180 00009825 */ move $s3, $zero +/* 00AD84 7000A184 0000A025 */ move $s4, $zero +/* 00AD88 7000A188 241700C8 */ li $s7, 200 +.L7000A18C: +/* 00AD8C 7000A18C 12A4000D */ beq $s5, $a0, .L7000A1C4 +/* 00AD90 7000A190 00000000 */ nop +/* 00AD94 7000A194 8E020004 */ lw $v0, 4($s0) +.L7000A198: +/* 00AD98 7000A198 0043082B */ sltu $at, $v0, $v1 +/* 00AD9C 7000A19C 10200005 */ beqz $at, .L7000A1B4 +/* 00ADA0 7000A1A0 0262082B */ sltu $at, $s3, $v0 +/* 00ADA4 7000A1A4 50200004 */ beql $at, $zero, .L7000A1B8 +/* 00ADA8 7000A1A8 8E180008 */ lw $t8, 8($s0) +/* 00ADAC 7000A1AC 00409825 */ move $s3, $v0 +/* 00ADB0 7000A1B0 26940001 */ addiu $s4, $s4, 1 +.L7000A1B4: +/* 00ADB4 7000A1B4 8E180008 */ lw $t8, 8($s0) +.L7000A1B8: +/* 00ADB8 7000A1B8 26100008 */ addiu $s0, $s0, 8 +/* 00ADBC 7000A1BC 56B8FFF6 */ bnel $s5, $t8, .L7000A198 +/* 00ADC0 7000A1C0 8E020004 */ lw $v0, 4($s0) +.L7000A1C4: +/* 00ADC4 7000A1C4 12800022 */ beqz $s4, .L7000A250 +/* 00ADC8 7000A1C8 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ADCC 7000A1CC 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00ADD0 7000A1D0 12A4001C */ beq $s5, $a0, .L7000A244 +/* 00ADD4 7000A1D4 0000A025 */ move $s4, $zero +/* 00ADD8 7000A1D8 8E020004 */ lw $v0, 4($s0) +.L7000A1DC: +/* 00ADDC 7000A1DC 2A4100C8 */ slti $at, $s2, 0xc8 +/* 00ADE0 7000A1E0 56620011 */ bnel $s3, $v0, .L7000A228 +/* 00ADE4 7000A1E4 8E080008 */ lw $t0, 8($s0) +/* 00ADE8 7000A1E8 10200008 */ beqz $at, .L7000A20C +/* 00ADEC 7000A1EC 02202025 */ move $a0, $s1 +/* 00ADF0 7000A1F0 24460200 */ addiu $a2, $v0, 0x200 +/* 00ADF4 7000A1F4 0006CA82 */ srl $t9, $a2, 0xa +/* 00ADF8 7000A1F8 03203025 */ move $a2, $t9 +/* 00ADFC 7000A1FC 0C002B25 */ jal sprintf +/* 00AE00 7000A200 02C02825 */ move $a1, $s6 +/* 00AE04 7000A204 10000006 */ b .L7000A220 +/* 00AE08 7000A208 02228821 */ addu $s1, $s1, $v0 +.L7000A20C: +/* 00AE0C 7000A20C 16570004 */ bne $s2, $s7, .L7000A220 +/* 00AE10 7000A210 02202025 */ move $a0, $s1 +/* 00AE14 7000A214 0C002B25 */ jal sprintf +/* 00AE18 7000A218 03C02825 */ move $a1, $fp +/* 00AE1C 7000A21C 02228821 */ addu $s1, $s1, $v0 +.L7000A220: +/* 00AE20 7000A220 26520001 */ addiu $s2, $s2, 1 +/* 00AE24 7000A224 8E080008 */ lw $t0, 8($s0) +.L7000A228: +/* 00AE28 7000A228 26100008 */ addiu $s0, $s0, 8 +/* 00AE2C 7000A22C 56A8FFEB */ bnel $s5, $t0, .L7000A1DC +/* 00AE30 7000A230 8E020004 */ lw $v0, 4($s0) +/* 00AE34 7000A234 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AE38 7000A238 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AE3C 7000A23C 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) +/* 00AE40 7000A240 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +.L7000A244: +/* 00AE44 7000A244 02601825 */ move $v1, $s3 +/* 00AE48 7000A248 1000FFD0 */ b .L7000A18C +/* 00AE4C 7000A24C 00009825 */ move $s3, $zero +.L7000A250: +/* 00AE50 7000A250 2A4100C9 */ slti $at, $s2, 0xc9 +/* 00AE54 7000A254 14200005 */ bnez $at, .L7000A26C +/* 00AE58 7000A258 02202025 */ move $a0, $s1 +/* 00AE5C 7000A25C 3C058003 */ lui $a1, %hi(aD_5) +/* 00AE60 7000A260 24A591E8 */ addiu $a1, %lo(aD_5) # addiu $a1, $a1, -0x6e18 +/* 00AE64 7000A264 0C002B25 */ jal sprintf +/* 00AE68 7000A268 02403025 */ move $a2, $s2 +.L7000A26C: +/* 00AE6C 7000A26C 8FBF003C */ lw $ra, 0x3c($sp) +/* 00AE70 7000A270 8FB00018 */ lw $s0, 0x18($sp) +/* 00AE74 7000A274 8FB1001C */ lw $s1, 0x1c($sp) +/* 00AE78 7000A278 8FB20020 */ lw $s2, 0x20($sp) +/* 00AE7C 7000A27C 8FB30024 */ lw $s3, 0x24($sp) +/* 00AE80 7000A280 8FB40028 */ lw $s4, 0x28($sp) +/* 00AE84 7000A284 8FB5002C */ lw $s5, 0x2c($sp) +/* 00AE88 7000A288 8FB60030 */ lw $s6, 0x30($sp) +/* 00AE8C 7000A28C 8FB70034 */ lw $s7, 0x34($sp) +/* 00AE90 7000A290 8FBE0038 */ lw $fp, 0x38($sp) +/* 00AE94 7000A294 03E00008 */ jr $ra +/* 00AE98 7000A298 27BD1068 */ addiu $sp, $sp, 0x1068 +) +#endif + + + + +void memaGenerateListsBeforeAfterMerge(void) +{ + s32 count; + + generate_list_alloc_mem(); + for (count = 0; count != 0x1fc; count +=1) + { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); + } + generate_list_alloc_mem(); +} + + + +#ifdef NONMATCHING +void mem_related_something_first_related_0(void *arg0) +{ + s32 temp_s1; + s32 phi_s1; + void *phi_s0; + + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { + phi_s1 = ptr_table_allocated_mem_blocks + 0x10; + phi_s0 = &ptr_table_allocated_mem_blocks + 0x10; +loop_2: + arg0(phi_s1 + phi_s0->unk4, phi_s0); + temp_s1 = phi_s0->unk8; + phi_s1 = temp_s1; + phi_s0 = phi_s0 + 8; + if (-1 != temp_s1) + { + goto loop_2; + } + } +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_first_related_0 +/* 00AEF8 7000A2F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00AEFC 7000A2FC 3C0F8006 */ lui $t7, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF00 7000A300 8DEF3C38 */ lw $t7, %lo(ptr_table_allocated_mem_blocks + 0x10)($t7) +/* 00AF04 7000A304 AFB30020 */ sw $s3, 0x20($sp) +/* 00AF08 7000A308 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF0C 7000A30C 2413FFFF */ li $s3, -1 +/* 00AF10 7000A310 AFB2001C */ sw $s2, 0x1c($sp) +/* 00AF14 7000A314 AFB00014 */ sw $s0, 0x14($sp) +/* 00AF18 7000A318 25CE3C38 */ addiu $t6, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t6, $t6, 0x3c38 +/* 00AF1C 7000A31C 00809025 */ move $s2, $a0 +/* 00AF20 7000A320 AFBF0024 */ sw $ra, 0x24($sp) +/* 00AF24 7000A324 AFB10018 */ sw $s1, 0x18($sp) +/* 00AF28 7000A328 126F000A */ beq $s3, $t7, .L7000A354 +/* 00AF2C 7000A32C 01C08025 */ move $s0, $t6 +/* 00AF30 7000A330 8DD10000 */ lw $s1, ($t6) +/* 00AF34 7000A334 8E180004 */ lw $t8, 4($s0) +.L7000A338: +/* 00AF38 7000A338 02002825 */ move $a1, $s0 +/* 00AF3C 7000A33C 0240F809 */ jalr $s2 +/* 00AF40 7000A340 02382021 */ addu $a0, $s1, $t8 +/* 00AF44 7000A344 8E110008 */ lw $s1, 8($s0) +/* 00AF48 7000A348 26100008 */ addiu $s0, $s0, 8 +/* 00AF4C 7000A34C 5671FFFA */ bnel $s3, $s1, .L7000A338 +/* 00AF50 7000A350 8E180004 */ lw $t8, 4($s0) +.L7000A354: +/* 00AF54 7000A354 8FBF0024 */ lw $ra, 0x24($sp) +/* 00AF58 7000A358 8FB00014 */ lw $s0, 0x14($sp) +/* 00AF5C 7000A35C 8FB10018 */ lw $s1, 0x18($sp) +/* 00AF60 7000A360 8FB2001C */ lw $s2, 0x1c($sp) +/* 00AF64 7000A364 8FB30020 */ lw $s3, 0x20($sp) +/* 00AF68 7000A368 03E00008 */ jr $ra +/* 00AF6C 7000A36C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +u32 mem_related_0(void) { + u32 sp18; + + // Node 0 + sp18 = 0U; + memaSortMergeAllEntries(); + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { + loop_1: + // Node 1 + if (sp18 < (u32) ptr_table_allocated_mem_blocks + 0x10.unk4) + { + // Node 2 + } + // Node 3 + if (-1 != ptr_table_allocated_mem_blocks + 0x10.unk8) + { + goto loop_1; + } + } + // Node 4 + if (sp18 != 0) + { + // Node 5 + return; + // (possible return value: sp18) + } + // Node 6 + return; + // (possible return value: 0U) +} + +#else +GLOBAL_ASM( +.text +glabel mem_related_0 +/* 00AF70 7000A370 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00AF74 7000A374 AFBF0014 */ sw $ra, 0x14($sp) +/* 00AF78 7000A378 0C0026C6 */ jal memaSortMergeAllEntries +/* 00AF7C 7000A37C AFA00018 */ sw $zero, 0x18($sp) +/* 00AF80 7000A380 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF84 7000A384 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) +/* 00AF88 7000A388 2405FFFF */ li $a1, -1 +/* 00AF8C 7000A38C 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF90 7000A390 8FA40018 */ lw $a0, 0x18($sp) +/* 00AF94 7000A394 10AE000A */ beq $a1, $t6, .L7000A3C0 +/* 00AF98 7000A398 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 +/* 00AF9C 7000A39C 8C430004 */ lw $v1, 4($v0) +.L7000A3A0: +/* 00AFA0 7000A3A0 0083082B */ sltu $at, $a0, $v1 +/* 00AFA4 7000A3A4 50200003 */ beql $at, $zero, .L7000A3B4 +/* 00AFA8 7000A3A8 8C4F0008 */ lw $t7, 8($v0) +/* 00AFAC 7000A3AC 00602025 */ move $a0, $v1 +/* 00AFB0 7000A3B0 8C4F0008 */ lw $t7, 8($v0) +.L7000A3B4: +/* 00AFB4 7000A3B4 24420008 */ addiu $v0, $v0, 8 +/* 00AFB8 7000A3B8 54AFFFF9 */ bnel $a1, $t7, .L7000A3A0 +/* 00AFBC 7000A3BC 8C430004 */ lw $v1, 4($v0) +.L7000A3C0: +/* 00AFC0 7000A3C0 10800003 */ beqz $a0, .L7000A3D0 +/* 00AFC4 7000A3C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 00AFC8 7000A3C8 10000002 */ b .L7000A3D4 +/* 00AFCC 7000A3CC 00801025 */ move $v0, $a0 +.L7000A3D0: +/* 00AFD0 7000A3D0 00001025 */ move $v0, $zero +.L7000A3D4: +/* 00AFD4 7000A3D4 03E00008 */ jr $ra +/* 00AFD8 7000A3D8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +//close C, regalloc +u32 mem_related_1(u32 addr,u32 length,u32 maxsize) +{ + if (length < maxsize) { + if (mem_related_something_find_first_0((addr + length), (maxsize - length)) == 0) { + return 0; + } + else { + return 1; + } + } + else { + if (maxsize < length) { + mem_related_model_room_buffers_0((addr + maxsize), (length - maxsize)); + } + return 1; + } +} +#else +GLOBAL_ASM( +.text +glabel mem_related_1 +/* 00AFDC 7000A3DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00AFE0 7000A3E0 00A6082B */ sltu $at, $a1, $a2 +/* 00AFE4 7000A3E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 00AFE8 7000A3E8 AFA40018 */ sw $a0, 0x18($sp) +/* 00AFEC 7000A3EC 1020000A */ beqz $at, .L7000A418 +/* 00AFF0 7000A3F0 00A03825 */ move $a3, $a1 +/* 00AFF4 7000A3F4 00852021 */ addu $a0, $a0, $a1 +/* 00AFF8 7000A3F8 0C0027EA */ jal mem_related_something_find_first_0 +/* 00AFFC 7000A3FC 00C52823 */ subu $a1, $a2, $a1 +/* 00B000 7000A400 14400003 */ bnez $v0, .L7000A410 +/* 00B004 7000A404 00000000 */ nop +/* 00B008 7000A408 1000000A */ b .L7000A434 +/* 00B00C 7000A40C 00001025 */ move $v0, $zero +.L7000A410: +/* 00B010 7000A410 10000008 */ b .L7000A434 +/* 00B014 7000A414 24020001 */ li $v0, 1 +.L7000A418: +/* 00B018 7000A418 00C7082B */ sltu $at, $a2, $a3 +/* 00B01C 7000A41C 10200004 */ beqz $at, .L7000A430 +/* 00B020 7000A420 8FA90018 */ lw $t1, 0x18($sp) +/* 00B024 7000A424 01262021 */ addu $a0, $t1, $a2 +/* 00B028 7000A428 0C002808 */ jal mem_related_model_room_buffers_0 +/* 00B02C 7000A42C 00E62823 */ subu $a1, $a3, $a2 +.L7000A430: +/* 00B030 7000A430 24020001 */ li $v0, 1 +.L7000A434: +/* 00B034 7000A434 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B038 7000A438 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00B03C 7000A43C 03E00008 */ jr $ra +/* 00B040 7000A440 00000000 */ nop +) +#endif diff --git a/src/mema.h b/src/mema.h new file mode 100644 index 0000000..5c2cb39 --- /dev/null +++ b/src/mema.h @@ -0,0 +1,39 @@ +#ifndef _MEMA_H_ +#define _MEMA_H_ + +#include "ultra64.h" + + +typedef struct s_mem_alloc_entry { + s32 addr; + s32 size; +} s_mem_alloc_entry; + +typedef struct s_mem_alloc_table { + struct s_mem_alloc_entry entries[0x200]; +} s_mem_alloc_table; + +extern struct s_mem_alloc_table ptr_table_allocated_mem_blocks; + +void memaSwap(s_mem_alloc_entry *a,s_mem_alloc_entry *b); +void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b); +u32 memaSortMergeEntries(struct s_mem_alloc_table *param_1); +void memaSortMergeAllEntries(void); +s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1); +void memaAllocRoomBuffer(u32 addr,u32 size); +void memaInitDebugNoticeList(void); +void mempInitMallocTable(void *ptr_allocmem,u32 size); +void mem_related_calls_sort_merge_entries(void); +s32 mem_related_something_find_first(u32 arg0); +s32 mem_related_something_find_first_0(s32 arg0, u32 arg1); +void mem_related_model_room_buffers_0(u32 addr,u32 size) ; +void mem_related_allocated_table_related(void); +f32 mem_related_something_first_related(void); +void generate_list_alloc_mem(void); +void memaGenerateListsBeforeAfterMerge(void); +void mem_related_something_first_related_0(void *arg0); +u32 mem_related_0(void); +u32 mem_related_1(u32 addr,u32 length,u32 maxsize); + + +#endif diff --git a/src/memp.c b/src/memp.c new file mode 100644 index 0000000..ff9ee1e --- /dev/null +++ b/src/memp.c @@ -0,0 +1,770 @@ +#include "ultra64.h" +#include "memp.h" +#include "game/lvl_text.h" +/** + * @file memp.c + * This file contains code for memp. + */ + +//bss +struct s_mempBANK memory_bank_ptrs[0x7]; + +//data +void *ptr_memp_c_debug_debug_notice_list = 0; +s32 needmemallocation = 0; +s32 D_80024408 = 0; +s32 D_8002440C = 0; + +struct s_mempMVALS sdefaultmvals = { + 0, //D_80024410 + 2, //D_80024414 + 0, //mf + 4, //D_8002441C + 0x52, //ml + 6, //D_80024424 + 0xF, //me + 0, //D_8002442C + 0 //D_80024430 +}; + +struct s_mempMEMSTARTS sdefaultmemstarts = { + 0, //bank1start + 0, //bank2start + 0, //bank3start + 0, //bank4start + 0, //bank5start + 0, //bank6start + 0 //bank7start +}; + + + + + + +/** + * 9F80 70009380 + * V0=p->debug.notice.list entry for memp_c_debug + */ +void mempInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&ptr_memp_c_debug_debug_notice_list, "memp_c_debug"); //should be "memp_c_debug" +} + +/** + * 9FAC 700093AC + * initialize memory allocation table and set font and text bank sizes + * accepts: A0=p->buffer, A1=size + * uses "-mf", "-ml", "-me" strings + */ +#ifdef NONMATCHING// +void mempCheckMemflagTokens(int bstart,int bsize) +{ + u32 iVar1; + u32 local_20; + u32 mfval; + u32 local_18; + u32 mlval; + u32 local_10; + u32 meval; + u32 local_8; + u32 local_4; + + memory_bank_ptrs[0].bankend = bstart + bsize; + local_20 = sdefaultmvals.D_80024414; + mfval = sdefaultmvals.mf; + mlval = sdefaultmvals.ml; + local_18 = sdefaultmvals.D_8002441C; + local_10 = sdefaultmvals.D_80024424; + meval = sdefaultmvals.me; + local_4 = sdefaultmvals.D_80024430; + local_8 = sdefaultmvals.D_8002442C; + memory_bank_ptrs[0].bankstart = bstart; + + if (check_token(1,"-mf") != 0) { + mfval = strtol(check_token(1,"-mf"),NULL,0); + } + + if (check_token(1,"-ml") != 0) { + mlval = strtol(check_token(1,"-ml"),NULL,0); + } + + if (check_token(1,"-me") != 0) { + meval = strtol(check_token(1,"-me"),NULL,0); + } + + if (meval == 0) { + mfval = 0; + iVar1 = 0x128; + if (j_text_trigger != 0) { + iVar1 = 0x134; + } + meval = iVar1 * 0x400; + mlval = bsize + iVar1 * -0x400; + } + mempSetBankStarts(&local_20); +} +#else +GLOBAL_ASM( +.rdata +glabel aMf +.word 0x2d6d6600 /*"-mf"*/ +glabel aMf_0 +.word 0x2d6d6600 /*"-mf"*/ +glabel aMl +.word 0x2d6d6c00 /*"-ml"*/ +glabel aMl_0 +.word 0x2d6d6c00 /*"-ml"*/ +glabel aMe +.word 0x2d6d6500 /*"-me"*/ +glabel aMe_0 +.word 0x2d6d6500 /*"-me"*/ + +.text +glabel mempCheckMemflagTokens +/* 009FAC 700093AC 3C028006 */ lui $v0, %hi(memory_bank_ptrs) +/* 009FB0 700093B0 24423BB0 */ addiu $v0, %lo(memory_bank_ptrs) # addiu $v0, $v0, 0x3bb0 +/* 009FB4 700093B4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 009FB8 700093B8 00857821 */ addu $t7, $a0, $a1 +/* 009FBC 700093BC 3C198002 */ lui $t9, %hi(sdefaultmvals +0x4) +/* 009FC0 700093C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 009FC4 700093C4 AFA50044 */ sw $a1, 0x44($sp) +/* 009FC8 700093C8 AC440000 */ sw $a0, ($v0) +/* 009FCC 700093CC AC4F0008 */ sw $t7, 8($v0) +/* 009FD0 700093D0 27394414 */ addiu $t9, %lo(sdefaultmvals +0x4) # addiu $t9, $t9, 0x4414 +/* 009FD4 700093D4 8F210000 */ lw $at, ($t9) +/* 009FD8 700093D8 8F290004 */ lw $t1, 4($t9) +/* 009FDC 700093DC 27B80020 */ addiu $t8, $sp, 0x20 +/* 009FE0 700093E0 AF010000 */ sw $at, ($t8) +/* 009FE4 700093E4 AF090004 */ sw $t1, 4($t8) +/* 009FE8 700093E8 8F29000C */ lw $t1, 0xc($t9) +/* 009FEC 700093EC 8F210008 */ lw $at, 8($t9) +/* 009FF0 700093F0 3C058003 */ lui $a1, %hi(aMf) +/* 009FF4 700093F4 AF09000C */ sw $t1, 0xc($t8) +/* 009FF8 700093F8 AF010008 */ sw $at, 8($t8) +/* 009FFC 700093FC 8F210010 */ lw $at, 0x10($t9) +/* 00A000 70009400 8F290014 */ lw $t1, 0x14($t9) +/* 00A004 70009404 24A591B0 */ addiu $a1, %lo(aMf) # addiu $a1, $a1, -0x6e50 +/* 00A008 70009408 AF010010 */ sw $at, 0x10($t8) +/* 00A00C 7000940C AF090014 */ sw $t1, 0x14($t8) +/* 00A010 70009410 8F29001C */ lw $t1, 0x1c($t9) +/* 00A014 70009414 8F210018 */ lw $at, 0x18($t9) +/* 00A018 70009418 24040001 */ li $a0, 1 +/* 00A01C 7000941C AF09001C */ sw $t1, 0x1c($t8) +/* 00A020 70009420 0C0029A8 */ jal check_token +/* 00A024 70009424 AF010018 */ sw $at, 0x18($t8) +/* 00A028 70009428 10400009 */ beqz $v0, .L70009450 +/* 00A02C 7000942C 24040001 */ li $a0, 1 +/* 00A030 70009430 3C058003 */ lui $a1, %hi(aMf_0) +/* 00A034 70009434 0C0029A8 */ jal check_token +/* 00A038 70009438 24A591B4 */ addiu $a1, %lo(aMf_0) # addiu $a1, $a1, -0x6e4c +/* 00A03C 7000943C 00402025 */ move $a0, $v0 +/* 00A040 70009440 00002825 */ move $a1, $zero +/* 00A044 70009444 0C002A78 */ jal strtol +/* 00A048 70009448 00003025 */ move $a2, $zero +/* 00A04C 7000944C AFA20024 */ sw $v0, 0x24($sp) +.L70009450: +/* 00A050 70009450 3C058003 */ lui $a1, %hi(aMl) +/* 00A054 70009454 24A591B8 */ addiu $a1, %lo(aMl) # addiu $a1, $a1, -0x6e48 +/* 00A058 70009458 0C0029A8 */ jal check_token +/* 00A05C 7000945C 24040001 */ li $a0, 1 +/* 00A060 70009460 10400009 */ beqz $v0, .L70009488 +/* 00A064 70009464 24040001 */ li $a0, 1 +/* 00A068 70009468 3C058003 */ lui $a1, %hi(aMl_0) +/* 00A06C 7000946C 0C0029A8 */ jal check_token +/* 00A070 70009470 24A591BC */ addiu $a1, %lo(aMl_0) # addiu $a1, $a1, -0x6e44 +/* 00A074 70009474 00402025 */ move $a0, $v0 +/* 00A078 70009478 00002825 */ move $a1, $zero +/* 00A07C 7000947C 0C002A78 */ jal strtol +/* 00A080 70009480 00003025 */ move $a2, $zero +/* 00A084 70009484 AFA2002C */ sw $v0, 0x2c($sp) +.L70009488: +/* 00A088 70009488 3C058003 */ lui $a1, %hi(aMe) +/* 00A08C 7000948C 24A591C0 */ addiu $a1, %lo(aMe) # addiu $a1, $a1, -0x6e40 +/* 00A090 70009490 0C0029A8 */ jal check_token +/* 00A094 70009494 24040001 */ li $a0, 1 +/* 00A098 70009498 10400009 */ beqz $v0, .L700094C0 +/* 00A09C 7000949C 24040001 */ li $a0, 1 +/* 00A0A0 700094A0 3C058003 */ lui $a1, %hi(aMe_0) +/* 00A0A4 700094A4 0C0029A8 */ jal check_token +/* 00A0A8 700094A8 24A591C4 */ addiu $a1, %lo(aMe_0) # addiu $a1, $a1, -0x6e3c +/* 00A0AC 700094AC 00402025 */ move $a0, $v0 +/* 00A0B0 700094B0 00002825 */ move $a1, $zero +/* 00A0B4 700094B4 0C002A78 */ jal strtol +/* 00A0B8 700094B8 00003025 */ move $a2, $zero +/* 00A0BC 700094BC AFA20034 */ sw $v0, 0x34($sp) +.L700094C0: +/* 00A0C0 700094C0 8FA30034 */ lw $v1, 0x34($sp) +/* 00A0C4 700094C4 3C0A8005 */ lui $t2, %hi(j_text_trigger) +/* 00A0C8 700094C8 1460000C */ bnez $v1, .L700094FC +/* 00A0CC 700094CC 00000000 */ nop +/* 00A0D0 700094D0 8D4A84D0 */ lw $t2, %lo(j_text_trigger)($t2) +/* 00A0D4 700094D4 AFA00024 */ sw $zero, 0x24($sp) +/* 00A0D8 700094D8 24020128 */ li $v0, 296 +/* 00A0DC 700094DC 11400003 */ beqz $t2, .L700094EC +/* 00A0E0 700094E0 8FAB0044 */ lw $t3, 0x44($sp) +/* 00A0E4 700094E4 10000001 */ b .L700094EC +/* 00A0E8 700094E8 24020134 */ li $v0, 308 +.L700094EC: +/* 00A0EC 700094EC 00021A80 */ sll $v1, $v0, 0xa +/* 00A0F0 700094F0 01636023 */ subu $t4, $t3, $v1 +/* 00A0F4 700094F4 AFAC002C */ sw $t4, 0x2c($sp) +/* 00A0F8 700094F8 AFA30034 */ sw $v1, 0x34($sp) +.L700094FC: +/* 00A0FC 700094FC 0C002545 */ jal mempSetBankStarts +/* 00A100 70009500 27A40020 */ addiu $a0, $sp, 0x20 +/* 00A104 70009504 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A108 70009508 27BD0040 */ addiu $sp, $sp, 0x40 +/* 00A10C 7000950C 03E00008 */ jr $ra +/* 00A110 70009510 00000000 */ nop +) +#endif + + + + + +/** + * A114 70009514 + * initialize allocations using table A0 + * accepts: A0=p->allocation sizes + */ +#ifdef NONMATCHING +void mempSetBankStarts(int *banks) +{ + int *piVar1; + int right_l; + longlong lVar2; + longlong lVar3; + int iVar4; + int iVar5; + s_memstarts *psVar6; + s_memstarts *psVar7; + s_memstarts bankstarts; + undefined auStack4 [4]; + + bankstarts.bank1start = sdefaultmemstarts.bank1start; + bankstarts.bank2start = sdefaultmemstarts.bank2start; + psVar6 = &bankstarts; + bankstarts.bank3start = sdefaultmemstarts.bank3start; + bankstarts.bank4start = sdefaultmemstarts.bank4start; + bankstarts.bank5start = sdefaultmemstarts.bank5start; + bankstarts.bank6start = sdefaultmemstarts.bank6start; + bankstarts.bank7start = sdefaultmemstarts.bank7start; + right_l = *banks; + iVar4 = banks[1]; + while( true ) { + (&bankstarts.bank1start)[right_l] = iVar4; + right_l = banks[2]; + if (right_l == 0) break; + iVar4 = banks[3]; + banks = banks + 2; + } + right_l = bankstarts.bank1start; + do { + piVar1 = &psVar6->bank2start; + psVar6 = (s_memstarts *)&psVar6->bank2start; + right_l = *piVar1 + right_l; + psVar6->bank1start = right_l; + iVar4 = bankstarts.bank7start; + } while (psVar6 < (s_memstarts *)&bankstarts.bank7start); + right_l = memory_bank_ptrs[0].bankend - memory_bank_ptrs[0].bankstart; + lVar3 = (longlong)right_l; + iVar5 = bankstarts.bank7start >> 0x1f; + psVar6 = &bankstarts; + do { + lVar2 = __ll_mul((int)psVar6->bank1start >> 0x1f,psVar6->bank1start,right_l >> 0x1f,right_l) + ; + __ll_div((int)lVar2,(int)lVar3,iVar5,iVar4); + psVar7 = (s_memstarts *)&psVar6->bank2start; + psVar6->bank1start = (int)lVar3; + psVar6 = psVar7; + } while (psVar7 < (s_memstarts *)auStack4); + psVar6 = &bankstarts; + do { + psVar7 = (s_memstarts *)&psVar6->bank2start; + psVar6->bank1start = (psVar6->bank1start | 0xf) ^ 0xf; + psVar6 = psVar7; + } while (psVar7 < (s_memstarts *)auStack4); + memory_bank_ptrs[1].bankstart = bankstarts.bank1start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[1].nextentry = 0; + memory_bank_ptrs[1].bankend = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[2].bankstart = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[2].nextentry = 0; + memory_bank_ptrs[2].bankend = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[3].bankstart = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[3].nextentry = 0; + memory_bank_ptrs[3].bankend = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[4].bankstart = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[4].nextentry = 0; + memory_bank_ptrs[4].bankend = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[5].bankstart = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[5].nextentry = 0; + memory_bank_ptrs[5].bankend = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[6].bankstart = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[6].nextentry = 0; + memory_bank_ptrs[6].bankend = bankstarts.bank7start + memory_bank_ptrs[0].bankstart; +} +#else +GLOBAL_ASM( +.text +glabel mempSetBankStarts +/* 00A114 70009514 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 00A118 70009518 3C0E8002 */ lui $t6, %hi(sdefaultmemstarts) +/* 00A11C 7000951C AFBF0024 */ sw $ra, 0x24($sp) +/* 00A120 70009520 AFB30020 */ sw $s3, 0x20($sp) +/* 00A124 70009524 AFB2001C */ sw $s2, 0x1c($sp) +/* 00A128 70009528 AFB10018 */ sw $s1, 0x18($sp) +/* 00A12C 7000952C AFB00014 */ sw $s0, 0x14($sp) +/* 00A130 70009530 25CE4434 */ addiu $t6, %lo(sdefaultmemstarts) # addiu $t6, $t6, 0x4434 +/* 00A134 70009534 8DC10000 */ lw $at, ($t6) +/* 00A138 70009538 27B20060 */ addiu $s2, $sp, 0x60 +/* 00A13C 7000953C 3C138006 */ lui $s3, %hi(memory_bank_ptrs) +/* 00A140 70009540 AE410000 */ sw $at, ($s2) +/* 00A144 70009544 8DD90004 */ lw $t9, 4($t6) +/* 00A148 70009548 00801025 */ move $v0, $a0 +/* 00A14C 7000954C 26733BB0 */ addiu $s3, %lo(memory_bank_ptrs) # addiu $s3, $s3, 0x3bb0 +/* 00A150 70009550 AE590004 */ sw $t9, 4($s2) +/* 00A154 70009554 8DC10008 */ lw $at, 8($t6) +/* 00A158 70009558 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A15C 7000955C 27B1007C */ addiu $s1, $sp, 0x7c +/* 00A160 70009560 AE410008 */ sw $at, 8($s2) +/* 00A164 70009564 8DD9000C */ lw $t9, 0xc($t6) +/* 00A168 70009568 AE59000C */ sw $t9, 0xc($s2) +/* 00A16C 7000956C 8DC10010 */ lw $at, 0x10($t6) +/* 00A170 70009570 AE410010 */ sw $at, 0x10($s2) +/* 00A174 70009574 8DD90014 */ lw $t9, 0x14($t6) +/* 00A178 70009578 AE590014 */ sw $t9, 0x14($s2) +/* 00A17C 7000957C 8DC10018 */ lw $at, 0x18($t6) +/* 00A180 70009580 AE410018 */ sw $at, 0x18($s2) +/* 00A184 70009584 8C830000 */ lw $v1, ($a0) +/* 00A188 70009588 8C480004 */ lw $t0, 4($v0) +.L7000958C: +/* 00A18C 7000958C 00034880 */ sll $t1, $v1, 2 +/* 00A190 70009590 02495021 */ addu $t2, $s2, $t1 +/* 00A194 70009594 AD480000 */ sw $t0, ($t2) +/* 00A198 70009598 8C430008 */ lw $v1, 8($v0) +/* 00A19C 7000959C 24420008 */ addiu $v0, $v0, 8 +/* 00A1A0 700095A0 5460FFFA */ bnezl $v1, .L7000958C +/* 00A1A4 700095A4 8C480004 */ lw $t0, 4($v0) +/* 00A1A8 700095A8 8E030000 */ lw $v1, ($s0) +/* 00A1AC 700095AC 27A40078 */ addiu $a0, $sp, 0x78 +.L700095B0: +/* 00A1B0 700095B0 8E0C0004 */ lw $t4, 4($s0) +/* 00A1B4 700095B4 26100004 */ addiu $s0, $s0, 4 +/* 00A1B8 700095B8 0204082B */ sltu $at, $s0, $a0 +/* 00A1BC 700095BC 01831021 */ addu $v0, $t4, $v1 +/* 00A1C0 700095C0 00401825 */ move $v1, $v0 +/* 00A1C4 700095C4 1420FFFA */ bnez $at, .L700095B0 +/* 00A1C8 700095C8 AE020000 */ sw $v0, ($s0) +/* 00A1CC 700095CC 8E6D0008 */ lw $t5, 8($s3) +/* 00A1D0 700095D0 8E780000 */ lw $t8, ($s3) +/* 00A1D4 700095D4 8FA20078 */ lw $v0, 0x78($sp) +/* 00A1D8 700095D8 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A1DC 700095DC 01B81823 */ subu $v1, $t5, $t8 +/* 00A1E0 700095E0 000377C3 */ sra $t6, $v1, 0x1f +/* 00A1E4 700095E4 000247C3 */ sra $t0, $v0, 0x1f +/* 00A1E8 700095E8 AFA80030 */ sw $t0, 0x30($sp) +/* 00A1EC 700095EC AFAE0038 */ sw $t6, 0x38($sp) +/* 00A1F0 700095F0 AFA3003C */ sw $v1, 0x3c($sp) +/* 00A1F4 700095F4 AFA20034 */ sw $v0, 0x34($sp) +.L700095F8: +/* 00A1F8 700095F8 8E050000 */ lw $a1, ($s0) +/* 00A1FC 700095FC 8FA60038 */ lw $a2, 0x38($sp) +/* 00A200 70009600 8FA7003C */ lw $a3, 0x3c($sp) +/* 00A204 70009604 0C003B6A */ jal __ll_mul +/* 00A208 70009608 000527C3 */ sra $a0, $a1, 0x1f +/* 00A20C 7000960C 00402025 */ move $a0, $v0 +/* 00A210 70009610 00602825 */ move $a1, $v1 +/* 00A214 70009614 8FA60030 */ lw $a2, 0x30($sp) +/* 00A218 70009618 0C003B53 */ jal __ll_div +/* 00A21C 7000961C 8FA70034 */ lw $a3, 0x34($sp) +/* 00A220 70009620 26100004 */ addiu $s0, $s0, 4 +/* 00A224 70009624 0211082B */ sltu $at, $s0, $s1 +/* 00A228 70009628 1420FFF3 */ bnez $at, .L700095F8 +/* 00A22C 7000962C AE03FFFC */ sw $v1, -4($s0) +/* 00A230 70009630 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A234 70009634 27A2007C */ addiu $v0, $sp, 0x7c +.L70009638: +/* 00A238 70009638 8E0B0000 */ lw $t3, ($s0) +/* 00A23C 7000963C 26100004 */ addiu $s0, $s0, 4 +/* 00A240 70009640 0202082B */ sltu $at, $s0, $v0 +/* 00A244 70009644 356C000F */ ori $t4, $t3, 0xf +/* 00A248 70009648 398D000F */ xori $t5, $t4, 0xf +/* 00A24C 7000964C 1420FFFA */ bnez $at, .L70009638 +/* 00A250 70009650 AE0DFFFC */ sw $t5, -4($s0) +/* 00A254 70009654 8E660000 */ lw $a2, ($s3) +/* 00A258 70009658 8FB80060 */ lw $t8, 0x60($sp) +/* 00A25C 7000965C 8FAF0064 */ lw $t7, 0x64($sp) +/* 00A260 70009660 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x14) +/* 00A264 70009664 03067021 */ addu $t6, $t8, $a2 +/* 00A268 70009668 AC2E3BC0 */ sw $t6, %lo(memory_bank_ptrs+0x10)($at) +/* 00A26C 7000966C AC203BC4 */ sw $zero, %lo(memory_bank_ptrs+0x14)($at) +/* 00A270 70009670 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x18) +/* 00A274 70009674 01E61021 */ addu $v0, $t7, $a2 +/* 00A278 70009678 AC223BC8 */ sw $v0, %lo(memory_bank_ptrs+0x18)($at) +/* 00A27C 7000967C 8FA80068 */ lw $t0, 0x68($sp) +/* 00A280 70009680 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x24) +/* 00A284 70009684 AC223BD0 */ sw $v0, %lo(memory_bank_ptrs+0x20)($at) +/* 00A288 70009688 AC203BD4 */ sw $zero, %lo(memory_bank_ptrs+0x24)($at) +/* 00A28C 7000968C 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x28) +/* 00A290 70009690 01064821 */ addu $t1, $t0, $a2 +/* 00A294 70009694 AC293BD8 */ sw $t1, %lo(memory_bank_ptrs+0x28)($at) +/* 00A298 70009698 24070002 */ li $a3, 2 +/* 00A29C 7000969C 0007C900 */ sll $t9, $a3, 4 +/* 00A2A0 700096A0 02791021 */ addu $v0, $s3, $t9 +/* 00A2A4 700096A4 00075080 */ sll $t2, $a3, 2 +/* 00A2A8 700096A8 024A8021 */ addu $s0, $s2, $t2 +/* 00A2AC 700096AC 8E180008 */ lw $t8, 8($s0) +/* 00A2B0 700096B0 8E0E000C */ lw $t6, 0xc($s0) +/* 00A2B4 700096B4 8E0D0004 */ lw $t5, 4($s0) +/* 00A2B8 700096B8 8E0F0010 */ lw $t7, 0x10($s0) +/* 00A2BC 700096BC 8E0B0000 */ lw $t3, ($s0) +/* 00A2C0 700096C0 03062021 */ addu $a0, $t8, $a2 +/* 00A2C4 700096C4 01C62821 */ addu $a1, $t6, $a2 +/* 00A2C8 700096C8 01A61821 */ addu $v1, $t5, $a2 +/* 00A2CC 700096CC 01E64021 */ addu $t0, $t7, $a2 +/* 00A2D0 700096D0 01666021 */ addu $t4, $t3, $a2 +/* 00A2D4 700096D4 AC480048 */ sw $t0, 0x48($v0) +/* 00A2D8 700096D8 AC430020 */ sw $v1, 0x20($v0) +/* 00A2DC 700096DC AC450038 */ sw $a1, 0x38($v0) +/* 00A2E0 700096E0 AC450040 */ sw $a1, 0x40($v0) +/* 00A2E4 700096E4 AC440028 */ sw $a0, 0x28($v0) +/* 00A2E8 700096E8 AC440030 */ sw $a0, 0x30($v0) +/* 00A2EC 700096EC AC400024 */ sw $zero, 0x24($v0) +/* 00A2F0 700096F0 AC400034 */ sw $zero, 0x34($v0) +/* 00A2F4 700096F4 AC400044 */ sw $zero, 0x44($v0) +/* 00A2F8 700096F8 AC4C0010 */ sw $t4, 0x10($v0) +/* 00A2FC 700096FC AC400014 */ sw $zero, 0x14($v0) +/* 00A300 70009700 AC430018 */ sw $v1, 0x18($v0) +/* 00A304 70009704 8FBF0024 */ lw $ra, 0x24($sp) +/* 00A308 70009708 8FB30020 */ lw $s3, 0x20($sp) +/* 00A30C 7000970C 8FB2001C */ lw $s2, 0x1c($sp) +/* 00A310 70009710 8FB10018 */ lw $s1, 0x18($sp) +/* 00A314 70009714 8FB00014 */ lw $s0, 0x14($sp) +/* 00A318 70009718 03E00008 */ jr $ra +/* 00A31C 7000971C 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + +/** + * A320 70009720 + * V0=p->A0 bytes of memory allocated in bank A1; fries: AT,V0,V1,A0,A1,A2,A3,T0,T2,T5,T6,T7,T8,T9 + * accepts: A0=size, A1=bank + */ +#ifdef NONMATCHING +u32 mempAllocBytesInBank(u32 bytes,u8 bank) +{ + uint next; + uint end; + int domemalloc; + int bankmask; + + bankmask = (bank & 0xff) << 4; + while( true ) { + domemalloc = needmemallocation; + next = *(uint *)((int)&memory_bank_ptrs[0].nextentry + bankmask); + if (next == 0) { + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + end = *(uint *)((int)&memory_bank_ptrs[0].bankend + bankmask); + if (end < next) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + if (next + bytes <= end) { + *(int *)((int)&memory_bank_ptrs[0].nextentry + bankmask) = next + bytes; + *(uint *)((int)&memory_bank_ptrs[0].data2 + bankmask) = next; + return next; + } + if ((uint)memory_bank_ptrs[6].bankend < memory_bank_ptrs[6].nextentry + bytes) break; + needmemallocation = 1; + if (domemalloc == 0) { + bankmask = 0x60; + } + else { + bankmask = 0x60; + } + } + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); +} +#else +GLOBAL_ASM( +.text +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) +/* 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 +/* 00A33C 7000973C AFBF0014 */ sw $ra, 0x14($sp) +/* 00A340 70009740 00803025 */ move $a2, $a0 +/* 00A344 70009744 0007C100 */ sll $t8, $a3, 4 +.L70009748: +/* 00A348 70009748 00B81821 */ addu $v1, $a1, $t8 +/* 00A34C 7000974C 8C620004 */ lw $v0, 4($v1) +/* 00A350 70009750 14400006 */ bnez $v0, .L7000976C +/* 00A354 70009754 00404025 */ move $t0, $v0 +/* 00A358 70009758 24190001 */ li $t9, 1 +/* 00A35C 7000975C 3C018002 */ lui $at, %hi(needmemallocation) +/* 00A360 70009760 AC394404 */ sw $t9, %lo(needmemallocation)($at) +.L70009764: +/* 00A364 70009764 1000FFFF */ b .L70009764 +/* 00A368 70009768 00000000 */ nop +.L7000976C: +/* 00A36C 7000976C 8C640008 */ lw $a0, 8($v1) +/* 00A370 70009770 00466821 */ addu $t5, $v0, $a2 +/* 00A374 70009774 0082082B */ sltu $at, $a0, $v0 +/* 00A378 70009778 50200006 */ beql $at, $zero, .L70009794 +/* 00A37C 7000977C 008D082B */ sltu $at, $a0, $t5 +/* 00A380 70009780 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A384 70009784 24070006 */ li $a3, 6 +.L70009788: +/* 00A388 70009788 1000FFFF */ b .L70009788 +/* 00A38C 7000978C 00000000 */ nop +/* 00A390 70009790 008D082B */ sltu $at, $a0, $t5 +.L70009794: +/* 00A394 70009794 50200014 */ beql $at, $zero, .L700097E8 +/* 00A398 70009798 00466821 */ addu $t5, $v0, $a2 +/* 00A39C 7000979C 8CAF0064 */ lw $t7, 0x64($a1) +/* 00A3A0 700097A0 8CAE0068 */ lw $t6, 0x68($a1) +/* 00A3A4 700097A4 24070006 */ li $a3, 6 +/* 00A3A8 700097A8 01E6C021 */ addu $t8, $t7, $a2 +/* 00A3AC 700097AC 01D8082B */ sltu $at, $t6, $t8 +/* 00A3B0 700097B0 14200008 */ bnez $at, .L700097D4 +/* 00A3B4 700097B4 00000000 */ nop +/* 00A3B8 700097B8 8D420000 */ lw $v0, ($t2) +/* 00A3BC 700097BC 24190001 */ li $t9, 1 +/* 00A3C0 700097C0 AD590000 */ sw $t9, ($t2) +/* 00A3C4 700097C4 5440FFE0 */ bnezl $v0, .L70009748 +/* 00A3C8 700097C8 0007C100 */ sll $t8, $a3, 4 +/* 00A3CC 700097CC 1000FFDE */ b .L70009748 +/* 00A3D0 700097D0 0007C100 */ sll $t8, $a3, 4 +.L700097D4: +/* 00A3D4 700097D4 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A3D8 700097D8 00000000 */ nop +.L700097DC: +/* 00A3DC 700097DC 1000FFFF */ b .L700097DC +/* 00A3E0 700097E0 00000000 */ nop +/* 00A3E4 700097E4 00466821 */ addu $t5, $v0, $a2 +.L700097E8: +/* 00A3E8 700097E8 AC6D0004 */ sw $t5, 4($v1) +/* 00A3EC 700097EC AC68000C */ sw $t0, 0xc($v1) +/* 00A3F0 700097F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A3F4 700097F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A3F8 700097F8 01001025 */ move $v0, $t0 +/* 00A3FC 700097FC 03E00008 */ jr $ra +/* 00A400 70009800 00000000 */ nop +) +#endif + + + +/** + * A404 70009804 + * ???; updates bank A2 size registry in light of entry at A0 of size A1 + * accepts: A0=p->allocated data, A1=size of data, A2=bank# + */ +#ifdef NONMATCHING +u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank) +{ + u32 entry; + u32 retval; + + if ((needmemallocation != 0) && (ptrdata == memory_bank_ptrs[6].data2)) { + bank = 6; + } + entry = memory_bank_ptrs[bank].nextentry; + if (entry == 0) { + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + if (ptrdata == memory_bank_ptrs[bank].data2) { + size = size - (entry - (int)memory_bank_ptrs[bank].data2); + if (size < 1) { + memory_bank_ptrs[bank].nextentry = entry + size; + retval = 1; + } + else { + if (memory_bank_ptrs[bank].bankend < entry) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + if (memory_bank_ptrs[bank].bankend < entry + size) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + memory_bank_ptrs[bank].nextentry = entry + size; + retval = 1; + } + } + else { + retval = 2; + } + return retval; +} +#else +GLOBAL_ASM( +.text +glabel mempAddEntryOfSizeToBank +/* 00A404 70009804 3C0F8002 */ lui $t7, %hi(needmemallocation) +/* 00A408 70009808 8DEF4404 */ lw $t7, %lo(needmemallocation)($t7) +/* 00A40C 7000980C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00A410 70009810 AFA60020 */ sw $a2, 0x20($sp) +/* 00A414 70009814 30CE00FF */ andi $t6, $a2, 0xff +/* 00A418 70009818 01C03025 */ move $a2, $t6 +/* 00A41C 7000981C AFBF0014 */ sw $ra, 0x14($sp) +/* 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) +/* 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 +/* 00A448 70009848 0006C900 */ sll $t9, $a2, 4 +/* 00A44C 7000984C 032A2821 */ addu $a1, $t9, $t2 +/* 00A450 70009850 8CA40004 */ lw $a0, 4($a1) +/* 00A454 70009854 54800004 */ bnezl $a0, .L70009868 +/* 00A458 70009858 8CA6000C */ lw $a2, 0xc($a1) +.L7000985C: +/* 00A45C 7000985C 1000FFFF */ b .L7000985C +/* 00A460 70009860 00000000 */ nop +/* 00A464 70009864 8CA6000C */ lw $a2, 0xc($a1) +.L70009868: +/* 00A468 70009868 8FAB001C */ lw $t3, 0x1c($sp) +/* 00A46C 7000986C 50E60004 */ beql $a3, $a2, .L70009880 +/* 00A470 70009870 00861023 */ subu $v0, $a0, $a2 +/* 00A474 70009874 1000001A */ b .L700098E0 +/* 00A478 70009878 24020002 */ li $v0, 2 +/* 00A47C 7000987C 00861023 */ subu $v0, $a0, $a2 +.L70009880: +/* 00A480 70009880 01621823 */ subu $v1, $t3, $v0 +/* 00A484 70009884 1C600004 */ bgtz $v1, .L70009898 +/* 00A488 70009888 00836021 */ addu $t4, $a0, $v1 +/* 00A48C 7000988C ACAC0004 */ sw $t4, 4($a1) +/* 00A490 70009890 10000013 */ b .L700098E0 +/* 00A494 70009894 24020001 */ li $v0, 1 +.L70009898: +/* 00A498 70009898 8CA20008 */ lw $v0, 8($a1) +/* 00A49C 7000989C 00836821 */ addu $t5, $a0, $v1 +/* 00A4A0 700098A0 0044082B */ sltu $at, $v0, $a0 +/* 00A4A4 700098A4 50200006 */ beql $at, $zero, .L700098C0 +/* 00A4A8 700098A8 004D082B */ sltu $at, $v0, $t5 +/* 00A4AC 700098AC 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A4B0 700098B0 24060006 */ li $a2, 6 +.L700098B4: +/* 00A4B4 700098B4 1000FFFF */ b .L700098B4 +/* 00A4B8 700098B8 00000000 */ nop +/* 00A4BC 700098BC 004D082B */ sltu $at, $v0, $t5 +.L700098C0: +/* 00A4C0 700098C0 10200005 */ beqz $at, .L700098D8 +/* 00A4C4 700098C4 00837021 */ addu $t6, $a0, $v1 +/* 00A4C8 700098C8 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A4CC 700098CC 24060006 */ li $a2, 6 +.L700098D0: +/* 00A4D0 700098D0 1000FFFF */ b .L700098D0 +/* 00A4D4 700098D4 00000000 */ nop +.L700098D8: +/* 00A4D8 700098D8 ACAE0004 */ sw $t6, 4($a1) +/* 00A4DC 700098DC 24020001 */ li $v0, 1 +.L700098E0: +/* 00A4E0 700098E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A4E4 700098E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A4E8 700098E8 03E00008 */ jr $ra +/* 00A4EC 700098EC 00000000 */ nop +) +#endif + + + +/** + * A4F0 700098F0 + * V0=8 -- loop eight times, needlessly; fries AT,T6 + * used by "show mem use", step 1; probably originally listed all eight memory allocations + */ + +void nulled_mempLoopAllMemBanks(void) +{ + s32 bank; + for (bank = 1; bank < 7; bank = (bank + 1) & 0xff) + { + ; + }; +} + +/** + * A510 70009910 + * V0= total allocated size of bank A0 + * accepts: A0=bank# + */ +s32 mempGetBankSizeLeft(u8 bank) +{ + if (needmemallocation != 0) { + bank = 6; + } + if ((bank == 4) && (memory_bank_ptrs[4].bankstart == memory_bank_ptrs[4].bankend)) { + bank = 6; + } + return memory_bank_ptrs[bank].bankend - memory_bank_ptrs[bank].nextentry; +} + + + + + +/** + * A570 70009970 + * allocate A0 coded #bytes in bank + * accepts: A0=size/bank# entry (ssssssss ssssssss sssssssss sssssbbb) + */ + +u32 mempAllocPackedBytesInBank(u32 param_1) +{ + return mempAllocBytesInBank((param_1 >> 3),(param_1 & 7)); +} + + + + +/** + * A59C 7000999C + * reset memory bank A0 [0-6] + * copies base address for memory bank A0 to +4, fry +C + */ +void mempResetBank(u8 bank) +{ + memory_bank_ptrs[bank].data2 = 0; + memory_bank_ptrs[bank].nextentry = memory_bank_ptrs[bank].bankstart; +} + +/** + * A5C4 700099C4 + * accepts: A0=bank# + */ +void mempNullNextEntryInBank(u8 bank) +{ + nulled_mempLoopAllMemBanks(); + if (memory_bank_ptrs[bank].nextentry != 0) { + memory_bank_ptrs[bank].nextentry = 0; + } +} diff --git a/src/memp.h b/src/memp.h new file mode 100644 index 0000000..480d0fd --- /dev/null +++ b/src/memp.h @@ -0,0 +1,46 @@ +#ifndef _MEMP_H_ +#define _MEMP_H_ + +#include "ultra64.h" + +typedef struct s_mempBANK { + s32 bankstart; + s32 nextentry; + s32 bankend; + s32 data2; +} s_mempBANK; + +typedef struct s_mempMVALS { + u32 D_80024410; + u32 D_80024414; + u32 mf; + u32 D_8002441C; + u32 ml; + u32 D_80024424; + u32 me; + u32 D_8002442C; + u32 D_80024430; +} s_mempMVALS; + +typedef struct s_mempMEMSTARTS { + s32 bank1start; + s32 bank2start; + s32 bank3start; + s32 bank4start; + s32 bank5start; + s32 bank6start; + s32 bank7start; +} s_mempMEMSTARTS; + +void mempInitDebugNoticeList(void); +void mempCheckMemflagTokens(int bstart,int bsize); +void mempSetBankStarts(int *banks); +u32 mempAllocBytesInBank(u32 bytes,u8 bank); +u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank); +void nulled_mempLoopAllMemBanks(void); +s32 mempGetBankSizeLeft(u8 bank); +u32 mempAllocPackedBytesInBank(u32 param_1); +void mempResetBank(u8 bank); +void mempNullNextEntryInBank(u8 bank); + +#endif diff --git a/src/motor.c b/src/motor.c new file mode 100644 index 0000000..436cd0b --- /dev/null +++ b/src/motor.c @@ -0,0 +1,489 @@ +#include "ultra64.h" +//0x800655a0 +char _MotorStopData[256]; +//800656a0 +char _MotorStartData[256]; +//800657a0 +u8 _motorstopbuf[32]; +//800657c0 +u8 _motorstartbuf[32]; + + + + +#ifdef NONMATCHING +s32 osMotorStop(OSPfs *pfs) +{ + +} +#else +GLOBAL_ASM( +.text +glabel osMotorStop +/* 00D580 7000C980 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00D584 7000C984 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D588 7000C988 0C005798 */ jal __osSiGetAccess +/* 00D58C 7000C98C AFA40050 */ sw $a0, 0x50($sp) +/* 00D590 7000C990 8FAF0050 */ lw $t7, 0x50($sp) +/* 00D594 7000C994 240E0003 */ li $t6, 3 +/* 00D598 7000C998 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 00D59C 7000C99C A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) +/* 00D5A0 7000C9A0 8DF80008 */ lw $t8, 8($t7) +/* 00D5A4 7000C9A4 3C088006 */ lui $t0, %hi(_MotorStopData) +/* 00D5A8 7000C9A8 250855A0 */ addiu $t0, %lo(_MotorStopData) # addiu $t0, $t0, 0x55a0 +/* 00D5AC 7000C9AC 0018C980 */ sll $t9, $t8, 6 +/* 00D5B0 7000C9B0 03282821 */ addu $a1, $t9, $t0 +/* 00D5B4 7000C9B4 0C0057B4 */ jal __osSiRawStartDma +/* 00D5B8 7000C9B8 24040001 */ li $a0, 1 +/* 00D5BC 7000C9BC 8FA90050 */ lw $t1, 0x50($sp) +/* 00D5C0 7000C9C0 00002825 */ move $a1, $zero +/* 00D5C4 7000C9C4 24060001 */ li $a2, 1 +/* 00D5C8 7000C9C8 0C003774 */ jal osRecvMesg +/* 00D5CC 7000C9CC 8D240004 */ lw $a0, 4($t1) +/* 00D5D0 7000C9D0 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 00D5D4 7000C9D4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 00D5D8 7000C9D8 0C0057B4 */ jal __osSiRawStartDma +/* 00D5DC 7000C9DC 00002025 */ move $a0, $zero +/* 00D5E0 7000C9E0 8FAA0050 */ lw $t2, 0x50($sp) +/* 00D5E4 7000C9E4 00002825 */ move $a1, $zero +/* 00D5E8 7000C9E8 24060001 */ li $a2, 1 +/* 00D5EC 7000C9EC 0C003774 */ jal osRecvMesg +/* 00D5F0 7000C9F0 8D440004 */ lw $a0, 4($t2) +/* 00D5F4 7000C9F4 8FAB0050 */ lw $t3, 0x50($sp) +/* 00D5F8 7000C9F8 3C038006 */ lui $v1, %hi(__osPfsPifRam) +/* 00D5FC 7000C9FC 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 +/* 00D600 7000CA00 8D640008 */ lw $a0, 8($t3) +/* 00D604 7000CA04 27AC001C */ addiu $t4, $sp, 0x1c +/* 00D608 7000CA08 50800008 */ beql $a0, $zero, .L7000CA2C +/* 00D60C 7000CA0C 00607825 */ move $t7, $v1 +/* 00D610 7000CA10 18800005 */ blez $a0, .L7000CA28 +/* 00D614 7000CA14 00001025 */ move $v0, $zero +.L7000CA18: +/* 00D618 7000CA18 24420001 */ addiu $v0, $v0, 1 +/* 00D61C 7000CA1C 0044082A */ slt $at, $v0, $a0 +/* 00D620 7000CA20 1420FFFD */ bnez $at, .L7000CA18 +/* 00D624 7000CA24 24630001 */ addiu $v1, $v1, 1 +.L7000CA28: +/* 00D628 7000CA28 00607825 */ move $t7, $v1 +.L7000CA2C: +/* 00D62C 7000CA2C 246E0024 */ addiu $t6, $v1, 0x24 +.L7000CA30: +/* 00D630 7000CA30 89E10000 */ lwl $at, ($t7) +/* 00D634 7000CA34 99E10003 */ lwr $at, 3($t7) +/* 00D638 7000CA38 25EF000C */ addiu $t7, $t7, 0xc +/* 00D63C 7000CA3C 258C000C */ addiu $t4, $t4, 0xc +/* 00D640 7000CA40 AD81FFF4 */ sw $at, -0xc($t4) +/* 00D644 7000CA44 89E1FFF8 */ lwl $at, -8($t7) +/* 00D648 7000CA48 99E1FFFB */ lwr $at, -5($t7) +/* 00D64C 7000CA4C AD81FFF8 */ sw $at, -8($t4) +/* 00D650 7000CA50 89E1FFFC */ lwl $at, -4($t7) +/* 00D654 7000CA54 99E1FFFF */ lwr $at, -1($t7) +/* 00D658 7000CA58 15EEFFF5 */ bne $t7, $t6, .L7000CA30 +/* 00D65C 7000CA5C AD81FFFC */ sw $at, -4($t4) +/* 00D660 7000CA60 89E10000 */ lwl $at, ($t7) +/* 00D664 7000CA64 99E10003 */ lwr $at, 3($t7) +/* 00D668 7000CA68 AD810000 */ sw $at, ($t4) +/* 00D66C 7000CA6C 93A2001E */ lbu $v0, 0x1e($sp) +/* 00D670 7000CA70 93A80042 */ lbu $t0, 0x42($sp) +/* 00D674 7000CA74 305800C0 */ andi $t8, $v0, 0xc0 +/* 00D678 7000CA78 00182103 */ sra $a0, $t8, 4 +/* 00D67C 7000CA7C 14800004 */ bnez $a0, .L7000CA90 +/* 00D680 7000CA80 00000000 */ nop +/* 00D684 7000CA84 11000002 */ beqz $t0, .L7000CA90 +/* 00D688 7000CA88 00000000 */ nop +/* 00D68C 7000CA8C 24040004 */ li $a0, 4 +.L7000CA90: +/* 00D690 7000CA90 0C0057A9 */ jal __osSiRelAccess +/* 00D694 7000CA94 AFA40048 */ sw $a0, 0x48($sp) +/* 00D698 7000CA98 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D69C 7000CA9C 8FA20048 */ lw $v0, 0x48($sp) +/* 00D6A0 7000CAA0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00D6A4 7000CAA4 03E00008 */ jr $ra +/* 00D6A8 7000CAA8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 osMotorStart(OSPfs *pfs) +{ + +} +#else +GLOBAL_ASM( +.text +glabel osMotorStart +/* 00D6AC 7000CAAC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00D6B0 7000CAB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D6B4 7000CAB4 0C005798 */ jal __osSiGetAccess +/* 00D6B8 7000CAB8 AFA40050 */ sw $a0, 0x50($sp) +/* 00D6BC 7000CABC 8FAF0050 */ lw $t7, 0x50($sp) +/* 00D6C0 7000CAC0 240E0003 */ li $t6, 3 +/* 00D6C4 7000CAC4 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 00D6C8 7000CAC8 A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) +/* 00D6CC 7000CACC 8DF80008 */ lw $t8, 8($t7) +/* 00D6D0 7000CAD0 3C088006 */ lui $t0, %hi(_MotorStartData) +/* 00D6D4 7000CAD4 250856A0 */ addiu $t0, %lo(_MotorStartData) # addiu $t0, $t0, 0x56a0 +/* 00D6D8 7000CAD8 0018C980 */ sll $t9, $t8, 6 +/* 00D6DC 7000CADC 03282821 */ addu $a1, $t9, $t0 +/* 00D6E0 7000CAE0 0C0057B4 */ jal __osSiRawStartDma +/* 00D6E4 7000CAE4 24040001 */ li $a0, 1 +/* 00D6E8 7000CAE8 8FA90050 */ lw $t1, 0x50($sp) +/* 00D6EC 7000CAEC 00002825 */ move $a1, $zero +/* 00D6F0 7000CAF0 24060001 */ li $a2, 1 +/* 00D6F4 7000CAF4 0C003774 */ jal osRecvMesg +/* 00D6F8 7000CAF8 8D240004 */ lw $a0, 4($t1) +/* 00D6FC 7000CAFC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 00D700 7000CB00 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 00D704 7000CB04 0C0057B4 */ jal __osSiRawStartDma +/* 00D708 7000CB08 00002025 */ move $a0, $zero +/* 00D70C 7000CB0C 8FAA0050 */ lw $t2, 0x50($sp) +/* 00D710 7000CB10 00002825 */ move $a1, $zero +/* 00D714 7000CB14 24060001 */ li $a2, 1 +/* 00D718 7000CB18 0C003774 */ jal osRecvMesg +/* 00D71C 7000CB1C 8D440004 */ lw $a0, 4($t2) +/* 00D720 7000CB20 8FAB0050 */ lw $t3, 0x50($sp) +/* 00D724 7000CB24 3C038006 */ lui $v1, %hi(__osPfsPifRam) +/* 00D728 7000CB28 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 +/* 00D72C 7000CB2C 8D640008 */ lw $a0, 8($t3) +/* 00D730 7000CB30 27AC001C */ addiu $t4, $sp, 0x1c +/* 00D734 7000CB34 50800008 */ beql $a0, $zero, .L7000CB58 +/* 00D738 7000CB38 00607825 */ move $t7, $v1 +/* 00D73C 7000CB3C 18800005 */ blez $a0, .L7000CB54 +/* 00D740 7000CB40 00001025 */ move $v0, $zero +.L7000CB44: +/* 00D744 7000CB44 24420001 */ addiu $v0, $v0, 1 +/* 00D748 7000CB48 0044082A */ slt $at, $v0, $a0 +/* 00D74C 7000CB4C 1420FFFD */ bnez $at, .L7000CB44 +/* 00D750 7000CB50 24630001 */ addiu $v1, $v1, 1 +.L7000CB54: +/* 00D754 7000CB54 00607825 */ move $t7, $v1 +.L7000CB58: +/* 00D758 7000CB58 246E0024 */ addiu $t6, $v1, 0x24 +.L7000CB5C: +/* 00D75C 7000CB5C 89E10000 */ lwl $at, ($t7) +/* 00D760 7000CB60 99E10003 */ lwr $at, 3($t7) +/* 00D764 7000CB64 25EF000C */ addiu $t7, $t7, 0xc +/* 00D768 7000CB68 258C000C */ addiu $t4, $t4, 0xc +/* 00D76C 7000CB6C AD81FFF4 */ sw $at, -0xc($t4) +/* 00D770 7000CB70 89E1FFF8 */ lwl $at, -8($t7) +/* 00D774 7000CB74 99E1FFFB */ lwr $at, -5($t7) +/* 00D778 7000CB78 AD81FFF8 */ sw $at, -8($t4) +/* 00D77C 7000CB7C 89E1FFFC */ lwl $at, -4($t7) +/* 00D780 7000CB80 99E1FFFF */ lwr $at, -1($t7) +/* 00D784 7000CB84 15EEFFF5 */ bne $t7, $t6, .L7000CB5C +/* 00D788 7000CB88 AD81FFFC */ sw $at, -4($t4) +/* 00D78C 7000CB8C 89E10000 */ lwl $at, ($t7) +/* 00D790 7000CB90 99E10003 */ lwr $at, 3($t7) +/* 00D794 7000CB94 AD810000 */ sw $at, ($t4) +/* 00D798 7000CB98 93A2001E */ lbu $v0, 0x1e($sp) +/* 00D79C 7000CB9C 93A80042 */ lbu $t0, 0x42($sp) +/* 00D7A0 7000CBA0 240100EB */ li $at, 235 +/* 00D7A4 7000CBA4 305800C0 */ andi $t8, $v0, 0xc0 +/* 00D7A8 7000CBA8 00182103 */ sra $a0, $t8, 4 +/* 00D7AC 7000CBAC 14800004 */ bnez $a0, .L7000CBC0 +/* 00D7B0 7000CBB0 00000000 */ nop +/* 00D7B4 7000CBB4 11010002 */ beq $t0, $at, .L7000CBC0 +/* 00D7B8 7000CBB8 00000000 */ nop +/* 00D7BC 7000CBBC 24040004 */ li $a0, 4 +.L7000CBC0: +/* 00D7C0 7000CBC0 0C0057A9 */ jal __osSiRelAccess +/* 00D7C4 7000CBC4 AFA40048 */ sw $a0, 0x48($sp) +/* 00D7C8 7000CBC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D7CC 7000CBCC 8FA20048 */ lw $v0, 0x48($sp) +/* 00D7D0 7000CBD0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00D7D4 7000CBD4 03E00008 */ jr $ra +/* 00D7D8 7000CBD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void _MakeMotorData(int channel,u16 address,u8 *buffer,OSPifRam *mdata) +{ + +} +#else +GLOBAL_ASM( +.text +glabel _MakeMotorData +/* 00D7DC 7000CBDC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 00D7E0 7000CBE0 AFB00018 */ sw $s0, 0x18($sp) +/* 00D7E4 7000CBE4 00808025 */ move $s0, $a0 +/* 00D7E8 7000CBE8 AFBF001C */ sw $ra, 0x1c($sp) +/* 00D7EC 7000CBEC AFA5005C */ sw $a1, 0x5c($sp) +/* 00D7F0 7000CBF0 00E01825 */ move $v1, $a3 +/* 00D7F4 7000CBF4 00004025 */ move $t0, $zero +/* 00D7F8 7000CBF8 00E01025 */ move $v0, $a3 +.L7000CBFC: +/* 00D7FC 7000CBFC 25080001 */ addiu $t0, $t0, 1 +/* 00D800 7000CC00 2901000F */ slti $at, $t0, 0xf +/* 00D804 7000CC04 24420004 */ addiu $v0, $v0, 4 +/* 00D808 7000CC08 1420FFFC */ bnez $at, .L7000CBFC +/* 00D80C 7000CC0C AC40FFFC */ sw $zero, -4($v0) +/* 00D810 7000CC10 240E0001 */ li $t6, 1 +/* 00D814 7000CC14 ACEE003C */ sw $t6, 0x3c($a3) +/* 00D818 7000CC18 240F00FF */ li $t7, 255 +/* 00D81C 7000CC1C 24180023 */ li $t8, 35 +/* 00D820 7000CC20 24190001 */ li $t9, 1 +/* 00D824 7000CC24 24090003 */ li $t1, 3 +/* 00D828 7000CC28 A3AF002C */ sb $t7, 0x2c($sp) +/* 00D82C 7000CC2C A3B8002D */ sb $t8, 0x2d($sp) +/* 00D830 7000CC30 A3B9002E */ sb $t9, 0x2e($sp) +/* 00D834 7000CC34 A3A9002F */ sb $t1, 0x2f($sp) +/* 00D838 7000CC38 AFA60060 */ sw $a2, 0x60($sp) +/* 00D83C 7000CC3C AFA30054 */ sw $v1, 0x54($sp) +/* 00D840 7000CC40 0C0057E0 */ jal __osContAddressCrc +/* 00D844 7000CC44 97A4005E */ lhu $a0, 0x5e($sp) +/* 00D848 7000CC48 97AA005E */ lhu $t2, 0x5e($sp) +/* 00D84C 7000CC4C 240D00FF */ li $t5, 255 +/* 00D850 7000CC50 8FA30054 */ lw $v1, 0x54($sp) +/* 00D854 7000CC54 000A5940 */ sll $t3, $t2, 5 +/* 00D858 7000CC58 004B6025 */ or $t4, $v0, $t3 +/* 00D85C 7000CC5C A7AC0030 */ sh $t4, 0x30($sp) +/* 00D860 7000CC60 8FA60060 */ lw $a2, 0x60($sp) +/* 00D864 7000CC64 A3AD0052 */ sb $t5, 0x52($sp) +/* 00D868 7000CC68 27A2004C */ addiu $v0, $sp, 0x4c +/* 00D86C 7000CC6C 27A4002C */ addiu $a0, $sp, 0x2c +.L7000CC70: +/* 00D870 7000CC70 90CE0000 */ lbu $t6, ($a2) +/* 00D874 7000CC74 24840001 */ addiu $a0, $a0, 1 +/* 00D878 7000CC78 0082082B */ sltu $at, $a0, $v0 +/* 00D87C 7000CC7C 24C60001 */ addiu $a2, $a2, 1 +/* 00D880 7000CC80 1420FFFB */ bnez $at, .L7000CC70 +/* 00D884 7000CC84 A08E0005 */ sb $t6, 5($a0) +/* 00D888 7000CC88 12000012 */ beqz $s0, .L7000CCD4 +/* 00D88C 7000CC8C 27AF002C */ addiu $t7, $sp, 0x2c +/* 00D890 7000CC90 1A000010 */ blez $s0, .L7000CCD4 +/* 00D894 7000CC94 00004025 */ move $t0, $zero +/* 00D898 7000CC98 32040003 */ andi $a0, $s0, 3 +/* 00D89C 7000CC9C 10800006 */ beqz $a0, .L7000CCB8 +/* 00D8A0 7000CCA0 00801025 */ move $v0, $a0 +.L7000CCA4: +/* 00D8A4 7000CCA4 25080001 */ addiu $t0, $t0, 1 +/* 00D8A8 7000CCA8 A0600000 */ sb $zero, ($v1) +/* 00D8AC 7000CCAC 1448FFFD */ bne $v0, $t0, .L7000CCA4 +/* 00D8B0 7000CCB0 24630001 */ addiu $v1, $v1, 1 +/* 00D8B4 7000CCB4 11100007 */ beq $t0, $s0, .L7000CCD4 +.L7000CCB8: +/* 00D8B8 7000CCB8 25080004 */ addiu $t0, $t0, 4 +/* 00D8BC 7000CCBC A0600001 */ sb $zero, 1($v1) +/* 00D8C0 7000CCC0 A0600002 */ sb $zero, 2($v1) +/* 00D8C4 7000CCC4 A0600003 */ sb $zero, 3($v1) +/* 00D8C8 7000CCC8 24630004 */ addiu $v1, $v1, 4 +/* 00D8CC 7000CCCC 1510FFFA */ bne $t0, $s0, .L7000CCB8 +/* 00D8D0 7000CCD0 A060FFFC */ sb $zero, -4($v1) +.L7000CCD4: +/* 00D8D4 7000CCD4 00604825 */ move $t1, $v1 +/* 00D8D8 7000CCD8 25F90024 */ addiu $t9, $t7, 0x24 +.L7000CCDC: +/* 00D8DC 7000CCDC 8DE10000 */ lw $at, ($t7) +/* 00D8E0 7000CCE0 25EF000C */ addiu $t7, $t7, 0xc +/* 00D8E4 7000CCE4 2529000C */ addiu $t1, $t1, 0xc +/* 00D8E8 7000CCE8 A921FFF4 */ swl $at, -0xc($t1) +/* 00D8EC 7000CCEC B921FFF7 */ swr $at, -9($t1) +/* 00D8F0 7000CCF0 8DE1FFF8 */ lw $at, -8($t7) +/* 00D8F4 7000CCF4 A921FFF8 */ swl $at, -8($t1) +/* 00D8F8 7000CCF8 B921FFFB */ swr $at, -5($t1) +/* 00D8FC 7000CCFC 8DE1FFFC */ lw $at, -4($t7) +/* 00D900 7000CD00 A921FFFC */ swl $at, -4($t1) +/* 00D904 7000CD04 15F9FFF5 */ bne $t7, $t9, .L7000CCDC +/* 00D908 7000CD08 B921FFFF */ swr $at, -1($t1) +/* 00D90C 7000CD0C 8DE10000 */ lw $at, ($t7) +/* 00D910 7000CD10 240A00FE */ li $t2, 254 +/* 00D914 7000CD14 24630028 */ addiu $v1, $v1, 0x28 +/* 00D918 7000CD18 A9210000 */ swl $at, ($t1) +/* 00D91C 7000CD1C B9210003 */ swr $at, 3($t1) +/* 00D920 7000CD20 A06A0000 */ sb $t2, ($v1) +/* 00D924 7000CD24 8FBF001C */ lw $ra, 0x1c($sp) +/* 00D928 7000CD28 8FB00018 */ lw $s0, 0x18($sp) +/* 00D92C 7000CD2C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 00D930 7000CD30 03E00008 */ jr $ra +/* 00D934 7000CD34 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 osMotorInit(OSMesgQueue *mq,OSPfs *pfs,int channel) { + s32 sp2C; + ? sp30; + ? sp50; + u32 temp_v0; + ? temp_ret; + void *temp_v1; + s32 temp_v0_2; + + // Node 0 + arg1->unk4 = arg0; + arg1->unk8 = arg2; + *arg1 = 0; + arg1->unk65 = (u8)0x80; + // Node 1 + temp_v0 = (&sp30 + 1); + temp_v0->unk-1 = (u8)0x80; + if (temp_v0 < &sp50) + { + goto loop_1; + } + // Node 2 + temp_ret = __osContRamWrite(arg2, 0x400, &sp30, 0); + if (temp_ret == 2) + { + // Node 3 + __osContRamWrite(arg16, arg2, 0x400, &sp30, 0); + } + // Node 4 + if (temp_ret != 0) + { + // Node 5 + } + else + { + // Node 6 + if (__osContRamRead(arg16, arg2, 0x400, &sp30) != 0) + { + // Node 7 + return; + // (possible return value: __osContRamRead(arg16, arg2, 0x400, &sp30)) + } + // Node 8 + if (sp4F != 0x80) + { + // Node 9 + } + else + { + // Node 10 + // Node 11 + temp_v1 = (&_motorstopbuf + 4); + _motorstartbuf.unk1 = (u8)1; + temp_v1->unk-3 = (u8)0; + _motorstartbuf.unk2 = (u8)1; + temp_v1->unk-2 = (u8)0; + _motorstartbuf.unk3 = (u8)1; + temp_v1->unk-1 = (u8)0; + (&_motorstartbuf + 4)->unk-4 = (u8)1; + temp_v1->unk-4 = (u8)0; + if (temp_v1 != &_motorstartbuf) + { + goto loop_11; + } + // Node 12 + temp_v0_2 = (arg2 << 6); + sp2C = temp_v0_2; + _MakeMotorData(arg2, 0x600, &_motorstartbuf, (temp_v0_2 + &_MotorStartData)); + _MakeMotorData(arg2, 0x600, &_motorstopbuf, (sp2C + &_MotorStopData)); + } + } + // Node 13 + return; + // (possible return value: 0) +} +#else +GLOBAL_ASM( +.text +glabel osMotorInit +/* 00D938 7000CD38 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 00D93C 7000CD3C AFB00020 */ sw $s0, 0x20($sp) +/* 00D940 7000CD40 AFBF0024 */ sw $ra, 0x24($sp) +/* 00D944 7000CD44 24070080 */ li $a3, 128 +/* 00D948 7000CD48 00C08025 */ move $s0, $a2 +/* 00D94C 7000CD4C ACA40004 */ sw $a0, 4($a1) +/* 00D950 7000CD50 ACA60008 */ sw $a2, 8($a1) +/* 00D954 7000CD54 ACA00000 */ sw $zero, ($a1) +/* 00D958 7000CD58 A0A70065 */ sb $a3, 0x65($a1) +/* 00D95C 7000CD5C 27A20030 */ addiu $v0, $sp, 0x30 +/* 00D960 7000CD60 27A30050 */ addiu $v1, $sp, 0x50 +.L7000CD64: +/* 00D964 7000CD64 24420001 */ addiu $v0, $v0, 1 +/* 00D968 7000CD68 0043082B */ sltu $at, $v0, $v1 +/* 00D96C 7000CD6C 1420FFFD */ bnez $at, .L7000CD64 +/* 00D970 7000CD70 A047FFFF */ sb $a3, -1($v0) +/* 00D974 7000CD74 02002825 */ move $a1, $s0 +/* 00D978 7000CD78 24060400 */ li $a2, 1024 +/* 00D97C 7000CD7C 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D980 7000CD80 AFA00010 */ sw $zero, 0x10($sp) +/* 00D984 7000CD84 0C005840 */ jal __osContRamWrite +/* 00D988 7000CD88 AFA40058 */ sw $a0, 0x58($sp) +/* 00D98C 7000CD8C 24010002 */ li $at, 2 +/* 00D990 7000CD90 14410008 */ bne $v0, $at, .L7000CDB4 +/* 00D994 7000CD94 00401825 */ move $v1, $v0 +/* 00D998 7000CD98 8FA40058 */ lw $a0, 0x58($sp) +/* 00D99C 7000CD9C 02002825 */ move $a1, $s0 +/* 00D9A0 7000CDA0 24060400 */ li $a2, 1024 +/* 00D9A4 7000CDA4 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D9A8 7000CDA8 0C005840 */ jal __osContRamWrite +/* 00D9AC 7000CDAC AFA00010 */ sw $zero, 0x10($sp) +/* 00D9B0 7000CDB0 00401825 */ move $v1, $v0 +.L7000CDB4: +/* 00D9B4 7000CDB4 10400003 */ beqz $v0, .L7000CDC4 +/* 00D9B8 7000CDB8 8FA40058 */ lw $a0, 0x58($sp) +/* 00D9BC 7000CDBC 10000033 */ b .L7000CE8C +/* 00D9C0 7000CDC0 00601025 */ move $v0, $v1 +.L7000CDC4: +/* 00D9C4 7000CDC4 02002825 */ move $a1, $s0 +/* 00D9C8 7000CDC8 24060400 */ li $a2, 1024 +/* 00D9CC 7000CDCC 0C00592C */ jal __osContRamRead +/* 00D9D0 7000CDD0 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D9D4 7000CDD4 10400003 */ beqz $v0, .L7000CDE4 +/* 00D9D8 7000CDD8 93AE004F */ lbu $t6, 0x4f($sp) +/* 00D9DC 7000CDDC 1000002C */ b .L7000CE90 +/* 00D9E0 7000CDE0 8FBF0024 */ lw $ra, 0x24($sp) +.L7000CDE4: +/* 00D9E4 7000CDE4 24010080 */ li $at, 128 +/* 00D9E8 7000CDE8 11C10003 */ beq $t6, $at, .L7000CDF8 +/* 00D9EC 7000CDEC 3C048006 */ lui $a0, %hi(_motorstartbuf) +/* 00D9F0 7000CDF0 10000026 */ b .L7000CE8C +/* 00D9F4 7000CDF4 2402000B */ li $v0, 11 +.L7000CDF8: +/* 00D9F8 7000CDF8 3C038006 */ lui $v1, %hi(_motorstopbuf) +/* 00D9FC 7000CDFC 3C058006 */ lui $a1, %hi(_motorstartbuf) +/* 00DA00 7000CE00 24A557C0 */ addiu $a1, %lo(_motorstartbuf) # addiu $a1, $a1, 0x57c0 +/* 00DA04 7000CE04 246357A0 */ addiu $v1, %lo(_motorstopbuf) # addiu $v1, $v1, 0x57a0 +/* 00DA08 7000CE08 248457C0 */ addiu $a0, %lo(_motorstartbuf) # addiu $a0, $a0, 0x57c0 +/* 00DA0C 7000CE0C 24020001 */ li $v0, 1 +.L7000CE10: +/* 00DA10 7000CE10 24630004 */ addiu $v1, $v1, 4 +/* 00DA14 7000CE14 A0820001 */ sb $v0, 1($a0) +/* 00DA18 7000CE18 A060FFFD */ sb $zero, -3($v1) +/* 00DA1C 7000CE1C A0820002 */ sb $v0, 2($a0) +/* 00DA20 7000CE20 A060FFFE */ sb $zero, -2($v1) +/* 00DA24 7000CE24 A0820003 */ sb $v0, 3($a0) +/* 00DA28 7000CE28 A060FFFF */ sb $zero, -1($v1) +/* 00DA2C 7000CE2C 24840004 */ addiu $a0, $a0, 4 +/* 00DA30 7000CE30 A082FFFC */ sb $v0, -4($a0) +/* 00DA34 7000CE34 1465FFF6 */ bne $v1, $a1, .L7000CE10 +/* 00DA38 7000CE38 A060FFFC */ sb $zero, -4($v1) +/* 00DA3C 7000CE3C 3C0F8006 */ lui $t7, %hi(_MotorStartData) +/* 00DA40 7000CE40 25EF56A0 */ addiu $t7, %lo(_MotorStartData) # addiu $t7, $t7, 0x56a0 +/* 00DA44 7000CE44 3C068006 */ lui $a2, %hi(_motorstartbuf) +/* 00DA48 7000CE48 00101180 */ sll $v0, $s0, 6 +/* 00DA4C 7000CE4C 004F3821 */ addu $a3, $v0, $t7 +/* 00DA50 7000CE50 AFA2002C */ sw $v0, 0x2c($sp) +/* 00DA54 7000CE54 24C657C0 */ addiu $a2, %lo(_motorstartbuf) # addiu $a2, $a2, 0x57c0 +/* 00DA58 7000CE58 02002025 */ move $a0, $s0 +/* 00DA5C 7000CE5C 0C0032F7 */ jal _MakeMotorData +/* 00DA60 7000CE60 24050600 */ li $a1, 1536 +/* 00DA64 7000CE64 8FA2002C */ lw $v0, 0x2c($sp) +/* 00DA68 7000CE68 3C188006 */ lui $t8, %hi(_MotorStopData) +/* 00DA6C 7000CE6C 271855A0 */ addiu $t8, %lo(_MotorStopData) # addiu $t8, $t8, 0x55a0 +/* 00DA70 7000CE70 3C068006 */ lui $a2, %hi(_motorstopbuf) +/* 00DA74 7000CE74 24C657A0 */ addiu $a2, %lo(_motorstopbuf) # addiu $a2, $a2, 0x57a0 +/* 00DA78 7000CE78 02002025 */ move $a0, $s0 +/* 00DA7C 7000CE7C 24050600 */ li $a1, 1536 +/* 00DA80 7000CE80 0C0032F7 */ jal _MakeMotorData +/* 00DA84 7000CE84 00583821 */ addu $a3, $v0, $t8 +/* 00DA88 7000CE88 00001025 */ move $v0, $zero +.L7000CE8C: +/* 00DA8C 7000CE8C 8FBF0024 */ lw $ra, 0x24($sp) +.L7000CE90: +/* 00DA90 7000CE90 8FB00020 */ lw $s0, 0x20($sp) +/* 00DA94 7000CE94 27BD0058 */ addiu $sp, $sp, 0x58 +/* 00DA98 7000CE98 03E00008 */ jr $ra +/* 00DA9C 7000CE9C 00000000 */ nop +) +#endif diff --git a/src/music.c b/src/music.c new file mode 100644 index 0000000..b68f55d --- /dev/null +++ b/src/music.c @@ -0,0 +1,2138 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "snd.h" + +/** + * @file music.c + * This file contains code to handle music. + */ + +s32 music_unused = 0; +s32 music1_track_num = 0; +u16 music1len = 0x7FFF; +s32 music2_track_num = 0; +u16 music2len = 0x7FFF; +s32 music3_track_num = 0; +u16 music3len = 0x7FFF; +s32 music1_playing = 0; +s32 music2_playing = 0; +s32 music3_playing = 0; +s16 music_tempo_array[] = { +0x6665,0x7332,0x7332,0x7998,0x7332,0x5998,0x6665,0x6665,0x6665,0x6665,0x7332, +0x6665,0x7332,0x6665,0x6665,0x7332,0x7332,0x6665,0x3FFF,0x6665,0x6665, +0x3FFF,0x6665,0x6665,0x6665,0x6665,0x6665,0x7998,0x6665,0x5998,0x6665, +0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x5998,0x6665,0x3332,0x6665, +0x7332,0x7332,0x5998,0x7332,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665, +0x6665,0x6CCB,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x7332, +0x6665,0x7332,0x7998,0xFFFF }; + + + + +/*not sure why this is called hp, maybe for heap? */ +u32 hp[4]; +u32 *ptr_sfx_buf; +s32 D_80063724; +s32 seqp_1; +s32 seqp_2; +s32 seqp_3; +void *ptr_musicdatatable; + +char D_80063738[0x80]; +char D_800637B8[0x7E]; +s16 D_80063836; +s32 D_80063838; +s32 D_8006383C; +s32 D_80063840; +s16 musicTrack1_length; +s16 D_80063846; +s16 D_80063848; +s16 music1_length; +s16 music2_length; +s16 music3_length; +s32 music1_rate; +s32 music2_rate; +s32 music3_rate; +s32 D_8006385C; +char D_80063860[0xF8]; +char D_80063958[0xF8]; +char D_80063A50[0x100]; +char D_80063B50[0x54]; +s32 D_80063BA4; +s32 D_80063BA8; + + + + +/** + * 75F0 700069F0 + */ +#ifdef NONMATCHING +s32 audio_related(void *arg0, s32 arg1) { + // Node 0 + if (*arg0 > 0) + { + loop_1: + // Node 1 + (arg0 + 8)->unk-4 = (s32) (arg0->unk4 + arg1); + if ((0 + 1) < *arg0) + { + goto loop_1; + } + } + // (possible return value: 0) +} + +#else +GLOBAL_ASM( +.text +glabel audio_related +/* 0075F0 700069F0 948E0000 */ lhu $t6, ($a0) +/* 0075F4 700069F4 00001025 */ move $v0, $zero +/* 0075F8 700069F8 00801825 */ move $v1, $a0 +/* 0075FC 700069FC 19C0000A */ blez $t6, .L70006A28 +/* 007600 70006A00 00000000 */ nop +/* 007604 70006A04 8C6F0004 */ lw $t7, 4($v1) +.L70006A08: +/* 007608 70006A08 24420001 */ addiu $v0, $v0, 1 +/* 00760C 70006A0C 24630008 */ addiu $v1, $v1, 8 +/* 007610 70006A10 01E5C021 */ addu $t8, $t7, $a1 +/* 007614 70006A14 AC78FFFC */ sw $t8, -4($v1) +/* 007618 70006A18 94990000 */ lhu $t9, ($a0) +/* 00761C 70006A1C 0059082A */ slt $at, $v0, $t9 +/* 007620 70006A20 5420FFF9 */ bnezl $at, .L70006A08 +/* 007624 70006A24 8C6F0004 */ lw $t7, 4($v1) +.L70006A28: +/* 007628 70006A28 03E00008 */ jr $ra +/* 00762C 70006A2C 00000000 */ nop +) +#endif + + +/** + * 7630 70006A30 + * loads sound and music banks into memory segment 6 + */ +#ifdef NONMATCHING +void setupaudio(void) { + s32 sp38; + s32 sp40; + ?32 sp50; + ?32 sp54; + s8 sp58; + ?32 sp60; + ?32 sp64; + ?32 sp68; + ?32 sp6C; + ?32 sp70; + s8 sp74; + ?32 sp7C; + ?32 sp80; + ?32 sp84; + ?32 sp88; + ?32 sp8C; + s8 sp90; + ?32 sp98; + ?32 sp9C; + ?32 spA0; + ?32 spA4; + ?32 spA8; + ?32 spAC; + ?32 spB4; + ?32 spBC; + s8 spC0; + s32 spCC; + s32 spD4; + ?32 spD8; + ?32 spDC; + ?32 spE0; + ? temp_ret; + u32 temp_v1; + s32 temp_v0; + ? temp_ret_2; + s32 temp_v0_2; + ? temp_ret_3; + ? temp_ret_4; + s32 temp_v1_2; + ? temp_ret_5; + ? temp_ret_6; + s16 temp_t4; + void *temp_a0; + void *temp_a1; + s32 temp_v0_3; + u32 phi_v1; + void *phi_a0; + void *phi_v1_2; + void *phi_a1; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + temp_ret = mempAllocBytesInBank(0x2e000, 6); + phi_v1 = temp_ret; +loop_2: + // Node 2 + temp_v1 = (phi_v1 + 1); + temp_v1->unk-1 = (u8)0; + phi_v1 = temp_v1; + if (temp_v1 < (u32) (temp_ret + 0x2e000)) + { + goto loop_2; + } + // Node 3 + alHeapInit(&hp, temp_ret, 0x2e000); + temp_v0 = (&_sfxtblSegmentRomStart - &_sfxctlSegmentRomStart); + sp38 = temp_v0; + temp_ret_2 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0); + spD4 = temp_ret_2; + romCopy(temp_ret_2, &_sfxctlSegmentRomStart, sp38); + alBnkfNew(spD4, &_sfxtblSegmentRomStart); + temp_v0_2 = (&_instrumentstblSegmentRomStart - &_instrumentsctlSegmentRomStart); + sp38 = temp_v0_2; + ptr_sfx_buf = (?32) spD4->unk4; + temp_ret_3 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0_2); + spCC = temp_ret_3; + romCopy(temp_ret_3, &_instrumentsctlSegmentRomStart, sp38); + alBnkfNew(spCC, &_instrumentstblSegmentRomStart); + D_80063724 = (?32) spCC->unk4; + temp_ret_4 = alHeapDBAlloc(0, 0, &hp, 1, 0x10); + ptr_musicdatatable = temp_ret_4; + romCopy(temp_ret_4, &_musicsampletblSegmentRomStart, 0x10); + temp_v1_2 = ((*ptr_musicdatatable * 8) + 4); + sp40 = temp_v1_2; + temp_ret_5 = alHeapDBAlloc(0, 0, &hp, 1, temp_v1_2); + ptr_musicdatatable = temp_ret_5; + romCopy(temp_ret_5, sp38, (((temp_v1_2 + 0xf) | 0xf) ^ 0xf), &ptr_musicdatatable); + audio_related(ptr_musicdatatable, &_musicsampletblSegmentRomStart); + D_80063838 = alHeapDBAlloc(0, 0, &hp, 1, 0x18c8); + temp_ret_6 = alHeapDBAlloc(0, 0, &hp, 1, 0x1770); + D_8006383C = temp_ret_6; + D_80063840 = (s32) (temp_ret_6 + 0x7d0); + phi_a0 = (void *) ptr_musicdatatable; + phi_v1_2 = &D_80063738; + phi_a1 = &D_800637B8; +loop_4: + // Node 4 + temp_t4 = phi_a0->unk8; + temp_a0 = (phi_a0 + 8); + temp_a1 = (phi_a1 + 2); + *phi_v1_2 = temp_t4; + temp_v0_3 = (temp_t4 & 0xffff); + temp_a1->unk-2 = (s16) temp_a0->unk2; + if ((temp_v0_3 & 1) != 0) + { + // Node 5 + *phi_v1_2 = (s16) (temp_v0_3 + 1); + } + // Node 6 + phi_a0 = temp_a0; + phi_v1_2 = (phi_v1_2 + 2); + phi_a1 = temp_a1; + if (temp_a1 != &D_80063836) + { + goto loop_4; + } + // Node 7 + spA4 = 0; + spA8 = 0x18; + spAC = 0x80; + spB4 = 0; + spC0 = (u8)6; + spBC = 0; + amCreateAudioMgr(&spA4, temp_a1, &D_80063836, &D_8006383C); + + sp88 = 0x10; + sp8C = 0x40; + sp90 = (u8)0x10; + sp98 = 0; + sp9C = 0; + spA0 = 0; + + sp6C = 0x10; + sp70 = 0x40; + sp74 = (u8)0x10; + sp7C = 0; + sp80 = 0; + sp84 = 0; + + sp50 = 0x10; + sp54 = 0x40; + sp58 = (u8)0x10; + sp60 = 0; + sp64 = 0; + sp68 = 0; + seqp_1 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + seqp_2 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + seqp_3 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + alCSPNew(seqp_1, &sp88); + alSeqpSetBank(seqp_1, D_80063724); + alCSPNew(seqp_2, &sp6C); + alSeqpSetBank(seqp_2, D_80063724); + alCSPNew(seqp_3, &sp50); + alSeqpSetBank(seqp_3, D_80063724); + spDC = 0x40; + spD8 = 0x40; + spE0 = 8; + sfx_c_70007B20(&spD8); + startaudiThread(); + } + // Node 8 + return; +} +#else +GLOBAL_ASM( +.text +glabel setupaudio +/* 007630 70006A30 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007634 70006A34 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007638 70006A38 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 00763C 70006A3C AFBF0024 */ sw $ra, 0x24($sp) +/* 007640 70006A40 15C00109 */ bnez $t6, .L70006E68 +/* 007644 70006A44 AFB00020 */ sw $s0, 0x20($sp) +/* 007648 70006A48 3C040002 */ lui $a0, (0x0002E000 >> 16) # lui $a0, 2 +/* 00764C 70006A4C 3484E000 */ ori $a0, (0x0002E000 & 0xFFFF) # ori $a0, $a0, 0xe000 +/* 007650 70006A50 0C0025C8 */ jal mempAllocBytesInBank +/* 007654 70006A54 24050006 */ li $a1, 6 +/* 007658 70006A58 3C010002 */ lui $at, (0x0002E000 >> 16) # lui $at, 2 +/* 00765C 70006A5C 3421E000 */ ori $at, (0x0002E000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 007660 70006A60 00401825 */ move $v1, $v0 +/* 007664 70006A64 00402825 */ move $a1, $v0 +/* 007668 70006A68 00412021 */ addu $a0, $v0, $at +.L70006A6C: +/* 00766C 70006A6C 24630001 */ addiu $v1, $v1, 1 +/* 007670 70006A70 0064082B */ sltu $at, $v1, $a0 +/* 007674 70006A74 1420FFFD */ bnez $at, .L70006A6C +/* 007678 70006A78 A060FFFF */ sb $zero, -1($v1) +/* 00767C 70006A7C 3C108006 */ lui $s0, %hi(hp) +/* 007680 70006A80 26103710 */ addiu $s0, %lo(hp) # addiu $s0, $s0, 0x3710 +/* 007684 70006A84 3C060002 */ lui $a2, (0x0002E000 >> 16) # lui $a2, 2 +/* 007688 70006A88 34C6E000 */ ori $a2, (0x0002E000 & 0xFFFF) # ori $a2, $a2, 0xe000 +/* 00768C 70006A8C 0C00434C */ jal alHeapInit +/* 007690 70006A90 02002025 */ move $a0, $s0 +/* 007694 70006A94 3C0F002F */ lui $t7, %hi(_sfxtblSegmentRomStart) # $t7, 0x2f +/* 007698 70006A98 3C18002F */ lui $t8, %hi(_sfxctlSegmentRomStart) # $t8, 0x2f +/* 00769C 70006A9C 2718BDE0 */ addiu $t8, %lo(_sfxctlSegmentRomStart) # addiu $t8, $t8, -0x4220 +/* 0076A0 70006AA0 25EF19A0 */ addiu $t7, %lo(_sfxtblSegmentRomStart) # addiu $t7, $t7, 0x19a0 +/* 0076A4 70006AA4 01F81023 */ subu $v0, $t7, $t8 +/* 0076A8 70006AA8 AFA20010 */ sw $v0, 0x10($sp) +/* 0076AC 70006AAC AFA20038 */ sw $v0, 0x38($sp) +/* 0076B0 70006AB0 00002025 */ move $a0, $zero +/* 0076B4 70006AB4 00002825 */ move $a1, $zero +/* 0076B8 70006AB8 02003025 */ move $a2, $s0 +/* 0076BC 70006ABC 0C003AD4 */ jal alHeapDBAlloc +/* 0076C0 70006AC0 24070001 */ li $a3, 1 +/* 0076C4 70006AC4 3C05002F */ lui $a1, %hi(_sfxctlSegmentRomStart) # $a1, 0x2f +/* 0076C8 70006AC8 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0076CC 70006ACC 24A5BDE0 */ addiu $a1, %lo(_sfxctlSegmentRomStart) # addiu $a1, $a1, -0x4220 +/* 0076D0 70006AD0 00402025 */ move $a0, $v0 +/* 0076D4 70006AD4 0C001707 */ jal romCopy +/* 0076D8 70006AD8 8FA60038 */ lw $a2, 0x38($sp) +/* 0076DC 70006ADC 3C05002F */ lui $a1, %hi(_sfxtblSegmentRomStart) # $a1, 0x2f +/* 0076E0 70006AE0 24A519A0 */ addiu $a1, %lo(_sfxtblSegmentRomStart) # addiu $a1, $a1, 0x19a0 +/* 0076E4 70006AE4 0C00439D */ jal alBnkfNew +/* 0076E8 70006AE8 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0076EC 70006AEC 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0076F0 70006AF0 3C09003C */ lui $t1, %hi(_instrumentstblSegmentRomStart) # $t1, 0x3c +/* 0076F4 70006AF4 3C0A003B */ lui $t2, %hi(_instrumentsctlSegmentRomStart) # $t2, 0x3b +/* 0076F8 70006AF8 8F280004 */ lw $t0, 4($t9) +/* 0076FC 70006AFC 254A4450 */ addiu $t2, %lo(_instrumentsctlSegmentRomStart) # addiu $t2, $t2, 0x4450 +/* 007700 70006B00 252987F0 */ addiu $t1, %lo(_instrumentstblSegmentRomStart) # addiu $t1, $t1, -0x7810 +/* 007704 70006B04 3C018006 */ lui $at, %hi(ptr_sfx_buf) +/* 007708 70006B08 012A1023 */ subu $v0, $t1, $t2 +/* 00770C 70006B0C AFA20010 */ sw $v0, 0x10($sp) +/* 007710 70006B10 AFA20038 */ sw $v0, 0x38($sp) +/* 007714 70006B14 00002025 */ move $a0, $zero +/* 007718 70006B18 00002825 */ move $a1, $zero +/* 00771C 70006B1C 02003025 */ move $a2, $s0 +/* 007720 70006B20 24070001 */ li $a3, 1 +/* 007724 70006B24 0C003AD4 */ jal alHeapDBAlloc +/* 007728 70006B28 AC283720 */ sw $t0, %lo(ptr_sfx_buf)($at) +/* 00772C 70006B2C 3C05003B */ lui $a1, %hi(_instrumentsctlSegmentRomStart) # $a1, 0x3b +/* 007730 70006B30 AFA200CC */ sw $v0, 0xcc($sp) +/* 007734 70006B34 24A54450 */ addiu $a1, %lo(_instrumentsctlSegmentRomStart) # addiu $a1, $a1, 0x4450 +/* 007738 70006B38 00402025 */ move $a0, $v0 +/* 00773C 70006B3C 0C001707 */ jal romCopy +/* 007740 70006B40 8FA60038 */ lw $a2, 0x38($sp) +/* 007744 70006B44 3C05003C */ lui $a1, %hi(_instrumentstblSegmentRomStart) # $a1, 0x3c +/* 007748 70006B48 24A587F0 */ addiu $a1, %lo(_instrumentstblSegmentRomStart) # addiu $a1, $a1, -0x7810 +/* 00774C 70006B4C 0C00439D */ jal alBnkfNew +/* 007750 70006B50 8FA400CC */ lw $a0, 0xcc($sp) +/* 007754 70006B54 8FAB00CC */ lw $t3, 0xcc($sp) +/* 007758 70006B58 3C018006 */ lui $at, %hi(D_80063724) +/* 00775C 70006B5C 240D0010 */ li $t5, 16 +/* 007760 70006B60 8D6C0004 */ lw $t4, 4($t3) +/* 007764 70006B64 AFAD0010 */ sw $t5, 0x10($sp) +/* 007768 70006B68 00002025 */ move $a0, $zero +/* 00776C 70006B6C 00002825 */ move $a1, $zero +/* 007770 70006B70 02003025 */ move $a2, $s0 +/* 007774 70006B74 24070001 */ li $a3, 1 +/* 007778 70006B78 0C003AD4 */ jal alHeapDBAlloc +/* 00777C 70006B7C AC2C3724 */ sw $t4, %lo(D_80063724)($at) +/* 007780 70006B80 3C038006 */ lui $v1, %hi(ptr_musicdatatable) +/* 007784 70006B84 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 +/* 007788 70006B88 24633734 */ addiu $v1, %lo(ptr_musicdatatable) # addiu $v1, $v1, 0x3734 +/* 00778C 70006B8C 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 +/* 007790 70006B90 AC620000 */ sw $v0, ($v1) +/* 007794 70006B94 AFA50038 */ sw $a1, 0x38($sp) +/* 007798 70006B98 00402025 */ move $a0, $v0 +/* 00779C 70006B9C 0C001707 */ jal romCopy +/* 0077A0 70006BA0 24060010 */ li $a2, 16 +/* 0077A4 70006BA4 3C0E8006 */ lui $t6, %hi(ptr_musicdatatable) +/* 0077A8 70006BA8 8DCE3734 */ lw $t6, %lo(ptr_musicdatatable)($t6) +/* 0077AC 70006BAC 00002025 */ move $a0, $zero +/* 0077B0 70006BB0 00002825 */ move $a1, $zero +/* 0077B4 70006BB4 95C30000 */ lhu $v1, ($t6) +/* 0077B8 70006BB8 02003025 */ move $a2, $s0 +/* 0077BC 70006BBC 24070001 */ li $a3, 1 +/* 0077C0 70006BC0 000378C0 */ sll $t7, $v1, 3 +/* 0077C4 70006BC4 25E30004 */ addiu $v1, $t7, 4 +/* 0077C8 70006BC8 AFA30010 */ sw $v1, 0x10($sp) +/* 0077CC 70006BCC 0C003AD4 */ jal alHeapDBAlloc +/* 0077D0 70006BD0 AFA30040 */ sw $v1, 0x40($sp) +/* 0077D4 70006BD4 8FA30040 */ lw $v1, 0x40($sp) +/* 0077D8 70006BD8 3C078006 */ lui $a3, %hi(ptr_musicdatatable) +/* 0077DC 70006BDC 24E73734 */ addiu $a3, %lo(ptr_musicdatatable) # addiu $a3, $a3, 0x3734 +/* 0077E0 70006BE0 2466000F */ addiu $a2, $v1, 0xf +/* 0077E4 70006BE4 34D8000F */ ori $t8, $a2, 0xf +/* 0077E8 70006BE8 ACE20000 */ sw $v0, ($a3) +/* 0077EC 70006BEC 3B06000F */ xori $a2, $t8, 0xf +/* 0077F0 70006BF0 00402025 */ move $a0, $v0 +/* 0077F4 70006BF4 0C001707 */ jal romCopy +/* 0077F8 70006BF8 8FA50038 */ lw $a1, 0x38($sp) +/* 0077FC 70006BFC 3C048006 */ lui $a0, %hi(ptr_musicdatatable) +/* 007800 70006C00 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 +/* 007804 70006C04 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 +/* 007808 70006C08 0C001A7C */ jal audio_related +/* 00780C 70006C0C 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) +/* 007810 70006C10 240818C8 */ li $t0, 6344 +/* 007814 70006C14 AFA80010 */ sw $t0, 0x10($sp) +/* 007818 70006C18 00002025 */ move $a0, $zero +/* 00781C 70006C1C 00002825 */ move $a1, $zero +/* 007820 70006C20 02003025 */ move $a2, $s0 +/* 007824 70006C24 0C003AD4 */ jal alHeapDBAlloc +/* 007828 70006C28 24070001 */ li $a3, 1 +/* 00782C 70006C2C 3C018006 */ lui $at, %hi(D_80063838) +/* 007830 70006C30 24091770 */ li $t1, 6000 +/* 007834 70006C34 AC223838 */ sw $v0, %lo(D_80063838)($at) +/* 007838 70006C38 AFA90010 */ sw $t1, 0x10($sp) +/* 00783C 70006C3C 00002025 */ move $a0, $zero +/* 007840 70006C40 00002825 */ move $a1, $zero +/* 007844 70006C44 02003025 */ move $a2, $s0 +/* 007848 70006C48 0C003AD4 */ jal alHeapDBAlloc +/* 00784C 70006C4C 24070001 */ li $a3, 1 +/* 007850 70006C50 3C078006 */ lui $a3, %hi(D_8006383C) +/* 007854 70006C54 24E7383C */ addiu $a3, %lo(D_8006383C) # addiu $a3, $a3, 0x383c +/* 007858 70006C58 ACE20000 */ sw $v0, ($a3) +/* 00785C 70006C5C 244B07D0 */ addiu $t3, $v0, 0x7d0 +/* 007860 70006C60 3C018006 */ lui $at, %hi(D_80063840) +/* 007864 70006C64 3C038006 */ lui $v1, %hi(D_80063738) +/* 007868 70006C68 3C048006 */ lui $a0, %hi(ptr_musicdatatable) +/* 00786C 70006C6C 3C058006 */ lui $a1, %hi(D_800637B8) +/* 007870 70006C70 3C068006 */ lui $a2, %hi(D_80063836) +/* 007874 70006C74 AC2B3840 */ sw $t3, %lo(D_80063840)($at) +/* 007878 70006C78 24C63836 */ addiu $a2, %lo(D_80063836) # addiu $a2, $a2, 0x3836 +/* 00787C 70006C7C 24A537B8 */ addiu $a1, %lo(D_800637B8) # addiu $a1, $a1, 0x37b8 +/* 007880 70006C80 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) +/* 007884 70006C84 24633738 */ addiu $v1, %lo(D_80063738) # addiu $v1, $v1, 0x3738 +.L70006C88: +/* 007888 70006C88 948C0008 */ lhu $t4, 8($a0) +/* 00788C 70006C8C 24840008 */ addiu $a0, $a0, 8 +/* 007890 70006C90 24A50002 */ addiu $a1, $a1, 2 +/* 007894 70006C94 A46C0000 */ sh $t4, ($v1) +/* 007898 70006C98 948D0002 */ lhu $t5, 2($a0) +/* 00789C 70006C9C 3182FFFF */ andi $v0, $t4, 0xffff +/* 0078A0 70006CA0 304E0001 */ andi $t6, $v0, 1 +/* 0078A4 70006CA4 11C00003 */ beqz $t6, .L70006CB4 +/* 0078A8 70006CA8 A4ADFFFE */ sh $t5, -2($a1) +/* 0078AC 70006CAC 244F0001 */ addiu $t7, $v0, 1 +/* 0078B0 70006CB0 A46F0000 */ sh $t7, ($v1) +.L70006CB4: +/* 0078B4 70006CB4 14A6FFF4 */ bne $a1, $a2, .L70006C88 +/* 0078B8 70006CB8 24630002 */ addiu $v1, $v1, 2 +/* 0078BC 70006CBC 24180018 */ li $t8, 24 +/* 0078C0 70006CC0 24190080 */ li $t9, 128 +/* 0078C4 70006CC4 24080006 */ li $t0, 6 +/* 0078C8 70006CC8 AFA000A4 */ sw $zero, 0xa4($sp) +/* 0078CC 70006CCC AFB800A8 */ sw $t8, 0xa8($sp) +/* 0078D0 70006CD0 AFB900AC */ sw $t9, 0xac($sp) +/* 0078D4 70006CD4 AFA000B4 */ sw $zero, 0xb4($sp) +/* 0078D8 70006CD8 A3A800C0 */ sb $t0, 0xc0($sp) +/* 0078DC 70006CDC AFA000BC */ sw $zero, 0xbc($sp) +/* 0078E0 70006CE0 AFB000B8 */ sw $s0, 0xb8($sp) +/* 0078E4 70006CE4 0C0006F4 */ jal amCreateAudioMgr +/* 0078E8 70006CE8 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0078EC 70006CEC 24090010 */ li $t1, 16 +/* 0078F0 70006CF0 240A0040 */ li $t2, 64 +/* 0078F4 70006CF4 240B0010 */ li $t3, 16 +/* 0078F8 70006CF8 240C0010 */ li $t4, 16 +/* 0078FC 70006CFC 240D0040 */ li $t5, 64 +/* 007900 70006D00 240E0010 */ li $t6, 16 +/* 007904 70006D04 240F0010 */ li $t7, 16 +/* 007908 70006D08 24180040 */ li $t8, 64 +/* 00790C 70006D0C 24190010 */ li $t9, 16 +/* 007910 70006D10 2408007C */ li $t0, 124 +/* 007914 70006D14 AFA90088 */ sw $t1, 0x88($sp) +/* 007918 70006D18 AFAA008C */ sw $t2, 0x8c($sp) +/* 00791C 70006D1C A3AB0090 */ sb $t3, 0x90($sp) +/* 007920 70006D20 AFB00094 */ sw $s0, 0x94($sp) +/* 007924 70006D24 AFA00098 */ sw $zero, 0x98($sp) +/* 007928 70006D28 AFA0009C */ sw $zero, 0x9c($sp) +/* 00792C 70006D2C AFA000A0 */ sw $zero, 0xa0($sp) +/* 007930 70006D30 AFAC006C */ sw $t4, 0x6c($sp) +/* 007934 70006D34 AFAD0070 */ sw $t5, 0x70($sp) +/* 007938 70006D38 A3AE0074 */ sb $t6, 0x74($sp) +/* 00793C 70006D3C AFB00078 */ sw $s0, 0x78($sp) +/* 007940 70006D40 AFA0007C */ sw $zero, 0x7c($sp) +/* 007944 70006D44 AFA00080 */ sw $zero, 0x80($sp) +/* 007948 70006D48 AFA00084 */ sw $zero, 0x84($sp) +/* 00794C 70006D4C AFAF0050 */ sw $t7, 0x50($sp) +/* 007950 70006D50 AFB80054 */ sw $t8, 0x54($sp) +/* 007954 70006D54 A3B90058 */ sb $t9, 0x58($sp) +/* 007958 70006D58 AFB0005C */ sw $s0, 0x5c($sp) +/* 00795C 70006D5C AFA00060 */ sw $zero, 0x60($sp) +/* 007960 70006D60 AFA00064 */ sw $zero, 0x64($sp) +/* 007964 70006D64 AFA00068 */ sw $zero, 0x68($sp) +/* 007968 70006D68 AFA80010 */ sw $t0, 0x10($sp) +/* 00796C 70006D6C 00002025 */ move $a0, $zero +/* 007970 70006D70 00002825 */ move $a1, $zero +/* 007974 70006D74 02003025 */ move $a2, $s0 +/* 007978 70006D78 0C003AD4 */ jal alHeapDBAlloc +/* 00797C 70006D7C 24070001 */ li $a3, 1 +/* 007980 70006D80 3C018006 */ lui $at, %hi(seqp_1) +/* 007984 70006D84 2409007C */ li $t1, 124 +/* 007988 70006D88 AC223728 */ sw $v0, %lo(seqp_1)($at) +/* 00798C 70006D8C AFA90010 */ sw $t1, 0x10($sp) +/* 007990 70006D90 00002025 */ move $a0, $zero +/* 007994 70006D94 00002825 */ move $a1, $zero +/* 007998 70006D98 02003025 */ move $a2, $s0 +/* 00799C 70006D9C 0C003AD4 */ jal alHeapDBAlloc +/* 0079A0 70006DA0 24070001 */ li $a3, 1 +/* 0079A4 70006DA4 3C018006 */ lui $at, %hi(seqp_2) +/* 0079A8 70006DA8 240A007C */ li $t2, 124 +/* 0079AC 70006DAC AC22372C */ sw $v0, %lo(seqp_2)($at) +/* 0079B0 70006DB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0079B4 70006DB4 00002025 */ move $a0, $zero +/* 0079B8 70006DB8 00002825 */ move $a1, $zero +/* 0079BC 70006DBC 02003025 */ move $a2, $s0 +/* 0079C0 70006DC0 0C003AD4 */ jal alHeapDBAlloc +/* 0079C4 70006DC4 24070001 */ li $a3, 1 +/* 0079C8 70006DC8 3C018006 */ lui $at, %hi(seqp_3) +/* 0079CC 70006DCC 3C048006 */ lui $a0, %hi(seqp_1) +/* 0079D0 70006DD0 AC223730 */ sw $v0, %lo(seqp_3)($at) +/* 0079D4 70006DD4 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0079D8 70006DD8 0C004820 */ jal alCSPNew +/* 0079DC 70006DDC 27A50088 */ addiu $a1, $sp, 0x88 +/* 0079E0 70006DE0 3C048006 */ lui $a0, %hi(seqp_1) +/* 0079E4 70006DE4 3C058006 */ lui $a1, %hi(D_80063724) +/* 0079E8 70006DE8 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 0079EC 70006DEC 0C00487C */ jal alSeqpSetBank +/* 0079F0 70006DF0 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0079F4 70006DF4 3C048006 */ lui $a0, %hi(seqp_2) +/* 0079F8 70006DF8 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 0079FC 70006DFC 0C004820 */ jal alCSPNew +/* 007A00 70006E00 27A5006C */ addiu $a1, $sp, 0x6c +/* 007A04 70006E04 3C048006 */ lui $a0, %hi(seqp_2) +/* 007A08 70006E08 3C058006 */ lui $a1, %hi(D_80063724) +/* 007A0C 70006E0C 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 007A10 70006E10 0C00487C */ jal alSeqpSetBank +/* 007A14 70006E14 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 007A18 70006E18 3C048006 */ lui $a0, %hi(seqp_3) +/* 007A1C 70006E1C 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 007A20 70006E20 0C004820 */ jal alCSPNew +/* 007A24 70006E24 27A50050 */ addiu $a1, $sp, 0x50 +/* 007A28 70006E28 3C048006 */ lui $a0, %hi(seqp_3) +/* 007A2C 70006E2C 3C058006 */ lui $a1, %hi(D_80063724) +/* 007A30 70006E30 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 007A34 70006E34 0C00487C */ jal alSeqpSetBank +/* 007A38 70006E38 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 007A3C 70006E3C 240B0040 */ li $t3, 64 +/* 007A40 70006E40 240C0040 */ li $t4, 64 +/* 007A44 70006E44 240D0008 */ li $t5, 8 +/* 007A48 70006E48 AFAB00DC */ sw $t3, 0xdc($sp) +/* 007A4C 70006E4C AFAC00D8 */ sw $t4, 0xd8($sp) +/* 007A50 70006E50 AFAD00E0 */ sw $t5, 0xe0($sp) +/* 007A54 70006E54 AFB000E4 */ sw $s0, 0xe4($sp) +/* 007A58 70006E58 0C001EC8 */ jal sfx_c_70007B20 +/* 007A5C 70006E5C 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 007A60 70006E60 0C0007D6 */ jal startaudiThread +/* 007A64 70006E64 00000000 */ nop +.L70006E68: +/* 007A68 70006E68 8FBF0024 */ lw $ra, 0x24($sp) +/* 007A6C 70006E6C 8FB00020 */ lw $s0, 0x20($sp) +/* 007A70 70006E70 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 007A74 70006E74 03E00008 */ jr $ra +/* 007A78 70006E78 00000000 */ nop +) +#endif + + +/** + * 7A7C 70006E7C + * play first music track A0 + */ +#ifdef NONMATCHING +void musicTrack1Play(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music1_track_num != 0) + { + // Node 2 + musicTrack1Stop(); + } + // Node 3 + music1_track_num = arg852; + if (alCSPGetState(seqp_1) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_1) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music1_track_num * 8)); + temp_v0 = (music1_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + musicTrack1Play(1, temp_t2->unk4, music1_track_num); + return; + // (possible return value: musicTrack1Play(1, temp_t2->unk4, music1_track_num)) + } + // Node 7 + temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_80063838; + romCopy(((D_80063838 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music1_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063860, D_80063838); + alCSPSetSeq(seqp_1, &D_80063860); + musicTrack1Vol((musicTrack1Length() & 0xffff)); + alCSPPlay(seqp_1); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Play +/* 007A7C 70006E7C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007A80 70006E80 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007A84 70006E84 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 007A88 70006E88 AFBF001C */ sw $ra, 0x1c($sp) +/* 007A8C 70006E8C AFB00018 */ sw $s0, 0x18($sp) +/* 007A90 70006E90 15C0004A */ bnez $t6, .L70006FBC +/* 007A94 70006E94 AFA42148 */ sw $a0, 0x2148($sp) +/* 007A98 70006E98 3C0F8002 */ lui $t7, %hi(music1_track_num) +/* 007A9C 70006E9C 8DEF4334 */ lw $t7, %lo(music1_track_num)($t7) +/* 007AA0 70006EA0 51E00004 */ beql $t7, $zero, .L70006EB4 +/* 007AA4 70006EA4 8FB82148 */ lw $t8, 0x2148($sp) +/* 007AA8 70006EA8 0C001BF4 */ jal musicTrack1Stop +/* 007AAC 70006EAC 00000000 */ nop +/* 007AB0 70006EB0 8FB82148 */ lw $t8, 0x2148($sp) +.L70006EB4: +/* 007AB4 70006EB4 3C108006 */ lui $s0, %hi(seqp_1) +/* 007AB8 70006EB8 3C018002 */ lui $at, %hi(music1_track_num) +/* 007ABC 70006EBC 26103728 */ addiu $s0, %lo(seqp_1) # addiu $s0, $s0, 0x3728 +/* 007AC0 70006EC0 AC384334 */ sw $t8, %lo(music1_track_num)($at) +/* 007AC4 70006EC4 0C00488C */ jal alCSPGetState +/* 007AC8 70006EC8 8E040000 */ lw $a0, ($s0) +/* 007ACC 70006ECC 10400005 */ beqz $v0, .L70006EE4 +/* 007AD0 70006ED0 00000000 */ nop +.L70006ED4: +/* 007AD4 70006ED4 0C00488C */ jal alCSPGetState +/* 007AD8 70006ED8 8E040000 */ lw $a0, ($s0) +/* 007ADC 70006EDC 1440FFFD */ bnez $v0, .L70006ED4 +/* 007AE0 70006EE0 00000000 */ nop +.L70006EE4: +/* 007AE4 70006EE4 3C078002 */ lui $a3, %hi(music1_track_num) +/* 007AE8 70006EE8 8CE74334 */ lw $a3, %lo(music1_track_num)($a3) +/* 007AEC 70006EEC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 007AF0 70006EF0 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 007AF4 70006EF4 000748C0 */ sll $t1, $a3, 3 +/* 007AF8 70006EF8 3C010001 */ lui $at, 1 +/* 007AFC 70006EFC 03295021 */ addu $t2, $t9, $t1 +/* 007B00 70006F00 8D450004 */ lw $a1, 4($t2) +/* 007B04 70006F04 3C038006 */ lui $v1, %hi(D_80063738) +/* 007B08 70006F08 00071040 */ sll $v0, $a3, 1 +/* 007B0C 70006F0C 00A1082B */ sltu $at, $a1, $at +/* 007B10 70006F10 10200005 */ beqz $at, .L70006F28 +/* 007B14 70006F14 00621821 */ addu $v1, $v1, $v0 +/* 007B18 70006F18 0C001B9F */ jal musicTrack1Play +/* 007B1C 70006F1C 24040001 */ li $a0, 1 +/* 007B20 70006F20 10000027 */ b .L70006FC0 +/* 007B24 70006F24 8FBF001C */ lw $ra, 0x1c($sp) +.L70006F28: +/* 007B28 70006F28 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 007B2C 70006F2C 3C068006 */ lui $a2, %hi(D_800637B8) +/* 007B30 70006F30 00C23021 */ addu $a2, $a2, $v0 +/* 007B34 70006F34 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 007B38 70006F38 3C088006 */ lui $t0, %hi(D_80063838) +/* 007B3C 70006F3C 2463000F */ addiu $v1, $v1, 0xf +/* 007B40 70006F40 8D083838 */ lw $t0, %lo(D_80063838)($t0) +/* 007B44 70006F44 346B000F */ ori $t3, $v1, 0xf +/* 007B48 70006F48 396C000F */ xori $t4, $t3, 0xf +/* 007B4C 70006F4C 24C6000F */ addiu $a2, $a2, 0xf +/* 007B50 70006F50 25830040 */ addiu $v1, $t4, 0x40 +/* 007B54 70006F54 34CD000F */ ori $t5, $a2, 0xf +/* 007B58 70006F58 39A6000F */ xori $a2, $t5, 0xf +/* 007B5C 70006F5C 01037821 */ addu $t7, $t0, $v1 +/* 007B60 70006F60 01E62023 */ subu $a0, $t7, $a2 +/* 007B64 70006F64 AFA40028 */ sw $a0, 0x28($sp) +/* 007B68 70006F68 0C001707 */ jal romCopy +/* 007B6C 70006F6C AFA82140 */ sw $t0, 0x2140($sp) +/* 007B70 70006F70 8FA40028 */ lw $a0, 0x28($sp) +/* 007B74 70006F74 8FA52140 */ lw $a1, 0x2140($sp) +/* 007B78 70006F78 0FC339FC */ jal decompressdata +/* 007B7C 70006F7C 27A60034 */ addiu $a2, $sp, 0x34 +/* 007B80 70006F80 3C048006 */ lui $a0, %hi(D_80063860) +/* 007B84 70006F84 3C058006 */ lui $a1, %hi(D_80063838) +/* 007B88 70006F88 8CA53838 */ lw $a1, %lo(D_80063838)($a1) +/* 007B8C 70006F8C 0C0049E7 */ jal alCSeqNew +/* 007B90 70006F90 24843860 */ addiu $a0, %lo(D_80063860) # addiu $a0, $a0, 0x3860 +/* 007B94 70006F94 3C058006 */ lui $a1, %hi(D_80063860) +/* 007B98 70006F98 24A53860 */ addiu $a1, %lo(D_80063860) # addiu $a1, $a1, 0x3860 +/* 007B9C 70006F9C 0C004B40 */ jal alCSPSetSeq +/* 007BA0 70006FA0 8E040000 */ lw $a0, ($s0) +/* 007BA4 70006FA4 0C001C0C */ jal musicTrack1Length +/* 007BA8 70006FA8 00000000 */ nop +/* 007BAC 70006FAC 0C001C0F */ jal musicTrack1Vol +/* 007BB0 70006FB0 3044FFFF */ andi $a0, $v0, 0xffff +/* 007BB4 70006FB4 0C004B50 */ jal alCSPPlay +/* 007BB8 70006FB8 8E040000 */ lw $a0, ($s0) +.L70006FBC: +/* 007BBC 70006FBC 8FBF001C */ lw $ra, 0x1c($sp) +.L70006FC0: +/* 007BC0 70006FC0 8FB00018 */ lw $s0, 0x18($sp) +/* 007BC4 70006FC4 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 007BC8 70006FC8 03E00008 */ jr $ra +/* 007BCC 70006FCC 00000000 */ nop +) +#endif + +/** + * 7BD0 70006FD0 + * stop playing first music track + */ +void musicTrack1Stop(void) { + if (bootswitch_sound == 0) + { + music1_playing = 0; + if (music1_track_num != 0) + { + if (alCSPGetState(seqp_1) == 1) + { + alCSPStop(seqp_1); + } + } + music1_track_num = 0; + } +} + +/** + * 7C30 70007030 + * V0= [80024338] + */ +u16 musicTrack1Length(void) { + return music1len; +} + + + + + + +/** + * 7C3C 7000703C + * ??? - sets something for currently running music track... + * accepts: A0=value + */ +#ifdef NONMATCHING +void musicTrack1Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music1len = temp_a2; + alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); + return; + // (possible return value: alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2)) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Vol +/* 007C3C 7000703C 3C0E8002 */ lui $t6, %hi(music1_track_num) +/* 007C40 70007040 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) +/* 007C44 70007044 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 007C48 70007048 3086FFFF */ andi $a2, $a0, 0xffff +/* 007C4C 7000704C 000E7840 */ sll $t7, $t6, 1 +/* 007C50 70007050 030FC021 */ addu $t8, $t8, $t7 +/* 007C54 70007054 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 007C58 70007058 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007C5C 7000705C AFA40018 */ sw $a0, 0x18($sp) +/* 007C60 70007060 00D80019 */ multu $a2, $t8 +/* 007C64 70007064 AFBF0014 */ sw $ra, 0x14($sp) +/* 007C68 70007068 3C018002 */ lui $at, %hi(music1len) +/* 007C6C 7000706C 3C048006 */ lui $a0, %hi(seqp_1) +/* 007C70 70007070 A4264338 */ sh $a2, %lo(music1len)($at) +/* 007C74 70007074 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 007C78 70007078 00001012 */ mflo $v0 +/* 007C7C 7000707C 0002CBC2 */ srl $t9, $v0, 0xf +/* 007C80 70007080 00192C00 */ sll $a1, $t9, 0x10 +/* 007C84 70007084 00054403 */ sra $t0, $a1, 0x10 +/* 007C88 70007088 0C004B68 */ jal alCSPSetVol +/* 007C8C 7000708C 01002825 */ move $a1, $t0 +/* 007C90 70007090 8FBF0014 */ lw $ra, 0x14($sp) +/* 007C94 70007094 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007C98 70007098 03E00008 */ jr $ra +/* 007C9C 7000709C 00000000 */ nop +) +#endif + + + + + + + +/** + * 7CA0 700070A0 + */ +#ifdef NONMATCHING +void *musicTrack1Tempo(void) { + // Node 0 + *(&music_tempo_array + (music1_track_num * 2)) = musicTrack1Length(); + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + if (music_tempo_array.unk2 >= 0) + { + goto loop_1; + } + } + // (possible return value: &music_tempo_array) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Tempo +/* 007CA0 700070A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007CA4 700070A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 007CA8 700070A8 0C001C0C */ jal musicTrack1Length +/* 007CAC 700070AC 00000000 */ nop +/* 007CB0 700070B0 3C0E8002 */ lui $t6, %hi(music1_track_num) +/* 007CB4 700070B4 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) +/* 007CB8 700070B8 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 007CBC 700070BC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 007CC0 700070C0 000E7840 */ sll $t7, $t6, 1 +/* 007CC4 700070C4 008FC021 */ addu $t8, $a0, $t7 +/* 007CC8 700070C8 A7020000 */ sh $v0, ($t8) +/* 007CCC 700070CC 84990000 */ lh $t9, ($a0) +/* 007CD0 700070D0 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 007CD4 700070D4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 007CD8 700070D8 07200005 */ bltz $t9, .L700070F0 +/* 007CDC 700070DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 007CE0 700070E0 84480002 */ lh $t0, 2($v0) +.L700070E4: +/* 007CE4 700070E4 24420002 */ addiu $v0, $v0, 2 +/* 007CE8 700070E8 0503FFFE */ bgezl $t0, .L700070E4 +/* 007CEC 700070EC 84480002 */ lh $t0, 2($v0) +.L700070F0: +/* 007CF0 700070F0 03E00008 */ jr $ra +/* 007CF4 700070F4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +/** + * 7CF8 700070F8 + */ +void music_related_1(f32 rate) { + if (music1_playing >= 0) + { + musicTrack1_length = musicTrack1Length(); + music1_length = 0; + music1_rate = (s32) (rate * 60.0f); + music1_playing = -1; + } +} + + + + + + +/** + * 7D68 70007168 + */ +#ifdef NONMATCHING +s16 music_related_3(f32 arg0, s32 arg1, f32 rate, s16 length) { + if (music1_playing <= 0) + { + alCSPPlay(seqp_1); + if (length == 0xffff) + { + music1_length = musicTrack1_length; + } + else + { + music1_length = length; + } + musicTrack1_length = (u16)0; + music1_rate = (s32) (rate * 60.0f); + music1_playing = 1; + } +} +#else +GLOBAL_ASM( +.text +glabel music_related_3 +/* 007D68 70007168 3C0E8002 */ lui $t6, %hi(music1_playing) +/* 007D6C 7000716C 8DCE434C */ lw $t6, %lo(music1_playing)($t6) +/* 007D70 70007170 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007D74 70007174 AFBF0014 */ sw $ra, 0x14($sp) +/* 007D78 70007178 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 007D7C 7000717C 1DC0001D */ bgtz $t6, .L700071F4 +/* 007D80 70007180 AFA5001C */ sw $a1, 0x1c($sp) +/* 007D84 70007184 3C048006 */ lui $a0, %hi(seqp_1) +/* 007D88 70007188 0C004B50 */ jal alCSPPlay +/* 007D8C 7000718C 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 007D90 70007190 97A2001E */ lhu $v0, 0x1e($sp) +/* 007D94 70007194 3401FFFF */ li $at, 65535 +/* 007D98 70007198 3C0F8006 */ lui $t7, %hi(musicTrack1_length) +/* 007D9C 7000719C 14410005 */ bne $v0, $at, .L700071B4 +/* 007DA0 700071A0 00000000 */ nop +/* 007DA4 700071A4 95EF3844 */ lhu $t7, %lo(musicTrack1_length)($t7) +/* 007DA8 700071A8 3C018006 */ lui $at, %hi(music1_length) +/* 007DAC 700071AC 10000003 */ b .L700071BC +/* 007DB0 700071B0 A42F384A */ sh $t7, %lo(music1_length)($at) +.L700071B4: +/* 007DB4 700071B4 3C018006 */ lui $at, %hi(music1_length) +/* 007DB8 700071B8 A422384A */ sh $v0, %lo(music1_length)($at) +.L700071BC: +/* 007DBC 700071BC 3C018006 */ lui $at, %hi(musicTrack1_length) +/* 007DC0 700071C0 A4203844 */ sh $zero, %lo(musicTrack1_length)($at) +/* 007DC4 700071C4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 007DC8 700071C8 44813000 */ mtc1 $at, $f6 +/* 007DCC 700071CC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 007DD0 700071D0 3C018006 */ lui $at, %hi(music1_rate) +/* 007DD4 700071D4 24080001 */ li $t0, 1 +/* 007DD8 700071D8 46062202 */ mul.s $f8, $f4, $f6 +/* 007DDC 700071DC 4600428D */ trunc.w.s $f10, $f8 +/* 007DE0 700071E0 44195000 */ mfc1 $t9, $f10 +/* 007DE4 700071E4 00000000 */ nop +/* 007DE8 700071E8 AC393850 */ sw $t9, %lo(music1_rate)($at) +/* 007DEC 700071EC 3C018002 */ lui $at, %hi(music1_playing) +/* 007DF0 700071F0 AC28434C */ sw $t0, %lo(music1_playing)($at) +.L700071F4: +/* 007DF4 700071F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 007DF8 700071F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007DFC 700071FC 03E00008 */ jr $ra +/* 007E00 70007200 00000000 */ nop +) +#endif + + + + + + +/** + * 7E04 70007204 + */ +#ifdef NONMATCHING +void musicTrack2Play(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music2_track_num != 0) + { + // Node 2 + musicTrack2Stop(); + } + // Node 3 + music2_track_num = arg852; + if (alCSPGetState(seqp_2) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_2) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music2_track_num * 8)); + temp_v0 = (music2_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + musicTrack2Play(1, temp_t2->unk4, music2_track_num); + return; + // (possible return value: musicTrack2Play(1, temp_t2->unk4, music2_track_num)) + } + // Node 7 + temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_8006383C; + romCopy(((D_8006383C + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music2_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063958, D_8006383C); + alCSPSetSeq(seqp_2, &D_80063958); + musicTrack2Vol((musicTrack2Length() & 0xffff)); + alCSPPlay(seqp_2); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack2Play +/* 007E04 70007204 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007E08 70007208 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007E0C 7000720C 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 007E10 70007210 AFBF001C */ sw $ra, 0x1c($sp) +/* 007E14 70007214 AFB00018 */ sw $s0, 0x18($sp) +/* 007E18 70007218 15C0004A */ bnez $t6, .L70007344 +/* 007E1C 7000721C AFA42148 */ sw $a0, 0x2148($sp) +/* 007E20 70007220 3C0F8002 */ lui $t7, %hi(music2_track_num) +/* 007E24 70007224 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) +/* 007E28 70007228 51E00004 */ beql $t7, $zero, .L7000723C +/* 007E2C 7000722C 8FB82148 */ lw $t8, 0x2148($sp) +/* 007E30 70007230 0C001CD6 */ jal musicTrack2Stop +/* 007E34 70007234 00000000 */ nop +/* 007E38 70007238 8FB82148 */ lw $t8, 0x2148($sp) +.L7000723C: +/* 007E3C 7000723C 3C108006 */ lui $s0, %hi(seqp_2) +/* 007E40 70007240 3C018002 */ lui $at, %hi(music2_track_num) +/* 007E44 70007244 2610372C */ addiu $s0, %lo(seqp_2) # addiu $s0, $s0, 0x372c +/* 007E48 70007248 AC38433C */ sw $t8, %lo(music2_track_num)($at) +/* 007E4C 7000724C 0C00488C */ jal alCSPGetState +/* 007E50 70007250 8E040000 */ lw $a0, ($s0) +/* 007E54 70007254 10400005 */ beqz $v0, .L7000726C +/* 007E58 70007258 00000000 */ nop +.L7000725C: +/* 007E5C 7000725C 0C00488C */ jal alCSPGetState +/* 007E60 70007260 8E040000 */ lw $a0, ($s0) +/* 007E64 70007264 1440FFFD */ bnez $v0, .L7000725C +/* 007E68 70007268 00000000 */ nop +.L7000726C: +/* 007E6C 7000726C 3C078002 */ lui $a3, %hi(music2_track_num) +/* 007E70 70007270 8CE7433C */ lw $a3, %lo(music2_track_num)($a3) +/* 007E74 70007274 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 007E78 70007278 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 007E7C 7000727C 000748C0 */ sll $t1, $a3, 3 +/* 007E80 70007280 3C010001 */ lui $at, 1 +/* 007E84 70007284 03295021 */ addu $t2, $t9, $t1 +/* 007E88 70007288 8D450004 */ lw $a1, 4($t2) +/* 007E8C 7000728C 3C038006 */ lui $v1, %hi(D_80063738) +/* 007E90 70007290 00071040 */ sll $v0, $a3, 1 +/* 007E94 70007294 00A1082B */ sltu $at, $a1, $at +/* 007E98 70007298 10200005 */ beqz $at, .L700072B0 +/* 007E9C 7000729C 00621821 */ addu $v1, $v1, $v0 +/* 007EA0 700072A0 0C001C81 */ jal musicTrack2Play +/* 007EA4 700072A4 24040001 */ li $a0, 1 +/* 007EA8 700072A8 10000027 */ b .L70007348 +/* 007EAC 700072AC 8FBF001C */ lw $ra, 0x1c($sp) +.L700072B0: +/* 007EB0 700072B0 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 007EB4 700072B4 3C068006 */ lui $a2, %hi(D_800637B8) +/* 007EB8 700072B8 00C23021 */ addu $a2, $a2, $v0 +/* 007EBC 700072BC 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 007EC0 700072C0 3C088006 */ lui $t0, %hi(D_8006383C) +/* 007EC4 700072C4 2463000F */ addiu $v1, $v1, 0xf +/* 007EC8 700072C8 8D08383C */ lw $t0, %lo(D_8006383C)($t0) +/* 007ECC 700072CC 346B000F */ ori $t3, $v1, 0xf +/* 007ED0 700072D0 396C000F */ xori $t4, $t3, 0xf +/* 007ED4 700072D4 24C6000F */ addiu $a2, $a2, 0xf +/* 007ED8 700072D8 25830040 */ addiu $v1, $t4, 0x40 +/* 007EDC 700072DC 34CD000F */ ori $t5, $a2, 0xf +/* 007EE0 700072E0 39A6000F */ xori $a2, $t5, 0xf +/* 007EE4 700072E4 01037821 */ addu $t7, $t0, $v1 +/* 007EE8 700072E8 01E62023 */ subu $a0, $t7, $a2 +/* 007EEC 700072EC AFA40028 */ sw $a0, 0x28($sp) +/* 007EF0 700072F0 0C001707 */ jal romCopy +/* 007EF4 700072F4 AFA82140 */ sw $t0, 0x2140($sp) +/* 007EF8 700072F8 8FA40028 */ lw $a0, 0x28($sp) +/* 007EFC 700072FC 8FA52140 */ lw $a1, 0x2140($sp) +/* 007F00 70007300 0FC339FC */ jal decompressdata +/* 007F04 70007304 27A60034 */ addiu $a2, $sp, 0x34 +/* 007F08 70007308 3C048006 */ lui $a0, %hi(D_80063958) +/* 007F0C 7000730C 3C058006 */ lui $a1, %hi(D_8006383C) +/* 007F10 70007310 8CA5383C */ lw $a1, %lo(D_8006383C)($a1) +/* 007F14 70007314 0C0049E7 */ jal alCSeqNew +/* 007F18 70007318 24843958 */ addiu $a0, %lo(D_80063958) # addiu $a0, $a0, 0x3958 +/* 007F1C 7000731C 3C058006 */ lui $a1, %hi(D_80063958) +/* 007F20 70007320 24A53958 */ addiu $a1, %lo(D_80063958) # addiu $a1, $a1, 0x3958 +/* 007F24 70007324 0C004B40 */ jal alCSPSetSeq +/* 007F28 70007328 8E040000 */ lw $a0, ($s0) +/* 007F2C 7000732C 0C001CEE */ jal musicTrack2Length +/* 007F30 70007330 00000000 */ nop +/* 007F34 70007334 0C001CF1 */ jal musicTrack2Vol +/* 007F38 70007338 3044FFFF */ andi $a0, $v0, 0xffff +/* 007F3C 7000733C 0C004B50 */ jal alCSPPlay +/* 007F40 70007340 8E040000 */ lw $a0, ($s0) +.L70007344: +/* 007F44 70007344 8FBF001C */ lw $ra, 0x1c($sp) +.L70007348: +/* 007F48 70007348 8FB00018 */ lw $s0, 0x18($sp) +/* 007F4C 7000734C 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 007F50 70007350 03E00008 */ jr $ra +/* 007F54 70007354 00000000 */ nop +) +#endif + + +/** + * 7F58 70007358 + */ +#ifdef NONMATCHING +void musicTrack2Stop(void) { + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + music2_playing = 0; + if (music2_track_num != 0) + { + // Node 2 + if (alCSPGetState(seqp_2) == 1) + { + // Node 3 + alCSPStop(seqp_2); + } + } + // Node 4 + music2_track_num = 0; + return; + // (function likely void) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack2Stop +/* 007F58 70007358 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007F5C 7000735C 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007F60 70007360 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007F64 70007364 AFBF0014 */ sw $ra, 0x14($sp) +/* 007F68 70007368 15C0000F */ bnez $t6, .L700073A8 +/* 007F6C 7000736C 3C0F8002 */ lui $t7, %hi(music2_track_num) +/* 007F70 70007370 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) +/* 007F74 70007374 3C018002 */ lui $at, %hi(music2_playing) +/* 007F78 70007378 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 007F7C 7000737C 11E00008 */ beqz $t7, .L700073A0 +/* 007F80 70007380 3C048006 */ lui $a0, %hi(seqp_2) +/* 007F84 70007384 0C00488C */ jal alCSPGetState +/* 007F88 70007388 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 007F8C 7000738C 24010001 */ li $at, 1 +/* 007F90 70007390 14410003 */ bne $v0, $at, .L700073A0 +/* 007F94 70007394 3C048006 */ lui $a0, %hi(seqp_2) +/* 007F98 70007398 0C004B5C */ jal alCSPStop +/* 007F9C 7000739C 8C84372C */ lw $a0, %lo(seqp_2)($a0) +.L700073A0: +/* 007FA0 700073A0 3C018002 */ lui $at, %hi(music2_track_num) +/* 007FA4 700073A4 AC20433C */ sw $zero, %lo(music2_track_num)($at) +.L700073A8: +/* 007FA8 700073A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 007FAC 700073AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007FB0 700073B0 03E00008 */ jr $ra +/* 007FB4 700073B4 00000000 */ nop +) +#endif + + + + + + + + +/** + * 7FB8 700073B8 + * V0= [80024340] + */ +u16 musicTrack2Length(void) { + return music2len; +} + + + + + + + +/** + * 7FC4 700073C4 + */ +#ifdef NONMATCHING +void musicTrack2Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music2len = temp_a2; + return alCSPSetVol(seqp_2, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music2_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack2Vol +/* 007FC4 700073C4 3C0E8002 */ lui $t6, %hi(music2_track_num) +/* 007FC8 700073C8 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) +/* 007FCC 700073CC 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 007FD0 700073D0 3086FFFF */ andi $a2, $a0, 0xffff +/* 007FD4 700073D4 000E7840 */ sll $t7, $t6, 1 +/* 007FD8 700073D8 030FC021 */ addu $t8, $t8, $t7 +/* 007FDC 700073DC 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 007FE0 700073E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007FE4 700073E4 AFA40018 */ sw $a0, 0x18($sp) +/* 007FE8 700073E8 00D80019 */ multu $a2, $t8 +/* 007FEC 700073EC AFBF0014 */ sw $ra, 0x14($sp) +/* 007FF0 700073F0 3C018002 */ lui $at, %hi(music2len) +/* 007FF4 700073F4 3C048006 */ lui $a0, %hi(seqp_2) +/* 007FF8 700073F8 A4264340 */ sh $a2, %lo(music2len)($at) +/* 007FFC 700073FC 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008000 70007400 00001012 */ mflo $v0 +/* 008004 70007404 0002CBC2 */ srl $t9, $v0, 0xf +/* 008008 70007408 00192C00 */ sll $a1, $t9, 0x10 +/* 00800C 7000740C 00054403 */ sra $t0, $a1, 0x10 +/* 008010 70007410 0C004B68 */ jal alCSPSetVol +/* 008014 70007414 01002825 */ move $a1, $t0 +/* 008018 70007418 8FBF0014 */ lw $ra, 0x14($sp) +/* 00801C 7000741C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008020 70007420 03E00008 */ jr $ra +/* 008024 70007424 00000000 */ nop +) +#endif + + + + + + + +/** + * 8028 70007428 + */ +#ifdef NONMATCHING +void *musicTrack2Tempo(void) { + void *phi_v0; + + // Node 0 + *(&music_tempo_array + (music2_track_num * 2)) = musicTrack2Length(); + phi_v0 = &music_tempo_array; + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + phi_v0 = (phi_v0 + 2); + if (phi_v0->unk2 >= 0) + { + goto loop_1; + } + } + // Node 2 + return &music_tempo_array; +} +#else +GLOBAL_ASM( +.text +glabel musicTrack2Tempo +/* 008028 70007428 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00802C 7000742C AFBF0014 */ sw $ra, 0x14($sp) +/* 008030 70007430 0C001CEE */ jal musicTrack2Length +/* 008034 70007434 00000000 */ nop +/* 008038 70007438 3C0E8002 */ lui $t6, %hi(music2_track_num) +/* 00803C 7000743C 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) +/* 008040 70007440 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 008044 70007444 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 008048 70007448 000E7840 */ sll $t7, $t6, 1 +/* 00804C 7000744C 008FC021 */ addu $t8, $a0, $t7 +/* 008050 70007450 A7020000 */ sh $v0, ($t8) +/* 008054 70007454 84990000 */ lh $t9, ($a0) +/* 008058 70007458 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 00805C 7000745C 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 008060 70007460 07200005 */ bltz $t9, .L70007478 +/* 008064 70007464 8FBF0014 */ lw $ra, 0x14($sp) +/* 008068 70007468 84480002 */ lh $t0, 2($v0) +.L7000746C: +/* 00806C 7000746C 24420002 */ addiu $v0, $v0, 2 +/* 008070 70007470 0503FFFE */ bgezl $t0, .L7000746C +/* 008074 70007474 84480002 */ lh $t0, 2($v0) +.L70007478: +/* 008078 70007478 03E00008 */ jr $ra +/* 00807C 7000747C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +/** + * 8080 70007480 + */ +#ifdef NONMATCHING +void music_related_6(f32 arg0) { + // Node 0 + if (music2_playing >= 0) + { + // Node 1 + D_80063846 = musicTrack2Length(); + music2_length = (u16)0; + music2_rate = (s32) (arg0 * 60.0f); + music2_playing = -1; + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel music_related_6 +/* 008080 70007480 3C0E8002 */ lui $t6, %hi(music2_playing) +/* 008084 70007484 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) +/* 008088 70007488 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00808C 7000748C AFBF0014 */ sw $ra, 0x14($sp) +/* 008090 70007490 05C00013 */ bltz $t6, .L700074E0 +/* 008094 70007494 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008098 70007498 0C001CEE */ jal musicTrack2Length +/* 00809C 7000749C 00000000 */ nop +/* 0080A0 700074A0 3C018006 */ lui $at, %hi(D_80063846) +/* 0080A4 700074A4 A4223846 */ sh $v0, %lo(D_80063846)($at) +/* 0080A8 700074A8 3C018006 */ lui $at, %hi(music2_length) +/* 0080AC 700074AC A420384C */ sh $zero, %lo(music2_length)($at) +/* 0080B0 700074B0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0080B4 700074B4 44813000 */ mtc1 $at, $f6 +/* 0080B8 700074B8 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0080BC 700074BC 3C018006 */ lui $at, %hi(music2_rate) +/* 0080C0 700074C0 2419FFFF */ li $t9, -1 +/* 0080C4 700074C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0080C8 700074C8 4600428D */ trunc.w.s $f10, $f8 +/* 0080CC 700074CC 44185000 */ mfc1 $t8, $f10 +/* 0080D0 700074D0 00000000 */ nop +/* 0080D4 700074D4 AC383854 */ sw $t8, %lo(music2_rate)($at) +/* 0080D8 700074D8 3C018002 */ lui $at, %hi(music2_playing) +/* 0080DC 700074DC AC394350 */ sw $t9, %lo(music2_playing)($at) +.L700074E0: +/* 0080E0 700074E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0080E4 700074E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0080E8 700074E8 03E00008 */ jr $ra +/* 0080EC 700074EC 00000000 */ nop +) +#endif + + + + + + +/** + * 80F0 700074F0 + */ +#ifdef NONMATCHING +void music_related_8(f32 arg0, s32 arg1, s16 arg_unaligned6) { + // Node 0 + if (music2_playing <= 0) + { + // Node 1 + alCSPPlay(seqp_2); + if (arg_unaligned6 == 0xffff) + { + // Node 2 + music2_length = (s16) D_80063846; + } + else + { + // Node 3 + music2_length = arg_unaligned6; + } + // Node 4 + D_80063846 = (u16)0; + music2_rate = (s32) (arg0 * 60.0f); + music2_playing = 1; + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel music_related_8 +/* 0080F0 700074F0 3C0E8002 */ lui $t6, %hi(music2_playing) +/* 0080F4 700074F4 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) +/* 0080F8 700074F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0080FC 700074FC AFBF0014 */ sw $ra, 0x14($sp) +/* 008100 70007500 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008104 70007504 1DC0001D */ bgtz $t6, .L7000757C +/* 008108 70007508 AFA5001C */ sw $a1, 0x1c($sp) +/* 00810C 7000750C 3C048006 */ lui $a0, %hi(seqp_2) +/* 008110 70007510 0C004B50 */ jal alCSPPlay +/* 008114 70007514 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008118 70007518 97A2001E */ lhu $v0, 0x1e($sp) +/* 00811C 7000751C 3401FFFF */ li $at, 65535 +/* 008120 70007520 3C0F8006 */ lui $t7, %hi(D_80063846) +/* 008124 70007524 14410005 */ bne $v0, $at, .L7000753C +/* 008128 70007528 00000000 */ nop +/* 00812C 7000752C 95EF3846 */ lhu $t7, %lo(D_80063846)($t7) +/* 008130 70007530 3C018006 */ lui $at, %hi(music2_length) +/* 008134 70007534 10000003 */ b .L70007544 +/* 008138 70007538 A42F384C */ sh $t7, %lo(music2_length)($at) +.L7000753C: +/* 00813C 7000753C 3C018006 */ lui $at, %hi(music2_length) +/* 008140 70007540 A422384C */ sh $v0, %lo(music2_length)($at) +.L70007544: +/* 008144 70007544 3C018006 */ lui $at, %hi(D_80063846) +/* 008148 70007548 A4203846 */ sh $zero, %lo(D_80063846)($at) +/* 00814C 7000754C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 008150 70007550 44813000 */ mtc1 $at, $f6 +/* 008154 70007554 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 008158 70007558 3C018006 */ lui $at, %hi(music2_rate) +/* 00815C 7000755C 24080001 */ li $t0, 1 +/* 008160 70007560 46062202 */ mul.s $f8, $f4, $f6 +/* 008164 70007564 4600428D */ trunc.w.s $f10, $f8 +/* 008168 70007568 44195000 */ mfc1 $t9, $f10 +/* 00816C 7000756C 00000000 */ nop +/* 008170 70007570 AC393854 */ sw $t9, %lo(music2_rate)($at) +/* 008174 70007574 3C018002 */ lui $at, %hi(music2_playing) +/* 008178 70007578 AC284350 */ sw $t0, %lo(music2_playing)($at) +.L7000757C: +/* 00817C 7000757C 8FBF0014 */ lw $ra, 0x14($sp) +/* 008180 70007580 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008184 70007584 03E00008 */ jr $ra +/* 008188 70007588 00000000 */ nop +) +#endif + + + + + + +/** + * 818C 7000758C + */ +#ifdef NONMATCHING +void music_related_3rd_block(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music3_track_num != 0) + { + // Node 2 + musicTrack3Stop(); + } + // Node 3 + music3_track_num = arg852; + if (alCSPGetState(seqp_3) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_3) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music3_track_num * 8)); + temp_v0 = (music3_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + music_related_3rd_block(1, temp_t2->unk4, music3_track_num); + return; + // (possible return value: music_related_3rd_block(1, temp_t2->unk4, music3_track_num)) + } + // Node 7 + temp_a2 = ((((0x80060000 + temp_v0)->unk37B8 + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_80063840; + romCopy(((D_80063840 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music3_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063A50, D_80063840); + alCSPSetSeq(seqp_3, &D_80063A50); + musicTrack3Vol((get_music3len() & 0xffff)); + alCSPPlay(seqp_3); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel music_related_3rd_block +/* 00818C 7000758C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 008190 70007590 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 008194 70007594 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 008198 70007598 AFBF001C */ sw $ra, 0x1c($sp) +/* 00819C 7000759C AFB00018 */ sw $s0, 0x18($sp) +/* 0081A0 700075A0 15C0004A */ bnez $t6, .L700076CC +/* 0081A4 700075A4 AFA42148 */ sw $a0, 0x2148($sp) +/* 0081A8 700075A8 3C0F8002 */ lui $t7, %hi(music3_track_num) +/* 0081AC 700075AC 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) +/* 0081B0 700075B0 51E00004 */ beql $t7, $zero, .L700075C4 +/* 0081B4 700075B4 8FB82148 */ lw $t8, 0x2148($sp) +/* 0081B8 700075B8 0C001DB8 */ jal musicTrack3Stop +/* 0081BC 700075BC 00000000 */ nop +/* 0081C0 700075C0 8FB82148 */ lw $t8, 0x2148($sp) +.L700075C4: +/* 0081C4 700075C4 3C108006 */ lui $s0, %hi(seqp_3) +/* 0081C8 700075C8 3C018002 */ lui $at, %hi(music3_track_num) +/* 0081CC 700075CC 26103730 */ addiu $s0, %lo(seqp_3) # addiu $s0, $s0, 0x3730 +/* 0081D0 700075D0 AC384344 */ sw $t8, %lo(music3_track_num)($at) +/* 0081D4 700075D4 0C00488C */ jal alCSPGetState +/* 0081D8 700075D8 8E040000 */ lw $a0, ($s0) +/* 0081DC 700075DC 10400005 */ beqz $v0, .L700075F4 +/* 0081E0 700075E0 00000000 */ nop +.L700075E4: +/* 0081E4 700075E4 0C00488C */ jal alCSPGetState +/* 0081E8 700075E8 8E040000 */ lw $a0, ($s0) +/* 0081EC 700075EC 1440FFFD */ bnez $v0, .L700075E4 +/* 0081F0 700075F0 00000000 */ nop +.L700075F4: +/* 0081F4 700075F4 3C078002 */ lui $a3, %hi(music3_track_num) +/* 0081F8 700075F8 8CE74344 */ lw $a3, %lo(music3_track_num)($a3) +/* 0081FC 700075FC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 008200 70007600 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 008204 70007604 000748C0 */ sll $t1, $a3, 3 +/* 008208 70007608 3C010001 */ lui $at, 1 +/* 00820C 7000760C 03295021 */ addu $t2, $t9, $t1 +/* 008210 70007610 8D450004 */ lw $a1, 4($t2) +/* 008214 70007614 3C038006 */ lui $v1, %hi(D_80063738) +/* 008218 70007618 00071040 */ sll $v0, $a3, 1 +/* 00821C 7000761C 00A1082B */ sltu $at, $a1, $at +/* 008220 70007620 10200005 */ beqz $at, .L70007638 +/* 008224 70007624 00621821 */ addu $v1, $v1, $v0 +/* 008228 70007628 0C001D63 */ jal music_related_3rd_block +/* 00822C 7000762C 24040001 */ li $a0, 1 +/* 008230 70007630 10000027 */ b .L700076D0 +/* 008234 70007634 8FBF001C */ lw $ra, 0x1c($sp) +.L70007638: +/* 008238 70007638 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 00823C 7000763C 3C068006 */ lui $a2, %hi(D_800637B8) +/* 008240 70007640 00C23021 */ addu $a2, $a2, $v0 +/* 008244 70007644 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 008248 70007648 3C088006 */ lui $t0, %hi(D_80063840) +/* 00824C 7000764C 2463000F */ addiu $v1, $v1, 0xf +/* 008250 70007650 8D083840 */ lw $t0, %lo(D_80063840)($t0) +/* 008254 70007654 346B000F */ ori $t3, $v1, 0xf +/* 008258 70007658 396C000F */ xori $t4, $t3, 0xf +/* 00825C 7000765C 24C6000F */ addiu $a2, $a2, 0xf +/* 008260 70007660 25830040 */ addiu $v1, $t4, 0x40 +/* 008264 70007664 34CD000F */ ori $t5, $a2, 0xf +/* 008268 70007668 39A6000F */ xori $a2, $t5, 0xf +/* 00826C 7000766C 01037821 */ addu $t7, $t0, $v1 +/* 008270 70007670 01E62023 */ subu $a0, $t7, $a2 +/* 008274 70007674 AFA40028 */ sw $a0, 0x28($sp) +/* 008278 70007678 0C001707 */ jal romCopy +/* 00827C 7000767C AFA82140 */ sw $t0, 0x2140($sp) +/* 008280 70007680 8FA40028 */ lw $a0, 0x28($sp) +/* 008284 70007684 8FA52140 */ lw $a1, 0x2140($sp) +/* 008288 70007688 0FC339FC */ jal decompressdata +/* 00828C 7000768C 27A60034 */ addiu $a2, $sp, 0x34 +/* 008290 70007690 3C048006 */ lui $a0, %hi(D_80063A50) +/* 008294 70007694 3C058006 */ lui $a1, %hi(D_80063840) +/* 008298 70007698 8CA53840 */ lw $a1, %lo(D_80063840)($a1) +/* 00829C 7000769C 0C0049E7 */ jal alCSeqNew +/* 0082A0 700076A0 24843A50 */ addiu $a0, %lo(D_80063A50) # addiu $a0, $a0, 0x3a50 +/* 0082A4 700076A4 3C058006 */ lui $a1, %hi(D_80063A50) +/* 0082A8 700076A8 24A53A50 */ addiu $a1, %lo(D_80063A50) # addiu $a1, $a1, 0x3a50 +/* 0082AC 700076AC 0C004B40 */ jal alCSPSetSeq +/* 0082B0 700076B0 8E040000 */ lw $a0, ($s0) +/* 0082B4 700076B4 0C001DD0 */ jal get_music3len +/* 0082B8 700076B8 00000000 */ nop +/* 0082BC 700076BC 0C001DD3 */ jal musicTrack3Vol +/* 0082C0 700076C0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0082C4 700076C4 0C004B50 */ jal alCSPPlay +/* 0082C8 700076C8 8E040000 */ lw $a0, ($s0) +.L700076CC: +/* 0082CC 700076CC 8FBF001C */ lw $ra, 0x1c($sp) +.L700076D0: +/* 0082D0 700076D0 8FB00018 */ lw $s0, 0x18($sp) +/* 0082D4 700076D4 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 0082D8 700076D8 03E00008 */ jr $ra +/* 0082DC 700076DC 00000000 */ nop +) +#endif + + +/** + * 82E0 700076E0 + */ +#ifdef NONMATCHING +void musicTrack3Stop(void) { + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + music3_playing = 0; + if (music3_track_num != 0) + { + // Node 2 + if (alCSPGetState(seqp_3) == 1) + { + // Node 3 + alCSPStop(seqp_3); + } + } + // Node 4 + music3_track_num = 0; + return; + // (function likely void) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack3Stop +/* 0082E0 700076E0 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 0082E4 700076E4 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 0082E8 700076E8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0082EC 700076EC AFBF0014 */ sw $ra, 0x14($sp) +/* 0082F0 700076F0 15C0000F */ bnez $t6, .L70007730 +/* 0082F4 700076F4 3C0F8002 */ lui $t7, %hi(music3_track_num) +/* 0082F8 700076F8 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) +/* 0082FC 700076FC 3C018002 */ lui $at, %hi(music3_playing) +/* 008300 70007700 AC204354 */ sw $zero, %lo(music3_playing)($at) +/* 008304 70007704 11E00008 */ beqz $t7, .L70007728 +/* 008308 70007708 3C048006 */ lui $a0, %hi(seqp_3) +/* 00830C 7000770C 0C00488C */ jal alCSPGetState +/* 008310 70007710 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 008314 70007714 24010001 */ li $at, 1 +/* 008318 70007718 14410003 */ bne $v0, $at, .L70007728 +/* 00831C 7000771C 3C048006 */ lui $a0, %hi(seqp_3) +/* 008320 70007720 0C004B5C */ jal alCSPStop +/* 008324 70007724 8C843730 */ lw $a0, %lo(seqp_3)($a0) +.L70007728: +/* 008328 70007728 3C018002 */ lui $at, %hi(music3_track_num) +/* 00832C 7000772C AC204344 */ sw $zero, %lo(music3_track_num)($at) +.L70007730: +/* 008330 70007730 8FBF0014 */ lw $ra, 0x14($sp) +/* 008334 70007734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008338 70007738 03E00008 */ jr $ra +/* 00833C 7000773C 00000000 */ nop +) +#endif + + + + + + +/** + * 8340 70007740 + * V0= 7FFF [80024348] + */ +u16 get_music3len(void) { + return music3len; +} + + + + + + + +/** + * 834C 7000774C + */ +#ifdef NONMATCHING +void musicTrack3Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music3len = temp_a2; + alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2); + return; + // (possible return value: alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2)) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack3Vol +/* 00834C 7000774C 3C0E8002 */ lui $t6, %hi(music3_track_num) +/* 008350 70007750 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) +/* 008354 70007754 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 008358 70007758 3086FFFF */ andi $a2, $a0, 0xffff +/* 00835C 7000775C 000E7840 */ sll $t7, $t6, 1 +/* 008360 70007760 030FC021 */ addu $t8, $t8, $t7 +/* 008364 70007764 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 008368 70007768 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00836C 7000776C AFA40018 */ sw $a0, 0x18($sp) +/* 008370 70007770 00D80019 */ multu $a2, $t8 +/* 008374 70007774 AFBF0014 */ sw $ra, 0x14($sp) +/* 008378 70007778 3C018002 */ lui $at, %hi(music3len) +/* 00837C 7000777C 3C048006 */ lui $a0, %hi(seqp_3) +/* 008380 70007780 A4264348 */ sh $a2, %lo(music3len)($at) +/* 008384 70007784 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 008388 70007788 00001012 */ mflo $v0 +/* 00838C 7000778C 0002CBC2 */ srl $t9, $v0, 0xf +/* 008390 70007790 00192C00 */ sll $a1, $t9, 0x10 +/* 008394 70007794 00054403 */ sra $t0, $a1, 0x10 +/* 008398 70007798 0C004B68 */ jal alCSPSetVol +/* 00839C 7000779C 01002825 */ move $a1, $t0 +/* 0083A0 700077A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0083A4 700077A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0083A8 700077A8 03E00008 */ jr $ra +/* 0083AC 700077AC 00000000 */ nop +) +#endif + + + + + + + +/** + * 83B0 700077B0 + */ +#ifdef NONMATCHING +void *music_related_10(void) { + // Node 0 + *(&music_tempo_array + (music3_track_num * 2)) = get_music3len(); + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + if (music_tempo_array.unk2 >= 0) + { + goto loop_1; + } + } + // (possible return value: &music_tempo_array) +} + +#else +GLOBAL_ASM( +.text +glabel music_related_10 +/* 0083B0 700077B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0083B4 700077B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0083B8 700077B8 0C001DD0 */ jal get_music3len +/* 0083BC 700077BC 00000000 */ nop +/* 0083C0 700077C0 3C0E8002 */ lui $t6, %hi(music3_track_num) +/* 0083C4 700077C4 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) +/* 0083C8 700077C8 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 0083CC 700077CC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 0083D0 700077D0 000E7840 */ sll $t7, $t6, 1 +/* 0083D4 700077D4 008FC021 */ addu $t8, $a0, $t7 +/* 0083D8 700077D8 A7020000 */ sh $v0, ($t8) +/* 0083DC 700077DC 84990000 */ lh $t9, ($a0) +/* 0083E0 700077E0 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 0083E4 700077E4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 0083E8 700077E8 07200005 */ bltz $t9, .L70007800 +/* 0083EC 700077EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0083F0 700077F0 84480002 */ lh $t0, 2($v0) +.L700077F4: +/* 0083F4 700077F4 24420002 */ addiu $v0, $v0, 2 +/* 0083F8 700077F8 0503FFFE */ bgezl $t0, .L700077F4 +/* 0083FC 700077FC 84480002 */ lh $t0, 2($v0) +.L70007800: +/* 008400 70007800 03E00008 */ jr $ra +/* 008404 70007804 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +/** + * 8408 70007808 + */ +#ifdef NONMATCHING +void music_related_11(f32 arg0, f32 arg6) { + // Node 0 + if (music3_playing >= 0) + { + // Node 1 + D_80063848 = get_music3len(); + music3_length = (u16)0; + music3_rate = (s32) (arg6 * 60.0f); + music3_playing = -1; + return; + // (possible return value: get_music3len()) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel music_related_11 +/* 008408 70007808 3C0E8002 */ lui $t6, %hi(music3_playing) +/* 00840C 7000780C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) +/* 008410 70007810 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 008414 70007814 AFBF0014 */ sw $ra, 0x14($sp) +/* 008418 70007818 05C00013 */ bltz $t6, .L70007868 +/* 00841C 7000781C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008420 70007820 0C001DD0 */ jal get_music3len +/* 008424 70007824 00000000 */ nop +/* 008428 70007828 3C018006 */ lui $at, %hi(D_80063848) +/* 00842C 7000782C A4223848 */ sh $v0, %lo(D_80063848)($at) +/* 008430 70007830 3C018006 */ lui $at, %hi(music3_length) +/* 008434 70007834 A420384E */ sh $zero, %lo(music3_length)($at) +/* 008438 70007838 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 00843C 7000783C 44813000 */ mtc1 $at, $f6 +/* 008440 70007840 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 008444 70007844 3C018006 */ lui $at, %hi(music3_rate) +/* 008448 70007848 2419FFFF */ li $t9, -1 +/* 00844C 7000784C 46062202 */ mul.s $f8, $f4, $f6 +/* 008450 70007850 4600428D */ trunc.w.s $f10, $f8 +/* 008454 70007854 44185000 */ mfc1 $t8, $f10 +/* 008458 70007858 00000000 */ nop +/* 00845C 7000785C AC383858 */ sw $t8, %lo(music3_rate)($at) +/* 008460 70007860 3C018002 */ lui $at, %hi(music3_playing) +/* 008464 70007864 AC394354 */ sw $t9, %lo(music3_playing)($at) +.L70007868: +/* 008468 70007868 8FBF0014 */ lw $ra, 0x14($sp) +/* 00846C 7000786C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008470 70007870 03E00008 */ jr $ra +/* 008474 70007874 00000000 */ nop +) +#endif + + + + + +/** + * 8478 70007878 + */ +#ifdef NONMATCHING +s16 music_related_13(f32 arg0, s32 arg1, f32 arg6, s16 arg7) { + // Node 0 + if (music3_playing <= 0) + { + // Node 1 + alCSPPlay(seqp_3); + if (arg7 == 0xffff) + { + // Node 2 + music3_length = (s16) D_80063848; + } + else + { + // Node 3 + music3_length = arg7; + } + // Node 4 + D_80063848 = (u16)0; + music3_rate = (s32) (arg6 * 60.0f); + music3_playing = 1; + return; + // (possible return value: arg7) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel music_related_13 +/* 008478 70007878 3C0E8002 */ lui $t6, %hi(music3_playing) +/* 00847C 7000787C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) +/* 008480 70007880 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 008484 70007884 AFBF0014 */ sw $ra, 0x14($sp) +/* 008488 70007888 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 00848C 7000788C 1DC0001D */ bgtz $t6, .L70007904 +/* 008490 70007890 AFA5001C */ sw $a1, 0x1c($sp) +/* 008494 70007894 3C048006 */ lui $a0, %hi(seqp_3) +/* 008498 70007898 0C004B50 */ jal alCSPPlay +/* 00849C 7000789C 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 0084A0 700078A0 97A2001E */ lhu $v0, 0x1e($sp) +/* 0084A4 700078A4 3401FFFF */ li $at, 65535 +/* 0084A8 700078A8 3C0F8006 */ lui $t7, %hi(D_80063848) +/* 0084AC 700078AC 14410005 */ bne $v0, $at, .L700078C4 +/* 0084B0 700078B0 00000000 */ nop +/* 0084B4 700078B4 95EF3848 */ lhu $t7, %lo(D_80063848)($t7) +/* 0084B8 700078B8 3C018006 */ lui $at, %hi(music3_length) +/* 0084BC 700078BC 10000003 */ b .L700078CC +/* 0084C0 700078C0 A42F384E */ sh $t7, %lo(music3_length)($at) +.L700078C4: +/* 0084C4 700078C4 3C018006 */ lui $at, %hi(music3_length) +/* 0084C8 700078C8 A422384E */ sh $v0, %lo(music3_length)($at) +.L700078CC: +/* 0084CC 700078CC 3C018006 */ lui $at, %hi(D_80063848) +/* 0084D0 700078D0 A4203848 */ sh $zero, %lo(D_80063848)($at) +/* 0084D4 700078D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0084D8 700078D8 44813000 */ mtc1 $at, $f6 +/* 0084DC 700078DC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0084E0 700078E0 3C018006 */ lui $at, %hi(music3_rate) +/* 0084E4 700078E4 24080001 */ li $t0, 1 +/* 0084E8 700078E8 46062202 */ mul.s $f8, $f4, $f6 +/* 0084EC 700078EC 4600428D */ trunc.w.s $f10, $f8 +/* 0084F0 700078F0 44195000 */ mfc1 $t9, $f10 +/* 0084F4 700078F4 00000000 */ nop +/* 0084F8 700078F8 AC393858 */ sw $t9, %lo(music3_rate)($at) +/* 0084FC 700078FC 3C018002 */ lui $at, %hi(music3_playing) +/* 008500 70007900 AC284354 */ sw $t0, %lo(music3_playing)($at) +.L70007904: +/* 008504 70007904 8FBF0014 */ lw $ra, 0x14($sp) +/* 008508 70007908 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00850C 7000790C 03E00008 */ jr $ra +/* 008510 70007910 00000000 */ nop +) +#endif + + + + + + +/** + * 8514 70007914 + */ +#ifdef NONMATCHING +void music_related_15(void) { + s16 sp1E; + s16 sp26; + s16 sp2E; + ? temp_ret; + s32 temp_a1; + s16 temp_t9; + s32 temp_t1; + ? temp_ret_2; + s32 temp_a1_2; + s16 temp_t0; + s32 temp_t2; + ? temp_ret_3; + s32 temp_a1_3; + s16 temp_t1_2; + s32 temp_t3; + + if (music1_playing != 0) + { + temp_ret_3 = musicTrack1Length(); + temp_a1_3 = (music1_length - temp_ret_3); + temp_t1_2 = ((temp_ret_3 + (s32) ((f32) temp_a1_3 / (f32) music1_rate)) & 0xffff); + sp2E = temp_t1_2; + musicTrack1Vol(temp_t1_2, temp_a1_3, &music1_rate); + temp_t3 = (music1_rate + -1); + music1_rate = temp_t3; + if (temp_t3 <= 0) + { + if (&seqp_1 == 0) + { + alCSPStop(seqp_1, &music1_rate); + } + music1_rate = 0; + music1_playing = 0; + } + } + if (music2_playing != 0) + { + temp_ret_2 = musicTrack2Length(); + temp_a1_2 = (music2_length - temp_ret_2); + temp_t0 = ((temp_ret_2 + (s32) ((f32) temp_a1_2 / (f32) music2_rate)) & 0xffff); + sp26 = temp_t0; + musicTrack2Vol(temp_t0, temp_a1_2, &music2_rate); + temp_t2 = (music2_rate + -1); + music2_rate = temp_t2; + if (temp_t2 <= 0) + { + if (&seqp_2 == 0) + { + alCSPStop(seqp_2, &music2_rate); + } + music2_rate = 0; + music2_playing = 0; + } + } + if (music3_playing != 0) + { + temp_ret = get_music3len(); + temp_a1 = (music3_length - temp_ret); + temp_t9 = ((temp_ret + (s32) ((f32) temp_a1 / (f32) music3_rate)) & 0xffff); + sp1E = temp_t9; + musicTrack3Vol(temp_t9, temp_a1, &music3_rate); + temp_t1 = (music3_rate + -1); + music3_rate = temp_t1; + if (temp_t1 <= 0) + { + if (&seqp_3 == 0) + { + alCSPStop(seqp_3, &music3_rate); + } + music3_rate = 0; + music3_playing = 0; + } + } +} +#else +GLOBAL_ASM( +.text +glabel music_related_15 +/* 008514 70007914 3C0E8002 */ lui $t6, %hi(music1_playing) +/* 008518 70007918 8DCE434C */ lw $t6, %lo(music1_playing)($t6) +/* 00851C 7000791C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 008520 70007920 AFBF0014 */ sw $ra, 0x14($sp) +/* 008524 70007924 11C00026 */ beqz $t6, .L700079C0 +/* 008528 70007928 00000000 */ nop +/* 00852C 7000792C 0C001C0C */ jal musicTrack1Length +/* 008530 70007930 00000000 */ nop +/* 008534 70007934 3C068006 */ lui $a2, %hi(music1_rate) +/* 008538 70007938 3C0F8006 */ lui $t7, %hi(music1_length) +/* 00853C 7000793C 95EF384A */ lhu $t7, %lo(music1_length)($t7) +/* 008540 70007940 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +/* 008544 70007944 8CD80000 */ lw $t8, ($a2) +/* 008548 70007948 01E22823 */ subu $a1, $t7, $v0 +/* 00854C 7000794C 44852000 */ mtc1 $a1, $f4 +/* 008550 70007950 44984000 */ mtc1 $t8, $f8 +/* 008554 70007954 468021A0 */ cvt.s.w $f6, $f4 +/* 008558 70007958 468042A0 */ cvt.s.w $f10, $f8 +/* 00855C 7000795C 460A3403 */ div.s $f16, $f6, $f10 +/* 008560 70007960 4600848D */ trunc.w.s $f18, $f16 +/* 008564 70007964 44089000 */ mfc1 $t0, $f18 +/* 008568 70007968 00000000 */ nop +/* 00856C 7000796C 00482021 */ addu $a0, $v0, $t0 +/* 008570 70007970 3089FFFF */ andi $t1, $a0, 0xffff +/* 008574 70007974 01202025 */ move $a0, $t1 +/* 008578 70007978 0C001C0F */ jal musicTrack1Vol +/* 00857C 7000797C A7A9002E */ sh $t1, 0x2e($sp) +/* 008580 70007980 3C068006 */ lui $a2, %hi(music1_rate) +/* 008584 70007984 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +/* 008588 70007988 8CCA0000 */ lw $t2, ($a2) +/* 00858C 7000798C 97A4002E */ lhu $a0, 0x2e($sp) +/* 008590 70007990 254BFFFF */ addiu $t3, $t2, -1 +/* 008594 70007994 1D60000A */ bgtz $t3, .L700079C0 +/* 008598 70007998 ACCB0000 */ sw $t3, ($a2) +/* 00859C 7000799C 14800005 */ bnez $a0, .L700079B4 +/* 0085A0 700079A0 3C048006 */ lui $a0, %hi(seqp_1) +/* 0085A4 700079A4 0C004B5C */ jal alCSPStop +/* 0085A8 700079A8 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0085AC 700079AC 3C068006 */ lui $a2, %hi(music1_rate) +/* 0085B0 700079B0 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +.L700079B4: +/* 0085B4 700079B4 ACC00000 */ sw $zero, ($a2) +/* 0085B8 700079B8 3C018002 */ lui $at, %hi(music1_playing) +/* 0085BC 700079BC AC20434C */ sw $zero, %lo(music1_playing)($at) +.L700079C0: +/* 0085C0 700079C0 3C0D8002 */ lui $t5, %hi(music2_playing) +/* 0085C4 700079C4 8DAD4350 */ lw $t5, %lo(music2_playing)($t5) +/* 0085C8 700079C8 11A00026 */ beqz $t5, .L70007A64 +/* 0085CC 700079CC 00000000 */ nop +/* 0085D0 700079D0 0C001CEE */ jal musicTrack2Length +/* 0085D4 700079D4 00000000 */ nop +/* 0085D8 700079D8 3C068006 */ lui $a2, %hi(music2_rate) +/* 0085DC 700079DC 3C0E8006 */ lui $t6, %hi(music2_length) +/* 0085E0 700079E0 95CE384C */ lhu $t6, %lo(music2_length)($t6) +/* 0085E4 700079E4 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +/* 0085E8 700079E8 8CCF0000 */ lw $t7, ($a2) +/* 0085EC 700079EC 01C22823 */ subu $a1, $t6, $v0 +/* 0085F0 700079F0 44852000 */ mtc1 $a1, $f4 +/* 0085F4 700079F4 448F3000 */ mtc1 $t7, $f6 +/* 0085F8 700079F8 46802220 */ cvt.s.w $f8, $f4 +/* 0085FC 700079FC 468032A0 */ cvt.s.w $f10, $f6 +/* 008600 70007A00 460A4403 */ div.s $f16, $f8, $f10 +/* 008604 70007A04 4600848D */ trunc.w.s $f18, $f16 +/* 008608 70007A08 44199000 */ mfc1 $t9, $f18 +/* 00860C 70007A0C 00000000 */ nop +/* 008610 70007A10 00592021 */ addu $a0, $v0, $t9 +/* 008614 70007A14 3088FFFF */ andi $t0, $a0, 0xffff +/* 008618 70007A18 01002025 */ move $a0, $t0 +/* 00861C 70007A1C 0C001CF1 */ jal musicTrack2Vol +/* 008620 70007A20 A7A80026 */ sh $t0, 0x26($sp) +/* 008624 70007A24 3C068006 */ lui $a2, %hi(music2_rate) +/* 008628 70007A28 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +/* 00862C 70007A2C 8CC90000 */ lw $t1, ($a2) +/* 008630 70007A30 97A40026 */ lhu $a0, 0x26($sp) +/* 008634 70007A34 252AFFFF */ addiu $t2, $t1, -1 +/* 008638 70007A38 1D40000A */ bgtz $t2, .L70007A64 +/* 00863C 70007A3C ACCA0000 */ sw $t2, ($a2) +/* 008640 70007A40 14800005 */ bnez $a0, .L70007A58 +/* 008644 70007A44 3C048006 */ lui $a0, %hi(seqp_2) +/* 008648 70007A48 0C004B5C */ jal alCSPStop +/* 00864C 70007A4C 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008650 70007A50 3C068006 */ lui $a2, %hi(music2_rate) +/* 008654 70007A54 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +.L70007A58: +/* 008658 70007A58 ACC00000 */ sw $zero, ($a2) +/* 00865C 70007A5C 3C018002 */ lui $at, %hi(music2_playing) +/* 008660 70007A60 AC204350 */ sw $zero, %lo(music2_playing)($at) +.L70007A64: +/* 008664 70007A64 3C0C8002 */ lui $t4, %hi(music3_playing) +/* 008668 70007A68 8D8C4354 */ lw $t4, %lo(music3_playing)($t4) +/* 00866C 70007A6C 51800027 */ beql $t4, $zero, .L70007B0C +/* 008670 70007A70 8FBF0014 */ lw $ra, 0x14($sp) +/* 008674 70007A74 0C001DD0 */ jal get_music3len +/* 008678 70007A78 00000000 */ nop +/* 00867C 70007A7C 3C068006 */ lui $a2, %hi(music3_rate) +/* 008680 70007A80 3C0D8006 */ lui $t5, %hi(music3_length) +/* 008684 70007A84 95AD384E */ lhu $t5, %lo(music3_length)($t5) +/* 008688 70007A88 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +/* 00868C 70007A8C 8CCE0000 */ lw $t6, ($a2) +/* 008690 70007A90 01A22823 */ subu $a1, $t5, $v0 +/* 008694 70007A94 44852000 */ mtc1 $a1, $f4 +/* 008698 70007A98 448E4000 */ mtc1 $t6, $f8 +/* 00869C 70007A9C 468021A0 */ cvt.s.w $f6, $f4 +/* 0086A0 70007AA0 468042A0 */ cvt.s.w $f10, $f8 +/* 0086A4 70007AA4 460A3403 */ div.s $f16, $f6, $f10 +/* 0086A8 70007AA8 4600848D */ trunc.w.s $f18, $f16 +/* 0086AC 70007AAC 44189000 */ mfc1 $t8, $f18 +/* 0086B0 70007AB0 00000000 */ nop +/* 0086B4 70007AB4 00582021 */ addu $a0, $v0, $t8 +/* 0086B8 70007AB8 3099FFFF */ andi $t9, $a0, 0xffff +/* 0086BC 70007ABC 03202025 */ move $a0, $t9 +/* 0086C0 70007AC0 0C001DD3 */ jal musicTrack3Vol +/* 0086C4 70007AC4 A7B9001E */ sh $t9, 0x1e($sp) +/* 0086C8 70007AC8 3C068006 */ lui $a2, %hi(music3_rate) +/* 0086CC 70007ACC 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +/* 0086D0 70007AD0 8CC80000 */ lw $t0, ($a2) +/* 0086D4 70007AD4 97A4001E */ lhu $a0, 0x1e($sp) +/* 0086D8 70007AD8 2509FFFF */ addiu $t1, $t0, -1 +/* 0086DC 70007ADC 1D20000A */ bgtz $t1, .L70007B08 +/* 0086E0 70007AE0 ACC90000 */ sw $t1, ($a2) +/* 0086E4 70007AE4 14800005 */ bnez $a0, .L70007AFC +/* 0086E8 70007AE8 3C048006 */ lui $a0, %hi(seqp_3) +/* 0086EC 70007AEC 0C004B5C */ jal alCSPStop +/* 0086F0 70007AF0 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 0086F4 70007AF4 3C068006 */ lui $a2, %hi(music3_rate) +/* 0086F8 70007AF8 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +.L70007AFC: +/* 0086FC 70007AFC ACC00000 */ sw $zero, ($a2) +/* 008700 70007B00 3C018002 */ lui $at, %hi(music3_playing) +/* 008704 70007B04 AC204354 */ sw $zero, %lo(music3_playing)($at) +.L70007B08: +/* 008708 70007B08 8FBF0014 */ lw $ra, 0x14($sp) +.L70007B0C: +/* 00870C 70007B0C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 008710 70007B10 03E00008 */ jr $ra +/* 008714 70007B14 00000000 */ nop +) +#endif + + + diff --git a/src/music.h b/src/music.h new file mode 100644 index 0000000..5894af6 --- /dev/null +++ b/src/music.h @@ -0,0 +1,48 @@ +#ifndef _MUSIC_H_ +#define _MUSIC_H_ +#include "ultra64.h" +#include "bondgame.h" + +extern s32 music_unused; +extern s32 music1_track_num; +extern s32 music1len; +extern s32 music2_track_num; +extern s32 music2len; +extern s32 music3_track_num; +extern s32 music3len; +extern s32 music1_playing; +extern s32 music2_playing; +extern s32 music3_playing; + +extern u32 hp[4]; +extern u32 *ptr_sfx_buf; +extern s32 D_80063724; +extern s32 seqp_1; +extern s32 seqp_2; +extern s32 seqp_3; +extern void *ptr_musicdatatable; + +extern char D_80063738[0x80]; +extern char D_800637B8[0x7E]; +extern s16 D_80063836; +extern s32 D_80063838; +extern s32 D_8006383C; +extern s32 D_80063840; +extern s16 musicTrack1_length; +extern s16 D_80063846; +extern s16 D_80063848; +extern s16 music1_length; +extern s16 music2_length; +extern s16 music3_length; +extern s32 music1_rate; +extern s32 music2_rate; +extern s32 music3_rate; +extern s32 D_8006385C; +extern char D_80063860[0xF8]; +extern char D_80063958[0xF8]; +extern char D_80063A50[0x100]; +extern char D_80063B50[0x54]; +extern s32 D_80063BA4; +extern s32 D_80063BA8; + +#endif diff --git a/src/osMapTLB.c b/src/osMapTLB.c new file mode 100644 index 0000000..6f908d6 --- /dev/null +++ b/src/osMapTLB.c @@ -0,0 +1,47 @@ +#include "ultra64.h" + +/** + * @file osMapTLB.c + * This file contains code thatsets TLB indexed entry 0 to mirror 1KB of rdram from 80000000 to C0000000. + * + * In particular, it: + * - should be made into an assembly file + */ + +/** + * 2380 70001780 + * sets TLB indexed entry 0 to mirror 1KB of rdram from 80000000 to C0000000 + * uncached, dirty, valid, global + */ +#ifdef NONMATCHING +void osMapTLBRdb(void) { + //i should probably remain as assembly, maybe even moved to a .s +} +#else +GLOBAL_ASM( +.text +glabel osMapTLBRdb +/* 002380 70001780 40085000 */ mfc0 $t0, $10 +/* 002384 70001784 24090000 */ li $t1, 0 +/* 002388 70001788 40890000 */ mtc0 $t1, $0 +/* 00238C 7000178C 40802800 */ mtc0 $zero, $5 +/* 002390 70001790 240A0017 */ li $t2, 23 +/* 002394 70001794 3C09C000 */ lui $t1, 0xc000 +/* 002398 70001798 40895000 */ mtc0 $t1, $10 +/* 00239C 7000179C 3C098000 */ lui $t1, 0x8000 +/* 0023A0 700017A0 00095982 */ srl $t3, $t1, 6 +/* 0023A4 700017A4 016A5825 */ or $t3, $t3, $t2 +/* 0023A8 700017A8 408B1000 */ mtc0 $t3, $2 +/* 0023AC 700017AC 24090001 */ li $t1, 1 +/* 0023B0 700017B0 40891800 */ mtc0 $t1, $3 +/* 0023B4 700017B4 00000000 */ nop +/* 0023B8 700017B8 42000002 */ tlbwi +/* 0023BC 700017BC 00000000 */ nop +/* 0023C0 700017C0 00000000 */ nop +/* 0023C4 700017C4 00000000 */ nop +/* 0023C8 700017C8 00000000 */ nop +/* 0023CC 700017CC 40885000 */ mtc0 $t0, $10 +/* 0023D0 700017D0 03E00008 */ jr $ra +/* 0023D4 700017D4 00000000 */ nop +) +#endif diff --git a/src/pi.c b/src/pi.c new file mode 100644 index 0000000..7e31117 --- /dev/null +++ b/src/pi.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + + +OSMesg piCmdBuf[0x8]; +OSMesgQueue piCmdQ; + +void piCreateManager(void) { + osCreatePiManager(0x96, &piCmdQ, &piCmdBuf, 8); +} diff --git a/src/pi.h b/src/pi.h new file mode 100644 index 0000000..1071755 --- /dev/null +++ b/src/pi.h @@ -0,0 +1,10 @@ +#ifndef _PI_H_ +#define _PI_H_ +#include + +extern OSMesg piCmdBuf[0x8]; +extern OSMesgQueue piCmdQ; + +void piCreateManager(void); + +#endif \ No newline at end of file diff --git a/src/ramrom.c b/src/ramrom.c new file mode 100644 index 0000000..8dd72c8 --- /dev/null +++ b/src/ramrom.c @@ -0,0 +1,95 @@ +#include "ultra64.h" +#include "ramrom.h" + +/** + * @file ramrom.c + * This file contains code to handle reading and writing rom addresses. + */ + +#define align_addr_zero(X) ((((X) + 0xF) | 0xF) ^ 0xF) +#define align_addr_even(X) (((X) | 1) ^ 1) + +OSIoMesg memoryMesgMB; +OSMesg memoryMesg; +OSMesgQueue memoryMesgQueue; + +/** + * 6760 70005B60 + * external + * romCreateMesgQueue + * creates a message queue + */ +void romCreateMesgQueue(void) { + osCreateMesgQueue(&memoryMesgQueue, &memoryMesg, 1); +} + +/** + * 6790 70005B90 + * doRomCopy + * invalidate cache and do pi dma + */ +void doRomCopy(void *target, void *source, u32 size) { + osInvalDCache(target, size); + osPiStartDma(&memoryMesgMB, 0, 0, source, target, size, &memoryMesgQueue); +} + +/** + * 67F0 70005BF0 + * romReceiveMesg + * receives a message queue + */ +void romReceiveMesg(void) { + osRecvMesg(&memoryMesgQueue, 0, 1); +} + +/** + * 681C 70005C1C + * external + * romCopy + * copy from rom to ram + */ +void romCopy(void *target, void *source, u32 size) { + doRomCopy(target, source, size); + romReceiveMesg(); +} + +/** + * 6844 70005C44 + * external + * romCopyAligned + * aligns data, does a romCopy(), then returns aligned pointer to target + */ +s32 romCopyAligned(void *target, void *source, s32 length) { + s32 target_offset; + s32 *target_aligned; + s32 *source_aligned; + s32 *source_offset; + + source_aligned = align_addr_even((s32)source); + source_offset = (s32)source - (s32)source_aligned; + target_aligned = align_addr_zero((s32)target); + target_offset = source_offset; + romCopy(target_aligned, source_aligned, align_addr_zero((s32)source_offset + length)); + return ((s32)target_aligned + target_offset); +} + +/** + * 68A8 70005CA8 + * doRomWrite + * actually writes to rom (buffer on Indy) + */ +void doRomWrite(void *source, void *target, u32 size) { + osWritebackDCache(source, size); + osPiStartDma(&memoryMesgMB, 0, 1, target, source, size, &memoryMesgQueue); +} + +/** + * 6908 70005D08 + * external + * romWrite + * let's write to the rom (buffer on Indy) + */ +void romWrite(void *source, void *target, u32 size) { + doRomWrite(source, target, size); + romReceiveMesg(); +} diff --git a/src/ramrom.h b/src/ramrom.h new file mode 100644 index 0000000..ea79684 --- /dev/null +++ b/src/ramrom.h @@ -0,0 +1,10 @@ +#ifndef _RAMROM_H_ +#define _RAMROM_H_ +#include + +void romCreateMesgQueue(void); +void romCopy(void *target, void *source, u32 size); +s32 romCopyAligned(void *target, void *source, s32 length); +void romWrite(void *source, void *target, u32 size); + +#endif diff --git a/src/random.c b/src/random.c new file mode 100644 index 0000000..779ba1d --- /dev/null +++ b/src/random.c @@ -0,0 +1,96 @@ +#include "ultra64.h" + + +u64 randseed = 0xAB8D9F7781280783; + + + +#ifdef NONMATCHING +u32 get_random_value(void) { + ulonglong uVar1; + + uVar1 = ((randseed << 0x3f) >> 0x1f | (randseed << 0x1f) >> 0x20) ^ (randseed << 0x2c) >> 0x20; + randseed = uVar1 >> 0x14 & 0xfff ^ uVar1; + return (u32)randseed; +} +#else +GLOBAL_ASM( +.text +glabel get_random_value +/* 00B050 7000A450 3C048002 */ lui $a0, %hi(randseed) +/* 00B054 7000A454 DC844460 */ ld $a0, %lo(randseed)($a0) +/* 00B058 7000A458 3C018002 */ lui $at, %hi(randseed) +/* 00B05C 7000A45C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 00B060 7000A460 00042FF8 */ dsll $a1, $a0, 0x1f +/* 00B064 7000A464 000637FA */ dsrl $a2, $a2, 0x1f +/* 00B068 7000A468 0005283E */ dsrl32 $a1, $a1, 0 +/* 00B06C 7000A46C 0004233C */ dsll32 $a0, $a0, 0xc +/* 00B070 7000A470 00C53025 */ or $a2, $a2, $a1 +/* 00B074 7000A474 0004203E */ dsrl32 $a0, $a0, 0 +/* 00B078 7000A478 00C43026 */ xor $a2, $a2, $a0 +/* 00B07C 7000A47C 0006253A */ dsrl $a0, $a2, 0x14 +/* 00B080 7000A480 30840FFF */ andi $a0, $a0, 0xfff +/* 00B084 7000A484 00862026 */ xor $a0, $a0, $a2 +/* 00B088 7000A488 0004103C */ dsll32 $v0, $a0, 0 +/* 00B08C 7000A48C FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B090 7000A490 03E00008 */ jr $ra +/* 00B094 7000A494 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + +#ifdef NONMATCHING +void increment_random_num(u64 param_1) { + randseed = param_1 + 1; + return; +} +#else +GLOBAL_ASM( +.text +glabel increment_random_num +/* 00B098 7000A498 64840001 */ daddiu $a0, $a0, 1 +/* 00B09C 7000A49C 3C018002 */ lui $at, %hi(randseed) +/* 00B0A0 7000A4A0 FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B0A4 7000A4A4 03E00008 */ jr $ra +/* 00B0A8 7000A4A8 24040000 */ li $a0, 0 +) +#endif + + + +#ifdef NONMATCHING +u32 lotsa_shifting_random_related(ulonglong *param_1) { + ulonglong uVar1; + + uVar1 = *param_1; + uVar1 = ((uVar1 << 0x3f) >> 0x1f | (uVar1 << 0x1f) >> 0x20) ^ (uVar1 << 0x2c) >> 0x20; + uVar1 = uVar1 >> 0x14 & 0xfff ^ uVar1; + *param_1 = uVar1; + return (u32)uVar1; +} +#else +GLOBAL_ASM( +.text +glabel lotsa_shifting_randomizer_related +/* 00B0AC 7000A4AC DC870000 */ ld $a3, ($a0) +/* 00B0B0 7000A4B0 000737FC */ dsll32 $a2, $a3, 0x1f +/* 00B0B4 7000A4B4 00072FF8 */ dsll $a1, $a3, 0x1f +/* 00B0B8 7000A4B8 000637FA */ dsrl $a2, $a2, 0x1f +/* 00B0BC 7000A4BC 0005283E */ dsrl32 $a1, $a1, 0 +/* 00B0C0 7000A4C0 00073B3C */ dsll32 $a3, $a3, 0xc +/* 00B0C4 7000A4C4 00C53025 */ or $a2, $a2, $a1 +/* 00B0C8 7000A4C8 0007383E */ dsrl32 $a3, $a3, 0 +/* 00B0CC 7000A4CC 00C73026 */ xor $a2, $a2, $a3 +/* 00B0D0 7000A4D0 00063D3A */ dsrl $a3, $a2, 0x14 +/* 00B0D4 7000A4D4 30E70FFF */ andi $a3, $a3, 0xfff +/* 00B0D8 7000A4D8 00E63826 */ xor $a3, $a3, $a2 +/* 00B0DC 7000A4DC 0007103C */ dsll32 $v0, $a3, 0 +/* 00B0E0 7000A4E0 FC870000 */ sd $a3, ($a0) +/* 00B0E4 7000A4E4 03E00008 */ jr $ra +/* 00B0E8 7000A4E8 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + diff --git a/src/rmon.c b/src/rmon.c new file mode 100644 index 0000000..1d7930e --- /dev/null +++ b/src/rmon.c @@ -0,0 +1,131 @@ +#include "ultra64.h" + + +void rmonproc(void) { + // (function likely void) +} + +s32 rmon_debug_is_final_build(void) { + return 1; +} + +s32 rmon_debug_returns_neg_1(void) { + return -1; +} + + +void rmon_debug_stub(void) { + // (function likely void) +} + + +void rmon_debug_stub_0(void) { + // (function likely void) +} + +void rmon_debug_stub_1(void) { + // (function likely void) +} + +void rmon_debug_stub_2(void) { + // (function likely void) +} + +void rmon_debug_stub_3(void) { + // (function likely void) +} + +void rmon_debug_stub_4(void) { + // (function likely void) +} + + + +#ifdef NONMATCHING +? proutSyncPrintf(s32 arg0, void *arg1, s32 arg2) +{ + s32 temp_s0; + void *phi_s1; + s32 phi_s0; + + if (arg2 != 0) + { + phi_s1 = arg1; + phi_s0 = 0; +loop_2: + temp_s0 = phi_s0 + 1; + __osRdbSend(*phi_s1); + phi_s1 = phi_s1 + 1; + phi_s0 = temp_s0; + if (temp_s0 != arg2) + { + goto loop_2; + } + } + return 1; +} +#else +GLOBAL_ASM( +.text +glabel proutSyncPrintf +/* 00DAE8 7000CEE8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00DAEC 7000CEEC AFB20020 */ sw $s2, 0x20($sp) +/* 00DAF0 7000CEF0 AFB00018 */ sw $s0, 0x18($sp) +/* 00DAF4 7000CEF4 00C09025 */ move $s2, $a2 +/* 00DAF8 7000CEF8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00DAFC 7000CEFC AFB1001C */ sw $s1, 0x1c($sp) +/* 00DB00 7000CF00 AFA40028 */ sw $a0, 0x28($sp) +/* 00DB04 7000CF04 10C00008 */ beqz $a2, .L7000CF28 +/* 00DB08 7000CF08 00008025 */ move $s0, $zero +/* 00DB0C 7000CF0C 00A08825 */ move $s1, $a1 +/* 00DB10 7000CF10 92240000 */ lbu $a0, ($s1) +.L7000CF14: +/* 00DB14 7000CF14 26100001 */ addiu $s0, $s0, 1 +/* 00DB18 7000CF18 0C0015AF */ jal __osRdbSend +/* 00DB1C 7000CF1C 26310001 */ addiu $s1, $s1, 1 +/* 00DB20 7000CF20 5612FFFC */ bnel $s0, $s2, .L7000CF14 +/* 00DB24 7000CF24 92240000 */ lbu $a0, ($s1) +.L7000CF28: +/* 00DB28 7000CF28 8FBF0024 */ lw $ra, 0x24($sp) +/* 00DB2C 7000CF2C 8FB00018 */ lw $s0, 0x18($sp) +/* 00DB30 7000CF30 8FB1001C */ lw $s1, 0x1c($sp) +/* 00DB34 7000CF34 8FB20020 */ lw $s2, 0x20($sp) +/* 00DB38 7000CF38 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00DB3C 7000CF3C 03E00008 */ jr $ra +/* 00DB40 7000CF40 24020001 */ li $v0, 1 +) +#endif + + + +#ifdef NONMATCHING +void osSyncPrintf(s32 arg0, s32 arg1, ? arg2, ? arg3) +{ + _Printf(&proutSyncPrintf, 0, arg0, &arg1); +} +#else +GLOBAL_ASM( +.text +glabel osSyncPrintf +/* 00DB44 7000CF44 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00DB48 7000CF48 AFA40020 */ sw $a0, 0x20($sp) +/* 00DB4C 7000CF4C AFBF0014 */ sw $ra, 0x14($sp) +/* 00DB50 7000CF50 AFA50024 */ sw $a1, 0x24($sp) +/* 00DB54 7000CF54 AFA60028 */ sw $a2, 0x28($sp) +/* 00DB58 7000CF58 AFA7002C */ sw $a3, 0x2c($sp) +/* 00DB5C 7000CF5C 3C047001 */ lui $a0, %hi(proutSyncPrintf) # $a0, 0x7001 +/* 00DB60 7000CF60 2484CEE8 */ addiu $a0, %lo(proutSyncPrintf) # addiu $a0, $a0, -0x3118 +/* 00DB64 7000CF64 27A70024 */ addiu $a3, $sp, 0x24 +/* 00DB68 7000CF68 8FA60020 */ lw $a2, 0x20($sp) +/* 00DB6C 7000CF6C 0C004FD8 */ jal _Printf +/* 00DB70 7000CF70 00002825 */ move $a1, $zero +/* 00DB74 7000CF74 8FBF0014 */ lw $ra, 0x14($sp) +/* 00DB78 7000CF78 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00DB7C 7000CF7C 03E00008 */ jr $ra +/* 00DB80 7000CF80 00000000 */ nop +) +#endif + + + + diff --git a/src/rmon.h b/src/rmon.h new file mode 100644 index 0000000..90be18d --- /dev/null +++ b/src/rmon.h @@ -0,0 +1,8 @@ +#ifndef _RMON_H_ +#define _RMON_H_ +#include + +void rmonproc(void); + + +#endif diff --git a/src/rom_header.s b/src/rom_header.s new file mode 100644 index 0000000..d16b1ed --- /dev/null +++ b/src/rom_header.s @@ -0,0 +1,24 @@ + +.section .data +.byte 0x80, 0x37, 0x12, 0x40 # PI BSD Domain 1 register +.word 0x0000000F # clock rate setting +.word 0x80000400 # entry point +.word 0x00001447 # release +.word 0xDCBC50D1 # checksum1 +.word 0x09FD1AA3 # checksum2 +.word 0x00000000 # unknown +.word 0x00000000 # unknown +.ascii "GOLDENEYE " # ROM name: 20 bytes +.word 0x00000000 # unknown +.word 0x0000004E # cartridge +.ascii "GE" # cartridge ID +.ifdef VERSION_US +.ascii "E" # country +.endif +.ifdef VERSION_JP +.ascii "J" # country +.endif +.ifdef VERSION_EU +.ascii "P" # country +.endif +.byte 0x00 # version diff --git a/src/rspboot.s b/src/rspboot.s new file mode 100644 index 0000000..20d272a --- /dev/null +++ b/src/rspboot.s @@ -0,0 +1,25 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel rspbootTextStart +.ifdef VERSION_US +.incbin "build/u/rsp/rspboot.bin" +.endif +.ifdef VERSION_JP +.incbin "build/j/rsp/rspboot.bin" +.endif +.ifdef VERSION_EU +.incbin "build/e/rsp/rspboot.bin" +.endif +glabel rspbootTextEnd +.section .data +.section .rodata +.section .bss diff --git a/src/sched.c b/src/sched.c new file mode 100644 index 0000000..357edeb --- /dev/null +++ b/src/sched.c @@ -0,0 +1,1394 @@ +#include +#include "init.h" +#include "sched.h" +#include "bondgame.h" +#include "deb_print.h" + +/** + * @file sched.c + * This file contains the scheduler. + * + * In particular, it: + * - is based on but modified by rare from code included in sdk + * - + * - + */ + +u32 stderr_unused = 0; +u32 stderr_enabled = 0; +u32 stderr_active = 0; +u32 stderr_permitted = 0; +u32 userCompareValue = 45000000; +u32 currentcount = 0; +u32 setby_DPCfill_0 = 0; +u32 setby_DPCfill_1 = 0; +//800230b0 +f32 something_with_osVI_0 = 0.0; +f32 something_with_osVI_4 = 1.0; +f32 something_with_osVI_8 = 1.0; +f32 something_with_osVI_C = 1.0; +f32 something_with_osVI_10 = 1.0; +f32 something_with_osVI_14 = 0.0; +f32 something_with_osVI_18 = 0.0; + +u32 D_800230CC = 1; + + +OSSched sc; +//temporary until i get proper sized structs +OSScClient gfxClient[3]; +//char gfxClient[0x18]; + +char target_for_counters_maybe[0x10]; +char dword_CODE_bss_8005DB40[0xB0]; + + +/** + * 1570 70000970 + * A0-> stderr.activated [80023098]; fry AT + */ +void activate_stderr(u32 flag) +{ + stderr_active = flag; +} + +/** + * 157C 7000097C + * A0-> stderr.enable [80023094]; fry AT + */ +void enable_stderr(u32 flag) +{ + stderr_enabled = flag; +} + +/** + * 1588 70000988 + * A0-> stderr.permitted [8002309C]; fry AT + */ +void permit_stderr(u32 flag) +{ + stderr_permitted = flag; +} + +/** + * 1594 70000994 + * A0-> user.Compare [800230A0]; fry AT + */ +void setUserCompareValue(u32 value) +{ + userCompareValue = value; +} + +/** + * 15A0 700009A0 + * test to display stderr and update Count + */ +void CheckDisplayErrorBuffer(u32 *buffer) +{ + if ((stderr_permitted && stderr_active) || stderr_enabled ) + { + write_stderr_to_buffer(buffer); + currentcount = osGetCount(); + } +} + +/** + * 15F8 700009F8 + * test to display stderr every 16th frame + */ + +void CheckDisplayErrorBufferEvery16Frames(u32 framecount) +{ + if (!(framecount & 0xf)) + { + if ((stderr_permitted && stderr_active) || stderr_enabled) + { + if (userCompareValue < (osGetCount() - currentcount)) + { + write_stderr_to_buffer((u32*)cfb_16_a); + write_stderr_to_buffer((u32*)cfb_16_b); + } + } + } +} + +/** + * Not 100% on name, came from osInitialize's call to function + * 1688 70000A88 + * store current Count to 800230A4 + */ +void osCreateLog(void){ + currentcount=osGetCount(); +} + +/** + * 16AC 70000AAC + * (thread management) + */ +#ifdef NONMATCHING +void osCreateScheduler (OSSched * sc, void * stack, u8 mode, u8 numFields) +{ + sc->curRSPTask = 0; + sc->curRDPTask = 0; + sc->clientList = 0; + sc->frameCount = 0; + sc->audioListHead = 0; + sc->gfxListHead = 0; + sc->audioListTail = 0; + sc->gfxListTail = 0; + sc->retraceMsg.type = 1; + sc->prenmiMsg.type = 5; + sc->thread = stack; + osCreateMesgQueue(&sc->interruptQ, sc->intBuf, 8); + osCreateMesgQueue(&sc->cmdQ, sc->cmdMsgBuf, 8); + osCreateViManager(0xfe); + + viMode = osViModeTable[mode]; + viMode.comRegs.ctrl = osViModeTable[mode].comRegs.hStart; + viMode.comRegs.width = osViModeTable[mode].fldRegs[0].vStart; + viMode.comRegs.burst = osViModeTable[mode].fldRegs[1].vStart; + + osSetEventMesg(4, &sc->interruptQ, 0x29b); + osSetEventMesg(9, &sc->interruptQ, 0x29c); + osSetEventMesg(0xe, &sc->interruptQ, 0x29d); + osViSetEvent(&sc->interruptQ, 0x29a, numFields); + osCreateLog(); + osCreateThread(sc->thread, 2, &__scMain, sc, set_stack_entry(&sp_shed, 0x200), 0x1e); + osStartThread(sc->thread); +} +#else +GLOBAL_ASM( +glabel osCreateScheduler +/* 0016AC 70000AAC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0016B0 70000AB0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0016B4 70000AB4 AFB10020 */ sw $s1, 0x20($sp) +/* 0016B8 70000AB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 0016BC 70000ABC AFA5002C */ sw $a1, 0x2c($sp) +/* 0016C0 70000AC0 AFA60030 */ sw $a2, 0x30($sp) +/* 0016C4 70000AC4 AFA70034 */ sw $a3, 0x34($sp) +/* 0016C8 70000AC8 240E0001 */ li $t6, 1 +/* 0016CC 70000ACC 240F0005 */ li $t7, 5 +/* 0016D0 70000AD0 AC8000C8 */ sw $zero, 0xc8($a0) +/* 0016D4 70000AD4 AC8000CC */ sw $zero, 0xcc($a0) +/* 0016D8 70000AD8 AC8000B4 */ sw $zero, 0xb4($a0) +/* 0016DC 70000ADC AC8000D0 */ sw $zero, 0xd0($a0) +/* 0016E0 70000AE0 AC8000B8 */ sw $zero, 0xb8($a0) +/* 0016E4 70000AE4 AC8000BC */ sw $zero, 0xbc($a0) +/* 0016E8 70000AE8 AC8000C0 */ sw $zero, 0xc0($a0) +/* 0016EC 70000AEC AC8000C4 */ sw $zero, 0xc4($a0) +/* 0016F0 70000AF0 A48E0000 */ sh $t6, ($a0) +/* 0016F4 70000AF4 A48F0020 */ sh $t7, 0x20($a0) +/* 0016F8 70000AF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 0016FC 70000AFC 00808025 */ move $s0, $a0 +/* 001700 70000B00 24910040 */ addiu $s1, $a0, 0x40 +/* 001704 70000B04 AC9800B0 */ sw $t8, 0xb0($a0) +/* 001708 70000B08 02202025 */ move $a0, $s1 +/* 00170C 70000B0C 26050058 */ addiu $a1, $s0, 0x58 +/* 001710 70000B10 0C0035B4 */ jal osCreateMesgQueue +/* 001714 70000B14 24060008 */ li $a2, 8 +/* 001718 70000B18 26040078 */ addiu $a0, $s0, 0x78 +/* 00171C 70000B1C 26050090 */ addiu $a1, $s0, 0x90 +/* 001720 70000B20 0C0035B4 */ jal osCreateMesgQueue +/* 001724 70000B24 24060008 */ li $a2, 8 +/* 001728 70000B28 0C00363C */ jal osCreateViManager +/* 00172C 70000B2C 240400FE */ li $a0, 254 +/* 001730 70000B30 93B90033 */ lbu $t9, 0x33($sp) +/* 001734 70000B34 3C098002 */ lui $t1, %hi(osViModeTable) +/* 001738 70000B38 3C038006 */ lui $v1, %hi(viMode) +/* 00173C 70000B3C 00194080 */ sll $t0, $t9, 2 +/* 001740 70000B40 01194021 */ addu $t0, $t0, $t9 +/* 001744 70000B44 00084100 */ sll $t0, $t0, 4 +/* 001748 70000B48 252969C0 */ addiu $t1, %lo(osViModeTable) # addiu $t1, $t1, 0x69c0 +/* 00174C 70000B4C 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 001750 70000B50 01095021 */ addu $t2, $t0, $t1 +/* 001754 70000B54 AC6A0000 */ sw $t2, ($v1) +/* 001758 70000B58 8D4B001C */ lw $t3, 0x1c($t2) +/* 00175C 70000B5C 3C018006 */ lui $at, %hi(viMode+0x4) +/* 001760 70000B60 24040004 */ li $a0, 4 +/* 001764 70000B64 AC2B0880 */ sw $t3, %lo(viMode+0x4)($at) +/* 001768 70000B68 8D4C0030 */ lw $t4, 0x30($t2) +/* 00176C 70000B6C 3C018006 */ lui $at, %hi(viMode+0x8) +/* 001770 70000B70 02202825 */ move $a1, $s1 +/* 001774 70000B74 AC2C0884 */ sw $t4, %lo(viMode+0x8)($at) +/* 001778 70000B78 8D4D0044 */ lw $t5, 0x44($t2) +/* 00177C 70000B7C 3C018006 */ lui $at, %hi(viMode+0xC) +/* 001780 70000B80 2406029B */ li $a2, 667 +/* 001784 70000B84 0C003714 */ jal osSetEventMesg +/* 001788 70000B88 AC2D0888 */ sw $t5, %lo(viMode+0xC)($at) +/* 00178C 70000B8C 24040009 */ li $a0, 9 +/* 001790 70000B90 02202825 */ move $a1, $s1 +/* 001794 70000B94 0C003714 */ jal osSetEventMesg +/* 001798 70000B98 2406029C */ li $a2, 668 +/* 00179C 70000B9C 2404000E */ li $a0, 14 +/* 0017A0 70000BA0 02202825 */ move $a1, $s1 +/* 0017A4 70000BA4 0C003714 */ jal osSetEventMesg +/* 0017A8 70000BA8 2406029D */ li $a2, 669 +/* 0017AC 70000BAC 02202025 */ move $a0, $s1 +/* 0017B0 70000BB0 2405029A */ li $a1, 666 +/* 0017B4 70000BB4 0C003730 */ jal osViSetEvent +/* 0017B8 70000BB8 8FA60034 */ lw $a2, 0x34($sp) +/* 0017BC 70000BBC 0C0002A2 */ jal osCreateLog +/* 0017C0 70000BC0 00000000 */ nop +/* 0017C4 70000BC4 3C04803B */ lui $a0, %hi(sp_shed) # $a0, 0x803b +/* 0017C8 70000BC8 2484B750 */ addiu $a0, %lo(sp_shed) # addiu $a0, $a0, -0x48b0 +/* 0017CC 70000BCC 0C0001BC */ jal set_stack_entry +/* 0017D0 70000BD0 24050200 */ li $a1, 512 +/* 0017D4 70000BD4 8E0400B0 */ lw $a0, 0xb0($s0) +/* 0017D8 70000BD8 3C067000 */ lui $a2, %hi(__scMain) # $a2, 0x7000 +/* 0017DC 70000BDC 240E001E */ li $t6, 30 +/* 0017E0 70000BE0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0017E4 70000BE4 24C60D00 */ addiu $a2, %lo(__scMain) # addiu $a2, $a2, 0xd00 +/* 0017E8 70000BE8 AFA20010 */ sw $v0, 0x10($sp) +/* 0017EC 70000BEC 24050002 */ li $a1, 2 +/* 0017F0 70000BF0 0C00350C */ jal osCreateThread +/* 0017F4 70000BF4 02003825 */ move $a3, $s0 +/* 0017F8 70000BF8 0C003560 */ jal osStartThread +/* 0017FC 70000BFC 8E0400B0 */ lw $a0, 0xb0($s0) +/* 001800 70000C00 8FBF0024 */ lw $ra, 0x24($sp) +/* 001804 70000C04 8FB0001C */ lw $s0, 0x1c($sp) +/* 001808 70000C08 8FB10020 */ lw $s1, 0x20($sp) +/* 00180C 70000C0C 03E00008 */ jr $ra +/* 001810 70000C10 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 1814 70000C14 + */ +void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next) +{ + OSIntMask mask; + + mask = osSetIntMask(1); + + c->msgQ = msgQ; + c[1].next = next; + c->next = sc->clientList; + sc->clientList = c; + + osSetIntMask(mask); +} + + +/** + * 1870 70000C70 + */ +void osScRemoveClient(OSSched *sc, OSScClient *c) +{ + OSScClient *client = sc->clientList; + OSScClient *prev = 0; + OSIntMask mask; + + mask = osSetIntMask(1); + + while (client != 0) + { + if (client == c) + { + if(prev) + prev->next = c->next; + else + sc->clientList = c->next; + break; + } + prev = client; + client = client->next; + } + + osSetIntMask(mask); +} + + +/** + * 18F8 70000CF8 + * V0= A0+78 + */ +OSMesgQueue *osScGetCmdQ(OSSched *sc) +{ + return &sc->cmdQ; +} + +/** + * 1900 70000D00 + */ +#ifdef NONMATCHING +void __scMain(void *arg) +{ + OSMesg msg; + OSSched *sc = (OSSched *)arg; + OSScClient *client; + static int count = 0; + + while (1) { + + osRecvMesg(&sc->interruptQ, (OSMesg *)&msg, OS_MESG_BLOCK); + + switch ((int) msg) { + case (0x29a): + __scHandleRetrace(sc); + break; + + case (0x29b): + __scHandleRSP(sc); + break; + + case (0x29c): + __scHandleRDP(sc); + break; + + case (0x29d): + reset_cont_rumble_detect(); + for (client = sc->clientList;client != 0;client = client->next) { + osSendMesg(client->msgQ, (OSMesg) &sc->prenmiMsg, OS_MESG_NOBLOCK); + } + break; + } + } + if (osTvType == 2) + { + osViSetMode(0x80027320); + } + else + { + osViSetMode(0x80026a60); + } + osViSetXScale(1.00000000); + osViSetYScale(1.00000000); + osViRepeatLine(0); + osViBlack(1); + + while (1) { + while ((u32)msg != 0x29a) { + osRecvMesg(&sc->interruptQ,&msg,1); + } + controllerSchedulerRelated(); + } + +} +#else +GLOBAL_ASM( +glabel __scMain +/* 001900 70000D00 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 001904 70000D04 AFB50028 */ sw $s5, 0x28($sp) +/* 001908 70000D08 AFB40024 */ sw $s4, 0x24($sp) +/* 00190C 70000D0C AFB30020 */ sw $s3, 0x20($sp) +/* 001910 70000D10 AFB2001C */ sw $s2, 0x1c($sp) +/* 001914 70000D14 AFB00014 */ sw $s0, 0x14($sp) +/* 001918 70000D18 00809025 */ move $s2, $a0 +/* 00191C 70000D1C AFBF002C */ sw $ra, 0x2c($sp) +/* 001920 70000D20 AFB10018 */ sw $s1, 0x18($sp) +/* 001924 70000D24 AFA0004C */ sw $zero, 0x4c($sp) +/* 001928 70000D28 00008025 */ move $s0, $zero +/* 00192C 70000D2C 24930040 */ addiu $s3, $a0, 0x40 +/* 001930 70000D30 27B4004C */ addiu $s4, $sp, 0x4c +/* 001934 70000D34 2415029A */ li $s5, 666 +/* 001938 70000D38 02602025 */ move $a0, $s3 +.L70000D3C: +/* 00193C 70000D3C 02802825 */ move $a1, $s4 +/* 001940 70000D40 0C003774 */ jal osRecvMesg +/* 001944 70000D44 24060001 */ li $a2, 1 +/* 001948 70000D48 8FAE004C */ lw $t6, 0x4c($sp) +/* 00194C 70000D4C 2401029B */ li $at, 667 +/* 001950 70000D50 11D50009 */ beq $t6, $s5, .L70000D78 +/* 001954 70000D54 00000000 */ nop +/* 001958 70000D58 11C1000B */ beq $t6, $at, .L70000D88 +/* 00195C 70000D5C 2401029C */ li $at, 668 +/* 001960 70000D60 11C1000D */ beq $t6, $at, .L70000D98 +/* 001964 70000D64 2401029D */ li $at, 669 +/* 001968 70000D68 11C1000F */ beq $t6, $at, .L70000DA8 +/* 00196C 70000D6C 00000000 */ nop +/* 001970 70000D70 1000001B */ b .L70000DE0 +/* 001974 70000D74 00000000 */ nop +.L70000D78: +/* 001978 70000D78 0C0003AD */ jal __scHandleRetrace +/* 00197C 70000D7C 02402025 */ move $a0, $s2 +/* 001980 70000D80 10000017 */ b .L70000DE0 +/* 001984 70000D84 00000000 */ nop +.L70000D88: +/* 001988 70000D88 0C000405 */ jal __scHandleRSP +/* 00198C 70000D8C 02402025 */ move $a0, $s2 +/* 001990 70000D90 10000013 */ b .L70000DE0 +/* 001994 70000D94 00000000 */ nop +.L70000D98: +/* 001998 70000D98 0C00044A */ jal __scHandleRDP +/* 00199C 70000D9C 02402025 */ move $a0, $s2 +/* 0019A0 70000DA0 1000000F */ b .L70000DE0 +/* 0019A4 70000DA4 00000000 */ nop +.L70000DA8: +/* 0019A8 70000DA8 0C003237 */ jal reset_cont_rumble_detect +/* 0019AC 70000DAC 00000000 */ nop +/* 0019B0 70000DB0 8E5000B4 */ lw $s0, 0xb4($s2) +/* 0019B4 70000DB4 26510020 */ addiu $s1, $s2, 0x20 +/* 0019B8 70000DB8 52000009 */ beql $s0, $zero, .L70000DE0 +/* 0019BC 70000DBC 24100001 */ li $s0, 1 +/* 0019C0 70000DC0 8E040004 */ lw $a0, 4($s0) +.L70000DC4: +/* 0019C4 70000DC4 02202825 */ move $a1, $s1 +/* 0019C8 70000DC8 0C0037C4 */ jal osSendMesg +/* 0019CC 70000DCC 00003025 */ move $a2, $zero +/* 0019D0 70000DD0 8E100000 */ lw $s0, ($s0) +/* 0019D4 70000DD4 5600FFFB */ bnezl $s0, .L70000DC4 +/* 0019D8 70000DD8 8E040004 */ lw $a0, 4($s0) +/* 0019DC 70000DDC 24100001 */ li $s0, 1 +.L70000DE0: +/* 0019E0 70000DE0 5200FFD6 */ beql $s0, $zero, .L70000D3C +/* 0019E4 70000DE4 02602025 */ move $a0, $s3 +/* 0019E8 70000DE8 3C0F8000 */ lui $t7, %hi(osTvType) +/* 0019EC 70000DEC 8DEF0300 */ lw $t7, %lo(osTvType)($t7) +/* 0019F0 70000DF0 24010002 */ li $at, 2 +/* 0019F4 70000DF4 3C048002 */ lui $a0, %hi(osViModeTable_osViModeNtscLan1) +/* 0019F8 70000DF8 15E10006 */ bne $t7, $at, .L70000E14 +/* 0019FC 70000DFC 00000000 */ nop +/* 001A00 70000E00 3C048002 */ lui $a0, %hi(osViModeTable_osViModeMpalLan1) +/* 001A04 70000E04 0C003818 */ jal osViSetMode +/* 001A08 70000E08 24847320 */ addiu $a0, %lo(osViModeTable_osViModeMpalLan1) # addiu $a0, $a0, 0x7320 +/* 001A0C 70000E0C 10000004 */ b .L70000E20 +/* 001A10 70000E10 3C013F80 */ lui $at, 0x3f80 +.L70000E14: +/* 001A14 70000E14 0C003818 */ jal osViSetMode +/* 001A18 70000E18 24846A60 */ addiu $a0, $a0, %lo(osViModeTable_osViModeNtscLan1) +/* 001A1C 70000E1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L70000E20: +/* 001A20 70000E20 44816000 */ mtc1 $at, $f12 +/* 001A24 70000E24 0C003834 */ jal osViSetXScale +/* 001A28 70000E28 00000000 */ nop +/* 001A2C 70000E2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 001A30 70000E30 44816000 */ mtc1 $at, $f12 +/* 001A34 70000E34 0C003880 */ jal osViSetYScale +/* 001A38 70000E38 00000000 */ nop +/* 001A3C 70000E3C 0C003898 */ jal osViRepeatLine +/* 001A40 70000E40 00002025 */ move $a0, $zero +/* 001A44 70000E44 0C0038B4 */ jal osViBlack +/* 001A48 70000E48 24040001 */ li $a0, 1 +/* 001A4C 70000E4C 02602025 */ move $a0, $s3 +.L70000E50: +/* 001A50 70000E50 02802825 */ move $a1, $s4 +/* 001A54 70000E54 0C003774 */ jal osRecvMesg +/* 001A58 70000E58 24060001 */ li $a2, 1 +/* 001A5C 70000E5C 8FB8004C */ lw $t8, 0x4c($sp) +/* 001A60 70000E60 5715FFFB */ bnel $t8, $s5, .L70000E50 +/* 001A64 70000E64 02602025 */ move $a0, $s3 +/* 001A68 70000E68 0C002F62 */ jal controllerSchedulerRelated +/* 001A6C 70000E6C 00000000 */ nop +/* 001A70 70000E70 1000FFF7 */ b .L70000E50 +/* 001A74 70000E74 02602025 */ move $a0, $s3 +/* 001A78 70000E78 00000000 */ nop +/* 001A7C 70000E7C 00000000 */ nop +/* 001A80 70000E80 00000000 */ nop +/* 001A84 70000E84 00000000 */ nop +/* 001A88 70000E88 00000000 */ nop +/* 001A8C 70000E8C 00000000 */ nop +/* 001A90 70000E90 8FBF002C */ lw $ra, 0x2c($sp) +/* 001A94 70000E94 8FB00014 */ lw $s0, 0x14($sp) +/* 001A98 70000E98 8FB10018 */ lw $s1, 0x18($sp) +/* 001A9C 70000E9C 8FB2001C */ lw $s2, 0x1c($sp) +/* 001AA0 70000EA0 8FB30020 */ lw $s3, 0x20($sp) +/* 001AA4 70000EA4 8FB40024 */ lw $s4, 0x24($sp) +/* 001AA8 70000EA8 8FB50028 */ lw $s5, 0x28($sp) +/* 001AAC 70000EAC 03E00008 */ jr $ra +/* 001AB0 70000EB0 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +/** + * 1AB4 70000EB4 + */ +#ifdef NONMATCHING +void __scHandleRetrace(OSSched *sc) +{ + OSScTask *rspTask = 0; + + OSScClient *client; + //s32 i; + s32 state; + OSScTask *sp = 0; + OSScTask *dp = 0; + + + video_related_1(); + sc->frameCount++; + video_related_7(); + controllerSchedulerRelated(); + music_related_15(); + while (osRecvMesg(&sc->cmdQ, (OSMesg *)&rspTask, OS_MESG_NOBLOCK) != -1) { + __scAppendList(sc, rspTask); + } + if (sc->doAudio && sc->curRSPTask) { + __scYield(sc); + } else { + state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); + if ( __scSchedule (sc, &sp, &dp, state) != state) + __scExec(sc, sp, dp); + } + + for (client = sc->clientList; client != 0; client = client->next) { + osSendMesg(client->msgQ, (OSMesg) &sc->retraceMsg, OS_MESG_NOBLOCK); + } + + CheckDisplayErrorBufferEvery16Frames(sc->frameCount); +} +#else +GLOBAL_ASM( +glabel __scHandleRetrace +/* 001AB4 70000EB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 001AB8 70000EB8 AFBF0024 */ sw $ra, 0x24($sp) +/* 001ABC 70000EBC AFB10018 */ sw $s1, 0x18($sp) +/* 001AC0 70000EC0 00808825 */ move $s1, $a0 +/* 001AC4 70000EC4 AFB30020 */ sw $s3, 0x20($sp) +/* 001AC8 70000EC8 AFB2001C */ sw $s2, 0x1c($sp) +/* 001ACC 70000ECC AFB00014 */ sw $s0, 0x14($sp) +/* 001AD0 70000ED0 AFA0003C */ sw $zero, 0x3c($sp) +/* 001AD4 70000ED4 AFA00030 */ sw $zero, 0x30($sp) +/* 001AD8 70000ED8 0C0009E9 */ jal video_related_1 +/* 001ADC 70000EDC AFA0002C */ sw $zero, 0x2c($sp) +/* 001AE0 70000EE0 8E2E00D0 */ lw $t6, 0xd0($s1) +/* 001AE4 70000EE4 25CF0001 */ addiu $t7, $t6, 1 +/* 001AE8 70000EE8 0C000C68 */ jal video_related_7 +/* 001AEC 70000EEC AE2F00D0 */ sw $t7, 0xd0($s1) +/* 001AF0 70000EF0 0C002F62 */ jal controllerSchedulerRelated +/* 001AF4 70000EF4 00000000 */ nop +/* 001AF8 70000EF8 0C001E45 */ jal music_related_15 +/* 001AFC 70000EFC 00000000 */ nop +/* 001B00 70000F00 27B3003C */ addiu $s3, $sp, 0x3c +/* 001B04 70000F04 26320078 */ addiu $s2, $s1, 0x78 +/* 001B08 70000F08 02402025 */ move $a0, $s2 +/* 001B0C 70000F0C 02602825 */ move $a1, $s3 +/* 001B10 70000F10 0C003774 */ jal osRecvMesg +/* 001B14 70000F14 00003025 */ move $a2, $zero +/* 001B18 70000F18 2410FFFF */ li $s0, -1 +/* 001B1C 70000F1C 10500009 */ beq $v0, $s0, .L70000F44 +/* 001B20 70000F20 02202025 */ move $a0, $s1 +.L70000F24: +/* 001B24 70000F24 0C0004F6 */ jal __scAppendList +/* 001B28 70000F28 8FA5003C */ lw $a1, 0x3c($sp) +/* 001B2C 70000F2C 02402025 */ move $a0, $s2 +/* 001B30 70000F30 02602825 */ move $a1, $s3 +/* 001B34 70000F34 0C003774 */ jal osRecvMesg +/* 001B38 70000F38 00003025 */ move $a2, $zero +/* 001B3C 70000F3C 5450FFF9 */ bnel $v0, $s0, .L70000F24 +/* 001B40 70000F40 02202025 */ move $a0, $s1 +.L70000F44: +/* 001B44 70000F44 8E3800D4 */ lw $t8, 0xd4($s1) +/* 001B48 70000F48 02202025 */ move $a0, $s1 +/* 001B4C 70000F4C 27A50030 */ addiu $a1, $sp, 0x30 +/* 001B50 70000F50 53000009 */ beql $t8, $zero, .L70000F78 +/* 001B54 70000F54 8E2800C8 */ lw $t0, 0xc8($s1) +/* 001B58 70000F58 8E3900C8 */ lw $t9, 0xc8($s1) +/* 001B5C 70000F5C 53200006 */ beql $t9, $zero, .L70000F78 +/* 001B60 70000F60 8E2800C8 */ lw $t0, 0xc8($s1) +/* 001B64 70000F64 0C000558 */ jal __scYield +/* 001B68 70000F68 02202025 */ move $a0, $s1 +/* 001B6C 70000F6C 10000010 */ b .L70000FB0 +/* 001B70 70000F70 8E3000B4 */ lw $s0, 0xb4($s1) +/* 001B74 70000F74 8E2800C8 */ lw $t0, 0xc8($s1) +.L70000F78: +/* 001B78 70000F78 8E2B00CC */ lw $t3, 0xcc($s1) +/* 001B7C 70000F7C 27A6002C */ addiu $a2, $sp, 0x2c +/* 001B80 70000F80 2D090001 */ sltiu $t1, $t0, 1 +/* 001B84 70000F84 00095040 */ sll $t2, $t1, 1 +/* 001B88 70000F88 2D6C0001 */ sltiu $t4, $t3, 1 +/* 001B8C 70000F8C 014C8025 */ or $s0, $t2, $t4 +/* 001B90 70000F90 0C000567 */ jal __scSchedule +/* 001B94 70000F94 02003825 */ move $a3, $s0 +/* 001B98 70000F98 10500004 */ beq $v0, $s0, .L70000FAC +/* 001B9C 70000F9C 02202025 */ move $a0, $s1 +/* 001BA0 70000FA0 8FA50030 */ lw $a1, 0x30($sp) +/* 001BA4 70000FA4 0C000510 */ jal __scExec +/* 001BA8 70000FA8 8FA6002C */ lw $a2, 0x2c($sp) +.L70000FAC: +/* 001BAC 70000FAC 8E3000B4 */ lw $s0, 0xb4($s1) +.L70000FB0: +/* 001BB0 70000FB0 1200000F */ beqz $s0, .L70000FF0 +/* 001BB4 70000FB4 00000000 */ nop +/* 001BB8 70000FB8 8E0D0008 */ lw $t5, 8($s0) +.L70000FBC: +/* 001BBC 70000FBC 02202825 */ move $a1, $s1 +/* 001BC0 70000FC0 00003025 */ move $a2, $zero +/* 001BC4 70000FC4 11A00005 */ beqz $t5, .L70000FDC +/* 001BC8 70000FC8 00000000 */ nop +/* 001BCC 70000FCC 8E2E00D0 */ lw $t6, 0xd0($s1) +/* 001BD0 70000FD0 31CF0001 */ andi $t7, $t6, 1 +/* 001BD4 70000FD4 55E00004 */ bnezl $t7, .L70000FE8 +/* 001BD8 70000FD8 8E100000 */ lw $s0, ($s0) +.L70000FDC: +/* 001BDC 70000FDC 0C0037C4 */ jal osSendMesg +/* 001BE0 70000FE0 8E040004 */ lw $a0, 4($s0) +/* 001BE4 70000FE4 8E100000 */ lw $s0, ($s0) +.L70000FE8: +/* 001BE8 70000FE8 5600FFF4 */ bnezl $s0, .L70000FBC +/* 001BEC 70000FEC 8E0D0008 */ lw $t5, 8($s0) +.L70000FF0: +/* 001BF0 70000FF0 0C00027E */ jal CheckDisplayErrorBufferEvery16Frames +/* 001BF4 70000FF4 8E2400D0 */ lw $a0, 0xd0($s1) +/* 001BF8 70000FF8 8FBF0024 */ lw $ra, 0x24($sp) +/* 001BFC 70000FFC 8FB00014 */ lw $s0, 0x14($sp) +/* 001C00 70001000 8FB10018 */ lw $s1, 0x18($sp) +/* 001C04 70001004 8FB2001C */ lw $s2, 0x1c($sp) +/* 001C08 70001008 8FB30020 */ lw $s3, 0x20($sp) +/* 001C0C 7000100C 03E00008 */ jr $ra +/* 001C10 70001010 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 1C14 70001014 + */ +#ifdef NONMATCHING +void __scHandleRSP(OSSched *sc) +{ + OSScTask *t, *sp = 0, *dp = 0; + s32 state; + + t = sc->curRSPTask; + sc->curRSPTask = 0; + video_related_3(0x10001); + if (((t->state & 0x10) != 0) && (osSpTaskYielded(t->list) != 0)) + { + t->state = (s32) (t->state | 0x20); + if ((t->flags & 7) == 3) + { + *t = (void *) sc->gfxListHead; + sc->gfxListHead = t; + if (sc->gfxListTail == 0) + { + sc->gfxListTail = t; + } + } + } + else + { + t->state = (s32) (t->state & -3); + __scTaskComplete(sc, t); + } + if (__scSchedule(sc, &sp, &dp, ((((u32) sc->curRSPTask < 1U) * 2) | ((u32) sc->curRDPTask < 1U)))) + { + __scExec(sc, sp, dp); + } +} + +#else +GLOBAL_ASM( +glabel __scHandleRSP +/* 001C14 70001014 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 001C18 70001018 AFBF001C */ sw $ra, 0x1c($sp) +/* 001C1C 7000101C AFB00018 */ sw $s0, 0x18($sp) +/* 001C20 70001020 AFA00028 */ sw $zero, 0x28($sp) +/* 001C24 70001024 AFA00024 */ sw $zero, 0x24($sp) +/* 001C28 70001028 8C8500C8 */ lw $a1, 0xc8($a0) +/* 001C2C 7000102C 00808025 */ move $s0, $a0 +/* 001C30 70001030 AC8000C8 */ sw $zero, 0xc8($a0) +/* 001C34 70001034 3C040001 */ lui $a0, (0x00010001 >> 16) # lui $a0, 1 +/* 001C38 70001038 34840001 */ ori $a0, (0x00010001 & 0xFFFF) # ori $a0, $a0, 1 +/* 001C3C 7000103C 0C000A15 */ jal video_related_3 +/* 001C40 70001040 AFA5002C */ sw $a1, 0x2c($sp) +/* 001C44 70001044 8FA5002C */ lw $a1, 0x2c($sp) +/* 001C48 70001048 8CAE0004 */ lw $t6, 4($a1) +/* 001C4C 7000104C 24A40010 */ addiu $a0, $a1, 0x10 +/* 001C50 70001050 31CF0010 */ andi $t7, $t6, 0x10 +/* 001C54 70001054 51E00015 */ beql $t7, $zero, .L700010AC +/* 001C58 70001058 8CAC0004 */ lw $t4, 4($a1) +/* 001C5C 7000105C 0C0038D0 */ jal osSpTaskYielded +/* 001C60 70001060 AFA5002C */ sw $a1, 0x2c($sp) +/* 001C64 70001064 10400010 */ beqz $v0, .L700010A8 +/* 001C68 70001068 8FA5002C */ lw $a1, 0x2c($sp) +/* 001C6C 7000106C 8CB80004 */ lw $t8, 4($a1) +/* 001C70 70001070 8CA80008 */ lw $t0, 8($a1) +/* 001C74 70001074 24010003 */ li $at, 3 +/* 001C78 70001078 37190020 */ ori $t9, $t8, 0x20 +/* 001C7C 7000107C 31090007 */ andi $t1, $t0, 7 +/* 001C80 70001080 1521000F */ bne $t1, $at, .L700010C0 +/* 001C84 70001084 ACB90004 */ sw $t9, 4($a1) +/* 001C88 70001088 8E0A00BC */ lw $t2, 0xbc($s0) +/* 001C8C 7000108C ACAA0000 */ sw $t2, ($a1) +/* 001C90 70001090 8E0B00C4 */ lw $t3, 0xc4($s0) +/* 001C94 70001094 AE0500BC */ sw $a1, 0xbc($s0) +/* 001C98 70001098 5560000A */ bnezl $t3, .L700010C4 +/* 001C9C 7000109C 8E0E00C8 */ lw $t6, 0xc8($s0) +/* 001CA0 700010A0 10000007 */ b .L700010C0 +/* 001CA4 700010A4 AE0500C4 */ sw $a1, 0xc4($s0) +.L700010A8: +/* 001CA8 700010A8 8CAC0004 */ lw $t4, 4($a1) +.L700010AC: +/* 001CAC 700010AC 2401FFFD */ li $at, -3 +/* 001CB0 700010B0 02002025 */ move $a0, $s0 +/* 001CB4 700010B4 01816824 */ and $t5, $t4, $at +/* 001CB8 700010B8 0C00048C */ jal __scTaskComplete +/* 001CBC 700010BC ACAD0004 */ sw $t5, 4($a1) +.L700010C0: +/* 001CC0 700010C0 8E0E00C8 */ lw $t6, 0xc8($s0) +.L700010C4: +/* 001CC4 700010C4 8E1900CC */ lw $t9, 0xcc($s0) +/* 001CC8 700010C8 02002025 */ move $a0, $s0 +/* 001CCC 700010CC 2DCF0001 */ sltiu $t7, $t6, 1 +/* 001CD0 700010D0 000FC040 */ sll $t8, $t7, 1 +/* 001CD4 700010D4 2F280001 */ sltiu $t0, $t9, 1 +/* 001CD8 700010D8 03083825 */ or $a3, $t8, $t0 +/* 001CDC 700010DC AFA70020 */ sw $a3, 0x20($sp) +/* 001CE0 700010E0 27A50028 */ addiu $a1, $sp, 0x28 +/* 001CE4 700010E4 0C000567 */ jal __scSchedule +/* 001CE8 700010E8 27A60024 */ addiu $a2, $sp, 0x24 +/* 001CEC 700010EC 8FA70020 */ lw $a3, 0x20($sp) +/* 001CF0 700010F0 02002025 */ move $a0, $s0 +/* 001CF4 700010F4 8FA50028 */ lw $a1, 0x28($sp) +/* 001CF8 700010F8 50470004 */ beql $v0, $a3, .L7000110C +/* 001CFC 700010FC 8FBF001C */ lw $ra, 0x1c($sp) +/* 001D00 70001100 0C000510 */ jal __scExec +/* 001D04 70001104 8FA60024 */ lw $a2, 0x24($sp) +/* 001D08 70001108 8FBF001C */ lw $ra, 0x1c($sp) +.L7000110C: +/* 001D0C 7000110C 8FB00018 */ lw $s0, 0x18($sp) +/* 001D10 70001110 27BD0030 */ addiu $sp, $sp, 0x30 +/* 001D14 70001114 03E00008 */ jr $ra +/* 001D18 70001118 00000000 */ nop +) +#endif + +/** + * 1D1C 7000111C + * V0= 8005DB30: target for DP Cmd clock, buffer counter, pipe counter, and tmem counter + */ +char *get_counters(void) +{ + return &target_for_counters_maybe; +} + +/** + * 1D28 70001128 + */ +#ifdef NONMATCHING +void __scHandleRDP(void *arg0) +{ + ?32 sp28; + ?32 sp24; + + sp28 = 0; + sp24 = 0; + if (arg0->unkCC != 0) + { + video_related_3(0x10002); + osDpGetCounters(&target_for_counters_maybe); + arg0->unkCC = NULL; + arg0->unkCC->unk4 = (s32) (arg0->unkCC->unk4 & -2); + __scTaskComplete(arg0, arg0->unkCC); + if (__scSchedule(arg0, &sp28, &sp24, ((((u32) arg0->unkC8 < 1U) * 2) | ((u32) arg0->unkCC < 1U))) != sp20) + { + __scExec(arg0, sp28, sp24, sp20); + } + } +} + +#else +GLOBAL_ASM( +glabel __scHandleRDP +/* 001D28 70001128 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 001D2C 7000112C AFBF001C */ sw $ra, 0x1c($sp) +/* 001D30 70001130 AFB00018 */ sw $s0, 0x18($sp) +/* 001D34 70001134 AFA00028 */ sw $zero, 0x28($sp) +/* 001D38 70001138 AFA00024 */ sw $zero, 0x24($sp) +/* 001D3C 7000113C 8C8E00CC */ lw $t6, 0xcc($a0) +/* 001D40 70001140 00808025 */ move $s0, $a0 +/* 001D44 70001144 3C040001 */ lui $a0, (0x00010002 >> 16) # lui $a0, 1 +/* 001D48 70001148 51C00021 */ beql $t6, $zero, .L700011D0 +/* 001D4C 7000114C 8FBF001C */ lw $ra, 0x1c($sp) +/* 001D50 70001150 0C000A15 */ jal video_related_3 +/* 001D54 70001154 34840002 */ ori $a0, (0x00010002 & 0xFFFF) # ori $a0, $a0, 2 +/* 001D58 70001158 3C048006 */ lui $a0, %hi(target_for_counters_maybe) +/* 001D5C 7000115C 0C0038F0 */ jal osDpGetCounters +/* 001D60 70001160 2484DB30 */ addiu $a0, %lo(target_for_counters_maybe) # addiu $a0, $a0, -0x24d0 +/* 001D64 70001164 8E0500CC */ lw $a1, 0xcc($s0) +/* 001D68 70001168 AE0000CC */ sw $zero, 0xcc($s0) +/* 001D6C 7000116C 2401FFFE */ li $at, -2 +/* 001D70 70001170 8CAF0004 */ lw $t7, 4($a1) +/* 001D74 70001174 02002025 */ move $a0, $s0 +/* 001D78 70001178 01E1C024 */ and $t8, $t7, $at +/* 001D7C 7000117C 0C00048C */ jal __scTaskComplete +/* 001D80 70001180 ACB80004 */ sw $t8, 4($a1) +/* 001D84 70001184 8E1900C8 */ lw $t9, 0xc8($s0) +/* 001D88 70001188 8E0A00CC */ lw $t2, 0xcc($s0) +/* 001D8C 7000118C 02002025 */ move $a0, $s0 +/* 001D90 70001190 2F280001 */ sltiu $t0, $t9, 1 +/* 001D94 70001194 00084840 */ sll $t1, $t0, 1 +/* 001D98 70001198 2D4B0001 */ sltiu $t3, $t2, 1 +/* 001D9C 7000119C 012B3825 */ or $a3, $t1, $t3 +/* 001DA0 700011A0 AFA70020 */ sw $a3, 0x20($sp) +/* 001DA4 700011A4 27A50028 */ addiu $a1, $sp, 0x28 +/* 001DA8 700011A8 0C000567 */ jal __scSchedule +/* 001DAC 700011AC 27A60024 */ addiu $a2, $sp, 0x24 +/* 001DB0 700011B0 8FA70020 */ lw $a3, 0x20($sp) +/* 001DB4 700011B4 02002025 */ move $a0, $s0 +/* 001DB8 700011B8 8FA50028 */ lw $a1, 0x28($sp) +/* 001DBC 700011BC 50470004 */ beql $v0, $a3, .L700011D0 +/* 001DC0 700011C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 001DC4 700011C4 0C000510 */ jal __scExec +/* 001DC8 700011C8 8FA60024 */ lw $a2, 0x24($sp) +/* 001DCC 700011CC 8FBF001C */ lw $ra, 0x1c($sp) +.L700011D0: +/* 001DD0 700011D0 8FB00018 */ lw $s0, 0x18($sp) +/* 001DD4 700011D4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 001DD8 700011D8 03E00008 */ jr $ra +/* 001DDC 700011DC 00000000 */ nop +) +#endif + +/** + * 1DE0 700011E0 + * + */ +OSScTask *__scTaskReady(OSScTask *t) +{ + void *a; + void *b; + + if (t) { + if ((a=osViGetCurrentFramebuffer()) != (b=osViGetNextFramebuffer())) { + return 0; + } + + return t; + } + + return 0; +} + +/** + * 1E30 70001230 + */ +#ifdef NONMATCHING +void __scTaskComplete(s32 arg0, void *arg1) +{ + s32 temp_t2; + void *temp_t8; + void *temp_t8_2; + void *temp_t5; + s32 temp_t7; + s32 temp_t0; + void *phi_t8; + void *phi_t5; + s32 phi_v1; + s32 phi_t0; + ? phi_return; + + phi_return = 0; + if ((arg1->unk4 & 3) == 0) + { + osSendMesg(arg1->unk50, arg1->unk54, 1); + if (arg1->unk10 == 1) + { + if ((arg1->unk8 & 0x40) != 0) + { + if ((arg1->unk8 & 0x20) != 0) + { + if (D_800230CC != 0) + { + osViBlack(0); + D_800230CC = 0; + } + temp_t2 = (something_with_osVI * 4); + phi_v1 = temp_t2; + if ((0x80020000 + temp_t2)->unk30C4 != 0) + { + temp_t8 = ((something_with_osVI * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8 = temp_t8; + phi_t5 = (0x80060000 + (something_with_osVI * 4))->unk-2420; +block_8: + temp_t8_2 = (phi_t8 + 0xc); + temp_t5 = (phi_t5 + 0xc); + temp_t5->unk-C = (?32) *phi_t8; + temp_t5->unk-8 = (?32) temp_t8_2->unk-8; + temp_t5->unk-4 = (?32) temp_t8_2->unk-4; + phi_t8 = temp_t8_2; + phi_t5 = temp_t5; + if (temp_t8_2 != (temp_t8 + 0x48)) + { + goto block_8; + } + *temp_t5 = (?32) *temp_t8_2; + temp_t5->unk4 = (?32) temp_t8_2->unk4; + osSetIntMask(osSetIntMask(0x80401)); + phi_v1 = (something_with_osVI * 4); + } + osViSetXScale((0x80020000 + phi_v1)->unk30B4); + osViSetYScale((0x80020000 + (something_with_osVI * 4))->unk30BC); + temp_t7 = (something_with_osVI + 1); + temp_t0 = (temp_t7 & 1); + phi_t0 = temp_t0; + if (temp_t7 < 0) + { + phi_t0 = temp_t0; + if (temp_t0 != 0) + { + phi_t0 = (temp_t0 + -2); + } + } + something_with_osVI = (s32) phi_t0; + CheckDisplayErrorBuffer(arg1->unkC); + osViSwapBuffer(arg1->unkC); + } + } + } + phi_return = 1; + } + return phi_return; +} +#else +GLOBAL_ASM( +glabel __scTaskComplete +/* 001E30 70001230 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 001E34 70001234 AFBF001C */ sw $ra, 0x1c($sp) +/* 001E38 70001238 AFB00018 */ sw $s0, 0x18($sp) +/* 001E3C 7000123C AFA40020 */ sw $a0, 0x20($sp) +/* 001E40 70001240 8CAE0004 */ lw $t6, 4($a1) +/* 001E44 70001244 00A08025 */ move $s0, $a1 +/* 001E48 70001248 24060001 */ li $a2, 1 +/* 001E4C 7000124C 31CF0003 */ andi $t7, $t6, 3 +/* 001E50 70001250 15E0005C */ bnez $t7, .L700013C4 +/* 001E54 70001254 00001025 */ move $v0, $zero +/* 001E58 70001258 8CA40050 */ lw $a0, 0x50($a1) +/* 001E5C 7000125C 0C0037C4 */ jal osSendMesg +/* 001E60 70001260 8CA50054 */ lw $a1, 0x54($a1) +/* 001E64 70001264 8E180010 */ lw $t8, 0x10($s0) +/* 001E68 70001268 24010001 */ li $at, 1 +/* 001E6C 7000126C 17010053 */ bne $t8, $at, .L700013BC +/* 001E70 70001270 00000000 */ nop +/* 001E74 70001274 8E020008 */ lw $v0, 8($s0) +/* 001E78 70001278 30590040 */ andi $t9, $v0, 0x40 +/* 001E7C 7000127C 1320004F */ beqz $t9, .L700013BC +/* 001E80 70001280 30480020 */ andi $t0, $v0, 0x20 +/* 001E84 70001284 1100004D */ beqz $t0, .L700013BC +/* 001E88 70001288 3C098002 */ lui $t1, %hi(D_800230CC) +/* 001E8C 7000128C 8D2930CC */ lw $t1, %lo(D_800230CC)($t1) +/* 001E90 70001290 11200005 */ beqz $t1, .L700012A8 +/* 001E94 70001294 00000000 */ nop +/* 001E98 70001298 0C0038B4 */ jal osViBlack +/* 001E9C 7000129C 00002025 */ move $a0, $zero +/* 001EA0 700012A0 3C018002 */ lui $at, %hi(D_800230CC) +/* 001EA4 700012A4 AC2030CC */ sw $zero, %lo(D_800230CC)($at) +.L700012A8: +/* 001EA8 700012A8 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001EAC 700012AC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001EB0 700012B0 3C0B8002 */ lui $t3, %hi(something_with_osVI_14) +/* 001EB4 700012B4 3C040008 */ lui $a0, (0x00080401 >> 16) # lui $a0, 8 +/* 001EB8 700012B8 00035080 */ sll $t2, $v1, 2 +/* 001EBC 700012BC 016A5821 */ addu $t3, $t3, $t2 +/* 001EC0 700012C0 8D6B30C4 */ lw $t3, %lo(something_with_osVI_14)($t3) +/* 001EC4 700012C4 01401825 */ move $v1, $t2 +/* 001EC8 700012C8 11600023 */ beqz $t3, .L70001358 +/* 001ECC 700012CC 00000000 */ nop +/* 001ED0 700012D0 0C00374C */ jal osSetIntMask +/* 001ED4 700012D4 34840401 */ ori $a0, (0x00080401 & 0xFFFF) # ori $a0, $a0, 0x401 +/* 001ED8 700012D8 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001EDC 700012DC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001EE0 700012E0 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) +/* 001EE4 700012E4 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 +/* 001EE8 700012E8 00037080 */ sll $t6, $v1, 2 +/* 001EEC 700012EC 01C37021 */ addu $t6, $t6, $v1 +/* 001EF0 700012F0 000E7100 */ sll $t6, $t6, 4 +/* 001EF4 700012F4 3C0D8006 */ lui $t5, %hi(sc+416) +/* 001EF8 700012F8 00036080 */ sll $t4, $v1, 2 +/* 001EFC 700012FC 01AC6821 */ addu $t5, $t5, $t4 +/* 001F00 70001300 01CFC021 */ addu $t8, $t6, $t7 +/* 001F04 70001304 27090048 */ addiu $t1, $t8, 0x48 +/* 001F08 70001308 8DADDBE0 */ lw $t5, %lo(sc+416)($t5) +.L7000130C: +/* 001F0C 7000130C 8F010000 */ lw $at, ($t8) +/* 001F10 70001310 2718000C */ addiu $t8, $t8, 0xc +/* 001F14 70001314 25AD000C */ addiu $t5, $t5, 0xc +/* 001F18 70001318 ADA1FFF4 */ sw $at, -0xc($t5) +/* 001F1C 7000131C 8F01FFF8 */ lw $at, -8($t8) +/* 001F20 70001320 ADA1FFF8 */ sw $at, -8($t5) +/* 001F24 70001324 8F01FFFC */ lw $at, -4($t8) +/* 001F28 70001328 1709FFF8 */ bne $t8, $t1, .L7000130C +/* 001F2C 7000132C ADA1FFFC */ sw $at, -4($t5) +/* 001F30 70001330 8F010000 */ lw $at, ($t8) +/* 001F34 70001334 00402025 */ move $a0, $v0 +/* 001F38 70001338 ADA10000 */ sw $at, ($t5) +/* 001F3C 7000133C 8F090004 */ lw $t1, 4($t8) +/* 001F40 70001340 0C00374C */ jal osSetIntMask +/* 001F44 70001344 ADA90004 */ sw $t1, 4($t5) +/* 001F48 70001348 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001F4C 7000134C 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001F50 70001350 00035080 */ sll $t2, $v1, 2 +/* 001F54 70001354 01401825 */ move $v1, $t2 +.L70001358: +/* 001F58 70001358 3C018002 */ lui $at, %hi(something_with_osVI_4) +/* 001F5C 7000135C 00230821 */ addu $at, $at, $v1 +/* 001F60 70001360 0C003834 */ jal osViSetXScale +/* 001F64 70001364 C42C30B4 */ lwc1 $f12, %lo(something_with_osVI_4)($at) +/* 001F68 70001368 3C0B8002 */ lui $t3, %hi(something_with_osVI_0) +/* 001F6C 7000136C 8D6B30B0 */ lw $t3, %lo(something_with_osVI_0)($t3) +/* 001F70 70001370 3C018002 */ lui $at, %hi(something_with_osVI_C) +/* 001F74 70001374 000B6080 */ sll $t4, $t3, 2 +/* 001F78 70001378 002C0821 */ addu $at, $at, $t4 +/* 001F7C 7000137C 0C003880 */ jal osViSetYScale +/* 001F80 70001380 C42C30BC */ lwc1 $f12, %lo(something_with_osVI_C)($at) +/* 001F84 70001384 3C0E8002 */ lui $t6, %hi(something_with_osVI_0) +/* 001F88 70001388 8DCE30B0 */ lw $t6, %lo(something_with_osVI_0)($t6) +/* 001F8C 7000138C 3C018002 */ lui $at, %hi(something_with_osVI_0) +/* 001F90 70001390 25CF0001 */ addiu $t7, $t6, 1 +/* 001F94 70001394 05E10004 */ bgez $t7, .L700013A8 +/* 001F98 70001398 31E80001 */ andi $t0, $t7, 1 +/* 001F9C 7000139C 11000002 */ beqz $t0, .L700013A8 +/* 001FA0 700013A0 00000000 */ nop +/* 001FA4 700013A4 2508FFFE */ addiu $t0, $t0, -2 +.L700013A8: +/* 001FA8 700013A8 AC2830B0 */ sw $t0, %lo(something_with_osVI_0)($at) +/* 001FAC 700013AC 0C000268 */ jal CheckDisplayErrorBuffer +/* 001FB0 700013B0 8E04000C */ lw $a0, 0xc($s0) +/* 001FB4 700013B4 0C003924 */ jal osViSwapBuffer +/* 001FB8 700013B8 8E04000C */ lw $a0, 0xc($s0) +.L700013BC: +/* 001FBC 700013BC 10000001 */ b .L700013C4 +/* 001FC0 700013C0 24020001 */ li $v0, 1 +.L700013C4: +/* 001FC4 700013C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 001FC8 700013C8 8FB00018 */ lw $s0, 0x18($sp) +/* 001FCC 700013CC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 001FD0 700013D0 03E00008 */ jr $ra +/* 001FD4 700013D4 00000000 */ nop +) +#endif + +/** + * 1FD8 700013D8 + */ + +void __scAppendList(OSSched *sc, OSScTask *t) +{ + long type = t->list.t.type; + + if (type == M_AUDTASK) { + if (sc->audioListTail) + sc->audioListTail->next = t; + else + sc->audioListHead = t; + + sc->audioListTail = t; + sc->doAudio = 1; + } else { + if (sc->gfxListTail) + sc->gfxListTail->next = t; + else + sc->gfxListHead = t; + + sc->gfxListTail = t; + } + + t->next = NULL; + t->state = t->flags & OS_SC_RCP_MASK; +} + + +/** + * 2040 70001440 + * (DPC fill) + */ +#ifdef NONMATCHING +void __scExec(void *arg0, void *arg1, void *arg2) +{ + s32 phi_v0; + + if (arg1 != 0) + { + if (arg1->unk10 == 2) + { + osWritebackDCacheAll(); + } + phi_v0 = arg1->unk10; + if (arg1->unk10 != 2) + { + phi_v0 = arg1->unk10; + if ((arg1->unk4 & 0x10) == 0) + { + osDpSetStatus(0x3c0); + phi_v0 = arg1->unk10; + } + } + if (phi_v0 == 2) + { + video_related_3(0x30001); + } + else + { + video_related_3(0x30001); + video_related_3(0x20002); + } + arg1->unk4 = (s32) (arg1->unk4 & -0x31); + osSpTaskLoad((arg1 + 0x10)); + osSpTaskStartGo(sp20); + arg0->unkC8 = arg1; + if (arg1 == arg2) + { + arg0->unkCC = arg2; + } + } + if (arg2 != 0) + { + if (arg2 != arg1) + { + osDpSetNextBuffer(arg2->unk38, *arg2->unk3C, arg2->unk3C->unk4); + setby_DPCfill_0 = 1; + setby_DPCfill_1 = 0; + arg0->unkCC = arg2; + } + } +} +#else +GLOBAL_ASM( +glabel __scExec +/* 002040 70001440 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 002044 70001444 AFB10018 */ sw $s1, 0x18($sp) +/* 002048 70001448 AFB00014 */ sw $s0, 0x14($sp) +/* 00204C 7000144C 00A08025 */ move $s0, $a1 +/* 002050 70001450 00C08825 */ move $s1, $a2 +/* 002054 70001454 AFBF001C */ sw $ra, 0x1c($sp) +/* 002058 70001458 10A0002C */ beqz $a1, .L7000150C +/* 00205C 7000145C AFA40028 */ sw $a0, 0x28($sp) +/* 002060 70001460 8CA20010 */ lw $v0, 0x10($a1) +/* 002064 70001464 24010002 */ li $at, 2 +/* 002068 70001468 54410005 */ bnel $v0, $at, .L70001480 +/* 00206C 7000146C 24010002 */ li $at, 2 +/* 002070 70001470 0C0034C8 */ jal osWritebackDCacheAll +/* 002074 70001474 00000000 */ nop +/* 002078 70001478 8E020010 */ lw $v0, 0x10($s0) +/* 00207C 7000147C 24010002 */ li $at, 2 +.L70001480: +/* 002080 70001480 50410009 */ beql $v0, $at, .L700014A8 +/* 002084 70001484 24010002 */ li $at, 2 +/* 002088 70001488 8E0E0004 */ lw $t6, 4($s0) +/* 00208C 7000148C 31CF0010 */ andi $t7, $t6, 0x10 +/* 002090 70001490 55E00005 */ bnezl $t7, .L700014A8 +/* 002094 70001494 24010002 */ li $at, 2 +/* 002098 70001498 0C003938 */ jal osDpSetStatus +/* 00209C 7000149C 240403C0 */ li $a0, 960 +/* 0020A0 700014A0 8E020010 */ lw $v0, 0x10($s0) +/* 0020A4 700014A4 24010002 */ li $at, 2 +.L700014A8: +/* 0020A8 700014A8 14410006 */ bne $v0, $at, .L700014C4 +/* 0020AC 700014AC 3C040004 */ lui $a0, 4 +/* 0020B0 700014B0 3C040003 */ lui $a0, (0x00030001 >> 16) # lui $a0, 3 +/* 0020B4 700014B4 0C000A15 */ jal video_related_3 +/* 0020B8 700014B8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 +/* 0020BC 700014BC 10000007 */ b .L700014DC +/* 0020C0 700014C0 8E180004 */ lw $t8, 4($s0) +.L700014C4: +/* 0020C4 700014C4 0C000A15 */ jal video_related_3 +/* 0020C8 700014C8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 +/* 0020CC 700014CC 3C040002 */ lui $a0, (0x00020002 >> 16) # lui $a0, 2 +/* 0020D0 700014D0 0C000A15 */ jal video_related_3 +/* 0020D4 700014D4 34840002 */ ori $a0, (0x00020002 & 0xFFFF) # ori $a0, $a0, 2 +/* 0020D8 700014D8 8E180004 */ lw $t8, 4($s0) +.L700014DC: +/* 0020DC 700014DC 2401FFCF */ li $at, -49 +/* 0020E0 700014E0 26040010 */ addiu $a0, $s0, 0x10 +/* 0020E4 700014E4 0301C824 */ and $t9, $t8, $at +/* 0020E8 700014E8 AE190004 */ sw $t9, 4($s0) +/* 0020EC 700014EC 0C003983 */ jal osSpTaskLoad +/* 0020F0 700014F0 AFA40020 */ sw $a0, 0x20($sp) +/* 0020F4 700014F4 0C0039DB */ jal osSpTaskStartGo +/* 0020F8 700014F8 8FA40020 */ lw $a0, 0x20($sp) +/* 0020FC 700014FC 8FA80028 */ lw $t0, 0x28($sp) +/* 002100 70001500 16110002 */ bne $s0, $s1, .L7000150C +/* 002104 70001504 AD1000C8 */ sw $s0, 0xc8($t0) +/* 002108 70001508 AD1100CC */ sw $s1, 0xcc($t0) +.L7000150C: +/* 00210C 7000150C 52200010 */ beql $s1, $zero, .L70001550 +/* 002110 70001510 8FBF001C */ lw $ra, 0x1c($sp) +/* 002114 70001514 5230000E */ beql $s1, $s0, .L70001550 +/* 002118 70001518 8FBF001C */ lw $ra, 0x1c($sp) +/* 00211C 7000151C 8E29003C */ lw $t1, 0x3c($s1) +/* 002120 70001520 8E240038 */ lw $a0, 0x38($s1) +/* 002124 70001524 8D260000 */ lw $a2, ($t1) +/* 002128 70001528 0C0039EC */ jal osDpSetNextBuffer +/* 00212C 7000152C 8D270004 */ lw $a3, 4($t1) +/* 002130 70001530 240A0001 */ li $t2, 1 +/* 002134 70001534 3C018002 */ lui $at, %hi(setby_DPCfill_0) +/* 002138 70001538 8FAB0028 */ lw $t3, 0x28($sp) +/* 00213C 7000153C AC2A30A8 */ sw $t2, %lo(setby_DPCfill_0)($at) +/* 002140 70001540 3C018002 */ lui $at, %hi(setby_DPCfill_1) +/* 002144 70001544 AC2030AC */ sw $zero, %lo(setby_DPCfill_1)($at) +/* 002148 70001548 AD7100CC */ sw $s1, 0xcc($t3) +/* 00214C 7000154C 8FBF001C */ lw $ra, 0x1c($sp) +.L70001550: +/* 002150 70001550 8FB00014 */ lw $s0, 0x14($sp) +/* 002154 70001554 8FB10018 */ lw $s1, 0x18($sp) +/* 002158 70001558 03E00008 */ jr $ra +/* 00215C 7000155C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 2160 70001560 + */ + +void __scYield(OSSched *sc) +{ + if (sc->curRSPTask->list.t.type == M_GFXTASK) { + sc->curRSPTask->state |= 0x0010; + osSpTaskYield(); + } else { + + } +} + + +/** + * 219C 7000159C + * ??? + * uses TLB pointers at 80028400 + * 7000167C 3 + * 70001704 2,6,7 + * 70001758 default; 1,4,5 + */ +#ifdef NONMATCHING +void __scSchedule(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_80028400 + .word .L70001758 + .word .L70001704 + .word .L7000167C + .word .L70001758 + .word .L70001758 + .word .L70001704 + .word .L70001704 + +.text +glabel __scSchedule +/* 00219C 7000159C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0021A0 700015A0 AFB10018 */ sw $s1, 0x18($sp) +/* 0021A4 700015A4 00808825 */ move $s1, $a0 +/* 0021A8 700015A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0021AC 700015AC AFB00014 */ sw $s0, 0x14($sp) +/* 0021B0 700015B0 2408FFFD */ li $t0, -3 +.L700015B4: +/* 0021B4 700015B4 8E2E00D4 */ lw $t6, 0xd4($s1) +/* 0021B8 700015B8 00E01825 */ move $v1, $a3 +/* 0021BC 700015BC 8E3000BC */ lw $s0, 0xbc($s1) +/* 0021C0 700015C0 11C00016 */ beqz $t6, .L7000161C +/* 0021C4 700015C4 8E2200B8 */ lw $v0, 0xb8($s1) +/* 0021C8 700015C8 30EF0002 */ andi $t7, $a3, 2 +/* 0021CC 700015CC 51E00014 */ beql $t7, $zero, .L70001620 +/* 0021D0 700015D0 02002025 */ move $a0, $s0 +/* 0021D4 700015D4 52000009 */ beql $s0, $zero, .L700015FC +/* 0021D8 700015D8 ACA20000 */ sw $v0, ($a1) +/* 0021DC 700015DC 8E180008 */ lw $t8, 8($s0) +/* 0021E0 700015E0 00E81824 */ and $v1, $a3, $t0 +/* 0021E4 700015E4 33190010 */ andi $t9, $t8, 0x10 +/* 0021E8 700015E8 53200004 */ beql $t9, $zero, .L700015FC +/* 0021EC 700015EC ACA20000 */ sw $v0, ($a1) +/* 0021F0 700015F0 10000059 */ b .L70001758 +/* 0021F4 700015F4 ACB00000 */ sw $s0, ($a1) +/* 0021F8 700015F8 ACA20000 */ sw $v0, ($a1) +.L700015FC: +/* 0021FC 700015FC 8E2A00B8 */ lw $t2, 0xb8($s1) +/* 002200 70001600 AE2000D4 */ sw $zero, 0xd4($s1) +/* 002204 70001604 00E81824 */ and $v1, $a3, $t0 +/* 002208 70001608 8D4B0000 */ lw $t3, ($t2) +/* 00220C 7000160C 15600052 */ bnez $t3, .L70001758 +/* 002210 70001610 AE2B00B8 */ sw $t3, 0xb8($s1) +/* 002214 70001614 10000050 */ b .L70001758 +/* 002218 70001618 AE2000C0 */ sw $zero, 0xc0($s1) +.L7000161C: +/* 00221C 7000161C 02002025 */ move $a0, $s0 +.L70001620: +/* 002220 70001620 AFA30024 */ sw $v1, 0x24($sp) +/* 002224 70001624 AFA5002C */ sw $a1, 0x2c($sp) +/* 002228 70001628 AFA60030 */ sw $a2, 0x30($sp) +/* 00222C 7000162C 0C000478 */ jal __scTaskReady +/* 002230 70001630 AFA70034 */ sw $a3, 0x34($sp) +/* 002234 70001634 8FA30024 */ lw $v1, 0x24($sp) +/* 002238 70001638 8FA5002C */ lw $a1, 0x2c($sp) +/* 00223C 7000163C 8FA60030 */ lw $a2, 0x30($sp) +/* 002240 70001640 8FA70034 */ lw $a3, 0x34($sp) +/* 002244 70001644 2408FFFD */ li $t0, -3 +/* 002248 70001648 10400043 */ beqz $v0, .L70001758 +/* 00224C 7000164C 2409FFFE */ li $t1, -2 +/* 002250 70001650 8E0D0008 */ lw $t5, 8($s0) +/* 002254 70001654 31AE0007 */ andi $t6, $t5, 7 +/* 002258 70001658 25CFFFFF */ addiu $t7, $t6, -1 +/* 00225C 7000165C 2DE10007 */ sltiu $at, $t7, 7 +/* 002260 70001660 1020003D */ beqz $at, .L70001758 +/* 002264 70001664 000F7880 */ sll $t7, $t7, 2 +/* 002268 70001668 3C018003 */ lui $at, %hi(jpt_80028400) +/* 00226C 7000166C 002F0821 */ addu $at, $at, $t7 +/* 002270 70001670 8C2F8400 */ lw $t7, %lo(jpt_80028400)($at) # lw $t7, -0x7c00($at) +/* 002274 70001674 01E00008 */ jr $t7 +/* 002278 70001678 00000000 */ nop +.L7000167C: +/* 00227C 7000167C 8E180004 */ lw $t8, 4($s0) +/* 002280 70001680 30EA0002 */ andi $t2, $a3, 2 +/* 002284 70001684 24010003 */ li $at, 3 +/* 002288 70001688 33190020 */ andi $t9, $t8, 0x20 +/* 00228C 7000168C 13200011 */ beqz $t9, .L700016D4 +/* 002290 70001690 00000000 */ nop +/* 002294 70001694 11400030 */ beqz $t2, .L70001758 +/* 002298 70001698 00000000 */ nop +/* 00229C 7000169C ACB00000 */ sw $s0, ($a1) +/* 0022A0 700016A0 8E0B0004 */ lw $t3, 4($s0) +/* 0022A4 700016A4 00E81824 */ and $v1, $a3, $t0 +/* 0022A8 700016A8 316C0001 */ andi $t4, $t3, 1 +/* 0022AC 700016AC 51800004 */ beql $t4, $zero, .L700016C0 +/* 0022B0 700016B0 8E2D00BC */ lw $t5, 0xbc($s1) +/* 0022B4 700016B4 ACD00000 */ sw $s0, ($a2) +/* 0022B8 700016B8 00691824 */ and $v1, $v1, $t1 +/* 0022BC 700016BC 8E2D00BC */ lw $t5, 0xbc($s1) +.L700016C0: +/* 0022C0 700016C0 8DAE0000 */ lw $t6, ($t5) +/* 0022C4 700016C4 15C00024 */ bnez $t6, .L70001758 +/* 0022C8 700016C8 AE2E00BC */ sw $t6, 0xbc($s1) +/* 0022CC 700016CC 10000022 */ b .L70001758 +/* 0022D0 700016D0 AE2000C4 */ sw $zero, 0xc4($s1) +.L700016D4: +/* 0022D4 700016D4 14E10020 */ bne $a3, $at, .L70001758 +/* 0022D8 700016D8 00000000 */ nop +/* 0022DC 700016DC ACD00000 */ sw $s0, ($a2) +/* 0022E0 700016E0 ACB00000 */ sw $s0, ($a1) +/* 0022E4 700016E4 8E3800BC */ lw $t8, 0xbc($s1) +/* 0022E8 700016E8 2401FFFC */ li $at, -4 +/* 0022EC 700016EC 00E11824 */ and $v1, $a3, $at +/* 0022F0 700016F0 8F190000 */ lw $t9, ($t8) +/* 0022F4 700016F4 17200018 */ bnez $t9, .L70001758 +/* 0022F8 700016F8 AE3900BC */ sw $t9, 0xbc($s1) +/* 0022FC 700016FC 10000016 */ b .L70001758 +/* 002300 70001700 AE2000C4 */ sw $zero, 0xc4($s1) +.L70001704: +/* 002304 70001704 8E020004 */ lw $v0, 4($s0) +/* 002308 70001708 30EC0002 */ andi $t4, $a3, 2 +/* 00230C 7000170C 304B0002 */ andi $t3, $v0, 2 +/* 002310 70001710 11600006 */ beqz $t3, .L7000172C +/* 002314 70001714 304D0001 */ andi $t5, $v0, 1 +/* 002318 70001718 1180000F */ beqz $t4, .L70001758 +/* 00231C 7000171C 00000000 */ nop +/* 002320 70001720 ACB00000 */ sw $s0, ($a1) +/* 002324 70001724 1000000C */ b .L70001758 +/* 002328 70001728 00E81824 */ and $v1, $a3, $t0 +.L7000172C: +/* 00232C 7000172C 11A0000A */ beqz $t5, .L70001758 +/* 002330 70001730 30EE0001 */ andi $t6, $a3, 1 +/* 002334 70001734 11C00008 */ beqz $t6, .L70001758 +/* 002338 70001738 00000000 */ nop +/* 00233C 7000173C ACD00000 */ sw $s0, ($a2) +/* 002340 70001740 8E2F00BC */ lw $t7, 0xbc($s1) +/* 002344 70001744 00E91824 */ and $v1, $a3, $t1 +/* 002348 70001748 8DF80000 */ lw $t8, ($t7) +/* 00234C 7000174C 17000002 */ bnez $t8, .L70001758 +/* 002350 70001750 AE3800BC */ sw $t8, 0xbc($s1) +/* 002354 70001754 AE2000C4 */ sw $zero, 0xc4($s1) +.L70001758: +/* 002358 70001758 50670004 */ beql $v1, $a3, .L7000176C +/* 00235C 7000175C 8FBF001C */ lw $ra, 0x1c($sp) +/* 002360 70001760 1000FF94 */ b .L700015B4 +/* 002364 70001764 00603825 */ move $a3, $v1 +/* 002368 70001768 8FBF001C */ lw $ra, 0x1c($sp) +.L7000176C: +/* 00236C 7000176C 8FB00014 */ lw $s0, 0x14($sp) +/* 002370 70001770 8FB10018 */ lw $s1, 0x18($sp) +/* 002374 70001774 27BD0028 */ addiu $sp, $sp, 0x28 +/* 002378 70001778 03E00008 */ jr $ra +/* 00237C 7000177C 00601025 */ move $v0, $v1 +) +#endif + diff --git a/src/sched.h b/src/sched.h new file mode 100644 index 0000000..4e07fff --- /dev/null +++ b/src/sched.h @@ -0,0 +1,85 @@ +#ifndef _scheduler_h_ +#define _scheduler_h_ + +#include "ultra64.h" + +#define OS_SC_STACKSIZE 0x2000 + +#define OS_SC_RETRACE_MSG 1 +#define OS_SC_DONE_MSG 2 +#define OS_SC_RDP_DONE_MSG 3 +#define OS_SC_PRE_NMI_MSG 4 +#define OS_SC_LAST_MSG 4 /* this should have highest number */ +#define OS_SC_MAX_MESGS 8 + +typedef struct { + short type; + char misc[30]; +} OSScMsg; + +typedef struct OSScTask_s { + struct OSScTask_s *next; + u32 state; + u32 flags; + void *framebuffer; + OSTask list; + OSMesgQueue *msgQ; + OSMesg msg; +} OSScTask; + +#define OS_SC_NEEDS_RDP 0x0001 +#define OS_SC_NEEDS_RSP 0x0002 +#define OS_SC_DRAM_DLIST 0x0004 +#define OS_SC_PARALLEL_TASK 0x0010 +#define OS_SC_LAST_TASK 0x0020 +#define OS_SC_SWAPBUFFER 0x0040 + +#define OS_SC_RCP_MASK 0x0003 +#define OS_SC_TYPE_MASK 0x0007 + +typedef struct SCClient_s { + struct SCClient_s *next; + OSMesgQueue *msgQ; +} OSScClient; + +//fixme im wrong size, shouldn't copy paste from sample code anyway +typedef struct { + OSScMsg retraceMsg; + OSScMsg prenmiMsg; + OSMesgQueue interruptQ; + OSMesg intBuf[OS_SC_MAX_MESGS]; + OSMesgQueue cmdQ; + OSMesg cmdMsgBuf[OS_SC_MAX_MESGS]; + OSThread *thread; + OSScClient *clientList; + OSScTask *audioListHead; + OSScTask *gfxListHead; + OSScTask *audioListTail; + OSScTask *gfxListTail; + OSScTask *curRSPTask; + OSScTask *curRDPTask; + u32 frameCount; + s32 doAudio; +} OSSched; + +extern OSSched sc; +extern OSScClient gfxClient[3]; +//extern char gfxClient[0x18]; + +void activate_stderr(u32 flag); +void enable_stderr(u32 flag); +void permit_stderr(u32 flag); +void setUserCompareValue(u32 value); +void CheckDisplayErrorBuffer(u32 *buffer); +void CheckDisplayErrorBufferEvery16Frames(u32 framecount); +void osCreateLog(void); +void __scMain(void *arg); +void __scYield(OSSched *sc) ; +void __scAppendList(OSSched *sc, OSScTask *t); +void osCreateScheduler(OSSched *s, void *stack, u8 mode, u8 numFields); +void osScAddClient(OSSched *s, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next); +void osScRemoveClient(OSSched *s, OSScClient *c); +OSMesgQueue *osScGetCmdQ(OSSched *s); + +#endif + diff --git a/src/snd.c b/src/snd.c new file mode 100644 index 0000000..7954b95 --- /dev/null +++ b/src/snd.c @@ -0,0 +1,2607 @@ +#include "ultra64.h" +#include "music.h" +#include "snd.h" + + +/** + * @file snd.c + * This file contains code to deal with snd. + */ + +s32 sfx_unused = 0; +s32 D_800243E4 = 0; +s32 D_800243E8 = 0; +s32 D_800243EC = 0; +void *D_800243F0 = &D_80063B50; +s32 D_800243F4 = 0; +s8 bootswitch_sound = 0; +f32 F32_800243FC = 1.0; + + + + + + + +/** + * 8720 70007B20 + */ + +#ifdef NONMATCHING +void sfx_c_70007B20(void *arg0) +{ + s16 sp38; + s32 temp_a0; + u32 temp_s0; + s32 temp_v0; + u32 phi_s0; + + D_800243F0->unk44 = (?32) arg0->unk8; + D_800243F0->unk3C = 0; + D_800243F0->unk48 = 0x80e8; + D_800243F0->unk40 = alHeapDBAlloc(0, 0, arg0->unkC, 1, (s32) (*arg0 << 6)); + alEvtqNew((D_800243F0 + 0x14), alHeapDBAlloc(0, 0, arg0->unkC, 1, (s32) (arg0->unk4 * 0x1c)), arg0->unk4); + D_800243EC = (s32) D_800243F0->unk40; + phi_s0 = 1U; + if ((u32) *arg0 >= 2U) + { +block_1: + temp_a0 = ((phi_s0 << 6) + D_800243F0->unk40); + alLink(temp_a0, (temp_a0 + -0x40)); + temp_s0 = (phi_s0 + 1); + phi_s0 = temp_s0; + if (temp_s0 < (u32) *arg0) + { + goto block_1; + } + } + D_80063BA4 = alHeapDBAlloc(0, 0, arg0->unkC, 2, 7); + D_80063BA8 = alHeapDBAlloc(0, 0, arg0->unkC, 2, 7); + *D_80063BA4 = (u16)0x7fff; + temp_v0 = (3 * 2); + *D_80063BA8 = (s16) *D_80063BA4; + D_80063BA4->unk2 = (u16)0x7fff; + D_80063BA8->unk2 = (s16) D_80063BA4->unk2; + D_80063BA4->unk4 = (u16)0x7fff; + D_80063BA8->unk4 = (s16) D_80063BA4->unk4; + *(D_80063BA4 + temp_v0) = (u16)0x7fff; + *(D_80063BA8 + temp_v0) = (s16) *(D_80063BA4 + temp_v0); + (D_80063BA4 + temp_v0)->unk2 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk2 = (s16) (D_80063BA4 + temp_v0)->unk2; + (D_80063BA4 + temp_v0)->unk4 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk4 = (s16) (D_80063BA4 + temp_v0)->unk4; + (D_80063BA4 + temp_v0)->unk6 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk6 = (s16) (D_80063BA4 + temp_v0)->unk6; + D_800243F0->unk38 = (?32) alGlobals; + *D_800243F0 = 0; + D_800243F0->unk8 = &sfx_c_70007DDC; + D_800243F0->unk4 = (void *) D_800243F0; + alSynAddPlayer(D_800243F0->unk38, D_800243F0); + sp38 = (u16)0x20; + alEvtqPostEvent((D_800243F0 + 0x14), &sp38, D_800243F0->unk48); + D_800243F0->unk4C = alEvtqNextEvent((D_800243F0 + 0x14), (D_800243F0 + 0x28)); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007B20 +/* 008720 70007B20 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 008724 70007B24 AFB20028 */ sw $s2, 0x28($sp) +/* 008728 70007B28 3C128002 */ lui $s2, %hi(D_800243F0) +/* 00872C 70007B2C 265243F0 */ addiu $s2, %lo(D_800243F0) # addiu $s2, $s2, 0x43f0 +/* 008730 70007B30 AFBF002C */ sw $ra, 0x2c($sp) +/* 008734 70007B34 AFB10024 */ sw $s1, 0x24($sp) +/* 008738 70007B38 AFB00020 */ sw $s0, 0x20($sp) +/* 00873C 70007B3C 8C8E0008 */ lw $t6, 8($a0) +/* 008740 70007B40 8E4F0000 */ lw $t7, ($s2) +/* 008744 70007B44 341980E8 */ li $t9, 33000 +/* 008748 70007B48 00808825 */ move $s1, $a0 +/* 00874C 70007B4C ADEE0044 */ sw $t6, 0x44($t7) +/* 008750 70007B50 8E580000 */ lw $t8, ($s2) +/* 008754 70007B54 00002025 */ move $a0, $zero +/* 008758 70007B58 00002825 */ move $a1, $zero +/* 00875C 70007B5C AF00003C */ sw $zero, 0x3c($t8) +/* 008760 70007B60 8E480000 */ lw $t0, ($s2) +/* 008764 70007B64 24070001 */ li $a3, 1 +/* 008768 70007B68 AD190048 */ sw $t9, 0x48($t0) +/* 00876C 70007B6C 8E290000 */ lw $t1, ($s1) +/* 008770 70007B70 8E26000C */ lw $a2, 0xc($s1) +/* 008774 70007B74 00095180 */ sll $t2, $t1, 6 +/* 008778 70007B78 0C003AD4 */ jal alHeapDBAlloc +/* 00877C 70007B7C AFAA0010 */ sw $t2, 0x10($sp) +/* 008780 70007B80 8E4B0000 */ lw $t3, ($s2) +/* 008784 70007B84 00002025 */ move $a0, $zero +/* 008788 70007B88 00002825 */ move $a1, $zero +/* 00878C 70007B8C AD620040 */ sw $v0, 0x40($t3) +/* 008790 70007B90 8E2C0004 */ lw $t4, 4($s1) +/* 008794 70007B94 8E26000C */ lw $a2, 0xc($s1) +/* 008798 70007B98 24070001 */ li $a3, 1 +/* 00879C 70007B9C 000C68C0 */ sll $t5, $t4, 3 +/* 0087A0 70007BA0 01AC6823 */ subu $t5, $t5, $t4 +/* 0087A4 70007BA4 000D6880 */ sll $t5, $t5, 2 +/* 0087A8 70007BA8 0C003AD4 */ jal alHeapDBAlloc +/* 0087AC 70007BAC AFAD0010 */ sw $t5, 0x10($sp) +/* 0087B0 70007BB0 8E440000 */ lw $a0, ($s2) +/* 0087B4 70007BB4 00402825 */ move $a1, $v0 +/* 0087B8 70007BB8 8E260004 */ lw $a2, 4($s1) +/* 0087BC 70007BBC 0C004C2B */ jal alEvtqNew +/* 0087C0 70007BC0 24840014 */ addiu $a0, $a0, 0x14 +/* 0087C4 70007BC4 8E4E0000 */ lw $t6, ($s2) +/* 0087C8 70007BC8 3C018002 */ lui $at, %hi(D_800243EC) +/* 0087CC 70007BCC 24100001 */ li $s0, 1 +/* 0087D0 70007BD0 8DCF0040 */ lw $t7, 0x40($t6) +/* 0087D4 70007BD4 AC2F43EC */ sw $t7, %lo(D_800243EC)($at) +/* 0087D8 70007BD8 8E380000 */ lw $t8, ($s1) +/* 0087DC 70007BDC 2F010002 */ sltiu $at, $t8, 2 +/* 0087E0 70007BE0 5420000D */ bnezl $at, .L70007C18 +/* 0087E4 70007BE4 8E26000C */ lw $a2, 0xc($s1) +/* 0087E8 70007BE8 8E590000 */ lw $t9, ($s2) +.L70007BEC: +/* 0087EC 70007BEC 00104180 */ sll $t0, $s0, 6 +/* 0087F0 70007BF0 8F220040 */ lw $v0, 0x40($t9) +/* 0087F4 70007BF4 01022021 */ addu $a0, $t0, $v0 +/* 0087F8 70007BF8 0C003AB0 */ jal alLink +/* 0087FC 70007BFC 2485FFC0 */ addiu $a1, $a0, -0x40 +/* 008800 70007C00 8E290000 */ lw $t1, ($s1) +/* 008804 70007C04 26100001 */ addiu $s0, $s0, 1 +/* 008808 70007C08 0209082B */ sltu $at, $s0, $t1 +/* 00880C 70007C0C 5420FFF7 */ bnezl $at, .L70007BEC +/* 008810 70007C10 8E590000 */ lw $t9, ($s2) +/* 008814 70007C14 8E26000C */ lw $a2, 0xc($s1) +.L70007C18: +/* 008818 70007C18 240A0007 */ li $t2, 7 +/* 00881C 70007C1C AFAA0010 */ sw $t2, 0x10($sp) +/* 008820 70007C20 00002025 */ move $a0, $zero +/* 008824 70007C24 00002825 */ move $a1, $zero +/* 008828 70007C28 0C003AD4 */ jal alHeapDBAlloc +/* 00882C 70007C2C 24070002 */ li $a3, 2 +/* 008830 70007C30 3C038006 */ lui $v1, %hi(D_80063BA4) +/* 008834 70007C34 24633BA4 */ addiu $v1, %lo(D_80063BA4) # addiu $v1, $v1, 0x3ba4 +/* 008838 70007C38 AC620000 */ sw $v0, ($v1) +/* 00883C 70007C3C 8E26000C */ lw $a2, 0xc($s1) +/* 008840 70007C40 240B0007 */ li $t3, 7 +/* 008844 70007C44 AFAB0010 */ sw $t3, 0x10($sp) +/* 008848 70007C48 00002025 */ move $a0, $zero +/* 00884C 70007C4C 00002825 */ move $a1, $zero +/* 008850 70007C50 0C003AD4 */ jal alHeapDBAlloc +/* 008854 70007C54 24070002 */ li $a3, 2 +/* 008858 70007C58 3C038006 */ lui $v1, %hi(D_80063BA4) +/* 00885C 70007C5C 24633BA4 */ addiu $v1, %lo(D_80063BA4) # addiu $v1, $v1, 0x3ba4 +/* 008860 70007C60 8C6C0000 */ lw $t4, ($v1) +/* 008864 70007C64 3C048006 */ lui $a0, %hi(D_80063BA8) +/* 008868 70007C68 24843BA8 */ addiu $a0, %lo(D_80063BA8) # addiu $a0, $a0, 0x3ba8 +/* 00886C 70007C6C AC820000 */ sw $v0, ($a0) +/* 008870 70007C70 24057FFF */ li $a1, 32767 +/* 008874 70007C74 A5850000 */ sh $a1, ($t4) +/* 008878 70007C78 8C6D0000 */ lw $t5, ($v1) +/* 00887C 70007C7C 8C8F0000 */ lw $t7, ($a0) +/* 008880 70007C80 24100003 */ li $s0, 3 +/* 008884 70007C84 85AE0000 */ lh $t6, ($t5) +/* 008888 70007C88 00101040 */ sll $v0, $s0, 1 +/* 00888C 70007C8C A5EE0000 */ sh $t6, ($t7) +/* 008890 70007C90 8C780000 */ lw $t8, ($v1) +/* 008894 70007C94 A7050002 */ sh $a1, 2($t8) +/* 008898 70007C98 8C790000 */ lw $t9, ($v1) +/* 00889C 70007C9C 8C890000 */ lw $t1, ($a0) +/* 0088A0 70007CA0 87280002 */ lh $t0, 2($t9) +/* 0088A4 70007CA4 A5280002 */ sh $t0, 2($t1) +/* 0088A8 70007CA8 8C6A0000 */ lw $t2, ($v1) +/* 0088AC 70007CAC A5450004 */ sh $a1, 4($t2) +/* 0088B0 70007CB0 8C6B0000 */ lw $t3, ($v1) +/* 0088B4 70007CB4 8C8D0000 */ lw $t5, ($a0) +/* 0088B8 70007CB8 856C0004 */ lh $t4, 4($t3) +/* 0088BC 70007CBC A5AC0004 */ sh $t4, 4($t5) +/* 0088C0 70007CC0 8C6E0000 */ lw $t6, ($v1) +/* 0088C4 70007CC4 01C27821 */ addu $t7, $t6, $v0 +/* 0088C8 70007CC8 A5E50000 */ sh $a1, ($t7) +/* 0088CC 70007CCC 8C780000 */ lw $t8, ($v1) +/* 0088D0 70007CD0 8C890000 */ lw $t1, ($a0) +/* 0088D4 70007CD4 0302C821 */ addu $t9, $t8, $v0 +/* 0088D8 70007CD8 87280000 */ lh $t0, ($t9) +/* 0088DC 70007CDC 01225021 */ addu $t2, $t1, $v0 +/* 0088E0 70007CE0 A5480000 */ sh $t0, ($t2) +/* 0088E4 70007CE4 8C6B0000 */ lw $t3, ($v1) +/* 0088E8 70007CE8 01626021 */ addu $t4, $t3, $v0 +/* 0088EC 70007CEC A5850002 */ sh $a1, 2($t4) +/* 0088F0 70007CF0 8C6D0000 */ lw $t5, ($v1) +/* 0088F4 70007CF4 8C980000 */ lw $t8, ($a0) +/* 0088F8 70007CF8 01A27021 */ addu $t6, $t5, $v0 +/* 0088FC 70007CFC 85CF0002 */ lh $t7, 2($t6) +/* 008900 70007D00 0302C821 */ addu $t9, $t8, $v0 +/* 008904 70007D04 A72F0002 */ sh $t7, 2($t9) +/* 008908 70007D08 8C690000 */ lw $t1, ($v1) +/* 00890C 70007D0C 01224021 */ addu $t0, $t1, $v0 +/* 008910 70007D10 A5050004 */ sh $a1, 4($t0) +/* 008914 70007D14 8C6A0000 */ lw $t2, ($v1) +/* 008918 70007D18 8C8D0000 */ lw $t5, ($a0) +/* 00891C 70007D1C 01425821 */ addu $t3, $t2, $v0 +/* 008920 70007D20 856C0004 */ lh $t4, 4($t3) +/* 008924 70007D24 01A27021 */ addu $t6, $t5, $v0 +/* 008928 70007D28 3C0D8002 */ lui $t5, %hi(alGlobals) +/* 00892C 70007D2C A5CC0004 */ sh $t4, 4($t6) +/* 008930 70007D30 8C780000 */ lw $t8, ($v1) +/* 008934 70007D34 03027821 */ addu $t7, $t8, $v0 +/* 008938 70007D38 A5E50006 */ sh $a1, 6($t7) +/* 00893C 70007D3C 8C790000 */ lw $t9, ($v1) +/* 008940 70007D40 8C8A0000 */ lw $t2, ($a0) +/* 008944 70007D44 3C187000 */ lui $t8, %hi(sfx_c_70007DDC) # $t8, 0x7000 +/* 008948 70007D48 03224821 */ addu $t1, $t9, $v0 +/* 00894C 70007D4C 85280006 */ lh $t0, 6($t1) +/* 008950 70007D50 01425821 */ addu $t3, $t2, $v0 +/* 008954 70007D54 27187DDC */ addiu $t8, %lo(sfx_c_70007DDC) # addiu $t8, $t8, 0x7ddc +/* 008958 70007D58 A5680006 */ sh $t0, 6($t3) +/* 00895C 70007D5C 8E4C0000 */ lw $t4, ($s2) +/* 008960 70007D60 8DAD76E0 */ lw $t5, %lo(alGlobals)($t5) +/* 008964 70007D64 AD8D0038 */ sw $t5, 0x38($t4) +/* 008968 70007D68 8E4E0000 */ lw $t6, ($s2) +/* 00896C 70007D6C ADC00000 */ sw $zero, ($t6) +/* 008970 70007D70 8E4F0000 */ lw $t7, ($s2) +/* 008974 70007D74 ADF80008 */ sw $t8, 8($t7) +/* 008978 70007D78 8E500000 */ lw $s0, ($s2) +/* 00897C 70007D7C AE100004 */ sw $s0, 4($s0) +/* 008980 70007D80 8E500000 */ lw $s0, ($s2) +/* 008984 70007D84 8E040038 */ lw $a0, 0x38($s0) +/* 008988 70007D88 0C004C48 */ jal alSynAddPlayer +/* 00898C 70007D8C 02002825 */ move $a1, $s0 +/* 008990 70007D90 8E500000 */ lw $s0, ($s2) +/* 008994 70007D94 24190020 */ li $t9, 32 +/* 008998 70007D98 A7B90038 */ sh $t9, 0x38($sp) +/* 00899C 70007D9C 27A50038 */ addiu $a1, $sp, 0x38 +/* 0089A0 70007DA0 8E060048 */ lw $a2, 0x48($s0) +/* 0089A4 70007DA4 0C004BBF */ jal alEvtqPostEvent +/* 0089A8 70007DA8 26040014 */ addiu $a0, $s0, 0x14 +/* 0089AC 70007DAC 8E500000 */ lw $s0, ($s2) +/* 0089B0 70007DB0 26040014 */ addiu $a0, $s0, 0x14 +/* 0089B4 70007DB4 0C004C08 */ jal alEvtqNextEvent +/* 0089B8 70007DB8 26050028 */ addiu $a1, $s0, 0x28 +/* 0089BC 70007DBC 8E490000 */ lw $t1, ($s2) +/* 0089C0 70007DC0 AD22004C */ sw $v0, 0x4c($t1) +/* 0089C4 70007DC4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0089C8 70007DC8 8FB20028 */ lw $s2, 0x28($sp) +/* 0089CC 70007DCC 8FB10024 */ lw $s1, 0x24($sp) +/* 0089D0 70007DD0 8FB00020 */ lw $s0, 0x20($sp) +/* 0089D4 70007DD4 03E00008 */ jr $ra +/* 0089D8 70007DD8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +/** + * 89DC 70007DDC + */ +#ifdef NONMATCHING +void sfx_c_70007DDC(void *arg0) +{ + s16 sp3C; + s32 temp_s1; + s32 temp_s2; + ? temp_ret; + + temp_s1 = (arg0 + 0x28); + temp_s2 = (arg0 + 0x14); +block_1: + if (0x20 == arg0->unk28) + { + sp3C = (u16)0x20; + alEvtqPostEvent(temp_s2, &sp3C, arg0->unk48); + } + else + { + sfx_c_70007E80(arg0, temp_s1); + } + temp_ret = alEvtqNextEvent(temp_s2, temp_s1); + arg0->unk4C = temp_ret; + if (temp_ret == 0) + { + goto block_1; + } + arg0->unk50 = (s32) (arg0->unk50 + temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007DDC +/* 0089DC 70007DDC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0089E0 70007DE0 AFB40028 */ sw $s4, 0x28($sp) +/* 0089E4 70007DE4 AFB30024 */ sw $s3, 0x24($sp) +/* 0089E8 70007DE8 AFB20020 */ sw $s2, 0x20($sp) +/* 0089EC 70007DEC AFB1001C */ sw $s1, 0x1c($sp) +/* 0089F0 70007DF0 AFB00018 */ sw $s0, 0x18($sp) +/* 0089F4 70007DF4 00808025 */ move $s0, $a0 +/* 0089F8 70007DF8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0089FC 70007DFC 24910028 */ addiu $s1, $a0, 0x28 +/* 008A00 70007E00 24920014 */ addiu $s2, $a0, 0x14 +/* 008A04 70007E04 24130020 */ li $s3, 32 +/* 008A08 70007E08 27B4003C */ addiu $s4, $sp, 0x3c +.L70007E0C: +/* 008A0C 70007E0C 860E0028 */ lh $t6, 0x28($s0) +/* 008A10 70007E10 240F0020 */ li $t7, 32 +/* 008A14 70007E14 02802825 */ move $a1, $s4 +/* 008A18 70007E18 166E0007 */ bne $s3, $t6, .L70007E38 +/* 008A1C 70007E1C 02002025 */ move $a0, $s0 +/* 008A20 70007E20 A7AF003C */ sh $t7, 0x3c($sp) +/* 008A24 70007E24 8E060048 */ lw $a2, 0x48($s0) +/* 008A28 70007E28 0C004BBF */ jal alEvtqPostEvent +/* 008A2C 70007E2C 02402025 */ move $a0, $s2 +/* 008A30 70007E30 10000004 */ b .L70007E44 +/* 008A34 70007E34 02402025 */ move $a0, $s2 +.L70007E38: +/* 008A38 70007E38 0C001FA0 */ jal sfx_c_70007E80 +/* 008A3C 70007E3C 02202825 */ move $a1, $s1 +/* 008A40 70007E40 02402025 */ move $a0, $s2 +.L70007E44: +/* 008A44 70007E44 0C004C08 */ jal alEvtqNextEvent +/* 008A48 70007E48 02202825 */ move $a1, $s1 +/* 008A4C 70007E4C 1040FFEF */ beqz $v0, .L70007E0C +/* 008A50 70007E50 AE02004C */ sw $v0, 0x4c($s0) +/* 008A54 70007E54 8E180050 */ lw $t8, 0x50($s0) +/* 008A58 70007E58 0302C821 */ addu $t9, $t8, $v0 +/* 008A5C 70007E5C AE190050 */ sw $t9, 0x50($s0) +/* 008A60 70007E60 8FBF002C */ lw $ra, 0x2c($sp) +/* 008A64 70007E64 8FB40028 */ lw $s4, 0x28($sp) +/* 008A68 70007E68 8FB30024 */ lw $s3, 0x24($sp) +/* 008A6C 70007E6C 8FB20020 */ lw $s2, 0x20($sp) +/* 008A70 70007E70 8FB1001C */ lw $s1, 0x1c($sp) +/* 008A74 70007E74 8FB00018 */ lw $s0, 0x18($sp) +/* 008A78 70007E78 03E00008 */ jr $ra +/* 008A7C 70007E7C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +/** + * 8A80 70007E80 + * ??? + * accepts: A0=???, A1=??? + * uses TLB pointer table at 80029160 + * 70007FBC entry 0 + * 70008388 entry 1 + * 7000847C entry 3 + * 700084F0 entry F + * 700085C8 entry 7 + * 700088D4 default: entries 2,4,5,6,8,9,A,B,C,D,E + */ + +#ifdef NONMATCHING +void sfx_c_70007E80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007E80 +/* 008A80 70007E80 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 008A84 70007E84 AFBE0038 */ sw $fp, 0x38($sp) +/* 008A88 70007E88 AFB70034 */ sw $s7, 0x34($sp) +/* 008A8C 70007E8C AFB5002C */ sw $s5, 0x2c($sp) +/* 008A90 70007E90 AFB1001C */ sw $s1, 0x1c($sp) +/* 008A94 70007E94 240E0001 */ li $t6, 1 +/* 008A98 70007E98 00A0A825 */ move $s5, $a1 +/* 008A9C 70007E9C 0080B825 */ move $s7, $a0 +/* 008AA0 70007EA0 AFBF003C */ sw $ra, 0x3c($sp) +/* 008AA4 70007EA4 AFB60030 */ sw $s6, 0x30($sp) +/* 008AA8 70007EA8 AFB40028 */ sw $s4, 0x28($sp) +/* 008AAC 70007EAC AFB30024 */ sw $s3, 0x24($sp) +/* 008AB0 70007EB0 AFB20020 */ sw $s2, 0x20($sp) +/* 008AB4 70007EB4 AFB00018 */ sw $s0, 0x18($sp) +/* 008AB8 70007EB8 AFAE0080 */ sw $t6, 0x80($sp) +/* 008ABC 70007EBC AFA0007C */ sw $zero, 0x7c($sp) +/* 008AC0 70007EC0 AFA00074 */ sw $zero, 0x74($sp) +/* 008AC4 70007EC4 8FB10078 */ lw $s1, 0x78($sp) +/* 008AC8 70007EC8 241E0001 */ li $fp, 1 +/* 008ACC 70007ECC 8FAF0074 */ lw $t7, 0x74($sp) +.L70007ED0: +/* 008AD0 70007ED0 51E00008 */ beql $t7, $zero, .L70007EF4 +/* 008AD4 70007ED4 8EB10004 */ lw $s1, 4($s5) +/* 008AD8 70007ED8 AFB100A0 */ sw $s1, 0xa0($sp) +/* 008ADC 70007EDC 96B80000 */ lhu $t8, ($s5) +/* 008AE0 70007EE0 A7B8009C */ sh $t8, 0x9c($sp) +/* 008AE4 70007EE4 8EB90008 */ lw $t9, 8($s5) +/* 008AE8 70007EE8 27B5009C */ addiu $s5, $sp, 0x9c +/* 008AEC 70007EEC AFB900A4 */ sw $t9, 0xa4($sp) +/* 008AF0 70007EF0 8EB10004 */ lw $s1, 4($s5) +.L70007EF4: +/* 008AF4 70007EF4 8E320008 */ lw $s2, 8($s1) +/* 008AF8 70007EF8 16400005 */ bnez $s2, .L70007F10 +/* 008AFC 70007EFC 27A40072 */ addiu $a0, $sp, 0x72 +/* 008B00 70007F00 0C0022BC */ jal sfx_c_70008AF0 +/* 008B04 70007F04 27A50070 */ addiu $a1, $sp, 0x70 +/* 008B08 70007F08 10000284 */ b .L7000891C +/* 008B0C 70007F0C 8FBF003C */ lw $ra, 0x3c($sp) +.L70007F10: +/* 008B10 70007F10 8E280000 */ lw $t0, ($s1) +/* 008B14 70007F14 8E560004 */ lw $s6, 4($s2) +/* 008B18 70007F18 AFA80074 */ sw $t0, 0x74($sp) +/* 008B1C 70007F1C 96A30000 */ lhu $v1, ($s5) +/* 008B20 70007F20 28610101 */ slti $at, $v1, 0x101 +/* 008B24 70007F24 1420000C */ bnez $at, .L70007F58 +/* 008B28 70007F28 00601025 */ move $v0, $v1 +/* 008B2C 70007F2C 24010200 */ li $at, 512 +/* 008B30 70007F30 1041025D */ beq $v0, $at, .L700088A8 +/* 008B34 70007F34 24010400 */ li $at, 1024 +/* 008B38 70007F38 10410113 */ beq $v0, $at, .L70008388 +/* 008B3C 70007F3C 24010800 */ li $at, 2048 +/* 008B40 70007F40 104101D3 */ beq $v0, $at, .L70008690 +/* 008B44 70007F44 24011000 */ li $at, 4096 +/* 008B48 70007F48 50410110 */ beql $v0, $at, .L7000838C +/* 008B4C 70007F4C 24011000 */ li $at, 4096 +/* 008B50 70007F50 10000261 */ b .L700088D8 +/* 008B54 70007F54 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F58: +/* 008B58 70007F58 28410041 */ slti $at, $v0, 0x41 +/* 008B5C 70007F5C 14200007 */ bnez $at, .L70007F7C +/* 008B60 70007F60 24010080 */ li $at, 128 +/* 008B64 70007F64 1041024A */ beq $v0, $at, .L70008890 +/* 008B68 70007F68 24010100 */ li $at, 256 +/* 008B6C 70007F6C 50410177 */ beql $v0, $at, .L7000854C +/* 008B70 70007F70 922E003F */ lbu $t6, 0x3f($s1) +/* 008B74 70007F74 10000258 */ b .L700088D8 +/* 008B78 70007F78 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F7C: +/* 008B7C 70007F7C 28410011 */ slti $at, $v0, 0x11 +/* 008B80 70007F80 14200006 */ bnez $at, .L70007F9C +/* 008B84 70007F84 2449FFFF */ addiu $t1, $v0, -1 +/* 008B88 70007F88 24010040 */ li $at, 64 +/* 008B8C 70007F8C 504101F8 */ beql $v0, $at, .L70008770 +/* 008B90 70007F90 9239003E */ lbu $t9, 0x3e($s1) +/* 008B94 70007F94 10000250 */ b .L700088D8 +/* 008B98 70007F98 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F9C: +/* 008B9C 70007F9C 2D210010 */ sltiu $at, $t1, 0x10 +/* 008BA0 70007FA0 1020024C */ beqz $at, .L700088D4 +/* 008BA4 70007FA4 00094880 */ sll $t1, $t1, 2 +/* 008BA8 70007FA8 3C018003 */ lui $at, %hi(jpt_80029160) +/* 008BAC 70007FAC 00290821 */ addu $at, $at, $t1 +/* 008BB0 70007FB0 8C299160 */ lw $t1, %lo(jpt_80029160)($at) # lw $t1, -0x6ea0($at) +/* 008BB4 70007FB4 01200008 */ jr $t1 +/* 008BB8 70007FB8 00000000 */ nop +glabel .L70007FBC +/* 008BBC 70007FBC 9222003F */ lbu $v0, 0x3f($s1) +/* 008BC0 70007FC0 24010005 */ li $at, 5 +/* 008BC4 70007FC4 3C0B8002 */ lui $t3, %hi(D_800243F4) +/* 008BC8 70007FC8 10410003 */ beq $v0, $at, .L70007FD8 +/* 008BCC 70007FCC 24010004 */ li $at, 4 +/* 008BD0 70007FD0 54410252 */ bnel $v0, $at, .L7000891C +/* 008BD4 70007FD4 8FBF003C */ lw $ra, 0x3c($sp) +.L70007FD8: +/* 008BD8 70007FD8 A7A000CA */ sh $zero, 0xca($sp) +/* 008BDC 70007FDC 922A0036 */ lbu $t2, 0x36($s1) +/* 008BE0 70007FE0 A3A000CC */ sb $zero, 0xcc($sp) +/* 008BE4 70007FE4 856B43F4 */ lh $t3, %lo(D_800243F4)($t3) +/* 008BE8 70007FE8 A7AA00C8 */ sh $t2, 0xc8($sp) +/* 008BEC 70007FEC 8EEC0044 */ lw $t4, 0x44($s7) +/* 008BF0 70007FF0 2625000C */ addiu $a1, $s1, 0xc +/* 008BF4 70007FF4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 008BF8 70007FF8 016C802A */ slt $s0, $t3, $t4 +/* 008BFC 70007FFC 3A100001 */ xori $s0, $s0, 1 +/* 008C00 70008000 12000005 */ beqz $s0, .L70008018 +/* 008C04 70008004 00000000 */ nop +/* 008C08 70008008 9223003E */ lbu $v1, 0x3e($s1) +/* 008C0C 7000800C 306D0010 */ andi $t5, $v1, 0x10 +/* 008C10 70008010 51A00006 */ beql $t5, $zero, .L7000802C +/* 008C14 70008014 8FAE007C */ lw $t6, 0x7c($sp) +.L70008018: +/* 008C18 70008018 0C004C96 */ jal alSynAllocVoice +/* 008C1C 7000801C 8EE40038 */ lw $a0, 0x38($s7) +/* 008C20 70008020 AFA2007C */ sw $v0, 0x7c($sp) +/* 008C24 70008024 9223003E */ lbu $v1, 0x3e($s1) +/* 008C28 70008028 8FAE007C */ lw $t6, 0x7c($sp) +.L7000802C: +/* 008C2C 7000802C 2633000C */ addiu $s3, $s1, 0xc +/* 008C30 70008030 346F0004 */ ori $t7, $v1, 4 +/* 008C34 70008034 15C00045 */ bnez $t6, .L7000814C +/* 008C38 70008038 02602825 */ move $a1, $s3 +/* 008C3C 7000803C 306F0012 */ andi $t7, $v1, 0x12 +/* 008C40 70008040 15E00004 */ bnez $t7, .L70008054 +/* 008C44 70008044 24190004 */ li $t9, 4 +/* 008C48 70008048 8E380038 */ lw $t8, 0x38($s1) +/* 008C4C 7000804C 1B00000B */ blez $t8, .L7000807C +/* 008C50 70008050 00000000 */ nop +.L70008054: +/* 008C54 70008054 8E280038 */ lw $t0, 0x38($s1) +/* 008C58 70008058 A239003F */ sb $t9, 0x3f($s1) +/* 008C5C 7000805C 26E40014 */ addiu $a0, $s7, 0x14 +/* 008C60 70008060 2509FFFF */ addiu $t1, $t0, -1 +/* 008C64 70008064 AE290038 */ sw $t1, 0x38($s1) +/* 008C68 70008068 02A02825 */ move $a1, $s5 +/* 008C6C 7000806C 0C004BBF */ jal alEvtqPostEvent +/* 008C70 70008070 34068235 */ li $a2, 33333 +/* 008C74 70008074 10000229 */ b .L7000891C +/* 008C78 70008078 8FBF003C */ lw $ra, 0x3c($sp) +.L7000807C: +/* 008C7C 7000807C 1200002F */ beqz $s0, .L7000813C +/* 008C80 70008080 3C028002 */ lui $v0, %hi(D_800243E8) +/* 008C84 70008084 8C4243E8 */ lw $v0, %lo(D_800243E8)($v0) +/* 008C88 70008088 27B4005C */ addiu $s4, $sp, 0x5c +/* 008C8C 7000808C 24130003 */ li $s3, 3 +/* 008C90 70008090 24120003 */ li $s2, 3 +/* 008C94 70008094 9043003E */ lbu $v1, 0x3e($v0) +.L70008098: +/* 008C98 70008098 306A0012 */ andi $t2, $v1, 0x12 +/* 008C9C 7000809C 15400016 */ bnez $t2, .L700080F8 +/* 008CA0 700080A0 306B0004 */ andi $t3, $v1, 4 +/* 008CA4 700080A4 11600014 */ beqz $t3, .L700080F8 +/* 008CA8 700080A8 00000000 */ nop +/* 008CAC 700080AC 904C003F */ lbu $t4, 0x3f($v0) +/* 008CB0 700080B0 240D0080 */ li $t5, 128 +/* 008CB4 700080B4 26E40014 */ addiu $a0, $s7, 0x14 +/* 008CB8 700080B8 124C000F */ beq $s2, $t4, .L700080F8 +/* 008CBC 700080BC 02802825 */ move $a1, $s4 +/* 008CC0 700080C0 A7AD005C */ sh $t5, 0x5c($sp) +/* 008CC4 700080C4 AFA20060 */ sw $v0, 0x60($sp) +/* 008CC8 700080C8 A053003F */ sb $s3, 0x3f($v0) +/* 008CCC 700080CC 00008025 */ move $s0, $zero +/* 008CD0 700080D0 AFA2006C */ sw $v0, 0x6c($sp) +/* 008CD4 700080D4 0C004BBF */ jal alEvtqPostEvent +/* 008CD8 700080D8 240603E8 */ li $a2, 1000 +/* 008CDC 700080DC 8FA2006C */ lw $v0, 0x6c($sp) +/* 008CE0 700080E0 8EE40038 */ lw $a0, 0x38($s7) +/* 008CE4 700080E4 00003025 */ move $a2, $zero +/* 008CE8 700080E8 240703E8 */ li $a3, 1000 +/* 008CEC 700080EC 0C004CE8 */ jal alSynSetVol +/* 008CF0 700080F0 2445000C */ addiu $a1, $v0, 0xc +/* 008CF4 700080F4 8FA2006C */ lw $v0, 0x6c($sp) +.L700080F8: +/* 008CF8 700080F8 12000003 */ beqz $s0, .L70008108 +/* 008CFC 700080FC 8C420004 */ lw $v0, 4($v0) +/* 008D00 70008100 5440FFE5 */ bnezl $v0, .L70008098 +/* 008D04 70008104 9043003E */ lbu $v1, 0x3e($v0) +.L70008108: +/* 008D08 70008108 16000008 */ bnez $s0, .L7000812C +/* 008D0C 7000810C 240E0002 */ li $t6, 2 +/* 008D10 70008110 AE2E0038 */ sw $t6, 0x38($s1) +/* 008D14 70008114 26E40014 */ addiu $a0, $s7, 0x14 +/* 008D18 70008118 02A02825 */ move $a1, $s5 +/* 008D1C 7000811C 0C004BBF */ jal alEvtqPostEvent +/* 008D20 70008120 240603E9 */ li $a2, 1001 +/* 008D24 70008124 100001FD */ b .L7000891C +/* 008D28 70008128 8FBF003C */ lw $ra, 0x3c($sp) +.L7000812C: +/* 008D2C 7000812C 0C002252 */ jal sfx_c_70008948 +/* 008D30 70008130 02202025 */ move $a0, $s1 +/* 008D34 70008134 100001F9 */ b .L7000891C +/* 008D38 70008138 8FBF003C */ lw $ra, 0x3c($sp) +.L7000813C: +/* 008D3C 7000813C 0C002252 */ jal sfx_c_70008948 +/* 008D40 70008140 02202025 */ move $a0, $s1 +/* 008D44 70008144 100001F5 */ b .L7000891C +/* 008D48 70008148 8FBF003C */ lw $ra, 0x3c($sp) +.L7000814C: +/* 008D4C 7000814C A22F003E */ sb $t7, 0x3e($s1) +/* 008D50 70008150 8E460008 */ lw $a2, 8($s2) +/* 008D54 70008154 8EE40038 */ lw $a0, 0x38($s7) +/* 008D58 70008158 0C004D10 */ jal alSynStartVoice +/* 008D5C 7000815C 26F40014 */ addiu $s4, $s7, 0x14 +/* 008D60 70008160 24180001 */ li $t8, 1 +/* 008D64 70008164 A238003F */ sb $t8, 0x3f($s1) +/* 008D68 70008168 3C198002 */ lui $t9, %hi(D_800243F4) +/* 008D6C 7000816C 873943F4 */ lh $t9, %lo(D_800243F4)($t9) +/* 008D70 70008170 3C018002 */ lui $at, %hi(D_800243F4) +/* 008D74 70008174 3C0B8006 */ lui $t3, %hi(D_80063BA4) +/* 008D78 70008178 27280001 */ addiu $t0, $t9, 1 +/* 008D7C 7000817C A42843F4 */ sh $t0, %lo(D_800243F4)($at) +/* 008D80 70008180 8E420000 */ lw $v0, ($s2) +/* 008D84 70008184 86280034 */ lh $t0, 0x34($s1) +/* 008D88 70008188 924A000D */ lbu $t2, 0xd($s2) +/* 008D8C 7000818C 9059000C */ lbu $t9, 0xc($v0) +/* 008D90 70008190 8C490000 */ lw $t1, ($v0) +/* 008D94 70008194 92CC0002 */ lbu $t4, 2($s6) +/* 008D98 70008198 03280019 */ multu $t9, $t0 +/* 008D9C 7000819C 44892000 */ mtc1 $t1, $f4 +/* 008DA0 700081A0 318D003F */ andi $t5, $t4, 0x3f +/* 008DA4 700081A4 24013F01 */ li $at, 16129 +/* 008DA8 700081A8 8D6B3BA4 */ lw $t3, %lo(D_80063BA4)($t3) +/* 008DAC 700081AC 000D7040 */ sll $t6, $t5, 1 +/* 008DB0 700081B0 468021A0 */ cvt.s.w $f6, $f4 +/* 008DB4 700081B4 016E7821 */ addu $t7, $t3, $t6 +/* 008DB8 700081B8 85F80000 */ lh $t8, ($t7) +/* 008DBC 700081BC C628002C */ lwc1 $f8, 0x2c($s1) +/* 008DC0 700081C0 00004812 */ mflo $t1 +/* 008DC4 700081C4 C6300028 */ lwc1 $f16, 0x28($s1) +/* 008DC8 700081C8 46083283 */ div.s $f10, $f6, $f8 +/* 008DCC 700081CC 012A0019 */ multu $t1, $t2 +/* 008DD0 700081D0 02602825 */ move $a1, $s3 +/* 008DD4 700081D4 00003025 */ move $a2, $zero +/* 008DD8 700081D8 00003825 */ move $a3, $zero +/* 008DDC 700081DC 00006012 */ mflo $t4 +/* 008DE0 700081E0 00000000 */ nop +/* 008DE4 700081E4 00000000 */ nop +/* 008DE8 700081E8 0181001A */ div $zero, $t4, $at +/* 008DEC 700081EC 00006812 */ mflo $t5 +/* 008DF0 700081F0 24017FFF */ li $at, 32767 +/* 008DF4 700081F4 46105483 */ div.s $f18, $f10, $f16 +/* 008DF8 700081F8 030D0019 */ multu $t8, $t5 +/* 008DFC 700081FC 00002012 */ mflo $a0 +/* 008E00 70008200 00000000 */ nop +/* 008E04 70008204 00000000 */ nop +/* 008E08 70008208 0081001A */ div $zero, $a0, $at +/* 008E0C 7000820C 4600910D */ trunc.w.s $f4, $f18 +/* 008E10 70008210 00005812 */ mflo $t3 +/* 008E14 70008214 2564FFFF */ addiu $a0, $t3, -1 +/* 008E18 70008218 00801825 */ move $v1, $a0 +/* 008E1C 7000821C 44102000 */ mfc1 $s0, $f4 +/* 008E20 70008220 04810003 */ bgez $a0, .L70008230 +/* 008E24 70008224 00000000 */ nop +/* 008E28 70008228 10000001 */ b .L70008230 +/* 008E2C 7000822C 00001825 */ move $v1, $zero +.L70008230: +/* 008E30 70008230 8EE40038 */ lw $a0, 0x38($s7) +/* 008E34 70008234 0C004CE8 */ jal alSynSetVol +/* 008E38 70008238 AFA30090 */ sw $v1, 0x90($sp) +/* 008E3C 7000823C 8FA30090 */ lw $v1, 0x90($sp) +/* 008E40 70008240 8EE40038 */ lw $a0, 0x38($s7) +/* 008E44 70008244 02602825 */ move $a1, $s3 +/* 008E48 70008248 00033400 */ sll $a2, $v1, 0x10 +/* 008E4C 7000824C 00067403 */ sra $t6, $a2, 0x10 +/* 008E50 70008250 01C03025 */ move $a2, $t6 +/* 008E54 70008254 0C004CE8 */ jal alSynSetVol +/* 008E58 70008258 02003825 */ move $a3, $s0 +/* 008E5C 7000825C 922F003C */ lbu $t7, 0x3c($s1) +/* 008E60 70008260 9259000C */ lbu $t9, 0xc($s2) +/* 008E64 70008264 00001025 */ move $v0, $zero +/* 008E68 70008268 2406007F */ li $a2, 127 +/* 008E6C 7000826C 01F91821 */ addu $v1, $t7, $t9 +/* 008E70 70008270 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 008E74 70008274 18600003 */ blez $v1, .L70008284 +/* 008E78 70008278 02602825 */ move $a1, $s3 +/* 008E7C 7000827C 10000001 */ b .L70008284 +/* 008E80 70008280 00601025 */ move $v0, $v1 +.L70008284: +/* 008E84 70008284 2841007F */ slti $at, $v0, 0x7f +/* 008E88 70008288 10200007 */ beqz $at, .L700082A8 +/* 008E8C 7000828C 00000000 */ nop +/* 008E90 70008290 18600003 */ blez $v1, .L700082A0 +/* 008E94 70008294 00001025 */ move $v0, $zero +/* 008E98 70008298 10000003 */ b .L700082A8 +/* 008E9C 7000829C 306600FF */ andi $a2, $v1, 0xff +.L700082A0: +/* 008EA0 700082A0 10000001 */ b .L700082A8 +/* 008EA4 700082A4 304600FF */ andi $a2, $v0, 0xff +.L700082A8: +/* 008EA8 700082A8 0C004D34 */ jal alSynSetPan +/* 008EAC 700082AC 8EE40038 */ lw $a0, 0x38($s7) +/* 008EB0 700082B0 C626002C */ lwc1 $f6, 0x2c($s1) +/* 008EB4 700082B4 C6280028 */ lwc1 $f8, 0x28($s1) +/* 008EB8 700082B8 8EE40038 */ lw $a0, 0x38($s7) +/* 008EBC 700082BC 02602825 */ move $a1, $s3 +/* 008EC0 700082C0 46083282 */ mul.s $f10, $f6, $f8 +/* 008EC4 700082C4 44065000 */ mfc1 $a2, $f10 +/* 008EC8 700082C8 0C004D58 */ jal alSynSetPitch +/* 008ECC 700082CC 00000000 */ nop +/* 008ED0 700082D0 92C90003 */ lbu $t1, 3($s6) +/* 008ED4 700082D4 9228003D */ lbu $t0, 0x3d($s1) +/* 008ED8 700082D8 02602825 */ move $a1, $s3 +/* 008EDC 700082DC 312A000F */ andi $t2, $t1, 0xf +/* 008EE0 700082E0 010A1821 */ addu $v1, $t0, $t2 +/* 008EE4 700082E4 000360C0 */ sll $t4, $v1, 3 +/* 008EE8 700082E8 05810003 */ bgez $t4, .L700082F8 +/* 008EEC 700082EC 01801825 */ move $v1, $t4 +/* 008EF0 700082F0 10000002 */ b .L700082FC +/* 008EF4 700082F4 00001025 */ move $v0, $zero +.L700082F8: +/* 008EF8 700082F8 00601025 */ move $v0, $v1 +.L700082FC: +/* 008EFC 700082FC 28410080 */ slti $at, $v0, 0x80 +/* 008F00 70008300 14200003 */ bnez $at, .L70008310 +/* 008F04 70008304 00000000 */ nop +/* 008F08 70008308 10000006 */ b .L70008324 +/* 008F0C 7000830C 2403007F */ li $v1, 127 +.L70008310: +/* 008F10 70008310 04610003 */ bgez $v1, .L70008320 +/* 008F14 70008314 00601025 */ move $v0, $v1 +/* 008F18 70008318 10000001 */ b .L70008320 +/* 008F1C 7000831C 00001025 */ move $v0, $zero +.L70008320: +/* 008F20 70008320 00401825 */ move $v1, $v0 +.L70008324: +/* 008F24 70008324 8EE40038 */ lw $a0, 0x38($s7) +/* 008F28 70008328 0C004D7C */ jal alSynSetFXMix +/* 008F2C 7000832C 306600FF */ andi $a2, $v1, 0xff +/* 008F30 70008330 24180040 */ li $t8, 64 +/* 008F34 70008334 A7B800AC */ sh $t8, 0xac($sp) +/* 008F38 70008338 AFB100B0 */ sw $s1, 0xb0($sp) +/* 008F3C 7000833C 8E4D0000 */ lw $t5, ($s2) +/* 008F40 70008340 C624002C */ lwc1 $f4, 0x2c($s1) +/* 008F44 70008344 C6280028 */ lwc1 $f8, 0x28($s1) +/* 008F48 70008348 8DAB0000 */ lw $t3, ($t5) +/* 008F4C 7000834C 02802025 */ move $a0, $s4 +/* 008F50 70008350 27A500AC */ addiu $a1, $sp, 0xac +/* 008F54 70008354 448B8000 */ mtc1 $t3, $f16 +/* 008F58 70008358 00000000 */ nop +/* 008F5C 7000835C 468084A0 */ cvt.s.w $f18, $f16 +/* 008F60 70008360 46049183 */ div.s $f6, $f18, $f4 +/* 008F64 70008364 46083283 */ div.s $f10, $f6, $f8 +/* 008F68 70008368 4600540D */ trunc.w.s $f16, $f10 +/* 008F6C 7000836C 44068000 */ mfc1 $a2, $f16 +/* 008F70 70008370 0C004BBF */ jal alEvtqPostEvent +/* 008F74 70008374 00000000 */ nop +/* 008F78 70008378 96A20000 */ lhu $v0, ($s5) +/* 008F7C 7000837C 304F02D1 */ andi $t7, $v0, 0x2d1 +/* 008F80 70008380 10000155 */ b .L700088D8 +/* 008F84 70008384 01E01025 */ move $v0, $t7 +glabel .L70008388 +/* 008F88 70008388 24011000 */ li $at, 4096 +.L7000838C: +/* 008F8C 7000838C 54610006 */ bnel $v1, $at, .L700083A8 +/* 008F90 70008390 9222003F */ lbu $v0, 0x3f($s1) +/* 008F94 70008394 9239003E */ lbu $t9, 0x3e($s1) +/* 008F98 70008398 33290002 */ andi $t1, $t9, 2 +/* 008F9C 7000839C 11200035 */ beqz $t1, .L70008474 +/* 008FA0 700083A0 00000000 */ nop +/* 008FA4 700083A4 9222003F */ lbu $v0, 0x3f($s1) +.L700083A8: +/* 008FA8 700083A8 26F40014 */ addiu $s4, $s7, 0x14 +/* 008FAC 700083AC 02802025 */ move $a0, $s4 +/* 008FB0 700083B0 105E0008 */ beq $v0, $fp, .L700083D4 +/* 008FB4 700083B4 02202825 */ move $a1, $s1 +/* 008FB8 700083B8 24010004 */ li $at, 4 +/* 008FBC 700083BC 10410025 */ beq $v0, $at, .L70008454 +/* 008FC0 700083C0 24010005 */ li $at, 5 +/* 008FC4 700083C4 10410023 */ beq $v0, $at, .L70008454 +/* 008FC8 700083C8 00000000 */ nop +/* 008FCC 700083CC 10000025 */ b .L70008464 +/* 008FD0 700083D0 24010002 */ li $at, 2 +.L700083D4: +/* 008FD4 700083D4 0C00228C */ jal sfx_c_70008A30 +/* 008FD8 700083D8 24060040 */ li $a2, 64 +/* 008FDC 700083DC 8E480000 */ lw $t0, ($s2) +/* 008FE0 700083E0 C6260028 */ lwc1 $f6, 0x28($s1) +/* 008FE4 700083E4 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 008FE8 700083E8 8D0A0008 */ lw $t2, 8($t0) +/* 008FEC 700083EC 8EE40038 */ lw $a0, 0x38($s7) +/* 008FF0 700083F0 2625000C */ addiu $a1, $s1, 0xc +/* 008FF4 700083F4 448A9000 */ mtc1 $t2, $f18 +/* 008FF8 700083F8 00003025 */ move $a2, $zero +/* 008FFC 700083FC 46809120 */ cvt.s.w $f4, $f18 +/* 009000 70008400 46062203 */ div.s $f8, $f4, $f6 +/* 009004 70008404 460A4403 */ div.s $f16, $f8, $f10 +/* 009008 70008408 4600848D */ trunc.w.s $f18, $f16 +/* 00900C 7000840C 44109000 */ mfc1 $s0, $f18 +/* 009010 70008410 0C004CE8 */ jal alSynSetVol +/* 009014 70008414 02003825 */ move $a3, $s0 +/* 009018 70008418 1200000A */ beqz $s0, .L70008444 +/* 00901C 7000841C 24180080 */ li $t8, 128 +/* 009020 70008420 A7B800AC */ sh $t8, 0xac($sp) +/* 009024 70008424 AFB100B0 */ sw $s1, 0xb0($sp) +/* 009028 70008428 02802025 */ move $a0, $s4 +/* 00902C 7000842C 27A500AC */ addiu $a1, $sp, 0xac +/* 009030 70008430 0C004BBF */ jal alEvtqPostEvent +/* 009034 70008434 02003025 */ move $a2, $s0 +/* 009038 70008438 240D0002 */ li $t5, 2 +/* 00903C 7000843C 10000003 */ b .L7000844C +/* 009040 70008440 A22D003F */ sb $t5, 0x3f($s1) +.L70008444: +/* 009044 70008444 0C002252 */ jal sfx_c_70008948 +/* 009048 70008448 02202025 */ move $a0, $s1 +.L7000844C: +/* 00904C 7000844C 10000004 */ b .L70008460 +/* 009050 70008450 96A30000 */ lhu $v1, ($s5) +.L70008454: +/* 009054 70008454 0C002252 */ jal sfx_c_70008948 +/* 009058 70008458 02202025 */ move $a0, $s1 +/* 00905C 7000845C 96A30000 */ lhu $v1, ($s5) +.L70008460: +/* 009060 70008460 24010002 */ li $at, 2 +.L70008464: +/* 009064 70008464 14610003 */ bne $v1, $at, .L70008474 +/* 009068 70008468 240B1000 */ li $t3, 4096 +/* 00906C 7000846C A6AB0000 */ sh $t3, ($s5) +/* 009070 70008470 3163FFFF */ andi $v1, $t3, 0xffff +.L70008474: +/* 009074 70008474 10000118 */ b .L700088D8 +/* 009078 70008478 306202D1 */ andi $v0, $v1, 0x2d1 +glabel .L7000847C +/* 00907C 7000847C 922F003F */ lbu $t7, 0x3f($s1) +/* 009080 70008480 8EAE0008 */ lw $t6, 8($s5) +/* 009084 70008484 2625000C */ addiu $a1, $s1, 0xc +/* 009088 70008488 17CF0015 */ bne $fp, $t7, .L700084E0 +/* 00908C 7000848C A22E003C */ sb $t6, 0x3c($s1) +/* 009090 70008490 9249000C */ lbu $t1, 0xc($s2) +/* 009094 70008494 31D900FF */ andi $t9, $t6, 0xff +/* 009098 70008498 00001025 */ move $v0, $zero +/* 00909C 7000849C 03291821 */ addu $v1, $t9, $t1 +/* 0090A0 700084A0 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 0090A4 700084A4 18600003 */ blez $v1, .L700084B4 +/* 0090A8 700084A8 2406007F */ li $a2, 127 +/* 0090AC 700084AC 10000001 */ b .L700084B4 +/* 0090B0 700084B0 00601025 */ move $v0, $v1 +.L700084B4: +/* 0090B4 700084B4 2841007F */ slti $at, $v0, 0x7f +/* 0090B8 700084B8 10200007 */ beqz $at, .L700084D8 +/* 0090BC 700084BC 00000000 */ nop +/* 0090C0 700084C0 18600003 */ blez $v1, .L700084D0 +/* 0090C4 700084C4 00001025 */ move $v0, $zero +/* 0090C8 700084C8 10000003 */ b .L700084D8 +/* 0090CC 700084CC 306600FF */ andi $a2, $v1, 0xff +.L700084D0: +/* 0090D0 700084D0 10000001 */ b .L700084D8 +/* 0090D4 700084D4 304600FF */ andi $a2, $v0, 0xff +.L700084D8: +/* 0090D8 700084D8 0C004D34 */ jal alSynSetPan +/* 0090DC 700084DC 8EE40038 */ lw $a0, 0x38($s7) +.L700084E0: +/* 0090E0 700084E0 96A20000 */ lhu $v0, ($s5) +/* 0090E4 700084E4 304802D1 */ andi $t0, $v0, 0x2d1 +/* 0090E8 700084E8 100000FB */ b .L700088D8 +/* 0090EC 700084EC 01001025 */ move $v0, $t0 +glabel .L700084F0 +/* 0090F0 700084F0 922A003F */ lbu $t2, 0x3f($s1) +/* 0090F4 700084F4 C6A40008 */ lwc1 $f4, 8($s5) +/* 0090F8 700084F8 17CA000F */ bne $fp, $t2, .L70008538 +/* 0090FC 700084FC E624002C */ swc1 $f4, 0x2c($s1) +/* 009100 70008500 C626002C */ lwc1 $f6, 0x2c($s1) +/* 009104 70008504 C6280028 */ lwc1 $f8, 0x28($s1) +/* 009108 70008508 8EE40038 */ lw $a0, 0x38($s7) +/* 00910C 7000850C 2625000C */ addiu $a1, $s1, 0xc +/* 009110 70008510 46083282 */ mul.s $f10, $f6, $f8 +/* 009114 70008514 44065000 */ mfc1 $a2, $f10 +/* 009118 70008518 0C004D58 */ jal alSynSetPitch +/* 00911C 7000851C 00000000 */ nop +/* 009120 70008520 922C003E */ lbu $t4, 0x3e($s1) +/* 009124 70008524 31980020 */ andi $t8, $t4, 0x20 +/* 009128 70008528 53000004 */ beql $t8, $zero, .L7000853C +/* 00912C 7000852C 96A20000 */ lhu $v0, ($s5) +/* 009130 70008530 0C002271 */ jal sfx_c_700089C4 +/* 009134 70008534 02202025 */ move $a0, $s1 +.L70008538: +/* 009138 70008538 96A20000 */ lhu $v0, ($s5) +.L7000853C: +/* 00913C 7000853C 304D02D1 */ andi $t5, $v0, 0x2d1 +/* 009140 70008540 100000E5 */ b .L700088D8 +/* 009144 70008544 01A01025 */ move $v0, $t5 +/* 009148 70008548 922E003F */ lbu $t6, 0x3f($s1) +.L7000854C: +/* 00914C 7000854C 8EAB0008 */ lw $t3, 8($s5) +/* 009150 70008550 2625000C */ addiu $a1, $s1, 0xc +/* 009154 70008554 17CE0018 */ bne $fp, $t6, .L700085B8 +/* 009158 70008558 A22B003D */ sb $t3, 0x3d($s1) +/* 00915C 7000855C 92D90003 */ lbu $t9, 3($s6) +/* 009160 70008560 316F00FF */ andi $t7, $t3, 0xff +/* 009164 70008564 3329000F */ andi $t1, $t9, 0xf +/* 009168 70008568 01E91821 */ addu $v1, $t7, $t1 +/* 00916C 7000856C 000340C0 */ sll $t0, $v1, 3 +/* 009170 70008570 05010003 */ bgez $t0, .L70008580 +/* 009174 70008574 01001825 */ move $v1, $t0 +/* 009178 70008578 10000002 */ b .L70008584 +/* 00917C 7000857C 00001025 */ move $v0, $zero +.L70008580: +/* 009180 70008580 00601025 */ move $v0, $v1 +.L70008584: +/* 009184 70008584 28410080 */ slti $at, $v0, 0x80 +/* 009188 70008588 14200003 */ bnez $at, .L70008598 +/* 00918C 7000858C 00000000 */ nop +/* 009190 70008590 10000006 */ b .L700085AC +/* 009194 70008594 2403007F */ li $v1, 127 +.L70008598: +/* 009198 70008598 04610003 */ bgez $v1, .L700085A8 +/* 00919C 7000859C 00601025 */ move $v0, $v1 +/* 0091A0 700085A0 10000001 */ b .L700085A8 +/* 0091A4 700085A4 00001025 */ move $v0, $zero +.L700085A8: +/* 0091A8 700085A8 00401825 */ move $v1, $v0 +.L700085AC: +/* 0091AC 700085AC 8EE40038 */ lw $a0, 0x38($s7) +/* 0091B0 700085B0 0C004D7C */ jal alSynSetFXMix +/* 0091B4 700085B4 306600FF */ andi $a2, $v1, 0xff +.L700085B8: +/* 0091B8 700085B8 96A20000 */ lhu $v0, ($s5) +/* 0091BC 700085BC 304A02D1 */ andi $t2, $v0, 0x2d1 +/* 0091C0 700085C0 100000C5 */ b .L700088D8 +/* 0091C4 700085C4 01401025 */ move $v0, $t2 +glabel .L700085C8 +/* 0091C8 700085C8 9238003F */ lbu $t8, 0x3f($s1) +/* 0091CC 700085CC 8EAC0008 */ lw $t4, 8($s5) +/* 0091D0 700085D0 2625000C */ addiu $a1, $s1, 0xc +/* 0091D4 700085D4 17D8002A */ bne $fp, $t8, .L70008680 +/* 0091D8 700085D8 A62C0034 */ sh $t4, 0x34($s1) +/* 0091DC 700085DC 8E480000 */ lw $t0, ($s2) +/* 0091E0 700085E0 862C0034 */ lh $t4, 0x34($s1) +/* 0091E4 700085E4 92CB0002 */ lbu $t3, 2($s6) +/* 0091E8 700085E8 910A000D */ lbu $t2, 0xd($t0) +/* 0091EC 700085EC 24013F01 */ li $at, 16129 +/* 0091F0 700085F0 316E003F */ andi $t6, $t3, 0x3f +/* 0091F4 700085F4 014C0019 */ multu $t2, $t4 +/* 0091F8 700085F8 924B000D */ lbu $t3, 0xd($s2) +/* 0091FC 700085FC 000EC840 */ sll $t9, $t6, 1 +/* 009200 70008600 3C0D8006 */ lui $t5, %hi(D_80063BA4) +/* 009204 70008604 8DAD3BA4 */ lw $t5, %lo(D_80063BA4)($t5) +/* 009208 70008608 240703E8 */ li $a3, 1000 +/* 00920C 7000860C 01B97821 */ addu $t7, $t5, $t9 +/* 009210 70008610 85E90000 */ lh $t1, ($t7) +/* 009214 70008614 0000C012 */ mflo $t8 +/* 009218 70008618 00000000 */ nop +/* 00921C 7000861C 00000000 */ nop +/* 009220 70008620 030B0019 */ multu $t8, $t3 +/* 009224 70008624 00007012 */ mflo $t6 +/* 009228 70008628 00000000 */ nop +/* 00922C 7000862C 00000000 */ nop +/* 009230 70008630 01C1001A */ div $zero, $t6, $at +/* 009234 70008634 00006812 */ mflo $t5 +/* 009238 70008638 24017FFF */ li $at, 32767 +/* 00923C 7000863C 00000000 */ nop +/* 009240 70008640 012D0019 */ multu $t1, $t5 +/* 009244 70008644 00002012 */ mflo $a0 +/* 009248 70008648 00000000 */ nop +/* 00924C 7000864C 00000000 */ nop +/* 009250 70008650 0081001A */ div $zero, $a0, $at +/* 009254 70008654 0000C812 */ mflo $t9 +/* 009258 70008658 2724FFFF */ addiu $a0, $t9, -1 +/* 00925C 7000865C 04810003 */ bgez $a0, .L7000866C +/* 009260 70008660 00801825 */ move $v1, $a0 +/* 009264 70008664 10000001 */ b .L7000866C +/* 009268 70008668 00001825 */ move $v1, $zero +.L7000866C: +/* 00926C 7000866C 00033400 */ sll $a2, $v1, 0x10 +/* 009270 70008670 00067C03 */ sra $t7, $a2, 0x10 +/* 009274 70008674 01E03025 */ move $a2, $t7 +/* 009278 70008678 0C004CE8 */ jal alSynSetVol +/* 00927C 7000867C 8EE40038 */ lw $a0, 0x38($s7) +.L70008680: +/* 009280 70008680 96A20000 */ lhu $v0, ($s5) +/* 009284 70008684 304802D1 */ andi $t0, $v0, 0x2d1 +/* 009288 70008688 10000093 */ b .L700088D8 +/* 00928C 7000868C 01001025 */ move $v0, $t0 +.L70008690: +/* 009290 70008690 922A003F */ lbu $t2, 0x3f($s1) +/* 009294 70008694 2625000C */ addiu $a1, $s1, 0xc +/* 009298 70008698 17CA0032 */ bne $fp, $t2, .L70008764 +/* 00929C 7000869C 00000000 */ nop +/* 0092A0 700086A0 8E420000 */ lw $v0, ($s2) +/* 0092A4 700086A4 862A0034 */ lh $t2, 0x34($s1) +/* 0092A8 700086A8 9258000D */ lbu $t8, 0xd($s2) +/* 0092AC 700086AC 9048000D */ lbu $t0, 0xd($v0) +/* 0092B0 700086B0 8C4C0008 */ lw $t4, 8($v0) +/* 0092B4 700086B4 92CE0002 */ lbu $t6, 2($s6) +/* 0092B8 700086B8 010A0019 */ multu $t0, $t2 +/* 0092BC 700086BC 448C8000 */ mtc1 $t4, $f16 +/* 0092C0 700086C0 31C9003F */ andi $t1, $t6, 0x3f +/* 0092C4 700086C4 24013F01 */ li $at, 16129 +/* 0092C8 700086C8 3C0B8006 */ lui $t3, %hi(D_80063BA4) +/* 0092CC 700086CC 8D6B3BA4 */ lw $t3, %lo(D_80063BA4)($t3) +/* 0092D0 700086D0 00096840 */ sll $t5, $t1, 1 +/* 0092D4 700086D4 468084A0 */ cvt.s.w $f18, $f16 +/* 0092D8 700086D8 016DC821 */ addu $t9, $t3, $t5 +/* 0092DC 700086DC 872F0000 */ lh $t7, ($t9) +/* 0092E0 700086E0 00006012 */ mflo $t4 +/* 0092E4 700086E4 C6240028 */ lwc1 $f4, 0x28($s1) +/* 0092E8 700086E8 C628002C */ lwc1 $f8, 0x2c($s1) +/* 0092EC 700086EC 01980019 */ multu $t4, $t8 +/* 0092F0 700086F0 46049183 */ div.s $f6, $f18, $f4 +/* 0092F4 700086F4 00007012 */ mflo $t6 +/* 0092F8 700086F8 00000000 */ nop +/* 0092FC 700086FC 00000000 */ nop +/* 009300 70008700 01C1001A */ div $zero, $t6, $at +/* 009304 70008704 00004812 */ mflo $t1 +/* 009308 70008708 24017FFF */ li $at, 32767 +/* 00930C 7000870C 46083283 */ div.s $f10, $f6, $f8 +/* 009310 70008710 01E90019 */ multu $t7, $t1 +/* 009314 70008714 00002012 */ mflo $a0 +/* 009318 70008718 00000000 */ nop +/* 00931C 7000871C 00000000 */ nop +/* 009320 70008720 0081001A */ div $zero, $a0, $at +/* 009324 70008724 4600540D */ trunc.w.s $f16, $f10 +/* 009328 70008728 00005812 */ mflo $t3 +/* 00932C 7000872C 2564FFFF */ addiu $a0, $t3, -1 +/* 009330 70008730 00801825 */ move $v1, $a0 +/* 009334 70008734 44108000 */ mfc1 $s0, $f16 +/* 009338 70008738 04810003 */ bgez $a0, .L70008748 +/* 00933C 7000873C 00000000 */ nop +/* 009340 70008740 10000001 */ b .L70008748 +/* 009344 70008744 00001825 */ move $v1, $zero +.L70008748: +/* 009348 70008748 00033400 */ sll $a2, $v1, 0x10 +/* 00934C 7000874C 00066C03 */ sra $t5, $a2, 0x10 +/* 009350 70008750 01A03025 */ move $a2, $t5 +/* 009354 70008754 8EE40038 */ lw $a0, 0x38($s7) +/* 009358 70008758 0C004CE8 */ jal alSynSetVol +/* 00935C 7000875C 02003825 */ move $a3, $s0 +/* 009360 70008760 96A30000 */ lhu $v1, ($s5) +.L70008764: +/* 009364 70008764 1000005C */ b .L700088D8 +/* 009368 70008768 306202D1 */ andi $v0, $v1, 0x2d1 +/* 00936C 7000876C 9239003E */ lbu $t9, 0x3e($s1) +.L70008770: +/* 009370 70008770 33280002 */ andi $t0, $t9, 2 +/* 009374 70008774 55000043 */ bnezl $t0, .L70008884 +/* 009378 70008778 96A20000 */ lhu $v0, ($s5) +/* 00937C 7000877C 8E420000 */ lw $v0, ($s2) +/* 009380 70008780 862D0034 */ lh $t5, 0x34($s1) +/* 009384 70008784 9248000D */ lbu $t0, 0xd($s2) +/* 009388 70008788 904B000D */ lbu $t3, 0xd($v0) +/* 00938C 7000878C 92CC0002 */ lbu $t4, 2($s6) +/* 009390 70008790 24013F01 */ li $at, 16129 +/* 009394 70008794 016D0019 */ multu $t3, $t5 +/* 009398 70008798 3198003F */ andi $t8, $t4, 0x3f +/* 00939C 7000879C 3C0A8006 */ lui $t2, %hi(D_80063BA4) +/* 0093A0 700087A0 8D4A3BA4 */ lw $t2, %lo(D_80063BA4)($t2) +/* 0093A4 700087A4 00187040 */ sll $t6, $t8, 1 +/* 0093A8 700087A8 26F40014 */ addiu $s4, $s7, 0x14 +/* 0093AC 700087AC 014E7821 */ addu $t7, $t2, $t6 +/* 0093B0 700087B0 85E90000 */ lh $t1, ($t7) +/* 0093B4 700087B4 0000C812 */ mflo $t9 +/* 0093B8 700087B8 00000000 */ nop +/* 0093BC 700087BC 00000000 */ nop +/* 0093C0 700087C0 03280019 */ multu $t9, $t0 +/* 0093C4 700087C4 00006012 */ mflo $t4 +/* 0093C8 700087C8 00000000 */ nop +/* 0093CC 700087CC 00000000 */ nop +/* 0093D0 700087D0 0181001A */ div $zero, $t4, $at +/* 0093D4 700087D4 0000C012 */ mflo $t8 +/* 0093D8 700087D8 24017FFF */ li $at, 32767 +/* 0093DC 700087DC 00000000 */ nop +/* 0093E0 700087E0 01380019 */ multu $t1, $t8 +/* 0093E4 700087E4 00002012 */ mflo $a0 +/* 0093E8 700087E8 00000000 */ nop +/* 0093EC 700087EC 00000000 */ nop +/* 0093F0 700087F0 0081001A */ div $zero, $a0, $at +/* 0093F4 700087F4 00005012 */ mflo $t2 +/* 0093F8 700087F8 2544FFFF */ addiu $a0, $t2, -1 +/* 0093FC 700087FC 04810003 */ bgez $a0, .L7000880C +/* 009400 70008800 00801825 */ move $v1, $a0 +/* 009404 70008804 10000001 */ b .L7000880C +/* 009408 70008808 00001825 */ move $v1, $zero +.L7000880C: +/* 00940C 7000880C 8C4E0004 */ lw $t6, 4($v0) +/* 009410 70008810 C6260028 */ lwc1 $f6, 0x28($s1) +/* 009414 70008814 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 009418 70008818 448E9000 */ mtc1 $t6, $f18 +/* 00941C 7000881C 00033400 */ sll $a2, $v1, 0x10 +/* 009420 70008820 00065C03 */ sra $t3, $a2, 0x10 +/* 009424 70008824 46809120 */ cvt.s.w $f4, $f18 +/* 009428 70008828 01603025 */ move $a2, $t3 +/* 00942C 7000882C 8EE40038 */ lw $a0, 0x38($s7) +/* 009430 70008830 2625000C */ addiu $a1, $s1, 0xc +/* 009434 70008834 46062203 */ div.s $f8, $f4, $f6 +/* 009438 70008838 460A4403 */ div.s $f16, $f8, $f10 +/* 00943C 7000883C 4600848D */ trunc.w.s $f18, $f16 +/* 009440 70008840 44109000 */ mfc1 $s0, $f18 +/* 009444 70008844 0C004CE8 */ jal alSynSetVol +/* 009448 70008848 02003825 */ move $a3, $s0 +/* 00944C 7000884C 240D0002 */ li $t5, 2 +/* 009450 70008850 A7AD00AC */ sh $t5, 0xac($sp) +/* 009454 70008854 AFB100B0 */ sw $s1, 0xb0($sp) +/* 009458 70008858 02802025 */ move $a0, $s4 +/* 00945C 7000885C 27A500AC */ addiu $a1, $sp, 0xac +/* 009460 70008860 0C004BBF */ jal alEvtqPostEvent +/* 009464 70008864 02003025 */ move $a2, $s0 +/* 009468 70008868 9239003E */ lbu $t9, 0x3e($s1) +/* 00946C 7000886C 33280020 */ andi $t0, $t9, 0x20 +/* 009470 70008870 51000004 */ beql $t0, $zero, .L70008884 +/* 009474 70008874 96A20000 */ lhu $v0, ($s5) +/* 009478 70008878 0C002271 */ jal sfx_c_700089C4 +/* 00947C 7000887C 02202025 */ move $a0, $s1 +/* 009480 70008880 96A20000 */ lhu $v0, ($s5) +.L70008884: +/* 009484 70008884 304C02D1 */ andi $t4, $v0, 0x2d1 +/* 009488 70008888 10000013 */ b .L700088D8 +/* 00948C 7000888C 01801025 */ move $v0, $t4 +.L70008890: +/* 009490 70008890 0C002252 */ jal sfx_c_70008948 +/* 009494 70008894 02202025 */ move $a0, $s1 +/* 009498 70008898 96A20000 */ lhu $v0, ($s5) +/* 00949C 7000889C 304902D1 */ andi $t1, $v0, 0x2d1 +/* 0094A0 700088A0 1000000D */ b .L700088D8 +/* 0094A4 700088A4 01201025 */ move $v0, $t1 +.L700088A8: +/* 0094A8 700088A8 9238003E */ lbu $t8, 0x3e($s1) +/* 0094AC 700088AC 330A0010 */ andi $t2, $t8, 0x10 +/* 0094B0 700088B0 11400006 */ beqz $t2, .L700088CC +/* 0094B4 700088B4 00000000 */ nop +/* 0094B8 700088B8 8EA4000C */ lw $a0, 0xc($s5) +/* 0094BC 700088BC 86A5000A */ lh $a1, 0xa($s5) +/* 0094C0 700088C0 0C002382 */ jal play_sfx_a1 +/* 0094C4 700088C4 8E260030 */ lw $a2, 0x30($s1) +/* 0094C8 700088C8 96A30000 */ lhu $v1, ($s5) +.L700088CC: +/* 0094CC 700088CC 10000002 */ b .L700088D8 +/* 0094D0 700088D0 306202D1 */ andi $v0, $v1, 0x2d1 +glabel .L700088D4 +/* 0094D4 700088D4 306202D1 */ andi $v0, $v1, 0x2d1 +.L700088D8: +/* 0094D8 700088D8 8FA30074 */ lw $v1, 0x74($sp) +/* 0094DC 700088DC 10600006 */ beqz $v1, .L700088F8 +/* 0094E0 700088E0 00608825 */ move $s1, $v1 +/* 0094E4 700088E4 54400005 */ bnezl $v0, .L700088FC +/* 0094E8 700088E8 8FAB0080 */ lw $t3, 0x80($sp) +/* 0094EC 700088EC 906E003E */ lbu $t6, 0x3e($v1) +/* 0094F0 700088F0 31CF0001 */ andi $t7, $t6, 1 +/* 0094F4 700088F4 AFAF0080 */ sw $t7, 0x80($sp) +.L700088F8: +/* 0094F8 700088F8 8FAB0080 */ lw $t3, 0x80($sp) +.L700088FC: +/* 0094FC 700088FC 55600007 */ bnezl $t3, .L7000891C +/* 009500 70008900 8FBF003C */ lw $ra, 0x3c($sp) +/* 009504 70008904 50600005 */ beql $v1, $zero, .L7000891C +/* 009508 70008908 8FBF003C */ lw $ra, 0x3c($sp) +/* 00950C 7000890C 5040FD70 */ beql $v0, $zero, .L70007ED0 +/* 009510 70008910 8FAF0074 */ lw $t7, 0x74($sp) +/* 009514 70008914 AFB10078 */ sw $s1, 0x78($sp) +/* 009518 70008918 8FBF003C */ lw $ra, 0x3c($sp) +.L7000891C: +/* 00951C 7000891C 8FB00018 */ lw $s0, 0x18($sp) +/* 009520 70008920 8FB1001C */ lw $s1, 0x1c($sp) +/* 009524 70008924 8FB20020 */ lw $s2, 0x20($sp) +/* 009528 70008928 8FB30024 */ lw $s3, 0x24($sp) +/* 00952C 7000892C 8FB40028 */ lw $s4, 0x28($sp) +/* 009530 70008930 8FB5002C */ lw $s5, 0x2c($sp) +/* 009534 70008934 8FB60030 */ lw $s6, 0x30($sp) +/* 009538 70008938 8FB70034 */ lw $s7, 0x34($sp) +/* 00953C 7000893C 8FBE0038 */ lw $fp, 0x38($sp) +/* 009540 70008940 03E00008 */ jr $ra +/* 009544 70008944 27BD00D0 */ addiu $sp, $sp, 0xd0 + +.late_rodata +glabel jpt_80029160 + .word .L70007FBC + .word .L70008388 + .word .L700088D4 + .word .L7000847C + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700085C8 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700084F0 + +) +#endif + + + + + + +/** + * 9548 70008948 + */ + +#ifdef NONMATCHING +void sfx_c_70008948(void *arg0) +{ + if ((arg0->unk3E & 4) != 0) + { + alSynStopVoice(D_800243F0->unk38, (arg0 + 0xc)); + alSynFreeVoice(D_800243F0->unk38, sp1C); + } + sfx_c_70008D04(arg0); + sfx_c_70008A30((D_800243F0 + 0x14), arg0, 0xffff); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008948 +/* 009548 70008948 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00954C 7000894C AFBF0014 */ sw $ra, 0x14($sp) +/* 009550 70008950 AFA40020 */ sw $a0, 0x20($sp) +/* 009554 70008954 908F003E */ lbu $t7, 0x3e($a0) +/* 009558 70008958 00807025 */ move $t6, $a0 +/* 00955C 7000895C 3C198002 */ lui $t9, %hi(D_800243F0) +/* 009560 70008960 31F80004 */ andi $t8, $t7, 4 +/* 009564 70008964 1300000B */ beqz $t8, .L70008994 +/* 009568 70008968 00000000 */ nop +/* 00956C 7000896C 8F3943F0 */ lw $t9, %lo(D_800243F0)($t9) +/* 009570 70008970 25C5000C */ addiu $a1, $t6, 0xc +/* 009574 70008974 8F240038 */ lw $a0, 0x38($t9) +/* 009578 70008978 0C004DA4 */ jal alSynStopVoice +/* 00957C 7000897C AFA5001C */ sw $a1, 0x1c($sp) +/* 009580 70008980 3C088002 */ lui $t0, %hi(D_800243F0) +/* 009584 70008984 8D0843F0 */ lw $t0, %lo(D_800243F0)($t0) +/* 009588 70008988 8FA5001C */ lw $a1, 0x1c($sp) +/* 00958C 7000898C 0C004DC4 */ jal alSynFreeVoice +/* 009590 70008990 8D040038 */ lw $a0, 0x38($t0) +.L70008994: +/* 009594 70008994 0C002341 */ jal sfx_c_70008D04 +/* 009598 70008998 8FA40020 */ lw $a0, 0x20($sp) +/* 00959C 7000899C 3C048002 */ lui $a0, %hi(D_800243F0) +/* 0095A0 700089A0 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 0095A4 700089A4 8FA50020 */ lw $a1, 0x20($sp) +/* 0095A8 700089A8 3406FFFF */ li $a2, 65535 +/* 0095AC 700089AC 0C00228C */ jal sfx_c_70008A30 +/* 0095B0 700089B0 24840014 */ addiu $a0, $a0, 0x14 +/* 0095B4 700089B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0095B8 700089B8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0095BC 700089BC 03E00008 */ jr $ra +/* 0095C0 700089C0 00000000 */ nop +) +#endif + + + + + + + + + + +/** + * 95C4 700089C4 + */ + +#ifdef NONMATCHING +void sfx_c_700089C4(void *arg0) +{ + f32 sp28; + s16 sp20; + f32 sp1C; + + sp20 = (u16)0x10; + sp1C = (f32) (alCents2Ratio(arg0->unk8->unk4->unk5, arg0) * arg0->unk2C); + sp28 = sp1C; + alEvtqPostEvent((D_800243F0 + 0x14), &sp20, 0x8235, arg0); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_700089C4 +/* 0095C4 700089C4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0095C8 700089C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0095CC 700089CC 8C8E0008 */ lw $t6, 8($a0) +/* 0095D0 700089D0 00803825 */ move $a3, $a0 +/* 0095D4 700089D4 8DCF0004 */ lw $t7, 4($t6) +/* 0095D8 700089D8 81E40005 */ lb $a0, 5($t7) +/* 0095DC 700089DC 0C004DF0 */ jal alCents2Ratio +/* 0095E0 700089E0 AFA70030 */ sw $a3, 0x30($sp) +/* 0095E4 700089E4 8FA70030 */ lw $a3, 0x30($sp) +/* 0095E8 700089E8 3C048002 */ lui $a0, %hi(D_800243F0) +/* 0095EC 700089EC 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 0095F0 700089F0 C4E4002C */ lwc1 $f4, 0x2c($a3) +/* 0095F4 700089F4 24180010 */ li $t8, 16 +/* 0095F8 700089F8 A7B80020 */ sh $t8, 0x20($sp) +/* 0095FC 700089FC 46040182 */ mul.s $f6, $f0, $f4 +/* 009600 70008A00 27A50020 */ addiu $a1, $sp, 0x20 +/* 009604 70008A04 34068235 */ li $a2, 33333 +/* 009608 70008A08 AFA70024 */ sw $a3, 0x24($sp) +/* 00960C 70008A0C 24840014 */ addiu $a0, $a0, 0x14 +/* 009610 70008A10 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 009614 70008A14 8FB9001C */ lw $t9, 0x1c($sp) +/* 009618 70008A18 0C004BBF */ jal alEvtqPostEvent +/* 00961C 70008A1C AFB90028 */ sw $t9, 0x28($sp) +/* 009620 70008A20 8FBF0014 */ lw $ra, 0x14($sp) +/* 009624 70008A24 27BD0030 */ addiu $sp, $sp, 0x30 +/* 009628 70008A28 03E00008 */ jr $ra +/* 00962C 70008A2C 00000000 */ nop +) +#endif + + + + + + + + + + +/** + * 9630 70008A30 + */ + +#ifdef NONMATCHING +void sfx_c_70008A30(void *arg0, s32 arg1, s32 arg2) +{ + s32 sp30; + void *temp_s1; + void *phi_s0; + + sp30 = osSetIntMask(1); + phi_s0 = arg0->unk8; + if (arg0->unk8 != 0) + { +block_1: + temp_s1 = *phi_s0; + if (arg1 == phi_s0->unk10) + { + if ((phi_s0->unkC & (arg2 & 0xffff)) != 0) + { + if (temp_s1 != 0) + { + temp_s1->unk8 = (s32) (temp_s1->unk8 + phi_s0->unk8); + } + alUnlink(phi_s0); + alLink(phi_s0, arg0); + } + } + phi_s0 = temp_s1; + if (temp_s1 != 0) + { + goto block_1; + } + } + osSetIntMask(sp30); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008A30 +/* 009630 70008A30 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 009634 70008A34 AFB20020 */ sw $s2, 0x20($sp) +/* 009638 70008A38 00809025 */ move $s2, $a0 +/* 00963C 70008A3C AFBF002C */ sw $ra, 0x2c($sp) +/* 009640 70008A40 AFB40028 */ sw $s4, 0x28($sp) +/* 009644 70008A44 AFB30024 */ sw $s3, 0x24($sp) +/* 009648 70008A48 00A09825 */ move $s3, $a1 +/* 00964C 70008A4C 30D4FFFF */ andi $s4, $a2, 0xffff +/* 009650 70008A50 AFB1001C */ sw $s1, 0x1c($sp) +/* 009654 70008A54 AFB00018 */ sw $s0, 0x18($sp) +/* 009658 70008A58 AFA60050 */ sw $a2, 0x50($sp) +/* 00965C 70008A5C 0C00374C */ jal osSetIntMask +/* 009660 70008A60 24040001 */ li $a0, 1 +/* 009664 70008A64 AFA20030 */ sw $v0, 0x30($sp) +/* 009668 70008A68 8E500008 */ lw $s0, 8($s2) +/* 00966C 70008A6C 12000016 */ beqz $s0, .L70008AC8 +/* 009670 70008A70 00000000 */ nop +.L70008A74: +/* 009674 70008A74 8E0E0010 */ lw $t6, 0x10($s0) +/* 009678 70008A78 8E110000 */ lw $s1, ($s0) +/* 00967C 70008A7C 166E0010 */ bne $s3, $t6, .L70008AC0 +/* 009680 70008A80 00000000 */ nop +/* 009684 70008A84 960F000C */ lhu $t7, 0xc($s0) +/* 009688 70008A88 01F4C024 */ and $t8, $t7, $s4 +/* 00968C 70008A8C 1300000C */ beqz $t8, .L70008AC0 +/* 009690 70008A90 00000000 */ nop +/* 009694 70008A94 12200005 */ beqz $s1, .L70008AAC +/* 009698 70008A98 00000000 */ nop +/* 00969C 70008A9C 8E390008 */ lw $t9, 8($s1) +/* 0096A0 70008AA0 8E080008 */ lw $t0, 8($s0) +/* 0096A4 70008AA4 03284821 */ addu $t1, $t9, $t0 +/* 0096A8 70008AA8 AE290008 */ sw $t1, 8($s1) +.L70008AAC: +/* 0096AC 70008AAC 0C003AA4 */ jal alUnlink +/* 0096B0 70008AB0 02002025 */ move $a0, $s0 +/* 0096B4 70008AB4 02002025 */ move $a0, $s0 +/* 0096B8 70008AB8 0C003AB0 */ jal alLink +/* 0096BC 70008ABC 02402825 */ move $a1, $s2 +.L70008AC0: +/* 0096C0 70008AC0 1620FFEC */ bnez $s1, .L70008A74 +/* 0096C4 70008AC4 02208025 */ move $s0, $s1 +.L70008AC8: +/* 0096C8 70008AC8 0C00374C */ jal osSetIntMask +/* 0096CC 70008ACC 8FA40030 */ lw $a0, 0x30($sp) +/* 0096D0 70008AD0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0096D4 70008AD4 8FB00018 */ lw $s0, 0x18($sp) +/* 0096D8 70008AD8 8FB1001C */ lw $s1, 0x1c($sp) +/* 0096DC 70008ADC 8FB20020 */ lw $s2, 0x20($sp) +/* 0096E0 70008AE0 8FB30024 */ lw $s3, 0x24($sp) +/* 0096E4 70008AE4 8FB40028 */ lw $s4, 0x28($sp) +/* 0096E8 70008AE8 03E00008 */ jr $ra +/* 0096EC 70008AEC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + + +/** + * 96F0 70008AF0 + */ + +#ifdef NONMATCHING +s32 sfx_c_70008AF0(void *arg0, void *arg1) +{ + void *temp_v0; + s16 temp_t6; + void *temp_v1; + s16 temp_t7; + void *temp_a2; + s32 temp_t8; + void *phi_v0; + void *phi_v1; + void *phi_a2; + s16 phi_a0; + s16 phi_a3; + s32 phi_v1_2; + s16 phi_a0_2; + s16 phi_a3_2; + s32 phi_v1_3; + + phi_v0 = D_800243E4; + phi_a3 = (u16)0; + phi_a3_2 = (u16)0; + if (D_800243E4 != 0) + { +block_1: + temp_v0 = *phi_v0; + temp_t6 = ((phi_a3_2 + 1) & 0xffff); + phi_v0 = temp_v0; + phi_a3 = temp_t6; + phi_a3_2 = temp_t6; + if (temp_v0 != 0) + { + goto block_1; + } + } + phi_v1 = D_800243E4.unk8; + phi_a0 = (u16)0; + phi_a0_2 = (u16)0; + if (D_800243E4.unk8 != 0) + { +block_3: + temp_v1 = *phi_v1; + temp_t7 = ((phi_a0_2 + 1) & 0xffff); + phi_v1 = temp_v1; + phi_a0 = temp_t7; + phi_a0_2 = temp_t7; + if (temp_v1 != 0) + { + goto block_3; + } + } + phi_a2 = D_800243E4.unk4; + phi_v1_2 = 0; + phi_v1_3 = 0; + if (D_800243E4.unk4 != 0) + { +block_5: + temp_a2 = phi_a2->unk4; + temp_t8 = ((phi_v1_3 + 1) & 0xffff); + phi_a2 = temp_a2; + phi_v1_2 = temp_t8; + phi_v1_3 = temp_t8; + if (temp_a2 != 0) + { + goto block_5; + } + } + *arg0 = (s16) phi_a0; + *arg1 = (s16) phi_a3; + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008AF0 +/* 0096F0 70008AF0 3C088002 */ lui $t0, %hi(D_800243E4) +/* 0096F4 70008AF4 250843E4 */ addiu $t0, %lo(D_800243E4) # addiu $t0, $t0, 0x43e4 +/* 0096F8 70008AF8 8D020000 */ lw $v0, ($t0) +/* 0096FC 70008AFC AFA40000 */ sw $a0, ($sp) +/* 009700 70008B00 8D030008 */ lw $v1, 8($t0) +/* 009704 70008B04 8D060004 */ lw $a2, 4($t0) +/* 009708 70008B08 10400006 */ beqz $v0, .L70008B24 +/* 00970C 70008B0C 00003825 */ move $a3, $zero +.L70008B10: +/* 009710 70008B10 8C420000 */ lw $v0, ($v0) +/* 009714 70008B14 24E70001 */ addiu $a3, $a3, 1 +/* 009718 70008B18 30EEFFFF */ andi $t6, $a3, 0xffff +/* 00971C 70008B1C 1440FFFC */ bnez $v0, .L70008B10 +/* 009720 70008B20 01C03825 */ move $a3, $t6 +.L70008B24: +/* 009724 70008B24 10600006 */ beqz $v1, .L70008B40 +/* 009728 70008B28 00002025 */ move $a0, $zero +.L70008B2C: +/* 00972C 70008B2C 8C630000 */ lw $v1, ($v1) +/* 009730 70008B30 24840001 */ addiu $a0, $a0, 1 +/* 009734 70008B34 308FFFFF */ andi $t7, $a0, 0xffff +/* 009738 70008B38 1460FFFC */ bnez $v1, .L70008B2C +/* 00973C 70008B3C 01E02025 */ move $a0, $t7 +.L70008B40: +/* 009740 70008B40 10C00006 */ beqz $a2, .L70008B5C +/* 009744 70008B44 00001825 */ move $v1, $zero +.L70008B48: +/* 009748 70008B48 8CC60004 */ lw $a2, 4($a2) +/* 00974C 70008B4C 24630001 */ addiu $v1, $v1, 1 +/* 009750 70008B50 3078FFFF */ andi $t8, $v1, 0xffff +/* 009754 70008B54 14C0FFFC */ bnez $a2, .L70008B48 +/* 009758 70008B58 03001825 */ move $v1, $t8 +.L70008B5C: +/* 00975C 70008B5C 8FB90000 */ lw $t9, ($sp) +/* 009760 70008B60 00601025 */ move $v0, $v1 +/* 009764 70008B64 A7240000 */ sh $a0, ($t9) +/* 009768 70008B68 03E00008 */ jr $ra +/* 00976C 70008B6C A4A70000 */ sh $a3, ($a1) +) +#endif + + + + + + +/** + * 9770 70008B70 + * accepts: A0=sound data offset?, A1=sample address? + */ + +#ifdef NONMATCHING +void *sfx_c_70008B70(s32 arg0, void *arg1) +{ + s32 sp28; + s8 temp_a1; + s8 temp_t5; + + if (D_800243E4.unk8 != 0) + { + sp28 = osSetIntMask(1, arg1->unk4); + D_800243E4.unk8 = (void *) *D_800243E4.unk8; + alUnlink(D_800243E4.unk8); + if (D_800243E4 != 0) + { + *D_800243E4.unk8 = (void *) D_800243E4; + D_800243E4.unk8->unk4 = 0; + D_800243E4->unk4 = (void *) D_800243E4.unk8; + D_800243E4 = (void *) D_800243E4.unk8; + } + else + { + D_800243E4.unk8->unk4 = 0; + *D_800243E4.unk8 = NULL; + D_800243E4 = (void *) D_800243E4.unk8; + D_800243E4.unk4 = (void *) D_800243E4.unk8; + } + osSetIntMask(sp28, sp30); + D_800243E4.unk8->unk3F = (u8)5; + temp_a1 = (((u32) ((*arg1)->unk4 + 1) < 1U) + 0x40); + D_800243E4.unk8->unk36 = temp_a1; + D_800243E4.unk8->unk38 = 2; + D_800243E4.unk8->unk8 = arg1; + D_800243E4.unk8->unk2C = 1.0f; + D_800243E4.unk8->unk30 = 0; + temp_t5 = (sp30->unk3 & 0xf0); + D_800243E4.unk8->unk3E = temp_t5; + if ((temp_t5 & 0x20) != 0) + { + D_800243E4.unk8->unk28 = alCents2Ratio(((sp30->unk4 * 0x64) + -0x1770), temp_a1, sp30); + } + else + { + D_800243E4.unk8->unk28 = alCents2Ratio((((sp30->unk4 * 0x64) + sp30->unk5) + -0x1770), temp_a1, sp30); + } + if (sp24 != 0x40) + { + D_800243E4.unk8->unk3E = (s8) (D_800243E4.unk8->unk3E | 2); + } + D_800243E4.unk8->unk3D = (u8)0; + D_800243E4.unk8->unk3C = (u8)0x40; + D_800243E4.unk8->unk34 = (u16)0x7fff; + } + return D_800243E4.unk8; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008B70 +/* 009770 70008B70 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 009774 70008B74 3C038002 */ lui $v1, %hi(D_800243E4) +/* 009778 70008B78 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 00977C 70008B7C AFB00018 */ sw $s0, 0x18($sp) +/* 009780 70008B80 8C700008 */ lw $s0, 8($v1) +/* 009784 70008B84 AFBF001C */ sw $ra, 0x1c($sp) +/* 009788 70008B88 AFA40038 */ sw $a0, 0x38($sp) +/* 00978C 70008B8C AFA5003C */ sw $a1, 0x3c($sp) +/* 009790 70008B90 12000057 */ beqz $s0, .L70008CF0 +/* 009794 70008B94 8CA60004 */ lw $a2, 4($a1) +/* 009798 70008B98 24040001 */ li $a0, 1 +/* 00979C 70008B9C 0C00374C */ jal osSetIntMask +/* 0097A0 70008BA0 AFA60030 */ sw $a2, 0x30($sp) +/* 0097A4 70008BA4 AFA20028 */ sw $v0, 0x28($sp) +/* 0097A8 70008BA8 8E0F0000 */ lw $t7, ($s0) +/* 0097AC 70008BAC 3C038002 */ lui $v1, %hi(D_800243E4) +/* 0097B0 70008BB0 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 0097B4 70008BB4 02002025 */ move $a0, $s0 +/* 0097B8 70008BB8 0C003AA4 */ jal alUnlink +/* 0097BC 70008BBC AC6F0008 */ sw $t7, 8($v1) +/* 0097C0 70008BC0 3C038002 */ lui $v1, %hi(D_800243E4) +/* 0097C4 70008BC4 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 0097C8 70008BC8 8C620000 */ lw $v0, ($v1) +/* 0097CC 70008BCC 8FA60030 */ lw $a2, 0x30($sp) +/* 0097D0 70008BD0 50400008 */ beql $v0, $zero, .L70008BF4 +/* 0097D4 70008BD4 AE000004 */ sw $zero, 4($s0) +/* 0097D8 70008BD8 AE020000 */ sw $v0, ($s0) +/* 0097DC 70008BDC AE000004 */ sw $zero, 4($s0) +/* 0097E0 70008BE0 8C780000 */ lw $t8, ($v1) +/* 0097E4 70008BE4 AF100004 */ sw $s0, 4($t8) +/* 0097E8 70008BE8 10000005 */ b .L70008C00 +/* 0097EC 70008BEC AC700000 */ sw $s0, ($v1) +/* 0097F0 70008BF0 AE000004 */ sw $zero, 4($s0) +.L70008BF4: +/* 0097F4 70008BF4 AE000000 */ sw $zero, ($s0) +/* 0097F8 70008BF8 AC700000 */ sw $s0, ($v1) +/* 0097FC 70008BFC AC700004 */ sw $s0, 4($v1) +.L70008C00: +/* 009800 70008C00 8FA40028 */ lw $a0, 0x28($sp) +/* 009804 70008C04 0C00374C */ jal osSetIntMask +/* 009808 70008C08 AFA60030 */ sw $a2, 0x30($sp) +/* 00980C 70008C0C 8FA4003C */ lw $a0, 0x3c($sp) +/* 009810 70008C10 8FA60030 */ lw $a2, 0x30($sp) +/* 009814 70008C14 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 009818 70008C18 8C990000 */ lw $t9, ($a0) +/* 00981C 70008C1C 44812000 */ mtc1 $at, $f4 +/* 009820 70008C20 24090005 */ li $t1, 5 +/* 009824 70008C24 8F230004 */ lw $v1, 4($t9) +/* 009828 70008C28 240A0002 */ li $t2, 2 +/* 00982C 70008C2C A209003F */ sb $t1, 0x3f($s0) +/* 009830 70008C30 24680001 */ addiu $t0, $v1, 1 +/* 009834 70008C34 2D080001 */ sltiu $t0, $t0, 1 +/* 009838 70008C38 25050040 */ addiu $a1, $t0, 0x40 +/* 00983C 70008C3C A2050036 */ sb $a1, 0x36($s0) +/* 009840 70008C40 AE0A0038 */ sw $t2, 0x38($s0) +/* 009844 70008C44 AE040008 */ sw $a0, 8($s0) +/* 009848 70008C48 E604002C */ swc1 $f4, 0x2c($s0) +/* 00984C 70008C4C 90CB0003 */ lbu $t3, 3($a2) +/* 009850 70008C50 AE000030 */ sw $zero, 0x30($s0) +/* 009854 70008C54 316D00F0 */ andi $t5, $t3, 0xf0 +/* 009858 70008C58 31AE0020 */ andi $t6, $t5, 0x20 +/* 00985C 70008C5C 11C0000D */ beqz $t6, .L70008C94 +/* 009860 70008C60 A20D003E */ sb $t5, 0x3e($s0) +/* 009864 70008C64 90C40004 */ lbu $a0, 4($a2) +/* 009868 70008C68 AFA50024 */ sw $a1, 0x24($sp) +/* 00986C 70008C6C 00047880 */ sll $t7, $a0, 2 +/* 009870 70008C70 01E47823 */ subu $t7, $t7, $a0 +/* 009874 70008C74 000F78C0 */ sll $t7, $t7, 3 +/* 009878 70008C78 01E47821 */ addu $t7, $t7, $a0 +/* 00987C 70008C7C 000F7880 */ sll $t7, $t7, 2 +/* 009880 70008C80 0C004DF0 */ jal alCents2Ratio +/* 009884 70008C84 25E4E890 */ addiu $a0, $t7, -0x1770 +/* 009888 70008C88 8FA50024 */ lw $a1, 0x24($sp) +/* 00988C 70008C8C 1000000E */ b .L70008CC8 +/* 009890 70008C90 E6000028 */ swc1 $f0, 0x28($s0) +.L70008C94: +/* 009894 70008C94 90D80004 */ lbu $t8, 4($a2) +/* 009898 70008C98 80C80005 */ lb $t0, 5($a2) +/* 00989C 70008C9C AFA50024 */ sw $a1, 0x24($sp) +/* 0098A0 70008CA0 0018C880 */ sll $t9, $t8, 2 +/* 0098A4 70008CA4 0338C823 */ subu $t9, $t9, $t8 +/* 0098A8 70008CA8 0019C8C0 */ sll $t9, $t9, 3 +/* 0098AC 70008CAC 0338C821 */ addu $t9, $t9, $t8 +/* 0098B0 70008CB0 0019C880 */ sll $t9, $t9, 2 +/* 0098B4 70008CB4 03282021 */ addu $a0, $t9, $t0 +/* 0098B8 70008CB8 0C004DF0 */ jal alCents2Ratio +/* 0098BC 70008CBC 2484E890 */ addiu $a0, $a0, -0x1770 +/* 0098C0 70008CC0 8FA50024 */ lw $a1, 0x24($sp) +/* 0098C4 70008CC4 E6000028 */ swc1 $f0, 0x28($s0) +.L70008CC8: +/* 0098C8 70008CC8 24010040 */ li $at, 64 +/* 0098CC 70008CCC 10A10004 */ beq $a1, $at, .L70008CE0 +/* 0098D0 70008CD0 240B0040 */ li $t3, 64 +/* 0098D4 70008CD4 9209003E */ lbu $t1, 0x3e($s0) +/* 0098D8 70008CD8 352A0002 */ ori $t2, $t1, 2 +/* 0098DC 70008CDC A20A003E */ sb $t2, 0x3e($s0) +.L70008CE0: +/* 0098E0 70008CE0 240C7FFF */ li $t4, 32767 +/* 0098E4 70008CE4 A200003D */ sb $zero, 0x3d($s0) +/* 0098E8 70008CE8 A20B003C */ sb $t3, 0x3c($s0) +/* 0098EC 70008CEC A60C0034 */ sh $t4, 0x34($s0) +.L70008CF0: +/* 0098F0 70008CF0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0098F4 70008CF4 02001025 */ move $v0, $s0 +/* 0098F8 70008CF8 8FB00018 */ lw $s0, 0x18($sp) +/* 0098FC 70008CFC 03E00008 */ jr $ra +/* 009900 70008D00 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + + + + + + +/** + * 9904 70008D04 + */ + +#ifdef NONMATCHING +void *sfx_c_70008D04(void *arg0) +{ + if (arg0 == D_800243E4) + { + D_800243E4 = (void *) *arg0; + } + if (arg0 == D_800243E4.unk4) + { + D_800243E4.unk4 = (s32) arg0->unk4; + } + alUnlink(); + if (D_800243E4.unk8 != 0) + { + *arg0 = (void *) D_800243E4.unk8; + arg0->unk4 = 0; + D_800243E4.unk8->unk4 = arg0; + D_800243E4.unk8 = arg0; + } + else + { + arg0->unk4 = 0; + *arg0 = NULL; + D_800243E4.unk8 = arg0; + } + if ((arg0->unk3E & 4) != 0) + { + D_800243F4 = (s16) (D_800243F4 + -1); + } + arg0->unk3F = (u8)0; + if (arg0->unk30 != 0) + { + if (arg0 == *arg0->unk30) + { + *arg0->unk30 = 0; + } + arg0->unk30 = NULL; + } + return arg0->unk30; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008D04 +/* 009904 70008D04 3C028002 */ lui $v0, %hi(D_800243E4) +/* 009908 70008D08 244243E4 */ addiu $v0, %lo(D_800243E4) # addiu $v0, $v0, 0x43e4 +/* 00990C 70008D0C 8C4E0000 */ lw $t6, ($v0) +/* 009910 70008D10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 009914 70008D14 AFBF0014 */ sw $ra, 0x14($sp) +/* 009918 70008D18 548E0004 */ bnel $a0, $t6, .L70008D2C +/* 00991C 70008D1C 8C580004 */ lw $t8, 4($v0) +/* 009920 70008D20 8C8F0000 */ lw $t7, ($a0) +/* 009924 70008D24 AC4F0000 */ sw $t7, ($v0) +/* 009928 70008D28 8C580004 */ lw $t8, 4($v0) +.L70008D2C: +/* 00992C 70008D2C 14980003 */ bne $a0, $t8, .L70008D3C +/* 009930 70008D30 00000000 */ nop +/* 009934 70008D34 8C990004 */ lw $t9, 4($a0) +/* 009938 70008D38 AC590004 */ sw $t9, 4($v0) +.L70008D3C: +/* 00993C 70008D3C 0C003AA4 */ jal alUnlink +/* 009940 70008D40 AFA40018 */ sw $a0, 0x18($sp) +/* 009944 70008D44 3C028002 */ lui $v0, %hi(D_800243E4) +/* 009948 70008D48 244243E4 */ addiu $v0, %lo(D_800243E4) # addiu $v0, $v0, 0x43e4 +/* 00994C 70008D4C 8C430008 */ lw $v1, 8($v0) +/* 009950 70008D50 8FA40018 */ lw $a0, 0x18($sp) +/* 009954 70008D54 50600008 */ beql $v1, $zero, .L70008D78 +/* 009958 70008D58 AC800004 */ sw $zero, 4($a0) +/* 00995C 70008D5C AC830000 */ sw $v1, ($a0) +/* 009960 70008D60 AC800004 */ sw $zero, 4($a0) +/* 009964 70008D64 8C480008 */ lw $t0, 8($v0) +/* 009968 70008D68 AD040004 */ sw $a0, 4($t0) +/* 00996C 70008D6C 10000004 */ b .L70008D80 +/* 009970 70008D70 AC440008 */ sw $a0, 8($v0) +/* 009974 70008D74 AC800004 */ sw $zero, 4($a0) +.L70008D78: +/* 009978 70008D78 AC800000 */ sw $zero, ($a0) +/* 00997C 70008D7C AC440008 */ sw $a0, 8($v0) +.L70008D80: +/* 009980 70008D80 9089003E */ lbu $t1, 0x3e($a0) +/* 009984 70008D84 3C028002 */ lui $v0, %hi(D_800243F4) +/* 009988 70008D88 244243F4 */ addiu $v0, %lo(D_800243F4) # addiu $v0, $v0, 0x43f4 +/* 00998C 70008D8C 312A0004 */ andi $t2, $t1, 4 +/* 009990 70008D90 51400005 */ beql $t2, $zero, .L70008DA8 +/* 009994 70008D94 8C820030 */ lw $v0, 0x30($a0) +/* 009998 70008D98 844B0000 */ lh $t3, ($v0) +/* 00999C 70008D9C 256CFFFF */ addiu $t4, $t3, -1 +/* 0099A0 70008DA0 A44C0000 */ sh $t4, ($v0) +/* 0099A4 70008DA4 8C820030 */ lw $v0, 0x30($a0) +.L70008DA8: +/* 0099A8 70008DA8 A080003F */ sb $zero, 0x3f($a0) +/* 0099AC 70008DAC 50400007 */ beql $v0, $zero, .L70008DCC +/* 0099B0 70008DB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0099B4 70008DB4 8C4D0000 */ lw $t5, ($v0) +/* 0099B8 70008DB8 548D0003 */ bnel $a0, $t5, .L70008DC8 +/* 0099BC 70008DBC AC800030 */ sw $zero, 0x30($a0) +/* 0099C0 70008DC0 AC400000 */ sw $zero, ($v0) +/* 0099C4 70008DC4 AC800030 */ sw $zero, 0x30($a0) +.L70008DC8: +/* 0099C8 70008DC8 8FBF0014 */ lw $ra, 0x14($sp) +.L70008DCC: +/* 0099CC 70008DCC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0099D0 70008DD0 03E00008 */ jr $ra +/* 0099D4 70008DD4 00000000 */ nop +) +#endif + + + + + + + + + +/** + * 99D8 70008DD8 + * A1->A0+0x36. value is set in sound effect buffer? + * accepts: A0=p->SE buffer?, A1=value truncated to byte + */ + +#ifdef NONMATCHING +void sfx_c_70008DD8(void *arg0, s32 arg1) +{ + if (arg0 != 0) + { + arg0->unk36 = (s8) (arg1 & 0xff); + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008DD8 +/* 0099D8 70008DD8 AFA50004 */ sw $a1, 4($sp) +/* 0099DC 70008DDC 10800002 */ beqz $a0, .L70008DE8 +/* 0099E0 70008DE0 30AE00FF */ andi $t6, $a1, 0xff +/* 0099E4 70008DE4 A08E0036 */ sb $t6, 0x36($a0) +.L70008DE8: +/* 0099E8 70008DE8 03E00008 */ jr $ra +/* 0099EC 70008DEC 00000000 */ nop +) +#endif + + + + + + + + + +/** + * 99F0 70008DF0 + * V0= TRUE if SE playing flag set [A0+0x3F] + * value is set only when sound defaults have been set + * accepts: A0=p->SE buffer + */ + +#ifdef NONMATCHING +void sfxGetArg0Unk3F(void *arg0) +{ + if (arg0 != 0) + { + return arg0->unk3F; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sfxGetArg0Unk3F +/* 0099F0 70008DF0 10800003 */ beqz $a0, .L70008E00 +/* 0099F4 70008DF4 00001025 */ move $v0, $zero +/* 0099F8 70008DF8 03E00008 */ jr $ra +/* 0099FC 70008DFC 9082003F */ lbu $v0, 0x3f($a0) + +.L70008E00: +/* 009A00 70008E00 03E00008 */ jr $ra +/* 009A04 70008E04 00000000 */ nop +) +#endif + + + + + + + + +/** + * 9A08 70008E08 + * sets sound effect; used by sound effect routines + * accepts: A0=p->SE buffer, A1=SE #, A2=p->data + * data: 0x0 4 p->SE entry + * 0x4 4 target volume + * 0x8 4 audible range (timer) + * 0xC 4 initial volume + * 0x10 4 p->preset emitting sound + * 0x14 4 p->object emitting sound + */ + +#ifdef NONMATCHING +void *play_sfx_a1(s32 arg0, s32 arg1, void *arg2) +{ + s16 sp6E; + s32 sp68; + s32 sp54; + s16 sp50; + ?32 sp48; + s16 sp40; + s32 temp_t6; + void *temp_t0; + ? temp_ret; + s32 temp_s0; + s32 temp_t4; + s32 temp_s1; + s8 temp_t7; + s32 phi_s1; + s32 phi_s4; + void *phi_s7; + s32 phi_s3; + + temp_t6 = ((s32) (arg1 << 0x10) >> 0x10); + sp6E = (u16)0; + if (bootswitch_sound != 0) + { + return 0; + } + if (temp_t6 == 0) + { + return 0; + } + phi_s1 = temp_t6; + phi_s4 = 0; + phi_s7 = NULL; + phi_s3 = sp64; +block_5: + temp_t0 = (subroutine_arg3 + (phi_s1 * 4)); + temp_ret = sfx_c_70008B70(arg0, temp_t0->unkC); + temp_s0 = temp_ret; + if (temp_ret != 0) + { + D_800243F0->unk3C = temp_ret; + sp50 = (u16)1; + sp54 = temp_ret; + temp_t4 = (temp_t0->unkC->unk4->unk1 * 0x8235); + if ((temp_ret->unk3E & 0x10) != 0) + { + temp_ret->unk3E = (s8) (temp_ret->unk3E & 0xffef); + alEvtqPostEvent((D_800243F0 + 0x14), &sp50, (phi_s4 + 1)); + sp68 = (s32) (temp_t4 + 1); + } + else + { + alEvtqPostEvent((D_800243F0 + 0x14), &sp50, (temp_t4 + 1)); + } + phi_s7 = temp_s0; + phi_s3 = temp_t4; + } + temp_s1 = ((s32) ((*temp_t0->unkC->unk4 + ((temp_t0->unkC->unk4->unk2 & 0xc0) * 4)) << 0x10) >> 0x10); + if (temp_s1 != 0) + { + phi_s1 = temp_s1; + phi_s4 = (phi_s4 + phi_s3); + phi_s7 = phi_s7; + phi_s3 = phi_s3; + if (temp_s0 != 0) + { + goto block_5; + } + } + if (phi_s7 != 0) + { + temp_t7 = (phi_s7->unk3E | 1); + phi_s7->unk3E = temp_t7; + phi_s7->unk30 = arg2; + if (sp6E != 0) + { + phi_s7->unk3E = (s8) (temp_t7 | 0x10); + sp40 = (u16)0x200; + sp48 = sp6E; + alEvtqPostEvent((D_800243F0 + 0x14), &sp40, sp68); + } + } + if (arg2 != 0) + { + *arg2 = (void *) phi_s7; + } + return phi_s7; +} +#else +GLOBAL_ASM( +.text +glabel play_sfx_a1 +/* 009A08 70008E08 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 009A0C 70008E0C 3C0F8002 */ lui $t7, %hi(bootswitch_sound) +/* 009A10 70008E10 81EF43F8 */ lb $t7, %lo(bootswitch_sound)($t7) +/* 009A14 70008E14 AFB1001C */ sw $s1, 0x1c($sp) +/* 009A18 70008E18 00058C00 */ sll $s1, $a1, 0x10 +/* 009A1C 70008E1C 00117403 */ sra $t6, $s1, 0x10 +/* 009A20 70008E20 AFBE0038 */ sw $fp, 0x38($sp) +/* 009A24 70008E24 AFB70034 */ sw $s7, 0x34($sp) +/* 009A28 70008E28 AFB40028 */ sw $s4, 0x28($sp) +/* 009A2C 70008E2C 0080F025 */ move $fp, $a0 +/* 009A30 70008E30 01C08825 */ move $s1, $t6 +/* 009A34 70008E34 AFBF003C */ sw $ra, 0x3c($sp) +/* 009A38 70008E38 AFB60030 */ sw $s6, 0x30($sp) +/* 009A3C 70008E3C AFB5002C */ sw $s5, 0x2c($sp) +/* 009A40 70008E40 AFB30024 */ sw $s3, 0x24($sp) +/* 009A44 70008E44 AFB20020 */ sw $s2, 0x20($sp) +/* 009A48 70008E48 AFB00018 */ sw $s0, 0x18($sp) +/* 009A4C 70008E4C AFA50084 */ sw $a1, 0x84($sp) +/* 009A50 70008E50 AFA60088 */ sw $a2, 0x88($sp) +/* 009A54 70008E54 0000B825 */ move $s7, $zero +/* 009A58 70008E58 A7A0006E */ sh $zero, 0x6e($sp) +/* 009A5C 70008E5C 11E00003 */ beqz $t7, .L70008E6C +/* 009A60 70008E60 0000A025 */ move $s4, $zero +/* 009A64 70008E64 10000062 */ b .L70008FF0 +/* 009A68 70008E68 00001025 */ move $v0, $zero +.L70008E6C: +/* 009A6C 70008E6C 16200003 */ bnez $s1, .L70008E7C +/* 009A70 70008E70 27B60050 */ addiu $s6, $sp, 0x50 +/* 009A74 70008E74 1000005E */ b .L70008FF0 +/* 009A78 70008E78 00001025 */ move $v0, $zero +.L70008E7C: +/* 009A7C 70008E7C 3C158002 */ lui $s5, %hi(D_800243F0) +/* 009A80 70008E80 26B543F0 */ addiu $s5, %lo(D_800243F0) # addiu $s5, $s5, 0x43f0 +/* 009A84 70008E84 8FB30064 */ lw $s3, 0x64($sp) +/* 009A88 70008E88 8FD8000C */ lw $t8, 0xc($fp) +.L70008E8C: +/* 009A8C 70008E8C 0011C880 */ sll $t9, $s1, 2 +/* 009A90 70008E90 03C02025 */ move $a0, $fp +/* 009A94 70008E94 03194021 */ addu $t0, $t8, $t9 +/* 009A98 70008E98 8D12000C */ lw $s2, 0xc($t0) +/* 009A9C 70008E9C 0C0022DC */ jal sfx_c_70008B70 +/* 009AA0 70008EA0 02402825 */ move $a1, $s2 +/* 009AA4 70008EA4 10400028 */ beqz $v0, .L70008F48 +/* 009AA8 70008EA8 00408025 */ move $s0, $v0 +/* 009AAC 70008EAC 8EA90000 */ lw $t1, ($s5) +/* 009AB0 70008EB0 240A0001 */ li $t2, 1 +/* 009AB4 70008EB4 02C02825 */ move $a1, $s6 +/* 009AB8 70008EB8 AD22003C */ sw $v0, 0x3c($t1) +/* 009ABC 70008EBC A7AA0050 */ sh $t2, 0x50($sp) +/* 009AC0 70008EC0 AFA20054 */ sw $v0, 0x54($sp) +/* 009AC4 70008EC4 8E4B0004 */ lw $t3, 4($s2) +/* 009AC8 70008EC8 904D003E */ lbu $t5, 0x3e($v0) +/* 009ACC 70008ECC 91730001 */ lbu $s3, 1($t3) +/* 009AD0 70008ED0 31AE0010 */ andi $t6, $t5, 0x10 +/* 009AD4 70008ED4 00136180 */ sll $t4, $s3, 6 +/* 009AD8 70008ED8 01936021 */ addu $t4, $t4, $s3 +/* 009ADC 70008EDC 000C60C0 */ sll $t4, $t4, 3 +/* 009AE0 70008EE0 01936021 */ addu $t4, $t4, $s3 +/* 009AE4 70008EE4 000C6080 */ sll $t4, $t4, 2 +/* 009AE8 70008EE8 01936023 */ subu $t4, $t4, $s3 +/* 009AEC 70008EEC 000C6080 */ sll $t4, $t4, 2 +/* 009AF0 70008EF0 01936021 */ addu $t4, $t4, $s3 +/* 009AF4 70008EF4 000C6080 */ sll $t4, $t4, 2 +/* 009AF8 70008EF8 01936021 */ addu $t4, $t4, $s3 +/* 009AFC 70008EFC 11C0000D */ beqz $t6, .L70008F34 +/* 009B00 70008F00 01809825 */ move $s3, $t4 +/* 009B04 70008F04 904F003E */ lbu $t7, 0x3e($v0) +/* 009B08 70008F08 02C02825 */ move $a1, $s6 +/* 009B0C 70008F0C 26860001 */ addiu $a2, $s4, 1 +/* 009B10 70008F10 31F8FFEF */ andi $t8, $t7, 0xffef +/* 009B14 70008F14 A058003E */ sb $t8, 0x3e($v0) +/* 009B18 70008F18 8EA40000 */ lw $a0, ($s5) +/* 009B1C 70008F1C 0C004BBF */ jal alEvtqPostEvent +/* 009B20 70008F20 24840014 */ addiu $a0, $a0, 0x14 +/* 009B24 70008F24 26790001 */ addiu $t9, $s3, 1 +/* 009B28 70008F28 AFB90068 */ sw $t9, 0x68($sp) +/* 009B2C 70008F2C 10000005 */ b .L70008F44 +/* 009B30 70008F30 A7B1006E */ sh $s1, 0x6e($sp) +.L70008F34: +/* 009B34 70008F34 8EA40000 */ lw $a0, ($s5) +/* 009B38 70008F38 26660001 */ addiu $a2, $s3, 1 +/* 009B3C 70008F3C 0C004BBF */ jal alEvtqPostEvent +/* 009B40 70008F40 24840014 */ addiu $a0, $a0, 0x14 +.L70008F44: +/* 009B44 70008F44 0200B825 */ move $s7, $s0 +.L70008F48: +/* 009B48 70008F48 8E420004 */ lw $v0, 4($s2) +/* 009B4C 70008F4C 0293A021 */ addu $s4, $s4, $s3 +/* 009B50 70008F50 90490002 */ lbu $t1, 2($v0) +/* 009B54 70008F54 90480000 */ lbu $t0, ($v0) +/* 009B58 70008F58 312A00C0 */ andi $t2, $t1, 0xc0 +/* 009B5C 70008F5C 000A5880 */ sll $t3, $t2, 2 +/* 009B60 70008F60 010B8821 */ addu $s1, $t0, $t3 +/* 009B64 70008F64 00116400 */ sll $t4, $s1, 0x10 +/* 009B68 70008F68 000C8C03 */ sra $s1, $t4, 0x10 +/* 009B6C 70008F6C 12200004 */ beqz $s1, .L70008F80 +/* 009B70 70008F70 00000000 */ nop +/* 009B74 70008F74 5600FFC5 */ bnezl $s0, .L70008E8C +/* 009B78 70008F78 8FD8000C */ lw $t8, 0xc($fp) +/* 009B7C 70008F7C AFB30064 */ sw $s3, 0x64($sp) +.L70008F80: +/* 009B80 70008F80 52E00017 */ beql $s7, $zero, .L70008FE0 +/* 009B84 70008F84 8FAC0088 */ lw $t4, 0x88($sp) +/* 009B88 70008F88 92EE003E */ lbu $t6, 0x3e($s7) +/* 009B8C 70008F8C 24080200 */ li $t0, 512 +/* 009B90 70008F90 27A50040 */ addiu $a1, $sp, 0x40 +/* 009B94 70008F94 35CF0001 */ ori $t7, $t6, 1 +/* 009B98 70008F98 A2EF003E */ sb $t7, 0x3e($s7) +/* 009B9C 70008F9C 8FB80088 */ lw $t8, 0x88($sp) +/* 009BA0 70008FA0 35EA0010 */ ori $t2, $t7, 0x10 +/* 009BA4 70008FA4 AEF80030 */ sw $t8, 0x30($s7) +/* 009BA8 70008FA8 87B9006E */ lh $t9, 0x6e($sp) +/* 009BAC 70008FAC 5320000C */ beql $t9, $zero, .L70008FE0 +/* 009BB0 70008FB0 8FAC0088 */ lw $t4, 0x88($sp) +/* 009BB4 70008FB4 A2EA003E */ sb $t2, 0x3e($s7) +/* 009BB8 70008FB8 87AB006E */ lh $t3, 0x6e($sp) +/* 009BBC 70008FBC 8EA40000 */ lw $a0, ($s5) +/* 009BC0 70008FC0 A7A80040 */ sh $t0, 0x40($sp) +/* 009BC4 70008FC4 AFB70044 */ sw $s7, 0x44($sp) +/* 009BC8 70008FC8 AFBE004C */ sw $fp, 0x4c($sp) +/* 009BCC 70008FCC 8FA60068 */ lw $a2, 0x68($sp) +/* 009BD0 70008FD0 AFAB0048 */ sw $t3, 0x48($sp) +/* 009BD4 70008FD4 0C004BBF */ jal alEvtqPostEvent +/* 009BD8 70008FD8 24840014 */ addiu $a0, $a0, 0x14 +/* 009BDC 70008FDC 8FAC0088 */ lw $t4, 0x88($sp) +.L70008FE0: +/* 009BE0 70008FE0 02E01025 */ move $v0, $s7 +/* 009BE4 70008FE4 11800002 */ beqz $t4, .L70008FF0 +/* 009BE8 70008FE8 00000000 */ nop +/* 009BEC 70008FEC AD970000 */ sw $s7, ($t4) +.L70008FF0: +/* 009BF0 70008FF0 8FBF003C */ lw $ra, 0x3c($sp) +/* 009BF4 70008FF4 8FB00018 */ lw $s0, 0x18($sp) +/* 009BF8 70008FF8 8FB1001C */ lw $s1, 0x1c($sp) +/* 009BFC 70008FFC 8FB20020 */ lw $s2, 0x20($sp) +/* 009C00 70009000 8FB30024 */ lw $s3, 0x24($sp) +/* 009C04 70009004 8FB40028 */ lw $s4, 0x28($sp) +/* 009C08 70009008 8FB5002C */ lw $s5, 0x2c($sp) +/* 009C0C 7000900C 8FB60030 */ lw $s6, 0x30($sp) +/* 009C10 70009010 8FB70034 */ lw $s7, 0x34($sp) +/* 009C14 70009014 8FBE0038 */ lw $fp, 0x38($sp) +/* 009C18 70009018 03E00008 */ jr $ra +/* 009C1C 7000901C 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + + +/** + * 9C20 70009020 + * decativates sound effect + * accepts: A0=p->SE buffer + */ + +#ifdef NONMATCHING +void sfxDeactivate(void *arg0) +{ + s16 sp18; + + sp18 = (u16)0x400; + if (arg0 != 0) + { + arg0->unk3E = (s8) (arg0->unk3E & 0xffef); + alEvtqPostEvent((D_800243F0 + 0x14), &sp18, 0); + } +} +#else +GLOBAL_ASM( +.text +glabel sfxDeactivate +/* 009C20 70009020 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 009C24 70009024 240E0400 */ li $t6, 1024 +/* 009C28 70009028 AFBF0014 */ sw $ra, 0x14($sp) +/* 009C2C 7000902C A7AE0018 */ sh $t6, 0x18($sp) +/* 009C30 70009030 1080000A */ beqz $a0, .L7000905C +/* 009C34 70009034 AFA4001C */ sw $a0, 0x1c($sp) +/* 009C38 70009038 908F003E */ lbu $t7, 0x3e($a0) +/* 009C3C 7000903C 27A50018 */ addiu $a1, $sp, 0x18 +/* 009C40 70009040 00003025 */ move $a2, $zero +/* 009C44 70009044 31F8FFEF */ andi $t8, $t7, 0xffef +/* 009C48 70009048 A098003E */ sb $t8, 0x3e($a0) +/* 009C4C 7000904C 3C048002 */ lui $a0, %hi(D_800243F0) +/* 009C50 70009050 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 009C54 70009054 0C004BBF */ jal alEvtqPostEvent +/* 009C58 70009058 24840014 */ addiu $a0, $a0, 0x14 +.L7000905C: +/* 009C5C 7000905C 8FBF0014 */ lw $ra, 0x14($sp) +/* 009C60 70009060 27BD0028 */ addiu $sp, $sp, 0x28 +/* 009C64 70009064 03E00008 */ jr $ra +/* 009C68 70009068 00000000 */ nop +) +#endif + + + + + + + + +/** + * 9C6C 7000906C + */ + +#ifdef NONMATCHING +void sfx_c_7000906C(s32 arg0) +{ + s32 sp4C; + s16 sp3C; + s32 temp_s2; + s8 temp_v0; + void *temp_s0; + void *phi_s0; + + temp_s2 = (arg0 & 0xff); + sp4C = osSetIntMask(1); + if (D_800243E4 != 0) + { + phi_s0 = D_800243E4; +block_2: + sp3C = (u16)0x400; + temp_v0 = phi_s0->unk3E; + if (temp_s2 == (temp_v0 & temp_s2)) + { + phi_s0->unk3E = (s8) (temp_v0 & -0x11); + alEvtqPostEvent((D_800243F0 + 0x14), &sp3C, 0); + } + temp_s0 = *phi_s0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto block_2; + } + } + osSetIntMask(sp4C); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_7000906C +/* 009C6C 7000906C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 009C70 70009070 AFB20020 */ sw $s2, 0x20($sp) +/* 009C74 70009074 309200FF */ andi $s2, $a0, 0xff +/* 009C78 70009078 AFBF002C */ sw $ra, 0x2c($sp) +/* 009C7C 7000907C AFA40050 */ sw $a0, 0x50($sp) +/* 009C80 70009080 AFB40028 */ sw $s4, 0x28($sp) +/* 009C84 70009084 AFB30024 */ sw $s3, 0x24($sp) +/* 009C88 70009088 AFB1001C */ sw $s1, 0x1c($sp) +/* 009C8C 7000908C AFB00018 */ sw $s0, 0x18($sp) +/* 009C90 70009090 0C00374C */ jal osSetIntMask +/* 009C94 70009094 24040001 */ li $a0, 1 +/* 009C98 70009098 3C108002 */ lui $s0, %hi(D_800243E4) +/* 009C9C 7000909C 8E1043E4 */ lw $s0, %lo(D_800243E4)($s0) +/* 009CA0 700090A0 AFA2004C */ sw $v0, 0x4c($sp) +/* 009CA4 700090A4 02408825 */ move $s1, $s2 +/* 009CA8 700090A8 12000014 */ beqz $s0, .L700090FC +/* 009CAC 700090AC 27B4003C */ addiu $s4, $sp, 0x3c +/* 009CB0 700090B0 3C138002 */ lui $s3, %hi(D_800243F0) +/* 009CB4 700090B4 267343F0 */ addiu $s3, %lo(D_800243F0) # addiu $s3, $s3, 0x43f0 +/* 009CB8 700090B8 2412FFEF */ li $s2, -17 +/* 009CBC 700090BC 240E0400 */ li $t6, 1024 +.L700090C0: +/* 009CC0 700090C0 A7AE003C */ sh $t6, 0x3c($sp) +/* 009CC4 700090C4 AFB00040 */ sw $s0, 0x40($sp) +/* 009CC8 700090C8 9202003E */ lbu $v0, 0x3e($s0) +/* 009CCC 700090CC 02802825 */ move $a1, $s4 +/* 009CD0 700090D0 00517824 */ and $t7, $v0, $s1 +/* 009CD4 700090D4 162F0006 */ bne $s1, $t7, .L700090F0 +/* 009CD8 700090D8 0052C024 */ and $t8, $v0, $s2 +/* 009CDC 700090DC A218003E */ sb $t8, 0x3e($s0) +/* 009CE0 700090E0 8E640000 */ lw $a0, ($s3) +/* 009CE4 700090E4 00003025 */ move $a2, $zero +/* 009CE8 700090E8 0C004BBF */ jal alEvtqPostEvent +/* 009CEC 700090EC 24840014 */ addiu $a0, $a0, 0x14 +.L700090F0: +/* 009CF0 700090F0 8E100000 */ lw $s0, ($s0) +/* 009CF4 700090F4 5600FFF2 */ bnezl $s0, .L700090C0 +/* 009CF8 700090F8 240E0400 */ li $t6, 1024 +.L700090FC: +/* 009CFC 700090FC 0C00374C */ jal osSetIntMask +/* 009D00 70009100 8FA4004C */ lw $a0, 0x4c($sp) +/* 009D04 70009104 8FBF002C */ lw $ra, 0x2c($sp) +/* 009D08 70009108 8FB00018 */ lw $s0, 0x18($sp) +/* 009D0C 7000910C 8FB1001C */ lw $s1, 0x1c($sp) +/* 009D10 70009110 8FB20020 */ lw $s2, 0x20($sp) +/* 009D14 70009114 8FB30024 */ lw $s3, 0x24($sp) +/* 009D18 70009118 8FB40028 */ lw $s4, 0x28($sp) +/* 009D1C 7000911C 03E00008 */ jr $ra +/* 009D20 70009120 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + + +/** + * 9D24 70009124 + * redirect to 7000906C: A0=1 + */ +void sfx_c_70009124(void) +{ + sfx_c_7000906C(1); +} + +/** + * 9D44 70009144 + * redirect to 7000906C: A0=11 + */ +void sfx_c_70009144(void) +{ + sfx_c_7000906C(0x11); +} + +/** + * 9D64 70009164 + * redirect to 7000906C: A0=3 + */ +void sfx_c_70009164(void) +{ + sfx_c_7000906C(3); +} + + + + +/** + * 9D84 70009184 + */ +#ifdef NONMATCHING +void sfx_c_70009184(s32 arg0, s32 arg1, ? arg2) +{ + ? sp18; + + if (arg0 != 0) + { + alEvtqPostEvent((D_800243F0 + 0x14), &sp18, 0); + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009184 +/* 009D84 70009184 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 009D88 70009188 AFBF0014 */ sw $ra, 0x14($sp) +/* 009D8C 7000918C AFA5002C */ sw $a1, 0x2c($sp) +/* 009D90 70009190 A7A50018 */ sh $a1, 0x18($sp) +/* 009D94 70009194 AFA4001C */ sw $a0, 0x1c($sp) +/* 009D98 70009198 10800007 */ beqz $a0, .L700091B8 +/* 009D9C 7000919C AFA60020 */ sw $a2, 0x20($sp) +/* 009DA0 700091A0 3C048002 */ lui $a0, %hi(D_800243F0) +/* 009DA4 700091A4 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 009DA8 700091A8 27A50018 */ addiu $a1, $sp, 0x18 +/* 009DAC 700091AC 00003025 */ move $a2, $zero +/* 009DB0 700091B0 0C004BBF */ jal alEvtqPostEvent +/* 009DB4 700091B4 24840014 */ addiu $a0, $a0, 0x14 +.L700091B8: +/* 009DB8 700091B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 009DBC 700091BC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 009DC0 700091C0 03E00008 */ jr $ra +/* 009DC4 700091C4 00000000 */ nop +) +#endif + + + +/** + * 9DC8 700091C8 + * redirect to 70009264: A0=0 + */ +u32 sfx_c_700091C8(void) +{ + return sfx_c_70009264(0); +} + + + + + + + + + +/** + * 9DE8 700091E8 + */ +#ifdef NONMATCHING +void sfx_c_700091E8(s32 arg0) +{ + s32 temp_t6; + s32 phi_s0; + + phi_s0 = 0; +block_1: + sfx_c_70009284((phi_s0 & 0xff), ((arg0 & 0xffff) & 0xffff)); + temp_t6 = ((phi_s0 + 1) & 0xff); + phi_s0 = temp_t6; + if (temp_t6 < 7) + { + goto block_1; + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_700091E8 +/* 009DE8 700091E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 009DEC 700091EC AFB10018 */ sw $s1, 0x18($sp) +/* 009DF0 700091F0 AFB00014 */ sw $s0, 0x14($sp) +/* 009DF4 700091F4 3091FFFF */ andi $s1, $a0, 0xffff +/* 009DF8 700091F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 009DFC 700091FC AFA40020 */ sw $a0, 0x20($sp) +/* 009E00 70009200 00008025 */ move $s0, $zero +.L70009204: +/* 009E04 70009204 320400FF */ andi $a0, $s0, 0xff +/* 009E08 70009208 0C0024A1 */ jal sfx_c_70009284 +/* 009E0C 7000920C 3225FFFF */ andi $a1, $s1, 0xffff +/* 009E10 70009210 26100001 */ addiu $s0, $s0, 1 +/* 009E14 70009214 320E00FF */ andi $t6, $s0, 0xff +/* 009E18 70009218 29C10007 */ slti $at, $t6, 7 +/* 009E1C 7000921C 1420FFF9 */ bnez $at, .L70009204 +/* 009E20 70009220 01C08025 */ move $s0, $t6 +/* 009E24 70009224 8FBF001C */ lw $ra, 0x1c($sp) +/* 009E28 70009228 8FB00014 */ lw $s0, 0x14($sp) +/* 009E2C 7000922C 8FB10018 */ lw $s1, 0x18($sp) +/* 009E30 70009230 03E00008 */ jr $ra +/* 009E34 70009234 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + + + +/** + * 9E38 70009238 + */ + +void sfx_c_70009238(f32 arg0) +{ + F32_800243FC = arg0; + sfx_c_700091E8((sfx_c_700091C8() & 0xffff)); +} + + + + + + + + + + +/** + * 9E64 70009264 + * V0= halfword A0 in table at [80063BA8]; fries T6,T7,T8,T9 + */ +#ifdef NONMATCHING +void sfx_c_70009264(s32 arg0) +{ + return (D_80063BA8 + ((arg0 & 0xff) * 2)); +} + +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009264 +/* 009E64 70009264 3C0F8006 */ lui $t7, %hi(D_80063BA8) +/* 009E68 70009268 8DEF3BA8 */ lw $t7, %lo(D_80063BA8)($t7) +/* 009E6C 7000926C 308E00FF */ andi $t6, $a0, 0xff +/* 009E70 70009270 000EC040 */ sll $t8, $t6, 1 +/* 009E74 70009274 AFA40000 */ sw $a0, ($sp) +/* 009E78 70009278 01F8C821 */ addu $t9, $t7, $t8 +/* 009E7C 7000927C 03E00008 */ jr $ra +/* 009E80 70009280 97220000 */ lhu $v0, ($t9) +) +#endif + + + + + + + + + +/** + * 9E84 70009284 + */ +#ifdef NONMATCHING +s32 sfx_c_70009284(s32 arg0, s32 arg1) +{ + s16 sp30; + s32 temp_s3; + s16 temp_t6; + s32 temp_v0; + void *temp_v0_2; + void *temp_s0; + void *phi_s0; + s32 phi_return; + + temp_s3 = (arg0 & 0xff); + temp_t6 = (arg1 & 0xffff); + temp_v0 = (temp_s3 * 2); + *(D_80063BA8 + temp_v0) = temp_t6; + *(D_80063BA4 + temp_v0) = (s32) ((f32) temp_t6 * F32_800243FC); + phi_s0 = D_800243E4; + phi_return = temp_v0; + if (D_800243E4 != 0) + { +block_1: + temp_v0_2 = phi_s0->unk8; + phi_return = temp_v0_2; + if (temp_v0_2 != 0) + { + phi_return = temp_v0_2; + if (temp_s3 == (temp_v0_2->unk4->unk2 & 0x3f)) + { + sp30 = (u16)0x800; + phi_return = alEvtqPostEvent((D_800243F0 + 0x14), &sp30, 0); + } + } + temp_s0 = *phi_s0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto block_1; + } + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009284 +/* 009E84 70009284 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 009E88 70009288 3C0F8006 */ lui $t7, %hi(D_80063BA8) +/* 009E8C 7000928C 8DEF3BA8 */ lw $t7, %lo(D_80063BA8)($t7) +/* 009E90 70009290 AFB30020 */ sw $s3, 0x20($sp) +/* 009E94 70009294 309300FF */ andi $s3, $a0, 0xff +/* 009E98 70009298 AFB00014 */ sw $s0, 0x14($sp) +/* 009E9C 7000929C 30AEFFFF */ andi $t6, $a1, 0xffff +/* 009EA0 700092A0 448E2000 */ mtc1 $t6, $f4 +/* 009EA4 700092A4 3C108002 */ lui $s0, %hi(D_800243E4) +/* 009EA8 700092A8 00131040 */ sll $v0, $s3, 1 +/* 009EAC 700092AC AFBF0024 */ sw $ra, 0x24($sp) +/* 009EB0 700092B0 AFB2001C */ sw $s2, 0x1c($sp) +/* 009EB4 700092B4 AFB10018 */ sw $s1, 0x18($sp) +/* 009EB8 700092B8 AFA40048 */ sw $a0, 0x48($sp) +/* 009EBC 700092BC AFA5004C */ sw $a1, 0x4c($sp) +/* 009EC0 700092C0 8E1043E4 */ lw $s0, %lo(D_800243E4)($s0) +/* 009EC4 700092C4 01E2C021 */ addu $t8, $t7, $v0 +/* 009EC8 700092C8 A70E0000 */ sh $t6, ($t8) +/* 009ECC 700092CC 05C10005 */ bgez $t6, .L700092E4 +/* 009ED0 700092D0 468021A0 */ cvt.s.w $f6, $f4 +/* 009ED4 700092D4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 009ED8 700092D8 44814000 */ mtc1 $at, $f8 +/* 009EDC 700092DC 00000000 */ nop +/* 009EE0 700092E0 46083180 */ add.s $f6, $f6, $f8 +.L700092E4: +/* 009EE4 700092E4 3C018002 */ lui $at, %hi(F32_800243FC) +/* 009EE8 700092E8 C42A43FC */ lwc1 $f10, %lo(F32_800243FC)($at) +/* 009EEC 700092EC 3C098006 */ lui $t1, %hi(D_80063BA4) +/* 009EF0 700092F0 8D293BA4 */ lw $t1, %lo(D_80063BA4)($t1) +/* 009EF4 700092F4 460A3402 */ mul.s $f16, $f6, $f10 +/* 009EF8 700092F8 3C118002 */ lui $s1, %hi(D_800243F0) +/* 009EFC 700092FC 01225021 */ addu $t2, $t1, $v0 +/* 009F00 70009300 263143F0 */ addiu $s1, %lo(D_800243F0) # addiu $s1, $s1, 0x43f0 +/* 009F04 70009304 27B20030 */ addiu $s2, $sp, 0x30 +/* 009F08 70009308 4600848D */ trunc.w.s $f18, $f16 +/* 009F0C 7000930C 44089000 */ mfc1 $t0, $f18 +/* 009F10 70009310 12000014 */ beqz $s0, .L70009364 +/* 009F14 70009314 A5480000 */ sh $t0, ($t2) +/* 009F18 70009318 8E020008 */ lw $v0, 8($s0) +.L7000931C: +/* 009F1C 7000931C 5040000F */ beql $v0, $zero, .L7000935C +/* 009F20 70009320 8E100000 */ lw $s0, ($s0) +/* 009F24 70009324 8C4B0004 */ lw $t3, 4($v0) +/* 009F28 70009328 240E0800 */ li $t6, 2048 +/* 009F2C 7000932C 02402825 */ move $a1, $s2 +/* 009F30 70009330 916C0002 */ lbu $t4, 2($t3) +/* 009F34 70009334 00003025 */ move $a2, $zero +/* 009F38 70009338 318D003F */ andi $t5, $t4, 0x3f +/* 009F3C 7000933C 566D0007 */ bnel $s3, $t5, .L7000935C +/* 009F40 70009340 8E100000 */ lw $s0, ($s0) +/* 009F44 70009344 8E240000 */ lw $a0, ($s1) +/* 009F48 70009348 A7AE0030 */ sh $t6, 0x30($sp) +/* 009F4C 7000934C AFB00034 */ sw $s0, 0x34($sp) +/* 009F50 70009350 0C004BBF */ jal alEvtqPostEvent +/* 009F54 70009354 24840014 */ addiu $a0, $a0, 0x14 +/* 009F58 70009358 8E100000 */ lw $s0, ($s0) +.L7000935C: +/* 009F5C 7000935C 5600FFEF */ bnezl $s0, .L7000931C +/* 009F60 70009360 8E020008 */ lw $v0, 8($s0) +.L70009364: +/* 009F64 70009364 8FBF0024 */ lw $ra, 0x24($sp) +/* 009F68 70009368 8FB00014 */ lw $s0, 0x14($sp) +/* 009F6C 7000936C 8FB10018 */ lw $s1, 0x18($sp) +/* 009F70 70009370 8FB2001C */ lw $s2, 0x1c($sp) +/* 009F74 70009374 8FB30020 */ lw $s3, 0x20($sp) +/* 009F78 70009378 03E00008 */ jr $ra +/* 009F7C 7000937C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + diff --git a/src/snd.h b/src/snd.h new file mode 100644 index 0000000..36c0e91 --- /dev/null +++ b/src/snd.h @@ -0,0 +1,7 @@ +#ifndef _SND_H_ +#define _SND_H_ +#include "ultra64.h" + +extern s8 bootswitch_sound; +void play_sfx_a1 (void * buffer, short entry, void * data); +#endif diff --git a/src/speed_graph.c b/src/speed_graph.c new file mode 100644 index 0000000..267818b --- /dev/null +++ b/src/speed_graph.c @@ -0,0 +1,1119 @@ +#include "ultra64.h" +/** + * @file speed_graph.c + * This file contains code to draw speedgraph. + * + */ + + +/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + | Snippet of building glist buffers | + |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _| + +== H file == +#define GLIST_LEN 2048 // GE seems to be 266 + +/* + * Layout of dynamic data. + * + * This structure holds the things which change per frame. It is advantageous + * to keep dynamic data together so that we may selectively write back dirty + * data cache lines to DRAM prior to processing by the RCP. + * + * / +typedef struct { + Mtx projection; + Mtx modeling; + Mtx modeling2; + Mtx viewing; + LookAt lookat; + Hilite hilite; + Lightsn light; //Oh interesting, since we found this and LookAt, it seems dynamic gfx should astart right after. + Gfx glist[GLIST_LEN]; +} Dynamic; + +extern Dynamic dynamic; + +== H file End == + +/* + * global variables + * +Gfx *glistp; /* RSP display list pointer * / +//Dynamic dynamic; /* dynamic data * / +/ * + * Double-buffered dynamic segments + * / +Dynamic dynamic[2]; +... + +// some function() +{ + ... + int current = 0; + dynamicp = &dynamic[current]; + glistp = dynamicp->glist; + //example gfx build + gSPSegment(glistp++, 0, 0x0); // glist++ ready for next instruction (held in dynamic 1 or 2) +} +*/ + +/* tempory types confirm me */ +s32 dword_CODE_bss_8005F3F0[4]; //Gfx Tiles_Setup? oh... unless thats what the next 2 are... the first command I recognised did start at 8005f400... +// dynamic glist, though it lacks the format above... +Gfx displaylist_0[266]; +Gfx displaylist_1[266]; +s32 displaylist_bank; //0 or 1? current? +s32 dword_CODE_bss_800604A4; +u32 dword_CODE_bss_800604A8; +u32 dword_CODE_bss_800604AC; +s32 dword_CODE_bss_800604B0[0xC0]; +s32 dword_CODE_bss_800607B0; +s32 dword_CODE_bss_800607B4; +s32 dword_CODE_bss_800607B8; +s32 dword_CODE_bss_800607BC; +s32 dword_CODE_bss_800607C0; +s32 dword_CODE_bss_800607C4; +s32 dword_CODE_bss_800607C8; +s32 dword_CODE_bss_800607CC; +s32 dword_CODE_bss_800607D0; +s32 dword_CODE_bss_800607D4; +s32 dword_CODE_bss_800607D8; +s32 dword_CODE_bss_800607DC; + +s32 D_800231D0 = 0; +s32 D_800231D4[] = { 0, 0, 2, 0, 1, 0, 2, 0, 2, 0xFF000000, 2, 0, 3, 0x9200, 4, 0xFFFFFFFF, 4, 0xDB000000, 4, 0xFFFFFFFF }; + +s32 D_80023224 = 0; +s32 D_80023228 = 0; +s32 D_8002322C = 0; +s32 counterforframes = 0; +s32 D_80023234 = 1; + + +//GLOBAL_ASM( +/* .rodata*/ +const char aUtz2_0f[] = "utz %2.0f%%\n"; +const char aRsp2_0f[] = "rsp %2.0f%%\n"; +const char aTex2_0f[] = "tex %2.0f%%"; +const char a2dHz[] = "%2d hz"; +const char a2dFrames[] = "%2d frames"; +const char a2d[] = " [%2d]"; +const char asc_D_80028468[] = " "; +const char aIL0[] = "I=l0"; +//) + + +/** + * 3330 70002730 (DL generator) + */ +#ifdef NONMATCHING +void displaylist_related(void) +{ + void *temp_v0; + void *temp_v1; + void *phi_v1; + void *phi_v0; + + gSPEndDisplayList(displaylist_0++); + displaylist_0.unk850 = 0xb800000000000000; //? is this not dlist2? + displaylist_bank = 0; + phi_v1 = &dword_CODE_bss_800607B0; + phi_v0 = &dword_CODE_bss_800607D0; +block_1: + temp_v0 = (phi_v0 + 4); + temp_v1 = (phi_v1 + 4); + temp_v1->unk-4 = 0; + temp_v0->unk-4 = 1; + phi_v1 = temp_v1; + phi_v0 = temp_v0; + if (temp_v0 != &dword_CODE_bss_800607DC) + { + goto block_1; + } + video_related_2(1, &dword_CODE_bss_800607DC, 0xb8000000); +} +#else +GLOBAL_ASM( +.text +glabel displaylist_related +/* 003330 70002730 3C048006 */ lui $a0, %hi(displaylist_0) +/* 003334 70002734 2484F400 */ addiu $a0, %lo(displaylist_0) # addiu $a0, $a0, -0xc00 +/* 003338 70002738 3C06B800 */ lui $a2, 0xb800 +/* 00333C 7000273C AC860000 */ sw $a2, ($a0) +/* 003340 70002740 AC800004 */ sw $zero, 4($a0) +/* 003344 70002744 AC860850 */ sw $a2, 0x850($a0) +/* 003348 70002748 AC800854 */ sw $zero, 0x854($a0) +/* 00334C 7000274C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003350 70002750 3C018006 */ lui $at, %hi(displaylist_bank) +/* 003354 70002754 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) +/* 003358 70002758 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607D0) +/* 00335C 7000275C 3C058006 */ lui $a1, %hi(dword_CODE_bss_800607DC) +/* 003360 70002760 AFBF0014 */ sw $ra, 0x14($sp) +/* 003364 70002764 AC2004A0 */ sw $zero, %lo(displaylist_bank)($at) +/* 003368 70002768 24A507DC */ addiu $a1, %lo(dword_CODE_bss_800607DC) # addiu $a1, $a1, 0x7dc +/* 00336C 7000276C 244207D0 */ addiu $v0, %lo(dword_CODE_bss_800607D0) # addiu $v0, $v0, 0x7d0 +/* 003370 70002770 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 +/* 003374 70002774 24040001 */ li $a0, 1 +.L70002778: +/* 003378 70002778 24420004 */ addiu $v0, $v0, 4 +/* 00337C 7000277C 24630004 */ addiu $v1, $v1, 4 +/* 003380 70002780 AC60FFFC */ sw $zero, -4($v1) +/* 003384 70002784 1445FFFC */ bne $v0, $a1, .L70002778 +/* 003388 70002788 AC44FFFC */ sw $a0, -4($v0) +/* 00338C 7000278C 0C000A04 */ jal video_related_2 +/* 003390 70002790 00000000 */ nop +/* 003394 70002794 8FBF0014 */ lw $ra, 0x14($sp) +/* 003398 70002798 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00339C 7000279C 03E00008 */ jr $ra +/* 0033A0 700027A0 00000000 */ nop +) +#endif + + + +/** + * 33A4 700027A4 + */ +#ifdef NONMATCHING +void *video_related_1(void) +{ + void *temp_v1; + void *temp_a0; + s32 temp_t7; + s32 temp_t8; + void *phi_v1; + s32 phi_t8; + void *phi_a0; + + dword_CODE_bss_800604A8 = osGetCount(); + phi_v1 = &dword_CODE_bss_800607D0; + phi_a0 = &dword_CODE_bss_800607C0; +block_1: + temp_v1 = (phi_v1 + 4); + temp_a0 = (phi_a0 + 4); + temp_t7 = (*phi_v1 + 0x1f); + temp_t8 = (temp_t7 & 0x1f); + phi_t8 = temp_t8; + if (temp_t7 < 0) + { + phi_t8 = temp_t8; + if (temp_t8 != 0) + { + phi_t8 = (temp_t8 + -0x20); + } + } + temp_a0->unk-4 = (s32) phi_t8; + phi_v1 = temp_v1; + phi_a0 = temp_a0; + if (temp_v1 != &dword_CODE_bss_800607DC) + { + goto block_1; + } + return &dword_CODE_bss_800607DC; +} +#else +GLOBAL_ASM( +.text +glabel video_related_1 +/* 0033A4 700027A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0033A8 700027A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0033AC 700027AC 0C003638 */ jal osGetCount +/* 0033B0 700027B0 00000000 */ nop +/* 0033B4 700027B4 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A8) +/* 0033B8 700027B8 AC2204A8 */ sw $v0, %lo(dword_CODE_bss_800604A8)($at) +/* 0033BC 700027BC 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607DC) +/* 0033C0 700027C0 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) +/* 0033C4 700027C4 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607D0) +/* 0033C8 700027C8 246307D0 */ addiu $v1, %lo(dword_CODE_bss_800607D0) # addiu $v1, $v1, 0x7d0 +/* 0033CC 700027CC 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 +/* 0033D0 700027D0 244207DC */ addiu $v0, %lo(dword_CODE_bss_800607DC) # addiu $v0, $v0, 0x7dc +.L700027D4: +/* 0033D4 700027D4 8C6E0000 */ lw $t6, ($v1) +/* 0033D8 700027D8 24630004 */ addiu $v1, $v1, 4 +/* 0033DC 700027DC 24840004 */ addiu $a0, $a0, 4 +/* 0033E0 700027E0 25CF001F */ addiu $t7, $t6, 0x1f +/* 0033E4 700027E4 05E10004 */ bgez $t7, .L700027F8 +/* 0033E8 700027E8 31F8001F */ andi $t8, $t7, 0x1f +/* 0033EC 700027EC 13000002 */ beqz $t8, .L700027F8 +/* 0033F0 700027F0 00000000 */ nop +/* 0033F4 700027F4 2718FFE0 */ addiu $t8, $t8, -0x20 +.L700027F8: +/* 0033F8 700027F8 1462FFF6 */ bne $v1, $v0, .L700027D4 +/* 0033FC 700027FC AC98FFFC */ sw $t8, -4($a0) +/* 003400 70002800 8FBF0014 */ lw $ra, 0x14($sp) +/* 003404 70002804 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003408 70002808 03E00008 */ jr $ra +/* 00340C 7000280C 00000000 */ nop +) +#endif + + +/** + * 3410 70002810 + */ +#ifdef NONMATCHING +void *video_related_2(void) +{ + void *temp_a0; + void *temp_v1; + void *phi_a0; + void *phi_v1; + + dword_CODE_bss_800604A4 = (?32) dword_CODE_bss_800604A8; + phi_a0 = &dword_CODE_bss_800607C0; + phi_v1 = &dword_CODE_bss_800607B0; +block_1: + temp_a0 = (phi_a0 + 4); + temp_v1 = (phi_v1 + 4); + temp_v1->unk-4 = (?32) *phi_a0; + phi_a0 = temp_a0; + phi_v1 = temp_v1; + if (temp_a0 != &dword_CODE_bss_800607CC) + { + goto block_1; + } + return &dword_CODE_bss_800607CC; +} +#else +GLOBAL_ASM( +.text +glabel video_related_2 +/* 003410 70002810 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800604A8) +/* 003414 70002814 8DCE04A8 */ lw $t6, %lo(dword_CODE_bss_800604A8)($t6) +/* 003418 70002818 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A4) +/* 00341C 7000281C 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) +/* 003420 70002820 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) +/* 003424 70002824 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607CC) +/* 003428 70002828 244207CC */ addiu $v0, %lo(dword_CODE_bss_800607CC) # addiu $v0, $v0, 0x7cc +/* 00342C 7000282C 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 +/* 003430 70002830 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 +/* 003434 70002834 AC2E04A4 */ sw $t6, %lo(dword_CODE_bss_800604A4)($at) +.L70002838: +/* 003438 70002838 8C8F0000 */ lw $t7, ($a0) +/* 00343C 7000283C 24840004 */ addiu $a0, $a0, 4 +/* 003440 70002840 24630004 */ addiu $v1, $v1, 4 +/* 003444 70002844 1482FFFC */ bne $a0, $v0, .L70002838 +/* 003448 70002848 AC6FFFFC */ sw $t7, -4($v1) +/* 00344C 7000284C 03E00008 */ jr $ra +/* 003450 70002850 00000000 */ nop +) +#endif + + +/** + * 3454 70002854 + */ +#ifdef NONMATCHING +void video_related_3(s32 arg0) +{ + s32 sp34; + void *sp2C; + void *sp24; + void *sp1C; + s32 temp_a3; + s32 temp_v1; + void *temp_t0; + s32 temp_a0; + void *temp_v0; + s32 temp_a1; + s32 phi_a2; + s32 phi_a1; + + temp_a3 = (arg0 & 0xffff); + temp_v1 = (temp_a3 * 4); + temp_t0 = (temp_v1 + &dword_CODE_bss_800607D0); + temp_a0 = (arg0 >> 0x10); + sp34 = osSetIntMask(1); + if (temp_a0 == 3) + { + phi_a2 = ((0x80060000 + temp_v1)->unk-C10 | 0x8000); + } + else + { + phi_a2 = temp_a0; + if (temp_a0 == 6) + { + phi_a2 = ((0x80060000 + temp_v1)->unk-C10 & 0x7fff); + } + } + temp_v0 = (((temp_a3 << 8) + (*temp_t0 * 8)) + &dword_CODE_bss_800604B0); + sp2C = temp_v0; + *temp_v0 = (s32) phi_a2; + sp24 = (void *) (temp_v1 + &dword_CODE_bss_8005F3F0); + sp1C = temp_t0; + sp2C->unk4 = osGetCount(temp_a0, *temp_t0, phi_a2, temp_a3); + temp_a1 = (sp30 + 1); + *sp24 = sp38; + phi_a1 = temp_a1; + if (temp_a1 >= 0x20) + { + phi_a1 = 0; + } + *temp_t0 = (s32) phi_a1; + osSetIntMask(sp34, phi_a1, sp38); +} +#else +GLOBAL_ASM( +.text +glabel video_related_3 +/* 003454 70002854 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 003458 70002858 AFBF0014 */ sw $ra, 0x14($sp) +/* 00345C 7000285C AFA40040 */ sw $a0, 0x40($sp) +/* 003460 70002860 0C00374C */ jal osSetIntMask +/* 003464 70002864 24040001 */ li $a0, 1 +/* 003468 70002868 8FA90040 */ lw $t1, 0x40($sp) +/* 00346C 7000286C 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800607D0) +/* 003470 70002870 25CE07D0 */ addiu $t6, %lo(dword_CODE_bss_800607D0) # addiu $t6, $t6, 0x7d0 +/* 003474 70002874 3127FFFF */ andi $a3, $t1, 0xffff +/* 003478 70002878 00071880 */ sll $v1, $a3, 2 +/* 00347C 7000287C 006E4021 */ addu $t0, $v1, $t6 +/* 003480 70002880 24010003 */ li $at, 3 +/* 003484 70002884 00092403 */ sra $a0, $t1, 0x10 +/* 003488 70002888 AFA20034 */ sw $v0, 0x34($sp) +/* 00348C 7000288C 00803025 */ move $a2, $a0 +/* 003490 70002890 14810007 */ bne $a0, $at, .L700028B0 +/* 003494 70002894 8D050000 */ lw $a1, ($t0) +/* 003498 70002898 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) +/* 00349C 7000289C 00C33021 */ addu $a2, $a2, $v1 +/* 0034A0 700028A0 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) +/* 0034A4 700028A4 34CF8000 */ ori $t7, $a2, 0x8000 +/* 0034A8 700028A8 10000009 */ b .L700028D0 +/* 0034AC 700028AC 01E03025 */ move $a2, $t7 +.L700028B0: +/* 0034B0 700028B0 24010006 */ li $at, 6 +/* 0034B4 700028B4 54810007 */ bnel $a0, $at, .L700028D4 +/* 0034B8 700028B8 0007CA00 */ sll $t9, $a3, 8 +/* 0034BC 700028BC 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) +/* 0034C0 700028C0 00C33021 */ addu $a2, $a2, $v1 +/* 0034C4 700028C4 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) +/* 0034C8 700028C8 30D87FFF */ andi $t8, $a2, 0x7fff +/* 0034CC 700028CC 03003025 */ move $a2, $t8 +.L700028D0: +/* 0034D0 700028D0 0007CA00 */ sll $t9, $a3, 8 +.L700028D4: +/* 0034D4 700028D4 000550C0 */ sll $t2, $a1, 3 +/* 0034D8 700028D8 3C0C8006 */ lui $t4, %hi(dword_CODE_bss_800604B0) +/* 0034DC 700028DC 3C0D8006 */ lui $t5, %hi(dword_CODE_bss_8005F3F0) +/* 0034E0 700028E0 258C04B0 */ addiu $t4, %lo(dword_CODE_bss_800604B0) # addiu $t4, $t4, 0x4b0 +/* 0034E4 700028E4 032A5821 */ addu $t3, $t9, $t2 +/* 0034E8 700028E8 25ADF3F0 */ addiu $t5, %lo(dword_CODE_bss_8005F3F0) # addiu $t5, $t5, -0xc10 +/* 0034EC 700028EC 016C1021 */ addu $v0, $t3, $t4 +/* 0034F0 700028F0 006D7021 */ addu $t6, $v1, $t5 +/* 0034F4 700028F4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0034F8 700028F8 AC460000 */ sw $a2, ($v0) +/* 0034FC 700028FC AFAE0024 */ sw $t6, 0x24($sp) +/* 003500 70002900 AFA50030 */ sw $a1, 0x30($sp) +/* 003504 70002904 AFA60038 */ sw $a2, 0x38($sp) +/* 003508 70002908 0C003638 */ jal osGetCount +/* 00350C 7000290C AFA8001C */ sw $t0, 0x1c($sp) +/* 003510 70002910 8FAF002C */ lw $t7, 0x2c($sp) +/* 003514 70002914 8FA50030 */ lw $a1, 0x30($sp) +/* 003518 70002918 8FA60038 */ lw $a2, 0x38($sp) +/* 00351C 7000291C 8FA8001C */ lw $t0, 0x1c($sp) +/* 003520 70002920 ADE20004 */ sw $v0, 4($t7) +/* 003524 70002924 8FB80024 */ lw $t8, 0x24($sp) +/* 003528 70002928 24A50001 */ addiu $a1, $a1, 1 +/* 00352C 7000292C 28A10020 */ slti $at, $a1, 0x20 +/* 003530 70002930 14200002 */ bnez $at, .L7000293C +/* 003534 70002934 AF060000 */ sw $a2, ($t8) +/* 003538 70002938 00002825 */ move $a1, $zero +.L7000293C: +/* 00353C 7000293C AD050000 */ sw $a1, ($t0) +/* 003540 70002940 0C00374C */ jal osSetIntMask +/* 003544 70002944 8FA40034 */ lw $a0, 0x34($sp) +/* 003548 70002948 8FBF0014 */ lw $ra, 0x14($sp) +/* 00354C 7000294C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 003550 70002950 03E00008 */ jr $ra +/* 003554 70002954 00000000 */ nop +) +#endif + + +/** + * 3558 70002958 draw "display speed" display + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +void display_speed_graph(void) { + +} +#else +GLOBAL_ASM( +.text +glabel display_speed_graph +/* 003558 70002958 3C038005 */ lui $v1, %hi(D_80048498) +/* 00355C 7000295C 3C0E8002 */ lui $t6, %hi(D_80023228) +/* 003560 70002960 8C638498 */ lw $v1, %lo(D_80048498)($v1) +/* 003564 70002964 8DCE3228 */ lw $t6, %lo(D_80023228)($t6) +/* 003568 70002968 3C028002 */ lui $v0, %hi(D_80023224) +/* 00356C 7000296C 8C423224 */ lw $v0, %lo(D_80023224)($v0) +/* 003570 70002970 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 003574 70002974 01C3082A */ slt $at, $t6, $v1 +/* 003578 70002978 AFBF001C */ sw $ra, 0x1c($sp) +/* 00357C 7000297C AFB00018 */ sw $s0, 0x18($sp) +/* 003580 70002980 10200003 */ beqz $at, .L70002990 +/* 003584 70002984 00431021 */ addu $v0, $v0, $v1 +/* 003588 70002988 3C018002 */ lui $at, %hi(D_80023228) +/* 00358C 7000298C AC233228 */ sw $v1, %lo(D_80023228)($at) +.L70002990: +/* 003590 70002990 3C018002 */ lui $at, %hi(D_80023224) +/* 003594 70002994 AC223224 */ sw $v0, %lo(D_80023224)($at) +/* 003598 70002998 2C410015 */ sltiu $at, $v0, 0x15 +/* 00359C 7000299C 142000BB */ bnez $at, .L70002C8C +/* 0035A0 700029A0 3C018002 */ lui $at, %hi(D_80023224) +/* 0035A4 700029A4 AC223224 */ sw $v0, %lo(D_80023224)($at) +/* 0035A8 700029A8 2C410015 */ sltiu $at, $v0, 0x15 +/* 0035AC 700029AC 14200006 */ bnez $at, .L700029C8 +/* 0035B0 700029B0 2442FFEC */ addiu $v0, $v0, -0x14 +.L700029B4: +/* 0035B4 700029B4 2C410015 */ sltiu $at, $v0, 0x15 +/* 0035B8 700029B8 5020FFFE */ beql $at, $zero, .L700029B4 +/* 0035BC 700029BC 2442FFEC */ addiu $v0, $v0, -0x14 +/* 0035C0 700029C0 3C018002 */ lui $at, %hi(D_80023224) +/* 0035C4 700029C4 AC223224 */ sw $v0, %lo(D_80023224)($at) +.L700029C8: +/* 0035C8 700029C8 0C000447 */ jal get_counters +/* 0035CC 700029CC AFA40048 */ sw $a0, 0x48($sp) +/* 0035D0 700029D0 AFA20044 */ sw $v0, 0x44($sp) +/* 0035D4 700029D4 240400FF */ li $a0, 255 +/* 0035D8 700029D8 240500FF */ li $a1, 255 +/* 0035DC 700029DC 240600FF */ li $a2, 255 +/* 0035E0 700029E0 0C002C1B */ jal set_debug_text_color +/* 0035E4 700029E4 240700FF */ li $a3, 255 +/* 0035E8 700029E8 00002025 */ move $a0, $zero +/* 0035EC 700029EC 00002825 */ move $a1, $zero +/* 0035F0 700029F0 00003025 */ move $a2, $zero +/* 0035F4 700029F4 0C002C26 */ jal set_color_speedgraph +/* 0035F8 700029F8 240700FF */ li $a3, 255 +/* 0035FC 700029FC 24040008 */ li $a0, 8 +/* 003600 70002A00 0C002C10 */ jal set_final_debug_text_positions +/* 003604 70002A04 24050005 */ li $a1, 5 +/* 003608 70002A08 8FA20044 */ lw $v0, 0x44($sp) +/* 00360C 70002A0C 27B00030 */ addiu $s0, $sp, 0x30 +/* 003610 70002A10 3C058003 */ lui $a1, %hi(aUtz2_0f) +/* 003614 70002A14 8C4F0004 */ lw $t7, 4($v0) +/* 003618 70002A18 8C58000C */ lw $t8, 0xc($v0) +/* 00361C 70002A1C 24A58420 */ addiu $a1, %lo(aUtz2_0f) # addiu $a1, $a1, -0x7be0 +/* 003620 70002A20 02002025 */ move $a0, $s0 +/* 003624 70002A24 01F8C823 */ subu $t9, $t7, $t8 +/* 003628 70002A28 44992000 */ mtc1 $t9, $f4 +/* 00362C 70002A2C 07210005 */ bgez $t9, .L70002A44 +/* 003630 70002A30 468021A0 */ cvt.s.w $f6, $f4 +/* 003634 70002A34 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003638 70002A38 44814000 */ mtc1 $at, $f8 +/* 00363C 70002A3C 00000000 */ nop +/* 003640 70002A40 46083180 */ add.s $f6, $f6, $f8 +.L70002A44: +/* 003644 70002A44 8C480000 */ lw $t0, ($v0) +/* 003648 70002A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 00364C 70002A4C 44815000 */ mtc1 $at, $f10 +/* 003650 70002A50 44889000 */ mtc1 $t0, $f18 +/* 003654 70002A54 460A3402 */ mul.s $f16, $f6, $f10 +/* 003658 70002A58 05010005 */ bgez $t0, .L70002A70 +/* 00365C 70002A5C 46809120 */ cvt.s.w $f4, $f18 +/* 003660 70002A60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003664 70002A64 44814000 */ mtc1 $at, $f8 +/* 003668 70002A68 00000000 */ nop +/* 00366C 70002A6C 46082100 */ add.s $f4, $f4, $f8 +.L70002A70: +/* 003670 70002A70 46048183 */ div.s $f6, $f16, $f4 +/* 003674 70002A74 460032A1 */ cvt.d.s $f10, $f6 +/* 003678 70002A78 44075000 */ mfc1 $a3, $f10 +/* 00367C 70002A7C 44065800 */ mfc1 $a2, $f11 +/* 003680 70002A80 0C002B25 */ jal sprintf +/* 003684 70002A84 00000000 */ nop +/* 003688 70002A88 0C002C7A */ jal write_string_stdout +/* 00368C 70002A8C 02002025 */ move $a0, $s0 +/* 003690 70002A90 24040008 */ li $a0, 8 +/* 003694 70002A94 0C002C10 */ jal set_final_debug_text_positions +/* 003698 70002A98 24050006 */ li $a1, 6 +/* 00369C 70002A9C 8FA30044 */ lw $v1, 0x44($sp) +/* 0036A0 70002AA0 3C058003 */ lui $a1, %hi(aRsp2_0f) +/* 0036A4 70002AA4 24A58430 */ addiu $a1, %lo(aRsp2_0f) # addiu $a1, $a1, -0x7bd0 +/* 0036A8 70002AA8 8C620000 */ lw $v0, ($v1) +/* 0036AC 70002AAC 8C690004 */ lw $t1, 4($v1) +/* 0036B0 70002AB0 02002025 */ move $a0, $s0 +/* 0036B4 70002AB4 44825000 */ mtc1 $v0, $f10 +/* 0036B8 70002AB8 00495023 */ subu $t2, $v0, $t1 +/* 0036BC 70002ABC 448A9000 */ mtc1 $t2, $f18 +/* 0036C0 70002AC0 05410005 */ bgez $t2, .L70002AD8 +/* 0036C4 70002AC4 46809220 */ cvt.s.w $f8, $f18 +/* 0036C8 70002AC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0036CC 70002ACC 44818000 */ mtc1 $at, $f16 +/* 0036D0 70002AD0 00000000 */ nop +/* 0036D4 70002AD4 46104200 */ add.s $f8, $f8, $f16 +.L70002AD8: +/* 0036D8 70002AD8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0036DC 70002ADC 44812000 */ mtc1 $at, $f4 +/* 0036E0 70002AE0 468054A0 */ cvt.s.w $f18, $f10 +/* 0036E4 70002AE4 46044182 */ mul.s $f6, $f8, $f4 +/* 0036E8 70002AE8 04410004 */ bgez $v0, .L70002AFC +/* 0036EC 70002AEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0036F0 70002AF0 44818000 */ mtc1 $at, $f16 +/* 0036F4 70002AF4 00000000 */ nop +/* 0036F8 70002AF8 46109480 */ add.s $f18, $f18, $f16 +.L70002AFC: +/* 0036FC 70002AFC 46123203 */ div.s $f8, $f6, $f18 +/* 003700 70002B00 46004121 */ cvt.d.s $f4, $f8 +/* 003704 70002B04 44072000 */ mfc1 $a3, $f4 +/* 003708 70002B08 44062800 */ mfc1 $a2, $f5 +/* 00370C 70002B0C 0C002B25 */ jal sprintf +/* 003710 70002B10 00000000 */ nop +/* 003714 70002B14 0C002C7A */ jal write_string_stdout +/* 003718 70002B18 02002025 */ move $a0, $s0 +/* 00371C 70002B1C 24040008 */ li $a0, 8 +/* 003720 70002B20 0C002C10 */ jal set_final_debug_text_positions +/* 003724 70002B24 24050007 */ li $a1, 7 +/* 003728 70002B28 8FAB0044 */ lw $t3, 0x44($sp) +/* 00372C 70002B2C 3C058003 */ lui $a1, %hi(aTex2_0f) +/* 003730 70002B30 24A58440 */ addiu $a1, %lo(aTex2_0f) # addiu $a1, $a1, -0x7bc0 +/* 003734 70002B34 8D6C000C */ lw $t4, 0xc($t3) +/* 003738 70002B38 02002025 */ move $a0, $s0 +/* 00373C 70002B3C 448C5000 */ mtc1 $t4, $f10 +/* 003740 70002B40 05810005 */ bgez $t4, .L70002B58 +/* 003744 70002B44 46805420 */ cvt.s.w $f16, $f10 +/* 003748 70002B48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00374C 70002B4C 44813000 */ mtc1 $at, $f6 +/* 003750 70002B50 00000000 */ nop +/* 003754 70002B54 46068400 */ add.s $f16, $f16, $f6 +.L70002B58: +/* 003758 70002B58 8D6D0000 */ lw $t5, ($t3) +/* 00375C 70002B5C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 003760 70002B60 44819000 */ mtc1 $at, $f18 +/* 003764 70002B64 448D2000 */ mtc1 $t5, $f4 +/* 003768 70002B68 46128202 */ mul.s $f8, $f16, $f18 +/* 00376C 70002B6C 05A10005 */ bgez $t5, .L70002B84 +/* 003770 70002B70 468022A0 */ cvt.s.w $f10, $f4 +/* 003774 70002B74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003778 70002B78 44813000 */ mtc1 $at, $f6 +/* 00377C 70002B7C 00000000 */ nop +/* 003780 70002B80 46065280 */ add.s $f10, $f10, $f6 +.L70002B84: +/* 003784 70002B84 460A4403 */ div.s $f16, $f8, $f10 +/* 003788 70002B88 460084A1 */ cvt.d.s $f18, $f16 +/* 00378C 70002B8C 44079000 */ mfc1 $a3, $f18 +/* 003790 70002B90 44069800 */ mfc1 $a2, $f19 +/* 003794 70002B94 0C002B25 */ jal sprintf +/* 003798 70002B98 00000000 */ nop +/* 00379C 70002B9C 0C002C7A */ jal write_string_stdout +/* 0037A0 70002BA0 02002025 */ move $a0, $s0 +/* 0037A4 70002BA4 2404001C */ li $a0, 28 +/* 0037A8 70002BA8 0C002C10 */ jal set_final_debug_text_positions +/* 0037AC 70002BAC 24050005 */ li $a1, 5 +/* 0037B0 70002BB0 3C038005 */ lui $v1, %hi(D_80048498) +/* 0037B4 70002BB4 8C638498 */ lw $v1, %lo(D_80048498)($v1) +/* 0037B8 70002BB8 02002025 */ move $a0, $s0 +/* 0037BC 70002BBC 3C058003 */ lui $a1, %hi(a2dHz) +/* 0037C0 70002BC0 14600003 */ bnez $v1, .L70002BD0 +/* 0037C4 70002BC4 240E003C */ li $t6, 60 +/* 0037C8 70002BC8 1000000C */ b .L70002BFC +/* 0037CC 70002BCC 00003025 */ move $a2, $zero +.L70002BD0: +/* 0037D0 70002BD0 01C3001A */ div $zero, $t6, $v1 +/* 0037D4 70002BD4 00003012 */ mflo $a2 +/* 0037D8 70002BD8 14600002 */ bnez $v1, .L70002BE4 +/* 0037DC 70002BDC 00000000 */ nop +/* 0037E0 70002BE0 0007000D */ break 7 +.L70002BE4: +/* 0037E4 70002BE4 2401FFFF */ li $at, -1 +/* 0037E8 70002BE8 14610004 */ bne $v1, $at, .L70002BFC +/* 0037EC 70002BEC 3C018000 */ lui $at, 0x8000 +/* 0037F0 70002BF0 15C10002 */ bne $t6, $at, .L70002BFC +/* 0037F4 70002BF4 00000000 */ nop +/* 0037F8 70002BF8 0006000D */ break 6 +.L70002BFC: +/* 0037FC 70002BFC 0C002B25 */ jal sprintf +/* 003800 70002C00 24A5844C */ addiu $a1, %lo(a2dHz) # addiu $a1, $a1, -0x7bb4 +/* 003804 70002C04 0C002C7A */ jal write_string_stdout +/* 003808 70002C08 02002025 */ move $a0, $s0 +/* 00380C 70002C0C 2404001C */ li $a0, 28 +/* 003810 70002C10 0C002C10 */ jal set_final_debug_text_positions +/* 003814 70002C14 24050006 */ li $a1, 6 +/* 003818 70002C18 3C058003 */ lui $a1, %hi(a2dFrames) +/* 00381C 70002C1C 3C068005 */ lui $a2, %hi(D_80048498) +/* 003820 70002C20 8CC68498 */ lw $a2, %lo(D_80048498)($a2) +/* 003824 70002C24 24A58454 */ addiu $a1, %lo(a2dFrames) # addiu $a1, $a1, -0x7bac +/* 003828 70002C28 0C002B25 */ jal sprintf +/* 00382C 70002C2C 02002025 */ move $a0, $s0 +/* 003830 70002C30 0C002C7A */ jal write_string_stdout +/* 003834 70002C34 02002025 */ move $a0, $s0 +/* 003838 70002C38 3C0F8002 */ lui $t7, %hi(D_80023228) +/* 00383C 70002C3C 3C188005 */ lui $t8, %hi(D_80048498) +/* 003840 70002C40 8F188498 */ lw $t8, %lo(D_80048498)($t8) +/* 003844 70002C44 8DEF3228 */ lw $t7, %lo(D_80023228)($t7) +/* 003848 70002C48 02002025 */ move $a0, $s0 +/* 00384C 70002C4C 3C058003 */ lui $a1, %hi(asc_D_80028468) +/* 003850 70002C50 11F80007 */ beq $t7, $t8, .L70002C70 +/* 003854 70002C54 01E03025 */ move $a2, $t7 +/* 003858 70002C58 3C058003 */ lui $a1, %hi(a2d) +/* 00385C 70002C5C 24A58460 */ addiu $a1, %lo(a2d) # addiu $a1, $a1, -0x7ba0 +/* 003860 70002C60 0C002B25 */ jal sprintf +/* 003864 70002C64 02002025 */ move $a0, $s0 +/* 003868 70002C68 10000003 */ b .L70002C78 +/* 00386C 70002C6C 00000000 */ nop +.L70002C70: +/* 003870 70002C70 0C002B25 */ jal sprintf +/* 003874 70002C74 24A58468 */ addiu $a1, $a1, %lo(asc_D_80028468) +.L70002C78: +/* 003878 70002C78 0C002C7A */ jal write_string_stdout +/* 00387C 70002C7C 02002025 */ move $a0, $s0 +/* 003880 70002C80 3C018002 */ lui $at, %hi(D_80023228) +/* 003884 70002C84 AC203228 */ sw $zero, %lo(D_80023228)($at) +/* 003888 70002C88 8FA40048 */ lw $a0, 0x48($sp) +.L70002C8C: +/* 00388C 70002C8C 3C190600 */ lui $t9, 0x600 +/* 003890 70002C90 AC990000 */ sw $t9, ($a0) +/* 003894 70002C94 3C088006 */ lui $t0, %hi(displaylist_bank) +/* 003898 70002C98 8D0804A0 */ lw $t0, %lo(displaylist_bank)($t0) +/* 00389C 70002C9C 3C0C8006 */ lui $t4, %hi(displaylist_0) +/* 0038A0 70002CA0 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 +/* 0038A4 70002CA4 39090001 */ xori $t1, $t0, 1 +/* 0038A8 70002CA8 00095140 */ sll $t2, $t1, 5 +/* 0038AC 70002CAC 01495021 */ addu $t2, $t2, $t1 +/* 0038B0 70002CB0 000A5080 */ sll $t2, $t2, 2 +/* 0038B4 70002CB4 01495021 */ addu $t2, $t2, $t1 +/* 0038B8 70002CB8 000A5100 */ sll $t2, $t2, 4 +/* 0038BC 70002CBC 014C5821 */ addu $t3, $t2, $t4 +/* 0038C0 70002CC0 AC8B0004 */ sw $t3, 4($a0) +/* 0038C4 70002CC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0038C8 70002CC8 8FB00018 */ lw $s0, 0x18($sp) +/* 0038CC 70002CCC 24820008 */ addiu $v0, $a0, 8 +/* 0038D0 70002CD0 03E00008 */ jr $ra +/* 0038D4 70002CD4 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + +/** + * 38D8 70002CD8 + */ +#ifdef NONMATCHING +u32 video_DL_related_4(void) +{ + s32 spC8; + ? spB8; + ? spAC; + ? spA0; + s32 sp80; + void *sp70; + u32 temp_v0; + u32 temp_s4; + u32 temp_s5; + void *temp_s4_2; + void *temp_s5_2; + void *temp_v0_2; + void *temp_t0; + f32 temp_f12; + s32 temp_s3; + s32 temp_s1; + s32 temp_t9; + s32 temp_t3; + u32 temp_ret; + u32 phi_s4; + u32 phi_s5; + s32 phi_s1; + u32 phi_v1; + s32 phi_a1; + void *phi_s3; + void *phi_v0; + s32 phi_s2; + s32 phi_t9; + s32 phi_a1_2; + s32 phi_a1_3; + void *phi_s3_2; + u32 phi_return; + void *phi_s3_3; + void *phi_s3_4; + s32 phi_s3_5; + + temp_v0 = (counterforframes + D_80048498); + counterforframes = temp_v0; + if (temp_v0 >= 0xc9U) + { + D_80023234 = (s32) (D_80023234 ^ 1); + counterforframes = (u32) (temp_v0 + -0xc8); + } + D_8002322C = (s32) (D_8002322C + 1); + phi_return = temp_v0; + if (D_80023234 != (D_8002322C & 1)) + { + phi_s4 = &spAC; +block_4: + temp_s4 = (phi_s4 + 4); + temp_s4->unk-4 = 0; + phi_s4 = temp_s4; + if (temp_s4 < &spB8) + { + goto block_4; + } + phi_s5 = &spA0; +block_6: + temp_s5 = (phi_s5 + 4); + temp_s5->unk-4 = (u32) dword_CODE_bss_800604A4; + phi_s5 = temp_s5; + if (temp_s5 < &spAC) + { + goto block_6; + } + sp70 = &dword_CODE_bss_800607B0; + spC8 = 0; + sp80 = 0; + phi_s3_4 = sub_GAME_7F0D1AC0(((displaylist_bank * 0x850) + &displaylist_0)); +block_8: + temp_s4_2 = (sp80 + &spAC); + phi_a1_3 = subroutine_arg0; + phi_s3_2 = phi_s3_4; + if (*sp70 != subroutine_arg0) + { + temp_s5_2 = (sp80 + &spA0); + phi_s1 = *sp70; + phi_a1 = subroutine_arg0; + phi_s3 = phi_s3_4; +block_10: + temp_v0_2 = (((spC8 << 8) + &dword_CODE_bss_800604B0) + (phi_s1 * 8)); + phi_s2 = *temp_v0_2; + if ((*temp_v0_2 & 0x8000) != 0) + { + phi_s2 = 3; + } + phi_v1 = *temp_s5_2; + if ((u32) *temp_s5_2 < (u32) dword_CODE_bss_800604A4) + { + phi_v1 = dword_CODE_bss_800604A4; + } + phi_a1_2 = phi_a1; + phi_s3_3 = phi_s3; + if ((u32) temp_v0_2->unk4 >= (u32) dword_CODE_bss_800604A4) + { + phi_a1_2 = phi_a1; + phi_s3_3 = phi_s3; + if ((u32) temp_v0_2->unk4 >= (u32) phi_v1) + { + if (1 != *temp_s4_2) + { + if (*temp_s4_2 != 3) + { + if ((*temp_s4_2 & 0x8000) == 0) + { + if ((temp_v0_2->unk4 - phi_v1) < 0) + { + + } + } + } + } + temp_t0 = ((*temp_s4_2 * 0x10) + &D_800231D4+4); + temp_f12 = ((f32) (u32) (temp_v0_2->unk4 - phi_v1) / aIL0); + if (1 == *temp_s4_2) + { + sub_GAME_7F0D1DCC(temp_f12, dword_CODE_bss_800604A4, phi_a1); + phi_v0 = phi_s3; + phi_s3_5 = (s32) phi_s3; + } + else + { + temp_s3 = sub_GAME_7F0D1BD0(temp_f12, phi_s3, temp_f12, (((s32) temp_t0->unk4 >> 0x18) & 0xff), (((s32) temp_t0->unk4 >> 0x10) & 0xff), (s32) (((s32) temp_t0->unk4 >> 8) & 0xff), (?32) temp_t0->unk8, (?32) temp_t0->unkC); + phi_v0 = temp_s3; + phi_s3_5 = temp_s3; + } + *phi_v0 = 0xe7000000; + phi_v0->unk4 = 0; + phi_a1_2 = subroutine_arg0; + phi_s3_3 = (phi_s3_5 + 8); + } + } + temp_s1 = (phi_s1 + 1); + *temp_s4_2 = (s32) phi_s2; + *temp_s5_2 = (u32) temp_v0_2->unk4; + temp_t9 = (temp_s1 & 0x1f); + phi_t9 = temp_t9; + if (temp_s1 < 0) + { + phi_t9 = temp_t9; + if (temp_t9 != 0) + { + phi_t9 = (temp_t9 + -0x20); + } + } + phi_s1 = phi_t9; + phi_a1 = phi_a1_2; + phi_s3 = phi_s3_3; + phi_a1_3 = phi_a1_2; + phi_s3_2 = phi_s3_3; + if (phi_t9 != phi_a1_2) + { + goto block_10; + } + } + if (spC8 < 2) + { + sub_GAME_7F0D2320(phi_a1_3); + } + temp_t3 = (spC8 + 1); + sp70 = (void *) (sp70 + 4); + sp80 = (s32) (sp80 + 4); + spC8 = temp_t3; + phi_s3_4 = phi_s3_2; + if (temp_t3 != 3) + { + goto block_8; + } + temp_ret = sub_GAME_7F0D1E98(phi_s3_2, 0, 0, 0); + *temp_ret = 0xe7000000; + temp_ret->unk4 = 0; + temp_ret->unk8 = 0xb8000000; + temp_ret->unkC = 0; + displaylist_bank = (s32) (displaylist_bank ^ 1); + phi_return = temp_ret; + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel video_DL_related_4 +/* 0038D8 70002CD8 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0038DC 70002CDC 3C028002 */ lui $v0, %hi(counterforframes) +/* 0038E0 70002CE0 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0038E4 70002CE4 8C423230 */ lw $v0, %lo(counterforframes)($v0) +/* 0038E8 70002CE8 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0038EC 70002CEC 3C018002 */ lui $at, %hi(counterforframes) +/* 0038F0 70002CF0 AFBF005C */ sw $ra, 0x5c($sp) +/* 0038F4 70002CF4 004E1021 */ addu $v0, $v0, $t6 +/* 0038F8 70002CF8 AC223230 */ sw $v0, %lo(counterforframes)($at) +/* 0038FC 70002CFC 2C4100C9 */ sltiu $at, $v0, 0xc9 +/* 003900 70002D00 AFBE0058 */ sw $fp, 0x58($sp) +/* 003904 70002D04 AFB70054 */ sw $s7, 0x54($sp) +/* 003908 70002D08 AFB60050 */ sw $s6, 0x50($sp) +/* 00390C 70002D0C AFB5004C */ sw $s5, 0x4c($sp) +/* 003910 70002D10 AFB40048 */ sw $s4, 0x48($sp) +/* 003914 70002D14 AFB30044 */ sw $s3, 0x44($sp) +/* 003918 70002D18 AFB20040 */ sw $s2, 0x40($sp) +/* 00391C 70002D1C AFB1003C */ sw $s1, 0x3c($sp) +/* 003920 70002D20 AFB00038 */ sw $s0, 0x38($sp) +/* 003924 70002D24 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 003928 70002D28 14200009 */ bnez $at, .L70002D50 +/* 00392C 70002D2C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 003930 70002D30 3C0F8002 */ lui $t7, %hi(D_80023234) +/* 003934 70002D34 8DEF3234 */ lw $t7, %lo(D_80023234)($t7) +/* 003938 70002D38 3C018002 */ lui $at, %hi(D_80023234) +/* 00393C 70002D3C 2442FF38 */ addiu $v0, $v0, -0xc8 +/* 003940 70002D40 39F80001 */ xori $t8, $t7, 1 +/* 003944 70002D44 AC383234 */ sw $t8, %lo(D_80023234)($at) +/* 003948 70002D48 3C018002 */ lui $at, %hi(counterforframes) +/* 00394C 70002D4C AC223230 */ sw $v0, %lo(counterforframes)($at) +.L70002D50: +/* 003950 70002D50 3C038002 */ lui $v1, %hi(D_8002322C) +/* 003954 70002D54 8C63322C */ lw $v1, %lo(D_8002322C)($v1) +/* 003958 70002D58 3C198002 */ lui $t9, %hi(D_80023234) +/* 00395C 70002D5C 8F393234 */ lw $t9, %lo(D_80023234)($t9) +/* 003960 70002D60 30690001 */ andi $t1, $v1, 1 +/* 003964 70002D64 3C018002 */ lui $at, %hi(D_8002322C) +/* 003968 70002D68 24630001 */ addiu $v1, $v1, 1 +/* 00396C 70002D6C 132900AD */ beq $t9, $t1, .L70003024 +/* 003970 70002D70 AC23322C */ sw $v1, %lo(D_8002322C)($at) +/* 003974 70002D74 3C0A8006 */ lui $t2, %hi(displaylist_bank) +/* 003978 70002D78 8D4A04A0 */ lw $t2, %lo(displaylist_bank)($t2) +/* 00397C 70002D7C 3C0C8006 */ lui $t4, %hi(displaylist_0) +/* 003980 70002D80 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 +/* 003984 70002D84 000A5940 */ sll $t3, $t2, 5 +/* 003988 70002D88 016A5821 */ addu $t3, $t3, $t2 +/* 00398C 70002D8C 000B5880 */ sll $t3, $t3, 2 +/* 003990 70002D90 016A5821 */ addu $t3, $t3, $t2 +/* 003994 70002D94 000B5900 */ sll $t3, $t3, 4 +/* 003998 70002D98 0FC346B0 */ jal sub_GAME_7F0D1AC0 +/* 00399C 70002D9C 016C2021 */ addu $a0, $t3, $t4 +/* 0039A0 70002DA0 00409825 */ move $s3, $v0 +/* 0039A4 70002DA4 27A200B8 */ addiu $v0, $sp, 0xb8 +/* 0039A8 70002DA8 27B400AC */ addiu $s4, $sp, 0xac +.L70002DAC: +/* 0039AC 70002DAC 26940004 */ addiu $s4, $s4, 4 +/* 0039B0 70002DB0 0282082B */ sltu $at, $s4, $v0 +/* 0039B4 70002DB4 1420FFFD */ bnez $at, .L70002DAC +/* 0039B8 70002DB8 AE80FFFC */ sw $zero, -4($s4) +/* 0039BC 70002DBC 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) +/* 0039C0 70002DC0 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 0039C4 70002DC4 27B500A0 */ addiu $s5, $sp, 0xa0 +/* 0039C8 70002DC8 27A200AC */ addiu $v0, $sp, 0xac +.L70002DCC: +/* 0039CC 70002DCC 26B50004 */ addiu $s5, $s5, 4 +/* 0039D0 70002DD0 02A2082B */ sltu $at, $s5, $v0 +/* 0039D4 70002DD4 1420FFFD */ bnez $at, .L70002DCC +/* 0039D8 70002DD8 AEA4FFFC */ sw $a0, -4($s5) +/* 0039DC 70002DDC 3C0D8006 */ lui $t5, %hi(dword_CODE_bss_800607B0) +/* 0039E0 70002DE0 25AD07B0 */ addiu $t5, %lo(dword_CODE_bss_800607B0) # addiu $t5, $t5, 0x7b0 +/* 0039E4 70002DE4 3C1E8006 */ lui $fp, %hi(dword_CODE_bss_800607D0) +/* 0039E8 70002DE8 3C018003 */ lui $at, %hi(aIL0) +/* 0039EC 70002DEC C4368470 */ lwc1 $f22, %lo(aIL0)($at) +/* 0039F0 70002DF0 27DE07D0 */ addiu $fp, %lo(dword_CODE_bss_800607D0) # addiu $fp, $fp, 0x7d0 +/* 0039F4 70002DF4 AFAD0070 */ sw $t5, 0x70($sp) +/* 0039F8 70002DF8 AFA000C8 */ sw $zero, 0xc8($sp) +/* 0039FC 70002DFC AFA00080 */ sw $zero, 0x80($sp) +/* 003A00 70002E00 24160001 */ li $s6, 1 +.L70002E04: +/* 003A04 70002E04 8FAE0070 */ lw $t6, 0x70($sp) +/* 003A08 70002E08 8FC50000 */ lw $a1, ($fp) +/* 003A0C 70002E0C 8FAF0080 */ lw $t7, 0x80($sp) +/* 003A10 70002E10 8DD10000 */ lw $s1, ($t6) +/* 003A14 70002E14 4480A000 */ mtc1 $zero, $f20 +/* 003A18 70002E18 27B800AC */ addiu $t8, $sp, 0xac +/* 003A1C 70002E1C 1225005F */ beq $s1, $a1, .L70002F9C +/* 003A20 70002E20 01F8A021 */ addu $s4, $t7, $t8 +/* 003A24 70002E24 8FA900C8 */ lw $t1, 0xc8($sp) +/* 003A28 70002E28 3C0B8006 */ lui $t3, %hi(dword_CODE_bss_800604B0) +/* 003A2C 70002E2C 256B04B0 */ addiu $t3, %lo(dword_CODE_bss_800604B0) # addiu $t3, $t3, 0x4b0 +/* 003A30 70002E30 27B900A0 */ addiu $t9, $sp, 0xa0 +/* 003A34 70002E34 00095200 */ sll $t2, $t1, 8 +/* 003A38 70002E38 014BB821 */ addu $s7, $t2, $t3 +/* 003A3C 70002E3C 01F9A821 */ addu $s5, $t7, $t9 +.L70002E40: +/* 003A40 70002E40 001160C0 */ sll $t4, $s1, 3 +/* 003A44 70002E44 02EC1021 */ addu $v0, $s7, $t4 +/* 003A48 70002E48 8C520000 */ lw $s2, ($v0) +/* 003A4C 70002E4C 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) +/* 003A50 70002E50 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 003A54 70002E54 324D8000 */ andi $t5, $s2, 0x8000 +/* 003A58 70002E58 51A00003 */ beql $t5, $zero, .L70002E68 +/* 003A5C 70002E5C 8EA30000 */ lw $v1, ($s5) +/* 003A60 70002E60 24120003 */ li $s2, 3 +/* 003A64 70002E64 8EA30000 */ lw $v1, ($s5) +.L70002E68: +/* 003A68 70002E68 8C500004 */ lw $s0, 4($v0) +/* 003A6C 70002E6C 0064082B */ sltu $at, $v1, $a0 +/* 003A70 70002E70 50200003 */ beql $at, $zero, .L70002E80 +/* 003A74 70002E74 0204082B */ sltu $at, $s0, $a0 +/* 003A78 70002E78 00801825 */ move $v1, $a0 +/* 003A7C 70002E7C 0204082B */ sltu $at, $s0, $a0 +.L70002E80: +/* 003A80 70002E80 1420003C */ bnez $at, .L70002F74 +/* 003A84 70002E84 0203082B */ sltu $at, $s0, $v1 +/* 003A88 70002E88 1420003A */ bnez $at, .L70002F74 +/* 003A8C 70002E8C 3C198002 */ lui $t9, %hi(D_800231D4) +/* 003A90 70002E90 8E820000 */ lw $v0, ($s4) +/* 003A94 70002E94 273931D4 */ addiu $t9, %lo(D_800231D4) # addiu $t9, $t9, 0x31d4 +/* 003A98 70002E98 02034823 */ subu $t1, $s0, $v1 +/* 003A9C 70002E9C 12C2000F */ beq $s6, $v0, .L70002EDC +/* 003AA0 70002EA0 00027900 */ sll $t7, $v0, 4 +/* 003AA4 70002EA4 24010003 */ li $at, 3 +/* 003AA8 70002EA8 1041000C */ beq $v0, $at, .L70002EDC +/* 003AAC 70002EAC 304E8000 */ andi $t6, $v0, 0x8000 +/* 003AB0 70002EB0 15C0000A */ bnez $t6, .L70002EDC +/* 003AB4 70002EB4 0203C023 */ subu $t8, $s0, $v1 +/* 003AB8 70002EB8 44982000 */ mtc1 $t8, $f4 +/* 003ABC 70002EBC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003AC0 70002EC0 07010004 */ bgez $t8, .L70002ED4 +/* 003AC4 70002EC4 468021A0 */ cvt.s.w $f6, $f4 +/* 003AC8 70002EC8 44814000 */ mtc1 $at, $f8 +/* 003ACC 70002ECC 00000000 */ nop +/* 003AD0 70002ED0 46083180 */ add.s $f6, $f6, $f8 +.L70002ED4: +/* 003AD4 70002ED4 46163283 */ div.s $f10, $f6, $f22 +/* 003AD8 70002ED8 460AA500 */ add.s $f20, $f20, $f10 +.L70002EDC: +/* 003ADC 70002EDC 44898000 */ mtc1 $t1, $f16 +/* 003AE0 70002EE0 01F94021 */ addu $t0, $t7, $t9 +/* 003AE4 70002EE4 05210005 */ bgez $t1, .L70002EFC +/* 003AE8 70002EE8 468084A0 */ cvt.s.w $f18, $f16 +/* 003AEC 70002EEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003AF0 70002EF0 44812000 */ mtc1 $at, $f4 +/* 003AF4 70002EF4 00000000 */ nop +/* 003AF8 70002EF8 46049480 */ add.s $f18, $f18, $f4 +.L70002EFC: +/* 003AFC 70002EFC 16C20005 */ bne $s6, $v0, .L70002F14 +/* 003B00 70002F00 46169303 */ div.s $f12, $f18, $f22 +/* 003B04 70002F04 0FC34773 */ jal sub_GAME_7F0D1DCC +/* 003B08 70002F08 00000000 */ nop +/* 003B0C 70002F0C 10000014 */ b .L70002F60 +/* 003B10 70002F10 02601025 */ move $v0, $s3 +.L70002F14: +/* 003B14 70002F14 8D020004 */ lw $v0, 4($t0) +/* 003B18 70002F18 44056000 */ mfc1 $a1, $f12 +/* 003B1C 70002F1C 02602025 */ move $a0, $s3 +/* 003B20 70002F20 00026203 */ sra $t4, $v0, 8 +/* 003B24 70002F24 318D00FF */ andi $t5, $t4, 0xff +/* 003B28 70002F28 AFAD0010 */ sw $t5, 0x10($sp) +/* 003B2C 70002F2C 8D0E0008 */ lw $t6, 8($t0) +/* 003B30 70002F30 00023603 */ sra $a2, $v0, 0x18 +/* 003B34 70002F34 00023C03 */ sra $a3, $v0, 0x10 +/* 003B38 70002F38 AFAE0014 */ sw $t6, 0x14($sp) +/* 003B3C 70002F3C 8D18000C */ lw $t8, 0xc($t0) +/* 003B40 70002F40 30EB00FF */ andi $t3, $a3, 0xff +/* 003B44 70002F44 30CA00FF */ andi $t2, $a2, 0xff +/* 003B48 70002F48 01403025 */ move $a2, $t2 +/* 003B4C 70002F4C 01603825 */ move $a3, $t3 +/* 003B50 70002F50 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 003B54 70002F54 AFB80018 */ sw $t8, 0x18($sp) +/* 003B58 70002F58 00409825 */ move $s3, $v0 +/* 003B5C 70002F5C 02601025 */ move $v0, $s3 +.L70002F60: +/* 003B60 70002F60 3C0FE700 */ lui $t7, 0xe700 +/* 003B64 70002F64 AC4F0000 */ sw $t7, ($v0) +/* 003B68 70002F68 AC400004 */ sw $zero, 4($v0) +/* 003B6C 70002F6C 26730008 */ addiu $s3, $s3, 8 +/* 003B70 70002F70 8FC50000 */ lw $a1, ($fp) +.L70002F74: +/* 003B74 70002F74 26310001 */ addiu $s1, $s1, 1 +/* 003B78 70002F78 AE920000 */ sw $s2, ($s4) +/* 003B7C 70002F7C AEB00000 */ sw $s0, ($s5) +/* 003B80 70002F80 06210004 */ bgez $s1, .L70002F94 +/* 003B84 70002F84 3239001F */ andi $t9, $s1, 0x1f +/* 003B88 70002F88 13200002 */ beqz $t9, .L70002F94 +/* 003B8C 70002F8C 00000000 */ nop +/* 003B90 70002F90 2739FFE0 */ addiu $t9, $t9, -0x20 +.L70002F94: +/* 003B94 70002F94 1725FFAA */ bne $t9, $a1, .L70002E40 +/* 003B98 70002F98 03208825 */ move $s1, $t9 +.L70002F9C: +/* 003B9C 70002F9C 8FA900C8 */ lw $t1, 0xc8($sp) +/* 003BA0 70002FA0 29210002 */ slti $at, $t1, 2 +/* 003BA4 70002FA4 50200004 */ beql $at, $zero, .L70002FB8 +/* 003BA8 70002FA8 8FAA00C8 */ lw $t2, 0xc8($sp) +/* 003BAC 70002FAC 0FC348C8 */ jal sub_GAME_7F0D2320 +/* 003BB0 70002FB0 00000000 */ nop +/* 003BB4 70002FB4 8FAA00C8 */ lw $t2, 0xc8($sp) +.L70002FB8: +/* 003BB8 70002FB8 8FAC0080 */ lw $t4, 0x80($sp) +/* 003BBC 70002FBC 8FAE0070 */ lw $t6, 0x70($sp) +/* 003BC0 70002FC0 24010003 */ li $at, 3 +/* 003BC4 70002FC4 254B0001 */ addiu $t3, $t2, 1 +/* 003BC8 70002FC8 258D0004 */ addiu $t5, $t4, 4 +/* 003BCC 70002FCC 25D80004 */ addiu $t8, $t6, 4 +/* 003BD0 70002FD0 AFB80070 */ sw $t8, 0x70($sp) +/* 003BD4 70002FD4 AFAD0080 */ sw $t5, 0x80($sp) +/* 003BD8 70002FD8 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 003BDC 70002FDC 1561FF89 */ bne $t3, $at, .L70002E04 +/* 003BE0 70002FE0 27DE0004 */ addiu $fp, $fp, 4 +/* 003BE4 70002FE4 02602025 */ move $a0, $s3 +/* 003BE8 70002FE8 00002825 */ move $a1, $zero +/* 003BEC 70002FEC 00003025 */ move $a2, $zero +/* 003BF0 70002FF0 0FC347A6 */ jal sub_GAME_7F0D1E98 +/* 003BF4 70002FF4 00003825 */ move $a3, $zero +/* 003BF8 70002FF8 3C038006 */ lui $v1, %hi(displaylist_bank) +/* 003BFC 70002FFC 3C0FE700 */ lui $t7, 0xe700 +/* 003C00 70003000 3C19B800 */ lui $t9, 0xb800 +/* 003C04 70003004 246304A0 */ addiu $v1, %lo(displaylist_bank) # addiu $v1, $v1, 0x4a0 +/* 003C08 70003008 AC4F0000 */ sw $t7, ($v0) +/* 003C0C 7000300C AC400004 */ sw $zero, 4($v0) +/* 003C10 70003010 AC590008 */ sw $t9, 8($v0) +/* 003C14 70003014 AC40000C */ sw $zero, 0xc($v0) +/* 003C18 70003018 8C690000 */ lw $t1, ($v1) +/* 003C1C 7000301C 392A0001 */ xori $t2, $t1, 1 +/* 003C20 70003020 AC6A0000 */ sw $t2, ($v1) +.L70003024: +/* 003C24 70003024 8FBF005C */ lw $ra, 0x5c($sp) +/* 003C28 70003028 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 003C2C 7000302C D7B60030 */ ldc1 $f22, 0x30($sp) +/* 003C30 70003030 8FB00038 */ lw $s0, 0x38($sp) +/* 003C34 70003034 8FB1003C */ lw $s1, 0x3c($sp) +/* 003C38 70003038 8FB20040 */ lw $s2, 0x40($sp) +/* 003C3C 7000303C 8FB30044 */ lw $s3, 0x44($sp) +/* 003C40 70003040 8FB40048 */ lw $s4, 0x48($sp) +/* 003C44 70003044 8FB5004C */ lw $s5, 0x4c($sp) +/* 003C48 70003048 8FB60050 */ lw $s6, 0x50($sp) +/* 003C4C 7000304C 8FB70054 */ lw $s7, 0x54($sp) +/* 003C50 70003050 8FBE0058 */ lw $fp, 0x58($sp) +/* 003C54 70003054 03E00008 */ jr $ra +/* 003C58 70003058 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif diff --git a/src/sprintf.c b/src/sprintf.c new file mode 100644 index 0000000..71db221 --- /dev/null +++ b/src/sprintf.c @@ -0,0 +1,74 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +s32 proutSprintf(s32 arg2) +{ + return memcpy() + arg2; +} +#else +GLOBAL_ASM( +.text +glabel proutSprintf +/* 00B870 7000AC70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00B874 7000AC74 AFBF0014 */ sw $ra, 0x14($sp) +/* 00B878 7000AC78 0C004E14 */ jal memcpy +/* 00B87C 7000AC7C AFA60020 */ sw $a2, 0x20($sp) +/* 00B880 7000AC80 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B884 7000AC84 8FAE0020 */ lw $t6, 0x20($sp) +/* 00B888 7000AC88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00B88C 7000AC8C 03E00008 */ jr $ra +/* 00B890 7000AC90 004E1021 */ addu $v0, $v0, $t6 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sprintf(s32 arg0, s32 arg1, ? arg2, ? arg3) +{ + s32 temp_ret; + + temp_ret = _Printf(&proutSprintf, arg0, arg1, &arg2); + if (temp_ret >= 0) + { + *(arg0 + temp_ret) = (u8)0; + } + return temp_ret + -1; +} +#else +GLOBAL_ASM( +.text +glabel sprintf +/* 00B894 7000AC94 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00B898 7000AC98 AFA40020 */ sw $a0, 0x20($sp) +/* 00B89C 7000AC9C AFBF0014 */ sw $ra, 0x14($sp) +/* 00B8A0 7000ACA0 AFA50024 */ sw $a1, 0x24($sp) +/* 00B8A4 7000ACA4 AFA60028 */ sw $a2, 0x28($sp) +/* 00B8A8 7000ACA8 AFA7002C */ sw $a3, 0x2c($sp) +/* 00B8AC 7000ACAC 3C047001 */ lui $a0, %hi(proutSprintf) # $a0, 0x7001 +/* 00B8B0 7000ACB0 2484AC70 */ addiu $a0, %lo(proutSprintf) # addiu $a0, $a0, -0x5390 +/* 00B8B4 7000ACB4 27A70028 */ addiu $a3, $sp, 0x28 +/* 00B8B8 7000ACB8 8FA60024 */ lw $a2, 0x24($sp) +/* 00B8BC 7000ACBC 0C004FD8 */ jal _Printf +/* 00B8C0 7000ACC0 8FA50020 */ lw $a1, 0x20($sp) +/* 00B8C4 7000ACC4 04400004 */ bltz $v0, .L7000ACD8 +/* 00B8C8 7000ACC8 00401825 */ move $v1, $v0 +/* 00B8CC 7000ACCC 8FAE0020 */ lw $t6, 0x20($sp) +/* 00B8D0 7000ACD0 01C27821 */ addu $t7, $t6, $v0 +/* 00B8D4 7000ACD4 A1E00000 */ sb $zero, ($t7) +.L7000ACD8: +/* 00B8D8 7000ACD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B8DC 7000ACDC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00B8E0 7000ACE0 2462FFFF */ addiu $v0, $v1, -1 +/* 00B8E4 7000ACE4 03E00008 */ jr $ra +/* 00B8E8 7000ACE8 00000000 */ nop +) +#endif + + + diff --git a/src/stacks.c b/src/stacks.c new file mode 100644 index 0000000..91d9264 --- /dev/null +++ b/src/stacks.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + +u8 sp_boot[0x10]; +u8 sp_rmon[0x300]; +u8 sp_idle[0x40]; +u8 sp_shed[0x200]; +u8 sp_main[0x8000]; +u8 sp_audi[0x1000]; +u8 sp_debug[0x6B0]; diff --git a/src/str.c b/src/str.c new file mode 100644 index 0000000..fab0aee --- /dev/null +++ b/src/str.c @@ -0,0 +1,655 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void *textpointer_load_parse_something(void *arg0, void *arg1) { + void *temp_a1; + + // Node 0 + temp_a1 = (arg1 + 1); + *arg0 = (s8) *arg1; + if (*arg1 != 0) + { + loop_1: + // Node 1 + ((arg0 + 1) + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_1; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel textpointer_load_parse_something +/* 00B370 7000A770 90A20000 */ lbu $v0, ($a1) +/* 00B374 7000A774 24830001 */ addiu $v1, $a0, 1 +/* 00B378 7000A778 24A50001 */ addiu $a1, $a1, 1 +/* 00B37C 7000A77C 10400006 */ beqz $v0, .L7000A798 +/* 00B380 7000A780 A0820000 */ sb $v0, ($a0) +.L7000A784: +/* 00B384 7000A784 90A20000 */ lbu $v0, ($a1) +/* 00B388 7000A788 24630001 */ addiu $v1, $v1, 1 +/* 00B38C 7000A78C 24A50001 */ addiu $a1, $a1, 1 +/* 00B390 7000A790 1440FFFC */ bnez $v0, .L7000A784 +/* 00B394 7000A794 A062FFFF */ sb $v0, -1($v1) +.L7000A798: +/* 00B398 7000A798 03E00008 */ jr $ra +/* 00B39C 7000A79C 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void *something_with_strings(void *arg0, void *arg1, s32 arg2) { + void *temp_v1; + void *temp_a1; + s32 temp_a2; + + // Node 0 + temp_v1 = (arg0 + 1); + temp_a1 = (arg1 + 1); + *arg0 = (s8) *arg1; + if (*arg1 != 0) + { + loop_1: + // Node 1 + if ((arg2 + -1) != 0) + { + // Node 2 + (temp_v1 + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_1; + } + } + } + // Node 3 + temp_a2 = (arg2 + -1); + if (temp_a2 != 0) + { + loop_4: + // Node 4 + *temp_v1 = (u8)0; + if ((temp_a2 + -1) != 0) + { + goto loop_4; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel something_with_strings +/* 00B3A0 7000A7A0 90A20000 */ lbu $v0, ($a1) +/* 00B3A4 7000A7A4 24830001 */ addiu $v1, $a0, 1 +/* 00B3A8 7000A7A8 24A50001 */ addiu $a1, $a1, 1 +/* 00B3AC 7000A7AC 10400009 */ beqz $v0, .L7000A7D4 +/* 00B3B0 7000A7B0 A0820000 */ sb $v0, ($a0) +.L7000A7B4: +/* 00B3B4 7000A7B4 24C6FFFF */ addiu $a2, $a2, -1 +/* 00B3B8 7000A7B8 50C00007 */ beql $a2, $zero, .L7000A7D8 +/* 00B3BC 7000A7BC 00C01025 */ move $v0, $a2 +/* 00B3C0 7000A7C0 90A20000 */ lbu $v0, ($a1) +/* 00B3C4 7000A7C4 24630001 */ addiu $v1, $v1, 1 +/* 00B3C8 7000A7C8 24A50001 */ addiu $a1, $a1, 1 +/* 00B3CC 7000A7CC 1440FFF9 */ bnez $v0, .L7000A7B4 +/* 00B3D0 7000A7D0 A062FFFF */ sb $v0, -1($v1) +.L7000A7D4: +/* 00B3D4 7000A7D4 00C01025 */ move $v0, $a2 +.L7000A7D8: +/* 00B3D8 7000A7D8 10C00006 */ beqz $a2, .L7000A7F4 +/* 00B3DC 7000A7DC 24C6FFFF */ addiu $a2, $a2, -1 +.L7000A7E0: +/* 00B3E0 7000A7E0 00C01025 */ move $v0, $a2 +/* 00B3E4 7000A7E4 A0600000 */ sb $zero, ($v1) +/* 00B3E8 7000A7E8 24630001 */ addiu $v1, $v1, 1 +/* 00B3EC 7000A7EC 14C0FFFC */ bnez $a2, .L7000A7E0 +/* 00B3F0 7000A7F0 24C6FFFF */ addiu $a2, $a2, -1 +.L7000A7F4: +/* 00B3F4 7000A7F4 03E00008 */ jr $ra +/* 00B3F8 7000A7F8 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void *string_append_from_obseg_textbank(void *arg0, void *arg1) { + void *temp_v0; + void *temp_a1; + + // Node 0 + if (*arg0 != 0) + { + loop_1: + // Node 1 + if (arg0->unk1 != 0) + { + goto loop_1; + } + } + // Node 2 + temp_v0 = (arg0 + 1); + temp_a1 = (arg1 + 1); + temp_v0->unk-1 = (s8) *arg1; + if (*arg1 != 0) + { + loop_3: + // Node 3 + (temp_v0 + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_3; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel string_append_from_obseg_textbank +/* 00B3FC 7000A7FC 908E0000 */ lbu $t6, ($a0) +/* 00B400 7000A800 00801025 */ move $v0, $a0 +/* 00B404 7000A804 51C00006 */ beql $t6, $zero, .L7000A820 +/* 00B408 7000A808 90A30000 */ lbu $v1, ($a1) +/* 00B40C 7000A80C 904F0001 */ lbu $t7, 1($v0) +.L7000A810: +/* 00B410 7000A810 24420001 */ addiu $v0, $v0, 1 +/* 00B414 7000A814 55E0FFFE */ bnezl $t7, .L7000A810 +/* 00B418 7000A818 904F0001 */ lbu $t7, 1($v0) +/* 00B41C 7000A81C 90A30000 */ lbu $v1, ($a1) +.L7000A820: +/* 00B420 7000A820 24420001 */ addiu $v0, $v0, 1 +/* 00B424 7000A824 24A50001 */ addiu $a1, $a1, 1 +/* 00B428 7000A828 10600006 */ beqz $v1, .L7000A844 +/* 00B42C 7000A82C A043FFFF */ sb $v1, -1($v0) +.L7000A830: +/* 00B430 7000A830 90A30000 */ lbu $v1, ($a1) +/* 00B434 7000A834 24420001 */ addiu $v0, $v0, 1 +/* 00B438 7000A838 24A50001 */ addiu $a1, $a1, 1 +/* 00B43C 7000A83C 1460FFFC */ bnez $v1, .L7000A830 +/* 00B440 7000A840 A043FFFF */ sb $v1, -1($v0) +.L7000A844: +/* 00B444 7000A844 03E00008 */ jr $ra +/* 00B448 7000A848 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void something_with_strings_0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_strings_0 +.L7000A84C: +/* 00B44C 7000A84C 90820000 */ lbu $v0, ($a0) +/* 00B450 7000A850 90A30000 */ lbu $v1, ($a1) +/* 00B454 7000A854 24840001 */ addiu $a0, $a0, 1 +/* 00B458 7000A858 10430007 */ beq $v0, $v1, .L7000A878 +/* 00B45C 7000A85C 0043082A */ slt $at, $v0, $v1 +/* 00B460 7000A860 10200003 */ beqz $at, .L7000A870 +/* 00B464 7000A864 00000000 */ nop +/* 00B468 7000A868 03E00008 */ jr $ra +/* 00B46C 7000A86C 2402FFFF */ li $v0, -1 + +.L7000A870: +/* 00B470 7000A870 03E00008 */ jr $ra +/* 00B474 7000A874 24020001 */ li $v0, 1 + +.L7000A878: +/* 00B478 7000A878 14400003 */ bnez $v0, .L7000A888 +/* 00B47C 7000A87C 00000000 */ nop +/* 00B480 7000A880 03E00008 */ jr $ra +/* 00B484 7000A884 00001025 */ move $v0, $zero + +.L7000A888: +/* 00B488 7000A888 1000FFF0 */ b .L7000A84C +/* 00B48C 7000A88C 24A50001 */ addiu $a1, $a1, 1 +/* 00B490 7000A890 03E00008 */ jr $ra +/* 00B494 7000A894 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void string_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel string_related +.L7000A898: +/* 00B498 7000A898 54C00004 */ bnezl $a2, .L7000A8AC +/* 00B49C 7000A89C 90820000 */ lbu $v0, ($a0) +/* 00B4A0 7000A8A0 03E00008 */ jr $ra +/* 00B4A4 7000A8A4 00001025 */ move $v0, $zero + +/* 00B4A8 7000A8A8 90820000 */ lbu $v0, ($a0) +.L7000A8AC: +/* 00B4AC 7000A8AC 90A30000 */ lbu $v1, ($a1) +/* 00B4B0 7000A8B0 24C6FFFF */ addiu $a2, $a2, -1 +/* 00B4B4 7000A8B4 24840001 */ addiu $a0, $a0, 1 +/* 00B4B8 7000A8B8 10430007 */ beq $v0, $v1, .L7000A8D8 +/* 00B4BC 7000A8BC 0043082A */ slt $at, $v0, $v1 +/* 00B4C0 7000A8C0 10200003 */ beqz $at, .L7000A8D0 +/* 00B4C4 7000A8C4 00000000 */ nop +/* 00B4C8 7000A8C8 03E00008 */ jr $ra +/* 00B4CC 7000A8CC 2402FFFF */ li $v0, -1 + +.L7000A8D0: +/* 00B4D0 7000A8D0 03E00008 */ jr $ra +/* 00B4D4 7000A8D4 24020001 */ li $v0, 1 + +.L7000A8D8: +/* 00B4D8 7000A8D8 14400003 */ bnez $v0, .L7000A8E8 +/* 00B4DC 7000A8DC 00000000 */ nop +/* 00B4E0 7000A8E0 03E00008 */ jr $ra +/* 00B4E4 7000A8E4 00001025 */ move $v0, $zero + +.L7000A8E8: +/* 00B4E8 7000A8E8 1000FFEB */ b .L7000A898 +/* 00B4EC 7000A8EC 24A50001 */ addiu $a1, $a1, 1 +/* 00B4F0 7000A8F0 03E00008 */ jr $ra +/* 00B4F4 7000A8F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 strtol_related(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if (temp_t6 >= 0x61) + { + // Node 1 + if (temp_t6 < 0x7b) + { + // Node 2 + return; + // (possible return value: temp_t6) + } + } + // (possible return value: temp_t6) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related +/* 00B4F8 7000A8F8 308E00FF */ andi $t6, $a0, 0xff +/* 00B4FC 7000A8FC AFA40000 */ sw $a0, ($sp) +/* 00B500 7000A900 29C10061 */ slti $at, $t6, 0x61 +/* 00B504 7000A904 14200007 */ bnez $at, .L7000A924 +/* 00B508 7000A908 01C02025 */ move $a0, $t6 +/* 00B50C 7000A90C 29C1007B */ slti $at, $t6, 0x7b +/* 00B510 7000A910 10200004 */ beqz $at, .L7000A924 +/* 00B514 7000A914 25C2FFE0 */ addiu $v0, $t6, -0x20 +/* 00B518 7000A918 304F00FF */ andi $t7, $v0, 0xff +/* 00B51C 7000A91C 03E00008 */ jr $ra +/* 00B520 7000A920 01E01025 */ move $v0, $t7 + +.L7000A924: +/* 00B524 7000A924 00801025 */ move $v0, $a0 +/* 00B528 7000A928 03E00008 */ jr $ra +/* 00B52C 7000A92C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_0(s32 arg0) { + // Node 0 + if ((((arg0 & 0xff) < 0x30) ^ 1) != 0) + { + // Node 1 + return; + // (possible return value: ((arg0 & 0xff) < 0x3a)) + } + // (possible return value: (((arg0 & 0xff) < 0x30) ^ 1)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_0 +/* 00B530 7000A930 308E00FF */ andi $t6, $a0, 0xff +/* 00B534 7000A934 29C20030 */ slti $v0, $t6, 0x30 +/* 00B538 7000A938 38420001 */ xori $v0, $v0, 1 +/* 00B53C 7000A93C 10400002 */ beqz $v0, .L7000A948 +/* 00B540 7000A940 AFA40000 */ sw $a0, ($sp) +/* 00B544 7000A944 29C2003A */ slti $v0, $t6, 0x3a +.L7000A948: +/* 00B548 7000A948 03E00008 */ jr $ra +/* 00B54C 7000A94C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_1(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if ((temp_t6 < 0x61) || (temp_t6 >= 0x7b)) + { + // Node 2 + if (((temp_t6 < 0x41) ^ 1) != 0) + { + // Node 3 + return; + // (possible return value: (temp_t6 < 0x5b)) + } + } + else + { + + } + // (possible return value: ((temp_t6 < 0x41) ^ 1)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_1 +/* 00B550 7000A950 308E00FF */ andi $t6, $a0, 0xff +/* 00B554 7000A954 29C20061 */ slti $v0, $t6, 0x61 +/* 00B558 7000A958 AFA40000 */ sw $a0, ($sp) +/* 00B55C 7000A95C 14400004 */ bnez $v0, .L7000A970 +/* 00B560 7000A960 01C01825 */ move $v1, $t6 +/* 00B564 7000A964 29C2007B */ slti $v0, $t6, 0x7b +/* 00B568 7000A968 14400006 */ bnez $v0, .L7000A984 +/* 00B56C 7000A96C 00000000 */ nop +.L7000A970: +/* 00B570 7000A970 28620041 */ slti $v0, $v1, 0x41 +/* 00B574 7000A974 38420001 */ xori $v0, $v0, 1 +/* 00B578 7000A978 10400002 */ beqz $v0, .L7000A984 +/* 00B57C 7000A97C 00000000 */ nop +/* 00B580 7000A980 2862005B */ slti $v0, $v1, 0x5b +.L7000A984: +/* 00B584 7000A984 03E00008 */ jr $ra +/* 00B588 7000A988 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_2(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if ((u32) (temp_t6 ^ 0x20) >= 1U) + { + // Node 1 + if ((u32) (temp_t6 ^ 9) >= 1U) + { + // Node 2 + if ((u32) (temp_t6 ^ 0xa) >= 1U) + { + // Node 3 + if ((u32) (temp_t6 ^ 0xc) >= 1U) + { + // Node 4 + return; + // (possible return value: ((u32) (temp_t6 ^ 0xb) < 1U)) + } + } + } + } + // (possible return value: ((u32) (temp_t6 ^ 0x20) < 1U)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_2 +/* 00B58C 7000A98C 308E00FF */ andi $t6, $a0, 0xff +/* 00B590 7000A990 39C20020 */ xori $v0, $t6, 0x20 +/* 00B594 7000A994 2C420001 */ sltiu $v0, $v0, 1 +/* 00B598 7000A998 1440000F */ bnez $v0, .L7000A9D8 +/* 00B59C 7000A99C AFA40000 */ sw $a0, ($sp) +/* 00B5A0 7000A9A0 39C20009 */ xori $v0, $t6, 9 +/* 00B5A4 7000A9A4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5A8 7000A9A8 1440000B */ bnez $v0, .L7000A9D8 +/* 00B5AC 7000A9AC 00000000 */ nop +/* 00B5B0 7000A9B0 39C2000A */ xori $v0, $t6, 0xa +/* 00B5B4 7000A9B4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5B8 7000A9B8 14400007 */ bnez $v0, .L7000A9D8 +/* 00B5BC 7000A9BC 00000000 */ nop +/* 00B5C0 7000A9C0 39C2000C */ xori $v0, $t6, 0xc +/* 00B5C4 7000A9C4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5C8 7000A9C8 14400003 */ bnez $v0, .L7000A9D8 +/* 00B5CC 7000A9CC 00000000 */ nop +/* 00B5D0 7000A9D0 39C2000B */ xori $v0, $t6, 0xb +/* 00B5D4 7000A9D4 2C420001 */ sltiu $v0, $v0, 1 +.L7000A9D8: +/* 00B5D8 7000A9D8 03E00008 */ jr $ra +/* 00B5DC 7000A9DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void strtol(void) { + +} +#else +GLOBAL_ASM( +.text +glabel strtol +/* 00B5E0 7000A9E0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 00B5E4 7000A9E4 AFB30024 */ sw $s3, 0x24($sp) +/* 00B5E8 7000A9E8 00C09825 */ move $s3, $a2 +/* 00B5EC 7000A9EC AFBF002C */ sw $ra, 0x2c($sp) +/* 00B5F0 7000A9F0 AFB40028 */ sw $s4, 0x28($sp) +/* 00B5F4 7000A9F4 AFB20020 */ sw $s2, 0x20($sp) +/* 00B5F8 7000A9F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 00B5FC 7000A9FC AFB00018 */ sw $s0, 0x18($sp) +/* 00B600 7000AA00 AFA50064 */ sw $a1, 0x64($sp) +/* 00B604 7000AA04 04C00006 */ bltz $a2, .L7000AA20 +/* 00B608 7000AA08 00803825 */ move $a3, $a0 +/* 00B60C 7000AA0C 24010001 */ li $at, 1 +/* 00B610 7000AA10 10C10003 */ beq $a2, $at, .L7000AA20 +/* 00B614 7000AA14 28C10025 */ slti $at, $a2, 0x25 +/* 00B618 7000AA18 54200003 */ bnezl $at, .L7000AA28 +/* 00B61C 7000AA1C 90E40000 */ lbu $a0, ($a3) +.L7000AA20: +/* 00B620 7000AA20 2413000A */ li $s3, 10 +/* 00B624 7000AA24 90E40000 */ lbu $a0, ($a3) +.L7000AA28: +/* 00B628 7000AA28 00E09025 */ move $s2, $a3 +/* 00B62C 7000AA2C 0C002A63 */ jal strtol_related_2 +/* 00B630 7000AA30 AFA70060 */ sw $a3, 0x60($sp) +/* 00B634 7000AA34 50400007 */ beql $v0, $zero, .L7000AA54 +/* 00B638 7000AA38 92420000 */ lbu $v0, ($s2) +/* 00B63C 7000AA3C 26520001 */ addiu $s2, $s2, 1 +.L7000AA40: +/* 00B640 7000AA40 0C002A63 */ jal strtol_related_2 +/* 00B644 7000AA44 92440000 */ lbu $a0, ($s2) +/* 00B648 7000AA48 5440FFFD */ bnezl $v0, .L7000AA40 +/* 00B64C 7000AA4C 26520001 */ addiu $s2, $s2, 1 +/* 00B650 7000AA50 92420000 */ lbu $v0, ($s2) +.L7000AA54: +/* 00B654 7000AA54 2401002D */ li $at, 45 +/* 00B658 7000AA58 50400075 */ beql $v0, $zero, .L7000AC30 +/* 00B65C 7000AA5C 8FA20064 */ lw $v0, 0x64($sp) +/* 00B660 7000AA60 14410004 */ bne $v0, $at, .L7000AA74 +/* 00B664 7000AA64 240E0001 */ li $t6, 1 +/* 00B668 7000AA68 AFAE005C */ sw $t6, 0x5c($sp) +/* 00B66C 7000AA6C 10000008 */ b .L7000AA90 +/* 00B670 7000AA70 26520001 */ addiu $s2, $s2, 1 +.L7000AA74: +/* 00B674 7000AA74 2401002B */ li $at, 43 +/* 00B678 7000AA78 54410005 */ bnel $v0, $at, .L7000AA90 +/* 00B67C 7000AA7C AFA0005C */ sw $zero, 0x5c($sp) +/* 00B680 7000AA80 AFA0005C */ sw $zero, 0x5c($sp) +/* 00B684 7000AA84 10000002 */ b .L7000AA90 +/* 00B688 7000AA88 26520001 */ addiu $s2, $s2, 1 +/* 00B68C 7000AA8C AFA0005C */ sw $zero, 0x5c($sp) +.L7000AA90: +/* 00B690 7000AA90 24010010 */ li $at, 16 +/* 00B694 7000AA94 1661000B */ bne $s3, $at, .L7000AAC4 +/* 00B698 7000AA98 00000000 */ nop +/* 00B69C 7000AA9C 924F0000 */ lbu $t7, ($s2) +/* 00B6A0 7000AAA0 24010030 */ li $at, 48 +/* 00B6A4 7000AAA4 15E10007 */ bne $t7, $at, .L7000AAC4 +/* 00B6A8 7000AAA8 00000000 */ nop +/* 00B6AC 7000AAAC 0C002A3E */ jal strtol_related +/* 00B6B0 7000AAB0 92440001 */ lbu $a0, 1($s2) +/* 00B6B4 7000AAB4 24010058 */ li $at, 88 +/* 00B6B8 7000AAB8 14410002 */ bne $v0, $at, .L7000AAC4 +/* 00B6BC 7000AABC 00000000 */ nop +/* 00B6C0 7000AAC0 26520002 */ addiu $s2, $s2, 2 +.L7000AAC4: +/* 00B6C4 7000AAC4 1660000E */ bnez $s3, .L7000AB00 +/* 00B6C8 7000AAC8 92420000 */ lbu $v0, ($s2) +/* 00B6CC 7000AACC 24010030 */ li $at, 48 +/* 00B6D0 7000AAD0 1441000B */ bne $v0, $at, .L7000AB00 +/* 00B6D4 7000AAD4 2413000A */ li $s3, 10 +/* 00B6D8 7000AAD8 0C002A3E */ jal strtol_related +/* 00B6DC 7000AADC 92440001 */ lbu $a0, 1($s2) +/* 00B6E0 7000AAE0 24010058 */ li $at, 88 +/* 00B6E4 7000AAE4 14410004 */ bne $v0, $at, .L7000AAF8 +/* 00B6E8 7000AAE8 24130008 */ li $s3, 8 +/* 00B6EC 7000AAEC 26520002 */ addiu $s2, $s2, 2 +/* 00B6F0 7000AAF0 10000001 */ b .L7000AAF8 +/* 00B6F4 7000AAF4 24130010 */ li $s3, 16 +.L7000AAF8: +/* 00B6F8 7000AAF8 10000001 */ b .L7000AB00 +/* 00B6FC 7000AAFC 92420000 */ lbu $v0, ($s2) +.L7000AB00: +/* 00B700 7000AB00 305000FF */ andi $s0, $v0, 0xff +/* 00B704 7000AB04 AFB20044 */ sw $s2, 0x44($sp) +/* 00B708 7000AB08 AFA00040 */ sw $zero, 0x40($sp) +/* 00B70C 7000AB0C 00008825 */ move $s1, $zero +/* 00B710 7000AB10 12000033 */ beqz $s0, .L7000ABE0 +/* 00B714 7000AB14 02001825 */ move $v1, $s0 +/* 00B718 7000AB18 2414FFFF */ li $s4, -1 +.L7000AB1C: +/* 00B71C 7000AB1C 320400FF */ andi $a0, $s0, 0xff +/* 00B720 7000AB20 0C002A4C */ jal strtol_related_0 +/* 00B724 7000AB24 AFA30034 */ sw $v1, 0x34($sp) +/* 00B728 7000AB28 10400005 */ beqz $v0, .L7000AB40 +/* 00B72C 7000AB2C 8FA30034 */ lw $v1, 0x34($sp) +/* 00B730 7000AB30 2470FFD0 */ addiu $s0, $v1, -0x30 +/* 00B734 7000AB34 321800FF */ andi $t8, $s0, 0xff +/* 00B738 7000AB38 1000000A */ b .L7000AB64 +/* 00B73C 7000AB3C 03008025 */ move $s0, $t8 +.L7000AB40: +/* 00B740 7000AB40 0C002A54 */ jal strtol_related_1 +/* 00B744 7000AB44 320400FF */ andi $a0, $s0, 0xff +/* 00B748 7000AB48 50400026 */ beql $v0, $zero, .L7000ABE4 +/* 00B74C 7000AB4C 8FAA0044 */ lw $t2, 0x44($sp) +/* 00B750 7000AB50 0C002A3E */ jal strtol_related +/* 00B754 7000AB54 320400FF */ andi $a0, $s0, 0xff +/* 00B758 7000AB58 2450FFC9 */ addiu $s0, $v0, -0x37 +/* 00B75C 7000AB5C 321900FF */ andi $t9, $s0, 0xff +/* 00B760 7000AB60 03208025 */ move $s0, $t9 +.L7000AB64: +/* 00B764 7000AB64 0213082A */ slt $at, $s0, $s3 +/* 00B768 7000AB68 1020001D */ beqz $at, .L7000ABE0 +/* 00B76C 7000AB6C 24090001 */ li $t1, 1 +/* 00B770 7000AB70 0293001B */ divu $zero, $s4, $s3 +/* 00B774 7000AB74 00001012 */ mflo $v0 +/* 00B778 7000AB78 0051082B */ sltu $at, $v0, $s1 +/* 00B77C 7000AB7C 16600002 */ bnez $s3, .L7000AB88 +/* 00B780 7000AB80 00000000 */ nop +/* 00B784 7000AB84 0007000D */ break 7 +.L7000AB88: +/* 00B788 7000AB88 1420000B */ bnez $at, .L7000ABB8 +/* 00B78C 7000AB8C 00000000 */ nop +/* 00B790 7000AB90 1622000B */ bne $s1, $v0, .L7000ABC0 +/* 00B794 7000AB94 00000000 */ nop +/* 00B798 7000AB98 0293001B */ divu $zero, $s4, $s3 +/* 00B79C 7000AB9C 00004010 */ mfhi $t0 +/* 00B7A0 7000ABA0 0110082B */ sltu $at, $t0, $s0 +/* 00B7A4 7000ABA4 16600002 */ bnez $s3, .L7000ABB0 +/* 00B7A8 7000ABA8 00000000 */ nop +/* 00B7AC 7000ABAC 0007000D */ break 7 +.L7000ABB0: +/* 00B7B0 7000ABB0 10200003 */ beqz $at, .L7000ABC0 +/* 00B7B4 7000ABB4 00000000 */ nop +.L7000ABB8: +/* 00B7B8 7000ABB8 10000005 */ b .L7000ABD0 +/* 00B7BC 7000ABBC AFA90040 */ sw $t1, 0x40($sp) +.L7000ABC0: +/* 00B7C0 7000ABC0 02330019 */ multu $s1, $s3 +/* 00B7C4 7000ABC4 00008812 */ mflo $s1 +/* 00B7C8 7000ABC8 02308821 */ addu $s1, $s1, $s0 +/* 00B7CC 7000ABCC 00000000 */ nop +.L7000ABD0: +/* 00B7D0 7000ABD0 92500001 */ lbu $s0, 1($s2) +/* 00B7D4 7000ABD4 26520001 */ addiu $s2, $s2, 1 +/* 00B7D8 7000ABD8 1600FFD0 */ bnez $s0, .L7000AB1C +/* 00B7DC 7000ABDC 02001825 */ move $v1, $s0 +.L7000ABE0: +/* 00B7E0 7000ABE0 8FAA0044 */ lw $t2, 0x44($sp) +.L7000ABE4: +/* 00B7E4 7000ABE4 8FA20064 */ lw $v0, 0x64($sp) +/* 00B7E8 7000ABE8 524A0011 */ beql $s2, $t2, .L7000AC30 +/* 00B7EC 7000ABEC 8FA20064 */ lw $v0, 0x64($sp) +/* 00B7F0 7000ABF0 50400003 */ beql $v0, $zero, .L7000AC00 +/* 00B7F4 7000ABF4 8FAB0040 */ lw $t3, 0x40($sp) +/* 00B7F8 7000ABF8 AC520000 */ sw $s2, ($v0) +/* 00B7FC 7000ABFC 8FAB0040 */ lw $t3, 0x40($sp) +.L7000AC00: +/* 00B800 7000AC00 8FAC005C */ lw $t4, 0x5c($sp) +/* 00B804 7000AC04 11600003 */ beqz $t3, .L7000AC14 +/* 00B808 7000AC08 00000000 */ nop +/* 00B80C 7000AC0C 1000000D */ b .L7000AC44 +/* 00B810 7000AC10 2402FFFF */ li $v0, -1 +.L7000AC14: +/* 00B814 7000AC14 11800003 */ beqz $t4, .L7000AC24 +/* 00B818 7000AC18 02201825 */ move $v1, $s1 +/* 00B81C 7000AC1C 10000009 */ b .L7000AC44 +/* 00B820 7000AC20 00111023 */ negu $v0, $s1 +.L7000AC24: +/* 00B824 7000AC24 10000007 */ b .L7000AC44 +/* 00B828 7000AC28 00601025 */ move $v0, $v1 +/* 00B82C 7000AC2C 8FA20064 */ lw $v0, 0x64($sp) +.L7000AC30: +/* 00B830 7000AC30 8FAD0060 */ lw $t5, 0x60($sp) +/* 00B834 7000AC34 50400003 */ beql $v0, $zero, .L7000AC44 +/* 00B838 7000AC38 00001025 */ move $v0, $zero +/* 00B83C 7000AC3C AC4D0000 */ sw $t5, ($v0) +/* 00B840 7000AC40 00001025 */ move $v0, $zero +.L7000AC44: +/* 00B844 7000AC44 8FBF002C */ lw $ra, 0x2c($sp) +/* 00B848 7000AC48 8FB00018 */ lw $s0, 0x18($sp) +/* 00B84C 7000AC4C 8FB1001C */ lw $s1, 0x1c($sp) +/* 00B850 7000AC50 8FB20020 */ lw $s2, 0x20($sp) +/* 00B854 7000AC54 8FB30024 */ lw $s3, 0x24($sp) +/* 00B858 7000AC58 8FB40028 */ lw $s4, 0x28($sp) +/* 00B85C 7000AC5C 03E00008 */ jr $ra +/* 00B860 7000AC60 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif diff --git a/src/tlb_buffer.c b/src/tlb_buffer.c new file mode 100644 index 0000000..0145cc4 --- /dev/null +++ b/src/tlb_buffer.c @@ -0,0 +1,3 @@ +#include "ultra64.h" + +u8 tlb_buffer[0x8192]; diff --git a/src/tlb_buffer.h b/src/tlb_buffer.h new file mode 100644 index 0000000..c6a02e9 --- /dev/null +++ b/src/tlb_buffer.h @@ -0,0 +1,7 @@ +#ifndef _TLB_BUFFER_H_ +#define _TLB_BUFFER_H_ +#include "ultra64.h" + +extern u8 tlbbuffer[]; + +#endif diff --git a/src/tlb_hardwire.c b/src/tlb_hardwire.c new file mode 100644 index 0000000..c9c2b5e --- /dev/null +++ b/src/tlb_hardwire.c @@ -0,0 +1,31 @@ +#include "ultra64.h" +#include "tlb_hardwire.h" + +/** + * @file tlb_hardwire.c + * This file contains code to set tlb entries to 2 + * -it should become an assembly file + */ + + +/** + * 29B0 70001BB0 + * sets #hardwired TLB entries to 2 + */ +#ifdef NONMATCHING +void set_hardwire_TLB_to_2(void) { + setCopReg(0,Wired,2,0); + setCopReg(0,Context,0,0); +} +#else +GLOBAL_ASM( +.text +glabel set_hardwire_TLB_to_2 +/* 0027B0 70001BB0 24080002 */ li $t0, 2 +/* 0027B4 70001BB4 40883000 */ mtc0 $t0, $6 +/* 0027B8 70001BB8 24080000 */ li $t0, 0 +/* 0027BC 70001BBC 40882000 */ mtc0 $t0, $4 +/* 0027C0 70001BC0 03E00008 */ jr $ra +/* 0027C4 70001BC4 00000000 */ nop +) +#endif \ No newline at end of file diff --git a/src/tlb_hardwire.h b/src/tlb_hardwire.h new file mode 100644 index 0000000..9d59486 --- /dev/null +++ b/src/tlb_hardwire.h @@ -0,0 +1,10 @@ +#ifndef _TLB_HARDWIRE_H_ +#define _TLB_HARDWIRE_H_ +#include "ultra64.h" + + +extern void set_hardwire_TLB_to_2(void); + +#endif + + diff --git a/src/tlb_manage.c b/src/tlb_manage.c new file mode 100644 index 0000000..8e03956 --- /dev/null +++ b/src/tlb_manage.c @@ -0,0 +1,364 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "tlb_manage.h" + +/** + * @file tlb_manage.c + * This file contains tlb management code. + * + * In particular, it: + * - + * - + * - + */ + +u32 maybe_cur_TLB_entries = 0; +u32 tlb_segment_num = 0; + +struct s_tlbmanage_table_entry TLB_managment_table[128]; +struct s_tlbmapping_table_entry TLB_manager_mapping_table[90]; +u32 TLB_manager_mapping_table_end; + u8 (*ptr_TLBallocatedblock) [8192]; + + +extern u8 *_gameSegmentRomStart; +extern u8 *_tlbbufSegmentStart; + + +/** + * 23E0 700017E0 + * establishes 7F- TLB buffer and management table + */ +#ifdef NONMATCHING +void establish_TLB_buffer_management_table(void) + +{ + s32 i; + + for (i=0;i<128;i++) + { + TLB_managment_table[i]->context_value = 1; + TLB_managment_table[i]->pagenum = 0; + } + + for (i=0;i<90;i++) + { + TLB_manager_mapping_table[i].entry1 = '\0'; + TLB_manager_mapping_table[i].entry0 = '\x01'; + } + + TLB_manager_mapping_table_end = 0x7fc65bf0; + ptr_TLBallocatedblock = (u8 (*) [8192])&_tlbbufSegmentStart; +} + +#else +GLOBAL_ASM( +glabel establish_TLB_buffer_management_table +/* 0023E0 700017E0 3C038006 */ lui $v1, %hi(TLB_managment_table) +/* 0023E4 700017E4 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table) +/* 0023E8 700017E8 2442E3F0 */ addiu $v0, %lo(TLB_manager_mapping_table) # addiu $v0, $v0, -0x1c10 +/* 0023EC 700017EC 2463DBF0 */ addiu $v1, %lo(TLB_managment_table) # addiu $v1, $v1, -0x2410 +/* 0023F0 700017F0 24040001 */ li $a0, 1 +.L700017F4: +/* 0023F4 700017F4 24630010 */ addiu $v1, $v1, 0x10 +/* 0023F8 700017F8 0062082B */ sltu $at, $v1, $v0 +/* 0023FC 700017FC AC64FFF0 */ sw $a0, -0x10($v1) +/* 002400 70001800 1420FFFC */ bnez $at, .L700017F4 +/* 002404 70001804 AC60FFF4 */ sw $zero, -0xc($v1) +/* 002408 70001808 3C018006 */ lui $at, %hi(TLB_manager_mapping_table + 2) +/* 00240C 7000180C 3C038006 */ lui $v1, %hi(TLB_manager_mapping_table + 4) +/* 002410 70001810 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table_end) +/* 002414 70001814 2442E4A4 */ addiu $v0, %lo(TLB_manager_mapping_table_end) # addiu $v0, $v0, -0x1b5c +/* 002418 70001818 2463E3F4 */ addiu $v1, %lo(TLB_manager_mapping_table + 4) # addiu $v1, $v1, -0x1c0c +/* 00241C 7000181C A020E3F1 */ sb $zero, %lo(TLB_manager_mapping_table + 1)($at) +/* 002420 70001820 A024E3F0 */ sb $a0, %lo(TLB_manager_mapping_table)($at) +/* 002424 70001824 A020E3F3 */ sb $zero, %lo(TLB_manager_mapping_table + 3)($at) +/* 002428 70001828 A024E3F2 */ sb $a0, %lo(TLB_manager_mapping_table + 2)($at) +.L7000182C: +/* 00242C 7000182C 24630008 */ addiu $v1, $v1, 8 +/* 002430 70001830 A060FFFB */ sb $zero, -5($v1) +/* 002434 70001834 A064FFFA */ sb $a0, -6($v1) +/* 002438 70001838 A060FFFD */ sb $zero, -3($v1) +/* 00243C 7000183C A064FFFC */ sb $a0, -4($v1) +/* 002440 70001840 A060FFFF */ sb $zero, -1($v1) +/* 002444 70001844 A064FFFE */ sb $a0, -2($v1) +/* 002448 70001848 A060FFF9 */ sb $zero, -7($v1) +/* 00244C 7000184C 1462FFF7 */ bne $v1, $v0, .L7000182C +/* 002450 70001850 A064FFF8 */ sb $a0, -8($v1) +/* 002454 70001854 3C0E803B */ lui $t6, %hi(sp_boot) # $t6, 0x803b +/* 002458 70001858 25CEB400 */ addiu $t6, %lo(sp_boot) # addiu $t6, $t6, -0x4c00 +/* 00245C 7000185C 2401E000 */ li $at, -8192 +/* 002460 70001860 01C17824 */ and $t7, $t6, $at +/* 002464 70001864 3C01FFF4 */ lui $at, (0xFFF4C000 >> 16) # lui $at, 0xfff4 +/* 002468 70001868 3421C000 */ ori $at, (0xFFF4C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 00246C 7000186C 01E1C021 */ addu $t8, $t7, $at +/* 002470 70001870 3C018006 */ lui $at, %hi(ptr_TLBallocatedblock) +/* 002474 70001874 AC38E4A8 */ sw $t8, %lo(ptr_TLBallocatedblock)($at) +/* 002478 70001878 3C01FFC0 */ lui $at, (0xFFC08000 >> 16) # lui $at, 0xffc0 +/* 00247C 7000187C 3C198006 */ lui $t9, %hi(TLB_managment_table) +/* 002480 70001880 2739DBF0 */ addiu $t9, %lo(TLB_managment_table) # addiu $t9, $t9, -0x2410 +/* 002484 70001884 34218000 */ ori $at, (0xFFC08000 & 0xFFFF) # ori $at, $at, 0x8000 +/* 002488 70001888 03214021 */ addu $t0, $t9, $at +/* 00248C 7000188C 3C018006 */ lui $at, %hi(TLB_manager_mapping_table_end) +/* 002490 70001890 03E00008 */ jr $ra +/* 002494 70001894 AC28E4A4 */ sw $t0, %lo(TLB_manager_mapping_table_end)($at) +) +#endif + +/** + * 2498 70001898 + * ???; pointless conditional tests, will reset 800230D0 + */ +#ifdef NONMATCHING +s32 mp_tlb_related(void) +{ + s32 temp_v0; + + temp_v0 = maybe_cur_TLB_entries; + if ((temp_v0 >= 0x33) || (temp_v0 < 0x1A)) + { + + } + maybe_cur_TLB_entries = 0; + return temp_v0; +} + +#else +GLOBAL_ASM( +glabel mp_tlb_related +/* 002498 70001898 3C038002 */ lui $v1, %hi(maybe_cur_TLB_entries) +/* 00249C 7000189C 246330D0 */ addiu $v1, %lo(maybe_cur_TLB_entries) # addiu $v1, $v1, 0x30d0 +/* 0024A0 700018A0 8C620000 */ lw $v0, ($v1) +/* 0024A4 700018A4 28410033 */ slti $at, $v0, 0x33 +/* 0024A8 700018A8 10200003 */ beqz $at, .L700018B8 +/* 0024AC 700018AC 2841001A */ slti $at, $v0, 0x1a +/* 0024B0 700018B0 10200001 */ beqz $at, .L700018B8 +/* 0024B4 700018B4 00000000 */ nop +.L700018B8: +/* 0024B8 700018B8 03E00008 */ jr $ra +/* 0024BC 700018BC AC600000 */ sw $zero, ($v1) +) +#endif + +/** + * 24C0 700018C0 + * searches TLB index for an entry matching A0 + * V0=index of match or 80000000 if not found + * accepts: A0=TLB pointer + */ +s32 return_TLB_index_for_entry(int entry) { + s32 index = 0; + while (index != 0x20) { + if (__osGetTLBHi(index) == entry) { + return index; + } + index++; + }; + return -0x80000000; +} + +/** + * 2520 70001920 + * find and remove TLB entry A0 + * accepts: A0=TLB pointer + * redirects to 700018C0, 7000D3D0 + */ +void find_remove_TLB_entry(u32 entry) { + s32 index = return_TLB_index_for_entry(entry); + + if ((index & 0x80000000)) + return; + + osUnmapTLB(index); +} + +/** + * 2554 70001954 + * remove index A0 TLB entry from table at 8005E3F0 + * table format: + * 0x0 1 if dirty + * 0x1 chunk # (7F000000 | chunk<unk1 << 0xd) | 0x7f000000)); + if ((temp_ret << 0) >= 0) + { + sp18 = temp_v1; + osUnmapTLB(temp_ret); + } + (0x80060000 + (temp_v1->unk1 * 0x10))->unk-2410 = 1; + *temp_v1 = 1; + } +} +#else +GLOBAL_ASM( +glabel remove_TLB_entry_from_table +/* 002554 70001954 3C0F8006 */ lui $t7, %hi(TLB_manager_mapping_table) +/* 002558 70001958 25EFE3F0 */ addiu $t7, %lo(TLB_manager_mapping_table) # addiu $t7, $t7, -0x1c10 +/* 00255C 7000195C 00047040 */ sll $t6, $a0, 1 +/* 002560 70001960 01CF1821 */ addu $v1, $t6, $t7 +/* 002564 70001964 90780000 */ lbu $t8, ($v1) +/* 002568 70001968 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00256C 7000196C AFBF0014 */ sw $ra, 0x14($sp) +/* 002570 70001970 57000016 */ bnezl $t8, .L700019CC +/* 002574 70001974 8FBF0014 */ lw $ra, 0x14($sp) +/* 002578 70001978 90640001 */ lbu $a0, 1($v1) +/* 00257C 7000197C 3C017F00 */ lui $at, 0x7f00 +/* 002580 70001980 AFA30018 */ sw $v1, 0x18($sp) +/* 002584 70001984 0004CB40 */ sll $t9, $a0, 0xd +/* 002588 70001988 0C000630 */ jal return_TLB_index_for_entry +/* 00258C 7000198C 03212025 */ or $a0, $t9, $at +/* 002590 70001990 00024800 */ sll $t1, $v0, 0 +/* 002594 70001994 8FA30018 */ lw $v1, 0x18($sp) +/* 002598 70001998 05200004 */ bltz $t1, .L700019AC +/* 00259C 7000199C 00402025 */ move $a0, $v0 +/* 0025A0 700019A0 0C0034F4 */ jal osUnmapTLB +/* 0025A4 700019A4 AFA30018 */ sw $v1, 0x18($sp) +/* 0025A8 700019A8 8FA30018 */ lw $v1, 0x18($sp) +.L700019AC: +/* 0025AC 700019AC 906A0001 */ lbu $t2, 1($v1) +/* 0025B0 700019B0 3C018006 */ lui $at, %hi(TLB_managment_table) +/* 0025B4 700019B4 24020001 */ li $v0, 1 +/* 0025B8 700019B8 000A5900 */ sll $t3, $t2, 4 +/* 0025BC 700019BC 002B0821 */ addu $at, $at, $t3 +/* 0025C0 700019C0 AC22DBF0 */ sw $v0, %lo(TLB_managment_table)($at) +/* 0025C4 700019C4 A0620000 */ sb $v0, ($v1) +/* 0025C8 700019C8 8FBF0014 */ lw $ra, 0x14($sp) +.L700019CC: +/* 0025CC 700019CC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0025D0 700019D0 03E00008 */ jr $ra +/* 0025D4 700019D4 00000000 */ nop +) +#endif + +/** + * 25D8 700019D8 + * loads ROM range for 7F- TLB entries + */ +#ifdef NONMATCHING +void translate_load_rom_from_TLBaddress(u32 address) +{ + //uint randval; + //u32 uVar1; + //u8 (*src) [8192]; + //u32 uVar2; + u32 tlbnum; + + maybe_cur_TLB_entries += 1; + find_remove_TLB_entry(address & 0x7fffe000); + + tlbnum = return_tlb_random_value() % 0x5a; + tlb_segment_num = tlbnum; + remove_TLB_entry_from_table(tlbnum); + + romCopy(ptr_TLBallocatedblock[tlbnum], ((address & 0xffe000) + &_gameSegmentRomStart), 0x2000); + osInvalICache(0x40000000, 0x40000000); + osInvalICache(0x80000000, 0x10000000); + + TLB_managment_table[(address & 0xffe000) >> 0xd].pagenum = tlbnum; + TLB_manager_mapping_table[tlbnum].entry0 = '\0'; + TLB_manager_mapping_table[tlbnum].entry1 = (address & 0xffe000) >> 0xd; + TLB_managment_table[(address & 0xffe000) >> 0xd].context_value = (osVirtualToPhysical(ptr_TLBallocatedblock[tlbnum]) >> 0xc) << 6 | 0x1f; +} +#else +GLOBAL_ASM( +glabel translate_load_rom_from_TLBaddress +/* 0025D8 700019D8 3C028002 */ lui $v0, %hi(maybe_cur_TLB_entries) +/* 0025DC 700019DC 244230D0 */ addiu $v0, %lo(maybe_cur_TLB_entries) # addiu $v0, $v0, 0x30d0 +/* 0025E0 700019E0 8C4E0000 */ lw $t6, ($v0) +/* 0025E4 700019E4 3C017FFF */ lui $at, (0x7FFFE000 >> 16) # lui $at, 0x7fff +/* 0025E8 700019E8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0025EC 700019EC 3421E000 */ ori $at, (0x7FFFE000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 0025F0 700019F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0025F4 700019F4 00812024 */ and $a0, $a0, $at +/* 0025F8 700019F8 25CF0001 */ addiu $t7, $t6, 1 +/* 0025FC 700019FC AFB00018 */ sw $s0, 0x18($sp) +/* 002600 70001A00 AC4F0000 */ sw $t7, ($v0) +/* 002604 70001A04 0C000648 */ jal find_remove_TLB_entry +/* 002608 70001A08 AFA40028 */ sw $a0, 0x28($sp) +/* 00260C 70001A0C 0C0006C4 */ jal return_tlb_random_value +/* 002610 70001A10 00000000 */ nop +/* 002614 70001A14 2401005A */ li $at, 90 +/* 002618 70001A18 0041001B */ divu $zero, $v0, $at +/* 00261C 70001A1C 00002010 */ mfhi $a0 +/* 002620 70001A20 3C038002 */ lui $v1, %hi(tlb_segment_num) +/* 002624 70001A24 246330D4 */ addiu $v1, %lo(tlb_segment_num) # addiu $v1, $v1, 0x30d4 +/* 002628 70001A28 AC640000 */ sw $a0, ($v1) +/* 00262C 70001A2C 0C000655 */ jal remove_TLB_entry_from_table +/* 002630 70001A30 00808025 */ move $s0, $a0 +/* 002634 70001A34 8FA20028 */ lw $v0, 0x28($sp) +/* 002638 70001A38 3C198006 */ lui $t9, %hi(ptr_TLBallocatedblock) +/* 00263C 70001A3C 8F39E4A8 */ lw $t9, %lo(ptr_TLBallocatedblock)($t9) +/* 002640 70001A40 3C0100FF */ lui $at, (0x00FFE000 >> 16) # lui $at, 0xff +/* 002644 70001A44 3421E000 */ ori $at, (0x00FFE000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 002648 70001A48 00104340 */ sll $t0, $s0, 0xd +/* 00264C 70001A4C 3C0A0003 */ lui $t2, %hi(_gameSegmentRomStart) # $t2, 3 +/* 002650 70001A50 00414824 */ and $t1, $v0, $at +/* 002654 70001A54 254A4B30 */ addiu $t2, %lo(_gameSegmentRomStart) # addiu $t2, $t2, 0x4b30 +/* 002658 70001A58 03282021 */ addu $a0, $t9, $t0 +/* 00265C 70001A5C AFA40034 */ sw $a0, 0x34($sp) +/* 002660 70001A60 012A2821 */ addu $a1, $t1, $t2 +/* 002664 70001A64 01201025 */ move $v0, $t1 +/* 002668 70001A68 AFA90024 */ sw $t1, 0x24($sp) +/* 00266C 70001A6C 0C001707 */ jal romCopy +/* 002670 70001A70 24062000 */ li $a2, 8192 +/* 002674 70001A74 3C044000 */ lui $a0, 0x4000 +/* 002678 70001A78 0C0034D4 */ jal osInvalICache +/* 00267C 70001A7C 3C054000 */ lui $a1, 0x4000 +/* 002680 70001A80 3C048000 */ lui $a0, 0x8000 +/* 002684 70001A84 0C0034D4 */ jal osInvalICache +/* 002688 70001A88 3C051000 */ lui $a1, 0x1000 +/* 00268C 70001A8C 8FA50024 */ lw $a1, 0x24($sp) +/* 002690 70001A90 3C0D8006 */ lui $t5, %hi(TLB_managment_table) +/* 002694 70001A94 25ADDBF0 */ addiu $t5, %lo(TLB_managment_table) # addiu $t5, $t5, -0x2410 +/* 002698 70001A98 00055B42 */ srl $t3, $a1, 0xd +/* 00269C 70001A9C 000B6100 */ sll $t4, $t3, 4 +/* 0026A0 70001AA0 018D3021 */ addu $a2, $t4, $t5 +/* 0026A4 70001AA4 ACD00004 */ sw $s0, 4($a2) +/* 0026A8 70001AA8 AFA60020 */ sw $a2, 0x20($sp) +/* 0026AC 70001AAC AFAB0028 */ sw $t3, 0x28($sp) +/* 0026B0 70001AB0 0C003A2C */ jal osVirtualToPhysical +/* 0026B4 70001AB4 8FA40034 */ lw $a0, 0x34($sp) +/* 0026B8 70001AB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0026BC 70001ABC 00027302 */ srl $t6, $v0, 0xc +/* 0026C0 70001AC0 0010C840 */ sll $t9, $s0, 1 +/* 0026C4 70001AC4 3C088006 */ lui $t0, %hi(TLB_manager_mapping_table) +/* 0026C8 70001AC8 8FA50028 */ lw $a1, 0x28($sp) +/* 0026CC 70001ACC 8FA60020 */ lw $a2, 0x20($sp) +/* 0026D0 70001AD0 000E7980 */ sll $t7, $t6, 6 +/* 0026D4 70001AD4 2508E3F0 */ addiu $t0, %lo(TLB_manager_mapping_table) # addiu $t0, $t0, -0x1c10 +/* 0026D8 70001AD8 35F8001F */ ori $t8, $t7, 0x1f +/* 0026DC 70001ADC 03281821 */ addu $v1, $t9, $t0 +/* 0026E0 70001AE0 8FB00018 */ lw $s0, 0x18($sp) +/* 0026E4 70001AE4 A0600000 */ sb $zero, ($v1) +/* 0026E8 70001AE8 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0026EC 70001AEC A0650001 */ sb $a1, 1($v1) +/* 0026F0 70001AF0 03E00008 */ jr $ra +/* 0026F4 70001AF4 ACD80000 */ sw $t8, ($a2) +) +#endif + +/** + * 26F8 70001AF8 + * V0=p->TLB memory, or alternately end of free memory [8005E4A8] + */ +u8 * return_ptr_TLBallocatedblock(void) +{ + return ptr_TLBallocatedblock; +} + + + + + + diff --git a/src/tlb_manage.h b/src/tlb_manage.h new file mode 100644 index 0000000..de5bf66 --- /dev/null +++ b/src/tlb_manage.h @@ -0,0 +1,18 @@ +#ifndef _TLB_MANAGE_H_ +#define _TLB_MANAGE_H_ +#include "ultra64.h" + +struct s_tlbmanage_table_entry +{ + s32 context_value; + s32 pagenum; + s64 RESERVED; +}; + +struct s_tlbmapping_table_entry +{ + u8 entry0; + u8 entry1; +}; + +#endif diff --git a/src/tlb_random.c b/src/tlb_random.c new file mode 100644 index 0000000..5d84f4e --- /dev/null +++ b/src/tlb_random.c @@ -0,0 +1,47 @@ +#include "ultra64.h" + +/** + * @file tlb_random.c + * This file contains code to get a random tlb value. + * + */ + +u64 tlb_random_seed = 0xAB8D9F7781280783; + +/** + * 2710 70001B10 + * V0= random value for TLB random entries [800230E0] + */ +#ifdef NONMATCHING +u32 return_tlb_random_value(void) +{ + tlb_random_seed = + ((tlb_random_seed << 0x3f) >> 0x1f | (tlb_random_seed << 0x1f) >> 0x20) ^ + (tlb_random_seed << 0x2c) >> 0x20; + tlb_random_seed = tlb_random_seed >> 0x14 & 0xfff ^ tlb_random_seed; + return (u32)tlb_random_seed; +} +#else +GLOBAL_ASM( +.text +glabel return_tlb_random_value +/* 002710 70001B10 3C048002 */ lui $a0, %hi(tlb_random_seed) +/* 002714 70001B14 DC8430E0 */ ld $a0, %lo(tlb_random_seed)($a0) +/* 002718 70001B18 3C018002 */ lui $at, %hi(tlb_random_seed) +/* 00271C 70001B1C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 002720 70001B20 00042FF8 */ dsll $a1, $a0, 0x1f +/* 002724 70001B24 000637FA */ dsrl $a2, $a2, 0x1f +/* 002728 70001B28 0005283E */ dsrl32 $a1, $a1, 0 +/* 00272C 70001B2C 0004233C */ dsll32 $a0, $a0, 0xc +/* 002730 70001B30 00C53025 */ or $a2, $a2, $a1 +/* 002734 70001B34 0004203E */ dsrl32 $a0, $a0, 0 +/* 002738 70001B38 00C43026 */ xor $a2, $a2, $a0 +/* 00273C 70001B3C 0006253A */ dsrl $a0, $a2, 0x14 +/* 002740 70001B40 30840FFF */ andi $a0, $a0, 0xfff +/* 002744 70001B44 00862026 */ xor $a0, $a0, $a2 +/* 002748 70001B48 0004103C */ dsll32 $v0, $a0, 0 +/* 00274C 70001B4C FC2430E0 */ sd $a0, %lo(tlb_random_seed)($at) +/* 002750 70001B50 03E00008 */ jr $ra +/* 002754 70001B54 0002103F */ dsra32 $v0, $v0, 0 +) +#endif diff --git a/src/tlb_random.h b/src/tlb_random.h new file mode 100644 index 0000000..1f196ca --- /dev/null +++ b/src/tlb_random.h @@ -0,0 +1,10 @@ +#ifndef _TLB_RANDOM_H_ +#define _TLB_RANDOM_H_ +#include "ultra64.h" + + +extern u32 return_tlb_random_value(void); + +#endif + + diff --git a/src/tlb_resolve.c b/src/tlb_resolve.c new file mode 100644 index 0000000..b00d91d --- /dev/null +++ b/src/tlb_resolve.c @@ -0,0 +1,53 @@ +#include "ultra64.h" +#include "tlb_resolve.h" + +/** + * @file tlb_resolve.c + * This file contains code to load/resolve TLBaddress. + */ + + +/** + * 2760 70001B60 + * loads/resolves TLB address, writting random entry + */ +#ifdef NONMATCHING +//i should probably remain as assembly, maybe even moved to a .s +void resolve_TLBaddress_for_InvalidHit(void) +{ + setCopReg(0,PageMask,0,0); + setCopReg(0,EntryLo0,(longlong)*(int *)(Context + TLB_manager_mapping_table_end),0); + setCopReg(0,EntryLo1,(longlong)(*(int *)(Context + TLB_manager_mapping_table_end) + 0x40),0); + TLB_write_random_entry(Random,EntryHi,EntryLo0,EntryLo1,PageMask); + return; +} +#else +GLOBAL_ASM( +.text +glabel resolve_TLBaddress_for_InvalidHit +/* 002760 70001B60 40802800 */ mtc0 $zero, $5 +/* 002764 70001B64 00000000 */ nop +/* 002768 70001B68 401A2000 */ mfc0 $k0, $4 +/* 00276C 70001B6C 3C1B8006 */ lui $k1, %hi(TLB_manager_mapping_table_end) # $k1, 0x8006 +/* 002770 70001B70 277BE4A4 */ addiu $k1, %lo(TLB_manager_mapping_table_end) # addiu $k1, $k1, -0x1b5c +/* 002774 70001B74 8F7B0000 */ lw $k1, ($k1) +/* 002778 70001B78 035BD021 */ addu $k0, $k0, $k1 +/* 00277C 70001B7C 8F5B0000 */ lw $k1, ($k0) +/* 002780 70001B80 409B1000 */ mtc0 $k1, $2 +/* 002784 70001B84 00000000 */ nop +/* 002788 70001B88 277B0040 */ addiu $k1, $k1, 0x40 +/* 00278C 70001B8C 409B1800 */ mtc0 $k1, $3 +/* 002790 70001B90 00000000 */ nop +/* 002794 70001B94 42000006 */ tlbwr +/* 002798 70001B98 00000000 */ nop +/* 00279C 70001B9C 00000000 */ nop +/* 0027A0 70001BA0 00000000 */ nop +/* 0027A4 70001BA4 00000000 */ nop +/* 0027A8 70001BA8 42000018 */ eret +) +#endif + + + + + diff --git a/src/tlb_resolve.h b/src/tlb_resolve.h new file mode 100644 index 0000000..846574d --- /dev/null +++ b/src/tlb_resolve.h @@ -0,0 +1,10 @@ +#ifndef _TLB_RESOLVE_H_ +#define _TLB_RESOLVE_H_ +#include "ultra64.h" + + +extern void resolve_TLBaddress_for_InvalidHit(void); + +#endif + + diff --git a/src/token.c b/src/token.c new file mode 100644 index 0000000..6507dbc --- /dev/null +++ b/src/token.c @@ -0,0 +1,361 @@ +#include "ultra64.h" +#include "pi.h" +#include "snd.h" +#include "game/lvl_text.h" + + +//OSMesg boot_token_from_indy[160]; +char boot_token_from_indy[0x280]; +s32 strstr_numstings = 1; +s32 strstr_ptrcurrent_string = 0; +u32 D_80024478[34] = {0}; + + +//const char str_empty[] = ""; + + + + + + +#ifdef NONMATCHING +void *check_string_something(void *arg0) +{ + s32 temp_v0; + s32 temp_v0_2; + void *temp_a0; + void *temp_a0_2; + s32 phi_v0; + void *phi_a0; + void *phi_a0_2; + void *phi_a0_3; + s32 phi_v0_2; + void *phi_a0_4; + void *phi_a0_5; + void *phi_a0_6; + + strstr_ptrcurrent_string = &str_empty; + strstr_numstings = 1; + phi_v0 = *arg0; + phi_a0_4 = arg0; + phi_a0_5 = arg0; + if (*arg0 != 0) + { +loop_1: + phi_a0 = phi_a0_5; + phi_a0_2 = phi_a0_5; + if (0x20 == phi_v0) + { +loop_2: + phi_a0->unk0 = (u8)0; + temp_a0 = phi_a0 + 1; + phi_a0 = temp_a0; + phi_a0_2 = temp_a0; + if (0x20 == phi_a0->unk1) + { + goto loop_2; + } + } + *(&strstr_ptrcurrent_string + (strstr_numstings * 4)) = (void *) phi_a0_2; + strstr_numstings = (s32) (strstr_numstings + 1); + temp_v0 = *phi_a0_2; + phi_a0_3 = phi_a0_2; + phi_v0_2 = temp_v0; + phi_a0_6 = phi_a0_2; + if (temp_v0 >= 0x21) + { +loop_4: + temp_v0_2 = phi_a0_3->unk1; + temp_a0_2 = phi_a0_3 + 1; + phi_a0_3 = temp_a0_2; + phi_v0_2 = temp_v0_2; + phi_a0_6 = temp_a0_2; + if (temp_v0_2 >= 0x21) + { + goto loop_4; + } + } + phi_v0 = phi_v0_2; + phi_a0_4 = phi_a0_6; + phi_a0_5 = phi_a0_6; + if (phi_v0_2 != 0) + { + goto loop_1; + } + } + return phi_a0_4; +} +#else +GLOBAL_ASM( +.late_rodata +glabel str_empty +.word 0x0 +.text +glabel check_string_something +/* 00B0F0 7000A4F0 3C058002 */ lui $a1, %hi(strstr_ptrcurrent_string) +/* 00B0F4 7000A4F4 3C068002 */ lui $a2, %hi(strstr_numstings) +/* 00B0F8 7000A4F8 3C0E8003 */ lui $t6, %hi(str_empty) +/* 00B0FC 7000A4FC 24C64470 */ addiu $a2, %lo(strstr_numstings) # addiu $a2, $a2, 0x4470 +/* 00B100 7000A500 24A54474 */ addiu $a1, %lo(strstr_ptrcurrent_string) # addiu $a1, $a1, 0x4474 +/* 00B104 7000A504 25CE91F0 */ addiu $t6, %lo(str_empty) # addiu $t6, $t6, -0x6e10 +/* 00B108 7000A508 240F0001 */ li $t7, 1 +/* 00B10C 7000A50C ACAE0000 */ sw $t6, ($a1) +/* 00B110 7000A510 ACCF0000 */ sw $t7, ($a2) +/* 00B114 7000A514 90820000 */ lbu $v0, ($a0) +/* 00B118 7000A518 24070020 */ li $a3, 32 +/* 00B11C 7000A51C 10400019 */ beqz $v0, .L7000A584 +/* 00B120 7000A520 00000000 */ nop +.L7000A524: +/* 00B124 7000A524 54E20007 */ bnel $a3, $v0, .L7000A544 +/* 00B128 7000A528 8CC30000 */ lw $v1, ($a2) +/* 00B12C 7000A52C 90980001 */ lbu $t8, 1($a0) +.L7000A530: +/* 00B130 7000A530 A0800000 */ sb $zero, ($a0) +/* 00B134 7000A534 24840001 */ addiu $a0, $a0, 1 +/* 00B138 7000A538 50F8FFFD */ beql $a3, $t8, .L7000A530 +/* 00B13C 7000A53C 90980001 */ lbu $t8, 1($a0) +/* 00B140 7000A540 8CC30000 */ lw $v1, ($a2) +.L7000A544: +/* 00B144 7000A544 0003C880 */ sll $t9, $v1, 2 +/* 00B148 7000A548 00B94021 */ addu $t0, $a1, $t9 +/* 00B14C 7000A54C AD040000 */ sw $a0, ($t0) +/* 00B150 7000A550 24690001 */ addiu $t1, $v1, 1 +/* 00B154 7000A554 ACC90000 */ sw $t1, ($a2) +/* 00B158 7000A558 90820000 */ lbu $v0, ($a0) +/* 00B15C 7000A55C 28410021 */ slti $at, $v0, 0x21 +/* 00B160 7000A560 14200006 */ bnez $at, .L7000A57C +/* 00B164 7000A564 00000000 */ nop +/* 00B168 7000A568 90820001 */ lbu $v0, 1($a0) +.L7000A56C: +/* 00B16C 7000A56C 24840001 */ addiu $a0, $a0, 1 +/* 00B170 7000A570 28410021 */ slti $at, $v0, 0x21 +/* 00B174 7000A574 5020FFFD */ beql $at, $zero, .L7000A56C +/* 00B178 7000A578 90820001 */ lbu $v0, 1($a0) +.L7000A57C: +/* 00B17C 7000A57C 1440FFE9 */ bnez $v0, .L7000A524 +/* 00B180 7000A580 00000000 */ nop +.L7000A584: +/* 00B184 7000A584 03E00008 */ jr $ra +/* 00B188 7000A588 00801025 */ move $v0, $a0 +) +#endif + + +void strtok(s32 arg0) { + textpointer_load_parse_something(&boot_token_from_indy, arg0); + check_string_something(&boot_token_from_indy); +} + +//const char aD_6[] = "-d"; +//const char aS_2[] = "-s"; +//const char aJ[] = "-j"; + +#ifdef NONMATCHING +s32 check_boot_switches(void) +{ + s32 is_debug; + s32 devAddr; + u32 *data; + + is_debug = 0; + if (rmon_debug_is_final_build() != 0) + { + boot_token_from_indy[0] = 0; + } + else + { + for (devAddr = 0xffb000, data = &boot_token_from_indy; data != &piCmdBuf; data += 4, devAddr += 4) + { + osPiReadIo(devAddr, data); + } + } + check_string_something(&boot_token_from_indy); + + is_debug = (check_token(1, "-d") != 0); + + if (check_token(1, "-s") != 0) { + bootswitch_sound = 1; + } + + if (check_token(1, "-j") != 0) { + j_text_trigger = 1; + } + + return is_debug; +} +#else +GLOBAL_ASM( +.late_rodata +glabel aD_6 +.word 0x2d640000 +glabel aS_2 +.word 0x2d730000 +glabel aJ +.word 0x2d6a0000 +.text +glabel check_boot_switches +/* 00B1C0 7000A5C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00B1C4 7000A5C4 AFB1001C */ sw $s1, 0x1c($sp) +/* 00B1C8 7000A5C8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00B1CC 7000A5CC 3C1100FF */ lui $s1, 0xff +/* 00B1D0 7000A5D0 AFB20020 */ sw $s2, 0x20($sp) +/* 00B1D4 7000A5D4 AFB00018 */ sw $s0, 0x18($sp) +/* 00B1D8 7000A5D8 AFA00028 */ sw $zero, 0x28($sp) +/* 00B1DC 7000A5DC 0C0033AA */ jal rmon_debug_is_final_build +/* 00B1E0 7000A5E0 3631B000 */ ori $s1, $s1, 0xb000 +/* 00B1E4 7000A5E4 10400004 */ beqz $v0, .L7000A5F8 +/* 00B1E8 7000A5E8 3C108006 */ lui $s0, %hi(boot_token_from_indy) +/* 00B1EC 7000A5EC 3C018006 */ lui $at, %hi(boot_token_from_indy) +/* 00B1F0 7000A5F0 1000000A */ b .L7000A61C +/* 00B1F4 7000A5F4 AC204C30 */ sw $zero, %lo(boot_token_from_indy)($at) +.L7000A5F8: +/* 00B1F8 7000A5F8 3C128006 */ lui $s2, %hi(piCmdBuf) +/* 00B1FC 7000A5FC 26524EB0 */ addiu $s2, %lo(piCmdBuf) # addiu $s2, $s2, 0x4eb0 +/* 00B200 7000A600 26104C30 */ addiu $s0, %lo(boot_token_from_indy) # addiu $s0, $s0, 0x4c30 +.L7000A604: +/* 00B204 7000A604 02202025 */ move $a0, $s1 +/* 00B208 7000A608 0C004E04 */ jal osPiReadIo +/* 00B20C 7000A60C 02002825 */ move $a1, $s0 +/* 00B210 7000A610 26100004 */ addiu $s0, $s0, 4 +/* 00B214 7000A614 1612FFFB */ bne $s0, $s2, .L7000A604 +/* 00B218 7000A618 26310004 */ addiu $s1, $s1, 4 +.L7000A61C: +/* 00B21C 7000A61C 3C048006 */ lui $a0, %hi(boot_token_from_indy) +/* 00B220 7000A620 0C00293C */ jal check_string_something +/* 00B224 7000A624 24844C30 */ addiu $a0, %lo(boot_token_from_indy) # addiu $a0, $a0, 0x4c30 +/* 00B228 7000A628 3C058003 */ lui $a1, %hi(aD_6) +/* 00B22C 7000A62C 24A591F4 */ addiu $a1, %lo(aD_6) # addiu $a1, $a1, -0x6e0c +/* 00B230 7000A630 0C0029A8 */ jal check_token +/* 00B234 7000A634 24040001 */ li $a0, 1 +/* 00B238 7000A638 10400003 */ beqz $v0, .L7000A648 +/* 00B23C 7000A63C 24040001 */ li $a0, 1 +/* 00B240 7000A640 240E0001 */ li $t6, 1 +/* 00B244 7000A644 AFAE0028 */ sw $t6, 0x28($sp) +.L7000A648: +/* 00B248 7000A648 3C058003 */ lui $a1, %hi(aS_2) +/* 00B24C 7000A64C 0C0029A8 */ jal check_token +/* 00B250 7000A650 24A591F8 */ addiu $a1, %lo(aS_2) # addiu $a1, $a1, -0x6e08 +/* 00B254 7000A654 10400004 */ beqz $v0, .L7000A668 +/* 00B258 7000A658 24040001 */ li $a0, 1 +/* 00B25C 7000A65C 240F0001 */ li $t7, 1 +/* 00B260 7000A660 3C018002 */ lui $at, %hi(bootswitch_sound) +/* 00B264 7000A664 A02F43F8 */ sb $t7, %lo(bootswitch_sound)($at) +.L7000A668: +/* 00B268 7000A668 3C058003 */ lui $a1, %hi(aJ) +/* 00B26C 7000A66C 0C0029A8 */ jal check_token +/* 00B270 7000A670 24A591FC */ addiu $a1, %lo(aJ) # addiu $a1, $a1, -0x6e04 +/* 00B274 7000A674 10400003 */ beqz $v0, .L7000A684 +/* 00B278 7000A678 24180001 */ li $t8, 1 +/* 00B27C 7000A67C 3C018005 */ lui $at, %hi(j_text_trigger) +/* 00B280 7000A680 AC3884D0 */ sw $t8, %lo(j_text_trigger)($at) +.L7000A684: +/* 00B284 7000A684 8FBF0024 */ lw $ra, 0x24($sp) +/* 00B288 7000A688 8FA20028 */ lw $v0, 0x28($sp) +/* 00B28C 7000A68C 8FB00018 */ lw $s0, 0x18($sp) +/* 00B290 7000A690 8FB1001C */ lw $s1, 0x1c($sp) +/* 00B294 7000A694 8FB20020 */ lw $s2, 0x20($sp) +/* 00B298 7000A698 03E00008 */ jr $ra +/* 00B29C 7000A69C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +s32 check_token(s32 arg0, s32 arg1) +{ + s32 temp_s1; + s32 temp_s2; + s32 temp_s3; + void *phi_s0; + s32 phi_s2; + s32 phi_s1; + + temp_s3 = strlen(arg1); + if (strstr_numstings >= 2) + { + phi_s0 = &D_80024478; + phi_s2 = arg0; + phi_s1 = 1; +loop_2: + phi_s2 = phi_s2; + if (string_related(arg1, *phi_s0, temp_s3) == 0) + { + temp_s2 = phi_s2 + -1; + phi_s2 = temp_s2; + if (temp_s2 == 0) + { + return *phi_s0 + temp_s3; + } + } + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 4; + phi_s1 = temp_s1; + if (temp_s1 < strstr_numstings) + { + goto loop_2; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel check_token +/* 00B2A0 7000A6A0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00B2A4 7000A6A4 AFB2001C */ sw $s2, 0x1c($sp) +/* 00B2A8 7000A6A8 00809025 */ move $s2, $a0 +/* 00B2AC 7000A6AC AFBF002C */ sw $ra, 0x2c($sp) +/* 00B2B0 7000A6B0 AFB40024 */ sw $s4, 0x24($sp) +/* 00B2B4 7000A6B4 00A0A025 */ move $s4, $a1 +/* 00B2B8 7000A6B8 AFB50028 */ sw $s5, 0x28($sp) +/* 00B2BC 7000A6BC AFB30020 */ sw $s3, 0x20($sp) +/* 00B2C0 7000A6C0 AFB10018 */ sw $s1, 0x18($sp) +/* 00B2C4 7000A6C4 AFB00014 */ sw $s0, 0x14($sp) +/* 00B2C8 7000A6C8 0C004E1F */ jal strlen +/* 00B2CC 7000A6CC 00A02025 */ move $a0, $a1 +/* 00B2D0 7000A6D0 3C158002 */ lui $s5, %hi(strstr_numstings) +/* 00B2D4 7000A6D4 26B54470 */ addiu $s5, %lo(strstr_numstings) # addiu $s5, $s5, 0x4470 +/* 00B2D8 7000A6D8 8EAE0000 */ lw $t6, ($s5) +/* 00B2DC 7000A6DC 00409825 */ move $s3, $v0 +/* 00B2E0 7000A6E0 24110001 */ li $s1, 1 +/* 00B2E4 7000A6E4 29C10002 */ slti $at, $t6, 2 +/* 00B2E8 7000A6E8 14200014 */ bnez $at, .L7000A73C +/* 00B2EC 7000A6EC 3C108002 */ lui $s0, %hi(D_80024478) +/* 00B2F0 7000A6F0 26104478 */ addiu $s0, %lo(D_80024478) # addiu $s0, $s0, 0x4478 +/* 00B2F4 7000A6F4 02802025 */ move $a0, $s4 +.L7000A6F8: +/* 00B2F8 7000A6F8 8E050000 */ lw $a1, ($s0) +/* 00B2FC 7000A6FC 0C002A26 */ jal string_related +/* 00B300 7000A700 02603025 */ move $a2, $s3 +/* 00B304 7000A704 54400008 */ bnezl $v0, .L7000A728 +/* 00B308 7000A708 8EB80000 */ lw $t8, ($s5) +/* 00B30C 7000A70C 2652FFFF */ addiu $s2, $s2, -1 +/* 00B310 7000A710 56400005 */ bnezl $s2, .L7000A728 +/* 00B314 7000A714 8EB80000 */ lw $t8, ($s5) +/* 00B318 7000A718 8E0F0000 */ lw $t7, ($s0) +/* 00B31C 7000A71C 10000008 */ b .L7000A740 +/* 00B320 7000A720 01F31021 */ addu $v0, $t7, $s3 +/* 00B324 7000A724 8EB80000 */ lw $t8, ($s5) +.L7000A728: +/* 00B328 7000A728 26310001 */ addiu $s1, $s1, 1 +/* 00B32C 7000A72C 26100004 */ addiu $s0, $s0, 4 +/* 00B330 7000A730 0238082A */ slt $at, $s1, $t8 +/* 00B334 7000A734 5420FFF0 */ bnezl $at, .L7000A6F8 +/* 00B338 7000A738 02802025 */ move $a0, $s4 +.L7000A73C: +/* 00B33C 7000A73C 00001025 */ move $v0, $zero +.L7000A740: +/* 00B340 7000A740 8FBF002C */ lw $ra, 0x2c($sp) +/* 00B344 7000A744 8FB00014 */ lw $s0, 0x14($sp) +/* 00B348 7000A748 8FB10018 */ lw $s1, 0x18($sp) +/* 00B34C 7000A74C 8FB2001C */ lw $s2, 0x1c($sp) +/* 00B350 7000A750 8FB30020 */ lw $s3, 0x20($sp) +/* 00B354 7000A754 8FB40024 */ lw $s4, 0x24($sp) +/* 00B358 7000A758 8FB50028 */ lw $s5, 0x28($sp) +/* 00B35C 7000A75C 03E00008 */ jr $ra +/* 00B360 7000A760 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + diff --git a/src/vi.c b/src/vi.c new file mode 100644 index 0000000..f660d1d --- /dev/null +++ b/src/vi.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "gbi.h" + +OSMesg vi_c_debug_MSG[0x8]; +OSMesgQueue vi_c_debug_MQ; + +/* wtf is this, should it be split? is it part of debugmenu.? */ +u32 viDebugNoticeList[] = +{ + 0, 0, 0, + 0, 0, 0 +}; + +//80024518 +u32 viDLEnd[] = { + 0xB8000000,0x00000000, +}; +//Gfx viDLEnd[] = { +// gsSPEndDisplayList() +//}; + + + +void viDebugRemoved(void) { + return; +} + +void viInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&viDebugNoticeList, "vi_c_debug"); + osCreateMesgQueue(&vi_c_debug_MQ, &vi_c_debug_MSG, 8); +} + + + + diff --git a/src/vi.h b/src/vi.h new file mode 100644 index 0000000..f813258 --- /dev/null +++ b/src/vi.h @@ -0,0 +1,13 @@ +#ifndef _VI_H_ +#define _VI_H_ +#include "ultra64.h" + +extern OSMesg vi_c_debug_MSG[0x8]; +extern OSMesgQueue vi_c_debug_MQ; + +extern u32 viDLEnd[]; + +void viDebugRemoved(void); +void viInitDebugNoticeList(void); + +#endif diff --git a/src/video.c b/src/video.c new file mode 100644 index 0000000..69266bc --- /dev/null +++ b/src/video.c @@ -0,0 +1,3172 @@ +//FIXME i still need all sorts of love +#include "ultra64.h" +#include "vi.h" +#include "video.h" +#include "bondgame.h" + +/** + * @file video.c + * This file contains video handling code. + */ + + +//data +u32 D_80023240 = 0; +struct video_settings video1_settings = {0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, 320, 240, 320, 240, 0, 0, 1, 0}; +struct video_settings video2_settings = {0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, 320, 240, 320, 240, 0, 0, 1, 0}; +s32 D_8002329C = 0; +s32 D_800232A0 = 0; +video_settings * ptr_video_settings1 = &video1_settings; +video_settings * ptr_video_settings2 = &video1_settings; +s32 coloroutputmode = 1; +s32 D_800232B0 = 1; +s32 D_800232B4 = 0; +s32 D_800232B8 = 0; +s32 D_800232BC = 3; +s32 D_800232C0 = 0; +s32 jpg_16bit_grabnum = 1; +s32 jpg_32bit_grabnum = 1; +s32 rgb_16bit_grabnum = 1; +s32 rgb_32bit_grabnum = 1; + +//rodata + + + + + + + +//bss +char dword_CODE_bss_800607E0[0x40]; +Mtx *m; +u16 word_CODE_bss_80060824; +char dword_CODE_bss_80060828[0x50]; +u8 off_CODE_bss_80060878; +u8 off_CODE_bss_80060879; +//struct osViMode viMode; +s32 viMode; +s32 dword_CODE_bss_80060880; +s32 dword_CODE_bss_80060884; +s32 dword_CODE_bss_80060888; +s32 dword_CODE_bss_8006088C; +char dword_CODE_bss_80060890[0x400];//CC[0x3C4]; + //90[0x400]; +/** + * 3C60 70003060 + */ +#ifdef NONMATCHING +void init_video_settings(void) +{ + video1_settings.frameb = cfb_16_a; + D_8002329C = 0; + D_800232A0 = 0; + ptr_video_settings1 = &video1_settings; + ptr_video_settings2 = &video2_settings; + off_CODE_bss_80060878 = 0; + off_CODE_bss_80060879 = 1; + video2_settings.frameb = cfb_16_b; +} +#else +GLOBAL_ASM( +.text +glabel init_video_settings +/* 003C60 70003060 2408002C */ li $t0, 44 +/* 003C64 70003064 300200FF */ andi $v0, $zero, 0xff +/* 003C68 70003068 00480019 */ multu $v0, $t0 +/* 003C6C 7000306C 0002C880 */ sll $t9, $v0, 2 +/* 003C70 70003070 0322C821 */ addu $t9, $t9, $v0 +/* 003C74 70003074 0019C880 */ sll $t9, $t9, 2 +/* 003C78 70003078 0322C823 */ subu $t9, $t9, $v0 +/* 003C7C 7000307C 3C078002 */ lui $a3, %hi(video1_settings) +/* 003C80 70003080 0019C880 */ sll $t9, $t9, 2 +/* 003C84 70003084 24E73244 */ addiu $a3, %lo(video1_settings) # addiu $a3, $a3, 0x3244 +/* 003C88 70003088 3C048006 */ lui $a0, %hi(off_CODE_bss_80060878) +/* 003C8C 7000308C 3C058006 */ lui $a1, %hi(off_CODE_bss_80060879) +/* 003C90 70003090 00007812 */ mflo $t7 +/* 003C94 70003094 3C068002 */ lui $a2, %hi(ptr_video_settings1) +/* 003C98 70003098 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 003C9C 7000309C 0322C823 */ subu $t9, $t9, $v0 +/* 003CA0 700030A0 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 003CA4 700030A4 24C632A4 */ addiu $a2, %lo(ptr_video_settings1) # addiu $a2, $a2, 0x32a4 +/* 003CA8 700030A8 24A50879 */ addiu $a1, %lo(off_CODE_bss_80060879) # addiu $a1, $a1, 0x879 +/* 003CAC 700030AC 24840878 */ addiu $a0, %lo(off_CODE_bss_80060878) # addiu $a0, $a0, 0x878 +/* 003CB0 700030B0 240E0001 */ li $t6, 1 +/* 003CB4 700030B4 00EFC021 */ addu $t8, $a3, $t7 +/* 003CB8 700030B8 0019CAC0 */ sll $t9, $t9, 0xb +/* 003CBC 700030BC A0800000 */ sb $zero, ($a0) +/* 003CC0 700030C0 A0AE0000 */ sb $t6, ($a1) +/* 003CC4 700030C4 ACD80000 */ sw $t8, ($a2) +/* 003CC8 700030C8 01395821 */ addu $t3, $t1, $t9 +/* 003CCC 700030CC AF0B0028 */ sw $t3, 0x28($t8) +/* 003CD0 700030D0 90A30000 */ lbu $v1, ($a1) +/* 003CD4 700030D4 3C0A8002 */ lui $t2, %hi(ptr_video_settings2) +/* 003CD8 700030D8 254A32A8 */ addiu $t2, %lo(ptr_video_settings2) # addiu $t2, $t2, 0x32a8 +/* 003CDC 700030DC 00680019 */ multu $v1, $t0 +/* 003CE0 700030E0 00037880 */ sll $t7, $v1, 2 +/* 003CE4 700030E4 01E37821 */ addu $t7, $t7, $v1 +/* 003CE8 700030E8 000F7880 */ sll $t7, $t7, 2 +/* 003CEC 700030EC 01E37823 */ subu $t7, $t7, $v1 +/* 003CF0 700030F0 000F7880 */ sll $t7, $t7, 2 +/* 003CF4 700030F4 01E37823 */ subu $t7, $t7, $v1 +/* 003CF8 700030F8 000F7AC0 */ sll $t7, $t7, 0xb +/* 003CFC 700030FC 012FC021 */ addu $t8, $t1, $t7 +/* 003D00 70003100 3C018002 */ lui $at, %hi(D_8002329C) +/* 003D04 70003104 00006812 */ mflo $t5 +/* 003D08 70003108 00ED7021 */ addu $t6, $a3, $t5 +/* 003D0C 7000310C AD4E0000 */ sw $t6, ($t2) +/* 003D10 70003110 ADD80028 */ sw $t8, 0x28($t6) +/* 003D14 70003114 AC20329C */ sw $zero, %lo(D_8002329C)($at) +/* 003D18 70003118 3C018002 */ lui $at, %hi(D_800232A0) +/* 003D1C 7000311C 03E00008 */ jr $ra +/* 003D20 70003120 AC2032A0 */ sw $zero, %lo(D_800232A0)($at) +) +#endif + + + +/** + * 3D24 70003124 initialize both video buffers + */ +#ifdef NONMATCHING +void init_both_video_buffers(void) +{ + s32 i; + + remove_viewport_buffer(); + for (i = 0; i != 0x25800; i += 4) + { + cfb_16_a[i] = 0; + cfb_16_b[i] = 0; + cfb_16_a[i + 1] = 0; + cfb_16_b[i + 1] = 0; + cfb_16_a[i + 2] = 0; + cfb_16_b[i + 2] = 0; + cfb_16_a[i + 3] = 0; + cfb_16_b[i + 3] = 0; + }; +} +#else +GLOBAL_ASM( +.text +glabel init_both_video_buffers +/* 003D24 70003124 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003D28 70003128 AFBF0014 */ sw $ra, 0x14($sp) +/* 003D2C 7000312C 0FC348E0 */ jal remove_viewport_buffer +/* 003D30 70003130 00000000 */ nop +/* 003D34 70003134 3C070002 */ lui $a3, (0x00025800 >> 16) # lui $a3, 2 +/* 003D38 70003138 3C06803E */ lui $a2, %hi(cfb_16_b) # $a2, 0x803e +/* 003D3C 7000313C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 003D40 70003140 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 003D44 70003144 24C6A800 */ addiu $a2, %lo(cfb_16_b) # addiu $a2, $a2, -0x5800 +/* 003D48 70003148 34E75800 */ ori $a3, (0x00025800 & 0xFFFF) # ori $a3, $a3, 0x5800 +/* 003D4C 7000314C 00002025 */ move $a0, $zero +.L70003150: +/* 003D50 70003150 00A41021 */ addu $v0, $a1, $a0 +/* 003D54 70003154 A0400000 */ sb $zero, ($v0) +/* 003D58 70003158 00C41821 */ addu $v1, $a2, $a0 +/* 003D5C 7000315C A0600000 */ sb $zero, ($v1) +/* 003D60 70003160 A0400001 */ sb $zero, 1($v0) +/* 003D64 70003164 A0600001 */ sb $zero, 1($v1) +/* 003D68 70003168 A0400002 */ sb $zero, 2($v0) +/* 003D6C 7000316C A0600002 */ sb $zero, 2($v1) +/* 003D70 70003170 A0400003 */ sb $zero, 3($v0) +/* 003D74 70003174 24840004 */ addiu $a0, $a0, 4 +/* 003D78 70003178 1487FFF5 */ bne $a0, $a3, .L70003150 +/* 003D7C 7000317C A0600003 */ sb $zero, 3($v1) +/* 003D80 70003180 8FBF0014 */ lw $ra, 0x14($sp) +/* 003D84 70003184 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003D88 70003188 03E00008 */ jr $ra +/* 003D8C 7000318C 00000000 */ nop +) +#endif + +/** + * 3D90 70003190 ???; 2->800232BC + */ +#ifdef NONMATCHING +void video_related_6(s32 arg0) +{ + D_800232BC = (s32) (arg0 + 2); +} +#else +GLOBAL_ASM( +.text +glabel video_related_6 +/* 003D90 70003190 24840002 */ addiu $a0, $a0, 2 +/* 003D94 70003194 3C018002 */ lui $at, %hi(D_800232BC) +/* 003D98 70003198 03E00008 */ jr $ra +/* 003D9C 7000319C AC2432BC */ sw $a0, %lo(D_800232BC)($at) +) +#endif + +/** + * 3DA0 700031A0 + */ +#ifdef NONMATCHING +void *video_related_7(void) +{ + s32 temp_lo; + s32 temp_t6; + + if (D_800232B8 != 0) + { + temp_t6 = D_800232B8 + -1; + D_800232B8 = temp_t6; + if (temp_t6 == 0) + { + D_800232B4 = 0; + } + } + temp_lo = D_800232B0 * D_800232B4; + viMode->OSViCommonRegs.hstart /*unk30*/ = (s32) (((((s32) viMode+0x8 >> 0x10) + temp_lo) << 0x10) | ((viMode+0x8 + temp_lo) & 0xffff)); + viMode->OSViFieldRegs[0].origin /*unk44*/ = (s32) (((((s32) viMode+0xC >> 0x10) + temp_lo) << 0x10) | ((viMode+0xC + temp_lo) & 0xffff)); + osViSetMode(viMode, &viMode); + osViBlack(*(D_800232BC + 3)); + if (D_800232BC != 0) + { + if (D_800232BC < 3) + { + D_800232BC = (s32) (D_800232BC + -1); + } + } + osViSetSpecialFeatures(0x42); + D_800232B0 = (s32) -(s32) D_800232B0; + return &D_800232B0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_7 +/* 003DA0 700031A0 3C038002 */ lui $v1, %hi(D_800232B8) +/* 003DA4 700031A4 246332B8 */ addiu $v1, %lo(D_800232B8) # addiu $v1, $v1, 0x32b8 +/* 003DA8 700031A8 8C620000 */ lw $v0, ($v1) +/* 003DAC 700031AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003DB0 700031B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 003DB4 700031B4 10400006 */ beqz $v0, .L700031D0 +/* 003DB8 700031B8 3C188002 */ lui $t8, %hi(D_800232B0) +/* 003DBC 700031BC 244EFFFF */ addiu $t6, $v0, -1 +/* 003DC0 700031C0 15C00003 */ bnez $t6, .L700031D0 +/* 003DC4 700031C4 AC6E0000 */ sw $t6, ($v1) +/* 003DC8 700031C8 3C018002 */ lui $at, %hi(D_800232B4) +/* 003DCC 700031CC AC2032B4 */ sw $zero, %lo(D_800232B4)($at) +.L700031D0: +/* 003DD0 700031D0 3C198002 */ lui $t9, %hi(D_800232B4) +/* 003DD4 700031D4 8F3932B4 */ lw $t9, %lo(D_800232B4)($t9) +/* 003DD8 700031D8 8F1832B0 */ lw $t8, %lo(D_800232B0)($t8) +/* 003DDC 700031DC 3C028006 */ lui $v0, %hi(viMode+0x8) +/* 003DE0 700031E0 8C4D0884 */ lw $t5, %lo(viMode+0x8)($v0) +/* 003DE4 700031E4 03190019 */ multu $t8, $t9 +/* 003DE8 700031E8 3C058006 */ lui $a1, %hi(viMode) +/* 003DEC 700031EC 24A5087C */ addiu $a1, %lo(viMode) # addiu $a1, $a1, 0x87c +/* 003DF0 700031F0 000D4C03 */ sra $t1, $t5, 0x10 +/* 003DF4 700031F4 8CB90000 */ lw $t9, ($a1) +/* 003DF8 700031F8 3C028006 */ lui $v0, %hi(viMode+0xC) +/* 003DFC 700031FC 00001812 */ mflo $v1 +/* 003E00 70003200 01235821 */ addu $t3, $t1, $v1 +/* 003E04 70003204 01A37021 */ addu $t6, $t5, $v1 +/* 003E08 70003208 31CFFFFF */ andi $t7, $t6, 0xffff +/* 003E0C 7000320C 000B6400 */ sll $t4, $t3, 0x10 +/* 003E10 70003210 018FC025 */ or $t8, $t4, $t7 +/* 003E14 70003214 AF380030 */ sw $t8, 0x30($t9) +/* 003E18 70003218 8C4E0888 */ lw $t6, %lo(viMode+0xC)($v0) +/* 003E1C 7000321C 8CB90000 */ lw $t9, ($a1) +/* 003E20 70003220 000E4C03 */ sra $t1, $t6, 0x10 +/* 003E24 70003224 01235821 */ addu $t3, $t1, $v1 +/* 003E28 70003228 01C36021 */ addu $t4, $t6, $v1 +/* 003E2C 7000322C 318FFFFF */ andi $t7, $t4, 0xffff +/* 003E30 70003230 000B6C00 */ sll $t5, $t3, 0x10 +/* 003E34 70003234 01AFC025 */ or $t8, $t5, $t7 +/* 003E38 70003238 AF380044 */ sw $t8, 0x44($t9) +/* 003E3C 7000323C 0C003818 */ jal osViSetMode +/* 003E40 70003240 8CA40000 */ lw $a0, ($a1) +/* 003E44 70003244 3C048002 */ lui $a0, %hi(D_800232BC + 3) +/* 003E48 70003248 0C0038B4 */ jal osViBlack +/* 003E4C 7000324C 908432BF */ lbu $a0, %lo(D_800232BC + 3)($a0) +/* 003E50 70003250 3C038002 */ lui $v1, %hi(D_800232BC) +/* 003E54 70003254 246332BC */ addiu $v1, %lo(D_800232BC) # addiu $v1, $v1, 0x32bc +/* 003E58 70003258 8C620000 */ lw $v0, ($v1) +/* 003E5C 7000325C 10400004 */ beqz $v0, .L70003270 +/* 003E60 70003260 28410003 */ slti $at, $v0, 3 +/* 003E64 70003264 10200002 */ beqz $at, .L70003270 +/* 003E68 70003268 2448FFFF */ addiu $t0, $v0, -1 +/* 003E6C 7000326C AC680000 */ sw $t0, ($v1) +.L70003270: +/* 003E70 70003270 0C003DEC */ jal osViSetSpecialFeatures +/* 003E74 70003274 24040042 */ li $a0, 66 +/* 003E78 70003278 3C028002 */ lui $v0, %hi(D_800232B0) +/* 003E7C 7000327C 244232B0 */ addiu $v0, %lo(D_800232B0) # addiu $v0, $v0, 0x32b0 +/* 003E80 70003280 8C490000 */ lw $t1, ($v0) +/* 003E84 70003284 8FBF0014 */ lw $ra, 0x14($sp) +/* 003E88 70003288 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003E8C 7000328C 00095023 */ negu $t2, $t1 +/* 003E90 70003290 03E00008 */ jr $ra +/* 003E94 70003294 AC4A0000 */ sw $t2, ($v0) +) +#endif + + + +/** + * 3E98 70003298 + */ +#ifdef NONMATCHING +void video_related_8(void) +{ + void *temp_v0; + void *temp_t7; + void *temp_t6; + void *temp_t9; + void *temp_t8; + void *temp_t9_2; + void *temp_t6_2; + void *temp_t7_2; + void *temp_t8_2; + s32 temp_t1; + void *temp_v1; + void *temp_t8_3; + void *temp_t7_3; + void *temp_v1_2; + void *temp_t8_4; + void *temp_t6_3; + void *temp_v1_3; + void *temp_t6_4; + void *temp_t8_5; + void *temp_v1_4; + void *temp_t6_5; + void *temp_t9_3; + s32 temp_v0_2; + s32 temp_a0; + s32 temp_v0_3; + s32 temp_a0_2; + s32 temp_v0_4; + s32 temp_a0_3; + s32 temp_t2; + s32 temp_t9_4; + s32 temp_t7_4; + s32 temp_t8_6; + s8 temp_t6_6; + s8 temp_t7_5; + s32 temp_a1; + void *phi_t7; + void *phi_t6; + void *phi_t9; + void *phi_t8; + void *phi_t9_2; + void *phi_t6_2; + void *phi_t7_2; + void *phi_t8_2; + f32 phi_f0; + void *phi_t8_3; + void *phi_t7_3; + void *phi_t8_4; + void *phi_t6_3; + void *phi_t6_4; + void *phi_t8_5; + void *phi_t6_5; + void *phi_t9_3; + void *phi_v1; + s32 phi_t9_4; + s8 phi_t6_6; + s8 phi_t7_4; + + if (*ptr_video_settings2 != *ptr_video_settings1) + { + if (*ptr_video_settings2 != 0) + { + if (*ptr_video_settings2 != 1) + { + if (*ptr_video_settings2 != 2) + { + + } + else + { + if ((void *)0x80000000->unk300 == 2) + { + viMode = &osViModeTable_osViModeMpalHaf1; + } + else + { + viMode = &osViModeTable_osViModeNtscHaf1; + } + temp_v0 = *&viMode; + viMode+0x4 = (s32) temp_v0->unk1C; + viMode+0x8 = (s32) temp_v0->OSViCommonRegs.hstart/*unk30*/; + viMode+0xC = (s32) temp_v0->OSViFieldRegs[0].origin/*unk44*/; + osViBlack(0); + } + } + else + { + if (coloroutputmode != 0) + { + if (osTvType == 2) + { + phi_t7 = &osViModeTable_osViModeMpalLan1; + phi_t6 = &dword_CODE_bss_80060828; +block_9: + temp_t7 = (phi_t7 + 0xc); + temp_t6 = (phi_t6 + 0xc); + temp_t6->unk-C = (?32) *phi_t7; + temp_t6->unk-8 = (?32) temp_t7->unk-8; + temp_t6->unk-4 = (?32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t6 = temp_t6; + if (temp_t7 != (&osViModeTable_osViModeMpalLan1 + 0x48)) + { + goto block_9; + } + *temp_t6 = (?32) *temp_t7; + temp_t6->unk4 = (?32) temp_t7->unk4; + } + else + { + phi_t9 = &osViModeTable_osViModeNtscLan1; + phi_t8 = &dword_CODE_bss_80060828; +block_12: + temp_t9 = (phi_t9 + 0xc); + temp_t8 = (phi_t8 + 0xc); + temp_t8->unk-C = (?32) *phi_t9; + temp_t8->unk-8 = (?32) temp_t9->unk-8; + temp_t8->unk-4 = (?32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&osViModeTable_osViModeNtscLan1 + 0x48)) + { + goto block_12; + } + *temp_t8 = (?32) *temp_t9; + temp_t8->unk4 = (?32) temp_t9->unk4; + } + } + else + { + if ((void *)0x80000000->unk300 == 2) + { + phi_t9_2 = &osViModeTable_osViModeMpalLan2; + phi_t6_2 = &dword_CODE_bss_80060828; +block_16: + temp_t9_2 = (phi_t9_2 + 0xc); + temp_t6_2 = (phi_t6_2 + 0xc); + temp_t6_2->unk-C = (?32) *phi_t9_2; + temp_t6_2->unk-8 = (?32) temp_t9_2->unk-8; + temp_t6_2->unk-4 = (?32) temp_t9_2->unk-4; + phi_t9_2 = temp_t9_2; + phi_t6_2 = temp_t6_2; + if (temp_t9_2 != (&osViModeTable_osViModeMpalLan2 + 0x48)) + { + goto block_16; + } + *temp_t6_2 = (?32) *temp_t9_2; + temp_t6_2->unk4 = (?32) temp_t9_2->unk4; + } + else + { + phi_t7_2 = &osViModeTable_osViModeNtscLan2; + phi_t8_2 = &dword_CODE_bss_80060828; +block_19: + temp_t7_2 = (phi_t7_2 + 0xc); + temp_t8_2 = (phi_t8_2 + 0xc); + temp_t8_2->unk-C = (?32) *phi_t7_2; + temp_t8_2->unk-8 = (?32) temp_t7_2->unk-8; + temp_t8_2->unk-4 = (?32) temp_t7_2->unk-4; + phi_t7_2 = temp_t7_2; + phi_t8_2 = temp_t8_2; + if (temp_t7_2 != (&osViModeTable_osViModeNtscLan2 + 0x48)) + { + goto block_19; + } + *temp_t8_2 = (?32) *temp_t7_2; + temp_t8_2->unk4 = (?32) temp_t7_2->unk4; + } + } + viMode = &dword_CODE_bss_80060828; + viMode+0x4 = (s32) dword_CODE_bss_80060828.unk1C; + viMode+0x8 = (s32) dword_CODE_bss_80060828.unk30; + viMode+0xC = (s32) dword_CODE_bss_80060828.unk44; + video_related_6(0); + } + } + else + { + osViSetYScale(0x3f800000); + osViBlack(1); + } + osViSetSpecialFeatures(0x42); + } + phi_f0 = ((f32) ptr_video_settings2->unk6 / (f32) ptr_video_settings2->unk1A); + if (*ptr_video_settings2 == 0) + { + phi_f0 = 1.0f; + } + temp_t1 = (D_800232C0 * 4); + (0x80020000 + temp_t1)->unk30B4 = (f32) ((f32) ptr_video_settings2->unk4 / (f32) ptr_video_settings2->unk18); + (0x80020000 + temp_t1)->unk30BC = (f32) phi_f0; + if (*ptr_video_settings2 == 1) + { + (0x80060000 + temp_t1)->unk-2420 = &dword_CODE_bss_80060828; + if (coloroutputmode != 0) + { + if (osTvType == 2) + { + temp_v1 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8_3 = &osViModeTable_osViModeMpalLan1; + phi_t7_3 = temp_v1; +block_33: + temp_t8_3 = (phi_t8_3 + 0xc); + temp_t7_3 = (phi_t7_3 + 0xc); + temp_t7_3->unk-C = (?32) *phi_t8_3; + temp_t7_3->unk-8 = (?32) temp_t8_3->unk-8; + temp_t7_3->unk-4 = (?32) temp_t8_3->unk-4; + phi_t8_3 = temp_t8_3; + phi_t7_3 = temp_t7_3; + if (temp_t8_3 != (&osViModeTable_osViModeMpalLan1 + 0x48)) + { + goto block_33; + } + *temp_t7_3 = (?32) *temp_t8_3; + temp_t7_3->unk4 = (?32) temp_t8_3->unk4; + phi_v1 = temp_v1; + } + else + { + temp_v1_2 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8_4 = &osViModeTable_osViModeNtscLan1; + phi_t6_3 = temp_v1_2; +block_36: + temp_t8_4 = (phi_t8_4 + 0xc); + temp_t6_3 = (phi_t6_3 + 0xc); + temp_t6_3->unk-C = (?32) *phi_t8_4; + temp_t6_3->unk-8 = (?32) temp_t8_4->unk-8; + temp_t6_3->unk-4 = (?32) temp_t8_4->unk-4; + phi_t8_4 = temp_t8_4; + phi_t6_3 = temp_t6_3; + if (temp_t8_4 != (&osViModeTable_osViModeNtscLan1 + 0x48)) + { + goto block_36; + } + *temp_t6_3 = (?32) *temp_t8_4; + temp_t6_3->unk4 = (?32) temp_t8_4->unk4; + phi_v1 = temp_v1_2; + } + } + else + { + if (osTvType == 2) + { + temp_v1_3 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t6_4 = &osViModeTable_osViModeMpalLan2; + phi_t8_5 = temp_v1_3; +block_40: + temp_t6_4 = (phi_t6_4 + 0xc); + temp_t8_5 = (phi_t8_5 + 0xc); + temp_t8_5->unk-C = (?32) *phi_t6_4; + temp_t8_5->unk-8 = (?32) temp_t6_4->unk-8; + temp_t8_5->unk-4 = (?32) temp_t6_4->unk-4; + phi_t6_4 = temp_t6_4; + phi_t8_5 = temp_t8_5; + if (temp_t6_4 != (&osViModeTable_osViModeMpalLan2 + 0x48)) + { + goto block_40; + } + *temp_t8_5 = (?32) *temp_t6_4; + temp_t8_5->unk4 = (?32) temp_t6_4->unk4; + phi_v1 = temp_v1_3; + } + else + { + temp_v1_4 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t6_5 = &osViModeTable_osViModeNtscLan2; + phi_t9_3 = temp_v1_4; +block_43: + temp_t6_5 = (phi_t6_5 + 0xc); + temp_t9_3 = (phi_t9_3 + 0xc); + temp_t9_3->unk-C = (?32) *phi_t6_5; + temp_t9_3->unk-8 = (?32) temp_t6_5->unk-8; + temp_t9_3->unk-4 = (?32) temp_t6_5->unk-4; + phi_t6_5 = temp_t6_5; + phi_t9_3 = temp_t9_3; + if (temp_t6_5 != (&osViModeTable_osViModeNtscLan2 + 0x48)) + { + goto block_43; + } + *temp_t9_3 = (?32) *temp_t6_5; + temp_t9_3->unk4 = (?32) temp_t6_5->unk4; + phi_v1 = temp_v1_4; + } + } + phi_v1->unk8 = (s32) ptr_video_settings2->unk18; + temp_v0_2 = phi_v1->unk1C; + phi_v1->unk20 = (s32) ((s32) (ptr_video_settings2->unk18 << 0xa) / 0x280); + phi_v1->unk2C = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); + phi_v1->unk40 = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); + phi_v1->unk28 = (s32) (ptr_video_settings2->unk18 * 2); + phi_v1->unk3C = (s32) (ptr_video_settings2->unk18 * 2); + temp_a0 = ((((s32) (((temp_v0_2 >> 0x10) & 0xffff) + D_8002329C) % 0xffff) << 0x10) | ((s32) ((temp_v0_2 & 0xffff) + D_8002329C) % 0xffff)); + phi_v1->unk1C = temp_a0; + viMode+0x4 = temp_a0; + temp_v0_3 = phi_v1->unk30; + temp_a0_2 = ((((s32) (((temp_v0_3 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_3 & 0xffff) + D_800232A0) % 0xffff)); + phi_v1->unk30 = temp_a0_2; + viMode+0x8 = temp_a0_2; + temp_v0_4 = phi_v1->unk44; + temp_a0_3 = ((((s32) (((temp_v0_4 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_4 & 0xffff) + D_800232A0) % 0xffff)); + phi_v1->unk44 = temp_a0_3; + viMode+0xC = temp_a0_3; + (0x80020000 + temp_t1)->unk30C4 = 1; + } + else + { + (0x80020000 + temp_t1)->unk30C4 = 0; + } + temp_t2 = (D_800232C0 + 1); + temp_t9_4 = (temp_t2 & 1); + phi_t9_4 = temp_t9_4; + if (temp_t2 < 0) + { + phi_t9_4 = temp_t9_4; + if (temp_t9_4 != 0) + { + phi_t9_4 = (temp_t9_4 + -2); + } + } + D_800232C0 = (s32) phi_t9_4; + if (coloroutputmode != 0) + { + fast3d_related_array->unk58 = (void *) ptr_video_settings2->frameb; + } + else + { + fast3d_related_array->unk58 = &cfb_16_a; + } + temp_t7_4 = (off_CODE_bss_80060878 + 1); + temp_t8_6 = (off_CODE_bss_80060879 + 1); + temp_t6_6 = (temp_t7_4 & 1); + phi_t6_6 = temp_t6_6; + if (temp_t7_4 < 0) + { + phi_t6_6 = temp_t6_6; + if (temp_t6_6 != 0) + { + phi_t6_6 = (temp_t6_6 + -2); + } + } + off_CODE_bss_80060878 = (s8) phi_t6_6; + temp_t7_5 = (temp_t8_6 & 1); + phi_t7_4 = temp_t7_5; + if (temp_t8_6 < 0) + { + phi_t7_4 = temp_t7_5; + if (temp_t7_5 != 0) + { + phi_t7_4 = (temp_t7_5 + -2); + } + } + off_CODE_bss_80060879 = (s8) phi_t7_4; + ptr_video_settings1 = (void *) (&video1_settings + (off_CODE_bss_80060878 * 0x2c)); + temp_a1 = (&video1_settings + (off_CODE_bss_80060879 * 0x2c)); + *&ptr_video_settings2 = temp_a1; + bcopy(*&ptr_video_settings2, temp_a1, 0x2c, &video1_settings); + ptr_video_settings2->frameb = (s32) ((off_CODE_bss_80060879 * 0x25800) + &cfb_16_a); +} +#else +GLOBAL_ASM( +.text +glabel video_related_8 +/* 003E98 70003298 3C0D8002 */ lui $t5, %hi(ptr_video_settings2) +/* 003E9C 7000329C 25AD32A8 */ addiu $t5, %lo(ptr_video_settings2) # addiu $t5, $t5, 0x32a8 +/* 003EA0 700032A0 3C0E8002 */ lui $t6, %hi(ptr_video_settings1) +/* 003EA4 700032A4 8DCE32A4 */ lw $t6, %lo(ptr_video_settings1)($t6) +/* 003EA8 700032A8 8DA80000 */ lw $t0, ($t5) +/* 003EAC 700032AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003EB0 700032B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 003EB4 700032B4 91CF0000 */ lbu $t7, ($t6) +/* 003EB8 700032B8 91020000 */ lbu $v0, ($t0) +/* 003EBC 700032BC 504F009B */ beql $v0, $t7, .L7000352C +/* 003EC0 700032C0 850F0004 */ lh $t7, 4($t0) +/* 003EC4 700032C4 10400009 */ beqz $v0, .L700032EC +/* 003EC8 700032C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 003ECC 700032CC 24010001 */ li $at, 1 +/* 003ED0 700032D0 1041000D */ beq $v0, $at, .L70003308 +/* 003ED4 700032D4 3C188002 */ lui $t8, %hi(coloroutputmode) +/* 003ED8 700032D8 24010002 */ li $at, 2 +/* 003EDC 700032DC 10410071 */ beq $v0, $at, .L700034A4 +/* 003EE0 700032E0 3C198000 */ lui $t9, 0x8000 +/* 003EE4 700032E4 10000089 */ b .L7000350C +/* 003EE8 700032E8 00000000 */ nop +.L700032EC: +/* 003EEC 700032EC 44816000 */ mtc1 $at, $f12 +/* 003EF0 700032F0 0C003880 */ jal osViSetYScale +/* 003EF4 700032F4 00000000 */ nop +/* 003EF8 700032F8 0C0038B4 */ jal osViBlack +/* 003EFC 700032FC 24040001 */ li $a0, 1 +/* 003F00 70003300 10000082 */ b .L7000350C +/* 003F04 70003304 00000000 */ nop +.L70003308: +/* 003F08 70003308 8F1832AC */ lw $t8, %lo(coloroutputmode)($t8) +/* 003F0C 7000330C 3C038006 */ lui $v1, %hi(viMode) +/* 003F10 70003310 3C0F8000 */ lui $t7, 0x8000 +/* 003F14 70003314 1300002B */ beqz $t8, .L700033C4 +/* 003F18 70003318 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 003F1C 7000331C 3C198000 */ lui $t9, %hi(osTvType) +/* 003F20 70003320 8F390300 */ lw $t9, %lo(osTvType)($t9) +/* 003F24 70003324 24010002 */ li $at, 2 +/* 003F28 70003328 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 003F2C 7000332C 17210014 */ bne $t9, $at, .L70003380 +/* 003F30 70003330 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 003F34 70003334 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeMpalLan1) +/* 003F38 70003338 25EF7320 */ addiu $t7, %lo(osViModeTable_osViModeMpalLan1) # addiu $t7, $t7, 0x7320 +/* 003F3C 7000333C 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_80060828) +/* 003F40 70003340 25CE0828 */ addiu $t6, %lo(dword_CODE_bss_80060828) # addiu $t6, $t6, 0x828 +/* 003F44 70003344 25F90048 */ addiu $t9, $t7, 0x48 +.L70003348: +/* 003F48 70003348 8DE10000 */ lw $at, ($t7) +/* 003F4C 7000334C 25EF000C */ addiu $t7, $t7, 0xc +/* 003F50 70003350 25CE000C */ addiu $t6, $t6, 0xc +/* 003F54 70003354 ADC1FFF4 */ sw $at, -0xc($t6) +/* 003F58 70003358 8DE1FFF8 */ lw $at, -8($t7) +/* 003F5C 7000335C ADC1FFF8 */ sw $at, -8($t6) +/* 003F60 70003360 8DE1FFFC */ lw $at, -4($t7) +/* 003F64 70003364 15F9FFF8 */ bne $t7, $t9, .L70003348 +/* 003F68 70003368 ADC1FFFC */ sw $at, -4($t6) +/* 003F6C 7000336C 8DE10000 */ lw $at, ($t7) +/* 003F70 70003370 8DF90004 */ lw $t9, 4($t7) +/* 003F74 70003374 ADC10000 */ sw $at, ($t6) +/* 003F78 70003378 1000003A */ b .L70003464 +/* 003F7C 7000337C ADD90004 */ sw $t9, 4($t6) +.L70003380: +/* 003F80 70003380 3C198002 */ lui $t9, %hi(osViModeTable_osViModeNtscLan1) +/* 003F84 70003384 27396A60 */ addiu $t9, %lo(osViModeTable_osViModeNtscLan1) # addiu $t9, $t9, 0x6a60 +/* 003F88 70003388 272E0048 */ addiu $t6, $t9, 0x48 +.L7000338C: +/* 003F8C 7000338C 8F210000 */ lw $at, ($t9) +/* 003F90 70003390 2739000C */ addiu $t9, $t9, 0xc +/* 003F94 70003394 2718000C */ addiu $t8, $t8, 0xc +/* 003F98 70003398 AF01FFF4 */ sw $at, -0xc($t8) +/* 003F9C 7000339C 8F21FFF8 */ lw $at, -8($t9) +/* 003FA0 700033A0 AF01FFF8 */ sw $at, -8($t8) +/* 003FA4 700033A4 8F21FFFC */ lw $at, -4($t9) +/* 003FA8 700033A8 172EFFF8 */ bne $t9, $t6, .L7000338C +/* 003FAC 700033AC AF01FFFC */ sw $at, -4($t8) +/* 003FB0 700033B0 8F210000 */ lw $at, ($t9) +/* 003FB4 700033B4 8F2E0004 */ lw $t6, 4($t9) +/* 003FB8 700033B8 AF010000 */ sw $at, ($t8) +/* 003FBC 700033BC 10000029 */ b .L70003464 +/* 003FC0 700033C0 AF0E0004 */ sw $t6, 4($t8) +.L700033C4: +/* 003FC4 700033C4 8DEF0300 */ lw $t7, 0x300($t7) +/* 003FC8 700033C8 24010002 */ li $at, 2 +/* 003FCC 700033CC 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 003FD0 700033D0 15E10014 */ bne $t7, $at, .L70003424 +/* 003FD4 700033D4 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 003FD8 700033D8 3C198002 */ lui $t9, %hi(osViModeTable_osViModeMpalLan2) +/* 003FDC 700033DC 27397460 */ addiu $t9, %lo(osViModeTable_osViModeMpalLan2) # addiu $t9, $t9, 0x7460 +/* 003FE0 700033E0 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_80060828) +/* 003FE4 700033E4 25CE0828 */ addiu $t6, %lo(dword_CODE_bss_80060828) # addiu $t6, $t6, 0x828 +/* 003FE8 700033E8 272F0048 */ addiu $t7, $t9, 0x48 +.L700033EC: +/* 003FEC 700033EC 8F210000 */ lw $at, ($t9) +/* 003FF0 700033F0 2739000C */ addiu $t9, $t9, 0xc +/* 003FF4 700033F4 25CE000C */ addiu $t6, $t6, 0xc +/* 003FF8 700033F8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 003FFC 700033FC 8F21FFF8 */ lw $at, -8($t9) +/* 004000 70003400 ADC1FFF8 */ sw $at, -8($t6) +/* 004004 70003404 8F21FFFC */ lw $at, -4($t9) +/* 004008 70003408 172FFFF8 */ bne $t9, $t7, .L700033EC +/* 00400C 7000340C ADC1FFFC */ sw $at, -4($t6) +/* 004010 70003410 8F210000 */ lw $at, ($t9) +/* 004014 70003414 8F2F0004 */ lw $t7, 4($t9) +/* 004018 70003418 ADC10000 */ sw $at, ($t6) +/* 00401C 7000341C 10000011 */ b .L70003464 +/* 004020 70003420 ADCF0004 */ sw $t7, 4($t6) +.L70003424: +/* 004024 70003424 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeNtscLan2) +/* 004028 70003428 25EF6BA0 */ addiu $t7, %lo(osViModeTable_osViModeNtscLan2) # addiu $t7, $t7, 0x6ba0 +/* 00402C 7000342C 25EE0048 */ addiu $t6, $t7, 0x48 +.L70003430: +/* 004030 70003430 8DE10000 */ lw $at, ($t7) +/* 004034 70003434 25EF000C */ addiu $t7, $t7, 0xc +/* 004038 70003438 2718000C */ addiu $t8, $t8, 0xc +/* 00403C 7000343C AF01FFF4 */ sw $at, -0xc($t8) +/* 004040 70003440 8DE1FFF8 */ lw $at, -8($t7) +/* 004044 70003444 AF01FFF8 */ sw $at, -8($t8) +/* 004048 70003448 8DE1FFFC */ lw $at, -4($t7) +/* 00404C 7000344C 15EEFFF8 */ bne $t7, $t6, .L70003430 +/* 004050 70003450 AF01FFFC */ sw $at, -4($t8) +/* 004054 70003454 8DE10000 */ lw $at, ($t7) +/* 004058 70003458 8DEE0004 */ lw $t6, 4($t7) +/* 00405C 7000345C AF010000 */ sw $at, ($t8) +/* 004060 70003460 AF0E0004 */ sw $t6, 4($t8) +.L70003464: +/* 004064 70003464 3C198006 */ lui $t9, %hi(dword_CODE_bss_80060828) +/* 004068 70003468 27390828 */ addiu $t9, %lo(dword_CODE_bss_80060828) # addiu $t9, $t9, 0x828 +/* 00406C 7000346C AC790000 */ sw $t9, ($v1) +/* 004070 70003470 8F2E001C */ lw $t6, 0x1c($t9) +/* 004074 70003474 3C018006 */ lui $at, %hi(viMode+0x4) +/* 004078 70003478 00002025 */ move $a0, $zero +/* 00407C 7000347C AC2E0880 */ sw $t6, %lo(viMode+0x4)($at) +/* 004080 70003480 8F2F0030 */ lw $t7, 0x30($t9) +/* 004084 70003484 3C018006 */ lui $at, %hi(viMode+0x8) +/* 004088 70003488 AC2F0884 */ sw $t7, %lo(viMode+0x8)($at) +/* 00408C 7000348C 8F380044 */ lw $t8, 0x44($t9) +/* 004090 70003490 3C018006 */ lui $at, %hi(viMode+0xC) +/* 004094 70003494 0C000C64 */ jal video_related_6 +/* 004098 70003498 AC380888 */ sw $t8, %lo(viMode+0xC)($at) +/* 00409C 7000349C 1000001B */ b .L7000350C +/* 0040A0 700034A0 00000000 */ nop +.L700034A4: +/* 0040A4 700034A4 8F390300 */ lw $t9, 0x300($t9) +/* 0040A8 700034A8 24010002 */ li $at, 2 +/* 0040AC 700034AC 3C038006 */ lui $v1, %hi(viMode) +/* 0040B0 700034B0 17210007 */ bne $t9, $at, .L700034D0 +/* 0040B4 700034B4 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 0040B8 700034B8 3C038006 */ lui $v1, %hi(viMode) +/* 0040BC 700034BC 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeMpalHaf1) +/* 0040C0 700034C0 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 0040C4 700034C4 25CE75F0 */ addiu $t6, %lo(osViModeTable_osViModeMpalHaf1) # addiu $t6, $t6, 0x75f0 +/* 0040C8 700034C8 10000004 */ b .L700034DC +/* 0040CC 700034CC AC6E0000 */ sw $t6, ($v1) +.L700034D0: +/* 0040D0 700034D0 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeNtscHaf1) +/* 0040D4 700034D4 25EF6D30 */ addiu $t7, %lo(osViModeTable_osViModeNtscHaf1) # addiu $t7, $t7, 0x6d30 +/* 0040D8 700034D8 AC6F0000 */ sw $t7, ($v1) +.L700034DC: +/* 0040DC 700034DC 8C620000 */ lw $v0, ($v1) +/* 0040E0 700034E0 3C018006 */ lui $at, %hi(viMode+0x4) +/* 0040E4 700034E4 00002025 */ move $a0, $zero +/* 0040E8 700034E8 8C58001C */ lw $t8, 0x1c($v0) +/* 0040EC 700034EC AC380880 */ sw $t8, %lo(viMode+0x4)($at) +/* 0040F0 700034F0 8C590030 */ lw $t9, 0x30($v0) +/* 0040F4 700034F4 3C018006 */ lui $at, %hi(viMode+0x8) +/* 0040F8 700034F8 AC390884 */ sw $t9, %lo(viMode+0x8)($at) +/* 0040FC 700034FC 8C4E0044 */ lw $t6, 0x44($v0) +/* 004100 70003500 3C018006 */ lui $at, %hi(viMode+0xC) +/* 004104 70003504 0C0038B4 */ jal osViBlack +/* 004108 70003508 AC2E0888 */ sw $t6, %lo(viMode+0xC)($at) +.L7000350C: +/* 00410C 7000350C 0C003DEC */ jal osViSetSpecialFeatures +/* 004110 70003510 24040042 */ li $a0, 66 +/* 004114 70003514 3C088002 */ lui $t0, %hi(ptr_video_settings2) +/* 004118 70003518 8D0832A8 */ lw $t0, %lo(ptr_video_settings2)($t0) +/* 00411C 7000351C 3C0D8002 */ lui $t5, %hi(ptr_video_settings2) +/* 004120 70003520 25AD32A8 */ addiu $t5, %lo(ptr_video_settings2) # addiu $t5, $t5, 0x32a8 +/* 004124 70003524 91020000 */ lbu $v0, ($t0) +/* 004128 70003528 850F0004 */ lh $t7, 4($t0) +.L7000352C: +/* 00412C 7000352C 85180018 */ lh $t8, 0x18($t0) +/* 004130 70003530 85190006 */ lh $t9, 6($t0) +/* 004134 70003534 448F2000 */ mtc1 $t7, $f4 +/* 004138 70003538 850E001A */ lh $t6, 0x1a($t0) +/* 00413C 7000353C 44984000 */ mtc1 $t8, $f8 +/* 004140 70003540 468021A0 */ cvt.s.w $f6, $f4 +/* 004144 70003544 44998000 */ mtc1 $t9, $f16 +/* 004148 70003548 448E2000 */ mtc1 $t6, $f4 +/* 00414C 7000354C 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 004150 70003550 3C0A8002 */ lui $t2, %hi(D_800232C0) +/* 004154 70003554 468042A0 */ cvt.s.w $f10, $f8 +/* 004158 70003558 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 00415C 7000355C 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 004160 70003560 3C0B8002 */ lui $t3, %hi(coloroutputmode) +/* 004164 70003564 468084A0 */ cvt.s.w $f18, $f16 +/* 004168 70003568 46802220 */ cvt.s.w $f8, $f4 +/* 00416C 7000356C 460A3083 */ div.s $f2, $f6, $f10 +/* 004170 70003570 14400003 */ bnez $v0, .L70003580 +/* 004174 70003574 46089003 */ div.s $f0, $f18, $f8 +/* 004178 70003578 44810000 */ mtc1 $at, $f0 +/* 00417C 7000357C 00000000 */ nop +.L70003580: +/* 004180 70003580 8D4A32C0 */ lw $t2, %lo(D_800232C0)($t2) +/* 004184 70003584 3C018002 */ lui $at, %hi(something_with_osVI_4) +/* 004188 70003588 000A4880 */ sll $t1, $t2, 2 +/* 00418C 7000358C 00290821 */ addu $at, $at, $t1 +/* 004190 70003590 E42230B4 */ swc1 $f2, %lo(something_with_osVI_4)($at) +/* 004194 70003594 3C018002 */ lui $at, %hi(something_with_osVI_C) +/* 004198 70003598 00290821 */ addu $at, $at, $t1 +/* 00419C 7000359C E42030BC */ swc1 $f0, %lo(something_with_osVI_C)($at) +/* 0041A0 700035A0 910F0000 */ lbu $t7, ($t0) +/* 0041A4 700035A4 24010001 */ li $at, 1 +/* 0041A8 700035A8 15E10105 */ bne $t7, $at, .L700039C0 +/* 0041AC 700035AC 00000000 */ nop +/* 0041B0 700035B0 8D6B32AC */ lw $t3, %lo(coloroutputmode)($t3) +/* 0041B4 700035B4 3C018006 */ lui $at, %hi(dword_CODE_bss_8005DB40+0xA0) +/* 0041B8 700035B8 00290821 */ addu $at, $at, $t1 +/* 0041BC 700035BC 11600035 */ beqz $t3, .L70003694 +/* 0041C0 700035C0 AC38DBE0 */ sw $t8, %lo(dword_CODE_bss_8005DB40+0xA0)($at) +/* 0041C4 700035C4 3C198000 */ lui $t9, %hi(osTvType) +/* 0041C8 700035C8 8F390300 */ lw $t9, %lo(osTvType)($t9) +/* 0041CC 700035CC 24010002 */ li $at, 2 +/* 0041D0 700035D0 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_8005DB40) +/* 0041D4 700035D4 17210019 */ bne $t9, $at, .L7000363C +/* 0041D8 700035D8 25CEDB40 */ addiu $t6, %lo(dword_CODE_bss_8005DB40) # addiu $t6, $t6, -0x24c0 +/* 0041DC 700035DC 000A7080 */ sll $t6, $t2, 2 +/* 0041E0 700035E0 01CA7021 */ addu $t6, $t6, $t2 +/* 0041E4 700035E4 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) +/* 0041E8 700035E8 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 +/* 0041EC 700035EC 000E7100 */ sll $t6, $t6, 4 +/* 0041F0 700035F0 01CF1821 */ addu $v1, $t6, $t7 +/* 0041F4 700035F4 3C188002 */ lui $t8, %hi(osViModeTable_osViModeMpalLan1) +/* 0041F8 700035F8 27187320 */ addiu $t8, %lo(osViModeTable_osViModeMpalLan1) # addiu $t8, $t8, 0x7320 +/* 0041FC 700035FC 270E0048 */ addiu $t6, $t8, 0x48 +/* 004200 70003600 00607825 */ move $t7, $v1 +.L70003604: +/* 004204 70003604 8F010000 */ lw $at, ($t8) +/* 004208 70003608 2718000C */ addiu $t8, $t8, 0xc +/* 00420C 7000360C 25EF000C */ addiu $t7, $t7, 0xc +/* 004210 70003610 ADE1FFF4 */ sw $at, -0xc($t7) +/* 004214 70003614 8F01FFF8 */ lw $at, -8($t8) +/* 004218 70003618 ADE1FFF8 */ sw $at, -8($t7) +/* 00421C 7000361C 8F01FFFC */ lw $at, -4($t8) +/* 004220 70003620 170EFFF8 */ bne $t8, $t6, .L70003604 +/* 004224 70003624 ADE1FFFC */ sw $at, -4($t7) +/* 004228 70003628 8F010000 */ lw $at, ($t8) +/* 00422C 7000362C ADE10000 */ sw $at, ($t7) +/* 004230 70003630 8F0E0004 */ lw $t6, 4($t8) +/* 004234 70003634 1000004A */ b .L70003760 +/* 004238 70003638 ADEE0004 */ sw $t6, 4($t7) +.L7000363C: +/* 00423C 7000363C 000AC880 */ sll $t9, $t2, 2 +/* 004240 70003640 032AC821 */ addu $t9, $t9, $t2 +/* 004244 70003644 0019C900 */ sll $t9, $t9, 4 +/* 004248 70003648 032E1821 */ addu $v1, $t9, $t6 +/* 00424C 7000364C 3C188002 */ lui $t8, %hi(osViModeTable_osViModeNtscLan1) +/* 004250 70003650 27186A60 */ addiu $t8, %lo(osViModeTable_osViModeNtscLan1) # addiu $t8, $t8, 0x6a60 +/* 004254 70003654 27190048 */ addiu $t9, $t8, 0x48 +/* 004258 70003658 00607025 */ move $t6, $v1 +.L7000365C: +/* 00425C 7000365C 8F010000 */ lw $at, ($t8) +/* 004260 70003660 2718000C */ addiu $t8, $t8, 0xc +/* 004264 70003664 25CE000C */ addiu $t6, $t6, 0xc +/* 004268 70003668 ADC1FFF4 */ sw $at, -0xc($t6) +/* 00426C 7000366C 8F01FFF8 */ lw $at, -8($t8) +/* 004270 70003670 ADC1FFF8 */ sw $at, -8($t6) +/* 004274 70003674 8F01FFFC */ lw $at, -4($t8) +/* 004278 70003678 1719FFF8 */ bne $t8, $t9, .L7000365C +/* 00427C 7000367C ADC1FFFC */ sw $at, -4($t6) +/* 004280 70003680 8F010000 */ lw $at, ($t8) +/* 004284 70003684 ADC10000 */ sw $at, ($t6) +/* 004288 70003688 8F190004 */ lw $t9, 4($t8) +/* 00428C 7000368C 10000034 */ b .L70003760 +/* 004290 70003690 ADD90004 */ sw $t9, 4($t6) +.L70003694: +/* 004294 70003694 3C0F8000 */ lui $t7, %hi(osTvType) +/* 004298 70003698 8DEF0300 */ lw $t7, %lo(osTvType)($t7) +/* 00429C 7000369C 24010002 */ li $at, 2 +/* 0042A0 700036A0 15E10018 */ bne $t7, $at, .L70003704 +/* 0042A4 700036A4 000AC880 */ sll $t9, $t2, 2 +/* 0042A8 700036A8 032AC821 */ addu $t9, $t9, $t2 +/* 0042AC 700036AC 3C188006 */ lui $t8, %hi(dword_CODE_bss_8005DB40) +/* 0042B0 700036B0 2718DB40 */ addiu $t8, %lo(dword_CODE_bss_8005DB40) # addiu $t8, $t8, -0x24c0 +/* 0042B4 700036B4 0019C900 */ sll $t9, $t9, 4 +/* 0042B8 700036B8 03381821 */ addu $v1, $t9, $t8 +/* 0042BC 700036BC 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeMpalLan2) +/* 0042C0 700036C0 25CE7460 */ addiu $t6, %lo(osViModeTable_osViModeMpalLan2) # addiu $t6, $t6, 0x7460 +/* 0042C4 700036C4 25D90048 */ addiu $t9, $t6, 0x48 +/* 0042C8 700036C8 0060C025 */ move $t8, $v1 +.L700036CC: +/* 0042CC 700036CC 8DC10000 */ lw $at, ($t6) +/* 0042D0 700036D0 25CE000C */ addiu $t6, $t6, 0xc +/* 0042D4 700036D4 2718000C */ addiu $t8, $t8, 0xc +/* 0042D8 700036D8 AF01FFF4 */ sw $at, -0xc($t8) +/* 0042DC 700036DC 8DC1FFF8 */ lw $at, -8($t6) +/* 0042E0 700036E0 AF01FFF8 */ sw $at, -8($t8) +/* 0042E4 700036E4 8DC1FFFC */ lw $at, -4($t6) +/* 0042E8 700036E8 15D9FFF8 */ bne $t6, $t9, .L700036CC +/* 0042EC 700036EC AF01FFFC */ sw $at, -4($t8) +/* 0042F0 700036F0 8DC10000 */ lw $at, ($t6) +/* 0042F4 700036F4 AF010000 */ sw $at, ($t8) +/* 0042F8 700036F8 8DD90004 */ lw $t9, 4($t6) +/* 0042FC 700036FC 10000018 */ b .L70003760 +/* 004300 70003700 AF190004 */ sw $t9, 4($t8) +.L70003704: +/* 004304 70003704 000A7880 */ sll $t7, $t2, 2 +/* 004308 70003708 01EA7821 */ addu $t7, $t7, $t2 +/* 00430C 7000370C 3C198006 */ lui $t9, %hi(dword_CODE_bss_8005DB40) +/* 004310 70003710 2739DB40 */ addiu $t9, %lo(dword_CODE_bss_8005DB40) # addiu $t9, $t9, -0x24c0 +/* 004314 70003714 000F7900 */ sll $t7, $t7, 4 +/* 004318 70003718 01F91821 */ addu $v1, $t7, $t9 +/* 00431C 7000371C 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeNtscLan2) +/* 004320 70003720 25CE6BA0 */ addiu $t6, %lo(osViModeTable_osViModeNtscLan2) # addiu $t6, $t6, 0x6ba0 +/* 004324 70003724 25CF0048 */ addiu $t7, $t6, 0x48 +/* 004328 70003728 0060C825 */ move $t9, $v1 +.L7000372C: +/* 00432C 7000372C 8DC10000 */ lw $at, ($t6) +/* 004330 70003730 25CE000C */ addiu $t6, $t6, 0xc +/* 004334 70003734 2739000C */ addiu $t9, $t9, 0xc +/* 004338 70003738 AF21FFF4 */ sw $at, -0xc($t9) +/* 00433C 7000373C 8DC1FFF8 */ lw $at, -8($t6) +/* 004340 70003740 AF21FFF8 */ sw $at, -8($t9) +/* 004344 70003744 8DC1FFFC */ lw $at, -4($t6) +/* 004348 70003748 15CFFFF8 */ bne $t6, $t7, .L7000372C +/* 00434C 7000374C AF21FFFC */ sw $at, -4($t9) +/* 004350 70003750 8DC10000 */ lw $at, ($t6) +/* 004354 70003754 AF210000 */ sw $at, ($t9) +/* 004358 70003758 8DCF0004 */ lw $t7, 4($t6) +/* 00435C 7000375C AF2F0004 */ sw $t7, 4($t9) +.L70003760: +/* 004360 70003760 85180018 */ lh $t8, 0x18($t0) +/* 004364 70003764 24010280 */ li $at, 640 +/* 004368 70003768 240C01E0 */ li $t4, 480 +/* 00436C 7000376C AC780008 */ sw $t8, 8($v1) +/* 004370 70003770 850F0018 */ lh $t7, 0x18($t0) +/* 004374 70003774 8C62001C */ lw $v0, 0x1c($v1) +/* 004378 70003778 3C078002 */ lui $a3, %hi(D_8002329C) +/* 00437C 7000377C 000F7280 */ sll $t6, $t7, 0xa +/* 004380 70003780 01C1001A */ div $zero, $t6, $at +/* 004384 70003784 0000C812 */ mflo $t9 +/* 004388 70003788 AC790020 */ sw $t9, 0x20($v1) +/* 00438C 7000378C 8518001A */ lh $t8, 0x1a($t0) +/* 004390 70003790 3406FFFF */ li $a2, 65535 +/* 004394 70003794 3C058002 */ lui $a1, %hi(D_800232A0) +/* 004398 70003798 00187AC0 */ sll $t7, $t8, 0xb +/* 00439C 7000379C 01EC001A */ div $zero, $t7, $t4 +/* 0043A0 700037A0 00007012 */ mflo $t6 +/* 0043A4 700037A4 AC6E002C */ sw $t6, 0x2c($v1) +/* 0043A8 700037A8 8519001A */ lh $t9, 0x1a($t0) +/* 0043AC 700037AC 15800002 */ bnez $t4, .L700037B8 +/* 0043B0 700037B0 00000000 */ nop +/* 0043B4 700037B4 0007000D */ break 7 +.L700037B8: +/* 0043B8 700037B8 2401FFFF */ li $at, -1 +/* 0043BC 700037BC 15810004 */ bne $t4, $at, .L700037D0 +/* 0043C0 700037C0 3C018000 */ lui $at, 0x8000 +/* 0043C4 700037C4 15E10002 */ bne $t7, $at, .L700037D0 +/* 0043C8 700037C8 00000000 */ nop +/* 0043CC 700037CC 0006000D */ break 6 +.L700037D0: +/* 0043D0 700037D0 0019C2C0 */ sll $t8, $t9, 0xb +/* 0043D4 700037D4 030C001A */ div $zero, $t8, $t4 +/* 0043D8 700037D8 00007812 */ mflo $t7 +/* 0043DC 700037DC AC6F0040 */ sw $t7, 0x40($v1) +/* 0043E0 700037E0 850E0018 */ lh $t6, 0x18($t0) +/* 0043E4 700037E4 15800002 */ bnez $t4, .L700037F0 +/* 0043E8 700037E8 00000000 */ nop +/* 0043EC 700037EC 0007000D */ break 7 +.L700037F0: +/* 0043F0 700037F0 2401FFFF */ li $at, -1 +/* 0043F4 700037F4 15810004 */ bne $t4, $at, .L70003808 +/* 0043F8 700037F8 3C018000 */ lui $at, 0x8000 +/* 0043FC 700037FC 17010002 */ bne $t8, $at, .L70003808 +/* 004400 70003800 00000000 */ nop +/* 004404 70003804 0006000D */ break 6 +.L70003808: +/* 004408 70003808 000EC840 */ sll $t9, $t6, 1 +/* 00440C 7000380C AC790028 */ sw $t9, 0x28($v1) +/* 004410 70003810 85180018 */ lh $t8, 0x18($t0) +/* 004414 70003814 00027403 */ sra $t6, $v0, 0x10 +/* 004418 70003818 31D9FFFF */ andi $t9, $t6, 0xffff +/* 00441C 7000381C 00187840 */ sll $t7, $t8, 1 +/* 004420 70003820 AC6F003C */ sw $t7, 0x3c($v1) +/* 004424 70003824 8CE7329C */ lw $a3, %lo(D_8002329C)($a3) +/* 004428 70003828 0327C021 */ addu $t8, $t9, $a3 +/* 00442C 7000382C 0306001A */ div $zero, $t8, $a2 +/* 004430 70003830 14C00002 */ bnez $a2, .L7000383C +/* 004434 70003834 00000000 */ nop +/* 004438 70003838 0007000D */ break 7 +.L7000383C: +/* 00443C 7000383C 2401FFFF */ li $at, -1 +/* 004440 70003840 14C10004 */ bne $a2, $at, .L70003854 +/* 004444 70003844 3C018000 */ lui $at, 0x8000 +/* 004448 70003848 17010002 */ bne $t8, $at, .L70003854 +/* 00444C 7000384C 00000000 */ nop +/* 004450 70003850 0006000D */ break 6 +.L70003854: +/* 004454 70003854 3059FFFF */ andi $t9, $v0, 0xffff +/* 004458 70003858 00007810 */ mfhi $t7 +/* 00445C 7000385C 0327C021 */ addu $t8, $t9, $a3 +/* 004460 70003860 000F7400 */ sll $t6, $t7, 0x10 +/* 004464 70003864 0306001A */ div $zero, $t8, $a2 +/* 004468 70003868 14C00002 */ bnez $a2, .L70003874 +/* 00446C 7000386C 00000000 */ nop +/* 004470 70003870 0007000D */ break 7 +.L70003874: +/* 004474 70003874 2401FFFF */ li $at, -1 +/* 004478 70003878 14C10004 */ bne $a2, $at, .L7000388C +/* 00447C 7000387C 3C018000 */ lui $at, 0x8000 +/* 004480 70003880 17010002 */ bne $t8, $at, .L7000388C +/* 004484 70003884 00000000 */ nop +/* 004488 70003888 0006000D */ break 6 +.L7000388C: +/* 00448C 7000388C 00007810 */ mfhi $t7 +/* 004490 70003890 01CF2025 */ or $a0, $t6, $t7 +/* 004494 70003894 AC64001C */ sw $a0, 0x1c($v1) +/* 004498 70003898 3C018006 */ lui $at, %hi(viMode+0x4) +/* 00449C 7000389C AC240880 */ sw $a0, %lo(viMode+0x4)($at) +/* 0044A0 700038A0 8C620030 */ lw $v0, 0x30($v1) +/* 0044A4 700038A4 8CA532A0 */ lw $a1, %lo(D_800232A0)($a1) +/* 0044A8 700038A8 0002CC03 */ sra $t9, $v0, 0x10 +/* 0044AC 700038AC 3338FFFF */ andi $t8, $t9, 0xffff +/* 0044B0 700038B0 03057021 */ addu $t6, $t8, $a1 +/* 0044B4 700038B4 01C6001A */ div $zero, $t6, $a2 +/* 0044B8 700038B8 14C00002 */ bnez $a2, .L700038C4 +/* 0044BC 700038BC 00000000 */ nop +/* 0044C0 700038C0 0007000D */ break 7 +.L700038C4: +/* 0044C4 700038C4 2401FFFF */ li $at, -1 +/* 0044C8 700038C8 14C10004 */ bne $a2, $at, .L700038DC +/* 0044CC 700038CC 3C018000 */ lui $at, 0x8000 +/* 0044D0 700038D0 15C10002 */ bne $t6, $at, .L700038DC +/* 0044D4 700038D4 00000000 */ nop +/* 0044D8 700038D8 0006000D */ break 6 +.L700038DC: +/* 0044DC 700038DC 3058FFFF */ andi $t8, $v0, 0xffff +/* 0044E0 700038E0 00007810 */ mfhi $t7 +/* 0044E4 700038E4 03057021 */ addu $t6, $t8, $a1 +/* 0044E8 700038E8 000FCC00 */ sll $t9, $t7, 0x10 +/* 0044EC 700038EC 01C6001A */ div $zero, $t6, $a2 +/* 0044F0 700038F0 14C00002 */ bnez $a2, .L700038FC +/* 0044F4 700038F4 00000000 */ nop +/* 0044F8 700038F8 0007000D */ break 7 +.L700038FC: +/* 0044FC 700038FC 2401FFFF */ li $at, -1 +/* 004500 70003900 14C10004 */ bne $a2, $at, .L70003914 +/* 004504 70003904 3C018000 */ lui $at, 0x8000 +/* 004508 70003908 15C10002 */ bne $t6, $at, .L70003914 +/* 00450C 7000390C 00000000 */ nop +/* 004510 70003910 0006000D */ break 6 +.L70003914: +/* 004514 70003914 00007810 */ mfhi $t7 +/* 004518 70003918 032F2025 */ or $a0, $t9, $t7 +/* 00451C 7000391C AC640030 */ sw $a0, 0x30($v1) +/* 004520 70003920 3C018006 */ lui $at, %hi(viMode+0x8) +/* 004524 70003924 AC240884 */ sw $a0, %lo(viMode+0x8)($at) +/* 004528 70003928 8C620044 */ lw $v0, 0x44($v1) +/* 00452C 7000392C 0002C403 */ sra $t8, $v0, 0x10 +/* 004530 70003930 330EFFFF */ andi $t6, $t8, 0xffff +/* 004534 70003934 01C5C821 */ addu $t9, $t6, $a1 +/* 004538 70003938 0326001A */ div $zero, $t9, $a2 +/* 00453C 7000393C 14C00002 */ bnez $a2, .L70003948 +/* 004540 70003940 00000000 */ nop +/* 004544 70003944 0007000D */ break 7 +.L70003948: +/* 004548 70003948 2401FFFF */ li $at, -1 +/* 00454C 7000394C 14C10004 */ bne $a2, $at, .L70003960 +/* 004550 70003950 3C018000 */ lui $at, 0x8000 +/* 004554 70003954 17210002 */ bne $t9, $at, .L70003960 +/* 004558 70003958 00000000 */ nop +/* 00455C 7000395C 0006000D */ break 6 +.L70003960: +/* 004560 70003960 304EFFFF */ andi $t6, $v0, 0xffff +/* 004564 70003964 01C5C821 */ addu $t9, $t6, $a1 +/* 004568 70003968 00007810 */ mfhi $t7 +/* 00456C 7000396C 000FC400 */ sll $t8, $t7, 0x10 +/* 004570 70003970 240E0001 */ li $t6, 1 +/* 004574 70003974 0326001A */ div $zero, $t9, $a2 +/* 004578 70003978 14C00002 */ bnez $a2, .L70003984 +/* 00457C 7000397C 00000000 */ nop +/* 004580 70003980 0007000D */ break 7 +.L70003984: +/* 004584 70003984 2401FFFF */ li $at, -1 +/* 004588 70003988 14C10004 */ bne $a2, $at, .L7000399C +/* 00458C 7000398C 3C018000 */ lui $at, 0x8000 +/* 004590 70003990 17210002 */ bne $t9, $at, .L7000399C +/* 004594 70003994 00000000 */ nop +/* 004598 70003998 0006000D */ break 6 +.L7000399C: +/* 00459C 7000399C 00007810 */ mfhi $t7 +/* 0045A0 700039A0 030F2025 */ or $a0, $t8, $t7 +/* 0045A4 700039A4 AC640044 */ sw $a0, 0x44($v1) +/* 0045A8 700039A8 3C018006 */ lui $at, %hi(viMode+0xC) +/* 0045AC 700039AC AC240888 */ sw $a0, %lo(viMode+0xC)($at) +/* 0045B0 700039B0 3C018002 */ lui $at, %hi(something_with_osVI_14) +/* 0045B4 700039B4 00290821 */ addu $at, $at, $t1 +/* 0045B8 700039B8 10000006 */ b .L700039D4 +/* 0045BC 700039BC AC2E30C4 */ sw $t6, %lo(something_with_osVI_14)($at) +.L700039C0: +/* 0045C0 700039C0 3C018002 */ lui $at, %hi(something_with_osVI_14) +/* 0045C4 700039C4 00290821 */ addu $at, $at, $t1 +/* 0045C8 700039C8 3C0B8002 */ lui $t3, %hi(coloroutputmode) +/* 0045CC 700039CC 8D6B32AC */ lw $t3, %lo(coloroutputmode)($t3) +/* 0045D0 700039D0 AC2030C4 */ sw $zero, %lo(something_with_osVI_14)($at) +.L700039D4: +/* 0045D4 700039D4 254A0001 */ addiu $t2, $t2, 1 +/* 0045D8 700039D8 05410004 */ bgez $t2, .L700039EC +/* 0045DC 700039DC 31590001 */ andi $t9, $t2, 1 +/* 0045E0 700039E0 13200002 */ beqz $t9, .L700039EC +/* 0045E4 700039E4 00000000 */ nop +/* 0045E8 700039E8 2739FFFE */ addiu $t9, $t9, -2 +.L700039EC: +/* 0045EC 700039EC 3C018002 */ lui $at, %hi(D_800232C0) +/* 0045F0 700039F0 11600006 */ beqz $t3, .L70003A0C +/* 0045F4 700039F4 AC3932C0 */ sw $t9, %lo(D_800232C0)($at) +/* 0045F8 700039F8 3C0F8005 */ lui $t7, %hi(fast3d_related_array) +/* 0045FC 700039FC 8DEFEAB0 */ lw $t7, %lo(fast3d_related_array)($t7) +/* 004600 70003A00 8D180028 */ lw $t8, 0x28($t0) +/* 004604 70003A04 10000006 */ b .L70003A20 +/* 004608 70003A08 ADF80058 */ sw $t8, 0x58($t7) +.L70003A0C: +/* 00460C 70003A0C 3C198005 */ lui $t9, %hi(fast3d_related_array) +/* 004610 70003A10 8F39EAB0 */ lw $t9, %lo(fast3d_related_array)($t9) +/* 004614 70003A14 3C0E803B */ lui $t6, %hi(cfb_16_a) # $t6, 0x803b +/* 004618 70003A18 25CE5000 */ addiu $t6, %lo(cfb_16_a) # addiu $t6, $t6, 0x5000 +/* 00461C 70003A1C AF2E0058 */ sw $t6, 0x58($t9) +.L70003A20: +/* 004620 70003A20 3C028006 */ lui $v0, %hi(off_CODE_bss_80060878) +/* 004624 70003A24 24420878 */ addiu $v0, %lo(off_CODE_bss_80060878) # addiu $v0, $v0, 0x878 +/* 004628 70003A28 90580000 */ lbu $t8, ($v0) +/* 00462C 70003A2C 3C038006 */ lui $v1, %hi(off_CODE_bss_80060879) +/* 004630 70003A30 2408002C */ li $t0, 44 +/* 004634 70003A34 270F0001 */ addiu $t7, $t8, 1 +/* 004638 70003A38 24630879 */ addiu $v1, %lo(off_CODE_bss_80060879) # addiu $v1, $v1, 0x879 +/* 00463C 70003A3C 90790000 */ lbu $t9, ($v1) +/* 004640 70003A40 3C078002 */ lui $a3, %hi(video1_settings) +/* 004644 70003A44 24E73244 */ addiu $a3, %lo(video1_settings) # addiu $a3, $a3, 0x3244 +/* 004648 70003A48 27380001 */ addiu $t8, $t9, 1 +/* 00464C 70003A4C 8DA40000 */ lw $a0, ($t5) +/* 004650 70003A50 05E10004 */ bgez $t7, .L70003A64 +/* 004654 70003A54 31EE0001 */ andi $t6, $t7, 1 +/* 004658 70003A58 11C00002 */ beqz $t6, .L70003A64 +/* 00465C 70003A5C 00000000 */ nop +/* 004660 70003A60 25CEFFFE */ addiu $t6, $t6, -2 +.L70003A64: +/* 004664 70003A64 A04E0000 */ sb $t6, ($v0) +/* 004668 70003A68 904E0000 */ lbu $t6, ($v0) +/* 00466C 70003A6C 07010004 */ bgez $t8, .L70003A80 +/* 004670 70003A70 330F0001 */ andi $t7, $t8, 1 +/* 004674 70003A74 11E00002 */ beqz $t7, .L70003A80 +/* 004678 70003A78 00000000 */ nop +/* 00467C 70003A7C 25EFFFFE */ addiu $t7, $t7, -2 +.L70003A80: +/* 004680 70003A80 01C80019 */ multu $t6, $t0 +/* 004684 70003A84 A06F0000 */ sb $t7, ($v1) +/* 004688 70003A88 3C018002 */ lui $at, %hi(ptr_video_settings1) +/* 00468C 70003A8C 2406002C */ li $a2, 44 +/* 004690 70003A90 0000C812 */ mflo $t9 +/* 004694 70003A94 00F9C021 */ addu $t8, $a3, $t9 +/* 004698 70003A98 AC3832A4 */ sw $t8, %lo(ptr_video_settings1)($at) +/* 00469C 70003A9C 906F0000 */ lbu $t7, ($v1) +/* 0046A0 70003AA0 01E80019 */ multu $t7, $t0 +/* 0046A4 70003AA4 00007012 */ mflo $t6 +/* 0046A8 70003AA8 00EE2821 */ addu $a1, $a3, $t6 +/* 0046AC 70003AAC 0C003E5C */ jal bcopy +/* 0046B0 70003AB0 ADA50000 */ sw $a1, ($t5) +/* 0046B4 70003AB4 3C038006 */ lui $v1, %hi(off_CODE_bss_80060879) +/* 0046B8 70003AB8 24630879 */ addiu $v1, %lo(off_CODE_bss_80060879) # addiu $v1, $v1, 0x879 +/* 0046BC 70003ABC 90780000 */ lbu $t8, ($v1) +/* 0046C0 70003AC0 3C0E803B */ lui $t6, %hi(cfb_16_a) # $t6, 0x803b +/* 0046C4 70003AC4 25CE5000 */ addiu $t6, %lo(cfb_16_a) # addiu $t6, $t6, 0x5000 +/* 0046C8 70003AC8 00187880 */ sll $t7, $t8, 2 +/* 0046CC 70003ACC 01F87821 */ addu $t7, $t7, $t8 +/* 0046D0 70003AD0 000F7880 */ sll $t7, $t7, 2 +/* 0046D4 70003AD4 01F87823 */ subu $t7, $t7, $t8 +/* 0046D8 70003AD8 000F7880 */ sll $t7, $t7, 2 +/* 0046DC 70003ADC 01F87823 */ subu $t7, $t7, $t8 +/* 0046E0 70003AE0 3C188002 */ lui $t8, %hi(ptr_video_settings2) +/* 0046E4 70003AE4 8F1832A8 */ lw $t8, %lo(ptr_video_settings2)($t8) +/* 0046E8 70003AE8 000F7AC0 */ sll $t7, $t7, 0xb +/* 0046EC 70003AEC 01EEC821 */ addu $t9, $t7, $t6 +/* 0046F0 70003AF0 AF190028 */ sw $t9, 0x28($t8) +/* 0046F4 70003AF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0046F8 70003AF8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0046FC 70003AFC 03E00008 */ jr $ra +/* 004700 70003B00 00000000 */ nop +) +#endif + + +/** + * 4704 70003B04 ???; 800232B4=(word)F12, 800232B8=0xA + * accepts: F12= + */ +#ifdef NONMATCHING +void video_related_9(float param_1) +{ + float fVar1; + + fVar1 = 14.00000000; + if (param_1 <= 14.00000000) { + fVar1 = param_1; + } + if (fVar1 < 0.00000000) { + D_800232B4 = 0; + } + else { + D_800232B4 = (int)fVar1; + } + D_800232B8 = 10; +} +#else +GLOBAL_ASM( +.text +glabel video_related_9 +/* 004704 70003B04 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 004708 70003B08 44810000 */ mtc1 $at, $f0 +/* 00470C 70003B0C 00000000 */ nop +/* 004710 70003B10 460C003C */ c.lt.s $f0, $f12 +/* 004714 70003B14 00000000 */ nop +/* 004718 70003B18 45020003 */ bc1fl .L70003B28 +/* 00471C 70003B1C 44800000 */ mtc1 $zero, $f0 +/* 004720 70003B20 46000306 */ mov.s $f12, $f0 +/* 004724 70003B24 44800000 */ mtc1 $zero, $f0 +.L70003B28: +/* 004728 70003B28 00000000 */ nop +/* 00472C 70003B2C 4600603C */ c.lt.s $f12, $f0 +/* 004730 70003B30 00000000 */ nop +/* 004734 70003B34 45020003 */ bc1fl .L70003B44 +/* 004738 70003B38 4600610D */ trunc.w.s $f4, $f12 +/* 00473C 70003B3C 46000306 */ mov.s $f12, $f0 +/* 004740 70003B40 4600610D */ trunc.w.s $f4, $f12 +.L70003B44: +/* 004744 70003B44 3C018002 */ lui $at, %hi(D_800232B4) +/* 004748 70003B48 2418000A */ li $t8, 10 +/* 00474C 70003B4C 440F2000 */ mfc1 $t7, $f4 +/* 004750 70003B50 00000000 */ nop +/* 004754 70003B54 AC2F32B4 */ sw $t7, %lo(D_800232B4)($at) +/* 004758 70003B58 3C018002 */ lui $at, %hi(D_800232B8) +/* 00475C 70003B5C 03E00008 */ jr $ra +/* 004760 70003B60 AC3832B8 */ sw $t8, %lo(D_800232B8)($at) +) +#endif + + + + +/** + * 4764 70003B64 + */ +//Even though this is defined in vi.h, it also must be in this file to be seen?? +extern OSMesgQueue vi_c_debug_MQ; +void receive_vi_c_msgs(int msgcount){ + do { + osRecvMesg(&vi_c_debug_MQ,NULL,1); + msgcount += -1; + } while (0 < msgcount); +} + + +/** + * 47B0 70003BB0 + */ +#ifdef NONMATCHING +void setVideoWidthHeightToMode(s32 videomode) +{ + u16 widths_80028480[] = {320, 320, 640}; + u16 heights_80028488[] = {240, 240, 480}; + + ptr_video_settings2->mode = videomode; + + ptr_video_settings2->somethingW = widths_80028480[videomode]; + ptr_video_settings2->txtClipW = widths_80028480[videomode]; + + ptr_video_settings2->somethingH = heights_80028488[videomode]; + ptr_video_settings2->txtClipH = heights_80028488[videomode]; +} +#else +const u16 widths_80028480[] = {320, 320, 640}; +const u16 heights_80028488[] = {240, 240, 480}; //is this not 16bit and a list of 320x240 and 640x480 - 3 widths, 3 heights +GLOBAL_ASM( +.text +glabel setVideoWidthHeightToMode +/* 0047B0 70003BB0 3C058002 */ lui $a1, %hi(ptr_video_settings2) +/* 0047B4 70003BB4 24A532A8 */ addiu $a1, %lo(ptr_video_settings2) # addiu $a1, $a1, 0x32a8 +/* 0047B8 70003BB8 8CAE0000 */ lw $t6, ($a1) +/* 0047BC 70003BBC 00041840 */ sll $v1, $a0, 1 +/* 0047C0 70003BC0 3C028003 */ lui $v0, %hi(widths_80028480) +/* 0047C4 70003BC4 A1C40000 */ sb $a0, ($t6) +/* 0047C8 70003BC8 00431021 */ addu $v0, $v0, $v1 +/* 0047CC 70003BCC 84428480 */ lh $v0, %lo(widths_80028480)($v0) +/* 0047D0 70003BD0 8CAF0000 */ lw $t7, ($a1) +/* 0047D4 70003BD4 A5E20018 */ sh $v0, 0x18($t7) +/* 0047D8 70003BD8 8CB80000 */ lw $t8, ($a1) +/* 0047DC 70003BDC A7020004 */ sh $v0, 4($t8) +/* 0047E0 70003BE0 3C028003 */ lui $v0, %hi(heights_80028488) +/* 0047E4 70003BE4 00431021 */ addu $v0, $v0, $v1 +/* 0047E8 70003BE8 84428488 */ lh $v0, %lo(heights_80028488)($v0) +/* 0047EC 70003BEC 8CB90000 */ lw $t9, ($a1) +/* 0047F0 70003BF0 A722001A */ sh $v0, 0x1a($t9) +/* 0047F4 70003BF4 8CA80000 */ lw $t0, ($a1) +/* 0047F8 70003BF8 03E00008 */ jr $ra +/* 0047FC 70003BFC A5020006 */ sh $v0, 6($t0) +) +#endif + + + +/** + * 4800 70003C00 sets colour output mode to 16bit [800232AC=1] + */ +void set_coloroutputmode_16bit(void) +{ + coloroutputmode = MODE_16BIT; +} + +/** + * 4810 70003C10 sets colour output mode to 32bit [800232AC=0] + */ +void set_coloroutputmode_32bit(void) +{ + coloroutputmode = MODE_32BIT; +} + +/** + * 481C 70003C1C V0= p->video2's buffer [p@800232A8+28]; fry T6 + */ +u8 * get_video_settings2_frameb(void) +{ + return ptr_video_settings2->frameb; +} + +/** + * 482C 70003C2C V0= p->video1's buffer [p@800232A4+28]; fry T6 + */ +u8 * get_video_settings1_frameb(void) +{ + return ptr_video_settings1->frameb; +} + +/** + * 483C 70003C3C A0->video2's buffer [p@800232A8+28]; fry T6 + */ +void set_video2buf_frameb(u8 *arg0) +{ + ptr_video_settings2->frameb = arg0; +} + +/** + * 484C 70003C4C V0= halfword [80060824] + */ +u16 get_80060824(void) { + return word_CODE_bss_80060824; +} + +/** + * 4858 70003C58 + */ +#ifdef NONMATCHING +void *video_related_F(void *arg0) +{ + void *temp_s0; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_v1; + void *phi_s0; + + if (pPlayer != 0) + { + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D0 = (s16) (ptr_video_settings2->unk1C * 2); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D8 = (s16) ((ptr_video_settings2->unk1C * 2) + (ptr_video_settings2->unk20 * 4)); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D2 = (s16) (ptr_video_settings2->unk1E * 2); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7DA = (s16) ((ptr_video_settings2->unk1E * 2) + (ptr_video_settings2->unk22 * 4)); + } + arg0->unk0 = 0x3800010; + arg0->unk4 = (s32) ((pPlayer + (off_CODE_bss_80060879 * 0x10)) + 0x800007d0); + temp_s0 = arg0 + 8; + m = sub_GAME_7F0BD6E0(&off_CODE_bss_80060879, &pPlayer); + guPerspectiveF(&dword_CODE_bss_800607E0, &word_CODE_bss_80060824, ptr_video_settings2->far, ptr_video_settings2->scale, (f32) ptr_video_settings2->aspect, (f32) ptr_video_settings2->unk14, 1.0f); + guMtxF2L(&dword_CODE_bss_800607E0, m); + temp_v0 = temp_s0; + temp_v0->unk0 = 0x1030040; + temp_s0 = temp_s0 + 8; + temp_v0->unk4 = (s32) (m + 0x80000000); + temp_v1 = temp_s0; + temp_v1->unk0 = 0xbc00000e; + temp_s0 = temp_s0 + 8; + temp_v1->unk4 = (?32) word_CODE_bss_80060824; + set_BONDdata_field_10D8(m, &m); + set_BONDdata_field_10DC(&dword_CODE_bss_800607E0); + temp_v0_2 = temp_s0; + if (coloroutputmode != 0) + { + temp_v0_3 = temp_s0; + temp_v0_3->unk0 = (s32) (((ptr_video_settings2->unk18 + -1) & 0xfff) | 0xff100000); + temp_v0_3->unk4 = (s32) (ptr_video_settings2->frameb + 0x80000000); + phi_s0 = temp_s0 + 8; + } + else + { + temp_v0_2->unk4 = 0x3b5000; + temp_v0_2->unk0 = (s32) (((ptr_video_settings2->unk18 + -1) & 0xfff) | 0xff180000); + phi_s0 = temp_s0 + 8; + } + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_F +/* 004858 70003C58 3C058008 */ lui $a1, %hi(pPlayer) +/* 00485C 70003C5C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 004860 70003C60 8CA20000 */ lw $v0, ($a1) +/* 004864 70003C64 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 004868 70003C68 AFB00024 */ sw $s0, 0x24($sp) +/* 00486C 70003C6C 00808025 */ move $s0, $a0 +/* 004870 70003C70 AFBF002C */ sw $ra, 0x2c($sp) +/* 004874 70003C74 1040002A */ beqz $v0, .L70003D20 +/* 004878 70003C78 AFB10028 */ sw $s1, 0x28($sp) +/* 00487C 70003C7C 3C118002 */ lui $s1, %hi(ptr_video_settings2) +/* 004880 70003C80 263132A8 */ addiu $s1, %lo(ptr_video_settings2) # addiu $s1, $s1, 0x32a8 +/* 004884 70003C84 8E2E0000 */ lw $t6, ($s1) +/* 004888 70003C88 3C048006 */ lui $a0, %hi(off_CODE_bss_80060879) +/* 00488C 70003C8C 24840879 */ addiu $a0, %lo(off_CODE_bss_80060879) # addiu $a0, $a0, 0x879 +/* 004890 70003C90 90990000 */ lbu $t9, ($a0) +/* 004894 70003C94 85CF001C */ lh $t7, 0x1c($t6) +/* 004898 70003C98 00194100 */ sll $t0, $t9, 4 +/* 00489C 70003C9C 00484821 */ addu $t1, $v0, $t0 +/* 0048A0 70003CA0 000FC040 */ sll $t8, $t7, 1 +/* 0048A4 70003CA4 A53807D0 */ sh $t8, 0x7d0($t1) +/* 0048A8 70003CA8 8E230000 */ lw $v1, ($s1) +/* 0048AC 70003CAC 90990000 */ lbu $t9, ($a0) +/* 0048B0 70003CB0 8CAF0000 */ lw $t7, ($a1) +/* 0048B4 70003CB4 846A001C */ lh $t2, 0x1c($v1) +/* 0048B8 70003CB8 846C0020 */ lh $t4, 0x20($v1) +/* 0048BC 70003CBC 00194100 */ sll $t0, $t9, 4 +/* 0048C0 70003CC0 000A5840 */ sll $t3, $t2, 1 +/* 0048C4 70003CC4 000C6880 */ sll $t5, $t4, 2 +/* 0048C8 70003CC8 016D7021 */ addu $t6, $t3, $t5 +/* 0048CC 70003CCC 01E8C021 */ addu $t8, $t7, $t0 +/* 0048D0 70003CD0 A70E07D8 */ sh $t6, 0x7d8($t8) +/* 0048D4 70003CD4 8E290000 */ lw $t1, ($s1) +/* 0048D8 70003CD8 908D0000 */ lbu $t5, ($a0) +/* 0048DC 70003CDC 8CAB0000 */ lw $t3, ($a1) +/* 0048E0 70003CE0 852A001E */ lh $t2, 0x1e($t1) +/* 0048E4 70003CE4 000DC900 */ sll $t9, $t5, 4 +/* 0048E8 70003CE8 01797821 */ addu $t7, $t3, $t9 +/* 0048EC 70003CEC 000A6040 */ sll $t4, $t2, 1 +/* 0048F0 70003CF0 A5EC07D2 */ sh $t4, 0x7d2($t7) +/* 0048F4 70003CF4 8E230000 */ lw $v1, ($s1) +/* 0048F8 70003CF8 908B0000 */ lbu $t3, ($a0) +/* 0048FC 70003CFC 8CAD0000 */ lw $t5, ($a1) +/* 004900 70003D00 8468001E */ lh $t0, 0x1e($v1) +/* 004904 70003D04 84780022 */ lh $t8, 0x22($v1) +/* 004908 70003D08 000BC900 */ sll $t9, $t3, 4 +/* 00490C 70003D0C 00087040 */ sll $t6, $t0, 1 +/* 004910 70003D10 00184880 */ sll $t1, $t8, 2 +/* 004914 70003D14 01C95021 */ addu $t2, $t6, $t1 +/* 004918 70003D18 01B96021 */ addu $t4, $t5, $t9 +/* 00491C 70003D1C A58A07DA */ sh $t2, 0x7da($t4) +.L70003D20: +/* 004920 70003D20 3C0F0380 */ lui $t7, (0x03800010 >> 16) # lui $t7, 0x380 +/* 004924 70003D24 3C048006 */ lui $a0, %hi(off_CODE_bss_80060879) +/* 004928 70003D28 35EF0010 */ ori $t7, (0x03800010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 00492C 70003D2C 02001025 */ move $v0, $s0 +/* 004930 70003D30 24840879 */ addiu $a0, %lo(off_CODE_bss_80060879) # addiu $a0, $a0, 0x879 +/* 004934 70003D34 AC4F0000 */ sw $t7, ($v0) +/* 004938 70003D38 90980000 */ lbu $t8, ($a0) +/* 00493C 70003D3C 8CA80000 */ lw $t0, ($a1) +/* 004940 70003D40 3C018000 */ lui $at, (0x800007D0 >> 16) +/* 004944 70003D44 00187100 */ sll $t6, $t8, 4 +/* 004948 70003D48 342107D0 */ ori $at, (0x800007D0 & 0xFFFF) # ori $at, $at, 0x7d0 +/* 00494C 70003D4C 010E4821 */ addu $t1, $t0, $t6 +/* 004950 70003D50 3C118002 */ lui $s1, %hi(ptr_video_settings2) +/* 004954 70003D54 01215821 */ addu $t3, $t1, $at +/* 004958 70003D58 263132A8 */ addiu $s1, %lo(ptr_video_settings2) # addiu $s1, $s1, 0x32a8 +/* 00495C 70003D5C AC4B0004 */ sw $t3, 4($v0) +/* 004960 70003D60 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 004964 70003D64 26100008 */ addiu $s0, $s0, 8 +/* 004968 70003D68 3C018006 */ lui $at, %hi(m) +/* 00496C 70003D6C AC220820 */ sw $v0, %lo(m)($at) +/* 004970 70003D70 8E230000 */ lw $v1, ($s1) +/* 004974 70003D74 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 004978 70003D78 44814000 */ mtc1 $at, $f8 +/* 00497C 70003D7C C4640010 */ lwc1 $f4, 0x10($v1) +/* 004980 70003D80 8C660008 */ lw $a2, 8($v1) +/* 004984 70003D84 8C67000C */ lw $a3, 0xc($v1) +/* 004988 70003D88 E7A40010 */ swc1 $f4, 0x10($sp) +/* 00498C 70003D8C C4660014 */ lwc1 $f6, 0x14($v1) +/* 004990 70003D90 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 004994 70003D94 3C058006 */ lui $a1, %hi(word_CODE_bss_80060824) +/* 004998 70003D98 24A50824 */ addiu $a1, %lo(word_CODE_bss_80060824) # addiu $a1, $a1, 0x824 +/* 00499C 70003D9C 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 0049A0 70003DA0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0049A4 70003DA4 0C003F20 */ jal guPerspectiveF +/* 0049A8 70003DA8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0049AC 70003DAC 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 0049B0 70003DB0 3C058006 */ lui $a1, %hi(m) +/* 0049B4 70003DB4 8CA50820 */ lw $a1, %lo(m)($a1) +/* 0049B8 70003DB8 0C003FC4 */ jal guMtxF2L +/* 0049BC 70003DBC 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 0049C0 70003DC0 3C0D0103 */ lui $t5, (0x01030040 >> 16) # lui $t5, 0x103 +/* 0049C4 70003DC4 3C058006 */ lui $a1, %hi(m) +/* 0049C8 70003DC8 35AD0040 */ ori $t5, (0x01030040 & 0xFFFF) # ori $t5, $t5, 0x40 +/* 0049CC 70003DCC 02001025 */ move $v0, $s0 +/* 0049D0 70003DD0 24A50820 */ addiu $a1, %lo(m) # addiu $a1, $a1, 0x820 +/* 0049D4 70003DD4 AC4D0000 */ sw $t5, ($v0) +/* 0049D8 70003DD8 8CB90000 */ lw $t9, ($a1) +/* 0049DC 70003DDC 3C018000 */ lui $at, 0x8000 +/* 0049E0 70003DE0 26100008 */ addiu $s0, $s0, 8 +/* 0049E4 70003DE4 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0049E8 70003DE8 03215021 */ addu $t2, $t9, $at +/* 0049EC 70003DEC AC4A0004 */ sw $t2, 4($v0) +/* 0049F0 70003DF0 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0049F4 70003DF4 02001825 */ move $v1, $s0 +/* 0049F8 70003DF8 AC6C0000 */ sw $t4, ($v1) +/* 0049FC 70003DFC 3C0F8006 */ lui $t7, %hi(word_CODE_bss_80060824) +/* 004A00 70003E00 95EF0824 */ lhu $t7, %lo(word_CODE_bss_80060824)($t7) +/* 004A04 70003E04 26100008 */ addiu $s0, $s0, 8 +/* 004A08 70003E08 AC6F0004 */ sw $t7, 4($v1) +/* 004A0C 70003E0C 0FC1E0D9 */ jal set_BONDdata_field_10D8 +/* 004A10 70003E10 8CA40000 */ lw $a0, ($a1) +/* 004A14 70003E14 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 004A18 70003E18 0FC1E0F5 */ jal set_BONDdata_field_10DC +/* 004A1C 70003E1C 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 004A20 70003E20 3C188002 */ lui $t8, %hi(coloroutputmode) +/* 004A24 70003E24 8F1832AC */ lw $t8, %lo(coloroutputmode)($t8) +/* 004A28 70003E28 02001025 */ move $v0, $s0 +/* 004A2C 70003E2C 3C01FF18 */ lui $at, 0xff18 +/* 004A30 70003E30 53000011 */ beql $t8, $zero, .L70003E78 +/* 004A34 70003E34 8E2F0000 */ lw $t7, ($s1) +/* 004A38 70003E38 8E280000 */ lw $t0, ($s1) +/* 004A3C 70003E3C 3C01FF10 */ lui $at, 0xff10 +/* 004A40 70003E40 02001025 */ move $v0, $s0 +/* 004A44 70003E44 850E0018 */ lh $t6, 0x18($t0) +/* 004A48 70003E48 26100008 */ addiu $s0, $s0, 8 +/* 004A4C 70003E4C 25C9FFFF */ addiu $t1, $t6, -1 +/* 004A50 70003E50 312B0FFF */ andi $t3, $t1, 0xfff +/* 004A54 70003E54 01616825 */ or $t5, $t3, $at +/* 004A58 70003E58 AC4D0000 */ sw $t5, ($v0) +/* 004A5C 70003E5C 8E390000 */ lw $t9, ($s1) +/* 004A60 70003E60 3C018000 */ lui $at, 0x8000 +/* 004A64 70003E64 8F2A0028 */ lw $t2, 0x28($t9) +/* 004A68 70003E68 01416021 */ addu $t4, $t2, $at +/* 004A6C 70003E6C 1000000B */ b .L70003E9C +/* 004A70 70003E70 AC4C0004 */ sw $t4, 4($v0) +/* 004A74 70003E74 8E2F0000 */ lw $t7, ($s1) +.L70003E78: +/* 004A78 70003E78 3C0B003B */ lui $t3, %hi(0x003B5000) # $t3, 0x3b +/* 004A7C 70003E7C 256B5000 */ addiu $t3, %lo(0x003B5000) # addiu $t3, $t3, 0x5000 +/* 004A80 70003E80 85F80018 */ lh $t8, 0x18($t7) +/* 004A84 70003E84 AC4B0004 */ sw $t3, 4($v0) +/* 004A88 70003E88 26100008 */ addiu $s0, $s0, 8 +/* 004A8C 70003E8C 2708FFFF */ addiu $t0, $t8, -1 +/* 004A90 70003E90 310E0FFF */ andi $t6, $t0, 0xfff +/* 004A94 70003E94 01C14825 */ or $t1, $t6, $at +/* 004A98 70003E98 AC490000 */ sw $t1, ($v0) +.L70003E9C: +/* 004A9C 70003E9C 8FBF002C */ lw $ra, 0x2c($sp) +/* 004AA0 70003EA0 02001025 */ move $v0, $s0 +/* 004AA4 70003EA4 8FB00024 */ lw $s0, 0x24($sp) +/* 004AA8 70003EA8 8FB10028 */ lw $s1, 0x28($sp) +/* 004AAC 70003EAC 03E00008 */ jr $ra +/* 004AB0 70003EB0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +/** + * 4AB4 70003EB4 + */ +#ifdef NONMATCHING +s32 video_related_10(s32 arg0) +{ + s32 phi_a0; + + phi_a0 = arg0; + if (ptr_video_settings2->unk24 != 0) + { + phi_a0 = sub_GAME_7F0D2518(sub_GAME_7F0D2464()); + } + return phi_a0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_10 +/* 004AB4 70003EB4 3C0E8002 */ lui $t6, %hi(ptr_video_settings2) +/* 004AB8 70003EB8 8DCE32A8 */ lw $t6, %lo(ptr_video_settings2)($t6) +/* 004ABC 70003EBC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 004AC0 70003EC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 004AC4 70003EC4 8DCF0024 */ lw $t7, 0x24($t6) +/* 004AC8 70003EC8 51E00007 */ beql $t7, $zero, .L70003EE8 +/* 004ACC 70003ECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 004AD0 70003ED0 0FC34919 */ jal sub_GAME_7F0D2464 +/* 004AD4 70003ED4 00000000 */ nop +/* 004AD8 70003ED8 0FC34946 */ jal sub_GAME_7F0D2518 +/* 004ADC 70003EDC 00402025 */ move $a0, $v0 +/* 004AE0 70003EE0 00402025 */ move $a0, $v0 +/* 004AE4 70003EE4 8FBF0014 */ lw $ra, 0x14($sp) +.L70003EE8: +/* 004AE8 70003EE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 004AEC 70003EEC 00801025 */ move $v0, $a0 +/* 004AF0 70003EF0 03E00008 */ jr $ra +/* 004AF4 70003EF4 00000000 */ nop +) +#endif + + +/** + * 4AF8 70003EF8 generate a generic fillrect; fries: AT,A1,A2,A3,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 + * V0=new display list address + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +s32 insert_generic_fillrect(void *arg0) //either of type Dynamic Struct or GFX Array, however Im betting Dynamic since Dynamic can contain a GFX plus other settings +{ + void *temp_a1; + void *temp_a3; + + // copied from a demo of what is probably going on here + /* + * pointers to build the display list. + / + dynamicp = &dynamic; //glist[0]); + */ + // so arg0 is probably pointer to dynamic struct containing glist. + // nothing is actually returned per say since its added to glist at a higher level. + + //arg0->unk4 = 0x300000; + //arg0->unk0 = 0xba001402; + gDPSetCycleType(glistp++, G_CYC_1CYCLE); + + //temp_a1 = arg0 + 8; + //temp_a3 = temp_a1 + 8; + //temp_a1->unk0 = (s32) (((((ptr_video_settings2->unk18 + -1) & 0x3ff) << 0xe) | 0xf6000000) | (((ptr_video_settings2->unk1A + -1) & 0x3ff) * 4)); + //temp_a1->unk4 = 0; + gDPFillRectangle(glistp++, 0, 0, SCREEN_WD-1, SCREEN_HT-1); + //temp_a3->unk0 = 0xe7000000; + //temp_a3->unk4 = 0; + gDPPipeSync(glistp++); + //return temp_a3 + 8; +} + +#else +GLOBAL_ASM( +.text +glabel insert_generic_fillrect +/* 004AF8 70003EF8 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 #gsDPSetCycleType +/* 004AFC 70003EFC 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 004B00 70003F00 3C0F0030 */ lui $t7, 0x30 #G_CYC_1CYCLE +/* 004B04 70003F04 AC8F0004 */ sw $t7, 4($a0) +/* 004B08 70003F08 AC8E0000 */ sw $t6, ($a0) +/* 004B0C 70003F0C 3C068002 */ lui $a2, %hi(ptr_video_settings2) +/* 004B10 70003F10 8CC632A8 */ lw $a2, %lo(ptr_video_settings2)($a2) +/* 004B14 70003F14 24850008 */ addiu $a1, $a0, 8 +/* 004B18 70003F18 3C01F600 */ lui $at, 0xf600 +/* 004B1C 70003F1C 84D80018 */ lh $t8, 0x18($a2) +/* 004B20 70003F20 84CB001A */ lh $t3, 0x1a($a2) +/* 004B24 70003F24 24A70008 */ addiu $a3, $a1, 8 +/* 004B28 70003F28 2719FFFF */ addiu $t9, $t8, -1 +/* 004B2C 70003F2C 332803FF */ andi $t0, $t9, 0x3ff +/* 004B30 70003F30 256CFFFF */ addiu $t4, $t3, -1 +/* 004B34 70003F34 318D03FF */ andi $t5, $t4, 0x3ff +/* 004B38 70003F38 00084B80 */ sll $t1, $t0, 0xe +/* 004B3C 70003F3C 01215025 */ or $t2, $t1, $at +/* 004B40 70003F40 000D7080 */ sll $t6, $t5, 2 +/* 004B44 70003F44 014E7825 */ or $t7, $t2, $t6 +/* 004B48 70003F48 ACAF0000 */ sw $t7, ($a1) +/* 004B4C 70003F4C ACA00004 */ sw $zero, 4($a1) +/* 004B50 70003F50 3C18E700 */ lui $t8, 0xe700 +/* 004B54 70003F54 ACF80000 */ sw $t8, ($a3) +/* 004B58 70003F58 ACE00004 */ sw $zero, 4($a3) +/* 004B5C 70003F5C 03E00008 */ jr $ra +/* 004B60 70003F60 24E20008 */ addiu $v0, $a3, 8 +) +#endif + + + + +/** + * 4B64 70003F64 + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +void *setupscreensfornumplayers(void *arg0) +{ + void *sp60; + s16 sp22; + s16 sp20; + void *temp_s0; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s0_4; + void *temp_s0_5; + void *temp_s1; + void *temp_s1_2; + void *temp_v1; + void *phi_s0; + void *phi_s0_2; + void *phi_s0_3; + void *phi_s0_4; + + temp_s0 = arg0 + 8; + //arg0->unk4 = 0x300000; + //arg0->unk0 = 0xba001402; + *temp_s0 = 0xed000000; + sp60 = temp_s0; + temp_s0 = temp_s0 + 8; + temp_v1 = temp_s0; + temp_s0 = temp_s0 + 8; + sp60->unk4 = (s32) (((s32) ((f32) get_video2_settings_txtClipH() * 4.0f) & 0xfff) | (((s32) ((f32) ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) * 4.0f) & 0xfff) << 0xc)); + temp_v1->unk4 = 0x10001; + temp_v1->unk0 = 0xf7000000; + phi_s0 = temp_s0; + if (get_video2_settings_uly() > 0) + { + phi_s0 = temp_s0; + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) + { + temp_s0 = temp_s0 + 8; + sp58->unk0 = (s32) (((((get_video2_settings_uly() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp58->unk4 = 0; + temp_s0->unk0 = 0xe7000000; + temp_s0->unk4 = 0; + phi_s0 = temp_s0 + 8; + } + } + if (get_num_players() == 1) + { + sp22 = get_video2_settings_height(); + phi_s0_4 = phi_s0; + if ((((s32) (get_video2_settings_uly() << 0x10) >> 0x10) + sp22) < get_video2_settings_txtClipH()) + { + temp_s0_2 = phi_s0 + 8; + sp50->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp50->unk4 = (s32) (((get_video2_settings_height() + ((s32) (get_video2_settings_uly() << 0x10) >> 0x10)) & 0x3ff) * 4); + temp_s0_2->unk4 = 0; + temp_s0_2->unk0 = 0xe7000000; + phi_s0_4 = temp_s0_2 + 8; + } + } + else + { + phi_s0_4 = phi_s0; + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) + { + sp20 = get_video2_settings_height(); + sp22 = get_video2_settings_height(); + phi_s0_2 = phi_s0; + if (((((s32) (get_video2_settings_uly() << 0x10) >> 0x10) + sp22) + sp20) < get_video2_settings_txtClipH()) + { + temp_s0_3 = phi_s0 + 8; + sp48->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp22 = get_video2_settings_height(); + sp48->unk4 = (s32) ((((get_video2_settings_height() + ((s32) (get_video2_settings_uly() << 0x10) >> 0x10)) + sp22) & 0x3ff) * 4); + temp_s0_3->unk0 = 0xe7000000; + temp_s0_3->unk4 = 0; + phi_s0_2 = temp_s0_3 + 8; + } + temp_s1 = phi_s0_2; + temp_s0_4 = phi_s0_2 + 8; + temp_s1->unk4 = 0x1dc; + temp_s1->unk0 = (s32) (((((get_video2_settings_txtClipW() + -1) & 0x3ff) << 0xe) | 0xf6000000) | 0x1e0); + temp_s0_4->unk0 = 0xe7000000; + temp_s0_4->unk4 = 0; + temp_s0_4 = temp_s0_4 + 8; + temp_s1_2 = temp_s0_4; + phi_s0_3 = temp_s0_4; + if (get_num_players() >= 3) + { + temp_s0_4 = temp_s0_4 + 8; + temp_s1_2->unk0 = (s32) ((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6280000); + temp_s1_2->unk4 = 0x27c000; + temp_s0_4->unk0 = 0xe7000000; + temp_s0_4->unk4 = 0; + phi_s0_3 = temp_s0_4 + 8; + } + phi_s0_4 = phi_s0_3; + if (get_num_players() == 3) + { + temp_s0_5 = phi_s0_3 + 8; + sp30->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp30->unk4 = 0x2841e4; + temp_s0_5->unk0 = 0xe7000000; + temp_s0_5->unk4 = 0; + phi_s0_4 = temp_s0_5 + 8; + } + } + } + return phi_s0_4; +} +#else +GLOBAL_ASM( +.text +glabel setupscreensfornumplayers +/* 004B64 70003F64 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 004B68 70003F68 AFB00014 */ sw $s0, 0x14($sp) +/* 004B6C 70003F6C AFBF001C */ sw $ra, 0x1c($sp) +/* 004B70 70003F70 AFB10018 */ sw $s1, 0x18($sp) +/* 004B74 70003F74 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 004B78 70003F78 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 004B7C 70003F7C 24900008 */ addiu $s0, $a0, 8 +/* 004B80 70003F80 3C0F0030 */ lui $t7, 0x30 +/* 004B84 70003F84 AC8F0004 */ sw $t7, 4($a0) +/* 004B88 70003F88 AC8E0000 */ sw $t6, ($a0) +/* 004B8C 70003F8C 02001825 */ move $v1, $s0 +/* 004B90 70003F90 3C18ED00 */ lui $t8, 0xed00 +/* 004B94 70003F94 AC780000 */ sw $t8, ($v1) +/* 004B98 70003F98 AFA30060 */ sw $v1, 0x60($sp) +/* 004B9C 70003F9C 0C001107 */ jal get_video2_settings_txtClipW +/* 004BA0 70003FA0 26100008 */ addiu $s0, $s0, 8 +/* 004BA4 70003FA4 00028C00 */ sll $s1, $v0, 0x10 +/* 004BA8 70003FA8 0011CC03 */ sra $t9, $s1, 0x10 +/* 004BAC 70003FAC 0C00110B */ jal get_video2_settings_txtClipH +/* 004BB0 70003FB0 03208825 */ move $s1, $t9 +/* 004BB4 70003FB4 44822000 */ mtc1 $v0, $f4 +/* 004BB8 70003FB8 44918000 */ mtc1 $s1, $f16 +/* 004BBC 70003FBC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 004BC0 70003FC0 468021A0 */ cvt.s.w $f6, $f4 +/* 004BC4 70003FC4 44810000 */ mtc1 $at, $f0 +/* 004BC8 70003FC8 8FB80060 */ lw $t8, 0x60($sp) +/* 004BCC 70003FCC 02001825 */ move $v1, $s0 +/* 004BD0 70003FD0 3C080001 */ lui $t0, (0x00010001 >> 16) # lui $t0, 1 +/* 004BD4 70003FD4 468084A0 */ cvt.s.w $f18, $f16 +/* 004BD8 70003FD8 46003202 */ mul.s $f8, $f6, $f0 +/* 004BDC 70003FDC 35080001 */ ori $t0, (0x00010001 & 0xFFFF) # ori $t0, $t0, 1 +/* 004BE0 70003FE0 3C19F700 */ lui $t9, 0xf700 +/* 004BE4 70003FE4 26100008 */ addiu $s0, $s0, 8 +/* 004BE8 70003FE8 46009102 */ mul.s $f4, $f18, $f0 +/* 004BEC 70003FEC 4600428D */ trunc.w.s $f10, $f8 +/* 004BF0 70003FF0 4600218D */ trunc.w.s $f6, $f4 +/* 004BF4 70003FF4 44095000 */ mfc1 $t1, $f10 +/* 004BF8 70003FF8 440C3000 */ mfc1 $t4, $f6 +/* 004BFC 70003FFC 312A0FFF */ andi $t2, $t1, 0xfff +/* 004C00 70004000 318D0FFF */ andi $t5, $t4, 0xfff +/* 004C04 70004004 000D7300 */ sll $t6, $t5, 0xc +/* 004C08 70004008 014E7825 */ or $t7, $t2, $t6 +/* 004C0C 7000400C AF0F0004 */ sw $t7, 4($t8) +/* 004C10 70004010 AC680004 */ sw $t0, 4($v1) +/* 004C14 70004014 0C001149 */ jal get_video2_settings_uly +/* 004C18 70004018 AC790000 */ sw $t9, ($v1) +/* 004C1C 7000401C 1840001F */ blez $v0, .L7000409C +/* 004C20 70004020 00000000 */ nop +/* 004C24 70004024 0FC26C54 */ jal get_cur_playernum +/* 004C28 70004028 00000000 */ nop +/* 004C2C 7000402C 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 004C30 70004030 00402025 */ move $a0, $v0 +/* 004C34 70004034 14400019 */ bnez $v0, .L7000409C +/* 004C38 70004038 00000000 */ nop +/* 004C3C 7000403C AFB00058 */ sw $s0, 0x58($sp) +/* 004C40 70004040 0C001107 */ jal get_video2_settings_txtClipW +/* 004C44 70004044 26100008 */ addiu $s0, $s0, 8 +/* 004C48 70004048 00028C00 */ sll $s1, $v0, 0x10 +/* 004C4C 7000404C 00114C03 */ sra $t1, $s1, 0x10 +/* 004C50 70004050 0C001149 */ jal get_video2_settings_uly +/* 004C54 70004054 01208825 */ move $s1, $t1 +/* 004C58 70004058 244BFFFF */ addiu $t3, $v0, -1 +/* 004C5C 7000405C 8FA40058 */ lw $a0, 0x58($sp) +/* 004C60 70004060 316C03FF */ andi $t4, $t3, 0x3ff +/* 004C64 70004064 262EFFFF */ addiu $t6, $s1, -1 +/* 004C68 70004068 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004C6C 7000406C 000C6880 */ sll $t5, $t4, 2 +/* 004C70 70004070 3C01F600 */ lui $at, 0xf600 +/* 004C74 70004074 01A15025 */ or $t2, $t5, $at +/* 004C78 70004078 000FC380 */ sll $t8, $t7, 0xe +/* 004C7C 7000407C 0158C825 */ or $t9, $t2, $t8 +/* 004C80 70004080 02001825 */ move $v1, $s0 +/* 004C84 70004084 AC990000 */ sw $t9, ($a0) +/* 004C88 70004088 AC800004 */ sw $zero, 4($a0) +/* 004C8C 7000408C 3C08E700 */ lui $t0, 0xe700 +/* 004C90 70004090 AC680000 */ sw $t0, ($v1) +/* 004C94 70004094 AC600004 */ sw $zero, 4($v1) +/* 004C98 70004098 26100008 */ addiu $s0, $s0, 8 +.L7000409C: +/* 004C9C 7000409C 0FC26919 */ jal get_num_players +/* 004CA0 700040A0 00000000 */ nop +/* 004CA4 700040A4 24010001 */ li $at, 1 +/* 004CA8 700040A8 14410030 */ bne $v0, $at, .L7000416C +/* 004CAC 700040AC 00000000 */ nop +/* 004CB0 700040B0 0C00112B */ jal get_video2_settings_height +/* 004CB4 700040B4 00000000 */ nop +/* 004CB8 700040B8 0C001149 */ jal get_video2_settings_uly +/* 004CBC 700040BC A7A20022 */ sh $v0, 0x22($sp) +/* 004CC0 700040C0 00028C00 */ sll $s1, $v0, 0x10 +/* 004CC4 700040C4 00114C03 */ sra $t1, $s1, 0x10 +/* 004CC8 700040C8 0C00110B */ jal get_video2_settings_txtClipH +/* 004CCC 700040CC 01208825 */ move $s1, $t1 +/* 004CD0 700040D0 87AB0022 */ lh $t3, 0x22($sp) +/* 004CD4 700040D4 022B6021 */ addu $t4, $s1, $t3 +/* 004CD8 700040D8 0182082A */ slt $at, $t4, $v0 +/* 004CDC 700040DC 502000A4 */ beql $at, $zero, .L70004370 +/* 004CE0 700040E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 004CE4 700040E4 AFB00050 */ sw $s0, 0x50($sp) +/* 004CE8 700040E8 0C001107 */ jal get_video2_settings_txtClipW +/* 004CEC 700040EC 26100008 */ addiu $s0, $s0, 8 +/* 004CF0 700040F0 00028C00 */ sll $s1, $v0, 0x10 +/* 004CF4 700040F4 00116C03 */ sra $t5, $s1, 0x10 +/* 004CF8 700040F8 0C00110B */ jal get_video2_settings_txtClipH +/* 004CFC 700040FC 01A08825 */ move $s1, $t5 +/* 004D00 70004100 244EFFFF */ addiu $t6, $v0, -1 +/* 004D04 70004104 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004D08 70004108 2639FFFF */ addiu $t9, $s1, -1 +/* 004D0C 7000410C 332803FF */ andi $t0, $t9, 0x3ff +/* 004D10 70004110 000F5080 */ sll $t2, $t7, 2 +/* 004D14 70004114 3C01F600 */ lui $at, 0xf600 +/* 004D18 70004118 8FAC0050 */ lw $t4, 0x50($sp) +/* 004D1C 7000411C 0141C025 */ or $t8, $t2, $at +/* 004D20 70004120 00084B80 */ sll $t1, $t0, 0xe +/* 004D24 70004124 03095825 */ or $t3, $t8, $t1 +/* 004D28 70004128 0C001149 */ jal get_video2_settings_uly +/* 004D2C 7000412C AD8B0000 */ sw $t3, ($t4) +/* 004D30 70004130 00028C00 */ sll $s1, $v0, 0x10 +/* 004D34 70004134 00116C03 */ sra $t5, $s1, 0x10 +/* 004D38 70004138 0C00112B */ jal get_video2_settings_height +/* 004D3C 7000413C 01A08825 */ move $s1, $t5 +/* 004D40 70004140 8FB90050 */ lw $t9, 0x50($sp) +/* 004D44 70004144 00517021 */ addu $t6, $v0, $s1 +/* 004D48 70004148 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004D4C 7000414C 000F5080 */ sll $t2, $t7, 2 +/* 004D50 70004150 02001825 */ move $v1, $s0 +/* 004D54 70004154 3C08E700 */ lui $t0, 0xe700 +/* 004D58 70004158 AF2A0004 */ sw $t2, 4($t9) +/* 004D5C 7000415C AC600004 */ sw $zero, 4($v1) +/* 004D60 70004160 AC680000 */ sw $t0, ($v1) +/* 004D64 70004164 10000081 */ b .L7000436C +/* 004D68 70004168 26100008 */ addiu $s0, $s0, 8 +.L7000416C: +/* 004D6C 7000416C 0FC26C54 */ jal get_cur_playernum +/* 004D70 70004170 00000000 */ nop +/* 004D74 70004174 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 004D78 70004178 00402025 */ move $a0, $v0 +/* 004D7C 7000417C 5440007C */ bnezl $v0, .L70004370 +/* 004D80 70004180 8FBF001C */ lw $ra, 0x1c($sp) +/* 004D84 70004184 0C00112B */ jal get_video2_settings_height +/* 004D88 70004188 00000000 */ nop +/* 004D8C 7000418C 0C00112B */ jal get_video2_settings_height +/* 004D90 70004190 A7A20020 */ sh $v0, 0x20($sp) +/* 004D94 70004194 0C001149 */ jal get_video2_settings_uly +/* 004D98 70004198 A7A20022 */ sh $v0, 0x22($sp) +/* 004D9C 7000419C 00028C00 */ sll $s1, $v0, 0x10 +/* 004DA0 700041A0 0011C403 */ sra $t8, $s1, 0x10 +/* 004DA4 700041A4 0C00110B */ jal get_video2_settings_txtClipH +/* 004DA8 700041A8 03008825 */ move $s1, $t8 +/* 004DAC 700041AC 87A90022 */ lh $t1, 0x22($sp) +/* 004DB0 700041B0 87AC0020 */ lh $t4, 0x20($sp) +/* 004DB4 700041B4 02295821 */ addu $t3, $s1, $t1 +/* 004DB8 700041B8 016C6821 */ addu $t5, $t3, $t4 +/* 004DBC 700041BC 01A2082A */ slt $at, $t5, $v0 +/* 004DC0 700041C0 50200027 */ beql $at, $zero, .L70004260 +/* 004DC4 700041C4 02008825 */ move $s1, $s0 +/* 004DC8 700041C8 AFB00048 */ sw $s0, 0x48($sp) +/* 004DCC 700041CC 0C001107 */ jal get_video2_settings_txtClipW +/* 004DD0 700041D0 26100008 */ addiu $s0, $s0, 8 +/* 004DD4 700041D4 00028C00 */ sll $s1, $v0, 0x10 +/* 004DD8 700041D8 00117403 */ sra $t6, $s1, 0x10 +/* 004DDC 700041DC 0C00110B */ jal get_video2_settings_txtClipH +/* 004DE0 700041E0 01C08825 */ move $s1, $t6 +/* 004DE4 700041E4 244FFFFF */ addiu $t7, $v0, -1 +/* 004DE8 700041E8 31EA03FF */ andi $t2, $t7, 0x3ff +/* 004DEC 700041EC 2638FFFF */ addiu $t8, $s1, -1 +/* 004DF0 700041F0 330903FF */ andi $t1, $t8, 0x3ff +/* 004DF4 700041F4 000AC880 */ sll $t9, $t2, 2 +/* 004DF8 700041F8 3C01F600 */ lui $at, 0xf600 +/* 004DFC 700041FC 8FAD0048 */ lw $t5, 0x48($sp) +/* 004E00 70004200 03214025 */ or $t0, $t9, $at +/* 004E04 70004204 00095B80 */ sll $t3, $t1, 0xe +/* 004E08 70004208 010B6025 */ or $t4, $t0, $t3 +/* 004E0C 7000420C 0C00112B */ jal get_video2_settings_height +/* 004E10 70004210 ADAC0000 */ sw $t4, ($t5) +/* 004E14 70004214 0C001149 */ jal get_video2_settings_uly +/* 004E18 70004218 A7A20022 */ sh $v0, 0x22($sp) +/* 004E1C 7000421C 00028C00 */ sll $s1, $v0, 0x10 +/* 004E20 70004220 00117403 */ sra $t6, $s1, 0x10 +/* 004E24 70004224 0C00112B */ jal get_video2_settings_height +/* 004E28 70004228 01C08825 */ move $s1, $t6 +/* 004E2C 7000422C 87AA0022 */ lh $t2, 0x22($sp) +/* 004E30 70004230 00517821 */ addu $t7, $v0, $s1 +/* 004E34 70004234 8FA80048 */ lw $t0, 0x48($sp) +/* 004E38 70004238 01EAC821 */ addu $t9, $t7, $t2 +/* 004E3C 7000423C 333803FF */ andi $t8, $t9, 0x3ff +/* 004E40 70004240 00184880 */ sll $t1, $t8, 2 +/* 004E44 70004244 02001825 */ move $v1, $s0 +/* 004E48 70004248 AD090004 */ sw $t1, 4($t0) +/* 004E4C 7000424C 3C0BE700 */ lui $t3, 0xe700 +/* 004E50 70004250 AC6B0000 */ sw $t3, ($v1) +/* 004E54 70004254 AC600004 */ sw $zero, 4($v1) +/* 004E58 70004258 26100008 */ addiu $s0, $s0, 8 +/* 004E5C 7000425C 02008825 */ move $s1, $s0 +.L70004260: +/* 004E60 70004260 0C001107 */ jal get_video2_settings_txtClipW +/* 004E64 70004264 26100008 */ addiu $s0, $s0, 8 +/* 004E68 70004268 244CFFFF */ addiu $t4, $v0, -1 +/* 004E6C 7000426C 318D03FF */ andi $t5, $t4, 0x3ff +/* 004E70 70004270 000D7380 */ sll $t6, $t5, 0xe +/* 004E74 70004274 3C01F600 */ lui $at, 0xf600 +/* 004E78 70004278 01C17825 */ or $t7, $t6, $at +/* 004E7C 7000427C 35EA01E0 */ ori $t2, $t7, 0x1e0 +/* 004E80 70004280 241901DC */ li $t9, 476 +/* 004E84 70004284 02001825 */ move $v1, $s0 +/* 004E88 70004288 AE390004 */ sw $t9, 4($s1) +/* 004E8C 7000428C AE2A0000 */ sw $t2, ($s1) +/* 004E90 70004290 3C18E700 */ lui $t8, 0xe700 +/* 004E94 70004294 AC780000 */ sw $t8, ($v1) +/* 004E98 70004298 AC600004 */ sw $zero, 4($v1) +/* 004E9C 7000429C 0FC26919 */ jal get_num_players +/* 004EA0 700042A0 26100008 */ addiu $s0, $s0, 8 +/* 004EA4 700042A4 28410003 */ slti $at, $v0, 3 +/* 004EA8 700042A8 14200011 */ bnez $at, .L700042F0 +/* 004EAC 700042AC 02008825 */ move $s1, $s0 +/* 004EB0 700042B0 0C00110B */ jal get_video2_settings_txtClipH +/* 004EB4 700042B4 26100008 */ addiu $s0, $s0, 8 +/* 004EB8 700042B8 2449FFFF */ addiu $t1, $v0, -1 +/* 004EBC 700042BC 312803FF */ andi $t0, $t1, 0x3ff +/* 004EC0 700042C0 00085880 */ sll $t3, $t0, 2 +/* 004EC4 700042C4 3C01F628 */ lui $at, 0xf628 +/* 004EC8 700042C8 3C0D0027 */ lui $t5, (0x0027C000 >> 16) # lui $t5, 0x27 +/* 004ECC 700042CC 35ADC000 */ ori $t5, (0x0027C000 & 0xFFFF) # ori $t5, $t5, 0xc000 +/* 004ED0 700042D0 01616025 */ or $t4, $t3, $at +/* 004ED4 700042D4 02001825 */ move $v1, $s0 +/* 004ED8 700042D8 AE2C0000 */ sw $t4, ($s1) +/* 004EDC 700042DC AE2D0004 */ sw $t5, 4($s1) +/* 004EE0 700042E0 3C0EE700 */ lui $t6, 0xe700 +/* 004EE4 700042E4 AC6E0000 */ sw $t6, ($v1) +/* 004EE8 700042E8 AC600004 */ sw $zero, 4($v1) +/* 004EEC 700042EC 26100008 */ addiu $s0, $s0, 8 +.L700042F0: +/* 004EF0 700042F0 0FC26919 */ jal get_num_players +/* 004EF4 700042F4 00000000 */ nop +/* 004EF8 700042F8 24010003 */ li $at, 3 +/* 004EFC 700042FC 5441001C */ bnel $v0, $at, .L70004370 +/* 004F00 70004300 8FBF001C */ lw $ra, 0x1c($sp) +/* 004F04 70004304 AFB00030 */ sw $s0, 0x30($sp) +/* 004F08 70004308 0C001107 */ jal get_video2_settings_txtClipW +/* 004F0C 7000430C 26100008 */ addiu $s0, $s0, 8 +/* 004F10 70004310 00028C00 */ sll $s1, $v0, 0x10 +/* 004F14 70004314 00117C03 */ sra $t7, $s1, 0x10 +/* 004F18 70004318 0C00110B */ jal get_video2_settings_txtClipH +/* 004F1C 7000431C 01E08825 */ move $s1, $t7 +/* 004F20 70004320 244AFFFF */ addiu $t2, $v0, -1 +/* 004F24 70004324 8FA40030 */ lw $a0, 0x30($sp) +/* 004F28 70004328 315903FF */ andi $t9, $t2, 0x3ff +/* 004F2C 7000432C 2628FFFF */ addiu $t0, $s1, -1 +/* 004F30 70004330 310B03FF */ andi $t3, $t0, 0x3ff +/* 004F34 70004334 0019C080 */ sll $t8, $t9, 2 +/* 004F38 70004338 3C01F600 */ lui $at, 0xf600 +/* 004F3C 7000433C 03014825 */ or $t1, $t8, $at +/* 004F40 70004340 000B6380 */ sll $t4, $t3, 0xe +/* 004F44 70004344 3C0E0028 */ lui $t6, (0x002841E4 >> 16) # lui $t6, 0x28 +/* 004F48 70004348 35CE41E4 */ ori $t6, (0x002841E4 & 0xFFFF) # ori $t6, $t6, 0x41e4 +/* 004F4C 7000434C 012C6825 */ or $t5, $t1, $t4 +/* 004F50 70004350 02001825 */ move $v1, $s0 +/* 004F54 70004354 AC8D0000 */ sw $t5, ($a0) +/* 004F58 70004358 AC8E0004 */ sw $t6, 4($a0) +/* 004F5C 7000435C 3C0FE700 */ lui $t7, 0xe700 +/* 004F60 70004360 AC6F0000 */ sw $t7, ($v1) +/* 004F64 70004364 AC600004 */ sw $zero, 4($v1) +/* 004F68 70004368 26100008 */ addiu $s0, $s0, 8 +.L7000436C: +/* 004F6C 7000436C 8FBF001C */ lw $ra, 0x1c($sp) +.L70004370: +/* 004F70 70004370 02001025 */ move $v0, $s0 +/* 004F74 70004374 8FB00014 */ lw $s0, 0x14($sp) +/* 004F78 70004378 8FB10018 */ lw $s1, 0x18($sp) +/* 004F7C 7000437C 03E00008 */ jr $ra +/* 004F80 70004380 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + +/** + * 4F84 70004384 + * A0->[800232A0] + */ +void set_D_800232A0(s32 arg0) +{ + D_800232A0 = arg0; +} + +/** + * 4F90 70004390 + * V0= [800232A0] + */ +s32 get_D_800232A0(void) +{ + return D_800232A0; +} + +/** + * 4F9C 7000439C + * A0->[8002329C] + */ +void set_D_8002329C(s32 arg0) +{ + D_8002329C = arg0; +} + +/** + * 4FA8 700043A8 + * V0= [8002329C] + */ +s32 get_D_8002329C(void) +{ + return D_8002329C; +} + +/** + * 4FB4 700043B4 + * A0->[p@800232A8+18], SP+0; fry V0,T0,T1 + * A1->[p@800232A8+1A], SP+4 + */ +void set_video2_settings_offset_18_1A(s16 arg0, s16 arg1) +{ + ptr_video_settings2->somethingW = arg0; + ptr_video_settings2->somethingH = arg1; +} + +/** + * 4FD8 700043D8 + * V0= [p@800232A8+18]; fry T6 + */ +s16 get_video2_settings_offset_18(void) +{ + return ptr_video_settings2->somethingW; +} + +/** + * 4FE8 700043E8 + * V0= [p@800232A8+1A]; fry T6 + */ +s16 get_video2_settings_offset_1A(void) +{ + return ptr_video_settings2->somethingH; +} + +/** + * 4FF8 700043F8 + * set video2 text clip width (A0) and height (A1); fries V0,T0,T1 + * A0->[p@800232A8+4], SP+0 + * A1->[p@800232A8+6], SP+4 + */ +void set_video2_text_clip_size(s16 txtClipW, s16 txtClipH) { + ptr_video_settings2->txtClipW = txtClipW; + ptr_video_settings2->txtClipH = txtClipH; +} + +/** + * 501C 7000441C + * V0= video2 text clip width [p@800232A8+4]; fry T6 + */ +s16 get_video2_settings_txtClipW(void) { + return ptr_video_settings2->txtClipW; +} + +/** + * 502C 7000442C + * V0= video2 text clip height [p@800232A8+6]; fry T6 + */ +s16 get_video2_settings_txtClipH(void) { + return ptr_video_settings2->txtClipH; +} + +/** + * 503C 7000443C + * set video2 width (A0) and height (A1) + */ +#ifdef NONMATCHING +void set_video2_width_height(short width,short height) { + ptr_video_settings2->width = width; + ptr_video_settings2->height = height; + set_BONDdata_screensize(ptr_video_settings2->width,ptr_video_settings2->height); + sub_GAME_7F077C5C(); + return; +} +#else +GLOBAL_ASM( +.text +glabel set_video2_width_height +/* 00503C 7000443C 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005040 70004440 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 005044 70004444 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005048 70004448 8C680000 */ lw $t0, ($v1) +/* 00504C 7000444C AFBF0014 */ sw $ra, 0x14($sp) +/* 005050 70004450 AFA40018 */ sw $a0, 0x18($sp) +/* 005054 70004454 AFA5001C */ sw $a1, 0x1c($sp) +/* 005058 70004458 A504001C */ sh $a0, 0x1c($t0) +/* 00505C 7000445C 8C690000 */ lw $t1, ($v1) +/* 005060 70004460 A525001E */ sh $a1, 0x1e($t1) +/* 005064 70004464 8C620000 */ lw $v0, ($v1) +/* 005068 70004468 844A001C */ lh $t2, 0x1c($v0) +/* 00506C 7000446C 844B001E */ lh $t3, 0x1e($v0) +/* 005070 70004470 448A2000 */ mtc1 $t2, $f4 +/* 005074 70004474 448B3000 */ mtc1 $t3, $f6 +/* 005078 70004478 46802320 */ cvt.s.w $f12, $f4 +/* 00507C 7000447C 0FC1DEF6 */ jal set_BONDdata_screensize +/* 005080 70004480 468033A0 */ cvt.s.w $f14, $f6 +/* 005084 70004484 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 005088 70004488 00000000 */ nop +/* 00508C 7000448C 8FBF0014 */ lw $ra, 0x14($sp) +/* 005090 70004490 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005094 70004494 03E00008 */ jr $ra +/* 005098 70004498 00000000 */ nop +) +#endif + + + +/** + * 509C 7000449C + * V0= video2 lrx [p@800232A8+1C]; fry T6 + */ +s16 get_video2_settings_width(void) { + return ptr_video_settings2->width; +} + +/** + * 50AC 700044AC + * V0= video2 lry [p@800232A8+1E]; fry T6 + */ +s16 get_video2_settings_height(void) { + return ptr_video_settings2->height; +} + +/** + * 50BC 700044BC + * set video2 ulx (A0) and uly (A1) + */ +#ifdef NONMATCHING +void set_video2_ulx_uly(s16 ulx, s16 uly) +{ + ptr_video_settings2->ulx = ulx; + ptr_video_settings2->ulx = uly; + set_ulx_uly((f32) ptr_video_settings2->ulx, (f32) ptr_video_settings2->uly); +} +#else +GLOBAL_ASM( +.text +glabel set_video2_ulx_uly +/* 0050BC 700044BC 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 0050C0 700044C0 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 0050C4 700044C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0050C8 700044C8 8C680000 */ lw $t0, ($v1) +/* 0050CC 700044CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0050D0 700044D0 AFA40018 */ sw $a0, 0x18($sp) +/* 0050D4 700044D4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0050D8 700044D8 A5040020 */ sh $a0, 0x20($t0) +/* 0050DC 700044DC 8C690000 */ lw $t1, ($v1) +/* 0050E0 700044E0 A5250022 */ sh $a1, 0x22($t1) +/* 0050E4 700044E4 8C620000 */ lw $v0, ($v1) +/* 0050E8 700044E8 844A0020 */ lh $t2, 0x20($v0) +/* 0050EC 700044EC 844B0022 */ lh $t3, 0x22($v0) +/* 0050F0 700044F0 448A2000 */ mtc1 $t2, $f4 +/* 0050F4 700044F4 448B3000 */ mtc1 $t3, $f6 +/* 0050F8 700044F8 46802320 */ cvt.s.w $f12, $f4 +/* 0050FC 700044FC 0FC1DF05 */ jal set_ulx_uly +/* 005100 70004500 468033A0 */ cvt.s.w $f14, $f6 +/* 005104 70004504 8FBF0014 */ lw $ra, 0x14($sp) +/* 005108 70004508 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00510C 7000450C 03E00008 */ jr $ra +/* 005110 70004510 00000000 */ nop +) +#endif + + + +/** + * 5114 70004514 + * V0= video2 ulx [p@800232A8+20]; fry T6 + */ +s16 get_video2_settings_ulx(void) { + return ptr_video_settings2->ulx; +} + +/** + * 5124 70004524 + * V0= video2 uly [p@800232A8+22]; fry T6 + */ +s16 get_video2_settings_uly(void) { + return ptr_video_settings2->uly; +} + +/** + * 5134 70004534 + * A0->[p@800232A8+24]; fry T6 + */ +void set_video2_settings_offset_24(int param_1) { + ptr_video_settings2->anonymous_12 = param_1; +} + +/** + * 5144 70004544 + */ +#ifdef NONMATCHING +void setvideo_far(f32 arg0) +{ + ptr_video_settings2->far = arg0; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel setvideo_far +/* 005144 70004544 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005148 70004548 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 00514C 7000454C 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 005150 70004550 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 005154 70004554 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 005158 70004558 8C6E0000 */ lw $t6, ($v1) +/* 00515C 7000455C AFBF0014 */ sw $ra, 0x14($sp) +/* 005160 70004560 E5C40008 */ swc1 $f4, 8($t6) +/* 005164 70004564 8C620000 */ lw $v0, ($v1) +/* 005168 70004568 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 00516C 7000456C C44E0008 */ lwc1 $f14, 8($v0) +/* 005170 70004570 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005174 70004574 8C46000C */ lw $a2, 0xc($v0) +/* 005178 70004578 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 00517C 7000457C 00000000 */ nop +/* 005180 70004580 8FBF0014 */ lw $ra, 0x14($sp) +/* 005184 70004584 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005188 70004588 03E00008 */ jr $ra +/* 00518C 7000458C 00000000 */ nop +) +#endif + + +/** + * 5190 70004590 + * F12->video2 page width [p@800232A8+C] and something else... + */ +#ifdef NONMATCHING +void video_related_21(f32 arg0) +{ + ptr_video_settings2->scale = arg0; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel video_related_21 +/* 005190 70004590 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005194 70004594 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005198 70004598 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 00519C 7000459C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0051A0 700045A0 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0051A4 700045A4 8C6E0000 */ lw $t6, ($v1) +/* 0051A8 700045A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0051AC 700045AC E5C4000C */ swc1 $f4, 0xc($t6) +/* 0051B0 700045B0 8C620000 */ lw $v0, ($v1) +/* 0051B4 700045B4 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 0051B8 700045B8 C44E0008 */ lwc1 $f14, 8($v0) +/* 0051BC 700045BC 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 0051C0 700045C0 8C46000C */ lw $a2, 0xc($v0) +/* 0051C4 700045C4 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 0051C8 700045C8 00000000 */ nop +/* 0051CC 700045CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0051D0 700045D0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0051D4 700045D4 03E00008 */ jr $ra +/* 0051D8 700045D8 00000000 */ nop +) +#endif + +/** + * 51DC 700045DC + * F0= [p@800232A8+8]; fry T6 + */ +f32 video_related_23(void) +{ + return ptr_video_settings2->far; +} + +/** + * 51EC 700045EC + */ +#ifdef NONMATCHING +void video_related_24(f32 arg0, f32 arg1) +{ + ptr_video_settings2->far = arg1; + ptr_video_settings2->scale = (f32) (arg0 / arg1); + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel video_related_24 +/* 0051EC 700045EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0051F0 700045F0 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 0051F4 700045F4 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 0051F8 700045F8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0051FC 700045FC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 005200 70004600 8C6E0000 */ lw $t6, ($v1) +/* 005204 70004604 AFBF0014 */ sw $ra, 0x14($sp) +/* 005208 70004608 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 00520C 7000460C E5C40008 */ swc1 $f4, 8($t6) +/* 005210 70004610 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 005214 70004614 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 005218 70004618 8C6F0000 */ lw $t7, ($v1) +/* 00521C 7000461C 46083283 */ div.s $f10, $f6, $f8 +/* 005220 70004620 E5EA000C */ swc1 $f10, 0xc($t7) +/* 005224 70004624 8C620000 */ lw $v0, ($v1) +/* 005228 70004628 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 00522C 7000462C C44E0008 */ lwc1 $f14, 8($v0) +/* 005230 70004630 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005234 70004634 8C46000C */ lw $a2, 0xc($v0) +/* 005238 70004638 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 00523C 7000463C 00000000 */ nop +/* 005240 70004640 8FBF0014 */ lw $ra, 0x14($sp) +/* 005244 70004644 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005248 70004648 03E00008 */ jr $ra +/* 00524C 7000464C 00000000 */ nop +) +#endif + +/** + * 5250 70004650 + */ +#ifdef NONMATCHING +void set_page_height(f32 arg0, f32 arg1) +{ + ptr_video_settings2->aspect = arg0; + ptr_video_settings2->unk14 = arg1; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel set_page_height +/* 005250 70004650 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005254 70004654 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005258 70004658 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 00525C 7000465C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 005260 70004660 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 005264 70004664 8C6E0000 */ lw $t6, ($v1) +/* 005268 70004668 AFBF0014 */ sw $ra, 0x14($sp) +/* 00526C 7000466C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 005270 70004670 E5C40010 */ swc1 $f4, 0x10($t6) +/* 005274 70004674 8C6F0000 */ lw $t7, ($v1) +/* 005278 70004678 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 00527C 7000467C E5E60014 */ swc1 $f6, 0x14($t7) +/* 005280 70004680 8C620000 */ lw $v0, ($v1) +/* 005284 70004684 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 005288 70004688 C44E0008 */ lwc1 $f14, 8($v0) +/* 00528C 7000468C 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005290 70004690 8C46000C */ lw $a2, 0xc($v0) +/* 005294 70004694 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 005298 70004698 00000000 */ nop +/* 00529C 7000469C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0052A0 700046A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0052A4 700046A4 03E00008 */ jr $ra +/* 0052A8 700046A8 00000000 */ nop +) +#endif + +/** + * 52AC 700046AC + * copies [p@800232A8+10-14] to A0; fries V0,T6,T7,F4,F6 + */ +#ifdef NONMATCHING +void *video_related_27(void *arg0) +{ + arg0->unk0 = (f32) ptr_video_settings2->aspect; + arg0->unk4 = (f32) ptr_video_settings2->unk14; + return &ptr_video_settings2; +} +#else +GLOBAL_ASM( +.text +glabel video_related_27 +/* 0052AC 700046AC 3C028002 */ lui $v0, %hi(ptr_video_settings2) +/* 0052B0 700046B0 244232A8 */ addiu $v0, %lo(ptr_video_settings2) # addiu $v0, $v0, 0x32a8 +/* 0052B4 700046B4 8C4E0000 */ lw $t6, ($v0) +/* 0052B8 700046B8 C5C40010 */ lwc1 $f4, 0x10($t6) +/* 0052BC 700046BC E4840000 */ swc1 $f4, ($a0) +/* 0052C0 700046C0 8C4F0000 */ lw $t7, ($v0) +/* 0052C4 700046C4 C5E60014 */ lwc1 $f6, 0x14($t7) +/* 0052C8 700046C8 03E00008 */ jr $ra +/* 0052CC 700046CC E4860004 */ swc1 $f6, 4($a0) +) +#endif + +/** + * 52D0 700046D0 + * setfillcolour(&A0,A1,A2,A3); generates a setfillcolour op + * mode determined by flag at 800232AC: 0=32bit, 1=16bit + * accepts: A0=p->display list target, A1=red, A2=green, A3=blue + * returns: V0=updated display list target (A0 also updated) + * fries: V1,A0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 + */ +#ifdef NONMATCHING +s32 set_setfillcolor(void *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 temp_t5; + + if (coloroutputmode != 0) + { + temp_t5 = ((((arg1 << 8) & 0xf800) | ((arg2 * 8) & 0x7c0)) | ((arg3 >> 2) & 0x3e)) | 1; + arg0->unk0 = 0xf7000000; + arg0->unk4 = (s32) ((temp_t5 << 0x10) | temp_t5); + return arg0 + 8; + } + arg0->unk4 = (s32) ((((arg1 << 0x18) | (arg2 << 0x10)) | (arg3 << 8)) | 0xff); + arg0->unk0 = 0xf7000000; + return arg0 + 8; +} +#else +GLOBAL_ASM( +.text +glabel set_setfillcolor +/* 0052D0 700046D0 3C0E8002 */ lui $t6, %hi(coloroutputmode) +/* 0052D4 700046D4 8DCE32AC */ lw $t6, %lo(coloroutputmode)($t6) +/* 0052D8 700046D8 00801025 */ move $v0, $a0 +/* 0052DC 700046DC 3C18F700 */ lui $t8, 0xf700 +/* 0052E0 700046E0 11C00013 */ beqz $t6, .L70004730 +/* 0052E4 700046E4 00054600 */ sll $t0, $a1, 0x18 +/* 0052E8 700046E8 0005C200 */ sll $t8, $a1, 8 +/* 0052EC 700046EC 000640C0 */ sll $t0, $a2, 3 +/* 0052F0 700046F0 310907C0 */ andi $t1, $t0, 0x7c0 +/* 0052F4 700046F4 3319F800 */ andi $t9, $t8, 0xf800 +/* 0052F8 700046F8 00075883 */ sra $t3, $a3, 2 +/* 0052FC 700046FC 316C003E */ andi $t4, $t3, 0x3e +/* 005300 70004700 03295025 */ or $t2, $t9, $t1 +/* 005304 70004704 014C1825 */ or $v1, $t2, $t4 +/* 005308 70004708 346D0001 */ ori $t5, $v1, 1 +/* 00530C 7000470C 00801025 */ move $v0, $a0 +/* 005310 70004710 3C0FF700 */ lui $t7, 0xf700 +/* 005314 70004714 AC4F0000 */ sw $t7, ($v0) +/* 005318 70004718 000D7400 */ sll $t6, $t5, 0x10 +/* 00531C 7000471C 01CD7825 */ or $t7, $t6, $t5 +/* 005320 70004720 AC4F0004 */ sw $t7, 4($v0) +/* 005324 70004724 24840008 */ addiu $a0, $a0, 8 +/* 005328 70004728 03E00008 */ jr $ra +/* 00532C 7000472C 00801025 */ move $v0, $a0 + +.L70004730: +/* 005330 70004730 0006CC00 */ sll $t9, $a2, 0x10 +/* 005334 70004734 01194825 */ or $t1, $t0, $t9 +/* 005338 70004738 00075A00 */ sll $t3, $a3, 8 +/* 00533C 7000473C 012B5025 */ or $t2, $t1, $t3 +/* 005340 70004740 354C00FF */ ori $t4, $t2, 0xff +/* 005344 70004744 AC4C0004 */ sw $t4, 4($v0) +/* 005348 70004748 24840008 */ addiu $a0, $a0, 8 +/* 00534C 7000474C AC580000 */ sw $t8, ($v0) +/* 005350 70004750 03E00008 */ jr $ra +/* 005354 70004754 00801025 */ move $v0, $a0 +) +#endif + +/** + * 5358 70004758 + * image capture routine, jpeg 16bit colour + */ +#ifdef NONMATCHING +void indy_grab_jpg_16bit(void) +{ + char iFileName[256]; + u32 iFileSize; + + while( 1 ) { + sprintf(&iFileName,"grab.%d.jpeg",jpg_16bit_grabnum); + if (check_file_found_on_indy(&iFileName,&iFileSize) == 0) break; + jpg_16bit_grabnum++; + } + sprintf(&iFileName, "grab.%d.temp.uix", jpg_16bit_grabnum); + indy_send_capture_data(&iFileName, ptr_video_settings2->frameb, (get_video2_settings_txtClipH() * get_video2_settings_txtClipW() * 2)); + sprintf(&iFileName, "uix2pix grab.%d.temp.uix", jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_16bit_grabnum); + response_from_command_string(&iFileName); +} +#else +const char aGrab_D_jpeg_1[] = "grab.%d.jpeg"; +const char aGrab_D_temp_uix[] = "grab.%d.temp.uix"; +const char aUix2pixGrab_D_temp_uix[] = "uix2pix grab.%d.temp.uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_tem[] = "fromalias grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgcopyFjfifGrab_D_temp_rgbGrab_D_[] = "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg"; +const char aRmGrab_D_temp_uixGrab_D_temp_pixGr[] = "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgviewGrab_D_jpeg[] = "imgview grab.%d.jpeg"; +GLOBAL_ASM( +.text +glabel indy_grab_jpg_16bit +/* 005358 70004758 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 00535C 7000475C AFB10024 */ sw $s1, 0x24($sp) +/* 005360 70004760 AFB20028 */ sw $s2, 0x28($sp) +/* 005364 70004764 AFB00020 */ sw $s0, 0x20($sp) +/* 005368 70004768 3C118003 */ lui $s1, %hi(aGrab_D_jpeg_1) +/* 00536C 7000476C AFBF002C */ sw $ra, 0x2c($sp) +/* 005370 70004770 26318490 */ addiu $s1, %lo(aGrab_D_jpeg_1) # addiu $s1, $s1, -0x7b70 +/* 005374 70004774 27B00038 */ addiu $s0, $sp, 0x38 +/* 005378 70004778 27B20034 */ addiu $s2, $sp, 0x34 +.L7000477C: +/* 00537C 7000477C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005380 70004780 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005384 70004784 02002025 */ move $a0, $s0 +/* 005388 70004788 0C002B25 */ jal sprintf +/* 00538C 7000478C 02202825 */ move $a1, $s1 +/* 005390 70004790 02002025 */ move $a0, $s0 +/* 005394 70004794 0FC34026 */ jal check_file_found_on_indy +/* 005398 70004798 02402825 */ move $a1, $s2 +/* 00539C 7000479C 10400006 */ beqz $v0, .L700047B8 +/* 0053A0 700047A0 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0053A4 700047A4 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0053A8 700047A8 3C018002 */ lui $at, %hi(jpg_16bit_grabnum) +/* 0053AC 700047AC 24C60001 */ addiu $a2, $a2, 1 +/* 0053B0 700047B0 1000FFF2 */ b .L7000477C +/* 0053B4 700047B4 AC2632C4 */ sw $a2, %lo(jpg_16bit_grabnum)($at) +.L700047B8: +/* 0053B8 700047B8 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0053BC 700047BC 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix) +/* 0053C0 700047C0 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0053C4 700047C4 24A584A0 */ addiu $a1, %lo(aGrab_D_temp_uix) # addiu $a1, $a1, -0x7b60 +/* 0053C8 700047C8 0C002B25 */ jal sprintf +/* 0053CC 700047CC 02002025 */ move $a0, $s0 +/* 0053D0 700047D0 0C001107 */ jal get_video2_settings_txtClipW +/* 0053D4 700047D4 00000000 */ nop +/* 0053D8 700047D8 00028C00 */ sll $s1, $v0, 0x10 +/* 0053DC 700047DC 00117403 */ sra $t6, $s1, 0x10 +/* 0053E0 700047E0 0C00110B */ jal get_video2_settings_txtClipH +/* 0053E4 700047E4 01C08825 */ move $s1, $t6 +/* 0053E8 700047E8 00510019 */ multu $v0, $s1 +/* 0053EC 700047EC 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) +/* 0053F0 700047F0 8DEF32A8 */ lw $t7, %lo(ptr_video_settings2)($t7) +/* 0053F4 700047F4 02002025 */ move $a0, $s0 +/* 0053F8 700047F8 8DE50028 */ lw $a1, 0x28($t7) +/* 0053FC 700047FC 00003012 */ mflo $a2 +/* 005400 70004800 0006C040 */ sll $t8, $a2, 1 +/* 005404 70004804 0FC33FF8 */ jal indy_send_capture_data +/* 005408 70004808 03003025 */ move $a2, $t8 +/* 00540C 7000480C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005410 70004810 3C058003 */ lui $a1, %hi(aUix2pixGrab_D_temp_uix) +/* 005414 70004814 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005418 70004818 24A584B4 */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix) # addiu $a1, $a1, -0x7b4c +/* 00541C 7000481C 0C002B25 */ jal sprintf +/* 005420 70004820 02002025 */ move $a0, $s0 +/* 005424 70004824 0FC34038 */ jal response_from_command_string +/* 005428 70004828 02002025 */ move $a0, $s0 +/* 00542C 7000482C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005430 70004830 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005434 70004834 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_tem) +/* 005438 70004838 24A584D0 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_tem) # addiu $a1, $a1, -0x7b30 +/* 00543C 7000483C 02002025 */ move $a0, $s0 +/* 005440 70004840 0C002B25 */ jal sprintf +/* 005444 70004844 00C03825 */ move $a3, $a2 +/* 005448 70004848 0FC34038 */ jal response_from_command_string +/* 00544C 7000484C 02002025 */ move $a0, $s0 +/* 005450 70004850 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005454 70004854 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005458 70004858 3C058003 */ lui $a1, %hi(aImgcopyFjfifGrab_D_temp_rgbGrab_D_) +/* 00545C 7000485C 24A584FC */ addiu $a1, %lo(aImgcopyFjfifGrab_D_temp_rgbGrab_D_) # addiu $a1, $a1, -0x7b04 +/* 005460 70004860 02002025 */ move $a0, $s0 +/* 005464 70004864 0C002B25 */ jal sprintf +/* 005468 70004868 00C03825 */ move $a3, $a2 +/* 00546C 7000486C 0FC34038 */ jal response_from_command_string +/* 005470 70004870 02002025 */ move $a0, $s0 +/* 005474 70004874 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005478 70004878 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 00547C 7000487C 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pixGr) +/* 005480 70004880 24A5852C */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pixGr) # addiu $a1, $a1, -0x7ad4 +/* 005484 70004884 02002025 */ move $a0, $s0 +/* 005488 70004888 00C03825 */ move $a3, $a2 +/* 00548C 7000488C 0C002B25 */ jal sprintf +/* 005490 70004890 AFA60010 */ sw $a2, 0x10($sp) +/* 005494 70004894 0FC34038 */ jal response_from_command_string +/* 005498 70004898 02002025 */ move $a0, $s0 +/* 00549C 7000489C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0054A0 700048A0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg) +/* 0054A4 700048A4 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0054A8 700048A8 24A58564 */ addiu $a1, %lo(aImgviewGrab_D_jpeg) # addiu $a1, $a1, -0x7a9c +/* 0054AC 700048AC 0C002B25 */ jal sprintf +/* 0054B0 700048B0 02002025 */ move $a0, $s0 +/* 0054B4 700048B4 0FC34038 */ jal response_from_command_string +/* 0054B8 700048B8 02002025 */ move $a0, $s0 +/* 0054BC 700048BC 8FBF002C */ lw $ra, 0x2c($sp) +/* 0054C0 700048C0 8FB00020 */ lw $s0, 0x20($sp) +/* 0054C4 700048C4 8FB10024 */ lw $s1, 0x24($sp) +/* 0054C8 700048C8 8FB20028 */ lw $s2, 0x28($sp) +/* 0054CC 700048CC 03E00008 */ jr $ra +/* 0054D0 700048D0 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + +/** + * 54D4 700048D4 + * image capture routine, jpeg 32bit colour + */ +#ifdef NONMATCHING +void indy_grab_jpg_32bit(void) +{ + char iFileName [256]; + ? sp34; + +loop_1: + sprintf(&iFileName, "grab.%d.jpeg", jpg_32bit_grabnum); + if (check_file_found_on_indy(&iFileName, &sp34) != 0) + { + jpg_32bit_grabnum = (s32) (jpg_32bit_grabnum + 1); + goto loop_1; + } + sprintf(&iFileName, "grab.%d.temp.Uix", jpg_32bit_grabnum); + indy_send_capture_data(&iFileName, &cfb_16_a, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); + sprintf(&iFileName, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_32bit_grabnum); + response_from_command_string(&iFileName); +} +#else +const char aGrab_D_jpeg[] = "grab.%d.jpeg"; +const char aGrab_D_temp_uix_0[] = "grab.%d.temp.Uix"; +const char aUix2pixXsDGrab_D_temp_uix[] = "Uix2pix -xs%d grab.%d.temp.Uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_t_0[] = "fromalias grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgcopyFjfifGrab_D_temp_rgbGrab__0[] = "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix_0[] = "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgviewGrab_D_jpeg_0[] = "imgview grab.%d.jpeg"; +GLOBAL_ASM( +.text +glabel indy_grab_jpg_32bit +/* 0054D4 700048D4 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 0054D8 700048D8 AFB10020 */ sw $s1, 0x20($sp) +/* 0054DC 700048DC AFB20024 */ sw $s2, 0x24($sp) +/* 0054E0 700048E0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0054E4 700048E4 3C118003 */ lui $s1, %hi(aGrab_D_jpeg) +/* 0054E8 700048E8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0054EC 700048EC AFB30028 */ sw $s3, 0x28($sp) +/* 0054F0 700048F0 2631857C */ addiu $s1, %lo(aGrab_D_jpeg) # addiu $s1, $s1, -0x7a84 +/* 0054F4 700048F4 27B00038 */ addiu $s0, $sp, 0x38 +/* 0054F8 700048F8 27B20034 */ addiu $s2, $sp, 0x34 +.L700048FC: +/* 0054FC 700048FC 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005500 70004900 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005504 70004904 02002025 */ move $a0, $s0 +/* 005508 70004908 0C002B25 */ jal sprintf +/* 00550C 7000490C 02202825 */ move $a1, $s1 +/* 005510 70004910 02002025 */ move $a0, $s0 +/* 005514 70004914 0FC34026 */ jal check_file_found_on_indy +/* 005518 70004918 02402825 */ move $a1, $s2 +/* 00551C 7000491C 10400006 */ beqz $v0, .L70004938 +/* 005520 70004920 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005524 70004924 8E7332C8 */ lw $s3, %lo(jpg_32bit_grabnum)($s3) +/* 005528 70004928 3C018002 */ lui $at, %hi(jpg_32bit_grabnum) +/* 00552C 7000492C 26730001 */ addiu $s3, $s3, 1 +/* 005530 70004930 1000FFF2 */ b .L700048FC +/* 005534 70004934 AC3332C8 */ sw $s3, %lo(jpg_32bit_grabnum)($at) +.L70004938: +/* 005538 70004938 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 00553C 7000493C 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_0) +/* 005540 70004940 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005544 70004944 24A5858C */ addiu $a1, %lo(aGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7a74 +/* 005548 70004948 0C002B25 */ jal sprintf +/* 00554C 7000494C 02002025 */ move $a0, $s0 +/* 005550 70004950 0C001107 */ jal get_video2_settings_txtClipW +/* 005554 70004954 00000000 */ nop +/* 005558 70004958 00028C00 */ sll $s1, $v0, 0x10 +/* 00555C 7000495C 00117403 */ sra $t6, $s1, 0x10 +/* 005560 70004960 0C00110B */ jal get_video2_settings_txtClipH +/* 005564 70004964 01C08825 */ move $s1, $t6 +/* 005568 70004968 00510019 */ multu $v0, $s1 +/* 00556C 7000496C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 005570 70004970 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 005574 70004974 02002025 */ move $a0, $s0 +/* 005578 70004978 00003012 */ mflo $a2 +/* 00557C 7000497C 00067880 */ sll $t7, $a2, 2 +/* 005580 70004980 0FC33FF8 */ jal indy_send_capture_data +/* 005584 70004984 01E03025 */ move $a2, $t7 +/* 005588 70004988 0C001107 */ jal get_video2_settings_txtClipW +/* 00558C 7000498C 00000000 */ nop +/* 005590 70004990 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005594 70004994 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix) +/* 005598 70004998 24A585A0 */ addiu $a1, %lo(aUix2pixXsDGrab_D_temp_uix) # addiu $a1, $a1, -0x7a60 +/* 00559C 7000499C 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055A0 700049A0 02002025 */ move $a0, $s0 +/* 0055A4 700049A4 0C002B25 */ jal sprintf +/* 0055A8 700049A8 00403025 */ move $a2, $v0 +/* 0055AC 700049AC 0FC34038 */ jal response_from_command_string +/* 0055B0 700049B0 02002025 */ move $a0, $s0 +/* 0055B4 700049B4 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 0055B8 700049B8 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055BC 700049BC 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_t_0) +/* 0055C0 700049C0 24A585C0 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_t_0) # addiu $a1, $a1, -0x7a40 +/* 0055C4 700049C4 02002025 */ move $a0, $s0 +/* 0055C8 700049C8 0C002B25 */ jal sprintf +/* 0055CC 700049CC 00E03025 */ move $a2, $a3 +/* 0055D0 700049D0 0FC34038 */ jal response_from_command_string +/* 0055D4 700049D4 02002025 */ move $a0, $s0 +/* 0055D8 700049D8 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 0055DC 700049DC 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055E0 700049E0 3C058003 */ lui $a1, %hi(aImgcopyFjfifGrab_D_temp_rgbGrab__0) +/* 0055E4 700049E4 24A585EC */ addiu $a1, %lo(aImgcopyFjfifGrab_D_temp_rgbGrab__0) # addiu $a1, $a1, -0x7a14 +/* 0055E8 700049E8 02002025 */ move $a0, $s0 +/* 0055EC 700049EC 0C002B25 */ jal sprintf +/* 0055F0 700049F0 00E03025 */ move $a2, $a3 +/* 0055F4 700049F4 0FC34038 */ jal response_from_command_string +/* 0055F8 700049F8 02002025 */ move $a0, $s0 +/* 0055FC 700049FC 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005600 70004A00 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 005604 70004A04 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix_0) +/* 005608 70004A08 24A5861C */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix_0) # addiu $a1, $a1, -0x79e4 +/* 00560C 70004A0C 02002025 */ move $a0, $s0 +/* 005610 70004A10 00E03025 */ move $a2, $a3 +/* 005614 70004A14 0C002B25 */ jal sprintf +/* 005618 70004A18 AFA70010 */ sw $a3, 0x10($sp) +/* 00561C 70004A1C 0FC34038 */ jal response_from_command_string +/* 005620 70004A20 02002025 */ move $a0, $s0 +/* 005624 70004A24 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005628 70004A28 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg_0) +/* 00562C 70004A2C 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005630 70004A30 24A58654 */ addiu $a1, %lo(aImgviewGrab_D_jpeg_0) # addiu $a1, $a1, -0x79ac +/* 005634 70004A34 0C002B25 */ jal sprintf +/* 005638 70004A38 02002025 */ move $a0, $s0 +/* 00563C 70004A3C 0FC34038 */ jal response_from_command_string +/* 005640 70004A40 02002025 */ move $a0, $s0 +/* 005644 70004A44 8FBF002C */ lw $ra, 0x2c($sp) +/* 005648 70004A48 8FB0001C */ lw $s0, 0x1c($sp) +/* 00564C 70004A4C 8FB10020 */ lw $s1, 0x20($sp) +/* 005650 70004A50 8FB20024 */ lw $s2, 0x24($sp) +/* 005654 70004A54 8FB30028 */ lw $s3, 0x28($sp) +/* 005658 70004A58 03E00008 */ jr $ra +/* 00565C 70004A5C 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + +/** + * 5660 70004A60 + * image capture routine, rgb 16bit colour + */ +#ifdef NONMATCHING +void indy_grab_rgb_16bit(void) +{ + ? sp30; + ? sp2C; + +loop_1: + sprintf(&sp30, "grab.%d.rgb", rgb_16bit_grabnum); + if (check_file_found_on_indy(&sp30, &sp2C) != 0) + { + rgb_16bit_grabnum = (s32) (rgb_16bit_grabnum + 1); + goto loop_1; + } + sprintf(&sp30, "grab.%d.temp.uix", rgb_16bit_grabnum); + indy_send_capture_data(&sp30, ptr_video_settings2->frameb, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 2); + sprintf(&sp30, "uix2pix grab.%d.temp.uix", rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_16bit_grabnum, rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "rm grab.%d.temp.uix grab.%d.temp.pix", rgb_16bit_grabnum, rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "imgview grab.%d.rgb", rgb_16bit_grabnum); + response_from_command_string(&sp30); +} +#else +const char aGrab_D_rgb[] = "grab.%d.rgb"; +const char aGrab_D_temp_uix_1[] = "grab.%d.temp.uix"; +const char aUix2pixGrab_D_temp_uix_0[] = "uix2pix grab.%d.temp.uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_rgb[] = "fromalias grab.%d.temp.pix grab.%d.rgb"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix[] = "rm grab.%d.temp.uix grab.%d.temp.pix"; +const char aImgviewGrab_D_rgb[] = "imgview grab.%d.rgb"; +GLOBAL_ASM( +.text +glabel indy_grab_rgb_16bit +/* 005660 70004A60 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 005664 70004A64 AFB1001C */ sw $s1, 0x1c($sp) +/* 005668 70004A68 AFB20020 */ sw $s2, 0x20($sp) +/* 00566C 70004A6C AFB00018 */ sw $s0, 0x18($sp) +/* 005670 70004A70 3C118003 */ lui $s1, %hi(aGrab_D_rgb) +/* 005674 70004A74 AFBF0024 */ sw $ra, 0x24($sp) +/* 005678 70004A78 2631866C */ addiu $s1, %lo(aGrab_D_rgb) # addiu $s1, $s1, -0x7994 +/* 00567C 70004A7C 27B00030 */ addiu $s0, $sp, 0x30 +/* 005680 70004A80 27B2002C */ addiu $s2, $sp, 0x2c +.L70004A84: +/* 005684 70004A84 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005688 70004A88 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 00568C 70004A8C 02002025 */ move $a0, $s0 +/* 005690 70004A90 0C002B25 */ jal sprintf +/* 005694 70004A94 02202825 */ move $a1, $s1 +/* 005698 70004A98 02002025 */ move $a0, $s0 +/* 00569C 70004A9C 0FC34026 */ jal check_file_found_on_indy +/* 0056A0 70004AA0 02402825 */ move $a1, $s2 +/* 0056A4 70004AA4 10400006 */ beqz $v0, .L70004AC0 +/* 0056A8 70004AA8 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 0056AC 70004AAC 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 0056B0 70004AB0 3C018002 */ lui $at, %hi(rgb_16bit_grabnum) +/* 0056B4 70004AB4 24C60001 */ addiu $a2, $a2, 1 +/* 0056B8 70004AB8 1000FFF2 */ b .L70004A84 +/* 0056BC 70004ABC AC2632CC */ sw $a2, %lo(rgb_16bit_grabnum)($at) +.L70004AC0: +/* 0056C0 70004AC0 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 0056C4 70004AC4 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_1) +/* 0056C8 70004AC8 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 0056CC 70004ACC 24A58678 */ addiu $a1, %lo(aGrab_D_temp_uix_1) # addiu $a1, $a1, -0x7988 +/* 0056D0 70004AD0 0C002B25 */ jal sprintf +/* 0056D4 70004AD4 02002025 */ move $a0, $s0 +/* 0056D8 70004AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0056DC 70004ADC 00000000 */ nop +/* 0056E0 70004AE0 00028C00 */ sll $s1, $v0, 0x10 +/* 0056E4 70004AE4 00117403 */ sra $t6, $s1, 0x10 +/* 0056E8 70004AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0056EC 70004AEC 01C08825 */ move $s1, $t6 +/* 0056F0 70004AF0 00510019 */ multu $v0, $s1 +/* 0056F4 70004AF4 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) +/* 0056F8 70004AF8 8DEF32A8 */ lw $t7, %lo(ptr_video_settings2)($t7) +/* 0056FC 70004AFC 02002025 */ move $a0, $s0 +/* 005700 70004B00 8DE50028 */ lw $a1, 0x28($t7) +/* 005704 70004B04 00003012 */ mflo $a2 +/* 005708 70004B08 0006C040 */ sll $t8, $a2, 1 +/* 00570C 70004B0C 0FC33FF8 */ jal indy_send_capture_data +/* 005710 70004B10 03003025 */ move $a2, $t8 +/* 005714 70004B14 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005718 70004B18 3C058003 */ lui $a1, %hi(aUix2pixGrab_D_temp_uix_0) +/* 00571C 70004B1C 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005720 70004B20 24A5868C */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7974 +/* 005724 70004B24 0C002B25 */ jal sprintf +/* 005728 70004B28 02002025 */ move $a0, $s0 +/* 00572C 70004B2C 0FC34038 */ jal response_from_command_string +/* 005730 70004B30 02002025 */ move $a0, $s0 +/* 005734 70004B34 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005738 70004B38 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 00573C 70004B3C 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_rgb) +/* 005740 70004B40 24A586A8 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_rgb) # addiu $a1, $a1, -0x7958 +/* 005744 70004B44 02002025 */ move $a0, $s0 +/* 005748 70004B48 0C002B25 */ jal sprintf +/* 00574C 70004B4C 00C03825 */ move $a3, $a2 +/* 005750 70004B50 0FC34038 */ jal response_from_command_string +/* 005754 70004B54 02002025 */ move $a0, $s0 +/* 005758 70004B58 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 00575C 70004B5C 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005760 70004B60 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix) +/* 005764 70004B64 24A586D0 */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix) # addiu $a1, $a1, -0x7930 +/* 005768 70004B68 02002025 */ move $a0, $s0 +/* 00576C 70004B6C 0C002B25 */ jal sprintf +/* 005770 70004B70 00C03825 */ move $a3, $a2 +/* 005774 70004B74 0FC34038 */ jal response_from_command_string +/* 005778 70004B78 02002025 */ move $a0, $s0 +/* 00577C 70004B7C 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005780 70004B80 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb) +/* 005784 70004B84 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005788 70004B88 24A586F8 */ addiu $a1, %lo(aImgviewGrab_D_rgb) # addiu $a1, $a1, -0x7908 +/* 00578C 70004B8C 0C002B25 */ jal sprintf +/* 005790 70004B90 02002025 */ move $a0, $s0 +/* 005794 70004B94 0FC34038 */ jal response_from_command_string +/* 005798 70004B98 02002025 */ move $a0, $s0 +/* 00579C 70004B9C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0057A0 70004BA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0057A4 70004BA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0057A8 70004BA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0057AC 70004BAC 03E00008 */ jr $ra +/* 0057B0 70004BB0 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif + +/** + * 57B4 70004BB4 + * image capture routine, rgb 32bit colour + */ +#ifdef NONMATCHING +void indy_grab_rgb_32bit(void) +{ + ? sp30; + ? sp2C; + +loop_1: + sprintf(&sp30, "grab.%d.rgb", rgb_32bit_grabnum); + if (check_file_found_on_indy(&sp30, &sp2C) != 0) + { + rgb_32bit_grabnum = (s32) (rgb_32bit_grabnum + 1); + goto loop_1; + } + sprintf(&sp30, "grab.%d.temp.Uix", rgb_32bit_grabnum); + indy_send_capture_data(&sp30, &cfb_16_a, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); + sprintf(&sp30, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_32bit_grabnum, rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "rm grab.%d.temp.Uix grab.%d.temp.pix", rgb_32bit_grabnum, rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "imgview grab.%d.rgb", rgb_32bit_grabnum); + response_from_command_string(&sp30); +} +#else +const char aGrab_D_rgb_0[] = "grab.%d.rgb"; +const char aGrab_D_temp_uix_2[] = "grab.%d.temp.Uix"; +const char aUix2pixXsDGrab_D_temp_uix_0[] = "Uix2pix -xs%d grab.%d.temp.Uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_r_0[] = "fromalias grab.%d.temp.pix grab.%d.rgb"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix_1[] = "rm grab.%d.temp.Uix grab.%d.temp.pix"; +const char aImgviewGrab_D_rgb_0[] = "imgview grab.%d.rgb"; +GLOBAL_ASM( +.text +glabel indy_grab_rgb_32bit +/* 0057B4 70004BB4 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 0057B8 70004BB8 AFB10018 */ sw $s1, 0x18($sp) +/* 0057BC 70004BBC AFB2001C */ sw $s2, 0x1c($sp) +/* 0057C0 70004BC0 AFB00014 */ sw $s0, 0x14($sp) +/* 0057C4 70004BC4 3C118003 */ lui $s1, %hi(aGrab_D_rgb_0) +/* 0057C8 70004BC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0057CC 70004BCC AFB30020 */ sw $s3, 0x20($sp) +/* 0057D0 70004BD0 2631870C */ addiu $s1, %lo(aGrab_D_rgb_0) # addiu $s1, $s1, -0x78f4 +/* 0057D4 70004BD4 27B00030 */ addiu $s0, $sp, 0x30 +/* 0057D8 70004BD8 27B2002C */ addiu $s2, $sp, 0x2c +.L70004BDC: +/* 0057DC 70004BDC 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0057E0 70004BE0 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 0057E4 70004BE4 02002025 */ move $a0, $s0 +/* 0057E8 70004BE8 0C002B25 */ jal sprintf +/* 0057EC 70004BEC 02202825 */ move $a1, $s1 +/* 0057F0 70004BF0 02002025 */ move $a0, $s0 +/* 0057F4 70004BF4 0FC34026 */ jal check_file_found_on_indy +/* 0057F8 70004BF8 02402825 */ move $a1, $s2 +/* 0057FC 70004BFC 10400006 */ beqz $v0, .L70004C18 +/* 005800 70004C00 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005804 70004C04 8E7332D0 */ lw $s3, %lo(rgb_32bit_grabnum)($s3) +/* 005808 70004C08 3C018002 */ lui $at, %hi(rgb_32bit_grabnum) +/* 00580C 70004C0C 26730001 */ addiu $s3, $s3, 1 +/* 005810 70004C10 1000FFF2 */ b .L70004BDC +/* 005814 70004C14 AC3332D0 */ sw $s3, %lo(rgb_32bit_grabnum)($at) +.L70004C18: +/* 005818 70004C18 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 00581C 70004C1C 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_2) +/* 005820 70004C20 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 005824 70004C24 24A58718 */ addiu $a1, %lo(aGrab_D_temp_uix_2) # addiu $a1, $a1, -0x78e8 +/* 005828 70004C28 0C002B25 */ jal sprintf +/* 00582C 70004C2C 02002025 */ move $a0, $s0 +/* 005830 70004C30 0C001107 */ jal get_video2_settings_txtClipW +/* 005834 70004C34 00000000 */ nop +/* 005838 70004C38 00028C00 */ sll $s1, $v0, 0x10 +/* 00583C 70004C3C 00117403 */ sra $t6, $s1, 0x10 +/* 005840 70004C40 0C00110B */ jal get_video2_settings_txtClipH +/* 005844 70004C44 01C08825 */ move $s1, $t6 +/* 005848 70004C48 00510019 */ multu $v0, $s1 +/* 00584C 70004C4C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 005850 70004C50 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 005854 70004C54 02002025 */ move $a0, $s0 +/* 005858 70004C58 00003012 */ mflo $a2 +/* 00585C 70004C5C 00067880 */ sll $t7, $a2, 2 +/* 005860 70004C60 0FC33FF8 */ jal indy_send_capture_data +/* 005864 70004C64 01E03025 */ move $a2, $t7 +/* 005868 70004C68 0C001107 */ jal get_video2_settings_txtClipW +/* 00586C 70004C6C 00000000 */ nop +/* 005870 70004C70 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005874 70004C74 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix_0) +/* 005878 70004C78 24A5872C */ addiu $a1, %lo(aUix2pixXsDGrab_D_temp_uix_0) # addiu $a1, $a1, -0x78d4 +/* 00587C 70004C7C 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 005880 70004C80 02002025 */ move $a0, $s0 +/* 005884 70004C84 0C002B25 */ jal sprintf +/* 005888 70004C88 00403025 */ move $a2, $v0 +/* 00588C 70004C8C 0FC34038 */ jal response_from_command_string +/* 005890 70004C90 02002025 */ move $a0, $s0 +/* 005894 70004C94 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005898 70004C98 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 00589C 70004C9C 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_r_0) +/* 0058A0 70004CA0 24A5874C */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_r_0) # addiu $a1, $a1, -0x78b4 +/* 0058A4 70004CA4 02002025 */ move $a0, $s0 +/* 0058A8 70004CA8 0C002B25 */ jal sprintf +/* 0058AC 70004CAC 00E03025 */ move $a2, $a3 +/* 0058B0 70004CB0 0FC34038 */ jal response_from_command_string +/* 0058B4 70004CB4 02002025 */ move $a0, $s0 +/* 0058B8 70004CB8 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0058BC 70004CBC 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 0058C0 70004CC0 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix_1) +/* 0058C4 70004CC4 24A58774 */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix_1) # addiu $a1, $a1, -0x788c +/* 0058C8 70004CC8 02002025 */ move $a0, $s0 +/* 0058CC 70004CCC 0C002B25 */ jal sprintf +/* 0058D0 70004CD0 00E03025 */ move $a2, $a3 +/* 0058D4 70004CD4 0FC34038 */ jal response_from_command_string +/* 0058D8 70004CD8 02002025 */ move $a0, $s0 +/* 0058DC 70004CDC 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0058E0 70004CE0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb_0) +/* 0058E4 70004CE4 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 0058E8 70004CE8 24A5879C */ addiu $a1, %lo(aImgviewGrab_D_rgb_0) # addiu $a1, $a1, -0x7864 +/* 0058EC 70004CEC 0C002B25 */ jal sprintf +/* 0058F0 70004CF0 02002025 */ move $a0, $s0 +/* 0058F4 70004CF4 0FC34038 */ jal response_from_command_string +/* 0058F8 70004CF8 02002025 */ move $a0, $s0 +/* 0058FC 70004CFC 8FBF0024 */ lw $ra, 0x24($sp) +/* 005900 70004D00 8FB00014 */ lw $s0, 0x14($sp) +/* 005904 70004D04 8FB10018 */ lw $s1, 0x18($sp) +/* 005908 70004D08 8FB2001C */ lw $s2, 0x1c($sp) +/* 00590C 70004D0C 8FB30020 */ lw $s3, 0x20($sp) +/* 005910 70004D10 03E00008 */ jr $ra +/* 005914 70004D14 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif diff --git a/src/video.h b/src/video.h new file mode 100644 index 0000000..1e65243 --- /dev/null +++ b/src/video.h @@ -0,0 +1,27 @@ +#ifndef _VIDEO_H_ +#define _VIDEO_H_ +#include "ultra64.h" + +typedef struct video_settings video_settings, *Pvideo_settings; + +struct video_settings { + int mode; + short txtClipW; + short txtClipH; + f32 far; + f32 scale; + f32 aspect; + f32 anonymous_6; + short somethingW; + short somethingH; + short width; + short height; + short ulx; + short uly; + int anonymous_12; + u8* frameb; +}; + +#endif + + diff --git a/tools/1172compress.sh b/tools/1172compress.sh new file mode 100644 index 0000000..9d0ba6e --- /dev/null +++ b/tools/1172compress.sh @@ -0,0 +1,7 @@ +#!/bin/bash +if [ ! -f header.tmp ]; then + echo -n -e \\x11\\x72 > header.tmp +fi +cat $1| tools/gzip --no-name --best | tail --bytes=+11 | head --bytes=-8 > $1.tmp +cat header.tmp $1.tmp > $2 +rm $1.tmp diff --git a/tools/RareZip.sh b/tools/RareZip.sh new file mode 100644 index 0000000..9fdf520 --- /dev/null +++ b/tools/RareZip.sh @@ -0,0 +1,37 @@ +#!/bin/bash +if [ $1 == '--decompress' ] +then + # Add the gZip Header to a new file using the name given in command + echo -n -e \\x1F\\x8B\\x08\\x00\\x00\\x00\\x00\\x00\\x02\\x03 > $2 + # Add the contents of the compressed file minus the 1172 to the new file + cat $2Z | tail --bytes=+3 >> $2 + # copy the new file over the old compressed file + cat $2 > $2Z + # decompress the Z file to the filename given in the command + cat $2Z | gzip --decompress > $2 + # remove the compressed Z file + rm $2Z + echo Successfully Decompressed $2 + +elif [ $1 == '-?' ] || [ $1 == '-help' ] +then + echo Compress File and remove extra Data + echo Usage: + echo -e "\t RareZip [--decompress] File" + echo -e "\t Example:" + echo -e "\t\t RareZip Pppk" + echo -e "\t Output:" + echo -e "\t\t PppkZ (compressed)" + echo -e "\t Example:" + echo -e "\t\t RareZip --decompress Pppk" + echo -e "\t Output:" + echo -e "\t\t Pppk (uncompressed)" +else + # Add 1172 header to new Z file + echo -n -e \\x11\\x72 > $1Z + # Compress file given in command and trim then append to 1172 Z file + gzip --no-name -c $1 | tail --bytes=+11 | head --bytes=-8 >> $1Z + # Remove original file, can be recovered using decompress + rm $1 + echo Successfully Compressed $1 +fi diff --git a/tools/SGIImageViewer.exe b/tools/SGIImageViewer.exe new file mode 100644 index 0000000000000000000000000000000000000000..a4c5490411e408d7c1010fd29b050c2fe1b14aee GIT binary patch literal 34816 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 literal 0 HcmV?d00001 diff --git a/tools/SGIImgView.png b/tools/SGIImgView.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e59674cc6f06fb341a43835f6e6ae1ecb42366 GIT binary patch literal 394635 zcmZ5`2Q*w=)HabI(L*<-efBzM845fA$jol0S*oh$tzVw9UPpyS2#F# z1_|%{dBRp*?C|IBzKg1nI}Q$M_umUQ`57ra4lWMPD@8dy@5TKaAI$StK=!E0HjpA* z0wD=A_H-tp;<}ea7%}`JO7Ht8Jhif1F0Y0cA0(gDFW$I#*UQ@h4rZNH-lQx04B8u0 zXoE3S@wWH5xFQ}xrLpte&9A=_g?E`?(y@QSp0YI6!b~ zCByA4C?^8>PxA|eJm^rZ03Bz3G0Gokf6;^WUJx_)nj)*b0kj`XkD0Yzg2vkV+KSXY z!Xuq5Y8rP{0M{*n*Fo5|xmz@(X{>3oB0Hp{@87Td9EWA1nyQ}*)9m^o_vAx3Di9YLthR~^Hy7HR+NoSTx>V}iG zA|5mF%;Bo*nBQ>h*yXN)|Djgv(Q35$5fK(%EvX7pPgz$sL7PlU!X*A`RbcI#3+;pM z;qYfaSnuRwf~hL}ijkUsmG=2QwpL>v=A4UMPBLBg@t<;j4GZobMw7O!wCk{B8?aqoI#}h>m_JH@fEik`hW3uV7>ntQH+vON&-iC*>*9O4++yh@! zPA$#KcEv$fdgB5|*vVwDE?8TM`7>wCQH^=s6*lYi=LkGJN0gvf3-<}+u#^mpVD`Ws z1~s_*?9yan%^_E<`8c6owdQ7^Fvkvrd4(AyKOngC%3}P?rTfgUbQcgG6{{fZ#tC$VR1ETi5NlsG_cS%g&%4JA{)V8{reiY#EgA#e!eKU%>$2xj!#A$o!x+*=LMe0rQvPrV?&2O7Pin}40eFM#23^@c z)|cBd=C_Q>Mz>}JTq|Rl0tH~<+t5fmIlM3{-X*%zKtv)?|+xAsg^Gp zfCTXnwxs2I@Emd;#EEHgG?ntZg?u<(-byq}i{`Pn>2Kk`EQyo3Ryge^aKs#54-P=g zZ##@Z%zpAKrS|?!v;G5PvKJ;&Jnx!~c3ij9&#i#V>s$N)Ux4^qV_uMVPlL zGoK!fth5=3Un1L_v0e7dT9{IB6Ny-3+um5kbzw9DaB3Y5@ZIQ)#-0z0wOXDRR!ZMF zt-RhMlR7@QXy%{4iYGckgWIreklQsXzMC;JN62l%9K`JmIb+^{!od+orI%5Tu3Rjt zyz@p7w4czB-d}Zxro^i#T=+ZF6qI@%HIJwC;QC4!|^b{ zD&xP20+WU{@cnG#xR{Ng;k-edcew<`3xM_|zxekG&!Qfv@;0z@zzm z7%?&l)HCoz+m&M=cI@7*4Z4RDbKl%|vwazIC30O!hQgx#02|sAIDAmQx%^v?Gf8LE z;UzR9`}|f?rdSpgYwj_z!DqP|T&W31I+0%3O7CuqtyE^hcFcWdcBPpDZ;kl_dIRV> zHuxX~OaWcYt%HztKLC~^$Mj^i&)n@Q7J%bmem>p@xD~=F!mhGIE)2SC1Fwm|my%2m zaiwn6`AwzPTFkFd{NS58Y!San8$2cO*0D=E=W+;gazOUQ1q@9wSqxkQ-NMIO_s`6) zLkvDouEA~2v%%hbpRD4psw*)G1S&Hs0Gqbk#*j4T>-oNKou{n`>BG9pfCH;P_Xt=p zsnkD_OXl7-vZ*eDl#?>N(<=N9|0jhp9*xI`|He*E`9`^)=@|mc8SRa@w}Cg08^Qz5 zd)t(!qOM`FYXdO7v!91%Xr}DT+$;r^Xcd#kNATO{a|fkP8FU{RGZUS?Q`Rmpkz~aM z=9jp~4;nyJEvsb)knEpe)S1eP|BVEJ=3H4RHI;oGQxLqX=qd<37VY`^J-fIB8YtpPV=qu4$?MCn}H?IB6CKL&(7XhNVT zgvFluIQg$V{S5<5OW*X}-a^2=`x54E`$I^`JD_LC(#D~FMuOtRVH9V<&3mh6M0^h*P@FDv{?MLo?np-N;7^34c$PL*cIBr+v_Cy3v=K2{Q z_(>TLG>iFcyzkn%9digcGMn*BYs%l>wutjvY%{-n#(z`6iM>V0!1uCGfad2B>KCHo z!px(3X4i{zX0APt#4KAwk<`7CFoQqN_Tt6o6*od+oaU3kmU4FRaf~enW4wG)W?&wW zkA@rvkzq!|0T>E?p8>}2Ed|utX|xgjYmi}o+Fq0XgQkw>Eg$|1=nX^&{k!7++JU}K zwasdZYsyZ_4e|lb_|K%*yqq&1;p^%*c1{oPXS!^~H!q9?d{hwa*xnEG5}lSXK0F^E z1DxBZjEzeC+NTn6gD%CkC(o>&pK`)(2$)=uDeFEq=L?c6K5-$=e%F6or#<-ed>RTu zs3S$|{}{T|`6bo~;h!(vriJ=z4k2++*!o`$@zS$ruQb z;}YV1E%<&4jhSV>8R>!?6(K!|GK_vQ>&eJ)vR>MV9=VHoqUjwDZOsP}{u|NYJ#Fx< zU#0gBwt4p+07C$|{d{=6;|!i(x0-+{ESy)x1?)G)p#QG$CI)Yvzwqj4=NiwSDD!+a z?TC{Bfc@6cdNGtkxN6dS9ZTlF8V$iju3-EiSl7dIfz+mH*5+jHehW6#|01(2HQ%w3 z^ri*Xyj8K&gSMTVhF=FZR(uS17?i1&mYB~Wys{_xZcP4(ZCCyB5^7$O$pmhA&EfWxTthLy43 zlqA~R9ahCJf&Iom-GYVxWDe}u031@+0o_&NhaPnV$n1Up0{9b%+fgOx%W^`Toyy9< zXsc^nbaTt@x=fr4xC;or9j$EHuVIBs-<(M>3NjXH4=X1 zjO_vc0U*v$kRcY`fY>PHd_X7Tb!yC1i@pZ8p)ataCYMJG?5}Ub8$f5Vw+ExXevlz z^9a7FZor9{>G*xL(3v!C*N4n)-WY8e&zs$Xz1Wq@unjTLq95cILwVRbwtlSQ6L7QJ zpuY$W=hrq(?>yy&^-L6*2EvQ5xz`5REz=ducF%^`DO8kUodkT^ciw0V6I$vS^#QqK zVCvxGlm_NIew$M{7iU`61rW>%0QG$3WZBvG1i`!zu;F|=co_KM51hE1A+w#aGCwC- zxtJ8g?qa>+Vgakhkn?!Sq7@811XD^j%6z7v9BdL_R{-@lh+t|gTeo@`H=A+XMp-_)|12d9NfYF0 zzDEhm`X>Pak-((UJ+YZo&a$Af=bgTOdFe})7tQ&AW8)(5CNpXF8HMjO!U1x@0(%;0 z3>%z090kb?A|72-9&LO}k~_2-(fn3839AQWo7>d>Nl_O+y#x&5N^Oq7A9@ z-fhVG1HXy_w-3p(&)V@61CQ8iI2jnlOc(-o@wBj&kdtd^w`1~YF$7uLHX5Y@!N$!& ze1TZYRm{OrvcczLA~EE$AJbe8CUJ^iQ+D$i)31vyPDVgF%87l+7UF@4=JV;=e+s~G z!Ya*XAmZcF{OQuz?O3nNLda#=Mh*&wZVbi4?YL<_k<7U*WWKHgTozz4Vg{I;6kDmy z3@ic+IR8z91%NM5*ewu6!{OO#5w^bua#=-_Ed8fJ4%Qt3xd3AZnX#vFw=(Gmet^vq zz4l6UfQ;-?@7~8y7f<#q8Y(- ztbmbQ*dxw4@SGKrV3irW8Jc41`5edOLh10Tz7I-(b5v?za@k!5I5%kDDjBMcbC-{*l+FS%by1A`$|)kfAjhrn;7&LcT*gt zIq4W38H4HPCJk&zCXQoGkN-fYk0QFz1MN~!hk2M)(9$EYYtrne>I?8vMa{x>u?KM7 zK8VaI!C~kQ0y(UswlxL5B+0;@Ko8miPx_r35!X1mm;v<7y1Lm-k8Q&hhFS6|B%GO5 z>U8Mv*3Uc;X{Mvr(Zv_I(lv^_BYqMB@Y>vOcz^ua*-#2s?2;O%@nhIPgOrEs1@)(_ zaFe5GvZhOZ=!e)<3$3Q>9KcpDz1c|*2)shGa-rVG?7GG;vrY}VTwb|Ogm|wa+E$Sb zE}4s6WS50G*b(QKh&^L8_5^{MP5~fnUOwuWz4?O=1J9qeBcNs9blgCg=tE4t0XRIZ zAPITX&3qfm|8q870+ERl_+jjL_fM9FfEANZBpaCds24>3b87;FS*>{PpLuKz9d#64 zC01U1D>FN1l{!L04g?QaLtA(X?-u+81&5{4toC_k0h{ z%3u-raw1OC^z^>msFC7mve(d|s*mL6!;CT4%H0{>Il%4I31c_5Yu zmjOb2h#ANeGx3|zYDWp0d*Zqr{0!WByBef*#!2IY?glV8ou8B~8;VKZk{vdlbErt1 zTd$l$4|$f_QCVUyd;j<_nFT?L#f+Y&Wj!&^iYxJ>^9G3YA9jk6g=*Q4Z25HED8D|s!-;&Aj6#X`t^Sk@lQ8!gQ>Y7j;D1aK>d#qX0HE_;pIrzcIF2R%)@UZ`dJN-zx*3P{!+U4hSs$wNR7vjCUXaZQRY`!bxG zt&AO^WEUq^7i~-aNeB(W;eP-tyjkq*WA;BzoKl8eTV9{c;BA+M;@-3fr4!>{Lc!_B zRy)$O@|hAy{U@v|&dGfZR+e+|d*hGKKwKr_W?n4Nw69tb{W5?cZTYeFVp3>9@#9g0 ztj1Upew9m6F!3jakg~s&-$nNZUqz*#`o&)iT)3>aHFoHK(e=OZK&Ea7Y4J8TE!6#a z$sc;qQ|b>ClxE-wx3K#I1?`=a7W~}xfd+u%!7^v~S)GBY*A}orRo5B*Y%UN@RDnS* zRU?*slm7kAr;65-oLA~h#|bIW{cDKt*$m~}zi}#OkxS|BACyQcZXEGpH~oG?aNb;Y z*&=lnO~)ex6W5f&!~X#IU*_bGQl5{)$VWdm<08b-nyD^(9yA@vh<+OOgeJ_tpyuCJ ze+jrZK%n%C?KZ~FVKV8f6&NEa!D_y4JhLy>GC8iz&l^77lT+&7aEm=y@c!4D|1x)! zNTGR&;$1$c?P@=D7xaO8JE=>@Dk<&iQ4RL$+T4eL9=%2eZcOTHngGC=6dEtqqY#n}71VzXOd-!W5kR^kHqU&7TvWP&e|uYuth{NP6uT1@0Ezc7ZR*I5nZ^Srtv- zuBmLVkbGPmv-9c|@1qcAOqf{vF*3!(Z7&ARx4PM|7xTY!`cDO>VeT6#&T-8|P@cIu z`@m(evyHqAgkSL4wS|7VW3X{*VVts=*V zue5w8O&1b|_#ytbwg~0JLnN~O_N)@yXzcdXlHO^|!1b9)gCgo6qB_06p`uWDq0iJV9lzG_!*fcJu%5?|+Am z|C5&ZT+acSP5YyY>-+Co;iM3jxlqZkD@XQS>g^$rL$s5zz)9cOKxN~4R7U${^IV(L zSNe$OT%!ih zskC&&jTRTmP6zkSeA~>-YoNE=owK+9{La2rHk6l2Ad=>|e-61eY<7P$VgBRKP2|1A zw$IPcXJ==Xi~}bMljkIcbyAbh$G-I~ZdFazPeo4^!Hd+Gm6r&cwarp$%Es<2(=0w) zal9r}F0mf&*^iC(+b(=56@&+YpfmyCjK#yK3R3|=}B z(?IG>>w$t?Et=F6>Snw96QbKC(U4T)Q4)oIKxP?K=JfZmq@$_og5 z2)OgGa%1XsFOMA_Bc02SWk9Q2>4rPyO(Cej(GO(Bfn3upa#Oir#3+tK`fXp#S64f>(S{q8N9Ac(^@6#mpEWey zwA{;;(SSN+hB+PI_Ax;B%aYF08{@0<+~g4b!N6c$mn8H^jS=6R_KS$woA(LC+;gn% zImP@-iq3g`C+XsAN6XCOr*(k2*JiO}1ys`a_z#`WENbYlgM_%|Y_pupoKxl$G!$sn zurKOk>dOP@^TQ4MLh2QqhD5R~V3wx#(5Lr)G=s^U>TY-nO>#Jo@Rwt(y5y|bWuhz2 zS_g%T{8QXFO|IEacw8K{_?N5VZn!&l1G;yU_No%x-IyGoB|e=&Sr17u(d<^#k=0#V z`1iix%=jA+C4<2-Oxij6jai+;4c#njEpx4}fA1sDjhTOeZ(JJ+KR*URPI)iORr>fZ z@ChdOz^}oV3n#;faDMN{pSnsev$_WWKT{8$e*&J!+FMXlSP{(z4}vQulXs}-#q6|a zNu@malyN9}q~cyaliamFm`$Tgi?4Yq!Em>bH&dPQJ&7T~^O{=?HlLc&b_O+pU_nKz zUlJibX?jNCFTH>Zvq(*3r>-#~l+Ve!P<6P|&PHb}#`l3bK}kQ*0!1`lXQ;wqG1025Z_xGRFT7B~m-VaJk4eE^5d;K~^ z?Rt3hRV{pP`hZBGfE29B%V<*A~&gZ`}~qc?>;1xWdwF8FT}A$ z+WB+&keyn$+Nl!MWD_cO_sipdBAl3;An+6xJ7%nw2%*hm-)^s&!AwoQ{BP63K zzKT90kxt@kWMT`Y#k(oxy@WK!#HT`|oj8T|w;u`0dtG>LKa(a|BK3eH-KONJsi_(ks!p27eKr?2OUoiTZsUML zBSzY8r%vwRRiqlXE?lT~$eZVV%Jc#hwh(_W?BSlG>K%}He{49fNp?;!?k^$#einRT zPEc@AudYQwZUJMd1D`cR0^Rjmlwf3{p4=X z3uChvRTxNTd^KqsjU9srncn!2}J!xP9kxO;C$|pnT<98j}FXrC|aO<0b0K?@F5hyo*Az!vQqr6nQi<3X4rtO;Br?hZDR zpvF5YoW|U-K4OX_ukjNKDJ}Y;zNNd{ve)W24gtqP%=@P6O4R%Ds(&-Wx90wt^^ne9q;oE?*?ckvD3Q8)!RnK{34~{RS6x>z!%~lelq@0JeOQm5&v7OcKxf@ zOFcruXtwO%rP=&w_rsA9Xh#N*{BLTg|2H?|QL$^>4-n$SPb}NbCj69#TuFP&J#~Ga z+TW`0)qj)4c_-XZ8Wqm+S?0@wCA%XzI_K*IQh9?%HJR*7#qTQ+?Y07*))}3jJ2#Wo zZTez6hj~8(%cIKt%%qPo@)W5g15t=->=cdX*$wAoBHkBQjMmH^P++;gauffmr zS*T}A?c1o+uckv4$)~&;8ql(7YeF;;zT{ivQ8|$oQL#KQ-83FHX@l$S?^LM(;rHam zr4EKSXUfH9G(Os`PC1Xm7hlqtN zNHm6rxjjlsKDw0AXOv~-rKXLQPY69CeK&v->QGFpMw?c@T0VLS}@p3N4ifw-XjVwJUA!w)!M_;iyYXiU2^K zSu`5~H*aJ_4}lb14yP*ipPGe3)^IvmH03PtA7v0^xZBXue`7L8 zu8(i<$!{H{aRb)FM-RAYk8z$ZToAv4CQtPeTsC2p~)x_1*P>1cnx z%Lok(Z7kC5{)OPR1{iNuPFPNIBlJ~G&U9ri?P&naf9Ep6B8Of~h?HeEC z5PUo3MP~O1B_Q?YCm@|oCyMyDGV$Ao1+qZbdlGkwzcPjsXD4jMjH^cA5Kem&nuQcB zWJ=Tor7;jc;2JbeytV;vy6`B4as(5lSX0T%t5OkZz1}2=y7TJBAtgN|(|y!vBc43& z;=)kx?pN_+Vkta{`617Q>Se{fUyuZ{mW-B+zU|kM{e=C*p_G}%$-VTC=W122+~Vx_ z2^K|kfluXSjl1ovfTa`++G1XATw}4bEcuIR;#|TJEPO~oJRFMo7}LEfoo7C4Hppy> zMVa~g=QL{Ow~X`{L3S5rj0W{79{I$C1+u0-j`E@$S$j# zFn2Z10EeD*V+tVVN-s_zKPh3SZ_c(UIYlW08S;Y>9su@FtC*qS1b=g_mQ!PrM z)}8tx>p|C&?>fBRc+oCy2IOfU7J3zvg#>Xw2#awu=?EnY7KxcR(o$Pr!&1pC3tET@ zL>sJb=@Gw$2sM!vO8xJnGv&3tdATfs;%(Nf@R=eb4jw*T0&y9T3XN@ls}y8i*{lrBG-zcp=6?PWLl4?9J0;b*bI{yCmCL ziIbl?Sd*XKjdpN%*VT3L+Dq#sCGWDAG!R5vRMy9eTMoC?Dvb*g>RZCq5RZ$$G^Hri z6s;++hf{yLm`x4e+3k#^<6Ui{j9`!vID4A4w|;BZ!rPZsK(uHP5+O^NbYD$VAl;}Y zR85W`Ue4FebLjCE%Xxuw2$P(QeD_@)&B%{AFC?5i=<|I6pTc}i$&*u4BUIg-bbuxc zSsFvq&lW}B<_Ndtro4b_C&pYh59>5m2uGx^)ueZ&3tg}S$V=Y4;>zsGwbrg@p_y> zrg3^?#Mm17)_v6C;NN=dnl3)bH2`M(d(Rwu^@rxcDA(2tEYCr1&vJ_A50`d^{nbrq zo@%vO{S-tg7{lc~oDJD8tmY`LKD(U!_6A5dRYaDCI=ojLwPaJKcvqBAWk7|`nkBZu z@Rir5AS!8>(Q@r;(|}!- z^VU+iA%E#OC-Kz&mA;MS6Q+YsZ*W-K2(BqR5q=UiH{V-YM_om6ZqcP3de(Rn(by zq22bko61qb_Jdtd)HAGG7G+%7>^>_QQkC`2Z9M*#IvUk6RDTc{m-pp-q?yRH$xB-Q zNOyFdcTk;2B6hRTB-k5QHC@aw3DNWN1$V6(o+X8a^@XB&U2}CF`J^WNG5OMhYfn{z zRrxjpBcWpIWwi+7fq(U6eG{Ej(-~0C$}{Q7`|#+H`)1R3IcGoN9UmCcTv_^X!JB$u#%;RX%FA^yBkysioF$zwCt=UWMZWzPSV{ zk7g4L&(v;?CHhVWc-dHlJ+KyEeg80}2H%BM6$p~MTNr3@Lz^_TiE@)9%>=Rv*Qh>Z zba`_KqEX-)6kd3e$us7jI2pQX=Kts;Uv0_D-GIjfc&}W22zlfR7|K#|9};S;GMoxr z(DetA;(emy{X{X$0-w1v!aYIDrcr1yd=^Squ6&0e)^Z)b`AvdLokBlLLn3xf-QgWM zVMV4k<;Pd$(6}uz@sR37x+JNu;nkX}nOTf3i+$((b<44Pp!)Etr1w&FWrKI62A>d4~ z2Sr_JWv+kf;bR9Tw=6Hjubi&M`Dx&)rIguBjRy_!OEJPJC+|@|mhJlRs;BuQSrpHZ-P4%e*s$b5aiG$ZL_u00P~S6W z`lT4V{M>y-`EHyui|sxJfTppOo=6z?y|kg%{)T0P10$iT8zY;W92fxlF;S% zxn=3ueqpo}{H0Bft)t@StRT~K zSar@wca_S(%~Do_E!+_pE>0UR50V@DaGlIE4;A8p%`i^=+~uRMSSV7vW>jBIawlQ- znoQ8#?hc&w^m+>4&26!vYiwt>P!<9BBVkfGymNc9Hqvo}**S9yKAypG=o$#5*1~Cs zgJ1pHpxW@*i>~DUq7UEYH~b@2$){3{DS=N>EY8IrXQ7D|!BGOje)1HH&4PyDcS*~P9V=Mr^2?~VC&gM9qgCxc#PqhJYdq!xh5~}t-G)mN_40UpN2L$vRPScJ%6^n= zEZ!L=NU&u1s)KkGSA8H~r*!{}$(fd2N-M zOmZE;C^7RQ_J!lG@i)AS9!VU-ADwo|TY$qGBc7l4RkfG7kh(SI$i0r~MG912M6Z-n z<=yG{caa~y3UW!m&pG_k*+EoD@-=8AHS8TLn>=;DRry9x#}8}lXX(7Q6VXKH!u&16 zECcG~Bz9ARHN{m3-FkHQDXUKQ88k^8*X@nZIZos^s`F&MR|6S7E1#dR zen~*)%%}L}3^An$_TY)h zsBs!-=&HtD3(fAdA<=dVp~EHLSRqdO!8WP>RVixPA@@-ri!EW0Iw{!18TCu>ZGV}^{}vmRbaaJ_Xre~9F$9clrp`}i-@>uD>69&k=LfODLreBQWEitnDwpe0d22I z<=WEi`e^GshC%M_hkN&gKi z1Tqks=`UZcWX!$J3>R9JaZXHsz#r!<3g8 z9p_Y{+{%PL&<-vV z%61FUzb%lcc4@G5nbRc70wfwkE%Q8tfkTBfy6)CTHT|>riJI6fl>DNRrbfvf3 z`jyPmR-RDqH-!h{X*jv!c0|33GJ4}n+tX)3`9-EwI`(;w?Z0$A8Dd}h7~l)?yiFf7 z-?2sLMu&YC<>Jd@j`ga&>m&L-o};uBF4f)Yu;(UATdyRh9_K2R>;2|R^zDZ_v%a9b zaJ@kAp23vfJqSnE9mj-|rQ9^! zgl53*oi*1Q^AJ7LFwvbZ4HIepSU$Tm<29dCsWvJ>U*)9V@MKVPrgO>kb(!NMNrK8V zB@u?=>D=R{P|+F8B!k<>6kydfgS#h9j@{ys8in7-$aRY#zUorAwRWPkmF{dW2!5kn zODivs{nN+EM!C0D;@g|EVFmbGe&3n-G$kO7b?U&c=N!XuDOymdQJIQ#%#SCd;c2O@ zcjq!4(VC>%7w&;m>Lh7^x@tAo+OaxHSaW8zWHuX zs@#UVBSPH3$|VYRztM;+Z74F1A~1-XxP9{@|J@1oT}v9p5&z@EDC5AVn& z-a49!l@{R`+jxejiRIdydab_Wt;6>|nlH=}d?L}Y7iXFql-0j5-0@1GZ#eW&Xl9e} zgTl*Y+SfW}lJRMgA|q=xU!+imiQgz*sdWccvsY?AVe)mcL6UUhLbokU{BABHScA;E(!zzEcDiAP5vENs_R!u^br z;U($N+wTe1g!HVuzhAx6LDVQP%+^y`*zB-##vyHb%&hBq2cIjEI^v6PB+<-WBZVzfNw$;W0~^zsoC*; zS(Bu+PThCow%Tq2%{3WcFiU+%89H$4Z_3CgU~u^&GyGdFhNZXh=N_uuR?D(_%Lni6 zm!)8MZcGCF86KPQs1d<#mYM99g6XtcRGJ@*T1rHn6-4* z)CqM_@4mKnm6eJPd+1&AOH-$W>ti!ZGne~^FpFU<+f1=Y-9qH6bk^V8^5!q}c<}Bj z6;n!5qL7A%FM4ZtNI|nH~l#aMbA(<_cjv$P17%? zc}nGIWAc=<>P=;n_jYQUN4+Df*)g*{Pan&SzeH7k@Cx>v)&v3_528ow`w;LBu4@7= z=kYqTTCofYc<8(L-PwF^ihsw@CB4q=Og;}S)=LgM6~!MR-INwpbNbm_^D@Q+*Au0I zyi0+q?!fV`p5mUyu|nm;5y>bKhx9SEpget)i8}>mKCD=OHZUeU5#`%X`*=R@F-}H} zry0p=vjS@xm(K(sP3SCOJ55RP<>HT8C44VMv^XEnUAz|I%ryMb8(KZ6&o=M3))m>u zDn&p33~2x1a5955`lDj+Zk1W3&9?Dt{S)I?baZzqeu>hi89w*lBMpxi{+8e3Cr~o< zj1I3w0{SktK6WG;<@Iels1#Q;!;-73Zy|ObmN`G~UaYx8mmvL6m{Q5(ENykvW+K4k zL*3%WlTE^((o|n*@iHUGaY~g(`(@WZj+F2Bat*cJ$rp_8TTOdqIx{nH*T|$hB>v^j zcG0`MAkv?k_9lQ~-2ovkYd<>;T9(K2Y61^fgjuMpm!30RabM7e{Vk>bCD;C-HBLzw z$#> zW7*Q4tw&7IAMhGMx=s=srwS53&zIH`cnjEBk*Cds4 zb94!&)ilPrzrxtm6__$b)NKTUMow}K$q4PuLCc_7(QL|ydk?#NSh7W%Br6q->#1z= z?W?p!7nzf*{?IXMVlD(>Ezwn*={2vRxC0jO-j6JF!V#IN>{QM6>fPD)Oiv^dUAaF` zd1r44*8xyAs$4!HYKWiP>uT!TwV}Fo(uVc=Ar1s-WKzPyp%qmuW+j@F8Vc|(1_$E& z#GlC>2EuHO+Dv<@iN?HE{4M3Ldyk<7Rm;xZzTaAOrfrpI%B!Sb;*-&$nOzR<%uzQO zcYU$2{n0Y=AQZ{t{i=F;mB&f^-D$U`0L|39($euD`EU|^%6{G|4uh}F88nB2pa^5# zQ;!-sO|;uuF8j~6M7PKr5o661b{%nIIGFmufCUf zdWgJzkdJq{I{oO(^R$r9s+}*DB3aQdi3=yG`=**XPeU(cb8Vf2aDV;1rhazLx_0gC zT~Yn5-CE-J;on-Ve@V=Jun|lGihw%qzP-s>$oCy_tZ&Q?Wd8TW)*qV8e=?*hjs2%M z&AoxhB`F1wH?O}6dqNE(@}E;u$-pBcUnSb=B@!9eCjb$V`jNyg7Iu?x-a2;BT&9kd z(p&bWs68ca<5x1A0+RDnlSu{!3E%hxM=d>uE(4NfGun)}D`F z>e{v5i(u%av%bNBr`}5^p~WZWlrFP2Ao%(OX*qiya2;6w!SbHFn_`@_swCB413=+Am~bh6#}I6Va= zN#3h!8mnpzIjj3&)44qOxU`uxKh56g9!ON!?&ZlA&Og;(i2gj@7o@G zzOfdQ6Lp`Tj=%x`r19qydDhe#Rlo$X5Rh%#hl zT>n)iG5bn%%0$PKF^J83!)#jVq_8;_`I<`<6PM?gy_)J!!cTpE1j5D*Spw=%9SJ3u-a?c%H^;*_qq?9!MeU^RqNHx9-a*#{TXBBs=wh)~3!itF#U7I?`6?{P| zu|9mb4DU8o_1zK<-aP&994be%5AhwF`WX`p^qz)R^ePTu@h&1xMt#S!o{r&0UXbvr)0 z2zmWdzKh}xUaQl$p+XMK9a&=xbUD{0B>q#m>fA((>KYlB2#;5xAjMjfoscXnhZ7 zQ0)aewjvqCJOTXI1iUxZE2alzRVq-o^d70M@-5NlqaN;5h-C-*ax{-mvSv+;vY~2s zWKx*?nq^_?k4yuA@z2FG!;~{`Ne5t*svpmcg*W-0G7+4CD0H-xe2NMO(D@*L*Z$<8)+5Tn+1cS$pRpk&-aotPjJqSr5N!B7^sx($nakkOVxKi8YD=He^EkS7ZHR z?>tdkFQI+d16BRl^EqjPH--jo2~FXm`4EqPfVwc6+?|v9V=Ha6Bw0<%kbtC;LA8DO9Lz z`fya(CQ@Bcpq{Zhf9vsc`n`PWq9(%a{@Tdu{AY!xa<(i$ztUc@#OG>X0u-)EN*_bt z@Eevq(=(D^E#(@Wj9*AK$(5`Ar7)7rP5$atxr<!6mrMLV^Z&w?J@MxVyVU@DMKhoU_}1=hJMX&DUPDRaNibkfA*u7E~F^R}w}m zMc|T);jlZ1CWFgc^a$!(8QT~elu*(>WKl5^!Cm&M^sDpbnP^Gj%;dufr8FRNkI$F8 zK%7E%!=;Ej3=3^{VNW3?Eh@fmdaK6&-qB!>lVSXr_J(;3PUwU*8eQq>{9!Nn-%cau zO6B?BXIF^|LE6Nh(G_fhVkC?}_N9Vm7AE^5kjz+%j$;Z-M1D+6g}lBHj=NEj6+IZb zj|vcwH71KCdJl$*EbUi%Mkll^v)A<59hP}U~0tug^qRs5{5m}LFw z!n%nBNaInw6$R-QGsskG90UdmoCg>3Le``U%DF3rSN5j1K|hu{fOATOD{$*)cRGb# zc|V-(#HwF_H_AZVy}>H5c`zh$qPV2?F5GrC&l-A^3w%^+EbLvLU7!6#biX33+NCL@ zmpM=kDxDgI!oY5W^<_HY#SGPw_s-xa_THe>gTP#GIH76o!3qa4YeTjINJcsD;6A5= z5sB7!WY~qWJsB1AtYyECJ>wlkX%7+TqAd`-a3KBQ#6|;!6*pO0D{RS(rbJ^dj#b0# zR{0D$A2Ja0r4@Rc99#5+#@*Ns<4n9~fSCAQ>jvxSh%IySeO0IM+m$(Aora)Eb~QGz zB=-sLOo?LZLfD^-hK5JwybO-k-X^A8jqGv5)U-aSxva(^pGX(>olCI*|s3OQXVnaA*ziiK0`P zLp97XU}Sf&^Rezxv4<5FC~i6# z3N0C9_&6SdC~N_qr8Z4qI;?d=f9{LP)1$`TcH)a`lCuB;Sf!n+;%c|l^iMXE=^P9>7Xhy42KcHR)sNfk1jf(z1$d?JE_KtOPkaT+QN9+W+m z6+RZx!tiUL4je;t%;chaCRN-L$+BmB$RJ;uS16Wii?^luF5l8NjTb{Qf(+09UlG_l zT^)bx3}ljl1o7DzMT_*O=$`oQR>jPAeGET1JQ{Tu7#iY?7SPz3BPzpcWB#C~)Az=^ z>p&ocsWbB(&_uLgtdvg}xhq&m;F}{b9aR*fuz$M1;vB#5A;8GwuL%@O;)hom6sa-C zbd)R*OvM3u9Eou*$e1ULq+lpqX4DoyJVSh15gqm&_8Sp#2wR=45>V0ey|X4`>s-y1 z_qlIoCsRy`-+VrtXdiR1-fC(wUt!Q(%_TYli z_FSf>DhjzI74laweTVryybq&1mNDJPCQHJctM8>Ft{x#b<-CiXV2#sz$C(t5QfBbb zj|HG1o@i`S@5>Q76m@gI6G*gj&Mh3Q5aoFaE?JF{htrV{>>f!eqWVkg!&v|F#7rLTsCxy9KWeE)KPk!!m!d zREfXl={0m?dK$QWkKS{;5b)lt1}tub=&CpY-G?^d$T2YQ9cZA;faxN)l}9soK>nmk zObrh-?7j$L-h< z4r{BBW3M~m0r?hlhKFHjcr_o`7XL4P`I%a}8AC&Z!@TS0N=M4UC_F)x*=mr)|2+$A zV!>@-?|)^(Wf^zn{Mx4kR&weH7sVV{SJOo3Z=Gx%P_bl63t*DKy6YZu&CRh+cYvYk z!zGVbz|hZs0>@qbA&@(Uuw2PLiWlws2usyE~l>eSrK%uG5JU*QWnf{*@?mwqEH%Ak+L13u+E~~rotKr24|ffygqI|78h%C=O}P*;YayMHPdFb znl6VKEd`roc6w+>N7N7X?{#csy+q}3x)x;P>k;w9&jCpT28~m>kO=jKO{l^K3;O^f zV~1FwwTPiV(tX;2w`!;r>F(z|~ z)DE$SIIbe!1^RmLEx0xmLW-6GUjL{z@hyFm&e79Q8}+dm5f3LFzY%`bB899!NkFEj zu2iv~A*6BW$j_fCqd39fJ6~6yz42nOnNA zv4E==WD9@B{Wy#?bB48PRNAr>(s=1x)3Ky$`V2aumSjYcj9`OcMTU@}Hyry$zmx;p zVMBXb3x`Vw>q1zbOW=)2!YfRRXFq>Zoty|EG+CzaCEw%K-n5e-=2AF(x}FCu=ow-dCNLNzy7Vhh02o zbq^hFG9=yA_Cse!vuJ5rhdMa{ecU#VKs7YmB^1MSn#l})OCY{)J!(VF06&-Y>!Z@@ zG!%!bhGMt`M=Hk7Q7$ve(B+b>pbj4sKwyoK*yE| zlH@w-WpPISw&!}Hr`bEO&GphPGKka{ZB1M- zI@k*OGmJ3Y($H-oG;biOJr%Dn^3#OQCF6>tuLPZMo@X-dC=4|WC2T$0lG;|4z<$Kf zM&*)6a3YNIZQ1_2W0UeN6;CZW9HgT+NzF8)!kb1lR#jytcTK#f{w#)f`qglnxo274 zas13kk&@Rf*-#*m2H4Oy06eWCpIR=YXE3LkzEOCoMjd#}!U`%&w6+trUSo?pbSN)B zN1EelVPAgtXx-Eg6y}0wQH-jn(#yBkK1It~p4C>?1~F|+BdKHY@-P?WG#s$23E43k zjNnhO+&2!dpoPpW@#W*asrR9nN6(*ZbS<`xL{eIf9Vx9WsJ+z;{jOPJoZ2=0VwVMD zGdwtTb;VAaT{B(9@U^L6k3`Ej-97G9&UT=FbhAi+X!??A6DOYiOXstKED#D7hU@Gz0iUWU{hd0}z)*IbT!jnFVxz0*Gf?B==437;D*1lb01=ro)$^bytbv z?-@oq8=-}Q=PEwui|+nAy_z;$DjB?igvJvcs`w}5pml5#zlJQlvWT%W0AGKgl5630 z0Q-lzC2$Fa6JpwLsj19%{(t7Q&&P3@Jr`DOGTx#w^+qhB^lKdr4Yy;94dxC)?H->F zNe!&J+u?)NLh3~p^<~6yDHZ-q3Dzq%LaqxO92L42Bo4NLq4T&{x~zy;(NsG-NW8#=BANyU*6U0X6;P^s*B{yQfl3d^pN|D6R1qU`lk0nclts1aop42V!HSFeL9Rb z{C8z(CI?IAvWENOcY(5Quf#PK6Z>Y-dH*P}l zmDHY$tCuyKj*ixMROg3-K$QSl$~YBSublmpEW_o_Y@rm1HcC6Ai5do?V3?Usme+QN z6J&~zTYe8SQZxSc8-fJ`5+bsun{qWWwq6V{OieE|;X3K(Q7F z`6NRtsL&sMx1hdm#tS`g^M7bP{x^GfDAzTcAsz07mD8;sy-<132};&iRo+f`w6HvA z5y3P>DxHoQ1s#Bjk#Cc1U7$9K$rAWq5d6uthoIzO7`ON z$bJ91asiHtVRP(fFqzSO+@`7R#K^OAIR0^>X4k+uSMgTrP+I9_ooi(Hmk|zBtJN>! zu#A(1gdyzVy4AqfLZzNjIa_Ai-*VD0+lMM$(S+^*FQ%fy5h(8|2>g|8%ETo(xWiDf zvAA1=53Ka#qxHzAN?pq=Wvni!Z*7sd|7U$6Lck8osoD;yhnSnLOI;clzY<>gr>qn` zwjVP@2C1@|Zl02}*hDfEAtqX5)D$jTu)lrkzR14$)!3(%{TpWfq=QGx;y}0lezipk z=!EG+PmKD?djYT1YIkd)UDW0V(~h5G3)5Qfx5G%T7>AndflFrh?u$+KlD!_#go87S z&CM7>2Zq!wg0V}11czv9OQ!{iv5bY%dfM3A!SiTkOJ3A7(7>DM1bBid8J-Wf^jp~y z^yY{4)-PE<92 zsh{@hvlVymU-IeUjIbx)1JfZ+NU1DHe~o-~St(LpQt)0+zUmb8wcjEPC8y(!@g9E* zc?{Q$xcXiTo%K0UHGNs@>ZjVWcHYhRZAeB=AV+fpWF82f-qD(kVqWvsR zXU$HQkr%djvdXhKyhUGiE_ zY^k4q)_uGhLm-7(cdYXyN|e*OUfyxFlh97JTw7|~BCyo5q`#z*A!vZ-s4ZV#P!N!s zo!$PkkkO9Hj09j=eXL|Q*2r`@#+U!MoxLJ;J>fWh4Nio+I28;AN?yQ??R(0WX+({R zaW^k*3Vt7pJ(KW20sb3*%niWs&6osrHmZ^B7p2^xB0`6`}JH@a_(mz?r7n z_m2EG)2+mqQT~$CC)fYC!V|{yB%fz;PSgJ8C11aHb4o%L#Sy_BKW3iYPq_5y76;-w z7PlxdQ4zjw0ImpbOqG?^54#kUon-9B`)wo(66?(OYqV)H4w8T%%? z4e=8cU)bHfEgHL5SQ%gtCmn%9VmYw!{Mlh-*?JQ}D>1@+8)GfTrw(e|oK{GVPKsCT zAc0p6UrxHC_iC`v>UzH9DXGOF=ECW)Es17Wno#MxiKqi@?fiM&#PX#VhiLeN^GVlvO`4mb$X=N{jKDr&KzLmx|mB~uE3S2el z;)?3uHIc~I9>N|d^UFKU%ObA9c4M%?l$V2qEVQiL&~S4&l9b-Jn~hpOqZg-msZ~)B zeoevkiemWUiv0;9nk+`D%Dw@UC>AT*qIJvZ&B6+5i^>U!(sW8)ahwOkDjdK`3r~5+ zF*m;2zcLydzw1;Q_Gn|x+_IutTRU)db(W#Fl2nuGAs=ZbN1q3lRXKm0K^tIWdr&e) zAdmDZSrwf_X%KtG_XFZ$+>kAV$p|mDRZtl!7BfwiT$s=4al);7o%IZ$!WA^&n1RPA z0=jMxZ#}7!h(K*5JOPs0+R8o3(bQs$9iR{Rks2OmPM@^TbmuBeM5kA-*W$i`Fy z-8(5$atL^pOs2n7h_n%9$5_o3Gb5{H<2nWUyc^(zDn%5W8Ww0`E)uS1Nj<)9_S3MjC`0x1Tdpydqxlvp_BW2|~cYV9=Yv-pp>aq(Rz;7fqVeF_fvNmPPK{lKfpU&=b)j{>)alrE80D{uUW5NV+O-(eBw71cY%-%f6}^b( zJjF&Z;m$cRF*6lQg+thdFSR6kt~-LV5iKQrm5w(?1N5-)Q_`Q18-l}Xj!YV1SG-o^ zcRZxbOl-KAJc<|ORc!pj&nyAfSp-#;n)^m~@$`*yE*wz?TDwNZ5t~UUR)5=Yj|JwO z`Q?i3J5xj5I=tj$ZOWgdGlp`GQGhpb;KIdlhO1+jqGshlqE78${bE`EM93RGtXvdJ z)1R0XQ>LRk4YHn#TYsAMjU(JkgpTkn26`fu*g*B^$x4mmjp5l43BDO)B zqv##Enw&DNC1GHIvLYL5E0FlpJKLkW?ZF+B0B9JQG(w)R>`;Gsi{D>b6c)vKZE*1` zQl&G?W7+FDLGAq!^mK#WI>ifgo%$oS$TkoJ4Y2NGi}Lsvgs*!d3Rw{vb&V(AHeU3$ z7n|35>RBY5g>RXq)?^%=SRP43HPhZUk0>;Ij& zJr?#%ZkDnLqDTf`h9XELKjL-cQS)p_380fIK$J*odt6BTY|`&^Q~A5k9}#VepJ%X& zXt7i4gBJ~(_k;4QpdY-T9z7#vD)so;s_|r#&7KtxxCbILHuDU{A2X^MR0;g9YEHsvbJqz=o(luD&$5%fCH-Yqg z$hn9P6#C!MYmU7+-Ly0sN<|A=Q4Vq>@V5u;^hpO~sl?17mqhjq?` zQk^KKjZw>n)oK9)XO(8o&FJgiCd=rCle5GQ=oH~>aPvT#!@{%;o$81#*B1vh0=qoR zb((d;>lOliXl)LxYf5hv$|Uu~oiaNhJy=5@iVRRMW~753`jgTY>>m}1Gia)i#+iu& zhm;YTUa2)z!tAC$Wg`Tu(BfB%@z#wn0pq1{f44oJeb!QzZpP+jO$(&2AS8=8I71e@ z*xx(>XfW*J!4zv;RxI2t=H#owoUtbmw9=%xLXj$Iw%E}0^>xV1tC5VxQu+mtKglvVC|$a%-hO`z_%5Ol9rJt^gkl|KgS=sz|dgIDGJa;^>6&UKfoc|@E2J@~|a z;g*ne#-jIO9-2;dshjW2{17bZBAc*i*c7wi+c*2Um3E~8clXR5tBt(8lh+3&(4WJW zg$CnVpA3`%Dvo}4$lqKvUZprRIM*JPf(v0=u;Lzd(sr#0nf!ElrP|;<#xj8J%lvL5 zhsfp>Cpj%=He#X?u`kIEtWJ+>PctnF3C|Lfzf`@WW$Z;2+bj>5YeT#0hGdvc4Z;`< znXSfIu%aqAs&5`1NLA)HJzmytoxJs4zoibmh7H&`Cq6yih^&9B`|_vbx@Fpq-~NE+ zAj_8bb?lPH(K>y@p_E3>B~~6-)eu)BHu!yrfH$M)%K`$d!Ji}sy(7weJCeqE?!n~+ z!r4xT2Pyu{QD}7!Ufy#s9BmRGX9uhyXI3tZd=iA`bbPC;P1PG$RN)GCzcHUHVnZu; z03!6jCa({wi1u3F3qGpsS)f#G4;yR9QVkPP?NAc_ME0_f$!_*-wMmyp+AHN1fYbhw z<9g|kc5K{#(aInr+g`!M+VPW$a)v%+6e}yp|jrL4T zsQ9mYra}&03I^U%jRb;w+IU63s4~ah^vGy!UT+Pb!B|N=6+cTnjjv9TD$2ij)!h@D zc6u`F=VlVzvRh&k)_FC{eS<(_S4G9_I33O#RB2k0m`nSDkfB>20^-ouz9C~Hw0od9 zchTS&Hh10Dpmz5w#t%GFhNVlZc>z0?3wXQ+jjaSZDf2d9NqoEBf=SSWbb0^xLi`;z1hynW zY)hwj!~Lm22e+h-gR41*tTy93Bs60GQw5+k{@Uf$9_CxN4$**{q_^hQWmF)6z(kBG zhF&O|RM8-x?3NnQp`C_#ZOB|%Fuc2X4-$U0*++In1P-k4q>Y2 zwx*N710G00TZ^d{m}K!ThpC_uCPZECgK(c_{(ixNQV+W~5LOrlr}cO`;4)H%F+6-O zug8h!y34!BysH)0iuLBrP44{*Y0kJgGo|fJt>t2US!&nx{F}a88L7t>e)-a&{K`dC z6BiymR(KVyzgG_P=wRH@4b0PYCI?lG8KC{B+C04ae7cr>rgL=Q;j6;J=9gG%7Sr5$ zin(oS#L<7pxLkG(a1#-Afrvo91N&vy7yo%i_g0o96!TVw4FRa^VI9ZaEZV>w7q~UI zP~oRFqpxmG&|kvYL%C7`yE9YF+2zTCh9EvaO^ybvk)UQ6d$L(m8YFdOHgi>GXwCR?4BFvOMgZ98_D= z_lM-D-x0JNVuh1<;oN<|UhQX%X76Bl9=sK@ff?*nK6hseQA!{%p&7R_q|q#kHL?u7 zKQ01OTa;gumxDJ7luWMW?HwBj3raa0POK#TLhlEEwWGsPrVbT|SPud8rf_M_s3AtS z3>v)|(%z-e_~_u~hUA0(1!OQ=#?6e7An5o60y< z*V0U=OY^#69}DBB%G>_Z;L%tx^+#*rO0{l}Fko2|s*g{Fv1p!WJ^0^Qu@4S+a+e6=M}K3kztR2<4sCbU+dkK}j&rbR4!XYps8&@* zjV?GZI{4G+|J^p)I8UUA+Oe{cP=l2lJ!dtm+9p-}xWDpMV6Ydhs&P8osks8qxAy4m zr?ochnwp6XcQ{Z7z#UaHIsyYViq2_17DVLp?T3>`Lf%N>5kW0zBkF9a3;$@+rCG&V zGE*@GOKdb7y9D6rY;1VUQEEhUWe+fG>*=ZHud>F4pJ@N8m9z4tpe`}Jd;8t$B(uo+ z)uU6<{%SdLupWZ$SxjPm5LnomE+2Zx6HU6hAJY3@j53qT}2MlM$zmym)kI8=WHXL|j*WVv?WbsV+=8=JwL`F&p1dY2I65xvC=A$!& zO@X#8jwXx;vtP*m{~@GCnoIVSTV}T$SJLHJT6ns7J8JGtzu_b%Ke#9; z@H;44;Hz4f%ADp^1Ra)dW5i6t93&ql@AnCOV|%lt(9BNu)oQuXluxX=Y4t2qY*^JyAvz211Lt{9l~lfo-OZWPoV4_^tF)mb^X`-dg7SRz!2K#@z*0)ES2Ev+J}*UHPa+4ZTr2da@yRORB4~ zzQY~3jrK#h^@-7aM?ch8hfX1j#YvYTiIjJb2HD;%P?y%G^%N7MA1o=1biku094CVn$v=L}SF7m^ix~_Z(ZRCDF@zkyMT&$(8FXwNFbWBNRwpf=$D~+CW{8@o}G+Geg zp+%M{NieZdZrn<8;+&yC{1PpP5E5O5gP!cOy`ok@85yla#4zEdkXne z{8X1NVD=E%YB~-{$Vi^dVDBX0tdUcRpPF00`NHdIp>P~ipsEDk&~wtOnmJc2Zt3WE zL@4W5FkxTdZz~=m%#r$pwx`9<#KekyG6t3p*;+RiN?Gu7u(Cn@en|2X1aD+reqp-Z#Oaa%A88n!kP)* zX2>s1PU$^s>AqsX1C5r97-kn{ZF`9&2vZ8$pN-ApYUt7N8>3%v)fV?tywu(3vtISQ zMwIdq3^u#T`-i@ev8aameF&^n-E;cP=w)JWhWdGq>iXPhsxPX4_8-(4I|wg0(@#oO5#t_iMpn zBI5Vd?1>ny=$hi$C>pd(LY#Rqc&W1$Sfpx4y`#y?3Xr`HvcEV|5o`hBc*{XPd4f+_!v(86STU)%9aty~8K^&ph=IOh4E3 z6a+%;)V(|js=oYk9*Op_Y)#P6=3a%)Q=ass!@?r>L8&-;qetaO84_=6V4JVZ<0BPl zJ|eJEsf`et9!Wyv%)eSZJ4_j@=GtjislR&3j> z?P^PNFhDFSeKCs=lSHTRTmo@%Fl-B!Hfr`&PhY8D56fLakg04YF|G@X6HnocCECy0 zE!^!DILUViP(5>9{!PCmv@4T=`t>+}GNsShP&x3di}MYy=V>rvIe(?|ad0U}gu6s@ zCR#|+KnEJydzcJ=-Bty6gTD$*it)xzv(qYxl7A+M5;cmBaut?riPvB;sGkf!)6E0E zRT)?^oR89bCu)ixZ&_ zF1||S4w*i3fg`fvl0)juA~on8d(lrwh;RpN*k7^FDm)MJbsILF441)d?{*uXz4Le& zmz;NhPw4SO%jyKEFEtG6b3T##cR;ei zFQ$&mA01OhR8qk&x!zaMcb^JO+5+5Pwx~1ii_1aV0lIT;?|RkQV8RGc)NYM> z63+!Au4wiIcq+}j5usc#GwoK4;`VosbaI==Efy_j)b49hG4?s7n4*yeCYeu+nnenj zA89;?7-DHF61i{1y9I0q49At(A<$uN2`kj!htDOg|7#O!BLWBfdfU7nXRNz;`?nX% z3g@yn81oTUA5b3-pFRkkGQhphv^Vd+BH_QrlKz7=dfVw@=zf`V_C56fb$C&59q3J6 zC+b^=Cww|b`c1I+Xz2RAgVe_g)us23$#u|Nspx%4mC4IEYv5FA=07l+(Ze|FJ7M?V z!@kcdKzp03$Qt-^{I^eA^a;A){!WmQ_;qso={jiF@muq+kCJb{9u6{zd;ROIjUPD; z4ONFZO&UJjw?E>p{qGcSj;{S@mYyK{J`cZcLAuoW|2lUyR1M+`w(j0LzWHc)y6%5; zwACi#>%9iK*YrH`A3wG8k_IED&~c&a*+uDXGM9?e$l1Z0n|a}TN!hQcMVdvJOIKul zQJAfes?=9k?>%A2ahhoqj02QZ37{e=W6@(PHdGqi(Bvik#!2bUetPiFb${Hlui^jY z{D;)N_WkWJOjm(MzUx=J>;B)zRqN}PDjyrdj}qH4clX$uplpC{15+#0 ze6z3G-}KVn#)W}dHflBW97+~-nKOJ2pT!n}MjfRVacq>ch1LK(G2IUabp;DuIg!l+ zlxVTBvbWS3z!>%l1zZGePxK^9Ys&(m=dHnpI;ZFJ@`$j8-zhNQ)a%X9|K@cP8Ij)h z`?JISG)5_dwaXR)zL?gGP>c3;u$6smtB-DaiUC!Pf`g|gIKM`yH=w01=^=^kO67@y zoe@?m8P=o!Y)>%CtH+5T(bK2poaAzK@~^`$RrbqYPh}NfBKwaL~ z3EtO7W(32aB`)-23QWHw6;5-SXt~~!vnz6S;fSxkO%1L3kyAiMUfmkWG)wAkijw#? zJwYi>?m}nYG)Qhz!dM~=BfqH|rhUsU?JxnwWOVgK!jW+vSv7}m#ARDw`!6=oOZr@t z^wxsL)!Zweq_woGP@Q52^3ofl;JEt1dwjL)VkH7mKPBQ;L&a0fTZxp|DY)}q$Ha3y7blHAHgI|jT|WVg z|Mt((*?;{L+1^_Kean-zz8MtVCHVIG@nA1{?({GA+egH=o8A${hkwkEpVT^4z{dOE z0@WXHtT$-E-|8jy&~`Opy;TpG1->CeI0sIE3cfvk`$r5Bu>90}ocHaZ>es=SX<_)C z7w=!^{6bF=qA|zc_5%CduRr7i4v)Vf-fS3d-vPT{CZ|O|R3Ln&@t_L09>_v?PW z4vRi-^78V2`)jB>bfp?}{`DCE@tok@^H%rwmi6ysA6j7e;M4mh#@~ade|f{mAN_Uz z6at2HjlOc5i>@G5ZnF#JaR; zG;+wnY_H>JqF_)ShaeSdtvm+SC>azPukj^EhFN)e{AV`5k_ejg5GE0%Y>pH7`j~Dl z;IrlpSC)WR)jF@&&j2h^z|yV#=6`J-)Y?<_Q#PMO{?l}>GhW8oBbn!B4AOix?M${D9cpE}0^I;l+P1MjBPr)xmR=5%j{SsZ z>DxC@IxH;=_Uz_M*tcHt&$zd8Xl&aszGK;UTDPbUW%#ldKIl*y!_Daatlej?b%goT z_1v5Fc)|VaDY78vMJQ|!0iSrBTuKVn0pY2b_Yz^U&}VHZ8ZdK2QPI{Ytkh`HQ1CeF zD0yM?g6qmqX3nhfH}50PTKAT%BzWlMiMmu5_HHMV7)4Q3Ys!KXCHGiVBd0bm$1`9d zr0k4ao|qx{&A?=8U!mfG{F6bO8yMeV`?JO9q*0N+G_9;ZVRbFiV2?%m2^L>1uI;jm z`9-F^VQH1T4#R`@+7i$MiH@P%ymc-5y)ti1sketoxOl}<2ZL59D@(JwP|Yq0LcGpN zaj_KMfYbKi!I}JKYIs>(=d!`jv#N@+Gs_#5XMuhTmJnP2OA0KFnxlo_9nD+?VgO>T zptEe7#Wi~r3^z=_+>iRl+9ZxE1?vUl(#gP-RF+tlD&GEvvUM+^G1fW4>?-cV#jb z_uM~63JBZZ6ro~7^UiHo{*KjNKd)6i{Tm_;nvQ9EKe2n%*8Tb>SrhfLzwjw#-M_D* z@3D9gQ8+qWoTeDA`V=*f%py4`Cmk*N_EC*z4Anj7HPNQ)_&BJ7t4#9I9nvsR+|1m% zyxcA2x;ryoRuU4;9wTd1BdE)2MNm?yH4)0}OnRl2UX7!3jU^qY_#-KiDJAzsDj>tK z`h7hYHFZs7_cCCWLVAA7?4V0WBYWRs1~nJEAupTB7YNh%!-Dv{&HQ z(cwVed$U!?k57b$)Q`sWb?bvHJ$EJ$9U^mMnxYFLj=DStowR^viSp0oDWb8mHtf)U zTwvxoPF?y(uJd)Ba|qZ)HiDzauPOTa>4+X|A@WHC-a;Zxez=pIEJwt4=4A|4cyDC` z9srhs&i4jmpH(JbhR39%e@MGEd)g31jWhN}E$2Sik}~NBJYe(M^dhaAJr-(oY=QU( zCwniPI@?n}_5PjKv(HAe*}(9U-XHDh=G3R*SBq@jFe59=+j`tOD$Q@yTZr~6K`x;m z++_@f$V>OcE#xvN_nWoTv`YrrW#XX zVn*`*DUw7{MmhGbt~HzNSqri=x(1o87EPvD^c&`lm(@>p3k*1&(O}1kfm^Kq>7`aRWJel3_if$mXmL{nAJUqV<_GHzX8I zVu$5Ow{(|P-fgP>fsht!zVjCQt^jpPevY@+Xx&?{cx*GeK%XMb-cP!Oob9nFn?UFA zVg~~VmY<@5>&dbVlO75{=3%K|-vnFAFA_FvUfz$+R&Fx~D71eT$kt@5dD1qx<&OOf z?mU`EXMwyjEm3P`2@Fv6cuyH^MeM|#fw z`X9yd<~&(PP@#PruKiY);7z`?vUxuCG4bt>ISk1KvTCn&mMhUs_LDp7(Jr?J=e7P-}ZHDv2T7#b4Og0{ynRM+4`9M<$wM5?e2c-uI1N@ z>c=YiSf9Om-tv#0?1_px0-{6#^{A_6{e&=RE zqL=frtkBA96>H~I3+xtE+gmgpKyhjom03+iUCnfP)X>X66e&hWwX?E+Iq;i)ckBsd z+xE2;U9iQPfZfyHfn4~}nZEw!#>H~fT8b}?e`ON-mNcB=*aCHrc(s<=n&2~6K(5-! z-EHNgFdrZx0(Euvo$xP=cdC*+FhZexhG+>E%XisWt4YpaZirl3AqR6XGcPKt>n+^T z*pP&=An)a(5;F+WXQMeUlBlrSV9+>bYelF+D}Fc}uaY-Mtpte?0eXxM_fVxtDC5UV zPKDrsKy~4+lBu~Ao0Jo5+mt~!c)sb)-v4hf>o*?}rpzo^Ey*t!%R3k-;dL%;FTSE7 zUE#VO*87BiC_HC}Jm}{&o~8uTgb$GPKI=kQt#XY=49*o4$$J*j296pPocYbdhLbZ- zgKDWgeS_;!*%((Ich6j-q45=SkrVK!X-jb2zH)&<`=HS6>>inypr^R7Ov{YIQSo%{ z1>6a*6}7gyPrS|zmErzKpRTPb-0>ynpVxk4#U>9pD`FjcY;dq@IeQ_R&O&(2(SMSn zQ;sr{nXAiTqo;8zwvo{j6&=%15X#9d$aBX-cODHq;)#5 ztHQqcEyEKlP)IADfh0P~g_N-~HDE|%_TE-{MF<5`h5{dw&yRLA z+BS|wyQX8Q*$)PvvHIOn0^bk%211vlG%>2-)D{-uFhvL5*fvNYa_DfS);3+)>e_NF zbWjGUiCkKZ$I8iMu%;(pS}TDfCU0wjqJ$ELKz0H(n(D_c`(7c{y-%S=jH-$wKqR)pg*tzvx+i zV$Eye6Tta7KIqy#n-ye!*Mj%R`_WeidCUDVlo)t33x$b5|MusEHUq8a=~H*TBppoJQeS2g43O-uv{=F8U4T(G@h(0=geW`u?t6HYJh=t6s zv-$1fOfV?pXW&TJ*1PV%@yW@r{axGdSBdxMq_4vtpSLugk^T)k7lpdp+`fsutt1?W z8*H3IpAygPLY0A?Pw|67#4f7f)nf4R0wTy6&j%sO+qE8t^#nsMgC?#i-CYE@X}9ZwBS7YjY#t0CPJ!t8MfPos}^N z3oGM)GFQ#9aB584c?!O|RDYR80Sz=w5=7+#HjlC>Xg2t&=J7~-5=I7gUtNVs$_ySc zuu341Ekp2`2rLIz()aR~q>1E~DX}6EpL}G?$Mx0sz zo%wT~*2klKuqAsBf4VLiaN~Kx+1>EZK9Zfk*_om2 z$J4F*O4==a5YRAN(b{6CVatvmOli_kQ0!j<{e3U=8_i-27A2WcqNsQYlPP#eK%;r; z*b*L_@2h|IZ3CZeQH#F|)O&=P5mY_qUx~XVY%Pr2^)Du`T%>_D2}d4 zmYm3f^&F$WdMM!5{o;3wkfELt3@?G=nQL&x8&TE@e3=Ur)~;atvi_pG3>cDDGMa}$ zlT)J`C6l76&xL{7{Z6eIo`lI@EWwCg3tXu#r2hYS`l_h7qHS3qKyY^m1a}Lr!Gn9_ z-oc^K#vwp(hv4qgxJyF_?(S~E=_Wx#fbcly-gp1@*nfMBHTSAnb5>OZ7}de?SEN+3 z_D}G?e*dp%;pN|@+bbxM->}e8)Btj)+(l(;@Mmb*)CIxYXi* z!o~m0&G_E*`Rth=!5q(RpUY=$2pG!OdnJs&<<6WgeIcjugCC=9Ju`+ud-s4=k?M)! zx78~zI8U&h-&G2&E>Cp@hXpjZ)fF@kt2DvK+rP_&z8`!G>So4-R20HiB&B;Q3JQYo zXpWO#i*U#FnDS%DJzpvtaxePR&tOgD z^?2Jtw6;ERA9&85f4cR_J#)wW=v5O-o^8oUQ7cI&1KM!*^#KElMOf}oDU;ct7Dd`|`1*syaNY-a~{f=`nap8TTDQ6srb zxVvxlV~uJZQ9oFXoJ@+}_VM0oQt5XzGy;swm=8hz)2SI>r)uRrJyl{G&|;~^VUdt8 zl|d(8CoqLZ@P(%O5`U3Pwi_2ksk{MLkcij^E1B}C4@`|-#BxoOqKhGkjmw+hBz{?1 zIvD=(l`{Sj!j`(x-2v`!l)N~y^_O+&_|wv~`K`GzoFKX9##O@LNwh3)d(dQYihTBYM;hmHZ>?;dtb^zoVq~1Gm|%HlDLh8i#u^Sx zv49zVw+XNIaKF>)-jU_+Tt`Ol!bIg!`AA(`El(rEtFqCIzkX^-)^Wt+f3n{>qlrB_ z_AI;*DG*TI;bq#@Wwcep;Yp%|eG~Z}uZOS?DN3@=PR95W;mvt4)2~_d549T#X)JUY zQO3Had3E#yd`3qNxM#96Yj@Va0F}jNKNrVg^KD2eA$d1(JvF@w0OLF{RGce-@^Q}$)y>E8?dI4I9kGVR!}Ytuo|Lq1eW zCeLvo$BoaGeOtHfvxijp3G2;mX~KC3l`CwI7qG~PSjeO8Dy~_J&s%bwUID2r7h1o_ z6d@bQSIWUj!8t*cP|5=6%BRg`qe^!vkC}x-_W5f`8Hn)~8<;k}c4RXX>olTiI(!W$ zY3$Nbswzp}f_zFl@v{J=aj?>5|ERAN>w(Nn`z}Ym{qC-V+YH3vh#?COrvBD>NER?{ za66oB>Vbj@#Lrto2D{sv5bg(8r#r?cG2=n0-Pd#nwxcr;H z$|HA}W=o+)?s6-g?9YiNCM!i|R*F+GV?89!zFhbgEt@v@9p--*M~Zyx&}53Z z4wEL$f-J829Q*st52hcEZ>cCwZRVn0c zXd%A5`&e}buS!2%7{YAHXwh|P5biBxClr|{8ZEj~hUTa(aboYiEHFZ#5Ww*RkCA({ znrkmv$+P(FP!6Yi@3O*NW2DK(dwaX%arxl)RA?a;x8IqOGuMy7K8kp1A8F9RJs&6g zfk{X*C(AvkmCw|xPng;@@EfAyV@2jJ1ABi1^v(CBz0&dN=p0FSW%7z)QQ9qqw-fhJ zWI3s`aP$=ka*yPITufA7=cpy8&`EvHwZ~G@X zJpY{30O06>3P;mZG4MX6dd1E;2_@RM+l6n3z6HmiV*B$IDH98JoEIldSM!P-O7TIA z$mi$Ra2pLj!<9JP_0_Xlw1@r*lh81@pZDsDV|zC;xO`BUZ}F9WSJO`#WwBoG)nCVx4^NI>HGRFAo z$yKK^v_nft|>i3^`d7`_bYMv6WjtxU| zTI=QC>n)8?E>bQipdNnK%s;G3^P}t9^~5?^<-W4Dt07PUfwDg1wxjFF3XzyCE~!gn zXmZl7hy)!^lLa^`e;xpK%Sh{43_MXe*FCJM0`tH3ipqZY4Wy3XxIJI4CUz(pBi( zvDgLi9OW#zz@VvfpqfnNt%^(1@IDfvy+MYn^WIX0KZOoZ&a|hHJ@&(z9yx2aBlTv#n^nX&-$*F!kn<94tj?L=M?)5g z>&*ZjoOg5eLZ4IWTp5wjG*#^I0Wo3o zU`*^a>}vaR4)>qy-$`!u`<>YxYz$V|F-0Kaco*?dDtG5PZ$yh zS_ys|nHbo_y-p1=wA5RoL+MU#OKajb?SAtl>lEcF5{Zl|#Q3a66RTS$pJ;~t=C-{N z9lo0}`ta7^5#2CyLmV86l2NAcR|-*q{NQZ{7CH!9^eA}2RF!aiNS6}ljdkYV(oVX?70-VLYefXy2+snx)(E zv<%uXmBeiHQanw?fBWQ4fn3ZscgBA^ti`p}+CxqYHOrhybTr^&vNo&85Y4o2OKV5z z2VI=L#s!9J)2^5h0+v;UHEDnxDIyOeRBVl8Hp&H7wrta@&j!%=@b!e|5rwx>h-#wh zMAG(H^%QZ#Bu<<%YGp619tL;LI}vtIuDHlT0NGfftIC@?v$w`{M8QO?ZY%j_vqOgn z7{#83T!SVztA$PdEnZp?I;JfT!kDXrSaw-^tjp>cdyp?o#Iu^naz$Cb*1_+7d6|Ze zS#E(%kOT$h_{jA<3V2k>rgxJ5_qH&Pi1|cg5@b1ghvhwUdz~S#d)?(={i%1n?0A#w zfv2pFnQA=G(y-a95!vs^Hi4G&;Ow8#v99Q58jiO-!=wDydWMQEnA?TX4!@~E=T7?V zgiqk8#EN&#LB|=j#Jlts2YSGQGAE_cfw>&Ab@^syc9nC0P#sQLPM!m)`qER*yobNZV7M3zoRqqouM`&3hm;p zIhd1VG_1}2^KeV!VUQ*8le^BhkE`{hH_Y}m6jGhi9_?^ZE-3GZq+n0ZqaGE}n8lHZ zHV1v0wgvSmUGP}sH&p0iEQ>egCTF)BH2@$Fh^asLjJ7ek#TNbGr<6EXRz6M_A7dtC zi-pamsF{9Jq#0XUvJrn}d2v6Ik^XiU+bL8dswxl76_qp!$sy_qe|qU0UAu_o&EDsz zPnkcyKC*@VIXFxga!DOQPpmWZzZY=7Z&WiVG9~w%4%D||Ip8sEodMh$+@cBZ9x*K$ z4PTfo1j!r69{<|@%V|wEF-vANGm?E*%%-_i*0&X9=PE>|7W@4+R-oVk$G82NN~|Cf zPHpmIUfVnbVg^1l)&fKG>X&QuC3zJm$G-8uJ984wtkxC?RdIFj?ME-qUl~4)Eivta zMqX;Rvo8q8w@>&iBou+8ZjK)r1MrftR=R4`d&LrR(!#fKCxU!BpKHfV2Tai{@O&W8 z!k<=P<5JVbh{~Fw`M4vkZ>-PLGip?2P+8E30ZWbRbzYo~9w;t!L!A78yd_k z`7WABvu@rU(Cyc~nF9%JhoPlx!hd?TG&O!0?b9=^iBgNUjP43!?IhkQ1nrU2_WU*u z^-NJq8VUB|ETHq8+AW)BWMN~Q`?vL2fTH0yaeG6fRES|BfTc=AudQ+ch^kb^NMn=^ zqvIGOJvSVWjnsGkC-PaMF(GNKSth>RlF-_rMjxN!tB{@LQf+p>sxCUvxgglB@PZXX zKpE%zGJXF$t-f2MPhl&QyvbP=y6?Kn;eQ^&NVG9Ld*?f*1lzNO{(t@r9K1 zhCX7wCT)_f{}z6@HDYO}rt$t(o>EOSijJNwjG|x2!6BJt1B%T8uNd$1Zz$3vYqLWY z1-jB#C1lq64OrJ1%bKEA+~6L94Og2Ds4+@BDTH%Wy}s2C%W+ttTuZIlGHPsfOD>F+ zQOFumb#&Yr+LsQRqYcrbwLos970&xiK`6M~Pa_fy9Wu>3D$YM*xzJaGYlB%1_U?Cz z@w78Vz*p}5j3(QHGk{*c47Av(tH7J$l#(GSsc3ssvTsQDc2BuDN;d_G2X%1uChUs-_f>3!b(tqsZ;8jr$a$z zj6@ZtUVI#5tcVG4fbv%fglZz~Io@%zn#f}xB`>2jle8~d)?Rtqw&P*aA{C+%l-#;I zX1cAsX0|Q)2{v6Li2MJG`CmAcw+HVGvd&m`+HaG=iF$-=DaT!`Tid~@J%F&!w`}oI zDHYaJy;Bo{Gqsk)#oH7Dh#f~t8b$Alg51aBL#<7X>=)r^un)27Y9qqS&TKgV8~<}r zZ#xE!PQqA>rXR=(#3LBqrXJ2o3gUna**Dx(;$mDgg^oBwQf9IH)KvA`wtsS(j9loD7>Cszq)?vI1eh8q+gqBEOk4>Tz5GmYEv^b-`$ZPk*G z{HS#ZrEuHvt>>MI_}Un$QZ=*Y;`h%Xd%WCs#%zMJ{#oE7p9W1wr>{@PpeM=>0_hLn zjRHspxh3IFUXlRrwTu}iXTZmmzWoOS!4#M!*96HzMDynEKm0tVH?jMObNZ|xK|VPc zRjpJfL&uM*XC1;qJDjpV`_D^hd`V%)*Y_s?=nY^R!gF4rXYh}d0vW9b;7{5^qL;U8 zy3!6#n@iVCLx(v3iWBoD!|fs%AD!W@`m*ZRAf5AaJ;X3o9QNm@KS?fw2zZ`r&}mp; z^^SuC0?&J(>Qr5ZRA=l#Gp7*cfb0xzegrgL7^}Krooqr@$ebWWOE8nWrHY!M^;};B z`3k-5^yh=tjv!kG7En<*^`N0#A06~AQ9rLu&{^>7#Cx#RC5Hi5q%~Ifw^_EP%RH3L zI_E)xV&cwDS!Ue@d0pBRUPINsU%w0^MUK5-5msFcIy!)UrMID;w2S&Arc*gPCVWXo z$HH2nDmgmJY89}LE5Fjz(@x0yovuavvUy6SC^m_03@v*R(euFdXMpappn>kg^lwz> z78f;8!N254{QJx83KYVqQIuTl!Skp8{F(to;1|UD2If1-T=|wYcE`KK6GFSX;73hpM&ITQa}`7%qlusnJB)C z&$v1f)`I2(z$RaB^1Kw9NL(S#{X(j<4hJ0THXK|MIZO8#*<6Jvu`S=IzflumNMN4b zxxrwCcUhliN{)%R-b)c<@Ku%~_&Gq*BBq3cF{0=W?~JASG|n^*bW%+Q&}s3ce=J8< zh1DeqQ+PzAf+-(xBDIw*(P`5C_EOldCn9hDAqG`9&J6fat!-I32R#o3eC+Ncp!%G$ zOdR9JkpZKEr@MFR@-=@3;L5AScE1}Rs;swPKMij+2uIbe!P)S0*^*!Le6_XAiudmi zftaYT_LQDgp_D1!?ZKzQq5gv%g3C5 zBV25MgG`{Ab`)$%AFy=Kg-5)ZN)S1qk~kiTs>-PRhuzP|kXm5&WBG^j6pv|K2E$ z@mo1aI4Ltq9Jtjp-!`C{h+YPs)nj@u(CLOT=HzEjL4OOQ%+e}x zJSvL`d47cg9wgot)J2G~IRf7` zsq`X7q%6Zf#;07?jcR8(h~XZs1(;xO$S(g@rJEIXB#UX#nQi#G{d`i%8WGgY3Nzby z(ch4+jG8Uo=z&gw-?`LXtWXr|A{5;F7BFiN>n%VlUS58--Te-d{QpD73_>{k-u8UR zeE%=MNZCiqeTlxUg|8m@+6=LhJZz}P7B+=l{5wZSCt{UOMhey^?hb+^pw^lir*$a! z?MkB=mNi&h&|8c*y%^+J!kugCeArcLX*{Jezew4fP}#cTBS>rA ze*I-Rk_ypHszh8OQ4*J<;J{ATjzcm%aE&}dm-Di;_-Io~xGCVE&p@cKB&;@Hu~&z* zP6y!3pM~m1~ZzL}Yy zzQ=I*zkQNK!I97CHb&f$?)7=wuz+r1>Kwt=a&0WQ>&R$qc)jECFTVis#KgkVjwLr^ zxL4q%!*?S5BzbEW&mZv`SLu$B)&Wx|9MYU;zSd=<>dTSHPhVUs>o>U~pW|e45oIQs zJJ|jBCGHw&;pZYD{B@KFszr0w^F+1P^l&-^yjIo7=hxD}ltb4(R}t%St7+ZY5HBld zlleT^ne{+%IL<-2y`P%utB`gvCrQRyE>q8Rt((XHY5I6z)4mQMbr8m%Iv61isc-<+Ic5=?wM4(wB^XAI%he* zK)k|QeX55lx`=@De500#m7RkoT*7H36M-smq@oc%gXuYA@c%*oDT?VC<_U z#sVKOsxS&4rOC6BDks02mLMK(QDVT>;CWyW(Zvdoqq1%aG|n(uH2~i}-$2T4+bPtx zM2`)lwMCn?*7VGg$Uo=&Q8kukjIq?JlwrgoTMj3sZS<;UaqjLA%Z(8(gkMH+USX1q_ z_)PAX`JF!lBQri7CX!eFBT4F?1qPw066~CFsgMit2R{m8i3D9_MEeYhzpj>)ZD@8K zbY*3uK{8!+wAXJv{{^QF<86CO61rsx={MA#d$n2zNyox3Q zC#bk4*nVRG)!s~QY})YSA%)4{}IUcsJ9E_NU0~lVZf;B{YvcgA8Z4? z+KV{fluz$1U2B=D<8ud|=*aq{=1c(eDPpjcY(JqeU7R7~m9Xt>xW4VKT=_J{U(Nld zc#kVIDkXfa1O9!47^(iB!itH9tj4t&ur4CKrn}A=h&ZHDN@lz}f{fFkMg$m})G!={ zq>SM+PEKL~-KQ;EUj#Q_{ot*?0F_cuB$Kfga%z+ISDq*!?0>c|nqrG%bJP|1%w(es zP06t!HBSmTx#&s4PzXz5l7LqyJ(sgO2aF<;E?A&w(1zN5L2EE#tfMmyM!* zU1_=&u2@@vYIa*)@6dn@7;>dZ6k>NmfZfEWMM z-h%7+HYHZ-cQI(h-vxj@mdF?&QLVSEyh65GMUH83PX`1md7`w^nut1T_x zcBjbvomlzeQV}{CnGPi|c3e$xDh{nfq3cxT=Gj>bM_c5Upd$TdD09bo65&KLxoo6V zuqA%j0&Q#oRi;R3(|O&rSMJ5CKu~DNJe5g>_)huv!7vwc`?{_ItNf)3MDSbTpZGVt z+6v0#LSkk)+1l~O?y?b3sAKIi1<5B?ePPh(oWua__UbxOjt-phSLt5&Z+&(^|F;3x z7V-2uLpkdn0wQp09XV)NqzR9&l=WZSEK~246sj!DVvEtIk4J@$lWuZh*Ur^j=~FvB zJ(<>g$2~10?|@rnq?-M)gAQnT9z0~l-_k*vb=6|N2gkF|)X`C**2P5x5T?bIw!YQF z_H!(U*DT$8`RCN*x(TNaT>m5g7_d3)P8>u!*B?o>_lqPSq6x?jZ~Gz@EMT5NJB0}K zt(PvwH<~(oJ6~FgrXRsuL$pPMU%9YPLzZ4ZM#9I}9QX&hx7WHzQe`U~lBF%cswX1%+k8+UX=iR(B(Za9N$RZY-{}P}FTP4EZds*HLv$Jdj;uGj;3f;G z^kDiMLjKt0&j7lG{4Y`@BP3{n&t4MQMi%2i=zDXF{r^H-8N43zDIsiu!9{lrVp_&!9{4{LNs-44h9NV%o4?<;vrY zi1exPPFM95@@cQKGUAK*xa4{t?-FouJ@fI)KW)i^)&J-VjztHyJf5}F?Z~Zw-yI#j zY`xUz*os+)b@h3vw8=%qbak*z4M)-NX<0PSWO90V!Msj^8?fNg>4DoZuop`XSZS(j ztzI=8Q$drgm=>K2Pb=Ca;Nmhz*4+eMUN(d3bxC(sEm_A&jQ;a?tae8mrdCimKhmnq z@SUFg*1~3f@2#bdpqf8cD&tBNTI^5Kj7M9F2ahPv24Q6pSJt#lzHzkrT{H&i(9f~7 zZi|{XSd?aJ)2kgFv6nGL^mYXL zk8FzM_n!1#tgIms!V2Xsp%_c&hj-z=E$1fYjoh2?9alF#tN~%1cH&3Bx#<}vUKcb* z0sgj}E|?|X4NrZ4a0P*P3GIFjxY~_2{shC8lw_jK#JSNP^Lh=qj6OvW=S!HA&Z(Mn zyw!EHk~2tuin=pNYQ%l^W>YeA|F_czYY+bc=*azz-1x;a76XcmpB zZ5dP9GDJlTxeOTyKh8A1rnFq@-){trNtjoI8L+?Bk4aV8Yt_EKf*FsAG&{XtF0Z)) zy~z)RZ+C58l}$*}EW!QMK2HI$ zeV7cLI3dwwI}v@LI?(i1%fVigLd6TU@oRJVRITKcbF1a?8wA`gx2!S!YSdY+M+wc( zeMohN_N!~5e2{yDA(re;ulv+MDyH6BeokU5M46*pS7Y#v+)w3fu;==j6uL?7((t3#CubPqNxvf19XFn-*FhPDsF=i&LM$88s1xs0rRWTMC|z5X zw-uOU$X2kIQba*gOTe)v1neVwm#rbAGcY`g`VzCT1JU(zWz_3EzS2PC%|V&^3naf_wmvesQmy`)8IE}cCD3^$dMBAw)7BbIFTJ!GDjsyf+3(U!BrUpttIbqdman)w`JZoU!i&r=KJ{t1w#>2MF z%Op%ir~4O6xvVPpzH7W6revsiFoDddz|-pc_)$7XubYKz+w9?QsK1fRlhDxHrjV2H zlav*aRaj^EBsGha@h3a7c!lmBzpLIK`n>$^c}%>7NnZb{zUrGFVj*S937fIIwssjY z7HgXcHFA$$lF0N`)A#yjwGZEe7YRhvalfOcxh}zZdEZy`u40^pY`v9GjR-c$to^5) zJ#gez=F>V8B;YK#P@Z>#Aml6i zskO9#(0xTa-u?BT>-R?$aMm!~139U?uDFqQZ0x~*Wu9vJXAl+BviongMUi1e=SsXm zpmpFnb4?^OZN`+4O@jh8Se|R2Bd`IvTn0HGWUBOTPmjq|QhO z7^Et=g-kS?P0q=oJ;*tRhflD#+akE$iM*CcV%Wk{JHfps;st@&fR?i~`ikr9&GsB~ z(}U64ej1^9{ET&EtI4zB4OHLn<8~nTrM|&2TzeH7l|jYA}vSzX=(WaW$zR_BcL>N72KH zgwe@5oI-X{uYm}>q^>%D8$IBKUdt}-8YL79=%!DNP}u{ifEKrT)CTzNU{cwg1`iCwdRMi09>lSGcy$Xrt+!6m_6o_Bm0k<*AV) zsquAJhVF41xQ6Fj%R1dVq7irqm7$1Fhm=hmrXcLQu9j(T;N2Dj6<|u$lF-Q}EEv#6 zyHQ?;W5^PYg%pwEIhA3-(Uk*uKv$x_UN9kZ zd9;e?C5JMdN}`-qf$7i;l=Qt7SQy{ORz^F_+0T)1grPYHE^L){COY$^xEWmfv$VB{ zDH{M_=@t=+P7k(=JnUQm#*wS>uy5n1_@!>iZn(`$*9adq)srx1W`Y4p>QKOR&?=9D`-t_xe0n#>Woy40TsS?wgyb}`x`t;Ba&TM!Ixsii!RvNILqYT7 z#WkX&d9sS=mC|aSz8LUzUhEW9rGX+4s9~ubdZA0 z&thXtPnM^vu)#(n5K)?_}t?s>E zRQ`%6oS=3u8*ZIK966}od|N!=8K4G?nvTvR|G3-XLZIq~yQVL3EscHiG}vpGd)2?eH|fghp^Dk^qTa|SduJ9uXAa93khiLkq$$^pP zXfq4;i&ihNKHSL8_JZCX_Kq;W!g`4^*30}2LQca^CS?UhETc#PbA9!x$wi}D7t=J) z2L^UU#WXPPA@KGKH>nwiq(ePb3McJM`4|g1kGeS~3XVnk6#DSb;n?h{ z*0@K`rV~nfrZn>Ew6bW33m60W(+`yz;l#Ce8epPMBvcE{p5)R|G<4j&$FU%jHkder za;U#By+v$hJ!tri2p+!Y4i)gRFMZ++z7OQQZd!cnANXJsu;+DMGypFr=tg1RO)@@F z(}`d^mb;s!Jkb$qXI58N!@`hakzQ)xs>F_7HpG+0E4*jeusPqd3C2(kt8`!#n0M2t zpU|i{1f|aWx+3q~RO$Z61Q1wawH#CF_%x_Uvwj}?W3$Z1V`@q5&nOxSANb&WIB`?v z-Z{wG;k$o_U7Qt$j%evyJ>#ubR_)9l=LnYfv186OWP=b#*gto*d$H81ttMwe0uaIX z{3>m0985G!pw$;53()r^x+>88{8mws5devRPP&p%CPZ#AbZAJHZb^J_>#qIL554oO z%X~d0j8=L{lu4Q2x;8Dz7sfH#=7|^@y$ZQd^Bm{~J@Yi)Q30tHU~8S~`f<#dEG1Rd za}iS7EuG?83HGNU&1ll7mE(mRn#!6vS>Dc|`RET)(r66)B&Kw91S^|P7$QEbr zdwT)+`4pwbvu5H7_p@#9^Hcnn|K1C>9sYG13w|(1^G9p*J8Oi0zd!yP;qHC9;@)G= z(B8gEZx6V<54t=}p81<={)qUV4pl?;6x8VPoy*rb=sLbOZs7yRNSdW$3rVhQl2_^N zF(v~d9UFw`cba96XQ!cn4Jlxx9Qsu^XJR(1AogJmdd(*x#dulKGBQqZY;E#I{VY#O zuzC3_M&WRsk4sZtggwPQEU=)nv&$QL7Pj!=Ucv73PPz4K>CiG=vo3tlevfbJn4NgP zu-Cj!@KD6Xr2;J5jdA#ej4P#=Wha)BfQfyI>>cjBq>>WuRT};?Dc4eiH>uxX>Z?6- zhD|$jy2>lDP~6sKO!Hz_vytC`7)K?qkgVURW!AD;X0_4q+os;?doKrA2$PO^Y3kyj z1m2>WAkcc<95p$g7gE7{cd$4;R>#1ZF*S4MB`!%#4bIdu15PwhH3fhZ zE92L(DC^7(TXKx+`KfW`7~X7`_%XAAvJ-#DF!9 z4Yw{k;I1%Nq@}(4TY`CkcC2L-kM}bB{R^P)3!+THkKy<0J6sPPKi>cp84_-au=j^R zN8k+=tLlm8yQetClV$TUn*}&#Qm9&-)CWgAoq>lm<2^5H?I{`{nZTxo79)dFP8bbwLC)Dcm4xe$pQaUd`41J6b}A|LVl|R#QS?bWUbT zC{Qb9v-SYjZS)LZ4m>w+kHR7x$_9zV)4S^F@Ce;v$0>WHiqF76HcW7- zfBhUT&Z&J6s(5C)d!h#PIsi`H+R?x+6#j8!C2&s%N zq=Qa+WYdQd2!y7hA!x4jG18H#=1+QfY;U_xes}a3$qHB^`(!fdHgk%D`%riyt0*<; zlheZwWimzGql7@0MKfYWxTt6Dd}v-A3clPdQ>SeKd%oPn2=~9)i$d|Nl+l&aiqQ-U z{W^MRP0zePogLmgK%sIJ_r&D zqFFWj$R+K4_bE+lB<)k6V<;YXAB}}%+aK26HL{MU^f*@FceONfvslPG5DL#H>#d_s z;0ZSH7Vl}#+vh&&or`Y&V8csGA5B|rf$C;4yxV9~ltv=Jr}c!_fRxzCMMsnj`m79! z-y&BFjc|m-wsJV){hTX)OhiW+FJGH3thrYJQpP({bBkS586EdMo`;1nZT0*eGZCaw zD5v(|iUViI!hpH@?J(EhV8^&IsBPXS_d8&rNb5#h)+F0D)MhbLY`_Wca2E7!-;lnw zlj_U~w9(H@?b3T8pY-R4vxW!8esjHO-lH4!M{c+Ok&(YrP8GpFFCPPYFRNU%#hDkx^jqJi9De&&4t&8XassJny!Y zFyHTP_%@9zzsC@h-Dnk4@q>sb;uxA0gKJkRhC4(O3NV|r$n!3Q%;E&lXA7S z*VcORwR4x5hcNFT>!T+Kb2R-*jM?1UeSP*l;t7_nA|BVKk`tobV6k<9=tSz1V7Oj& zS?Y+}ZJ}9@(bHk4ZZ8TUg9Yy&7z&P9pI(D>tHCG2l0q&mrUF}X(%D5_0ZcAK4@EC> z`{?sOj@zQnfXMgk>XVbAmaS`bue2j)*`{j%*+Dg?`5O0S@4J6PwZ%?F_nI`Xs-KD#%oAsmVlh{I zf~1N)IN=oEkMb21Jc_y?D{u1k?yMrtj1FAf7qlaBIfiVMEIDWbpctu$z@dCZ+Ux^w zI8Ha8aJJI|dtRc}xXb#(odO`Aygkf~7rWG{zhlgt{dvMlK1Aemlt zYyovC@oEz+64gjJgqpzHuXoReAkkX7B9vn6m^l_guuzh?H2O3K2`*3T(IS;m2;s0* zuC%SN@9ApYHA}dGM?DgAJe}GXOqrfmiO(}fo#*biN~j&uaXkZ@&X8rkkXleng6YRN zVc2NqYr2WxzncIAE05Bkt-Q`AmoIT#UxCg@G?_=*v2=|ve zFQ&cc)%5!=&$TaSX&OlT&oMhUj=lRTUuyk*YJ?~=)s#K6pOWGr3Jxx0I|g51)#Wsu2D-A49S<|Hs!qsH%y>3s)^|2- z=<-2xK%(|IYocF_OYFBwn+S;krtc?&1xV<^w>EYRY1!##@XF3KBmHk%VLoi$DmQrV z4!&Po4|bHoa@T)flu@qQR}LG>#IH( z7Zd2O0hmkgD0EBeRP%f&H<4G7!X6K20r%`q5sC=3atLVQYcMD7tb`TPyI=5QMXd2$ z&f|b&w=5MPJ*Fl@byTIcNPM29$4+i`PxPX@4y~m$Bg3kRNBovPThaoC_sE08LFW{v z9kClNKZ1~z(=!<(S~@lR`DpSiWkuw>oY*E^wK_xs3(bI~YN+}u^+rHd6N-0UPEE<* za)CpVzoq`6v}m=-uT(`jtw7hdz>na>FeC+XS;0QESw&NqUX08-W!0+GbryS0k)gH+ zGzOzk0Utr1HRPN-;m@KVnomA*lY(5LF_kemin7o#ghC}x(`w(gRe^Q~{l&DorCqP- zcouMU(mVyjVwtl%I&vIR+d+nAU)#IxFxH%$MqN8%6h+5@jV^I2#9Ob)LA`)an!(C2 zh#kO!wrinjytt}nM}f^G=M4CUg8V)99FF#T)U)g_)Lk9vci+iX!6(Pks-D%-^y~x- z0=^$CTAeS^@~^ty;9JZ{q-zw^UnCB;Y(J7p1$B>n#JK!^yHW7vI0q47=F5hD@9Ddl zz>A6A*LN@UAAkS;avLpiebZw8hrQrGlf~DyD%bmO2;RRN@%HG?vmWoi+^;-wDLfta zJ{7#o4{UKiwi!hhLoZL*_mY+!kI%1wvG>vY1>W9$$oX>n<=T7aSLaLfm)|qnU(N43$As7@s%+gO zmY3O~byVH8evl=Rv^K>Jb$!x94ATYUqava8DsylLyY?&bGr>VT$h6drl&oE*DHS3( zX5mrKN%%_SI*-ItmmM-QDS5YX4&m5x6!fLnfu5q-Zo`60?(&VZH00r zE;Qu0`#&W;H3){9rMj^|BUtYbRN4o=4u5dYXvvyCd&+$y+YuI(X05QO9n zSS-ZgPs#4WaOCUI;!RuJRm-A=t?WQ?)s~N3E@yDL^2vf7PiS6B< zPSata?Sm(Dbk^boM%V}4$aU#Vk6oq)T3ZZb@lk3vUFhv|tCHjwz& zuD;BURr_wi=4DqvsD5w&mwTblRg(izD2yJbI`#@VOP+9$Rv?W1)l@_7^;3$RjZ4Z} zA>a(4pEwMBjSP>etWj%5HOPgNQRr6E-6)hHd3l6HdV|2@UYkx%RM)TLn>m3N%+CrA z2M>aew70yhLG~&$9bP$hI&U{i1s@tB=~&yU>%=Urui?~Jd9p57A3-h&8S);#HA~q7GOUju>`i?ExE@yvymS&j@JsPyQKX*FVc9uV<79$pG zdgtlSJz)Jmrrs(lu0RPE1%d|%PH>n23GN=;-QC^Y-95N_aEIVBxI4jhAh-|i3|!7R z_pbN$*Uab4TD`lgy1MGT!=7G;UMC0xx5aHWG&JI~x_}u=U$Sc{@lL{=f8vRr7Wf|C z>inwJm9$cSfr@G9oa;QIBTtq=E{6wft}w}d++7Sr2?8=@OCSPac1t1Xy*DV)5hlhS2)p>=&HS=E= zK@^Vwd}-0{9op_|()Zl}*Q6x>=xy)=|H#KkbIf}kaB~XvZ@v3`{W*#AP+^$4Z3OAG z`)%uKoHzf4FhAh!DL%d zkIPi1lt^=p>HOSk9-B>G7J^!;u=K8#Zs$p72eXQe{<(Wvhu4DV1_AGWm@=I5o~EtU zufln2P}8itp4S42XmPXk6$he2`W2PHe2r@pQAtK-NlIn0qrpcm?KTr1KT3pE?IP&Q zKNR$6x{;ccL>Bbn#qZ)2g2;H!nB9`}bE7ouqiI>X4gH0jOrJ%M#CMVWpaJxLQo7AL z-R^)dRi&*!HVuq)_C`EWi*v=_YE9Co7I8HC?7BtlKis)$h+?&*`v+S-%^D|(eQAk_ z6l{z4B3RF-6LIv-M3kl=ZH&j1^XLlOusLG@a1xT^5F~pchbyK6)+VDUH9!pO@EWDA z817}V^FL=uHxCaVp0~TYJ^yIL2WS2Wwsw?|wTmODB&W~~Ev$DB^`{twM4BJONi9vT zq=_xC%_C#NV6~)>MV1Tijok~4T2l{Fv8gGs-U+o!H4xfLs#Yby0fr8C|1_QM$3=jF`O842F3L-rk_=Z(hTC&-j zm@>cn+>(BbuT!<*h^ZFuW|7-|+!HeSpls&MF%PEg%MW;sq?DjmS84W(m%@DjgG2uo`q?slmH!fDj+Vdv8$;<%a=_V3dxx0Y$P6G71p5bf5lCBl4ME%;jgB<#L&?uaj9#yJLH=k1MC1V6BWwk ziF*B}mvfk!rHi0~n6foaJw@1(+yDW69Tb{dqz#;GZi@?kJ|KzkAELZtFzjd`#_bhV(DQC>R_{bXadCqt6p3mkdZ;FB9f2n*?x~eGM&p*E^ zJNdr#KC9_L>AQ9Fee3aV>+S|}ay#m?d2_(ogYS6*%=?&1e@FG~*=;@43fzkSvnY%I zUw!Mor}cyWgA%*j+FmQ`o{9fMs2V#Tx#zy`{VL#H&ffQ+H{-PNe|FAEY#vmF{GBp}!5_C+|E z@u~EU|IFBuB1)xU5HoJ6ZJz&`tq|*1*^fIZ!ZH}+ZDJ^ybIqM@q<<}EVq2(6{~<_A zv|8dumuIZkvo_c~4;xwBSF5r)w;i@4sGa|-$u+^5RmZBl)LGR*3wEh-;U+m4c^NR$ zm#%O`u+c%J;=d!~EsKus%} z?lcE^_twEPX81E0QZFuSURTmeRZUu5Ht5cRIgo z^S<_e$rrFA@N|CR^#Tmqdcu2;f4q6G3V878z9j5^A>O(S3wU7c`O;hW7UJ;Q<9~(s zuJrn{^=uNb9sicsa~ttKE#bf0c`WC^L%ykia@yi>crfrfyDid7`Ub`m;K)6a;`^_k z*hlFe<_Aou^xoHOy~)3haduw;yZ=+s8k_f&TX$^ykQIZjyY;Q7gZRL1()FCz4c^V$ zVUOFbx2x9f-6H7Q|EpQr(r?0LNLF!57Q<89~0 zt=e(~>?piO89XNXyb|_-@bo>m+utwZXLvTi%W;-yjZZoEcB>~em>PB!DyrXRK)zBU zhTrw@f7@UkSN32@nu^X0p=KM&Bui;`5gkAWBEs+xs+QAK*j}igPnzyI!V$*OnzXJ5 zaS=tLhfP~$%`f!De7Ss?>MjqJXXaE;2Z!XPn`z;8vw=tsHg7%mwnzO!fZVk%u2Yw$ z^GyvSymY(_+=nT1XuD`4ZXOR3FBXoT>S(PkvfI-~xRU@eLWu2i$}S4J5%jlTma-l? z_>3(?rqcu>(?8nT$D`TS%i~N^6+i63e`J<4vPr|a>KWx1#tRCU@Lq)@Qq~13U^b1t zwj}UIhBb>;fEUGRemDWs(@9FsK~wuz(^RYO*ceLXj!qk%o=l}bNpIv{EaQOL1E*_l zN)od+$4+@Ms)0=9B0$nwNerY^2KGCrNZ!~k3bc`{mL=_GFy#8)GQMv2YIlDhAtIgR z=jN9Dk09^ZA0Nirk2JUNg^F-gLVePfRh<61P$S50Fv42w9iGOTAa?*_fn_-v^^!f@ zIn2MMN#AjWaAbgR7zGWbFiwZ3R!&4FXN0#){l;)7MrdZJZTiOaqS9VQQM0|s9~1C3 z*vv%6K|b$n+H_1WCrej(565wf=w`uLQN%ggU(UnKgt_ILdajxaTLDvb=>kH~4>v3K zHB275bb2f<-^j1Q!ij%GC(b#_wO#F+mTo2Qlz78?S$D5i4|;VIVL@R&i0dptfr#@? z4I~sT#d5`ROkc5=_lgABR4J=|MJD`aUSG>N_txcL*`4MEPA{NgXu($~Mn=-Hq||3KeEy?vU@C2|<0hv~-p|gb(e?=r zX0%ZG2P~87#EtuYn@oN5=1(%YKV<0EsBU#&$6(EezDb1G0%B2$xgUD$LM`i2mQyY$ zeuVXr&=s*paKqiH--fMcSJ$9^wt~MRSB_#=jpQQcxEei*cb)d)Sle;Ns@6`OQ5630 zZjDK(AmniMqwBuNfBT#N=-2an6BKZlwso&_Y1VVs^KS7TmAU%GpZ}5{O5l!o>)GH_ z@cT0GecRx1pyxg&DE`2McLx$$&%lqo!yo1r&_b~p4_)K{x&Nr*njh z$Jg&rorj-;zOUSw1l%pPc0N5hyqx5J>E);V@)pJD^$hp_dN%F==-mC~RzP4VvbBc1 z`y^(M+H-=z*LM!N`6S~}DhNn&h1AKCJ+Sm$n>{w7iu2Xt-B~N|sT$Py9`npSRc-nq z50rly9;WDF+KNJqw4N`96jEe`jaQnSwaCsX%+h#lkhN5f4KCOxdf!|!8Q7ye5ae*h zjadCGkEW?j11)acSv5Wts~Lt8bd)H5i?^}Cb(LNH(hkgyn{dy#U~dB+IWb0P+tjdM zj5LwPk9hwaM%cOkr2ii;W$rZU1MrU+%rhB_ag*`gmQX+Q*_W8o6lH1PPy3s{aZgvu zOxYw3Zrs7QhBKCnG|G!=AdFvk!PZ5I!Bw^?sA-dQ2$|yFk~Ig%B)R@(1(!@Im_f}s zRyV~t!6z)?*?`9tbR*$xmP;#T9DH$lq5cwVbO}#Zt4z9JDd8s7Z%xQpYs}bR5ZBr6 zrppEWz|^Iw3&Hqh)jL(o7{fWAJN4#vt{20vc`IZA@)I(`B4Px5ewOYo@A%lWNdFq} zT`Wi;{xV>ZlNlYR&e8s(e_=z z2Hk|6EOeMzf&BrRTznCU^95NO6hp?clMnk@-5T@7h^D(STooPGqcvE|`Jp;G(~FH);`Es83+oKmF)uM-Zby!u zU-4X0J&2=!W*!;)MaRDU{aO?(5z6$<9UYpS3NU+r&ynXo()9cfly+6D1Fxzh!upGR zNa=ITIN7P&GLPk|d&FL-=Hj;mg7Qk5LUy^lhpz12i{84wGuhgE;Gd*wMK+CxohfW} zbezldWXK%-v7hxuI}$sNceSdl^Lf`?>&_eh&OT$1AjWg`uNb>Y+nKu^ zUY`#ymmEIoHzz&gf2?vikoeSpQ3Dbe?|rEf<++acwDmF@|IB}Q9`C%m2DjGt+tX*ulspy);5f^I<0IdmoFizP%hU6&Rr=5+#@6 zsOMkubQ^I%SnHZ+X(iW;XqE%xd_-V(X9A9@l@I!^SKhq+bF>NN<;|CVm?<*YexJ)- zxTK`7g<&B9bB=|Edx5;(Mq&(`zex_M&NZL!=g)o||B>`|x{15lxMX<=KKXl?(+G5> zW3@_+hfEZBe4z{OF3fL*1AhqXFzl(){!mYtHy?PnZIGm$daX*(K_lpjicwU=CpD~* zrNMSIh~Q|$VKG6&K_7efP_U4hmC81%(Sb(E?UeN}wB(e6EPXnp<~Ag7!lC4|m{COKhB$a??EM)m+9p(UcE3377SG%W{aZ02)c<7j`sILF z^|i^nbZpl%oEF#BcH~O~KMRwQ$4>?q(+n`{EXxAiBQ4U+G7q23d;ENpNq(ki=2sSDf9X-%xM&YZZg7n#^0e-J_8$JzQ}U@E00GtXCQ?*qI@$(yk4v6p#JQuu7E#fO$8iAhc|D%)c@f<*OuwL)xB zyQXCt5mnn2z#53XyY{E%+4Qq=Tb#Q#QtW;1cf&M(Ji0;Qm;IAMNHY1WwOu^arB}ee zhu4EIZ}aa*kigeL1;2ldAEdDFw!wQn=?iupzJH4^DE{SfM&sfo>Tv5Z)c`_y;R$Xx z=&kdQ`!1j+NBsKH9`PTeZU}DvA6vX@3{qg;v4f2DKw_4D<=*>A`!4$kxOsJw2wln; zJjApSQM_*relG>(Zr+j(7k$}+kiO;b7Ulboi3?sUykbEvb>6|T=g-XzFp1uJh{W}El@k|N91a|!2&^xB z6kbn1*l8sJrq_iNk{Rb_MS%EUfgKsoIk%wRc5 z&K-(6$q$ybEa2qYc#;tSRCYD>9lZz1E$x!G;bGoG&h5&f!sk;YFv2I&z9g~4U>f+* zl1O1d8~vTWMacZej$W$>wSJGQDP5P&{B$JqB*AyyUmeM887G^rG=iORt&-#GOj0og z26^vUp3DW?*kuz(SF%Rf_lZ{RKZ2n&xN2TSem>v&pS|)B^puxZslsdQPoQd!Gm-8n z_`g<|F1C*@xHptzv?$_Z7$dBlpEx;Ew}rxzMT(-?KCHLg!NF{IEHqnnw#T&2%fEp8rCa{9K_UiliksouwFT+Qd5>@XY?myY(30BOrSD z<^VZ(A8~k@zIe3g*_!mfJU4hI?KxG6@f48nW)RriRZzJ7&Y|4v^S1ZlTPHXDl6v92 zd=r33x~q0q-{TD?c6d(iIe7BmdyjbjwDpqb(S1`?UDX`5 z(h*$;cBxH`ad1kO3K;;E9SaiGY;~VH=}YNkhcKhdTZc_Ttu0M@V$%{ZZG_cIOWSc0 zr5Tm8>1Go~?;Nr{oE=KBby_jAcBhbE>W>M;Yg=T$&uq8E|NVV2FTPU~qU8R|!jyl9 z%Sd=(C|MQfh;7^GAXlfSvtr%Xt0E*bYc*CER4bQcL+4n;-MIMSqyHmX9#tDfW;3;5 zDoyOr*k#@wEuuPN#?peWJ=5c;8=KMX<2OYNY?qM`zwd`UUG28#PSoq?P}OPmTy6+nGOVl?*Z0lB=fN+}r9eSOp|{fBPDpP17gg2Bu@s|N z%guexjX}VmKU8J-{E-pX+Sg*XoQlqMkYjW1H{JEnl}`Hnha#XvR}6>2ZC0-Uh7&#L zkE0QRs2dP#-gWnPlp^mh=Gq+*w2E($RL>G)cF^ufDsaeRe=*_$3nfv+T_a*;h6M=v z6_GtW)YdYbx$|Wj=9HzM_`zL=Ib9FhE^%-5OZ*S!G%8yyVK1^{*M5g!;0(V{UDphO z%_MX9iaedwc;UYIgN-D&Xhq?wiOTHCwRQ>1XEhPJVeG@pXvY%i7hiOmIPR4_OOPHB zjrmAIaRT{L33`fN-uj4()b2^Q%!m7vsHz&>@ZilR9N7p~u-Q*pi+t<+Nz-&kOVD=t zx06xge{XGhAXE-;b{XD$EJ zIICXBs&2EUPTaBo8B7KYn<&6YF(!qnw(m4b)S&dy{uiOF0Z|+mhmiB z$lpbvfcfthR6cZl0XwJ;p5FpN;OE!ZofzBK?4GAqf5>vc`GZMr2JBwd{fGV{(%|g@iein9CA(D%tf{Qu zv1Bs_T2v8r=3d^f=Ka2|wphE`=j%HI`SJuHz zdw3pA#G%psW*7arN^c&Bq7kv(P>-bq7U#S9K(c1_EED#JK+x+ki=TJY$JyKZ`F-jO zrlUknIZg?Oxq>gph1^=W^-mVhR@;0g1al}fY$USh+r%KQAKEQeFv(H)^aYVzuyWsM zKK7Tx;cg&BINBP#?MuMNaS+9~_z@)5k60 zZ-S6C@EcDIUS?M9qwTCuNn>1k_UVZC>hu9qm)XxwFTNS95>9*1D+tTEd&KD}Xv@p< zadBqmj%9rFkE|wI>?|B&{yma?V3JyAu$;d1=2z|S*ka3UC#Rd;oQ`;sf+whn z4d|SxlM-#Tp%~Ig;af+9KYpd1HuZx}Q+Mk|CQaGv&p@g*&n-;B-~v?F&`8PX*eCq{ zZ8ta?Lv)&^@mhsV%X9lKYblMN>B8ac59|vb6&|LF^XN7!zv7j7b}hczxn-)ug;jmJ z0iSeQP<@HhU9GKS2myHDYNVd)LYt;W`YY@c&)xAHL|{9d)jUxIe+UKBW6l@SZA+Cv zaaHgLM=0cg>S8CBUP%IRlb(y8V7j*Tx0bzzy-hoE26ZfS6g<2NV`_X^N@Y*rpc04v z^s)?J-}B1KBh!-IJFcX9^;Q<{AI-)(9~-Arb@ZE5xx0;Y5-7At_LX0P$ER|C*d#Vv zOOxf=(;?LXnUO^MpK%A|-dyscyXm0aZyPKc zsYTdEM6+YtU)e-dHVvYKXpNtovL+xKIK&{=_z4JK5}Gbudp~v5Jv~>*yH%>>o~ZUH ze5j6ix1OdQp3)q6yRXImfG>JjSpy9oo0t6|25(h$vESc!1WVoPA(3f4@A-{*Z!eD~7n`pE0rCPj0*0IE0#EU@hIvU=O{KE;!)e}ZV} zy!2P~gmUhV2{2eZw$r~Y*F%`?49@SM5-#okw;Ssu?9mcT=h)rxu@; zm4ddj1GRn~S_&YO{c6%XMwHRp34;uCM!^YECz4&+>*&3V%8bJ z@Qg}lHk4uJplpQs+=^0F7yawjaF88zv)uABTeY}#8+;Nm+Rfpw#d_2kt$=%MO2p3m&g(z^9T&vx>;D8Bs5W> zG;?`)G%}LTb`=1riFs>>igV5Ru<~08S)64$2rR=B&~=cGyi=O33l(LE_^B{SRd$H( znCax6ZmS*G+&I;++NLEpMOo2ei?_W|=q+ZNWYl6eZ&w*nSfNSj8tzB3Q)%QjZ-^wx zier*CNvI0VaE}ur2+gL>dAut%}I`8B^jRy(rUqt+uR1(Y( zByf{kr^`?EHoip`nEzU~SNi$-fiAvPOU+MAvvqyIcmJ%m>(S<#cjjg5hU7i@y$v#5 zw?FffaU$jI<-Oc@`3uS;=>nk=wVVS|&{ny$gRo+`*_edfg`xkFlnfU$JF01IR$2i< z@-HCeg$86(-NYV)mL{xf32#A~)lS#S-jNefo;reWony6n-%B24bA`|B#Z8Cz0=mCi zynej8)!IJ%mw`iRgu!M*iRmBcQKp_sDP>WK6>Zec9)I#g7P|4LD7Y8dV;>iZ5xG)R z(-@7EFR3!Iy{uI{lvl-wW)zNO?w^x#a`9JDtU(xW85bZ+v@kNIZ?m-XEDZss5QZJ< zJpGI7A~H-M@qql&?QZuEXhky9wiP-KnY_f9P#X-DWyM`XBGe-2Y=npyJQZom5;1Ui zC*NP5?$k4ar6BB!$)rQJ8nofOVLtD?!@!@_bXrFyq_sRM8gG*H4i(iUX*2Ze3i8+O zw0_4ze#c5Q>2PpAkmMgxJlZ}HZwW(HB*5`~{h?#3mYT5a-++Nhf2m|pvMO+~6J9hDl$5p3Ihzay&BPocw5#1T|p{pE5oig;wZ z1~1agRyO^Z$xxYIGv+R{*o?vRL^wU(>OSn?dGxeBj zpEflML5;a$hJvS^Bosr^J@lHJ{$Z~>vPK+EX&Y&u{_8TBKM$n2Y?dp9hUKjSDIW;j z$Wsc=WDyB*9X)8<5W&E+>y;0qQH!%Zp8`$K^%DJoLTJ%1ZU22wreE=?;^JNV##0A3~07ATh_O(G-(x1)Sm0+&3#TVp6@-bei?8NYwK6NXwI}7(qx6j4yqtv zAs`Sd01GdO(V`_t!-qzqSi>UWcF{a3)igKgPb-`seD_%X0LO=4US=*1y#n~?fu|>z zM>P{>;(EkRW&)NT8k@q?e+xY0QdaMLFzK5p0mer3u@J;*n#Qs5WMmCQY;<>T`kdRP z+cHN{5BVg;h0r8T%;<*I1wmLDLj}{>KIQAYoAy$_`^yje!C&CVEV8u~LP{K}%|KgL z7~zS7R1>K94T|b&7vX3}vJ0|MF-0`hXAVQ*?9)57{oPekqBMu@P9KYv;vDDcn*%9( zosOvTFB0dLciy@8v110F;bwwg4AO9uQIPFQ^_s`Z=tc6j=2qI3=g*d3Aa8%R-oa|m z=Q2K*|7JrFmNk~K+}lMqJn^rznwSG+`sfM))>B#tG`3`mCCu5XCGISQXvcK+i-rwF zQ`OR}APnUvWU7rNb7!p!bLb(*g+T%%6ofFtNY1&=XyDSlLDcByg~3T&!G)02J{m_U z)kG;Z3Jimg~k-+Su0Q`WNWGl8H60no}~;GKC-~dbQE; z5oQ*6(1Tm(jLS$|?AhV>#lHnll87`N=w!~_v2?DGGf;r&Oypw3u*ecTT;*e9f35J? z5SGhD)4Ux3iJC(RWB9OVQAu z(Jnh(Zm16v@t3u0vo{OVHtQKkU7FG-E|&4+#jF z)YgA)eV?>CasTgdR`who0yIF|fqd%gfEtCm;tP1F>X~>idjBHyx<2#fzjxJv5X3k) z`AVbT3b_bC9$ZcUzGOAa?4voF>Y)$!MwjHUc<5#3+nxL^?OA^EZtycfTFC!tJ&<0^VzuF&NZIgFZA0iOdoRR8(|lxTiRxDQ0C!gNMu-V z;!bak13H{&6&bnc>IwM2K3?t4{3P;!G5YVv5e+5miSglyiKFQm?6V-LA=QPixD`@Z z71gm2D!QbaYwO6O#?l>QvoLFMPIs!X^C*NQg37$L=83OidbA8D{r1r8DNTAE_jf!77xQWl*pc;~21!L+O$HuAg-UBK z!wJ7|w!yVlO^eKg)@thM2YU$X%{`!$PHNhT3d}iPxRli$S-^(gJb;HZAE|^sCV_ge zv+=53Qv1)z_D%h_kO8;F(`*+YM-rk$wQRTd(i&^;P;~WbyIN6gE}2wXkqEw{{pJu= z0x}Zpx0N>g(=GeyB{q5MQ|C{FuJDyJ-_5A^b10>JU1N}>}8x+6tg;wv0^KM6?C z=#hqb)X4L}iSt_&fa_K8dtXNO0P-DZ1iKN+{CjiLchcZ&WjPcHkvY*)kEuvt?@`6E zFBbb|S^T@a8=g4wDw8*^x%!)_62NOuje9jk&J4Ji0`T^-U3bo(i53;sM%VNSta?Pz-*~@n zj==L{iCy_~1P4uyOreSZR#n3kLv8%*Jl=JF4GOX-G;93Hz@TA84p_0ku;X4Qfcb9@ zd(8@X6;mOYSfSq>oR(^e@j{~H+YP@D6VN5?^5e4kPXjqMEUdcwla@k0Cz==^B*Gd0 zrKu)kr)Mq}{$VX;tZ1K<^MyLz#~v*&=|I*^?{NCx!I319{d8ibs+*g_vYZD!rOs-L zO0k$IW(Zl4>Vrt*xffIZ`?T}@^#CLU;hEQmU)L8Im9U5*0UsrycjILkCpv3TOjwNC zY<7Bu_qN=tG}K0KJI8WD5e_@c2oVu(s--0pPAG1}{$GY;=jI~q(Fv0#!7sdUCRjx= zbt)0>el&;mN1c)5n%z5h-2>F0eaQ<4xa**7y`qdcL(^I(MgSrYpqOjpIMXczp{Brf z2c3nD>!ep73tuR1R0N9xnLNFvp9#jyF9YGCU1z=zo-r=|^GE>+zP2t_M9X*+R7EZt z4&Xa!h)|2^q5BtMMK#(5>W*Sc=T@&GgTFq%Rh{iux)z+}#@n02RAY@@QPpyX4f)+a zUO!f{%0UZ6E#$bXzUy)1qSDdBC^~f68Ne0;0D7>ZQGG$2%}UabHlxT$0wX>nSyqRQ zc2uc-80g59uefnRzeSOc#5P}(y!1&+P{Oi9=I$m#T6N^Ut~G7+|7PYvL2GdB zF?V84@BT&}N^dIp7x&lNIT2Fgl2gOU`s|wKPIJ%m|3&m=Jbj>Lag|C1zPnqz?zbVm ztN_w~;QS|`!PMMaM2|Go`%+`w^lsN(S3u+4@;KO^eQHv;fA`dutk6F3^{6+;ar0UL zTCw_A1{w;tpz2&v#FE}#vhw~o(I{ITx4(HBgqo@>l6549UV(d@)mxCWZ?>)#BNQSN zf-jCH23W||=VZvv5EmdSJ-vO>^XjCHuTAeFJc+a}7l{Bu1=795o+VMT0tw%+ZRQtp zu@3tdsk5|w+>fBMg>43zjOZ&dQI0TMHujWjS;bPJ05N8FhpA{X$fRd>d z0K8($%yMLkf|J$QPHIc^evSyd7mWYGIX&b}qwKkeT2? z_^xP;EzXwLKG*y80aYjFV{#{>1V$~I>+#n>xzvQfnWH1<5GdAuvizP%N>Re>i zdNB!su)KM!1+|LOskAoV?XDTl-_Mo+xbboYfWdM5X6CNE*G*=0C|ScOZf3s3Jv+jH zQ?4Gfw#~Q+Hh{%dsCKUz-xrivV^J8Ih#im-mm*Q}0PSh`d|K`?>QAk|#32?kjrLio z9)bOq3V@STt=7uI4O-{ASfhUoCs_5RTTP|lNW|<)d2?~KarSx#LTnUPXOGr2)9#PI zOxJi3CuXU|Rmf0k*+n~dCB3G`(F4mFyoN86kD+3sn5jHgb>k8z_RZsV%{?haU z{Tb1OW6Kf?aZgj(!;pV~&3WtEq3TaC4a#uN^!MWXZrsXlD=KxQp|&OyN$g#xMRp`- zoyQ7hy2PNg)TXcQcCN*vHCJ501R>R#AK5c(+~WZbeIOd%uaZ<6Rci#;w=L(%k0+sc zF4|}|p6kOS^-Fg$qJ1P_GyC>ivr?8xweM_vf9TclSXI>AX5A{{nE$q(Q_oTK+my-H ztUWjgxg9GB75+}L3o`p14_VVHAc4aelwXkv>UuAHKdCw*vhy z|Lrr@?m{4;Kvc>j3+ix|a24q27&j^E9vc9qh!VHZFQSzu zCfsN&3hM~8j9SIE1oyPTEF}GWfP40Hn~uDRMerpMcLQs%VGpYU&W^(h}W2AsN*=1GMOt(u> z_lO|GNaZ+HCX@zSv^5k%QG|YwxZIR!Fc->VWOKoaJR}NDP7yiuhpZ13jqJBOKevvy zh)HCJ(+5>yHFm-D4h~^X2O8HTYd+)DQB3?q4C*8=<%~IL;@ZQjxG2K_~h)LiBW>{cuYMNBe~^ z(mWQdPt-V4Vx-Mh=rZOPmNYOA&(wGbv!!z|K6WJ$;vSNvC~APO*kX63W3bA_Y+E|% zVjK)hXN|uR>Q750)XW{y5wFe(08|Eknw?P#q&u5z9A5((lCL!e>k!Jhg4m0@1fz?d zE1Bhsy#l5c*_uw9sQv%{Q`N*!N5FX<#271=1mogR;Jsa-Tm^kk;T`zS5K>q9J>L`N zU(ekc>e_yl)6sK$U5xv~=ljc{dV8PUI$j`c|5^6A^U}6`ZG@{OYYkoEvPWG9_Br?? zJdAj|HhiU^!1#drdLbjhs5@C^`Fc@ThQZD|>qPvt6!O#Vz^e1id+m?YDjU4X+`i#U z%M=3#Z>xlhR~xUdxj;{w0TVBB{iLRQY!eeVinrv40x+-I*MvEQ`i{=^G&hliFI-Ka zy$xFemAY@D-k0C);18M%aayUtR7mcAL5ec+sgX)oat`KaUyis`lOg5u@zP&*33!%V zvV^nR+L4ODj>fTR_6#yFY`DS!WhH|fRSYTPJ#QIFwWOi zqC7%wv4c4)JdH&^eS2Hze2($LkOqDtTFEy%y{2PXTg5Ui{8?`f+r7*A z*~8hdq24j(IEhDxKh%0kvrvBD*?sYg5vel*J;`8{)4&?t=5g_6bfjo9I^p()T)lLexiJ5M9U6Px#JCCQ^Nm{6 z-nn4wHUA}_6xE6Z>8sz~3)+gfDPehRbU|9Cf6ub&A0Qeer9Nt@#sv~&4zEw{aYmF9|D9-(BiZ* zz)<1qt`Q`R2d+CVFPqir;P+$S)HdNsXcf2M0Nj!fF6kWYP?)5|`TIcsS)%-p4qnx4 zb>rS#x_W!AdtW16pni-IcuM|QwR|`vKtp{rnL0?2{rm3s9?~mzPS($t`|PX}R{>F_ zAc*&Uh8PW2+32ihT&6eyp@DFgcRGNDFd}cD!ew^)2#x=sL$8rCI|Umi@oUh6)K+;2 zsSmvj6#d&kaQj|!QLA^Bh^W{x_mfx+yLB$wdPKx|NY(N7e%ltI`(SZ7KALD4qAJ29 zUV}_h!yc4;`lh^m!t@W!Y>*wyHL5UF0n!7DL0Rf(4rzwOc6hMgy`@E|0N^l~^ z%7T?K2OKHZQ0Kinu6#`Xk+XVdC^JBs-LIOBYk+-5ut0mqoHH||2defo6D9~MhSFn8eA7FP21{&}$@pW&aGX{RV?tF`KvxZyWvftO&>p=IW z@b*U}khNxD)K3o90IB~HTayQqwgw{#=Pj~43OsK2=G=!L(dMEudaPf+O#`Oa6Fq6v zz9S-{)sIb-_An^RE$dFz1LKo$la|9ZDGSe4ekaB|rthA$TvA0IBYTR&1zM)&cj%uwc0)4C^tEnpnNOly0a>C0)hI2t4Gs}p6K+*EWJKsvbqOSqZIL6_Q_Y(~7Q@m~5CSt$RrkhM<*2fn zpNmcDFOonmU>3yM!2iMe1^DHn`}KF{>$NjAjFYO+*d>yGdk6DHAbxINEj(vXFclYv zOQpEv`LDF{y0Lx$xlMBBXOya*tv0nd zshz-QC@}rxdKguNPU1Kw);cv!V@>-2OimaLi$jM?P`E7X z{&fBkMHdt=f>BjOC!e5SLBDJ03P@pWC8!-hD{q%Xq{L`Q6 zC0{+fww6xcz|razS+taD<I9bk-Xc?+rT zxz>1-)=6@zI}h+bGI+%69zFg4kWE*Oz+Ktf0-iBQgIqt+fs62$d-?lXz;pC2M40Z& zzwbTn7UuC9?fQOF)$8SA@7@D?H{@R9&ZU4t9w8G=Lf!%7)^k>%_mP@|A(cw|k!s?Q z>;3NnlW13CkwK+44j5%?5o>_3LaNA%WUbQtT-gNwn!hd9I=AU|(duD^JmdMDN;;kf zaNC+E+uV4y^_O~Vh_OW$eTh#(S$#8;3$M$Btl>P6Mg$*aSQgZ%5L259#EuQXpDt^> z+28r^lMOy_=#S+$#T~`>K~ST7q2CZL}IryAg3bG`IBZUFS(nRc)PS(D9sV;sI^;pA(e$ zB8`GlWkVdPM50e3BDNJFsf{3`&b1P~isbW5UHItYnysp4@0w++HPDl)M}3P~!kbsM zJw=OMbmxPSMp25H*7&07awDI=@6&%6VvIt+mzqP=+z*d7v5ej&E@hU`oelW&~%HSi!I9{}v(xXn7{H^Ehoh%qOZAGqaZ%*cTg$ z&7Y{yLJXQ3lOfZ&-WGbg?OA);yg7u}V^hTX3CPl^G?ln*KwF*{f}+|uGZ}(tRNGaR z9kWYum`XJwzVV#QsH zYjL;Y?(SYF?(XhZ+`TvicL`Fw#oe9at^tCa?ESvyJ2FQ8B>$3;`&sK=YtC!-Py32z zv9y#~T$3&vN|vIuqIlr;%f!00#<>}}ZKa>A6k$vZyE|OSBG>^uVrCAlR&~iOLF~;D%Gn-&Z`%_MH;_+IYKq^ZVG^7YW+M58RFG3;ds@3uJz_z5bHn z^xUQraC-H6TK|4(_hZ0G^cQd{9C|3KH?bZ$!s+yE@G@}L((+lnTZ!%UEH9#xJ8{CG zd<)pFcW7!VDd|lj|F?SncI%?c%5Uke$e2spoRCb}?CWW(eVM(la(P-3m4GIkW@xAh zV5`D~TLtwJ09l@%&#dm-Ce}U7_M=C+dY?ESr6xM8#^1FJ8?s&HI;*;{olBEMac!Xb z@bk#yX0kKY&JOLxI65E+4A!q|f1Ei+8{Ou)$)B8G`h&LidAliu-tM2t`gmU(fonT; zOU)`#M8z~LQPkR!ztkHkrKWE<4cxHONhbIk~d+-tf91tr&5DzAO?Vo}RUaD1{=B+Y#*r+OxliFY&2Fqdamb4T@Z`0zZYke`;!5$h z9Xi=r7Zho<{oy6n0&9hxUT+3W+P!-s+1WG8#_Rbn za&jhHP8t@3n89-ksxIftL73E{7+r^T>%6MG%{re|?ckEsZ}t10{y){}<5lEi^@F}3 zC(>ja)O`E0)4Z$_DDtNs(KGUMh*$6IwZ&~$^*9>-%eX3@V zDYi-)W;PgzzCT^#GjtinGJTY-Q@e~zj=bu=c5V$nkd7PLx~O8{&K`mlIUN46+5W^c zP^Pj%R7+QsV`On}h~*#nOUN&W?7GNS8g8nX>vA`8_qKj{OmwwIRQP8)ufl2FIhB`) zNVxVTWMijVP4qgl8A@kV2F=Bk#41ap zlq`ApTbB#-$!{UaCrdMcxi1;Buu+>Kc#Lp9nnIqc>jth)AZ-|DX;EkelTRt^nmHL9 z3ji82Y3IQMCUafNk`b+V8Qjat-?{2O^R^!QaXw~cKjVBL9!L7j@h6j2!|$vRCFv@C zfag>coJOe;uD2s|Sta&q@1T)#Ql|u86@UdHqBo^=X+4G|U{N%u{rtvI?C+(~=0;~i z-DxpaF^;%li{7oMq*Shzv70Db!^5A)rGtVFzl9f92YC!!{D-z!%%9?laQyo>X~Kn{ z1@czi9oJ_j(7Y6;gs2Q6J9?=YZLD06Q?w*;m+HKvI25Mz|H`w(tKmo?7#)n*R02Q8 z5H(9%aZCKn^~^(5*xRU_3u9^h_6CjIG+r)1WVg74jkdZ3VFAzxTYFB{j+?Our3w7a zJmXrZ+RQB&D7DL3OkLolz(GJ;Q2Op0jgr06^=*h=8Brbwwlv;Hj`CX$sW5cRUT`!d zcbx+?8m4(nAa08?Q3A5`m{DKxy=o~pOI~Up_vb`#mlAG@o|^3Z>)|2<|5Gg#BPweU zdA87RP7qn2S8VtTine`hh*Fecau2VyYzEhTjUH^$2?Now81- zi@F|+%qDW87EVP;Yw+uZFGnAfAJ6qY5U2&>Yku-5kiXczpi&PL;Scy!`VyGD>+FzMi3s$&`#RPlxcT_lgK$!bRv zn9dl;m6Fq&j@8XZu+(8|Nl^tl7=j;kNZqZMSd%<;K`E9N%1Ty<070DXdxn;6#@Z{fAr5H+K ztrn}ky2COv4f7pdtUi^;y-q}QKiBm<$GlEdZu1|rq3GRRS^Ck}I%neISc_8{s^YiW z|6L?j*TLVwb3zmajN#}?TFQn2*+SGOM>XM_sg<;WkL;ms#)~*D9#Vt29#a0e>KF{Z z-E{eUqwygfSWCZd8JUM+P$ZpQCU#6v!sx6|i)jx2z%<5KoF(h3TNp-(AR*#sdK>8X zR$W+4Wh(d*Lwi{={Y7`nKJw{Z+xBZ1&&)iyb$t;a{!pfi{f$avcKH)qzB2^q8$5wp zTDg!>k1Rgq$lfAf$M3u|Qj}w8Rsg{WKNQyXJ$qNw5Y93btrayz-`6=s2Ad=FJjn2x z02vgPITbA`D@8R8hYU{D$mLA{J3mLi1#PvRIA@?)xuU1c>|A0CZsDI!^? zNQ_!&uBx^jZrh~JH5}E9i0H+j(Oo}d(GA8kL#b9Af9a&G=P?@Lyes&g&xWQnP0ta( zOk)JH`yS-t?J#vUP6YUPF7E zMt_`zVGX+We#>ihc-(&o?6AGkYGFF@jp&a8kX+_CO=uWc6We_`^_?!?YjgkBnL#Cq zp1OZ4BN8%t&wO%dhx0AciTNYm+?e=d9$I4!{qkmR5$ii5P{G9YRpVo)@agZz`Nu={_VY#15sb*|K7>|tfm`;A zNjHPa7U8!XB9eIP36UJKQuXUXZ5K1Dj9#V7yuUy$9CGecTyBxQuW01Ls^!Jru)nAM zzqn>y2Q#dwfBDt-9M&W+T1;}3#Hq>p!|{ULOsmR5TkRt3A4V$5D#Gl7KKOr5h6R%()4-Xz zD$`E>CwEa%iD#xDt_)N_5$yu=D~boB1PEc~l#^G-@FZp^P0TezgLTb-h?x+c1DetsDQMb3I@w@psBoQG z+j$DlWw^w>bBmu;BgxIjKPf1givJBBJPv#6H4r>9=g}MY9tIwP-XP;v1;)5CE@`N#65 zy~W*je$70|^?EvtYU=cZ(EWg6!lC?Gu=LLLw=vQm2R?u1%SrAAYz~d-0sJ_GhBX{o zt74hv6d1`kX0gB?R?5SFn;c`QzCr3S$!QXPj!eFUkClnpG@H3st)R^t;&Zf9IlDPh z9t~A5n@b}C22%>aj|{egOrQe|h09m+M7H0_}Dprv>77y_%m3soZ%B+++KDddX>wETD4f70wCW_Ua zltGJgDFc?dXp7_27?MV{jyFuqZt=__jsh}t&9oOzQaPk-{)1))K5x87Lyj^>N%St1S2mV3tVY)XPCW7ave4%m|KqH^_oMKwkm60~ z17frZx>VSfS-eS440_$X z3go@MOx*k^(3u&U4!nOy|5%bSe(ERl=QZvpC$l-&xBG58zRXwf|IFQu&K_>P_mMwv zU%!M!zb{p=7W(Y3YE{Zyu|F0dDWE$g@Lm3l)^Tt?cxL=`O@3qa@kiu_G3cVte_7;t z8tUm{+Z!@_{6pr1&<5klup=opex7W3A(0eAUoS1XpstROcIcWhzG9?kAySc_6Z?m) z@W8@@m!$5Ht6g!t(J``W{U1~L9slAK`_BS?BEz<(`)l09L18qYMVH_?|3__>d+O zz_SifXwqTP{a7a8v&UG+ye|<--`X=f@Z5h@(w)trM#ebRbVAL*K*juS7X5F<9fLvZ zr5D;nH3_#)_E(CtDnNGDXYaD>y0Nh5XESF({w_oI`b?by$zvifE6?Ozhu{9wG3q!Z z=e)4z@XC0xy88Ll_T$6?g3~=1-@8NM?RZSqdDPXG)`1K~7-=p<9ejqvg6U-%g4|_XP)SC$==kr?V#Dy@CM`CDL$SO64RlHcP4+ zSP@MffNDIUv_Y%#L7(iYy6^8`(o+Lr##{(&v#Q;^4?$!b22r-ZXb1ITx_!JMn}5(p z)~}VZjDZ`Rl(+x-vw!2MzO z_8`w5=aWssoUfB>zBbiQEFL0z8_;A4!&4^e31Q%~JnfYUba`5K2__%UGBGntY(9cg57<|px( zC7n4$~kG_{qV&oeIG;zpyNpa*2>I{qR*lt)RT zW2%pbEgNTE@Zy&pDG&6tGZUr~=Qj7KR%Ty0O^1Rj`&9%gmp{p;*B;jHxvzc46xiru zeShiuU|mK3I0!m#4%*#*T2*=fgwa!f)c#82pH=v=lNk6fQ`qz49kd0V0y&!!-rJnh zf}sBvRFUh1BS-AM?@!fMA}>W=eb6txmYjE-B2OeiC)rk8aaJO}9}+?DtLVL;Z#%1r zbuG95>0Nix{cApE?VO%{N8SF<@TK0Z$C&i$N~-62?lL0N^Sf=eG*`fb@B}KsEB41m z-xGe|QxFLKE%jsK((l}>bmrGdW`7G zIN%H$=oD~zJ%TLK*C5z&++`7k*nfEMHx2AqsJ0pC-%UV>4>J)# zkm--6Q9z)xR{oQ3#Pkz}4;#6ZXZfID@I=o}T#oKm-Vn@RjqAb)ZmO7V8E^bz5~q#| z1s57zSMjNx-B7lpX#g3p?SAUH#ZktUu@nVp`6W z5ZpQkHEw6BD8K&G%%nf0)Msw*FvbtP3H^F<@bm;}+SaRv`WwEqBqfRW1$#q@5dnhTCj?2e)UghJ9tAlpgaH&s!Isg)u~H7T zF!5cZT_2(`7R~F*UHo;m^dD&hBh<(cc?Lh)-r}2)WVsq`MCI`ge}{B)K*9yPKe7k8 z{QAbRnfHAbIcR~RosEE=e^sxOCn`)Yd%XfqH@AoI%djA1kcmql0-5xai_3k|I_(^` zjl-?7En=gFop+uX!uy(s^+Pf3T;h&9OKHOqai)yNtUhUAi4KjA4mLtFvQ3f;7t=#G zsrD~Ca~_cOrKtK%&f8#84HN(6l!%osr8xJK=)dw3$#)F@T9J?btH8ss{}jeIu*k;o zf>j@A(;EbYpvEzv{9hAcc&~4fgC5R7z2JA5tvedRWiZ)u)e+QAXW_?FRNzx$Z^_3l z>-)mpDE{_c0y@N6f9CN2IeZ!cavch=*CXwLXT$k^prC!H-aE2)h^qGcd*4MJ>Bo%M zM`PbB1hQQ6aa{ORUicI<1QpJ8LMn=@4xXs+>_8Shp--4mFbW%p4hG2II(wlran}+A z(wI?Fn$xd6I1T=g5Q;N_&FVSqJV=Yoi#Qf%BGr-lUNHLk?#YBy4Q8Xr6no-#sg0r@ zkJ_}qnp)96*~8J0%^emhHtbB%N`5_DKr&XOSfQZ7mM7@cpkO6nT_cLu@y))P@{=OC z$;Za`ZvSjFk#rR~^MwfFdobN%#Z5Kq`vnvwQS^lA!2Q`o?Y)dzr__MinB>>=tKWz# z(?m8)G9#yy08i>=k9WT@eMhU%E}%>SkF$kB48uj?EKcXQk@gLPu_{c+B1zAU__rfd zf{eKPTkJpC-%7Nrw5WEb(7Zrh+iqUpE=is0>dzJzUqkQOZTl6OLiO0`1-VT*ZBJ^d zrji0GO3Os))@JHFX==IF3><}*CfT=N&*i^w+EE}1>Z>ef*f3GTV|K_JgvXQ!6I(V} z_Hf~{gdk`mRbgDTt^ABcQp`@^H#kz6tJl^o`_*)>T8zqtYw^XQ|XZV4(PL9H&vS^lKb&%p}vhoY&1l~fl^Qg(Z zNj`JtLBT?;r~0MiK^y8XfE$Ugu^pnTL%1W$k^?ux^J+&|ebj_wbBxXLkER;mSwpJM zI_uStB_+}L+GlK|AaaXL1-DdXx|n=aWmmS<_A?q^{IzCVT+~Z=Dstp=s6`CKs*pA3 zr5{HNjX_Q^buXR(MJifct=SMO2_Y&PN~Ebj%^o&`f9HOL{`80rtt(oj?8-r^^tNTH zRuHlch*)@d(H6r!>6po@hH18Qc(IL!<+RoJgO?tj1=!Z{!~EhXqE#jdMnW!zleF6Y zS$)=uj3)s~x2@Z`AkzmhGx|$~x7?M)?z{f%B6dq$r_}R8mox%5t@G*FoXGAa)Xj1u zx6TQ$idz_QHWT!@^p5woZEXI>bMEB7lPSD(vatM6^Rn0X(o-#x#4Gf_h9;p!GPI63 z+P7hm`@Z+>k4%xftGAhthl;+t{Ey#X1D}sXUbX{m^)d=yp1*@{`ffg;7Fw6M+vlzI z+p0_ISx;>9h4D^MTPSzeTzUUGt1r++mTny9I1zGyk!)J>vX8hE@jvHB|6+?MeXg;Q zw31(xNcQO$%$#i5Ua|>0K!LlK029Ded>R)e3~?But@-R$y@qwnO$6BUSO+dre%=l3r!(oyVruF1Rm_WG&7eP2JHPQgG!7P7P9eJNI(Oq=X6 z4&F@;B?awrtg7%1>@7XJB05aX;a_~b+4-@RP+0`f$ylBycqk0}gf1-=q5B;vO=42u^PUT@g7H9+vZ#lu zOtzl{GTjq{++<8;Y3jy+6OBL@508%CEuod5_uW9fN3ca-kg6x0zyeY|L``3l-Syd7 z{H|lT)x?&0u~=(CYLAZlT;I<0LVU2U&nQ#Jv62Q6!1YC5JkM^V3JV(darMJiyG+cY z0$L}wuD<(MyMzV?EU-=&Lq@~8KY8lHSV0C73`%lhRHF|@z%6Y;2xFDk1Z7T_Popgd z-Cn+L_4L@cOYk?pMD|Y`ET1UGb9t%o(U`o6Q8b0=I_78(ED&Tx+L17 zin23YwU$)Mc^>(>7qqC_3Ur+F4C%QIyUDS1+Q|5vX;;~_uPi95u~RV}|DuH7pSeI` zv#P}uY^(Qx5oNZeVeZBVphGX$b=jxqVax_80B8)CEnm{Pmqi({3~9!R*5VxPz&43EYI|6f|8VBB*SC@ z1#Buye62@=S7jVQb+IRU6hjveHGVlC&vn!azy2=Ym#!$jvej6-8R#{X?lmll!q4Hh z|F)W0e^hUGV);_lJi#M9Jii=VzK=L<1|9loH$5o4okEZd!)JJ9esRZdNQp=PM+{Q& zlH#06fZ~Py{`cxbqp+uTzD2pTADl~D>lR1PbmKg=`-9g6@F`Xnxf!JLTn0FstXY=IcN~hq zB2u2LX;oV9)F*LWYUrrOw3m5Su{;c7r_EnC(K?WBCcL{ zN=GM?Fsuic``&xA@3SQ`iSLht&D-7`om~u>nOdZ)&x2CvEfQUjG`UZ*s*Har%NmB^ zl)dL6QZs}i*l%B^V9Ifx7QPH4LdTT_P@8I_D2v!?<|?uoK-npiJFbZ7O7c}RHo(_*BXf14#_Scl}C)EY$uuGv)| zST51pTrT580>$Dii;h|B;;_lPp^uitcX$))Yi&f5>txtLp@hgRS`wFN@|?jBimr~i z)Ikl_yfFhbKB6X)Oav6}T>Sa^)$WQJ-AoqsVE|u982Drr_3ZWUv_Ry=?0Glo66vbk zn*r?O#6S7P$B{Rsh{1od)Ceg9k6NoaZ6PxwQesQ_=+YgXx2y4hDK&QoP&hrG=b1m5 zinO2w^kdC*=m7dn{?(ZNx%j?{IN-p$ezcU73mhU552O4f<+x8R)}$FFAOzP0f?qRQ zQ+i%ow5x3t?5D}i23QVvtnr~1M5e5nnK{*7@eve3-1S`==0!1;s%b3eYYPKP2dlog zkH6>YVn(v1y^0?-Gg?$JL*N>BvK~mf_C!K>+iMV}hv#-{3aefERco^&+=kT31W2<$ z4n#|+3cY$F=RIr~rp;;JE$+^G?7BZGx5qzL)+#>15zau{%^hyQ#6tZRce^09M{;;H^DpD{ z`FA^ZmHKh1^KtlbQ}_YX40r*!dTrl?e1BO%7oHD%e*zcypg|ByLS*2TH?kpoZ;622 z`ht%guf8jR%b@dj^hf-__kFULnd(}A@#m{vP{8*3I|fMPwgA-ozV!W{_y77tzIONl zShX_2&(D2t#hm=yIGCi1)qb_(O-v5_2V!6I!bM}1C${+1t(s)>XHuL^5wv8Z2Xbua z7Z=6#>unawd8r8K>RM+-8(>Bg8W|2p2rDZ~6dB8_l1m)N&hLtdY0vRlSWLt*T3eQk z<_Va;{MM*SqE&#QH#G9eKW+J^Bo>;Wn=_h*_p%H&#bOQW?I?#xKMS8ZuaaXh?~hb#p#=0>z~~b0Nh{S z@HZE8!+rS66u?CFBbKgTGd(G9i^VuCgt`6FjzlLgIcj#RDu7_q^+WAKXri_Ue@^e- z!?gI|ff6)wTd>f@5m?S$LV#y>Vk~)ixuQWPvyNFv!0!=P++-bljqsNn-D7?Uih--S zw#Wo&l?GKROB`;ABv=Vu4xJQjNY$04)8adsy?|bOGeZ$_>>vrt2D)xIWpOB~IkGBl z2oQO63p*rOnocvE4hM(@9NAxj>x2C zIpA_alqlNSqI^)eEhYp|NN#9H4!xU4q5ZF$3J#v`IN?S!D5#zS-aJ|daF zZNmyv62XA8S=3!SA2B?7J!8;wvI#BnVLBRsCC-5RNqQQCmVk$MJWy8N@U9Ef?j-}` z0?>NFsJ3=PmmR#MRDzL=JBLh(DXtcdx5gf=>y+329aob2DZTHW^>xgp^AtpQ8R*do zoDRAM7C!IbLr>`RK5h6F`dmJ=L$YLa-uAhT{dx-fj-9^Wk*oXbfP z!P)-?_oO%IavF~D#GZ*x^Z}p&u3bc~HUob{(W;JxmCdSS$~$$%S>ztw%&5XqeQahITHI9Vfu402dgdge(0GS z9-3zN5O+aQI_bFz{z)ye| z|Dsv*pY)+pvS)#vY>^=YnO%~+YhzYz2}cFpVluG}(07^(>S*mDL+n9!x2~ZsW~>+k z*SxuLaC4~_{P*Bh1AW`w$LIOU824 zWhusCh=XQHZ$pIAk+;xmWqV!6EZu)Qv}y^bAfVg9ai z$;UEGVUeR8+MGUPOA9pOI5|7oj1lIEpqJCgTJWsXglG|dVSCi57@YjHAe>SVb_z1+ z;4~K4JfULYBvnA}=qG|UGw`hJFwlu9|08h>qZN+e4JDwVpM)%vsi{^1XVQ9JIiOSq zT(&L#qK;Z#+D84$6J@X)B?>JGjc7u!>r<2^CgN`bh-#mN9*_a=#h5WRnDbRIY#dNk zV856Tf63%h@r@HG3*oPLB2JF0UG;SM*ujYC_RM*RRM|3A3$NbArZG+6IZProH`-2< z(HgFB|1QS1Sl(q(Tvo=W&~azd>aLkqpY16Xl1r@gtgqpJ#j!P|6dyQ7!jEqGcWXw~ zqP0AAADTj0zg#U>g;_d4zUI-lXQ<~0M;&YlzwAg0PbE%2c1U_u)%9R#ao2C_IPGlu zKJv^0W^nWRfBoe(XpjaVlT3v464!GyK1v!eKb#^FS+1NCxgju6h28u+r~a?W#_Up# zMD8Lxgs5{fu+IpGf{k(INZt?oET@EPcfE_I<1#m7vK(vX&!CHK#xAmev`pQqnG9`8e1 zuJ|B#VX`TovMiLS0UOrQbM3EXN)aT+EnEX~x(?}GsOnep`K4%dVx*;3NqDa4NH9B{ zk~Mn8GORRE>BbVVnfhmD3!@x53rO1~=Ve@FHtFiQ2b}+qP}qj^1Q}1Wz1HYey(4WDM%xb1l^mC_|iYaE*)F%K(u`nu?SPiC%JHrA+%-QKoE-)Y^6)AoVEy zD0Ky955TvvnGvH0J@)Sx@S%lRACr4d-X(prW~rGM&elSJDE9!_#C6~KA(xnBSgA}w zNDHZg#DhBDMy+*5QhmXfY)xCmoM+#$IV2T-T0=7|XxIivM(*IUq#eX0$;Ys^7uyWQ zPz>PHIFTKh$2n;t`M?<0UBkm_`Q<^&ie-jTzlT&$T4whpjSE&*lrFoxh=G<`RZ2=q zLr8!X|DxwHFi_X$mfhYSZ2)>#)58%Ao0YZx=bEqnM)Lb%QogMhZTnb%e>6F_*nBtw zETgNeqdn=4&p~(%M~PFIiU;)V6g#Isrb;0Kv-pfvd>PEr39`dT{v|K z5+wZ9sgH4RgqH~V}K4gFPfMvfV3nw zH5O?NrELu&n~B+hazVigWU=+MkS)ZH27c=nPy~-Yc4l4*`yZo|Ir~A5f(10z-~Mmc z^4|!{g<>0PX1E9jlAJZYlgo~R+N3Xe(ldQ!Y^DFwMX`Wkqa!L&KK1JkC7!oSFX4_a zMz5Z!j~gD2(iZA;bPVEG-JR+Z?ak&e!~~P=NY4YTx&-MJ+VYqUep?#_Aw=@zHUP}S zfYifKW~;2gfpH6;Cl1P;gzYaP;OhNB4(9QeUx7qpEAd8|j1%ZOLtURANiG2rc2-?n zExfp#V(JpNL$=_Sf?>yJNxq%NCiQmqMp8m?c|ONyUl&K^1;X-U_M)ZydVc7tV$|E# zw;HA{cxviypRFGOK<+*+NzEio%O8;!+B{aSfd$i3Z6)PmwI^HkhZl?8`A0rEkc$T-?=#)V~!Ne3_@I4qbUP1L)YQ)BT0^OD6E zcX0gTXQha&DQ^dnxQEhW8lXrOOKNzbA)lpfKA#0= z`h@=>A8CwLF{<5|)^1TJZZ)QP~ zOh4~^xWnvZ{=sv(A3*UJl=6~e-X%8XvK%j+qaR?Z4JCHkEB*_%t|cwK0wRCfzom|o z$-<>M#QDXG6mQ)z|H^Z9b)s4}x$yojDPu3|w{i{^ZHvy_R8MUF&-hCtf9LXS8MyVa zk=Wh*@wzwtwvzZhfqdor;kNz22$3+c2Azn!_NsjR_v7y;>n&c-ltjIUz#t2!<+Ihq zt&bVtdSYK6B2@d<(|Ewq@_6gV3vQ|cdKZ-3W)yc%vFO>#9O0+pDQ&-U7ICArVw^E` zW`2VmpBk%4k)?>cQ>!wj5$kYRk4TnMiBPsWn5OWl4dRT!z^QS?v{3zJ=~by@&Bmfa zKRVM9;`Z()%CxN=B~ivwjEG7Tf6GWNf%$qT1 z_Y8a1${u9u4UN}9%dRGiclaDTxxVx{61g8{`}GW{L$U>x9Mqia&$q)G8{&94}a@iyCtJfTKIC9{npe( z%jXv7F);2+f(ixPxj8m~%Ij(^$AVuZTlTRI3g{0vOa(1(dGe-)kIJ#`7Cv7YD8J+Z zyceBIIGk*wMro!P+J1$R@`XQK6J_=htPnA^Mv2!T zY1>;s4!hdb+!=?TbpTtliQJ|R8Oe@Z8FheqoUM|9xSUaV4%!=*+!vq$Up%5LCTyd1 z!Mso6a0I3+8$q zePk3E%(zTv+Xznj|N0j+yP6qYodpu@4sdg}Qc~TF*;upUelNSDIryr1 zsOjL}mD)d1g`BJ?>Q=&ai4wcGJK(A%*YH=Og_;mMWY-)VB=LFsYVt;CC)E-9Ne|kf zX)kdT%a}(bQ0Oi$=u6pwBCxO(WO3k2#E}~Zj54^ZGvtv{e*f;HdQBTZ{91Q(;p*L` z)>BL6hdNRV!Pm70TP(87g#s2XF>ooN+Y;`M&*zyz_R?4Ii6)}2E5Dg;bl0a+JZ~&623k>q}r@+08RO4pH;S6>zDfq|$1*`Gx_>l~S94 zcuoL^vz`%M?L>}n2m%Q^ZfIYt+CRd7^Qt7867$OxTS9JYDzuAs=ZUip8buTu+`L5j zw!_qKgjwCq7@yIxe9yp?psfz<=x|XG1+Xorfz!_f-xL$m%cwTt;+buPi$!ByC0?@_ z08kaIGMgtU;5Lcc=O6CaqKahZ$g|sKTkiwZy3}xI17O^r82< zkx260ch@TLzGC}v1JrkB6-eBUu&&d4G8rdws|;26bYc}m+z#ng-e^{jy!>~fwjnw| ze~?=}TH73KJ*i=UpM6FLSYo_TDP640rei_DuuZ@XvV7O^kE5u|U z^BCPrqM>e`6DJNcZtkXfFJ7t;w{a<%6uxdZz(oX})IxT2>CApqc3I;7FzC0i?&Bv*a9xy162OxX<4 zgAGyc3q@!kBvqq9AYRXMf);@z|Ciyes_o-8_{@w%i=kQ%Eq}+17cCbX`Og66>*Rno zzJ(-b9+t*6ZJN}uuWO?N?|8n0&x?)U%SoI_$}QO>e(t1Y^D0greqO6xOH8w0Zx8>v zp;2Dhs0sw?W!tw-;wjJ%g|?`HM|LF(%g~H46rISW0?!zq%0zGG#DHjcD?LgX3oEtu27n7z`+d1iI30-vjud;qkd7f z=-`U^6!)h%+60^P{(v-slBaT#NFa*ZeR+?v6NQA-P85ul$i(Dv(QL$ZnnT6h@Dmru zwn&)*2{$IK_%k$fiu~z*Ki!dnt=~IaQ#$a?Z^7`RXI7w00?9ZUo5(bqA_i`O8#HTo(b3h~q^!s1E&f*otMgSPy ze_P=D>sb))Q(f-z){E8lWAn5yc;EX!l`i=zXnC5L{gCzJskyzMVe8?Y%;yZ!FE)$Z zK||ggy}zQr^0q@=t@j<&vc5m`y&y4wQX#pI;NF9arv-eG0 z&X-IJgSHai_8{f+su_~};q^M(9@Mz;#9Fd-6G9dUdi(xLFZf}YNbU_OxgW31Wd2uf z-jCBCJIGglZ>~H@^@zl#gGUaBhUb%RY6PeS%p-d6cwH77P zS~L^hDUu(hb#Uiw@*&WFW2L~<=La2rH4Izs-B+l7HfPl(EQ_|R#pM|iy=bKR>m($- zrN{NPxgW-a5l9phPL?6cEQvsVDMm1i?0JHu-mX<*ysFAJ^C^+2|^UOxJ4JFE!kP*d)R3XP z9mG2OXSMh}Q%M>c2t`;3B|rydsIEj_vU%haB1Nf-62{C5PQ5IS8Lt`I%)yG4Bk#|; z-?@J5Va5H67B$S!(Vnqq$7xjUL|M4Jj>e1`j`S?EU!rH%Fkd>fTpT(Di!^<$reOB$ z^{Q-@Ji7*rw73;4Jw4k5UE2NUb1xj61U}3HZ@wD3PSKZ*a|yQ<(~ION>^ph2$efO&#dq@ouz6&#@<^;w)0RvQ zJ~(z5U$x%-GZXj-@>-oqJr0)_cxOEf&8D=(g0#m!A2_)*nFWyp8w&$Ps}{jY@i?b}He9%Fpx$DhB)neR}mE=jj?XYj6?rX9jA1 z0@|z+&XI-aHbEKn7Ey(>282?`FOQfy2P%}G8V4Lqfm8UyNUHuHmXgSZGpIJ`@oNFN z8R|NwF!0gJ`1p6zVw?y_Cy3B`=n51tz8Vm>G0{Epi+1@q0b!Fap1K zWIt%xtLJXG5Zw5^_ie85{Z8a&Z~C#|xE@gOw&hiS{P4dbC84XQox5q6j*sL*-^-^x zvVhM8;1$-bk884k(X)_4*6M=i{*14QiG5eu=~9=zTj0J2w4LYer&=&%>m^edaLN5= z{r|6v`i|aV=TX{Vqah_(LX{Xv8%!QbPRT?Lt>rS)>X#eMtUIU{8yrX~B&;=X=tvst zOYEr?TdlK%^fh&uoD@qfPvA&vv6|8i)jL8boH2GSEk2CBx!mzZ0g=Y3$sqBXm0YWo zoI!VZ5cb>OU>8OZ%l*_hmbSDTdyzb5I=JD{ICsl7t##{vnut3(M{5 z>B=Tm3|vxHsZ1v4=Z+SDxqjcIkz=`f*k91t>;QghSOyewa!&Tt&*cocJSS+1`5Snc z5o^p1pM}0~ddSjaEa1ihIsjjjurN)TBdk9$@>@|;B4|xlm**_BD1(aVj4orTJR+A6 z>4Pi3WY09&Bbd4ibUS4OX1s;<|$J=AvaqL@@ zd29AVNAVlhD?xMJDlLXr3Cb`Vq5+J-d5u&FU={W{lk)o|dovc9SA zSM|!0tDa@r?9i|=PDmz?iDf>j-BPX=p5l0R%$2AEI0S##o^St%vRJ&F;!zr0$o^O3 zK{C)^(+YgoziIJh@0?V~G4T2wJ{Vd@cIZ6QQdwD<1?-H~5MR)g6oYZl{?_7eA}S|E zC04a-HM^f(lYkc%ldb#PsD!i9-Q<*nX5qa2^3-uMsAHJPuWjX?$xhkyu8UGyjO$pJ zU9)uQS;Q`5A$#|4d5)(;lFCGy>Ec^x_p!*YHg*ZNENlsAfd08^tru^!Y=cHi9m<&= zaCP2?aP3=O&0IzX6g5^uS-fGoES98d_JDpuU9@-HC=qCm=0@TSxi0!t(HcHSc7u9pK@flHMiX zT@BXW2Vn05uIRJD_Tv(M&;eu6U^_JA!v}T{ z&Nt20@?(hTUa$aimn3t%y7`Z$&g?HT31;{@Q-msYP-b zysa4D0B+n#TAE(AYOS2!rL0UU+r*H;q5RliHWYfATr=oTx_PjD%U~ zkTbeEWepSz=HuBaq-p_pnCYcInpaR5DeXK}uF~yQ`^6`9Iurg@sj~VW0N%~Kx4!mz@R(M6$weXh8h>xLZf@BUQog{{e)3P5xg7J= zf9}2MPQsa2-7~z7&yj{x_Ur~wu$`5ct(<-uEC2QdhxYDGCC6k5Z5x&t&=@$JNxK=n z2iQ(|*pL*hDLX=dvJ4U>571r!kxtSBWB2V1z-Qy~O4{-ni2-4d9oLKA^=X1o$Wy$!*8+&7iz;+hs<{jjo3gn}?bQ=xPXr%&H8%=4fSK+!HsZlH60^pIi|Ggcf1wN`|f+mdD+cuLI8EBd&QI#m=AHhSNi-> z^V)NHlzw#gf0RWJQN)*l7annQJyQ2|eXrFbpa7AZU9ueNsDt%8&B5z1JPs4rh8X_-MS3#G9BG(7M?v4UasYG5Ib3G5N zM6N@&pLRYwsdcqS8}DRa`AiE4KfT`d+&n!eczwKr0zdb*DIeCN8zdDAUNK79- z2i;R`-|dRLB!_gVI01a=IB*TYYl@6{pA5vg%tIz1 zC=p7;*qL;DOgK$bN=a9g5OTUwNe?S#HOyI~ic-GASenxRi>beiit7E|$8kVFy1To( z8)>Awhi2%Zgprbxk`j>^8tLvX3CS6{VL)2xkggxE_vgFT|9_sHwaz-v_I>TW? z*_fK4Wy>{X=pIA=x@{eKD97IF$zl(G&TZQjJlz+dWDON3t!5sZn|8naI(<2 z){=PfJ$Mz?9SF`1nq9tXO~?xLKL4CF7}MJ-XlH@VF)h67f&j!gjm_=o;dC6HW~&S6G`&_UE(P zIZ-1LUKCaQC>i@Es(wJJq*Md*Ft*ds_)eflCoZ%i4oyCp*bfe4LfutTxqlBq)`|Ma zlwQoOVlbg}jeUs6|6LROC6Q|ciC9-b1S=-0gM(jTDNx>k?sJ)E)>f6{&X2OR7(9Gt zuBD@11`MexICj4?ZQ&R~)2=JeKwzwl5Go{df0JxsqUY3!#1D4{8(DXyyL2 zhl0TS2%Y@2)lTbw(oTyga~`W5gedX&`pMtc=HT^)iu+yKmwJ!8v)3h33-7Vv)#KaV z2kG15b)ESC`pSI-shjni;M1q;m8Ybx{cg_8u9tpr(Czb+g3iQjY*ZJhMgz)gFx)Ur|C@|*RoaHq3(M_K~r^yuDxYT>6uXR62~<|`EF|24ybXx!e7WD0d%I~QHmGS>n$7{p zkqpCBeKk_mt;5>5zWe7al8kuUX-5vx6+|C@Fk z0w;=(xv7@aQ=h`SFQY{B5;jC|90UBWU+hjj?A*s|4*5Kx;)`a1c}amA!B)TS@!lKr z$HNJd2TPa-RWofADK+Ve{*LS-^Zd;5i{PF`HRtbeQxPHjnPbBJ%Z&lYJl3Ik3Lf>f zA&iI6E5*;e8n<#8J-f;9crf1qv+0)Uo8hmDfV`V^pNaLrYH`OG6W6>zE5le?0_wOe z$dyjp{+iD<-0`&g+SD#Ve25Lcusvjl?RW6!585H>3xUJ3_YB)TiS6m^j9ux4162+V zX4#MLfOhcPo7+dV_QoJrQMW|PosV&tj~Uh>2W*43#?X(X{04x8GLq6UH* z70Ysyd&OXR<-=EY!~&joXtw`I0u+IX_{g@bEVe9uU+dpaJIuDtB$f-L(}9g5_{s5_ zimDC!INt0uf)O+#D6=Y}_-75?@^dOsuI1RSe;(3cNdN9A@-6k?0$VpUnUXMN5flP4 zTXrUnN=pg4>wx>3V-G~~^&$L_aDp{ogKzFWmvTDwCmbsto6Peh{gzW?%Smt+>@=i> z2)9wv%bBa7`iJeV%p-9q3$8KW-1Sgs47Md;@~^nwIwpj6#`tlZBg}|rW~e#+F}%%3u#yk9!~4Dgby%5ue-yLr`pO25<~8*5Zb%#knH>I z-bat#V(w|-V43HoQk>Z?1?mHxXo;WjTHNLy`dh~r=&n`wdzq;L?cghf0^Y|RT&bs& zz`TK3*nagsoMQKUJnc_!gHg*vhlXd0gp6|f8!y417#mKqjUWi zCG+~L^Pd0J5+3)Q*9ILs(gZvLJD-JrpMa%Xq-9^Mo>?cKB74tBGpA~`3Jnd3d!Jex zzd$r)4390me7=(ZwibwLWiqsz`N_iom1&3aun0eUPhNRD>6z)JyJtDreDHuJ{D`dZ zsS1P+QmE6jvoYon%knO4g~`E?zu2F^@5?WdI{muDV+``KT$$u$vKbV2!r z0_})_h(Ry5=OUAKx2uhv|=%H=( z5fz$ej}&@@z9NjG%0N$MyUGkw`@w3&nYG_!YZGXMY!Tp{6sS77!9XDJIp~B(B-{|r z*~bB@*;HI_a{zO&6ruO|RpiD>=Fl)wB9aW1HEnhc;5N$-n#^b<>o0=1@R zf)vXApv0%=3%q7|bocKEo+$I>8uRnK*@Zy1AtELIjyx?J^6|icw(6*_ln+((y-niy zDNd=QM>84UipliV#+k;M=$+8+{7ki14I1!M9e%zq6;1#6Pj#U({;J*2{~!vVm5}@3 z#63f+m_qw9@xH3NBD3O;ZLy8}`H23$^(5$*a763izCGqOb5`uNMZk1!m)J&STbdjq zp!i=4)ZEMs+g>>_B%4$M@jLKM~0HIz}r5>rAXazdGvEDn7IH?OhsR=y(@H=4M%0i9j z%zh8SKyQ;-Qm{V5CzT+J{aDDo3wvau+~Wu|6`bqN_r5p*KSI*`n3Y{9el%<14Wt`- zgKTR6G97_jjzO2;OJB0*7wrjj%0dhaPz}rG`4zDTIj)UH6p?^r;`kP3L%awLg9}Y< z2g3VMIlc+4X2P&{6!F!OL%J{}1_q~4x%rW~0_JSvsg0cpMJU#!?{eI`Cac5WV2hiKU=eOW^f!jsz>akJUb?P?WIS&d5^-?G;VL;#1REQp30zla-ZqIFmY^fFhJ zVRvGO%HHfhTcC6lf6u-Y(j4G>tj@b5=dnFWNvb|?BZyX9nNeRwj!!5<#Hkrr$2TA3tO(%VNcDmE)Jzb$p)~>jDM;TGbR$=DM#J>%y->%tSUM4 z&JPicZj=g2M1w~!5Dji=_PBb!jmbfwXYiv*i8P5RG%}|E>)>%DbH(z$p^a=ynZhTG zOtyV8_Oyxob@rPmmeC9Oc$3F!2G?g^JS&B>;AlTS%63Z4$q>9N(MW5d9fmZPPdzQ< z_=sBfu^H5Z@WJp$1*{kq)!Wsy69?Q%esW8_ z>|8x#U8z6>O!Nx(GyA3QBAv+ZzbhH4XonyUmE8|SI~MvfOkf`w*)Fe6XTFfo$3%B% z`hdh%b8N5=C+WHh+VlB$@#N8(EHuV{)f{%zj2r7oX~BGhR@Oh##kS+wlY3Urs-%7V z06X;UySEtNi{x9jom+Sn(gomg=#*OATO=N4CjYT5Z)m8yUg~UgY&?=kJ{p-=PPgB$ zGOFiE&lQv0h(OC&?yy$5^c|->i9p6jujo!BKKbH72rpl3_olHk4`AzITQ^awcc1Bl zBgE|)n34W;o&!vYkEkrK+-Z8#{O#%y{p*#=}6YK2yi5fAU^`F zGeni0rN$w9!@wP!~coF9Vb^Nt@*dEsuMal;{b)V2D5;=S3{YvGMLT>l_?W zIPZGp*57&0Mrv^#D`;-cYlm-Z6K9Zi_2Z^#v|yJhBHXJpYBiG)YOSc(`7UN8I}YY13rSv3 z7?GpbROijLF27PoAcqxTTTuA}M@-`nWpsoSJ@)0-KD)FuVnyz2?2#W5=r(uM3_Odb z`WeR|u@xhr(L0qt$0RIPo3x5^(g6LVCFTlnd_y~<70#~aDg75cvdx|}5y6JN2i~Gt zUxtbRDSc7s-?C7?k^9>{VkE8XuV^gl{;g_{1zz(D-z>`WDP$FyF+Wwbq=Y$HjzZIP z(HRQeq=+~ozi3lf44TBl$TA@B(#6%;+O%=pXS7w$bRd;36GHn$hFkGUpMQfa8#FDn zCXeP<+q~zsYId(u-@1+xUo&;go>PC(H;LcyIzC`IgYk4ZOec7|vtcGVLbT#KNGi|7 zXAvYKRT}x|>@l|bp+~XR%iUkq9YQ6Ml^a|r--sIj5+ax5|LW1+VA2wK!bYm+AUG5J z4o8e~(wW{qKX{J|7+vwDceIkdu06s+^ZltA&xkV6jq+^B#-7JAUo8P5$|Lh2tUJGF z6y-Q17)aJ0-4Lj}NH0tk6GK%)Iw{H5IK1@W4C^kG>EvAGjQ9ycm4?JhYh~wS+elEx@8oq(*FjVJ7emB{#V!+jBgROkw z(=|`EEv%tBo&3wRUS`6UHE)PfC^su+KI~k|VD06HT&ir>+piJH?}kQKSOrP>@+WHGjIj|jBj!l6W#^5V2{@ExC}!PcKH$n zpl%wWkrKz4Ji={d&9AL3IYhijNCJn$%wA_k9>tCL@QYXZUJJ~#wGSXFhe;m!W?H<7 z?rT&Y2d3F&SVa%MJ<#$C;_kmWORsE;*~&%1@d(40P`h}3mbJfsv|?83W#}P`A3X3+ zYG%^Mw&E!HJJNkkl{wj*%sTZI_HzveRO$6Saggv8^EP=pzv?4XDt^U^lfc&3IFKK* ztRr+Ag~FgMmMz4Y-^jl}8#PL8zuo8#1d5Fk|DGR)D)*#cW~OBBTL@_4@-2KWKq4YT zP6y;59>wZGZE^+2)dG)C)()_`5~qE`N)OPE`3i$6f$qRwPv1{(7Em~F=#lUT!pjXv zG8Ctmqzdy@1&M0?j1cf*+5#xr3xxwk+i)&w4vi}3S8JBQx$%d-X0_>@y$u)J74T+| z1HevkvXj;FH8{!idi5t}8u8Wm$+V0N#YkBOp(#B!oC&+0lwlSkZVwX*`@JLI$;6Ru ztlpEA2r8vi{?xOov1>o(048~rElbSepRO+yS^%W*w=@a7849Tk9h_8RF-46m1l{Rz zIWPl?;ta)e9|W|#d!{Wn@|-s)93a+uZ%pCgyA*Wxz}J24;m}1rf$Om!YwFWX{Mh&6 z<Mp8q=KMh>Kg>=->fvWRFkZyAy+_Pe{NnB~)VNBf%$XHl3H)%)3;;C0C59*^> zl`3*RT6H7^s5#eyc~FG~n9YG7+H*GCzv@zC#PSrV9t)wD*hWH@#m9wynZ|)o-D}`# zO8$C_whpEX@HWt*jX|8mTY=<>2>MIV4nTSl(}Z|96JomGvo89XQ6vwEfv{;(_&vFT zoo&JJ)b_HXf5lM~1ch|jb>e-PUb0^(N$>HsYg`R|-q28V)LbgCcyWmty;4Z*Px{>(7co)-rRMKcYK8iyOq1 zm^Mdk@Eg^;V9ieL-CJZ{DFtxFkH!NMH@df!F>+e@2OV=C#eZb_sMF-TMSh@LjzQiV z>0+E@!!Rtn9JE1mJ|N+UQyecoZDCgCM5NlpU|<#TB2+1pj&{l!{b0jthsvi0!zuY; z0MxBE5e#&<8rwQP^L3mj?X4^erDDD_=* zU9R^Au-qj*%cLqr@%*M;v0a#s+;I0kp!;R%o~NZAq+buC2U4>j9=X&A4U1Xbch2W7 zlT#&(_}9KvtCL2Sq0}RrR0UW^6L7wFC_aeJ%}D@^kR~Uk!xMJT1_gKmO<6FqBU^<% z{8rPCZC$Xq*9k5f)Kv}*#WC*Gq|9s758l2j4M<^H@f5=pRvs2zI99XjoJ6OG1ycOR zXZ}uL5U9a^6z&EQ{T%yyi$x140&!IF!y2TFO`XsF?AwBGdjqoM$2T?4(R>kHY1bMe`aT9m%d% zti?-*D9dEsy5VG1N6jlDH>Ac76ED|0gi_w?4%18WT=bK!hq4hjRb#Gfm7OcbX9N)BKUF{#W z=eI%XDQ>y@`ratJ{O`gsQrA-AKrkKmWRjVIh^Va2=N=kA;5X4(7b zXYF3(ptF>hfshMJ;2!VO#xoo@Xp0mvXv6C6QRUC+%tP*dYF^>ZwAH8KmpzZi0P$(j zn$@%m{nv@cjHiMppZsj0a8G|%aN_}Z^-p{4p0M|E+v@iDG=$bHpZ57^GWeeQWjBTP z)ANOvWy6>3kg&X854ru-ta(8MA2-}6+c!Y-VgP}pAUKI-D{k$>{4*r)Y5Au6G?;Yt zg&J3|n>K{jlRfGzA#c|wx_sibOMC^m-zTje<@ZvJ{gYj1oU)hw)e@=a%UDq(0E6y6 zKsvhAoMDI#l3tEqw7kzGBlASRox__S)l2tjljL8#AK4t&F$VG}Dn_jb=*M`2yV#(jwwvI}!;IADdzFTj?AjP8%$pijI*RHJK zEAYE~g@xHHofR4w+X636pWi+`JT2geE#t|UTtm>m+Rc}yD_v0}=NJnNqkzb~{aQ!A zu+2-N1U zGw%^}i4*XaUOGhhXBxJ|^+;NBd(Gw1fK6)DkNiL)F0&>evD~OVEvfGyvQ^(6&woB5 z&bI1D1x{=oZOC86CBfo4L8GfRLoC~q^^aE*j z*Qj&Gxs-^0OSnA$JEsSUHp#%t5)m7BIjaFV%6ai`9Jb-@qW0o{F>?H9lIF}%Jd&Pr>{;n4UHicdrgb&TGqKu-Y-fv#KWjoSjfQ+KF1g6wF=5*FL-^k~ocf?9)zmP} zREeX|0v-SCigCEMq{p4hi@sF^33fd4AWqFe-w>@gSj zr(6PiFooIT=U{n4=B9 z2ku-4?xBf3x&U?`CF@lcrUqf!iJ$J##dhl6=~D3F2NH+ z!9d(P+1neMnDY(=yq$EZsQH2}!?h!dI<(K~@pR`+!V)x#T{% ztas7@lh9CUk{litH!_@tFW;9{9Wp>Qqj*oSr4obN*()h86!Y$Py8A?`<|RK$at*@+ zT34|L&JLOaxw9%V|0e&fcSfTh^5oui1(57Tj%;@mPb?;$SV;Cf9EkMD400 zwFgTLJwxxTI_`f<*7Q)w$I$=itoX|jhj#w6c(CNIscx4%(Z%aKu+j)m@MkDqN}w?z zgsMNH1c;LEFk)k1sLyBt_%n|&njtXkme4GyTyp`X$L{=O44H|oLHTfHmY_VnA8%z< z-&#*whc#z7efRm8XZJp+RH0T=bfZ6sQ-0DbHT~EJc4&1%gZa&f)jngP2L)I%{bS-D z+7Yctr(AO6Rps7;POo`rS`X`ROl2=z_d!De6>MtR@u5WU^SjA)Sl3oW_wg^dYR7(G z6;L}7DxK|UL@qAxaO~7GsEAcRLOT;mGQFzHAuV8nHXu%-tv|xzZQM>g9YyxqA>{E~ z)rT4QuSq9!#wlKwGWw+z?yPn{5GrYh?svsp19T%MV<5!HQCXDGL6*@g8oi8!qG}y+ z6!WH=%x}hrE?))9=6Fahv3?hZoCLm{;J&~`gX)9Mf?qCqpC7I6h7r!JUZ9gNv^_5y z_Y>NWTf9hZSB-ghRPSD1m-9Y{DW^fC>sNgn(Rt5d8*D32EW3y6_vgL;q;zJVo(Cm2 zBKKvVW_?*5RiFPoY(&4}>_TPj zoyceZa%|iE&S%H6|0A`}r&UM8+d)Zj(Fl00P?Df=B|KhkwbQO^+B8zt$`uzpwEfev zjGr?8Cq;8#>IePY}vI7TTjW9LD6E9M<2wm=>iukbBf*XM_KP)4*Cr{R1t!>K~?>S}M2{xurCD6Ry=cqtr))?$h1O z{YoIcm!!csTtvQZ$JOGZ%U|5}T9o(g*Q{l$+ zQ_I2^jDy=8JKd#M8~DQd#x#=jWNs~qGxESp`eXbt0hNQ;63qgjyG`wB3kTSD2K zrQ;3Sii%cp%F!lI>eF?q<|svlT%Absr==8#j(!j%sM&%t`(`A zzk59+2Y0stGHL_Og_4U&r_V_rE|nzZ*+=dsK&ivq`llXAkJPiytX6+Jc!~{Tluh4W z{G?as&s^~(Yaz+xS!@{{HiSFwen&_0{_%$f2#~%kJMY>v-p?1Wh%M*X&kA-vsvPbc zKroCZ5O~n>aT*3S9!_Lkdj6G{;TIK%Q+}_o+EY_BIEJv;ayCYD+Hq{^V!Ec1qUeYg zhOPw@f=ln!aa}H@d;PXqsI}dMVYj{eq7F}#7`j{Wi-rgiimQ!Kh-k`M)C@v`xxZsx z(40s#^Q02EVfYLqGSKrajVzH?4Ie=#JOw7_Bl5qpdAY|@Zv(Ni0(kCirg4KiX;C@C zJ}<>4Ann~c7LLl>d2O;UL7UP;%N-)j`LNq#`LZ_~7De_&#JV`&tGNs-iVO_|Y5zt7 zr5R~xd9nzaVLjQJG#@HjEN4Kn={&s|8Cg@S)`Vu%`lcjEi$44~w&Vr|mH?KU)HrqC z#GaK}K1PHbdUWrn(B3A6+*96f-Kpd~I|p67(caDq^E)@Z@ZAtfx;ccO?8`jO-tN4m zT^aRg62A43eeBl$bU*pLR&9QoXS!0`5UH?n{=d#S7;^v~95ogA>b4%T-z{spd886@ z!(4Sg6n#5gn)iJ7zpK6-TK|LnkPFPyC$P-FnIxH~H-Zhp@BxJ<<=-_cSb`u+(=PA* zqm37Z4MEM>z~|jo9EJHs_V#m>FYGLxrqLw7v7ZRCO&xnJQ8XKePa<>P(^FPf`aC2U z2wN1qx0?^|=Zalqk*;MiBo}9NEEc#Dxym3JdBbH)nW5Se%GzolFwJbgqR2^$uVzc!D1|LE=0ZlAnGQLo4S62{S)OjtCEo!p5zPo%XU0E`2nAA#irQzU1VGG>zA89_MEs^KH(Vz?A>0ncr1$1Zu;=Q1=hLDH z7usDP#qloOz#P7^igY0LQMGB6ues0P+tkCzBD=NZ;G$UM%` zFT4A+{PkuzH*DF|WKmt(+Xu`G{AHFt_=i5Ot(~wl-QJvqR8&B#$>cO%D_fcoueTPcq|cV#|MY3G6SP!VtY5sH8w)+{$Jg7jp2O= zg73Yx944Z#q@nl=P-GL!UyvZMfv(P>bs_Olj zX1BAMMlRSITvgN5b@q+V-}j@j2|sh&;pTHn?to!)gssR-cuZDH_ELsT_5Le;LzlEz z9>BqXM@lThz`}DTh07uGexh+R*nO=!(avGjebsf3PY40UY>jGf$Ce+eZasF?Wi{lT zUT{*Z*KID6D(YWGDo2bPvRV6S%i~oEa(#S?{QP&9H%yka&?mhhvw$IvMD^>LQ;PB2Toei$8c=~_C?m1xn+Wz&@rT;AloN8tGk-%}-n`a4o{kcg04yw-o!kg)XjUTJ58Bwhy?BL+%4N-5JI)ru;#%j)4eQ zc&=%0kN}O2AR1w>W@o5`^m97DU`n$0ns|A6CP|Eykf>23TWI`k!>e<3r7i5fL*nU5 z+-nJb+mLXfptLkQeB}F}m{AW(xT;r&bOhmZ?HsW*4$biN0T3ERvPOBZnkd$M^Pap9 zFmFImPlh+_$)VZsUww*LCxyOo=O5wJ)OXvu>oi5D`WvMTfV3X@s)Tbh=kX@yNe;&q zV($zid`iuIrnJCz_FcIohoL#YYfBUVX-(Q1*fY z6C`oV(_->!LZW%^y9`Bw#(YFjxqrDNy^W_e+OgnAZK1rT=VwpeKumjj3W%lixTsLP zkO8qDd+>G7w+DJ&{rRy>U82t`K?q^7q=v$VsW2woaAZe{%;%b0VQ+tWbm3Fbis;MKt3A+Lc74;*>BizrQV>`D1Y3<|N7=P4U-S!%x zrOmMt-;|Fis(=%Nsr0;`zPkgGF2lXEPZJu?&F2Rw>r>i0!w@_?(>Kq$H^Pig-!P7y zIY*UudmA`c@%k6Ed`m6H@_F`WNL+Hn(XZju^gO3qfl&Z6jZrp*+T-1Yzpm|hQ8$sQ zd-@3~Bb=3MKheH!xYA|M{PCW0UT#8O6;mpWhV!q5miH3;GGO%(9r7L0`!D1U{Low~+$=W;r^mO&OakuJfLA7q~Xnr|eD`eX(? zpFSQ9%RUEGR;Zuo=RF*lf84H>xf$4aDBbWnoNevtmG*LeNPj+ve);!s=<0d+I`VG5 zS&{y4$y^rl>ax)-d;56Pee0O}oXq?Ce=otor|olBSO%YNd!HEdf}Za}u3phSIWOet zwQlb#GmJuaPPAn{UCG`Tz9>(;IzeEz9gZ$_Qv$7-g4_vqId%zoy%k zULDYmuY&@;dnhrc#iyxzFTFS8Q-?V_J+Vy52xC}>6n{ZAH26@ce`+x7qM7t?1`KP^gk z1nxf1^G0tUFE6v;E^jR)eaynxZa#U`YTI5U0ko=abBtCDDV|E0nCV<1rG3Q*CU98Ee2xiQ$JBK4rt6Arw}&AEAbXB-8-ui z)0I7M5h*|x)?Me87AX)HCxlY%fpQ+^{ju}E5{csJ zHq@~N9|MibW^j;EQ3luVZIu8JgYbD~tk5u%R@$$F9TL|tabtRg)Zx}~N(CzRCam?a zhj1mkQ|`Xbl~n{Q0t^VASF*KXoH|k={qY`9iUmUQ z0eb=80mTt@*H@7VnEqBVvyj2|ER+Lhef?PUqVdJa-`w_`KJ;`etZzKyzKSiSDgPqA zj=mwgv&T5Ixp#B4f%~PQewUwKIcfJ49gDS{J!=0ec*~(OpC6OEPI>CGy*%gp|Ld8b z&$7CoG%X+YCWBMCyPl1$93JulFS~}PR7;$&#A}j0UDY|4CxR5HdYnUZ* zX3(}=tf*wwFIDY~-l~Y4uvOoH0h+GrRvs{DGZim&P97?uZ~7oIIJ?(Y8JF>p;WOcn z_}&J~MxHDgTX+nOO;NHgSu7eF&?n)|ti=&qAmKPqfFj>)cRmuVeOM(PNHf;tlhY*$ zA0=&R`y|?V`NImBJG0f?Au2CG8duT2wd#^LuBl2)GS)`WZZkHzmOD5Z?m0P5 z1i787M)s(XXlYDL{`Xi(%%6uPZi`_J0JtnCc1+&4@kes<1Sg2*d~TUBS+isxcVn;i10ckEhPPxmK(-=tX>FH32l8sy zc|Amx>D!{lEL=At#oy`^{bxmjcc_iLL(_H8kieZ9k=&-p!GUgjuGsC$!`F}EN{+I0 zeAf9qA0P|)Ady>(!N?(uDWL_(Fmk6QP!k}juR)dC! zCSoRC^gnUf@LzK;in@I{T9NKE%JJ(9&kScdGw3|&J0jXEZmn72Y7Ycb@btlL=i{)y zE2mxtXh3T#Mfa%I+lAZIO}lZlnsD{j;! z)^le|jDOu1rV2a)bHj3y>@tTR+jX37NN_)izs>y9$CQweq_`)t*{2%Xn}#bs6yH(OwZoE7HB zX8)pKHR#H4bCkl8R~+|-`ll7uqx&Z%Lhw z2dkI6T#S@=FS|0vkUGN2gE9&-QFahWSZm0|tHo2kJMx!F+VIi{m)6USFQHqHL}`${ z`_+fD-nQ?wDrbV^vw0wZEs8}E1zm-%+DeWWrlT8KV~Boq$88~plk2=I zWJ;Ga-qv<_EG!sZ^}9w{w;XJV6Fc{@WiH~6Rr8AaMW9$5w`vzzZmu)Ps5K6i@d02WfzYis*$meFuif zhdVd%1lydYW`~dVeXMfEEfLy~m4dI~J)WAs4;sKFKjs&P8%6gE^ndgGjg#mR0@1{) zj9^(>*S7_H&l8h43_J*2=ec+96_bu+e3-&^p#Cu0zL5YRe;C0`#4NE?Y(r77G6Pfy zs4HGX_I=4VL>pV+EeTkjA|FN^-Lz)oZK%qmr`$l@aK}Kd3I*zamoBfVI3_nO*AQM? z_W7}TvbV#W<~{;t==c9#Eqbf=%39+6S*$G~BF%cpl=?>TeWXJ9H+xpZNx$Q4h}(pp zUty#?!l-~VgTBDF+$6y2`oLRBsjSHeF`te<=I36d1-wGDG42#?=;%m!sG5{)B)l76 zvbD+?Ny^i%aal3Qbh5B*F_gz|@{gRw+r+W5dIzL9j|h*~b6_)8-35R}Qluzg=c89r z(da9}GZrCy6P~zgosZ8pubRYHuby#zQ)8-y=}R^OM*uT|y~O0Q=ZeHrNE1+OT53^K z_rQ2mTd<3<*z6@3bQ72_Pv_m9@- ziYr4Mc5Emq3BUauwVOo{G;G8CsTAjN-O1E4>7+z#U%p#^=6~X2Di5x+nbZ~#qKiur zBhzT6#RDli;NYNJw}*ycObUj6e#g1yK=BS`aIeWL80PtFjF>v<@`I4p*`PHEb5`bx zaTG%*LuahWFFz6NDJ)J;CCxVG@S}QA4p__G7RSqDxRGHU6+Pzr>j@Wq?vOR6-xJzd z7E)oWh=}YNlJQqKYKBH#7n1_%`UF;nJ+o#}?oznz2KJ@@%Pi{OI9mOU2;*|_S$>04 z>*3O*x}8U1N2C|k^^l_a8gS`YkZAx_RITUg*t}J(1r!gHyb68vE)@M^Hl^NQU9BK* zs6}+5bRKD5w*T9$_@LebIBNv8Im)2WMp&6gWns#EYiNS+_-|NI6ImPxAWJAYDvgk% zem+Vtlti(l4}L#vMLlt!C1c`vB>^ar$V7jtXS)Ol0ef#{ z6y`lhx^;P5LaFa+_DV2LnAW_!qqS|;&P!Ypkqn9J_5}i%L~%zdQ)FGo#5=D8%H%} z3BtA;CTVtmwjh+ z!Z{cfial3uJSpSVn+|HOLZLWDW+F6&3}mf>j&8BRkF=i$5+NQ)^hdh$$x7!2LS@CP zB&?@S44gq(63x#?!HoiL)Ubd(O7*p_DA?bo<5s?i z5)3f0OlC);!rZ9lUX%iZ->Vpqn2VZ_tCM7yIVMItbbkxIB4LwCf|~wa zRr{{=n@Q7nSiNZ8(v=pj_E&JI$_=w9PWkx@;xU}o+paGmc<%$)8A~* zOFV~X=xw(iD!jX)nC~ZloP|} zK~%D`ShG)(NkxS!{fvG@8|yhr!E|@e%i=kpL?|<7Z(C}JCv9ueOn1us_8IF)#r8Q~ z6g`}tfrY?|T3h|-Z8`4M52E96SpmmUo*eU^xN!_?9!4_1bj-krsu}m0>T9bQ23a2B z=^2hjUxQ;r7WAEHvTeI9!_`ama>~fN^9cs3gv>HHK)5`*#RQ}BkcjZn*kTh|t_mC@ z?sBj_R$Ve@Cq!}pg(NetF3ygZ@k%0-`V8sM+CFW3pt>QehG&v~XKcL~Yh&g^_2>FT zgmkZks(!AYX4_u->oB`I&Vtz*OLgReCPBfB6iM;L2S&&=mT5cMY6G@cl4nH@(ilk* zcE*ImZuJ0)K}-{l@de!_fr)faf~GG{yGK3_f~F<$$et80HHRA!%J;G#f#u^Y_DsKB z5cXME>er1ii(z3na*f^ioqd^6MHN>}`ft!^Mo^UK_dbn&JcO+YEg+AwTXkO&U>TS|g-$QPAC}0) ztzPwbVE;EPbxeL^`uTdU_j`SZD5w?=u;^ygmhv*7NzyvBPe2@4c}!mC7KB^OB)BF@ z`mcKAf2n}^@Fq@USRhn-f z$N!ptr9@oHPM0p#7ng@kZ&>}GOn}w!udgRq-bQzQIvob~CoF6<-hgk(1WcmUSE}lT zO0cjiF%DeRj4*PJc}gm(oP8jg%9&}F%M3*@;$ZSUeY2~HMX^7I7&q4FC@enzC?V%s zD0PV|)6L8lOHm_#f_Wzi!Ed_e*W_y`(% z%?}M;)1=9`1~}+}N?2#Uh&L+=N~_!UkfUxA# zui~vl@8l&MK{9CymXuWw3eZxa#5rXD<1Czslp~%)&Z58*klpCAu*~8BV(o!KT0dYJ zuzNX}yK>qi&WE6GyuCXT^o<=E=^izGpG8BaMcg~F0$>dd60xu8^$RCAz0~`p>O5Sx z!mc)mRA}1k^3K<~Bw8>M_!Ay_#(cw-SDguee^UbUdtW9Kcq|AMM^-LT{0 zMfn@>wdOGQ&sh#WtE#cO$$1yTJ0Wi>h1ETlB{DT1g@_`G+QaNQJ%>uPU%HuLJn5fA zxheE1*o*v4nJQw`VEWh`J{g3hB?N5y*}@_0v$EuWhz~8%RkDXz?~nC|cXLE{xkbeQ zgr*WC%equ*u1TgH?yXXBnKVaCz*E$JlBX@}zhb}Xukduh^-5yG{T`_!`PvgjG}8pX z5Qd@W%8OS}6DpOT)dU1-f7XEA8+AO)YmceF2D>X4mNU>DAIM%$J82#Xb9jLKzN7{^+y4{SfMI(ZW`QwS;Q~vDsqW zfzkknFboUSm-=qd0=DC7NAzAnVm%-&Y`@sfL1Nv>3KG_JE97tL!MM^V>4_FK1%8U{eY~kCT1;6 zUS6Z~LQO7_nx?7$A6IV~)ppdhdjmy^7I$}dx8hLTHMncB5VXam6pDLrm*5)Qo#O6R zEI5=>d2`>-InO%l-D`iz|MQ;gnb~vwF4YrfyIdr1_}KM?`Br$4C(E7qqo6VGCY0bc zS5By&PQ}fxT2(iF7{y{~iLlH#-&f>k)%W@6IpJ|^b1y-tMn@?nAzlEJZG6UmsHNA;97J~I1KGPQV zbded(cxKY_q6%bVZHoe^bb;m z(R=V0|0v1+SK6B1Ao_iYH+9J?OzN^qF5i8V{DnngJtDrP%%~U5C)I{P?C8?h*~pKO zcn4HSpkBbB*#L|COLoo?Hd}}4F!ER9U>E+f93E&Z03fscd4;%rQ_yj-eIM zl=bXrBx>Os56tuRh%EoWXXsOE^;XO%x>H3gHH7+dSi$sjkv%gYS$zQu#3DWEtDo73 z+S!w;5%MDbk)+LeN^2(@NCd0)YAZ`>@M+MKOCFUW=GI@=l>4{@6Hr}?5}(eCZS2Dd zz}#qAChZGvf|P^`@qL{xoIH0+O^VIE9UYX)BJ;)gqms}{j9oi10hW?ksLiDsIY;vY z*>fymrIs)d`Xz1~R`(%f;0F|g%{oB}dK@(mZ=%Y!5N|Noyo zY4^54J6m*x^h-+`9sAc1h;3|hP+i=D^uHCkhP4(yNzMIk%^zP-R}`^>4AR(yH0r(c zZz=Mcqs-kMVFp@hZS(B|N$6=V0zO`3xLYFtL+O}BerSVvL%e&JF^$2Bm!AMJy)A|- zJqtHs+9RR&d0e@+x<#a2vt`Kf<@v+i;qwpyPt0Rrt3~}-iM?dXUax0gGDO<%aSM`{ zPyOCA>$IF zL23%ZT}MGhm8}wzB+$cF_M>NMR}<8DOsu|yST6ipa6>fzX5H}sI-Rp2kshkQurSPz zV}*;A*2Zhkl6gKP#Z~X>y!}D4|HG-VBjs@UtA|nGn*s$h0)mKC8kRoY`McS0Z+$%> zF4fX2(j$QP&a-dsVP5PTy}YEO`3#{$NpvB{PrF4<+ zMJaUo(NTm(EQkq!Mq{0mbU$nO3=%o)sUiNho1rDrQUtuzwP7Eu@bKXMxlD{DPa8A+ z!KS9!UNcEC-Z%`$27{A3A*tdA+j{zos(3ifYN~;#bJEG3JL72Um|+pI znX%5z-$~!H#P#76(IuY&QQN#$wKt2TbLULrs5B+5!B&Enmn+S#Csi~>{d*{ZQ zlh$Urlv~?CK1+|0LE|xgCKZ=xkMeoJ*>OGst;ZCM$r)FK@xqk0N1@~>lUVb}D*b}C z!0dCsh@Ce1*5!Ni~y(rWrz&U7LJ!RK$2YO^FGD6;*zejP1r{KdizdRMR_C zvsn$ad>90>&*$k_s^E&Cn?M>L1m@CSniqw)TpVl5fM?>6#3kZi8{(E~@+tUc(Zboy zZ3T6vWUB8!c(J-zLYFg2D*skwk>MLS4{RY;R`NQ|vCCbAv3%JiBsxBj z?O$)75WG*zBsa)tcooO9$E_DY)hgaB$Zu<2V216OB|aw&E^HNh34g3J(^jhDm08Q? zxVOc+Tz~B%Y*6k9#0ykNzhk5a;1CZ+m1kDh+~=Ch!3FLo6&=f3b3P0YdG7^-V&k;m z8gm}}s=U^k9a_d}J^xmW=6){wh<84z^3v=7JR`IW6}M=^n@9wFnwQJ_Iy>i^Vlx9j&u6GL z1>K_RMH!f8cClO$+keK=vSPVfIIoS&c*U?a3{U1rYmI#IKTqd4Y<&q<++Xu{Dtjx^ zVdg}6(hZ|qBPBN@Wrp1qZ=z}+;bwit9Q}@qqm#~@Z>bU-Gru+uw(!H&N(3)BxjF6qLIt!@ zo?)}2r2?I*C*ONsTXF@Ta?g=)@K}GO+tHL(&rt9;TXpwYS9LV$ zNGR*df7|=mP%rV{NBI8=?cY7t83PJa2GZAMiYh5x3HTR>C587YDZ7P;$y>TWNaKW2 zE``ZZ^h`y2|LLuOvGi$%cSkA4Lt(te!xidv60E?V;EO*RdtTTBOoQUGG^83mqAnW6-@SX;PKycg%$JF z=aBaMtJ%4`79bS>9p;Jhl@Fz(BaWi8U16Erbp1O+ZVHdZ;-_A$A=k--x5saU+S&i!cW?Y{^={aVlDr0&@7fV$uY8_GhgZ$zl-j1kUYP(q39tNLqH;BB2sPHr{W#)c+7SE-e%F z$HySn1peVLY@n`gu;HH6j^-yy%r=U6Hq)TUNKiT6lv?yAcYK>UmW6$Cqw%nb>F7sH zG2#t%kjcmtPBH+u{oIP^V!B+YU0$+YK)dRyc5Xm!XqKJKsXJMNIexyA22?sRrc?(NO6{VLJt?NFnL`2WO;tCXrg6j< zD0UkLHC!By2#IVPZEm z8@4Am( zPaF{&MR#hqc{W!9wFCb3@P5!%zJSEY%KAoG&-^(;peuNQnh_iio`M!5t{i@ zEQlRIsWgvX+hcrtc{#0TAjrR>QiZ;c40Mj0Y`HC9|Y#EHZy zDe*qF3eY92yc>n!jg&43n4B-U(9TscwzwkqUe_}0RUzl4yAyeHVOmP#hcKZ)q!mtc zIPXt>ZCv6KrrHQ1Coh~R?Nm+7inxr3=Un_bru?AVLnj^oMhZt#0TWUxj|PpsFtfkx zLVDZP@Qyr+&(7murPu=wBDBze0Al~0e}#{g9uRbbeuOzO)dfcKW>vAO<Z&{kZpp?NFn`%!DJ-F~)KjD;p zOOd_#GBfgf))l#k(6<5p*k_$-dr3b zvA1rE(%>T5DXzqV7Pd^^B7BEVyCZ7RG&L|Nu)=`hVdvq13QAR|^5Awr#-DNY(UuH!kczs1XiS4v(g%&{{`+d8Lj)_#hW^@~o{PEOTs zc*(ALC$j5{e#Nb(@5Jgw3ioPF6>u{?h9AgdLGyIukHb_~q!JlmkNAq}=Hdqs5dKJl zF7W&zG1F^%s``)#$iX7)fIk$NayZ$We|FakX@_omKtnVtRwsF}hIkVL#AiC46(X*} z-wAZQlfj~=i+luMiMx};AA5I-CT<>fsPUDj#WI&uH3|$g%9%8a)u02z^rquAjf&BQ zOMpIn4V|Ln^kz|hE&X?2M6#Y$;_T9hm5n}1dN6#BLutR>djf9@@92q(n^M!z?7qGD z>_s-Kyt$T?F0gVed6i~y)z-e?x;g=2K`%4IGNg!}D@Uu>DC)wvo^@i`x=Rn;yCT)4 zWYf@abY(MTp~sIr%2TLD3-mN2p=V}h&spl)Ak;_}Q@NVM9&m4U?X2ZT)uCr74n?v4 zfWf~o8QB~mDav(@8v#x83NYoFpsQ`FZD>!iDe}`oaA7x~eH%C3W;Wc~NUS+e?ByoP zX@ivTXffPEBbOfJhiZ{J|$%x9W9I=6j^r_IUEv*4A4^?enr(EA7;E5{$#?PZeq_qwFQK11bZ$ zl+eJ$TJp9x2#N&qPVZ_j|CF4+eG+5LJPlG|^|JONuAlll1$IUfYK%*MRfh#?DZEH{> zYsg+!r*dpx9}zTFUk+IICm7Xm63af|9M$B#XZyOzt1slxl6oCm=M%8l4=6=xq#kA)w<0zSSH^8bJw)9&5IC ziK8JAZRTGPmhYI{Hwc}&8NDGLIKyA5gEb&D@@2*VGSLyRCM3gqH|%8^q)J}3sd;|T zQC)v}FS{ntC4=ecVhq|TF!}U_?D%>gHb3}{*n0U^6>9(Ca(a}2%Kd2EAU?CXDbU_@ z_dVD1^{bkFaO2lQQJf*(UuS#o&c#g6I+jMma~fwz|KOeG&MNXx9z!hZQh3;4 zta+=F284y2MI+o$}m%4M{PM65J z=ogCID==-UN_Nqb7poC@Gr0<)4H7O!pljDI8xEXu;+{w;Ks9Hmi?nDGuQu~;;zMlI zNuS!IWD>NZ+gLpWx-lpfS&q%jpZ`AIrc5CCN|4)o3U!V(^|ZR-5h1sAxZy`S7ihJR zy^a8`ksI*`T#GFZj_s+tDGbo!LLktD_8ZSuGW$+>)p+p0---hs4-}H^uOceFGFjfX!Rhhj-Vx0y{u~@yq&v9 zuC7rp>Rt~wR6Tt%zIN+CXHJTuevSisNA7zuZ;9ad|IZuL?j4a&r0ae;I6{XPQcGJB z`n=LU_)-ZR_hM_x9ulB;b$J_Os*8sZBi__GxL&)4Ri+Td)g{r1rj6vPvm!_C_6=-B z8zWLjDKSio(}eNjB3+l3lY7o9vyo^J!Ajb#o2xk>qYhXuZw}LUe=F#~*v8Z;hkgEi z>%cA9m3~o1LcY|zR08fe6+kI8Sn8qFZ~>55oHYpEb;f$b7V|~7Sr74;-2H=JRkoNO zn44g~sC;0ueC3ZP0~oue`|7<&ehVFvu^Oul&fZ?*IjZ|RJ{`8oyPK!ohtoe;9YUIV zhqb1Cf&oRH$-1sJeo@gRex?eZkXJP;`60nV8A?3-5zVd|uyiB42y|a*E0$C1FeNVT zOmNia#5yP1D>y(R#4Gc<;N-R9rR^Ok#7I?#Lz8hUPUY?X+uRbDPpEV9nPZSN-4-{_ z`0LRR(aBI=>bQ~6UQBi=TZ56|(E+)tLdnqaU0Jln^c^g5@HrrYmI+_gXoN+$QE>C2CiKSgq5k2yh7 z|L>vS?A^J)^q~m={kc7!3%*=G-T4Lo8Tev5Ck?ugf?I%WfBu)P75uasY!#+>Xo)(+qz%XyQa6tOz@{^&DY*_GbCm&}~% zZ@F!_e2BiP`4~WvK{S5mpL~9}$^e0WayMeHncM4kzcH$R_R5-l?3udUQ-uj%*$|O2 z$kFSJRb|3lL?nABSAXrBu8DGK%~RUXiRKf4Yx1#&)HeUdJ1+iNJo|g*J9+qK$53sZ zF|Xr7cNMs;Gn`)7is)a6;%hH%O4cUqu!)@wVo0>>p4|Z1kx&0RxKI@%$&kBhwu{Ko zJpSv~0gmBVGcOqlx9Pj|d=%x%oG$8EYSZ%(=|Kju{7eL@=T=FycZBPkI99!ks@4um z?4uR^sUcRk@?LP;76o5MAKu>+38ts`Nw~HDN|&>oa5<^|!~%m2*Hu@uFXl8tu%}s4 z!C1iImqVow+ksDsz;xfvOStG$+^n(;A1Q|RD|V0%7aTulO-$#&woA9jfKB!Cr%UO; zg6J&wSF>D{>8cF+cC3DD2aX?dL{-iF?2i_6+1^N=^B_!}C&k5E)6xYwY15SpB#CXYRo4@BfbX{G;q8zqOr{ z^g&X07e#wlR7$>96dDCE!K1U$Y(??-vPgKnY~say*zGdoAL-8N z(?{c(M zTzM|6`84zF1}-snkNHGX#^l*(5YM|42hG21*{;|;4J%`yh{MNnPw zf$&x7M*pRQMY64#rIUxY!fUWOZfEKh*gRb&pni%eheDP^&gH#jbg$;sk$w$(TaJV( zO5lL}rUB0Zijoh+%q$g;o zC+O#aXo#06MLEA`Qt7wSZSPKFu5TWUTbIG}Jiin_r_)F!j|PU=Oa7Yl_YH(EKflis zJG%*;M`&e7_p30NMNhS_!I}HieLGJZ-)P#x@D%4%;I<~OgGymqcxh}}^^%Y7re?t8 z$WnP6s)C+Dv&IC}cLm?WSc02ywBzC0^i}YnO!1RRo9gz|-!q0dDYf>U2W%-4xQjP2Clsq z)AT{LFF?iNDpUDnGOdHuN;$;iJjwbCC%f3|%;KfufOLv@ll?}%ekO$;aUO8PjMz{Z z%YKzN6p4hD9TS7l1Lg`I`P5}-RxO~0?o-K~*&~ux=KQ5BvFZaxfKjKqZpNUCl7s4q z@kByas<|ELw1MiS8v)D%ZG;AgU}fDHF|^xHZ+ZP;4_V??d&vRzK&b-WB& zKwkdd!zQWqHUM<1_8-KKq;BjEs4U)fZ2(P~eSXhHEQvV1MXOxWiJhkUuHlHcv&)U0 z8xe^4u_}?^x^cK$5;m6vc&k&fFznB!TieZ%K*7)P!-AJJ0kqJ-|3%5YKyT&0eLk_B z`^5G4=|6W)QRe&m1vI$Y15PDhV;X#ZmVDiM*8`jQvvK#y`DMaU`c|IC|ME`nI^e1E z-9Ae9>n(}&)1^=Q)5n1QD9fL~q3x8eEfHqMuO_3IA#l^d@sTT1v)R%#+ljHqM?KO} z-qRdS^YO3^-yQs=b zGAo7!v9vVso*X?VolGg-c6G76AC$>Rm_!K|gYjVcWZWiJ@oD4CXl%r_ea|td6L;Dpk<5}L!tALgyFB`&cmGzC^6LLk z)1Kbg#%Cm0y=dUL5QJ=W{7}Q`^dk<<&2E6Y=ILYPB#I2+=U^IW=~-^?33&+S5eS92 zW=Uv!uO<8k$eMPT^o=73FpObz?Qd@ULv?Y6xEP-TkK8BI+hufBx8MEqSA9qG9*Uu^ zK*}}!mQHu5U-{Li8f$%Ou$9sPV*7@PKxvZ(G#hLY{UR+NEPIZ6*mD}*xQPXdL(b1q zG{!iV>*PD4wsPl;C8_QlfF0a!Uc3G&NHMkN94)|x<*Y#8U)Bg7LCy`K^K-hMH z7;pFg1=j6WJ3T*lQ@~N&tB+hyYiQK3xpR{D=-sF5r_y(qLDFV@q`OBG&yo`LTz&uf z_G@}K=&94J<8iBbPI9$Zx$jzPuJu{^@7-Ab%P^PZ?~H%vpnZWpoDQ|(OFgIWg7G;m ziF@co(s+1Z6sN`n0%#cx7N-uD&TKqdFu4KlKG;Zt22~4{UX_XE$r*U@8$d^kHOg~d z9t*#;_AKEnW`;_co|E~NiOLRiJUypUQ!sCM@Bl=*-*Z3KU1Xgc8ZuZ*KT zpG!|1`~~lhZ|$N0`=k^H1By)FnI`$b>`;w!3C{Qf?4#SHq0kqyl<>cb zLeV#NkpM31Uhkg4eJLH-!i1C(lXY9TP1qFUacp(#mc-%A<0{OW<%5oRqc`sRjO*&l81 zdlr&EtW@q$#qkXLSYNidG2Go6X3{-ZFzv2tbCN%5;_R$^t2&Abez*tcp9H^Kq&oYR z)TQZ7Gk)h0r+`u?&JFa|C0u^G%ue~;r+tHPkKJLbvJN61?dW8?lUhj! zRY|^rdgKckajZ3L^HtzdqxvviQxvYjsvv+#Pq!ux{_alh61j0aps4h1QF3MF$hDn( z#%%z*++(sUwKI8*y!isgi$PF<0ovz=IGo@Nbw=I)>JF^mDY1CT0}ulv%MPkqFum|W z&f-t*q-sZ-R%99ocbxxSksy# zW;}EDW^jlFCOulL275auitp^71<{nRT>psK30;li@#hdV3A>p&ho-4U29Jh^A1!#% z;u@9o-vl|h&6)%BS9*Ih?X#f?MNc!y7`?sUtx;0)B=% zJx48}0{Qid?=5~unArmU+p(=pC5C|ZwDvR+X$O)e$t)Kh`%w>@Q8@)UD^Uu@xv%!2 zDy?-n0!*i8R0O3(VhiLMdS2Tjr+r7v=2EIr`>?oR9Usf>G-Us^lq5*tK%SRSK;uCz-?9wuFW~f+E&cEA{kj>9)ihcz5d$N>@|HTTD>6J zDrjiqsI)qAT>Tz)xGW=OQvZ_IaNN;&7R+k7j@{mN3Ic6H50eIDzFv5=cHKQ4zFte8 zeYCiOZyIbP>U0jiQPRWpoLNKn&%~-1gCpT|bt6Hy+Zi{7PKjSi>L5<%TJTCXHUQ}{ zS#qK6Q?M;hW!(4Q6F=D1cq}7ik;OLWt}iF8qtHz%kh{i%BK=mgosHX zM;jSKwA?nlKE}X={O%_B)Y|JMGBylHq(jE4YLq@MFek=Js{h{n-AwyjUM06#mQ-H8 zhTZV8!KR}8_dSd2x$?YCFX5y>g6i>hu)%WOX@1B_=YJAHpSh4q@22Y)80ZjwmBBi{ zA@pN@tlRC&>I=4fh9@fUsQEiRCLNS@OZnf)Lqyo$j2D~VcWU2eVjl|3mr)KJ^E(ZK zvi_L>a5ZiW4)v1%gsCTZ)vt5iB~i9$d!W=wEXm{nT$uY_w?0+K%p zqLL=7P~k)efDdxBsp!}_luPaXosIJz$HvLV6H!d+nIZh**q3zLX$Z8s&YWo4bOjRA z&WY!=ey5{&tMASP0$J$u1>$SzzPtG8&46W0| zQWbfUDJmK(bZgr?#i@)-_%SSI$PNowF?}3p;o__OD{{&@gWr9Q6y-vqaepUotz-fjsA)CsSstfRKa zZ>M%~++dOa{?~B2a>0+!t2+N6hsU>#lr$uXf#eCDv1>_*F)-DsZ><+bSAj9hI$f$Y ze>c+q8U*}a{`o{=34PTCfpkYoEhVApcRd$L7mc5h4;i*{p2(=zf63Hv4|jwEc*OPq zy+70M{>^M29(o3&^bPj?;^42U%1-De4`?-h2n<1Ya0Ti4S5H&0Y)!EK(_NVb*mR83>p>-Wav7yZT918 z@WCg6T7$|dreyHa1(z+D&EK50ky>-}9=>GJ*h-e{V?QNBN4`U}CTHKo%GUCWr3Ye7 zq#n7}a?&$XrL+xvAl|dXpilP_L8A)uw|Ae`Y#aZyL~1pgycvQpYG2+BDwY>@CH3nPPhc^Rl(mpD`zCt4V~l7QYSU(PTJ`<8 zwN;Mb=-AYSj1ZMTw|W&DW3dWE0q+#gpfA`_IgS3hDbI8W*lHgq{0o0ZaHDC=zmPd;M2R3*Jy%Nu3LJnj7g|PlY3B zq+DNDOw=Fp;d$uJTFvjWOiPc=7a@zARyC|pTZg2Ur*<0&e4e z#H8%J3w!d8!5ni3Bht6gfkc<_*ShtE$6kdHC;5$W#Pn~xA zj2jsWNrl9J6iZQF>9VLds#%7I(EWVG&7L%DHy5I{d4U7uh|6-OkW+2^W=+>^_2nk1 zXERWo>SeZbM>^f;`q^XR(to?}VWp)eR06u&X%W2YG7sDWzW6O{R^hFVg6|$r zhA%`QzaC3`h3fB@&(8G@C)93daU>mR;wj0+@u1M+P{C7OA6L#9K|6vOwd zg&aHq5MtyX?Cz6Vm{0k|+|BvN<8ovx8>zBnKZ5xeuwZve^fCSv)6Ndd1G4k~b ztm-e-w{(&HLnSG@{1S|=4t3o90P%U?@~`S)dR-n&Z@EP1{q2ss)b4@XP`u*#>)&5q zoiO>YIyMhU12_&W?9J2`26`6J&TRBHx{;D+!4kT{HO7!}?Sp{jh3Ad>7S|6OIo*QS zp^UZ%jj}dyt<&!1pzliS<(9PNRe8yIJqmL^I408~V}m~kbuAHeFQt?BtirRmYCC$Vq(KGm?> zC!st=<^;vbRsncbrV~saXvwE*nNpqdEB0n_NyWnAeK3b;qcL;5swVt4+nMDXc-!L} zl8CFN)iZ>MRfO}?mas}`Q79Cw%kB!5AdHiMSj;FS4>t%}ek;`AYf#*2ty^7BBFc7i zeYBWPn#=XaAmonu+DAn?q}tFg5wb`|E=^m^CH95l!?E~ePgtF=mx$Q(p!H4d>=K8k zCAS>RVKbc?Xs+cKHhK{`y(d2B)(U!N(Kn46nLM4`Z~p$O-6khRu9u#Cyl;ctsbX6A z$^}hrFxg~I(0 z%|DSImhYr4wC&lokQfWGRx_sKL2R_;ET()6IVb+1G)_z?FoCcm?v71>dWtrCIgP_- zempTIJ0)0{CyQPFuHi*j)bb0L;@kr(j?wx2MAvxRcvN~o&8E*btSz4fouO;~05WWT z;uVR*N+5Xc)?Kogbzdn?%Yao$ua@tb{HSZH#wl~DU=_yOOqj92cy^>t0Im*KDV=!z$Swef9&nT%=B4{lfweJ;;`&zg~Sx9SkJ)2-+{H31K z_2Vz&)q~TapH@(4U(u@>EP+@_<#gfwk1|Wo0=MmeoZOz)8_9A}vn@Q#$guvPZ8vvB zFNEPvM@K#p5hXb1pbm*3X0c1xx{1Qx(ZSH*-Abjpj&E5sdRW@IqJ`1(TJEf2=(;OH z11@K4$6rmW%M=CwOy|0--}TP3M}{I? z*SuCTkZicBcCHtS?u8j>pQbCh1nj<@6nK?&s8tQRPRmB89P-N~FQK>+-Qe4}oL91A z5NM9e7-5q5h5X0PMGqxL! z@atdm^D|$&`7%&c@+8mos%K7Y?zCqWRh>79bow1e-Q7IBeu;2a5(b6=(uXB|4T2tY zI`=Pt$r^ptvUXh#MO7X4<2SLo)k^N^$Y?~iEKHX4Mf9c4cg(Hh6#aB-$P~7_ufYY) z&law;FMk_Xr00C<;Z1uSx-)^taq;J$d4GDI|Lf>?bAS@L_>8XPp{`!o3Tux{vfTO{+VP~_E_V~2+c@s~ zB%9wZKeySEkU%PYg3uH+==aT$C{oY?S0j}^=a`^obdJR zS4Xm0gvxVsiMbjbCgNKCQO#}*IEJZP*d-dh?c}H5_EYWzD8X&vvm*ecoRuF8IWo;V zc{&Eo`+H0RB&&#rO}L`GZy68i7H@f}^Ei2U&gKd7$$&}=U_s~4CEK2NPWQ}4?betj zQEd1b&B?^JUKJU0l?ov)Dkn=(f@gX1?A$O6pyn_d=iszShKXjiZ7_z8{J!M6O=?bD z+;OoD5LESt^9V*+y&9UGI#wt|Lz+)%dnE#L1Pjk*wXij67ttO864yXmj$zFC+C zP)pPLkWVcN_;VPdA+XbFQEeh}FW!22gQ>S){t0&kZPP5e?n>Uj27%`+A1{7qGAG=0 z&tAYcB`kl{@)mP2TxZ3<+m8Tz%4SOdlP(lQ8;aXr*)YZ+;=`|7Cw;HMLFd?!rj@b= zQzs!pYI2yLtT1(|yPd#a${jKR)l!6{zCEPum7A0a6+w}9ywSFAhG=_oqqh(>8IBR# zNG}iL<4t#pQ@kGObSZTwsU|JW7a94b6FQ7!rRCA#O(Wywn?V(~E7|C<^Ou`zNbQ(j zk{IcQw|Ld2QrCU3e@)A&I(mE5TnOf2_>Yp0Hbj)e0rzW6>fpI)fJN>4|ky*{$0YMyt8DRl6u==up`|1 zU^B?FJ=d=*g6cJo7JpY1oUeMAoN)M}*(@RHx_tWA zGkXlP<~I8qC&=(MzTT$xpxQa7&3*lK^c{(HtHi1Yb>rHgs1@l9v9LvA_BKkzV;lY`OFF+Vu~un z%|{w^%r+tvx}>M&8YG6STgp-}*VVqNH_)<>qP(*yf|b}G+mJ`8k1zX^-q?Jy_zp$t zoV`p+*80xvbW(Kb`Nnx6IK0q#rawNQ5`^t|pi}OcC{l{$pDe#r+uY}lV(Q=r9vHx6j-0{wy`B-%*Oi8O|HfCOnylyFPCkQ*hC4+wrT;!9c)ZuxTz_0`vK7cIr^(Jo8Dt+GjvI+4MN57?%!h8&CzB8cck@zNiGK@uMB zTy3UqLaf;kk;wxk3&NRGO38x6Q{0Y^{?g4YAFgiP9xM}jW9k9ahJs3UIabDmY$>svYO@JI@2ERPC{mQI$w3VKmN92s143=ypJ7W z?k8OaLJqmtJqoE>Fn!tSr)TNeH8j)kVb_NtA?-flU}dA++xhz3_gx%A!JxIyt->Hw z9Q2w`Hy#aS3jJ8((NwEG1Cwris&4_N1CGt2xij#V3WfY;o5rG>DwIuVT)AqVt&lY! zx0X$Ojo_Z3F1shl&aJen{fGxva< zGynT-$^=>A9+!!knCdp;X6>|3te8qCKZQpQE{_|`ZviGW7^VdQbawZB4sPix9)fx7 ztT+CwjQ}UeTjM1+_VH3*;|z&ny%E_Fq=ss4>6J>Fzn`XM-x*9h^h)VznrRMhoN#SF z@7&aM9>GPPFd)FRUWC8{P9%@LvzE`RG#k_d}hWhoxw*$Y1kHfJ~{ivl>d zge=HbeONkOy`^}Rw4JOYW{M2b_n1plqr#5@sS!!-OMoJ>IHXfu{kBTL)aaRslg~Py z?an#(ctbB?QuX)Z@Erp^eH2{nM|RC2#0&)<@u^#9vKQY^j2kPIithKn!Nu^Vuvc$l zAL4gXRzO8bUMO55vCFXkR;*vbXkp+}%fD4~iEKr`5!Y3j`erM_upggvPDZw$Y}v;+ zRNFLS0=Ik|TW()DFLvcCnoCTnde6*qip$lb?$sxZ!*hcp_Qjb41tnAvy@(U@Oeuy> zleqY)O@`v}9N4=tfL@Dv;_yd~q|*dF^0;1H#{gGSN7G1%L_jiaMOBo{no3T- zMX4U}ZkEl{qOZ$?I615qD`#R(dy>|MnK&7D5I%8(xxM|cP1TEc@A$oVzr4tSVO%LK zrQm=LJS@IMUFvf^ZH1wgIFO8xs?n62b8BMlA6@H!{1{-Z{Qmuq0<0+pwXraI9-h1T zX214=f78~d(V^R1(+*ieY_pl&2D6{PDHaEGrVUd}xL=L8Y1UE22x9T)tC&s>AW~88 z-8Ej*P}L{mD=GQ;M>{5U+I=e-v62S=4)A+%JL!Yet64v^~du54R56@1-?fFC6nDGPBG zJ%o#_(&Sa-&iTD+2%T6MjPErAlYm1DU!q4z>SiZmiEcwm7z4@@feKM9giSD#XQ5M)TJY zxD)$Yl=KE?2A6m=3q`8%GV_@xe_af@@)J)b+7hXFbt0r;9ulF$u-_RU_jz8RrKw`Z;#1796JQot^iPjRdsF63JN@~}E^K6Qf31Rp!WLxr5fN8qrUf;j zQ{0|#7_gqZx&z z;8Y$>f#+I*j<8Z?z2h(WFGTWxf}-B1Bgo?OSq+PekZ`Jjx{K!M_e?LlC2n<`=>tYh z15D*cfC>zzqt{$LDL_B__@~)()qc0fB_twVJ&azdT7Ml2gqMH<34^@xXiyN77g(Bzuff$p z+$Dk`F)5)U*keq{-SGx~7nq$;s_+DDl=J(6qW1ZIq){C((?SqJY=mBx*0S?fH?f-Z z+TDBqR)OdhqoAIH&OG9oIGebG#bw}t-i|Yp_Onjs!_Kp4RzB^$qzM-dETk7&+s$qKfs?oQ4X+C;9A%PW2yWEgKN+FNiX}8AxdV_J~$lymePx;c3@Kc}O zNPj$cum6vycZ`ngd%}e?v29xu+xEn^)3MEoZQHh;Ol;du$H_z!O(t*u{`cOu*ZI&N z&gr#R_1Vv^daCLvG30OPshd&Pp{Jqch}!N`Wf?kn@@v2Yyhwq-N4STXF^(w}rRscI zf~vfr9;fhRDt=jy#E13@Dx@PyZ$lkr6Dj~bUZ))HkNBEG`(8Q>Gq@bMx)^0UF}rM3 zh=f=}!9O}VsmGaiQGW_KzJ;!e6cD+{@x|L5?RdFpkxv9RR?kOZ@{UgG_=oi7wR=NK z1!KgXK>F$5>CGTL`>@zEa4%n{HIuBLfq@s%dFoJK(U>si;xz@Uw-{IOZbVhHw2e-I_1c;2 z^wwq&|2f3^$S|q7*dE8jE1DvJNKLTUU=_CIIEB=xJUt?C%n>#BGmQ{INH}^d6FUNe-PANbvo_VLMAQVq|8s`6LA48OyhA#dz-&cmohdp(@do% zP+8UOYOBo}SBIp7!xRXGe`H(AK3*?4ga;~*&N(bT?99$0VTzG;M;2zYR996KH=G!+ z-rg`a=x_e~O)2P=n=VaLbNW!kN@np&)=hCj+#aO?LB)Z*2H>~PgfxOjMoV|j=faMx z8FMSEF_C{Ol|C1&?d9%3q%nIS^obh>3!M6>1c|{TLk{r=htx2_+H0Wg!%S zSx_eGg)_DZnJt+E%-V7JYOV{lZ0FCPJ-+$H_~rE3Z&P!)MzKe&dS^<8{Q%#XV2#jr zI1(XK4aChtlSU4T3kkC%wKFcs2(Su|X&L>qc64&``ub}AllPiAqS#jR7dR6195qS- zST?fId;;oj@8`K|2eMpC_v@N|$3$dgT2kf@kK`ao4ROW#qwit#7f9@gp$abszEp2o*f>VHoV+uKjBX}VTjF}u^Sj!|=sNHgJC zK(WQJ<-q=6BI-sQ&^6MV49cqx>o#p=NnbaevJRe-5IDu{LEuQu;q4x$JKl=2vrz=p z{kxoz$ThH0Zsz0FNI8?x;mw#<*3ag!u8vA;Z7x>~1~lu=l@R*O4kCpgm`fo$g(hMU zh+2l`EhQt`vYD#v(_^7{l9Q{Tp&05)v+$|vVDY9|OJJ^hdfjiLBQ?j*Q>kWaUtT0Z zc%hd~evggx_K`}vP29ATvb6c66!_SGcJ9Bu`k$lq-^ubzrqlOyD(#Wt;V1hoR^Uo_ zW_nTgFAr?p7>m$!?+Lcl7d?A}?^fiBnHvd-+kg!o3xW-Lg4lE#P1ci}M5grl0uJ8_ zCvH7kGtN-B$sw6ss*~L$2g6wsI2tME(Z>-ufYXmmD$pzoTE`?NYYj8CKC+xO3rhl@ zhN`H`GCnabPjWJuSrXo>C3&w}>hwsU2&Eo5bCOSlwK0Gv4pypkZqo|+JD(uf5Gy$@ z%`vN&T47NSMtyLP+Cv>0zV3c$vOiK6o|K`WQzd=;bi{!PUj^REvt(V{HTVb zZ%+RDIn1N@)x5(}l)im8%^0cx^FQZrM$#KiY)rYQfIV zMK_a%WG5>vSXGAU2vZ&5sEu{QCWuvJ8%aL^dpxJKi>_6VOavCZu}AvHEAOcfO+B^x_{-N^JO}V6It7-}WRP&*ocY7*+}v6P1pa;@4U7H+ z1;trH1u&)lmEiDlfx&Rs_O^QLyL;(3H=A_^A4Ba~vj9-h&{&?zY=gtZacLM3P^kUK z|0Ge&T@=SAlLCwXNu(AMHV|nW7Q1y-V1B#1Z6XKef1iTA>5u%ym-;?$7EZQed6YB1 zg$81>e|EvA(w;;85p_KK@SSug-tO+mMba!3?DX$uXlRiGD_YR(%|FeIyRfTd8KSI(&or zgzuh~G*iaZ9^e+^)dL0Mo7ALy z_A~qy0iDyVtT53s-C%dVyVmAYs9R!UVj;+{t#8xr`+r18hz-FQGyPBlS(D(i5dmY8wfO*ddW_?E0-t#TkI1^8NBP$EVJ} zdV^PoonW@-{+@W_DCW2Ldo7Rc6;s6E49d@x%w(V=Y~dp`hd|^r#I7Ox@1y)#NcwjX z@U>w0b+C8YjL$Iyx#G^{_*iK@VLjuKsbhl7gQhUnjcBV6>gXWeloE9@AJ{;;%~!qr z2v{k>{65)GTPV?lmT&^zimQdIC4F%sD#)egDmXcgi}Ir|=~cBf166!^r?D}ItEn$8 zkH`<}qh*t#>|EK|b|!N$*DS?MT+Pq{#e*9I<={r$e!IBn-bRr_WGpIc#spIrOM$tJ zN6Fx}nL4k5#g>OEw&Df(8wi>#CbZ*ymX;^0t-Cknxtn1X)QsUxFFxP-L<>q;0OMSzU8LHxWUwVV_#fvGDpv$2_&ysp{WI?@{d z@C91VOiyOkA~~NAj}TEtTLLwLr8mohH!j9RQ|^ zRug3hD(ru%OelUh&N{!81DIgBCTocDV^&ju;G6;3PqZ ztn_%V!v_-f_ROifjTWzF4gGqUo-}EoyufHtch?e|FPZ6P6M8IU2pz-uiq)BegDy*f z8rxPwWCmjW?_vo9vt9J>lPRug1#DSv>65*{sWUYmKAm3!>w?pTe6UdUt36vjZ?~Ha z{40rY3{dp^6AciaySuTRQPq`E;(mESkl!)~oY=g=gDOJ-^;E8iXW4CfP;+TTd}{I6 zSBK0{WlqqyidzB=4l|$`5v`MWmVW~j3G(r%9R>wE=Xo5b8tKLf{K_6Je{`#F?&5xI zRV&I-n3bBIh?AvIE-k8YX(Nk71a8a%9yeO$Ysc~@GP?GSi2u|~YYWDrq7KddeeJ?g z?6>*&twZ4ZsMF|`6iJBd?L0I%88<^}Yg?>hF|q5?n3D2zP!wR=@YBih`5XjnC`Z+#@>V& zTLRo+-QstK8Zg5c{PAnH0mN)(;xL)2;;E<{UN7&a;bje;ob;#VA}M<|)E_dCGcF=> z;FI+L@YyUAqQj{>3B=BhS+*MGHZy9DH}BzYqO4%|eit_>xR6tfjzx2on+b(4u^tLd z+|yrc#wy6 zv5LAyK6rQjFK_jKLUgF=w%py7b>;RbZ1@3(xJ;gb~^<8i6z- z7CPa{Dpgn92$7+)2Slk8m9W$5tMXA3IYlfq64-F^sO5DNTnQ$NBSpTUL-a5wh|{+} zhLWmz%uhdAQA;G^#fo&q^@}Ik1R;-+UbyrC>eFD(Mlb7>|Ifj7&SS0y9&V zC?mTcEb?$V@%lcL6iIB}h-_E+eX?H(Wvh$T6(w~ONzCx=Q2ez+yuSz7&=Uw!LzFS& zk;dEOnvzg6qnmqJ)L|(XcVTZau@+5$d;E;EFPfkK4i^h<7Ar_jOI9aA6H(YTv5!QY z159_}$}nAkW(QsvpMfS`uzz7f1jM=X$#C>8wpj2}Av2_UE5}bm4x@?byq;nJCi1K? zHL<6#awR*tUfad?WP7rpCUS4@*xCgIDjfW*DCFpibJ=Cyt23jG&Vbvidv~cA;1RHaX?|RO95SrHFbH1E=)hA9EXWaE2ntzII@0*Y*yQa z@ObA8JuL^Yc6;|0z)j51fvmJKTUhN--+it3{94Fx=HYUFAL{L!B3JDUgHmZw*lTj`m5E(}?V#z(tGb#0fBfOv`SH`B?+B~m z6@I6B9Nvu;DM$Hj%x0^q`UN}=U}E0j-DavHFSmV<`%d_7Qu2_c>JMDf3T zPB@SNDi1Q7fs^1PEhJS}wdK_D%q2HJ(kwyOxzLf3t9+-hJm4*M=Z`>s-r=s!Mr^&S z_i@Fx#VyfZsb)nN=v(}}%eZ;q{Z`icp}bm0EeWi8TJz~EZsN{lUOa~Y$CxHJAi#O> zW31piNB(*3B=;IZ>_}PjX3{3?(n$El=2+G;ak}rD6TjR^Oi=qqhXlnLEycY^E_SN; z0WNPldJfkJEqWv>h{1WrI1G~W!YWo};SPCL9JlfP{QZ0I(DLPaIe}gk{4KT)14&FY zvb!v7`h*Fv12v*Rh><7+^Y(@OpwZqn&n?96F&`TerFzVb7;rUpha$c-Op#G$h>KA| zV+_Y|6)GxEh~ABC|3l%{be}oHyDJp$Ni0vM5zC1bUBcXUPuP{hpi=~giG%q(8>c;o zER@tFbrVgAsh`U;4{c;np3+;ahm~)1=z*$;N}2PK!o5q;o5Gly=m%ed7Py4?x!u(NCU$+&eI)tTb*v7NOmt?zDH8P@`9A_=#wNkhATF~dd8Ff zLHjDzIw=$#Yi`UIAtfiV+5r_3au%m&El2VOX})D z!b@N)8?3=~s{b!`jtkDWj2odKXfhY>N=V-cZ5Y(*wkFOL&Srgs9p1oLl{+zlBqxDf zLnnC^bU^2(4$#>|^#h)MycmU&$QTX@3O{lp|FhJxq4q>WDS<6HBkgGLZy zpopeK(-0-YvUk#Qo&eGWRepOb&pxhq+gVno9_HtvMw>_O+?XwqBde$fHL8VJ*e23h zTq00lt`fz;0gcj$OL6Msc`FfeE-Z+08+ALBUR^JTnWe*uEhFyDFqeC!F^bv$+S_jg zg=EqfW{-DXtS58!EN6S85A!UCdRDG%c_BM1i^g<7#IQJTpd=^TR(J+EVOzT4TpR^O z8s?iBLUxhG1o7n5ru+)7RNio`0DBM~Ln5k#?qN6`da;YdiG1xzwiKU?TjuFRBRG2P z!ja%&_2srbDS-gWSRI~s@QdKsKfBBn<>bc8Zilr=_V(X9j9Z(nd6NC4LO7OF;A9Am z^*ixV@|(G`xH=3GK1d<0&&9(}R^)S~5)zkuPJI%t5R4I1cB!Ro>CD5lxOiDf^LE3J z3>O01M=B&?8@A_~v>g5XS;>Ht5pP7Dl*5H8GV4(66Z^%m9#@z9WF)s7k{+ z=u?ct+2V#$TKwnC)4Zti2oEOnBndD9nY&#cF}O6!`MHmMZaskmbJuK)P`U*NC+4Dd zTL5sUyS|sBo$AZ~?S^EnIo?oV9LT2==W8t<^Vg}`3IPSD|5Ee#@`RB~__u7i%ACcc zL0Q#y>dng|xhn{hvvK-mK&9k1iwP(ZZ*6DcXUb|IT}d*`!cyn?csma>Jm$1EJ#*ef zY^*<$=O=zALQNB2ie*~QJ7>3AP9b=wE>aJ>P9U~f`AIDXxZ9tqUygNt{5|#KbEMkN zF78^Etj;aTlKQ(9k)f#YJMPkKI@yTCJ}70r9mumfshN?8r6cXoEBb$8L@;qJN4nkO zj-Tji^B#E9Y%x3rWnHQbgpM^8yz9idxC|()Xw*v)gOhRCHu2ZON_kO;-oZR$6v5F` zQoS1p^>82vY)XJ)Zi;}?t#{M-E{O}k4e+n4^Pbc9DUXpi__F!U!?UHmp!wXhqOwh? zot?qkQJ#I4C=iVeZHXYt&MzZF8^{S+Iy z9u%aCrKl8zD+i~Hjbp&cvvcs6-x+f4XlgsniSZk>2TsjE2D?AoxXdp$XR`28gr%C! zR)uSIUfm8JXIH5e7UYI%#Wj%E0*|P5&Ib7)=T4-!JVykk`Ly&HNWm-lXTa#dy|~%J zsI87TqAx4^-7W_h)us)H>k)GYZ_NSKfolxR$k6rIrlfSh;aDW)(eA7`lRB-x-J;!+ z$7tbUb+F=t-9ISVqs>5?2`JTMN=_NEL442bT&t%WGlh@_FvzREYr944#FpfsQ5AXR z`a9$-wAqG5h)?okrM&O-K9hW!V&(9!8@a1_yE7wvlZ^a5{NR@Ix(=T0MY+qE?@d(< z9A{7!VK`L{5ynOO^R*+ozpjeIt6OGGtzFug-%ca~dsv~%A83`Om^P=KOovm48M?6I zPJ5(elazniauH#$Vt=2VA0Zx9E}w=jMpx9dthMqXL@)Rf08vqS|6N97|0UDiHL56S zf(UDf%gbqXt-Iyp4?|?#kB{TxG!7f}c z0#iKUX|OOR<(RzR%S57_!wV&$;U~)2aX)mO3~)Q)!Wx86B%GLC1SBVk`=jH-2iM_^ zgi6Q+Vh+1t0(rnm#l#fzX=L)F6gLP> za{>ngSoCz`>HkRtcv?Y zx*ypfZ7-=gGsWxp_+$F-dg1RTO9Y^@`@6{#n~`bM03M6RLe#K)n!#ZZEq2J!jSgrQ zqNnH05R~^HyMSYcnXUR`MbQuSr==6`Z#p<&`QMQ(fie519rd`L%_gg_@QWbdWK znl=xgy6EVvt~c7$(kIJ69wJ*1@=I2ue{bUP@#c|vyKCpKpPj#ifpw{~gphoT zDbsHQ@xzyF_N0Qt=_Y#E+pZE7)EU0xvm>D4RiM(dCP)Vr2uBy%aX+S-*|%XF&p(M7 zG+OP%iri1$W?x>et3*CR$gEsVT`Gb#3|pO?j?5K5w3gCiaUSnSZ#IYLn<2!Hcc>ZI zH6`;d^AEe^A>6C-Dz=n&U0aR|;F<7bGiFRzEi<=-4SgR<;cGE5S@Pbpb)A#b!`oLEvv0=#| zVy}=oIisAyJ6Y1ImAlmVpqZ*)S?VHaShZ$e8KRBSu^|%^N{%CNS=Kz&C)3D=)woOB zrfFb{SI&Ps?{fQ}uk;^(dwA>pnHJbXAuym@y|n#TcsgzYu)nJv0u-)Ock=gq7IiMPc$R?8L8Z{x2e7j$dj zFz>TFEoRAvT4J7ANsSxxu~3Ed*v^>|N*QrdqKA4Trh`)rPPk?Nfl!S=pXlqf$Xn{+ zL1aqQI9MCOyqIir=0yBcB3TH|Mq0RC~de!Z_j_ zS4MRV>XBriO$;nQ$JHTFB%&#z^xxMPN}nEom>_$(2Qx|V#`ea3_TMdHxSy3=sD=yK5Bbp2YojR*ACC7S<2)RTb|8j|kN;4L>lnkz@9 zT}-ypu%wWgppuJ4_XH&iI>rf@-;lU}YlXeVHN%p@P7llyuQIGj;VgDP1SGn%ptI>d zKuZFcOQDpzpdhFZu+sp17Wy@znA7*Xc3!eYR=)_Glah#Tt+t2P;<>~WW8B#Gb><45 zc@yj2&Ftdnojf1QZfV?VjyoNn5S3_rdI$7%$)Htclf$|!T`bx8qqst+D7o=-)Hxqr zb?oQTH+XGcPY&IpkPG-v3Z;vT1dK0eIbxWm;-b4AG;uruHzcN4N-jCez{&fumUd#D zO(7NvMT)%G*4hs%YRw*E!0{iy9j0-UhGjDKv%|5n)oK$iU8GsV8||WS<%Vw=rD{w} z%R8)|9wBX899vFlvkeTj)ef3r8t`_+LpG@z{=}ED)XWex8!PyWrRAO65a+`t%n=$5 zH9>7VX7#mGQCZ)D(RBQoU_s(L;K7s=m2Z9Y7zQZj^miGyO_0brdbk?ZB%)7D+HE4P z2@cNP`|LV5*D_=%`uwokWpo|*GKi*5H0(-ezvBO268=ADsX?SGY9KRQwmYWR!|~`F zN2-d$1huA^d8Qb-A|yqo4qgmGm(#;owY^3wttLT^_#fjiVe_WogxHBqGg>Enhil!P z#HgK^Fje~$3B2H_B3y(IjCM ziml!jO%1S0$T)0Do0MqWih3<3ry!_~Lj064b275?EHL!W0dW(n$-H?xNwlgpO}k_| z!N_^LkUH*dIH}Rlv`U6WB1i}=J^bK|*n{pUxq7YPi=$UUOnpD2r~y#BFqvGwWU8=} z?qaoecAUZjz_gE+J}j!vMu+>V+m2YEnm#o*frB_FyQxefWQqP|x^-$QXiEpflM5TC zJCEQfE~g(O!utX017Lk%?vS}VGa=83k`GN3&f(`#DvW;tuOl48RD=c>EF)(usio)) zLhiVfGm`-pV;<2I6r; zXFyoPx+9N{(8@>YaFz7$$i^zt7`&gi406HbBnWBkQ@4t4wObQpwPA)t(em3md^G9A z&#Fp)14y8kUI^IHdS-RY8z5(Ivl*mqr10>fSs70*mJ?fE31Bti&5V?}#pCJ@kGd$( z(_m_1lcq7rO8z_|hGuSdM<@5B6^S3b7&)XgPFTdJ_e||prZs@Rwe6rol`2<%7;A|I z7O_-DX;g7?N6@h%B`L?Qbj*1X;?7W zVMJ)OzoS+aA|ty`S(4cXZCWP#*3sEiZf3EYPbd~mQX_n$Li(zpIo2oR~-Fmoiy7q8@6+e#QnSmmRg}V(8A2qqPvEke3ocgrU_xC7Gh(qL> zF&!=pYj}EKde`m2r3RHDvf_15h64DZk)vv_`$Y79 zoccSTRm(JnYBo)doRs<%n$T|Vmo3y^J~DErdu5griv=a!I^pLkP6^Tp#Hd4bhibR( zv>-d>mnT9-IjOd|N+PDzVHW$CncK+eD?r8$(C5~yXj7d{a*O7Mq-}OR{H)5w=JrUb z`Usz!@rcr4IGf9DUOyJs*3;(of{b%t-K$!?Nazgj3B-+AwUne*G9R53%=1RT25jn%nH&ufF3qY+2w%CrMUt4&Z|&zY4Qi@q4rMLrBdzF(~+Tgcv z>Q8-OjANi^0Iw6<9%rl^n(;%vgGR}I8@U;Y5FwKxeF03NVtZy~Ctk>NGmA&>$M&ob zTJVNI@~`%wzv)0fXDgFHFrZ^IP*{WIOp7={M5c#MH-`6`bXq8*TxLlp77Vs^&;5I@ z`CZS31*@QmIU@PdF-KPI%kD24mndpX⪙ykgQVb-wNHDa+%rI9I2i*Q#hmr0c_;^ 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

I@k%}=F!@Es| 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

4NyPC_*7nG9-kBGsQc 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 z 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

wJ=rr1#v^7IM7>s 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 z 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�KS< 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 ?W-_J8qJ?SZDSMV)@Tg_0KQq+UZ+Xaj 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 z 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�mcA)A$V;Y$0x6+Ck^~~KR`R- zvUD|d1z-aL>{xP|uE2)LWWl zNE}5wyGa9FzI8%txpm&r0x#t@m1D5-*4>rGv3nJSD_|pL>Gx?7$%N2dkt3}?Drf;O z_i7_Nh^j0p9z^jg=@}(rXrYc<+I!1YmIG+3eBt2&aV`)WD0Ebk>X zWkVC1?&+D((cpU1leG4gf8XdDMfnINn#p8!S%!{N316yHX>qnET!I!SRxzEOq3_F$ z$?B$^&-4S@EzpH#RVXzfXgb2mh)QWHh?MUExtZn?DG))#jnIrkH`KKz24adlJ;fvq zF-wh5c0e`4a3%Ar3E9&h(Qh;_geB{;-g0x_YKbqQ!wUN@%mzpc{O4q#MRfB?opQZ# ztf{}gU?WisY9!s-Hg7@cd9QWh z!2^#IFK51SVwBx!R>FwO`PSxnIN%2pB-wg_=f`MAHZ8IajcjpMEamStC!?pFfXp&8 zjPE0ofsw{ESE079sMx}xN!Y85t3{x)S0!%^!hYb=ahADJConU8e&F#5)p%p7M0yRx zE#f3e4#vD3k>l#d7}m6Jkjm(mZWO_>uDM5aIZ66lZ}wwGU*K|IQIm(7_$Wo5J40r^ ztUo?_t9QwiHO(63I0WPV!S^}=y?a-Y0 z(du!{c_q9qM}9QCs5_j*^z^#soFfgu>hxKw4+9LR1JTyK=bd*_O=6o z*j6!GE5C#gSo4qs6BmHQC~)_R3P$<^&n7F~_6VJSh!oo)Z}z$68EC=??+=BHLL`3v=dW%g#%TqBTK~q+`vbEUx{+dp^Gt-V2<6q7+M%#`K0` z04x&(y0pO_h$z_}j&7g=?W8mfdT?%n5ZTFqUr=h8nz4`gAm8Ws2tITAE^oL^8`Fda z*^M8HX2-ScYFoiI^a<1Aqxu!oNv>AVisLX*H0G%QV)SO4vd4A9W5;G_Bwh8mvRW5JH zhzBj!ytUnvcCck0gWGa^B)K^;F}=Q!9nCH(n7>f$N4%wBI--!V=YEUl4c)Zz{SKGYPRY@#NeN zez)R?aYeNeSZy6j{~lApO_44!n~-xq3J%fi@ixlaL<^xMkfqqXkasALvamYIY(z7e z%o46}pfft8#c+%KK;I-0V?(0*1a>5O&_@m_G+z$*sTK0HxquRrV)p+0CUwYxMzSZY zKq?D0XlI;uiM@qEis88}q4Z%e$KB`-7fr=%X~SO_@kL=xN5V4bZjcrb2q#pZL#ffr ztQ}XOBJ9=d=-vQ_^@BaT6*_u3D&lQ6HdPw5wQxd#`On>itM zZ#)~&UuB_njg2sqQ$&a*41tuy0#>KJ8q+y!!<2H&Dfn2@tf zL!kP-GOfar1fwGWrt;;PRNcx{FbyOnQ=PMs__86KI*t9YlHs~=fi4cvbA=>np?hFyO423=^LK$@njnS) z?t+Y(X`d4RKOGMX6&w>Wuhu~}O*oK^Cd4Lp4 z4c=<8s#i{Rh9nEn*1%(NZ^K|~Q7eVTCi+2tT2w_EG+yb$b#WBfba z$;c+~FhV*J_d82Nfi&jTw03=7(Mav;KBXA;ye@{|V;nB?v|!nri=pR>qXA;LEHc)iE*ER!`bRwB7bEjzG*3<`gD#Al2~QBju^ueB9&micwG)6Nan1#+Q6%?e8@1i-_(cDJf0qz>NlPA)o? zvwPKRj=TvlDzdSJ4I0y>$pLcaJJw5&G3lW(m}B>|NqgKKAvQ;d{$Y@ctA;|ca0E?` zSb|Y3h$ZY;DpHsykH%0zr`NrRG-=e&6VpdSL>duk>l#XWwlS0_mjHH9BT57pm9#pT z)HZaC0VIwc!(&k4Ff^x$SO(Q;P88hBy=4M#GW(iGBvnUgFvr#f$7!|_qD4!W`oS@FkJN#qc1Au4hp zPwBfAgbt8gieNUBXmqNPb(T*ij$QLSJJOz(Z3-}-y$2hop1TCF+FfOwR3sWl&weuo zI)ZhGd9beQj^F}E`43Q*d4-{|*4$V#Gr4U3?^PXq2~(ti^+$U%;Px$DcHN6 zU6a5LWTJHTcIu6|xnb;vXnqrVqk7WSUn-&K9Vkt`AY+2w zacU=j}VT9RH5AFH1d-`YQtBhL;~ifF~y* zz&0~YB2(H6K8-*+HGWY;pQ`&zs$9HyD}C&zyNAMz9?z~HwI*caE z{bc8II^)q3aU!V&CdN|hf}$8*M1jZ1l@J^%1p3TO!M-`=Ore|Slr} z?-ubfV&16INW~Z;tBs|)OXyr?0YVVNQ`Sb%!W7lKN1&D-$M&Nonea9-4_qLCiyuRU zfZ2Y{VK|M&H{i~4rIOhji$2LEV%YBRek{VOBE<2omC9Z2In+o&UcyQ#Xc>jn1y(P0 zqCkmfMt{~&H2qmeQro(+RN&uY*f_A?RhOaH-G0xP+D= zupX)>=;YJU`E>`1rj%*3-bMw*od7jbdo0jWKuSu>eoS3d<#E(|GvYA5v0sS^zF^n# zW`L&6hVz&UtvTr`&~oUNs}`OsrauODA-S*K=t5Nk*|3{U>hJYjBsE&Kf$-EOIo{k? zT-hvzEk^~Od3nd2e|B<*xe4qSjs#WsgJ?!RX$Ez4PoermG#V|ihiHRH2#YDGaRdb+E-;EnQhCzfWBd&)Xu9%(Oc z3(@S?@bsYESjydndr`14mL`)qnt0UTyv;Ox*1l!ON{;fM9^BHA0$6#2}%)!w;iaYuY<_ zcdo`dwXE?1EJ9Y~Xp|FDeFn4hxnl@QpXS5~LB_IXo-@IL1Yy4zQ+9chhv+ILMIL zWjFn^VNb|q(RH+FVMLrN5SWN65v9l7q(f4M$LBd;T{XvuIJw^(A(vzE%iKgnU`8Lc z>&I8os1S52{6|O*GrYpW=&-NO_w2A>S@d=edBmQapI!|a^au1Dq6>?#BR@;3 zap*Z~d@X`KH7jb_M=K4hmFYl{aPr?Dx4MJ3DY((>(ep7|&*!He&BchDaCbn<91m~I z{f&q8ijPW`XCZIp8yE|!+%se%z2ws*Mr+G@1jbT49UtQsIur%*jC8|#jrXCX2W%w=d7y`1|!tF@YbO4ZtU-YL!X z0U4u_TEnrySQm>DBZe`hY@g35h)&+XK?XO{ID6KbJfno4{!HSk=+MS;fvMD7BMp~I zNlEscY*X6SaTg4fR*!heB~?nnE{ZIQT*J?|M9)l}myC5Dnn+Zn70^VubEpcRMJQsl zIoIdT`@mWt#=0amLxe1kV-SvMwK>UmmgATxAOd4vCke_Y8P>p3zuC5?tM}#?Btxh^ zJ_b}Ud1kZ(QXfH(3iU#gD5^&!1=EP>K{FIP0a${m-JkWQ-9BZ;a#X_=&A&PzbK4bc zNI}!0mBPvd))#`BP*DYe_@rFWUT)oy9I2(Cf^bvZmCQsc5Y(~`bYhfC7L763px4H) zl$^-E+&S@-=**(GfV#6d=*4;aBJw#H@x7!@6b27V)nb1lKqFPZ*I6#|Xo>J&_V}2K zJ=s^HyJ;5F+j$#0%3VoRIf^6TP~K_RX2my&CE%#z$^3A50UpFQ$GEbFbrj8{v)tXv zIw`09A)Z^{b0+BR&e#KvW(hu*YvCDkyt8do#rJE|#=sv4Lk4N|M5$i7jl@GN%~ls1 zojpr|3-InD5!5K*j*fIE{X`>cpxmuV>vC~y%|i4Hgq4t>M0a<#_*L{ZD7#jpGPO{c z7Agj1LCzY5!-_U9n1)hwby; z42q6#>eJ;O5qKf+y9Ou22Y$U^5oKZSY;l-KwF*ssq9`j>E7jCp&OXRB^C)U)Otej6 zs@$dN5=^F*b#zpHdX%;%RO14`y-XuV_KgsdC85Q%lP4w*$^+DcD+eUI@i~jA!&n)d z8n;I^w0J^Eku0-6BXJ8b?rXpbrv9XvQ3pM z>(a!z%h>fXo}nJ{F@iu4@ra;VjOZqK0aq;~r3Hut#@i6#A|?%jv()aYc(juhM=o7L>qn9-JHWW;n$|^ZcP&~yMdEC004qm`v$@3| z4%umS2k2mD*iTz+D)tvne$r>>%eq^nq7tFEl3ux%E^d&rrAlSd9alurAgI=+0LJto zqudblmCSjEs;2$$LVfFGo0PXnJp@7uE!1m|SGeu|#vhG&k6^JCj zz$OS+9?~3ml$Dh;2N-k@^4G5>$MFmGOM`mY(k@SCQ`AtR#G5aCbGOLWON#Q5T12ts zEhOdc)XBYdCu!ZWih{K6;D$N~A$h@!((Xp%b2d*k%OJFck3myCgk!K4gk3@N3i{fh zV^mRoiC8M78Ye(UMP%&O6D4Ih8-r?Gn2YOf%#`ki=OFDWW?kmWWfcJ$P$V9jUOs%5 zwVyv~ji1{#touNw6a&zU>j4ptZ?c63P&F$pAEbR$)3hWRCkmy)TAh{R?$jBjeA#vE z<7%~qiYJy}XU5Fu)){EjwHmc*5Je)>{!OrF6cXicN&uoj95&N8fS65*Zd3|`%P}=1 z&t-8R*a0M}_Ze_IpkEtL{1(1jaYBb>oWQM8Zwa_KBh zLU@o0IMqM-az=@Qj7esp=Zme>BEztgksTfO=E3$>$zsyUHsr#CS+958nm#MPCsaUg zyKXtmrq+1ex`Ef?Dn$XLi|Mo1UORl}or8OgG})+a?2#(tr*2NFCXS1QBLZIw0<%ft z8Ng`GON&N#65#g4$rF_$;rt*sDV6a-xY|T=m*onGp&dpUcC|mJiK}`W zGJcum(}!A%eF}Jh6UyiWH8?2jF(QAOc|JS5PN{Xbs9Y zF9sS+7$I*b>kbif@qe5>34ZH+`N&);74cqTyOKLysbc;nc6Sv}l5oSf`sdH(eCqD^Y zaW@RJVrU#*Aw0I|XjKm^zmY3r!R|&M$u!O9OtOh5on$sbh1lX&slRtK%?@Z|-$&xFaU5|}9Fz*4l955VFG_Yqv#;|c5FAyV%98dC z6PdG1Il3;T;0poM@$HF z0tmq^pr8k|{>l{~z@f=^WyvU7p~UhwKw;_4I+?-LNH(7VWHz3($1YC7sE1aQIz&yi zA)zPW>T`V9A(42}9OHi8^tWu=Kn?g(CJOxZDvRG#LE)K?cUO9tL8{~W2*;~$yqe;@VogG&{es+6i{`!Rl0_|)S^Q+ zKkk=veq1VZV^un{VPl`F2}_lXGs@N-VK1orgM7mXN<-PGCQzhPKjW>Ld3N{wV%j}dDZsAm{rtkm>`~o%O!Xk>*$cGSveC11ILkiCiqeu;KY+$U(3**} zU&OSupdT+T?4QEKQFV>O5oARe;ysh>9eblxW+wpAI;GL+a5IVwkgz@`F_CFo2=m+I zuOz$=@&PSYUXT^mP^1yHbcrw~NWTWFS$2j3R3mcmx;2v`ZC=mb#z)nAO!7@C3cIFizX)KG;lBnYMun zgE)@cZ6kxPG-HauoGFS7)j?E8q^suiG6|oL1-&&ddIr~YgK7@odQeEF?PqwI31DDw zk{Vo+fHfw3>(wiiT-EDTEW`r2Yeu7o`H)K39b68dla5bZfP=velZc*hkhvoPR(5bQ zdA&UwT!M`Fj91HFN9I2Sk4lvz-pVk`k^=*r>uOxcbCcQApV~N~xLwf^Lg=gcU zadbk|#k|%ibrvX=iF#M`xSSXks}KeXoUEyM#o#g`Zh5(N>R>Lnj#LEX&ALWN;-s8u zz@1%?aK1hoQM^Y~F_%egWJp?l#VN`_H}>A%Y_y+pC18#YKuMgdlrC4puv$HkEeEW2 z!iW0?)rWh;`+lG70l^Pld^0zKjLnqPaugL9uu(nl*t9IdyvTu}gW<=IuT|)fHV^r~ zz%6lc!%b!=GegPaJuXDVoCRC9x~*B_1^;1j80IAlvo>Ail6?PmbjVe-)y>rlL}1Z! z6R>HCo4upNf|it-QX+9!u(^6SCWsbnW;LzoK&I8YUJa0lrH=^@<(lMS6>Ok@&vp;o zinfjDTA9*Ds*JlA+{Q@@t&xTxaMR8Su~}pl`WsC?cUGP74a$Vn`mlP}bj zC{5ogDc@sIEDbuaK0h1W60FZzT>Aq=a0;zotik}8h1O=RQnM=)4`1rwfqD;}&f(}V z?Z~{I(DaFiw0Qf)8F&kDtFA|+0>O1wZX1OB%oELT2R>C2C<05W+%lXngrUx3muGz6YCMtM6njwwIFZOAK`_c>39&Sc& zU-ZtS?8XiwJU2laZ^b6K4oP8%Ny9gxJ@ENZ&yo$aa0W{{gjm>2ty+Ii+GvIV&0V)g zY$Jf~pv)38z$Dy!sitBLl=>x15g-Ql7e;S{4&Ql2_vDp0aHY)q99139n3rVF#IAaw zRc1ljms#D~Lh)~_`q`}Ui&HJQt_8A}EFvB?KjD^gc~n>&fi=1oZ)RN&jj^Xo6V|by zVy{Kx>!JJ-6{yB}k$+a`vm)5GI(EbI)S|_=F4Ifz;`xh+W9$hjNcp`N9*50xC7^gh zwiM>JQT^O5<@_MKaKA(3^>WegPdy&90_ zLM2-girmI8rZ_2=26PaTwVg}4J>6xw@@OT$WWP-@6>um@uJ%JJIskSWi^Q01hR|pr zDC;X?K6^G&w?sNMy|}(kQ3_%*L>8Iu^d`OB45v>ddC3yHMw66Vb%wUFz~?sY4sOK! z+!18C7^Md~pJyl@ zh2Jb6+_njKw9Y-3oeF)C5OON*8gcf<{4i*mcy440<%~dGHI!1r>}*ELyFn}vu)T97 z5he-4@25jX-}}c}+}xd)p&!73qkvZ!WGSx9E&=xyGudH}wrL_6il?XU3b=#X0*iuQ z*GLDazN>J$Q|I~9y`bxCAGanG$D}W8QE(PLfrc(~Zza#dIz%Vq)Lg~6;M%P2Fs#Vd zCKFXa3P^b`r%Az{MckpaXGsUeZjVEY?OD#+j-`T3y<%rluHy+38ZWgsfw>t&_X>|9 zunmINMpp*96SwS1elvzT(D?~m*&WyR96^}!0I&cnmAn;D*ivn>0$i&5^ zppl*f{`(i_g>fEQh$JH^K!oObIyil|916rOSX;MXV4SdN$OxVhPIGH94&&_QFX7~& zG{b959+xr6M0#USm0Mr5xWJ?Bk7!q{!A3DSwh_L`z88Oj7}FOw(Ojg0+CzE0AEOj; z3m#Z!5<0mHX!?;w#0om51(5*}oUBB`#nZxl8c(84T1Jx08OB$c&6GW-c}vaSTIN>d zz@fLJNbu<561vDzlpUw>Htj5}L-m5Vq_$+UNri&C9Vo+Q3f%F&V<1Mm?~vw8D(}N# zx!!gS0 z%~LW%3&$z4%c)`kejnv-I!CbH6zHc``$h}M+T^Jrc9+M<7hPgU?7yw|hFv7^@=n-D zPz^kfzYdMQcx+m4>;w639iiQ#HOxNB7+CR9#Rfds*4AZ8P~P5=G%GWeDrw^sHG+{tTT=9%K053T2N}nD(hRkB zl2gA9HQUNP3W5iNnaGl3NHx$ywngr|041C$wFpj=V(cY|HBvzs+etjLgJ+(z$9c(0 z4kkh1QZG#o@s!FCx^!SqGPN`{>H+T*h`Y@LImkOgL$OcLJ(pqAJrFS<0iO(~CA&-- zwZ0W-{YHkcSM*jv1-Ik6NVDG>Tv2|^CIWo=Q0qqJpT~o!%S5|rEc=wI9xV9sm1|gBMx|~F(+ycESL?1YTt6osr z9(=aUJgS$M1##YIx7$6y&f6B^{~fp)omoxGlHoKkzRy+iSnpRPMdQKQ#LVNB_d*U< zFJ`TP*n5dcGS>f0L?Ab_U^MP|>t$aKVu)=lnf?Kn5| zL}*t}N9WfQ%SExAJIO<{$Vra5W?Oo9h=*wJZV?QtGSqrQO8R=PN`p$KIrQX(OV}xG z-Ht4_4<=iP#62CpkzJqg_O3|VdtGeUjN4tzD4Tq%{h?WR3_3*ODP!151^xk&H*;g8GQgsEJAG!u`B!~$*!4tB# zh{bg=$U1B5QY7r${VRZKl3hk;2#8LBL-t$a8-e37wO6)(L7-s!2imApi&hEPd1$ZZ z*=U%2+__vTET7_PGx%ZQc34!8XZ4ZV{+={vYE_X*7b!Fg}{e zKCZYM9+uE>B3{BEihnKqQ!zMFZ-LEvqzHN^aMW^HZ8K^u#D|XNq?}o-6$rPM-EzV&#C{c4(lP-C+Ad{pkuaoU=`kJu|#i5>@pHu3<9%H)B+>cjawQ|WB0~WH3R^CI- zk8?D3iL3x2ark^TlG-8zfVW0eBq_FdEV%6YQET#?Dpu^IX9WJ{r!tc_Na;itFo)aJ z5o}*>KcOCuI2w!Iur+GX=iab*GNFaDBH2>sbYsE{uX3;DZj*(bmo`lkYG>1dncaoz zHrU)=X=`@fc(Zxr?J>d9E5k1&7MQVLSS5$MsXGYKfY`v~n`htwE@$P$oyLIWAVW_c zI9_7H=b>gYU4tDE(9FsG;QL!Q9StO5Qpa#G8N#W_da0+8k)iJ4jdK`%W*4++J8S)J zr`}h>2mB8wSWiS2NBzaobliv*y;))%=`$iZuYGTQSUSrHN3(It4&%n}C)EkcQXN0L znRMGA(+Gc|SQT+m!c&OoNIAA!X7e*HFf9M78n4Kkg9sB#iI%3i?zknz1>D!(g=^)%`Y(-q+`qS8<9Uy1?r2AEXSZE~T*BUb!-^S=mv638E=s~>qBJE*ueYvLP%82F}%r#US15bw)fG%_xWN8YLyk)$OM5h3LQN6Caz9ALBv z$?8~6JP^@Hu`;d-LL|Zp2S%E#-{YV=JOQh!h*3IKIT@)bCyvA?;@BDlxdn@QH9Z+= zT)JK>MFcOz;G--^XjmmF#*WDJB77w2TImR%J&PtjZH>EB0%r2o6oplIbLRy%0t+v_ z?2e}>q#P`=lWF!LggUs%Sdui&26P)LY4^@#OfH4AJ7IQE<20=UW0SOWXLSTwOqb=i zM(7eoD52u=rdSIO@yfsl2nWoSf$>#jl`LbC70ZmsOOsO_a7A~5oI{~Y-Epd_BgR@d zJ7=@=Pk42lK)CeOh;U1`)qKy-z`VavG7@N{iW* zTFB|9^&62YCPEusXftVz1WuTwP`Y`Pp`1A$5kg%Z$3{7cEr=NmZ%^ugYVUP8iYPCB7eAcDfV>osQA=g61`Egym`Sa*QNk|`Jjjh&j10QzC zw}&#yK$-0(wUgJtIIv+66phftoDcMsv1sZQ1H8EOXq?cRq?yO$~soc^sH61`xA+GyNCP$@-V5(>w&Wh|AT6=z$ zeHe-28!WI??KiGBN(%FmD@wAB*?hA(hDbO-ve|(f472kxGa^Aqs~TgN3>iIdDT|0A+uk*VveQ!ibz z%AA2`3-!6Y&@!L42IKe17#JzlnT(xUl)Vf#@Vdf z>wIaqQ`w-us9t7eqjNLB{p52xmTyqbYJ$*6?~fGUjgjAW+~T*lzW)p z=|1#y+>%?`>UZ1th3}4XFqMt=5H8%ov~njuAHZFH4gUWOz1yDtVm|-P;3;&j`|~^S z$7kVxbN#9QVm@DWPsZ<`8T_5#Z}=e|5d5{KAirmPWwM{A$KyL|H-eH`+Z4 z<*t>=SK$}xQ**zMUdnIg^PR7h8<^*t>&^TBLB0N--tdz@MZHm}n9q+o?Wb$P>%S4l z=n2$5`uY05C)bObDjKhutXgtMr} z&GjGs61o1PUn19=^Y~`?$NX(Re+kFv5$5`j>GdDe>o-4vFP)!Po!|LaTugJ{T>t*h z%k$s=d3pY(4vbkJ=DB7beH7Qa&#(M~TwnPGx&D(uhnefm=V#+$@A^;b^`DgM8^QIj za-;KqJ|7p;y-fSx{bjkn@yl}kUNC{f>%TysznR~Xe>2zrJHc^kEB&~iX70*2^6#}i z|CJw>zkeG(o@!g^h>>5^JkxeMZhpT0`@evH{hA*&Pm*u^zbX})?Xl~B?SK5Q^98>x KxFGnm^8W!c1F*yZ literal 0 HcmV?d00001 diff --git a/tools/asmpreproc/asm-processor.py b/tools/asmpreproc/asm-processor.py new file mode 100644 index 0000000..cbfd6b8 --- /dev/null +++ b/tools/asmpreproc/asm-processor.py @@ -0,0 +1,806 @@ +#!/usr/bin/env python3 +import argparse +import tempfile +import struct +import copy +import sys +import re +import os + +EI_NIDENT = 16 +EI_CLASS = 4 +EI_DATA = 5 +EI_VERSION = 6 +EI_OSABI = 7 +EI_ABIVERSION = 8 +STN_UNDEF = 0 + +SHN_UNDEF = 0 +SHN_ABS = 0xfff1 +SHN_COMMON = 0xfff2 +SHN_XINDEX = 0xffff +SHN_LORESERVE = 0xff00 + +STT_NOTYPE = 0 +STT_OBJECT = 1 +STT_FUNC = 2 +STT_SECTION = 3 +STT_FILE = 4 +STT_COMMON = 5 +STT_TLS = 6 + +STB_LOCAL = 0 +STB_GLOBAL = 1 +STB_WEAK = 2 + +STV_DEFAULT = 0 +STV_INTERNAL = 1 +STV_HIDDEN = 2 +STV_PROTECTED = 3 + +SHT_NULL = 0 +SHT_PROGBITS = 1 +SHT_SYMTAB = 2 +SHT_STRTAB = 3 +SHT_RELA = 4 +SHT_HASH = 5 +SHT_DYNAMIC = 6 +SHT_NOTE = 7 +SHT_NOBITS = 8 +SHT_REL = 9 +SHT_SHLIB = 10 +SHT_DYNSYM = 11 +SHT_INIT_ARRAY = 14 +SHT_FINI_ARRAY = 15 +SHT_PREINIT_ARRAY = 16 +SHT_GROUP = 17 +SHT_SYMTAB_SHNDX = 18 +SHT_MIPS_GPTAB = 0x70000003 +SHT_MIPS_DEBUG = 0x70000005 +SHT_MIPS_REGINFO = 0x70000006 +SHT_MIPS_OPTIONS = 0x7000000d + +SHF_WRITE = 0x1 +SHF_ALLOC = 0x2 +SHF_EXECINSTR = 0x4 +SHF_MERGE = 0x10 +SHF_STRINGS = 0x20 +SHF_INFO_LINK = 0x40 +SHF_LINK_ORDER = 0x80 +SHF_OS_NONCONFORMING = 0x100 +SHF_GROUP = 0x200 +SHF_TLS = 0x400 + +R_MIPS_32 = 2 +R_MIPS_26 = 4 +R_MIPS_HI16 = 5 +R_MIPS_LO16 = 6 + + +class ElfHeader: + """ + typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; + } Elf32_Ehdr; + """ + + def __init__(self, data): + self.e_ident = data[:EI_NIDENT] + self.e_type, self.e_machine, self.e_version, self.e_entry, self.e_phoff, self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx = struct.unpack('>HHIIIIIHHHHHH', data[EI_NIDENT:]) + assert self.e_ident[EI_CLASS] == 1 # 32-bit + assert self.e_ident[EI_DATA] == 2 # big-endian + assert self.e_type == 1 # relocatable + assert self.e_machine == 8 # MIPS I Architecture + assert self.e_phoff == 0 # no program header + assert self.e_shoff != 0 # section header + assert self.e_shstrndx != SHN_UNDEF + + def to_bin(self): + return self.e_ident + struct.pack('>HHIIIIIHHHHHH', self.e_type, + self.e_machine, self.e_version, self.e_entry, self.e_phoff, + self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, + self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx) + + +class Symbol: + """ + typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; + } Elf32_Sym; + """ + + def __init__(self, data, strtab): + self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx = struct.unpack('>IIIBBH', data) + assert self.st_shndx != SHN_XINDEX, "too many sections (SHN_XINDEX not supported)" + self.bind = st_info >> 4 + self.type = st_info & 15 + self.name = strtab.lookup_str(self.st_name) + self.visibility = self.st_other & 3 + + def to_bin(self): + st_info = (self.bind << 4) | self.type + return struct.pack('>IIIBBH', self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx) + + +class Relocation: + def __init__(self, data, sh_type): + self.sh_type = sh_type + if sh_type == SHT_REL: + self.r_offset, self.r_info = struct.unpack('>II', data) + else: + self.r_offset, self.r_info, self.r_addend = struct.unpack('>III', data) + self.sym_index = self.r_info >> 8 + self.rel_type = self.r_info & 0xff + + def to_bin(self): + self.r_info = (self.sym_index << 8) | self.rel_type + if self.sh_type == SHT_REL: + return struct.pack('>II', self.r_offset, self.r_info) + else: + return struct.pack('>III', self.r_offset, self.r_info, self.r_addend) + + +class Section: + """ + typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; + } Elf32_Shdr; + """ + + def __init__(self, header, data, index): + self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize = struct.unpack('>IIIIIIIIII', header) + assert not self.sh_flags & SHF_LINK_ORDER + if self.sh_entsize != 0: + assert self.sh_size % self.sh_entsize == 0 + if self.sh_type == SHT_NOBITS: + self.data = '' + else: + self.data = data[self.sh_offset:self.sh_offset + self.sh_size] + self.index = index + self.relocated_by = [] + + @staticmethod + def from_parts(sh_name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data, index): + header = struct.pack('>IIIIIIIIII', sh_name, sh_type, sh_flags, 0, 0, len(data), sh_link, sh_info, sh_addralign, sh_entsize) + return Section(header, data, index) + + def lookup_str(self, index): + assert self.sh_type == SHT_STRTAB + to = self.data.find(b'\0', index) + assert to != -1 + return self.data[index:to].decode('utf-8') + + def add_str(self, string): + assert self.sh_type == SHT_STRTAB + ret = len(self.data) + self.data += bytes(string, 'utf-8') + b'\0' + return ret + + def is_rel(self): + return self.sh_type == SHT_REL or self.sh_type == SHT_RELA + + def header_to_bin(self): + if self.sh_type != SHT_NOBITS: + self.sh_size = len(self.data) + return struct.pack('>IIIIIIIIII', self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize) + + def late_init(self, sections): + if self.sh_type == SHT_SYMTAB: + self.init_symbols(sections) + elif self.is_rel(): + self.rel_target = sections[self.sh_info] + self.rel_target.relocated_by.append(self) + self.init_relocs() + + def find_symbol(self, name): + assert self.sh_type == SHT_SYMTAB + for s in self.symbol_entries: + if s.name == name: + return (s.st_shndx, s.st_value) + return None + + def init_symbols(self, sections): + assert self.sh_type == SHT_SYMTAB + assert self.sh_entsize == 16 + self.strtab = sections[self.sh_link] + entries = [] + for i in range(0, self.sh_size, self.sh_entsize): + entries.append(Symbol(self.data[i:i+self.sh_entsize], self.strtab)) + self.symbol_entries = entries + + def init_relocs(self): + assert self.is_rel() + entries = [] + for i in range(0, self.sh_size, self.sh_entsize): + entries.append(Relocation(self.data[i:i+self.sh_entsize], self.sh_type)) + self.relocations = entries + + def local_symbols(self): + assert self.sh_type == SHT_SYMTAB + return self.symbol_entries[:self.sh_info] + + def global_symbols(self): + assert self.sh_type == SHT_SYMTAB + return self.symbol_entries[self.sh_info:] + + +class ElfFile: + def __init__(self, data): + self.data = data + assert data[:4] == b'\x7fELF', "not an ELF file" + + self.elf_header = ElfHeader(data[0:52]) + + offset, size = self.elf_header.e_shoff, self.elf_header.e_shentsize + null_section = Section(data[offset:offset + size], data, 0) + num_sections = self.elf_header.e_shnum or null_section.sh_size + + self.sections = [null_section] + for i in range(1, num_sections): + ind = offset + i * size + self.sections.append(Section(data[ind:ind + size], data, i)) + + symtab = None + for s in self.sections: + if s.sh_type == SHT_SYMTAB: + assert not symtab + symtab = s + assert symtab is not None + self.symtab = symtab + + shstr = self.sections[self.elf_header.e_shstrndx] + for s in self.sections: + s.name = shstr.lookup_str(s.sh_name) + s.late_init(self.sections) + + def find_section(self, name): + for s in self.sections: + if s.name == name: + return s + return None + + def add_section(self, name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data): + shstr = self.sections[self.elf_header.e_shstrndx] + sh_name = shstr.add_str(name) + s = Section.from_parts(sh_name=sh_name, sh_type=sh_type, + sh_flags=sh_flags, sh_link=sh_link, sh_info=sh_info, + sh_addralign=sh_addralign, sh_entsize=sh_entsize, data=data, + index=len(self.sections)) + self.sections.append(s) + s.name = name + s.late_init(self.sections) + return s + + def drop_irrelevant_sections(self): + # We can only drop sections at the end, since otherwise section + # references might be wrong. Luckily, these sections typically are. + while self.sections[-1].sh_type in [SHT_MIPS_DEBUG, SHT_MIPS_GPTAB]: + self.sections.pop() + + def write(self, filename): + outfile = open(filename, 'wb') + outidx = 0 + def write_out(data): + nonlocal outidx + outfile.write(data) + outidx += len(data) + def pad_out(align): + if align and outidx % align: + write_out(b'\0' * (align - outidx % align)) + + self.elf_header.e_shnum = len(self.sections) + write_out(self.elf_header.to_bin()) + + for s in self.sections: + if s.sh_type != SHT_NOBITS and s.sh_type != SHT_NULL: + pad_out(s.sh_addralign) + s.sh_offset = outidx + write_out(s.data) + + pad_out(4) + self.elf_header.e_shoff = outidx + for s in self.sections: + write_out(s.header_to_bin()) + + outfile.seek(0) + outfile.write(self.elf_header.to_bin()) + outfile.close() + + +def is_temp_name(name): + return name.startswith('_asmpp_') + +def parse_source(f, print_source, optimized, framepointer): + if optimized: + if framepointer: + min_instr_count = 6 + skip_instr_count = 5 + else: + min_instr_count = 2 + skip_instr_count = 1 + else: + if framepointer: + min_instr_count = 7 + skip_instr_count = 7 + else: + min_instr_count = 4 + skip_instr_count = 4 + MAX_FN_SIZE = 100 + SECTIONS = ['.data', '.text', '.rodata', '.late_rodata', '.bss'] + + in_asm = False + fn_section_sizes = None + fn_ins_inds = None + asm_conts = [] + late_rodata_asm_conts = None + first_fn_name = None + cur_section = None + start_index = None + asm_functions = [] + output_lines = [] + + # A value that hopefully never appears as a 32-bit rodata constant (or we + # miscompile late rodata). Increases by 1 in each step. + cur_late_rodata_hex = 0xE0123456 + + namectr = 0 + def make_name(cat): + nonlocal namectr + namectr += 1 + return '_asmpp_{}{}'.format(cat, namectr) + + for raw_line in f: + raw_line = raw_line.rstrip() + line = raw_line.lstrip() + output_line = '' + + def add_sized(size): + if cur_section in ['.text', '.late_rodata']: + assert size % 4 == 0, "size must be a multiple of 4 on line: " + raw_line + assert size >= 0 + fn_section_sizes[cur_section] += size + if cur_section == '.text': + assert first_fn_name is not None, ".text block without an initial glabel" + fn_ins_inds.append((len(output_lines), size // 4)) + + if in_asm: + if line.startswith(')'): + in_asm = False + late_rodata = [] + late_rodata_fn_output = [] + if fn_section_sizes['.late_rodata'] > 0: + # Generate late rodata by emitting unique float constants. + # This requires 3 instructions for each 4 bytes of rodata. + # Doubles would increase 4 to 8, but unfortunately we know + # too little about alignment to be able to use them. + size = fn_section_sizes['.late_rodata'] // 4 + for i in range(0, size*3, 3): + if (cur_late_rodata_hex & 0xffff) == 0: + # Avoid lui + cur_late_rodata_hex += 1 + dummy_bytes = struct.pack('>I', cur_late_rodata_hex) + cur_late_rodata_hex += 1 + late_rodata.append(dummy_bytes) + fval, = struct.unpack('>f', dummy_bytes) + late_rodata_fn_output.append('*(volatile float*)0 = {}f;'.format(fval)) + late_rodata_fn_output.append('') + late_rodata_fn_output.append('') + temp_fn_name = None + if fn_section_sizes['.text'] > 0 or late_rodata_fn_output: + temp_fn_name = make_name('func') + output_lines[start_index] = 'void {}(void) {{'.format(temp_fn_name) + instr_count = fn_section_sizes['.text'] // 4 + assert instr_count >= min_instr_count, "too short .text block" + available_instr_count = 0 + tot_emitted = 0 + tot_skipped = 0 + fn_emitted = 0 + fn_skipped = 0 + rodata_stack = late_rodata_fn_output[::-1] + for (line, count) in fn_ins_inds: + for _ in range(count): + if (fn_emitted > MAX_FN_SIZE and instr_count - tot_emitted > min_instr_count and + (not rodata_stack or rodata_stack[-1])): + # Don't let functions become too large. When a function reaches 284 + # instructions, and -O2 -framepointer flags are passed, the IRIX + # compiler decides it is a great idea to start optimizing more. + fn_emitted = 0 + fn_skipped = 0 + output_lines[line] += ' }} void {}(void) {{ '.format(make_name('large_func')) + if fn_skipped < skip_instr_count: + fn_skipped += 1 + tot_skipped += 1 + elif rodata_stack: + output_lines[line] += rodata_stack.pop() + else: + available_instr_count += 1 + output_lines[line] += '*(volatile int*)0 = 0;' + tot_emitted += 1 + fn_emitted += 1 + if rodata_stack: + size = len(late_rodata_fn_output) // 3 + available = instr_count - tot_skipped + print("late rodata to text ratio is too high: {} / {} must be <= 1/3" + .format(size, available), file=sys.stderr) + exit(1) + output_line = '}' + rodata_name = None + if fn_section_sizes['.rodata'] > 0: + rodata_name = make_name('rodata') + output_line += ' const char {}[{}] = {{1}};'.format(rodata_name, fn_section_sizes['.rodata']) + data_name = None + if fn_section_sizes['.data'] > 0: + data_name = make_name('data') + output_line += ' char {}[{}] = {{1}};'.format(data_name, fn_section_sizes['.data']) + bss_name = None + if fn_section_sizes['.bss'] > 0: + bss_name = make_name('bss') + output_line += ' char {}[{}];'.format(bss_name, fn_section_sizes['.bss']) + asm_functions.append((first_fn_name, asm_conts, late_rodata, late_rodata_asm_conts, { + '.text': (temp_fn_name, fn_section_sizes['.text']), + '.data': (data_name, fn_section_sizes['.data']), + '.rodata': (rodata_name, fn_section_sizes['.rodata']), + '.bss': (bss_name, fn_section_sizes['.bss']), + })) + else: + line = re.sub(r'/\*.*?\*/', '', line) + line = re.sub(r'#.*', '', line) + line = line.strip() + changed_section = False + if line.startswith('glabel ') and first_fn_name is None and cur_section == '.text': + first_fn_name = line.split()[1] + if not line: + pass # empty line + elif line.startswith('glabel ') or (' ' not in line and line.endswith(':')): + pass # label + elif line.startswith('.section') or line in ['.text', '.data', '.rdata', '.rodata', '.bss', '.late_rodata']: + # section change + cur_section = '.rodata' if line == '.rdata' else line.split(',')[0].split()[-1] + changed_section = True + assert cur_section in SECTIONS, "unrecognized .section directive" + elif line.startswith('.incbin'): + add_sized(int(line.split(',')[-1].strip(), 0)) + elif line.startswith('.word') or line.startswith('.float'): + add_sized(4 * len(line.split(','))) + elif line.startswith('.double'): + add_sized(8 * len(line.split(','))) + elif line.startswith('.space'): + add_sized(int(line.split()[1], 0)) + elif line.startswith('.'): + # .macro, .ascii, .asciiz, .balign, .align, ... + assert False, 'not supported yet: ' + line + else: + # Unfortunately, macros are hard to support for .rodata -- + # we don't know how how space they will expand to before + # running the assembler, but we need that information to + # construct the C code. So if we need that we'll either + # need to run the assembler twice (at least in some rare + # cases), or change how this program is invoked. + # Similarly, we can't currently deal with pseudo-instructions + # that expand to several real instructions. + assert cur_section == '.text', "instruction or macro call in non-.text section? not supported: " + line + add_sized(4) + if cur_section == '.late_rodata': + if not changed_section: + late_rodata_asm_conts.append(line) + else: + asm_conts.append(line) + else: + if line.startswith('GLOBAL_ASM('): + in_asm = True + cur_section = '.text' + asm_conts = [] + late_rodata_asm_conts = [] + start_index = len(output_lines) + first_fn_name = None + fn_section_sizes = { + '.text': 0, + '.data': 0, + '.bss': 0, + '.rodata': 0, + '.late_rodata': 0, + } + fn_ins_inds = [] + else: + output_line = raw_line + + # Print exactly one output line per source line, to make compiler + # errors have correct line numbers. + output_lines.append(output_line) + + if print_source: + for line in output_lines: + print(line) + + return asm_functions + +def fixup_objfile(objfile_name, functions, asm_prelude, assembler): + SECTIONS = ['.data', '.text', '.rodata', '.bss'] + + with open(objfile_name, 'rb') as f: + objfile = ElfFile(f.read()) + + prev_locs = { + '.text': 0, + '.data': 0, + '.rodata': 0, + '.bss': 0, + } + to_copy = { + '.text': [], + '.data': [], + '.rodata': [], + } + asm = [] + late_rodata = [] + late_rodata_asm = [] + late_rodata_source_name = None + + # Generate an assembly file with all the assembly we need to fill in. For + # simplicity we pad with nops/.space so that addresses match exactly, so we + # don't have to fix up relocations/symbol references. + first_fn_names = set() + for (first_fn_name, body, fn_late_rodata, fn_late_rodata_body, data) in functions: + ifdefed = False + for sectype, (temp_name, size) in data.items(): + if temp_name is None: + continue + assert size > 0 + loc = objfile.symtab.find_symbol(temp_name) + if loc is None: + ifdefed = True + break + loc = loc[1] + prev_loc = prev_locs[sectype] + assert loc >= prev_loc + if loc != prev_loc: + asm.append('.section ' + sectype) + if sectype == '.text': + for i in range((loc - prev_loc) // 4): + asm.append('nop') + else: + asm.append('.space {}'.format(loc - prev_loc)) + if sectype != '.bss': + to_copy[sectype].append((loc, size)) + prev_locs[sectype] = loc + size + if not ifdefed: + if first_fn_name: + first_fn_names.add(first_fn_name) + late_rodata.extend(fn_late_rodata) + late_rodata_asm.extend(fn_late_rodata_body) + asm.append('.text') + for line in body: + asm.append(line) + if late_rodata_asm: + late_rodata_source_name = '_asmpp_late_rodata' + asm.append('.rdata') + asm.append('glabel {}'.format(late_rodata_source_name)) + asm.extend(late_rodata_asm) + + o_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.o', delete=False) + o_name = o_file.name + o_file.close() + s_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.s', delete=False) + s_name = s_file.name + try: + s_file.write(asm_prelude + b'\n') + for line in asm: + s_file.write(line.encode('utf-8') + b'\n') + s_file.close() + ret = os.system(assembler + " " + s_name + " -o " + o_name) + if ret != 0: + raise Exception("failed to assemble") + with open(o_name, 'rb') as f: + asm_objfile = ElfFile(f.read()) + + # Remove some clutter from objdump output + objfile.drop_irrelevant_sections() + + # Unify reginfo sections + target_reginfo = objfile.find_section('.reginfo') + source_reginfo_data = list(asm_objfile.find_section('.reginfo').data) + data = list(target_reginfo.data) + for i in range(20): + data[i] |= source_reginfo_data[i] + target_reginfo.data = bytes(data) + + # Move over section contents + modified_text_positions = set() + last_rodata_pos = 0 + for sectype in SECTIONS: + if sectype == '.bss': + continue + source = asm_objfile.find_section(sectype) + target = objfile.find_section(sectype) + if source is None or not to_copy[sectype]: + continue + assert target is not None, "must have a section to overwrite: " + sectype + data = list(target.data) + for (pos, count) in to_copy[sectype]: + data[pos:pos + count] = source.data[pos:pos + count] + if sectype == '.text': + assert count % 4 == 0 + assert pos % 4 == 0 + for i in range(count // 4): + modified_text_positions.add(pos + 4 * i) + elif sectype == '.rodata': + last_rodata_pos = pos + count + target.data = bytes(data) + + # Move over late rodata. This is heuristic, sadly, since I can't think + # of another way of doing it. + moved_late_rodata = {} + if late_rodata: + source = asm_objfile.find_section('.rodata') + target = objfile.find_section('.rodata') + source_pos = asm_objfile.symtab.find_symbol(late_rodata_source_name) + assert source_pos is not None and source_pos[0] == source.index + source_pos = source_pos[1] + new_data = list(target.data) + for dummy_bytes in late_rodata: + pos = target.data.index(dummy_bytes, last_rodata_pos) + new_data[pos:pos+4] = source.data[source_pos:source_pos+4] + moved_late_rodata[source_pos] = pos + last_rodata_pos = pos + 4 + source_pos += 4 + target.data = bytes(new_data) + + # Merge strtab data. + strtab_adj = len(objfile.symtab.strtab.data) + objfile.symtab.strtab.data += asm_objfile.symtab.strtab.data + + # Find relocated symbols + relocated_symbols = set() + for sectype in SECTIONS: + for obj in [asm_objfile, objfile]: + sec = obj.find_section(sectype) + if sec is None: + continue + for reltab in sec.relocated_by: + for rel in reltab.relocations: + relocated_symbols.add(obj.symtab.symbol_entries[rel.sym_index]) + + # Move over symbols, deleting the temporary function labels. + # Sometimes this naive procedure results in duplicate symbols, or UNDEF + # symbols that are also defined the same .o file. Hopefully that's fine. + # Skip over local symbols that aren't used relocated against, to avoid + # conflicts. + new_local_syms = [s for s in objfile.symtab.local_symbols() if not is_temp_name(s.name)] + new_global_syms = [s for s in objfile.symtab.global_symbols() if not is_temp_name(s.name)] + for i, s in enumerate(asm_objfile.symtab.symbol_entries): + is_local = (i < asm_objfile.symtab.sh_info) + if is_local and s not in relocated_symbols: + continue + if is_temp_name(s.name): + continue + if s.st_shndx != SHN_UNDEF: + section_name = asm_objfile.sections[s.st_shndx].name + assert section_name in SECTIONS, "Generated assembly .o must only have symbols for .text, .data, .rodata and UNDEF, but found {}".format(section_name) + s.st_shndx = objfile.find_section(section_name).index + # glabel's aren't marked as functions, making objdump output confusing. Fix that. + if s.name in first_fn_names: + s.type = STT_FUNC + if objfile.sections[s.st_shndx].name == '.rodata' and s.st_value in moved_late_rodata: + s.st_value = moved_late_rodata[s.st_value] + s.st_name += strtab_adj + if is_local: + new_local_syms.append(s) + else: + new_global_syms.append(s) + new_syms = new_local_syms + new_global_syms + for i, s in enumerate(new_syms): + s.new_index = i + objfile.symtab.data = b''.join(s.to_bin() for s in new_syms) + objfile.symtab.sh_info = len(new_local_syms) + + # Move over relocations + for sectype in SECTIONS: + source = asm_objfile.find_section(sectype) + target = objfile.find_section(sectype) + + if target is not None: + # fixup relocation symbol indices, since we butchered them above + for reltab in target.relocated_by: + nrels = [] + for rel in reltab.relocations: + if sectype == '.text' and rel.r_offset in modified_text_positions: + # don't include relocations for late_rodata dummy code + continue + # hopefully we don't have relocations for local or + # temporary symbols, so new_index exists + rel.sym_index = objfile.symtab.symbol_entries[rel.sym_index].new_index + nrels.append(rel) + reltab.relocations = nrels + reltab.data = b''.join(rel.to_bin() for rel in nrels) + + if not source: + continue + + target_reltab = objfile.find_section('.rel' + sectype) + target_reltaba = objfile.find_section('.rela' + sectype) + for reltab in source.relocated_by: + for rel in reltab.relocations: + rel.sym_index = asm_objfile.symtab.symbol_entries[rel.sym_index].new_index + if sectype == '.rodata' and rel.r_offset in moved_late_rodata: + rel.r_offset = moved_late_rodata[rel.r_offset] + new_data = b''.join(rel.to_bin() for rel in reltab.relocations) + if reltab.sh_type == SHT_REL: + if not target_reltab: + target_reltab = objfile.add_section('.rel' + sectype, + sh_type=SHT_REL, sh_flags=0, + sh_link=objfile.symtab.index, sh_info=target.index, + sh_addralign=4, sh_entsize=8, data=b'') + target_reltab.data += new_data + else: + if not target_reltaba: + target_reltaba = objfile.add_section('.rela' + sectype, + sh_type=SHT_RELA, sh_flags=0, + sh_link=objfile.symtab.index, sh_info=target.index, + sh_addralign=4, sh_entsize=12, data=b'') + target_reltaba.data += new_data + + objfile.write(objfile_name) + finally: + s_file.close() + os.remove(s_name) + try: + os.remove(o_name) + except: + pass + +def main(): + parser = argparse.ArgumentParser(description="Pre-process .c files and post-process .o files to enable embedding assembly into C.") + parser.add_argument('filename', help="path to .c code") + parser.add_argument('--post-process', dest='objfile', help="path to .o file to post-process") + parser.add_argument('--assembler', dest='assembler', help="assembler command (e.g. \"mips-linux-gnu-as -march=vr4300 -mabi=32\")") + parser.add_argument('--asm-prelude', dest='asm_prelude', help="path to a file containing a prelude to the assembly file (with .set and .macro directives, e.g.)") + parser.add_argument('-framepointer', dest='framepointer', action='store_true') + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-O2', dest='optimized', action='store_true') + group.add_argument('-g', dest='optimized', action='store_false') + args = parser.parse_args() + + if args.objfile is None: + with open(args.filename) as f: + parse_source(f, print_source=True, optimized=args.optimized, framepointer=args.framepointer) + else: + assert args.assembler is not None, "must pass assembler command" + with open(args.filename) as f: + functions = parse_source(f, print_source=False, optimized=args.optimized, framepointer=args.framepointer) + if not functions: + return + asm_prelude = b'' + if args.asm_prelude: + with open(args.asm_prelude, 'rb') as f: + asm_prelude = f.read() + fixup_objfile(args.objfile, functions, asm_prelude, args.assembler) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/asmpreproc/compile.sh b/tools/asmpreproc/compile.sh new file mode 100644 index 0000000..7136161 --- /dev/null +++ b/tools/asmpreproc/compile.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +INPUT="$1" +OUTPUT="${INPUT%.c}.o" +INCLUDE="-I include -I include/libultra" + +CC="$QEMU_IRIX -silent -L $IRIX_ROOT $IRIX_ROOT/usr/bin/cc" +CFLAGS="-Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -fullwarn -wlint -woff 819,820,852,821 -signed $INCLUDE -mips2" +AS="mips-linux-gnu-as" +ASFLAGS="-march=vr4300 -mabi=32 $INCLUDE" + +python3 tools/asmpreproc/asm-processor.py -O2 "$INPUT" | $CC -c $CFLAGS tools/asmpreproc/include-stdin.c -o "$OUTPUT" -O2 +python3 tools/asmpreproc/asm-processor.py -O2 "$INPUT" --post-process "$OUTPUT" --assembler "$AS $ASFLAGS" --asm-prelude tools/asmpreproc/prelude.s + +mv $OUTPUT ${OUTPUT/src/build} diff --git a/tools/asmpreproc/include-stdin.c b/tools/asmpreproc/include-stdin.c new file mode 100644 index 0000000..c21aa6f --- /dev/null +++ b/tools/asmpreproc/include-stdin.c @@ -0,0 +1,2 @@ +// (this is used for piping input to the IRIX compiler without needing to make a temporary .c file) +#include "/dev/stdin" diff --git a/tools/asmpreproc/macros.inc b/tools/asmpreproc/macros.inc new file mode 100644 index 0000000..c97fd81 --- /dev/null +++ b/tools/asmpreproc/macros.inc @@ -0,0 +1,7 @@ +# Assembly Macros + +.macro glabel label + .global \label + \label: +.endm + diff --git a/tools/asmpreproc/prelude.s b/tools/asmpreproc/prelude.s new file mode 100644 index 0000000..0c111a2 --- /dev/null +++ b/tools/asmpreproc/prelude.s @@ -0,0 +1,5 @@ +.set noat +.set noreorder +.set gp=64 +.include "macros.inc" + diff --git a/tools/data_compress.sh b/tools/data_compress.sh new file mode 100644 index 0000000..c0096c0 --- /dev/null +++ b/tools/data_compress.sh @@ -0,0 +1,38 @@ +#!/bin/bash +MAPFILE="./build/ge007."$2".map" +#this script is a hacky mess that can most definately be improved +#fixme as I will fail if vaddr of data gets moved!!! +DATASEG_START=$(printf "%d\n" 0x$(grep ${MAPFILE} -e '__csegtempPos =' | cut -d "x" -f3)) +DATASEG_LEN=$(printf "%d\n" 0x$(grep ${MAPFILE} -e 'load address 0x0000000000c00000' | cut -d "x" -f3 | cut -d " " -f1)) + + +echo "patching $1" +echo "extract data segment" +echo "one byte at a time is slow, sorry" +dd skip=${DATASEG_START} count=${DATASEG_LEN} if=$1 of=data_seg bs=1 + +echo "truncate $1 to 0x$(printf "%x\n" ${DATASEG_START})" +cat $1 | head --bytes=${DATASEG_START} > $1.tmp + +echo "compress data segment" +tools/1172compress.sh data_seg data_seg.rz + + +echo "inject data segment" +RZSIZE=$(stat -c%s "data_seg.rz") +echo "size=${RZSIZE}" + +#fixme as I will fail if position of c_data gets moved!!! +CDATA_POS=$(printf "%d\n" 0x$(grep ${MAPFILE} -e 'c_data_array' | cut -d "x" -f 2 | cut -d " " -f 1 )) +#CDATA_MAX_SIZE=$(printf "%d\n" 0x$(grep '${MAPFILE}' -e '.c_data 0x0000000000021990' | cut -d "x" -f 2 )) +#CDATA_POS=137616 +CDATA_MAX_SIZE=72704 + +echo "maxsize=${CDATA_MAX_SIZE}" + +echo "one byte at a time is slow, sorry" +dd if=data_seg.rz of=$1.tmp obs=1 seek=${CDATA_POS} conv=notrunc +#rm data_seg data_seg.rz + +mv $1.tmp $1 + diff --git a/tools/gzip b/tools/gzip new file mode 100644 index 0000000000000000000000000000000000000000..1c66240d6fbc969e7fd9374bded27b15b7715a55 GIT binary patch literal 75584 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⁣8PFT zo*>w#@)%}QG1t59_$-2dt37yvVCB($j}Yuxu!cA9+jCx-OV`aZ)_q0rzD^sL5wxYQ zOHntKqzJ5rr|$UJGBa*(dQ z(~JL2aPLX|V1gqL#NSBp_eIJ32u^#w#WMtdS@Al5#N}GPdMI5V+WF=&g1P73dWqoY zt|NU21}1+poZ#-{Lπ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 literal 0 HcmV?d00001 diff --git a/tools/irix/qemu-irix b/tools/irix/qemu-irix new file mode 100644 index 0000000000000000000000000000000000000000..7f8a01d6f9522cb9254c980b5a891bd6977a4c25 GIT binary patch literal 5748256 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

JU@Q&qXA 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 yq3CkNk(f4 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

|5x@j?v@7y)e(gpv>KjAKs-mlm*R*>%l&Rh1 zLeK&2lCn}mo|fei=YCuwAY8^R*QUsx(n@W9i?3jt@mlSAIVgy1D)q_JnE}3tIp1G) zjJ7aPb_~V)ExDe#;h*a-JGKrx++0!@O(#Y3zvc_?bXWCEkaVIivN_)uX`LiVJy-eX z-d=WseEy^GpI{%^^j)N7x&W`78!Q{dligp*R~kzEoQ?W8tl+alRpsx~RKC%|!3_&3 z;U4kcJ{SOvS)jclx_(B?cYZTE3$3!7MxXIz-v??u;gmZ(Li(`#+v1#Z1= zv^%_OX2>MMhO!m7dZg9OIe)!9->RbTYq4pRu8MvV?CLj)<6s)T9fE4now4R3Vvd z&kYt@EI?lrg^cD-Rk=#U%u;RqhM?U)55)zA8&t}xx*C?K31FZp0D_416FQn4XXqnW zOYQorDaimvt4P7b;-}VLqhy^(X3`#{+CL&yf4b0jix%AteZeCpzjD1N`WWuO&p0ammyfX=KZ*y5hFcbOllGGREv=C`iIg^CFj zgckRedso;(Mh5-gAu1ykTHC(T(GwJ18%bx*9m|}1jv#ZOpAev|#XYda=e{YnR*PLF zL+i_#qD0xTPIq%*$tvSt)@&+e!n;x6-I};1m@n8}K@4N~aWX!!8Z{=B&|tdakRGZ_ zm3Dtlp(KO1cR%`)k`U%UIeRxI>X{`rZ&eW{)W2rbhcC2uOcR>F=8a zr8m}6ReH7ypNq7T^P}t(W$_6L+cH#?}k~qdB=f`w{;1wGN+gsO4dP*Nx?Y;!Q zs@>3C))K-=xiLcOAplMSd+T^O*qLuXw&6wl@N2zAg$#JnRl$Q5MgIz}ljp%Nik{0U zs`!)1u~PU%CWV;Vg}YC1xZ8S|QVu<3P`c41j9?3c=~^@wda5Bdnq^u18`;8_%lSnv zb)FJ)Wxwp>OE4m$Q&UDrGevEN!?dpOh;?P~;Zud^Q3_ETzpeCJtynA$&F)BBexzv< zlhE3pt}nw~LX`dl`&lQZ`TH3zN5QkOmtO7{6l5(LUxHhrmyuUN?9 zdOiSb0yat`2=nMf1$C0515#25A(tU_quG)juZ(jMeXv`b2~b69XUJj$$g+Nx-e0P9 z?m6nS&S|mx2&hF)mb^g^-Z~|xVG>%3GITV$#&WJX5T4dsJv(Pi$?*_J$r>is=aeTE zerGm=YS9Ub=clHb)Dkx%A&i`G#oljmU8UFQYE{sp6`*dHlmU8GcDWGgm?V+%KwEnD zEL5`&HS(niVB^SC8 zpj41jmN@1)a*qATH|imq{CMFfJ1BN3#HuTFsIe`=6L~w_dQWyGtsdk;gK$CoBt5b;uWoi?&z?Qo-#&U<-!Okc z%V=r-yl6o<3|xPUUN<#I*ZglAEeKV;_Pt!;7Gt&Ee}`W8?6;W5bkEoP4{yxF^0iH` zT`GX}x;t`pdE2c2E_3AZ-z4fr&5!Ije)<`xayMNfND5i=*^k`^WKdN8kUqz z>SweL@p&6=@U$XR9upzsRmmVxTX+T&ZX|5*Q{5Q)yred-mxmCG^n#Uo!47zu>|FH; z4M~Z(6#&9J@W`SQjt8)NYS#*M@go8lHo{oJW9vp$)GS{@WRiI_A90{W`mcaltFi7-Yfo_5^->MsvJ) z5%6m_DBq{zKM)Rk55Jjd5E?7^`RaoR!Ewswo8HzYt-nWpUE;d%;t49l8naPmq90?y z8z4>#ukb?)?GHNh(}s7gz-xa-@w3=tynX3OAnrL%IuswRSJ&O-hMw9SFS6C1atEm? zSF5Jnnxj`Hr(83n-8OYfPP3JqdChv=897EPb8k(ht2H_EocU!GkD>{mwy-F&tE)EW z8OAj3d4Z&O;gkGlKefqS@I|a6G|OmVkH``(F)j8g1=(s9G$Ra*!dVpUxhk@Lccl3i z5_&d8+BBBNK)l;qk6eCy%~(Z?bA0t-y1BQ7%KEZ|Mn?lfmBT5mz%z&#gH~d7`$Py> z=`sqBB&lBJ`6Bt({zqq?$2|pfx5ablO(Ldbb!zckD`6d9AIt)(B!d^XQS zu0z>ZNEWJEJjg-=z;6Id{Um{Z6aUoVV|qO9r8u?j6JYju;O-*x={r^cGG^M~@}cBd z5C1B=@K4Y4#fLE-HDoq#fYXZ#Ru`<~z90E`k_+#b6s+duqvkfge70I~W+X95i*5&j zJF03E5Adr+*YJPVK~wP@SsTIg!jOZ9?RK{jaDR{IoXll|+6a zkq>GUa?!c|>&S^U!JEsK>l*wVNt{;yX94!&?d_4Rm63!t{bOYW&f8tekOS71XYfzM zy@J$(3Mv0m=X|LCN#dN$);|i641bIIzhuWb|5fuxI`^o+u{)Q76Y*L%PRYql+362F zIXcgZ7JF7C*CTD=FA}m6)!iwJPs^Qd{=4S>LL%D2d-jkucPy*z*xi+LXY8Ikb`SV> zcnp{=Klo#PVsVfV%W5?UMGB`#grl<6Ry7xaQ}Uf+W9(u_QcUId&&==eoJMv|=*MwS zIf0Dxi2jlu)LK1{Q*p|TH@OtQSl4adx4rmFO1Z^eype#)^C>z@0*MqMt0nTaG)HbZWTYjxp&-8jo|8Et@G7+5_cm;9G zPidLQj(o2ojcIc_KUwnaAz1CeL&$t8qE_dTOv*RrmTNB=ce!e&VnrLAsiT-9I}r$f z`v}T`@2VR_eyqJNEkBN@t4aCsD7mWmofJoY@Rqeq_`66}^5ZO)jEwa+>4r!@_wrJU zc&`GHoZzWGV~wwV#2w`|eEyc|3AK`7tN&;Vq()!N@H9i&mya2x=2J`8!7ZcRGpda> zi+%*HeDzBpw0-(0as0x~-vUKj*sTovQ6cutAn4_h4!F*^IFCyl0ZjX1~j?(5PMPro7|zo4$s4Mnxn=N79o?b4zmy!=3NVU zatmh)bF?m%&cwa93&}9&4H!C&YlpSUq>>kZUMBNc;xMSJ8ogN+r8r>RrKk z6gh+V2r!QQx<^xVRL03J{{ zo*$b)5G-`YWPI`y309xi)v6@pVf0X4&m@QSwaN_(Y0TR&^wYcVgrc&Z9j_1pdmGSf zie}lH)%dbvJWAzAA~$#kqa8dXO|}RArPf2}_6GqO_xw@)WYA6giclD!+Z@&CFX$gP zqImLWO=B%Ga>+yrw0LUCEHgi2xfKiix}O0oLwXER%|Nfkg8#(T9m~Ud-7kbx&}of0 zm)Yw_ho?Uz$`Ab*77U(i_LkCoRn=2Ms&k;`CfFWx*0D(8H-eP;H75xaY=6s1H^)gr z-1DZ4uh8kIHl55<_u2l#$@XRc#GELJ_kI$%k#Ct0vRm!&{Dx?r78CEmuy^NV5vzxB zn8}fddH?%DLK}bcRM^m5$Ycq7-%zE7ZueY3U3JpaA652CVF-4LsC_>#F?&(BvHPxJ zHRhp&L>T0&^^d+}aKCyD9rZ{hv6b2MUXuUA-W#Nq&@6K)6gHoB$dIz{guP=F7F`6_ z&_we=N<}v2gx;cS!PVvaOjczd$gBYZ&UCu5iWltjA}Rm^aa?jq7AW z>N!zMOvf@01U%+-Vq8m`Lw5UoyB~`Gx@&Xfoh2iYDBHdAQf%@m{32c-4Z@#tUf$su zNF+aae5A0CjGOr*PDherrm&bK<u7E!+)a?bV|1h}*%R85HyHlx?8>MEjef$Hl#C zgazZCwdyB>pVM;Sd9oUqelGp!rHYFcKeu=ml3r#Wy^F?S<-)6gV=sc{4ew$J@Z3i} zk`w2bd1gCXO`63)?*8_A**|_TNqA#@W63n+J!P!n)Jf?B=HhgDtDhoX7z8rp*g;Y} zMIZAh$|oh#_;h*m7Ph|h?rX*^Qw}J3?%e`{IiUf_^WaaI^!7WMO3csCYU|;3Nj_4T zo}HF69iBe`1L6M{DnttB5z)<$gj*b`UpSkj}(oN1+g;o16EI=;i`#g8uq7A z{5OT+6b)@Y;U0~2CGI&!{iMcg`lSe-?xZ2Q)mVvJ7IH-TpQL*7FFY=*sFmp5gv*qb-nD>e(X7SmvS`L3MX_G4A+x1PX}mE7Pq&da!! zC9opzahYhXUN@wN`A$!~AG7oZE%rKSK+eGvP#t6)+5SWIjWoX`Tje(;Q8gXM40;K3r+Ulev`U-cNjWIBJ7F;q!{ z;hE2mbtACI825|w=;+al}&**xlNQp6&NW*ThVP7OAfT8m{*(k1-g0iq;R?FkZ z?1L(*dXpZHn zV)5Qj@PAC*On2nl+<@WzJ25Rf5bAJ-FtqfFDLGY9cDyH(U`~0*KA2(ai^N924TXMj z&y7@x>>&DK9){EMj;iu4KKJs-x9(QNH_g)E>6lAo^@#qOK=~H2dVWD&b>hcBFZ4WL zBRYr{9l!}5!s;nN(!S^SDp{|a?)J~+n}b8=lO8-Bum6##Q3*05-Xi*!lhU3}=4{yb zG^sAYODPqi@vl#m*O-gn6#gC>01hVCF0SBE&cBJ|R8L&4#Xg_|Vsy@vbAagU#8{zb zTqzR~r@vX$b=FfZW!rXJ4kGCIc)AI?gTA<2$VJv?bW?2cpGd#GH%J3xCPKzM;+)jx zi8*$M0`KVw_%q@a+tkRKN706Se-4|22S}j{nT)@ugq$zu`_v6&wd(om<+iO-29tg! zzBksZZ4CYeuLmx0dQqNI8q-cVxu8kh^;ko9;Jxh@DPM;cLZi5EW1XveUrcYr1B z{#ZJ0yTtS&*y0*syR&RHzhT?2&@it96h*(Irc?9_g7~_8av3%7eo_7|&b9FLJ?x10 zA|S#KORyKiDO&U%#!7L>yP#roNP-Z|=a2U-6qvEo;TR$65&V+4gW>l@zU!hzyGR1u zI+Zr#z1NWrO4m3jIW9OC+i0Cd5m1U3Po)%Nt_Jo`Yq4X)<sI~K%p@C(=GFNsz?C%RyhaV2R?i*qPA8 zPeOi`9QS#Ng}pz&R3>%oQJR-y`fX4{?h;Od`Rzdx`>zU>zi&3Ifr%G-MpLJJt<1Pf z=>xE$M^lZA6Ua~;V}(GEsrXyiq`EEyNin2~5pEdV!9MfEY7W_vR<-2ob@z%ETp5*@ zFF&*E1N(GFQvAjEbP4-&@TKcP5$hHFAV6F1|$gq6rAFO*22jMeo9S_Tauw zNDcqF1h#wXX;4%?EqXYJYR|uA$kMhRyh|zJ@d$|oIrC-g zRkGQeXa>9LwOhD*r6gB9#p1nxL>=oOx|Gt7;nzb*6g~|uE8n7);!+A&g{tF-f-`c-EEHd`Pf$_YYO$8o$3Vyt%wd7Hf;+}u1vc>oDlfv72NRig&N8sIU!<))ar0_S=cv4#3_zEOC61GbB z2ZA51%CkQlOSZi~JY5P}bYh4&!^xv&d{7s#vTmi)Jo7rzLE} zng0^DoMe8y_#y!*qcIaiX=1pF)6c74PWJOMLe|S<$2}8NZt*~V6lE=o#>^M*IE<-k z)xiTkb@koSg(_+KMZ7(!fj!$g2E)YUdDdS(&C2ia^rXl6!E+;p-3aIhHkLLXLN_~^ zO2y=DG`pIylFEsFtFm>M|Kv(o{NW3w>2B7azfSer8j#&Srq8=6C1%!&9a>Z_L00Sx z-MnOtm?70!@cs^_I-y~oNX5I`XHo@VQY{BIw&^`!cm~jlVVmBcKR<7>F*Z+Icz&0; zW4qYR@GL7L@63E;{`Fw{mfYy^_AR-zf3{b(RXiBL zwtu!VIU`Se^;?9X-z4=sU;Wn-7cEfH*H^z&;%}wndnCRh9rsib=X*cN^6Mo3@pSw{ ziQk)y^XUylbniieH^vgVy{Fo#_(+RQk_9a8SwEg7XdwM-`~;h@9=|Ey?DAF#Tg_L- zv1ZD=epf*Y6BHW!jq=bydBe=(UI)?KpuE)tbn6Ao0BZfRqh3}gMnBC@5wD@jcP&p? z^C%nf&Lr+;ejZ9u-Y2?1yhN__z5dc;c0nF zeUNOJ?5KpGPASrpfdWA4m%}((A_TZa|T6Eg2FST%#Mj zNrC2Su24mS$EX*;?EKvWvF{nLn@_5&YR$h@eYq!K?6!F26|M>ch5M_@_mB}O{5?HT_a@~&NAc;TS#lwFp4?vw9@CPGLooI-=D zui{XVDDWIbJhFLDq_wM+PY+Z3J?!b&n8ykY)pfhLXEy*DREspXL#+=<;wbq_b(3fv z5oH*AnSgUL%z^Nelt18&Dc>6VAh-}bp;77}_!^G==yX)NBl`Fi3Xr-V^-uGa&|z8c zl|;P5$!6VVQjR5*c~CrzxOEiJkieE)3F9~7El}m5&-^i&^f?0LGwJg!#T@#W7!H#7 zFwLNk;<4aGtR0jB#U=2B+92)oq87w^iULXE{ee0h&W>DdcfUJmWOn~rj&RM5K^alM zjORsE%?)+6372=pY>y{oqr}jS@}Ix{e##a5@67JL#g8kW>Tst_+~y9^Kf6!E@EplhhR^)4k+;{z}$kO{1rxb+yoWF2I$Ni?#fYp@uL<{hAM z4{^|_w~iJ}54?WuXT@4H@hW6}?Ry8M^vzo)Uo~a2@ryhXTJG$^e^>jxihgm=Y4nXx z4{UHFbqk8ih;=N_35|Hd%{{UDX*b*yoO=BvQIGy8Xzxb5Q}ybnz!CtiQm6;q|^&m?OpS=@K`E?_(v57zf*Nr`(OCLT+Kw#EzZCsgN4M0Vs( zUvKyO2l_cG-S%x;vlSK4RsetID7SpSOk22C@4q^-GdFl*WM^LR;>gaNpm)*r+?;83 zf#(%1m0hru>v?eEF(Ba#3o`kQBjBTWizNUN>M@_V+m`!|RW$5?{+pdcmOhUIeE!7NP(z!Zb-{ z%U6F2u4wEb33wc}C%2f2{ zcwyXLc46zCchLt9JUCZcOEdgP6@H$ue>}oet)7FOiY=ZC?SwrvY6C9*mJ~J&x0Axm z_5g*S&q*|I{@G!uamF%^p@kNLnLga}23gwdnr^b+3zQ9mL&u`D#nypktVxga>AL7P zIfB7;BYs=HdU3D3DREf6438dvQ1Kg&hxSqosKxGNht1=m!j>7n-Rb>9W1p-_2Va-eS5)c? z1Z(Wz0)lNXtJM3XfE|oT0fH@_vw_{O#WR|p{wQ_9#{V}mZ&-ptQEAWBbAhA1_^S|O} z_P(UHu!~e>M)8be;V$ZmHPB!b4bNx9F!_C;*yBrV$1h8$ZYrAsWzC;{g0?WHVp8z5 z>GxLPDY+3K+MM6;zv4J8+D95WA;i5?;YVH$Zhyo)n6nHpybCbY6i5}5LQ884g~nk} z`1F?Mi2YuTZChvE5?pHsy1d`tu4&EUf-$sCqDG&#KlGU9(qfYMKl?0C0tv09yzX?RB9=yF^%r9$E=j_ zha6kt(d@>s^fg@@1WW41Hr{#G7S3*acR-D{@R_!^2h>D1>?UPN+d6`~O7*%P9rO^R z+*@t$OPTxH-huZgZsSzE!#~&4S_PCCJG_D4sQl-yL*MX@V3JnA|XRACc@)h>ynS&3~qOVb^V;Sa^r7%~-dmjMU>im;Pv?s2CJPIPq3Zw=_Vxf{S8$Ayr<^|u z{_%6uE^9$GfG+0{Wvx-Xg@H7dV)1VJG}rKKCKlPy)hK?CfP(rPDi|M{3)#!CdYv|= z?y7v>64|i7C?cnt#VueAt)v-a(BDT&ou*)ckMmhBoF`UCwz&Bm&m_LH-o zDY<=h%=0^bwb%;gecUsfaNHZUb9Mv=ibRdPUTL1B4n{k%(!7vtqEoE&Z)uY}D4n?r zcC@L;E)Sp4Fg&->o$mVIq&SCGV zK8UWxbCA9gT3o22r zaxtLW>5;;>M)7_T^Y$ewq}QuR;fth~lKyu|pT|2G#4!$7e{|vx5obSS-Q&dTh*uK7 zQ^n(+JBSMvHp0+x@AVSng4DOfT0NH$6Cp(LD=5zTS6g_7q_KRGHbSL^;Y`v`l60mH z>2eg~=r@gR-A81tPZot`VNy#{CFE60(v4W|?Ir0dLb4>eEqR$@UcB&a_*~Y9uF%Mu zz(1Q#@PhHul7Y-(S?;ZFoHrm>%FLrUxfCu7K)1u zKV(GIH}R5j#W&kn0XU33hB1{7Y z6=ab3Q!SPYpF)Qgvg_N{%9=8-ZH@dq(S{anthAPbC49@+$uc6t7kdX;N(kNPB{CcR zvJ#y4HyOmMKtIoVPI~&rD%I2TXwSNyrBV^Sse*}eJgla^t;p~V5|rzv=B9iNej&^f z-J&!ybx})ynFscL9V;r8)lsW@qq1qMC$ilg+3YUZS@2S{NxfL3>F@d?8~YTz;R}m# z@F8K>@NNdGhLG`T__ZRUj1=Dj7}|UqZ5m%%a%-LE6e^S(HYdgFL~>QwPS{#ZuJ0;` ze#`=)_u{?dQcHB|{>zMY)&@?D;-1SZ7~SHl`2S*3Y8E8}CCXSYax^J9`-$WBu%0u^bOvT@IR`7w&?)Q{(v z{8*POj_6UgWa*;*Om5t4^Am?!6G&}5LxyU>U!ni$41!3G=p9Um@UEX|v4QxEAVP+~ zQiQC&%rC|r*0RqLWnXBtB*xZQl|Z5(Rd&h&!KAXWyREH+>Sc#wt>k#h7q2Q3hnMK9 z058Y$Xpk4#rp1bBR3=RH6Nszk(Mc)*C+(yp6HSX=MT)ZPnr`q+sS7s=(;UM;M=mO9 zQoa_RY&^vlB;DqoS9Y-Z$}_@;AJCpVKImh9M3{7wZ&@5{bz?OMd%ZsuT%vr-gBR!| zMRnx_rz?A`GD1oc9?~iS&pnKQpkduYVYNM0;szB|#LZffDqQk|udbmW&(WifSwj%L z^*>cpTmD<6Xplk_YY#jZc{Rt91M0}DZfhC8w%mRiKTP#pAX-xqlk5$V=-zq572(!F zl#XQ(Znse9Vj0DcpBB~Y3)+-L!+MP30mQ(PYsoBcs*caf_a%TOpVE^YImfB% zu>z9us^#kHiQ`4(U8^^5$P3gxwX~-DfEw#lQNoG~C>{4~7r1L8>)iz_#fxngJY;w_ zkZ7wH_fxq^Fm|x@0A%$eMF4pmAh?D+3M+If(?!bE+(nsM%9w>K6b*i<3QolE&Kf|) z#w&&SH$BN@5pTNG()E_TbiHXWU2mwRt1AFyCi4J~hH&U^j$m8BSTqe2u|T4Th3?jS zNEH^kcaeH=&ph&s4@cHLwXKp>3<3dQOU>=HdFAsUweZDK!p4VCtb>v^aVP!6Ca!t; zo1oPqtxoiuNp|(b`DKIEurP+qlZq8>KLb(;kbL1iobdimVdyzgK+QpF7HYcD;_WqOu5p201i8-`*VvX-kefJ$XQtTqz%_jY(jynM@I zSKie%ax4&tAImjrWI(m?p}da!#c(bop; zKa7Wfb>m%3%QGw!;cQtk%RjJ+A!ql&Si;y7JidHYc$YWStNrLS zzleZ?)xBC&^f_Zq-8t^zZ-*@7y=uea^{Kf5!#z*rXVsLbkR4h-t4WPw}q{p#O z^tu;R9uLf*EtY>NS7U|8O9vRs%LLa_Miylmq zbOO`r%BgGR%`82Vs0=l6|4T%s53>7O=gfnUlymu7=G@PZo8RB^EAii{-_|(~O1dN& zbLR7dqd|4+oJR=BpWbX9N%RRj##-Pn(<5yo*wC*Cvzv$MwP=nYGSSm+UgFB^6--jy z|BXOy@At?E41ZsXyvrz#F*b}b*5hvRHL|L@`P1TRj;>x5iqPjsTOVnG509*Lf~BMe z$|Y89G_@Cr9vE3ROhJnSO^=T%)sYsT;voT@MnNZ@_urr&%j*xPjw=drJaJf~`}%=N zL;l+w102%WB`YDsx1ED1$HRkVB~$;{t%NSvTsUW?;h0?>l zC(@v{kdly4SE!7s^RR$;Ed-1n*gr%SQsxiQhvL^E278nR0aK7faI^w5wiGnjf;0>fsWY};ypnxp@ngh{_qZOzuXSt& z=<7R!?hWXk4(Mkb4AnJ5YcpzqbZp5q>Oi|{?d%mYX@@t7DL|A2v0ygy3*8iiyfX7! zR&zQTV80SP9DMM7t3-|#4-oVWPcMF)#(YU~%#wEEV-cOj-<)iBg5U;%@v(!A;x#I* za#)gDi-=oesiW-uM&52UB^^ni#l${kZQ-9ekI%~^n5-*_z_Hz6v|qww3tV9rJ|FUd zB8Pbu-^UNLPA94H2s*3ww7S7e;4v*p?9(anODJk}@Xvt&Sgf0~VEGM8h8%YiI{>&{ zakSN+`eS162aJ!n21J*uPn}St#jYV_y}~~S023f{{#c8FUEY+MMrsmmm^Qcuu-d{Z zOvZDgWxuA57F|xsfU!P3t(vWa1IDH?#>Xtzdh_Q!s+-#n!<-T@-qDTc%52@1uUv`X z*{os8mDRV#*e)Vy7^_XQAN9(JmhAvK5F(pLAo(JjW>IR0q>I#)y013@6o5^Xi@X+= ztbCQV(s-e4wIsHUAp1>10pr24Hh!f{31$4oN}u-pn|;N9zS?-rZ%it?$!IlN#M`Uc z^!Os1`qaMWqF<3VHy})^`Z?o;ucPWb%r2KluA~fBtxC;95xyWLiNjKfg-%K(De7?~ zbZUyox4lr)OYK-*nX$T1ZUg(aFNZx?6;?=Yksp(VpAWkPtN2c2q$y8~9BjiuKvMJj zA`5f&c`h1a*eF(@w6%@x9Rdu5^OId z`HZ@}Z|v$Af&IWBy+*1!=vLajX4zcIr`A|26!~m~qGeZ0Nfr&TDpDDKN*XtnUV4YDZaYXIjVT64MfL+XkP6vA~6u26rZnHK0twO zl-B&`l?|at8{tZS{3*r4*rJ9IchQj^0HKP^jVdl8`RA)y6o8RR$t@+XT{kHBb5>d7r z1ip+3_wivY&7T}2adJ^nF#)auTi6e*-$Z))Jx?jB>+^A0=Et%=9~Fp7)tuVrq4@KUIP4FrE8HAR!>-?50mCP^KYCnM?BtFyP>D?z+IBzhf_E(r-riZZ zI65L6YqFxQ%4gHq(WoSLY+x}lJUJFEoU^hhZ5z6potIX7_NTSUPmaK|KR(IF>TwTS ziOEJ`%n?kC5}DUp*pu1j6dUy5XdD8~5x$8hlso-4Hpt_(LbZvPX@g=vu)kp%iDmA^ zO#j8q#N)hxVkFYE8&tc4nW@BD8>&p;LGttwi*M&dKUit}S-kBnY7b>iQKw_3P$%Kp z2X$MmQ_eEUJFU9Z2U9CDzn80i_F~l;l}w|pSblSnp>FXMWyJ`;TEhBCW(y_#N8sFo z{s@Zue?Oc0DI(u^f0BtieRnK=Jh~r8_jcQbKh-Hk^?l}%XUFN3A4eS-tr%QL=3`mEnSCBKQENg(y%VMn1J|(A9lG$8*WO5z- zMK8RAi+GXvjKpYB_D3?M(YXb>J1bRahc?S=O{3c10Y zWe4+=6Lptc@rVBGN?QVq;rV$yNh%2)Yh^!L3^7I@?v_3`qX5{C;txr43WoSn^1Uia z#moE{&-^HDF!STDGCwZp^Knk{BdxB`w~X0MPkvLE4Sgz}k@-=2YG#+C(;w5cZ>JZ` z{F0Q^_R9wZW9-D~Y@^!C7|AOc-=xW9etSCOn>4`8Z};*|gwV11_v~fu|HjVz@YofR>!90`v1QRM zUV+G7%ikXs@LG z9LwV^7>?t^nX!={6fX631z+j3ANS#-H7(QQWBo2wS$~{c3F){|I13>Yng8IM1JRR* zTM#|PKR$@;EkD^H+EeGT0iVT@+2W!p_$1b$c4>%Ok?Dc>1Gt(_`1tN_$A7LyaHlnc z5?dt>v-rh8$1gs!`~nwY%EzResmE~9xseB{ro=+@vuPW>{yM#^% z9o(@RKPwxxFuy;wadF)}7$Fjw-T}br{^yRo#*}t)K??#sMUP#k9-2Gju2obbotfu06i!>g?6Sz=Z{pokfe5%z)?d zS0jAN>5y|k((ojL;|v%iD%PxJr57Vjj7PAU8+XW$YjI4~F(9{;7HRDp~-EL;O)hhfgc*B#4)4Z&mxf zkbqiyoz|KO~wOoZl)cR+w5Y4bn?#g!Yj?!N9`^STP zW6>HR|;#X!~k=suwomeFN~PLvyRpi(5JLYQH1VgX#-o?EU+#zjR_s~VTk z_u6W2dZBGAi@trpeJr?}t65#4);abk z3AHW;uhTA$tFbn8T_4e%iE-c0x*t5N|1FSssI^A@uj$wS;jVvaqILm(N&hdo{?%C9 zs~P=2c}-UTcHY<9e#=>j@#FgS`^PKnyceinW@@EKI{vG~gp4_qRmZNb$)GYTS+JHP z2bfg=*K#LV!FAROf-$|ImqO$fHRds%I|}K>Jn%b~khdgOSzD&FDIljy4w^@hEgf=U|-Y^e-?o-9%&LZg?4q5Wg;LM*|~XV|qR7Q2`& zrk9f)*+~dQ18cz$GY>RblYi=k(hoM60y}~%Nq7jLK@uvN0RUBKJPZxSRFk*@ozHyb zUO&G>u;Tt-q9fZZ=#N&<(Es&nc*6|gzeIRwVNTif_wAXsq&WYXT0LL!4@I~^OrFX= z6o2&A`qY?==eKW%4n)4&E^{62XX3AM<%PGjr$g(LJs~gHb=rD2Vj!-*+oV4v`O>h* zf?4}t{qeiOA1AYn!P~>YCF~d$`qUP)pJ+y0WO2s|NtaHO`-6c2Gv^dt39-IomwUIh zp2K_JR_|$g5>U|8KV6P?);%eokx*k&LD)l1b_3AyZ}P?LST_(Hk$}+|Ur{o&jyw$H zSGT5~cnH>*u|JT!38cXVu$IoqfuaxlLoYoJ#+_u94KPM0`+Dj#>n(U}m{S&r4)(6U z(z{?*S4})$@Y$M#PsczeVn)r}C%qqnQH5IbONZ9Q1C!jq5~CcmhKBfG&-y;|^>!wn z`3}m2pFg5w81l0g5NeeM!HIZ9Y9Km68fdcxFf#3RE56-D3|pluaRmso*bp6SuCWW3 zRg>n@hXSJfX5xzUb8h12%iv zTv0tD6TZs^{c%6?BmkkCA4e?xffpR|aXbGsb+Z2^`~K?Kq?)b_{J8uco8MIBy&&q^ zrlXg=HI*DdBA)!D92W3`@{#hW+yew)Cv0HhLEc2?5vWvni=g$Zp{Mr|N|uqOsdb(g z!X=U)YRNrhY}f3w1bOe(YOdQj+!5fM(K*Z!%XBMEaLr^y|?Y&$1o?YQ}yzCIX=oi`Fe??Wi(Rc%F? zIvy~Aiz+DviJ4aIL9HohJM!;i>WE&tQw_0dp2qxWT$*RDC)}okDCYbcsEu7e^}^_b zl}f#7%slqZ!E18!zgjgcK(f(Z;1(|tNdAxl$t;0n;dd-ZDzNfbV&UmtAb-5I;pwlM zyKsOsud5G^o0>m+PjqoONbXw5JYP*MOEooLOM;*3Yl02T;LO5liePN&R`(|iY zd%0hIRV?XO{Z@p%?;gd}=~o-(!f}#z^0&XmsNu?e^rzUgI%$ddJ;tsl)I!ucdnxL* zC0dCecS&D#cDdCK9UZA>Yo^;;X?Y_2Ool}5dRcQ`ZI$;tET&q~ca}^uVuMu^8D6d1 z8+qzoP1`5S%q6d=zHTxb>4#f=b#iRZRDMN{BROWWw^a!eLJ^6Vy{2po?)%OkytX^~ zF71TEBX8Np^&O!-jrezpYxHi+mIu3$A7fz@Df>`F6>5DH!j6xIu+u7nnNUaYx1aP$ zibZ$idb#xR+UnS4VU3EDh(D;pi;PxQESnL1e6#uGVyll=0(gsvV9(JSVHywaD5k&p zqJNW9&r|0+PmX=3D4)io_oG>mF|t+yFH^qL&skw_7yDYQoq9UUrOWL2wiKVOQha}q zGFXy?GFpTZE1xN10e%~%^=?e#mkT{C#+{GF&JVswqbONYQu@i#aO@0Hshunh$HGi} zd4!yaH+olwW9+{t0j@@AtG~Y-B}rtE7M|CEzx<>HLDiD#7}h)0Yp2L&@wQ;)m=gwW$~S?L{ADA;FQx_~K=YoQb9>hHi1=s6gZw_N#QIExk2`Ju!bhlNuL&FmVG= zHi@5S+^-};4z=#W!aJ`vz9h>+Os=xAm(cY15kZnC5pI#;-Q{5@g-z)}Ug=uScwyDh zy0&usM(wiw0cm&TmGsoRtgn&2KPcc}uX`eKrfekK;?t#7lkg|<$VQrp-S);S9@ z2P35V0mR1ofRj7s7lOs(X!6zkJNvHTP(tD`#^T^2y6IV-rr!*y!NCvcJ3YXMj*|LRsC9)_#rD*y z&^*=h2(X-lW06v`o&M!e6!zX@ho)e25!t{NkfJ~U8HHnQF+1qQhuBi{2lY61Y4lD2 z;OjGKdzv@*Z=$7srq{A^PQFdv3UU4gj!n#xZ2!ICMiSc)r&OP20IEk z%5cX~lJIk0(lmZ7P96Y#I7k5xx0elCH1vCRqj9e2&whUbS7Q6O>~iQf&kEw+pkJz# zYGlvP*-t|BUud-b!0#%QidxlW&b^R&4CqqanPTssFgeHGU7-!8P9f0U8tvowD#P zZ#3UzHL@vS3(_$$@y_8GMXB>ssysG7Sf$6Z_SH^>((-Oz6+)&5E8q8?#m;>A_@Itc z!FcetRC&wHC-Ni9Q_vj=mM$j=zRa^9mDxIQ2}vV7Hke;nu1rgw<|-n z&!7iyrP}bXFhSl(A8%a%Kh{c)9|ym~h3jo+gOBx@S`0!Y#n5Hex*F1Uw#9toy(6XWp>v++JRiQQMsyR=O5 zs~{!6+}*OwtvF+1^Hn3VsyY@$*Vz#%3%6h|u>qrJzocH-NWOj`u71GvbETv-@3bbT z`5`QBa_l;^q8-s!#Pc3gP#TKaPd|RIA407VVP-r(5bx++cIDzh9Tm2%hUFt^w@u?| zLEr8r(R|Q=wu=JGD#v1fNsmWITNgPh1O5^Nbm9}V0yPREB#TBj*w8sN$`(ZEPt5L> zZ?o0L9rRrexHp)3z=;lpHBjX(iVJsbWdPjT!c+h;Kfi=3Pg8%s%1^cB8z>h)EDJH9 z%EW}jSnC3&VQzbFARg~v)5%(SjW-s8i#vrHXf9T1m(>NyWp%a>X;vkxUwbiMHFd|T zDQsHI7il7#;y`UpVLzr|54avJxyXy3O(A@F%<+Q}=!t#(clRp01hwHlAT7=*U-iCz zH|oHu7(ke3+X;C49kJ0Lw<-`uNc40%!#>$lD$M~(^907E_;NCiw^`beUg(^h*tz+X zkFF6KM)>W&YWYjI`ScjgTqMKs_!>iOc8RHtVX!fdOCFYlzeaR(B@vdEs!h$?Zz6$rMxfEv` zD9$(LGd=V7m%pfTh|KmkP1+^9UGz)aCLB1Kbd?2>QH!cazyI1|iD(f5u!275K zk_VpIAUHcTmrqq+Q5JOCP2>}tS&Yu@P!)kFF0Ru;JD_yAkg~z8@C7R2?62s*HIct_ zz?i1k^cA1v+V#RquJQ&BeoySlCv(!R1%bxd;Xo9%4IHtYAu-NWDFH`z&!t*B2UkVU zhV;_5cyam=ydFc1z}w?mb4;i0860ntwW&ZZu>Eto zByE}%=R(f|E3F^Mx{IBNl|u;ZB_3-UzOPHeP-SoG8 zH~pEv(O=yc_qX>=uD@{Xx~@7PU$%HQlezh~6n)^omaesk5|ZrYo$ zoAw@5dkem}y}f7ezP)L?X>Xp|tNG&gzSXcBcnkyZUjmP&-Sjt8{cWuILU@#Z&iL=y zO?zRrH~)*<`>7p&Y(fn>?P{�pgW6hD~uye1#+F4&|W_{SrPdqit%$<@id|tT~+C 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

(5PYM+R3KAj|=W3ZD0pErRJ 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 z zHHP>AY8SDCv#Xiek5YCrMVUBA9?=!@u7)Ud7geZ1^5&9-yx*g)R+V^D_*OE?QSt;O zGaHeD6!lrb;3ZT%`wIE{Ehx~&<2vn7CB^p#^4u3T)KUD~kpjzXD2UFaO@B_|ReatEKShITAUY-WVB!nZO}>2M-4eiwvD6pd4HRJLcgdrkl5^f3(({t8X95`{ zhU)vco9EG34lvZ~XgYFe;v~NK2(3mXC%(=X1IgmqoUBI1+4M55#nk&9CB@YHFxnea zZ{`-n4s8yV2DxElBK8I+7gLdsiZc1SJc^WzcafWz#Tng5-b7B$p`qA|>SoZj_b390 z{Dt)p8ad(@*5}c{{5|zZ(lHKgJh=xVVQ}w(Dl`*xxeg2dO%5=cpfUn$ksL$GOa-V- z#v@6-ko6J@w5t?6#Hjccog_y^Ea;e{q8FNJ-%=?XGiwQqBY7t3JTXcH$Ic-fx04Oh zsHvDQ=TJY0`SLBu;Q4aYKsi^cl*4mn=1wxB2m}vMYY_;>(0DQeK`y9kaa1Z4tx8Fu z=qD&L6wRzp#=Y_)N_lklmZLMBD#_8QWY#C9yQvb-4_OD`anjj(k&W2d+Dm5}g36|| zZ2~RrU1};u-(*UP(f0*0Hb$R9j9;Nr;Z@I5Qh3$*zfnYqUd^0@k5 zmSj_Jgo7k1ob+O-Xf?q?^6x^JHGt_Y7^L`U`8ukbx8O;|w-rfmL0`o;8y%(PLrrmx zGO9!RWziR-&rlw%(Uq)$806`fmvSEs;q+IW?h7rng=p+87^3*P0?J$Pg5n!a!Dt3! z@_9_=OQ)%QF17JRa{G0Z&a8s8HVhTf19!%6aH18UIv- z46Q$MG2y)girCkN0FuhhW*$Z}oN!b`4JO1QTxm zv6rheIA1~OU{|~NocPTvKZgHzM!9QnBX#auCD3ZUXPt?q)J}4_ySuxk1a@}s>IqyS zQ1!lxS8?E&=Lu|3&r&j&kcHvt39N;S#^wtE4(m;Ps>NB{C#g!*;#*;l+ z1x01q1NVA@QAwB%qVkd>J7eB($x0ov=TnV#%ChI~Ri_aA%#?mRJ;91yJh_LWQUb}9 zdg*Z4X;d>U>D~yij_LEH`w91x>jq2?BgJ?6uNY3 zW=&UW%lwf8CbKknU6cz8cK8Dd5B^!h6`$h?>{k`_YGF#YFOGY=^FaUh5wZSLBU*{h za6h$9sqLa-?*8nFqVFHO7y5YmZHEV-Qx8P>Pvs>?bby1nQu6?Q?0a&i{c8W?Fu-X_ z{SQ542w|6+V}cqEg&W(RnVw*BQZeaP6)Cpgv|?arWEBft_`COdaoELMfd6x1)~3?W z2cs3=F+>BT$|za1+rlu~iTmCU_p3PH6S1}M0Q7{3-li$z4^$L(suX>_rc2vmUguxK z^(yoFX{!IZdHpb5zh_>*Pwgj}*LP6)IP?1F#M&-xsCk|AKU_ayULTLI>(V-y*OzFn zy5GFcXkN{wHO6)PcC8*~C&Llojqbp%?p;#?Tl69CIcE%^FOc-*j3{p%b4qQr!|+yf zQ0Og)4s5{j1*{b8OffS5e;gxmgBll4ebC$GiGV*I1)?=dd}$18qerbFg8H)P8tB9u zhXwSHoOGUqTj_$yVHMxqm>eZ^azMLzh;pdm33PBGp#1`)8e@Bx8u6DH+bi(b9au|2 z6u;qg<1pKkdj`MXj7Sb_&plAW9VocC-Ho$tJ{>@5$+hu0`Q??`X)uB-@QeI)XK8Ov zMBvYe?G18A8^renfKJpHuISzd(K(_$@iG z*|RO*dnm%Y5#@(GC3oQF0p3}ilv;7XWRwSTBXUGO@FM{ogFW?0!Kf8JZ+HSv zMD{Yvjk$ovGQv(0k@zybCeG#shv&dS8-=d+7L-$bovF_Q`^aY-A3?!WxR&+}n?D{o zD|+oP{=%aJ^wR24A0kKv%f`OnTP*J;dm?^PzdB^P7Kf>)q+1m^@mah&Wa6vxON7fZ z?YVC{?M*i4Z1%UEa<-1`@5zp;SD*R>x0Pbh7vpil4#!gyNULDt^(b-UG@4%Vu|aJb zEWVe0*9V_(vV zE56^DAbYg3tTR?hV)5gNSeyMyFaHHGUuQr3gn#phVu8U=2%8)0KeakjNma?YA4S^x zYRsdcsQ3;MuISYnwq8wLnKs&BV6&Uz-%Jg|*J`$URHLZg>1B>DhgQ@pmZ9KK!?{;j z^T6O<+9jU6;EAOMgCd(&*3KNMf2R zCBuoF-(07-<8=IB;|!AVFn6bA#rwVVK?gZd~Juo7U({HJF7ZKJohEJoXd8 zgv^q(*1P5j{DP$~Z!U)IrS0u8^4%RLxHr^n?3Az!#3D9=3>{4P6X%b#E_?uWJ=uP9 zr_mZ$WCQ^qBdS|j*8Se#_`@M^}wx2L;@J8(fv z3%o44njBcyA@C#k_6iBFp7KuN?-kbldJMgn7aDSXS z#D^GrrM!}r9R&jii?6}0e`VS4o_-Z)%C%$~nN5dz6fp5QZe{f*24aZ%4ACFw=g?Mp zqXB@@t_)Ost#O%lWq4k4Tn*}9{Ka?5X@0JQ8ghPE62c!ws`gg58iK{OD&vn!^q9V0ZgnkHLCxKQu$qWGS_T+ip!gpKEpPrH@0D6gRs^J_^oyF^A>u5p z(vw}TZ?iy+)`P9Cjqn1f#tM4%#2NMcZ{$tMaURRGRt2iSGkVeBb3f^R%Kh}Z$=_z8 zeSWSHPrjuUPyS-_+DF$Pn%7>so?>2S&~>_bosMe_rvmbQjo+rxH7!U`h4@aO>rUqN zYjoYlydF>2cbV6CV#cM_GOu5y>vHDxSh~KB;3x6N(DiBadNf_{Gp|R{^-t#YNV;Ba zUXP&bh30iCUC%bJhtu^N=JhLd{hE3GGF=ZduV13;r_AdY>AI77J&dl~nAb1R^q`g zMXsxtR})i!5WpJCvtJ#+v2ER)7LPW+9aLb`X@+O2Y&g_p2-6 zf{+7 z#HS%=omP&j8|$-`6dF0Co>3=HpbCCO_vC#V9nO>OaRBJjdf;MpRf)3#I5G(Tgd{Pg z6W!GnW%(?#d?A;owsx-}r_~;pm`poTT(H-YAOts;b_%EDbV2^0(X9kI%banqp)57g z#O@+w`-%f6f3`YzKzWLz;=BO!`D&r|m6X6Pp2{oG(qEhtPDB!`sfw0a*03LS#e9@^ zP`*5XINTv{Or5oxLa|s-(VinUujtk3h(~GN*|Fb|o3E@o1o}Je(k-NT-w3#5)a)x_ z?qoO3|9l3D$)6T0-jh|-7PQsFq;>{>Qv&OARqWoQaiBKp8O&va@zSrry5#KpXSMSe zD*oSL#&%fJ;0K$xSHs{w);6^v=A8_jr^V;c%=7(DTJzvJi8Jb(thu?Q8IcTj#`zSc zAMDSA3GLAoh&aLBjz)y2W||m}STH;Tu_9Tuf_hS}jVvQL^u!ED7!_|;CpnNBS;fW( zM2G=`7S6`XK@z6zMSR2jGL|&h7~^;hx_>-_j>r-w71k75OZWO|hoSq_UDWGB_m>9J zKF0+o2O7Pjo zntV{FO+M1Ei1Zzl9w5?dPzO{G;*aQ{1}4eVu(M8593S;TBe(ZVgw{o{Yu&K6D?bPD zgKE`v<$nX9nE(pyE((k>>UP|7l>I)#gvG)hb4qcdf>;?tZp8gZGGOFlN~VS~tqK0) z^#OS&h8(srfxl_jufDsVeG_h}#$v&YaaTrPztDLsHbz)psR<|woOTD+(@J_Enz+-C z(0k0ttE-|6YiRN&fjs#S--5s`JOPi6V%f8_ zqmJ(YQ+5cP;NxGNyEa_JZ)3l9On?=4U~Sbb(C!UF@j@S47~OXyc|qIo`> zu)|&3HJJ`IVlcDoy~w8$y61b>;naX9kU+0yyyc?t*85r|SAL#cKjV7Dhc(c%=JkS0 zHC_3in%9%7qvvOs*D1GFbLD55*ZrE}oEDFN$aCU^SR4{){mtuHi*Vh|yk0cq4wsf} zUJob^XKij?cf3-`rNx=oo6F-|x1xEy^T&pmw9M2e#rhf^>|zHTPHvI?1GW({02d zW*OX1xR`r}-%iKpm)jyP(D^0bsxZzkk0l2?Ii6o`hyUVPcX@t!Ai}#A=a&aOCD*n3 z1?QL7>xlEqJvbG;Ao7tn;maU^N zZay-w!O6j929aY0ed99+0}~&`%TO1H%w&3B88Xi#XUAor($4X{T`9Ro>U1o5zC++Z zJs!Kk)W|}$(NCC60|)468D{r*3+`01YI9t!G^rwuiKq;0rwR|T%^}3SifF3+Nenu- z#vk}g52VsRM2`-N=g|D5)UtYBp(~~2&iQqWj6!U%kP)kA;F>dHQez0E5QYCo+MB@Z zRJHHpWXOC-=6Q^8N;)z}hLj-^k!T4=m>q(p`cWhOEnGNp`B$SIy} z&J>Q}cin4UYwi1-w|@Ws_xpQ4pSQKG>%OjaUu&(s_S*Z|&vTlOK89I#0A~r(H$NkM zJKd~|&7&G012Syq?OAuYC{L; z^XYKRjH||R zb-Q~``&i?*k!^QzChIqoZ+9*N)%~C!)I||h{A!_6e`~B$O@mZQbm1N&& z2d(%4vA#L7Ps+r)Pn_wB1@@`3B}OO7^?26+^LV`kF7WZC`lMR{A{FokL6Bmvuf|97#I9va zMq2N;X0lo{>;I&g=A(ZXKbs=020B0S)5K3=%)@M9<`1b`NJ3`@pP+>_=MQfhjzm7P z!?i~4ROFP}Yp3Unmu<%Fpy$)QCPRtzSj5%}33jMxCH5$i8g?(yt$oJ=m(e<-ulg(D6+&<#E=g)uBP9X2qr(PFQx8K;dUz+Xb*X^&sa3fLQens2< zCwJKPPi}VYkCl0mjN83b?aL`2Y%;y-&Qn>J>|KUi5;uv*#F#HG+OC`cP2XP4H0{qm zZvC_U9=`qD(ta1!{)^I%Jev#}r)uBV`~Gii+b_-b^Xv9k$b8ZMZTp|3r~f4HUuJDG zZi>ymBRpTO{wei#T8|M_ z8~eI*CoU*1^VqBfz0o$;f`snfybO^v20O~p=>-LH)GEP&>s^aE}ulMXJ_S}8* zFFQ|qn^t)l%_H+tjT7!rWKR8sdp=n=A3?0`{fOjN+vH}?6Eh!7`^8eV@9Ta0#ccc6 z&s)v28`V4=C-XwJpWe3Lm+h}dtZl!$w7&{(n7Z@CtTVDa1yjr{asGY1Z-0tC_ugdt zy>XKIsP-Qe!HL_=uJ?Zb;Maf|p*Nf&=^}qhTZu8RF^_IKkE}Kie{Fc<7@F&9 zhP%EUZ}An(#f)Zq^6yh)Qm>CeLWp;j_@1)23a>{&NAqvrGs$op9LFoAc3z|2Uw{rA z0hDa}JBZT$fML+^$~kSGSW>3LKlmW_UTZ*6wo?V;(tcHPcJ` z^0-mj%ZT<*O)<}xiW2{Qot+H$W*NSJxzy$-tG~(bFl_Zem$~&IF=ojbt2-M!-&f70 z8y`_|ql1+tp|M6DKZ;O-tRF+M__%%x%;!oT?!rf+4XzNcBzW-< zPmC$fJkv{_S(rvf_zNbPtI9A`$!6yKY3t{gwTN@+{<;Kl^3*8weVlRMNSy1R#S-^; zs<`Eh8!d5ic8dM?B(8L-xOW-%g2c%u0ut9%;;!Rkim=^h8CO%{+{USn#Qm(|(BE>! z^Z`W z3OD`Z@WF!jPKBHPad=0;TLO1W zrP&$3h!oAv5Nl|p=}~hr`L?q?e+#X)TN$TN2xov@ON-gtx{6UF*W=5{SWAn`?V(#s z-MReV4V*y#VPdvs1IzKDpkBL|V~U-cA~mkbBw2($v5yIyY~=HwQHk#xm^p0v&@BqD z?*r1qK1Jvgu`b$}Mvj;TE7I;8vl`<}Fuf3If)9|qygxTv_7q*Xf~E=1)<%)dMmF{%FRyb<|-dL|NNHm1Uz-B}sAzvSN8 z?)&Aej9lAk{_RiZK(;j7ZID}pB7exTG&99UO25ig>PM*@hf3c)H_Z)>>7LhcuO~0m zyaOfqRN@Q#yLrNNdAkgsY36ur_#f%8$~~5T<72Tmvf_DY)QH^X*;CAn5~kzu!1(>; zzP}pbgPF$hkgFz%{cBJBuRkUY4&jbk?t>F!eoD3{&AMg0o{QCuUt?i-2HRy>_MHC( zGNs1hJ^-wte^^!mSaP08Ok@mLexd3+4-)wS%)aEVM`N+PxN_&Mw ze`lk6GI|E1%>7Ab2=?g@LU7Pf zE{usWuQT8&36PPJv42_uO51?P8Bk3E+$OBL1f;hCr5SLS1V}QXkWT{S+v#YcBm@3h zi~zUhU7C%6?`^=fqc+K15+L41VYdWKwE^21us{ObKz}O%Lu|l3?X1EW1O%_Jj?d=a z6p}k*h6t&Ty(!;F)eaKi@_JSRp0EL*F`$M7xV&mhKr|mKFra`0xXvpq0Xc0zYX)3d zgaDWLwOI%_EjQ?iF%L3euLQW>Js<(wY(Vjd-P|vh0N1;JOTatWhIVJDIq7@)(AELaphM zg1&3f3Pk$>b*Izc&=0qJbOI}FGp z0d5vNB>_j|dW9wKu@@M|ZDN z!CnIHiW-?mViNO}mJek8B|weUW7{Bf8V}j@0A4zR%Kd37-~J7i>sjfVT)7>0KM9&U z3pK$&tj2zUxMJ=AM#isgH-M+fs|iDwsJPU>%pHS?RB z@GBBMf4+Znqui;#MBu+}*c2$9g6H|C&&1S4wO<{y)=|4iU;o9PFK6f36~N5NahN-t|K@y5 z4+2`~%lpFhh_&ZdcLWBj>`iyBV|F$A5~y$g#24xD;?c3D>rPg|FV;4Vy?%GpNclk~ z40_~>%tHU7Sj=+=Z6;m4dNxt-WYw2lx9Uwq-A%aBP(L*dnRTLz3PAm(rV>!G?V@YT zWXxsd?j+&wuPwo>O4mP6O~@vM-!T2r!gDQcc1a)v_saf4DOcTyz{NK3aXzz}fMWC((+;0Qos8C1( z+=Zd21Vq_@=NNExE&|;CA!Ql@&K@>)A7H?K32@tkgA%aA2E26Kx>$+;I~SgnS+&5T zSFYO8nkaOaz#*ZZv(v703rm09(~AlHC!i}zVu4;c2>-!%Y%rLS>9}pi2wb#xjgdy4 za#F^pE?Tq{d0(BBK9;hUlsulYOeooeGAvCibuA^4l*4nJuQ;LX$9iWes+DY(@(d|+ zJ*Bl!z7&dFY_ymCV~v-4NEzfQ#f8$>Q&cNoTFNEf=`{9~Q?gpu6H5Iwt@O2&b)?+o zDa(bD-BVO6^(>R4*ResqDmCB-G?-fIpkx)6c z+*ptk*GH7P+pQfhgxG+OJyroy8LHJW$iSPZ8oE_e45HN@?cT+F?hHe zXFAhhmP64GB$0~t+!>ySuRFBgC}6Ycc*XP#@|LxSHJ3&Q}`K$m``(>GXT$n z-kyoe5`OLfb|lk7dCXPMO_9c%Fz^MjPYB;v zzesl^Zv#pJXKJt>!F?#TX#P;Nk`e9yn!hAxBj+6>*uR4Z{xUZ-nCQH{z*M-mYjx3+&C>G^dyhEM!#Bla3n(Z_;!HN`iAvP51q|B8yo z&vzU20|^)8F}#HykAFN?GfDnkGHT3!kX*#v56X9m@STeh-SHP0BI)r{JvTaaz>4zV zaP#G(NVL&FMgUu+zm>Exe*+!AA2HL};9WnVDW$ZxoDOYDt!X_UZ-7Ek9*pZpS&e1e!4IS32Z1u=PXa+x@fgg;~ zEi}6OA6f|FFzxZ&JCbZ}^Xzmh(9KP^#EyEpeQ#p^ak@3ftj2W9w%km&e%Sfh$%a+? zhiRsRBcBU<^f^otGoSFLQv*A_+9Sa9Nn|KOFc$LiWj`D?Kwsfo8i@naN8)4(Cf1#^ z46|+GhiFPG)Zyn7SXXcxZRgT?ZRF8ETxuF?A%RXo}}vD~`$9nyXB_pQVR>9OW#!G*gM=I-o2UO>meqn0xgV6TkKr3iSbbw+@x;GDLdKDpi;pMXT@q9J3f}v} zS3GmeI(YIknVB(VAGVV@!9rOC`q4mjuPnr*O&;ea?d))Gm|(sM7JujCz;JbQui@jH zaBlx<&x`U%$Xu+i$v#f5CQnIE;9Egaai!Y``6_-3|LT+G=+3D4p@_4WfdcK)%U}12 zmM^83T!Kq!{EO5m899$c>L#PtqDFRV0BT~sop?=u^tz^9a=hC#{np#ZurA;#SR7Xp z3^;yMYgF^H_eBnx^zC&E9a$mr11h9_Tp90+ira=^jKe40@+)(=QZ%TEFFbwRGCh7= zr$qgz50j$eKY-b|ACS&Hk&?Iq#fo>i>|wkLFRWk*IH zk!CO`i81-`fkyMu7i7pdiy{M?Tk+;;o`2XjXNiVeXjpBbT7yq=-`bFvg`{JZqXf7>uXILb4-h#SV z{KNGZ^Zp+{K<;)^K51)Y*7hZv&D#Dk9_ah6#F9O0~f95Lowld;!O-yY9{W3Oe7iYwDPeLB2b z5?={0ex599WNC>@%sEa@=C!yf8QwJgy4%0o_noBk3Zi{8LP4%8?mZ}}Pbc-ViUtjE zUf6i^lfw0H;Ma-YDq97oYYYx~TE|z!@ydr0kCQpyi9+cr%3WNAAR5(j!;>C&Yw|mD z@eMEGsk6INJ0x36EbaXadMB>w)01Rbl2;gIA9Cp7%<0fcQA;uC=diUdZS$y852r_qQ-}f-Q$iuE;IZpOe~OgE|0p9WR{WhGu0HuK2HQ1Hl z4V31W2Pj%66m3n>4~555K2n*yjVN()!PvI#n67d1o6$iJM7sA?;WD?0fy*aRZ(W{| zZ7W>11tdAu@W^f=J%MPKb20yU|GpN7LdqZs@eVdJnY;{CJT9*aI&dh#{342Xl3drd z3q^ZUR9<29E}M{d7^QW2eVe%KjZ-;@L!`gImeH(WqHtpO0AhV+qQI*tCFNEgIrX{i zfmk5=EZ9)b`#gX{Ar+C7oRvl76`|s-a|)b5Fj_>_6zLs`#!@s%cy2U1lb3{2TAZ!H z1_XaWsULn63PqzS+E;k){K!h)aEd;q!P9bYg9-4Z1j(sYT~N0e?j+iT)Iu8khTtoX znj$axCDu*Yi8E`@b$e!giXd}l9R_H};tleCM=2&ZdgM7Gf1}i6@lahq7R_-er1wGc zV{s38?^E$L4Q3iJtydRJqEau@f1epuWF@VYWhoXrZEJtuPO6OU&3^!}}Oz)y- zTj9BL;|%VG#QRGWt)anP1V@Ru402&X-MR5C(R)d~c}jsF5p3b8M}T5}EXJ}GEXNj7 zMs*m1%&4vhXy->K@;0HAo}1;7hC~jb)MHU3ba+1wh15?naqCoe^7>J+od(a!P80S= zh^QKiq?*3l4&hKliwn<<#ZvO3DVkn`pAc*(7l^s5HI!mX9yM__tAt(u*FsIoTTiNGrK><2*o<(*r(! z2jgR?B(E^qY!?w}rj%sHCDia;Hw}l?W@781V0y1^(6lHhkT}2a45;hS3~`|@sr%DU~)W0(V`k$Ot6=T%OKyv z3x)pNm_RfaslRLR4T4oI6=%h7TjXN?Id<5=GDOP#j?9tg5okvC3sl-(uS@O>l#=i$ zkCY*@3Z-_LQr)}EO_yyX8+U%3!q=k3Wg9A1*WgZq-9%KKA2UPIRXCJPZsCnSKOPgv z%SF-OHTVX>ssPb-@P8gRmhg{#bg&GO-ai7(eEb5H^iS>#l*YeD$`DzF(hMQj>Xew! zKT~ZZ*?9lBD>445SY3lV33d}v?LQPXZ~KM*$-9M8z~43a2EjZcs^(+sP_!FG z<*UhlJ~kk41x4S}U|E8{N-6WPx1esV&P;SDsjW2_d~AE*b4RTP6r+-D6V|I7a<_oF zxCcRIF6IYl$Ko6E3Q_b1UKq5<$3*S}qQ~Mt5Bjl)!=d!dW{~_?JV)MUlmgDt;3EVN zqSRwiI265)qOS?ht<~AcdxxTJHF#!%^*%#_q}v_>3hyQ4?kG3*_2T^ig3LTD4A44U zLS8Y7rt`>TBGrJn>y%%s#~3Btf$YMYfL5s|<9DMJ&r3bhnn-}sE4j705h_hiBYb=* z#*aoRO1(UCCy~!kx)~Q7;bVa7A8};s`1t*(l5^r=DwX!gY9ej5QYr4O7CNO1$oDO)TACc^$r1n>Y>0z95$V>eg$Oj~$OXKTXh%1Z+{-A9e~5sQjaZBz%qG#FYYie0oILQi(Z_G z{j>C9Zv>fMTnNziVl(mrkXL|;*AFZ31A_O8sOrTYq3GKbT`xS>i_ehvGfHW3h6d{r zyey?T7khm#=i*D)mj{CpDZN+$pz+=V6}A^Mk@qS}5pCs>Q}0{vu|V_;+ECehKY&9a z6_HHbzG)G8MW}cSuP}LV0>NkzRo;7tqOlZB5}xzknY?`{rN!AAY(VgulyV*>0L6Lu z<{HePuGpN5_sRf`_uc@l_pIdgMJb|BdF0#}>wP4U|C&L^02-yTKK^^g-$SKr9+^R; zt|+P1Y)B>Fiyz=nn&11Y>Zn)A+lx}b;A&WM&)F|T-Z+YO)!>cyto_9jB$KEK zP)wq3-(eD!z}{bspFof?UJ;-*zLC7j6pix893qbZF+V&G?|w0#;*^fy1wgCxCgYEx z6wjMH@;s5NDD@<&QPKBe3mgh*EJ(f=E08yqiv2X0o#1p4Ri|Qd1uuFPhay^Ac&-#1kndX{O!r4RT5=eSBNSuSO}Jr+K6{k=-brlI&ITmh-(>0f$2B z36k%{4CM8sVoMDkA8C7IsEDe$xTdTZ-Hk&L%`ZIHi}T4VPtj|5)zgFH2tFn)n?>SN zyd8!`9^2>OM?|{&hCv84J-HHcB6F97J{+Y?3hHO(kS)u@!1*Q z52Yxz^T=N#tm)CB#Q7LBq0%1!jZ%3ZzmD-0sg%PbUlDm&l-%gvxN38nWRx;S#s7+L zqg!{cGyVul$!WbuIuW^y(&Z$h8&k#)#N#*=QX)uxbjy*KNX0%H%tCNl8quSrz362e zif9etxzXJfZ#$?4MT=-~5y56@L=!^MX%tP~4N>=r!(j6Af){%=b5#5$pg6a7CpNr| zu?^(areZD)&Lr4bnvK1hJ1YL%Pi9n$FUF{D!8Td)9E&J9r{bzGpL)7PtW*QP>ND>kDPeN_KD=9`{er) zzEAexP)G$p@-t`wc?GC=eU}11Ab4*Y(H^1b+Z0_dJlE0BkhdPCv^Yb9bqVf8sWZ(N zir!1nSB2+hP$u%GpfqRQ6F_m+ZTJ@BQvsWJ8K3jR?fAq$0MPdS4phmtHwHXOrl3a_ z5osows7ppdao=ata44kYA62&uCNCMKfJqwcOz;Xy^YrF1fF!H?J+h5R7a-c_^kUxUavTaN zWvB8vp1c&40v^`jK!UkMRQ`?zeYOlmyHIqd@SM+jgl_N0`rKH-&BiV^eN2&cK z7xDhC;!sGnB^Bpy_fXp}wW(NKgG&jv6j3#PV?xpC6g|FO`5Q`Je(n=Ss5utg4j-9~?-5M|cpt*Ej7ULtV^N>N?t zk!D1aQEGo>!c=N7mBAo+e|gCpOvTO`yz-VcKSo5Aznz7=zhoRrCgp|ameDojwFA%k zTRcnr9ml3PxUrS~W+BS>JBb?WFP_9RC`EObM|u*;AgQQzv|*S^d!{lOB=4^pd6TI) zRD<~m&PS>Joh|77WuRyi;W>YY2itxb2%hzK>MQY=S^O16q?w;v5M}&jLyh$}gT$Q7 z=KK#1Ngz^2Qc?c8gsBX|p>)bBki5S(WBkb`Kd6I9<1d0J&H=J{r&ld z?U)vTB%Av^vW-X=Anx&&?5?Nh_x_gSP)I48mA~=irJxk>um%Sb%#}v8WhmN(qBDi( z)|YzZ&7|mP4VEIf0;L{_Yx#VpxhUFNc&^ieLDu^V6n#*G+X=>rxI7BT4-^}x!ZWaO zI)^>5Y@C)M$V`}PNv=abB<}`Fv46xPZxXpn(v-j6#cThQVVW=FP)Kt?@+ZV2;b@tM8FRMEZ%6bP>~Abhq!tEjX0)vg-_{ zlb4-}XE&+bM-VKoM1$;1?+t(^y;Y#t>DZ3(Yfwr{pL?VZkv%B&2KeqUy^2h)m(Cy~ zdA+Fkga%Ixw7v1R5)FFsN#Q|&CcUCQiDis0L9shLGKENtD5-Zl2ITd<_bv{_(~ga* zgI*$U2TB1KYOpE6qbQwdu;Ydu+}fx#=?wwJ_Fh584?`(pT|9DYfHgWnl;khLad7wD z<n9|MY$dFJOhnM-5KFK5e11ep%44A6GyX7cW% z=v^L}N2DhaN`q_@EN5xVaTtTpP8qsl~=uC(qD; zCr|#AmbAECgIx*UK&i*OPAJ-%q8|#+jdx}8zNF~u8jK>iSxWN+^0&|Aa`+JT@<9tk z%I^;!iCle+U0MrOwoCV-O745>QnsW=RuO3fM6ZwIqkNan!l4*EwN{OIEP1C;3b<2) z-3Z=7=|qF&Ji|Mn(v0|IP;7eD89x=Jhz<8hQ6h^`>h%l*YeDnh{Ax=|5L5ALdz`c@71`o6k?uP|Cfa!E3Kt^Wy+&^FL+t=8xl0 z(x@mrXMP=d6)BoSgI^M?BckfWek&9mN6|g2AnN90FY^9CDJ?G3;1dMzgs7R1p9t#a zV^yNFNqtL$cN5$$rA+0{Krt(0CgD>5knG_xqi^@(L~H=i4#cmhl7+t!Mep&*dLqvN z@dGg>tM9XKaVQQhuT%q(NYZ7L0v^y{AA(t+s0X5HDB6jl(}d>+q6T>jDH^N6A_R9! zDaKy{3gaz4f$@6Sv5WD{0L=_+3eXx)?rDuTqiD28ejxG!5VvUz2Hvzv-vKn|@~st4 z=@Z7Mr_vuDd7DT9t>oTlea$H0TWgDb{1c2{hEjTOl1E~Q>_Dkkg`8RZc$CJWkX{1G zpBOiLSeGwRv8e`+5*#F=YE@W%rx)FULlMm_JU1S*$jeR9i^~<5K(LI6suQD2C_0Fu ztAyuHj5g$LLn$pz)nIjkXQh-u9ww+eF$xkLOKKMlro3W%V3DO_W_0~nR;e=B(g!sW zsowuVs2SVRsJ63YHQD7Toy8;5iPQ$7M`Unj-+5zkC{}haL$dBUWKZ&TqZDwd23rz5 zj#7_E`B1brMTZK{jYxj-#!&PH4PNVRd*B-hGV65z3DN_lu&WOqLZtg#`X~a;SyCF6 z^iOU%3TN@ibRxBZ7<0I_3R+#aXUPPkgeTSqmO7<=j6Z}@e6R6H2O@u=^h)oiSf%Eu zG&zm&@f8_A4y7pd_ed0xuTc6MiSMpir8`h*Mz@iVKk~BenMbK~uSYf!>7%`{XFT8Lm|xt$Ijle68d;Su23=Vj63WGdvxc0Z_$NOOO108z$YVbs`pu!O{7%qE>jCKIV9 zsVIN_!c<1#Q2cFMto(H$ZyQPh=WDPD!NVx^x1)=PqSYumPlu zcONuIq`m)nNl-iwtc4ouZ!fCM{SSzeO-YZeBGN`uQU1o?;k$Yk4uy1Tk@6Qy-YJv< z?$ls6g11m=fAvDqHWZy8JhwAk-#I22NLNyV*W)5*(D#k1cka0J2PB3cOBU_N*09E$d%=u+W1 ze=W&7j?((uF-H6i#MV1_50S=S4THkpo2aq=@{u?MrKI}2M^d_2=i`BBf4kFpe-RuC zsgk7P{B0nw5*2f4a3;ZeBC7li4MoRObl*41UvKgnmIdP*wJUk37eQn955kH28e4;9gp;rv{4%Xivt97-nnh3D3n`Q$YL&-&~Cp7`5` zU2|}H0sT!xl<{{EHP+t%5`RM}s%t&ck;p}q+F!LWm8MK30VMCQ40#Du?5)Af1gDCq z@^|>A_jeJ8l1X*pIe$B!xBb!$JnL^(g7~|F&2f+ek!JjsBg$U?<~x5Mk$4lOs2=sm zU?O=X6}5i02~+9LROW)@{WTpRUl;PWp%iew z2AdE(j8gk69*S0@=s@8)f4Rt;iPHMZZTwZo_C08hNaOEnXZov!8tZQ_s?7BdM9HS4 zM^+JOBdI8V<5PTB&%&XQPJONX#gcalrGPs%*p1*VlzM*F3q{*dbb|1lzi9H3P+EVD zM$7oM!?rx=g-GMCph2V1jMp=dvfE)|~h*OI*BD6PLiqr~4pY`cT^5NZ6?Fev=Ji5lxK zABjUyN~+I$B;{G_d^`~CZ}&CtFM>lMRgzSkzYXM7qGB!$&Lmh*MAiB-G!z|A(S382 zzux3!2G9EYdZhT9fQ@(XH6o3__J}g)-z3yne=#IZK`E&Y^GFdQi%@ER7q5DMS(r*Q zNyYg~?r8g^85N^7m_)F%h$??mL(xSzluWM7R{qA2R~|g;@8}5ew-npuU^^m>zd?vH z{#K&K`fE$#YLucn%_Fsm>_(~mROLH~vJnQeVcp1Md*!c!I z5NXD5Iiife>t8v4ACY(yrKleD$Y3IQB^C8Nq)nJgccwBIB=4^wd2^{aMuX)Eu0g3g z?bc=QFE2&g3D5aE+n)X?T2q5R5gaYz@{pwnP&_ZW3#Vvs3EN+JlJ*^f%-;0YOy~U* z@~VPo-nC2y54T;%a_dk<(Qi&SxubJWa~&yKTiOR>W8FhPI$eE{6AmEKTS2$b2GAfar%l zBQE)VpNvBx9iE{&VIX;jQ3|+DgB=L|g;I-F4Mm$!bhPl?V3s0pG(~%9FeAZF(}@0h z(P#P>4keifh3D?Twzsq18&R}?1{V-~S;S?AT>H`tN|RU&%Foy+%M6)>ATucUq%N8l~hk%_Fsm>_(}3CvRw^0*&+p$LRDGECN+>#%qU(g`y1WB05j)g57gTJ%tYE01L3zCpAb=ZZ8-6iwf_WA zY4HIKZYB64K)1F8c(`K*cQrsWxakVovHaRql;bHl*;U-dQ}A6^QH!VG8?1<5^@U5f z9jfGvTZ2*(`rIRRi0nbBm(RQZ@*`CdheGNFlDC+Vyk1m%LW3vT*yi3&Bl`V$FS-YZ zB3eLrZul3FSAe3|KUd%f1n*U%!D#kdJV0~F*bIstq8Ayz6{WN^&m&EV97X9yKtAg% z8KxJ*^ae==Zdh}ZH;9TIHF)t!>p4M0)h+$DbKdh&97-l-gy%f3BCid2_L4aFEx9Bn zV>29Fo2H+iPeZ6Nc?{Lo5q<})57Z?Y13XP{^k;kmv%+}zq82%bG(W)76|B{O#ZK~Y4S^JNR7jK6HCvHoU|n3LI@pX87P zB4s2M<*!Sa${-v{r>p|W`)fnqDwG0F)nIjkJ5g$XxkAx06zwKF=kHcC>u&;hT-OJP zzw+482Xzo>{6!FD&Xxr!_Jy7Ou4319TamZF{%@g=V9a6yEd5Jw(1osaMC_$9>*+Gw-J*HMc=J_n7UBr>R&=gFh4Okw$b* zDEd7PC6haZ=X!V&d3R9s&yN*2gkZijqHROb9u%D?JlDgG$y<$5S{$pv3IvZzDYs#- z0Ywi_#a9)7sBG(q6?a=d0t^M{Ct?iM0M0x|!vupmJzC$3iQ zK~4P4l)4uO$>Nw5+y9^h6x@3uTM%g8!N{g_{etvtZ1c>A%4IykV$!C%3Uo^Lz4ICl zr301-&lzb!-V&4oPSoK21SKCm_E|#FVibK|cy8>kHnttmhoTKNc!=P55toyxoS^R2 zqSZuWNX??bX$0F_DmrlU>(YT+usIG6kCzU#?|&lB%&V=ab0ZLWk?gG~#p*l_HYWHR zO5K0Oj`{w30EfaGAUxN9ImwHsXnPHwZ)E#nmIRp>fhw7N3rfDxh-AJ85NGl&tW)}y z?8213`GGR?5y2_|b-u6u?(=;Ihm!9m;kkS}k+&D6fU`7MpWsy~O}+_cchVi(?_ek* znQsN)@)z;qd!Wvqx0y(tVxT)PG|PJwO&1kcMW_uCCQIb`hV=P>=j}k1?15vzlY9z# zWD${OK=d^y;iz{w4TnNX9;bR{FnM`RCi43af_nc%H=#8CHCUhE0hGGQf?<x+}n^ zJJ)xf#5ZiuF0V2ZJYd4s5Hq>0L3O>mGPgT6tTBFQh>+; zl)9tN9rnp*Wb%(n1}^y{4QzM34xV{(T~X(^j%Y=;mqUYJ60DP^$+yBL$Kg=&-1EK} zn~eQs|AQU0+5doU>@5Rm?LA4wl_-Ta#UnL{>_Vxp3c16!%CW8PAoN}nI&Y$OmV14Jj=cT?Rd~1k*S`~6hxHC_Zgqn<%g}?PE@b&kwZlK z0demP%EPurzxsT);80S^u2Y&$UJ)vuO;lz^5UdB#=G(uobnblYqJxcyOqFkUM4No) z0I`#yF$LzKl%~geq!N)0D0RLW!h8!d-;O$^i}h>|^rT`v4eld2M#N43?&~A@-oi#V zxEqnF@?DN-vw0tN&fXq<#ftdgJ!c?}il>79P%ChG!BI{2_%2A zK0w|iDh|`Oe&7nU@3wtP-@X@zj)8NDB4?zG@^$O_^!E# z!#Mdd_DC=Ih`(EW+zSomV^?j?^QxDuvF}|)hl{piJ}ctSk9JNIP$fHvizp@OeIDsc zB&#H)J|B84Osca<3ZH*~>;CD9ozPxIW+9^-poV*7xYdRp-RTJ z2s64h(z*YHNL5Kkjceb1eh5b3P(1zslK1!mc|V{O@M{e=BKRvxEm|}btxD1U!gJ%A zgS`F}eOiO(YFG~=(}-@~>offohmuSQ;kg^AW#rvQ(K|FaiQtpcvfM!ZF~aP3iadk; z&T4M8;}K*o8N1Tk=RN&d5x*4Cc8zFFp%o}4g-<>55Ro5Iu2HWEM1^^mW!^7?ufRlt-rlD7k;v^Y(JH3*)U(tHLy>;4GtohTQwQ{$m?iNfaW>X zJWy=%O&PzCV&gp$O(Y4WPCj#(d=Vz!Su$|RUx~4%J5#ZN27e*gS47pAee<*Lkt7_7 zt*pXx6XA36vQqSPtODf^6UuT?G>z!9p=e)iTrQiNSk-uc6*{T~5*mpp=B$d*tGSHlYL{+U2&Nyvw6F6jB*U$aUQ+^2$&#vj(RU ztS+Kzc^?>xCKyqy#0gKyO8hnU(82n5Qu*i(6}$gMz4g(U!t+o{N@G1ziO2?&dJ1F+ zn=D8l9YOLwE>^StJ5sTp2KN!{EuzZD{9V3tHsH|g7Y4TxAAev|99$os%EvUQn5ldW z_14D_3jc{xd~ESZ7a}Pr^%IlYVUw*)lTmTwLGnH-kvE=-12ve7;7k$C7k;L8{73I2 z1&5MJJ>j`ox9YgDQDet(35ms+O*)TECQ?mOQU3acsf@y*bjr53mA@|JZ9^&Gd<`}s zco?PjS3DH0M$v)7bN+IXHxs4xcc1ZB9b5dMIU?=;=YB!4Zq!1J^|u#QvRu^#QL-uN zkyS+6NGi(T_#M8hXW>vtr-mwjvE-dXDd0{Gb|ZKTrT#pxUMSjzq7#JYmfUFal2BTI z-8#tlwZq0e=!Hn*ub@HU?-|rsf0ysG{yG7YZ0dXD5RraBw7*5$y}vCu6jF9c#jT6e z$;(c~vqKa(f?#nGRqvs64n_M>bgA&1zn0`3M``^{YA^l5-^H!oUlyj) zOj2?FlB?K$X-36p4JHxnETU@sriP-6a44Bv8La$`A+J1m)?Y^BZz(p+!FEI%e}fQZ z{H;Wd_1Bif)hI=Enn!9A*^N^B%NwRrfvNPARGhyI=jDb4e&>MbSDXvwn?B2!(@B9)l$y*{f=sFL-t3e|Ia zWG<10Ky<#bTYT3|#G#lx^oGi}A9<%x3b;mt?Fi=b`A%#h`3}VnJopfisq(FXX!Ci; zn?QK}Qy`J*&wC{0Uh8C$MBoo1V<(oos%V!M?HY)a=h1&6N-lYExii}PvpuYc&+nDK zp;95Xabu8c{bM5c0nvNQ|7`Ys5{E;vy%{7wN1r2aGfDyHXz&q&2T^L#!lCGW6n#y2 zZjNRn?=_0H)!>RWDdT=^oOb=FP4}QRk_&u+?e)dr{+U8 z`FuaXp`^5Tpvw1E^7f(>aJdFs5saYJolqeZtxM5i!gC{Dki20O?V`byd#s1?BC19_ zne~HFZ$`X|u-u4mBKmSVJL0(kV#Iqtju8*AAC?jS1~F#D|6&hLV@3S20dB;HQ0GsS z;&+Qjx)724^z^R1(f430913YXNG|nACGy5oai9is5uB++{fMVWrP}-;84=L)L*6d9(k8g3bs18qr5X(Pt_8nef~IKSbVV z6n#g7g$aI(()E&@(s!_a5=t|`&4uL#_>Xed`G{MmO`i7w!~kz?iUH1o&AklpF2tA) zy9=OQXXlZY529l4YCngJCsIk$P#^iEh4W76>s%b z-~@uvX+(R6qOlZB5}upboyki=DJ{;{U;~1`pwyWb3PqzS+E;jPYG);HI7Oe*;OWxV z{+ALYPiw0K#l-)+F(!T#_V_aK_an%3Xd!@hpca!?l%lu$IAju$2Y|RaDl5fn-}??7 zi9@ls6(rxGFOs(vrGWD^*qGpND79#@Q1k(c4iKK}(46EAplEvyo-bv+k5Z!kcP5ho z8qeiGv7Xm5z5>Ovdt@e&dZMHr84ktM=|-c^$~AL54#n2K|0vJB$=iogz!e&7O)x;I zMJtA)^(Z=Ac+PVn@`h8is|IhBw4OgqBf4j`&oscHBvV;4OrovWD$6AL070fh_W-mV`XBQ4qm&j`dZaCpGbr_VR|(U6glWcu+#UkvD{j&uj2%G3#xt5)Dr9DtZc_T9TJf{1<*wppI=glL%2mu^#RRE{;El8cJ)P%%sFHO-+7r)fJko(k9`S(pEU_8~ z-^j~q!?4{BCLm6_v7t!HL%VoSEJ@-hO7`?fW+GEj>YLQVEBq|Dh(pPvI!JyN>?~@N ztWL#38vKUfVk)hH#aX&$LfWH(A}C2!bj1zPC|lDCq9yq;8Sslnq#tk0ooMAt0${j(c~=6V0K z4~vyc*ck`eprQ6j3!!3$O0e43hUzo4n~% z9HGJD1ec=JLvm%A_mSQCSWr)VR2CnPKtuV66y|u`>$Ba2D)an*T~Tp|snN%c`l zY}n*P9E$lv-Ib4i|A?xEMw%XJq$wUUHX>!$4-*vliD5>Vvsm>)YFBPx6tW1s}SYAZcO+dF$bg&VH zj~2$qr`Sjb-$FzAXb%;0eoR8W^$|niDJUhSVIC<$WD!c;br+X-A6e+5nNBsipzWDv zRE*YO62Z=CM5l(Li*RVpkBN0;JoaF(9GvWy%Ewr!nDO`-_14F$6yA$cd@T1!8zQGr zY9E!tChMCfqvB#g^5;hp@?xpjO@p@zSd$Y(R4rNi7W>XQg+t@xRBiE*LwuBmh8mA8 zP%-0?&1XA$yjzb}(yrBGzCocu1fQL0WkYFwmRlm2> zG8FAX(V4;kkR+t9h*VJ``=J!9xVci@5nyj%5Mk`uq|e zHw8Db0hV=c6Qbl25cktryCy7VMf{cLTo;d{(lwNl`>!5(ok)}D6n#>7u8U9Rw!QHpMPoF$gJ8Uf%bk4zL0v~K zAbJm}*E=il1A>n`>aRf2j~Vc3Q?LX(XX(cw2r`$_?*ZDG`3!mMQA!WY@JM|k2T2z@dm15uWR|MdTHs=&eo)oIo%- zjcD&sG?t=C!gC$knY?`{rN!AAY(Vgulrk0xK+&N`??;Dr#fDruv@$@mcJ~HoJ2WeK zpBo6@IBFxRu5(W1vi{oul_slea3{fT0CkVgoa;Mh6%NgQDfvFEMDf33Zya2BHq}03 zB2>)DQunAmSw^~wjz?_8Kvu*r2h(QVhE1f4ylX8X=rj6*XG@*<6>_`TQ}2dAE~$xH;@jQ<2KmLpxo zsxusaR>Us{h2zgQSD`fH?~$5BenP3U$rEN%-eiOE2gzGZPu?q3Y_7pSvUB{?h<-QA zTl@)!X8eWc$Dh2rDf)K@1-?)49wi#2+_b&&4nVW?Z3M-7eva{*QA$g5JkprRZz#3r zVqtm@Fuehifg9GGmPRz>f%45mEJHCa;E~ z?@)A;@Lbn+B5xB)X>pbY>k~YHQcr?{p=cF~_7R@z+AQP^qi7oqp2}kFPnRI`VB)H{wt-xl=N69r_u0cT(|W8wI{Yuy7jD zXF}2cQ1n~jxek4tyl+uTiyvvQ3c*b%U8erir;?~No?isTdcK*_dj7~j*aSSPQ#?ZS zQJ~V)y&7Ck@EK`J-Ly>l+;_?X918EklPdpr$-973z`YuLm0%_jRck@xQ1ls!P5}?2 zTB0mQbs%=)GOG1JH!IVM{dOU$;wldFQc#o?@tr}peQ+&ts5vM`y(EClgM3?x_Z9w7FkH zx6a#HQV^BqJb1<@aXG#1hfWl$?~y}9`iYX7k&CAK^tRwo(#x(hm`+}HDxQ5p~{?vD9EDpt95=g#7JCm1$Qoz|7Y(VfA zlv=bl-CzQS`Inw7l16n#pAr*B#BaZ1!*K#l-3o=bsZJ%7jevJ|`1BVQ1yrIci7 z-kj_`zmG$)^>cIOxd(YaqZDw723rvP6Q%ZCE)=ar(ILWfp7W76grd)D@aj$Ld8`r* zI-RxSd7@833V??@rd3^+$RNq0RO|=-g@f7avkqks8qtvM$`oyPt9*2@m zHJ#128@96=QZc^<=M(HE;wIJY#U<5!*hL4YA9wHnBg#ypgQ&524j?fnh#Hhb~9p2CW& zTWv+aiug)C-6T}W3K7kO@_6KHB8?;)^$Bm>MBlBS;80xr`k1oVpS)jD3i!PSpC)(? zr53#}6m3M&k-~Gcz65zADcVDWcMzPUM1$yywpT7+XD3XYXFK5!SF!qQTd|uJ@%bQX z2XP^)q*n^Exs;|3nLs33+EN$M-XHs3iN&E9PXfsgd}s2KPzpF(gAEA&g3?{%Wq~Oa zibhkkukc*2WF@aJMW52(>1)tq~CCgp|ax^fM9?ZC62Kb0^`({b#EgBwkFzRyCG@plq6 z)?Yk{XHbgjE|2sil0i~Yw-pV;RN6C@$sl=u)ySJn#i1I^PjEg;{e85vA9{ZoDB47L z&fnp`ZNCfz&-!a)*0apwuP7qT=WAOKW&CABjrBK!#GK6Ld}D_s5Gf<6D1TkTR0iQt zI%O3|-d`K?R-qJdss^hQ+=)_uewZs1Ekn_6!gKy^U9tWqfM@;fFE8tLd2I26I*7EN z|02rxyB9Uq-zE~PFq_;SnMcO*!w4eVPR6hSjjrI5EW!o_=07*9Ydt@7tE zv}E`ha_>+ymZC|*bN)J$cLk;Ocf6d;&k@*j2cII+_-krV{9gCFsImUak(h{5QtjiB z>_n!c)c%skdVg1OD5Tnwiu1SoqV1R3R4lH+r371wsPZ=^6rE1d;|(C{t{Owh%MYIQ zSJ?QQiCuK?9U_gt?uat`r8%gv{u+}w52d6!)+3dOY(S~~We8I#$W%H?D$d`<3)Wvp zD%R8BK7zePRQa3#zVEaRIFw8>3(xtRN?vvFtiR00UlMlA!LRk{Zxo`8zpbdT{$3(+ z2TD<0=#gebl2K}ZWx`ZyFqOd|d4GAy8%)K{8octCH9tl~mA{>1yuV}|N+#un=lrc9 zuN`>S-*7yRii$gqO>uDJVfveeDC6%WYOKF_63?I%)mu*IF@t0Zr6-A_(pIZ=R{AELp z^*4jWoXqBYJ%=O^DI=+wDuZw+ow5of@2?Gct56C!RfE+D?nJ3YbA_U1DB4YU zZhg6R&id;{(Z@9SJHa>DBc~96*)a*VU(38IP_U-caxAZsfK^yzl$@eE<2KKh9jPF~@l3 znCrQ$z1e$Lc9m1!Eb___1^m(lA0!xFOElRR9Y)cYg=a42F66yT(Wx$Y9>I4I-HZA7 zY+GqKMf(WPT+Dk*wfCDTdZ`P3LU59Z%NvCafZ}5AgBJ3ll4uV3cv7z*iCknDPQBkxrzPItkk1Xm*(QF}2*VN#Vh$QBVg zracd#SXYbeAd)6Z&c(d+Y1_qh7)p87-JSC0lUI!>;6WFBjNmzrsJ)mU2B^wg1&Y3y z`!oMtioIZw%ZO}2bT8(!{PLQ!yt~{Ae)Y8ByQp}r3w}@VQAgBX%%1~P<;B<{mNWlc ziv998Q}|pWZAHm>Z)nsk+r1|+lm-=mWEXchc?F09=D1)Fg2jkN)LzVqm{h;aKGqfy z#r$!IA~wt-KZSG`GDXR`6@Hpw%iD*ckS=m7_>jDds94tp7ZJQdM4gA|cwaP=qMs$f zv$>e>BkwarIpV)u@H&F~5shbg=clDFdId!%3C~>2G2}f>(c4|{=cC&Ga!Hblxu>Ag z2f2#BCOVMRmM*xK;NLYBcYvCvvQ65Ly|DL7x7y!tT7Y!*dir}n`kbCXg&z>bZh=Kc z5GhA=SEcJryD9+;g_H%7J!uli%c5es3)UyNSVWyw*%!2;^P!()Q_SU zxZt}49~5!*=5Oiw(uMD^WA;v7;lEG40Ez0X{2r6^Pwo$h%D+WM5GhCOQo+qbl3(Wl z);R|ZYrYLhb13(S3pOD58lr3d;8WIo1%^__mBKUTzdWqXUrEvCF8Dsdfgx61(g)nOKBbiE z#bj)<`FAmY3!)fZZjru3en52Z3N5DF^|%~EAx!|uu16#CCQxy>3!XZpTQFNhox8%; zC#~oY7>Z~s;hFWwBd--jBV2GH!LB0eTo~hg(b*K;-Wj6i!bl}=5274#l?(PGSS?W& zd9I-5!e~o$38~{;Fp6NIrsB+)e6HN3x?%(G^+%@vy`EDCxwe;MTAwAKV@kHd-6-AE zB5Q~Y0OGDl)->C^B^Zj8lFOVGnL=I(qJTv%IFeumqPrqVzUTmo&Jmtjkv8NlrsyLs z*nr>$iRwOG{~YN+7i{aj>yT;wo_Oj2uae6#N&lEq{wdtlB5Q~Y0HRJe+^W4Hzw7I5 zsZzo_kfB7Q6l8uWqWIonkq3!{yGqYhX{9@q60VZPHvdZIzec5*7HLUjEu!7{uK!Id zor_6z<=$-bPwv<5Zl%&y7WszA7+0x^?zRF{cayVi{+rBiM5R-mjPEQW38KU;wAYq3 zO;bwfQ-RGN!Tdr*>C;k+Bop}#(JDQ_ny$d4s%fIlKZp5`A&Sx+7Ws9b_WhhFap&i~ zP^tTL44~>$N1MNe`Ik}YT#KwE($`fgrn@Cd32S$#qv^&I%s-4MHEp#>Dv>HgbKmg7 zSko{}s+tzq{I1Mjh$u?aEOG&ncM+}9HLR&2CY91)oA3RgyKy6xuCT}#L>>?&_DS}g zZ#{0W@%0$W;cGfL*Z521)gTIZ$ORuKc&>;#cio$O(FZ8HTzKXhzm~j@D4Okpmk|6x zqPoWSM#(ik2zzrc6`Ah$?IV$-dT>1eeVrfPt9vkr;+-wBok%JWw+A_o*&gI!C^oCw zJ3W|3UKOH%`&@7$!Dtb6dN9}*O{M5k;h7%vA}^PsnJ#z{!S5uh9;`cCde9$RckeD_ zn)_TN610Cz(*GX%r*LPBY$uWmz}+_ie|dtMFhW-C=bceK=HiW)Bro7KG?a-PN*S3ef|T~-o5X&_ZumCg+;y~@&FKf zCDm~MvJs$Cs%!KA$^5gZbgZp8Mh1}(QZ!HKdF^2!=x(c z5u4wT`Qs5q=~j#UyjyqS8BubUWZMM0B>OQG(#0UzCHaWFi>X-81z#oDO+=j&dx9_e z3`IY0<1ESjqiaf>t|vJ%lOuJn=`o`G=l3!ikKwRpUV?|r!Z6e8XEN90*W1Kya=3^)Ye%IPLkscxMJ46B3 zyWq_Pk0ZLG9evScip~_Cxwe~=HtKpUzzu*e%kdWy7j;!l0lHsN^;#pl-vP7@v`?`uQ>*Sg>h1dk%RA05Bc7wt*W zCxvI4a6WlYQuJOI{QYa)gnx*rvs_<2Vkwts6Rqyl)WYhUK^_`Akh@1+<@C5gf_4J{&XBzXGoqF4SRzsOXEjj&f2nSc6x{4!)KpT{mT zJ~JqA0#Vd=T4Xel2r0=qaZ>z}hO?xFAX%SX$y-RpX)YK?a22AtCCSFM?C;iR1V#G^ z&-mQ;mF~|(@U+i!&yqWBeeu~GnfmX)$Ws2!#*ALaH%V;7YEHE>NEVRX$MZ zLutx7kgUI<i3tBJM93L+^|isLVsZd<(oL$R=@rQ>fLd3z8A%y+?I1j`WJ^-J_c zQz$x1c*b8mdAW$%-(&S;{rX`$@7;k+c$KLB-M1b$aW&BKwN)0 zW30bC424t`@A#WXUKOH%`&@7$!Dtb6elLEoFPcixrNT4*dXcvaQTtn2SNx@6yY5Xz zrt;TTq4N1B%xHi0NF0MG)eNyn=@;605Qyuq@L}t3H-D--@yp+Hw#;AZxJ$;zkovF?-|T!f0vM$jVPs#wMZ0^ z97NY&$!P1Z5R}Hb9~VpiXLh1_?t#v9C+Ga6XkCy zHqhRBWGa87kfpA_<(Sd_`jWU3QA(X_kq$%(5nX=~ekn~^$_OdN_$&Wh`x`;UUM{$c zV7iDp>$mD5+q6OqrIPx>GwZjQyd?0nzy5V({fe+h_VzZTzuCxA{WjbT$W-U&R%9uEXJbbDdy~XQ ztmf1O2FW6lAf-6|QvFgUV<=5o2a@$Sl)QC_0xovJB!W8--Svz1MH48RCOqS>dYkq) zA3W`E|1sIew83WH>xoR|FN7@RuRUh8zs)3eVl}ZASwSR4N^$%JAF!=nfT38})70@d zj=VjH0_MBmFoI=>?)oMAqA3)eB|PIVp1fQ{?XQpW*AM%2?+#=te~}86=O1RYzr&yE z#tZ@^)pWMVb|R@jTz@%f)?XfmLaI97@i&jWDntSIx!^>C(IV>XLkIh!sT5r*Jmaqy zdAks`zt=ojzclQ{y{X7l{@N;3o`0Cp{_2r922rXRVv*9V+IbL&>#y*B>u)!PLTVAq-?qD8_p{zj5lfvEjmt^Ccx7Ta5dOyw`2Po><2&7tU# zCXT;piS!b8SSqxi7OGM)VUVvK%@}S^%von(v+o) zkW!4l@*?eT1QmO^;4XscBI>N)s#M#wLJXyn`oc5ox0t*n@U*|1j*7n`Y?r;g=h5G6 zWGR2!Fr)q5PvYl@qPp551BjF$y8aUUQo6I0DIi&Yjmeur#gQ&pv00m+BchJK9rs#) zB^XL2ZG>n1<&!rIJniqhBjWD}w#(k>#`L!gS<2rr%xHfZB%VMN)twd@O(a4}aqgcf zeksFQ%0iH=zpmshq~bIej3c-T@lT)sy~p~CplCng8GrjW>Ap+^Py3rtDgNqrDSu~UM*Dk{#73;<)VT)9B9b7bIQ~-oQYK?4O<4z$^*5Bfb%+8kcEKcqI}qLP zPel8o2^38ep7B>*sQt|cPy2iOSMk>dJA1DuGL^p&vXsB}n9=?=lh}#X#9CwpkrXM# z@fWULl$HBg6Dn*wH&-m*_-Y!J#?;PbX4V!RpDl(P7whEQ!A7-?_dL)iPlxl`pq;!LJ z9t7h0D;#P4?Z!|@&7>4_|6D^}Gb&ccIN*GOi6ZKJPBz^a4N|m7c*fsI@+uIuzrN~y zrdim8dy9~%`~?&$&p*s)f0vM$jVPs#wMZ0^97NY&$(`0;C5A%kA*C39#Ra-AJ*XJ( zg1H0-i>R}Hb9~VpiXMq}{7oY-4m|B|^1tQ$T#Ajfw;q|w-za3M>u)(`w7o37Cr8`TR0+RLDn7k=e z9O;4;`P%#(5q13S7-9XDU?`Qe5uWjvPu?)_w7>m7i@zh-E_!;JQq zL1GI<#BUIO0m#<+0MRcH<(Tie;PnI#A?EYbU?`-{ZUtLE*4^q%#l|kUf?$e>I)6qB`l1Ucx+ltM$0&)8o08lT_ zk@ec)U_eq#7mIvGG#HMwr3w=D5TS8J4^Zkd8ZKt-0y;u2*!x0^YzCYe9`+T z`j+s_>30oz-y-VMZ`DaT{T{&H++_azG#r5MZz-%N0L{8s0|)06N9s`$@Uf@ zQ{Vp;D&K#^jP`d4iP?x!>R5|J5y?Sx{gvEm{Z(Qpq#ja=@mKtj?n@6U#=BrH!NDTx zzW(t=b0~Tw5~Ak(oJL+8c-r6P`t=Vs+1`3&>ia*k)J44o3ADr724pA*C39?~Na2 z{rX|&?%jb*ZN>Ymp8_3K3m@5q>F6S;`10#rP|KPx~7|#a=GBi(tBlI{sGOV4GHmp;S^|c=q{6 zUJ`iP--m}}{fe+-_V$L+-)v+lf7>vl{oPOE=ZK=Z+9CsplpwnP68uuSvy>?yS$~bm zn?l8rE?DudHa|y19e+CpTYn`ON+oTCXZ+=pHw--OudecU1p8(0G(H)r)^8cIl)qz` z(f%?>Jb@^xJ1sJrNQ9K)+&@$NQiijXg&#uB(^%p_We!?^U z_N~@^nFyZt_uxVG{1bo8k*WM`MV9h+HfFTHH%V;7YED%fB#TIbl;ZeH^-GzIp)_S3 zNY>v_^41{=xYz}g2<||1{YCqt2^38ep7B@xFYRwWc-mjwe(~1^JA1DuGL^p&vh?#0 zGuq!~5<9V)Sc|M6k|L!z{(=K-s~2D>7WVw%_!~#w9z+52U2qt|GQ>Z<|L2RQP;{2? z%>6T-yj(=>Z_z&S*AJU_?+#=te~}86=O1RYzr(9^V+H||YC2nFJCRf%uD_fC)?Xfm zLaI9L_?t&w6{3LqTyP@6Xc2XOe`ByOno7~7!ZZGQk+%y``zyyQTm1bCn{aO`GL^r! z3YF&{X0*S0B#uFpYKB;(bftD41mgNDyx#iTjiHd5Nh#+3xrV%ERIILY!1)9dMbv%$ z=Zgj@S|mK%FQi^l`Oz}$@&QcbFWc_s|Zy^<@xnLZ@ zRfz8SS=P_`i=b#f;TeDX-qwAY2%h$L(`VwZzW8g7Om%*4MV9h+HfFTHH%V;7YEJ!X zkSrnzQi|g*)h}f-hSHREAX$Gy$yasr-eIrTn$WjP|#g#7?Xx)*>s2q(~`_zhGb6>IE2zg*_FHzj5U4K@>3G z1&0wVLv+_K(HBjj=q%wGfAQqyB5HqceJ$(P51V)I4rD5SkqX88XV+s!`#b!WZpN`{!U^G?k)Dg=h9Jy~x{z zsQtaMP5h-{6Yfn#rt;TTq44(*X0*S0B#uFpYKB;(bg6b81mgNDOtJoUV<@C%Qi{2M zt|6}(6|4X4fb$6^im2l+-4_i~v`Bcy-$?Q*5VgOf#o})kHsRhPWGa6Fh06P%n9=?& zAu$_KN*!yFC?YwCuD_CNt-nePh15ezG5(6*)P3ne#dsIYB{*0_-M@eNqB#^jQttSh zMqV6v+F$*x;%_N7(%yPxDu1JprCS~J&AX0+p`b+Rj>CRH7fMoqOCT|KAN4j7|jy69>L>+%SdRu=b7)m8= zglGKalQ#@J?Qfd$cLdvI@AOafw+vbO`G*yoFSp=7MnqS0TFBU)eR*Uj#+_3D4X=_r0$BG7&uOuaDZF)fa!wk*Utlt;o{P zKg?)rtj!Oq_6iA?1$ge-M_w#SV2x0%FFtR~hXD~O~>DUQEjFWc$` z7>b2GCmny|$lHS`V7?0uBUpy$o}Y=nXbMGV3D2CL@#N(qYJZKDzkb-fdv_pH`HNJj zy#B+C_IG%RZpWp^&P|9Dno3t3niTp9@YT7%igC{&TP| zno7~7!ZYjFi@aTk+FzFqvVLjUgnLtwsr-0&)En z_O$+XV<@C%Qi{2Mt|6}(6{}A;;CzCKBI^8oJ>3@#QnW~T#@|TtDiF258Joo4ENsHP zMaWeC0t%Jaf0)t!E+H`+QA! zQRn_S#~00^=#k@&ziH&ffv5ewug=e<*hqWpk*WNRLYBI}EXR!Y*O$bVh*IiYi*z7T zi0Jx@@JngRQbtHA#$WlX+TRE&_Hw~p1k**-S-(|R*`^g@D3#O~o>{-e#s3+Q>Zx71uGV5 z^K(ShS-%}uT7M-NN+oTCXZ+=pHw--OubJ|91lwir^fCHdhAjR3!;JQqLE;HSQQc{g z(L^Go6zBe#;+HaRj=y>2RUrzv z&jlwEj22Pn{xaAXO{M5k;TeCu$lHae{gvj6zcg&Zy{X7l{@N;3o`0Cp{_2r922rXR zVv*7X+IbL&>#wkz^|u>CAvKdy%>8o>dCjO;eZ&Fh6HF9Q$6vZH8l-5E@QlBa2Ef&l)r75(f;ly@pD8`U2Ty8L`o1{e+hmm-C4>MkgUJP zJb@^xJ1sJrNQ9K)+&@$NQiijXg&pWJ)c$V$P}Z*>Ht*gY$W;C!6)Mj^%xHgy|DhW*2#{3M*&^GCqylmMa{ zQ`|B_w7eN~vQl5=A5j(e+o- z$@;6rP)I$b6yvXWuI@_@D#p8DF2TVf>iqq7jxU-+(IfjDf78f|15f)qU-?^#jkLEO znabZNWU1?KIcBuKz9gq=z{zg!-mkaJ9m@cBu z`mO3{n^uUSR8n7fX8jhEmjs^nH{g9)zangxy}dus-)v+lf7>vl{oPOE=ZK=Z+9Csp zlpwnP68uuSvy>?yS$~bmn?l8rE?6-~o1Y`1&id`>VEvU~D3!Dkp7EDY-Z1dAzbDs- zza!W#d#Cr(-!fz=f5$MR{bi7N0#Q_VT4Xel2r0$6f2R1Q3}-0|L9+h3lDCkG(_Ao) z;3`D-`CiuE`ir1wKj9gF`?7UkCW5E^t$9!U)fa!wk*Utlt;kaT&c=-P_a=#rSk0+D z2FW6lAf-6|QvFgUV<=5o2a@$Sl)QC_0xovJB!W8--Thg#FPcEnG~pS4)z4~w^TE^p zj=n4Y+F)nz^+cxf7ebcu*B&$4-)0g!v6@(mtRRvir8xeA?QE+TU?>*$eDC-hN8TPp z0rOpO7{M|`cl{E5(G-f#5}xrFPhKvf_IIK3*AJU_?+#=te~}86=O1RYzr$I&F@pd} zHJvT8ok%JW*I!Os>n{&OAys|n_?t&w6{3LqTyP@6Xc2Yx*Moi0REjPYp7GaP1%C|z`^zz@`}R4e)bHPdD+M*R$QmL8q#EbE&uU}) zwgf{Vm3-^8W(s*FhyoV5;7EcMi0*wk$rl|!(K*61eQQHrKBBgGn|j?f7#no&K4kvs z_o*UPmYn}Uc>d4k`432{>THqiL{fpcK65UyKJzdXQq?ZU=RESN5Cz=lf)fcwi>UK_ z9qfyyQgo^CjL%-=?LyQ(Gt}!Z+2nguk*Uvrh06X9Gd%xE9D^v;46#V*(>(uyxc&-T zTYtMT6jC!O#h(AjEzwg9N`j_hdW+v9(s3+Q(i5qXw6HPdgaVtc0OMafEjo%JP++A&v-9*L$ac>E$ z6KqR1V<@CZsou0?33-uJEdAO6g9Mw^5*^`-j-}`t;hB~UAg>TnjyT^16A2!XC_i~R zSx|G~#}b`Q>IfGs&(QW)NK&w}CB7wBp2WYz)Q9_F|_$spM@(6mXRb_9M6t(Y^J>`=VVbI#GD0dC}xe zr08uf_|r_?fy`Q>pI&4u-G`wRbCK{&TR$Z4M)34W`srGE2pz;u*!%S>|9-jziPE>3 zldjZ_e9lZ<(_K$Y<3vUQXu7i_s9uODhhA!tWFp@ox=pyiuQ!qPJ_3?GEgO*c2o-O3 z!Q(;QgqgKOH?^`&_zpvJJXqQ8& znB;;x2&Rds^LOf{zUVp(rIP9|9GCOSO9W55y!CBynU8I=_cb#A^gN!7Y~}MKAlm0G z6!;iX)R$PK2a#e#*JoqDq_!++w3K9gMvym}ii2J7$aLL=X(H>G#rrHo=JD?qaTQpj6D#W^n6hG0ITyMEQptiQ$- z9VR^EuWXw3Hw!%N?|kJiPW*L5rt-HNS<2sqn9=L^0f{YGO_)U%66q?XIR3`@rOd`q znzH>f$6qRW+Ytp^<%0bP?n89fFWwjJO3{hJGybB~xqRt$v{C8e1AOAdKaR4m)(fU^k3i>UMWmXW^bIEv;9&-fcm-VsFYFE>a0 zO~g*zdls3>Uw4JV-{Y9k{+f{Z1frCBw?(R^Xy@~Qxc-WpT7Mx7h15YxG5!k4>p;b5 z7hFoPmxwz4rum}tD7x!Y$6q>m^}*BrPP{Ju=3`s!y@O2UZ#c5l`S}WFw7+g7zKSTN zPPa%iB5M#`f92;}e~~O@fRtkVl{~KdGJuMSE?7ixq=-8H7W<-WFqBFvwmSaikkwE1Zw>O3Fv<80H4F_cQ;glFzAtH|pIp7wXw5?Q}p*e`p>x6t1LWa;N0X0*Qv zB>sRXss$DqL8Khf_1D!eCBRa$K(hW4$jhQ)x(n7PxL8D;=li}U)?Yb>Qc05VjK3X| zbzjoJ)BfiDQ~Xt6E9^Byrdq!|Wa;N$k@5E;iGLu9>H&*PA<|e%aqgc({ZdA;locRZ ze<|dxpyC`CY(p>~(Otjl^Q^zd6dfi!EzW1Py72=t>1iXt-W`U zsr(H`mb(64!Ho9Tjl@?GrPS#bX+~rXqU*0b*7}QNDFdVwCmmhyKYX7u`fKw=A46K0WxM7l~Tj=yn!DYG$@rfko5{H2n&9Z|ql zF4&LYK16r@;(gJs6rCtM<1d=LrHIa!RhZHKzQL4w{(&gf zw6e%LB15GV$KSk$w$;lp6jJHOj=vyzrHBIVaKSW!)rju;_3}lBQgpuXjK4(kiV(HG zUtSV_!?1bx9!93}*HoeM`VTYO-!JLf-<^P@n%)-KLu4Ef*Wa2b>u)QDLW+`7%>5;Y zyeKM`t#`m#1mi{2xqpuIMaNMzS9tdIA9+U*wZC@C-$ZP}y=RfB{B>8TJpVAG{WT%+ z2}CLNZi`fn(az@qas3saZT*EX6jBE%#rP{EuLBjMU2rMEULxw;U#9t@^C-G&9YoFg zrIS}5Jne7Hi?V+6v9(6f4SH$d!Hdw`J0R^ z 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

GpITs?dpW2kSoKVuH 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

    9UC<~Z3 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 z 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

    >}FBLwMT60)|_dgIOiX8 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 z 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

      NO&>Ql7K*Yf$YW1O3W39V?L6i)a;% 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 RZRPRF(T{EWeL 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 z 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

      r9LtgnD(H#GU-i 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

      r9wild7lB(y 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

      U@t1U zrE-~+bCX~vDtV-Ggp>o5AUZTm&nuNJq^zF=Pea1=*QK(AlzEfj2`UApGL@8xli(Lr z-jd32Qie=|Tc{M0N)J-HOoAJz6mByqP_!VW@g%r{ioAS|$Z`H3t3f{@;KNBUH#FSS zpzn}Ua1yLUg&Oo#QnF5hrKkkR6S+wVoCNbxp(cKuAS?by0;~)P_cZY>Qm!PxR#d2o zPm^*q0XCvSO}v|wtqHIe6>8$uq%2KNap+;{{O3MT|8j``&==DgckpLG_p+>Jj%Et+C78Ppr;-nNwfRm_Dqvs(dM*?gQ z$>?eHP*Q>u;5$^P(VtF~b^mK397Kg0{TEVhOoZL2P@|tE<>W;8DoRmWo;0h|#2ey;4aROXKh5Ep9QWj2tKU}Go zc?v0$C%|1)s1J-HW#|O>6%}gn-lRlLfGMcZW!{>UrV}6m6>9NXq*R#z6HuWR|Adqe zC%{-#sKwtQrQihk3sNuhS4qi=@t{I2?j|L00^CD|TKsW5_5XPI6%}gnTclixhwoge zm-%T@j>f}5ROm9_P0H4I*pCXe?`l$(#=}BXsC{RWk`xbfQK9x7OUj6Nn2k!|!SUGt zN$D96(@~L^`Bpi6+b;8l1k{d)e_g4Uc_mWH$3t9D>Sg{uDeuO^2vq1Ye}k0Q;vpIp zYT^u}q>G31kb0RvA1^EZ_jtIC3N`U>r2I49VdQtFR~ z$*54HS0<(6co>fgHF{}MN}y**z03=cl6O2jMui$Z3n^h3Au8190i-+|2X|4SM!!E! zX5-E{*zHQa%rBF2ZX6s%g&O?`DF?>EAynux-$Kgzaj+K^>IO?lnKuqnP@!%xm6VC& zU@RF)XGSJBDcQ#bxHXY!9Q+o7YXedbB3&c>pRte} z`idU-w$R+Tm?B-@9xGj68w^j&E_=e1D#=^AF z9J;my4_H9TEIJ^0EX)YasYlbuGnNb^#=_{(SM?Z@`jOOQEUXWGO&>~uw$>*am_YF}Dc8ry%3c}+>q6hqweQDhxjaiv-^r%{Y@Yq{X1sk2 zd@D!eB{9a=qzko&-|Hj)8w%`8>@NO-lbUvX(u^z!Fz}PxG`V zy(Q^Q#=t{Y0Y~$EN#@VSz%o}sT`PkTmn5YaMO=6ctZ=>MXr63j&Nv1hxeDo;8xL@i zBItl8aqzdRu*HXg z3;U1FJU0%W@`NijG*GW_5~hMfs~Kw zh*G0rR!|9jg#KdwUKpZ>bqDMBKV|c*fFX980mk7w|0m%5m@BNZIVajD!av@9EmLk%8hzQqGQq zxX|}?&4%tH!;XPHIfBgfM?y;Ihq_iB535XiMbgWSgw>&C^uRWrvD+43KB97u zgnJ<$VgJYDGLaH85=MlU)ioGNOMEiECnIF7AB>QF@9qfrBjjUUyEP(ETqFG=>1Rg3 zsL*mc934U9rtL&qiP|s%riXr_Yb)`%rKHRs0c%6c3emGhJ&l!W?gprjEA<<#=0d1RTa~&_mC7dkn{0XA{0nz6y+h)vgLS z{-gJtq+}TZXIvE>O{kOM>2P@J`drr@;P<}whEw|whq*zO98LHG8BPqBO?Y@XEOmXM zYkTm39i(p}ecf<4?)uWvgtN(vzu^q|VBCTvMmli{%3 zRR!OF;Bhrb`D!?vbXCRm@8RCemLx;5;j#$}4~LbmYPkN32jnI_JL#E*!)aG_9bW7! ze-D$@{&N^ScGb|eJHrCSPo!KO1~Y?d;`;9}?}?6*;ovZNqTR#biK~{bZN>vOkiMGq zrNdx$P;K4y3O=Y}PGe1ue~VKB;tPKsJi@(qK{(#dOR&OQuwq7(f^C(mOcS~__Y8z}ya zg<;akomg)qS7KqKbaEEWr(g;%bd7U)5tFNj}t7Li1;_FcxR_iqyOn z3s`=HSog5$PP0hZc zkRY9GL-VGgFa@0itQqQ?nps2PymT@ZsYyfOqI5FGauPih#!DxC(cE(=Opw*->@nk* zy)AX@{#uURb%(+?xD8⋙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%0AWREkcc=z1aL2v6!$wi{4%L&}pz6y2Ee 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 JV-6 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 Q{cfZEe6u5}v`F^<08g1y!vFvP literal 0 HcmV?d00001 diff --git a/tools/irix/root/lib/libmalloc.so b/tools/irix/root/lib/libmalloc.so new file mode 100644 index 0000000000000000000000000000000000000000..9fbe1b0e89d8acd13271fca5fa1973217e961ffd GIT binary patch literal 28216 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

      &dSLo@JO@>=Z8 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�ygSjWQWtqqjrQJ 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 z%0D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 z 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 K%@9-0Z~bo_2EN7s literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/bin/cc b/tools/irix/root/usr/bin/cc new file mode 100644 index 0000000000000000000000000000000000000000..2936fc3fda571fd738734a8d764797a45de66fee GIT binary patch literal 275168 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 o5Wd`&nXys!5Rpp*j<+8mK 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 qCrm3K^#a`!VpDhcTbA5&bVRng17*P4$HU literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/as1 b/tools/irix/root/usr/lib/as1 new file mode 100644 index 0000000000000000000000000000000000000000..c246db5371e00055ace8cc7557f9c5e2ccf3883b GIT binary patch literal 816064 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 jf`w|WAxHL*D!i%<{HIv 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 literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/cfe b/tools/irix/root/usr/lib/cfe new file mode 100644 index 0000000000000000000000000000000000000000..305a50be424c5e8f8cd70b8283d8bd4b5a02483b GIT binary patch literal 902800 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�H#=926*;#JIroZ4KrFTQtO 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 GhUmYA^SPSMp1u*;Y2(8NviX=C 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Ð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

      uKf3eX5z!G=*P2(-7>qw$DGlTyi$ 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 z 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 OHJW^%4dP0f)c*l(l+thj literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/crt1.o b/tools/irix/root/usr/lib/crt1.o new file mode 100644 index 0000000000000000000000000000000000000000..3052ae2739d4b1c366691dc0000aeb7011776643 GIT binary patch literal 3612 zcmdT`&re)c6h3ce3Ntvh53H4Ht1}H0jP(sfOxk2(m{!nQS_rzSnoI{~fY-pxIPcLE zH)WxXi6p2oQIo1H+Qujem~`1D#8l(Lr2GLcST=4XjSF`8efQn>c#NTCW%MNHo%5Y@ z@44rmcYj^!8|XJ8h6H3t9J+7l5lP+xj!KWDBqE)Xka*Q=JnISdZPj`VlFa@KU`<9B zOkmj~V){lUABb^jo1qRw*LvGy&0ap)Ln0m5kj%GhX+t*J=dX)oF;d43jG2w6=h7l= zH=)POS^23ey?E5~`@ZZ!k;S&{wrKX(^!y3LxU+eG>9&|l3$kBiy*--RNG!IC%)`ch zemkZ|AEokPwpq+7+WXV4Du<+UXcj#>yX56Av@xCA&Cb>;?F`B zA)kZ9EE2?Xki-kR|83p>y6(TC`+uj$yQ{}r6lr4r-yqrlK9<IwbK!shWsBfd>6x zte;BN$snX z9u}$VBk03gd<8~5>*E&Ae>AbapsXt5n>~ zv{TF2<2qf=yIgI2)DxE=YLmr$W#nRhqEskK>9Xwx^Us&cm+V@l3GlP# z9U62z+w*z{2K1Vb^$Y2JU^ORTjz0@-1am`kysOkny8WDo0{ofAaqaitS22yhscV0u z4*#$XTe$V?@>s>cNNT0YZCA=vu{1J0jw{5ixrGtPnJFblD^u0NsEf;L62=Mb_CxPR z8dde~Q#D}wS#T>AO?=Q1^IgGuHGoMAfGOD`|KUfe-u|A;ScO~$v$m`=Ys>%iG&mH` zSONB9Kn?U%6?={bk0J{Q#kZ?Zj7RDO>(Uc8_2Ba(HBIVYL+=7J4^2&fAq@ "" +2) Please compile this program with the preprocessor enabled. +Unknown character %s ignored +The character is not part of the source character set. +2.2.1 +Unknown control character \%s ignored +The control character is not part of the source character set. +2.2.1 +Illegal character %s in exponent +1) Digits or sign expected after 'e' or 'E'. +2) Digits are expected after sign in exponent. +3.1.3.1 +Constant is out of range and may be truncated. +The constant is too large to be accurately represented and may be +truncated. The limits are in the system include file limits.h. +2.2.4.2 +Constant is out of range for a 32-bit data type, but accepted as written. +The constant is too large to fit in a 32-bit data type, but will be +accurately represented in a wider data type. The value may be truncated, +depending on its context. The limits are in the system include file +limits.h. +2.2.4.2 +Character constant size out of range +1) No characters in a character constant. +2) More than 4 bytes in a character constant. +3.1.3.4 +Wide character constant size out of range +1) No characters in the multibyte sequence (0 assumed). +2) More than 1 byte in the multi-byte sequence (only the first byte was converted). +3.1.3.4 +Invalid multibyte character +4.10.7.2 +Newline in string or character constant +1) Terminate your string or character constant with closing quotes. +2) Put a backslash before the newline. +3.1.3.4, 3.1.4 +Octal character escape too large: %s > %s +1) Terminate end of octal sequence with a non-octal character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Hex character escape too large: %s > %s +1) Terminate end of hex sequence with a non-hex character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Unexpected End-of-file +1) Unterminated string or character constant +2) Missing closing comment marker (*/) +3) File system problems +Unrecognized escape sequence in string \%s +Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. +Character will be treated as un-escaped. +3.9.2 +Illegal octal digit %s +Octal constants, beginning with 0, must only have digits between 0 and 7, +inclusive. +3.1.3.2 +Unable to open temporary file for compiling %s +1) TMPDIR environment variable is set to a directory that you have no + permissions for. +2) The file system is full. +3) System errors beyond the scope of the compiler. +%s: Hangup +%s: Interrupt +%s: Quit (ASCII FS) +%s: Illegal instruction (not reset when caught) +%s: Trace trap (not reset when caught) +%s: IOT instruction +Also SIGABRT, used by abort, replace SIGIOT in the future +%s: EMT instruction +Also SIGXCPU, Exceeded CPU time limit +%s: Floating point exception +%s: Kill (cannot be caught or ignored) +%s: Bus error +%s: Segmentation violation +%s: Bad argument to system call +%s: Write on a pipe with no one to read it +%s: Alarm clock +%s: Software termination signal from kill +%s: User defined signal 1 +%s: User defined signal 2 +%s: Death of a child +Power-fail restart +%s: Also SIGXFSZ, exceeded file size limit +%s: Window change +%s: Handset, line status change +%s: Sendablestop signalnot from tty +%s: Stop signal from tty +%s: Pollable event occurred +%s: Input/Output possible signal +%s: Urgent condition on IO channel +%s: Window size changes +%s: Virtual time alarm +%s: Profiling alarm +%s: Continue a stopped process +%s: To readers pgrp upon background tty read +%s: Like TTIN for output if (tp->t_local<OSTOP) +%s: Resource lost (eg, record-lock) +'auto' and 'register' are not allowed in an external declaration +3.7(10) +must have function type +3.7.1(30) +Functions cannot return arrays +3.7.1(33), 3.3.2.2 +Declaration list not allowed +3.7.1(5) +Too many input files %s +The command line may contain only one file +cpp internal error: input stack underflow +cpp internal error: if stack underflow +Cannot open the file %s +No new-line character at the end of the file %s +2.1.1.2(30) +Fatal: Exceeded the limit of nesting level for #include file +Fatal: Exceeded the limit of nesting level for #include file. This limit +is 200. +Fail to read the file %s +Cannot write the file %s +%s: %s: An if directive is not terminated properly in the file +%s: %s: nested comment +%s:%s: Illegal macro name %s; macro name shall be an identifier +%s:%s: Illegal preprocessing token sequence +3.8.3(35) +%s:%s: Illegal macro parameter name +%s:%s: Non-unique macro parameter name +3.8.3(18) +%s:%s: Missing ')' in parameter list for #define %s +%s:%s: Missing ')' in macro instantiation +%s:%s: Bad punctuator in the parameter list for #define %s +%s:%s: Macro %s redefined. +%s:%s: # operator should be followed by a macro argument name +%s:%s: Badly formed constant expression%s +3.4(9), 3.8 +%s:%s: Division by zero in #if or #elif +3.8 +unknown command line option %s +extraneous input/output file name %s +%s: %s: Unterminated string or character constant +A preprocessing string or character constant token was not +terminated. Note that preprocessing directives are processed +after the source file has been divided into preprocessing tokens. +2.1.1.2(30) 3.1(18) 3.8 +%s: %s: +%s: %s: +%s: %s: Unterminated comment +%s: %s: Unknown directive type %s +%s: %s: #elif or #else after #else directive +%s: %s: Bad identifier after the %s +%s: %s: #%s accepts only one identifier as parameter +3.8 +%s: %s: Bad identifier after the %s +%s: %s: text following #%s violates the ANSI C standard. +3.8 +%s: %s: Bad character %s occurs after the # directive. +3.8 +%s: %s: the ## operator shall not be the %s token in the replacement list +3.8.3.3 +%s: %s: the defined operator takes identifier as operand only. +3.8.1 +%s: %s: Not in a conditional directive while using %s +%s: %s: Illegal filename specification for #include +%s: %s: Invalid file name %s for #include +%s: %s: Cannot open file %s for #include +%s: %s: Bad argument for #line command +%s: %s: #error %s +%s: %s: Tried to redefine predefined macro %s, attempt ignored +3.8.7(22) +%s: %s: Undefining predefined macro %s +3.8.7(22) +%s: %s: Undefined the ANSI standard library defined macro %s +4.1.2.1(9) +%s: %s: The number of arguments in the macro invocation does not match the definition +%s: %s: Illegal character %s in preprocessor if +%s: %s: Illegal character %s for number in preprocessor if +%s: %s: No string is allowed in preprocessor if +%s: %s: Not supported pragma %s +%s: %s: Not supported #pragma format +%s: %s: ANSI C does not allow #ident; %s +%s: %s: Not supported #ident format +This cpp extension accepts the following format: +#ident "any string" +%s: %s: Not supported #assert/#unassert format +This cpp extension accepts the following format: +#assert identifier +#assert identifier ( pp-tokens ) +#unassert identifier +#unassert identifier ( pp-tokens ) +%s: %s: Bad assertion predicate format +The correct syntax for this cpp extension is: +#assert identifier ( pp-token ) +%s: %s: directive is an upward-compatible ANSI C extension +%s: This option requires an argument +%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. +A status return from cpp to cfe +Syntax Error +The token read was unexpected. +Syntax Error -- cannot backup +The token read was unexpected. +Yacc stack overflow +The expression is too complicated to parse. +Trailing comma in enumerator list +The use of a trailing comma in an enumerator list is not standard C. There +may be portability problems. +3.5.2.2 +Empty declaration +Empty declarations are invalid in standard C. +3.5 +%s declared, but not referenced. +redeclaration of '%s'; previous declaration at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +'%s' undefined; reoccurrences will not be reported. +Non-function name referenced in function call. +3.3.2.2(18) +The number of arguments doesn't agree with the number in the declaration. +3.3.2.2(5) +'%s' section name longer than 8 characters. Name truncated. +'%s' is already placed by pragma alloc_text. +Cannot write ucode file while compiling %s +1) The file system is full +2) Permissions problem +Must have corresponding formal argument for '%s' +Parameter found in the declaration part, but not in the argument list. +3.7.1(7) +Non-prototype declaration is an obsolescent feature. +The use of function definitions with separate parameter identifier +and declaration lists (not prototype-format parameter type and +identifier declarators) is an obsolescent feature. +3.9.5 +Incompatible function declarations for %s +For two function types to be compatible, both shall specify compatible +return types. Moreover, the parameter type lists, if both are present, +shall agree in the number of parameters and in use of the ellipsis +terminator; corresponding parameters shall have compatible types. If +one type has a parameter type list and the other type is specified by +a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. If one type has a parameter type list and the +other is specified by a function definition that contains a (possibly +empty) identifier list, both shall agree in the number of parameters, +and the type of each prototype parameter shall be compatible with the +type that results from application of the default argument promotions +to the type of the corresponding identifier. (For each parameter +declared with function or array type, its type for these comparisons +is the one that results from conversion to a pointer type. For each +parameter declared with qualified type, its type for these comparisons +is the unqualified version of its declared type.) There you have it! +3.5.4.3(15) +Incompatible function return type for this function. +For two function types to be compatible, both shall specify compatible +return types. +3.5.4.3(15) +The number of parameters for function is different from the previous declaration +The parameter type lists, if both are present, shall agree in the +number of parameters and in use of the ellipsis terminator. +3.5.4.3(15) +Incompatible type for the function parameter +If both parameter type lists are present, corresponding +parameters shall have compatible types. +3.5.4.3(15) +Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. +The redeclaration could cause arguments at a call site to be passed +inconsistently with what the function implementation expects, and +parameters would therefore be accessed erroneously when executing the +function body. Note that a float argument is promoted to a double +when passed (potentially through fp registers) to an unprototyped +function. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, ellipsis terminator not allowed +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the type of each parameter shall be +compatible with the type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other is specified by a +function definition that contains a (possibly empty) identifier list, +both shall agree in the number of parameters, and the type of each +prototype parameter shall be compatible with the type that results +from application of the default argument promotions to the type of the +corresponding identifier. +3.5.4.3(15) +Empty declaration specifiers +Standard C requires at least a storage class specifier, type specifier, +or a type qualifier in declarations. 'extern int' assumed. +3.5 +Can't write to the file %s +1) The output file cannot be opened for writing. +2) Out of file space. +Duplicate '%s' +typedef, extern, static, auto, register, const, volatile may not +appear more than once in the same specifier list or qualifier list. +Duplicate occurrence ignored. +3.5.1(10) , 3.5.3(5) +Null input +There is nothing to compile. +Illegal type combination +3.5.2 +Missing ';' at end of structure / union member declaration +In standard C, each member declaration must be terminated by a ';'. A +terminating ';' is assumed. +3.5.2.1 +Missing member name in structure / union +In standard C, each member declaration have a member name. The missing +member is assumed to not exist. +3.5.2.1 +This variable is initialized twice. +Neither 'const' or 'volatile' have any effect on function results. +Qualifiers only apply to expressions designating an object that +can be altered or examined. +3.5.3(10) +An integer constant expression is required here. +The expression that defines the value of an enumeration constant +shall be an integral constant expression that has a value +representable as an int. +3.5.2.2(28) +(previous declaration of '%s' at line %s in file '%s') +Must be an integer type greater than zero. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +Array size cannot be a long long. +Arrays with more than 2^32 elements are not yet supported. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +bit-field '%s' width is not an integer constant +The expression that specifies the width of a bit-field shall be an +integral constant expression. +3.5.2.1(15) +bit-field '%s' width is negative +The expression that specifies the width of a bit-field shall be +non-negative. +3.5.2.1(15) +bit-field '%s' type required to be int, unsigned int, or signed int. +A bit-field shall have type int, unsigned int, or signed int. +3.5.2.1(30) +bit-field %s's type not integer. +Non-scalar type or pointer type to a non-object for increment or decrement operator. +The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. +3.3.2.4(37), 3.3.3.1(25) +Assign value to a function type. +An assignment operator shall have a modifiable lvalue as its left operand. +3.2.2.1(5) +Assign value to an array. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for variable of incomplete type. +The operand of increment and decrement operator shall be a modifiable +scalar lvalue. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. +This is a restriction in our implementation, which can be worked +around by always accessing long long bit-fields indirectly (i.e. +by means of the '->' operator). +This expression is not an lvalue. +3.2.2.1 +Modified an rvalue. +3.2.2.1 +Change value for constant variable. +The operand of increment and decrement operators shall be modifiable +scalar lvalues. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for constant field of a struct or union. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Dereferenced a non-pointer. +The operand of the unary * operator shall have pointer type. +3.3.3.2(39) +The operand of the unary + or - operator shall have arithmetic type. +3.3.3.3(6) +The operand of the unary ~ operator shall have integral type. +3.3.3.3(6) +The operand of the unary ! operator shall have scalar type. +3.3.3.3(6) +Constants must have arithmetic type. +3.1.3 +Bad type name for cast operator +The type name for the cast operator should either be void or a +qualified or unqualified scalar type. +3.3.4(22) +Improper cast of non-scalar type expression. +The operand for the cast operator shall be of scalar type. +3.3.4(23) +Cast a pointer into a non-integral type. +A pointer may be converted to an integral type. +3.3.4(31) +Cast a non-integral type into a pointer. +An integral type may be converted to a pointer. +3.3.4(31) +Duplicate member '%s' +Two members of a struct may not have the same name. +3.1.2.2(7,25) +Invalid constant expression. +Constant expressions shall not contain assignment, increment, decrement, +function-call, or comma operators, except when they are contained within +the operand of the sizeof operator. +3.4(9) +Constant expressions must be derived from a constant value or a constant +variable. +3.4 +Dangerous operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. This operand is NOT an lvalue, but we let it pass. +Note that a segmentation error with possible core dump will result +when the resulting address does not denote a valid (declared) +storage location. This feature will be discontinued in future +releases of the compiler! +3.3.3.2(36) +Unacceptable operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. +3.3.3.2(36) +'&' before array or function; ignored +Unacceptable operand of sizeof operator. +The sizeof operator shall not be applied to an expression that has +function type or an incomplete type, to the parenthesized name of such +a type, or to an lvalue that designates a bit-field object. +3.3.3.4 +Unacceptable operand of a multiplicative operator. +Each of the operands of a multiplicative operator shall have arithmetic type. +3.3.5(18) +Unacceptable operand of the remainder operator +Each of the operands of the remainder (%) operator shall have integral type. +3.3.5(18) +Unacceptable operand of '+'. +For the + operator, either both operands shall have arithmetic type, or +one operand shall be a pointer to an object type and the other shall +have integral type. +3.3.6(39) +Unacceptable operand of '-'. +For the subtraction operator, one of the following shall hold: both operands +have arithmetic type; operands are pointers to qualified or unqualified +versions of compatible object types; or the left operand is a pointer +to an object type and the right operand has integral type. +3.3.6(39) +Unacceptable operand of shift operator. +Each of the operands of bitwise shift operators shall have integral type. +3.3.7(9) +Unacceptable operand of relational operator. +For relational operators, one of the following shall hold: both +operands have arithmetic type; both operands are pointers to qualified +or unqualified versions of compatible object types; or both operands +are pointers to qualified or unqualified versions of compatible +incomplete types. +3.3.8(32) +Unacceptable operand of == or != +For the == or != operator, one of the following shall hold: both operands +are pointers to qualified or unqualified versions of compatible types; one +operand is a pointer to an object or incomplete type and the other is a +pointer to a qualified or unqualified version of void; or one operand is +a pointer and the other is a null pointer constant. +3.3.9(21) +Unacceptable operand of &. +Each of the operands shall have integral type. +3.3.10(7) +Unacceptable operand of ^. +Each of the operands shall have integral type. +3.3.11(18) +Unacceptable operand of |. +Each of the operands shall have integral type. +3.3.12(30) +Unacceptable operand of &&. +Each of the operands shall have scalar type. +3.3.13(7) +Unacceptable operand of ||. +Each of the operands shall have scalar type. +3.3.14(20) +Unacceptable operand of conditional operator. +The first operand of conditional operator shall have scalar type. One +of the following shall hold for the second and third operands: +both operands have arithmetic type; both operands have compatible +structure or union types; both operands have void type; both operands +are pointers to qualified or unqualified versions of compatible types; +one operand is a pointer and the other is a null pointer constant; or +one operand is pointer to an object or incomplete type and the other +is a pointer to a qualified or unqualified version of void. +3.3.15 +Duplicate label '%s' +A label name can only occur once in a function. +3.1.2.1(25) +Division by zero. +3.3.5 +Subscripting a non-array. +3.3.2.1 +Subscripting an array of incomplete type which is not an object type. +The element of the array shall have an object type. +3.3.2.1 +Should only subscript an array with an integral expression +3.3.2.1 +Subscripting an unbounded array +3.3.2.1 +Array index out of range +3.3.2.1 +Selector requires struct/union pointer as left hand side +In K&R mode the expression is implicitly converted to the '.' selector +for a struct/union left-hand side. +3.3.2.3 +Selector requires struct/union as left hand side +In K&R mode the expression is implicitly converted to the '->' selector +for a struct/union pointer left-hand side. +3.3.2.3 +member of structure or union required +3.3.2.3 +types have different qualifier specifications +For two qualified types to be compatible, both shall have the +identically qualified version of a compatible type; qualified +and unqualified versions of a type are distinct types. For two +types to be compatible their types must be the same. +3.5.3(26) +Incompatible array type due to different array size +For two array types to be compatible, both shall have compatible element +types; if both size specifiers are present, they shall have the +same value. +3.5.4.2(11) +Incompatible array type due to incompatible element type +For two array types to be compatible, both shall have compatible element +types. +3.5.4.2(11) +Incompatible pointer type assignment +The type pointed to by the left-hand side of simple assignment +statement is incompatible with the type pointed to by the right-hand side. +3.3.16.1, 3.5.4.1(21) +Incompatible base type of pointer type +K&R feature. +Type %s of %s is incompatible with type %s of %s +Incompatible types can be resolved by casting or by other means. +3.3.16.1 +illegal combination of pointer and integer +Assigning an integral expression to a pointer is a bad practice. +Type for %s is incompatible with %s +Incompatible types can be resolved by casting or by other means. +3.1.2.6 +Bad operand type for += or -= +3.3.16.2(26) +A case or default label appears outside a switch statement +A case or default label shall appear only in a switch statement. +3.6.1 +The controlling expression of the if statement is not scalar type +The controlling expression of an if statement shall have scalar type. +3.6.4.1 +The controlling expression of switch statement is not integral type +The controlling expression of an switch statement shall have integral type. +3.6.4.2(20) +The case label is not an integral constant expression +The case label shall be an integral constant expression. +3.6.4.2(22) +Duplicate case label in the same switch statement +No two of the case constant expressions in the same switch statement +shall have the same value after conversion. +3.6.4.2(22) +More than one default label in the same switch statement +There may be at most one default label in a switch statement. +3.6.4.2(23) +The controlling expression of the iteration statement is not scalar +type +The controlling expression of a iteration statement shall have scalar +type. +3.6.5.1 +label '%s' used, but not defined +The identifier in a goto statement shall name a label located +somewhere in the enclosing function. +3.6.6.1 +A continue statement shall appear only in or as a loop body +3.6.6.2 +A break statement shall appear only in or as a switch body or loop body +3.6.6.3 +A return statement with an expression should not appear +in a function '%s', whose return type is void +3.6.6.4(24) +A return statement without an expression appears in a +function '%s', whose return type is not void +If a return statement without an expression is executed, and the value +of the function call is used by the caller, the behavior is undefined. +3.6.6.4(33) +Internal Error: statement stack underflow +Long double not supported; double assumed. +Long float not standard; double assumed. +Only 'register' allowed in parameter declaration +The only storage-class specifier that shall occur in a parameter +declaration is 'register'; illegal storage class ignored. +3.5.4.3(25) +Name(s) without types in a function declaration +An old-style function declaration is not allowed to have names +in the parameter list; useless names ignored +3.5.4.3(26) +Functions cannot return functions +3.7.1(33), 3.3.2.2 +Functions cannot return a non-object type +3.3.2.2 +enum declaration must contain enum literals +Although structs or unions may delay the declaration of their members, +a similar construction with enum does not exist and is not necessary, +as there can be no mutual dependencies between the declaration of an +enumerated type and any other type. +3.5.2.3(27) +Register qualification has no effect for this type of object +Register declarations for array, struct, and function types have +no effect. +3.5.1(16), 3.5.1(19) +Functions cannot be declared 'register' +The declaration of an identifier for a function that has block +scope shall have no explicit storage-class specifier other than +'extern'. +3.5.1(19) +'%s' cannot be initialized +The type of the entity to be initialized shall be an object type +or an array of unknown size. +3.5.7(32) +Cannot initialize 'extern' variable '%s' within a function +If the declaration of an identifier has block scope, and the +identifier has 'extern' or 'static' linkage, the declaration +shall have no initializer for the identifier; initialization +allowed anyway. +3.5.7(35) +initializing an 'extern' is an ANSI C extension +conflicting declarations for '%s' +'static' and 'extern' declarations conflict. Which is meant? +3.1.2.2(15), 3.1.2.2(27) +Too many initial values for '%s' +3.5.7(1) +incompatible types in initialization +3.3.16(35) +redefinition of '%s'; previous definition at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +bit-fields as members of a union are an ANSI C invention. +storage size for '%s' isn't known +type mismatch in initialization +Missing braces in a union initialization or illegally formed +initialization. +3.5.7(5) +union '%s' only allowed one initializer for the first member +3.5.7(5) +width of '%s' exceeds its type +the specified bitfield width is too large to be contained within a +bitfield type. +structure has no member named '%s' +This is allowed for compatibility with AT&T pcc-based compilers. +Reference of an expression of void type or an incomplete type. +3.2.2.1 +element size of an array shall not be zero +3.2.2.5(25) +invalid combination of type specifiers +Although order is unimportant, not all type specifiers can occur together. +3.5.2 +declaration must at least declare an identifier, tag, or the member of an enumeration +3.5(16) +at most one storage class may be given in the declaration +Duplicate occurrence ignored. +3.5.1(10) +size of function's return type is zero +The return type of a function must be void or an object type other than array. +3.7.1(33) +Expecting an integral return type from the main function +identifier missing from parameter declaration +Prototypes for function definitions require identifiers in parameter +declarations. +3.7.1(4) +only 'register' allowed for storage class for parameters +The declarations in the declaration list shall contain no storage class +other than 'register', and no initializations. +3.7.1(10) +parameters declarations can not have initializations +3.7.1(10) +only one instance of 'void' allowed in the parameter list +'void' must occur by itself (specifying that the function has no parameters). +3.5.4.3(1) +%s must have function type +1) An argument list must be explicitly present in the declarator; it cannot + be inherited from a typedef (3.5.4.3). +2) The declarator is not a function. +3.7.1(30) +Illegal hexadecimal constant +You have no digits after the 0x or 0X. 0x0 assumed. +3.1.3.2 +value overflows its type in this context. Value is set to be '%s'! +3.2.1.4 +value is outside range representable for type '%s' +missing member name +K&R mode permits a missing member name; otherwise, only bitfields can omit +the member name. +3.5.2.1(10) +useless keyword or type name in declaration +Type was ignored. +'%s' declared within and is limited to this function prototype +Possible program error, since parameter type checking will always fail +unless the type declaration is visible to the caller. +3.1.2.1(35) +Extra spaces within operator, %s assumed +In ANSI C, the compound assignment operator cannot have embedded +white space characters. +3.1.5 +missing size for array '%s' +Incomplete types permitted for identifiers with internal or +external linkage, but not automatic linkage. +3.1.2.5(10) +can't jump into (from outside of) the body of a 'try' or into either type of handler +'%s' missing, please #include excpt.h +excpt.h required to declare exception statements, intrinsics or compiler +runtime names. +local function declarations cannot be 'static' +A function declaration can only contain the storage-class 'static' +if it is at file scope. Declaration made 'extern'. +3.5.1(19) +static function '%s' declared and referenced, but not defined. +If an identifier declared with internal linkage is used in an +expression (other than as a part of the operand of a sizeof +operator), there shall be exactly one external definition for +the identifier in the translation unit. +3.7(12) +pragma argument '%s' must be declared prior to being used in a pragma +Pragma name ignored. +Pragma not supported +'%s' not enabled as intrinsic +It may have already appeared in a function pragma, or never occurred in +an intrinsic pragma. +'%s' is already enabled as an intrinsic +weak definition for '%s' is later redefined; pragma weak ignored. +definition of primary name '%s' not found; pragma weak ignored. +definition of secondary name '%s' not found; pragma weak ignored. +primary name '%s' is declared as a common or external, and is not defined +with initial value within this file; pragma weak ignored. +useless '%s' storage class ignored +array of functions not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +array of voids not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +argument for pragma pack must be an integer constant; pragma ignored +'%s' has wrong tag type. +Identifier redeclared in the same scope/block. +3.1.2.3 +missing dimension bound +For multidimensional arrays, the constant bounds of the array may be +omitted only for the first member of the sequence. +3.1.2.5(23) +Internal error in parameters to function substr; loc: '%s'; len: '%s'. +Internal error in parameters to function insertstr; indx: '%s'. +Internal error in function get_tag_name; input is a non-tagged type. +Internal error in function gen_type_str -- not a type tree '%s' +Cannot open file '%s' +Prototype should be moved after tag or a typedef declaration. +Please look for comments in the extracted header file. +The extracted header file includes prototypes for static functions, +which should be removed, if you wish to include the header in a source file +other than the originator. +ANSI C requires formal parameter before "..." +This extension is meant to be used for compatibility with varargs.h +3.5.4.3(35) +syntax error: "&..." invalid +extension used to access "..." formal arguments. +function '%s' initialized like a variable +The type of entity to be initialized shall be an object type or an +array of unknown size. +3.5.7(31) +initializer not an array aggregate +The initializer for an object that has aggregate type shall be a +brace-enclosed list of initializers for the members of the aggregate, +written in increasing subscript or member order. +3.5.7(20) +'%s' type is incomplete; cannot initialize +Was the struct ever defined? +3.5.7.(31) +'%s' is not standard ANSI. +This keyword/type is not defined in strict ANSI mode. +3.1.1 +not a legal asm string +The first operand of an asm string should be, after argument substitution, +a legal assembly string. +The -float option will be ignored in ANSI mode. +The -float option is ignored, since otherwise program semantics would +violate the ANSI standard. In particular, fp constants are always +'double' with ANSI-C, while with -float the type of fp constants will +depend on the context and may be 'float'. +ANSI C support unavailable with C compiler bundled with RISC/os +The C compiler bundled with RISC/os does not support ANSI C. ANSI +C support requires a separate license. +Ignored invalid warning number(s) in -woff option, %s%s ! +Warning numbers must be in the range %s to %s. +The set of warning numbers in cfe is disjoint from the set of warning numbers +in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. +'%s' not handled as an intrinsic due to incompatible argument types . +'__unalign' only qualifies pointers +'__unalign' indicates the object pointed at by pointer is unaligned (e.g., +int * __unalign p). This is an extension to ANSI C and like 'volatile' +and 'const' can follow the '*' in pointer declarations, but unlike both +cannot qualify a base type. +index expression is an anachronism +ANSI C++ doesn't support array index expressions in delete. +5.3.4 +member cannot be of function or incomplete type. +3.5.2.1(12) +Illegal lint option, '%s', is ignored. +cannot open header message buffer file +cannot write header message buffer file +cannot read header message buffer file +cannot seek in header message buffer file +struct/union/enum '%s' is used, but not defined +static '%s' unused +nonportable character comparison (chars may be signed or unsigned) +redundant comparison of unsigned with constant expression +redundant statement, control flow cannot reach this statement +'%s' may be used before set +function parameter '%s' is not used in function '%s' +'%s' can be const qualified, since it is not set within its lifetime. +'%s' is not used in function '%s' +'%s' set but unused in function '%s' +control may fall through %s statement +function '%s' has return(e); and return; +function '%s' may return random value to place of invocation %s +label without goto: '%s' +width of %s constant is smaller than size of type (%s) +explicit conversion from '%s' to '%s' %s +implicit conversion from '%s' to '%s' %s +'%s' may be indistinguishable from '%s' due to internal name truncation +Promoted formal parameter and promoted argument have incompatible types +No prototype for the definition of '%s' %s +References to '%s' are substituted by its literal initializer + (as included in %s) +============== +unsupported language linkage +string-literal specifies an unsupported linkage +7.4(1) +No prototype for the call to %s +To achieve better type-checking, there should be a full prototype for +the function being called. +3.5.4.3 +'inline' only applies to function declarations +leave statment can occur only within try body +Microsoft extension +Use of a Microsoft extension detected without usage of the +compiler option -msft. +No parameter mentioned +A file with no declarations or definitions is accepted as an extension to ANSI C +The translation unit must contain at least one external definition. +3.7 +Incompatible signed and unsigned version of a type +Yacc initialization error +Internal error: yacc cannot initialize itself. +The cfe option %s may not be in future releases. We suggest that you not use this option! +Incompatible char and unsigned char versions of a type +Lshift with undefined behaviour. +Lshift with a negative right operand, or a right operand that is greater +than or equal to the width in bits of the promoted left operand, results +in undefined behaviour. +3.3.7(11) +useless type name in declaration, possibly a semicolon is missing. +Type was ignored. +constant initializer expression is invalid (refers to automatic variables). +All the expressions in an initializer for an object that has static storage +duration or in the initializer list for an object that has aggregate or +union type shall be constant expressions. Otherwise, unexpected results +may occur. +3.5.7(32) and 3.4 +invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. +An address constant in a constant initializing expression can neither +initialize a bit-field nor be directly or indirectly converted to an +integral type of size different from an address type. +6.4 diff --git a/tools/irix/root/usr/lib/libc.so.1 b/tools/irix/root/usr/lib/libc.so.1 new file mode 100644 index 0000000000000000000000000000000000000000..17495ef6c4f4a6c2202e582c1407bccef3fed845 GIT binary patch literal 1483100 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

      6ek-3#U$yf9 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≧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

    1. +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

      @( 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%0DBcUG}d$i@L-yHoluxi&j!Q<~tdCmb# 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�L$&67AFU*G1QXe`tXt=k&LNe}tQ!@jt;EyT!;K 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 L6M)F4J^8-@btdT` literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/libgen.so b/tools/irix/root/usr/lib/libgen.so new file mode 100644 index 0000000000000000000000000000000000000000..7b8ec7fd53f01be76d63d47680b92987ee0934f4 GIT binary patch literal 69944 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 i$E9DGz2$9xP`%jGDg zsOB77PsiY~%^yvpe+Tk0tVQyvDr1i$)^^tflk;54A>QG#;1-J|*DDr_;I&8L0TQC) zaRrA&C(VGkQ$Q3@FR+n0Bbcl&H@@u!R&iHg*Ch2zjN$sVV;Hszm@lN*;RXW~#d9eT zII>iN_--k{l*A~@@*-<;!wPm2-jcVi`HDXnvbtz3dhAC*NaXC?#5)JE_Lv$Th5nCzH7TdzM6-O zFkQI8a`8XyFGMRyyKx_r@xw)x`7l|uFM5;VLK;r^3>QzI?T?i;3pU$;5qw;Tl-h1T zuA7(~EHsG^`!t|h0qRO2OEri^+wL@E5LpxS<@eom=k;-z`ST-QVen} zz7oO9oUK82T&XJMocI^a&8*}N+0m;{7S(m)-OVG}pHTm=A^v`})Vdvhb-|g)EODEv zHJ%E8)&EOrQtL-*y%!MgnLV`$IxmI4ox+c4$klIv z>-Mwicb!3p_t>T%|?J1i8aFkhlzDS)&D)Q>Pvvl(P?eF*cPw4Sh4j8_Br?edCXZrIVoo*lgab1ry{C1*kHi`E;AHM=!V1vnNz=r{$ zv%N;F=oR3{i1oyKfUwmQ*BVal8^jWdu1Ks;{_h2GPwBD$WZCF4?iigvm+D?$Kd5E>^yjC~s(#}QW3#E*{hD8W-RST%opDq<@Yq13 zYkj?*(jCxneAM&@Up@YK+>=9(Gm$rRXixhYo7UH}@r-=XN7Dml`ek?u4^)jD8NVql z|7WYl4xfF|z)XJd(RSE()$omZCa1B>1fS9E<5!J6;(yP^HNO1JC8Ou~m4mZt-1u!n zS6?^de`Yzg+bf12#!cnS@Km3(iT3>`@NVkNYw#s}|A}Gve4bc?P2=mqYQ0&-ySs-j zn7C>z85=d03=iO%_cPP`4ZLXL^-yZ-Lywv`Yb+TV8%s0V)`uK3b{S(IR%1UytZ)JF zWn%r_Lk$P(9M(gCDp$9u`1>8e>da_}J(MS}#@fCMACHC7e|~enw%4&G&AO(;IGPSHt-lveJBrWIy~a;3R80G+x2L$OZ(cKU9KDvwTTl6!_A||_ z-T43LKc?`<#tuiX7`}6}88r5qn>BU;)Z@=hWcIsPK7-Ha4c&a+(9P$KKLE8}tz%ig zy5_gV&bob$7`wOD>xTY@vFD#%nbG(QiOIhg5~I%xiQxx$R@tGI`u+3`LwEY3(dYP! zQ-)vF(4W3x?0x!z(f{~aW2cj;9~Y#dTexBTb7IBh&&hS;SF~&UE_~nUdE!Q*^TqkR zdWM6T{2H@E?j4kf+OZ(mBuVc7<)A*)+)5x6B|HWp;KPEx3JgSXnI9&2xtZzlR2 z?@;Dr6Kn08Z+%PG;r~?UXH8tSr{DU%uA4?(V>&kHXB<`w8nUsc!okiO|Wlv`5I zo{SxHV8{RYk(U=Qy?I;lU7SVVrTU6KpQvjc7C$v@-~}`G;)2m>v6*N;kyq3+rT+od CrFH`V literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/libm.so b/tools/irix/root/usr/lib/libm.so new file mode 100644 index 0000000000000000000000000000000000000000..05bf47817645d55c85b19ff5041f06f9c391d6d5 GIT binary patch literal 111272 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 literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/ugen b/tools/irix/root/usr/lib/ugen new file mode 100644 index 0000000000000000000000000000000000000000..beb81f4bd5ea81fcf2be6aaa0bcb3f88f4a9f992 GIT binary patch literal 547616 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 z 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 literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/ujoin b/tools/irix/root/usr/lib/ujoin new file mode 100644 index 0000000000000000000000000000000000000000..23a4cbbde6be0076d3fba5ae72e4807c18574651 GIT binary patch literal 101832 zcmdpf4}4U`wg0($cQ>14lPnl?)26a3yCgz{L}CqXsv8MyP{h^Z+1pXQIpn`;hJbEBHhqNH_nK1G_$kzgq9SIzwgkv%>&oG#Bs(z))9`C*M8H@F->}P7RRdki31#)zqrIB(%;*AjAP{)`wos%8;V{N z@UyuhHXr|*sMma53G1hlc2~V9pLW-h8ivgc`9Bl!hmYN-SW&3XA^t2y*u99QZpXTi1n7(%791$C5r;GH%kBRjM7+O}|<{N~L+;aGX&)m)BKzSPTh zs3$~^ZxDPZ7rY|$Aa(lVf^Yi8hNn26>NGtxFOJ5#Uf-m}<}d4T)pLTs^johH z{G>dRd#R{z`JvSur*GIQ`k$z-RM4&RUdyrdh78eeTJ>0mNN@hecSW3}!6|D@zYy^4 z8-+em(w<8gPTGBshvT$0rh^+L z-1DE@EaIb&z07ga?)9Rb=79}D-n3H7Pb!{wfb%Ko(hoUKSsdKYaoWb$*_SG&UtGLa zz_mw?b4*EL;diWko;OAM3r5jjsmAXJK2ncr{vh>euV|0;u~l;!FLmEf1l=T4s)*@h zYlWR<)PDR)&NqFqMD&Mw>(51;UVQZDqP}TA5O#0AR}u8nA217k4Gz^M%ANdgO}}b? zT*)x_7kDQBgCb6;)?oAQziIG{TZR6mJdyGP#y1z${)ywXyB19p<&RW}_M{xC+NY(j zx)7`m85kEMz$OsrP$0PQ7~bDiH@B zD&yGH^GBfo`^q&K7ix>DLQ<%QasYaMIWN1YPsD zGG`4v%5@-KcV>NP&N z_%(r-cDc}(^r~+Qe`Eea=g&AD@#`X=Oiyy0w0q;{5GhIJWx`G<>3JcC)Nt6u`NnW~ z635B+EbSQMt5bDa~loqGml>*4#`p_-{#7eI+efQrXEwrR`(Snkz z=gnC%f8K(tfKXLey`-jUX=POtfX1eV6-`T5=?P0(mM*KSq9xU$?j=i_Tb4F~z^dg9 zt3hZ*Rm*B1G*vC9)s3rL1ZUBU>PkJWMa0YN8k(!b)lIc^b+j5qm#yYTv`|x3Gw3wY z>Sb$Ms#+SBA*s1#3DTC=R5tNtbyHOp$7p_YOViTIN(O2x>z6duSGMvs$DF{|jlf!> zUDo1q)lz|RYg27Y)w0_9rA=!X3B;R`wW4-8Lv^+FXuY6X-%!6~MWc?gWEg5>oF%o@ zl}l>*ikfd-+PI{;7P`+YGO)B^b;}UYyu5zs8vO`RLuzV7EdqNr*y4+(s=5X+AugBJ z16R9V(Fh@MV&$6prK^}t9hnoNz>3=X>V_e-<~6Id>*Wpg)pfPYbpk6I^b63gt8LbS zRYTarEodBKxmjF6mW^mHx0$ig`73Idtg5So5-eHXuxeF9{jw^sz`}x}Ev>6#c{DS~ z7p!}@WW8C2Cf-D%I8p>ORB{AJFDY^w8$@S7DVOWXd^uDad`0^mni0LMUQySuY-wE- zY}B!qG*nlk<243b!B=g4WtGs5>RJYyg)%f&LKUJ#kx>gn0@urHme#MR()5a(Coq<* z62cHwv%P6xRPCZ*btNld6t}7cmcay93+2ZZs@Aoy<>s2&6*Wt0m$G(1OKWPYTUu@& zu3k?Ec1&v25P+~ON=#fg*WM;f2LR(pO~WM=1u|G&RY_HvdFxTNa3odYe~BJd3x~3# z3EkhYY^CrH%vT+x!ttuArWIAx&CTEt3g()2~;boy1H(4a}AhccB)$8bXLRs>Y=Bw zN%+G0Tb4A}uBdLTqH4`|!DB7ImAkHKId}(D)6m=kW^MSk)aSu2wa#5Dh_jCOYgV8Df`#R}lFqTZF8$e0cAq7WN*R5L8SuCf|s8k%^ZV^-Fz(ph02*SK6`o?~WYZ@E%1H=8Ir$}PeQ=(GP2Q~I9%oTT{a9vBP^^`_V(S1`@ z)UB`=fuC+%(;|jEK~X{C3rV^-gr@hA>ZGZO7H>lyv1uCT^`C|Dlr_D z;8&<5$tA(BQHj|1i{k%*N>U~HEALZ@HGdf2U;w;Ff-|Tj%_G6tfO{nPLMlm@`p<9) zm1KCO{5gQPNbr2XlKc&esKh48->{rYCP@8hSVbih<@#==l1!^auZ>Ea{^m61<;EJZmKw`sb1QNBtF*lt}Vd-vHbz z;s23JJ}dESBr5rwM9-K?C0BWe@s04eS4s4ZPAZu%>8J5xD!E$HALC_IvOwxT<5lq2 zQu~ZI0NyCkhkgn5(fh~P90T8GV`Tg^|7&cE`ez-!I|kkm18?H}c@#HJpa@6X0iTfI z-GG_jX#P_+>PNm}(ea--)&CoLA4dFmgAm1@6A}J&_^0siUQXi;0^}b7+{jlt41b&J zli=S1-YCIu0S-#=9|7-?;6DQnOECO#?%`qBg!>G+$0Rrn@CgadB+rEm>in2K2G}OS zlL0#B4de{xo2(1jCsF1^Ac*Hvv8&!D}$yG8k?DJ%DWz{8hjX3El!YUxL30*dxIhFQ%1C@Z*5J z5{&U<`bG`r@!j-2@?0$WKkUnTE||?u#}Jfe^|0_Gy1>hq?BJuo=0W) zTJk(rCgm?CPoJD$jq!e$l;1+0Jv9>C4p_$bljjE=QvL&&56I=ZOz*Gc`JKdH67B>3LF&IG*yA51 zc_d9D&tFQ1=_h@HJcF$g4Ey`QCc!hw6Or1JbSaf68>Rfqsl+JpmsCb2la5IFU!an6 zEfTzhO0r&*V2o$k2P7Ed*(Vw$7~}o<`4W5|l}v7t;BQiiW32@DV?H34|1On$TI!#q z7pSE8X$k)b#y`3I?=k)jNcktJ6{%F787r~f#Qhf>~e7kaCwpD7Z3sb?-i+=uW>gv$_KK^V*LGbqIO z-S0y93Ig9Ft3ZhT@x8l|eitASGNqgK%xXRUksiy@`8ptMTED&uaWcXd9p-yWpFp@z zhws$mk)oAIT!SENL_)Y;x=z)vxueRYbiORo;dzK()UP?pldhwe|A~vaQ9zHsjrb_S z7Z6tHY0>Dm=mp}9`t>zZTJ$oEi#mj~XaeGErEB@J7{D!3!VKy9Zt41qxOPe~U(P}( zkkXdw*ZGLgLzpV%T`67j<@XUjt*2eA#~j%awj$h!a4SOe_jz1|bYN995%FsM`VKwb zfOt0oPZvLq!1tTt{U%G9U&8gr5H3QPiSSK?1_b^&#Q*7kC3=!uk8||+tBCm?*w1wM zem#yx=SDB|c#Z`3;yPV|<6UZ#v3MB6d9}FAM7Vr7i864#1Ys}2)d*7%vJk`=fS7-U z2rnR9hj1anVuZ&LzKgH`!GplRp!g@6j<`v`ZbZ!EK@Gw)2we!5AbbnqrwHFbxB{UZ zLH;cS@JR%}o;Vxvrx03om?Itsp3vdXB7PE~6X7QaUq;~H=MeawF8_9Dk@&w!y5`GD z39iERK7g8A|hgy#{SV?h7yM7#^(QH1a4X&n6*!mlLwOqc%;83PEyA_Dk0<;rho2 zKakQ6O4qTMzm829FIYV$&X5g}3v~Nz>akX*>KIJMDx@w3UKIn^$G{CSaAOR7a}3-R z12@OOEiv%w82FYL_|_P>H3nW21K$<{|3?hGHU|Dm419YGd`ArIi-Fr>;Px1JT@2h2 z1K$|~-xUMj9Rqj9!0Th+dt%^wV_?5}%;UyHPGJQp&dvzuY^^C(zj@55(4ad24^xbs zoE?~K7F(Qtr?1uZ2(FDbAMMX~@(CNx*Yeski{YhvU8khk)#3qXV0PPkIp2%C8G4#* zp&YOUNjy~DK{JJ{G!DU=K3>(pQhs#I`@{V%ZSXz3yO&eTf)XVJUGMOIq4}Mb% z&`T8g?NnPNG6L??Bj6r61MYzlaDRLT+!u9Rt^c}xPi=6Mh55_rp%a`3zAQGZB~boD zov)`jPjACv#$o>d4p|-HGI3?q?R%Q#gkfLr_k1^(F_utPXq)l9*uL11L&j74LuFkQ ze4)>{zj|FAs$K4r`1QBVNBtI;iJG)B!}W7pN2uQtQ-Agd^_L}Hzwc?5vCE_=Le6I8 z+tK!ur_&usGbZ-dRBs>6XE$i2JG5u47iCgZk3$hbzXL*(7r zHW=90o{h5kZ0DSBAcy-t%o>?T7fuLHcr_6lQ|knNJR9rw`IygGz0r90t%YA4;%|eU zj7;x5tczXAq`0yaAM{+^xsMjQEK2*%U9=E-vvKF6^hK>r4xxjA$7sut9qgezmzBKk ztEf1%jVeOBX>q8RygP$biBQe$Q=5R(1)_!KEErSid`8Nf^RKEC<^ss2QEmZ z2xTZYA7Mc#MCAsD!wsGny3CZxbV7YptjjFZRzh~}^O1Bx(t{qxAMPVz2Zy!x=<<&* zPe1cu(CrX>0}f5oIt21u*X9e9t(jius+*t&LOO zPHmiu90@%_`P`SG9?A{vpgf^tJluL`{N1=q zI)M=qdE=lbDA<7bx86CSTA^!CgEzDMa7qhn_(HLRaiz-Y41O&Uu2$ra5g& zrh`<2&*6rDGPrEmopktE*A5#z+W2T7F+SyEd{oKfW4wt5vbiz0Pz^y*F5Td@aT$MX z8CyA*v2z&{0mpDb=almuk=G2%wm3x@@D|YZHvs+u;6H$N1kfH$S8QVL#P+~HO>b`4 z!|f(xqfa@|=!8xablOPijlP^+@Vi^ubJr`l!*`%@N;l?M?n9KK3=TMVqt)MalG^Ku zoMhU;(#QuoJulN^IvXn@ANUtUPLh4Vrxp!3DQmzNSl^zD>nWh4s53pz-fJQ!mE>|K z(|EWv647a7>$-9{u)$XjnP)@hcE~%^{gU~q_0M7<`z)!DQReQ4$@txeDJf?UY!ZCu z%)Z3N^3?2Ij01LT=de68IUV_4El>DVJM8P+IC(rrEZ54J_uPv%e*y6ea)BFha z83Ol+IZ&qiN^|e}611~~RBltWom?N+#XP}3jMlcaIBiRblNV1W8v|WBkA3D{>mLS> z569;bGER?EmmyAGJU*bC8Xq}!bI-jB`bLS*$4BTFQ((Q`<_pci_0WTE=s~=G8AY#> z0)CyI-@J8w8|bx-O3xHWPVxFOo({y5uZ3-o>x9j1iQ3#KZH~udytsujG~M2>?NKY(yI&z1Sps@g-s}qsTX& zy~OiJ@oXuctWx9HZoK}SAlcyB1Z_}^PiGkG;jQ^v_H^C9u-a!7Vonuwi!gu0xPEqTVtmi}G*sw&xTaU!-mimv{ueeb16?uvHic$0`Uc20qugFcrSBz3u zyfJyKW5Pv}k8zEYkBKLf8IoN)#=)-7hD>HkHkdsQHh4C8%$ID}o`~)K6LhOkvg^!o zugU2a5i}Sq~u4eXW5U$^WpJ)OuY4LJbzFm`5((T`JZ@v#^dEu$u}9# zvTusV$85>}&^Y*?cx#$?^Wb=Wnh|Fn5KsQR2X&@(c0Ap)#VHq0mY*8-lctm7;3wm? zEuQVi zR}A|!)0>I-G|chi?LEh{(Xr~?mBaqdbUYD%_fOz)j^syDBNT)Z(VUf+C9@=Y%%;+y`B+BQ$}O^3(HH^u9NvFg`V zlHYnULBAERPs=19GmxN1}**+^I`wS*xpQFfdtTq$R=f~5xFH3g4H4(cWh5vYUEtYI| zOQN=mu{@qk;?)wuHLk`K7V)af4)M8^^)U#@g36N;c>}%Qm<~vcb-?Y=d6O z20Ie5LG*Jxy;&;Rgzqfd#4^by)+TBbAHfDUNH)=$h)sNix|U0N-;#*lk79pg)%!|G z?;FQK@BfwN3ssVx)s2Il{iEA9R-d{;viX`sZ2lwYagF2;DiiSsql{Vc#+Z0}ykph> zm6DI~ChB8G@sT%4eq?bXegyRX(Yh7S$Ja@|sUi{IG>ZPj>zjD}J=XR3D#@oU{5SMz zW3~Hw$={WagTEW=`Mw6p|I8l;|MQQwjj_tVQSyaliTJ`%?B?I4-Ta;i{T!vK^zZPY z@%CHd`HXnJ%Pjd`PlCR8tbB}BPo_)$wKx&~it%BrJjRn%ljJ9h#=%dHwa;#m{8r&O z_^o(tzE$!~`QzZ5;?=cA@&|e2;1A-BmGSuC_ohVcGk2WqGhTiFA=#iS5gYs$^Mmo) zwpOxTM}oE+kKR`#8_XUD8;n=i?UJ3@$HC6VIzPBWvcb$mY!LqMY@Fr1OR`VfIN0Y{ z<-za$iQ1?2@37B!GKr@L_el0>83+3utKauawq#7imPYXt@#HZ9GCtE;p3FFTlj7vX zlW~`1*L0TcI&;{rjVBYa>rv(t@#ZyS?Q7St%^L?3wE1{*p0mMY&agi)zL$tU_$SD5 z+OV%Mp7=X_#Xnk>Ul{f=#fc z4#_@y6S2=x{P9@%XqRko*ErbVSovs^Y@#O-n>b7ISSQ(1FcDiiOMLKqlA|`bb)0N) zu4IE-60t$p^jQ0|RI;;8iP#zHiZ}kmv+0GBEp1H1mPYYa^Cg?`Ct?$$&})@+yK@|L zd#vl)vEEx=E!jlJIM_tIzWl1B_r65+eiR#wr&sazcH*7Ah}VYuBs*K1h@Jh5@qfQ$ zyRC`X?kN0^RbS)vO+5K;lKeqSBL3iCjQ`D&|7lFb|BS+aJUPben|LyQK=NsIXW6Iy zqxVO?Ci%OXMEo86e>^$H^CM&RP4W7M->Ds)J5(m>L;uCv&@K5;Zz4YQBk+G_S(-2> zX>ZTv_xQTzq;7IuLGy#2$bN($1m{K$ApRl3L4=ML;PXp9FZR3I$SE=xsH2&c&E78l|-s54e$G%V|E4SB+m@aG1?Hm8=RB! z6NKXke+kY>O+o(Gf^#T6I423Xmczk0iXCBkaE|Fiq?I5nMEY-$_TLC6L1PN={|DD5 zq<0|x1>z#46(Tr;a}1Y&<~oE!sP{UQe+B8+BYkIZj%r580*!Xi{~^K=;N5`G2)vJj z&I1UKfwwz>^D06E%3Xl`|3%t-z>87772zR-dl7z*@HeD?66L;!cr(H-@N_u>@QhcY z4z$5^8}iRV_)D;qK8dh7IG1)Iyce9SBn3+q55gC4U5)SruD^+}2H}SYN09aw!iT}R zMt88(Fag08EH&O7EKOMuoNKrNp%H28KzClSRJ{$M3n7T`HbMlrMZkG2I5+t#!MQ29 zz&(WYSCBq2_*vssh;KwVjPO0w@ms`y4wjlWAY2jrta>mw*EBQuS<`iZ{{z>52+lR1 z6D&1PMc9IXHYL>}tVIYQ3)Lnw>yTDH>!ui3{XDKSKKaKQDp%*_wzeB%M&ILUesF*^vF6knaG(FM;PpXa?T-!MT>NBlMxooxnLB{G3{YxCv$5z!^mP zHGr3Zr*jaqY+eq2F69l>{ny~!)HI}TLHcgscB9N;)P;UjHy}KWfc`WR!ffa|>@4|q z@ctCau10(v+Wi$=e*^J$$l@9B{#Aq?gzq3ckMJvm6UhHI%HD*w!tTG94e!yuH<^szNTwu__9z+mK1xZzv*6vCLnzx^M-W(PTtT@<1-@O|Bi3;91Gm-tBk&DePcVul{dPJY#x+3 zW_RQJDh}H=t-iorzDg$II{09bYdI-YZJCbm6)5=rPEv4LB*JC+hq5ZincE_N<~ZoZ zJK^8K#W9C_LYO`#`W@eoahX*4+bMXbIo{2_&gW%*KtH>889w|`LTSto<`2DGUVh&? z#wOlhjs2F7MhCiuK5=mSnXcC651;0~3AFjVoR04*W$WoZB7K9;%kt=Y3GbcP-#u@7 zmd-`LImCAx^zRCx%?{?nwZk0N-o*~SweLW@9L*DL!F$@{^4N}cnmy#dVzU^}b4zT5 z?+AQcl=o7oDbQIgMa#~`2L0D zpX{0}{%RC@06i&$p7hRujp3SQ1s`TJV*DUe>pB<5O6$6zyqT0aM9XoVL!>04ZiLMZUg*iclnQh|Rq-6J! zQRJho(6fwQ2ihZj-%Zl9Ugj?@52&AMas8lmiJ+_b*TeYcl}-3p_~M~W;(E|a|9nFx9RBL(s%ZwVOTLHra%JhR-QOem`)N^~`Adh;neH~%8T}i^PNt8sQ+$_f zQW!ko2U%NO28`1}{x-L3Idq_bbBNr7(B;-M+5caJ{j+Z9V~o(#_+yM^xc|m79-}Vi zE2@XAleRW(PR72Q^W^?!nB~W^i}Bw=k2yd3(`@h0#kw5xPLm^OaDS`twd@Q1+t3#( zSu&TA)1{EQaRXq5=1qE*J|W-$DOi`+XC9&~0dK)~hmxo|bC4zpxEt$r3)N1_q6q?C zuh~-ObC^#ty?gL2A^aw#P_lsU#Ts9smPt#=Bw#-!Azm|~O)JlJ3Hl}UF{ZnbzwpcD z)974|!Joo$=1baK6Jv)#!0&4F6zITgmz`#~vZyN9jyYjFDM9dzSPgcQ5wQuujF7}K z=-n>bpN#gq!H03iS-rVb*hAJ@pt?b@U5c03&70d+ZI57Vbe@g z(rZWm6{n})SAjIphozU#!_bOOFng%26p7YB?Fv%GH^U6xbuRQBDc*GjU8I0F1HOjn zcEgTbbA&A@kbym~8*7zqR7oo4!}~j(u5v!JKSCcTAP451`zU`4O;+(OEv8Lbo+)UL zRZ+@abWf}CKIn?+RbgYZu_j5KIu~=3Zl68SLzOwRw>||}jIBA_$jdTgeCS>Z`fRq0 z$NDGZaJ`HJnx?>R=0kIT(AHjb$xD9>Von8L-dnO|De<4lDdh8uHUA z)s;b3_`)>!!gSEc01X@a{GbPZu@pXFE}4R#h3$Wil7eMezh6bE!TDqjUQKDi1(XrI zhHSwKnh;!seV2K3F6uom=%uV+C2*>cUyZyK`r5w+KBt|fMU=OIf>?hilVQyqF$cg} zC}%d!SBpH(F7b6)Ak8Z`UI@PcJd0}%)^>if`UCJg)|xP741{~T$jUPAg+I(|B`+p0 z$)uLd!QQx+EM-3TmE=+8RXDrqMV0shy4QH&7UGGHC9jsepk?%Tf*xqW7Q&!o6!h*P z%LE6dkh*9N?&EkVwbAGHQ=zh<#@V%3r`6hOyzqVYRb_7Arb0hTK+EdCmn{AbP%F@* zRBxElYr?(vkhRy3@8mMCU1Wpb6aL-5MH>gm-WnEp;3sbp1y;Sl5GY|s(DSfXP=9U0(hxqm%)LK`7Fo4*U=Kr;BURD{Xe7^XDH zka+{oz2I4wWhR$HdC?2ZBVdKc9cI)Hzi8&FEnF{7c z!iPhbc5%KmhS(X#w=z8(^LH^td_bGuj{_aFY+U%kn2z?KU4mYlm<_kCT^*Ku$vz#d@7VXt<#>|r3v^r~ zaO+OP?e+yRrsqb}H{_!{>f4}FF22*8N6QABYLQsePjp?2^O*P^B%VvD@ zllM!L4733?a=AVOcm@sr2^z_u(NykKrZJ7k36Y-4b1&ah`1Yl!S6S|G4%Lef9*e@) zdY%1Nw3FunXuFsPp#3Z}$WGs{d{g*8qmR$EmlreQDJDDoPx z`~nT-xXpR0{NHR9z7jOJ510n~O7@d1?@TXQG2hOU3biJ#!qwh5;ineJI4f*CCrXk9j zu--ot54BY6UxV)x?}aQdUNK#DT7|Q(Rg+Vom-3iL|0;|H>8&DP36(kf@-Uu9<+zNB znG@F{QhL|mJJ_23=AJ6QH;T?AKOwtQb@sr&i|p_%=UkRwRCZ+kp+S~ku|gS9`4u`N zk*EymS+8qsa{QfG|8YM-4-d!aVZOf_eGx2j(<4HktlTeAo#gLR3w`KFW?Qu58`Om( z*hCQ}<%gAnt^nmauG46>YV!xxJm3tt zHCjxAOrNKMI?7Py*SL4~3H>T!If*(4$p{_KV_B)nfD7x(sg(R>X!REiN||>mzTuvi z(@%L_&!Sy@Bs@vq!?=ddVf~ZOItTmL@5vn(_Rn*hsI3}(*q89-yNyB8WOKSr3SFjl z;S*HaCgceJA<1zE*4&T4KWpvR>=J3*e#n9MI>pbw4DC0C!&HIxJCS6@Ja9p)v+q^V znx^@izTcz0Bl`Q}7Tw<;D^~7^z_+-B{`hkFo7BSZU>=qX-^2H)gs(3)-w`Q12)Su| z?H#gtlx2p{<`j-k>!*5cPeb{kX!9vLgZ_Pw>4|czGkQB29%^R;(!mp9GdVhLDT6kr zHpl#}N7(&_b`O`qKB4$^?bp_94Cr`vfrs%%?k}!ev=Mc?ur9^8u$RloJdp?AdtTRe zGSfrn@ZLP+F~U8G6#m|O{Jr9iwv$X7`+(x7k3piJIf2{AG;|$v2qgSz{J&PA_t#;R zdm4S@LZ9)s!-1!L3mhwI{)V%|$m@CVY{R#}U53bq@b~5GcF?7~m&o6QXFQ@JaZd|v z&*L%yj6xBxek`QP~3r8Fkn#J=jy9Dm%UBsU^f5#OBoEcXNW>~0HkEa@BSfWCFN`AGl9 zJLhk}x>wYd1sM@p`d-0ak!F`hm#HyX$fhHOeMLUw-yNd;7;_I__^NU~<{qhmeM&yB zsX30?v#TSeSFV@KalR`p5;^Z8UdL@@K6;oR#xpo_S-_iVPyX0_Da~q61$Amo0WR1$LZ$I{Oke~B7 z1q%j^yl=pCDw&RGmrIjd44o4?9iv1?=m*ycetbF|uSBPC1bzl}I*LT6P->Tv`v&~r zJ+XrS0fNk#uV^`zJ8W}nU>_}J`q1Bu0Q6Dx0r0vGP}xwuNZ09zc@Ff|xS>JQAI#;- zxE$lc4jiD99@H5*?3DXQ4!A{^@iS+mJkm>C7Ldqj0;JpK^&# z`RR1%h)$?}{wzq))N7mc4cNRjB+hv`_N{FLc*2y|Q{ z(9zZ*Z;(Zz;~J(zHl3eRsa-`QwCk|mE}0JI&e8rdMEUVZbYQ2t{_iD^*6)for#DlX z#E%93z{9xMYo88&Ci5lJ;a}HbZN31Xo5e8lZGjz%1#p_~k6>4dMbb%+MBBIl^LhRS zY#JRd3;)?erkj0ASkq%cNB2+A2M8}2PGz__>% zdK(h@k%H?|2|rK5&(ra983*go!=TUj9tqzg;d^xaV#Wb|9v2vYv4n4v@NGK2m2r4n z5ORXPqOEq+_agc#H_%T5@IhO1X7A5b2J@ZVr#$Wo-|4~FjGv7R4H#1kL8n}&Gl}H@ z8b<|=N&<_pKH=>_wK>tgEKCT6Qbg7`< zPsicobAfYAc_m+?2U{dN_Vtf6PT@0Ug6yFHKiOzS0&bLN4L~rYSzbW%Q0>7mr z@QXco!*reBN}b;cI=}BRzpQIfe!=^Rt~V&3`DDJ&z~^~7pI)6$o6s}%2m5Fcaw`n& zgUqykJITB=J*LI{>wRTJf0ThYo7rGeAcLopin5 zPwf|vjg&v??eysF)cZw&PI12|mS{V<&1hd3{o+Kwg!O(Awtc!jDZkX)E9N}VOHF}OOpok0)5!gyJgM_n zs`rP^AHA&cM~8L(cuppCT<5PShCkhYly5RUwo_q4=~TgXH6cv52DS@3#`p-`A7Oqa z{8o3{Cag7%bRF01hdg5LoX<449LE@wGeEmyL>jC|-EDr*IEFDn=*=lKP)^Vg*x!N=p&O^r*hdSwKIj9>WB!OVcr5O2 z>jVuO_z?PV3JsJKG&FgXjz~k3$41Z)W36bXEK~U7AwJMQBht|L*aCSR1|Oo|PvHaQ zhDqk=ANa zp~y6badyO}`PHyb%?MBFdIjfmuEAc19dJ>j^OE<;fN{tOTE&d7%VPq3eT9DxLm02> zwK-%K?iO)6_piSddkOC&9e&DRLB;BfR_CQzM(Vu=_iC6H@VG4W_8joIaEKQ62{}FM z82ID#dW?(Eb?oo>ly_RE1hS|U<6|+83+l|U^O9G{(OZGDtxOa6Tvl(ZcZjCGUxGHL zq77bdFWOy*w$3Nqv*Y&aZS|n7d3syDOba?_Lz(g+TJ_rg2HKj!>3Ul&XltQF#|Ju@ zI-PQz&N*oFVnN3i_HC-CX{s$e1?{)8teFmAC+L(%W$#CuK&Nn115LZMNFlVd*pT6K zG99LgvJ=?mhj?qy_8TBOv3}&aIpk+YpO>-xSZ->@fb)_gqCZ_skIPTR{<2|?*e6~& zwSeavwAj@Yi9n7`T#wm9jU3179M{YCjD5OnS88OC*H5rF?7nuoQLhK`*~+{V4Z1;V zv2w(N)e>$)UP*;H5yCBRyVJiy)7J?*^?P-7+PZr}uYRv?4feJ0o3u~6-?(80LqwYo z(li^WD;?A7EeWb?gBzC!?_~@>jwCqoS{V%Wc{)oBxR(n5wmr2g=QmadaE0@xDbARE9ax%l2iw;zfZgOn9unz1GgB* zu+M>e0(@^EH-P;ORqP8Y4sBoLaBp;P4LX`1()ZIs*h|B{UhbqY_C0n|9@?A3^fH4q zktw52Ux4@9^!pNGKL__xpj&p^HJV=NYj=yQBQ-DT^F%(D0N8i<05lHkH1e=lm_LNG z7e0~cRIp8;4cguT)6vEquAlSK2cYv;y`3Z6CpvUkZ`%>n#rsg%A>5Y;p)A^$>oO?@ zuG3{!zRmQo7iGb^)fL^Vh_(&&F6Ml#-EEk&00(r2_(h&bi#;EA>K>VXALfua|CaN; z4|&g~hwoF7&&T^u#i1R_(a`sCuj6UV_r8O^_%?X`7WSf^!d}#q`h6|j@50%NvYZ~p z&-I6biUYhA0v7a;=au*p>wEYB;d|ut&^FAq(1*OvAv$I4UWh!NYl^%mJ$=8a5c-(O z_gsLJ-SsXTfy3SR4q1Ue!19snAlNa^r}KK_fNMvpPtFVMRveigN&y{fRNlN_6+$}W zLFOIYF2-ZJn0FoJ82bQ5=>6{)4)iLSu5%-iEFbp0_9=Ogg+1r{Vji^z^ENwR7t>;z z{;P$~6o&eg&aUlPqdlg$n6}MJyUA1L#yG%h;5_)eovP|}_U(m^^eTCM$ORqC=EpT# zo#>zkf!7%dQbpHA;7=bDm42Kb$WnTC3dTt@gq;PD(hoC@thS|<1ceM5Mo+Zd)B$UNZdx&Y(3 zX|InKZE@0$3ivibDz7M_Xf!V8%)I+O(nYSM4uYD-@A;I%l1i| z?NdZh>o9xCRx`b%s$qxw+!FfuR0F9Kzep*D?Yo@Q+9L0RcG9#q(8PH#%3MmyeFN@o zS>T^21-?-Mu7xshQ@6nbwc{?twhU4(=_lW|bX;eW0XR7O+XL@X3D3UKt@whxuWaCY zc)ZNnM{m+1%XHAU7|!pUg8p+E&TpKee8=uYd(LH9VUCc=F?9At>>*eU4zY)-gm%%% z(4)%BA?Qt1rviYZdek)&`osDPJeH60dECdnxx%UZ#qONi44FWFHb>+MK^ywR@dFby zof5jxM-}dF+#@cqOn3Lg{-Iasrxl@n&=Va$l!ASNZHgWEnK%=tWX_Mwh5guB_bJsk z1$J@%#c4QG9i%KJ=wrWG8EpsbSW$xcl6^f`9R|DB0kiC=T=MzKQ!ha#C5^ z=u*NJSpO^8z|9YZltQ*g#+hYRXo8RC2Kr#1`;=_<7wYsHC+sd8vc<@Ua`&|x*;ZW` z?|6Q~wi=Zw?2sPVt2_moooojW^eW#rHZVPzev-^dc579KH!{d{N*Jd<8SEF^yZRLEf8|~=iI(P0HbzHc=d#kp4l3CapyLa=|w);4mqeS2lQd7kO$gb&`$=;0p}q9 zD9exgQh6)v4DE${d~_+xN0$wJYK&|aK`;B1t)SN#n2J5(ekDkUhh?MmgO{0@`|7fZ z%EiX>b(GWPVjOC3uO^qSZqQ=6EW*CDz&o>CL_X?eofP$jK-Y-!eL^pJ-zyXPt0)}< zPViY4>R0TO4n=+(>Jeqi&|aSFsoefhuQH!w=z(?CMdX0qUV;3hXjeANS9w9mHXCbz zPe$c(noO|T1C3tL>g>7;HrS`^k!7M@)adNnfO*PDGC?_ACfc(~tSe}j&;u)Iu}tPe zCIT;xOgJC)qV1hrAKKj8bsXjQK_+{Za$I4gTifL{H{YN$2tN3 zA!x>vgI*`vEBpuAxv8rM<@XBz;YGh>=2#(z1475WA;@P^cjPeSu!Vj3IQ#LJg-(Na zmSwCTpWwy4#@&jSWzYGLQzgrpuV+~;?9Z`34IS)k_plyz8L&o!9%8MV8-lH}?4hTh zKpSiPSBbPbtnVz`dGBM1y$Fg93 z3v{$=dx?y%mt!0ut1MDcf0pX-!Ix`w1$gX3UCaa8rq3x88uL!d^oM0t<5GgKx7|w3 zkSxC1ZYg-jz-#(E=+{w}3*v07*R0CD!vATqA##THDvgkh6*6j})YdTMV^!X2bz)B> z3>jr9$1pBxGO`H$3n>opUdFN#@{7u9L%WBYJ#=>92=*fIgKb(k7Pjdac}(N}6FBT+ z(bqUb?}5*~TzLy;GT@`Y8;{Xv_O+T{38O8Y(1Qc;D@CIJz?;&Awy=XjpLhw&YHF8UGj!I~kPWy5k|9fzzYgRT$#n2od!^kFuo;^sK| zPes1oe>h77Ke|`+pY62%^J{(3<>#J2KXz&RKens?j{XCWT(;mHvO)L6ZUXbnKj>aD z$LGLw1-wW*cNB7pmQRv{DEzJERyE4#IE z8S?rV{8kbAq8PF$=5|9Clc2ZQGZk|%ZC{k_A3DMnoo4G<8o!u(B#C_Xsk;6OI9jgT z_cG>*!goZ|8Ad%vcrRGUnY4ObR`r}fSG$6+2fHl3U?YSJ$ z_FSIP&i}Qw6ZRp9^LkudL-ef5Guru|j`mVM|HEf+c<&<9hrJl=HDFDXgnf?)?4_5> zXl+M3qk9yQt%XL@j!mmDmI-rT4RzMrY@-Pi*6 zV7~#lU1i_}ZG_BDU?1l_>`x71Z|Y=MI$8N#7@rAKo)u@*CSd&(J@;#jo&}5E+jVtV zJwvhrZNVF8i`cID(-6*pLg#JRYs+=x%&2;Sp!;d)jtA{si+!TEvBotbev{jc=UlRw zCeC@h&HMtdtm`W50V2I`8SHGn@Xc$xI`sP@!W|z;8d1jzoQ$xUJ(hqmPhtZazy^jWf>RtRmt-0O2d5c&h}DDUxRzD5AISz z70#R)*z4X6oalL)rF@O^G&kWq%~C!WgYz^qaGqu<&cy(Se|^AVy8eE|X`l-}D6KWD z{6QNFl|k_GqK1R_#Z`7?ku}Hupf_haDSfGUrUdq!lMdO2GWj?HG-EtGS7Hki_aH&;V(VwW-HKM zqVpWI6f!y?p7+)E7Tya^SLSPa_~4tYhuA|+VO-GVcT@1*-&3xR2Q^*YVSSo$;J>u{ zio-Z3B%Cng2pZi!oM)pGg1(7NoSutk;jn*WAP?Tlf+zk-t?^Ns&4+sS($%&p*cVCR z{U_LE9+wOC;S2%F1-2u``#j*cQhG0VXy{xS@8jZ`$>UlZtOugFdi`&6KGxCN9s$!h zomQbPLu(AJ6H#29)?QL`eYh8pLP4D#XbT*UHQp@XO*%J^4Ktqq;m3F)hWs&J&1^#- zqrMa8DD*LruE~=3d!F)lJe2R>@lfGuWhHqtj%f3aG=7eg&$6Bneb((e5zUL%i~h0< z)uGcr1MO)2LiVm5nobOry;JN*G5tL7C+d&ZF@yu%=X{wyo)=UC0iTy~y53dFIfgz@ zUc=ZNnAV9hWGRt2lYnt1YMSiusL4` ze7ZJ|;rfsc9Z$~b!Jf0`i%~AkEAtC^Y429i^uH7LHfnTPS8{n#b_5$2^};4G7M|d- zkYR1U@EvjfnaA!C$K*rWxC)s>`{~SM@;dl%{G#WTGrih)hqgq^9F^O`xHuzyN*U}o zi#g^j+#5c}5nDbw7t>@lV)+`>UrRQOpZR#+!$#}H*g6qorV;(X&wE&fypk~1a$hnJ z_rS-2kFF~j!Z>mT#sc=$`1xXZV@8M^U9TeDSmVR|zf|eMKG3t!A0Z*c zCanzKF_6z!{EnaAM=@8^sLzwv zE)K@QGljzEMW4?*cX-YcEhGC$M-*>^zMh?xi~Y*e%A8`G!(}kSZ%83K?(vDfrY77s zx=P&N%M`r8CvLzVJDwx7!$yanBh1re(AQ3xL-nVDRyt^HkJ4&&Du=|`gLjzL20QlZ zF@|Hj&t)I0s(7Aownhj0DdOjE*UMh(arWZba`fAX&lTd_1-}pE)cTPENjLQ1x-A~(jhR0?7| z*T<+3&)Ifr{JXI3WF5vBi+v_--_Upr_wuk-!u?E5e(miZuAiUz7BTkc#KoYHajHmL zgu0SSd}=Pvx73PU>YApF4fMRWrsP!cfH`fOm68_uLc5`_s8@_t9cdkckABF?-_FlI zHT2(KBi^rNP?BxVs6FuhhNka*`uPt$ zyBzg*k7GY^5B4>11_nM8x7mGe&^M8<({1yKd#;hpHmpMo9#7^mn$VA(GG6bv@SY86 zuEysnEPRej*HQMB@5%X~%=gj@3=W$cK7#ib@|li;_a|ZgJW<94t*J~4{sQ;cG&@kU z7%z9CEl3WgF1M+@@GC1Jgw2lnL7M$fW zHBnDDY;m9!XB_Iue;4d86n2y8d7K@%77O?54a!ws_pA#eq$ZcU$-I)3UBETpLjJqS z+T+JNXRv2LrW*}p-mePWWZ+&1+@vPL`!}%KK&R{JKa)wAH#2Cm*gSGTlZ!>(S;_jc(=50kr#|Xt$b$^KqtY)q?pE>e+yH zg zbTb8A(Kd;$S@7!+bj?F_?Sd}1?R0)!G5lu7;TP`_J%wM#Dg5qkbPM@v{N}~*>*D8u zH61&R-~1SUb5G$nN>`I_VGO@{g02BNhdvWBW_^H62{LB7tPAL~{3x%C$72-I3R&;a zzZRie&^P7Hu!{_^i*>k{b!0&6$7!$y=qwqk(T7c>)YZ6^0pO|VmpcjP`dKE=tFwTI zchXo`zexoybX4FnO+258KFky}xeqm5tDtKFu34hX`q@r)LDxJ)*Cyzify;a{55v4> z%e;bz%ro)3=}x@=M&ftVU33BP?NOfL4_r(e`ls;^KSSp0!QZvqwrtp}gKeMvg767Z zf1vvU_>v2RkI{XAkh33i3Qf*boCKf1cD)Yv_J$^FjrS|mf~e0yUvfV}wie-M-e`oZ zuRwpo@AQY=1zG41^ecP_eA^cVpOCGU+n~Hr16fzYKY*SchkLu=AGjY)3k-NSk5TwE zGibx6l{dWb1vlbgF>up?i+1B3J{GQn%r9yF2lmW$DQ{FjFTN=J9vQAs@xC5wL0Sa$ z3qI|lo;UFBEW<(YzJRz+O{So2gtWV+wvP_Xwxm={UyPxXjiJ{bGgmETQJW9 zpUNB1Wntqu%L_iao`Mvu{enL9LGZmndv2NgNchrq@TGUcm$vG@l=-|%_ocn?r3Ul^ z`%)8pDe4*WrLUnr_91s;PoHgF_aQ^RRQN~THyMDN1YN~^TG(XLkZ;m_Df>qY+5me~ zn63qM*Xh30GUS^yUupraD$&(!OY^1b5M9le3jZk4)qKC^OLgB5+tz%k?E9Ht&G&1* zblCT6zEt-8%rE=?b(jaS9EN?r=1aM4r}L}%(qVozUpg|snlByZSM#MK^Q-yNVSeFD zW5%jsel=e@%&+E4N9I@arNjKfm$L6d+t_zS`%RN?k&weMznVWCncrfe55xQx#^Ki! zBi|z7r$^?uRL~vfw>S>JWikAE1l^JOogc$*X&ipbWB4tL!|%cve&@&Gw<3n$@;Ll1 zj^TGd2a~wRjd>9Kju@gqqW72iJrT7B1Q15x2M<$KjRJK zOe3B*Z@@Dhigs@+gjEFYXASbR=OL$lZ!04*i0hMBV|fBQ@O(h}ejKKS9j4z-%KPxi z>9-kh?+Wc{#q~ik2L^6w2+xiRT;nOYD&t~3P^xBOUXTHN_+-Fkz%Qi?&}RIMTku>X zXlFF31+M_VALmm}r9U6|cy2|OdPWYO!j==I{AjG|r(*XwapvR-epUT?Bi zuc$Mb>nw9W&`&jY@1q*-Bg#VCGX~r{0Y9*hR^GjrR$|SB6;KmY1G@PRct}BfywSB2 zd6WXW+|Cr#&waL=8ih<#ZpXT$+)b(69?St!q04w)1h6`*2zb5JBHEYwl7a7Ml9go+ zJS*D$4#s@zeiipa`95i@IumlRvJQCNl%~~9X?neBdcDt(Pt=>n_13s)vR?0Gz23=s zy?dxb)H|8$9dwgTuh*v6Yt!l#b=tU2pBpyR0h{vS-d$@5d}E)bF$9_5o_8hAVSBOn zvlwgTigUL?KcV{u2l$2EOr44Q!p~w~`6bv1Y^Up4*o>X8BZIg;iF2rfxIP)!M{9Yl z2pN;|Q}ij`X(@Qjg3SzKZgT{3%euwDa)GX`759s?8pE@)aKHGKR(BBhhH)QQqhY_r zN9l+5i~G2E{u%FCFv2!IV7(Q1{W@OyK@Zu1$M;UMT0JB!o z@CqrQ^C6yZa|dyM`2Kx#JMKq+hO%z4Tyfd?7_FXLv>R?1rA1OFZs@6(tylb(svi{8to^yk7VVeWN^?!fbYf(G(FgErod zympjPXQksDIpn(?ZG#_KEAAjSPxhSSQiq}1DwlO&TaW{JI-;J1^Ah1eLn%uNjY$i$Axn|xj4t8KQBca zp>q~IGck|%bn+kJNB?llDqMs;jYc0fR-MJk6u~>E_cBJB zq+V zg1tNk=lMEx74vU(CT!oZjFj~?m{;#t$#5g#K8}UQF6bHcVrzkQ4fAq?at-X-h<%Mm zq5DScQ5b={0`t;V;PP6l4s+kP2^|2t&x+wmSLUI#>=ml>EmTsA1_@z4vMi7dtDUn7V-zT0a z+m3M&`!>85!hP60|5C{JASt~MV~?i+a>1`Rgmvjstv;mlyCd?770M8MC^=YX*x|c) zooQdD@_tl77i0&ykbQxHQXsSEu>QCkYnBwO8`!U6JW*4zX6!G6pM?za!mML?=Uzac z#JQk+Kk63sf*1c|Iu9$s1M1e(EwIf(fs_FsGr(hKJyFIoL%|l*y$@@oBJh)ezF1k~ zhMz0kSc|f0USB~GUiGy__znwvd*LQdPrVMO7H-*3>9wAMed@7-ypxkv@YK_awxS-C zO{R<+a2EDU`zhsSD)=$k3T8*%RrYz^!8$&xjOSdT3uONfgL1rLD&8N4b~YQ717&z* zhCbPgI&e?N0{grae!hKH9$k*HAglx`+}n54rMTy2d0;Qjg{H9mFW67XwZ4LVN#R-6 z!OPXWR`<>jeG>Ozx%?+7_1Z9{+zMXH!UY$R1-kba=3{#=a2mkxV^k>4X}!ww1`qZ8 zPO~47no={B($E*3tu7vGD6Pp*@ErPKCf2F781K@)Xka<1DPA|mgu+w$K!5JDxBk>V z$UGcrflg}oFHYSn^k{ndz#d&M`Aj>{eOA&-+`kyo%V!~D?ESM|_VPJ$^oe+f8SnGuo~ENkBkE}9s5)8*9j%0p7Wu)4 zu8ZVYK^0>q8^k@i=(gn zjC(Pk0T@YNp{v$_{;oTrFL%O+34OWVP_PpEQq<~Jeh=GDTVPP06S|U*xmNzBRYVvM z4bbC@3;GAKL*2T+;P*)pWkH#{2lsn0zKVVBfTM3-X>wm$GET}D~Y`pACceoBRHJ(d(Mm@#;{vcT)!*(=6yE`J$iJRhd4 zAMGc5MYsU=ihZ%aD33L|xAy}FXC5%GDOTEGKUqJ(e4p+7DpF>%U2&gc>`40}>FT@@>{F^=|AamPx?sE;n*iFR$O!_5MGgR5Xm684xY!b+`}r(W!b zE5rNYXHj~&k5X7BVc)C_%zJj@tlV2Q?(N7!yQm;Uf1|8M$c6oq*HeIR9jFUs_tWuAyk;&BS&eeC^%GJSl1fX8?8VO@stoNXMsNEp{~+7o+FM(|?< zZ?IXhJ}`nej3;Uec;hj}jJyk>ljdcr*gt{agd2Za25hh_-3`W}|I*Z_xj5@BD+Syv{p+-g~c*0KpYlIHF;jSN0W%AcJJ^ zE_SJVFA^XbNeD@}qH$vhNg!eUihjho1Sb~jFw*q!Zc*{Nr>pYJ*Ey}DNt7#epv+0i?^yt?mu&U2pgoaa2x zbDr~@bJFStjl930Zr1*xZrDBnT%WoXWYkS|i|Q5$>K37Hz@=Wq-KW(n@~5FwJ?ybb z-Kd9us>`e|`#!$9D8AN}^}@N>J9@1M-3p)Lr_04=oa!s0zk_Q%b`$lpIAiA=HYMXd zX1#YD->BMc1@?<@*4W9mop3%1&ZH%t2-#Tdb&>WGX*Hf&BKwK@S)4n7E1W-Rs9TBG zO}g)h7X6z%7wTl8?+h=Xb7wtNkwbp+89K7~L|Wyso>Jsm~(lw<0j@JGn<*Vjn<6Zp{9<$K^xTl^*Ps-|P`A@gI@ zS^ee;>He;7*2e6aM@uZ+px*}eB6XVIZ#S@gHsc@bcaNYmu*8?kW209JqP6fQvsj18)A!;6jI3I^6MY{N@22L<36;O9x~Jv=H2Y2J4bA)dxfa z`am&#;14FcXWPx$V5gJuKX)=VIAcs)HduVaSFrV$IQxrzIlPHCY4cwAi)-TDH2dpK zY)@=1>@Q>lHrIM*b6MRYIiUFvJ0_4nqp}D)>R0eLY#RZdh1CMw9|v${>jN)%pM!5j z;|x3BU0QT9WIZp-0|zePSTKNOOm2K`$izfjpZ z(me>DE$<0oOP6>x$BL$yqi3uyJETPX?AACm$GlUro9SO`nXhiETaTQQ@1}I59UNC+ z=fABn^nfudTSMN{mFuyaBKQa**a)&$qGoL;eX373%C8^~BWKX{f{mSCqWBl^F7XQ4 zb9htTdikGB^k~R?WqLifrS`y%5c5zfTQ-T0S^DQ8@0`;9w(;KSSWlfw852bCY29y@ z4~5FU8=cwu@%QLE$i@QE30+oDYZyD+?`?us%wY@W))Hv&U1(51JM4p2)G@psS}kRc zZRsa1t-K!Q=a-RAu$E#A{4}ry(%UMC^+G;nwAGrtnW0;c37)m4PJs1cxs$Dg-fhGQ``}Mufl56IE;9R1@_uqsWtS9c^}5+U=6Pu7vA@#$tGR|%K%!R z7_QUaNM=h;;mDSiZ|R-)K5<*Y7<%LceqiW6<&pMl0k3J?dZL3d6#jr^_^o~fJ>XyD z5@S~EfbEq<@NWrcK83Mck)bA9HZ}8}*IQY1;R`1GyTBbLn?qG54K$ z#=w)uL-=>1%$>dGeW$7D0_RF$HaMY_;!=>S=xMqaa$p2CQZ!tL)p7m>EA2RpDP{- zftT@q953<;&@?>xp@@u+EO~eZ@gjc6{c& zvePEYepo7Z#rPQIlGm0MLY5T9@ws4Ihw#h1LRppQm*wby5M`a~E0RuD+YoH*V@k`ZTi5ipO7tZ@jY2Gym878GO)b zvIVDXi@9oY>*8kFpW)~3h?l)$9=5#6cX)GK*(SzI%Q}ZyYbZZzHnNX(qx2o@ZSN{_ zsYJ2{`#EBL7@H;EByZrcZD#qWrja9`l^l5ySR>%>#U*2E8N+Feb!-~{=CQKxn$OFB z!8lAlljip{?Jn~y1?;VY=;Ilu&4p>gx zFURJ(0v!$#>x2KsEUyhs;lJ_TvE!;tf5l{=N3a#}QG5w`lmmav9goEEHLgq9H2A+H z|J^tQ{h@e(NH7->Vct9$4`AoPk(Uw0C+)v^>SyO^l}b%=?!%A zk0y@J>gK>c{nso1CE7F9$C!_QiZ*#6Ktwz{WyI2fvN{T#miFd}k;l{(-hj#y^CS!NfU4QZX4SD;bmVb_$(jY(2A~Th=2X=qRO>IQv*kWnddKR=~!UpP9Ii zvSRXq558wxUO1ce@{~a=hkRbpjP%6UAqP134c#Bc)(;;Ft1K&vHX$=tR5G8A-rs`E ze8$DQAv^Q$h%Ur#c#46!2_J}FcJ4Th7eoWiEuMYWtW3tlD0akT1$+_2#5jBHw-^IM zlb>|h_!qU^_^4T#!qL{1u^aJMjGasv-C+F$A;v~~Vbh$-BH6~a&1s*^eBeII;|sR; zynMIGD?#i{T8t1paA_KP?{s{!mT?d?uza!>9RDYM!^R821JV;|^bo!5+$*w1JY!>n zh#7)s7)$L8i9X2~A(bJ%v2j?63u4UgbS3F1M{z;6p9((XPr+5ZkgX?iKq>nC3-&u3 zkNK2Y4R5fE6t->+Vna?q<`*YHc zlJ-9OYc}-3*W$+K&G0zB4i|qHgU0K;?~-Tn7QWgr`6wm`DZlG z8Qu=8@FzpWxfK)J_HnfXGK0D?n8+f15X*M<^QPqNGiI}mM|eST}?J=vPqjm z{c`FJbSx#V_5Nf!#k7*PgtVJyV_QjEKwYP<6{$SFTbqb9_gi_t06$w^3*?`8%k^z| zFEi%N$^1*RdhP>a-ZEwWtz+IoNq!bD+kRvD*y^Q)V%|b`5c3wgjhMHP)!+CRtn5)c zEgbU(-}QZ9%-hZAY;K}sQnJIv7G}^{G)~IXr2Me*Lh^&y!Ug4ql@(5Q*!s-I7N+Q& zk{dUnv&D6e>=4Z@ub>0qjRH?GhQt?2#)-yO_a|cu!^mhS@7Ad-8)KNoJfZjtxi9*b zL2vnR)EBLcN{cU4y==XacZxAYPr0~IXB)(K0k z_t*=jId7UdL#~lvZO$sZg8H4eTX{i+vIGO&Zu6D8v$`|CJ?++a`yR!3w-SyT^hdImE{BQwP{QTH0Xr3{v298O?($u3ePW^xG8Tcqzx=TtZJW= zeuVG3x`5Yh_ZrM>-=~S^;!43gO*}^VvBD&Ot$KS7yyy6?tKix+=O}ZAz_n>}9M~Pe zhHdmI#XC>CeQ;B-zd#&Vd0ioOa=7lAlm1!0>ssDCd<%RZQ<4zXL?8uEn@YZeKi=@=WB(BN4&KljsVV#mcI_O# zCj3*y*i9vj;Yx{>(!OO8R?G`@&acCGhou~S}ic<%lJ&z!XUFls4Jd`h#MJ4?&+ z^<+;IdrcBEldQu?mwPuV`%YID`nbXYpN_P+XReD*NyocduI0#+w&6pjrucxPt3`~@*%VCbLCxy z_I&sd&n$jt@zkEMOFn`$x8+3jKjr+5d!9M!_=4D>eUXN3MU;79MKk5+C+P?6{ zyn9V(|5IW5m>1703UIBv8Ln<^YjF{M($Xr~zv#EV*Lm_zBUUhYS($I{paPEe~WsUtc2F1`oce4oTu~ZkTHX2((u2X^{6T{ZEbE) zhqSf1$$gsggZUHq{|z&p$>#{e`|wXiBG=7_wT{>Id$*2vwOKMf4866E_qF-!c%v~( z_e=QWMo!*z9j{<$o+-R!`d-6X09wPlFux8|r_pf!ep+`To9FW@dy~?pv+{gCzw%u? zk)4#obNBM-&{z8C(qN6}M$1PlnEw%6OC#}(I?XaK0A}F54@Ciwq&Y5#KvBBbxQG45bHsEe%D->$4je)6W=%;&wUeI z_Q})!IkB-YIBR~U8JqP*yM{L+da$=;K71Go7r8aOLEGB?q3^DLe5&tebwUUGwq6(P z`t`YeJeJYNzvAp$;fOA^sYk7Hsa7=H+_V84J+JlJFZRP>B+6Ha4- z#g&2;X__`qG#8GJI(T=lnE9#TQRn7lot56^-xAazIz3y5H`vGXo|*S)|3_()67oGp zfT!nZ>hgs`>fbY$EF9=cnl}2uHu}_dcx;Dgsq~iC;AzvHJMosD>2OYO1Rnc2VV~v1 zUONBvk&8+J9gD5}SgyaRyWoF@{hTIjd$~RG98C6RQX2MTVh`pMmhu_!H56ZASA=`;`Kh(DjxZ54x8gGF2 zg!ZA+<^5&6aFXZ_wads?c|luvo9YTj(L=EjOf6d9(iGlh&ACsEcr1*rgy(g>F1oV2 zP5lL4S1f50ysq<3OIZ_C!up?L%lG6HF5-XMP-i4=CoSWTXVP&jh3_k4`Ha)=g0`z| z`(M`D`D8uVYcrz!$gI1B`|5JZ1n{oa|HyLAc+#_A*qwiE&T6cBY_;i~E*#66d0*d5 z*7r`{eVp-9md#A9EnS<_%TXEn4US)*L&s9&k8Ovk3))h^(myAS{-q{9Z1c^+D=w04 z4DQw*7GH9Ram>3{^LU?N?9&=jdEQeU>nCcgUHlm5+NAStX~^!uIP=XUuE@&mNt!6H zeSbzgH+*q@-ua2skqn+KRa4tN!DyQaA6cUP!P453nEzs8{!3`nO0_L%zV6!g3Ag{# zxf9oE-^;YEmETj}MCT=d$#Vm1p(d|dy+NtQaOSD@vXVTnOyU@{n@_u~VITdOycXAf zBUQ>lyTwxNw!%c}hP{fqd(E=CVRN*paI}5qeQayanK^uN%?ZZ4Sx=ZX7id2&8sOnz zKhU}T$XEH`(G0Hzven@myw^T3)k*wRk5s$9z*@0|+V-NUP&+cVvh8RR#WC}uVoiSA znCO7o(D%M|ZT;k0_U!?-(g{b?QW-1yII%$Gnm27VCijVuN4`n+e-wV;lfrKU>&`~s za(GUSLzlNLE#tt8q~j{E^hurdTc`HYZ`WR(Z&=;+)NnKHbuHE!%4ck0)NXlk`Xe}6 z`ES?<^Lythp}1({RTIkhjpRu7L^E)aG3;Yy`A>9Ey`Z7aE0|AX#eT3)ruM5Gd+_}D zSi$)V8(yRw_8>$?*|~YMHa^YVPvIo%_ZW{xgzIDpdsDXAvf`?zVs}(O)l=ost~PcZ zoY9G?{WfxAr=rty>0rM*TG+j21>e!4p5#_y*$nL|LG7**kK$jX2ln z=)32~AIPz1NLl>oAI;#vo`fOx3_5WU9Z`Xfh+7;3nwWT8{k(~FS?T)?`mCSZCjBt> z1$4wq=Pwp*JU^~+-pCc&0lJuDR!`)SPkVkO^~43MPtX0c%a>4~ni{S|oV%W?F^ z1;G^EHvkX1Ur=8(;ks$&ISVIStUOfgLUfXNCC=xt@l8cHjJL)!;YsuWb+dF0c;2!lj&2U<`Tc;N(D&z~=i!*`vnRz1@XXHh#*>bGD6T z?(L{PuKic%_i?3laJ+*T=hKX#mT>P$;8FO6ScHiguOfH50vvm(Z#SrMOCKGU~VSMgnb&GrMNbs8+vuZPwX*em)jUR#rp zZOQKm)5!0YqbKE$D%KqB$u%v(91rEA>NCp@m^`t zo=f9BOS@HGAj@AcaT=~)`T=-vP@j|z#HN#9!8c3y4-=zl`z7>y?3(!AGBq8f#bO?PJbew4U?bmJ|1-hcnt<@>Ab9Gtw|_*;`(jdaF$=(od5GCvlWF>}B( z1<0%7S)Re}&=}yNDN&tdbEq8n#Sd(C$&zCFc1oYXGm0hOCZ2(g1>&2@XRY4VI?wH9 z#h;#>yaBGP^P+97E}lXUk5rQHYbLI8)TWc_pZH0Te@11b(Yhe0>)cpW#;>0ow=&#~ zab8zlm2V0>?y!C-NmO2d6HXw%9K-XY>)y47}T{jIA+C@N?wh=g5k!X6|T}wUwmrGI88x+h&`| z`sI_WnPm}fcbDVG%PJgZoz<(W@neL2&J;Z5+KE2bMPEX*GUvH8)$e}EOy?D?ev$28 zv-S_K{+3yz{&n}?Ie*|?-vSr*QfEva;rUUXA)f0vhA>MqNA)((H^+)b@jFd|A2sS4+Q}&(ptL{Me)_lU*ziIt%3VsauVq01tj3xO( z7I;!j!u;SFGG*8UdHY>KYj@L%$Q2`V*Kg&M825VtS`npg&&4>tDMh^KIe=B z^zZ{eGd^oYtdC!QFX>i&bNK&;^?!-)B`=e*@}Gr2@z!UnDR=4qc-da&SkaB}Sb^5p zjW^w_{DW_$$q6f~ZQ10L9<=ic{B8TsRbbQS!SxO5pVCo`1Faqk`a*&1WB57jUH9d0 zxBNt&F4bAE^^_bCZlVP=@f|G=HqFH)tu12<;FFWWhjLP|flK*0G5P!GyYdwzeFU~_ zzT13LZvJ4R*Wn{PGTWxhz3 zKayVD4m|ldV`lidBI+q$r?34TEd90a-udE_`tLv>haWTe`P1que?O(ue?G|H-z-~a zcp-oP1H$`sO#lDf{{DLeL*qIVd1jh%-GqL#QC{IlN8sY~DujPzSo#JYf9hnM zDyPn2U`?In4Rbne4zkzHF?es~6^a&0?`Y9@L$K~V1|no>FF4@tY{5D6xbx$ELXV}| zVddXy;>5 zcEfmzzu>>EcFNZQd zjD48}_Zs7})#nBoAOmTvxi3z8YsN z`>Kg3E%s&y@X4KkN5DtE8ECXBFO5E~uaQo8jJ&A-(N8N)i2W0G z2oLdBAnyVjVt;;;A9a4A#t8Q8lIz1oNnDchdkymhR;CB>8kD_bUfIA}l}sg`-AsF54O3<$5iwsXp1k`aU<0h3&uEdv$vKYR}|P zU<31e6@S}#*44&D`MreSD|oKqx!l$f{|jsJtq(=N1D`_y_&cA&gZLbX(-R%_Jw?Be zqhE|Anv=`0CuLJ=Oz8A?(0}$N^`0aeFMfF*FV4mH zkcp%Jb`Z}Q_g=NUxYD?JCB=Gf*H}jLLbl&!vyK`)B)g%`BD^Xow)wS{OTIXU{bW=9$i{Ls>JAs#peZ6qJFu1zO-AiOrO zP*>|C;5a~90=oow(_A1*8JjHEsX?|B%DZ7c1?ql9C@M_%H z->mqQ&RkEz3)_UD-1k5eMB2eBgSE8%CUp_ZNi@liB9ZA{hszvxlm1f zZWS`Hf}zJKzS^Y_iCAP4IUYI#KHAHn^c?H%*CO+3S!dm?G%e=BUdFAgQQ=+q>^{;J z&%9@%-(t^6*0C4c_u88xrn1;`%4iMR1?Uj);2hi^vGEV;@AP$N8{yZ$J}Qu2Qhy(L zDbq(}o@aeHFp{5Q+Zs=i_V z&gXBHm&;Q=o)tXhv=fgNW zmi=ZZ|L3tWlK#oUwi)r^|k5e z)YqoJB>GJca|TZ+pZ)br6ER?JBwc;1gqS_A1`YLN{i` zP$-{$N%c$hweY9ZF4u-l^lB)d{ibwQYcg)zEIkm)|8Zvev#$t#$8cE}@Y#FNM85y3 zsp%^u7SdhOKMCdE$jn2ZOO^RczFBYZ3oxeK5n}8-@~X*UkiANJUN_XZfna%D4{fB9kVoefVOfbjWPpChPa``icv0l}`vOPU-GdGk+y~=o_&y!AbM& zg`JMx?)vy1>;I*klnk6o>*E{nv5a1IvT!27)5-feeQl4ke{TWPu`x7%!twH1aN0B{Y=KPJ|mjPqVG-DsGQuf2p+BDLvzEEYtl3gaN1sI7C`ZrSA z4Gd%t-?4TUm>cGlHC5Q?2z?OXU)@Z$p8`c8pu;b5EEYi&*FzCv48wtj1mL6g&BL@V#K z-76$C-isft1Km%V;$P`0*`HyLJuL1?&f|X~OzKg}x1Z3bEk2@s5+C|!EbQtM_`S+){1fRH?2~8UO~HKN zh8d;PAU13SR&M>Dq?NDR+T)g2gc~=$V!?Tj`M1aiz$v|%&6I{$+~Nfu z={AMxe5*?|NdKN^{!{u-7@bp|(=I+1M8YGNLveG;m}Wz7;_~U(T#;e^TkYw8LG|^d zAM=;L@=JiCqvx4r>)dPif8SDLT3dR0dI$X{`#T5Q{l3GU?Okn|?^=iY{lS()UG2+E zfA7#>XHWY>{_)-+zpb;aXTzZ1+0!}L+0xbdTkZanor4|zz~JMpLwf1=_UlJ~drRBE zU|QauULTPC?LC8j0I$R!Xm9rqx3#pj*-Y(&hufA3!&G?zl1ebx>koEx4*2BnKkie^ zlPv?j3hC_e5BK+WgV(?lHg|eW-QOvAi}>Fb{SOSZ9HF&~2K-Ol*Xz^xhdaC4f793h zn|HfMqey+ZEN@8s>7ZA z1B348GPBvf&d8V1bwm`u13ql0yYw!IcSiaFitOy|Stv_7ZW(zj3IiG7)6?3&f4!w& zgtJsr9jkf<+xvT3y7XdS!@-)p+%??wY}k zR#Z3E*HrJUI9R=NPwj!76@Ft~^{&RcJ-QqDo4c03ckM6VbH87{r_8Tscd$@OV@8T}!ZrWGxHv!{7ZIyq3 zXX8O`o(;dwePE~G(AZGd&`AD9emCx_YuI1k$n7`mY49t_pWtq&*tMG~)z{Z0>g#JO z{QByB6;!XBJ5j%@(FeVTx_xzi9qCBo@2hL9ZQ_r86%{_{ao72^yY_SM@oNq=_%)4* zJv9xDeofs$pX!jmhG&IelW6j5s%m|}bC>(oyPCKgxcB=MRaafnz|H%Lgb!U4)#V8v zTJn3>?&`!&zp9D%;8{hTt7;p$Yq_f$t7^-6?%H1k;3@!e@2}cZ-&nPW=dS$+sw$fN z-Bs1qyz+VF?}k3S_7l5m8~NwcY&*IAiUW0iMb)F+yM2n}F89kHZLH?@%lTHmucoHF zvA(*ThAjuNa*!&oO8DiKduzF?xhuIFcS3lYU$>vw*Wf3Bov5x#Bq|>96VNQNvjNU> z*HGWkAYFH8kf#+7zEsPshLBX3qEW{tl})0Y|C0F}?4TPB^>lUiJV8HiZ5bM9_w`NK z9d5H)gjY`Q3>|5w9-Te6sD_acq9^wH-9xP%PWq6`KQwgsaC<-XObRKfB}9X9(A;OA ze&5sEb6+Pq@KEniPh0FjdfQSgtq_1qy~;3{8#PusCO%xQ5_J^_IIZ9RT*QQJoU2sk6dQ2Q-Ces{|; z`_|G+=0z%fZ&w>lM#94_t?fPyj&Y&}>_6OQ!SJouSMm~HZBO1l@Kh`Z90QU2--8$eTY`->`{p=gPmB6u3LP%y?+2rH{f@*51_o%ie;O(mX`Q^UF|Jo z>~B{NsZVRa4Yc;R4AP}qdfIG5rGZP;1+0VeA9B@@1^EPGW#0Rs8!k)Qw6ZJa7!E4A z$kO3S*Ot~69zX(QC|}5Gb$n3IBKRfaJH{m#A38qRj^$vf+|v%!Tc)Awg0wCBpOr4K zfSlQ3>u#;+hmwr}8wuwD$BXU9THD*(2IlplAWy(RGD;5hss-RttnvZd68zc9-y6jl zj#$uY$Chms?T3brY+9{8Dg9&z{Y)Zr z0Et%ktF(#zbD4QBKKTB7@lO|UpP74$hH#l^pHB7+N-GU)@7jky(i74?yjhUUs;g^P z*QPgZN7XBNkweEaZ`Hw;Y~ ztY93_cRIVe+K-?MT9JHK^af=FI&WaGrS%CPL4q3VqA7}t1UGrjwdeIEZ5(4aczV3M z4d$NPuD8!qx0!zqZ)Eb-!Z7ZPw^V29;VhT=eIw~YXhlsW=?LlX+z_G+tGheN4KLkP z1CtIT;BlMa@xwOpExZWx4K9`A>|HD@W#xdY@x? zRI6<2!2zlPo1*poCwu#?@G3!yZgdhvuWd>+4yFl`tt4rS#Eb9U7^_69w=)8-s;_GD zAK1M0p|aBZ%O3c5_m^(nignxBHRzX>Z7JQl<-u(}#r1U_LHqO%KD6a%Z|A_^7BbY- zZ|Uzv7;v1@fBDbG#KAqmjbGQ4bK`e2ySR6A@8PcGX70>9!o8Qfnj3$%!C#Eaij5q( zL)^>=&ifrPCi+LkZ$D= z9-W9q2wXT5y%dT>C-1oyo$UBwbn-}FbmCLTq7&s8q7$p$k52yT_2|SOJrjN9Mu&-S z`m%}NU%~yBiElkcw13RRAGmDdzt?2qzyD1We~!P;<(v2)RC4qC{0~k11!(jVv87+r z-Du*R$R1}!di?UBiT@#gf9s5i|2KaBfWLoG%8i%$zrSYUe^p`P*Dsj(Uvt03ySGXA z(*hI!dtm${-)@{T@qb!p;xjRm@XnY-U^MG7oZV37j)U<=uL-4hqC*?eeVfc$Op-I>i~ zXMUgO@oxLH4%b$>ce{Am5q!Q~!rL+5?IvDKw@86S3M^7!kphbpSfs!r1r{l=NP$HP zEK*>R0*e$_q`)sE1s2EuzmUzgi1Z=_7Adeufkg@|Qecq+ixl`prvOodc3EtQ-D-UP zSrsr_8b8ob@dLt4!k(;l9%8SMQS>@RX5VDVK<3(-v0qVQoV{{tNb$&>&9 literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/uld b/tools/irix/root/usr/lib/uld new file mode 100644 index 0000000000000000000000000000000000000000..bd182fdc790481fe27e361f95fd9f1ee9a427a38 GIT binary patch literal 799088 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

    2. ARC4A8L5{$7W#EqzQ4C7oOj1k>twDBK@+ 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�Ud0gi4OiNvxB8@yEUM@ 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 literal 0 HcmV?d00001 diff --git a/tools/irix/root/usr/lib/umerge b/tools/irix/root/usr/lib/umerge new file mode 100644 index 0000000000000000000000000000000000000000..e8e09e664c0060d3b1246c569dfd8553835bde4b GIT binary patch literal 167408 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

      oM$Sl?Hj@+$pnLJXHLFv!_$YxM(V!HqmeTtloUe z>dm;?sgC{N_1^8ENN z$eV_7D9a$mCw4-&DZTpzp8kQ!jDOn1$MLo^OH6F+E^;K|(b1hZj^Aop#QUYAX7&CT zT`qj=HrCOjL!)@;x#pLUS+~A~wT~gK4nJ&S!bf`g{uUEco2_})5IudK-nRN&&!f*e z6G2XGX^ud&NB>(I>30-|&>qg%)c!41xg!mvy3pu@R>zZjv2z`)-D_BNVp+oq@^~*| zd!QYuv9X?Q`y#w8U%=X*Mr_vk zWriGn&bPC0MAHlS6%jZWlA{n#v!$c#9euDecL7*a?6WHEb@CRTZ_?TyykTi1c{^(E z&JCNf1!d-l;(FXfPBVzp6fa3Y_FaS$t>wB9srGhVz$Xg68p?5ocOQ+MQj5goCO|ath0ycp z>O?4`hfC-%c)VW6A(z&E9lpaXv;2EZ=Yb+4yz54Fk(nX;y95t-Kj^WvnMJc;Fw z=D=R$?A1Z&HIIEsCFqsf${D6Xckq+Qn!;CE^NLPI&&(pPx*OaUggW5x6l;{YmziT? z#Zj+6cvoN52EFQZiN)i3XD9SOcA_`*xeosr-^%-3hsR7jl#P+E*}2>oM>J#*f z_3=bobVHx|CS6my)b#1uL|J3H=bYLJ$IR*omA`_0#>lrmCGr6f;_DNG$j>U~GK?vY zzl824R@U?J@9;mcAIxdpm3j8D9Ca_X<-R=rU7isWbN`Fu-^LH?vt^#fCih`;UHum+ zL%+zKs{Rv4dA~if=$@VA8M;cj0kw7XRfiX2V`cM^X7gKBTRRBMRp>FswD=RPFEbBL z6ru6u9@eYCfO;8ihG}={%>Ul zDqma`nA#XVRnD6}@&SD--WIHe_HswVOg_NI@YGlQzL*@qnVy^KV)$wfV8u3zOXPe# z>ea>YLw+7%MXxPeJC8sNUtuH}o0|E!hToZqqgQl#{rao2Lp_J#vuF%IcdO44tk`Yg z*X9Vwjj+FfdSMJtK7!mx<+N>6Ie?ZypO08+@ra&{cY*jMZsiNvkst9$uj#Nhc68^a z;&Hd;KyX9(I(&s$dO*5(AM;M}a=syspE+l!WB*T_EnP5X7G?_Us|@48uRA-P7z|^N zotp~B-CUN%mv(Jg{Dv{g3byVGM$f3pFG{1kT3BN&UC(-GbbYF!d1ifVP;zToDYwSL zi})qhPXT_dUt)g8>SnJa{y10Mys8>5foobx1K#m05m%&LB(J&pMzIMLoeIacGJAm4fpePb7(U0isv*3$Yb z+P@=ONq=ZO_uuJgykOep2%|n*7?-O41;*aSreS+CzKV}U@i9H0YOXL>%g?dN2tR9n z*~YlG9C;Sj@7jG*4bwI^v&YRD{^3ENn|XSwZk^K9qhqT+UjvO^&e@vpXb-txQ(!n}WKITW82brtg-cfv+nBu7U1ir-$7FY0>&#_SFD6{5{ z9KHRt_BbDa`J1$Ew5Hse`D#9Qm0!2w^Wn*N+*~xda~m%upL9H z&-H2dnmQj{>(kP#QP^akU#`E#OfHdMyz8_2KiYri5AGV#nMXF6c++j2mJobD7P1@;~%S7I(T_lyXjy ze3WE3jcjX8eKa4HV;q+18T!of?*+;z#!0KMrQyAUf?NEqe({;Kyq!?L;KdHrMLrt! z2wq&O>taLPWcy8iY`5DlqWe{tJhQ*y31X-eI-%X`gH4Gs?Kxtd%q8acGPBs5IEjq% zNq*O@i7Pzpa^~Usq2!zHd0_y40=;u108Xjw(I*N=x%9%nBo9C3HO5~dc$H&miJ8hGOHOhX?LDTiR zV{^FGH3uuLj0F*2q4fE^n+lvSKYW(5oKv)TNz=8+&pOWGPjdYBRTF5`!hbZqf|VSM zecZy_yLbJ_k4-}nd$C}!sek-O#P{Ri!-usHujtB|aQ0)@zq&mu&AMUt+Ol`W*nKO( zE4AyUv7^VB*Ebp$`G1vjYl1;jTI$vf6|T}HQY>jV7*o z#Z#_4F}CFyY)0)6&keiR#4q9Ty46G_gh&x_P{#cJ@OBO zb+Ku;j!)0wPxhP#KT+M`eQqAI_z#@@8b0Fs8@@lI?Ip+SBYRAn%D0_x`>+c|d?5H> z(RaeV&cwE#GOV-tkLTL-)PSx~`n|!|Ah#{e1U7 zVO}g1_npx1{S*2NUSp=&-XC>m+myWCz5h~wwoTcsJ5U*0KJC^W(1%pmcik86_~p%s zbntun9gZ7(aGY4aJh7X5^hq(M`qaIaH77RCNo9!vVpCIQkBOzqg;REY=F6XNyNGO zZ0$Fb`dzq&91(jMAK2phELjqclz-ILpYLVpKl^zO*1-#&-6uHL?@w(C_snUpe^3rC zCI7HjrHK2Qt84l%(Qo{Z!Av~yPor|A`}owByG9P_7xtypc zOOL~+$R$2VHAWCkll|s;TW61#NA^sp#p3Dn%6(krN>7>N_WAERyjX*S#sDwx%d#f# zZSot*s$8}pmy^ilsFTZ?yf$*F`}aAyEG~EO_OI}A*>6^=J(bau*0Slc?O#+b*+)+K zaLm+S^0~nTz0n$N{MXfzNn~-ZWRZUChTnJNGcxbAwG0DYGBsg#n^?Kr&|-aXD~Anc zFgry#*~>?sHGinHi}aCfP-nLI+qTQRbn$w4#8lRW&vn&vGp`>Xk%c6I=F;q%!da4^ z`zLr`H=owAN{_C(=X0NXr0YwwOiJ^r;a*!Kc`Ufs=dB5kO*8Hr$CHtm%M0}?) zboio%G;(9*J+FDz=k|A+pzHF#`%sn79|4DNJKfgWKkKUTn^`aSuo){{$M|WS@w4e; z^JjN*2jL--ID1#YK}OZ@Lwm*5tUs~o~1Jb){%2Oo-nhPPW;r$=@5M@SMjHuej~rz zX8c^&AI85de+M~e9R4wTx@dD^4s*7|Icl%<@T_?jzMF%#cvNu!E^TT}z`Egs#Fp6b zw)|hbqrP)r>(tkkcDl93g)4NI`&Typx$YN!XnHl)BX79-Gk!>!d3yTq&-pC;)cILv z<4~uWKcsi}#2%S4e<*!=|5KhX1}hed{4;U@R_-Pq7Y>d8L2Zrv3A_jW`(8DlSjE^T z%H|UK_Dtb*rxzJ-`|0DH$5r^eqIu!8_GNC#sIS&HdB!{=dN0hIx$5VE0{#$oy>$on zLcR<8W;wIu;Dh%#T`YiA9^|=vrV;jQq5n^?`g4i!`HflT6S;3H9^AB$z49IVf9!19 zg29I0QGMa5EB(sox__4b8q@b36YqJniYLB}!;?Ne&Dx8nEuMqUPd{*%!*em~d{noJ z=cg`!XDBN#s3h{1ZY+s@ZN!qCtx{e%*tpM*DgW#F0p_`N?P?*O-y7;?azgv^dAslY zw%}NBXMgqVn4nnI&9-0UJ^NIjoU|dgWo_$38MxPw>-uezTrlWjXn6ZM;axmkIrpHq z@5D8l(_16FsBR9dC#IS(&n@u&K=Fw6GhdFBcm9AcKYYE($RB1N*M4UB4^h}_ZTCSv z82&hWoGGVwJn2K;o}Jt}Z=ydFoUrr#)>FDx0^UZ1Zc=CQPR%E_|Y zQ|zM8#1Qcv^{9W-fh#rsyW2w@;NOj@b{C*e%Fwy2I{VMK^?lH?$+kIq?~VIUyE6&& zyvo-O?ll%J^}#tP{!7H7OrB(^N)jLKba@fZP3_k25$oM^-_MgBe8=>1=3uX$En4nl zLt{P|lv(5R8DHl|dW!A5Laq`pcqggw>N!LnQsdpioKp#&n}Z^LGk82WgFo=BO5($e za>fQ+MojGDPS$4$-;wPmt^Qxyj2{HuO#&Eu1cUPunu3RjovJWmOW5nrC{r$Ob+YUC zTu;yLkx#k(2l%P>OhHRCbgJ4P_IxwB5uGafJ6#)RzWdtTR+EO;#TTC-PjZ$0yzoGYMSND)t?SuHLdY_oW#=u_AM!+9FdjI%?8H)|IuOI_2VJqaY&v`=DhbghrA zGec`vXOZd%7BGiAUd{&1;MA-#)tql*{7=Z$G^_2*H&>ppG&|zfnJTwMPP<%_7sF3b znTa2e=lqT+BEKrG{Xg=Fp0n?8%1U?c9MrSgKE;)9Ugve0c=+$ayMGs*_P15G$_r=o z%f{rE8w+nh3qGxRxBd$ox=g|ZuZus8RD)KzYj_PyH zo&AtYuy`{^m)4Eevd4SS;F~9E@yeuw)@q~RgQe?kI6$ZG827)nhGrakd9SYMr z-Jm_H>#Ae<#mYI2uWJ{Wek||rCKr0l9LHw4_rb ze6-dVa4^Zn!xj(yrJ#l|gFyhI*uW!c=HX{!AC8ys_vK?n@+bDW?Yo}u-8+bF zH_C4kx5h+=V6V+Z|2>tFJ(V3p7xZ7cgts={;_cW<`fmLt?AYb#Ox#yJ$BN;9eZbrg z@9ER_H8U%>0lRU#_sJ*S{e|B}7F#wgbMKgD-eB6Ttu5Rozl{1;Qt`{WX{SkR>$YY% zZ$)b=ZN8LPzC~+WYV=q?e8pRQH#?iutMJYwc^ zo`mLl=MHF|?pVW|nf?Snr9XS{k4$WrmDSOmHx#x+{0J|jCFDtRqj)(w9?qxTbufdO z)Y@kItl#^z6IRx4C?2VmHJ1a}xv3QQ_chnWn1!&I!phdeVqMoKEPi2}V>2e`_rch2 z>;A%g>~H8g^1A6L{3-DVnRH7R{3ppq@%RPe4`Mr&8F>?VBiFsa%Uf~xMdA-%zVIU# zf9$_PwaI_17yl{;ur;GIHZKXxm(bDADQ3(pFdu5`weO}&$;UQ3Q=Rs#$lK5##;gkl zQ`v=qS$yeid!`1wM+~Oiwa)%31a}7|&goe1+KDw0gCR5YZFZ3E&5p1)R&mR!IkZ1# z`?BEq!AwI-Z@e4*8%(oD8`Ly^GjdwxO8MMg$~B8ePh`v}|l+zrXCr7T)UCO`c?0sRQ zi%YQomsp!naJdYvSJr2I1Nj~DM!=5mC&ticao~Iroj38o3i3YWU4kF=cRb43SIkYM zROav)I+wEw^na8N`mG#|>gc}WG;3?Xae`bDW3h_)u7m0edbY)t-`yAOla+yS=oyJW zsMj$uZ2O<7FPrH1z7sh$!MlI9kNwi&nuU9Bygy#++o~Ke=ZePA)XH46AK0y#_TN-# z;?V18-Bj@<_`TdW$G08~>Epg`vnmcU#bBo~6?hU>8`p!o0%44H# z1V42I+mv*I|b@UQfk=t8W3ovHKtE3e8AvSsl5(RFFHZToc8 zl~tb{o|W&~vWnLQ>v(NH!Qq?sdCeN9#(N?$!dESi5F=35&Qayonua9n6WKdf$q>`9 zPU>~#19)zuSN3=jQ&nt)XXj3v`u!fSm9GiU=pL`OubaPZ$3{Fjy6f)ZZfDPJU+yt> zjc(W%izj0uKCg*UWYfg+OX0_Fs|9p)ztMVA#VE?HmrFhF{>1H^Up>#o_6y2B$92B1 zQ}zAGxyEGo367ftp;(g4;U{{V9{N>!c7T(n8I$7+(tduu+4*Sl@8vTUpYnA-RqIo! zuAT#{rTD6T855possF38;(hQUT0uB;ZVz&r?{cyaKX{)yf}`b|nBke_S@W2s2|7rA z|NdUbH=WJc?Q8w|nr7ky8n_(EuwZef)OUj|!K*W{Vky?DUS;h{v&GNq^j&+3e`0bWOyTJ9=DllH9;@++ z#$V6;eJiJ7yn@Rp*>F7ZFg$_X7Js%5n$M{J`(MTPg_iQWtsk_( z`~LUT`f^UM)cOAE3%DKr0X7~v))?-8%F#M|2ef|G`+W28`SwDerZVS61~)+8j^ceP z4Xs}oiZ3Up0glbm1N$EZ7P=<%|M?wLxg7rg;aNPBu3-H454gFsMaJ@6S@0~sW~)4B z;{eqaO(Y+jHQ1rw_#$?WUu*J3ALupPmP2+djH6W;VJu+J<>&oTdj4`47m1JkxY_u> zntMP;W*Xxi5#3^Qr%JLH;s(9KXbQdOB-^ zb7~f*%~~+blB)_bt-KE^Nk5jl@o3xW)&jGx-0Gy(vhx#$dwmXnzQbzal(Tii{)~dD z!`KMy!tkfbJNh#lc(-M;bj0bHDR*Xr&bwvp8gUzIwCMA%#I7FcAl|ax6YI2Gn}cpX zk#)wble~9RvFPVF4}1MhTSd-c73{E0!JOiJ1+^)i5oyoza_3)%wwF0LZRyH!m4~jY zWBt&V^IhQ&w`bJv7v;?MZq97aHB49cjY9AL%(Rr&M{~vAb?^%zoFa zp5`rwk3kFYfj8#}-T}SiiO=GyAGYJQ@SPGWud;e>;XNH}0G_^^EIi|$BNq5PGxbzn z@4r%A-pBOsZ2diMessU(0_?1rQ(%nNmG0YnV`=ZcBc&b0{mapJSJPjv3;G-XwXL_0 z_iob1;%(rtqxk>w_Ac;o7gwHd{kvPXUX~?Wl4W9`g%#u#~Je1#?oHn}Rl(k2Z2o^Cr;>ToPInuz30RW|nKm`sL6t+>Yofxkd zR_7!CrP+NbZ@$a-tHfmOr#-@X>eq1|GPck}0(;bhJ&JUP&+{^yiuu_ub>J%uU2URc z|IUmwoifi`_~i3xuFm|rTlCN~(Jb4e=c$&iPnZJ!FXt!Slu*4z!{#;CACI}R&Xyy~ z$0p}cHYKay7JtnlLs&3}UM$9dtI!D}jFVeOeSV@{w(Z;ZJ9m*^9U~@hGB^9N#qq8- z_GnlepSce?I=J(Z?8nXGq07)u;4qdaPc4tSPx^7gaX+>I-MF`PlS$^=N_kM#CoTWu zk3DdiZy&iIade27y!uZb9dx;N^jfocILUg~H%s&xx(=O28EB6f)3>Y51znus+;Gax zv3NKOUZXx|EdSWSwlYc`tsC?Fq<)9#ZQ=B|__&S3@L=wEFgGi~;jX?!h^PA_r~JO= zozF!)){ZB0j|t;hpTriD>pJui*T$+P;ET>#)x{hOe1i4t3GfHVNd;fYzQ$g;-q^XP znM1r^yto{jifqgc!(Fa(!Q*E3s@0r(^AU5t`sF{X_McfD;XkYJpDhT=={GR(QcJiN z%XV0p#rmuG-H_trxBkzB zS3_PhMyy3^k9GLOzltQh-;9UO_s1vRta7o{%WKFBL7rIKiG^{2{^-Qr=tTR@+EKx_ zV`-n0zepX)*{Tnj0y6e>`O1l!A zPM@a!>U!~ebHB4UbH-!VH-8@xJk?mQ+XXqur zj&kZOe$&e~@ICfU#U#7?@RjwM*XnqMTm$>Dxog21OC>p)1JJ&THI~~V3%uL$x3jLC zSBJm-Q`svsOHc3xyNm1X`VGzO^8?QQ?f2(I^GubM|Lmpc7<4LeZ1p?BnV=`zYYM5( z+YRvmtwFxa8sxTwcZXdEe1S5b&#ouOoU(x*+Vr}O4SgP6)j@o>&gBLumOY*@2Z#&A z&0nvoVBPX5;67^iJ$>BLU3-OQZArQFNIJTOrx)651jccEk+^-H?Q8EOevDuDkwZ_K z{b}NeX~mKGc(YHmoB1b{Gjk<5S^L3lM&rFsF4DJB&d=ZQ`g)d9=8{8?Q=k3`zO6s9 zO?5wTXtY?@j(vI~Ww!WbwrpRz_E)z3mE`5@PhZD7V5@#~>G-k_aK05VmL57*gyC{p zuArP~$;a#LSNpApMyP)k&u{ae|4mZuzwgk|VqMoh{Zl)(?r(aRuD#N>(QxPq>Tl;A zu=OrlwPo4br|i4xLrrlNf!20lAnU${s& z$ri~@=^Z+%L->x$Ch<^w&|4shG;7ovN7nb{s=Zk?FRaiIQ!p^A@7n2;*>vB`7~=~(BTV;1Ep`C7zdh; zezyOTQTi?!Ro~~C${$X)(ZIc4I59uD-tTk5(b3`B{vVmchU{5%oOS&x%=xO*5X5&j zyLnhszGOR~tA(TTDyzPb`(^j8G!Y50zprxj8pfyA1K(oop?TcV9G+@az0Bv_x6cc^ ztWU$bs~to6H0VOLnfZzHY0l`+*uML;TB{Z`f2ce#nO1skc?a0OUr_RALjD0d*ZDKJ z9I6AoF6i29{R2BAZOFeze`b@paMf~aqpe>VqFa&opxgBR400)(nYrl<{>)<9F=y~+ za=t%(iOY{9?K#riUVtZ7`Z(Un%N1OA3rtvvd& zt}@8vEXgEgKiVEEq~?s9kGQoQ#j3ZPsMnJ)du%>it@OvxN#E{a@9mxj4+68(EYQWjg79c z@%mY+o4rE0xRc;$UH~i$=W&<21)P5;IJRui9&-oHA#6GMMaT{1j;b7f(;v&OyLEy- zOH1#D{)9%Xfl4&=MW!c&!T4D?S~zv?>EC0#Q1tl~w?k+75Mzojj7_32>a5cF@G`q%j#=xOhBA}{jW zb{(e9(vx{0xguS%UxH=F1R70%b*xC!e=S&6pHbH0pfU94WolRB>eJyGmDQdk@ujEr z&`e)UzE#By+*3|H{~Y#6(O9;fK22X_&O8Et;_bJ$K+`MP1Jz^CQ?NYBd8w}d@Xgp!pFhWn{JB8= zVt;{w0?^uhaumb7il(&hv@QeNd$CP!>X z_Ole*nd$Pp0zEOsm)LP_Fh7w`VcSbe#_jw>?<~)X8mFu@VAq(C3ySRF4Yvqfz_o}fR(_Ob?EQm1I8QLSt&bf5-X`DXr+nLZow;DuQmd<-ZA`vL+jx~f z*B^%$`OF)RZ;Npt<;yq=gqFxM~5-=~}FcTTd8{ARrEoI?IxU>`+0%cFb?XYAe?=lQCG-n&$G zlJV{!Zc{hB$FLvZ-dE%wpG(ZQ)t*+6W10ACG6XPDv|Ak+wZGO`p=}G3^OT0I{ zPR{vxM-(K#sRi3}koi}CK$4bG5_M8yjyoE#u3W<9=7~ zOma|n!t1QU-HpkAh7#bz-}d`rSEo7u&pG?stx0SZE$r_AfA@U*X`ZJ}^L*E7p6@=* z^YoPG_h!~9u0Ik7=X*2BAnuF|yb7Pi!sRXB@mzRMc<$y}uWHUT;kkVJa^>-9^_)3e z|D^IA{`2c6JpZbBThGJu(d;4oL}*7Yop@wk(+zHqd-e&pmPQm?w_{+JcuYK^PyHosjgi=6w|=K@apm`Qx|nWL-tiIqt$QHYGjv}AfdS^74F$~7;M0o5hteu&pzSCAC;8*WB(K>Puw0VGd_E6#fvSl7-t!!v- zfA-h(2imp&n)4+7UN+LZEP@}_{%h97<~%*l-9{%xN5#!G=HBO+`}DfLMoKhowJ<5C zXTm2s?tE7Egf9=?<&GFD6G1)REwb-+rH^LoOl5i(Z5-THJCZfAte-<<-&>yato;=| z0~rnINghF>~HHb3X3nt-_b8(*Bk032(N|XS8;UGskW0 z1RpwBgP)n0tM+!i9n3E^78=8@kD3B@`+xd_fUT_4dJi^bjg)j_{Q zxYs$@yK3oQeDXNz8TIRf=W4^!4Y<;W>c`-X`agLko5|yquF{>RyHhDsW%oIq@@6Be z+g%w`$_Lt^C-`P5eT#PJ#QH_cq1}tnj*+$VB*osD#}j++_U>feqgJJ%-AU)uH^rGl z@@c%pB=ybSX6e>wac^_0TXRq!p~uaZzFVBWURh(jhJL4GbG!DumHTo!&wS^t>GEw?q?kD%tF69<^r3U z3uJ5#-v@15C0u?!4KAxx*6-H}!4~d=H<|gG+pFF*xG%K0Kg)Q7cP>F5%0W7e&ooV) zW{banS96=@GQ`LY=V!03(_E%k`)Tbuh_#akcUs&7d?vxQaw*&eb56YEZxUOz_BqfM z>LWa2%g;%c%1zcODrfcO!@vJe?SD(YNO7(FcR$rTy9Ud5X$>}dn~hnf2hw`4bB**t zX9TwN)kWlwGVj&D1H#|N0Ro#hHTS~t3AQ%SG3`gp+rmTg(wr~+M(~kU_{_J_vLC#& za1Y-5n%;-$WXs>1S)=cfi)>xxmK>f^20w-8N2ff0c<(mado^-uqK_o|>+G>b!+|f_hiuDfQJycBjOFgz}LD$usKiKwe>68lwlps;(&bGw&voyt1ZgA zxlneXPbGshk{ZT+9FBrRjq}%X{g0&%Fi|62pa?hdFpNLl35&Fd) zb84??kGWRg=xE^>nb*oWj4{@&qQr|1?0q$M1M(T&zB8e3Z~M+%3x#LzVZbv%Cm%kd_srpNmB4Lpdbhrn3#1RaG1f%xzy2ThhyO5q5on{ z<8Ga1{|P~-Kc)n0GC%6Q;NaUWm9A25m}D)7+=XR0F~d|Kr!BdGf%NElXrg(?OjFU& z@82yyxF?_catayW{Q!2_>W;*b4!fp7?9MR9iYFSQZ)D*U$~@w2=AN(z%y}x?oN{yr z%USaMoA1@xO)10LyB!a>dlv1-w0_AxmpNg)vP@)vH^@5Ta>{tY8mIhZ=C&sLEbrkl zZ!LS+-!|vz`DxpGz0@A<)SG9<+h@XKqLF!KajWpAji}mJJAy0xgMRZa&hxl^f26~% zW!d-l?|D~r;q2IVI0wSm_cLM^FZ=%BZmaRb{Zf;n8TmKbgLPtblyCH>o=+*~bnY`# zo)7IkraF=2L^-su8RyBc7CmEbVh-Gr+nK4Cj%UqVI3(KeO-2}R&5iY$lQ;YHE!f0~ zt|bpo|N7K^V3&M5qB-D%xt{<0?MQN>4qz=->zJ9wbnJp*1;y<6<7P9jR*}|bGoZf6on$4;c><@0pyWBX~ znU|~VA4tEt09G)*XKG(~tB$_$KR%;x=Bk_Y9q2C3rCwtFpxpylGIUI({*NDIyoL6; z%fVc1=aWGWCi^b2V#>knSNux+qB`|S7guhUpEflI)2^MX+#HvKdA%P~2qG<$yZ>uv|MP zn3Ef;4{aa+(#;!ML%;c~{e7js9+5O)1Ws4L1I%eN-0J|Xu7B{boAc_O#sogQ z*_PwH2F1(|#W{o5=8}^8#rbBU@q>O&g)Mivzs@vn77$O=n7{JC^W?G+LzGO~oD|>^ zYgPXDD-V*3Vr3P6u=b|MJ}=%`U5b^scrEtA)dQxjNBgR0+vfZhXJj~O znp8)hHtzi!y@Pt;`1Mo7uQw8RY~$C3PpeEQ zejVtnPuStS!^>K4GvA}pv`EZeK zDYKk&#FuvvqXg&BIUd9Z^745U7r^iN6Zt(FYu_hnp_3m*UoMzbuD49N50)u+ZJBbb z%ar?QnR3$KliS@~rrd>P%3V{YoYrqA!@HzRIqlP#bcd{23O%YUU0&$ug|Dq$P&w}C zibqd5d2wTM*{)!ZOD;R`4D*WkzL$&{3--1=!`>G5^RPaYU=K{Z;W@@kJdhhWrm-pA z9p?QO_}#gokT1MJCGu_HT&?l3_#EksfKM0e%VFPf2JdIM_Z{z+d4C@7&-35^p!j~O z@7QG;4~#PxvV3FbKVU$}@l}i4!M!K5y|la5^3La@tCR9;2Qw&0(KW!)`f1?!P@80V z_apkvd%GT@GPZrealZE#PE(hAhl_Q?JlbV(aCQIuGxD`#rVY_~g3mF_K>H zLawTir%y6Bbm!tkdQxTy^0cJW%Conwr`3x)9tiw*zmJvluhOUU|07t))1O$l{`{s) zx$pYrde2bq+kUyr%aoJ+I(|LU@tj|7-5JU$H%IubDpM}p59L6r+~PBoJL;Fa;0)#R ze!0dn<-+}V*e_RY%LRLME6nA^zP`|rRT)W%$|&wY9O9GO18I5WzElc6I55;kOt#uo zk3HeeezD{8LL{lWmRB7w*)yCc@Cx@*iH{z<*_~x|t~{L8nU$*lWi!Jc_lbNwQHCS* z%i3M$zUeGy)(F3bJa-yYkT2cq%S#zK(kEj?-5VV^|AGTJPn>9c?;7>w5M)b z`bf|1Z^tj=`kOIPoNKMlYzSmUWkpN+>vY1Aj@{~Ov5)k3vTWM-YZRm2{Rn$iV?I64 zTBl^!QkOO!ZZoIXE2kfi`)vDqUq)vl8(&smjlEMF2flRA_m}h-U*)c$glP`wqjU5G z58BKiPO;>SbpMdenjJjPH&`4MVJRd z<2FU7+V+t@weOEvvF^|c&UOTT!zttwewe@?CEiF`7^kPbi))tQL5p_~SE9b!2=Uw( zif~JP55M1Dd=KvQJ3;-4w&XN8DJItbS?1)}Q5$E&d(iLZ1HWHkagv=c;|E6ZEBre^ z*~|IC4&SdhHp#CztFzuu?`K4Mu;m+a51<>rvgZ}fzUayA+mmOGHG{pj6|67D+8>A{ zbH|0L=E9L~`MB(_74Iun_P;`h$+mvoLzgN3=f+sMry>4W7pmJ)t}Z$4%6Pl>zy+Md z%XVG`&)9e!a(;ttGvKMIFb)a^H*xwbQu`?O!~ePzmp`|$~tvtub)Do@*L3!`M`?}zTb58nC5s;{wB8J%^& zo$r4tJI{Qudd%kN?mi$sBkw;h-m`X{I`%unw*g-=$FuQe=BqWfj6bIOJ2LKar)}9I zomcyPY^4tKz3B#@tP;RnuqZf*i$vRZ|b){9vf``O6`=@N6go|MeheSRvOcD9j}e9e&*)W^b^_z zIMUCsURpmr{muWYewtd{@q(}L=(YssHODGmH?N4liT~8=d#*7j^=*BJ4Q9FeuHWpN zmG7{wnfuiAo1DCQ>13v0i$(9EuJz}Omfn)RD;)nl*!CXjai!0{=xV_{1OJBUkrckd zRpTL^L;gD=`P0fzIUiyj`q;{z9m`N%_6MyIeBx5eCAY+Ux{;koL&_|*ZBEqHzJJ~M zAv;E!-53ie&ho3A(x(!Sm6wI9d>(oJG&CvIFDnZSbPY1y74VVpP;S4^=eA!OPkmHQ zeJ5tP#`e=+?``;ji)D##)NlC4)(BwwV-@uK{aN-ksPFi})?Ta4bM7~J{L|{PGxS?H zQ9rGI1$-@>phvUSO@S^h(Zb>^Tu)Q4(${Hel?lVNw3EE?X-@u*$P6&{?0JPfre2~o zd()!-&br8wp4NFU{_Y$0-MPi+dRz=>b;|eEo+j24&+XrnC&r_>-(Yqdv7rCR+1;tP zbl%B2@`n`*Qp~PgSSL;bbcu;?P5UuSdLKbrU$_|Ch8{~d#8cel-GH8J+Yf2kpEBC6B2 zq>!p;#Rm~5W z?<8`AdlRBF>vHzPVA?sm=018*98XFyW_65dog35Tp9SZ*uX`SOsKVNb+R&J~cO{t% z#cG$|5~@3q76Hui_5O|OwZ}ZIg`|X^+S7LtUa4Nl&tCp9zaF~hoa$}%>oE^IW4&JF@&=`StKa&seX9dNux7bolkibw8(it*)MO;V0IEAGB^6XPwr? zYT$=Syb#8_NoDOg0EgU)t<#K4n1^Ogs`rIy>V?|t{OzQAyQZlZqEqKvlj`lBre3(c zA5E(Fz%=z{F)p+8K5?Y;|DIHDFkH{l>$GQtb!_l$=WCL0*~UP=yN1|zQV?}=>|gEObQbl(`cLZts<*XVJ?!6Xbo;Cc@?GTN z<@dU}=G}62#lzAS`bJmWp>NAqAzS9#EdT7gC0qXhn|1UwygYn%yu3nluJ_2xE8ZWf zdk(z3BGAp}XtP!<^vCQRd3nWoe!a8d<&e!7>N=wii3mjBML zx1k(gO_H6k4E&>CZ__!}`-NZcTxG}V{&KPtvXP$*@qPF%RG;VDx4(Cu_tu?;=YMP4 zJfr^Zx={UoZ~D8-+I7F~Iq-Z}jZf=y)AF}H!0-iV<-VO2K ziXZ#!oul4g@qNGE+35WWWTnFS5i6`80bRP!g6BgrwnB3j(R1B7)_c*f*Krp0!gSFZ z`)TcrwJ`?<-jIJ3tkc__3HE9R`TRj#{K$$YeLT)l)>jPs z^%7^%?=T-dqe&!@y8m_l(QoU_q z|8!D4#nI~hvFV>w@9;GB=1|Y(mnV*_xN1_pqv3iM|I_-zt=;ckhnh!DqeIVfuG_Uo zc>8+r9Ot@ST7wGeo{J9sQ`JLu&sB$R_3NFZ4({R zY8b!$fZH!#%x`-w*e~usUrTI~&)o0%xvP8JbN1R)>iN7Ey{~Y7_$Kc8IcYBF8`nKQ z`f!d=Yvv(Wch0!?pe+;V`@=S_6w*m6zapHn-vJ-RGkMP%L=4+8ab56h_Pt`56Z7Qy zU7xaw-BO?2pBdUCHBJ4AxpF~$a)wmjuN#hQtrJdqx8wP#YvKO8$#TAq_G^h#-UJ`j z264*h%Qjy8S<$Fy%Yg0pY~_%pgKKL7yzB|eL!*7l6NNZghJN9&9vo1n0aI_v0o8 zTeI+z%}rr1Bz+kix{ST|Wq3yI0pr)&GfBC$Xem0X9req8Pvq;6?OT}&(fV-qdGefQ zxN{m4GYbX#&hhloq36v-yi@L~Ti@_`QaGtywG(dF@?0s-5b{e_-X*x|>+;#`-PZoM z`sXe+Ehkcu?{RK`pSvEZA)h}-4m+`Bofj31Cpd)HP;CD!4dxYoA$X#j=!FbUjCG$I zzK!&=(emSwmHpXQ+`1)kXd98vvSI=r74=C!uhi$Y^koy)4=irz@t9~s9OCcwJ$a0P zT`771`%moqiDMOt6R!MYJ07zvj6erz9W=aV5%9PC0p)2;pp~x&9vP~D*G~U#?rGkg zX^fXbv!y=GmQCOt&cOiY6y5=kdC=pi&(|&|+Lu$_HBIxb`E>8f@uS8-_%H@X-5A{a zM*AyH-`I5}-eGT~HyXn_FT?}$RNt*ZO^iwFxnO4h)~)R}kN@7qo3J^oS9Q~80kaPPyxnwQm=5Vf^@^nN)JB}~RjN5*nM#d$>?f==t$k$9tM(4)4%ZqVlY%G6T z82)&Q2ELrW&6=9**c4qQ*=6l8W??P`ChayP%_3y^^OPS1_C$NTOn19rPj4pIlCo3Y zmvljSd)(pI|MGjY$F@(`m{{{C3aN*#g?$osv&=7J;@y~o9q}= z6@D(5|3bPl+^3(YPr{3se=PUFKs|m%Ec<}n`?x8Rv%bYV?^LQywrzPG{TiR5|80G% z|FiT9`+8RTzY+ZpynmrSg=DGgzo}2{-z+=laWYmK-*7#}IaIIQ++}jTkbUg>reCkz zTxoK>aC=&3P zTHjlT4t3`bom+m#cDMfAkoV^^Cnn8jy2r?0CZ|I=9E-{Q(ESc)T94k!9HyK7t836L z=PN#hO*nt9;U2y+`+t1f_X2%zdw!<+MO{|j_c?jbc01nypRdWv%>MKvl8fv;$hCZ) z#Ws&Q>ectO?psm}^-26S2*`2~~{jBvj!zGY|`>hJ%s`q$-Z+gNvwu_a$2LB7Ib@)bIw_>rZ2 z?b%=OdE}KzJkl}tb$CNLKIA&s+#hm%{CtJRsq2{D5PZo%t?B>Yo-JJ zS84OL=YmJz*HM!Gh1NJ$eE>QvF2->#n_}nPyRtfFRadw!`LvVmd;oWX@0RUDm(eDC zESp&|0k>j&ch$0?9o!Q~IdZlW%i`7o zZdZG?E9@CvCl-3Y=}knjj}yhk~#ch*keQt6Vg6&`DJmd z1-BlrzH^Uo<7~58oNbmn5u4e1mUOFwZvO?kjZZ_jD?QBts?lGfTXh-SW|zgS2Hg6* z#?D)WTXJEvQg;a39Ne>`TP?Wl2e;HTxLxNdcdruvRk&4_!EI()+^WItDsOS;6~b+N zA?HIRydE2aI6K^G!0of();|qyS9_Y1S1}J3Ze_-F+Daw%J<%ZnN+`h1-O+ddF`o|7Tg;W`o;CZ$amq!j1D`wsLmU zFYQ@+XGgdB$iix5AwCUmJzgB#>d3VgZgo?~bmb4r;x-H1uJq!aj|(^MY28R%X~f-+ zdRF>vHgx+3=yqxv+^+F+6OzCGGpqMxD?+&m*e#o97j-tP%lS2xCw!ZA%I2$v&fytj zud~jV8DsCW_*gvb=-<5no!X*zoHI8f+p6>BC=<4?{(E<(5AQ-gWp_iU{?pUepK6~c z!wva>-HLexcs(;M+>+f3+050y57p=Fn`!!WX1qf5TK!KUxL=z^B5kA~oWe_FWZ@p>>+|J1bg&ke7E5ZoV4 z3%5L8T2Bn<^~SXI&kZlFHwJKjJ}unxcqykhsQ=cq^-qUaHvM)kmws1um3yys66sHL ztc`-F zpP61^IkZY!Z8`2HbvVO%6nP$(PA54 z&eTtfdwJSjR;)j{Z#w6RanZcUp9jU=Jm|OML44Ql&ttBn`^ioI=)^n96~oisJ>qxu zDf3}FXL^9M6aI=dcJ6mm3^TirnAE>>>+3p)k9DR_Xc1mx>ay|FIfY-_xD@5-qt=!+ zw=A8jKwWU{%HHAjX_DVjY2i(RrS|;#6ZZ-R^>4QC^Jl2Lq+Hvo1MCTLK8w>$%7xf* zG%{W~hco+G);Ynqxxerq{Q2j!`@DSmuTk0X$BoB7cLnp(!9$$Y%U*cRN5>dDopILq zL(@F=m|2`2Wj)$6=Qlm4y?N|q=l&?x95*(daxrkuFgw5^SS)`48t^w~1@z<(iXQi; zR9-x-Z}8T+XP+g$x+bc8MXRMF_@)n-SP|cM%=_%~gXz0eJiujM z+?_W}PS^K2jkq?gTq@4d@vhK5Mu(Rd?`>mzsz-Qd%RxVP`X@P81EF&L{cR(gD8o2T zJ*Vy0-w$|7JY-UwpP;cGbz?pFgjsGPUxeB(9QR&3(Y|^yW6ijEag8;{_tkuQy|-yg zyP5T+q{i}rXH7@?DCY|*rZf9<5%2hTd;UIX#+_M*HO>baXZka;NAk-Ufs<$`9u~h% zpy7Z|!wO7cmUe;K*JVd)$>cViN=$T zhP<;h+(WsIl;h*wQYz+Tr{69%qqzU=x!n)5m!?FpyB0w%d4D zLyqGv{o;&g-q{Z{Zj6)X5!sS5Piylj$*K62K6MZOy!WH*xFM0K^>*l%WPyu)?b zul)C_tLMn=V)23LuWxg<;O&Gjx358m1T=`N|LQxu$Kl*u7_EEoxW6Ilok*DL?E1$C zOln)(;9>uLn)jTyq5D-#&c=l239rm^;+vh{$eHkI?=wC;wY#{;ha*;Ag0?HYR8no8^inQwC%}z1Z%~{2Vm@s%&~_GU z0ndrHZe7fl6~3`4_+Df2b@xWudlWhjKsU~BT5~CS1f6AZ*7<3BS^rC!SjQ*r9{df$ zS%2H#{VoTxgF5;RPkq3)xibxV*d)7430k;!-Tu4UGVeP5ciY16fVW7$_gzF>rh>Kc z;g)tER;!+y!^Pj{b61S*zdg%EG`PAYw)i&eHhG<1e@mPC=lV6rL~Xx#zm@kXQ|F~x z+A^(XF=y#?hzH^67b-~xiDO)&Y`cA}D6seX{Di%= z{B()g~ z;`e~_;^}Z!Kfw7yTgLIK7uioYA|~~;J7o$GWfESB73444+LQ3!v^w~e$egc#l91*=(X0UJ%55eZKz!8jh|@KxAo&vJ#8l0(-vLAdEMwy?!E62Tytf~ z_b|!cwvlhc^R&eoDhJfoQx%kxaI$yq!OTsM-Do1@y=~CkjI%>xGobs9?5E+B*_?aQY?$+kxzaTE zro4~!F65l?t){wnTz`ALeXVWj!kgaK-K|5NB%< z9aQ|cd-O&_?BM>?r2N0`;SX`goiP^-f1*(Ew)HK{Wq?)FH$Jq+{q{cB-`e(6;mvuk znYmsDShS(`1KAw91DXMU<@XAw)P_&P3GEDVHoh&h0$TqRTHngQe^n?9e;gXncgl|eVX!4E}+vl(Pegw^jxsTgUr_!jBYRAPx=@c zzJM{tTEp*l-T=QBA};}dzM!xdBW~u1Pl11;Ec_~S{^%`d0bel6te2AKvp9!bl|Pr{ zXS<8OiF^`#v;BWzmVwLH<)4^*T(Y$yk8vGJgDT$_qMOxi2u9Q#Pje%{+Iam zKX>;V$*!bdLavy@+P>267&z1a#Nku;yuUCp?qi%c@=L`G?#qiN)}GU+kPl^H0%9bEy4e_#BZJjOIDS6V`jbNw%BHtCN~T<(|Sf9VHjM>SGaaeP28C za&P256C1go`DMn`b8lgBjw$|{K;L7~c~b0P-fUyfJcm|`7&mVo{($h!?cVdF+`W6h zub7@bBUs7u{di;0@5c$odJS``4>0!KhPViMU9-WVY)&NhriJlHLaTp7RyIsLtG?U% zX%o(>e-OUpT%@64bkT@OLZ5Nd^3rkhY_ff2mANo6+g#yY)Z0FcE+2lvc%x4ePch~v zqq_fFbszWZKB2mw8#i@dJZ`vuR{Cr8eCp3KS41yLwhuo={iD=>+*FQoMl>+~E3g^` z<6-LB_K$K$YUGY_GwXB5&FJ>_haWfVSH5E|-s0B{sMEmdvaGnLuQQ$mo>MOM0 zr~15To4?;jXYOmi&&m(8-{-UF&rh-6=Wp2W(@%Z{`m_z7D7|aaexJF{*Y%&r^sP_$ zyLqnL@AL52%zC{$uiqp%Z`Q#-3H%iM5P*-2KVt63PSIcQm6p~v?g90l=5DJy3kB)( z#Crb8XMVcy+x*pq-_M!r;%d1Asz)v*nkU-T(i*L&&K6rImhUMP25-SnUTWa&$uWBm~GY3P~Eg1yeIdiW@` zeYtRo@wxoscZhQl3$kN$4B9@+7{^TmG_G&B$ltfOZ_i=DCRTYYoL|Qokmh0d20hc& zwvl@v1`59(MSdAy>(e|u3SaQ?j$8S)b3$?}5BqsNuNtb^y$f-te-cN!yB;2M@bDXI zMyWle&Fg5BzNpPbi)nK)ZT3)3a1ZW&CXAoTBsLaaf!DM~FcJ4nz+pTs?!*-t)A*?L z3Ut(1YJ92l^kjJ0RHw@h?j8@n%jT%7_UcTv_ttnTG^jdMhb=$2`|A_R9dzZQUCGu* zBaSZ^!yk)IYMXN;4KlG_M;71@?)U(QqB|%AUVb z@|)^UnVF*%zMo)9z7jY&dn^4oW!>P1*8Z~(RP(F6_JPuFB6BI{wkb}*xn$CL^~gN) zNN?~CW$t;? zRugf5k#J;OJ6 zRj6&@LHy@`sGh}>XS}-~yA(_w_Np?sNPKZ$?;+sXcKo@x;EVRiTvT*dA2k<+?zMtT93iT2_K5w^|84K{ zMdscm<~S}`oLMbh5w~NA4<|*>s2wT4KQ+_NnK3vPQI(P?o*%i>JhWl}9 zuw5;D&z8S-|0bQO9fti_#BjF;aywB*;_4r9#=G<#%x&?_oi4&(;w}Wk9c0GF;l2~{ zm-5@>SG|vZS-&c~hH_R*z^Ct&%0Yt558acRYIdDQb zHy|tHskZcUto3};c<@bS`djFrgFC*DZ&Qm;+A@|$M&b^)G4{cM+hW$Bwqgqoz+2tJ zYelpB(ex9>Z!!IRXY?ZLQ+u@2X>q2`P?gc$8r(^OK8<{gwSs@M-don+ZffsL!auj+ zn?#23*}UW1+w<)6dWgA|%BroAH71tjZem*(fFo<&_)cz{b}R7%-_9;27FDUY$Vs)q z79uxGkX`&mQ{~n}Sf_YN&+#jMB%fIP3hpmj{}+7mWmi)^N*`7Z!@t6PXg2jDFIYcL zKCbXtS*;j5Yh=K;Woi(a$fw|yJJ)-+Z)-Po-%47%TfP|aesH2azm~pLLTl>oA2F-( zQ)AicP~VnvKcD9Rq7xtPcB=%B+riiND7Pd1ww_x*pKs3Glz#e*#e0X-zLr<@?lt@F z){#Ct?lJmedD`#G920rTt`&H1^t!%WL0>NFN6ne)d`GcA^!X0!J9>BEe}b3%&*(*N zoQCida_K#9udHT{b%lu!Lx-*#O+ojZB{mn{?c}~ce4Ztv9q_mAcbc^&WjeW!rnB4j z&-?n8Ru7x1J|XX$ih0Q~>a)kFw0__HXW~JdyE}DVSA2IK_f&Y<8sq~UGk4G~;x@9J zdj(sVhw>~p-#(iy{>jdE&$tI%<*FHn+FWpcJ9;Bg5xG0aK})>Qtut5_3rDq~xnS2` zXrOopx@`aBX0??MjZ-T+NPM^>{jSQVt%NWZ_(8NY(~VO`uS#P`OvCCBdfmhyy9hltmCv1i-s8^?m)Isu(?mVy*3Gn@aC=EVdHIR+L-ciR z8lKT7S{EueKHer?vN|*#@-vjL4W8(wIC?4J>m@%=`@h-qPw_Ff*g2!lNPRfH2LGaE z=pDwGOAhgSwxI7L=&f}+Z+MLOialF+a_kQuMsv!;Ddy(;Ol+<(f5o~~ZSFz#73~?Q z)t#r>GrDMT;rCuu2yfHV7OZ93J~3|k2Ip?(Kh4~CyH3A@`)(VOZrwWjG-a6Qw%3@5 zH@Ib?*1nmu+WD%=2je6-D$Dq;((|J1uH=48p6j#JGtJ1sQrVu|1L;R{`v(-)YaTm{ zP8~K|$(1mPs|)|o>Blm??f(S&6GmB)gaQtdemaKtk}m8~a=LW&AyGd4sgL zcEKSgeHp^R{;e^y^rtQ1ExBO6vQ@ZSU%$Ta-^Y%EhmUXWp@Dkgm^}_$@HM^G=jvme zF5sT81Gzovb=*N$JNgmg9zL%%#0{PY<@cr+^E?)!r<ZAfpjeb7iuE zGrE~qUr=n@+7#bTu5@?=d~SKX6CMxfF{vGYyqphxtIvDY$5Zg$L|H1=KkVP+{#o3E zw&2Yn#thvSwX%*Z;p23OkC=OZf;n|9>(b<)4KyMPF?3ce0*`yQ^e@E6Otw7%-(6W= z&)9YjIDHjbpRxU5{k$}ccj&C&_{vYq~31;2a`ewnX*Y3!MM*{-S160GbV-eZ3= z9lrkBv88q26U9Be6KT#FMicbcfdT6;;p~iSfX1woP-Rm4RAw<5b#fOu~A{(uA?K--81Q`V$$w z4%$E$ovEScK5Z^2(&mum@y5g!_EABjPW%otd)q>_AFb<4NRN3nR?o-GjawGN>+(k; zqnn)GF|&G;ZP&p&*TFNIyZAVb39jTv^7IaI(E7rU@zb}epZYY6n-P8IzOpxw9pD?C zsd-xFllVvb2fC!|SySpq55(*_RPbiD-6U0~e%w4n%yR4Ci`2mf#-|ywzfZcm=kZ0e z`mOo<1K(lJ|97f|v-JzJ+dkj5_to_Cbc+-mcLDz>MZ@VYyn zXYb>oAqY75^cPy_dqtf+Q=yV`=EHTYzp1^jORx*k__j9S_nK|VR#Wj+^OVNuA#l8c zxpA%8)(|JIEtvO_bG4aR$n(a_pX5Qs$Hq-HIakNXue%3-ux)!g{$3?{V6`jXz#pzM z$^6TdeG&ieTj+mB}64`)ck8W5&DUjT@Y~4rh=DtNPK5yr!@Lhlp{90|t?BI?!RG#;@Tb=LsEhwil$VIGe zukpxL+1m8+!Y8#)o#dNdi(_W*DfX#v(Ok@!qisu=J75PQ`i0()R^%g>>u=)LuZpk5 zUs?|}O%{h=kA`U(z|pth*pJ2>82YFlaB8?y z%*zezJ;geqWXFCML)XT5ByRq+aw$0i#7-jT>u>aLuW34w(!QA7?t#YW@|LBFNt@{Q zR9hwaM{g`{O&_+fBj&-LR_P|@WU;X$tl{Qa+f73k$-<>h7HI$PI&Os*t99QF!GcG} z6K1>1Q?astFnz5M3St&>?Hb zU#>49=aY}t(;hfr8r?X+U&q|pbI^&QMyBsYmScT86Z-c0b~Zm5#BJ~I8ob%Gq%TJX zKJ4~XT6pjZaV9&C#vEvCzT13NcVR%|$ebI3oCM;2jVDrVzbd>NT|u1xyQ)e2>27n0 zzHN?IBaVyB@!H+0n2ec|N_j(8f3LA+zODbGS9;M4!+xKWZr+A|v3;KBK?Cwo1~>YB zzQNstojXXMuV!A3eCRW8g|R+sdPBI++x$Ln+u1zo=eF*atlZzFc!T=xHP^SErvFjF zg@7~Qsff-eO(3RmDwjbIugBk(JVl-}=&9DsJ=hUsk35>FnZJGKB7J+?cbcoWwYHro z6qa})nXANq!AB8X&8zhBs`^`fnkT($tUvmpcFr)&eTSEk@o#v?T3QEhGOu)9#@R-_AIRBB`)#D14V8XqzS6~SvDdxy z)%vh%pInnFe77p~jpwxikM2X>^`7yq(R=h>m44%AIsE-ON83I4THFD{d&|qYmyHqr zCbI1t-Y+NPo{X`Md3-Ig5L5f{ar4BM8Q$UX_WXA9ip6^X9EekDJ~QWTQ{jCM{c#=i z0xq2L__&PZP2ix!_-(CvUl&RDx=uGKHkTW zi(@XnyNo;^XkhK2{0hAf>qm(5VLelRspvd-1RnjW@w$f1g^WQ(*OP@)Y7d-eQMQ)c zbg#qaGA5m_@^m+t^=m3D9DK>H5%Mwin#%lAbSibx>9LX1%%_*OVi%ZCM&c>*v-Z9k zxp;h`mCcsERFr&^%p0yB-WEHSc1=t$)mA!dY9C0ONE_?n;w9$(wTHvv)pSiZ8HPSVOpV)HPAm|d2?LZE1mi^KEMtTn!(w*iXmMvcV zI(Nv%%?4X1n^r!A^=b4DpQ9QXA)Z7mnBN{TUt(UB8VA{E;RbE}+$+jVdgt)9bw3}$ zmzw-uZ81;R-V8fO7tAK)LT%Z1e!I3k;c+(YXN=N}U*bg`5x-M9)b_6k^k zRew+7D>ql6ZQ(F@xgVoPm#clrqhwp_e3I>4jY)ccb)t2DyQ9;-Pm_O6j9f6)XVp;~ z@(J{<@qlK_G#<_U#%e9>@-B^)d`XQ_({sK*_aYT4u_0aLgzcpr=)Z3>@S&4@55~~h zLvRi7w6qhRuK^2QiPrbEiZ6*bCdHT5r}_!FYMj3{(O(jNVLbI)c&4v_R`@<`9r!r1 zskOa3+w_gUoH>MAed1`V^EsRimCqr6qdxw-Uw(OSBJ%^zq~Pw>MNgZXmE*SPu-To6a{m-_B;t^9eb;X%uFfa@EcWqd z^oRS~Gx*nfmRaR=`HV}T%bebw?fSNJjT?;C(Dscwy3u}MgJa6gf=?pD)Ym`hg63G^ zN32c9azo75<)7$2*}sx~F1(xl&#tXGar0HR$^F01hkD&uZn=R ziS?!yt;NUvO|ms|CAi?vIDA^#ye{jbHJJMTlo^5FuY#7bEve?^CK}mn*Yj=usK!8J z-PrH^pxkVSpZAt{-JKU&-*37jjTT;=sXvj5JPRKX(Nal#%qo2kV(*amXcKnI{>InS z_uRiRZTgms4xvwmn9oR_tu9G9U7~TG^xo+jbi<;@%}tRiZ2Tr*pabTfbbMv1IqM~p z-c4N0%U?wt8IAz%ww1?hj5=uZjqD5P2rZOu_IWS*HZi?7 zVH&rk6wef{UKW0M%?2P--5ThJ=D2Hj(J^@Cz=>Ac+i>VZ6ZFN!5%y&b z_W1hZgju!dsJSV(m-)v==3Kt7*0j-d==sF?N6*g0z0z$xJDa%^)z)L~F?bnsu211B zetOEB>pbkVw`dgj2hzJEjN79l%om}p_=t79*xY#0zbNr%XiSL(oD!`wcs-)^;^*vm z%oeRR9`tWk`W91babcbu+1=Z!@{baQ$$V-;ok&neVbrikl^HinuQzS>+sTw+v|Ix6qgjb-u&@*3<-a;olB%P7{ zF)&%XPc#=U+W=?;~`ke;{8of-Q6UMD= zi_TBAYW-Q`AJPp`ji+>j9akS`^=sa@-TYkZ?Sr>Tw_G)Dsy=tzyF+{OnEMT%Xvb$v zNcPF6@GgGCB!@4?A7M>hdH^}8Oy9E!vDQ}sbqe*g&<%iwyn)6?3*`H)+CptOy z;p?qjUtcA-jX5PAhb=St+!voi6 z{xki-uSWM(aMr$ZKt3;@Qy+2w3i?LZS^k}C%y0EO`$PV9v8Ux8XwPRqISu-5GUiEr zXCtO1l3(1m7{7?|*-QTZmTVRK8E=(Od7#Z(YUk2WiL$IA>D#+8FB?|T{s8Bip41bb z?Z~&<-<|l%>=(!!c4xyY-&AANh0&dqd%4<$ z7Q*k?&*HJ4%OV+D)T=%O?oahQ5D_y+(1-QFVu^*=NpYuCLdq`!uN52b2gNIvL_#wGIypsiMKiZ^w(*B9={v7338(kDDP${XS^WqhPlih);C*NGmNc#hgjcN zGB;UW1`hV_@6fznx{Ec~yT*>1>&KoYmxsH+6J)^+XR&1m(A&qs@o{q(WB(_t%Uz#Y zT6mkaz3WZWwv@Ng+J&U|U$-r+-)ue-$&(**FmqQfm)XjElKDVpo91|mIhnd`<0{7* z!JGJ8g~+jEt=`Lnt)d}qZxDSRW9^LjfQQVqw0}f7Y{Yi!ds4LB>}l`XK*sJ})8F33 zy{+uid$aktndNO9v~5hv4ecJ?AzonJb&|~$-G}4sDNB~}%vsCwhJK(ob}m}W-j@x) zuEYmlFiKqZv~W&AAIhrUzG3~})}N(sTfdHdVA<2xXT8VPee{%JiwLlwF>$UfTCr zPFQcpm%LQQH;!z5jXor@waC~kD}S#cV;4L$gEK$55dc~GFl%V8&QrX1bskfl+`*L2 z1&uFSd&R4QN$RxhRXkec3%gfQcw78}j_S5@Jk$Cpad@rT z%Cw7dcKi0H#g=h;QvJBshclvhfZiGAxPBXd7Q%PIWPE}BLFiPjp3Y|v`q`*@>Z4%$ z@)2i$K|MLuCrso-DtZxnX4f#cS&F}f{4{`f$3~O)>C`g0UDefCs!T&aK4#>GOLN&& zikubp^3J@=`wnq=tC1*l-FR$S4S5LtrXsP)tralNHcn4$*yg5mW{u`kRi^fqOKCG@ zW^KpMo_SMr#dvEDYUtzbVU7L{o6j(_tIrf3nq?A0^Ud6cW}9}c9UMOBa#>bX0V_`4 z>JIpSFR)r}xYX44rP{8Xd9AmR^~CQuc+pwp2`mAgKkvoXG$_ZVAyu3UM6_0LIAtP( zJCJAi&_q5rZtCth?%mE>O_2MFu9Q3rsvA4nb-bqiX^Dxsq_O`=Oqux&y8eakqbjF* zwj6R4J!SVb_Bh@A)wg_EdndPZZ_n5fQ;Tkm4Wdi6PrvhJ>iXwJkRzz`i|2JcVG8LT zrb{s4Jv;wO-=bgi^CD-vO)^dny3Q|N+%`C1;vFL<=w`fF)>Dt7jCuc z=D$pA-r-j1;}*n!b#Bit=>X>XJ<EX^aMWA z%)b--iF)GVb$S-o6X>-s$POd3jhP=8-bT*uvNSBo*?h@6`ffM*6nEhV2WurKwI@Pl z6*nr<``~?f10Lb=B2Ir7ZCD>sGHc%@tsjew&it0}&(3ELLlymd7TGztL;7YF`lbtg z6IXfG@qOJe^WUp{JDp_>*pT0Szw{bwLel*)={4xGrl_9+ot88$>Kito)ZZh8w*?!% z(Y!}Gr9L-`zN8O=a}IrYNI0o3{aBoN0Y6T7fLG>Q);6e5-)HZJr+(P}1bCU5_uIM$ zcbrn4hbqvOGu(MiMZC<+FIpN!iu_lFj~Purq0xl@)+7J=J!rb%zt11ao1A`=_wYWw zmwchi_fOT206yc~NtCUPHTn`S zTvnF%{TR%-@`I^*s77}Z?RXVF_88A~VR{Kqz1Mf!)DUCn1ZU)2t@CMSe9z+7;>K*A znekusyW={_&F?|iEij(WGr7{{(%8OA$Ee+O+Ky-CXssR3p7xkep9*AHh3iya-kvfm;N=w;+j+nD?)Fv> z{jIX_*BW?vLGZV};bj+tsdIhL99Jma%!QYwXZjPdDZDHgSatY*A}{ZeZ2A0r%F+oK zDp%y^XU!KxyIdQ-KRP|2Sy7LiJ#6~H1IGs zq{zcvdSB$>8lQ)6wDKz+?m7(*3r0B}{`Vms{#&1iZ5#0LpQgv@E3X|FX;`$nL^_flAC&L1!Yd}+sL*S^>ImVYHYim{K<6qH>-KoVdjk9;{ zgozT9{v>x>C|6*N_`$7(Qw^sgH*{_?sl?5NQyrsr4ZZqMo;cN>RLWGi`#IZ|RBrIr zme$eDldQYrr!(%q7QNwDE4SovSw3j;{Zo7#>q}(banJEvf8KG-Bzb?gle`pK;o~=EaO!uYP zD7at)HP=b(a=A&tm?1|O+4tzp%=1pK6AQNUA?62vXxlXw_H5}e`12inMf?@w1=i;l zkEn0LMdc(T@X(s{P2`b;X>f>l;xE4c06J9TzpP_Ug&*(yCSs;j@t}<27P+M^2eaZ5 zZx1@-^Ms@BJM^Ua{JvVw`@zT8-eut{-+?iUA>->NkJ%rLZwqJ4k~dhy_a|lWr3|tW z+0R^Cv}1j&)$*V0hQ=?!p1yxsTfKys%^LWLF)hnat@eGj8_x_n&&qje4)k96xW>Y* zv2b6_Y<0YpxvvaOz)w7t8TH5TIj==ysGJwZvGLHD`MhKmnXMkn6O-L5eW1Ms=|n|MnH^iD|pLq{H$~(^STS^>m}$g+M8q8 zLt#Ii9kl2B=-vu{9~oyypr0*1d6wC!Lz~pO%CGZn>QtkbZ|F~WC+$5_E-rC3Woc71 z8DqaJZC|Ul)h;>n9jaYyzt6#1F~8K`XpQZ!os%gySN-h#4)5`+yw`gY-is$r^rH|J}%5p|!)B~?g7B2@2yezCYd9ORBo;#87e#0E2KLl$c-tEG>i0dXF{$A>n z^Y1+hE_*beAJKi!Qpuim^zB;0H9^?8ACoxUhfkUhb3{-5#rW-Ps%) z*P=*%V~Lg;d(qR{yl3HYuz;q2o=c0zKXR$oSKHE+!l@WfGf!=gEg|Md*;vP|CXb(^ zoRH<5+jT$jM0hla5mNW1%6jib)}rA{`?-_Y-mUOxlDb>5wd`-D?uE8)N_9VTX)Z(C zb<};T(s+*(U;LS0_cr2qjC4bax_8*R$fv2db;nhgm|~8)v#9&4nQwV-A{+Pkb?@no zErG|d(^1;2pk74vuvZL$ zTU5Rw@5S^jo)#a2M>9I-i^^$cuDo!NSft$(7x~1vsd?!*enuM!ySCl9rW|(KKwtj@LPQN=(dUQ$xnatL_7J}UtG-@!ubqsaE>r* zLUrW&dU^lMt}^gnwR%c8lg(3tdB?b!^@-!=w(adJ-vr(P;9YdWo`sO#d0Jeb6D-EJ z%2Wq@Fb*HgJZ1MW+^N=qb2Yh(jt^Qowwt`>WYQsHoH@4dHQtYJX z<|}039b|#!KH-L6;&dQ9u21I`l0~&6y-|uipaa+Fz4HE5M}O01134AlMHuu~zdL^c zj9Jn>=!Q3~Zm1Nl%w^r!vmPG6PxJoXEZS>;3qTw#|LaL-?(8)VgK+i*bz& z#Mr?mGSs$KaH+pZuPs z-`3X8fTqO4EDfbooD9}j8IgVgu5|9{bc4#NjgH$)e?vce(XbWP-$1vSS>S%<%yI8J z)=KJBiq9S3{w96k9CXUh&?9089iorw!c#Ylbf7Pvf);saQ*sC3Wvkmyq!zWzJQbaf zZhu)d`HUf3ozhLF%F31xORogyA^B;*2JS}f5r*%p*Ln0)dN=ywrDpy%>E4sxFMC=u z%T$ZcZO$j6Y(;l#Iz>*w8Xv|Vu`i^u<5~JVU$RPUW7NuOZNj79@LRTpbF;BmYS+7A zOG5Q79x+wqr+J)9Q3)PPz(eyropEFJG=977zna#bZTKR<`GS!Zw08$6Hy?G>fG%_D=iENt4X5v*dHRiQRHzvZD>u1$d%A!h~| zBqJ2M_H&o)2y;vLQgcdphIK3J%Wa4*ojML)zF#>J?}Hyw)U7sA>imD~y$g7p<$34* zyfd;b*|I&7C0izLGQu;muq7;m4R-1#V+_H73=T;XxuHZ5APzCc+oY+uLbGFYh!1n{ z31aWX_8W{%0n1X3t=W(6PE10bgaF-=UDzwzDkM!w0+fECyUvzozTf|T-gh)Q*pQ~X z-?!Jbb6xgm-uF4)&wYOG=YDpnj^V-s!N!_8xBInIZV#2!9v3l-cSFDNy*Y3h`f4H* zkH$euI>S?cgnci;RPXp*XY>^Q*59m6b`BiOO@SZF4xYui#`C6)1WS?W$E+nHjj(|a znLf~fy?qhu`(CxFw?`I}$6}UWZ~ayd3gCVraGS>Wzd2BJvC>ZGR=g@*n=?C{Q`d9e zPsOgx7@kFIUQF zKh4F3gLePy4>qOTansejuBE*{@zmH;W#w%Q4uv^#u7=I$Ff$!^YHBWpV^vm%0ln*3qu*+@BY-*F2Ac+JYI37`ZPV{6c>;0IJ*FUMIzc~ z*E@KM?UUqx$eEa+QptUi{lfwF$ELgMg8{)P(cH4ewXz;|hK{u{-LSNa%CTq4ZvJOZ z9?6ogrm)WBuyAx)w_;5PIs|X!)+*pD6&&*)Gu@^`{i;23*)Lpl!u1aycKwRW09M~0 z4&yQmkK`|(A$pYF2kn2v>jc-I4343z_M!Jd+ZvnljVce; zc=|zB`ElLl;a4o|dK#ZgTmBga*f3DW4!tvY7G872#`Z-1X77uXZmzivAF;FaN#yEv ziOd+E*V%lH}xY&TF^{h5F0Gqi-&sb-_-#n~e(AG<1_M3mKXW(``aYOJ)%}sn) z^O?AJR?hl;;1zeP&i}f7;Ax#6wkwq1thx`}k_p}$@d$XQ_Epg(Z+lZ^rI*^C7v;O# zYh(*}Wp!f0Br-;vc8+(wPW>b02a{V*+Ag9&f=?d>p z3;pldEw4oL1D4v;8w*SJ0tNf-H8rpluk$j`!;-Vg2FoE}IZN`I{5Fb}37qXMqi3$v z_~#|vUqpS4hoxgrU@R=%Q)h=|ChIzZW#@{os_kGwraeGU)8E2>_``zeZ+$aQI1le4 zIdtwncQ0((RiiY&;+7CEjo#?vP&nqK`bw>3e`K@iu-;!I-G3JP^WW8P4t@r&KA}>4 z2CDv=nJ(6sWsC-|Jo>s`w`Sb$>Kpyga1tBDKOb=))^l=FoClza7B$yd=37lP4EcV25Y+p{7S z$<8#gs8i4Oa(-OjjL&pBU|uJhKn7RKnyojEMvi0Y;2mJ`c|_l zBc9m3&2T^7b*0z!m>>GjR`!`&octp0D)9|>j@BNVyhn9gOT<7+4#<`@nmQZbaFfKv zO>3{gGv&cas$FYyY>v~FUcPYNnmb~Yw;#FE;(XlMf&>=OFu9KRp_{0FQ`y^o=r1qh zOLy!S))|lGOe1}?CD10w*Tngi3Gc->JPq+)ZIS=>r}}10ljKm|W%s`@o`b`@*BCUe z;lu8xaj~()yiGN{9xK-_Uaq!lWmD7V6 z?p$K1e0Q;D(xv(>S>nYw!yD!6Wxve!Oz~r-us>3&d;AjDHFza4VST<1BD7jxb=A&r zs&X2i&`mLSDxDvyobG^TitU`E!InP$b>PxoIn9|P{-#`e<;{63E2sJUO_d>*qF!Z) zhfCxxrR<@5_n@P>+-0`sg--~b?I`+@U>+-HIWzqnu=}9-Af8n3-22w=WB&Kt=H)o& z{La;z+zsq+-3)C#PF&uDj8pBP$)fv>&3pWa`zU^}e(THYs%^lopF0IVTGbJOdF~FE z$e-pMAD`l^${YF)UQBd!;oqX%l%932f-Yz@uV?z*ig;5w@`)KAj()fFSDx2%ey`Me z0>2NUBR^Ey#8FE|gdvwM{+Mw&U2SNd%8!o5Nr z)=l5};mVubbCbxw=I51v!OPkr)`ULs?q6-5O|J4ERZrs=Ue(}gqdl+55iQuWUv0Q5 zxF0`R#n-lR_}V-kU#sg@gR|Dg+r(S;KbH#zdtU&`UgkVw`fOmgl8I`=v?D;)(x4~StzeD%F zviE(Q-}?r8Q+k$)qVFjy zj$h3=U&gFw#g$>5KH9l0Ecc+NW7=tB|FTErsI#D^4!YHpg~$73r!lr&-%&a2*r}SQa){H|QS#bUh_lc>_=eUyJYDmAs?JaE?F;)D z@N>{J*7<2{;sF0`FLAS7(ON$==+@dg^Gvux4Ded@!`|@>@r=DoeOtlp)%ls6A@7KN zT5t37C~n(*6a7ygOu|R|$BhTv)u%N)#~P03IU5h-fBR!{Kh~I-%kyE~US#D0c+2&g zli{vt51fEsUQaxd%?TWcY3-J6qAq#o(W4gZ?S_x6bn}DT`a8OFyesgIu>|G*G|FG| zFzW%&o2hXNcBnn+V5BGgRs1@w=zGBSk1yr@N^h49b}_yv@p<_mb(=#^?Dvshk&-IcV)YJ!XrBX` zu)3Y#&2Pr6d`{&BBYjw7YmavBHT)V~&+U58^Q@j@TV2wUbc^`DmG4&a1LyhsbNsEC z>RtG2J`ZPbZJ=ItF5r2~($*tu3x2XS{e7~FT^{T_1-lcDz zDId~IzTe5ac}uae_-@lX8*5uRw8Jmz(X(1RoP6SyFrRp1wfxLYS)Wh*qNJYH<`V}- z3lnQ9hpp@wpGLjzou3}zxoB5(D|}Bqb&-5fWAJ^HhMncuX6&6ByV@nD{U`dCJwac# z!aVzto>6W+R`j9M@+ZH`Znl0y zJJ;zRs_}G_Vn1p!zB8;k{Dc1##pA&14Wik-=W6V+mf#m{?M3(~ax!{0J3g~*Av}76 zXh7wHXXSTnYo@%;D#jGEu{xOQmP!V-DNbQ)O6B6`n~h-OjoQ@M<1^hkttHPp-89`X zNDS_SvZu4k*A`P5xHE84AHnPD!}@2OdKJ9r-ho~1%TYfp_hT!k`J4#Lop$H2DAjW6 zhxV->cdxVeWUe0G5TI}9g)Vfd^VpWRl6Ki9*+_T#i? zJ>X&BeI8RoJleoI_0r$=;KjCS_Dr(Y1)mFs+oozRYLj5l25@kL{%H<%Hw1s6F}t{p z|I;@9>bnqL{vEfmv@KK{Ohs*Ntz_6|FLShV!K?L4YRa{R<-p;$ zHO~os){K8j*p{t}jSoIDah~oUeL44ww>i%VupJ%0dpT_D$KgDyYdLnF?ytgf-+vqP zoKb~sh=cKk=7)bqco|O$=iGM;N3{lFnc#;8*Kg{1Fk)p+>hHH$#|eG8JFG9G|FEww zj_=FeZhbvg)7KyCZ%?nz)4zClm9M)$iqD6ykCk~VB=d%m1(EEik$KZixAXQ%U!=E& z?dQ}NvP`KWwdOuE2dCuz8oL`}i^pp>v1AK+QrK@~|zmK60psQ5AS#4ufA2?!d)Z8yZJ?Sb< ze2ZRt82bzSEnQ_L`pZ-3BIr$(FIU?d)kXH`S*xYWi~UFZTXo$#jxRJDZN9#nvaXppx4JxcLj{>~I=voyBf!7Z7W$Wh8vjy& ze`#juU!sgY@-NZmRJBFEg8BzjDDddw`h9#UcJO*)YRScgOt^WNy6{hLcYfR3or-^w zUWCn8r}pyRe!OTH9$#ZW0yDSF^ruI>&L0GRju*}{o8hCf8Du-5pH=O!$R@-W+-tfS zdZug{*-o@~t!#p@j<+STm)@ezWoCDTbRG1wZ#Jd=-&J*4+7ESD`Ify78}>D&v{tVw;f&*&|kF_=4z_Ug6_xj3VaE9D5UY8w*GpALi z7H4RG7VS&de+M+u6w=poDra>^>FX6etEI0*rgD^ejnp&ynDLxc8OC@q`m@m}&x{_L z7%qIdR#$G+??_jU>{!W!+I0{w6iieW_}s1at?IT*(QRi-w=EN6YjJktbQt$F#zHiW zbQt$#{Y^WK{LA{hL*v{fh;Aug3R= zJ)yC>Lv3}6!%lsSoE^kCN(YMv#8CgREfu_Iw#A22uoG!Y2{Q^23Bch#ebV*e!o>iD{aV$!{caW1#Lqsl|3QvtD%+3eyuya zS#&a@zsK_Ci<5d*%bPW`z9YmtR-g#7$Ty&p@P7dPrzEp0M> z(b1jZ`2R%j1uyP9UZA}W@kM?M@2qaigXA%Rx65xPe*NI3@L6Dee68{FS;w!jeU--W z_jG-a)jy^^DA;@cwBi-PTz!t)SJ}iq&%a;vz}8p7eV#IV0*&k$WY}Lx5ywy-W{=3| znKLuAksM~<$@ZTpBR}S%!#*$Na0%c0L;Rx*etVs53r1xwxtXUlOf?u)W$wlO8c(gv z#sAudj}~9)_7}+C{muio;7k2@m}4Y5<9Wiztbm6m8_~fstI0^UKSh7URd?-xkJOWE zM(2%p_0>(e!ObEzCdl1_-}dA9c(;gNwtrvo8_1j%WJSI1;IlcBdqm@>Z7d-C)vB|} z=Sops)kBwSA-6}u%7?Kyl%K2e&|!b7E@toSw{L59&ATSmt9fUR{Nl1;v&I0Oie5WgGDbhT|MEHf)T^~NdQYf^tw|y??e{cp-Va9a zv<9}OZkqDjXg@uPkCi+Fg-flj;H5Qp({8f&Cj`4~UoFO}W4LMD7&`E0e}4btoZmR= zR?kUlPoFl-=RWP)!KBv7&Zz%O!TmiU{GJC-0$`WYcx;}2+!yJ+#-#DIvSsRVbK6%1 zLo0hU5Df}H-eqI;ag?ixqx_c|W9wUtai)KtO%_tbH5mN&z%M$}RT>G`uy7vvlon5< z3+8(P{L16|W3FZYG3Lvhn);{ygUzYtENe6`SH+8(c)qjad~G}*I5G9F&oD2=ed_&x zw)d8M1-w0c7MvLdXNLS5p?}rj%+zoG%j3*c#fXaLBAhX~H;OY;AJzN)jLC3jjwnaW zWU!8K<5Oh2lAozr^rKP_UWGo}1l_sk{3sh+{R zwSQ|gNGvS*!S>XPM?`Q?8NFA3XQI=6=bLWPIhS0qz+QI_4;Ipvhvz-Mt%&DNoo%r3 z^7c8E$^SUY!4vW9sZ(m(7+ZfzMfEj*4=>Iv=RUBpKDQE6y~E)3 zIbfV+{4KyMQ0^;zTEFhz!|(SJn`C^iRtGR18OkDL%yPkZA`HgF-*sX~SZu6fmP@RO z_?BXq*#{0>?E12s@u8FP#Zj)_Oh<{lw}pkSMP>GEabzDS1@&ysGQF^_!!>*~V`mX& zJQItbyP?DGIHBDGn|*AE&dU@!Inz%ZhROwx4777*q_J?mTW}=nVuO>Pse?aF85aD| zHIm_cv}b>3kvvRVcg@qo+pmSKc~w46PHTlF;Dzp+Z*cD=jv+V<=Ip&gbN*1-O~2)2 zylay`!}SPp&M|+_FXOcHHd+VW`N(({aHsMd&1I;KxZ?BhePYw?W1pTi$}GFJqP)RV z4o^p4Xv8PPXGPux4-+Y&*yGqZor`(?euyXN%L5CSy;h%aTP(ivH?hCUtj(DDbN>FH zKmWzy{AYyoC&CJQhxy-9c8yz3#=A3q{ zR_EUv&YykU`0}jI%tgW2d!d5**+4=Hy zY)A#WYTDwQjm|SKZQy-__QAHMxU+Dytt@S=Vr!OQ#4#ZRUf3vg@Mj>-rz?0wv&*8na#a5Wg3?dp53c9rVgqp_2*BP)Ub62rZX ztvC4dS@&C1dk$LG&ubXXF|wb_$qvChv?a#T|&P2`_-XEotg9Nh1@WmsBWKd5kA|lIct3l zUyKj;q`M8bh{e4D-;DRmU{Nri2nKnBfyu8k;RNvwv!infCGc>P^9b<1x~&=qF&d`N z=g+LqpTGYxbhAf8-E53LUw8dkbThVC?Xd1!+KAXa&9yL!Y((s=X6a=1u4-r1U1H<* zx?3~)ep2sME`;y9^dXlF^{f5Lx8Zrfc_9zj3B96|p(C_(f17yr z410Bt;J?zD&{$vxf93MZ5FCiv;*tZ!xi@pSpp{(T)fKFD5SL|)`ZL;ttcjWJo zj;UJn*mu)6y5<%_7}M~$cSGmD!S|Xfue(Ym;9IvbX3L3zTX%~eGd`_Z$bD<8bVbcP zBVMaBG-R~N zqs8=L`7s7k@ul$7@>yitPRcfj_rkAt*R(}kzvb$%^Ours8gETol5JimPhqpJtd4P= zMgnYR(5~*q-d0WpZ8lFo#%scMf5CgpuLA5|L!Klj86$k!+OqiyX5iB%Ys=%tsu0es zo$LXvBmQ{dgwD9FjAX6!e(@LfGy267s`BDte%ILPo_~2gQS`!|*gLweasBv3N67Dz zZ5qLznZ=n$oe6K~=RA1*^YO+^d)_D!y7&%fx4}Ki&EqU;NxHDfgwM9kPlhnr!uwg$Gl2CS19ekI+%ml{^@IC19@nkkO|;@-(b;D5EL>S%roHz3 zEZ>j2nsGeJIFd50z@KOwpA5%wJN;OWT=W@i3TSPf+TDl#trFzbkNRuU^J@JqVSV-> zIA4!$wT@gcjPnP!M|M$_z6X4Ll~#S|=VJXWImz#U`&1Q2y1I3ZTc+oe`I6w_CxG_Wmk{9&Y$YI@I3df!@xe!S;OPhxzyE z{MAI;1)em+_;`&TDgG-SUW>bGU*&-H3}An&a2VLo8$R+I{kfuCujj8#+3G%7T<4oP zGqBpq9d=z>D|pbk_&t?_YZG^#Z9R9$T=Q7XbOfLFX3I6Hl0}P>8aOKnCm^y_I=lJpY#Nj53omlRTCI|TDY*1aaUM{8EAlgiFhTk;n#8>oyBL+$8u(l#0Re-#dCjo=%`Ni3gGY|UC% zkIy7m|J7g@GVO8o&SxWe3&0_rf2I61`C717O;^?5w0E=ef|w6xfP4fF*$`jj^B~k4 zuXvvMj<$D4)LuDF*_rA>FlL<=+`j}nqcgPO*wY%CfgQ))GxslcX8+OGmFUKeUA>$K z2h**t^oCfNf8#v((kjk#yr4IH`pCcWGsfQEpQij&*=Dg-HOf2s} znB&QP!t97yta(i3mG5F7u+_YSub0j4yuZt(E}o4I#GaDINqY5)) z+NCe)3R8xdhuSuNMHSf(8h00G@tTm#l)KPm20=F8 zgC^i2|B%HQNcTa$WR1UA8@hj~{-DkgjOKsxx=(Ay$K=wlpPP7+;nr5w*%61=O`O}h zw2f1?xb9L1gLG$~K248#ISp1RCq|v@b-rWbllsT}r!mju{j=EHnC~uH@dETV-}I@* zhdIT>-2V+_v`4z1JjyZF%dOZ9pHW-*K_Zxy&aKTq;cahsD>75~%t!Q$FM-wlOxewP z>LhdbK8c@U!`;~LbLC9pM^RnTo4%WpLDF<=eB10T6gg}01~6WT4zXHs4$$xCE?hZE zzlWWd1GT=HDy`3Uf4FQjWtq=mY;(b4JP%RqoACws%d*EPi(g6ppUKLqoW{u78y{~C zT(f>p;Nw?^e0((CVJshi+`r$y(h)oC>K;1bK8oFIZIP?*qmsSwNA{UU_Xs0DDK>^- zJ^Q4k{YTtK$MIy_1Kj_x`zUtXxIG1ONyy&Dz9YZaM{Ddm^B3E^c(3p7&Bi+#+zj-p zUEpTJCh0Su#%EL2XM!#MY;0@ReO2oP3{t9_=yzYV^(*e`Wlf9uztdCJ^@r{;J%@fC zvG<(C$&p9G>w5lf3zbtlf^+Uxa!A}J-K0_p))V_v?}(4JJQAj_2-n!x_^9`JlI!F} z?m1`#&$bVAz_XmzPkd+mdaG^q!9*9TKX702G`Z+ew@LC8ADwg`%OR0RmI}u7U00Q- zHT%{!hQ~FAr^>EPK1gzf{nWk7@M)I&NN@>q3przBIfML);Kp6LPv_Vtw|pD*ePv=C z?hKB>r@vw2d7?PQ@2OVx<|D+mFc);{zFz|;F4J0!&f^w*iJv$lzn# z^G&XZ!_dhJbYY!6Dk5!_a~vOPUH%Y!w3z$!(0p=5glpXz$xO=?v2G!`WbG3))Z~gt za!wMyF~~dRiYUxHd#(sO>jTdB6nw6TpzQZg(H%ZJ6m#_kW5zYvdee{2@pe^X1nS@; zQyLbI#&%q+GqgtAR_=?)z%Q}iIbyK^$`e6+$2E;%Y`}BFUvVk!2Tm$qgmOi=QZ}vq z|5P({ojIs`B`kJeZcn7g1s_U@H^M*lX}-kM8FTW#FGb(nUOihit?O#p9Lkxq)hUkO z^|jS?-a-6K(qhTiy8c9Z?j^)d1@0sJz;%7*u5;!Ym5xacF{9(wb3IRmw_l1Z?Uy}B zZnzee4=$$toN^m{up4>%}ZxNx)fu(o~mz@^pw-J1+<8OGI*{liDP zm-I2tcykxa7gOR-F~%E}Yw5=h;KNwjh{IyVm{+Vi7R-OMnQbgfJAp$OhZ0}RSdj7X zoBAO8mSaIA(Z@38n~?op`M3HFP~H&i1Pk;8>^07=SI_=8bOt{|?uPJm>(Ifv;aeqd z3xxA(VO}lc=LP-6!}h-)uCwIBny!su?y1-fzMn?r7Hen=UK`EHW!{2md@-VPRu+{B7bph-;2f~{!fmm zR_~7lcPGJH;O5(hcC7vNVf)8ue}>LlU~@leewwKL-?8>XSk2w&J_Poqr8ki3G~GQL z_>M65dhlX5b8obL*hFwE{Qg_v+#B#03^VtLmwLK78}9v9*r)Zev0>@?DBXDm zeLMqvzs(wU`aa^F^f5>u*&6s_Gf#rwe*VNJ+x&kP&fk0^8x{s@nExltcM{G2oM7Zl8D+pbovDgYnnljDF$>yxF_3fR?nEn>}491s1*Z#w3FM+-F0AHiKaDHW^gx~B)*6XQ) zLXCcxWPA^5-Wp5Gn&45r2d8XotwC_qeiN&WuT%WzBdzJ6q-VrI{%+SJ@PF?9BYxHR zf6F)Ad3tASQU@WRj_T~L*e>Se{}9+=WY96M>vC+qJd1 zizl|vcJ;}4Ltn?TThaF}!A8rC;@?Am?9Qvjh5h_iJM3Rn+z9ll*ul7$Q7unKGB9>p z@947?Jh(zImW`!8-7V`DdfV`GCxhWk$1=N@tlYt!UCRG!ct5yP{;SVt)lY5T^!bwT z!qzP2F2-LOkn6W@Sugkd7Ti?fTB$%zQ}T2Sa>tsxWk50R@xda)eKNCfaEEN4N!xu| z?P6QX7U^2L()=^<&B*p4FVK|@s{`HnSkS0w^nCaxJPM%xj(*p!Tg2P!xnHyQ*OaND zvk7Z^c}=+*92i|&t?NUF-Qo!Up=E1t0?l$p1KhKo zwP?veN9dFeos)IHNje+8CDW;hr}?Dnv4_6^n?dneUGusfyy7j_;dg7woNXOGP*d*L zTZd~{hY`0>G$=Y@9RhN_zYBZP=mH;(;;Mqu4tRe9c)Y~$IN+|q`oX(AzK*BCRHOIZ zYK+7f1;EoSd$BS?yuj4jb<_J=*haK_)^)3w@8&6N*{e?mwLIZ1*Dd(RiR%{pH(R$* zcD8<%Fs3hZGg8qlDg${nDejA;^8zUMsS?p=- zlG^v4cY3;s%JdL>flm7yjPqiAEeUe1m~}E zQwPa`F1%L%+K1Daz=cGi%Rd{;P0qtqoPDu>qrQk|F!**4q5m;zHxu~UzHvtS_3EG# z8)t@Upu-=-hr{|%?t}V$7Wnq+J>&5DANU{`cmG8Cwe~5?DeXTK_cLZ4BEA%@!5H3! zjTr5x)apk2kHc43Q`X$P4_yJt(Eqx#;?`+!rxnv;o$GLkS}f0H;4rT z?nkm`(y4-8gB$B3`fR-+^smvj_~jmWVF_8e>~UypF*JtUIa6DJNb9iD+Ee_aw=LG` zc?jE39|`SZ>5?9Q?QUr8HJkp67HaS{`&WCD1F2xC!FNS%TWiShfV(xDgp5ysnWW8h0%}(r?!BRf84wFR-e^PIwvq zv}E7(5Qlr=5ok`9OJ8>AtcXY8Q~!xt0Ee&ezJJP%;vPC`l}9AKZit+Ex60c(RCU;p zM}%d1HoD53BzG9V8;oY*hsFbtJ)ST6IZEyd|=@0G}!7Lkal;GB_<-pb2D`=KddR*Hc(_z$WQU2?weK$5s{1NnX!o;hO$Aq*Eu9iyR9jx2jft1my*q8A?XM?N6ZnXRu7j=9JSRcsuUob$vn)`Qszj$Bn({Xn&-Ep9Ds$+iT=aDZn_LB`M z?mUvLOe;2q4U=pvmu%0WZ|H;W+pKTRM|0VC+|Q@A#OQA>x7#@J4G&!nzhOPW!8)CV zMPGDr*OngYqdaX5J;}dwbtfcu(3i)Y6U%i+}Ef_l!D&#C;!z-80> zpgE00`@5Q7u;x@sbJHA&#jd}2iEHe+(M=oT&H$|ke6~(=b~pAfOk;-)!BJ}9HVwE< ztASgO;C8_lR|(3%YIf!4-KWJ%G7Dob<5T*H`Fs|7IGxJI4vm2mQwKiB;75$FwI4pZ z8M}|1!9!>(@M6JcihRYXEv8SiKM#C>+pi6uHdmQ9r}BIp_&^J*BU*_3Pet&$2!0pA z^CI{j(nxs5@S<=0Poj|pA&qSPKQsa@{~sC=FZth;MlLK(N+V0*vAcJ2heSDbF?lmC z>hB*q zRWf94rroWbj6M?SLF7h&A9DzcMQshe#J`213@MG36>lj+JdgYf@ko;)jKgFI^E4U4 z{A`}gw<<^0*2s~5~H240>{o<^21&Q{`}QtOc=Gg&+27w4S3EGZ?@DemkMoZ^C$WbLmDr`gEbpI81e z82RVOlAeK(P6mpF+y?ZjuD#C~&MzSTgP4;qYL8>}@V`gzdIG)cPfhRYMDI$WcWM9H zazD2e+(mdh(z#1~uHD>a-rt@mxgOyYF?x0SZXNNlPq~MAcDZ{w_oRDS&l4Z_=QtDn zJ_aN=;Q7wHX~3UP?hnub4()o~&C6tq?1=^QGEi0~8}CfC@43P?Fs_@Ll70^=x0bj@ ze$!Ty>j!rLwAyfY`Fy|dw77n*ywL?+m!O-F^ICrYo@;?4x`*nL|N8$?8U0Oc!A(WJ zbF3>VFw<=r*RQ{ZOXL9k4*S{URm*P-Xbi8w2 zI#}G7M#r$e8PJvBTQ-q&P|73e!pX`T=X+brJS(~N!6wf6^}1HsTbXPyTyBrokM8Zo z9>uSPj)KjK7Ax3n`)aJ;(-&vYb!K`w^PC;M<1UK3Wjm`(_^!U@-HzIK=wG&ftauVP zXP}%vu9D1Sn0?h{&NXMiYd+|O*J*#s>W-L=tUhi0vMcmXb{Y2y2C_q{xXFo|Q!XXidx`FB=^e0qAmsNN-7l9h)zAJEGfbceud*5XO63H z)+6;!;wGPAO&()Sz7?*CzaO+Qe;aFZ2Wzs4x#S1Z!7s{bV47|%SJ&iNxF(NQ*W^*` z-z2*+t#_==UCEjZvL>@nWff}~JU+SyA3MPwd;{x|bbCE){zcd0PHS_Q)}z0iztY1# z=*5Te_s+$Dy{!T8*4nauTV1AL!eI~9HLrxH z^AR1`xBbtaerM$$^?TnH&D5Lma%ZR zcQiJ&qp`V6*6dOEgOhJSxG-+);B&Z7I7MZ?_Wdf3g?Iyw#nhhm$o5_3ERRm`xpM08 zM#j}g+#T;_yN@4J;hX;awBhB$?mG1w#>5F`)8ThI4}5~Sx$E?IYO0&6GQ{}Q8C+dR z7sS6+W8bFO9U8ieb&iG<+U<;6ezS=}4mhB~sWDo!Amx@UfmEygalgcKH46#h(skz;p0=pR;6Kd{XWM zl{W}@3y4ojb^I%IpbnSmh*c_yGCU@>^~u;4a$TQx-^2ekZ4vve_~7eY!-r2cWjt;H z*O!6mR$FVWZx|~jTXAl4<&}lfBF__aNB)2jt*^zn@lF`W%110dZRA-Sl?g;W9hYg{^Kx?a=3ReNWQo z*09gcYM+JOBPuI7t4~vz+&I9YaC=}rx~36uk>8$&Cg7o`HhWy9eZ?ML=;y04S_`eo z*!3ts85`gnSf_ig=L$D1&AH!TU0@$r+$3#0XLJ#PE;)}wQE2q)bGF(%hd?h116 zudAHSld~XSXK;C9SUJ}@nt#een6&K9ugd(u4d}u8uyZ5})3vm_~cX zevZC};G1WPI~*eBuvpyvI;v1CihE@3>)F#G56r}~;%ZOtbk5;S?~8|WpH{j3=t%m^ z!y~Bg;$6f?PG@|Z`Jua|ch|&G61UIzrw{VZ$|;U=i)tY!zgttTv^71*bHVm}^2Bjx z5vN(p3t6*{)xnfNzPH#a^S8iPfeZ2a*2ay>^VZ+&8vo!)c$9L^O&cC`*X3u1?+@#J zxq0}6LmSrI#;!Z(Q~Gp1Me9H2dnRS*kFFH$= zKk4;M#@?v+MPiNN`#_9U`8f zZ*Z4&ngQf9PavF>%O)z&PwL#HyB0IFX zrUQ&f2l!8K)V7U&)L(p* zc|tSlTXHsD9uuD?oi@RK_wN1H4m`Dgtd0&H!5b{!+h=3_VO=jvrO#fYaT5z3sJ=fV zam&frX6R@b{CG)g4IS--juxYLvp>V0i|wnh_v-TJd6~&s(5d+K>)7v0YEJphp{(p8 z2h7ayS?C)WA}@^bs&V6F52C(UfHsoI$x)q2auR(VIf+hP3mf&LcZ|u?#w712k&~vs zagMC9u!{y1Gk(P={RYVml93HVyellBOisNZAIHhjA)X6vdN(%{<`@Ql!S%PRlZSNh z&XG{JD&Zf}URS5fJTlQ2GYK8w_t-Y9{)DgSL$0551@El9D>cvUUi2sAE=>t8;LXv> z8+-O)bC1It#kpV;PwV*rF-J=^6V^?8Dts_peD3 zT=#&Fv4g@g&Ha&Y0=&$OT|e-0LlrMG6Y%nKV)E-vCZV%={{Fs`v30}^g!)|YN1Ia8 z<4m8M2X4aW#Rm%DgXweRw^yIV&QM2V$47X_w8qe{@#LK$PX?d$X-dMAb+_n5{cO43 z>z(qooaudWx7W}1O7`(-?e}&=p%I)a@Id!fj?=je?|4_3O__sMje8VoaC4-b9^$#+ zqPKICmCx%N+vZonyMAvAF4!czE8es70rqQKY#&tnU-j4|4&SwHIBsGu@JH;S>a*>S;>mvrGbTxyJNUZ zqJ7VRmlNQH;guO*RW%S7zE}Ka2+35Lr%jn%njoRnNpJn4{$zXHv5g*ST(VfRX zJYc-4Y_!s5@327^{h7}rs^5O>=S1}1SKOZOmkgXB|KJIe$-sw7?!MGoay(x`jQ85g zF9$Q+OZP`Rj}-68ZslIQ=d1Ks_H>szdhuULUfEc_unVw2CnFm3_E+@xc-~sPdlzS5 z^8>lNRp#DHa|hglQj)*7?cRjm_Q0V3d$a2Lzw{H5JW^!m4MUYZ!4xffP`oIVfzyl8UklBOS! zkM>J$kJfF`VfV6HeD)9>^NG*m%=9ndr^)cln0!L;tVOGyIiY^Iqu>i#6Sb)^sLrBQ&p%N+ z2K>$s6nF0)(YuJBH1&IZFFzC{^<41Mx7tu!i&lNpY;JoNt$Fp`_in0fUvtt&`N6x^ zxC>g64WEi-vuXbRB!BnwUF7?b)RmRblf!v4xtqyj+wcL^8Jp*PRimEO=58)*SL{l& z+jEWHu+Q>SmvqyWd!j!TykfBpb$Y%p@AnIoUy3;_DBO)MagTDK`8$CPKFovX$_+M`a z)Tgz(ZD&elg#Q}D1bGL{_dNt&9i*T5hss80)1NsRpWkoinz5k{EGv@l0=x)*NGurf z4~0Co9%tG$j=^r`TX4yJyIi-P4GnQte=%qExy!FwhMX4r4jJBN@J&onz553}k6uAM z(!;}{KeRMf&L&*LWrYL8iA8I1m1?pUmj6bvSnPS-YG;!CS{w@3Vk2YRup{9bWE_vfL<5jU&nCGyK7k&x>Tto%Fo-frN^^J&=C&=-0LaZJKH*?xjg z*X1ryokT`^O6CjJx&zy>>l&^3qbpg=3aOBIFne|Z)eN3 zR^a3XF1`gjPkBbRcDPv|%@m5R=RmLP$tiEnjHm28dpv%sR`Htk-xpk={D zu+6;}`)?m>A3J;uJ?jMYDqI(y#BVA4oPy!`{hwkptPS(I?5@FY?WZ3EzjGmep8&tR z!0$sf_|2WG@B#VYGTfi#@f(~5?c9o=g5TsWI0LNnhTq_-cn$IY_UZnP)-cT1^R(rl zFx}tZVY9<^5A%Mu&ZLn$=@|IW{8aHUBwD4F-mop!n_Lg@E#hlAYlx4?+Ttv%&$DE- zq`rvBt z^Tw=)L5jFV(G>R{7>us2;r$`Mkx#4&_efs6LLIx?y-eKr*19QQ_xuPx*`<{!T{#Nh zN#J)zSpnS6Y`Z`M!u<%gXW~051H6!dI}gU7e|Y*Nbm95Xh03-0!;mg^dAbnnlv|`$ z7L()qztr*#&8cd4jgHI4?q%ROyDKaMz1}HWoqT z3r+56-%(}o!814OYmzeWQ5p52GWu@HPWzy~;Uh`yw=P=sUro1*c!1x7jr6{e4dd|X zeYVzzd|Pvp)7JbNZCx1AHSp3MdVD(5;Du=e``Vb(>`}akbO-T2o$DA+pEi!WcVDM( z*%+(Ft!GAx$FWLPVBoE zeEGa<)f(!40JX0&8kgQt*4iCEo=9%nej;^LR`oO*>im_->+PIZU{2uZGd8Co<{aCQ z75s(|Gw*M6Zt;*{n@zKy^mU`5P#5>}9=p%2J~TdXp|R!b?svLgM84d$D12hjaKQz>Qj*X1`v! zReM7__kiA`Q_eOTJ9_c6Hm0d{I`h+8{QS;0Y3Bfbj?*fa``Za^`M$i(9JMtyZ0lQU z%V1^w?cPjV4_G@#eLM6!-S>yDd*Yb7!gl_xZwDGy8Rj*9PFg4bZrk1C-x*HaC3y5x8$nm6R_OTB7UiNL) zrPuO7O+Adhun%2V&oAue`7zhX+R3hI(R!i#P0)Au4SO9!<5~6^Hcr9tbjh-(uqVF_ zJzMT!;!3uiO1T#;|6@vH1wYOOSMK$4>fX}0*mL34=vcua8&ilwz{2oo-(%q%bhh`9 zn<70O9Q0#7KFL^_i`HTp=NUBK!_4c#sl-x>_CmT79Y^aG(GmU46b=0(vGQc(%DsiTVSbY2wt>P;Plg6Q8WHo(b zLw**RH1yo+?MP(N9IZ*uW}CZmrp?y;_aAq=fa^_7w1w_|yLboh>IG-%?$BIsBlNlJD(#;d!B0W}h&IBiGr&@m!-_oJoBWf>-C76T8t>5`$ zK~mpM{cpp!ba3|p;o|-_#)VwLkGiP%n0o+wx}LmLZTTN^x6?h&9UxcNfkEG1YcFw| zd~)b(?8|i(yW!(A@Zlfzy1l#1?gg!LhxvA{`Qc;ORQfyVX0zrop3Qvtgo~*zKG!bE zQ+H`tXS>yzBA~p zYKO9({v%kcEP9e)ulAt3I$&4Lzo^{z;1QVRoOq$er@w30V=Ru3_2JUrJsO+o_5peH z%|FnYCO<%*^itd34$v#txDT>k)A+tt?ThC8T*uPf*uKWm(;%?g<>@KX1)DM? zY8U!?OJA+*3vgnGd{*ebo%yYvuf^i^i;?kD)egL=N8j;;>Aq9!S&=w5;0T_b!~Gj| zv3Pc&ozo)58+|b8>XHi+S>*qow)T!hrK0_dmaUb4Qr%|k5`F6#@7~mR^gH^FV%u_8 zdp#fj*F=2rYup*}H*gJqH@xjJ_l5sud`&o;3)cbs)~6{O>dxIk(td;Q`W{{9i9U1F zo6!*>86Kat!TS|wxSV9UWNIYO!S}X^f0#daH+d(D#5S-VL&xy1EJY^|@me@MxRUd_ zg&H3jIgF7RT`F(1s(U;PmhtaZ@wbsZ4Cm@?-@xv_t25qX^PucxHrM}_@}x?8WA`fH zZOgoFOFTfx)1tYPTW5EKbCQeW{Rx8Q+mV;ZmMNj0G+7_Nr#|p`EC8>Yn#?|g7O_*b zZsMnQ7tSH>xnq1ok5A-Rh5deA&*_horxM<;_)cQu)voHGzZyRj?SnT)Un*D2?<}5n zPUYu%&b-$fe$cLd)9yNbtIZDX8tu8A{j?GG)95GtlJ7_LTQ-DrKPSFg<<$ny>+~J{ zj=ty4@o}{Db%EX+U10yY_-CA(_2En0xBEL>8S&=6UH!_Y(})q%91thsBItLxG*(^}wReBW`#2+?W0AXw)b5l_@K^fIAA=_x+WrQ%#2EU9MgM18BV-|K zX)y!%3D2TKja>)!lolYTj5on|6XM51M}gn@=)l^)%Mrh0Yx1F!Ix|6kY>=8{vh(JbjYfIom7$ zU1vt6r)r#5mw2IgnRu=7@hjpBM=yTB>}l#NW(A#k2DPz^$My3n{osSPeh$;mOTHiL zgK@Q$$V*o`n2uyF^}kp|q$_H1Z>kl3eCjvF2bp3yityZk_L+pdJgPG7dE9eq-|0Q*@JWs~7> z(c|!5WU4;!Igi6H1WEk{r~lbF3?8m9KIL%+KKG%rn+_f4Jsl%A z%$Pq5pN-DFp;Im3U7hGey0+~8bNb!vq2t5>p$EA+d$JwZR^HUQ6S$Th`jTP+C&E(a zljdF!o*63ax>T@Jte8INdgeEUR)3`5k}dic&e-=vJ~9sG-`O+1j{KL(nQgfVcazKH zcH%eZyRFPEz*nBpyaZF^iRIGfUEN~#K%`e<2gdMA)e$>Y$6S%kqq?N#sC^L4Q}#V` z?G5%M+f82H4W2UQGx_{NoP6ERYK`jQW8$K~_b&=3WaA$`3T^`D$>2%3hYfeI?^W(h z{tU`JpmHj6hIS5AajWZCkR*jJ}=QR&5I(iMQ=& z>jmEyc+_g`$+ipI15aDg{S23xYrTAf$Q84-B~xT;8&55evpW71jON)(f)_V*xal9y zMEFgdL`?dy)s{9x_deEoHL|gnJMI6JyS|3If8fqZ zB>mZCi@_p}(JifS&n;cqD?A9^9B2!k0e=v8-!)2Z^*jElwG{?t9lk(x1l}A__79bd^OEk_g%fiHZfDnZgCiyf2Mf7(?L@G{W|i1pWC4KQ4HM5*Ic~&&z)kiJiki0mq+In#;K}3@iCnX*q$Hg`KjgdtuI~9bNRHk z8~M{)-}vIV(w1N(E`(qX0hSiZ@{#F?;y@O=3<6MK(g z2TpUz)_%Sl@I&534DxLEUgg?gVpB`E)2^Pixo$nvr!>GbbhXkgF5q9R^a&T|UtQ_r zZpwYghg1-MIo|HxfxbSS7-lr74T&jhTugP_uZ+JOtaI-u;)zdo+KDJe7yb7wuWZ~vc-FM?$LRh9O8PIb2Pc{5ohrq$bIqz=Wr%DZ_`|I?WyNn{{;_W zo5$N0Ci>my{q}B0I{*8`X|{aqcHp^D@Vn^1?``G$Qg1AKuszkvo-2|a8FE$gX6{3u z=B_G+u^ELr-)HLRD#cUu=r?nOLdTB9o`-d4Cn;GY+Na(h*3^3-mhDXQKCpMw$Zrv~ zIa*h8DvSkL^#|4W#DI`@U1OYB_e|qCwC(Qk=DE3;&RP&B62?!k6Q~eI>T!0l`5Sb6YyIh2Cd62t1b2A#1mId7l`n{6fE5 z`u%z#*WPLCc$0q*ZnWq0$FN){@-1I?LQfe{tl`0@c;`#PeK#lL+zS5%O$3AbBEPWEk8wnR14+T>0;T z|M%}o6^7XZB$tbujly|iM|%N{yzm@y13F&xW!G1jA1sf#q~h}$Vj20rxQB)usL?ow z>TR4ojPrdy2hUwFj4?4_J;26bQNS|OyXFRe=B=>U!#uXj$4dwfvFrxxV`%y)EUaJV zLmx!TWYe6Jtt$}IQHTf2gUtzY#+g5Gh9hT<>4Qnde&YU>KC3ZPm-#eO|2H~51;3(P zLi1rPDnHaRXh)6}CAeqw)spCJz;ubS~CU=o-9 zM7c)2kMNxS|3SZ@2k^Nq9r2{<-~EZS@9(8O>W_T?*!z|LKn{d|z3epcZ98^vE*0Gj zj@O%OPlKfNoPX6`q?-l;Np08(+@Xx^= z!Scau(8#|8|LXWx&p+A?Xg8pKK>dLF0ri6}{;7>OtZvqw_T&A5oqr@2Cbj6#DkI8A z0?jOFExSf&2EVx1bBt%!1)pXOJx`%Lxz0KVZv-Yt$-%>>3z$wcp)BP9oy(oj|Flm& z6P3>$f$z;{Uy^z2d2w5=m$s%6n+N^hW$;&9_AcsoQkwt4f{^B40PfR>sav3&LChn? z9Fojs7BZqOw}%*J{FC6@bk<^;@J;-8(W-a0sGnGpds5hcWsb=x&H}s~pFg?N!)@e| zsL!zN7WK=1R8ZSDeKnW3^F;mV!@UAi_1$Xn&+|F;%NTal%r&Vp8jHRe%j^0+%UGiM zpE0kL-~wL9Ty{@7v4z~w8FIO8*ShRT!=vqU{70%ba4C)TnfBA3;{oQy5@CbQE?pn_inlt`h zynUm0hccaTEi>Yc9-pGN*jtso@PhVkYu0%A;I-7jPEg%JEwp%jgV-_q zbX|?iCXev4)0u?pGyDEJy_kE__knGc)b9r!@||4R`dfLhnWOy;oUA4EdgZjS59e)1 zy07AHsD5;k>D>QT$il6;U-g-W2ZHZn6P)(t0{UBmFOG6^8ApkGd<^GXk*O+y9f@!L z-faGE@=K5Mv*l4gb6;}jtDMR}Yeq}<8$1NQof>0PnYOqW+TRT@z@5hpJL0o9wCBTh zbsNcxI19c~_IGiFZPi8nF(&gbrn{I^9(}z;dyVMpyO>kkfbLBi2(BUTq){)v+8yZY z_)I7l?zv1Ho5rZIF~$!2o4d^B9(L_RMIIs*xhfSe==KUzyWd29u z<)iiRv&+x29DJ?Q7+PKBABG=+e-6^mzFn!~P%7iJPjkloUqc!E3kP=f6!-5e!!wm@ z8GgcgM|6KJckywrkDlR6wReT9Jq|-thIbl&%=34X)e(PJ9q=Wo@4b)ee-!hTu zT?4rZbZ7W^byP3s%$_h*-+i^MYh*mUdC9qWQm=eIeR&bh|p?d&6LtDGhm z1Ami0a9icg)*Y48{Qc$-u%Yip$*n}ci>WR2yhLF;w08k`eU%G_cKiN@k{+MPF)g3g za{N#&l52(YInzh|<7M%_9dD|QTD+r=Hh8To^noXJ$XkaD=q6^5a(R5n`s6qGc^2mT z-_7K_)L+6G`=0He&%MUyPgOrdO@2Iwlkkmm;q~jVvl-XmI`E;_C1tzhclz}lyaN8S zgffyHe2#yI-}rNoOSay}Pq@a?hmg(hXYRy|ppzz;Z;F4Nn#<5)mn0_0XqS6KV`_u_ zUgagS6-I{NqG#xBze;|X9jX(3ysr75R)@Og8TC7IbH16oj2w`ES$WfC$(MP1$glp! z%Odz1k^+1C1o~Min=UpBw%pB|@MDc+5qo|kOFP5+5OuHKZgAJ%hxmN$eTeby>V1fb zt}D3CFXq>TI40Uf?)Fvtwfh#4M}xV`y!_J|uqK_1X-Uso_PLUhZQOmDqc7cknrkQ% z57V9pw)WXbU*Cc*lkQ#mt+w!unrw^O>fs(ebeVZ-k8_arSu_J#w;5T-4BU)}4mXJo zzsUHNKiWRQ?bSPVB3WnWMvacbv8r8Y!Q?vQo+=qu81OKj+g2I!En!=~rLOvXai5_Is;)xbL>TsMVSIwiwLj6fJgc)yDqtLe&Mv^80kgWkX>vcpCZ3wva|n z08gJIHOie{lecd8sOuG-$PUU4K?~$>&i|#Sg+*T?mnF0@fhMj2k50RO`1B0x-|lGh z`NGrZO|J_&(ZjCN8{qh}{<`z>e3!~;$~Ws7_X*ZXZeUw`+SuZ0g&)Q<(9mZZjBnN% zY!55hgdvSwC^&U(bS3z_?_WAw?25In0mbFYhS$kC+n&E&J@L6F>i?8{R4F}D+oBh> zt#Np~_U-rdaX$(%U`99SkNTv)#e5e-H?kcX*7*Cd>&dP2cMT)VuX-nH(2d@^5`OD8 zq$%5=x?x}B5SgSe=7B%O%hm#XickJj_&qzMrP-B|o{xczr>O~f-L(GT!8-gFr?J87 zj0e6C9{4P6vW}d2!cVv|-EvEnZW%2+@CDYr3=fJSqo%U&eYYReo_o|YJ_+uRo16zu z=icYh`PcA3n|tn{U)N$oNPk!OJwI^$9QE7sO&=q~ndv(9lMm&1%TL3cS2_G+eC9U# zb;dWYbMbY1Lq0gCy*dy054pOKnc_p_WC}SMYYH4fxB#0FF6)Hvz+;x{gr?q`f6|W+ zKa#D*UK`h;y2fF)!EE9AI`C}z0`6~X&u`Wn@cWhOy{b0%JaJKaUR)f`{njd- z!?T(DkHS9TJt~)9;(yPb5$=IE`nk6ZdV4h=XYS1H!0lcqOTP;5B2Iug=nVGs!DrBm z`aJFw=ZD{6TxaWaAM>JqYvI9O!VGsLu^3y*__*NY?nx}RZ^q>L$TQDP;3MO5bi?~L zdA=y&>hzqeP=v8hMLWv z+corlbP#OZMPG62U>)BP5hv*s6KjN{m=$*Iz-Vd>Mb;m$>WVi^#*n?(WSEM7cjvMd}CSMfyzBi2L%QKXx}^ zPj;f;B?~u^|L8H-pC@mG$+yR_8MwSGl>!qay2|e`<&ItLdSWz|p7_cK%dRCS^$?x!{S&=c6jcWd67L;iKo|5RS}=W-@S->G*3S8`R(DOZ;3 zx9AAJVOf9cF8X2Wrl*4oz3BT{=w~|mzHp(TEL>O_yfCVR2OG(w2jx?4fH<(bsUN65 z%;Zy|qr!PL^fLtgaQE-&os9dq>J?8YM$ByAst%+*ccY^tWBg>)E3q#n z+txK|&Ew_HwD8WinYBHu!4J?Fx()obUpS#Yl)nR>(d?Rg7DseexC0n4miPso?V?N3 zWJim1qoqButoNzZ;M8wvuJ_-{xOPKl*zl(R?9s?~q{%I8A94#DpRUpucZGJp5Z+Bb z3!j~M(#%tmp`F07J^wRbFZd3++ChVX@oA&4nIV03hkW{0Pg}vYMpIBD_yL`XrbJtB zm#*-?KW}xb^wZU*_={Q^viHol2<-Atdz{Me2yv>jO0TAK2(QrFZx^lA0)$Ot5zF?-U`I9>XzI4&)Tb3TPKb?dHO-6My3Gi%jiixA zfMZJyH+Oh(0!Ay&`(4bC%{lR))vJX>^|BmPdl0-1=#)+eWX9+<(ZLtJ(pc zdvnzq?b}AtjGCvmTbx^y&1PhtI;^xY^VD|DN1_f_wDUFBj@5iEP?)dX;h(RWb%j1S1zX!mHA`>j zz9-uBoxSL~Bk7Mhv!#mp`0xn7S8rF`g5&^uuuga||JAr=Wx#{uzT64n=2~7!2YKx` zUU|@MwaiF)o@`LJ>Qou<@l%?=jl|)6*NwxG-Ci_ftux&>Kb6i&qsNC`+dp;M<$Zd} z=sr@t#yB+(v2INrlz&Aqf?t8Tn$sDJ(8k(QOr@h*Nkq*x+1F^=xg|)Y)o5lo^;C4 z+`w~*=pH;>f}ayHQ*531$&t6e7cTlPTG6B9-YMkiPp@yjI6}YIC%bo2Fk@Kkfr8)2 zYMRl0qwDM#GNwPSQ-37p^yl#X8rr)7To$A@di+3tKK^pSek-=J(Nd6&I^AX4{g$gg zE2|j$rsF$^p!16S=km^I@}JA==v>|(TRzMZKT@0BI?{2sPV7WG*6TN0-@S$UA`ZGR zwcf*Rr<;#HSc~4cL>}prwSL`EpkuV|7*8f28R%u`|Y=DANS$0xOwv)2d0OK6wr!kha7 z^DtBNojVL8W@lodQxaZc>GJ&ja}9PFJe-@zJ*&F(9!Q`E;dPeim zvCuXnZ4g5b=w8JIgU=8fg8y9ec;3lk;< zuG}|`BlpP(cum|KQn1-LdR`WB?>tL!r=q^6Jm1i~+gw{hc5%v^U+Q=9e6IQ!pK@>R za|Jp@-$V88bLxn{h$6|q>d7#AL$Jswu25u{eKdOF2M0a;p#$i&ljyWz zXit-*(U#;rW2d-98-rq1G@)VCstWyWkET zVULdV4^PT^i?&)Iy6srJ5dC-dqv#HP-_lK#vUKE=^j+l@Z7N^SQS^`4sV@BwK>usr zI*R5qJrl_Ad~}}m6)Cs)XvZt=2S#3I)NK3cHnsVBTVEq~sV{F^jA`>bEuQ$5u|

      zEWZ=+`Oy(P&9LUazZB0>@GSSYx5bnD-0_F{@tlzNlfd(8;fajafaf~!Z1Uux z6CTgdTojq>N9G1tPwG)laBajU{)vr0xk}%`HR8k7>M_-u*F!a%vHc>fd5?@66ZT!o zvUWDlnN}B%T5AoA#2USNoz6eDV~uc_V*=N!FHfWkk;!rAr+FM*Is!|roag)V>+p4e z{(K9udQV#d=GpQ zvJ;TWH24%}SvRGfFZjnv;(qR>oiE{?Pe;%O;u*fD-?Vkfu2P?W7v2q;wPmf$9r(z% zW%~|#NxEYkTyM7d%U!wLmtO-|&AQ2QaLs~i1+f?E`!lz>dhm8+5+8v+!4=uiQs$;* zS#R#+>o=pv~-<2Ms?mif~Oxx#?s3L*)_}SH|$T=_qf&~KSVc0 zz^^2~Mu9)$4S4xo^fdg_$9czH*O@OkJ|l8EnwJzB6hC=lZ(CaubJ7n#dhA55r;qMe zqkmUkuYIC=_w-s&_N_kH5H4Nl_ByBB>_N^nhAmraSjE?!2i#+@!k)!z@fc?;(|#=3 zq+{?HO_%C&@o;`4Kjz9t=>AZ@fJfB1-KMi{BRuxemh1~(yX^ZuJWe)*rbL}Jg6n+h zl6K1D;qT|8$20I$U95|(6fOlF|C&|Nfe^bm?qlLVENlGTW;XXyDDrYzbpG{at+>27gX#M$$QwkIvU~7b{oa(8D>W zF~1Dg+)96on8upVV6)Ly@G;!E)AfU=?t))@y4UJ|;uBiUlIpa{u;136ah5;36`RbP zYnWT`A2{8&5z|K9D;tf&Jl)DRF+cC8A5D>W*ZZlbnCrdDT8ua5ANsbb7Z2>1&pYj( zFYjuVm%5L+S?|t^*m6akTR9^E7?*c7)*raf%~Mr<&e|=CCvvQQ48bqWTV~V87tcsJ z%SQNRda>KlCcsr#K7m*F&88xC3-h~QidT*1l*QxVW%-(?#ltBmoCK@q%GoC8WNkm3 z?chIRzcrc-{@$(sVN}z|xRPd$S-E=UGosVtCwasErtYt+eR=MaT*;2FbGDl9A0tPM z+sl^GX0w_W>fCGQX`w0DWUQU6)i|ElnJQDhCh?p;U#q$W!#Hl|h+1R$I=a<^%lC!l zg3J4w@e6-#*$ETEu0_7dKg$1o-BzXf{cR&UDq(F$jg?hczbj`Id|bchWD4^o`q~Jb z2_%-REH1$PrjrD2^jN+P9=mbFuU_|SqRZMR*gfjs@QRue@#-!3#UiGH=kM_>;`u1g zPsQ%d?L_YPg}3C;6jopt=}B6Bc+0`BBc(L|yhHH#LgaI92o9Sf)PNUb z*7vOE1Cc%W=AhQScC~j;CZ<91gTG_}?NMiOAU}B@SGxT^I(`2H>2|I=4*bKHz<;wn zX5s9~R`{2)!8Q4ME8k?!lI@8Hl9Bje)>*|La(~3GWzgbwJzc*+b_=tH^0f9xaAt{nF62+~JyB2D8F+o%^bKb0 z-!nX)Q~TC@#PKJOa@zHF7_Q|X+MZ_ZDZ8ApZU`FR0A~Kh8=$neQHdTDQn24d)i-1 zGv1~dC9xIDgVWKyd+6_+(SrR|tvut636_r$+Cg+B%vH-bQpWedKQUD4{B}5+x>fdB zBD827<05BKI3`;eNHkZbhzoaK-xP9cn_^C)r4pD}-+F?HZp~$v)e-}pXsUF28bicH zhZb$-9=#PxOH`)T6ZgFVc`s=QIZfLtok&)2G0KYd-Db4Uqq=V$JXgDF48j+^caf>+ zeA$hMwsd&7+V|I;+U2*YZ1DX{58ov%p+$|@o-@IBI5C3n_qP#83BH+4mBA$~BluQ% z`0mbz`q(37@g?p$09^%q-)RU1O(XawDxKZgnDhN@u|8tB`|vSJ4ro8^=j3b%&hVh^ zX-lo?CFj-WI@O*^D~;qHTJ+EIW11(_7pz^Zm}Jcz#*?x2KV}A2-Fzk_CDDq9d#&KsiF+D5Qm#{Y&(=U-L z_AaEqFS*)O>3r2~C+GHTXwiD)iuM1XX`!8lDpR)+TUgZ?a#nE1mgM91Y^-mCCs$U6 znk$`?O(FOmT69}3vy5^BiEJe@Rg6p)1!o~wN!lpVBDff3#gHdgu8_Sn_m@bf(lPok z@+H|4u9lB}xq=VN*Qspqo$ukhZd+*4M(}+Xxyq;?c=%Q)=m+2{`B;Zs_}O#zvDP!Oqg$XjpgsZQdzq;J0-ckLPd=ITuIIjsqdBg5ABlBOS9o%xrx&f?A? zbmm*=%-7IAMbej>;?DZUcv(|HhHv*|c%7BuTan?2bY}e;m1T;EqxnnDaVkMB=|lPi zHeiFI&w%?ieFxuX0~t3~x$+hBfu{p4wC=SxW!tiy_X%$2Dd+w~v~v#pyL5d_dNXSE z=4n@N1|=`>H@KpCL~mv{Aus4Z>CIW$kkj74a;WrXbF2@X=m*(l?UJ{KN@odrlks9i zZ=!E+MZS>>$-eCuN#t?~dUF>2gMG7BXZ~_MbbL8H^5o@kUS53bG+*|3@@C~Jr%pC7 zW44_$@l1#}uHA0O>u!Ia@zURAyxu)ddSSe_=!o0sQw`D)O|FihErV6Gd3B?0b6}*C+_AD+ZI0g9zRA@Q8_;Pdm4=RB z9F$IT2GJ47juSyoY~O@V^V?or?cW+ID+gj4te9x3+SNds zwz}=R=yQ(d9JCAigLAPU*QBlgpGi-ZDbsgE|7Dvldu>ok53@! z#>ld+x=MS9Y+mES$kuY}ABi=}my2vo^L{JDfdrad8|{)jUY+CSNsh{MO6`(g`?2NN zHmA>d`?FZ9{TrK3J8@RSkoqQr%JuNrfhN0_JOM4UFTu;>(YSc|Xz|tk<8kV~LUm8N z&Pnp(m(?j8ROdMT=nFnO?l)~e`g?bMd4BfdOBVM_=0hf9)AzQwR6c7`#M|#jUZh{| zaAm=5pUNLNcPc$EBQ_6hr0q37*O+Q_9-W8z2~0Z-d+S9z4Poxf(k9OTE>%2ym~ zKij%hhq1hT_mVoi^ig#nlfr9$Hg}KB-`2q_kvZXF{V&_cIe_nBZF*mOmA-fViT>}7 zUzRlqyxq7{{e7N|iA=ilbo7Vt1;0C0hv4QKGeh!=uTXq?KQ9Ndr<^-vTL=!l zazU_^HC<2O&Po^g%R+7g`i=NoM|FCA!j3f_+#UHk8D~n>hr}0fK^EPZ>dL>iKDN5? z>IoQEF8%eS|6b}1xz6TZ)RVomFX)-J{kS{M@Ad<4ZnWtyx@$2X!5cRYoeUmtwtBpI z*TaWa~V$lm?A(E^QY!qYb31>{ z{C$bPmaeFkJy!?Tdb)%=-?}P&x&&{Fcs9s-zIcj&M5(8keqqa`?H8!*6!STq=`bhb z_LtPnw(LTiApf>a)Xsv>%RpZ4_4`;EQ2(JXyZr(>3T;{#XL5gS%Su~c*F1b$zm)&J zzP&;D(%*G)ofC0&E%lvKKNG!HFGDY~=K5PtnR3aR&F7Of@4nJP-?#YuEBk)FEWdnP zoW_ig{BGAmh0j>Mknh(no;&P1$p0dp@T|&2_6Ka)oIio=-I@AbeUq=#jiCfz#&dIV zFsnZn#l%bLWq9f7?YF_l@>uzN=@&`2c0i@qKRx&lNFPuCD?O(2Z8_d}pVvjq6|9_< zHF+_9YppzfApR(i`VoELPX3zs+sfZI+aJJFeX(n~*B7~)XHjKWyWpV%2_Hvwa_X&J`zvmY}f=@g)$oX0Fbq{{a zG-a~J^bJGrakEYFe}g5AXghRH<6Kj{*{}lP-v6#R{3)%-G%~9NZZ^#`ts(Zb)bEXp^jLe`wr|Nuovf$Z z`h>$E_1OBfXOVk;$E|O$P~Qxd*=a|3>T7Z1(EFj8`hxl`U-sZr$RA}Qdw1CKU7a35 zzOa8?S}Xh5yGi}*_gcrEuC*5KpxMNp|4qnUgm@t7cROygez_I-4_G?c-_E+F{mf|^ zN$Z;B^0V)LXdN)y$oOCThpc_`cLJuYLVm615%;haeRBOHNw*>DyLYkc`Ov@nHsJVqa)4Fzl4Fwn3NAMbI?E8C9N##XgBMurwr-ZOoh zsS}=id~(b4_-X5QZQs$nd>UTD<4btiN1MRUJv%8=JUxcoHJP9T9>kyHncxhoyYU?& z=bVw?lpfCa72^OCMb@@zotrVxe#$bYO}GO$MZQn?nBcp3wPUc>;++t`OvxtE^2hy> z^|8G1(*l1a_ri_1UnBX5-A`QK0UOu%YbKG1+x5U%+q`|N*S#!6{QFj^=WfR|M8PRP z{%T$FcbzE>QJ#0|H}MjiBq5zPibwE<`WHY)6I#AvUl1I`C&?gm8p5K*FV&gn*P(@$ z&aKe7w(}kRVqDm9Tr8gn@W9hg;IA{-RKfWk%`Lu2KQR}Or-_|-K>rI=~wy{^Q zd#+GFXG^F|@-0<4)%A9bwT!3MShc_CkGVhME0PsptS%v~p0q>U?eNqJ$7oG;uF9}H zEYBuQEo-8+*9|Mpf42kq*qfBQTV?V73EtPJ9eKZ&ciX0;*GEG-!*;rd^D`D_`m4&d zG(K&b_Q5B8^8DKyR2M|v)&S$4gQ$HEjX|x65;LyfT>YQ6`kylf4Ru7q=Q(eiJ$0OQ zh?JE_=L~a?MTj%5dODNc_vCVw<(xU%SQE{>!dP$*dDtHiyBm7`8$5cIXU1(m&hq+a z)sgP)OzK&=ntYoRQPqDy>0QZY{DEfhFn^4Lj5l^o&?H*okwyl^H?9xwIm7(wEeyq< z(pOfSDbY8$ljwqb{v2%(;EXDVKTS%Bk#C5r>{!6rlirROs zv6M21eJoqzD}(zrITK(0cgon7FJo^yMHw3@BUN{54+!spKT+qXy7$zB$9C|zjWVji<38}X-B-pe%9uqN8I{qJFXQXtwae4G=6@wmpYZW? z)4!6ZPx^RT^RMJ-kB_I}e^a!*-7aW0yY8K%;kNTJC51-i0m2nHi#` zPqYuzxcnGc5t4s{eMz}j1!rj=e}7AZ)m!MRWhdAd9FZzuKbzHERncW<%%{=GvsFg- zw{ki3+6;qT7vnw%!#?5Q)bglJzdLuT+RY#2`DxaZ|EKcg+gSQ(-vD#wB5Y$%PtBPP zz0_ODZ{6QQ5AHPFt&+>}?&Ni1+0@+6RaaGg$N`U1wMT4v$Z_Je3u`Xe^Ax8Ar_@BH zXO$sg&pdvb<4cE|WR=c&GQt&o zKAXi62VEOd{96qCx=+Ik)zO2V$kR#e2)|q0OV8&1S-RXD(mraPiO=U;cu_St=IeCF zj3!m+xEeRrMx7Ke>bT zq)me_nDy)dUCUn31pDvmI8UUO{avfr-&Mn0qs=^V#jUO zp>&n6k2}WB_y+sUo%DB#9%m1!Q~7N1k;*?0A3@&EYW*R4QZ*Do1ToT5mov$oF)*?MQ&Qtwp`Ti)~0zFH_SvaV$sA81vj26Kr#G7kZuC z&*MK;TJFMgXL3I$?ILNGkEC5JtH}L~^jto_@Kye>nXye}q>tKq17%TS`jXq?>Grn1 zMJeh#Kz#?Oub;B(sjr^;4p83#>SN97Xg&4SQ{MsVJK)t=Na({YbUVjzZzcqCy<(KzeCEKz1Y0BS7`E!U@8+PM%n-;F@%%UiWCFGvi zeTR#W=})+oK52^dj_f|H@0m|oIZjeuNbma1D{mJ2bBC7^>rm$;&8ld`mZB? zwDZ}i7Vb%O1@(u`^bZdGC-X%wZ*lBC@@_W~;*J)sJc=Rk1&hlxe*Zi;$j1CU=V(`x z@4u^Fn_f@c{H=k(!8BIOQ`cp z)LCrh0sWGf31Y3DkzYY_AsNUlrVQkR{JkpM=5zCZ&X>R2m;X3-)Q#j{TFBq#<^P;l z{}+@W{r)B7;_-ZbY(<+lKXzx96!Jgh<^KZtF9VNe@`o#*3VkV`H;=QW37jR%BkSN_ zJnffh=)t+d7vY4q~kOdhrGdar$N_S*Mm_#FXmLndO& z&cog0!F|Pp`-%s*){}#;P@d%EE^v^X-o@|C`=-}>M!4U3_scP%t6~`n^5m;GcC=SdJKQr^8;oka7F0YnfL;VfGY;B z1h``0O45vXz=eUk47f0GmnlXDxKiNe16K;%eDN8$a^Nlpt{gZU-w)gZ;I0I20dUqo z3tU7z1$Lp8t3-j0A?R>*19rXYsa(BgK}Xb>Z$wSd*5T37QEfussP^dKZinal%uL{l zfEz^zaK*s6bl{r-?lR!Qz+uOrGd((hD+O-8P3wb>K65#6<-m=i1GojiT`3+P>(jjB z%ho>%{8(CE<4CdBZJTs@ZPI^JVSE|YCdX)#V;(KXpye2Ca)37BzTr`Aa*Q@P=Fx(m z0l3S63j;U0O^(qf$GkS-?q1+72d*5rQM9xjqfNL^*V25yor367$p0XiByI*3Dk{s?r?M}QkmM+0;;cyth#3fyJDg@GGQM+0;;cyt_r zjw8@f4;}Sm=-{k&;9NS6cyt^YOGn2k==g&Aq~>apt@s-^z0h_7I!=t1tu|t}df)Qs zAcp7p=b+;RbetGN$6L_xmPf~P(D58}oPdrKqh*WoN`Z4_i~C%FyBxT3;6}H{ThQ^A zN5^v}0^Gt8-Q~)e+Gv2-z?wtYW!)Bd(r=xQC)KAq6j>Cx2>UH#D23SF&Z z=<0;7PLHmB=<0{AR_JOS(>|QP2%OvZ`=P5Jx>}*DbqrnHcMY7|KK)+%^k33Gr=i2K zbTA*cbli8-!);rjW6KyiIB%+#dkn1(WBu*y`s#$qNC{mt`xY@bFV0KujptxfLj3E zxO1=4MCcFfyg2RQ{?kNV+Zk{_GY0qb;C|l2J@5NE1MX+W;C>$5&wIG%eP3t5{mdBL z&x8AU5BI$9>kPP`8H4+Ia6j+iKB4a`)j%86+i|fl#wQkxJH`|L`HfnS4q`x`KR$u) zi+E7r+%_O46u9wyU$w|mt>>RO&iwcI1imls{sGSQeI57tzK)N~f#qlR`o(Pdnzat> z&gE~s_;JxwrHSA_Sa~YwrW@b>xacNuf5zfo80T&rfBw-!U+5VvLyU))`ht4s3q7M{ z2)IjqK|S<^9#Xdfs0ZI<^- zGKO5@yRV?lD!ew!`z0OPj4?#G(n zXY_9L`T+a%o*$fG{c0n9V58Ruh+PJ5{PnAi^ns0D9~i{08k}JLY9oDMqt^!py)kjH zU{n2D>FJb;moWvK zW}U^|iy>0Xh4i#+xqRHkFV)S7_v0hu(GBCz)&5tEN3QMU#wp~-BgHQK>&GK6-l84< zxC!;$AiJ*p1M$Lr@3^RU*RIogvw7XhCw8mivEqwwSWvKApDX&(u_*CgQR2PWztp>& z*pGF&>@nV-=N&jZr(SliNdQ*_+)Ut#fh%EOLjbs9;7WkAb80j5#2Vnjz+DDhDR9_z zHF4ldftwGUol{pHDn1HaIdGQ)w*WYIPR;uq_P7FjC3a}i-g#X#-$l&%;i4~Rb`XP?0_&v;k->5b+J&dK;iOVpIKB%B|y=|NJ zLVW&yW$c&kK*HVA8pyi)eW`N>FpkQb_p{tTE5_H>$-UY6`c!_QKH|X z2&k_0Tb+4jIUrZW7=Wt{-em&Q8NuVH%>+|KnIYm1NaZP=NPyW z8*g$H**a=UfU|KjHU{VbvULFe!D4&`i@iC+QDp0=nGc*lPNp2V%Yj<}oa-w%s=N1^ z?Y=DFue3D556%Zar@N}e+flT(x9wJJqRunXXWrBQW4oS%#F%ns-4_*K3VU^D33tGy zs`Z=gXT(_Qeens!$#J*RF~ySR?cVF(YCGflgy3@@bi46T@6q?(^TzyqOvIUSd_wQh z_h?_si+oJP8P_L7tmF%n=jxgF=zH&ZV}3p+Vm!O|J^J2zUf=6C?mXCwi4YCK-O{qf z1fhl5A!!94$5&aXn8hIOUHEDdb&r;QQGw=?dpubT8_H*i^aRW?HN7y+C|P)Jv>sy1V0X^^d(Xl>)xr zK3mSq*@a$Rr?XknN9*Rk<@yJNXZljzw_&s{nm|vrrV4uTAa$v3)ye%J_QRm$`gqz> zHA)yc+rd4bgMDo=>ObzMkMWL}^xcv4uFj-CJydV50RJn-;tMU@$E0&hudfl#)+Vv~ zbNA!4&GEbrjZGsCI?q@4_wjWv@%F-1JPgA=(UreDlCf|$dnfJ?-t0N~k{>_iL1(`( z7H^xbJjC6niNEJQkyYF$Qp>$8b=(P;NE4^eop24DiL@!m9+=9%3LjxFz+YAF-+YJN z3y^LbGNIHIX1*5&0`EtgA;cSJ`<&0C;l(8`5lrz;2BYS8Zm}!%MDe}XJ_HoLYJ{D#i zoM()M8K<0?lYrqY(b4=FrySjxJ*vINftfuCn374rgaz{vZ8~QX<;n8zo?Id7U`(Y-KpHKT?CTP>^ zCIQ2q;E&WB+G{>aw~WKX$0q@E!z5sCoCHi_5-{~+VaDmpHwoq=`ryrD%Nd7uodx|- z{NY@kkA%5p5-^{c1kA0IfVpiFFkhbp48ECP77=6A-zjDs`h`g|nqPxxUb;NgGt z!%U!~es?U)ICO291Wc13W&(Wf^21CZV|V*uCMc)N4>LhITPFc?j~`}&x<2QJnV_!E zPXgvi!F+_S+vYE40(`#Uhnb*F@0~~71-*Eql*{?m*3^Awfl`QpNy7qZ{~n~f82 zeR;*{N88@y_tSkZvc8$%oc;voDf-GOz|O|+_ek5@zz+A}90e|9;jf~e*0%R`HcDSa z@9m}F8j>GX=Rk0-RH^r#B%V6rz3+;Z1kYubTbQBPY$xHRzb3rh_muUwd+DcaI%jiH z=9|9v)4um%`yR0{Z~NZQ+IKhaIbZs_zV!Ef?;rTyFZkfyb>E1}PboQ%C+_0Hd&u`* zY~O9Y-u{b-&1=2n9$hc{;CK1nUH`fZpYWxx^}RRPcei|dHiXN6PQT{k@vuqneT!_p zoAmCb-{E`zlJC96_x|w6d&hpg_tje7W@*#uZe1PES{T+AXqOjg-x*4;b8bwoZLLw7 z#qq4IzvHllb=%>H@4e5ylMnc3M$%IYM$%LK3hpkg)xPu^-}~cww=tHjsiaMJ;ca7i zJm|JCR_@v_*mp~lx4thrdUsYS-RI*k*Y|YV#mBcEG}oq&Sw}(kr=k<4x@!|_bcUjv z->yAevbO8~*1PL9m32v-UGBQdo;UO>ixS!VdAB<*>iZ?|^jrM%38hO9c>R9?eG3a+QpXWTm5-TgAbX!L`FjIjk2j&y$_KxC8V$l0enovJyRHQpP!l^fSU(LD5tAQzD zJu%f$o$lE{ghz7P5BK@*z7TCbDM#&t#=cT|N$d*uq_EIwnRoK+PJmb5G+Z$!_* z0TVGLUwz3r-y90gZkd|qdw<###ZTvkr#U82xgvK)<&5NQ_VP9_G_y~>o`KGhQs~ftPM%}ud4~G^?ujy&)uK4Op!R5^%=lqacH!-~Nleyt3 zXQ;b^x+!NQFLm3zs{5~Ba!wD0xOZ!+y;G!%GiqBqR`nk@#o!c2u655yG56#aD?K=S zDBic))z!55s!?rTV*V(-Gj)XY^1i$1Hyb6_BW*1HNjB_xzK^sw>brFM;e-ii5@s%c zrF{wVCCp_!T|LjZ!1pr#=J7W_-OEZVAHNK;Mux1lz08_dsVg(7KEZf;$@XpU-RceR z{RJP)ao>B^_x`f)eaQE2`;Ax5DPQ`VzW39<_qToT!@l>kzV~y!_ji5o@B7|A@V#H~ zz1x22;?t>QkM>S0vtD|UFWvIcOAq_fb?;tHkaa=*=C18sU+10?)?TExbn~IQ zSnGR?&DlXaraK|EiPiJ^J|mY)x3!~N+e7_VfltCQZrikn$@8XHPE2=jdhb=(1aEuq z)#=CDx4G|ar_(#zPW7?6)|ZiNwhgCV6~=sb_4}QDS!5-GY_+!6*mU>(&is3w&H#&c zZS8x9JnsPe4(Avx3`dFE36tpW_~ub6z>;xaULfA*FMESaIy`iuHUi z;yv7#$i2_s2mD2KoM#52h=$uq+!tH<%Tzh;_!qG_=HHdR z--A)R8)^I6SCC=Uz$j7a{CbQ=Q`iW^S|xgkup0PN8VGldrrD{ zres!#kEuHSmZ{Zy$9ntj+B*2~b`N`PuvY!ezN^2@=Ir9u)Oz&1d(KH~+Y8c*uC1He zX3L1!vbWoJx1MJDdqn+R{nqX8tJmB9zPp1v$vUb!gN#2@h=(3*u3W<&pRo ztZj}P@#ZAF@#q@ijSJ7+wmHuAj9`OQVq=7WiwB*dc>hDh)I7*pbQfG+iMN(djOiu` zY=s@q1TnyW2eT1uk2LxO7WawFJ5t12V(^G*oNFMNT1o)Wehwo?t6|r@Z9Fj^Ss2w!p2NF z@Gg5My?lbVu#a`HCmy@thc;h~vS#^km}1KzPi$lE7r=%3(!l9EIH?TbfE^i5^|
      wNHOE6+Oh9%e{mXP#s1|I%TI?{#v%^kf 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
      8SBYoIujgF!V$ln{jk#M1%+zAzKw~8{ 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 C-?uaX literal 0 HcmV?d00001 diff --git a/tools/rasm2armips.py b/tools/rasm2armips.py new file mode 100644 index 0000000..ae92d58 --- /dev/null +++ b/tools/rasm2armips.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python + +import argparse +import re +import sys + +def read_file(filepath): + with open(filepath) as f: + lines = f.readlines() + split_lines = [re.split(r'[ ,]+', l.strip().replace('$', '')) for l in lines] + return split_lines + +# jumps and branches with named targets +jumps = ['jal', 'j'] +branches = ['beq', 'bgez', 'bgtz', 'blez', 'bltz', 'bne'] +jump_branches = jumps + branches +# jumps and branches with delay slots +has_delay_slot = jump_branches + ['jr'] + +def decode_references(instructions): + refs = [] + for ins in instructions: + if ins[3] in jump_branches: + target = int(ins[-1], 0) + if target not in refs: + refs.append(target) + return refs + +def reassemble(args, instructions, refs): + print('.rsp') + print('\n.create DATA_FILE, 0x%04X' % 0x0000) + print('\n.close // DATA_FILE\n') + print('.create CODE_FILE, 0x%08X\n' % args.base) + delay_slot = False + for ins in instructions: + addr = int(ins[0], 0) + if (addr & 0xFFFF) in refs: + print('%s_%08x:' % (args.name, addr)) + sys.stdout.write(' ' * args.indent) + if delay_slot: + sys.stdout.write(' ') + delay_slot = False + if ins[3] in jumps: + target = int(ins[-1], 0) | (args.base & 0xFFFF0000) + ins[-1] = '%s_%08x' % (args.name, target) + elif ins[3] in branches: + if ins[3][-1] =='z' and ins[5] == 'zero': + del ins[5] # remove 'zero' operand from branch + target = (int(ins[-1], 0) & 0x1FFF) + (args.base & 0xFFFF0000) + ins[-1] = '%s_%08x' % (args.name, target) + elif ins[3] == 'vsar': # fixup last operand of vsar + reg_map = {'ACC_H': 0, 'ACC_M': 1, 'ACC_L': 2} + reg = ins[4].split(r'[')[0] + num = reg_map[ins[-1]] + ins[-1] = '%s[%d]' % (reg, num) + if ins[3] in has_delay_slot: + delay_slot = True + if len(ins) > 4: # with args + print('%-5s %s' % (ins[3], ', '.join(ins[4:]))) + else: + print('%s' % ins[3]) + print('\n.close // CODE_FILE') + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('input_file', help="input assembly file generated from `rasm2 -D -e -a rsp -B -o 0x04001000 -f`") + parser.add_argument('-b', type=int, help="base address of file", dest='base', default=0x04001000) + parser.add_argument('-i', type=int, help="amount of indentation", dest='indent', default=4) + parser.add_argument('-n', help="name to prefex labels with", dest='name', default='f3d') + args = parser.parse_args() + + lines = read_file(args.input_file) + refs = decode_references(lines) + reassemble(args, lines, refs) + +main() diff --git a/undefined_syms.txt b/undefined_syms.txt new file mode 100644 index 0000000..39cbcd9 --- /dev/null +++ b/undefined_syms.txt @@ -0,0 +1,97 @@ +OS_VI_NTSC_LAN1 =2; +OS_VI_PAL_LAN1 = 16; + + +SP_MEM_ADDR_REG = 0xA4040000; +SP_DRAM_ADDR_REG = 0xA4040004; +SP_RD_LEN_REG = 0xA4040008; +SP_WR_LEN_REG = 0xA404000C; +SP_STATUS_REG = 0xA4040010; +SP_PC_REG = 0xA4080000; + +DPC_REG_BASE = 0xA4100000; +DPC_START_REG = 0xA4100000; +DPC_END_REG = 0xA4100004; +DPC_CURRENT_REG = 0xA4100008; +DPC_STATUS_REG = 0xA410000C; +DPC_CLOCK_REG = 0xA4100010; +DPC_BUFBUSY_REG = 0xA4100014; +DPC_PIPEBUSY_REG = 0xA4100018; +DPC_TMEM_REG = 0xA410001C; + +MI_INIT_MODE_REG = 0xA4300000; +MI_MODE_REG = MI_INIT_MODE_REG; +MI_VERSION_REG = 0xA4300004; +MI_INTR_REG = 0xA4300008; +MI_INTR_MASK_REG = 0xA430000C; + +VI_STATUS_REG = 0xA4400000; +VI_CONTROL_REG = 0xA4400000; +VI_ORIGIN_REG = 0xA4400004; +VI_DRAM_ADDR_REG = 0xA4400004; +VI_WIDTH_REG = 0xA4400008; +VI_H_WIDTH_REG = 0xA4400008; +VI_INTR_REG = 0xA440000C; +VI_V_INTER_REG = 0xA440000C; +VI_CURRENT_REG = 0xA4400010; +VI_V_CURRENT_LINE_REG = 0xA4400010; +VI_BURST_REG = 0xA4400014; +VI_TIMING_REG = 0xA4400014; +VI_V_SYNC_REG = 0xA4400018; +VI_H_SYNC_REG = 0xA440001C; +VI_LEAP_REG = 0xA4400020; +VI_H_SYNC_LEAP_REG = 0xA4400020; +VI_H_START_REG = 0xA4400024; +VI_H_VIDEO_REG = 0xA4400024; +VI_V_START_REG = 0xA4400028; +VI_V_VIDEO_REG = 0xA4400028; +VI_V_BURST_REG = 0xA440002C; +VI_X_SCALE_REG = 0xA4400030; +VI_Y_SCALE_REG = 0xA4400034; + +AI_LEN_REG = 0xA4500004; +AI_CONTROL_REG = 0xA4500008; +AI_STATUS_REG = 0xA450000C; +AI_DACRATE_REG = 0xA4500010; +AI_BITRATE_REG = 0xA4500014; + +PI_DRAM_ADDR_REG = 0xA4600000; +PI_CART_ADDR_REG = 0xA4600004; +PI_RD_LEN_REG = 0xA4600008; +PI_WR_LEN_REG = 0xA460000C; +PI_STATUS_REG = 0xA4600010; +PI_BSD_DOM1_LAT_REG = 0xA4600014; +PI_DOMAIN1_REG = 0xA4600014; +PI_BSD_DOM1_PWD_REG = 0xA4600018; +PI_BSD_DOM1_PGS_REG = 0xA460001C; +PI_BSD_DOM1_RLS_REG = 0xA4600020; +PI_BSD_DOM2_LAT_REG = 0xA4600024; +PI_DOMAIN2_REG = 0xA4600024; +PI_BSD_DOM2_PWD_REG = 0xA4600028; +PI_BSD_DOM2_PGS_REG = 0xA460002C; +PI_BSD_DOM2_RLS_REG = 0xA4600030; + +SI_DRAM_ADDR_REG = 0xA4800000; +SI_PIF_ADDR_RD64B_REG = 0xA4800004; +SI_PIF_ADDR_WR64B_REG = 0xA4800010; +SI_STATUS_REG = 0xA4800018; + +ASIC_STATUS = 0xA5000508; +ASIC_BM_STATUS = 0xA5000510; + + + +osTvType = 0x80000300; +osRomBase = 0x80000308; +osResetType = 0x8000030C; +osAppNMIBuffer = 0x8000031c; + + + + + + + + + +

    3. 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Ƈ^2s6&+Jtuz`5YD?JY zu_791EwmhUSaVW}-OPT7REa)PUL6hQ(>u*!P%xiorGaGB*es*RN_auEs=U0utgbSM zMyrCxs)oA8Ms~t%E{g=sRb>l<=9;p3L34d+(A->6+!!=3r0~SzE^%d6%%k_4#SeL& z0+v9lt8Qv6&(X4CYK)p1b}p-lm~FrG(9tK#6MygjX_eLpRCIJq{I{=Qn~;`{f}p#CJ6tIa=z&=FWBC`Y0To%x6|`E=es-GyK1?5mu8hqE7bHoIO82sjMXVUP}kbr_<<&>%{8Zww}uv&>(l z)NJV#OrUeJtJ9Ra#{IO;uv>i(=QzEA%9CyzeBjKEsK=RV8D z_vQQ8Js$^uJaDe6;n%;_xqd5MeBa-8clq>oc3)=?aP|;q4|nz`XODGuXct>wUtW8a zVAB*2tW^NnlbKP~OI(wG0%bb0dOYhrzp7Zze;L0}g_xIDwaSblL zm(K#XA4j(OEq3vjIQukbpX= zFFJef9DDy?b?!Hv{hqTg>0|Fptd06j-qXhW#HAZ>xOIQ&-1XHgCYqZ+c{1=`Q-fSt z&UTj#yoSswaV*2hqn0=B;2>{2W&$P`GrbTuW_mvEe7!P|&v@5pi)Op{DOIifmJ;!dlNsB>r0T2|>^#M$IdTPVX;|KG3x^K_N?1cWsON>q?p@kaI*1M)F(7E*o!rdsw5o2jn)UyhYe>9q>E@^Bu9!$(L0jpUfeH62B_@bZ!d1O&e;xhJ5vyLiTzSdT<-GB zZ7gyg4cLz|!>72pGQ&ry7Bpn0O7~H!bRVU%a%aZnT6ijLtDY24$>{70lXz6K7mg4W0xXsAI`=;mNeOqKwTw2OYR6Ej{^>UHutlO3(P!p7y zrM08HkIlCipNr)Ui};*mnOdHyav?&Ud1BZVT+-ztB-m(lK^Ze#XXAVf1`s z>qfg%-Dyruti*{6cS#d*3HMKxy`Vx;eQajl$LE>mwppinwUWx9n9}E%K5L3+Pjh@B zlg=FXq?`EWb3AdDj4gk;(jwc>DHGeACZi{uK0Xz8Wl5Zw*lDiR$fh6)^;cHQCmg9U zZ7CF*xT=YpaQVolpr&cGb-3vy>TR~0u~s;ni_|wzs#+ktArRW@Gs!_w4xqp%m0cLM zqMG*(%Wm^ws$d{7Qk$cXUefW-G>;R#R&T(B(|pe-p9dSt#_2|Y&8Z#;^7?Z={mf$X z9CDf?(MV&CNt~k>7z=n#<&9duS{el)z;uYPK8L}l>N2xiC2dqw*KF<-iv_bBH??Ff^F;#VTD>@FDvMB2 zvsAdYOs%bxrcKKin|+ayl*-E@)S!A%pp}u0AQ3e4ZOw;0dDTX>`)r^Ca!_?sEq7Y$ z8IysNP~(I1g@JGk#^5nR5-JxG)D zKnYL(;z;+c(?-34eS_5J7|9FeVQR$_F8U6yEYr0U&p}E9+0#-jEpIpP;9VG`6f~e8 z`9?slR6PZM=6)g+BWE@`yfOMJg;~HcPKCPanPmPvQmX~k9poS$TB*~n?oY?3*XTh= z^w5TKo2L^Z>6-=(dDMB!vChBK|Ky;sG@3-GAkNWFDncu&ln@@2G>QhPn0?E6!pawx z@){>cdxhjR?fUK!T3XlgUn6-p&el15Sr&VR^Y8qOjUV#%v)1jyy*<{27dm^j zvt!O)=j_0xU+MDq_7WHF%X5}@JA1W{@7(pyUg7MqF5k}19^h>k?(_Aw&(FI97jLe! zZEFRA0dKQne>kOUxo3b#t%v*6Y2mGazV4hsE&*1K0W6D4IojITp7O97xX65=@WH?a z61+^NH#W3do}_7K* zqRfC=bY7$$fex)GT2y@uNy5{{>On1^f3*=r%=#wxyxG33XPPa-tBqX4>)o6i-M=}r z>Sgzi4A?8m-bi*d<`Wi4m-jWV{zzRIh^IVmGb!sZU(V>>b$eVmoB5Pc6RRIamT=p& zqgw{{?A}ghJ7N`zEv-u$B4y;N#puyeo3gWYclkmI%2I{pu+M>THo0wt7US1`5`2U5 zNv$tLbib^`Zd%7~zeM9{GbX_^8gKU^R%=P(Wp}z_X{&SGK6~bx5*OXBXqBo=4vomI ziSP-j9pH1K#TDh+aIBfH7!#h@k;}+fwowA@k;ZpXj&pKz*o-174MC18b%btW_J1n2 zRtdLN_(*Hi)fe-AkUOa3Cdfzk!ZfXOG?X_7#nEar$i!DigCeE56~XRVPZPL3Voak( z%0U16Ch(AoQn#eL)VmY=0W{U}21SbxxRO70;a&z&^b72v6i9QSZfA#jG%Daem+U6= zrcYZD$9~-~sKF<=#Ep5{dcN9ZtLjF1SK5k8+>=jf6FL|=Gwbr3EkK+`UzOBS{Ziit z&AKn{S+7j&yk7Xn&F2bDs+_&V*~^^0(%CU*_jdMJXPPs;L2p32NaA?DR_$CxG59zCQV8tQ#@OjWSnVv<8lvi*&Z}4 zzbG$Uv_GZZzhDwAVk=uTZQLQ@$ptgXXX=cCX)`8=_Zyc#X~wiX@0^xbSTL<9Jbqkm zFmrm|G~;k>Ol88;4i4{^KdC5hnrklFp->G!p~mXFUlV`DgV%f5ABp0 zX>$I=Y2zqm@^!hJ|&C0A-ja;IfuGsrKP5+u%O^y$+RFTBis6_yRQ`pKRy#!UmQ z`)+4H?CjBZ^_iTZoIS?bQ=A=kcEs6-y7ESxz0lbwJNp7>U+L_YZ+r9M z*fVuoMk{-0m^9SPK5-q{b*iC3`ZeTQ{|}uB1YRk~_q?v9L+zPPCq{t*1%f zRxR0QhqtxvSsRyWt^BoomWPv+D3TJ7bM6C4IG5Zf?FZMX8{v?z2 zX|3G0eTsb?+kMv46?B^edP8P9S}pxSQM@em$heyAa9R3=l}?JQ(+lS0Sl_{0xsIME zZQ_%jE_o>xueI`-blQt+_#JVYbmsYO<#Bg#k~N+7P|Mz$+4~DHy1rytugCXjN%?w`dem+8y^uiN?By!1 zUGz_utNNd62eU)udfMGQbR5v*@oizh8&mhi^Wo;xBPBRRA7G-VxT#{AKEO7q%P1ut zx5($77GJkKRo|ellj^3+^JSayOUak;DXH-V0WA`w#8>zfpIwSS-rm=jF9Twe!R~sA zSB`ThUv()_&8fYP4Y#j+8^ij0(SiNg!AB{EwM|tyJKs$$I;1c!Jf&btUTBowIZjLg z>ywUAAsZ_^nE`P3^Z5u&d&|*B8|m73Qzzx~rDA`Lby2;yuyV!_OXq1xeL$AviSnB3 zWQ(j^yO}_S~fQA*%UG_YIYwp$_BR8MWfFbZ78BG zRdxNs#J9G#gX_0vuMo=NP!l)Q##9{r^4;#qAu|>;GL-m6Cm(XN!<1I2rBu?O+K+Z~ zU+WsQb6o@sX{f8ySF)s6qx7IL5|vYG-5iCEDuxrg2t6qKe0GyMzOh^*J}$a#L!&-U zR={s(ms=0%@MyWMMZk{E$(`S9J^lT#&%G;s*bW-#vHfM? z{?*UM-zdT#kseDSR1w@>;FpCbMf29{i-slfWVM!mOI%97eiFx8&p#<5|8wE>&|lJj>DO2N z^u#9nna4k$Dm}jMpVH*1lP1%pytjCGlCOdE^eO$%U7(e4^ImHG`nEr$zRy}opY|Tq z_+(g*ez+E$ShBpzN!Q3o->}H+u5KZvWw`olGOT5|DW7P(3Nk;fMa}P+boZyn%&&9k zBsiKnU2leP-sHlfLwfIFg6KJ=^Vk5~mrptO=7DZ1Z~cw1{&)g)H-c=7pJU|^JCPjBq_LYC+!|iTb(pEjnyQ`b3BI z{{BAt486b0&+NCEa=FawwH2Na5PZJw`7m!D{wAq*qPM?k8i@!&Yv;4PHj2Da z7h5Ybj9Q`acR!m?QnYP}v^JtmFM**UQmjF8wFeV6N?bmf2%G3&F5KQ@ zKBpzMd-xObjZ*Q(*oVq>g!MdAQS-RlXUd$Xc8i1uJGhsX>k*tZ*@&J&&+4X7@1D^< z!GMK5s~6^&Bc5eB7+b(r(@rlMHw{g$Q5)&Px>#!7Xuq?D8If1|rq&YXPYD-JE0~B% zdb)2PQ!&%1<`(peA}^b?wxwy$eu0b}%<>Kp1FDeK-xTGs&@pYmp6q~873!hP3iEi5&yZ+qFQqWCchjcjV54{s^PC1RzdH-e0Dr`&AgHm_w1 zPubnAe!klBne^%5$$ZRbb4olbzA%Uh$54ZV_GfkBVdyQeY!jttUZc^Ghhc*>LX$>y zuJ+)-NGj61YoAoy(J(sg#n7Vp9U1Dyus(DAqP<3jdRAAL^$qo^i7+&t?i)HPg+SKS z7^yb9KGSg{WhtLlrX!OLosLs!n+Hfd(fKH+%}4zyH9_L17a{vTH)$M_4;^zA>vr0I z_u}k7pEz8Ucfa2m-Q*!}KDv1f>R?zU-_-tn>)-Dt9&^v^^P0GPVEiSPmDM$gT$ga` zb`dS%hWZnBeoCG2x6u+ACj1p&VTtnFD^rEE-+b%cq6(SiKd_w7<7h}MfXKoSJDV3* zi%hd91hj>UafZ^nM%(et#_Yj_;#%#tUPGqll>!eS#HTD=0EP|twDR~dNp9!@5qhQh zz0_Uda|ziD^G%N(z?f1vpK=OL(9bpa~R{z!VttQEJ3l<+t6o1m{3o6li|+4QB%$c4G# zBPaar_3W&ul)yx|a)K%up6{-njAQd{`M}LL+6~{0xxW2QNa(}7+dPknXF}PhKM_8j z|Bf^z@Y$w3;67e@e!|X-{N&YE`q|xs*|US$CBf{9V0LXVyCIm}7|d?!Ibg`a_UNnA zfBxYR-cqlya>5pK)jHk|+K23G3n&-mAY0 zqBPxTY;;v{a}%mir!kx|W74Ewq<~D*TP{p$E&XYx&eE4p-z4)P``S_`k3QV>m}Ef4 z*@~TQJI&qA+Oh7|UfIvu!B}gL9q-&3>AkZ))Evt5h z1jGACiokA_ZURW+yQ{QuA>tPN|2~45n&QSLbdY%k`4EhqzA~yQ#p2@vdm)3gHi+*% zC*QRm)jV%{4F^5*hYjIaT@7S#+Jr7~9(2yl;cqnx8FTWc8QzQ2WeTe`S;A-)VN;o@ zilLFZynPaRO-C9Mpkxu#mrZcWE5*T``6^8&v@L6{ZdIQY!}SY_p>_;UnlNM9q(e-^ z^~ak&b;dZDCj8bLFK_yUafK#Y;Hy_vzAywct+>9NHy-4z+R}0rG4VS0@zxio&FdbR zcgR5n({fEk++ks%?LUuBbNy;+y4(AEdz}mS_5hd8yU!}H=|eMJer?!68{uQy2#?M9 zdDm$xpZ|ofza3Zp!ggNPM*Jmhgtv7+=C+kSBfPhBuPCzhwE7VvkZ6k99Mv zx}0SO5^nqSDS-_)a)z89S`+es@#J9QH9)gu!~_}$`a34Y3FzFYX&#UABuLjE)R3vy)i?rHvswKhJ!z>7%ZHU6e_Vyz=_PL+x+$ zXXeZhXZr{J^-QDi1op}1UR?hq4)HSr`=0GDtYoW(?Aabk+<+b7IYB{WECc;K+IiTO*N^aBm;J^q{NiZ=I6h(r8Q}&E{7$uJLsSl6+${`uY>=gF%360RtyJ$xYKos zulZzu^AnjvmTK<$RvI74b{Yi1YL;2z%bcUeul2oWHGDeZkqC(tX@4!#YXli$e~n#E z=jW$uHiS!``+D+CiI>RT7bmD=E-D;Υ{kq#R4z@hhN+D|oUD$yy0s!$O?h}@XrI#BCcV_7jv}OJD|6Dwt^lsxyPZn%w2nC=rTuSxeP zN0pqK#1yGzKR1~(GQ(Y5P|R#d-s^R>A>+$)r(uwhJMzE&%UVln%5B=$P8JFu4%}q6Z)&)m#hM<&gxlA>YH9DMb!&o>R7K{O5--Kq zz29v7v`=yqpQaC+TwS~rcUr#kH*@-3WFLr~$R{H_;ZI*M`YeeA%E!5V7KwOirSqXF z`DcVD(y6B;qucVRlbMRK;#YmTio&G(S>YuO%rYyb&!^<>%45>E6>i}(EisPd_1g;1 zsIbc@nLa%{>7U*p#-Fu2!uD}V5A@}+VYW+WG?_{N^TN@9>zPQ;ASHcU;Vl!Vm#?kx z^ae?7FI)b$!cE&4EGw^VcA82cpT)U=7+wU@tuY1O1ZBG2Xhz_}!+H}2{rcIriutVK zeX=Jf^-|`TtR~boRZIEaXhmG}QDPz>)R>s60v-}_j6Y@AgA-PvD`xg!V=Ml4!miTI zNHF9qmrTl&p3&ZYLdA$FLdKC68Et+lZP@3lFkOu(S@sI7*y~I;`Y-!NjHkx^WM4#vpVwYf75HTdg5Wf?Ohut5@jbMdJl79%BIL z)D@eVRhp4x)kOh`?8`|@h47ObU_=vVzue?bC5affNF_c}5i?U!ElFVIK4=^*WadKK zkHlmZc;+i2mDC|b`-Mh_y7!EB?-+c|CtAIhN(iwC z8~v8Ky_((_@*(q@Ygo9kxQsP85%mH^vd+-t$uo?k8%&DSHZ4R&YSU>!CDT;gok$}q zve;lbA_%z1;0&kEvoX?AGQ6*evXqZvr-j%#xM&HO`(##>(B#ds#*(1kipzG0Iw(V~ zN-kw(mZmaNuUUsf^FNu-%4k_o5n(Azt$N^3LUx^t2nA@;!dE;ptZcyAjA&c}R-ZKU zofkB)>P=aBanhlQ(e$Jm!-xHkw$L8sP!y?S{9S`h*f{5K?GS99^#39{@`AzO^&tr>k0~d5H9?H)REhsnN{LCs>$0`q%E#mo$2*Y8%+n*La zVO}&JCAxU`k*X=`=`F!}Do>F!bwYUYl}cTzOpHbltv?x|UIuHE9V%(;O2D$4%HT89*#$ zkdZz&Z`?0SKcik{9nO~z0H{vND@8Y8*0`KQi*t?`kTarRXio3yx&`G8A%rogX(l4Q zjT+pm)f;?`kLNkZ>F0)ZJMKn-qJk?Rt;$f zL)}y0;@8w`w1~lf2Nn$A*77cO>$O>V59ro{U1F}#n$_ivETZ9lCdlBQ^{~Uy24i_A zNtG9nYZ%9$CCn=^o*XGogSDK|gyjrwskCxo5UevE+K&#}8QSX!lkZ>f&o2KSXo)Io6WPWl%!6cd}5v8s8 zQ)WyapEvF2$Dhv3W%AE219(_dh?OMtlJ$_rJ)=(09#~?Bm5?CKXfmn+55o&! zaSLf}B>}KlhoBgFgga{HM%k*OHx8!o@SEq|zOWP8mteY8geKnC65MhI4vQk7m^%>- z>#eMQ3guHAGnj;$s#veWbh9$4_-KhX0GE!nzb95C5wF6GdkKH zMME@Byp?@IjP}*H&x?Y>C^gEp#6|2@XT=qpC}pMjJTU8+=t0d zh67BDW>geIbLQ=4ieOM7HFj$J*1qPG;aRGexSkPe-HlDXf-jE=x70BcOnKy`av3`j zuZcCOQa)i5{^CGM70&|P)$~z+4GVPSLgxyv@A^t_!_#s|OP^9cpMTo*4Ob)m`aYbY z4a3w_s81_9Eq_BTGmivsBl-hRgOyCgM5E_cH_k$EY|I%rCw&@D&$3>;2F;LpfX>n` zh8aYm`50yLXuZPFfNNn5!#na1tKNC}t;|mEwaQd{2MnsJTG;ZKlj`*|9jQrD&vhO1{wXY)7S5j@9yiIbV|#0bAt0ZJ zr>??`erXYdJ}ht`a8@Aw(Em(-mS4Cex&U$A#AzsPA__+hk|CS)D`l*JPul@}3^M(M z0H54Ns-#b`CXHKA%j8jAr;kzJ8_gR(7++k**Nh1KZe={4>u!t^mKC!^T`lD;>)pph zBC#1L17l&cm=9D$hj4MU#ttBk3?|i8h8XOviH3R`!3McZ{RWAv51Iqs8bj?{gY{OG zieX$ZLlzGpAK{hy7Gqg9vp!A8tV+noRyj01)lh5jLP#~@SJ-@U5}*~CYFR6vc?Z%mb(PDmP71BF?eduThOirA#icBT_W35`*(YDHUK2UOth;2J&t5+nucTbB zUF2}P;4iW>f;Td&jfeV&yTw|>QN}tXDDaZ7LVK0;QMNbPjBUM4E4e&P+iHk`K>@XG z2&ofhEAZ5U*7<>W%PXsa+}e# zMvBKGTvE2F`FMRa*lHpd^1yLZG+v9K5A{HgQ)-WnGTDN%p#|)&d(qu|2X%*`(A_j# zM|FOL*K*sB6V-Ni$H^~76aqkmNd|9{@eJN6oQ5#VYf1w~>Qw(kX04p~b@11((mfCz@ za{eLX8w4L8W&JxWvbGssCd{v=Ki2!Zj0)Yl=o`86k9GNkoO_{NG!pNDo}vd@d63rqXJy?k%K;C=74JzJMvTeL1CiJ1=xU zVG9ptNVTOeAkT7pHoZ7Nwh@wUae`8U4Xy>1WhK$ZrV_mk!)E$Qlz9#gC(;6)U$_B% zcWR=9e|bG?;id&?vC{??jZKYSS=>;fH*T6=oxVjGF!!FUOjwCu%53|Lkc`MiQsDic z5(||RyGdyc?M12H=^j;lAU9bpb0U)b78J7pqPD8>8OoDF8Id8)Gg{Tuh(b77N5y0@ zM@^_nP0UAlak73UJIA?dB~x>G%MtN;AmBh-YbfT{uJ)mQDN*7pS(Mmho0fd-buxf$m;EY zwH$1*6fP|>{{F3H9BhpgW>7_g3_e<H+5cBDP9tj8Ij=Q(=H9_m~?3P zn4g;^uw0uS+4q~_oiW~o(4^i-?MMkWrH1;hnh3OPHR?65ys19n%L8jf5%V=K6{cOe zT4Nt(Q!?J}W_Ky1nmX>X8RFOSlVJpTV_U9)?@t-HqUC^*kAjTbu6yA6ioIdk>g-8D zree(%w78nOsaEUor~B!ac^qpIk{Y*8cUL;+6i<3{E54>@w2Z968>S3x$co%N`N``g z!{8{Ug{a&Hp~G5>y{m+PR1lU(M^Fmn8+m86Vb9F!M7a@P0+xh$6hwCF81&$S@RoXpXrFl6?JS`q5E3`2X z2O|?np$x`mxTH!*nBi+yBR0D++B3Hrv06Z@6NlY1EJiP@g17KB-x$7)+LiuhMj^oLg z$c9dw=3&T*N~Y}zd!}+5gT#P_*oA# zrPj_HH$3SSx7O84aXO`GijQ>iDNdsmO>vvfkmBYmn{k+Q4`wi?dkh?w;W0eb?dBe* zB#}>gCh|$oMLucS;7-joWkE5kAg0OfB}5KMELG_I%rn-)S24|Smra4tU-;}1pV>4OA?F24WX_xmXO zeQxVr_=c{0vD0mN-*NUQ&UV4UG8fQlt2Y?$+%Xrwlg}W-{?g_D zgR|TJ#$LaZv%5HZM`!nNc7JE@!!m;Va|ZHM+`FdprON{ zrm)>kMM*H26Exe=#-Sz}&Ju9mZ9HtE-qvaH{l%ZBPQ+B1RkM9q@UA%px+eftO40~T| zoc+TIedd}t&i&7(AM4U@ws&JySL&o8=rVy>6%i8WMH_0-96Anq%A*@67xT&Kc@vYPW)VK z>&~9Et?=wAf0ZHa5&{-*w!*Wg{8ff*kodXcS$FobwiTW|<*zbi!^F=O&$_dh zwXN{%DSss)8><}VkYfL=ve`sBrY7Gw*f`tE=4a*lZ;q6}vur0d*#g@1->A(P|9S-4 z_Lu+ug(mEj__<81JA008g=bIss|?vB@pHwq?(Ai4D?EG3Uu8&##LpGay0e$Ht?=wA zf0ZGdCVsAX)}6hqZG~q~`6~%AUykNLfxP{*%4Q?$=#$y=PIju!&&uP!JW>MB)_YR3 z-q0+8n`QC;cY4#dzxd26TZ3C}3b zf4eg)Ft-}8)#2MDekl<;r<}KTx}Na=_6q-t7u-Bi|9>%~UrF-n|LWhiS%2orzmjJ7 z*Nd@Z_AF`x2(0{XPZV>;;s2+fukH@M(%!?n|Bu@(s@uZje_I3W^uMjZ|JL&E{BO+1N={I%kh8RcJc|IgJtzpm2VZ)X)akuE`y zlz%d3vSy|XDgx%~1zBJJ+m;0_X3Mq6U@V+b zpJRxB3`T3AN^xT0_l5`cHUvO+u`!G1F;f$&i<#I0Cywc9?q}F`Vr?p;Ag5p0PD?Oz z>zGUj4-VR_h(NO=_Mun~iwb9+o-H_RpkB9**r91jk{H$DDvU5pxpeWXw`b`tMt} z&(k4et$)|CeOW@0YAj5wx?;HQW`*2+`K+PKTXh2q%3Y=6&6jQ(o)wx;<#xO$iw{d-4rHEB22_! zZ}!|tWR}Rs62%hX%;abDZo+d}8h`~P-EMw~De8%cxp_rwQ{E@YwM%&TUS^kXFpDk1 zfUpa=XkKF?9o1*+_8Eo#7UxDp!i4=18dsPfVj@HoPCWCc8W)r^Ny{wVu}6qW3TC+* zU(cC&)27>EQV%<;O{pSqrmM@F*%n9(Rg^`T+E-r7M66^3<>u!V*(+yBM`od3n!Um_ zUHILiv6-A}L(>n;FU%cRG|tZC@+I-UCetn_u8HrC8G^~h6k*CRjhGWK=U^_we0jo} zczf*gmad7P>CDoU^IXnlR-LmZKIz;w@zb$S$L@q#h3O)HOs5O5G40RC#+;5>g*oB8 zHSvcqJ?#EMJ$Ukh9&WRt9&9y~oV{xMO6qa-@-^`lSFeemg{jBP#f-&-Fac&AX0_Z` z;l{+SToYf3S%x_aQ;#_qGZr%d(;2hw3esR!V%A;5Ic5cB8SW*RLe2+ZI%Dd&ej#Q6 zrnAa|QM|LTV_Z-1$70XL6k=9lR$!K4mSF11<1EZex2%bOi|KIdn)nWw{aZ1;Q~ZW= z{@lIR48i`T=5Er+WJ`A$VKUjm&ml}ETX-X3G6No26TkA|f6k0;BW+$d**G0`Eze) z`h80uc<@7Obl#TR$6cR&rOVITitEq4oy~83`Ti#?d9SjyMO*hTGdx>9ss8?+d0S!r z+}oLcOFvi>m-*^_YkRl%OZ87Z_wnSHX|jcRe{cJAscwJn?bK`j+;gAr|0VlhX^+&j zscrJ_@=wk4Kj+EkA(ruMwB>HA?K0CV{?GMmEARh=C+}Ofw#aPjw%pnB@&1|V<)6*( z+qc%lkAKq|oww!oao1;8x%|AXxc=PR+5Fa*?|;IQ_bOXkv~~Y7!?Wd+>hJHFw-x5k zy`AYdmpHdO+xw;Zr=I(G^2;>Y!o0t?eY#Y)KlgU(HGl58&-d40|10%KO`BSm zf0uu1p8u2Qonz^Js4aI}Wz9^l_&?XLt-ODY;hA-7%iUHTGSjcG{W`t2CjQ>5*7$R8 zXZp+S!@TX|q}tiSyuY`7npC$x_jc+vf9|=@_t#+mEA>cCn_8ED#=kfBdAKt=Z_DlD zuFwAF6`QBG71y78JDcD7^8Gc2wbfpk;XkJizKy({t*v~x>?<+Hzif@p+j9H3>$9s| ze%@AGf9~yUe(THk*BI7Tdu4|IoI3b6@^-ei^5L?VytF2M(9NN&2N4A{u;yDYOl=jpHm0lM&8cWRz6&I2h11GTch)~+&=F5>@_YwZ!4}p_jWeF z_2v6(3~Q^sGQ)pP9ef*kJ6l`%aM{7v=ySdS_b}@?zW}oXX31BKpEtzf=llcy#dq*4 zFu(hDO}x5)EdEfxSp0ygvG`Q%984F?!#T0|rI-sMv3Mh9_gTa{G!}2q`8idwc-g#I zeALKT{JBZ7cs1tB17q=K%=zW9_^Ul)@tZLtFmKI|#phyj=fvV4%qH)eSp2x^Sp4oW zvH07gao5M0FCEeuKU0@L0S6GjK>O zzPU^->w?F_&?jrzpdaak2Q~v9WkQX};Yz7GJ&> zX)$G(hxVjA)a@?HF@*EW`cPN$k8{1-XK;@B{m@u^0j3bs7t^(SEMC%$dWI+?=DGY> zyeHR69GRc%3=HcsLClVkB0_MqOFyNhG- zh1gvN$Ko}Eh>zI}bICN~V%``?8)2627mI(A7mMGIIR_KkITrt7r&#<#Of{x#0(HT> zGCmf+6*C313uYbdunKeF%vk)j8L{}Wh1>_sE>j7^-YbWD*f$p6enc#O_Hf!6vvluR zd`Ha1!{{fN71Vzd?)j+)P=Df`fw{MPEdE=}9Q?|#Upa{DV)n({$+h-ABo_aP^V?~M z(=Z)zzkD$Drv8^>mUDh2Cd|F>hdH-|d@vF90Zaw`>mJ(kHQHqy=A$s}fLS#$7VnPP z{m@waFXVY2?eKfd3hwdgnCCE6n3L%PrI>3lxwy~gUPm!MmeQ}VU&g)#^CA83AxtH0 zGahpYeqYiTJ5c9W>34&0-;Dh&eePMzhPanwU%dxvfVlm6 zKItconA|+_%jJAW%Dn?^hWT=P;_QkaW=s0=8p^ZbHuTG_=~tMttzz-NZ5oST*@1hH zeS&QITzmS>TbuCgVfttmk76k-mh3_~z|Ie&<}C(*~MdXo=jZI5|tW89b`>b?W^Wu5TH?7mqneo{yB zBJatVO}K6m?n+{CF+6s^2JzuHRgv- zYvU(kmVeKE!d%7qb(^e>U-tJ{ybtEGj%%qu?sYuFn2$DG8$TY?^_f`wwxwl;nRc6-Wma{IOMzR$(tH$F?8@5u98`q!pw zS8{e6-)#*|^^VDd3TG5yK+Bd+&DoNHk^y-z#7 zhY8lkzkHXneHDv$#(eZ8d1D@Wo@-)Gpd9y7hO&PUju}DuKcXy?u}`H8)vv|k`(ui6 z-%Z&r{x}xj26OXj>WXPk8!UJVY@yCWF#+**#4dW9HhqhJK$*_P9!s5H`;6<;hEeQ; zsq+X-U)o?7?ANJlBW54!-W9X>749V_7xUW7vH0U3;>Ikd47u2y|Hi$0ocw8*m#{Bf z8;c)-8IRc&b3rT?Uxb;18G$*8dprvB`3qnlW&`59ga0XM+`p#!us}6S|=Fi-h z6EJHr4`9xt?h7#e=~JCCh1}yIn9qp&JZ2L2{zcm0?k6ZGX4NYEFso?adQ6OVxEr&s z-P-sn%+a*np_tX&^W~VOm@>>l+NlV0Joh1txrlq-jJcD0Rfrvs_BHxSoIY|lX7Shf zW4crKA1K4Sl<7gtup}X}-PGeQ@_d;7i+%BZ_+ehUmpm|U-4Tob5i=CC>UP3t!_JR@ zMGsJ3%qq-c%td$7cQCs@NnhhSSKoshGm3ow&NY|c#`AbU)X{EM7@m$~l)bBQbY#jSkqeNHYM_3A3EK zeRM0=#Pr3ix`q5OZ{19L-9%k)#Lamp%#a(%dj;jiZx!bk6MiuEvG@(ath%0jFz0|D z+wyG9rfq+GpY-&HzL+Z?rA;y2u0;k~&if4VuJ&Z`OAyrsEbtsO1ks=|XbPHx1;N5# zQE)_XWUx3mDmXegCRh?28ypuLADj@J7@QQG94rk^2~G`83r;sQ;6XwAc7ubB+6@Ud zZZ|a8q}{NfL%Y3$P1_9*I<^}TY}RgM(5c-%!RGBo1zWTm9cs`vjwc(ZQHt-(YMoF4%%e=beMCf~|vXf-b?fOvTtf z*df?4*eTeV=^DEPy9T=jp`csPJ?Iha9`p?M2zmv*gFeBY!Cpb%ASWmY3WKS^v|xHr z6wC-_1_uQP2ZscQ2D5_M!JOc*ARNpMii47%G|+SmP1&dlBEjJS3qS`o%vQWQxF%R0 zTpL^$TpwIzYMg!;A4~{xgS=qBU}CU;kRKcn92iUrCI?fPGSV^FESOk0O(-ddn-O_|PhfnN~A4=cx_*&XW;3m~FPQhnk-5?rbt)dYhPsEc2qNZJm+O z1aV94)0vqtvq4fSGB~3(Y*2b(+zm5%)8biETxDo!cy*7 zi?CtI@@IMa(=iSxO@IDP$=G}?<%T)9O+IcZ?bS-mmQPH2q*n78((;O}#!Kxi*&iX> zT~fpCJuukbvU~%>uGRpYZl3+M8P9gERuCeszAdkr)|+U5TTY($w02E`ZEN8veV}DI zla18!;-;ppR=8z88PPx{{aVILcGi~H%c!i<>sigLZEO9lWxQ5;iOVmg=`u>4idCt- zAc+`Rnj{l7GV*nIzvcDQ(9SkUo7Xb!nh`7WE@lL06sKi5G9tLU*D_ub@_t@nTVPIF zcV~Y`eju+AflSj5O@Fpqgzude&VI(s=<5+QG%O72do~5L>P!2Ef>}(ATR0~u#e;cq zLEn&O$}N?<4!US`aOMZg~`7?!@WG2*}Db%Eh z>dg2xCC-!9=@YRXOT;)LB7?TIFlCeH@h)2Oy54f@rq z;8BxTQ=;h6MA6+D)v*P^?F*c!jw!m$Arab?2sPD7+?>HZcJbK#@feK|>NC2?4Tn5@gY^3b=s= zMcks|zM-Nr>NrsWaYP3d8FWOGsDrzRjtegRzo(Y2>Lv@geE)pkP|x$$x%b?2&pmgk z>Z(dX;d44|%^(e_FajpRTv!3?;2zixd*CDZ9-P$OOx?(Wdfy<@=`bGhzza*E8aBWt z*aExY1Na6U)QdyjHIrwHMU=x3xTz35GP)QW_-qdK;2EffIB>uRl#PNxaD~(B7yCRWw^l939z|5C;h@*xcBE@7M@8(dJgknx6Wa6#Py z@{kQKsGH9?!)h1<5t5%r9$Zj&G4_xRE{FgHwR33)JfL8EC3RpTxZtA-(%^(W<;({Z zdx;(Pmk~1*Ln73aB4GqJVXz&Wjj)2WLSM`HjG({8$i$l%bNYG0qI%yi^nVHLCO-z| zEU)+d6>bF&`Ohw^_ocv3XT9&w za4`%4ALY-(V#t6Jd<=$H;URc{c&>tC7z^|8Jr&M`-q04JZe^S)dl%M`A4k7S?`6(r z)cd9&(;*(h;M;qcYbdynV;u&-=jfk8w;U$IsSpkCF#>sDa~Q zCw+Mosv!r`AP$a!{EZwh@b`yVKd=RVcfpmg08$}J(%7tcj`aYeAO`+XTkpFT4*r#X z!dK7M`<{eZu#fU}&+FWQ6pl1+)-z>reN*3ml4-HDt>gj|Co&71Walfix)vk_fzn~mAEWYbuAQ@Y0dAJtiF;OJQV z_l!mGF><8&U$a)E4YQs-ZR&z$a7@AFl5fgJ^zIkAZr;K*6$}A4JixV*1N~=Pxt4<+ z@C=NnY{xdrVHCLG1N22m{SN&P+=ow&1+3ZG1lhwH>iC^OBbL90YT-=g&cT zel1`zm2`04jL9y=k3BwVYoaG4fP8etFc+#oRncl~Cla9nu}R$(FwqmLCRRahs9H_l zzBN|fm`;2(7l%Ix~X(bVR#6&P(R z-iPud-zhS&nQBQHZ|I9Su9#;x@=THHusHaY{dAIKWw`#ost zch9x0l@gjNZ%QwJ;kHAz(arR4mreP!>zj+o^kuhiEZt~8Hl>qA(HJfHmy_9MuuDms zv{b*bSVd>|XZkmNiu|Mew$v_7H@f}WdX23c(fK#ynDpoW7bZ?6W;=~_!Co$DbAIJq z)hPNW+4N7e+0%aK_TR6-bnL6G)R7?ni@01}*=cIs{$BdiXzvB+6`^>u_SdIh9_vtV zT;ou|au4I`hyNdak4ddV?J=O)MmLG4shI3BAFhqP5qtf{^!D<@@o%^PpGv>cwY5L= z_b0YiE#>|5Aai2QgGk$49JUX$zEQWSG5R%nf2T;;$MQ(@pG8^LpWW12wUoE415X1r zjFpM_Fn!tO;naP9k2P0ccW$Fv${)^L9k!34xl-DNq#1P;J*;YF=13osmpL?%`7r6l z`OU=gA@$A8^xKlov~POse|pCX@uwK2TFP4su|*_tz1wWwoJ;fAY8>)@bMkA)->hf%-B|j#5T$yI+n|Ew z9_HSUd0i^9w&nYKdw>5grC;t^Ez_fIZ|rWPTFU#!PsXx|F+6M^W_@G)%{cy3WRGsu zZOvGE$(m{*e>h`v*gk^Brlxjjm>Emo-kif)$REyqlj%eJncLy&OnZ^`pD*(m75PTj z>UO5x`|&O34`=*Z^6B?+$oNIdUrn^FZ%A9lulfApji2sA{F$5Sw%_51b9UzMqiNfeGy_fKSV#pA$Tq@|V~`Ue+sNk|QnxyEZ~iVETB2+G z<@N!xr<e_$JVRb|=ps5|I=8LLdp zUHp+n&^B8?=E~R`c`a?2G&Q%PZ*gm)A0wz}M;_6c`Ew|1?%kA@%00wou6v13(pB_r zVn5zFLC!VutBwAy6IuHR$T)?m8uAj08B{^DXbL=nT}}U$Nd- zup1wmmid*xTL;XcG53CJ@}?dCnTXOb3gulHL6*@y_%fH1zpf+I}X=aQ7ol!skIq{CcvPM+rTJ63FZ=NpT(7yZ zz}^Stw0X@&X<&O_BFHjuT^nmFV2x`P4rh(n*T*5P*c4({Y|ER;Y!U`R@yc;sV_)P| zoY%;2l(DtxHhlb^i`I)ZN zo0Uqf#a08`wb-6Du8lesD&WD(l}BX!3gxlaHPfY(?Ym4b%e*m6WnzEFGUXY1uUc~b zBkdj6a|V2Cq*D7h!D!?oIbn<>W{m>m#ilo)Z~qU=%TS@OBVR{8u|n_r6C+gUhv+^;=gD#?Px}xJU+WO1!N-g>ISonrmo_2l zm%EU#hBzyTGnP1CB*tpy^ul?7kLtEM)(9)rsY0nyl#imk6MlqSs8fip5Zx`*5mph$ zD)Peob_UFqmS*1O3%0pi!wE{bpS32GvIcH`qrjX5Lvy?NE)~ACXNbD3O~{f}wCP*Pc&${PjhX6L;Wnpf zsnm(xLkvi>ermcKNP4hk*IepE#w>>MEE*W1iq7OuPe=!{53&z(?{tp6Jf)6d-kzVy z->Au-2`7^tgS>>Y51=GVsrO)ex>ENthug=tfv##Fav$>V$iE}MKz@O|j`0;_d!$F} zfDn)4c-DwVay;KfUW5Ey#fF)XD_gR-TR-7#OO_Zj<99H;HZg{ZVKp&_Hj zgr?;niy#Dgj0qijF7jkJmUJKFwfOuA9>-^2m__a7W1JqX;Qj#ro%2J~ zW^_sD_Mw}BE)IDYdD*&=zLoSOp zym=}#4?j1w)sebu@xKce9i3{#=NmDqpMOH@yHa$oVh=rdIzT|btiLn zwpXdyv^|(uE@CVnCYIoBMkeb)pxz9logwX%5^l^gU=D9&ZXU%)H+=7)fA_F1Ix%M- zNg4W9=$}SE0Lsa~1K-iMleH(?0%L95fxbPq&tW$R7LtD-zJ*tb_XOIhC4B~ES0MMp z{q*HL%DnhHoxV&*w~4;|TqL`wLX=I4PHbYpWs|X?J2JzU@5t<6BRXwIrW2xUGCD1BMu+9X zxI&$V>EX-Y%#RCwGd~{sh7KdHVZ=3zxP}qeFyb0UTn)tabD=Zz=fWt6h8S>xUMA%Y z)B9l;2l0mNYotZ?3;ls{6sk4iJ5*2a3#L?R0%I*yFdxDSt|5e+f)2}d`i15c#6w@3 zM3>obaSnaY$&5E-U!ifEb3-aH_K_rD5RuCMlU`M->1>;X|$!wD5RuC zMlar-8J)J9x!uj&S~5CqK6U5gcRs#!8HJRz$mqp;M)phFGcq3f+GM}9EY{BO;X;Sy z!!HZ(IQ+5>9kUqEtd-#%vsQNKSe4~gLIuAO!lMTFoulXfg%sVuVFT2_VTr*1oH}ff zdO9mbEkiFnXYgliCI4@v=&B8NB8BbfMd#r9R`PckyoVJ2LAmITqg?V&XQisgvj#vS zB!jdooEo7s1PO(wZqpfp1ZY~Wr9cJ^TP1upUZKQnWl8ok%C*N0KEpf z0s%d&;k+iiF)t0$!EH+q)AFmz!?&#}@8IXNi^I2lc5w$kS5tm91aM>isb#B@@4P|L-8d{yX zrXe?-bUNt_(r(gj()~%Njm72~Y_7qEbUNt_(r(gj()}T`wxJAKjYLAL(MTapVGnMw zrCXh;@B#gUe>(hm+8qbusaH+g)ubnoUQ2o{@>=Az#Dh&bHtE=8V3UqbIyM>Dq+^qT z%`j|+jrThy(NH!F`{CFRn-HX@?r`c3qwa9(x~c2NzZ?7h*t_xX#-=|uZfyEvlXfog zTt__D(LU*P(ix{J{^4q z`gHW^=rho}(Yw+2NAE`OM&JMX4&KaKGxiQkGiy6|N80iu$&a?>N0U!e_yjlD(vC9~ z?LdF@E%`L-8Pcqqmo^cf>*&WiVkezWI)k*Ew3~E)(rM>na~(E}K|1Ml(ix=Pq}`;o zu?d(b?5nY_#y&`&jy?muJ4o+F-@kf*BhwrjHNcyx1~^9A@*~NQw&h2w0eNZX56DXg zH`vnNwC)4E>EP}zK22W(ytVg~6th6^Rin`#A8o>OR4GyTztR1k_nyUfT zBgtEHHK2NQ?EvP7y5I&|n(-dMTn%8ZTJ-6!XVmxCJ>s#MK>xrEX;#`x+Kb+c-WYEg zA9FLuT*k`W%yE}-GdFx*fPZjwwr zu#1PjHrX#^AJ+qGX=g3%tfif`w6m6W*3!;e+F46GYiVaK?d;>a!B4x6+xBVn3E9^! z0StMu_>70XHrX$PXKc%5><@6SCELak&a{mqq97V#zy+~sDVcE)4}H_bPV5hG?S6nm zkY{wuHA!A8%j(zRKvo=ZJ(Cr0OZO!$d6E4({IXJ2K`kio1m_=Kd6s&3}Co%jy@GW&uq^SGYQ<9ga6DlKog;53LvMyFlMy1A6~P|v*9 zGhcVok2{I0Eo)r3RU^K`tp$C-l-&E~M-Oe4?}R9u6kRODfXgOhhn~T_oxvQQ!5msr zbg>WvE}M)^+s*yl?&*C)cXKbdn|rt8IlhkPm^z+g>-d?`;DQ*44Sk1r-(h^;VVvJ# zjNf5=-(j5JVT`wNudW>Kyu%=#E`RDBePi}vx#{&vBzdk zN{c1VSmHd1^hu;o($bTWG2lwOkomfh`MZ#Lv}APJ<+O1*ZTTf_Tuxh;8}eMn<(aefHCe~FbSLx6*>k#W3U^8oi0Tu zX}xR@_YHdrCxO$DQAS#%)NQ{07~&X1+hb^3mo6hMQp%by|CHE1C7w@-=TrQAil0yE zLnr#si9U3q4`(y)XR{X0W*z8Kbdom9Vo6Vi7(=>@w8+@dS9p%`3diUx9HXA$F=-x- zKb@Gg?|6nFyqNA*!hti>z>=q@r>WD^)4>f^`Xyp|i5OlY21|-A7Gl6^GSGqJVhlYrkRP4XM1rA10vEKCM|voy)?mX;P78}ckMK1+v*z*{lYGV^ zpEZ|H|8ptJ#eXh#y6kJDMM_yTOaiANql~mjDH9))A;yp{BP}vEG^8L7;-PQoGRANj z8-6vv!8bD2H!}V=GWNQRGSVWYEEXn1j3He{T4ZcU13nvQuYvY-$-TOk z7U@=>myLMt^E*bo_jy?sG7C8hISQFZSvrV~EzSM?=iJ|a-pu{|=ecPv=t;fU&s&|@ zi*y|6-lXG^eUN=W&rQcB9h-D)GO$UQ}0t{eYu?E7Qy#=jez{@A#&>5olX0`c@Co)c-GbUNt_(!)p(BR!n7 zo3xvB{}U4&na`PRCU`U7OK^;|6hsY0;tv-@)7m59U5NAkBR+ zF#>vr?o<5veH(rUdq>)Iy6?f>(Uy*TU;Kj`Y-#R;@el4ESzc>xWi8EoFUxDKt*oUZ z$y;kHYw2k6X)25H%VPWj(u_eCXTYe<@QMUZ( z6SBD1%;LT?i~G)iH20mv2#SsSeJ!{>$g2RGQ#+;`$1+%bE& z-z?(3v&gvbwCA7ZI$W5*-%GafyRj`l9{PqR@cWR!?@I!|2?_ibB=Gx^!1;dy*U#T^ zt@T}D6huP|xIizH@(Em5PvGw*6S&6KWnUvLvR~*#{x&AW<-7ezza=l*`1x)>W?tme zg?TVt)n?{L)Mm3colV++d~G z7rNDYoZ%yAG%D}(i!M7(CLzA9;9V!?41ew z`w}hv-Bf(&@77fCZVi7NwQXCwR;XXNFBQ3!vWmnOaoKlm8`X<{vM~_8 zU8YWIw_Kg1zwc6^u1Tm+%T`r*j$N)2%MPlxW|t0mcZI)8n(wZBTB%;J^Fx_>!H)gC z6-nFQTamQ&&Wb*UPmHJt^)PnwK8gk(HSqDbR9^-%!-0;mmG@Kxs;rr*^!HSVN#0Yr zkh=1&ipGozRgJ!SIC8iHU4=Os`O#82?Vgki#74Diljqdv8VFUAcw&w^08U z>fb{BTd2Q^a(O>RgK^j1S79Dxo1f`Gucsxy##y0pKl3ffyDLuSQr=xT-Vw57K7DNN zy%q5xTbDwI>N3v}@czozQI$dOu2ib8vHKdkR#_D)4CK9)U+z%h^4>}-+SA@!$qagT zC0}nte{ZFdcUP#}o%bVz1oQos3RT0}FyBjQHBu!(a;uqY;1|PG5+r}ITn+kSx*GV_ zaFqnfZ(XJay){D(JhFFHDtK3=f_GIa)XTi@C0t~19dQYd^zfg?c^{?1|4z!G@1Int zr5sE4cTbM!eUf{4_k;Oq?0u5o?OhW7*4)&4B=0SotKM5SPn99dkd3`J@)gIPopxUJ zf*t!iBa*hiGa~6j-Wy@fo9~TS?~7FMzDPyrFxEZqfP@ONVjLVh4vrlM#|-a3?TZe80pW`|xYN%P6+8neP*7=V8vp+Buau zG&ebi%6U>h7wTFq&0Lz>n(dc{z$y0=JDei=Gl}8rzb%URI!meBC_nL~MG-Yd+1WQ} z{{&ZUxL&2&-(kCs^5eEG>bR7C%e!RqE|azni9uUe#G$PrSx1n;xWXx##75p98a#~m zgoc}uS<-wTNZ$E59h*%-HY-~zbst;>1+WgP;8vIe<**#4!$PBand2 z0}zMZrPxGb^H;c%^Z?`&u!{7F$j2aqx^F@@b?e{)>i!eXrT&T7ZHF1y{TmixcPuum z(It`pGmJpD2XfKB4;NDRT{xfmCtWHqVLJBzf~nZo!({3V#BL|d z!R`lGhFvFYu7q~jtN;gg7hv-ZT#wE1*gOa)WAixl$7Un+#cl~UPHb+3p4e=HA=vyC zPQm6WNXD)Wc6Y;{uzLk2VD}-EVD}XiVfPuFfz3xSADh;cuYuz!zX7^XUJViWn}JO@ zHqme&q+quL&cW^GP<=e^aJLqk9J1+tBwx{})K3Y&-mk@)sZ#n+R;K1G$TO6Q*MK zIV{BP2bhc9Hz0p)+Xa_lb1daILvPCOgySi%0Vn>-u=ySyp?ol9&%hwco`jPqC#yEV zsrdODoP%9G%%b3P$j9y@I1QT*pc0!9%CCg(l&^(Ol&^+x{N-X3hRvVRC!yN}ZuGL< z2B%Q=BAiA2ccB2gk0B4c4?s>xbx?-Q&#)4kE|jleQ@)L| zeNlRc7%!AdEr=AO660fX7SyQqOWlhOClr<&m zun%^%AnWi$D8cS$2%i6O*vK)^()@E7pdABpo>@sc9x2Dda?-t!cf(-(zXaonWfz=H zEPsbA;*s;u7PtsI`*Cpvx&(9&f~<2nu4JvtaV6_rj;r&iUjkmJgsZ9J#$L|BXJG$# zn1ub?Fai5FL5>qSXUREF&cUC<#n`pRM&|QpkU9Nc{A2SO$lP|qM&>txa+%|vl*>Fv z<4?}P5!hS}U9hORh{sOOKX<^%*gXfC*u4eQu=^0Qv8w|)7V4m-^J6YH zvPR|ne+%@(m#ozce93zC;7iu*X|(Oab|Z|#ZZ8yI_iu;;S*K@UzZFi!Ue@c$)RFVg zeIV=Iey$iJW$5JGCFddY$Nog?0)D)IayT$ z$@qB|GO&9SrczK3ld*dT$nV&{VG%aRQoa)Gzsqu7P?SH2zBl#m0T=Dab~Btr z+0)R}HGur~?SUEC*nj_*;V%SVRqzwYZ{JU_4mChPQS(yKwX!tzX8O6{o0*>BY$D#RFwGNX?$(ot4W64$G7`zkF7XzE7GnyXay) znao#0r_uEE;)+>Cb0vZ~#btz=tMZC*fLrbJiF`t_R85^$mM6PuvYVBwa`@z8&dg%3 z%Asb?+(MO`M=$eeKewoK+FbE6FgZsTxu(oF@|C(YvXv??XNJlnz=~OOxHsUdjd?kI zr4(7f*Gem9@lD3*WnNv06lH$FY%ia8oGRqVjwZFek;&6@`66VOn_MJ&n59*kRUn3? zIpU;LOG*t1T-$4!X?z1!%ZYHYw)Txr@*V29{iV1pGMHKM?HO7ftIENe4bL3 zO)cXVIfq2fbP_BozJlqUHakz1L=%h-a@XVA;z~Y-Is!drcz?Sj$OO7O?Cz zdv+Bpjml!o=5j{T_YxmD?B+^`+3A{m#SqEli%4b9)R)U@E6f>k%20gk9Lb&krb6p6$AEDHQ|-Cj4A?S z!&W!ddQ~oaDc5?%K1Y&}8jyCG$w;&ftv7o|7vfX}kQ{n!tpQ$jWZI z>@dhFLzg?Pgq_sVD&-bQiqFKd!z8z89y@*mWG5w@xhiriytK-mlOB6*H%r^o5(=@d zV7*ny@K)rNljqB|?B=4IK8w23XVJj)*;;b8q-E^c(|=V_l$RtsehiB8_%SHT8zei< zpqgN5lEWJxgPu*R@=fT9Sp~DTbO8a#ks~|$#u20KBsr%---`vuQ3dm-?POnpa<*2F zJym9Fg?v<3Rq#<=KF7}fODmzq|bjKv5ct!q-V*46CG(Heyay-Y@}l-6aYOQ+?^M2R3K&cUo95d#@d zL<)mhs*iRlKSKEA3o%}u6%pckzen70XodA z_q8eHyS=aqcEA{P*T635TEur>LB4BzEp(pEcVZ!eZzNw09r!+SDeQ(*OZb*7gzzok z39uQ$%k=LD??R?}`Ti;RU|c!hNrm#eBOMzJ}@Z>V0p) zsQG*o6?!fp9{3j4Eu`&B_{J7oaw+|*;ybdCw}`$iuJ_#yBlv#r+fcN$-goRWz9$Qw z<$PZkmR!bneOJ``K7{L5*87I9;v3X(@8x_;^$KFVl5e-d1y}KHS$N=TzV)@b-uE-y zvZmhmC3vo3{9qTvT+8=W;a2zuq*T}YE`vP~u@;}O0b22W-(heGY=`cA^S2OQf&{+# zI}hH1PJH`!Cforbe1CSde1jJL39)<^w*YQ|-Ozz=@8-jE5XE?t^dO z^jqtFH^ZB7LJe~Se+SoX^}b8tN$7GrZNVn!!8dys!^hBb1K%ryJ8aVG^%;5=W&$o5Q!#!{ShTq3}fUn?;`}tNa{1Z;$Tep|M+tBkt)(32X zUJnri)I$p2xV;?eVCF`?BMj+}u*Tt}NBJf(ybL2A9ed?IPI?-lkh(DsO1=gE8!t{A9~R558vaMuA@zO8oJl>onLqk zet?1WYdpM1zf)i2cz{=-&34uq?10HH(Jn0b8^`y{eCHY-g6|=12j4}9-4Oc<-!+Cu z;2SvQRoaCO@D>dIJ7WT$z-c?{eJkNZnD!d=VcP4gH%NS=-d73FLhD`izH{Mj_#O)1 zBobeC(49D-O_dN)qZ!y-sT(Ga1Z0#m%hA1-y!&% zYR}6vo7TXewpCk@=b7!GJsbn_O!-*o03AV|Ep>v*pcqP^6w1I0KJR`aR*29f(6Wk29z^zaNx54dj2c$y=41?h?0x}^B zM#3l<4QIjGFb2+nu`mwC!vr`N&Vz|?K1_lOU@}aB3*jQjhN+MPxscDi@FzP}2=ctC z2xh@-kmq^DPy(eO&#}C~pXimmaUsvu=K`;0sCh6S7QjNd1msz46)b|qumqOEGLUD| zm%%-7FWd+B!vpXj$lqEXhK=wDJPMD2{N3hpcmke;&G2V<3Z8~%;4knj{1s~9Id~pk zfGw~Uwm};J7^EbKsX!=9iSsbKqu%7$3Y}?fv(UEoX{Pjpa(?5@el(i zfD3v;EcAjn=ne7E2Sz|9WWh)n1*73CI2*>mIWQK+!FZSe=fZg~5zdE6Z~;t)DR3cN z1lceZav&G-U>Zz^8L$FY!Ya5Nu7E4yD!3X}!y32-u7zq?3)jK*unum3^>8EH1UJJi za4XcnZE!o>0UO{>xC`!vzK{U@;6!jke;5EKK_VnUG7N-4a5AL8DUb?-;Z!&chQOcT zbT|V%Fci|@Oh|_e7zV>djv1ROJ8t%dj~P2Kc`7$oWVz|nviiQPSeLnTX3gR`tyWT2 ztUXdCoifO%#4Vzh)y-1|8Rp(xO>35E)ucskR?^wjIc(bQqRIkq{zdZGBk`hw*%#?H z7ZuG3DokpwFuA$Hfq{i|AJgW8qaQokh!w(>?i1k?{KHv+KL59-_z zx8HbuTLXdPZU$g82#iqgf0MbuQ2k!L zdlkvwAb8%xGrCII@hDSL?B=Qgy~}&&vd>k$bLV;yZddOz7yAp;fTWZhw@VF3F4OjT zvLBSM?KMrRmQK}dl1fCMBsRTz4@jNPzE@&WinNRtA3~Yb2V^QzbKfgbZ$Oh&7b%Ts zl4e9oLz<*1krGg^!~v4hYDj93U#GiGHOx56=>9nS=tiQ^Jc>r5@0F^i^yH~Zy8<3g z$^+N}-jCDvxwB@w;zHf7IA5y}<Ws~b4H|;pH0tr}1{OLAusI*uE76DK38!@qtFxFG4-9(n5<|S~z2kA$z40t}n z!F-tqv|Z(Er4{p+YVBB;B96~sYf~lGr0v$66@slzl~|LuTjv~VZK}kYG}ioSLMG5U zqPbQwbk>o^sy1}iELe8dm|J$%AX_?Xkyv%Dk+$rtBiFLC;$ub*i7(YuS>ah`R(O6h zD>}c*3eKu&1?M-jV$;n^0|zfj0?~BV;AwR=ofVy>v!c_+U9+>o)5cxXS@BtRR(w{w zR)GFFv&N27{UKw=Z^$8YYuQ=hS$4MY{B>>N`P;C%gU{E7I{2){UjwyywK^}3bzM;Bb*0sN zEm~b^bzeqZ*IC_{+0k`Y_bofC`&P?V_qDo#i(4C!WYJl%SUM{dJwCCsLa}sKC{|r7 z6wA&E#j*>W34e%zGokfRS`VBF%X8pVNaqIzO~pXJ&YB8s4eN$h_iajB|1Fo+0LWQO zuWbzgf8jEf)(BW_TO*)V4x9|_@EI658J5lpMvpLXGAx}Hi&fVO#j>+PvFrjT!yjVc zWawQybT%y4fwLjK9~9VA?MFbtZ$te$GiM6UKdZL)P3N zO=qnPy|SjXBD5*35VbX^SGQu6^{VTv7;T1DkXGAPkXmIKufW;xtAl1kW=R{Oz+=Pe ze&B3Ki?fUMyAm$6E{JP2#k~Hp&RbOGO$y^KhHDDBPf3=LtSB+zsyN{4wkVG(#?6oB zmn%BMK)+DNpv=5!F`BlS1U4CJ%Mx;_egS@geq%KyK%?cfmhHu+Vv6NRZr+TJ1P+QE zw59s(lHG-0;~%2Hu}{UDcD!06$FXFz5I7yozF}*vC+)Z^EjzSlmP#5fw<43Q)}Xci zw4;vK9L(;@WvVtHmP&VG8t6HHqq?m=EB3w{6NSp(sI|Unw9Lz^PIjMO{i@rjz#CIm zVNu>8SzA>p4eYVjMeE4X#t9o+9b*^*XHiZxnECr6T?>p#b8H=b+Sru`Mp_=wjmFMf zjm?L3TxbiRu~S=lP$wHZtzi?;N&5&F;e1=A`M%h5y|G967(@-!o;8MDx6rGk4pxpUGU z*l?E7Qi>OzbhSL1(X^>Kx>C+DJY11-Ey)=wRPiEIP%E|-NI?Fa-l#E7)?#3s{Et0a z;VtMUQtPBO%~~flUEl=pma#nZIkY#LLs82!D|*vbZ$dQwyLZ2hJi`jK@!!4s-P=c{ zxO6(V;l7Zra#qzIJx$@oW4lhvm)ne{sM#~jhZAyo*ZLB)LQ=%W7-LL=&hAqKpA5;{ zjK&1W14Vr$#f6%#1J{kVD77X74`Eq4hx|I(pLDTgivp(kkY{Da(-Z5ItWA}6M;!3` zZrE9;W6Lh+;L++@CqFHAO&7H0HC@1hGTI1QHkzFkpZ3$B>8$wVS42};;aO%@cz!c0 zI={*a&Z=nz=Qp!rv&^j6w6j@IY}zp&6r5#e1!vh=(OEhxJnDLjathj2Of8zm+iZH$ zO!3zqGs#PoMMY&v$N3-9))3v7Z7Pz_7L3wbae(qRz9 zK_ocf8{Vz@0CvF^*aRCO54`w4Z(qIdESUT+-bq5Xg&#?O3Gc%{;AQwLJO+2e10UfN zz5&O_v;}c62-0CZA`=zalQ91D}0E-=GM_!)N%|1>^CV4j*8%3%sQBU@3g_C2hivFOU!o8$QQBY$CSE zkOp5Bc0YYbUAXCc>cc3AgU>$2&ky*6bch3K&w>1a@-49RN6H}`;=lnP9Hb03z*5MA zbch27d_eszumLvFZZ&veJh^QzV+z)z~E2n zeGen&{#5Tf5#A-e1!iG04hF*s&>BAdnRgB0Nw^tKgbT1eNNhK^Yw+#C*JrI7d@sX& zuoCiNI1Gf&@KtDoZzntqSHUb81t&ma>jqzIc-uiaEQRx702~V&DZ3hG!&&ePyaorD zk6myjTm)GV4PP(@wQvpOK?-yw&Z@Tffb-$hum;~+WICJ#KelP`{R>`$JD?nfLwER; zw${NC_=t6SuziE?E!Yg#Lj_ELL2v>b18>vby>K}UKBmFf117;N^8Mj`+Mg3a-3|@D zsW1vo0SCNxY=iF>xD1M+AAA?y;M)Rg;6gYNzQ^BIxCSl)H$=34-*-&s24CG%4Zat) zH~3sH5)b(Yk?Wpq@XhWvM)uOHF#DVud!_2)o)d)>oLU$IH| z;d;EmckL5K`bo?0X^&ayx3*a6ru!8+a#{F}R+!2Tl3; zz4TS<{`fY2uUL=z`E_&k26NnHeS@#09@QNkqoZr!=o&b>29B%i=g)j_Iw-#CTms^wH&hL+YNZ z_Sa>^0A21kMeGg_CPOkKLNbg4$_vd)m6G^6}XqdeUx zH)L&wp063E%c|kJ%pRf3Qjabt4%MYPUzc@;teT+bv(MF~=R94yChD^4ETjBvqkN1} zevU5HSY6f`vUZ%FuNkjP=W4y*YK<=I3|V`Pp0Bx9msQoe%wDTY&vm+d{sdj#o6M1HEexPp8qy}H?1%W!LQ-tn`ApPo|+~@ZSv~|Wc_;SGB z&I9CA;{$br`ZV}10lS@~x1*bwaHxJ_zXsn2CmyP=b8}zb|4_Xb-Lnuj08WBL?&*_w zZUI@z4ZdnvJ+Q%d#h?b?ZrF1&_xmY4A2@~k)YJxFA#8$;gByGY;oDO=kDdlY8hoo@ z7X-)NTt4Pc4Zg9bA6cE|{2ggo)ft@gJ-@B}YUT>mIx_r2ek#DQZh+p(M+i%F7K0Uut8FnGMEDqJ>m{z(>bm%f- zzfs?iJHImOAJFCMuXS1cjV{OhTbGI7>N4UxUG6vJ&hPd7#vgRK`k*e0f7IoepLCh{ zvo8C7smqPAdOZ7Gy4=}Qm&M2Ha!iaa6Hm}(gke|Q)hO>~lsk>`?z-G>$emGoeq#?^ zu8!7aahNX0w9{o`dtF8xqs#q<+!?OtHy*3Y)g5$M+)r=S&%?4l0 z?grmqz^vP0kClGVmLBz%rT^5HHtUI8^)}bq?^t%CbM57Crtb#oZhx=A_Zishrqpr2 zRv)O_-oW3P-w)JHCVy9uZa?``KM1s2O8(U#o%2KPC*c9u_%GN;`Xlbg;QNoczy5^3 zbHj>H8+@-r^k)se>7WV&ecR)1D*cmDXXQ-Bcox^6vvnUoB5TVUe7AcopS3IboBHKe zej{y)-))~;x~AIsHToxy|6~0AnpplD>g2~X_#Th=&l&U4SN`Y3@<+`7imSL^zgq9( zeBPZ{!SAR1cHRY&-eO2eKV?fx{wPPs;J;}N+{F67Mveiv1iVlP*>En5f;32l0T2gK z5CJ}pmo~^tkuhA8MnZc~@Gbh!paJ$kGP=I-D(O?P?*b3-_ndo?tK=O!Ltca|B!4ru zB88r$CqW%`B|q1YXCS40)9w}Ow&!mv2l>0mCvYn1evk!klfMhDgSjvXhCmD`Xy9)u zTi`CZ9ExEAoC^IR3LnqHqi`3jhpS*QTnxo911^LKFbd8DiQyOg{|)&$fA852cfciZ z4e!{UZ^%K&gZ%v`fxr0-1WBJ@NJ)3Gr6qrqqhs*jv<8l0{fEGJ{B87ecpu(^zr$8| z8XkeW;byoNR>GxF4zpnfWW)I|7Dhrk{0UOvB)Ay|9Gzg)kT*p%w3?JD@d$LK|ocjs3rBsI@JGz1W&{b?tw~ zUShM;j!Y+LN5Gu~f^H|!>2`El%4KUu$Hhh~V*tAAYVH4ilmFi=I3FSd)W{ZW7o3-R z(zY~fwjbPfBW?p!^8cyH))NM6DLvhkUh6A;k~WR*s-f-pf7L)X@grMfQtAe8?eJy# zl<${xk_8jAHKiA`5C*h4f?WNoti&g4RQfAY##)moG|7BxlAR`56Plzin*0x_FR?eZ zMx=kul}jIf3oZG_y|&5!d1yysYL?$H_tK7RM=E>j)wK29(lH{YA(=Yu_)jI<9ivw^ z`{bVw8Qey;#_XEXnZ8Una{dupQ?KQN$BS~Yk#nzL+WPbOkhIyRUvHf2{P`oaGwZb^ zX}a0XJnow{I$HRm#MOp7#+ z1?{*oj$yOhEHizX$C~8LGSQjomhAp0znzNsJ)H#{uX5eu&l8)LZlT;fH=6Mujx^7A zW}i&ij{i)y-Idmu`13MOQr1FwV{QA}3YworZBa@r=A6j<{BPO(V`!Xrn~ME#?BxFq zmaQqNmmb|89f6}G(A)@c$*kS$`X&EKxI+lm-;3@g_}D=5klrywrE@ZpvhS_ zo&Q)qJ+qm#y)JDH+swtWmggSwaP6cmbCdB6M#@BIZjF_jWi3gGU(oK| z<#$Pbzva2d8Zdv;>4TQ155aAj`Ig$Tm-jR>BDHq$+uS{vy{@FqXAP#_%!`yQBxtR) zW5ODH-lJRpF?(~343&5cByHxKipjr5WF5&GlJ#R>J3)H?yvdx&e92s4-<1CM=xtNJ zo6?*8_e*2V`SZs31jlBUH>Wpk>{7-}Hf{W541@A!SySv_J6u27+LUvgoa^KqCu>piGRBg(uhqk_llzij zwDXY}ubhkIoFwNW>A&P@OUoPUJUI5|@-hY?7}(MLqX>T9YR-w)FX>AQ{W(&5i9!0I zNwc3KrJvGY>8IqSpN5@TN7I{ini!kr#v!=O^n19m9LYF}Pm`fRX?y-iY)sq3m5s$K zb!F}~$xf4uy(SrZO)~bHw@#Y$KPjz7yhDPMHBgz=!KTHrtJLZGfuR@*Er3U{hz!K$>dlR z7)(3CV{4W*r#Efv(m$R-zp+i}f3NHNru+xTFZrfy|LALbbKJG|Tex;L?_cd>E9s`L zLB!|b+S=`g;?vAa+MYM{A{+Cs>HmQ1$Hv-fs^5fm*qb))axc}$+BEwj=g{DCDQgZh zfT1LsqbVO|f1B!KQ}s-}+5X|k=HipG=Eg{iuaU89DsI0o0u3J1rebZbPIF~V`8yo_ za^7b!w@XQ{hEkhO%Ho~S*U>ZH8Rm(1hG)k+BdX$^ku~v7XKlPQy6*J8ju7FKSe+BP zhPk4WB4bbJ8sUjba;8NkshktKMrUvCs;V}34XfGQHQcp1-a$U1c5~NA&*rX9($RHU z_>lHQngr)hNN^~qf*PoWx<0-1dLm7vo|)Ft7&suywovIc;of_TnaXQ~? z?c-8c!)87rdi%+0@$Dx^H_R#ISnTI$BP1K7#ydjnd_dk#WIvah%p7Yl-;g>_+(GRE#zffUR8^ohF}BcilQXOaJe!>1F38^GjHrdGP0mOU)NFD(v!QkqeG{r9 zRaJGIBcwVqtfo3L+*KVJQCl4u>8Xx%W>-f>*PV<1bMbvHe$U0{x%fL5U+3cITE{Ufg7j^qKZDfXI<3$NW$1)D z(t?{0(%x_m-|B^drApn(@qYy}rJL#r*(u$^kYTQrZsEvqPfE84WCZ1r$Vl`~q?3F! zGCEt<@#(BDQ$EjnkhI8vH0$Mg=6wV0eMOn@31jdHeH8mhV$)z9M6w1VnfKm|p9W*t zn=$Oo_<6C@z|M=E7rO@-M-9gE0mkwH#xWkdCprH-$@%BWc!vkFpXB@_`grQbQ#YQv z?-TnC=mbd@5|_aubs=lokhO)ZXQ-Qxy}=^nqWSook55C^&c`>@Jw|K>i;#;R zBgV&w(U7%|5i8U!#)k%e79SU0yO_FLvDcu^R%dwaR_s2Bk5iw-J9^&MD^A_U`ZJ}e zKZW@hj%Vx|g|R%Iu{@r!{1Tf+!RAYBzQpDOZ0v0567Jd3C9*24Q+Q2Sr^wnFls5`K zX5eE6K780T3N}7$d@`@tGzvCeY`oaCO>p#Vl-)>XYOrx>HmsFy9LquUByXqra{APbK6Rr{Ha~iOe_2=!HZIMkd!(lyZEAE6 ztLcZnAG$2ozwixZKGxe09BV&tto^{T2H8JwtciXCzumqrVG!=}b&2$(aXh7QJf-z< zcpy8C<4Js6f!#Ow{|5ix;6I*Y@jL48$M1gp?#C}=@5is`M`8aRe!s)-clZs%Zy0{V z@C(^t_!S=)Vi%8(czncD_uwLjLnA5d_Jc{`u?PJ!GVNeeWZKjf4u?i+*zHqO!(*rV zC1t6RY4bP_Lr-XH$iQ^>zLM`buX|YAdELVyvh8!6uZ5S1Tj;?#JAkOLnjTT%t{#3F z>FE&_=`rnJrk^jYo=0w;|d%|n9C#=L)1KX9@u9V+Y z)~^QVmj$e`1+1@Fe)ol_ScA@Co~X{@*-@P%YwnA4^wfw9^V}C1o_${=$0WytMpur( zt{j71BWnuLX`m}aSBNfwYXl9h5fZpQNZ^{FAMI#xebFx}Ji8y)7o*W>pc{>DG`fd~ zU4z&kBKC)feGRc|5c?WpUqkG>IrcO-c6M`I?dG_8kTKBc99HvS=Wy49og+O3d~CgT zBHxVXg{nEJ?l5RKCp8h7m@p@`FS2juoYXf%BsB0Ymumodm}^2Nw1@>+e5Q9s?NPhP8^Vbn)z^@keu$!qn8suDib zUUK&cRq`bA#dKBj59B`NcgVJ*RY|uHRnq4iRdNb)IQjFCGcr|4CGxU!jP}PH?N2n? zC$F`CzR^BXYkz{#K6$Nu@>=}#dn5g=CGMTbI`Ue5;*Fr6E~HkUevcuaOi$l~B`mINCI( zPh47^4vs|PHEGOlU7yD5Uq}1kxQ_PyG@@HbJK$JIJAN9`y_w)>^XAIxba1?xP#t2@ zRQpG&A4QyhB8Hoh!cx-0JG52DcnR6)ze5V=P-dp@L@!){PWXU2W|_$Im}j8^n;De1 zXZ{7b-oKyUBw;t#+rmhGvxFa$)Z!ocP1cEc{>LOCGEK*s^J9__-H^k5aSp%DIuXz3 zqzaK~I?kM&R3WOvB zc12%D_&>Xas( zY3{*xoD$Z0$0-pI3C`9#xF_2k;jFr{%erHCN382`Wfy1N9^&6ad|#d1rp;F;Ul(H1 zG3C0D7@qfZ=Xp;I&wIM_yr(L$kFm@eTp$8?FTy(uExb5lfQ_A!h{6wfN6xG#%3E}}My`?{#( zoY_&#!wV_S&=*o}N_!zCZ1D>zw38C~{0k`&4R3UHsyDjc{B z*ND0y+{;51)IcrNJwTfYw3$Gg576cVw3$Ggk9Trr*K#df%eC<1ox)v@cZ&4Xc6Vl{ za@`|*$U4*D82S*la_j`rle`_XT-UL-wz9Ui(l4ZIE9(n9iCl}@d3UkHu@67*E^|0G zE_YBEnU^L(vUkjE3NA2xBw^KSLO!A&k*q=wBuMtE7K_i3lej zsVciTT^?fgu+BUjCmybCJscw*ju8*XhKIEm#~fxbuNll~9CI7Tyk;<`kMX?hF|Oqv z>l{)07}s)-b#`Vy#`CiEOC65&gVf^ngTiiKKPWtQ{h)~F*AI$JTR+H|vwl!?LwDNC zWc_DypOD!tqBfKJgUoKu>`d1Gwag1tK@HSG-NEjv>LB+c2fIhq9%K#4=|>`00qBj`-<_pK17kDyV^4sB?2ny1D;wca5lZbN}Jy`KOy>bOCGgZPunv zXuvXt@t$vT)#*@Qu*NJ?7mgq2*lnCb};|vojE7j@O|FWuAl2_m(ghn!wmB(Zts* zVQjWBHir0l+ZdZ&tjD`J2b#e7vy1a*7i;q_&YfMX&AaGp2inpE+R;JNzNQ0h=|Ecy zUFLP5Et#AHnY5<~oD-Rx6PcV7nVb`uoD-Rx6IrbBHp!eHS)3nPoFB=YAIY2_S)3os zv9T$|W;r&?u_?u-6r1JP{KWdv1U`rRiRY-Fc#it1OZ%Fic$WI9OP6^+ah!+KwkFWt z;lkgfJF17%?%}lC(7t9k?H^A24PE99rys-Vhmb})ZFSX)-H zwyff_j8&{Jt5{!FvA(QgeNn8%%B8B5%W<=Ewdtu`?VnMu_*CWU;!&<{`yS^!k1&rT z%;CqG!;dp}Bb?Xssdqm0&Zpk_)H|Pg=Tq-|>YY!$cT(@2)O#oO-buZ8QtzGAdnfhY zNxki;w;lDiquzGZ+m3qMQExlyZAZOJsrO)fo9ct{@ij}ScPaHAjPJ5%9oMk+T*KD0 zey-yhwvKDqde+e-p4XCio=)0;x-O5toO-IWt@6{Y^60w!468g+m!D#lN7v=i zb$Qyo0Y5wsoA#sY^7wC0J9+LjMYMeap@i)@yns(HSv?t$d_t~%v3Rn7BVwHux1yXte%Q({#06>Hj8 zpMl)CrbD$GS-a+l>N4cFYYwl)Z!OQGwfL>&d9)V4wLFj3;v^iA2hc#R0u}HGfYMYRhiMjQJuj$m(ihpO$KXS2J2r2&oT44hkJ?potL=Rna{n;eC}CZ z;@)mQ&msGH4%yFh$bOzf_VXOFpXZRZtfw7W$2+o)uVp=5%X-?8b==8y$H{fa$#uuc zb;rqd$H{ePE6*WYc@EjibI4YnL$>l9vX$qMcX$qYhv$%Ycn*1|Q=95{I>pz#!*fVF z_li&n)ldU_9-z)a)H#ScAE3?$sB;i?K0zP0u!e784S#~ZJwd;=u!eummz#bR(_Ac)2UEJHdxVLw4Z|~yXehJ5W zFUQ*u|IA*F`x1`3A>OluqP!!`$0nK;7Vk z5isuu?lF79M;x;oIA(_Unj1KFA93sq@$)|77~a4!^e~nlj#CpDTMy&!VSGJ|uZQvV zFuvK`D`Yd4P2j#EoBM`r?i;eXZ^-7pA)EV#9PZC-hOK;ek zZ!uTiVjXG%bLTDAoVS=iZ!v$~V*b3v{F%djUnTc_4RGIA$$j4(j=>!6`zpEbyMnoU z1@kqT@l0m?k{P>X#x9w$OJ?l6^vg@Xy!69MKfJWxOZ&aF+e@3*vevF;eywGGt>r#z zEpu!wb8IbhY%O!_Vf;Ug|5n^@wc>uO757`MxZi5U{Z=dPw_0(()r$MA%^df$IPPb0 zyf<^aH*=iN;y9O5e<}5sQhzD+mr{Qz^_NnADfMrp{*BbXk@`1M|3>QHNc|hBeTY zhr=<@50c?@7zUp z_4sPuD*@ij| zn=aTq1-aP7VRH{;Ve>Pr!tNUE7Gn1r@=hclv#1|nCHALd`vF{x?Lcf_ho0EAz-|v* zh+P79wGhFsD|R*D!)^|CDcE$w=2bb+eB>NgyXP_!|nsP6uUv#?SMtt9gE#&D8$Z#-AHVl*lYnmHu5gVLof>)*}QWd z+(h(T>~Riw*ldEi*u-M99&X0&eC*yqK7gEo?eB04_8HiI30Go&61MNcK~_P$*ydo@47*!l9CqKp z)z}Wh?tO4!cO-V-z_r+(irrqg0K5L!ZHF*+#n|!jl}f9YcYlGcJn2OzRP>t|cap?2o|y5g=K8 z08e1=#m+&(-7p!upWsGpQ?MI`O?Pa5hSk`mWAiCohD{PSJK-$sBG}Eq=04;yv4wQ( zKZVP%Pr`mDoP~W)?6-j2-~IsGu`S208+K1a9(IRew*jVLC-=OG*tEgsewdEULAV*a z(b#+eS73Juc174dhpfZyB5Vd=^BR<6(+!)ap)L7e!;9FKU>A?wqc8`%=Gfg1;jm`E0E*INBoM9xAi!FkK7M3pMC^>Mx}m+U*K2x4Gw@@ zTYraokQc0)K@2qiA24SB*ZVJr$dh>sM{ELcx`6?`-Uj>aQ&i5(^ zDsRviQr^O1uZ|T-G@`sxAmsNHDtB(6RC)XX<@FX7D{oOjp#&5w3I!<_@Fuyu6-FY0 z#*cOp6d#lhsyw$Rm%y9v(_u*E;jGkzBzcQ`WfDp@p=1~Nb=ZMnPFp! zurx8%wN_|TQzun2XoV6iP(_jALRHH6aMZQXp(+jJ6-f{-QUMNI0Y@{y7>f+LJ#LJ( z(4hpmCMB0sL*{AFo$L0OipaG^#As5GL>-nJrCbF))D~n8<*8tS%#vV%9MGT~L^;`H zh%Z7fexDkt%X)32oUHI4jU7Fyu1yluil9VS|c?K)b5al^Zc}`ZI#6iIKrim^fJCXcE3=+vs z917UD$aj(NBHu;6i+mRzT-dm0;(&Zx&jw=R9Qfk1yor;l?7B;K$QhlSwNKqR9Qfk1yor^ z*)qzOQMQb-Wt1(WY#C+CC|gF^GRl@wwv4i6lr5ud8D%SIQw43RpiLFDse(3D(54D} zR^YP&pB4D5z-I+MEAUx?&kB52;Ijgs75I#}R3u472CK-)DuT}lJ|p;y;4^~H2tFhD zjNmhZ&j>yv_>AB)g3ky(BlwKqGlI{E_K6+sjL=T@XmHlmXY{PA|G7t9eI@jT+ewrE zXEyoFy87416VeLm>hr+XMXn4R-5IH?zZjl}58)TsmBjy7mRwhV6&!%v!FBZ?z_cO! zUuf_=d=3Nof6?9@!2dx6=>z#ch#=>T01%V2IH zzM&pc=kx!cLF@wlKP0Gtci~unUHw|{J^vM2NZx;+5R`M=&~!5fgk{|C1OcEP|?DF-{DJ^y!o22{c$&~|uT zy$2qKgwtsUbmRYXy9y3KF8?>%Hb_pT4v_zc?Ey&U|9H9)V)_4^{O|?jB+y658NmMu z#WBe}k>dxMgD3;t5@{10fb|@&Zy@J*>V`Ib>+0R`5FFNzv4jU8?gajCD7YVf1b=^g zLOI9a3wU=T{_^nUhljVITDI)YTWj6VMxTiPdNp*{ZS*bse&%`l;ya|OPG{fyB? z$JN!>hN%mFE?^Ad#XfcQ@ARN=kOhShf=l4@u66a*$cNyEV`%HKCN0ZpWDt2VtcLaQ z6zqTx;2G@OQLZ;6ftRui;c{4K`8ggr48-;^WG#Hry{`Ua!D8SF@r)wD9rb8hYnw(c|oC= zTciDt*fBDH*!U&`&UNaKhQQdV-hG0qPcTk-yo2(be19a;Z$(13v=S06i$vQZ(XvPk zSr#tK!ev{yEDM)ykz`pU*%nEbMUrI^@VOT_dpA?_15*2Zw?8njz$4L6v5)iwiSmFD zHu2^v*4{cf`$sXEF z#EGlu8WNlwz}9ixJ{N{DqX~VX-znnJl-1SPl^8EkN%~{a1ZQF%=5a2c8*+`#gZ09}}H4%f&FSpP2MngUNjKX{Qe=W4F?@Z(MVpR3rF6F-i;F~|Wou!gSW z8UZ0#0L@_k^>y_R!t<2b1V5f#SAUB5K(zpNS8^lGg7a^lrc6_qBr z8?*S0*+{;(pUZD1Ca9R@qxf!rvWoF$shE4`sF*c$jCq~90@T%sx}Kn}n=_HE2z`Byeyzwlxchk<_X=hi)tsmp|JMFBdovq35Nd8LlFCu?0`iJym6Ztvh zGiK`G%ouRS0&;}iLPzs_$kytEQ2E z*chkhT=LH)|2@ec>#Rzf#VwV7QdIo*AjdQ6Y#wkmRf1|)5aQsJYga23XngX z{4&}p`a$%S=#qaK^<6Z}S#<$&5%L`7vM>N2KQp(VW6Vxr%uZpOCXsM6=1lk}pqfVU=70jUxqAuWg z9n1N9HFaN2-RqcVyP0>{%(J^#2Ub%@JL;&Sju3TZ;c1;mwFFg>5(_QWCFr0Q_2PGB z9*6pNs&aIiq8zJdDn~N%uvyA+BHYj1yw2peCcicLt;ugqerxhuUq`#+SDUoqoV&$sZk5MK+(Ka2dsDcgrJoxr)C!?~Ww8u>cDsu??*0j#O7 zkiQmr3cO4FK4b>#yX=?y6tWF{OkvH>m_fhk|E1Ga%rmU7yEsOt690+1J|q7&@=M9T znzZ97GYkD=>}H^Ml(htX8tIFWow2JRJ(cub=zGU7H<4-Nmmr&yUqt>u@?SxJmHb}F z?HqIa@5(fluxXr1NI63#6wOl!h3P6`*?5(ZIawvddQ`%sn$}8~&+#~lV>&FyFoij4 z>mq#|b74Pm;bDHfXEO)e0bJ*VgUkt=Ajj(IXaDbx0pFP zj5+!pb5zRZur3L4BUI`soL6rm3u#{+?P^baD#!Lc>JUAX zI^N(s*~WQtEdKXX-!=IEfwlK6*4_oIy)R@st5%)itUBH8tU4KAOM&g|V!TLR-H#c^ zb>cqaC&G{PJp;KCp1|fDFSPd|54?n`(dY8damjFs>? zaUq>?9ztDvDf<}ZHp4Q;_*K@Z0rWrBqhhM&snkt#RO%;_RBHFRD)ltVv;`?^pI;(3 zGY@SpV7>_QcQ)tsIZ^cHToux|eiU%-ZbEkATrQ)|t@yZp9>1BzzKHZ@oYN1`p7LIY zt42By@1PPWdpR~sDEl2{Cm_#7wj=#4(od%BX3Cz5z8ZZO>%tM_KgO|rJc@&?6@rVt zzQuao3!ApoFKyq)c!*raIk0Os?{sj!#BhFJKsyJ{V=dr3f7i`#g2}HV|0eR=kbf;B zb2e%A--e0o0Zo1^=h!ah+)VO5T_D`jnBDJSGmwg+YJ#b!ekZRwxz8}slU&VQR{XoGNo_9V>V{)zK`H~m_S z{8c1l_Y7@tF}4e-^E=uQM(@tpKF-)ClYcGxQu2Q#KR~%)6kjq2gm3YcP1z|?bYu<) zM^WBO`AaC@3x5}&Pr(1n_#cUWJNg&&r7QVYFzzSgtCYTf%((aFd|g5M`;7Y(#{E9( z?niptDb9|c<11UH3Px@tYJ!4*!v99!EydO&C zx=FpSGAEi-$CIotx6}SO^jzBX5&8GxD-&OR@a5uscrfisC4U8(MrtK0$UVcPe>~5~ z*JnA^mX!O{gpB)C$BFl;jXC!z@iUJ5Vn6Jh#=Y<~BW*W}IL?o7y_G!A%$BN%dlRu8 z&OKNXyn(&YA2y~NL^nR;vF)TD;oQF$UZZR??#Z4`uh9fO&UlGGHnWk56KYhy5skb= zTsQ!qrYQ9!^C_A6oy`1xVM>i!Jc{=wrq!sz5zctw-jo`3{pcF?D}JWr)ad7d12acx zSv|Q%349q4FY+7ewMm>>qb5*Bkhsu_I&BW1NB_;{_z30HX)|id9%VDnQ=^30_z*s@ zaL~TR__C=U#r-<%x49mD?5rBKkT#x=Z$bP>nmtx_+uL$|Y|ix&shlZ$poaJ!)d78; zrwgc9(CwJ#adt{&O<$VftXe@omkTb_w^)AO3Vnm*q?yRaF@2r|T*;&=u?JoSrF~3_OPp2IhQ*I;WhH{?da!$_UJXykdlE!)Ro15oBt~sZU z;QkKYBA$x0`H5>yBm8C`{fVj3@JY_uvC zFaJqq%te%mQ07&9yv}-XJ7vaF<}${1Dr@yR)*zevC~vcg_6qxH!$!th7)o12x3Sah zJjuV5I&2=K9X3CZC!9zf&wC6r$rs(mP8TV8LU-opdCZ||=Fmar!WqnkEzBK=5gB9- zUCSJr${cFP9GcDe*-%!O-$S`%%5|VW8jj;M?wN$$#K(+irZngWIfj}yO#IU~TdS8i zh8ip0oi$|zd;`7UdiW7u=HBK<+7)4}y2EqK&+D15UgT~*w<%|S-HQB-<8cJXC7*S- zlrq!c4*GH`#~f+LMOR%(yO!hqEXR8hb8;ACBmR%a&wkeG419=w0lGc^4>haw-r=LYJ3pFAN0JCXT^*!7#DQf=O!=2YG2$7a^<^XcJhv)IG40drmul>Y*=_9O1z3E#O*N~CO7}D+_zMk}W^dRxU z$QLN{nfQ{j+&esmd^<;_{sebj#ydsh|-^r@yOKz3gVN{K>x%c^_)k&`yBrcS2U3;7JMmTXqO#|DB z3o%?f>g7H~=`RzUOS5yFOEY*Lfi6O8&Wl(03@V-WrSmz^tsE<1bt>mHYwaU)j${8C z^OMhQ8sPJr7#lvviLv4HoEV!WjLV0#@6cl_x;s@R963fMTsjeEtArcVRGS^+RGV>U zs5ZCEQ*Ea4?6rq+dyuyEr)~XdTSBTz{U$@D=Aq}!W-Mr1&cxp-`1=fhcjHUAmGsq& z#Z!!h`1zc%*u@%Q-z$l1!~A(Ftwx=nS)+>2s8O-*8r4Ovg`CsVIEHKScNFDLB)%Np zWDP!veu^Wc3j+7TUc$P{PB>iH_e~v#v;?j;`td}pcUcSb9X>%BT6vT&o z?jRh+9PKpPPjOaV&HYMO?m1rKS@j$0zMkip-mKSGPv(7bsAGK+CNfV%7Evy` z-+j3z+SE;RHe|KN>YZjvbw<8|lz04_6K@N@5wb?Chr!@z6?7+ z41PfNAzBLe!#B_ug76T04^rm^h}>sq-?p|DUkK zRB;JY*TNeRN5Tm(4*akT?t?h;xb&&j@Gf*9%>`Kyf~(<4IEK7JAo_3dn~2}1K;AQ- z3pYwd{9OYM;$vYcIM8o`_QWT{RnQ&14R9G(H^ciN{>}vPc>u)ka1h^>ApV~N`Qsx4 zUC--CsjDAIeG5S9d=RAGERee20jWO`qzyrkc02*nmI6qCa@YhvK^O8)hMBM!{?X%& z>Az*XWv>6#VE~vJRY%yaZl?dT^4K0vFmch%SlGY2-LG}!|09L~bz%8g+4jHflwnGcjkAu-r02jl}uoYs-=c5(165fI~ zq{&_Z6QBf^!=rE%dAV>ed;#&K4Th;u4%flc(1Scb{6PHgt!sbvoLNV^z6Sd^eMkI1 z8~=ZH?CJi0_{ZVYVxtoyV1zW9N&l zGWFI}F=4&=%Uk;m{sB zKu0(N;^9c>1f8J^$Xq)bxM;b^yBSGpK4N~72kUHfWBlV64 zsawujss9X+HpsOl8>WD?Wg1Ke9zpd!OS6zUFdOE;T==Vxqa4q_dW>Xl9eS?()#GB% z`$OAxK5e}KE`%yL50-!v{f)DZ_9}1ul=EDN; zLlG2136w$^1Rw|@2tx$Qp#m1dB3KM(!dY-OoC9(k4qby}O#bRQ(}y-xf_tk1gqQcT(;*g?}T%Rf~DRvhJ z^Gb`{p#qdpUg?lzTu8LAxTw$@C=p{(i``zoNYRsAfgyH$NHTFRwwOua(qWPb=kn%( zE@J%dWWR;nvH}y%4QOc+gLB=Y1#K-XT3B0# z3yfvh7piqa(lkZ#PW`hC`?`-%<6QM&f zK;hk5f5=!A6)z%?Ep6SX+NeS@fVWoI_P{QpBRatp(T9?JeE^J<(m@?mC|^Y=5SbeY z+7U}yy4LJm4y{dJD75XE-h=hI#N^&I(C}x%~5E2pb=@*`Y5)#PP5QX7jDKW3kV5J}_PltiI zWm-mbs1?plH=3NH^jxA9G8?rBi(rN^7Gx9_>kJV(Nx~9owuHoKHMJ1xT9DKtJ)z1_ z(I5#DC13#wm5R#y?F6U{oUR@zr#gC>%n~iN&swUBC;1rQQV$8zCcBTIgNC&KW-DRoIe77%fmH)k=P#%o0++PB7tId23(m5@YJh zD2G+RS4t}+Q~{Q2*<(YFwS?>_AuE9F1;CaU5=sVAi-21a32`M-2PUq~X@Ah4OL0HT z3=@qY;MM^hBuc4(j<2c<0%kxoj)7CM=gmNdQ6iZpqw zw0dUp);dERR*@o(U&KU%1$lB+@_I|?uSDE|z(R@m@>r09r6u7|p5M&|IStXoA#-_I zzEO7#idGV%6<4&9BuZ%sD^{>HXfB6t?;z#&CV~r+SP4iVNR)sx*lW^~B{o=sArhRV zic0;=xKckeu9U4H{_w9q?~=d3d*qd%U_1IG*ucBy$6U!fu$R}>_kuFG67GjLuBfX& zVL9(w!!ytmef(v-!v$}{rHinE?u&Wf9ag}d@GUsbZ;s7=NWFx2`{4yhxRh~%p_Kbg z#^Id0`p%X3haX|Wxr`V50O?h<72N0XJ|4UYZD?~kTnQI&OkStnH#zce!A{r(Z^JwA zF1!c3;eFTxdto2c!3Xdmd;}lEC-5nJ2A{(h@Fjc&U&A->Eqn*x!+!VyeFE|RaOgABAkq>+PWdGGN1r_^v6cJ!=;y5S z(e3B2i-=zgm%yd46qdnda5*f8E8t340awA*@DMx98lHh? zVKY1j&%+jY0bYccU@L5cm*Ew76}Ceyyauns8?XbefotJ9xE@x*4R9l@f}3D9RKps$ z8E%2Kunum8+u(Ls4|l+wa2MPS_rSfd0XD*Ya6dc%55iQK2Gd~%%!FBx1G8Zc%!PU2 z1`l{47krQh`A`6bFdr6xABvzDN}v?VAOJxKK^WrUNazHep$i-ZM?+WW2HoKpI2N4H z1A0O)__On`RWtJ$?@#zToVa{nAP>4fBibY7dzNPK3%Y!lBH!c4=e@t8cSIfr&EYrn zBarfWZ7du>m(OI|f_&b45dBDGJ7@{Nqjy3chHL|Ep&c9!?V$s71m62k(}CVGLA1FO zCQcrt(k7>l$tG)5GC|s82~s9co*^<#f^12eIyoz4>PU%XjUpU9)C!C*G<;1Tq(({l zRI$*-hGH%W+Cx@`M6)spJ?t?6ZV9|0p3Jo1d8>~+vk~YV?tCQ9{ZjG?-awz+{>mwW z`{D?%x91Mvo-Mb~>t=Jff&Jy-j*S3#;l7?R)QS}u&?FhnO7Gt!9Zjd_M|%;)N{#lC zAF{pVhoZe`P22m}fuNx+qFAZXUVLS?7hhSl7p-Y~+1{YRizrrVw3lL^?WNck?L}+a z-XC(?ZrIF0YxR7sDX|7e4XT~f;L7Bn>YV&0zO-hiNBbf}w~E3k%s;g4iWJYyX z3hU;Z!X|1bMRiyTo6M*#OJTp>MkK*Hd$eYq7rNI`8F;gE#79&Ps?N!8;!A6Gx-`Wu zL5A&%XtXb*>N37Ee^e2z+3C@~$gq78jrL_!U8dL3P^%EcLFlAOdIuT z!R5HI8)mH_sj(wwr65Tcla^9Ui^k5FRidGo&b9huib;DZrbT0y%=*w!Oy^p?GR36T z6w{)yV`gP&D5i7!%jd4Sg|sn2CTVj~{kcZ9l!nY$omn28S>7}=I`1a58Ei*}*pZV=q{3%841~P0 zxe>03F+>u}4SKEI++bnQj=HT#Fc5GVJ7QLq-aI?kU1XW@m4&eidHf}Itbjq$HF(_C zo=SWylb73|@%c=Y#z%uuT9TznBNLo}$Y+nKd}!7%)*-uy+s-bHSYsLTm}8_(V))e5o(4qB zG$3LQ3K4Tmh?r?W#7qMsW*QJN(;!r2RV5K~xI%hnNF8Ptn3$dgIx2mTh?xaej2b0o zW`V@?ERcwv1rlKv7$e;mD}{MsVlpozW@f^mglH|XiRNmeB}Hj|XLLEgGrFAL8C}lr zw9A>JZI?5eUCwBBIip3FYphT58tXG!bh*a*%)F4Ent7r7tmlQq^t_Nr!@Lm1I_Rtp z1NF?8fs%P)x*ljq43vaqdD7|RHRmH~671~86gdT@EY$OVm9Vt%NpnNN$w$IAayj!j~;_^cOjdwN0i7yF4L+) zcHgUra23rhwI-8MgNdHK3$7>%jddmlwwI4Vi@8G*tAdK=k3u$^faXdy?uJGE~CBLkI^X@+sIK|Bc{#g$$Sk z(_s({g-4(Z--~<#Kf~?t2)qD01-^d}x?K79agZ+jQU0Gz|9Ls>fCgerU_ZvwVE`OJ zpTjd#rAFDx4^Z~5&Ub|2f3Q>zQ6}l;RyJh zvY$db^0%Tt1Z!X#dMdm@UVj*UGy6^AHx~IF=}*D}m?C<27R{TeW4t3I0|D*mjwfa|Se=|)T z{Kc6+Q^!pHrcbx#Qj=PH;?7ZHux|8WylwX)?W(o1$=p!9F-BB8OJps)56{6y>VKXu zHkTrAKwgJjkE}v|IYv2z=Bb8$W0gZ-uQAQO^JCQy=U=39X@jtnHk?Tt1s`!?M!Mmm zRQ6_r6X^2_>K%q$iA2j{YF}rCVavE za1&`~?~YYMWvdo^*V}^k1zM;#UyfCI=${fl3R+V}sH4nQj^&;34m<{qr(@Mn{C7f* zLZ;(OSVZ~nDBBaZ<8LndUg8}f7GJ`<__yj; zFaHl_^1U-Z061~Hs$9?9`#eQCYS=ID*pbT7gX4AtEX2MF|8x1#Kq2wdvUwi@cAK=S zx!Fok%bsthhQ8EHt>(q1C2uuTWw0Dh-rY>S_;NGF9wUxhD8F|a#~_{G^rY}R4C)?% z-+R%!jO4wIPA%1T`gG~Es-uPLEY=}~)fR0zU!J6GJD69uF|R&BZbCL=?7pSE8=u0H z_!Zc9%kk?B)qKr#<>)g*IqH!4$PF`;s-#Vq(3cmoXbV4(h^O3GqnQh&uR;%z{yEZ#?JfA7gnS(tM*fVP zj-PvoFT#Ezb_*#VNBK9=m!sc8{x0&bLN7$0iND>*JFq()yDsPtqu+>Z!SQDQ4F`L9 zsaq&hg3a&9>(O69UW3lwu=<_j^C&Z(GPTHR(%HL49fmG@dR&hD8R?-Mdv+@JvQ!&r z>v`D4V>cUp5BlBYe?WXFJcj-N`D4kiLT|zNmT~MKXN^r~{+(u^iLh9Mf9nz(V8}=D;r;!#7EvjXro{Wpnn=Qcm*o zkskCl$j6v}r{n)1@?7Mr^k?S`6`LpL73b(VoVUkQ?_SQ^!!uRo9q1F#Tcq(@6voe{ zFXyW;lKE&ef$N2k$-EVQO*d@d9QY-TId944^gVtGzpLT=xSn%S{!V5MNMPU0;gor0 znsVf@pJssg)$l0w=pPQz@Aiz{NZMk{5tLgpM>!_3Zj3>WKt7FqbN1m}hCUPh8e}f= zb$qc8q`H_fJd?T~hB(^NmA3RJUQJv2(Z-Ky>jaL6?6=gO^iVF73 zg}(;Lu{@Q&KV-@F`0YjcWbALJ{1p5hhJF2nODr>ho1?d(d;v2#?MFqV0`IY-6425(MNEv_M-y)om~Qs2YWJF_xI-H1Oo zl#(Xkwpa<+>5YE)%&;cje&0O`VK*b93p zdj{v>f>W(g)3uR*~TM9+Y%f;EMRUhV0T!wNKWhbkm?4g=g*j+l; zSuw4PTC`MQxQP5-(!a~bE^!k1!{5JJB^zPTDe9Xm$EsvYdVbU1b{=KS-lQA^Xg z-()U*&)U+L^X*pjtuTT77fELizDl7hYur1e$Moj+l|8vnCSQ098-e{#9l~kMW8naH zb=6%=zEyc!cu$)yIFgM)||hB*j!D2{H#%9@tF;;F~8a&CnFz6 zZh>uZCp-;h9Q$^Z`r2Loy=By9Y?tGUeKIRolE0gL_S#S*@bv@vpOW7>qq4bh|FoDELgnl#O(*8D za1-b2E@a=4D()TfZzO*LdIITBp4 zp3`=6eC1ihejbr$68l-9Wy?6n`WA7HZ(eXX9)8Z@sLgUXo*U_Ktc;6Mo!i7zR&wk< z8Z%r~j*nH}Fn>pL>_=zDstu&eUYqqf$^mL9_p}$0_7EIJpMFBl?HZ%JZDT55=en_l z<9{B<^Sd*cQ=B(jxHjF%x$zC-`8|3M=4Ksf%aG5LelET*Wjr3`9wwH1_+u#B2c7-% z)l%Z^W>>n}%~nHiLEeIV1-}c^I437_Z9opkb`axs9`;iilN%`$LmQiue;)a#Ag@P$ zh5zo@v7ewy!!8xOuhY4&qI?$V%Sd;V&OS}5E#;llDqYTLYG_|%Ut~Pj$zRVd2y01yf^+z5 z@}_dHlt}*J8I`W=ah0x@Mpw2va$IGr<7QR1nl-D^bq#G`&qwtvw(IHN9mIbioi7)3Ep2<7H1@e-pGBSrU^D5fNZW&a0R2wp;?vwSw&C94 zG2(9!KbCkt`A}tZ+^iAGrhHngs$oudV@}V+PWYaA@g98=;_xd-+KC+JU9^=wqEv)- zzJwgkwUPag96PzknT|YwYcf=tS6p&b|FZz^&2vvd^Ej(w!v#r$ed zx|{Y+=GyTvvNQEeL2f1QPGk!CMaT&GFCll3e**Cge6ZiO;{*DTi*#`B))L>D#J?e} z6d6z2kM!+9+H@;<>nYQQHr1fBZ@c3G^i}w;#^2-g<+{n0sZY_LW3%WJ=}(dVDfJCT zUPk`8+DbMd$~RFEdt8F;?k} z)okqZ7^@Q~`zG-nRC!X+Znf8sF!_p)it!sP5QZ{yIF%4 zavlw4P7JhQ|3>v0bGIY&{3Fh;X~+%zRxmw2YC{@*ersVpj|VLCtLyB;c#pwfRrsKe+wK&`b4-4 z_!vU9A#WU90x!T|Y|e)ra1{Bo;YN4|jwXKwTnjuh>i0K3LY_cgG29JbK!5V*!|lMW zmwrdXZu?^Ntsw6kWWkkC3+=I;2+LqAoQ%!IunT0rBR5pT`)~~Tv*89{Y0&SDe1;rI zUH~@2H*g~P#c&re^!nY9D&%X>iG10==z7=*ow1n;SHWwLip`a<4~`>$KCFjN;CS-$ zU@b5e^gAivBTpi4F>HcgU?}Vv}Gz> z4R62^v~@BphgaYT(4`~Yl#x#Zsq zfA#!3i8j0i@6o;?$T`TFwC`i$UlQlhMDM9_6Y=XwKN`s`l73I>9^&hXi;ua)XAyss z_`AfpOzJ(77Le8zy&LiZ(pC|_j(C4$0`hj!JiH0+DP}K%UF<3jFw0 zV!ZeuKTIVE7fUQm5G;|HyanTzpYw~Q7Q8<$T5(v5V2RPpi!$0$eo-r?NNp>>c@<-% zwiaE?b-vEjIXam@e$p*=yB8tOW6FbumgqxobMSQ%&&OR5i4FzIIvg}&nDJfatQ~Xj+`34Uf zq)JP@$rTkMh9G!5+be-jf6Ar;#kr*D-^iGd8oe5+TMwrh9e!e>e`i7` ziIOLwrO*-4q(rV*Es}I?V@$}>31XnF*iFD|epYOLO>9Coir_a(addpUSLysGW>@LIOl!~aoAXaW;o zBndQ@-z0kVRua6>&V~}@ylx$I`$-Rm#85&lLdsX@D=bmI2s?U6$jFu(87wMvyX|Ue4@aeIQ`(Ia>4h&s|JhtY%Y4}kLK5;rVH5G&Df~aIlERn-#e*IkiAbxZkVvtR z!6IZ^36CWUkp5h$kdSRE5GJX>DB{JRTdtLY0v|sNbJN|3-;P@uCBdj1OR=-qa-pG6 ziBWV`c>yyt;zw92FSKjDBxol{n=vQ}TL}%G$_sSVB$qcPo2Vog`2zX;s;@ETmjk3z zqhrRRfd5pvD9`N{3oBmS5a*~x#qD%`1g&(5Tj{tliQ=y@rsn{zCAC<_RL6DeB(bo; z)S4nDyU{dgdkr>tCD!1Tc!O7aHi--3b~5V6A~8^w_KD&jgg6) zK1n*XzNFr9Y#H^<1RJ%$%+hwd)lie^zI^JMvjS;i2!E56f z>C{HkC>K#3q>ZLFX>4Q6ZkX*;&!_2!r$mZVx|-2I<>(x%0*)*%I((Mhes03anvz=bcvb% zG;~L|QwB}4%;`{W_s~8hl3;t1Ijha>1~;@GdJ6A*Lhz@KKf<`2nP?GDu6+T1YR6>?ftyM5HW=B4lYnYUc=} znw2aVvX(N5$YP_VWl=6`9SP-nv6F~pQC^}g*day_pmr>ZeQ5X%cV5Hs(@J!XWnP#k z5xEG;+Fq{mxCF@#L3xF_CbSfG*^#ucs70lsl?LqD>NI?-`X>EEmAMVk^7Y$_ua^P{2n;E#1s5NGfm|>1eu2Zib$@@2x($Pq&&Go z6?p^fER^RBNWgtBuLbEio#H=J7oGQ42uq9|d#0i2lpuFp#6uo}2(Q}kK83c?ukG@_ ziB8E2dU!1;gy4N31a$!~TL?*^sD!!ytk?5d@p` zu%i}tDr`ceWw{FEag+m0F#=64ks?X+=W+)sA^QvQ+hnf^brO5HX^rKGb)e7^#YLhK z26+d7O@!o4011ood`9x#JG%wRMnVBMhb_p?jn{(+DA%1v-zJ5)3haxS!N5(K9F*(o;x;cFEKs z&fHN{w;~uR3DG6= zYZ2j8LG|bAP@8c+lR}Rq)bEM-J*;mbS}*s$-f+2=d8JweIg2GZSYSyOTG7LvB1>9& zfu&n^;c`pY_K|#UStD*lfe}(iBtL8t*{exwBzk422^kW(SN2FN^i6a_M9SzCDPJ=MVUQNXE!`--@B^~#Mf)#Yg8w!hHv$c@+%06mZ>K(^$ z&h}wa2SREPffEt9K!|S`lmo6yffR-*`1aK~rid=a7aJs>?d*CVN2t~o5=Wbjf%2@^ah`9U5baTt)aut%Rja%M{XTm3%ES z&!H>l((N;0q2eBd%V9;38-ZNjGYT@@wB*z&u_IvZ3FC=@I;2UZNsQ8Y2D_FzT1=?%F&4T=zimWs}Ph=T3x|uI}c@@76^Tx!CjXi^On&rpL zC0Y2ijXkF#5-}-ea>?V3(HonnCz)wu<9uUnq~*qYM#dKPP`3!&TD%wlWBGzHDgyyP}aSBYqMv`ZTywQf)C zh(t_ELm@reC9T3QpXC|BsZ`;YM?i!L<*~=Sj#zFa7p;m4xomJ(!yAaK;DmgLr8T`4 zd%S!e>E**pdHiE@S~njNvfF_ExKKjbV*tVXb=)2EO1Tc@m3Uqz*P*-u&uip59IV43 zI%Gq|Jl+#0laXT%=n{_e;op+t zQ@?m^NnM9m*CFpuixn?VBY1O~(0Xl}7&rNZyhu;TTlA8`ov+;c6X>22%FVv+DIrZG zq^E@Rl#reh(o=aOp3w9Sq5BrnebaBjlP4P?AWYxn<#!a_H+k)yxT)Oq6Gi%IUUj#m z*jWA4QgnG$T#}72{ggMvNo(k*yc=#_*0x^Rw%+EpUbnX1#5S7T1bgM(<&b_EnIKVWaD68(dzXrZgtGmpw$Z|*g^8Qjjg908qRR`$MvBhczXW`)8{#Em0;x(~ z8z;giA`e zq(qXGNRkqKTSFivlB7hElt_{iNm3$7N+d~%WGRs>C6c8?vhIPDNR|@GQX*MOBuj~8 zDKS_|43-jurNm$9-Y-wG6C~hIz5^bhWBl$184E3-CA0zu#6fE~4B9|jXa|Qwd*}f2-TV;{4@W{L z=nP%pC^#CrLO19R{M7Nkv>zeGblauP1K~s%1c~5+BuEDN4T5|(D&KPs1^F$&FgOKH z1^I4xIGhe6AO%u^pQ)&H;3ru6_X+ZyC_l~kxBkBs^YHHm4|qYo=l4M#66|elyQ1d%pF4Bko4h;-`02NCT{2;@D3OQ0H7!y330*1~0QIs6&c!Fsp?Ho!*M1XsdUuoI2Fu`dsDkCN0?q(= z?tK=V4e}1jxo{qw4;R3Hdi+WKGWKP>%NUn&En`{6uZ-DIAp3{x6S5!3*q8AxV|*AK z2U3RYH?ptD{vrE>><2?(B*=ax`;zQGvd?6|5Rm<0G{_=;7k`Uyy<^Wi?!05@X6$Z( zhv4%V-f@GyEtw@dYd@U3vvwl{;7j7Oz!nzltUaW1XYE+Xf}=}!)_#LbLthNLvEPhN z<)uG z@~=St1>S<6pi}wI+Fo!JjDU%-8MZ?b<&A`;a0A3q&rb`f2R?>ExB{+)Pifa`+IbT^ zDeZ;!=zGJ_FcG#=Ml}6NgmzF3}9xEyz6 z|1xno2FW%zaXB8zerMuxY?6J@#OD&0@nPb!-^#ve;?aa#f(!#6G=e0Eg=A<9tsoBk z5DzKP1XAH3XbnxF4K#zc&>Y%93uq5E1Rw!AKq7R6gP{|oL1#DwxS1{i?YAS{v`XH?3c3d$i5}}pX{RTUm0AuNmg&U%_3_4Mo;16%cqS9>nY@Njs>Zukt_(|EP{i9PQD0GQ@jz3gy;tm}XvBysmv| z-Q0CzMRj7h!0W-1I8x-q)#O{9z7sC3yIr+eP0bk`f7=ZTq(p2lUa z-t1XyEzoq+cy+-wn8ZGY_w2ZkB(3jZ`AWe9R;4K8?UGv z7cbN?5FgZ0;DNgFung`2A#G9k*a#`iPzY-3Da_aiS_H>NP!k**L5&$3K}B$E1T~?t z5mW`oMo43}XiyUx8$nfQYy?%ou@TbLE6EufK?7%Ogrd%12*$&r&Xx$Kx?>|4cgIFB z?u?CK)EyhaxcEZ0WKiLbjZoa#vcb3+8$pE`8$pFTHbU{bB^1hs-Ez#XDql3?j3K(< z?(5YRL@1weg?OxS4ZFL8Aj64oO*WR&3a1lW<4d|tfynHQ(vjQSnXK2 z>uI$&>uJTC^_3AyogZOr&W|uQ=a87Cj#)o{#IZ>)BQ-zL*qk3}Y>GF--7em&uZu8}#GCaDBaBV$&H9Fsaz_}O z+MD%qM;x2loApe^oAs0t$EM@WdbW|qruJsIWkrOsSrK7u@^8oLZ{UhZx(FMWf0Gv> zbEL6Z5n*grL>ikE8DYd$L>ikFk;W$fk1WE7rI(SKA8Bk>L>imo&3Yb=FgCR}>lsEE zT@?|=ruJsN%#n_p;?4So5ssUVH|v>3I&Nxj*0YQ_HXU!)vyC)1wKu(%oW8?GCYrEu zDVnf>g{rg&QsA!gxY5LLYqh_2rFLl-{!L=`r6 zQH6~>DXZ?r7fsj*LsefBHsY`eKTo3yA8le)ue$Ivv@R-a^q~tMWugi@{-LTj!qC+_ zFQW?|U81UAnz^w+s(f~wDWh|vffoQO=kcyzc>&M%DuX_a3h4h=5K{2Li=cZ=Vo)K8 zLB9r5gBp^9VUrqEkQm$mCNZcWF|;jAYDgn_g9Vx7kVbNwZDdk|3dtMXG$u8q(KXjg z_ny&IWoSE^{2>kbL)$c%9NI3b(zAU{x<^HR&&D^dXzY6+%gNr>Li6y7+PGEc*d4{NfNFxAIJ_}ws3ncG$M7b1@%=W z^^NMQO6uohWQLbsU$daTig6U4k6S(Ubd1J&W)XCCb~@=Iv%0W+%;~~4^;|W-UjOFT zcNO#9dIi;2)pwOl$HOz$*VK2FOuEDKMR1i&G3%K{(A9GllZ>!@OxVIT^<2eFqMl8C zRXxA(AB^ketM4kA&xDs=UsK;z74=ta$@!-brhGq)^Wv@|Br18&nd-Vt?&XuZ1AZ@Wa zd-~4WMUVy8fqeqc*Ps^!;9hiVMGwW0i7o?nz*dm_lKv3kEg)rl31UBsxa401%Lq&U zRmd#lMr4_UXNEYNu%V2wmki>2!)q(yz1c=eYbd|8YvYVi`%F9kQ_}dY4bMZLKAq>n zupQ2*!fzn@Smed%GNBW+C4TvtJb&eR@tMd`V8g3t@N5>2gCAC4133^6cP-ypI|Vk8 zcQ$mQf&trMy_KTNldHCrr7ZAPzmU(oNl$q#|)=DX1GjZW|7zR&< zaW@}EcnTIL@vM~xuv17EN?ndYXK2cUS}$vOn7YB{dA>YU{SB7(9i!BbMT>jc(qBf-C;cSa^xeTx>bt>6_$H;f zdKVJ#>+C?3x(4|Lw!)|Q>vinM;@3lA2=T4NhY;=r8}Q|O#Ip$ZgV8N*H7?0k*CpHP zIkrh-wo@}6jCUb?5Oy~CuS0h$avSnc(stvs-T15K@U`R(|5IP_K{lhmehs9nc+yO))k@4xXh} zbe^UD#KZYM)Kx^<&r@4KVbsr4=S0oHE_qrDD2z&;HYciz@p%DU2Rq?&h~**w9mogZ zb+C!2LOL7;!(aw1CaoB`6ds`Nj+EPxaywG)xzs%$roqSb>2=!qBkf&EJRj2N+XQqq z=+cl0*z`eun@Ia;<0#5|i?lZAj68=t7ZXp#;dfwjAM!n<*qqL`KdLj|=*6Z3{=6Ug z5b|T>`J~4s*lHH>?)dP1 z8ssKqKkNo#w~%r_@ulrbkt z!h^^oBr--%!w14bmp9qp3}@gAFVEta9i-pH7>Qz^J`4W~`Ca+%Z}9RkzVQpI&L zrf?#42{q&w&g4awZ{Yzrlw^ta!oa1p`3b!Pp}aR z(Fs?!f1hMGY z^!lBgb;y4}6Lj)EQxc4Pf+&t~L1Am2Zt`)U?Q{ql~HwBZbpc035umajqD z!)Zt_@;;NaYY|A>?g44vCm?Ncy7uo1++(~;s=AN0s^t_)OhPI>joWm*Agq4T~tbPc__q3fA}g4Nu~LvBFf8i7V~ntmb_H1 zWq*}BH>cu6mCNT(`0`G9k*rE|utb9L(VlYP2b6_{CH%@Ihu_Px;u||;qcklkP0RkO zAit;pts_c|5lI;He?Qv17!{rT>I{EAJl=j$~;`lrL9$l1k*0N)jkFno^^oVd$wsepsg0X!7}WmxxM!A}VVqEJl@l-=UD70qY*fZ+OY0 zf69xHA453;%h{Flh_EIvYcwU)gGz+N7F6&PU4FEkQ!0(*N|!X&n6oa&|9nkBLfmt4 zL)=nuL-`B?H!+xIl4Ni=X~7UT8G@<7L^n{uFmh^SC^`8|puzP6%D-dFdj;}CCQ2NT+lQ-X!86U{5f{_TS(H{)aYl-mtI=vP%c}cOb z)ZGwTN_-w)vS6iyGQwn>IT3~dk#r*S_?eEZB#8Mu`M0!~I#Mge&{gORQeIh3p6pdx z%9xUP;cUi487*}ZL~6_Ye8)nhtKgGfg=PAyMM%br&Y`6k5YRcaL@{5FA=ZpS){cg{ z`1+XqibYGwP*GCiL`!tc@vr{f9clbj4@dC}Wo=TPqfN^5=xPOP%0x&RtaZdGs@y3` zH-P5`G=Q~~qjvxr$R=QohW|iV?ySi!Ki-p-1a)54Vxt?sq@aAB;`;>U^n`mjd^jVY z-yO3mmK9&z;3EREBD#bxNvOF6b93caZ|oXUtLzN22WaUC8P^hJ42xjAiqLBsN|8hf z@KbpIz0Xl-5`#V7z$a(${=mK(1?*`qW z2OJ82f}S9A5vkt-X@i{0r5&*#ZHWVE57XV>>~~7NDLWkw1DW&m196_rdyaqs(9rwd zGUw?FLqO&?!(jx-T;@0!1u|b517l$v$Q*1uOn~EI63F~T{2@M&e#vjZPiz)Ji*IXc=fbt{Jq-V@rgk|z2)iNq`pxtNapy}r|wb}409QQ>{ z?e);~%bMB~VFw)hRZZ=k(CMEwwG&|l+zEgBx~BFz==e=d?RFAB{em*U&E|j^cAA`FB((~-j`7&*cT3>-4VRSnDR z*GEi;PjIB9IH6&gz0>zR1FZeg%WynI( z#=|`FT!gHEgf_csvuSG#@_XWc2I*p9?_R1L3K6V(_a?@SMg;401gAX&YkvJ(4uuHT z{0z7p3K6XNJ#aY`B3SoR{20FQaK(?|3;Qd6Hd}avDnCNy$w4b@DIqTBmSpGza{SK# zIX25NcpA(CIljr#9NK`K$K<>q$9R)JgRtbA1!8aPO!_Y^U(UgD%$H+)UlT$f|E z9IvHYvq6rpi4cH4!BHURoZmx!X}h#r+AQsrwgy1j_-ie5T7*iPh_n{ZYBxLf?e&mq;J--=wckDvP}@DI@h# z`21t$O*^+FrR*1L_g*r7t^oH2v;GmM4k(!Ez4prq_0KDg)NuGt|5FHas%=# zNW!mu@ndsjTl{)7;m*im$Uni+Y{z5SjwNjGd>E3rN*xdV+19;aRN_XJ4ehbBIkg|u+m5i~=U;$(7O!z8+XEm^tF}4!g4Cg*3 ze3Q%=Y_&?|GRCIC?&OW?pjOmHIYTLD8-08pZlI6%Lucx03%Aq9$DliQXVTB5FqN|A zz^nA}S;(QR3fM^>--5r=$7i4$ee4L2(x;aphceo5VUrBsrLIzqTCY-FIc{};pHerf zX011>>Dc^}lhJ4JA~x^95u~TXHf(C(343F=<-U#GO4?>3gL+yaGTYagI zAvd(yp%(kLsxow6z>6)ns!K?l*)~HBr_LcsTh-gGRMZl}hjnSBu9z3AZYS;bd5KZ8 z(A`J=05*y;29f>}ww3792>-L)R&{>Tm+Erzv`pEm?ko!(wu)Qt==K40@6uS^-zpF# zDYwzSt10Is^xwf-v}Ge{CDb>TGEavA*k3g-PCbq89@q-Z;%TRyA{uF@dM^ug`z z^fl-wK^2Ul&L!|1ef+hT<80H&+t>7S?mD zAK1EA)M;$LM0-cKpOLA^C)qaX$Pe+=jg%!k+s;AS+{owneR@)c_Ww~Sj+C@+ZrZnQ z+9jT}2U26ybS~yE9>P2@WviI0SjJnFoiSjfFJr(#DH#LSAfHIh81N6|v&grQhvCmh z+GPxAkwhAP+eDre89OZJiccA@kHHMudmF^SYVg|u{BiU} z$d}MBgr7*$jbs(T=3>&mr|kPEvmNQO#FIystI_>PJ?~LR1-i-DPR7PhzH& zxOvjhtwkrxLHIj2DKlzNN@i3q!n+AyM)(>0Ch6zXzebdMI%U2GQ^@-&@#QN?gC{od z+zBqht||JnvH1duuzQR65y)%Zy6&Ov7Hw#Z?iAQW{5tXp9k3Pth0lJV59=u-3Y(MQ zOZ0*)v*_oo*sn%*L03h37xt$^IMz;pvpCKjYukf{wYHBdLH-Rn&gQu=<9R9aCFFAC z>&TB<^-^CZbI;4)Oa0i6=WmSfe=x2uB|MG1o5;HoncBua?g{3gpOXF!mqt{*AuSnAr*tBJ}O5UsL(_5|Tv(4Anl z-V+wx?d-F+GS+g@&xSHLeHGgv8$Vr%pH?AT3f8DGOMD6N=1uT&M!<^#v`%JbFi(#nGJl6iS27UbvTG;bacnsfO2curBFpaVRCFDjmWB5MhiOQ3=Tttwuua%LCvh(51KujFZc zo~$Hmi4?-h35vF;xIzjlk&;+R(ADTLg-OYaa{1yNrR0|92_-78X!aad<*X!7qNC)O zuvSP2=J3T7`leS-u!tYl{--plED>{ioG_M zl@r8R*B~D^$JD8zSU0(pZzW5swVdq;X}gX~^PPZExN%ot$J+@QvDQJ!Nm%lUa3VUa zSGrs$N2$EmAf;;aU_c6XayrtDyMp{qYgy}{)JItA6X8U3Sg&+_Zugwp#8xVE@@VNs zr3%?VvX)YvW{Pkkx+>jRiguc)g%fkuQnZ^k)W+gZH?t$%xGTsnwU^6U2PG$A z>7NKEqQiQn>vQ_2JyNQDA+@^wbDW~1QibjxYbn*~pR*OrMsOrWJN?tbi8*Vj&&emk ziRjLWz4Xn=r-c)9)>5BTODPB^qPs>+_f4d$c5L*T4+F{Qrx}c7XYEFccwI)1XoL)D zS4e7Z3HuG1^oV!XZiGzEZh+94+#P`^_PP#PIYEq_3babE`0o(xrA}677ve*grMijq zm^5cyhpoEiy`S^HHE2hvv&>2-+{DbcY4QVX=Az==Dl1x{)q z|ENOc6&C0<{}-)LP9AwhT3e*GoP_e^9K?!o$5C5?#ZHj3ODm2%X!&K%=DTU&1Q?s^jad)B)ulWe{d*QvuD#jR>iX7ztPMtktm~(716S}sw9X1 z?UIvIBrAp>D+!hg5@4j{%##3pF5%q}AjSyb0FWnjGm)TWC3#YHNj}?NRuZK4l6*(Y zno9B)tC9kpQPwC5bgHZ+LTVwqO%Wv&;VvA{f2U!(Qc{v9kR%h8l9D2c7CFH}2}<>{ zrh#PAE3J{OQNpH?l_;FJID~)ZqSfLO!uUkiVkllInM)5#bwf*aS4wpirP85NK{vZh z87mHd|$);beAQb{G7R#u`Eqe`7~5&KsOD-?^w zp{xil5vTBO5vxVKGn9jotR#q$tO)A3Y=yacE6gpBAS;r@pL2`(Tdd}?jR9qal)_4a zV#-Q_>;`jX*vZNXidJVJ_d@=O<3e5B!eS|OpJ5iO2 z>sb}cs)QAOXC+a*UP|6ltQfVd#FSOBtV&p6%1WY`&cn20SaF3=UGfh^gMP}5y0&xK`~;RyX6j|6AA@f=rnLw1KAa45)glu4!^Y`B0S+nbd4?k*|>`!XvYuoCLH{W{uo$Wi`J-Bn1v>u(h zACjAwUr@;YJuQ3s2{UHS%3;7RSa{N+#Y;{;W$CG>Ejztx`HC~nJnQUp&OPt^3ocx_ z>Y|G;sb0P2(zTae{^xb;uh_70)0J0kzWSPLue<(+8*jS#mRq;ncKaQ7-gWmq_uluH z`~Uj42OfOr;YS{Q?D4-p@#IraKlAK!&%dzs#Ro!^-c(M7&Lgu&|$+z zj7&eQPv3rr_djC5kw+bU%&{2*yYj!Zch&yLJ1#!nZ`l)lNFNPi8;MHNyzC_I7t)bIn&YI35WAO%}Nm2%|*h0WRmEg;U|1h0~_&+7a#8XNY0N0MUm8t-!*%DY&tAs)WRzcuhOJPfzOdN>ajLlI1Z!O$Dp zLo?XTcK8Uk!Q*fTY=V`r6i$SxFdX{A!H@tmXv1l|k2DvuVI&+5Y0wg);0xYgdK;dB z``}tw4a;FZ%!Dy;By@#V&2$#WGumJL4JRA#$LTiYJ?|J{J2404T z;Z|4==fPqqf=MtKdP93?2D^FB>m%3(kHa0X30A^VI1#48aOevMLju(D{?%vjCOifA zz}0XGoDTAS)(J2Qj(|fT38LXE->%y2@EqI^*Tbc722?-}jDw@0JETBk__ihQ=fR8c zAlwXphI8N~D1hT(AoPT`a1i`EaaZjJ@G3kCx4{Ou08WP4Fa?IfVbB3uz)uOgYCnP3 z;R(14u7Zo;G?)w7FcJ=jG-wG?@P*CxhiBkExE5B!a+nV@VGJAzU7-~;g0EY!{ow`p z8{7z&!C9~X@?bn13x`5$h==c+v;E;^co=Sl^>7|6h9Z~*gP}LHhi0(58QUMW!Q*fT zY=V`r6i$SxFdQbeBR}+p_RtJ=wKK7#G=Dm(+Xk#;SthfClbI1LuSiI4+RUJ;6~U4m%;_G92UboD1dAj55wVTI1IW%dq{$VAPT;xp3mTYcpYAV z$KihXihcY8kYmHk@Dw}$BwVzBiIhF z!ZRSpo_pYCxC$p-U|A$N{2qsUn{1J5uw-Vdfi8_`?EfN=Bf%FR6~XinlxPJn>>o2{zNpBwoi~3(5e40sd`UVR6vnBRW~3Q z@>V*~ZOp(Sk;<7k*v&sAEDsIfM{dJ-qdiLv9yfO4gmI&FvqeLeetkm!6`+5v`xd-u z4~b?A=-~00ZsEkJaPlaMm>euen>tw~MfcZ~P$!?Rb>iSDrU9Xh_06vgC{i{{RqIlFYGY)Tnvyf0j*!-u8QV=)MB7{{t%JFk=3 zbYbQ8?iVaKI6R$_-L8lF8T^M0k=xQxd%f*&b`?Cnmomfbovmg3qBqIDHEnrdd2McPEkDq zooe~0z#<;Xloyn9FP&W{lwnaQxY(;-;*A7O=BFQ7wej{>KXMTqRna~St_%e;(<-itL z1!a&4y}*VqJCP1sU=@@>CiDUuzC4(8*aEAd3^Jh?*zhmv-3nW%>yw_G-;ZSO2wUK6 zc)kzUbjU~gJKjU@=6|{$)M{`|=?LEkqPz1+9H%Nldj-p&x4+~%n91V%^ z0cA~~%pMR6I}YbQ6jI8&m+%UtaJb7jbWc%c1^EuA%`?#74llzXnA4AWGxUNMFs|>e z+CM=v_>}a&A}>Np-ZH|`*!+Op1#iPj;>%$L;qM0FCs6R}K(2d^VGf?bJd64z{0#d0 z;Tkv@L~k97j|r!NgfGYb4R{>Rq>OCn1&yGUl!eW5$N~wAd=73S{WQ`i!ni*%m!@oy z*B{1jvj`tX{Y#N?$hVQ==jrhFQ09k2cGa$h_Xl&$PCuHv;YrBXXx9bk?{$%|=%UGY zGx9ZTatT)vo&rWn+M{f*Ce(2-Hp}3iLm5NpA49(swh_J?Y6!OlUthwrL= z8a6;BjD&XZ&M>Yc;W!Z6AL#cB(3f~I<#Yh??KBAOO$R~;Jn-M?0eJ`S_q516f6^v- z9`(Ozo5{N;`D^w$Kw(|LNP-8J-`E4;+x0iD?m+PeJn)C{K)~&Z9J6Ez=(TeUbAu6e zk`{0cOkOv7KpgPE|Ct8@)bvZwx8}TYVEq1{ZLZ%{MY8?P7>Lxc|807tGWS;(AcGm7 z2R@ImzupVk%e!8(J>{LQy=`-o!`Pc^4A$4SChr0H$MZnc9=c@oM()Avfcn400|DCkTO0$;+}_Nw|4ZC)pqc+g9thCZUpjV8 zULz@LpO^4+Wq7=yg2L@39=^YX$E8e@FOoF6hU)%rP7l!dF0dy_(t+g<-~lt1!{r~K zYX`b;zyk+7(0~WR_j_+VK;AAc-Y}~FSBuvt|F1g!JL+tJw#ZogPc7yeT%@$4p}4g3 z|8m?k)SmG4@b(2zNWY9Ecwjl;fdd}+|LTEr_@52*U5;TRKzYqzOye=2^8!6Bd02hzzgO#IxM=JxP*-iOs3x1@>cum#*;{=LrAuDjfAN+00h!^}nd!>?jZ>sv%(rOf7{xxy4D58BNa?#Q zBWQ~(5@*wC|LXR+x(ww0=F!_!`skJs9@pE}lO7%?+pn^eHBidl(!~?MoTG+`L9gKJVfuB4yiQvLU@mm+d0?jU@PoUc~2n@|E#P1~%f85%7CDKAK}n zv3qPWahh3gk@m~-OXMQ*E#tf(@@x(mCfiRV__Ok`=l+>re%AO{mCc9b#;l5_iQ(BxHSGVJ~MHt@4wlfrXTy; zuV0$)*B%f5-^x2M{(s%$(*b|}G5pD4c)ylRtmEL9N~uid;bw_3fqjtPd?uVhK5u*W zH!jCPIZqpD<`-G6-bka@=Rxd^+*7lq9kPg@WXaHLCobW=wYis@-rtqRegyH~)0~Xv z1eXj#f3!XYJGT!3ri^;InDqoVEJD7EDl~CHC}Vp$;X$Hsm%Z68!R9z)h>T?GNsbsa z_5PmQ7_s3Il%_9Nl4kA~h*>1R7~302pCd-@vNzk?vB@=t$i3PAC)?m@V#J{7`+u^H z2io9ln%{#TA`TK)DaUU?7C8sWV$Ma8^p3^vYi;@<*Oq26Iurl3r73@3>onuw_k0}w zZ)l@zM>8)o^R)fhwiy`9wi^Mz*Lf993oaRiq`fky6q(^l6DL}4k@XQp z-Ev5uy>EHK%lM^nGX~9=+?V$6t4%|F3itWG_#r$`gYmFyBJq@QykVpB%2Xm=8*kWaXTqj_k@_C(e8$jXVEhQO%p$GH>rPm7^32TZk0z3bWEpd! zZzB2K_$-m`xQsL=WjxvJh)qUXD!d$YI%| ztXvsKvR^b*Zg@Mx%ZZeqZUz_ejdzi__)Vnv1l#)muaVo8)?oXCcdwB#(o5WI57E4+@u>hi-6euT7KA5Ii|inNoj*D zG8W9ja0o7Y3I`1$1WezJFGU)isV_pdeO8&WO!<4t7;d+xc7)qKNrAFY*_>ZQ`dzuz z)k}T9#=f(^`|N(((@xX3I8WH?H%XU8bh3EkCal{yP_jev->N!yFZ|i3^ zjpDGb7dhUWV}2x^Yqrn!k;?eL(3y71{Y7(+(c3qZZsfk&8G9q=5D;Y9TlxEH*HAkS z_%1X)9j}Mhd-I(+mdwIDIFEMc(%$*7_ZmQsJ0@S8Cmen}3Xe-2`+8h7(S`Thl;xG)dVcM2r23_Avh0rxFQ=inlx^_#DOcte zq?z&Oy~Yx~vGs;gt9{K^jIHFI&_7tY5eXhSD+dZ{o78#}fJ+;B4dD9!J z%WLZm?@zvBw@tHL`Ahw2%88VJe~%&3mWKB6@Opl&_z2ezdy*vAS@zcNI4r~4H49xN zeYjnCd{6oIq&N8`y&?aLO+)?;?1-P-#~NzS4#%DO}|8Dy76CIA6~ABQ{92(58{D&@{fw$ zrI_#*$oA+Y=|SRwaY~((rPNvcGvk%=4~;#`G2N8%a%-VdJ1(?CJa1b&9AdN_Yg>mG zVbeSzM93!A*gPXPW3e%WY~qZ~NL?2;7lM=C#H2MTuw%i3IFa{ad-6&<#0$1{GMKIq zjxq6*$Jy3E>OZ+fLWuhIv0nRE#eN+22Dj{>%?oy1FiiOqbbGL032xcQCOS;|2jlIg zU{%eqn}RiLqTSp@!q$#iw(TNe>l*CA8i+kuOJ0alOIlcJ*-GALZxN;9crLSq?f6TV zCF26Bim@P6yR<2=6Tt_`BAe&hez10pwf$hVCJt8fap>t&qj7dB_>RoAFNf-f@xky_ zc8IOEHQXUa%S_uEgNun5kw}7 z{CupP2qKe3{*!bNnJn_@>2@NBOcvR8f_*+z-8;iRAF6($jbJ@To5AWqec*#+kvl05 zL?(;;mijzeXX^|NngLtRvPMDFSJQe8WW#R zT;rry(H;%;R|&L7W8$=>O5>!Donl`M)v!in+qL|UdHU7XALYm_k(L`4X{np|=kJ|3 zW0~)@PUMXR!J(@I=Y_?eCm&c4>&iHh&xF~jDLjRo!m)IU9qY)@PGnh@9Rng`T^T2GJoX?m)|GK0FAuBlUe*oJfmfhIjd9x*Y=+#JVz0&iHhOS&qR!ud4{`B@jGdJrxo+z6S3JQ^;5r=Tlrg12D;+y!63ThtY}%nmWt z_5~c;xYBnz$In1YLWqz}qOti#Y^GupBv?+eu_@7YVRM<->GXCc?faY4o8HCo>if^q zEo9aAHxFu>KU3m^EM!&N=F#f=nntErE= z;Cpn6-4TLv_AI+2_?|f4P6m;QA}eRv$sjUOL{=kfD6CXGgZbRmrO&^*eC8@-8-HF`&$cBN9MW zZ#M<&HO@(3-SJkGx}%My{<4neE12SaQKet0rhw0LoOE5%FVHD7YSRZ zz89rV?P#eLv~LA%dy;xirJcWYIW;$+ZejdF)d`GSsLC%^O1Oai@mtskarpAysg_D$ zT%8BUa_%{6d&07_X4=)oZ`u}AEy1qMYh|iUR!m3|PJ6vfrA_rn!ap#NJLPqF4Y)zl zopARQOEqG<`Jfebw4KbnjB`;H=b`k=luA#DQf){}yNWj8hqKw%$6)s!^?n2yjO~-S zke-Q7Vb=q@rwNzsjM^vn+)4hcpn|gQN0yU!7TfiKe?+P4sq1=l9noDv-B%DUo*tuG zjE+%%pB$qaA%~Lo7%U_I`Ud7%ra_mCw*&oV*ny|82Wt`I39O6J_eH-IJy@rq2g^@8 zzF zxH5-x0<3efkkuNtk((Y%{9>0-I&%m&J&v?BE}`_bPWmexYjfF#i#RTqAoGc5A(L0a zI1kMIb=>Gpe4Noc(!OwoT0hfX1yxrtPNC}TS5~O;oz74@a`+7}+v-cGVSAp2Z$Hkl zQ-y!7iBkQjcQ|~={9gFVWeonVz;+yCY!%~j72|T%)P3_~AGS*$w#hl|;JT zhsgOu&KYvP2tWRFoNW#k$JaOz87q?GYaED-70Ged2CJcC>1Ou#6FJ9#uMy`M@a>*E zse1R#Ft-3%P+dtn_>63h9r%nap2e{N{(k)4slaA$yiI=L;GuR$@ZHUM0DR%`Nu-0% z$fJhZoxt}T=LztI$ID0upOG(8hnG`nmzO#87koy>&|mNw`ROD}8Tya0ltE3lm<&7I zir!FKVDT?@9R`wa=tS7?Ibp+4!UjKca6@OtQs=3_c+!$F6S7)kBuP-8$%`S-HDwcEyJ$f4P#;PK)d>w;db>8$Jy00hq29(Ycp&gw9|4~f)e@t z5KW?%F$qd!yAhgXM~F??DfZpbolX1!;ujL{L%apYfdJQg;0u>BFVpigJuhP(##~J1 zWI4HZ>I%;JTc_Kdg;P0ZlyXc_TRA4kt(dKiOjGt(Jo6A+A4z_k315_jBsp)9~KAF!v`! z%6$mX^DaHNVm@^t$6`57>tnQpqtq0xX@hV*JH^0t>=eT~!Z4LSpU1toAlzd+&%k}O z^9&afh6>6K(uTNUI$^^)u}e^WJIAV=qFB}Bx>)7^AXa5F))%m^%z!tTf7sdh7}<$7 z^yPRja!Qun27Hj{%4CtLId*5mmCOULWd3(ni^l4#aj+6zXslk!vD<(T5?z@ra(1pm z8|IZ@eaiVBtZmE(!767S2-Y6bwT;J4+lu`f#>h3yA;20#nP8nonP3Gd6RbU?Ya5T9 zwiWx*DRuySHrEH>d*B2+4y@%Im%*1uI`|e52cMtw<(t{IPnbB#B`HA>PBigs6Zl4WRw`JLJU=7Q(hUxnzv`Wq6gi>VW=zaqi<5Wj#m zdAc13)z2kWP)b{tqgq6g~``UO@ReFkeWaj@dZ57t}M z1y(8j1Zx?-1M5TdU@bup*7@kcD#s7Nfm^BB?DK2b=gqRA<65P;(pDQ>Vh)K@!UpzX zmo}cT=-l{q*a)s&#{|j(%DK5HP9yaM)3Ni!6TNy<<|A#^sz;_@ryf~%uX^OICp~#7 zH`giq^UiTO-P5o7FB z@CkD}`qW&`zu*&^aC{q|n5f22u$zC^E>V3q!*2d5*F($EEk~E$K2fF5w3|LuaiR$oo6ZB@E=p3ue@kk$wYIuIIGmx=rNCoMXW1#yJM8Q#r@DNZ9gou5ppDm0Vy~d&zq(O674MU^ey4 zrj8Wmvw4*JOP9Q?fSSsAXU7`g{JkSN%8`>@$@QJ+qu9SEGk>lFbx-!fyn3=1Z<>T( zw|mt|_u5MMvas?!@fzl1HO$9qI&g1KWR5F0IdT`*zrlHu%$eTe8s8yCOO8|LbFCbl zKech^QX#uoW7mp%I>EUW^B_-IamHq$uFsiwdD5Gh^zi!>lX6$7SMc+s+>NRU^WI6h z52+a(FZ*|iRfCIT)z}YX73b_!_q?6zp0`uo^S0kTZ~NuEotbl_z~H*ALLx`mvg-tryHi&mqYLx)4{~gk?q9 zl(X4hCi4y9-Enp@_%6@0lfm~SeFtkX=T)#8bM6JJ>ts6)tcP>#IIyC5)(qA|%!9zn zMS}GL`N7(T1Z&kOI}WTbkzhqlwUfbjIdQOJa_waBb>sXB);Z(@nfv%AMm|5#y%ISMjmgU2~{()?X#iEGk5a4 zb0@#dokp@v!1@Q<1Y|Ddcjr?6wdlJ~vi)G~LJwAR?7=z{dyu)7-<@muWv-QiJy=`O zgPwckkFyiO*JzsE27ESc1>ZlX@$8fM3zO_*@L4=t1m8UD!DnL+zSh`-?Oxq7K=kvRBKEKTQayWkFa6Hmd!W^%H z;i*pe8usrp_UWg&b^#wGx-wbhW{#o49WL#$J&t{>C-Fx-yhzxPPMHGpO~1@J8}poS z@&!>U_q-^z0(QbFS4Ao2p?-HR>X*6b>*MUpq5AAR`*Nth5(zRl^}BOZzdJYe%iQ!# z`smJ2{hs-$-!nh;d*-Kp&-~Oc^V5~&cju^n&m7h7nWOsMIjY~Cqx#)Bs^6WX`rSFI z-<_lS-8rh?oum3?j{0Y=rNGxE*A9S>`KsTYv-)Mux{2)!GI#a6b63ARclFEM^%l}W z=CFR5!w%v(kmgcXns}=yM{nXm>F77GO=h$Gs@Yb;I+q)fLJDbv*|uE>|HZ>ogbm#& zLojV%F7223bn~@aRr9qwz*fz(2xk%IIMUqzqH6Ac7ZU2~v(RUu&kED8MZXsP+PeBl z%zIpXNM9G`S73vLtpV${ssZbE0Pi?VCp?`n?HbVLMKz$!yO2;2PcBE0_A&lEo_j@J?nD0#_g{tCgoUBvYkVqv zMV^mI6K0Yo97*~X(uBV^jDWix24= z$oK#oBy9PxiN`ynV)Wl7mID*$?ynlBL3CtDD~AOo?ml*$Q;9a z0?geTv5$o>NVaIgQ^?YCWeREm%U3Z$HBWd0ozaGhDUH8d<6Hw4exO+4ZiC+R)FtT zuI*hU>>I=}!$rcrC6w!3;u#yq!eTg_HVlIcc{Y%I;bUseE1T84?EBP|POH_mjISWv zEAIJTlb^Wq3d$)$$Qe9nDpy;W)0R5o>_y{ zooDUcd50n$f28BHLiV}t_-TKZ?z}_Mm3t2^7Sei@cS>C(Y@PdjlsdP$rB+?YxteDb zKd_IV%W>nEF6WL7sMk1-ox!%Ag)C%D2oqd>yS!VXvVdU5W~9%;2Xd@#!!7e&srT+^!WqT>hV0kbWqXbhpW}=@PU`Xyr<*E zN4l3=X^)q4itXy8!754k+en8tZlAmwI#A; zhMj&7;{tpYL+p;=JDy`K_^vw6?gYX3?zw%d@1&01H@k9fQr|v2yWM?rQnZovZH89o z(T?3WyK-(?-?!M#yKhd5HgfmeaGOch>)E#Qu7j4m_fR)pP~9^}(p|~>5Z<_XAHqoU zK7^5-$J?pk`+1<94nD%k5`X0cI~{ztkFfiJ$ZF!LqU%{;2Rcu)`-899Fna)qtd{r~ z(ylwf?hn4pN7w^EWVOWa!WKkU-@$u(;Di3I>?m>=<$|v>wji>actCW$xpxn~R)g&R zAn}em-YR8TEACUZIs-Wr*(y=Tw^9c9pt=|DV}S1wo&$m}JZ|0(F)|N(@EK{|8+n0k zESR`?S0s_=`GScXJEJ%6jTkwS_dUS(I`4ykFFbxK>EJW6BYsWAH{etB3w#p3mN57R zkOsaK;vn&W#2+CJ_1;f8IPCou^PY;4;qRw}$IW{xMmAxafbRjeIf$%&6F&*<@QV;0 zZ_K?xAqyJ^m6SDDt!{k0N`lpOb&l;e_8&n}o`Xu_W3{Wd%~VOSx~|T#eVqL#5;^QQ zk+_-tT9{5fUKTMISi~IQ1K#EPAdmAv)0AaTjOKj~ZqDu#<<;f%Mst_tVd8AtYJ;(38@hx*| zFDH$+tGsL=-OI%sJNL!~C)ib9Qkma+Ih=GagYoyCXf(vG5^iK(Ektu|EG!@_yv;dl zPmDOut`f#@4J};l(h4c8!I#1@_*3YKKSQYKp7?Vc`VcC5+X%J%D*U-O{(`@}9ECr< z~tguBA`HINB~`(610GI)i?Fh(3gh{*Zn>MjoMrG~opD zg;3EakgpNrD};(}#Q1s_f9#DK`s<|#e|T9*x|dV%$KF^<|GhL}e0e#9bT5z5zP<4@ z^?Mmj`@B?=?qw$J+Z(ym@8t{PUYZj3(wXtUCq5j^c7j!mb>TyoX-MHA#{Zt^&e#{y z8SBEiEGRu{JAGuax4+<#dm_uu|%jMEPQ}J_rzp;DNMtU!tE}dkiuQ~ zQaC~O9T>0V~z&%H4Ze|hm(@~N_3ttQRy)#@7J>BK)JzKHl=u|ImSdQjwvGwqC;k?KK_pR--PoWpkU zazE)_CX?>vRptP~D3>#kLQ|fV3dMwlD_z#n2QRa7?Q}?8&i#mDuBn9tn3J_;P6n&%>KuDhUOaO$ z2bC1hoa__kWU#uf&Z*zj8!k;d!sV&l&uBHBd#K#Yx|(h5Wi);Aav}W@+S4Dw*mkE+ z4l1cTeY%?Ka9CYe=h&O_UgrADK_$J+b@*ud1gq=nocc|@;nK7tTy~{T+qr*{%)1H; z3D@vmp@(D%Uwl!D;`bN*!KdLJri&BeqvSUk7mrubusWFL#9bYF$$OEuC4U3938|FZ zM9Lk|u&r(r^*e3qdqs-sJHze|J`L|x^=%g)MVQ}>sAyOnOmpI{4!z{PLfewR0o!(| zl-oqg9ni3?Zj=0OMYn0~RJ%X;&KqhE03YFw5}(FR#d{9i(=23R)=20pd zRulF)=(wvx|4fS7{7k&qrZ;FiDphSB)kJLjHDvn(ZTNvU{6HIipbfB^u+KrqT^)Mb z@B?iiExkco+VBHyz_wpQw!@!GQNzdB>EP4w?i(`I#J4o{sVz-oqPC2-Q@4y((Xg7Z z&q2ps9r|Ze)Rt%C#WuY`+tI0N%jhOz+pi(pyYbWA_~~x^bT@v2)r5TxI_~Pwd@nd&iH|}^agG5LudSeZNG+W zyRvP%Hj9bs%J%6xMn%JF!afHbcXjC5u3evt7u)m(ZO5dlu49^rZNG+W7rd9E7I3}- zpN4lMk*Ovg&oNub|;S{y)Vn{SHRfjL$!10TB6CKHMkMK0!tJKEpw{t8u zQXiY;n4DY{L)*AN2-VMVo~at5qMzg4OTrx`E`;a5lH(8f)^Pj*AK`$+Z$=NkE760* z0}>B!&+ShqsN1;*3DvVXr`>*>ik{7Tn}j<_T=<&4em#Nt6n@gs@2?Z%qX-ASo}i*( zbui6|yE^oe_hM~J{swFlQz^HJlslkdTiqt=ciQwQzJHWCANVx*{?YdFQG^4J&Q#H` zI+*6fT^)MKyFuHMzX99!sg&D9${oA~+6NAp|8 zG=8g+#{KX#ey1XG3v-ljIj{HNy#6t=19AytS!l`}#DQl3%t4kg2Z7afb&hRU#=USS za}WoWbSHC=uFOGTbzPlfyOgmPiB^n{NZi1C&ftS&k#WpJp2*_2ytLJenPVIIHTxT+ zgHM<+#O?0$mncL(*rDzuH^ z-6}8EbC1HCZp3->3Gv>{VxN5%+|QT=H^L2+=?3=#z#}DGcZ;6Ty_-%wt}E*(Q@!RY z13Xf~b+@7GOFg`4#50iIJWjkf$;5l}4DIsfMZSUJjp=zyx{flLxCa9sDdD<1866#E zN=64fQo?n23+~cR|7pX}Ar)A@3c2n*J(4 zh3M|zD!KOW`7PiXWw_&?!!yc|-kI@HfC|ywzg1e&zhxf18x`_xCqcpuX}Ar)A@3cY zg5B;$g`{9dJ6IfTypQRQJAQc6PtpHW(;sd!+&dW8LIdUlp$Vl~_!ag9Z|;o%wTBJ^R76f(mt z$(hXiFy7mJgX@7em@8qtw|g1a0hhH@CK&JS&W_-kZiF(ycyD)kt`!xUApT4vOl0ZamJdLr#)=m#8$sNeMwrN%9W3i1y>e5_hagfTj5y(Q(g+Q^ zTh>E*%@&r8AW~x$_F08}V7#}x3fD-hG*KoP@9q8q`+R|YVEkQf?DGZof$?8>xxe8Z zf^Qfn?RgHXJ#$-M-XZ8qJ#H_yxNb8JgcWTq;SWBqo)fvFo2BvO=4y+`Cp%ig2Xg&R zWc%)x#@$<}Eh3-cxdpIZ=xQks)`OgnfHkI@r94=tu;zGEhjHgk3(|x2I_bgs7t(|E z6zRdbEz(jRthd-df^`snuwKCr)+ea5H^{ki~`BC_MWi!sGneG zo)E&BAB0Z{6KWGCyhxa^n&Vmc8|@Hg;})*r7B=A)vOHJ_^JX~V-n2PV&eevnHX&9` zp7^Sq>jdpQQNgOomdqpG9AVBDCN(oqrb)CPJW|4Sx1qb9ajv6G>#+lPq=f74nbgyp z*_7)|P3kD@r(7Ln+E2OQkrJ-E4c%LmtHZqn$_0;uy7L1?B1}(+bK3kCbrT-G*|#aZ#=}WofIBL%BN2lta1TkrJ-E4c#l0tD{U; zC>K0Z!gcq4%Jrt1vZ`jv*QXi#v}WNd1Tx&a%PIHn03SEc=(t;{5XjiTd5MsKeggUl z=qI2L8S}T5Q}ee4_{?w0eFmN@f{gN9KPu1lqw-ucD*vJifs96^ZA98eq-{i6$T&$^ zCn@VBWu2rf$cRBN2E7>cV$g$(8I&=DGGYS4QIZF|UC2b~8)8+nlpO25$Vio47I(@5B2(V6E1YYg{c=2xQ>Kue*)-+SsHv zHmOZpYSR|T*oW=*VY_|UZXdP-9=)@w&ggYUuQPg(k&5k7v0W;*OT~7OVZwGMY-hrD zCTs^83D^#-=ds;+(n1Dq{JPtS55jg}{T|zWkG&uRH-6o1#Fxi*V1+Uwf5LWP{T|zW zkG&uRH-6nsTp5W!f$hNhK!l~<1LO%Axbf?5;>t+;gV+wN^{`z%>;)OP@#}6Qem3V2 zLL}!_Iw~ZRvcV%ITz4C~eK=0M`53=9Ggt$>sla|m2xGsaqfB9(7lKDhxb8M|KOzrr zE>K6|H1*VB4^KV8BPCpS8@d~tTGDm6CQHA9M@qQvevNrSN10w@UI34jaNQlrIj}d= zS!)cU+F0g!NJnb?(8)5-LpoApR(H!h59vsaWwDld9@3E-yI5c6vu8rRw~57LF&ycY%{)4%R&nFk`%m+-tKh)n+!eGr*$ZfBVXBGVtDJ|HrE74MUQ z$n*v1d2_t2Wj&-J5p(nC2>xhuoOvmu=Bu*&7^JRkJ-$1>K zq5(EB*cEQsxQlrKnO>AM^h6$wuxvcav5Un0kFq{>6HZV+!SE~UB&?>7i()Fa6slqy zgJ#&X8TLe`7bOink=1FtK>+p)z@EtTqNJfGGJ?7aSE;LD_zw^#SgEsM__t%vqL|9~ z@uoYr5)NWh9c4Pm91I>Q;kw(<{fT2i_!`^lDAU)>m*9~SuDcE0zf-O^)na+Z#*3;P z>zXvN) zuzAq@)uXVzhl@=tA42-{7c3t_dUx^^GRRM;#YENOv-)8~n&~DhB9$;L-a) z^kz|Kus%zD!CIRH#tVqG;LGy>x9)pvgl~BoP zB~&`koY;8g;;m_s% z4_G10BW)tzrH&vn%p+|g*J87K(TaNCizz&Va)N6Z!bj9gM}>UE`wb`Bs}RVzJ51Ld zMxBKi>a4?FnR^<;c)tNM?hey+pQesQafCiDif^z1SivUpL)s1^Z6f(*p5629JWcY= zys9AI&eLQB_AZLE)VnAKqhAyixsFm4#&b%BG@e&7{cjG?N815_W zAg+~%*LYu0nCD?6X@26JvhCJsGx*W|rEFX~XZr;7QSf)5U zpyGLdN4WU1?!P4NS-Sh;QC*he9hpG#KT7&Bl(z?Y7P=8OgF60#+fAN#zIn#`dP%1& z#XR_GlK1u|k@uZ%q4DmXmyVyIQ-*hj?tCMS_xQYY{0*JqT3Pz{)4bwK81V;qF9+^? zv-B|a9Kg3yEqo(&C*Ml-L*9t;RppU$sDFRnDe6cY_M+#)U(~O$iSK~IUU&|=!*Ga$ zBhUnT!DKiM5%2=ULKI8`H|&97a2QTOOUQ>g@G4w^H=rG)z)r{jKG&?qzyTNq$Kfoz z1Q)>t-$5ss2<@Riq(UMrfN?bJBvkex4&H%V@DyMF_!GPjSD*2K;g18Ydh`83 z1bd(~I^7@(E<#Oo;$Rh=gD26M1{a|Y@gv|9@FlJ}OoT1an)qdK8=4c(>&faclp&78 zT+M@n(3|)VU=$pLvgq`NWpEYhpfd#4!3AiHP6k|q2E@M#+n@w-FTqsEfsVwl1~YLl z!Av*_yh5pZK_(mnc}?_F;8Wz<|KI!_VK?DNxDCF92f!2X6qJDqV1rPo33Xr#Y=bOV z2CHBlybm8j)!L3xp>d;-p>e}iRsGL!71}2$tcHpiF)S&zUebUe0ab4o^QmR4%J-h4 z;^Kw`s9Ltrp;4nm=zsfoJaH0~G^~c>QE|kMQm@n^x6CMb^ zpyP%|2|IxN2$n$D3is_Q@F4tUIpHuKUW7&vg??3J5S&@&zMTWBVJ7r~t(5gP%!F5= z57dCmq+1J>(V0ZOyHfvW;0W&XAYqj#|NIj7?U%p`r>JKibVfrmZJP$2(J{g#t>h!= zR}m-qrDMB*c{;y`+sOM~^7kmyJI{NS``;AqUElwW?%&&%zqd`K{{M+Ges4Sdk$=Hl z_OIIFzkMA1UiG^$!+qQKj{A0TxUrUX9k#$S_+pOxb}G`kjx~<>lduS0gMrWno`*W< zRDj~}mo@I&?~$$@?o-HOtd9){`+2n=hLN(aG(tW!>bb_mtF$;P@HP}lY6UpNRFyzaWlfqhjn{_o8nGLI94qPT|Kg3eE zbXhw|znAjHlcp!~BjgtL8=YBeBcLjj1ruCg?L7mZ!7_LSWIxgzYJ%(`Zm<>~1<9i? zvNb#b6<`r-{$MBzTUqy4z%&>EJ)s%6S+D<$?$e|XqJBS9?qv}FMr1Pd^7wZmZ_p

    a6Yb{h#iLql(1>*^m6~e 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 z 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%0DSZpl@x&1M zlU4d|JfMXB!GAT<@gx!HE|tz*dNLg-nEN+rudn8!A{KkiyWz&XtOi=_H?{IK@iqsO zy-k?xmuRxO9-QBfS4(uJ=dmzPV6z@L5c($=iFQJag0s=z;^|(D$M5?hLD=p7>3Hn6 zwigU(F9=*U?&e$bZfS`0AHn&1k*`ZO2ttG^8~}5gTpN2Ae%VUVCIUwxk22A>LQ4QK>@zrjOUExG_MJC7ZQ`Wef_(Y4W&oKBE1&61R-zkD$ zWr~TPJFtqk6=bav{0f3I(RZwJxpV%z2=;r-9r&*&FlmAwoIW8_5B_XICglBCdnjc> zv35_bmW3u=o1y2llzviB@u61!6+8yr!CQMgfunk0OSQIqsMO)~H#2qrUNAn~Q@Zck z;KfrtfsLL3ZW}dW?;Wq~=&7jnRE?T|*ECed9lQz&2MV(Gd$JBq>A^A{RNdo3JG^*; zn~iz;1iTz>dPM-(y#v5{vRZV!dX00tK4NNm#}~u>P)^sPbiJZS*RD>P;C9tc=_$xr zsXhD_5GxGcGB^p4q@00=-^xtAqPBE{I|ou9c5C0Lzb1GwZ~^hK@FB6+ebp*9M0V60mMtl%*|)O`isHDqZMt9l_Tp<(#f9pLELA*^^Ew zy;ay>&bEd7i-MC<-L4Pa{$o8_`CF(GlwXjPt(AUh%EmArdd?=T{6+Sr%ROUz*wg1- z<{6#j-Q!7ySVa78G_O!F+~2xgU2a!P$8Me7pKP9?Y`jCd1E`1!--oaVic~tRoQBMv zz?RT8_|=;l*j_{XaF6IWxp(yrHqM-nv}GJnLYI5CwyY9S>`P=v@`>n3bUd2<`zLD4 zFVX`yOu%Ds*WPC)fn`OlJJ6_=uM=AO6ifD2k;>ZZ&RRL8)|2zTw(Mm_RCy+(oBNJK zdQ&51QFfSek)G4AI7<&s1H#kB=4MZGY5pKH2383>lHJBd?kqHrh9#Tx{)sfz4S`h? zS+PHqe7@`nrsP}=Mj6w|sPc9TBYZEWfYA{$+9YuDH^SaK7p4{j)}hNpW1OM~*6V?N zdH_=Iz4Rq^7@`JR#R9PMpvOUX155H`bzO~aFsrRFIPG-NQ|M@6-CIbGD?o#my++nv z(N9#nb3#Z*gRi?LI1TT~qg)Y8A&QV_=J(j6SMkG~XjcJAd#ZwDW0$L_2rq z)Rl(ZXrv&tWm}j58p=Rp7iRZOz{z&9a-yk)7gu{{=z)Xb_Pa_o@GFINmO&j!-mmL{ zZmAmf>9Pa3Ba)8ZPV^I^{bq}*p#2_;wBMX&t$cDg{;S9s$~poY3v2=8c*2+Vz_9Qf zRYm0NCG2Q?qq21Esz!k34nBB+#0ULzx<~fU8SbnQROLDbJrRyv+<^`bD7x7@k3wCi zUpBUMpC@Pg;;(sv`Gd6OK9?u3Eie1Z(jSQ~spB-+?_8xVe{j&T-0TN0>M8xMZ0W5_ z_Tk}~THxBtmhL@ATb`4bon1P6%EpciJdYkcMK$Yb8KvKF=WHn5Pf$Isy=Ghu|2m>D z8kDOx!-|IRCmwFPSc2o}$t1OHdpok@35n`W9#9HTJIR`wOSpIOxNlL^LPkw&M=3~`B=a-6o9zd87OrF zO08$)R2exp6OmgH*}%w)WaJ%_5xEm=bCIx;2_cxB-raO1t#6*4e;ZXt^7Bt zNb(njvJCPMAOTgz>4)g&C4V7r3Gc_gGUL7lCUA!Yi zktt~?0r=qN{0xUXS2KZl2^M!$j2HyG5^S$4%ZkeaLDQfog4Dje92}h^LHJ z!S5foUQ-RU&O=m=G>DQ5Q37pApxPM%LH%?>H=WSUHY9gKKihcAHUhtGAO3mEwhsL7 zN6`mRW+Utw;{bwNBjUivy9)B`#qTEk@4){DxbH3e*F)qCoQ1iW!oKZ>{GK7Tl(%jd z#BRa*dFWA~BlM*QjzWfwx_?(K3ILWRU%)@`6t)AK>1b2TO1{l{SW`qPCEteNGC`EB zd5vsqk??KQ#@p(y+esiBJVRDP9Du1E22wxBqiIO4%MffzG`j{o)vUnI=7ObY39;h$ft>+wBoLhE(Pm=dCyeRMv-dVn}bQ|*F zoxXI$-b!z#0l+z27CQPXfca~v0cKbhcb^I33dv({8T6a^*1m17D6ZXjZ;F|*V z!5b6mb5IYo<^|r``}RRrX`T!D{GYiN&-VmA(34B?`Tq62_dm^g)w=_!s#+VpMSAj$ zNgZP#U+yE9Y0JMRI(`VATYkuUf%f|4({nll$4cLKUp{8>SIZti%_gqG0IcP{(k%jC zkL!DQcQ$0KcKi3cI$ny{v+=&=4tx$#^}r@iU=QB9()ZRw33%q~fkyACdR7CTbAywn z9MS{Z_GbTe2Ocpi@$$Y8)wmhD5%1)o+`T%~rh!)Se* zH!R)9O$}PbUa%KgU?PN7;6?0ge!`ZWC)GiD>dzb41XWkstS-%{)qA`C5XHf7=cKG_G=rFXn%J514CFg4TPP*6KoQW!KuP zKG!HIkw=_q>6>;uxrdu_cRbAg-g15^x|q&dHK!FSMpvMC8|Rh2#^-^_|D6*)Bf%6s zY%hGC6weYHK6pvR+p~RzetdieMZ@RIC81b>KppTDFax{E~nrbMPCppo4Q9uc*0sK1di{D?Z}B9>mp!6$0&drY~l_=xlDqT>UO zJil%{^2ftxNECbyV)0}ze6Wy?_}Er($Hzx~4fcM1J&IDo77(@niJIGE%5B9*oX-{= zA8_P(Y@cC>G9Er~S>)Kh-eF$5{UDC`*j8A_$A^VDKHu*K$GG@J%{|GK+lr4kZ!9`K z;K=jE+Mw@v_)s}c&-a&^*NzYLMSN^4pyT61BXz{*8nLu9PWy_Qd$=jL4WDE1uO1yA zaO8Peuc5z)hYuUK6F&6W(F-56SK?z^p&TC{c5;sRd>N(0wV$ZD_lwn)PS1C79#nLE zz>()aJ&pYF@ZrP337=Btwc8K+Y~o{EK^z|+J|rFS8EUFw)cz-G?lC7@a5DApG%n6jt|}$iH~gsZhUi9tFd=_(aKFIy0QJqY@%ar@Z0s_oT8| z_!#GbXx_Eq@tp3B#ntZM^dVRZz9`uhkU-I2Ar0i(s%@m6_W z2U67dbKvlljTjT?8PX-jkj411_V|6UJdEjT_*ZYf+h9ALYa~XSYccZZ9gU(|FdIG= zlQ(0sS{h{ikYh;(E^~M($wY=7AZCHs#!=U;2#68)cQ8QJiolG?NI`%Nz`GKW7?0hB zr`9&m7)Hi$ECyl4&}X1o4at^P>cQE$|4icO&D9W!W3hVHQH;`#<&0Zk)6x$(9Ij`5 z#C4XK&h9uhGCqVkqg;&s z27y4yOx6Z?l-z_E?>_v0j0pU0<8LGWS0S#6Qdg|;20?eS1pKa-1$gUm5B|N~>b^A` znL@_RSX#O>gM-kZ4|#@Q9Q}x1_W=f?KLXlofOb029tyO><52}uHo5~F+?WL_$Z9UW z3a4?L%B$zpjF0g%N?dQr5cOgFJ*OHqV$gf4s1t9!AtRGNw`4ffiFKju-cBj==4kRZ z=|k2_dAmIUE>Yp6j^5gdp=GW7=NP0$E!LZAQCyw9x^%o8jXjD*sb9h^(xiruDX%Tv zHKi7o8c`m`Z#jOY`;QhaxfEBIH&b_Q(p{T9!803f7@y?+?(m;_Tw8l~YQw_#U_KQl zAF+2RVkG`?_zEW#vd7kI{#pFQ4PfC9J;7j<6n2xfo~t#wo7kCX<>`C_S$Y)h74Cj& zSR?8k_@)5r4h`?kPj*BRKql(OBBrYQIA1ZPtBXJRtKU0xFBmxV4M3UzMM&csw zoGBxJK|m1ybNMTh&Q(d(DoOr|q@(z(0;^vYf@g_nglM$MaOUGN(U7hBCLwwqx)r!`;FL%+4;?Wc~$*v-cSS+<# z8@H^MZFgKHe@>|MJbUT?Ybkx9wRBZqqaXYSR7Q#LL}O7M5q{0w5uPWkOmu{{ z`sAomGgvAvqSWy!5}J+l>pk*o&)VYKRivdRbt=+Qli#VxdE|+UD9EoO7cdeR5lN?$ zP95R=XdPiGGQd)-I=P8loI1h>aKx15K{_4EGuF4@aly7|L+Layqrw1C1f@gr^UkXE zttxUd@5Dva=wB)_myx)L$fs1~Oh)1&A|F(d^B9SXh`d!rE?^`sA~IV>I`xYqR8qC- zb>y$ewM%|-IrWPxRMHD7m;4pE0xGFiCCOirbhAooQAzSwBwe7A+EtSL6-hl3;$L*B zB>5|nHV9L7>=!RH`o-@W{i01#cgr%ZiYh>)qbZbJYcqvhtT7v$H7Z7b7%8u$8MLWC zM99=1BGkJ-{5z^E-eR2l!}e<|;yCn&Cs6vLODrY-(b5+dTT3>7Z()5DGG-{NJC)io zMKx%COu<{Cuq1T9DJt|H1K}r}&}-;T8AYw5q4P(qlgC}{GKxQ;=LFr~tvh3?bQH3ZfUljEnhoW-DbL!uyWZ}PS{%xws zhw6RqEhfEHgBK{Hk{e}G;k!th{cg>>rX;$#K>a_2z#q!`%ZP)BI4J9n2$&a)j3V+l zb6TQFU&#Iu?*2&J&9_QKMCyC5%wW2|D*s4T;Sn;s&BFSd>Q2=DbAbIh@8HacG^WCy zFw(5VYpmpJHLsa!@*!TUn8f$U!Z&N)G$n0RNo`DOt7$VOtx!q(nY6!VzbWZyBt@Fm z%Lt+3_`c?yui`TM)tXmLxBozLD&$-3?6ox*1u^iyUL|d3()JoGGc=Ou=7J16nAB0z zVM-d0Bny=1Ap#=s_J8sAf7SfUbo+;R<6;uuv1d2e;L&0fvQZ^%W74*oZKk9ZDrp~+ z_SIm7#>mBa4@>#aAwre^Pu~8|ntz&Z|AFK*dkvBb*VJGj%;0prO5)H~;no@~Q#6vM zs-zH;LNy^%5?>)L<)4QLRsJh1|CO3oOt*iC7c9nd8D`8epa z-CQu&UMB6W*=tJTIq0x!m@>?n#`qi}RQW5IXGP5l)9pV{oSMj~sRrXgMj_X$q|Hp) zT(jAfG*u<-VbY$OJ*K4bNJ80>p7lILSQ1`&xUGugnX_-p;50m~=^B+^vJyM>? zvw1NhA{~eqAw!;ju;hQ#{KJ%;@4Ac??Yp4{4|_wNQ&kd2g9}@0T1`pac$;Fb_nGv5 z&HJXLHojT*h)Cc34k93u9CbIoU&yJ3JZoxdOzgN%g|QsxEv&D>*sLMnLY1_U zNgHc8S{{DOn5~j_F=jZM#Y4WxvvP)vh{$&dBAn%Wk&?Vv^P-8}hq5Wmu474c zH5`l&3$alpZD7)d8bljO+<{MCJDIezW~V9XX(U0u$g}M^84;21NkllxH@lYXYHMl@ zc8jiKDJ_g{scDHsU&iQmMz`0rN20%kg2V5FrBe_H7g~yi!r}Ko?e&d%)$lQT6-M>3 z(`6_&?~K7N%IRa%5lY9%ex_cxH?ufrb!lo{D5Gv~21b%kwZFRL;$;Taz{?D-97?X% zb2exXPrV+id*%9j>}Sz)x)+Ybx#Ku+7h_39iwAW)z+a3h|NYAGNlVTwz^JkuS1oXD z&Ew#*>3NUJVT$1hw^Z=0m)m!-EeV6iS?lzw5j#?6VPjS^ww!9qesVrnkM7jG4UWnxnhBB6}GYslbpeC`j{>h=Lt?9i(l*#19R-zn6h5aQd}P~as6zfiN4SB2xDXCaaK#7!BfFVkgSR2Q=*n}vy;`PMXR zb*qslgN(bd3m=592t=pVLOjAkCTSCAbiqX0VInOs5$x>E?}ClA!$w+QBej$oOz_{C z3se8Dt)#F$UOswjvduoMd?AF5v0))Ez(Ssdg;c{r$}pW*2J?6U=J71dqZ;OcIA7VK z|1$%6F)B9$b&`m-3+AjQsFE2itT_Zfkjr?4d_@Qe@qd506)0nVY20JEoV0>{h&^y% zP9|hGi|ppq;!^wqF7uzoWpOnwQr3udnn zRlp!~VJ3tSAdo0*M}{-u0084MMH}D)};5kU(iLk;G;lALxBHJo)G(4Tmcvz2A)F7R&i|;*WH7T z2hY=O(s5SUc)zpY`FT7%M*z<=A>Rd%?+OFYWCPD+fhWQWPlWq|=N(fM!_!$_h3AI~ z&vzm3TafqP2A)F7R&i|;*WJm-gXfw{t`-10Ko5a!V(^+1HC${mjkDAj4dEbP*uNim>DO<(0O-EpT@&; z800$x@_hyJU2fnx*uZnJz!PDGC&GQfv*}{1#L@6{mRI4~q43-edDlYTR}DOcl&#|0 zCa${&9}k{cHtC|<=h1k04h5cHfP8qposUg)%05#KJn?de=MlmRPrmH+;d!*=Yl-3M zEU&_IpTct+iLd0PT+~K!V}@X;Ca4H;%N5iEU&^7K2bz_-wJuxK;C~EcnT?7#kEabcc&c>o`ET` z@jTafUpm|iPdSY*C7YEFG{-@@iI6VaKr`Jy6HESqCc+9$gw1G+T`PgJ;%N5iEU&`zeT8Q$q$Da7}=+9Y+;`!fr zcn$)dr$W9jLOzaCO8XpX;E7EUuup^)o(T5^&+dsP~+;X`{bT)M(5Z4n)Par$UREpBb;oqd+bUW+?hdgq?a z+!+67{-{MqEj2Qp6RqgjrAG2Qi5*4SGQ6i_eVZAfS@Z&H!X#WPGygD}yf=)UxKHsT z(o7?!z4J3o#f$ri7w6v#n^5!3kmfz;YY+6*iJEj*&H9Wg!wtS7IPNLh4DsGWv3tP2 z6V>Vt%>Im8i^xZQTpv}q-pmWU!@Q8_D_U>n1HOun(q9vbwuoZN-h@&uQbcka^@&z= z^im`8I~D!tEVx7LUFsvVdm5_kwG{V8Frsw44<9>neL)yqR!Q6|u?*h_esj1SjA#+# zaP5rzDlHse4IUQ$#GmUI3gK^d#wJL&10{X{u3VILNa+(d_=;AcPH+}fv;+G50A(Ej z&qI#-53hSb}xN6q1;=t@qdc)hi6Mod z-)KcgFV)h1oluBYck0)Um{Z*h{n*g8V@dsnkvC&(LY(w5 zgAVSuqeQs;p3{MxSlKIIa&U*Qr~#E~g|KjWKl^5hX5zSb15MEE9 zv}WkWmcMEi)?dQ}J`EI!Hzn$e>%j`^QS*(E9>)~S+6DdZgZ{C4OX?qY_=<3POFmqX z7vVsI*}G6SdnL>%>)(QQFKm19k7&lCgNXix)(qX)@>k8mdUWXjs7e1^Z&!#jBW7%X^gR7y zC-fhJ{;@hv>K}Lbif|S{K2FXk+6ozWqHH*VE`s;?-umbI;lef1cp=qSw8oK-(tk`* zqDx`uKWfoYOSS0V5rwFAx8dtl>nL>%>)(QQFKm19k7&lCgNXix)(qX)@>k8m`h4jB zNJRe}e#sDvHHx)894pAcLb3%|)PiMu@G%aT&x=N2TmB%fd3l&ybD-W-s+cYgW@X|s zXEH9uxwy=qiOb@7xb$8Hwg+=dd$V;#OQ?{DC-QF477_lG-_gQz$))3P{SmJwbX z7;TB(lja(I)uANT$i~ZB8&u^?TUDyT2W!=Wi@THpxnM2m!@ttt5qH){)Zh?z&Km9E z*QNGmbTL~yF0)#2nNy2P@e8=je-@X;WNKTZwTFwN_HdQh9^}HCYdX)xonY|ZF2wp1&iGuw>{y`Jt!MQN4sO2lkklQ8*;W8@|mpPMhDbB@Z{!CmJ&%@=R1&t4sT#6dw0qM(SQ zEaE7OI4Xq7)v4>4AH_DEtEF6L4&#EpBOhwvf4P{4Ni%%&=)Uo2KON#?jixGRQVPVRn zI9jlwn#+~pK!aMY<2)>M%Y9$|mC&R+P)kMP92`h>R~at%!vAw^8O_4Kr=1H^5qCd8 zF3Eer9r&~$s}-ahP?ucSf`j((`z@eda$8s9v6AyVt{qwRAX4#Pn2F1*TwLbN(_O0? zKL?3oZf}MkAEK?4-l3L=}?h-#>gs0>J+I> zq$+M6S|uwFU<$J8Jy{z)=)8l&$6^a=nVQeW57!?%Ro8!@tnu?bsP7)ucMt2k2le%L zmNEar*YONsg)?P^3A^uJR+u>Z@>pRa?7NN?CcM7ex=i}Vit^L9$oirlU&TL;cXVyW z??aiW#Ei-CwbTw>fiBF&W!6j_ka#wTIrDHSUf`MX9v(%IySUwxwS%W6<}@$4o01`J zMmsKrwYbcB7MD3#ue%tP@#VKud$rWwv(z5q(YdlV%_iMVL?sqv;Bp@%@#Rj&MTZE! znKN;@3B~*7Ex?IX0z=tnR&tGQ^m6yG+&wIJ56j(SD)%*oqB5I=iWdE~XbDZ{So%Bc zH#ko#Uob&55AL|t{M>ATZu3}%wcAAVVfv!e<>MT8j6cnK2l{55xkMAfqGs+tI8u;R z=gDgJxYqIY1v>|{@?WxnRgJi76ZD9882`j^qOeo&fKiK(i@rO&D!jSDy1y3rrZC@z zoy@xInbW~aEFKpR1st`}g(6vuXUcj{);g4I6k8|jv=5I0$70Hmjy_?7yDpUOc5U!n zK4SelHv)^mSOO!RG2ppcf+;2+781|m8%72ud@`}xHWQO5lkw=9j8({ZX(-}iHK+|3_FIU%f6YU4uV>e zOKLwTZpP<=Y*Z$b)HYDuynmUt0o2&=fsp=t@Lp_@J-m~^Z!=x>KF(F*5WJI|n!$qLF+pu<&=UHCBYl_RXcN4|$5`agzhSk_-dyg~>yhoa0U{tsF3A7sLx zw89@tofZC|6#k$T{-6~8pcMX~62L!MvsNL3KLtNPw=geCqD8TgC(9tZxZ!>z(Q;r}_RVOg&Y{0o5p zt;GKa#Q#SY{F6=ilUDd+X|%#0l)@jB!XK2vAC$r$R08<>Z6*}KpMrl#)%nrx^HyQuu>X_=8gTgHrf|N&x?4n+Zkmr{MdE zTr)Tc{IN$K_#-6nf0Lm$mPh=t>mK+cB=G+mLkAEN_&?21H$oEsA4~iZmiRwt;4kWX z9QdaWiI4xMsD@=dIPkv~_}@(Yzfb&sXu*H*bktV$|D+ZESbDAOAC$r$l)@jB!XK2v zA5;SP`)wu^!JmS65V>Y>68OVM0Psgh;J=okHkL>H;dKD`BP8(uD?=<8u*L)9tZxFY4PztifUNaj|2Z}fd99N|J}s@0So@ACj3b&{IOJ9;SWmT z4@%(=O5qPm;SVYS{F7}a6v3Z@?;~=};3V*ej|AY4kifs0p*EIB{NZ&0_#-6n{|iG0 z5EA(R4@2DuN&Fv`_#-Uwf55Pfd-F{}EKfvfdo{yMh0=i2q&0|9%VpX(s$h zEBrB5rSJ!(@CT*v2c_@_rSJ!p0RDcP2}SUy;2|Q{3{C=n_=o`h2nqbxFx1BKh(Eke z0Dpu8{(olZ073%)Uoq5;ki zA3i-?zJI2h@F%VC$5L>GKPZJiD1|>Lg+C~TKd1!oPqvv*1b+&?m&i4PlfWN7GJroq z0{_(vwXr1-Kd6T zJv;Ev2mZ5({~g4CiN*ehnD8g9@W;||g+C~TKPZJiD1|>Lg+HhS@b}wHD1tu)-$Ue@ z!Aal`A0faWA%TArLv1XN_`~Z6@JC4C|3`)nASCer1w-8kN&J^d{1KM;ixZXk?NcY} zdmQ*zy5i%12-UExe+T|Efd4GwkI$@$g^Mlt4>jRWTH%kS<_dpM3V%=ve^3g4Pzrxg z3E-b>Goc9n6#N4s*9=YqfA~ZJ{s;;DS25Ja@`yjYtN?$61pd!4bO0fN|IZofMo8jc zDe*^G;=kCie^KA#z&|x9KK=($4a<6Y;D0snzmfQVkNB5b@E>NvpR~dsOVbtppcMX~ z6#k$T{-6~8pc25}Z!@6?{uF#Sk!uDgf&V)UwIU?&Z)B*A2A0Kopx4OGDG zRDjo_fZ-+ukX8!7T6U!XP)Y%ylmb901%Oft02NWd_fbj50f<3%8ulzJV{{KZaEbI4y|5d>MdgA{b;=j;>|40-5q!s>HDzESdrSJ!( z@CT*v2c_@_l>q+9HWP~APr-K)xn^(@_``=0@JC4CU(Zk*%On0Z3~@of!2fp)9Y9Fn z{}YC~5t8^nEb&KJ;=j zR~}t3sf|f4OmQbk$7uF74-lr;S_JKRyxaF$27xGtr4`G?aKCaH^eCou^rc4_r9J#} zT=npD0HhX^2G+SZ!}Ins&cvx(AW)IRmX-^BT2gSr<|H2CMI&wcjH?5v@rNI7ygYL&=3*xXj|} zia9N~6mxaO{1OJ{l z%7jyZi+*g@8E3`}bWA!k&GkWNGPH~{e-WJ}CL%Qk`FxbmNBMk|&qw)ul+P#R^O@vZ zYI!rs+N5XkXo`skttvCGzxl7$HKPnG!t%>VRgP-;(+*DXw+Pe~}cN&H3`{ zNNpgsfz(c1h@LMWPUQfPy*#X#qfa^RX~Eh!v4^OaJbX?d^D_RD=fh<8FsYxA`U$Du zk@_7euD#5!AqD4rzWjPp8%b>>wF?(151jBh%R?W0lm}}yo#o+s12Qk;FM0aO-B0SL zq<%{3e@Xo>DXs<1{|6~JGxX&*kZL8>O6q-Fq&#q1=qwNY1ydfZ9d?$7?~%y7jKAbr zPVVKTen#qNq<&B8_oTSkJpUz9aQ5iSUrFk1Qg4&`4=z$3ICXTE=MyZ5gE*gXMI3Ff zlHU=yc^QAnqk`NjNIgmFNm73x^#@Yi+>rk=DLB9M!to3eHh|`AwuYliEyb4=%ENI6-wT zzgw2yZIsV(B;34=zvS@QAKpM2h?O@?RkZ=dix~)ugtN+CpkCF0y<$ zfpsq5vi}UXS8^N?H!tHac?8HUKsj;vNea$!efeuhZ6&ppR0tPY zKAhk>ly6^;iQ6kVj*Od^@s~UvCAUXO{ST@CA@vthe<8*7)cOA+1?RxN{ANP5QcsckE2+Pd;(Gr4S4qJ+vM+xvsqLh; zlj^`lmJcV$j^$g|qvQ5U&LiRGW&9$YsW(ZzNve%h z8>#)c$ny6iuDAW$_e0?JO3owV=4JdPk07}PNj*dA8B+g8>iq)&w>OE4OxXAK55$8}o9LsY9VR*e6^DJQQ1*GPYnn!9TshOm5N#&B7OlmTzOj4Po zGDu~BN(GT7`u7<=#`&09LaKz+TvBsM6_F|;btS1QNnJ?lLQ-dwI-8V+%SeVaTr^|- zTh**Iy=o+$Cuw>B>j8P^L%i!DQu9g8CpCxE98!g(3Q2vP)YnOUmDE>Boki*_QX_E@ z|3>A2H95nCAzien9G0Qn!*SAXPx>3Q|{)x`5OLq|PLDCaDp)i1J1t z%3R)HS>9lyya$=*LFT!K)IFqbA$1EW4=E3+X{4r+nnY?6sqv)7lNyeTC~r8T%;lxX z@=}cQe#ksOWS;Mn`aY?fN!?89T2j}Nx}4PIq`pGxE2PdKbq1+nxQOzGAIK z?|$aFpLy;gbr-2`k@^-XHz_x%98x)?vPfl-I-S(%q=w)k${T_xb9pXVp35ljKIXZP zdF~{2C#joA-9$yG4m`Y zRZOaw)GSi7NX;NMgVg`S-kZQjRh|9gne0H|1`LP`5;Q7tX-VrA1OQE%j~tcCpL*macZOpw?v)AOTu61X%>DfEF@DWKlvAmi)fo zbMC!!XEHO1uc5!+|NoH>nS1v0obP$gInO!IbI-kou50MJgsw~I8b;SJx-#)2>f=me zt1p%HrP}NBF^`XVzDC#A=$b~?G`dRZDy8dcx~`_{V!AG-Ybaeq>B_*5s4oLSw)z~b z&tb36%RFA@nM2ncx~9@Kl`a=uF1oIw>ngem=qjKqkFGqr((xneOGi+ozG3J+o4qts zE?}Mobj_w~HeI*Vbvs=*({(dlU#9EJbX`Q(MRc7-*I9I>;YZY$h9IjxtcQ+DeGpzh zbyS+;Z$9(PXP#Mf&7$izx^AOuJYD1I`Vw7VqU%DsE~IM+T|?+f#gC{j6+u>g%9>%7 zvHbZk^E}Kv_tJGQT~p|qLYI>+CtXE!711?{u2FOirfV==4*ZDv90-ckw|ZDDhJ$rq zr?8LxRhz?pA2)2oJv4vD*%6O}mVK3m{C<|!fm&e)CA`SbIP z)NYZ65$@flF~3{b`md{l<@RAD&YrK(c3*cxkiXWgx!VzzK0imlMt7gou61f|+U%#! z&!xG(?#7$V*H$9%Gy)xl)jmGzbk%RBrQq9kihp=IPgOco@KBbG2hhs!Vao7|5@q-^ z)i`j$BP1UwBJPlqg3GqNzG6}kp4|F9T$vNN%I_y4C-Qanm zy1|P?b%U$2W=%mHs^bII@qz02Ky`eeIzCVxAE=HGa1Jh*SC-ukWZX-_05WaSr<_JD$}g8d;1=fGfT>#p*o8Zz@kr1Xl>y9OBn4A5&6=Z$_GU+?y^Q z_h*R5!dwg46VUc?UIoeMT01r;o*)Hy)h2@wg`qXSrBZ3bGyR3+fl9geo|v-E)vaA^;{wUse0=1YJSce#iS@TkL^!M z(T?zakv%u5{@pi0uYYB~x6ez#^XkF!Iqn=h{T*YJWjtW_x5Kdvj!I<+?xq?ttWp_v zYc_r=vT-&)uZ}-&@TZwS@8W09dj9YW(Q~%)XD7_TcGdA`3%t7;`Li9GtJV$tfhzJ4 z4%Op-di|z+F8os8Wa!i6SDN=9eu@!&7_CG0z?SIG_?Ekb+*Z*mKMri#0=gXCHj!r)Q&oCXU@P4RCN8@z~+_dh7@RsWx1I#vyd z(2=g*=l<_Ic8=Tsq#(Bc`^o7@Jre(e8#;gbV;?*G19&f@kzDTwX={<8o3f4ctfJ3%FW|AW$A z_5T^BV-?Ub=}6N5CzJMnfA)X>@JWocp636)6KCW0KPiaqe<02If54~f|GwL(#P5Gl zYT}-B{y)QXtitMO(vhV9+mrS`J_NL2*MRUzNLoGhf8T9qC+W+`)(Slt$;gi^D_tgJ=cbpZs|4Bh?|6`?P z{}23h{oi*7mGS!@l$y9F?f)}O$10kD80Sz)`hR!Q{vXKx9~eG~lh&U4zweH-;JIRV*e|juK)W^Q5nDgL8*y*(*8fgbgTk6CLKxozdBj}?}D+wf*lH9 z;IkPC&;lT?k-)B`Mgq96$ctN|pkIeZ`*^dRpWH!LKiua#7T=h?YEWrS$U6uY05*P8 zm6w~9)j7kI)#-SNcj!OyqOqQ{Tu*OsnCWFETK9%HjlwCpLe4SNcQ z-Jar`4S=eqSqWrZOw2kRN}xYnZf#4fmBlaCNGprq%ICPh;3=#ueh9RMmBqK=_`hLg zQCI+i{jD&sEP?B@*jrT9{ol2>a9xy=QXcf2b9hqm-<2ok!#AmBqY}8E4(;#pEiwL0 z_7}gr&;)rGT*m17w^)8$X4QPJQFAzpW<>J)MgM+#jGvB@>v5!`HX=lHREQ1@BfUpU z4eNU)a-O^dGbh$~6VHE>okUZ<*{4|`+?+8bMJvT%{&!P!qeYPqE|a40b{Z|3{T*e$ zk?;1OP!^tRx8iu7Rveanwt=c;&#`!9&+B>Li6`;a^Lt1EWL zu+qm^di0Ke`c5#7yWX#Wjg*{t8za_PhUPy3|D0ipPQwC8QgpSAqWJtH>_5mqgL=h3 zhCRqwT4UMP=Xmo^-)(Q=@y|%Z9xTE?ZiEQ_DWM~Ve;|{Se_|{}ddEL~x3P`OKa*jn zC3|a`&0;I*{BwpWdKDH-k|JDr(8K&A>_^By1AE0kracL4lX~KxzB?X?$3O3pf~fhY zAKEJTCxwm}{)umC(mVd?yMwW~{F958$lfZ0%Umsz^3NHj=y6y;Ns9hzvxSO3{|NgN z@=s2$_{XqEc^S4%J@HT99k0gYpP!O~DE`@q5GnuA5yL+?6XN_6W2w?R{^`4e^|<`g z1bZdfTUj8ySNwB^DZ0_3$Y-;qiqAj7euexqpjZ53*t0B#ZB$SE(|78bc>Hq@DTv}9 z4Ixtgp(BQW;#<1(j(_@2F&CGAR>0m#@=s$o%clhL&l#rZbe>7k)i#Ra^N+B9A^-I6 z75^CaFk?|ePyEw&>fLz!Gm;cU@sArJQvRVMhJWH)%JhzZ`cAPQmwzV1UP|)MvTl}B zD=}@Nm9aa*GfdH|u$+<<9kbg|#od1i`x)|2zh3c=X-`9IrXJ+yzB3Pr$3O3pf++s! zhqg-jhmIKjiEnAsJO1grhQ#HcT(m^?RvBEqTEEUPMUTVsN>cP!yA4)c{t@;!Nco4382*WGsna|D>AQ(EF8?$^izIt13xxNI zf6g#PH(C_=>^5BS`G@v9*HjAsI`>!)h(P`MlNQ$nuQ50YPNum7@`6shi{A1VyjiohK z59?RoZ4%<~&qz`bwSKt~BIO@CV)zF^+<(Pb3iXbE`fei`mwzUMw`FfFvsr8<<)1T5 z(W{uPB}K<1X=n>2MOWJ>O29uMgMU(c#Xp8U)L7Ke6aSo9d#I75 zAc}w72$Av+9Wnfaoek%o7)z<%@y{8yQ<@B|zwE7LaP^9R&M-x<0xU_zKzrC>PK-C zT;M;23*Sr*{8+fs;QEDdrNi}W;mUyPIpNBL>#xF<1=lVd+*UuD4cDJUSUi& zUJ%;)tSsAn+4MOYMWuUL1Rc&&AoPG8$jjo06*( zvSIb2K|y@yn=QHlXTr+pyNVE*_a(&g_Ky(0VJu@uh}b!dJ)g1omX0m9OBC&4Yyo4j z3fN-zh}fx&&0%bGy=z5mqI&86yR<_kK|sjjyfVe-nT`ioa9% zI}O6yL3E=s8eV>E8uieDZ%x-^qNnKI=^*rUfx6Le0=hB4HD4+G3YcREyQcLSd^^J3 zh2G_Ygc~I%c7>k>`+^dD-*^h|5)%B=4L^LHn6O;XBYue!#^9GIVKjbBg+^V_4Zouj zKj32EhmT6nxIp6f1&QB{$?!`x@k_PgmulgMPZTA_?=ZHvG~p{L+)*cM|yVK!o_64DSY%zz^RCo`Tbz z1o+|WzU062dc-er!WjG#C5*<8snDqNy5Vgff5ntOSp6B$4XX1o0cqU31jVDu~k>_;7^SH#b!@?7y z+>CQ1o`n+6;$(PcnRsT|@WdMt#(IoT&L+V#L*SVKJRyvxga-lDZg}GRyHg+}C%_Y5 z&n2G2d&Dzw!WcXgC5*y-GlS@>Z_n=wq{cZtOBnq>I( zH}UIl!>_-EA79uo`*>2N$;0zZ7eb_%TD65xlg&l10(J>r)*VGMqW5=P_4 zRA|)DZup&$_#LzG!-_g%sKoDLiQm=9@Ec&_H^7G901H2?_6hN$c!=FP@jDexg-hUv z@8(W{^=Sh9@by^Ym)9eHi4(@)mndO0eoTc%<#ogFq{QzN3qMG7Gw{t{?40i{koaAd z48I%`zZ@HWITn79Hsj;x()$5E9DAg=IRD`!#F+n3@f28pC%_M1e_)~lK(E0 z_~EoD@%h3a6Td+={03S0VYi(SKhA$Zjrd{y;|UDc4}8CMiX$O@io|blkN71{7=vG; zgwgmh6&f|T8-869zatiYI8m8_LonhuO5#_P3_r!hPqE>rSoqds7UJU(z0@n>n{@qw*~ zKii<*Y7cVD5~AB<#iKM?VuE;-E^CNj!IU_!cjJ6p>zssx(7+q{)OWOJD@*5$!m&F~ z@&Arjk>n}<9^v9C{&C?-gKHq(u&REPr}!5M7f7w+a_e@h=vyrnKiOPkaki z$n*RuB9`a*_X!uz^B)r~p67p8xOkrbYvJN~{%gX;^Zc!FfzVtfa5+k@ev~Ksqu^4t zH{AXf9_}k{2i_y^#W_FID@$+W`%OFxzMLiQI`Je0@2twnuR}rIiQfRX&2r`M<8H5BA{`K z(J;I$BO4--HZ8+X*@cFd!AwBKM0lylCD+q#`UVNhS$KC=bjOXD7LAj5AsNKeJjg7& zWuugu0Y;W&ItZEN_hyzI7#vA!k?9{Z)2}kpiz=`f#n(%?9U&~(_WSCwc7F!_#5TMO z4MNa?pNO}Pd!?y(vb&}t69dd#kGttBWJ~{o87dn8M0y5jeq@$vGmC|P;w(F5mPuw7 z3;#q}Wcm?idJF%gdJT#HX`6i~@c#_@jR^i9fDweIsAo-wz&~2ku~g{g4E~SRcgU9B zjx{P8|3rEU3;%pGi-mvUEC&7u&1J*FKT#G*)hlLt3;(2g5sCk)X#78eek6kbTVMo% zf6tl{fq%57Bom8{#s9JT64}y^&1J)ye-i0AEc`=e77PExSq%JxW)=(oL|G(NUp3QP z_$Sq?Nc>Mm`k4s+&to78{Cn2a2>hcpHJK2^ zEc|2jHL|5&Hd|`ppGePQ;h$n=vG7lv#lZh{$UI_}v+z%pMN;)+Grfg>QoWAEzcU*D z&!FFl;QvbuM1g!vBwE77PExSq%Ii zGqYIuC(0tJnq;Q8@K34-lK6K-C{z9{A2Y&vZddp z95G_zRvC(dHdKV}vS|3q0NRi|LzB&f3RPpUVP__s&n{~7d05&Q!f z>jM9tHA%!Do0n`z%+w?;hfdDEf9a-Ak}dtR*-{JtM0y|#{}eNeg@58K=KRAwCwtk# zKT#G*)sM~e7XC@~P7;6n{cn&zKZE`$g1;9Np}@aqO%(8t)z$-@6xGmC|P;w%RK-!!vW_$SIDsTyadxA0G@x03j`Mf3k>&|gLHpM!}| z;NP<*i}*)rvTC6TwBaAC&yp=&z!Q=v{1fS+Ec{E%EEfKWvl#dfG_zRvC(0tJ`X_BQ zNtK0vQoWbN|5!BspF#f>!GEgQ!D9d0vnGuAM`^;cadKtDKUNY4U1uJZYPM zV)c2lr61FJJ_`RtdN>RJkeS88KXDcV|Dc)0!aq?KN!3@)^cMb1pHS~7@jnuc|7Xzu zMextV!X@zUSrbV7qcwrH`N!=K<*KGma29ofKZMqUI>A5l3Dw;uKB2kW%O@0foqXmi zHA66ps1v*l&&Ygc=(DtT;04imA~OCODidh&#fEhM?yCG6V{sQw#yo z$7D#B5*R?ZKz$mX;djNwpCvZDP(4&cnTQm~Fh7Fu&d6CJ2qg7~13^$4<%=NDbhZqF z_UK9x1fmLL5Y$N5iy%-{B!i$&Dic8<>qZ%*D1oUW2z1>7NBDn0ml$lX2m+(%Gx-BF zKwY<3oWMiF7#IRq)wu`-G}ISYje$FL@!j6V%G1wCs6pV9Xwc#-5Hm=5@>#f*z)Spn z`YqYeOy$Yna25`%lq1Tw^vj6F_I)A@J!{PTrheJbHzNf$I1^!dH(Ta6;|={Y z;vs-fglXB$(eZ{p8u1ViC&F~l$p41^ z8}X*T8u3^HCc?O*E-K#CS0f%%)I=CB{EYDc$z`7}Y6m04#&4C{U})WK{izMEosvr9 z0y%#mIx0P*({25u4X)G}5J|61NwdYPG3CQwJ0&}k9)1*%jY?#F@M}}DqT(5Cm5+E; zo04Hq4}WHiKP$!`DIaRVT%o#uUk{kEFuZQZt2k8`%HhTPp{uUq@KT=qJ4a|> zD}SGUPv*fe`x;U#9xaF2{cz*`GUi!=5DYPK-%MbS$iwePBNRi-A<_-NZ+IAf63~S4CB8-+A{|%S5^scpyAI$2$o55u45A^Dl zo!||=AqOqA3^`APKxu7-^b;ZTcQb@q>u`GqJ4I^5(V=6MrX{%T6Y0WJP}~Z} zpJu$Na1`j6cbEQ(+_G|A+BMP>Cr21mjJGf{0(r_|1%0 z^&*H{nXtIR1o%NG~*Y@c)U+T7JR&v!mst}q{+MszrbMHB*2K# z;IoD2^3_Glhx3B3V}g>btp=xl39FN*NKy5Nk6=}6SGDd(jgM2Gsa%Vx55c{!5Av3$s6Xm!gWce1G_Vb}gQwZTrcYw~&r~MG)Q8~S*9ZB} zQ`8Uj9bbMgmc#kSYiD(_wppkx7Ee=o5>p?7dtV=xdQVZd;FY2_vP!u9V-9^O4@LK% zsVs=855c{!4-&AaD9c`7ZNmD@!||B<5ZwFvAdh>BGVS#ZPgtLM7#vd{f_q;db_kxL z410a6jwZs>Jp7EQ55c{!5BnBRQ98#$Q5%Lr_Idf_`zV|@NJ4|8JbLvZiwgDmPPa&YVwwPEOm z4;;3)uh;iw`~?aVX=(eSa8Z(bO}Hq(Z56KQ`!Y6*FbcH$g^ObBDdD2EeHqE|OKLX<{Qf_6U&c1b zZZrg={SwW;c+~)nzE0yAt-m&u^uh5o34y*;SbgnBGGPzL^uiu)C~Rfg*1@jp3gJM} zHwy>K{)%v*@Q2}uwTBCiS5U4^zbx#ff~l7MiD4fV9Pg0zN7+LK$1@?Qis%by&!h&& zry;x=#0mQ*qcjt>+avsNZ4BhUB-hwvzZc+V>C91!n1clufLRMh17w&mYEP%OK z2m%)EMoD;99act*;@(5#PPA$VTE(Kge>FM=D0p9IQ}MS^;MgC;sx=#xno)2d7KSX| zH=|Nq#}vxTn^D1~teqXQC?9l<0exdU!4cP%oR{LBo%3CHFlRv59o*fb$lx-#R?VKCDtZJ7SMlsSm2ul-fnYWDqlpJ`AxodnkQS?V@yzlcdB0$@K~Z zRBF@HS+YJzuSnArZ8~Q>jyH#jyW^9|bS~C1i7cLjjl@Py%OoufXI3-k+W!(!-C*hJG!97Zo6$z;>%2 z@q#|Y$ED96U%O~{l)WG62Ozm<<8VpC^jx%aIO?(RV7y*_wi&J6YU2kpzb!j+TlSk0 z&v_LCnHzu8W9EA^UI4&&A`pWw(o_fl7$39#n)w9)j3)xN{J6YHn18P0i%tCYf^F^i zR`RvO-B^#808-qAn-}CUY1ZaZl}ofiG#jA5z@-K1Oiy*+t>+;XRkQ>lBPz2P;dz1H{n1 zzOUL>EJTe`mOfxaU1P0XKY;nHHQpkN*UyWi7q0+dMyba7#4a+{nnz<2y6p2?xAp3l zsMKP;Lh~*~>uxey=LoM6*CJPo`t0jA5`ED~G&uYnzNc;FM;XStjzlAkM5Dsr6eZcl zGtyn9gs)*Q;O@ACuYHd8?kpr zWnCc#{e6gv5Qaq8L?yD@_gm>vDH0BhO33w+Gui_vPsSg-*4{A2Q{3Cz-~EpCw-)2`rzg@aD+aUM?w!l#h5*9zs0KWvlRV zNqST~37~w0c$n{Ei&XOg-f8B_D%aa8#=ru&3LEE5jIrh)Gam92lHj(^s=-RluZ$$1 zpYe8i3W@M~U)2z$<_RV;wz zkCxAn9v{lUid>TuCq44mlj$S!8`9$=FjW^|{3l5tk>`*e zm)lj1RBEb|q>spVNDpiCDxB0zj*~u?zU9MeqxL6p_A|>XQn{s>&a;^~`!9pb&zz z(~!9Fa^7)VoQpX~zL|&bR8*DWkg2LHpFcd1;+tURn|W6tP$oe{J|c1#<69cCKuBZC z7wys(CA!7<&WaU%_zSVo$g?Xdkn*7K7I#oB!2u}9!pmb%?!}84pc*1M-bj1mE$N#l zBsk@X_0qdY5TiV?T6(L-nEay_@%U7nRf^J{(vd<4i9hH25b`5%O)Q=#ouZ1RbIm04 zWD>rL#w7C~Ihtu)W||vh8orChG&si#E><8)@RX9LZWMj*LmD)7=9TvLgC#Kk@($=I z`4)S6>o7Q#d!rr>gKt0@G{bfnd_O`kq~wMj`}LkT>jIC@&wu})IsYASg?$GXcVEqM z@~O{%|8lv#T*-gd;qWstkpXUZt^KvJw|+P#QTOxTTcc8l{V-U+I65>kzoFdN^WT9{ zX=CIw(!tSc3`gtycgJP+rbWuHy;cokI=1FhDKDwPGE1Ljoc|&SXTU4CAA>WZzmn&_ z2;y;XNtC>V!0!4h>pU2-;(V6p!EhV;J8M6MAS??!|Fy|a2&4wfw!Vq|k+FY5Y#jYn zERaw|CAt+bu zPwes;0tZL0XLk7vu|uNU&+;PsBgCJTEFSwKB+0Y&H}l)~M~EI8TfcpOg!o}`;)S@* z^Jv6J$=^o#Ry_7cNW$Z0Ieuh(cliy8&S6W;_~`R!#GZ>-tPhcR>o^t z{SD&IkH{O$&-loG2Js`h$4B-rh`*qFyl5Z>-E<-_G7?{@JotvH!5DMqM%BOnFy^Xe zy8UlpZJh^E;h~KwY9XTM?Z6(#&|Z0WZrO+BGK9Y^qYjTcidW9ZVmiZDY3A{S0;%Rf z&qh6$7dkhYu3x=(H`60+Zq#~N6k3ZshjEk>$i-nLzEtsz+PdmJitp;$t=0cheD6}v zz6~*L^|`*yRJQXzmbUtQ-#TjC-w~b?-x@Rv^TY~X^D%pojBh>NZUG8{5mr5d(6a`S!v5e@;XrZgg@flu!hr&} z2nR~sDI6$r4;-R-QT@l++16epaM;@qe`<_BEyfS4f(Twn4=q`gAG2_jA6mC4f4>-i z{}}&(7=KQTe_)K?uHj#yYMb$~4e0jAEXd2%=62p^6~{GGTaVlhsM!pm@2hPeo3;eH7m9r`!6xcuU;xaTb#qE5=+ zF&UR}G%c7=gz-I(-}QxhS}LxgiBooM#wc#)c?VjVZ?^IoULGjX`7bos)<4Lb$&$R- zw1o4cN@|iJ+cDwH+kn3bB6`e{okR{fxP|dfA7j?#{Re7Co{p5qGP~*_$>;O<_k7e$ zidcr3(xfUSLKVNiA>}2beOl9ksmN2#$qG%nUKxZ-O+-`gMz#FT0KE6G!EbZgiY@xT z1yl_VqtX8(s1W-B*-DD@*DIMU1e54IS?1ljR-rqLwr?TbOi;q~caL$Ht)Dkx3_~X5 zGfSBOn*<3oysv^Rln{-?5RgPtSz;`?ZM?=WxX>i`IFcIsbF;s@vFi;y=uM2r z_gI0yA=SX+89_^TJXnYw53A5bc%*j2gIRioM=D54gvUPW>w*hSa`z)?k9ed-<3Vp? zJZe~hzah=QW2vB}J02{=j)zrfB0SQ%;lV7u!s93geIh)zAr5$$robjR(Dn z@$j(%e?z)~$3j$K?4P5?3k$L1VHKJPkMwSMFiWrS*eg_?@y824@(VmnavMQ?k9hDC zjkfVZZ(=;Y#tQrm83rDeqHntM2Me*|VHKJPkBn}3FiWrSXcjuj_;{>F9Plv7T?6WS z#Dhzs4G($~<1vjD_!}|}JSs%rbjO2**zvFmO@v2gH$0f7S9sJ5ooswO{s(cu!zA}t zpuR^uK(`$adK2SO$_o4qSq2^xMBjABgN4}funJ9tM^-mHn59>E{278pqWR+)!~qYJ z-2VjiJ>roajR(Dn@wl25_#3hfJgyOa(;W{MV#mWOG!Y)z-SA+RUg7a`2wjQrSc*8{ zVUoKH)c1%7KY48%FZ3qH<6>6eZ|G;>af#@g?s%{eJ04b{iSX#x4G(7N6&~M#B$^11 zg@^+lCb^4*yjl%`7mbkeW_S66pH#QuL2qI_hOz>GLw^I0VWMxkOO#v_9j_!|Zocw~yc>5c~rvEyMCnh1{p z-SA+RUg0qxdzVCbR3Hv`nB-0e^*!Q|6O9MGiSZEjY5s;B1CKUAOLsh2h#e2B&_sCT zbi;#LdWFXF@dIP!G$KdWgxdlJO)PNL2qI_{)Me2_+y}f$38(zcRW~#9S^I} zM0gDBh6l6s3Xj`BQX)LAA-TbYCb`#w+#c~Tx30$ih2F$?Y{i}%cnmV|*d}P{jt2{| z<6#w=2#-PC@L-l+;UT_%n_xdjdq3b|l6xu0?GX>mrS|!h-o$vU7gKWs)RN-JgI|@6 zC$F;*J04b{iSSUm;lV7uz{7`cuE&$be6a0UXp%V+WX7C#Rl1bzbdiIH>eJhqFoFOKlA$zV$YmBlP+^vKQQf zlLIAi7nsK1f%B%1g#+hJKg6)|ci_CK5c7?{1LsYbi71>m)d>gAo8}@-xGOUL{2jS0 z4+l?&0lvQj2T#jHS{yv_wr_t24xZKv2M(TI6=`trG)<(z!P7}N!vAG2Z#c`t&C>yq zcCZpSPoy1!FR%*7SxVquQC^-BxJ{%PsszHqflI$vusqxRfR}Pu-f$%_TqHRMx2Ouo zxk{iyly@F(*%FTPmB2o5gTG@0zH2MeT%ZJa&vtkVevI+u?-r>sgySNdxQX%#ypQ`kE>;43x69vgi4u4jj_?A++0MsMp4aW~C{zNwMctPHKau`& zCBWOe{T)|$&+~U&sRaHk;=drz2g7-SB^;5wJ^D5X-}`#``}FbtaJ_85UcR5c-w9uaYmGhfk)~uH|GY#ioy=(tKn1Dl$}=Al%Kv1{=dP`@W0>*(rx^tmu=R|H#6=DQNmWe zd~5Lr-y?e2+j{xia6PD({ZlXhCtP#%vORkF9=N`um;FmG{})`7^|G*D9)@dzUUpC~ zKM2=Yz3hlyegv*B>1D_C@?&s~*2_Bd@(#Ez09~g**Qx6^_%4P2A_G_7xx{n@LI+nO zIH#^9w=SFuZ))*|b3*}!2@PxVwKg}u1GT!fwgZYurXdT4!KAfY@!#mDi9OruR&e*&% zoX~pl(*4eN5b-_&?iq}L7W_eH)w&PQIz)miTGw+8S%>8(q}J`ub@vN-zwTCE4ylgz z>g!Ux<3VO>pxIk|{p3`iv#7cCQnbR>q}7MRtLB`t?kj{Lw&QwFZmMsXvf48&EwIsd zaIIv%0Gf%nJAx%$?olD%kB#|;gyoxU7!}(FoDoO2p(tS+&;*d5&$fizb-Tx~9k_-lX@h?#8t#&|JBxOFYyCU1CVC#GtV-#CVixF~nMNyA+do4>KtM5yfr? z;w;v?-b{*qL6;*bV3Up_)G{`134({>YyYf13ESn?HxwR(F=nzZ}jug?3MjnW(xm zfBt#)^kzZE{9;6*WV!xTcV^EYu)bqk7XBu*uU)aeKN$SoST{uHP` zMKthJ!k?L{|4_BRu6q6ls&*K800n-YJC;o~ABoWO}vu`24p;reU&p34VnHzanidiURXAR-7+i*L{?YhSuDJ78apf z*Ja=NRp(vKuhRZ4IN9MTZl1rab(dK0Nn!(*uh(0*34cSHqqVMR;|t)(6y@hygMZ&h z@5^;98UEc_{F27XdSpm*Dl6;!ryY2NN&_3b*)+;|3K>dkb|I|Ze>xQ~HMj!Xyy;jF z7a>cgQ6!Oy_HNS>K z!->bbY$2Q8$u(T!gViIFD-XH6UnQZlfN@D`_%B$qoq9>S4Nz@|zs^zDG7P9{J49(H zOL?wdd9F^Y*LKvk;;)>1VX1;U;l)d`=>*Hp= z){LK)s_mUd1ZO^5L?t5R{Eu!>mL5l}bGoy_`5O8^g*@%#-Zf>~?b<1@^6&;%!JriU zC@HOv7<`2(z5uUoO)XHgLoNI9Q5A7J>VG1WE#_Us{awcSsv_Yo?IT3|*@&pLN3K@G_^i?gb1waFo-3(&5y$Iknfd2JCausV-%8dr9@alrX=Gvtr4? z*O1PCDr3==)r_Y$=+ga}Be>xN4%cHZs0$C3xoV}frPT@;E+P>q68Zs*voR(`&u zYaJX_B}L6kx@bkE{Iq__0eqCDsvP=@P@hv$d|>TIN^O&}dSl&zOs%P? zS+wW)kvlb*0BTK$Yf@HkVsOgIn;an-@nSXk_>VwNvg^C#<27$}VnbDp0#o#i<%6cD za%2s~$ns{J{TIF+g8=e^e)WTh4_^%7PWEf@aqpK^{kDf%2O0g`=qQDe-AJ7NI+WE} z%Ib3LVM2QP6PKqi_wJ!MDC#lG#d_hr0mj?jYgFC+P^*G94*55F@%q65hj)}w3V3h= zimB7nmyEwWeTnyNdpQwth4M_@-qi5fYbdabdTv+sdq%4@yHI{(*=V*9&wTOJ7YtYR zZ{@ahT-J$i|J(Spt=v z;QWBG@6CFxr18;NT`<`C*60*({tM3rk<1<*{94PMTtvPq`2SV5QA{^2+GVFWd$_fA z_`VW4USDvPNB92`@u1bCh17Gny=({a0}!B|(_C7#Q9a)5-<#b!81#i4)g52Nf&xBs zJ2on-v$4kxdkRBt!oI#2K$1&Z7Mufu_jO5hu)N7ct|d+J<#v%7_S zlk+r-!aFC9S`~YaS6R#foYY}@pP@MyC~tBp73&wTU3nc=s=v9KpE-Qm`} z0GtS<7btaeNWc zseJ1s@Ck^nX?t=1C10BP>Yq@KsbTwgELB&*k=J9ldkel?q9W*)Tvaa_ zu4*?A_on;D=Q>pV=3Lc}^OgEq2JJQ0^KeuXvGmx34+C-#?(-Q z!?D|Qz1xk7jeavoVxY(clH|PCD2r|VRRnuco^}-9npt?csqc9yrRC9C2$_QrBc6x& zDdF2iK#GW$Ax?x)YH(|(IT^UMPtci5J`|^;S*7{}^wQJ<^`+nb<~Nt=i_#~}F3-`c zvcaH}o%)1)Jf}iHJAME^5Scf3YMTq|g6VGUb(dCGw>!14&OLiVo>SZ4tZNzRDqOG5 zKBzicR1GT!04@Tj?{xb2rulAAA&I>-VEZo~8rOgOFI0%$@Yl89q&jeB)0wFj)?-=w zjwg72wSdE2_kOCUc$X4rgDib>FfYXksThy(!JH+kgK1Z&vp1@a4a%B8%I@ZIGkKZ7 z_dU2l1=V6axC&GLP3siI zj70=y4{rg6^hUL=BXtr6)yfc>zGN3**4Cor{No28r5-G2l2u5>cX`Y`$iVl zYfVnA8L$@AwWo^2*Qv7`G5$!=Xmxgjs^Pz@V2nrGfMbsdXj%wuY9iO*C4}^9v@z&9 z=d{>KxNsTB_qi(wrkCKa5s7O^9*zxxTa)TI920^iS z+IspQX}yQHY1K~6KuND+tnpu!`hs-8ReVHwdLAO(#jiu5lMe7&Azbt0uKLOX&ibO1 zqL4@bohVn;o)k|2^}P@(7^?=KFId5J!NmoSIJ@2wBdtLN(2ppA@hH#(&M_c&X^nMV zsY@COuCpzaMywmPcBgg%Ah$<@>?~aCvS6<3Of76j8}rdr4mmilyWCY!;2}eeZ3b|` zyiRrY<9Lld?>lN?rV5!coNXK<(I8^QyG0cKD zn3s)heu?tq2DPr`rjqL#VAG9B6vC6r6aSas#soiA4+z{maL>fHZ6$`5vih!qso>6) z_1Eo`U#%sp9s>$BZO&I7x&mLFspVH~1uK?nAGKcWbR2a04>^2SP0~Jbp`@|SB@ImH zTyi>P-9YH)-h}{OsvWyIc*Qj?Fz{IC@qapBqfkCc+vlFW-lZMDumN2px9-5mlIym4 ze@ot|6s6UJ-N$k{usorcjwdWC|&VIh&14J2psp{Xr z)T%!zN&uCjz1nfBe@ogL*uQGwF=qS_8QInGdYZ#Y)$b}8ZHy^$wta}fyEO?7;F5IFzc696Il@bthBn9&vYVqb0 z_6D7^Q%p)t9Vcgri|3Q(v-1lX7blr`bp13<@PsL=ZVHIB}Jz;NLq)smhMh z(f~Y%5dtO`uk|iKpU?HTj|GB7&E%r`QBCS>kiMz#Fqlw#Tl8xf{rU!8W&rD`vvJ0~ zna5B+sRxeN)#K#^1{=dQLeR?v)u=`eR3&f+)1VU>rWz!;HN5i`DEK~t+!}@r+|Nok zR{21|D(S}Xl8lZt`E+w@2KQ*XL()Aa%p(-_23bCa3$|#+v{KXj$ORlNJi*}_Rib>a zfpbbdI8_NOLPEh%;Ug_Rbywcg;-j(Ko(SJ0SwHlI>A!-x3?ixT5T zo$~(+*7leIzhTZv9;Nh{M{%9<;B}I^&YM*KCWpsy)Lp#Y_h&g{`9@5tY4Z*@3*}Hm zHyU#q=JA>~Ij7ZJ0ouq6+VAk?PE~A#L07d}T&DziVgrSNBh1Yx-W(=ls7uzdfvUE_ zwx6X|A-o=muxfIDfHzN8hQb~ADr97C4$nme0uyC*bMe%IvC7l;ASBFh*NXKG)r$3v z&+sUI-gEX2Ov!Uq?XH5{a4rMLZef17)T94Wj?|hDl)%~8(-$=ZoNuVw)>fygwR*JO zY`K^fHlGl1%DI7q1<|A4_rDKBvEKj4Hf5+vX)8c|-=pop>IqOcB2Cy`{14yn1gHlv zM|?x6StSsIxcXB%w3VU+tGb{y35EH^R+W6jf7Ri+q6O%}qK&0R2i2N`K36yd(mj~m zG<0;UI;xeVZtkS8fJww)2>)(eIYe#PgD2=8etQ}gcOzy259->NQ^r@ zld_l)!<_oUbf^A!Hf1q%TZtivx&D`eSbD){m&5)Mk;BFZ^OmT=9K2XmM;RlSUW=tP zo*afrA>*yX6+jw`GG{hmS^Gjn49hmeusfs}_Ph|oazLz*!Z^+*M@e5r2czV#^LrtG z<(u+XL9gYnT(syj%U{>o<*#f4pz`M-L-?B8S|L`AtCI;|lTG2P$P~UVWO5WU7Zd5T zV6CEq9*m=hRLxWHP)!IE<$CgEHDbt@b6fV~gNkwv<8Ys=1TOAlsq1`7U3mpqhYPT1 z%@BkaaUS|;F|kep!xTcm)s8_|Ni>!udCq=5CDAz)ENu>`Cu(5^WJ z=Zi^Pv@EW8^{K=vr(>NObRA4_7QUsnm zE@iCiC}UB?DiI=9#uq-UNCl%*gARyT-vF=N(OVJgDR4_15o-~HZRE&7+A_@~XFB6C zC?BFw#Ci?cic+{KTT$wR8zaY(xrA)>tPB^jl_7Hp+3Jrnd`#HE!f!y~N?;w<90*p- zVhC0)3RWYKB3iKeFC-MK6y9YDRuCZfAzx|H2dy_w()N3x*fm<@-rQvfR&za$cEn8@ zb=>LS?{GUBJsM}8Zypk`Pf|+vPf}dRJ-A=mT3GkGi?{inlk<{qDW`-@smkNnqZYsJ`y*qu zy_^;9QfmGzpn_QSYdU~!2((JUhkKBgHxHsg{G`22r238_Qq84E^#Mhy3E|B`+}SHc zDv}f{QdOf^L!_E(id1u39!BX=#M*?ay%ee_0xC80P&hhY2~@Jrx--CKByu9-dJwBJ zk!HmU8$pW_x&P^fnZmD*OTma+)XzHSR~ze_AbKC)F-J=kJ#N@nyzomSy#whL|A@mK z_S>Q=SNJ=Jzc8FhCe*(~apnF{F5VsWcio_rbvoMpr|~@cK-*Y{X|LfwZRnh_yTiJ0 z!=ll!bcLg6V##=CtUmtv`9726?Lf8EpzX?9o>an{GJ~=oKd?w@{NH9>i>#ql8Yrj-Uc+= zv598}IGx*y)~6K0Y^i2r(3u5o*P2^%6}71lZJj;{A(&Xy4cKfgbfR(cND-l>g-y=l z(BoISf_b6Zh~DHJF1QyH8GfzZKMOF zx$6BPhEi_6{MO;>?6N#<5ssniaQ{iZskk@wkLcr~jqK%`bHNbI4gEOJI3tBr`a5q} z_*c>0&&76kR7ZO+RF?>PT9;Y+O|34>t1~P=V6^c8td9}dx*>7~E!57^hyscvkA5js z+Ia<9lYjSn{ubxha~55MS&QfR{Cl&5j3k79QI+#>i*gWtE7WL=hjuHy!(RArm_7NzUS7q8RahgeRao;zEx`Q zE6^@nsee$Bik$;as84Yc>mPm=Jp=t1PCfO~Yr(3>o z&Of0Z@_LX2H{FJOo87_32e-7O35Ayua03ia@R3}#5oJ+0d?;HKu#Zw4oLw!ypLSYo zsk6s7xQcSI=uE=tCaAb2n7$C_wCNu0g=gPDK9o&7FEx;sf;WA!Rf$C_}#T0!Cv+Rj6hV z4s{%V8%we=F~XjP^P}^H0dULNskgQ~D1m<>xF}Ro zedYN#4d+FWLg@18n4Q(=ap8{thl%OpyM- z#<7kLWzFJ(Ogv!5vXpp)4}mD1tg-{Ij2Rug^6 zKI}wKa230>DAaN}D1ylk?#;oWs8d-}nuF=9(%(KnS+>In86-o}m1PYG!7A}sZlV@H)WjI?#K*Xhe|HT-p;{2ZM z%m5nv2Pbb`viB5hF6v|Ub6X+Ib;PC4yz?%jr2bl2P4A%~{ZkKxIp)ZPJo7m3cq3_V6j|+;&h}C$27Mv1?=b^ta z9~bT7^fmTMWhJ=quJgLWPBFq@&64p=BxW}iL9x*KyonQbFkl+d-CRd3Uhw6{7FE;? zdk^*l=c?hH%gz-&ZFawND*D_xttbRO02kQ0z3UTpJ0`BDo<#kzoxTLOd}?**@4u_F z!AYt%@c27uq&&pWCQ+~x8Z!0@ycUJFR6piO!D~Tq0n?u_p?>vq;xX} z00VR+kSahH)Ir{H8_t%grvV~T|ES^=_Pdya$m1Cw?IgZHP|x`8#{&79{wSvUh7|A6 z*GS!qcw-0^z5DV1C^dhAlemt%2T4=Kq$Vab%wmlh-$zNTlk-_)#uJ7Q&PF(=u$_$= zPez=Z;Y3C3*JmP5{h6sLM%r4#sVsYx-QAe6|7b-jC*tt^@JGh`-&`zPzp?3_S8S25;aOXfCGJB^_edcuQ$;@=K+`+6R#q+5oZ5D!sp%a#_X$3{%{& z#OO#pexNM)WPk1@%}u1Uu&$Kb$Vsy|8e29!V;*V{JIMy*SDt7|H+GT_q5h&>ZFOnB zYqbrc4yU$>`^e6be?v-abi_8YiQC9J-&xo@6zy^qHXFOhI?gS#wG(yN9&KPL zT%z6^2F|B5-~_u$UR9oIBI|wze$_KhZzBUmajoFjT9m9jF&d2!Cm(+RQ+{TCbt!Ac zeFyb9mxN4)HCT1h?Cmb?l+)kX&*0d4a_kUtET>ets|Ow~t=%~O5RBT09D-3_p-~aI z6$wJ6+WO-Mopq;1I<>c~(~pxGrP{vI!jDQHXq!`7c(_z+D1D&uTqiz$f*kTq1@Ig8 z=cTX;3A%=XYb(-l3UajW6d343XWeN;9xQcy;Bp)m9P4Ot74Ak&2ecL*f*gqER_#C( zv;J%=nH8qn!ICVF1V!BqF47Q6td~OQNI`p74k5=nA+lu^?kqm=_!t*nVL%iV2BET` zE4`ysTZdP?%=3$2X%;?)72JxR(bl_)*ZV$l&t4aS3LNz%Q~-{;6c26S)%cYhbrD>6 zzrcGd7PtLxA&EXTmnl)&)8f#)xLx^4NG;y3{D^YRs3sa2d>>k<^&x!``lEvO9XMlY z61x?>`US|uDvS?I;TtyP7%VH$!be%U)p?-kAqLDI`ZYYXfeY}9!!OLoVDr1-!TZG6 zV<4}daUZZd&gF9`8iaqS3CN4QKeNu;p7ZwfPQCGZ-Gr@U4a!qEZ_$ZyB- z0_^z3P5}FWT>rRrEfybs9n~3pcn_QchzhpO0Ak`FEk5MysW9i2S03PuTM2v(J!)|0 zZ{9Sxb7QsOPH{eXkPD#T&Klme@d~9=kAC%1q@}Tv;?W>^A8J{cPUO7vJ=$>qcZ%8_W=<;wWcuL4K9PhtH2tX}D0&bcCtP=PoE2I4XLqxtJg#4evh4+K7Vfn+p z?!#~Y>k@Q1{5Bgt^v1CNL))9cM_FBe+!IJNDELH0ja!X1D5)E9X^9ZcK!P)vC<<7t z8*R{Pt*zA=MMX%Q8R6+PNUgT|ueP?e)h_mL|E(AhAz?`XQ5H887hHKBM+7$r2;}|# z?(@tR0{ZszzI-%upSzxW?z!jQd+s^sQmsGz))DIm%ZT---}}V+!Po4}f#nrHc+39O zaTX1Vz8x)C|!I1IL4i#W z*qfwfO|z0C2QH9!DV#j1yyXcURh+}$XF3wSifBJ-AEFqO$eplIsN>dZMy%P)EPLG&Km2XCUrY~zY(@y8qc);9I7+Ad5P}i$?LgN5IRH3 z*je-(p9)#=4g6x8gjoXO?K3O8or^ayo08R!GAzz$g*%IWLs+?eWxq828PhhlR>?zN zd$yLVc`JSz*@mBL#Ygiye+pybtnGfiyHX2M^e+o8QAFnye|@@(JRV=e)y3SB7ukqf zwJ1DKk($w~A$#HcV^*9p5h-lq9ZE=*G}fhKIZkTmJOc!-?=5cY)^vzi=^ixd+j7si4lCJs{+8w#|dGDozl6&80 zXFXqp=v00zB*nevJBw~6g=i`&`u(#a8DACIE}G$gYG2gcz~W~z{YbI&bWF&0<%1?L z|0Mo6Cw{YUfLeZmW){tIf-P6&~xUQiQR35T!IbhfW7V}eIwXNPh`W`~o zJ#96`o1+&6W4j8i#89BaxN#hmax%e&f>$^NhvBy2g15LXzsEoyoUcm&Vz3ZCcXZ1c zYn=;^_IQ`9d@}P@Jo=jVHJFUC`zt1ZH~ylSlbEp{f&Aq*k3bUdlOff}`EjlUEAz#t zobWE;AacaqgB4|nM&oH>k)2V(kevqkik+{UjZk7RvF-}~BsQ9b(Ml{*%*Xuk+HX}o z?wy%$$mi8%9{DuUjF+Ft|M-y_ODpkD@|&J?7EOEGU*3-RXh*mEvYDyOiy#u-)*FuM z{F(j>al<-&JH6y~Y7Gv{Kj@N^fvs%udEgQ4+Uaj94O0qTP+$&$oyFEy!d2U?=}Snc z=PVHG>awP5|A2uM6|AQMV~bJj*AlK;WKF+cnNb$?&A?O}1Ib-X|Dm$e*oxuxLvUNE z+i}6xzr1!vZTUGNE*po`qx&(q9}-)p92UyQqP4dK|;_bse)1vSAv_MU}ZD8aA@Tiv1jzWn7O@7qVyM4+YkA zZNcdC6CL2ieh1Uh!Wp#(q8`t^k}1<@%7iF$p30yuCZn1=k5sX~hulgrbNyX4=w^a5 zM)YIHQsecZk2QTF-3y{BWWOOs4$L2d*J{%gmSwIP88d{!PN{PoaGSxwPBYBBNi5{# zWCp4fRq1dec1P%d`xn=#2K#-^?V({uzqkY>$G$WjVPt)Tc(pq#c|AH*#dRgfpfGC-U{kbYJ2pvKl>LPmR$e?E(B!_+V1jGbx#)rNR;Y zE-ZIyju48DDi2pIvS$1Vp)F&#W3lMkRHBnQGXHpo%O1=qBC4YH()*0DvQGvyAypNCE?yCB%XtX zp>l*O@Kb<#hs?rcTslDcnc`(;nBXnuE58qIy&i$R#r6x@g5ymjdMLt`Zk_D7OIRc=h3971U#G_0=V zrZFDTj~4+;&EBi+8ERu)y>G;RVeOEsc5*+OEc#z!LFU8!)Y+TERh>5t3L^`vx3`I( zb=2;+J&=N{Y;yiGZU@2)PF6?Lm(*jlNW0;xHzF8X`t8<)S~PJQymrxhd%I8#*6z2z zT1>5>xf-t>@OjfohM?F2dF_1Zw{v#7ohM~SkvwD{N~Hb;M_92Cj*xB5iW%Nurnl*7 ztZTo>MKIDoD4$^)kQMs$>zs9Oe5q+wST6Q4?C5!9uwuV9Sr|(0QM4BIEqYM#vnTfp z^{uuEI+Na}qboznLex*IFCZp8g+;AQy9tcqYt9viYr-uugU_V9-Eg>~GG%AoVHxSD zE$)VsT~7i#Ku^8FDD?PrU+kPWc853Zi{0<|93*-2@v5P-D0#;?bw(FAGyI^D>({X; zvN;?FPCsuaCo0eMaIoK%)kFc&4aK8l!@rQQEf8JpckQ1fIrjSQ?$LIkN#cZuInw>1 z*l;733q&3T*@vmEI;KPXJ~bYzK0pys9>OZxImO(N?$S@P=t`n|$17Xt6=EuEmE3^@-R&qh~ScYdUq1qY4%bovy%dk+!%q|)Wh;9uS zowJ@z)!dKZg7YU4T5!GgSWo^+J^+sX3nk$b|H}_bETH*TLO#ZC_JfrYed&rUvBfwZ zsolTZAi7{})8t}?^bh2(PZkHgJub}z5-&%8h@T~#xYXhNWMAZxr>KEAM*Zvrjv$P! zakA)e0^DW;BH$MC;T93*4F4^3w(?tvpj$jNXtZ2RGpPs7a*}!=-N17TOas)qh>#V3 zS}fMC{wE*CPMo{TXG}@Akv4MVbDo{c7Edk79I3#q)DilZJ432>!brD_@qTj5fpZL!O_KB_9; zfxja8aIVx>a==jXdb_L6qEf;d0fx07LCooOk33&}iWx+gmp5QGlsxlG;_8!!yvK!2 z{fUE?@P%GO{fS2}BE(R#oD`?ZuAbF2dA~sP%!Yz;T;s{_hp3dvQBz!BwLEevv*u85 zFuSbTq2d|+4{e&fe<1o=9Ve_M4FyN7QFd~g64BM(X3p@0Gq2+cB2@5fy?tuEee(G< z8s7Rw$GQCi9p@H<6_g0=q9MfA%=qcy9p{$9Q>)u=9S27~bD{Y;`KD*+6aK%d$h|aj zd|Do(JreU;UL8^yRI~Wmj=$j30rdku5QAjX~ zYn??4sG*mH?0I^HTnD_w;Fn@3Cv6lfz8@tT7^-B^eN;ec9ahULYK|M7sxNQZ5Na6-rHf4$IrBj2 z?AlUqe)cU|YQ87;WAsq>>0A8--%fI!R+a&a3Bv?8n#+jfA&>J3$^BYCRnOjdP-XbAA(?{|8<(*Q)3KhqSch~;4Rfh04%+9I5xApYD0!53A=9_|m!{mCj=RY_ zgHNZ~Fp8F8`^q6<`&>*H4!M{tP{X+<=ceJ@p9lB-r-u=-Y^|a=i#~-be;HAk_uxhxLoTBM%vgPetR31r;;d5eC$X z*lcPc^GE(nuytXwXr~5suo*PhT^3VCU6<<9MumpepUu8*k=3%Cy%x+MuGv6_Q~^nE zc1`)h#qFcyh!4yaEe!ZMKSq@Jdr@Os<+`R@HM5sTPj=;)Ifp*#t3I=0x|z^MS^KSm z!zZ5twEDpES z5814)>wGYCwb?cIOZT1!yx>gBti&9}!!^ty;vf0|ggL-0UuGpKUKKQaFF9eo#-e2` zLPIvf6H6p#_z} ze!^-g7UV78`=WA~X=(=DI#hgaL#__Vaatjv5PMk~YL>pU# z-;&Xa|C%gX$BNA&Dplln-%!jUwW=psbS6LOy@c8~aC+|y4XakXm3Re|(1B5W@Ks0$ zoc#rP^5}9?py=_Nw4Zv*S#l=2Wi3cp z2JE8sH=5nyYJN1L7kV(do54KFnyHRCo3$fb2#I<-vZQuo$Ne1NY9>JzU^!d0{W1wB zWD*`$iBIh9*prk)kXBKs+Or24Fu#XANbB)==^LNvkuJABCu-3{6I;^x4HgTtoQuo+p=Xh1T-zPdd*nqrt%38&=)=gZb-Uz%5b5T-Z&}a zf!0h}l*Bf9AG7;H57Ha^8~Cla-{2C54HFWS)LFWxuIK&%*9%6+Wr!ve=ZJl0)WHXr z;H;^mput|O-Di101KOSisz-kAhYyN&R4z;3RIpW+UnlYnscG6ZBy!}m3Vx4^4ok-x z8x|!+->;Y8SAQRu-Dr!TZ#P< z0y6-@2g_%9w>j*E>~H^^IM~L@}A* z7;nYo6v|xB&LB@+V%gL%`eeb_b|V2DBYFyno@(mt<&wM%oj-(pks{+oOb7m}HoR`+ z8bj-iRDuOQB!TCc`hw?(DAumT2oM|Bg&83vb&;0SaVYl(3xp2Xo?k1QwI1^VK`fc4`0kI*9!Q6P!erW@8=gtl= zYdQh^^vF4$QnIbK7YWdsiiL(&t?#UDESxo?uA3}T*TvzdNHC3>kZxCG zdPj_>JofH9W0#6s9|>F3~;p494D@m1fi-Qu@eivOR|Vm3P%Y zWucSB9d&_z0>|(-#t0bPPzD@NO5h#=(J|j{(BOq*9~Ic2y6xciE5SR;2k+6nfOlpO z@P_sTZ$E+Oe&0;D^@(NP;Man5`&ot>fjf(rw)63msmaL24hHvzutSYCWu(m5s5Y3L zgPYC?SnES1q<;4dBJl zRE!+z((oLNLxB*d*q_1r9Za6w$@cwsJggheR|8QE6^}X=;?Sid%mWWFR{YY#JwS2V zuJy*6ea6141o`P_pTM77Nh8#AqF^ImYUsIWg3o z=?$3>fn1z9gDpV$%?4~uG^l&uknb)mge9WFV)%rSKX~ql2qS#)4ATjhDg3aPhuwtd z42XCxn&*`_DV{hPs5{%|f;#m1@sy=mI8;5hJIs6*ErxIr0@$He8HVbgIZ16rT+H5I>gbMI+#zWBTZQ5fCHTE+OjxGiRo&g!_JIXM{9V5F>HnpIEa&w4< zEw=q+|Dk7A!<*}<8F+}VSPHkBdI#xOTJf2vr?9JGePd%2u3BxyCV*Y)!v`bNj;W>@ zL&aEwRjkz>N3|q2HZ*ocn17rJH<{HB8pvhCVsmiZ%hr3WCCzM!ZYbErt^_60-~#Z3 z{a`z<3D~cp(#^X9pVk&^gYV*&$cn9!pi&I2FH&;=KAQ_AZ??m{YsK^oMj$NoRZ4_< zkJCFF-V&P^U1CU4Bb0|i1<%zI1DnU&<_Tm*?h@w6YsF{K|Lpz(e%`m&^|!uYiF-SU zNuOK4V%+eP7b@Ur-LCPpS8rV#Yh&2f%;+0k;?~0FVqF*DW`_=XyO$^~P(51K_R7#Q z^vnD2^xUKvYHyk$iZPV^9}-L*2lrCP(!4tC{5oc3>bN0Y$4bnNdcx6`S4Ulb9Zi`! zP9mXlT`<<&Cuq*h;CNu2)vz-5fZg{>RfKkN$%3-Cl3YaasM_P19@-!=E9sQiGc(rlCY&Ec6dbq|<< zQ>%587slmH6r(g;XI-!o*l^d`652<|l-_+y;eNOz-hK>zbWms?Xha|t3oBN0#5YoK z?RLz*#u6V+tfO49mALy0Z+J>Q|J2DbIPKp5mSD@B2L$>U_FE>d!@_F_R=c04+C089 zrL)E&b7J80x{nIXwVmHUXVATvD4&wH2RC#e3YR))&0* zJ}L&1gDwv{LYWzkz!dO=fZ z9-7WDXxc|;%Jg7&G+ju=dqk5lnc4eJXSH#fLkA`>#npkToVAxB_I5ixP97R)=e6AJ zjyYz|h;o!*PceY1zG?y$yBDx*`nfVwN3$k7sgt2nw?etLxc`&QyyrRD-#7)!X?c!p z1w59a`J239ARZiCdo$YN?c0kg7GAe-Qbk9sW0DtZuV%uwZ!03TqW!vMlPaDE6#ElR zaQBa9hrQmtEDJ|+Oc|2T8FM)))+a-Q>+Bt{{aPFMg`W@=WIGp>*J6LmvqD=Q<~b{1 z7;TN%C7+o26}cQEfvKD>-b?Q=CkW?EW^?#^$2)B>S*`fNIg1bU@BHvpZvZA}Vl%rb z!2cXI$jw@cyo5XCg6Bb3Ve68A|M8c>IfXzYJlHGe+cRd&*y>{D150Y}+P|W!_PX_x zU{N0ztOf%W+Z4=ltD*|5lZIEc*A~2;9UXTj+cqEBwaL&?$;qX)$%zAN?d8ZjhE{A3 zw)~=8s*Uz5h9Ne0PKBS#sH3IuEPMNITo8W`_VSADEwz36A|KaTW5yrBBkKOGGRTV7 zF3?~C*Cu;q>raRQc(@!}n4*g9*R7dUwK{q%UFUmWdsRi3z4F>NEkYHYvF?Jy+qSMM zQW*@M3^29!$`b)H4O6gU+n&G*woEy&FY?D3ce13YOV`sStItb@t9%*3Aa!Pt0ZmXd*UjxV-GYVvjc&S37W*?R0K0?6Cyo=B^^i zmwRE4`K!ovVA)?qGCkOxJ)TCzduESMvbJf@qjPh)#$XXj?v?A9M!Z6j-fU>bkjclZ zrYYN9I2@sqt+=hw+$)(`?$kZ8J?#V7Fg%mxOnrlM5R;n8n5;QUYz7Fp3(?4t+dX}+ zRrNRa$JyHaU6BAa)SbNHs1t7}(pJ-4*w25&P28*V8)&Hl6(Hjw=8Q5Bn8A|-;} zb*sJesf!r7cYu>MC9W>g_p%iTHF|r2;YQ{XYFyZ3zm(l9y~{O)+$9*{$rv_EX47PL zOncoeB~$)x=^zM5bY7jaistN={tnUR()piW*p1EwY~DWLOc;)KGW(e=I=iG*IlH8b zsBq8p{ZeMjZ6!9q4 zoX&BdA_~lTrVhIi;lpgbt;7!~=H5(lI_r;=bvTQ3I^q&V49uxLq=Qs7!hY%93JJcXlM`%xwjZ!O%HWC-FjFG%Tvd(Y> zXN&<7cSEo$Akj~{&_-Bmt-Y~hW38mcd_xpK17IN zA|i-EBL1e@FLoa5FNruIwS<&oiTeZa>Ya1z?U&pyu?|VgKiME3#eOo2Z(myCjLd+W zE2D6~i)|5-xQ521>`KjcbomDcA(1-n8q%E=R1+it@vb8LIiNxN=y`2DeJo6nn0$1zqk>*bV5i;7S@ZCkk4UWcVRd9h+G9ZHB|heBGny zo(NX-`Vym<6__(rzQA0kG4~o+qwz>KhDGZrEf+o#$RJI1axSgU;UiFcxV8SGKwdN zD!FHHeQ$e-KXokx_lS@+Njsh3jZ2aq8!)QF=1rh!stVZXazkw&a%j_yh(Qe`_ z_TAb_Y~wJK-fPCmr2~(dZ%ES@O9wrDg#cme#!HI4vBviR3t``QoqAwrdpPwNQsXLy zAyp^JOo!ihqAPYg@feCrOAa}FiFk%?ebwDZ3_gF+G#YK2G*UnWo}E$se9UT^4Rs%5 zQfNc@N-tuG)Iy~^({kr-Tg}vCIuyvp-5gWo=3#_?QVH5Cwr;|!-ZAF5V!y&krMBW7 z@2K((eDtqu@4`RA`d-f|1^?AK#clMuZB3Uka4&KLcdMu_hlalStWXLzJRFS5Asdlc z-~8l`9?9=5f4w`+2D}}EJ5@vqKJmzB?g;GHDT4x(?gQi}$^Ari^s*0ezN=}Ny9Kf0 zFN*soYX*DL$m2bhP~+aA!$f7byGzuREc8^Pyd`-^Ppxd*V_P>+U$8nG7h z?ldz*_Vzw`MD{!NJ_rAQT$b4Yip#5c1Xu27^7@&R?e^ZXmAEMhZ!+25cgB&;upN&V zq*p{$JHd6J?`-Cs&I!HOd7-u)mG8L^@SB^xYw2!~YOCswK{|iWXLMSM(kyYuI~r7^P9Jf_ z*)AtYmU*$y8T}^U#EeQvEmKp^cgfZm`qG;{JI9aBJlz#eUeBWw98sr3Y{|M3G{GwB zl7C*s7sAMBZ76vMWZ4}V;B?I1fem6E%m~B9x)L%3(hq)F@hU#k+6LaEVC%E;{`z58 zA(X5OL`ty5!3w7n4|08-Z?{sP1fnY2kbHbCKe~*y$&7NHo?w{ft@oZ45(~w!6LCL> z&R(}YvL@VeM_J_-b5#;s#Fp^(wNCA!I8JPtTp%5p+t)j1>JwJ1&(8XaO*|&n7hA5_ zhQ1-xpX}QmXY8j)kXt4fngW}hT0R@9KF0@JArehkh%^g%G=m>N8d=OQS5_lS_~p84 zWGM!#RU?b7mdnWML3eK&I`?wo((^4jvb1Vs|0%Cy#Yb#%oO4*OoowB<4czI4&7+F{=-o$^`q)nVT|YU)S)xnp%sb5;uZIRXFVzR^n=*^q;emzZUswKl)7~{L@FVgKq@GsGvm;4~f1c z&(aEEn^t8?} ziF{jkbPax|=7KD0gZYI&tc%Q9AeA_$;D3F3W!Z=f#ptJ)et0d|M-A3IdkevAvGc$| z%+2PVDubO$LG<-BYzdj6z)&aW;2TLzj=-%MZ*8%jgo!Loju{;89A)N*Mt>Z2 zgxTR8!Edg=597^oEL^h~Oj^_Rv?mxG11!lBm3y2B|H;G8dZ4gA+32D00rCXF+(|IZ zv7zK|Rayu+DUFb`J%nt2JcE$3$TSeL@71$}kFro6K9=ExA&ZZ~=<8k{2JgJyM zVsVL5dgT+<=SJ^7m#o6L_4C${Z6GB%elX@CmxPlKmWxO_>oO!#=V9c{fA|p9l|}~3 zF07EXp>%W_9av%&JGYhW>JI0S#~bN3BGc-V*O#Jy6}h=`BX^?n=s|ZwGV(?MBM|4f z{W%y{Ibpl==EFHaU}A%;Ypb*3fSp`z*Ybo+*s5h2;Kn`n<)rA+44v<1mMrIy(c9R^ z@92)0D>QtD4%QlqTd*{P#?aoBsodx_3>Kn`yc8=Wp&kYp!;|PdLA#^(LCtkX$@^#K~Y)$`w2$V`@h_XZW zJGO7*|7Zo#D8b15N*rWRU^9q+I9UB?e_8TB9^-)eEb@ZCGIU6O_DQ}dC17FZCn zg@hi+zAYEo<8zRG^Iv^ri=F+q$Zn!+ulRoW|9gB-?*-rgdd%xYLab`f_zrvc9^v8J zIMn&vd&jy2g@|bX=63=C89Usm-XxYS7(&0E7X9!ha5CtV>Mh^(2+JfuSiJOf`w-_; z4}!>T_TUV?PWVcC)nbpo6DX?|=R2AKh(k*PsV78#JiWs32Ih+vB+D#ze*WWaa45+z ziY@z6)0x!M8TpH$zo!lT{ozp`A3q_JUMzn(gOr_y+H;8T7K07i*ZzIj*yJ%z-@j8j zJ1zY847AY#73Ayro`F(SJ~Lm?X$-VdZN5Ia)>Fg%634M`mJj8nH{1S{- zLb0=1tj}lhBa?kzS@d)qI^2jk``BWhOU4t>Pt}oFS77Ra+Nu+S16u!GhUkb%b@oZ+ zm0M!f*BF3`H+P>`7~MB@6hHak{51z0v(#?()__Hmg0bP{eIm0toyJ@Nb}KK@Jn325AQYASAB5P>G+GguB5)@rh~LL-B5_A3JlT&XJFpS%?|Qf#kE|5s*)>pH`w9;3Hd? z#wlyR_?$>%C)B~aEeyoqWYGlRmRO}2lC@^u2w&jD8ta;5-L2=P?V_QiH&s`uWzP%= z>>Z`kC z`O@?(xlW05ao++I{WsU!t`QwFJe#_42oUSq6|_5}G*^hn8#Ai$->L!>BAK$fE0ZZQ zrrGn0U&jLG?%7(pB7f&X)JT(xt@sXQ?^LS+>#lPJPflGrn=&T3J{CKRPI-|2^RKDe zQpifU9EBxNVOC_pb6!}kwr*{6my?_w1LNx=?Gin|YQx_mk2O`l5;OJwj)JqYU8!8- zb>hP%syKSJafATc2YP64UkH;qq=lkNDD9arg@lfxJNR4RHdAp1zc#M*F={NIWXqLU zZdZMNi$IR)oZC+7f3?mR2Nx*CM_zhfFm$dg>^Lv}6*TYiOsiYPtW)>H5Ax_QpZs3^ zpIq{jQCyn*_9cuzbkduu*W78yZ;~0Rq9^(4mHZyrEn#=^o2@#$`P`HIGV7g3e=i5} z>2J^EcP|~yj#-BM4i@>9{Kt^rKXS-#r?RKXFJ$_ZCFSAz&L5LmokjnAAWeUFD`X`c z(49|zaJm01%^^RnTaqmAjqaXks=lS!)c0rV%l1Drm7qV=L89Q(KFJ?z_BCwb|yu1}-I{wqrd%OXe4huGrR zF7)>y>|?%R)XDcn8=Uop|BV(on&d`<94+$BHiW{t+Y`p2RU9tce#>1w+8-aX-}eM6 zV<*)n&lsc=i1;=uRQNYCuzfG`tUY7-seXMwO?Mg31b8n$d%!FXd79OKus$~tya?YoSJFh90p!M0*{+aQwT!(L7 zEAc+02t4J3gY2cpb)ft%`oX27kNcA`K_)pmH9E|uNJq|a|j&*$)`4?m!`Nx7) zXThB=dhJUjQ_iy|?C5sxdH~lu+4QwaZ~hleU9T3OO6>p=CQx@fu^&@?4nY$olnSO zbm!;Hf_u(=kgW5+L1@8HG1KEN!2Z=Fe3(g?sD%AU$XRb2UkP`%Yx^H;-Jp!a`I9<4 z13yN{_U1HFZaEf-5 zDVP+$2n3qPlad3?)QN4!+x*n*`)$$wX<}e)cjufyt@cu@h;8lbB7Dsd7*9>0^(Ur1 z!hZW#_xQf9$M-cozJJ`~d-M6s9H`}Zn8HvTHrX3+7jP|^v{x&3e#{HatU*IR^Up1I zcdHUJ2*Un%w}>CfzzJ~=P_p`Pi6-;Wy`YPoL}DhV76X34Tk zsul;q4?^}X&+BBA4HP@(`!u}=wg&DXspYE8u$IgHaS0_8rh=AdW>L@l8d{YVtle(S zUKMV4`iI)xVoa0D5REYvn$`!J-$o)9=+_?Xw+b1+gPJ)dGx4(6^5kaSPI~psMNSZK zW*kd%)yi&7_x3l>C{IVcNIwB*GX6z$lV&e+PTs<_mYbV7HcccTC-uZ zbGa+KeN!CR=KhOj=c^4|dfvmsjeZgj)eL0evlq5HJLxxK@BZdiu;cpdFOhF9Sd|}f;DVR(BBC(mC$G^kw%j+7Mm$*O4iv1D z@1j;khN{d!d6z}xH!WrA!R_#G+N^sPR;;q-w_(8-I(%L8yAHsInipx*1?vN62%@#_ zc9ceDJ+0W3<8{9saGWEQ?00_+S==3DEPD7YsOz7wzDa-Bn)#WRKJIXy z>50GMef)>aty8JViua=>N{rp4kDpPZRja#sOwF{919U6CgnkPB)2EWb-qKzE#d=26 zqg!BW!wv_kw~fC~Uk(-lAVK8y@030+J&Y zYvx5>1-D;FZHYQlOmtL3OYXm^%7Z6VU03}a_tKMu=j!vvjT&nuW|0br^XovzH?0f@yhC^Y#&AM@^7GaT-RdB(#cXAfdzV2D3Byf;+H^YKx zr+ND|h8+Ipbzz!}rV?EHceidAsKurP!jEnf#dxV#VAlQwf0raAS9lu>}g{Bew&J%_c3ZjXzS5H$O^M`yT2yWtX6SXH<^?F z9r&`xnaW6_VXqKP&zM9u!0_%*P7X{&$noA=h6}aD*5h}{DR6^iG2`a7dwq{~IsG3) z4(c=#*G>!?z>!ayMM_D}fngfSnNcswn>B-pB0aVK1Tc3gDX!4x_p^EX=uu-Uu?;ol zY*m{kJvmC@!yEMDRPIe;ymGCF?NI+wft?T9!TVc|-9-+0nlyZ1I|y~JHsa}>klEuPFOg#AHXFev!m7rbhkxf|T9D7o9E=>m zS7!c2m+H-6^~lg+rzhTljhN~%rPcwrM)hUpL*zL#7s6F-k$%K$E=2D%^I*{|z772! zN*J~`j^^X$Og573tP#!vWD2Sdq2LAF?i9QkPKAd)p?k+%tm zcBA*CUKT&~sOwI!m+H{BM_bY@NzI;>=$?!l%YD3cI5KkT2|mNFnl|2N)~9;RI&y+p zYH76zIQ?Zha?sTCz2%vE?kqfqK0C)Qc;F2T`n{{)blKWu znNy3B7rPqElkeJ{+^ainDK?uDTWoTkB&b)mT59{^EDcX4yV6@vHcW%dcXrSH_LTrL z=hQJ5j15n?@?tct_T#ZlT!vkYc{}2QkDY}u4K{9afeCl^IOMMV)B|&TM2S{r`mv=2 zu;OFceXsQo_Q5OJgJ+IBPs39K!38tug>fA@9)+Bi*tx2d^Hr?t0P8MjBM|%Yn^s&_ z)z;k-EXh%V_WQ9f`z~mssFnByv6WlQJE`fjkTv}&L>-8tA~%M3uBe2!tC27I<2&~l z3UI?zZ+F(};OL32tm&VdXjBh6(-+W*HB(PBuikD1FCO`~s$e_BeK%d? zNDyF6;aJSG$J_v5YR}1r3l-K_yvCQiv;+Yvqixpp|#l_=x?#Eg~{CQ#O z-(U5&e?x0%bbwak688rT8GLKOpEZ&j zx#l{-3$0ryme*gpr{K?>2&Y3`Ak)B_a?G?BWmLZTFRCu^ni*D`~lPY4@!>uwD|hdkb^ z@vCw&ac^cqFDg_caF;7&F8A6LGN7Ri>(_!llaD(2|8^hJr$N}g`jmSVuS7gk;g6fP+zHgZjpt@xW8Tby(g!*SfeKH~0Cwcik z&V=5}gpf*hJEJBT5_w+Xv&NgS+`l`|6YsVvbjBrw{z=HAlt&Z_0Hpgr3e961>dsQg zKzo-$hGcno#1Gw=30;#3U7?Wa!MIFlbSAYX6Z&>0bW$etO@*MtfLp2%R26U!AO!Ph zVrIA+eh=0zS*mrmk)g@`h_E-#?jT$p?kNo2%U2xo{km=(MUL18^t&ll5TxLR=P8WHpOlkQ}@*tOuofkTT5Uu!| z{@g9|5u}*?W>!q-^5RjN|4JT#%4&`{;(zG#R9-h25IK&saP%iSm4Cpn@ynXOgPmcn z_&}*kGpWzZKSz#m;p$nO>rYaiN64cWWIm`|LoHWh7MYhXvwlnA$=rPF7%n|@a}0mt zeSFe+>k4&E$h3C=8u7XH_@}g5R>E!#-9=#7E9Yxq&GN|ZtW3Oz=5J-b)yub>t7)O< zac&>wnFW&h#i$P+>Yc+fT5x}W$n%bKS~R}mIQK784e)yHehib$ZI|QR-6jXSp!B&l zeQaGwUYbiETYpHtNy+ip$0BR^oR8S{gMDDF#Aqd=3@*ZOtNF<6|2z`ci+fq}=|`?~ zKP5ge{p^*vK82fR_YUSfHldtP3uf01jeZX$%I;>^OZ~Rfu^1sYWe{Q$* z(!BJ?cT2w~FTG{A^k3zrU%y-Wy?N;kJ=57`mM$>63J7)6A$h}Di~KHzAx0KsoX6sM z_3ga2M}MU$VQ;==h>`EUY}jXdb9qbO&p03KF8=rTU%AXcOro0uK@Ixi1yolVk{_v; zTP0l0R9DCy!+%p>E_~{Fro#UQz68gJ&GyUDb3(}j@x@iOFv{&!XKNz2-u=yGh!7__ z&GI#`mp-4!qt|TzTP3;3(pSqhJ@DPC?Q}N%`kv{M-hLsyw&ss!sCh>DuizE|^Po9G zGFq|z>w=#muSd0`d9m_ok8Q@qK$3DZ^Uu_mSKV!1b>9%TR9!s(^=OZ(be>mZsgGv0 zUTNTEY(0FmelHLH$I)HOr?*S<(pz>*ADfqc{ch=ybPj$Rc1thIOFwzH^kehV2ke$E zSJ_$oZ@juE{9<9*^yhXRWH&dN?|;m2FH;MR8?h@)kSayI8|oSf0+1 z94_5)=T9bDrW>5xJ?1thzjAMU$K+Lea())(J7SHTW(V|4mwt|{HP9bSUlepvf+vuo zm+4w6abh7yr7dhi%)L#ub_rI)=1?Q%6vnc?#If(tZE>5qKa??EN%W*F$1xPC8hh#w zqEGRRr_L{1STZ!?3uHa+9#2s>k+!Fc+KHl1UwcP#F@0P+#7r(n}2!=O1wOsT0kKHH42= z9PBX^=#M-1v0Fp>FylDWer@?RUhb**RW`Zn0U9%gCCXju{Ls(+h2W#1iSnRFN=P5q zFq--p6RvtGij(k_JTytIb9I27KY->#ot+Odxmu+TFG}-JP)i=;jiuY$vGBiMba$tuOgape<2RdS^pe;o|v z5J4k@)Pn?y04GfX4x2q8U_yhv)!>h|OI@9zJwD$wc_5cB6SdWfO&)lPm5{vM9iwl< zCp7*;G;Y)rcv^oL8d1xoYoyG*G15O|AfQPRA&4uZzFojL$-dm1QnTApD)rsL29jHtE*kNnV*75~(9-H;Xi4^=GU zDjNBw6aB^O-G;G2F#!r0epWWg9#4&;SJw ze*jfo#sqQB6Ca>!b1SvZpFn6q6MvkiPTZauPcsgqZfBG~gV;>X9v^TIGWERYQ5L=C zW|SO$qNFk2KHeV`x0M)!VP=Z+BuMtKd8%e|?8oIp3p#4LPj$P6IYX<|2s+&f6qB1| z$X8ei;GkeOiC~w^ReIm+_HZ-#1>- zbNxrimy`b7Zs}L#r9Zw~I?H%Y`Ig<%k!a+kU%y*Aa*mwzhTYP?o0op_Zt3Il(g*ZR zk5#|=6K{XAZ(hdtE>G`I=5j|8ve}>b8T|c8U#tzFx7_{76DpHk`VHSn>;H1<_qVYV zSj=?!D5W{Q*fXwth_{%n#w@+vIY#UF@uW5HocL?H9(T1u&6LtY^G@$R=xN2=J;dbk zuE(w+CODrC1cJ}#uXXq5FtX;I5C5K+d4aZyiIGE_cmC0QwL#%lVzBC9-OJGza+xL3gpuSObgqgx)HF8S13 z^sm*-NybfzUNszIB`!8mmq`!)J#pM)Q&;+Yx#{+TpGMDUx}B})DZ$tZ{Qj;}|gH26$h^i>kqf(EKEHW+N-HaT5f3ZrV6 ziefj<%xvBncJAATvvr2Rn)xgRn|FFTBU{0fb@%D~ZQdzaOK{#Y4MzMHCVlhHn?Pr9 z-Xaro6)|p{j5&%fl{DjzPeKcwp)a$)6iMamFAYs)RH?p&dmhNjl`s7?fadBrez^f> zyM}tFF6n~v-Y|_jVorDnV6S}alatrtmd89G*4X?oVU%y&llU7SztQ!Uh@@i z2IrN6Ec|hs8l+GVoOiH^xmPv(n;O#VB%{+0>foN2u84T90+qbSciy9Y0%;Y7T84aZ z9`>WhfcauKM=xWIdHpbRzFTmr@_PaSMk{&(`3v0xXv5nFm?j?u4i6R3NebJyn!tj- z^D5HHPbz0ouEbTpy>bfz(@yP~UgOTrrk|;HCI2*3673&sUZHKSdE$3LwGwsdl9MPQ zqx3T781aw&=7JEJKKl!VRAc?7!@8%vX+=rR(C0CoUGJVxzUG~}tqsom*kHbv^}TuL zwbv@<%FM-`5tUi-Z7dpg7c)w;bdHn&=l|VW;?`@_1EGO*)MNA}O&Mb1xT?y*uPb9S9 zLjE|1@!FiaqBDtkp(g);6My-!gvL zxsDpl?~r#_ZoAv zwEV}I)-hQ)}!wpZ@sj;!U^=M54|DbcrKIwbo-sLLZJu$XR zSS{IKAhO@s{>0GQ^7YY2*}ASG;o;`xV5Dh){vd#xMbuih!;eMp3i8TV z<*L8x;yij_>>b>HJ_#p#jNixkO>fJCv8CPagGA)sJNU@A`=p(b#D#V!+^4f_`VTzj z=%q9A2sgTO#y$2C!q9gzxcLbuvPIELl7;0!-#^?k`9NJ+9~iXN#loOHroT0ti|U|V zQ%FQ{aK@Mt^H4bv#e*!4DFn{o|DjGZ@0j_vK)w=uM@@fjhZhgQxdOAIDG%PKL9J{E zdZf30pIidYmw%7T+kzqgc{ne9z;5Y3$V=ZiwnurnWtfORQ4T5PH^`IXP7K5_uyI9kFL~S~2@(MB zoc2COf8$#%1MxqCV0Ee=QOT4#PBEHNZYi;8d`wCn%+74(r3U&OelaOFY(UhdVy1#8 zj5V`ymV|aYB}c?CcIgCJ!>o&pOcp)Ye;lHNXjLe-GY~1Cdab%&;8^!apL}?BX!=uG zc4*kSt~G87z%Rgl(k5{X_1-|ew?3JA*_`KEhM(xXVp1kAVNCooIpgVswyxDnF88#h z?t%W&_5h~NT?hPGLR>{WRuq<}P`!uBr6C~SW|*0U7S?I?vX&2XxhnW=G#-cSf) zL#3VioDR;;ygBQc#$w1_U-f>-8ugO1ne#W{TaMHfB^AgR2@;YuQbt~%UYeePTw$Pr za=MaQnI-Agzxg=v_{kd=^xy{u&>iMdA`9hjmI}(r!$K_&me(1`-*OHXlyXLBf5@f} z&nO&#fO3^H8Ys=KT_E~PN{xTN;Ld9OdtUpO_iR5_T`^JT)x+3QwDKTL4)3c}UQGpO z-*be$!t$Iv{;9RWq~x7ix1X;rrpK@KPkD8|VG=X9#nAH~^3tE#E&Y#q=@0cxk5ylL zrFY&wFE3+684d8G&-Q?C^)vX8|H?$?L0*$zxj7Gw*GtR`c0!g$mrT}$Setm)?P*fC zrXLFG8L%o;%FN65m`B_IJ#h0?*_O_Q*xH(2M8+Ilve@=QE4~cC@q6;{{2Bs|L@-pf zPtzR_vqm$pJ?vDPKPrJ$8}sz~mPzGSIQHJ=R80ooX&cSr7a#pkp19%@Xe=NYJTnT&fVDVcS+O&osfYm@8}@(}EH-__DFd0?SIVP|3@ zabP51oj+zEt`pgC7l#_x=%9TVSe<=FLCuW+6e*LL7FDZmOkp9yXM0--YGjM441Sg@ zx~H}_U{5LEA(7#1stYxC;=nU{_1s4oi}^v$n%Ut^kJT*`$vxvCa%V?0QochYN1+Ul zyX8V&4MstZSHriWGnrNq6i-Uizds&xflKT`G?;oTcVER8#3V|h&pMHdFE9R4Ki=Rg zU5}th{U)}&n>8Ubo3x&^KH$UW@tf<<>%nivik{8OGhBi?|GZjD(ye{D=keEj@9A;( zJ`zm3cubAGdE`iDQt8%rDz~(Mc#ys7+BG#JEW;2G;9uJ<%`org2?kq#A|58-%bEQa zCUGqnz_qrgN(EodjGrN>xh=O2K*O15%{$3Wj zh`*K56-~GGIX&9ZbX(suqHPHOFAKHY*f;eIChWOy=U_Qq3k?U{F=-ZBCSG&X9 z*L~*Pjv860C3KLvmBL`_Z49jvASFeQ>pHZj<)sa!aemCBiLr1!f$q`5cZrH4}Lq(_S6f6r++4q+C3{Ee{E%yGmhKJ6=2a8BI?sFzd&KF-*XMmpCYE`Rzl{uTnWq%kXZ?T`<+2l z^d)ycQb3aXZRPN4liw-r02Vd0Tv8D1D8PRRu<@9rpyD0`+=8cI0SE$5MW8EsT(~9J zC&LfGQ#YQF?aH5#FPFd#|+17%U#59YPs-h2OPfBDyHKezuYod*!> z`2FY3QMW2QWL;h!W~D2uY@6TDsh-H0-1)zYzhq&x;+l|EB`zbko zE(->9@_t$n&t}uO+Dncqt52R?pZp2_hp$FRbVaFMw=_8l4@Gv}3g^CGiqTq$C5Av| z@5`~_0!aPd_TiUV_bx16Z6y|w5_9?uFR+aN$8gJc3sQqPe=+XE%W807t(@&O#kk45 zKbuu{g&tYFTyNje#*C>8Q1@7qSq+%FH)IRwmNeWlz93cM@z37s7mx8lc|2QxgT0CB z3(Ki~Tt4W7v}^2t!(Yb5Y*%0sgpAE zsW>CjZUB5h1&-E%hCL zKEh`4^GQXR3Rv-}bg*grWmfz?0yCKOJhRUK!KTUG0i>^HYR@i#KSw(|0+)5v6bvCt zVMoobGq~&sOZkzN3`1qAjrx0ucPqhTZ}A7RzNF#rE&XSd+jIJ9?&_~dSG#*F zKVYxzpJp`t^UGfb+4XV14{|(sy>C4{ock@yhTQKz^KJGk^T4!R=#_aYQc`^S!t8lY zk+aR@rKKp8q>l8~Ywtd-)A{VjubX|-*&%$)`YL)W{kS8Mk3{xilAIJ>IRZKv+_b&= zmL*~9PcPoIK)WY@%{KBDJ~N9rYTh9IqwJU9lE^r&XCS|s2w6N!#k&O<*P+vDNQ>6e%#2q zthju2^2UG_Zzme>-idqoH9L4b3Nc*+3ub@s)QMS}r4XKBrawu%k-~kU3_`cueRep{ zyrk158<57GRzgQ}#Cx8(YIUHDjwT*a)@I(pm0-+D+{Y&?*e0iNEf%1vhj7;`gw-

aj-VtL%6w`X`FU=BMDj6?iv7xoRfTdn!j+ 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 z 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